From 8c09a8a4b78a5f00b280e4d32896417bcc6230ad Mon Sep 17 00:00:00 2001 From: "Geoff Thornton (winguru)" Date: Thu, 10 Jun 2021 17:03:49 -0400 Subject: [PATCH 001/189] Fixed backslash file references in Windows when generating webUI.go file * added "filepath.ToSlash()" around path variables to properly references all operating system path types as forward slashes. * modified func "readFilesToMap" and func "getLocalPath" for above fix --- src/html-build.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/html-build.go b/src/html-build.go index 2b7ba10..ba35dc3 100644 --- a/src/html-build.go +++ b/src/html-build.go @@ -82,7 +82,7 @@ func readFilesToMap(path string, info os.FileInfo, err error) error { if info.IsDir() == false { var base64Str = fileToBase64(getLocalPath(path)) - blankMap[path] = base64Str + blankMap[filepath.ToSlash(path)] = base64Str } return nil @@ -110,7 +110,7 @@ func fileToBase64(file string) string { func getLocalPath(filename string) string { path, file := filepath.Split(filename) - var newPath = filepath.Dir(path) + var newPath = filepath.ToSlash(filepath.Dir(path)) var newFileName = newPath + "/" + file From dcb1eb3407b5b78af7293e7c70568df36b52ddc1 Mon Sep 17 00:00:00 2001 From: winguru Date: Mon, 14 Jun 2021 17:14:56 -0400 Subject: [PATCH 002/189] Translated comments in German to English --- src/backup.go | 362 ++++++++++++++++++++-------------------- src/buffer.go | 66 ++++---- src/config.go | 60 +++---- src/data.go | 52 +++--- src/html-build.go | 10 +- src/images.go | 32 ++-- src/info.go | 134 +++++++-------- src/m3u.go | 14 +- src/maintenance.go | 12 +- src/provider.go | 24 +-- src/screen.go | 12 +- src/struct-buffer.go | 20 +-- src/struct-hdhr.go | 2 +- src/struct-system.go | 28 ++-- src/struct-webserver.go | 18 +- src/struct-xml.go | 38 ++--- src/system.go | 28 ++-- src/toolchain.go | 26 +-- src/update.go | 28 ++-- src/webserver.go | 70 ++++---- src/xepg.go | 94 +++++------ xteve.go | 22 +-- 22 files changed, 576 insertions(+), 576 deletions(-) diff --git a/src/backup.go b/src/backup.go index 437fbcb..6031ebd 100644 --- a/src/backup.go +++ b/src/backup.go @@ -1,274 +1,274 @@ package src import ( - b64 "encoding/base64" - "errors" - "fmt" - "io/ioutil" - "os" - "path/filepath" - "strings" - "time" + b64 "encoding/base64" + "errors" + "fmt" + "io/ioutil" + "os" + "path/filepath" + "strings" + "time" ) func xTeVeAutoBackup() (err error) { - var archiv = "xteve_auto_backup_" + time.Now().Format("20060102_1504") + ".zip" - var target string - var sourceFiles = make([]string, 0) - var oldBackupFiles = make([]string, 0) - var debug string + var archiv = "xteve_auto_backup_" + time.Now().Format("20060102_1504") + ".zip" + var target string + var sourceFiles = make([]string, 0) + var oldBackupFiles = make([]string, 0) + var debug string - if len(Settings.BackupPath) > 0 { - System.Folder.Backup = Settings.BackupPath - } + if len(Settings.BackupPath) > 0 { + System.Folder.Backup = Settings.BackupPath + } - showInfo("Backup Path:" + System.Folder.Backup) + showInfo("Backup Path:" + System.Folder.Backup) - err = checkFolder(System.Folder.Backup) - if err != nil { - ShowError(err, 1070) - return - } + err = checkFolder(System.Folder.Backup) + if err != nil { + ShowError(err, 1070) + return + } - // Alte Backups löschen - files, err := ioutil.ReadDir(System.Folder.Backup) + // Delete Old Backups + files, err := ioutil.ReadDir(System.Folder.Backup) - if err == nil { + if err == nil { - for _, file := range files { + for _, file := range files { - if filepath.Ext(file.Name()) == ".zip" && strings.Contains(file.Name(), "xteve_auto_backup") { - oldBackupFiles = append(oldBackupFiles, file.Name()) - } + if filepath.Ext(file.Name()) == ".zip" && strings.Contains(file.Name(), "xteve_auto_backup") { + oldBackupFiles = append(oldBackupFiles, file.Name()) + } - } + } - // Alle Backups löschen - var end int - switch Settings.BackupKeep { - case 0: - end = 0 - default: - end = Settings.BackupKeep - 1 - } + // Delete All Backups + var end int + switch Settings.BackupKeep { + case 0: + end = 0 + default: + end = Settings.BackupKeep - 1 + } - for i := 0; i < len(oldBackupFiles)-end; i++ { + for i := 0; i < len(oldBackupFiles)-end; i++ { - os.RemoveAll(System.Folder.Backup + oldBackupFiles[i]) - debug = fmt.Sprintf("Delete backup file:%s", oldBackupFiles[i]) - showDebug(debug, 1) + os.RemoveAll(System.Folder.Backup + oldBackupFiles[i]) + debug = fmt.Sprintf("Delete backup file:%s", oldBackupFiles[i]) + showDebug(debug, 1) - } + } - if Settings.BackupKeep == 0 { - return - } + if Settings.BackupKeep == 0 { + return + } - } else { + } else { - return + return - } + } - // Backup erstellen - if err == nil { + // Create a Backup + if err == nil { - target = System.Folder.Backup + archiv + target = System.Folder.Backup + archiv - for _, i := range SystemFiles { - sourceFiles = append(sourceFiles, System.Folder.Config+i) - } + for _, i := range SystemFiles { + sourceFiles = append(sourceFiles, System.Folder.Config+i) + } - sourceFiles = append(sourceFiles, System.Folder.ImagesUpload) + sourceFiles = append(sourceFiles, System.Folder.ImagesUpload) - err = zipFiles(sourceFiles, target) + err = zipFiles(sourceFiles, target) - if err == nil { + if err == nil { - debug = fmt.Sprintf("Create backup file:%s", target) - showDebug(debug, 1) + debug = fmt.Sprintf("Create backup file:%s", target) + showDebug(debug, 1) - showInfo("Backup file:" + target) + showInfo("Backup file:" + target) - } + } - } + } - return + return } func xteveBackup() (archiv string, err error) { - err = checkFolder(System.Folder.Temp) - if err != nil { - return - } + err = checkFolder(System.Folder.Temp) + if err != nil { + return + } - archiv = "xteve_backup_" + time.Now().Format("20060102_1504") + ".zip" + archiv = "xteve_backup_" + time.Now().Format("20060102_1504") + ".zip" - var target = System.Folder.Temp + archiv - var sourceFiles = make([]string, 0) + var target = System.Folder.Temp + archiv + var sourceFiles = make([]string, 0) - for _, i := range SystemFiles { - sourceFiles = append(sourceFiles, System.Folder.Config+i) - } + for _, i := range SystemFiles { + sourceFiles = append(sourceFiles, System.Folder.Config+i) + } - sourceFiles = append(sourceFiles, System.Folder.Data) + sourceFiles = append(sourceFiles, System.Folder.Data) - err = zipFiles(sourceFiles, target) - if err != nil { - ShowError(err, 0) - return - } + err = zipFiles(sourceFiles, target) + if err != nil { + ShowError(err, 0) + return + } - return + return } func xteveRestore(archive string) (newWebURL string, err error) { - var newPort, oldPort, backupVersion, tmpRestore string + var newPort, oldPort, backupVersion, tmpRestore string - tmpRestore = System.Folder.Temp + "restore" + string(os.PathSeparator) + tmpRestore = System.Folder.Temp + "restore" + string(os.PathSeparator) - err = checkFolder(tmpRestore) - if err != nil { - return - } + err = checkFolder(tmpRestore) + if err != nil { + return + } - // Zip Archiv in tmp entpacken - err = extractZIP(archive, tmpRestore) - if err != nil { - return - } + // Unpack the ZIP Archive in tmp + err = extractZIP(archive, tmpRestore) + if err != nil { + return + } - // Neue Config laden um den Port und die Version zu überprüfen - newConfig, err := loadJSONFileToMap(tmpRestore + "settings.json") - if err != nil { - ShowError(err, 0) - return - } + // Load a new Config to check the Port and Version + newConfig, err := loadJSONFileToMap(tmpRestore + "settings.json") + if err != nil { + ShowError(err, 0) + return + } - backupVersion = newConfig["version"].(string) - if backupVersion < System.Compatibility { - err = errors.New(getErrMsg(1013)) - return - } + backupVersion = newConfig["version"].(string) + if backupVersion < System.Compatibility { + err = errors.New(getErrMsg(1013)) + return + } - // Zip Archiv in den Config Ordner entpacken - err = extractZIP(archive, System.Folder.Config) - if err != nil { - return - } + // Extract the ZIP Archive into the Config Folder + err = extractZIP(archive, System.Folder.Config) + if err != nil { + return + } - // Neue Config laden um den Port und die Version zu überprüfen - newConfig, err = loadJSONFileToMap(System.Folder.Config + "settings.json") - if err != nil { - ShowError(err, 0) - return - } + // Load a new Config to check the Port and Version + newConfig, err = loadJSONFileToMap(System.Folder.Config + "settings.json") + if err != nil { + ShowError(err, 0) + return + } - newPort = newConfig["port"].(string) - oldPort = Settings.Port + newPort = newConfig["port"].(string) + oldPort = Settings.Port - if newPort == oldPort { + if newPort == oldPort { - if err != nil { - ShowError(err, 0) - } + if err != nil { + ShowError(err, 0) + } - loadSettings() + loadSettings() - err := Init() - if err != nil { - ShowError(err, 0) - return "", err - } + err := Init() + if err != nil { + ShowError(err, 0) + return "", err + } - err = StartSystem(true) - if err != nil { - ShowError(err, 0) - return "", err - } + err = StartSystem(true) + if err != nil { + ShowError(err, 0) + return "", err + } - return "", err - } + return "", err + } - var url = System.URLBase + "/web/" - newWebURL = strings.Replace(url, ":"+oldPort, ":"+newPort, 1) + var url = System.URLBase + "/web/" + newWebURL = strings.Replace(url, ":"+oldPort, ":"+newPort, 1) - os.RemoveAll(tmpRestore) + os.RemoveAll(tmpRestore) - return + return } func xteveRestoreFromWeb(input string) (newWebURL string, err error) { - // Base64 Json String in base64 umwandeln - b64data := input[strings.IndexByte(input, ',')+1:] + // Convert base64 JSON string to base64 + b64data := input[strings.IndexByte(input, ',')+1:] - // Base64 in bytes umwandeln und speichern - sDec, err := b64.StdEncoding.DecodeString(b64data) + // Convert Base64 into bytes and save + sDec, err := b64.StdEncoding.DecodeString(b64data) - if err != nil { - return - } + if err != nil { + return + } - var archive = System.Folder.Temp + "restore.zip" + var archive = System.Folder.Temp + "restore.zip" - err = writeByteToFile(archive, sDec) - if err != nil { - return - } + err = writeByteToFile(archive, sDec) + if err != nil { + return + } - newWebURL, err = xteveRestore(archive) + newWebURL, err = xteveRestore(archive) - return + return } -// XteveRestoreFromCLI : Wiederherstellung über die Kommandozeile +// XteveRestoreFromCLI : Recovery from the Command Line func XteveRestoreFromCLI(archive string) (err error) { - var confirm string + var confirm string - println() - showInfo(fmt.Sprintf("Version:%s Build: %s", System.Version, System.Build)) - showInfo(fmt.Sprintf("Backup File:%s", archive)) - showInfo(fmt.Sprintf("System Folder:%s", getPlatformPath(System.Folder.Config))) - println() + println() + showInfo(fmt.Sprintf("Version:%s Build: %s", System.Version, System.Build)) + showInfo(fmt.Sprintf("Backup File:%s", archive)) + showInfo(fmt.Sprintf("System Folder:%s", getPlatformPath(System.Folder.Config))) + println() - fmt.Print("All data will be replaced with those from the backup. Should the files be restored? [yes|no]:") + fmt.Print("All data will be replaced with those from the backup. Should the files be restored? [yes|no]:") - fmt.Scanln(&confirm) + fmt.Scanln(&confirm) - switch strings.ToLower(confirm) { + switch strings.ToLower(confirm) { - case "yes": - break + case "yes": + break - case "no": - return + case "no": + return - default: - fmt.Println("Invalid input") - return + default: + fmt.Println("Invalid input") + return - } + } - if len(System.Folder.Config) > 0 { + if len(System.Folder.Config) > 0 { - err = checkFilePermission(System.Folder.Config) - if err != nil { - return - } + err = checkFilePermission(System.Folder.Config) + if err != nil { + return + } - _, err = xteveRestore(archive) - if err != nil { - return - } + _, err = xteveRestore(archive) + if err != nil { + return + } - showHighlight(fmt.Sprintf("Restor:Backup was successfully restored. %s can now be started normally", System.Name)) + showHighlight(fmt.Sprintf("Restor:Backup was successfully restored. %s can now be started normally", System.Name)) - } - return + } + return } diff --git a/src/buffer.go b/src/buffer.go index 7af38e7..40c3bdc 100644 --- a/src/buffer.go +++ b/src/buffer.go @@ -1,7 +1,7 @@ package src /* - Tuner-Limit Bild als Video rendern [ffmpeg] + Render Tuner Stream-Limit image as Video [ffmpeg] -loop 1 -i stream-limit.jpg -c:v libx264 -t 1 -pix_fmt yuv420p -vf scale=1920:1080 stream-limit.ts */ @@ -59,11 +59,11 @@ func bufferingStream(playlistID, streamingURL, channelName string, w http.Respon //w.Header().Set("Connection", "keep-alive") w.Header().Set("Connection", "close") - // Überprüfen ob die Playlist schon verwendet wird + // Check whether the Playlist is already in use if p, ok := BufferInformation.Load(playlistID); !ok { var playlistType string - // Playlist wird noch nicht verwendet, Default-Werte für die Playlist erstellen + // Playlist is not yet used, create Default Values for the Playlist playlist.Folder = System.Folder.Temp + playlistID + string(os.PathSeparator) playlist.PlaylistID = playlistID playlist.Streams = make(map[int]ThisStream) @@ -90,7 +90,7 @@ func bufferingStream(playlistID, streamingURL, channelName string, w http.Respon playlist.PlaylistName = getProviderParameter(playlist.PlaylistID, playlistType, "name") - // Default-Werte für den Stream erstellen + // Create Default Values for the Stream streamID = createStreamID(playlist.Streams) client.Connection = 1 @@ -105,8 +105,8 @@ func bufferingStream(playlistID, streamingURL, channelName string, w http.Respon } else { - // Playlist wird bereits zum streamen verwendet - // Überprüfen ob die URL bereit von einem anderen Client gestreamt wird. + // Playlist is already being used for streaming + // Check if the URL is already being streamed by another Client playlist = p.(Playlist) @@ -145,10 +145,10 @@ func bufferingStream(playlistID, streamingURL, channelName string, w http.Respon } - // Neuer Stream bei einer bereits aktiven Playlist + // New Stream for an already active Playlist if newStream == true { - // Prüfen ob die Playlist noch einen weiteren Stream erlaubt (Tuner) + // Check whether the Playlist allows another Stream (Tuner) if len(playlist.Streams) >= playlist.Tuner { showInfo(fmt.Sprintf("Streaming Status:Playlist: %s - No new connections available. Tuner = %d", playlist.PlaylistName, playlist.Tuner)) @@ -174,8 +174,8 @@ func bufferingStream(playlistID, streamingURL, channelName string, w http.Respon return } - // Playlist erlaubt einen weiterern Stream (Das Limit des Tuners ist noch nicht erreicht) - // Default-Werte für den Stream erstellen + // Playlist allows another Stream (The Tuner limit has not yet been reached) + // Create Default Values for the Stream stream = ThisStream{} client = ThisClient{} @@ -195,10 +195,10 @@ func bufferingStream(playlistID, streamingURL, channelName string, w http.Respon } - // Überprüfen ob der Stream breits von einem anderen Client abgespielt wird + // Check whether the Stream is already being played by another Client if playlist.Streams[streamID].Status == false && newStream == true { - // Neuer Buffer wird benötigt + // New buffer is required stream = playlist.Streams[streamID] stream.MD5 = getMD5(streamingURL) stream.Folder = playlist.Folder + stream.MD5 + string(os.PathSeparator) @@ -230,7 +230,7 @@ func bufferingStream(playlistID, streamingURL, channelName string, w http.Respon w.WriteHeader(200) - for { // Loop 1: Warten bis das erste Segment durch den Buffer heruntergeladen wurde + for { // Loop 1: Wait until the first Segment has been downloaded by the Buffer if p, ok := BufferInformation.Load(playlistID); ok { @@ -260,9 +260,9 @@ func bufferingStream(playlistID, streamingURL, channelName string, w http.Respon var oldSegments []string - for { // Loop 2: Temporäre Datein sind vorhanden, Daten können zum Client gesendet werden + for { // Loop 2: Temporary files are available, Data can be sent to the Client - // HTTP Clientverbindung überwachen + // Monitor HTTP Client connection cn, ok := w.(http.CloseNotifier) if ok { @@ -396,9 +396,9 @@ func bufferingStream(playlistID, streamingURL, channelName string, w http.Respon } - } // Ende BufferInformation + } // End of Buffer Information - } // Ende Loop 1 + } // End of Loop 1 } @@ -547,7 +547,7 @@ func connectToStreamingServer(streamID int, playlistID string) { var m3u8Segments []string var bandwidth BandwidthCalculation var networkBandwidth = Settings.M3U8AdaptiveBandwidthMBPS * 1e+6 - // Größe des Buffers + // Size of the Buffer var bufferSize = Settings.BufferSize var buffer = make([]byte, 1024*bufferSize*2) @@ -601,7 +601,7 @@ func connectToStreamingServer(streamID int, playlistID string) { return } - // M3U8 Segmente + // M3U8 Segments InitBuffer: defaultSegment() @@ -653,7 +653,7 @@ func connectToStreamingServer(streamID int, playlistID string) { debug = fmt.Sprintf("Connection to:%s", currentURL) showDebug(debug, 2) - // Sprung für Redirect (301 <---> 308) + // Jump for redirect (301 <---> 308) Redirect: req, err := http.NewRequest("GET", currentURL, nil) @@ -763,7 +763,7 @@ func connectToStreamingServer(streamID int, playlistID string) { return } - // Informationen über den Streamingserver auslesen + // Read out information about the streaming server if stream.Status == false { if len(stream.URLStreamingServer) == 0 { @@ -797,7 +797,7 @@ func connectToStreamingServer(streamID int, playlistID string) { } - // Content Type bereinigen + // Clean up Content Type if len(contentType) > 0 { var ct = strings.SplitN(contentType, ";", 2) contentType = strings.ToLower(ct[0]) @@ -828,7 +828,7 @@ func connectToStreamingServer(streamID int, playlistID string) { var fileSize int - // Größe des Buffers + // Size of the Buffer buffer = make([]byte, 1024*bufferSize*2) var tmpFileSize = 1024 * bufferSize * 1 @@ -865,7 +865,7 @@ func connectToStreamingServer(streamID int, playlistID string) { } timeOut = 0 - // Buffer mit Daten vom Server füllen + // Fill the Buffer with data from the Server n, err := resp.Body.Read(buffer) if err != nil && err != io.EOF { @@ -905,7 +905,7 @@ func connectToStreamingServer(streamID int, playlistID string) { } - // Buffer auf die Festplatte speichern + // Save the buffer to the Hard Disk if fileSize >= tmpFileSize/2 || n == 0 { Lock.Lock() @@ -969,7 +969,7 @@ func connectToStreamingServer(streamID int, playlistID string) { //-- - // Umbekanntes Format + // Unknown Format default: showInfo("Content Type:" + resp.Header.Get("Content-Type")) err = errors.New("Streaming error") @@ -982,7 +982,7 @@ func connectToStreamingServer(streamID int, playlistID string) { s++ - // Wartezeit für den Download das nächste Segments berechnen + // Calculate the waiting time for the Download of the next Segment if stream.HLS == true { var sleep float64 @@ -1159,7 +1159,7 @@ func parseM3U8(stream *ThisStream) (err error) { stream.DynamicStream = make(map[int]DynamicStream) } - // Parameter parsen + // Parse Parameters for i, line := range lines { _ = i @@ -1177,7 +1177,7 @@ func parseM3U8(stream *ThisStream) (err error) { } - // M3U8 enthällt mehrere Links zu weiteren M3U8 Wiedergabelisten (Bandbreitenoption) + // M3U8 contains several links to additional M3U8 Playlists (Bandwidth option) if segment.Info == true && len(line) > 0 && line[0:1] != "#" { var dynamicStream DynamicStream @@ -1420,7 +1420,7 @@ func thirdPartyBuffer(streamID int, playlistID string) { //args = strings.Replace(args, "[USER-AGENT]", Settings.UserAgent, -1) - // User-Agent setzen + // Set User-Agent var args []string for i, a := range strings.Split(options, " ") { @@ -1458,7 +1458,7 @@ func thirdPartyBuffer(streamID int, playlistID string) { debug = fmt.Sprintf("%s:%s %s", bufferType, path, args) showDebug(debug, 1) - // Byte-Daten vom Prozess + // Byte-Data from the Process stdOut, err := cmd.StdoutPipe() if err != nil { ShowError(err, 0) @@ -1468,7 +1468,7 @@ func thirdPartyBuffer(streamID int, playlistID string) { return } - // Log-Daten vom Prozess + // Log-Data from the Process logOut, err := cmd.StderrPipe() if err != nil { ShowError(err, 0) @@ -1487,7 +1487,7 @@ func thirdPartyBuffer(streamID int, playlistID string) { go func() { - // Log Daten vom Prozess im Dubug Mode 1 anzeigen. + // Show Log Data from the Process in Debug Mode 1. scanner := bufio.NewScanner(logOut) scanner.Split(bufio.ScanLines) diff --git a/src/config.go b/src/config.go index 3584168..57dc8fc 100644 --- a/src/config.go +++ b/src/config.go @@ -8,36 +8,36 @@ import ( "sync" ) -// System : Beinhaltet alle Systeminformationen +// System : Contains all System Information var System SystemStruct -// WebScreenLog : Logs werden im RAM gespeichert und für das Webinterface bereitgestellt +// WebScreenLog : Logs are saved in RAM and made available for the Web interface var WebScreenLog WebScreenLogStruct -// Settings : Inhalt der settings.json +// Settings : Content of settings.json var Settings SettingsStruct -// Data : Alle Daten werden hier abgelegt. (Lineup, XMLTV) +// Data : All data is stored here. (Lineup, XMLTV) var Data DataStruct -// SystemFiles : Alle Systemdateien +// SystemFiles : All System Files var SystemFiles = []string{"authentication.json", "pms.json", "settings.json", "xepg.json", "urls.json"} -// BufferInformation : Informationen über den Buffer (aktive Streams, maximale Streams) +// BufferInformation : Information about the Buffer (active Streams, maximum Streams) var BufferInformation sync.Map -// BufferClients : Anzahl der Clients die einen Stream über den Buffer abspielen +// BufferClients : Number of Clients playing a Stream over the Buffer var BufferClients sync.Map // Lock : Lock Map var Lock = sync.RWMutex{} -// Init : Systeminitialisierung +// Init : System Initialization func Init() (err error) { var debug string - // System Einstellungen + // System Settings System.AppName = strings.ToLower(System.Name) System.ARCH = runtime.GOARCH System.OS = runtime.GOOS @@ -50,19 +50,19 @@ func Init() (err error) { System.UnfilteredChannelLimit = 480 System.Compatibility = "1.4.4" - // FFmpeg Default Einstellungen + // FFmpeg Default Settings System.FFmpeg.DefaultOptions = "-hide_banner -loglevel error -i [URL] -c copy -f mpegts pipe:1" System.VLC.DefaultOptions = "-I dummy [URL] --sout #std{mux=ts,access=file,dst=-}" - // Default Logeinträge, wird später von denen aus der settings.json überschrieben. Muss gemacht werden, damit die ersten Einträge auch im Log (webUI aangezeigt werden) + // Default Log Entries, which will later be overwritten by those from settings.json. Needed so that the first entries are also displayed in the Log (webUI are displayed) Settings.LogEntriesRAM = 500 - // Variablen für den Update Prozess + // Variables for the Update Process //System.Update.Git = "https://github.com/xteve-project/xTeVe-Downloads/blob" System.Update.Git = fmt.Sprintf("https://github.com/%s/%s/blob", System.GitHub.User, System.GitHub.Repo) System.Update.Name = "xteve_2" - // Ordnerpfade festlegen + // Define folder paths var tempFolder = os.TempDir() + string(os.PathSeparator) + System.AppName + string(os.PathSeparator) tempFolder = getPlatformPath(strings.Replace(tempFolder, "//", "/", -1)) @@ -84,7 +84,7 @@ func Init() (err error) { // Dev Info showDevInfo() - // System Ordner erstellen + // Create System Folder err = createSystemFolders() if err != nil { ShowError(err, 1070) @@ -92,7 +92,7 @@ func Init() (err error) { } if len(System.Flag.Restore) > 0 { - // Einstellungen werden über CLI wiederhergestellt. Weitere Initialisierung ist nicht notwendig. + // Settings are restored via CLI. No further Initialization is necessary. return } @@ -111,13 +111,13 @@ func Init() (err error) { ShowError(err, 1002) } - // Menü für das Webinterface + // Menu for the Web interface System.WEB.Menu = []string{"playlist", "filter", "xmltv", "mapping", "users", "settings", "log", "logout"} fmt.Println("For help run: " + getPlatformFile(os.Args[0]) + " -h") fmt.Println() - // Überprüfen ob xTeVe als root läuft + // Check whether xTeVe is running as root if os.Geteuid() == 0 { showWarning(2110) } @@ -133,20 +133,20 @@ func Init() (err error) { showInfo("Hostname:" + System.Hostname) showInfo(fmt.Sprintf("System Folder:%s", getPlatformPath(System.Folder.Config))) - // Systemdateien erstellen (Falls nicht vorhanden) + // Create System Files (If not available) err = createSystemFiles() if err != nil { ShowError(err, 1071) return } - // Bedingte Update Änderungen durchführen + // Perform conditional Update Changes err = conditionalUpdateChanges() if err != nil { return } - // Einstellungen laden (settings.json) + // Load Settings (settings.json) showInfo(fmt.Sprintf("Load Settings:%s", System.File.Settings)) _, err = loadSettings() @@ -155,13 +155,13 @@ func Init() (err error) { return } - // Berechtigung aller Ordner überprüfen + // Check the permissions on all Folders err = checkFilePermission(System.Folder.Config) if err == nil { err = checkFilePermission(System.Folder.Temp) } - // Separaten tmp Ordner für jede Instanz + // Separate tmp Folder for each Instance //System.Folder.Temp = System.Folder.Temp + Settings.UUID + string(os.PathSeparator) showInfo(fmt.Sprintf("Temporary Folder:%s", getPlatformPath(System.Folder.Temp))) @@ -175,7 +175,7 @@ func Init() (err error) { return } - // Branch festlegen + // Set Branch System.Branch = Settings.Branch if System.Dev == true { @@ -189,12 +189,12 @@ func Init() (err error) { showInfo(fmt.Sprintf("GitHub:https://github.com/%s", System.GitHub.User)) showInfo(fmt.Sprintf("Git Branch:%s [%s]", System.Branch, System.GitHub.User)) - // Domainnamen setzten + // Set Domain Names setGlobalDomain(fmt.Sprintf("%s:%s", System.IPAddress, Settings.Port)) System.URLBase = fmt.Sprintf("%s://%s:%s", System.ServerProtocol.WEB, System.IPAddress, Settings.Port) - // HTML Dateien erstellen, mit dev == true werden die lokalen HTML Dateien verwendet + // Create HTML Files, with dev == true the local HTML Files are used if System.Dev == true { HTMLInit("webUI", "src", "html"+string(os.PathSeparator), "src"+string(os.PathSeparator)+"webUI.go") @@ -205,19 +205,19 @@ func Init() (err error) { } - // DLNA Server starten + // Start the DLNA Server err = SSDP() if err != nil { return } - // HTML Datein laden + // Load HTML Files loadHTMLMap() return } -// StartSystem : System wird gestartet +// StartSystem : System is starting up func StartSystem(updateProviderFiles bool) (err error) { setDeviceID() @@ -226,14 +226,14 @@ func StartSystem(updateProviderFiles bool) (err error) { return } - // Systeminformationen in der Konsole ausgeben + // Output System Information in the Console showInfo(fmt.Sprintf("UUID:%s", Settings.UUID)) showInfo(fmt.Sprintf("Tuner (Plex / Emby):%d", Settings.Tuner)) showInfo(fmt.Sprintf("EPG Source:%s", Settings.EpgSource)) showInfo(fmt.Sprintf("Plex Channel Limit:%d", System.PlexChannelLimit)) showInfo(fmt.Sprintf("Unfiltered Chan. Limit:%d", System.UnfilteredChannelLimit)) - // Providerdaten aktualisieren + // Update Provider Data if len(Settings.Files.M3U) > 0 && Settings.FilesUpdate == true || updateProviderFiles == true { err = xTeVeAutoBackup() diff --git a/src/data.go b/src/data.go index 3ea9bdc..095093d 100644 --- a/src/data.go +++ b/src/data.go @@ -15,7 +15,7 @@ import ( "xteve/src/internal/imgcache" ) -// Einstellungen ändern (WebUI) +// Change Settings (WebUI) func updateServerSettings(request RequestStruct) (settings SettingsStruct, err error) { var oldSettings = jsonToMap(mapToJSON(Settings)) @@ -40,7 +40,7 @@ func updateServerSettings(request RequestStruct) (settings SettingsStruct, err e reloadData = true case "update": - // Leerzeichen aus den Werten entfernen und Formatierung der Uhrzeit überprüfen (0000 - 2359) + // Remove spaces from the Values and check the formatting of the Time (0000 - 2359) var newUpdateTimes = make([]string, 0) for _, v := range value.([]interface{}) { @@ -143,7 +143,7 @@ func updateServerSettings(request RequestStruct) (settings SettingsStruct, err e } - // Einstellungen aktualisieren + // Update Settings err = json.Unmarshal([]byte(mapToJSON(oldSettings)), &Settings) if err != nil { return @@ -159,7 +159,7 @@ func updateServerSettings(request RequestStruct) (settings SettingsStruct, err e } - // Buffer Einstellungen überprüfen + // Check Buffer Settings if len(Settings.FFmpegOptions) == 0 { Settings.FFmpegOptions = System.FFmpeg.DefaultOptions } @@ -255,7 +255,7 @@ func updateServerSettings(request RequestStruct) (settings SettingsStruct, err e return } -// Providerdaten speichern (WebUI) +// Save Provider Data (WebUI) func saveFiles(request RequestStruct, fileType string) (err error) { var filesMap = make(map[string]interface{}) @@ -288,14 +288,14 @@ func saveFiles(request RequestStruct, fileType string) (err error) { if dataID == "-" { - // Neue Providerdatei + // New Provider File dataID = indicator + randomString(19) data.(map[string]interface{})["new"] = true filesMap[dataID] = data } else { - // Bereits vorhandene Providerdatei + // Existing Provider File for key, value := range data.(map[string]interface{}) { var oldData = filesMap[dataID].(map[string]interface{}) @@ -318,7 +318,7 @@ func saveFiles(request RequestStruct, fileType string) (err error) { } - // Neue Providerdatei + // New Provider File if _, ok := data.(map[string]interface{})["new"]; ok { reloadData = true @@ -362,7 +362,7 @@ func saveFiles(request RequestStruct, fileType string) (err error) { return } -// Providerdaten manuell aktualisieren (WebUI) +// Update Provider Data manually (WebUI) func updateFile(request RequestStruct, fileType string) (err error) { var updateData = make(map[string]interface{}) @@ -392,7 +392,7 @@ func updateFile(request RequestStruct, fileType string) (err error) { return } -// Providerdaten löschen (WebUI) +// Delete Provider Data (WebUI) func deleteLocalProviderFiles(dataID, fileType string) { var removeData = make(map[string]interface{}) @@ -421,7 +421,7 @@ func deleteLocalProviderFiles(dataID, fileType string) { return } -// Filtereinstellungen speichern (WebUI) +// Save Filter Settings (WebUI) func saveFilter(request RequestStruct) (settings SettingsStruct, err error) { var filterMap = make(map[int64]interface{}) @@ -450,17 +450,17 @@ func saveFilter(request RequestStruct) (settings SettingsStruct, err error) { if dataID == -1 { - // Neuer Filter + // New Filter newFilter = true dataID = createNewID() filterMap[dataID] = jsonToMap(mapToJSON(defaultFilter)) } - // Filter aktualisieren / löschen + // Update / delete filters for key, value := range data.(map[string]interface{}) { - // Filter löschen + // Clear Filters if _, ok := data.(map[string]interface{})["delete"]; ok { delete(filterMap, dataID) break @@ -505,7 +505,7 @@ func saveFilter(request RequestStruct) (settings SettingsStruct, err error) { return } -// XEPG Mapping speichern +// Save XEPG Mapping func saveXEpgMapping(request RequestStruct) (err error) { var tmp = Data.XEPG @@ -536,7 +536,7 @@ func saveXEpgMapping(request RequestStruct) (err error) { } else { - // Wenn während des erstellen der Datanbank das Mapping erneut gespeichert wird, wird die Datenbank erst später erneut aktualisiert. + // If the Mapping is saved again while the Database is being created, the Database will not be updated again until later. go func() { if System.BackgroundProcess == true { @@ -568,7 +568,7 @@ func saveXEpgMapping(request RequestStruct) (err error) { return } -// Benutzerdaten speichern (WebUI) +// Save User Data (WebUI) func saveUserData(request RequestStruct) (err error) { var userData = request.UserData @@ -624,7 +624,7 @@ func saveUserData(request RequestStruct) (err error) { return } -// Neuen Benutzer anlegen (WebUI) +// Create New User (WebUI) func saveNewUser(request RequestStruct) (err error) { var data = request.UserData @@ -745,7 +745,7 @@ func saveWizard(request RequestStruct) (nextStep int, err error) { return } -// Filterregeln erstellen +// Create Filter Rules func createFilterRules() (err error) { Data.Filter = nil @@ -792,7 +792,7 @@ func createFilterRules() (err error) { return } -// Datenbank für das DVR System erstellen +// Create a Database for the DVR System func buildDatabaseDVR() (err error) { System.ScanInProgress = 1 @@ -844,7 +844,7 @@ func buildDatabaseDVR() (err error) { playlistFile = append(playlistFile[:n], playlistFile[n+1:]...) } - // Streams analysieren + // Analyze Streams for _, stream := range channels { var s = stream.(map[string]string) @@ -852,7 +852,7 @@ func buildDatabaseDVR() (err error) { s["_file.m3u.name"] = playlistName s["_file.m3u.id"] = id - // Kompatibilität berechnen + // Calculate Compatibility for _, key := range keys { switch key { @@ -890,7 +890,7 @@ func buildDatabaseDVR() (err error) { Data.Streams.All = append(Data.Streams.All, stream) - // Neuer Filter ab Version 1.3.0 + // New Filter from Version 1.3.0 var preview string var status = filterThisStream(stream) @@ -983,7 +983,7 @@ func buildDatabaseDVR() (err error) { return } -// Speicherort aller lokalen Providerdateien laden, immer für eine Dateityp (M3U, XMLTV usw.) +// Load Storage Location of all local Provider Files, always for one File Type (M3U, XMLTV etc.) func getLocalProviderFiles(fileType string) (localFiles []string) { var fileExtension string @@ -1012,7 +1012,7 @@ func getLocalProviderFiles(fileType string) (localFiles []string) { return } -// Providerparameter anhand von dem Key ausgeben +// Output Provider Parameters based on the Key func getProviderParameter(id, fileType, key string) (s string) { var dataMap = make(map[string]interface{}) @@ -1043,7 +1043,7 @@ func getProviderParameter(id, fileType, key string) (s string) { return } -// Provider Statistiken Kompatibilität aktualisieren +// Update Provider Statistics Compatibility func setProviderCompatibility(id, fileType string, compatibility map[string]int) { var dataMap = make(map[string]interface{}) diff --git a/src/html-build.go b/src/html-build.go index 2b7ba10..b7424c4 100644 --- a/src/html-build.go +++ b/src/html-build.go @@ -18,10 +18,10 @@ var packageName string var blankMap = make(map[string]interface{}) -// HTMLInit : Dateipfade festlegen -// mapName = Name der zu erstellenden map -// htmlFolder: Ordner der HTML Dateien -// packageName: Name des package +// HTMLInit : Define file paths +// mapName = Name of the map to be created +// htmlFolder: HTML Files Folder +// packageName: Name of the package func HTMLInit(name, pkg, folder, file string) { htmlFolder = folder @@ -31,7 +31,7 @@ func HTMLInit(name, pkg, folder, file string) { } -// BuildGoFile : Erstellt das GO Dokument +// BuildGoFile : Creates the GO Document func BuildGoFile() error { var err = checkHTMLFile(htmlFolder) diff --git a/src/images.go b/src/images.go index 04dd256..9e891af 100644 --- a/src/images.go +++ b/src/images.go @@ -1,30 +1,30 @@ package src import ( - b64 "encoding/base64" - "fmt" - "strings" + b64 "encoding/base64" + "fmt" + "strings" ) func uploadLogo(input, filename string) (logoURL string, err error) { - b64data := input[strings.IndexByte(input, ',')+1:] + b64data := input[strings.IndexByte(input, ',')+1:] - // BAse64 in bytes umwandeln un speichern - sDec, err := b64.StdEncoding.DecodeString(b64data) - if err != nil { - return - } + // Convert Base64 into bytes and save + sDec, err := b64.StdEncoding.DecodeString(b64data) + if err != nil { + return + } - var file = fmt.Sprintf("%s%s", System.Folder.ImagesUpload, filename) + var file = fmt.Sprintf("%s%s", System.Folder.ImagesUpload, filename) - err = writeByteToFile(file, sDec) - if err != nil { - return - } + err = writeByteToFile(file, sDec) + if err != nil { + return + } - logoURL = fmt.Sprintf("%s://%s/data_images/%s", System.ServerProtocol.XML, System.Domain, filename) + logoURL = fmt.Sprintf("%s://%s/data_images/%s", System.ServerProtocol.XML, System.Domain, filename) - return + return } diff --git a/src/info.go b/src/info.go index 26c5605..c3e0e3e 100644 --- a/src/info.go +++ b/src/info.go @@ -1,100 +1,100 @@ package src import ( - "fmt" - "strings" + "fmt" + "strings" ) -// ShowSystemInfo : Systeminformationen anzeigen +// ShowSystemInfo : View System Information func ShowSystemInfo() { - fmt.Print("Creating the information takes a moment...") - err := buildDatabaseDVR() - if err != nil { - ShowError(err, 0) - return - } + fmt.Print("Creating the information takes a moment...") + err := buildDatabaseDVR() + if err != nil { + ShowError(err, 0) + return + } - buildXEPG(false) + buildXEPG(false) - fmt.Println("OK") - println() + fmt.Println("OK") + println() - fmt.Println(fmt.Sprintf("Version: %s %s.%s", System.Name, System.Version, System.Build)) - fmt.Println(fmt.Sprintf("Branch: %s", System.Branch)) - fmt.Println(fmt.Sprintf("GitHub: %s/%s | Git update = %t", System.GitHub.User, System.GitHub.Repo, System.GitHub.Update)) - fmt.Println(fmt.Sprintf("Folder (config): %s", System.Folder.Config)) + fmt.Println(fmt.Sprintf("Version: %s %s.%s", System.Name, System.Version, System.Build)) + fmt.Println(fmt.Sprintf("Branch: %s", System.Branch)) + fmt.Println(fmt.Sprintf("GitHub: %s/%s | Git update = %t", System.GitHub.User, System.GitHub.Repo, System.GitHub.Update)) + fmt.Println(fmt.Sprintf("Folder (config): %s", System.Folder.Config)) - fmt.Println(fmt.Sprintf("Streams: %d / %d", len(Data.Streams.Active), len(Data.Streams.All))) - fmt.Println(fmt.Sprintf("Filter: %d", len(Data.Filter))) - fmt.Println(fmt.Sprintf("XEPG Chanels: %d", int(Data.XEPG.XEPGCount))) + fmt.Println(fmt.Sprintf("Streams: %d / %d", len(Data.Streams.Active), len(Data.Streams.All))) + fmt.Println(fmt.Sprintf("Filter: %d", len(Data.Filter))) + fmt.Println(fmt.Sprintf("XEPG Chanels: %d", int(Data.XEPG.XEPGCount))) - println() - fmt.Println(fmt.Sprintf("IPv4 Addresses:")) + println() + fmt.Println(fmt.Sprintf("IPv4 Addresses:")) - for i, ipv4 := range System.IPAddressesV4 { + for i, ipv4 := range System.IPAddressesV4 { - switch count := i; { + switch count := i; { - case count < 10: - fmt.Println(fmt.Sprintf(" %d. %s", count, ipv4)) - break - case count < 100: - fmt.Println(fmt.Sprintf(" %d. %s", count, ipv4)) - break + case count < 10: + fmt.Println(fmt.Sprintf(" %d. %s", count, ipv4)) + break + case count < 100: + fmt.Println(fmt.Sprintf(" %d. %s", count, ipv4)) + break - } + } - } + } - println() - fmt.Println(fmt.Sprintf("IPv6 Addresses:")) + println() + fmt.Println(fmt.Sprintf("IPv6 Addresses:")) - for i, ipv4 := range System.IPAddressesV6 { + for i, ipv4 := range System.IPAddressesV6 { - switch count := i; { + switch count := i; { - case count < 10: - fmt.Println(fmt.Sprintf(" %d. %s", count, ipv4)) - break - case count < 100: - fmt.Println(fmt.Sprintf(" %d. %s", count, ipv4)) - break + case count < 10: + fmt.Println(fmt.Sprintf(" %d. %s", count, ipv4)) + break + case count < 100: + fmt.Println(fmt.Sprintf(" %d. %s", count, ipv4)) + break - } + } - } + } - println("---") + println("---") - fmt.Println("Settings [General]") - fmt.Println(fmt.Sprintf("xTeVe Update: %t", Settings.XteveAutoUpdate)) - fmt.Println(fmt.Sprintf("UUID: %s", Settings.UUID)) - fmt.Println(fmt.Sprintf("Tuner (Plex / Emby): %d", Settings.Tuner)) - fmt.Println(fmt.Sprintf("EPG Source: %s", Settings.EpgSource)) + fmt.Println("Settings [General]") + fmt.Println(fmt.Sprintf("xTeVe Update: %t", Settings.XteveAutoUpdate)) + fmt.Println(fmt.Sprintf("UUID: %s", Settings.UUID)) + fmt.Println(fmt.Sprintf("Tuner (Plex / Emby): %d", Settings.Tuner)) + fmt.Println(fmt.Sprintf("EPG Source: %s", Settings.EpgSource)) - println("---") + println("---") - fmt.Println("Settings [Files]") - fmt.Println(fmt.Sprintf("Schedule: %s", strings.Join(Settings.Update, ","))) - fmt.Println(fmt.Sprintf("Files Update: %t", Settings.FilesUpdate)) - fmt.Println(fmt.Sprintf("Folder (tmp): %s", Settings.TempPath)) - fmt.Println(fmt.Sprintf("Image Chaching: %t", Settings.CacheImages)) - fmt.Println(fmt.Sprintf("Replace EPG Image: %t", Settings.XepgReplaceMissingImages)) + fmt.Println("Settings [Files]") + fmt.Println(fmt.Sprintf("Schedule: %s", strings.Join(Settings.Update, ","))) + fmt.Println(fmt.Sprintf("Files Update: %t", Settings.FilesUpdate)) + fmt.Println(fmt.Sprintf("Folder (tmp): %s", Settings.TempPath)) + fmt.Println(fmt.Sprintf("Image Chaching: %t", Settings.CacheImages)) + fmt.Println(fmt.Sprintf("Replace EPG Image: %t", Settings.XepgReplaceMissingImages)) - println("---") + println("---") - fmt.Println("Settings [Streaming]") - fmt.Println(fmt.Sprintf("Buffer: %s", Settings.Buffer)) - fmt.Println(fmt.Sprintf("UDPxy: %s", Settings.UDPxy)) - fmt.Println(fmt.Sprintf("Buffer Size: %d KB", Settings.BufferSize)) - fmt.Println(fmt.Sprintf("Timeout: %d ms", int(Settings.BufferTimeout))) - fmt.Println(fmt.Sprintf("User Agent: %s", Settings.UserAgent)) + fmt.Println("Settings [Streaming]") + fmt.Println(fmt.Sprintf("Buffer: %s", Settings.Buffer)) + fmt.Println(fmt.Sprintf("UDPxy: %s", Settings.UDPxy)) + fmt.Println(fmt.Sprintf("Buffer Size: %d KB", Settings.BufferSize)) + fmt.Println(fmt.Sprintf("Timeout: %d ms", int(Settings.BufferTimeout))) + fmt.Println(fmt.Sprintf("User Agent: %s", Settings.UserAgent)) - println("---") + println("---") - fmt.Println("Settings [Backup]") - fmt.Println(fmt.Sprintf("Folder (backup): %s", Settings.BackupPath)) - fmt.Println(fmt.Sprintf("Backup Keep: %d", Settings.BackupKeep)) + fmt.Println("Settings [Backup]") + fmt.Println(fmt.Sprintf("Folder (backup): %s", Settings.BackupPath)) + fmt.Println(fmt.Sprintf("Backup Keep: %d", Settings.BackupKeep)) } diff --git a/src/m3u.go b/src/m3u.go index efb5231..8f497f6 100644 --- a/src/m3u.go +++ b/src/m3u.go @@ -12,7 +12,7 @@ import ( m3u "xteve/src/internal/m3u-parser" ) -// Playlisten parsen +// Parse Playlists func parsePlaylist(filename, fileType string) (channels []interface{}, err error) { content, err := readByteFromFile(filename) @@ -33,7 +33,7 @@ func parsePlaylist(filename, fileType string) (channels []interface{}, err error return } -// Streams filtern +// Filter Streams func filterThisStream(s interface{}) (status bool) { status = false @@ -61,7 +61,7 @@ func filterThisStream(s interface{}) (status bool) { name = v } - // Unerwünschte Streams !{DEU} + // Unwanted Streams !{DEU} r := regexp.MustCompile(regexpNO) val := r.FindStringSubmatch(filter.Rule) @@ -73,7 +73,7 @@ func filterThisStream(s interface{}) (status bool) { } - // Muss zusätzlich erfüllt sein {DEU} + // Required Streams {DEU} r = regexp.MustCompile(regexpYES) val = r.FindStringSubmatch(filter.Rule) @@ -139,7 +139,7 @@ func filterThisStream(s interface{}) (status bool) { return false } -// Bedingungen für den Filter +// Conditions for the Filter func checkConditions(streamValues, conditions, coType string) (status bool) { switch coType { @@ -178,7 +178,7 @@ func checkConditions(streamValues, conditions, coType string) (status bool) { return } -// xTeVe M3U Datei erstellen +// Create xTeVe M3U file func buildM3U(groups []string) (m3u string, err error) { var imgc = Data.Cache.Images @@ -215,7 +215,7 @@ func buildM3U(groups []string) (m3u string, err error) { Done: } - // M3U Inhalt erstellen + // Create M3U Content sort.Float64s(channelNumbers) var xmltvURL = fmt.Sprintf("%s://%s/xmltv/xteve.xml", System.ServerProtocol.XML, System.Domain) diff --git a/src/maintenance.go b/src/maintenance.go index 76c499c..2dc26d1 100644 --- a/src/maintenance.go +++ b/src/maintenance.go @@ -6,7 +6,7 @@ import ( "time" ) -// InitMaintenance : Wartungsprozess initialisieren +// InitMaintenance : Initialize maintenance process func InitMaintenance() (err error) { rand.Seed(time.Now().Unix()) @@ -23,7 +23,7 @@ func maintenance() { var t = time.Now() - // Aktualisierung der Playlist und XMLTV Dateien + // Update the playlist and XMLTV files if System.ScanInProgress == 0 { for _, schedule := range Settings.Update { @@ -32,13 +32,13 @@ func maintenance() { showInfo("Update:" + schedule) - // Backup erstellen + // Create a backup err := xTeVeAutoBackup() if err != nil { ShowError(err, 000) } - // Playlist und XMLTV Dateien aktualisieren + // Update Playlist and XMLTV Files getProviderData("m3u", "") getProviderData("hdhr", "") @@ -46,7 +46,7 @@ func maintenance() { getProviderData("xmltv", "") } - // Datenbank für DVR erstellen + // Create database for DVR err = buildDatabaseDVR() if err != nil { ShowError(err, 000) @@ -56,7 +56,7 @@ func maintenance() { removeChildItems(System.Folder.ImagesCache) } - // XEPG Dateien erstellen + // Create XEPG Files Data.Cache.XMLTV = make(map[string]XMLTV) buildXEPG(false) diff --git a/src/provider.go b/src/provider.go index f376b3a..3acbd01 100644 --- a/src/provider.go +++ b/src/provider.go @@ -11,7 +11,7 @@ import ( m3u "xteve/src/internal/m3u-parser" ) -// fileType: Welcher Dateityp soll aktualisiert werden (m3u, hdhr, xml) | fileID: Update einer bestimmten Datei (Provider ID) +// fileType: Which File Type should be updated (m3u, hdhr, xml) | fileID: Update a specific File (Provider ID) func getProviderData(fileType, fileID string) (err error) { var fileExtension, serverFileName string @@ -30,7 +30,7 @@ func getProviderData(fileType, fileID string) (err error) { dataMap[id] = data } - // Default keys für die Providerdaten + // Default keys for the Provider Data var keys = []string{"name", "description", "type", "file." + System.AppName, "file.source", "tuner", "last.update", "compatibility", "counter.error", "counter.download", "provider.availability"} for _, key := range keys { @@ -85,14 +85,14 @@ func getProviderData(fileType, fileID string) (err error) { data["id.provider"] = id } - // Datei extrahieren + // Extract File body, err = extractGZIP(body, fileSource) if err != nil { ShowError(err, 000) return } - // Daten überprüfen + // Check Data showInfo("Check File:" + fileSource) switch fileType { @@ -151,7 +151,7 @@ func getProviderData(fileType, fileID string) (err error) { delete(data, "new") } - // Wenn eine ID vorhanden ist und nicht mit der aus der Datanbank übereinstimmt, wird die Aktualisierung übersprungen (goto) + // If an ID is available and does not match the one from the Database, the Update is skipped (goto) if len(fileID) > 0 && newProvider == false { if dataID != fileID { goto Done @@ -162,7 +162,7 @@ func getProviderData(fileType, fileID string) (err error) { case "hdhr": - // Laden vom HDHomeRun Tuner + // Load from the HDHomeRun Tuner showInfo("Tuner:" + fileSource) var tunerURL = "http://" + fileSource + "/lineup.json" serverFileName, body, err = downloadFileFromServer(tunerURL) @@ -171,13 +171,13 @@ func getProviderData(fileType, fileID string) (err error) { if strings.Contains(fileSource, "http://") || strings.Contains(fileSource, "https://") { - // Laden vom Remote Server + // Load from the Remote Server showInfo("Download:" + fileSource) serverFileName, body, err = downloadFileFromServer(fileSource) } else { - // Laden einer lokalen Datei + // Load a local File showInfo("Open:" + fileSource) err = checkFile(fileSource) @@ -206,7 +206,7 @@ func getProviderData(fileType, fileID string) (err error) { if newProvider == false { - // Prüfen ob ältere Datei vorhanden ist + // Check whether there is an older File var file = System.Folder.Data + dataID + fileExtension err = checkFile(file) @@ -219,7 +219,7 @@ func getProviderData(fileType, fileID string) (err error) { err = downloadErr } - // Fehler Counter um 1 erhöhen + // Increase Error Counter by 1 var data = make(map[string]interface{}) if value, ok := dataMap[dataID].(map[string]interface{}); ok { @@ -235,7 +235,7 @@ func getProviderData(fileType, fileID string) (err error) { } - // Berechnen der Fehlerquote + // Calculate the Margin of Error if newProvider == false { if value, ok := dataMap[dataID].(map[string]interface{}); ok { @@ -294,7 +294,7 @@ func downloadFileFromServer(providerURL string) (filename string, body []byte, e return } - // Dateiname aus dem Header holen + // Get the File Mame from the Header var index = strings.Index(resp.Header.Get("Content-Disposition"), "filename") if index > -1 { diff --git a/src/screen.go b/src/screen.go index b3ac4df..0cc3229 100644 --- a/src/screen.go +++ b/src/screen.go @@ -124,7 +124,7 @@ func showWarning(errCode int) { return } -// ShowError : Zeigt die Fehlermeldungen in der Konsole +// ShowError : Shows the Error Messages in the Console func ShowError(err error, errCode int) { var mutex = sync.RWMutex{} @@ -214,7 +214,7 @@ func logCleanUp() { return } -// Fehlercodes +// Return Error Message from numeric Error Codes func getErrMsg(errCode int) (errMsg string) { switch errCode { @@ -251,7 +251,7 @@ func getErrMsg(errCode int) (errMsg string) { case 1020: errMsg = fmt.Sprintf("Data could not be saved, invalid keyword") - // Datenbank Update + // Database Update case 1030: errMsg = fmt.Sprintf("Invalid settings file (%s)", System.File.Settings) case 1031: @@ -264,7 +264,7 @@ func getErrMsg(errCode int) (errMsg string) { case 1060: errMsg = fmt.Sprintf("Invalid characters found in the tvg parameters, streams with invalid parameters were skipped.") - // Dateisystem + // Filesystem case 1070: errMsg = fmt.Sprintf("Folder could not be created.") case 1071: @@ -288,7 +288,7 @@ func getErrMsg(errCode int) (errMsg string) { case 1200: errMsg = fmt.Sprintf("Could not create file") - // Stream URL Fehler + // Stream URL Error case 1201: errMsg = fmt.Sprintf("Plex stream error") case 1202: @@ -337,7 +337,7 @@ func getErrMsg(errCode int) (errMsg string) { case 2302: errMsg = fmt.Sprintf("Channel ID in the XMLTV file has changed. Channel has been deactivated.") - // Benutzerauthentifizierung + // User Authentication case 3000: errMsg = fmt.Sprintf("Database for user authentication could not be initialized.") case 3001: diff --git a/src/struct-buffer.go b/src/struct-buffer.go index b56e2d5..6c4cf5f 100644 --- a/src/struct-buffer.go +++ b/src/struct-buffer.go @@ -2,7 +2,7 @@ package src import "time" -// Playlist : Enthält allen Playlistinformationen, die der Buffer benötigr +// Playlist : Contains all Playlist Information that the Buffer needs type Playlist struct { Folder string PlaylistID string @@ -13,12 +13,12 @@ type Playlist struct { Streams map[int]ThisStream } -// ThisClient : Clientinfos +// ThisClient : Client Information type ThisClient struct { Connection int } -// ThisStream : Enthält Informationen zu dem abzuspielenden Stream einer Playlist +// ThisStream : Contains Information about the Playlist Stream to be played type ThisStream struct { ChannelName string Error string @@ -32,7 +32,7 @@ type ThisStream struct { Segment []Segment - // Serverinformationen + // Server information Location string URLFile string URLHost string @@ -41,7 +41,7 @@ type ThisStream struct { URLScheme string URLStreamingServer string - // Wird nur für HLS / M3U8 verwendet + // Is only used for HLS / M3U8 Body string Difference float64 Duration float64 @@ -62,11 +62,11 @@ type ThisStream struct { DynamicStream map[int]DynamicStream - // Lokale Temp Datein + // Local Temp Files OldSegments []string } -// Segment : URL Segmente (HLS / M3U8) +// Segment : URL Segments (HLS / M3U8) type Segment struct { Duration float64 Info bool @@ -85,7 +85,7 @@ type Segment struct { } } -// DynamicStream : Streaminformationen bei dynamischer Bandbreite +// DynamicStream : Stream Information with dynamic Bandwidth type DynamicStream struct { AverageBandwidth int Bandwidth int @@ -94,13 +94,13 @@ type DynamicStream struct { URL string } -// ClientConnection : Client Verbindungen +// ClientConnection : Client Connections type ClientConnection struct { Connection int Error error } -// BandwidthCalculation : Bandbreitenberechnung für den Stream +// BandwidthCalculation : Bandwidth Calculation for the Stream type BandwidthCalculation struct { NetworkBandwidth int Size int diff --git a/src/struct-hdhr.go b/src/struct-hdhr.go index f0376ce..7a361fe 100644 --- a/src/struct-hdhr.go +++ b/src/struct-hdhr.go @@ -53,7 +53,7 @@ type Lineup []interface { //URL string `json:"URL"` } -// LineupStream : HDHR einzelner Stream im Lineup +// LineupStream : HDHR single Stream in the Lineup type LineupStream struct { GuideName string `json:"GuideName"` GuideNumber string `json:"GuideNumber"` diff --git a/src/struct-system.go b/src/struct-system.go index 595f4d2..2db320d 100644 --- a/src/struct-system.go +++ b/src/struct-system.go @@ -2,7 +2,7 @@ package src import "xteve/src/internal/imgcache" -// SystemStruct : Beinhaltet alle Systeminformationen +// SystemStruct : Contains all System Information type SystemStruct struct { Addresses struct { DVR string @@ -109,13 +109,13 @@ type SystemStruct struct { } } -// GitStruct : Updateinformationen von GitHub +// GitStruct : Update information from GitHub type GitStruct struct { Filename string `json:"filename"` Version string `json:"version"` } -// DataStruct : Alle Daten werden hier abgelegt. (Lineup, XMLTV) +// DataStruct : All Data is stored here. (Lineup, XMLTV) type DataStruct struct { Cache struct { Images *imgcache.Cache @@ -165,14 +165,14 @@ type DataStruct struct { } } -// Filter : Wird für die Filterregeln verwendet +// Filter : Used for the Filter Rules type Filter struct { CaseSensitive bool Rule string Type string } -// XEPGChannelStruct : XEPG Struktur +// XEPGChannelStruct : XEPG Structure type XEPGChannelStruct struct { FileM3UID string `json:"_file.m3u.id,required"` FileM3UName string `json:"_file.m3u.name,required"` @@ -199,7 +199,7 @@ type XEPGChannelStruct struct { XDescription string `json:"x-description,required"` } -// M3UChannelStructXEPG : M3U Struktur für XEPG +// M3UChannelStructXEPG : M3U Structure for XEPG type M3UChannelStructXEPG struct { FileM3UID string `json:"_file.m3u.id,required"` FileM3UName string `json:"_file.m3u.name,required"` @@ -215,7 +215,7 @@ type M3UChannelStructXEPG struct { Values string `json:"_values,required"` } -// FilterStruct : Filter Struktur +// FilterStruct : Filter Structure type FilterStruct struct { Active bool `json:"active,required"` CaseSensitive bool `json:"caseSensitive,required"` @@ -228,12 +228,12 @@ type FilterStruct struct { Type string `json:"type,required"` } -// StreamingURLS : Informationen zu allen streaming URL's +// StreamingURLS : Information on all Streaming URL's type StreamingURLS struct { Streams map[string]StreamInfo `json:"channels,required"` } -// StreamInfo : Informationen zum Kanal für die streaming URL +// StreamInfo : Information about the Channel for the Streaming URL type StreamInfo struct { ChannelNumber string `json:"channelNumber,required"` Name string `json:"name,required"` @@ -242,7 +242,7 @@ type StreamInfo struct { URLid string `json:"urlID,required"` } -// Notification : Notifikationen im Webinterface +// Notification : Notifications in the Web Interface type Notification struct { Headline string `json:"headline,required"` Message string `json:"message,required"` @@ -251,7 +251,7 @@ type Notification struct { Type string `json:"type,required"` } -// SettingsStruct : Inhalt der settings.json +// SettingsStruct : Content of settings.json type SettingsStruct struct { API bool `json:"api"` AuthenticationAPI bool `json:"authentication.api"` @@ -271,8 +271,8 @@ type SettingsStruct struct { FFmpegPath string `json:"ffmpeg.path"` VLCOptions string `json:"vlc.options"` VLCPath string `json:"vlc.path"` - FileM3U []string `json:"file,omitempty"` // Beim Wizard wird die M3U in ein Slice gespeichert - FileXMLTV []string `json:"xmltv,omitempty"` // Altes Speichersystem der Provider XML Datei Slice (Wird für die Umwandlung auf das neue benötigt) + FileM3U []string `json:"file,omitempty"` // In the Wizard, the M3U is saved in a Slice + FileXMLTV []string `json:"xmltv,omitempty"` // Old Storage System of the provider XML File Slice (Required for the conversion to the new one) Files struct { HDHR map[string]interface{} `json:"hdhr"` @@ -301,7 +301,7 @@ type SettingsStruct struct { XteveAutoUpdate bool `json:"xteveAutoUpdate"` } -// LanguageUI : Sprache für das WebUI +// LanguageUI : Language for the WebUI type LanguageUI struct { Login struct { Failed string diff --git a/src/struct-webserver.go b/src/struct-webserver.go index e87abcb..c0192b3 100644 --- a/src/struct-webserver.go +++ b/src/struct-webserver.go @@ -1,11 +1,11 @@ package src -// RequestStruct : Anfragen über die Websocket Schnittstelle +// RequestStruct : Requests via the Websocket Interface type RequestStruct struct { - // Befehle an xTeVe + // Commands to xTeVe Cmd string `json:"cmd,required"` - // Benutzer + // User DeleteUser bool `json:"deleteUser,omitempty"` UserData map[string]interface{} `json:"userData,omitempty"` @@ -15,7 +15,7 @@ type RequestStruct struct { // Restore Base64 string `json:"base64,omitempty"` - // Neue Werte für die Einstellungen (settings.json) + // New Values for the Settings (settings.json) Settings struct { API *bool `json:"api,omitempty"` AuthenticationAPI *bool `json:"authentication.api,omitempty"` @@ -52,7 +52,7 @@ type RequestStruct struct { // Filter Filter map[int64]interface{} `json:"filter,omitempty"` - // Dateien (M3U, HDHR, XMLTV) + // Files (M3U, HDHR, XMLTV) Files struct { HDHR map[string]interface{} `json:"hdhr,omitempty"` M3U map[string]interface{} `json:"m3u,omitempty"` @@ -68,7 +68,7 @@ type RequestStruct struct { } `json:"wizard,omitempty"` } -// ResponseStruct : Antworten an den Client (WEB) +// ResponseStruct : Responses to the Client (WEB) type ResponseStruct struct { ClientInfo struct { ARCH string `json:"arch"` @@ -120,7 +120,7 @@ type ResponseStruct struct { Notification map[string]Notification `json:"notification,omitempty"` } -// APIRequestStruct : Anfrage über die API Schnittstelle +// APIRequestStruct : Request via the API interface type APIRequestStruct struct { Cmd string `json:"cmd"` Password string `json:"password"` @@ -128,7 +128,7 @@ type APIRequestStruct struct { Username string `json:"username"` } -// APIResponseStruct : Antwort an den Client (API) +// APIResponseStruct : Response to the Client (API) type APIResponseStruct struct { EpgSource string `json:"epg.source,omitempty"` Error string `json:"err,omitempty"` @@ -144,7 +144,7 @@ type APIResponseStruct struct { VersionXteve string `json:"version.xteve,omitempty"` } -// WebScreenLogStruct : Logs werden im RAM gespeichert und für das Webinterface bereitgestellt +// WebScreenLogStruct : Logs are saved in RAM and made available for the Web Interface type WebScreenLogStruct struct { Errors int `json:"errors,required"` Log []string `json:"log,required"` diff --git a/src/struct-xml.go b/src/struct-xml.go index c79f385..e514b01 100644 --- a/src/struct-xml.go +++ b/src/struct-xml.go @@ -2,7 +2,7 @@ package src import "encoding/xml" -// XMLTV : XMLTV Datei +// XMLTV : XMLTV File type XMLTV struct { Generator string `xml:"generator-info-name,attr"` Source string `xml:"source-info-name,attr"` @@ -12,24 +12,24 @@ type XMLTV struct { Program []*Program `xml:"programme"` } -// Channel : Kanäle +// Channel : Channels type Channel struct { ID string `xml:"id,attr"` DisplayName []DisplayName `xml:"display-name"` Icon Icon `xml:"icon"` } -// DisplayName : Kanalname +// DisplayName : Channel Name type DisplayName struct { Value string `xml:",chardata"` } -// Icon : Senderlogo +// Icon : Station Logo type Icon struct { Src string `xml:"src,attr"` } -// Program : Programme +// Program : Programs type Program struct { Channel string `xml:"channel,attr"` Start string `xml:"start,attr"` @@ -54,61 +54,61 @@ type Program struct { Premiere *Live `xml:"premiere"` } -// Title : Programmtitel +// Title : Program Title type Title struct { Lang string `xml:"lang,attr"` Value string `xml:",chardata"` } -// SubTitle : Kurzbeschreibung +// SubTitle : Brief Description type SubTitle struct { Lang string `xml:"lang,attr"` Value string `xml:",chardata"` } -//Desc : Programmbeschreibung +//Desc : Program Description type Desc struct { Lang string `xml:"lang,attr"` Value string `xml:",chardata"` } -// Category : Kategorien +// Category : Categories type Category struct { Lang string `xml:"lang,attr"` Value string `xml:",chardata"` } -// Rating : Bewertung +// Rating : Rating type Rating struct { System string `xml:"system,attr"` Value string `xml:"value"` Icon []Icon `xml:"icon"` } -// StarRating : Bewertung / Kritiken +// StarRating : Rating / Reviews type StarRating struct { Value string `xml:"value"` System string `xml:"system,attr"` } -// Language : Sprachen +// Language : Langueages type Language struct { Value string `xml:",chardata"` } -// Country : Länder +// Country : Countries type Country struct { Lang string `xml:"lang,attr"` Value string `xml:",chardata"` } -// EpisodeNum : Episodennummerierung +// EpisodeNum : Episode Numbering type EpisodeNum struct { System string `xml:"system,attr"` Value string `xml:",chardata"` } -// Poster : Programmposter / Cover +// Poster : Program Poster / Cover type Poster struct { Height string `xml:"height,attr"` Src string `xml:"src,attr"` @@ -151,7 +151,7 @@ type Producer struct { Value string `xml:",chardata"` } -// Video : Video Metadaten +// Video : Video Metadata type Video struct { Aspect string `xml:"aspect,omitempty"` Colour string `xml:"colour,omitempty"` @@ -159,17 +159,17 @@ type Video struct { Quality string `xml:"quality,omitempty"` } -// PreviouslyShown : Widerholung bzw. Erstausstrahlung +// PreviouslyShown : Repetition or first Broadcast type PreviouslyShown struct { Start string `xml:"start,attr"` } -// New : Sendung als neu deklarieren +// New : Declare the Broadcast as new type New struct { Value string `xml:",chardata"` } -// Live : Sendung als Liveübertragung deklarieren +// Live : Declare the Broadcast as a Live Broadcast type Live struct { Value string `xml:",chardata"` } diff --git a/src/system.go b/src/system.go index 82be0e1..a355d82 100644 --- a/src/system.go +++ b/src/system.go @@ -10,7 +10,7 @@ import ( "time" ) -// Entwicklerinfos anzeigen +// Show Developer Information func showDevInfo() { if System.Dev == true { @@ -28,7 +28,7 @@ func showDevInfo() { return } -// Alle Systemordner erstellen +// Create all System Folders func createSystemFolders() (err error) { e := reflect.ValueOf(&System.Folder).Elem() @@ -48,7 +48,7 @@ func createSystemFolders() (err error) { return } -// Alle Systemdateien erstellen +// Create all System Files func createSystemFiles() (err error) { var debug string @@ -58,7 +58,7 @@ func createSystemFiles() (err error) { err = checkFile(filename) if err != nil { - // Datei existiert nicht, wird jetzt erstellt + // File does not exist, will be created now err = saveMapToJSONFile(filename, make(map[string]interface{})) if err != nil { return @@ -89,7 +89,7 @@ func createSystemFiles() (err error) { return } -// Einstellungen laden und default Werte setzen (xTeVe) +// Load Settings and set Default Values (xTeVe) func loadSettings() (settings SettingsStruct, err error) { settingsMap, err := loadJSONFileToMap(System.File.Settings) @@ -97,7 +97,7 @@ func loadSettings() (settings SettingsStruct, err error) { return } - // Deafult Werte setzten + // Set Deafult Values var defaults = make(map[string]interface{}) var dataMap = make(map[string]interface{}) @@ -140,7 +140,7 @@ func loadSettings() (settings SettingsStruct, err error) { defaults["xteveAutoUpdate"] = true defaults["temp.path"] = System.Folder.Temp - // Default Werte setzen + // Set Default Values for key, value := range defaults { if _, ok := settingsMap[key]; !ok { settingsMap[key] = value @@ -152,7 +152,7 @@ func loadSettings() (settings SettingsStruct, err error) { return } - // Einstellungen von den Flags übernehmen + // Adopt the settings from the Flags if len(System.Flag.Port) > 0 { settings.Port = System.Flag.Port } @@ -174,7 +174,7 @@ func loadSettings() (settings SettingsStruct, err error) { err = saveSettings(settings) - // Warung wenn FFmpeg nicht gefunden wurde + // Warning if FFmpeg was not found if len(Settings.FFmpegPath) == 0 && Settings.Buffer == "ffmpeg" { showWarning(2020) } @@ -186,7 +186,7 @@ func loadSettings() (settings SettingsStruct, err error) { return } -// Einstellungen speichern (xTeVe) +// Save Settings (xTeVe) func saveSettings(settings SettingsStruct) (err error) { if settings.BackupKeep == 0 { @@ -219,7 +219,7 @@ func saveSettings(settings SettingsStruct) (err error) { return } -// Zugriff über die Domain ermöglichen +// Enable access via the Domain func setGlobalDomain(domain string) { System.Domain = domain @@ -253,13 +253,13 @@ func setGlobalDomain(domain string) { return } -// UUID generieren +// Generate UUID func createUUID() (uuid string) { uuid = time.Now().Format("2006-01") + "-" + randomString(4) + "-" + randomString(6) return } -// Eindeutige Geräte ID für Plex generieren +// Generate Unique Device ID for Plex func setDeviceID() { var id = Settings.UUID @@ -275,7 +275,7 @@ func setDeviceID() { return } -// Provider Streaming-URL zu xTeVe Streaming-URL konvertieren +// Convert Provider Streaming URL to xTeVe Streaming URL func createStreamingURL(streamingType, playlistID, channelNumber, channelName, url string) (streamingURL string, err error) { var streamInfo StreamInfo diff --git a/src/toolchain.go b/src/toolchain.go index 19e7f3c..a31de80 100644 --- a/src/toolchain.go +++ b/src/toolchain.go @@ -20,14 +20,14 @@ import ( // --- System Tools --- -// Prüft ob der Ordner existiert, falls nicht, wir der Ordner erstellt +// Checks whether the Folder exists, if not, the Folder is created func checkFolder(path string) (err error) { var debug string _, err = os.Stat(filepath.Dir(path)) if os.IsNotExist(err) { - // Ordner existiert nicht, wird jetzt erstellt + // Folder does not exist, will now be created err = os.MkdirAll(getPlatformPath(path), 0755) if err == nil { @@ -45,7 +45,7 @@ func checkFolder(path string) (err error) { return nil } -// Prüft ob die Datei im Dateisystem existiert +// Checks whether the File exists in the Filesystem func checkFile(filename string) (err error) { var file = getPlatformFile(filename) @@ -69,7 +69,7 @@ func checkFile(filename string) (err error) { return } -// GetUserHomeDirectory : Benutzer Homer Verzeichnis +// GetUserHomeDirectory : User Home Directory func GetUserHomeDirectory() (userHomeDirectory string) { usr, err := user.Current() @@ -92,7 +92,7 @@ func GetUserHomeDirectory() (userHomeDirectory string) { return } -// Prüft Dateiberechtigung +// Checks File Permissions func checkFilePermission(dir string) (err error) { var filename = dir + "permission.test" @@ -105,12 +105,12 @@ func checkFilePermission(dir string) (err error) { return } -// Ordnerpfad für das laufende OS generieren +// Generate folder path for the running OS func getPlatformPath(path string) string { return filepath.Dir(path) + string(os.PathSeparator) } -// Dateipfad für das laufende OS generieren +// Generate File Path for the running OS func getPlatformFile(filename string) (osFilePath string) { path, file := filepath.Split(filename) @@ -120,18 +120,18 @@ func getPlatformFile(filename string) (osFilePath string) { return } -// Dateinamen aus dem Dateipfad ausgeben +// Output Filenames from the File Path func getFilenameFromPath(path string) (file string) { return filepath.Base(path) } -// Nicht mehr verwendete Systemdaten löschen +// Delete System Data that is no longer used func removeOldSystemData() { - // Temporären Ordner löschen + // Delete Temporary folder os.RemoveAll(System.Folder.Temp) } -// Sucht eine Datei im OS +// Searches for a File in the OS func searchFileInOS(file string) (path string) { switch runtime.GOOS { @@ -287,7 +287,7 @@ func readStringFromFile(file string) (str string, err error) { return } -// Netzwerk +// Network func resolveHostIP() (err error) { netInterfaceAddresses, err := net.InterfaceAddrs() @@ -344,7 +344,7 @@ func resolveHostIP() (err error) { return } -// Sonstiges +// Miscellaneous func randomString(n int) string { const alphanum = "AB1CD2EF3GH4IJ5KL6MN7OP8QR9ST0UVWXYZ" diff --git a/src/update.go b/src/update.go index 2c13d92..edd2418 100644 --- a/src/update.go +++ b/src/update.go @@ -12,7 +12,7 @@ import ( "reflect" ) -// BinaryUpdate : Binary Update Prozess. Git Branch master und beta wird von GitHub geladen. +// BinaryUpdate : Binary update process. Git Branch master and beta is loaded from GitHub. func BinaryUpdate() (err error) { if System.GitHub.Update == false { @@ -70,7 +70,7 @@ func BinaryUpdate() (err error) { updater.Response.Version = git.Version updater.Response.Filename = git.Filename - // Update vom eigenen Server + // Update from your own Server default: updater.URL = Settings.UpdateURL @@ -83,7 +83,7 @@ func BinaryUpdate() (err error) { showInfo("Update URL:" + updater.URL) fmt.Println("-----------------") - // Versionsinformationen vom Server laden + // Load version information from the Server err = up2date.GetVersion() if err != nil { @@ -105,22 +105,22 @@ func BinaryUpdate() (err error) { var currentVersion = System.Version + "." + System.Build - // Versionsnummer überprüfen + // Check Version Number if updater.Response.Version > currentVersion && updater.Response.Status == true { if Settings.XteveAutoUpdate == true { - // Update durchführen + // Perform update var fileType, url string showInfo(fmt.Sprintf("Update Available:Version: %s", updater.Response.Version)) switch System.Branch { - // Update von GitHub + // Update from GitHub case "master", "beta": showInfo(fmt.Sprintf("Update Server:GitHub")) - // Update vom eigenen Server + // Update from your own Server default: showInfo(fmt.Sprintf("Update Server:%s", Settings.UpdateURL)) @@ -128,13 +128,13 @@ func BinaryUpdate() (err error) { showInfo(fmt.Sprintf("Start Update:Branch: %s", updater.Branch)) - // Neue Version als BIN Datei herunterladen + // Download the new version as a BIN File if len(updater.Response.UpdateBIN) > 0 { url = updater.Response.UpdateBIN fileType = "bin" } - // Neue Version als ZIP Datei herunterladen + // Download the new version as a ZIP File if len(updater.Response.UpdateZIP) > 0 { url = updater.Response.UpdateZIP fileType = "zip" @@ -150,7 +150,7 @@ func BinaryUpdate() (err error) { } } else { - // Hinweis ausgeben + // Display update exception showWarning(6004) } @@ -176,7 +176,7 @@ checkVersion: return } - // Letzte Kompatible Version (1.4.4) + // Latest Compatible Version (1.4.4) if settingsVersion < System.Compatibility { err = errors.New(getErrMsg(1013)) return @@ -185,13 +185,13 @@ checkVersion: switch settingsVersion { case "1.4.4": - // UUID Wert in xepg.json setzen + // Set UUID Value in xepg.json err = setValueForUUID() if err != nil { return } - // Neuer Filter (WebUI). Alte Filtereinstellungen werden konvertiert + // New filter (WebUI). Old Filter Settings are converted if oldFilter, ok := settingsMap["filter"].([]interface{}); ok { var newFilterMap = convertToNewFilter(oldFilter) settingsMap["filter"] = newFilterMap @@ -239,7 +239,7 @@ checkVersion: } case "2.1.0": - // Falls es in einem späteren Update Änderungen an der Datenbank gibt, geht es hier weiter + // If there are changes to the Database in a later update, continue here break } diff --git a/src/webserver.go b/src/webserver.go index 9e519cb..d48472f 100644 --- a/src/webserver.go +++ b/src/webserver.go @@ -15,7 +15,7 @@ import ( "github.com/gorilla/websocket" ) -// StartWebserver : Startet den Webserver +// StartWebserver : Start the Webserver func StartWebserver() (err error) { var port = Settings.Port @@ -167,7 +167,7 @@ func Stream(w http.ResponseWriter, r *http.Request) { showInfo(fmt.Sprintf("Channel Name:%s", streamInfo.Name)) showInfo(fmt.Sprintf("Client User-Agent:%s", r.Header.Get("User-Agent"))) - // Prüfen ob der Buffer verwendet werden soll + // Check whether the Buffer should be used switch Settings.Buffer { case "-": @@ -185,7 +185,7 @@ func Stream(w http.ResponseWriter, r *http.Request) { return } -// Auto : HDHR routing (wird derzeit nicht benutzt) +// Auto : HDHR routing (is currently not used) func Auto(w http.ResponseWriter, r *http.Request) { var channelID = strings.Replace(r.RequestURI, "/auto/v", "", 1) @@ -210,7 +210,7 @@ func Auto(w http.ResponseWriter, r *http.Request) { return } -// xTeVe : Web Server /xmltv/ und /m3u/ +// xTeVe : Web Server /xmltv/ and /m3u/ func xTeVe(w http.ResponseWriter, r *http.Request) { var requestType, groupTitle, file, content, contentType string @@ -220,7 +220,7 @@ func xTeVe(w http.ResponseWriter, r *http.Request) { setGlobalDomain(r.Host) - // XMLTV Datei + // XMLTV File if strings.Contains(path, "xmltv/") { requestType = "xml" @@ -235,15 +235,15 @@ func xTeVe(w http.ResponseWriter, r *http.Request) { } - // M3U Datei + // M3U File if strings.Contains(path, "m3u/") { requestType = "m3u" groupTitle = r.URL.Query().Get("group-title") if System.Dev == false { - // false: Dateiname wird im Header gesetzt - // true: M3U wird direkt im Browser angezeigt + // false: File name is set in the header + // true: M3U is displayed directly in the browser w.Header().Set("Content-Disposition", "attachment; filename="+getFilenameFromPath(path)) } @@ -258,7 +258,7 @@ func xTeVe(w http.ResponseWriter, r *http.Request) { } - // Authentifizierung überprüfen + // Check Authentication err = urlAuth(r, requestType) if err != nil { ShowError(err, 000) @@ -300,7 +300,7 @@ func Images(w http.ResponseWriter, r *http.Request) { return } -// DataImages : Image Pfad für Logos / Bilder die hochgeladen wurden /data_images/ +// DataImages : Image path for Logos / Images that have been uploaded / data_images / func DataImages(w http.ResponseWriter, r *http.Request) { var path = strings.TrimPrefix(r.URL.Path, "/") @@ -392,7 +392,7 @@ func WS(w http.ResponseWriter, r *http.Request) { } switch request.Cmd { - // Daten lesen + // Read Data case "getServerConfig": //response.Config = Settings @@ -409,7 +409,7 @@ func WS(w http.ResponseWriter, r *http.Request) { case "loadFiles": //response.Response = Settings.Files - // Daten schreiben + // Save Data case "saveSettings": var authenticationUpdate = Settings.AuthenticationWEB response.Settings, err = updateServerSettings(request) @@ -665,7 +665,7 @@ func Web(w http.ResponseWriter, r *http.Request) { confirm = r.FormValue("confirm") } - // Erster Benutzer wird angelegt (Passwortbestätigung ist vorhanden) + // First user is created (Password confirmation is available) if len(confirm) > 0 { var token, err = createFirstUserForAuthentication(username, password) @@ -673,14 +673,14 @@ func Web(w http.ResponseWriter, r *http.Request) { httpStatusError(w, r, 429) return } - // Redirect, damit die Daten aus dem Browser gelöscht werden. + // Redirect so that the Data is deleted from the Browser. w = authentication.SetCookieToken(w, token) http.Redirect(w, r, "/web", 301) return } - // Benutzername und Passwort vorhanden, wird jetzt überprüft + // Username and Password available, will now be checked if len(username) > 0 && len(password) > 0 { var token, err = authentication.UserAuthentication(username, password) @@ -691,11 +691,11 @@ func Web(w http.ResponseWriter, r *http.Request) { } w = authentication.SetCookieToken(w, token) - http.Redirect(w, r, "/web", 301) // Redirect, damit die Daten aus dem Browser gelöscht werden. + http.Redirect(w, r, "/web", 301) // Redirect so that the Data is deleted from the Browser. } else { w = authentication.SetCookieToken(w, "-") - http.Redirect(w, r, "/web", 301) // Redirect, damit die Daten aus dem Browser gelöscht werden. + http.Redirect(w, r, "/web", 301) // Redirect so that the Data is deleted from the Browser. } return @@ -765,7 +765,7 @@ func Web(w http.ResponseWriter, r *http.Request) { contentType = getContentType(requestFile) if System.Dev == true { - // Lokale Webserver Dateien werden geladen, nur für die Entwicklung + // Local web server Files are loaded, only for Development content, _ = readStringFromFile(requestFile) } @@ -783,37 +783,37 @@ func Web(w http.ResponseWriter, r *http.Request) { func API(w http.ResponseWriter, r *http.Request) { /* - API Bedingungen (ohne Authentifizierung): - - API muss in den Einstellungen aktiviert sein + API conditions (without Authentication): + - API must be activated in the Settings - Beispiel API Request mit curl + Example API Request with curl Status: curl -X POST -H "Content-Type: application/json" -d '{"cmd":"status"}' http://localhost:34400/api/ - - - - - - API Bedingungen (mit Authentifizierung): - - API muss in den Einstellungen aktiviert sein - - API muss bei den Authentifizierungseinstellungen aktiviert sein - - Benutzer muss die Berechtigung API haben + API conditions (with Authentication): + - API must be activated in the Settings + - API must be activated in the Authentication Settings + - User must have API authorization - Nach jeder API Anfrage wird ein Token generiert, dieser ist einmal in 60 Minuten gültig. - In jeder Antwort ist ein neuer Token enthalten + A Token is generated after each API request, which is valid once every 60 minutes. + A new Token is included in every answer - Beispiel API Request mit curl - Login: + Example API Request with curl + Login request: curl -X POST -H "Content-Type: application/json" -d '{"cmd":"login","username":"plex","password":"123"}' http://localhost:34400/api/ - Antwort: + Response: { "status": true, "token": "U0T-NTSaigh-RlbkqERsHvUpgvaaY2dyRGuwIIvv" } - Status mit Verwendung eines Tokens: + Status Request using a Token: curl -X POST -H "Content-Type: application/json" -d '{"cmd":"status","token":"U0T-NTSaigh-RlbkqERsHvUpgvaaY2dyRGuwIIvv"}' http://localhost:4400/api/ - Antwort: + Response: { "epg.source": "XEPG", "status": true, @@ -912,7 +912,7 @@ func API(w http.ResponseWriter, r *http.Request) { } switch request.Cmd { - case "login": // Muss nichts übergeben werden + case "login": // Nothing has to be handed over case "status": @@ -972,7 +972,7 @@ func API(w http.ResponseWriter, r *http.Request) { return } -// Download : Datei Download +// Download : File Download func Download(w http.ResponseWriter, r *http.Request) { var path = r.URL.Path @@ -994,7 +994,7 @@ func setDefaultResponseData(response ResponseStruct, data bool) (defaults Respon defaults = response - // Folgende Daten immer an den Client übergeben + // Always transfer the following Data to the Client defaults.ClientInfo.ARCH = System.ARCH defaults.ClientInfo.EpgSource = Settings.EpgSource defaults.ClientInfo.DVR = System.Addresses.DVR diff --git a/src/xepg.go b/src/xepg.go index 97c7734..3051bc0 100644 --- a/src/xepg.go +++ b/src/xepg.go @@ -19,7 +19,7 @@ import ( "xteve/src/internal/imgcache" ) -// Provider XMLTV Datei überprüfen +// Check provider XMLTV File func checkXMLCompatibility(id string, body []byte) (err error) { var xmltv XMLTV @@ -38,7 +38,7 @@ func checkXMLCompatibility(id string, body []byte) (err error) { return } -// XEPG Daten erstellen +// Create XEPG Data func buildXEPG(background bool) { if System.ScanInProgress == 1 { @@ -93,7 +93,7 @@ func buildXEPG(background bool) { System.ScanInProgress = 0 - // Cache löschen + // Clearing the Cache /* Data.Cache.XMLTV = make(map[string]XMLTV) Data.Cache.XMLTV = nil @@ -138,7 +138,7 @@ func buildXEPG(background bool) { System.ScanInProgress = 0 - // Cache löschen + // Clearing the Cache //Data.Cache.XMLTV = make(map[string]XMLTV) //Data.Cache.XMLTV = nil runtime.GC() @@ -156,7 +156,7 @@ func buildXEPG(background bool) { } -// XEPG Daten aktualisieren +// Update XEPG Data func updateXEPG(background bool) { if System.ScanInProgress == 1 { @@ -196,14 +196,14 @@ func updateXEPG(background bool) { } - // Cache löschen + // Clearing the Cache //Data.Cache.XMLTV = nil //make(map[string]XMLTV) //Data.Cache.XMLTV = make(map[string]XMLTV) return } -// Mapping Menü für die XMLTV Dateien erstellen +// Create Mapping Menu for the XMLTV Files func createXEPGMapping() { Data.XMLTV.Files = getLocalProviderFiles("xmltv") @@ -246,10 +246,10 @@ func createXEPGMapping() { ShowError(err, 000) } - // XML Parsen (Provider Datei) + // XML Parsing (Provider File) if err == nil { - // Daten aus der XML Datei in eine temporäre Map schreiben + // Write Data from the XML File to a temporary Map var xmltvMap = make(map[string]interface{}) for _, c := range xmltv.Channel { @@ -281,7 +281,7 @@ func createXEPGMapping() { } - // Auswahl für den Dummy erstellen + // Create selection for the Dummy var dummy = make(map[string]interface{}) var times = []string{"30", "60", "90", "120", "180", "240", "360"} @@ -301,7 +301,7 @@ func createXEPGMapping() { return } -// XEPG Datenbank erstellen / aktualisieren +// Create / update XEPG Database func createXEPGDatabase() (err error) { var allChannelNumbers = make([]float64, 0, System.UnfilteredChannelLimit) @@ -357,7 +357,7 @@ func createXEPGDatabase() (err error) { showInfo("XEPG:" + "Update database") - // Kanal mit fehlenden Kanalnummern löschen. Delete channel with missing channel numbers + // Delete Channel with missing Channel Numbers. for id, dxc := range Data.XEPG.Channels { var xepgChannel XEPGChannelStruct @@ -390,9 +390,9 @@ func createXEPGDatabase() (err error) { for _, dsa := range Data.Streams.Active { - var channelExists = false // Entscheidet ob ein Kanal neu zu Datenbank hinzugefügt werden soll. Decides whether a channel should be added to the database - var channelHasUUID = false // Überprüft, ob der Kanal (Stream) eindeutige ID's besitzt. Checks whether the channel (stream) has unique IDs - var currentXEPGID string // Aktuelle Datenbank ID (XEPG). Wird verwendet, um den Kanal in der Datenbank mit dem Stream der M3u zu aktualisieren. Current database ID (XEPG) Used to update the channel in the database with the stream of the M3u + var channelExists = false // Decides whether a Channel should be added to the Database + var channelHasUUID = false // Checks whether the Channel (Stream) has Unique IDs + var currentXEPGID string // Current Database ID (XEPG) Used to update the Channel in the Database with the Stream of the M3U var m3uChannel M3UChannelStructXEPG @@ -413,7 +413,7 @@ func createXEPGDatabase() (err error) { } } else { - // XEPG Datenbank durchlaufen um nach dem Kanal zu suchen. Run through the XEPG database to search for the channel (full scan) + // Run through the XEPG Database to search for the Channel (full scan) for _, dxc := range xepgChannelsValuesMap { if m3uChannel.FileM3UID == dxc.FileM3UID { @@ -421,7 +421,7 @@ func createXEPGDatabase() (err error) { dxc.FileM3UID = m3uChannel.FileM3UID dxc.FileM3UName = m3uChannel.FileM3UName - // Vergleichen des Streams anhand einer UUID in der M3U mit dem Kanal in der Databank. Compare the stream using a UUID in the M3U with the channel in the database + // Compare the Stream using a UUID in the M3U with the Channel in the Database if len(dxc.UUIDValue) > 0 && len(m3uChannel.UUIDValue) > 0 { if dxc.UUIDValue == m3uChannel.UUIDValue && dxc.UUIDKey == m3uChannel.UUIDKey { @@ -434,7 +434,7 @@ func createXEPGDatabase() (err error) { } } else { - // Vergleichen des Streams mit dem Kanal in der Databank anhand des Kanalnamens. Compare the stream to the channel in the database using the channel name + // Compare the Stream to the Channel in the Database using the Channel Name if dxc.Name == m3uChannel.Name { channelExists = true currentXEPGID = dxc.XEPG @@ -451,27 +451,27 @@ func createXEPGDatabase() (err error) { switch channelExists { case true: - // Bereits vorhandener Kanal + // Existing Channel var xepgChannel XEPGChannelStruct err = json.Unmarshal([]byte(mapToJSON(Data.XEPG.Channels[currentXEPGID])), &xepgChannel) if err != nil { return } - // Streaming URL aktualisieren + // Update Streaming URL xepgChannel.URL = m3uChannel.URL - // Name aktualisieren, anhand des Names wird überprüft ob der Kanal noch in einer Playlist verhanden. Funktion: cleanupXEPG + // Update Name, the Name is used to check whether the Channel is still available in a Playlist. Function: cleanupXEPG xepgChannel.Name = m3uChannel.Name - // Kanalname aktualisieren, nur mit Kanal ID's möglich + // Update Channel Name, only possible with Channel ID's if channelHasUUID == true { if xepgChannel.XUpdateChannelName == true { xepgChannel.XName = m3uChannel.Name } } - // Kanallogo aktualisieren. Wird bei vorhandenem Logo in der XMLTV Datei wieder überschrieben + // Update Channel Logo. Will be overwritten again if the Logo is present in the XMLTV file if xepgChannel.XUpdateChannelIcon == true { xepgChannel.TvgLogo = m3uChannel.TvgLogo } @@ -521,7 +521,7 @@ func createXEPGDatabase() (err error) { return } -// Kanäle automatisch zuordnen und das Mapping überprüfen +// Automatically assign Channels and check the Mapping func mapping() (err error) { showInfo("XEPG:" + "Map channels") @@ -533,15 +533,15 @@ func mapping() (err error) { return } - // Automatische Mapping für neue Kanäle. Wird nur ausgeführt, wenn der Kanal deaktiviert ist und keine XMLTV Datei und kein XMLTV Kanal zugeordnet ist. + // Automatic mapping for new Channels. Is only executed if the Channel is deactivated and no XMLTV file and no XMLTV Channel is assigned. if xepgChannel.XActive == false { - // Werte kann "-" sein, deswegen len < 1 + // Values can be "-", therefore len <1 if len(xepgChannel.XmltvFile) < 1 && len(xepgChannel.XmltvFile) < 1 { var tvgID = xepgChannel.TvgID - // Default für neuen Kanal setzen + // Set default for new Channel xepgChannel.XmltvFile = "-" xepgChannel.XMapping = "-" @@ -557,7 +557,7 @@ func mapping() (err error) { xepgChannel.XMapping = channelID xepgChannel.XActive = true - // Falls in der XMLTV Datei ein Logo existiert, wird dieses verwendet. Falls nicht, dann das Logo aus der M3U Datei + // If there is a Logo in the XMLTV file, this will be used. If not, then the Logo from the M3U file if icon, ok := channel.(map[string]interface{})["icon"].(string); ok { if len(icon) > 0 { xepgChannel.TvgLogo = icon @@ -577,7 +577,7 @@ func mapping() (err error) { } - // Überprüfen, ob die zugeordneten XMLTV Dateien und Kanäle noch existieren. + // Check whether the assigned XMLTV Files and Channels still exist. if xepgChannel.XActive == true { var mapping = xepgChannel.XMapping @@ -589,7 +589,7 @@ func mapping() (err error) { if channel, ok := value[mapping].(map[string]interface{}); ok { - // Kanallogo aktualisieren + // Update Channel Logo if logo, ok := channel["icon"].(string); ok { if xepgChannel.XUpdateChannelIcon == true && len(logo) > 0 { @@ -642,7 +642,7 @@ func mapping() (err error) { return } -// XMLTV Datei erstellen +// Create XMLTV File func createXMLTVFile() (err error) { // Image Cache @@ -693,7 +693,7 @@ func createXMLTVFile() (err error) { if xepgChannel.XActive == true { - // Kanäle + // Channels var channel Channel channel.ID = xepgChannel.XChannelID channel.Icon = Icon{Src: imgc.Image.GetURL(xepgChannel.TvgLogo)} @@ -701,7 +701,7 @@ func createXMLTVFile() (err error) { xepgXML.Channel = append(xepgXML.Channel, &channel) - // Programme + // Programs *tmpProgram, err = getProgramData(xepgChannel) if err == nil { @@ -730,7 +730,7 @@ func createXMLTVFile() (err error) { return } -// Programmdaten erstellen (createXMLTVFile) +// Create Program Data (createXMLTVFile) func getProgramData(xepgChannel XEPGChannelStruct) (xepgXML XMLTV, err error) { var xmltvFile = System.Folder.Data + xepgChannel.XmltvFile @@ -820,7 +820,7 @@ func getProgramData(xepgChannel XEPGChannelStruct) (xepgXML XMLTV, err error) { return } -// Dummy Daten erstellen (createXMLTVFile) +// Create Dummy Data (createXMLTVFile) func createDummyProgram(xepgChannel XEPGChannelStruct) (dummyXMLTV XMLTV) { var imgc = Data.Cache.Images @@ -882,7 +882,7 @@ func createDummyProgram(xepgChannel XEPGChannelStruct) (dummyXMLTV XMLTV) { return } -// Kategorien erweitern (createXMLTVFile) +// Expand Categories (createXMLTVFile) func getCategory(program *Program, xmltvProgram *Program, xepgChannel XEPGChannelStruct) { for _, i := range xmltvProgram.Category { @@ -906,7 +906,7 @@ func getCategory(program *Program, xmltvProgram *Program, xepgChannel XEPGChanne return } -// Programm Poster Cover aus der XMLTV Datei laden +// Load the Poster Cover Program from the XMLTV File func getPoster(program *Program, xmltvProgram *Program, xepgChannel XEPGChannelStruct) { var imgc = Data.Cache.Images @@ -928,7 +928,7 @@ func getPoster(program *Program, xmltvProgram *Program, xepgChannel XEPGChannelS } -// Episodensystem übernehmen, falls keins vorhanden ist und eine Kategorie im Mapping eingestellt wurden, wird eine Episode erstellt +// Apply Episode system, if none is available and a Category has been set in the mapping, an Episode is created func getEpisodeNum(program *Program, xmltvProgram *Program, xepgChannel XEPGChannelStruct) { program.EpisodeNum = xmltvProgram.EpisodeNum @@ -953,7 +953,7 @@ func getEpisodeNum(program *Program, xmltvProgram *Program, xepgChannel XEPGChan return } -// Videoparameter erstellen (createXMLTVFile) +// Create Video Parameters (createXMLTVFile) func getVideo(program *Program, xmltvProgram *Program, xepgChannel XEPGChannelStruct) { var video Video @@ -979,27 +979,27 @@ func getVideo(program *Program, xmltvProgram *Program, xepgChannel XEPGChannelSt return } -// Lokale Provider XMLTV Datei laden +// Load Local Provider XMLTV file func getLocalXMLTV(file string, xmltv *XMLTV) (err error) { if _, ok := Data.Cache.XMLTV[file]; !ok { - // Cache initialisieren + // Initialize Cache if len(Data.Cache.XMLTV) == 0 { Data.Cache.XMLTV = make(map[string]XMLTV) } - // XML Daten lesen + // Read XML Data content, err := readByteFromFile(file) - // Lokale XML Datei existiert nicht im Ordner: data + // Local XML File does not exist in the folder: Data if err != nil { ShowError(err, 1004) err = errors.New("Local copy of the file no longer exists") return err } - // XML Datei parsen + // Parse XML File err = xml.Unmarshal(content, &xmltv) if err != nil { return err @@ -1014,7 +1014,7 @@ func getLocalXMLTV(file string, xmltv *XMLTV) (err error) { return } -// M3U Datei erstellen +// Create M3U File func createM3UFile() { showInfo("XEPG:" + fmt.Sprintf("Create M3U file (%s)", System.File.M3U)) @@ -1028,7 +1028,7 @@ func createM3UFile() { return } -// XEPG Datenbank bereinigen +// Clean up the XEPG Database func cleanupXEPG() { //fmt.Println(Settings.Files.M3U) @@ -1083,7 +1083,7 @@ func cleanupXEPG() { return } -// Streaming URL für die Channels App generieren +// Generate Streaming URL for the Channels App func getStreamByChannelID(channelID string) (playlistID, streamURL string, err error) { err = errors.New("Channel not found") diff --git a/xteve.go b/xteve.go index 36a9546..ceb19fa 100644 --- a/xteve.go +++ b/xteve.go @@ -16,7 +16,7 @@ import ( "xteve/src" ) -// GitHubStruct : GitHub Account. Über diesen Account werden die Updates veröffentlicht +// GitHubStruct : GitHub Account. The Updates are published via this Account type GitHubStruct struct { Branch string Repo string @@ -35,14 +35,14 @@ var GitHub = GitHubStruct{Branch: "master", User: "xteve-project", Repo: "xTeVe- Update: Automatic updates from the GitHub repository [true|false] */ -// Name : Programmname +// Name : Program Name const Name = "xTeVe" -// Version : Version, die Build Nummer wird in der main func geparst. -const Version = "2.2.0.0200" +// Version : Version, the Build Number is parsed in the main func +const Version = "2.2.1.0200" -// DBVersion : Datanbank Version -const DBVersion = "2.1.0" +// DBVersion : Database Version +const DBVersion = "2.1.1" // APIVersion : API Version const APIVersion = "1.1.0" @@ -60,12 +60,12 @@ var debug = flag.Int("debug", 0, ": Debug level [0 - 3] (default: 0)") var info = flag.Bool("info", false, ": Show system info") var h = flag.Bool("h", false, ": Show help") -// Aktiviert den Entwicklungsmodus. Für den Webserver werden dann die lokalen Dateien verwendet. +// Activates Development Mode. The local Files are then used for the Webserver. var dev = flag.Bool("dev", false, ": Activates the developer mode, the source code must be available. The local files for the web interface are used.") func main() { - // Build-Nummer von der Versionsnummer trennen + // Separate Build Number from Version Number var build = strings.Split(Version, ".") var system = &src.System @@ -123,7 +123,7 @@ func main() { system.Dev = *dev - // Systeminformationen anzeigen + // Display System Information if *info { system.Flag.Info = true @@ -157,12 +157,12 @@ func main() { return } - // Speicherort für die Konfigurationsdateien + // Storage location for the Configuration Files if len(*configFolder) > 0 { system.Folder.Config = *configFolder } - // Backup wiederherstellen + // Restore Backup if len(*restore) > 0 { system.Flag.Restore = *restore From 5ff9b9d0859ca442fdff0d9a290fdd71376f309c Mon Sep 17 00:00:00 2001 From: winguru Date: Mon, 14 Jun 2021 17:54:08 -0400 Subject: [PATCH 003/189] Added basic "Tvg-shift" (timeshift) support for M3U channel playlist. * Tvg-shift is added to local time zone, negative numbers are further West * Recalculates EPG start and stop time based on Tvg-shift offset * Adds Timeshift column in channel mappings screen and in channel details --- html/js/mapping-editor.js | 4 +- html/js/menu_ts.js | 22 ++++- html/lang/en.json | 9 +- src/internal/m3u-parser/m3u-parser_test.go | 110 +++++++++++---------- src/internal/m3u-parser/test_list_1.m3u | 3 + src/struct-system.go | 3 + src/xepg.go | 17 +++- ts/menu_ts.ts | 19 ++++ 8 files changed, 128 insertions(+), 59 deletions(-) diff --git a/html/js/mapping-editor.js b/html/js/mapping-editor.js index 471dfe3..c83f28c 100644 --- a/html/js/mapping-editor.js +++ b/html/js/mapping-editor.js @@ -164,7 +164,7 @@ function createMappingTable() { table.appendChild(createElement(newTR)); var tr = document.getElementById("id_mapping").lastChild; - var trHeadlines = new Array("Bulk", "Ch. No.", "Logo", "Channel Name", "Playlist", "Group Title", "XMLTV File", "XMLTV ID") + var trHeadlines = new Array("Bulk", "Ch. No.", "Logo", "Channel Name", "Playlist", "Group Title", "XMLTV File", "XMLTV ID", "Timeshift") for (var i = 0; i < trHeadlines.length; i++) { var newTD = new Object(); @@ -235,6 +235,8 @@ function createMappingTable() { case "XMLTV ID": maxWidth = "150px"; minWidth = "100px"; break; + case "Timeshift": maxWidth = "50px"; minWidth = "20px"; break; + default: newTD["class"] = ""; break; diff --git a/html/js/menu_ts.js b/html/js/menu_ts.js index 8cb5a78..4924922 100644 --- a/html/js/menu_ts.js +++ b/html/js/menu_ts.js @@ -63,7 +63,7 @@ var MainMenuItem = /** @class */ (function (_super) { this.tableHeader = ["{{.users.table.username}}", "{{.users.table.password}}", "{{.users.table.web}}", "{{.users.table.pms}}", "{{.users.table.m3u}}", "{{.users.table.xml}}", "{{.users.table.api}}"]; break; case "mapping": - this.tableHeader = ["BULK", "{{.mapping.table.chNo}}", "{{.mapping.table.logo}}", "{{.mapping.table.channelName}}", "{{.mapping.table.playlist}}", "{{.mapping.table.groupTitle}}", "{{.mapping.table.xmltvFile}}", "{{.mapping.table.xmltvID}}"]; + this.tableHeader = ["BULK", "{{.mapping.table.chNo}}", "{{.mapping.table.logo}}", "{{.mapping.table.channelName}}", "{{.mapping.table.playlist}}", "{{.mapping.table.groupTitle}}", "{{.mapping.table.xmltvFile}}", "{{.mapping.table.xmltvID}}", "{{.mapping.table.timeshift}}"]; break; } //console.log(this.menuKey, this.tableHeader); @@ -412,6 +412,16 @@ var Content = /** @class */ (function () { if (value.length > 20) { value = data[key]["x-mapping"].substring(0, 20) + "..."; } + cell.value = value; + var td = cell.createCell(); + td.setAttribute('onclick', 'javascript: openPopUp("mapping", this)'); + td.id = key; + tr.appendChild(td); + // Timeshift + var cell = new Cell(); + cell.child = true; + cell.childType = "P"; + var value = data[key]["x-timeshift"]; cell.value = value; var td = cell.createCell(); td.setAttribute('onclick', 'javascript: openPopUp("mapping", this)'); @@ -1316,6 +1326,13 @@ function openPopUp(dataType, element) { select.setAttribute("onchange", "javascript: this.className = 'changed'; checkXmltvChannel('" + id + "',this,'" + xmlFile + "');"); sortSelect(select); content.appendRow("{{.mapping.xmltvChannel.title}}", select); + // Timeshift + var dbKey = "x-timeshift"; + var input = content.createInput("text", dbKey, data[dbKey]); + input.setAttribute("placeholder", "{{.mapping.timeshift.placeholder}}"); + input.setAttribute("onchange", "javascript: this.className = 'changed'"); + input.setAttribute("id", "timeshift"); + content.appendRow("{{.mapping.timeshift.title}}", input); // Interaktion content.createInteraction(); // Logo hochladen @@ -1701,6 +1718,9 @@ function donePopupData(dataType, idsStr) { } document.getElementById(id).childNodes[7].firstChild.innerHTML = value; break; + case "x-timeshift": + document.getElementById(id).childNodes[8].firstChild.innerHTML = value; + break; default: } createSearchObj(); diff --git a/html/lang/en.json b/html/lang/en.json index 73c3d14..460b388 100644 --- a/html/lang/en.json +++ b/html/lang/en.json @@ -210,7 +210,8 @@ "playlist": "Playlist", "groupTitle": "Group Title", "xmltvFile": "XMLTV File", - "xmltvID": "XMLTV ID" + "xmltvID": "XMLTV ID", + "timeshift": "Timeshift" }, "active": { @@ -271,6 +272,12 @@ "title": "XMLTV Channel", "placeholder": "", "description": "" + }, + "timeshift": + { + "title": "Timeshift", + "placeholder": "0", + "description": "" } }, "users": diff --git a/src/internal/m3u-parser/m3u-parser_test.go b/src/internal/m3u-parser/m3u-parser_test.go index ca3e73d..fd44d8f 100644 --- a/src/internal/m3u-parser/m3u-parser_test.go +++ b/src/internal/m3u-parser/m3u-parser_test.go @@ -1,84 +1,86 @@ package m3u import ( - "encoding/json" - "fmt" - "io/ioutil" - "log" - "testing" + "encoding/json" + "fmt" + "io/ioutil" + "log" + "testing" ) type M3UStream struct { - GroupTitle string `json:"group-title,required"` - Name string `json:"name,required"` - TvgID string `json:"tvg-id,required"` - TvgLogo string `json:"tvg-logo,required"` - TvgName string `json:"tvg-name,required"` - URL string `json:"url,required"` - UUIDKey string `json:"_uuid.key,omitempty"` - UUIDValue string `json:"_uuid.value,omitempty"` + GroupTitle string `json:"group-title,required"` + Name string `json:"name,required"` + TvgID string `json:"tvg-id,required"` + TvgLogo string `json:"tvg-logo,required"` + TvgName string `json:"tvg-name,required"` + TvgShift string `json:"tvg-shift,omitempty"` + URL string `json:"url,required"` + UUIDKey string `json:"_uuid.key,omitempty"` + UUIDValue string `json:"_uuid.value,omitempty"` } func TestStream1(t *testing.T) { - var file = "test_list_1.m3u" - var content, err = ioutil.ReadFile(file) - if err != nil { - t.Error(err) - return - } + var file = "test_list_1.m3u" + var content, err = ioutil.ReadFile(file) + if err != nil { + t.Error(err) + return + } - streams, err := MakeInterfaceFromM3U(content) + streams, err := MakeInterfaceFromM3U(content) - if err != nil { - t.Error(err) - } + if err != nil { + t.Error(err) + } - err = checkStream(streams) - if err != nil { - t.Error(err) - } + err = checkStream(streams) + if err != nil { + t.Error(err) + } - fmt.Println("Streams:", len(streams)) - t.Log(streams) + fmt.Println("Streams:", len(streams)) + t.Log(streams) } func checkStream(streamInterface []interface{}) (err error) { - for i, s := range streamInterface { + for i, s := range streamInterface { - var stream = s.(map[string]string) - var m3uStream M3UStream + var stream = s.(map[string]string) + var m3uStream M3UStream - jsonString, err := json.MarshalIndent(stream, "", " ") + jsonString, err := json.MarshalIndent(stream, "", " ") - if err == nil { + if err == nil { - err = json.Unmarshal(jsonString, &m3uStream) - if err == nil { + err = json.Unmarshal(jsonString, &m3uStream) + if err == nil { - log.Print(fmt.Sprintf("Stream: %d", i)) - log.Print(fmt.Sprintf("Name*: %s", m3uStream.Name)) - log.Print(fmt.Sprintf("URL*: %s", m3uStream.URL)) - log.Print(fmt.Sprintf("tvg-name: %s", m3uStream.TvgName)) - log.Print(fmt.Sprintf("tvg-id**: %s", m3uStream.TvgID)) - log.Print(fmt.Sprintf("tvg-logo: %s", m3uStream.TvgLogo)) - log.Print(fmt.Sprintf("group-title**: %s", m3uStream.GroupTitle)) + log.Print(fmt.Sprintf("Stream: %d", i)) + log.Print(fmt.Sprintf("Name*: %s", m3uStream.Name)) + log.Print(fmt.Sprintf("URL*: %s", m3uStream.URL)) + log.Print(fmt.Sprintf("tvg-name: %s", m3uStream.TvgName)) + log.Print(fmt.Sprintf("tvg-id**: %s", m3uStream.TvgID)) + log.Print(fmt.Sprintf("tvg-logo: %s", m3uStream.TvgLogo)) + log.Print(fmt.Sprintf("tvg-shift: %s", m3uStream.TvgShift)) + log.Print(fmt.Sprintf("group-title**: %s", m3uStream.GroupTitle)) - if len(m3uStream.UUIDKey) > 0 { - log.Print(fmt.Sprintf("UUID key***: %s", m3uStream.UUIDKey)) - log.Print(fmt.Sprintf("UUID value: %s", m3uStream.UUIDValue)) - } else { - log.Print(fmt.Sprintf("UUID key: false")) - } + if len(m3uStream.UUIDKey) > 0 { + log.Print(fmt.Sprintf("UUID key***: %s", m3uStream.UUIDKey)) + log.Print(fmt.Sprintf("UUID value: %s", m3uStream.UUIDValue)) + } else { + log.Print(fmt.Sprintf("UUID key: false")) + } - } + } - } + } - log.Println(fmt.Sprintf("- - - - - (*: Required) | (**: Nice to have) | (***: Love it) - - - - -")) - } + log.Println(fmt.Sprintf("- - - - - (*: Required) | (**: Nice to have) | (***: Love it) - - - - -")) + } - return + return } diff --git a/src/internal/m3u-parser/test_list_1.m3u b/src/internal/m3u-parser/test_list_1.m3u index 478c95d..4566992 100644 --- a/src/internal/m3u-parser/test_list_1.m3u +++ b/src/internal/m3u-parser/test_list_1.m3u @@ -11,3 +11,6 @@ http://example.com/stream/3 #EXTINF:321,Example Artist - Example title http://example.com/stream/4 + +#EXTINF:-1 tvg-id="tvg.id.3" tvg-name="Channel.3" tvg-logo="https://example/logo.png" tvg-chno="3" channel-id="3" tvg-shift="-3" group-title="Group 3",Channel 3 West +http://example.com/stream/5 diff --git a/src/struct-system.go b/src/struct-system.go index 595f4d2..62e0896 100644 --- a/src/struct-system.go +++ b/src/struct-system.go @@ -182,6 +182,7 @@ type XEPGChannelStruct struct { TvgID string `json:"tvg-id,required"` TvgLogo string `json:"tvg-logo,required"` TvgName string `json:"tvg-name,required"` + TvgShift string `json:"tvg-shift,required"` URL string `json:"url,required"` UUIDKey string `json:"_uuid.key,required"` UUIDValue string `json:"_uuid.value,omitempty"` @@ -197,6 +198,7 @@ type XEPGChannelStruct struct { XUpdateChannelIcon bool `json:"x-update-channel-icon,required"` XUpdateChannelName bool `json:"x-update-channel-name,required"` XDescription string `json:"x-description,required"` + XTimeshift string `json:"x-timeshift,required"` } // M3UChannelStructXEPG : M3U Struktur für XEPG @@ -209,6 +211,7 @@ type M3UChannelStructXEPG struct { TvgID string `json:"tvg-id,required"` TvgLogo string `json:"tvg-logo,required"` TvgName string `json:"tvg-name,required"` + TvgShift string `json:"tvg-shift,required"` URL string `json:"url,required"` UUIDKey string `json:"_uuid.key,required"` UUIDValue string `json:"_uuid.value,required"` diff --git a/src/xepg.go b/src/xepg.go index 97c7734..d28c55d 100644 --- a/src/xepg.go +++ b/src/xepg.go @@ -493,6 +493,11 @@ func createXEPGDatabase() (err error) { newChannel.TvgID = m3uChannel.TvgID newChannel.TvgLogo = m3uChannel.TvgLogo newChannel.TvgName = m3uChannel.TvgName + if m3uChannel.TvgShift == "" { + newChannel.TvgShift = "0" + } else { + newChannel.TvgShift = m3uChannel.TvgShift + } newChannel.URL = m3uChannel.URL newChannel.XmltvFile = "" newChannel.XMapping = "" @@ -506,6 +511,7 @@ func createXEPGDatabase() (err error) { newChannel.XGroupTitle = m3uChannel.GroupTitle newChannel.XEPG = xepg newChannel.XChannelID = xChannelID + newChannel.XTimeshift = newChannel.TvgShift Data.XEPG.Channels[xepg] = newChannel @@ -757,8 +763,15 @@ func getProgramData(xepgChannel XEPGChannelStruct) (xepgXML XMLTV, err error) { // Channel ID program.Channel = xepgChannel.XChannelID - program.Start = xmltvProgram.Start - program.Stop = xmltvProgram.Stop + timeshift, _ := strconv.Atoi(xepgChannel.XTimeshift) + progStart := strings.Split(xmltvProgram.Start, " ") + progStop := strings.Split(xmltvProgram.Stop, " ") + tzStart, _ := strconv.Atoi(progStart[1]) + tzStop, _ := strconv.Atoi(progStop[1]) + progStart[1] = fmt.Sprintf("%+05d", tzStart+timeshift*100) + progStop[1] = fmt.Sprintf("%+05d", tzStop+timeshift*100) + program.Start = strings.Join(progStart, " ") + program.Stop = strings.Join(progStop, " ") // Title program.Title = xmltvProgram.Title diff --git a/ts/menu_ts.ts b/ts/menu_ts.ts index c8480c4..fa678ee 100644 --- a/ts/menu_ts.ts +++ b/ts/menu_ts.ts @@ -496,6 +496,17 @@ class Content { tr.appendChild(td) + // TimeShift + var cell:Cell = new Cell() + cell.child = true + cell.childType = "P" + var value = data[key]["x-timeshift"] + cell.value = value + var td = cell.createCell() + td.setAttribute('onclick', 'javascript: openPopUp("mapping", this)') + td.id = key + tr.appendChild(td) + rows.push(tr) }); @@ -1605,6 +1616,14 @@ function openPopUp(dataType, element) { sortSelect(select) content.appendRow("{{.mapping.xmltvChannel.title}}", select) + // Timeshift + var dbKey:string = "x-timeshift" + var input = content.createInput("text", dbKey, data[dbKey]) + input.setAttribute("onchange", "javascript: this.className = 'changed'") + input.setAttribute("placeholder", "{{.mapping.timeshift.placeholder}}") + input.setAttribute("id", "timeshift") + content.appendRow("{{.mapping.timeshift.title}}", input) + // Interaktion content.createInteraction() From 1be7a9a3b89972a610d8f50400a6d24a2cbd80b6 Mon Sep 17 00:00:00 2001 From: winguru Date: Mon, 14 Jun 2021 18:35:39 -0400 Subject: [PATCH 004/189] Changed GitHub var branch to winguru/experimental --- xteve.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/xteve.go b/xteve.go index ceb19fa..44f54bd 100644 --- a/xteve.go +++ b/xteve.go @@ -26,7 +26,7 @@ type GitHubStruct struct { // GitHub : GitHub Account // If you want to fork this project, enter your Github account here. This prevents a newer version of xTeVe from updating your version. -var GitHub = GitHubStruct{Branch: "master", User: "xteve-project", Repo: "xTeVe-Downloads", Update: true} +var GitHub = GitHubStruct{Branch: "experimental", User: "winguru", Repo: "xTeVe-Downloads", Update: false} /* Branch: GitHub Branch From 55daaa16bc0945f8554d8ddea6b8f607d7f4026c Mon Sep 17 00:00:00 2001 From: winguru Date: Tue, 15 Jun 2021 12:41:21 -0400 Subject: [PATCH 005/189] Recreated webUI.go via "xteve -dev" --- src/webUI.go | 84 +++++++++++++++++++++++++--------------------------- 1 file changed, 41 insertions(+), 43 deletions(-) diff --git a/src/webUI.go b/src/webUI.go index dc7a75a..f570a24 100644 --- a/src/webUI.go +++ b/src/webUI.go @@ -4,48 +4,46 @@ var webUI = make(map[string]interface{}) func loadHTMLMap() { - webUI["html/img/x_ transparent.png"] = "iVBORw0KGgoAAAANSUhEUgAAAQAAAAEACAYAAABccqhmAAAAAXNSR0IArs4c6QAAAAlwSFlzAAAWJQAAFiUBSVIk8AAAA6ppVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IlhNUCBDb3JlIDUuNC4wIj4KICAgPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIgogICAgICAgICAgICB4bWxuczp0aWZmPSJodHRwOi8vbnMuYWRvYmUuY29tL3RpZmYvMS4wLyIKICAgICAgICAgICAgeG1sbnM6ZXhpZj0iaHR0cDovL25zLmFkb2JlLmNvbS9leGlmLzEuMC8iPgogICAgICAgICA8eG1wOk1vZGlmeURhdGU+MjAxOC0xMS0xNVQxNzoxMTo3NjwveG1wOk1vZGlmeURhdGU+CiAgICAgICAgIDx4bXA6Q3JlYXRvclRvb2w+UGl4ZWxtYXRvciAzLjM8L3htcDpDcmVhdG9yVG9vbD4KICAgICAgICAgPHRpZmY6T3JpZW50YXRpb24+MTwvdGlmZjpPcmllbnRhdGlvbj4KICAgICAgICAgPHRpZmY6Q29tcHJlc3Npb24+NTwvdGlmZjpDb21wcmVzc2lvbj4KICAgICAgICAgPHRpZmY6UmVzb2x1dGlvblVuaXQ+MjwvdGlmZjpSZXNvbHV0aW9uVW5pdD4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+MTQ0PC90aWZmOllSZXNvbHV0aW9uPgogICAgICAgICA8dGlmZjpYUmVzb2x1dGlvbj4xNDQ8L3RpZmY6WFJlc29sdXRpb24+CiAgICAgICAgIDxleGlmOlBpeGVsWERpbWVuc2lvbj4yNTY8L2V4aWY6UGl4ZWxYRGltZW5zaW9uPgogICAgICAgICA8ZXhpZjpDb2xvclNwYWNlPjE8L2V4aWY6Q29sb3JTcGFjZT4KICAgICAgICAgPGV4aWY6UGl4ZWxZRGltZW5zaW9uPjI1NjwvZXhpZjpQaXhlbFlEaW1lbnNpb24+CiAgICAgIDwvcmRmOkRlc2NyaXB0aW9uPgogICA8L3JkZjpSREY+CjwveDp4bXBtZXRhPgoeXQb1AAAaJElEQVR4Ae2dCZhcVZXHz+1KSFiGkISkqyIoOgI68EkgOBNkEcQRlIFRZDGABAQEhInGbxw+RUZRNhWRLawDYR0GHAaHUVkGvwGURUcgwIiAOGxjV3UHAslHQrbuM/9TlQ6d7qruWt527/u/7+uuqvvucu7vvnveuffde54IDxIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARLwiIDzQtayHi0q23shaydCOnlISu7nnWThRdrFOkPWyCleyNqJkF1yjhTd8k6yiDvtuLgLiCR/lVnIZ14keWU7k2Xyuu4oU92r2RazQ+nWypXI4W86zCXbyZ28KBvJ97MtpEhX1gWsyleS08TJU17I2omQKpvLarmqkywyn7ZHPw9rLvTOvwbX6xEyxS3Nenv4oQCcWwmQc/D3dtaBdiyfyv5S1mM7zieLGSzWEsS6KIuiRSzTGTD9H404z1iy80MBWNVL7hn8nx8LhaxlqnKBvKbvyppYHctTM/0nd5xPljNwcrcUs2/6DyL0RwGYxDOcjR3vGBQ+4M8tMElmdQ3n6NGjYPofGE6F6tTESRmm/1xxTuuczWSQH08BhqJbqlNkuTyJoK2GBgf53S6mkrvB+7qZ6b9Gfod6hHv3dzKAGbX9pNvd51N7+WUBGNlJbgm07FH4G/AJdFuyqlwotXFzW8kzk2itXAFZwu38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" - webUI["html/js/authentication_ts.js"] = "ZnVuY3Rpb24gbG9naW4oKSB7CiAgICB2YXIgZXJyID0gZmFsc2U7CiAgICB2YXIgZGF0YSA9IG5ldyBPYmplY3QoKTsKICAgIHZhciBkaXYgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29udGVudCIpOwogICAgdmFyIGZvcm0gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYXV0aGVudGljYXRpb24iKTsKICAgIHZhciBpbnB1dHMgPSBkaXYuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIklOUFVUIik7CiAgICBjb25zb2xlLmxvZyhpbnB1dHMpOwogICAgZm9yICh2YXIgaSA9IGlucHV0cy5sZW5ndGggLSAxOyBpID49IDA7IGktLSkgewogICAgICAgIHZhciBrZXkgPSBpbnB1dHNbaV0ubmFtZTsKICAgICAgICB2YXIgdmFsdWUgPSBpbnB1dHNbaV0udmFsdWU7CiAgICAgICAgaWYgKHZhbHVlLmxlbmd0aCA9PSAwKSB7CiAgICAgICAgICAgIGlucHV0c1tpXS5zdHlsZS5ib3JkZXJDb2xvciA9ICJyZWQiOwogICAgICAgICAgICBlcnIgPSB0cnVlOwogICAgICAgIH0KICAgICAgICBkYXRhW2tleV0gPSB2YWx1ZTsKICAgIH0KICAgIGlmIChlcnIgPT0gdHJ1ZSkgewogICAgICAgIGRhdGEgPSBuZXcgT2JqZWN0KCk7CiAgICAgICAgcmV0dXJuOwogICAgfQogICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoImNvbmZpcm0iKSkgewogICAgICAgIGlmIChkYXRhWyJjb25maXJtIl0gIT0gZGF0YVsicGFzc3dvcmQiXSkgewogICAgICAgICAgICBhbGVydCgic2RhZnNkIik7CiAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdwYXNzd29yZCcpLnN0eWxlLmJvcmRlckNvbG9yID0gInJlZCI7CiAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjb25maXJtJykuc3R5bGUuYm9yZGVyQ29sb3IgPSAicmVkIjsKICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImVyciIpLmlubmVySFRNTCA9ICJ7ey5hY2NvdW50LmZhaWxlZH19IjsKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KICAgIH0KICAgIGNvbnNvbGUubG9nKGRhdGEpOwogICAgZm9ybS5zdWJtaXQoKTsKfQo=" - webUI["html/js/configuration_ts.js"] = "dmFyIF9fZXh0ZW5kcyA9ICh0aGlzICYmIHRoaXMuX19leHRlbmRzKSB8fCAoZnVuY3Rpb24gKCkgewogICAgdmFyIGV4dGVuZFN0YXRpY3MgPSBmdW5jdGlvbiAoZCwgYikgewogICAgICAgIGV4dGVuZFN0YXRpY3MgPSBPYmplY3Quc2V0UHJvdG90eXBlT2YgfHwKICAgICAgICAgICAgKHsgX19wcm90b19fOiBbXSB9IGluc3RhbmNlb2YgQXJyYXkgJiYgZnVuY3Rpb24gKGQsIGIpIHsgZC5fX3Byb3RvX18gPSBiOyB9KSB8fAogICAgICAgICAgICBmdW5jdGlvbiAoZCwgYikgeyBmb3IgKHZhciBwIGluIGIpIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoYiwgcCkpIGRbcF0gPSBiW3BdOyB9OwogICAgICAgIHJldHVybiBleHRlbmRTdGF0aWNzKGQsIGIpOwogICAgfTsKICAgIHJldHVybiBmdW5jdGlvbiAoZCwgYikgewogICAgICAgIGV4dGVuZFN0YXRpY3MoZCwgYik7CiAgICAgICAgZnVuY3Rpb24gX18oKSB7IHRoaXMuY29uc3RydWN0b3IgPSBkOyB9CiAgICAgICAgZC5wcm90b3R5cGUgPSBiID09PSBudWxsID8gT2JqZWN0LmNyZWF0ZShiKSA6IChfXy5wcm90b3R5cGUgPSBiLnByb3RvdHlwZSwgbmV3IF9fKCkpOwogICAgfTsKfSkoKTsKdmFyIFdpemFyZENhdGVnb3J5ID0gLyoqIEBjbGFzcyAqLyAoZnVuY3Rpb24gKCkgewogICAgZnVuY3Rpb24gV2l6YXJkQ2F0ZWdvcnkoKSB7CiAgICAgICAgdGhpcy5Eb2N1bWVudElEID0gImNvbnRlbnQiOwogICAgfQogICAgV2l6YXJkQ2F0ZWdvcnkucHJvdG90eXBlLmNyZWF0ZUNhdGVnb3J5SGVhZGxpbmUgPSBmdW5jdGlvbiAodmFsdWUpIHsKICAgICAgICB2YXIgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIkg0Iik7CiAgICAgICAgZWxlbWVudC5pbm5lckhUTUwgPSB2YWx1ZTsKICAgICAgICByZXR1cm4gZWxlbWVudDsKICAgIH07CiAgICByZXR1cm4gV2l6YXJkQ2F0ZWdvcnk7Cn0oKSk7CnZhciBXaXphcmRJdGVtID0gLyoqIEBjbGFzcyAqLyAoZnVuY3Rpb24gKF9zdXBlcikgewogICAgX19leHRlbmRzKFdpemFyZEl0ZW0sIF9zdXBlcik7CiAgICBmdW5jdGlvbiBXaXphcmRJdGVtKGtleSwgaGVhZGxpbmUpIHsKICAgICAgICB2YXIgX3RoaXMgPSBfc3VwZXIuY2FsbCh0aGlzKSB8fCB0aGlzOwogICAgICAgIF90aGlzLmhlYWRsaW5lID0gaGVhZGxpbmU7CiAgICAgICAgX3RoaXMua2V5ID0ga2V5OwogICAgICAgIHJldHVybiBfdGhpczsKICAgIH0KICAgIFdpemFyZEl0ZW0ucHJvdG90eXBlLmNyZWF0ZVdpemFyZCA9IGZ1bmN0aW9uICgpIHsKICAgICAgICB2YXIgaGVhZGxpbmUgPSB0aGlzLmNyZWF0ZUNhdGVnb3J5SGVhZGxpbmUodGhpcy5oZWFkbGluZSk7CiAgICAgICAgdmFyIGtleSA9IHRoaXMua2V5OwogICAgICAgIHZhciBjb250ZW50ID0gbmV3IFBvcHVwQ29udGVudCgpOwogICAgICAgIHZhciBkZXNjcmlwdGlvbjsKICAgICAgICB2YXIgZG9jID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQodGhpcy5Eb2N1bWVudElEKTsKICAgICAgICBkb2MuaW5uZXJIVE1MID0gIiI7CiAgICAgICAgZG9jLmFwcGVuZENoaWxkKGhlYWRsaW5lKTsKICAgICAgICBzd2l0Y2ggKGtleSkgewogICAgICAgICAgICBjYXNlICJ0dW5lciI6CiAgICAgICAgICAgICAgICB2YXIgdGV4dCA9IG5ldyBBcnJheSgpOwogICAgICAgICAgICAgICAgdmFyIHZhbHVlcyA9IG5ldyBBcnJheSgpOwogICAgICAgICAgICAgICAgZm9yICh2YXIgaSA9IDE7IGkgPD0gMTAwOyBpKyspIHsKICAgICAgICAgICAgICAgICAgICB0ZXh0LnB1c2goaSk7CiAgICAgICAgICAgICAgICAgICAgdmFsdWVzLnB1c2goaSk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCAiMSIsIGtleSk7CiAgICAgICAgICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJjbGFzcyIsICJ3aXphcmQiKTsKICAgICAgICAgICAgICAgIHNlbGVjdC5pZCA9IGtleTsKICAgICAgICAgICAgICAgIGRvYy5hcHBlbmRDaGlsZChzZWxlY3QpOwogICAgICAgICAgICAgICAgZGVzY3JpcHRpb24gPSAie3sud2l6YXJkLnR1bmVyLmRlc2NyaXB0aW9ufX0iOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgImVwZ1NvdXJjZSI6CiAgICAgICAgICAgICAgICB2YXIgdGV4dCA9IFsiUE1TIiwgIlhFUEciXTsKICAgICAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBbIlBNUyIsICJYRVBHIl07CiAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCAiWEVQRyIsIGtleSk7CiAgICAgICAgICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJjbGFzcyIsICJ3aXphcmQiKTsKICAgICAgICAgICAgICAgIHNlbGVjdC5pZCA9IGtleTsKICAgICAgICAgICAgICAgIGRvYy5hcHBlbmRDaGlsZChzZWxlY3QpOwogICAgICAgICAgICAgICAgZGVzY3JpcHRpb24gPSAie3sud2l6YXJkLmVwZ1NvdXJjZS5kZXNjcmlwdGlvbn19IjsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJtM3UiOgogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGtleSwgIiIpOwogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey53aXphcmQubTN1LnBsYWNlaG9sZGVyfX0iKTsKICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgiY2xhc3MiLCAid2l6YXJkIik7CiAgICAgICAgICAgICAgICBpbnB1dC5pZCA9IGtleTsKICAgICAgICAgICAgICAgIGRvYy5hcHBlbmRDaGlsZChpbnB1dCk7CiAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbiA9ICJ7ey53aXphcmQubTN1LmRlc2NyaXB0aW9ufX0iOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgInhtbHR2IjoKICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBrZXksICIiKTsKICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3sud2l6YXJkLnhtbHR2LnBsYWNlaG9sZGVyfX0iKTsKICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgiY2xhc3MiLCAid2l6YXJkIik7CiAgICAgICAgICAgICAgICBpbnB1dC5pZCA9IGtleTsKICAgICAgICAgICAgICAgIGRvYy5hcHBlbmRDaGlsZChpbnB1dCk7CiAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbiA9ICJ7ey53aXphcmQueG1sdHYuZGVzY3JpcHRpb259fSI7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKGtleSk7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICB9CiAgICAgICAgdmFyIHByZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlBSRSIpOwogICAgICAgIHByZS5pbm5lckhUTUwgPSBkZXNjcmlwdGlvbjsKICAgICAgICBkb2MuYXBwZW5kQ2hpbGQocHJlKTsKICAgICAgICBjb25zb2xlLmxvZyhoZWFkbGluZSwga2V5KTsKICAgIH07CiAgICByZXR1cm4gV2l6YXJkSXRlbTsKfShXaXphcmRDYXRlZ29yeSkpOwpmdW5jdGlvbiByZWFkeUZvckNvbmZpZ3VyYXRpb24od2l6YXJkKSB7CiAgICB2YXIgc2VydmVyID0gbmV3IFNlcnZlcigiZ2V0U2VydmVyQ29uZmlnIik7CiAgICBzZXJ2ZXIucmVxdWVzdChuZXcgT2JqZWN0KCkpOwogICAgc2hvd0VsZW1lbnQoImxvYWRpbmciLCBmYWxzZSk7CiAgICBjb25maWd1cmF0aW9uV2l6YXJkW3dpemFyZF0uY3JlYXRlV2l6YXJkKCk7Cn0KZnVuY3Rpb24gc2F2ZVdpemFyZCgpIHsKICAgIHZhciBjbWQgPSAic2F2ZVdpemFyZCI7CiAgICB2YXIgZGl2ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnRlbnQiKTsKICAgIHZhciBjb25maWcgPSBkaXYuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSgid2l6YXJkIik7CiAgICB2YXIgd2l6YXJkID0gbmV3IE9iamVjdCgpOwogICAgZm9yICh2YXIgaSA9IDA7IGkgPCBjb25maWcubGVuZ3RoOyBpKyspIHsKICAgICAgICB2YXIgbmFtZTsKICAgICAgICB2YXIgdmFsdWU7CiAgICAgICAgc3dpdGNoIChjb25maWdbaV0udGFnTmFtZSkgewogICAgICAgICAgICBjYXNlICJTRUxFQ1QiOgogICAgICAgICAgICAgICAgbmFtZSA9IGNvbmZpZ1tpXS5uYW1lOwogICAgICAgICAgICAgICAgdmFsdWUgPSBjb25maWdbaV0udmFsdWU7CiAgICAgICAgICAgICAgICAvLyBXZW5uIGRlciBXZXJ0IGVpbmUgWmFobCBpc3QsIHdpcmQgZGllc2VyIGFscyBaYWhsIGdlc3BlaWNoZXJ0CiAgICAgICAgICAgICAgICBpZiAoaXNOYU4odmFsdWUpKSB7CiAgICAgICAgICAgICAgICAgICAgd2l6YXJkW25hbWVdID0gdmFsdWU7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgICAgICB3aXphcmRbbmFtZV0gPSBwYXJzZUludCh2YWx1ZSk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAiSU5QVVQiOgogICAgICAgICAgICAgICAgc3dpdGNoIChjb25maWdbaV0udHlwZSkgewogICAgICAgICAgICAgICAgICAgIGNhc2UgInRleHQiOgogICAgICAgICAgICAgICAgICAgICAgICBuYW1lID0gY29uZmlnW2ldLm5hbWU7CiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlID0gY29uZmlnW2ldLnZhbHVlOwogICAgICAgICAgICAgICAgICAgICAgICBpZiAodmFsdWUubGVuZ3RoID09IDApIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBtc2cgPSBuYW1lLnRvVXBwZXJDYXNlKCkgKyAiOiAiICsgInt7LmFsZXJ0Lm1pc3NpbmdJbnB1dH19IjsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFsZXJ0KG1zZyk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgd2l6YXJkW25hbWVdID0gdmFsdWU7CiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICAgICAvLyBjb2RlLi4uCiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICB9CiAgICB9CiAgICB2YXIgZGF0YSA9IG5ldyBPYmplY3QoKTsKICAgIGRhdGFbIndpemFyZCJdID0gd2l6YXJkOwogICAgdmFyIHNlcnZlciA9IG5ldyBTZXJ2ZXIoY21kKTsKICAgIHNlcnZlci5yZXF1ZXN0KGRhdGEpOwogICAgY29uc29sZS5sb2coZGF0YSk7Cn0KLy8gV2l6YXJkCnZhciBjb25maWd1cmF0aW9uV2l6YXJkID0gbmV3IEFycmF5KCk7CmNvbmZpZ3VyYXRpb25XaXphcmQucHVzaChuZXcgV2l6YXJkSXRlbSgidHVuZXIiLCAie3sud2l6YXJkLnR1bmVyLnRpdGxlfX0iKSk7CmNvbmZpZ3VyYXRpb25XaXphcmQucHVzaChuZXcgV2l6YXJkSXRlbSgiZXBnU291cmNlIiwgInt7LndpemFyZC5lcGdTb3VyY2UudGl0bGV9fSIpKTsKY29uZmlndXJhdGlvbldpemFyZC5wdXNoKG5ldyBXaXphcmRJdGVtKCJtM3UiLCAie3sud2l6YXJkLm0zdS50aXRsZX19IikpOwpjb25maWd1cmF0aW9uV2l6YXJkLnB1c2gobmV3IFdpemFyZEl0ZW0oInhtbHR2IiwgInt7LndpemFyZC54bWx0di50aXRsZX19IikpOwo=" - webUI["html/js/menu_ts.js"] = "dmFyIF9fZXh0ZW5kcyA9ICh0aGlzICYmIHRoaXMuX19leHRlbmRzKSB8fCAoZnVuY3Rpb24gKCkgewogICAgdmFyIGV4dGVuZFN0YXRpY3MgPSBmdW5jdGlvbiAoZCwgYikgewogICAgICAgIGV4dGVuZFN0YXRpY3MgPSBPYmplY3Quc2V0UHJvdG90eXBlT2YgfHwKICAgICAgICAgICAgKHsgX19wcm90b19fOiBbXSB9IGluc3RhbmNlb2YgQXJyYXkgJiYgZnVuY3Rpb24gKGQsIGIpIHsgZC5fX3Byb3RvX18gPSBiOyB9KSB8fAogICAgICAgICAgICBmdW5jdGlvbiAoZCwgYikgeyBmb3IgKHZhciBwIGluIGIpIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoYiwgcCkpIGRbcF0gPSBiW3BdOyB9OwogICAgICAgIHJldHVybiBleHRlbmRTdGF0aWNzKGQsIGIpOwogICAgfTsKICAgIHJldHVybiBmdW5jdGlvbiAoZCwgYikgewogICAgICAgIGV4dGVuZFN0YXRpY3MoZCwgYik7CiAgICAgICAgZnVuY3Rpb24gX18oKSB7IHRoaXMuY29uc3RydWN0b3IgPSBkOyB9CiAgICAgICAgZC5wcm90b3R5cGUgPSBiID09PSBudWxsID8gT2JqZWN0LmNyZWF0ZShiKSA6IChfXy5wcm90b3R5cGUgPSBiLnByb3RvdHlwZSwgbmV3IF9fKCkpOwogICAgfTsKfSkoKTsKdmFyIE1haW5NZW51ID0gLyoqIEBjbGFzcyAqLyAoZnVuY3Rpb24gKCkgewogICAgZnVuY3Rpb24gTWFpbk1lbnUoKSB7CiAgICAgICAgdGhpcy5Eb2N1bWVudElEID0gIm1haW4tbWVudSI7CiAgICAgICAgdGhpcy5IVE1MVGFnID0gIkxJIjsKICAgICAgICB0aGlzLkltYWdlUGF0aCA9ICJpbWcvIjsKICAgIH0KICAgIE1haW5NZW51LnByb3RvdHlwZS5jcmVhdGVJTUcgPSBmdW5jdGlvbiAoc3JjKSB7CiAgICAgICAgdmFyIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJJTUciKTsKICAgICAgICBlbGVtZW50LnNldEF0dHJpYnV0ZSgic3JjIiwgdGhpcy5JbWFnZVBhdGggKyBzcmMpOwogICAgICAgIHJldHVybiBlbGVtZW50OwogICAgfTsKICAgIE1haW5NZW51LnByb3RvdHlwZS5jcmVhdGVWYWx1ZSA9IGZ1bmN0aW9uICh2YWx1ZSkgewogICAgICAgIHZhciBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiUCIpOwogICAgICAgIGVsZW1lbnQuaW5uZXJIVE1MID0gdmFsdWU7CiAgICAgICAgcmV0dXJuIGVsZW1lbnQ7CiAgICB9OwogICAgcmV0dXJuIE1haW5NZW51Owp9KCkpOwp2YXIgTWFpbk1lbnVJdGVtID0gLyoqIEBjbGFzcyAqLyAoZnVuY3Rpb24gKF9zdXBlcikgewogICAgX19leHRlbmRzKE1haW5NZW51SXRlbSwgX3N1cGVyKTsKICAgIGZ1bmN0aW9uIE1haW5NZW51SXRlbShtZW51S2V5LCB2YWx1ZSwgaW1hZ2UsIGhlYWRsaW5lKSB7CiAgICAgICAgdmFyIF90aGlzID0gX3N1cGVyLmNhbGwodGhpcykgfHwgdGhpczsKICAgICAgICBfdGhpcy5tZW51S2V5ID0gbWVudUtleTsKICAgICAgICBfdGhpcy52YWx1ZSA9IHZhbHVlOwogICAgICAgIF90aGlzLmltZ1NyYyA9IGltYWdlOwogICAgICAgIF90aGlzLmhlYWRsaW5lID0gaGVhZGxpbmU7CiAgICAgICAgcmV0dXJuIF90aGlzOwogICAgfQogICAgTWFpbk1lbnVJdGVtLnByb3RvdHlwZS5jcmVhdGVJdGVtID0gZnVuY3Rpb24gKCkgewogICAgICAgIHZhciBpdGVtID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiTEkiKTsKICAgICAgICBpdGVtLnNldEF0dHJpYnV0ZSgib25jbGljayIsICJqYXZhc2NyaXB0OiBvcGVuVGhpc01lbnUodGhpcykiKTsKICAgICAgICBpdGVtLnNldEF0dHJpYnV0ZSgiaWQiLCB0aGlzLmlkKTsKICAgICAgICB2YXIgaW1nID0gdGhpcy5jcmVhdGVJTUcodGhpcy5pbWdTcmMpOwogICAgICAgIHZhciB2YWx1ZSA9IHRoaXMuY3JlYXRlVmFsdWUodGhpcy52YWx1ZSk7CiAgICAgICAgaXRlbS5hcHBlbmRDaGlsZChpbWcpOwogICAgICAgIGl0ZW0uYXBwZW5kQ2hpbGQodmFsdWUpOwogICAgICAgIHZhciBkb2MgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCh0aGlzLkRvY3VtZW50SUQpOwogICAgICAgIGRvYy5hcHBlbmRDaGlsZChpdGVtKTsKICAgICAgICBzd2l0Y2ggKHRoaXMubWVudUtleSkgewogICAgICAgICAgICBjYXNlICJwbGF5bGlzdCI6CiAgICAgICAgICAgICAgICB0aGlzLnRhYmxlSGVhZGVyID0gWyJ7ey5wbGF5bGlzdC50YWJsZS5wbGF5bGlzdH19IiwgInt7LnBsYXlsaXN0LnRhYmxlLnR1bmVyfX0iLCAie3sucGxheWxpc3QudGFibGUubGFzdFVwZGF0ZX19IiwgInt7LnBsYXlsaXN0LnRhYmxlLmF2YWlsYWJpbGl0eX19ICUiLCAie3sucGxheWxpc3QudGFibGUudHlwZX19IiwgInt7LnBsYXlsaXN0LnRhYmxlLnN0cmVhbXN9fSIsICJ7ey5wbGF5bGlzdC50YWJsZS5ncm91cFRpdGxlfX0gJSIsICJ7ey5wbGF5bGlzdC50YWJsZS50dmdJRH19ICUiLCAie3sucGxheWxpc3QudGFibGUudW5pcXVlSUR9fSAlIl07CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAieG1sdHYiOgogICAgICAgICAgICAgICAgdGhpcy50YWJsZUhlYWRlciA9IFsie3sueG1sdHYudGFibGUuZ3VpZGV9fSIsICJ7ey54bWx0di50YWJsZS5sYXN0VXBkYXRlfX0iLCAie3sueG1sdHYudGFibGUuYXZhaWxhYmlsaXR5fX0gJSIsICJ7ey54bWx0di50YWJsZS5jaGFubmVsc319IiwgInt7LnhtbHR2LnRhYmxlLnByb2dyYW1zfX0iXTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJmaWx0ZXIiOgogICAgICAgICAgICAgICAgdGhpcy50YWJsZUhlYWRlciA9IFsie3suZmlsdGVyLnRhYmxlLm5hbWV9fSIsICJ7ey5maWx0ZXIudGFibGUudHlwZX19IiwgInt7LmZpbHRlci50YWJsZS5maWx0ZXJ9fSJdOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgInVzZXJzIjoKICAgICAgICAgICAgICAgIHRoaXMudGFibGVIZWFkZXIgPSBbInt7LnVzZXJzLnRhYmxlLnVzZXJuYW1lfX0iLCAie3sudXNlcnMudGFibGUucGFzc3dvcmR9fSIsICJ7ey51c2Vycy50YWJsZS53ZWJ9fSIsICJ7ey51c2Vycy50YWJsZS5wbXN9fSIsICJ7ey51c2Vycy50YWJsZS5tM3V9fSIsICJ7ey51c2Vycy50YWJsZS54bWx9fSIsICJ7ey51c2Vycy50YWJsZS5hcGl9fSJdOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgIm1hcHBpbmciOgogICAgICAgICAgICAgICAgdGhpcy50YWJsZUhlYWRlciA9IFsiQlVMSyIsICJ7ey5tYXBwaW5nLnRhYmxlLmNoTm99fSIsICJ7ey5tYXBwaW5nLnRhYmxlLmxvZ299fSIsICJ7ey5tYXBwaW5nLnRhYmxlLmNoYW5uZWxOYW1lfX0iLCAie3subWFwcGluZy50YWJsZS5wbGF5bGlzdH19IiwgInt7Lm1hcHBpbmcudGFibGUuZ3JvdXBUaXRsZX19IiwgInt7Lm1hcHBpbmcudGFibGUueG1sdHZGaWxlfX0iLCAie3subWFwcGluZy50YWJsZS54bWx0dklEfX0iXTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgIH0KICAgICAgICAvL2NvbnNvbGUubG9nKHRoaXMubWVudUtleSwgdGhpcy50YWJsZUhlYWRlcik7CiAgICB9OwogICAgcmV0dXJuIE1haW5NZW51SXRlbTsKfShNYWluTWVudSkpOwp2YXIgQ29udGVudCA9IC8qKiBAY2xhc3MgKi8gKGZ1bmN0aW9uICgpIHsKICAgIGZ1bmN0aW9uIENvbnRlbnQoKSB7CiAgICAgICAgdGhpcy5Eb2N1bWVudElEID0gImNvbnRlbnQiOwogICAgICAgIHRoaXMuVGFibGVJRCA9ICJjb250ZW50X3RhYmxlIjsKICAgICAgICB0aGlzLmhlYWRlckNsYXNzID0gImNvbnRlbnRfdGFibGVfaGVhZGVyIjsKICAgICAgICB0aGlzLmludGVyYWN0aW9uSUQgPSAiY29udGVudC1pbnRlcmFjdGlvbiI7CiAgICB9CiAgICBDb250ZW50LnByb3RvdHlwZS5jcmVhdGVIZWFkbGluZSA9IGZ1bmN0aW9uICh2YWx1ZSkgewogICAgICAgIHZhciBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiSDMiKTsKICAgICAgICBlbGVtZW50LmlubmVySFRNTCA9IHZhbHVlOwogICAgICAgIHJldHVybiBlbGVtZW50OwogICAgfTsKICAgIENvbnRlbnQucHJvdG90eXBlLmNyZWF0ZUhSID0gZnVuY3Rpb24gKCkgewogICAgICAgIHZhciBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiSFIiKTsKICAgICAgICByZXR1cm4gZWxlbWVudDsKICAgIH07CiAgICBDb250ZW50LnByb3RvdHlwZS5jcmVhdGVJbnRlcmFjdGlvbiA9IGZ1bmN0aW9uICgpIHsKICAgICAgICB2YXIgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIkRJViIpOwogICAgICAgIGVsZW1lbnQuc2V0QXR0cmlidXRlKCJpZCIsIHRoaXMuaW50ZXJhY3Rpb25JRCk7CiAgICAgICAgcmV0dXJuIGVsZW1lbnQ7CiAgICB9OwogICAgQ29udGVudC5wcm90b3R5cGUuY3JlYXRlRElWID0gZnVuY3Rpb24gKCkgewogICAgICAgIHZhciBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiRElWIik7CiAgICAgICAgZWxlbWVudC5pZCA9IHRoaXMuRGl2SUQ7CiAgICAgICAgcmV0dXJuIGVsZW1lbnQ7CiAgICB9OwogICAgQ29udGVudC5wcm90b3R5cGUuY3JlYXRlVEFCTEUgPSBmdW5jdGlvbiAoKSB7CiAgICAgICAgdmFyIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJUQUJMRSIpOwogICAgICAgIGVsZW1lbnQuaWQgPSB0aGlzLlRhYmxlSUQ7CiAgICAgICAgcmV0dXJuIGVsZW1lbnQ7CiAgICB9OwogICAgQ29udGVudC5wcm90b3R5cGUuY3JlYXRlVGFibGVSb3cgPSBmdW5jdGlvbiAoKSB7CiAgICAgICAgdmFyIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJUUiIpOwogICAgICAgIGVsZW1lbnQuY2xhc3NOYW1lID0gdGhpcy5oZWFkZXJDbGFzczsKICAgICAgICByZXR1cm4gZWxlbWVudDsKICAgIH07CiAgICBDb250ZW50LnByb3RvdHlwZS5jcmVhdGVUYWJsZUNvbnRlbnQgPSBmdW5jdGlvbiAobWVudUtleSkgewogICAgICAgIHZhciBkYXRhID0gbmV3IE9iamVjdCgpOwogICAgICAgIHZhciByb3dzID0gbmV3IEFycmF5KCk7CiAgICAgICAgc3dpdGNoIChtZW51S2V5KSB7CiAgICAgICAgICAgIGNhc2UgInBsYXlsaXN0IjoKICAgICAgICAgICAgICAgIHZhciBmaWxlVHlwZXMgPSBuZXcgQXJyYXkoIm0zdSIsICJoZGhyIik7CiAgICAgICAgICAgICAgICBmaWxlVHlwZXMuZm9yRWFjaChmdW5jdGlvbiAoZmlsZVR5cGUpIHsKICAgICAgICAgICAgICAgICAgICBkYXRhID0gU0VSVkVSWyJzZXR0aW5ncyJdWyJmaWxlcyJdW2ZpbGVUeXBlXTsKICAgICAgICAgICAgICAgICAgICB2YXIga2V5cyA9IGdldE9iaktleXMoZGF0YSk7CiAgICAgICAgICAgICAgICAgICAga2V5cy5mb3JFYWNoKGZ1bmN0aW9uIChrZXkpIHsKICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVFIiKTsKICAgICAgICAgICAgICAgICAgICAgICAgdHIuaWQgPSBrZXk7CiAgICAgICAgICAgICAgICAgICAgICAgIHRyLnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoIicgKyBmaWxlVHlwZSArICciLCB0aGlzKScpOwogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7CiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOwogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsKICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsibmFtZSJdOwogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7CiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsKICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7CiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOwogICAgICAgICAgICAgICAgICAgICAgICBpZiAoU0VSVkVSWyJzZXR0aW5ncyJdWyJidWZmZXIiXSAhPSAiLSIpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bInR1bmVyIl07CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gIi0iOwogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsKICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOwogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7CiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bImxhc3QudXBkYXRlIl07CiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsKICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOwogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7CiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bInByb3ZpZGVyLmF2YWlsYWJpbGl0eSJdOwogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7CiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsKICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7CiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOwogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJ0eXBlIl0udG9VcHBlckNhc2UoKTsKICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOwogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7CiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOwogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsKICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsiY29tcGF0aWJpbGl0eSJdWyJzdHJlYW1zIl07CiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsKICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOwogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7CiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bImNvbXBhdGliaWxpdHkiXVsiZ3JvdXAudGl0bGUiXTsKICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOwogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7CiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOwogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsKICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsiY29tcGF0aWJpbGl0eSJdWyJ0dmcuaWQiXTsKICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOwogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7CiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOwogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsKICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsiY29tcGF0aWJpbGl0eSJdWyJzdHJlYW0uaWQiXTsKICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOwogICAgICAgICAgICAgICAgICAgICAgICByb3dzLnB1c2godHIpOwogICAgICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAiZmlsdGVyIjoKICAgICAgICAgICAgICAgIGRlbGV0ZSBTRVJWRVJbInNldHRpbmdzIl1bImZpbHRlciJdWy0xXTsKICAgICAgICAgICAgICAgIGRhdGEgPSBTRVJWRVJbInNldHRpbmdzIl1bImZpbHRlciJdOwogICAgICAgICAgICAgICAgdmFyIGtleXMgPSBnZXRPYmpLZXlzKGRhdGEpOwogICAgICAgICAgICAgICAga2V5cy5mb3JFYWNoKGZ1bmN0aW9uIChrZXkpIHsKICAgICAgICAgICAgICAgICAgICB2YXIgdHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJUUiIpOwogICAgICAgICAgICAgICAgICAgIHRyLmlkID0ga2V5OwogICAgICAgICAgICAgICAgICAgIHRyLnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoIicgKyBkYXRhW2tleV1bInR5cGUiXSArICciLCB0aGlzKScpOwogICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsKICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsKICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJuYW1lIl07CiAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOwogICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsKICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsKICAgICAgICAgICAgICAgICAgICBzd2l0Y2ggKGRhdGFba2V5XVsidHlwZSJdKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgImN1c3RvbS1maWx0ZXIiOgogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9ICJ7ey5maWx0ZXIuY3VzdG9tfX0iOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgImdyb3VwLXRpdGxlIjoKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSAie3suZmlsdGVyLmdyb3VwfX0iOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOwogICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsKICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsKICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJmaWx0ZXIiXTsKICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7CiAgICAgICAgICAgICAgICAgICAgcm93cy5wdXNoKHRyKTsKICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgInhtbHR2IjoKICAgICAgICAgICAgICAgIHZhciBmaWxlVHlwZXMgPSBuZXcgQXJyYXkoInhtbHR2Iik7CiAgICAgICAgICAgICAgICBmaWxlVHlwZXMuZm9yRWFjaChmdW5jdGlvbiAoZmlsZVR5cGUpIHsKICAgICAgICAgICAgICAgICAgICBkYXRhID0gU0VSVkVSWyJzZXR0aW5ncyJdWyJmaWxlcyJdW2ZpbGVUeXBlXTsKICAgICAgICAgICAgICAgICAgICB2YXIga2V5cyA9IGdldE9iaktleXMoZGF0YSk7CiAgICAgICAgICAgICAgICAgICAga2V5cy5mb3JFYWNoKGZ1bmN0aW9uIChrZXkpIHsKICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVFIiKTsKICAgICAgICAgICAgICAgICAgICAgICAgdHIuaWQgPSBrZXk7CiAgICAgICAgICAgICAgICAgICAgICAgIHRyLnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoIicgKyBmaWxlVHlwZSArICciLCB0aGlzKScpOwogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7CiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOwogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsKICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsibmFtZSJdOwogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7CiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsKICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7CiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOwogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJsYXN0LnVwZGF0ZSJdOwogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7CiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsKICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7CiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOwogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJwcm92aWRlci5hdmFpbGFiaWxpdHkiXTsKICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOwogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7CiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOwogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsKICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsiY29tcGF0aWJpbGl0eSJdWyJ4bWx0di5jaGFubmVscyJdOwogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7CiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsKICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7CiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOwogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJjb21wYXRpYmlsaXR5Il1bInhtbHR2LnByb2dyYW1zIl07CiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsKICAgICAgICAgICAgICAgICAgICAgICAgcm93cy5wdXNoKHRyKTsKICAgICAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgInVzZXJzIjoKICAgICAgICAgICAgICAgIHZhciBmaWxlVHlwZXMgPSBuZXcgQXJyYXkoInVzZXJzIik7CiAgICAgICAgICAgICAgICBmaWxlVHlwZXMuZm9yRWFjaChmdW5jdGlvbiAoZmlsZVR5cGUpIHsKICAgICAgICAgICAgICAgICAgICBkYXRhID0gU0VSVkVSW2ZpbGVUeXBlXTsKICAgICAgICAgICAgICAgICAgICB2YXIga2V5cyA9IGdldE9iaktleXMoZGF0YSk7CiAgICAgICAgICAgICAgICAgICAga2V5cy5mb3JFYWNoKGZ1bmN0aW9uIChrZXkpIHsKICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVFIiKTsKICAgICAgICAgICAgICAgICAgICAgICAgdHIuaWQgPSBrZXk7CiAgICAgICAgICAgICAgICAgICAgICAgIHRyLnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoIicgKyBmaWxlVHlwZSArICciLCB0aGlzKScpOwogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7CiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOwogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsKICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsiZGF0YSJdWyJ1c2VybmFtZSJdOwogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7CiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsKICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7CiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOwogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gIioqKioqKiI7CiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsKICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOwogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7CiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChkYXRhW2tleV1bImRhdGEiXVsiYXV0aGVudGljYXRpb24ud2ViIl0gPT0gdHJ1ZSkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9ICLinJMiOwogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9ICItIjsKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7CiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsKICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7CiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOwogICAgICAgICAgICAgICAgICAgICAgICBpZiAoZGF0YVtrZXldWyJkYXRhIl1bImF1dGhlbnRpY2F0aW9uLnBtcyJdID09IHRydWUpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSAi4pyTIjsKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSAiLSI7CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOwogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7CiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOwogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsKICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGRhdGFba2V5XVsiZGF0YSJdWyJhdXRoZW50aWNhdGlvbi5tM3UiXSA9PSB0cnVlKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gIuKckyI7CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gIi0iOwogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsKICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOwogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7CiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChkYXRhW2tleV1bImRhdGEiXVsiYXV0aGVudGljYXRpb24ueG1sIl0gPT0gdHJ1ZSkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9ICLinJMiOwogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9ICItIjsKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7CiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsKICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7CiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOwogICAgICAgICAgICAgICAgICAgICAgICBpZiAoZGF0YVtrZXldWyJkYXRhIl1bImF1dGhlbnRpY2F0aW9uLmFwaSJdID09IHRydWUpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSAi4pyTIjsKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSAiLSI7CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOwogICAgICAgICAgICAgICAgICAgICAgICByb3dzLnB1c2godHIpOwogICAgICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAibWFwcGluZyI6CiAgICAgICAgICAgICAgICBCVUxLX0VESVQgPSBmYWxzZTsKICAgICAgICAgICAgICAgIGNyZWF0ZVNlYXJjaE9iaigpOwogICAgICAgICAgICAgICAgY2hlY2tVbmRvKCJlcGdNYXBwaW5nIik7CiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZygiTUFQUElORyIpOwogICAgICAgICAgICAgICAgZGF0YSA9IFNFUlZFUlsieGVwZyJdWyJlcGdNYXBwaW5nIl07CiAgICAgICAgICAgICAgICB2YXIga2V5cyA9IGdldE9iaktleXMoZGF0YSk7CiAgICAgICAgICAgICAgICBrZXlzLmZvckVhY2goZnVuY3Rpb24gKGtleSkgewogICAgICAgICAgICAgICAgICAgIHZhciB0ciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlRSIik7CiAgICAgICAgICAgICAgICAgICAgdHIuaWQgPSBrZXk7CiAgICAgICAgICAgICAgICAgICAgLy90ci5zZXRBdHRyaWJ1dGUoJ29uY29udGV4dG1lbnUnLCAnamF2YXNjcmlwdDogcmlnaHRDbGljayh0aGlzKScpCiAgICAgICAgICAgICAgICAgICAgc3dpdGNoIChkYXRhW2tleV1bIngtYWN0aXZlIl0pIHsKICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSB0cnVlOgogICAgICAgICAgICAgICAgICAgICAgICAgICAgdHIuY2xhc3NOYW1lID0gImFjdGl2ZUVQRyI7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSBmYWxzZToKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyLmNsYXNzTmFtZSA9ICJub3RBY3RpdmVFUEciOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIC8vIEJ1bGsKICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7CiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7CiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiQlVMSyI7CiAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGZhbHNlOwogICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsKICAgICAgICAgICAgICAgICAgICAvLyBLYW5hbG51bW1lcgogICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsKICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJJTlBVVENIQU5ORUwiOwogICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bIngtY2hhbm5lbElEIl07CiAgICAgICAgICAgICAgICAgICAgLy90ZC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogY2hhbmdlQ2hhbm5lbE51bWJlcigiJyArIGtleSArICciLCB0aGlzKScpCiAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOwogICAgICAgICAgICAgICAgICAgIC8vIExvZ28KICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7CiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7CiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiSU1HIjsKICAgICAgICAgICAgICAgICAgICBjZWxsLmltYWdlVVJMID0gZGF0YVtrZXldWyJ0dmctbG9nbyJdOwogICAgICAgICAgICAgICAgICAgIHZhciB0ZCA9IGNlbGwuY3JlYXRlQ2VsbCgpOwogICAgICAgICAgICAgICAgICAgIHRkLnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoIm1hcHBpbmciLCB0aGlzKScpOwogICAgICAgICAgICAgICAgICAgIHRkLmlkID0ga2V5OwogICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKHRkKTsKICAgICAgICAgICAgICAgICAgICAvLyBLYW5hbG5hbWUKICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7CiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7CiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7CiAgICAgICAgICAgICAgICAgICAgY2VsbC5jbGFzc05hbWUgPSBkYXRhW2tleV1bIngtY2F0ZWdvcnkiXTsKICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJ4LW5hbWUiXTsKICAgICAgICAgICAgICAgICAgICB2YXIgdGQgPSBjZWxsLmNyZWF0ZUNlbGwoKTsKICAgICAgICAgICAgICAgICAgICB0ZC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJtYXBwaW5nIiwgdGhpcyknKTsKICAgICAgICAgICAgICAgICAgICB0ZC5pZCA9IGtleTsKICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZCh0ZCk7CiAgICAgICAgICAgICAgICAgICAgLy8gUGxheWxpc3QKICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7CiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7CiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7CiAgICAgICAgICAgICAgICAgICAgLy9jZWxsLnZhbHVlID0gZGF0YVtrZXldWyJfZmlsZS5tM3UubmFtZSJdIAogICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBnZXRWYWx1ZUZyb21Qcm92aWRlckZpbGUoZGF0YVtrZXldWyJfZmlsZS5tM3UuaWQiXSwgIm0zdSIsICJuYW1lIik7CiAgICAgICAgICAgICAgICAgICAgdmFyIHRkID0gY2VsbC5jcmVhdGVDZWxsKCk7CiAgICAgICAgICAgICAgICAgICAgdGQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgibWFwcGluZyIsIHRoaXMpJyk7CiAgICAgICAgICAgICAgICAgICAgdGQuaWQgPSBrZXk7CiAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQodGQpOwogICAgICAgICAgICAgICAgICAgIC8vIEdydXBwZSAoZ3JvdXAtdGl0bGUpCiAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOwogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOwogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOwogICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bIngtZ3JvdXAtdGl0bGUiXTsKICAgICAgICAgICAgICAgICAgICB2YXIgdGQgPSBjZWxsLmNyZWF0ZUNlbGwoKTsKICAgICAgICAgICAgICAgICAgICB0ZC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJtYXBwaW5nIiwgdGhpcyknKTsKICAgICAgICAgICAgICAgICAgICB0ZC5pZCA9IGtleTsKICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZCh0ZCk7CiAgICAgICAgICAgICAgICAgICAgLy8gWE1MVFYgRGF0ZWkKICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7CiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7CiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7CiAgICAgICAgICAgICAgICAgICAgaWYgKGRhdGFba2V5XVsieC14bWx0di1maWxlIl0gIT0gIi0iKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBnZXRWYWx1ZUZyb21Qcm92aWRlckZpbGUoZGF0YVtrZXldWyJ4LXhtbHR2LWZpbGUiXSwgInhtbHR2IiwgIm5hbWUiKTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bIngteG1sdHYtZmlsZSJdOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB2YXIgdGQgPSBjZWxsLmNyZWF0ZUNlbGwoKTsKICAgICAgICAgICAgICAgICAgICB0ZC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJtYXBwaW5nIiwgdGhpcyknKTsKICAgICAgICAgICAgICAgICAgICB0ZC5pZCA9IGtleTsKICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZCh0ZCk7CiAgICAgICAgICAgICAgICAgICAgLy8gWE1MVFYgS2FuYWwKICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7CiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7CiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7CiAgICAgICAgICAgICAgICAgICAgLy92YXIgdmFsdWUgPSBzdHIuc3Vic3RyaW5nKDEsIDQpOwogICAgICAgICAgICAgICAgICAgIHZhciB2YWx1ZSA9IGRhdGFba2V5XVsieC1tYXBwaW5nIl07CiAgICAgICAgICAgICAgICAgICAgaWYgKHZhbHVlLmxlbmd0aCA+IDIwKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlID0gZGF0YVtrZXldWyJ4LW1hcHBpbmciXS5zdWJzdHJpbmcoMCwgMjApICsgIi4uLiI7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSB2YWx1ZTsKICAgICAgICAgICAgICAgICAgICB2YXIgdGQgPSBjZWxsLmNyZWF0ZUNlbGwoKTsKICAgICAgICAgICAgICAgICAgICB0ZC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJtYXBwaW5nIiwgdGhpcyknKTsKICAgICAgICAgICAgICAgICAgICB0ZC5pZCA9IGtleTsKICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZCh0ZCk7CiAgICAgICAgICAgICAgICAgICAgcm93cy5wdXNoKHRyKTsKICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgInNldHRpbmdzIjoKICAgICAgICAgICAgICAgIGFsZXJ0KCk7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKCJUYWJsZSBjb250ZW50IChtZW51S2V5KToiLCBtZW51S2V5KTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgIH0KICAgICAgICByZXR1cm4gcm93czsKICAgIH07CiAgICByZXR1cm4gQ29udGVudDsKfSgpKTsKdmFyIENlbGwgPSAvKiogQGNsYXNzICovIChmdW5jdGlvbiAoKSB7CiAgICBmdW5jdGlvbiBDZWxsKCkgewogICAgfQogICAgQ2VsbC5wcm90b3R5cGUuY3JlYXRlQ2VsbCA9IGZ1bmN0aW9uICgpIHsKICAgICAgICB2YXIgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOwogICAgICAgIGlmICh0aGlzLmNoaWxkID09IHRydWUpIHsKICAgICAgICAgICAgdmFyIGVsZW1lbnQ7CiAgICAgICAgICAgIHN3aXRjaCAodGhpcy5jaGlsZFR5cGUpIHsKICAgICAgICAgICAgICAgIGNhc2UgIlAiOgogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KHRoaXMuY2hpbGRUeXBlKTsKICAgICAgICAgICAgICAgICAgICBlbGVtZW50LmlubmVySFRNTCA9IHRoaXMudmFsdWU7CiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC5jbGFzc05hbWUgPSB0aGlzLmNsYXNzTmFtZTsKICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgIGNhc2UgIklOUFVUIjoKICAgICAgICAgICAgICAgICAgICBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCh0aGlzLmNoaWxkVHlwZSk7CiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC52YWx1ZSA9IHRoaXMudmFsdWU7CiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC50eXBlID0gInRleHQiOwogICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgY2FzZSAiSU5QVVRDSEFOTkVMIjoKICAgICAgICAgICAgICAgICAgICBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiSU5QVVQiKTsKICAgICAgICAgICAgICAgICAgICBlbGVtZW50LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2c2NyaXB0OiBjaGFuZ2VDaGFubmVsTnVtYmVyKHRoaXMpIik7CiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC52YWx1ZSA9IHRoaXMudmFsdWU7CiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC50eXBlID0gInRleHQiOwogICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgY2FzZSAiQlVMSyI6CiAgICAgICAgICAgICAgICAgICAgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIklOUFVUIik7CiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC5jaGVja2VkID0gdGhpcy52YWx1ZTsKICAgICAgICAgICAgICAgICAgICBlbGVtZW50LnR5cGUgPSAiY2hlY2tib3giOwogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQuY2xhc3NOYW1lID0gImJ1bGsgaGlkZUJ1bGsiOwogICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgY2FzZSAiQlVMS19IRUFEIjoKICAgICAgICAgICAgICAgICAgICBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiSU5QVVQiKTsKICAgICAgICAgICAgICAgICAgICBlbGVtZW50LmNoZWNrZWQgPSB0aGlzLnZhbHVlOwogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQudHlwZSA9ICJjaGVja2JveCI7CiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC5jbGFzc05hbWUgPSAiYnVsayBoaWRlQnVsayI7CiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAiamF2YXNjcmlwdDogc2VsZWN0QWxsQ2hhbm5lbHMoKSIpOwogICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgY2FzZSAiSU1HIjoKICAgICAgICAgICAgICAgICAgICBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCh0aGlzLmNoaWxkVHlwZSk7CiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC5zZXRBdHRyaWJ1dGUoInNyYyIsIHRoaXMuaW1hZ2VVUkwpOwogICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLmltYWdlVVJMICE9ICIiKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGVsZW1lbnQuc2V0QXR0cmlidXRlKCJvbmVycm9yIiwgImphdmFzY3JpcHQ6IHRoaXMub25lcnJvcj1udWxsO3RoaXMuc3JjPScnIik7CiAgICAgICAgICAgICAgICAgICAgICAgIC8vb25lcnJvcj0idGhpcy5vbmVycm9yPW51bGw7dGhpcy5zcmM9J21pc3NpbmcuZ2lmJzsiCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICAgIHRkLmFwcGVuZENoaWxkKGVsZW1lbnQpOwogICAgICAgIH0KICAgICAgICBlbHNlIHsKICAgICAgICAgICAgdGQuaW5uZXJIVE1MID0gdGhpcy52YWx1ZTsKICAgICAgICB9CiAgICAgICAgaWYgKHRoaXMub25jbGljayA9PSB0cnVlKSB7CiAgICAgICAgICAgIHRkLnNldEF0dHJpYnV0ZSgib25jbGljayIsIHRoaXMub25jbGlja0Z1bmt0aW9uKTsKICAgICAgICAgICAgdGQuY2xhc3NOYW1lID0gInBvaW50ZXIiOwogICAgICAgIH0KICAgICAgICBpZiAodGhpcy50ZENsYXNzTmFtZSAhPSB1bmRlZmluZWQpIHsKICAgICAgICAgICAgdGQuY2xhc3NOYW1lID0gdGhpcy50ZENsYXNzTmFtZTsKICAgICAgICB9CiAgICAgICAgcmV0dXJuIHRkOwogICAgfTsKICAgIHJldHVybiBDZWxsOwp9KCkpOwp2YXIgU2hvd0NvbnRlbnQgPSAvKiogQGNsYXNzICovIChmdW5jdGlvbiAoX3N1cGVyKSB7CiAgICBfX2V4dGVuZHMoU2hvd0NvbnRlbnQsIF9zdXBlcik7CiAgICBmdW5jdGlvbiBTaG93Q29udGVudChtZW51SUQpIHsKICAgICAgICB2YXIgX3RoaXMgPSBfc3VwZXIuY2FsbCh0aGlzKSB8fCB0aGlzOwogICAgICAgIF90aGlzLm1lbnVJRCA9IG1lbnVJRDsKICAgICAgICByZXR1cm4gX3RoaXM7CiAgICB9CiAgICBTaG93Q29udGVudC5wcm90b3R5cGUuY3JlYXRlSW5wdXQgPSBmdW5jdGlvbiAodHlwZSwgbmFtZSwgdmFsdWUpIHsKICAgICAgICB2YXIgaW5wdXQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJJTlBVVCIpOwogICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgidHlwZSIsIHR5cGUpOwogICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgibmFtZSIsIG5hbWUpOwogICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgidmFsdWUiLCB2YWx1ZSk7CiAgICAgICAgcmV0dXJuIGlucHV0OwogICAgfTsKICAgIFNob3dDb250ZW50LnByb3RvdHlwZS5zaG93ID0gZnVuY3Rpb24gKCkgewogICAgICAgIENPTFVNTl9UT19TT1JUID0gLTE7CiAgICAgICAgLy8gQWx0ZW4gSW5oYWx0IGzDtnNjaGVuCiAgICAgICAgdmFyIGRvYyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHRoaXMuRG9jdW1lbnRJRCk7CiAgICAgICAgZG9jLmlubmVySFRNTCA9ICIiOwogICAgICAgIHNob3dQcmV2aWV3KGZhbHNlKTsKICAgICAgICAvLyDDnGJlcnNjaHJpZnQKICAgICAgICB2YXIgaGVhZGxpbmUgPSBtZW51SXRlbXNbdGhpcy5tZW51SURdLmhlYWRsaW5lOwogICAgICAgIHZhciBtZW51S2V5ID0gbWVudUl0ZW1zW3RoaXMubWVudUlEXS5tZW51S2V5OwogICAgICAgIHZhciBoID0gdGhpcy5jcmVhdGVIZWFkbGluZShoZWFkbGluZSk7CiAgICAgICAgZG9jLmFwcGVuZENoaWxkKGgpOwogICAgICAgIHZhciBociA9IHRoaXMuY3JlYXRlSFIoKTsKICAgICAgICBkb2MuYXBwZW5kQ2hpbGQoaHIpOwogICAgICAgIC8vIEludGVyYWt0aW9uCiAgICAgICAgdmFyIGRpdiA9IHRoaXMuY3JlYXRlSW50ZXJhY3Rpb24oKTsKICAgICAgICBkb2MuYXBwZW5kQ2hpbGQoZGl2KTsKICAgICAgICB2YXIgaW50ZXJhY3Rpb24gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCh0aGlzLmludGVyYWN0aW9uSUQpOwogICAgICAgIHN3aXRjaCAobWVudUtleSkgewogICAgICAgICAgICBjYXNlICJwbGF5bGlzdCI6CiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSB0aGlzLmNyZWF0ZUlucHV0KCJidXR0b24iLCBtZW51S2V5LCAie3suYnV0dG9uLm5ld319Iik7CiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoImlkIiwgIi0iKTsKICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoInBsYXlsaXN0IiknKTsKICAgICAgICAgICAgICAgIGludGVyYWN0aW9uLmFwcGVuZENoaWxkKGlucHV0KTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJmaWx0ZXIiOgogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gdGhpcy5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgbWVudUtleSwgInt7LmJ1dHRvbi5uZXd9fSIpOwogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJpZCIsIC0xKTsKICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoImZpbHRlciIsIHRoaXMpJyk7CiAgICAgICAgICAgICAgICBpbnRlcmFjdGlvbi5hcHBlbmRDaGlsZChpbnB1dCk7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAieG1sdHYiOgogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gdGhpcy5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgbWVudUtleSwgInt7LmJ1dHRvbi5uZXd9fSIpOwogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJpZCIsICJ4bWx0diIpOwogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgieG1sdHYiKScpOwogICAgICAgICAgICAgICAgaW50ZXJhY3Rpb24uYXBwZW5kQ2hpbGQoaW5wdXQpOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgInVzZXJzIjoKICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IHRoaXMuY3JlYXRlSW5wdXQoImJ1dHRvbiIsIG1lbnVLZXksICJ7ey5idXR0b24ubmV3fX0iKTsKICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgiaWQiLCAidXNlcnMiKTsKICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoInVzZXJzIiknKTsKICAgICAgICAgICAgICAgIGludGVyYWN0aW9uLmFwcGVuZENoaWxkKGlucHV0KTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJtYXBwaW5nIjoKICAgICAgICAgICAgICAgIHNob3dFbGVtZW50KCJsb2FkaW5nIiwgdHJ1ZSk7CiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSB0aGlzLmNyZWF0ZUlucHV0KCJidXR0b24iLCBtZW51S2V5LCAie3suYnV0dG9uLnNhdmV9fSIpOwogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoIm1hcHBpbmciLCAiIiwgIiIpJyk7CiAgICAgICAgICAgICAgICBpbnRlcmFjdGlvbi5hcHBlbmRDaGlsZChpbnB1dCk7CiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSB0aGlzLmNyZWF0ZUlucHV0KCJidXR0b24iLCBtZW51S2V5LCAie3suYnV0dG9uLmJ1bGtFZGl0fX0iKTsKICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBidWxrRWRpdCgpJyk7CiAgICAgICAgICAgICAgICBpbnRlcmFjdGlvbi5hcHBlbmRDaGlsZChpbnB1dCk7CiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSB0aGlzLmNyZWF0ZUlucHV0KCJzZWFyY2giLCAic2VhcmNoIiwgIiIpOwogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJpZCIsICJzZWFyY2hNYXBwaW5nIik7CiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LmJ1dHRvbi5zZWFyY2h9fSIpOwogICAgICAgICAgICAgICAgaW5wdXQuY2xhc3NOYW1lID0gInNlYXJjaCI7CiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgJ2phdmFzY3JpcHQ6IHNlYXJjaEluTWFwcGluZygpJyk7CiAgICAgICAgICAgICAgICBpbnRlcmFjdGlvbi5hcHBlbmRDaGlsZChpbnB1dCk7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAic2V0dGluZ3MiOgogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gdGhpcy5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgbWVudUtleSwgInt7LmJ1dHRvbi5zYXZlfX0iKTsKICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBzYXZlU2V0dGluZ3MoKTsnKTsKICAgICAgICAgICAgICAgIGludGVyYWN0aW9uLmFwcGVuZENoaWxkKGlucHV0KTsKICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IHRoaXMuY3JlYXRlSW5wdXQoImJ1dHRvbiIsIG1lbnVLZXksICJ7ey5idXR0b24uYmFja3VwfX0iKTsKICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBiYWNrdXAoKTsnKTsKICAgICAgICAgICAgICAgIGludGVyYWN0aW9uLmFwcGVuZENoaWxkKGlucHV0KTsKICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IHRoaXMuY3JlYXRlSW5wdXQoImJ1dHRvbiIsIG1lbnVLZXksICJ7ey5idXR0b24ucmVzdG9yZX19Iik7CiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogcmVzdG9yZSgpOycpOwogICAgICAgICAgICAgICAgaW50ZXJhY3Rpb24uYXBwZW5kQ2hpbGQoaW5wdXQpOwogICAgICAgICAgICAgICAgdmFyIHdyYXBwZXIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJESVYiKTsKICAgICAgICAgICAgICAgIHdyYXBwZXIuc2V0QXR0cmlidXRlKCJpZCIsICJib3gtd3JhcHBlciIpOwogICAgICAgICAgICAgICAgZG9jLmFwcGVuZENoaWxkKHdyYXBwZXIpOwogICAgICAgICAgICAgICAgdGhpcy5EaXZJRCA9ICJjb250ZW50X3NldHRpbmdzIjsKICAgICAgICAgICAgICAgIHZhciBzZXR0aW5ncyA9IHRoaXMuY3JlYXRlRElWKCk7CiAgICAgICAgICAgICAgICB3cmFwcGVyLmFwcGVuZENoaWxkKHNldHRpbmdzKTsKICAgICAgICAgICAgICAgIHNob3dTZXR0aW5ncygpOwogICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgImxvZyI6CiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSB0aGlzLmNyZWF0ZUlucHV0KCJidXR0b24iLCBtZW51S2V5LCAie3suYnV0dG9uLnJlc2V0TG9nc319Iik7CiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogcmVzZXRMb2dzKCk7Jyk7CiAgICAgICAgICAgICAgICBpbnRlcmFjdGlvbi5hcHBlbmRDaGlsZChpbnB1dCk7CiAgICAgICAgICAgICAgICB2YXIgd3JhcHBlciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIkRJViIpOwogICAgICAgICAgICAgICAgd3JhcHBlci5zZXRBdHRyaWJ1dGUoImlkIiwgImJveC13cmFwcGVyIik7CiAgICAgICAgICAgICAgICBkb2MuYXBwZW5kQ2hpbGQod3JhcHBlcik7CiAgICAgICAgICAgICAgICB0aGlzLkRpdklEID0gImNvbnRlbnRfbG9nIjsKICAgICAgICAgICAgICAgIHZhciBsb2dzID0gdGhpcy5jcmVhdGVESVYoKTsKICAgICAgICAgICAgICAgIHdyYXBwZXIuYXBwZW5kQ2hpbGQobG9ncyk7CiAgICAgICAgICAgICAgICBzaG93TG9ncyh0cnVlKTsKICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJsb2dvdXQiOgogICAgICAgICAgICAgICAgbG9jYXRpb24ucmVsb2FkKCk7CiAgICAgICAgICAgICAgICBkb2N1bWVudC5jb29raWUgPSAiVG9rZW49IDsgZXhwaXJlcyA9IFRodSwgMDEgSmFuIDE5NzAgMDA6MDA6MDAgR01UIjsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAgICAgY29uc29sZS5sb2coIlNob3cgY29udGVudCAobWVudUtleSk6IiwgbWVudUtleSk7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICB9CiAgICAgICAgLy8gVGFiZWxsZSBlcnN0ZWxsZW4gKGZhbGxzIGJlbsO2dGlndCkKICAgICAgICB2YXIgdGFibGVIZWFkZXIgPSBtZW51SXRlbXNbdGhpcy5tZW51SURdLnRhYmxlSGVhZGVyOwogICAgICAgIGlmICh0YWJsZUhlYWRlci5sZW5ndGggPiAwKSB7CiAgICAgICAgICAgIHZhciB3cmFwcGVyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiRElWIik7CiAgICAgICAgICAgIGRvYy5hcHBlbmRDaGlsZCh3cmFwcGVyKTsKICAgICAgICAgICAgd3JhcHBlci5zZXRBdHRyaWJ1dGUoImlkIiwgImJveC13cmFwcGVyIik7CiAgICAgICAgICAgIHZhciB0YWJsZSA9IHRoaXMuY3JlYXRlVEFCTEUoKTsKICAgICAgICAgICAgd3JhcHBlci5hcHBlbmRDaGlsZCh0YWJsZSk7CiAgICAgICAgICAgIHZhciBoZWFkZXIgPSB0aGlzLmNyZWF0ZVRhYmxlUm93KCk7CiAgICAgICAgICAgIHRhYmxlLmFwcGVuZENoaWxkKGhlYWRlcik7CiAgICAgICAgICAgIC8vIEtvcGZ6ZWlsZSBkZXIgVGFibGxlCiAgICAgICAgICAgIHRhYmxlSGVhZGVyLmZvckVhY2goZnVuY3Rpb24gKGVsZW1lbnQpIHsKICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsKICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOwogICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7CiAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZWxlbWVudDsKICAgICAgICAgICAgICAgIGlmIChlbGVtZW50ID09ICJCVUxLIikgewogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIkJVTEtfSEVBRCI7CiAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGZhbHNlOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgaWYgKG1lbnVLZXkgPT0gIm1hcHBpbmciKSB7CiAgICAgICAgICAgICAgICAgICAgaWYgKGVsZW1lbnQgPT0gInt7Lm1hcHBpbmcudGFibGUuY2hOb319IikgewogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLm9uY2xpY2sgPSB0cnVlOwogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLm9uY2xpY2tGdW5rdGlvbiA9ICJqYXZhc2NyaXB0OiBzb3J0VGFibGUoMSk7IjsKICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC50ZENsYXNzTmFtZSA9ICJzb3J0VGhpcyI7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIGlmIChlbGVtZW50ID09ICJ7ey5tYXBwaW5nLnRhYmxlLmNoYW5uZWxOYW1lfX0iKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwub25jbGljayA9IHRydWU7CiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwub25jbGlja0Z1bmt0aW9uID0gImphdmFzY3JpcHQ6IHNvcnRUYWJsZSgzKTsiOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBpZiAoZWxlbWVudCA9PSAie3subWFwcGluZy50YWJsZS5wbGF5bGlzdH19IikgewogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLm9uY2xpY2sgPSB0cnVlOwogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLm9uY2xpY2tGdW5rdGlvbiA9ICJqYXZhc2NyaXB0OiBzb3J0VGFibGUoNCk7IjsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgaWYgKGVsZW1lbnQgPT0gInt7Lm1hcHBpbmcudGFibGUuZ3JvdXBUaXRsZX19IikgewogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLm9uY2xpY2sgPSB0cnVlOwogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLm9uY2xpY2tGdW5rdGlvbiA9ICJqYXZhc2NyaXB0OiBzb3J0VGFibGUoNSk7IjsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBoZWFkZXIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOwogICAgICAgICAgICB9KTsKICAgICAgICAgICAgdGFibGUuYXBwZW5kQ2hpbGQoaGVhZGVyKTsKICAgICAgICAgICAgLy8gSW5oYWx0IGRlciBUYWJlbGxlCiAgICAgICAgICAgIHZhciByb3dzID0gdGhpcy5jcmVhdGVUYWJsZUNvbnRlbnQobWVudUtleSk7CiAgICAgICAgICAgIHJvd3MuZm9yRWFjaChmdW5jdGlvbiAodHIpIHsKICAgICAgICAgICAgICAgIHRhYmxlLmFwcGVuZENoaWxkKHRyKTsKICAgICAgICAgICAgfSk7CiAgICAgICAgfQogICAgICAgIHN3aXRjaCAobWVudUtleSkgewogICAgICAgICAgICBjYXNlICJtYXBwaW5nIjoKICAgICAgICAgICAgICAgIHNvcnRUYWJsZSgxKTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJmaWx0ZXIiOgogICAgICAgICAgICAgICAgc2hvd1ByZXZpZXcodHJ1ZSk7CiAgICAgICAgICAgICAgICBzb3J0VGFibGUoMCk7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgICAgIENPTFVNTl9UT19TT1JUID0gLTE7CiAgICAgICAgICAgICAgICBzb3J0VGFibGUoMCk7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICB9CiAgICAgICAgc2hvd0VsZW1lbnQoImxvYWRpbmciLCBmYWxzZSk7CiAgICB9OwogICAgcmV0dXJuIFNob3dDb250ZW50Owp9KENvbnRlbnQpKTsKZnVuY3Rpb24gUGFnZVJlYWR5KCkgewogICAgdmFyIHNlcnZlciA9IG5ldyBTZXJ2ZXIoImdldFNlcnZlckNvbmZpZyIpOwogICAgc2VydmVyLnJlcXVlc3QobmV3IE9iamVjdCgpKTsKICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJyZXNpemUiLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgY2FsY3VsYXRlV3JhcHBlckhlaWdodCgpOwogICAgfSwgdHJ1ZSk7CiAgICBzZXRJbnRlcnZhbChmdW5jdGlvbiAoKSB7CiAgICAgICAgdXBkYXRlTG9nKCk7CiAgICB9LCAxMDAwMCk7CiAgICByZXR1cm47Cn0KZnVuY3Rpb24gY3JlYXRlTGF5b3V0KCkgewogICAgLy8gQ2xpZW50IEluZm8KICAgIHZhciBvYmogPSBTRVJWRVJbImNsaWVudEluZm8iXTsKICAgIHZhciBrZXlzID0gZ2V0T2JqS2V5cyhvYmopOwogICAgZm9yICh2YXIgaSA9IDA7IGkgPCBrZXlzLmxlbmd0aDsgaSsrKSB7CiAgICAgICAgaWYgKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGtleXNbaV0pKSB7CiAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGtleXNbaV0pLmlubmVySFRNTCA9IG9ialtrZXlzW2ldXTsKICAgICAgICB9CiAgICB9CiAgICBpZiAoIWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJtYWluLW1lbnUiKSkgewogICAgICAgIHJldHVybjsKICAgIH0KICAgIC8vIE1lbsO8IGVyc3RlbGxlbgogICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm1haW4tbWVudSIpLmlubmVySFRNTCA9ICIiOwogICAgZm9yICh2YXIgaV8xID0gMDsgaV8xIDwgbWVudUl0ZW1zLmxlbmd0aDsgaV8xKyspIHsKICAgICAgICBtZW51SXRlbXNbaV8xXS5pZCA9IGlfMTsKICAgICAgICBzd2l0Y2ggKG1lbnVJdGVtc1tpXzFdWyJtZW51S2V5Il0pIHsKICAgICAgICAgICAgY2FzZSAidXNlcnMiOgogICAgICAgICAgICBjYXNlICJsb2dvdXQiOgogICAgICAgICAgICAgICAgaWYgKFNFUlZFUlsic2V0dGluZ3MiXVsiYXV0aGVudGljYXRpb24ud2ViIl0gPT0gdHJ1ZSkgewogICAgICAgICAgICAgICAgICAgIG1lbnVJdGVtc1tpXzFdLmNyZWF0ZUl0ZW0oKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJtYXBwaW5nIjoKICAgICAgICAgICAgY2FzZSAieG1sdHYiOgogICAgICAgICAgICAgICAgaWYgKFNFUlZFUlsiY2xpZW50SW5mbyJdWyJlcGdTb3VyY2UiXSA9PSAiWEVQRyIpIHsKICAgICAgICAgICAgICAgICAgICBtZW51SXRlbXNbaV8xXS5jcmVhdGVJdGVtKCk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgICAgIG1lbnVJdGVtc1tpXzFdLmNyZWF0ZUl0ZW0oKTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgIH0KICAgIH0KICAgIHJldHVybjsKfQpmdW5jdGlvbiBvcGVuVGhpc01lbnUoZWxlbWVudCkgewogICAgdmFyIGlkID0gZWxlbWVudC5pZDsKICAgIHZhciBjb250ZW50ID0gbmV3IFNob3dDb250ZW50KGlkKTsKICAgIGNvbnRlbnQuc2hvdygpOwogICAgY2FsY3VsYXRlV3JhcHBlckhlaWdodCgpOwogICAgcmV0dXJuOwp9CnZhciBQb3B1cFdpbmRvdyA9IC8qKiBAY2xhc3MgKi8gKGZ1bmN0aW9uICgpIHsKICAgIGZ1bmN0aW9uIFBvcHVwV2luZG93KCkgewogICAgICAgIHRoaXMuRG9jdW1lbnRJRCA9ICJwb3B1cC1jdXN0b20iOwogICAgICAgIHRoaXMuSW50ZXJhY3Rpb25JRCA9ICJpbnRlcmFjdGlvbiI7CiAgICAgICAgdGhpcy5kb2MgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCh0aGlzLkRvY3VtZW50SUQpOwogICAgfQogICAgUG9wdXBXaW5kb3cucHJvdG90eXBlLmNyZWF0ZVRpdGxlID0gZnVuY3Rpb24gKHRpdGxlKSB7CiAgICAgICAgdmFyIHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsKICAgICAgICB0ZC5jbGFzc05hbWUgPSAibGVmdCI7CiAgICAgICAgdGQuaW5uZXJIVE1MID0gdGl0bGUgKyAiOiI7CiAgICAgICAgcmV0dXJuIHRkOwogICAgfTsKICAgIFBvcHVwV2luZG93LnByb3RvdHlwZS5jcmVhdGVDb250ZW50ID0gZnVuY3Rpb24gKGVsZW1lbnQpIHsKICAgICAgICB2YXIgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOwogICAgICAgIHRkLmFwcGVuZENoaWxkKGVsZW1lbnQpOwogICAgICAgIHJldHVybiB0ZDsKICAgIH07CiAgICBQb3B1cFdpbmRvdy5wcm90b3R5cGUuY3JlYXRlSW50ZXJhY3Rpb24gPSBmdW5jdGlvbiAoKSB7CiAgICAgICAgdmFyIGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOwogICAgICAgIGRpdi5zZXRBdHRyaWJ1dGUoImlkIiwgInBvcHVwLWludGVyYWN0aW9uIik7CiAgICAgICAgZGl2LmNsYXNzTmFtZSA9ICJpbnRlcmFjdGlvbiI7CiAgICAgICAgdGhpcy5kb2MuYXBwZW5kQ2hpbGQoZGl2KTsKICAgIH07CiAgICByZXR1cm4gUG9wdXBXaW5kb3c7Cn0oKSk7CnZhciBQb3B1cENvbnRlbnQgPSAvKiogQGNsYXNzICovIChmdW5jdGlvbiAoX3N1cGVyKSB7CiAgICBfX2V4dGVuZHMoUG9wdXBDb250ZW50LCBfc3VwZXIpOwogICAgZnVuY3Rpb24gUG9wdXBDb250ZW50KCkgewogICAgICAgIHZhciBfdGhpcyA9IF9zdXBlciAhPT0gbnVsbCAmJiBfc3VwZXIuYXBwbHkodGhpcywgYXJndW1lbnRzKSB8fCB0aGlzOwogICAgICAgIF90aGlzLnRhYmxlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEFCTEUiKTsKICAgICAgICByZXR1cm4gX3RoaXM7CiAgICB9CiAgICBQb3B1cENvbnRlbnQucHJvdG90eXBlLmNyZWF0ZUhlYWRsaW5lID0gZnVuY3Rpb24gKGhlYWRsaW5lKSB7CiAgICAgICAgdGhpcy5kb2MuaW5uZXJIVE1MID0gIiI7CiAgICAgICAgdmFyIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJIMyIpOwogICAgICAgIGVsZW1lbnQuaW5uZXJIVE1MID0gaGVhZGxpbmUudG9VcHBlckNhc2UoKTsKICAgICAgICB0aGlzLmRvYy5hcHBlbmRDaGlsZChlbGVtZW50KTsKICAgICAgICAvLyBUYWJlbGxlIGVyc3RlbGxlbgogICAgICAgIHRoaXMudGFibGUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJUQUJMRSIpOwogICAgICAgIHRoaXMuZG9jLmFwcGVuZENoaWxkKHRoaXMudGFibGUpOwogICAgfTsKICAgIFBvcHVwQ29udGVudC5wcm90b3R5cGUuYXBwZW5kUm93ID0gZnVuY3Rpb24gKHRpdGxlLCBlbGVtZW50KSB7CiAgICAgICAgdmFyIHRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVFIiKTsKICAgICAgICAvLyBCZXplaWNobnVuZwogICAgICAgIGlmICh0aXRsZS5sZW5ndGggIT0gMCkgewogICAgICAgICAgICB0ci5hcHBlbmRDaGlsZCh0aGlzLmNyZWF0ZVRpdGxlKHRpdGxlKSk7CiAgICAgICAgfQogICAgICAgIC8vIENvbnRlbnQKICAgICAgICB0ci5hcHBlbmRDaGlsZCh0aGlzLmNyZWF0ZUNvbnRlbnQoZWxlbWVudCkpOwogICAgICAgIHRoaXMudGFibGUuYXBwZW5kQ2hpbGQodHIpOwogICAgfTsKICAgIFBvcHVwQ29udGVudC5wcm90b3R5cGUuY3JlYXRlSW5wdXQgPSBmdW5jdGlvbiAodHlwZSwgbmFtZSwgdmFsdWUpIHsKICAgICAgICB2YXIgaW5wdXQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJJTlBVVCIpOwogICAgICAgIGlmICh2YWx1ZSA9PSB1bmRlZmluZWQpIHsKICAgICAgICAgICAgdmFsdWUgPSAiIjsKICAgICAgICB9CiAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJ0eXBlIiwgdHlwZSk7CiAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJuYW1lIiwgbmFtZSk7CiAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJ2YWx1ZSIsIHZhbHVlKTsKICAgICAgICByZXR1cm4gaW5wdXQ7CiAgICB9OwogICAgUG9wdXBDb250ZW50LnByb3RvdHlwZS5jcmVhdGVDaGVja2JveCA9IGZ1bmN0aW9uIChuYW1lKSB7CiAgICAgICAgdmFyIGlucHV0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiSU5QVVQiKTsKICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInR5cGUiLCAiY2hlY2tib3giKTsKICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm5hbWUiLCBuYW1lKTsKICAgICAgICByZXR1cm4gaW5wdXQ7CiAgICB9OwogICAgUG9wdXBDb250ZW50LnByb3RvdHlwZS5jcmVhdGVTZWxlY3QgPSBmdW5jdGlvbiAodGV4dCwgdmFsdWVzLCBzZXQsIGRiS2V5KSB7CiAgICAgICAgdmFyIHNlbGVjdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlNFTEVDVCIpOwogICAgICAgIHNlbGVjdC5zZXRBdHRyaWJ1dGUoIm5hbWUiLCBkYktleSk7CiAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0ZXh0Lmxlbmd0aDsgaSsrKSB7CiAgICAgICAgICAgIHZhciBvcHRpb24gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJPUFRJT04iKTsKICAgICAgICAgICAgb3B0aW9uLnNldEF0dHJpYnV0ZSgidmFsdWUiLCB2YWx1ZXNbaV0pOwogICAgICAgICAgICBvcHRpb24uaW5uZXJUZXh0ID0gdGV4dFtpXTsKICAgICAgICAgICAgc2VsZWN0LmFwcGVuZENoaWxkKG9wdGlvbik7CiAgICAgICAgfQogICAgICAgIGlmIChzZXQgIT0gIiIpIHsKICAgICAgICAgICAgc2VsZWN0LnZhbHVlID0gc2V0OwogICAgICAgIH0KICAgICAgICBpZiAoc2V0ID09IHVuZGVmaW5lZCkgewogICAgICAgICAgICBzZWxlY3QudmFsdWUgPSB2YWx1ZXNbMF07CiAgICAgICAgfQogICAgICAgIHJldHVybiBzZWxlY3Q7CiAgICB9OwogICAgUG9wdXBDb250ZW50LnByb3RvdHlwZS5zZWxlY3RPcHRpb24gPSBmdW5jdGlvbiAoc2VsZWN0LCB2YWx1ZSkgewogICAgICAgIC8vc2VsZWN0LnNlbGVjdGVkT3B0aW9ucyA9IHZhbHVlCiAgICAgICAgdmFyIHMgPSBzZWxlY3Q7CiAgICAgICAgcy5vcHRpb25zW3Muc2VsZWN0ZWRJbmRleF0udmFsdWUgPSB2YWx1ZTsKICAgICAgICByZXR1cm4gc2VsZWN0OwogICAgfTsKICAgIFBvcHVwQ29udGVudC5wcm90b3R5cGUuZGVzY3JpcHRpb24gPSBmdW5jdGlvbiAodmFsdWUpIHsKICAgICAgICB2YXIgdHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJUUiIpOwogICAgICAgIHZhciB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7CiAgICAgICAgdmFyIHNwYW4gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJQUkUiKTsKICAgICAgICBzcGFuLmlubmVySFRNTCA9IHZhbHVlOwogICAgICAgIHRyLmFwcGVuZENoaWxkKHRkKTsKICAgICAgICB0ci5hcHBlbmRDaGlsZCh0aGlzLmNyZWF0ZUNvbnRlbnQoc3BhbikpOwogICAgICAgIHRoaXMudGFibGUuYXBwZW5kQ2hpbGQodHIpOwogICAgfTsKICAgIC8vIEludGVyYWt0aW9uCiAgICBQb3B1cENvbnRlbnQucHJvdG90eXBlLmFkZEludGVyYWN0aW9uID0gZnVuY3Rpb24gKGVsZW1lbnQpIHsKICAgICAgICB2YXIgaW50ZXJhY3Rpb24gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicG9wdXAtaW50ZXJhY3Rpb24iKTsKICAgICAgICBpbnRlcmFjdGlvbi5hcHBlbmRDaGlsZChlbGVtZW50KTsKICAgIH07CiAgICByZXR1cm4gUG9wdXBDb250ZW50Owp9KFBvcHVwV2luZG93KSk7CmZ1bmN0aW9uIG9wZW5Qb3BVcChkYXRhVHlwZSwgZWxlbWVudCkgewogICAgdmFyIGRhdGEgPSBuZXcgT2JqZWN0KCk7CiAgICB2YXIgaWQ7CiAgICBzd2l0Y2ggKGVsZW1lbnQpIHsKICAgICAgICBjYXNlIHVuZGVmaW5lZDoKICAgICAgICAgICAgc3dpdGNoIChkYXRhVHlwZSkgewogICAgICAgICAgICAgICAgY2FzZSAiZ3JvdXAtdGl0bGUiOgogICAgICAgICAgICAgICAgICAgIGlmIChpZCA9PSB1bmRlZmluZWQpIHsKICAgICAgICAgICAgICAgICAgICAgICAgaWQgPSAtMTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgZGF0YSA9IGdldExvY2FsRGF0YSgiZmlsdGVyIiwgaWQpOwogICAgICAgICAgICAgICAgICAgIGRhdGFbInR5cGUiXSA9ICJncm91cC10aXRsZSI7CiAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICBjYXNlICJjdXN0b20tZmlsdGVyIjoKICAgICAgICAgICAgICAgICAgICBpZiAoaWQgPT0gdW5kZWZpbmVkKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGlkID0gLTE7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIGRhdGEgPSBnZXRMb2NhbERhdGEoImZpbHRlciIsIGlkKTsKICAgICAgICAgICAgICAgICAgICBkYXRhWyJ0eXBlIl0gPSAiY3VzdG9tLWZpbHRlciI7CiAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAgICAgICAgIGRhdGFbImlkLnByb3ZpZGVyIl0gPSAiLSI7CiAgICAgICAgICAgICAgICAgICAgZGF0YVsidHlwZSJdID0gZGF0YVR5cGU7CiAgICAgICAgICAgICAgICAgICAgaWQgPSAiLSI7CiAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgaWQgPSBlbGVtZW50LmlkOwogICAgICAgICAgICBkYXRhID0gZ2V0TG9jYWxEYXRhKGRhdGFUeXBlLCBpZCk7CiAgICAgICAgICAgIGJyZWFrOwogICAgfQogICAgdmFyIGNvbnRlbnQgPSBuZXcgUG9wdXBDb250ZW50KCk7CiAgICBzd2l0Y2ggKGRhdGFUeXBlKSB7CiAgICAgICAgY2FzZSAicGxheWxpc3QiOgogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUhlYWRsaW5lKCJ7ey5wbGF5bGlzdC5wbGF5bGlzdFR5cGUudGl0bGV9fSIpOwogICAgICAgICAgICAvLyBUeXBlCiAgICAgICAgICAgIHZhciB0ZXh0ID0gWyJNM1UiLCAiSERIb21lUnVuIl07CiAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBbImphdmFzY3JpcHQ6IG9wZW5Qb3BVcCgnbTN1JykiLCAiamF2YXNjcmlwdDogb3BlblBvcFVwKCdoZGhyJykiXTsKICAgICAgICAgICAgdmFyIHNlbGVjdCA9IGNvbnRlbnQuY3JlYXRlU2VsZWN0KHRleHQsIHZhbHVlcywgIiIsICJ0eXBlIik7CiAgICAgICAgICAgIHNlbGVjdC5zZXRBdHRyaWJ1dGUoImlkIiwgInR5cGUiKTsKICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAnamF2YXNjcmlwdDogY2hhbmdlQnV0dG9uQWN0aW9uKHRoaXMsICJuZXh0IiwgIm9uY2xpY2siKScpOyAvLyBjaGFuZ2VCdXR0b25BY3Rpb24KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnBsYXlsaXN0LnR5cGUudGl0bGV9fSIsIHNlbGVjdCk7CiAgICAgICAgICAgIC8vIEludGVyYWt0aW9uCiAgICAgICAgICAgIGNvbnRlbnQuY3JlYXRlSW50ZXJhY3Rpb24oKTsKICAgICAgICAgICAgLy8gQWJicmVjaGVuCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJjYW5jZWwiLCAie3suYnV0dG9uLmNhbmNlbH19Iik7CiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBzaG93RWxlbWVudCgicG9wdXAiLCBmYWxzZSk7Jyk7CiAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOwogICAgICAgICAgICAvLyBXZWl0ZXIKICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgIm5leHQiLCAie3suYnV0dG9uLm5leHR9fSIpOwogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJtM3UiKScpOwogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoImlkIiwgJ25leHQnKTsKICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgIGNhc2UgIm0zdSI6CiAgICAgICAgICAgIGNvbnRlbnQuY3JlYXRlSGVhZGxpbmUoZGF0YVR5cGUpOwogICAgICAgICAgICAvLyBOYW1lCiAgICAgICAgICAgIHZhciBkYktleSA9ICJuYW1lIjsKICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7CiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3sucGxheWxpc3QubmFtZS5wbGFjZWhvbGRlcn19Iik7CiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5wbGF5bGlzdC5uYW1lLnRpdGxlfX0iLCBpbnB1dCk7CiAgICAgICAgICAgIC8vIEJlc2NocmVpYnVuZwogICAgICAgICAgICB2YXIgZGJLZXkgPSAiZGVzY3JpcHRpb24iOwogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsKICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5wbGF5bGlzdC5kZXNjcmlwdGlvbi5wbGFjZWhvbGRlcn19Iik7CiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5wbGF5bGlzdC5kZXNjcmlwdGlvbi50aXRsZX19IiwgaW5wdXQpOwogICAgICAgICAgICAvLyBVUkwKICAgICAgICAgICAgdmFyIGRiS2V5ID0gImZpbGUuc291cmNlIjsKICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7CiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3sucGxheWxpc3QuZmlsZU0zVS5wbGFjZWhvbGRlcn19Iik7CiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5wbGF5bGlzdC5maWxlTTNVLnRpdGxlfX0iLCBpbnB1dCk7CiAgICAgICAgICAgIC8vIFR1bmVyCiAgICAgICAgICAgIGlmIChTRVJWRVJbInNldHRpbmdzIl1bImJ1ZmZlciJdICE9ICItIikgewogICAgICAgICAgICAgICAgdmFyIHRleHQgPSBuZXcgQXJyYXkoKTsKICAgICAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBuZXcgQXJyYXkoKTsKICAgICAgICAgICAgICAgIGZvciAodmFyIGkgPSAxOyBpIDw9IDEwMDsgaSsrKSB7CiAgICAgICAgICAgICAgICAgICAgdGV4dC5wdXNoKGkudG9TdHJpbmcoKSk7CiAgICAgICAgICAgICAgICAgICAgdmFsdWVzLnB1c2goaS50b1N0cmluZygpKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIHZhciBkYktleSA9ICJ0dW5lciI7CiAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCBkYXRhW2RiS2V5XSwgZGJLZXkpOwogICAgICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25mb2N1cyIsICJqYXZhc2NyaXB0OiByZXR1cm47Iik7CiAgICAgICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sucGxheWxpc3QudHVuZXIudGl0bGV9fSIsIHNlbGVjdCk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICB2YXIgZGJLZXkgPSAidHVuZXIiOwogICAgICAgICAgICAgICAgaWYgKGRhdGFbZGJLZXldID09IHVuZGVmaW5lZCkgewogICAgICAgICAgICAgICAgICAgIGRhdGFbZGJLZXldID0gMTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOwogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJyZWFkb25seSIsICJ0cnVlIik7CiAgICAgICAgICAgICAgICBpbnB1dC5jbGFzc05hbWUgPSAibm90QXZhaWxhYmxlIjsKICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5wbGF5bGlzdC50dW5lci50aXRsZX19IiwgaW5wdXQpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGNvbnRlbnQuZGVzY3JpcHRpb24oInt7LnBsYXlsaXN0LnR1bmVyLmRlc2NyaXB0aW9ufX0iKTsKICAgICAgICAgICAgLy8gSW50ZXJha3Rpb24KICAgICAgICAgICAgY29udGVudC5jcmVhdGVJbnRlcmFjdGlvbigpOwogICAgICAgICAgICAvLyBMw7ZzY2hlbgogICAgICAgICAgICBpZiAoZGF0YVsiaWQucHJvdmlkZXIiXSAhPSAiLSIpIHsKICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJkZWxldGUiLCAie3suYnV0dG9uLmRlbGV0ZX19Iik7CiAgICAgICAgICAgICAgICBpbnB1dC5jbGFzc05hbWUgPSAiZGVsZXRlIjsKICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBzYXZlUG9wdXBEYXRhKCJtM3UiLCAiJyArIGlkICsgJyIsIHRydWUsIDApJyk7CiAgICAgICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsKICAgICAgICAgICAgfQogICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJiYWNrIiwgInt7LmJ1dHRvbi5iYWNrfX0iKTsKICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoInBsYXlsaXN0IiknKTsKICAgICAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIC8vIEFiYnJlY2hlbgogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAiY2FuY2VsIiwgInt7LmJ1dHRvbi5jYW5jZWx9fSIpOwogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogc2hvd0VsZW1lbnQoInBvcHVwIiwgZmFsc2UpOycpOwogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsKICAgICAgICAgICAgLy8gQWt0dWFsaXNpZXJlbgogICAgICAgICAgICBpZiAoZGF0YVsiaWQucHJvdmlkZXIiXSAhPSAiLSIpIHsKICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJ1cGRhdGUiLCAie3suYnV0dG9uLnVwZGF0ZX19Iik7CiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogc2F2ZVBvcHVwRGF0YSgibTN1IiwgIicgKyBpZCArICciLCBmYWxzZSwgMSknKTsKICAgICAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIC8vIFNwZWljaGVybgogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAic2F2ZSIsICJ7ey5idXR0b24uc2F2ZX19Iik7CiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBzYXZlUG9wdXBEYXRhKCJtM3UiLCAiJyArIGlkICsgJyIsIGZhbHNlLCAwKScpOwogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgY2FzZSAiaGRociI6CiAgICAgICAgICAgIGNvbnRlbnQuY3JlYXRlSGVhZGxpbmUoZGF0YVR5cGUpOwogICAgICAgICAgICAvLyBOYW1lCiAgICAgICAgICAgIHZhciBkYktleSA9ICJuYW1lIjsKICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7CiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3sucGxheWxpc3QubmFtZS5wbGFjZWhvbGRlcn19Iik7CiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5wbGF5bGlzdC5uYW1lLnRpdGxlfX0iLCBpbnB1dCk7CiAgICAgICAgICAgIC8vIEJlc2NocmVpYnVuZwogICAgICAgICAgICB2YXIgZGJLZXkgPSAiZGVzY3JpcHRpb24iOwogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsKICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5wbGF5bGlzdC5kZXNjcmlwdGlvbi5wbGFjZWhvbGRlcn19Iik7CiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5wbGF5bGlzdC5kZXNjcmlwdGlvbi5wbGFjZWhvbGRlcn19IiwgaW5wdXQpOwogICAgICAgICAgICAvLyBVUkwKICAgICAgICAgICAgdmFyIGRiS2V5ID0gImZpbGUuc291cmNlIjsKICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7CiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3sucGxheWxpc3QuZmlsZUhESFIucGxhY2Vob2xkZXJ9fSIpOwogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sucGxheWxpc3QuZmlsZUhESFIudGl0bGV9fSIsIGlucHV0KTsKICAgICAgICAgICAgLy8gVHVuZXIKICAgICAgICAgICAgaWYgKFNFUlZFUlsic2V0dGluZ3MiXVsiYnVmZmVyIl0gIT0gIi0iKSB7CiAgICAgICAgICAgICAgICB2YXIgdGV4dCA9IG5ldyBBcnJheSgpOwogICAgICAgICAgICAgICAgdmFyIHZhbHVlcyA9IG5ldyBBcnJheSgpOwogICAgICAgICAgICAgICAgZm9yICh2YXIgaSA9IDE7IGkgPD0gMTAwOyBpKyspIHsKICAgICAgICAgICAgICAgICAgICB0ZXh0LnB1c2goaS50b1N0cmluZygpKTsKICAgICAgICAgICAgICAgICAgICB2YWx1ZXMucHVzaChpLnRvU3RyaW5nKCkpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgdmFyIGRiS2V5ID0gInR1bmVyIjsKICAgICAgICAgICAgICAgIHZhciBzZWxlY3QgPSBjb250ZW50LmNyZWF0ZVNlbGVjdCh0ZXh0LCB2YWx1ZXMsIGRhdGFbZGJLZXldLCBkYktleSk7CiAgICAgICAgICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJvbmZvY3VzIiwgImphdmFzY3JpcHQ6IHJldHVybjsiKTsKICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5wbGF5bGlzdC50dW5lci50aXRsZX19Iiwgc2VsZWN0KTsKICAgICAgICAgICAgfQogICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgIHZhciBkYktleSA9ICJ0dW5lciI7CiAgICAgICAgICAgICAgICBpZiAoZGF0YVtkYktleV0gPT0gdW5kZWZpbmVkKSB7CiAgICAgICAgICAgICAgICAgICAgZGF0YVtkYktleV0gPSAxOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7CiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInJlYWRvbmx5IiwgInRydWUiKTsKICAgICAgICAgICAgICAgIGlucHV0LmNsYXNzTmFtZSA9ICJub3RBdmFpbGFibGUiOwogICAgICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnBsYXlsaXN0LnR1bmVyLnRpdGxlfX0iLCBpbnB1dCk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgY29udGVudC5kZXNjcmlwdGlvbigie3sucGxheWxpc3QudHVuZXIuZGVzY3JpcHRpb259fSIpOwogICAgICAgICAgICAvLyBJbnRlcmFrdGlvbgogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUludGVyYWN0aW9uKCk7CiAgICAgICAgICAgIC8vIEzDtnNjaGVuCiAgICAgICAgICAgIGlmIChkYXRhWyJpZC5wcm92aWRlciJdICE9ICItIikgewogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImRlbGV0ZSIsICJ7ey5idXR0b24uZGVsZXRlfX0iKTsKICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBzYXZlUG9wdXBEYXRhKCJoZGhyIiwgIicgKyBpZCArICciLCB0cnVlLCAwKScpOwogICAgICAgICAgICAgICAgaW5wdXQuY2xhc3NOYW1lID0gImRlbGV0ZSI7CiAgICAgICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsKICAgICAgICAgICAgfQogICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJiYWNrIiwgInt7LmJ1dHRvbi5iYWNrfX0iKTsKICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoInBsYXlsaXN0IiknKTsKICAgICAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIC8vIEFiYnJlY2hlbgogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAiY2FuY2VsIiwgInt7LmJ1dHRvbi5jYW5jZWx9fSIpOwogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogc2hvd0VsZW1lbnQoInBvcHVwIiwgZmFsc2UpOycpOwogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsKICAgICAgICAgICAgLy8gQWt0dWFsaXNpZXJlbgogICAgICAgICAgICBpZiAoZGF0YVsiaWQucHJvdmlkZXIiXSAhPSAiLSIpIHsKICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJ1cGRhdGUiLCAie3suYnV0dG9uLnVwZGF0ZX19Iik7CiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogc2F2ZVBvcHVwRGF0YSgiaGRociIsICInICsgaWQgKyAnIiwgZmFsc2UsIDEpJyk7CiAgICAgICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsKICAgICAgICAgICAgfQogICAgICAgICAgICAvLyBTcGVpY2hlcm4KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgInNhdmUiLCAie3suYnV0dG9uLnNhdmV9fSIpOwogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogc2F2ZVBvcHVwRGF0YSgiaGRociIsICInICsgaWQgKyAnIiwgZmFsc2UsIDApJyk7CiAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOwogICAgICAgICAgICBicmVhazsKICAgICAgICBjYXNlICJmaWx0ZXIiOgogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUhlYWRsaW5lKGRhdGFUeXBlKTsKICAgICAgICAgICAgLy8gVHlwZQogICAgICAgICAgICB2YXIgZGJLZXkgPSAidHlwZSI7CiAgICAgICAgICAgIHZhciB0ZXh0ID0gWyJNM1U6ICIgKyAie3suZmlsdGVyLnR5cGUuZ3JvdXBUaXRsZX19IiwgInhUZVZlOiAiICsgInt7LmZpbHRlci50eXBlLmN1c3RvbUZpbHRlcn19Il07CiAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBbImphdmFzY3JpcHQ6IG9wZW5Qb3BVcCgnZ3JvdXAtdGl0bGUnKSIsICJqYXZhc2NyaXB0OiBvcGVuUG9wVXAoJ2N1c3RvbS1maWx0ZXInKSJdOwogICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCAiamF2YXNjcmlwdDogb3BlblBvcFVwKCdncm91cC10aXRsZScpIiwgZGJLZXkpOwogICAgICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJpZCIsIGlkKTsKICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAnamF2YXNjcmlwdDogY2hhbmdlQnV0dG9uQWN0aW9uKHRoaXMsICJuZXh0IiwgIm9uY2xpY2siKTsnKTsgLy8gY2hhbmdlQnV0dG9uQWN0aW9uCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5maWx0ZXIudHlwZS50aXRsZX19Iiwgc2VsZWN0KTsKICAgICAgICAgICAgLy8gSW50ZXJha3Rpb24KICAgICAgICAgICAgY29udGVudC5jcmVhdGVJbnRlcmFjdGlvbigpOwogICAgICAgICAgICAvLyBBYmJyZWNoZW4KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImNhbmNlbCIsICJ7ey5idXR0b24uY2FuY2VsfX0iKTsKICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IHNob3dFbGVtZW50KCJwb3B1cCIsIGZhbHNlKTsnKTsKICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7CiAgICAgICAgICAgIC8vIFdlaXRlcgogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAibmV4dCIsICJ7ey5idXR0b24ubmV4dH19Iik7CiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoImdyb3VwLXRpdGxlIiknKTsKICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJpZCIsICduZXh0Jyk7CiAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOwogICAgICAgICAgICBicmVhazsKICAgICAgICBjYXNlICJjdXN0b20tZmlsdGVyIjoKICAgICAgICBjYXNlICJncm91cC10aXRsZSI6CiAgICAgICAgICAgIHN3aXRjaCAoZGF0YVR5cGUpIHsKICAgICAgICAgICAgICAgIGNhc2UgImN1c3RvbS1maWx0ZXIiOgogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuY3JlYXRlSGVhZGxpbmUoInt7LmZpbHRlci5jdXN0b219fSIpOwogICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgY2FzZSAiZ3JvdXAtdGl0bGUiOgogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuY3JlYXRlSGVhZGxpbmUoInt7LmZpbHRlci5ncm91cH19Iik7CiAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgLy8gTmFtZSAgICAgIAogICAgICAgICAgICB2YXIgZGJLZXkgPSAibmFtZSI7CiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOwogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LmZpbHRlci5uYW1lLnBsYWNlaG9sZGVyfX0iKTsKICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LmZpbHRlci5uYW1lLnRpdGxlfX0iLCBpbnB1dCk7CiAgICAgICAgICAgIC8vIEJlc2NocmVpYnVuZwogICAgICAgICAgICB2YXIgZGJLZXkgPSAiZGVzY3JpcHRpb24iOwogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsKICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5maWx0ZXIuZGVzY3JpcHRpb24ucGxhY2Vob2xkZXJ9fSIpOwogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3suZmlsdGVyLmRlc2NyaXB0aW9uLnRpdGxlfX0iLCBpbnB1dCk7CiAgICAgICAgICAgIC8vIFR5cAogICAgICAgICAgICB2YXIgZGJLZXkgPSAidHlwZSI7CiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImhpZGRlbiIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7CiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCIiLCBpbnB1dCk7CiAgICAgICAgICAgIHZhciBmaWx0ZXJUeXBlID0gZGF0YVtkYktleV07CiAgICAgICAgICAgIHN3aXRjaCAoZmlsdGVyVHlwZSkgewogICAgICAgICAgICAgICAgY2FzZSAiY3VzdG9tLWZpbHRlciI6CiAgICAgICAgICAgICAgICAgICAgLy8gR3Jvw58tIEtsZWluc2NocmVpYnVuZyBiZWFjaHRlbgogICAgICAgICAgICAgICAgICAgIHZhciBkYktleSA9ICJjYXNlU2Vuc2l0aXZlIjsKICAgICAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KGRiS2V5KTsKICAgICAgICAgICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YVtkYktleV07CiAgICAgICAgICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LmZpbHRlci5jYXNlU2Vuc2l0aXZlLnRpdGxlfX0iLCBpbnB1dCk7CiAgICAgICAgICAgICAgICAgICAgLy8gRmlsdGVycmVnZWwgKEJlbnV0emVyZGVmaW5pZXJ0KQogICAgICAgICAgICAgICAgICAgIHZhciBkYktleSA9ICJmaWx0ZXIiOwogICAgICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOwogICAgICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3suZmlsdGVyLmZpbHRlclJ1bGUucGxhY2Vob2xkZXJ9fSIpOwogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5maWx0ZXIuZmlsdGVyUnVsZS50aXRsZX19IiwgaW5wdXQpOwogICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgY2FzZSAiZ3JvdXAtdGl0bGUiOgogICAgICAgICAgICAgICAgICAgIC8vYWxlcnQoZGJLZXkgKyAiICIgKyBmaWx0ZXJUeXBlKQogICAgICAgICAgICAgICAgICAgIC8vIEZpbHRlciBiYXNpZXJlbmQgYXVmIGRlbiBHcnVwcGVuIGluIGRlciBNM1UKICAgICAgICAgICAgICAgICAgICB2YXIgZGJLZXkgPSAiZmlsdGVyIjsKICAgICAgICAgICAgICAgICAgICB2YXIgZ3JvdXBzTTNVID0gZ2V0TG9jYWxEYXRhKCJtM3VHcm91cHMiLCAiIik7CiAgICAgICAgICAgICAgICAgICAgdmFyIHRleHQgPSBncm91cHNNM1VbInRleHQiXTsKICAgICAgICAgICAgICAgICAgICB2YXIgdmFsdWVzID0gZ3JvdXBzTTNVWyJ2YWx1ZSJdOwogICAgICAgICAgICAgICAgICAgIHZhciBzZWxlY3QgPSBjb250ZW50LmNyZWF0ZVNlbGVjdCh0ZXh0LCB2YWx1ZXMsIGRhdGFbZGJLZXldLCBkYktleSk7CiAgICAgICAgICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsKICAgICAgICAgICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3suZmlsdGVyLmZpbHRlckdyb3VwLnRpdGxlfX0iLCBzZWxlY3QpOwogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuZGVzY3JpcHRpb24oInt7LmZpbHRlci5maWx0ZXJHcm91cC5kZXNjcmlwdGlvbn19Iik7CiAgICAgICAgICAgICAgICAgICAgLy8gR3Jvw58tIEtsZWluc2NocmVpYnVuZyBiZWFjaHRlbgogICAgICAgICAgICAgICAgICAgIHZhciBkYktleSA9ICJjYXNlU2Vuc2l0aXZlIjsKICAgICAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KGRiS2V5KTsKICAgICAgICAgICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YVtkYktleV07CiAgICAgICAgICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LmZpbHRlci5jYXNlU2Vuc2l0aXZlLnRpdGxlfX0iLCBpbnB1dCk7CiAgICAgICAgICAgICAgICAgICAgdmFyIGRiS2V5ID0gImluY2x1ZGUiOwogICAgICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOwogICAgICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3suZmlsdGVyLmluY2x1ZGUucGxhY2Vob2xkZXJ9fSIpOwogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5maWx0ZXIuaW5jbHVkZS50aXRsZX19IiwgaW5wdXQpOwogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuZGVzY3JpcHRpb24oInt7LmZpbHRlci5pbmNsdWRlLmRlc2NyaXB0aW9ufX0iKTsKICAgICAgICAgICAgICAgICAgICB2YXIgZGJLZXkgPSAiZXhjbHVkZSI7CiAgICAgICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7CiAgICAgICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5maWx0ZXIuZXhjbHVkZS5wbGFjZWhvbGRlcn19Iik7CiAgICAgICAgICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LmZpbHRlci5leGNsdWRlLnRpdGxlfX0iLCBpbnB1dCk7CiAgICAgICAgICAgICAgICAgICAgY29udGVudC5kZXNjcmlwdGlvbigie3suZmlsdGVyLmV4Y2x1ZGUuZGVzY3JpcHRpb259fSIpOwogICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgfQogICAgICAgICAgICAvLyBJbnRlcmFrdGlvbgogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUludGVyYWN0aW9uKCk7CiAgICAgICAgICAgIC8vIEzDtnNjaGVuCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJkZWxldGUiLCAie3suYnV0dG9uLmRlbGV0ZX19Iik7CiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBzYXZlUG9wdXBEYXRhKCJmaWx0ZXIiLCAiJyArIGlkICsgJyIsIHRydWUsIDApJyk7CiAgICAgICAgICAgIGlucHV0LmNsYXNzTmFtZSA9ICJkZWxldGUiOwogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsKICAgICAgICAgICAgLy8gQWJicmVjaGVuCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJjYW5jZWwiLCAie3suYnV0dG9uLmNhbmNlbH19Iik7CiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBzaG93RWxlbWVudCgicG9wdXAiLCBmYWxzZSk7Jyk7CiAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOwogICAgICAgICAgICAvLyBTcGVpY2hlcm4KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgInNhdmUiLCAie3suYnV0dG9uLnNhdmV9fSIpOwogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogc2F2ZVBvcHVwRGF0YSgiZmlsdGVyIiwgIicgKyBpZCArICciLCBmYWxzZSwgMCknKTsKICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgIGNhc2UgInhtbHR2IjoKICAgICAgICAgICAgY29udGVudC5jcmVhdGVIZWFkbGluZShkYXRhVHlwZSk7CiAgICAgICAgICAgIC8vIE5hbWUKICAgICAgICAgICAgdmFyIGRiS2V5ID0gIm5hbWUiOwogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsKICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey54bWx0di5uYW1lLnBsYWNlaG9sZGVyfX0iKTsKICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnhtbHR2Lm5hbWUudGl0bGV9fSIsIGlucHV0KTsKICAgICAgICAgICAgLy8gQmVzY2hyZWlidW5nCiAgICAgICAgICAgIHZhciBkYktleSA9ICJkZXNjcmlwdGlvbiI7CiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOwogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnhtbHR2LmRlc2NyaXB0aW9uLnBsYWNlaG9sZGVyfX0iKTsKICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnhtbHR2LmRlc2NyaXB0aW9uLnRpdGxlfX0iLCBpbnB1dCk7CiAgICAgICAgICAgIC8vIFVSTAogICAgICAgICAgICB2YXIgZGJLZXkgPSAiZmlsZS5zb3VyY2UiOwogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsKICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey54bWx0di5maWxlWE1MVFYucGxhY2Vob2xkZXJ9fSIpOwogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sueG1sdHYuZmlsZVhNTFRWLnRpdGxlfX0iLCBpbnB1dCk7CiAgICAgICAgICAgIC8vIEludGVyYWt0aW9uCiAgICAgICAgICAgIGNvbnRlbnQuY3JlYXRlSW50ZXJhY3Rpb24oKTsKICAgICAgICAgICAgLy8gTMO2c2NoZW4KICAgICAgICAgICAgaWYgKGRhdGFbImlkLnByb3ZpZGVyIl0gIT0gIi0iKSB7CiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAiZGVsZXRlIiwgInt7LmJ1dHRvbi5kZWxldGV9fSIpOwogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoInhtbHR2IiwgIicgKyBpZCArICciLCB0cnVlLCAwKScpOwogICAgICAgICAgICAgICAgaW5wdXQuY2xhc3NOYW1lID0gImRlbGV0ZSI7CiAgICAgICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsKICAgICAgICAgICAgfQogICAgICAgICAgICAvLyBBYmJyZWNoZW4KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImNhbmNlbCIsICJ7ey5idXR0b24uY2FuY2VsfX0iKTsKICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IHNob3dFbGVtZW50KCJwb3B1cCIsIGZhbHNlKTsnKTsKICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7CiAgICAgICAgICAgIC8vIEFrdHVhbGlzaWVyZW4KICAgICAgICAgICAgaWYgKGRhdGFbImlkLnByb3ZpZGVyIl0gIT0gIi0iKSB7CiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAidXBkYXRlIiwgInt7LmJ1dHRvbi51cGRhdGV9fSIpOwogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoInhtbHR2IiwgIicgKyBpZCArICciLCBmYWxzZSwgMSknKTsKICAgICAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIC8vIFNwZWljaGVybgogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAic2F2ZSIsICJ7ey5idXR0b24uc2F2ZX19Iik7CiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBzYXZlUG9wdXBEYXRhKCJ4bWx0diIsICInICsgaWQgKyAnIiwgZmFsc2UsIDApJyk7CiAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOwogICAgICAgICAgICBicmVhazsKICAgICAgICBjYXNlICJ1c2VycyI6CiAgICAgICAgICAgIGNvbnRlbnQuY3JlYXRlSGVhZGxpbmUoInt7Lm1haW5NZW51Lml0ZW0udXNlcnN9fSIpOwogICAgICAgICAgICAvLyBCZW51dHplcm5hbWUgCiAgICAgICAgICAgIHZhciBkYktleSA9ICJ1c2VybmFtZSI7CiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOwogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnVzZXJzLnVzZXJuYW1lLnBsYWNlaG9sZGVyfX0iKTsKICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnVzZXJzLnVzZXJuYW1lLnRpdGxlfX0iLCBpbnB1dCk7CiAgICAgICAgICAgIC8vIE5ldWVzIFBhc3N3b3J0IAogICAgICAgICAgICB2YXIgZGJLZXkgPSAicGFzc3dvcmQiOwogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJwYXNzd29yZCIsIGRiS2V5LCAiIik7CiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3sudXNlcnMucGFzc3dvcmQucGxhY2Vob2xkZXJ9fSIpOwogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sudXNlcnMucGFzc3dvcmQudGl0bGV9fSIsIGlucHV0KTsKICAgICAgICAgICAgLy8gQmVzdMOkdGlndW5nIAogICAgICAgICAgICB2YXIgZGJLZXkgPSAiY29uZmlybSI7CiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInBhc3N3b3JkIiwgZGJLZXksICIiKTsKICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey51c2Vycy5jb25maXJtLnBsYWNlaG9sZGVyfX0iKTsKICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnVzZXJzLmNvbmZpcm0udGl0bGV9fSIsIGlucHV0KTsKICAgICAgICAgICAgLy8gQmVyZWNodGlndW5nIFdFQgogICAgICAgICAgICB2YXIgZGJLZXkgPSAiYXV0aGVudGljYXRpb24ud2ViIjsKICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChkYktleSk7CiAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhW2RiS2V5XTsKICAgICAgICAgICAgaWYgKGRhdGFbImRlZmF1bHRVc2VyIl0gPT0gdHJ1ZSkgewogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgImphdmFzY3JpcHQ6IHJldHVybiBmYWxzZSIpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey51c2Vycy53ZWIudGl0bGV9fSIsIGlucHV0KTsKICAgICAgICAgICAgLy8gQmVyZWNodGlndW5nIFBNUwogICAgICAgICAgICB2YXIgZGJLZXkgPSAiYXV0aGVudGljYXRpb24ucG1zIjsKICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChkYktleSk7CiAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhW2RiS2V5XTsKICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnVzZXJzLnBtcy50aXRsZX19IiwgaW5wdXQpOwogICAgICAgICAgICAvLyBCZXJlY2h0aWd1bmcgTTNVCiAgICAgICAgICAgIHZhciBkYktleSA9ICJhdXRoZW50aWNhdGlvbi5tM3UiOwogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KGRiS2V5KTsKICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGFbZGJLZXldOwogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sudXNlcnMubTN1LnRpdGxlfX0iLCBpbnB1dCk7CiAgICAgICAgICAgIC8vIEJlcmVjaHRpZ3VuZyBYTUwKICAgICAgICAgICAgdmFyIGRiS2V5ID0gImF1dGhlbnRpY2F0aW9uLnhtbCI7CiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goZGJLZXkpOwogICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YVtkYktleV07CiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey51c2Vycy54bWwudGl0bGV9fSIsIGlucHV0KTsKICAgICAgICAgICAgLy8gQmVyZWNodGlndW5nIEFQSQogICAgICAgICAgICB2YXIgZGJLZXkgPSAiYXV0aGVudGljYXRpb24uYXBpIjsKICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChkYktleSk7CiAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhW2RiS2V5XTsKICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnVzZXJzLmFwaS50aXRsZX19IiwgaW5wdXQpOwogICAgICAgICAgICAvLyBJbnRlcmFrdGlvbgogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUludGVyYWN0aW9uKCk7CiAgICAgICAgICAgIC8vIEzDtnNjaGVuCiAgICAgICAgICAgIGlmIChkYXRhWyJkZWZhdWx0VXNlciJdICE9IHRydWUgJiYgaWQgIT0gIi0iKSB7CiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAiZGVsZXRlIiwgInt7LmJ1dHRvbi5kZWxldGV9fSIpOwogICAgICAgICAgICAgICAgaW5wdXQuY2xhc3NOYW1lID0gImRlbGV0ZSI7CiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogc2F2ZVBvcHVwRGF0YSgiJyArIGRhdGFUeXBlICsgJyIsICInICsgaWQgKyAnIiwgdHJ1ZSwgMCknKTsKICAgICAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIC8vIEFiYnJlY2hlbgogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAiY2FuY2VsIiwgInt7LmJ1dHRvbi5jYW5jZWx9fSIpOwogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogc2hvd0VsZW1lbnQoInBvcHVwIiwgZmFsc2UpOycpOwogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsKICAgICAgICAgICAgLy8gU3BlaWNoZXJuCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJzYXZlIiwgInt7LmJ1dHRvbi5zYXZlfX0iKTsKICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoIicgKyBkYXRhVHlwZSArICciLCAiJyArIGlkICsgJyIsICJmYWxzZSIpOycpOwogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgY2FzZSAibWFwcGluZyI6CiAgICAgICAgICAgIGNvbnRlbnQuY3JlYXRlSGVhZGxpbmUoInt7Lm1haW5NZW51Lml0ZW0ubWFwcGluZ319Iik7CiAgICAgICAgICAgIC8vIEFrdGl2IAogICAgICAgICAgICB2YXIgZGJLZXkgPSAieC1hY3RpdmUiOwogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KGRiS2V5KTsKICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGFbZGJLZXldOwogICAgICAgICAgICBpbnB1dC5pZCA9ICJhY3RpdmUiOwogICAgICAgICAgICAvL2lucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRvZ2dsZUNoYW5uZWxTdGF0dXMoJyIgKyBpZCArICInLCB0aGlzKSIpOwogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3subWFwcGluZy5hY3RpdmUudGl0bGV9fSIsIGlucHV0KTsKICAgICAgICAgICAgLy8gS2FuYWxuYW1lIAogICAgICAgICAgICB2YXIgZGJLZXkgPSAieC1uYW1lIjsKICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7CiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsKICAgICAgICAgICAgaWYgKEJVTEtfRURJVCA9PSB0cnVlKSB7CiAgICAgICAgICAgICAgICBpbnB1dC5zdHlsZS5ib3JkZXIgPSAic29saWQgMXB4IHJlZCI7CiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInJlYWRvbmx5IiwgInRydWUiKTsKICAgICAgICAgICAgfQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3subWFwcGluZy5jaGFubmVsTmFtZS50aXRsZX19IiwgaW5wdXQpOwogICAgICAgICAgICBjb250ZW50LmRlc2NyaXB0aW9uKGRhdGFbIm5hbWUiXSk7CiAgICAgICAgICAgIC8vIEJlc2NocmVpYnVuZyAKICAgICAgICAgICAgdmFyIGRiS2V5ID0gIngtZGVzY3JpcHRpb24iOwogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsKICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5tYXBwaW5nLmRlc2NyaXB0aW9uLnBsYWNlaG9sZGVyfX0iKTsKICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOwogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3subWFwcGluZy5kZXNjcmlwdGlvbi50aXRsZX19IiwgaW5wdXQpOwogICAgICAgICAgICAvLyBBa3R1YWxpc2llcnVuZyBkZXMgS2FuYWxuYW1lbnMKICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoIl91dWlkLmtleSIpKSB7CiAgICAgICAgICAgICAgICBpZiAoZGF0YVsiX3V1aWQua2V5Il0gIT0gIiIpIHsKICAgICAgICAgICAgICAgICAgICB2YXIgZGJLZXkgPSAieC11cGRhdGUtY2hhbm5lbC1uYW1lIjsKICAgICAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KGRiS2V5KTsKICAgICAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7CiAgICAgICAgICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGFbZGJLZXldOwogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5tYXBwaW5nLnVwZGF0ZUNoYW5uZWxOYW1lLnRpdGxlfX0iLCBpbnB1dCk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgICAgLy8gTG9nbyBVUkwgKEthbmFsKSAKICAgICAgICAgICAgdmFyIGRiS2V5ID0gInR2Zy1sb2dvIjsKICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7CiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsKICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJpZCIsICJjaGFubmVsLWljb24iKTsKICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7Lm1hcHBpbmcuY2hhbm5lbExvZ28udGl0bGV9fSIsIGlucHV0KTsKICAgICAgICAgICAgLy8gQWt0dWFsaXNpZXJ1bmcgZGVzIEthbmFsbG9nb3MKICAgICAgICAgICAgdmFyIGRiS2V5ID0gIngtdXBkYXRlLWNoYW5uZWwtaWNvbiI7CiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goZGJLZXkpOwogICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YVtkYktleV07CiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgiaWQiLCAidXBkYXRlLWljb24iKTsKICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJzsgY2hhbmdlQ2hhbm5lbExvZ28oJyIgKyBpZCArICInKTsiKTsKICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7Lm1hcHBpbmcudXBkYXRlQ2hhbm5lbExvZ28udGl0bGV9fSIsIGlucHV0KTsKICAgICAgICAgICAgLy8gRXJ3ZWl0ZXJuIGRlciBFUEcgS2F0ZWdvcmllCiAgICAgICAgICAgIHZhciBkYktleSA9ICJ4LWNhdGVnb3J5IjsKICAgICAgICAgICAgdmFyIHRleHQgPSBbIi0iLCAiS2lkcyAoRW1ieSBvbmx5KSIsICJOZXdzIiwgIk1vdmllIiwgIlNlcmllcyIsICJTcG9ydHMiXTsKICAgICAgICAgICAgdmFyIHZhbHVlcyA9IFsiIiwgIktpZHMiLCAiTmV3cyIsICJNb3ZpZSIsICJTZXJpZXMiLCAiU3BvcnRzIl07CiAgICAgICAgICAgIHZhciBzZWxlY3QgPSBjb250ZW50LmNyZWF0ZVNlbGVjdCh0ZXh0LCB2YWx1ZXMsIGRhdGFbZGJLZXldLCBkYktleSk7CiAgICAgICAgICAgIHNlbGVjdC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7CiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5tYXBwaW5nLmVwZ0NhdGVnb3J5LnRpdGxlfX0iLCBzZWxlY3QpOwogICAgICAgICAgICAvLyBNM1UgR3J1cHBlbnRpdGVsCiAgICAgICAgICAgIHZhciBkYktleSA9ICJ4LWdyb3VwLXRpdGxlIjsKICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7CiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsKICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7Lm1hcHBpbmcubTN1R3JvdXBUaXRsZS50aXRsZX19IiwgaW5wdXQpOwogICAgICAgICAgICBpZiAoZGF0YVsiZ3JvdXAtdGl0bGUiXSAhPSB1bmRlZmluZWQpIHsKICAgICAgICAgICAgICAgIGNvbnRlbnQuZGVzY3JpcHRpb24oZGF0YVsiZ3JvdXAtdGl0bGUiXSk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgLy8gWE1MVFYgRGF0ZWkKICAgICAgICAgICAgdmFyIGRiS2V5ID0gIngteG1sdHYtZmlsZSI7CiAgICAgICAgICAgIHZhciB4bWxGaWxlID0gZGF0YVtkYktleV07CiAgICAgICAgICAgIHZhciB4bWx0diA9IG5ldyBYTUxUVkZpbGUoKTsKICAgICAgICAgICAgdmFyIHNlbGVjdCA9IHhtbHR2LmdldEZpbGVzKGRhdGFbZGJLZXldKTsKICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgibmFtZSIsIGRiS2V5KTsKICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgiaWQiLCAicG9wdXAteG1sdHYiKTsKICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCc7IHNldFhtbHR2Q2hhbm5lbCgnIiArIGlkICsgIicsdGhpcyk7Iik7CiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5tYXBwaW5nLnhtbHR2RmlsZS50aXRsZX19Iiwgc2VsZWN0KTsKICAgICAgICAgICAgdmFyIGZpbGUgPSBkYXRhW2RiS2V5XTsKICAgICAgICAgICAgLy8gWE1MVFYgTWFwcGluZwogICAgICAgICAgICB2YXIgZGJLZXkgPSAieC1tYXBwaW5nIjsKICAgICAgICAgICAgdmFyIHhtbHR2ID0gbmV3IFhNTFRWRmlsZSgpOwogICAgICAgICAgICB2YXIgc2VsZWN0ID0geG1sdHYuZ2V0UHJvZ3JhbXMoZmlsZSwgZGF0YVtkYktleV0pOwogICAgICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJuYW1lIiwgZGJLZXkpOwogICAgICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJpZCIsICJwb3B1cC1tYXBwaW5nIik7CiAgICAgICAgICAgIHNlbGVjdC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnOyBjaGVja1htbHR2Q2hhbm5lbCgnIiArIGlkICsgIicsdGhpcywnIiArIHhtbEZpbGUgKyAiJyk7Iik7CiAgICAgICAgICAgIHNvcnRTZWxlY3Qoc2VsZWN0KTsKICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7Lm1hcHBpbmcueG1sdHZDaGFubmVsLnRpdGxlfX0iLCBzZWxlY3QpOwogICAgICAgICAgICAvLyBJbnRlcmFrdGlvbgogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUludGVyYWN0aW9uKCk7CiAgICAgICAgICAgIC8vIExvZ28gaG9jaGxhZGVuCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJjYW5jZWwiLCAie3suYnV0dG9uLnVwbG9hZExvZ299fSIpOwogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogdXBsb2FkTG9nbygpOycpOwogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsKICAgICAgICAgICAgLy8gQWJicmVjaGVuCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJjYW5jZWwiLCAie3suYnV0dG9uLmNhbmNlbH19Iik7CiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBzaG93RWxlbWVudCgicG9wdXAiLCBmYWxzZSk7Jyk7CiAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOwogICAgICAgICAgICAvLyBGZXJ0aWcKICAgICAgICAgICAgdmFyIGlkcyA9IG5ldyBBcnJheSgpOwogICAgICAgICAgICBpZHMgPSBnZXRBbGxTZWxlY3RlZENoYW5uZWxzKCk7CiAgICAgICAgICAgIGlmIChpZHMubGVuZ3RoID09IDApIHsKICAgICAgICAgICAgICAgIGlkcy5wdXNoKGlkKTsKICAgICAgICAgICAgfQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAic2F2ZSIsICJ7ey5idXR0b24uZG9uZX19Iik7CiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBkb25lUG9wdXBEYXRhKCInICsgZGF0YVR5cGUgKyAnIiwgIicgKyBpZHMgKyAnIiwgImZhbHNlIik7Jyk7CiAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOwogICAgICAgICAgICBicmVhazsKICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICBicmVhazsKICAgIH0KICAgIHNob3dQb3BVcEVsZW1lbnQoJ3BvcHVwLWN1c3RvbScpOwp9CnZhciBYTUxUVkZpbGUgPSAvKiogQGNsYXNzICovIChmdW5jdGlvbiAoKSB7CiAgICBmdW5jdGlvbiBYTUxUVkZpbGUoKSB7CiAgICB9CiAgICBYTUxUVkZpbGUucHJvdG90eXBlLmdldEZpbGVzID0gZnVuY3Rpb24gKHNldCkgewogICAgICAgIHZhciBmaWxlSURzID0gZ2V0T2JqS2V5cyhTRVJWRVJbInhlcGciXVsieG1sdHZNYXAiXSk7CiAgICAgICAgdmFyIHZhbHVlcyA9IG5ldyBBcnJheSgiLSIpOwogICAgICAgIHZhciB0ZXh0ID0gbmV3IEFycmF5KCItIik7CiAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBmaWxlSURzLmxlbmd0aDsgaSsrKSB7CiAgICAgICAgICAgIGlmIChmaWxlSURzW2ldICE9ICJ4VGVWZSBEdW1teSIpIHsKICAgICAgICAgICAgICAgIHZhbHVlcy5wdXNoKGdldFZhbHVlRnJvbVByb3ZpZGVyRmlsZShmaWxlSURzW2ldLCAieG1sdHYiLCAiZmlsZS54dGV2ZSIpKTsKICAgICAgICAgICAgICAgIHRleHQucHVzaChnZXRWYWx1ZUZyb21Qcm92aWRlckZpbGUoZmlsZUlEc1tpXSwgInhtbHR2IiwgIm5hbWUiKSk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICB2YWx1ZXMucHVzaChmaWxlSURzW2ldKTsKICAgICAgICAgICAgICAgIHRleHQucHVzaChmaWxlSURzW2ldKTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICB2YXIgc2VsZWN0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiU0VMRUNUIik7CiAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0ZXh0Lmxlbmd0aDsgaSsrKSB7CiAgICAgICAgICAgIHZhciBvcHRpb24gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJPUFRJT04iKTsKICAgICAgICAgICAgb3B0aW9uLnNldEF0dHJpYnV0ZSgidmFsdWUiLCB2YWx1ZXNbaV0pOwogICAgICAgICAgICBvcHRpb24uaW5uZXJUZXh0ID0gdGV4dFtpXTsKICAgICAgICAgICAgc2VsZWN0LmFwcGVuZENoaWxkKG9wdGlvbik7CiAgICAgICAgfQogICAgICAgIGlmIChzZXQgIT0gIiIpIHsKICAgICAgICAgICAgc2VsZWN0LnZhbHVlID0gc2V0OwogICAgICAgIH0KICAgICAgICByZXR1cm4gc2VsZWN0OwogICAgfTsKICAgIFhNTFRWRmlsZS5wcm90b3R5cGUuZ2V0UHJvZ3JhbXMgPSBmdW5jdGlvbiAoZmlsZSwgc2V0KSB7CiAgICAgICAgLy92YXIgZmlsZUlEczpzdHJpbmdbXSA9IGdldE9iaktleXMoU0VSVkVSWyJ4ZXBnIl1bInhtbHR2TWFwIl0pCiAgICAgICAgdmFyIHZhbHVlcyA9IGdldE9iaktleXMoU0VSVkVSWyJ4ZXBnIl1bInhtbHR2TWFwIl1bZmlsZV0pOwogICAgICAgIHZhciB0ZXh0ID0gbmV3IEFycmF5KCk7CiAgICAgICAgdmFyIGRpc3BsYXlOYW1lOwogICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdmFsdWVzLmxlbmd0aDsgaSsrKSB7CiAgICAgICAgICAgIGlmIChTRVJWRVJbInhlcGciXVsieG1sdHZNYXAiXVtmaWxlXVt2YWx1ZXNbaV1dLmhhc093blByb3BlcnR5KCdkaXNwbGF5LW5hbWUnKSA9PSB0cnVlKSB7CiAgICAgICAgICAgICAgICBkaXNwbGF5TmFtZSA9IFNFUlZFUlsieGVwZyJdWyJ4bWx0dk1hcCJdW2ZpbGVdW3ZhbHVlc1tpXV1bImRpc3BsYXktbmFtZSJdOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgZGlzcGxheU5hbWUgPSAiLSI7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgdGV4dFtpXSA9IGRpc3BsYXlOYW1lICsgIiAoIiArIHZhbHVlc1tpXSArICIpIjsKICAgICAgICB9CiAgICAgICAgdGV4dC51bnNoaWZ0KCItIik7CiAgICAgICAgdmFsdWVzLnVuc2hpZnQoIi0iKTsKICAgICAgICB2YXIgc2VsZWN0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiU0VMRUNUIik7CiAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0ZXh0Lmxlbmd0aDsgaSsrKSB7CiAgICAgICAgICAgIHZhciBvcHRpb24gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJPUFRJT04iKTsKICAgICAgICAgICAgb3B0aW9uLnNldEF0dHJpYnV0ZSgidmFsdWUiLCB2YWx1ZXNbaV0pOwogICAgICAgICAgICBvcHRpb24uaW5uZXJUZXh0ID0gdGV4dFtpXTsKICAgICAgICAgICAgc2VsZWN0LmFwcGVuZENoaWxkKG9wdGlvbik7CiAgICAgICAgfQogICAgICAgIGlmIChzZXQgIT0gIiIpIHsKICAgICAgICAgICAgc2VsZWN0LnZhbHVlID0gc2V0OwogICAgICAgIH0KICAgICAgICBpZiAoc2VsZWN0LnZhbHVlICE9IHNldCkgewogICAgICAgICAgICBzZWxlY3QudmFsdWUgPSAiLSI7CiAgICAgICAgfQogICAgICAgIHJldHVybiBzZWxlY3Q7CiAgICB9OwogICAgcmV0dXJuIFhNTFRWRmlsZTsKfSgpKTsKZnVuY3Rpb24gZ2V0VmFsdWVGcm9tUHJvdmlkZXJGaWxlKGZpbGUsIGZpbGVUeXBlLCBrZXkpIHsKICAgIGlmIChmaWxlID09ICJ4VGVWZSBEdW1teSIpIHsKICAgICAgICByZXR1cm4gZmlsZTsKICAgIH0KICAgIHZhciBmaWxlSUQ7CiAgICB2YXIgaW5kaWNhdG9yID0gZmlsZS5jaGFyQXQoMCk7CiAgICBzd2l0Y2ggKGluZGljYXRvcikgewogICAgICAgIGNhc2UgIk0iOgogICAgICAgICAgICBmaWxlVHlwZSA9ICJtM3UiOwogICAgICAgICAgICBmaWxlSUQgPSBmaWxlOwogICAgICAgICAgICBicmVhazsKICAgICAgICBjYXNlICJIIjoKICAgICAgICAgICAgZmlsZVR5cGUgPSAiaGRociI7CiAgICAgICAgICAgIGZpbGVJRCA9IGZpbGU7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgIGNhc2UgIlgiOgogICAgICAgICAgICBmaWxlVHlwZSA9ICJ4bWx0diI7CiAgICAgICAgICAgIGZpbGVJRCA9IGZpbGUuc3Vic3RyaW5nKDAsIGZpbGUubGFzdEluZGV4T2YoJy4nKSk7CiAgICAgICAgICAgIGJyZWFrOwogICAgfQogICAgaWYgKFNFUlZFUlsic2V0dGluZ3MiXVsiZmlsZXMiXVtmaWxlVHlwZV0uaGFzT3duUHJvcGVydHkoZmlsZUlEKSA9PSB0cnVlKSB7CiAgICAgICAgdmFyIGRhdGEgPSBTRVJWRVJbInNldHRpbmdzIl1bImZpbGVzIl1bZmlsZVR5cGVdW2ZpbGVJRF07CiAgICAgICAgcmV0dXJuIGRhdGFba2V5XTsKICAgIH0KICAgIHJldHVybjsKfQpmdW5jdGlvbiBzZXRYbWx0dkNoYW5uZWwoaWQsIGVsZW1lbnQpIHsKICAgIHZhciB4bWx0diA9IG5ldyBYTUxUVkZpbGUoKTsKICAgIHZhciB4bWxGaWxlID0gZWxlbWVudC52YWx1ZTsKICAgIHZhciB0dmdJZCA9IFNFUlZFUlsieGVwZyJdWyJlcGdNYXBwaW5nIl1baWRdWyJ0dmctaWQiXTsKICAgIHZhciB0ZCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJwb3B1cC1tYXBwaW5nIikucGFyZW50RWxlbWVudDsKICAgIHRkLmlubmVySFRNTCA9ICIiOwogICAgdmFyIHNlbGVjdCA9IHhtbHR2LmdldFByb2dyYW1zKGVsZW1lbnQudmFsdWUsIHR2Z0lkKTsKICAgIHNlbGVjdC5zZXRBdHRyaWJ1dGUoIm5hbWUiLCAieC1tYXBwaW5nIik7CiAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJpZCIsICJwb3B1cC1tYXBwaW5nIik7CiAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJzsgY2hlY2tYbWx0dkNoYW5uZWwoJyIgKyBpZCArICInLHRoaXMsJyIgKyB4bWxGaWxlICsgIicpOyIpOwogICAgc2VsZWN0LmNsYXNzTmFtZSA9ICJjaGFuZ2VkIjsKICAgIHNvcnRTZWxlY3Qoc2VsZWN0KTsKICAgIHRkLmFwcGVuZENoaWxkKHNlbGVjdCk7CiAgICBjaGVja1htbHR2Q2hhbm5lbChpZCwgc2VsZWN0LCB4bWxGaWxlKTsKfQpmdW5jdGlvbiBjaGVja1htbHR2Q2hhbm5lbChpZCwgZWxlbWVudCwgeG1sRmlsZSkgewogICAgdmFyIHZhbHVlID0gZWxlbWVudC52YWx1ZTsKICAgIHZhciBib29sOwogICAgdmFyIGNoZWNrYm94ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2FjdGl2ZScpOwogICAgdmFyIGNoYW5uZWwgPSBTRVJWRVJbInhlcGciXVsiZXBnTWFwcGluZyJdW2lkXTsKICAgIHZhciB1cGRhdGVMb2dvOwogICAgaWYgKHZhbHVlID09ICItIikgewogICAgICAgIGJvb2wgPSBmYWxzZTsKICAgIH0KICAgIGVsc2UgewogICAgICAgIGJvb2wgPSB0cnVlOwogICAgfQogICAgY2hlY2tib3guY2hlY2tlZCA9IGJvb2w7CiAgICBjaGVja2JveC5jbGFzc05hbWUgPSAiY2hhbmdlZCI7CiAgICBjb25zb2xlLmxvZyh4bWxGaWxlKTsKICAgIC8vIEthbmFsbG9nbyBha3R1YWxpc2llcmVuCiAgICAvKgogICAgdXBkYXRlTG9nbyA9IChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidXBkYXRlLWljb24iKSBhcyBIVE1MSW5wdXRFbGVtZW50KS5jaGVja2VkCiAgICBjb25zb2xlLmxvZyh1cGRhdGVMb2dvKTsKICAgICovCiAgICBpZiAoeG1sRmlsZSAhPSAieFRlVmUgRHVtbXkiICYmIGJvb2wgPT0gdHJ1ZSkgewogICAgICAgIC8vKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ1cGRhdGUtaWNvbiIpIGFzIEhUTUxJbnB1dEVsZW1lbnQpLmNoZWNrZWQgPSB0cnVlOwogICAgICAgIC8vKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ1cGRhdGUtaWNvbiIpIGFzIEhUTUxJbnB1dEVsZW1lbnQpLmNsYXNzTmFtZSA9ICJjaGFuZ2VkIjsKICAgICAgICBjb25zb2xlLmxvZygiSUQiLCBpZCk7CiAgICAgICAgY2hhbmdlQ2hhbm5lbExvZ28oaWQpOwogICAgICAgIHJldHVybjsKICAgIH0KICAgIGlmICh4bWxGaWxlID09ICJ4VGVWZSBEdW1teSIpIHsKICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidXBkYXRlLWljb24iKS5jaGVja2VkID0gZmFsc2U7CiAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInVwZGF0ZS1pY29uIikuY2xhc3NOYW1lID0gImNoYW5nZWQiOwogICAgfQogICAgcmV0dXJuOwp9CmZ1bmN0aW9uIGNoYW5nZUNoYW5uZWxMb2dvKGlkKSB7CiAgICB2YXIgdXBkYXRlTG9nbzsKICAgIHZhciBjaGFubmVsID0gU0VSVkVSWyJ4ZXBnIl1bImVwZ01hcHBpbmciXVtpZF07CiAgICB2YXIgZiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJwb3B1cC14bWx0diIpOwogICAgdmFyIHhtbHR2RmlsZSA9IGYub3B0aW9uc1tmLnNlbGVjdGVkSW5kZXhdLnZhbHVlOwogICAgdmFyIG0gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicG9wdXAtbWFwcGluZyIpOwogICAgdmFyIHhNYXBwaW5nID0gbS5vcHRpb25zW20uc2VsZWN0ZWRJbmRleF0udmFsdWU7CiAgICB2YXIgeG1sdHZMb2dvID0gU0VSVkVSWyJ4ZXBnIl1bInhtbHR2TWFwIl1beG1sdHZGaWxlXVt4TWFwcGluZ11bImljb24iXTsKICAgIHVwZGF0ZUxvZ28gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidXBkYXRlLWljb24iKS5jaGVja2VkOwogICAgaWYgKHVwZGF0ZUxvZ28gPT0gdHJ1ZSAmJiB4bWx0dkZpbGUgIT0gInhUZVZlIER1bW15IikgewogICAgICAgIGlmIChTRVJWRVJbInhlcGciXVsieG1sdHZNYXAiXVt4bWx0dkZpbGVdLmhhc093blByb3BlcnR5KHhNYXBwaW5nKSkgewogICAgICAgICAgICB2YXIgbG9nbyA9IHhtbHR2TG9nbzsKICAgICAgICB9CiAgICAgICAgZWxzZSB7CiAgICAgICAgICAgIGxvZ28gPSBjaGFubmVsWyJ0dmctbG9nbyJdOwogICAgICAgIH0KICAgICAgICB2YXIgbG9nb0lucHV0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNoYW5uZWwtaWNvbiIpOwogICAgICAgIGxvZ29JbnB1dC52YWx1ZSA9IGxvZ287CiAgICAgICAgaWYgKEJVTEtfRURJVCA9PSBmYWxzZSkgewogICAgICAgICAgICBsb2dvSW5wdXQuY2xhc3NOYW1lID0gImNoYW5nZWQiOwogICAgICAgIH0KICAgIH0KfQpmdW5jdGlvbiBzYXZlUG9wdXBEYXRhKGRhdGFUeXBlLCBpZCwgcmVtb3ZlLCBvcHRpb24pIHsKICAgIGlmIChkYXRhVHlwZSA9PSAibWFwcGluZyIpIHsKICAgICAgICB2YXIgZGF0YSA9IG5ldyBPYmplY3QoKTsKICAgICAgICBjb25zb2xlLmxvZygiU2F2ZSBtYXBwaW5nIGRhdGEiKTsKICAgICAgICBjbWQgPSAic2F2ZUVwZ01hcHBpbmciOwogICAgICAgIGRhdGFbImVwZ01hcHBpbmciXSA9IFNFUlZFUlsieGVwZyJdWyJlcGdNYXBwaW5nIl07CiAgICAgICAgY29uc29sZS5sb2coIlNFTkQgVE8gU0VSVkVSIik7CiAgICAgICAgdmFyIHNlcnZlciA9IG5ldyBTZXJ2ZXIoY21kKTsKICAgICAgICBzZXJ2ZXIucmVxdWVzdChkYXRhKTsKICAgICAgICBkZWxldGUgVU5ET1siZXBnTWFwcGluZyJdOwogICAgICAgIHJldHVybjsKICAgIH0KICAgIGNvbnNvbGUubG9nKCJTYXZlIHBvcHVwIGRhdGEiKTsKICAgIHZhciBkaXYgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicG9wdXAtY3VzdG9tIik7CiAgICB2YXIgaW5wdXRzID0gZGl2LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJUQUJMRSIpWzBdLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJJTlBVVCIpOwogICAgdmFyIHNlbGVjdHMgPSBkaXYuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlRBQkxFIilbMF0uZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlNFTEVDVCIpOwogICAgdmFyIGlucHV0ID0gbmV3IE9iamVjdCgpOwogICAgdmFyIGNvbmZpcm1Nc2c7CiAgICBmb3IgKHZhciBpID0gMDsgaSA8IHNlbGVjdHMubGVuZ3RoOyBpKyspIHsKICAgICAgICB2YXIgbmFtZTsKICAgICAgICBuYW1lID0gc2VsZWN0c1tpXS5uYW1lOwogICAgICAgIHZhciB2YWx1ZSA9IHNlbGVjdHNbaV0udmFsdWU7CiAgICAgICAgc3dpdGNoIChuYW1lKSB7CiAgICAgICAgICAgIGNhc2UgInR1bmVyIjoKICAgICAgICAgICAgICAgIGlucHV0W25hbWVdID0gcGFyc2VJbnQodmFsdWUpOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICAgICBpbnB1dFtuYW1lXSA9IHZhbHVlOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgfQogICAgfQogICAgZm9yICh2YXIgaSA9IDA7IGkgPCBpbnB1dHMubGVuZ3RoOyBpKyspIHsKICAgICAgICBzd2l0Y2ggKGlucHV0c1tpXS50eXBlKSB7CiAgICAgICAgICAgIGNhc2UgImNoZWNrYm94IjoKICAgICAgICAgICAgICAgIG5hbWUgPSBpbnB1dHNbaV0ubmFtZTsKICAgICAgICAgICAgICAgIGlucHV0W25hbWVdID0gaW5wdXRzW2ldLmNoZWNrZWQ7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAidGV4dCI6CiAgICAgICAgICAgIGNhc2UgImhpZGRlbiI6CiAgICAgICAgICAgIGNhc2UgInBhc3N3b3JkIjoKICAgICAgICAgICAgICAgIG5hbWUgPSBpbnB1dHNbaV0ubmFtZTsKICAgICAgICAgICAgICAgIHN3aXRjaCAobmFtZSkgewogICAgICAgICAgICAgICAgICAgIGNhc2UgInR1bmVyIjoKICAgICAgICAgICAgICAgICAgICAgICAgaW5wdXRbbmFtZV0gPSBwYXJzZUludChpbnB1dHNbaV0udmFsdWUpOwogICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAgICAgICAgICAgICBpbnB1dFtuYW1lXSA9IGlucHV0c1tpXS52YWx1ZTsKICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICB9CiAgICB9CiAgICB2YXIgZGF0YSA9IG5ldyBPYmplY3QoKTsKICAgIHZhciBjbWQ7CiAgICBpZiAocmVtb3ZlID09IHRydWUpIHsKICAgICAgICBpbnB1dFsiZGVsZXRlIl0gPSB0cnVlOwogICAgfQogICAgc3dpdGNoIChkYXRhVHlwZSkgewogICAgICAgIGNhc2UgInVzZXJzIjoKICAgICAgICAgICAgY29uZmlybU1zZyA9ICJEZWxldGUgdGhpcyB1c2VyPyI7CiAgICAgICAgICAgIGlmIChpZCA9PSAiLSIpIHsKICAgICAgICAgICAgICAgIGNtZCA9ICJzYXZlTmV3VXNlciI7CiAgICAgICAgICAgICAgICBkYXRhWyJ1c2VyRGF0YSJdID0gaW5wdXQ7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICBjbWQgPSAic2F2ZVVzZXJEYXRhIjsKICAgICAgICAgICAgICAgIHZhciBkID0gbmV3IE9iamVjdCgpOwogICAgICAgICAgICAgICAgZFtpZF0gPSBpbnB1dDsKICAgICAgICAgICAgICAgIGRhdGFbInVzZXJEYXRhIl0gPSBkOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgIGNhc2UgIm0zdSI6CiAgICAgICAgICAgIGNvbmZpcm1Nc2cgPSAiRGVsZXRlIHRoaXMgcGxheWxpc3Q/IjsKICAgICAgICAgICAgc3dpdGNoIChvcHRpb24pIHsKICAgICAgICAgICAgICAgIC8vIFBvcHVwOiBTYXZlCiAgICAgICAgICAgICAgICBjYXNlIDA6CiAgICAgICAgICAgICAgICAgICAgY21kID0gInNhdmVGaWxlc00zVSI7CiAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAvLyBQb3B1cDogVXBkYXRlCiAgICAgICAgICAgICAgICBjYXNlIDE6CiAgICAgICAgICAgICAgICAgICAgY21kID0gInVwZGF0ZUZpbGVNM1UiOwogICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGRhdGFbImZpbGVzIl0gPSBuZXcgT2JqZWN0OwogICAgICAgICAgICBkYXRhWyJmaWxlcyJdW2RhdGFUeXBlXSA9IG5ldyBPYmplY3Q7CiAgICAgICAgICAgIGRhdGFbImZpbGVzIl1bZGF0YVR5cGVdW2lkXSA9IGlucHV0OwogICAgICAgICAgICBicmVhazsKICAgICAgICBjYXNlICJoZGhyIjoKICAgICAgICAgICAgY29uZmlybU1zZyA9ICJEZWxldGUgdGhpcyBIREhvbWVSdW4gdHVuZXI/IjsKICAgICAgICAgICAgc3dpdGNoIChvcHRpb24pIHsKICAgICAgICAgICAgICAgIC8vIFBvcHVwOiBTYXZlCiAgICAgICAgICAgICAgICBjYXNlIDA6CiAgICAgICAgICAgICAgICAgICAgY21kID0gInNhdmVGaWxlc0hESFIiOwogICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgLy8gUG9wdXA6IFVwZGF0ZQogICAgICAgICAgICAgICAgY2FzZSAxOgogICAgICAgICAgICAgICAgICAgIGNtZCA9ICJ1cGRhdGVGaWxlSERIUiI7CiAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZGF0YVsiZmlsZXMiXSA9IG5ldyBPYmplY3Q7CiAgICAgICAgICAgIGRhdGFbImZpbGVzIl1bZGF0YVR5cGVdID0gbmV3IE9iamVjdDsKICAgICAgICAgICAgZGF0YVsiZmlsZXMiXVtkYXRhVHlwZV1baWRdID0gaW5wdXQ7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgIGNhc2UgInhtbHR2IjoKICAgICAgICAgICAgY29uZmlybU1zZyA9ICJEZWxldGUgdGhpcyBYTUxUViBmaWxlPyI7CiAgICAgICAgICAgIHN3aXRjaCAob3B0aW9uKSB7CiAgICAgICAgICAgICAgICAvLyBQb3B1cDogU2F2ZQogICAgICAgICAgICAgICAgY2FzZSAwOgogICAgICAgICAgICAgICAgICAgIGNtZCA9ICJzYXZlRmlsZXNYTUxUViI7CiAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAvLyBQb3B1cDogVXBkYXRlCiAgICAgICAgICAgICAgICBjYXNlIDE6CiAgICAgICAgICAgICAgICAgICAgY21kID0gInVwZGF0ZUZpbGVYTUxUViI7CiAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZGF0YVsiZmlsZXMiXSA9IG5ldyBPYmplY3Q7CiAgICAgICAgICAgIGRhdGFbImZpbGVzIl1bZGF0YVR5cGVdID0gbmV3IE9iamVjdDsKICAgICAgICAgICAgZGF0YVsiZmlsZXMiXVtkYXRhVHlwZV1baWRdID0gaW5wdXQ7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgIGNhc2UgImZpbHRlciI6CiAgICAgICAgICAgIGNvbmZpcm1Nc2cgPSAiRGVsZXRlIHRoaXMgZmlsdGVyPyI7CiAgICAgICAgICAgIGNtZCA9ICJzYXZlRmlsdGVyIjsKICAgICAgICAgICAgZGF0YVsiZmlsdGVyIl0gPSBuZXcgT2JqZWN0OwogICAgICAgICAgICBkYXRhWyJmaWx0ZXIiXVtpZF0gPSBpbnB1dDsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgY29uc29sZS5sb2coZGF0YVR5cGUsIGlkKTsKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICBicmVhazsKICAgIH0KICAgIGlmIChyZW1vdmUgPT0gdHJ1ZSkgewogICAgICAgIGlmICghY29uZmlybShjb25maXJtTXNnKSkgewogICAgICAgICAgICBzaG93RWxlbWVudCgicG9wdXAiLCBmYWxzZSk7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICB9CiAgICBjb25zb2xlLmxvZygiU0VORCBUTyBTRVJWRVIiKTsKICAgIGNvbnNvbGUubG9nKGRhdGEpOwogICAgdmFyIHNlcnZlciA9IG5ldyBTZXJ2ZXIoY21kKTsKICAgIHNlcnZlci5yZXF1ZXN0KGRhdGEpOwp9CmZ1bmN0aW9uIGRvbmVQb3B1cERhdGEoZGF0YVR5cGUsIGlkc1N0cikgewogICAgdmFyIGlkcyA9IGlkc1N0ci5zcGxpdCgnLCcpOwogICAgdmFyIGRpdiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJwb3B1cC1jdXN0b20iKTsKICAgIHZhciBpbnB1dHMgPSBkaXYuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSgiY2hhbmdlZCIpOwogICAgaWRzLmZvckVhY2goZnVuY3Rpb24gKGlkKSB7CiAgICAgICAgdmFyIGlucHV0ID0gbmV3IE9iamVjdCgpOwogICAgICAgIGlucHV0ID0gU0VSVkVSWyJ4ZXBnIl1bImVwZ01hcHBpbmciXVtpZF07CiAgICAgICAgY29uc29sZS5sb2coaW5wdXQpOwogICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgaW5wdXRzLmxlbmd0aDsgaSsrKSB7CiAgICAgICAgICAgIHZhciBuYW1lOwogICAgICAgICAgICB2YXIgdmFsdWU7CiAgICAgICAgICAgIHN3aXRjaCAoaW5wdXRzW2ldLnRhZ05hbWUpIHsKICAgICAgICAgICAgICAgIGNhc2UgIklOUFVUIjoKICAgICAgICAgICAgICAgICAgICBzd2l0Y2ggKGlucHV0c1tpXS50eXBlKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgImNoZWNrYm94IjoKICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWUgPSBpbnB1dHNbaV0ubmFtZTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlID0gaW5wdXRzW2ldLmNoZWNrZWQ7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnB1dFtuYW1lXSA9IHZhbHVlOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgInRleHQiOgogICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZSA9IGlucHV0c1tpXS5uYW1lOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSBpbnB1dHNbaV0udmFsdWU7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnB1dFtuYW1lXSA9IHZhbHVlOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgY2FzZSAiU0VMRUNUIjoKICAgICAgICAgICAgICAgICAgICBuYW1lID0gaW5wdXRzW2ldLm5hbWU7CiAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSBpbnB1dHNbaV0udmFsdWU7CiAgICAgICAgICAgICAgICAgICAgaW5wdXRbbmFtZV0gPSB2YWx1ZTsKICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgfQogICAgICAgICAgICBzd2l0Y2ggKG5hbWUpIHsKICAgICAgICAgICAgICAgIGNhc2UgInR2Zy1sb2dvIjoKICAgICAgICAgICAgICAgICAgICAvLyhkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkuY2hpbGROb2Rlc1syXS5maXJzdENoaWxkIGFzIEhUTUxFbGVtZW50KS5zZXRBdHRyaWJ1dGUoInNyYyIsIHZhbHVlKQogICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgY2FzZSAieC1uYW1lIjoKICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkuY2hpbGROb2Rlc1szXS5maXJzdENoaWxkLmlubmVySFRNTCA9IHZhbHVlOwogICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgY2FzZSAieC1jYXRlZ29yeSI6CiAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpLmNoaWxkTm9kZXNbM10uZmlyc3RDaGlsZC5jbGFzc05hbWUgPSB2YWx1ZTsKICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgIGNhc2UgIngtZ3JvdXAtdGl0bGUiOgogICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5jaGlsZE5vZGVzWzVdLmZpcnN0Q2hpbGQuaW5uZXJIVE1MID0gdmFsdWU7CiAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICBjYXNlICJ4LXhtbHR2LWZpbGUiOgogICAgICAgICAgICAgICAgICAgIGlmICh2YWx1ZSAhPSAieFRlVmUgRHVtbXkiICYmIHZhbHVlICE9ICItIikgewogICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IGdldFZhbHVlRnJvbVByb3ZpZGVyRmlsZSh2YWx1ZSwgInhtbHR2IiwgIm5hbWUiKTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgaWYgKHZhbHVlID09ICItIikgewogICAgICAgICAgICAgICAgICAgICAgICBpbnB1dFsieC1hY3RpdmUiXSA9IGZhbHNlOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkuY2hpbGROb2Rlc1s2XS5maXJzdENoaWxkLmlubmVySFRNTCA9IHZhbHVlOwogICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgY2FzZSAieC1tYXBwaW5nIjoKICAgICAgICAgICAgICAgICAgICBpZiAodmFsdWUgPT0gIi0iKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGlucHV0WyJ4LWFjdGl2ZSJdID0gZmFsc2U7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5jaGlsZE5vZGVzWzddLmZpcnN0Q2hpbGQuaW5uZXJIVE1MID0gdmFsdWU7CiAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICB9CiAgICAgICAgICAgIGNyZWF0ZVNlYXJjaE9iaigpOwogICAgICAgICAgICBzZWFyY2hJbk1hcHBpbmcoKTsKICAgICAgICB9CiAgICAgICAgaWYgKGlucHV0WyJ4LWFjdGl2ZSJdID09IGZhbHNlKSB7CiAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5jbGFzc05hbWUgPSAibm90QWN0aXZlRVBHIjsKICAgICAgICB9CiAgICAgICAgZWxzZSB7CiAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5jbGFzc05hbWUgPSAiYWN0aXZlRVBHIjsKICAgICAgICB9CiAgICAgICAgY29uc29sZS5sb2coaW5wdXRbInR2Zy1sb2dvIl0pOwogICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5jaGlsZE5vZGVzWzJdLmZpcnN0Q2hpbGQuc2V0QXR0cmlidXRlKCJzcmMiLCBpbnB1dFsidHZnLWxvZ28iXSk7CiAgICB9KTsKICAgIHNob3dFbGVtZW50KCJwb3B1cCIsIGZhbHNlKTsKICAgIHJldHVybjsKfQpmdW5jdGlvbiBzaG93UHJldmlldyhlbGVtZW50KSB7CiAgICB2YXIgZGl2ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm15U3RyZWFtc0JveCIpOwogICAgc3dpdGNoIChlbGVtZW50KSB7CiAgICAgICAgY2FzZSBmYWxzZToKICAgICAgICAgICAgZGl2LmNsYXNzTmFtZSA9ICJub3RWaXNpYmxlIjsKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICBicmVhazsKICAgIH0KICAgIHZhciBzdHJlYW1zID0gWyJhY3RpdmVTdHJlYW1zIiwgImluYWN0aXZlU3RyZWFtcyJdOwogICAgc3RyZWFtcy5mb3JFYWNoKGZ1bmN0aW9uIChwcmV2aWV3KSB7CiAgICAgICAgdmFyIHRhYmxlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQocHJldmlldyk7CiAgICAgICAgdGFibGUuaW5uZXJIVE1MID0gIiI7CiAgICAgICAgdmFyIG9iaiA9IFNFUlZFUlsiZGF0YSJdWyJTdHJlYW1QcmV2aWV3VUkiXVtwcmV2aWV3XTsKICAgICAgICBvYmouZm9yRWFjaChmdW5jdGlvbiAoY2hhbm5lbCkgewogICAgICAgICAgICB2YXIgdHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJUUiIpOwogICAgICAgICAgICB2YXIgdGRLZXkgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOwogICAgICAgICAgICB2YXIgdGRWYWwgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOwogICAgICAgICAgICB0ZEtleS5jbGFzc05hbWUgPSAidGRLZXkiOwogICAgICAgICAgICB0ZFZhbC5jbGFzc05hbWUgPSAidGRWYWwiOwogICAgICAgICAgICBzd2l0Y2ggKHByZXZpZXcpIHsKICAgICAgICAgICAgICAgIGNhc2UgImFjdGl2ZVN0cmVhbXMiOgogICAgICAgICAgICAgICAgICAgIHRkS2V5LmlubmVyVGV4dCA9ICJDaGFubmVsOiAoKykiOwogICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgY2FzZSAiaW5hY3RpdmVTdHJlYW1zIjoKICAgICAgICAgICAgICAgICAgICB0ZEtleS5pbm5lclRleHQgPSAiQ2hhbm5lbDogKC0pIjsKICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgfQogICAgICAgICAgICB0ZFZhbC5pbm5lclRleHQgPSBjaGFubmVsOwogICAgICAgICAgICB0ci5hcHBlbmRDaGlsZCh0ZEtleSk7CiAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKHRkVmFsKTsKICAgICAgICAgICAgdGFibGUuYXBwZW5kQ2hpbGQodHIpOwogICAgICAgIH0pOwogICAgfSk7CiAgICBzaG93RWxlbWVudCgibG9hZGluZyIsIGZhbHNlKTsKICAgIGRpdi5jbGFzc05hbWUgPSAidmlzaWJsZSI7CiAgICByZXR1cm47Cn0K" - webUI["html/css/screen.css"] = "bmF2IGltZyB7CiAgZGlzcGxheTogYmxvY2s7CiAgbWF4LWhlaWdodDogMjBweDsKICBtYXgtd2lkdGg6IDIwcHg7CiAgZmxvYXQ6IGxlZnQ7Cn0KCm5hdiBwIHsKICB0ZXh0LWFsaWduOiBsZWZ0OwogIHBhZGRpbmc6IDBweCAzMHB4Owp9CgojbGF5b3V0IHsKICBkaXNwbGF5OiBibG9jazsKICBoZWlnaHQ6IDEwMCU7Cn0KCgoubGF5b3V0LWxlZnQgewogIGRpc3BsYXk6IGJsb2NrOwogIG1pbi13aWR0aDogMTUwcHg7CiAgbWF4LXdpZHRoOiAyMCU7CiAgYmFja2dyb3VuZC1jb2xvcjogIzExMTsKICBoZWlnaHQ6IGluaGVyaXQ7CiAgZmxvYXQ6IGxlZnQ7Cn0KCi5sYXlvdXQtcmlnaHQgewogIGRpc3BsYXk6IGJsb2NrOwogIGJhY2tncm91bmQtY29sb3I6ICM0NDQ7Cn0KCiNtZW51LXdyYXBwZXIgewogIGhlaWdodDogMTAwJTsKfQoKCiNsb2dvIHsKICBkaXNwbGF5OiBibG9jazsKICBtaW4td2lkdGg6IDE4MHB4OwogIHdpZHRoOiAxMDAlOwogIGhlaWdodDogMTAwcHg7CiAgYmFja2dyb3VuZDogdXJsKCIuLi9pbWcvbG9nb193XzYwMHgyMDAucG5nIik7CiAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDsKICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7IAogIGJhY2tncm91bmQtc2l6ZTogMTAwJTsKfQoKCiNwYWdlIHsKICBtYXgtd2lkdGg6IDk1MHB4OwogIG1hcmdpbjogYXV0bzsKICBiYWNrZ3JvdW5kLWNvbG9yOiAjNDQ0OwoKICAvKgogIGhlaWdodDogLXdlYmtpdC1jYWxjKDEwMCUgLSAxMzBweCk7CiAgaGVpZ2h0OiAtbW96LWNhbGMoMTAwJSAtIDEzMHB4KTsKICBoZWlnaHQ6IGNhbGMoMTAwJSAtIDEzMHB4KTsKICAqLwogIAogIG1pbi1oZWlnaHQ6IC13ZWJraXQtY2FsYygxMDAlIC0gMTIwcHgpOwogIG1pbi1oZWlnaHQ6IC1tb3otY2FsYygxMDAlIC0gMTIwcHgpOwogIG1pbi1oZWlnaHQ6IGNhbGMoMTAwJSAtIDEyMHB4KTsKICAKICAKICBib3gtc2hhZG93OiAwcHggNXB4IDVweCAjMjIyOwogIAp9CgojdWlTZXR0aW5nIHsKICBmbG9hdDogcmlnaHQ7CiAgbWFyZ2luLXJpZ2h0OiAyNXB4Owp9CgojYm94IGlucHV0W3R5cGU9dGV4dF0sICNib3ggaW5wdXRbdHlwZT1wYXNzd29yZF0gewogIHdpZHRoOiAtd2Via2l0LWNhbGMoMTAwJSAtIDIwcHgpOwogIHdpZHRoOiAtbW96LWNhbGMoMTAwJSAtIDIwcHgpOwogIHdpZHRoOiBjYWxjKDEwMCUgLSAyMHB4KTsKfQoKI2JveCBpbnB1dFt0eXBlPXN1Ym1pdF17CiAgbWFyZ2luOiA1MHB4IGF1dG87Cn0KCiNzZXR0aW5ncyB7CiAgZGlzcGxheTogYmxvY2s7CiAgcGFkZGluZzogMTBweCAxMHB4Owp9Cgojc2V0dGluZ3MgaDUgewogIG1hcmdpbjogNTBweCAwcHggMTBweCAwcHg7Cn0KCiNjb250ZW50LWludGVyYWN0aW9uIC5zZWFyY2ggewogIHdpZHRoOiAyMDBweDsKICBib3JkZXI6IDFweCBzb2xpZCAjMDAwOwogIHBhZGRpbmc6IDlweDsKICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzMzOwogIG1hcmdpbjogMTBweDsKICBmbG9hdDogcmlnaHQ7CiAgYm9yZGVyLXJhZGl1czogM3B4OwoKfQoKI215U3RyZWFtcyB7CiAgcG9zaXRpb246IGZpeGVkOwogIGJvdHRvbTogMHB4OwogIGJhY2tncm91bmQtY29sb3I6ICMxMTE7CiAgd2lkdGg6IDEwMCU7CiAgbWF4LXdpZHRoOiA5NTBweDsKCiAgLyoKICBtYXgtaGVpZ2h0OiAxMDBweDsKICAqLwogIG1hcmdpbi1ib3R0b206IDBweDsKfQoKI215U3RyZWFtcyBpbWcgewogIHdpZHRoOiA0JTsKICBwYWRkaW5nOiAycHggNXB4OwogIGN1cnNvcjogcG9pbnRlcjsKICBmbG9hdDogcmlnaHQ7Cn0KCiNzZXR0aW5ncy1mb290ZXIgewoKfQoKCi8qIFdpemFyZCovCiNib3ggewogIGJhY2tncm91bmQtY29sb3I6ICM0NDQ7CiAgbWluLWhlaWdodDogNDAwcHg7CiAgCiAgZGlzcGxheTogZmxleDsKICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsKfQoKI2JveCBwewogIHBhZGRpbmc6IDEwcHggMHB4Owp9CgojYm94LWZvb3RlciB7CiAgbWFyZ2luLXRvcDogYXV0bzsKfQoKI2JveC1mb290ZXIgewogIG1hcmdpbjogYXV0bzsKICBwYWRkaW5nOiAxMHB4Owp9CgojaGVhZGxpbmUgewogIGJhY2tncm91bmQtY29sb3I6ICMyMjI7CiAgYm9yZGVyLWJvdHRvbTogc29saWQgMnB4ICMyMjI7CiAgdHJhbnNpdGlvbjogYWxsIDAuNXM7CiAgcGFkZGluZzogMTBweCAwcHg7CiAgZGlzcGxheTogYmxvY2s7Cn0KCiNjb250ZW50IHsKICBkaXNwbGF5OiBibG9jazsKICBvdmVyZmxvdzogYXV0bzsKICBwYWRkaW5nOiAxMHB4Owp9CgovKiAtLS0gKi8KCgojY2xpZW50SW5mbywgI2FjdGl2ZVN0cmVhbXMsICNpbmFjdGl2ZVN0cmVhbXMgewogIGZvbnQtZmFtaWx5OiBtb25vc3BhY2U7CiAgZGlzcGxheTogYmxvY2s7CiAgZm9udC1zaXplOiA5cHg7CiAgYmFja2dyb3VuZC1jb2xvcjogIzExMTsKICBjb2xvcjogIzAwRTZGRjsKICBib3JkZXItYm90dG9tOiBzb2xpZCAwcHg7OwogIHBhZGRpbmc6IDBweDsKICBsZXR0ZXItc3BhY2luZzogMXB4OwogIG92ZXJmbG93LXg6IGhpZGRlbjsKICBib3JkZXItc3BhY2luZzogNHB4IDRweDsKICBib3JkZXItYm90dG9tOiBzb2xpZCAxcHggIzQ0NDsKfQoKI215U3RyZWFtc0JveCB7CiAgcG9zaXRpb246IHJlbGF0aXZlOwogIHBhZGRpbmc6IDBweDsKICAvKmhlaWdodDogMTAwcHg7Ki8KICBtYXgtaGVpZ2h0OiAxNTBweDsKICBiYWNrZ3JvdW5kLWNvbG9yOiAjMTExOwogIGNvbG9yOiB3aGl0ZTsKICBkaXNwbGF5OmZsZXg7CiAganVzdGlmeS1jb250ZW50OmNlbnRlcjsKICBhbGlnbi1pdGVtczpjZW50ZXI7Cn0KCiNvcGVuU3RyZWFtcyB7CiAgd2lkdGg6IDIwcHg7CiAgaGVpZ2h0OiAyMHB4OwogIGN1cnNvcjogcG9pbnRlcjsKICBmbG9hdDogcmlnaHQ7CiAgcG9zaXRpb246IGFic29sdXRlOwogIHJpZ2h0OiAwcHg7CiAgYm90dG9tOiAwcHg7CiAgYmFja2dyb3VuZDogdXJsKCIuLi9pbWcvdG91Y2gucG5nIik7CiAgYmFja2dyb3VuZC1jb2xvcjogIzExMTsKICAKICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBib3R0b20gcmlnaHQ7ICAKfQoKI2FsbFN0cmVhbXMgewogIHdpZHRoOiAxMDAlOwogIGhlaWdodDogMTAwJTsKICBwYWRkaW5nOiAycHg7ICAgICAKfQoKI2FjdGl2ZVN0cmVhbXMsICNpbmFjdGl2ZVN0cmVhbXMgewogIG92ZXJmbG93LXk6IHNjcm9sbDsKICB3aWR0aDogNTAlOwogIG1heC1oZWlnaHQ6IDEwMHB4OwogIGZsb2F0OiBsZWZ0Owp9CgojYWN0aXZlU3RyZWFtcyAudGRLZXksICNpbmFjdGl2ZVN0cmVhbXMgLnRkS2V5IHsKICB3aWR0aDogNzVweDsKfQoKCgoKI2luYWN0aXZlU3RyZWFtcyAudGRLZXkgewogIGNvbG9yOiByZWQ7Cn0KCiNjbGllbnRJbmZvIC50ZFZhbCwgI2xvZ0luZm8gLnRkVmFsLCAjYWN0aXZlU3RyZWFtcyAudGRWYWwsICNpbmFjdGl2ZVN0cmVhbXMgLnRkVmFsLCAjbWFwcGluZ0luZm8gLnRkVmFsewogIGNvbG9yOiAjYWFhOwogIHdoaXRlLXNwYWNlOiBpbmhlcml0Owp9CgojYm94LXdyYXBwZXIgewogIGRpc3BsYXk6IGlubGluZS1ibG9jazsKICB3aWR0aDogMTAwJTsKICAKICBvdmVyZmxvdy15OiBzY3JvbGw7Cn0KCiNjb250ZW50X3RhYmxlLCAjbWFwcGluZy1kZXRhaWwtdGFibGUsICNjb250ZW50X3RhYmxlIHsKICBkaXNwbGF5OiB0YWJsZTsKICAKICBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOwogIG92ZXJmbG93LXk6IHNjcm9sbDsKICB3aWR0aDogMTAwJTsKfQoKCiNjb250ZW50X3RhYmxlIC5jb250ZW50X3RhYmxlX2hlYWRlciB7CiAgYmFja2dyb3VuZC1jb2xvcjogIzMzMzsKICBoZWlnaHQ6IDUwcHg7CiAgYm9yZGVyLWJvdHRvbTogc29saWQgMXB4ICMxMTE7CiAgYm9yZGVyLWxlZnQ6IHNvbGlkIDNweCAjMzMzOwogIGN1cnNvcjogYXV0bzsKCn0KCgp0Ym9keSB7CiAgd2lkdGg6IDEwMCU7Cn0KCgoudGFibGVFbGxpcHNpcyB7CiAgd2lkdGg6IDE1MHB4OwogIG92ZXJmbG93OiBoaWRkZW47CiAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7CiAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKfQoKI2NvbnRlbnRfdGFibGUgaW1nIHsKICBkaXNwbGF5OiBibG9jazsKICBtYXgtaGVpZ2h0OiAyOHB4OwogIG1hcmdpbi1sZWZ0OiBhdXRvOwogIG1hcmdpbi1yaWdodDogYXV0bzsKICBtYXgtd2lkdGg6IDMwcHg7Cn0KCiNjb250ZW50X3RhYmxlIHRyewogIGJvcmRlci1sZWZ0OiBzb2xpZCAzcHggNDQ0OwogIGJvcmRlci1ib3R0b206IHNvbGlkIDFweCAjMzMzOwogIGN1cnNvcjogcG9pbnRlcjsKfQoKI2NvbnRlbnRfdGFibGUgdHI6aG92ZXIgewogIGJhY2tncm91bmQtY29sb3I6ICMzMzM7Cn0KCiNjb250ZW50X3RhYmxlIHRkIHsKCiAgcGFkZGluZzogMHB4IDJweDsKfQoKI2NvbnRlbnRfdGFibGUgaW5wdXRbdHlwZT10ZXh0XXsKICB3aWR0aDogODAlOwogIG1pbi13aWR0aDogMzVweDsKICBtYXgtd2lkdGg6IDYwcHg7CiAgYm9yZGVyOiAwcHg7CiAgYmFja2dyb3VuZC1jb2xvcjogIzMzMzsKICBtYXJnaW4tbGVmdDogNXB4OwogIHRleHQtYWxpZ246IGxlZnQ7Cn0KCiNjb250ZW50X3RhYmxlIGlucHV0W3R5cGU9Y2hlY2tib3hdewogIG1heC13aWR0aDogMjVweDsKICBtYXJnaW46IGF1dG87Cn0KCgouc2hvd0J1bGsgewogIGRpc3BsYXk6IGJsb2NrOwp9CgouaGlkZUJ1bGsgewogIGRpc3BsYXk6IG5vbmU7Cn0KCi5ub0J1bGsgewoKfQoKI2NvbnRlbnRfdGFibGUgdHIuYWN0aXZlRVBHewogIGJvcmRlci1sZWZ0OiBzb2xpZCAzcHggbGF3bmdyZWVuOwp9CgojY29udGVudF90YWJsZSB0ci5ub3RBY3RpdmVFUEd7CiAgYm9yZGVyLWxlZnQ6IHNvbGlkIDNweCByZWQ7Cn0KCgojbG9nU2NyZWVuIHB7CiAgd2hpdGUtc3BhY2U6IHByZTsKICBmb250LXNpemU6IDEwcHg7CiAgLyoKICBsaW5lLWhlaWdodDogMS42ZW07CiAgZm9udC1mYW1pbHk6ICJBcmlhbCIsIHNhbnMtc2VyaWY7CiAgKi8KICBsZXR0ZXItc3BhY2luZzogMXB4OwogIGZvbnQtZmFtaWx5OiBtb25vc3BhY2U7IAogIGZvbnQtc2l6ZTogMTJweDsgCiAgZm9udC1zdHlsZTogbm9ybWFsOyAKICBmb250LXZhcmlhbnQ6IG5vcm1hbDsgCiAgbGluZS1oZWlnaHQ6IDEuNmVtOyAKfQoKI3BvcHVwIHsKICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNCk7CiAgcG9zaXRpb246IGZpeGVkOwogIGxlZnQ6IDBweDsKICB3aWR0aDogMTAwJTsKICB6LWluZGV4OiAxMDA7CiAgaGVpZ2h0OiAxMDAlOwp9CgojbWFwcGluZy1kZXRhaWwsICN1c2VyLWRldGFpbCwgI2ZpbGUtZGV0YWlsLCAjcG9wdXAtY3VzdG9tIHsKICBib3gtc2hhZG93OiAwcHggNXB4IDQwcHggIzAwMDsKICBtYXJnaW4tdG9wOiAyMHB4OwogIG1hcmdpbi1sZWZ0OiBhdXRvOwogIG1hcmdpbi1yaWdodDogYXV0bzsKICAKICBtYXgtd2lkdGg6IDYwMHB4OwogIGJhY2tncm91bmQtY29sb3I6ICMyMjI7CiAgcGFkZGluZzogMTBweDsKICBvdmVyZmxvdzphdXRvOwp9CgojcG9wdXAtY3VzdG9tIGgzIHsKICB0ZXh0LWFsaWduOiBjZW50ZXI7Cn0KCiNmaWxlLWRldGFpbCBpbnB1dFt0eXBlPXRleHRdIHsKICB3aWR0aDogLXdlYmtpdC1jYWxjKDEwMCUgLSAyMHB4KTsKICB3aWR0aDogLW1vei1jYWxjKDEwMCUgLSAyMHB4KTsKICB3aWR0aDogY2FsYygxMDAlIC0gMjBweCk7Cn0KCiNtYXBwaW5nLWRldGFpbCBpbWcgewogIGRpc3BsYXk6IGJsb2NrOwogIG1heC1oZWlnaHQ6IDMwcHg7CiAgbWFyZ2luLWJvdHRvbTogMjBweDsKICBtYXJnaW4tbGVmdDogYXV0bzsKICBtYXJnaW4tcmlnaHQ6IGF1dG87Cn0KCiNwb3B1cC1jdXN0b20gaW5wdXRbdHlwZT10ZXh0XSwgI3BvcHVwLWN1c3RvbSBpbnB1dFt0eXBlPXBhc3N3b3JkXSwgI21hcHBpbmctZGV0YWlsIGlucHV0W3R5cGU9dGV4dF0sICNjb250ZW50X3NldHRpbmdzIGlucHV0W3R5cGU9dGV4dF0sICNjb250ZW50X3NldHRpbmdzIGlucHV0W3R5cGU9cGFzc3dvcmRdewogIGJvcmRlcjogc29saWQgMXB4OwogIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7CiAgYmFja2dyb3VuZC1jb2xvcjogIzMzMzsKICB0ZXh0LWFsaWduOiBsZWZ0OwogIHdpZHRoOiAtd2Via2l0LWNhbGMoMTAwJSAtIDIwcHgpOwogIHdpZHRoOiAgICAtbW96LWNhbGMoMTAwJSAtIDIwcHgpOwogIHdpZHRoOiAgICAgICAgIGNhbGMoMTAwJSAtIDIwcHgpOwp9CgojcG9wdXAtY3VzdG9tIGlucHV0W3R5cGU9dGV4dF0ubm90QXZhaWxhYmxlIHsKICBib3JkZXItY29sb3I6IHJlZDsKICBjb2xvcjogIzY2NjsKICBjdXJzb3I6IG5vdC1hbGxvd2VkOwp9CgojbWFwcGluZy1kZXRhaWwtdGFibGUsICN1c2VyLWRldGFpbC10YWJsZSB7CiAgZGlzcGxheTogaW5saW5lLXRhYmxlOwogIHdpZHRoOiAxMDAlOwp9CgojcG9wdXAtY3VzdG9tIHRhYmxlLCAjY29udGVudF9zZXR0aW5ncyB0YWJsZSB7CiAgZGlzcGxheTogaW5saW5lLXRhYmxlOwogIHRhYmxlLWxheW91dDogZml4ZWQ7CiAgd2lkdGg6IDEwMCU7Cn0KCgojbWFwcGluZy1kZXRhaWwtdGFibGUgdGQsICN1c2VyLWRldGFpbC10YWJsZSB0ZCB7CiAgcGFkZGluZzogMTBweCAwcHg7Cgp9CgojbWFwcGluZy1kZXRhaWwtdGFibGUgdGQubGVmdCwgI3VzZXItZGV0YWlsLXRhYmxlIHRkLmxlZnQsICNwb3B1cC1jdXN0b20gdGQubGVmdCB7CiAgd2lkdGg6IDM4JTsKfQoKLmludGVyYWN0aW9uLCAjaW50ZXJhY3Rpb24gewogIG1hcmdpbi10b3A6IDIwcHg7CiAgZGlzcGxheTogaW5saW5lLWZsZXg7CiAgZmxvYXQ6IHJpZ2h0Owp9CgouaW50ZXJhY3Rpb24gaW5wdXRbdHlwZT1idXR0b25dLCAuaW50ZXJhY3Rpb24gaW5wdXRbdHlwZT1zdWJtaXRdIHsKICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDAwOwogIG1pbi13aWR0aDogMTAwcHg7CiAgbWFyZ2luOiAwcHggMTBweDsKICB0ZXh0LWFsaWduOiBjZW50ZXI7Cn0KCiNub3RpZmljYXRpb24gewogIGRpc3BsYXk6IGJsb2NrOwogIHBvc2l0aW9uOiBmaXhlZDsKICByaWdodDogMHB4OwogIGhlaWdodDogMTAwJTsKICB3aWR0aDogMjUwcHg7CiAgCiAgYmFja2dyb3VuZC1jb2xvcjogIzIyMjsKICBib3gtc2hhZG93OiAwcHggMHB4IDIwcHggIzAwMDsKfQoKI25vdGlmaWNhdGlvbiBoNSB7CiAgYmFja2dyb3VuZC1jb2xvcjogIzEyMTIxMjsKICBwYWRkaW5nOiA1cHggMTBweCA1cHggMTBweDsKfQoKI25vdGlmaWNhdGlvbiBwcmUgewogIHBhZGRpbmc6IDBweCAxMHB4IDBweCAxMHB4Owp9Cgojbm90aWZpY2F0aW9uIHAgewogIGZvbnQtc2l6ZTogMTAgcHg7CiAgbWFyZ2luOiAwcHg7CiAgcGFkZGluZzogMHB4IDEwcHggNXB4IDEwcHg7Cn0KCiNub3RpZmljYXRpb24gLmVsZW1lbnQgewogIC8qcGFkZGluZzogMHB4IDVweDsqLwogIG1hcmdpbjogNXB4IDVweDsKICBib3JkZXItcmFkaXVzOiA1cHg7CiAgYmFja2dyb3VuZC1jb2xvcjogIzE4MTgxODsKICBib3JkZXItbGVmdDogMTBweCBzb2xpZCBncmVlbjsKfQoKCkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjIwcHgpewogIGJvZHkgewogICAgd2lkdGg6IDEwMCU7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNDQ0OwogIH0KCiAgaDEgewogICAgZm9udC1zaXplOiAyNnB4OwogICAgbGV0dGVyLXNwYWNpbmc6IDNweDsKICB9CgogIG5hdiBwIHsKICAgIGRpc3BsYXk6IGJsb2NrOwogIH0KCgoKICAjaGVhZGVyX2NvbmZpZyB7CiAgICBkaXNwbGF5OiBibG9jazsKICAgIGhlaWdodDogMTAwcHg7CiAgICBiYWNrZ3JvdW5kOiB1cmwoIi4uL2ltZy9sb2dvX3dfNjAweDIwMC5wbmciKTsKICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7CiAgICAKICAgIGJhY2tncm91bmQtc2l6ZTogMzAwcHggMTAwcHg7CiAgfQoKICAjc2NyZWVuTG9nIHsKICAgIG1hcmdpbi1sZWZ0OiAzMDBweDsKCiAgICB0cmFuc2l0aW9uOiBub25lOwogICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7CiAgICBib3JkZXItYm90dG9tOiBzb2xpZCAxcHggdHJhbnNwYXJlbnQ7CiAgICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAjMjIyOwogIH0KCiAgI3NldHRpbmdzIHsKICAgIC8qCiAgICBoZWlnaHQ6IC13ZWJraXQtY2FsYygxMDAlIC0gMTAwcHgpOwogICAgaGVpZ2h0OiAtbW96LWNhbGMoMTAwJSAtIDEwMHB4KTsKICAgIGhlaWdodDogY2FsYygxMDAlIC0gMTAwcHgpOwogICAgKi8KICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgIG92ZXJmbG93OiBhdXRvOwogIH0KCgogIC5zY3JlZW5Mb2dIaWRkZW4gewogICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMHB4LCAwcHgpOwogIH0KCgogICNib3ggewogICAgZGlzcGxheTogYmxvY2s7CiAgICBtaW4taGVpZ2h0OiA1MDBweDsKICAgIG1heC13aWR0aDogNTAwcHg7CiAgICBtYXJnaW46IDEwcHggYXV0bzsKICAgIGJhY2tncm91bmQtY29sb3I6ICM0NDQ7CiAgICBib3gtc2hhZG93OiAwcHggNXB4IDVweCAjMjIyOwoKICAgIGRpc3BsYXk6IGZsZXg7CiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogIH0KCiAgI3NldHRpbmdzLCAjc2V0dGluZ3MtZm9vdGVyIHsKICAgIAogIH0KfQo=" - webUI["html/js/authentication.js"] = "ZnVuY3Rpb24gY3JlYXRlRmlyc3RBY2NvdW50KGVsbSkgewogIHZhciBlcnIgPSBmYWxzZTsKICB2YXIgZGl2ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoZWxtKTsKICBjb25zb2xlLmxvZyhkaXYpOwoKICB2YXIgZm9ybSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdhdXRoZW50aWNhdGlvbicpOwogIAogIGNvbnN0IHVzZXJuYW1lICA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd1c2VybmFtZScpOwogIGNvbnN0IHBhc3N3b3JkICA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdwYXNzd29yZCcpOwogIGNvbnN0IGNvbmZpcm0gICA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjb25maXJtJyk7CgogIHZhciBpbnB1dHMgPSBkaXYuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ0lOUFVUJykKICBjb25zb2xlLmxvZyhjb25maXJtKTsKCiAgc3dpdGNoKGNvbmZpcm0pIHsKICAgIGNhc2UgbnVsbDogYnJlYWs7CiAgICAKICAgIGRlZmF1bHQ6IAogICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGlucHV0cy5sZW5ndGg7IGkrKykgewogICAgICAgIGlmIChpbnB1dHNbaV0udmFsdWUubGVuZ3RoID09IDApIHsKICAgICAgICAgIGlucHV0c1tpXS5zdHlsZS5ib3JkZXJDb2xvciA9ICdyZWQnOwogICAgICAgICAgZXJyID0gdHJ1ZQogICAgICAgIH0KICAgICAgfQoKICAgICAgc3dpdGNoKGVycikgewogICAgICAgIGNhc2UgdHJ1ZTogcmV0dXJuOyBicmVhazsKICAgICAgICBjYXNlIGZhbHNlOiAKICAgICAgICAgIGlmIChwYXNzd29yZC52YWx1ZSAhPSBjb25maXJtLnZhbHVlKSB7CiAgICAgICAgICAgIGNvbmZpcm0uc3R5bGUuYm9yZGVyQ29sb3IgPSAncmVkJzsKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgfQogICAgICAgICAgYnJlYWs7CiAgICAgIH0KICB9CgoKICAKCiAgZm9ybS5zdWJtaXQoKTsKICByZXR1cm47Cn0=" - webUI["html/js/configuaration.js"] = "dmFyIGNvbmZpZ01lbnUgPSBuZXcgT2JqZWN0KCk7CnZhciB3aXphcmQgPSBuZXcgQXJyYXkoImtleSIsICJ0dW5lciIsICJlcGdTb3VyY2UiLCAibTN1IiwgImNvbXBsZXRlIik7CnZhciBhY3RpdmVXaXphcmQ7CnZhciBkdnJJUAoKdmFyIGNvbmZpZ01lbnVfdHVuZXIgPSBuZXcgT2JqZWN0KCk7CmNvbmZpZ01lbnVfdHVuZXJbIl9lbGVtZW50Il0gICAgICA9ICJTRUxFQ1QiOwpjb25maWdNZW51X3R1bmVyWyJfbWVudVR5cGUiXSAgICAgPSAic2luZ2xlSW5wdXQiOwpjb25maWdNZW51X3R1bmVyWyJfY29uZmlnS2V5Il0gICAgPSAidHVuZXIiOwpjb25maWdNZW51X3R1bmVyWyJfbGFiZWwiXSAgICAgICAgPSAiQXZhaWxhYmxlIHR1bmVycyI7CmNvbmZpZ01lbnVfdHVuZXJbIm5hbWUiXSAgICAgICAgICA9ICJ0dW5lciI7CmNvbmZpZ01lbnVfdHVuZXJbImlkIl0gICAgICAgICAgICA9ICJUdW5lciI7CmNvbmZpZ01lbnVfdHVuZXJbInBsYWNlaG9sZGVyIl0gICA9ICJUdW5lciI7CmNvbmZpZ01lbnVfdHVuZXJbIl91c2FnZSJdICAgICAgICA9ICJUaGlzIHNldHRpbmcgaXMgb25seSB1c2VkIGJ5IFBsZXggYW5kIEVtYnkuPGJyPlRoZSBudW1iZXIgb2YgY29uY3VycmVudCBzdHJlYW1zIGFsbG93ZWQgYnkgdGhlIElQVFYgcHJvdmlkZXIuIgoKCnZhciBvcHRpb25WYWx1ZXMgPSBuZXcgQXJyYXkoKTsKZm9yICh2YXIgaSA9IDE7IGkgPD0gMTAwOyBpKyspIHsKICBvcHRpb25WYWx1ZXMucHVzaChpKQp9CmNvbmZpZ01lbnVfdHVuZXJbIl9vcHRpb25WYWx1ZXMiXSA9IG9wdGlvblZhbHVlczsKCnZhciBjb25maWdNZW51X2VwZyA9IG5ldyBPYmplY3QoKTsKY29uZmlnTWVudV9lcGdbIl9lbGVtZW50Il0gICAgICA9ICJTRUxFQ1QiOwpjb25maWdNZW51X2VwZ1siX21lbnVUeXBlIl0gICAgID0gInNpbmdsZUlucHV0IjsKY29uZmlnTWVudV9lcGdbIl9jb25maWdLZXkiXSAgICA9ICJlcGdTb3VyY2UiOwpjb25maWdNZW51X2VwZ1siX2xhYmVsIl0gICAgICAgID0gIlNlbGVjdGlvbiBvZiB0aGUgRVBHIHNvdXJjZSI7CmNvbmZpZ01lbnVfZXBnWyJuYW1lIl0gICAgICAgICAgPSAiZXBnU291cmNlIjsKY29uZmlnTWVudV9lcGdbImlkIl0gICAgICAgICAgICA9ICJFUEcgc291cmNlIjsKY29uZmlnTWVudV9lcGdbInBsYWNlaG9sZGVyIl0gICA9ICJFUEcgc291cmNlIjsKY29uZmlnTWVudV9lcGdbIl9vcHRpb25WYWx1ZXMiXSA9IG5ldyBBcnJheSgiUE1TIiwgIlhFUEciKTsKY29uZmlnTWVudV9lcGdbIl91c2FnZSJdICAgICAgICA9ICJQTVM6ICAgVXNlIEVQRyBkYXRhIGZyb20gUGxleCBvciBFbWJ5PGJyPlhFUEc6ICBVc2Ugb2YgZXh0ZXJuYWwgRVBHIGRhdGEgKFhNTFRWKTxicj4gICAgICAgU2V2ZXJhbCBYTUxUViBzb3VyY2VzIHBvc3NpYmxlPGJyPiAgICAgICBBbGxvd3MgZWRpdGluZyBhbmQgb3JkZXIgY2hhbm5lbHM8YnI+ICAgICAgIE0zVSAvIFhNTFRWIGV4cG9ydCAoSFRUUCBsaW5rIGZvciBJUFRWIGFwcHMpIgoKdmFyIGNvbmZpZ01lbnVfbTN1ID0gbmV3IE9iamVjdCgpOwpjb25maWdNZW51X20zdVsiX2VsZW1lbnQiXSAgICAgICAgPSAiSU5QVVQiOwpjb25maWdNZW51X20zdVsiX21lbnVUeXBlIl0gICAgICAgPSAiaW5wdXRBcnJheSI7CmNvbmZpZ01lbnVfbTN1WyJfY29uZmlnS2V5Il0gICAgICA9ICJmaWxlIjsKY29uZmlnTWVudV9tM3VbIl9sYWJlbCJdICAgICAgICAgID0gIk0zVSBGaWxlOiBsb2NhbCBvciByZW1vdGUiOwpjb25maWdNZW51X20zdVsibmFtZSJdICAgICAgICAgICAgPSAiZmlsZSI7CmNvbmZpZ01lbnVfbTN1WyJpZCJdICAgICAgICAgICAgICA9ICJtM3UiOwpjb25maWdNZW51X20zdVsidHlwZSJdICAgICAgICAgICAgPSAidGV4dCI7CmNvbmZpZ01lbnVfbTN1WyJwbGFjZWhvbGRlciJdICAgICA9ICJNM1UgRmlsZSI7CmNvbmZpZ01lbnVfbTN1WyJfdXNhZ2UiXSAgICAgICAgICA9ICJSZW1vdGUgcGxheWxpc3Q6IGh0dHA6Ly95b3VyLnByb3ZpZGVyLmNvbS9maWxlLm0zdTxicj5Mb2NhbCAgcGxheWxpc3Q6IC9wYXRoL3RvL2ZpbGUubTN1IgoKCmNvbmZpZ01lbnVfbTN1WyJ2YWx1ZSJdICAgICAgICAgICA9ICJodHRwOi8vd2Vic3J2LmxvY2FsOjgwODAva2FiZWwubTN1IjsKCnZhciBjb25maWdNZW51X2NvbXBsZXRlID0gbmV3IE9iamVjdCgpOwpjb25maWdNZW51X2NvbXBsZXRlWyJfZWxlbWVudCJdICAgICAgICA9ICJIMiI7CmNvbmZpZ01lbnVfY29tcGxldGVbIl9tZW51VHlwZSJdICAgICAgID0gImlucHV0QXJyYXkiOwpjb25maWdNZW51X2NvbXBsZXRlWyJfY29uZmlnS2V5Il0gICAgICA9ICJmaWxlIjsKY29uZmlnTWVudV9jb21wbGV0ZVsiX3RleHQiXSAgICAgICAgICAgPSAieFRlVmUgd2FzIHN1Y2Nlc3NmdWxseSBzZXQgdXAiOwpjb25maWdNZW51X2NvbXBsZXRlWyJuYW1lIl0gICAgICAgICAgICA9ICJjb21wbGV0ZSI7CmNvbmZpZ01lbnVfY29tcGxldGVbImlkIl0gICAgICAgICAgICAgID0gImNvbXBsZXRlIjsKY29uZmlnTWVudV9jb21wbGV0ZVsidHlwZSJdICAgICAgICAgICAgPSAidGV4dCI7CmNvbmZpZ01lbnVfY29tcGxldGVbImNsYXNzIl0gICAgICAgICAgID0gImNlbnRlciI7Cgpjb25maWdNZW51WyJ0dW5lciJdICAgICA9IGNvbmZpZ01lbnVfdHVuZXI7CmNvbmZpZ01lbnVbImVwZ1NvdXJjZSJdID0gY29uZmlnTWVudV9lcGc7CmNvbmZpZ01lbnVbIm0zdSJdICAgICAgID0gY29uZmlnTWVudV9tM3U7CmNvbmZpZ01lbnVbImNvbXBsZXRlIl0gID0gY29uZmlnTWVudV9jb21wbGV0ZTsKCmZ1bmN0aW9uIHJlYWR5Rm9yQ29uZmlndXJhdGlvbigpIHsKICB2YXIgZGF0YSA9IG5ldyBPYmplY3QoKTsKICBkYXRhWyJjbWQiXSA9ICJnZXRTZXJ2ZXJDb25maWciOwogIHhUZVZlKGRhdGEpOwogIHNob3dMb2FkaW5nU2NyZWVuKGZhbHNlKTsKfQoKZnVuY3Rpb24gY3JlYXRlQ29uZmlndXJhdGlvbihlbG0pIHsKCiAgYWN0aXZlV2l6YXJkID0gZWxtOwogIHZhciBpdGVtICA9IGNvbmZpZ01lbnVbZWxtXTsKCiAgdmFyIGRpdiAgID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnRlbnQiKTsKICBkaXYuaW5uZXJIVE1MID0gIiI7CiAgZGl2LnNldEF0dHJpYnV0ZSgiZGF0YS1jb25maWdLZXkiLCBpdGVtWyJfY29uZmlnS2V5Il0pOwogIGRpdi5zZXRBdHRyaWJ1dGUoImRhdGEtbWVudVR5cGUiLCBpdGVtWyJfbWVudVR5cGUiXSk7CiAgCiAgc3dpdGNoKGl0ZW0uaGFzT3duUHJvcGVydHkoIl9sYWJlbCIpKSB7CiAgICBjYXNlIHRydWU6CiAgICAgIHZhciBuZXdJdGVtID0gbmV3IE9iamVjdCgpOwogICAgICBuZXdJdGVtWyJfZWxlbWVudCJdID0gIkxBQkVMIjsKICAgICAgbmV3SXRlbVsiX3RleHQiXSAgICA9IGl0ZW1bIl9sYWJlbCJdOyAKICAgICAgbmV3SXRlbVsiZm9yIl0gICAgICA9IGl0ZW1bImlkIl07CiAgICAgIGRpdi5hcHBlbmRDaGlsZChjcmVhdGVFbGVtZW50KG5ld0l0ZW0pKTsKICAgICAgYnJlYWsKICB9CgogIHN3aXRjaChpdGVtWyJfZWxlbWVudCJdKSB7CiAgICBjYXNlICJTRUxFQ1QiOgogICAgICBkaXYuYXBwZW5kQ2hpbGQoY3JlYXRlRWxlbWVudChpdGVtKSk7CiAgICAgIHZhciBzZWxlY3RFbGVtZW50ID0gZGl2LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJTRUxFQ1QiKVswXTsKICAgICAgdmFyIHZhbHVlcyA9IGl0ZW1bIl9vcHRpb25WYWx1ZXMiXTsKICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB2YWx1ZXMubGVuZ3RoOyBpKyspIHsKICAgICAgICB2YXIgbmV3RW50cnkgPSBuZXcgT2JqZWN0OwogICAgICAgIG5ld0VudHJ5WyJfZWxlbWVudCJdICA9ICJPUFRJT04iOwogICAgICAgIG5ld0VudHJ5WyJfdGV4dCJdICAgICA9IGl0ZW1bImlkIl0gKyAiOiAiICsgdmFsdWVzW2ldOwogICAgICAgIG5ld0VudHJ5WyJ2YWx1ZSJdICAgICA9IHZhbHVlc1tpXTsKICAgICAgICBzZWxlY3RFbGVtZW50LmFwcGVuZENoaWxkKGNyZWF0ZUVsZW1lbnQobmV3RW50cnkpKTsKICAgICAgfQogICAgICAvL3JldHVybgogICAgICBicmVhazsKCiAgICBkZWZhdWx0OiAKICAgICAgZGl2LmFwcGVuZENoaWxkKGNyZWF0ZUVsZW1lbnQoaXRlbSkpOwogICAgICBicmVhazsKCgogIH0KICAvL2FsZXJ0KCkKCiAgc3dpdGNoKGl0ZW0uaGFzT3duUHJvcGVydHkoIl91c2FnZSIpKSB7CiAgICBjYXNlIHRydWU6IAogICAgICB2YXIgdXNhZ2VJdGVtID0gbmV3IE9iamVjdCgpOwogICAgICB1c2FnZUl0ZW1bIl9lbGVtZW50Il0gPSAiUFJFIgogICAgICB1c2FnZUl0ZW1bIl90ZXh0Il0gICAgPSBpdGVtWyJfdXNhZ2UiXTsKICAgICAgZGl2LmFwcGVuZENoaWxkKGNyZWF0ZUVsZW1lbnQodXNhZ2VJdGVtKSk7CiAgfQoKICBpZiAoYWN0aXZlV2l6YXJkID09ICJjb21wbGV0ZSIpIHsKICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJuZXh0IikudmFsdWUgPSAiRmluaXNoZWQiCiAgICAvL2RvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJuZXh0Iikuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgImphdmFzY3JpcHQ6IGxvY2F0aW9uLnJlbG9hZCgpOyIpCiAgfQoKICAvL2Rpdi5hcHBlbmRDaGlsZChjcmVhdGVFbGVtZW50KGl0ZW0pKTsKfQoKZnVuY3Rpb24gc2F2ZURhdGEoKSB7CgogIHZhciBkaXYgICA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb250ZW50Iik7CiAgdmFyIGlucHV0cyA9IGRpdi5nZXRFbGVtZW50c0J5VGFnTmFtZSgiSU5QVVQiKTsKICB2YXIgc2VsZWN0cyA9IGRpdi5nZXRFbGVtZW50c0J5VGFnTmFtZSgiU0VMRUNUIik7CiAgdmFyIHZhbHVlOwogIHZhciBkYXRhID0gbmV3IE9iamVjdCgpOwogIHZhciB2YWx1ZUFyciA9IG5ldyBBcnJheSgpOwogIHZhciBuZXdEYXRhID0gZmFsc2U7CgogIGlmIChhY3RpdmVXaXphcmQgPT0gImNvbXBsZXRlIikgewogICAgZGF0YVsiY21kIl0gPSAid2l6YXJkQ29tcGxldGVkIjsKICAgIHNob3dMb2FkaW5nU2NyZWVuKHRydWUpCiAgICB4VGVWZShkYXRhKTsKICAgIHJldHVybgogIH0KICAKICBmb3IgKHZhciBpID0gMDsgaSA8IGlucHV0cy5sZW5ndGg7IGkrKykgewogICAgdmFyIG1lbnVUeXBlID0gaW5wdXRzW2ldLnBhcmVudEVsZW1lbnQuZ2V0QXR0cmlidXRlKCJkYXRhLW1lbnV0eXBlIik7CiAgICBpZiAoaW5wdXRzW2ldLnZhbHVlICE9IHVuZGVmaW5lZCAmJiBpbnB1dHNbaV0udmFsdWUgIT0gIiIgKSB7CiAgICAgIG5ld0RhdGEgPSB0cnVlOwoKICAgICAgY29uc29sZS5sb2coaW5wdXRzW2ldLmlkKQogICAgICBzd2l0Y2goaW5wdXRzW2ldLmlkKSB7CiAgICAgICAgY2FzZSAibTN1IjogCiAgICAgICAgICB2YXIgbmV3UGxheWxpc3QgPSBuZXcgT2JqZWN0KCk7CiAgICAgICAgICBuZXdQbGF5bGlzdFsiZmlsZS5zb3VyY2UiXSA9IGlucHV0c1tpXS52YWx1ZTsKICAgICAgICAgIC8vbmV3UGxheWxpc3RbIm5hbWUiXSA9IGlucHV0c1tpXS52YWx1ZTsKICAgICAgICAgIG5ld1BsYXlsaXN0WyJ0eXBlIl0gPSAibTN1IjsKICAgICAgICAgIG5ld1BsYXlsaXN0WyJuZXciXSA9IHRydWU7CgogICAgICAgICAgZGF0YVsiZmlsZXMiXSA9IG5ldyBPYmplY3QoKTsKICAgICAgICAgIGRhdGFbImZpbGVzIl1bIm0zdSJdID0gbmV3IE9iamVjdCgpOwogICAgICAgICAgZGF0YVsiZmlsZXMiXVsibTN1Il1bIi0iXSA9IG5ld1BsYXlsaXN0OwogICAgICAgICAgCiAgICAgICAgICBkYXRhWyJjbWQiXSA9ICJzYXZlRmlsZXNNM1UiOwogICAgICAgICAgeFRlVmUoZGF0YSkKICAgICAgICAgIHJldHVybgogICAgICB9CiAgICAgIC8qCiAgICAgIHN3aXRjaChtZW51VHlwZSkgewogICAgICAgIGNhc2UgInNpbmdsZUlucHV0IjoKICAgICAgICAgIGRhdGFbaW5wdXRzW2ldLm5hbWVdID0gaW5wdXRzW2ldLnZhbHVlOyBicmVhazsKICAgICAgICBjYXNlICJpbnB1dEFycmF5IjogCiAgICAgICAgICB2YWx1ZUFyci5wdXNoKGlucHV0c1tpXS52YWx1ZSk7CiAgICAgICAgICBkYXRhW2lucHV0c1tpXS5uYW1lXSA9IHZhbHVlQXJyOyBicmVhawoKICAgICAgfQogICAgICAqLwogICAgfSBlbHNlIHsKICAgICAgaW5wdXRzW2ldLnN0eWxlLmJvcmRlckJvdHRvbUNvbG9yID0gInJlZCI7CiAgICAgIHJldHVybjsKICAgIH0KICB9CgoKICBmb3IgKHZhciBpID0gMDsgaSA8IHNlbGVjdHMubGVuZ3RoOyBpKyspIHsKICAgIHZhciB2YWx1ZSA9IHNlbGVjdHNbaV0ub3B0aW9uc1tzZWxlY3RzW2ldLnNlbGVjdGVkSW5kZXhdLnZhbHVlOwogICAgaWYgKGlzTmFOKHZhbHVlKSA9PSBmYWxzZSkgewogICAgICB2YWx1ZSA9IHBhcnNlSW50KHZhbHVlKTsKICAgICAgZGF0YVtzZWxlY3RzW2ldLm5hbWVdID0gdmFsdWU7CiAgICAgIG5ld0RhdGEgPSB0cnVlOwogICAgICBicmVhazsKICAgIH0KICAgIGRhdGFbc2VsZWN0c1tpXS5uYW1lXSA9IHZhbHVlOwogICAgbmV3RGF0YSA9IHRydWU7CiAgfQoKCiAgLy9jb25zb2xlLmxvZyhkYXRhLCBuZXdEYXRhKTsKICBpZiAobmV3RGF0YSA9PSB0cnVlKSB7CiAgICBjb25maWcgPSBkYXRhCiAgICBkYXRhWyJjbWQiXSA9ICJzYXZlQ29uZmlnIjsKICAgIHhUZVZlKGRhdGEpOwogIH0KfQoKZnVuY3Rpb24geFRlVmUoZGF0YSkgewoKICBpZiAod2ViU29ja2V0cyA9PSBmYWxzZSkgewogICAgYWxlcnQoIllvdXIgYnJvd3NlciBkb2VzIG5vdCBzdXBwb3J0IFdlYlNvY2tldHMiKTsKICAgIHJldHVybjsKICB9CgogIGlmIChhY3RpdmVXaXphcmQgPT0gIm0zdSIgfHwgYWN0aXZlV2l6YXJkID09ICJlcGdTb3VyY2UiKSB7CiAgICBzaG93TG9hZGluZ1NjcmVlbih0cnVlKTsKICB9CgogIHZhciBwcm90b2NvbFdTCiAgc3dpdGNoKHdpbmRvdy5sb2NhdGlvbi5wcm90b2NvbCkgewogICAgY2FzZSAiaHR0cDoiOiAgIHByb3RvY29sV1MgPSAid3M6Ly8iOyBicmVhazsKICAgIGNhc2UgImh0dHBzOiI6ICBwcm90b2NvbFdTID0gIndzczovLyI7IGJyZWFrOwogIH0KCiAgdmFyIHdzID0gbmV3IFdlYlNvY2tldChwcm90b2NvbFdTICsgd2luZG93LmxvY2F0aW9uLmhvc3RuYW1lICsgIjoiICsgd2luZG93LmxvY2F0aW9uLnBvcnQgKyAiL2RhdGEvIiArICI/VG9rZW49IiArIGdldENvb2tpZSgiVG9rZW4iKSk7CiAgCiAgd3Mub25vcGVuID0gZnVuY3Rpb24oKSB7CiAgICB3cy5zZW5kKEpTT04uc3RyaW5naWZ5KGRhdGEpKTsKICB9CgogIHdzLm9ubWVzc2FnZSA9IGZ1bmN0aW9uIChlKSB7CiAgICAKICAgIHZhciByZXNwb25zZSA9IEpTT04ucGFyc2UoZS5kYXRhKTsKICAgIAogICAgaWYgKHJlc3BvbnNlLmhhc093blByb3BlcnR5KCJjbGllbnRJbmZvIikpIHsKICAgICAgY3JlYXRlQ2xpbnRJbmZvKHJlc3BvbnNlWyJjbGllbnRJbmZvIl0pOwogICAgfQoKICAgIGlmIChyZXNwb25zZS5oYXNPd25Qcm9wZXJ0eSgic3RhdHVzIikpIHsKICAgICAgaWYgKHJlc3BvbnNlWyJzdGF0dXMiXSA9PSBmYWxzZSkgewogICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJoZWFkbGluZSIpLnN0eWxlLmJvcmRlckNvbG9yID0gInJlZCI7CiAgICAgICAgc2hvd0VycihyZXNwb25zZVsiZXJyIl0pOwogICAgICAgIHNob3dMb2FkaW5nU2NyZWVuKGZhbHNlKQogICAgICAgIHJldHVybgogICAgICB9IGVsc2UgewogICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJlcnIiKS5pbm5lckhUTUwgPSAiIjsKICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiaGVhZGxpbmUiKS5zdHlsZS5ib3JkZXJDb2xvciA9ICJsYXduZ3JlZW4iOwogICAgICB9CgogICAgICBkdnJJUCA9IHJlc3BvbnNlWyJEVlIiXQogICAgICBzd2l0Y2gocmVzcG9uc2VbImNvbmZpZ3VyYXRpb25XaXphcmQiXSkgewogICAgICAgIGNhc2UgdHJ1ZTogCiAgICAgICAgICBpZiAoYWN0aXZlV2l6YXJkID09IHVuZGVmaW5lZCkgewogICAgICAgICAgICBhY3RpdmVXaXphcmQgPSB3aXphcmRbMF0KICAgICAgICAgIH0KICAgICAgICAgIHZhciBuID0gd2l6YXJkLmluZGV4T2YoYWN0aXZlV2l6YXJkKTsKICAgICAgICAgIG4rKzsKICAgICAgICAgIGFjdGl2ZVdpemFyZCA9IHdpemFyZFtuXQoKICAgICAgICAgIGlmIChhY3RpdmVXaXphcmQgPT0gdW5kZWZpbmVkKSB7CiAgICAgICAgICAgIGRhdGFbImNtZCJdID0gIndpemFyZENvbXBsZXRlZCI7CiAgICAgICAgICAgIHhUZVZlKGRhdGEpCiAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAvL2NvbnNvbGUubG9nKGFjdGl2ZVdpemFyZCk7CiAgICAgICAgICAgIGNyZWF0ZUNvbmZpZ3VyYXRpb24oYWN0aXZlV2l6YXJkKTsgCiAgICAgICAgICB9CiAgICAgICAgICAKICAgICAgICBicmVhazsKICAgICAgfQoKICAgICAgc3dpdGNoKHJlc3BvbnNlWyJyZWxvYWQiXSkgewogICAgICAgIAogICAgICAgIAogICAgICAgIGNhc2UgdHJ1ZTogCiAgICAKICAgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKXsgCiAgICAgICAgICAgIGxvY2F0aW9uLnJlbG9hZCgpOwogICAgICAgICAgfSwgMTAwKTsKICAgICAgICAgIAogICAgICAgICAgLy9sb2NhdGlvbi5yZWxvYWQoKTsKICAgICAgICAgIAogICAgICAgICAgYnJlYWs7CiAgICAgICAgCiAgICAgIH0KCiAgICAgIAogICAgfQoKICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKXsgc2hvd0xvYWRpbmdTY3JlZW4oZmFsc2UpOyB9LCAzMDApOwogIH0KICAKfQoKZnVuY3Rpb24gc2hvd0VycihlbG0pIHsKICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZXJyIikuaW5uZXJIVE1MID0gZWxtOwp9" - webUI["html/js/files.js"] = "ZnVuY3Rpb24gb3BlbkZpbGVzKGVsbSwgZmlsZVR5cGUpIHsKICAvL2RvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzZXR0aW5ncyIpLmlubmVySFRNTCA9ICJUZXN0IjsKICAKICBjb2x1bW5Ub1NvcnQgPSAwOyAKICB2YXIgbmV3RGl2ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNldHRpbmdzIik7CiAgCiAgdmFyIG5ld0VudHJ5ID0gbmV3IE9iamVjdCgpOwogIG5ld0VudHJ5WyJfZWxlbWVudCJdICA9ICJIUiI7CiAgbmV3RGl2LmFwcGVuZENoaWxkKGNyZWF0ZUVsZW1lbnQobmV3RW50cnkpKTsKCiAgdmFyIG5ld0VudHJ5ID0gbmV3IE9iamVjdCgpOwogIG5ld0VudHJ5WyJfZWxlbWVudCJdICA9ICJJTlBVVCI7CiAgbmV3RW50cnlbInR5cGUiXSA9ICJidXR0b24iOwogIG5ld0VudHJ5WyJjbGFzcyJdID0gImJ1dHRvbiI7CiAgbmV3RW50cnlbInZhbHVlIl0gPSAiTmV3IjsKICBuZXdFbnRyeVsib25jbGljayJdID0gJ2ZpbGVEZXRhaWwoIi0iLCAiJyArIGZpbGVUeXBlICsgJyIpJzsKICBuZXdEaXYuYXBwZW5kQ2hpbGQoY3JlYXRlRWxlbWVudChuZXdFbnRyeSkpOwoKICB2YXIgbmV3RW50cnkgPSBuZXcgT2JqZWN0KCk7CiAgbmV3RW50cnlbIl9lbGVtZW50Il0gID0gIklOUFVUIjsKICBuZXdFbnRyeVsidHlwZSJdID0gImJ1dHRvbiI7CiAgbmV3RW50cnlbImNsYXNzIl0gPSAiYnV0dG9uIjsKICBuZXdFbnRyeVsidmFsdWUiXSA9ICJVcGRhdGUiOwogIG5ld0VudHJ5WyJvbmNsaWNrIl0gPSAiZmlsZURldGFpbCgwKSI7CiAgLy9uZXdEaXYuYXBwZW5kQ2hpbGQoY3JlYXRlRWxlbWVudChuZXdFbnRyeSkpOwoKICB2YXIgZGl2ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNldHRpbmdzIik7CgogICAvLyBCdWlsZCB0YWJsZQogIHZhciBuZXdUYWJsZSA9IG5ldyBPYmplY3QoKTsKICBuZXdUYWJsZVsiX2VsZW1lbnQiXSAgPSAiVEFCTEUiOwogIG5ld1RhYmxlWyJpZCJdICAgICAgICA9ICJpZF9tYXBwaW5nIjsKICBuZXdUYWJsZVsiY2xhc3MiXSAgICAgPSAidGFibGUtbWFwcGluZyI7CiAgZGl2LmFwcGVuZENoaWxkKGNyZWF0ZUVsZW1lbnQobmV3VGFibGUpKTsKCiAgc2V0VGltZW91dChmdW5jdGlvbigpeyAKICAgIGNyZWF0ZUZpbGVzVGFibGUoZmlsZVR5cGUpOyAKICB9LCAxMCk7Cgp9CgpmdW5jdGlvbiBjcmVhdGVGaWxlc1RhYmxlKGZpbGVUeXBlKSB7CiAgdmFyIHRhYmxlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImlkX21hcHBpbmciKTsKICB2YXIgYXZhaWxhYmxlRmlsZVR5cGVzID0gbmV3IEFycmF5KCk7CiAgCiAgdGFibGUuaW5uZXJIVE1MID0gIiI7CiAgdmFyIG5ld1RSID0gbmV3IE9iamVjdCgpOwogIG5ld1RSWyJfZWxlbWVudCJdID0gIlRSIjsKICBuZXdUUlsiY2xhc3MiXSAgICA9ICJ0YWJsZS1tYXBwaW5nLWhlYWRlciI7CiAgdGFibGUuYXBwZW5kQ2hpbGQoY3JlYXRlRWxlbWVudChuZXdUUikpOwoKICB2YXIgdHIgPSB0YWJsZS5sYXN0Q2hpbGQ7CgogIHN3aXRjaChmaWxlVHlwZSkgewogICAgY2FzZSAieG1sdHYiOiAKICAgICAgYXZhaWxhYmxlRmlsZVR5cGVzID0gbmV3IEFycmF5KCJ4bWx0diIpOyAKICAgICAgdmFyIHRySGVhZGxpbmVzID0gbmV3IEFycmF5KCJHdWlkZSIsICJMYXN0IFVwZGF0ZSIsICJBdmFpbGFiaWxpdHkgJSIsICJDaGFubmVscyIsICJQcm9ncmFtcyIpCiAgICAgIHZhciBjb21wYXRpYmlsaXR5S2V5cyA9IG5ldyBBcnJheSgieG1sdHYuY2hhbm5lbHMiLCAieG1sdHYucHJvZ3JhbXMiKQogICAgICBicmVhazsKCiAgICBjYXNlICJtM3UiOgogICAgICBhdmFpbGFibGVGaWxlVHlwZXMgPSBuZXcgQXJyYXkoIm0zdSIsICJoZGhyIik7IAogICAgICB2YXIgdHJIZWFkbGluZXMgPSBuZXcgQXJyYXkoIlBsYXlsaXN0IiwgIkxhc3QgVXBkYXRlIiwgIkF2YWlsYWJpbGl0eSAlIiwgIlR5cGUiLCAiU3RyZWFtcyIsICJncm91cC10aXRsZSAlIiwgInR2Zy1pZCAlIiwgIlVuaXF1ZSBJRCAlIik7CiAgICAgIHZhciBjb21wYXRpYmlsaXR5S2V5cyA9IG5ldyBBcnJheSgic3RyZWFtcyIsICJncm91cC50aXRsZSIsICJ0dmcuaWQiLCAic3RyZWFtLmlkIik7CiAgICAgIGJyZWFrOwogIH0KCiAgZm9yICh2YXIgaSA9IDA7IGkgPCB0ckhlYWRsaW5lcy5sZW5ndGg7IGkrKykgewogICAgdmFyIG5ld1REID0gbmV3IE9iamVjdCgpOwogICAgbmV3VERbIl9lbGVtZW50Il0gPSAiVEQiOwogICAgbmV3VERbIl90ZXh0Il0gICAgPSB0ckhlYWRsaW5lc1tpXTsKICAgIHRyLmFwcGVuZENoaWxkKGNyZWF0ZUVsZW1lbnQobmV3VEQpKTsKICB9CiAgCiAgZm9yICh2YXIgaSA9IDA7IGkgPCBhdmFpbGFibGVGaWxlVHlwZXMubGVuZ3RoOyBpKyspIHsKICAgIAogICAgdmFyIGZpbGVUeXBlID0gYXZhaWxhYmxlRmlsZVR5cGVzW2ldCgogICAgdmFyIGRhdGEgPSBjb25maWdbImZpbGVzIl1bZmlsZVR5cGVdOwogICAgCiAgICB2YXIgYWxsRmlsZXMgPSBnZXRPYmpLZXlzKGRhdGEpCiAgCiAgICBmb3IgKHZhciBmID0gMDsgZiA8IGFsbEZpbGVzLmxlbmd0aDsgZisrKSB7CiAgICAgIHZhciBlbG0gICAgICAgICAgID0gZGF0YVthbGxGaWxlc1tmXV07CiAgICAgIHZhciB0YWJsZSAgICAgICAgID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImlkX21hcHBpbmciKTsKICAgICAgdmFyIGZpbGVJRCAgICAgICAgPSBlbG1bImlkLnByb3ZpZGVyIl07CiAgICAgIHZhciBuYW1lICAgICAgICAgID0gZWxtWyJuYW1lIl07CiAgICAgIHZhciBsYXN0VXBkYXRlICAgID0gZWxtWyJsYXN0LnVwZGF0ZSJdOwogICAgICB2YXIgYXZhaWxhYmlsaXR5ICA9IGVsbVsicHJvdmlkZXIuYXZhaWxhYmlsaXR5Il07CiAgICAgIHZhciB0eXBlICAgICAgICAgID0gZWxtWyJ0eXBlIl0udG9VcHBlckNhc2UoKTsKICAgICAgdmFyIGNvbXBhdGliaWxpdHkgPSBlbG1bImNvbXBhdGliaWxpdHkiXTsKCiAgICAgIC8vIENyZWF0ZSBUUgogICAgICB2YXIgbmV3VFIgPSBuZXcgT2JqZWN0KCk7CiAgICAgIG5ld1RSWyJfZWxlbWVudCJdICAgICAgID0gIlRSIjsKICAgICAgbmV3VFJbImNsYXNzIl0gICAgICAgICAgPSAiIjsKICAgICAgbmV3VFJbImlkIl0gICAgICAgICAgICAgPSBmaWxlSUQ7CiAgICAgIG5ld1RSWyJvbmNsaWNrIl0gICAgICAgID0gJ2phdmFzY3JpcHQ6IGZpbGVEZXRhaWwoIicgKyBmaWxlSUQgKyAnIiwiJyArIGZpbGVUeXBlICsgJyIpOyc7CiAgICAgIHRhYmxlLmFwcGVuZENoaWxkKGNyZWF0ZUVsZW1lbnQobmV3VFIpKTsKCiAgICAgIHZhciB0ciA9IHRhYmxlLmxhc3RDaGlsZDsKCiAgICAgIC8vIENyZWF0ZSBmaWxlIG5hbWUgVEQKICAgICAgdmFyIG5ld1REID0gbmV3IE9iamVjdCgpOwogICAgICBuZXdURFsiX2VsZW1lbnQiXSA9ICJQIjsKICAgICAgbmV3VERbIl90ZXh0Il0gICAgPSBuYW1lOwogICAgICBjcmVhdGVOZXdURChuZXdURCwgdHIpOwoKICAgICAgLy8gQ3JlYXRlIGxhc3QgdXBkYXRlIFRECiAgICAgIHZhciBuZXdURCA9IG5ldyBPYmplY3QoKTsKICAgICAgbmV3VERbIl9lbGVtZW50Il0gPSAiUCI7CiAgICAgIG5ld1REWyJfdGV4dCJdICAgID0gbGFzdFVwZGF0ZTsKICAgICAgY3JlYXRlTmV3VEQobmV3VEQsIHRyKTsKCiAgICAgIC8vIENyZWF0ZSBhdmFpbGFiaWxpdHkgVEQKICAgICAgdmFyIG5ld1REID0gbmV3IE9iamVjdCgpOwogICAgICBuZXdURFsiX2VsZW1lbnQiXSA9ICJQIjsKICAgICAgbmV3VERbIl90ZXh0Il0gICAgPSBhdmFpbGFiaWxpdHk7CiAgICAgIGNyZWF0ZU5ld1REKG5ld1RELCB0cik7CgogICAgICBpZiAoZmlsZVR5cGUgPT0gIm0zdSIgfHwgZmlsZVR5cGUgPT0gImhkaHIiKSB7CgogICAgICAgIC8vIENyZWF0ZSBUeXBlIFRECiAgICAgICAgdmFyIG5ld1REID0gbmV3IE9iamVjdCgpOwogICAgICAgIG5ld1REWyJfZWxlbWVudCJdID0gIlAiOwogICAgICAgIG5ld1REWyJfdGV4dCJdICAgID0gdHlwZTsKICAgICAgICBjcmVhdGVOZXdURChuZXdURCwgdHIpOwogIAogICAgICB9CiAgICAgIAogICAgICAvLyBDcmVhdGUgYWxsIGNvbXBhdGliaWxpdHkgVERzCgogICAgICBmb3IgKHZhciBqID0gMDsgaiA8IGNvbXBhdGliaWxpdHlLZXlzLmxlbmd0aDsgaisrKSB7CiAgICAgICAgdmFyIG5ld1REID0gbmV3IE9iamVjdCgpOwogICAgICAgIG5ld1REWyJfZWxlbWVudCJdID0gIlAiOwogICAgICAgIG5ld1REWyJfdGV4dCJdICAgID0gY29tcGF0aWJpbGl0eVtjb21wYXRpYmlsaXR5S2V5c1tqXV07CiAgICAgICAgY3JlYXRlTmV3VEQobmV3VEQsIHRyKTsKICAgICAgfQoKICAgIH0KCiAgfQogIAogIAogIHNvcnRUYWJsZSgwKQoKICAvLyB1c2FnZSBJbmZvICAKICB2YXIgZGl2ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNldHRpbmdzIik7CiAgc3dpdGNoKG1lbnVbYWN0aXZlTWVudS5pZF0uaGFzT3duUHJvcGVydHkoIl91c2FnZSIpKSB7CiAgICBjYXNlIHRydWU6IAogICAgICB2YXIgdXNhZ2VJdGVtID0gbmV3IE9iamVjdCgpOwogICAgICB1c2FnZUl0ZW1bIl9lbGVtZW50Il0gPSAiUFJFIgogICAgICB1c2FnZUl0ZW1bIl90ZXh0Il0gICAgPSBtZW51W2FjdGl2ZU1lbnUuaWRdWyJfdXNhZ2UiXTsKCiAgICAgIHZhciBuZXdIUiA9IG5ldyBPYmplY3QoKTsKICAgICAgbmV3SFJbIl9lbGVtZW50Il0gPSAiSFIiCiAgICAgIGRpdi5hcHBlbmRDaGlsZChjcmVhdGVFbGVtZW50KG5ld0hSKSk7CiAgICAgIGRpdi5hcHBlbmRDaGlsZChjcmVhdGVFbGVtZW50KHVzYWdlSXRlbSkpOwogICAgICBicmVhazsKICB9CgogIGNhbGN1bGF0ZVdyYXBwZXJIZWlnaHQoKTsKICByZXR1cm47Cn0KCgpmdW5jdGlvbiBmaWxlRGV0YWlsKGZpbGVJRCwgZmlsZVR5cGUpIHsKCiAgb3B0aW9uc1RleHQgID0gbmV3IEFycmF5KCJNM1UiLCAiSERIb21lUnVuIC0gW0V4cGVyaW1lbnRhbF0iKQogIG9wdGlvbnNWYWx1ZSA9IG5ldyBBcnJheSgibTN1IiwgImhkaHIiKQoKICBzd2l0Y2ggKGZpbGVUeXBlKSB7CiAgICAKICAgIGNhc2UgIm0zdSI6IAogICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibmFtZSIpLnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAiUGxheWxpc3QgbmFtZSIpOyAKICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImRlc2NyaXB0aW9uIikuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJEZXNjcmlwdGlvbiBvZiB0aGlzIHBsYXlsaXN0Iik7IAogICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZmlsZS1kZXRhaWwtaGVhZGxpbmUiKS5pbm5lckhUTUwgPSAiTTNVIFBsYXlsaXN0IjsgCiAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJmaWxlLXBhdGgiKS5pbm5lckhUTUwgPSAiTTNVIEZpbGU6IjsgCiAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJmaWxlLnNvdXJjZSIpLnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAiTG9jYWwgb3IgcmVtb3RlIik7CiAgICAgIGJyZWFrOwoKICAgIGNhc2UgImhkaHIiOiAKICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm5hbWUiKS5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgIkhESG9tZVJ1biBuYW1lIik7IAogICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZGVzY3JpcHRpb24iKS5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgIkRlc2NyaXB0aW9uIG9mIHRoaXMgSERIb21lUnVuIHR1bmVyIik7IAogICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZmlsZS1kZXRhaWwtaGVhZGxpbmUiKS5pbm5lckhUTUwgPSAiSERIb21lUnVuIjsgCiAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJmaWxlLXBhdGgiKS5pbm5lckhUTUwgPSAiSERIb21lUnVuIElQOiI7IAogICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZmlsZS5zb3VyY2UiKS5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgIklQIGFkZHJlc3MgYW5kIHBvcnQgb2YgdGhlIHR1bmVyICgxOTIuMTY4LjEuMTA6NTAwNCkiKTsKICAgICAgYnJlYWs7CiAgICAKICAgIGNhc2UgInhtbHR2IjogCiAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJuYW1lIikuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJYTUxUViBuYW1lIik7IAogICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZGVzY3JpcHRpb24iKS5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgIkRlc2NyaXB0aW9uIG9mIHRoaXMgWE1MVFYgZmlsZSIpOyAKICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImZpbGUtZGV0YWlsLWhlYWRsaW5lIikuaW5uZXJIVE1MID0gIlhNTFRWIEZpbGUiOyAKICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImZpbGUtcGF0aCIpLmlubmVySFRNTCA9ICJYTUxUViBGaWxlOiI7CiAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJmaWxlLnNvdXJjZSIpLnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAiTG9jYWwgb3IgcmVtb3RlIik7CgogICAgICBvcHRpb25zVGV4dCAgPSBuZXcgQXJyYXkoIlhNTFRWIikKICAgICAgb3B0aW9uc1ZhbHVlID0gbmV3IEFycmF5KCJ4bWx0diIpCiAgICAgIGJyZWFrOwogIH0KCiAgbW9kaWZ5T3B0aW9uKCJ0eXBlIiwgb3B0aW9uc1RleHQsIG9wdGlvbnNWYWx1ZSkKICAKICBzaG93UG9wVXBFbGVtZW50KCdmaWxlLWRldGFpbCcpOwoKICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic2F2ZUZpbGVEZXRhaWwiKS5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogc2F2ZUZpbGVEZXRhaWwoIicgKyBmaWxlSUQgKyAnIiwiJyArIGZpbGVUeXBlICsgJyIsIGZhbHNlKScpOwogIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ1cGRhdGVGaWxlRGV0YWlsIikuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IHVwZGF0ZUZpbGUoIicgKyBmaWxlSUQgKyAnIiwiJyArIGZpbGVUeXBlICsgJyIsIGZhbHNlKScpOwogIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJkZWxldGVGaWxlRGV0YWlsIikuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IHNhdmVGaWxlRGV0YWlsKCInICsgZmlsZUlEICsgJyIsIicgKyBmaWxlVHlwZSArICciLCB0cnVlKScpOwoKICB2YXIgZGF0YSA9IG5ldyBPYmplY3QoKTsKCiAgc3dpdGNoKGZpbGVJRCkgewoKICAgIGNhc2UgIi0iOiAvLyBOZXcgZmlsZQogICAgICBkYXRhWyJuYW1lIl0gICAgICAgID0gIiI7CiAgICAgIGRhdGFbImRlc2NyaXB0aW9uIl0gPSAiIjsKICAgICAgZGF0YVsiZmlsZS5zb3VyY2UiXSA9ICIiOwogICAgICBkYXRhWyJ0eXBlIl0gPSBmaWxlVHlwZTsKICAgICAgCiAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJkZWxldGVGaWxlRGV0YWlsIikuY2xhc3NOYW1lID0gImRlbGV0ZSI7CiAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0eXBlIikuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJjaGFuZ2VGaWxlVHlwZSh0aGlzKTsiKQogICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidHlwZSIpLnNldEF0dHJpYnV0ZSgiZGF0YS1pZCIsIGZpbGVJRCkKICAgICAgCiAgICAgIHNob3dFbGVtZW50KCJkZWxldGVGaWxlRGV0YWlsIiwgZmFsc2UpOwogICAgICBzaG93RWxlbWVudCgidXBkYXRlRmlsZURldGFpbCIsIGZhbHNlKTsKICAgICAgCiAgICAgIGlmIChmaWxlVHlwZSA9PSAieG1sdHYiKSB7CiAgICAgICAgc2hvd0VsZW1lbnQoInR5cGUiLCBmYWxzZSk7CiAgICAgICAgc2hvd0VsZW1lbnQoImZpbGUtdHlwZSIsIGZhbHNlKTsKICAgICAgfSBlbHNlIHsKICAgICAgICBzaG93RWxlbWVudCgidHlwZSIsIHRydWUpOwogICAgICAgIHNob3dFbGVtZW50KCJmaWxlLXR5cGUiLCB0cnVlKTsKICAgICAgfQogICAgICAKICAgICAgYnJlYWs7CgogICAgZGVmYXVsdDogCiAgICAgIGRhdGEgPSBjb25maWdbImZpbGVzIl1bZmlsZVR5cGVdW2ZpbGVJRF07CiAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJkZWxldGVGaWxlRGV0YWlsIikuY2xhc3NOYW1lID0gImRlbGV0ZSI7CiAgICAgIAogICAgICBzaG93RWxlbWVudCgidXBkYXRlRmlsZURldGFpbCIsIHRydWUpOwogICAgICBzaG93RWxlbWVudCgidHlwZSIsIGZhbHNlKTsKICAgICAgc2hvd0VsZW1lbnQoImZpbGUtdHlwZSIsIGZhbHNlKTsKICAgICAgCiAgICAgIGJyZWFrOwoKICB9CgogIHZhciBrZXlzID0gZ2V0T2JqS2V5cyhkYXRhKTsKICAKICBmb3IgKHZhciBpID0gMDsgaSA8IGtleXMubGVuZ3RoOyBpKyspIHsKCiAgICBpZihkb2N1bWVudC5nZXRFbGVtZW50QnlJZChrZXlzW2ldKSl7CiAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGtleXNbaV0pLnZhbHVlID0gZGF0YVtrZXlzW2ldXTsKICAgIH0gCgoKICB9Cgp9CgpmdW5jdGlvbiBjaGFuZ2VGaWxlVHlwZShlbG0pIHsKCiAgdmFyIGZpbGVJRCA9IGVsbS5nZXRBdHRyaWJ1dGUoImRhdGEtaWQiKTsKICB2YXIgZmlsZVR5cGUgPSBlbG0ub3B0aW9uc1tlbG0uc2VsZWN0ZWRJbmRleF0udmFsdWU7CiAgCiAgZmlsZURldGFpbChmaWxlSUQsIGZpbGVUeXBlKQoKfQoKCmZ1bmN0aW9uIHNhdmVGaWxlRGV0YWlsKGZpbGVJRCwgZmlsZVR5cGUsIGRlbGV0ZUZpbGUpIHsKCiAgaWYgKGZpbGVJRCA9PSB1bmRlZmluZWQpIHsKICAgIGFsZXJ0KCJJRCBpcyBtaXNzaW5nISEhIik7CiAgICByZXR1cm4gCiAgfQoKICB2YXIgaW5wdXRzICAgICAgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZmlsZS1kZXRhaWwiKS5nZXRFbGVtZW50c0J5VGFnTmFtZSgiSU5QVVQiKTsKICB2YXIgc2VsZWN0cyAgICAgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZmlsZS1kZXRhaWwiKS5nZXRFbGVtZW50c0J5VGFnTmFtZSgiU0VMRUNUIik7CiAgdmFyIG5ld0ZpbGVEYXRhID0gbmV3IE9iamVjdCgpOwogIHZhciBkYXRhICAgICAgICA9IG5ldyBPYmplY3QoKTsKCiAgZm9yICh2YXIgaSA9IDA7IGkgPCBpbnB1dHMubGVuZ3RoOyBpKyspIHsKICAgIHN3aXRjaChpbnB1dHNbaV0udHlwZSkgewogICAgICBjYXNlICJ0ZXh0IjogbmV3RmlsZURhdGFbaW5wdXRzW2ldLm5hbWVdID0gaW5wdXRzW2ldLnZhbHVlOyBicmVhazsKICAgIH0KICB9CgogIGZvciAodmFyIGkgPSAwOyBpIDwgc2VsZWN0cy5sZW5ndGg7IGkrKykgewogICAgbmV3RmlsZURhdGFbc2VsZWN0c1tpXS5pZF0gPSBzZWxlY3RzW2ldLm9wdGlvbnNbc2VsZWN0c1tpXS5zZWxlY3RlZEluZGV4XS52YWx1ZTsKICB9CgogIGlmIChkZWxldGVGaWxlID09IHRydWUpIHsKICAgIHN3aXRjaChmaWxlVHlwZSkgewogICAgICBjYXNlICJtM3UiOiAgIHZhciBhbGVydFRleHQgPSAiRGVsZXRlIHRoaXMgcGxheWxpc3Q/IjsgYnJlYWs7CiAgICAgIGNhc2UgImhkaHIiOiB2YXIgYWxlcnRUZXh0ID0gIkRlbGV0ZSB0aGlzIEhESG9tZVJ1biB0dW5lcj8iOyBicmVhazsKICAgICAgY2FzZSAieG1sdHYiOiB2YXIgYWxlcnRUZXh0ID0gIkRlbGV0ZSB0aGlzIFhNTFRWIGZpbGU/IjsgYnJlYWs7CiAgICB9CgogICAgaWYgKGNvbmZpcm0oYWxlcnRUZXh0KSkgewogICAgICBuZXdGaWxlRGF0YVsiZGVsZXRlIl0gPSB0cnVlCiAgICAgIGRhdGEgPSBidWlsZEZpbGVzT2JqKGZpbGVUeXBlLCBmaWxlSUQsIG5ld0ZpbGVEYXRhKTsKICAgICAgY29uc29sZS5sb2coZGF0YSk7CiAgICAgIAogICAgfSBlbHNlIHsKICAgICAgc2hvd0VsZW1lbnQoInBvcHVwIiwgZmFsc2UpOwogICAgICByZXR1cm4KICAgIAogICAgfQoKICB9IGVsc2UgewogIAogICAgc3dpdGNoKGNvbmZpZ1siZmlsZXMiXVtmaWxlVHlwZV0uaGFzT3duUHJvcGVydHkoZmlsZUlEKSkgewoKICAgICAgY2FzZSB0cnVlOiAKICAgICAgICBkYXRhID0gY29uZmlnWyJmaWxlcyJdW2ZpbGVUeXBlXVtmaWxlSURdOyAKICAgICAgICBpZiAoZGF0YVsiZmlsZS5zb3VyY2UiXSAhPSBuZXdGaWxlRGF0YVsiZmlsZS5zb3VyY2UiXSkgewogICAgICAgICAgZGF0YVsidXBkYXRlIl0gPSB0cnVlCiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgIGRhdGFbInVwZGF0ZVBsYXlsaXN0TmFtZSJdID0gdHJ1ZTsKICAgICAgICB9CiAgICAgICAgYnJlYWs7CiAgICAgIAogICAgICBjYXNlIGZhbHNlOiAKICAgICAgICBuZXdGaWxlRGF0YVsibmV3Il0gPSB0cnVlOwogICAgICAgIGRhdGEgPSBidWlsZEZpbGVzT2JqKGZpbGVUeXBlLCBmaWxlSUQsIG5ld0ZpbGVEYXRhKTsKICAgICAgICBicmVhawoKICAgIH0KICAKICB9ICAKICAKICBzd2l0Y2goZmlsZVR5cGUpIHsKCiAgICBjYXNlICJtM3UiOiAgIGRhdGFbImNtZCJdID0gInNhdmVGaWxlc00zVSI7IGJyZWFrOwogICAgY2FzZSAiaGRociI6ICBkYXRhWyJjbWQiXSA9ICJzYXZlRmlsZXNIREhSIjsgYnJlYWs7CiAgICBjYXNlICJ4bWx0diI6IGRhdGFbImNtZCJdID0gInNhdmVGaWxlc1hNTFRWIjsgYnJlYWs7CgogIH0KICAvL2NvbnNvbGUubG9nKGRhdGEpOwogIHhUZVZlKGRhdGEpOwogIHJldHVybgp9CgpmdW5jdGlvbiB1cGRhdGVGaWxlKGZpbGVJRCwgZmlsZVR5cGUsIGFsbEZpbGVzKSB7CiAgCiAgc3dpdGNoKGNvbmZpZ1siZmlsZXMiXVtmaWxlVHlwZV0uaGFzT3duUHJvcGVydHkoZmlsZUlEKSkgewoKICAgIGNhc2UgdHJ1ZTogCiAgICAKICAgICAgdmFyIGRhdGEgPSBuZXcgT2JqZWN0KCk7CiAgICAgIHZhciBkYXRhID0gYnVpbGRGaWxlc09iaihmaWxlVHlwZSwgZmlsZUlELCBjb25maWdbImZpbGVzIl1bZmlsZVR5cGVdW2ZpbGVJRF0pCiAgICAgIGRhdGFbIm5ldyJdID0gdHJ1ZQoKICAgICAgc3dpdGNoKGZpbGVUeXBlKSB7CgogICAgICAgIGNhc2UgIm0zdSI6ICAgZGF0YVsiY21kIl0gPSAidXBkYXRlRmlsZU0zVSI7IGJyZWFrOwogICAgICAgIGNhc2UgImhkaHIiOiAgZGF0YVsiY21kIl0gPSAidXBkYXRlRmlsZUhESFIiOyBicmVhazsKICAgICAgICBjYXNlICJ4bWx0diI6IGRhdGFbImNtZCJdID0gInVwZGF0ZUZpbGVYTUxUViI7IGJyZWFrOwoKICAgICAgfQogICAgICAKICAgICAgeFRlVmUoZGF0YSk7CiAgICAgIAogICAgICBicmVhazsKICB9Cgp9CgpmdW5jdGlvbiBidWlsZEZpbGVzT2JqKGZpbGVUeXBlLCBmaWxlSUQsIG9iaikgewoKICB2YXIgZGF0YSA9IG5ldyBPYmplY3QoKTsKICBkYXRhWyJmaWxlcyJdID0gbmV3IE9iamVjdCgpOwogIGRhdGFbImZpbGVzIl1bZmlsZVR5cGVdID0gbmV3IE9iamVjdCgpOwogIGRhdGFbImZpbGVzIl1bZmlsZVR5cGVdW2ZpbGVJRF0gPSBvYmoKICByZXR1cm4gZGF0YQoKfQ==" - webUI["html/js/mapping-editor.js"] = "dmFyIG1hcHBpbmdFcnJvciAgPSBmYWxzZTsKdmFyIGJ1bGsgICAgICAgICAgPSBmYWxzZTsKdmFyIGJ1bGtFZGl0QWxsICAgPSBmYWxzZTsgCnZhciBzZWxlY3RPYmogICAgID0gbmV3IE9iamVjdCgpOwp2YXIgc2VhcmNoT2JqICAgICA9IG5ldyBPYmplY3QoKTsKCnZhciBidWxrSURzICAgICAgID0gbmV3IEFycmF5KCk7CnZhciBidWxrQ2hhbmdlT2JqID0gbmV3IE9iamVjdCgpOwoKZnVuY3Rpb24gY2hlY2tVbmRvKGtleSwgZWxtKSB7CiAgdmFyIHRtcCA9IG5ldyBPYmplY3QoKTsKICB0bXAgPSBlbG0KICBjb25zb2xlLmxvZygiLS0iKTsKICBpZiAodW5kby5oYXNPd25Qcm9wZXJ0eSgiZXBnTWFwcGluZyIpKSB7CiAgICB4RVBHWyJlcGdNYXBwaW5nIl0gPSBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KHVuZG9bImVwZ01hcHBpbmciXSkpOzsKICB9IGVsc2UgewogICAgdW5kb1siZXBnTWFwcGluZyJdID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeShlbG0pKTsKICB9Cn0KCi8vdmFyIHBsZXhDYXRlZ29yaWVzID0gbmV3IEFycmF5KCItIiwgIkFjdGlvbiBzcG9ydHMiLCAiQWN0aW9uIiwgIkFkdWx0cyBvbmx5IiwgIkFkdmVudHVyZSIsICJBZXJvYmljcyIsICJBbmltYWxzIiwgIkFuaW1hdGVkIiwgIkFuaW1lIiwgIkFudGhvbG9neSIsICJBcmNoZXJ5IiwgIkFydCIsICJBcnRzL2NyYWZ0cyIsICJBdWN0aW9uIiwgIkF1dG8gcmFjaW5nIiwgIkF1dG8iLCAiQXZpYXRpb24iLCAiQXdhcmRzIiwgIkJhbGxldCIsICJCYXNlYmFsbCIsICJCYXNrZXRiYWxsIiwgIkJpY3ljbGUgcmFjaW5nIiwgIkJpY3ljbGUiLCAiQmlsbGlhcmRzIiwgIkJpb2dyYXBoeSIsICJCb2F0IHJhY2luZyIsICJCb2F0IiwgIkJvd2xpbmciLCAiQm94aW5nIiwgIkJ1cy4vZmluYW5jaWFsIiwgIkNoaWxkcmVuIiwgIkNvbGxlY3RpYmxlcyIsICJDb21lZHkgZHJhbWEiLCAiQ29tZWR5IiwgIkNvbW11bml0eSIsICJDb21wdXRlcnMiLCAiQ29uc3VtZXIiLCAiQ29va2luZyIsICJDcmltZSBkcmFtYSIsICJDcmltZSIsICJEYW5jZSIsICJEYXJrIGNvbWVkeSIsICJEZWJhdGUiLCAiRGl2aW5nIiwgIkRvY3VkcmFtYSIsICJEb2N1bWVudGFyeSIsICJEcmFtYSIsICJFZHVjYXRpb25hbCIsICJFbnRlcnRhaW5tZW50IiwgIkVudmlyb25tZW50IiwgIkVxdWVzdHJpYW4iLCAiRXJvdGljIiwgIkV2ZW50IiwgIkZhbnRhc3kiLCAiRmFzaGlvbiIsICJGZWF0dXJlIEZpbG0iLCAiRmlzaGluZyIsICJGb290YmFsbCIsICJHYW1lIHNob3ciLCAiR2FtaW5nIiwgIkdheS9sZXNiaWFuIiwgIkdvbGYiLCAiSGFuZGJhbGwiLCAiSGVhbHRoIiwgIkhpc3RvcmljYWwgZHJhbWEiLCAiSGlzdG9yeSIsICJIb2NrZXkiLCAiSG9saWRheSIsICJIb21lIGltcHJvdmVtZW50IiwgIkhvcnJvciIsICJIb3JzZSIsICJIb3VzZS9nYXJkZW4iLCAiSG93LXRvIiwgIkludGVydmlldyIsICJJbnRsIHNvY2NlciIsICJMYXciLCAiTWFydGlhbCBhcnRzIiwgIk1lZGljYWwiLCAiTWlsaXRhcnkiLCAiTWluaXNlcmllcyIsICJNaXhlZCBtYXJ0aWFsIGFydHMiLCAiTW90b3JjeWNsZSByYWNpbmciLCAiTW90b3JjeWNsZSIsICJNb3RvcnNwb3J0cyIsICJNb3VudGFpbiBiaWtpbmciLCAiTXVzaWMiLCAiTXVzaWNhbCBjb21lZHkiLCAiTXVzaWNhbCIsICJNeXN0ZXJ5IiwgIk5hdHVyZSIsICJOZXdzIiwgIk5ld3NtYWdhemluZSIsICJPbHltcGljcyIsICJPcGVyYSIsICJPdXRkb29ycyIsICJQYXJhZGUiLCAiUGFyYW5vcm1hbCIsICJQYXJlbnRpbmciLCAiUGVyZm9ybWluZyBhcnRzIiwgIlBsYXlvZmYgc3BvcnRzIiwgIlBva2VyIiwgIlBvbGl0aWNzIiwgIlBybyB3cmVzdGxpbmciLCAiUHVibGljIGFmZmFpcnMiLCAiUmVhbGl0eSIsICJSZWxpZ2lvdXMiLCAiUm9kZW8iLCAiUm9sbGVyIGRlcmJ5IiwgIlJvbWFuY2UiLCAiUm9tYW50aWMgY29tZWR5IiwgIlJ1Z2J5IiwgIlJ1bm5pbmciLCAiU2FpbGluZyIsICJTY2llbmNlIGZpY3Rpb24iLCAiU2NpZW5jZSIsICJTZWxmIGltcHJvdmVtZW50IiwgIlNlcmllcyIsICJTaG9vdGluZyIsICJTaG9wcGluZyIsICJTaG9ydCBGaWxtIiwgIlNpdGNvbSIsICJTa2lpbmciLCAiU25vb2tlciIsICJTb2FwIiwgIlNvY2NlciIsICJTcGVjaWFsIiwgIlNwb3J0cyIsICJzcG9ydHMiLCAiU3BvcnRzIGV2ZW50IiwgIlNwb3J0cyBub24tZXZlbnQiLCAiU3BvcnRzIHRhbGsiLCAiU3RhbmR1cCIsICJTdXJmaW5nIiwgIlN1c3BlbnNlIiwgIlRWIE1vdmllIiwgIlRhbGsiLCAiVGVjaG5vbG9neSIsICJUZW5uaXMiLCAiVGhlYXRlciIsICJUaHJpbGxlciIsICJUcmFjay9maWVsZCIsICJUcmF2ZWwiLCAiVHJpYXRobG9uIiwgIlZhcmlldHkiLCAiVm9sbGV5YmFsbCIsICJXYXIiLCAiV2F0ZXJzcG9ydHMiLCAiV2VhdGhlciIsICJXZXN0ZXJuIiwgIldyZXN0bGluZyIsICJZYWNodCByYWNpbmciLCAibW92aWUiLCAic2VyaWVzIiwgInNwb3J0cyIsICJ0dnNob3ciKTsKdmFyIHBsZXhDYXRlZ29yaWVzVmFsdWVzID0gbmV3IEFycmF5KCItIiwgIktpZHMiLCAiTmV3cyIsICJNb3ZpZSIsICJTZXJpZXMiLCAiU3BvcnRzIikKdmFyIHBsZXhDYXRlZ29yaWVzT3B0aW9uID0gbmV3IEFycmF5KCItIiwgIktpZHMgKEVtYnkgb25seSkiLCAiTmV3cyIsICJNb3ZpZSIsICJTZXJpZXMiLCAiU3BvcnRzIikKCgpmdW5jdGlvbiBvcGVuTWFwcGluZ0VkaXRvcihlbG0pIHsKICB2YXIgY29sdW1uVG9Tb3J0ICA9IDEKCiAgY2hlY2tVbmRvKCJlcGdNYXBwaW5nIiwgeEVQR1siZXBnTWFwcGluZyJdKQoKICB2YXIgbmV3RGl2ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNldHRpbmdzIik7CiAgCiAgdmFyIG5ld0VudHJ5ID0gbmV3IE9iamVjdCgpOwogIG5ld0VudHJ5WyJfZWxlbWVudCJdICA9ICJIUiI7CiAgbmV3RGl2LmFwcGVuZENoaWxkKGNyZWF0ZUVsZW1lbnQobmV3RW50cnkpKTsKCiAgdmFyIG5ld0VudHJ5ID0gbmV3IE9iamVjdCgpOwogIG5ld0VudHJ5WyJfZWxlbWVudCJdICAgID0gIklOUFVUIjsKICBuZXdFbnRyeVsidHlwZSJdICAgICAgICA9ICJidXR0b24iOwogIG5ld0VudHJ5WyJjbGFzcyJdICAgICAgID0gImJ1dHRvbiI7CiAgbmV3RW50cnlbInZhbHVlIl0gICAgICAgPSAiU2F2ZSI7CiAgbmV3RW50cnlbIm9uY2xpY2siXSAgICAgPSAic2F2ZVhFUEcoKSI7CiAgbmV3RGl2LmFwcGVuZENoaWxkKGNyZWF0ZUVsZW1lbnQobmV3RW50cnkpKTsKCiAgdmFyIG5ld0VudHJ5ID0gbmV3IE9iamVjdCgpOwogIG5ld0VudHJ5WyJfZWxlbWVudCJdICAgID0gIklOUFVUIjsKICBuZXdFbnRyeVsidHlwZSJdICAgICAgICA9ICJidXR0b24iOwogIG5ld0VudHJ5WyJjbGFzcyJdICAgICAgID0gImJ1dHRvbiI7CiAgbmV3RW50cnlbInZhbHVlIl0gICAgICAgPSAiQnVsayBFZGl0IjsKICBuZXdFbnRyeVsib25jbGljayJdICAgICA9ICJidWxrRWRpdCgpIjsKICBuZXdEaXYuYXBwZW5kQ2hpbGQoY3JlYXRlRWxlbWVudChuZXdFbnRyeSkpOwoKICB2YXIgbmV3RW50cnkgPSBuZXcgT2JqZWN0KCk7CiAgbmV3RW50cnlbIl9lbGVtZW50Il0gICAgPSAiSU5QVVQiOwogIG5ld0VudHJ5WyJ0eXBlIl0gICAgICAgID0gImJ1dHRvbiI7CiAgbmV3RW50cnlbImNsYXNzIl0gICAgICAgPSAiYnV0dG9uIjsKICBuZXdFbnRyeVsidmFsdWUiXSAgICAgICA9ICJTaG93IFhFUEciOwogIG5ld0VudHJ5WyJvbmNsaWNrIl0gICAgID0gInNob3dYRVBHKCkiOwogIG5ld0Rpdi5hcHBlbmRDaGlsZChjcmVhdGVFbGVtZW50KG5ld0VudHJ5KSk7CgogIHZhciBuZXdFbnRyeSA9IG5ldyBPYmplY3QoKTsKICBuZXdFbnRyeVsiX2VsZW1lbnQiXSAgICA9ICJJTlBVVCI7CiAgbmV3RW50cnlbImNsYXNzIl0gICAgICAgPSAic2VhcmNoIjsKICBuZXdFbnRyeVsiaWQiXSAgICAgICAgICA9ICJzZWFyY2hNYXBwaW5nIjsKICBuZXdFbnRyeVsidHlwZSJdICAgICAgICA9ICJzZWFyY2giOwogIG5ld0VudHJ5WyJwbGFjZWhvbGRlciJdID0gIlNlYXJjaCI7CiAgbmV3RW50cnlbIm9uY2hhbmdlIl0gICAgPSAic2VhcmNoSW5NYXBwaW5nKCkiOwogIG5ld0Rpdi5hcHBlbmRDaGlsZChjcmVhdGVFbGVtZW50KG5ld0VudHJ5KSk7CgogIHZhciBkaXYgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic2V0dGluZ3MiKTsKICAvL3NjcmVlbkxvZygiRHVwbGljYXRlIElEIiwgImVycm9yIiwgdHJ1ZSkKICAKCiAgLy8gQnVpbGQgdGFibGUKCiAgdmFyIG5ld1dyYXBwZXIgPSBuZXcgT2JqZWN0KCk7CiAgbmV3V3JhcHBlclsiX2VsZW1lbnQiXSAgPSAiRElWIjsKICBuZXdXcmFwcGVyWyJpZCJdICAgICAgICA9ICJib3gtd3JhcHBlciI7CiAgZGl2LmFwcGVuZENoaWxkKGNyZWF0ZUVsZW1lbnQobmV3V3JhcHBlcikpOwoKCiAgdmFyIG5ld1RhYmxlID0gbmV3IE9iamVjdCgpOwogIG5ld1RhYmxlWyJfZWxlbWVudCJdICA9ICJUQUJMRSI7CiAgbmV3VGFibGVbImlkIl0gICAgICAgID0gImlkX21hcHBpbmciOwogIG5ld1RhYmxlWyJjbGFzcyJdICAgICA9ICJ0YWJsZS1tYXBwaW5nIjsKICBkaXYubGFzdENoaWxkLmFwcGVuZENoaWxkKGNyZWF0ZUVsZW1lbnQobmV3VGFibGUpKTsKICBzaG93TG9hZGluZ1NjcmVlbih0cnVlKTsKCiAgc2V0VGltZW91dChmdW5jdGlvbigpeyAKICAgIGNyZWF0ZU1hcHBpbmdUYWJsZSgpOyAKICB9LCAxMCk7Cgp9CgpmdW5jdGlvbiBjcmVhdGVTZWFyY2hPYmooKSB7CiAgc2VhcmNoT2JqID0gbmV3IE9iamVjdCgpOwogIHZhciBJRHMgPSBnZXRPYmpLZXlzKHhFUEdbImVwZ01hcHBpbmciXSkKICBmb3IgKHZhciBpID0gSURzLmxlbmd0aCAtIDE7IGkgPj0gMDsgaS0tKSB7CiAgICB2YXIgaXRlbSA9IHhFUEdbImVwZ01hcHBpbmciXVtJRHNbaV1dOwogICAgdmFyIHNlYXJjaElEID0gaXRlbVsieC1lcGciXTsKICAgIHZhciBzZWFyY2hWYWx1ZSA9ICIiOyAKICAgIHNlYXJjaFZhbHVlID0gc2VhcmNoVmFsdWUgKyBpdGVtWyJ4LWNoYW5uZWxJRCJdICsgIiAiOwogICAgc2VhcmNoVmFsdWUgPSBzZWFyY2hWYWx1ZSArIGl0ZW1bIngtY2F0ZWdvcnkiXSArICIgIjsKICAgIHNlYXJjaFZhbHVlID0gc2VhcmNoVmFsdWUgKyBpdGVtWyJ4LW5hbWUiXSArICIgIjsKICAgIHNlYXJjaFZhbHVlID0gc2VhcmNoVmFsdWUgKyBpdGVtWyJ4LWdyb3VwLXRpdGxlIl0gKyAiICI7CiAgICBzZWFyY2hWYWx1ZSA9IHNlYXJjaFZhbHVlICsgaXRlbVsieC14bWx0di1maWxlIl0gKyAiICI7CiAgICBzZWFyY2hWYWx1ZSA9IHNlYXJjaFZhbHVlICsgaXRlbVsiX2ZpbGUubTN1Lm5hbWUiXSArICIgIjsKCiAgICBzd2l0Y2goaXRlbVsieC1hY3RpdmUiXSkgewogICAgICBjYXNlIHRydWU6ICBzZWFyY2hWYWx1ZSA9IHNlYXJjaFZhbHVlICsgIm9ubGluZSI7IGJyZWFrOwogICAgICBjYXNlIGZhbHNlOiBzZWFyY2hWYWx1ZSA9IHNlYXJjaFZhbHVlICsgIm9mZmxpbmUiOyBicmVhazsKICAgIH0KCiAgICBzZWFyY2hPYmpbc2VhcmNoVmFsdWVdID0gc2VhcmNoSUQ7CgogIH0KfQoKCmZ1bmN0aW9uIGNhbGN1bGF0ZVdyYXBwZXJIZWlnaHQoKSB7CgogIGlmIChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYm94LXdyYXBwZXIiKSl7CgogICAgdmFyIGVsbSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJib3gtd3JhcHBlciIpOwogICAgCiAgICB2YXIgZGl2cyA9IG5ldyBBcnJheSgibXlTdHJlYW1zQm94IiwgImNsaWVudEluZm8iLCAic2V0dGluZ3MiKTsKICAgIHZhciBlbGVtZW50c0hlaWdodCA9IDAgLSBlbG0ub2Zmc2V0SGVpZ2h0OwogICAgZm9yICh2YXIgaSA9IDA7IGkgPCBkaXZzLmxlbmd0aDsgaSsrKSB7CiAgICAgIGVsZW1lbnRzSGVpZ2h0ID0gZWxlbWVudHNIZWlnaHQgKyBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChkaXZzW2ldKS5vZmZzZXRIZWlnaHQ7CiAgICB9CgogICAgZWxtLnN0eWxlLmhlaWdodCA9IHdpbmRvdy5pbm5lckhlaWdodCAtIGVsZW1lbnRzSGVpZ2h0ICsgInB4IjsKCiAgfQoKICBpZiAoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm1lbnUtd3JhcHBlciIpKXsKCiAgICB2YXIgZWxtID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm1lbnUtd3JhcHBlciIpOwogICAgCiAgICB2YXIgb2ZmZXN0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNldHRpbmdzIikub2Zmc2V0SGVpZ2h0ICsgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm15U3RyZWFtc0JveCIpLm9mZnNldEhlaWdodCArIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjbGllbnRJbmZvIikub2Zmc2V0SGVpZ2h0OwogICAgCiAgICBpZiAod2luZG93LmlubmVySGVpZ2h0ID4gb2ZmZXN0KSB7CiAgICAgIGVsbS5zdHlsZS5oZWlnaHQgPSB3aW5kb3cuaW5uZXJIZWlnaHQgKyAicHgiCiAgICB9IGVsc2UgewogICAgICBlbG0uc3R5bGUuaGVpZ2h0ID0gb2ZmZXN0ICsgInB4IgogICAgfQogICAgCgogIH0KCgp9CgpmdW5jdGlvbiBjcmVhdGVNYXBwaW5nVGFibGUoKSB7CiAgY29sdW1uVG9Tb3J0ID0gMTsKICBjcmVhdGVTZWFyY2hPYmooKTsKCiAgLy8gQ3JlYXRlIHRhYmxlIChIZWFkZXIpCiAgdmFyIHRhYmxlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImlkX21hcHBpbmciKTsKICB0YWJsZS5pbm5lckhUTUwgPSAiIjsKICB2YXIgbmV3VFIgPSBuZXcgT2JqZWN0KCk7CiAgbmV3VFJbIl9lbGVtZW50Il0gPSAiVFIiOwogIG5ld1RSWyJjbGFzcyJdICAgID0gInRhYmxlLW1hcHBpbmctaGVhZGVyIjsKICB0YWJsZS5hcHBlbmRDaGlsZChjcmVhdGVFbGVtZW50KG5ld1RSKSk7CgogIHZhciB0ciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJpZF9tYXBwaW5nIikubGFzdENoaWxkOwogIHZhciB0ckhlYWRsaW5lcyA9IG5ldyBBcnJheSgiQnVsayIsICJDaC4gTm8uIiwgIkxvZ28iLCAiQ2hhbm5lbCBOYW1lIiwgIlBsYXlsaXN0IiwgIkdyb3VwIFRpdGxlIiwgIlhNTFRWIEZpbGUiLCAiWE1MVFYgSUQiKQoKICBmb3IgKHZhciBpID0gMDsgaSA8IHRySGVhZGxpbmVzLmxlbmd0aDsgaSsrKSB7CiAgICB2YXIgbmV3VEQgPSBuZXcgT2JqZWN0KCk7CgogICAgbmV3VERbIl9lbGVtZW50Il0gPSAiVEQiOwogICAgbmV3VERbIl90ZXh0Il0gICAgPSB0ckhlYWRsaW5lc1tpXTsKCiAgICAKCiAgICB2YXIgd2lkdGggPSAiIjsKICAgIHN3aXRjaCh0ckhlYWRsaW5lc1tpXSkgewoKICAgICAgY2FzZSAiQnVsayI6ICAKICAgICAgICAKICAgICAgICBtYXhXaWR0aCA9ICIzMnB4IjsgCiAgICAgICAgbWluV2lkdGggPSAiMzJweCI7IAogICAgCiAgICAgICAgLy8gQ3JlYXRlIGJ1bGsgVEQKICAgICAgICB2YXIgbmV3Q2hlY2tib3ggPSBuZXcgT2JqZWN0KCk7CiAgICAgICAgbmV3Q2hlY2tib3hbIl9lbGVtZW50Il0gPSAiSU5QVVQiOwogICAgICAgIG5ld0NoZWNrYm94WyJ0eXBlIl0gICAgID0gImNoZWNrYm94IjsKICAgICAgICBuZXdDaGVja2JveFsiY2xhc3MiXSAgICA9ICJidWxrIGhpZGVCdWxrIjsKICAgICAgICBuZXdDaGVja2JveFsib25tb3VzZW91dCJdID0gImphdmFzY3JpcHQ6IHRoaXMuYmx1cigpIgogICAgICAgIG5ld0NoZWNrYm94WyJvbmNsaWNrIl0gICAgPSAiamF2YXNjcmlwdDogYnVsa0VkaXRBbGxDaGFubmVscygpIgoKICAgIAogICAgICAgIC8vbmV3VEQuYXBwZW5kQ2hpbGQoY3JlYXRlRWxlbWVudChuZXdDaGVja2JveCkpOwoKICAgICAgICBicmVhazsKCiAgICAgIGNhc2UgIkNoLiBOby4iOiAKICAgICAgICBtYXhXaWR0aCA9ICI4MHB4IjsgCiAgICAgICAgbWluV2lkdGggPSAiNzBweCI7IAogICAgICAgIG5ld1REWyJvbmNsaWNrIl0gID0gImphdnNjcmlwdDogc29ydFRhYmxlKCIgKyBpICsgIik7IjsKICAgICAgICBuZXdURFsiY2xhc3MiXSAgICA9ICJwb2ludGVyIjsKICAgICAgICBicmVhazsKICAgICAgCiAgICAgIGNhc2UgIkxvZ28iOiAgbWF4V2lkdGggPSAiMTIwcHgiOyBtaW5XaWR0aCA9ICI2MHB4IjsgYnJlYWs7CiAgICAgIAogICAgICBjYXNlICJDaGFubmVsIE5hbWUiOiAgCiAgICAgICAgbWF4V2lkdGggPSAiNTAlIjsgCiAgICAgICAgbWluV2lkdGggPSAiMjAwcHgiOyAKICAgICAgICBuZXdURFsib25jbGljayJdICA9ICJqYXZzY3JpcHQ6IHNvcnRUYWJsZSgiICsgaSArICIpOyI7CiAgICAgICAgbmV3VERbImNsYXNzIl0gPSAicG9pbnRlciI7CiAgICAgICAgYnJlYWs7CgogICAgICBjYXNlICJQbGF5bGlzdCI6ICAgICAgCiAgICAgICAgbWF4V2lkdGggPSAiMTUwcHgiOyAKICAgICAgICBtaW5XaWR0aCA9ICIxMDBweCI7IAogICAgICAgIG5ld1REWyJvbmNsaWNrIl0gID0gImphdnNjcmlwdDogc29ydFRhYmxlKCIgKyBpICsgIik7IjsKICAgICAgICBuZXdURFsiY2xhc3MiXSAgICA9ICJwb2ludGVyIjsKICAgICAgICBicmVhazsKICAgICAgCiAgICAgIGNhc2UgIkdyb3VwIFRpdGxlIjogICAKICAgICAgICBtYXhXaWR0aCA9ICIxNTBweCI7IAogICAgICAgIG1pbldpZHRoID0gIjEwMHB4IjsgCiAgICAgICAgbmV3VERbIm9uY2xpY2siXSAgPSAiamF2c2NyaXB0OiBzb3J0VGFibGUoIiArIGkgKyAiKTsiOwogICAgICAgIG5ld1REWyJjbGFzcyJdICAgID0gInBvaW50ZXIiOwogICAgICAgIGJyZWFrOwogICAgICAKICAgICAgY2FzZSAiWE1MVFYgRmlsZSI6ICAgIAogICAgICAgIG1heFdpZHRoID0gIjE1MHB4IjsgCiAgICAgICAgbWluV2lkdGggPSAiMTAwcHgiOyAKICAgICAgICAvL25ld1REWyJvbmNsaWNrIl0gID0gImphdnNjcmlwdDogc29ydFRhYmxlKCIgKyBpICsgIik7IjsKICAgICAgICBuZXdURFsiY2xhc3MiXSAgICA9ICIiOwogICAgICAgIGJyZWFrOwogICAgICAKCiAgICAgIGNhc2UgIlhNTFRWIElEIjogICAgICBtYXhXaWR0aCA9ICIxNTBweCI7IG1pbldpZHRoID0gIjEwMHB4IjsgYnJlYWs7CgogICAgICBkZWZhdWx0OiAKICAgICAgICBuZXdURFsiY2xhc3MiXSAgICA9ICIiOwogICAgICAgIGJyZWFrOwogICAgfQoKICAgIHRyLmFwcGVuZENoaWxkKGNyZWF0ZUVsZW1lbnQobmV3VEQpKTsKICAgIGlmICh0ckhlYWRsaW5lc1tpXSA9PSAiQnVsayIpIHsKICAgICAgdHIubGFzdENoaWxkLmlubmVySFRNTCA9ICIiOwogICAgICB0ci5sYXN0Q2hpbGQuYXBwZW5kQ2hpbGQoY3JlYXRlRWxlbWVudChuZXdDaGVja2JveCkpOwogICAgICAKICAgIH0KICAgIAogICAgdmFyIGVsbSA9IHRyLmxhc3RDaGlsZDsKICAgIGVsbS5zdHlsZS53aWR0aCA9IG1heFdpZHRoOwogICAgZWxtLnN0eWxlLm1heFdpZHRoID0gbWF4V2lkdGg7CiAgICBlbG0uc3R5bGUubWluV2lkdGggPSBtaW5XaWR0aDsKCiAgfQogIGNhbGN1bGF0ZVdyYXBwZXJIZWlnaHQoKTsKICB2YXIgSURzID0gZ2V0T2JqS2V5cyh4RVBHWyJlcGdNYXBwaW5nIl0pCgogIHZhciBhbGxYbWx0dkZpbGVzID0gZ2V0T2JqS2V5cyh4RVBHWyJ4bWx0dk1hcCJdKTsKCiAgaWYgKGFsbFhtbHR2RmlsZXMgPT0gMCkgewogICAgc2hvd0xvYWRpbmdTY3JlZW4oZmFsc2UpOwogICAgcmV0dXJuOwogIH0KCiAgLy8gU29ydCBJRHMKICB2YXIgcG9zT2JqID0gbmV3IE9iamVjdCgpOwogIGZvciAodmFyIGkgPSAwOyBpIDwgSURzLmxlbmd0aDsgaSsrKSB7CiAgICB2YXIgaXRlbSAgPSB4RVBHWyJlcGdNYXBwaW5nIl1bSURzW2ldXTsKICAgIHZhciBwb3MKICAgIHN3aXRjaChpc05hTih4RVBHWyJlcGdNYXBwaW5nIl1bSURzW2ldXVsieC1jaGFubmVsSUQiXSkpIHsKICAgICAgY2FzZSBmYWxzZTogcG9zID0gcGFyc2VGbG9hdCh4RVBHWyJlcGdNYXBwaW5nIl1bSURzW2ldXVsieC1jaGFubmVsSUQiXSkgOyBicmVhazsKICAgIH0KICAgIHBvc09ialtwb3NdID0gaXRlbTsKICB9CiAgcG9zRmxvYXQgPSBnZXRPYmpLZXlzKHBvc09iaikKICBmdW5jdGlvbiBzb3J0RmxvYXQoYSxiKSB7IHJldHVybiBhIC0gYjsgfQogIHBvc0Zsb2F0LnNvcnQoc29ydEZsb2F0KQoKICAvL2NvbnNvbGUubG9nKHBvc0Zsb2F0KTsKCiAgLy8gLS0tCgogIGlmIChJRHMubGVuZ3RoID4gMjAwKSB7CiAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7IAogICAgICBzaG93TG9hZGluZ1NjcmVlbih0cnVlKTsKICAgIH0sIDEpOwoKICB9CgoKICAvLyB0YWJsZSBmb3IgaW50IGNoYW5uZWwgSUQncwogIGZvciAodmFyIGkgPSAwOyBpIDwgcG9zRmxvYXQubGVuZ3RoOyBpKyspIHsKCiAgICB2YXIgdGFibGUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiaWRfbWFwcGluZyIpOwogICAgdmFyIGl0ZW0gID0gcG9zT2JqW3Bvc0Zsb2F0W2ldXTsKICAgIC8vdmFyIGl0ZW0gID0geEVQR1siZXBnTWFwcGluZyJdW0lEc1tpXV07CiAgICAvL2NvbnNvbGUubG9nKGl0ZW0pOwogICAgdmFyIG5ld1RSID0gbmV3IE9iamVjdCgpOwogICAgbmV3VFJbIl9lbGVtZW50Il0gICAgICAgPSAiVFIiOwogICAgbmV3VFJbImNsYXNzIl0gICAgICAgICAgPSAiIjsKICAgIG5ld1RSWyJpZCJdICAgICAgICAgICAgID0gaXRlbVsieC1lcGciXTsKICAgIG5ld1RSWyJvbmNvbnRleHRtZW51Il0gID0gJ2phdmFzY3JpcHQ6IHN3aXRjaENoYW5uZWxTdGF0dXMoIicgKyBpdGVtWyJ4LWVwZyJdICsgJyIpOyByZXR1cm4gZmFsc2U7JzsKICAgIHRhYmxlLmFwcGVuZENoaWxkKGNyZWF0ZUVsZW1lbnQobmV3VFIpKTsKCiAgICB2YXIgdHIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiaWRfbWFwcGluZyIpLmxhc3RDaGlsZDsKICAgIAogICAgLy8gQ3JlYXRlIGJ1bGsgVEQKICAgIHZhciBuZXdURCA9IG5ldyBPYmplY3QoKTsKICAgIG5ld1REWyJfZWxlbWVudCJdICAgPSAiSU5QVVQiOwogICAgbmV3VERbInR5cGUiXSAgICAgICA9ICJjaGVja2JveCI7CiAgICBuZXdURFsiY2xhc3MiXSAgICAgID0gImJ1bGsgaGlkZUJ1bGsiOwogICAgbmV3VERbIm9ubW91c2VvdXQiXSA9ICJqYXZhc2NyaXB0OiB0aGlzLmJsdXIoKSIKICAgIAogICAgY3JlYXRlTmV3VEQobmV3VEQsIHRyKTsKICAgIAoKICAgIC8vIENyZWF0ZSBJRCBURAogICAgdmFyIG5ld1REID0gbmV3IE9iamVjdCgpOwogICAgbmV3VERbIl9lbGVtZW50Il0gPSAiSU5QVVQiOwogICAgbmV3VERbInR5cGUiXSAgICAgPSAidGV4dCIKICAgIG5ld1REWyJjbGFzcyJdICAgID0gInc0MHB4IjsKICAgIG5ld1REWyJ2YWx1ZSJdICAgID0gaXRlbVsieC1jaGFubmVsSUQiXTsKICAgIG5ld1REWyJvbmZvY3Vzb3V0Il0gPSAiamF2YXNjcmlwdDogYXJyYW5nZVRhYmxlKHRoaXMpOyIKICAgIGNyZWF0ZU5ld1REKG5ld1RELCB0cik7CgogICAgLy8gQ3JlYXRlIElNRyBURAogICAgdmFyIG5ld1REID0gbmV3IE9iamVjdCgpOwogICAgbmV3VERbIl9lbGVtZW50Il0gPSAiSU1HIjsKICAgIG5ld1REWyJvbmNsaWNrIl0gID0gJ2phdmFzY3JpcHQ6IG1hcHBpbmdEZXRhaWwoIicgKyBpdGVtWyJ4LWVwZyJdICsgJyIpOyc7CiAgICBpZiAoaXRlbVsidHZnLWxvZ28iXSAhPSB1bmRlZmluZWQpIHsKICAgICAgbmV3VERbInNyYyJdICAgICAgPSBpdGVtWyJ0dmctbG9nbyJdOwogICAgfSBlbHNlIHsKICAgICAgaXRlbVsidHZnLWxvZ28iXSA9ICIiOwogICAgICBuZXdURFsic3JjIl0gPSAiIjsKICAgIH0KICAgIGNyZWF0ZU5ld1REKG5ld1RELCB0cik7CiAgICB0ci5sYXN0Q2hpbGQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IG1hcHBpbmdEZXRhaWwoIicgKyBpdGVtWyJ4LWVwZyJdICsgJyIpOycpCgogICAgLy8gQ3JlYXRlIFAgVEQgKGNoYW5uZWwgbmFtZSkKICAgIHZhciBuZXdURCA9IG5ldyBPYmplY3QoKTsKICAgIG5ld1REWyJfZWxlbWVudCJdID0gIlAiOwogICAgbmV3VERbIl90ZXh0Il0gICAgPSBpdGVtWyJ4LW5hbWUiXTsKICAgIG5ld1REWyJjbGFzcyJdICAgICA9IGl0ZW1bIngtY2F0ZWdvcnkiXTsKCiAgICBjcmVhdGVOZXdURChuZXdURCwgdHIpOwogICAgdHIubGFzdENoaWxkLnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBtYXBwaW5nRGV0YWlsKCInICsgaXRlbVsieC1lcGciXSArICciKTsnKQogICAgdHIubGFzdENoaWxkLmxhc3RDaGlsZC5zdHlsZS5wYWRkaW5nID0gIjVweCAxMHB4IjsKCiAgICAvLyBDcmVhdGUgUCBURCAoUGxheWxpc3QgTmFtZSkKICAgIHZhciBuZXdURCA9IG5ldyBPYmplY3QoKTsKICAgIG5ld1REWyJfZWxlbWVudCJdID0gIlAiOwogICAgbmV3VERbIl90ZXh0Il0gICAgPSBpdGVtWyJfZmlsZS5tM3UubmFtZSJdOwogICAgbmV3VERbImNsYXNzIl0gICAgID0gaXRlbVsidGFibGVFbGxpcHNpcyJdOwogICAgCiAgICBjcmVhdGVOZXdURChuZXdURCwgdHIpOwogICAgdHIubGFzdENoaWxkLnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBtYXBwaW5nRGV0YWlsKCInICsgaXRlbVsieC1lcGciXSArICciKTsnKQogICAgCiAgICAvLyBDcmVhdGUgUCBURCAoR3JvdXAgVGl0bGUpCiAgICB2YXIgbmV3VEQgPSBuZXcgT2JqZWN0KCk7CiAgICBuZXdURFsiX2VsZW1lbnQiXSA9ICJQIjsKICAgIG5ld1REWyJfdGV4dCJdICAgID0gaXRlbVsieC1ncm91cC10aXRsZSJdOwogICAgbmV3VERbImNsYXNzIl0gICAgID0gaXRlbVsidGFibGVFbGxpcHNpcyJdOwogICAgCiAgICBjcmVhdGVOZXdURChuZXdURCwgdHIpOwogICAgdHIubGFzdENoaWxkLnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBtYXBwaW5nRGV0YWlsKCInICsgaXRlbVsieC1lcGciXSArICciKTsnKQoKICAgIAogICAgLy8gQ3JlYXRlIFAgVEQgKFhNTFRWIGZpbGUpCiAgICB2YXIgbmV3VEQgPSBuZXcgT2JqZWN0KCk7CiAgICBuZXdURFsiX2VsZW1lbnQiXSAgICAgICA9ICJQIjsKICAgIG5ld1REWyJjbGFzcyJdICAgID0gInRhYmxlRWxsaXBzaXMiOwogICAgbmV3VERbIl90ZXh0Il0gPSAiLSIKCiAgICBpZiAoYWxsWG1sdHZGaWxlcy5pbmRleE9mKGl0ZW1bIngteG1sdHYtZmlsZSJdKSAhPSAtMSkgewogICAgICB2YXIgeFhtbHR2RmlsZSA9IGl0ZW1bIngteG1sdHYtZmlsZSJdOwogICAgICBzd2l0Y2goeFhtbHR2RmlsZSkgewogICAgICAgIGNhc2UgIi0iOiAgICAgICAgICAgbmV3VERbIl90ZXh0Il0gID0geFhtbHR2RmlsZTsgYnJlYWs7CiAgICAgICAgY2FzZSAieFRlVmUgRHVtbXkiOiBuZXdURFsiX3RleHQiXSAgPSB4WG1sdHZGaWxlOyBicmVhazsKICAgICAgICBkZWZhdWx0OiAgICAgICAgICAgIG5ld1REWyJfdGV4dCJdICA9IGdldFZhbHVlRnJvbVByb3ZpZGVyRmlsZSh4WG1sdHZGaWxlLCAieG1sdHYiLCAibmFtZSIpOyBicmVhazsKICAgICAgICAKICAgICAgfQogICAgICAvL2NvbnNvbGUubG9nKG5ld1REKTsKCiAgICAgIC8vbmV3VERbIl90ZXh0Il0gICAgPSBpdGVtWyJ4LXhtbHR2LWZpbGUiXTsKICAgIH0gZWxzZSB7CiAgICAgIC8vbmV3VERbIl90ZXh0Il0gPSAiLSIKICAgIH0KICAgIGNyZWF0ZU5ld1REKG5ld1RELCB0cik7CiAgICB0ci5sYXN0Q2hpbGQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IG1hcHBpbmdEZXRhaWwoIicgKyBpdGVtWyJ4LWVwZyJdICsgJyIpOycpCgogICAgLy8gQ3JlYXRyIFAgVEQgKFhNTFRWIGNoYW5uZWwgSUQpCiAgICBuZXdURFsiX2VsZW1lbnQiXSA9ICJQIjsKICAgIG5ld1REWyJjbGFzcyJdICAgID0gInRhYmxlRWxsaXBzaXMiOwoKICAgIGlmIChpdGVtWyJ4LW1hcHBpbmciXSAhPSB1bmRlZmluZWQpIHsKICAgICAgbmV3VERbIl90ZXh0Il0gICAgPSBpdGVtWyJ4LW1hcHBpbmciXTsKICAgIH0KICAgIAogICAgY3JlYXRlTmV3VEQobmV3VEQsIHRyKTsKICAgIHRyLmxhc3RDaGlsZC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogbWFwcGluZ0RldGFpbCgiJyArIGl0ZW1bIngtZXBnIl0gKyAnIik7JykKCgogICAgdmFyIHhYbWx0dkZpbGUgID0gaXRlbVsieC14bWx0di1maWxlIl07CiAgICB2YXIgeE1hcHBpbmcgICAgPSBpdGVtWyJ4LW1hcHBpbmciXTsKICAgIHZhciB0dmdJRCAgICAgICA9IGl0ZW1bInR2Zy1pZCJdOwogICAgCiAgICAvL2NvbnNvbGUubG9nKGl0ZW1bIngtZXBnIl0pOwogICAgLy9jb25zb2xlLmxvZyhpdGVtKTsKCiAgICBpZiAoaXRlbVsieC1hY3RpdmUiXSA9PSB0cnVlKSB7CiAgICAgIHRyLmNsYXNzTmFtZSA9ICJhY3RpdmVFUEciOwogICAgfSBlbHNlIHsKICAgICAgdHIuY2xhc3NOYW1lID0gIm5vdEFjdGl2ZUVQRyI7CiAgICB9CiAgICAKICB9CgogIHNvcnRUYWJsZSgxKTsKCiAgc2V0VGltZW91dChmdW5jdGlvbigpeyAKICAgIHNob3dMb2FkaW5nU2NyZWVuKGZhbHNlKTsKICB9LCA1KTsKfQoKZnVuY3Rpb24gc2VhcmNoSW5NYXBwaW5nKGVsbSkgewoKICB2YXIgc2VhcmNoID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNlYXJjaE1hcHBpbmciKS52YWx1ZTsKICB2YXIgdmFsdWVzID0gZ2V0T2JqS2V5cyhzZWFyY2hPYmopCiAgCiAgZm9yICh2YXIgaSA9IHZhbHVlcy5sZW5ndGggLSAxOyBpID49IDA7IGktLSkgewogICAgdmFyIGlkID0gc2VhcmNoT2JqW3ZhbHVlc1tpXV07CiAgICB2YXIgYm9vbCA9IHZhbHVlc1tpXS50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKHNlYXJjaC50b0xvd2VyQ2FzZSgpKTsKICAgIHN3aXRjaChib29sKSB7CiAgICAgIGNhc2UgdHJ1ZTogIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5zdHlsZS5kaXNwbGF5ID0gIiI7IGJyZWFrOwogICAgICBjYXNlIGZhbHNlOiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkuc3R5bGUuZGlzcGxheSA9ICJub25lIjsgYnJlYWs7CiAgICB9CiAgfQoKfQoKZnVuY3Rpb24gbWFwcGluZ0RldGFpbCh4ZXBnKSB7CiAgCiAgYnVsa0lEcyAgID0gbmV3IEFycmF5KCk7CiAgdmFyIGFjdGl2ZUVsZW1lbnQgPSBkb2N1bWVudC5hY3RpdmVFbGVtZW50OwogIC8vIElmIGlucHV0IGlkLCByZXR1cm4KICBpZiAoYWN0aXZlRWxlbWVudC50YWdOYW1lID09ICJJTlBVVCIpIHsKICAgIHJldHVybgogIH0KCiAgaWYgKGJ1bGsgPT0gdHJ1ZSkgewogICAgdmFyIGVsbSA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlDbGFzc05hbWUoImJ1bGsiKTsKICAgIGZvciAodmFyIGkgPSAxOyBpIDwgZWxtLmxlbmd0aDsgaSsrKSB7CiAgICAgIGlmIChlbG1baV0uY2hlY2tlZCA9PSB0cnVlKSB7CiAgICAgICAgdmFyIGlkID0gZWxtW2ldLnBhcmVudEVsZW1lbnQucGFyZW50RWxlbWVudC5pZDsKICAgICAgICBidWxrSURzLnB1c2goaWQpCiAgICAgIH0KICAgICAgCiAgICB9CgogICAgaWYgKGJ1bGtJRHMubGVuZ3RoID09IDApIHsKICAgICAgc2hvd0VsZW1lbnQoJ3BvcHVwJywgZmFsc2UpCiAgICAgIGFsZXJ0KCJObyBjaGFubmVscyBzZWxlY3RlZCBmb3IgZWRpdGluZyIpCiAgICAgIHJldHVybgogICAgfQoKICAgIHhlcGcgPSBidWxrSURzWzBdCiAgfQoKCiAgY3JlYXRlU2VhcmNoT2JqKCk7CiAgCiAgc2hvd1BvcFVwRWxlbWVudCgnbWFwcGluZy1kZXRhaWwnKTsKCiAgdmFyIHRoaXNDaGFubmVsID0geEVQR1siZXBnTWFwcGluZyJdW3hlcGddOwogIC8vY29uc29sZS5sb2codGhpc0NoYW5uZWwpOwogIHZhciB4WG1sdHZGaWxlICA9IHRoaXNDaGFubmVsWyJ4LXhtbHR2LWZpbGUiXTsKICB2YXIgeE1hcHBpbmcgICAgPSB0aGlzQ2hhbm5lbFsieC1tYXBwaW5nIl07CiAgdmFyIHhDYXRlZ29yeSAgID0gdGhpc0NoYW5uZWxbIngtY2F0ZWdvcnkiXTsKCiAgaWYgKHhYbWx0dkZpbGUgPT0gdW5kZWZpbmVkKSB7CiAgICB0aGlzQ2hhbm5lbFsieC14bWx0di1maWxlIl0gPSAiLSI7CiAgICB4WG1sdHZGaWxlID0gIi0iOwogIH0KCiAgaWYgKHhNYXBwaW5nID09IHVuZGVmaW5lZCkgewogICAgdGhpc0NoYW5uZWxbIngtbWFwcGluZyJdID0gIi0iOwogICAgeE1hcHBpbmcgPSAiLSI7CiAgfQoKICAvKgogIGNvbnNvbGUubG9nKCJJRDoiLCB4ZXBnKTsKICBjb25zb2xlLmxvZygiWE1MVFYgRmlsZToiLCB4WG1sdHZGaWxlKTsKICBjb25zb2xlLmxvZygiTWFwcGluZzoiLCB4TWFwcGluZyk7CiAgKi8KCiAgdmFyIGtleXMgPSBnZXRPYmpLZXlzKHRoaXNDaGFubmVsKTsKICBmb3IgKHZhciBpID0gMDsgaSA8IGtleXMubGVuZ3RoOyBpKyspIHsKICAgIGlmKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGtleXNbaV0pKXsKICAgICAgdmFyIHRkID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoa2V5c1tpXSkKICAgIH0gZWxzZSB7CiAgICAgIHZhciB0ZCA9IHVuZGVmaW5lZDsKICAgIH0KICAgIAogICAgdmFyIG5ld0l0ZW0gPSBuZXcgT2JqZWN0KCk7CiAgICB2YXIgdmFsdWVzLCB0ZXh0ID0gbmV3IEFycmF5KCk7CiAgICBzd2l0Y2goa2V5c1tpXSkgewogICAgICBjYXNlICJ4LXhtbHR2LWZpbGUiOiAKICAgICAgICB2YXIgZmlsZUlEcyA9IGdldE9iaktleXMoeEVQR1sieG1sdHZNYXAiXSk7CiAgICAgICAgdmFyIHZhbHVlID0gbmV3IEFycmF5KCItIik7CiAgICAgICAgdmFyIHRleHQgID0gbmV3IEFycmF5KCItIik7CgogICAgICAgIGZvciAodmFyIGogPSBmaWxlSURzLmxlbmd0aCAtIDE7IGogPj0gMDsgai0tKSB7CiAgICAgICAgICBpZiAoZmlsZUlEc1tqXSAhPSAieFRlVmUgRHVtbXkiKSB7CiAgICAgICAgICAgIHZhbHVlLnB1c2goZ2V0VmFsdWVGcm9tUHJvdmlkZXJGaWxlKGZpbGVJRHNbal0sICJ4bWx0diIsICJmaWxlLnh0ZXZlIikpCiAgICAgICAgICAgIHRleHQucHVzaChnZXRWYWx1ZUZyb21Qcm92aWRlckZpbGUoZmlsZUlEc1tqXSwgInhtbHR2IiwgIm5hbWUiKSkKICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIHZhbHVlLnB1c2goZmlsZUlEc1tqXSkKICAgICAgICAgICAgdGV4dC5wdXNoKGZpbGVJRHNbal0pCiAgICAgICAgICB9CiAgICAgICAgICAKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgbmV3SXRlbVsiX2VsZW1lbnQiXSAgICAgICA9ICJTRUxFQ1QiOwogICAgICAgIG5ld0l0ZW1bIl9vcHRpb25WYWx1ZXMiXSAgPSB2YWx1ZTsKICAgICAgICBuZXdJdGVtWyJfb3B0aW9uVGV4dCJdICAgID0gdGV4dAogICAgICAgIG5ld0l0ZW1bInZhbHVlIl0gICAgICAgICAgPSB4WG1sdHZGaWxlOwogICAgICAgIG5ld0l0ZW1bIm9uY2hhbmdlIl0gICAgICAgPSAnamF2YXNjcmlwdDogY2hhbmdlWG1sdHZGaWxlKCInICsgeGVwZyArICciLHRoaXMpOyc7CgogICAgICAgIGJyZWFrOwoKICAgICAgY2FzZSAieC1tYXBwaW5nIjogCgogICAgICAgIHZhciB2YWx1ZXMgPSBnZXRPYmpLZXlzKHhFUEdbInhtbHR2TWFwIl1beFhtbHR2RmlsZV0pOwoKICAgICAgICBmb3IgKHZhciBqID0gMDsgaiA8IHZhbHVlcy5sZW5ndGg7IGorKykgewogICAgICAgICAgCiAgICAgICAgICBpZiAoeEVQR1sieG1sdHZNYXAiXVt4WG1sdHZGaWxlXVt2YWx1ZXNbal1dLmhhc093blByb3BlcnR5KCdkaXNwbGF5LW5hbWUnKSA9PSB0cnVlKSB7CiAgICAgICAgICAgIHZhciBkaXNwbGF5TmFtZSA9IHhFUEdbInhtbHR2TWFwIl1beFhtbHR2RmlsZV1bdmFsdWVzW2pdXVsiZGlzcGxheS1uYW1lIl07CiAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICB2YXIgZGlzcGxheU5hbWUgPSAiLSIKICAgICAgICAgIH0KICAgICAgICAgIAogICAgICAgICAgLy90ZXh0W2pdID0gdmFsdWVzW2pdICsgIiAoIiArIGRpc3BsYXlOYW1lICsgIikiOwogICAgICAgICAgdGV4dFtqXSA9IGRpc3BsYXlOYW1lICsgIiAoIiArIHZhbHVlc1tqXSAgKyAiKSI7CiAgICAgICAgfQoKICAgICAgICB0ZXh0LnVuc2hpZnQoIi0iKTsKICAgICAgICB2YWx1ZXMudW5zaGlmdCgiLSIpOwogICAgICAgIG5ld0l0ZW1bIl9lbGVtZW50Il0gICAgICAgPSAiU0VMRUNUIjsKICAgICAgICBuZXdJdGVtWyJfb3B0aW9uVmFsdWVzIl0gID0gdmFsdWVzOwogICAgICAgIG5ld0l0ZW1bIl9vcHRpb25UZXh0Il0gICAgPSB0ZXh0CiAgICAgICAgbmV3SXRlbVsidmFsdWUiXSAgICAgICAgICA9IHhNYXBwaW5nOwogICAgICAgIG5ld0l0ZW1bIm9uY2hhbmdlIl0gICAgICAgPSAnamF2YXNjcmlwdDogbWFwcGluZ0NoYW5uZWwoIicgKyB4ZXBnICsgJyIsdGhpcyk7JzsKICAgICAgICBicmVhazsKCiAgICAgIGNhc2UgIngtY2F0ZWdvcnkiOgogICAgICAgIC8vdmFyIHZhbHVlcyA9IHBsZXhDYXRlZ29yaWVzVmFsdWVzCiAgICAgICAgbmV3SXRlbVsiX2VsZW1lbnQiXSAgICAgICA9ICJTRUxFQ1QiOwogICAgICAgIG5ld0l0ZW1bIl9vcHRpb25WYWx1ZXMiXSAgPSBwbGV4Q2F0ZWdvcmllc1ZhbHVlczsKICAgICAgICBuZXdJdGVtWyJfb3B0aW9uVGV4dCJdICAgID0gcGxleENhdGVnb3JpZXNPcHRpb247CiAgICAgICAgbmV3SXRlbVsidmFsdWUiXSAgICAgICAgICA9IHhDYXRlZ29yeTsKICAgICAgICBuZXdJdGVtWyJvbmNoYW5nZSJdICAgICAgID0gJ3NhdmVDYXRlZ29yeSgiJyArIHhlcGcgKyAnIiknOwogICAgICAgIGJyZWFrOwoKICAgICAgY2FzZSAidHZnLWxvZ28iOgogICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjaGFubmVsLWxvZ28iKS5zZXRBdHRyaWJ1dGUoInNyYyIsIHRoaXNDaGFubmVsWyJ0dmctbG9nbyJdKTsKICAgICAgICBuZXdJdGVtWyJfZWxlbWVudCJdICAgICAgID0gIklOUFVUIjsKICAgICAgICBuZXdJdGVtWyJ0eXBlIl0gICAgICAgICAgID0gInRleHQiOwogICAgICAgIG5ld0l0ZW1bInZhbHVlIl0gICAgICAgICAgPSB0aGlzQ2hhbm5lbFsidHZnLWxvZ28iXTsKICAgICAgICBuZXdJdGVtWyJvbmZvY3Vzb3V0Il0gICAgID0gJ3NhdmVDaGFubmVsTG9nbygiJyArIHhlcGcgKyAnIiknOwogICAgICAgIG5ld0l0ZW1bInBsYWNlaG9sZGVyIl0gICAgPSAnSW1hZ2UgVVJMJzsKICAgICAgICBicmVhazsKCiAgICAgIGNhc2UgIngtdXBkYXRlLWNoYW5uZWwtaWNvbiI6CiAgICAgICAgbmV3SXRlbVsiX2VsZW1lbnQiXSAgICAgICA9ICJJTlBVVCI7CiAgICAgICAgbmV3SXRlbVsidHlwZSJdICAgICAgICAgICA9ICJjaGVja2JveCI7CiAgICAgICAgc3dpdGNoKEpTT04ucGFyc2UodGhpc0NoYW5uZWxbIngtdXBkYXRlLWNoYW5uZWwtaWNvbiJdKSkgewogICAgICAgICAgY2FzZSB0cnVlOiBuZXdJdGVtWyJjaGVja2VkIl0gICAgICAgID0gdGhpc0NoYW5uZWxbIngtdXBkYXRlLWNoYW5uZWwtaWNvbiJdOwogICAgICAgICAgICBicmVhawogICAgICAgIH0KICAgICAgICBuZXdJdGVtWyJvbmNoYW5nZSJdICAgICA9ICdzYXZlQ2hhbm5lbEljb25VcGRhdGUoIicgKyB4ZXBnICsgJyIpJzsKICAgICAgICBicmVhazsKCiAgICAgIGNhc2UgIngtbmFtZSI6CiAgICAgICAgbmV3SXRlbVsiX2VsZW1lbnQiXSAgICAgICA9ICJJTlBVVCI7CiAgICAgICAgbmV3SXRlbVsidHlwZSJdICAgICAgICAgICA9ICJ0ZXh0IjsKICAgICAgICBuZXdJdGVtWyJ2YWx1ZSJdICAgICAgICAgID0gdGhpc0NoYW5uZWxbIngtbmFtZSJdOwogICAgICAgIG5ld0l0ZW1bIm9uZm9jdXNvdXQiXSAgICAgPSAnc2F2ZUNoYW5uZWxOYW1lKCInICsgeGVwZyArICciKSc7CiAgICAgICAgbmV3SXRlbVsicGxhY2Vob2xkZXIiXSAgICA9ICdDaGFubmVsIE5hbWUnOwogICAgICAgIGJyZWFrOwoKICAgICAgY2FzZSAieC11cGRhdGUtY2hhbm5lbC1uYW1lIjoKICAgICAgICBpZiAodGhpc0NoYW5uZWwuaGFzT3duUHJvcGVydHkoIl91dWlkLmtleSIpID09IHRydWUpIHsKICAgICAgICAgIG5ld0l0ZW1bIl9lbGVtZW50Il0gICAgICAgPSAiSU5QVVQiOwogICAgICAgICAgbmV3SXRlbVsidHlwZSJdICAgICAgICAgICA9ICJjaGVja2JveCI7CiAgICAgICAgICBzd2l0Y2goSlNPTi5wYXJzZSh0aGlzQ2hhbm5lbFsieC11cGRhdGUtY2hhbm5lbC1uYW1lIl0pKSB7CiAgICAgICAgICAgIGNhc2UgdHJ1ZTogbmV3SXRlbVsiY2hlY2tlZCJdICAgICAgICA9IHRoaXNDaGFubmVsWyJ4LXVwZGF0ZS1jaGFubmVsLW5hbWUiXTsKICAgICAgICAgICAgICBicmVhawogICAgICAgICAgfQogICAgICAgICAgbmV3SXRlbVsib25jaGFuZ2UiXSAgICAgPSAnc2F2ZUNoYW5uZWxOYW1lVXBkYXRlKCInICsgeGVwZyArICciKSc7CiAgICAgICAgICBzaG93RWxlbWVudCgic3RyZWFtSGFzQ1VJRCIsIHRydWUpCgogICAgICAgICAgYnJlYWs7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgIC8vc3RyZWFtSGFzQ1VJRAogICAgICAgICAgc2hvd0VsZW1lbnQoInN0cmVhbUhhc0NVSUQiLCBmYWxzZSkKICAgICAgICAgIGJyZWFrOwogICAgICAgIH0KICAgICAgICAKICAgICAgY2FzZSAieC1hY3RpdmUiOgogICAgICAgIG5ld0l0ZW1bIl9lbGVtZW50Il0gICAgICAgPSAiSU5QVVQiOwogICAgICAgIG5ld0l0ZW1bInR5cGUiXSAgICAgICAgICAgPSAiY2hlY2tib3giOwogICAgICAgIHN3aXRjaChKU09OLnBhcnNlKHRoaXNDaGFubmVsWyJ4LWFjdGl2ZSJdKSkgewogICAgICAgICAgY2FzZSB0cnVlOiBuZXdJdGVtWyJjaGVja2VkIl0gICAgICAgID0gdGhpc0NoYW5uZWxbIngtYWN0aXZlIl07CiAgICAgICAgICAgIGJyZWFrCiAgICAgICAgfQogICAgICAgIG5ld0l0ZW1bIm9uY2hhbmdlIl0gICAgID0gJ3NhdmVDaGFubmVsU3RhdHVzKCInICsgeGVwZyArICciKSc7CiAgICAgICAgYnJlYWs7CgogICAgICBjYXNlICJ4LWdyb3VwLXRpdGxlIjoKICAgICAgICBuZXdJdGVtWyJfZWxlbWVudCJdICAgICAgID0gIklOUFVUIjsKICAgICAgICBuZXdJdGVtWyJ0eXBlIl0gICAgICAgICAgID0gInRleHQiOwogICAgICAgIG5ld0l0ZW1bInZhbHVlIl0gICAgICAgICAgPSB0aGlzQ2hhbm5lbFsieC1ncm91cC10aXRsZSJdOwogICAgICAgIG5ld0l0ZW1bIm9uZm9jdXNvdXQiXSAgICAgPSAnc2F2ZUdyb3VwVGl0bGUoIicgKyB4ZXBnICsgJyIpJzsKICAgICAgICBuZXdJdGVtWyJwbGFjZWhvbGRlciJdICAgID0gJ0dyb3VwIFRpdGxlJzsKICAgICAgICBicmVhazsKCiAgICAgIGRlZmF1bHQ6CiAgICAgICAgbmV3SXRlbVsiX2VsZW1lbnQiXSAgICAgICA9ICJQIjsKICAgICAgICBuZXdJdGVtWyJfdGV4dCJdICAgICAgICAgID0gdGhpc0NoYW5uZWxba2V5c1tpXV07CiAgICAgICAgYnJlYWs7CiAgICAgIAogICAgfQogICAgCiAgICBpZiAodGQgIT0gdW5kZWZpbmVkKSB7CiAgICAgIHRkLmlubmVySFRNTCA9ICIiOwogICAgICB2YXIgZWxlbWVudCA9IGNyZWF0ZU5ld0VsZW1lbnQobmV3SXRlbSkKICAgICAgLy9jb25zb2xlLmxvZyhlbGVtZW50KTsKICAgICAgdGQuYXBwZW5kQ2hpbGQoZWxlbWVudCk7CiAgICB9CgogIH0KCiAgaWYgKGJ1bGsgPT0gdHJ1ZSkgewoKICAgIHZhciBlbG0gPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCJub0J1bGsiKTsKICAgIGZvciAodmFyIGkgPSAwOyBpIDwgZWxtLmxlbmd0aDsgaSsrKSB7CiAgICAgIGVsbVtpXS5sYXN0Q2hpbGQuc2V0QXR0cmlidXRlKCJyZWFkb25seSIsIHRydWUpCiAgICAgIGVsbVtpXS5sYXN0Q2hpbGQuc3R5bGUuYm9yZGVyQ29sb3IgPSAicmVkIjsKICAgIH0KCiAgICB4ZXBnID0gYnVsa0lEc1swXQogIH0KCiAgc29ydFNlbGVjdChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgieC14bWx0di1maWxlIikubGFzdENoaWxkKTsKICBzb3J0U2VsZWN0KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ4LW1hcHBpbmciKS5sYXN0Q2hpbGQpOwogIAp9CgpmdW5jdGlvbiBzb3J0U2VsZWN0KGVsZW0pIHsKCiAgdmFyIHRtcEFyeSA9IFtdOwogIC8vIFJldGFpbiBzZWxlY3RlZCB2YWx1ZSBiZWZvcmUgc29ydGluZwogIHZhciBzZWxlY3RlZFZhbHVlID0gZWxlbVtlbGVtLnNlbGVjdGVkSW5kZXhdLnZhbHVlOwogIC8vIEdyYWIgYWxsIGV4aXN0aW5nIGVudHJpZXMKICBmb3IgKHZhciBpPTA7aTxlbGVtLm9wdGlvbnMubGVuZ3RoO2krKykgdG1wQXJ5LnB1c2goZWxlbS5vcHRpb25zW2ldKTsKICAvLyBTb3J0IGFycmF5IGJ5IHRleHQgYXR0cmlidXRlCiAgdG1wQXJ5LnNvcnQoZnVuY3Rpb24oYSxiKXsgcmV0dXJuIChhLnRleHQgPCBiLnRleHQpPy0xOjE7IH0pOwogIC8vIFdpcGUgb3V0IGV4aXN0aW5nIGVsZW1lbnRzCiAgd2hpbGUgKGVsZW0ub3B0aW9ucy5sZW5ndGggPiAwKSBlbGVtLm9wdGlvbnNbMF0gPSBudWxsOwogIC8vIFJlc3RvcmUgc29ydGVkIGVsZW1lbnRzCiAgdmFyIG5ld1NlbGVjdGVkSW5kZXggPSAwOwogIGZvciAodmFyIGk9MDtpPHRtcEFyeS5sZW5ndGg7aSsrKSB7CiAgICAgIGVsZW0ub3B0aW9uc1tpXSA9IHRtcEFyeVtpXTsKICAgICAgaWYoZWxlbS5vcHRpb25zW2ldLnZhbHVlID09IHNlbGVjdGVkVmFsdWUpIG5ld1NlbGVjdGVkSW5kZXggPSBpOwogIH0KICBlbGVtLnNlbGVjdGVkSW5kZXggPSBuZXdTZWxlY3RlZEluZGV4OyAvLyBTZXQgbmV3IHNlbGVjdGVkIGluZGV4IGFmdGVyIHNvcnRpbmcKICByZXR1cm47Cn0KCgpmdW5jdGlvbiBzd2l0Y2hDaGFubmVsU3RhdHVzKHhlcGcpIHsKICB2YXIgdGhpc0NoYW5uZWwgPSB4RVBHWyJlcGdNYXBwaW5nIl1beGVwZ107CiAgdmFyIHhYbWx0dkZpbGUgPSB0aGlzQ2hhbm5lbFsieC14bWx0di1maWxlIl07CgogIGlmICh4RVBHWyJ4bWx0dk1hcCJdLmhhc093blByb3BlcnR5KHhYbWx0dkZpbGUpID09IHRydWUpIHsKICAgIGlmICh0aGlzQ2hhbm5lbFsieC1tYXBwaW5nIl0gIT0gIi0iICYmIHRoaXNDaGFubmVsWyJ4LW1hcHBpbmciXSAhPSB1bmRlZmluZWQpIHsKICAgICAgdGhpc0NoYW5uZWxbIngtYWN0aXZlIl0gPSAhdGhpc0NoYW5uZWxbIngtYWN0aXZlIl07CiAgICAgIHZhciB0ciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHhlcGcpOwogICAgICBzd2l0Y2godGhpc0NoYW5uZWxbIngtYWN0aXZlIl0pIHsKICAgICAgICBjYXNlIHRydWU6IHRyLmNsYXNzTmFtZSA9ICJhY3RpdmVFUEciOyBicmVhazsKICAgICAgICBjYXNlIGZhbHNlOiB0ci5jbGFzc05hbWUgPSAibm90QWN0aXZlRVBHIjsgYnJlYWs7CiAgICAgIH0KICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImxvZ0luZm8iKS5jbGFzc05hbWUgPSAibm90VmlzaWJsZSI7CgogICAgfSBlbHNlIHsKICAgICAgdmFyIGVyciA9ICJYTUxUViBDaGFubmVsIGlzIG5vdCBzZWxlY3RlZCIKICAgICAgYWxlcnQoZXJyKQogICAgICAvKgogICAgICB2YXIgbmV3RXJyb3IgPSBuZXcgT2JqZWN0KCk7CiAgICAgIG5ld0Vycm9yWyJlcnIiXSA9ICJDaGFubmVsIGlzIG5vdCBzZWxlY3RlZCI7CiAgICAgIGNoZWNrRXJyKG5ld0Vycm9yKTsKICAgICAgKi8KICAgIH0KCiAgfSBlbHNlIHsKICAgIHZhciBlcnIgPSAiWE1MVFYgRmlsZSBpcyBub3Qgc2VsZWN0ZWQiCiAgICBhbGVydChlcnIpCiAgICAvKgogICAgdmFyIG5ld0Vycm9yID0gbmV3IE9iamVjdCgpOwogICAgbmV3RXJyb3JbImVyciJdID0gIlhNTFRWIGZpbGUgaXMgbm90IHNlbGVjdGVkIjsKICAgIGNoZWNrRXJyKG5ld0Vycm9yKTsKICAgICovCiAgfQoKICBzZWFyY2hJbk1hcHBpbmcoKTsKCn0KCmZ1bmN0aW9uIGNyZWF0ZU5ld0VsZW1lbnQobmV3SXRlbSkgewoKICB2YXIgZWxlbWVudCA9IGNyZWF0ZUVsZW1lbnQobmV3SXRlbSk7CiAgCiAgc3dpdGNoKG5ld0l0ZW1bIl9lbGVtZW50Il0pIHsKICAgIGNhc2UgIlNFTEVDVCI6CiAgICAgIC8vZWxlbWVudFtdCiAgICAgIHZhciB2YWx1ZXMgID0gbmV3SXRlbVsiX29wdGlvblZhbHVlcyJdOwogICAgICB2YXIgdGV4dCAgICA9IG5ld0l0ZW1bIl9vcHRpb25UZXh0Il07CgogICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHZhbHVlcy5sZW5ndGg7IGkrKykgewogICAgICAgIC8vY29uc29sZS5sb2coaXRlbSk7CiAgICAgICAgdmFyIG5ld0VudHJ5ID0gbmV3IE9iamVjdDsKICAgICAgICBuZXdFbnRyeVsiX2VsZW1lbnQiXSAgPSAiT1BUSU9OIjsKICAgICAgICBuZXdFbnRyeVsiX3RleHQiXSAgICAgPSB0ZXh0W2ldOwogICAgICAgIG5ld0VudHJ5WyJ2YWx1ZSJdICAgICA9IHZhbHVlc1tpXTsKICAgICAgICBlbGVtZW50LmFwcGVuZENoaWxkKGNyZWF0ZUVsZW1lbnQobmV3RW50cnkpKTsKICAgICAgfQogICAgICBlbGVtZW50LnZhbHVlID0gbmV3SXRlbVsidmFsdWUiXTsKICAgICAgYnJlYWs7CiAgICAKICAgIGRlZmF1bHQ6IAogICAgICAKICAgICAgLy9lbGVtZW50LmFwcGVuZENoaWxkKGNyZWF0ZUVsZW1lbnQobmV3SXRlbSkpOwogICAgICBicmVhazsKICB9CiAgCiAgcmV0dXJuIGVsZW1lbnQ7Cn0KCmZ1bmN0aW9uIHNhdmVCdWxrKGtleSwgdmFsdWUpIHsKICBmb3IgKHZhciBpID0gMDsgaSA8IGJ1bGtJRHMubGVuZ3RoOyBpKyspIHsKICAgIHZhciBpZCA9IGJ1bGtJRHNbaV0KICAgIHZhciB0aGlzQ2hhbm5lbCA9IHhFUEdbImVwZ01hcHBpbmciXVtpZF07CiAgICB0aGlzQ2hhbm5lbFtrZXldID0gdmFsdWU7CgogICAgc3dpdGNoKGtleSkgewogICAgICBjYXNlICJ0dmctbG9nbyI6ICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpLmNoaWxkTm9kZXNbMl0ubGFzdENoaWxkLnNldEF0dHJpYnV0ZSgic3JjIiwgdmFsdWUpOyBicmVhazsKICAgICAgCiAgICAgIGNhc2UgIngtY2F0ZWdvcnkiOiAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkuY2hpbGROb2Rlc1szXS5sYXN0Q2hpbGQuY2xhc3NOYW1lID0gdmFsdWU7IGJyZWFrOwoKICAgICAgY2FzZSAieC14bWx0di1maWxlIjoKICAgICAgICB2YXIgZWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5jaGlsZE5vZGVzWzZdLmxhc3RDaGlsZDsKICAgICAgICBzd2l0Y2godmFsdWUpIHsKICAgICAgICAgIGNhc2UgIi0iOiAgICAgICAgICAgZWxlbWVudC5pbm5lckhUTUwgPSB2YWx1ZTsgYnJlYWs7CiAgICAgICAgICBjYXNlICJ4VGVWZSBEdW1teSI6IGVsZW1lbnQuaW5uZXJIVE1MID0gdmFsdWU7IGJyZWFrOwogICAgICAgICAgZGVmYXVsdDogICAgICAgICAgICBlbGVtZW50LmlubmVySFRNTCA9IGdldFZhbHVlRnJvbVByb3ZpZGVyRmlsZSh2YWx1ZSwgInhtbHR2IiwgIm5hbWUiKTsgYnJlYWs7CiAgICAgICAgfQoKCgogICAgICAvL2RvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5jaGlsZE5vZGVzWzVdLmxhc3RDaGlsZC5pbm5lckhUTUwgPSB2YWx1ZS5yZXBsYWNlKC9eLipbXFxcL10vLCAnJyk7IGJyZWFrOwogICAgICBjYXNlICJ4LW1hcHBpbmciOiAgIAogICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5jaGlsZE5vZGVzWzddLmxhc3RDaGlsZC5pbm5lckhUTUwgPSB2YWx1ZTsKICAgICAgICBpZiAodmFsdWUgPT0gIi0iKSB7CiAgICAgICAgICB0aGlzQ2hhbm5lbFsieC1hY3RpdmUiXSA9IGZhbHNlOwogICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpLmNsYXNzTmFtZSA9ICJub3RBY3RpdmVFUEciOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICB0aGlzQ2hhbm5lbFsieC1hY3RpdmUiXSA9IHRydWU7CiAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkuY2xhc3NOYW1lID0gImFjdGl2ZUVQRyI7CiAgICAgICAgfQogICAgICAgIGJyZWFrOwoKICAgICAgY2FzZSAieC1ncm91cC10aXRsZSI6IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5jaGlsZE5vZGVzWzVdLmxhc3RDaGlsZC5pbm5lckhUTUwgPSB2YWx1ZTsgYnJlYWs7CgogICAgICBjYXNlICJ4LWFjdGl2ZSI6CiAgICAgICAgdmFyIHRyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpOwogICAgICAgIAogICAgICAgIGlmICh0aGlzQ2hhbm5lbC5oYXNPd25Qcm9wZXJ0eSgieC14bWx0di1maWxlIikgPT0gdHJ1ZSkgewogICAgICAgICAgaWYgKHRoaXNDaGFubmVsWyJ4LW1hcHBpbmciXSAhPSAiLSIgJiYgdGhpc0NoYW5uZWxbIngtbWFwcGluZyJdICE9IHVuZGVmaW5lZCAmJiB0aGlzQ2hhbm5lbFsieC14bWx0di1maWxlIl0gIT0gIi0iICYmIHRoaXNDaGFubmVsWyJ4LXhtbHR2LWZpbGUiXSAhPSB1bmRlZmluZWQpIHsKICAgICAgICAgICAgc3dpdGNoKHRoaXNDaGFubmVsWyJ4LWFjdGl2ZSJdKSB7CiAgICAgICAgICAgICAgY2FzZSB0cnVlOiB0ci5jbGFzc05hbWUgPSAiYWN0aXZlRVBHIjsgYnJlYWs7CiAgICAgICAgICAgICAgY2FzZSBmYWxzZTogdHIuY2xhc3NOYW1lID0gIm5vdEFjdGl2ZUVQRyI7IGJyZWFrOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgfQogICAgICAgIH0KCiAgICB9CgogICAgdXBkYXRlQ2hhbm5lbExvZ28oaWQpCgogIH0KCn0KCmZ1bmN0aW9uIHVwZGF0ZUNoYW5uZWxMb2dvKHhlcGcpIHsKICB2YXIgdGhpc0NoYW5uZWwgPSB4RVBHWyJlcGdNYXBwaW5nIl1beGVwZ107CiAgaWYgKHRoaXNDaGFubmVsWyJ4LXVwZGF0ZS1jaGFubmVsLWljb24iXSA9PSB0cnVlKSB7CiAgICB2YXIgeFhtbHR2RmlsZSAgPSB0aGlzQ2hhbm5lbFsieC14bWx0di1maWxlIl07CiAgICB2YXIgeE1hcHBpbmcgICAgPSB0aGlzQ2hhbm5lbFsieC1tYXBwaW5nIl07CgogICAgaWYgKHhYbWx0dkZpbGUgIT0gIi0iICYmIHhYbWx0dkZpbGUubGVuZ3RoID4gMCAmJiB4TWFwcGluZyAhPSAiLSIgJiYgeE1hcHBpbmcubGVuZ3RoID4gMCkgewogICAgICBpZiAoeEVQR1sieG1sdHZNYXAiXVt4WG1sdHZGaWxlXVt4TWFwcGluZ10uaGFzT3duUHJvcGVydHkoImljb24iKSkgewogICAgICAgIHZhciBsb2dvVVJMID0geEVQR1sieG1sdHZNYXAiXVt4WG1sdHZGaWxlXVt4TWFwcGluZ11bImljb24iXTsKICAgICAgICB0aGlzQ2hhbm5lbFsidHZnLWxvZ28iXSA9IGxvZ29VUkw7CiAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoeGVwZykuY2hpbGROb2Rlc1syXS5sYXN0Q2hpbGQuc2V0QXR0cmlidXRlKCJzcmMiLCBsb2dvVVJMKTsKICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY2hhbm5lbC1sb2dvIikuc2V0QXR0cmlidXRlKCJzcmMiLCBsb2dvVVJMKTsKICAgICAgfSBlbHNlIHsKICAgICAgICBhbGVydCgiTm8gbG9nbyBVUkwgaW4gdGhlIFhNTFRWIGZpbGUgYXZhaWxhYmxlIikKICAgICAgfQogICAgICAKICAgIH0KICAgIAogICAgLyoKICAgIGlmICh4RVBHWyJ4bWx0dk1hcCJdW3hYbWx0dkZpbGVdW3hNYXBwaW5nXVsiaWNvbiJdICE9IHVuZGVmaW5lZCkgewoKICAgICAgCiAgICB9CiAgICAqLwogICAgCiAgfQp9CgpmdW5jdGlvbiBzYXZlQ2hhbm5lbExvZ28oeGVwZykgewogIGlmIChidWxrID09IGZhbHNlKSB7CiAgICB2YXIgdGhpc0NoYW5uZWwgPSB4RVBHWyJlcGdNYXBwaW5nIl1beGVwZ107CiAgICB0aGlzQ2hhbm5lbFsidHZnLWxvZ28iXSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0dmctbG9nbyIpLmxhc3RDaGlsZC52YWx1ZTsKICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHhlcGcpLmNoaWxkTm9kZXNbMl0ubGFzdENoaWxkLnNldEF0dHJpYnV0ZSgic3JjIiwgdGhpc0NoYW5uZWxbInR2Zy1sb2dvIl0pOwogICAgbWFwcGluZ0RldGFpbCh4ZXBnKTsKICAgIHJldHVybgogIH0KCiAgaWYgKGJ1bGsgPT0gdHJ1ZSkgewogICAgdmFyIGtleSAgID0gInR2Zy1sb2dvIjsKICAgIHZhciB2YWx1ZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0dmctbG9nbyIpLmxhc3RDaGlsZC52YWx1ZTsKICAgIHNhdmVCdWxrKGtleSwgdmFsdWUpOwoKICAgIG1hcHBpbmdEZXRhaWwoeGVwZyk7CiAgICByZXR1cm4KICB9Cn0KCmZ1bmN0aW9uIHNhdmVDaGFubmVsSWNvblVwZGF0ZSh4ZXBnKSB7CgogIHZhciBrZXkgICA9ICJ4LXVwZGF0ZS1jaGFubmVsLWljb24iOwogIHZhciB2YWx1ZSA9IEpTT04ucGFyc2UoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIngtdXBkYXRlLWNoYW5uZWwtaWNvbiIpLmxhc3RDaGlsZC5jaGVja2VkKTsKICBpZiAoYnVsayA9PSBmYWxzZSkgewogICAgdmFyIHRoaXNDaGFubmVsID0geEVQR1siZXBnTWFwcGluZyJdW3hlcGddOwogICAgdGhpc0NoYW5uZWxba2V5XSA9IHZhbHVlCiAgICB1cGRhdGVDaGFubmVsTG9nbyh4ZXBnKQogICAgCiAgICBtYXBwaW5nRGV0YWlsKHhlcGcpOwogICAgc2VhcmNoSW5NYXBwaW5nKCk7CiAgICByZXR1cm4KICB9CgogIGlmIChidWxrID09IHRydWUpIHsKICAgIHNhdmVCdWxrKGtleSwgdmFsdWUpOwogICAgbWFwcGluZ0RldGFpbCh4ZXBnKTsKICAgIHJldHVybgogIH0KICAKfQoKZnVuY3Rpb24gc2F2ZUNoYW5uZWxOYW1lKHhlcGcpIHsKICBpZiAoYnVsayA9PSBmYWxzZSkgewogICAgdmFyIHRoaXNDaGFubmVsID0geEVQR1siZXBnTWFwcGluZyJdW3hlcGddOwogICAgdGhpc0NoYW5uZWxbIngtbmFtZSJdID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIngtbmFtZSIpLmxhc3RDaGlsZC52YWx1ZTsKICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHhlcGcpLmNoaWxkTm9kZXNbM10ubGFzdENoaWxkLmlubmVySFRNTCA9IHRoaXNDaGFubmVsWyJ4LW5hbWUiXTsKICAgIG1hcHBpbmdEZXRhaWwoeGVwZyk7CiAgICBzZWFyY2hJbk1hcHBpbmcoKTsKICB9CiAgCn0KCmZ1bmN0aW9uIHNhdmVDaGFubmVsTmFtZVVwZGF0ZSh4ZXBnKSB7CiAgdmFyIGtleSAgID0gIngtdXBkYXRlLWNoYW5uZWwtbmFtZSI7CiAgdmFyIHZhbHVlID0gSlNPTi5wYXJzZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgieC11cGRhdGUtY2hhbm5lbC1uYW1lIikubGFzdENoaWxkLmNoZWNrZWQpOwoKICBpZiAoYnVsayA9PSBmYWxzZSkgewogICAgdmFyIHRoaXNDaGFubmVsID0geEVQR1siZXBnTWFwcGluZyJdW3hlcGddOwogICAgdGhpc0NoYW5uZWxba2V5XSA9IHZhbHVlCiAgICBtYXBwaW5nRGV0YWlsKHhlcGcpOwogICAgc2VhcmNoSW5NYXBwaW5nKCk7CiAgICByZXR1cm4KICB9CgogIGlmIChidWxrID09IHRydWUpIHsKICAgIHNhdmVCdWxrKGtleSwgdmFsdWUpOwogICAgbWFwcGluZ0RldGFpbCh4ZXBnKTsKICAgIHJldHVybgogIH0KCn0KCmZ1bmN0aW9uIHNhdmVDaGFubmVsU3RhdHVzKHhlcGcpIHsKICB2YXIgdGhpc0NoYW5uZWwgPSB4RVBHWyJlcGdNYXBwaW5nIl1beGVwZ107CiAgdmFyIHhYbWx0dkZpbGUgPSB0aGlzQ2hhbm5lbFsieC14bWx0di1maWxlIl07CgogIHZhciBrZXkgICA9ICJ4LWFjdGl2ZSI7CiAgdmFyIHZhbHVlID0gSlNPTi5wYXJzZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgieC1hY3RpdmUiKS5sYXN0Q2hpbGQuY2hlY2tlZCk7CgogIGlmICh4RVBHWyJ4bWx0dk1hcCJdLmhhc093blByb3BlcnR5KHhYbWx0dkZpbGUpID09IHRydWUpIHsKICAgIGlmICh0aGlzQ2hhbm5lbFsieC1tYXBwaW5nIl0gIT0gIi0iICYmIHRoaXNDaGFubmVsWyJ4LW1hcHBpbmciXSAhPSB1bmRlZmluZWQpIHsKICAgICAgdGhpc0NoYW5uZWxbIngtYWN0aXZlIl0gPSAhdGhpc0NoYW5uZWxbIngtYWN0aXZlIl07CiAgICAgIHZhciB0ciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHhlcGcpOwogICAgICBzd2l0Y2godGhpc0NoYW5uZWxbIngtYWN0aXZlIl0pIHsKICAgICAgICBjYXNlIHRydWU6IHRyLmNsYXNzTmFtZSA9ICJhY3RpdmVFUEciOyBicmVhazsKICAgICAgICBjYXNlIGZhbHNlOiB0ci5jbGFzc05hbWUgPSAibm90QWN0aXZlRVBHIjsgYnJlYWs7CiAgICAgIH0KICAgICAgCiAgICB9IGVsc2UgewogICAgICB2YXIgZXJyID0gIlhNTFRWIENoYW5uZWwgaXMgbm90IHNlbGVjdGVkIgogICAgICBhbGVydChlcnIpCiAgICAgIHZhbHVlID0gZmFsc2UKICAgIH0KCiAgfSBlbHNlIHsKICAgIGlmICh2YWx1ZSA9PSB0cnVlKSB7CiAgICAgIHZhciBlcnIgPSAiWE1MVFYgRmlsZSBpcyBub3Qgc2VsZWN0ZSIKICAgICAgYWxlcnQoZXJyKQogICAgICB2YWx1ZSA9IGZhbHNlCiAgICB9CiAgfQoKICAKCiAgaWYgKGJ1bGsgPT0gZmFsc2UpIHsKICAgIHZhciB0aGlzQ2hhbm5lbCA9IHhFUEdbImVwZ01hcHBpbmciXVt4ZXBnXTsKICAgIHRoaXNDaGFubmVsW2tleV0gPSB2YWx1ZQogICAgbWFwcGluZ0RldGFpbCh4ZXBnKTsKICAgIHNlYXJjaEluTWFwcGluZygpOwoKICAgIHZhciB0ciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHhlcGcpOwogICAgc3dpdGNoKHRoaXNDaGFubmVsWyJ4LWFjdGl2ZSJdKSB7CiAgICAgIGNhc2UgdHJ1ZTogdHIuY2xhc3NOYW1lID0gImFjdGl2ZUVQRyI7IGJyZWFrOwogICAgICBjYXNlIGZhbHNlOiB0ci5jbGFzc05hbWUgPSAibm90QWN0aXZlRVBHIjsgYnJlYWs7CiAgICB9CgogICAgcmV0dXJuCiAgfQoKICBpZiAoYnVsayA9PSB0cnVlKSB7CiAgICBzYXZlQnVsayhrZXksIHZhbHVlKTsKICAgIG1hcHBpbmdEZXRhaWwoeGVwZyk7CiAgICByZXR1cm4KICB9Cgp9CgpmdW5jdGlvbiBzYXZlR3JvdXBUaXRsZSh4ZXBnKSB7CiAgdmFyIGtleSAgID0gIngtZ3JvdXAtdGl0bGUiOwogIHZhciB2YWx1ZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ4LWdyb3VwLXRpdGxlIikubGFzdENoaWxkLnZhbHVlOwoKICBpZiAoYnVsayA9PSBmYWxzZSkgewogICAgdmFyIHRoaXNDaGFubmVsID0geEVQR1siZXBnTWFwcGluZyJdW3hlcGddOwogICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoeGVwZykuY2hpbGROb2Rlc1s1XS5sYXN0Q2hpbGQuaW5uZXJIVE1MID0gdmFsdWU7CiAgICB0aGlzQ2hhbm5lbFtrZXldID0gdmFsdWU7CiAgICBtYXBwaW5nRGV0YWlsKHhlcGcpOwogICAgc2VhcmNoSW5NYXBwaW5nKCk7CiAgfQoKICBpZiAoYnVsayA9PSB0cnVlKSB7CiAgICBzYXZlQnVsayhrZXksIHZhbHVlKTsKICAgIG1hcHBpbmdEZXRhaWwoeGVwZyk7CiAgICByZXR1cm4KICB9Cgp9CgpmdW5jdGlvbiBzYXZlQ2F0ZWdvcnkoeGVwZykgewogIHZhciBrZXkgICA9ICJ4LWNhdGVnb3J5IjsKICB2YXIgdmFsdWUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgieC1jYXRlZ29yeSIpLmxhc3RDaGlsZC52YWx1ZTsKCiAgaWYgKGJ1bGsgPT0gZmFsc2UpIHsKICAgIHZhciB0aGlzQ2hhbm5lbCA9IHhFUEdbImVwZ01hcHBpbmciXVt4ZXBnXTsKICAgIHRoaXNDaGFubmVsW2tleV0gPSB2YWx1ZQogICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoeGVwZykuY2hpbGROb2Rlc1szXS5sYXN0Q2hpbGQuY2xhc3NOYW1lID0gdmFsdWUKICAgIG1hcHBpbmdEZXRhaWwoeGVwZyk7CiAgICBzZWFyY2hJbk1hcHBpbmcoKTsKICB9CgogIGlmIChidWxrID09IHRydWUpIHsKICAgIHNhdmVCdWxrKGtleSwgdmFsdWUpOwogICAgbWFwcGluZ0RldGFpbCh4ZXBnKTsKICAgIHJldHVybgogIH0KCn0KCmZ1bmN0aW9uIGFycmFuZ2VUYWJsZShlbG0pIHsKICB2YXIgdHIgPSBlbG0ucGFyZW50RWxlbWVudC5wYXJlbnRFbGVtZW50OwogIHZhciBuZXdQb3NpdGlvbiA9IGVsbS52YWx1ZTsKICB2YXIgeF9jaGFubmVsSUQgPSB0ci5pZDsKCiAgc3dpdGNoKGlzTmFOKG5ld1Bvc2l0aW9uKSkgewogICAgY2FzZSB0cnVlOiAKICAgICAgYWxlcnQoIkNoLiBOby4gbXVzdCBiZSBhIG51bWJlciIpOwogICAgICBtYXBwaW5nRXJyb3IgPSB0cnVlOwogICAgICBicmVhazsKICB9CgoKICAvL3ZhciBpdGVtID0geEVQR1siZXBnTWFwcGluZyJdW2lkXTsKICB2YXIga2V5cyA9IGdldE9iaktleXMoeEVQR1siZXBnTWFwcGluZyJdKQogIGZvciAodmFyIGkgPSAwOyBpIDwga2V5cy5sZW5ndGg7IGkrKykgewogICAgdmFyIGl0ZW0gPSB4RVBHWyJlcGdNYXBwaW5nIl1ba2V5c1tpXV07CiAgICBpZiAoaXRlbVsieC1lcGciXSA9PSB4X2NoYW5uZWxJRCkgewoKICAgICAgLy8gQ2hlY2sgaWYgcG9zaXRpb24gZXhpc3QKICAgICAgdmFyIG9sZFBvc2l0aW9uID0gaXRlbVsieC1jaGFubmVsSUQiXTsKCiAgICAgIGlmIChvbGRQb3NpdGlvbiAhPSBuZXdQb3NpdGlvbikgewoKICAgICAgICBjb25zb2xlLmxvZyhuZXdQb3NpdGlvbiwgbmV3UG9zaXRpb24ubGVuZ3RoKTsKICAgICAgICBpZiAobmV3UG9zaXRpb24ubGVuZ3RoID09IDApIHsKICAgICAgICAgIG1hcHBpbmdFcnJvciA9IHRydWUKICAgICAgICAgIG5ld1Bvc2l0aW9uID0gb2xkUG9zaXRpb247CiAgICAgICAgICAKICAgICAgICB9CgogICAgICAgIGlmIChtYXBwaW5nRXJyb3IgPT0gdHJ1ZSkgewogICAgICAgICAgZWxtLnZhbHVlID0gb2xkUG9zaXRpb247CiAgICAgICAgICByZXR1cm47CiAgICAgICAgfQoKICAgICAgICBmb3IgKHZhciBqID0ga2V5cy5sZW5ndGggLSAxOyBqID49IDA7IGotLSkgewogICAgICAgICAgdmFyIGNoYW5uZWwgPSB4RVBHWyJlcGdNYXBwaW5nIl1ba2V5c1tqXV07CiAgICAgICAgICBpZiAoa2V5c1tqXSAhPSB4X2NoYW5uZWxJRCkgewogICAgICAgICAgICBpZiAobmV3UG9zaXRpb24gPT0gY2hhbm5lbFsieC1jaGFubmVsSUQiXSkgeyAvLyBJZiBwb3NpdGlvbiBleGlzdCwgc2V0IG5leHQgZnJlZSBwb3NpdGlvbi4KICAgICAgICAgICAgICBuZXdQb3NpdGlvbisrOwogICAgICAgICAgICAgIGVsbS52YWx1ZSA9IG5ld1Bvc2l0aW9uOwogICAgICAgICAgICAgIGFycmFuZ2VUYWJsZShlbG0pOwogICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgICAvKgogICAgICAgICAgICAgIHZhciBuZXdFcnJvciA9IG5ldyBPYmplY3QoKTsKICAgICAgICAgICAgICBuZXdFcnJvclsiZXJyIl0gPSAiRHVwbGljYXRlIElEIjsKICAgICAgICAgICAgICBjaGVja0VycihuZXdFcnJvcik7CiAgICAgICAgICAgICAgc29ydFRhYmxlKCk7CiAgICAgICAgICAgICAgbWFwcGluZ0Vycm9yID0gdHJ1ZTsKICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCh4X2NoYW5uZWxJRCkuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIklOUFVUIilbMF0uZm9jdXMoKTsKICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICAgKi8KICAgICAgICAgICAgfQogICAgICAgICAgfQogICAgICAgIH0KCiAgICAgIH0KCiAgICAgIC8vY29uc29sZS5sb2cob2xkUG9zaXRpb24sIG5ld1Bvc2l0aW9uKTsKICAgICAgaWYgKGtleXNbaV0gPT0geF9jaGFubmVsSUQgJiYgb2xkUG9zaXRpb24gIT0gbmV3UG9zaXRpb24pIHsgIAogICAgICAgIGl0ZW1bIngtY2hhbm5lbElEIl0gPSBuZXdQb3NpdGlvbjsKICAgICAgfSAKCiAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJsb2dJbmZvIikuY2xhc3NOYW1lID0gIm5vdFZpc2libGUiOwogICAgICBpZiAoY29sdW1uVG9Tb3J0ID09IDEpIHsKICAgICAgICBzb3J0VGFibGUoY29sdW1uVG9Tb3J0KTsKICAgICAgfQogICAgICBtYXBwaW5nRXJyb3IgPSBmYWxzZTsKCiAgICB9CiAgfQp9CgpmdW5jdGlvbiBjaGFuZ2VYbWx0dkZpbGUoeGVwZywgZWxtKSB7CgogIHZhciB0aGlzQ2hhbm5lbCA9IHhFUEdbImVwZ01hcHBpbmciXVt4ZXBnXTsKICAKICB2YXIgeFhtbHR2RmlsZSAgICA9IGVsbS52YWx1ZTsKICB2YXIgY2hhbm5lbElEICAgICA9IHRoaXNDaGFubmVsWyJ0dmctaWQiXTsKICB0aGlzQ2hhbm5lbFsieC14bWx0di1maWxlIl0gPSB4WG1sdHZGaWxlOwoKICBpZiAoYnVsayA9PSBmYWxzZSkgewoKICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKXsgCgogICAgICB2YXIgeE1hcHBpbmcgPSAiLSIKCiAgICAgIC8vIEF1dG9tYXAKICAgICAgaWYgKHhYbWx0dkZpbGUgIT0gIi0iKSB7CiAgICAgICAgaWYgKHhFUEdbInhtbHR2TWFwIl1beFhtbHR2RmlsZV0uaGFzT3duUHJvcGVydHkoY2hhbm5lbElEKSA9PSB0cnVlKSB7CiAgICAgICAgICB0aGlzQ2hhbm5lbFsieC1tYXBwaW5nIl0gPSBjaGFubmVsSUQ7CiAgICAgICAgICB4TWFwcGluZyA9IGNoYW5uZWxJRAogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICB0aGlzQ2hhbm5lbFsieC1tYXBwaW5nIl0gPSB4TWFwcGluZwogICAgICAgIH0KICAgICAgfSBlbHNlIHsKICAgICAgICB0aGlzQ2hhbm5lbFsieC1tYXBwaW5nIl0gPSB4TWFwcGluZwoKICAgICAgfQogICAgICAKICAgICAgdmFyIHRyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoeGVwZyk7CgogICAgICBpZiAoeE1hcHBpbmcgPT0gIi0iKSB7CiAgICAgICAgdGhpc0NoYW5uZWxbIngtYWN0aXZlIl0gPSBmYWxzZTsKICAgICAgICB0ci5jbGFzc05hbWUgPSAibm90QWN0aXZlRVBHIgogICAgICB9IGVsc2UgewogICAgICAgIHRoaXNDaGFubmVsWyJ4LWFjdGl2ZSJdICA9IHRydWU7CiAgICAgICAgdHIuY2xhc3NOYW1lID0gImFjdGl2ZUVQRyIKICAgICAgfQoKICAgICAgLy8gU2hvdyBkYXRhIGluIHRhYmxlCiAgICAgIHZhciB0ZCA9IHRyLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJURCIpOwogICAgICB2YXIgZGF0YUZpbGUgPSB0ZFt0ZC5sZW5ndGggLSAyXS5sYXN0Q2hpbGQ7CiAgICAgIHN3aXRjaCh4WG1sdHZGaWxlKSB7CiAgICAgICAgY2FzZSAiLSI6ICAgICAgICAgICBkYXRhRmlsZS5pbm5lckhUTUwgPSB4WG1sdHZGaWxlOyBicmVhazsKICAgICAgICBjYXNlICJ4VGVWZSBEdW1teSI6IGRhdGFGaWxlLmlubmVySFRNTCA9IHhYbWx0dkZpbGU7IGJyZWFrOwogICAgICAgIGRlZmF1bHQ6ICAgICAgICAgICAgZGF0YUZpbGUuaW5uZXJIVE1MID0gZ2V0VmFsdWVGcm9tUHJvdmlkZXJGaWxlKHhYbWx0dkZpbGUsICJ4bWx0diIsICJuYW1lIik7IGJyZWFrOwogICAgICB9CgogICAgICAvL3hYbWx0dkZpbGUucmVwbGFjZSgvXi4qW1xcXC9dLywgJycpOwoKICAgICAgdmFyIGRhdGFYbWx0dklEID0gdGRbdGQubGVuZ3RoIC0gMV0ubGFzdENoaWxkOwogICAgICBkYXRhWG1sdHZJRC5pbm5lckhUTUwgPSB4TWFwcGluZzsKICAgICAgCiAgICAgIG1hcHBpbmdEZXRhaWwoeGVwZyk7CgogICAgfSwgMTApOwogIH0KCiAgaWYgKGJ1bGsgPT0gdHJ1ZSkgewogICAgdmFyIGtleSA9ICJ4LXhtbHR2LWZpbGUiCiAgICB2YXIgdmFsdWUgPSB4WG1sdHZGaWxlCiAgICBzYXZlQnVsayhrZXksIHZhbHVlKTsKCiAgICB2YXIga2V5ID0gIngtbWFwcGluZyIKICAgIHZhciB2YWx1ZSA9ICItIgogICAgc2F2ZUJ1bGsoa2V5LCB2YWx1ZSk7CiAgICBtYXBwaW5nRGV0YWlsKHhlcGcpOwogICAgcmV0dXJuCiAgfQoKICByZXR1cm4KfQoKZnVuY3Rpb24gbWFwcGluZ0NoYW5uZWwoeGVwZywgZWxtKSB7CiAgdmFyIHRoaXNDaGFubmVsID0geEVQR1siZXBnTWFwcGluZyJdW3hlcGddOwogIC8vdmFyIHhNYXBwaW5nICAgICAgPSBlbG0udmFsdWU7CiAgdmFyIHhNYXBwaW5nICAgICAgPSBlbG0ub3B0aW9uc1tlbG0uc2VsZWN0ZWRJbmRleF0udmFsdWUKICAKICBpZiAoYnVsayA9PSBmYWxzZSkgewogICAgCiAgICB0aGlzQ2hhbm5lbFsieC1tYXBwaW5nIl0gPSB4TWFwcGluZzsKCiAgICB2YXIgdHIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCh4ZXBnKTsKCiAgICBpZiAoeE1hcHBpbmcgPT0gIi0iKSB7CiAgICAgIHRoaXNDaGFubmVsWyJ4LWFjdGl2ZSJdID0gZmFsc2U7CiAgICAgIHRyLmNsYXNzTmFtZSA9ICJub3RBY3RpdmVFUEciCiAgICB9IGVsc2UgewogICAgICB0aGlzQ2hhbm5lbFsieC1hY3RpdmUiXSAgPSB0cnVlOwogICAgICB0ci5jbGFzc05hbWUgPSAiYWN0aXZlRVBHIgogICAgfQoKICAgIC8vIFNob3cgZGF0YSBpbiB0YWJsZQogICAgdmFyIHRkID0gdHIuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlREIik7CiAgICB2YXIgZGF0YVhtbHR2SUQgPSB0ZFt0ZC5sZW5ndGggLSAxXS5sYXN0Q2hpbGQ7CiAgICBkYXRhWG1sdHZJRC5pbm5lckhUTUwgPSB4TWFwcGluZzsKICAgIC8vY29uc29sZS5sb2codGRbdGQubGVuZ3RoIC0gMV0pOwogICAgLy9jb25zb2xlLmxvZyh4TWFwcGluZywgZWxtKTsKCiAgICBjcmVhdGVTZWFyY2hPYmooKTsKICAgIHNlYXJjaEluTWFwcGluZygpOwogICAgdXBkYXRlQ2hhbm5lbExvZ28oeGVwZykKICAgIG1hcHBpbmdEZXRhaWwoeGVwZyk7CiAgICByZXR1cm4KICB9CgogIGlmIChidWxrID09IHRydWUpIHsKCiAgICB2YXIga2V5ID0gIngtbWFwcGluZyIKICAgIHZhciB2YWx1ZSA9IHhNYXBwaW5nCiAgICBzYXZlQnVsayhrZXksIHZhbHVlKTsKCiAgICBtYXBwaW5nRGV0YWlsKHhlcGcpOwogICAgcmV0dXJuCiAgfQoKICByZXR1cm4KfQoKCmZ1bmN0aW9uIGNyZWF0ZU5ld1REKG5ld0l0ZW0sIGVsbSkgewogIHZhciBuZXdURCA9IG5ldyBPYmplY3QoKTsKICBuZXdURFsiX2VsZW1lbnQiXSA9ICJURCI7CiAgCiAgZWxtLmFwcGVuZENoaWxkKGNyZWF0ZUVsZW1lbnQobmV3VEQpKTsKICB2YXIgdGQgPSBlbG0ubGFzdENoaWxkOyAKICAKICBzd2l0Y2gobmV3SXRlbVsiX2VsZW1lbnQiXSkgewogICAgY2FzZSAiU0VMRUNUIjoKICAgICAgdGQuYXBwZW5kQ2hpbGQoY3JlYXRlRWxlbWVudChuZXdJdGVtKSk7CiAgICAgIHZhciB0ZCA9IGVsbS5sYXN0Q2hpbGQubGFzdENoaWxkOyAKICAgICAgdmFyIHZhbHVlcyA9IG5ld0l0ZW1bIl9vcHRpb25WYWx1ZXMiXTsKICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB2YWx1ZXMubGVuZ3RoOyBpKyspIHsKICAgICAgICAvL2NvbnNvbGUubG9nKGl0ZW0pOwogICAgICAgIHZhciBuZXdFbnRyeSA9IG5ldyBPYmplY3Q7CiAgICAgICAgbmV3RW50cnlbIl9lbGVtZW50Il0gID0gIk9QVElPTiI7CiAgICAgICAgbmV3RW50cnlbIl90ZXh0Il0gICAgID0gdmFsdWVzW2ldOwogICAgICAgIG5ld0VudHJ5WyJ2YWx1ZSJdICAgICA9IHZhbHVlc1tpXTsKICAgICAgICB0ZC5hcHBlbmRDaGlsZChjcmVhdGVFbGVtZW50KG5ld0VudHJ5KSk7CiAgICAgIH0KICAgICAgdGQudmFsdWUgPSBuZXdJdGVtWyJ2YWx1ZSJdOwoKICAgICAgYnJlYWs7CiAgICAKICAgIGRlZmF1bHQ6IAogICAgICAKICAgICAgdGQuYXBwZW5kQ2hpbGQoY3JlYXRlRWxlbWVudChuZXdJdGVtKSk7CiAgICAgIGJyZWFrOwogIH0KICAKfQoKZnVuY3Rpb24gc2F2ZVhFUEcoKSB7CiAgaWYgKG1hcHBpbmdFcnJvciA9PSB0cnVlKSB7CiAgICBhbGVydCgiRGF0YSBjb3VsZCBub3QgYmUgc2F2ZWQsIGVycm9ycyBpbiB0aGUgWEVQRyBkYXRhLiIpOwogICAgcmV0dXJuOwogIH0KICBzaG93TG9hZGluZ1NjcmVlbih0cnVlKTsKCiAgdmFyIGRhdGEgPSBuZXcgT2JqZWN0KCk7CiAgZGF0YVsiZXBnTWFwcGluZyJdID0geEVQR1siZXBnTWFwcGluZyJdOwogIGRhdGFbImNtZCJdID0gInNhdmVFcGdNYXBwaW5nIjsKICAvL2NvbnNvbGUubG9nKGRhdGEpOwogIHhUZVZlKGRhdGEpOwp9CgpmdW5jdGlvbiBidWxrRWRpdCgpIHsKICBidWxrID0gIWJ1bGs7CiAgdmFyIGNsYXNzTmFtZTsKCiAgdmFyIGVsbSA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlDbGFzc05hbWUoImJ1bGsiKTsKCiAgc3dpdGNoKGJ1bGspIHsKICAgIGNhc2UgdHJ1ZTogCiAgICAgIGNsYXNzTmFtZSA9ICJidWxrIHNob3dCdWxrIjsKICAgICAgYnJlYWs7CgogICAgY2FzZSBmYWxzZTogCiAgICAgIGNsYXNzTmFtZSA9ICJidWxrIGhpZGVCdWxrIjsKICAgICAgYnVsa0VkaXRBbGwgPSBmYWxzZTsKICAgICAgYnJlYWs7CiAgfQoKICBmb3IgKHZhciBpID0gMDsgaSA8IGVsbS5sZW5ndGg7IGkrKykgewogICAgZWxtW2ldLmNsYXNzTmFtZSA9IGNsYXNzTmFtZTsKICAgIGVsbVtpXS5jaGVja2VkID0gZmFsc2U7CiAgfQoKfQoKZnVuY3Rpb24gYnVsa0VkaXRBbGxDaGFubmVscygpIHsKCiAgdmFyIGFsbFRSID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImlkX21hcHBpbmciKS5nZXRFbGVtZW50c0J5VGFnTmFtZSgiVFIiKTsKCiAgZm9yICh2YXIgaSA9IDE7IGkgPCBhbGxUUi5sZW5ndGg7IGkrKykgewogICAgaWYgKGFsbFRSW2ldLnN0eWxlLmRpc3BsYXkgIT0gIm5vbmUiKSB7CiAgICAgIHN3aXRjaChidWxrRWRpdEFsbCkgewogICAgICAgIGNhc2UgZmFsc2U6IGFsbFRSW2ldLmZpcnN0Q2hpbGQuZmlyc3RDaGlsZC5jaGVja2VkID0gdHJ1ZTsgYnJlYWs7CiAgICAgICAgY2FzZSB0cnVlOiBhbGxUUltpXS5maXJzdENoaWxkLmZpcnN0Q2hpbGQuY2hlY2tlZCA9IGZhbHNlOyBicmVhazsgCiAgICAgIH0KCiAgICB9CiAgICAKICB9CgogIGJ1bGtFZGl0QWxsID0gIWJ1bGtFZGl0QWxsOwp9CgpmdW5jdGlvbiBzb3J0VGFibGUoY29sdW1tKSB7CiAgLy9jb25zb2xlLmxvZyhjb2x1bW0pOwogIGlmIChjb2x1bW0gPT0gY29sdW1uVG9Tb3J0KSB7CiAgICAvL3JldHVybjsKICB9CgogIHZhciB0YWJsZSAgICAgICA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJpZF9tYXBwaW5nIik7CiAgdmFyIHRhYmxlSGVhZCAgID0gdGFibGUuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlRSIilbMF07CiAgdmFyIHRhYmxlSXRlbXMgID0gdGFibGVIZWFkLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJURCIpOwogIAogIHZhciBzb3J0T2JqID0gbmV3IE9iamVjdCgpOwogIHZhciB4LCB4VmFsdWU7CiAgdmFyIHRhYmxlSGVhZGVyCiAgdmFyIHNvcnRCeVN0cmluZyA9IGZhbHNlCgogIGlmIChjb2x1bW0gPiAwICYmIGNvbHVtblRvU29ydCA+IDApICB7CiAgICB0YWJsZUl0ZW1zW2NvbHVtblRvU29ydF0uY2xhc3NOYW1lID0gInBvaW50ZXIiOwogICAgdGFibGVJdGVtc1tjb2x1bW1dLmNsYXNzTmFtZSA9ICJzb3J0VGhpcyI7CiAgfQoKICBjb2x1bW5Ub1NvcnQgPSBjb2x1bW07CgogIHZhciByb3dzID0gdGFibGUucm93czsKCiAgaWYgKHJvd3NbMV0gIT0gdW5kZWZpbmVkKSB7CiAgICB0YWJsZUhlYWRlciA9IHJvd3NbMF0KCiAgICB4ID0gcm93c1sxXS5nZXRFbGVtZW50c0J5VGFnTmFtZSgiVEQiKVtjb2x1bW1dOwogICAgCiAgICBmb3IgKGkgPSAxOyBpIDwgcm93cy5sZW5ndGg7IGkrKykgewoKICAgICAgeCA9IHJvd3NbaV0uZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlREIilbY29sdW1tXTsKCiAgICAgIHN3aXRjaCh4LmNoaWxkTm9kZXNbMF0udGFnTmFtZS50b0xvd2VyQ2FzZSgpKSB7CiAgICAgICAgY2FzZSAiaW5wdXQiOgogICAgICAgICAgeFZhbHVlID0geC5nZXRFbGVtZW50c0J5VGFnTmFtZSgiSU5QVVQiKVswXS52YWx1ZS50b0xvd2VyQ2FzZSgpOwogICAgICAgICAgYnJlYWs7CgogICAgICAgIGNhc2UgInAiOgogICAgICAgICAgeFZhbHVlID0geC5nZXRFbGVtZW50c0J5VGFnTmFtZSgiUCIpWzBdLmlubmVyVGV4dC50b0xvd2VyQ2FzZSgpOwogICAgICAgICAgYnJlYWs7CiAgICAgICAgCiAgICAgICAgZGVmYXVsdDogY29uc29sZS5sb2coeC5jaGlsZE5vZGVzWzBdLnRhZ05hbWUpOwogICAgICB9CgogICAgICBpZiAoeFZhbHVlID09ICIiIHx8IHhWYWx1ZSA9PSBOYU4pIHsKICAgICAgICB4VmFsdWUgPSBpCiAgICAgICAgc29ydE9ialtpXSA9IHJvd3NbaV07CiAgICAgIAogICAgICB9IGVsc2UgewoKICAgICAgICBzd2l0Y2goaXNOYU4oeFZhbHVlKSkgewogICAgICAgICAgY2FzZSBmYWxzZTogCgogICAgICAgICAgICB4VmFsdWUgPSBwYXJzZUZsb2F0KHhWYWx1ZSk7CiAgICAgICAgICAgIHNvcnRPYmpbeFZhbHVlXSA9IHJvd3NbaV0KICAgICAgICAgICAgYnJlYWs7CgogICAgICAgICAgY2FzZSB0cnVlOgoKICAgICAgICAgICAgc29ydEJ5U3RyaW5nID0gdHJ1ZQogICAgICAgICAgICBzb3J0T2JqW3hWYWx1ZS50b0xvd2VyQ2FzZSgpICsgaV0gPSByb3dzW2ldCiAgICAgICAgICAgIGJyZWFrOwoKICAgICAgICB9CgogICAgICB9CiAgICAKICAgIH0KCiAgICB3aGlsZSAodGFibGUuZmlyc3RDaGlsZCkgewogICAgICB0YWJsZS5yZW1vdmVDaGlsZCh0YWJsZS5maXJzdENoaWxkKTsKICAgIH0KICAgIAogICAgdmFyIHNvcnRWYWx1ZXMgPSBnZXRPYmpLZXlzKHNvcnRPYmopCiAgICBpZiAoc29ydEJ5U3RyaW5nID09IHRydWUpIHsKICAgICAgc29ydFZhbHVlcy5zb3J0KCkKICAgIH0gZWxzZSB7CiAgICAgIGZ1bmN0aW9uIHNvcnRGbG9hdChhLCBiKSB7IAogICAgICAgIHJldHVybiBhIC0gYjsgCiAgICAgIH0KICAgICAgc29ydFZhbHVlcy5zb3J0KHNvcnRGbG9hdCk7CiAgICB9CgogICAgdGFibGUuYXBwZW5kQ2hpbGQodGFibGVIZWFkZXIpCiAgICAKICAgIGZvciAodmFyIGkgPSAwOyBpIDwgc29ydFZhbHVlcy5sZW5ndGg7IGkrKykgewogICAgIAogICAgICB0YWJsZS5hcHBlbmRDaGlsZChzb3J0T2JqW3NvcnRWYWx1ZXNbaV1dKQoKICAgIH0KICAgIAogIH0KCn0KCgpmdW5jdGlvbiBzb3J0VGFibGVfb2xkKGNvbHVtbSkgewogIHNob3dMb2FkaW5nU2NyZWVuKHRydWUpOwogIAogIHNldFRpbWVvdXQoZnVuY3Rpb24oKXsgCgogICAgdmFyIHRhYmxlLCByb3dzLCBzd2l0Y2hpbmcsIGksIHgsIHksIHNob3VsZFN3aXRjaDsKICAgIHRhYmxlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImlkX21hcHBpbmciKTsKCiAgICB2YXIgdGFibGVIZWFkID0gdGFibGUuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlRSIilbMF07CiAgICB2YXIgdGFibGVJdGVtcyA9IHRhYmxlSGVhZC5nZXRFbGVtZW50c0J5VGFnTmFtZSgiVEQiKTsKCiAgICBpZiAoY29sdW1tID4gMCkgIHsKICAgICAgdGFibGVJdGVtc1tjb2x1bW5Ub1NvcnRdLmNsYXNzTmFtZSA9ICJwb2ludGVyIjsKICAgICAgdGFibGVJdGVtc1tjb2x1bW1dLmNsYXNzTmFtZSA9ICJzb3J0VGhpcyI7CiAgICB9CiAgICAKICAgIGNvbHVtblRvU29ydCA9IGNvbHVtbTsKCiAgICAvKgogICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0YWJsZUl0ZW1zLmxlbmd0aDsgaSsrKSB7CiAgICAgIGlmICh0YWJsZUl0ZW1zW2ldLmNsYXNzTmFtZSAhPSB1bmRlZmluZWQpIHsKICAgICAgICB0YWJsZUl0ZW1zW2ldLmNsYXNzTmFtZSA9ICJwb2ludGVyIgogICAgICB9CgogICAgfQogICAgKi8KCiAgICAKCiAgICBjb25zb2xlLmxvZyh0YWJsZUl0ZW1zKTsgCgogICAgc3dpdGNoaW5nID0gdHJ1ZTsKICAgIHdoaWxlIChzd2l0Y2hpbmcpIHsKICAgICAgc3dpdGNoaW5nID0gZmFsc2U7CiAgICAgIHJvd3MgPSB0YWJsZS5yb3dzOwogICAgICBmb3IgKGkgPSAxOyBpIDwgKHJvd3MubGVuZ3RoIC0gMSk7IGkrKykgewogICAgICAgIHNob3VsZFN3aXRjaCA9IGZhbHNlOwoKICAgICAgICB4ID0gcm93c1tpXS5nZXRFbGVtZW50c0J5VGFnTmFtZSgiVEQiKVtjb2x1bW1dOwogICAgICAgIHkgPSByb3dzW2kgKyAxXS5nZXRFbGVtZW50c0J5VGFnTmFtZSgiVEQiKVtjb2x1bW1dOwoKICAgICAgICBzd2l0Y2goeC5jaGlsZE5vZGVzWzBdLnRhZ05hbWUudG9Mb3dlckNhc2UoKSkgewogICAgICAgICAgY2FzZSAiaW5wdXQiOgogICAgICAgICAgICB4VmFsdWUgPSB4LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJJTlBVVCIpWzBdLnZhbHVlLnRvTG93ZXJDYXNlKCk7CiAgICAgICAgICAgIHlWYWx1ZSA9IHkuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIklOUFVUIilbMF0udmFsdWUudG9Mb3dlckNhc2UoKTsKICAgICAgICAgICAgYnJlYWs7CgogICAgICAgICAgY2FzZSAicCI6CiAgICAgICAgICAgIHhWYWx1ZSA9IHguZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlAiKVswXS5pbm5lclRleHQudG9Mb3dlckNhc2UoKTsKICAgICAgICAgICAgeVZhbHVlID0geS5nZXRFbGVtZW50c0J5VGFnTmFtZSgiUCIpWzBdLmlubmVyVGV4dC50b0xvd2VyQ2FzZSgpOwogICAgICAgICAgICBicmVhazsKICAgICAgICAgIAogICAgICAgICAgZGVmYXVsdDogY29uc29sZS5sb2coeC5jaGlsZE5vZGVzWzBdLnRhZ05hbWUpOwogICAgICAgIH0KCiAgICAgICAgCiAgICAgICAgc3dpdGNoKGlzTmFOKHhWYWx1ZSkpIHsKICAgICAgICAgIGNhc2UgZmFsc2U6IHhWYWx1ZSA9IHBhcnNlRmxvYXQoeFZhbHVlKSA7IGJyZWFrOwogICAgICAgIH0KCiAgICAgICAgc3dpdGNoKGlzTmFOKHlWYWx1ZSkpIHsKICAgICAgICAgIGNhc2UgZmFsc2U6IHlWYWx1ZSA9IHBhcnNlRmxvYXQoeVZhbHVlKSA7IGJyZWFrOwogICAgICAgIH0KICAgICAgICAKCiAgICAgICAgaWYgKHhWYWx1ZSA+IHlWYWx1ZSkgewogICAgICAgICAgc2hvdWxkU3dpdGNoID0gdHJ1ZTsKICAgICAgICAgIGJyZWFrOwogICAgICAgIH0KCiAgICAgIH0KICAgICAgaWYgKHNob3VsZFN3aXRjaCkgewogICAgICAgIHJvd3NbaV0ucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUocm93c1tpICsgMV0sIHJvd3NbaV0pOwogICAgICAgIHN3aXRjaGluZyA9IHRydWU7CiAgICAgIH0KICAgIH0KICAgIGNyZWF0ZVNlYXJjaE9iaigpCiAgICAKICAgIHNob3dMb2FkaW5nU2NyZWVuKGZhbHNlKTsKICB9LCAyMCk7Cgp9CgpmdW5jdGlvbiBzaG93WEVQRygpIHsKICB2YXIgdXJsID0gbG9jYXRpb24ucHJvdG9jb2wgKyAiLy8iICsgbG9jYXRpb24uaG9zdG5hbWUgKyAiOiIgKyBsb2NhdGlvbi5wb3J0ICsgIi94bWx0di94dGV2ZS54bWwiCiAgdmFyIHdpbiA9IHdpbmRvdy5vcGVuKHVybCwgJ19ibGFuaycpOwogIHdpbi5mb2N1cygpOwp9" - webUI["html/index.html"] = "PCFkb2N0eXBlIGh0bWw+CjxodG1sPgogIDxoZWFkPgogICAgPG1ldGEgY2hhcnNldD0idXRmLTgiPgogICAgPCEtLS0KICAgIDxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgsIGluaXRpYWwtc2NhbGU9MS4wIiAvPiAKICAgIC0tPgogICAgPHRpdGxlPnhUZVZlPC90aXRsZT4KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iY3NzL3NjcmVlbi5jc3MiIHR5cGU9InRleHQvY3NzIj4KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iY3NzL2Jhc2UuY3NzIiB0eXBlPSJ0ZXh0L2NzcyI+CgogICAgPHNjcmlwdCBsYW5ndWFnZT0iamF2YXNjcmlwdCIgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9ImpzL25ldHdvcmtfdHMuanMiPjwvc2NyaXB0PgogICAgPHNjcmlwdCBsYW5ndWFnZT0iamF2YXNjcmlwdCIgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9ImpzL21lbnVfdHMuanMiPjwvc2NyaXB0PgogICAgPHNjcmlwdCBsYW5ndWFnZT0iamF2YXNjcmlwdCIgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9ImpzL3NldHRpbmdzX3RzLmpzIj48L3NjcmlwdD4KICAgIDxzY3JpcHQgbGFuZ3VhZ2U9ImphdmFzY3JpcHQiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJqcy9sb2dzX3RzLmpzIj48L3NjcmlwdD4KICAgIDxzY3JpcHQgbGFuZ3VhZ2U9ImphdmFzY3JpcHQiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJqcy9iYXNlX3RzLmpzIj48L3NjcmlwdD4KCiAgPC9oZWFkPgoKICAgIDxib2R5IG9ubG9hZD0iamF2YXNjcmlwdDogUGFnZVJlYWR5KCk7Ij4KCiAgICAgIDxkaXYgaWQ9ImxvYWRpbmciIGNsYXNzPSJub25lIj4KICAgICAgICA8ZGl2IGNsYXNzPSJsb2FkZXIiPjwvZGl2PgogICAgICA8L2Rpdj4KCiAgICAgIDxkaXYgaWQ9InBvcHVwIiBjbGFzcz0ibm9uZSI+CiAgICAgICAgPGRpdiBpZD0icG9wdXAtY3VzdG9tIj48L2Rpdj4KICAgICAgPC9kaXY+CgogICAgICA8ZGl2IGlkPSJsYXlvdXQiPgoKICAgICAgICA8IS0tCiAgICAgICAgPGRpdiBpZD0ibm90aWZpY2F0aW9uIj4KICAgICAgICAgIDxkaXYgY2xhc3M9ImVsZW1lbnQiPgogICAgICAgICAgICA8aDU+WEVQRzwvaDU+CiAgICAgICAgICAgIDxwcmU+MTEuMDUuMjAxOSAtIDIwOjIxPC9wcmU+CiAgICAgICAgICAgIDxocj4KICAgICAgICAgICAgPHA+SGFsbG8gZGFzIGlzdCBlaW4gVGVzdC4gVW5kIG5vY2ggbWVociBUZXh0LjwvcD4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICAtLT4KCiAgICAgICAgPGRpdiBpZD0ibWVudS13cmFwcGVyIiBjbGFzcz0ibGF5b3V0LWxlZnQiPgogICAgICAgICAgPGRpdiBpZD0gImJyYW5jaCI+PC9kaXY+CiAgICAgICAgICA8ZGl2IGlkPSJsb2dvIj48L2Rpdj4KICAgICAgICAgIDxuYXYgaWQ9Im1haW4tbWVudSI+PC9uYXY+CiAgICAgICAgPC9kaXY+CgogICAgICAgIDxkaXYgY2xhc3M9ImxheW91dC1yaWdodCI+CgogICAgICAgICAgPHRhYmxlIGlkPSJjbGllbnRJbmZvIiBjbGFzcz0iIj4KCiAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICA8dGQgY2xhc3M9InRkS2V5Ij54VGVWZTo8L3RkPgogICAgICAgICAgICAgIDx0ZCBpZD0idmVyc2lvbiIgY2xhc3M9InRkVmFsIj4mbmJzcDs8L3RkPgogICAgICAgICAgICAgIDx0ZCBjbGFzcz0idGRLZXkiPk9TOjwvdGQ+CiAgICAgICAgICAgICAgPHRkIGlkPSJvcyIgY2xhc3M9InRkVmFsIj4mbmJzcDs8L3RkPgogICAgICAgICAgICAgIDx0ZCBjbGFzcz0idGRLZXkgcGhvbmUiPkRWUiBJUDo8L3RkPgogICAgICAgICAgICAgIDx0ZCBpZD0iRFZSIiBjbGFzcz0idGRWYWwgcGhvbmUiPiZuYnNwOzwvdGQ+CiAgICAgICAgICAgIDwvdHI+CgogICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgPHRkIGNsYXNzPSJ0ZEtleSI+VVVJRDo8L3RkPgogICAgICAgICAgICAgIDx0ZCBpZD0idXVpZCIgY2xhc3M9InRkVmFsIj4mbmJzcDs8L3RkPgogICAgICAgICAgICAgIDx0ZCBjbGFzcz0idGRLZXkiPkFyY2g6PC90ZD4KICAgICAgICAgICAgICA8dGQgaWQ9ImFyY2giIGNsYXNzPSJ0ZFZhbCI+Jm5ic3A7PC90ZD4KICAgICAgICAgICAgICA8dGQgY2xhc3M9InRkS2V5IHBob25lIj5NM1UgVVJMOjwvdGQ+CiAgICAgICAgICAgICAgPHRkIGlkPSJtM3UtdXJsIiBjbGFzcz0idGRWYWwgcGhvbmUiPiZuYnNwOzwvdGQ+CiAgICAgICAgICAgIDwvdHI+CgogICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgPHRkIGNsYXNzPSJ0ZEtleSI+QXZhaWxhYmxlIFN0cmVhbXM6PC90ZD4KICAgICAgICAgICAgICA8dGQgaWQ9InN0cmVhbXMiIGNsYXNzPSJ0ZFZhbCI+Jm5ic3A7PC90ZD4KICAgICAgICAgICAgICA8dGQgY2xhc3M9InRkS2V5Ij5FUEcgU291cmNlOjwvdGQ+CiAgICAgICAgICAgICAgPHRkIGlkPSJlcGdTb3VyY2UiIGNsYXNzPSJ0ZFZhbCI+Jm5ic3A7PC90ZD4KICAgICAgICAgICAgICA8dGQgY2xhc3M9InRkS2V5IHBob25lIj5YRVBHIFVSTDo8L3RkPgogICAgICAgICAgICAgIDx0ZCBpZD0ieGVwZy11cmwiIGNsYXNzPSJ0ZFZhbCBwaG9uZSI+Jm5ic3A7PC90ZD4KICAgICAgICAgICAgPC90cj4KCiAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICA8dGQgY2xhc3M9InRkS2V5Ij5YRVBHIENoYW5uZWxzOjwvdGQ+CiAgICAgICAgICAgICAgPHRkIGlkPSJ4ZXBnIiBjbGFzcz0idGRWYWwiPiZuYnNwOzwvdGQ+CiAgICAgICAgICAgICAgPHRkIGNsYXNzPSJ0ZEtleSI+RXJyb3JzOjwvdGQ+CiAgICAgICAgICAgICAgPHRkIGlkPSJlcnJvcnMiIGNsYXNzPSJ0ZFZhbCI+Jm5ic3A7PC90ZD4KICAgICAgICAgICAgICA8dGQgY2xhc3M9InRkS2V5Ij5XYXJuaW5nczo8L3RkPgogICAgICAgICAgICAgIDx0ZCBpZD0id2FybmluZ3MiIGNsYXNzPSJ0ZFZhbCI+Jm5ic3A7PC90ZD4KICAgICAgICAgICAgPC90cj4KCiAgICAgICAgICA8L3RhYmxlPgogICAgICAgICAKICAgICAgICAgIDxkaXYgaWQ9Im15U3RyZWFtc0JveCIgY2xhc3M9Im5vdFZpc2libGUiPgoKICAgICAgICAgICAgPGRpdiBpZD0iYWxsU3RyZWFtcyI+CiAgICAgICAgICAgICAgPHRhYmxlIGlkPSJhY3RpdmVTdHJlYW1zIj48L3RhYmxlPgogICAgICAgICAgICAgIDx0YWJsZSBpZD0iaW5hY3RpdmVTdHJlYW1zIj48L3RhYmxlPgogICAgICAgICAgICA8L2Rpdj4KCiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIAogICAgICAgICAgPGRpdiBpZD0iY29udGVudCIgY2xhc3M9IiI+PC9kaXY+CiAgICAgICAgICAgIAogICAgICAgIDwvZGl2PgoKICAgICAgPC9kaXY+CiAgICAgIAogICAgPC9ib2R5PgogICAgCjwvaHRtbD4=" - webUI["html/img/logout.png"] = "iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAAAXNSR0IArs4c6QAAAAlwSFlzAAAsSwAALEsBpT2WqQAABCRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IlhNUCBDb3JlIDUuNC4wIj4KICAgPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIgogICAgICAgICAgICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgICAgICAgICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyI+CiAgICAgICAgIDx0aWZmOlJlc29sdXRpb25Vbml0PjI8L3RpZmY6UmVzb2x1dGlvblVuaXQ+CiAgICAgICAgIDx0aWZmOkNvbXByZXNzaW9uPjU8L3RpZmY6Q29tcHJlc3Npb24+CiAgICAgICAgIDx0aWZmOlhSZXNvbHV0aW9uPjI4ODwvdGlmZjpYUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6T3JpZW50YXRpb24+MTwvdGlmZjpPcmllbnRhdGlvbj4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+Mjg4PC90aWZmOllSZXNvbHV0aW9uPgogICAgICAgICA8ZXhpZjpQaXhlbFhEaW1lbnNpb24+NTA8L2V4aWY6UGl4ZWxYRGltZW5zaW9uPgogICAgICAgICA8ZXhpZjpDb2xvclNwYWNlPjE8L2V4aWY6Q29sb3JTcGFjZT4KICAgICAgICAgPGV4aWY6UGl4ZWxZRGltZW5zaW9uPjUwPC9leGlmOlBpeGVsWURpbWVuc2lvbj4KICAgICAgICAgPGRjOnN1YmplY3Q+CiAgICAgICAgICAgIDxyZGY6QmFnLz4KICAgICAgICAgPC9kYzpzdWJqZWN0PgogICAgICAgICA8eG1wOk1vZGlmeURhdGU+MjAxOC0xMC0xM1QxMToxMDoxODwveG1wOk1vZGlmeURhdGU+CiAgICAgICAgIDx4bXA6Q3JlYXRvclRvb2w+UGl4ZWxtYXRvciAzLjM8L3htcDpDcmVhdG9yVG9vbD4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgIDwvcmRmOlJERj4KPC94OnhtcG1ldGE+Cg27QeEAAANQSURBVGgF7Zk9aBRBGIZzSRSN8YdoCpEkghCCqK1o4g9IsBCCNmIniCAiWAhqI8G02qiIoqCCWggSEcFKEFPYpVAU8QdFUyiKRpRokBjP55OdZDLZvZnZ7N3Ngh887M7sN/O9797t7c5eTc3/8D8DxWKxGS5Ai//oAEYgvB4OwleQaAtAlp8ERG+Bp6Jei/wYQfRy6NfE67vhG0FtA/TBqK7c2A/bCGJ3wpAhOq4ZphGUroEHcYoT+sIygsgmOAu/EwQndYdhBHV1sB8+Jym19Lf6/faVIRuBG+GRRajtcPWMoKwFbtgUOh6vvBGEzYFj8MNRpEtaZY2gaAe8cVHmmXOc/K3QXIZv/+SUFFgJ96AS8ZwiZ6Ab6iZVzGCPiRbCKRiDasQHip6EdD/PDKyFvfAJQgg5kVfB/VoieT0MQojxE1G9UG/7otWS0A7pPkrb7DM/Ppcp+mAAM/bFGEmL4RL8gVDjI8JWOZ0bEjvhSahO0CXXsLMZWZYegREIMV4jaoHTJyNJJLfC7RCdoOm6sxGVyKAeeBegoU6l0XmLiXlwAqp1o4w7j3d1AwW9YdtnNrnQzkOXLddyfAPHv8Ey6ABpd8N88In2QqHwymfARC5mCrAH0i6qGDr9jk3fbNgFz8A1DkwIS7tDpSVwGdLcexIfPZhPHpf2wS+wRX9a/dPGUakLzBdwNgGJRlQBJtgMw5aJ3qr8TLYUmwVHwXXxZTUiwphvHYxDUnzPxIA5CdXa4E5SVa3fyUhkRtYqpSKbNYxpJiq+ncpDJar7GGlknvcl5mqM05BZH4Xl3iOLpLh7j7OR6MScSzAykplg20QIWA0PDSG+RuTdQVy8sNXP9DgK5N4jK9AvkRpfI4sYF/c2836mQl0nQ4zce66AfZFkTMqYl2DGaSMt/CYOHpsuaPco5bLUzUuMGkLHaQ+ovjwZUZrVdpAHRnnw/Bd5MrJCiY62t4x2+E2uBfkfRg95TdSkK8/LJ7JWF83+Nb5Ww0Zf+E3OviwXVMgT8dLwVRsKEd0A+uP8biMlH01MHAYVF/Oh2lCJenkDqpbUN9nPyzU91QnCRbyEPEXn1sQhxMv7tG1T7cW3rK/r44eVtxfxm6gwBh38zJqPJuUtXu3Z/wLwuBaBLgMkKwAAAABJRU5ErkJggg==" - webUI["html/img/users.png"] = "iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAAAXNSR0IArs4c6QAAAAlwSFlzAAAsSwAALEsBpT2WqQAABCRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IlhNUCBDb3JlIDUuNC4wIj4KICAgPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIgogICAgICAgICAgICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgICAgICAgICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyI+CiAgICAgICAgIDx0aWZmOlJlc29sdXRpb25Vbml0PjI8L3RpZmY6UmVzb2x1dGlvblVuaXQ+CiAgICAgICAgIDx0aWZmOkNvbXByZXNzaW9uPjU8L3RpZmY6Q29tcHJlc3Npb24+CiAgICAgICAgIDx0aWZmOlhSZXNvbHV0aW9uPjI4ODwvdGlmZjpYUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6T3JpZW50YXRpb24+MTwvdGlmZjpPcmllbnRhdGlvbj4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+Mjg4PC90aWZmOllSZXNvbHV0aW9uPgogICAgICAgICA8ZXhpZjpQaXhlbFhEaW1lbnNpb24+NTA8L2V4aWY6UGl4ZWxYRGltZW5zaW9uPgogICAgICAgICA8ZXhpZjpDb2xvclNwYWNlPjE8L2V4aWY6Q29sb3JTcGFjZT4KICAgICAgICAgPGV4aWY6UGl4ZWxZRGltZW5zaW9uPjUwPC9leGlmOlBpeGVsWURpbWVuc2lvbj4KICAgICAgICAgPGRjOnN1YmplY3Q+CiAgICAgICAgICAgIDxyZGY6QmFnLz4KICAgICAgICAgPC9kYzpzdWJqZWN0PgogICAgICAgICA8eG1wOk1vZGlmeURhdGU+MjAxOC0wOC0zMFQxNzowODozODwveG1wOk1vZGlmeURhdGU+CiAgICAgICAgIDx4bXA6Q3JlYXRvclRvb2w+UGl4ZWxtYXRvciAzLjM8L3htcDpDcmVhdG9yVG9vbD4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgIDwvcmRmOlJERj4KPC94OnhtcG1ldGE+CjU01MMAAANJSURBVGgF1ZnLaxNRFMYz2rpoFbW+SCsihaJQRMT6rPhAXAq6c+HChSguRFd1oRtd+A/oWhQ3oiiWFB91UbqRqlXXgoIIQhFbQTTQao2/GzLDZEjIPefO7SQHPjJz55zzfd/MZCa5N8h5ilKptJvWp8FekAed4Bv4Cj6Dh2A4CIJZPpszMHEV2MQ0SZdB0DROENMHjoEzQBoFCpZnbgYR58E/qfpE/kv2F2dmBvJ94G9ClHb3SiZGUBuASa3qGnVzjG3RmFmkKYrVHGB7e2zfdbOdBhc1TVyNnNSQNqg5wVURf/FdjRxpIEpzuIOio9JCtRHO2hrINkgJLfPFt6vaCII2WYrSpPVJi1RGuBrmTbxeSibIX5j3CUauAfOo9BXzNH4nMJ5TXREI1gHzqPQVRtc2zCyxJdAaGbclcMj7zi/jOdt6rZFhCH7akijznknqVEY4U78heSAhUuTekNSojFQIChIiYe57TtZrSY2LkecQzUjIBLljglz3VJ4qg+AXSDNGabbWXZ2wA6Qjabqg136hhHK6y60V8o2EGyl8/qHHpKZPGkYeQzyvIa9RM86XvFhjvOGQsxGIp2B50ZDJLuG2XZqnLO5rM3viGh9o0OZJon1bRLxxdHLcns1jJiYOAu2U0D2P0uStMXJdcVU+UdMlZ/NYgaA28ERg5ge5/R4l6VsjrANMWJiZJWeXnqm60vnxW90ul6u8ByaS4zX2i+S+qjGuGkrdSEWFzT1vlhlSC19Gui0UtnNriSfi6vX1ZWRjPcLEeGrzYqkb4SyvQGxvQnC93cF6BzIfx8gpYBsfSdycuei4AAR1ggugCCRh1lbugIF4vwXbhtisjfSDc+ARSOOf4lv6mNWv1VIj1ouQNF9K851gDzArtWbV1uYxS5o4zB+sp+AuKPC+cVv5RXwPuATMmUpreY1Wopgh+ybYKj4dFHWB+8DMwTZTjCHmsJUhEgfAF9DMcQtx9V8dHMyDqWZ2ENM2FL8yVV92kkY56GM5Lc6Z1vY0jbp5EJQnuqPLg4kdLWTCnIxVIJoDi4wweNYcbbGIfuLEjRxqMRNGbvTvsmyE22oZg70taKQn1BxekXw40GKfK0O9oZHsJ8ZCRbLPaI3xP7YzeQoHxWckAAAAAElFTkSuQmCC" - webUI["html/img/logo_b_880x200.jpg"] = "/9j/4AAQSkZJRgABAQABLAEsAAD/4QDIRXhpZgAATU0AKgAAAAgABwESAAMAAAABAAEAAAEaAAUAAAABAAAAYgEbAAUAAAABAAAAagEoAAMAAAABAAIAAAExAAIAAAAPAAAAcgEyAAIAAAAUAAAAgodpAAQAAAABAAAAlgAAAAAAAAEsAAAAAQAAASwAAAABUGl4ZWxtYXRvciAzLjMAADIwMTk6MDg6MDIgMjA6MDg6MTQAAAOgAQADAAAAAQABAACgAgAEAAAAAQAAA3CgAwAEAAAAAQAAAMgAAAAA/+EJkGh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8APD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iWE1QIENvcmUgNS40LjAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcDpDcmVhdG9yVG9vbD0iUGl4ZWxtYXRvciAzLjMiIHhtcDpNb2RpZnlEYXRlPSIyMDE5LTA4LTAyVDIwOjA4OjE0Ii8+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPD94cGFja2V0IGVuZD0idyI/PgD/7QA4UGhvdG9zaG9wIDMuMAA4QklNBAQAAAAAAAA4QklNBCUAAAAAABDUHYzZjwCyBOmACZjs+EJ+/8AAEQgAyANwAwERAAIRAQMRAf/EAB8AAAEFAQEBAQEBAAAAAAAAAAABAgMEBQYHCAkKC//EALUQAAIBAwMCBAMFBQQEAAABfQECAwAEEQUSITFBBhNRYQcicRQygZGhCCNCscEVUtHwJDNicoIJChYXGBkaJSYnKCkqNDU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6g4SFhoeIiYqSk5SVlpeYmZqio6Slpqeoqaqys7S1tre4ubrCw8TFxsfIycrS09TV1tfY2drh4uPk5ebn6Onq8fLz9PX29/j5+v/EAB8BAAMBAQEBAQEBAQEAAAAAAAABAgMEBQYHCAkKC//EALURAAIBAgQEAwQHBQQEAAECdwABAgMRBAUhMQYSQVEHYXETIjKBCBRCkaGxwQkjM1LwFWJy0QoWJDThJfEXGBkaJicoKSo1Njc4OTpDREVGR0hJSlNUVVZXWFlaY2RlZmdoaWpzdHV2d3h5eoKDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uLj5OXm5+jp6vLz9PX29/j5+v/bAEMAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAf/bAEMBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAf/dAAQAbv/aAAwDAQACEQMRAD8A/iHoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKAP/9D+IegAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoA//0f4h6ACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgD//S/iHoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKAP/9P+IegAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoA//1P4h6ACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgDvPDXws+J3jPT31bwf8OfHnivSo7mSyfU/DXhDxBrunpeQpFLNaPe6Xp11bLcxRzwSSQNL5saTROyhZUNAHQf8M//AB4/6In8XP8Aw23jL/5TUAH/AAz/APHj/oifxc/8Nt4y/wDl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f/E3xn4o+IPjnxDLaafp8mveMPGet33iPxNrMlhpNpYaVZPqmtale3z2mmWNlp9s05hsrS2tkjhQA4ygAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgD//S/iHoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAczu+N7M2BgbmLYHoM9BnJxx1/FgBtABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAOLuwVWZiq/dUsSFz12joM4HQduc4FADaACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgD//0/4h6ACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgD//U/iHoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKAP/9X+IegAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoA//1v4h6ACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgD//X/iHoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKAP/9k=" - webUI["html/img/filter.png"] = "iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAAAXNSR0IArs4c6QAAAAlwSFlzAAAsSwAALEsBpT2WqQAABCRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IlhNUCBDb3JlIDUuNC4wIj4KICAgPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIgogICAgICAgICAgICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgICAgICAgICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyI+CiAgICAgICAgIDx0aWZmOlJlc29sdXRpb25Vbml0PjI8L3RpZmY6UmVzb2x1dGlvblVuaXQ+CiAgICAgICAgIDx0aWZmOkNvbXByZXNzaW9uPjU8L3RpZmY6Q29tcHJlc3Npb24+CiAgICAgICAgIDx0aWZmOlhSZXNvbHV0aW9uPjI4ODwvdGlmZjpYUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6T3JpZW50YXRpb24+MTwvdGlmZjpPcmllbnRhdGlvbj4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+Mjg4PC90aWZmOllSZXNvbHV0aW9uPgogICAgICAgICA8ZXhpZjpQaXhlbFhEaW1lbnNpb24+NTA8L2V4aWY6UGl4ZWxYRGltZW5zaW9uPgogICAgICAgICA8ZXhpZjpDb2xvclNwYWNlPjE8L2V4aWY6Q29sb3JTcGFjZT4KICAgICAgICAgPGV4aWY6UGl4ZWxZRGltZW5zaW9uPjUwPC9leGlmOlBpeGVsWURpbWVuc2lvbj4KICAgICAgICAgPGRjOnN1YmplY3Q+CiAgICAgICAgICAgIDxyZGY6QmFnLz4KICAgICAgICAgPC9kYzpzdWJqZWN0PgogICAgICAgICA8eG1wOk1vZGlmeURhdGU+MjAxOC0wNy0yOFQxOTowNzo2OTwveG1wOk1vZGlmeURhdGU+CiAgICAgICAgIDx4bXA6Q3JlYXRvclRvb2w+UGl4ZWxtYXRvciAzLjM8L3htcDpDcmVhdG9yVG9vbD4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgIDwvcmRmOlJERj4KPC94OnhtcG1ldGE+Cs038OQAAAOISURBVGgF5ZpLSBVRGMfvvfmqCKKiKCqKtE3SQ8haJJm1ctPCZYHrFhXtohcUBLVsU1BRBJKLXpsSKs1aCL1oUUhvMgIloodZKmLZ72+OzNVx7jzOXGfqg/89Z875zv/7f35n7px7vanUP2JptzyGhoYKmK8GW0EZmA/mgW7wHrwDN0BTOp0epPVtxBBnLdgIVoE5YBboBR2gDTTA/5DWn0FeDPaBz8CLdeF0EBR5jYRvKbgABoAXa8Opwit/CudK8NoLs4PPM8ZyBsNnB/jpsD7X0C8cjgDXnaQkqkEPCGMSuGWivxxzx8OQj6xtpHWuPhPloHfEMWzTD0HN2GQY2xuW2Lb+/Fh+VaIQPLE5meh+gmSxFYz+BjBogtjGscfiH26Z2GmbNNltVQAIpwDdP6ZNO2iRYqTpZGhfgWUaiMC2w1kCzkbALcqLvDVvUyK6MW9HFES0b8BvsFwXEZi4F+iBtykCcjtlqf0igr52VJ1eqiIgzzdlrRIZfWfJd3SD8ZbqHvkB4XSDpJNB9V0VcX/cT4Ys/zEzSuSj/3WxW9GpRD7ETpZ/QcOJ6LyfdHugitxNehbob9G7lo4PXWBmQhPqQ/fsDOeUfjqNCU1Csi+TQ5+2luzc3yaRr6elevQZwhZr4bomYam0U41yabYqov5hvSTMjlp6RyuiAarSTLPZmox5246+lVREx/isiuh6NxhUJwF2yEpCWu1bK8WEsjyRgCSa0XrVrjNra2mC7TWD5ilYAuJoA4jSlnppF5dVEU3g0ENTD4b3nsZiZsfGJuGqj8qY+CINGqP2GLZCJ+HjtpblxAJ9k3cPrLfGJrnVUaSCarxw0jFua1lOLNBerANx+byya6IkLM2uLZWpAl6/Mcc1EjvjKtLrJNLqI5HnjfQ+bsVeteb0g2y/t7hGvd7CNjenOL8OkJ40KtOdTF+Cl/nV6Mkf4gxocI9vZPYLLKs9iQrqRIACcM2IXGeSboYrg+rztY5ARaDJWUeo0W+sXudLTFhnApaAW6FkZy/+yuXasLoCrSfwVHAnW0+gK93YawKJMLUIAdNAKwhqnSxcYUpPKB6EBE2mg7VR///EX24jybTQerXnOC70FyVP3gjTPXPTQyaP8NFPNeJrCNTPP667JKOq6VNo/A2hes5ccUjmEmPmDoD5+FMgWCcA+3FG57QJP//kQ1PgGBIOToEDgUn+t4V/AJeGknwARIKLAAAAAElFTkSuQmCC" - webUI["html/img/x_black.png"] = "iVBORw0KGgoAAAANSUhEUgAAAQAAAAEACAIAAADTED8xAAAAAXNSR0IArs4c6QAAAAlwSFlzAAAWJQAAFiUBSVIk8AAAA6ppVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IlhNUCBDb3JlIDUuNC4wIj4KICAgPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIgogICAgICAgICAgICB4bWxuczp0aWZmPSJodHRwOi8vbnMuYWRvYmUuY29tL3RpZmYvMS4wLyIKICAgICAgICAgICAgeG1sbnM6ZXhpZj0iaHR0cDovL25zLmFkb2JlLmNvbS9leGlmLzEuMC8iPgogICAgICAgICA8eG1wOk1vZGlmeURhdGU+MjAxOC0xMS0xNVQxNzoxMTozNzwveG1wOk1vZGlmeURhdGU+CiAgICAgICAgIDx4bXA6Q3JlYXRvclRvb2w+UGl4ZWxtYXRvciAzLjM8L3htcDpDcmVhdG9yVG9vbD4KICAgICAgICAgPHRpZmY6T3JpZW50YXRpb24+MTwvdGlmZjpPcmllbnRhdGlvbj4KICAgICAgICAgPHRpZmY6Q29tcHJlc3Npb24+NTwvdGlmZjpDb21wcmVzc2lvbj4KICAgICAgICAgPHRpZmY6UmVzb2x1dGlvblVuaXQ+MjwvdGlmZjpSZXNvbHV0aW9uVW5pdD4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+MTQ0PC90aWZmOllSZXNvbHV0aW9uPgogICAgICAgICA8dGlmZjpYUmVzb2x1dGlvbj4xNDQ8L3RpZmY6WFJlc29sdXRpb24+CiAgICAgICAgIDxleGlmOlBpeGVsWERpbWVuc2lvbj4yNTY8L2V4aWY6UGl4ZWxYRGltZW5zaW9uPgogICAgICAgICA8ZXhpZjpDb2xvclNwYWNlPjE8L2V4aWY6Q29sb3JTcGFj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a1jSekqmtA1rrGsx7JYkDuvrVahwRdgVXD1xcwri6mmYRULLe4CuPc2wfrGo4U+7Y/3S9ZHD+GcflbnfiCJbr77whoaS6ucCXVkVkuLKgORQwNJFygRDJnqwb9i3b0HxkqjT0L4erGy5Rh1IRnhXrpaZq6GZCyRLf6cvhoTY6V9koX8bGdEUlyWVm6W5q1GuostihNm97L/dpm5k+QHCbDna0zRzgSS/lRHWL7iHPOa+9YsYkpttoCwSMcQRkrWioz5Qsc7aFJ1coHY3QyJ9jSjfJEOCfTUpWzehVBnUbqCJOCHEkB1xsmXDwq9DnObUz9q4QOUqYPaPKFzUKcVj6Eeu461q67Vhlqy6+Xo11G52JhRZNNW1FRbN00FWPVwguSa+8YEZ1i+D9vQjelm/iHTwAB69Vwd7CkuGLOcWtxfR4o+dHhNg4DNmhDvJ8M6ehknvhTXMDp8kQQgT33W4z+i7k/2gho+Jvrp1NTVwgW5opV76yl8F/cufe9CyJiRllZ6lYCHMXWPAXmNp9CRb8Pi30r658sHtCSCPsZNXQDYdMaLIek/No13V/rBfGMFSCXnsKNo1dDelnKt/dyUH8uvjjLH+zyfpbv1iUl/NVBt4mVJy58HoDyFZLt0rrj4G7TfIjARvMjy7d6JnR/UXS/+yeD5kLYkETxpRZL2jZJVzb7cl9yZA/cYqh4z+20AEzOj+BKxbZYRFqXQssvLs5gQzpBUp616rNsX55WdXBHbPBRrwlBm5v2VYJo1FsjmOtQg8ezo+fd8Ve4qy04HPRlmR1UiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABGwg8D8UnyVeZFwGAQAAAABJRU5ErkJggg==" - webUI["html/js/base_ts.js"] = "dmFyIFNFUlZFUiA9IG5ldyBPYmplY3QoKTsKdmFyIEJVTEtfRURJVCA9IGZhbHNlOwp2YXIgQ09MVU1OX1RPX1NPUlQ7CnZhciBTRUFSQ0hfTUFQUElORyA9IG5ldyBPYmplY3QoKTsKdmFyIFVORE8gPSBuZXcgT2JqZWN0KCk7CnZhciBTRVJWRVJfQ09OTkVDVElPTiA9IGZhbHNlOwp2YXIgV1NfQVZBSUxBQkxFID0gZmFsc2U7Ci8vIE1lbsO8CnZhciBtZW51SXRlbXMgPSBuZXcgQXJyYXkoKTsKbWVudUl0ZW1zLnB1c2gobmV3IE1haW5NZW51SXRlbSgicGxheWxpc3QiLCAie3subWFpbk1lbnUuaXRlbS5wbGF5bGlzdH19IiwgIm0zdS5wbmciLCAie3subWFpbk1lbnUuaGVhZGxpbmUucGxheWxpc3R9fSIpKTsKLy9tZW51SXRlbXMucHVzaChuZXcgTWFpbk1lbnVJdGVtKCJwbXNJRCIsICJ7ey5tYWluTWVudS5pdGVtLnBtc0lEfX0iLCAibnVtYmVyLnBuZyIsICJ7ey5tYWluTWVudS5oZWFkbGluZS5wbXNJRH19IikpCm1lbnVJdGVtcy5wdXNoKG5ldyBNYWluTWVudUl0ZW0oImZpbHRlciIsICJ7ey5tYWluTWVudS5pdGVtLmZpbHRlcn19IiwgImZpbHRlci5wbmciLCAie3subWFpbk1lbnUuaGVhZGxpbmUuZmlsdGVyfX0iKSk7Cm1lbnVJdGVtcy5wdXNoKG5ldyBNYWluTWVudUl0ZW0oInhtbHR2IiwgInt7Lm1haW5NZW51Lml0ZW0ueG1sdHZ9fSIsICJ4bWx0di5wbmciLCAie3subWFpbk1lbnUuaGVhZGxpbmUueG1sdHZ9fSIpKTsKbWVudUl0ZW1zLnB1c2gobmV3IE1haW5NZW51SXRlbSgibWFwcGluZyIsICJ7ey5tYWluTWVudS5pdGVtLm1hcHBpbmd9fSIsICJtYXBwaW5nLnBuZyIsICJ7ey5tYWluTWVudS5oZWFkbGluZS5tYXBwaW5nfX0iKSk7Cm1lbnVJdGVtcy5wdXNoKG5ldyBNYWluTWVudUl0ZW0oInVzZXJzIiwgInt7Lm1haW5NZW51Lml0ZW0udXNlcnN9fSIsICJ1c2Vycy5wbmciLCAie3subWFpbk1lbnUuaGVhZGxpbmUudXNlcnN9fSIpKTsKbWVudUl0ZW1zLnB1c2gobmV3IE1haW5NZW51SXRlbSgic2V0dGluZ3MiLCAie3subWFpbk1lbnUuaXRlbS5zZXR0aW5nc319IiwgInNldHRpbmdzLnBuZyIsICJ7ey5tYWluTWVudS5oZWFkbGluZS5zZXR0aW5nc319IikpOwptZW51SXRlbXMucHVzaChuZXcgTWFpbk1lbnVJdGVtKCJsb2ciLCAie3subWFpbk1lbnUuaXRlbS5sb2d9fSIsICJsb2cucG5nIiwgInt7Lm1haW5NZW51LmhlYWRsaW5lLmxvZ319IikpOwptZW51SXRlbXMucHVzaChuZXcgTWFpbk1lbnVJdGVtKCJsb2dvdXQiLCAie3subWFpbk1lbnUuaXRlbS5sb2dvdXR9fSIsICJsb2dvdXQucG5nIiwgInt7Lm1haW5NZW51LmhlYWRsaW5lLmxvZ291dH19IikpOwovLyBLYXRlZ29yaWVuIGbDvHIgZGllIEVpbnN0ZWxsdW5nZW4KdmFyIHNldHRpbmdzQ2F0ZWdvcnkgPSBuZXcgQXJyYXkoKTsKc2V0dGluZ3NDYXRlZ29yeS5wdXNoKG5ldyBTZXR0aW5nc0NhdGVnb3J5SXRlbSgie3suc2V0dGluZ3MuY2F0ZWdvcnkuZ2VuZXJhbH19IiwgInh0ZXZlQXV0b1VwZGF0ZSx0dW5lcixlcGdTb3VyY2UsYXBpIikpOwpzZXR0aW5nc0NhdGVnb3J5LnB1c2gobmV3IFNldHRpbmdzQ2F0ZWdvcnlJdGVtKCJ7ey5zZXR0aW5ncy5jYXRlZ29yeS5maWxlc319IiwgInVwZGF0ZSxmaWxlcy51cGRhdGUsdGVtcC5wYXRoLGNhY2hlLmltYWdlcyx4ZXBnLnJlcGxhY2UubWlzc2luZy5pbWFnZXMiKSk7CnNldHRpbmdzQ2F0ZWdvcnkucHVzaChuZXcgU2V0dGluZ3NDYXRlZ29yeUl0ZW0oInt7LnNldHRpbmdzLmNhdGVnb3J5LnN0cmVhbWluZ319IiwgImJ1ZmZlcix1ZHB4eSxidWZmZXIuc2l6ZS5rYixidWZmZXIudGltZW91dCx1c2VyLmFnZW50LGZmbXBlZy5wYXRoLGZmbXBlZy5vcHRpb25zLHZsYy5wYXRoLHZsYy5vcHRpb25zIikpOwpzZXR0aW5nc0NhdGVnb3J5LnB1c2gobmV3IFNldHRpbmdzQ2F0ZWdvcnlJdGVtKCJ7ey5zZXR0aW5ncy5jYXRlZ29yeS5iYWNrdXB9fSIsICJiYWNrdXAucGF0aCxiYWNrdXAua2VlcCIpKTsKc2V0dGluZ3NDYXRlZ29yeS5wdXNoKG5ldyBTZXR0aW5nc0NhdGVnb3J5SXRlbSgie3suc2V0dGluZ3MuY2F0ZWdvcnkuYXV0aGVudGljYXRpb259fSIsICJhdXRoZW50aWNhdGlvbi53ZWIsYXV0aGVudGljYXRpb24ucG1zLGF1dGhlbnRpY2F0aW9uLm0zdSxhdXRoZW50aWNhdGlvbi54bWwsYXV0aGVudGljYXRpb24uYXBpIikpOwpmdW5jdGlvbiBzaG93UG9wVXBFbGVtZW50KGVsbSkgewogICAgdmFyIGFsbEVsZW1lbnRzID0gbmV3IEFycmF5KCJwb3B1cC1jdXN0b20iKTsKICAgIGZvciAodmFyIGkgPSAwOyBpIDwgYWxsRWxlbWVudHMubGVuZ3RoOyBpKyspIHsKICAgICAgICBzaG93RWxlbWVudChhbGxFbGVtZW50c1tpXSwgZmFsc2UpOwogICAgfQogICAgc2hvd0VsZW1lbnQoZWxtLCB0cnVlKTsKICAgIHNldFRpbWVvdXQoZnVuY3Rpb24gKCkgewogICAgICAgIHNob3dFbGVtZW50KCJwb3B1cCIsIHRydWUpOwogICAgfSwgMTApOwogICAgcmV0dXJuOwp9CmZ1bmN0aW9uIHNob3dFbGVtZW50KGVsbUlELCB0eXBlKSB7CiAgICB2YXIgY3NzQ2xhc3M7CiAgICBzd2l0Y2ggKHR5cGUpIHsKICAgICAgICBjYXNlIHRydWU6CiAgICAgICAgICAgIGNzc0NsYXNzID0gImJsb2NrIjsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgY2FzZSBmYWxzZToKICAgICAgICAgICAgY3NzQ2xhc3MgPSAibm9uZSI7CiAgICAgICAgICAgIGJyZWFrOwogICAgfQogICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoZWxtSUQpLmNsYXNzTmFtZSA9IGNzc0NsYXNzOwp9CmZ1bmN0aW9uIGNoYW5nZUJ1dHRvbkFjdGlvbihlbGVtZW50LCBidXR0b25JRCwgYXR0cmlidXRlKSB7CiAgICB2YXIgdmFsdWUgPSBlbGVtZW50Lm9wdGlvbnNbZWxlbWVudC5zZWxlY3RlZEluZGV4XS52YWx1ZTsKICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGJ1dHRvbklEKS5zZXRBdHRyaWJ1dGUoYXR0cmlidXRlLCB2YWx1ZSk7Cn0KZnVuY3Rpb24gZ2V0TG9jYWxEYXRhKGRhdGFUeXBlLCBpZCkgewogICAgdmFyIGRhdGEgPSBuZXcgT2JqZWN0KCk7CiAgICBzd2l0Y2ggKGRhdGFUeXBlKSB7CiAgICAgICAgY2FzZSAibTN1IjoKICAgICAgICAgICAgZGF0YSA9IFNFUlZFUlsic2V0dGluZ3MiXVsiZmlsZXMiXVtkYXRhVHlwZV1baWRdOwogICAgICAgICAgICBicmVhazsKICAgICAgICBjYXNlICJoZGhyIjoKICAgICAgICAgICAgZGF0YSA9IFNFUlZFUlsic2V0dGluZ3MiXVsiZmlsZXMiXVtkYXRhVHlwZV1baWRdOwogICAgICAgICAgICBicmVhazsKICAgICAgICBjYXNlICJmaWx0ZXIiOgogICAgICAgIGNhc2UgImN1c3RvbS1maWx0ZXIiOgogICAgICAgIGNhc2UgImdyb3VwLXRpdGxlIjoKICAgICAgICAgICAgaWYgKGlkID09IC0xKSB7CiAgICAgICAgICAgICAgICBkYXRhWyJhY3RpdmUiXSA9IHRydWU7CiAgICAgICAgICAgICAgICBkYXRhWyJjYXNlU2Vuc2l0aXZlIl0gPSBmYWxzZTsKICAgICAgICAgICAgICAgIGRhdGFbImRlc2NyaXB0aW9uIl0gPSAiIjsKICAgICAgICAgICAgICAgIGRhdGFbImV4Y2x1ZGUiXSA9ICIiOwogICAgICAgICAgICAgICAgZGF0YVsiZmlsdGVyIl0gPSAiIjsKICAgICAgICAgICAgICAgIGRhdGFbImluY2x1ZGUiXSA9ICIiOwogICAgICAgICAgICAgICAgZGF0YVsibmFtZSJdID0gIiI7CiAgICAgICAgICAgICAgICBkYXRhWyJ0eXBlIl0gPSAiZ3JvdXAtdGl0bGUiOwogICAgICAgICAgICAgICAgU0VSVkVSWyJzZXR0aW5ncyJdWyJmaWx0ZXIiXVtpZF0gPSBkYXRhOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGRhdGEgPSBTRVJWRVJbInNldHRpbmdzIl1bImZpbHRlciJdW2lkXTsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgY2FzZSAieG1sdHYiOgogICAgICAgICAgICBkYXRhID0gU0VSVkVSWyJzZXR0aW5ncyJdWyJmaWxlcyJdW2RhdGFUeXBlXVtpZF07CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgIGNhc2UgInVzZXJzIjoKICAgICAgICAgICAgZGF0YSA9IFNFUlZFUlsidXNlcnMiXVtpZF1bImRhdGEiXTsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgY2FzZSAibWFwcGluZyI6CiAgICAgICAgICAgIGRhdGEgPSBTRVJWRVJbInhlcGciXVsiZXBnTWFwcGluZyJdW2lkXTsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgY2FzZSAibTN1R3JvdXBzIjoKICAgICAgICAgICAgZGF0YSA9IFNFUlZFUlsiZGF0YSJdWyJwbGF5bGlzdCJdWyJtM3UiXVsiZ3JvdXBzIl07CiAgICAgICAgICAgIGJyZWFrOwogICAgfQogICAgcmV0dXJuIGRhdGE7Cn0KZnVuY3Rpb24gZ2V0T2JqS2V5cyhvYmopIHsKICAgIHZhciBrZXlzID0gbmV3IEFycmF5KCk7CiAgICBmb3IgKHZhciBpIGluIG9iaikgewogICAgICAgIGlmIChvYmouaGFzT3duUHJvcGVydHkoaSkpIHsKICAgICAgICAgICAga2V5cy5wdXNoKGkpOwogICAgICAgIH0KICAgIH0KICAgIHJldHVybiBrZXlzOwp9CmZ1bmN0aW9uIGdldEFsbFNlbGVjdGVkQ2hhbm5lbHMoKSB7CiAgICB2YXIgY2hhbm5lbHMgPSBuZXcgQXJyYXkoKTsKICAgIGlmIChCVUxLX0VESVQgPT0gZmFsc2UpIHsKICAgICAgICByZXR1cm4gY2hhbm5lbHM7CiAgICB9CiAgICB2YXIgdHJzID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnRlbnRfdGFibGUiKS5nZXRFbGVtZW50c0J5VGFnTmFtZSgiVFIiKTsKICAgIGZvciAodmFyIGkgPSAxOyBpIDwgdHJzLmxlbmd0aDsgaSsrKSB7CiAgICAgICAgaWYgKHRyc1tpXS5zdHlsZS5kaXNwbGF5ICE9ICJub25lIikgewogICAgICAgICAgICBpZiAodHJzW2ldLmZpcnN0Q2hpbGQuZmlyc3RDaGlsZC5jaGVja2VkID09IHRydWUpIHsKICAgICAgICAgICAgICAgIGNoYW5uZWxzLnB1c2godHJzW2ldLmlkKTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KICAgIHJldHVybiBjaGFubmVsczsKfQpmdW5jdGlvbiBzZWxlY3RBbGxDaGFubmVscygpIHsKICAgIHZhciBidWxrID0gZmFsc2U7CiAgICB2YXIgdHJzID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnRlbnRfdGFibGUiKS5nZXRFbGVtZW50c0J5VGFnTmFtZSgiVFIiKTsKICAgIGlmICh0cnNbMF0uZmlyc3RDaGlsZC5maXJzdENoaWxkLmNoZWNrZWQgPT0gdHJ1ZSkgewogICAgICAgIGJ1bGsgPSB0cnVlOwogICAgfQogICAgZm9yICh2YXIgaSA9IDE7IGkgPCB0cnMubGVuZ3RoOyBpKyspIHsKICAgICAgICBpZiAodHJzW2ldLnN0eWxlLmRpc3BsYXkgIT0gIm5vbmUiKSB7CiAgICAgICAgICAgIHN3aXRjaCAoYnVsaykgewogICAgICAgICAgICAgICAgY2FzZSB0cnVlOgogICAgICAgICAgICAgICAgICAgIHRyc1tpXS5maXJzdENoaWxkLmZpcnN0Q2hpbGQuY2hlY2tlZCA9IHRydWU7CiAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICBjYXNlIGZhbHNlOgogICAgICAgICAgICAgICAgICAgIHRyc1tpXS5maXJzdENoaWxkLmZpcnN0Q2hpbGQuY2hlY2tlZCA9IGZhbHNlOwogICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQogICAgcmV0dXJuOwp9CmZ1bmN0aW9uIGJ1bGtFZGl0KCkgewogICAgQlVMS19FRElUID0gIUJVTEtfRURJVDsKICAgIHZhciBjbGFzc05hbWU7CiAgICB2YXIgcm93cyA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlDbGFzc05hbWUoImJ1bGsiKTsKICAgIHN3aXRjaCAoQlVMS19FRElUKSB7CiAgICAgICAgY2FzZSB0cnVlOgogICAgICAgICAgICBjbGFzc05hbWUgPSAiYnVsayBzaG93QnVsayI7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgIGNhc2UgZmFsc2U6CiAgICAgICAgICAgIGNsYXNzTmFtZSA9ICJidWxrIGhpZGVCdWxrIjsKICAgICAgICAgICAgYnJlYWs7CiAgICB9CiAgICBmb3IgKHZhciBpID0gMDsgaSA8IHJvd3MubGVuZ3RoOyBpKyspIHsKICAgICAgICByb3dzW2ldLmNsYXNzTmFtZSA9IGNsYXNzTmFtZTsKICAgICAgICByb3dzW2ldLmNoZWNrZWQgPSBmYWxzZTsKICAgIH0KICAgIHJldHVybjsKfQpmdW5jdGlvbiBzb3J0VGFibGUoY29sdW1uKSB7CiAgICAvL2NvbnNvbGUubG9nKGNvbHVtbSk7CiAgICBpZiAoY29sdW1uID09IENPTFVNTl9UT19TT1JUKSB7CiAgICAgICAgcmV0dXJuOwogICAgfQogICAgdmFyIHRhYmxlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnRlbnRfdGFibGUiKTsKICAgIHZhciB0YWJsZUhlYWQgPSB0YWJsZS5nZXRFbGVtZW50c0J5VGFnTmFtZSgiVFIiKVswXTsKICAgIHZhciB0YWJsZUl0ZW1zID0gdGFibGVIZWFkLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJURCIpOwogICAgdmFyIHNvcnRPYmogPSBuZXcgT2JqZWN0KCk7CiAgICB2YXIgeCwgeFZhbHVlOwogICAgdmFyIHRhYmxlSGVhZGVyOwogICAgdmFyIHNvcnRCeVN0cmluZyA9IGZhbHNlOwogICAgaWYgKGNvbHVtbiA+IDAgJiYgQ09MVU1OX1RPX1NPUlQgPiAwKSB7CiAgICAgICAgdGFibGVJdGVtc1tDT0xVTU5fVE9fU09SVF0uY2xhc3NOYW1lID0gInBvaW50ZXIiOwogICAgICAgIHRhYmxlSXRlbXNbY29sdW1uXS5jbGFzc05hbWUgPSAic29ydFRoaXMiOwogICAgfQogICAgQ09MVU1OX1RPX1NPUlQgPSBjb2x1bW47CiAgICB2YXIgcm93cyA9IHRhYmxlLnJvd3M7CiAgICBpZiAocm93c1sxXSAhPSB1bmRlZmluZWQpIHsKICAgICAgICB0YWJsZUhlYWRlciA9IHJvd3NbMF07CiAgICAgICAgeCA9IHJvd3NbMV0uZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlREIilbY29sdW1uXTsKICAgICAgICBmb3IgKGkgPSAxOyBpIDwgcm93cy5sZW5ndGg7IGkrKykgewogICAgICAgICAgICB4ID0gcm93c1tpXS5nZXRFbGVtZW50c0J5VGFnTmFtZSgiVEQiKVtjb2x1bW5dOwogICAgICAgICAgICBzd2l0Y2ggKHguY2hpbGROb2Rlc1swXS50YWdOYW1lLnRvTG93ZXJDYXNlKCkpIHsKICAgICAgICAgICAgICAgIGNhc2UgImlucHV0IjoKICAgICAgICAgICAgICAgICAgICB4VmFsdWUgPSB4LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJJTlBVVCIpWzBdLnZhbHVlLnRvTG93ZXJDYXNlKCk7CiAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICBjYXNlICJwIjoKICAgICAgICAgICAgICAgICAgICB4VmFsdWUgPSB4LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJQIilbMF0uaW5uZXJUZXh0LnRvTG93ZXJDYXNlKCk7CiAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICBkZWZhdWx0OiBjb25zb2xlLmxvZyh4LmNoaWxkTm9kZXNbMF0udGFnTmFtZSk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgaWYgKHhWYWx1ZSA9PSAiIiB8fCB4VmFsdWUgPT0gTmFOKSB7CiAgICAgICAgICAgICAgICB4VmFsdWUgPSBpOwogICAgICAgICAgICAgICAgc29ydE9ialtpXSA9IHJvd3NbaV07CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICBzd2l0Y2ggKGlzTmFOKHhWYWx1ZSkpIHsKICAgICAgICAgICAgICAgICAgICBjYXNlIGZhbHNlOgogICAgICAgICAgICAgICAgICAgICAgICB4VmFsdWUgPSBwYXJzZUZsb2F0KHhWYWx1ZSk7CiAgICAgICAgICAgICAgICAgICAgICAgIHNvcnRPYmpbeFZhbHVlXSA9IHJvd3NbaV07CiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICAgIGNhc2UgdHJ1ZToKICAgICAgICAgICAgICAgICAgICAgICAgc29ydEJ5U3RyaW5nID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgICAgICAgc29ydE9ialt4VmFsdWUudG9Mb3dlckNhc2UoKSArIGldID0gcm93c1tpXTsKICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgd2hpbGUgKHRhYmxlLmZpcnN0Q2hpbGQpIHsKICAgICAgICAgICAgdGFibGUucmVtb3ZlQ2hpbGQodGFibGUuZmlyc3RDaGlsZCk7CiAgICAgICAgfQogICAgICAgIHZhciBzb3J0VmFsdWVzID0gZ2V0T2JqS2V5cyhzb3J0T2JqKTsKICAgICAgICBpZiAoc29ydEJ5U3RyaW5nID09IHRydWUpIHsKICAgICAgICAgICAgc29ydFZhbHVlcy5zb3J0KCk7CiAgICAgICAgICAgIGNvbnNvbGUubG9nKHNvcnRWYWx1ZXMpOwogICAgICAgIH0KICAgICAgICBlbHNlIHsKICAgICAgICAgICAgZnVuY3Rpb24gc29ydEZsb2F0KGEsIGIpIHsKICAgICAgICAgICAgICAgIHJldHVybiBhIC0gYjsKICAgICAgICAgICAgfQogICAgICAgICAgICBzb3J0VmFsdWVzLnNvcnQoc29ydEZsb2F0KTsKICAgICAgICB9CiAgICAgICAgdGFibGUuYXBwZW5kQ2hpbGQodGFibGVIZWFkZXIpOwogICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgc29ydFZhbHVlcy5sZW5ndGg7IGkrKykgewogICAgICAgICAgICB0YWJsZS5hcHBlbmRDaGlsZChzb3J0T2JqW3NvcnRWYWx1ZXNbaV1dKTsKICAgICAgICB9CiAgICB9CiAgICByZXR1cm47Cn0KZnVuY3Rpb24gY3JlYXRlU2VhcmNoT2JqKCkgewogICAgU0VBUkNIX01BUFBJTkcgPSBuZXcgT2JqZWN0KCk7CiAgICB2YXIgZGF0YSA9IFNFUlZFUlsieGVwZyJdWyJlcGdNYXBwaW5nIl07CiAgICB2YXIgY2hhbm5lbHMgPSBnZXRPYmpLZXlzKGRhdGEpOwogICAgdmFyIGNoYW5uZWxLZXlzID0gWyJ4LWFjdGl2ZSIsICJ4LWNoYW5uZWxJRCIsICJ4LW5hbWUiLCAiX2ZpbGUubTN1Lm5hbWUiLCAieC1ncm91cC10aXRsZSIsICJ4LXhtbHR2LWZpbGUiXTsKICAgIGNoYW5uZWxzLmZvckVhY2goZnVuY3Rpb24gKGlkKSB7CiAgICAgICAgY2hhbm5lbEtleXMuZm9yRWFjaChmdW5jdGlvbiAoa2V5KSB7CiAgICAgICAgICAgIGlmIChrZXkgPT0gIngtYWN0aXZlIikgewogICAgICAgICAgICAgICAgc3dpdGNoIChkYXRhW2lkXVtrZXldKSB7CiAgICAgICAgICAgICAgICAgICAgY2FzZSB0cnVlOgogICAgICAgICAgICAgICAgICAgICAgICBTRUFSQ0hfTUFQUElOR1tpZF0gPSAib25saW5lICI7CiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICAgIGNhc2UgZmFsc2U6CiAgICAgICAgICAgICAgICAgICAgICAgIFNFQVJDSF9NQVBQSU5HW2lkXSA9ICJvZmZsaW5lICI7CiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgaWYgKGtleSA9PSAieC14bWx0di1maWxlIikgewogICAgICAgICAgICAgICAgICAgIHZhciB4bWx0dkZpbGUgPSBnZXRWYWx1ZUZyb21Qcm92aWRlckZpbGUoZGF0YVtpZF1ba2V5XSwgInhtbHR2IiwgIm5hbWUiKTsKICAgICAgICAgICAgICAgICAgICBpZiAoeG1sdHZGaWxlICE9IHVuZGVmaW5lZCkgewogICAgICAgICAgICAgICAgICAgICAgICBTRUFSQ0hfTUFQUElOR1tpZF0gPSBTRUFSQ0hfTUFQUElOR1tpZF0gKyB4bWx0dkZpbGUgKyAiICI7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgU0VBUkNIX01BUFBJTkdbaWRdID0gU0VBUkNIX01BUFBJTkdbaWRdICsgZGF0YVtpZF1ba2V5XSArICIgIjsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIH0pOwogICAgfSk7CiAgICByZXR1cm47Cn0KZnVuY3Rpb24gc2VhcmNoSW5NYXBwaW5nKCkgewogICAgdmFyIHNlYXJjaFZhbHVlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNlYXJjaE1hcHBpbmciKS52YWx1ZTsKICAgIHZhciB0cnMgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29udGVudF90YWJsZSIpLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJUUiIpOwogICAgZm9yICh2YXIgaSA9IDE7IGkgPCB0cnMubGVuZ3RoOyArK2kpIHsKICAgICAgICB2YXIgaWQgPSB0cnNbaV0uZ2V0QXR0cmlidXRlKCJpZCIpOwogICAgICAgIHZhciBlbGVtZW50ID0gU0VBUkNIX01BUFBJTkdbaWRdOwogICAgICAgIHN3aXRjaCAoZWxlbWVudC50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKHNlYXJjaFZhbHVlLnRvTG93ZXJDYXNlKCkpKSB7CiAgICAgICAgICAgIGNhc2UgdHJ1ZToKICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5zdHlsZS5kaXNwbGF5ID0gIiI7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSBmYWxzZToKICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5zdHlsZS5kaXNwbGF5ID0gIm5vbmUiOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgfQogICAgfQogICAgcmV0dXJuOwp9CmZ1bmN0aW9uIGNhbGN1bGF0ZVdyYXBwZXJIZWlnaHQoKSB7CiAgICBpZiAoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImJveC13cmFwcGVyIikpIHsKICAgICAgICB2YXIgZWxtID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImJveC13cmFwcGVyIik7CiAgICAgICAgdmFyIGRpdnMgPSBuZXcgQXJyYXkoIm15U3RyZWFtc0JveCIsICJjbGllbnRJbmZvIiwgImNvbnRlbnQiKTsKICAgICAgICB2YXIgZWxlbWVudHNIZWlnaHQgPSAwIC0gZWxtLm9mZnNldEhlaWdodDsKICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGRpdnMubGVuZ3RoOyBpKyspIHsKICAgICAgICAgICAgZWxlbWVudHNIZWlnaHQgPSBlbGVtZW50c0hlaWdodCArIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGRpdnNbaV0pLm9mZnNldEhlaWdodDsKICAgICAgICB9CiAgICAgICAgZWxtLnN0eWxlLmhlaWdodCA9IHdpbmRvdy5pbm5lckhlaWdodCAtIGVsZW1lbnRzSGVpZ2h0ICsgInB4IjsKICAgIH0KICAgIHJldHVybjsKfQpmdW5jdGlvbiBjaGFuZ2VDaGFubmVsTnVtYmVyKGVsZW1lbnQpIHsKICAgIHZhciBkYklEID0gZWxlbWVudC5wYXJlbnROb2RlLnBhcmVudE5vZGUuaWQ7CiAgICB2YXIgbmV3TnVtYmVyID0gcGFyc2VGbG9hdChlbGVtZW50LnZhbHVlKTsKICAgIHZhciBjaGFubmVsTnVtYmVycyA9IFtdOwogICAgdmFyIGRhdGEgPSBTRVJWRVJbInhlcGciXVsiZXBnTWFwcGluZyJdOwogICAgdmFyIGNoYW5uZWxzID0gZ2V0T2JqS2V5cyhkYXRhKTsKICAgIGlmIChpc05hTihuZXdOdW1iZXIpKSB7CiAgICAgICAgYWxlcnQoInt7LmFsZXJ0LmludmFsaWRDaGFubmVsTnVtYmVyfX0iKTsKICAgICAgICByZXR1cm47CiAgICB9CiAgICBjaGFubmVscy5mb3JFYWNoKGZ1bmN0aW9uIChpZCkgewogICAgICAgIHZhciBjaGFubmVsTnVtYmVyID0gcGFyc2VGbG9hdChkYXRhW2lkXVsieC1jaGFubmVsSUQiXSk7CiAgICAgICAgY2hhbm5lbE51bWJlcnMucHVzaChjaGFubmVsTnVtYmVyKTsKICAgIH0pOwogICAgZm9yICh2YXIgaSA9IDA7IGkgPCBjaGFubmVsTnVtYmVycy5sZW5ndGg7IGkrKykgewogICAgICAgIGlmIChjaGFubmVsTnVtYmVycy5pbmRleE9mKG5ld051bWJlcikgPT0gLTEpIHsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgfQogICAgICAgIGlmIChNYXRoLmZsb29yKG5ld051bWJlcikgPT0gbmV3TnVtYmVyKSB7CiAgICAgICAgICAgIG5ld051bWJlciA9IG5ld051bWJlciArIDE7CiAgICAgICAgfQogICAgICAgIGVsc2UgewogICAgICAgICAgICBuZXdOdW1iZXIgPSBuZXdOdW1iZXIgKyAwLjE7CiAgICAgICAgICAgIG5ld051bWJlci50b0ZpeGVkKDEpOwogICAgICAgICAgICBuZXdOdW1iZXIgPSBNYXRoLnJvdW5kKG5ld051bWJlciAqIDEwKSAvIDEwOwogICAgICAgIH0KICAgIH0KICAgIGRhdGFbZGJJRF1bIngtY2hhbm5lbElEIl0gPSBuZXdOdW1iZXIudG9TdHJpbmcoKTsKICAgIGVsZW1lbnQudmFsdWUgPSBuZXdOdW1iZXI7CiAgICBjb25zb2xlLmxvZyhkYXRhW2RiSURdWyJ4LWNoYW5uZWxJRCJdKTsKICAgIGlmIChDT0xVTU5fVE9fU09SVCA9PSAxKSB7CiAgICAgICAgQ09MVU1OX1RPX1NPUlQgPSAtMTsKICAgICAgICBzb3J0VGFibGUoMSk7CiAgICB9CiAgICByZXR1cm47Cn0KZnVuY3Rpb24gYmFja3VwKCkgewogICAgdmFyIGRhdGEgPSBuZXcgT2JqZWN0KCk7CiAgICBjb25zb2xlLmxvZygiQmFja3VwIGRhdGEiKTsKICAgIHZhciBjbWQgPSAieHRldmVCYWNrdXAiOwogICAgY29uc29sZS5sb2coIlNFTkQgVE8gU0VSVkVSIik7CiAgICBjb25zb2xlLmxvZyhkYXRhKTsKICAgIHZhciBzZXJ2ZXIgPSBuZXcgU2VydmVyKGNtZCk7CiAgICBzZXJ2ZXIucmVxdWVzdChkYXRhKTsKICAgIHJldHVybjsKfQpmdW5jdGlvbiB0b2dnbGVDaGFubmVsU3RhdHVzKGlkKSB7CiAgICB2YXIgZWxlbWVudDsKICAgIHZhciBzdGF0dXM7CiAgICBpZiAoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImFjdGl2ZSIpKSB7CiAgICAgICAgdmFyIGNoZWNrYm94ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImFjdGl2ZSIpOwogICAgICAgIHN0YXR1cyA9IChjaGVja2JveCkuY2hlY2tlZDsKICAgIH0KICAgIHZhciBpZHMgPSBnZXRBbGxTZWxlY3RlZENoYW5uZWxzKCk7CiAgICBpZiAoaWRzLmxlbmd0aCA9PSAwKSB7CiAgICAgICAgaWRzLnB1c2goaWQpOwogICAgfQogICAgaWRzLmZvckVhY2goZnVuY3Rpb24gKGlkKSB7CiAgICAgICAgdmFyIGNoYW5uZWwgPSBTRVJWRVJbInhlcGciXVsiZXBnTWFwcGluZyJdW2lkXTsKICAgICAgICBjaGFubmVsWyJ4LWFjdGl2ZSJdID0gc3RhdHVzOwogICAgICAgIHN3aXRjaCAoY2hhbm5lbFsieC1hY3RpdmUiXSkgewogICAgICAgICAgICBjYXNlIHRydWU6CiAgICAgICAgICAgICAgICBpZiAoY2hhbm5lbFsieC14bWx0di1maWxlIl0gPT0gIi0iIHx8IGNoYW5uZWxbIngtbWFwcGluZyJdID09ICItIikgewogICAgICAgICAgICAgICAgICAgIGlmIChCVUxLX0VESVQgPT0gZmFsc2UpIHsKICAgICAgICAgICAgICAgICAgICAgICAgYWxlcnQoY2hhbm5lbFsieC1uYW1lIl0gKyAiOiBNaXNzaW5nIFhNTFRWIGZpbGUgLyBjaGFubmVsIik7CiAgICAgICAgICAgICAgICAgICAgICAgIGNoZWNrYm94LmNoZWNrZWQgPSBmYWxzZTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgY2hhbm5lbFsieC1hY3RpdmUiXSA9IGZhbHNlOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgZmFsc2U6CiAgICAgICAgICAgICAgICAvLyBjb2RlLi4uCiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICB9CiAgICAgICAgaWYgKGNoYW5uZWxbIngtYWN0aXZlIl0gPT0gZmFsc2UpIHsKICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpLmNsYXNzTmFtZSA9ICJub3RBY3RpdmVFUEciOwogICAgICAgIH0KICAgICAgICBlbHNlIHsKICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpLmNsYXNzTmFtZSA9ICJhY3RpdmVFUEciOwogICAgICAgIH0KICAgIH0pOwp9CmZ1bmN0aW9uIHJlc3RvcmUoKSB7CiAgICBpZiAoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3VwbG9hZCcpKSB7CiAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3VwbG9hZCcpLnJlbW92ZSgpOwogICAgfQogICAgdmFyIHJlc3RvcmUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJJTlBVVCIpOwogICAgcmVzdG9yZS5zZXRBdHRyaWJ1dGUoInR5cGUiLCAiZmlsZSIpOwogICAgcmVzdG9yZS5zZXRBdHRyaWJ1dGUoImNsYXNzIiwgIm5vdFZpc2libGUiKTsKICAgIHJlc3RvcmUuc2V0QXR0cmlidXRlKCJuYW1lIiwgIiIpOwogICAgcmVzdG9yZS5pZCA9ICJ1cGxvYWQiOwogICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChyZXN0b3JlKTsKICAgIHJlc3RvcmUuY2xpY2soKTsKICAgIHJlc3RvcmUub25jaGFuZ2UgPSBmdW5jdGlvbiAoKSB7CiAgICAgICAgdmFyIGZpbGVuYW1lID0gcmVzdG9yZS5maWxlc1swXS5uYW1lOwogICAgICAgIHZhciBjaGVjayA9IGNvbmZpcm0oIkZpbGU6ICIgKyBmaWxlbmFtZSArICJcbnt7LmNvbmZpcm0ucmVzdG9yZX19Iik7CiAgICAgICAgaWYgKGNoZWNrID09IHRydWUpIHsKICAgICAgICAgICAgdmFyIHJlYWRlciA9IG5ldyBGaWxlUmVhZGVyKCk7CiAgICAgICAgICAgIHZhciBmaWxlID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignaW5wdXRbdHlwZT1maWxlXScpLmZpbGVzWzBdOwogICAgICAgICAgICBpZiAoZmlsZSkgewogICAgICAgICAgICAgICAgcmVhZGVyLnJlYWRBc0RhdGFVUkwoZmlsZSk7CiAgICAgICAgICAgICAgICByZWFkZXIub25sb2FkID0gZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKHJlYWRlci5yZXN1bHQpOwogICAgICAgICAgICAgICAgICAgIHZhciBkYXRhID0gbmV3IE9iamVjdCgpOwogICAgICAgICAgICAgICAgICAgIHZhciBjbWQgPSAieHRldmVSZXN0b3JlIjsKICAgICAgICAgICAgICAgICAgICBkYXRhWyJiYXNlNjQiXSA9IHJlYWRlci5yZXN1bHQ7CiAgICAgICAgICAgICAgICAgICAgdmFyIHNlcnZlciA9IG5ldyBTZXJ2ZXIoY21kKTsKICAgICAgICAgICAgICAgICAgICBzZXJ2ZXIucmVxdWVzdChkYXRhKTsKICAgICAgICAgICAgICAgIH07CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICBhbGVydCgiRmlsZSBjb3VsZCBub3QgYmUgbG9hZGVkIik7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgcmVzdG9yZS5yZW1vdmUoKTsKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KICAgIH07CiAgICByZXR1cm47Cn0KZnVuY3Rpb24gdXBsb2FkTG9nbygpIHsKICAgIGlmIChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndXBsb2FkJykpIHsKICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndXBsb2FkJykucmVtb3ZlKCk7CiAgICB9CiAgICB2YXIgdXBsb2FkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiSU5QVVQiKTsKICAgIHVwbG9hZC5zZXRBdHRyaWJ1dGUoInR5cGUiLCAiZmlsZSIpOwogICAgdXBsb2FkLnNldEF0dHJpYnV0ZSgiY2xhc3MiLCAibm90VmlzaWJsZSIpOwogICAgdXBsb2FkLnNldEF0dHJpYnV0ZSgibmFtZSIsICIiKTsKICAgIHVwbG9hZC5pZCA9ICJ1cGxvYWQiOwogICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZCh1cGxvYWQpOwogICAgdXBsb2FkLmNsaWNrKCk7CiAgICB1cGxvYWQub25ibHVyID0gZnVuY3Rpb24gKCkgewogICAgICAgIGFsZXJ0KCk7CiAgICB9OwogICAgdXBsb2FkLm9uY2hhbmdlID0gZnVuY3Rpb24gKCkgewogICAgICAgIHZhciBmaWxlbmFtZSA9IHVwbG9hZC5maWxlc1swXS5uYW1lOwogICAgICAgIHZhciByZWFkZXIgPSBuZXcgRmlsZVJlYWRlcigpOwogICAgICAgIHZhciBmaWxlID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignaW5wdXRbdHlwZT1maWxlXScpLmZpbGVzWzBdOwogICAgICAgIGlmIChmaWxlKSB7CiAgICAgICAgICAgIHJlYWRlci5yZWFkQXNEYXRhVVJMKGZpbGUpOwogICAgICAgICAgICByZWFkZXIub25sb2FkID0gZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgY29uc29sZS5sb2cocmVhZGVyLnJlc3VsdCk7CiAgICAgICAgICAgICAgICB2YXIgZGF0YSA9IG5ldyBPYmplY3QoKTsKICAgICAgICAgICAgICAgIHZhciBjbWQgPSAidXBsb2FkTG9nbyI7CiAgICAgICAgICAgICAgICBkYXRhWyJiYXNlNjQiXSA9IHJlYWRlci5yZXN1bHQ7CiAgICAgICAgICAgICAgICBkYXRhWyJmaWxlbmFtZSJdID0gZmlsZS5uYW1lOwogICAgICAgICAgICAgICAgdmFyIHNlcnZlciA9IG5ldyBTZXJ2ZXIoY21kKTsKICAgICAgICAgICAgICAgIHNlcnZlci5yZXF1ZXN0KGRhdGEpOwogICAgICAgICAgICAgICAgdmFyIHVwZGF0ZUxvZ28gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndXBkYXRlLWljb24nKTsKICAgICAgICAgICAgICAgIHVwZGF0ZUxvZ28uY2hlY2tlZCA9IGZhbHNlOwogICAgICAgICAgICAgICAgdXBkYXRlTG9nby5jbGFzc05hbWUgPSAiY2hhbmdlZCI7CiAgICAgICAgICAgIH07CiAgICAgICAgfQogICAgICAgIGVsc2UgewogICAgICAgICAgICBhbGVydCgiRmlsZSBjb3VsZCBub3QgYmUgbG9hZGVkIik7CiAgICAgICAgfQogICAgICAgIHVwbG9hZC5yZW1vdmUoKTsKICAgICAgICByZXR1cm47CiAgICB9Owp9CmZ1bmN0aW9uIGNoZWNrVW5kbyhrZXkpIHsKICAgIHN3aXRjaCAoa2V5KSB7CiAgICAgICAgY2FzZSAiZXBnTWFwcGluZyI6CiAgICAgICAgICAgIGlmIChVTkRPLmhhc093blByb3BlcnR5KGtleSkpIHsKICAgICAgICAgICAgICAgIFNFUlZFUlsieGVwZyJdW2tleV0gPSBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KFVORE9ba2V5XSkpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgVU5ET1trZXldID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeShTRVJWRVJbInhlcGciXVtrZXldKSk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgYnJlYWs7CiAgICB9CiAgICByZXR1cm47Cn0KZnVuY3Rpb24gc29ydFNlbGVjdChlbGVtKSB7CiAgICB2YXIgdG1wQXJ5ID0gW107CiAgICB2YXIgc2VsZWN0ZWRWYWx1ZSA9IGVsZW1bZWxlbS5zZWxlY3RlZEluZGV4XS52YWx1ZTsKICAgIGZvciAodmFyIGkgPSAwOyBpIDwgZWxlbS5vcHRpb25zLmxlbmd0aDsgaSsrKQogICAgICAgIHRtcEFyeS5wdXNoKGVsZW0ub3B0aW9uc1tpXSk7CiAgICB0bXBBcnkuc29ydChmdW5jdGlvbiAoYSwgYikgeyByZXR1cm4gKGEudGV4dCA8IGIudGV4dCkgPyAtMSA6IDE7IH0pOwogICAgd2hpbGUgKGVsZW0ub3B0aW9ucy5sZW5ndGggPiAwKQogICAgICAgIGVsZW0ub3B0aW9uc1swXSA9IG51bGw7CiAgICB2YXIgbmV3U2VsZWN0ZWRJbmRleCA9IDA7CiAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRtcEFyeS5sZW5ndGg7IGkrKykgewogICAgICAgIGVsZW0ub3B0aW9uc1tpXSA9IHRtcEFyeVtpXTsKICAgICAgICBpZiAoZWxlbS5vcHRpb25zW2ldLnZhbHVlID09IHNlbGVjdGVkVmFsdWUpCiAgICAgICAgICAgIG5ld1NlbGVjdGVkSW5kZXggPSBpOwogICAgfQogICAgZWxlbS5zZWxlY3RlZEluZGV4ID0gbmV3U2VsZWN0ZWRJbmRleDsgLy8gU2V0IG5ldyBzZWxlY3RlZCBpbmRleCBhZnRlciBzb3J0aW5nCiAgICByZXR1cm47Cn0KZnVuY3Rpb24gdXBkYXRlTG9nKCkgewogICAgY29uc29sZS5sb2coIlRPS0VOIik7CiAgICB2YXIgc2VydmVyID0gbmV3IFNlcnZlcigidXBkYXRlTG9nIik7CiAgICBzZXJ2ZXIucmVxdWVzdChuZXcgT2JqZWN0KCkpOwp9Cg==" - webUI["html/js/menu.js"] = "CmZ1bmN0aW9uIHNldE1lbnVJdGVtKCkgewoKICBtZW51ID0gbmV3IE9iamVjdCgpOwogIHN1Yk1lbnUgPSBuZXcgT2JqZWN0KCk7CgogIHZhciBtZW51X20zdSA9IG5ldyBPYmplY3QoKTsKICBtZW51X20zdVsiX21lbnVUeXBlIl0gICAgICAgPSAiaW5wdXRBcnJheSI7CiAgbWVudV9tM3VbIl9lbGVtZW50Il0gICAgICAgID0gIkxJIjsKICBtZW51X20zdVsiX2NvbmZpZ0tleSJdICAgICAgPSAiZmlsZXMubTN1IjsKICBtZW51X20zdVsiX3RleHQiXSAgICAgICAgICAgPSAiUGxheWxpc3QiOwogIG1lbnVfbTN1WyJfaWNvbiJdICAgICAgICAgICA9ICJpbWcvbTN1LnBuZyI7CiAgbWVudV9tM3VbIl9oZWFkbGluZSJdICAgICAgID0gIlBsYXlsaXN0czogTG9jYWwgb3IgcmVtb3RlIjsKICBtZW51X20zdVsiX3VzYWdlIl0gICAgICAgICAgPSAiPGI+SW5mbzwvYj48YnI+QXZhaWxhYmlsaXR5OiBGaWxlIGF2YWlsYWJpbGl0eSBpbiBwZXJjZW50PGJyPlN0cmVhbXM6ICAgICAgTnVtYmVyIG9mIHN0cmVhbXMgaW4gdGhlIGZpbGUuPGJyPmdyb3VwLXRpdGxlOiAgU3RyZWFtcyB0aGF0IGFyZSBhc3NpZ25lZCB0byBhIGdyb3VwLiBTaW1wbGlmaWVzIGZpbHRlcmluZyBzdHJlYW1zPGJyPnR2Zy1pZDogICAgICAgVGhpcyBJRCBpcyB1c2VkIGZvciBhdXRvbWF0aWMgbWFwcGluZywgbXVzdCBtYXRjaCB3aXRoIHRoZSBjaGFubmVsIElEIGluIHRoZSBYTUxUViBmaWxlLjxicj5VbmlxdWUgSUQ6ICAgIFN0cmVhbXMgd2l0aCBhIHVuaXF1ZSBJRCB0byBpZGVudGlmeSB0aGVtLiBBbGxvd3MgY2hhbm5lbCBuYW1lIGNoYW5nZXMgaW4gdGhlIE0zVSB3aXRob3V0IGxvc2luZyB0aGUgWE1MVFYgbWFwcGluZyAoUFBWIC8gbGl2ZSBldmVudHMpLjxicj48YnI+PGI+VXNhZ2UgTTNVOjwvYj48YnI+UmVtb3RlIHBsYXlsaXN0OiBodHRwOi8veW91ci5pcHR2LnByb3ZpZGVyLmNvbS9maWxlLm0zdTxicj5Mb2NhbCAgcGxheWxpc3Q6IC9wYXRoL3RvL2ZpbGUubTN1PGJyPjxicj48Yj5Vc2FnZSBIREhvbWVSdW46PC9iPjxicj5JUDogMTkyLjE2OC4xLjEwOjUwMDQ8YnI+IgogIG1lbnVfbTN1WyJuYW1lIl0gICAgICAgICAgICA9ICJmaWxlIjsKICBtZW51X20zdVsiaWQiXSAgICAgICAgICAgICAgPSAiZmlsZSI7CiAgbWVudV9tM3VbInZhbHVlIl0gICAgICAgICAgID0gbWVudV9tM3VbIm5hbWUiXTsKICBtZW51X20zdVsicGxhY2Vob2xkZXIiXSAgICAgPSAiUGxheWxpc3Q6IGxvY2FsIG9yIHJlbW90ZSI7CiAgbWVudV9tM3VbIm9uY2xpY2siXSAgICAgICAgID0gImphdmFzY3JpcHQ6IHRvZ2dsZU1lbnUodGhpcyk7IjsKICBtZW51X20zdVsiY2xhc3MiXSAgICAgICAgICAgPSAibWVudS1ub3RBY3RpdmUiOwoKCiAgdmFyIG1lbnVfZmlsdGVyID0gbmV3IE9iamVjdCgpOwogIG1lbnVfZmlsdGVyWyJfbWVudVR5cGUiXSAgICA9ICJpbnB1dEFycmF5IjsKICBtZW51X2ZpbHRlclsiX2VsZW1lbnQiXSAgICAgPSAiTEkiOwogIG1lbnVfZmlsdGVyWyJfY29uZmlnS2V5Il0gICA9ICJmaWx0ZXIiOwogIG1lbnVfZmlsdGVyWyJfdGV4dCJdICAgICAgICA9ICJGaWx0ZXIiOwogIG1lbnVfZmlsdGVyWyJfaWNvbiJdICAgICAgICA9ICJpbWcvZmlsdGVyLnBuZyI7CiAgbWVudV9maWx0ZXJbIl9oZWFkbGluZSJdICAgID0gIkZpbHRlciBieSBNM1UgcGFyYW1ldGVycywgZS5nLiBncm91cC10aXRsZSI7CiAgbWVudV9maWx0ZXJbIl91c2FnZSJdICAgICAgID0gIjxiPlVzYWdlOjwvYj48YnI+U3BvcnQgLSBBbGwgc3BvcnRzIGNoYW5uZWxzPGJyPlNwb3J0IHtIRH0gLSBBbGwgSEQgc3BvcnRzIGNoYW5uZWxzPGJyPlNwb3J0IHtIRH0gIXtFUyxERX0gLSBBbGwgSEQgc3BvcnRzIGNoYW5uZWxzLCBidXQgbm8gU3BhbmlzaCBhbmQgR2VybWFuPGJyPjxicj5UbyBmaWx0ZXIgdGhlIHN0cmVhbXMgb2YgYSBIREhvbWVSdW4sIHRoZSBwbGF5bGlzdCBuYW1lIGNhbiBiZSBlbnRlcmVkOjxicj5NeSB0dW5lciB7SER9IgogIC8vbWVudV9maWx0ZXJbIl91c2FnZSJdICAgICAgID0gIjxiPlVzYWdlOjwvYj48YnI+QWxsIHNwb3J0cyBjaGFubmVsczogU3BvcnQ8YnI+QWxsIEhEIHNwb3J0cyBjaGFubmVsczogU3BvcnQge0hEfTxicj5BbGwgSEQgc3BvcnRzIGNoYW5uZWxzLCBidXQgbm8gU3BhbmlzaCBhbmQgR2VybWFuOiBTcG9ydCB7SER9ICF7RVMsREV9IgogIG1lbnVfZmlsdGVyWyJuYW1lIl0gICAgICAgICA9ICJmaWx0ZXIiOwogIG1lbnVfZmlsdGVyWyJpZCJdICAgICAgICAgICA9ICJNM1UiOwogIG1lbnVfZmlsdGVyWyJ2YWx1ZSJdICAgICAgICA9IG1lbnVfZmlsdGVyWyJuYW1lIl07CiAgbWVudV9maWx0ZXJbInBsYWNlaG9sZGVyIl0gID0gIkZpbHRlciBzdHJlYW1zOiBTcG9ydCI7CiAgbWVudV9maWx0ZXJbIm9uY2xpY2siXSAgICAgID0gImphdmFzY3JpcHQ6IHRvZ2dsZU1lbnUodGhpcyk7IjsKICBtZW51X2ZpbHRlclsiY2xhc3MiXSAgICAgICAgPSAibWVudS1ub3RBY3RpdmUiOwoKICB2YXIgbWVudV9pZCA9IG5ldyBPYmplY3QoKTsKICBtZW51X2lkWyJfbWVudVR5cGUiXSAgICAgICAgPSAiaW5wdXRBcnJheSI7CiAgbWVudV9pZFsiX2VsZW1lbnQiXSAgICAgICAgID0gIkxJIjsKICBtZW51X2lkWyJfY29uZmlnS2V5Il0gICAgICAgPSAiaWQiOwogIG1lbnVfaWRbIl90ZXh0Il0gICAgICAgICAgICA9ICJQTVMgSUQiOwogIG1lbnVfaWRbIl9pY29uIl0gICAgICAgICAgICA9ICJpbWcvbnVtYmVyLnBuZyI7CiAgbWVudV9pZFsiX2hlYWRsaW5lIl0gICAgICAgID0gIlNldHVwIFBNUyBndWlkZSBudW1iZXIiOwogIG1lbnVfaWRbIl91c2FnZSJdICAgICAgICAgICA9ICdTb21lIHBsYXlsaXN0cyBoYXZlIHVuaXF1ZSBjaGFubmVsIElEcy48YnI+RW50ZXIgdGhlIGtleXdvcmQgb2YgdGhlIElELiBUaGUgY2hhbm5lbCBhc3NpZ25tZW50IGluIFBNUyB3aWxsIGNoYW5nZSBhcyBhIHJlc3VsdC48YnI+PGJyPmUuZy4gY2hhbm5lbElEPGJyPiNFWFRJTkY6MCB0eXBlPSJzdHJlYW0iIDxiPmNoYW5uZWxJZDwvYj49IjgxIiwgTXkgU3RyZWFtaW5nIENoYW5uZWwgSEQ8YnI+PGJyPk9ubHkgZW50ZXIgaGVyZSBpZiB5b3Uga25vdyB3aGF0IHlvdSBhcmUgZG9pbmchJwogIG1lbnVfaWRbIm5hbWUiXSAgICAgICAgICAgICA9ICJpZCI7CiAgbWVudV9pZFsiaWQiXSAgICAgICAgICAgICAgID0gImlkIjsKICBtZW51X2lkWyJ2YWx1ZSJdICAgICAgICAgICAgPSBtZW51X2lkWyJuYW1lIl07CiAgbWVudV9pZFsicGxhY2Vob2xkZXIiXSAgICAgID0gIlVuaXF1ZSBJRCBmcm9tIHRoZSBNM1UgZmlsZSI7CiAgbWVudV9pZFsib25jbGljayJdICAgICAgICAgID0gImphdmFzY3JpcHQ6IHRvZ2dsZU1lbnUodGhpcyk7IjsKICBtZW51X2lkWyJjbGFzcyJdICAgICAgICAgICAgPSAibWVudS1ub3RBY3RpdmUiOwoKCiAgdmFyIG1lbnVfeG1sdHYgPSBuZXcgT2JqZWN0KCk7CiAgbWVudV94bWx0dlsiX21lbnVUeXBlIl0gICAgID0gImlucHV0QXJyYXkiOwogIG1lbnVfeG1sdHZbIl9lbGVtZW50Il0gICAgICA9ICJMSSI7CiAgbWVudV94bWx0dlsiX2NvbmZpZ0tleSJdICAgID0gImZpbGVzLnhtbHR2IjsKICBtZW51X3htbHR2WyJfdGV4dCJdICAgICAgICAgPSAiWE1MVFYiOwogIG1lbnVfeG1sdHZbIl9pY29uIl0gICAgICAgICA9ICJpbWcveG1sdHYucG5nIjsKICBtZW51X3htbHR2WyJfaGVhZGxpbmUiXSAgICAgPSAiWE1MVFYgZmlsZXM6IExvY2FsIG9yIHJlbW90ZSI7CiAgbWVudV94bWx0dlsiX3VzYWdlIl0gICAgICAgID0gIjxiPkluZm86PC9iPjxicj5BdmFpbGFiaWxpdHk6IEZpbGUgYXZhaWxhYmlsaXR5IGluIHBlcmNlbnQ8YnI+Q2hhbm5lbHM6ICAgICBOdW1iZXIgb2YgY2hhbm5lbHMgaW4gdGhlIGZpbGU8YnI+UHJvZ3JhbXM6ICAgICBOdW1iZXIgb2YgRVBHIGRhdGE8YnI+PGJyPjxiPlVzYWdlOjwvYj48YnI+UmVtb3RlIFhNTFRWIGZpbGU6IGh0dHA6Ly95b3VyLmVwZy5wcm92aWRlci5jb20vZ3VpZGUueG1sPGJyPkxvY2FsICBYTUxUViBmaWxlOiAvcGF0aC90by9ndWlkZS54bWwiCiAgbWVudV94bWx0dlsibmFtZSJdICAgICAgICAgID0gInhtbHR2IjsKICBtZW51X3htbHR2WyJpZCJdICAgICAgICAgICAgPSAieG1sdHYiOwogIG1lbnVfeG1sdHZbInZhbHVlIl0gICAgICAgICA9IG1lbnVfeG1sdHZbIm5hbWUiXTsKICBtZW51X3htbHR2WyJwbGFjZWhvbGRlciJdICAgPSAiWE1MVFYgRmlsZTogbG9jYWwgb3IgcmVtb3RlIjsKICBtZW51X3htbHR2WyJvbmNsaWNrIl0gICAgICAgPSAiamF2YXNjcmlwdDogdG9nZ2xlTWVudSh0aGlzKTsiOwogIG1lbnVfeG1sdHZbImNsYXNzIl0gICAgICAgICA9ICJtZW51LW5vdEFjdGl2ZSI7CgogIG1lbnVfbWFwcGluZyA9IG5ldyBPYmplY3QoKTsKICBtZW51X21hcHBpbmdbIl9lbGVtZW50Il0gICA9ICJMSSI7CiAgbWVudV9tYXBwaW5nWyJfdGV4dCJdICAgICAgPSAiTWFwcGluZyI7CiAgbWVudV9tYXBwaW5nWyJfaWNvbiJdICAgICAgPSAiaW1nL21hcHBpbmcucG5nIjsKICBtZW51X21hcHBpbmdbIl9jb25maWdLZXkiXSA9ICJtYXBwaW5nIjsKICBtZW51X21hcHBpbmdbIl9oZWFkbGluZSJdICA9ICJYTUxUViBhc3NpZ25tZW50IGFuZCBzb3J0aW5nIG9mIGNoYW5uZWxzIjsKICBtZW51X21hcHBpbmdbImlkIl0gICAgICAgICA9ICJtYXBwaW5nIjsKICBtZW51X21hcHBpbmdbIm9uY2xpY2siXSAgICA9ICJqYXZhc2NyaXB0OiB0b2dnbGVNZW51KHRoaXMpOyI7CiAgbWVudV9tYXBwaW5nWyJjbGFzcyJdICAgICAgPSAibWVudS1ub3RBY3RpdmUgcGhvbmUiOwoKICBtZW51X3VzZXJzID0gbmV3IE9iamVjdCgpOwogIG1lbnVfdXNlcnNbIl9lbGVtZW50Il0gICA9ICJMSSI7CiAgbWVudV91c2Vyc1siX3RleHQiXSAgICAgID0gIlVzZXJzIjsKICBtZW51X3VzZXJzWyJfaWNvbiJdICAgICAgPSAiaW1nL3VzZXJzLnBuZyI7CiAgbWVudV91c2Vyc1siX2NvbmZpZ0tleSJdID0gInVzZXJzIjsKICBtZW51X3VzZXJzWyJfaGVhZGxpbmUiXSAgPSAiQWRtaW5pc3RyYXRpb24gb2YgdXNlcnMgYW5kIHBlcm1pc3Npb25zIjsKICBtZW51X3VzZXJzWyJpZCJdICAgICAgICAgPSAidXNlcnMiOwogIG1lbnVfdXNlcnNbIm9uY2xpY2siXSAgICA9ICJqYXZhc2NyaXB0OiB0b2dnbGVNZW51KHRoaXMpOyI7CiAgbWVudV91c2Vyc1siY2xhc3MiXSAgICAgID0gIm1lbnUtbm90QWN0aXZlIjsKICBtZW51X3VzZXJzWyJfdXNhZ2UiXSAgICAgPSAiPGI+QXV0aG9yaXphdGlvbiBncm91cHM6PC9iPjxicj5XRUI6IFVzZXJzIGNhbiBsb2cgaW4gdG8gdGhlIHdlYiBpbnRlcmZhY2U8YnI+UE1TOiBQcm9ncmFtcyBsaWtlIFBsZXggY2FuIGFjY2VzcyB0aGUgY2hhbm5lbCBsaXN0LiBMb2dpbiB2aWEgRFZSIElQOiB1c2VybmFtZTpwYXNzd29yZEB4dGV2ZS5pcDpwb3J0PGJyPk0zVTogQWxsb3dzIGNsaWVudHMgdG8gZG93bmxvYWQgdGhlIE0zVSBwbGF5bGlzdC48YnI+WE1MOiBBbGxvd3MgY2xpZW50cyB0byBkb3dubG9hZCB0aGUgWE1MVFYgZmlsZS48YnI+QVBJOiBBbGxvd3MgY2xpZW50cyB0byB1c2UgdGhlIEFQSSBpbnRlcmZhY2UuPGJyPjxicj4hISEgRm9yIFBNUyBhdXRoZW50aWNhdGlvbiwgb25seSB0aGUgZm9sbG93aW5nIHNwZWNpYWwgY2hhcmFjdGVycyBhcmUgdmFsaWQ6ICEkKCk9LiwtOjs8YnI+PGJyPlRoZSBpbmRpdmlkdWFsIGF1dGhlbnRpY2F0aW9uIGdyb3VwcyBjYW4gYmUgYWN0aXZhdGVkIC8gZGVhY3RpdmF0ZWQgaW4gdGhlIHNldHRpbmdzIG1lbnUuIgogIAogIG1lbnVfc2V0dGluZ3MgPSBuZXcgT2JqZWN0KCk7CiAgbWVudV9zZXR0aW5nc1siX2VsZW1lbnQiXSAgID0gIkxJIjsKICBtZW51X3NldHRpbmdzWyJfdGV4dCJdICAgICAgPSAiU2V0dGluZ3MiOwogIG1lbnVfc2V0dGluZ3NbIl9pY29uIl0gICAgICA9ICJpbWcvc2V0dGluZ3MucG5nIjsKICBtZW51X3NldHRpbmdzWyJfY29uZmlnS2V5Il0gPSAic2V0dGluZ3MiOwogIG1lbnVfc2V0dGluZ3NbIl9oZWFkbGluZSJdICA9ICJTZXR0aW5ncyI7CiAgbWVudV9zZXR0aW5nc1siX3N1Yk1lbnUiXSAgID0gIjcwMSw3MDIsNzAzLDcwNCw3MDUsNzA2LDcwNyw3MDgsNzk5LDcxMCw3MTEsNzEyLDcxMyw3MTQiOwogIG1lbnVfc2V0dGluZ3NbImlkIl0gICAgICAgICA9ICJzZXR0aW5ncyI7CiAgbWVudV9zZXR0aW5nc1sib25jbGljayJdICAgID0gImphdmFzY3JpcHQ6IHRvZ2dsZU1lbnUodGhpcyk7IjsKICBtZW51X3NldHRpbmdzWyJjbGFzcyJdICAgICAgPSAibWVudS1ub3RBY3RpdmUiOwoKICBtZW51X2xvZyA9IG5ldyBPYmplY3QoKTsKICBtZW51X2xvZ1siX2VsZW1lbnQiXSAgICAgICAgPSAiTEkiOwogIG1lbnVfbG9nWyJfdGV4dCJdICAgICAgICAgICA9ICJMb2ciOwogIG1lbnVfbG9nWyJfaWNvbiJdICAgICAgICAgICA9ICJpbWcvbG9nLnBuZyI7CiAgbWVudV9sb2dbIl9oZWFkbGluZSJdICAgICAgID0gIkxvZyI7CiAgbWVudV9sb2dbIl9jb25maWdLZXkiXSAgICAgID0gImxvZyI7CiAgbWVudV9sb2dbImlkIl0gICAgICAgICAgICAgID0gImxvZyI7CiAgbWVudV9sb2dbIm9uY2xpY2siXSAgICAgICAgID0gImphdmFzY3JpcHQ6IHRvZ2dsZU1lbnUodGhpcyk7IjsKICBtZW51X2xvZ1siY2xhc3MiXSAgICAgICAgICAgPSAibWVudS1ub3RBY3RpdmUiOwoKICBtZW51X2xvZ291dCA9IG5ldyBPYmplY3QoKTsKICBtZW51X2xvZ291dFsiX2VsZW1lbnQiXSAgID0gIkxJIjsKICBtZW51X2xvZ291dFsiX3RleHQiXSAgICAgID0gIkxvZ291dCI7CiAgbWVudV9sb2dvdXRbIl9pY29uIl0gICAgICA9ICJpbWcvbG9nb3V0LnBuZyI7CiAgbWVudV9sb2dvdXRbImlkIl0gICAgICAgICA9ICJsb2dvdXQiOwogIG1lbnVfbG9nb3V0WyJvbmNsaWNrIl0gICAgPSAiamF2YXNjcmlwdDogbG9nb3V0KCk7IjsKICBtZW51X2xvZ291dFsiY2xhc3MiXSAgICAgID0gIm1lbnUtbm90QWN0aXZlIjsKCiAgdmFyIG1lbnVfc2NoZWR1bGUgPSBuZXcgT2JqZWN0KCk7CiAgbWVudV9zY2hlZHVsZVsiX21lbnVUeXBlIl0gID0gImlucHV0QXJyYXkiOwogIG1lbnVfc2NoZWR1bGVbIl9lbGVtZW50Il0gICA9ICJMSSI7CiAgbWVudV9zY2hlZHVsZVsiX2NvbmZpZ0tleSJdID0gInVwZGF0ZSI7CiAgbWVudV9zY2hlZHVsZVsiX3RleHQiXSAgICAgID0gIlNjaGVkdWxlIjsKICBtZW51X3NjaGVkdWxlWyJfaWNvbiJdICAgICAgPSAiaW1nL3NjaGVkdWxlLnBuZyI7CiAgbWVudV9zY2hlZHVsZVsiX2hlYWRsaW5lIl0gID0gIlNjaGVkdWxlIGZvciB1cGRhdGluZyBNM1UsIFhNTFRWIGZpbGVzIGFuZCBjcmVhdGluZyBhIGxvY2FsIGJhY2t1cCI7CiAgbWVudV9zY2hlZHVsZVsiX3VzYWdlIl0gICAgID0gIjxiPlVzYWdlOjwvYj48YnI+MDgxNSA9IDg6MTUgYW08YnI+MTkzMCA9IDc6MzAgcG0iCiAgbWVudV9zY2hlZHVsZVsibmFtZSJdICAgICAgID0gInVwZGF0ZSI7CiAgbWVudV9zY2hlZHVsZVsiaWQiXSAgICAgICAgID0gInVwZGF0ZSI7CiAgbWVudV9zY2hlZHVsZVsidmFsdWUiXSAgICAgID0gbWVudV9pZFsibmFtZSJdOwogIG1lbnVfc2NoZWR1bGVbInBsYWNlaG9sZGVyIl09ICJ0aW1lIG9mIGRheSAoMjQtaG91ciBjbG9jaykiOwogIG1lbnVfc2NoZWR1bGVbIm9uY2xpY2siXSAgICA9ICJqYXZhc2NyaXB0OiB0b2dnbGVNZW51KHRoaXMpOyI7CiAgbWVudV9zY2hlZHVsZVsiY2xhc3MiXSAgICAgID0gIm1lbnUtbm90QWN0aXZlIjsKCiAgdmFyIG1lbnVfZmlsZXNVcGRhdGUgPSBuZXcgT2JqZWN0KCk7CiAgbWVudV9maWxlc1VwZGF0ZVsiX2VsZW1lbnQiXSA9ICJMSSI7CiAgbWVudV9maWxlc1VwZGF0ZVsiX21lbnVUeXBlIl0gICAgID0gImNoZWNrYm94IjsKICBtZW51X2ZpbGVzVXBkYXRlWyJfY29uZmlnS2V5Il0gICAgPSAiZmlsZXMudXBkYXRlIjsKICBtZW51X2ZpbGVzVXBkYXRlWyJfbGFiZWwiXSAgICAgICAgPSAiVXBkYXRlIHRoZSBwcm92aWRlciBmaWxlcyBhdCBzeXN0ZW0gc3RhcnR1cCI7CiAgbWVudV9maWxlc1VwZGF0ZVsiX2hlYWRsaW5lIl0gICAgID0gIlVwZGF0ZSB0aGUgcHJvdmlkZXIgZmlsZXMgYXQgc3lzdGVtIHN0YXJ0dXAiOwogIG1lbnVfZmlsZXNVcGRhdGVbIl91c2FnZSJdICAgICAgICA9ICJQbGF5bGlzdHMgYW5kIFhNTFRWIGZpbGVzIGFyZSB1cGRhdGVkIGJ5IHhUZVZlIGF0IHN5c3RlbSBzdGFydHVwLiIKICBtZW51X2ZpbGVzVXBkYXRlWyJuYW1lIl0gICAgICAgICAgPSAiZmlsZXMudXBkYXRlIjsKICBtZW51X2ZpbGVzVXBkYXRlWyJpZCJdICAgICAgICAgICAgPSAiZmlsZXMudXBkYXRlIjsKICBtZW51X2ZpbGVzVXBkYXRlWyJ2YWx1ZSJdICAgICAgICAgPSBtZW51X2ZpbGVzVXBkYXRlWyJuYW1lIl07CiAgbWVudV9maWxlc1VwZGF0ZVsib25jbGljayJdICAgICAgID0gImphdmFzY3JpcHQ6IHRvZ2dsZU1lbnUodGhpcyk7IjsKICBtZW51X2ZpbGVzVXBkYXRlWyJjbGFzcyJdICAgICAgICAgPSAibWVudS1ub3RBY3RpdmUiOwogIAogIHZhciBtZW51X3R1bmVyID0gbmV3IE9iamVjdCgpOwogIG1lbnVfdHVuZXJbIl9lbGVtZW50Il0gICAgICA9ICJMSSI7CiAgbWVudV90dW5lclsiX21lbnVUeXBlIl0gICAgID0gInNlbGVjdCI7CiAgbWVudV90dW5lclsiX2NvbmZpZ0tleSJdICAgID0gInR1bmVyIjsKICBtZW51X3R1bmVyWyJfbGFiZWwiXSAgICAgICAgPSAiQXZhaWxhYmxlIHR1bmVycyI7CiAgbWVudV90dW5lclsiX3RleHQiXSAgICAgICAgID0gIlR1bmVyIjsKICBtZW51X3R1bmVyWyJfaWNvbiJdICAgICAgICAgPSAiaW1nL3R1bmVyLnBuZyI7CiAgbWVudV90dW5lclsiX2hlYWRsaW5lIl0gICAgID0gIk51bWJlciBvZiB0dW5lcnMiOwogIG1lbnVfdHVuZXJbIl91c2FnZSJdICAgICAgICA9ICJUaGlzIHNldHRpbmcgaXMgb25seSB1c2VkIGJ5IFBsZXggYW5kIEVtYnkuPGJyPlRoZSBudW1iZXIgb2YgY29uY3VycmVudCBzdHJlYW1zIGFsbG93ZWQgYnkgdGhlIElQVFYgcHJvdmlkZXIuPGJyPkFmdGVyIGEgY2hhbmdlLCB4VGVWZSBtdXN0IGJlIGRlbGV0ZSBpbiB0aGUgUE1TIERWUiBzZXR0aW5ncyBhbmQgc2V0IHVwIGFnYWluLiIKICBtZW51X3R1bmVyWyJuYW1lIl0gICAgICAgICAgPSAidHVuZXIiOwogIG1lbnVfdHVuZXJbImlkIl0gICAgICAgICAgICA9ICJ0dW5lciI7CiAgbWVudV90dW5lclsidmFsdWUiXSAgICAgICAgID0gbWVudV90dW5lclsibmFtZSJdOwogIG1lbnVfdHVuZXJbInBsYWNlaG9sZGVyIl0gICA9ICJOdW1iZXIgb2YgdHVuZXJzIjsKICBtZW51X3R1bmVyWyJvbmNsaWNrIl0gICAgICAgPSAiamF2YXNjcmlwdDogdG9nZ2xlTWVudSh0aGlzKTsiOwogIG1lbnVfdHVuZXJbImNsYXNzIl0gICAgICAgICA9ICJtZW51LW5vdEFjdGl2ZSI7CgogIHZhciBvcHRpb25WYWx1ZXMgPSBuZXcgQXJyYXkoKTsKICBmb3IgKHZhciBpID0gMTsgaSA8PSAxMDA7IGkrKykgewogICAgb3B0aW9uVmFsdWVzLnB1c2goaSkKICB9CiAgbWVudV90dW5lclsiX29wdGlvblZhbHVlcyJdID0gb3B0aW9uVmFsdWVzOwogIAogIHZhciBtZW51X2VwZyA9IG5ldyBPYmplY3QoKTsKICBtZW51X2VwZ1siX2VsZW1lbnQiXSA9ICJMSSI7CiAgbWVudV9lcGdbIl9tZW51VHlwZSJdICAgICA9ICJzZWxlY3QiOwogIG1lbnVfZXBnWyJfY29uZmlnS2V5Il0gICAgPSAiZXBnU291cmNlIjsKICBtZW51X2VwZ1siX2xhYmVsIl0gICAgICAgID0gIlNlbGVjdGlvbiBvZiB0aGUgRVBHIHNvdXJjZSI7CiAgbWVudV9lcGdbIl90ZXh0Il0gICAgICAgICA9ICJFUEcgc291cmNlIjsKICBtZW51X2VwZ1siX2hlYWRsaW5lIl0gICAgID0gIlNlbGVjdGlvbiBvZiB0aGUgRVBHIHNvdXJjZSI7CiAgbWVudV9lcGdbIl91c2FnZSJdICAgICAgICA9ICJQTVM6ICAgVXNlIEVQRyBkYXRhIGZyb20gUGxleCBvciBFbWJ5Ljxicj5YRVBHOiAgVXNlIG9mIGV4dGVybmFsIEVQRyBkYXRhIChYTUxUVikuPGJyPiAgICAgICBTZXZlcmFsIFhNTFRWIHNvdXJjZXMgcG9zc2libGUuPGJyPiAgICAgICBBbGxvd3MgZWRpdGluZyBhbmQgb3JkZXIgY2hhbm5lbHMuPGJyPiAgICAgICBNM1UgLyBYTUxUViBleHBvcnQgKEhUVFAgbGluayBmb3IgSVBUViBhcHBzKS4iCiAgbWVudV9lcGdbIm5hbWUiXSAgICAgICAgICA9ICJlcGdTb3VyY2UiOwogIG1lbnVfZXBnWyJpZCJdICAgICAgICAgICAgPSAiZXBnU291cmNlIjsKICBtZW51X2VwZ1sidmFsdWUiXSAgICAgICAgID0gbWVudV9lcGdbIm5hbWUiXTsKICBtZW51X2VwZ1sicGxhY2Vob2xkZXIiXSAgID0gIkVQRyBzb3VyY2UiOwogIG1lbnVfZXBnWyJvbmNsaWNrIl0gICAgICAgPSAiamF2YXNjcmlwdDogdG9nZ2xlTWVudSh0aGlzKTsiOwogIG1lbnVfZXBnWyJjbGFzcyJdICAgICAgICAgPSAibWVudS1ub3RBY3RpdmUiOwogIG1lbnVfZXBnWyJfb3B0aW9uVmFsdWVzIl0gPSBuZXcgQXJyYXkoIlBNUyIsICJYRVBHIik7CgogIHZhciBtZW51X3hlcGcgPSBuZXcgT2JqZWN0KCk7CiAgbWVudV94ZXBnWyJfZWxlbWVudCJdID0gIkxJIjsKICBtZW51X3hlcGdbIl9tZW51VHlwZSJdICAgICA9ICJjaGVja2JveCI7CiAgbWVudV94ZXBnWyJfY29uZmlnS2V5Il0gICAgPSAieHRldmVBdXRvVXBkYXRlIjsKICBtZW51X3hlcGdbIl9sYWJlbCJdICAgICAgICA9ICJBdXRvbWF0aWMgdXBkYXRlIG9mIHhUZVZlIjsKICBtZW51X3hlcGdbIl9oZWFkbGluZSJdICAgICA9ICJBdXRvbWF0aWMgdXBkYXRlIG9mIHhUZVZlIjsKICBtZW51X3hlcGdbIl91c2FnZSJdICAgICAgICA9ICJJZiBhIG5ldyB2ZXJzaW9uIG9mIHhUZVZlIGlzIGF2YWlsYWJsZSwgaXQgd2lsbCBiZSBhdXRvbWF0aWNhbGx5IGluc3RhbGxlZC4iCiAgbWVudV94ZXBnWyJuYW1lIl0gICAgICAgICAgPSAieHRldmVBdXRvVXBkYXRlIjsKICBtZW51X3hlcGdbImlkIl0gICAgICAgICAgICA9ICJ4dGV2ZUF1dG9VcGRhdGUiOwogIG1lbnVfeGVwZ1sidmFsdWUiXSAgICAgICAgID0gbWVudV94ZXBnWyJuYW1lIl07CiAgbWVudV94ZXBnWyJvbmNsaWNrIl0gICAgICAgPSAiamF2YXNjcmlwdDogdG9nZ2xlTWVudSh0aGlzKTsiOwogIG1lbnVfeGVwZ1siY2xhc3MiXSAgICAgICAgID0gIm1lbnUtbm90QWN0aXZlIjsKCiAgdmFyIG1lbnVfYXV0b0JhY2t1cFBhdGggPSBuZXcgT2JqZWN0KCk7CiAgbWVudV9hdXRvQmFja3VwUGF0aFsiX2VsZW1lbnQiXSAgID0gIkxJIjsKICBtZW51X2F1dG9CYWNrdXBQYXRoWyJfbWVudVR5cGUiXSAgPSAic2luZ2xlSW5wdXQiOwogIG1lbnVfYXV0b0JhY2t1cFBhdGhbIl9jb25maWdLZXkiXSA9ICJiYWNrdXAucGF0aCI7CiAgbWVudV9hdXRvQmFja3VwUGF0aFsiX2xhYmVsIl0gICAgID0gIkxvY2F0aW9uIGZvciBhdXRvbWF0aWMgYmFja3VwcyI7CiAgbWVudV9hdXRvQmFja3VwUGF0aFsiX2hlYWRsaW5lIl0gID0gIkxvY2F0aW9uIGZvciBhdXRvbWF0aWMgYmFja3VwcyI7CiAgbWVudV9hdXRvQmFja3VwUGF0aFsiX3VzYWdlIl0gICAgID0gIkJlZm9yZSBhbnkgdXBkYXRlIG9mIHRoZSBwcm92aWRlciBkYXRhIGJ5IHRoZSBzY2hlZHVsZSwgeFRlVmUgY3JlYXRlcyBhIGJhY2t1cC4gVGhlIHBhdGggZm9yIHRoZSBhdXRvbWF0aWMgYmFja3VwcyBjYW4gYmUgY2hhbmdlZC4geFRlVmUgcmVxdWlyZXMgd3JpdGUgcGVybWlzc2lvbiBmb3IgdGhpcyBmb2xkZXIuIgogIG1lbnVfYXV0b0JhY2t1cFBhdGhbIm5hbWUiXSAgICAgICA9ICJiYWNrdXAucGF0aCI7CiAgbWVudV9hdXRvQmFja3VwUGF0aFsiaWQiXSAgICAgICAgID0gImJhY2t1cC5wYXRoIjsKICBtZW51X2F1dG9CYWNrdXBQYXRoWyJ2YWx1ZSJdICAgICAgPSBtZW51X2F1dG9CYWNrdXBQYXRoWyJuYW1lIl07CiAgbWVudV9hdXRvQmFja3VwUGF0aFsib25jbGljayJdICAgID0gImphdmFzY3JpcHQ6IHRvZ2dsZU1lbnUodGhpcyk7IjsKICBtZW51X2F1dG9CYWNrdXBQYXRoWyJjbGFzcyJdICAgICAgPSAibWVudS1ub3RBY3RpdmUiOwoKICB2YXIgbWVudV9hdXRvQmFja3VwS2VlcCA9IG5ldyBPYmplY3QoKTsKICBtZW51X2F1dG9CYWNrdXBLZWVwWyJfZWxlbWVudCJdICAgPSAiTEkiOwogIG1lbnVfYXV0b0JhY2t1cEtlZXBbIl9tZW51VHlwZSJdICA9ICJzZWxlY3QiOwogIG1lbnVfYXV0b0JhY2t1cEtlZXBbIl9jb25maWdLZXkiXSA9ICJiYWNrdXAua2VlcCI7CiAgbWVudV9hdXRvQmFja3VwS2VlcFsiX3RleHQiXSAgICAgID0gIktlZXAiOwogIG1lbnVfYXV0b0JhY2t1cEtlZXBbIl9sYWJlbCJdICAgICA9ICJOdW1iZXIgb2YgYmFja3VwcyB0byBrZWVwIjsKICBtZW51X2F1dG9CYWNrdXBLZWVwWyJfaGVhZGxpbmUiXSAgPSAiTnVtYmVyIG9mIGJhY2t1cHMgdG8ga2VlcCI7CiAgbWVudV9hdXRvQmFja3VwS2VlcFsiX3VzYWdlIl0gICAgID0gIiIKICBtZW51X2F1dG9CYWNrdXBLZWVwWyJuYW1lIl0gICAgICAgPSAiYmFja3VwLmtlZXAiOwogIG1lbnVfYXV0b0JhY2t1cEtlZXBbImlkIl0gICAgICAgICA9ICJiYWNrdXAua2VlcCI7CiAgbWVudV9hdXRvQmFja3VwS2VlcFsidmFsdWUiXSAgICAgID0gbWVudV9hdXRvQmFja3VwS2VlcFsibmFtZSJdOwogIG1lbnVfYXV0b0JhY2t1cEtlZXBbIm9uY2xpY2siXSAgICA9ICJqYXZhc2NyaXB0OiB0b2dnbGVNZW51KHRoaXMpOyI7CiAgbWVudV9hdXRvQmFja3VwS2VlcFsiY2xhc3MiXSAgICAgID0gIm1lbnUtbm90QWN0aXZlIjsKCiAgdmFyIG9wdGlvblZhbHVlcyA9IG5ldyBBcnJheSg1LCAxMCwgMjAsIDMwLCA0MCwgNTApOwogIG1lbnVfYXV0b0JhY2t1cEtlZXBbIl9vcHRpb25WYWx1ZXMiXSA9IG9wdGlvblZhbHVlczsKCgogIHZhciBtZW51X2J1ZmZlciA9IG5ldyBPYmplY3QoKTsKICBtZW51X2J1ZmZlclsiX2VsZW1lbnQiXSA9ICJMSSI7CiAgbWVudV9idWZmZXJbIl9tZW51VHlwZSJdICAgICA9ICJjaGVja2JveCI7CiAgbWVudV9idWZmZXJbIl9jb25maWdLZXkiXSAgICA9ICJidWZmZXIiOwogIG1lbnVfYnVmZmVyWyJfbGFiZWwiXSAgICAgICAgPSAiU3RyZWFtIGJ1ZmZlcmluZyBbRXhwZXJpbWVudGFsXSI7CiAgbWVudV9idWZmZXJbIl9oZWFkbGluZSJdICAgICA9ICJTdHJlYW0gYnVmZmVyaW5nIFtFeHBlcmltZW50YWxdIjsKICBtZW51X2J1ZmZlclsiX3VzYWdlIl0gICAgICAgID0gIldpdGggYWN0aXZhdGVkIGJ1ZmZlciwgc3RyZWFtcyBjYW4gYmUgcGxheWVkIGFuZCByZWNvcmRlZCBtb3JlIGZsdWVudGx5Ljxicj5UaGUgc3RyZWFtIGlzIHBhc3NlZCBmcm9tIHhUZVZlIHRvIFBsZXggLyBFbWJ5IgogIG1lbnVfYnVmZmVyWyJuYW1lIl0gICAgICAgICAgPSAiYnVmZmVyIjsKICBtZW51X2J1ZmZlclsiaWQiXSAgICAgICAgICAgID0gImJ1ZmZlciI7CiAgbWVudV9idWZmZXJbInZhbHVlIl0gICAgICAgICA9IG1lbnVfYnVmZmVyWyJuYW1lIl07CiAgbWVudV9idWZmZXJbIm9uY2xpY2siXSAgICAgICA9ICJqYXZhc2NyaXB0OiB0b2dnbGVNZW51KHRoaXMpOyI7CiAgbWVudV9idWZmZXJbImNsYXNzIl0gICAgICAgICA9ICJtZW51LW5vdEFjdGl2ZSI7CgogIHZhciBtZW51X2FwaSA9IG5ldyBPYmplY3QoKTsKICBtZW51X2FwaVsiX2VsZW1lbnQiXSA9ICJMSSI7CiAgbWVudV9hcGlbIl9tZW51VHlwZSJdICAgICA9ICJjaGVja2JveCI7CiAgbWVudV9hcGlbIl9jb25maWdLZXkiXSAgICA9ICJhcGkiOwogIG1lbnVfYXBpWyJfbGFiZWwiXSAgICAgICAgPSAiQVBJIGludGVyZmFjZSI7CiAgbWVudV9hcGlbIl9oZWFkbGluZSJdICAgICA9ICJBUEkgaW50ZXJmYWNlIjsKICBtZW51X2FwaVsiX3VzYWdlIl0gICAgICAgID0gJ1ZpYSBBUEkgaW50ZXJmYWNlIGl0IGlzIHBvc3NpYmxlIHRvIHNlbmQgY29tbWFuZHMgdG8geFRlVmUuIEFQSSBkb2N1bWVudGF0aW9uIGlzIGF2YWlsYWJsZSA8YSBocmVmPSJodHRwczovL3h0ZXZlLmRlP3Njcm9sbD1hcGkiPmhlcmU8L2E+ICcKICAvL21lbnVfYXBpWyJfdXNhZ2UiXSAgICAgICAgPSAnVmlhIEFQSSBpbnRlcmZhY2UgaXQgaXMgcG9zc2libGUgdG8gc2VuZCBjb21tYW5kcyB0byB4VGVWZS4gQVBJIGRvY3VtZW50YXRpb24gaXMgYXZhaWxhYmxlIDxhIGhyZWY9Imh0dHA6Ly9sb2NhbGhvc3Q6MTMxMz9zY3JvbGw9YXBpIj5oZXJlPC9hPiAnCiAgbWVudV9hcGlbIm5hbWUiXSAgICAgICAgICA9ICJhcGkiOwogIG1lbnVfYXBpWyJpZCJdICAgICAgICAgICAgPSAiYXBpIjsKICBtZW51X2FwaVsidmFsdWUiXSAgICAgICAgID0gbWVudV9hcGlbIm5hbWUiXTsKICBtZW51X2FwaVsib25jbGljayJdICAgICAgID0gImphdmFzY3JpcHQ6IHRvZ2dsZU1lbnUodGhpcyk7IjsKICBtZW51X2FwaVsiY2xhc3MiXSAgICAgICAgID0gIm1lbnUtbm90QWN0aXZlIjsKCiAgdmFyIG1lbnVfYXV0aGVudGljYXRpb25XZWIgPSBuZXcgT2JqZWN0KCk7CiAgbWVudV9hdXRoZW50aWNhdGlvbldlYlsiX2VsZW1lbnQiXSA9ICJMSSI7CiAgbWVudV9hdXRoZW50aWNhdGlvbldlYlsiX21lbnVUeXBlIl0gICAgID0gImNoZWNrYm94IjsKICBtZW51X2F1dGhlbnRpY2F0aW9uV2ViWyJfY29uZmlnS2V5Il0gICAgPSAiYXV0aGVudGljYXRpb24ud2ViIjsKICBtZW51X2F1dGhlbnRpY2F0aW9uV2ViWyJfbGFiZWwiXSAgICAgICAgPSAiVXNlciBhdXRoZW50aWNhdGlvbiI7CiAgbWVudV9hdXRoZW50aWNhdGlvbldlYlsiX2hlYWRsaW5lIl0gICAgID0gIlVzZXIgYXV0aGVudGljYXRpb24iOwogIG1lbnVfYXV0aGVudGljYXRpb25XZWJbIl91c2FnZSJdICAgICAgICA9ICJBY2Nlc3MgdG8geFRlVmUgcmVxdWlyZXMgYXV0aGVudGljYXRpb24uIgogIG1lbnVfYXV0aGVudGljYXRpb25XZWJbIm5hbWUiXSAgICAgICAgICA9ICJhdXRoZW50aWNhdGlvbi53ZWIiOwogIG1lbnVfYXV0aGVudGljYXRpb25XZWJbImlkIl0gICAgICAgICAgICA9ICJhdXRoZW50aWNhdGlvbi53ZWIiOwogIG1lbnVfYXV0aGVudGljYXRpb25XZWJbInZhbHVlIl0gICAgICAgICA9IG1lbnVfYXV0aGVudGljYXRpb25XZWJbIm5hbWUiXTsKICBtZW51X2F1dGhlbnRpY2F0aW9uV2ViWyJvbmNsaWNrIl0gICAgICAgPSAiamF2YXNjcmlwdDogdG9nZ2xlTWVudSh0aGlzKTsiOwogIG1lbnVfYXV0aGVudGljYXRpb25XZWJbImNsYXNzIl0gICAgICAgICA9ICJtZW51LW5vdEFjdGl2ZSI7CiAgCiAgdmFyIG1lbnVfYXV0aGVudGljYXRpb25QbXMgPSBuZXcgT2JqZWN0KCk7CiAgbWVudV9hdXRoZW50aWNhdGlvblBtc1siX2VsZW1lbnQiXSA9ICJMSSI7CiAgbWVudV9hdXRoZW50aWNhdGlvblBtc1siX21lbnVUeXBlIl0gICAgID0gImNoZWNrYm94IjsKICBtZW51X2F1dGhlbnRpY2F0aW9uUG1zWyJfY29uZmlnS2V5Il0gICAgPSAiYXV0aGVudGljYXRpb24ucG1zIjsKICBtZW51X2F1dGhlbnRpY2F0aW9uUG1zWyJfbGFiZWwiXSAgICAgICAgPSAiUGxleCBhdXRoZW50aWNhdGlvbi4iOwogIG1lbnVfYXV0aGVudGljYXRpb25QbXNbIl9oZWFkbGluZSJdICAgICA9ICJQbGV4IGF1dGhlbnRpY2F0aW9uLiI7CiAgbWVudV9hdXRoZW50aWNhdGlvblBtc1siX3VzYWdlIl0gICAgICAgID0gIlBsZXggcmVxdWVzdHMgYXJlIG9ubHkgcG9zc2libGUgd2l0aCBhdXRoZW50aWNhdGlvbi48YnI+V2FybmluZyEhISBBZnRlciBhY3RpdmF0aW5nIHRoaXMgZnVuY3Rpb24geFRlVmUgbXVzdCBiZSBkZWxldGUgaW4gdGhlIFBNUyBEVlIgc2V0dGluZ3MgYW5kIHNldCB1cCBhZ2Fpbi4iCiAgbWVudV9hdXRoZW50aWNhdGlvblBtc1sibmFtZSJdICAgICAgICAgID0gImF1dGhlbnRpY2F0aW9uLnBtcyI7CiAgbWVudV9hdXRoZW50aWNhdGlvblBtc1siaWQiXSAgICAgICAgICAgID0gImF1dGhlbnRpY2F0aW9uLnBtcyI7CiAgbWVudV9hdXRoZW50aWNhdGlvblBtc1sidmFsdWUiXSAgICAgICAgID0gbWVudV9hdXRoZW50aWNhdGlvblBtc1sibmFtZSJdOwogIG1lbnVfYXV0aGVudGljYXRpb25QbXNbIm9uY2xpY2siXSAgICAgICA9ICJqYXZhc2NyaXB0OiB0b2dnbGVNZW51KHRoaXMpOyI7CiAgbWVudV9hdXRoZW50aWNhdGlvblBtc1siY2xhc3MiXSAgICAgICAgID0gIm1lbnUtbm90QWN0aXZlIjsKICAKICB2YXIgbWVudV9hdXRoZW50aWNhdGlvbk0zdSA9IG5ldyBPYmplY3QoKTsKICBtZW51X2F1dGhlbnRpY2F0aW9uTTN1WyJfZWxlbWVudCJdID0gIkxJIjsKICBtZW51X2F1dGhlbnRpY2F0aW9uTTN1WyJfbWVudVR5cGUiXSAgICAgPSAiY2hlY2tib3giOwogIG1lbnVfYXV0aGVudGljYXRpb25NM3VbIl9jb25maWdLZXkiXSAgICA9ICJhdXRoZW50aWNhdGlvbi5tM3UiOwogIG1lbnVfYXV0aGVudGljYXRpb25NM3VbIl9sYWJlbCJdICAgICAgICA9ICJNM1UgYXV0aGVudGljYXRpb24uIjsKICBtZW51X2F1dGhlbnRpY2F0aW9uTTN1WyJfaGVhZGxpbmUiXSAgICAgPSAiTTNVIGF1dGhlbnRpY2F0aW9uLiI7CiAgbWVudV9hdXRoZW50aWNhdGlvbk0zdVsiX3VzYWdlIl0gICAgICAgID0gIkRvd25sb2FkaW5nIHRoZSBNM1UgZmlsZSB2aWEgYW4gSFRUUCByZXF1ZXN0IGlzIG9ubHkgcG9zc2libGUgd2l0aCBhdXRoZW50aWNhdGlvbi4iCiAgbWVudV9hdXRoZW50aWNhdGlvbk0zdVsibmFtZSJdICAgICAgICAgID0gImF1dGhlbnRpY2F0aW9uLm0zdSI7CiAgbWVudV9hdXRoZW50aWNhdGlvbk0zdVsiaWQiXSAgICAgICAgICAgID0gImF1dGhlbnRpY2F0aW9uLm0zdSI7CiAgbWVudV9hdXRoZW50aWNhdGlvbk0zdVsidmFsdWUiXSAgICAgICAgID0gbWVudV9hdXRoZW50aWNhdGlvbk0zdVsibmFtZSJdOwogIG1lbnVfYXV0aGVudGljYXRpb25NM3VbIm9uY2xpY2siXSAgICAgICA9ICJqYXZhc2NyaXB0OiB0b2dnbGVNZW51KHRoaXMpOyI7CiAgbWVudV9hdXRoZW50aWNhdGlvbk0zdVsiY2xhc3MiXSAgICAgICAgID0gIm1lbnUtbm90QWN0aXZlIjsKICAKCiAgdmFyIG1lbnVfYXV0aGVudGljYXRpb25YbWwgPSBuZXcgT2JqZWN0KCk7CiAgbWVudV9hdXRoZW50aWNhdGlvblhtbFsiX2VsZW1lbnQiXSA9ICJMSSI7CiAgbWVudV9hdXRoZW50aWNhdGlvblhtbFsiX21lbnVUeXBlIl0gICAgID0gImNoZWNrYm94IjsKICBtZW51X2F1dGhlbnRpY2F0aW9uWG1sWyJfY29uZmlnS2V5Il0gICAgPSAiYXV0aGVudGljYXRpb24ueG1sIjsKICBtZW51X2F1dGhlbnRpY2F0aW9uWG1sWyJfbGFiZWwiXSAgICAgICAgPSAiWEVQRyBhdXRoZW50aWNhdGlvbiI7CiAgbWVudV9hdXRoZW50aWNhdGlvblhtbFsiX2hlYWRsaW5lIl0gICAgID0gIlhFUEcgYXV0aGVudGljYXRpb24iOwogIG1lbnVfYXV0aGVudGljYXRpb25YbWxbIl91c2FnZSJdICAgICAgICA9ICJEb3dubG9hZGluZyB0aGUgWEVQRyAoWE1MVFYpIGZpbGUgdmlhIGFuIEhUVFAgcmVxdWVzdCBpcyBvbmx5IHBvc3NpYmxlIHdpdGggYXV0aGVudGljYXRpb24uIgogIG1lbnVfYXV0aGVudGljYXRpb25YbWxbIm5hbWUiXSAgICAgICAgICA9ICJhdXRoZW50aWNhdGlvbi54bWwiOwogIG1lbnVfYXV0aGVudGljYXRpb25YbWxbImlkIl0gICAgICAgICAgICA9ICJhdXRoZW50aWNhdGlvbi54bWwiOwogIG1lbnVfYXV0aGVudGljYXRpb25YbWxbInZhbHVlIl0gICAgICAgICA9IG1lbnVfYXV0aGVudGljYXRpb25YbWxbIm5hbWUiXTsKICBtZW51X2F1dGhlbnRpY2F0aW9uWG1sWyJvbmNsaWNrIl0gICAgICAgPSAiamF2YXNjcmlwdDogdG9nZ2xlTWVudSh0aGlzKTsiOwogIG1lbnVfYXV0aGVudGljYXRpb25YbWxbImNsYXNzIl0gICAgICAgICA9ICJtZW51LW5vdEFjdGl2ZSI7CgogIHZhciBtZW51X2F1dGhlbnRpY2F0aW9uQXBpID0gbmV3IE9iamVjdCgpOwogIG1lbnVfYXV0aGVudGljYXRpb25BcGlbIl9lbGVtZW50Il0gPSAiTEkiOwogIG1lbnVfYXV0aGVudGljYXRpb25BcGlbIl9tZW51VHlwZSJdICAgICA9ICJjaGVja2JveCI7CiAgbWVudV9hdXRoZW50aWNhdGlvbkFwaVsiX2NvbmZpZ0tleSJdICAgID0gImF1dGhlbnRpY2F0aW9uLmFwaSI7CiAgbWVudV9hdXRoZW50aWNhdGlvbkFwaVsiX2xhYmVsIl0gICAgICAgID0gIkFQSSBhdXRoZW50aWNhdGlvbiI7CiAgbWVudV9hdXRoZW50aWNhdGlvbkFwaVsiX2hlYWRsaW5lIl0gICAgID0gIkFQSSBhdXRoZW50aWNhdGlvbiI7CiAgbWVudV9hdXRoZW50aWNhdGlvbkFwaVsiX3VzYWdlIl0gICAgICAgID0gIkFjY2VzcyB0byB0aGUgQVBJIGludGVyZmFjZSBpcyBvbmx5IHBvc3NpYmxlIHdpdGggYXV0aGVudGljYXRpb24uIgogIG1lbnVfYXV0aGVudGljYXRpb25BcGlbIm5hbWUiXSAgICAgICAgICA9ICJhdXRoZW50aWNhdGlvbi5hcGkiOwogIG1lbnVfYXV0aGVudGljYXRpb25BcGlbImlkIl0gICAgICAgICAgICA9ICJhdXRoZW50aWNhdGlvbi5hcGkiOwogIG1lbnVfYXV0aGVudGljYXRpb25BcGlbInZhbHVlIl0gICAgICAgICA9IG1lbnVfYXV0aGVudGljYXRpb25BcGlbIm5hbWUiXTsKICBtZW51X2F1dGhlbnRpY2F0aW9uQXBpWyJvbmNsaWNrIl0gICAgICAgPSAiamF2YXNjcmlwdDogdG9nZ2xlTWVudSh0aGlzKTsiOwogIG1lbnVfYXV0aGVudGljYXRpb25BcGlbImNsYXNzIl0gICAgICAgICA9ICJtZW51LW5vdEFjdGl2ZSI7CiAgCiAgCiAgLy8gTWFpbiBtZW51CiAgbWVudVsxMF0gPSBtZW51X20zdTsKCiAgc3dpdGNoKGNvbmZpZ1siZXBnU291cmNlIl0pIHsKICAgIGNhc2UgIlBNUyI6CiAgICAgIG1lbnVbMjBdID0gbWVudV9pZDsKICAgICAgYnJlYWs7CiAgICAKICAgIGNhc2UgIlhNTFRWIjoKICAgICAgbWVudVs0MF0gPSBtZW51X3htbHR2OwogICAgICBicmVhazsKCiAgICBjYXNlICJYRVBHIjoKICAgICAgbWVudVs0MF0gPSBtZW51X3htbHR2OwogICAgICBtZW51WzUwXSA9IG1lbnVfbWFwcGluZzsKICAgICAgYnJlYWs7CiAgfQogIAogIG1lbnVbMzBdID0gbWVudV9maWx0ZXI7CiAgCiAgaWYgKGNvbmZpZ1siYXV0aGVudGljYXRpb24ud2ViIl0gPT0gdHJ1ZSkgewogICAgbWVudVs2MF0gPSBtZW51X3VzZXJzOwogIH0KCiAgbWVudVs3MF0gPSBtZW51X3NldHRpbmdzOwogIG1lbnVbODBdID0gbWVudV9sb2c7CiAgaWYgKGNvbmZpZ1siYXV0aGVudGljYXRpb24ud2ViIl0gPT0gdHJ1ZSkgewogICAgbWVudVsxMDBdID0gbWVudV9sb2dvdXQ7CiAgfSAKICAKCiAgLy8gU3ViLU1lbnUKCiAgc3ViTWVudVs3MDFdID0gbWVudV9zY2hlZHVsZTsKICBzdWJNZW51WzcwMl0gPSBtZW51X2ZpbGVzVXBkYXRlOwogIHN1Yk1lbnVbNzAzXSA9IG1lbnVfdHVuZXI7CiAgc3ViTWVudVs3MDRdID0gbWVudV9lcGc7CiAgc3ViTWVudVs3MDVdID0gbWVudV94ZXBnOwogIHN1Yk1lbnVbNzA2XSA9IG1lbnVfYXV0b0JhY2t1cFBhdGg7CiAgc3ViTWVudVs3MDddID0gbWVudV9hdXRvQmFja3VwS2VlcDsKICBzdWJNZW51WzcwOF0gPSBtZW51X2J1ZmZlcjsKICAKICBzdWJNZW51WzcxMF0gPSBtZW51X2F1dGhlbnRpY2F0aW9uV2ViOwogIAogIGlmIChjb25maWdbImF1dGhlbnRpY2F0aW9uLndlYiJdID09IHRydWUpIHsKICAgIHN1Yk1lbnVbNzExXSA9IG1lbnVfYXV0aGVudGljYXRpb25QbXM7CiAgICBzdWJNZW51WzcxMl0gPSBtZW51X2F1dGhlbnRpY2F0aW9uTTN1OwogICAgc3ViTWVudVs3MTNdID0gbWVudV9hdXRoZW50aWNhdGlvblhtbDsKICAgIHN1Yk1lbnVbNzE0XSA9IG1lbnVfYXV0aGVudGljYXRpb25BcGk7CiAgfQoKICBzdWJNZW51Wzc5OV0gPSBtZW51X2FwaTsKCiAgCgogIHJldHVybgp9CgpmdW5jdGlvbiBjcmVhdGVNZW51KCkgewoKICBzaG93RWxlbWVudCgicG9wdXAiLCBmYWxzZSk7CgogIC8vY29uc29sZS5sb2coY29uZmlnKTsKICBzZXRNZW51SXRlbSgpOwogIHZhciBtZW51SXRlbXMgPSBnZXRPYmpLZXlzKG1lbnUpCiAgdmFyIG5hdiA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJOQVYiKVswXTsKICBuYXYuaW5uZXJIVE1MID0gIiI7CiAgdmFyIG5ld0l0ZW0gPSBuZXcgT2JqZWN0KCk7CgogIGZvciAodmFyIGkgPSAwOyBpIDwgbWVudUl0ZW1zLmxlbmd0aDsgaSsrKSB7CgogICAgCiAgICB2YXIgbmV3SXRlbSA9IG1lbnVbbWVudUl0ZW1zW2ldXTsKICAgIG5ld0l0ZW1bImlkIl0gPSBtZW51SXRlbXNbaV07CgogICAgCiAgICBzd2l0Y2gobmV3SXRlbS5oYXNPd25Qcm9wZXJ0eSgiX2ljb24iKSkgewogICAgICBjYXNlIHRydWU6IAogICAgICAgIHZhciBpdGVtVGV4dCA9IG5ld0l0ZW1bIl90ZXh0Il07CiAgICAgICAgZGVsZXRlIG5ld0l0ZW1bIl90ZXh0Il0KICAgICAgICBuYXYuYXBwZW5kQ2hpbGQoY3JlYXRlRWxlbWVudChuZXdJdGVtKSk7CiAgICAgICAgbmV3SXRlbVsiX3RleHQiXSA9IGl0ZW1UZXh0OwogICAgICAgIHZhciBuZXdJY29uID0gbmV3IE9iamVjdCgpOwogICAgICAgIG5ld0ljb25bIl9lbGVtZW50Il0gPSAiSU1HIjsKICAgICAgICBuZXdJY29uWyJzcmMiXSA9IG5ld0l0ZW1bIl9pY29uIl07CgogICAgICAgIHZhciBjdXJyZW50RWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKG1lbnVJdGVtc1tpXSk7CiAgICAgICAgY3VycmVudEVsZW1lbnQuYXBwZW5kQ2hpbGQoY3JlYXRlRWxlbWVudChuZXdJY29uKSk7CgoKICAgICAgICB2YXIgdGV4dCA9IG5ldyBPYmplY3QoKTsKICAgICAgICB0ZXh0WyJfZWxlbWVudCJdID0gIlAiCiAgICAgICAgdGV4dFsiX3RleHQiXSA9IGl0ZW1UZXh0OwogICAgICAgIHRleHRbImNsYXNzIl0gPSAibmF2LXRleHQiCiAgICAgICAgY3VycmVudEVsZW1lbnQuYXBwZW5kQ2hpbGQoY3JlYXRlRWxlbWVudCh0ZXh0KSk7CiAgICAgICAgYnJlYWs7CgogICAgICBkZWZhdWx0OgogICAgICAgIG5hdi5hcHBlbmRDaGlsZChjcmVhdGVFbGVtZW50KG5ld0ljb24pKTsKICAgICAgICBicmVhazsKICAgIH0KCiAgfQogIGlmIChhY3RpdmVNZW51ICE9IHVuZGVmaW5lZCkgewogICAgLy9jb25zb2xlLmxvZyhhY3RpdmVNZW51KTsKICAgIHRvZ2dsZU1lbnUoYWN0aXZlTWVudSk7CiAgfQoKICByZXR1cm4KfQoKZnVuY3Rpb24gdG9nZ2xlTWVudShlbG0pIHsKICAvL3Nob3dTdHJlYW1zKGZhbHNlKTsKICBjbGVhckludGVydmFsKGxvZ0ludGVydmFsKQogIGFjdGl2ZU1lbnUgPSBlbG07CiAgdmFyIGl0ZW0gPSBtZW51W2VsbS5pZF0KICB2YXIgZGl2ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNldHRpbmdzIik7CiAgZGl2LmlubmVySFRNTCA9ICIiOwogIAogIC8vIFNldCBIZWFkbGluZQogIHZhciBoZWFkbGluZSA9IG5ldyBPYmplY3QoKTsKICBoZWFkbGluZVsiX2VsZW1lbnQiXSA9ICJINCI7CiAgaGVhZGxpbmVbIl90ZXh0Il0gPSBpdGVtWyJfaGVhZGxpbmUiXTsKICBkaXYuYXBwZW5kQ2hpbGQoY3JlYXRlRWxlbWVudChoZWFkbGluZSkpOwoKICAvLyBTdWItTWVudQogIGlmIChpdGVtLmhhc093blByb3BlcnR5KCJfc3ViTWVudSIpID09IHRydWUpIHsKICAgIG9wZW5TdWJNZW51KGl0ZW0pOwogICAgcmV0dXJuCiAgfQoKICAvLyBNYXBwaW5nLCBVc2VycywgTG9nLCBGaWxlcwogIHN3aXRjaChpdGVtWyJfY29uZmlnS2V5Il0pIHsKICAgIGNhc2UgIm1hcHBpbmciOiAgICAgb3Blbk1hcHBpbmdFZGl0b3IoaXRlbSk7IHJldHVybjsgYnJlYWs7CiAgICBjYXNlICJ1c2VycyI6ICAgICAgIG9wZW5Vc2VycyhpdGVtKTsgcmV0dXJuOyBicmVhazsKICAgIGNhc2UgImxvZyI6ICAgICAgICAgc2hvd0xvZyhpdGVtKTsgcmV0dXJuOyBicmVhazsKICAgIGNhc2UgImZpbGVzLm0zdSI6ICAgb3BlbkZpbGVzKGl0ZW0sICJtM3UiKTsgcmV0dXJuOyBicmVhazsKICAgIGNhc2UgImZpbGVzLnhtbHR2Ijogb3BlbkZpbGVzKGl0ZW0sICJ4bWx0diIpOyByZXR1cm47IGJyZWFrOwoKICAgIGNhc2UgImZpbHRlciI6ICAgICAgc2hvd1N0cmVhbXModHJ1ZSk7IGJyZWFrOwogIH0KCiAKCiAgdmFyIG5ld0hSID0gbmV3IE9iamVjdCgpOwogIG5ld0hSWyJfZWxlbWVudCJdID0gIkhSIgogIGRpdi5hcHBlbmRDaGlsZChjcmVhdGVFbGVtZW50KG5ld0hSKSk7CiAgCiAgdmFyIG5ld0VudHJ5ID0gbmV3IE9iamVjdCgpOwogIG5ld0VudHJ5WyJfZWxlbWVudCJdICA9ICJJTlBVVCI7CiAgbmV3RW50cnlbInR5cGUiXSA9ICJidXR0b24iOwogIC8vbmV3RW50cnlbImNsYXNzIl0gPSAic2F2ZSI7CiAgbmV3RW50cnlbInZhbHVlIl0gPSAiU2F2ZSI7CiAgbmV3RW50cnlbIm9uY2xpY2siXSA9ICJzYXZlRGF0YTIoJ3NldHRpbmdzJykiCiAgZGl2LmFwcGVuZENoaWxkKGNyZWF0ZUVsZW1lbnQobmV3RW50cnkpKTsKCgogIHZhciBuZXdXcmFwcGVyID0gbmV3IE9iamVjdCgpOwogIG5ld1dyYXBwZXJbIl9lbGVtZW50Il0gID0gIkRJViI7CiAgbmV3V3JhcHBlclsiaWQiXSAgICAgICAgPSAiYm94LXdyYXBwZXIiOwogIGRpdi5hcHBlbmRDaGlsZChjcmVhdGVFbGVtZW50KG5ld1dyYXBwZXIpKTsKCiAgZGl2ID0gZGl2Lmxhc3RDaGlsZDsKICAKICBkaXYuYXBwZW5kQ2hpbGQoY3JlYXRlTWVudUl0ZW0oaXRlbSkpCgogIC8vIHVzYWdlIEluZm8gIAogIHN3aXRjaChtZW51W2FjdGl2ZU1lbnUuaWRdLmhhc093blByb3BlcnR5KCJfdXNhZ2UiKSkgewogICAgY2FzZSB0cnVlOiAKICAgICAgdmFyIHVzYWdlSXRlbSA9IG5ldyBPYmplY3QoKTsKICAgICAgdXNhZ2VJdGVtWyJfZWxlbWVudCJdID0gIlBSRSIKICAgICAgdXNhZ2VJdGVtWyJfdGV4dCJdICAgID0gbWVudVthY3RpdmVNZW51LmlkXVsiX3VzYWdlIl07CiAgICAgIGRpdi5hcHBlbmRDaGlsZChjcmVhdGVFbGVtZW50KHVzYWdlSXRlbSkpOwogIH0KICAKICBjYWxjdWxhdGVXcmFwcGVySGVpZ2h0KCk7Cgp9CgpmdW5jdGlvbiBjcmVhdGVNZW51SXRlbShpdGVtKSB7CiAgdmFyIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJESVYiKTsKICBzd2l0Y2goaXRlbVsiX21lbnVUeXBlIl0pIHsKICAgIGNhc2UgImlucHV0QXJyYXkiOgogICAgICBpZiAoY29uZmlnLmhhc093blByb3BlcnR5KGl0ZW1bIl9jb25maWdLZXkiXSkgPT0gdHJ1ZSkgewogICAgICAgIHZhciB2YWx1ZSA9IGNvbmZpZ1tpdGVtWyJfY29uZmlnS2V5Il1dOwogICAgICB9IGVsc2UgewogICAgICAgIHZhciB2YWx1ZSA9IG5ldyBBcnJheSgpOwogICAgICB9CiAgICAgIAogICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHZhbHVlLmxlbmd0aDsgaSsrKSB7CiAgICAgICAgdmFyIG5ld0VudHJ5ID0gbmV3IE9iamVjdCgpOwogICAgICAgIG5ld0VudHJ5ID0gaXRlbQogICAgICAgIGRlbGV0ZSBuZXdFbnRyeVsib25jbGljayJdOwogICAgICAgIG5ld0VudHJ5WyJfZWxlbWVudCJdICA9ICJJTlBVVCI7CiAgICAgICAgbmV3RW50cnlbInZhbHVlIl0gICAgID0gdmFsdWVbaV07CiAgICAgICAgbmV3RW50cnlbInR5cGUiXSAgICAgID0gInNlYXJjaCI7CiAgICAgICAgbmV3RW50cnlbImRhdGEtbWVudXR5cGUiXSA9IGl0ZW1bIl9tZW51VHlwZSJdOwogICAgICAgIG5ld0VudHJ5WyJkYXRhLW1lbnVrZXkiXSA9IGl0ZW1bIl9jb25maWdLZXkiXTsKICAgICAgICBlbGVtZW50LmFwcGVuZENoaWxkKGNyZWF0ZUVsZW1lbnQobmV3RW50cnkpKTsKCiAgICAgIH0KICAgICAgLy8gTmV3IGVudHJ5IGZvciBhcnJheQogICAgICB2YXIgbmV3RW50cnkgPSBuZXcgT2JqZWN0KCk7CiAgICAgIG5ld0VudHJ5WyJfZWxlbWVudCJdICAgICAgPSAiSU5QVVQiOwogICAgICBuZXdFbnRyeVsidHlwZSJdICAgICAgICAgID0gInNlYXJjaCI7CiAgICAgIG5ld0VudHJ5WyJuYW1lIl0gICAgICAgICAgPSBpdGVtWyJuYW1lIl07CiAgICAgIG5ld0VudHJ5WyJwbGFjZWhvbGRlciJdICAgPSBpdGVtWyJwbGFjZWhvbGRlciJdOwogICAgICBuZXdFbnRyeVsidmFsdWUiXSAgICAgICAgID0gIiI7CiAgICAgIG5ld0VudHJ5WyJkYXRhLW1lbnV0eXBlIl0gPSBpdGVtWyJfbWVudVR5cGUiXTsKICAgICAgbmV3RW50cnlbImRhdGEtbWVudWtleSJdICA9IGl0ZW1bIl9jb25maWdLZXkiXTsKICAgICAgZWxlbWVudC5hcHBlbmRDaGlsZChjcmVhdGVFbGVtZW50KG5ld0VudHJ5KSk7CiAgICAgIGJyZWFrOwogIAogICAgY2FzZSAic2luZ2xlSW5wdXQiOgogICAgICB2YXIgdmFsdWUgPSBjb25maWdbaXRlbVsiX2NvbmZpZ0tleSJdXTsKICAgICAgaWYgKHZhbHVlID09IHVuZGVmaW5lZCkgewogICAgICAgIHZhbHVlID0gIiI7CiAgICAgIH0KICAgICAgdmFyIG5ld0VudHJ5ID0gbmV3IE9iamVjdCgpOwogICAgICBuZXdFbnRyeSA9IGl0ZW07CiAgICAgIGRlbGV0ZSBuZXdFbnRyeVsib25jbGljayJdOwogICAgICBuZXdFbnRyeVsiX2VsZW1lbnQiXSAgPSAiSU5QVVQiOwogICAgICBuZXdFbnRyeVsidmFsdWUiXSAgICAgPSB2YWx1ZTsKICAgICAgbmV3RW50cnlbInR5cGUiXSAgICAgID0gInNlYXJjaCI7CiAgICAgIG5ld0VudHJ5WyJkYXRhLW1lbnV0eXBlIl0gPSBpdGVtWyJfbWVudVR5cGUiXTsKICAgICAgbmV3RW50cnlbImRhdGEtbWVudWtleSJdID0gaXRlbVsiX2NvbmZpZ0tleSJdOwogICAgICBlbGVtZW50LmFwcGVuZENoaWxkKGNyZWF0ZUVsZW1lbnQobmV3RW50cnkpKTsKICAgICAgYnJlYWs7CgogICAgY2FzZSAiY2hlY2tib3giOgogICAgICB2YXIgdmFsdWUgPSBjb25maWdbaXRlbVsiX2NvbmZpZ0tleSJdXTsKICAgICAgaWYgKHZhbHVlID09IHVuZGVmaW5lZCkgewogICAgICAgIHZhbHVlID0gZmFsc2U7CiAgICAgIH0KICAgICAgdmFyIG5ld0VudHJ5ID0gbmV3IE9iamVjdCgpOwogICAgICBuZXdFbnRyeSA9IGl0ZW07CiAgICAgIGRlbGV0ZSBuZXdFbnRyeVsib25jbGljayJdOwogICAgICBuZXdFbnRyeVsiX2VsZW1lbnQiXSAgPSAiSU5QVVQiOwogICAgICBuZXdFbnRyeVsidmFsdWUiXSAgICAgPSB2YWx1ZTsKICAgICAgbmV3RW50cnlbInR5cGUiXSAgICAgID0gImNoZWNrYm94IjsKICAgICAgbmV3RW50cnlbImRhdGEtbWVudXR5cGUiXSA9IGl0ZW1bIl9tZW51VHlwZSJdOwogICAgICBuZXdFbnRyeVsiZGF0YS1tZW51a2V5Il0gPSBpdGVtWyJfY29uZmlnS2V5Il07CiAgICAgIGVsZW1lbnQuYXBwZW5kQ2hpbGQoY3JlYXRlRWxlbWVudChuZXdFbnRyeSkpOwogICAgICBlbGVtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJJTlBVVCIpWzBdLmNoZWNrZWQgPSB2YWx1ZTsKICAgICAgYnJlYWs7CiAgICAKICAgIGNhc2UgInNlbGVjdCI6CiAgICAgIHZhciB2YWx1ZSA9IGNvbmZpZ1tpdGVtWyJfY29uZmlnS2V5Il1dOwogICAgICB2YXIgbmV3RW50cnkgPSBuZXcgT2JqZWN0KCk7CiAgICAgIG5ld0VudHJ5ID0gaXRlbTsKICAgICAgZGVsZXRlIG5ld0VudHJ5WyJvbmNsaWNrIl0KICAgICAgbmV3RW50cnlbIl9lbGVtZW50Il0gID0gIlNFTEVDVCI7CiAgICAgIGVsZW1lbnQuYXBwZW5kQ2hpbGQoY3JlYXRlRWxlbWVudChuZXdFbnRyeSkpOwogICAgICB2YXIgc2VsZWN0RWxlbWVudCA9IGVsZW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlNFTEVDVCIpWzBdOwogICAgICB2YXIgdmFsdWVzID0gaXRlbVsiX29wdGlvblZhbHVlcyJdOwogICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHZhbHVlcy5sZW5ndGg7IGkrKykgewogICAgICAgIHZhciBuZXdFbnRyeSA9IG5ldyBPYmplY3Q7CiAgICAgICAgbmV3RW50cnlbIl9lbGVtZW50Il0gID0gIk9QVElPTiI7CiAgICAgICAgbmV3RW50cnlbIl90ZXh0Il0gICAgID0gaXRlbVsiX3RleHQiXSArICI6ICIgKyB2YWx1ZXNbaV07CiAgICAgICAgbmV3RW50cnlbInZhbHVlIl0gICAgID0gdmFsdWVzW2ldOwogICAgICAgIHNlbGVjdEVsZW1lbnQuYXBwZW5kQ2hpbGQoY3JlYXRlRWxlbWVudChuZXdFbnRyeSkpOwogICAgICB9CiAgICAgIHNlbGVjdEVsZW1lbnQudmFsdWUgPSB2YWx1ZTsKICAgICAgYnJlYWs7CiAgICAKICB9CiAgcmV0dXJuIGVsZW1lbnQ7Cn0KCmZ1bmN0aW9uIG9wZW5TdWJNZW51KGl0ZW0pIHsKICB2YXIgZW50cnlzID0gaXRlbVsiX3N1Yk1lbnUiXS5zcGxpdCgiLCIpOwogIHZhciBkaXYgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic2V0dGluZ3MiKTsKCiAgdmFyIG5ld0hSID0gbmV3IE9iamVjdCgpOwogIG5ld0hSWyJfZWxlbWVudCJdID0gIkhSIgogIGRpdi5hcHBlbmRDaGlsZChjcmVhdGVFbGVtZW50KG5ld0hSKSk7CiAgCiAgdmFyIG5ld0VudHJ5ID0gbmV3IE9iamVjdCgpOwogIG5ld0VudHJ5WyJfZWxlbWVudCJdICA9ICJJTlBVVCI7CiAgbmV3RW50cnlbInR5cGUiXSA9ICJidXR0b24iOwogIC8vbmV3RW50cnlbImNsYXNzIl0gPSAic2F2ZSI7CiAgbmV3RW50cnlbInZhbHVlIl0gPSAiU2F2ZSI7CiAgbmV3RW50cnlbIm9uY2xpY2siXSA9ICJzYXZlRGF0YTIoJ3NldHRpbmdzJykiCiAgZGl2LmFwcGVuZENoaWxkKGNyZWF0ZUVsZW1lbnQobmV3RW50cnkpKTsKCiAgaWYgKGl0ZW1bIl9jb25maWdLZXkiXSA9PSAic2V0dGluZ3MiKSB7CiAgICB2YXIgbmV3RW50cnkgPSBuZXcgT2JqZWN0KCk7CiAgICBuZXdFbnRyeVsiX2VsZW1lbnQiXSAgPSAiSU5QVVQiOwogICAgbmV3RW50cnlbInR5cGUiXSA9ICJidXR0b24iOwogICAgLy9uZXdFbnRyeVsiY2xhc3MiXSA9ICJzYXZlIjsKICAgIG5ld0VudHJ5WyJ2YWx1ZSJdID0gIkJhY2t1cCI7CiAgICBuZXdFbnRyeVsib25jbGljayJdID0gInh0ZXZlQmFja3VwKCkiCiAgICBkaXYuYXBwZW5kQ2hpbGQoY3JlYXRlRWxlbWVudChuZXdFbnRyeSkpOwogIH0KCiAgaWYgKGl0ZW1bIl9jb25maWdLZXkiXSA9PSAic2V0dGluZ3MiKSB7CiAgICB2YXIgbmV3RW50cnkgPSBuZXcgT2JqZWN0KCk7CiAgICBuZXdFbnRyeVsiX2VsZW1lbnQiXSAgPSAiSU5QVVQiOwogICAgbmV3RW50cnlbInR5cGUiXSA9ICJidXR0b24iOwogICAgLy9uZXdFbnRyeVsiY2xhc3MiXSA9ICJzYXZlIjsKICAgIG5ld0VudHJ5WyJ2YWx1ZSJdID0gIlJlc3RvcmUiOwogICAgbmV3RW50cnlbIm9uY2xpY2siXSA9ICJ4dGV2ZVJlc3RvcmUodGhpcykiCiAgICBkaXYuYXBwZW5kQ2hpbGQoY3JlYXRlRWxlbWVudChuZXdFbnRyeSkpOwogIH0KCgogIHZhciBuZXdXcmFwcGVyID0gbmV3IE9iamVjdCgpOwogIG5ld1dyYXBwZXJbIl9lbGVtZW50Il0gID0gIkRJViI7CiAgbmV3V3JhcHBlclsiaWQiXSAgICAgICAgPSAiYm94LXdyYXBwZXIiOwogIGRpdi5hcHBlbmRDaGlsZChjcmVhdGVFbGVtZW50KG5ld1dyYXBwZXIpKTsKICAKICBkaXYgPSBkaXYubGFzdENoaWxkOwogIAoKICBmb3IgKHZhciBpID0gMDsgaSA8IGVudHJ5cy5sZW5ndGg7IGkrKykgewogICAgdmFyIGl0ZW0gPSBzdWJNZW51W2VudHJ5c1tpXV07CiAgICBpZiAoaXRlbSA9PSB1bmRlZmluZWQpIHsKICAgICAgYnJlYWs7CiAgICB9CiAgICAKICAgIHZhciBjb250YWluZXIgPSBuZXcgT2JqZWN0KCk7CiAgICBjb250YWluZXJbIl9lbGVtZW50Il0gPSAiRElWIjsKICAgIGRpdi5hcHBlbmRDaGlsZChjcmVhdGVFbGVtZW50KGNvbnRhaW5lcikpOwoKICAgIHZhciBkaXZDb250YWluZXIgPSBkaXYubGFzdENoaWxkOwogICAgCiAgICB2YXIgaGVhZGxpbmUgPSBuZXcgT2JqZWN0KCk7CiAgICBoZWFkbGluZVsiX2VsZW1lbnQiXSA9ICJINSI7CiAgICBoZWFkbGluZVsiX3RleHQiXSA9IGl0ZW1bIl9oZWFkbGluZSJdOwogICAgZGl2Q29udGFpbmVyLmFwcGVuZENoaWxkKGNyZWF0ZUVsZW1lbnQoaGVhZGxpbmUpKTsKCiAgICBkaXZDb250YWluZXIuYXBwZW5kQ2hpbGQoY3JlYXRlTWVudUl0ZW0oaXRlbSkpCgogICAgc3dpdGNoKGl0ZW0uaGFzT3duUHJvcGVydHkoIl91c2FnZSIpKSB7CiAgICAgIGNhc2UgdHJ1ZTogCiAgICAgICAgdmFyIHVzYWdlSXRlbSA9IG5ldyBPYmplY3QoKTsKICAgICAgICB1c2FnZUl0ZW1bIl9lbGVtZW50Il0gPSAiUFJFIgogICAgICAgIHVzYWdlSXRlbVsiX3RleHQiXSAgICA9IGl0ZW1bIl91c2FnZSJdOwogICAgICAgIGRpdkNvbnRhaW5lci5hcHBlbmRDaGlsZChjcmVhdGVFbGVtZW50KHVzYWdlSXRlbSkpOwogICAgfQoKICAgIHZhciBociA9IG5ldyBPYmplY3QoKTsKICAgIGhyWyJfZWxlbWVudCJdID0gIkhSIjsKICAgIGRpdkNvbnRhaW5lci5hcHBlbmRDaGlsZChjcmVhdGVFbGVtZW50KGhyKSk7CiAgCiAgfQoKICBjYWxjdWxhdGVXcmFwcGVySGVpZ2h0KCk7CiAgcmV0dXJuCn0KCmZ1bmN0aW9uIHNhdmVEYXRhMihlbG0pIHsKICB2YXIgZGl2ICAgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChlbG0pOwogIHZhciBpbnB1dHMgPSBkaXYuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIklOUFVUIik7CiAgdmFyIHNlbGVjdHMgPSBkaXYuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlNFTEVDVCIpOwogIHZhciB2YWx1ZSwgY29uZmlnS2V5OwogIHZhciBkYXRhID0gbmV3IE9iamVjdCgpOwogIHZhciB2YWx1ZUFyciA9IG5ldyBBcnJheSgpOwogIHZhciBuZXdEYXRhID0gZmFsc2U7CiAgCiAgZm9yICh2YXIgaSA9IDA7IGkgPCBpbnB1dHMubGVuZ3RoOyBpKyspIHsKICAgIGlmIChpbnB1dHNbaV0udHlwZSAhPSAiYnV0dG9uIikgewogICAgICB2YXIgbWVudVR5cGUgPSBpbnB1dHNbaV0uZ2V0QXR0cmlidXRlKCJkYXRhLW1lbnV0eXBlIik7CiAgICAgIAogICAgICAvL2NvbnNvbGUubG9nKG1lbnVUeXBlKTsKICAgICAgc3dpdGNoKG1lbnVUeXBlKSB7CiAgICAgICAgY2FzZSAic2luZ2xlSW5wdXQiOgogICAgICAgICAgdmFsdWUgPSBpbnB1dHNbaV0udmFsdWU7CiAgICAgICAgICBpZiAodmFsdWUgPT0gIiIgfHwgdmFsdWUgPT0gdW5kZWZpbmVkKSB7CiAgICAgICAgICAgIGRhdGEgPSBuZXcgT2JqZWN0KCk7CiAgICAgICAgICAgIGRhdGFbImRlbGV0ZSJdID0gaW5wdXRzW2ldLm5hbWUKICAgICAgICAgICAgbmV3RGF0YSA9IHRydWU7CiAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICBuZXdEYXRhID0gdHJ1ZTsKICAgICAgICAgICAgZGF0YVtpbnB1dHNbaV0ubmFtZV0gPSB2YWx1ZTsKICAgICAgICAgICAgY29uc29sZS5sb2coZGF0YSk7CiAgICAgICAgICB9CiAgICAgICAgICBicmVhazsKICAgICAgICBjYXNlICJpbnB1dEFycmF5IjogCiAgICAgICAgICB2YWx1ZSA9IGlucHV0c1tpXS52YWx1ZTsKICAgICAgICAgIGlmICh2YWx1ZSAhPSAiIiAmJiB2YWx1ZSAhPSB1bmRlZmluZWQpIHsKICAgICAgICAgICAgbmV3RGF0YSA9IHRydWU7CiAgICAgICAgICAgIHZhbHVlQXJyLnB1c2godmFsdWUpCiAgICAgICAgICAgIGRhdGFbaW5wdXRzW2ldLm5hbWVdID0gdmFsdWVBcnI7CiAgICAgICAgICAgIGNvbmZpZ0tleSA9IGlucHV0c1tpXS5uYW1lOwogICAgICAgICAgfSAKICAgICAgICAgIAogICAgICAgICAgYnJlYWs7CgogICAgICAgIGNhc2UgImNoZWNrYm94IjoKICAgICAgICAgIHZhbHVlID0gaW5wdXRzW2ldLmNoZWNrZWQKICAgICAgICAgIGRhdGFbaW5wdXRzW2ldLm5hbWVdID0gdmFsdWU7CiAgICAgIH0KICAgICAgCiAgICB9CiAgICAKICB9CgoKICAvLyBEZWxldGUgY29uZmlnIGtleQogIGlmICh2YWx1ZUFyci5sZW5ndGggPT0gMCAmJiBuZXdEYXRhID09IGZhbHNlKSB7CiAgICBuZXdEYXRhID0gdHJ1ZTsKICAgIGRhdGEgPSBuZXcgT2JqZWN0KCk7CiAgICBkYXRhWyJkZWxldGUiXSA9IGNvbmZpZ0tleTsKICB9IAoKCiAgZm9yICh2YXIgaSA9IDA7IGkgPCBzZWxlY3RzLmxlbmd0aDsgaSsrKSB7CiAgICB2YXIgdmFsdWUgPSBzZWxlY3RzW2ldLm9wdGlvbnNbc2VsZWN0c1tpXS5zZWxlY3RlZEluZGV4XS52YWx1ZTsKICAgIHN3aXRjaChpc05hTih2YWx1ZSkpIHsKICAgICAgY2FzZSBmYWxzZTogdmFsdWUgPSBwYXJzZUludCh2YWx1ZSk7IGJyZWFrOwogICAgfQoKICAgIGRhdGFbc2VsZWN0c1tpXS5uYW1lXSA9IHZhbHVlOwogICAgbmV3RGF0YSA9IHRydWU7CiAgfQoKICAvL2NvbnNvbGUubG9nKGRhdGEsIG5ld0RhdGEpOwoKICBpZiAobmV3RGF0YSA9PSB0cnVlKSB7CiAgICBkYXRhWyJjbWQiXSA9ICJzYXZlQ29uZmlnIjsKICAgIGlmICghZGF0YS5oYXNPd25Qcm9wZXJ0eSgnZmlsdGVyJykpIHsKICAgICAgZGF0YVsiZmlsdGVyIl0gPSBjb25maWdbImZpbHRlciJdCiAgICB9CiAgICB2YXIgc2V0dGluZ3MgPSBuZXcgT2JqZWN0KCk7CiAgICBzZXR0aW5nc1siY21kIl0gPSBkYXRhWyJjbWQiXTsKICAgIHNldHRpbmdzWyJzZXR0aW5ncyJdID0gZGF0YTsKICAgIGNvbnNvbGUubG9nKHNldHRpbmdzKTsKICAgIHhUZVZlKHNldHRpbmdzKTsKICB9Cn0K" - webUI["html/img/BC-QR.jpg"] = "/9j/4AAQSkZJRgABAQAASABIAAD/4QBYRXhpZgAATU0AKgAAAAgAAgESAAMAAAABAAEAAIdpAAQAAAABAAAAJgAAAAAAA6ABAAMAAAABAAEAAKACAAQAAAABAAAAuqADAAQAAAABAAAAugAAAAD/7QA4UGhvdG9zaG9wIDMuMAA4QklNBAQAAAAAAAA4QklNBCUAAAAAABDUHYzZjwCyBOmACZjs+EJ+/8AAEQgAugC6AwERAAIRAQMRAf/EAB8AAAEFAQEBAQEBAAAAAAAAAAABAgMEBQYHCAkKC//EALUQAAIBAwMCBAMFBQQEAAABfQECAwAEEQUSITFBBhNRYQcicRQygZGhCCNCscEVUtHwJDNicoIJChYXGBkaJSYnKCkqNDU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6g4SFhoeIiYqSk5SVlpeYmZqio6Slpqeoqaqys7S1tre4ubrCw8TFxsfIycrS09TV1tfY2drh4uPk5ebn6Onq8fLz9PX29/j5+v/EAB8BAAMBAQEBAQEBAQEAAAAAAAABAgMEBQYHCAkKC//EALURAAIBAgQEAwQHBQQEAAECdwABAgMRBAUhMQYSQVEHYXETIjKBCBRCkaGxwQkjM1LwFWJy0QoWJDThJfEXGBkaJicoKSo1Njc4OTpDREVGR0hJSlNUVVZXWFlaY2RlZmdoaWpzdHV2d3h5eoKDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uLj5OXm5+jp6vLz9PX29/j5+v/bAEMAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAf/bAEMBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAf/dAAQAGP/aAAwDAQACEQMRAD8A/v4oAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgD/0P7+KAP5/wD/AILmf8FzP+HL/wDwy8B+y9/w0mP2k/8AhdmB/wALsPwe/wCEL/4U8fhLn5j8Jfih/b//AAkH/C0fTRP7F/sL/mIjUQtkAfgH/wARzn/WLz/zdb/8k2gA/wCI5z/rF5/5ut/+SbQAf8Rzn/WLz/zdb/8AJNoAP+I5z/rF5/5ut/8Akm0Af08/8EWP+CrP/D4H9lrx9+0uPgMf2ef+EI+Pvin4GjwSPiofi1/aX/CN/Dn4W+Pj4n/4SH/hXXww+xm8PxOGkf2J/Yl19k/sU3/9sv8A2h9isAD3/wD4KiftzH/gmz+wt8cv21B8Lv8Ahc4+C5+Ghb4a/wDCbD4cf8JJ/wALG+MPgD4TjHjFfB/jwaSdJPjv/hISD4X1L7f/AGadNLWH24ahaAHwH/wQz/4Lmf8AD6D/AIahB/Ze/wCGbB+zZ/wpPI/4XYfjD/wmn/C4T8WsfMPhL8L/AOwP+Ef/AOFXemt/21/bv/MOGnFb0A/oAoAKAP5Af+Cov/B1h/w7Z/bq+OX7FZ/YOHxpPwWHwyP/AAsr/hqA/Dk+Iz8Rvg94B+LH/Inf8M7ePf7J/sr/AITv/hHcjxPqAvTp/wDaObEX32GyAPgH/iOc/wCsXn/m63/5JtAH9PP/AARY/wCCrP8Aw+B/Za8fftLj4DH9nn/hCPj74p+Bo8Ej4qH4tf2l/wAI38Ofhb4+Pif/AISH/hXXww+xm8PxOGkf2J/Yl19k/sU3/wDbL/2h9isAD3//AIKiftzH/gmz+wt8cv21B8Lv+Fzj4Ln4aFvhr/wmw+HH/CSf8LG+MPgD4TjHjFfB/jwaSdJPjv8A4SEg+F9S+3/2adNLWH24ahaAH8g//Ec5/wBYvP8Azdb/APJNoA/r7/4bm/41af8ADy3/AIVf/wA2B/8ADc3/AApb/hNTt/5N1/4X/wD8Kv8A+Fj/APCH4zj/AIpH/hOP+EEx/wAx7/hE8/8AEjoA/kE/4jnP+sXn/m63/wCSbQAf8Rzn/WLz/wA3W/8AyTaAD/iOc/6xef8Am63/AOSbQAf8Rzn/AFi8/wDN1v8A8k2gD7+/4Jdf8HWH/Dyb9ur4G/sVj9g4fBY/GkfE0/8ACyv+GoD8Rj4cPw5+D3j74sf8id/wzt4C/tb+1f8AhBP+EdyfE+niyOof2jm+Fj9hvQD+v6gAoA//0f7+KAP4A/8Ag+c/5xef93rf++lUAfv3/wAE9v8Agnx/wS0/4da/sP8Ax0+Of7D/AOwE279gL9mr4s/GL4x/Fn9mn9nb5f8AjHbwZ4w+IHxI+JPxB8YeC1AAA1fxN4x8Y+JtXJ/4/wDXNdv2zeXtAC/8csn/AFgD/wDOd1AB/wAcsn/WAP8A853UAfjF/wAHcn7Ef7GP7Nv/AATc+Cnjn9nX9kb9l74A+NtU/bd+HHhPVPGPwX+APwp+FfinU/C158CP2ldX1DwxfeIPA3g/Q9Vu9Bu9V0PQ9XutGurttOvNR0TTb5rU3lhYlQD6h/4Mqv8AlFj8e/8As/74p/8ArO37K1AH8of/AAWp/wCHzv8Aw0H/AMFGf+Fwf8PPP+HfH/DX3xy/sf8A4WX/AMNXf8Mcf8Ks/wCGltU/4Ub/AGf/AMJR/wAWS/4QH+0v+EB/4VV9n/4kP2//AIRH/hEv9M/sOgD9Pf8Agzc/aw/Za/Zg/wCHjQ/aX/aU+AX7Pf8AwnH/AAx+fBP/AAvL4yfDn4Snxd/wjK/tP/8ACQ/8IuPH/iXQRr39g/2/4dXWxo7Xv9jHXNG+3G1/tCydgD8Zf23P+Cmn/BSHx7/wUi/a68D/ALKf/BQT9t3xl4K8Zftu/H7wn+zd4N/Z6/at+PHiLwt4t8LeI/jx4o0f4PeGPgf4f+G/ju80rXdC13Sbvw5pXw20jwJZ3enalYXmhWHhSyezewRwDd/46m/+s/n/AJ0RoA/u3/4I1f8ABPj4W/HH/gm5+zf8Uf8Agp3+xB8PvjB+3J4n/wCFv/8AC7/iL+3p+zX4d+IP7VviI6N8d/ihoHw3X4reLv2hfBmq/GLVRpXwe0vwHofgX/hML+6+wfDjT/CGn6AI/CtjoaUAf5V/wV/Z++Pf7SXirUPAv7OfwO+L/wAf/G2l+HrzxXqng74L/DXxl8U/FWneFrO/0vSL/wAU3/h/wNouu6raaFZ6tr+jaTdaxd2f9n2eoa1pli12t5f2SsAf6eX/AAaN/s+fH39m3/gm98avA37RXwP+LvwA8bar+298RvFel+DfjT8NvGXwr8Vap4Vu/gP+zVo9j4nsfD/jnRNC1W70G91XQ9a0q11m2szp13qOi6jYpeC8sL1VAP248WftA/8ABN/9qbxX4k/Yk8c/HL9iH9ovxtrXiDV/CfjL9kTxZ8SvgP8AF7xXrPir4Tahc+KfEPhjxP8AALWNb8QarqOv/DfVvA194m1jRtV8Itf+C9Q8I3euX1lp15oD3lgAY/8Aw6e/4JZ/9I1P2Av/ABDr9nb/AOdvQBzP/BTTwn4X8B/8EjP+CgngTwN4a0LwX4I8Gf8ABOX9q7wl4O8HeE9H07w14V8K+FfDf7M/jzRfDvhjwx4f0a0tdK0Lw9oel2tnpGi6NpNnZ2FhYWVnY2NnFZRolAH+eX/waN/s+fAL9pL/AIKRfGrwN+0V8D/hF8fvBOlfsQ/EXxXpfg340/Dbwb8VPCul+KrT48fs1aPY+J7Hw/450TXdJtNes9K1zWtKtdZtrMajZ6drWo2KXhs7+9VgD+5b4o/Cf/g2++B/jnXPhb8avht/wRE+EPxN8LjTR4n+HfxR8IfsIeAPHfhsa1pGm+IdF/t7wj4q03SvEGk/2poGq6PrWlC/sLQXuj6lp2o2O+yvrN2AOC/45ZP+sAf/AJzuoA+nPgr+xF/wQ5/aT8K6h46/Zz/ZH/4JSfH/AME6X4gvfCepeMfgv8A/2Qfin4V0zxVZ6fpOr33he+8Q+BvCGvaVZ69aaVruj6vd6PdXYv7Sw1vTL6SzFnfWTMAfwm/8EqvCfhPwB/wd6eIfA3gbw34f8F+CfBf7b3/BUbwn4O8HeEtGsPDvhXwp4W8OfDj9r3SfD/hjwzoGj21ppWgaFoOlWdnpGkaNpNnZ2Gn6daWdhY2UVmqKoB/qLUAFAH//0v7+KAP4A/8Ag+c/5xef93rf++lUAfv5/wA6sn/eAP8A+B3UAf5A9ABQB/p+f8Hqv/KLH4Cf9n/fCz/1nb9qmgA/4Mqv+UWPx7/7P++Kf/rO37K1AH5Bf8F9P+Dj4ftEfDz/AIKDf8Elj+xt/wAIePD3x/1f4F/8L/P7Q518Xn/DL/7U+g6z/wAJSfhUPghof2b/AITo/CT7J/Y3/CxpP+EX/t8v/bXiAabsvwD8gP8Aghn/AMEM/wDh9B/w1CT+1D/wzYf2bP8AhSfP/Ckx8Yf+E0/4XCPizj5R8Wfhf/YH/CPj4Xeut/21/bv/ADDjpxa/APA/2TvgYP2X/wDgvh+zT+zSPFX/AAnA/Z4/4K+fBz4Gf8Jt/Yn/AAjf/CXn4S/tneH/AAAPFH/COnU9e/sA6/8A2AdX/sca5rv9jm8Ww/trUDF9tlAP9nSgD+QH/gqL/wAHWH/Dtn9ur45fsVn9g4fGk/BYfDI/8LK/4agPw5PiM/Eb4PeAfix/yJ3/AAzt49/sn+yv+E7/AOEdyPE+oC9On/2jmxF99hsgD+Ij/gix/wAFWf8Ahz9+1L4+/aXHwG/4aG/4Tf4BeKfgaPBI+Kg+Ev8AZv8AwknxG+Fvj4+J/wDhIf8AhXXxP+2fYx8MRpH9if2Ja/a/7aN//bKf2f8AYr8A/p5/4jnP+sXn/m63/wCSbQAf8MNf8O8v+OtP/haH/C4P+Fgf8Zy/8MA/8IV/wr/+x/8Ah57/AMUd/wAKv/4ap/4S3xp9r/4Ul/w1n/a3/Ccf8M22X/Cx/wDhXn2L/hFPAf8Awln23w8AH/Ec5/1i8/8AN1v/AMk2gD+nj9rH45n9qD/ggf8AtLftLHwr/wAIOf2h/wDgkH8Y/jmPBP8Abf8Awkh8ID4tfsZeIPH58L/8JGNM0H+3/wCwP7fGkf2w2h6F/bAs2vzouniUWUQB/ET/AMGVP/KUz49/9mA/FT/1on9lSgD4A/4Oj/8AlOt+3J9P2Zv/AFj39n6gD8AKAP8AT8/4Mqv+UWPx7/7P++Kf/rO37K1AH4A/8E1P+VyT4i/9n/f8FYv/AFB/2yaAP9PqgAoA/9P+/igD+AP/AIPnP+cXn/d63/vpVAH7+f8AOrJ/3gD/APgd1AH+QPQAUAf6fn/B6r/yix+An/Z/3ws/9Z2/apoAP+DKr/lFj8e/+z/vin/6zt+ytQB+nXxY/wCDcj/gjN8cPit8SfjT8Uf2OB4n+Jvxf8f+Mvij8RfEg/aC/ap0f/hIfHfxA8Q6l4v8X6+dG8PfG7S/D2l/2p4g1W/v/wCytH0rTdFsPtf2LTtOs7BbSzQA/nF/4Ll/8c2P/DL3/DlX/jDD/hs7/hdf/DSu7/jIn/hZP/DOv/Cpf+FN/wDJ2H/C+P8AhDv+EN/4Xt8VMf8ACBf8Ip/b/wDwlX/FV/27/YXh7+wwD9AP+HXX7Cv/AA61/wCH1P8Awo0f8PM/+GAv+Hof/DS3/CzfjBj/AIbp/wCGd/8Ahq//AIXn/wAKf/4WF/woDH/DQP8AxXv/AArX/hVn/Cntv/FJ/wDCAf8ACC/8U9QB8ff8Gwv/AAWV/wCCkf8AwUQ/b5+LfwX/AGxP2jz8YPhl4Z/ZD8efFHQPDf8Awp74D+ADY+O9G+M/7P8A4Q03Xv7Y+Fvwu8F6/c/ZfD/jXxLZnSrvVbrQ5DqH22809r+w0+9sgD+cP/g6P/5TrftyfT9mb/1j39n6gD9v/wDg56/4I1f8E3P+Cd/7A3wk+NH7Hf7OA+D/AMTfE37XngP4Xa/4k/4XD8ePH4vvAms/Bj9oDxfqWg/2P8Uvij400C2+1eIPBXhq8Gq2mlWuuRjT/sVnqC2F/qFlegB/wbC/8Eav+Cbn/BRD9gb4t/Gj9sT9nAfGD4m+Gf2vPHnwu0DxJ/wuH48eABY+BNG+DH7P/i/TdB/sf4W/FHwXoFz9l8QeNfEt4dVu9KutckGofYrzUGsLDT7KyAP7dfiT+wZ+yl8YP2ONM/4J/fEb4UHxD+yPo/gD4TfC+w+Ew8d/EbSVt/AnwOvvBuo/C/Qv+E90PxjpnxOn/wCEXu/AfhG4XVbnxlJrOtnRseIL7UlvtRF+Af55X/B1h/wS6/YU/wCCbX/DB3/DFXwNHwW/4XQP2oT8Ss/E34wfEb/hJP8AhXX/AAzr/wAIcD/wtj4h+OxpJ0f/AIT3xZk+HRpx1D+0f+JkL37BY/YgD+vr/nVk/wC8Af8A8DuoA/kF/wCDKn/lKZ8e/wDswH4qf+tE/sqUAfAH/B0f/wAp1v25Pp+zN/6x7+z9QB+AFAH+n5/wZVf8osfj3/2f98U//Wdv2VqAPwB/4Jqf8rknxF/7P+/4Kxf+oP8Atk0Af6fVABQB/9T+/igD+AP/AIPnP+cXn/d63/vpVAHsH7Ef/B3J/wAE3f2bv2MP2Rv2dfHHwV/be1Txr8Af2XvgD8FvGWp+FPhz8B7vwrqfin4V/Crwp4G8QX/he+1j9pTQ9VvNBu9V0O8utGutV0XRdRu9Paze+06xvWawQA+oP+I1X/glj/0QX9v7/wANX+zt/wDRVUAH/Ear/wAEsf8Aogv7f3/hq/2dv/oqqAPwh/4OEf8Ag4S/Yx/4KzfsY/DP9nX9nT4Z/tOeCvGngz9p3wX8atV1T41+C/hR4a8LT+FvDXwn+Nfgi+0/Tr7wN8bPiNqtx4gk1X4j6LdWdnc6NZWDWNpqTPqSXaWdnfgH7vf8GVX/ACix+Pf/AGf98U//AFnb9lagD8Af+Can/K5J8Rf+z/v+CsX/AKg/7ZNAH39/wfOf84vP+71v/fSqAP6mP2IvjV4V/Zs/4IdfskftF+OrDxDqvgn4Af8ABKP4B/GjxjpnhOz0+88Uan4V+Ff7IXhTx14gsfC9hrOqaFpN5rt5pOhXlro1pq+saJYXd+1nHf6np9mTfIAeAf8ABML/AIOFf2Mf+Csnx88Xfs7fs6fDH9p/wZ418G/CLXPjPqeqfGfwV8KvDvhifwt4d8ZeAfA19Y2N74G+NfxH1SfXDqvxH0a7trW60ay0/wDs+01J21Jb2Oysr8A8h/bz/wCDnv8AYI/4J4ftYfFf9jz41fCL9r7xL8Tvg+PA/wDwkeu/C/wF8GNY8C3o8f8Aw28IfFLRhoGo+Lf2gPA3iC6FtoHjLSbPVPt3hqwC61a39nZ/bbJbK/uwD8Bv2K/2K/in/wAGnXxS1z/gon/wUS174ffGX4K/GfwDqn7FXhnwx+xZqviH4jfFSw+KXxH1/wAL/HHRtf1/R/jp4W/Zv8HWngC08L/s5eN7HV9WsvG+s6/aa/qHhWxtPCl9p19rOt6GAf2Mf8Ewv+CnnwE/4KxfAbxf+0V+zp4R+Lvg7wR4M+LmufBjU9M+NGh+DPDviq48V+HfBvgLxxqF7Y2Hgb4g/EbSZtBbSviNolraXV1rVlqH9o2epo2mLZR2N7dgH8E//BNT/lck+Iv/AGf9/wAFYv8A1B/2yaAPv7/g+c/5xef93rf++lUAfv5/zqyf94A//gd1AH+fV/wb1f8ABT34Bf8ABJ79s34nftF/tF+E/i94x8FeMf2YPG3wX0rTPgxoXgzxD4pi8U+I/ir8FPHNjqGoWPjr4hfDnS4NCXSvhzq9rdXVprN5qA1C90yNNNlsmvb2wAP7Gf8AiNV/4JY/9EF/b+/8NX+zt/8ARVUAH/Ear/wSx/6IL+39/wCGr/Z2/wDoqqAD/iNV/wCCWP8A0QX9v7/w1f7O3/0VVAH80f8AwRR+NfhX9pT/AIOoPC/7RfgWw17SvBPx8/af/wCCifxr8HaV4stNOsfFeneFfip8Ev2qfG2gaf4msNH1PX9KtdftNK16zttZtdJ1vW9Osr5L0WF/qFiiXrAH+qxQAUAf/9X+/igD8ff+CrH/AARY/Zb/AOCwH/Chv+GlvHnx98D/APDPB+KY8E/8KN8VfDrw1/aQ+LR+HY8Rf8JP/wAJ/wDCX4nm7Nl/wrLw8dFOkf2J9j+2619v/tASWQsgD8hf+IKr/glj/wBF6/b+/wDDqfs7f/Qq0AH/ABBVf8Esf+i9ft/f+HU/Z2/+hVoAP+IKr/glj/0Xr9v7/wAOp+zt/wDQq0AH/EFV/wAEsf8AovX7f3/h1P2dv/oVaAP3a/4Jhf8ABMP4Cf8ABJ34DeL/ANnX9nTxd8XfGPgjxn8XNc+M+p6n8aNc8GeIvFVv4r8ReDfAXgfULKxv/A3w++HOkw6CulfDnRLq0tbrRb3UP7RvNTdtTayksbK0APj74H/8G937GPwB/wCClmt/8FTPBvxN/ad1L9oPXvi/+0H8abvwd4j8Z/Ci7+DkXir9pPSPibo/jjT7fQNM+CuieNU0DS7b4o+Im8J2x+Ib6hY3VloR1vU9dWzvk1AA9h/4Ksf8EWP2W/8AgsB/wob/AIaW8efH3wP/AMM8H4pjwT/wo3xV8OvDX9pD4tH4djxF/wAJP/wn/wAJfiebs2X/AArLw8dFOkf2J9j+2619v/tASWQsgDe/bd+CvhX9mz/gh1+1v+zp4Fv/ABDqvgn4Af8ABKP4+fBfwdqfiy80+88Uan4V+Ff7IXivwL4fvvFF/o2l6FpN5rt5pOhWd1rN3pGj6JYXd+15JYaZp9mRYoAfw0/8GVP/AClM+Pf/AGYD8VP/AFon9lSgD+rn9vP/AINhP2CP+Ch/7WHxX/bD+NXxd/a+8NfE74wDwP8A8JHoXwv8e/BjR/AtkPAHw28IfC3RjoGneLf2f/HPiC1FzoHg3SbzVPt3iW/Da1dX95Z/YrJrKwtAD+Cv/gp7/wAHCv7Z3/BWT4B+Ef2dv2i/hj+zB4M8FeDfi7ofxn0zVPgx4K+Kvh3xPP4p8O+DfH3gaxsb698c/Gv4j6XPoZ0r4j6zd3Nra6NZah/aFpprrqS2Ud7ZX4B/Yz/wZVf8osfj3/2f98U//Wdv2VqAP0Z+B/8Awb3fsY/AH/gpZrf/AAVM8G/E39p3Uv2g9e+L/wC0H8abvwd4j8Z/Ci7+DkXir9pPSPibo/jjT7fQNM+CuieNU0DS7b4o+Im8J2x+Ib6hY3VloR1vU9dWzvk1AA/nm/4PnP8AnF5/3et/76VQB/Ux+xF8FfCv7Sf/AAQ6/ZI/Z08dX/iHSvBPx/8A+CUfwD+C/jHU/Cd5p9n4o0zwr8VP2QvCngXxBfeF7/WdL13SbPXbPSddvLrRrvV9H1uwtL9bOS/0zULMGxcA/Gf/AIgqv+CWP/Rev2/v/Dqfs7f/AEKtAB/xBVf8Esf+i9ft/f8Ah1P2dv8A6FWgA/4gqv8Aglj/ANF6/b+/8Op+zt/9CrQAf8QVX/BLH/ovX7f3/h1P2dv/AKFWgD67/YM/4NhP2CP+CeH7WHwo/bD+Cvxd/a+8S/E74Pjxx/wjmhfFDx78GNY8C3o8f/Dbxf8AC3WTr+neEv2f/A3iC6FtoHjLVrzS/sPiWwC61a2F5efbbJb2wuwD+kGgAoA//9b+/igD+IL/AIPIv2sP2pf2YP8Ah3KP2aP2lPj7+z2fHB/bA/4Tb/hRvxk+I3wkHi7/AIRlv2YP+Ed/4Sj/AIQDxLoP9vf2D/b3iJdE/tg3v9jDXNZ+w/Zf7QvWYA/jJ+FP/BQ7/gsL8cfin8Nfgp8Lv+Chn7fvif4n/F34geD/AIX/AA68ND9tj43aN/wknjv4g+IdM8I+ENB/trxB8V9J0LShq2u6tZWf9ra3rOn6LYm8+16jfWNmt1eoAfXn7c2t/wDBxp/wTX/4Ve37av7XH7fnwWb40Hxufhp/xsS8UfEf/hI/+Fcf8IefGH/JJ/2iPHY0kaT/AMJ34TX/AIqFtO/tAaj/AMS3+0BY6ibIA/P/AP4ex/8ABUz/AKSWft//APiYv7RP/wA8igD/AFFf+DhH4Hf8FK/j9+xn8MfB3/BLLW/i/oX7QemftPeDPEnjG8+C37QWkfs2+Kpfg3a/Cn41aV4gttR8c6z8SfhbbanoB8aa58O2ufCS+Ir27vr9dM1oaJdLoLX1gAf51n7avxs/4L9f8E8PinoXwW/bG/bU/b9+EPxM8TeANK+J+h+GR+3/APEDx/8AbPAus+IPFPhHT9fGsfC347eNNAtzda94L8S2f9lXur2utp/Zwvr3T1sL2xu70A+gPiV4J/4Ob/g/+xzpv/BQD4i/tN/t/eHP2RtZ8AfCf4n6f8Wm/wCCk2o6v5/gX443/g+x+Fuv/wDCBeH/ANpbVPibbjxRd+PfCFodLuvBya3ov9s7tf0/TEsdQayAPPf2Gdb/AODjT/gpR/wtBv2Kv2uP2/PjS3wXPgg/Ev8A42JeKPhx/wAI5/wsf/hMD4P/AOSsftEeBBqw1b/hBPFi/wDFPNqP9njTv+Jl/Z4vtON6Af6SXi34EftQeP8A/ghx4j/Zk8daZ4g8aftneM/+CUus/Anxlo3iz4gaB4k8U+LP2nvEf7IV18PvEGmeJ/ihrPie68L67r2vfFa6u7TWvH2reM7zQtR1G8vPEV74qbTnfWWAP5p/+DYX/gjV/wAFI/8Agnf+3z8W/jR+2J+zgfg/8MvE37Ifjz4XaB4k/wCFw/Afx+b7x3rPxn/Z/wDF+m6D/Y/wt+KPjTX7b7V4f8FeJbw6rd6Va6HGdP8AsV5qC39/p9legH5Cf8HG/wDwUI/b3+B//BZj9sn4X/Bb9uH9r74P/DPwx/wz5/wjXw6+F37Svxn+H/gTw+NZ/ZY+COv6x/wj/hDwj400rQNKOqa/qmr6zq32GxtPt+t6jqGpXxa9vbt6APyD/bU/4I1f8FJP+Cd3wt0L40/th/s4f8Kf+GPiXx9pvwv0LxI3xf8AgN8Qje+Oda8PeKPFumaD/Y/ww+KPjbX7b7RoHgvxHfnVrrSLPRY/7P8AsV1fJfX2nWV6AfMfwW/bZ/bO/Zq8LXvgb9nX9rv9p74B+CdW1668Xap4N+Cfx9+K/wALPCuo+Kb3TtM0bUPE2oeHvA/i7QdKuvEF3pWhaHpV7rN1aPqF3YaLp1g121pp9kigH+zT/wAEy/Fvivx9/wAE3v8Agn3468deJfEHjPxr4z/Yh/ZR8XeMvGXi7WtQ8R+KvFfinxF8B/AWr6/4n8T6/q91eatr+ua/q15eavrGsare3eoajqF3eX19ePeOzOAfx1f8Hzn/ADi8/wC71v8A30qgD+cX/gk9/wAFB/2+f+G+P+CavwL/AOG3/wBrz/hSf/DXv7HPwo/4U5/w0r8Zx8LR8LP+Fz/Dnwh/wrf/AIV9/wAJn/wh/wDwgf8Awiv/ABTP/CHf2P8A2D/YP/Ej/s/7AfsdAH9y/wDwdyftB/H39m3/AIJvfBXxz+zr8cPi78APG2q/tvfDnwpqnjL4LfEnxl8K/FWqeFbv4D/tK6xfeGL7xB4G1vQtVu9BvdV0PRdVutGubw6dd6jounXz2YvLCyZQD5g/4I1f8HH3/BPP4Pf8E3P2bvh1/wAFAf29fiBq/wC114eHxf8A+Fs6j8T/AIf/ALWvxy8dzrrPx2+KHiDwCdf+KFh8LfHtr4oNv8MtU8HWulfZfGGsjRNGXT9Ac2T6Y+n2AB4B/wAEav2IP+Dlb4Pf8FJP2b/iN/wUC8Z/te6t+yP4fPxe/wCFtWHxP/4KDeFfjj4GuDrHwI+KGgeAF1/4Yaf+0v49uvFIt/ibqXg270n7J4R1n+xNb/s/XyNPTTG1GwAPmH/g7k/bc/bO/Zt/4KR/BTwN+zr+1z+1D8AfBOqfsRfDjxZqng74L/H74rfCvwtqfim8+O/7Sukah4nvvD/gbxhoelXevXelaHoekXWs3Vo2o3mnaJpti10bOwsQoB/Rx/wSD/4LifsC/tN/CT9gz9jq0/ay8QfFf9u3Xv2X/hX4b+IPhfxZ8Of2ibvxT4k+Mvww/Z6svFHxxuPE3xe8a/DeDwZ4h8QWtz4O8eazq/i688e6haeK7+xvbzT9d1y/1Sy/tIA/ojoAKAP/1/7+KAP4A/8Ag+c/5xef93rf++lUAfxFfsofHRf2X/2o/wBmn9pU+Fv+E4/4Z4+PvwY+Of8AwhP9u/8ACNjxg3wl+Ivh/wAfnwv/AG+NK18+Hzr/APYH9kf20dF1saP9ta/Oi6jsFkwB+vP/AAXM/wCC5n/D6D/hl4D9l7/hmw/s2f8AC7OP+F2D4w/8Jp/wuEfCbPzH4TfC/wDsD/hHx8LvTW/7a/t3/mHHTgt+Aff/APwS7/4NTx/wUm/YV+Bv7ag/by/4UuPjQfiaP+Faj9mD/hYo8Nj4dfGHx/8ACb/kcP8AhonwH/ax1X/hBP8AhIsf8I1YfYv7RGm/6d9h/tC9AP7dv+C0/wDwVZ/4c/fsteAf2lz8Bj+0N/wm/wAffC3wNPgk/FQ/CX+zf+Ek+HPxS8fDxP8A8JD/AMK6+J/2w2Z+GJ0j+xP7Etftf9tC/wD7ZT+z/sV+Af5hv/Baf/gqz/w+B/al8A/tLn4Df8M8/wDCEfALwt8DT4JPxUHxa/tL/hG/iN8UvHw8T/8ACQ/8K6+GH2P7YPicdI/sT+xLr7J/Yov/AO2X/tD7FYAH39+0p/wcfD9of/gjh4a/4JKn9jb/AIRAeHvgF+yf8C/+F/n9of8At77Z/wAMv698G9Z/4Sn/AIVSPgjoP2YeOf8AhUv2X+xT8R3/AOEXGvbv7c8Qf2aUvwD9e/8Agxj/AOcof/dlP/v2tAH0B+1f/wAHkf8AwzB+1L+0t+zX/wAO5j45/wCGd/j98ZPgX/wmo/a+PhoeMP8AhUvxG8QeAf8AhJz4f/4Zg1/+wT4g/sD+1/7G/tvXDov2wWH9tajtN64B8/8A/Ec5/wBYvP8Azdb/APJNoA/kJ/4Ki/tzD/gpN+3V8cf21R8Lj8GD8aB8NC3w2PjZviP/AMI1/wAK5+D/AIB+E4/4rFfB/gP+1v7XHgT/AISIg+F9O/s86h/ZxOofYRf3YB+vf/Baj/g4+/4fAfss+Av2av8AhjUfs8/8IP8AH3wt8cx41/4aIHxaOqf8I38Ovij4C/4Rj/hHh8EPhitm10fif/bH9sjW7w2f9if2edEf7d9vsgA/4Ir/APBuD/w+A/ZZ8e/tK/8ADZQ/Z5/4Qf4++KfgYfBX/DO4+LR1T/hG/h18LvHv/CT/APCQn43/AAxWza6PxP8A7H/sY6JeGz/sT+0Brb/bvsFkAf08/wDBLv8A4LlnR/26fgf/AMG/w/ZgFz/wyz/wsz9hr/hrI/GryP8AhOv+GBfhB4+8M/8ACzz8B/8AhU7jwv8A8LY/4UL9s/4QYfGPX/8AhBz4t+yf8Jb4uGhG814A+/v+C5n/AAQz/wCH0H/DLxH7UP8AwzYP2bP+F2YP/Ckz8Yf+E0/4XCfhLn5T8Wvhf/YH/CP/APCrvXW/7a/t3/mHDTg16Af5xf7J3wMH7L//AAXw/Zp/ZpHir/hOB+zx/wAFfPg58DP+E2/sT/hG/wDhLz8Jf2zvD/gAeKP+EdOp69/YB1/+wDq/9jjXNd/sc3i2H9tagYvtsoB/bx/weq/8osfgJ/2f98LP/Wdv2qaAP8wOgD+/z/iOc/6xef8Am63/AOSbQAf8MN/8RgX/ABss/wCFo/8ADvH/AIUj/wAYNf8AClv+EJ/4az/4Sn/hWf8Axf7/AIWh/wALG/4S/wDZq/sT+3P+Gmf+ER/4Qf8A4QPW/wCzv+EH/t3/AISu/wD+Eg/sXQAD7+/4Jdf8Gp//AA7Z/bq+Bv7ag/bxHxpPwWHxNH/Ctf8Ahl8/Dk+Iz8Rvg94++E//ACOP/DRPj3+yf7K/4Tv/AISLB8MagL06f/Z2LEX326yAP6/qACgD/9D+/igD+IL/AIPIv2T/ANqX9p//AIdyn9mj9mv4+/tCHwOf2wP+E2/4Ub8G/iN8Wx4R/wCEmb9mD/hHf+Eo/wCEA8Na9/YP9vf2D4ibRP7YFl/bI0PWfsP2r+z71VAP4a/Fv/BMv/gpD4B8KeJfHXjv/gn3+294M8FeDPD+teLvGXjLxd+yj8ePDvhbwp4V8Oafdav4g8T+J9f1fwBZ6ToGh6BpNpeatrGr6teWmn6dp9neX19epZq7oAfDFAH+vz/wa4f8oKf2G/r+0z/62F+0DQB+nX7an/DAn/CrtD/4eK/8Mg/8KT/4WBpP/CM/8Nq/8KZ/4VX/AMLT/wCEe8V/2L/wj/8AwvL/AIpT/hPv+EU/4Tr+yvsP/FQf2B/wlf2H/iXf2zQB/nV/8HCP7EfhT9pX9s/4ZeOf+CMH7JGgfHz9lzS/2YvBXhLx54x/4Jg/APTfin8A9O+Plj8VfjbrHinw14u1/wDZR8I658O7X4wWfw7134V6t4i0bWLxfG9p4J1vwHfahY/2FqHh53APvv8A4KFeEv8AgkZ4D/4N0rDwJ4X8Of8ABOTwX/wU78GfswfsJeE/iN4N0LRf2ZvDf7eHhT4++GvHv7OWjftLeGPG+gafbWf7QGhfGHQDafErSPjdo2t2dn43sDaeO7Lx5ar5WvIgB/JR+wz/AMPTP+Lof8O0v+G/f+ZK/wCF0/8ADDP/AA0V1x4w/wCFcf8AC0P+FA89f+E8/wCEG/4S7v8A8Jb/AGD8v9tUAdH+xH4T8VePP+Cuf7I3gb9q3w1r3jTxv40/4KN/ALwn+0l4O/aG0fUPEninxT4p8RftM+FNH+L/AIY+N/h/4j29zquu+Ide1S68R6P8StF8eWN7fX9/e63Y+K7R7yS/RgD/AFbvjV+xF/wQ5/Zs8K6f46/aM/ZH/wCCUnwA8E6p4gsvCem+MfjR8A/2QfhZ4V1PxVeafq2r2Phex8Q+OfCGg6Vea9d6VoWsavaaPa3Zv7uw0TU76OzNnY3rKAf5dv8AwXo/4ZY/4ew/tV/8MVf8KB/4Zn/4sb/wrT/hl3/hXf8AwojH/DN3we/4TH/hB/8AhU//ABQWP+E+/wCEt/4ST/hHuf8AhLv7d/tH/idf2lQB+cnwV/Z++Pf7SXirUPAv7OfwO+L/AMf/ABtpfh688V6p4O+C/wANfGXxT8Vad4Ws7/S9Iv8AxTf+H/A2i67qtpoVnq2v6NpN1rF3Z/2fZ6hrWmWLXa3l/ZKwB/p5f8Gjf7Pnx9/Zt/4JvfGrwN+0V8D/AIu/ADxtqv7b3xG8V6X4N+NPw28ZfCvxVqnhW7+A/wCzVo9j4nsfD/jnRNC1W70G91XQ9a0q11m2szp13qOi6jYpeC8sL1VAP4iv+Cmn7Pv/AAUh/Za/4KQf8FBf22vBHwN/be/Z08FaL+29+1f4t8Hftd+FPhr8dvhD4V0fwv8AFn48ePPC3h/xN4Y+PujaHoGk6boXxI0rxzZeGdI1nSvFq2HjTT/F1rodjeahZ+IEs78A8f8AgX+1h/wXx/agHik/s0ftL/8ABXr9of8A4QYaIfG3/CjPjH+2b8Wh4QPiT+1v+Ee/4Sf/AIQDxJrx0Ftf/sHWzorasLP+2W0PWvsH2r+zr7YAf6Gf/Dvb4Xf8OYv+F6f8MQ/D/wD4ejf8Owv+Fs/8Lj/4Zr8O/wDDfX/DfP8Awyf/AMJb/wALH/4WB/whX/DQn/DXn/DQn/FUf8Jh/a//AAub/hcv/E9/tD/hOv8ATaAPwk/4N7v2e/8AgpD+0r+2d8TfAv8AwWf+B37b/wAfP2XdK/Zh8Z+LPAng7/gp98Nfjt8U/gJpvx9sfit8E9H8L+JvCOgftXaHrvw6tPjBa/DvXfinpPh3WdItF8a2vgnWvHun6feroWoeIY5QD+x3/h09/wAEs/8ApGp+wF/4h1+zt/8AO3oA/wA0f/gjV/wT4+KXwO/4KR/s3/FH/gp3+xB8Qfg/+w34Y/4W/wD8Lv8AiL+3p+zX4i+H37KXh0az8CPihoHw3X4reLv2hfBmlfB3Sjqvxh1TwHofgX/hML+1+3/EfUPCGn6AJPFV9oaUAfp7/wAFqP8AhqX/AIak8Bf8Q6v/AAvz/hiX/hQXhb/hZ/8Aw5Y/4WN/wyx/w1P/AMLG+KP/AAm3/Cff8MMf8Wm/4aB/4VP/AMKS/wCEm/4SL/i4v/Cuf+FUf2j/AMU9/wAIjQB/dr/wT3/4Wl/wwL+xB/wvT/hYP/C7P+GQ/wBmv/hcX/C2f+Eh/wCFpf8AC1P+FMeDP+Fg/wDCx/8AhMP+Kq/4Tz/hK/7Y/wCEw/4Sb/ioP+Eg/tD+3P8AiYfbaAPsWgAoA//R/v4oAKAP4wf+CsP/AAc+/sEf8Kr/AOClf/BOo/Cb9rw/Gz/hAf2xv2KT4oHgD4Lj4WH4pDw98Rvgede/tn/hoH/hMB4CPir/AE3+2f8AhBf7fGg/6afCLaiP7HoA/jH/AOCU/wDwRY/ak/4LAf8AC+f+GafHnwC8D/8ADPH/AAqweNv+F5eKviL4a/tI/FofEQeHf+EY/wCEA+EvxPF2LL/hWXiE60dX/sT7H9t0X7B/aBkvRZAH9fH7Lv8AwWn/AGXP+DeD4F+Bv+CO/wC2p4C+PvxN/aX/AGQT4k/4WX44/Zc8LfDjxp8CtcHx+8Ya7+1B4O/4QfxR8V/ix8EvHuqf2d4B+NnhPSPEo8Q/DHwqbHxZY69p+nHXdDstP8Qa0Afs3/wcK/8ABML4+/8ABWH9jL4Yfs6fs6eLfhD4O8a+Dv2n/BPxo1XU/jPrvjPw94Vl8LeHPhV8a/A19p+n33gX4ffEbVJ9dfVPiNo91bWt3o1np50+y1KR9SjvVsrK9AD/AIN6v+CYXx9/4JPfsZfE/wDZ0/aL8W/CHxj418Y/tP8Ajb40aVqfwY13xn4h8KxeFvEfwq+Cngax0/UL7x18PvhzqkGupqnw51i6ubW00a808afe6bImpSXrXtlZAH8ZX/Bc/wD4N7/2zfgHr/8AwUO/4KneM/ib+zDqX7Puv/tPfEP41Wng7w340+Kt38ZIvC37Sn7TyaP4G0648P6r8FdD8GDXtMufin4ebxbbr8RGsLC1stdOjajrzWlgl+AeP/8ABuD/AMFqP2Wf+CQH/DZQ/aU8A/H3xuf2hv8Ahnf/AIQv/hRvhb4c+Jv7N/4VJ/wvT/hIR4mHj74r/C77Gbz/AIWb4fGjf2R/bgvPsetf2gdP2WJvwD79/wCHLP7U3/DUn/ERX/wn3wB/4Yl/4X9/w+n/AOFYf8JR8RP+GqP+GWf+Fj/8Nzf8IF/whX/CqP8AhU//AA0B/wAKm/4p3/hGf+F3f8K6/wCFh/8AEl/4Wv8A8It/xVdAHkH/AAcI/wDBwl+xj/wVm/Yx+Gf7Ov7Onwz/AGnPBXjTwZ+074L+NWq6p8a/Bfwo8NeFp/C3hr4T/GvwRfafp194G+NnxG1W48QSar8R9FurOzudGsrBrG01Jn1JLtLOzvwD4i/YM/4NhP29/wDgof8Asn/Cj9sP4K/F39kHw18MfjAfHH/COaF8UPHvxn0fx1ZHwB8SfF/wt1k6/p3hL9n/AMc+H7U3Ov8Ag3VrzS/sPiW/LaLdWF5efYr1r2wtADyH/g3q/wCCnvwC/wCCT37ZvxO/aL/aL8J/F7xj4K8Y/sweNvgvpWmfBjQvBniHxTF4p8R/FX4KeObHUNQsfHXxC+HOlwaEulfDnV7W6urTWbzUBqF7pkaabLZNe3tgAf2M/wDEar/wSx/6IL+39/4av9nb/wCiqoA+ff2ov+C0/wCy5/wcP/Avxz/wR3/Yr8BfH34ZftL/ALXx8N/8K08cftR+Fvhx4L+BWhj4A+MNC/ag8Y/8Jx4o+FHxY+Nvj3S/7R8A/BPxZpHhoeHvhj4qN94svtB0/UToWh3uoeINFAPAf2G/+OP7/haP/Dyv/i93/Dw3/hCP+FMf8MNf8XM/4Rf/AIZL/wCEv/4WR/ws/wD4X9/wzJ/YX9uf8NK+BP8AhBf+ER/4Tj+0f7G8Wf29/wAI/wD2fon9vAH6Af8AEar/AMEsf+iC/t/f+Gr/AGdv/oqqAD/iNV/4JY/9EF/b+/8ADV/s7f8A0VVAB/xGq/8ABLH/AKIL+39/4av9nb/6KqgD8wP+Cy//AAc9fsD/APBRD/gm5+0f+x38FvhJ+154X+JvxgX4Qf8ACN6/8UfAfwY0bwJZDwB8dvhb8U9YGval4R/aA8c+ILX7ToPg3VrLSvsXhq+Da3dadZ3v2Gxa91G0AP0//wCDKr/lFj8e/wDs/wC+Kf8A6zt+ytQB+jPwP/4OEf2Mfj9/wUs1v/gln4N+GX7Tum/tB6D8X/2g/gtd+MfEfgz4UWnwcl8Vfs2aR8TdY8cahb6/pnxq1vxq+gapbfC7xEvhO5Pw8TUL66vdCGt6ZoS3l8+ngH7x0AFAH//S/v4oAKAP8cr4r/CzwL8cP+DkH4k/Bb4o6D/wlPwy+MH/AAW88Y/Cz4i+HP7T1bRf+Ej8B/ED9vDUfCHi7QTrHh7U9M1/SjqugapfWP8Aa2i6pputWBvBfafqNnfraXagH+pj+wz/AMEvP2FP+CbB+J//AAxV8Df+FLj40/8ACEf8LKH/AAs34v8AxGPiM/Dn/hMG8HAj4sfELx4dJOkjx14tH/FPHTvt/wDaWdTF8bHTTZAH+YV/wdH/APKdb9uT6fszf+se/s/UAf3cf8HPf7eP7V//AATw/YI+Efxq/Y7+Kw+EHxO8TftfeAvhfr3iT/hBfht8QPtngXWPgx+0B4t1HQBo/wAUvB/jPw/ai68QeC/DV7/alnpVprajT/slpqC2V9fWV2AH/BsJ+3j+1f8A8FD/ANgj4ufGr9sT4rD4v/E7wz+1949+F+g+JP8AhBfht8P/ALH4F0f4Mfs/+LdO0A6P8LfB/gzw/dC18QeNPEt7/al5pV3rbDUPsl3qDWVjY2VoAfxE/wDBan/gst/wUk+L/wC0J/wUY/4J/wDxG/aOHiH9kfR/2vfjf8L7D4SH4QfAjSfI8DfA79pfVdQ+F+gDx9oPwv0z4m3K+F7vwH4Quzqt34yfW9b/ALFA1/UdTW+1BL8A+vf+DU//AIJdfsKf8FJf+G8f+G1fgaPjT/wpcfsvH4a4+Jvxg+HP/CN/8LF/4aK/4TED/hU/xD8CDVjrH/CBeE8HxENROn/2d/xLRZfb777aAf6Ov/DLvwK/4Zb/AOGK/wDhB/8AjGb/AIUF/wAMtf8ACtP+Ek8Y/wDJCv8AhXH/AAqn/hB/+Ey/t/8A4T7P/CBf8U7/AMJL/wAJZ/wleP8AiY/2/wD27/p9AH5Df8QuX/BCn/oxv/zZb9sD/wCiCoA/kF/4Kif8FRP26/8AgjD+3V8cv+Caf/BNL43/APDNv7E37Np+GR+CvwVPw0+D/wAYf+EM/wCFwfB/wD8fviP/AMXG+Pvw8+KPxb1//hIPiz8UfHfi/wD4q/x5rw0ca5/YmhLp3hbTtF0PTQD5A/4NhP2Dv2UP+Ch/7e/xc+Cv7Ynwpb4v/DHwz+yF49+KGg+G/wDhOviT8P8A7H460f4z/s/+EtO186x8LfGHgzxBdG18P+NPEtl/Zd5qt3ojHUPtd3p7XtjY3toAH/Bz3+wd+yh/wTw/b3+EfwV/Y7+FLfCD4Y+Jv2QvAXxQ17w3/wAJ18SfiB9s8dax8Z/2gPCWo6+NY+KXjDxn4gtTdeH/AAX4asv7Ls9VtNEU6f8Aa7TT1vb6+vbsA89/4NcP+U637Df0/aZ/9Y9/aBoA/wBPX9ub/gl5+wp/wUnPww/4bV+Bv/C6B8Fv+E3/AOFaj/hZvxf+HJ8OH4jf8Ie3jEAfCf4heAzqx1YeBfCQ/wCKhOo/YP7NzpgsTfakb0A+Bf8AiFy/4IU/9GN/+bLftgf/AEQVAH84f/Bz1/wRq/4Juf8ABO/9gb4SfGj9jv8AZwHwf+Jvib9rzwH8Ltf8Sf8AC4fjx4/F94E1n4MftAeL9S0H+x/il8UfGmgW32rxB4K8NXg1W00q11yMaf8AYrPUFsL/AFCyvQD+EGgAoA/0/P8Agyq/5RY/Hv8A7P8Avin/AOs7fsrUAftx8Nf+CNP/AATd+EH7Y+pf8FAPh1+zgfDv7XOsfED4s/E/Ufi0vxg+O+ribx18cbDxhp/xR8Qf8IF4g+KGqfDO2bxRa+PPF9oNKtfBq6Lon9s7tB07TWsdOeyAP1EoAKAP/9P+/igD+X//AIOPv+CK/wC1N/wV/wD+GNT+zX4++AXggfs8/wDDRH/Caf8AC8vFPxG8M/2l/wALb/4UX/wjx8MnwD8KPij9sFn/AMKy8QHWf7X/ALDNn9s0X+zxqG++FgAfyT/tB/8ABo3/AMFIv2bfgF8cP2ivHPxq/Yh1TwR8AfhF8TPjT4y0vwp8Rvjxd+KdU8LfCzwZrnjnxBYeGLDV/wBmrQ9LvNeu9K0O9tdGtdV1rRdNu9RNnHfalY2Re9QA/Vz/AIMY/wDnKH/3ZT/79rQB+3f7ef8Awc9/sEf8E8P2sPiv+x58avhF+194l+J3wfHgf/hI9d+F/gL4Max4FvR4/wDht4Q+KWjDQNR8W/tAeBvEF0LbQPGWk2eqfbvDVgF1q1v7Oz+22S2V/dgH6P8A/BT3/gp58BP+CTvwG8IftFftF+Efi74x8EeM/i5ofwY0zTPgvofgzxF4qt/FfiLwb498cafe31h45+IPw50mHQV0r4c63a3d1a61e6h/aN5piLpjWUl9e2gAf8Ewv+CnnwE/4KxfAbxf+0V+zp4R+Lvg7wR4M+LmufBjU9M+NGh+DPDviq48V+HfBvgLxxqF7Y2Hgb4g/EbSZtBbSviNolraXV1rVlqH9o2epo2mLZR2N7dgH8o3jr/gmF8e/wDgjn/wVD/aB/4OEf2mvF3wi8dfsZ/D39p/9qL40a38NPgPrvjDxN+0/deFP20fEvxN+C3wu0/TPBXxA+H3ww+FFx4g0PxR+0X4FvvH1rd/Gex0/TdC07xXe+HtT8WX9louna4AfjF/wcff8FqP2Wf+Cv8A/wAMaj9mvwD8ffBB/Z5/4aI/4TT/AIXl4W+HPhn+0v8Ahbf/AAov/hHh4ZHgH4r/ABR+2Gz/AOFZeIBrP9r/ANhiz+2aL/Z51DffGwAP7eP+dWT/ALwB/wDwO6gD/Pq/4N6v+CnvwC/4JPftm/E79ov9ovwn8XvGPgrxj+zB42+C+laZ8GNC8GeIfFMXinxH8Vfgp45sdQ1Cx8dfEL4c6XBoS6V8OdXtbq6tNZvNQGoXumRppstk17e2AB8w/wDBZX9tT4Wf8FEf+Ckn7R/7YfwW0Lx/4Y+GHxgHwgbw3oPxQ03w9o3jqy/4V78Bfhh8MNY/t3TPCfijxzoFsbnXvBWsXOk/YfEmob9HutPur37FfPe6faAH92//ABGq/wDBLH/ogv7f3/hq/wBnb/6KqgD92v8AgmF/wU8+An/BWL4DeL/2iv2dPCPxd8HeCPBnxc1z4Manpnxo0PwZ4d8VXHivw74N8BeONQvbGw8DfEH4jaTNoLaV8RtEtbS6utastQ/tGz1NG0xbKOxvbsA5z/gsr+xX8U/+CiP/AATb/aP/AGPPgtrvgDwz8T/jAfhAvhvXvihqXiHRvAtl/wAK9+PXww+J2sHXdT8J+F/HOv2wutB8Faxa6T9h8N6hv1i5061vfsVi97qFoAfwlf8AEFT/AMFTP+i9/sA/+HV/aJ/+hRoA/ob/AGI/+DhH9jH9mrxX+yN/wRg8c/DP9p7VP2ovgHr/AMA/+CYHjHx34T8F/Cm++AWo/Hz4Wal4V/ZR1/xd4Z8Uax8bNB+Il38H7r4iaFeaxo3iHVfhZovja68EtY3+oeA7DXWfw+gB+3v/AAU9/wCCnnwE/wCCTvwG8IftFftF+Efi74x8EeM/i5ofwY0zTPgvofgzxF4qt/FfiLwb498cafe31h45+IPw50mHQV0r4c63a3d1a61e6h/aN5piLpjWUl9e2gB/FP8AtRf8EWP2o/8Ag4f+Onjn/gsR+xX4++AXwy/Zo/a+/wCEb/4Vp4H/AGo/FPxG8F/HXQj8AfB+hfsv+MR448L/AAo+FHxt8B6X/aPj74J+K9X8Nf8ACPfE7xSL7wnfaDqGo/2Hrl7qHh/QwA/Zd/4IsftR/wDBvB8dPA3/AAWI/bU8ffAL4m/s0fsg/wDCSf8ACy/A/wCy54p+I3jT4666fj94P139l/wcPA/hf4r/AAo+CXgPVP7O8ffGzwpq/iX/AISH4neFhY+E7HXtQ07+3NcstP8AD+uAH6/f8Rqv/BLH/ogv7f3/AIav9nb/AOiqoA+u/wBgz/g57/YI/wCCh/7WHwo/Y8+Cvwi/a+8NfE74wDxx/wAI5rvxQ8BfBjR/AtkPAHw28X/FLWRr+o+Ev2gPHPiC1FzoHg3VrPS/sPhq/Da1dWFnefYrJr2/tAD+kGgAoA//1P7+KAP5f/8Ag4+/4LUftTf8EgP+GNR+zX4B+AXjcftDf8NEf8Jp/wALy8LfEbxN/Zv/AAqT/hRf/CPDwyPAPxX+F32MXn/CzfEA1n+1/wC3DefY9F/s86fsvjfgH6+fCYH/AIKTf8EtfhoPjmD4VH7fX7APg7/hcR+Ev/EiXw1/w1P+zvprfED/AIVqPF58dHSTpH/Ceax/wh3/AAk//CajT/smn/263iHZeregHgP/AASn/wCCLH7Lf/BH/wD4Xz/wzT48+Pvjj/hoc/CweNv+F5eKvh14l/s0fCU/EQeHf+EY/wCEA+EvwwNob3/hZviE60dX/tv7Z9i0X7B/Z4jvRegHyB+3n/wbCfsEf8FD/wBrD4r/ALYfxq+Lv7X3hr4nfGAeB/8AhI9C+F/j34MaP4Fsh4A+G3hD4W6MdA07xb+z/wCOfEFqLnQPBuk3mqfbvEt+G1q6v7yz+xWTWVhaAH4DfsV/tqfFP/g7F+KWuf8ABOz/AIKJaD8Pvg18Ffgx4B1T9tXwz4n/AGLNK8Q/Dn4qX/xS+HGv+F/gdo2ga/rHx08U/tIeDrvwBd+F/wBo3xvfavpNl4I0bX7vX9P8K31p4rsdOsdZ0TXAD+xj/gmF/wAEw/gJ/wAEnfgN4v8A2df2dPF3xd8Y+CPGfxc1z4z6nqfxo1zwZ4i8VW/ivxF4N8BeB9QsrG/8DfD74c6TDoK6V8OdEurS1utFvdQ/tG81N21NrKSxsrQA+Iv+Do//AJQU/tyfX9mb/wBbC/Z+oA/yBqAP9pT9iL4K+Ff2k/8Agh1+yR+zp46v/EOleCfj/wD8Eo/gH8F/GOp+E7zT7PxRpnhX4qfsheFPAviC+8L3+s6Xruk2eu2ek67eXWjXer6PrdhaX62cl/pmoWYNi4B+M/8AxBVf8Esf+i9ft/f+HU/Z2/8AoVaAD/iCq/4JY/8ARev2/v8Aw6n7O3/0KtAB/wAQVX/BLH/ovX7f3/h1P2dv/oVaAP3a/wCCYX/BMP4Cf8EnfgN4v/Z1/Z08XfF3xj4I8Z/FzXPjPqep/GjXPBniLxVb+K/EXg3wF4H1Cysb/wADfD74c6TDoK6V8OdEurS1utFvdQ/tG81N21NrKSxsrQA/jG/bc/4O5P8AgpF+zd+2d+1z+zr4G+Cv7EOqeCfgD+1D8ffgt4O1TxX8Ofjxd+KdT8LfCv4q+K/A3h+/8UX2j/tKaJpV5r15pOh2d1rN1pWjaJp13qBvHsdNsbJlsUAPmD/iNW/4Kmf9EE/YB/8ADVftE/8A0V1AH6+/8OWf2Wf+GW/+Iiv/AIT74/f8Ntf8KB/4fT/8Kw/4Sj4d/wDDK/8Aw1N/wrj/AIbm/wCEC/4Qr/hVH/C2P+Gf/wDhbP8AxTv/AAjP/C7v+Fi/8K8/4kv/AAtf/hKf+KroA+Qv2K/21Pin/wAHYvxS1z/gnZ/wUS0H4ffBr4K/BjwDqn7avhnxP+xZpXiH4c/FS/8Ail8ONf8AC/wO0bQNf1j46eKf2kPB134Au/C/7Rvje+1fSbLwRo2v3ev6f4VvrTxXY6dY6zomuAHn/wC1F/wWn/aj/wCDeD46eOf+CO/7FfgH4BfE39mj9kH/AIRv/hWnjj9qPwt8RvGnx110/H7wfoX7UHjE+OPFHwo+K/wS8B6p/Z3j742eK9I8Nf8ACPfDHwsLHwnY6Dp+o/25rllqHiDXAD+nv/g6P/5QU/tyfX9mb/1sL9n6gD/IGoA/f/8A4NcP+U637Df0/aZ/9Y9/aBoA/wBfmgAoA//V/v4oA/gD/wCD5z/nF5/3et/76VQB/Qz4T8WeK/AP/Bsp4b8c+BfEniHwZ418F/8ABCfR/Fvg7xj4S1m/8O+KvCnirw7/AME/7bV9A8T+Gdf0e6tNV0HXfD+rWdpq+j6xpF7aX+n6hZ2l/YXq3iqyAH8tH/BuD/wX0+Hf7PA/bJP/AAVq/wCCg/x+8RDxf/wzwf2f/wDheesftS/tP/Y/7B/4XoPisfC40fQPi0fA/wBo/tz4c/20bz+wf+En2aJ5f9pf2A/2AA9B/bx8B/8ABeH/AIKX/tYfFf8Abb/4I0/G39r3xn/wTa+Nh8Cj9m7xH8Lv24Zf2XvAup/8K5+G3g/4TfF/+wfgZ8UPjv8ABLx74E+x/HjwF8U7LVV1n4aeGP8AhJ9bs7/xfp39uaLr9h4h1QA/KH4K/wDBvz/wcnfs1+K7/wAc/s5/A34v/AHxtqugXfhLU/GPwX/bi/Zy+FninUvC97qGlaxf+F7/AMQ+Bf2m9D1W70G81bQ9G1a70i7vTp11f6LpmoSWhvNOsigB/Tx/wTC/4KTT/wDBHP4CeLv2ZP8Ag4R/an+L3w9/bO8dfF7Xfjr8NNF+NXiX4z/to+Kbv9mHxL4P8B/D7wdqth8UPgxB+0T4X0DQLj4sfDH40Wlp4BvfGmm67YX1lqfiG+8KWNh4s03XNfAPIP8AgvP/AMF6P+CUH7aP/BKD9qr9mr9mn9qofEj41/EgfA5vBXgk/A79o/weNZ/4Q/8AaP8Ag74+8Q58Q+Pfg74W8Iab/Zvhbwt4g1bGr+IbD7Z9g+w2H26/vbLT7oA+Av8Agzc/ZP8A2Wv2n/8Ah40f2l/2a/gF+0J/wg//AAx+PBP/AAvL4N/Dn4tHwj/wky/tP/8ACQ/8IufH/hrXhoP9vf2B4dbWzo62X9snQ9G+3C6/s+yRQD8hf2sP2tv+CmNp/wAFSv2k/wBiL9jv9sP9r7wD4ft/2/vjH+yv+y1+zv8ACf8Aan+J3wf+FvgnR4v2h/EHwm+CHwX+Gvhiw+I3g/4Y/C/wF4Zsx4Z8DeD/AA7Zjwr4F8EaDZadp9kdD0HT0FkAf1sf8G937I3/AAXx+Af7Z/xN8Y/8FTfFf7T2v/s+6j+zF4z8N+DrP41ftueHv2k/CsPxjvPit8FdV8P3Gn+B9I+PPxRudK18eCtE+IgtfFz+HbOzsbB9S0P+3LZ9dWxvwD+eT/g43/4KEft7/A//AILMftk/C/4Lftw/tffB/wCGfhj/AIZ8/wCEa+HXwu/aV+M/w/8AAnh8az+yx8Edf1j/AIR/wh4R8aaVoGlHVNf1TV9Z1b7DY2n2/W9R1DUr4te3t29AHQf8G93/AAXQ1/4Bftm/E7xj/wAFTf8Agof+07r37P2pfsw+NPDfg6z+NXxD/af/AGk/CsXxku/it8FdU0C5sPAujJ8U7jS9fHgzSfiItt4uk8O2FtZWDaloo121bXlsdQAP09/4Ke+Ov+Cof/BYz4+eEf2m/wDg3u/aB/af+If7GHgb4Q6F8CviXrPwV/ah8T/sXeFbX9p/w34x8efEHxjpeofC74z/ABN/Z18Ua9r9v8KPih8F7u78f2fgzUND1GwvtM8P2XivUL/wnqWjaGAfgN/wRL+AOpeP/wDg4V+FP7P/AO3n8P8AQPjV42j+L/7aHhr9pzwJ8fYfC3x80/xT8ZfBPwK/aLvvG1z8QLrxDdeOvC/xJ1/TvizoFz4ifxfc3via11HxRYW3iux1vUbw2mpMAf6av/Dp7/gln/0jU/YC/wDEOv2dv/nb0AfHf/D5D/gib/wtP/h1x/wt7wB/wln/AAsH/hgb/hlH/hl343/8Kt/4SX/hIv8Ahnf/AIZ6/s//AIUZ/wAKQ/4QH+0/+Lc/Yv7V/wCFVf2B+7+3/wDCJ/6ZQB8gf8Fp/wDglt8XtJ/Zc8Azf8EKP2XPh/8AsyftdS/HzwrD8RPHv7Fc/wAEf2Gvinq/7OP/AArn4ot4v8I6/wDFnw/r/wAEbvX/AAHefE9fhBq+r/Dl/F1/aa1ruheFPER0G+k8JpqOigHwH+y5+0r/AMEcP2QfgV4E/Z4/4OAPDvwC8Xf8FcPh9/wkx/a01/8Aai/ZQ1/9uH476ifFXjHX/G/wHHjn9qDw38G/2gtE+J4tv2afEvwYsfDQsvi74qPgvwlZ+H/hzd/2FeeE7vwvooB+A/8AwQa/aw/ak/bg/wCCr/7Kv7L37an7Svx8/bA/Zm+Jw+OK/Ev9nf8Aai+MfxH+P/wJ+IX/AAhX7OHxh+IPg8eOfhD8WPEfi/wF4r/4RTx/4Q8J+OvDX/CR+HL/APsLxb4X0HxVposdb0TTb60AP7NP20/G3/Bsh/wTu+KOh/Bb9sP9mX9gL4QfE3xN4A034n6H4ZP/AATasPiF9t8C614h8U+EtM1v+2Phh+zV400C2+1a94L8S2J0m61e01lBp/22709LG+0+9vQA/YM/bf8A+Daj4v8A7V3wp+HX/BP/AMGfshaV+1v4gbxyfhLffC7/AIJ8eJ/gd47g/sn4b+MNd8fHQPifqX7NXgC08LG4+Gem+MbTVvtfi/RjrmiNqGgKdQk1NdNvwD+kKgAoA//W/v4oA/gD/wCD5z/nF5/3et/76VQB+/n/ADqyf94A/wD4HdQB/kD0Af1//wDBLv8A4OsB/wAE2f2Ffgb+xWP2Df8AhdA+C5+Jp/4WUP2n/wDhXQ8SD4i/GHx/8Wf+RP8A+GdvHn9knSv+E7/4R3P/AAkt/wDbf7OGpf6D9u/s+yAPv3/iOc/6xef+brf/AJJtAB/ww3/xGBf8bLP+Fo/8O8f+FI/8YNf8KW/4Qn/hrP8A4Sn/AIVn/wAX+/4Wh/wsb/hL/wBmr+xP7c/4aZ/4RH/hB/8AhA9b/s7/AIQf+3f+Erv/APhIP7F0AAP+IGP/AKyh/wDmlP8A+VlQAf8AKl7/ANZJv+Hkv/dnX/CmP+GOP/EpP+Fif8LH/wCGpv8AqR/+EU/4Qb/mav8AhKv+JAAfzD/snfHMftQf8F8P2af2lh4V/wCEHH7Q/wDwV8+Dnxz/AOEJ/tv/AIST/hED8Wv2zvD/AI/Hhf8A4SI6ZoP9vnQP7fOkf2wND0L+2DZrf/2Lp5l+xRAH+zpQB/ID/wAFRf8Ag1P/AOHk37dXxy/bUP7eI+Cx+NI+GQ/4Vr/wy+fiMfDh+HPwe8A/Cf8A5HH/AIaJ8Bf2t/av/CCf8JFgeGNPFkdQ/s7F8LH7degH8RH/AARY/wCCU3/D4H9qXx9+zQPjz/wzz/whHwC8U/HIeNh8Kx8Wv7S/4Rv4jfC3wCfDH/CPf8LF+GH2P7YPicNX/tv+27r7J/YpsP7Gf+0PttgAf08/8Nyf8Qfv/GtP/hV3/Dw7/hd3/Gcv/C6f+E2/4ZM/4Rb/AIWZ/wAWB/4Vf/wrn/hEP2lf7b/sP/hmb/hLv+E4/wCE80T+0f8AhOP7C/4RSw/4R/8AtrXwD7+/4Jd/8ENDrH7dPwP/AODgEftPi2/4am/4WZ+3L/wyafgr5/8Awgv/AA318IPH3ib/AIVgfjx/wthB4o/4VP8A8L6+x/8ACcj4OaB/wnB8Jfa/+ES8IjXTZ6CAff3/AAXM/wCC5n/Dl/8A4ZeA/Ze/4aTH7Sf/AAuzA/4XYfg9/wAIX/wp4/CXPzH4S/FD+3/+Eg/4Wj6aJ/Yv9hf8xEaiFsgD/MK/4bl/42l/8PLf+FX/APN/v/Dcv/Cl/wDhNR1/4aJ/4X//AMKv/wCFjf8ACH5/6lH/AITn/hBP+o9/wieP+JHQB/Xz/wARzn/WLz/zdb/8k2gD+Qn/AIKi/tzD/gpN+3V8cf21R8Lj8GD8aB8NC3w2PjZviP8A8I1/wrn4P+AfhOP+KxXwf4D/ALW/tceBP+EiIPhfTv7POof2cTqH2EX92Af17f8ADjT/AIhsP+N1H/DUP/DZ/wDwxnz/AMM1/wDCkv8AhnX/AIWR/wANFf8AGJ//ACWH/hbnx2/4Q3/hDf8Ahe3/AAnn/JKvFX9v/wDCL/8ACK/8SP8Atz+39NAP5hv+C0//AAVZ/wCHwP7UvgH9pc/Ab/hnn/hCPgF4W+Bp8En4qD4tf2l/wjfxG+KXj4eJ/wDhIf8AhXXww+x/bB8TjpH9if2JdfZP7FF//bL/ANofYrAA/r3/AOCBf/BuCf2d/iH/AME+f+CtI/bJ/wCEwPiH4AaR8dP+FAj9ngaAbP8A4ag/ZY13Rv8AhFh8Vj8btc+0f8IL/wALb+1/2yPhzH/wlH9gBP7F0A6j5mngH9v1ABQB/9f+/igD8/v25f8Ah1n/AMWv/wCHlv8AwwF/zO3/AApb/hub/hnXp/xSH/Cx/wDhV/8Awv7jOP8AhA/+E5/4RLn/AJFH+3uf7FoA89/4eDf8EYP+FWf8KM/4bf8A+CYf/Ckv+EA/4VR/wpv/AIaX/ZS/4VZ/wqz/AIR//hD/APhWv/Cv/wDhMf8AhFv+EB/4RX/imv8AhD/7I/sH+wf+JJ/Z/wDZ3+hUAfIX/HLJ/wBYA/8AzndQAf8AHLJ/1gD/APOd1AB/xyyf9YA//Od1AH6d/sV/8MCf8Ku1z/h3V/wyD/wpP/hYGrf8JN/wxV/wpn/hVf8AwtP/AIR7wp/bX/CQf8KN/wCKU/4T7/hFP+EF/tX7d/xUH9gf8Ip9u/4l39jUAf5d/wC3H+23/wAFcfGn/BVv9uj9nX9lv9rn/go14r1i1/be/bB8JfCn4D/AP4+ftMa/qNn4W8BfGD4n3Nv4a+H3ww+H/i66urfQvB3gvw9eXMejeG9GFh4e8LaJdSLZ2Wiac5QA+YPjp+yf/wAF8f2oB4WH7S/7NH/BXr9of/hBhrY8E/8AC8/g5+2b8Wh4QPiT+yf+Eh/4Rj/hP/DevHQW1/8AsHRBrS6SbP8AtltD0X7f9q/s6x2AH+gl4T/4JlfAPwF/wQ58NeOfAv8AwT8+EPg3/god4L/4JSaN4t8HeMfCP7KXgnw7+2h4W/bQ8Ofsg22r+H/EvhnX9H8B2fxv0H9p3QPjfZ2er6PrOj3tp8VdP+KlnZ39jep4tRHoA/gN+NX7Qv8AwcL/ALNfhax8dftF/G3/AILOfAPwTquu2nhHSvGPxr+JH7b/AMLPC2oeKr7TdU1ix8M6d4g8ca7oOlXPiC60vQda1az0e1vGv7yw0TUL5LI2en3rqAf3qf8ABBj/AIKwfsuD/gk/+yt/w2r/AMFKvgF/w0x/xfP/AIWV/wANRftjfDcfHf8A5OP+MP8Awh3/AAm//C2fiN/wnp/4oI+Eh4aPiLn/AIRP+wjp+dDOmrQB+Uf/AAcI/tCf8E3v2av2Mfhl46/4IwfHH9iD4B/tRar+0/4M8J+O/GP/AATB+JXwJ+Fnx71L4BX3wp+NmseKPDPi7X/2Udc0L4i3fwfuviJoXws1bxFo2r3beCrrxtovgLUNQsm13T/D0kQAf8G937Qn/BN79pX9jH4m+Ov+Cz/xx/Yg+Pn7UWlftP8AjPwn4E8Y/wDBT74lfAn4p/HvTfgFY/Cn4J6x4X8M+Edf/au1zXfiLafB+1+Imu/FPVvDujaRdr4KtfG2tePdQ0+yXXdQ8QySgH84/wC0T+25/wAFH/Gn/BQr9p/9nP8A4J0/tc/tveLfhTZ/tP8A7R/hT9kj4FfsV/Hz48a78PLT4BeA/Hvjqf4beGf2cvhf8DfGFx4Zg+D3g34OaBZ3XgXSPhton/CFaB8N9BsToFnZeFNNR4gD4e/bm/4emf8AFr/+Hlv/AA37/wAzr/wpb/hub/horrjwf/wsf/hV/wDwv7nr/wAIH/wnP/CI9/8AhEv7e+X+xaAP9PT/AIJ7f8E+P+CWn/DrX9h/46fHP9h/9gJt37AX7NXxZ+MXxj+LP7NP7O3y/wDGO3gzxh8QPiR8SfiD4w8FqAABq/ibxj4x8TauT/x/65rt+2by9oA9d+Cv7PX/AAb0ftKeKb/wL+zp8Ev+CMnx88baVoV34u1Xwd8FPhv+xB8U/FOn+FbHUtL0e+8Taj4f8D6Fr2q23h+11TXtF0m81i6s1sLO/wBb06xe9F5qFkjAH+bZ/wAHG3wo+FXwP/4LMftkfC/4L/DX4f8Awf8Ahl4Z/wCGff8AhGvh18LvBvh74f8AgPw9/bH7LHwQ17WR4f8ACHhHTdK0DSjquv6pq2tar9gsLT7dreoajqV6Wvr67ZgDgf2pP+H+P/Ci/HP/AA2p/wAPfP8Ahmf/AIpr/hZf/DUX/DaH/CiP+Rw0D/hD/wDhOf8AhbP/ABQX/I9/8In/AMIz/wAJD/zN39g/2b/xPP7OoA+JPgt+xN+2d+0r4WvfHP7Ov7In7T3x88E6Tr114R1Txl8E/gF8V/in4V07xTZadpms6h4Z1DxD4H8I69pVr4gtNK13Q9VvdGurtNQtLDWtOv2tFtNQsnYA/q3/AODe3wj/AMFxvAP/AAU0/Yu8C/tN+G/+CrXgz9i/wZoHxY8J6z4M+O2jftfeHf2YPCnhbw5+y/8AFnRvhf4Z1Pw/4/gtPhToOgaD4otPBeleAdFvLSz03T9es/C1l4etItRTR41AP9JmgAoA/9D+/igD+AP/AIPnP+cXn/d63/vpVAH5R/s+f8Gjf/BSL9pL4BfA/wDaK8DfGr9iHS/BHx++EXwz+NPg3S/FfxG+PFp4p0vwt8U/Bmh+OfD9h4nsNI/Zq1zS7PXrTStcsrXWbXSta1rTbTUReR2OpX1kEvXAPXv+IKn/AIKmf9F7/YB/8Or+0T/9CjQAf8QVP/BUz/ovf7AP/h1f2if/AKFGgD85P+Cnv/BvV+2d/wAEm/gH4R/aJ/aL+J37MHjPwV4y+Luh/BjTNL+DHjX4q+IvE8HinxF4N8feObG+vrLxz8FPhxpcGhjSvhxrNpc3VrrN7qH9oXemoumtZSXt7YAH9jP/AAZVf8osfj3/ANn/AHxT/wDWdv2VqAPiDx1/wTC+Pf8AwRz/AOCof7QP/Bwj+014u+EXjr9jP4e/tP8A7UXxo1v4afAfXfGHib9p+68Kfto+Jfib8Fvhdp+meCviB8Pvhh8KLjxBofij9ovwLfePrW7+M9jp+m6Fp3iu98Pan4sv7LRdO1wA+3/+I1X/AIJY/wDRBf2/v/DV/s7f/RVUAf0b/wDDavwv/wCGBv8Ah4n/AGD8Qf8AhSf/AAyF/wANr/8ACM/2T4d/4Wl/wqv/AIUz/wALx/4R/wDsb/hK/wDhDv8AhP8A/hE/9A/sn/hPP7A/t/8A0P8A4Sr+zv8AidUAf59X/Bwj/wAHCX7GP/BWb9jH4Z/s6/s6fDP9pzwV408GftO+C/jVquqfGvwX8KPDXhafwt4a+E/xr8EX2n6dfeBvjZ8RtVuPEEmq/EfRbqzs7nRrKwaxtNSZ9SS7Szs78A+Iv2DP+DYT9vf/AIKH/sn/AAo/bD+Cvxd/ZB8NfDH4wHxx/wAI5oXxQ8e/GfR/HVkfAHxJ8X/C3WTr+neEv2f/ABz4ftTc6/4N1a80v7D4lvy2i3VheXn2K9a9sLQA/OH/AIJhf8Ew/j3/AMFYvjz4v/Z1/Z08XfCLwd438GfCPXPjPqep/GjXPGfh3wrceFPDvjLwF4H1Cysb/wADfD74jatNrzar8RtEurS1utFstP8A7Os9TdtTW9jsbK7AP3b/AOIKn/gqZ/0Xv9gH/wAOr+0T/wDQo0AflL/wTu+NPhb/AIIt/wDBaHw946/aistf8e6T+xJ8Xf2qfgv8VbX4BWth4o1LXfFWmfDn42fs7T33gC3+IupfCm11TQT4z1u01VLvxLd+FL9vCq3d82nJrSroTgH25/wcff8ABaj9ln/gr/8A8Maj9mvwD8ffBB/Z5/4aI/4TT/heXhb4c+Gf7S/4W3/wov8A4R4eGR4B+K/xR+2Gz/4Vl4gGs/2v/YYs/tmi/wBnnUN98bAA/vV/Z6+Cviv9pX/g3n+CX7OngW/0LSvG3x8/4Ix/DT4KeDdV8XXWo2HhXTvFPxT/AGIND8D+H9Q8S32j6Zr2q2vh+11TXrK51m80nQ9b1C0sFvHsbHULxUs3APyE/wCDe7/g3t/bO/4JM/tnfEz9or9ov4mfsx+NfBfjP9mLxn8FdK0v4KeM/it4k8UQeKfEnxY+Cfjex1DUbHxx8E/hzpVvoEek/DjWrW8vbbWb3UFv7vTgumvaSXd5YAH8kn/B0f8A8p1v25Pp+zN/6x7+z9QB/paf8Flf2K/in/wUR/4Jt/tH/sefBbXfAHhn4n/GA/CBfDevfFDUvEOjeBbL/hXvx6+GHxO1g67qfhPwv451+2F1oPgrWLXSfsPhvUN+sXOnWt79isXvdQtAD5h/4N6v+CYXx9/4JPfsZfE/9nT9ovxb8IfGPjXxj+0/42+NGlan8GNd8Z+IfCsXhbxH8Kvgp4GsdP1C+8dfD74c6pBrqap8OdYurm1tNGvNPGn3umyJqUl617ZWQB+8dABQAUAf/9H+/igD+AP/AIPnP+cXn/d63/vpVAH9HPwo+Kfjv4H/APBt98NvjT8Lde/4Rf4m/B//AIIieDvin8OvEf8AZuk61/wjvjz4f/sIad4v8Ia6NH8Q6Xqnh/VRpWv6VY339k61pWpaLf8A2M2Oo6deWD3Vm4B/nk/8RRn/AAXX/wCj4z/4jR+x/wD/AEPtAB/xFGf8F1/+j4z/AOI0fsf/AP0PtAH9fv8Aweq/8osfgJ/2f98LP/Wdv2qaAD/gyq/5RY/Hv/s/74p/+s7fsrUAfyif8Fqf+Cy3/BST4v8A7Qn/AAUY/wCCf/xG/aOHiH9kfR/2vfjf8L7D4SH4QfAjSfI8DfA79pfVdQ+F+gDx9oPwv0z4m3K+F7vwH4Quzqt34yfW9b/sUDX9R1Nb7UEvwD69/wCDU/8A4JdfsKf8FJf+G8f+G1fgaPjT/wAKXH7Lx+GuPib8YPhz/wAI3/wsX/hor/hMQP8AhU/xD8CDVjrH/CBeE8HxENROn/2d/wAS0WX2+++2gH92/wDwUI+F/gb4Gf8ABGT9t/4KfC7Qv+EY+GXwg/4JhftLfDD4c+Gv7U1rWv8AhHPAnw+/ZS8ZeEvB+gHWfEOo6truqjSdA0mxsTqutavf6zf/AGUXepX1/eveXrgH+cX/AMGwn7B37KH/AAUP/b3+LnwV/bE+FLfF/wCGPhn9kLx78UNB8N/8J18Sfh/9j8daP8Z/2f8Awlp2vnWPhb4w8GeILo2vh/xp4lsv7LvNVu9EY6h9ru9Pa9sbG9tAD6//AOCon/BUT9uv/gjD+3V8cv8Agmn/AME0vjf/AMM2/sTfs2n4ZH4K/BU/DT4P/GH/AIQz/hcHwf8AAPx++I//ABcb4+/Dz4o/FvX/APhIPiz8UfHfi/8A4q/x5rw0ca5/YmhLp3hbTtF0PTQD+cX9ir9vL9q//gnh8U9e+NP7HXxX/wCFQfEzxN8P9U+GOueI28DfDbx/9t8C6z4h8LeL9Q0E6R8UfB3jPQbc3Wv+DfDN4dWs9Itdaj/s82VjqAsb6/tL8A/08f8Ag2E/bx/av/4KH/sEfFz41ftifFYfF/4neGf2vvHvwv0HxJ/wgvw2+H/2PwLo/wAGP2f/ABbp2gHR/hb4P8GeH7oWviDxp4lvf7UvNKu9bYah9ku9QaysbGytAD3/AOLH/BuR/wAEZvjh8VviT8afij+xwPE/xN+L/j/xl8UfiL4kH7QX7VOj/wDCQ+O/iB4h1Lxf4v186N4e+N2l+HtL/tTxBqt/f/2Vo+laboth9r+xadp1nYLaWaAH8Y//AAdYf8Euv2FP+CbX/DB3/DFXwNHwW/4XQP2oT8Ss/E34wfEb/hJP+Fdf8M6/8IcD/wALY+IfjsaSdH/4T3xZk+HRpx1D+0f+JkL37BY/YgD8w/hP/wAHG/8AwWZ+B/wp+G3wW+F37Y58MfDL4QeAPBvwu+HXhs/s+/srax/wj3gT4f8Ah7TfCHhDQBrPiH4I6p4h1T+y/D+lWFh/ausarqWtX/2T7bqOo3l+13eOAd7/AMRRn/Bdf/o+M/8AiNH7H/8A9D7QB+RH7Uf7Ufx1/bR+Ovjn9pX9pjxwPiV8bPiQPDI8beNx4b8IeEBrA8H+D9B8AeHj/wAI98P/AA/4W8IaX/ZvhXwv4e0j/iT+HbD7d9hF/ffbNQvL29vQD9d/+Ioz/guv/wBHxn/xGj9j/wD+h9oAP+Ioz/guv/0fGf8AxGj9j/8A+h9oA/X/AP4IMf8ABej/AIKv/to/8FX/ANlX9mr9pb9qo/Ej4KfEg/HFvGvgkfA79nDwedZ/4Q/9nD4xePvD2PEPgL4O+FvF+m/2b4p8LeH9WxpHiGw+2fYPsN/9usL290+6AP8AR6oAKAP/0v7+KAP4A/8Ag+c/5xef93rf++lUAfv5/wA6sn/eAP8A+B3UAf5A9ABQB/p+f8Hqv/KLH4Cf9n/fCz/1nb9qmgA/4Mqv+UWPx7/7P++Kf/rO37K1AH8wn7PH7UXwK/Yv/wCDqn9oD9pX9pfx1/wrb4KfDf8Ab9/4Kdf8Jv41Hhvxh4vOijxjB+1P4A8PAeHfh/oHirxdqX9peK/FPh7SP+JR4ev/ALF9ua/vfsWn2V7fWoB77/wdYf8ABUX9hT/gpL/wwd/wxV8ch8af+FLj9qEfErPwy+MHw5/4Rv8A4WL/AMM6/wDCHE/8LY+HngQasdY/4QLxZkeHTqJ0/wDs7/iZGy+32P20A/o5/wCCe3/Bxv8A8EZvgf8AsE/sO/BX4pftj/8ACMfE74P/ALIH7Nfwu+Inhv8A4Z9/ao1j/hHvHfw/+DHgrwj4v0A6x4e+COqeH9U/srX9Kv7D+1dH1TUtFvzZ/btO1G7sHs7pgD9ff2K/+Cyv/BNv/goj8Utd+C37Hn7R5+MHxN8NeAdS+KOu+Gx8IPjz8PRZeBtE8Q+F/Cep67/bHxP+F3gnQLk2+v8AjPw3YDSbXV7zWpP7Q+22ti9jY6je2QB+olAH+Gb+xV+wb+1f/wAFD/inr3wW/Y6+FH/C3/iZ4Z+H+qfE7XPDjeOfht4A+xeBdG8Q+FvCGoa8dX+KPjHwZoNwbXX/ABl4ZszpNnq91rUn9oG9sdPNjY393YAH92n/AARY/ag+BP8AwbwfsteP/wBiz/gsR45/4ZB/aX+J/wAffFH7Ufgf4ajw14u+P39u/Anxp8Ofhb8KPDHjkeMP2XNA+NvgPTP7U8efBP4oeHv+EZ1bxZY+LbAeFhqeo6BZ6Hrvh7UdaAP7N/hT8UfAnxx+Fvw1+Nnwu10+J/hj8Xvh94Q+KHw68SDTNa0Y+JPAnxB8PaX4u8Ia9/Y3iDTtI17S/wC1tA1Wxvf7J1vR7HWrEXQtNRsdPvVurNAD+Er/AIPnP+cXn/d63/vpVAH6+f8ABJ//AILz/wDBJ8fst/8ABNX9ir/hqn/jJj/hQX7HH7Lv/Ctf+FG/tH/8l3Hw3+HPwn/4Qj/hMT8HT4C/5H3/AIp0eJT4u/4RL/mIf28dE/4mVAH7dftq/t5fsof8E8PhZoPxp/bF+K//AAqD4Z+JviBpfwx0PxGvgb4k+P8A7b471nw94p8X6doP9kfC7wb4y163+1aD4N8TXg1W80m10VP7PWyvtQF9fWFnegH5j/8AEUb/AMEKf+j5P/Naf2wP/ofaAE/4Oj/+UFP7cn1/Zm/9bC/Z+oA/yBqAP7Pv+DcH/gjV/wAFI/g9/wAFDP2Cv+CgPxF/ZuPh/wDZF1f4f/ED4n6f8WT8X/gTrLT+BPjj+yV8UdP+F+vjwD4f+KGqfE23/wCEouvHvhC1GlXXg0azon9shtf0/TUstQfTwD/S6oAKAP/T/v4oA/gD/wCD5z/nF5/3et/76VQB/Ux+xF8FfCv7Sf8AwQ6/ZI/Z08dX/iHSvBPx/wD+CUfwD+C/jHU/Cd5p9n4o0zwr8VP2QvCngXxBfeF7/WdL13SbPXbPSddvLrRrvV9H1uwtL9bOS/0zULMGxcA/Gf8A4gqv+CWP/Rev2/v/AA6n7O3/ANCrQAf8QVX/AASx/wCi9ft/f+HU/Z2/+hVoAP8Ag9V/5RY/AT/s/wC+Fn/rO37VNAB/wZVf8osfj3/2f98U/wD1nb9lagD+AT/grH/ylM/4KWf9n/8A7Y3/AK0R8R6AP1//AODcH/giv+yz/wAFf/8Ahso/tKePvj74IP7PP/DO/wDwhf8Awo3xT8OfDP8AaX/C2/8Ahen/AAkJ8THx98KPij9sNn/wrLw+dG/sj+wxZ/bNa/tAahvsRYAH5h/8MWfCr/h89/w7p/t7x/8A8KU/4ee/8MVf8JT/AGj4e/4Wp/wq3/hqv/hR39vf23/wi/8AwiH/AAnv/CL/AOm/2v8A8IL/AMI//b/+nf8ACIf2d/xJKAP9NH/gmF/wb1fsY/8ABJv4+eLv2if2dPid+0/4z8a+MvhFrnwY1PS/jP41+FXiLwxB4W8ReMvAPjm+vrGy8DfBT4capBrg1X4caNaW11daze6f/Z93qSNprXslle2AB+Ev/BZf/g56/b4/4J3/APBSP9o/9jv4LfCT9kPxR8Mvg+3wg/4RvX/ij4D+M+s+O70+P/gT8LfinrA17UvCP7QHgbw/dfZte8ZatZaV9i8NWJXRLXTrO9+3Xy3uo3YB+7X/AATC/wCDer9jH/gk38fPF37RP7OnxO/af8Z+NfGXwi1z4Manpfxn8a/CrxF4Yg8LeIvGXgHxzfX1jZeBvgp8ONUg1war8ONGtLa6utZvdP8A7Pu9SRtNa9ksr2wAD/gp7/wb1fsY/wDBWT4+eEf2if2i/id+0/4M8a+DfhFofwY0zS/gx41+FXh3wxP4W8O+MvH3jmxvr6y8c/BT4j6pPrh1X4j6zaXN1a6zZaf/AGfaaai6at7He3t+Afr5+z98FPC37NvwE+B37OfgXUPEOq+CfgD8Ifhl8F/B2qeK7zT7zxTqXhX4V+DdD8C+H9Q8UX2j6XoOk3mu3Wk6DZ3esXWlaPothe6gbxrHS9PsytkgB+cn/BVj/gix+y3/AMFgP+FDf8NLePPj74H/AOGeD8Ux4J/4Ub4q+HXhr+0h8Wj8Ox4i/wCEn/4T/wCEvxPN2bL/AIVl4eOinSP7E+x/bda+3/2gJLIWQB/mWfs9fBXwr+zV/wAHDHwS/Z18C3+u6r4J+Af/AAWc+GvwU8G6r4uutNv/ABVqPhb4Wftv6F4H8P6h4lvtI0zQdKuvEF1pWg2dzrF5pGiaJp95fvePYWGn2ZSzQA/tZ/4PVf8AlFj8BP8As/74Wf8ArO37VNAH+YHQB/uZft5fsVfCv/gof+yh8Vv2OvjVr3xA8M/DL4wf8IMfEmufDDVPD+jeO7H/AIQD4k+D/ijo50DUPF3hbxvoNsLjxB4N0qz1Q3nhi/3aJd31lZfYr9rW/sgD/Kw/4OFf+CYXwC/4JPftm/DH9nT9nTxZ8XvGPgrxj+zB4J+NGq6n8Z9d8GeIfFMXinxH8VfjX4GvtP0++8C/D34c6XBoS6V8OdIurW1u9GvNQGoXupyPqUtk1lZWAB/qLf8ABJ3/AJRZ/wDBNX/swL9jn/1nf4c0Aff9ABQB/9T+/igD+QL/AIOsP+CXP7dn/BSX/hg7/hir4Gn40f8ACl2/ahPxKB+Jnwe+HP8Awjn/AAsX/hnT/hDgf+FsfEPwIdX/ALX/AOED8WZ/4R3+0Bp407/iZfYhfWP20A/nl8J/8Eqv+DvTwB4T8N+BvA3iH9t7wX4K8F+H9G8JeDvB3hP/AIKjfDfw54W8KeFfDlhbaPoHhnwzoGkftfWelaDoWg6VaWekaNpGkWVpp2nWFnZ2On2aWaBEAN3/AIdqf8Hkf/RRf2/v/Fsfgj/6MegA/wCHan/B5H/0UX9v7/xbH4I/+jHoA8i+Nf8AwRR/4OoP2lPCth4F/aL8L/tP/HzwTpWvWnizSfB3xr/4KJ/BL4qeFdP8V2On6no9h4m0/QPG37VWv6Vaa/a6Vr+taTa6zbWaX1lp2t6hYi8Syvr1HAP7Fv8Ag2E/YO/av/4J4fsEfFz4K/tifCkfCD4neJv2vvHvxQ0Hw3/wnXw2+IH2zwLrHwY/Z/8ACWna+dY+FvjDxn4ftRdeIPBfiWy/su81W01tRp/2u709bK+sb27AP5Cf+ChP/BuR/wAFmfjh+3t+3F8afhb+xwfE/wAMfi/+1/8AtKfFH4d+JD+0F+yvo/8AwkPgT4g/Gfxr4v8ACOvjR/EPxu0vxBpf9q6Bqthf/wBlaxpem61YC8+xajp9pfpd2qgH9HX/AAan/wDBLn9uz/gm1/w3j/w2r8DT8F/+F0N+y8fhqB8TPg98Rv8AhI/+Fdf8NF/8JiB/wqf4h+OzpH9kf8J54Tx/wkX9njUBqP8AxLftosb77EAfkF/w4Z/4Kwf8P7/+G1v+GVf+MZ/+Hvf/AA1H/wALK/4Xj+zd/wAkH/4bR/4Wx/wnH/CHf8Li/wCE9z/wgP8AxUP/AAjX/CIf8Jb/AMw/+wP7b/4ltAH+j1QB8cfFD/gn1+wP8c/HWu/FL40fsP8A7IHxg+Jvic6cPEnxF+KH7NfwY+IHjrxD/Yuk6b4e0b+3/F/i/wAFatr+rf2VoGlaRo2lfb7+6Fjoun6fptiqWNjZpQB/nmf8O1P+DyP/AKKL+39/4tj8Ef8A0Y9AB/w7U/4PI/8Aoov7f3/i2PwR/wDRj0AH/DtT/g8j/wCii/t/f+LY/BH/ANGPQB/Tz/wbg/s1/wDBY/8AZ3P7ZI/4K1eJPj94i/4S/wD4Z4/4Z/8A+F5ftXaF+1B9j/sL/heh+K3/AAizaN8ZfiwPAxuRrvw4/tr7Z/YJ8T7NE8v+0v7CcaeAfo3+21/wTT/Zs8Z/AP8Aa7+If7O37FH7MFl+3b4s+EPx88ZfAn42+FPgp8EfAfx+s/2udd8G+KtZ+GPxT8M/Hq50Pw94l8G/GK3+Mlzovi/Rvi9c+OdB1vQPGws/F7eLNOv7NtbQA/np/wCCLP8AwTA/4K7at+1N48tf+C7Hw9+IH7TX7JCfALxVP8OvAP7af7SHwq/bm+FekftGj4jfC1fCPi7QfhP4g+MXxus9A8e2fwwb4vaPpPxFXwlYXmjaFr3ivw6Ndso/Fsmn60AfmD/wWV/4Nwf+Chnxh/4KR/tI/EX/AIJ/fsFfD/SP2RfEJ+EB+E2nfDD4gfslfA3wJA2jfAn4X+H/AB8NA+F+ofFLwFdeF/tHxN0vxjdaqLrwfo39t6y2oa+gvk1NNRvQDz//AIdqf8Hkf/RRf2/v/Fsfgj/6MegD+nj/AIIsf8Etvi9q37Lnj6b/AILr/sufD/8Aab/a6i+PniqH4d+Pf21J/gj+3L8U9I/Zx/4Vz8Lm8IeEdA+LPiDX/jdd6B4Ds/ie3xf1fSPhyni6wtNF13XfFfiIaDYyeLH1HWgD+lrwn4U8LeAfC/hvwN4G8NaF4L8D+C9C0fwn4O8HeE9I07w34V8KeFfDWnWuj+HvDPhnw9o9pa6Xofh7Q9LtbPSdG0fSbOysNPsLKzsbGyjs0RaAOooAKAP/1f7+KACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoA/9b+/igAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKAP/Z" - webUI["html/css/base.css"] = "KiB7CiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lOwogIC1tb3otYXBwZWFyYW5jZTogbm9uZTsKICAtbXMtYXBwZWFyYW5jZTogbm9uZTsKICBmb250LWZhbWlseTogIkFyaWFsIiwgc2Fucy1zZXJpZjsKICBsZXR0ZXItc3BhY2luZzogMnB4OyAKfQoKLyoKOjotd2Via2l0LXNjcm9sbGJhciB7IAogICAgZGlzcGxheTogbm9uZTsgCn0KKi8KCjo6LXdlYmtpdC1zY3JvbGxiYXIgewogIHdpZHRoOiAxMnB4OwogIGhlaWdodDogMTJweDsKfQoKIAo6Oi13ZWJraXQtc2Nyb2xsYmFyLXRyYWNrIHsKICAtd2Via2l0LWJveC1zaGFkb3c6IGluc2V0IDAgMCA2cHggcmdiYSgwLDAsMCwwLjMpOyAKICBib3JkZXItcmFkaXVzOiA1cHg7CiAgICAKfQogCjo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWIgewogIGJvcmRlci1yYWRpdXM6IDVweDsKICAtd2Via2l0LWJveC1zaGFkb3c6IGluc2V0IDAgMCA2cHggcmdiYSgwLCAwLCAwLDAuNik7IAogIGJhY2tncm91bmQtY29sb3I6ICM0NDQ7Cn0KCjo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWI6aG92ZXIgewogIGJhY2tncm91bmQ6ICMzMzM7IAp9Cgo6Oi13ZWJraXQtc2Nyb2xsYmFyLWNvcm5lciB7IAogIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OyAKfQoKYSB7CiAgY29sb3I6ICMwMEU2RkY7Cn0KCmh0bWwsIGJvZHkgewogIGNvbG9yOiAjZmZmOwogIG1hcmdpbjogMHB4IGF1dG87CiAgaGVpZ2h0OiAxMDAlOwogIGZvbnQtc2l6ZTogMTRweDsKfQoKaDIgewogIGZvbnQtc2l6ZTogMjRweDsKICBsZXR0ZXItc3BhY2luZzogMnB4Owp9CgpoMyB7CiAgZm9udC1zaXplOiAyMnB4OwogIGxldHRlci1zcGFjaW5nOiAxcHg7Cn0KCmg0IHsKICBmb250LXNpemU6IDIwcHg7CiAgbGV0dGVyLXNwYWNpbmc6IDFweDsKICBsaW5lLWhlaWdodDogMS41ZW07Cgp9CgpoNSB7CiAgZm9udC1zaXplOiAxNnB4OwogIGxldHRlci1zcGFjaW5nOiAxcHg7CiAgbGluZS1oZWlnaHQ6IDEuMmVtOwogIG1hcmdpbjogMjVweCAwcHggMTBweCAwcHg7Cn0KCmhyIHsKICBib3JkZXI6IDA7CiAgaGVpZ2h0OiAxcHg7CiAgYmFja2dyb3VuZDogIzMzMzsKICBtYXJnaW46IDEwcHggMHB4Owp9CgpwIHsKICBtYXJnaW46IDJweDsKICBwYWRkaW5nOiAycHggNXB4Owp9CgpwcmUgewogIG1hcmdpbjogMHB4IDBweCA1cHggMHB4OwogIGZvbnQtc2l6ZTogMTJweDsKICBjb2xvcjogI2RkZDsKICBsZXR0ZXItc3BhY2luZzogMXB4OwogIHdoaXRlLXNwYWNlOiBwcmUtd3JhcDsKICBmb250LWZhbWlseTogbW9ub3NwYWNlOyAKICBmb250LXNpemU6IDEycHg7IAogIGZvbnQtc3R5bGU6IG5vcm1hbDsgCiAgZm9udC12YXJpYW50OiBub3JtYWw7IAogIGxpbmUtaGVpZ2h0OiAxLjZlbTsgCn0KCmxhYmVsIHsKICBtYXJnaW4tYm90dG9tOiAyMHB4OwogIGRpc3BsYXk6IGJsb2NrOwp9CgpsaSB7CiAgbGlzdC1zdHlsZS10eXBlOiBub25lOwogIGJhY2tncm91bmQtY29sb3I6ICMxMTE7CiAgcGFkZGluZzogMTBweCAyMHB4OwogIGN1cnNvcjogcG9pbnRlcjsKICBib3JkZXItbGVmdDogc29saWQgMnB4ICMxMTE7CiAgdHJhbnNpdGlvbjogYWxsIDAuMzsKfQoKbGk6aG92ZXIgewogIGJvcmRlci1jb2xvcjogIzAwRTZGRgp9CgpzZWxlY3QgewogIGN1cnNvcjogcG9pbnRlcjsKICB3aWR0aDogY2FsYygxMDAlICsgMnB4KTsKICBib3JkZXI6IHNvbGlkIDBweCAjMDBFNkZGOwogIGJvcmRlci1yYWRpdXM6IDBweDsKICBvdXRsaW5lOiBub25lOwogIGNvbG9yOiAjZmZmOwogIHBhZGRpbmc6IDlweCAxMHB4OwogIGRpc3BsYXk6YmxvY2s7CiAgYmFja2dyb3VuZC1jb2xvcjogIzMzMzsKICBmb250LXNpemU6IDE0cHg7CiAgbWFyZ2luOiA1cHggMHB4IDVweCAwcHg7Cn0KCnNlbGVjdDpmb2N1cyB7CiAgb3V0bGluZTogbm9uZTsKfQoKaW5wdXQgewogIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTsKICBtYXJnaW46IDVweCAwcHg7CiAgcGFkZGluZzogMi41cHggMTBweDsKICBvdXRsaW5lOiBub25lOwogIGZvbnQtc2l6ZTogMTRweDsKfQoKaW5wdXRbdHlwZT1idXR0b25dLCBpbnB1dFt0eXBlPXN1Ym1pdF0gewogIGN1cnNvcjogcG9pbnRlcjsKICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDAwOwogIG1hcmdpbjogMTBweCAxMHB4OwogIHBhZGRpbmc6IDEwcHggMjVweDsKICBib3JkZXI6IHNvbGlkIDBweDsKICBib3JkZXItY29sb3I6ICMwMDA7CiAgYm9yZGVyLXJhZGl1czogM3B4OwogIG91dGxpbmU6IG5vbmU7CiAgY29sb3I6ICNmZmY7Cn0KCmlucHV0W3R5cGU9YnV0dG9uXTpmb2N1cyB7IAogICBvdXRsaW5lOiBub25lOwp9CgppbnB1dFt0eXBlPWJ1dHRvbl06aG92ZXIgewogIGJhY2tncm91bmQtY29sb3I6ICMwMEU2RkY7CiAgY29sb3I6ICMwMDA7Cn0KCmlucHV0W3R5cGU9YnV0dG9uXTpob3Zlci5kZWxldGUgIHsKICBiYWNrZ3JvdW5kLWNvbG9yOiByZWQ7CiAgY29sb3I6ICNmZmY7Cn0KCmlucHV0W3R5cGU9dGV4dF0sIGlucHV0W3R5cGU9c2VhcmNoXSwgaW5wdXRbdHlwZT1wYXNzd29yZF0gewogIGNvbG9yOiAjZmZmOwogIHdpZHRoOiAtd2Via2l0LWNhbGMoMTAwJSAtIDBweCk7CiAgd2lkdGg6IC1tb3otY2FsYygxMDAlIC0gMHB4KTsKICB3aWR0aDogY2FsYygxMDAlIC0gMHB4KTsKICBvdXRsaW5lOiBub25lOwogIGJvcmRlcjogc29saWQgMXB4IHRyYW5zcGFyZW50OwogIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50OwogIGJvcmRlci1ib3R0b20tY29sb3I6ICM1NTU7CiAgYm9yZGVyLXJhZGl1czogMHB4OwogIHBhZGRpbmc6IDhweCAxMHB4Owp9CgppbnB1dFt0eXBlPSJjaGVja2JveCJdIHsKICBib3JkZXI6IHNvbGlkIDFweCAjMDBFNkZGOwogIGJhY2tncm91bmQtY29sb3I6ICMzMzM7CiAgaGVpZ2h0OiAyNXB4OwogIHdpZHRoOiAyNXB4OwogIGN1cnNvcjogcG9pbnRlcjsKICAvKgogIC13ZWJraXQtYXBwZWFyYW5jZTogY2hlY2tib3g7CiAgKi8KfQoKaW5wdXRbdHlwZT0iY2hlY2tib3giXTpjaGVja2VkIHsKICBjb2xvcjogI2ZmZjsKICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDBFNkZGOwogIC8qZGlzcGxheTogaW5saW5lLWJsb2NrOyovCn0KCmlucHV0W3R5cGU9ImNoZWNrYm94Il06YmVmb3JlIHsKICBwb3NpdGlvbjogaW5pdGlhbDsKICBsZWZ0OiAwcHg7CiAgbWFyZ2luLWxlZnQ6IC00cHg7CiAgY29udGVudDogIiAiOwp9CgppbnB1dFt0eXBlPSJjaGVja2JveCJdOmNoZWNrZWQ6YmVmb3JlIHsKICBwb3NpdGlvbjogaW5pdGlhbDsKICBsZWZ0OiAwcHg7CiAgbWFyZ2luLWxlZnQ6IC0zcHg7CiAgY29udGVudDogIuKckyI7CiAgY29sb3I6ICMwMDA7Cn0KCgppbnB1dFt0eXBlPWJ1dHRvbl0uY2FuY2VsIHsKICAKICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDsKICBib3JkZXItY29sb3I6IHJlZDsKfQoKaW5wdXRbdHlwZT1idXR0b25dLnNhdmV7CiAgYmFja2dyb3VuZC1jb2xvcjogIzExMTsKICBmbG9hdDogcmlnaHQ7Cn0KCgppbnB1dFt0eXBlPWJ1dHRvbl0uYmxhY2ssIGlucHV0W3R5cGU9c3VibWl0XS5ibGFja3sKICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDAwOwogIGJvcmRlci1jb2xvcjogIzAwMDsKfQoKaW5wdXRbdHlwZT1idXR0b25dLmNlbnRlcnsKICBtYXJnaW4tcmlnaHQ6IGF1dG87CiAgbWFyZ2luLWxlZnQ6IGF1dG87CiAgYmFja2dyb3VuZC1jb2xvcjogIzAwMDsKICBib3JkZXItY29sb3I6ICMwMDA7Cn0KCi5wb2ludGVyIHsKICBjdXJzb3I6IHBvaW50ZXI7Cn0KCi5wb2ludGVyOmhvdmVyIHsKICBjb2xvcjogIzAwRTZGRjsKICBjdXJzb3I6IHBvaW50ZXI7Cn0KCi5zb3J0VGhpcyB7CiAgY29sb3I6ICMwMEU2RkY7Cn0KCi53NDBweCB7CiAgbWF4LXdpZHRoOiA0MHB4Owp9CgoudzUwcHggewogIG1heC13aWR0aDogNTBweDsKfQoKLnc4MHB4IHsKICBtYXgtd2lkdGg6IDgwcHg7Cn0KCi53MTUwcHggewogIG1heC13aWR0aDogMTUwcHg7Cn0KCi53MjAwcHggewogIG1heC13aWR0aDogMjAwcHg7CiAgbWluLXdpZHRoOiAxMDBweDsKICB3aWR0aDogMjAwcHg7CiAgb3ZlcmZsb3cteDogaGlkZGVuOwogIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgb3ZlcmZsb3c6IGhpZGRlbjsKICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKfQoKLnczMDBweCB7CiAgbWF4LXdpZHRoOiAzMDBweDsKfQoKLncyMjBweCB7CiAgbWF4LXdpZHRoOiAyMjBweDsKICBjdXJzb3I6IGFsaWFzOwp9CgouZm9vdGVyIHsKICBmb250LXNpemU6IDEwcHg7Cn0KCi5jZW50ZXIgewogIHRleHQtYWxpZ246IGNlbnRlcjsKfQoKLnNjcmVlbkxvZ0hpZGRlbiB7CiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMHB4LCAtMTEwcHgpOwp9CgouYm9yZGVyU3BhY2UgewogIG1hcmdpbi1ib3R0b206IDMwcHg7Cn0KCi5ibG9jayB7Cgp9Cgoubm9uZSB7CiAgZGlzcGxheTogbm9uZTsKfQoKCi5ub3RWaXNpYmxlIHsKICBoZWlnaHQ6IDBweDsKICBkaXNwbGF5OiBub25lOwogIG9wYWNpdHk6IDA7CiAgYm9yZGVyLWJvdHRvbTogIzAwMCBzb2xpZCAwcHg7CiAgCn0KCi52aXNpYmxlIHsKICBvcGFjaXR5OiAxOwogIGRpc3BsYXk6IGJsb2NrOwogIGJvcmRlci1ib3R0b206ICM0NDQgc29saWQgMXB4OyAKICBwYWRkaW5nOiAxMHB4Owp9CgouZmxvYXRSaWdodCB7CiAgZmxvYXQ6IHJpZ2h0Owp9CgouZmxvYXRMZWZ0IHsKICBmbG9hdDogbGVmdDsKfQoKLm1lbnUtYWN0aXZlIHsKICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDBFNkZGOwp9CgoubWVudS1ub3RBY3RpdmUgewogIAp9CgojYnJhbmNoIHsKICBkaXNwbGF5OiB0YWJsZTsKICBtYXJnaW46IGF1dG87CiAgY29sb3I6IHJlZDsKfQoKI2ludGVyYWN0aW9uIHsKICBtYXJnaW4tYm90dG9tOiAxMDBweDsKICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgYm9yZGVyLWJvdHRvbTogc29saWQgMHB4ICM3Nzc7Cn0KCgouaGFsZiB7CiAgZGlzcGxheTogYmxvY2s7CiAgd2lkdGg6IDQ1JTsKfQoKLm1lbnUgewogIGJvcmRlcjogc29saWQgMXB4ICMwMEU2RkY7Cn0KCi5pbmZvTXNnIHsKICBjb2xvcjogI2FhYTsKfQoKLmVycm9yTXNnIHsKICBjb2xvcjogcmVkOwp9Cgoud2FybmluZ01zZyB7CiAgY29sb3I6IHllbGxvdzsKfQoKLmRlYnVnTXNnIHsKICBjb2xvcjogbWFnZW50YTsKfQoKLk5ld3MsIC5Nb3ZpZSwgLlNlcmllcywgLlNwb3J0cywgLktpZHMgewogIGJvcmRlci1sZWZ0OiBzb2xpZCAycHgKfQoKLk5ld3MgewogIGJvcmRlci1jb2xvcjogdG9tYXRvCn0KCi5Nb3ZpZSB7CiAgYm9yZGVyLWNvbG9yOiByb3lhbGJsdWU7Cn0KCi5TZXJpZXMgewogIGJvcmRlci1jb2xvcjogZ29sZDsKfQoKLlNwb3J0cyB7CiAgYm9yZGVyLWNvbG9yOiB5ZWxsb3dncmVlbjsKfQoKLktpZHMgewogIGJvcmRlci1jb2xvcjogbWVkaXVtcHVycGxlOwp9CgovKiBMb2FkaW5nICovCiNsb2FkaW5nIHsKICBsZWZ0OiAwcHg7CiAgdG9wOiAwcHg7CiAgei1pbmRleDogMTAwMDA7CiAgcG9zaXRpb246IGFic29sdXRlOwogIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwwLDAsIDAuOCk7CiAgbWFyZ2luOiBhdXRvOwogIHdpZHRoOiAxMDAlOwogIGhlaWdodDogMTAwJTsKfQoKCi5sb2FkZXIgewogIGJvcmRlcjogNXB4IHNvbGlkIHRyYW5zcGFyZW50OwogIGJvcmRlci1yYWRpdXM6IDUwJTsKICBib3JkZXItdG9wOiA1cHggc29saWQgIzAwRTZGRjsKICBib3JkZXItYm90dG9tOiA1cHggc29saWQgIzAwRTZGRjsKICB3aWR0aDogNTBweDsKICBoZWlnaHQ6IDUwcHg7CiAgLXdlYmtpdC1hbmltYXRpb246IHNwaW4gMS4ycyBsaW5lYXIgaW5maW5pdGU7CiAgYW5pbWF0aW9uOiBzcGluIDEuMnMgbGluZWFyIGluZmluaXRlOwoKICBwb3NpdGlvbjogZml4ZWQ7CiAgbWFyZ2luOiBhdXRvOwoKICB0b3A6IDA7CiAgcmlnaHQ6IDA7CiAgYm90dG9tOiAwOwogIGxlZnQ6IDA7CiAgCn0KCkAtd2Via2l0LWtleWZyYW1lcyBzcGluIHsKICAwJSB7IC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoMGRlZyk7IH0KICAxMDAlIHsgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpOyB9Cn0KCkBrZXlmcmFtZXMgc3BpbiB7CiAgMCUgeyB0cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTsgfQogIDEwMCUgeyB0cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpOyB9Cn0K" - webUI["html/img/settings.png"] = "iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAAAXNSR0IArs4c6QAAAAlwSFlzAAAsSwAALEsBpT2WqQAABCRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IlhNUCBDb3JlIDUuNC4wIj4KICAgPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIgogICAgICAgICAgICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgICAgICAgICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyI+CiAgICAgICAgIDx0aWZmOlJlc29sdXRpb25Vbml0PjI8L3RpZmY6UmVzb2x1dGlvblVuaXQ+CiAgICAgICAgIDx0aWZmOkNvbXByZXNzaW9uPjU8L3RpZmY6Q29tcHJlc3Npb24+CiAgICAgICAgIDx0aWZmOlhSZXNvbHV0aW9uPjI4ODwvdGlmZjpYUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6T3JpZW50YXRpb24+MTwvdGlmZjpPcmllbnRhdGlvbj4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+Mjg4PC90aWZmOllSZXNvbHV0aW9uPgogICAgICAgICA8ZXhpZjpQaXhlbFhEaW1lbnNpb24+NTA8L2V4aWY6UGl4ZWxYRGltZW5zaW9uPgogICAgICAgICA8ZXhpZjpDb2xvclNwYWNlPjE8L2V4aWY6Q29sb3JTcGFjZT4KICAgICAgICAgPGV4aWY6UGl4ZWxZRGltZW5zaW9uPjUwPC9leGlmOlBpeGVsWURpbWVuc2lvbj4KICAgICAgICAgPGRjOnN1YmplY3Q+CiAgICAgICAgICAgIDxyZGY6QmFnLz4KICAgICAgICAgPC9kYzpzdWJqZWN0PgogICAgICAgICA8eG1wOk1vZGlmeURhdGU+MjAxOC0wOC0xMFQxODowODo4OTwveG1wOk1vZGlmeURhdGU+CiAgICAgICAgIDx4bXA6Q3JlYXRvclRvb2w+UGl4ZWxtYXRvciAzLjM8L3htcDpDcmVhdG9yVG9vbD4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgIDwvcmRmOlJERj4KPC94OnhtcG1ldGE+Ckxt87EAAAS7SURBVGgFzZpdiFVVGIbn5N+IMgVhaRLqWI7mQIJoIVRgOhQZNDAhWcbcVuPV3BRE6I14440iQQSaN0p6kz8zI0k5inUhZSSaYOVYODMo5eiMOOPf+LzH2cPMPmvttdbe53jOBy9rr2+938/ae51vr733qaoqgQwPD68B/wDJfXAP3AE94JMShCy+SxJ9CvSDJFlU7MiPFdsh/hrBdIffBsd48HApJjLPI4tnPThBlFJMZI5HBuWZCIt9AmgEzeAJR6JzHeMadnKI8wbYCz4Fkz18JlNwMgf8BCL5j4O3bVaMdUfEhPZqgv1U7HbEbDvoT7HZOPUYNwAlHheV09a4A3RTgMqtj9QY7JdgeM5i3I4+fDIYrQeq/UnyNYOTlBDtS+BwEjk2doz+KyO2OY5bwVCME+/qylTHT4C1D3k+uB33Yul3ov/eMuajlu1RH+II5wtT4hNNSnQ6U/kzbRkfq351bCfF8apAm7kmvq38njWRK0S305SHcSK5XO4U5O9MBmXWbSe3E6YccialdKzH2TTnQEF10XgZ5DdivsxEhkyxjVdERAwu03xmMiqD7hYx19km4cyHq6KyeHKkWpSz+ciVrHVpRYZk/wLHp0H2bULkNKzt4Eq86TKxLq3IECf6nXwV9QPbAfjHQSfoD7SN6L63gYhvbrkiTwKf/dPYpbdPVxKMnigdg0VAG8FQye8AzBl6aIk2A+wPiNoHd63LNZx3wbUAvz/CfTzJb/43AmkGpLfAi0DPE/NALQgtve+xFPdi5xRiNkHa5ySOJ/TR7RrBJdqL4AAxL+p+8ToYAFklNCnF3pM1KPba2L6v8vons5oPsko9ZyZoa0PsOoKezxoY+y5N5DYHWSvDTXzUMJH7IUkRW0tbyyV0CcfDDKmqDMe1KfqnQyehGNgo9q8p4hWYFGsiBY4fsSK/BRkkaPgj5PhMy720BnVFesfnlKo3Das0bw8XYJf196GEuzWRLSDoRypLg2w06FyqTS6Cx7iK1eeqGqrnugmuBgvB8+A5UAuqQYiU+oZ4h2T+BV3gAlDp/pai0U1rFpVGMAv8AHzFd4vShMOQLcoB+DNB/sSbM3ZoMV4BQsW0adSJSbNp1Hu1mY40/YZxpPdJaUSfFzrBMXAjjQNsdvll6cHCWVvKJIphdhcny11pqmolCk5aIDif0BKdZBucgPlO8kh/r8O4HtwClSCbk86HtQqQuUrvKVCf5OARjt0lll4H/WKKmbS0tmJQKZNQ7nq9+w0n2LhTN04E8jKMPpZ1hcli8tGTZYEYJwJrZQGzchTGz3a2ifwdkHc73LYAfpx6DcWXQK1LeiDsdpFGx7UOwUGQJKpmGyIjjvWh50iSQWzsZ/ofgvx+jnYp+B/YpJcB7QXDBKPJ4JDF6+/oCwoBuhoL36R+Jp4RJH16u2IgaxJpHhMehsBY3wTjV2YbOuuumLHrwCW6msbSj74O/DHGgV4Ohl8Jw1nSMmsB+tL6Wnw83odzBrhEr2GtgvFE8A74ADxtJZZygMC25cjQqBwqdg62qpUlziUP45Cq6OGuqqoUE/FJ8i+v7MpJYvEsHl1A5gNty2vLmaN3bBLdAvqB3svqXxLRvyEuc9zs7SiA+ACpw05pJx8SoAAAAABJRU5ErkJggg==" - webUI["html/js/classes_ts.js"] = "dmFyIF9fZXh0ZW5kcyA9ICh0aGlzICYmIHRoaXMuX19leHRlbmRzKSB8fCAoZnVuY3Rpb24gKCkgewogICAgdmFyIGV4dGVuZFN0YXRpY3MgPSBmdW5jdGlvbiAoZCwgYikgewogICAgICAgIGV4dGVuZFN0YXRpY3MgPSBPYmplY3Quc2V0UHJvdG90eXBlT2YgfHwKICAgICAgICAgICAgKHsgX19wcm90b19fOiBbXSB9IGluc3RhbmNlb2YgQXJyYXkgJiYgZnVuY3Rpb24gKGQsIGIpIHsgZC5fX3Byb3RvX18gPSBiOyB9KSB8fAogICAgICAgICAgICBmdW5jdGlvbiAoZCwgYikgeyBmb3IgKHZhciBwIGluIGIpIGlmIChiLmhhc093blByb3BlcnR5KHApKSBkW3BdID0gYltwXTsgfTsKICAgICAgICByZXR1cm4gZXh0ZW5kU3RhdGljcyhkLCBiKTsKICAgIH07CiAgICByZXR1cm4gZnVuY3Rpb24gKGQsIGIpIHsKICAgICAgICBleHRlbmRTdGF0aWNzKGQsIGIpOwogICAgICAgIGZ1bmN0aW9uIF9fKCkgeyB0aGlzLmNvbnN0cnVjdG9yID0gZDsgfQogICAgICAgIGQucHJvdG90eXBlID0gYiA9PT0gbnVsbCA/IE9iamVjdC5jcmVhdGUoYikgOiAoX18ucHJvdG90eXBlID0gYi5wcm90b3R5cGUsIG5ldyBfXygpKTsKICAgIH07Cn0pKCk7CnZhciBNYWluTWVudSA9IC8qKiBAY2xhc3MgKi8gKGZ1bmN0aW9uICgpIHsKICAgIGZ1bmN0aW9uIE1haW5NZW51KCkgewogICAgICAgIHRoaXMuRG9jdW1lbnRJRCA9ICJtYWluLW1lbnUiOwogICAgICAgIHRoaXMuSFRNTFRhZyA9ICJMSSI7CiAgICB9CiAgICBNYWluTWVudS5wcm90b3R5cGUuY3JlYXRlID0gZnVuY3Rpb24gKCkgewogICAgICAgIGNvbnNvbGUubG9nKHRoaXMuRG9jdW1lbnRJRCk7CiAgICB9OwogICAgcmV0dXJuIE1haW5NZW51Owp9KCkpOwp2YXIgTWFpbk1lbnVJdGVtID0gLyoqIEBjbGFzcyAqLyAoZnVuY3Rpb24gKF9zdXBlcikgewogICAgX19leHRlbmRzKE1haW5NZW51SXRlbSwgX3N1cGVyKTsKICAgIGZ1bmN0aW9uIE1haW5NZW51SXRlbSgpIHsKICAgICAgICByZXR1cm4gX3N1cGVyICE9PSBudWxsICYmIF9zdXBlci5hcHBseSh0aGlzLCBhcmd1bWVudHMpIHx8IHRoaXM7CiAgICB9CiAgICBNYWluTWVudUl0ZW0ucHJvdG90eXBlLmNyZWF0ZTIgPSBmdW5jdGlvbiAoKSB7CiAgICAgICAgdmFyIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KHRoaXMuSFRNTFRhZyk7CiAgICAgICAgZWxlbWVudC5pbm5lclRleHQgPSB0aGlzLlZhbHVlOwogICAgICAgIGNvbnNvbGUubG9nKGVsZW1lbnQpOwogICAgfTsKICAgIHJldHVybiBNYWluTWVudUl0ZW07Cn0oTWFpbk1lbnUpKTsKZnVuY3Rpb24gcGFnZVJlYWR5KCkgewogICAgdmFyIGl0ZW0gPSBuZXcgTWFpbk1lbnVJdGVtKCk7CiAgICBpdGVtLlZhbHVlID0gIlRlc3QiOwogICAgaXRlbS5jcmVhdGUyKCk7Cn0K" - webUI["html/js/data.js"] = "ZnVuY3Rpb24gc2hvd0NvbmZpZyhvYmopIHsKICBjb25maWcgPSBvYmo7CiAgLy9zZXRNZW51SXRlbSgpOwogIGNyZWF0ZU1lbnUoKTsKICAvL2RvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJwYWdlIikuY2xhc3NOYW1lID0gIiI7Cn0KCnNob3dNeVN0cmVhbXMKCmZ1bmN0aW9uIHNob3dNeVN0cmVhbXMoYWxsU3RyZWFtc09iaikgewoKICB2YXIgc3RyZWFtVHlwZUtleXMgPSBnZXRPYmpLZXlzKGFsbFN0cmVhbXNPYmopCgogIGZvciAodmFyIHMgPSAwOyBzIDwgc3RyZWFtVHlwZUtleXMubGVuZ3RoOyBzKyspIHsKICAgIHZhciBzdHJlYW1UeXBlID0gc3RyZWFtVHlwZUtleXNbc107CiAgICB2YXIgb2JqID0gbmV3IE9iamVjdCgpOwogICAgb2JqID0gYWxsU3RyZWFtc09ialtzdHJlYW1UeXBlXTsKICAgIHN3aXRjaChzdHJlYW1UeXBlKSB7CiAgICAgIGNhc2UgImFjdGl2ZVN0cmVhbXMiOiBhY3RpdmVTdHJlYW1zICAgICA9IG9iajsgYnJlYWs7CiAgICB9CgogICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoc3RyZWFtVHlwZSkuaW5uZXJIVE1MID0gIiI7CgogICAgdmFyIHN0cmVhbXNPYmogICAgPSBuZXcgT2JqZWN0KCk7CiAgICB2YXIgc3RyZWFtc05hbWVzICA9IG5ldyBBcnJheSgpOwogICAgCiAgICB2YXIga2V5cyA9IGdldE9iaktleXMob2JqKQogICAgCiAgICAvLyBDcmVhdGUgT2JqZWN0IChzdHJlYW1zT2JqKSBmb3IgdGhlIHN0cmVhbXMgYW5kIHNvcnQgYnkgbmFtZSAoc3RyZWFtc05hbWVzKQogICAgZm9yICh2YXIgaSA9IDA7IGkgPCBrZXlzLmxlbmd0aDsgaSsrKSB7CiAgICAgIHZhciBuYW1lICAgID0gb2JqW2tleXNbaV1dWyJuYW1lIl07CiAgICAgIHZhciB0bXAgPSBuZXcgT2JqZWN0KCk7CiAgICAgIHZhciBzdHJlYW1LZXkgPSBnZXRPYmpLZXlzKG9ialtrZXlzW2ldXSk7CgogICAgICBmb3IgKHZhciBqID0gMDsgaiA8IHN0cmVhbUtleS5sZW5ndGg7IGorKykgewogICAgICAgIHRtcFtzdHJlYW1LZXlbal1dID0gb2JqW2tleXNbaV1dW3N0cmVhbUtleVtqXV07ICAgICAgCiAgICAgIH0KCiAgICAgIHN0cmVhbXNPYmpbbmFtZV0gPSB0bXA7CiAgICAgIHN0cmVhbXNOYW1lcy5wdXNoKG5hbWUpCiAgICB9CgogICAgc3RyZWFtc05hbWVzLnNvcnQoKTsKICAgIAogICAgLy8gQ3JlYXRlIFRhYmxlIGZvciBhY3RpdmVTdHJlYW1zCiAgICB2YXIgdGFibGUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChzdHJlYW1UeXBlKTsKCiAgICBmb3IgKHZhciBpID0gMDsgaSA8IHN0cmVhbXNOYW1lcy5sZW5ndGg7IGkrKykgewogICAgICB2YXIgbmV3RW50cnkgPSBuZXcgT2JqZWN0KCk7CiAgICAgIG5ld0VudHJ5WyJfZWxlbWVudCJdID0gIlRSIjsKICAgICAgdGFibGUuYXBwZW5kQ2hpbGQoY3JlYXRlRWxlbWVudChuZXdFbnRyeSkpOwogICAgICB2YXIgbGluZSA9IHRhYmxlLmxhc3RDaGlsZDsKCiAgICAgIHZhciB0bXAgPSBzdHJlYW1zT2JqW3N0cmVhbXNOYW1lc1tpXV0KICAgICAgdmFyIGtleXMgPSBnZXRPYmpLZXlzKHRtcCkKCiAgICAgIHZhciBuZXdLZXkgPSBuZXcgT2JqZWN0KCkKICAgICAgbmV3S2V5WyJfZWxlbWVudCJdICA9ICJURCI7CiAgICAgIC8vbmV3S2V5WyJfdGV4dCJdICAgICA9IHN0cmVhbXNOYW1lc1tpXTsKICAgICAgc3dpdGNoKHN0cmVhbVR5cGUpIHsKICAgICAgICBjYXNlICJhY3RpdmVTdHJlYW1zIjogbmV3S2V5WyJfdGV4dCJdICAgICA9ICJDaGFubmVsICgrKToiOyBicmVhazsKICAgICAgICBjYXNlICJpbmFjdGl2ZVN0cmVhbXMiOiBuZXdLZXlbIl90ZXh0Il0gICA9ICJDaGFubmVsICgtKToiOyBicmVhazsKICAgICAgfQogICAgICAKICAgICAgbmV3S2V5WyJjbGFzcyJdICAgICA9ICJ0ZEtleSI7CiAgICAgIGNvbnNvbGUubG9nKCk7CgoKICAgICAgdmFyIG5ld1ZhbCA9IG5ldyBPYmplY3QoKQogICAgICBuZXdWYWxbIl9lbGVtZW50Il0gID0gIlREIjsKICAgICAgbmV3VmFsWyJfdGV4dCJdICAgICA9IHN0cmVhbXNOYW1lc1tpXTsKICAgICAgbmV3VmFsWyJjbGFzcyJdICAgICA9ICJ0ZFZhbCI7CiAgICAgIC8vbmV3VmFsWyJfdGV4dCJdICAgICA9IHZhbHVlOwogICAgICAKICAgICAgbGluZS5hcHBlbmRDaGlsZChjcmVhdGVFbGVtZW50KG5ld0tleSkpOwogICAgICBsaW5lLmFwcGVuZENoaWxkKGNyZWF0ZUVsZW1lbnQobmV3VmFsKSk7CiAgICAgIAogICAgfQoKICB9CgogIHJldHVybgp9CgpmdW5jdGlvbiBzaG93QWN0aXZlU3RyZWFtcyhvYmopIHsKICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYWN0aXZlU3RyZWFtcyIpLmlubmVySFRNTCA9ICIiOwogIGFjdGl2ZVN0cmVhbXMgICAgID0gb2JqOwogIHZhciBzdHJlYW1zT2JqICAgID0gbmV3IE9iamVjdCgpOwogIHZhciBzdHJlYW1zTmFtZXMgID0gbmV3IEFycmF5KCk7CiAgCiAgdmFyIGtleXMgPSBnZXRPYmpLZXlzKG9iaikKICAKICAvLyBDcmVhdGUgT2JqZWN0IChzdHJlYW1zT2JqKSBmb3IgdGhlIHN0cmVhbXMgYW5kIHNvcnQgYnkgbmFtZSAoc3RyZWFtc05hbWVzKQogIGZvciAodmFyIGkgPSAwOyBpIDwga2V5cy5sZW5ndGg7IGkrKykgewogICAgdmFyIG5hbWUgICAgPSBvYmpba2V5c1tpXV1bIm5hbWUiXTsKICAgIHZhciB0bXAgPSBuZXcgT2JqZWN0KCk7CiAgICB2YXIgc3RyZWFtS2V5ID0gZ2V0T2JqS2V5cyhvYmpba2V5c1tpXV0pOwoKICAgIGZvciAodmFyIGogPSAwOyBqIDwgc3RyZWFtS2V5Lmxlbmd0aDsgaisrKSB7CiAgICAgIHRtcFtzdHJlYW1LZXlbal1dID0gb2JqW2tleXNbaV1dW3N0cmVhbUtleVtqXV07ICAgICAgCiAgICB9CgogICAgc3RyZWFtc09ialtuYW1lXSA9IHRtcDsKICAgIHN0cmVhbXNOYW1lcy5wdXNoKG5hbWUpCiAgfQoKICBzdHJlYW1zTmFtZXMuc29ydCgpOwogIAogIC8vIENyZWF0ZSBUYWJsZSBmb3IgYWN0aXZlU3RyZWFtcwogIHZhciB0YWJsZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJhY3RpdmVTdHJlYW1zIik7CgogIGZvciAodmFyIGkgPSAwOyBpIDwgc3RyZWFtc05hbWVzLmxlbmd0aDsgaSsrKSB7CiAgICB2YXIgbmV3RW50cnkgPSBuZXcgT2JqZWN0KCk7CiAgICBuZXdFbnRyeVsiX2VsZW1lbnQiXSA9ICJUUiI7CiAgICB0YWJsZS5hcHBlbmRDaGlsZChjcmVhdGVFbGVtZW50KG5ld0VudHJ5KSk7CiAgICB2YXIgbGluZSA9IHRhYmxlLmxhc3RDaGlsZDsKCiAgICB2YXIgdG1wID0gc3RyZWFtc09ialtzdHJlYW1zTmFtZXNbaV1dCiAgICB2YXIga2V5cyA9IGdldE9iaktleXModG1wKQoKICAgIHZhciBuZXdLZXkgPSBuZXcgT2JqZWN0KCkKICAgIG5ld0tleVsiX2VsZW1lbnQiXSAgPSAiVEQiOwogICAgLy9uZXdLZXlbIl90ZXh0Il0gICAgID0gc3RyZWFtc05hbWVzW2ldOwogICAgbmV3S2V5WyJfdGV4dCJdICAgICA9ICJDaGFubmVsOiI7CiAgICBuZXdLZXlbImNsYXNzIl0gICAgID0gInRkS2V5IjsKICAgIGNvbnNvbGUubG9nKCk7CgoKICAgIHZhciBuZXdWYWwgPSBuZXcgT2JqZWN0KCkKICAgIG5ld1ZhbFsiX2VsZW1lbnQiXSAgPSAiVEQiOwogICAgbmV3VmFsWyJfdGV4dCJdICAgICA9IHN0cmVhbXNOYW1lc1tpXTsKICAgIG5ld1ZhbFsiY2xhc3MiXSAgICAgPSAidGRWYWwiOwogICAgLy9uZXdWYWxbIl90ZXh0Il0gICAgID0gdmFsdWU7CiAgICAKICAgIGxpbmUuYXBwZW5kQ2hpbGQoY3JlYXRlRWxlbWVudChuZXdLZXkpKTsKICAgIGxpbmUuYXBwZW5kQ2hpbGQoY3JlYXRlRWxlbWVudChuZXdWYWwpKTsKICAgIAogIH0KCn0KCmZ1bmN0aW9uIHBhcnNlTG9ncyhvYmopIHsKICBsb2cgPSBvYmoKICB2YXIga2V5cyA9IGdldE9iaktleXMob2JqKQoKICB2YXIgbXNnVHlwZTsKICBmb3IgKHZhciBpID0gMDsgaSA8IGtleXMubGVuZ3RoOyBpKyspIHsKICAgIHN3aXRjaChrZXlzW2ldKSB7CiAgICAgIGNhc2UgIndhcm5pbmdzIjogIG1zZ1R5cGUgPSAid2FybmluZ01zZyI7IGJyZWFrOwogICAgICBjYXNlICJlcnJvcnMiOiAgICBtc2dUeXBlID0gImVycm9yTXNnIjsgYnJlYWs7CiAgICB9CgogICAgc3dpdGNoKG9ialtrZXlzW2ldXSkgewogICAgICBjYXNlIDA6IG1zZ1R5cGUgPSAidGRWYWwiOyBicmVhazsKICAgICAgZGVmYXVsdDogYnJlYWs7CiAgICB9CgogICAgaWYoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoa2V5c1tpXSkpewogICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChrZXlzW2ldKS5jbGFzc05hbWUgPSBtc2dUeXBlOwogICAgfQogICAgCiAgICAKICB9CiAgcmV0dXJuCn0KCgpmdW5jdGlvbiBjYW5jZWxEYXRhKGVsZW1lbnQpIHsKICBjcmVhdGVNZW51KCk7Cn0KCmZ1bmN0aW9uIHNhdmVEYXRhKGVsZW1lbnQpIHsKICB2YXIgZGF0YSA9IG5ldyBPYmplY3QoKTsKICB2YXIgZGl2ID0gZWxlbWVudC5wYXJlbnROb2RlLnBhcmVudE5vZGU7CiAgdmFyIGlucHV0cyA9IGRpdi5nZXRFbGVtZW50c0J5VGFnTmFtZSgiSU5QVVQiKTsKICAKICB2YXIgY29uZmlnS2V5ID0gZGl2LmdldEF0dHJpYnV0ZSgiZGF0YS1jb25maWdrZXkiKTsKICB2YXIgbWVudVR5cGUgPSBkaXYuZ2V0QXR0cmlidXRlKCJkYXRhLW1lbnV0eXBlIik7CiAgdmFyIHZhbHVlOwogIHZhciB2YWx1ZUFyciA9IG5ldyBBcnJheSgpOwogIAogIGZvciAodmFyIGkgPSAwOyBpIDwgaW5wdXRzLmxlbmd0aDsgaSsrKSB7CiAgICBpZiAoaW5wdXRzW2ldLnR5cGUgPT0gInRleHQiICYmIGlucHV0c1tpXS52YWx1ZSAhPSB1bmRlZmluZWQgJiYgaW5wdXRzW2ldLnZhbHVlICE9ICIiICkgewogICAgICBjb25zb2xlLmxvZyhpbnB1dHNbaV0udmFsdWUsIG1lbnVUeXBlKQogICAgICBzd2l0Y2gobWVudVR5cGUpIHsKICAgICAgICBjYXNlICJpbnB1dEFycmF5IjogdmFsdWVBcnIucHVzaChpbnB1dHNbaV0udmFsdWUpOyBicmVhazsKICAgICAgICBjYXNlICJzaW5nbGVJbnB1dCI6IHZhbHVlID0gaW5wdXRzW2ldLnZhbHVlOyBicmVhazsKICAgICAgfQogICAgfQogIH0KCiAgc3dpdGNoKG1lbnVUeXBlKSB7CiAgICBjYXNlICJpbnB1dEFycmF5IjogIGRhdGFbY29uZmlnS2V5XSA9IHZhbHVlQXJyOyBicmVhazsKICAgIGNhc2UgInNpbmdsZUlucHV0IjogIAogICAgICBpZiAoaXNOYU4odmFsdWUpID09IGZhbHNlKSB7CiAgICAgICAgdmFsdWUgPSBwYXJzZUludCh2YWx1ZSk7CiAgICAgICAgZGF0YVtjb25maWdLZXldID0gdmFsdWU7CiAgICAgICAgYnJlYWs7CiAgICAgIH0KCiAgICAgIGlmICh2YWx1ZSA9PSB1bmRlZmluZWQpIHsKICAgICAgICBkYXRhWyJkZWxldGUiXSA9IGNvbmZpZ0tleTsgCiAgICAgIH0gZWxzZSB7CiAgICAgICAgZGF0YVtjb25maWdLZXldID0gdmFsdWUKICAgICAgfQoKICAgICAgYnJlYWs7CiAgfQoKICBkYXRhWyJjbWQiXSA9ICJzYXZlQ29uZmlnIjsKICBjb25zb2xlLmxvZyhkYXRhKTsKICB4VGVWZShkYXRhKQp9CgpmdW5jdGlvbiB4VGVWZShkYXRhKSB7CiAgaWYgKHdlYlNvY2tldHMgPT0gZmFsc2UpIHsKICAgIGFsZXJ0KCJZb3VyIGJyb3dzZXIgZG9lcyBub3Qgc3VwcG9ydCBXZWJTb2NrZXRzIik7CiAgICByZXR1cm47CiAgfSBlbHNlIHsKICAgIGlmIChkYXRhWyJjbWQiXSAhPSAiZ2V0TG9nIikgewogICAgICBzaG93TG9hZGluZ1NjcmVlbih0cnVlKQogICAgfQogIH0KICBkZWxldGUgdW5kb1siZXBnTWFwcGluZyJdOwogIAogIHZhciBwcm90b2NvbFdTCiAgc3dpdGNoKHdpbmRvdy5sb2NhdGlvbi5wcm90b2NvbCkgewogICAgY2FzZSAiaHR0cDoiOiAgIHByb3RvY29sV1MgPSAid3M6Ly8iOyBicmVhazsKICAgIGNhc2UgImh0dHBzOiI6ICBwcm90b2NvbFdTID0gIndzczovLyI7IGJyZWFrOwogIH0KCgogIHZhciB3cyA9IG5ldyBXZWJTb2NrZXQocHJvdG9jb2xXUyArIHdpbmRvdy5sb2NhdGlvbi5ob3N0bmFtZSArICI6IiArIHdpbmRvdy5sb2NhdGlvbi5wb3J0ICsgIi9kYXRhLyIgKyAiP1Rva2VuPSIgKyBnZXRDb29raWUoIlRva2VuIikpOwogIHdzLm9ub3BlbiA9IGZ1bmN0aW9uKCkgewogICAgY29uc29sZS5sb2coZGF0YSkKICAgIHdzLnNlbmQoSlNPTi5zdHJpbmdpZnkoZGF0YSkpOwogIH0KCiAgd3Mub25tZXNzYWdlID0gZnVuY3Rpb24gKGUpIHsKICAgIHZhciByZXNwb25zZSA9IEpTT04ucGFyc2UoZS5kYXRhKTsKICAgIGNvbnNvbGUubG9nKHJlc3BvbnNlKTsKICAgIAogICAgaWYgKHJlc3BvbnNlLmhhc093blByb3BlcnR5KCJjbGllbnRJbmZvIikpIHsKICAgICAgY3JlYXRlQ2xpbnRJbmZvKHJlc3BvbnNlWyJjbGllbnRJbmZvIl0pOwogICAgfQoKICAgIGlmIChyZXNwb25zZS5oYXNPd25Qcm9wZXJ0eSgibG9nIikpIHsKICAgICAgY3JlYXRlQ2xpbnRJbmZvKHJlc3BvbnNlWyJsb2ciXSk7CiAgICB9CgogICAgaWYgKHJlc3BvbnNlLmhhc093blByb3BlcnR5KCJzdGF0dXMiKSkgewogICAgICBpZiAocmVzcG9uc2VbInN0YXR1cyJdID09IGZhbHNlKSB7CiAgICAgICAgYWxlcnQocmVzcG9uc2VbImVyciJdKQogICAgICAgIGlmKHJlc3BvbnNlLmhhc093blByb3BlcnR5KCJyZWxvYWQiKSkgewogICAgICAgICAgbG9jYXRpb24ucmVsb2FkKCk7CiAgICAgICAgfQogICAgICAgIC8vY2hlY2tFcnIocmVzcG9uc2UpCiAgICAgICAgY29uc29sZS5sb2cocmVzcG9uc2UpOwogICAgICAgIHVwZGF0ZVh0ZXZlU3RhdHVzKHJlc3BvbnNlKTsKICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7IHNob3dMb2FkaW5nU2NyZWVuKGZhbHNlKTsgfSwgMzAwKTsKICAgICAgICAKICAgICAgICByZXR1cm4KICAgICAgfQoKICAgICAgdXBkYXRlWHRldmVTdGF0dXMocmVzcG9uc2UpCgogICAgICAvL2NvbnNvbGUubG9nKGRhdGFbImNtZCJdKTsKICAgICAgc3dpdGNoKGRhdGFbImNtZCJdKSB7CiAgICAgICAgY2FzZSAic2F2ZVVzZXJEYXRhIjogICAgY3JlYXRlTWVudSgpOyBicmVhazsKICAgICAgICBjYXNlICJzYXZlTmV3VXNlciI6ICAgICBjcmVhdGVNZW51KCk7IGJyZWFrOwogICAgICAgIGNhc2UgInNhdmVGaWxlc1hNTFRWIjogIC8vY3JlYXRlTWVudSgpOyBicmVhazsKICAgICAgICBjYXNlICJzYXZlRmlsZXNNM1UiOiAgICAvL2NyZWF0ZU1lbnUoKTsgcmV0dXJuOyBicmVhazsKICAgICAgICBjYXNlICJzYXZlQ29uZmlnIjogICAgCiAgICAgICAgICBkYXRhID0gbmV3IE9iamVjdCgpOwogICAgICAgICAgZGF0YVsiY21kIl0gPSAiY2hlY2tUb2tlbiI7CiAgICAgICAgICB4VGVWZShkYXRhKTsKICAgICAgICAgIGJyZWFrOwoKICAgICAgICBjYXNlICJlbXB0eUxvZyI6IHdyaXRlTG9nSW5EaXYoKTsgYnJlYWs7CiAgICAgICAgY2FzZSAiZ2V0TG9nIjogIHJldHVybjsgYnJlYWs7CiAgICAgIH0KCgogICAgfQoKICAgIGlmIChjb25maWdbImZpbGVzIl0gPT0gdW5kZWZpbmVkIHx8IGNvbmZpZ1siZmlsZXMiXS5sZW5ndGggPT0gMCkgewogICAgICBjcmVhdGVNZW51KCk7CiAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKDEwKS5jbGljaygpCiAgICB9CgogICAgc2V0VGltZW91dChmdW5jdGlvbigpeyBzaG93TG9hZGluZ1NjcmVlbihmYWxzZSk7IH0sIDApOwogIH0KICAKfQoKZnVuY3Rpb24gdXBkYXRlWHRldmVTdGF0dXMocmVzcG9uc2UpIHsKICB2YXIga2V5cyA9IGdldE9iaktleXMocmVzcG9uc2UpOwogIC8vY29uc29sZS5sb2coa2V5cyk7CgogIGZvciAodmFyIGkgPSAwOyBpIDwga2V5cy5sZW5ndGg7IGkrKykgewogICAgc3dpdGNoKGtleXNbaV0pIHsKICAgICAgY2FzZSAiYWxlcnQiOiAgICAgICAgIGFsZXJ0KHJlc3BvbnNlW2tleXNbaV1dKTsgYnJlYWs7CiAgICAgIGNhc2UgImNvbmZpZyI6ICAgICAgICBzaG93Q29uZmlnKHJlc3BvbnNlW2tleXNbaV1dKTsgYnJlYWs7CiAgICAgIGNhc2UgImxvZyI6ICAgICAgICAgICBwYXJzZUxvZ3MocmVzcG9uc2Vba2V5c1tpXV0pOyBicmVhazsKICAgICAgY2FzZSAibXlTdHJlYW1zIjogICAgIHNob3dNeVN0cmVhbXMocmVzcG9uc2Vba2V5c1tpXV0pOyBicmVhazsKICAgICAgY2FzZSAieEVQRyI6ICAgICAgICAgIHhFUEcgPSByZXNwb25zZVtrZXlzW2ldXTsgYnJlYWs7CiAgICAgIGNhc2UgInVzZXJzIjogICAgICAgICB1c2VycyA9IHJlc3BvbnNlW2tleXNbaV1dOyBicmVhazsKICAgICAgY2FzZSAidG9rZW4iOiAgICAgICAgIGRvY3VtZW50LmNvb2tpZSA9ICJUb2tlbj0iICsgcmVzcG9uc2Vba2V5c1tpXV07IGJyZWFrOwogICAgICBjYXNlICJyZWxvYWQiOiAgICAgICAgbG9jYXRpb24ucmVsb2FkKCk7IGJyZWFrOwogICAgICBjYXNlICJvcGVuTGluayI6ICAgICAgd2luZG93LmxvY2F0aW9uID0gcmVzcG9uc2VbIm9wZW5MaW5rIl07IGJyZWFrOwogICAgICAvL2Nhc2UgInZlcnNpb24iOiB2ZXJzaW9uID0gcmVzcG9uc2Vba2V5c1tpXV07IGJyZWFrOwogICAgfQogIH0KfQoKZnVuY3Rpb24gZ2V0VmFsdWVGcm9tUHJvdmlkZXJGaWxlKHhYbWx0dkZpbGUsIGZpbGVUeXBlLCBrZXkpIHsKCiAgdmFyIGZpbGVJRCA9IHhYbWx0dkZpbGUuc3Vic3RyaW5nKDAsIHhYbWx0dkZpbGUubGFzdEluZGV4T2YoJy4nKSkKCiAgaWYgKGNvbmZpZ1siZmlsZXMiXVtmaWxlVHlwZV0uaGFzT3duUHJvcGVydHkoZmlsZUlEKSA9PSB0cnVlKSB7CiAgICB2YXIgZGF0YSA9IGNvbmZpZ1siZmlsZXMiXVtmaWxlVHlwZV1bZmlsZUlEXTsKICAgIHJldHVybiBkYXRhW2tleV0KICB9Cgp9CgoKCgo=" - webUI["html/js/log.js"] = "dmFyIGxvZ0ludGVydmFsCgoKZnVuY3Rpb24gdXBkYXRlTG9nKCkgewogIHZhciBkYXRhID0gbmV3IE9iamVjdCgpOwogIGRhdGFbImNtZCJdID0gImdldExvZyI7CiAgeFRlVmUoZGF0YSk7CiAgd3JpdGVMb2dJbkRpdigpOwogIHJldHVybgp9CgpmdW5jdGlvbiB3cml0ZUxvZ0luRGl2KCkgewogIHZhciBsb2dzID0gbG9nWyJsb2ciXTsKICB2YXIgZGl2ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNldHRpbmdzIikubGFzdENoaWxkLmxhc3RDaGlsZDsKICBkaXYuaW5uZXJIVE1MID0gIiI7CgogIHZhciBtYXggPSA1MDsKICAKICAKICBmb3IgKHZhciBpID0gMDsgaSA8IGxvZ3MubGVuZ3RoOyBpKyspIHsKICAgIHZhciBuZXdFbnRyeSA9IG5ldyBPYmplY3QoKTsKICAgIG5ld0VudHJ5WyJfZWxlbWVudCJdICA9ICJQIjsKCiAgICBpZiAobG9nc1tpXS5pbmNsdWRlcygiRVJST1IiKSkgewovLyAgICAgIGNhc2UgIndhcm5pbmdzIjogIG1zZ1R5cGUgPSAid2FybmluZ01zZyI7IGJyZWFrOwogICAgICBuZXdFbnRyeVsiY2xhc3MiXSAgID0gImVycm9yTXNnIjsKICAgIH0KCiAgICBpZiAobG9nc1tpXS5pbmNsdWRlcygiV0FSTklORyIpKSB7Ci8vICAgICAgY2FzZSAid2FybmluZ3MiOiAgbXNnVHlwZSA9ICJ3YXJuaW5nTXNnIjsgYnJlYWs7CiAgICAgIG5ld0VudHJ5WyJjbGFzcyJdICAgPSAid2FybmluZ01zZyI7CiAgICB9CgogICAgbmV3RW50cnlbIl90ZXh0Il0gICAgID0gbG9nc1tpXTsKICAgIAogICAgZGl2LmFwcGVuZENoaWxkKGNyZWF0ZUVsZW1lbnQobmV3RW50cnkpKTsKICB9CgogIGNhbGN1bGF0ZVdyYXBwZXJIZWlnaHQoKTsKICB2YXIgc2Nyb2xsRGl2ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImJveC13cmFwcGVyIik7CiAgc2Nyb2xsRGl2LnNjcm9sbFRvcCA9IHNjcm9sbERpdi5zY3JvbGxIZWlnaHQ7Cn0KCmZ1bmN0aW9uIHNob3dMb2cob2JqKSB7CiAgLy9sb2dJbnRlcnZhbCA9IHNldEludGVydmFsKHVwZGF0ZUxvZywgNTAwMCk7CgogIHZhciBsb2dzID0gbG9nWyJsb2ciXTsKCiAgdmFyIGRpdiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzZXR0aW5ncyIpOwoKICB2YXIgbmV3RW50cnkgPSBuZXcgT2JqZWN0KCk7CiAgbmV3RW50cnlbIl9lbGVtZW50Il0gID0gIkhSIjsKICBkaXYuYXBwZW5kQ2hpbGQoY3JlYXRlRWxlbWVudChuZXdFbnRyeSkpOwogIC8vZGl2ID0gZGl2Lmxhc3RDaGlsZDsKCiAgdmFyIG5ld0VudHJ5ID0gbmV3IE9iamVjdCgpOwogIG5ld0VudHJ5WyJfZWxlbWVudCJdICAgID0gIklOUFVUIjsKICBuZXdFbnRyeVsidHlwZSJdICAgICAgICA9ICJidXR0b24iOwogIG5ld0VudHJ5WyJjbGFzcyJdICAgICAgID0gImJ1dHRvbiI7CiAgbmV3RW50cnlbInZhbHVlIl0gICAgICAgPSAiRW1wdHkgTG9nIjsKICBuZXdFbnRyeVsib25jbGljayJdICAgICA9ICJlbXB0eUxvZygpIjsKICBkaXYuYXBwZW5kQ2hpbGQoY3JlYXRlRWxlbWVudChuZXdFbnRyeSkpOwoKICB2YXIgbmV3RW50cnkgPSBuZXcgT2JqZWN0KCk7CiAgbmV3RW50cnlbIl9lbGVtZW50Il0gICAgPSAiY29kZSI7CiAgbmV3RW50cnlbIl90ZXh0Il0gICAgICAgID0gIlVwZGF0ZSBMb2c6ICI7CiAgZGl2LmFwcGVuZENoaWxkKGNyZWF0ZUVsZW1lbnQobmV3RW50cnkpKTsKCiAgdmFyIG5ld0VudHJ5ID0gbmV3IE9iamVjdCgpOwogIG5ld0VudHJ5WyJfZWxlbWVudCJdICAgID0gIklOUFVUIjsKICBuZXdFbnRyeVsidHlwZSJdICAgICAgICA9ICJjaGVja2JveCI7CiAgLy9uZXdFbnRyeVsiY2hlY2tlZCJdICAgICA9ICJjaGVja2JveCI7CiAgbmV3RW50cnlbIm9uY2xpY2siXSAgICAgPSAibG9nVXBkYXRlcyh0aGlzKSI7CiAgZGl2LmFwcGVuZENoaWxkKGNyZWF0ZUVsZW1lbnQobmV3RW50cnkpKTsKCiAgdmFyIG5ld0VudHJ5ID0gbmV3IE9iamVjdCgpOwogIG5ld0VudHJ5WyJfZWxlbWVudCJdICA9ICJIUiI7CiAgZGl2LmFwcGVuZENoaWxkKGNyZWF0ZUVsZW1lbnQobmV3RW50cnkpKTsKCiAgCgoKICAKICB2YXIgbmV3V3JhcHBlciA9IG5ldyBPYmplY3QoKTsKICBuZXdXcmFwcGVyWyJfZWxlbWVudCJdICA9ICJESVYiOwogIG5ld1dyYXBwZXJbImlkIl0gICAgICAgID0gImJveC13cmFwcGVyIjsKICBkaXYuYXBwZW5kQ2hpbGQoY3JlYXRlRWxlbWVudChuZXdXcmFwcGVyKSk7CiAgZGl2ID0gZGl2Lmxhc3RDaGlsZDsKCiAgdmFyIG5ld1ByZSA9IG5ldyBPYmplY3QoKTsKICBuZXdQcmVbIl9lbGVtZW50Il0gID0gIlBSRSI7CiAgbmV3UHJlWyJpZCJdICAgICAgICA9ICJsb2dTY3JlZW4iOwogIGRpdi5hcHBlbmRDaGlsZChjcmVhdGVFbGVtZW50KG5ld1ByZSkpOwoKICBkaXYgPSBkaXYubGFzdENoaWxkOwoKICB3cml0ZUxvZ0luRGl2KCkKICByZXR1cm4KfQoKZnVuY3Rpb24gZW1wdHlMb2coKSB7CiAgdmFyIGRhdGEgPSBuZXcgT2JqZWN0KCk7CiAgZGF0YVsiY21kIl0gPSAiZW1wdHlMb2ciOwogIHhUZVZlKGRhdGEpOwogIHJldHVybgp9CgpmdW5jdGlvbiBsb2dVcGRhdGVzKGVsbSkgewogIHN3aXRjaChlbG0uY2hlY2tlZCkgewogICAgY2FzZSBmYWxzZTogY2xlYXJJbnRlcnZhbChsb2dJbnRlcnZhbCk7IGJyZWFrOwogICAgY2FzZSB0cnVlOiBsb2dJbnRlcnZhbCA9IHNldEludGVydmFsKHVwZGF0ZUxvZywgNTAwMCk7IGJyZWFrOwogICAgCiAgfQp9" - webUI["html/js/settings_ts.js"] = "dmFyIF9fZXh0ZW5kcyA9ICh0aGlzICYmIHRoaXMuX19leHRlbmRzKSB8fCAoZnVuY3Rpb24gKCkgewogICAgdmFyIGV4dGVuZFN0YXRpY3MgPSBmdW5jdGlvbiAoZCwgYikgewogICAgICAgIGV4dGVuZFN0YXRpY3MgPSBPYmplY3Quc2V0UHJvdG90eXBlT2YgfHwKICAgICAgICAgICAgKHsgX19wcm90b19fOiBbXSB9IGluc3RhbmNlb2YgQXJyYXkgJiYgZnVuY3Rpb24gKGQsIGIpIHsgZC5fX3Byb3RvX18gPSBiOyB9KSB8fAogICAgICAgICAgICBmdW5jdGlvbiAoZCwgYikgeyBmb3IgKHZhciBwIGluIGIpIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoYiwgcCkpIGRbcF0gPSBiW3BdOyB9OwogICAgICAgIHJldHVybiBleHRlbmRTdGF0aWNzKGQsIGIpOwogICAgfTsKICAgIHJldHVybiBmdW5jdGlvbiAoZCwgYikgewogICAgICAgIGV4dGVuZFN0YXRpY3MoZCwgYik7CiAgICAgICAgZnVuY3Rpb24gX18oKSB7IHRoaXMuY29uc3RydWN0b3IgPSBkOyB9CiAgICAgICAgZC5wcm90b3R5cGUgPSBiID09PSBudWxsID8gT2JqZWN0LmNyZWF0ZShiKSA6IChfXy5wcm90b3R5cGUgPSBiLnByb3RvdHlwZSwgbmV3IF9fKCkpOwogICAgfTsKfSkoKTsKdmFyIFNldHRpbmdzQ2F0ZWdvcnkgPSAvKiogQGNsYXNzICovIChmdW5jdGlvbiAoKSB7CiAgICBmdW5jdGlvbiBTZXR0aW5nc0NhdGVnb3J5KCkgewogICAgICAgIHRoaXMuRG9jdW1lbnRJRCA9ICJjb250ZW50X3NldHRpbmdzIjsKICAgIH0KICAgIFNldHRpbmdzQ2F0ZWdvcnkucHJvdG90eXBlLmNyZWF0ZUNhdGVnb3J5SGVhZGxpbmUgPSBmdW5jdGlvbiAodmFsdWUpIHsKICAgICAgICB2YXIgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIkg0Iik7CiAgICAgICAgZWxlbWVudC5pbm5lckhUTUwgPSB2YWx1ZTsKICAgICAgICByZXR1cm4gZWxlbWVudDsKICAgIH07CiAgICBTZXR0aW5nc0NhdGVnb3J5LnByb3RvdHlwZS5jcmVhdGVIUiA9IGZ1bmN0aW9uICgpIHsKICAgICAgICB2YXIgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIkhSIik7CiAgICAgICAgcmV0dXJuIGVsZW1lbnQ7CiAgICB9OwogICAgU2V0dGluZ3NDYXRlZ29yeS5wcm90b3R5cGUuY3JlYXRlU2V0dGluZ3MgPSBmdW5jdGlvbiAoc2V0dGluZ3NLZXkpIHsKICAgICAgICB2YXIgc2V0dGluZyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlRSIik7CiAgICAgICAgdmFyIGNvbnRlbnQgPSBuZXcgUG9wdXBDb250ZW50KCk7CiAgICAgICAgdmFyIGRhdGEgPSBTRVJWRVJbInNldHRpbmdzIl1bc2V0dGluZ3NLZXldOwogICAgICAgIHN3aXRjaCAoc2V0dGluZ3NLZXkpIHsKICAgICAgICAgICAgLy8gVGV4dGVpbmdhYmVuCiAgICAgICAgICAgIGNhc2UgInVwZGF0ZSI6CiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsKICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MudXBkYXRlLnRpdGxlfX0iICsgIjoiOwogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOwogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsICJ1cGRhdGUiLCBkYXRhLnRvU3RyaW5nKCkpOwogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5zZXR0aW5ncy51cGRhdGUucGxhY2Vob2xkZXJ9fSIpOwogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOwogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7CiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7CiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgImJhY2t1cC5wYXRoIjoKICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOwogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5iYWNrdXBQYXRoLnRpdGxlfX0iICsgIjoiOwogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOwogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsICJiYWNrdXAucGF0aCIsIGRhdGEpOwogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5zZXR0aW5ncy5iYWNrdXBQYXRoLnBsYWNlaG9sZGVyfX0iKTsKICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsKICAgICAgICAgICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQoaW5wdXQpOwogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOwogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJ0ZW1wLnBhdGgiOgogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7CiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLnRlbXBQYXRoLnRpdGxlfX0iICsgIjoiOwogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOwogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsICJ0ZW1wLnBhdGgiLCBkYXRhKTsKICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3suc2V0dGluZ3MudG1wUGF0aC5wbGFjZWhvbGRlcn19Iik7CiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7CiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsKICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsKICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAidXNlci5hZ2VudCI6CiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsKICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MudXNlckFnZW50LnRpdGxlfX0iICsgIjoiOwogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOwogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsICJ1c2VyLmFnZW50IiwgZGF0YSk7CiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnNldHRpbmdzLnVzZXJBZ2VudC5wbGFjZWhvbGRlcn19Iik7CiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7CiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsKICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsKICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAiYnVmZmVyLnRpbWVvdXQiOgogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7CiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmJ1ZmZlclRpbWVvdXQudGl0bGV9fSIgKyAiOiI7CiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7CiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgImJ1ZmZlci50aW1lb3V0IiwgZGF0YSk7CiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnNldHRpbmdzLmJ1ZmZlclRpbWVvdXQucGxhY2Vob2xkZXJ9fSIpOwogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOwogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7CiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7CiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgImZmbXBlZy5wYXRoIjoKICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOwogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5mZm1wZWdQYXRoLnRpdGxlfX0iICsgIjoiOwogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOwogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsICJmZm1wZWcucGF0aCIsIGRhdGEpOwogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5zZXR0aW5ncy5mZm1wZWdQYXRoLnBsYWNlaG9sZGVyfX0iKTsKICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsKICAgICAgICAgICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQoaW5wdXQpOwogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOwogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJmZm1wZWcub3B0aW9ucyI6CiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsKICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MuZmZtcGVnT3B0aW9ucy50aXRsZX19IiArICI6IjsKICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsKICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCAiZmZtcGVnLm9wdGlvbnMiLCBkYXRhKTsKICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3suc2V0dGluZ3MuZmZtcGVnT3B0aW9ucy5wbGFjZWhvbGRlcn19Iik7CiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7CiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsKICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsKICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAidmxjLnBhdGgiOgogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7CiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLnZsY1BhdGgudGl0bGV9fSIgKyAiOiI7CiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7CiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgInZsYy5wYXRoIiwgZGF0YSk7CiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnNldHRpbmdzLnZsY1BhdGgucGxhY2Vob2xkZXJ9fSIpOwogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOwogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7CiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7CiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgInZsYy5vcHRpb25zIjoKICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOwogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy52bGNPcHRpb25zLnRpdGxlfX0iICsgIjoiOwogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOwogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsICJ2bGMub3B0aW9ucyIsIGRhdGEpOwogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5zZXR0aW5ncy52bGNPcHRpb25zLnBsYWNlaG9sZGVyfX0iKTsKICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsKICAgICAgICAgICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQoaW5wdXQpOwogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOwogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAvLyBDaGVja2JveGVuCiAgICAgICAgICAgIGNhc2UgImF1dGhlbnRpY2F0aW9uLndlYiI6CiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsKICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MuYXV0aGVudGljYXRpb25XRUIudGl0bGV9fSIgKyAiOiI7CiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7CiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KHNldHRpbmdzS2V5KTsKICAgICAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhOwogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOwogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7CiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7CiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgImF1dGhlbnRpY2F0aW9uLnBtcyI6CiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsKICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MuYXV0aGVudGljYXRpb25QTVMudGl0bGV9fSIgKyAiOiI7CiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7CiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KHNldHRpbmdzS2V5KTsKICAgICAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhOwogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOwogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7CiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7CiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgImF1dGhlbnRpY2F0aW9uLm0zdSI6CiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsKICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MuYXV0aGVudGljYXRpb25NM1UudGl0bGV9fSIgKyAiOiI7CiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7CiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KHNldHRpbmdzS2V5KTsKICAgICAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhOwogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOwogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7CiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7CiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgImF1dGhlbnRpY2F0aW9uLnhtbCI6CiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsKICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MuYXV0aGVudGljYXRpb25YTUwudGl0bGV9fSIgKyAiOiI7CiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7CiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KHNldHRpbmdzS2V5KTsKICAgICAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhOwogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOwogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7CiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7CiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgImF1dGhlbnRpY2F0aW9uLmFwaSI6CiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsKICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MuYXV0aGVudGljYXRpb25BUEkudGl0bGV9fSIgKyAiOiI7CiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7CiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KHNldHRpbmdzS2V5KTsKICAgICAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhOwogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOwogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7CiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7CiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgImZpbGVzLnVwZGF0ZSI6CiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsKICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MuZmlsZXNVcGRhdGUudGl0bGV9fSIgKyAiOiI7CiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7CiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KHNldHRpbmdzS2V5KTsKICAgICAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhOwogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOwogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7CiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7CiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgImNhY2hlLmltYWdlcyI6CiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsKICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MuY2FjaGVJbWFnZXMudGl0bGV9fSIgKyAiOiI7CiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7CiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KHNldHRpbmdzS2V5KTsKICAgICAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhOwogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOwogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7CiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7CiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgInhlcGcucmVwbGFjZS5taXNzaW5nLmltYWdlcyI6CiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsKICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MucmVwbGFjZUVtcHR5SW1hZ2VzLnRpdGxlfX0iICsgIjoiOwogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOwogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChzZXR0aW5nc0tleSk7CiAgICAgICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YTsKICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsKICAgICAgICAgICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQoaW5wdXQpOwogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOwogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJ4dGV2ZUF1dG9VcGRhdGUiOgogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7CiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLnh0ZXZlQXV0b1VwZGF0ZS50aXRsZX19IiArICI6IjsKICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsKICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goc2V0dGluZ3NLZXkpOwogICAgICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGE7CiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7CiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsKICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsKICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAiYXBpIjoKICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOwogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5hcGkudGl0bGV9fSIgKyAiOiI7CiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7CiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KHNldHRpbmdzS2V5KTsKICAgICAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhOwogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOwogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7CiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7CiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIC8vIFNlbGVjdAogICAgICAgICAgICBjYXNlICJ0dW5lciI6CiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsKICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MudHVuZXIudGl0bGV9fSIgKyAiOiI7CiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7CiAgICAgICAgICAgICAgICB2YXIgdGV4dCA9IG5ldyBBcnJheSgpOwogICAgICAgICAgICAgICAgdmFyIHZhbHVlcyA9IG5ldyBBcnJheSgpOwogICAgICAgICAgICAgICAgZm9yICh2YXIgaSA9IDE7IGkgPD0gMTAwOyBpKyspIHsKICAgICAgICAgICAgICAgICAgICB0ZXh0LnB1c2goaSk7CiAgICAgICAgICAgICAgICAgICAgdmFsdWVzLnB1c2goaSk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCBkYXRhLCBzZXR0aW5nc0tleSk7CiAgICAgICAgICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOwogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChzZWxlY3QpOwogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOwogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJlcGdTb3VyY2UiOgogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7CiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmVwZ1NvdXJjZS50aXRsZX19IiArICI6IjsKICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsKICAgICAgICAgICAgICAgIHZhciB0ZXh0ID0gWyJQTVMiLCAiWEVQRyJdOwogICAgICAgICAgICAgICAgdmFyIHZhbHVlcyA9IFsiUE1TIiwgIlhFUEciXTsKICAgICAgICAgICAgICAgIHZhciBzZWxlY3QgPSBjb250ZW50LmNyZWF0ZVNlbGVjdCh0ZXh0LCB2YWx1ZXMsIGRhdGEsIHNldHRpbmdzS2V5KTsKICAgICAgICAgICAgICAgIHNlbGVjdC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7CiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKHNlbGVjdCk7CiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7CiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgImJhY2t1cC5rZWVwIjoKICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOwogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5iYWNrdXBLZWVwLnRpdGxlfX0iICsgIjoiOwogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOwogICAgICAgICAgICAgICAgdmFyIHRleHQgPSBbIjUiLCAiMTAiLCAiMjAiLCAiMzAiLCAiNDAiLCAiNTAiXTsKICAgICAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBbIjUiLCAiMTAiLCAiMjAiLCAiMzAiLCAiNDAiLCAiNTAiXTsKICAgICAgICAgICAgICAgIHZhciBzZWxlY3QgPSBjb250ZW50LmNyZWF0ZVNlbGVjdCh0ZXh0LCB2YWx1ZXMsIGRhdGEsIHNldHRpbmdzS2V5KTsKICAgICAgICAgICAgICAgIHNlbGVjdC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7CiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKHNlbGVjdCk7CiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7CiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgImJ1ZmZlci5zaXplLmtiIjoKICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOwogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5idWZmZXJTaXplLnRpdGxlfX0iICsgIjoiOwogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOwogICAgICAgICAgICAgICAgdmFyIHRleHQgPSBbIjAuNSBNQiIsICIxIE1CIiwgIjIgTUIiLCAiMyBNQiIsICI0IE1CIiwgIjUgTUIiLCAiNiBNQiIsICI3IE1CIiwgIjggTUIiXTsKICAgICAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBbIjUxMiIsICIxMDI0IiwgIjIwNDgiLCAiMzA3MiIsICI0MDk2IiwgIjUxMjAiLCAiNjE0NCIsICI3MTY4IiwgIjgxOTIiXTsKICAgICAgICAgICAgICAgIHZhciBzZWxlY3QgPSBjb250ZW50LmNyZWF0ZVNlbGVjdCh0ZXh0LCB2YWx1ZXMsIGRhdGEsIHNldHRpbmdzS2V5KTsKICAgICAgICAgICAgICAgIHNlbGVjdC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7CiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKHNlbGVjdCk7CiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7CiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgImJ1ZmZlciI6CiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsKICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3Muc3RyZWFtQnVmZmVyaW5nLnRpdGxlfX0iICsgIjoiOwogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOwogICAgICAgICAgICAgICAgdmFyIHRleHQgPSBbInt7LnNldHRpbmdzLnN0cmVhbUJ1ZmZlcmluZy5pbmZvX2ZhbHNlfX0iLCAieFRlVmU6ICh7ey5zZXR0aW5ncy5zdHJlYW1CdWZmZXJpbmcuaW5mb194dGV2ZX19KSIsICJGRm1wZWc6ICh7ey5zZXR0aW5ncy5zdHJlYW1CdWZmZXJpbmcuaW5mb19mZm1wZWd9fSkiLCAiVkxDOiAoe3suc2V0dGluZ3Muc3RyZWFtQnVmZmVyaW5nLmluZm9fdmxjfX0pIl07CiAgICAgICAgICAgICAgICB2YXIgdmFsdWVzID0gWyItIiwgInh0ZXZlIiwgImZmbXBlZyIsICJ2bGMiXTsKICAgICAgICAgICAgICAgIHZhciBzZWxlY3QgPSBjb250ZW50LmNyZWF0ZVNlbGVjdCh0ZXh0LCB2YWx1ZXMsIGRhdGEsIHNldHRpbmdzS2V5KTsKICAgICAgICAgICAgICAgIHNlbGVjdC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7CiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKHNlbGVjdCk7CiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7CiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgInVkcHh5IjoKICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOwogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy51ZHB4eS50aXRsZX19IiArICI6IjsKICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsKICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCAidWRweHkiLCBkYXRhKTsKICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3suc2V0dGluZ3MudWRweHkucGxhY2Vob2xkZXJ9fSIpOwogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOwogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7CiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7CiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgfQogICAgICAgIHJldHVybiBzZXR0aW5nOwogICAgfTsKICAgIFNldHRpbmdzQ2F0ZWdvcnkucHJvdG90eXBlLmNyZWF0ZURlc2NyaXB0aW9uID0gZnVuY3Rpb24gKHNldHRpbmdzS2V5KSB7CiAgICAgICAgdmFyIGRlc2NyaXB0aW9uID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVFIiKTsKICAgICAgICB2YXIgdGV4dDsKICAgICAgICBzd2l0Y2ggKHNldHRpbmdzS2V5KSB7CiAgICAgICAgICAgIGNhc2UgImF1dGhlbnRpY2F0aW9uLndlYiI6CiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLmF1dGhlbnRpY2F0aW9uV0VCLmRlc2NyaXB0aW9ufX0iOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgImF1dGhlbnRpY2F0aW9uLm0zdSI6CiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLmF1dGhlbnRpY2F0aW9uTTNVLmRlc2NyaXB0aW9ufX0iOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgImF1dGhlbnRpY2F0aW9uLnBtcyI6CiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLmF1dGhlbnRpY2F0aW9uUE1TLmRlc2NyaXB0aW9ufX0iOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgImF1dGhlbnRpY2F0aW9uLnhtbCI6CiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLmF1dGhlbnRpY2F0aW9uWE1MLmRlc2NyaXB0aW9ufX0iOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgImF1dGhlbnRpY2F0aW9uLmFwaSI6CiAgICAgICAgICAgICAgICBpZiAoU0VSVkVSWyJzZXR0aW5ncyJdWyJhdXRoZW50aWNhdGlvbi53ZWIiXSA9PSB0cnVlKSB7CiAgICAgICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5hdXRoZW50aWNhdGlvbkFQSS5kZXNjcmlwdGlvbn19IjsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJ4dGV2ZUF1dG9VcGRhdGUiOgogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy54dGV2ZUF1dG9VcGRhdGUuZGVzY3JpcHRpb259fSI7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAiYmFja3VwLmtlZXAiOgogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5iYWNrdXBLZWVwLmRlc2NyaXB0aW9ufX0iOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgImJhY2t1cC5wYXRoIjoKICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MuYmFja3VwUGF0aC5kZXNjcmlwdGlvbn19IjsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJ0ZW1wLnBhdGgiOgogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy50ZW1wUGF0aC5kZXNjcmlwdGlvbn19IjsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJidWZmZXIiOgogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5zdHJlYW1CdWZmZXJpbmcuZGVzY3JpcHRpb259fSI7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAiYnVmZmVyLnNpemUua2IiOgogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5idWZmZXJTaXplLmRlc2NyaXB0aW9ufX0iOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgImJ1ZmZlci50aW1lb3V0IjoKICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MuYnVmZmVyVGltZW91dC5kZXNjcmlwdGlvbn19IjsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJ1c2VyLmFnZW50IjoKICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MudXNlckFnZW50LmRlc2NyaXB0aW9ufX0iOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgImZmbXBlZy5wYXRoIjoKICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MuZmZtcGVnUGF0aC5kZXNjcmlwdGlvbn19IjsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJmZm1wZWcub3B0aW9ucyI6CiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLmZmbXBlZ09wdGlvbnMuZGVzY3JpcHRpb259fSI7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAidmxjLnBhdGgiOgogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy52bGNQYXRoLmRlc2NyaXB0aW9ufX0iOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgInZsYy5vcHRpb25zIjoKICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MudmxjT3B0aW9ucy5kZXNjcmlwdGlvbn19IjsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJlcGdTb3VyY2UiOgogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5lcGdTb3VyY2UuZGVzY3JpcHRpb259fSI7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAidHVuZXIiOgogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy50dW5lci5kZXNjcmlwdGlvbn19IjsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJ1cGRhdGUiOgogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy51cGRhdGUuZGVzY3JpcHRpb259fSI7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAiYXBpIjoKICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MuYXBpLmRlc2NyaXB0aW9ufX0iOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgImZpbGVzLnVwZGF0ZSI6CiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLmZpbGVzVXBkYXRlLmRlc2NyaXB0aW9ufX0iOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgImNhY2hlLmltYWdlcyI6CiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLmNhY2hlSW1hZ2VzLmRlc2NyaXB0aW9ufX0iOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgInhlcGcucmVwbGFjZS5taXNzaW5nLmltYWdlcyI6CiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLnJlcGxhY2VFbXB0eUltYWdlcy5kZXNjcmlwdGlvbn19IjsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJ1ZHB4eSI6CiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLnVkcHh5LmRlc2NyaXB0aW9ufX0iOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICAgICB0ZXh0ID0gIiI7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICB9CiAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7CiAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICIiOwogICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsKICAgICAgICB2YXIgcHJlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiUFJFIik7CiAgICAgICAgcHJlLmlubmVySFRNTCA9IHRleHQ7CiAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChwcmUpOwogICAgICAgIGRlc2NyaXB0aW9uLmFwcGVuZENoaWxkKHRkTGVmdCk7CiAgICAgICAgZGVzY3JpcHRpb24uYXBwZW5kQ2hpbGQodGRSaWdodCk7CiAgICAgICAgcmV0dXJuIGRlc2NyaXB0aW9uOwogICAgfTsKICAgIHJldHVybiBTZXR0aW5nc0NhdGVnb3J5Owp9KCkpOwp2YXIgU2V0dGluZ3NDYXRlZ29yeUl0ZW0gPSAvKiogQGNsYXNzICovIChmdW5jdGlvbiAoX3N1cGVyKSB7CiAgICBfX2V4dGVuZHMoU2V0dGluZ3NDYXRlZ29yeUl0ZW0sIF9zdXBlcik7CiAgICBmdW5jdGlvbiBTZXR0aW5nc0NhdGVnb3J5SXRlbShoZWFkbGluZSwgc2V0dGluZ3NLZXlzKSB7CiAgICAgICAgdmFyIF90aGlzID0gX3N1cGVyLmNhbGwodGhpcykgfHwgdGhpczsKICAgICAgICBfdGhpcy5oZWFkbGluZSA9IGhlYWRsaW5lOwogICAgICAgIF90aGlzLnNldHRpbmdzS2V5cyA9IHNldHRpbmdzS2V5czsKICAgICAgICByZXR1cm4gX3RoaXM7CiAgICB9CiAgICBTZXR0aW5nc0NhdGVnb3J5SXRlbS5wcm90b3R5cGUuY3JlYXRlQ2F0ZWdvcnkgPSBmdW5jdGlvbiAoKSB7CiAgICAgICAgdmFyIF90aGlzID0gdGhpczsKICAgICAgICB2YXIgaGVhZGxpbmUgPSB0aGlzLmNyZWF0ZUNhdGVnb3J5SGVhZGxpbmUodGhpcy5oZWFkbGluZSk7CiAgICAgICAgdmFyIHNldHRpbmdzS2V5cyA9IHRoaXMuc2V0dGluZ3NLZXlzOwogICAgICAgIHZhciBkb2MgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCh0aGlzLkRvY3VtZW50SUQpOwogICAgICAgIGRvYy5hcHBlbmRDaGlsZChoZWFkbGluZSk7CiAgICAgICAgLy8gVGFiZWxsZSBmw7xyIGRpZSBLYXRlZ29yaWUgZXJzdGVsbGVuCiAgICAgICAgdmFyIHRhYmxlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEFCTEUiKTsKICAgICAgICB2YXIga2V5cyA9IHNldHRpbmdzS2V5cy5zcGxpdCgiLCIpOwogICAgICAgIGtleXMuZm9yRWFjaChmdW5jdGlvbiAoc2V0dGluZ3NLZXkpIHsKICAgICAgICAgICAgc3dpdGNoIChzZXR0aW5nc0tleSkgewogICAgICAgICAgICAgICAgY2FzZSAiYXV0aGVudGljYXRpb24ucG1zIjoKICAgICAgICAgICAgICAgIGNhc2UgImF1dGhlbnRpY2F0aW9uLm0zdSI6CiAgICAgICAgICAgICAgICBjYXNlICJhdXRoZW50aWNhdGlvbi54bWwiOgogICAgICAgICAgICAgICAgY2FzZSAiYXV0aGVudGljYXRpb24uYXBpIjoKICAgICAgICAgICAgICAgICAgICBpZiAoU0VSVkVSWyJzZXR0aW5ncyJdWyJhdXRoZW50aWNhdGlvbi53ZWIiXSA9PSBmYWxzZSkgewogICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAgICAgICAgIHZhciBpdGVtID0gX3RoaXMuY3JlYXRlU2V0dGluZ3Moc2V0dGluZ3NLZXkpOwogICAgICAgICAgICAgICAgICAgIHZhciBkZXNjcmlwdGlvbiA9IF90aGlzLmNyZWF0ZURlc2NyaXB0aW9uKHNldHRpbmdzS2V5KTsKICAgICAgICAgICAgICAgICAgICB0YWJsZS5hcHBlbmRDaGlsZChpdGVtKTsKICAgICAgICAgICAgICAgICAgICB0YWJsZS5hcHBlbmRDaGlsZChkZXNjcmlwdGlvbik7CiAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIH0KICAgICAgICB9KTsKICAgICAgICBkb2MuYXBwZW5kQ2hpbGQodGFibGUpOwogICAgICAgIGRvYy5hcHBlbmRDaGlsZCh0aGlzLmNyZWF0ZUhSKCkpOwogICAgfTsKICAgIHJldHVybiBTZXR0aW5nc0NhdGVnb3J5SXRlbTsKfShTZXR0aW5nc0NhdGVnb3J5KSk7CmZ1bmN0aW9uIHNob3dTZXR0aW5ncygpIHsKICAgIGNvbnNvbGUubG9nKCJTRVRUSU5HUyIpOwogICAgZm9yICh2YXIgaSA9IDA7IGkgPCBzZXR0aW5nc0NhdGVnb3J5Lmxlbmd0aDsgaSsrKSB7CiAgICAgICAgc2V0dGluZ3NDYXRlZ29yeVtpXS5jcmVhdGVDYXRlZ29yeSgpOwogICAgfQp9CmZ1bmN0aW9uIHNhdmVTZXR0aW5ncygpIHsKICAgIGNvbnNvbGUubG9nKCJTYXZlIFNldHRpbmdzIik7CiAgICB2YXIgY21kID0gInNhdmVTZXR0aW5ncyI7CiAgICB2YXIgZGl2ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnRlbnRfc2V0dGluZ3MiKTsKICAgIHZhciBzZXR0aW5ncyA9IGRpdi5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCJjaGFuZ2VkIik7CiAgICB2YXIgbmV3U2V0dGluZ3MgPSBuZXcgT2JqZWN0KCk7CiAgICBmb3IgKHZhciBpID0gMDsgaSA8IHNldHRpbmdzLmxlbmd0aDsgaSsrKSB7CiAgICAgICAgdmFyIG5hbWU7CiAgICAgICAgdmFyIHZhbHVlOwogICAgICAgIHN3aXRjaCAoc2V0dGluZ3NbaV0udGFnTmFtZSkgewogICAgICAgICAgICBjYXNlICJJTlBVVCI6CiAgICAgICAgICAgICAgICBzd2l0Y2ggKHNldHRpbmdzW2ldLnR5cGUpIHsKICAgICAgICAgICAgICAgICAgICBjYXNlICJjaGVja2JveCI6CiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWUgPSBzZXR0aW5nc1tpXS5uYW1lOwogICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IHNldHRpbmdzW2ldLmNoZWNrZWQ7CiAgICAgICAgICAgICAgICAgICAgICAgIG5ld1NldHRpbmdzW25hbWVdID0gdmFsdWU7CiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICAgIGNhc2UgInRleHQiOgogICAgICAgICAgICAgICAgICAgICAgICBuYW1lID0gc2V0dGluZ3NbaV0ubmFtZTsKICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSBzZXR0aW5nc1tpXS52YWx1ZTsKICAgICAgICAgICAgICAgICAgICAgICAgc3dpdGNoIChuYW1lKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYXNlICJ1cGRhdGUiOgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlID0gdmFsdWUuc3BsaXQoIiwiKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IHZhbHVlLmZpbHRlcihmdW5jdGlvbiAoZSkgeyByZXR1cm4gZTsgfSk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYXNlICJidWZmZXIudGltZW91dCI6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSBwYXJzZUZsb2F0KHZhbHVlKTsKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICBuZXdTZXR0aW5nc1tuYW1lXSA9IHZhbHVlOwogICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJTRUxFQ1QiOgogICAgICAgICAgICAgICAgbmFtZSA9IHNldHRpbmdzW2ldLm5hbWU7CiAgICAgICAgICAgICAgICB2YWx1ZSA9IHNldHRpbmdzW2ldLnZhbHVlOwogICAgICAgICAgICAgICAgLy8gV2VubiBkZXIgV2VydCBlaW5lIFphaGwgaXN0LCB3aXJkIGRpZXNlciBhbHMgWmFobCBnZXNwZWljaGVydAogICAgICAgICAgICAgICAgaWYgKGlzTmFOKHZhbHVlKSkgewogICAgICAgICAgICAgICAgICAgIG5ld1NldHRpbmdzW25hbWVdID0gdmFsdWU7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgICAgICBuZXdTZXR0aW5nc1tuYW1lXSA9IHBhcnNlSW50KHZhbHVlKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgIH0KICAgIH0KICAgIHZhciBkYXRhID0gbmV3IE9iamVjdCgpOwogICAgZGF0YVsic2V0dGluZ3MiXSA9IG5ld1NldHRpbmdzOwogICAgdmFyIHNlcnZlciA9IG5ldyBTZXJ2ZXIoY21kKTsKICAgIHNlcnZlci5yZXF1ZXN0KGRhdGEpOwp9Cg==" - webUI["html/js/users.js"] = "ZnVuY3Rpb24gb3BlblVzZXJzKGVsbSkgewogIGNvbG9tblNvcnQgPSAwOwoKICB2YXIgbmV3RGl2ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNldHRpbmdzIik7CiAgCiAgdmFyIG5ld0VudHJ5ID0gbmV3IE9iamVjdCgpOwogIG5ld0VudHJ5WyJfZWxlbWVudCJdICA9ICJIUiI7CiAgbmV3RGl2LmFwcGVuZENoaWxkKGNyZWF0ZUVsZW1lbnQobmV3RW50cnkpKTsKCiAgdmFyIG5ld0VudHJ5ID0gbmV3IE9iamVjdCgpOwogIG5ld0VudHJ5WyJfZWxlbWVudCJdICA9ICJJTlBVVCI7CiAgbmV3RW50cnlbInR5cGUiXSA9ICJidXR0b24iOwogIG5ld0VudHJ5WyJjbGFzcyJdID0gImJ1dHRvbiI7CiAgbmV3RW50cnlbInZhbHVlIl0gPSAiTmV3IjsKICBuZXdFbnRyeVsib25jbGljayJdID0gInVzZXJEZXRhaWwoMCkiOwogIG5ld0Rpdi5hcHBlbmRDaGlsZChjcmVhdGVFbGVtZW50KG5ld0VudHJ5KSk7CgogIHZhciBkaXYgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic2V0dGluZ3MiKTsKCiAgIC8vIEJ1aWxkIHRhYmxlCiAgdmFyIG5ld1RhYmxlID0gbmV3IE9iamVjdCgpOwogIG5ld1RhYmxlWyJfZWxlbWVudCJdICA9ICJUQUJMRSI7CiAgbmV3VGFibGVbImlkIl0gICAgICAgID0gImlkX21hcHBpbmciOwogIG5ld1RhYmxlWyJjbGFzcyJdICAgICA9ICJ0YWJsZS1tYXBwaW5nIjsKICBkaXYuYXBwZW5kQ2hpbGQoY3JlYXRlRWxlbWVudChuZXdUYWJsZSkpOwoKICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7IAogICAgY3JlYXRlVXNlcnNUYWJsZSgpOyAKICB9LCAxMCk7Cn0KCmZ1bmN0aW9uIGNyZWF0ZVVzZXJzVGFibGUoKSB7CiAgdmFyIHRhYmxlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImlkX21hcHBpbmciKTsKICB0YWJsZS5pbm5lckhUTUwgPSAiIjsKICB2YXIgbmV3VFIgPSBuZXcgT2JqZWN0KCk7CiAgbmV3VFJbIl9lbGVtZW50Il0gPSAiVFIiOwogIG5ld1RSWyJjbGFzcyJdICAgID0gInRhYmxlLW1hcHBpbmctaGVhZGVyIjsKICB0YWJsZS5hcHBlbmRDaGlsZChjcmVhdGVFbGVtZW50KG5ld1RSKSk7CgogIHZhciB0ciA9IHRhYmxlLmxhc3RDaGlsZDsKICB2YXIgdHJIZWFkbGluZXMgPSBuZXcgQXJyYXkoIlVzZXJuYW1lIiwgIlBhc3N3b3JkIiwgIldFQiIsICJQTVMiLCAiTTNVIiwgIlhNTCIsICJBUEkiKQoKICBmb3IgKHZhciBpID0gMDsgaSA8IHRySGVhZGxpbmVzLmxlbmd0aDsgaSsrKSB7CiAgICB2YXIgbmV3VEQgPSBuZXcgT2JqZWN0KCk7CiAgICBuZXdURFsiX2VsZW1lbnQiXSA9ICJURCI7CiAgICBuZXdURFsiX3RleHQiXSAgICA9IHRySGVhZGxpbmVzW2ldOwogICAgdHIuYXBwZW5kQ2hpbGQoY3JlYXRlRWxlbWVudChuZXdURCkpOwogIH0KCgogIC8vIFNvcnQgdXNlcnMKICB2YXIgdXNlcklkcyA9IGdldE9iaktleXModXNlcnMpOwoKICB2YXIgdXNlck9iaiA9IG5ldyBPYmplY3QoKTsKCiAgZm9yICh2YXIgaSA9IDA7IGkgPCB1c2VySWRzLmxlbmd0aDsgaSsrKSB7CiAgICB2YXIgdXNlcm5hbWUgPSB1c2Vyc1t1c2VySWRzW2ldXVsiZGF0YSJdWyJ1c2VybmFtZSJdOwogICAgdXNlck9ialt1c2VybmFtZV0gPSB1c2VySWRzW2ldOwogIH0KCiAgdmFyIGFsbFVzZXJzID0gZ2V0T2JqS2V5cyh1c2VyT2JqKTsKICBhbGxVc2Vycy5zb3J0KCk7CiAgLy8gLS0KCiAgZm9yICh2YXIgaSA9IDA7IGkgPCBhbGxVc2Vycy5sZW5ndGg7IGkrKykgewogICAgdmFyIHRhYmxlICAgICA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJpZF9tYXBwaW5nIik7CiAgICB2YXIgdXNlcklEICAgID0gdXNlck9ialthbGxVc2Vyc1tpXV07CiAgICB2YXIgdXNlcm5hbWUgID0gYWxsVXNlcnNbaV07CiAgICB2YXIgaXRlbSAgICAgID0gdXNlcnNbdXNlcklEXVsiZGF0YSJdOwoKICAgIC8vIENyZWF0ZSBUUgogICAgdmFyIG5ld1RSID0gbmV3IE9iamVjdCgpOwogICAgbmV3VFJbIl9lbGVtZW50Il0gICAgICAgPSAiVFIiOwogICAgbmV3VFJbImNsYXNzIl0gICAgICAgICAgPSAiIjsKICAgIG5ld1RSWyJpZCJdICAgICAgICAgICAgID0gdXNlcklEOwogICAgbmV3VFJbIm9uY2xpY2siXSAgICAgICAgPSAnamF2YXNjcmlwdDogdXNlckRldGFpbCgiJyArIHVzZXJJRCArICciKTsnOwogICAgdGFibGUuYXBwZW5kQ2hpbGQoY3JlYXRlRWxlbWVudChuZXdUUikpOwoKICAgIHZhciB0ciA9IHRhYmxlLmxhc3RDaGlsZDsKCiAgICAvLyBDcmVhdGUgdXNlcm5hbWUgVEQKICAgIHZhciBuZXdURCA9IG5ldyBPYmplY3QoKTsKICAgIG5ld1REWyJfZWxlbWVudCJdID0gIlAiOwogICAgbmV3VERbIl90ZXh0Il0gICAgPSB1c2VybmFtZTsKICAgIGNyZWF0ZU5ld1REKG5ld1RELCB0cik7CgogICAgLy8gQ3JlYXRlIHBhc3N3b3JkIFRECiAgICB2YXIgbmV3VEQgPSBuZXcgT2JqZWN0KCk7CiAgICBuZXdURFsiX2VsZW1lbnQiXSA9ICJQIjsKICAgIG5ld1REWyJfdGV4dCJdICAgID0gIi4uLi4uIjsKICAgIGNyZWF0ZU5ld1REKG5ld1RELCB0cik7CgogICAgLy8gQ3JlYXRlIHdlYiBhY2Nlc3MKICAgIHZhciBuZXdURCA9IG5ldyBPYmplY3QoKTsKICAgIG5ld1REWyJfZWxlbWVudCJdID0gIlAiOwogICAgc3dpdGNoKGl0ZW1bImF1dGhlbnRpY2F0aW9uLndlYiJdKXsKICAgICAgY2FzZSB0cnVlOiBuZXdURFsiX3RleHQiXSAgICA9ICLinJMiOyBicmVhazsKICAgICAgZGVmYXVsdDogICBuZXdURFsiX3RleHQiXSAgICA9ICItIjsgYnJlYWs7CiAgICB9CiAgICBjcmVhdGVOZXdURChuZXdURCwgdHIpOwoKICAgIC8vIENyZWF0ZSBQTVMgYWNjZXNzCiAgICB2YXIgbmV3VEQgPSBuZXcgT2JqZWN0KCk7CiAgICBuZXdURFsiX2VsZW1lbnQiXSA9ICJQIjsKICAgIHN3aXRjaChpdGVtWyJhdXRoZW50aWNhdGlvbi5wbXMiXSl7CiAgICAgIGNhc2UgdHJ1ZTogbmV3VERbIl90ZXh0Il0gICAgPSAi4pyTIjsgYnJlYWs7CiAgICAgIGRlZmF1bHQ6ICAgbmV3VERbIl90ZXh0Il0gICAgPSAiLSI7IGJyZWFrOwogICAgfQogICAgY3JlYXRlTmV3VEQobmV3VEQsIHRyKTsKCiAgICAvLyBDcmVhdGUgTTNVIGFjY2VzcwogICAgdmFyIG5ld1REID0gbmV3IE9iamVjdCgpOwogICAgbmV3VERbIl9lbGVtZW50Il0gPSAiUCI7CiAgICBzd2l0Y2goaXRlbVsiYXV0aGVudGljYXRpb24ubTN1Il0pewogICAgICBjYXNlIHRydWU6IG5ld1REWyJfdGV4dCJdICAgID0gIuKckyI7IGJyZWFrOwogICAgICBkZWZhdWx0OiAgIG5ld1REWyJfdGV4dCJdICAgID0gIi0iOyBicmVhazsKICAgIH0KICAgIGNyZWF0ZU5ld1REKG5ld1RELCB0cik7CgogICAgLy8gQ3JlYXRlIFhNTFRWIGFjY2VzcwogICAgdmFyIG5ld1REID0gbmV3IE9iamVjdCgpOwogICAgbmV3VERbIl9lbGVtZW50Il0gPSAiUCI7CiAgICBzd2l0Y2goaXRlbVsiYXV0aGVudGljYXRpb24ueG1sIl0pewogICAgICBjYXNlIHRydWU6IG5ld1REWyJfdGV4dCJdICAgID0gIuKckyI7IGJyZWFrOwogICAgICBkZWZhdWx0OiAgIG5ld1REWyJfdGV4dCJdICAgID0gIi0iOyBicmVhazsKICAgIH0KICAgIGNyZWF0ZU5ld1REKG5ld1RELCB0cik7CgogICAgLy8gQ3JlYXRlIEFQSSBhY2Nlc3MKICAgIHZhciBuZXdURCA9IG5ldyBPYmplY3QoKTsKICAgIG5ld1REWyJfZWxlbWVudCJdID0gIlAiOwoKICAgIHN3aXRjaChpdGVtWyJhdXRoZW50aWNhdGlvbi5hcGkiXSl7CiAgICAgIGNhc2UgdHJ1ZTogbmV3VERbIl90ZXh0Il0gICAgPSAi4pyTIjsgYnJlYWs7CiAgICAgIGRlZmF1bHQ6ICAgbmV3VERbIl90ZXh0Il0gICAgPSAiLSI7IGJyZWFrOwogICAgfQogICAgY3JlYXRlTmV3VEQobmV3VEQsIHRyKTsKCiAgfQoKICAvLyB1c2FnZSBJbmZvICAKICB2YXIgZGl2ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNldHRpbmdzIik7CiAgc3dpdGNoKG1lbnVbYWN0aXZlTWVudS5pZF0uaGFzT3duUHJvcGVydHkoIl91c2FnZSIpKSB7CiAgICBjYXNlIHRydWU6IAogICAgICB2YXIgdXNhZ2VJdGVtID0gbmV3IE9iamVjdCgpOwogICAgICB1c2FnZUl0ZW1bIl9lbGVtZW50Il0gPSAiUFJFIgogICAgICB1c2FnZUl0ZW1bIl90ZXh0Il0gICAgPSBtZW51W2FjdGl2ZU1lbnUuaWRdWyJfdXNhZ2UiXTsKCiAgICAgIHZhciBuZXdIUiA9IG5ldyBPYmplY3QoKTsKICAgICAgbmV3SFJbIl9lbGVtZW50Il0gPSAiSFIiCiAgICAgIGRpdi5hcHBlbmRDaGlsZChjcmVhdGVFbGVtZW50KG5ld0hSKSk7CiAgICAgIGRpdi5hcHBlbmRDaGlsZChjcmVhdGVFbGVtZW50KHVzYWdlSXRlbSkpOwogIH0KCiAgc29ydFRhYmxlKDApOwp9CgpmdW5jdGlvbiB1c2VyRGV0YWlsKHVzZXJJRCkgewogIHNob3dQb3BVcEVsZW1lbnQoJ3VzZXItZGV0YWlsJyk7CiAgc2V0VGltZW91dChmdW5jdGlvbigpeyAKICAgIHNob3dFbGVtZW50KCJwb3B1cCIsIHRydWUpOwogIH0sIDEwKTsKICB2YXIgZGVmYXVsdFVzZXI7CgogIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzYXZlVXNlckRldGFpbCIpLnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBzYXZlVXNlckRldGFpbCgiJyArIHVzZXJJRCArICciLCBmYWxzZSknKTsKICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZGVsZXRlVXNlckRldGFpbCIpLnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBzYXZlVXNlckRldGFpbCgiJyArIHVzZXJJRCArICciLCB0cnVlKScpOwoKICB2YXIgZGF0YSA9IG5ldyBPYmplY3QoKTsKICAKICBzd2l0Y2godXNlcklEKSB7CiAgICBjYXNlIDA6ICAgLy8gTmV3IFVzZXIKICAgICAgZGF0YVsidXNlcm5hbWUiXSA9ICIiOwogICAgICBkYXRhWyJhdXRoZW50aWNhdGlvbi53ZWIiXSA9IGZhbHNlOwogICAgICBkYXRhWyJhdXRoZW50aWNhdGlvbi5wbXMiXSA9IHRydWU7CiAgICAgIGRhdGFbImF1dGhlbnRpY2F0aW9uLnhtbCJdID0gdHJ1ZTsKICAgICAgZGF0YVsiYXV0aGVudGljYXRpb24ubTN1Il0gPSBmYWxzZTsKICAgICAgZGF0YVsiYXV0aGVudGljYXRpb24uYXBpIl0gPSBmYWxzZTsKICAgICAgZGF0YVsiZGVmYXVsdFVzZXIiXSAgICAgICAgPSBmYWxzZTsKICAgICAgc2V0VGltZW91dChmdW5jdGlvbigpeyAKICAgICAgICBzaG93RWxlbWVudCgiZGVsZXRlVXNlckRldGFpbCIsIGZhbHNlKQogICAgICB9LCAxKTsKCiAgICAgIGJyZWFrOyAKICAgIAogICAgZGVmYXVsdDogCiAgICAgIGRhdGEgPSB1c2Vyc1t1c2VySURdWyJkYXRhIl07IAogICAgICBzaG93RWxlbWVudCgiZGVsZXRlVXNlckRldGFpbCIsIHRydWUpICAgCiAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJkZWxldGVVc2VyRGV0YWlsIikuY2xhc3NOYW1lID0gImRlbGV0ZSI7CiAgIAogICAgICBicmVhawogIH0KICAKCiAgdmFyIHVzZXJuYW1lID0gZGF0YVsidXNlcm5hbWUiXTsKICBkYXRhWyJwYXNzd29yZCJdID0gIiI7CiAgZGF0YVsiY29uZmlybSJdID0gIiI7CgogIHZhciBrZXlzID0gZ2V0T2JqS2V5cyhkYXRhKTsKICBkZWZhdWx0VXNlciA9IGRhdGFbImRlZmF1bHRVc2VyIl07CiAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoImRlZmF1bHRVc2VyIikpIHsKICAgIGRlZmF1bHRVc2VyID0gSlNPTi5wYXJzZShkYXRhWyJkZWZhdWx0VXNlciJdKTsKICB9CgogIGZvciAodmFyIGkgPSAwOyBpIDwga2V5cy5sZW5ndGg7IGkrKykgewoKICAgIGlmKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGtleXNbaV0pKXsKICAgICAgdmFyIHRkID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoa2V5c1tpXSkKICAgIH0gZWxzZSB7CiAgICAgIHZhciB0ZCA9IHVuZGVmaW5lZDsKICAgIH0KCiAgICB2YXIgbmV3SXRlbSA9IG5ldyBPYmplY3QoKTsKCiAgICBuZXdJdGVtWyJfZWxlbWVudCJdID0gIklOUFVUIjsKICAgIAogICAgbmV3SXRlbVsidmFsdWUiXSAgICA9IGRhdGFba2V5c1tpXV07CiAgICBuZXdJdGVtWyJuYW1lIl0gICAgID0ga2V5c1tpXTsKCgoKCgogICAgc3dpdGNoKGtleXNbaV0uaW5kZXhPZigiYXV0aGVudGljYXRpb24iKSkgewogICAgICBjYXNlIC0xOiAKICAgICAgICBpZiAoa2V5c1tpXSA9PSAicGFzc3dvcmQiIHx8IGtleXNbaV0gPT0gImNvbmZpcm0iKSB7CiAgICAgICAgICBuZXdJdGVtWyJ0eXBlIl0gICAgID0gInBhc3N3b3JkIjsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgbmV3SXRlbVsidHlwZSJdICAgICA9ICJ0ZXh0IjsKICAgICAgICB9CiAgICAgICAgYnJlYWs7CgogICAgICBkZWZhdWx0OiAKICAgICAgICBuZXdJdGVtWyJ0eXBlIl0gICAgID0gImNoZWNrYm94IjsKICAgICAgICAKICAgICAgICBpZiAoa2V5c1tpXSA9PSAiYXV0aGVudGljYXRpb24ud2ViIiAmJiBkZWZhdWx0VXNlciA9PSB0cnVlKSB7CiAgICAgICAgICBuZXdJdGVtWyJvbmNsaWNrIl0gPSAicmV0dXJuIGZhbHNlIjsgCiAgICAgICAgfQogICAgICAgIAogICAgICAgIGlmIChkYXRhW2tleXNbaV1dID09IHRydWUpIHsgICAgICAgICAgCiAgICAgICAgICBuZXdJdGVtWyJjaGVja2VkIl0gID0gZGF0YVtrZXlzW2ldXTsgIAogICAgICAgIH0KICAgICAgICAKICAgICAgICBicmVhazsKICAgIH0KCiAgICBzd2l0Y2goa2V5c1tpXSkgewogICAgICBjYXNlICJkZWZhdWx0VXNlciI6IAogICAgICAgIC8vaWYgKGRhdGFba2V5c1tpXV0gPT0gdHJ1ZSkgewogICAgICAgIG5ld0l0ZW1bInR5cGUiXSAgICAgPSAiaGlkZGVuIjsKICAgICAgICAvL30KICAgIH0KCgogICAgaWYgKHRkICE9IHVuZGVmaW5lZCkgewogICAgICB0ZC5pbm5lckhUTUwgPSAiIjsKICAgICAgdmFyIGVsZW1lbnQgPSBjcmVhdGVOZXdFbGVtZW50KG5ld0l0ZW0pCiAgICAgIC8vY29uc29sZS5sb2coZWxlbWVudCk7CiAgICAgIHRkLmFwcGVuZENoaWxkKGVsZW1lbnQpOwogICAgfQoKCiAgfQoKCiAgaWYgKGRlZmF1bHRVc2VyID09IHRydWUpIHsKICAgIHNob3dFbGVtZW50KCJkZWxldGVVc2VyRGV0YWlsIiwgZmFsc2UpCiAgfSBlbHNlIHsKICAgIHNob3dFbGVtZW50KCJkZWxldGVVc2VyRGV0YWlsIiwgdHJ1ZSkKICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJkZWxldGVVc2VyRGV0YWlsIikuY2xhc3NOYW1lID0gImRlbGV0ZSI7CiAgfQoKfQoKZnVuY3Rpb24gc2F2ZVVzZXJEZXRhaWwodXNlcklELCBkZWxldGVVc2VyKSB7CgogIHZhciBpbnB1dHMgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidXNlci1kZXRhaWwtdGFibGUiKS5nZXRFbGVtZW50c0J5VGFnTmFtZSgiSU5QVVQiKTsKCiAgdmFyIG5ld1VzZXJEYXRhID0gbmV3IE9iamVjdCgpOwogIGZvciAodmFyIGkgPSAwOyBpIDwgaW5wdXRzLmxlbmd0aDsgaSsrKSB7CiAgICBzd2l0Y2goaW5wdXRzW2ldLnR5cGUpIHsKICAgICAgY2FzZSAiY2hlY2tib3giOiAgbmV3VXNlckRhdGFbaW5wdXRzW2ldLm5hbWVdID0gaW5wdXRzW2ldLmNoZWNrZWQ7IGJyZWFrOwogICAgICBkZWZhdWx0OiAgICAgICAgICBuZXdVc2VyRGF0YVtpbnB1dHNbaV0ubmFtZV0gPSBpbnB1dHNbaV0udmFsdWU7IGJyZWFrOwogICAgfQogICAgCiAgICBpZiAoaW5wdXRzWyJ1c2VybmFtZSJdLnZhbHVlLmxlbmd0aCA9PSAwKSB7CiAgICAgIGlucHV0c1sidXNlcm5hbWUiXS5zdHlsZS5ib3JkZXIgPSAic29saWQgMXB4IHJlZCI7CiAgICAgIHJldHVybjsKICAgIH0KCiAgICBzd2l0Y2godXNlcklEKSB7CiAgICAgIGNhc2UgIjAiOiAKICAgICAgICBpZiAoaW5wdXRzWyJwYXNzd29yZCJdLnZhbHVlLmxlbmd0aCA9PSAwKSB7CiAgICAgICAgICBjb25zb2xlLmxvZyhpbnB1dHNbInBhc3N3b3JkIl0udmFsdWUubGVuZ3RoKTsKICAgICAgICAgIGlucHV0c1sicGFzc3dvcmQiXS5zdHlsZS5ib3JkZXIgPSAic29saWQgMXB4IHJlZCI7CiAgICAgICAgICByZXR1cm4KICAgICAgICB9CiAgICAgICAgYnJlYWs7CiAgICB9CgogICAgaWYgKGlucHV0c1sicGFzc3dvcmQiXS52YWx1ZS5sZW5ndGggPiAwKSB7CiAgICAgIGlmIChpbnB1dHNbInBhc3N3b3JkIl0udmFsdWUgIT0gaW5wdXRzWyJjb25maXJtIl0udmFsdWUpIHsKICAgICAgICBpbnB1dHNbInBhc3N3b3JkIl0uc3R5bGUuYm9yZGVyID0gInNvbGlkIDFweCByZWQiOwogICAgICAgIGlucHV0c1siY29uZmlybSJdLnN0eWxlLmJvcmRlciA9ICJzb2xpZCAxcHggcmVkIjsKICAgICAgICByZXR1cm47CiAgICAgIH0KICAgIH0KICAgIAogIH0KCiAgdmFyIGRhdGEgPSBuZXcgT2JqZWN0KCk7CiAgCiAgc3dpdGNoKHVzZXJJRCkgewogICAgY2FzZSAiMCI6CiAgICAgIC8vZGF0YSA9IG5ld1VzZXJEYXRhCiAgICAgIGRhdGFbInVzZXJEYXRhIl0gID0gbmV3VXNlckRhdGEKICAgICAgZGF0YVsiY21kIl0gICAgICAgPSAic2F2ZU5ld1VzZXIiOyBicmVhazsKICAgIAogICAgZGVmYXVsdDogIAogICAgICB2YXIgdGhpc1VzZXIgICAgICA9IG5ldyBPYmplY3QoKTsKICAgICAgCiAgICAgIGlmIChkZWxldGVVc2VyID09IHRydWUpIHsKICAgICAgICBpZiAoY29uZmlybSgnRGVsZXRlIHRoZSBzZWxlY3RlZCB1c2VyPycpKSB7CiAgICAgICAgICBkYXRhWyJkZWxldGVVc2VyIl0gPSB0cnVlOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICBzaG93RWxlbWVudCgicG9wdXAiLCBmYWxzZSk7CiAgICAgICAgICByZXR1cm4KICAgICAgICB9CiAgICAgIH0KICAgICAgCiAgICAgIHRoaXNVc2VyW3VzZXJJRF0gID0gbmV3VXNlckRhdGE7CgogICAgICBkYXRhWyJ1c2VyRGF0YSJdID0gdGhpc1VzZXI7CiAgICAgIGRhdGFbImNtZCJdID0gInNhdmVVc2VyRGF0YSI7IGJyZWFrOwogIH0KICAKICB4VGVWZShkYXRhKTsKICAvL2NyZWF0ZVVzZXJzVGFibGUoKQogIHNob3dFbGVtZW50KCJwb3B1cCIsIGZhbHNlKTsKfQoKCg==" - webUI["html/.DS_Store"] = "AAAAAUJ1ZDEAABgAAAAIAAAAGAAAABALAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAQAAAABAAAQAHNwYmxvYgAAAMticAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAgLAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAACAAAAABAAAAQAAAAAEAAACAAAAAAQAAAQAAAAABAAACAAAAAAEAAAQAAAAAAAAAAAEAABAAAAAAAQAAIAAAAAABAABAAAAAAAEAAIAAAAAAAQABAAAAAAABAAIAAAAAAAEABAAAAAAAAQAIAAAAAAABABAAAAAAAAEAIAAAAAAAAQBAAAAAAAABAIAAAAAAAAEBAAAAAAAAAQIAAAAAAAABBAAAAAAAAAEIAAAAAAAAARAAAAAAAAABIAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA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AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEERFNEQgAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAgAAAAYAAAAAAAAAABAAAAgAAAAAEAAAEAAAAAAQAAAgAAAAABAAAEAAAAAAEAAAgAAAAAAAAAAAEAACAAAAAAAQAAQAAAAAABAACAAAAAAAEAAQAAAAAAAQACAAAAAAABAAQAAAAAAAEACAAAAAAAAQAQAAAAAAABACAAAAAAAAEAQAAAAAAAAQCAAAAAAAABAQAAAAAAAAECAAAAAAAAAQQAAAAAAAABCAAAAAAAAAEQAAAAAAAAASAAAAAAAAABQAAAAAAAAABpZWTUGRobHB0MHw1VaW5kZXhZYXNjZW5kaW5nVXdpZHRoV3Zpc2libGUQBwkRASwI1BkaGxwiDSQNEAgIEMgI1BkaGxwnDSkNEAIIELUI1BkaGxwsDS4MEAMIEGEJ1BkaGxwxDDMNEAUJEGQI1BkaGxw2DDgMEAQJEHMJ1BkaGxw7DD0NEAYJEEsI1BkaGxxADEIMEAAJEQK+CdQZGhscCw0pDAgJIwAAAAAAAAAAI0AoAAAAAAAAVG5hbWUjQDAAAAAAAAAJAAgAHQAyAEQAWABgAHIAewCNAJgAoQC0ALYAtwC4AMsA1ADjAO8A9AD6AP8BBwEMARkBIgEoATIBOAFAAUIBQwFGAUcBUAFSAVMBVQFWAV8BYQFiAWQBZQFuAXABcQFzAXQBfQF/AYABggGDAYwBjgGPAZEBkgGbAZ0BngGgAaEBqgGsAa0BsAGxAboBuwG8AcUBzgHTAdwAAAAAAAACAQAAAAAAAABMAAAAAAAAAAAAAAAAAAAB3QAAAAMAaQBtAGd2U3JubG9uZwAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" - webUI["html/img/xmltv.png"] = "iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAAAXNSR0IArs4c6QAAAAlwSFlzAAAsSwAALEsBpT2WqQAABCRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IlhNUCBDb3JlIDUuNC4wIj4KICAgPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIgogICAgICAgICAgICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgICAgICAgICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyI+CiAgICAgICAgIDx0aWZmOlJlc29sdXRpb25Vbml0PjI8L3RpZmY6UmVzb2x1dGlvblVuaXQ+CiAgICAgICAgIDx0aWZmOkNvbXByZXNzaW9uPjU8L3RpZmY6Q29tcHJlc3Npb24+CiAgICAgICAgIDx0aWZmOlhSZXNvbHV0aW9uPjI4ODwvdGlmZjpYUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6T3JpZW50YXRpb24+MTwvdGlmZjpPcmllbnRhdGlvbj4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+Mjg4PC90aWZmOllSZXNvbHV0aW9uPgogICAgICAgICA8ZXhpZjpQaXhlbFhEaW1lbnNpb24+NTA8L2V4aWY6UGl4ZWxYRGltZW5zaW9uPgogICAgICAgICA8ZXhpZjpDb2xvclNwYWNlPjE8L2V4aWY6Q29sb3JTcGFjZT4KICAgICAgICAgPGV4aWY6UGl4ZWxZRGltZW5zaW9uPjUwPC9leGlmOlBpeGVsWURpbWVuc2lvbj4KICAgICAgICAgPGRjOnN1YmplY3Q+CiAgICAgICAgICAgIDxyZGY6QmFnLz4KICAgICAgICAgPC9kYzpzdWJqZWN0PgogICAgICAgICA8eG1wOk1vZGlmeURhdGU+MjAxOC0wNy0yOFQyMDowNzozMzwveG1wOk1vZGlmeURhdGU+CiAgICAgICAgIDx4bXA6Q3JlYXRvclRvb2w+UGl4ZWxtYXRvciAzLjM8L3htcDpDcmVhdG9yVG9vbD4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgIDwvcmRmOlJERj4KPC94OnhtcG1ldGE+Co6j9bsAAAGgSURBVGgF7VqxTsNADL0gYGEon8DOwsbAAH8BYmJn6cYIn8DC3h0+oixISFRiYYCJL0AwMMBAeK5w2rpV6uikxHfYknW98+vds18TK21DWGBlWR7CH+BfcEv2AzLP8HP42gLqkyUATuEp2PWEdQjF9ATs1zF/g29Mrxt+vVcUxR3xWxEktzFPJQmivsv8ZSI9DiQyVnxlIonwn6fpiczXpNuVVXH8O+a3Ys3y9NUyuf/NTTbEHZTjUlGSRzSiPhroUIENwB4AS/vS/susDwDhTpYBER9g7wHh5DWyibV9CiitCZbIafDEYUuJHQI3Nr/9ciWsjK6IFSWYhyvClbAyZqOIlYJG84jq7E1Ot97Zm+TinV1TrWwudk9EI3ebGFekzWprzspGEU2ySWCiOrs/s9dr7M/s9fVJJJrNXcsTsfaJc0WsKZINH+/sf1Jqvl1n1f2ZnStRN/pdq646XcSkIh9dkIg4s+IrE3nCpp8RG7f91ns+cCYR/LD4jcAZB42PN+A7/mcQ8ZxJhBYQvMJwBB/BKTFLVoLMC/wCfgyv7BesTKUC2LKM3wAAAABJRU5ErkJggg==" - webUI["html/js/network_ts.js"] = "dmFyIFNlcnZlciA9IC8qKiBAY2xhc3MgKi8gKGZ1bmN0aW9uICgpIHsKICAgIGZ1bmN0aW9uIFNlcnZlcihjbWQpIHsKICAgICAgICB0aGlzLmNtZCA9IGNtZDsKICAgIH0KICAgIFNlcnZlci5wcm90b3R5cGUucmVxdWVzdCA9IGZ1bmN0aW9uIChkYXRhKSB7CiAgICAgICAgaWYgKFNFUlZFUl9DT05ORUNUSU9OID09IHRydWUpIHsKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KICAgICAgICBTRVJWRVJfQ09OTkVDVElPTiA9IHRydWU7CiAgICAgICAgY29uc29sZS5sb2coZGF0YSk7CiAgICAgICAgaWYgKHRoaXMuY21kICE9ICJ1cGRhdGVMb2ciKSB7CiAgICAgICAgICAgIHNob3dFbGVtZW50KCJsb2FkaW5nIiwgdHJ1ZSk7CiAgICAgICAgICAgIFVORE8gPSBuZXcgT2JqZWN0KCk7CiAgICAgICAgfQogICAgICAgIHN3aXRjaCAod2luZG93LmxvY2F0aW9uLnByb3RvY29sKSB7CiAgICAgICAgICAgIGNhc2UgImh0dHA6IjoKICAgICAgICAgICAgICAgIHRoaXMucHJvdG9jb2wgPSAid3M6Ly8iOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgImh0dHBzOiI6CiAgICAgICAgICAgICAgICB0aGlzLnByb3RvY29sID0gIndzczovLyI7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICB9CiAgICAgICAgdmFyIHVybCA9IHRoaXMucHJvdG9jb2wgKyB3aW5kb3cubG9jYXRpb24uaG9zdG5hbWUgKyAiOiIgKyB3aW5kb3cubG9jYXRpb24ucG9ydCArICIvZGF0YS8iICsgIj9Ub2tlbj0iICsgZ2V0Q29va2llKCJUb2tlbiIpOwogICAgICAgIGRhdGFbImNtZCJdID0gdGhpcy5jbWQ7CiAgICAgICAgdmFyIHdzID0gbmV3IFdlYlNvY2tldCh1cmwpOwogICAgICAgIHdzLm9ub3BlbiA9IGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgV1NfQVZBSUxBQkxFID0gdHJ1ZTsKICAgICAgICAgICAgY29uc29sZS5sb2coIlJFUVVFU1QgKEpTKToiKTsKICAgICAgICAgICAgY29uc29sZS5sb2coZGF0YSk7CiAgICAgICAgICAgIGNvbnNvbGUubG9nKCJSRVFVRVNUOiAoSlNPTikiKTsKICAgICAgICAgICAgY29uc29sZS5sb2coSlNPTi5zdHJpbmdpZnkoZGF0YSkpOwogICAgICAgICAgICB0aGlzLnNlbmQoSlNPTi5zdHJpbmdpZnkoZGF0YSkpOwogICAgICAgIH07CiAgICAgICAgd3Mub25lcnJvciA9IGZ1bmN0aW9uIChlKSB7CiAgICAgICAgICAgIGNvbnNvbGUubG9nKCJObyB3ZWJzb2NrZXQgY29ubmVjdGlvbiB0byB4VGVWZSBjb3VsZCBiZSBlc3RhYmxpc2hlZC4gQ2hlY2sgeW91ciBuZXR3b3JrIGNvbmZpZ3VyYXRpb24uIik7CiAgICAgICAgICAgIFNFUlZFUl9DT05ORUNUSU9OID0gZmFsc2U7CiAgICAgICAgICAgIGlmIChXU19BVkFJTEFCTEUgPT0gZmFsc2UpIHsKICAgICAgICAgICAgICAgIGFsZXJ0KCJObyB3ZWJzb2NrZXQgY29ubmVjdGlvbiB0byB4VGVWZSBjb3VsZCBiZSBlc3RhYmxpc2hlZC4gQ2hlY2sgeW91ciBuZXR3b3JrIGNvbmZpZ3VyYXRpb24uIik7CiAgICAgICAgICAgIH0KICAgICAgICB9OwogICAgICAgIHdzLm9ubWVzc2FnZSA9IGZ1bmN0aW9uIChlKSB7CiAgICAgICAgICAgIFNFUlZFUl9DT05ORUNUSU9OID0gZmFsc2U7CiAgICAgICAgICAgIHNob3dFbGVtZW50KCJsb2FkaW5nIiwgZmFsc2UpOwogICAgICAgICAgICBjb25zb2xlLmxvZygiUkVTUE9OU0U6Iik7CiAgICAgICAgICAgIHZhciByZXNwb25zZSA9IEpTT04ucGFyc2UoZS5kYXRhKTsKICAgICAgICAgICAgY29uc29sZS5sb2cocmVzcG9uc2UpOwogICAgICAgICAgICBpZiAocmVzcG9uc2UuaGFzT3duUHJvcGVydHkoInRva2VuIikpIHsKICAgICAgICAgICAgICAgIGRvY3VtZW50LmNvb2tpZSA9ICJUb2tlbj0iICsgcmVzcG9uc2VbInRva2VuIl07CiAgICAgICAgICAgIH0KICAgICAgICAgICAgaWYgKHJlc3BvbnNlWyJzdGF0dXMiXSA9PSBmYWxzZSkgewogICAgICAgICAgICAgICAgYWxlcnQocmVzcG9uc2VbImVyciJdKTsKICAgICAgICAgICAgICAgIGlmIChyZXNwb25zZS5oYXNPd25Qcm9wZXJ0eSgicmVsb2FkIikpIHsKICAgICAgICAgICAgICAgICAgICBsb2NhdGlvbi5yZWxvYWQoKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgfQogICAgICAgICAgICBpZiAocmVzcG9uc2UuaGFzT3duUHJvcGVydHkoImxvZ29VUkwiKSkgewogICAgICAgICAgICAgICAgdmFyIGRpdiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjaGFubmVsLWljb24iKTsKICAgICAgICAgICAgICAgIGRpdi52YWx1ZSA9IHJlc3BvbnNlWyJsb2dvVVJMIl07CiAgICAgICAgICAgICAgICBkaXYuY2xhc3NOYW1lID0gImNoYW5nZWQiOwogICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICB9CiAgICAgICAgICAgIHN3aXRjaCAoZGF0YVsiY21kIl0pIHsKICAgICAgICAgICAgICAgIGNhc2UgInVwZGF0ZUxvZyI6CiAgICAgICAgICAgICAgICAgICAgU0VSVkVSWyJsb2ciXSA9IHJlc3BvbnNlWyJsb2ciXTsKICAgICAgICAgICAgICAgICAgICBpZiAoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnRlbnRfbG9nIikpIHsKICAgICAgICAgICAgICAgICAgICAgICAgc2hvd0xvZ3MoZmFsc2UpOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAgICAgICAgIFNFUlZFUiA9IG5ldyBPYmplY3QoKTsKICAgICAgICAgICAgICAgICAgICBTRVJWRVIgPSByZXNwb25zZTsKICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgfQogICAgICAgICAgICBpZiAocmVzcG9uc2UuaGFzT3duUHJvcGVydHkoIm9wZW5NZW51IikpIHsKICAgICAgICAgICAgICAgIHZhciBtZW51ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQocmVzcG9uc2VbIm9wZW5NZW51Il0pOwogICAgICAgICAgICAgICAgbWVudS5jbGljaygpOwogICAgICAgICAgICAgICAgc2hvd0VsZW1lbnQoInBvcHVwIiwgZmFsc2UpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGlmIChyZXNwb25zZS5oYXNPd25Qcm9wZXJ0eSgib3BlbkxpbmsiKSkgewogICAgICAgICAgICAgICAgd2luZG93LmxvY2F0aW9uID0gcmVzcG9uc2VbIm9wZW5MaW5rIl07CiAgICAgICAgICAgIH0KICAgICAgICAgICAgaWYgKHJlc3BvbnNlLmhhc093blByb3BlcnR5KCJhbGVydCIpKSB7CiAgICAgICAgICAgICAgICBhbGVydChyZXNwb25zZVsiYWxlcnQiXSk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgaWYgKHJlc3BvbnNlLmhhc093blByb3BlcnR5KCJyZWxvYWQiKSkgewogICAgICAgICAgICAgICAgbG9jYXRpb24ucmVsb2FkKCk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgaWYgKHJlc3BvbnNlLmhhc093blByb3BlcnR5KCJ3aXphcmQiKSkgewogICAgICAgICAgICAgICAgY3JlYXRlTGF5b3V0KCk7CiAgICAgICAgICAgICAgICBjb25maWd1cmF0aW9uV2l6YXJkW3Jlc3BvbnNlWyJ3aXphcmQiXV0uY3JlYXRlV2l6YXJkKCk7CiAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgIH0KICAgICAgICAgICAgY3JlYXRlTGF5b3V0KCk7CiAgICAgICAgfTsKICAgIH07CiAgICByZXR1cm4gU2VydmVyOwp9KCkpOwpmdW5jdGlvbiBnZXRDb29raWUobmFtZSkgewogICAgdmFyIHZhbHVlID0gIjsgIiArIGRvY3VtZW50LmNvb2tpZTsKICAgIHZhciBwYXJ0cyA9IHZhbHVlLnNwbGl0KCI7ICIgKyBuYW1lICsgIj0iKTsKICAgIGlmIChwYXJ0cy5sZW5ndGggPT0gMikKICAgICAgICByZXR1cm4gcGFydHMucG9wKCkuc3BsaXQoIjsiKS5zaGlmdCgpOwp9Cg==" - webUI["html/login.html"] = "PCFkb2N0eXBlIGh0bWw+CjxodG1sPgogIDxoZWFkPgogICAgPG1ldGEgY2hhcnNldD0idXRmLTgiPgogICAgPG1ldGEgbmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9IndpZHRoPWRldmljZS13aWR0aCwgaW5pdGlhbC1zY2FsZT0xLjAiIC8+IAogICAgPHRpdGxlPnhUZVZlPC90aXRsZT4KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iY3NzL3NjcmVlbi5jc3MiIHR5cGU9InRleHQvY3NzIj4KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iY3NzL2Jhc2UuY3NzIiB0eXBlPSJ0ZXh0L2NzcyI+CiAgICA8c2NyaXB0IGxhbmd1YWdlPSJqYXZhc2NyaXB0IiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ianMvbmV0d29ya190cy5qcyI+PC9zY3JpcHQ+CiAgICA8c2NyaXB0IGxhbmd1YWdlPSJqYXZhc2NyaXB0IiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ianMvYXV0aGVudGljYXRpb25fdHMuanMiPjwvc2NyaXB0PgogIDwvaGVhZD4KCiAgICA8Ym9keT4KICAgICAgICAgIAogICAgICA8ZGl2IGlkPSJoZWFkZXIiIGNsYXNzPSJpbWdDZW50ZXIiPjwvZGl2PgoKICAgICAgPGRpdiBpZD0iYm94Ij4KCiAgICAgICAgPGRpdiBpZD0iaGVhZGxpbmUiPgogICAgICAgICAgPGgxIGlkPSJoZWFkLXRleHQiIGNsYXNzPSJjZW50ZXIiPnt7LmxvZ2luLmhlYWRsaW5lfX08L2gxPgogICAgICAgIDwvZGl2PgoKICAgICAgICA8cCBpZD0iZXJyIiBjbGFzcz0iZXJyb3JNc2cgY2VudGVyIj57ey5hdXRoZW50aWNhdGlvbkVycn19PC9wPgoKICAgICAgICA8ZGl2IGlkPSJjb250ZW50Ij4KCiAgICAgICAgICAgIDxmb3JtIGlkPSJhdXRoZW50aWNhdGlvbiIgYWN0aW9uPSIiIG1ldGhvZD0icG9zdCI+CgogICAgICAgICAgICAgIDxoNT57ey5sb2dpbi51c2VybmFtZS50aXRsZX19OjwvaDU+CiAgICAgICAgICAgICAgPGlucHV0IGlkPSJ1c2VybmFtZSIgdHlwZT0idGV4dCIgbmFtZT0idXNlcm5hbWUiIHBsYWNlaG9sZGVyPSJVc2VybmFtZSIgdmFsdWU9IiI+CiAgICAgICAgICAgICAgPGg1Pnt7LmxvZ2luLnBhc3N3b3JkLnRpdGxlfX06PC9oNT4KICAgICAgICAgICAgICA8aW5wdXQgaWQ9InBhc3N3b3JkIiB0eXBlPSJwYXNzd29yZCIgbmFtZT0icGFzc3dvcmQiIHBsYWNlaG9sZGVyPSJQYXNzd29yZCIgdmFsdWU9IiI+CgogICAgICAgICAgICA8L2Zvcm0+CgogICAgICAgIDwvZGl2PgoKICAgICAgICA8ZGl2IGlkPSJib3gtZm9vdGVyIj4KICAgICAgICAgIDxpbnB1dCBpZD0ic3VibWl0IiBjbGFzcz0iIiB0eXBlPSJidXR0b24iIHZhbHVlPSJ7ey5idXR0b24ubG9naW59fSIgb25jbGljaz0iamF2YXNjcmlwdDogbG9naW4oKTsiPgogICAgICAgIDwvZGl2PgogICAgICAgIAogICAgICA8L2Rpdj4KCiAgICA8L2JvZHk+CiAgICAKPC9odG1sPg==" - webUI["html/img/mapping.png"] = "iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAAAXNSR0IArs4c6QAAAAlwSFlzAAAsSwAALEsBpT2WqQAABCRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IlhNUCBDb3JlIDUuNC4wIj4KICAgPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIgogICAgICAgICAgICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgICAgICAgICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyI+CiAgICAgICAgIDx0aWZmOlJlc29sdXRpb25Vbml0PjI8L3RpZmY6UmVzb2x1dGlvblVuaXQ+CiAgICAgICAgIDx0aWZmOkNvbXByZXNzaW9uPjU8L3RpZmY6Q29tcHJlc3Npb24+CiAgICAgICAgIDx0aWZmOlhSZXNvbHV0aW9uPjI4ODwvdGlmZjpYUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6T3JpZW50YXRpb24+MTwvdGlmZjpPcmllbnRhdGlvbj4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+Mjg4PC90aWZmOllSZXNvbHV0aW9uPgogICAgICAgICA8ZXhpZjpQaXhlbFhEaW1lbnNpb24+NTA8L2V4aWY6UGl4ZWxYRGltZW5zaW9uPgogICAgICAgICA8ZXhpZjpDb2xvclNwYWNlPjE8L2V4aWY6Q29sb3JTcGFjZT4KICAgICAgICAgPGV4aWY6UGl4ZWxZRGltZW5zaW9uPjUwPC9leGlmOlBpeGVsWURpbWVuc2lvbj4KICAgICAgICAgPGRjOnN1YmplY3Q+CiAgICAgICAgICAgIDxyZGY6QmFnLz4KICAgICAgICAgPC9kYzpzdWJqZWN0PgogICAgICAgICA8eG1wOk1vZGlmeURhdGU+MjAxOC0wOC0wMlQxMjowODo5NzwveG1wOk1vZGlmeURhdGU+CiAgICAgICAgIDx4bXA6Q3JlYXRvclRvb2w+UGl4ZWxtYXRvciAzLjM8L3htcDpDcmVhdG9yVG9vbD4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgIDwvcmRmOlJERj4KPC94OnhtcG1ldGE+CpRxQsEAAAJLSURBVGgF7VoxTgMxEMwBHWlAaeABVCEtBcoD+EBewCdCyQsQtLyAPCBvCBSRIBUPCF1ogqBJjlkrezGr6HTrO98lhy1Z9trr2VmvnbMNjUadUhzHLeQB8hw5LS3QOUbubvIf7X3kKXIZibgS51bCZdWgMT6D8nECgArkngagQN0B8dhbkblalVmLIyheCGUthhjuLBq77MihA0xTjHHBEBBOorHLjjghbNOg4Mg2RYO4hIiEiHiaAV5aSwf8hRgjZdHtTTTc2ZFXpZkY+hMx5k3IZYlr7jgudJHp2JElLaF0K1mirYn8nAWgQB3ibM59ERNCA52d6Nghv9isQiUtn0kURe92I9eBcYA6YZxym8dyDuwRuMw82gjQYQbsPdLDdNCROO0US3uEfp3usTZpjf5J2CNtNFwjl7FHvmBnCB5PCQkQoJudJtGvE23sJEFuI39rQArS7dskXK6nlwkAKiB1VxAxLcyUePAH8cQmlbEul4+UM8LkVjPc2ZHcaFUDBEeqjoC0HyIiZ6RqOUSk6ghI+xyRD9mRQTYfIktPylaX16rhzo48KE29QH8kxjxC/hFtZYiGe70OjWVMW7Dx32bA3iO7//iAC8DOPweZFQhH6O+CmkRvW2f28oV8owEoUHdMPPg70rFJZajTkqT7uZ3ObaHEuuHOjnCpsb8vlKUsur2JhruLA94Y5QEOjuSZPR9jQ0R8zGoezNpFhN5RtUm+/bpgaG1u0jd2OSLDTRopbZ/okxcrLUYKvKprbRfHhXr8m5PK/y1V/gWRKLfiNSmxEAAAAABJRU5ErkJggg==" - webUI["html/img/logo_w_600x200.png"] = "iVBORw0KGgoAAAANSUhEUgAAAlgAAADICAYAAAA0n5+2AAAAAXNSR0IArs4c6QAAAAlwSFlzAAAuIwAALiMBeKU/dgAABCZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IlhNUCBDb3JlIDUuNC4wIj4KICAgPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIgogICAgICAgICAgICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgICAgICAgICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyI+CiAgICAgICAgIDx0aWZmOlJlc29sdXRpb25Vbml0PjI8L3RpZmY6UmVzb2x1dGlvblVuaXQ+CiAgICAgICAgIDx0aWZmOkNvbXByZXNzaW9uPjU8L3RpZmY6Q29tcHJlc3Npb24+CiAgICAgICAgIDx0aWZmOlhSZXNvbHV0aW9uPjMwMDwvdGlmZjpYUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6T3JpZW50YXRpb24+MTwvdGlmZjpPcmllbnRhdGlvbj4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+MzAwPC90aWZmOllSZXNvbHV0aW9uPgogICAgICAgICA8ZXhpZjpQaXhlbFhEaW1lbnNpb24+NjAwPC9leGlmOlBpeGVsWERpbWVuc2lvbj4KICAgICAgICAgPGV4aWY6Q29sb3JTcGFjZT4xPC9leGlmOkNvbG9yU3BhY2U+CiAgICAgICAgIDxleGlmOlBpeGVsWURpbWVuc2lvbj4yMDA8L2V4aWY6UGl4ZWxZRGltZW5zaW9uPgogICAgICAgICA8ZGM6c3ViamVjdD4KICAgICAgICAgICAgPHJkZjpCYWcvPgogICAgICAgICA8L2RjOnN1YmplY3Q+CiAgICAgICAgIDx4bXA6TW9kaWZ5RGF0ZT4yMDE5LTA4LTAxVDEyOjA4OjQzPC94bXA6TW9kaWZ5RGF0ZT4KICAgICAgICAgPHhtcDpDcmVhdG9yVG9vbD5QaXhlbG1hdG9yIDMuMzwveG1wOkNyZWF0b3JUb29sPgogICAgICA8L3JkZjpEZXNjcmlwdGlvbj4KICAgPC9yZGY6UkRGPgo8L3g6eG1wbWV0YT4KaDoJhwAAJyJJREFUeAHtnQm8XUV9x+ckIQHZEkKWF4UCAlZZZSuyuICRRRCQtmxWwYoohYIial0qrljcgbYqCmhRjEEoAaIGFShirLJ8gCI0CBqweS8JYYkQlkBOf/+X98J9793lnHtm5px773c+n8m7Z87M//+f70zu+d+ZOTPOESAAAQhAAAIQgAAEIAABCEAAAhCAAAQgAAEIQAACEIAABCAAAQhAAAIQgAAEIAABCEAAAhCAAAQgAAEIQAACEIAABCAAAQhAAAIQgAAEIAABCEAAAhCAAAQgAAEIQAACEIAABCAAAQhAAAIQgAAEIAABCEAAAhCAAAQgAAEIQAACEIAABCAAAQhAAAIQgAAEIAABCEAAAhCAAAQgAAEIQAACEIAABCAAAQhAAAIQgAAEIAABCEAAAhCAAAQgAAEIQAACEIAABCAAAQhAAAIQgAAEIAABCEAAAhCAAAQgAAEIQAACEIAABCAAAQhAAAIQgAAEIAABCEAAAhCAAAQgAAEIQAACEIAABCAAAQhAAAIQgAAEIAABCEAAAhCAAAQgAAEIQAACEIAABCAAAQhAAAIQgAAEIAABCEAAAhCAAAQgAAEIQAACEIAABCAAAQhAAAIQgAAEIAABCEAAAhCAAAQgAAEIQAACEIAABCAAAQhAAAIQgAAEIAABCEAAAhCAAAQgAAEIQAACEIAABCAAAQhAAAIQgAAEIAABCEAAAhCAAAQgAAEIQAACEIAABCAAAQhAAAIQgAAEIAABCEAAAhCAAAQgAAEIQAACEIAABCAAAQhAAAIQgAAEIAABCEAAAhCAAAQgAAEIQAACEIAABCAAAQhAAAIQgAAEIAABCEAAAhCAAAQgAAEIQAACEIAABCAAAQhAAAIQgAAEIAABCEAAAhCAAAQgAAEIQAACEIAABCAAAQhAAAIQgAAEIAABCEAAAhCAAAQgAAEIQAACEIAABCAAAQhAAAIQgAAEIAABCEAAAhCAAAQgAAEIQAACEIAABCAAAQhAAAIQgAAEIAABCEAAAhCAAAQgAAEIQAACEIAABCAAgV4ikPRSZakrBNI03UwUjoKEdwKrkiS53LvUHhMYuX8uV5vN6xTEYvM62bptBHsfFJcbIuhBRZcTwMHq8gameiMJ6Ev6MKVcMzKVK08EJurBtNqTrJ4Uo/45WxVfEKnyz0jPNLXZk5H0FVIjNr+XgJcXEpKt8A1ickC2rOSCQGMC4xrf4g4EIAABCEQmcKP0rYikc33pOTSSrkJq5FztLAExnCuz80eFjKUwBIYI4GDRFSAAAQhUhMDQCOCVEc15a0RdRVTFsvMFGTm3iKGUhcAwARysYRL8hQAEIFANAj+IaMahGh2aFFFfu6piOVg2PbisXSMpB4FaAjhYtTT4DAEIQKB8AjfJhIFIZmwsPW+KpKstNXIAt1PBndoqnL9QTOc2v3WU6CgCOFgd1VwYCwEIdDsBjaDEnqaKNTrUbtPFsu85GRhzerZdHpTrEAI4WB3SUJgJAQj0FIGYIymHa5RoQoXpxnKwFsi5fazCHDCtwwjgYHVYg2EuBCDQEwQWqpYPRarpVOmxPaYqF+T4bSGj9oxkWEynNlKVUFMmARysMumjGwIQgEAdAhpJSZU8p86tUEmxRony2n+kCsTYr3GV9Fyd1zjyQ6AZARysZnS4BwEIQKA8AjFHVI7UaFEMRyYvzaPzFmgz/3w5tR2x4Wqb9aNYCQRwsEqAjkoIQAACrQjogX+78ixqlc/T/VmS8xpPsryIkcM3TYL28yKstZCYzmxra8jRFQRwsLqiGakEBCDQpQR6eZrwCLXp+AjtulI6rougBxU9RgAHq8canOpCAAIdRSCmg1W1Q9BjrQubp9FCO5eRAAGvBHCwvOJEGAQgAAF/BPTgv0fS7vYnsamkbTQtt2vTHJFuyo5NperASOqYHowEutfU4GD1WotTXwhAoNMIxHQAYo0atWqDw5RhYqtMHu7bwdoLPMhBBATGEMDBGoOEBAhAAAKVIhBzmjDWW3utAMdy9K7SKOHqVsZwHwLtEMDBaocaZSAAAQhEIiAH4AGp+m0kda/S9NwrIumqq0b6X6IbB9e96T8x5uigf+uRWGkCOFiVbh6MgwAEIDBIIKYjEGv0qFHTHqQb5mSFDgNScGNoJcjvXQI4WL3b9tQcAhDoHAJzZart7h4jlO1gxdJ/hUYH7WBtAgSCEKjyAZ9BKozQnidwnwh8pwQKW0lnrPPeyqifHTXCwypQx5Ij8LCmzn4p8fsHUlErdg/p2lI6H6pNjPFZem1h++ExdElHzFHBSFVCDQQgAIEeI6AHx96KMcITPYa2Z6qrznNqjA40pOPMMsBK98GR6vhH6ani0UBlYEdnIAJMEQYCi1gIQAACnglcIXmxRgljTdONRhRL71yN0MWach1dR657hABThD3S0FQTAr1EQKMT01XfzYfi1FF/Ld3SNlG0qU3bC+nRmr+1nx/Ug/gR3Ss9yI5lqtcvZMjsCMbsK10zpHNpBF2DKqTPjsWx43FihMpPD3ZjH47RsFXSgYNVpdbAFghAoC0Cehj9hQrazt8HDMW+tgSNLSTR6e+UfKPiTRbN0dHfsoI5BjEcLJvdMGfnmxEruq90mWMcOixSG94WWkle+T3Uh/Oi6dj8vT0HvSQ92iVuw2itN979wU1Pbo6mb3m6vXve7R1NX+z6RatYcUX68rR2WFhcUksJK/XwsGNGujqIpz2Ih50pc6y2iVjhe6XrRsVrxPrHEfU61XuK9Nn2ArYYPHT4qep3cGglw/JVt6/q8xnD1wH/fkb1+nhA+ZlE92ofzgSnSzL1roNlw9H9zr4ot4vYlk+7CW4XOVn3B9eZppP0NXyHXux+ZXBdwwoSvZ3Xl5w4fMnfFwnoyxQH60UcbX8Sxz1U+BzFN7ctxG/BOyTuM4q2I3iUNT1iME/6YrxpZzucT1e9HtffoEF1smfRYsUtgipaK3xH1cnOeCwl0IdLwV6KUhsG7s2wdv+T4zSCFfOYhA00onSxfoaG5z7gPhnZuXpQv6n/sTc7E7UOTUAPpT0Vr5Ue29G8Ks6VVfvVij9SvEv2HasY/v92vO0F1lO9YjhyUuPMcY7hXN1VlnNFH7Zm7q0Q48ugukRnDc7DfySygfu5pe60oDr7070k/wNBddQKX+ukHuumJitrk/kMgaIEah5Kv5GsKjlWo6u2oxIuV/ydbLa1SyGDjWA9HVJBjexYb/XF0vPDmrpF+UgfjoK5kkp628GyJpnpvqR/r4/aOmvcuW5p+vIgOm1q0LlLNHo1Poj8+kI/oqlBG1kgQMALAT2UtlK0EauqO1aj6/sKJfynbD9HMcgSDI3APCkdxiZGOEj12DCColgOVrS3B8WNPhyh41RZBQ6WrZuY4N6uqcLlERvqJW6N+7amCv1/AfdrfUrqXhWtLombP+SkRlOJou4moAfTa1VDc9jf3ME1/YRsn6O6bBCoDrEcBbM/6EJ3MdpBOrYPxKlW7K1yTh+oTQj1mT4cimxnycXBsvaangzo35OiNl2qY1MG3Kledfane8pRPNurzGbCErdEt090kRb3NjOFe91BQA+mk1WTnylu3gU1+hvV4WbV6aUB6jJfMlcGkFtPZOjRpaPrKQ2QFsUppQ8HaLkOFYmDNdxwfcl1+nj+8GWkv593A+nWXnStnRq8NNrUYKIxOOfepqnBmCN/XlAhpHoE9FAar/g1WWb7Ltni6m4Ju6siv1HddvVZIY3EPCN5V/uU2UTWYbI/5LYQoR04q5q94TmnSR0L36IPF0bYdQJwsGqbtM99UJd31iYF/Zy6jfTf/ltepgr73SeiTg0691k5VzcE5YPwniCgB9NkVdT2k+rWt1BnqW7zVM/NPDdolBEZ2byJ4hs92z4oTkxsLeouIWSPknmLnNI/jUrzdkkf9oayqwThYNU2Z5I8q8vjFFfVJgf9nGqzxH53SiEda6cGzTmMFW7WuqtPxlKGnu4loAfTdNXuvxVnd28tB2tmWxBc7LmO9nLOCs8yG4kLNcp0VCOFntODOaP0Yc8t1UXicLBGN+asxDYffd/o5KDXiTvPLRk86iO/mvhvDa5wk9zxWnf1Qn5jKQGBFwnowWRvutq0TYwFzi8qLu/TEaqzt1E6jcjYHn5XRqrOW4bay7e6UI5brZ32XTW3NsHXZ/qwL5LdKQcHq167zkq+qcXisb64bHXAxjLjonqmtEzrd/+s8vYWTpwwzr1T+10FG2qPUwm0VITA52TH6ytiSywzvqCH8m4elQUbmRll4zRd7z8qrdClONji/xhHed0gZ3RZIWMbF6YPN2bT83dwsBp1gQ3cu3Tr4Ua3A6TP1oJ305k9LNGxIcngurHsZYrlPN/NTOYVE0FpCOg3RZra1FDMae2qYLfF4rZ9g/2o8hFukpABH4IyyPD9tt+R0plk0Fs0SxAnlD7srQ8Xbd/KlsfBatQ0k5PHdOtt+u9vb8vFCak2PV2R2lqN1sHe6kkGNxSd0Dqzlxy3u76IW0B4MRkhVSSgB5NNCV5aRdsi2bSt9JzlQ5dGZoJNf9Wx70i1nU+HKMb04HOqh/fZCPqw89aH6/Szrkny+Z+la6CMqEh/+ilNwX18RFrIi8T9RG/nHdJSxUD6Gbl+H22Zz0eGxP1Z+8LvHuWQah/2VlCGvpA57FntIg4b6s+vFe1omRjBXs+3N4N/rvgHxUcU7ceTnXhge23NVNxX8XWKGynGCjZltaUcJHuxplAQ030k4JZCQrIX3ls220sJhYJsnioBSxVtHV7IcK3sPdynAvrwOpre+vA6iV32IdboR+dis7fl+t2BqoB9iYUPqXZN7k9PkpN1SUNlS9Ld5fR9qOF93zfGuffiXPmG2rPyzlfNYzhX/dJzruIP9IBtuVebHpq299abFD+t+GrF0MHenjxB0cebhQsl5yHFLRVDBxt1KuxgScZbFEM7V8YixPQgfdjIaotuRV99eFBgt/3DFGGrFrUh+ESdKHFPtMrq7X7qvuweabD789qpwUvlYMVxjhNN5cxIvuetbgjqWQJyYrZT5U8MDGC15NuPj5fLsbogi3Nl9ijfakXbbNg2Bv07xVWKocOZPhTIbhulm+NDVgYZvqb1fMlpZrK14dXNMuS9Rx8eQ8xLHx4jtUsScLCyNGRf8kc5WKdkyeopz2S32n2jrqylmq5Mo4wAmPr7VO/T6tpBIgTyE/iwioT8znlU8mfL4ThP8en85g06WqnKXqayNpr1eDsycpTZSQ/sN+bI3yxriJGaevq2lc0717uRNU3lbYH/7Kz5C+Sbr7a0g7F9BvrwSJo++/BIyV1wFfLLrgvw1FRhZjJHzkbjabuarF4+pjrotj99+whZy/V6d+rsP3iM8IwG8I/RW4NPxVCGju4moIeqTV/ZyFCosEKCbX2QvVVXOEjOLRJymOKawsKaC3hf89vZ7sre25VzUbbchXMVHX16syyYVNiK1gK8Op304YbAvfThhtI7+AYOVp7GS9zpyh7rS8z2x/qqW572DZpoU4PPu5hTg2dpavCuPHjIC4EmBM7WvfWa3C9yy5ygE+Rk3F9EyOiyQ07WV0ene74+RA/uWZ5kdso0YVEHLQuulcpkU74+A324Pk2ffbi+hg5NxcHK03BrR3OOV5Hn8hQrkHeKnKqvD5ZfOzW4UwFZ2YvaJqt9yb9lL0BOCDQmIAdihu6+q3GOwnfOlTP008JS6gv4mJL769/ykmpvcu/rRVK8dVg2LbRtOzar3Poqd0g7ZXOWmac+8UzOMg2z04cborEbPvtwU0WddhMHK2+LzUpuU3f6aN5ibedP9bZNf/qlaFODiVvs1nd/37a9FITAWALvV5I9WEOERyT03BCCTaYe0raW69uh5A/J3ceHfNl6j+Tc7UNWBhntjkLZ2raNMsgvmsXr9KCMoQ83bxEvfbi5is67i4PVTpvN1Iagzi1op2hbZVL9547x1mCi8bJxOux6ShJ6cW9bGCjUeQT0y98epu8NaPmX5Fg8FVC+if6WYsi1WL5GsMxW346FyawX2nWwjq4nzHOarcfz9v1MH87UOj77cCaFnZAJB6udVrLXoie4d2gkK9T5Vu1YVbxMojcUZyQLiwtCAgTWEdhPnzZed+X3g23SGXwqWw7cYum51a/pI6Ttqof4BiNS2r+ItQ5rL9n8sjxmKr+twTs8T5k2816lNlvdZtl6xejD9aiMTPPZh0dK7uArHKx2G296MqCiJ8nJsj1ouiFc72a4f+mGilCHShF4Q0BrbtaDdGVA+bWif1174fmzOR57+pApHg9Izm99yGohw9bdHNUiz+jbr1fClNGJAa59j+LRh1s3krc+3FpV5+TAwSrSVn3JfLlX5xcRUYmyiY6sGK9X6NduWFgJkzCiawiEfDjNj0gppINl1fC5hsW3g9EIc95pwrz5G+ltlj6gmzc2y9DGPfpwNmg++3A2jRXPhYNVtIH6BneNvrOomNLK2wjcODlXM5KlpdmA4q4koCmhTVWx3QJW7saAskeLDr14fO/RCgtcz1XZGCPr+6uNp2WxU/nsWXNklrwF81yhUbwXCspYV5w+vA5Flg8++3AWfZXPg4NVtInssNaJ7liJsWMZOi+kmhackVzfeYZjcQcQ2F82hjxv7sGIDFqeZ1jQlpkFy68rLgfjYV38cl1CuA/WtnamYJbwGmXyVscmCn2P3tGHm8AedStG+45SWe1LHCwf7bN5cp9Ggc70ISqqjMQtdH1a2E6AQBgCIadWHpcj8UQYs+tKte0gQo4K+V6b5NvRqAtFiVnfCsyar5GeLOmLlelXWTLmyEMfzg7Ldx/OrrmiOSdU1K7OM2tmcpH2qzpIX8Exvkh88HlMth6ndVfP+xCGDAjUIRDy4TRZ0ze/r6MzZFISULjvh9MVstXWh4YcQTQcB6odNpGzu9IumoSjmtzzdWuu7PDtBNOHs7eO7z6cXXNFc4b8wqholQOa9Xg6RROFd0rDFgG1+BJ9tJuVXOlLGHKaE9BDaG/liLEFxko9ZGztU6lB9bWtGWw/NUbJs7XE82o3r0cJqQ1sL6jZ2dQXymXHFH2/kQTZYevwbmt032P6HrLDmx76cO6W8d6Hc1tQsQJ8+flskMnJY9of6wRt3fCCT7HeZSXaOwjnyjtWBI4gYMfj8P0yAknTiwl6oNumrD5DrGnCt7YwutX9FsUz3V7k07ka0kgfzoR+XaYQfXid8E78wBeg71abntwskZ/1LdajvDu11PQsj/IQBYF6BDavl0haUwK+p1iukrbnmmr0c/NgOYfNNkqN4WD90E9VRkihD4/AkenCdx/OpLSqmXCwQrTMTPcpifW92LK4pYl7avCNR4+HoBY3CgldSmBql9YrZLW8Ppw0ovOYjA11CHYthw11cXBtwvBnOV6v1GeLoUOI0Tr6cP5W89qH86uvVgkcrBDtsXYfluM1VfhECPEFZJ7m7I1HAgTCE+DhlJ/xZvmLtCwRwvGop7TRKFWj9Hoy2k27S86kHXTtO9CH8xMN0YfzW1GREjhYoRpils4vS9wpocTnljvOXeb6kktzl6MABNojwPRKfm6T8hdpWWKecjzdMlfxDIdptKreIv0YDlaI6UEjQh/O3y9C9OH8VlSkBA5WyIaYmcyRk3VJSBUZZd+vl7VPzZiXbBDwQYBf/z4oFpShkZ0nJeLagmKyFJ+sTAfUZpTDtZWud6tNC/Q51CgdfThQg/WKWBys0C2duNOlYlFoNU3kP+fW007z05I/N8nDLQj4JsDDyTfR9uWFckBGWzR6tOqo0RkCXN8qJ/KBAHJNJH04ENheEYuDFbqlZyZPycE5TmpivM0ztjaJu1DO1e1jb5ACgaAEmF4JijeXcDsUe2WuEu1lPkKjVrXPlKPbE5OrVEjnkT6cqynIPJpA7X+G0fe49kXAHJyktFGs/Vz9tRG+aoccCNQjYFNGhAoQ0AjPMzLj6gim2L5R+5keOVp2Lp2dPxgy2K7tcwIqoA8HhNsLonGwYrRyf/peHUuzYwxVY3Skbi834D49Jp0ECIQl8GxY8UjPSSDkSE+tKcPThEcqMfTz5RY5j3+qVe75M33YM9BeExf6P0Cv8Rxb36XpznKuvjz2RtSUs91AemBUjSjrdQJ2ODKhOgSulykrIpgzvO5q2NEKqTK000gfDtl6PSAbBytkIw+kG7o1zr4E1g+ppqXsVL8kU/ddtzJlTUFLWGTwRGC5JzmI8UBAIz2rJSbG2aNbanrwTdIV8pBkI2LHkc21DwEDfTgg3F4QjYMVspVTd4Ecmxi7GLeuRepmaR/3i1tnJAcEvBDg139+jGvyF8lVIvSIz7AxtjXNhOGLQH9vkNO4LJDsYbH04WES2f+G7sPZLalAztD/CSpQxZJMWJqeoN9YJ5Wkvb7a1B3u+tPTtOHohfUzkAoBbwRi/PrfWdY+783i8gX9b2ATbpL8AUVbgB4yzAopfEh2DGeRPpy/IUP34fwWlVgCBysE/GXptnKu/j2E6MIyU/cFrce6yc1M7i4sCwEQaEwgxq//VRrFCLUHUuOadegdsXpB03c2rWZ783VysC1vYkx30oc7uZdUwHamCH03QppO1G/qOZoa3Ni3aE/y1pdtl+s96g08yUMMBOoRiPFwekU9xaQ1JRBj5KepAR5uLpCzaAdZhw704dCEu1w+DpbvBu5350nkbr7FepWXuh00UVD2m41eq4SwyhGIMb2yfeVqXX2DFsrEh6pvZlMLYzmJ9OGmzcDNVgRwsFoRynN/ID1c2c/IU6S0vKl7j1ua2l41BAiEIBDj1/8uIQzvZpka+Qm9OWdofKukIMamqVYP+nDo1uxy+ThYvhp4RfoybclQhYOds9foBfdtZ3YTIOCfgE3hhH7L6yitKWKqO3/bxRoBym9Z6xLz5SQ+2Tqblxz0YS8Ye1cIDpaPtk/T8e5Z932J6rTDQTfTCYn/ofVY9AMf/QAZ6wgMjZTY5pYhw6YSPryxZUg9XSVbbXO7KlTmAfRFeEZzDunDRZqJskaAB6uPfjDg/lli9vchKrqM1L3e9bt/iq4Xhb1AYEGESlZrK5QIFfakIuQZfp5MHCPGDqy+bkxq2AT6cFi+XS0dB6to8/antmPxx4qKKbV84s7R1g17l2oDyruRQOgRLGN2gKYJq7GZb2e1YCc6WPM0qmQHV8cM9OGYtLtMFw5WkQbtT6ep+GXa9qCzOabadTnVFOeKdJMiOCgLgVoCehj26zr0fmv2f+87crI6Zk8/2TpO8SzFOUPxK7XcYnxW29wToW18VyXa9OCw4fThYRIj/1ahD4+0qJpXne0YlMk0TROpv1SOyawyzfCmO3Vbax1ZNTdH9VZJBJVAIMYUy56q10dKqFtulXowbadCtqP6FxX/diger79lhOgOS4FK2kHVMfpSPRNj6KUP1yPf4Wk4WO024IB7v5yrQ9stXtFyx+sonXdU1DbM6kwCMR5ORubjcl5eU1VEsm2ioi0luEtxv4rY2UnThFdpNMkOrC4j0IdFvaJ9uIz+kFknDlZmVDUZ+9O9dHVuTUrIj89J+H0hFYySfaFbNvgre1QylxBoi8DNKhVj3YxNES7QQ+DgtqwMVEj2jFd8u8Tfq/hpxfUDqcotVg6LHTP029wFyylQ5mgbfbiifbicrphdKw5WdlZrcz6a2qvhOmrGrZe3aFv5E72hOM69TmVjbHqnnyluI52j+H39XIlTv7agUKhTCOgh/rRsvTySvRtJzzVyaN4VSV9DNbIhUbQpwP9R/I7iNg0zl3ujTMcla80HlPHGrJl956MPV74P+25yb/JwsPKifNZ9Q05InC/LxC3Uufdf1MHMy+RknZbX1Lbzp24PHaXz2bbLUxACIwmco8tnRyYFu7KRrIvk3NjC9y2CaWkgWDonKNoJCXco2hTcXzbIWpVkO/zZdnevcrhCTs4LJRt4jvTTh0tuhE5Tj4OVp8UG0pP1VXRMniIF8q5y49073PAXy8zEvqyvKiAvb9EP6Cid2XkLkR8Cowno4fiQ0mK/QGHTcovk7Hxe0UadgwXJX0/xIMWLpMTenLT/p7sEU+hRsNrmYYn7pUeRIUSVPspGHw7RrN0v096EI2Qh0J/uIOfK1itskCV74TyJO931JReOkLM0naHpu98pbbMR6aEuksGHxS6yI8ahp6FqUQm5evjaPmMLIxizUg+DoA5FO3VQ/W1LE1vzs3E75QuWeUrlf6xojs914vNEQXmDC34lw36A/LXiEYpTFNsNy2TTjHYLFy2ntjlVMv61qJxA5RdL7tbiU/ooG324aQuX2oebWlbiTRysLPDtvLMBOVep2yFL9sJ5EvdzTQ3O1ujV2C+VpekJcrIuK6wjq4BEOyf3JYdlzU6++gR63cEyKmLwSf2xUw/KDPbSiDm6tjbq3qFoL5E8qof4mMX4stm+I80ptGUB9v9/x6G4v/76cmRLfTipjtNVlyWK4xWrFr6odjm7KkbRhxu2RKl9uKFVJd/AwcrSAEvSbyrbyVmyFs6TuJVuktvJbTY4rVJfXH96tZy9t9S/GSB1nDtD68DODyC5Z0Tqi7mnR7CsocXANrK1UazN7bqC4XnZ9GdFG/EadqzMuQr9PVn6w0ltY1sRVHFJwB5ysG6TbZUI9OGGzVB6H25oWYk3WIPVCv5AeoyyxHGu1tpyZlPnyvJMcO/Rv4+tzR7h3zXuPK3H2iWCJlR0MQE9KO0suXMrXEVbIG9TfS9TfKmiOYShnSupqEQofZ1THQqLquRcmX304TqtRFJDAjhYDdHoxtJ0G40U2ehVnJC4azQdd0lLZdN0BEnizmyZz1+GSW6NbU2RvsSfSCT1KIGvqd7X9Gjdq1ztq2ScTZ9WKfywSsbU2EIfroHBx8YEcLAasbF9oNa4H8jBinU+3wqtgHh3I3PGpPcl35WTdd2Y9FAJqXullrx/JZR45PYGAY0A2Ov2xyr+pjdq3Bm1VLvYiPhPK2ZtFUfVbBSLPlyxjlJVc3CwGrXMgKYyUrdno9ve0xN3qpueDOSSu547RU7WE7nKFMv8brckfWsxEZTudQJ6QK0SA3txwtZjEapDoEoOzV3qJ/dUB81IS+jDI3lwVZ8ADlY9Lv3poUp+f71bQdISbUjYl+QfDt88+T/Z874gNjUW+i23Iv4Gjo3N4U4nEtADyrb+OETxkU60v0ttnqd6PV2RuuX/PoxsOH04MvAOVIeDNbrRlqezlHSpRq/iLG5NtAHEhu4fRpuR+drWbCXuJ5nzF884RSs1LtN6LPpOcZY9LUEPqPsF4HDFqjzUe709nhSAaysCoUqjaQ2R0IcbouGGCPCQrO0G5jQ8b86Dm1abHPRzojcUN0lWFNIxUWu3bHuHWCF1r5Vb+NFY6tDTvQT0gPq1amdrsnCyqtHMVXBsblW/6JjpY/pwNTpuFa3AwaptlQH3MTlXb6hNCvo5cRdrf6nivxin6riLxH0gqK1jhX9Cb1nuMzaZFAjkI6AHlE1N7a54R76S5A5AYL5kxvuxVr8CVXDy6lvWIJU+3ABMjyfjYA13gCXpa/Ux3i7TiVvsJnpcPzUzsXPQrh+uTvC/qd55XOO+5x4Ne85b8HqgoBIE9IC6V4bYZqxfUBx7gkElrOx+I9QOz6iWV5dYU2t7O3e14wJ9uOOaLLjBOFiGeGU6Vf9+T1/rcY6KSKQpce90Uwc3XvTZyCdLru1EHSekbiudL//1OMrQ0u0E9IB6TvGDqueBin/q9vpWuH5ljiDdoj7QsW1PH65wry7BNBwsg/6Us809bffmWOFCTQ3+wruyWcliuW72gIoXUq2f6U9PiqcQTd1OQA+pG1THnRUr/yaZp7Z4yJMcX2JsJLzYutD2LSnTuWvf6lEl6cOjgPToJQ7WQHqGnBJ7kylWWKSDnD8cTFmf+4ZGsfw7b80NvsAtT7dvnoW7EMhOQA+oxxSPUQnbL2uBYrdNG65WncyBtNG6vRQrE8TdbLuyBINsA8+5JegNopI+HARrRwmNsxVBVZEsSW1h7a8UJ0YxMXEv6L3N/d2MZGFQfQPp1noc3a24YVA9I4Xf5vrcPtrmuGrHbYy0sqQrDnsuBl78zIG37UxOVIx1uoJUeQ+/l8SLFC/VA3iZd+meBIr3ARL1c0/isor5mZhU8cDprPY3zUcfboqnK2/27gjW8nRjjfTYcHQc58q6T6oFvKGdK9MzM/mD/v2QfYwYdtfWDZ+LqA9VPURAD147+PcMVfmliqcqVnaX7zrNslhpFyjurTpsp3ieYmWdqyH7b9LfgaHPsf50xfRgI1hqc/pwIzhdmt67I1j96WlyeOxLL05INKI00+0RbYQnTW0L0xtUx9fFqaC02AjdBtpDbPLguWbR1HaCIv16tTVFd0awtV9f5LZZbtcHMX2DKnmkor19uKtivB9LUtYkPK57/6V4veICe7A2yVvZW+J7vow7PZKBNvI9U6zsTMSeCfTh7m7q3nWwurtdqR0EeoqAHlSTVOFXK5qz9VdDf7fS39DBnKnbFW8birfq74NyFLptzZiqRQhJgD4ckm45snGwyuGOVghAIDABPbBmSIU5W1srTlGcPCrWpm2se7bB5qaKFmyh97OKNrJiR8jYdNlw7NfnexVxpgSBEI4AfTgc2xiScbBiUEYHBCBQaQJ6kNkeeLYm1f4+ywhUpZsL4+oQoA/XgUISBCAAAQhAAAIQgAAEIAABCEAAAhCAAAQgAAEIQAACEIAABCAAAQhAAAIQgAAEIAABCEAAAhCAAAQgAAEIQAACEIAABCAAAQhAAAIQgAAEIAABCEAAAhCAAAQgAAEIQAACEIAABCAAAQhAAAIQgAAEIAABCEAAAhCAAAQgAAEIQAACEIAABCAAAQhAAAIQgAAEIAABCEAAAhCAAAQgAAEIQAACEIAABCAAAQhAAAIQgAAEIAABCEAAAhCAAAQgAAEIQAACEIAABCAAAQhAAAIQgAAEIAABCEAAAhCAAAQgAAEIQAACEIAABCAAAQhAAAIQgAAEIAABCEAAAhCAAAQgAAEIQAACEIAABCAAAQhAAAIQgAAEIAABCEAAAhCAAAQgAAEIQAACEIAABCAAAQhAAAIQgAAEIAABCEAAAhCAAAQgAAEIQAACEIAABCAAAQhAAAIQgAAEIAABCEAAAhCAAAQgAAEIQAACEIAABCAAAQhAAAIQgAAEIAABCEAAAhCAAAQgAAEIQAACEIAABCAAAQhAAAIQgAAEIAABCEAAAhCAAAQgAAEIQAACEIAABCAAAQhAAAIQgAAEIAABCEAAAhCAAAQgAAEIQAACEIAABCAAAQhAAAIQgAAEIAABCEAAAhCAAAQgAAEIQAACEIAABCAAAQhAAAIQgAAEIAABCEAAAhCAAAQgAAEIQAACEIAABCAAAQhAAAIBCfw/OGy5D6vVjuMAAAAASUVORK5CYII=" - webUI["html/img/stream-limit.jpg"] = "/9j/4AAQSkZJRgABAQAAAQABAAD/4gJoSUNDX1BST0ZJTEUAAQEAAAJYbGNtcwQwAABtbnRyUkdCIFhZWiAH4wAFABcAFgAuAAphY3NwQVBQTAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA9tYAAQAAAADTLWxjbXMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAtkZXNjAAABCAAAAEBjcHJ0AAABSAAAAE53dHB0AAABmAAAABRjaGFkAAABrAAAACxyWFlaAAAB2AAAABRiWFlaAAAB7AAAABRnWFlaAAACAAAAABRyVFJDAAACFAAAACBnVFJDAAACFAAAACBiVFJDAAACFAAAACBjaHJtAAACNAAAACRtbHVjAAAAAAAAAAEAAAAMZW5VUwAAACQAAAAcAHMAUgBHAEIAIABJAEUAQwA2ADEAOQA2ADYALQAyAC4AMQAAbWx1YwAAAAAAAAABAAAADGVuVVMAAAAyAAAAHABOAG8AIABjAG8AcAB5AHIAaQBnAGgAdAAsACAAdQBzAGUAIABmAHIAZQBlAGwAeQAAAABYWVogAAAAAAAA9tYAAQAAAADTLXNmMzIAAAAAAAEMSgAABeP///MqAAAHmwAA/Yf///ui///9owAAA9gAAMCUWFlaIAAAAAAAAG+UAAA47gAAA5BYWVogAAAAAAAAJJ0AAA+DAAC2vlhZWiAAAAAAAABipQAAt5AAABjecGFyYQAAAAAAAwAAAAJmZgAA8qcAAA1ZAAAT0AAACltjaHJtAAAAAAADAAAAAKPXAABUewAATM0AAJmaAAAmZgAAD1z/2wBDAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQH/2wBDAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQH/wAARCAQ4B4ADASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD/AD/6KKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigD9PvBf/AARa/wCCrXxF8HeE/iD4G/YM/aL8UeCfHfhrQvGXg/xNpHgia50nxF4W8T6Xa634f13TLkTgXGn6vpN9aahZTgAS21xFIAN1dL/w4o/4LB/9I7/2m/8AwgZ//kiv9b3/AIJp/wDKOX9gH/syf9lX/wBUV4Dr7YoA/wAWr/hxR/wWD/6R3/tN/wDhAz//ACRR/wAOKP8AgsH/ANI7/wBpv/wgZ/8A5Ir/AGlaKAP8Wr/hxR/wWD/6R3/tN/8AhAz/APyRR/w4o/4LB/8ASO/9pv8A8IGf/wCSK/2laKAP8Wr/AIcUf8Fg/wDpHf8AtN/+EDP/APJFH/Dij/gsH/0jv/ab/wDCBn/+SK/2laKAP8Wr/hxR/wAFg/8ApHf+03/4QM//AMkUf8OKP+Cwf/SO/wDab/8ACBn/APkiv9pWigD/ABav+HFH/BYP/pHf+03/AOEDP/8AJFH/AA4o/wCCwf8A0jv/AGm//CBn/wDkiv8AaVooA/xav+HFH/BYP/pHf+03/wCEDP8A/JFH/Dij/gsH/wBI7/2m/wDwgZ//AJIr/aVooA/xav8AhxR/wWD/AOkd/wC03/4QM/8A8kUf8OKP+Cwf/SO/9pv/AMIGf/5Ir/aVooA/xav+HFH/AAWD/wCkd/7Tf/hAz/8AyRR/w4o/4LB/9I7/ANpv/wAIGf8A+SK/2laKAP8AFq/4cUf8Fg/+kd/7Tf8A4QM//wAkUf8ADij/AILB/wDSO/8Aab/8IGf/AOSK/wBpWigD/Fq/4cUf8Fg/+kd/7Tf/AIQM/wD8kUf8OKP+Cwf/AEjv/ab/APCBn/8Akiv9pWigD/Fq/wCHFH/BYP8A6R3/ALTf/hAz/wDyRR/w4o/4LB/9I7/2m/8AwgZ//kiv9pWigD/E88f/APBGT/gqj8K/AnjT4nfEX9hL9ofwf8P/AIdeFPEPjnxz4t1zwTNaaL4X8IeE9Ju9d8SeIdXujORbaZo2j2F5qN9OQRDa20shB24r8yq/28f+Ctf/ACit/wCClX/ZhH7Xv/rP/wAQK/xDqACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooA+j/ANmj9kL9pr9snxbrvgL9lr4K+Ovjn408M+HH8X6/4Y+H2ljWdZ0vwvFqen6NLr1zYrNHMNMh1XVtL0+a7RWihu9RsoZSj3MIf7U/4cUf8Fg/+kd/7Tf/AIQM/wD8kV2v/BAD9sj/AIYi/wCCrf7K/wATNW1X+yvh98QPFw+AHxWklm+z6f8A8IJ8aWg8HjU9Xl3Ls0rwd4wufCPxAuz82B4RQlJACjf7MFAH+LV/w4o/4LB/9I7/ANpv/wAIGf8A+SKP+HFH/BYP/pHf+03/AOEDP/8AJFf7StFAH+LV/wAOKP8AgsH/ANI7/wBpv/wgZ/8A5Io/4cUf8Fg/+kd/7Tf/AIQM/wD8kV/tK0UAf4tX/Dij/gsH/wBI7/2m/wDwgZ//AJIo/wCHFH/BYP8A6R3/ALTf/hAz/wDyRX+0rRQB/gx/HT4CfGb9mT4n+Ivgt+0B8NfFnwj+K3hJNHl8SeA/G2lzaP4i0iLxBomneI9Emu7KbJWLU9C1bTtTs5UZ45rW7idWySB5HX9yX/B69+yL/wAIr8eP2V/22/D2meXpfxb8Da18BfiPd2sOy3i8afDG9k8U+BdR1OXbiXVPFHg/xZrukWzB2P8AZnw0jjZIxEjS/wANtABRRRQAUUUUAFFFFABRRRQAUUUUAPRHldIokeSSR1SONFLu7uQqIiKCzOzEKqqCWJAAJNfq8n/BCv8A4LBSIki/8E7/ANp3a6q67vh/dI21gGG5HnV0bB5V1VlPDAEEVv8A/BBj9kX/AIbU/wCCrf7Ivwo1PTP7T8DeGPiFb/Gz4nRTQ+fpzeAvgpE3xDv9L1hQrEaZ4w1nRdD8BSkAFp/FdvH5kO/zo/8AZ4oA/wAWr/hxR/wWD/6R3/tN/wDhAz//ACRR/wAOKP8AgsH/ANI7/wBpv/wgZ/8A5Ir/AGlaKAP8Wr/hxR/wWD/6R3/tN/8AhAz/APyRR/w4o/4LB/8ASO/9pv8A8IGf/wCSK/2laKAP8Wr/AIcUf8Fg/wDpHf8AtN/+EDP/APJFH/Dij/gsH/0jv/ab/wDCBn/+SK/2laKAP8Kz9p39iX9rL9i7UfCOkftV/AT4ifAfVPHtlq+o+DtO+IejjRb3xDp+gz2Ntq97p1s00k0lrY3GpWUEs7IkbSz+XGztHKI/lqv6F/8Ag5+/bI/4a5/4K2/HDTNF1X+0fh7+y5aaZ+y74KEU261GofDq61K8+KVz5UbG3N0fi9r3jnSTexl5bzSdE0USybLeCGD+eigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigD/cg/4Jp/8o5f2Af+zJ/2Vf8A1RXgOvtivif/AIJp/wDKOX9gH/syf9lX/wBUV4Dr7YoAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigD8+P8AgrX/AMorf+ClX/ZhH7Xv/rP/AMQK/wAQ6v8Abx/4K1/8orf+ClX/AGYR+17/AOs//ECv8Q6gAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAHI7xOkkbtHJGyvHIjFHR0IZXRlIZWVgGVlIIIBBBFf7Z//BIH9sRP28f+Cbv7J37St5qS6n4x8VfC/TPDXxTmMqvc/wDC3PhxNcfD/wCJdxdQ5Mtp/bPi7w3qfiLT7e4zK2jazplyHnhuIrib/Eur/QW/4Mm/2yPteh/tZfsE+JNV3T6PeaT+1D8KNPml3yNp2pDRvht8YrW381t0NrYahB8JtRtLK33Rtda5r980cUjzyzgH98VFFFABRRRQAUUUUAfhR/wcifsif8Ngf8Eif2ndD0vTP7T8dfAvSbH9p74ehYvPuINW+DCXur+MUs4FUzXF/qvwjvfiRoFhb25E819q9skazn/R5v8AHer/AH6NW0rTdd0rU9D1mxtdU0fWdPvNK1bTL6FLmy1HTdRtpLS+sby3kDRz2t3azS29xDIrJLFI6OCrEV/hv/8ABQv9lrUv2J/23/2ov2V9Riuo4Pgv8Y/GHhbwzPe7/tWqeAJdQbWfhrr83mfPu8R/D7VPDOvjcWO3Uh88n32APjeiiigAooooAKKKKACiiigAooooA/0D/wDgyU/ZE+z6T+19+3Xr+mYl1G70D9lz4Y6lJFtdbSwTSfif8YfKaRd0lvd3Vz8HreC4g2xifS9VtneSRHSD++mvyl/4Ih/sif8ADEf/AAS3/ZB+B2o6X/ZXjV/hhYfE/wCKEEsPlahH8S/jDNN8SfFmmaq21WnvfCl14ki8EpKw+Ww8M2MCExQxmv1aoAKKKKACiiigAr5A/b+/ao0X9iP9iv8AaZ/as1xrRk+Cfwi8V+LdCsr5gtrrfjk2R0j4c+GZWLKF/wCEq8f6n4a8NodwxJqqdeh+v6/ib/4PTP2yP+EA/Za/Z5/Yk8N6r5WvftCfEG7+LPxGtLWb98nww+Dogh8OaVqtvuA+weKviT4g03W9Nk2uWvvhfdrujEZEoB/nB+IfEGteLPEGueKvEup3eteIvE2san4g1/WL+Uz32ra1rN7PqOq6nezNzNd399cz3VzKeZJpXc8mseiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigD/cg/4Jp/8AKOX9gH/syf8AZV/9UV4Dr7Yr4n/4Jp/8o5f2Af8Asyf9lX/1RXgOvtigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAPz4/4K1/8orf+ClX/AGYR+17/AOs//ECv8Q6v9vH/AIK1/wDKK3/gpV/2YR+17/6z/wDECv8AEOoAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAr9V/+CJP7ZH/DCn/BT39k348anqv9leA2+Itp8Mvi1NNN5Onp8LPi3FJ8P/F+qaou5RPaeEbfXYPHcMLMB/aXhXT5R80Sg/lRRQB/v8UV+TP/AAQ5/bI/4bo/4JdfsnfG7VNV/tXx9p/w+tfhN8WpZZvO1Fvid8IJG8A+JNV1f5m8u/8AGUWi6d8QFjDECx8W2TgRh/LT9ZqACiiigAooooAK/wA07/g9I/ZE/wCFcftj/AD9sXQNM8jQP2lfhZdfD7xtd28O5H+KPwOnsbO31HUp1A8q41z4a+KvBmkaXDN808HgPUnhZ1tplh/0sa/nd/4Oi/2RP+Gq/wDgkT8cNZ0fS/7R8dfsuapoP7T/AITMUO64TS/ACahpXxSVp0Bnjsbf4ReJvHOuz26hoLi+0HS2nQG3iuLcA/yKaKKKACiiigAooooAKKKKACv02/4I3fsi/wDDcf8AwUy/ZC/Z3vtM/tXwfr3xX0nxh8TrWSLfaS/Cr4XQ3PxJ+IlleyMGhto9d8L+FtQ8NWk04MbaprWn2yxzz3EUEv5k1/eL/wAGTH7In9reP/2uf259f0zdZ+D9A0H9mf4Z6hND5sEmveK7jTviL8VprV3Gy21LQ9E0b4YWSTwlp207xnqVsWhgnkS5AP8AQzooooAKKKKACiiigAr/AB3f+DkD9sj/AIbN/wCCtf7SWvaRqv8Aanw9+BGpWv7MPw1aOf7RaJovwcudR0zxfd2E6MYLnT9d+LV/8RfEWm3dsPJuNM1axZJJ1VbiX/Ux/wCCnv7XVn+wl+wF+1T+1TLdW1trXws+E2vXHgJbsRtBe/FTxOYPBnwo02aKQMJbe/8AiN4h8MW16qxysti9zN5UixMp/wAQK+vr3U7281LUru5v9R1C6uL6/vryaS5u729u5XuLq7uriZnlnubieR5p5pXaSWV2d2ZmJIBVooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooA/sa/Z9/4PGv2mv2ffgJ8EPgJo37HXwJ8QaP8EPhD8NfhDpOv6n43+IFtqWt6b8NfBmi+DLHV9Qt7QfZbe+1K10WK9u4bb/R4riaSOH92q169/xG8ftWf9GRfs9/+F98R/8ACv4h6KAP7eP+I3j9qz/oyL9nv/wvviP/AIUf8RvH7Vn/AEZF+z3/AOF98R/8K/iHooA/t4/4jeP2rP8AoyL9nv8A8L74j/4Uf8RvH7Vn/RkX7Pf/AIX3xH/wr+IeigD+3j/iN4/as/6Mi/Z7/wDC++I/+FH/ABG8ftWf9GRfs9/+F98R/wDCv4h6KAP9GT/gmX/wdhftE/t2/t3fs3/skeLv2T/gt4E8N/G/xpf+F9W8XeHPGPjnUNb0O3tPCviHxCt1p9lqY+wXEzzaNFbslz8gimkYfOq1/cpX+NT/AMG73/KaX9gD/srmtf8AqtPHVf7K1ABRRRQAUUUUAFFFFAH8KH/BRT/g7X/aN/Yq/bf/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WOj6BoOn3Gq6xql5Jg+Xaafp1pcXdw+DshhdsHGKAP8AN2/4PR/2yP8AhY37XHwD/Yq8N6r53h/9m34dT/Er4g2dtNiP/hanxqFlcaTpmqW4Yh7rw38MdB8M6zpUzhWitviTqKICJmJ/itr6y/bt/ah179tX9sf9pP8Aaq8RG6juvjh8XfF/jbS7C9fzLjQfCN1qUln4D8LF98m6Lwl4IsvD/hm2Jkc/ZtJiBdj8x+TaACiiigAooooAK/2Hv+DZvSf7G/4Id/sIWe3Z53hv40atjGM/29+0r8Ztc3f8D/tHfnvuzzmv8eGv9kD/AINw7+HUv+CJ37A1xAqqkfw58c2DBOhm0r40fEvTLhj/ALb3FnKz/wC2WoA/biiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAr/JJ/4Ow/+U2X7Q//AGTv9nj/ANUr4Nr/AFtq/wAkn/g7D/5TZftD/wDZO/2eP/VK+DaAP5vaKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKK6vwJ4G8W/E3xn4X+HngLQdQ8UeNPGmu6b4a8L+HtLi86/1fWtXuo7OwsrdCVRTLPKoeaZ47e3iD3FzLFBFJIt06dSrUhSpQnUq1Zwp06dOMp1KlSpOMKdOEIKUpznOcIQhGMpSlKMYpuST58Xi8LgMJisfjsTh8FgcDhsRjcbjcXXpYXCYPB4OhWxWLxeKxOIqUaGHw2Fw2GxGIxGIr1aVGhQoVq1WpTp0pzj9Y/sAfsT+O/27/wBofw38HvC32vSfCtqY/EXxU8cx2/nWvgfwDZ3MMep6gDIpgm13VHkTR/C2myZ+361dwPcCLSrTVL2z/wBHr4T/AAs8CfBD4beC/hL8MtAtPDHgPwBoNl4c8NaJZj5LWwskOZriZv3t7qV/cvPqOr6ndNJe6rqt3eal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gAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAr+z7/ggp/wTT/4VH4Psf20vjV4f8r4n/ELRXX4K+HtVtsXPgT4d6zbFJvGk8E6brXxN8QbCXZpbIqz6X4Hn/17P4t1GysPyI/4Ip/8E13/AGxfjB/wuX4r6G837N3wa1q0m1S1voD9h+KPxAtlg1HSvAMXmL5V3oOmRyWmt+O8ear6bNpfh14h/wAJK95p/wDedHGkSJFEiRxxoscccahEjRAFRERQFVFUBVVQAoAAAAr+o/AXw29vUpcdZ3h/3FGclw3ha0NK1eDlTq5zOE1rTw8lOjlzaaniFXxkbxw+Hkf4Nfta/psf2Tg8d9FLwvzi2aZlh6E/GrPctxHv5dleIhRxeC8NsPiKFS8Mbm1KWFzPjSMKkZ4bKJZTw5VUKub5vRT6KKK/rU/55AooooAKKKr3d3a2Frc319c29lY2VvNd3l5dzR21raWttG01xc3NxMyQwW8EKPLNNK6RxRozuyqpIG0k22kkm220kkk2222kkkm220kk22km04xlOUYQjKc5yjCEIRlOc5zlGMIQhGMpSnKUoxjGMZSlKUYxjKUoxlYoqlpuo6frGn2Gr6TfWeqaVqlla6jpmp6fcw3un6jp99AlzZX1jeWzyW93Z3dtLHcW1zBJJDPDIksTsjqxu0k1JKUWnFpNNNNNNJppptNNNNNNpppptNNucJ0pzp1ITp1Kc506lOpCdOpTqU5zp1KdSnUjCpTqU6lOdOpTqQhOE4ThOEJwnCBRRRTJCiiigD8if+Cvv/BOiw/bq+A0ms+CNNtIv2i/hFZalrXwv1HENtN4u00p9q1z4X6pdvsRrXxCIRc+Gp7yRIdI8Vw2j/arDS9W8QPcf59Ooaff6Tf32larZXem6npl5c6fqWnX9vNZ31hf2Uz215ZXtpcJHPa3drcRyQXNvPGk0E0bxSIrqyj/AFjK/kJ/4L+/8E2P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/DSP/BUjUvgr4f1X7d4A/Y18AaL8IbSK3m87TpviZ4mSHx78VtVhBYmPULa61fw18PtYjCoEvPh1sCsVMsoB/LfRRRQAUUUUAFFFFABRRRQAUUUUAFf6lH/BsR/wW/h/bw+Ddn+xj+0n4qib9sH4C+E7ePwt4i1m7Vb/APaF+D2gQwWFp4kW4nYPqXxM8BWv2TS/H9u5k1LxFpA03x8kmp3U3jWXRP8ALXr0j4P/ABg+J3wA+J/gf4z/AAY8b6/8OPil8N/EFl4o8E+NvDF61jrWg61YMTFcW8oDxT288TzWWpabew3OmavplzeaVqtneabeXVrMAf72FFfzsf8ABCH/AIL2fCb/AIKr/DKw+GXxPvvDPwy/bk8CaKg8e/DJbqLTdK+K+nadbZuvil8HrW8nM9/pc8cL3fi7wbBJeav4DvTKZvtnhqfStbu/6J6ACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooA+HP8Agp3/AMo1v+Chf/Zjn7WX/qhPH9f4dVf7iv8AwU7/AOUa3/BQv/sxz9rL/wBUJ4/r/DqoAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKtWNje6ne2em6bZ3WoajqF1b2NhYWNvLd3t9e3cqQWtnaWsCST3N1czyRw29vCjyzSukcaM7AFpNtJJttpJJNtttJJJJtttpJJNttJJtpOZzhThKpUlGEIRlOc5yjCEIQjKc5znOUIQhCEJznOc4QhCE5znGMZSj7x+y5+zX8Sf2t/jj4G+BHwr0/7V4l8ZaksdzqVxHK2keFPDtpifxB4v8AEM0SsbbRPD+nCW8uiM3F5MLbStOjudV1CxtLj/SQ/ZX/AGZ/ht+yJ8DPA/wH+Flh9n8O+D9PAvtWniiTV/F3iW8CzeIfGHiGWIYuNZ1+/wB9zMNxgsLUWej6ctvpWm2FrB+fv/BHj/gnDZfs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FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF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FFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFAH//Z" - webUI["html/lang/en.json"] = "ewogICJtYWluTWVudSI6CiAgewogICAgIml0ZW0iOgogICAgewogICAgICAicGxheWxpc3QiOiAiUGxheWxpc3QiLAogICAgICAicG1zSUQiOiAiUE1TIElEIiwKICAgICAgImZpbHRlciI6ICJGaWx0ZXIiLAogICAgICAieG1sdHYiOiAiWE1MVFYiLAogICAgICAibWFwcGluZyI6ICJNYXBwaW5nIiwKICAgICAgInVzZXJzIjogIlVzZXJzIiwKICAgICAgInNldHRpbmdzIjogIlNldHRpbmdzIiwKICAgICAgImxvZyI6ICJMb2ciLAogICAgICAibG9nb3V0IjogIkxvZ291dCIKICAgIH0sCiAgICAiaGVhZGxpbmUiOgogICAgewogICAgICAicGxheWxpc3QiOiAiTG9jYWwgb3IgcmVtb3RlIHBsYXlsaXN0cyIsCiAgICAgICJmaWx0ZXIiOiAiRmlsdGVyIHBsYXlsaXN0IiwKICAgICAgInhtbHR2IjogIkxvY2FsIG9yIHJlbW90ZSBYTUxUViBmaWxlcyIsCiAgICAgICJtYXBwaW5nIjogIk1hcCBwbGF5bGlzdCBjaGFubmVscyB0byBFUEcgY2hhbm5lbHMiLAogICAgICAidXNlcnMiOiAiVXNlciBtYW5hZ2VtZW50IiwKICAgICAgInNldHRpbmdzIjogIlNldHRpbmdzIiwKICAgICAgImxvZyI6ICJMb2ciLAogICAgICAibG9nb3V0IjogIkxvZ291dCIKICAgIH0KICB9LAogICJjb25maXJtIjoKICB7CiAgICAicmVzdG9yZSI6ICJBbGwgZGF0YSB3aWxsIGJlIHJlcGxhY2VkIHdpdGggdGhvc2UgZnJvbSB0aGUgYmFja3VwLiBTaG91bGQgdGhlIGZpbGVzIGJlIHJlc3RvcmVkPyIKICB9LAogICJhbGVydCI6CiAgewogICAgImZpbGVMb2FkaW5nRXJyb3IiOiAiRmlsZSBjb3VsZG4ndCBiZSBsb2FkZWQiLAogICAgImludmFsaWRDaGFubmVsTnVtYmVyIjogIkludmFsaWQgY2hhbm5lbCBudW1iZXIiLAogICAgIm1pc3NpbmdJbnB1dCI6ICJNaXNzaW5nIGlucHV0IgogIH0sCiAgImJ1dHRvbiI6CiAgewogICAgImJhY2siOiAiQmFjayIsCiAgICAiYmFja3VwIjogIkJhY2t1cCIsCiAgICAiYnVsa0VkaXQiOiAiQnVsayBFZGl0IiwKICAgICJjYW5jZWwiOiAiQ2FuY2VsIiwKICAgICJkZWxldGUiOiAiRGVsZXRlIiwKICAgICJkb25lIjogIkRvbmUiLAogICAgImxvZ2luIjogIkxvZ2luIiwKICAgICJuZXciOiAiTmV3IiwKICAgICJuZXh0IjogIk5leHQiLAogICAgInJlc3RvcmUiOiAiUmVzdG9yZSIsCiAgICAic2F2ZSI6ICJTYXZlIiwKICAgICJzZWFyY2giOiAiU2VhcmNoIiwKICAgICJ1cGRhdGUiOiAiVXBkYXRlIiwKICAgICJjcmFldGVBY2NvdW50IjogIkNyZWF0ZSBBY2NvdW50IiwKICAgICJyZXNldExvZ3MiOiAiUmVzZXQgTG9ncyIsCiAgICAidXBsb2FkTG9nbyI6ICJVcGxvYWQgTG9nbyIKICB9LAogICJmaWx0ZXIiOgogIHsKICAgICJ0YWJsZSI6CiAgICB7CiAgICAgICJuYW1lIjogIkZpbHRlciBOYW1lIiwKICAgICAgInR5cGUiOiAiRmlsdGVyIFR5cGUiLAogICAgICAiZmlsdGVyIjogIkZpbHRlciIKICAgIH0sCiAgICAiY3VzdG9tIjogIkN1c3RvbSIsCiAgICAiZ3JvdXAiOiAiR3JvdXAiLAogICAgIm5hbWUiOgogICAgewogICAgICAidGl0bGUiOiAiRmlsdGVyIE5hbWUiLAogICAgICAicGxhY2Vob2xkZXIiOiAiRmlsdGVyIG5hbWUiLAogICAgICAiZGVzY3JpcHRpb24iOiAiIgogICAgfSwKICAgICJkZXNjcmlwdGlvbiI6CiAgICB7CiAgICAgICJ0aXRsZSI6ICJEZXNjcmlwdGlvbiIsCiAgICAgICJwbGFjZWhvbGRlciI6ICJEZXNjcmlwdGlvbiIsCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiCiAgICB9LAogICAgInR5cGUiOgogICAgewogICAgICAidGl0bGUiOiAiVHlwZSIsCiAgICAgICJncm91cFRpdGxlIjogIkdyb3VwIFRpdGxlIiwKICAgICAgImN1c3RvbUZpbHRlciI6ICJDdXN0b20gRmlsdGVyIgogICAgfSwKICAgICJjYXNlU2Vuc2l0aXZlIjoKICAgIHsKICAgICAgInRpdGxlIjogIkNhc2UgU2Vuc2l0aXZlIiwKICAgICAgInBsYWNlaG9sZGVyIjogIiIsCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiCiAgICB9LAogICAgImZpbHRlclJ1bGUiOgogICAgewogICAgICAidGl0bGUiOiAiRmlsdGVyIFJ1bGUiLAogICAgICAicGxhY2Vob2xkZXIiOiAiU3BvcnQge0hEfSAhe0VTLElUfSIsCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiCiAgICB9LAogICAgImZpbHRlckdyb3VwIjoKICAgIHsKICAgICAgInRpdGxlIjogIkdyb3VwIFRpdGxlIiwKICAgICAgInBsYWNlaG9sZGVyIjogIiIsCiAgICAgICJkZXNjcmlwdGlvbiI6ICJTZWxlY3QgYSBNM1UgZ3JvdXAuIChDb3VudGVyKTxicj5DaGFuZ2luZyB0aGUgZ3JvdXAgdGl0bGUgaW4gdGhlIE0zVSBpbnZhbGlkYXRlcyB0aGUgZmlsdGVyLiIKICAgIH0sCiAgICAiaW5jbHVkZSI6CiAgICB7CiAgICAgICJ0aXRsZSI6ICJJbmNsdWRlIiwKICAgICAgInBsYWNlaG9sZGVyIjogIkZIRCxVSEQiLAogICAgICAiZGVzY3JpcHRpb24iOiAiQ2hhbm5lbCBuYW1lIG11c3QgaW5jbHVkZS48YnI+KENvbW1hIHNlcGFyYXRlZCkgQ29tbWEgbWVhbnMgb3IiCiAgICB9LAogICAgImV4Y2x1ZGUiOgogICAgewogICAgICAidGl0bGUiOiAiRXhjbHVkZSIsCiAgICAgICJwbGFjZWhvbGRlciI6ICJFUyxJVCIsCiAgICAgICJkZXNjcmlwdGlvbiI6ICJDaGFubmVsIG5hbWUgbXVzdCBub3QgY29udGFpbi48YnI+KENvbW1hIHNlcGFyYXRlZCkgQ29tbWEgbWVhbnMgb3IiCiAgICB9CgogIH0sCiAgInBsYXlsaXN0IjoKICB7CiAgICAidGFibGUiOgogICAgewogICAgICAicGxheWxpc3QiOiAiUGxheWxpc3QiLAogICAgICAidHVuZXIiOiAiVHVuZXIiLAogICAgICAibGFzdFVwZGF0ZSI6ICJMYXN0IFVwZGF0ZSIsCiAgICAgICJhdmFpbGFiaWxpdHkiOiAiQXZhaWxhYmlsaXR5IiwKICAgICAgInR5cGUiOiAiVHlwZSIsCiAgICAgICJzdHJlYW1zIjogIlN0cmVhbXMiLAogICAgICAiZ3JvdXBUaXRsZSI6ICJncm91cC10aXRsZSIsCiAgICAgICJ0dmdJRCI6ICJ0dmctaWQiLAogICAgICAidW5pcXVlSUQiOiAiVW5pcXVlIElEIgogICAgfSwKICAgICJwbGF5bGlzdFR5cGUiOgogICAgewogICAgICAidGl0bGUiOiAiUGxheWxpc3QgdHlwZSIsCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLAogICAgICAiZGVzY3JpcHRpb24iOiAiIgogICAgfSwKICAgICJ0eXBlIjoKICAgIHsKICAgICAgInRpdGxlIjogIlR5cGUiLAogICAgICAicGxhY2Vob2xkZXIiOiAiIiwKICAgICAgImRlc2NyaXB0aW9uIjogIiIKICAgIH0sCiAgICAibmFtZSI6CiAgICB7CiAgICAgICJ0aXRsZSI6ICJOYW1lIiwKICAgICAgInBsYWNlaG9sZGVyIjogIlBsYXlsaXN0IG5hbWUiLAogICAgICAiZGVzY3JpcHRpb24iOiAiIgogICAgfSwKICAgICJkZXNjcmlwdGlvbiI6CiAgICB7CiAgICAgICJ0aXRsZSI6ICJEZXNjcmlwdGlvbiIsCiAgICAgICJwbGFjZWhvbGRlciI6ICJEZXNjcmlwdGlvbiIsCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiCiAgICB9LAogICAgImZpbGVNM1UiOgogICAgewogICAgICAidGl0bGUiOiAiTTNVIEZpbGUiLAogICAgICAicGxhY2Vob2xkZXIiOiAiRmlsZSBwYXRoIG9yIFVSTCBvZiB0aGUgTTNVIiwKICAgICAgImRlc2NyaXB0aW9uIjogIiIKICAgIH0sCiAgICAiZmlsZUhESFIiOgogICAgewogICAgICAidGl0bGUiOiAiSERIb21lUnVuIElQIiwKICAgICAgInBsYWNlaG9sZGVyIjogIklQIGFkZHJlc3MgYW5kIHBvcnQgKDE5Mi4xNjguMS4xMDo1MDA0KSIsCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiCiAgICB9LAogICAgInR1bmVyIjoKICAgIHsKICAgICAgInRpdGxlIjogIlR1bmVyIC8gU3RyZWFtcyIsCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLAogICAgICAiZGVzY3JpcHRpb24iOiAiTnVtYmVyIG9mIHBhcmFsbGVsIGNvbm5lY3Rpb25zIHRoYXQgY2FuIGJlIGVzdGFibGlzaGVkIHRvIHRoZSBwcm92aWRlci4gPGJyPk9ubHkgYXZhaWxhYmxlIHdpdGggYWN0aXZhdGVkIGJ1ZmZlci48YnI+TmV3IHNldHRpbmdzIHdpbGwgb25seSBiZSBhcHBsaWVkIGFmdGVyIHF1aXR0aW5nIGFsbCBzdHJlYW1zLiIKICAgIH0KICB9LAogICJ4bWx0diI6CiAgewogICAgInRhYmxlIjoKICAgIHsKICAgICAgImd1aWRlIjogIkd1aWRlIiwKICAgICAgImxhc3RVcGRhdGUiOiAiTGFzdCBVcGRhdGUiLAogICAgICAiYXZhaWxhYmlsaXR5IjogIkF2YWlsYWJpbGl0eSIsCiAgICAgICJjaGFubmVscyI6ICJDaGFubmVscyIsCiAgICAgICJwcm9ncmFtcyI6ICJQcm9ncmFtcyIKICAgIH0sCiAgICAibmFtZSI6CiAgICB7CiAgICAgICJ0aXRsZSI6ICJOYW1lIiwKICAgICAgInBsYWNlaG9sZGVyIjogIkd1aWRlIG5hbWUiLAogICAgICAiZGVzY3JpcHRpb24iOiAiIgogICAgfSwKICAgICJkZXNjcmlwdGlvbiI6CiAgICB7CiAgICAgICJ0aXRsZSI6ICJEZXNjcmlwdGlvbiIsCiAgICAgICJwbGFjZWhvbGRlciI6ICJEZXNjcmlwdGlvbiIsCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiCiAgICB9LAogICAgImZpbGVYTUxUViI6CiAgICB7CiAgICAgICJ0aXRsZSI6ICJYTUxUViBGaWxlIiwKICAgICAgInBsYWNlaG9sZGVyIjogIkZpbGUgcGF0aCBvciBVUkwgb2YgdGhlIFhNTFRWIiwKICAgICAgImRlc2NyaXB0aW9uIjogIiIKICAgIH0KICB9LAogICJtYXBwaW5nIjoKICB7CiAgICAidGFibGUiOgogICAgewogICAgICAiY2hObyI6ICJDaC4gTm8uIiwKICAgICAgImxvZ28iOiAiTG9nbyIsCiAgICAgICJjaGFubmVsTmFtZSI6ICJDaGFubmVsIE5hbWUiLAogICAgICAicGxheWxpc3QiOiAiUGxheWxpc3QiLAogICAgICAiZ3JvdXBUaXRsZSI6ICJHcm91cCBUaXRsZSIsCiAgICAgICJ4bWx0dkZpbGUiOiAiWE1MVFYgRmlsZSIsCiAgICAgICJ4bWx0dklEIjogIlhNTFRWIElEIgogICAgfSwKICAgICJhY3RpdmUiOgogICAgewogICAgICAidGl0bGUiOiAiQWN0aXZlIiwKICAgICAgInBsYWNlaG9sZGVyIjogIiIsCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiCiAgICB9LAogICAgImNoYW5uZWxOYW1lIjoKICAgIHsKICAgICAgInRpdGxlIjogIkNoYW5uZWwgTmFtZSIsCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLAogICAgICAiZGVzY3JpcHRpb24iOiAiIgogICAgfSwKICAgICJkZXNjcmlwdGlvbiI6CiAgICB7CiAgICAgICJ0aXRsZSI6ICJDaGFubmVsIERlc2NyaXB0aW9uIiwKICAgICAgInBsYWNlaG9sZGVyIjogIlVzZWQgYnkgdGhlIER1bW15IGFzIGFuIFhNTCBkZXNjcmlwdGlvbiIsCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiCiAgICB9LAogICAgInVwZGF0ZUNoYW5uZWxOYW1lIjoKICAgIHsKICAgICAgInRpdGxlIjogIlVwZGF0ZSBDaGFubmVsIE5hbWUiLAogICAgICAicGxhY2Vob2xkZXIiOiAiIiwKICAgICAgImRlc2NyaXB0aW9uIjogIiIKICAgIH0sCiAgICAiY2hhbm5lbExvZ28iOgogICAgewogICAgICAidGl0bGUiOiAiTG9nbyBVUkwiLAogICAgICAicGxhY2Vob2xkZXIiOiAiIiwKICAgICAgImRlc2NyaXB0aW9uIjogIiIKICAgIH0sCiAgICAidXBkYXRlQ2hhbm5lbExvZ28iOgogICAgewogICAgICAidGl0bGUiOiAiVXBkYXRlIENoYW5uZWwgTG9nbyIsCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLAogICAgICAiZGVzY3JpcHRpb24iOiAiIgogICAgfSwKICAgICJlcGdDYXRlZ29yeSI6CiAgICB7CiAgICAgICJ0aXRsZSI6ICJFUEcgQ2F0ZWdvcnkiLAogICAgICAicGxhY2Vob2xkZXIiOiAiIiwKICAgICAgImRlc2NyaXB0aW9uIjogIiIKICAgIH0sCiAgICAibTN1R3JvdXBUaXRsZSI6CiAgICB7CiAgICAgICJ0aXRsZSI6ICJHcm91cCBUaXRsZSAoeHRldmUubTN1KSIsCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLAogICAgICAiZGVzY3JpcHRpb24iOiAiIgogICAgfSwKICAgICJ4bWx0dkZpbGUiOgogICAgewogICAgICAidGl0bGUiOiAiWE1MVFYgRmlsZSIsCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLAogICAgICAiZGVzY3JpcHRpb24iOiAiIgogICAgfSwKICAgICJ4bWx0dkNoYW5uZWwiOgogICAgewogICAgICAidGl0bGUiOiAiWE1MVFYgQ2hhbm5lbCIsCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLAogICAgICAiZGVzY3JpcHRpb24iOiAiIgogICAgfQogIH0sCiAgInVzZXJzIjoKICB7CiAgICAidGFibGUiOgogICAgewogICAgICAidXNlcm5hbWUiOiAiVXNlcm5hbWUiLAogICAgICAicGFzc3dvcmQiOiAiUGFzc3dvcmQiLAogICAgICAid2ViIjogIldFQiIsCiAgICAgICJwbXMiOiAiUE1TIiwKICAgICAgIm0zdSI6ICJNM1UiLAogICAgICAieG1sIjogIlhNTCIsCiAgICAgICJhcGkiOiAiQVBJIgogICAgfSwKICAgICJ1c2VybmFtZSI6CiAgICB7CiAgICAgICJ0aXRsZSI6ICJVc2VybmFtZSIsCiAgICAgICJwbGFjZWhvbGRlciI6ICJVc2VybmFtZSIsCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiCiAgICB9LAogICAgInBhc3N3b3JkIjoKICAgIHsKICAgICAgInRpdGxlIjogIlBhc3N3b3JkIiwKICAgICAgInBsYWNlaG9sZGVyIjogIlBhc3N3b3JkIiwKICAgICAgImRlc2NyaXB0aW9uIjogIiIKICAgIH0sCiAgICAiY29uZmlybSI6CiAgICB7CiAgICAgICJ0aXRsZSI6ICJDb25maXJtIiwKICAgICAgInBsYWNlaG9sZGVyIjogIlBhc3N3b3JkIGNvbmZpcm0iLAogICAgICAiZGVzY3JpcHRpb24iOiAiIgogICAgfSwKICAgICJ3ZWIiOgogICAgewogICAgICAidGl0bGUiOiAiV2ViIEFjY2VzcyIsCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLAogICAgICAiZGVzY3JpcHRpb24iOiAiIgogICAgfSwKICAgICJwbXMiOgogICAgewogICAgICAidGl0bGUiOiAiUE1TIEFjY2VzcyIsCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLAogICAgICAiZGVzY3JpcHRpb24iOiAiIgogICAgfSwKICAgICJtM3UiOgogICAgewogICAgICAidGl0bGUiOiAiTTNVIEFjY2VzcyIsCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLAogICAgICAiZGVzY3JpcHRpb24iOiAiIgogICAgfSwKICAgICJ4bWwiOgogICAgewogICAgICAidGl0bGUiOiAiWE1MIEFjY2VzcyIsCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLAogICAgICAiZGVzY3JpcHRpb24iOiAiIgogICAgfSwKICAgICJhcGkiOgogICAgewogICAgICAidGl0bGUiOiAiQVBJIEFjY2VzcyIsCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLAogICAgICAiZGVzY3JpcHRpb24iOiAiIgogICAgfQogIH0sCiAgInNldHRpbmdzIjoKICB7CiAgICAiY2F0ZWdvcnkiOgogICAgewogICAgICAiZ2VuZXJhbCI6ICJHZW5lcmFsIiwKICAgICAgImZpbGVzIjogIkZpbGVzIiwKICAgICAgInN0cmVhbWluZyI6ICJTdHJlYW1pbmciLAogICAgICAiYmFja3VwIjogIkJhY2t1cCIsCiAgICAgICJhdXRoZW50aWNhdGlvbiI6ICJBdXRoZW50aWNhdGlvbiIKICAgIH0sCiAgICAidXBkYXRlIjoKICAgIHsKICAgICAgInRpdGxlIjogIlNjaGVkdWxlIGZvciB1cGRhdGluZyAoUGxheWxpc3QsIFhNTFRWLCBCYWNrdXApIiwKICAgICAgInBsYWNlaG9sZGVyIjogIjAwMDAsMTAwMCwyMDAwIiwKICAgICAgImRlc2NyaXB0aW9uIjogIlRpbWUgaW4gMjQgaG91ciBmb3JtYXQgKDA4MDAgPSA4OjAwIGFtKS4gTW9yZSB0aW1lcyBjYW4gYmUgZW50ZXJlZCBjb21tYSBzZXBhcmF0ZWQuIExlYXZlIHRoaXMgZmllbGQgZW1wdHkgaWYgbm8gdXBkYXRlcyBhcmUgdG8gYmUgY2FycmllZCBvdXQuIgogICAgfSwKICAgICJhcGkiOgogICAgewogICAgICAidGl0bGUiOiAiQVBJIEludGVyZmFjZSIsCiAgICAgICJkZXNjcmlwdGlvbiI6ICJWaWEgQVBJIGludGVyZmFjZSBpdCBpcyBwb3NzaWJsZSB0byBzZW5kIGNvbW1hbmRzIHRvIHhUZVZlLiBBUEkgZG9jdW1lbnRhdGlvbiBpcyA8YSBocmVmPSdodHRwczovL2dpdGh1Yi5jb20veHRldmUtcHJvamVjdC94VGVWZS1Eb2N1bWVudGF0aW9uL2Jsb2IvbWFzdGVyL2VuL2NvbmZpZ3VyYXRpb24ubWQjYXBpJz5oZXJlPC9hPiIKICAgIH0sCiAgICAiZXBnU291cmNlIjoKICAgIHsKICAgICAgInRpdGxlIjogIkVQRyBTb3VyY2UiLAogICAgICAiZGVzY3JpcHRpb24iOiAiUE1TOjxicj4tIFVzZSBFUEcgZGF0YSBmcm9tIFBsZXggb3IgRW1ieSA8YnI+PGJyPlhFUEc6PGJyPi0gVXNlIG9mIG9uZSBvciBtb3JlIFhNTFRWIGZpbGVzPGJyPi0gQ2hhbm5lbCBtYW5hZ2VtZW50PGJyPi0gTTNVIC8gWE1MVFYgZXhwb3J0IChIVFRQIGxpbmsgZm9yIElQVFYgYXBwcykiCiAgICB9LAogICAgInR1bmVyIjoKICAgIHsKICAgICAgInRpdGxlIjogIk51bWJlciBvZiBUdW5lcnMiLAogICAgICAiZGVzY3JpcHRpb24iOiAiTnVtYmVyIG9mIHBhcmFsbGVsIGNvbm5lY3Rpb25zIHRoYXQgY2FuIGJlIGVzdGFibGlzaGVkIHRvIHRoZSBwcm92aWRlci48YnI+QXZhaWxhYmxlIGZvcjogUGxleCwgRW1ieSAoSERIUiksIE0zVSAod2l0aCBhY3RpdmUgYnVmZmVyKS48YnI+QWZ0ZXIgYSBjaGFuZ2UsIHhUZVZlIG11c3QgYmUgZGVsZXRlIGluIHRoZSBQbGV4IC8gRW1ieSBEVlIgc2V0dGluZ3MgYW5kIHNldCB1cCBhZ2Fpbi4iCiAgICB9LAogICAgImZpbGVzVXBkYXRlIjoKICAgIHsKICAgICAgInRpdGxlIjogIlVwZGF0ZXMgYWxsIGZpbGVzIGF0IHN0YXJ0dXAiLAogICAgICAiZGVzY3JpcHRpb24iOiAiVXBkYXRlcyBhbGwgcGxheWxpc3RzLCB0dW5lciBhbmQgWE1MVFYgZmlsZXMgYXQgc3RhcnR1cC4iCiAgICB9LAogICAgImNhY2hlSW1hZ2VzIjoKICAgIHsKICAgICAgInRpdGxlIjogIkltYWdlIENhY2hpbmciLAogICAgICAiZGVzY3JpcHRpb24iOiAiQWxsIGltYWdlcyBmcm9tIHRoZSBYTUxUViBmaWxlIGFyZSBjYWNoZWQsIGFsbG93aW5nIGZhc3RlciByZW5kZXJpbmcgb2YgdGhlIGdyaWQgaW4gdGhlIGNsaWVudC48YnI+RG93bmxvYWRpbmcgdGhlIGltYWdlcyBtYXkgdGFrZSBhIHdoaWxlIGFuZCB3aWxsIGJlIGRvbmUgaW4gdGhlIGJhY2tncm91bmQuIgogICAgfSwKICAgICJyZXBsYWNlRW1wdHlJbWFnZXMiOgogICAgewogICAgICAidGl0bGUiOiAiUmVwbGFjZSBtaXNzaW5nIHByb2dyYW0gaW1hZ2VzIiwKICAgICAgImRlc2NyaXB0aW9uIjogIklmIHRoZSBwb3N0ZXIgaW4gdGhlIFhNTFRWIHByb2dyYW0gaXMgbWlzc2luZywgdGhlIGNoYW5uZWwgbG9nbyB3aWxsIGJlIHVzZWQuIgogICAgfSwKICAgICJ4dGV2ZUF1dG9VcGRhdGUiOgogICAgewogICAgICAidGl0bGUiOiAiQXV0b21hdGljIHVwZGF0ZSBvZiB4VGVWZSIsCiAgICAgICJkZXNjcmlwdGlvbiI6ICJJZiBhIG5ldyB2ZXJzaW9uIG9mIHhUZVZlIGlzIGF2YWlsYWJsZSwgaXQgd2lsbCBiZSBhdXRvbWF0aWNhbGx5IGluc3RhbGxlZC4gVGhlIHVwZGF0ZXMgYXJlIGRvd25sb2FkZWQgZnJvbSBHaXRIdWIuIgogICAgfSwKICAgICJzdHJlYW1CdWZmZXJpbmciOgogICAgewogICAgICAidGl0bGUiOiAiU3RyZWFtIEJ1ZmZlciIsCiAgICAgICJkZXNjcmlwdGlvbiI6ICJGdW5jdGlvbnMgb2YgdGhlIGJ1ZmZlcjo8YnI+LSBUaGUgc3RyZWFtIGlzIHBhc3NlZCBmcm9tIHhUZVZlLCBGRm1wZWcgb3IgVkxDIHRvIFBsZXgsIEVtYnkgb3IgTTNVIFBsYXllcjxicj4tIFNtYWxsIGplcmtpbmcgb2YgdGhlIHN0cmVhbXMgY2FuIGJlIGNvbXBlbnNhdGVkPGJyPi0gSExTIC8gTTNVOCBzdXBwb3J0PGJyPi0gUlRQIC8gUlRQUyBzdXBwb3J0IChvbmx5IEZGbXBlZyBvciBWTEMpPGJyPi0gUmUtc3RyZWFtaW5nPGJyPi0gU2VwYXJhdGUgdHVuZXIgbGltaXQgZm9yIGVhY2ggcGxheWxpc3QiLAogICAgICAiaW5mb19mYWxzZSI6ICJObyBCdWZmZXIgKENsaWVudCBjb25uZWN0cyB0byB0aGUgc3RyZWFtaW5nIHNlcnZlcikiLAogICAgICAiaW5mb194dGV2ZSI6ICJ4VGVWZSBjb25uZWN0cyB0byB0aGUgc3RyZWFtaW5nIHNlcnZlciIsCiAgICAgICJpbmZvX2ZmbXBlZyI6ICJGRm1wZWcgY29ubmVjdHMgdG8gdGhlIHN0cmVhbWluZyBzZXJ2ZXIiLAogICAgICAiaW5mb192bGMiOiAiVkxDIGNvbm5lY3RzIHRvIHRoZSBzdHJlYW1pbmcgc2VydmVyIgoKICAgIH0sCiAgICAidWRweHkiOgogICAgewogICAgICAidGl0bGUiOiAiVURQeHkgYWRkcmVzcyIsCiAgICAgICJkZXNjcmlwdGlvbiI6ICJUaGUgYWRkcmVzcyBvZiB5b3VyIFVEUHh5IHNlcnZlci4gSWYgc2V0LCBhbmQgdGhlIGNoYW5uZWwgVVJMcyBpbiB0aGUgbTN1IGlzIG11bHRpY2FzdCwgeFRlVmUgd2lsbCByZXdyaXRlIGl0IHNvIHRoYXQgaXQgaXMgYWNjZXNzZWQgdmlhIHRoZSBVRFB4eSBzZXJ2aWNlLiIsCiAgICAgICJwbGFjZWhvbGRlciI6ICJob3N0OnBvcnQiCiAgICB9LAogICAgImZmbXBlZ1BhdGgiOgogICAgewogICAgICAidGl0bGUiOiAiRkZtcGVnIEJpbmFyeSBQYXRoIiwKICAgICAgImRlc2NyaXB0aW9uIjogIlBhdGggdG8gRkZtcGVnIGJpbmFyeS4iLAogICAgICAicGxhY2Vob2xkZXIiOiAiL3BhdGgvdG8vZmZtcGVnIgogICAgfSwKICAgICJmZm1wZWdPcHRpb25zIjoKICAgIHsKICAgICAgInRpdGxlIjogIkZGbXBlZyBPcHRpb25zIiwKICAgICAgImRlc2NyaXB0aW9uIjogIkZGbXBlZyBvcHRpb25zLjxicj5Pbmx5IGNoYW5nZSBpZiB5b3Uga25vdyB3aGF0IHlvdSBhcmUgZG9pbmcuPGJyPkxlYXZlIGJsYW5rIHRvIHNldCBkZWZhdWx0IHNldHRpbmdzLiIsCiAgICAgICJwbGFjZWhvbGRlciI6ICJMZWF2ZSBibGFuayB0byBzZXQgZGVmYXVsdCBzZXR0aW5ncyIKICAgIH0sCiAgICAidmxjUGF0aCI6CiAgICB7CiAgICAgICJ0aXRsZSI6ICJWTEMgLyBDVkxDIEJpbmFyeSBQYXRoIiwKICAgICAgImRlc2NyaXB0aW9uIjogIlBhdGggdG8gVkxDIC8gQ1ZMQyBiaW5hcnkuIiwKICAgICAgInBsYWNlaG9sZGVyIjogIi9wYXRoL3RvL2N2bGMiCiAgICB9LAogICAgInZsY09wdGlvbnMiOgogICAgewogICAgICAidGl0bGUiOiAiVkxDIC8gQ1ZMQyBPcHRpb25zIiwKICAgICAgImRlc2NyaXB0aW9uIjogIlZMQyAvIENWTEMgb3B0aW9ucy48YnI+T25seSBjaGFuZ2UgaWYgeW91IGtub3cgd2hhdCB5b3UgYXJlIGRvaW5nLjxicj5MZWF2ZSBibGFuayB0byBzZXQgZGVmYXVsdCBzZXR0aW5ncy4iLAogICAgICAicGxhY2Vob2xkZXIiOiAiTGVhdmUgYmxhbmsgdG8gc2V0IGRlZmF1bHQgc2V0dGluZ3MiCiAgICB9LAogICAgImJ1ZmZlclNpemUiOgogICAgewogICAgICAidGl0bGUiOiAiQnVmZmVyIFNpemUiLAogICAgICAiZGVzY3JpcHRpb24iOiAiQnVmZmVyIHNpemUgaW4gTUIuPGJyPk0zVTg6IElmIHRoZSBUUyBzZWdtZW50IHNtYWxsZXIgdGhlbiB0aGUgYnVmZmVyIHNpemUsIHRoZSBmaWxlIHNpemUgb2YgdGhlIHNlZ21lbnQgaXMgdXNlZC4iCiAgICB9LAogICAgImJ1ZmZlclRpbWVvdXQiOgogICAgewogICAgICAidGl0bGUiOiAiVGltZW91dCBmb3IgbmV3IGNsaWVudCBjb25uZWN0aW9ucyIsCiAgICAgICJkZXNjcmlwdGlvbiI6ICJUaGUgeFRlVmUgYnVmZmVyIHdhaXRzIHVudGlsIG5ldyBjbGllbnQgY29ubmVjdGlvbnMgYXJlIGVzdGFibGlzaGVkLiBIZWxwZnVsIGZvciBmYXN0IGNoYW5uZWwgc3dpdGNoaW5nLiBWYWx1ZSBpbiBtaWxsaXNlY29uZHMuIiwKICAgICAgInBsYWNlaG9sZGVyIjogIjEwMCIKICAgIH0sCiAgICAidXNlckFnZW50IjoKICAgIHsKICAgICAgInRpdGxlIjogIlVzZXIgQWdlbnQiLAogICAgICAiZGVzY3JpcHRpb24iOiAiVXNlciBBZ2VudCBmb3IgSFRUUCByZXF1ZXN0cy4gRm9yIGV2ZXJ5IEhUVFAgY29ubmVjdGlvbiwgdGhpcyB2YWx1ZSBpcyB1c2VkIGZvciB0aGUgdXNlciBhZ2VudC4gU2hvdWxkIG9ubHkgYmUgY2hhbmdlZCBpZiB4VGVWZSBpcyBibG9ja2VkLiIsCiAgICAgICJwbGFjZWhvbGRlciI6ICJ4VGVWZSIKICAgIH0sCiAgICAiYmFja3VwUGF0aCI6CiAgICB7CiAgICAgICJ0aXRsZSI6ICJMb2NhdGlvbiBmb3IgYXV0b21hdGljIGJhY2t1cHMiLAogICAgICAicGxhY2Vob2xkZXIiOiAiL21udC9kYXRhL2JhY2t1cC94dGV2ZS8iLAogICAgICAiZGVzY3JpcHRpb24iOiAiQmVmb3JlIGFueSB1cGRhdGUgb2YgdGhlIHByb3ZpZGVyIGRhdGEgYnkgdGhlIHNjaGVkdWxlLCB4VGVWZSBjcmVhdGVzIGEgYmFja3VwLiBUaGUgcGF0aCBmb3IgdGhlIGF1dG9tYXRpYyBiYWNrdXBzIGNhbiBiZSBjaGFuZ2VkLiB4VGVWZSByZXF1aXJlcyB3cml0ZSBwZXJtaXNzaW9uIGZvciB0aGlzIGZvbGRlci4iCiAgICB9LAogICAgInRlbXBQYXRoIjoKICAgIHsKICAgICAgInRpdGxlIjogIkxvY2F0aW9uIGZvciB0aGUgdGVtcG9yYXJ5IGZpbGVzIiwKICAgICAgInBsYWNlaG9sZGVyIjogIi90bXAveHRldmUvIiwKICAgICAgImRlc2NyaXB0aW9uIjogIkxvY2F0aW9uIGZvciB0aGUgYnVmZmVyIGZpbGVzLiIKICAgIH0sCiAgICAiYmFja3VwS2VlcCI6CiAgICB7CiAgICAgICJ0aXRsZSI6ICJOdW1iZXIgb2YgYmFja3VwcyB0byBrZWVwIiwKICAgICAgImRlc2NyaXB0aW9uIjogIk51bWJlciBvZiBiYWNrdXBzIHRvIGtlZXAuIE9sZGVyIGJhY2t1cHMgYXJlIGF1dG9tYXRpY2FsbHkgZGVsZXRlZC4iCiAgICB9LAogICAgImF1dGhlbnRpY2F0aW9uV0VCIjoKICAgIHsKICAgICAgInRpdGxlIjogIldFQiBBdXRoZW50aWNhdGlvbiIsCiAgICAgICJkZXNjcmlwdGlvbiI6ICJBY2Nlc3MgdG8gdGhlIHdlYiBpbnRlcmZhY2Ugb25seSBwb3NzaWJsZSB3aXRoIGNyZWRlbnRpYWxzLiIKICAgIH0sCiAgICAiYXV0aGVudGljYXRpb25QTVMiOgogICAgewogICAgICAidGl0bGUiOiAiUE1TIEF1dGhlbnRpY2F0aW9uIiwKICAgICAgImRlc2NyaXB0aW9uIjogIlBsZXggcmVxdWVzdHMgYXJlIG9ubHkgcG9zc2libGUgd2l0aCBhdXRoZW50aWNhdGlvbi4gPGJyPjxiPldhcm5pbmchISE8L2I+IEFmdGVyIGFjdGl2YXRpbmcgdGhpcyBmdW5jdGlvbiB4VGVWZSBtdXN0IGJlIGRlbGV0ZSBpbiB0aGUgUE1TIERWUiBzZXR0aW5ncyBhbmQgc2V0IHVwIGFnYWluLiIKICAgIH0sCiAgICAiYXV0aGVudGljYXRpb25NM1UiOgogICAgewogICAgICAidGl0bGUiOiAiTTNVIEF1dGhlbnRpY2F0aW9uIiwKICAgICAgImRlc2NyaXB0aW9uIjogIkRvd25sb2FkaW5nIHRoZSB4dGV2ZS5tM3UgZmlsZSB2aWEgYW4gSFRUUCByZXF1ZXN0IGlzIG9ubHkgcG9zc2libGUgd2l0aCBhdXRoZW50aWNhdGlvbi4iCiAgICB9LAogICAgImF1dGhlbnRpY2F0aW9uWE1MIjoKICAgIHsKICAgICAgInRpdGxlIjogIlhNTCBBdXRoZW50aWNhdGlvbiIsCiAgICAgICJkZXNjcmlwdGlvbiI6ICJEb3dubG9hZGluZyB0aGUgeHRldmUueG1sIGZpbGUgdmlhIGFuIEhUVFAgcmVxdWVzdCBpcyBvbmx5IHBvc3NpYmxlIHdpdGggYXV0aGVudGljYXRpb24iCiAgICB9LAogICAgImF1dGhlbnRpY2F0aW9uQVBJIjoKICAgIHsKICAgICAgInRpdGxlIjogIkFQSSBBdXRoZW50aWNhdGlvbiIsCiAgICAgICJkZXNjcmlwdGlvbiI6ICJBY2Nlc3MgdG8gdGhlIEFQSSBpbnRlcmZhY2UgaXMgb25seSBwb3NzaWJsZSB3aXRoIGF1dGhlbnRpY2F0aW9uLiIKICAgIH0KICB9LAogICJ3aXphcmQiOgogIHsKICAgICJlcGdTb3VyY2UiOgogICAgewogICAgICAidGl0bGUiOiAiRVBHIFNvdXJjZSIsCiAgICAgICJkZXNjcmlwdGlvbiI6ICJQTVM6PGJyPi0gVXNlIEVQRyBkYXRhIGZyb20gUGxleCBvciBFbWJ5IDxicj48YnI+WEVQRzo8YnI+LSBVc2Ugb2Ygb25lIG9yIG1vcmUgWE1MVFYgZmlsZXM8YnI+LSBDaGFubmVsIG1hbmFnZW1lbnQ8YnI+LSBNM1UgLyBYTUxUViBleHBvcnQgKEhUVFAgbGluayBmb3IgSVBUViBhcHBzKSIKICAgIH0sCiAgICAidHVuZXIiOgogICAgewogICAgICAidGl0bGUiOiAiTnVtYmVyIG9mIHR1bmVycyIsCiAgICAgICJkZXNjcmlwdGlvbiI6ICJOdW1iZXIgb2YgcGFyYWxsZWwgY29ubmVjdGlvbnMgdGhhdCBjYW4gYmUgZXN0YWJsaXNoZWQgdG8gdGhlIHByb3ZpZGVyLjxicj5BdmFpbGFibGUgZm9yOiBQbGV4LCBFbWJ5IChIREhSKSwgTTNVICh3aXRoIGFjdGl2ZSBidWZmZXIpLjxicj5BZnRlciBhIGNoYW5nZSwgeFRlVmUgbXVzdCBiZSBkZWxldGUgaW4gdGhlIFBsZXggLyBFbWJ5IERWUiBzZXR0aW5ncyBhbmQgc2V0IHVwIGFnYWluLiIKICAgIH0sCiAgICAibTN1IjoKICAgIHsKICAgICAgInRpdGxlIjogIk0zVSBQbGF5bGlzdCIsCiAgICAgICJwbGFjZWhvbGRlciI6ICJGaWxlIHBhdGggb3IgVVJMIG9mIHRoZSBNM1UiLAogICAgICAiZGVzY3JpcHRpb24iOiAiTG9jYWwgb3IgcmVtb3RlIHBsYXlsaXN0cyIKICAgIH0sCiAgICAieG1sdHYiOgogICAgewogICAgICAidGl0bGUiOiAiWE1MVFYgRmlsZSIsCiAgICAgICJwbGFjZWhvbGRlciI6ICJGaWxlIHBhdGggb3IgVVJMIG9mIHRoZSBYTUxUViIsCiAgICAgICJkZXNjcmlwdGlvbiI6ICJMb2NhbCBvciByZW1vdGUgWE1MVFYgZmlsZSIKICAgIH0KICB9LAogICJsb2dpbiI6CiAgewogICAgImZhaWxlZCI6ICJVc2VyIGF1dGhlbnRpY2F0aW9uIGZhaWxlZCIsCiAgICAiaGVhZGxpbmUiOiAiTG9naW4iLAogICAgInVzZXJuYW1lIjoKICAgIHsKICAgICAgInRpdGxlIjogIlVzZXJuYW1lIiwKICAgICAgInBsYWNlaG9sZGVyIjogIlVzZXJuYW1lIgogICAgfSwKICAgICJwYXNzd29yZCI6CiAgICB7CiAgICAgICJ0aXRsZSI6ICJQYXNzd29yZCIsCiAgICAgICJwbGFjZWhvbGRlciI6ICJQYXNzd29yZCIKICAgIH0KICB9LAogICJhY2NvdW50IjoKICB7CiAgICAiZmFpbGVkIjogIlBhc3N3b3JkIGRvZXMgbm90IG1hdGNoIiwKICAgICJoZWFkbGluZSI6ICJDcmVhdGUgdXNlciBhY2NvdW50IiwKICAgICJ1c2VybmFtZSI6CiAgICB7CiAgICAgICJ0aXRsZSI6ICJVc2VybmFtZSIsCiAgICAgICJwbGFjZWhvbGRlciI6ICJVc2VybmFtZSIKICAgIH0sCiAgICAicGFzc3dvcmQiOgogICAgewogICAgICAidGl0bGUiOiAiUGFzc3dvcmQiLAogICAgICAicGxhY2Vob2xkZXIiOiAiUGFzc3dvcmQiCiAgICB9LAogICAgImNvbmZpcm0iOgogICAgewogICAgICAidGl0bGUiOiAiQ29uZmlybSIsCiAgICAgICJwbGFjZWhvbGRlciI6ICJDb25maXJtIgogICAgfQogIH0KfQ==" - webUI["html/video/stream-limit.ts"] = "R0AREABC8CUAAcEAAP8B/wAB/IAUSBIBBkZGbXBlZwlTZXJ2aWNlMDF3fEPK//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////9HQAAQAACwDQABwQAAAAHwACqxBLL//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////0dQABAAArASAAHBAADhAPAAG+EA8AAVvU1W////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////R0EAMAdQAAB7DH4AAAAB4AAAgMAKMQAJEKERAAfYYQAAAAEJ8AAAAAFnZAAorNlAeAIn5cBEAAADAAQAAAMAyDxgxlgAAAABaOvjyyLAAAABBgX//6rcRem95tlIt5Ys2CDZI+7veDI2NCAtIGNvcmUgMTUyIHIyODU0IGU5YTU5MDMgLSBILjI2NC9NUEVHLTQgQVZDIGNvZGVjIC0gQ29weWxlZnQgMjAwMy0yMDE3IC0gaHR0cDovL3dHAQARd3cudmlkZW9sYW4ub3JnL3gyNjQuaHRtbCAtIG9wdGlvbnM6IGNhYmFjPTEgcmVmPTMgZGVibG9jaz0xOjA6MCBhbmFseXNlPTB4MzoweDExMyBtZT1oZXggc3VibWU9NyBwc3k9MSBwc3lfcmQ9MS4wMDowLjAwIG1peGVkX3JlZj0xIG1lX3JhbmdlPTE2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ACqxBLL//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////0dQABEAArASAAHBAADhAPAAG+EA8AAVvU1W////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////RwEAGO10tGlFAwyE91Tzg8923ovJk1dv2xh1gVlYQFtWdZ6NSQ8vgHM7/tMfIZPsqgCU856rdBJJRMDaor/oWA7pkvSmC2aqaC5fd/mkWUPTuG8fRhGqOY1rKxLNSI3HtTQAcuVBxRM0NfMw0ky/JMJYZiCgXcNsxpxl+khr/9fKtO5Fg2VNBti92xcZimHUZDJMQTBOY6vSR9L1N2O/kJQCpdfuc9bkcUTMjH/es/lAySxvbiislkohqkpHAQAZVatwHI0t9eHCUfDyWUEtuCNyDwQFOVMtaYEQJrTrhQX0VduT86F0u0wN9ag0uPsrmX6Rid/x5S7KI1SkS+qP6cdmgSP57uiF4dG6IKsWNfGBLY09H/CFlrg73WINQkkp2diKkdEmtZetn8+ZAKzR5eXN5FebiKt6pIkNLuSofjosypEs2o6boKsfpmbtOV0idOeWDM9C8EIcn3aZwk1s2KBDvt1DlY+i2Cuvhk3XoKLT+pq/bOC5QkcBABolcOXneZXLoQw9W1PH1f/of92Ytjj8okrWijcQAKlE5l8XoTb9qrOiZnDOhqwcMlB9H9rorq041I89hChohYoSkJElcM8V+r8WYN5axD1BNyfwaHAOm4UN2/VEYOkNSfMjmx2S0WW/F2ha8Jj4fc4QgqcXr+TnnbwqLkLTValK4Qa1pcv7PIbDq6zCUfxe04guZ8xEhPQjp17/G6IB/6uq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wnibxQ/cXEblVnM47wbCN3iy4eHjYB5MoIICrSYmd8nt4V0toLs084KJlmnur5FbApYM4W79ff4oZkW88Cg8Fv8TnWhh1Hqc4UlhMbRKm2QxDgfBxar3U7BwNR6prrXXjqfR7ja3tPli+H7Jez/xcTg32QpHAQAdTa7pSSgBvmOqzz175NAFIhwE9p3d71F9jLvhaPv8q1iKopL0kizwzEWElnXWmNhfLkl/Au8KujnoKUaxVdTe+zAZm2dOkejnpNVtVj0Aw9wKcG3ZQ1iRZrUFRIoPKYlmR+oi0LrupuhYABtgPbdCbDtezGTr0nw9wVd/rZ6V+1wcoJ6+8VAVueIdwI3brqm6EoFHiI8L6lER+9SefB8fHo4NYgr/I8jSxaa/2PLX2K/DjrlY6bN8fEcBAB7DXsuh8DITF6CYWj2HTFvqfzlic3QHXnHtvsTFNpyVY1LY8y/fRK2mwALN6IB5W3OuyoKiA3K0lJdQUv2gYhHWvPTV218HYrD0rkbMxRH0SiEEkrHDeOt5T1HtWD13D2/QvMu535fsfZyeaFDjdCE9M0Xi8Lfc7Xj1ZNGend7Jo7/cEiczFkc1vB4z2JpFGZreV2EdquyEzC2STFJtfimyx8QlLngEuR1cxH+lWEcFX+mvBa/eqktIRwEAH6VazFLPNsnHZqsI66TVoArQuUUGFAzr8MT8GZ9V6qpZa5D0jA/4eGi6Kq0smUgRExnqIbSMLWqDf/Pk2YT3MpHTu9VE3Dn9blgB6KsVIkWnB98Y2n/6DrZDcF94Ndu0Ka4U/RZwdV5O5KcO+lU2ZiIOYTYZ6Ie0d+tApxYxJ+YmxaDoCyRNe6crw/yzR5SflT8ddi/E2BM+l+nwVDiKZ/714fmrBxFKWuqLiQNHV19o1cZ8Ubun+ZtHQAASAACwDQABwQAAAAHwACqxBLL//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////0dQABIAArASAAHBAADhAPAAG+EA8AAVvU1W////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////RwEAEH1s3BdtHdF1ln55B24wdACF/ggcRtPmB4IUB6cZJ+m32I4R48ZkdhAFBulgWcsv0wZwH0o1yi3i4qm3rJ98AUKdB9PsNyG9gURV0bTw4myAj6g5Dgodfv6w9bsbOxsGUWkvgAJ3rrR010BvZbIa6CMRCQRjxkCfRF77ansRJZT0JzhtYeSS/ZJob8Rr2jrng3W2rkmHtE+rdqlPiHxmwkRZvYGhBxwiJO2L6f+l/cABsfs09rA+A0pHAQAREZay3TBUIAfMWhApE+LaPgeyOYtaPFONA9aC0h4QrFkaLZfb86678MK+zLgqDBsDoj50eZHMVcczRjs4sYlv7RG8RIWKb5lB9Kn/8+CkxiiA11cHH1yzLX2SKCmhsak/+P/zYQ1EDvEj33bl9e3Jd62cTI+Qw99KrsWnUMN8hFNeXzoGHA3aec+Li4NFboF8sa6lCPR6Csxsvxw8DJaWCnER5Z0p+nKhXavF/eNHQ0DX47ohycc87UcBABKsYHCHXXe3vK1cFYDWO6rhwM6hxCdJ+/X+VB1akQejL6iBMdUPuadUqBnbprwJM0dWpSSn9uuZZeqe46iZOGIJUo69d8x+ZSvPcBH/dK1Y0LJnoWdgWH51SQg7eYqcwjQW3BOy7ZF02Hn1EhTuhsN7ms8zv3WIeEBDBq0T3Idl+Tmw9iJU9skVYiwygHG2+0XwrLa6y+uiQPwMzrnEr1kuf24XoAqrJTZQiVH3aQF4d94yDreWu2KPRwEAE2FsynHZaUcBXEFbeX0nSxZ7sRcRjJvc7RYOny6N8QFwKDVO7jpRWWYM55kuepBOyZ+7BFYeG+FU1kR+ZfmqyDNkD4D1IPwNh6u9JQxDymfN/aMcQC3WxdvCKquPsAut6dugpGkOFtIe+W3ayc4V/J978P+h1EDFMbFjxRPuXht0K2dBQZCJ0ybISUDqWzhPuep8CdxSU4MvMVfdXh7FLl/BqKJUTT+vM+Pz3XnqCQQmH5TjQ4CK55VHAQAUEtgfkBwIYgtwHkhjmtLw7HNTeJeMfTjATEKcyuKzItSeYxHBmGzQ/+G2otpPCOkVAXJ9mfx7LxrW4joZ0ttTRQJ/wqMUK1IN349LiJoo8y/+FwN4jPNDwIleJG697riqnmLOweFW8spHKLBfnHcyC1pG6EIxFpTqUQ0KHqXD/KXIHKioJNAOVwQ1Gfloxebo/Tdtd00dpHP3gcsAOnV75APCYOjVIlwm2X6ViDeZw6Btdb/Br/+yokcBABU3+eOESLlneGbR5SLiL8wPkoRaZ5X7xFlMTMvsv9yHk26bVdmsubSdbYS1Hy64n0+NnL7C1aLD7aJxOudMjVW5goZbfO2KxBQkCD4HFA284wbaB5vOL7mRilCn6YEs1kiwf22+fBLNUmXDb2p353wrD/ygTDhlki66USvUmd/ZAs9uzAddegEzy7Xn00YysWTu/hegYyZtWFC+X5dhLubWJ7n96y5wjrP7PAOXoQQtFUH9j/rBiP/7RwEAFnL/wYKYuj80mPGtimSbF/E9K7XwjwBz8yHZubmVMTCmwkZBM4h0FR1thnUGiSjqjJT6SfunWCZ/dZDQplrzS00UKcUP399SyM+nNG1br8Za0ZYwWch8nyLHYXSRuxdnrfUUespsOQo1cWSLGf0pV2HIcHoiAAEKwPU6irB5BSoFvB1qKVjgEk+QwAEYAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAABHAQA3pAD/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////AwAAAwAAAwAAAwAAAwAAAwBbwUdBABgAAAHgAACAwAoxAAmBIREAB/SBAAAAAQnwAAAAAUGaJGxDv/6plgAAAwAAAwAAAwAAAwAAAwAAAwAAAwAKCKB0AIhy1ftwLNISWucTFC7xeBcaIzP3oZjZo8uT9hqZVstWGnrPz+vjaA5FuCO+K2w7/o39LygDO7aL+0zSrN90LW7r133x8+f+PEKk8d7pd2fj4RYuMOXOYunzFzRX/4IvR1XsK5WJYwVkOca3yfo7DTvUBP9rgSiTRwEAGQD6CFK1PBC4qYCa+coLVnX+jgODNrau5YJXIekDI4+wUNV+5T5HE4e2t5EGAjn77+kC1Vghmvx8KqPnylVUvsaTofheggxHsPuxn1zQt6nA59UglrRUMn8b4pmrvfqTBSqU949+AcNAI6M/eAqz6r0RG5KNeBhx8R2f0x2kujwHU3pc3rlPb6ZrFM/2HiG97eEIezrvWFG7YAAAAwAAAwAE1KRo1VfbdZQ/tOpNGxFmTcQoFidyD2tHAQAapTTIErUKA2Rc9uIzGJu+oW0uNOxRyl6oJNUNJp5L9TIshNS1CmUKgdCaE3LkLwdE8iUkUnIGfWLiWpWmjzsINYC8dnDaSptB53yJkBu0SsR00oo1PZ0pl4ZzoXGSYQJTPaVCbj6FNqm5wcnUqKTB/rgHdPdnDj0K8asLABeo/n3XCXrDorI+LYSD1FBgmV9O7RZdjfL0NnXOQkiq/ZGirwVV0cUF1aHtZx1yHlAAZKuuu7TqB13CAUcBADuRAP///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////yj/IrOvAEoXDNGy+nrxWN0l8cmuqWYaUJpuM9XgAAADAAADAAKmR0EAPAcQAACJHH4AAAAB4AAAgMAKMQAJSOERAAkQoQAAAAEJ8AAAAAFBnkJ4hf8AAAMAAAMAAAMAAAMAAAMAAAMAAAMAC/BmhyuvLmkCgKTgACEXfOVvHRHdpBEEmTTz9pIZCa2FD0CXukzDCakOHekTpJQSdsfd7a/jjM1/5lBtKCAGQ6zOCSQ6DeKtyw+CugDuuglGipwmvQW+FIDjnZ6HRd0uaSOGy6VB3h9MI1o4nqaCqVwwIgubYZFHAQA9XgD////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////WcZrO6BEiqf8pCxYwlz2mkdUzY/ipM/TIHS4m5xQAAAMAAAMAAA5sVm90p14dlvWgBgY7XQ9KVOJKLtaMAN5KiffVQtNuzW5DfL+RewZpAAADAAADAAAQMUdBAB4AAAHgAACAgAUhAAkswQAAAAEJ8AAAAAEBnmF0Qr8AAAMAAAMAAAMAAAMAAAMAAAMAAAMAABJfBjP2+4+W7ZybyT130+Ma4WSqICfd/dS4YtjrLlmh5VBlfrtwJqdN1PBTYDkwGOOONqZQeFN6lLGJoDzvuh3kv1aDBLqug+JhvrSeu5ebnvcrtQzb2REwJL3h9mvtkr0WfDu4AAADAAADAAs32Y4C/6Ns79oCGj6oqLltY3T4I0/QRwEAP5wA//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////8BeoWLRnKQmVgO/RBoBfcK85AAAAMAAAMACFhHQQAwBxAAAJcsfgAAAAHgAACAwAoxAAllAREACUjhAAAAAQnwAAAAAQGeY2pCvwAAAwAAAwAAAwAAAwAAAwAAAwAAAwAAEmDKfLGXsvBBQPNYXlEd6WueJ4deApfcHESlG+7V6u0AiWQqJvNZYM+3Js3Lj9Ldc9yYIHqruVwfMtCYGlX3wMavI/DrhMuJw+RreIF8SKsJD8CMccAAAAMAAAMACrFZOBgEqaP/8EyWsAHV6CgcAgfyox/roEcBADGuAP//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////AAADAAADAHTBR0EAEgAAAeAAAIDACjEACfGhEQAJZQEAAAABCfAAAAABQZpoSahBaJlMCHf//qmWAAADAAADAAADAAADAAADAAADAAADAAALf8A2bry6lUyIAQGNFfVK2Cd7h4qDqmqpvmXfkfTwo2Ab79AHhajxJ4MPWIgAAA84xLRIx7I2CrWjWe96OvgkzgS9mtvhuxdzAgpuIOJI3DEY9mviDDZz8XSAAAADAAADAB7AZkj9AAHHGvk+Pzlku8UkWa5HAQAzogD//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////6HjAkbF/gsWuvw4QAAAAwAAAwAccUdBADQHEAAApTx+AAAAAeAAAIDACjEACblhEQAJgSEAAAABCfAAAAABQZ6GRREsL/8AAAMAAAMAAAMAAAMAAAMAAAMAAAMAAA3URJB/3lMHSmOd0GYZnfpoR80WdqxlyHzPX+V81VUMeXIGrRgq5agd+ACdjoGI036yQ/rmpGw0CmMBrKwpI+nwFo3SP0s1rI2yHBZaiPJjSUgw33rBkxXcq55kfLf2sAAAAwAAAwACBWolidWDnIeQAAADRwEANbEA//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////8AAAMADulHQQA2NAD///////////////////////////////////////////////////////////////////8AAAHgAACAgAUhAAmdQQAAAAEJ8AAAAAEBnqV0Qr8AAAMAAAMAAAMAAAMAAAMAAAMAAAMAABJXNihCnx11JUosH2hBE53O/YN+GPHqcnJiQBIf3maTAAj5iRt+7GYUKBAU9iCXTiouCjGYgAAAAwAAAwA9p4HQBg2cAAADAAADAADGgUdBADc4EAAAs0x+AP////////////////////////////////////////////////////////////////8AAAHgAACAwAoxAAnVgREACblhAAAAAQnwAAAAAQGep2pCvwAAAwAAAwAAAwAAAwAAAwAAAwAAAwAAAwBR6/L83y+ZevtMZ0FW4lp8qV7fVXQAhLAWlS6mDxvpaSUgChorvgTMXtxJEIAAAAMAAAMACqFCAAADAAADAAADAAz4R0EAOCsA////////////////////////////////////////////////////////AAAB4AAAgMAKMQALYiERAAnVgQAAAAEJ8AAAAAFBmqxJqEFsmUwId//+qZYAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAApQTq0hABLvkcWCYrAaRRPNDrECJGlF/11BYvG9+JJ9Y86nxnmQzPxtAAe1UgOsXAAADAAADAAADAAADAAADAAADAAADA/JHQQA5JhAAAMFcfgD/////////////////////////////////////////AAAB4AAAgMAKMQALKeERAAnxoQAAAAEJ8AAAAAFBnspFFSwv/wAAAwAAAwAAAwAAAwAAAwAAAwAAAwAADdRFmvrVE0KXDOGwWddlwYa1foib7tXZKmkua6R4APb4b8+tXwdSNNqgf2IVNwGTohgQAcMvp6SiQxpiQym4AAADAAADAANUNUAAAAMAAAMAAAMBN0dBADo8AP//////////////////////////////////////////////////////////////////////////////AAAB4AAAgIAFIQALDcEAAAABCfAAAAABAZ7pdEK/AAADAAADAAADAAADAAADAAADAAADAAADAFHTAfujIUaaLSuklb9y0/so9AEtQAqkAxOviALQZ5jNt/iOkABrCOZ4md0iUnFwAAADAAADAALwckAAAAMAAAMAAATcR0EAO0IQAADPbH4A//////////////////////////////////////////////////////////////////////////////8AAAHgAACAwAoxAAtGAREACynhAAAAAQnwAAAAAQGe62pCvwAAAwAAAwAAAwAAAwAAAwAAAwAAAwAAAwBR6/L83y+WryR9gmVKPGbIhJpkgAFgHCej3gB6rAHPgHHAAAADAAADAAAYIV0AAAMAAAMAAAMABnxHQQA8UQD//////////////////////////////////////////////////////////////////////////////////////////////////////////wAAAeAAAIDACjEAC9KhEQALRgEAAAABCfAAAAABQZrwSahBbJlMCG///qeEAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAAZ8UdBAD00EAAA3Xx+AP///////////////////////////////////////////////////////////wAAAeAAAIDACjEAC5phEQALYiEAAAABCfAAAAABQZ8ORRUsL/8AAAMAAAMAAAMAAAMAAAMAAAMAAAMAAA3URZr61RNClwzhI2ZXdRHYLZWc1yTgKRhTIXBNABHQKIIyYNyc+AaEn1jhATEAAAMAAAMAAAMAckkIAAADAAADAAADAEbBR0EAPkYA////////////////////////////////////////////////////////////////////////////////////////////AAAB4AAAgIAFIQALfkEAAAABCfAAAAABAZ8tdEK/AAADAAADAAADAAADAAADAAADAAADAAADAFHTAfujIUAYRtY0f/43cIs2OjxACR2hMR1QBGYX+34JGAAAAwAAAwAAAwKEJ6AAAAMAAAMAAAMA3oFHQQA/QhAAAOuMfgD//////////////////////////////////////////////////////////////////////////////wAAAeAAAIDACjEAC7aBEQALmmEAAAABCfAAAAABAZ8vakK/AAADAAADAAADAAADAAADAAADAAADAAADAFHr8vzfL5avJH2CZUo8ZsiEmmSAAWAcJ6PeAHqsAc+AccAAAAMAAAMAABghXQAAAwAAAwAAAwAGfEdBADBRAP//////////////////////////////////////////////////////////////////////////////////////////////////////////AAAB4AAAgMAKMQANQyERAAu2gQAAAAEJ8AAAAAFBmzRJqEFsmUwIZ//+nhAAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAGVAR0EAMTQQAAD5nH4A////////////////////////////////////////////////////////////AAAB4AAAgMAKMQANCuERAAvSoQAAAAEJ8AAAAAFBn1JFFSwv/wAAAwAAAwAAAwAAAwAAAwAAAwAAAwAADdRFmvrVE0KXDOEjZld1EdgtlZzXJOApGFMhcE0AEdAogjJg3Jz4BoSfWOEBMQAAAwAAAwAAAwBySQgAAAMAAAMAAAMARsFHQQAyRgD///////////////////////////////////////////////////////////////////////////////////////////8AAAHgAACAgAUhAAvuwQAAAAEJ8AAAAAEBn3F0Qr8AAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAUdMB+6MhQBhG1jR//jdwizY6PEAJHaExHVAEZhf7fgkYAAADAAADAAADAoQnoAAAAwAAAwAAAwDegEdBADNCEAABB6x+AP//////////////////////////////////////////////////////////////////////////////AAAB4AAAgMAKMQANJwERAA0K4QAAAAEJ8AAAAAEBn3NqQr8AAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAUevy/N8vlq8kfYJlSjxmyISaZIABYBwno94AeqwBz4BxwAAAAwAAAwAAGCFdAAADAAADAAADAAZ8R0EANFIA////////////////////////////////////////////////////////////////////////////////////////////////////////////AAAB4AAAgMAKMQANs6ERAA0nAQAAAAEJ8AAAAAFBm3hJqEFsmUwIV//+OEAAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAYtHQQA1NBAAARW8fgD///////////////////////////////////////////////////////////8AAAHgAACAwAoxAA17YREADUMhAAAAAQnwAAAAAUGflkUVLC//AAADAAADAAADAAADAAADAAADAAADAAAN1EWa+tUTQpcM4SNmV3UR2C2VnNck4CkYUyFwTQAR0CiCMmDcnPgGhJ9Y4QExAAADAAADAAADAHJJCAAAAwAAAwAAAwBGwEdBADZGAP///////////////////////////////////////////////////////////////////////////////////////////wAAAeAAAICABSEADV9BAAAAAQnwAAAAAQGftXRCvwAAAwAAAwAAAwAAAwAAAwAAAwAAAwAAAwBR0wH7oyFAGEbWNH/+N3CLNjo8QAkdoTEdUARmF/t+CRgAAAMAAAMAAAMChCegAAADAAADAAADAN6BR0EAN0IQAAEjzH4A//////////////////////////////////////////////////////////////////////////////8AAAHgAACAwAoxAA2XgREADXthAAAAAQnwAAAAAQGft2pCvwAAAwAAAwAAAwAAAwAAAwAAAwAAAwAAAwBR6/L83y+WryR9gmVKPGbIhJpkgAFgHCej3gB6rAHPgHHAAAADAAADAAAYIV0AAAMAAAMAAAMABn0=" - webUI["html/configuration.html"] = "PCFkb2N0eXBlIGh0bWw+CjxodG1sPgogIDxoZWFkPgogICAgPG1ldGEgY2hhcnNldD0idXRmLTgiPgogICAgPG1ldGEgbmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9IndpZHRoPWRldmljZS13aWR0aCwgaW5pdGlhbC1zY2FsZT0xLjAiIC8+IAogICAgPHRpdGxlPnhUZVZlPC90aXRsZT4KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iY3NzL3NjcmVlbi5jc3MiIHR5cGU9InRleHQvY3NzIj4KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iY3NzL2Jhc2UuY3NzIiB0eXBlPSJ0ZXh0L2NzcyI+CiAgICA8c2NyaXB0IGxhbmd1YWdlPSJqYXZhc2NyaXB0IiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ianMvY29uZmlndXJhdGlvbl90cy5qcyI+PC9zY3JpcHQ+CiAgICA8c2NyaXB0IGxhbmd1YWdlPSJqYXZhc2NyaXB0IiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ianMvbmV0d29ya190cy5qcyI+PC9zY3JpcHQ+CiAgICA8c2NyaXB0IGxhbmd1YWdlPSJqYXZhc2NyaXB0IiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ianMvbWVudV90cy5qcyI+PC9zY3JpcHQ+CiAgICA8c2NyaXB0IGxhbmd1YWdlPSJqYXZhc2NyaXB0IiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ianMvc2V0dGluZ3NfdHMuanMiPjwvc2NyaXB0PgogICAgPHNjcmlwdCBsYW5ndWFnZT0iamF2YXNjcmlwdCIgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9ImpzL2Jhc2VfdHMuanMiPjwvc2NyaXB0PgogIDwvaGVhZD4KCiAgICA8Ym9keSBvbmxvYWQ9ImphdmFzY3JpcHQ6IHJlYWR5Rm9yQ29uZmlndXJhdGlvbigwKTsiPgogICAgICAgICAgCiAgICAgIDxkaXYgaWQ9ImxvYWRpbmciIGNsYXNzPSJibG9jayI+CiAgICAgICAgPGRpdiBjbGFzcz0ibG9hZGVyIj48L2Rpdj4KICAgICAgPC9kaXY+CgogICAgICA8ZGl2IGlkPSJoZWFkZXIiIGNsYXNzPSJpbWdDZW50ZXIiPjwvZGl2PgogICAgICA8ZGl2IGlkPSJib3giPgogICAgICAgIAogICAgICAgIDx0YWJsZSBpZD0iY2xpZW50SW5mbyIgY2xhc3M9InZpc2libGUiPgogICAgICAgICAgPHRyPgogICAgICAgICAgICA8dGQgY2xhc3M9InRkS2V5Ij5WZXJzaW9uOjwvdGQ+CiAgICAgICAgICAgIDx0ZCBpZD0idmVyc2lvbiIgY2xhc3M9InRkVmFsIj4mbmJzcDs8L3RkPgogICAgICAgICAgICA8dGQgY2xhc3M9InRkS2V5Ij5PUzo8L3RkPgogICAgICAgICAgICA8dGQgaWQ9Im9zIiBjbGFzcz0idGRWYWwiPiZuYnNwOzwvdGQ+CiAgICAgICAgICA8L3RyPgogICAgICAgICAgPHRyPgogICAgICAgICAgICA8dGQgY2xhc3M9InRkS2V5Ij5VVUlEOjwvdGQ+CiAgICAgICAgICAgIDx0ZCBpZD0idXVpZCIgY2xhc3M9InRkVmFsIj4mbmJzcDs8L3RkPgogICAgICAgICAgICA8dGQgY2xhc3M9InRkS2V5Ij5BcmNoOjwvdGQ+CiAgICAgICAgICAgIDx0ZCBpZD0iYXJjaCIgY2xhc3M9InRkVmFsIj4mbmJzcDs8L3RkPgogICAgICAgICAgPC90cj4KICAgICAgICAgIDx0cj4KICAgICAgICAgICAgPHRkIGNsYXNzPSJ0ZEtleSI+U3RyZWFtczo8L3RkPgogICAgICAgICAgICA8dGQgaWQ9InN0cmVhbXMiIGNsYXNzPSJ0ZFZhbCI+Jm5ic3A7PC90ZD4KICAgICAgICAgICAgPHRkIGNsYXNzPSJ0ZEtleSI+RFZSOjwvdGQ+CiAgICAgICAgICAgIDx0ZCBpZD0iRFZSIiBjbGFzcz0idGRWYWwiPiZuYnNwOzwvdGQ+CiAgICAgICAgICA8L3RyPgogICAgICAgIDwvdGFibGU+CiAgICAgICAgCiAgICAgICAgPGRpdiBpZD0iaGVhZGxpbmUiPgogICAgICAgICAgPGgxIGlkPSJoZWFkLXRleHQiIGNsYXNzPSJjZW50ZXIiPkNvbmZpZ3VyYXRpb248L2gxPiAgICAgIAogICAgICAgIDwvZGl2PgogICAgICAgIDxwIGlkPSJlcnIiIGNsYXNzPSJlcnJvck1zZyBjZW50ZXIiPjwvcD4gICAKICAgICAgICA8ZGl2IGlkPSJjb250ZW50Ij4KICAgICAgICAgICAgCiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBpZD0iYm94LWZvb3RlciI+CiAgICAgICAgICA8aW5wdXQgaWQ9Im5leHQiIGNsYXNzPSIiIHR5cGU9ImJ1dHRvbiIgbmFtZT0ibmV4dCIgdmFsdWU9Ik5leHQiIG9uY2xpY2s9ImphdmFzY3JpcHQ6IHNhdmVXaXphcmQoKTsiPgogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KICAgIDwvYm9keT4KPC9odG1sPg==" - webUI["html/img/log.png"] = "iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAAAXNSR0IArs4c6QAAAAlwSFlzAAAsSwAALEsBpT2WqQAABCRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IlhNUCBDb3JlIDUuNC4wIj4KICAgPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIgogICAgICAgICAgICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgICAgICAgICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyI+CiAgICAgICAgIDx0aWZmOlJlc29sdXRpb25Vbml0PjI8L3RpZmY6UmVzb2x1dGlvblVuaXQ+CiAgICAgICAgIDx0aWZmOkNvbXByZXNzaW9uPjU8L3RpZmY6Q29tcHJlc3Npb24+CiAgICAgICAgIDx0aWZmOlhSZXNvbHV0aW9uPjI4ODwvdGlmZjpYUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6T3JpZW50YXRpb24+MTwvdGlmZjpPcmllbnRhdGlvbj4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+Mjg4PC90aWZmOllSZXNvbHV0aW9uPgogICAgICAgICA8ZXhpZjpQaXhlbFhEaW1lbnNpb24+NTA8L2V4aWY6UGl4ZWxYRGltZW5zaW9uPgogICAgICAgICA8ZXhpZjpDb2xvclNwYWNlPjE8L2V4aWY6Q29sb3JTcGFjZT4KICAgICAgICAgPGV4aWY6UGl4ZWxZRGltZW5zaW9uPjUwPC9leGlmOlBpeGVsWURpbWVuc2lvbj4KICAgICAgICAgPGRjOnN1YmplY3Q+CiAgICAgICAgICAgIDxyZGY6QmFnLz4KICAgICAgICAgPC9kYzpzdWJqZWN0PgogICAgICAgICA8eG1wOk1vZGlmeURhdGU+MjAxOC0xMC0xNFQxMToxMDo0MjwveG1wOk1vZGlmeURhdGU+CiAgICAgICAgIDx4bXA6Q3JlYXRvclRvb2w+UGl4ZWxtYXRvciAzLjM8L3htcDpDcmVhdG9yVG9vbD4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgIDwvcmRmOlJERj4KPC94OnhtcG1ldGE+CkP32mEAAANASURBVGgF7ZlPiE1RHMffw1AYhiL5k1HEijJiYaFZiHoyFspW2RFRkkSZGgtFWJIwi9FYmo0VOywkKTbKgjSlWcifRCPX51dv6s2d33md77vvXjfmV9859/7u93x/v98959x73p1KRbAkSargAhgDH0E/qIYkuHYEvAPGvwbmNOEerXM/0Q6BRSFuZj/ix0DaDnvCkGppIucDAe4OhzvkcUO+GaELAf8ux7/b8Zlrr+Pvc3zm6nX8NccXdKmFLHaUPJ/Ruhyu5zNap8Nd6PiCLrUQTyi0Rjy/5/M0Zd+smB7M32XwtgBr07aC6yfSTs7XO77OALfH4VbgHsD/HLytVquJx4nyIdQFBsHftscksK5Z0sGhpuN8Or4Aa5sJFHjtO7G2MjKvvZjN1sglOpSlCMt9LrDZ4S4Hd0Qg24vrK+gAZbPtjMqTdFKhEdkIsYxFWP720JlioUK6pzDL41jtpRIqxOOWxecuB3fhRGT8E85YBK8VygI6GSRTCxlH3TaJgyw4O2678aCxO94LbNPovYDdmOrUukIBN/MqwjJEOwGPOHR31W4VONVCLEBR9lAJpBbSrYhn5K5R+quFnGUOr1ICtMIlxjz6XVb6qot9JeKvCPSAdlQJJHDtd8hOIN0wtRDLxx6Ntr0ulalTq1TJNyYzXUjj3SjD8X87Iva7uR8s5+2bi6FtX1oOgi8g2tSn1g2yPx+t3gIR/c90s1+C1vuO/YkxdWrdjxFtE2dE0VELWaqIZ+QuUfqrhZxmyKUvgEoyE1xizOR4YOI8plXXyAZEbYsyTJvXFsUW+x6wGUSbWogJ237rZHSEgojq1CooLT3MdCH6Pcu3xz8zIq0s9lvc2+sgz6dWH/rnQPB/jlybZGoh99hCHJqk0P6TD0jaI/4b7dVYeXVq2bemokyKpRZiHwWKMimWWshxhryjoEpOKXHUNbIN8WcUc5s2r8Vue7l9oAaiTS3EhDeB6EUYnUlGojq1MobLr3uokB/5hcys7OYWKuRl5nD5Cbi5uYXw0ntPHoay2S8Seuol5RZSJ0r/n/DEc/BdrN9kTZrH7BkwDspgwyQxW6uggU3nHnAXvAG/QZE2SrARsL8hJffwDxM0mNDPvT8IAAAAAElFTkSuQmCC" - webUI["html/img/m3u.png"] = "iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAAAXNSR0IArs4c6QAAAAlwSFlzAAAsSwAALEsBpT2WqQAABCRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IlhNUCBDb3JlIDUuNC4wIj4KICAgPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIgogICAgICAgICAgICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgICAgICAgICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyI+CiAgICAgICAgIDx0aWZmOlJlc29sdXRpb25Vbml0PjI8L3RpZmY6UmVzb2x1dGlvblVuaXQ+CiAgICAgICAgIDx0aWZmOkNvbXByZXNzaW9uPjU8L3RpZmY6Q29tcHJlc3Npb24+CiAgICAgICAgIDx0aWZmOlhSZXNvbHV0aW9uPjI4ODwvdGlmZjpYUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6T3JpZW50YXRpb24+MTwvdGlmZjpPcmllbnRhdGlvbj4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+Mjg4PC90aWZmOllSZXNvbHV0aW9uPgogICAgICAgICA8ZXhpZjpQaXhlbFhEaW1lbnNpb24+NTA8L2V4aWY6UGl4ZWxYRGltZW5zaW9uPgogICAgICAgICA8ZXhpZjpDb2xvclNwYWNlPjE8L2V4aWY6Q29sb3JTcGFjZT4KICAgICAgICAgPGV4aWY6UGl4ZWxZRGltZW5zaW9uPjUwPC9leGlmOlBpeGVsWURpbWVuc2lvbj4KICAgICAgICAgPGRjOnN1YmplY3Q+CiAgICAgICAgICAgIDxyZGY6QmFnLz4KICAgICAgICAgPC9kYzpzdWJqZWN0PgogICAgICAgICA8eG1wOk1vZGlmeURhdGU+MjAxOC0wNy0yOFQxOTowNzozMTwveG1wOk1vZGlmeURhdGU+CiAgICAgICAgIDx4bXA6Q3JlYXRvclRvb2w+UGl4ZWxtYXRvciAzLjM8L3htcDpDcmVhdG9yVG9vbD4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgIDwvcmRmOlJERj4KPC94OnhtcG1ldGE+CumjVbcAAAGWSURBVGgF7VoxTgJRFGTFaGKBFnbEcABjb0fiBego7D2ABYmn8ARKRWFNQ6gx4QRQGWJJoY2VhXGdl7Dkh7Dsx3ns3yXvJ5P97L6d92bmhwYqlcWK43gK5L2enP51NP8F7pN721wPnOITZx9qG6HxI8QIZO+9XCHeL+VQKKm8QMyxb6+iCpH528AQYs58xIQWknV8mhDxCjEXWWJCC8maT55fAmOIudpUXAYhMn8dGEHMTZqYsgiR+U+BAcTcrhNTJiEy/xHQg5jOqpjD1RsBP3+id8u3P8TUoij6SuoLIwRDfWOofjLYtteyHa1UfcvvcUT1jqpGauVuHnyAdragjv/TAkley3uhj9Y5ZhDQa2+Olgmhz4IygSWibChNZ4nQFioTWCLKhtJ0lghtoTKBJaJsKE1nidAWKhNYIsqG0nSWCG2hMoElomwoTWeJ0BYqE1giyobSdJYIbaEygSWibChNZ4nQFioTWCLKhtJ0biJzmi1/guXMrpDn/OegO3bXMuAH0TtgAvwARV3y57Q34AGoJkL+AErKZ9cqbH7AAAAAAElFTkSuQmCC" - webUI["html/img/x_white.png"] = "iVBORw0KGgoAAAANSUhEUgAAAQAAAAEACAIAAADTED8xAAAAAXNSR0IArs4c6QAAAAlwSFlzAAAWJQAAFiUBSVIk8AAAA6ppVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IlhNUCBDb3JlIDUuNC4wIj4KICAgPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIgogICAgICAgICAgICB4bWxuczp0aWZmPSJodHRwOi8vbnMuYWRvYmUuY29tL3RpZmYvMS4wLyIKICAgICAgICAgICAgeG1sbnM6ZXhpZj0iaHR0cDovL25zLmFkb2JlLmNvbS9leGlmLzEuMC8iPgogICAgICAgICA8eG1wOk1vZGlmeURhdGU+MjAxOC0xMS0xNVQxNzoxMToyNTwveG1wOk1vZGlmeURhdGU+CiAgICAgICAgIDx4bXA6Q3JlYXRvclRvb2w+UGl4ZWxtYXRvciAzLjM8L3htcDpDcmVhdG9yVG9vbD4KICAgICAgICAgPHRpZmY6T3JpZW50YXRpb24+MTwvdGlmZjpPcmllbnRhdGlvbj4KICAgICAgICAgPHRpZmY6Q29tcHJlc3Npb24+NTwvdGlmZjpDb21wcmVzc2lvbj4KICAgICAgICAgPHRpZmY6UmVzb2x1dGlvblVuaXQ+MjwvdGlmZjpSZXNvbHV0aW9uVW5pdD4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+MTQ0PC90aWZmOllSZXNvbHV0aW9uPgogICAgICAgICA8dGlmZjpYUmVzb2x1dGlvbj4xNDQ8L3RpZmY6WFJlc29sdXRpb24+CiAgICAgICAgIDxleGlmOlBpeGVsWERpbWVuc2lvbj4yNTY8L2V4aWY6UGl4ZWxYRGltZW5zaW9uPgogICAgICAgICA8ZXhpZjpDb2xvclNwYWNlPjE8L2V4aWY6Q29sb3JTcGFj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" - webUI["html/js/base.js"] = "dmFyIGNvbmZpZyAgICAgICAgPSBuZXcgT2JqZWN0KCk7CnZhciBtZW51ICAgICAgICAgID0gbmV3IE9iamVjdCgpOwp2YXIgc3ViTWVudSAgICAgICA9IG5ldyBPYmplY3QoKTsKdmFyIGFjdGl2ZVN0cmVhbXMgPSBuZXcgT2JqZWN0KCk7CnZhciB4RVBHICAgICAgICAgID0gbmV3IE9iamVjdCgpOwp2YXIgdXNlcnMgICAgICAgICA9IG5ldyBPYmplY3QoKTsKdmFyIGxvZyAgICAgICAgICAgPSBuZXcgT2JqZWN0KCk7CnZhciB1bmRvICAgICAgICAgID0gbmV3IE9iamVjdCgpOwp2YXIgd2ViU29ja2V0cyAgICA9IHRydWU7CnZhciBjbG9zZUxvZywgdmVyc2lvbiwgYWN0aXZlTWVudTsKdmFyIGNvbHVtblRvU29ydCAgPSAwCgoKaWYgKHdpbmRvdy5XZWJTb2NrZXQgPT09IHVuZGVmaW5lZCkgewogIGFsZXJ0KCJZb3VyIGJyb3dzZXIgZG9lcyBub3Qgc3VwcG9ydCBXZWJTb2NrZXRzIik7CiAgd2ViU29ja2V0cyA9IGZhbHNlOwp9IAoKZnVuY3Rpb24gcGFnZVJlYWR5KCkgewogIHZhciBkYXRhID0gbmV3IE9iamVjdCgpOwogIGRhdGFbImNtZCJdID0gImdldFNlcnZlckNvbmZpZyI7CiAgeFRlVmUoZGF0YSk7CiAgLy9zaG93TG9hZGluZ1NjcmVlbihmYWxzZSk7CgogIHZhciByZXNpemVIYW5kbGUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgib3BlblN0cmVhbXMiKTsKICB2YXIgYm94ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm15U3RyZWFtc0JveCIpOwogIHJlc2l6ZUhhbmRsZS5hZGRFdmVudExpc3RlbmVyKCJtb3VzZWRvd24iLCBpbml0aWFsaXNlUmVzaXplLCBmYWxzZSk7CgogIGZ1bmN0aW9uIGluaXRpYWxpc2VSZXNpemUoZSkgewogICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlbW92ZSIsIHN0YXJ0UmVzaXppbmcsIGZhbHNlKTsKICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJtb3VzZXVwIiwgc3RvcFJlc2l6aW5nLCBmYWxzZSk7CiAgfQoKICBmdW5jdGlvbiBzdGFydFJlc2l6aW5nKGUpIHsKICAgIGJveC5zdHlsZS5oZWlnaHQgPSAoZS5jbGllbnRZIC0gYm94Lm9mZnNldFRvcCkgKyAicHgiOwogICAgICAKICAgIHZhciBlbG0gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYWxsU3RyZWFtcyIpOwogICAgaWYgKGUuY2xpZW50WSA+IDEyMCkgewogICAgICBlbG0uY2xhc3NOYW1lID0gInZpc2libGUiOyAKICAgIH0gZWxzZSB7CiAgICAgIGVsbS5jbGFzc05hbWUgPSAibm90VmlzaWJsZSI7IAogICAgfQoKICAgIGNhbGN1bGF0ZVdyYXBwZXJIZWlnaHQoKTsKCiAgfQogIGZ1bmN0aW9uIHN0b3BSZXNpemluZyhlKSB7CiAgICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCdtb3VzZW1vdmUnLCBzdGFydFJlc2l6aW5nLCBmYWxzZSk7CiAgICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCdtb3VzZXVwJywgc3RvcFJlc2l6aW5nLCBmYWxzZSk7CiAgICAgIGNhbGN1bGF0ZVdyYXBwZXJIZWlnaHQoKTsKICB9CgogIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJyZXNpemUiLCBmdW5jdGlvbigpewogICAgY2FsY3VsYXRlV3JhcHBlckhlaWdodCgpOwogIH0sIHRydWUpOwp9CgoKZnVuY3Rpb24gZ2V0T2JqS2V5cyhvYmopIHsKICB2YXIga2V5cyA9IG5ldyBBcnJheSgpOwoKICBmb3IgKHZhciBpIGluIG9iaikgewogICAgaWYgKG9iai5oYXNPd25Qcm9wZXJ0eShpKSkgewogICAgICBrZXlzLnB1c2goaSk7CiAgICB9CiAgfQoKICByZXR1cm4ga2V5czsKfQoKCmZ1bmN0aW9uIGNyZWF0ZUVsZW1lbnQoaXRlbSkgewogIC8vY29uc29sZS5sb2coaXRlbSk7CiAgdmFyIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KGl0ZW1bIl9lbGVtZW50Il0pOwogIGlmIChpdGVtLmhhc093blByb3BlcnR5KCJfdGV4dCIpKSB7CiAgICAvL2VsZW1lbnQuaW5uZXJIVE1MID0gIjxwPiIgKyBpdGVtWyJfdGV4dCJdICsgIjwvcD4iOwogICAgZWxlbWVudC5pbm5lckhUTUwgPSBpdGVtWyJfdGV4dCJdOwogIH0KCiAgdmFyIGtleXMgPSBnZXRPYmpLZXlzKGl0ZW0pOwogIGZvciAodmFyIGkgPSAwOyBpIDwga2V5cy5sZW5ndGg7IGkrKykgewogICAgaWYgKGtleXNbaV0uY2hhckF0KDApICE9ICJfIikgewogICAgICAvL2NvbnNvbGUubG9nKGtleXNbaV0sIGl0ZW1ba2V5c1tpXV0pOwogICAgICBlbGVtZW50LnNldEF0dHJpYnV0ZShrZXlzW2ldLCBpdGVtW2tleXNbaV1dKTsKICAgIH0KICB9CgogIC8vY29uc29sZS5sb2coZWxlbWVudCk7CiAgcmV0dXJuIGVsZW1lbnQ7Cn0KCmZ1bmN0aW9uIG1vZGlmeU9wdGlvbihpZCwgb3B0aW9ucywgdmFsdWVzKSB7CiAgdmFyIHNlbGVjdCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKTsKICBzZWxlY3QuaW5uZXJIVE1MID0gIiI7CgogIGZvciAodmFyIGkgPSAwOyBpIDwgb3B0aW9ucy5sZW5ndGg7IGkrKykgewogIAogICAgdmFyIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJPUFRJT04iKQogIAogICAgZWxlbWVudC52YWx1ZSA9IHZhbHVlc1tpXTsKICAgIGVsZW1lbnQuaW5uZXJIVE1MID0gb3B0aW9uc1tpXTsKCiAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkuYXBwZW5kQ2hpbGQoZWxlbWVudCk7CiAgCiAgfQoKfQoKCmZ1bmN0aW9uIHN0YXJ0V2ViU29ja2V0KCkgewogIGlmICh3ZWJTb2NrZXRzID09IGZhbHNlKSB7CiAgICByZXR1cm47CiAgfQoKICAvL3dzLnNlbmQoJ3siY21kIjogImdldFNlcnZlckNvbmZpZzEifScpOwoKfQoKZnVuY3Rpb24gY2hlY2tFcnIob2JqKSB7CiAgLy9hbGVydChvYmpbImVyciJdKQogIC8vc2NyZWVuTG9nKG9ialsiZXJyIl0sICJlcnJvciIpCiAgY29uc29sZS5sb2cob2JqKTsKICB2YXIgbmV3T2JqID0gbmV3IE9iamVjdCgpOwogIHZhciBuZXdFcnIgPSBuZXcgT2JqZWN0KCk7CiAgbmV3RXJyWyJrZXkiXSAgID0gIkVycm9yIjsKICBuZXdFcnJbInZhbHVlIl0gPSBvYmpbImVyciJdOwogIG5ld0VyclsidHlwZSJdICA9ICJlcnJvciI7CgogIG5ld09ialswXSA9IG5ld0VycgogIHNob3dMb2cobmV3T2JqKTsKICByZXR1cm4KfQoKZnVuY3Rpb24gc2NyZWVuTG9nKG1zZywgbXNnVHlwZSwgc2hvdykgewogIHJldHVybgogIGNsZWFyVGltZW91dChjbG9zZUxvZykKICB2YXIgZGl2ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNjcmVlbkxvZyIpOwogIHZhciBuZXdNc2cgPSBuZXcgT2JqZWN0KCk7CiAgCiAgbmV3TXNnWyJfZWxlbWVudCJdID0gIlAiOwogIAogIHN3aXRjaChtc2dUeXBlKSB7CiAgICBjYXNlICJlcnJvciI6ICAgbmV3TXNnWyJjbGFzcyJdID0gImVycm9yTXNnIjsgYnJlYWs7CiAgICBjYXNlICJ3YXJuaW5nIjogbmV3TXNnWyJjbGFzcyJdID0gIndhcm5pbmdNc2ciOyBicmVhazsKICAgIC8vZGVmYXVsdDogICAgICBuZXdNc2dbImNsYXNzIl0gPSAiaW5mb01zZyIKICB9CgogIG5ld01zZ1siX3RleHQiXSA9IG1zZzsKCiAgZGl2LmFwcGVuZENoaWxkKGNyZWF0ZUVsZW1lbnQobmV3TXNnKSk7CgogIGRpdi5zY3JvbGxUb3AgPSBkaXYuc2Nyb2xsSGVpZ2h0OwoKICBpZiAoc2hvdyA9PSBmYWxzZSkgewogICAgcmV0dXJuOwogIH0KCiAgZGl2LmNsYXNzTmFtZSA9ICIiCiAgY2xvc2VMb2cgPSBzZXRUaW1lb3V0KGNsb3NlU2NyZWVuTG9nLCAxMDAwMCk7Cn0KCgpmdW5jdGlvbiBjbG9zZVNjcmVlbkxvZygpIHsKICB2YXIgZGl2ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNjcmVlbkxvZyIpOwogIGRpdi5jbGFzc05hbWUgPSAic2NyZWVuTG9nSGlkZGVuIgp9CgpmdW5jdGlvbiBzaG93U2NyZWVuTG9nKCkgewogIGNsZWFyVGltZW91dChjbG9zZUxvZykKICB2YXIgZGl2ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNjcmVlbkxvZyIpOwogIHZhciBjdXJyZW50Q2xhc3MgPSBkaXYuY2xhc3NOYW1lOwogIGRpdi5jbGFzc05hbWUgPSAic2NyZWVuTG9nSGlkZGVuIgoKICBzd2l0Y2goY3VycmVudENsYXNzKSB7CiAgICBjYXNlICJzY3JlZW5Mb2dIaWRkZW4iOiAgZGl2LmNsYXNzTmFtZSA9ICIiOyBicmVhazsgCiAgICBjYXNlICIiOiBkaXYuY2xhc3NOYW1lID0gInNjcmVlbkxvZ0hpZGRlbiI7IGJyZWFrOwogIH0KfQoKZnVuY3Rpb24gc2hvd0xvYWRpbmdTY3JlZW4oZWxtKSB7CiAgdmFyIGRpdiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJsb2FkaW5nIik7CiAgc3dpdGNoKGVsbSkgewogICAgY2FzZSB0cnVlOiBkaXYuY2xhc3NOYW1lID0gImJsb2NrIjsgYnJlYWs7CiAgICBjYXNlIGZhbHNlOiBkaXYuY2xhc3NOYW1lID0gIm5vbmUiOyBicmVhazsKCiAgICAvKgogICAgY2FzZSB0cnVlOiBkaXYuc3R5bGUuZGlzcGxheSA9ICJibG9jayI7IGJyZWFrOwogICAgY2FzZSBmYWxzZTogZGl2LnN0eWxlLmRpc3BsYXkgPSAibm9uZSI7IGJyZWFrOwogICAgKi8KICB9Cn0KCmZ1bmN0aW9uIGNyZWF0ZUNsaW50SW5mbyhvYmopIHsKICAvL2NvbnNvbGUubG9nKG9iaik7CiAgdmFyIGtleXMgPSBnZXRPYmpLZXlzKG9iaik7CiAgZm9yICh2YXIgaSA9IDA7IGkgPCBrZXlzLmxlbmd0aDsgaSsrKSB7CiAgICBpZihkb2N1bWVudC5nZXRFbGVtZW50QnlJZChrZXlzW2ldKSl7CiAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGtleXNbaV0pLmlubmVySFRNTCA9IG9ialtrZXlzW2ldXTsKICAgIH0KICB9CiAgLy9kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY2xpZW50SW5mbyIpLmNsYXNzTmFtZSA9ICJ2aXNpYmxlIjsKfQoKZnVuY3Rpb24gc2hvd0VsZW1lbnQoZWxtSUQsIHR5cGUpIHsKICBzd2l0Y2godHlwZSkgewogICAgY2FzZSB0cnVlOiAgY3NzQ2xhc3MgPSAiYmxvY2siOyBicmVhazsKICAgIGNhc2UgZmFsc2U6IGNzc0NsYXNzID0gIm5vbmUiOyBicmVhazsKICB9CgogIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGVsbUlEKS5jbGFzc05hbWUgPSBjc3NDbGFzczsKfSAKCmZ1bmN0aW9uIHNob3dQb3BVcEVsZW1lbnQoZWxtKSB7CiAgdmFyIGFsbEVsZW1lbnRzID0gbmV3IEFycmF5KCJkZWxldGVVc2VyRGV0YWlsIiwgIm1hcHBpbmctZGV0YWlsIiwgInVzZXItZGV0YWlsIiwgImZpbGUtZGV0YWlsIik7CgogIGZvciAodmFyIGkgPSAwOyBpIDwgYWxsRWxlbWVudHMubGVuZ3RoOyBpKyspIHsKICAgIHNob3dFbGVtZW50KGFsbEVsZW1lbnRzW2ldLCBmYWxzZSkKICB9CgogIHNob3dFbGVtZW50KGVsbSwgdHJ1ZSkKCiAgc2V0VGltZW91dChmdW5jdGlvbigpeyAKICAgIHNob3dFbGVtZW50KCJwb3B1cCIsIHRydWUpOwogIH0sIDEwKTsKfQoKICAvLyBib2R5Li4uCgpmdW5jdGlvbiBzaG93U3RyZWFtcyhmb3JjZSkgewoKICB2YXIgZWxtQm94ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm15U3RyZWFtc0JveCIpOwogIHZhciBlbG0gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYWxsU3RyZWFtcyIpOwogIC8vY29uc29sZS5sb2coZWxtKTsKICBzaG93ID0gZWxtLmNsYXNzTmFtZTsKCiAgc3dpdGNoKGZvcmNlKSB7CiAgICBjYXNlIHRydWU6IHNob3cgPSAibm90VmlzaWJsZSI7IGJyZWFrOwogICAgY2FzZSBmYWxzZTogc2hvdyA9ICJ2aXNpYmxlIjsgYnJlYWs7CiAgfQoKICBzd2l0Y2goc2hvdykgewogICAgY2FzZSAibm90VmlzaWJsZSI6IAogICAgICBlbG0uY2xhc3NOYW1lID0gInZpc2libGUiOyAKICAgICAgZWxtQm94LnN0eWxlLmhlaWdodCA9ICIxMDBweCI7CiAgICAgIGJyZWFrOwoKICAgIGRlZmF1bHQ6IAogICAgICBlbG0uY2xhc3NOYW1lID0gIm5vdFZpc2libGUiOyAKICAgICAgZWxtQm94LnN0eWxlLmhlaWdodCA9ICIyMHB4IjsKICAgICAgYnJlYWs7CiAgfQoKICB2YXIgc2hvdyA9IGVsbS5zdHlsZS5kaXNwbGF5OyB7CiAgICAvL2NvbnNvbGUubG9nKGVsbS5zdHlsZS5kaXNwbGF5KTsKICB9CiAgCiAgY2FsY3VsYXRlV3JhcHBlckhlaWdodCgpOwp9CgpmdW5jdGlvbiB4dGV2ZUJhY2t1cCgpIHsKICBjb25zb2xlLmxvZygieHRldmVCYWNrdXAiKTsKICB2YXIgZGF0YSA9IG5ldyBPYmplY3QoKTsKICBkYXRhWyJjbWQiXSA9ICJ4dGV2ZUJhY2t1cCI7CgogIHhUZVZlKGRhdGEpOwp9CgpmdW5jdGlvbiB4dGV2ZVJlc3RvcmUoZWxtKSB7CiAgdmFyIHJlc3RvcmUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJJTlBVVCIpOwogIHJlc3RvcmUuc2V0QXR0cmlidXRlKCJ0eXBlIiwgImZpbGUiKTsKICByZXN0b3JlLnNldEF0dHJpYnV0ZSgiY2xhc3MiLCAibm90VmlzaWJsZSIpOwogIHJlc3RvcmUuc2V0QXR0cmlidXRlKCJuYW1lIiwgIiIpOwogIHJlc3RvcmUuaWQgPSAidXBsb2FkIjsKCiAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChyZXN0b3JlKTsKICByZXN0b3JlLmNsaWNrKCk7CgogIHJlc3RvcmUub25jaGFuZ2UgPSBmdW5jdGlvbigpIHsKICAgIHZhciBmaWxlbmFtZSA9IHJlc3RvcmUuZmlsZXNbMF0ubmFtZQogICAgLy9jb25zb2xlLmxvZyhyZXN0b3JlLnNyY0VsZW1lbnQuZmlsZXNbMF0pOwogICAgdmFyIGNoZWNrID0gY29uZmlybSgiRmlsZTogIiArIGZpbGVuYW1lICsgIlxuQWxsIGRhdGEgd2lsbCBiZSByZXBsYWNlZCB3aXRoIHRob3NlIGZyb20gdGhlIGJhY2t1cC5cblNob3VsZCB0aGUgZmlsZXMgYmUgcmVzdG9yZWQ/Iik7IAogICAgaWYgKGNoZWNrID09IHRydWUpIHsKICAgICAgdmFyIHJlYWRlciAgPSBuZXcgRmlsZVJlYWRlcigpOwogICAgICB2YXIgZmlsZSA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ2lucHV0W3R5cGU9ZmlsZV0nKS5maWxlc1swXTsKICAgICAgaWYgKGZpbGUpIHsKICAgICAgICByZWFkZXIucmVhZEFzRGF0YVVSTChmaWxlKTsKICAgICAgICByZWFkZXIub25sb2FkID0gZnVuY3Rpb24oKSB7CiAgICAgICAgICBjb25zb2xlLmxvZyhyZWFkZXIucmVzdWx0KTsKICAgICAgICAgIHZhciBkYXRhID0gbmV3IE9iamVjdCgpOwogICAgICAgICAgZGF0YVsiY21kIl0gICAgID0gInh0ZXZlUmVzdG9yZSIKICAgICAgICAgIGRhdGFbImJhc2U2NCJdICA9IHJlYWRlci5yZXN1bHQKCiAgICAgICAgICB4VGVWZShkYXRhKTsKICAgICAgICAgIHJldHVybgogICAgICAgIH07CiAgICAgIH0gZWxzZSB7CiAgICAgICAgYWxlcnQoIkZpbGUgY291bGQgbm90IGJlIGxvYWRlZCIpCiAgICAgIH0KICAgIH0KICB9Owp9CgpmdW5jdGlvbiBnZXRCYXNlNjQoZmlsZSkgewogICB2YXIgcmVhZGVyID0gbmV3IEZpbGVSZWFkZXIoKTsKICAgcmVhZGVyLnJlYWRBc0RhdGFVUkwoZmlsZSk7CiAgIHJlYWRlci5vbmxvYWQgPSBmdW5jdGlvbigpIHsKICAgICBjb25zb2xlLmxvZyhyZWFkZXIucmVzdWx0KTsKICAgfTsKICAgcmVhZGVyLm9uZXJyb3IgPSBmdW5jdGlvbihlcnJvcikgewogICAgIGNvbnNvbGUubG9nKCdFcnJvcjogJywgZXJyb3IpOwogICB9Owp9CgpmdW5jdGlvbiBsb2dvdXQoKSB7CiAgZG9jdW1lbnQuY29va2llLnNwbGl0KCc7JykuZm9yRWFjaChmdW5jdGlvbihjKSB7CiAgICBkb2N1bWVudC5jb29raWUgPSBjLnRyaW0oKS5zcGxpdCgnPScpWzBdICsgJz07JyArICdleHBpcmVzPVRodSwgMDEgSmFuIDE5NzAgMDA6MDA6MDAgVVRDOyc7CiAgfSk7CiAgbG9jYXRpb24ucmVsb2FkKCk7Cn0KCmZ1bmN0aW9uIGdldENvb2tpZShuYW1lKSB7CiAgdmFyIHZhbHVlID0gIjsgIiArIGRvY3VtZW50LmNvb2tpZTsKICB2YXIgcGFydHMgPSB2YWx1ZS5zcGxpdCgiOyAiICsgbmFtZSArICI9Iik7CiAgaWYgKHBhcnRzLmxlbmd0aCA9PSAyKSByZXR1cm4gcGFydHMucG9wKCkuc3BsaXQoIjsiKS5zaGlmdCgpOwp9CgpmdW5jdGlvbiBzZXRDb29raWUodG9rZW4pIHsKICAvL2NvbnNvbGUubG9nKHRva2VuKTsKICBkb2N1bWVudC5jb29raWUgPSAiVG9rZW49IiArIHRva2VuCn0KCg==" - webUI["html/js/logs_ts.js"] = "dmFyIExvZyA9IC8qKiBAY2xhc3MgKi8gKGZ1bmN0aW9uICgpIHsKICAgIGZ1bmN0aW9uIExvZygpIHsKICAgIH0KICAgIExvZy5wcm90b3R5cGUuY3JlYXRlTG9nID0gZnVuY3Rpb24gKGVudHJ5KSB7CiAgICAgICAgdmFyIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJQUkUiKTsKICAgICAgICBpZiAoZW50cnkuaW5kZXhPZigiV0FSTklORyIpICE9IC0xKSB7CiAgICAgICAgICAgIGVsZW1lbnQuY2xhc3NOYW1lID0gIndhcm5pbmdNc2ciOwogICAgICAgIH0KICAgICAgICBpZiAoZW50cnkuaW5kZXhPZigiRVJST1IiKSAhPSAtMSkgewogICAgICAgICAgICBlbGVtZW50LmNsYXNzTmFtZSA9ICJlcnJvck1zZyI7CiAgICAgICAgfQogICAgICAgIGlmIChlbnRyeS5pbmRleE9mKCJERUJVRyIpICE9IC0xKSB7CiAgICAgICAgICAgIGVsZW1lbnQuY2xhc3NOYW1lID0gImRlYnVnTXNnIjsKICAgICAgICB9CiAgICAgICAgZWxlbWVudC5pbm5lckhUTUwgPSBlbnRyeTsKICAgICAgICByZXR1cm4gZWxlbWVudDsKICAgIH07CiAgICByZXR1cm4gTG9nOwp9KCkpOwpmdW5jdGlvbiBzaG93TG9ncyhib3R0b20pIHsKICAgIHZhciBsb2cgPSBuZXcgTG9nKCk7CiAgICB2YXIgbG9ncyA9IFNFUlZFUlsibG9nIl1bImxvZyJdOwogICAgdmFyIGRpdiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb250ZW50X2xvZyIpOwogICAgZGl2LmlubmVySFRNTCA9ICIiOwogICAgdmFyIGtleXMgPSBnZXRPYmpLZXlzKGxvZ3MpOwogICAga2V5cy5mb3JFYWNoKGZ1bmN0aW9uIChsb2dJRCkgewogICAgICAgIHZhciBlbnRyeSA9IGxvZy5jcmVhdGVMb2cobG9nc1tsb2dJRF0pOwogICAgICAgIGRpdi5hcHBlbmQoZW50cnkpOwogICAgfSk7CiAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKICAgICAgICBpZiAoYm90dG9tID09IHRydWUpIHsKICAgICAgICAgICAgdmFyIHdyYXBwZXIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYm94LXdyYXBwZXIiKTsKICAgICAgICAgICAgd3JhcHBlci5zY3JvbGxUb3AgPSB3cmFwcGVyLnNjcm9sbEhlaWdodDsKICAgICAgICB9CiAgICB9LCAxMCk7Cn0KZnVuY3Rpb24gcmVzZXRMb2dzKCkgewogICAgdmFyIGNtZCA9ICJyZXNldExvZ3MiOwogICAgdmFyIGRhdGEgPSBuZXcgT2JqZWN0KCk7CiAgICB2YXIgc2VydmVyID0gbmV3IFNlcnZlcihjbWQpOwogICAgc2VydmVyLnJlcXVlc3QoZGF0YSk7Cn0K" - webUI["html/maintenance.html"] = "PCFkb2N0eXBlIGh0bWw+CjxodG1sPgogIDxoZWFkPgogICAgPG1ldGEgY2hhcnNldD0idXRmLTgiPgogICAgPG1ldGEgbmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9IndpZHRoPWRldmljZS13aWR0aCwgaW5pdGlhbC1zY2FsZT0xLjAiIC8+IAogICAgPHRpdGxlPnhUZVZlPC90aXRsZT4KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iY3NzL3NjcmVlbi5jc3MiIHR5cGU9InRleHQvY3NzIj4KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iY3NzL2Jhc2UuY3NzIiB0eXBlPSJ0ZXh0L2NzcyI+CiAgPC9oZWFkPgoKICAgIDxib2R5PgogICAgICAgICAgCiAgICAgIDxkaXYgaWQ9ImhlYWRlciIgY2xhc3M9ImltZ0NlbnRlciI+PC9kaXY+CgogICAgICA8ZGl2IGlkPSJib3giPgoKICAgICAgICA8ZGl2IGlkPSJoZWFkbGluZSI+CiAgICAgICAgICA8aDEgaWQ9ImhlYWQtdGV4dCIgY2xhc3M9ImNlbnRlciI+TWFpbnRlbmFuY2U8L2gxPiAgICAgIAogICAgICAgIDwvZGl2PiAgCgogICAgICAgIDxkaXYgaWQ9ImNvbnRlbnQiPgogICAgICAgICAgeFRlVmUgaXMgdXBkYXRpbmcgdGhlIGRhdGFiYXNlLCBwbGVhc2UgdHJ5IGFnYWluIGxhdGVyLgogICAgICAgIDwvZGl2PgoKICAgICAgICA8ZGl2IGlkPSJib3gtZm9vdGVyIj48L2Rpdj4KICAgICAgICAKICAgICAgPC9kaXY+CgogICAgPC9ib2R5Pgo8L2h0bWw+" - webUI["html/create-first-user.html"] = "PCFkb2N0eXBlIGh0bWw+CjxodG1sPgogIDxoZWFkPgogICAgPG1ldGEgY2hhcnNldD0idXRmLTgiPgogICAgPG1ldGEgbmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9IndpZHRoPWRldmljZS13aWR0aCwgaW5pdGlhbC1zY2FsZT0xLjAiIC8+IAogICAgPHRpdGxlPnhUZVZlPC90aXRsZT4KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iY3NzL3NjcmVlbi5jc3MiIHR5cGU9InRleHQvY3NzIj4KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iY3NzL2Jhc2UuY3NzIiB0eXBlPSJ0ZXh0L2NzcyI+CiAgICA8c2NyaXB0IGxhbmd1YWdlPSJqYXZhc2NyaXB0IiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ianMvbmV0d29ya190cy5qcyI+PC9zY3JpcHQ+CiAgICA8c2NyaXB0IGxhbmd1YWdlPSJqYXZhc2NyaXB0IiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ianMvYXV0aGVudGljYXRpb25fdHMuanMiPjwvc2NyaXB0PgogIDwvaGVhZD4KCiAgICA8Ym9keT4KICAgICAgICAgIAogICAgICA8ZGl2IGlkPSJoZWFkZXIiIGNsYXNzPSJpbWdDZW50ZXIiPjwvZGl2PgoKICAgICAgPGRpdiBpZD0iYm94Ij4KCiAgICAgICAgPGRpdiBpZD0iaGVhZGxpbmUiPgogICAgICAgICAgPGgxIGlkPSJoZWFkLXRleHQiIGNsYXNzPSJjZW50ZXIiPnt7LmFjY291bnQuaGVhZGxpbmV9fTwvaDE+CiAgICAgICAgPC9kaXY+CgogICAgICAgIDxwIGlkPSJlcnIiIGNsYXNzPSJlcnJvck1zZyBjZW50ZXIiPjwvcD4KCiAgICAgICAgPGRpdiBpZD0iY29udGVudCI+CgogICAgICAgICAgICA8Zm9ybSBpZD0iYXV0aGVudGljYXRpb24iIGFjdGlvbj0iIiBtZXRob2Q9InBvc3QiPgoKICAgICAgICAgICAgICA8aDU+e3suYWNjb3VudC51c2VybmFtZS50aXRsZX19OjwvaDU+CiAgICAgICAgICAgICAgPGlucHV0IGlkPSJ1c2VybmFtZSIgdHlwZT0idGV4dCIgbmFtZT0idXNlcm5hbWUiIHBsYWNlaG9sZGVyPSJVc2VybmFtZSIgdmFsdWU9IiI+CiAgICAgICAgICAgICAgPGg1Pnt7LmFjY291bnQucGFzc3dvcmQudGl0bGV9fTo8L2g1PgogICAgICAgICAgICAgIDxpbnB1dCBpZD0icGFzc3dvcmQiIHR5cGU9InBhc3N3b3JkIiBuYW1lPSJwYXNzd29yZCIgcGxhY2Vob2xkZXI9IlBhc3N3b3JkIiB2YWx1ZT0iIj4KICAgICAgICAgICAgICA8aDU+e3suYWNjb3VudC5jb25maXJtLnRpdGxlfX06PC9oNT4KICAgICAgICAgICAgICA8aW5wdXQgaWQ9ImNvbmZpcm0iICB0eXBlPSJwYXNzd29yZCIgbmFtZT0iY29uZmlybSIgIHBsYWNlaG9sZGVyPSJDb25maXJtIiB2YWx1ZT0iIj4KICAgICAgICAgICAgICAKICAgICAgICAgICAgPC9mb3JtPgoKICAgICAgICA8L2Rpdj4KICAgICAgICAKICAgICAgICA8ZGl2IGlkPSJib3gtZm9vdGVyIj4KICAgICAgICAgIDxpbnB1dCBpZD0ic3VibWl0IiBjbGFzcz0iIiB0eXBlPSJidXR0b24iIHZhbHVlPSJ7ey5idXR0b24uY3JhZXRlQWNjb3VudH19IiBvbmNsaWNrPSJqYXZhc2NyaXB0OiBsb2dpbigpOyI+CiAgICAgICAgPC9kaXY+CiAgICAgIAogICAgICAgIAogICAgICA8L2Rpdj4KICAgIDwvYm9keT4KPC9odG1sPg==" + webUI["html/img/logout.png"] = "iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAAAXNSR0IArs4c6QAAAAlwSFlzAAAsSwAALEsBpT2WqQAABCRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IlhNUCBDb3JlIDUuNC4wIj4KICAgPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIgogICAgICAgICAgICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgICAgICAgICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyI+CiAgICAgICAgIDx0aWZmOlJlc29sdXRpb25Vbml0PjI8L3RpZmY6UmVzb2x1dGlvblVuaXQ+CiAgICAgICAgIDx0aWZmOkNvbXByZXNzaW9uPjU8L3RpZmY6Q29tcHJlc3Npb24+CiAgICAgICAgIDx0aWZmOlhSZXNvbHV0aW9uPjI4ODwvdGlmZjpYUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6T3JpZW50YXRpb24+MTwvdGlmZjpPcmllbnRhdGlvbj4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+Mjg4PC90aWZmOllSZXNvbHV0aW9uPgogICAgICAgICA8ZXhpZjpQaXhlbFhEaW1lbnNpb24+NTA8L2V4aWY6UGl4ZWxYRGltZW5zaW9uPgogICAgICAgICA8ZXhpZjpDb2xvclNwYWNlPjE8L2V4aWY6Q29sb3JTcGFjZT4KICAgICAgICAgPGV4aWY6UGl4ZWxZRGltZW5zaW9uPjUwPC9leGlmOlBpeGVsWURpbWVuc2lvbj4KICAgICAgICAgPGRjOnN1YmplY3Q+CiAgICAgICAgICAgIDxyZGY6QmFnLz4KICAgICAgICAgPC9kYzpzdWJqZWN0PgogICAgICAgICA8eG1wOk1vZGlmeURhdGU+MjAxOC0xMC0xM1QxMToxMDoxODwveG1wOk1vZGlmeURhdGU+CiAgICAgICAgIDx4bXA6Q3JlYXRvclRvb2w+UGl4ZWxtYXRvciAzLjM8L3htcDpDcmVhdG9yVG9vbD4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgIDwvcmRmOlJERj4KPC94OnhtcG1ldGE+Cg27QeEAAANQSURBVGgF7Zk9aBRBGIZzSRSN8YdoCpEkghCCqK1o4g9IsBCCNmIniCAiWAhqI8G02qiIoqCCWggSEcFKEFPYpVAU8QdFUyiKRpRokBjP55OdZDLZvZnZ7N3Ngh887M7sN/O9797t7c5eTc3/8D8DxWKxGS5Ai//oAEYgvB4OwleQaAtAlp8ERG+Bp6Jei/wYQfRy6NfE67vhG0FtA/TBqK7c2A/bCGJ3wpAhOq4ZphGUroEHcYoT+sIygsgmOAu/EwQndYdhBHV1sB8+Jym19Lf6/faVIRuBG+GRRajtcPWMoKwFbtgUOh6vvBGEzYFj8MNRpEtaZY2gaAe8cVHmmXOc/K3QXIZv/+SUFFgJ96AS8ZwiZ6Ab6iZVzGCPiRbCKRiDasQHip6EdD/PDKyFvfAJQgg5kVfB/VoieT0MQojxE1G9UG/7otWS0A7pPkrb7DM/Ppcp+mAAM/bFGEmL4RL8gVDjI8JWOZ0bEjvhSahO0CXXsLMZWZYegREIMV4jaoHTJyNJJLfC7RCdoOm6sxGVyKAeeBegoU6l0XmLiXlwAqp1o4w7j3d1AwW9YdtnNrnQzkOXLddyfAPHv8Ey6ABpd8N88In2QqHwymfARC5mCrAH0i6qGDr9jk3fbNgFz8A1DkwIS7tDpSVwGdLcexIfPZhPHpf2wS+wRX9a/dPGUakLzBdwNgGJRlQBJtgMw5aJ3qr8TLYUmwVHwXXxZTUiwphvHYxDUnzPxIA5CdXa4E5SVa3fyUhkRtYqpSKbNYxpJiq+ncpDJar7GGlknvcl5mqM05BZH4Xl3iOLpLh7j7OR6MScSzAykplg20QIWA0PDSG+RuTdQVy8sNXP9DgK5N4jK9AvkRpfI4sYF/c2836mQl0nQ4zce66AfZFkTMqYl2DGaSMt/CYOHpsuaPco5bLUzUuMGkLHaQ+ovjwZUZrVdpAHRnnw/Bd5MrJCiY62t4x2+E2uBfkfRg95TdSkK8/LJ7JWF83+Nb5Ww0Zf+E3OviwXVMgT8dLwVRsKEd0A+uP8biMlH01MHAYVF/Oh2lCJenkDqpbUN9nPyzU91QnCRbyEPEXn1sQhxMv7tG1T7cW3rK/r44eVtxfxm6gwBh38zJqPJuUtXu3Z/wLwuBaBLgMkKwAAAABJRU5ErkJggg==" + webUI["html/img/m3u.png"] = "iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAAAXNSR0IArs4c6QAAAAlwSFlzAAAsSwAALEsBpT2WqQAABCRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IlhNUCBDb3JlIDUuNC4wIj4KICAgPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIgogICAgICAgICAgICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgICAgICAgICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyI+CiAgICAgICAgIDx0aWZmOlJlc29sdXRpb25Vbml0PjI8L3RpZmY6UmVzb2x1dGlvblVuaXQ+CiAgICAgICAgIDx0aWZmOkNvbXByZXNzaW9uPjU8L3RpZmY6Q29tcHJlc3Npb24+CiAgICAgICAgIDx0aWZmOlhSZXNvbHV0aW9uPjI4ODwvdGlmZjpYUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6T3JpZW50YXRpb24+MTwvdGlmZjpPcmllbnRhdGlvbj4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+Mjg4PC90aWZmOllSZXNvbHV0aW9uPgogICAgICAgICA8ZXhpZjpQaXhlbFhEaW1lbnNpb24+NTA8L2V4aWY6UGl4ZWxYRGltZW5zaW9uPgogICAgICAgICA8ZXhpZjpDb2xvclNwYWNlPjE8L2V4aWY6Q29sb3JTcGFjZT4KICAgICAgICAgPGV4aWY6UGl4ZWxZRGltZW5zaW9uPjUwPC9leGlmOlBpeGVsWURpbWVuc2lvbj4KICAgICAgICAgPGRjOnN1YmplY3Q+CiAgICAgICAgICAgIDxyZGY6QmFnLz4KICAgICAgICAgPC9kYzpzdWJqZWN0PgogICAgICAgICA8eG1wOk1vZGlmeURhdGU+MjAxOC0wNy0yOFQxOTowNzozMTwveG1wOk1vZGlmeURhdGU+CiAgICAgICAgIDx4bXA6Q3JlYXRvclRvb2w+UGl4ZWxtYXRvciAzLjM8L3htcDpDcmVhdG9yVG9vbD4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgIDwvcmRmOlJERj4KPC94OnhtcG1ldGE+CumjVbcAAAGWSURBVGgF7VoxTgJRFGTFaGKBFnbEcABjb0fiBego7D2ABYmn8ARKRWFNQ6gx4QRQGWJJoY2VhXGdl7Dkh7Dsx3ns3yXvJ5P97L6d92bmhwYqlcWK43gK5L2enP51NP8F7pN721wPnOITZx9qG6HxI8QIZO+9XCHeL+VQKKm8QMyxb6+iCpH528AQYs58xIQWknV8mhDxCjEXWWJCC8maT55fAmOIudpUXAYhMn8dGEHMTZqYsgiR+U+BAcTcrhNTJiEy/xHQg5jOqpjD1RsBP3+id8u3P8TUoij6SuoLIwRDfWOofjLYtteyHa1UfcvvcUT1jqpGauVuHnyAdragjv/TAkley3uhj9Y5ZhDQa2+Olgmhz4IygSWibChNZ4nQFioTWCLKhtJ0lghtoTKBJaJsKE1nidAWKhNYIsqG0nSWCG2hMoElomwoTWeJ0BYqE1giyobSdJYIbaEygSWibChNZ4nQFioTWCLKhtJ0biJzmi1/guXMrpDn/OegO3bXMuAH0TtgAvwARV3y57Q34AGoJkL+AErKZ9cqbH7AAAAAAElFTkSuQmCC" + webUI["html/img/settings.png"] = "iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAAAXNSR0IArs4c6QAAAAlwSFlzAAAsSwAALEsBpT2WqQAABCRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IlhNUCBDb3JlIDUuNC4wIj4KICAgPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIgogICAgICAgICAgICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgICAgICAgICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyI+CiAgICAgICAgIDx0aWZmOlJlc29sdXRpb25Vbml0PjI8L3RpZmY6UmVzb2x1dGlvblVuaXQ+CiAgICAgICAgIDx0aWZmOkNvbXByZXNzaW9uPjU8L3RpZmY6Q29tcHJlc3Npb24+CiAgICAgICAgIDx0aWZmOlhSZXNvbHV0aW9uPjI4ODwvdGlmZjpYUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6T3JpZW50YXRpb24+MTwvdGlmZjpPcmllbnRhdGlvbj4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+Mjg4PC90aWZmOllSZXNvbHV0aW9uPgogICAgICAgICA8ZXhpZjpQaXhlbFhEaW1lbnNpb24+NTA8L2V4aWY6UGl4ZWxYRGltZW5zaW9uPgogICAgICAgICA8ZXhpZjpDb2xvclNwYWNlPjE8L2V4aWY6Q29sb3JTcGFjZT4KICAgICAgICAgPGV4aWY6UGl4ZWxZRGltZW5zaW9uPjUwPC9leGlmOlBpeGVsWURpbWVuc2lvbj4KICAgICAgICAgPGRjOnN1YmplY3Q+CiAgICAgICAgICAgIDxyZGY6QmFnLz4KICAgICAgICAgPC9kYzpzdWJqZWN0PgogICAgICAgICA8eG1wOk1vZGlmeURhdGU+MjAxOC0wOC0xMFQxODowODo4OTwveG1wOk1vZGlmeURhdGU+CiAgICAgICAgIDx4bXA6Q3JlYXRvclRvb2w+UGl4ZWxtYXRvciAzLjM8L3htcDpDcmVhdG9yVG9vbD4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgIDwvcmRmOlJERj4KPC94OnhtcG1ldGE+Ckxt87EAAAS7SURBVGgFzZpdiFVVGIbn5N+IMgVhaRLqWI7mQIJoIVRgOhQZNDAhWcbcVuPV3BRE6I14440iQQSaN0p6kz8zI0k5inUhZSSaYOVYODMo5eiMOOPf+LzH2cPMPmvttdbe53jOBy9rr2+938/ae51vr733qaoqgQwPD68B/wDJfXAP3AE94JMShCy+SxJ9CvSDJFlU7MiPFdsh/hrBdIffBsd48HApJjLPI4tnPThBlFJMZI5HBuWZCIt9AmgEzeAJR6JzHeMadnKI8wbYCz4Fkz18JlNwMgf8BCL5j4O3bVaMdUfEhPZqgv1U7HbEbDvoT7HZOPUYNwAlHheV09a4A3RTgMqtj9QY7JdgeM5i3I4+fDIYrQeq/UnyNYOTlBDtS+BwEjk2doz+KyO2OY5bwVCME+/qylTHT4C1D3k+uB33Yul3ov/eMuajlu1RH+II5wtT4hNNSnQ6U/kzbRkfq351bCfF8apAm7kmvq38njWRK0S305SHcSK5XO4U5O9MBmXWbSe3E6YccialdKzH2TTnQEF10XgZ5DdivsxEhkyxjVdERAwu03xmMiqD7hYx19km4cyHq6KyeHKkWpSz+ciVrHVpRYZk/wLHp0H2bULkNKzt4Eq86TKxLq3IECf6nXwV9QPbAfjHQSfoD7SN6L63gYhvbrkiTwKf/dPYpbdPVxKMnigdg0VAG8FQye8AzBl6aIk2A+wPiNoHd63LNZx3wbUAvz/CfTzJb/43AmkGpLfAi0DPE/NALQgtve+xFPdi5xRiNkHa5ySOJ/TR7RrBJdqL4AAxL+p+8ToYAFklNCnF3pM1KPba2L6v8vons5oPsko9ZyZoa0PsOoKezxoY+y5N5DYHWSvDTXzUMJH7IUkRW0tbyyV0CcfDDKmqDMe1KfqnQyehGNgo9q8p4hWYFGsiBY4fsSK/BRkkaPgj5PhMy720BnVFesfnlKo3Das0bw8XYJf196GEuzWRLSDoRypLg2w06FyqTS6Cx7iK1eeqGqrnugmuBgvB8+A5UAuqQYiU+oZ4h2T+BV3gAlDp/pai0U1rFpVGMAv8AHzFd4vShMOQLcoB+DNB/sSbM3ZoMV4BQsW0adSJSbNp1Hu1mY40/YZxpPdJaUSfFzrBMXAjjQNsdvll6cHCWVvKJIphdhcny11pqmolCk5aIDif0BKdZBucgPlO8kh/r8O4HtwClSCbk86HtQqQuUrvKVCf5OARjt0lll4H/WKKmbS0tmJQKZNQ7nq9+w0n2LhTN04E8jKMPpZ1hcli8tGTZYEYJwJrZQGzchTGz3a2ifwdkHc73LYAfpx6DcWXQK1LeiDsdpFGx7UOwUGQJKpmGyIjjvWh50iSQWzsZ/ofgvx+jnYp+B/YpJcB7QXDBKPJ4JDF6+/oCwoBuhoL36R+Jp4RJH16u2IgaxJpHhMehsBY3wTjV2YbOuuumLHrwCW6msbSj74O/DHGgV4Ohl8Jw1nSMmsB+tL6Wnw83odzBrhEr2GtgvFE8A74ADxtJZZygMC25cjQqBwqdg62qpUlziUP45Cq6OGuqqoUE/FJ8i+v7MpJYvEsHl1A5gNty2vLmaN3bBLdAvqB3svqXxLRvyEuc9zs7SiA+ACpw05pJx8SoAAAAABJRU5ErkJggg==" + webUI["html/js/configuaration.js"] = "dmFyIGNvbmZpZ01lbnUgPSBuZXcgT2JqZWN0KCk7DQp2YXIgd2l6YXJkID0gbmV3IEFycmF5KCJrZXkiLCAidHVuZXIiLCAiZXBnU291cmNlIiwgIm0zdSIsICJjb21wbGV0ZSIpOw0KdmFyIGFjdGl2ZVdpemFyZDsNCnZhciBkdnJJUA0KDQp2YXIgY29uZmlnTWVudV90dW5lciA9IG5ldyBPYmplY3QoKTsNCmNvbmZpZ01lbnVfdHVuZXJbIl9lbGVtZW50Il0gICAgICA9ICJTRUxFQ1QiOw0KY29uZmlnTWVudV90dW5lclsiX21lbnVUeXBlIl0gICAgID0gInNpbmdsZUlucHV0IjsNCmNvbmZpZ01lbnVfdHVuZXJbIl9jb25maWdLZXkiXSAgICA9ICJ0dW5lciI7DQpjb25maWdNZW51X3R1bmVyWyJfbGFiZWwiXSAgICAgICAgPSAiQXZhaWxhYmxlIHR1bmVycyI7DQpjb25maWdNZW51X3R1bmVyWyJuYW1lIl0gICAgICAgICAgPSAidHVuZXIiOw0KY29uZmlnTWVudV90dW5lclsiaWQiXSAgICAgICAgICAgID0gIlR1bmVyIjsNCmNvbmZpZ01lbnVfdHVuZXJbInBsYWNlaG9sZGVyIl0gICA9ICJUdW5lciI7DQpjb25maWdNZW51X3R1bmVyWyJfdXNhZ2UiXSAgICAgICAgPSAiVGhpcyBzZXR0aW5nIGlzIG9ubHkgdXNlZCBieSBQbGV4IGFuZCBFbWJ5Ljxicj5UaGUgbnVtYmVyIG9mIGNvbmN1cnJlbnQgc3RyZWFtcyBhbGxvd2VkIGJ5IHRoZSBJUFRWIHByb3ZpZGVyLiINCg0KDQp2YXIgb3B0aW9uVmFsdWVzID0gbmV3IEFycmF5KCk7DQpmb3IgKHZhciBpID0gMTsgaSA8PSAxMDA7IGkrKykgew0KICBvcHRpb25WYWx1ZXMucHVzaChpKQ0KfQ0KY29uZmlnTWVudV90dW5lclsiX29wdGlvblZhbHVlcyJdID0gb3B0aW9uVmFsdWVzOw0KDQp2YXIgY29uZmlnTWVudV9lcGcgPSBuZXcgT2JqZWN0KCk7DQpjb25maWdNZW51X2VwZ1siX2VsZW1lbnQiXSAgICAgID0gIlNFTEVDVCI7DQpjb25maWdNZW51X2VwZ1siX21lbnVUeXBlIl0gICAgID0gInNpbmdsZUlucHV0IjsNCmNvbmZpZ01lbnVfZXBnWyJfY29uZmlnS2V5Il0gICAgPSAiZXBnU291cmNlIjsNCmNvbmZpZ01lbnVfZXBnWyJfbGFiZWwiXSAgICAgICAgPSAiU2VsZWN0aW9uIG9mIHRoZSBFUEcgc291cmNlIjsNCmNvbmZpZ01lbnVfZXBnWyJuYW1lIl0gICAgICAgICAgPSAiZXBnU291cmNlIjsNCmNvbmZpZ01lbnVfZXBnWyJpZCJdICAgICAgICAgICAgPSAiRVBHIHNvdXJjZSI7DQpjb25maWdNZW51X2VwZ1sicGxhY2Vob2xkZXIiXSAgID0gIkVQRyBzb3VyY2UiOw0KY29uZmlnTWVudV9lcGdbIl9vcHRpb25WYWx1ZXMiXSA9IG5ldyBBcnJheSgiUE1TIiwgIlhFUEciKTsNCmNvbmZpZ01lbnVfZXBnWyJfdXNhZ2UiXSAgICAgICAgPSAiUE1TOiAgIFVzZSBFUEcgZGF0YSBmcm9tIFBsZXggb3IgRW1ieTxicj5YRVBHOiAgVXNlIG9mIGV4dGVybmFsIEVQRyBkYXRhIChYTUxUVik8YnI+ICAgICAgIFNldmVyYWwgWE1MVFYgc291cmNlcyBwb3NzaWJsZTxicj4gICAgICAgQWxsb3dzIGVkaXRpbmcgYW5kIG9yZGVyIGNoYW5uZWxzPGJyPiAgICAgICBNM1UgLyBYTUxUViBleHBvcnQgKEhUVFAgbGluayBmb3IgSVBUViBhcHBzKSINCg0KdmFyIGNvbmZpZ01lbnVfbTN1ID0gbmV3IE9iamVjdCgpOw0KY29uZmlnTWVudV9tM3VbIl9lbGVtZW50Il0gICAgICAgID0gIklOUFVUIjsNCmNvbmZpZ01lbnVfbTN1WyJfbWVudVR5cGUiXSAgICAgICA9ICJpbnB1dEFycmF5IjsNCmNvbmZpZ01lbnVfbTN1WyJfY29uZmlnS2V5Il0gICAgICA9ICJmaWxlIjsNCmNvbmZpZ01lbnVfbTN1WyJfbGFiZWwiXSAgICAgICAgICA9ICJNM1UgRmlsZTogbG9jYWwgb3IgcmVtb3RlIjsNCmNvbmZpZ01lbnVfbTN1WyJuYW1lIl0gICAgICAgICAgICA9ICJmaWxlIjsNCmNvbmZpZ01lbnVfbTN1WyJpZCJdICAgICAgICAgICAgICA9ICJtM3UiOw0KY29uZmlnTWVudV9tM3VbInR5cGUiXSAgICAgICAgICAgID0gInRleHQiOw0KY29uZmlnTWVudV9tM3VbInBsYWNlaG9sZGVyIl0gICAgID0gIk0zVSBGaWxlIjsNCmNvbmZpZ01lbnVfbTN1WyJfdXNhZ2UiXSAgICAgICAgICA9ICJSZW1vdGUgcGxheWxpc3Q6IGh0dHA6Ly95b3VyLnByb3ZpZGVyLmNvbS9maWxlLm0zdTxicj5Mb2NhbCAgcGxheWxpc3Q6IC9wYXRoL3RvL2ZpbGUubTN1Ig0KDQoNCmNvbmZpZ01lbnVfbTN1WyJ2YWx1ZSJdICAgICAgICAgICA9ICJodHRwOi8vd2Vic3J2LmxvY2FsOjgwODAva2FiZWwubTN1IjsNCg0KdmFyIGNvbmZpZ01lbnVfY29tcGxldGUgPSBuZXcgT2JqZWN0KCk7DQpjb25maWdNZW51X2NvbXBsZXRlWyJfZWxlbWVudCJdICAgICAgICA9ICJIMiI7DQpjb25maWdNZW51X2NvbXBsZXRlWyJfbWVudVR5cGUiXSAgICAgICA9ICJpbnB1dEFycmF5IjsNCmNvbmZpZ01lbnVfY29tcGxldGVbIl9jb25maWdLZXkiXSAgICAgID0gImZpbGUiOw0KY29uZmlnTWVudV9jb21wbGV0ZVsiX3RleHQiXSAgICAgICAgICAgPSAieFRlVmUgd2FzIHN1Y2Nlc3NmdWxseSBzZXQgdXAiOw0KY29uZmlnTWVudV9jb21wbGV0ZVsibmFtZSJdICAgICAgICAgICAgPSAiY29tcGxldGUiOw0KY29uZmlnTWVudV9jb21wbGV0ZVsiaWQiXSAgICAgICAgICAgICAgPSAiY29tcGxldGUiOw0KY29uZmlnTWVudV9jb21wbGV0ZVsidHlwZSJdICAgICAgICAgICAgPSAidGV4dCI7DQpjb25maWdNZW51X2NvbXBsZXRlWyJjbGFzcyJdICAgICAgICAgICA9ICJjZW50ZXIiOw0KDQpjb25maWdNZW51WyJ0dW5lciJdICAgICA9IGNvbmZpZ01lbnVfdHVuZXI7DQpjb25maWdNZW51WyJlcGdTb3VyY2UiXSA9IGNvbmZpZ01lbnVfZXBnOw0KY29uZmlnTWVudVsibTN1Il0gICAgICAgPSBjb25maWdNZW51X20zdTsNCmNvbmZpZ01lbnVbImNvbXBsZXRlIl0gID0gY29uZmlnTWVudV9jb21wbGV0ZTsNCg0KZnVuY3Rpb24gcmVhZHlGb3JDb25maWd1cmF0aW9uKCkgew0KICB2YXIgZGF0YSA9IG5ldyBPYmplY3QoKTsNCiAgZGF0YVsiY21kIl0gPSAiZ2V0U2VydmVyQ29uZmlnIjsNCiAgeFRlVmUoZGF0YSk7DQogIHNob3dMb2FkaW5nU2NyZWVuKGZhbHNlKTsNCn0NCg0KZnVuY3Rpb24gY3JlYXRlQ29uZmlndXJhdGlvbihlbG0pIHsNCg0KICBhY3RpdmVXaXphcmQgPSBlbG07DQogIHZhciBpdGVtICA9IGNvbmZpZ01lbnVbZWxtXTsNCg0KICB2YXIgZGl2ICAgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29udGVudCIpOw0KICBkaXYuaW5uZXJIVE1MID0gIiI7DQogIGRpdi5zZXRBdHRyaWJ1dGUoImRhdGEtY29uZmlnS2V5IiwgaXRlbVsiX2NvbmZpZ0tleSJdKTsNCiAgZGl2LnNldEF0dHJpYnV0ZSgiZGF0YS1tZW51VHlwZSIsIGl0ZW1bIl9tZW51VHlwZSJdKTsNCiAgDQogIHN3aXRjaChpdGVtLmhhc093blByb3BlcnR5KCJfbGFiZWwiKSkgew0KICAgIGNhc2UgdHJ1ZToNCiAgICAgIHZhciBuZXdJdGVtID0gbmV3IE9iamVjdCgpOw0KICAgICAgbmV3SXRlbVsiX2VsZW1lbnQiXSA9ICJMQUJFTCI7DQogICAgICBuZXdJdGVtWyJfdGV4dCJdICAgID0gaXRlbVsiX2xhYmVsIl07IA0KICAgICAgbmV3SXRlbVsiZm9yIl0gICAgICA9IGl0ZW1bImlkIl07DQogICAgICBkaXYuYXBwZW5kQ2hpbGQoY3JlYXRlRWxlbWVudChuZXdJdGVtKSk7DQogICAgICBicmVhaw0KICB9DQoNCiAgc3dpdGNoKGl0ZW1bIl9lbGVtZW50Il0pIHsNCiAgICBjYXNlICJTRUxFQ1QiOg0KICAgICAgZGl2LmFwcGVuZENoaWxkKGNyZWF0ZUVsZW1lbnQoaXRlbSkpOw0KICAgICAgdmFyIHNlbGVjdEVsZW1lbnQgPSBkaXYuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlNFTEVDVCIpWzBdOw0KICAgICAgdmFyIHZhbHVlcyA9IGl0ZW1bIl9vcHRpb25WYWx1ZXMiXTsNCiAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdmFsdWVzLmxlbmd0aDsgaSsrKSB7DQogICAgICAgIHZhciBuZXdFbnRyeSA9IG5ldyBPYmplY3Q7DQogICAgICAgIG5ld0VudHJ5WyJfZWxlbWVudCJdICA9ICJPUFRJT04iOw0KICAgICAgICBuZXdFbnRyeVsiX3RleHQiXSAgICAgPSBpdGVtWyJpZCJdICsgIjogIiArIHZhbHVlc1tpXTsNCiAgICAgICAgbmV3RW50cnlbInZhbHVlIl0gICAgID0gdmFsdWVzW2ldOw0KICAgICAgICBzZWxlY3RFbGVtZW50LmFwcGVuZENoaWxkKGNyZWF0ZUVsZW1lbnQobmV3RW50cnkpKTsNCiAgICAgIH0NCiAgICAgIC8vcmV0dXJuDQogICAgICBicmVhazsNCg0KICAgIGRlZmF1bHQ6IA0KICAgICAgZGl2LmFwcGVuZENoaWxkKGNyZWF0ZUVsZW1lbnQoaXRlbSkpOw0KICAgICAgYnJlYWs7DQoNCg0KICB9DQogIC8vYWxlcnQoKQ0KDQogIHN3aXRjaChpdGVtLmhhc093blByb3BlcnR5KCJfdXNhZ2UiKSkgew0KICAgIGNhc2UgdHJ1ZTogDQogICAgICB2YXIgdXNhZ2VJdGVtID0gbmV3IE9iamVjdCgpOw0KICAgICAgdXNhZ2VJdGVtWyJfZWxlbWVudCJdID0gIlBSRSINCiAgICAgIHVzYWdlSXRlbVsiX3RleHQiXSAgICA9IGl0ZW1bIl91c2FnZSJdOw0KICAgICAgZGl2LmFwcGVuZENoaWxkKGNyZWF0ZUVsZW1lbnQodXNhZ2VJdGVtKSk7DQogIH0NCg0KICBpZiAoYWN0aXZlV2l6YXJkID09ICJjb21wbGV0ZSIpIHsNCiAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibmV4dCIpLnZhbHVlID0gIkZpbmlzaGVkIg0KICAgIC8vZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm5leHQiKS5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAiamF2YXNjcmlwdDogbG9jYXRpb24ucmVsb2FkKCk7IikNCiAgfQ0KDQogIC8vZGl2LmFwcGVuZENoaWxkKGNyZWF0ZUVsZW1lbnQoaXRlbSkpOw0KfQ0KDQpmdW5jdGlvbiBzYXZlRGF0YSgpIHsNCg0KICB2YXIgZGl2ICAgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29udGVudCIpOw0KICB2YXIgaW5wdXRzID0gZGl2LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJJTlBVVCIpOw0KICB2YXIgc2VsZWN0cyA9IGRpdi5nZXRFbGVtZW50c0J5VGFnTmFtZSgiU0VMRUNUIik7DQogIHZhciB2YWx1ZTsNCiAgdmFyIGRhdGEgPSBuZXcgT2JqZWN0KCk7DQogIHZhciB2YWx1ZUFyciA9IG5ldyBBcnJheSgpOw0KICB2YXIgbmV3RGF0YSA9IGZhbHNlOw0KDQogIGlmIChhY3RpdmVXaXphcmQgPT0gImNvbXBsZXRlIikgew0KICAgIGRhdGFbImNtZCJdID0gIndpemFyZENvbXBsZXRlZCI7DQogICAgc2hvd0xvYWRpbmdTY3JlZW4odHJ1ZSkNCiAgICB4VGVWZShkYXRhKTsNCiAgICByZXR1cm4NCiAgfQ0KICANCiAgZm9yICh2YXIgaSA9IDA7IGkgPCBpbnB1dHMubGVuZ3RoOyBpKyspIHsNCiAgICB2YXIgbWVudVR5cGUgPSBpbnB1dHNbaV0ucGFyZW50RWxlbWVudC5nZXRBdHRyaWJ1dGUoImRhdGEtbWVudXR5cGUiKTsNCiAgICBpZiAoaW5wdXRzW2ldLnZhbHVlICE9IHVuZGVmaW5lZCAmJiBpbnB1dHNbaV0udmFsdWUgIT0gIiIgKSB7DQogICAgICBuZXdEYXRhID0gdHJ1ZTsNCg0KICAgICAgY29uc29sZS5sb2coaW5wdXRzW2ldLmlkKQ0KICAgICAgc3dpdGNoKGlucHV0c1tpXS5pZCkgew0KICAgICAgICBjYXNlICJtM3UiOiANCiAgICAgICAgICB2YXIgbmV3UGxheWxpc3QgPSBuZXcgT2JqZWN0KCk7DQogICAgICAgICAgbmV3UGxheWxpc3RbImZpbGUuc291cmNlIl0gPSBpbnB1dHNbaV0udmFsdWU7DQogICAgICAgICAgLy9uZXdQbGF5bGlzdFsibmFtZSJdID0gaW5wdXRzW2ldLnZhbHVlOw0KICAgICAgICAgIG5ld1BsYXlsaXN0WyJ0eXBlIl0gPSAibTN1IjsNCiAgICAgICAgICBuZXdQbGF5bGlzdFsibmV3Il0gPSB0cnVlOw0KDQogICAgICAgICAgZGF0YVsiZmlsZXMiXSA9IG5ldyBPYmplY3QoKTsNCiAgICAgICAgICBkYXRhWyJmaWxlcyJdWyJtM3UiXSA9IG5ldyBPYmplY3QoKTsNCiAgICAgICAgICBkYXRhWyJmaWxlcyJdWyJtM3UiXVsiLSJdID0gbmV3UGxheWxpc3Q7DQogICAgICAgICAgDQogICAgICAgICAgZGF0YVsiY21kIl0gPSAic2F2ZUZpbGVzTTNVIjsNCiAgICAgICAgICB4VGVWZShkYXRhKQ0KICAgICAgICAgIHJldHVybg0KICAgICAgfQ0KICAgICAgLyoNCiAgICAgIHN3aXRjaChtZW51VHlwZSkgew0KICAgICAgICBjYXNlICJzaW5nbGVJbnB1dCI6DQogICAgICAgICAgZGF0YVtpbnB1dHNbaV0ubmFtZV0gPSBpbnB1dHNbaV0udmFsdWU7IGJyZWFrOw0KICAgICAgICBjYXNlICJpbnB1dEFycmF5IjogDQogICAgICAgICAgdmFsdWVBcnIucHVzaChpbnB1dHNbaV0udmFsdWUpOw0KICAgICAgICAgIGRhdGFbaW5wdXRzW2ldLm5hbWVdID0gdmFsdWVBcnI7IGJyZWFrDQoNCiAgICAgIH0NCiAgICAgICovDQogICAgfSBlbHNlIHsNCiAgICAgIGlucHV0c1tpXS5zdHlsZS5ib3JkZXJCb3R0b21Db2xvciA9ICJyZWQiOw0KICAgICAgcmV0dXJuOw0KICAgIH0NCiAgfQ0KDQoNCiAgZm9yICh2YXIgaSA9IDA7IGkgPCBzZWxlY3RzLmxlbmd0aDsgaSsrKSB7DQogICAgdmFyIHZhbHVlID0gc2VsZWN0c1tpXS5vcHRpb25zW3NlbGVjdHNbaV0uc2VsZWN0ZWRJbmRleF0udmFsdWU7DQogICAgaWYgKGlzTmFOKHZhbHVlKSA9PSBmYWxzZSkgew0KICAgICAgdmFsdWUgPSBwYXJzZUludCh2YWx1ZSk7DQogICAgICBkYXRhW3NlbGVjdHNbaV0ubmFtZV0gPSB2YWx1ZTsNCiAgICAgIG5ld0RhdGEgPSB0cnVlOw0KICAgICAgYnJlYWs7DQogICAgfQ0KICAgIGRhdGFbc2VsZWN0c1tpXS5uYW1lXSA9IHZhbHVlOw0KICAgIG5ld0RhdGEgPSB0cnVlOw0KICB9DQoNCg0KICAvL2NvbnNvbGUubG9nKGRhdGEsIG5ld0RhdGEpOw0KICBpZiAobmV3RGF0YSA9PSB0cnVlKSB7DQogICAgY29uZmlnID0gZGF0YQ0KICAgIGRhdGFbImNtZCJdID0gInNhdmVDb25maWciOw0KICAgIHhUZVZlKGRhdGEpOw0KICB9DQp9DQoNCmZ1bmN0aW9uIHhUZVZlKGRhdGEpIHsNCg0KICBpZiAod2ViU29ja2V0cyA9PSBmYWxzZSkgew0KICAgIGFsZXJ0KCJZb3VyIGJyb3dzZXIgZG9lcyBub3Qgc3VwcG9ydCBXZWJTb2NrZXRzIik7DQogICAgcmV0dXJuOw0KICB9DQoNCiAgaWYgKGFjdGl2ZVdpemFyZCA9PSAibTN1IiB8fCBhY3RpdmVXaXphcmQgPT0gImVwZ1NvdXJjZSIpIHsNCiAgICBzaG93TG9hZGluZ1NjcmVlbih0cnVlKTsNCiAgfQ0KDQogIHZhciBwcm90b2NvbFdTDQogIHN3aXRjaCh3aW5kb3cubG9jYXRpb24ucHJvdG9jb2wpIHsNCiAgICBjYXNlICJodHRwOiI6ICAgcHJvdG9jb2xXUyA9ICJ3czovLyI7IGJyZWFrOw0KICAgIGNhc2UgImh0dHBzOiI6ICBwcm90b2NvbFdTID0gIndzczovLyI7IGJyZWFrOw0KICB9DQoNCiAgdmFyIHdzID0gbmV3IFdlYlNvY2tldChwcm90b2NvbFdTICsgd2luZG93LmxvY2F0aW9uLmhvc3RuYW1lICsgIjoiICsgd2luZG93LmxvY2F0aW9uLnBvcnQgKyAiL2RhdGEvIiArICI/VG9rZW49IiArIGdldENvb2tpZSgiVG9rZW4iKSk7DQogIA0KICB3cy5vbm9wZW4gPSBmdW5jdGlvbigpIHsNCiAgICB3cy5zZW5kKEpTT04uc3RyaW5naWZ5KGRhdGEpKTsNCiAgfQ0KDQogIHdzLm9ubWVzc2FnZSA9IGZ1bmN0aW9uIChlKSB7DQogICAgDQogICAgdmFyIHJlc3BvbnNlID0gSlNPTi5wYXJzZShlLmRhdGEpOw0KICAgIA0KICAgIGlmIChyZXNwb25zZS5oYXNPd25Qcm9wZXJ0eSgiY2xpZW50SW5mbyIpKSB7DQogICAgICBjcmVhdGVDbGludEluZm8ocmVzcG9uc2VbImNsaWVudEluZm8iXSk7DQogICAgfQ0KDQogICAgaWYgKHJlc3BvbnNlLmhhc093blByb3BlcnR5KCJzdGF0dXMiKSkgew0KICAgICAgaWYgKHJlc3BvbnNlWyJzdGF0dXMiXSA9PSBmYWxzZSkgew0KICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiaGVhZGxpbmUiKS5zdHlsZS5ib3JkZXJDb2xvciA9ICJyZWQiOw0KICAgICAgICBzaG93RXJyKHJlc3BvbnNlWyJlcnIiXSk7DQogICAgICAgIHNob3dMb2FkaW5nU2NyZWVuKGZhbHNlKQ0KICAgICAgICByZXR1cm4NCiAgICAgIH0gZWxzZSB7DQogICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJlcnIiKS5pbm5lckhUTUwgPSAiIjsNCiAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImhlYWRsaW5lIikuc3R5bGUuYm9yZGVyQ29sb3IgPSAibGF3bmdyZWVuIjsNCiAgICAgIH0NCg0KICAgICAgZHZySVAgPSByZXNwb25zZVsiRFZSIl0NCiAgICAgIHN3aXRjaChyZXNwb25zZVsiY29uZmlndXJhdGlvbldpemFyZCJdKSB7DQogICAgICAgIGNhc2UgdHJ1ZTogDQogICAgICAgICAgaWYgKGFjdGl2ZVdpemFyZCA9PSB1bmRlZmluZWQpIHsNCiAgICAgICAgICAgIGFjdGl2ZVdpemFyZCA9IHdpemFyZFswXQ0KICAgICAgICAgIH0NCiAgICAgICAgICB2YXIgbiA9IHdpemFyZC5pbmRleE9mKGFjdGl2ZVdpemFyZCk7DQogICAgICAgICAgbisrOw0KICAgICAgICAgIGFjdGl2ZVdpemFyZCA9IHdpemFyZFtuXQ0KDQogICAgICAgICAgaWYgKGFjdGl2ZVdpemFyZCA9PSB1bmRlZmluZWQpIHsNCiAgICAgICAgICAgIGRhdGFbImNtZCJdID0gIndpemFyZENvbXBsZXRlZCI7DQogICAgICAgICAgICB4VGVWZShkYXRhKQ0KICAgICAgICAgIH0gZWxzZSB7DQogICAgICAgICAgICAvL2NvbnNvbGUubG9nKGFjdGl2ZVdpemFyZCk7DQogICAgICAgICAgICBjcmVhdGVDb25maWd1cmF0aW9uKGFjdGl2ZVdpemFyZCk7IA0KICAgICAgICAgIH0NCiAgICAgICAgICANCiAgICAgICAgYnJlYWs7DQogICAgICB9DQoNCiAgICAgIHN3aXRjaChyZXNwb25zZVsicmVsb2FkIl0pIHsNCiAgICAgICAgDQogICAgICAgIA0KICAgICAgICBjYXNlIHRydWU6IA0KICAgIA0KICAgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKXsgDQogICAgICAgICAgICBsb2NhdGlvbi5yZWxvYWQoKTsNCiAgICAgICAgICB9LCAxMDApOw0KICAgICAgICAgIA0KICAgICAgICAgIC8vbG9jYXRpb24ucmVsb2FkKCk7DQogICAgICAgICAgDQogICAgICAgICAgYnJlYWs7DQogICAgICAgIA0KICAgICAgfQ0KDQogICAgICANCiAgICB9DQoNCiAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7IHNob3dMb2FkaW5nU2NyZWVuKGZhbHNlKTsgfSwgMzAwKTsNCiAgfQ0KICANCn0NCg0KZnVuY3Rpb24gc2hvd0VycihlbG0pIHsNCiAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImVyciIpLmlubmVySFRNTCA9IGVsbTsNCn0=" + webUI["html/js/logs_ts.js"] = "dmFyIExvZyA9IC8qKiBAY2xhc3MgKi8gKGZ1bmN0aW9uICgpIHsNCiAgICBmdW5jdGlvbiBMb2coKSB7DQogICAgfQ0KICAgIExvZy5wcm90b3R5cGUuY3JlYXRlTG9nID0gZnVuY3Rpb24gKGVudHJ5KSB7DQogICAgICAgIHZhciBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiUFJFIik7DQogICAgICAgIGlmIChlbnRyeS5pbmRleE9mKCJXQVJOSU5HIikgIT0gLTEpIHsNCiAgICAgICAgICAgIGVsZW1lbnQuY2xhc3NOYW1lID0gIndhcm5pbmdNc2ciOw0KICAgICAgICB9DQogICAgICAgIGlmIChlbnRyeS5pbmRleE9mKCJFUlJPUiIpICE9IC0xKSB7DQogICAgICAgICAgICBlbGVtZW50LmNsYXNzTmFtZSA9ICJlcnJvck1zZyI7DQogICAgICAgIH0NCiAgICAgICAgaWYgKGVudHJ5LmluZGV4T2YoIkRFQlVHIikgIT0gLTEpIHsNCiAgICAgICAgICAgIGVsZW1lbnQuY2xhc3NOYW1lID0gImRlYnVnTXNnIjsNCiAgICAgICAgfQ0KICAgICAgICBlbGVtZW50LmlubmVySFRNTCA9IGVudHJ5Ow0KICAgICAgICByZXR1cm4gZWxlbWVudDsNCiAgICB9Ow0KICAgIHJldHVybiBMb2c7DQp9KCkpOw0KZnVuY3Rpb24gc2hvd0xvZ3MoYm90dG9tKSB7DQogICAgdmFyIGxvZyA9IG5ldyBMb2coKTsNCiAgICB2YXIgbG9ncyA9IFNFUlZFUlsibG9nIl1bImxvZyJdOw0KICAgIHZhciBkaXYgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29udGVudF9sb2ciKTsNCiAgICBkaXYuaW5uZXJIVE1MID0gIiI7DQogICAgdmFyIGtleXMgPSBnZXRPYmpLZXlzKGxvZ3MpOw0KICAgIGtleXMuZm9yRWFjaChmdW5jdGlvbiAobG9nSUQpIHsNCiAgICAgICAgdmFyIGVudHJ5ID0gbG9nLmNyZWF0ZUxvZyhsb2dzW2xvZ0lEXSk7DQogICAgICAgIGRpdi5hcHBlbmQoZW50cnkpOw0KICAgIH0pOw0KICAgIHNldFRpbWVvdXQoZnVuY3Rpb24gKCkgew0KICAgICAgICBpZiAoYm90dG9tID09IHRydWUpIHsNCiAgICAgICAgICAgIHZhciB3cmFwcGVyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImJveC13cmFwcGVyIik7DQogICAgICAgICAgICB3cmFwcGVyLnNjcm9sbFRvcCA9IHdyYXBwZXIuc2Nyb2xsSGVpZ2h0Ow0KICAgICAgICB9DQogICAgfSwgMTApOw0KfQ0KZnVuY3Rpb24gcmVzZXRMb2dzKCkgew0KICAgIHZhciBjbWQgPSAicmVzZXRMb2dzIjsNCiAgICB2YXIgZGF0YSA9IG5ldyBPYmplY3QoKTsNCiAgICB2YXIgc2VydmVyID0gbmV3IFNlcnZlcihjbWQpOw0KICAgIHNlcnZlci5yZXF1ZXN0KGRhdGEpOw0KfQ0K" + webUI["html/img/log.png"] = "iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAAAXNSR0IArs4c6QAAAAlwSFlzAAAsSwAALEsBpT2WqQAABCRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IlhNUCBDb3JlIDUuNC4wIj4KICAgPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIgogICAgICAgICAgICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgICAgICAgICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyI+CiAgICAgICAgIDx0aWZmOlJlc29sdXRpb25Vbml0PjI8L3RpZmY6UmVzb2x1dGlvblVuaXQ+CiAgICAgICAgIDx0aWZmOkNvbXByZXNzaW9uPjU8L3RpZmY6Q29tcHJlc3Npb24+CiAgICAgICAgIDx0aWZmOlhSZXNvbHV0aW9uPjI4ODwvdGlmZjpYUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6T3JpZW50YXRpb24+MTwvdGlmZjpPcmllbnRhdGlvbj4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+Mjg4PC90aWZmOllSZXNvbHV0aW9uPgogICAgICAgICA8ZXhpZjpQaXhlbFhEaW1lbnNpb24+NTA8L2V4aWY6UGl4ZWxYRGltZW5zaW9uPgogICAgICAgICA8ZXhpZjpDb2xvclNwYWNlPjE8L2V4aWY6Q29sb3JTcGFjZT4KICAgICAgICAgPGV4aWY6UGl4ZWxZRGltZW5zaW9uPjUwPC9leGlmOlBpeGVsWURpbWVuc2lvbj4KICAgICAgICAgPGRjOnN1YmplY3Q+CiAgICAgICAgICAgIDxyZGY6QmFnLz4KICAgICAgICAgPC9kYzpzdWJqZWN0PgogICAgICAgICA8eG1wOk1vZGlmeURhdGU+MjAxOC0xMC0xNFQxMToxMDo0MjwveG1wOk1vZGlmeURhdGU+CiAgICAgICAgIDx4bXA6Q3JlYXRvclRvb2w+UGl4ZWxtYXRvciAzLjM8L3htcDpDcmVhdG9yVG9vbD4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgIDwvcmRmOlJERj4KPC94OnhtcG1ldGE+CkP32mEAAANASURBVGgF7ZlPiE1RHMffw1AYhiL5k1HEijJiYaFZiHoyFspW2RFRkkSZGgtFWJIwi9FYmo0VOywkKTbKgjSlWcifRCPX51dv6s2d33md77vvXjfmV9859/7u93x/v98959x73p1KRbAkSargAhgDH0E/qIYkuHYEvAPGvwbmNOEerXM/0Q6BRSFuZj/ix0DaDnvCkGppIucDAe4OhzvkcUO+GaELAf8ux7/b8Zlrr+Pvc3zm6nX8NccXdKmFLHaUPJ/Ruhyu5zNap8Nd6PiCLrUQTyi0Rjy/5/M0Zd+smB7M32XwtgBr07aC6yfSTs7XO77OALfH4VbgHsD/HLytVquJx4nyIdQFBsHftscksK5Z0sGhpuN8Or4Aa5sJFHjtO7G2MjKvvZjN1sglOpSlCMt9LrDZ4S4Hd0Qg24vrK+gAZbPtjMqTdFKhEdkIsYxFWP720JlioUK6pzDL41jtpRIqxOOWxecuB3fhRGT8E85YBK8VygI6GSRTCxlH3TaJgyw4O2678aCxO94LbNPovYDdmOrUukIBN/MqwjJEOwGPOHR31W4VONVCLEBR9lAJpBbSrYhn5K5R+quFnGUOr1ICtMIlxjz6XVb6qot9JeKvCPSAdlQJJHDtd8hOIN0wtRDLxx6Ntr0ulalTq1TJNyYzXUjj3SjD8X87Iva7uR8s5+2bi6FtX1oOgi8g2tSn1g2yPx+t3gIR/c90s1+C1vuO/YkxdWrdjxFtE2dE0VELWaqIZ+QuUfqrhZxmyKUvgEoyE1xizOR4YOI8plXXyAZEbYsyTJvXFsUW+x6wGUSbWogJ237rZHSEgojq1CooLT3MdCH6Pcu3xz8zIq0s9lvc2+sgz6dWH/rnQPB/jlybZGoh99hCHJqk0P6TD0jaI/4b7dVYeXVq2bemokyKpRZiHwWKMimWWshxhryjoEpOKXHUNbIN8WcUc5s2r8Vue7l9oAaiTS3EhDeB6EUYnUlGojq1MobLr3uokB/5hcys7OYWKuRl5nD5Cbi5uYXw0ntPHoay2S8Seuol5RZSJ0r/n/DEc/BdrN9kTZrH7BkwDspgwyQxW6uggU3nHnAXvAG/QZE2SrARsL8hJffwDxM0mNDPvT8IAAAAAElFTkSuQmCC" + webUI["html/js/configuration_ts.js"] = "dmFyIF9fZXh0ZW5kcyA9ICh0aGlzICYmIHRoaXMuX19leHRlbmRzKSB8fCAoZnVuY3Rpb24gKCkgew0KICAgIHZhciBleHRlbmRTdGF0aWNzID0gZnVuY3Rpb24gKGQsIGIpIHsNCiAgICAgICAgZXh0ZW5kU3RhdGljcyA9IE9iamVjdC5zZXRQcm90b3R5cGVPZiB8fA0KICAgICAgICAgICAgKHsgX19wcm90b19fOiBbXSB9IGluc3RhbmNlb2YgQXJyYXkgJiYgZnVuY3Rpb24gKGQsIGIpIHsgZC5fX3Byb3RvX18gPSBiOyB9KSB8fA0KICAgICAgICAgICAgZnVuY3Rpb24gKGQsIGIpIHsgZm9yICh2YXIgcCBpbiBiKSBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGIsIHApKSBkW3BdID0gYltwXTsgfTsNCiAgICAgICAgcmV0dXJuIGV4dGVuZFN0YXRpY3MoZCwgYik7DQogICAgfTsNCiAgICByZXR1cm4gZnVuY3Rpb24gKGQsIGIpIHsNCiAgICAgICAgZXh0ZW5kU3RhdGljcyhkLCBiKTsNCiAgICAgICAgZnVuY3Rpb24gX18oKSB7IHRoaXMuY29uc3RydWN0b3IgPSBkOyB9DQogICAgICAgIGQucHJvdG90eXBlID0gYiA9PT0gbnVsbCA/IE9iamVjdC5jcmVhdGUoYikgOiAoX18ucHJvdG90eXBlID0gYi5wcm90b3R5cGUsIG5ldyBfXygpKTsNCiAgICB9Ow0KfSkoKTsNCnZhciBXaXphcmRDYXRlZ29yeSA9IC8qKiBAY2xhc3MgKi8gKGZ1bmN0aW9uICgpIHsNCiAgICBmdW5jdGlvbiBXaXphcmRDYXRlZ29yeSgpIHsNCiAgICAgICAgdGhpcy5Eb2N1bWVudElEID0gImNvbnRlbnQiOw0KICAgIH0NCiAgICBXaXphcmRDYXRlZ29yeS5wcm90b3R5cGUuY3JlYXRlQ2F0ZWdvcnlIZWFkbGluZSA9IGZ1bmN0aW9uICh2YWx1ZSkgew0KICAgICAgICB2YXIgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIkg0Iik7DQogICAgICAgIGVsZW1lbnQuaW5uZXJIVE1MID0gdmFsdWU7DQogICAgICAgIHJldHVybiBlbGVtZW50Ow0KICAgIH07DQogICAgcmV0dXJuIFdpemFyZENhdGVnb3J5Ow0KfSgpKTsNCnZhciBXaXphcmRJdGVtID0gLyoqIEBjbGFzcyAqLyAoZnVuY3Rpb24gKF9zdXBlcikgew0KICAgIF9fZXh0ZW5kcyhXaXphcmRJdGVtLCBfc3VwZXIpOw0KICAgIGZ1bmN0aW9uIFdpemFyZEl0ZW0oa2V5LCBoZWFkbGluZSkgew0KICAgICAgICB2YXIgX3RoaXMgPSBfc3VwZXIuY2FsbCh0aGlzKSB8fCB0aGlzOw0KICAgICAgICBfdGhpcy5oZWFkbGluZSA9IGhlYWRsaW5lOw0KICAgICAgICBfdGhpcy5rZXkgPSBrZXk7DQogICAgICAgIHJldHVybiBfdGhpczsNCiAgICB9DQogICAgV2l6YXJkSXRlbS5wcm90b3R5cGUuY3JlYXRlV2l6YXJkID0gZnVuY3Rpb24gKCkgew0KICAgICAgICB2YXIgaGVhZGxpbmUgPSB0aGlzLmNyZWF0ZUNhdGVnb3J5SGVhZGxpbmUodGhpcy5oZWFkbGluZSk7DQogICAgICAgIHZhciBrZXkgPSB0aGlzLmtleTsNCiAgICAgICAgdmFyIGNvbnRlbnQgPSBuZXcgUG9wdXBDb250ZW50KCk7DQogICAgICAgIHZhciBkZXNjcmlwdGlvbjsNCiAgICAgICAgdmFyIGRvYyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHRoaXMuRG9jdW1lbnRJRCk7DQogICAgICAgIGRvYy5pbm5lckhUTUwgPSAiIjsNCiAgICAgICAgZG9jLmFwcGVuZENoaWxkKGhlYWRsaW5lKTsNCiAgICAgICAgc3dpdGNoIChrZXkpIHsNCiAgICAgICAgICAgIGNhc2UgInR1bmVyIjoNCiAgICAgICAgICAgICAgICB2YXIgdGV4dCA9IG5ldyBBcnJheSgpOw0KICAgICAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBuZXcgQXJyYXkoKTsNCiAgICAgICAgICAgICAgICBmb3IgKHZhciBpID0gMTsgaSA8PSAxMDA7IGkrKykgew0KICAgICAgICAgICAgICAgICAgICB0ZXh0LnB1c2goaSk7DQogICAgICAgICAgICAgICAgICAgIHZhbHVlcy5wdXNoKGkpOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCAiMSIsIGtleSk7DQogICAgICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgiY2xhc3MiLCAid2l6YXJkIik7DQogICAgICAgICAgICAgICAgc2VsZWN0LmlkID0ga2V5Ow0KICAgICAgICAgICAgICAgIGRvYy5hcHBlbmRDaGlsZChzZWxlY3QpOw0KICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uID0gInt7LndpemFyZC50dW5lci5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImVwZ1NvdXJjZSI6DQogICAgICAgICAgICAgICAgdmFyIHRleHQgPSBbIlBNUyIsICJYRVBHIl07DQogICAgICAgICAgICAgICAgdmFyIHZhbHVlcyA9IFsiUE1TIiwgIlhFUEciXTsNCiAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCAiWEVQRyIsIGtleSk7DQogICAgICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgiY2xhc3MiLCAid2l6YXJkIik7DQogICAgICAgICAgICAgICAgc2VsZWN0LmlkID0ga2V5Ow0KICAgICAgICAgICAgICAgIGRvYy5hcHBlbmRDaGlsZChzZWxlY3QpOw0KICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uID0gInt7LndpemFyZC5lcGdTb3VyY2UuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJtM3UiOg0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBrZXksICIiKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LndpemFyZC5tM3UucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgiY2xhc3MiLCAid2l6YXJkIik7DQogICAgICAgICAgICAgICAgaW5wdXQuaWQgPSBrZXk7DQogICAgICAgICAgICAgICAgZG9jLmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbiA9ICJ7ey53aXphcmQubTN1LmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAieG1sdHYiOg0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBrZXksICIiKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LndpemFyZC54bWx0di5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJjbGFzcyIsICJ3aXphcmQiKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5pZCA9IGtleTsNCiAgICAgICAgICAgICAgICBkb2MuYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uID0gInt7LndpemFyZC54bWx0di5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICAgICAgY29uc29sZS5sb2coa2V5KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgfQ0KICAgICAgICB2YXIgcHJlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiUFJFIik7DQogICAgICAgIHByZS5pbm5lckhUTUwgPSBkZXNjcmlwdGlvbjsNCiAgICAgICAgZG9jLmFwcGVuZENoaWxkKHByZSk7DQogICAgICAgIGNvbnNvbGUubG9nKGhlYWRsaW5lLCBrZXkpOw0KICAgIH07DQogICAgcmV0dXJuIFdpemFyZEl0ZW07DQp9KFdpemFyZENhdGVnb3J5KSk7DQpmdW5jdGlvbiByZWFkeUZvckNvbmZpZ3VyYXRpb24od2l6YXJkKSB7DQogICAgdmFyIHNlcnZlciA9IG5ldyBTZXJ2ZXIoImdldFNlcnZlckNvbmZpZyIpOw0KICAgIHNlcnZlci5yZXF1ZXN0KG5ldyBPYmplY3QoKSk7DQogICAgc2hvd0VsZW1lbnQoImxvYWRpbmciLCBmYWxzZSk7DQogICAgY29uZmlndXJhdGlvbldpemFyZFt3aXphcmRdLmNyZWF0ZVdpemFyZCgpOw0KfQ0KZnVuY3Rpb24gc2F2ZVdpemFyZCgpIHsNCiAgICB2YXIgY21kID0gInNhdmVXaXphcmQiOw0KICAgIHZhciBkaXYgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29udGVudCIpOw0KICAgIHZhciBjb25maWcgPSBkaXYuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSgid2l6YXJkIik7DQogICAgdmFyIHdpemFyZCA9IG5ldyBPYmplY3QoKTsNCiAgICBmb3IgKHZhciBpID0gMDsgaSA8IGNvbmZpZy5sZW5ndGg7IGkrKykgew0KICAgICAgICB2YXIgbmFtZTsNCiAgICAgICAgdmFyIHZhbHVlOw0KICAgICAgICBzd2l0Y2ggKGNvbmZpZ1tpXS50YWdOYW1lKSB7DQogICAgICAgICAgICBjYXNlICJTRUxFQ1QiOg0KICAgICAgICAgICAgICAgIG5hbWUgPSBjb25maWdbaV0ubmFtZTsNCiAgICAgICAgICAgICAgICB2YWx1ZSA9IGNvbmZpZ1tpXS52YWx1ZTsNCiAgICAgICAgICAgICAgICAvLyBXZW5uIGRlciBXZXJ0IGVpbmUgWmFobCBpc3QsIHdpcmQgZGllc2VyIGFscyBaYWhsIGdlc3BlaWNoZXJ0DQogICAgICAgICAgICAgICAgaWYgKGlzTmFOKHZhbHVlKSkgew0KICAgICAgICAgICAgICAgICAgICB3aXphcmRbbmFtZV0gPSB2YWx1ZTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgZWxzZSB7DQogICAgICAgICAgICAgICAgICAgIHdpemFyZFtuYW1lXSA9IHBhcnNlSW50KHZhbHVlKTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJJTlBVVCI6DQogICAgICAgICAgICAgICAgc3dpdGNoIChjb25maWdbaV0udHlwZSkgew0KICAgICAgICAgICAgICAgICAgICBjYXNlICJ0ZXh0IjoNCiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWUgPSBjb25maWdbaV0ubmFtZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlID0gY29uZmlnW2ldLnZhbHVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHZhbHVlLmxlbmd0aCA9PSAwKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIG1zZyA9IG5hbWUudG9VcHBlckNhc2UoKSArICI6ICIgKyAie3suYWxlcnQubWlzc2luZ0lucHV0fX0iOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFsZXJ0KG1zZyk7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuOw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgd2l6YXJkW25hbWVdID0gdmFsdWU7DQogICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBkZWZhdWx0Og0KICAgICAgICAgICAgICAgIC8vIGNvZGUuLi4NCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgfQ0KICAgIH0NCiAgICB2YXIgZGF0YSA9IG5ldyBPYmplY3QoKTsNCiAgICBkYXRhWyJ3aXphcmQiXSA9IHdpemFyZDsNCiAgICB2YXIgc2VydmVyID0gbmV3IFNlcnZlcihjbWQpOw0KICAgIHNlcnZlci5yZXF1ZXN0KGRhdGEpOw0KICAgIGNvbnNvbGUubG9nKGRhdGEpOw0KfQ0KLy8gV2l6YXJkDQp2YXIgY29uZmlndXJhdGlvbldpemFyZCA9IG5ldyBBcnJheSgpOw0KY29uZmlndXJhdGlvbldpemFyZC5wdXNoKG5ldyBXaXphcmRJdGVtKCJ0dW5lciIsICJ7ey53aXphcmQudHVuZXIudGl0bGV9fSIpKTsNCmNvbmZpZ3VyYXRpb25XaXphcmQucHVzaChuZXcgV2l6YXJkSXRlbSgiZXBnU291cmNlIiwgInt7LndpemFyZC5lcGdTb3VyY2UudGl0bGV9fSIpKTsNCmNvbmZpZ3VyYXRpb25XaXphcmQucHVzaChuZXcgV2l6YXJkSXRlbSgibTN1IiwgInt7LndpemFyZC5tM3UudGl0bGV9fSIpKTsNCmNvbmZpZ3VyYXRpb25XaXphcmQucHVzaChuZXcgV2l6YXJkSXRlbSgieG1sdHYiLCAie3sud2l6YXJkLnhtbHR2LnRpdGxlfX0iKSk7DQo=" + webUI["html/css/base.css"] = "KiB7DQogIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTsNCiAgLW1vei1hcHBlYXJhbmNlOiBub25lOw0KICAtbXMtYXBwZWFyYW5jZTogbm9uZTsNCiAgZm9udC1mYW1pbHk6ICJBcmlhbCIsIHNhbnMtc2VyaWY7DQogIGxldHRlci1zcGFjaW5nOiAycHg7IA0KfQ0KDQovKg0KOjotd2Via2l0LXNjcm9sbGJhciB7IA0KICAgIGRpc3BsYXk6IG5vbmU7IA0KfQ0KKi8NCg0KOjotd2Via2l0LXNjcm9sbGJhciB7DQogIHdpZHRoOiAxMnB4Ow0KICBoZWlnaHQ6IDEycHg7DQp9DQoNCiANCjo6LXdlYmtpdC1zY3JvbGxiYXItdHJhY2sgew0KICAtd2Via2l0LWJveC1zaGFkb3c6IGluc2V0IDAgMCA2cHggcmdiYSgwLDAsMCwwLjMpOyANCiAgYm9yZGVyLXJhZGl1czogNXB4Ow0KICAgIA0KfQ0KIA0KOjotd2Via2l0LXNjcm9sbGJhci10aHVtYiB7DQogIGJvcmRlci1yYWRpdXM6IDVweDsNCiAgLXdlYmtpdC1ib3gtc2hhZG93OiBpbnNldCAwIDAgNnB4IHJnYmEoMCwgMCwgMCwwLjYpOyANCiAgYmFja2dyb3VuZC1jb2xvcjogIzQ0NDsNCn0NCg0KOjotd2Via2l0LXNjcm9sbGJhci10aHVtYjpob3ZlciB7DQogIGJhY2tncm91bmQ6ICMzMzM7IA0KfQ0KDQo6Oi13ZWJraXQtc2Nyb2xsYmFyLWNvcm5lciB7IA0KICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsgDQp9DQoNCmEgew0KICBjb2xvcjogIzAwRTZGRjsNCn0NCg0KaHRtbCwgYm9keSB7DQogIGNvbG9yOiAjZmZmOw0KICBtYXJnaW46IDBweCBhdXRvOw0KICBoZWlnaHQ6IDEwMCU7DQogIGZvbnQtc2l6ZTogMTRweDsNCn0NCg0KaDIgew0KICBmb250LXNpemU6IDI0cHg7DQogIGxldHRlci1zcGFjaW5nOiAycHg7DQp9DQoNCmgzIHsNCiAgZm9udC1zaXplOiAyMnB4Ow0KICBsZXR0ZXItc3BhY2luZzogMXB4Ow0KfQ0KDQpoNCB7DQogIGZvbnQtc2l6ZTogMjBweDsNCiAgbGV0dGVyLXNwYWNpbmc6IDFweDsNCiAgbGluZS1oZWlnaHQ6IDEuNWVtOw0KDQp9DQoNCmg1IHsNCiAgZm9udC1zaXplOiAxNnB4Ow0KICBsZXR0ZXItc3BhY2luZzogMXB4Ow0KICBsaW5lLWhlaWdodDogMS4yZW07DQogIG1hcmdpbjogMjVweCAwcHggMTBweCAwcHg7DQp9DQoNCmhyIHsNCiAgYm9yZGVyOiAwOw0KICBoZWlnaHQ6IDFweDsNCiAgYmFja2dyb3VuZDogIzMzMzsNCiAgbWFyZ2luOiAxMHB4IDBweDsNCn0NCg0KcCB7DQogIG1hcmdpbjogMnB4Ow0KICBwYWRkaW5nOiAycHggNXB4Ow0KfQ0KDQpwcmUgew0KICBtYXJnaW46IDBweCAwcHggNXB4IDBweDsNCiAgZm9udC1zaXplOiAxMnB4Ow0KICBjb2xvcjogI2RkZDsNCiAgbGV0dGVyLXNwYWNpbmc6IDFweDsNCiAgd2hpdGUtc3BhY2U6IHByZS13cmFwOw0KICBmb250LWZhbWlseTogbW9ub3NwYWNlOyANCiAgZm9udC1zaXplOiAxMnB4OyANCiAgZm9udC1zdHlsZTogbm9ybWFsOyANCiAgZm9udC12YXJpYW50OiBub3JtYWw7IA0KICBsaW5lLWhlaWdodDogMS42ZW07IA0KfQ0KDQpsYWJlbCB7DQogIG1hcmdpbi1ib3R0b206IDIwcHg7DQogIGRpc3BsYXk6IGJsb2NrOw0KfQ0KDQpsaSB7DQogIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTsNCiAgYmFja2dyb3VuZC1jb2xvcjogIzExMTsNCiAgcGFkZGluZzogMTBweCAyMHB4Ow0KICBjdXJzb3I6IHBvaW50ZXI7DQogIGJvcmRlci1sZWZ0OiBzb2xpZCAycHggIzExMTsNCiAgdHJhbnNpdGlvbjogYWxsIDAuMzsNCn0NCg0KbGk6aG92ZXIgew0KICBib3JkZXItY29sb3I6ICMwMEU2RkYNCn0NCg0Kc2VsZWN0IHsNCiAgY3Vyc29yOiBwb2ludGVyOw0KICB3aWR0aDogY2FsYygxMDAlICsgMnB4KTsNCiAgYm9yZGVyOiBzb2xpZCAwcHggIzAwRTZGRjsNCiAgYm9yZGVyLXJhZGl1czogMHB4Ow0KICBvdXRsaW5lOiBub25lOw0KICBjb2xvcjogI2ZmZjsNCiAgcGFkZGluZzogOXB4IDEwcHg7DQogIGRpc3BsYXk6YmxvY2s7DQogIGJhY2tncm91bmQtY29sb3I6ICMzMzM7DQogIGZvbnQtc2l6ZTogMTRweDsNCiAgbWFyZ2luOiA1cHggMHB4IDVweCAwcHg7DQp9DQoNCnNlbGVjdDpmb2N1cyB7DQogIG91dGxpbmU6IG5vbmU7DQp9DQoNCmlucHV0IHsNCiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lOw0KICBtYXJnaW46IDVweCAwcHg7DQogIHBhZGRpbmc6IDIuNXB4IDEwcHg7DQogIG91dGxpbmU6IG5vbmU7DQogIGZvbnQtc2l6ZTogMTRweDsNCn0NCg0KaW5wdXRbdHlwZT1idXR0b25dLCBpbnB1dFt0eXBlPXN1Ym1pdF0gew0KICBjdXJzb3I6IHBvaW50ZXI7DQogIGJhY2tncm91bmQtY29sb3I6ICMwMDA7DQogIG1hcmdpbjogMTBweCAxMHB4Ow0KICBwYWRkaW5nOiAxMHB4IDI1cHg7DQogIGJvcmRlcjogc29saWQgMHB4Ow0KICBib3JkZXItY29sb3I6ICMwMDA7DQogIGJvcmRlci1yYWRpdXM6IDNweDsNCiAgb3V0bGluZTogbm9uZTsNCiAgY29sb3I6ICNmZmY7DQp9DQoNCmlucHV0W3R5cGU9YnV0dG9uXTpmb2N1cyB7IA0KICAgb3V0bGluZTogbm9uZTsNCn0NCg0KaW5wdXRbdHlwZT1idXR0b25dOmhvdmVyIHsNCiAgYmFja2dyb3VuZC1jb2xvcjogIzAwRTZGRjsNCiAgY29sb3I6ICMwMDA7DQp9DQoNCmlucHV0W3R5cGU9YnV0dG9uXTpob3Zlci5kZWxldGUgIHsNCiAgYmFja2dyb3VuZC1jb2xvcjogcmVkOw0KICBjb2xvcjogI2ZmZjsNCn0NCg0KaW5wdXRbdHlwZT10ZXh0XSwgaW5wdXRbdHlwZT1zZWFyY2hdLCBpbnB1dFt0eXBlPXBhc3N3b3JkXSB7DQogIGNvbG9yOiAjZmZmOw0KICB3aWR0aDogLXdlYmtpdC1jYWxjKDEwMCUgLSAwcHgpOw0KICB3aWR0aDogLW1vei1jYWxjKDEwMCUgLSAwcHgpOw0KICB3aWR0aDogY2FsYygxMDAlIC0gMHB4KTsNCiAgb3V0bGluZTogbm9uZTsNCiAgYm9yZGVyOiBzb2xpZCAxcHggdHJhbnNwYXJlbnQ7DQogIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50Ow0KICBib3JkZXItYm90dG9tLWNvbG9yOiAjNTU1Ow0KICBib3JkZXItcmFkaXVzOiAwcHg7DQogIHBhZGRpbmc6IDhweCAxMHB4Ow0KfQ0KDQppbnB1dFt0eXBlPSJjaGVja2JveCJdIHsNCiAgYm9yZGVyOiBzb2xpZCAxcHggIzAwRTZGRjsNCiAgYmFja2dyb3VuZC1jb2xvcjogIzMzMzsNCiAgaGVpZ2h0OiAyNXB4Ow0KICB3aWR0aDogMjVweDsNCiAgY3Vyc29yOiBwb2ludGVyOw0KICAvKg0KICAtd2Via2l0LWFwcGVhcmFuY2U6IGNoZWNrYm94Ow0KICAqLw0KfQ0KDQppbnB1dFt0eXBlPSJjaGVja2JveCJdOmNoZWNrZWQgew0KICBjb2xvcjogI2ZmZjsNCiAgYmFja2dyb3VuZC1jb2xvcjogIzAwRTZGRjsNCiAgLypkaXNwbGF5OiBpbmxpbmUtYmxvY2s7Ki8NCn0NCg0KaW5wdXRbdHlwZT0iY2hlY2tib3giXTpiZWZvcmUgew0KICBwb3NpdGlvbjogaW5pdGlhbDsNCiAgbGVmdDogMHB4Ow0KICBtYXJnaW4tbGVmdDogLTRweDsNCiAgY29udGVudDogIiAiOw0KfQ0KDQppbnB1dFt0eXBlPSJjaGVja2JveCJdOmNoZWNrZWQ6YmVmb3JlIHsNCiAgcG9zaXRpb246IGluaXRpYWw7DQogIGxlZnQ6IDBweDsNCiAgbWFyZ2luLWxlZnQ6IC0zcHg7DQogIGNvbnRlbnQ6ICLinJMiOw0KICBjb2xvcjogIzAwMDsNCn0NCg0KDQppbnB1dFt0eXBlPWJ1dHRvbl0uY2FuY2VsIHsNCiAgDQogIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50Ow0KICBib3JkZXItY29sb3I6IHJlZDsNCn0NCg0KaW5wdXRbdHlwZT1idXR0b25dLnNhdmV7DQogIGJhY2tncm91bmQtY29sb3I6ICMxMTE7DQogIGZsb2F0OiByaWdodDsNCn0NCg0KDQppbnB1dFt0eXBlPWJ1dHRvbl0uYmxhY2ssIGlucHV0W3R5cGU9c3VibWl0XS5ibGFja3sNCiAgYmFja2dyb3VuZC1jb2xvcjogIzAwMDsNCiAgYm9yZGVyLWNvbG9yOiAjMDAwOw0KfQ0KDQppbnB1dFt0eXBlPWJ1dHRvbl0uY2VudGVyew0KICBtYXJnaW4tcmlnaHQ6IGF1dG87DQogIG1hcmdpbi1sZWZ0OiBhdXRvOw0KICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDAwOw0KICBib3JkZXItY29sb3I6ICMwMDA7DQp9DQoNCi5wb2ludGVyIHsNCiAgY3Vyc29yOiBwb2ludGVyOw0KfQ0KDQoucG9pbnRlcjpob3ZlciB7DQogIGNvbG9yOiAjMDBFNkZGOw0KICBjdXJzb3I6IHBvaW50ZXI7DQp9DQoNCi5zb3J0VGhpcyB7DQogIGNvbG9yOiAjMDBFNkZGOw0KfQ0KDQoudzQwcHggew0KICBtYXgtd2lkdGg6IDQwcHg7DQp9DQoNCi53NTBweCB7DQogIG1heC13aWR0aDogNTBweDsNCn0NCg0KLnc4MHB4IHsNCiAgbWF4LXdpZHRoOiA4MHB4Ow0KfQ0KDQoudzE1MHB4IHsNCiAgbWF4LXdpZHRoOiAxNTBweDsNCn0NCg0KLncyMDBweCB7DQogIG1heC13aWR0aDogMjAwcHg7DQogIG1pbi13aWR0aDogMTAwcHg7DQogIHdpZHRoOiAyMDBweDsNCiAgb3ZlcmZsb3cteDogaGlkZGVuOw0KICB3aGl0ZS1zcGFjZTogbm93cmFwOw0KICBvdmVyZmxvdzogaGlkZGVuOw0KICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsNCn0NCg0KLnczMDBweCB7DQogIG1heC13aWR0aDogMzAwcHg7DQp9DQoNCi53MjIwcHggew0KICBtYXgtd2lkdGg6IDIyMHB4Ow0KICBjdXJzb3I6IGFsaWFzOw0KfQ0KDQouZm9vdGVyIHsNCiAgZm9udC1zaXplOiAxMHB4Ow0KfQ0KDQouY2VudGVyIHsNCiAgdGV4dC1hbGlnbjogY2VudGVyOw0KfQ0KDQouc2NyZWVuTG9nSGlkZGVuIHsNCiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMHB4LCAtMTEwcHgpOw0KfQ0KDQouYm9yZGVyU3BhY2Ugew0KICBtYXJnaW4tYm90dG9tOiAzMHB4Ow0KfQ0KDQouYmxvY2sgew0KDQp9DQoNCi5ub25lIHsNCiAgZGlzcGxheTogbm9uZTsNCn0NCg0KDQoubm90VmlzaWJsZSB7DQogIGhlaWdodDogMHB4Ow0KICBkaXNwbGF5OiBub25lOw0KICBvcGFjaXR5OiAwOw0KICBib3JkZXItYm90dG9tOiAjMDAwIHNvbGlkIDBweDsNCiAgDQp9DQoNCi52aXNpYmxlIHsNCiAgb3BhY2l0eTogMTsNCiAgZGlzcGxheTogYmxvY2s7DQogIGJvcmRlci1ib3R0b206ICM0NDQgc29saWQgMXB4OyANCiAgcGFkZGluZzogMTBweDsNCn0NCg0KLmZsb2F0UmlnaHQgew0KICBmbG9hdDogcmlnaHQ7DQp9DQoNCi5mbG9hdExlZnQgew0KICBmbG9hdDogbGVmdDsNCn0NCg0KLm1lbnUtYWN0aXZlIHsNCiAgYmFja2dyb3VuZC1jb2xvcjogIzAwRTZGRjsNCn0NCg0KLm1lbnUtbm90QWN0aXZlIHsNCiAgDQp9DQoNCiNicmFuY2ggew0KICBkaXNwbGF5OiB0YWJsZTsNCiAgbWFyZ2luOiBhdXRvOw0KICBjb2xvcjogcmVkOw0KfQ0KDQojaW50ZXJhY3Rpb24gew0KICBtYXJnaW4tYm90dG9tOiAxMDBweDsNCiAgdGV4dC1hbGlnbjogY2VudGVyOw0KICBib3JkZXItYm90dG9tOiBzb2xpZCAwcHggIzc3NzsNCn0NCg0KDQouaGFsZiB7DQogIGRpc3BsYXk6IGJsb2NrOw0KICB3aWR0aDogNDUlOw0KfQ0KDQoubWVudSB7DQogIGJvcmRlcjogc29saWQgMXB4ICMwMEU2RkY7DQp9DQoNCi5pbmZvTXNnIHsNCiAgY29sb3I6ICNhYWE7DQp9DQoNCi5lcnJvck1zZyB7DQogIGNvbG9yOiByZWQ7DQp9DQoNCi53YXJuaW5nTXNnIHsNCiAgY29sb3I6IHllbGxvdzsNCn0NCg0KLmRlYnVnTXNnIHsNCiAgY29sb3I6IG1hZ2VudGE7DQp9DQoNCi5OZXdzLCAuTW92aWUsIC5TZXJpZXMsIC5TcG9ydHMsIC5LaWRzIHsNCiAgYm9yZGVyLWxlZnQ6IHNvbGlkIDJweA0KfQ0KDQouTmV3cyB7DQogIGJvcmRlci1jb2xvcjogdG9tYXRvDQp9DQoNCi5Nb3ZpZSB7DQogIGJvcmRlci1jb2xvcjogcm95YWxibHVlOw0KfQ0KDQouU2VyaWVzIHsNCiAgYm9yZGVyLWNvbG9yOiBnb2xkOw0KfQ0KDQouU3BvcnRzIHsNCiAgYm9yZGVyLWNvbG9yOiB5ZWxsb3dncmVlbjsNCn0NCg0KLktpZHMgew0KICBib3JkZXItY29sb3I6IG1lZGl1bXB1cnBsZTsNCn0NCg0KLyogTG9hZGluZyAqLw0KI2xvYWRpbmcgew0KICBsZWZ0OiAwcHg7DQogIHRvcDogMHB4Ow0KICB6LWluZGV4OiAxMDAwMDsNCiAgcG9zaXRpb246IGFic29sdXRlOw0KICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsMCwwLCAwLjgpOw0KICBtYXJnaW46IGF1dG87DQogIHdpZHRoOiAxMDAlOw0KICBoZWlnaHQ6IDEwMCU7DQp9DQoNCg0KLmxvYWRlciB7DQogIGJvcmRlcjogNXB4IHNvbGlkIHRyYW5zcGFyZW50Ow0KICBib3JkZXItcmFkaXVzOiA1MCU7DQogIGJvcmRlci10b3A6IDVweCBzb2xpZCAjMDBFNkZGOw0KICBib3JkZXItYm90dG9tOiA1cHggc29saWQgIzAwRTZGRjsNCiAgd2lkdGg6IDUwcHg7DQogIGhlaWdodDogNTBweDsNCiAgLXdlYmtpdC1hbmltYXRpb246IHNwaW4gMS4ycyBsaW5lYXIgaW5maW5pdGU7DQogIGFuaW1hdGlvbjogc3BpbiAxLjJzIGxpbmVhciBpbmZpbml0ZTsNCg0KICBwb3NpdGlvbjogZml4ZWQ7DQogIG1hcmdpbjogYXV0bzsNCg0KICB0b3A6IDA7DQogIHJpZ2h0OiAwOw0KICBib3R0b206IDA7DQogIGxlZnQ6IDA7DQogIA0KfQ0KDQpALXdlYmtpdC1rZXlmcmFtZXMgc3BpbiB7DQogIDAlIHsgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTsgfQ0KICAxMDAlIHsgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpOyB9DQp9DQoNCkBrZXlmcmFtZXMgc3BpbiB7DQogIDAlIHsgdHJhbnNmb3JtOiByb3RhdGUoMGRlZyk7IH0NCiAgMTAwJSB7IHRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7IH0NCn0NCg==" + webUI["html/css/screen.css"] = "bmF2IGltZyB7DQogIGRpc3BsYXk6IGJsb2NrOw0KICBtYXgtaGVpZ2h0OiAyMHB4Ow0KICBtYXgtd2lkdGg6IDIwcHg7DQogIGZsb2F0OiBsZWZ0Ow0KfQ0KDQpuYXYgcCB7DQogIHRleHQtYWxpZ246IGxlZnQ7DQogIHBhZGRpbmc6IDBweCAzMHB4Ow0KfQ0KDQojbGF5b3V0IHsNCiAgZGlzcGxheTogYmxvY2s7DQogIGhlaWdodDogMTAwJTsNCn0NCg0KDQoubGF5b3V0LWxlZnQgew0KICBkaXNwbGF5OiBibG9jazsNCiAgbWluLXdpZHRoOiAxNTBweDsNCiAgbWF4LXdpZHRoOiAyMCU7DQogIGJhY2tncm91bmQtY29sb3I6ICMxMTE7DQogIGhlaWdodDogaW5oZXJpdDsNCiAgZmxvYXQ6IGxlZnQ7DQp9DQoNCi5sYXlvdXQtcmlnaHQgew0KICBkaXNwbGF5OiBibG9jazsNCiAgYmFja2dyb3VuZC1jb2xvcjogIzQ0NDsNCn0NCg0KI21lbnUtd3JhcHBlciB7DQogIGhlaWdodDogMTAwJTsNCn0NCg0KDQojbG9nbyB7DQogIGRpc3BsYXk6IGJsb2NrOw0KICBtaW4td2lkdGg6IDE4MHB4Ow0KICB3aWR0aDogMTAwJTsNCiAgaGVpZ2h0OiAxMDBweDsNCiAgYmFja2dyb3VuZDogdXJsKCIuLi9pbWcvbG9nb193XzYwMHgyMDAucG5nIik7DQogIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7DQogIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjsgDQogIGJhY2tncm91bmQtc2l6ZTogMTAwJTsNCn0NCg0KDQojcGFnZSB7DQogIG1heC13aWR0aDogOTUwcHg7DQogIG1hcmdpbjogYXV0bzsNCiAgYmFja2dyb3VuZC1jb2xvcjogIzQ0NDsNCg0KICAvKg0KICBoZWlnaHQ6IC13ZWJraXQtY2FsYygxMDAlIC0gMTMwcHgpOw0KICBoZWlnaHQ6IC1tb3otY2FsYygxMDAlIC0gMTMwcHgpOw0KICBoZWlnaHQ6IGNhbGMoMTAwJSAtIDEzMHB4KTsNCiAgKi8NCiAgDQogIG1pbi1oZWlnaHQ6IC13ZWJraXQtY2FsYygxMDAlIC0gMTIwcHgpOw0KICBtaW4taGVpZ2h0OiAtbW96LWNhbGMoMTAwJSAtIDEyMHB4KTsNCiAgbWluLWhlaWdodDogY2FsYygxMDAlIC0gMTIwcHgpOw0KICANCiAgDQogIGJveC1zaGFkb3c6IDBweCA1cHggNXB4ICMyMjI7DQogIA0KfQ0KDQojdWlTZXR0aW5nIHsNCiAgZmxvYXQ6IHJpZ2h0Ow0KICBtYXJnaW4tcmlnaHQ6IDI1cHg7DQp9DQoNCiNib3ggaW5wdXRbdHlwZT10ZXh0XSwgI2JveCBpbnB1dFt0eXBlPXBhc3N3b3JkXSB7DQogIHdpZHRoOiAtd2Via2l0LWNhbGMoMTAwJSAtIDIwcHgpOw0KICB3aWR0aDogLW1vei1jYWxjKDEwMCUgLSAyMHB4KTsNCiAgd2lkdGg6IGNhbGMoMTAwJSAtIDIwcHgpOw0KfQ0KDQojYm94IGlucHV0W3R5cGU9c3VibWl0XXsNCiAgbWFyZ2luOiA1MHB4IGF1dG87DQp9DQoNCiNzZXR0aW5ncyB7DQogIGRpc3BsYXk6IGJsb2NrOw0KICBwYWRkaW5nOiAxMHB4IDEwcHg7DQp9DQoNCiNzZXR0aW5ncyBoNSB7DQogIG1hcmdpbjogNTBweCAwcHggMTBweCAwcHg7DQp9DQoNCiNjb250ZW50LWludGVyYWN0aW9uIC5zZWFyY2ggew0KICB3aWR0aDogMjAwcHg7DQogIGJvcmRlcjogMXB4IHNvbGlkICMwMDA7DQogIHBhZGRpbmc6IDlweDsNCiAgYmFja2dyb3VuZC1jb2xvcjogIzMzMzsNCiAgbWFyZ2luOiAxMHB4Ow0KICBmbG9hdDogcmlnaHQ7DQogIGJvcmRlci1yYWRpdXM6IDNweDsNCg0KfQ0KDQojbXlTdHJlYW1zIHsNCiAgcG9zaXRpb246IGZpeGVkOw0KICBib3R0b206IDBweDsNCiAgYmFja2dyb3VuZC1jb2xvcjogIzExMTsNCiAgd2lkdGg6IDEwMCU7DQogIG1heC13aWR0aDogOTUwcHg7DQoNCiAgLyoNCiAgbWF4LWhlaWdodDogMTAwcHg7DQogICovDQogIG1hcmdpbi1ib3R0b206IDBweDsNCn0NCg0KI215U3RyZWFtcyBpbWcgew0KICB3aWR0aDogNCU7DQogIHBhZGRpbmc6IDJweCA1cHg7DQogIGN1cnNvcjogcG9pbnRlcjsNCiAgZmxvYXQ6IHJpZ2h0Ow0KfQ0KDQojc2V0dGluZ3MtZm9vdGVyIHsNCg0KfQ0KDQoNCi8qIFdpemFyZCovDQojYm94IHsNCiAgYmFja2dyb3VuZC1jb2xvcjogIzQ0NDsNCiAgbWluLWhlaWdodDogNDAwcHg7DQogIA0KICBkaXNwbGF5OiBmbGV4Ow0KICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOw0KICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47DQp9DQoNCiNib3ggcHsNCiAgcGFkZGluZzogMTBweCAwcHg7DQp9DQoNCiNib3gtZm9vdGVyIHsNCiAgbWFyZ2luLXRvcDogYXV0bzsNCn0NCg0KI2JveC1mb290ZXIgew0KICBtYXJnaW46IGF1dG87DQogIHBhZGRpbmc6IDEwcHg7DQp9DQoNCiNoZWFkbGluZSB7DQogIGJhY2tncm91bmQtY29sb3I6ICMyMjI7DQogIGJvcmRlci1ib3R0b206IHNvbGlkIDJweCAjMjIyOw0KICB0cmFuc2l0aW9uOiBhbGwgMC41czsNCiAgcGFkZGluZzogMTBweCAwcHg7DQogIGRpc3BsYXk6IGJsb2NrOw0KfQ0KDQojY29udGVudCB7DQogIGRpc3BsYXk6IGJsb2NrOw0KICBvdmVyZmxvdzogYXV0bzsNCiAgcGFkZGluZzogMTBweDsNCn0NCg0KLyogLS0tICovDQoNCg0KI2NsaWVudEluZm8sICNhY3RpdmVTdHJlYW1zLCAjaW5hY3RpdmVTdHJlYW1zIHsNCiAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZTsNCiAgZGlzcGxheTogYmxvY2s7DQogIGZvbnQtc2l6ZTogOXB4Ow0KICBiYWNrZ3JvdW5kLWNvbG9yOiAjMTExOw0KICBjb2xvcjogIzAwRTZGRjsNCiAgYm9yZGVyLWJvdHRvbTogc29saWQgMHB4OzsNCiAgcGFkZGluZzogMHB4Ow0KICBsZXR0ZXItc3BhY2luZzogMXB4Ow0KICBvdmVyZmxvdy14OiBoaWRkZW47DQogIGJvcmRlci1zcGFjaW5nOiA0cHggNHB4Ow0KICBib3JkZXItYm90dG9tOiBzb2xpZCAxcHggIzQ0NDsNCn0NCg0KI215U3RyZWFtc0JveCB7DQogIHBvc2l0aW9uOiByZWxhdGl2ZTsNCiAgcGFkZGluZzogMHB4Ow0KICAvKmhlaWdodDogMTAwcHg7Ki8NCiAgbWF4LWhlaWdodDogMTUwcHg7DQogIGJhY2tncm91bmQtY29sb3I6ICMxMTE7DQogIGNvbG9yOiB3aGl0ZTsNCiAgZGlzcGxheTpmbGV4Ow0KICBqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyOw0KICBhbGlnbi1pdGVtczpjZW50ZXI7DQp9DQoNCiNvcGVuU3RyZWFtcyB7DQogIHdpZHRoOiAyMHB4Ow0KICBoZWlnaHQ6IDIwcHg7DQogIGN1cnNvcjogcG9pbnRlcjsNCiAgZmxvYXQ6IHJpZ2h0Ow0KICBwb3NpdGlvbjogYWJzb2x1dGU7DQogIHJpZ2h0OiAwcHg7DQogIGJvdHRvbTogMHB4Ow0KICBiYWNrZ3JvdW5kOiB1cmwoIi4uL2ltZy90b3VjaC5wbmciKTsNCiAgYmFja2dyb3VuZC1jb2xvcjogIzExMTsNCiAgDQogIGJhY2tncm91bmQtcG9zaXRpb246IGJvdHRvbSByaWdodDsgIA0KfQ0KDQojYWxsU3RyZWFtcyB7DQogIHdpZHRoOiAxMDAlOw0KICBoZWlnaHQ6IDEwMCU7DQogIHBhZGRpbmc6IDJweDsgICAgIA0KfQ0KDQojYWN0aXZlU3RyZWFtcywgI2luYWN0aXZlU3RyZWFtcyB7DQogIG92ZXJmbG93LXk6IHNjcm9sbDsNCiAgd2lkdGg6IDUwJTsNCiAgbWF4LWhlaWdodDogMTAwcHg7DQogIGZsb2F0OiBsZWZ0Ow0KfQ0KDQojYWN0aXZlU3RyZWFtcyAudGRLZXksICNpbmFjdGl2ZVN0cmVhbXMgLnRkS2V5IHsNCiAgd2lkdGg6IDc1cHg7DQp9DQoNCg0KDQoNCiNpbmFjdGl2ZVN0cmVhbXMgLnRkS2V5IHsNCiAgY29sb3I6IHJlZDsNCn0NCg0KI2NsaWVudEluZm8gLnRkVmFsLCAjbG9nSW5mbyAudGRWYWwsICNhY3RpdmVTdHJlYW1zIC50ZFZhbCwgI2luYWN0aXZlU3RyZWFtcyAudGRWYWwsICNtYXBwaW5nSW5mbyAudGRWYWx7DQogIGNvbG9yOiAjYWFhOw0KICB3aGl0ZS1zcGFjZTogaW5oZXJpdDsNCn0NCg0KI2JveC13cmFwcGVyIHsNCiAgZGlzcGxheTogaW5saW5lLWJsb2NrOw0KICB3aWR0aDogMTAwJTsNCiAgDQogIG92ZXJmbG93LXk6IHNjcm9sbDsNCn0NCg0KI2NvbnRlbnRfdGFibGUsICNtYXBwaW5nLWRldGFpbC10YWJsZSwgI2NvbnRlbnRfdGFibGUgew0KICBkaXNwbGF5OiB0YWJsZTsNCiAgDQogIGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7DQogIG92ZXJmbG93LXk6IHNjcm9sbDsNCiAgd2lkdGg6IDEwMCU7DQp9DQoNCg0KI2NvbnRlbnRfdGFibGUgLmNvbnRlbnRfdGFibGVfaGVhZGVyIHsNCiAgYmFja2dyb3VuZC1jb2xvcjogIzMzMzsNCiAgaGVpZ2h0OiA1MHB4Ow0KICBib3JkZXItYm90dG9tOiBzb2xpZCAxcHggIzExMTsNCiAgYm9yZGVyLWxlZnQ6IHNvbGlkIDNweCAjMzMzOw0KICBjdXJzb3I6IGF1dG87DQoNCn0NCg0KDQp0Ym9keSB7DQogIHdpZHRoOiAxMDAlOw0KfQ0KDQoNCi50YWJsZUVsbGlwc2lzIHsNCiAgd2lkdGg6IDE1MHB4Ow0KICBvdmVyZmxvdzogaGlkZGVuOw0KICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsNCiAgd2hpdGUtc3BhY2U6IG5vd3JhcDsNCn0NCg0KI2NvbnRlbnRfdGFibGUgaW1nIHsNCiAgZGlzcGxheTogYmxvY2s7DQogIG1heC1oZWlnaHQ6IDI4cHg7DQogIG1hcmdpbi1sZWZ0OiBhdXRvOw0KICBtYXJnaW4tcmlnaHQ6IGF1dG87DQogIG1heC13aWR0aDogMzBweDsNCn0NCg0KI2NvbnRlbnRfdGFibGUgdHJ7DQogIGJvcmRlci1sZWZ0OiBzb2xpZCAzcHggNDQ0Ow0KICBib3JkZXItYm90dG9tOiBzb2xpZCAxcHggIzMzMzsNCiAgY3Vyc29yOiBwb2ludGVyOw0KfQ0KDQojY29udGVudF90YWJsZSB0cjpob3ZlciB7DQogIGJhY2tncm91bmQtY29sb3I6ICMzMzM7DQp9DQoNCiNjb250ZW50X3RhYmxlIHRkIHsNCg0KICBwYWRkaW5nOiAwcHggMnB4Ow0KfQ0KDQojY29udGVudF90YWJsZSBpbnB1dFt0eXBlPXRleHRdew0KICB3aWR0aDogODAlOw0KICBtaW4td2lkdGg6IDM1cHg7DQogIG1heC13aWR0aDogNjBweDsNCiAgYm9yZGVyOiAwcHg7DQogIGJhY2tncm91bmQtY29sb3I6ICMzMzM7DQogIG1hcmdpbi1sZWZ0OiA1cHg7DQogIHRleHQtYWxpZ246IGxlZnQ7DQp9DQoNCiNjb250ZW50X3RhYmxlIGlucHV0W3R5cGU9Y2hlY2tib3hdew0KICBtYXgtd2lkdGg6IDI1cHg7DQogIG1hcmdpbjogYXV0bzsNCn0NCg0KDQouc2hvd0J1bGsgew0KICBkaXNwbGF5OiBibG9jazsNCn0NCg0KLmhpZGVCdWxrIHsNCiAgZGlzcGxheTogbm9uZTsNCn0NCg0KLm5vQnVsayB7DQoNCn0NCg0KI2NvbnRlbnRfdGFibGUgdHIuYWN0aXZlRVBHew0KICBib3JkZXItbGVmdDogc29saWQgM3B4IGxhd25ncmVlbjsNCn0NCg0KI2NvbnRlbnRfdGFibGUgdHIubm90QWN0aXZlRVBHew0KICBib3JkZXItbGVmdDogc29saWQgM3B4IHJlZDsNCn0NCg0KDQojbG9nU2NyZWVuIHB7DQogIHdoaXRlLXNwYWNlOiBwcmU7DQogIGZvbnQtc2l6ZTogMTBweDsNCiAgLyoNCiAgbGluZS1oZWlnaHQ6IDEuNmVtOw0KICBmb250LWZhbWlseTogIkFyaWFsIiwgc2Fucy1zZXJpZjsNCiAgKi8NCiAgbGV0dGVyLXNwYWNpbmc6IDFweDsNCiAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZTsgDQogIGZvbnQtc2l6ZTogMTJweDsgDQogIGZvbnQtc3R5bGU6IG5vcm1hbDsgDQogIGZvbnQtdmFyaWFudDogbm9ybWFsOyANCiAgbGluZS1oZWlnaHQ6IDEuNmVtOyANCn0NCg0KI3BvcHVwIHsNCiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjQpOw0KICBwb3NpdGlvbjogZml4ZWQ7DQogIGxlZnQ6IDBweDsNCiAgd2lkdGg6IDEwMCU7DQogIHotaW5kZXg6IDEwMDsNCiAgaGVpZ2h0OiAxMDAlOw0KfQ0KDQojbWFwcGluZy1kZXRhaWwsICN1c2VyLWRldGFpbCwgI2ZpbGUtZGV0YWlsLCAjcG9wdXAtY3VzdG9tIHsNCiAgYm94LXNoYWRvdzogMHB4IDVweCA0MHB4ICMwMDA7DQogIG1hcmdpbi10b3A6IDIwcHg7DQogIG1hcmdpbi1sZWZ0OiBhdXRvOw0KICBtYXJnaW4tcmlnaHQ6IGF1dG87DQogIA0KICBtYXgtd2lkdGg6IDYwMHB4Ow0KICBiYWNrZ3JvdW5kLWNvbG9yOiAjMjIyOw0KICBwYWRkaW5nOiAxMHB4Ow0KICBvdmVyZmxvdzphdXRvOw0KfQ0KDQojcG9wdXAtY3VzdG9tIGgzIHsNCiAgdGV4dC1hbGlnbjogY2VudGVyOw0KfQ0KDQojZmlsZS1kZXRhaWwgaW5wdXRbdHlwZT10ZXh0XSB7DQogIHdpZHRoOiAtd2Via2l0LWNhbGMoMTAwJSAtIDIwcHgpOw0KICB3aWR0aDogLW1vei1jYWxjKDEwMCUgLSAyMHB4KTsNCiAgd2lkdGg6IGNhbGMoMTAwJSAtIDIwcHgpOw0KfQ0KDQojbWFwcGluZy1kZXRhaWwgaW1nIHsNCiAgZGlzcGxheTogYmxvY2s7DQogIG1heC1oZWlnaHQ6IDMwcHg7DQogIG1hcmdpbi1ib3R0b206IDIwcHg7DQogIG1hcmdpbi1sZWZ0OiBhdXRvOw0KICBtYXJnaW4tcmlnaHQ6IGF1dG87DQp9DQoNCiNwb3B1cC1jdXN0b20gaW5wdXRbdHlwZT10ZXh0XSwgI3BvcHVwLWN1c3RvbSBpbnB1dFt0eXBlPXBhc3N3b3JkXSwgI21hcHBpbmctZGV0YWlsIGlucHV0W3R5cGU9dGV4dF0sICNjb250ZW50X3NldHRpbmdzIGlucHV0W3R5cGU9dGV4dF0sICNjb250ZW50X3NldHRpbmdzIGlucHV0W3R5cGU9cGFzc3dvcmRdew0KICBib3JkZXI6IHNvbGlkIDFweDsNCiAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDsNCiAgYmFja2dyb3VuZC1jb2xvcjogIzMzMzsNCiAgdGV4dC1hbGlnbjogbGVmdDsNCiAgd2lkdGg6IC13ZWJraXQtY2FsYygxMDAlIC0gMjBweCk7DQogIHdpZHRoOiAgICAtbW96LWNhbGMoMTAwJSAtIDIwcHgpOw0KICB3aWR0aDogICAgICAgICBjYWxjKDEwMCUgLSAyMHB4KTsNCn0NCg0KI3BvcHVwLWN1c3RvbSBpbnB1dFt0eXBlPXRleHRdLm5vdEF2YWlsYWJsZSB7DQogIGJvcmRlci1jb2xvcjogcmVkOw0KICBjb2xvcjogIzY2NjsNCiAgY3Vyc29yOiBub3QtYWxsb3dlZDsNCn0NCg0KI21hcHBpbmctZGV0YWlsLXRhYmxlLCAjdXNlci1kZXRhaWwtdGFibGUgew0KICBkaXNwbGF5OiBpbmxpbmUtdGFibGU7DQogIHdpZHRoOiAxMDAlOw0KfQ0KDQojcG9wdXAtY3VzdG9tIHRhYmxlLCAjY29udGVudF9zZXR0aW5ncyB0YWJsZSB7DQogIGRpc3BsYXk6IGlubGluZS10YWJsZTsNCiAgdGFibGUtbGF5b3V0OiBmaXhlZDsNCiAgd2lkdGg6IDEwMCU7DQp9DQoNCg0KI21hcHBpbmctZGV0YWlsLXRhYmxlIHRkLCAjdXNlci1kZXRhaWwtdGFibGUgdGQgew0KICBwYWRkaW5nOiAxMHB4IDBweDsNCg0KfQ0KDQojbWFwcGluZy1kZXRhaWwtdGFibGUgdGQubGVmdCwgI3VzZXItZGV0YWlsLXRhYmxlIHRkLmxlZnQsICNwb3B1cC1jdXN0b20gdGQubGVmdCB7DQogIHdpZHRoOiAzOCU7DQp9DQoNCi5pbnRlcmFjdGlvbiwgI2ludGVyYWN0aW9uIHsNCiAgbWFyZ2luLXRvcDogMjBweDsNCiAgZGlzcGxheTogaW5saW5lLWZsZXg7DQogIGZsb2F0OiByaWdodDsNCn0NCg0KLmludGVyYWN0aW9uIGlucHV0W3R5cGU9YnV0dG9uXSwgLmludGVyYWN0aW9uIGlucHV0W3R5cGU9c3VibWl0XSB7DQogIGJhY2tncm91bmQtY29sb3I6ICMwMDA7DQogIG1pbi13aWR0aDogMTAwcHg7DQogIG1hcmdpbjogMHB4IDEwcHg7DQogIHRleHQtYWxpZ246IGNlbnRlcjsNCn0NCg0KI25vdGlmaWNhdGlvbiB7DQogIGRpc3BsYXk6IGJsb2NrOw0KICBwb3NpdGlvbjogZml4ZWQ7DQogIHJpZ2h0OiAwcHg7DQogIGhlaWdodDogMTAwJTsNCiAgd2lkdGg6IDI1MHB4Ow0KICANCiAgYmFja2dyb3VuZC1jb2xvcjogIzIyMjsNCiAgYm94LXNoYWRvdzogMHB4IDBweCAyMHB4ICMwMDA7DQp9DQoNCiNub3RpZmljYXRpb24gaDUgew0KICBiYWNrZ3JvdW5kLWNvbG9yOiAjMTIxMjEyOw0KICBwYWRkaW5nOiA1cHggMTBweCA1cHggMTBweDsNCn0NCg0KI25vdGlmaWNhdGlvbiBwcmUgew0KICBwYWRkaW5nOiAwcHggMTBweCAwcHggMTBweDsNCn0NCg0KI25vdGlmaWNhdGlvbiBwIHsNCiAgZm9udC1zaXplOiAxMCBweDsNCiAgbWFyZ2luOiAwcHg7DQogIHBhZGRpbmc6IDBweCAxMHB4IDVweCAxMHB4Ow0KfQ0KDQojbm90aWZpY2F0aW9uIC5lbGVtZW50IHsNCiAgLypwYWRkaW5nOiAwcHggNXB4OyovDQogIG1hcmdpbjogNXB4IDVweDsNCiAgYm9yZGVyLXJhZGl1czogNXB4Ow0KICBiYWNrZ3JvdW5kLWNvbG9yOiAjMTgxODE4Ow0KICBib3JkZXItbGVmdDogMTBweCBzb2xpZCBncmVlbjsNCn0NCg0KDQpAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDYyMHB4KXsNCiAgYm9keSB7DQogICAgd2lkdGg6IDEwMCU7DQogICAgYmFja2dyb3VuZC1jb2xvcjogIzQ0NDsNCiAgfQ0KDQogIGgxIHsNCiAgICBmb250LXNpemU6IDI2cHg7DQogICAgbGV0dGVyLXNwYWNpbmc6IDNweDsNCiAgfQ0KDQogIG5hdiBwIHsNCiAgICBkaXNwbGF5OiBibG9jazsNCiAgfQ0KDQoNCg0KICAjaGVhZGVyX2NvbmZpZyB7DQogICAgZGlzcGxheTogYmxvY2s7DQogICAgaGVpZ2h0OiAxMDBweDsNCiAgICBiYWNrZ3JvdW5kOiB1cmwoIi4uL2ltZy9sb2dvX3dfNjAweDIwMC5wbmciKTsNCiAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0Ow0KICAgIA0KICAgIGJhY2tncm91bmQtc2l6ZTogMzAwcHggMTAwcHg7DQogIH0NCg0KICAjc2NyZWVuTG9nIHsNCiAgICBtYXJnaW4tbGVmdDogMzAwcHg7DQoNCiAgICB0cmFuc2l0aW9uOiBub25lOw0KICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50Ow0KICAgIGJvcmRlci1ib3R0b206IHNvbGlkIDFweCB0cmFuc3BhcmVudDsNCiAgICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAjMjIyOw0KICB9DQoNCiAgI3NldHRpbmdzIHsNCiAgICAvKg0KICAgIGhlaWdodDogLXdlYmtpdC1jYWxjKDEwMCUgLSAxMDBweCk7DQogICAgaGVpZ2h0OiAtbW96LWNhbGMoMTAwJSAtIDEwMHB4KTsNCiAgICBoZWlnaHQ6IGNhbGMoMTAwJSAtIDEwMHB4KTsNCiAgICAqLw0KICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsNCiAgICBvdmVyZmxvdzogYXV0bzsNCiAgfQ0KDQoNCiAgLnNjcmVlbkxvZ0hpZGRlbiB7DQogICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMHB4LCAwcHgpOw0KICB9DQoNCg0KICAjYm94IHsNCiAgICBkaXNwbGF5OiBibG9jazsNCiAgICBtaW4taGVpZ2h0OiA1MDBweDsNCiAgICBtYXgtd2lkdGg6IDUwMHB4Ow0KICAgIG1hcmdpbjogMTBweCBhdXRvOw0KICAgIGJhY2tncm91bmQtY29sb3I6ICM0NDQ7DQogICAgYm94LXNoYWRvdzogMHB4IDVweCA1cHggIzIyMjsNCg0KICAgIGRpc3BsYXk6IGZsZXg7DQogICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsNCiAgfQ0KDQogICNzZXR0aW5ncywgI3NldHRpbmdzLWZvb3RlciB7DQogICAgDQogIH0NCn0NCg==" + webUI["html/img/filter.png"] = "iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAAAXNSR0IArs4c6QAAAAlwSFlzAAAsSwAALEsBpT2WqQAABCRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IlhNUCBDb3JlIDUuNC4wIj4KICAgPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIgogICAgICAgICAgICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgICAgICAgICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyI+CiAgICAgICAgIDx0aWZmOlJlc29sdXRpb25Vbml0PjI8L3RpZmY6UmVzb2x1dGlvblVuaXQ+CiAgICAgICAgIDx0aWZmOkNvbXByZXNzaW9uPjU8L3RpZmY6Q29tcHJlc3Npb24+CiAgICAgICAgIDx0aWZmOlhSZXNvbHV0aW9uPjI4ODwvdGlmZjpYUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6T3JpZW50YXRpb24+MTwvdGlmZjpPcmllbnRhdGlvbj4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+Mjg4PC90aWZmOllSZXNvbHV0aW9uPgogICAgICAgICA8ZXhpZjpQaXhlbFhEaW1lbnNpb24+NTA8L2V4aWY6UGl4ZWxYRGltZW5zaW9uPgogICAgICAgICA8ZXhpZjpDb2xvclNwYWNlPjE8L2V4aWY6Q29sb3JTcGFjZT4KICAgICAgICAgPGV4aWY6UGl4ZWxZRGltZW5zaW9uPjUwPC9leGlmOlBpeGVsWURpbWVuc2lvbj4KICAgICAgICAgPGRjOnN1YmplY3Q+CiAgICAgICAgICAgIDxyZGY6QmFnLz4KICAgICAgICAgPC9kYzpzdWJqZWN0PgogICAgICAgICA8eG1wOk1vZGlmeURhdGU+MjAxOC0wNy0yOFQxOTowNzo2OTwveG1wOk1vZGlmeURhdGU+CiAgICAgICAgIDx4bXA6Q3JlYXRvclRvb2w+UGl4ZWxtYXRvciAzLjM8L3htcDpDcmVhdG9yVG9vbD4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgIDwvcmRmOlJERj4KPC94OnhtcG1ldGE+Cs038OQAAAOISURBVGgF5ZpLSBVRGMfvvfmqCKKiKCqKtE3SQ8haJJm1ctPCZYHrFhXtohcUBLVsU1BRBJKLXpsSKs1aCL1oUUhvMgIloodZKmLZ72+OzNVx7jzOXGfqg/89Z875zv/7f35n7px7vanUP2JptzyGhoYKmK8GW0EZmA/mgW7wHrwDN0BTOp0epPVtxBBnLdgIVoE5YBboBR2gDTTA/5DWn0FeDPaBz8CLdeF0EBR5jYRvKbgABoAXa8Opwit/CudK8NoLs4PPM8ZyBsNnB/jpsD7X0C8cjgDXnaQkqkEPCGMSuGWivxxzx8OQj6xtpHWuPhPloHfEMWzTD0HN2GQY2xuW2Lb+/Fh+VaIQPLE5meh+gmSxFYz+BjBogtjGscfiH26Z2GmbNNltVQAIpwDdP6ZNO2iRYqTpZGhfgWUaiMC2w1kCzkbALcqLvDVvUyK6MW9HFES0b8BvsFwXEZi4F+iBtykCcjtlqf0igr52VJ1eqiIgzzdlrRIZfWfJd3SD8ZbqHvkB4XSDpJNB9V0VcX/cT4Ys/zEzSuSj/3WxW9GpRD7ETpZ/QcOJ6LyfdHugitxNehbob9G7lo4PXWBmQhPqQ/fsDOeUfjqNCU1Csi+TQ5+2luzc3yaRr6elevQZwhZr4bomYam0U41yabYqov5hvSTMjlp6RyuiAarSTLPZmox5246+lVREx/isiuh6NxhUJwF2yEpCWu1bK8WEsjyRgCSa0XrVrjNra2mC7TWD5ilYAuJoA4jSlnppF5dVEU3g0ENTD4b3nsZiZsfGJuGqj8qY+CINGqP2GLZCJ+HjtpblxAJ9k3cPrLfGJrnVUaSCarxw0jFua1lOLNBerANx+byya6IkLM2uLZWpAl6/Mcc1EjvjKtLrJNLqI5HnjfQ+bsVeteb0g2y/t7hGvd7CNjenOL8OkJ40KtOdTF+Cl/nV6Mkf4gxocI9vZPYLLKs9iQrqRIACcM2IXGeSboYrg+rztY5ARaDJWUeo0W+sXudLTFhnApaAW6FkZy/+yuXasLoCrSfwVHAnW0+gK93YawKJMLUIAdNAKwhqnSxcYUpPKB6EBE2mg7VR///EX24jybTQerXnOC70FyVP3gjTPXPTQyaP8NFPNeJrCNTPP667JKOq6VNo/A2hes5ccUjmEmPmDoD5+FMgWCcA+3FG57QJP//kQ1PgGBIOToEDgUn+t4V/AJeGknwARIKLAAAAAElFTkSuQmCC" + webUI["html/js/classes_ts.js"] = "dmFyIF9fZXh0ZW5kcyA9ICh0aGlzICYmIHRoaXMuX19leHRlbmRzKSB8fCAoZnVuY3Rpb24gKCkgew0KICAgIHZhciBleHRlbmRTdGF0aWNzID0gZnVuY3Rpb24gKGQsIGIpIHsNCiAgICAgICAgZXh0ZW5kU3RhdGljcyA9IE9iamVjdC5zZXRQcm90b3R5cGVPZiB8fA0KICAgICAgICAgICAgKHsgX19wcm90b19fOiBbXSB9IGluc3RhbmNlb2YgQXJyYXkgJiYgZnVuY3Rpb24gKGQsIGIpIHsgZC5fX3Byb3RvX18gPSBiOyB9KSB8fA0KICAgICAgICAgICAgZnVuY3Rpb24gKGQsIGIpIHsgZm9yICh2YXIgcCBpbiBiKSBpZiAoYi5oYXNPd25Qcm9wZXJ0eShwKSkgZFtwXSA9IGJbcF07IH07DQogICAgICAgIHJldHVybiBleHRlbmRTdGF0aWNzKGQsIGIpOw0KICAgIH07DQogICAgcmV0dXJuIGZ1bmN0aW9uIChkLCBiKSB7DQogICAgICAgIGV4dGVuZFN0YXRpY3MoZCwgYik7DQogICAgICAgIGZ1bmN0aW9uIF9fKCkgeyB0aGlzLmNvbnN0cnVjdG9yID0gZDsgfQ0KICAgICAgICBkLnByb3RvdHlwZSA9IGIgPT09IG51bGwgPyBPYmplY3QuY3JlYXRlKGIpIDogKF9fLnByb3RvdHlwZSA9IGIucHJvdG90eXBlLCBuZXcgX18oKSk7DQogICAgfTsNCn0pKCk7DQp2YXIgTWFpbk1lbnUgPSAvKiogQGNsYXNzICovIChmdW5jdGlvbiAoKSB7DQogICAgZnVuY3Rpb24gTWFpbk1lbnUoKSB7DQogICAgICAgIHRoaXMuRG9jdW1lbnRJRCA9ICJtYWluLW1lbnUiOw0KICAgICAgICB0aGlzLkhUTUxUYWcgPSAiTEkiOw0KICAgIH0NCiAgICBNYWluTWVudS5wcm90b3R5cGUuY3JlYXRlID0gZnVuY3Rpb24gKCkgew0KICAgICAgICBjb25zb2xlLmxvZyh0aGlzLkRvY3VtZW50SUQpOw0KICAgIH07DQogICAgcmV0dXJuIE1haW5NZW51Ow0KfSgpKTsNCnZhciBNYWluTWVudUl0ZW0gPSAvKiogQGNsYXNzICovIChmdW5jdGlvbiAoX3N1cGVyKSB7DQogICAgX19leHRlbmRzKE1haW5NZW51SXRlbSwgX3N1cGVyKTsNCiAgICBmdW5jdGlvbiBNYWluTWVudUl0ZW0oKSB7DQogICAgICAgIHJldHVybiBfc3VwZXIgIT09IG51bGwgJiYgX3N1cGVyLmFwcGx5KHRoaXMsIGFyZ3VtZW50cykgfHwgdGhpczsNCiAgICB9DQogICAgTWFpbk1lbnVJdGVtLnByb3RvdHlwZS5jcmVhdGUyID0gZnVuY3Rpb24gKCkgew0KICAgICAgICB2YXIgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQodGhpcy5IVE1MVGFnKTsNCiAgICAgICAgZWxlbWVudC5pbm5lclRleHQgPSB0aGlzLlZhbHVlOw0KICAgICAgICBjb25zb2xlLmxvZyhlbGVtZW50KTsNCiAgICB9Ow0KICAgIHJldHVybiBNYWluTWVudUl0ZW07DQp9KE1haW5NZW51KSk7DQpmdW5jdGlvbiBwYWdlUmVhZHkoKSB7DQogICAgdmFyIGl0ZW0gPSBuZXcgTWFpbk1lbnVJdGVtKCk7DQogICAgaXRlbS5WYWx1ZSA9ICJUZXN0IjsNCiAgICBpdGVtLmNyZWF0ZTIoKTsNCn0NCg==" + webUI["html/js/menu_ts.js"] = "dmFyIF9fZXh0ZW5kcyA9ICh0aGlzICYmIHRoaXMuX19leHRlbmRzKSB8fCAoZnVuY3Rpb24gKCkgew0KICAgIHZhciBleHRlbmRTdGF0aWNzID0gZnVuY3Rpb24gKGQsIGIpIHsNCiAgICAgICAgZXh0ZW5kU3RhdGljcyA9IE9iamVjdC5zZXRQcm90b3R5cGVPZiB8fA0KICAgICAgICAgICAgKHsgX19wcm90b19fOiBbXSB9IGluc3RhbmNlb2YgQXJyYXkgJiYgZnVuY3Rpb24gKGQsIGIpIHsgZC5fX3Byb3RvX18gPSBiOyB9KSB8fA0KICAgICAgICAgICAgZnVuY3Rpb24gKGQsIGIpIHsgZm9yICh2YXIgcCBpbiBiKSBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGIsIHApKSBkW3BdID0gYltwXTsgfTsNCiAgICAgICAgcmV0dXJuIGV4dGVuZFN0YXRpY3MoZCwgYik7DQogICAgfTsNCiAgICByZXR1cm4gZnVuY3Rpb24gKGQsIGIpIHsNCiAgICAgICAgZXh0ZW5kU3RhdGljcyhkLCBiKTsNCiAgICAgICAgZnVuY3Rpb24gX18oKSB7IHRoaXMuY29uc3RydWN0b3IgPSBkOyB9DQogICAgICAgIGQucHJvdG90eXBlID0gYiA9PT0gbnVsbCA/IE9iamVjdC5jcmVhdGUoYikgOiAoX18ucHJvdG90eXBlID0gYi5wcm90b3R5cGUsIG5ldyBfXygpKTsNCiAgICB9Ow0KfSkoKTsNCnZhciBNYWluTWVudSA9IC8qKiBAY2xhc3MgKi8gKGZ1bmN0aW9uICgpIHsNCiAgICBmdW5jdGlvbiBNYWluTWVudSgpIHsNCiAgICAgICAgdGhpcy5Eb2N1bWVudElEID0gIm1haW4tbWVudSI7DQogICAgICAgIHRoaXMuSFRNTFRhZyA9ICJMSSI7DQogICAgICAgIHRoaXMuSW1hZ2VQYXRoID0gImltZy8iOw0KICAgIH0NCiAgICBNYWluTWVudS5wcm90b3R5cGUuY3JlYXRlSU1HID0gZnVuY3Rpb24gKHNyYykgew0KICAgICAgICB2YXIgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIklNRyIpOw0KICAgICAgICBlbGVtZW50LnNldEF0dHJpYnV0ZSgic3JjIiwgdGhpcy5JbWFnZVBhdGggKyBzcmMpOw0KICAgICAgICByZXR1cm4gZWxlbWVudDsNCiAgICB9Ow0KICAgIE1haW5NZW51LnByb3RvdHlwZS5jcmVhdGVWYWx1ZSA9IGZ1bmN0aW9uICh2YWx1ZSkgew0KICAgICAgICB2YXIgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlAiKTsNCiAgICAgICAgZWxlbWVudC5pbm5lckhUTUwgPSB2YWx1ZTsNCiAgICAgICAgcmV0dXJuIGVsZW1lbnQ7DQogICAgfTsNCiAgICByZXR1cm4gTWFpbk1lbnU7DQp9KCkpOw0KdmFyIE1haW5NZW51SXRlbSA9IC8qKiBAY2xhc3MgKi8gKGZ1bmN0aW9uIChfc3VwZXIpIHsNCiAgICBfX2V4dGVuZHMoTWFpbk1lbnVJdGVtLCBfc3VwZXIpOw0KICAgIGZ1bmN0aW9uIE1haW5NZW51SXRlbShtZW51S2V5LCB2YWx1ZSwgaW1hZ2UsIGhlYWRsaW5lKSB7DQogICAgICAgIHZhciBfdGhpcyA9IF9zdXBlci5jYWxsKHRoaXMpIHx8IHRoaXM7DQogICAgICAgIF90aGlzLm1lbnVLZXkgPSBtZW51S2V5Ow0KICAgICAgICBfdGhpcy52YWx1ZSA9IHZhbHVlOw0KICAgICAgICBfdGhpcy5pbWdTcmMgPSBpbWFnZTsNCiAgICAgICAgX3RoaXMuaGVhZGxpbmUgPSBoZWFkbGluZTsNCiAgICAgICAgcmV0dXJuIF90aGlzOw0KICAgIH0NCiAgICBNYWluTWVudUl0ZW0ucHJvdG90eXBlLmNyZWF0ZUl0ZW0gPSBmdW5jdGlvbiAoKSB7DQogICAgICAgIHZhciBpdGVtID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiTEkiKTsNCiAgICAgICAgaXRlbS5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAiamF2YXNjcmlwdDogb3BlblRoaXNNZW51KHRoaXMpIik7DQogICAgICAgIGl0ZW0uc2V0QXR0cmlidXRlKCJpZCIsIHRoaXMuaWQpOw0KICAgICAgICB2YXIgaW1nID0gdGhpcy5jcmVhdGVJTUcodGhpcy5pbWdTcmMpOw0KICAgICAgICB2YXIgdmFsdWUgPSB0aGlzLmNyZWF0ZVZhbHVlKHRoaXMudmFsdWUpOw0KICAgICAgICBpdGVtLmFwcGVuZENoaWxkKGltZyk7DQogICAgICAgIGl0ZW0uYXBwZW5kQ2hpbGQodmFsdWUpOw0KICAgICAgICB2YXIgZG9jID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQodGhpcy5Eb2N1bWVudElEKTsNCiAgICAgICAgZG9jLmFwcGVuZENoaWxkKGl0ZW0pOw0KICAgICAgICBzd2l0Y2ggKHRoaXMubWVudUtleSkgew0KICAgICAgICAgICAgY2FzZSAicGxheWxpc3QiOg0KICAgICAgICAgICAgICAgIHRoaXMudGFibGVIZWFkZXIgPSBbInt7LnBsYXlsaXN0LnRhYmxlLnBsYXlsaXN0fX0iLCAie3sucGxheWxpc3QudGFibGUudHVuZXJ9fSIsICJ7ey5wbGF5bGlzdC50YWJsZS5sYXN0VXBkYXRlfX0iLCAie3sucGxheWxpc3QudGFibGUuYXZhaWxhYmlsaXR5fX0gJSIsICJ7ey5wbGF5bGlzdC50YWJsZS50eXBlfX0iLCAie3sucGxheWxpc3QudGFibGUuc3RyZWFtc319IiwgInt7LnBsYXlsaXN0LnRhYmxlLmdyb3VwVGl0bGV9fSAlIiwgInt7LnBsYXlsaXN0LnRhYmxlLnR2Z0lEfX0gJSIsICJ7ey5wbGF5bGlzdC50YWJsZS51bmlxdWVJRH19ICUiXTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInhtbHR2IjoNCiAgICAgICAgICAgICAgICB0aGlzLnRhYmxlSGVhZGVyID0gWyJ7ey54bWx0di50YWJsZS5ndWlkZX19IiwgInt7LnhtbHR2LnRhYmxlLmxhc3RVcGRhdGV9fSIsICJ7ey54bWx0di50YWJsZS5hdmFpbGFiaWxpdHl9fSAlIiwgInt7LnhtbHR2LnRhYmxlLmNoYW5uZWxzfX0iLCAie3sueG1sdHYudGFibGUucHJvZ3JhbXN9fSJdOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiZmlsdGVyIjoNCiAgICAgICAgICAgICAgICB0aGlzLnRhYmxlSGVhZGVyID0gWyJ7ey5maWx0ZXIudGFibGUubmFtZX19IiwgInt7LmZpbHRlci50YWJsZS50eXBlfX0iLCAie3suZmlsdGVyLnRhYmxlLmZpbHRlcn19Il07DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ1c2VycyI6DQogICAgICAgICAgICAgICAgdGhpcy50YWJsZUhlYWRlciA9IFsie3sudXNlcnMudGFibGUudXNlcm5hbWV9fSIsICJ7ey51c2Vycy50YWJsZS5wYXNzd29yZH19IiwgInt7LnVzZXJzLnRhYmxlLndlYn19IiwgInt7LnVzZXJzLnRhYmxlLnBtc319IiwgInt7LnVzZXJzLnRhYmxlLm0zdX19IiwgInt7LnVzZXJzLnRhYmxlLnhtbH19IiwgInt7LnVzZXJzLnRhYmxlLmFwaX19Il07DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJtYXBwaW5nIjoNCiAgICAgICAgICAgICAgICB0aGlzLnRhYmxlSGVhZGVyID0gWyJCVUxLIiwgInt7Lm1hcHBpbmcudGFibGUuY2hOb319IiwgInt7Lm1hcHBpbmcudGFibGUubG9nb319IiwgInt7Lm1hcHBpbmcudGFibGUuY2hhbm5lbE5hbWV9fSIsICJ7ey5tYXBwaW5nLnRhYmxlLnBsYXlsaXN0fX0iLCAie3subWFwcGluZy50YWJsZS5ncm91cFRpdGxlfX0iLCAie3subWFwcGluZy50YWJsZS54bWx0dkZpbGV9fSIsICJ7ey5tYXBwaW5nLnRhYmxlLnhtbHR2SUR9fSIsICJ7ey5tYXBwaW5nLnRhYmxlLnRpbWVzaGlmdH19Il07DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIH0NCiAgICAgICAgLy9jb25zb2xlLmxvZyh0aGlzLm1lbnVLZXksIHRoaXMudGFibGVIZWFkZXIpOw0KICAgIH07DQogICAgcmV0dXJuIE1haW5NZW51SXRlbTsNCn0oTWFpbk1lbnUpKTsNCnZhciBDb250ZW50ID0gLyoqIEBjbGFzcyAqLyAoZnVuY3Rpb24gKCkgew0KICAgIGZ1bmN0aW9uIENvbnRlbnQoKSB7DQogICAgICAgIHRoaXMuRG9jdW1lbnRJRCA9ICJjb250ZW50IjsNCiAgICAgICAgdGhpcy5UYWJsZUlEID0gImNvbnRlbnRfdGFibGUiOw0KICAgICAgICB0aGlzLmhlYWRlckNsYXNzID0gImNvbnRlbnRfdGFibGVfaGVhZGVyIjsNCiAgICAgICAgdGhpcy5pbnRlcmFjdGlvbklEID0gImNvbnRlbnQtaW50ZXJhY3Rpb24iOw0KICAgIH0NCiAgICBDb250ZW50LnByb3RvdHlwZS5jcmVhdGVIZWFkbGluZSA9IGZ1bmN0aW9uICh2YWx1ZSkgew0KICAgICAgICB2YXIgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIkgzIik7DQogICAgICAgIGVsZW1lbnQuaW5uZXJIVE1MID0gdmFsdWU7DQogICAgICAgIHJldHVybiBlbGVtZW50Ow0KICAgIH07DQogICAgQ29udGVudC5wcm90b3R5cGUuY3JlYXRlSFIgPSBmdW5jdGlvbiAoKSB7DQogICAgICAgIHZhciBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiSFIiKTsNCiAgICAgICAgcmV0dXJuIGVsZW1lbnQ7DQogICAgfTsNCiAgICBDb250ZW50LnByb3RvdHlwZS5jcmVhdGVJbnRlcmFjdGlvbiA9IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgdmFyIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJESVYiKTsNCiAgICAgICAgZWxlbWVudC5zZXRBdHRyaWJ1dGUoImlkIiwgdGhpcy5pbnRlcmFjdGlvbklEKTsNCiAgICAgICAgcmV0dXJuIGVsZW1lbnQ7DQogICAgfTsNCiAgICBDb250ZW50LnByb3RvdHlwZS5jcmVhdGVESVYgPSBmdW5jdGlvbiAoKSB7DQogICAgICAgIHZhciBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiRElWIik7DQogICAgICAgIGVsZW1lbnQuaWQgPSB0aGlzLkRpdklEOw0KICAgICAgICByZXR1cm4gZWxlbWVudDsNCiAgICB9Ow0KICAgIENvbnRlbnQucHJvdG90eXBlLmNyZWF0ZVRBQkxFID0gZnVuY3Rpb24gKCkgew0KICAgICAgICB2YXIgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlRBQkxFIik7DQogICAgICAgIGVsZW1lbnQuaWQgPSB0aGlzLlRhYmxlSUQ7DQogICAgICAgIHJldHVybiBlbGVtZW50Ow0KICAgIH07DQogICAgQ29udGVudC5wcm90b3R5cGUuY3JlYXRlVGFibGVSb3cgPSBmdW5jdGlvbiAoKSB7DQogICAgICAgIHZhciBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVFIiKTsNCiAgICAgICAgZWxlbWVudC5jbGFzc05hbWUgPSB0aGlzLmhlYWRlckNsYXNzOw0KICAgICAgICByZXR1cm4gZWxlbWVudDsNCiAgICB9Ow0KICAgIENvbnRlbnQucHJvdG90eXBlLmNyZWF0ZVRhYmxlQ29udGVudCA9IGZ1bmN0aW9uIChtZW51S2V5KSB7DQogICAgICAgIHZhciBkYXRhID0gbmV3IE9iamVjdCgpOw0KICAgICAgICB2YXIgcm93cyA9IG5ldyBBcnJheSgpOw0KICAgICAgICBzd2l0Y2ggKG1lbnVLZXkpIHsNCiAgICAgICAgICAgIGNhc2UgInBsYXlsaXN0IjoNCiAgICAgICAgICAgICAgICB2YXIgZmlsZVR5cGVzID0gbmV3IEFycmF5KCJtM3UiLCAiaGRociIpOw0KICAgICAgICAgICAgICAgIGZpbGVUeXBlcy5mb3JFYWNoKGZ1bmN0aW9uIChmaWxlVHlwZSkgew0KICAgICAgICAgICAgICAgICAgICBkYXRhID0gU0VSVkVSWyJzZXR0aW5ncyJdWyJmaWxlcyJdW2ZpbGVUeXBlXTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGtleXMgPSBnZXRPYmpLZXlzKGRhdGEpOw0KICAgICAgICAgICAgICAgICAgICBrZXlzLmZvckVhY2goZnVuY3Rpb24gKGtleSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVFIiKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmlkID0ga2V5Ow0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgiJyArIGZpbGVUeXBlICsgJyIsIHRoaXMpJyk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsibmFtZSJdOw0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChTRVJWRVJbInNldHRpbmdzIl1bImJ1ZmZlciJdICE9ICItIikgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bInR1bmVyIl07DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gIi0iOw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bImxhc3QudXBkYXRlIl07DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsicHJvdmlkZXIuYXZhaWxhYmlsaXR5Il07DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsidHlwZSJdLnRvVXBwZXJDYXNlKCk7DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsiY29tcGF0aWJpbGl0eSJdWyJzdHJlYW1zIl07DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsiY29tcGF0aWJpbGl0eSJdWyJncm91cC50aXRsZSJdOw0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bImNvbXBhdGliaWxpdHkiXVsidHZnLmlkIl07DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsiY29tcGF0aWJpbGl0eSJdWyJzdHJlYW0uaWQiXTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHJvd3MucHVzaCh0cik7DQogICAgICAgICAgICAgICAgICAgIH0pOw0KICAgICAgICAgICAgICAgIH0pOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiZmlsdGVyIjoNCiAgICAgICAgICAgICAgICBkZWxldGUgU0VSVkVSWyJzZXR0aW5ncyJdWyJmaWx0ZXIiXVstMV07DQogICAgICAgICAgICAgICAgZGF0YSA9IFNFUlZFUlsic2V0dGluZ3MiXVsiZmlsdGVyIl07DQogICAgICAgICAgICAgICAgdmFyIGtleXMgPSBnZXRPYmpLZXlzKGRhdGEpOw0KICAgICAgICAgICAgICAgIGtleXMuZm9yRWFjaChmdW5jdGlvbiAoa2V5KSB7DQogICAgICAgICAgICAgICAgICAgIHZhciB0ciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlRSIik7DQogICAgICAgICAgICAgICAgICAgIHRyLmlkID0ga2V5Ow0KICAgICAgICAgICAgICAgICAgICB0ci5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCInICsgZGF0YVtrZXldWyJ0eXBlIl0gKyAnIiwgdGhpcyknKTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bIm5hbWUiXTsNCiAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgc3dpdGNoIChkYXRhW2tleV1bInR5cGUiXSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAiY3VzdG9tLWZpbHRlciI6DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9ICJ7ey5maWx0ZXIuY3VzdG9tfX0iOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAiZ3JvdXAtdGl0bGUiOg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSAie3suZmlsdGVyLmdyb3VwfX0iOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJmaWx0ZXIiXTsNCiAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICByb3dzLnB1c2godHIpOw0KICAgICAgICAgICAgICAgIH0pOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAieG1sdHYiOg0KICAgICAgICAgICAgICAgIHZhciBmaWxlVHlwZXMgPSBuZXcgQXJyYXkoInhtbHR2Iik7DQogICAgICAgICAgICAgICAgZmlsZVR5cGVzLmZvckVhY2goZnVuY3Rpb24gKGZpbGVUeXBlKSB7DQogICAgICAgICAgICAgICAgICAgIGRhdGEgPSBTRVJWRVJbInNldHRpbmdzIl1bImZpbGVzIl1bZmlsZVR5cGVdOw0KICAgICAgICAgICAgICAgICAgICB2YXIga2V5cyA9IGdldE9iaktleXMoZGF0YSk7DQogICAgICAgICAgICAgICAgICAgIGtleXMuZm9yRWFjaChmdW5jdGlvbiAoa2V5KSB7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgdHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJUUiIpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuaWQgPSBrZXk7DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCInICsgZmlsZVR5cGUgKyAnIiwgdGhpcyknKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJuYW1lIl07DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsibGFzdC51cGRhdGUiXTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJwcm92aWRlci5hdmFpbGFiaWxpdHkiXTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJjb21wYXRpYmlsaXR5Il1bInhtbHR2LmNoYW5uZWxzIl07DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsiY29tcGF0aWJpbGl0eSJdWyJ4bWx0di5wcm9ncmFtcyJdOw0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgcm93cy5wdXNoKHRyKTsNCiAgICAgICAgICAgICAgICAgICAgfSk7DQogICAgICAgICAgICAgICAgfSk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ1c2VycyI6DQogICAgICAgICAgICAgICAgdmFyIGZpbGVUeXBlcyA9IG5ldyBBcnJheSgidXNlcnMiKTsNCiAgICAgICAgICAgICAgICBmaWxlVHlwZXMuZm9yRWFjaChmdW5jdGlvbiAoZmlsZVR5cGUpIHsNCiAgICAgICAgICAgICAgICAgICAgZGF0YSA9IFNFUlZFUltmaWxlVHlwZV07DQogICAgICAgICAgICAgICAgICAgIHZhciBrZXlzID0gZ2V0T2JqS2V5cyhkYXRhKTsNCiAgICAgICAgICAgICAgICAgICAga2V5cy5mb3JFYWNoKGZ1bmN0aW9uIChrZXkpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciB0ciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlRSIik7DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5pZCA9IGtleTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoIicgKyBmaWxlVHlwZSArICciLCB0aGlzKScpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bImRhdGEiXVsidXNlcm5hbWUiXTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gIioqKioqKiI7DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGRhdGFba2V5XVsiZGF0YSJdWyJhdXRoZW50aWNhdGlvbi53ZWIiXSA9PSB0cnVlKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9ICLinJMiOw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9ICItIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgICAgICBpZiAoZGF0YVtrZXldWyJkYXRhIl1bImF1dGhlbnRpY2F0aW9uLnBtcyJdID09IHRydWUpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gIuKckyI7DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gIi0iOw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChkYXRhW2tleV1bImRhdGEiXVsiYXV0aGVudGljYXRpb24ubTN1Il0gPT0gdHJ1ZSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSAi4pyTIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSAiLSI7DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGRhdGFba2V5XVsiZGF0YSJdWyJhdXRoZW50aWNhdGlvbi54bWwiXSA9PSB0cnVlKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9ICLinJMiOw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9ICItIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgICAgICBpZiAoZGF0YVtrZXldWyJkYXRhIl1bImF1dGhlbnRpY2F0aW9uLmFwaSJdID09IHRydWUpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gIuKckyI7DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gIi0iOw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgcm93cy5wdXNoKHRyKTsNCiAgICAgICAgICAgICAgICAgICAgfSk7DQogICAgICAgICAgICAgICAgfSk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJtYXBwaW5nIjoNCiAgICAgICAgICAgICAgICBCVUxLX0VESVQgPSBmYWxzZTsNCiAgICAgICAgICAgICAgICBjcmVhdGVTZWFyY2hPYmooKTsNCiAgICAgICAgICAgICAgICBjaGVja1VuZG8oImVwZ01hcHBpbmciKTsNCiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZygiTUFQUElORyIpOw0KICAgICAgICAgICAgICAgIGRhdGEgPSBTRVJWRVJbInhlcGciXVsiZXBnTWFwcGluZyJdOw0KICAgICAgICAgICAgICAgIHZhciBrZXlzID0gZ2V0T2JqS2V5cyhkYXRhKTsNCiAgICAgICAgICAgICAgICBrZXlzLmZvckVhY2goZnVuY3Rpb24gKGtleSkgew0KICAgICAgICAgICAgICAgICAgICB2YXIgdHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJUUiIpOw0KICAgICAgICAgICAgICAgICAgICB0ci5pZCA9IGtleTsNCiAgICAgICAgICAgICAgICAgICAgLy90ci5zZXRBdHRyaWJ1dGUoJ29uY29udGV4dG1lbnUnLCAnamF2YXNjcmlwdDogcmlnaHRDbGljayh0aGlzKScpDQogICAgICAgICAgICAgICAgICAgIHN3aXRjaCAoZGF0YVtrZXldWyJ4LWFjdGl2ZSJdKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBjYXNlIHRydWU6DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgdHIuY2xhc3NOYW1lID0gImFjdGl2ZUVQRyI7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgICAgICAgICBjYXNlIGZhbHNlOg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyLmNsYXNzTmFtZSA9ICJub3RBY3RpdmVFUEciOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIC8vIEJ1bGsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiQlVMSyI7DQogICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBmYWxzZTsNCiAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAvLyBLYW5hbG51bW1lcg0KICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJJTlBVVENIQU5ORUwiOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJ4LWNoYW5uZWxJRCJdOw0KICAgICAgICAgICAgICAgICAgICAvL3RkLnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBjaGFuZ2VDaGFubmVsTnVtYmVyKCInICsga2V5ICsgJyIsIHRoaXMpJykNCiAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAvLyBMb2dvDQogICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIklNRyI7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuaW1hZ2VVUkwgPSBkYXRhW2tleV1bInR2Zy1sb2dvIl07DQogICAgICAgICAgICAgICAgICAgIHZhciB0ZCA9IGNlbGwuY3JlYXRlQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICB0ZC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJtYXBwaW5nIiwgdGhpcyknKTsNCiAgICAgICAgICAgICAgICAgICAgdGQuaWQgPSBrZXk7DQogICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKHRkKTsNCiAgICAgICAgICAgICAgICAgICAgLy8gS2FuYWxuYW1lDQogICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNsYXNzTmFtZSA9IGRhdGFba2V5XVsieC1jYXRlZ29yeSJdOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJ4LW5hbWUiXTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHRkID0gY2VsbC5jcmVhdGVDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgIHRkLnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoIm1hcHBpbmciLCB0aGlzKScpOw0KICAgICAgICAgICAgICAgICAgICB0ZC5pZCA9IGtleTsNCiAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQodGQpOw0KICAgICAgICAgICAgICAgICAgICAvLyBQbGF5bGlzdA0KICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgLy9jZWxsLnZhbHVlID0gZGF0YVtrZXldWyJfZmlsZS5tM3UubmFtZSJdIA0KICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZ2V0VmFsdWVGcm9tUHJvdmlkZXJGaWxlKGRhdGFba2V5XVsiX2ZpbGUubTN1LmlkIl0sICJtM3UiLCAibmFtZSIpOw0KICAgICAgICAgICAgICAgICAgICB2YXIgdGQgPSBjZWxsLmNyZWF0ZUNlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgdGQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgibWFwcGluZyIsIHRoaXMpJyk7DQogICAgICAgICAgICAgICAgICAgIHRkLmlkID0ga2V5Ow0KICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZCh0ZCk7DQogICAgICAgICAgICAgICAgICAgIC8vIEdydXBwZSAoZ3JvdXAtdGl0bGUpDQogICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJ4LWdyb3VwLXRpdGxlIl07DQogICAgICAgICAgICAgICAgICAgIHZhciB0ZCA9IGNlbGwuY3JlYXRlQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICB0ZC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJtYXBwaW5nIiwgdGhpcyknKTsNCiAgICAgICAgICAgICAgICAgICAgdGQuaWQgPSBrZXk7DQogICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKHRkKTsNCiAgICAgICAgICAgICAgICAgICAgLy8gWE1MVFYgRGF0ZWkNCiAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgIGlmIChkYXRhW2tleV1bIngteG1sdHYtZmlsZSJdICE9ICItIikgew0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGdldFZhbHVlRnJvbVByb3ZpZGVyRmlsZShkYXRhW2tleV1bIngteG1sdHYtZmlsZSJdLCAieG1sdHYiLCAibmFtZSIpOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsieC14bWx0di1maWxlIl07DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgdmFyIHRkID0gY2VsbC5jcmVhdGVDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgIHRkLnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoIm1hcHBpbmciLCB0aGlzKScpOw0KICAgICAgICAgICAgICAgICAgICB0ZC5pZCA9IGtleTsNCiAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQodGQpOw0KICAgICAgICAgICAgICAgICAgICAvLyBYTUxUViBLYW5hbA0KICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgLy92YXIgdmFsdWUgPSBzdHIuc3Vic3RyaW5nKDEsIDQpOw0KICAgICAgICAgICAgICAgICAgICB2YXIgdmFsdWUgPSBkYXRhW2tleV1bIngtbWFwcGluZyJdOw0KICAgICAgICAgICAgICAgICAgICBpZiAodmFsdWUubGVuZ3RoID4gMjApIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlID0gZGF0YVtrZXldWyJ4LW1hcHBpbmciXS5zdWJzdHJpbmcoMCwgMjApICsgIi4uLiI7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IHZhbHVlOw0KICAgICAgICAgICAgICAgICAgICAgdmFyIHRkID0gY2VsbC5jcmVhdGVDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgIHRkLnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoIm1hcHBpbmciLCB0aGlzKScpOw0KICAgICAgICAgICAgICAgICAgICB0ZC5pZCA9IGtleTsNCiAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQodGQpOw0KICAgICAgICAgICAgICAgICAgICAvLyBUaW1lc2hpZnQNCiAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgIHZhciB2YWx1ZSA9IGRhdGFba2V5XVsieC10aW1lc2hpZnQiXTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IHZhbHVlOw0KICAgICAgICAgICAgICAgICAgICB2YXIgdGQgPSBjZWxsLmNyZWF0ZUNlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgdGQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgibWFwcGluZyIsIHRoaXMpJyk7DQogICAgICAgICAgICAgICAgICAgIHRkLmlkID0ga2V5Ow0KICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZCh0ZCk7DQogICAgICAgICAgICAgICAgICAgIHJvd3MucHVzaCh0cik7DQogICAgICAgICAgICAgICAgfSk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJzZXR0aW5ncyI6DQogICAgICAgICAgICAgICAgYWxlcnQoKTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICAgICAgY29uc29sZS5sb2coIlRhYmxlIGNvbnRlbnQgKG1lbnVLZXkpOiIsIG1lbnVLZXkpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICB9DQogICAgICAgIHJldHVybiByb3dzOw0KICAgIH07DQogICAgcmV0dXJuIENvbnRlbnQ7DQp9KCkpOw0KdmFyIENlbGwgPSAvKiogQGNsYXNzICovIChmdW5jdGlvbiAoKSB7DQogICAgZnVuY3Rpb24gQ2VsbCgpIHsNCiAgICB9DQogICAgQ2VsbC5wcm90b3R5cGUuY3JlYXRlQ2VsbCA9IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgdmFyIHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgaWYgKHRoaXMuY2hpbGQgPT0gdHJ1ZSkgew0KICAgICAgICAgICAgdmFyIGVsZW1lbnQ7DQogICAgICAgICAgICBzd2l0Y2ggKHRoaXMuY2hpbGRUeXBlKSB7DQogICAgICAgICAgICAgICAgY2FzZSAiUCI6DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KHRoaXMuY2hpbGRUeXBlKTsNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC5pbm5lckhUTUwgPSB0aGlzLnZhbHVlOw0KICAgICAgICAgICAgICAgICAgICBlbGVtZW50LmNsYXNzTmFtZSA9IHRoaXMuY2xhc3NOYW1lOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBjYXNlICJJTlBVVCI6DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KHRoaXMuY2hpbGRUeXBlKTsNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC52YWx1ZSA9IHRoaXMudmFsdWU7DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQudHlwZSA9ICJ0ZXh0IjsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAiSU5QVVRDSEFOTkVMIjoNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIklOUFVUIik7DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZzY3JpcHQ6IGNoYW5nZUNoYW5uZWxOdW1iZXIodGhpcykiKTsNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC52YWx1ZSA9IHRoaXMudmFsdWU7DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQudHlwZSA9ICJ0ZXh0IjsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAiQlVMSyI6DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJJTlBVVCIpOw0KICAgICAgICAgICAgICAgICAgICBlbGVtZW50LmNoZWNrZWQgPSB0aGlzLnZhbHVlOw0KICAgICAgICAgICAgICAgICAgICBlbGVtZW50LnR5cGUgPSAiY2hlY2tib3giOw0KICAgICAgICAgICAgICAgICAgICBlbGVtZW50LmNsYXNzTmFtZSA9ICJidWxrIGhpZGVCdWxrIjsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAiQlVMS19IRUFEIjoNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIklOUFVUIik7DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQuY2hlY2tlZCA9IHRoaXMudmFsdWU7DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQudHlwZSA9ICJjaGVja2JveCI7DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQuY2xhc3NOYW1lID0gImJ1bGsgaGlkZUJ1bGsiOw0KICAgICAgICAgICAgICAgICAgICBlbGVtZW50LnNldEF0dHJpYnV0ZSgib25jbGljayIsICJqYXZhc2NyaXB0OiBzZWxlY3RBbGxDaGFubmVscygpIik7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgIklNRyI6DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KHRoaXMuY2hpbGRUeXBlKTsNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC5zZXRBdHRyaWJ1dGUoInNyYyIsIHRoaXMuaW1hZ2VVUkwpOw0KICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5pbWFnZVVSTCAhPSAiIikgew0KICAgICAgICAgICAgICAgICAgICAgICAgZWxlbWVudC5zZXRBdHRyaWJ1dGUoIm9uZXJyb3IiLCAiamF2YXNjcmlwdDogdGhpcy5vbmVycm9yPW51bGw7dGhpcy5zcmM9JyciKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIC8vb25lcnJvcj0idGhpcy5vbmVycm9yPW51bGw7dGhpcy5zcmM9J21pc3NpbmcuZ2lmJzsiDQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIHRkLmFwcGVuZENoaWxkKGVsZW1lbnQpOw0KICAgICAgICB9DQogICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgdGQuaW5uZXJIVE1MID0gdGhpcy52YWx1ZTsNCiAgICAgICAgfQ0KICAgICAgICBpZiAodGhpcy5vbmNsaWNrID09IHRydWUpIHsNCiAgICAgICAgICAgIHRkLnNldEF0dHJpYnV0ZSgib25jbGljayIsIHRoaXMub25jbGlja0Z1bmt0aW9uKTsNCiAgICAgICAgICAgIHRkLmNsYXNzTmFtZSA9ICJwb2ludGVyIjsNCiAgICAgICAgfQ0KICAgICAgICBpZiAodGhpcy50ZENsYXNzTmFtZSAhPSB1bmRlZmluZWQpIHsNCiAgICAgICAgICAgIHRkLmNsYXNzTmFtZSA9IHRoaXMudGRDbGFzc05hbWU7DQogICAgICAgIH0NCiAgICAgICAgcmV0dXJuIHRkOw0KICAgIH07DQogICAgcmV0dXJuIENlbGw7DQp9KCkpOw0KdmFyIFNob3dDb250ZW50ID0gLyoqIEBjbGFzcyAqLyAoZnVuY3Rpb24gKF9zdXBlcikgew0KICAgIF9fZXh0ZW5kcyhTaG93Q29udGVudCwgX3N1cGVyKTsNCiAgICBmdW5jdGlvbiBTaG93Q29udGVudChtZW51SUQpIHsNCiAgICAgICAgdmFyIF90aGlzID0gX3N1cGVyLmNhbGwodGhpcykgfHwgdGhpczsNCiAgICAgICAgX3RoaXMubWVudUlEID0gbWVudUlEOw0KICAgICAgICByZXR1cm4gX3RoaXM7DQogICAgfQ0KICAgIFNob3dDb250ZW50LnByb3RvdHlwZS5jcmVhdGVJbnB1dCA9IGZ1bmN0aW9uICh0eXBlLCBuYW1lLCB2YWx1ZSkgew0KICAgICAgICB2YXIgaW5wdXQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJJTlBVVCIpOw0KICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInR5cGUiLCB0eXBlKTsNCiAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJuYW1lIiwgbmFtZSk7DQogICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgidmFsdWUiLCB2YWx1ZSk7DQogICAgICAgIHJldHVybiBpbnB1dDsNCiAgICB9Ow0KICAgIFNob3dDb250ZW50LnByb3RvdHlwZS5zaG93ID0gZnVuY3Rpb24gKCkgew0KICAgICAgICBDT0xVTU5fVE9fU09SVCA9IC0xOw0KICAgICAgICAvLyBBbHRlbiBJbmhhbHQgbMO2c2NoZW4NCiAgICAgICAgdmFyIGRvYyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHRoaXMuRG9jdW1lbnRJRCk7DQogICAgICAgIGRvYy5pbm5lckhUTUwgPSAiIjsNCiAgICAgICAgc2hvd1ByZXZpZXcoZmFsc2UpOw0KICAgICAgICAvLyDDnGJlcnNjaHJpZnQNCiAgICAgICAgdmFyIGhlYWRsaW5lID0gbWVudUl0ZW1zW3RoaXMubWVudUlEXS5oZWFkbGluZTsNCiAgICAgICAgdmFyIG1lbnVLZXkgPSBtZW51SXRlbXNbdGhpcy5tZW51SURdLm1lbnVLZXk7DQogICAgICAgIHZhciBoID0gdGhpcy5jcmVhdGVIZWFkbGluZShoZWFkbGluZSk7DQogICAgICAgIGRvYy5hcHBlbmRDaGlsZChoKTsNCiAgICAgICAgdmFyIGhyID0gdGhpcy5jcmVhdGVIUigpOw0KICAgICAgICBkb2MuYXBwZW5kQ2hpbGQoaHIpOw0KICAgICAgICAvLyBJbnRlcmFrdGlvbg0KICAgICAgICB2YXIgZGl2ID0gdGhpcy5jcmVhdGVJbnRlcmFjdGlvbigpOw0KICAgICAgICBkb2MuYXBwZW5kQ2hpbGQoZGl2KTsNCiAgICAgICAgdmFyIGludGVyYWN0aW9uID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQodGhpcy5pbnRlcmFjdGlvbklEKTsNCiAgICAgICAgc3dpdGNoIChtZW51S2V5KSB7DQogICAgICAgICAgICBjYXNlICJwbGF5bGlzdCI6DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gdGhpcy5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgbWVudUtleSwgInt7LmJ1dHRvbi5uZXd9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgiaWQiLCAiLSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoInBsYXlsaXN0IiknKTsNCiAgICAgICAgICAgICAgICBpbnRlcmFjdGlvbi5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJmaWx0ZXIiOg0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IHRoaXMuY3JlYXRlSW5wdXQoImJ1dHRvbiIsIG1lbnVLZXksICJ7ey5idXR0b24ubmV3fX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoImlkIiwgLTEpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoImZpbHRlciIsIHRoaXMpJyk7DQogICAgICAgICAgICAgICAgaW50ZXJhY3Rpb24uYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAieG1sdHYiOg0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IHRoaXMuY3JlYXRlSW5wdXQoImJ1dHRvbiIsIG1lbnVLZXksICJ7ey5idXR0b24ubmV3fX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoImlkIiwgInhtbHR2Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgieG1sdHYiKScpOw0KICAgICAgICAgICAgICAgIGludGVyYWN0aW9uLmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInVzZXJzIjoNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSB0aGlzLmNyZWF0ZUlucHV0KCJidXR0b24iLCBtZW51S2V5LCAie3suYnV0dG9uLm5ld319Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJpZCIsICJ1c2VycyIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoInVzZXJzIiknKTsNCiAgICAgICAgICAgICAgICBpbnRlcmFjdGlvbi5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJtYXBwaW5nIjoNCiAgICAgICAgICAgICAgICBzaG93RWxlbWVudCgibG9hZGluZyIsIHRydWUpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IHRoaXMuY3JlYXRlSW5wdXQoImJ1dHRvbiIsIG1lbnVLZXksICJ7ey5idXR0b24uc2F2ZX19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoIm1hcHBpbmciLCAiIiwgIiIpJyk7DQogICAgICAgICAgICAgICAgaW50ZXJhY3Rpb24uYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IHRoaXMuY3JlYXRlSW5wdXQoImJ1dHRvbiIsIG1lbnVLZXksICJ7ey5idXR0b24uYnVsa0VkaXR9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBidWxrRWRpdCgpJyk7DQogICAgICAgICAgICAgICAgaW50ZXJhY3Rpb24uYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IHRoaXMuY3JlYXRlSW5wdXQoInNlYXJjaCIsICJzZWFyY2giLCAiIik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJpZCIsICJzZWFyY2hNYXBwaW5nIik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5idXR0b24uc2VhcmNofX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5jbGFzc05hbWUgPSAic2VhcmNoIjsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgJ2phdmFzY3JpcHQ6IHNlYXJjaEluTWFwcGluZygpJyk7DQogICAgICAgICAgICAgICAgaW50ZXJhY3Rpb24uYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAic2V0dGluZ3MiOg0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IHRoaXMuY3JlYXRlSW5wdXQoImJ1dHRvbiIsIG1lbnVLZXksICJ7ey5idXR0b24uc2F2ZX19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IHNhdmVTZXR0aW5ncygpOycpOw0KICAgICAgICAgICAgICAgIGludGVyYWN0aW9uLmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSB0aGlzLmNyZWF0ZUlucHV0KCJidXR0b24iLCBtZW51S2V5LCAie3suYnV0dG9uLmJhY2t1cH19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IGJhY2t1cCgpOycpOw0KICAgICAgICAgICAgICAgIGludGVyYWN0aW9uLmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSB0aGlzLmNyZWF0ZUlucHV0KCJidXR0b24iLCBtZW51S2V5LCAie3suYnV0dG9uLnJlc3RvcmV9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiByZXN0b3JlKCk7Jyk7DQogICAgICAgICAgICAgICAgaW50ZXJhY3Rpb24uYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIHZhciB3cmFwcGVyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiRElWIik7DQogICAgICAgICAgICAgICAgd3JhcHBlci5zZXRBdHRyaWJ1dGUoImlkIiwgImJveC13cmFwcGVyIik7DQogICAgICAgICAgICAgICAgZG9jLmFwcGVuZENoaWxkKHdyYXBwZXIpOw0KICAgICAgICAgICAgICAgIHRoaXMuRGl2SUQgPSAiY29udGVudF9zZXR0aW5ncyI7DQogICAgICAgICAgICAgICAgdmFyIHNldHRpbmdzID0gdGhpcy5jcmVhdGVESVYoKTsNCiAgICAgICAgICAgICAgICB3cmFwcGVyLmFwcGVuZENoaWxkKHNldHRpbmdzKTsNCiAgICAgICAgICAgICAgICBzaG93U2V0dGluZ3MoKTsNCiAgICAgICAgICAgICAgICByZXR1cm47DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJsb2ciOg0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IHRoaXMuY3JlYXRlSW5wdXQoImJ1dHRvbiIsIG1lbnVLZXksICJ7ey5idXR0b24ucmVzZXRMb2dzfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogcmVzZXRMb2dzKCk7Jyk7DQogICAgICAgICAgICAgICAgaW50ZXJhY3Rpb24uYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIHZhciB3cmFwcGVyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiRElWIik7DQogICAgICAgICAgICAgICAgd3JhcHBlci5zZXRBdHRyaWJ1dGUoImlkIiwgImJveC13cmFwcGVyIik7DQogICAgICAgICAgICAgICAgZG9jLmFwcGVuZENoaWxkKHdyYXBwZXIpOw0KICAgICAgICAgICAgICAgIHRoaXMuRGl2SUQgPSAiY29udGVudF9sb2ciOw0KICAgICAgICAgICAgICAgIHZhciBsb2dzID0gdGhpcy5jcmVhdGVESVYoKTsNCiAgICAgICAgICAgICAgICB3cmFwcGVyLmFwcGVuZENoaWxkKGxvZ3MpOw0KICAgICAgICAgICAgICAgIHNob3dMb2dzKHRydWUpOw0KICAgICAgICAgICAgICAgIHJldHVybjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImxvZ291dCI6DQogICAgICAgICAgICAgICAgbG9jYXRpb24ucmVsb2FkKCk7DQogICAgICAgICAgICAgICAgZG9jdW1lbnQuY29va2llID0gIlRva2VuPSA7IGV4cGlyZXMgPSBUaHUsIDAxIEphbiAxOTcwIDAwOjAwOjAwIEdNVCI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBkZWZhdWx0Og0KICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKCJTaG93IGNvbnRlbnQgKG1lbnVLZXkpOiIsIG1lbnVLZXkpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICB9DQogICAgICAgIC8vIFRhYmVsbGUgZXJzdGVsbGVuIChmYWxscyBiZW7DtnRpZ3QpDQogICAgICAgIHZhciB0YWJsZUhlYWRlciA9IG1lbnVJdGVtc1t0aGlzLm1lbnVJRF0udGFibGVIZWFkZXI7DQogICAgICAgIGlmICh0YWJsZUhlYWRlci5sZW5ndGggPiAwKSB7DQogICAgICAgICAgICB2YXIgd3JhcHBlciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIkRJViIpOw0KICAgICAgICAgICAgZG9jLmFwcGVuZENoaWxkKHdyYXBwZXIpOw0KICAgICAgICAgICAgd3JhcHBlci5zZXRBdHRyaWJ1dGUoImlkIiwgImJveC13cmFwcGVyIik7DQogICAgICAgICAgICB2YXIgdGFibGUgPSB0aGlzLmNyZWF0ZVRBQkxFKCk7DQogICAgICAgICAgICB3cmFwcGVyLmFwcGVuZENoaWxkKHRhYmxlKTsNCiAgICAgICAgICAgIHZhciBoZWFkZXIgPSB0aGlzLmNyZWF0ZVRhYmxlUm93KCk7DQogICAgICAgICAgICB0YWJsZS5hcHBlbmRDaGlsZChoZWFkZXIpOw0KICAgICAgICAgICAgLy8gS29wZnplaWxlIGRlciBUYWJsbGUNCiAgICAgICAgICAgIHRhYmxlSGVhZGVyLmZvckVhY2goZnVuY3Rpb24gKGVsZW1lbnQpIHsNCiAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGVsZW1lbnQ7DQogICAgICAgICAgICAgICAgaWYgKGVsZW1lbnQgPT0gIkJVTEsiKSB7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIkJVTEtfSEVBRCI7DQogICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBmYWxzZTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgaWYgKG1lbnVLZXkgPT0gIm1hcHBpbmciKSB7DQogICAgICAgICAgICAgICAgICAgIGlmIChlbGVtZW50ID09ICJ7ey5tYXBwaW5nLnRhYmxlLmNoTm99fSIpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwub25jbGljayA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLm9uY2xpY2tGdW5rdGlvbiA9ICJqYXZhc2NyaXB0OiBzb3J0VGFibGUoMSk7IjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudGRDbGFzc05hbWUgPSAic29ydFRoaXMiOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIGlmIChlbGVtZW50ID09ICJ7ey5tYXBwaW5nLnRhYmxlLmNoYW5uZWxOYW1lfX0iKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLm9uY2xpY2sgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5vbmNsaWNrRnVua3Rpb24gPSAiamF2YXNjcmlwdDogc29ydFRhYmxlKDMpOyI7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgaWYgKGVsZW1lbnQgPT0gInt7Lm1hcHBpbmcudGFibGUucGxheWxpc3R9fSIpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwub25jbGljayA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLm9uY2xpY2tGdW5rdGlvbiA9ICJqYXZhc2NyaXB0OiBzb3J0VGFibGUoNCk7IjsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBpZiAoZWxlbWVudCA9PSAie3subWFwcGluZy50YWJsZS5ncm91cFRpdGxlfX0iKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLm9uY2xpY2sgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5vbmNsaWNrRnVua3Rpb24gPSAiamF2YXNjcmlwdDogc29ydFRhYmxlKDUpOyI7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgaGVhZGVyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgIH0pOw0KICAgICAgICAgICAgdGFibGUuYXBwZW5kQ2hpbGQoaGVhZGVyKTsNCiAgICAgICAgICAgIC8vIEluaGFsdCBkZXIgVGFiZWxsZQ0KICAgICAgICAgICAgdmFyIHJvd3MgPSB0aGlzLmNyZWF0ZVRhYmxlQ29udGVudChtZW51S2V5KTsNCiAgICAgICAgICAgIHJvd3MuZm9yRWFjaChmdW5jdGlvbiAodHIpIHsNCiAgICAgICAgICAgICAgICB0YWJsZS5hcHBlbmRDaGlsZCh0cik7DQogICAgICAgICAgICB9KTsNCiAgICAgICAgfQ0KICAgICAgICBzd2l0Y2ggKG1lbnVLZXkpIHsNCiAgICAgICAgICAgIGNhc2UgIm1hcHBpbmciOg0KICAgICAgICAgICAgICAgIHNvcnRUYWJsZSgxKTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImZpbHRlciI6DQogICAgICAgICAgICAgICAgc2hvd1ByZXZpZXcodHJ1ZSk7DQogICAgICAgICAgICAgICAgc29ydFRhYmxlKDApOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgICAgICBDT0xVTU5fVE9fU09SVCA9IC0xOw0KICAgICAgICAgICAgICAgIHNvcnRUYWJsZSgwKTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgfQ0KICAgICAgICBzaG93RWxlbWVudCgibG9hZGluZyIsIGZhbHNlKTsNCiAgICB9Ow0KICAgIHJldHVybiBTaG93Q29udGVudDsNCn0oQ29udGVudCkpOw0KZnVuY3Rpb24gUGFnZVJlYWR5KCkgew0KICAgIHZhciBzZXJ2ZXIgPSBuZXcgU2VydmVyKCJnZXRTZXJ2ZXJDb25maWciKTsNCiAgICBzZXJ2ZXIucmVxdWVzdChuZXcgT2JqZWN0KCkpOw0KICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJyZXNpemUiLCBmdW5jdGlvbiAoKSB7DQogICAgICAgIGNhbGN1bGF0ZVdyYXBwZXJIZWlnaHQoKTsNCiAgICB9LCB0cnVlKTsNCiAgICBzZXRJbnRlcnZhbChmdW5jdGlvbiAoKSB7DQogICAgICAgIHVwZGF0ZUxvZygpOw0KICAgIH0sIDEwMDAwKTsNCiAgICByZXR1cm47DQp9DQpmdW5jdGlvbiBjcmVhdGVMYXlvdXQoKSB7DQogICAgLy8gQ2xpZW50IEluZm8NCiAgICB2YXIgb2JqID0gU0VSVkVSWyJjbGllbnRJbmZvIl07DQogICAgdmFyIGtleXMgPSBnZXRPYmpLZXlzKG9iaik7DQogICAgZm9yICh2YXIgaSA9IDA7IGkgPCBrZXlzLmxlbmd0aDsgaSsrKSB7DQogICAgICAgIGlmIChkb2N1bWVudC5nZXRFbGVtZW50QnlJZChrZXlzW2ldKSkgew0KICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoa2V5c1tpXSkuaW5uZXJIVE1MID0gb2JqW2tleXNbaV1dOw0KICAgICAgICB9DQogICAgfQ0KICAgIGlmICghZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm1haW4tbWVudSIpKSB7DQogICAgICAgIHJldHVybjsNCiAgICB9DQogICAgLy8gTWVuw7wgZXJzdGVsbGVuDQogICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm1haW4tbWVudSIpLmlubmVySFRNTCA9ICIiOw0KICAgIGZvciAodmFyIGlfMSA9IDA7IGlfMSA8IG1lbnVJdGVtcy5sZW5ndGg7IGlfMSsrKSB7DQogICAgICAgIG1lbnVJdGVtc1tpXzFdLmlkID0gaV8xOw0KICAgICAgICBzd2l0Y2ggKG1lbnVJdGVtc1tpXzFdWyJtZW51S2V5Il0pIHsNCiAgICAgICAgICAgIGNhc2UgInVzZXJzIjoNCiAgICAgICAgICAgIGNhc2UgImxvZ291dCI6DQogICAgICAgICAgICAgICAgaWYgKFNFUlZFUlsic2V0dGluZ3MiXVsiYXV0aGVudGljYXRpb24ud2ViIl0gPT0gdHJ1ZSkgew0KICAgICAgICAgICAgICAgICAgICBtZW51SXRlbXNbaV8xXS5jcmVhdGVJdGVtKCk7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAibWFwcGluZyI6DQogICAgICAgICAgICBjYXNlICJ4bWx0diI6DQogICAgICAgICAgICAgICAgaWYgKFNFUlZFUlsiY2xpZW50SW5mbyJdWyJlcGdTb3VyY2UiXSA9PSAiWEVQRyIpIHsNCiAgICAgICAgICAgICAgICAgICAgbWVudUl0ZW1zW2lfMV0uY3JlYXRlSXRlbSgpOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICAgICAgbWVudUl0ZW1zW2lfMV0uY3JlYXRlSXRlbSgpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICB9DQogICAgfQ0KICAgIHJldHVybjsNCn0NCmZ1bmN0aW9uIG9wZW5UaGlzTWVudShlbGVtZW50KSB7DQogICAgdmFyIGlkID0gZWxlbWVudC5pZDsNCiAgICB2YXIgY29udGVudCA9IG5ldyBTaG93Q29udGVudChpZCk7DQogICAgY29udGVudC5zaG93KCk7DQogICAgY2FsY3VsYXRlV3JhcHBlckhlaWdodCgpOw0KICAgIHJldHVybjsNCn0NCnZhciBQb3B1cFdpbmRvdyA9IC8qKiBAY2xhc3MgKi8gKGZ1bmN0aW9uICgpIHsNCiAgICBmdW5jdGlvbiBQb3B1cFdpbmRvdygpIHsNCiAgICAgICAgdGhpcy5Eb2N1bWVudElEID0gInBvcHVwLWN1c3RvbSI7DQogICAgICAgIHRoaXMuSW50ZXJhY3Rpb25JRCA9ICJpbnRlcmFjdGlvbiI7DQogICAgICAgIHRoaXMuZG9jID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQodGhpcy5Eb2N1bWVudElEKTsNCiAgICB9DQogICAgUG9wdXBXaW5kb3cucHJvdG90eXBlLmNyZWF0ZVRpdGxlID0gZnVuY3Rpb24gKHRpdGxlKSB7DQogICAgICAgIHZhciB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgIHRkLmNsYXNzTmFtZSA9ICJsZWZ0IjsNCiAgICAgICAgdGQuaW5uZXJIVE1MID0gdGl0bGUgKyAiOiI7DQogICAgICAgIHJldHVybiB0ZDsNCiAgICB9Ow0KICAgIFBvcHVwV2luZG93LnByb3RvdHlwZS5jcmVhdGVDb250ZW50ID0gZnVuY3Rpb24gKGVsZW1lbnQpIHsNCiAgICAgICAgdmFyIHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgdGQuYXBwZW5kQ2hpbGQoZWxlbWVudCk7DQogICAgICAgIHJldHVybiB0ZDsNCiAgICB9Ow0KICAgIFBvcHVwV2luZG93LnByb3RvdHlwZS5jcmVhdGVJbnRlcmFjdGlvbiA9IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgdmFyIGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOw0KICAgICAgICBkaXYuc2V0QXR0cmlidXRlKCJpZCIsICJwb3B1cC1pbnRlcmFjdGlvbiIpOw0KICAgICAgICBkaXYuY2xhc3NOYW1lID0gImludGVyYWN0aW9uIjsNCiAgICAgICAgdGhpcy5kb2MuYXBwZW5kQ2hpbGQoZGl2KTsNCiAgICB9Ow0KICAgIHJldHVybiBQb3B1cFdpbmRvdzsNCn0oKSk7DQp2YXIgUG9wdXBDb250ZW50ID0gLyoqIEBjbGFzcyAqLyAoZnVuY3Rpb24gKF9zdXBlcikgew0KICAgIF9fZXh0ZW5kcyhQb3B1cENvbnRlbnQsIF9zdXBlcik7DQogICAgZnVuY3Rpb24gUG9wdXBDb250ZW50KCkgew0KICAgICAgICB2YXIgX3RoaXMgPSBfc3VwZXIgIT09IG51bGwgJiYgX3N1cGVyLmFwcGx5KHRoaXMsIGFyZ3VtZW50cykgfHwgdGhpczsNCiAgICAgICAgX3RoaXMudGFibGUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJUQUJMRSIpOw0KICAgICAgICByZXR1cm4gX3RoaXM7DQogICAgfQ0KICAgIFBvcHVwQ29udGVudC5wcm90b3R5cGUuY3JlYXRlSGVhZGxpbmUgPSBmdW5jdGlvbiAoaGVhZGxpbmUpIHsNCiAgICAgICAgdGhpcy5kb2MuaW5uZXJIVE1MID0gIiI7DQogICAgICAgIHZhciBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiSDMiKTsNCiAgICAgICAgZWxlbWVudC5pbm5lckhUTUwgPSBoZWFkbGluZS50b1VwcGVyQ2FzZSgpOw0KICAgICAgICB0aGlzLmRvYy5hcHBlbmRDaGlsZChlbGVtZW50KTsNCiAgICAgICAgLy8gVGFiZWxsZSBlcnN0ZWxsZW4NCiAgICAgICAgdGhpcy50YWJsZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlRBQkxFIik7DQogICAgICAgIHRoaXMuZG9jLmFwcGVuZENoaWxkKHRoaXMudGFibGUpOw0KICAgIH07DQogICAgUG9wdXBDb250ZW50LnByb3RvdHlwZS5hcHBlbmRSb3cgPSBmdW5jdGlvbiAodGl0bGUsIGVsZW1lbnQpIHsNCiAgICAgICAgdmFyIHRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVFIiKTsNCiAgICAgICAgLy8gQmV6ZWljaG51bmcNCiAgICAgICAgaWYgKHRpdGxlLmxlbmd0aCAhPSAwKSB7DQogICAgICAgICAgICB0ci5hcHBlbmRDaGlsZCh0aGlzLmNyZWF0ZVRpdGxlKHRpdGxlKSk7DQogICAgICAgIH0NCiAgICAgICAgLy8gQ29udGVudA0KICAgICAgICB0ci5hcHBlbmRDaGlsZCh0aGlzLmNyZWF0ZUNvbnRlbnQoZWxlbWVudCkpOw0KICAgICAgICB0aGlzLnRhYmxlLmFwcGVuZENoaWxkKHRyKTsNCiAgICB9Ow0KICAgIFBvcHVwQ29udGVudC5wcm90b3R5cGUuY3JlYXRlSW5wdXQgPSBmdW5jdGlvbiAodHlwZSwgbmFtZSwgdmFsdWUpIHsNCiAgICAgICAgdmFyIGlucHV0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiSU5QVVQiKTsNCiAgICAgICAgaWYgKHZhbHVlID09IHVuZGVmaW5lZCkgew0KICAgICAgICAgICAgdmFsdWUgPSAiIjsNCiAgICAgICAgfQ0KICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInR5cGUiLCB0eXBlKTsNCiAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJuYW1lIiwgbmFtZSk7DQogICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgidmFsdWUiLCB2YWx1ZSk7DQogICAgICAgIHJldHVybiBpbnB1dDsNCiAgICB9Ow0KICAgIFBvcHVwQ29udGVudC5wcm90b3R5cGUuY3JlYXRlQ2hlY2tib3ggPSBmdW5jdGlvbiAobmFtZSkgew0KICAgICAgICB2YXIgaW5wdXQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJJTlBVVCIpOw0KICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInR5cGUiLCAiY2hlY2tib3giKTsNCiAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJuYW1lIiwgbmFtZSk7DQogICAgICAgIHJldHVybiBpbnB1dDsNCiAgICB9Ow0KICAgIFBvcHVwQ29udGVudC5wcm90b3R5cGUuY3JlYXRlU2VsZWN0ID0gZnVuY3Rpb24gKHRleHQsIHZhbHVlcywgc2V0LCBkYktleSkgew0KICAgICAgICB2YXIgc2VsZWN0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiU0VMRUNUIik7DQogICAgICAgIHNlbGVjdC5zZXRBdHRyaWJ1dGUoIm5hbWUiLCBkYktleSk7DQogICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGV4dC5sZW5ndGg7IGkrKykgew0KICAgICAgICAgICAgdmFyIG9wdGlvbiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIk9QVElPTiIpOw0KICAgICAgICAgICAgb3B0aW9uLnNldEF0dHJpYnV0ZSgidmFsdWUiLCB2YWx1ZXNbaV0pOw0KICAgICAgICAgICAgb3B0aW9uLmlubmVyVGV4dCA9IHRleHRbaV07DQogICAgICAgICAgICBzZWxlY3QuYXBwZW5kQ2hpbGQob3B0aW9uKTsNCiAgICAgICAgfQ0KICAgICAgICBpZiAoc2V0ICE9ICIiKSB7DQogICAgICAgICAgICBzZWxlY3QudmFsdWUgPSBzZXQ7DQogICAgICAgIH0NCiAgICAgICAgaWYgKHNldCA9PSB1bmRlZmluZWQpIHsNCiAgICAgICAgICAgIHNlbGVjdC52YWx1ZSA9IHZhbHVlc1swXTsNCiAgICAgICAgfQ0KICAgICAgICByZXR1cm4gc2VsZWN0Ow0KICAgIH07DQogICAgUG9wdXBDb250ZW50LnByb3RvdHlwZS5zZWxlY3RPcHRpb24gPSBmdW5jdGlvbiAoc2VsZWN0LCB2YWx1ZSkgew0KICAgICAgICAvL3NlbGVjdC5zZWxlY3RlZE9wdGlvbnMgPSB2YWx1ZQ0KICAgICAgICB2YXIgcyA9IHNlbGVjdDsNCiAgICAgICAgcy5vcHRpb25zW3Muc2VsZWN0ZWRJbmRleF0udmFsdWUgPSB2YWx1ZTsNCiAgICAgICAgcmV0dXJuIHNlbGVjdDsNCiAgICB9Ow0KICAgIFBvcHVwQ29udGVudC5wcm90b3R5cGUuZGVzY3JpcHRpb24gPSBmdW5jdGlvbiAodmFsdWUpIHsNCiAgICAgICAgdmFyIHRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVFIiKTsNCiAgICAgICAgdmFyIHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgdmFyIHNwYW4gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJQUkUiKTsNCiAgICAgICAgc3Bhbi5pbm5lckhUTUwgPSB2YWx1ZTsNCiAgICAgICAgdHIuYXBwZW5kQ2hpbGQodGQpOw0KICAgICAgICB0ci5hcHBlbmRDaGlsZCh0aGlzLmNyZWF0ZUNvbnRlbnQoc3BhbikpOw0KICAgICAgICB0aGlzLnRhYmxlLmFwcGVuZENoaWxkKHRyKTsNCiAgICB9Ow0KICAgIC8vIEludGVyYWt0aW9uDQogICAgUG9wdXBDb250ZW50LnByb3RvdHlwZS5hZGRJbnRlcmFjdGlvbiA9IGZ1bmN0aW9uIChlbGVtZW50KSB7DQogICAgICAgIHZhciBpbnRlcmFjdGlvbiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJwb3B1cC1pbnRlcmFjdGlvbiIpOw0KICAgICAgICBpbnRlcmFjdGlvbi5hcHBlbmRDaGlsZChlbGVtZW50KTsNCiAgICB9Ow0KICAgIHJldHVybiBQb3B1cENvbnRlbnQ7DQp9KFBvcHVwV2luZG93KSk7DQpmdW5jdGlvbiBvcGVuUG9wVXAoZGF0YVR5cGUsIGVsZW1lbnQpIHsNCiAgICB2YXIgZGF0YSA9IG5ldyBPYmplY3QoKTsNCiAgICB2YXIgaWQ7DQogICAgc3dpdGNoIChlbGVtZW50KSB7DQogICAgICAgIGNhc2UgdW5kZWZpbmVkOg0KICAgICAgICAgICAgc3dpdGNoIChkYXRhVHlwZSkgew0KICAgICAgICAgICAgICAgIGNhc2UgImdyb3VwLXRpdGxlIjoNCiAgICAgICAgICAgICAgICAgICAgaWYgKGlkID09IHVuZGVmaW5lZCkgew0KICAgICAgICAgICAgICAgICAgICAgICAgaWQgPSAtMTsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBkYXRhID0gZ2V0TG9jYWxEYXRhKCJmaWx0ZXIiLCBpZCk7DQogICAgICAgICAgICAgICAgICAgIGRhdGFbInR5cGUiXSA9ICJncm91cC10aXRsZSI7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgImN1c3RvbS1maWx0ZXIiOg0KICAgICAgICAgICAgICAgICAgICBpZiAoaWQgPT0gdW5kZWZpbmVkKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBpZCA9IC0xOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIGRhdGEgPSBnZXRMb2NhbERhdGEoImZpbHRlciIsIGlkKTsNCiAgICAgICAgICAgICAgICAgICAgZGF0YVsidHlwZSJdID0gImN1c3RvbS1maWx0ZXIiOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBkZWZhdWx0Og0KICAgICAgICAgICAgICAgICAgICBkYXRhWyJpZC5wcm92aWRlciJdID0gIi0iOw0KICAgICAgICAgICAgICAgICAgICBkYXRhWyJ0eXBlIl0gPSBkYXRhVHlwZTsNCiAgICAgICAgICAgICAgICAgICAgaWQgPSAiLSI7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICBpZCA9IGVsZW1lbnQuaWQ7DQogICAgICAgICAgICBkYXRhID0gZ2V0TG9jYWxEYXRhKGRhdGFUeXBlLCBpZCk7DQogICAgICAgICAgICBicmVhazsNCiAgICB9DQogICAgdmFyIGNvbnRlbnQgPSBuZXcgUG9wdXBDb250ZW50KCk7DQogICAgc3dpdGNoIChkYXRhVHlwZSkgew0KICAgICAgICBjYXNlICJwbGF5bGlzdCI6DQogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUhlYWRsaW5lKCJ7ey5wbGF5bGlzdC5wbGF5bGlzdFR5cGUudGl0bGV9fSIpOw0KICAgICAgICAgICAgLy8gVHlwZQ0KICAgICAgICAgICAgdmFyIHRleHQgPSBbIk0zVSIsICJIREhvbWVSdW4iXTsNCiAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBbImphdmFzY3JpcHQ6IG9wZW5Qb3BVcCgnbTN1JykiLCAiamF2YXNjcmlwdDogb3BlblBvcFVwKCdoZGhyJykiXTsNCiAgICAgICAgICAgIHZhciBzZWxlY3QgPSBjb250ZW50LmNyZWF0ZVNlbGVjdCh0ZXh0LCB2YWx1ZXMsICIiLCAidHlwZSIpOw0KICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgiaWQiLCAidHlwZSIpOw0KICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAnamF2YXNjcmlwdDogY2hhbmdlQnV0dG9uQWN0aW9uKHRoaXMsICJuZXh0IiwgIm9uY2xpY2siKScpOyAvLyBjaGFuZ2VCdXR0b25BY3Rpb24NCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5wbGF5bGlzdC50eXBlLnRpdGxlfX0iLCBzZWxlY3QpOw0KICAgICAgICAgICAgLy8gSW50ZXJha3Rpb24NCiAgICAgICAgICAgIGNvbnRlbnQuY3JlYXRlSW50ZXJhY3Rpb24oKTsNCiAgICAgICAgICAgIC8vIEFiYnJlY2hlbg0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImNhbmNlbCIsICJ7ey5idXR0b24uY2FuY2VsfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBzaG93RWxlbWVudCgicG9wdXAiLCBmYWxzZSk7Jyk7DQogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIC8vIFdlaXRlcg0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgIm5leHQiLCAie3suYnV0dG9uLm5leHR9fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgibTN1IiknKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgiaWQiLCAnbmV4dCcpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSAibTN1IjoNCiAgICAgICAgICAgIGNvbnRlbnQuY3JlYXRlSGVhZGxpbmUoZGF0YVR5cGUpOw0KICAgICAgICAgICAgLy8gTmFtZQ0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gIm5hbWUiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnBsYXlsaXN0Lm5hbWUucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnBsYXlsaXN0Lm5hbWUudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIEJlc2NocmVpYnVuZw0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gImRlc2NyaXB0aW9uIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5wbGF5bGlzdC5kZXNjcmlwdGlvbi5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sucGxheWxpc3QuZGVzY3JpcHRpb24udGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIFVSTA0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gImZpbGUuc291cmNlIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5wbGF5bGlzdC5maWxlTTNVLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5wbGF5bGlzdC5maWxlTTNVLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBUdW5lcg0KICAgICAgICAgICAgaWYgKFNFUlZFUlsic2V0dGluZ3MiXVsiYnVmZmVyIl0gIT0gIi0iKSB7DQogICAgICAgICAgICAgICAgdmFyIHRleHQgPSBuZXcgQXJyYXkoKTsNCiAgICAgICAgICAgICAgICB2YXIgdmFsdWVzID0gbmV3IEFycmF5KCk7DQogICAgICAgICAgICAgICAgZm9yICh2YXIgaSA9IDE7IGkgPD0gMTAwOyBpKyspIHsNCiAgICAgICAgICAgICAgICAgICAgdGV4dC5wdXNoKGkudG9TdHJpbmcoKSk7DQogICAgICAgICAgICAgICAgICAgIHZhbHVlcy5wdXNoKGkudG9TdHJpbmcoKSk7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIHZhciBkYktleSA9ICJ0dW5lciI7DQogICAgICAgICAgICAgICAgdmFyIHNlbGVjdCA9IGNvbnRlbnQuY3JlYXRlU2VsZWN0KHRleHQsIHZhbHVlcywgZGF0YVtkYktleV0sIGRiS2V5KTsNCiAgICAgICAgICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJvbmZvY3VzIiwgImphdmFzY3JpcHQ6IHJldHVybjsiKTsNCiAgICAgICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sucGxheWxpc3QudHVuZXIudGl0bGV9fSIsIHNlbGVjdCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICB2YXIgZGJLZXkgPSAidHVuZXIiOw0KICAgICAgICAgICAgICAgIGlmIChkYXRhW2RiS2V5XSA9PSB1bmRlZmluZWQpIHsNCiAgICAgICAgICAgICAgICAgICAgZGF0YVtkYktleV0gPSAxOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInJlYWRvbmx5IiwgInRydWUiKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5jbGFzc05hbWUgPSAibm90QXZhaWxhYmxlIjsNCiAgICAgICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sucGxheWxpc3QudHVuZXIudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGNvbnRlbnQuZGVzY3JpcHRpb24oInt7LnBsYXlsaXN0LnR1bmVyLmRlc2NyaXB0aW9ufX0iKTsNCiAgICAgICAgICAgIC8vIEludGVyYWt0aW9uDQogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUludGVyYWN0aW9uKCk7DQogICAgICAgICAgICAvLyBMw7ZzY2hlbg0KICAgICAgICAgICAgaWYgKGRhdGFbImlkLnByb3ZpZGVyIl0gIT0gIi0iKSB7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImRlbGV0ZSIsICJ7ey5idXR0b24uZGVsZXRlfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5jbGFzc05hbWUgPSAiZGVsZXRlIjsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogc2F2ZVBvcHVwRGF0YSgibTN1IiwgIicgKyBpZCArICciLCB0cnVlLCAwKScpOw0KICAgICAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgZWxzZSB7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImJhY2siLCAie3suYnV0dG9uLmJhY2t9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoInBsYXlsaXN0IiknKTsNCiAgICAgICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIC8vIEFiYnJlY2hlbg0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImNhbmNlbCIsICJ7ey5idXR0b24uY2FuY2VsfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBzaG93RWxlbWVudCgicG9wdXAiLCBmYWxzZSk7Jyk7DQogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIC8vIEFrdHVhbGlzaWVyZW4NCiAgICAgICAgICAgIGlmIChkYXRhWyJpZC5wcm92aWRlciJdICE9ICItIikgew0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJ1cGRhdGUiLCAie3suYnV0dG9uLnVwZGF0ZX19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoIm0zdSIsICInICsgaWQgKyAnIiwgZmFsc2UsIDEpJyk7DQogICAgICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICAvLyBTcGVpY2hlcm4NCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJzYXZlIiwgInt7LmJ1dHRvbi5zYXZlfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBzYXZlUG9wdXBEYXRhKCJtM3UiLCAiJyArIGlkICsgJyIsIGZhbHNlLCAwKScpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSAiaGRociI6DQogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUhlYWRsaW5lKGRhdGFUeXBlKTsNCiAgICAgICAgICAgIC8vIE5hbWUNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJuYW1lIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5wbGF5bGlzdC5uYW1lLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5wbGF5bGlzdC5uYW1lLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBCZXNjaHJlaWJ1bmcNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJkZXNjcmlwdGlvbiI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3sucGxheWxpc3QuZGVzY3JpcHRpb24ucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnBsYXlsaXN0LmRlc2NyaXB0aW9uLnBsYWNlaG9sZGVyfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBVUkwNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJmaWxlLnNvdXJjZSI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3sucGxheWxpc3QuZmlsZUhESFIucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnBsYXlsaXN0LmZpbGVIREhSLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBUdW5lcg0KICAgICAgICAgICAgaWYgKFNFUlZFUlsic2V0dGluZ3MiXVsiYnVmZmVyIl0gIT0gIi0iKSB7DQogICAgICAgICAgICAgICAgdmFyIHRleHQgPSBuZXcgQXJyYXkoKTsNCiAgICAgICAgICAgICAgICB2YXIgdmFsdWVzID0gbmV3IEFycmF5KCk7DQogICAgICAgICAgICAgICAgZm9yICh2YXIgaSA9IDE7IGkgPD0gMTAwOyBpKyspIHsNCiAgICAgICAgICAgICAgICAgICAgdGV4dC5wdXNoKGkudG9TdHJpbmcoKSk7DQogICAgICAgICAgICAgICAgICAgIHZhbHVlcy5wdXNoKGkudG9TdHJpbmcoKSk7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIHZhciBkYktleSA9ICJ0dW5lciI7DQogICAgICAgICAgICAgICAgdmFyIHNlbGVjdCA9IGNvbnRlbnQuY3JlYXRlU2VsZWN0KHRleHQsIHZhbHVlcywgZGF0YVtkYktleV0sIGRiS2V5KTsNCiAgICAgICAgICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJvbmZvY3VzIiwgImphdmFzY3JpcHQ6IHJldHVybjsiKTsNCiAgICAgICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sucGxheWxpc3QudHVuZXIudGl0bGV9fSIsIHNlbGVjdCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICB2YXIgZGJLZXkgPSAidHVuZXIiOw0KICAgICAgICAgICAgICAgIGlmIChkYXRhW2RiS2V5XSA9PSB1bmRlZmluZWQpIHsNCiAgICAgICAgICAgICAgICAgICAgZGF0YVtkYktleV0gPSAxOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInJlYWRvbmx5IiwgInRydWUiKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5jbGFzc05hbWUgPSAibm90QXZhaWxhYmxlIjsNCiAgICAgICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sucGxheWxpc3QudHVuZXIudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGNvbnRlbnQuZGVzY3JpcHRpb24oInt7LnBsYXlsaXN0LnR1bmVyLmRlc2NyaXB0aW9ufX0iKTsNCiAgICAgICAgICAgIC8vIEludGVyYWt0aW9uDQogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUludGVyYWN0aW9uKCk7DQogICAgICAgICAgICAvLyBMw7ZzY2hlbg0KICAgICAgICAgICAgaWYgKGRhdGFbImlkLnByb3ZpZGVyIl0gIT0gIi0iKSB7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImRlbGV0ZSIsICJ7ey5idXR0b24uZGVsZXRlfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogc2F2ZVBvcHVwRGF0YSgiaGRociIsICInICsgaWQgKyAnIiwgdHJ1ZSwgMCknKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5jbGFzc05hbWUgPSAiZGVsZXRlIjsNCiAgICAgICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJiYWNrIiwgInt7LmJ1dHRvbi5iYWNrfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJwbGF5bGlzdCIpJyk7DQogICAgICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICAvLyBBYmJyZWNoZW4NCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJjYW5jZWwiLCAie3suYnV0dG9uLmNhbmNlbH19Iik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogc2hvd0VsZW1lbnQoInBvcHVwIiwgZmFsc2UpOycpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICAvLyBBa3R1YWxpc2llcmVuDQogICAgICAgICAgICBpZiAoZGF0YVsiaWQucHJvdmlkZXIiXSAhPSAiLSIpIHsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAidXBkYXRlIiwgInt7LmJ1dHRvbi51cGRhdGV9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBzYXZlUG9wdXBEYXRhKCJoZGhyIiwgIicgKyBpZCArICciLCBmYWxzZSwgMSknKTsNCiAgICAgICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIC8vIFNwZWljaGVybg0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgInNhdmUiLCAie3suYnV0dG9uLnNhdmV9fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoImhkaHIiLCAiJyArIGlkICsgJyIsIGZhbHNlLCAwKScpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSAiZmlsdGVyIjoNCiAgICAgICAgICAgIGNvbnRlbnQuY3JlYXRlSGVhZGxpbmUoZGF0YVR5cGUpOw0KICAgICAgICAgICAgLy8gVHlwZQ0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gInR5cGUiOw0KICAgICAgICAgICAgdmFyIHRleHQgPSBbIk0zVTogIiArICJ7ey5maWx0ZXIudHlwZS5ncm91cFRpdGxlfX0iLCAieFRlVmU6ICIgKyAie3suZmlsdGVyLnR5cGUuY3VzdG9tRmlsdGVyfX0iXTsNCiAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBbImphdmFzY3JpcHQ6IG9wZW5Qb3BVcCgnZ3JvdXAtdGl0bGUnKSIsICJqYXZhc2NyaXB0OiBvcGVuUG9wVXAoJ2N1c3RvbS1maWx0ZXInKSJdOw0KICAgICAgICAgICAgdmFyIHNlbGVjdCA9IGNvbnRlbnQuY3JlYXRlU2VsZWN0KHRleHQsIHZhbHVlcywgImphdmFzY3JpcHQ6IG9wZW5Qb3BVcCgnZ3JvdXAtdGl0bGUnKSIsIGRiS2V5KTsNCiAgICAgICAgICAgIHNlbGVjdC5zZXRBdHRyaWJ1dGUoImlkIiwgaWQpOw0KICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAnamF2YXNjcmlwdDogY2hhbmdlQnV0dG9uQWN0aW9uKHRoaXMsICJuZXh0IiwgIm9uY2xpY2siKTsnKTsgLy8gY2hhbmdlQnV0dG9uQWN0aW9uDQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3suZmlsdGVyLnR5cGUudGl0bGV9fSIsIHNlbGVjdCk7DQogICAgICAgICAgICAvLyBJbnRlcmFrdGlvbg0KICAgICAgICAgICAgY29udGVudC5jcmVhdGVJbnRlcmFjdGlvbigpOw0KICAgICAgICAgICAgLy8gQWJicmVjaGVuDQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAiY2FuY2VsIiwgInt7LmJ1dHRvbi5jYW5jZWx9fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IHNob3dFbGVtZW50KCJwb3B1cCIsIGZhbHNlKTsnKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgLy8gV2VpdGVyDQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAibmV4dCIsICJ7ey5idXR0b24ubmV4dH19Iik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJncm91cC10aXRsZSIpJyk7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoImlkIiwgJ25leHQnKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGNhc2UgImN1c3RvbS1maWx0ZXIiOg0KICAgICAgICBjYXNlICJncm91cC10aXRsZSI6DQogICAgICAgICAgICBzd2l0Y2ggKGRhdGFUeXBlKSB7DQogICAgICAgICAgICAgICAgY2FzZSAiY3VzdG9tLWZpbHRlciI6DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuY3JlYXRlSGVhZGxpbmUoInt7LmZpbHRlci5jdXN0b219fSIpOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBjYXNlICJncm91cC10aXRsZSI6DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuY3JlYXRlSGVhZGxpbmUoInt7LmZpbHRlci5ncm91cH19Iik7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgLy8gTmFtZSAgICAgIA0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gIm5hbWUiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LmZpbHRlci5uYW1lLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5maWx0ZXIubmFtZS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgLy8gQmVzY2hyZWlidW5nDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAiZGVzY3JpcHRpb24iOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LmZpbHRlci5kZXNjcmlwdGlvbi5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3suZmlsdGVyLmRlc2NyaXB0aW9uLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBUeXANCiAgICAgICAgICAgIHZhciBkYktleSA9ICJ0eXBlIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImhpZGRlbiIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygiIiwgaW5wdXQpOw0KICAgICAgICAgICAgdmFyIGZpbHRlclR5cGUgPSBkYXRhW2RiS2V5XTsNCiAgICAgICAgICAgIHN3aXRjaCAoZmlsdGVyVHlwZSkgew0KICAgICAgICAgICAgICAgIGNhc2UgImN1c3RvbS1maWx0ZXIiOg0KICAgICAgICAgICAgICAgICAgICAvLyBHcm/Dny0gS2xlaW5zY2hyZWlidW5nIGJlYWNodGVuDQogICAgICAgICAgICAgICAgICAgIHZhciBkYktleSA9ICJjYXNlU2Vuc2l0aXZlIjsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChkYktleSk7DQogICAgICAgICAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhW2RiS2V5XTsNCiAgICAgICAgICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LmZpbHRlci5jYXNlU2Vuc2l0aXZlLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAgICAgICAgIC8vIEZpbHRlcnJlZ2VsIChCZW51dHplcmRlZmluaWVydCkNCiAgICAgICAgICAgICAgICAgICAgdmFyIGRiS2V5ID0gImZpbHRlciI7DQogICAgICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LmZpbHRlci5maWx0ZXJSdWxlLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LmZpbHRlci5maWx0ZXJSdWxlLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgImdyb3VwLXRpdGxlIjoNCiAgICAgICAgICAgICAgICAgICAgLy9hbGVydChkYktleSArICIgIiArIGZpbHRlclR5cGUpDQogICAgICAgICAgICAgICAgICAgIC8vIEZpbHRlciBiYXNpZXJlbmQgYXVmIGRlbiBHcnVwcGVuIGluIGRlciBNM1UNCiAgICAgICAgICAgICAgICAgICAgdmFyIGRiS2V5ID0gImZpbHRlciI7DQogICAgICAgICAgICAgICAgICAgIHZhciBncm91cHNNM1UgPSBnZXRMb2NhbERhdGEoIm0zdUdyb3VwcyIsICIiKTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHRleHQgPSBncm91cHNNM1VbInRleHQiXTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHZhbHVlcyA9IGdyb3Vwc00zVVsidmFsdWUiXTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHNlbGVjdCA9IGNvbnRlbnQuY3JlYXRlU2VsZWN0KHRleHQsIHZhbHVlcywgZGF0YVtkYktleV0sIGRiS2V5KTsNCiAgICAgICAgICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LmZpbHRlci5maWx0ZXJHcm91cC50aXRsZX19Iiwgc2VsZWN0KTsNCiAgICAgICAgICAgICAgICAgICAgY29udGVudC5kZXNjcmlwdGlvbigie3suZmlsdGVyLmZpbHRlckdyb3VwLmRlc2NyaXB0aW9ufX0iKTsNCiAgICAgICAgICAgICAgICAgICAgLy8gR3Jvw58tIEtsZWluc2NocmVpYnVuZyBiZWFjaHRlbg0KICAgICAgICAgICAgICAgICAgICB2YXIgZGJLZXkgPSAiY2FzZVNlbnNpdGl2ZSI7DQogICAgICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goZGJLZXkpOw0KICAgICAgICAgICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YVtkYktleV07DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5maWx0ZXIuY2FzZVNlbnNpdGl2ZS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgICAgICAgICB2YXIgZGJLZXkgPSAiaW5jbHVkZSI7DQogICAgICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LmZpbHRlci5pbmNsdWRlLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LmZpbHRlci5pbmNsdWRlLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuZGVzY3JpcHRpb24oInt7LmZpbHRlci5pbmNsdWRlLmRlc2NyaXB0aW9ufX0iKTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGRiS2V5ID0gImV4Y2x1ZGUiOw0KICAgICAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5maWx0ZXIuZXhjbHVkZS5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5maWx0ZXIuZXhjbHVkZS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgICAgICAgICBjb250ZW50LmRlc2NyaXB0aW9uKCJ7ey5maWx0ZXIuZXhjbHVkZS5kZXNjcmlwdGlvbn19Iik7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgLy8gSW50ZXJha3Rpb24NCiAgICAgICAgICAgIGNvbnRlbnQuY3JlYXRlSW50ZXJhY3Rpb24oKTsNCiAgICAgICAgICAgIC8vIEzDtnNjaGVuDQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAiZGVsZXRlIiwgInt7LmJ1dHRvbi5kZWxldGV9fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoImZpbHRlciIsICInICsgaWQgKyAnIiwgdHJ1ZSwgMCknKTsNCiAgICAgICAgICAgIGlucHV0LmNsYXNzTmFtZSA9ICJkZWxldGUiOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICAvLyBBYmJyZWNoZW4NCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJjYW5jZWwiLCAie3suYnV0dG9uLmNhbmNlbH19Iik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogc2hvd0VsZW1lbnQoInBvcHVwIiwgZmFsc2UpOycpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICAvLyBTcGVpY2hlcm4NCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJzYXZlIiwgInt7LmJ1dHRvbi5zYXZlfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBzYXZlUG9wdXBEYXRhKCJmaWx0ZXIiLCAiJyArIGlkICsgJyIsIGZhbHNlLCAwKScpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSAieG1sdHYiOg0KICAgICAgICAgICAgY29udGVudC5jcmVhdGVIZWFkbGluZShkYXRhVHlwZSk7DQogICAgICAgICAgICAvLyBOYW1lDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAibmFtZSI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3sueG1sdHYubmFtZS5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sueG1sdHYubmFtZS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgLy8gQmVzY2hyZWlidW5nDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAiZGVzY3JpcHRpb24iOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnhtbHR2LmRlc2NyaXB0aW9uLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey54bWx0di5kZXNjcmlwdGlvbi50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgLy8gVVJMDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAiZmlsZS5zb3VyY2UiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnhtbHR2LmZpbGVYTUxUVi5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sueG1sdHYuZmlsZVhNTFRWLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBJbnRlcmFrdGlvbg0KICAgICAgICAgICAgY29udGVudC5jcmVhdGVJbnRlcmFjdGlvbigpOw0KICAgICAgICAgICAgLy8gTMO2c2NoZW4NCiAgICAgICAgICAgIGlmIChkYXRhWyJpZC5wcm92aWRlciJdICE9ICItIikgew0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJkZWxldGUiLCAie3suYnV0dG9uLmRlbGV0ZX19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoInhtbHR2IiwgIicgKyBpZCArICciLCB0cnVlLCAwKScpOw0KICAgICAgICAgICAgICAgIGlucHV0LmNsYXNzTmFtZSA9ICJkZWxldGUiOw0KICAgICAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgLy8gQWJicmVjaGVuDQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAiY2FuY2VsIiwgInt7LmJ1dHRvbi5jYW5jZWx9fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IHNob3dFbGVtZW50KCJwb3B1cCIsIGZhbHNlKTsnKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgLy8gQWt0dWFsaXNpZXJlbg0KICAgICAgICAgICAgaWYgKGRhdGFbImlkLnByb3ZpZGVyIl0gIT0gIi0iKSB7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgInVwZGF0ZSIsICJ7ey5idXR0b24udXBkYXRlfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogc2F2ZVBvcHVwRGF0YSgieG1sdHYiLCAiJyArIGlkICsgJyIsIGZhbHNlLCAxKScpOw0KICAgICAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgLy8gU3BlaWNoZXJuDQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAic2F2ZSIsICJ7ey5idXR0b24uc2F2ZX19Iik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogc2F2ZVBvcHVwRGF0YSgieG1sdHYiLCAiJyArIGlkICsgJyIsIGZhbHNlLCAwKScpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSAidXNlcnMiOg0KICAgICAgICAgICAgY29udGVudC5jcmVhdGVIZWFkbGluZSgie3subWFpbk1lbnUuaXRlbS51c2Vyc319Iik7DQogICAgICAgICAgICAvLyBCZW51dHplcm5hbWUgDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAidXNlcm5hbWUiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnVzZXJzLnVzZXJuYW1lLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey51c2Vycy51c2VybmFtZS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgLy8gTmV1ZXMgUGFzc3dvcnQgDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAicGFzc3dvcmQiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgicGFzc3dvcmQiLCBkYktleSwgIiIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey51c2Vycy5wYXNzd29yZC5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sudXNlcnMucGFzc3dvcmQudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIEJlc3TDpHRpZ3VuZyANCiAgICAgICAgICAgIHZhciBkYktleSA9ICJjb25maXJtIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInBhc3N3b3JkIiwgZGJLZXksICIiKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3sudXNlcnMuY29uZmlybS5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sudXNlcnMuY29uZmlybS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgLy8gQmVyZWNodGlndW5nIFdFQg0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gImF1dGhlbnRpY2F0aW9uLndlYiI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KGRiS2V5KTsNCiAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhW2RiS2V5XTsNCiAgICAgICAgICAgIGlmIChkYXRhWyJkZWZhdWx0VXNlciJdID09IHRydWUpIHsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAiamF2YXNjcmlwdDogcmV0dXJuIGZhbHNlIik7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sudXNlcnMud2ViLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBCZXJlY2h0aWd1bmcgUE1TDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAiYXV0aGVudGljYXRpb24ucG1zIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goZGJLZXkpOw0KICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGFbZGJLZXldOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnVzZXJzLnBtcy50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgLy8gQmVyZWNodGlndW5nIE0zVQ0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gImF1dGhlbnRpY2F0aW9uLm0zdSI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KGRiS2V5KTsNCiAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhW2RiS2V5XTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey51c2Vycy5tM3UudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIEJlcmVjaHRpZ3VuZyBYTUwNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJhdXRoZW50aWNhdGlvbi54bWwiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChkYktleSk7DQogICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YVtkYktleV07DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sudXNlcnMueG1sLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBCZXJlY2h0aWd1bmcgQVBJDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAiYXV0aGVudGljYXRpb24uYXBpIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goZGJLZXkpOw0KICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGFbZGJLZXldOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnVzZXJzLmFwaS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgLy8gSW50ZXJha3Rpb24NCiAgICAgICAgICAgIGNvbnRlbnQuY3JlYXRlSW50ZXJhY3Rpb24oKTsNCiAgICAgICAgICAgIC8vIEzDtnNjaGVuDQogICAgICAgICAgICBpZiAoZGF0YVsiZGVmYXVsdFVzZXIiXSAhPSB0cnVlICYmIGlkICE9ICItIikgew0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJkZWxldGUiLCAie3suYnV0dG9uLmRlbGV0ZX19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuY2xhc3NOYW1lID0gImRlbGV0ZSI7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoIicgKyBkYXRhVHlwZSArICciLCAiJyArIGlkICsgJyIsIHRydWUsIDApJyk7DQogICAgICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICAvLyBBYmJyZWNoZW4NCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJjYW5jZWwiLCAie3suYnV0dG9uLmNhbmNlbH19Iik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogc2hvd0VsZW1lbnQoInBvcHVwIiwgZmFsc2UpOycpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICAvLyBTcGVpY2hlcm4NCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJzYXZlIiwgInt7LmJ1dHRvbi5zYXZlfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBzYXZlUG9wdXBEYXRhKCInICsgZGF0YVR5cGUgKyAnIiwgIicgKyBpZCArICciLCAiZmFsc2UiKTsnKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGNhc2UgIm1hcHBpbmciOg0KICAgICAgICAgICAgY29udGVudC5jcmVhdGVIZWFkbGluZSgie3subWFpbk1lbnUuaXRlbS5tYXBwaW5nfX0iKTsNCiAgICAgICAgICAgIC8vIEFrdGl2IA0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gIngtYWN0aXZlIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goZGJLZXkpOw0KICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGFbZGJLZXldOw0KICAgICAgICAgICAgaW5wdXQuaWQgPSAiYWN0aXZlIjsNCiAgICAgICAgICAgIC8vaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpDQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRvZ2dsZUNoYW5uZWxTdGF0dXMoJyIgKyBpZCArICInLCB0aGlzKSIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7Lm1hcHBpbmcuYWN0aXZlLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBLYW5hbG5hbWUgDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAieC1uYW1lIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgaWYgKEJVTEtfRURJVCA9PSB0cnVlKSB7DQogICAgICAgICAgICAgICAgaW5wdXQuc3R5bGUuYm9yZGVyID0gInNvbGlkIDFweCByZWQiOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicmVhZG9ubHkiLCAidHJ1ZSIpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7Lm1hcHBpbmcuY2hhbm5lbE5hbWUudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIGNvbnRlbnQuZGVzY3JpcHRpb24oZGF0YVsibmFtZSJdKTsNCiAgICAgICAgICAgIC8vIEJlc2NocmVpYnVuZyANCiAgICAgICAgICAgIHZhciBkYktleSA9ICJ4LWRlc2NyaXB0aW9uIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5tYXBwaW5nLmRlc2NyaXB0aW9uLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5tYXBwaW5nLmRlc2NyaXB0aW9uLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBBa3R1YWxpc2llcnVuZyBkZXMgS2FuYWxuYW1lbnMNCiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCJfdXVpZC5rZXkiKSkgew0KICAgICAgICAgICAgICAgIGlmIChkYXRhWyJfdXVpZC5rZXkiXSAhPSAiIikgew0KICAgICAgICAgICAgICAgICAgICB2YXIgZGJLZXkgPSAieC11cGRhdGUtY2hhbm5lbC1uYW1lIjsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChkYktleSk7DQogICAgICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGFbZGJLZXldOw0KICAgICAgICAgICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3subWFwcGluZy51cGRhdGVDaGFubmVsTmFtZS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIC8vIExvZ28gVVJMIChLYW5hbCkgDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAidHZnLWxvZ28iOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoImlkIiwgImNoYW5uZWwtaWNvbiIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7Lm1hcHBpbmcuY2hhbm5lbExvZ28udGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIEFrdHVhbGlzaWVydW5nIGRlcyBLYW5hbGxvZ29zDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAieC11cGRhdGUtY2hhbm5lbC1pY29uIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goZGJLZXkpOw0KICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGFbZGJLZXldOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJpZCIsICJ1cGRhdGUtaWNvbiIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJzsgY2hhbmdlQ2hhbm5lbExvZ28oJyIgKyBpZCArICInKTsiKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5tYXBwaW5nLnVwZGF0ZUNoYW5uZWxMb2dvLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBFcndlaXRlcm4gZGVyIEVQRyBLYXRlZ29yaWUNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJ4LWNhdGVnb3J5IjsNCiAgICAgICAgICAgIHZhciB0ZXh0ID0gWyItIiwgIktpZHMgKEVtYnkgb25seSkiLCAiTmV3cyIsICJNb3ZpZSIsICJTZXJpZXMiLCAiU3BvcnRzIl07DQogICAgICAgICAgICB2YXIgdmFsdWVzID0gWyIiLCAiS2lkcyIsICJOZXdzIiwgIk1vdmllIiwgIlNlcmllcyIsICJTcG9ydHMiXTsNCiAgICAgICAgICAgIHZhciBzZWxlY3QgPSBjb250ZW50LmNyZWF0ZVNlbGVjdCh0ZXh0LCB2YWx1ZXMsIGRhdGFbZGJLZXldLCBkYktleSk7DQogICAgICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7Lm1hcHBpbmcuZXBnQ2F0ZWdvcnkudGl0bGV9fSIsIHNlbGVjdCk7DQogICAgICAgICAgICAvLyBNM1UgR3J1cHBlbnRpdGVsDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAieC1ncm91cC10aXRsZSI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5tYXBwaW5nLm0zdUdyb3VwVGl0bGUudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIGlmIChkYXRhWyJncm91cC10aXRsZSJdICE9IHVuZGVmaW5lZCkgew0KICAgICAgICAgICAgICAgIGNvbnRlbnQuZGVzY3JpcHRpb24oZGF0YVsiZ3JvdXAtdGl0bGUiXSk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICAvLyBYTUxUViBEYXRlaQ0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gIngteG1sdHYtZmlsZSI7DQogICAgICAgICAgICB2YXIgeG1sRmlsZSA9IGRhdGFbZGJLZXldOw0KICAgICAgICAgICAgdmFyIHhtbHR2ID0gbmV3IFhNTFRWRmlsZSgpOw0KICAgICAgICAgICAgdmFyIHNlbGVjdCA9IHhtbHR2LmdldEZpbGVzKGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIHNlbGVjdC5zZXRBdHRyaWJ1dGUoIm5hbWUiLCBkYktleSk7DQogICAgICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJpZCIsICJwb3B1cC14bWx0diIpOw0KICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCc7IHNldFhtbHR2Q2hhbm5lbCgnIiArIGlkICsgIicsdGhpcyk7Iik7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3subWFwcGluZy54bWx0dkZpbGUudGl0bGV9fSIsIHNlbGVjdCk7DQogICAgICAgICAgICB2YXIgZmlsZSA9IGRhdGFbZGJLZXldOw0KICAgICAgICAgICAgLy8gWE1MVFYgTWFwcGluZw0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gIngtbWFwcGluZyI7DQogICAgICAgICAgICB2YXIgeG1sdHYgPSBuZXcgWE1MVFZGaWxlKCk7DQogICAgICAgICAgICB2YXIgc2VsZWN0ID0geG1sdHYuZ2V0UHJvZ3JhbXMoZmlsZSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgibmFtZSIsIGRiS2V5KTsNCiAgICAgICAgICAgIHNlbGVjdC5zZXRBdHRyaWJ1dGUoImlkIiwgInBvcHVwLW1hcHBpbmciKTsNCiAgICAgICAgICAgIHNlbGVjdC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnOyBjaGVja1htbHR2Q2hhbm5lbCgnIiArIGlkICsgIicsdGhpcywnIiArIHhtbEZpbGUgKyAiJyk7Iik7DQogICAgICAgICAgICBzb3J0U2VsZWN0KHNlbGVjdCk7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3subWFwcGluZy54bWx0dkNoYW5uZWwudGl0bGV9fSIsIHNlbGVjdCk7DQogICAgICAgICAgICAvLyBUaW1lc2hpZnQNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJ4LXRpbWVzaGlmdCI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3subWFwcGluZy50aW1lc2hpZnQucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJpZCIsICJ0aW1lc2hpZnQiKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5tYXBwaW5nLnRpbWVzaGlmdC50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgLy8gSW50ZXJha3Rpb24NCiAgICAgICAgICAgIGNvbnRlbnQuY3JlYXRlSW50ZXJhY3Rpb24oKTsNCiAgICAgICAgICAgIC8vIExvZ28gaG9jaGxhZGVuDQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAiY2FuY2VsIiwgInt7LmJ1dHRvbi51cGxvYWRMb2dvfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiB1cGxvYWRMb2dvKCk7Jyk7DQogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIC8vIEFiYnJlY2hlbg0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImNhbmNlbCIsICJ7ey5idXR0b24uY2FuY2VsfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBzaG93RWxlbWVudCgicG9wdXAiLCBmYWxzZSk7Jyk7DQogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIC8vIEZlcnRpZw0KICAgICAgICAgICAgdmFyIGlkcyA9IG5ldyBBcnJheSgpOw0KICAgICAgICAgICAgaWRzID0gZ2V0QWxsU2VsZWN0ZWRDaGFubmVscygpOw0KICAgICAgICAgICAgaWYgKGlkcy5sZW5ndGggPT0gMCkgew0KICAgICAgICAgICAgICAgIGlkcy5wdXNoKGlkKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJzYXZlIiwgInt7LmJ1dHRvbi5kb25lfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBkb25lUG9wdXBEYXRhKCInICsgZGF0YVR5cGUgKyAnIiwgIicgKyBpZHMgKyAnIiwgImZhbHNlIik7Jyk7DQogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBkZWZhdWx0Og0KICAgICAgICAgICAgYnJlYWs7DQogICAgfQ0KICAgIHNob3dQb3BVcEVsZW1lbnQoJ3BvcHVwLWN1c3RvbScpOw0KfQ0KdmFyIFhNTFRWRmlsZSA9IC8qKiBAY2xhc3MgKi8gKGZ1bmN0aW9uICgpIHsNCiAgICBmdW5jdGlvbiBYTUxUVkZpbGUoKSB7DQogICAgfQ0KICAgIFhNTFRWRmlsZS5wcm90b3R5cGUuZ2V0RmlsZXMgPSBmdW5jdGlvbiAoc2V0KSB7DQogICAgICAgIHZhciBmaWxlSURzID0gZ2V0T2JqS2V5cyhTRVJWRVJbInhlcGciXVsieG1sdHZNYXAiXSk7DQogICAgICAgIHZhciB2YWx1ZXMgPSBuZXcgQXJyYXkoIi0iKTsNCiAgICAgICAgdmFyIHRleHQgPSBuZXcgQXJyYXkoIi0iKTsNCiAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBmaWxlSURzLmxlbmd0aDsgaSsrKSB7DQogICAgICAgICAgICBpZiAoZmlsZUlEc1tpXSAhPSAieFRlVmUgRHVtbXkiKSB7DQogICAgICAgICAgICAgICAgdmFsdWVzLnB1c2goZ2V0VmFsdWVGcm9tUHJvdmlkZXJGaWxlKGZpbGVJRHNbaV0sICJ4bWx0diIsICJmaWxlLnh0ZXZlIikpOw0KICAgICAgICAgICAgICAgIHRleHQucHVzaChnZXRWYWx1ZUZyb21Qcm92aWRlckZpbGUoZmlsZUlEc1tpXSwgInhtbHR2IiwgIm5hbWUiKSk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICB2YWx1ZXMucHVzaChmaWxlSURzW2ldKTsNCiAgICAgICAgICAgICAgICB0ZXh0LnB1c2goZmlsZUlEc1tpXSk7DQogICAgICAgICAgICB9DQogICAgICAgIH0NCiAgICAgICAgdmFyIHNlbGVjdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlNFTEVDVCIpOw0KICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRleHQubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgICAgIHZhciBvcHRpb24gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJPUFRJT04iKTsNCiAgICAgICAgICAgIG9wdGlvbi5zZXRBdHRyaWJ1dGUoInZhbHVlIiwgdmFsdWVzW2ldKTsNCiAgICAgICAgICAgIG9wdGlvbi5pbm5lclRleHQgPSB0ZXh0W2ldOw0KICAgICAgICAgICAgc2VsZWN0LmFwcGVuZENoaWxkKG9wdGlvbik7DQogICAgICAgIH0NCiAgICAgICAgaWYgKHNldCAhPSAiIikgew0KICAgICAgICAgICAgc2VsZWN0LnZhbHVlID0gc2V0Ow0KICAgICAgICB9DQogICAgICAgIHJldHVybiBzZWxlY3Q7DQogICAgfTsNCiAgICBYTUxUVkZpbGUucHJvdG90eXBlLmdldFByb2dyYW1zID0gZnVuY3Rpb24gKGZpbGUsIHNldCkgew0KICAgICAgICAvL3ZhciBmaWxlSURzOnN0cmluZ1tdID0gZ2V0T2JqS2V5cyhTRVJWRVJbInhlcGciXVsieG1sdHZNYXAiXSkNCiAgICAgICAgdmFyIHZhbHVlcyA9IGdldE9iaktleXMoU0VSVkVSWyJ4ZXBnIl1bInhtbHR2TWFwIl1bZmlsZV0pOw0KICAgICAgICB2YXIgdGV4dCA9IG5ldyBBcnJheSgpOw0KICAgICAgICB2YXIgZGlzcGxheU5hbWU7DQogICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdmFsdWVzLmxlbmd0aDsgaSsrKSB7DQogICAgICAgICAgICBpZiAoU0VSVkVSWyJ4ZXBnIl1bInhtbHR2TWFwIl1bZmlsZV1bdmFsdWVzW2ldXS5oYXNPd25Qcm9wZXJ0eSgnZGlzcGxheS1uYW1lJykgPT0gdHJ1ZSkgew0KICAgICAgICAgICAgICAgIGRpc3BsYXlOYW1lID0gU0VSVkVSWyJ4ZXBnIl1bInhtbHR2TWFwIl1bZmlsZV1bdmFsdWVzW2ldXVsiZGlzcGxheS1uYW1lIl07DQogICAgICAgICAgICB9DQogICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICBkaXNwbGF5TmFtZSA9ICItIjsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIHRleHRbaV0gPSBkaXNwbGF5TmFtZSArICIgKCIgKyB2YWx1ZXNbaV0gKyAiKSI7DQogICAgICAgIH0NCiAgICAgICAgdGV4dC51bnNoaWZ0KCItIik7DQogICAgICAgIHZhbHVlcy51bnNoaWZ0KCItIik7DQogICAgICAgIHZhciBzZWxlY3QgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJTRUxFQ1QiKTsNCiAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0ZXh0Lmxlbmd0aDsgaSsrKSB7DQogICAgICAgICAgICB2YXIgb3B0aW9uID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiT1BUSU9OIik7DQogICAgICAgICAgICBvcHRpb24uc2V0QXR0cmlidXRlKCJ2YWx1ZSIsIHZhbHVlc1tpXSk7DQogICAgICAgICAgICBvcHRpb24uaW5uZXJUZXh0ID0gdGV4dFtpXTsNCiAgICAgICAgICAgIHNlbGVjdC5hcHBlbmRDaGlsZChvcHRpb24pOw0KICAgICAgICB9DQogICAgICAgIGlmIChzZXQgIT0gIiIpIHsNCiAgICAgICAgICAgIHNlbGVjdC52YWx1ZSA9IHNldDsNCiAgICAgICAgfQ0KICAgICAgICBpZiAoc2VsZWN0LnZhbHVlICE9IHNldCkgew0KICAgICAgICAgICAgc2VsZWN0LnZhbHVlID0gIi0iOw0KICAgICAgICB9DQogICAgICAgIHJldHVybiBzZWxlY3Q7DQogICAgfTsNCiAgICByZXR1cm4gWE1MVFZGaWxlOw0KfSgpKTsNCmZ1bmN0aW9uIGdldFZhbHVlRnJvbVByb3ZpZGVyRmlsZShmaWxlLCBmaWxlVHlwZSwga2V5KSB7DQogICAgaWYgKGZpbGUgPT0gInhUZVZlIER1bW15Iikgew0KICAgICAgICByZXR1cm4gZmlsZTsNCiAgICB9DQogICAgdmFyIGZpbGVJRDsNCiAgICB2YXIgaW5kaWNhdG9yID0gZmlsZS5jaGFyQXQoMCk7DQogICAgc3dpdGNoIChpbmRpY2F0b3IpIHsNCiAgICAgICAgY2FzZSAiTSI6DQogICAgICAgICAgICBmaWxlVHlwZSA9ICJtM3UiOw0KICAgICAgICAgICAgZmlsZUlEID0gZmlsZTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJIIjoNCiAgICAgICAgICAgIGZpbGVUeXBlID0gImhkaHIiOw0KICAgICAgICAgICAgZmlsZUlEID0gZmlsZTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJYIjoNCiAgICAgICAgICAgIGZpbGVUeXBlID0gInhtbHR2IjsNCiAgICAgICAgICAgIGZpbGVJRCA9IGZpbGUuc3Vic3RyaW5nKDAsIGZpbGUubGFzdEluZGV4T2YoJy4nKSk7DQogICAgICAgICAgICBicmVhazsNCiAgICB9DQogICAgaWYgKFNFUlZFUlsic2V0dGluZ3MiXVsiZmlsZXMiXVtmaWxlVHlwZV0uaGFzT3duUHJvcGVydHkoZmlsZUlEKSA9PSB0cnVlKSB7DQogICAgICAgIHZhciBkYXRhID0gU0VSVkVSWyJzZXR0aW5ncyJdWyJmaWxlcyJdW2ZpbGVUeXBlXVtmaWxlSURdOw0KICAgICAgICByZXR1cm4gZGF0YVtrZXldOw0KICAgIH0NCiAgICByZXR1cm47DQp9DQpmdW5jdGlvbiBzZXRYbWx0dkNoYW5uZWwoaWQsIGVsZW1lbnQpIHsNCiAgICB2YXIgeG1sdHYgPSBuZXcgWE1MVFZGaWxlKCk7DQogICAgdmFyIHhtbEZpbGUgPSBlbGVtZW50LnZhbHVlOw0KICAgIHZhciB0dmdJZCA9IFNFUlZFUlsieGVwZyJdWyJlcGdNYXBwaW5nIl1baWRdWyJ0dmctaWQiXTsNCiAgICB2YXIgdGQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicG9wdXAtbWFwcGluZyIpLnBhcmVudEVsZW1lbnQ7DQogICAgdGQuaW5uZXJIVE1MID0gIiI7DQogICAgdmFyIHNlbGVjdCA9IHhtbHR2LmdldFByb2dyYW1zKGVsZW1lbnQudmFsdWUsIHR2Z0lkKTsNCiAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJuYW1lIiwgIngtbWFwcGluZyIpOw0KICAgIHNlbGVjdC5zZXRBdHRyaWJ1dGUoImlkIiwgInBvcHVwLW1hcHBpbmciKTsNCiAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJzsgY2hlY2tYbWx0dkNoYW5uZWwoJyIgKyBpZCArICInLHRoaXMsJyIgKyB4bWxGaWxlICsgIicpOyIpOw0KICAgIHNlbGVjdC5jbGFzc05hbWUgPSAiY2hhbmdlZCI7DQogICAgc29ydFNlbGVjdChzZWxlY3QpOw0KICAgIHRkLmFwcGVuZENoaWxkKHNlbGVjdCk7DQogICAgY2hlY2tYbWx0dkNoYW5uZWwoaWQsIHNlbGVjdCwgeG1sRmlsZSk7DQp9DQpmdW5jdGlvbiBjaGVja1htbHR2Q2hhbm5lbChpZCwgZWxlbWVudCwgeG1sRmlsZSkgew0KICAgIHZhciB2YWx1ZSA9IGVsZW1lbnQudmFsdWU7DQogICAgdmFyIGJvb2w7DQogICAgdmFyIGNoZWNrYm94ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2FjdGl2ZScpOw0KICAgIHZhciBjaGFubmVsID0gU0VSVkVSWyJ4ZXBnIl1bImVwZ01hcHBpbmciXVtpZF07DQogICAgdmFyIHVwZGF0ZUxvZ287DQogICAgaWYgKHZhbHVlID09ICItIikgew0KICAgICAgICBib29sID0gZmFsc2U7DQogICAgfQ0KICAgIGVsc2Ugew0KICAgICAgICBib29sID0gdHJ1ZTsNCiAgICB9DQogICAgY2hlY2tib3guY2hlY2tlZCA9IGJvb2w7DQogICAgY2hlY2tib3guY2xhc3NOYW1lID0gImNoYW5nZWQiOw0KICAgIGNvbnNvbGUubG9nKHhtbEZpbGUpOw0KICAgIC8vIEthbmFsbG9nbyBha3R1YWxpc2llcmVuDQogICAgLyoNCiAgICB1cGRhdGVMb2dvID0gKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ1cGRhdGUtaWNvbiIpIGFzIEhUTUxJbnB1dEVsZW1lbnQpLmNoZWNrZWQNCiAgICBjb25zb2xlLmxvZyh1cGRhdGVMb2dvKTsNCiAgICAqLw0KICAgIGlmICh4bWxGaWxlICE9ICJ4VGVWZSBEdW1teSIgJiYgYm9vbCA9PSB0cnVlKSB7DQogICAgICAgIC8vKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ1cGRhdGUtaWNvbiIpIGFzIEhUTUxJbnB1dEVsZW1lbnQpLmNoZWNrZWQgPSB0cnVlOw0KICAgICAgICAvLyhkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidXBkYXRlLWljb24iKSBhcyBIVE1MSW5wdXRFbGVtZW50KS5jbGFzc05hbWUgPSAiY2hhbmdlZCI7DQogICAgICAgIGNvbnNvbGUubG9nKCJJRCIsIGlkKTsNCiAgICAgICAgY2hhbmdlQ2hhbm5lbExvZ28oaWQpOw0KICAgICAgICByZXR1cm47DQogICAgfQ0KICAgIGlmICh4bWxGaWxlID09ICJ4VGVWZSBEdW1teSIpIHsNCiAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInVwZGF0ZS1pY29uIikuY2hlY2tlZCA9IGZhbHNlOw0KICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidXBkYXRlLWljb24iKS5jbGFzc05hbWUgPSAiY2hhbmdlZCI7DQogICAgfQ0KICAgIHJldHVybjsNCn0NCmZ1bmN0aW9uIGNoYW5nZUNoYW5uZWxMb2dvKGlkKSB7DQogICAgdmFyIHVwZGF0ZUxvZ287DQogICAgdmFyIGNoYW5uZWwgPSBTRVJWRVJbInhlcGciXVsiZXBnTWFwcGluZyJdW2lkXTsNCiAgICB2YXIgZiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJwb3B1cC14bWx0diIpOw0KICAgIHZhciB4bWx0dkZpbGUgPSBmLm9wdGlvbnNbZi5zZWxlY3RlZEluZGV4XS52YWx1ZTsNCiAgICB2YXIgbSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJwb3B1cC1tYXBwaW5nIik7DQogICAgdmFyIHhNYXBwaW5nID0gbS5vcHRpb25zW20uc2VsZWN0ZWRJbmRleF0udmFsdWU7DQogICAgdmFyIHhtbHR2TG9nbyA9IFNFUlZFUlsieGVwZyJdWyJ4bWx0dk1hcCJdW3htbHR2RmlsZV1beE1hcHBpbmddWyJpY29uIl07DQogICAgdXBkYXRlTG9nbyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ1cGRhdGUtaWNvbiIpLmNoZWNrZWQ7DQogICAgaWYgKHVwZGF0ZUxvZ28gPT0gdHJ1ZSAmJiB4bWx0dkZpbGUgIT0gInhUZVZlIER1bW15Iikgew0KICAgICAgICBpZiAoU0VSVkVSWyJ4ZXBnIl1bInhtbHR2TWFwIl1beG1sdHZGaWxlXS5oYXNPd25Qcm9wZXJ0eSh4TWFwcGluZykpIHsNCiAgICAgICAgICAgIHZhciBsb2dvID0geG1sdHZMb2dvOw0KICAgICAgICB9DQogICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgbG9nbyA9IGNoYW5uZWxbInR2Zy1sb2dvIl07DQogICAgICAgIH0NCiAgICAgICAgdmFyIGxvZ29JbnB1dCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjaGFubmVsLWljb24iKTsNCiAgICAgICAgbG9nb0lucHV0LnZhbHVlID0gbG9nbzsNCiAgICAgICAgaWYgKEJVTEtfRURJVCA9PSBmYWxzZSkgew0KICAgICAgICAgICAgbG9nb0lucHV0LmNsYXNzTmFtZSA9ICJjaGFuZ2VkIjsNCiAgICAgICAgfQ0KICAgIH0NCn0NCmZ1bmN0aW9uIHNhdmVQb3B1cERhdGEoZGF0YVR5cGUsIGlkLCByZW1vdmUsIG9wdGlvbikgew0KICAgIGlmIChkYXRhVHlwZSA9PSAibWFwcGluZyIpIHsNCiAgICAgICAgdmFyIGRhdGEgPSBuZXcgT2JqZWN0KCk7DQogICAgICAgIGNvbnNvbGUubG9nKCJTYXZlIG1hcHBpbmcgZGF0YSIpOw0KICAgICAgICBjbWQgPSAic2F2ZUVwZ01hcHBpbmciOw0KICAgICAgICBkYXRhWyJlcGdNYXBwaW5nIl0gPSBTRVJWRVJbInhlcGciXVsiZXBnTWFwcGluZyJdOw0KICAgICAgICBjb25zb2xlLmxvZygiU0VORCBUTyBTRVJWRVIiKTsNCiAgICAgICAgdmFyIHNlcnZlciA9IG5ldyBTZXJ2ZXIoY21kKTsNCiAgICAgICAgc2VydmVyLnJlcXVlc3QoZGF0YSk7DQogICAgICAgIGRlbGV0ZSBVTkRPWyJlcGdNYXBwaW5nIl07DQogICAgICAgIHJldHVybjsNCiAgICB9DQogICAgY29uc29sZS5sb2coIlNhdmUgcG9wdXAgZGF0YSIpOw0KICAgIHZhciBkaXYgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicG9wdXAtY3VzdG9tIik7DQogICAgdmFyIGlucHV0cyA9IGRpdi5nZXRFbGVtZW50c0J5VGFnTmFtZSgiVEFCTEUiKVswXS5nZXRFbGVtZW50c0J5VGFnTmFtZSgiSU5QVVQiKTsNCiAgICB2YXIgc2VsZWN0cyA9IGRpdi5nZXRFbGVtZW50c0J5VGFnTmFtZSgiVEFCTEUiKVswXS5nZXRFbGVtZW50c0J5VGFnTmFtZSgiU0VMRUNUIik7DQogICAgdmFyIGlucHV0ID0gbmV3IE9iamVjdCgpOw0KICAgIHZhciBjb25maXJtTXNnOw0KICAgIGZvciAodmFyIGkgPSAwOyBpIDwgc2VsZWN0cy5sZW5ndGg7IGkrKykgew0KICAgICAgICB2YXIgbmFtZTsNCiAgICAgICAgbmFtZSA9IHNlbGVjdHNbaV0ubmFtZTsNCiAgICAgICAgdmFyIHZhbHVlID0gc2VsZWN0c1tpXS52YWx1ZTsNCiAgICAgICAgc3dpdGNoIChuYW1lKSB7DQogICAgICAgICAgICBjYXNlICJ0dW5lciI6DQogICAgICAgICAgICAgICAgaW5wdXRbbmFtZV0gPSBwYXJzZUludCh2YWx1ZSk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBkZWZhdWx0Og0KICAgICAgICAgICAgICAgIGlucHV0W25hbWVdID0gdmFsdWU7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIH0NCiAgICB9DQogICAgZm9yICh2YXIgaSA9IDA7IGkgPCBpbnB1dHMubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgc3dpdGNoIChpbnB1dHNbaV0udHlwZSkgew0KICAgICAgICAgICAgY2FzZSAiY2hlY2tib3giOg0KICAgICAgICAgICAgICAgIG5hbWUgPSBpbnB1dHNbaV0ubmFtZTsNCiAgICAgICAgICAgICAgICBpbnB1dFtuYW1lXSA9IGlucHV0c1tpXS5jaGVja2VkOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAidGV4dCI6DQogICAgICAgICAgICBjYXNlICJoaWRkZW4iOg0KICAgICAgICAgICAgY2FzZSAicGFzc3dvcmQiOg0KICAgICAgICAgICAgICAgIG5hbWUgPSBpbnB1dHNbaV0ubmFtZTsNCiAgICAgICAgICAgICAgICBzd2l0Y2ggKG5hbWUpIHsNCiAgICAgICAgICAgICAgICAgICAgY2FzZSAidHVuZXIiOg0KICAgICAgICAgICAgICAgICAgICAgICAgaW5wdXRbbmFtZV0gPSBwYXJzZUludChpbnB1dHNbaV0udmFsdWUpOw0KICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICAgICAgICAgICAgICBpbnB1dFtuYW1lXSA9IGlucHV0c1tpXS52YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgfQ0KICAgIH0NCiAgICB2YXIgZGF0YSA9IG5ldyBPYmplY3QoKTsNCiAgICB2YXIgY21kOw0KICAgIGlmIChyZW1vdmUgPT0gdHJ1ZSkgew0KICAgICAgICBpbnB1dFsiZGVsZXRlIl0gPSB0cnVlOw0KICAgIH0NCiAgICBzd2l0Y2ggKGRhdGFUeXBlKSB7DQogICAgICAgIGNhc2UgInVzZXJzIjoNCiAgICAgICAgICAgIGNvbmZpcm1Nc2cgPSAiRGVsZXRlIHRoaXMgdXNlcj8iOw0KICAgICAgICAgICAgaWYgKGlkID09ICItIikgew0KICAgICAgICAgICAgICAgIGNtZCA9ICJzYXZlTmV3VXNlciI7DQogICAgICAgICAgICAgICAgZGF0YVsidXNlckRhdGEiXSA9IGlucHV0Ow0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgZWxzZSB7DQogICAgICAgICAgICAgICAgY21kID0gInNhdmVVc2VyRGF0YSI7DQogICAgICAgICAgICAgICAgdmFyIGQgPSBuZXcgT2JqZWN0KCk7DQogICAgICAgICAgICAgICAgZFtpZF0gPSBpbnB1dDsNCiAgICAgICAgICAgICAgICBkYXRhWyJ1c2VyRGF0YSJdID0gZDsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJtM3UiOg0KICAgICAgICAgICAgY29uZmlybU1zZyA9ICJEZWxldGUgdGhpcyBwbGF5bGlzdD8iOw0KICAgICAgICAgICAgc3dpdGNoIChvcHRpb24pIHsNCiAgICAgICAgICAgICAgICAvLyBQb3B1cDogU2F2ZQ0KICAgICAgICAgICAgICAgIGNhc2UgMDoNCiAgICAgICAgICAgICAgICAgICAgY21kID0gInNhdmVGaWxlc00zVSI7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIC8vIFBvcHVwOiBVcGRhdGUNCiAgICAgICAgICAgICAgICBjYXNlIDE6DQogICAgICAgICAgICAgICAgICAgIGNtZCA9ICJ1cGRhdGVGaWxlTTNVIjsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBkYXRhWyJmaWxlcyJdID0gbmV3IE9iamVjdDsNCiAgICAgICAgICAgIGRhdGFbImZpbGVzIl1bZGF0YVR5cGVdID0gbmV3IE9iamVjdDsNCiAgICAgICAgICAgIGRhdGFbImZpbGVzIl1bZGF0YVR5cGVdW2lkXSA9IGlucHV0Ow0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGNhc2UgImhkaHIiOg0KICAgICAgICAgICAgY29uZmlybU1zZyA9ICJEZWxldGUgdGhpcyBIREhvbWVSdW4gdHVuZXI/IjsNCiAgICAgICAgICAgIHN3aXRjaCAob3B0aW9uKSB7DQogICAgICAgICAgICAgICAgLy8gUG9wdXA6IFNhdmUNCiAgICAgICAgICAgICAgICBjYXNlIDA6DQogICAgICAgICAgICAgICAgICAgIGNtZCA9ICJzYXZlRmlsZXNIREhSIjsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgLy8gUG9wdXA6IFVwZGF0ZQ0KICAgICAgICAgICAgICAgIGNhc2UgMToNCiAgICAgICAgICAgICAgICAgICAgY21kID0gInVwZGF0ZUZpbGVIREhSIjsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBkYXRhWyJmaWxlcyJdID0gbmV3IE9iamVjdDsNCiAgICAgICAgICAgIGRhdGFbImZpbGVzIl1bZGF0YVR5cGVdID0gbmV3IE9iamVjdDsNCiAgICAgICAgICAgIGRhdGFbImZpbGVzIl1bZGF0YVR5cGVdW2lkXSA9IGlucHV0Ow0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGNhc2UgInhtbHR2IjoNCiAgICAgICAgICAgIGNvbmZpcm1Nc2cgPSAiRGVsZXRlIHRoaXMgWE1MVFYgZmlsZT8iOw0KICAgICAgICAgICAgc3dpdGNoIChvcHRpb24pIHsNCiAgICAgICAgICAgICAgICAvLyBQb3B1cDogU2F2ZQ0KICAgICAgICAgICAgICAgIGNhc2UgMDoNCiAgICAgICAgICAgICAgICAgICAgY21kID0gInNhdmVGaWxlc1hNTFRWIjsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgLy8gUG9wdXA6IFVwZGF0ZQ0KICAgICAgICAgICAgICAgIGNhc2UgMToNCiAgICAgICAgICAgICAgICAgICAgY21kID0gInVwZGF0ZUZpbGVYTUxUViI7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgZGF0YVsiZmlsZXMiXSA9IG5ldyBPYmplY3Q7DQogICAgICAgICAgICBkYXRhWyJmaWxlcyJdW2RhdGFUeXBlXSA9IG5ldyBPYmplY3Q7DQogICAgICAgICAgICBkYXRhWyJmaWxlcyJdW2RhdGFUeXBlXVtpZF0gPSBpbnB1dDsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJmaWx0ZXIiOg0KICAgICAgICAgICAgY29uZmlybU1zZyA9ICJEZWxldGUgdGhpcyBmaWx0ZXI/IjsNCiAgICAgICAgICAgIGNtZCA9ICJzYXZlRmlsdGVyIjsNCiAgICAgICAgICAgIGRhdGFbImZpbHRlciJdID0gbmV3IE9iamVjdDsNCiAgICAgICAgICAgIGRhdGFbImZpbHRlciJdW2lkXSA9IGlucHV0Ow0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICBjb25zb2xlLmxvZyhkYXRhVHlwZSwgaWQpOw0KICAgICAgICAgICAgcmV0dXJuOw0KICAgICAgICAgICAgYnJlYWs7DQogICAgfQ0KICAgIGlmIChyZW1vdmUgPT0gdHJ1ZSkgew0KICAgICAgICBpZiAoIWNvbmZpcm0oY29uZmlybU1zZykpIHsNCiAgICAgICAgICAgIHNob3dFbGVtZW50KCJwb3B1cCIsIGZhbHNlKTsNCiAgICAgICAgICAgIHJldHVybjsNCiAgICAgICAgfQ0KICAgIH0NCiAgICBjb25zb2xlLmxvZygiU0VORCBUTyBTRVJWRVIiKTsNCiAgICBjb25zb2xlLmxvZyhkYXRhKTsNCiAgICB2YXIgc2VydmVyID0gbmV3IFNlcnZlcihjbWQpOw0KICAgIHNlcnZlci5yZXF1ZXN0KGRhdGEpOw0KfQ0KZnVuY3Rpb24gZG9uZVBvcHVwRGF0YShkYXRhVHlwZSwgaWRzU3RyKSB7DQogICAgdmFyIGlkcyA9IGlkc1N0ci5zcGxpdCgnLCcpOw0KICAgIHZhciBkaXYgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicG9wdXAtY3VzdG9tIik7DQogICAgdmFyIGlucHV0cyA9IGRpdi5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCJjaGFuZ2VkIik7DQogICAgaWRzLmZvckVhY2goZnVuY3Rpb24gKGlkKSB7DQogICAgICAgIHZhciBpbnB1dCA9IG5ldyBPYmplY3QoKTsNCiAgICAgICAgaW5wdXQgPSBTRVJWRVJbInhlcGciXVsiZXBnTWFwcGluZyJdW2lkXTsNCiAgICAgICAgY29uc29sZS5sb2coaW5wdXQpOw0KICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGlucHV0cy5sZW5ndGg7IGkrKykgew0KICAgICAgICAgICAgdmFyIG5hbWU7DQogICAgICAgICAgICB2YXIgdmFsdWU7DQogICAgICAgICAgICBzd2l0Y2ggKGlucHV0c1tpXS50YWdOYW1lKSB7DQogICAgICAgICAgICAgICAgY2FzZSAiSU5QVVQiOg0KICAgICAgICAgICAgICAgICAgICBzd2l0Y2ggKGlucHV0c1tpXS50eXBlKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBjYXNlICJjaGVja2JveCI6DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZSA9IGlucHV0c1tpXS5uYW1lOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlID0gaW5wdXRzW2ldLmNoZWNrZWQ7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5wdXRbbmFtZV0gPSB2YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgInRleHQiOg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWUgPSBpbnB1dHNbaV0ubmFtZTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IGlucHV0c1tpXS52YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnB1dFtuYW1lXSA9IHZhbHVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgIlNFTEVDVCI6DQogICAgICAgICAgICAgICAgICAgIG5hbWUgPSBpbnB1dHNbaV0ubmFtZTsNCiAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSBpbnB1dHNbaV0udmFsdWU7DQogICAgICAgICAgICAgICAgICAgIGlucHV0W25hbWVdID0gdmFsdWU7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgc3dpdGNoIChuYW1lKSB7DQogICAgICAgICAgICAgICAgY2FzZSAidHZnLWxvZ28iOg0KICAgICAgICAgICAgICAgICAgICAvLyhkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkuY2hpbGROb2Rlc1syXS5maXJzdENoaWxkIGFzIEhUTUxFbGVtZW50KS5zZXRBdHRyaWJ1dGUoInNyYyIsIHZhbHVlKQ0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBjYXNlICJ4LW5hbWUiOg0KICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkuY2hpbGROb2Rlc1szXS5maXJzdENoaWxkLmlubmVySFRNTCA9IHZhbHVlOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBjYXNlICJ4LWNhdGVnb3J5IjoNCiAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpLmNoaWxkTm9kZXNbM10uZmlyc3RDaGlsZC5jbGFzc05hbWUgPSB2YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAieC1ncm91cC10aXRsZSI6DQogICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5jaGlsZE5vZGVzWzVdLmZpcnN0Q2hpbGQuaW5uZXJIVE1MID0gdmFsdWU7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgIngteG1sdHYtZmlsZSI6DQogICAgICAgICAgICAgICAgICAgIGlmICh2YWx1ZSAhPSAieFRlVmUgRHVtbXkiICYmIHZhbHVlICE9ICItIikgew0KICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSBnZXRWYWx1ZUZyb21Qcm92aWRlckZpbGUodmFsdWUsICJ4bWx0diIsICJuYW1lIik7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgaWYgKHZhbHVlID09ICItIikgew0KICAgICAgICAgICAgICAgICAgICAgICAgaW5wdXRbIngtYWN0aXZlIl0gPSBmYWxzZTsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkuY2hpbGROb2Rlc1s2XS5maXJzdENoaWxkLmlubmVySFRNTCA9IHZhbHVlOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBjYXNlICJ4LW1hcHBpbmciOg0KICAgICAgICAgICAgICAgICAgICBpZiAodmFsdWUgPT0gIi0iKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBpbnB1dFsieC1hY3RpdmUiXSA9IGZhbHNlOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5jaGlsZE5vZGVzWzddLmZpcnN0Q2hpbGQuaW5uZXJIVE1MID0gdmFsdWU7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgIngtdGltZXNoaWZ0IjoNCiAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpLmNoaWxkTm9kZXNbOF0uZmlyc3RDaGlsZC5pbm5lckhUTUwgPSB2YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGNyZWF0ZVNlYXJjaE9iaigpOw0KICAgICAgICAgICAgc2VhcmNoSW5NYXBwaW5nKCk7DQogICAgICAgIH0NCiAgICAgICAgaWYgKGlucHV0WyJ4LWFjdGl2ZSJdID09IGZhbHNlKSB7DQogICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkuY2xhc3NOYW1lID0gIm5vdEFjdGl2ZUVQRyI7DQogICAgICAgIH0NCiAgICAgICAgZWxzZSB7DQogICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkuY2xhc3NOYW1lID0gImFjdGl2ZUVQRyI7DQogICAgICAgIH0NCiAgICAgICAgY29uc29sZS5sb2coaW5wdXRbInR2Zy1sb2dvIl0pOw0KICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkuY2hpbGROb2Rlc1syXS5maXJzdENoaWxkLnNldEF0dHJpYnV0ZSgic3JjIiwgaW5wdXRbInR2Zy1sb2dvIl0pOw0KICAgIH0pOw0KICAgIHNob3dFbGVtZW50KCJwb3B1cCIsIGZhbHNlKTsNCiAgICByZXR1cm47DQp9DQpmdW5jdGlvbiBzaG93UHJldmlldyhlbGVtZW50KSB7DQogICAgdmFyIGRpdiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJteVN0cmVhbXNCb3giKTsNCiAgICBzd2l0Y2ggKGVsZW1lbnQpIHsNCiAgICAgICAgY2FzZSBmYWxzZToNCiAgICAgICAgICAgIGRpdi5jbGFzc05hbWUgPSAibm90VmlzaWJsZSI7DQogICAgICAgICAgICByZXR1cm47DQogICAgICAgICAgICBicmVhazsNCiAgICB9DQogICAgdmFyIHN0cmVhbXMgPSBbImFjdGl2ZVN0cmVhbXMiLCAiaW5hY3RpdmVTdHJlYW1zIl07DQogICAgc3RyZWFtcy5mb3JFYWNoKGZ1bmN0aW9uIChwcmV2aWV3KSB7DQogICAgICAgIHZhciB0YWJsZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHByZXZpZXcpOw0KICAgICAgICB0YWJsZS5pbm5lckhUTUwgPSAiIjsNCiAgICAgICAgdmFyIG9iaiA9IFNFUlZFUlsiZGF0YSJdWyJTdHJlYW1QcmV2aWV3VUkiXVtwcmV2aWV3XTsNCiAgICAgICAgb2JqLmZvckVhY2goZnVuY3Rpb24gKGNoYW5uZWwpIHsNCiAgICAgICAgICAgIHZhciB0ciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlRSIik7DQogICAgICAgICAgICB2YXIgdGRLZXkgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgdmFyIHRkVmFsID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgIHRkS2V5LmNsYXNzTmFtZSA9ICJ0ZEtleSI7DQogICAgICAgICAgICB0ZFZhbC5jbGFzc05hbWUgPSAidGRWYWwiOw0KICAgICAgICAgICAgc3dpdGNoIChwcmV2aWV3KSB7DQogICAgICAgICAgICAgICAgY2FzZSAiYWN0aXZlU3RyZWFtcyI6DQogICAgICAgICAgICAgICAgICAgIHRkS2V5LmlubmVyVGV4dCA9ICJDaGFubmVsOiAoKykiOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBjYXNlICJpbmFjdGl2ZVN0cmVhbXMiOg0KICAgICAgICAgICAgICAgICAgICB0ZEtleS5pbm5lclRleHQgPSAiQ2hhbm5lbDogKC0pIjsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICB9DQogICAgICAgICAgICB0ZFZhbC5pbm5lclRleHQgPSBjaGFubmVsOw0KICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQodGRLZXkpOw0KICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQodGRWYWwpOw0KICAgICAgICAgICAgdGFibGUuYXBwZW5kQ2hpbGQodHIpOw0KICAgICAgICB9KTsNCiAgICB9KTsNCiAgICBzaG93RWxlbWVudCgibG9hZGluZyIsIGZhbHNlKTsNCiAgICBkaXYuY2xhc3NOYW1lID0gInZpc2libGUiOw0KICAgIHJldHVybjsNCn0NCg==" + webUI["html/configuration.html"] = "PCFkb2N0eXBlIGh0bWw+DQo8aHRtbD4NCiAgPGhlYWQ+DQogICAgPG1ldGEgY2hhcnNldD0idXRmLTgiPg0KICAgIDxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgsIGluaXRpYWwtc2NhbGU9MS4wIiAvPiANCiAgICA8dGl0bGU+eFRlVmU8L3RpdGxlPg0KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iY3NzL3NjcmVlbi5jc3MiIHR5cGU9InRleHQvY3NzIj4NCiAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9ImNzcy9iYXNlLmNzcyIgdHlwZT0idGV4dC9jc3MiPg0KICAgIDxzY3JpcHQgbGFuZ3VhZ2U9ImphdmFzY3JpcHQiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJqcy9jb25maWd1cmF0aW9uX3RzLmpzIj48L3NjcmlwdD4NCiAgICA8c2NyaXB0IGxhbmd1YWdlPSJqYXZhc2NyaXB0IiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ianMvbmV0d29ya190cy5qcyI+PC9zY3JpcHQ+DQogICAgPHNjcmlwdCBsYW5ndWFnZT0iamF2YXNjcmlwdCIgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9ImpzL21lbnVfdHMuanMiPjwvc2NyaXB0Pg0KICAgIDxzY3JpcHQgbGFuZ3VhZ2U9ImphdmFzY3JpcHQiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJqcy9zZXR0aW5nc190cy5qcyI+PC9zY3JpcHQ+DQogICAgPHNjcmlwdCBsYW5ndWFnZT0iamF2YXNjcmlwdCIgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9ImpzL2Jhc2VfdHMuanMiPjwvc2NyaXB0Pg0KICA8L2hlYWQ+DQoNCiAgICA8Ym9keSBvbmxvYWQ9ImphdmFzY3JpcHQ6IHJlYWR5Rm9yQ29uZmlndXJhdGlvbigwKTsiPg0KICAgICAgICAgIA0KICAgICAgPGRpdiBpZD0ibG9hZGluZyIgY2xhc3M9ImJsb2NrIj4NCiAgICAgICAgPGRpdiBjbGFzcz0ibG9hZGVyIj48L2Rpdj4NCiAgICAgIDwvZGl2Pg0KDQogICAgICA8ZGl2IGlkPSJoZWFkZXIiIGNsYXNzPSJpbWdDZW50ZXIiPjwvZGl2Pg0KICAgICAgPGRpdiBpZD0iYm94Ij4NCiAgICAgICAgDQogICAgICAgIDx0YWJsZSBpZD0iY2xpZW50SW5mbyIgY2xhc3M9InZpc2libGUiPg0KICAgICAgICAgIDx0cj4NCiAgICAgICAgICAgIDx0ZCBjbGFzcz0idGRLZXkiPlZlcnNpb246PC90ZD4NCiAgICAgICAgICAgIDx0ZCBpZD0idmVyc2lvbiIgY2xhc3M9InRkVmFsIj4mbmJzcDs8L3RkPg0KICAgICAgICAgICAgPHRkIGNsYXNzPSJ0ZEtleSI+T1M6PC90ZD4NCiAgICAgICAgICAgIDx0ZCBpZD0ib3MiIGNsYXNzPSJ0ZFZhbCI+Jm5ic3A7PC90ZD4NCiAgICAgICAgICA8L3RyPg0KICAgICAgICAgIDx0cj4NCiAgICAgICAgICAgIDx0ZCBjbGFzcz0idGRLZXkiPlVVSUQ6PC90ZD4NCiAgICAgICAgICAgIDx0ZCBpZD0idXVpZCIgY2xhc3M9InRkVmFsIj4mbmJzcDs8L3RkPg0KICAgICAgICAgICAgPHRkIGNsYXNzPSJ0ZEtleSI+QXJjaDo8L3RkPg0KICAgICAgICAgICAgPHRkIGlkPSJhcmNoIiBjbGFzcz0idGRWYWwiPiZuYnNwOzwvdGQ+DQogICAgICAgICAgPC90cj4NCiAgICAgICAgICA8dHI+DQogICAgICAgICAgICA8dGQgY2xhc3M9InRkS2V5Ij5TdHJlYW1zOjwvdGQ+DQogICAgICAgICAgICA8dGQgaWQ9InN0cmVhbXMiIGNsYXNzPSJ0ZFZhbCI+Jm5ic3A7PC90ZD4NCiAgICAgICAgICAgIDx0ZCBjbGFzcz0idGRLZXkiPkRWUjo8L3RkPg0KICAgICAgICAgICAgPHRkIGlkPSJEVlIiIGNsYXNzPSJ0ZFZhbCI+Jm5ic3A7PC90ZD4NCiAgICAgICAgICA8L3RyPg0KICAgICAgICA8L3RhYmxlPg0KICAgICAgICANCiAgICAgICAgPGRpdiBpZD0iaGVhZGxpbmUiPg0KICAgICAgICAgIDxoMSBpZD0iaGVhZC10ZXh0IiBjbGFzcz0iY2VudGVyIj5Db25maWd1cmF0aW9uPC9oMT4gICAgICANCiAgICAgICAgPC9kaXY+DQogICAgICAgIDxwIGlkPSJlcnIiIGNsYXNzPSJlcnJvck1zZyBjZW50ZXIiPjwvcD4gICANCiAgICAgICAgPGRpdiBpZD0iY29udGVudCI+DQogICAgICAgICAgICANCiAgICAgICAgPC9kaXY+DQogICAgICAgIDxkaXYgaWQ9ImJveC1mb290ZXIiPg0KICAgICAgICAgIDxpbnB1dCBpZD0ibmV4dCIgY2xhc3M9IiIgdHlwZT0iYnV0dG9uIiBuYW1lPSJuZXh0IiB2YWx1ZT0iTmV4dCIgb25jbGljaz0iamF2YXNjcmlwdDogc2F2ZVdpemFyZCgpOyI+DQogICAgICAgIDwvZGl2Pg0KICAgICAgPC9kaXY+DQogICAgPC9ib2R5Pg0KPC9odG1sPg==" + webUI["html/js/authentication.js"] = "ZnVuY3Rpb24gY3JlYXRlRmlyc3RBY2NvdW50KGVsbSkgew0KICB2YXIgZXJyID0gZmFsc2U7DQogIHZhciBkaXYgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChlbG0pOw0KICBjb25zb2xlLmxvZyhkaXYpOw0KDQogIHZhciBmb3JtID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2F1dGhlbnRpY2F0aW9uJyk7DQogIA0KICBjb25zdCB1c2VybmFtZSAgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndXNlcm5hbWUnKTsNCiAgY29uc3QgcGFzc3dvcmQgID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Bhc3N3b3JkJyk7DQogIGNvbnN0IGNvbmZpcm0gICA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjb25maXJtJyk7DQoNCiAgdmFyIGlucHV0cyA9IGRpdi5nZXRFbGVtZW50c0J5VGFnTmFtZSgnSU5QVVQnKQ0KICBjb25zb2xlLmxvZyhjb25maXJtKTsNCg0KICBzd2l0Y2goY29uZmlybSkgew0KICAgIGNhc2UgbnVsbDogYnJlYWs7DQogICAgDQogICAgZGVmYXVsdDogDQogICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGlucHV0cy5sZW5ndGg7IGkrKykgew0KICAgICAgICBpZiAoaW5wdXRzW2ldLnZhbHVlLmxlbmd0aCA9PSAwKSB7DQogICAgICAgICAgaW5wdXRzW2ldLnN0eWxlLmJvcmRlckNvbG9yID0gJ3JlZCc7DQogICAgICAgICAgZXJyID0gdHJ1ZQ0KICAgICAgICB9DQogICAgICB9DQoNCiAgICAgIHN3aXRjaChlcnIpIHsNCiAgICAgICAgY2FzZSB0cnVlOiByZXR1cm47IGJyZWFrOw0KICAgICAgICBjYXNlIGZhbHNlOiANCiAgICAgICAgICBpZiAocGFzc3dvcmQudmFsdWUgIT0gY29uZmlybS52YWx1ZSkgew0KICAgICAgICAgICAgY29uZmlybS5zdHlsZS5ib3JkZXJDb2xvciA9ICdyZWQnOw0KICAgICAgICAgICAgcmV0dXJuOw0KICAgICAgICAgIH0NCiAgICAgICAgICBicmVhazsNCiAgICAgIH0NCiAgfQ0KDQoNCiAgDQoNCiAgZm9ybS5zdWJtaXQoKTsNCiAgcmV0dXJuOw0KfQ==" + webUI["html/js/authentication_ts.js"] = "ZnVuY3Rpb24gbG9naW4oKSB7DQogICAgdmFyIGVyciA9IGZhbHNlOw0KICAgIHZhciBkYXRhID0gbmV3IE9iamVjdCgpOw0KICAgIHZhciBkaXYgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29udGVudCIpOw0KICAgIHZhciBmb3JtID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImF1dGhlbnRpY2F0aW9uIik7DQogICAgdmFyIGlucHV0cyA9IGRpdi5nZXRFbGVtZW50c0J5VGFnTmFtZSgiSU5QVVQiKTsNCiAgICBjb25zb2xlLmxvZyhpbnB1dHMpOw0KICAgIGZvciAodmFyIGkgPSBpbnB1dHMubGVuZ3RoIC0gMTsgaSA+PSAwOyBpLS0pIHsNCiAgICAgICAgdmFyIGtleSA9IGlucHV0c1tpXS5uYW1lOw0KICAgICAgICB2YXIgdmFsdWUgPSBpbnB1dHNbaV0udmFsdWU7DQogICAgICAgIGlmICh2YWx1ZS5sZW5ndGggPT0gMCkgew0KICAgICAgICAgICAgaW5wdXRzW2ldLnN0eWxlLmJvcmRlckNvbG9yID0gInJlZCI7DQogICAgICAgICAgICBlcnIgPSB0cnVlOw0KICAgICAgICB9DQogICAgICAgIGRhdGFba2V5XSA9IHZhbHVlOw0KICAgIH0NCiAgICBpZiAoZXJyID09IHRydWUpIHsNCiAgICAgICAgZGF0YSA9IG5ldyBPYmplY3QoKTsNCiAgICAgICAgcmV0dXJuOw0KICAgIH0NCiAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgiY29uZmlybSIpKSB7DQogICAgICAgIGlmIChkYXRhWyJjb25maXJtIl0gIT0gZGF0YVsicGFzc3dvcmQiXSkgew0KICAgICAgICAgICAgYWxlcnQoInNkYWZzZCIpOw0KICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Bhc3N3b3JkJykuc3R5bGUuYm9yZGVyQ29sb3IgPSAicmVkIjsNCiAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjb25maXJtJykuc3R5bGUuYm9yZGVyQ29sb3IgPSAicmVkIjsNCiAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJlcnIiKS5pbm5lckhUTUwgPSAie3suYWNjb3VudC5mYWlsZWR9fSI7DQogICAgICAgICAgICByZXR1cm47DQogICAgICAgIH0NCiAgICB9DQogICAgY29uc29sZS5sb2coZGF0YSk7DQogICAgZm9ybS5zdWJtaXQoKTsNCn0NCg==" + webUI["html/js/base_ts.js"] = "dmFyIFNFUlZFUiA9IG5ldyBPYmplY3QoKTsNCnZhciBCVUxLX0VESVQgPSBmYWxzZTsNCnZhciBDT0xVTU5fVE9fU09SVDsNCnZhciBTRUFSQ0hfTUFQUElORyA9IG5ldyBPYmplY3QoKTsNCnZhciBVTkRPID0gbmV3IE9iamVjdCgpOw0KdmFyIFNFUlZFUl9DT05ORUNUSU9OID0gZmFsc2U7DQp2YXIgV1NfQVZBSUxBQkxFID0gZmFsc2U7DQovLyBNZW7DvA0KdmFyIG1lbnVJdGVtcyA9IG5ldyBBcnJheSgpOw0KbWVudUl0ZW1zLnB1c2gobmV3IE1haW5NZW51SXRlbSgicGxheWxpc3QiLCAie3subWFpbk1lbnUuaXRlbS5wbGF5bGlzdH19IiwgIm0zdS5wbmciLCAie3subWFpbk1lbnUuaGVhZGxpbmUucGxheWxpc3R9fSIpKTsNCi8vbWVudUl0ZW1zLnB1c2gobmV3IE1haW5NZW51SXRlbSgicG1zSUQiLCAie3subWFpbk1lbnUuaXRlbS5wbXNJRH19IiwgIm51bWJlci5wbmciLCAie3subWFpbk1lbnUuaGVhZGxpbmUucG1zSUR9fSIpKQ0KbWVudUl0ZW1zLnB1c2gobmV3IE1haW5NZW51SXRlbSgiZmlsdGVyIiwgInt7Lm1haW5NZW51Lml0ZW0uZmlsdGVyfX0iLCAiZmlsdGVyLnBuZyIsICJ7ey5tYWluTWVudS5oZWFkbGluZS5maWx0ZXJ9fSIpKTsNCm1lbnVJdGVtcy5wdXNoKG5ldyBNYWluTWVudUl0ZW0oInhtbHR2IiwgInt7Lm1haW5NZW51Lml0ZW0ueG1sdHZ9fSIsICJ4bWx0di5wbmciLCAie3subWFpbk1lbnUuaGVhZGxpbmUueG1sdHZ9fSIpKTsNCm1lbnVJdGVtcy5wdXNoKG5ldyBNYWluTWVudUl0ZW0oIm1hcHBpbmciLCAie3subWFpbk1lbnUuaXRlbS5tYXBwaW5nfX0iLCAibWFwcGluZy5wbmciLCAie3subWFpbk1lbnUuaGVhZGxpbmUubWFwcGluZ319IikpOw0KbWVudUl0ZW1zLnB1c2gobmV3IE1haW5NZW51SXRlbSgidXNlcnMiLCAie3subWFpbk1lbnUuaXRlbS51c2Vyc319IiwgInVzZXJzLnBuZyIsICJ7ey5tYWluTWVudS5oZWFkbGluZS51c2Vyc319IikpOw0KbWVudUl0ZW1zLnB1c2gobmV3IE1haW5NZW51SXRlbSgic2V0dGluZ3MiLCAie3subWFpbk1lbnUuaXRlbS5zZXR0aW5nc319IiwgInNldHRpbmdzLnBuZyIsICJ7ey5tYWluTWVudS5oZWFkbGluZS5zZXR0aW5nc319IikpOw0KbWVudUl0ZW1zLnB1c2gobmV3IE1haW5NZW51SXRlbSgibG9nIiwgInt7Lm1haW5NZW51Lml0ZW0ubG9nfX0iLCAibG9nLnBuZyIsICJ7ey5tYWluTWVudS5oZWFkbGluZS5sb2d9fSIpKTsNCm1lbnVJdGVtcy5wdXNoKG5ldyBNYWluTWVudUl0ZW0oImxvZ291dCIsICJ7ey5tYWluTWVudS5pdGVtLmxvZ291dH19IiwgImxvZ291dC5wbmciLCAie3subWFpbk1lbnUuaGVhZGxpbmUubG9nb3V0fX0iKSk7DQovLyBLYXRlZ29yaWVuIGbDvHIgZGllIEVpbnN0ZWxsdW5nZW4NCnZhciBzZXR0aW5nc0NhdGVnb3J5ID0gbmV3IEFycmF5KCk7DQpzZXR0aW5nc0NhdGVnb3J5LnB1c2gobmV3IFNldHRpbmdzQ2F0ZWdvcnlJdGVtKCJ7ey5zZXR0aW5ncy5jYXRlZ29yeS5nZW5lcmFsfX0iLCAieHRldmVBdXRvVXBkYXRlLHR1bmVyLGVwZ1NvdXJjZSxhcGkiKSk7DQpzZXR0aW5nc0NhdGVnb3J5LnB1c2gobmV3IFNldHRpbmdzQ2F0ZWdvcnlJdGVtKCJ7ey5zZXR0aW5ncy5jYXRlZ29yeS5maWxlc319IiwgInVwZGF0ZSxmaWxlcy51cGRhdGUsdGVtcC5wYXRoLGNhY2hlLmltYWdlcyx4ZXBnLnJlcGxhY2UubWlzc2luZy5pbWFnZXMiKSk7DQpzZXR0aW5nc0NhdGVnb3J5LnB1c2gobmV3IFNldHRpbmdzQ2F0ZWdvcnlJdGVtKCJ7ey5zZXR0aW5ncy5jYXRlZ29yeS5zdHJlYW1pbmd9fSIsICJidWZmZXIsdWRweHksYnVmZmVyLnNpemUua2IsYnVmZmVyLnRpbWVvdXQsdXNlci5hZ2VudCxmZm1wZWcucGF0aCxmZm1wZWcub3B0aW9ucyx2bGMucGF0aCx2bGMub3B0aW9ucyIpKTsNCnNldHRpbmdzQ2F0ZWdvcnkucHVzaChuZXcgU2V0dGluZ3NDYXRlZ29yeUl0ZW0oInt7LnNldHRpbmdzLmNhdGVnb3J5LmJhY2t1cH19IiwgImJhY2t1cC5wYXRoLGJhY2t1cC5rZWVwIikpOw0Kc2V0dGluZ3NDYXRlZ29yeS5wdXNoKG5ldyBTZXR0aW5nc0NhdGVnb3J5SXRlbSgie3suc2V0dGluZ3MuY2F0ZWdvcnkuYXV0aGVudGljYXRpb259fSIsICJhdXRoZW50aWNhdGlvbi53ZWIsYXV0aGVudGljYXRpb24ucG1zLGF1dGhlbnRpY2F0aW9uLm0zdSxhdXRoZW50aWNhdGlvbi54bWwsYXV0aGVudGljYXRpb24uYXBpIikpOw0KZnVuY3Rpb24gc2hvd1BvcFVwRWxlbWVudChlbG0pIHsNCiAgICB2YXIgYWxsRWxlbWVudHMgPSBuZXcgQXJyYXkoInBvcHVwLWN1c3RvbSIpOw0KICAgIGZvciAodmFyIGkgPSAwOyBpIDwgYWxsRWxlbWVudHMubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgc2hvd0VsZW1lbnQoYWxsRWxlbWVudHNbaV0sIGZhbHNlKTsNCiAgICB9DQogICAgc2hvd0VsZW1lbnQoZWxtLCB0cnVlKTsNCiAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsNCiAgICAgICAgc2hvd0VsZW1lbnQoInBvcHVwIiwgdHJ1ZSk7DQogICAgfSwgMTApOw0KICAgIHJldHVybjsNCn0NCmZ1bmN0aW9uIHNob3dFbGVtZW50KGVsbUlELCB0eXBlKSB7DQogICAgdmFyIGNzc0NsYXNzOw0KICAgIHN3aXRjaCAodHlwZSkgew0KICAgICAgICBjYXNlIHRydWU6DQogICAgICAgICAgICBjc3NDbGFzcyA9ICJibG9jayI7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSBmYWxzZToNCiAgICAgICAgICAgIGNzc0NsYXNzID0gIm5vbmUiOw0KICAgICAgICAgICAgYnJlYWs7DQogICAgfQ0KICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGVsbUlEKS5jbGFzc05hbWUgPSBjc3NDbGFzczsNCn0NCmZ1bmN0aW9uIGNoYW5nZUJ1dHRvbkFjdGlvbihlbGVtZW50LCBidXR0b25JRCwgYXR0cmlidXRlKSB7DQogICAgdmFyIHZhbHVlID0gZWxlbWVudC5vcHRpb25zW2VsZW1lbnQuc2VsZWN0ZWRJbmRleF0udmFsdWU7DQogICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoYnV0dG9uSUQpLnNldEF0dHJpYnV0ZShhdHRyaWJ1dGUsIHZhbHVlKTsNCn0NCmZ1bmN0aW9uIGdldExvY2FsRGF0YShkYXRhVHlwZSwgaWQpIHsNCiAgICB2YXIgZGF0YSA9IG5ldyBPYmplY3QoKTsNCiAgICBzd2l0Y2ggKGRhdGFUeXBlKSB7DQogICAgICAgIGNhc2UgIm0zdSI6DQogICAgICAgICAgICBkYXRhID0gU0VSVkVSWyJzZXR0aW5ncyJdWyJmaWxlcyJdW2RhdGFUeXBlXVtpZF07DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSAiaGRociI6DQogICAgICAgICAgICBkYXRhID0gU0VSVkVSWyJzZXR0aW5ncyJdWyJmaWxlcyJdW2RhdGFUeXBlXVtpZF07DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSAiZmlsdGVyIjoNCiAgICAgICAgY2FzZSAiY3VzdG9tLWZpbHRlciI6DQogICAgICAgIGNhc2UgImdyb3VwLXRpdGxlIjoNCiAgICAgICAgICAgIGlmIChpZCA9PSAtMSkgew0KICAgICAgICAgICAgICAgIGRhdGFbImFjdGl2ZSJdID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICBkYXRhWyJjYXNlU2Vuc2l0aXZlIl0gPSBmYWxzZTsNCiAgICAgICAgICAgICAgICBkYXRhWyJkZXNjcmlwdGlvbiJdID0gIiI7DQogICAgICAgICAgICAgICAgZGF0YVsiZXhjbHVkZSJdID0gIiI7DQogICAgICAgICAgICAgICAgZGF0YVsiZmlsdGVyIl0gPSAiIjsNCiAgICAgICAgICAgICAgICBkYXRhWyJpbmNsdWRlIl0gPSAiIjsNCiAgICAgICAgICAgICAgICBkYXRhWyJuYW1lIl0gPSAiIjsNCiAgICAgICAgICAgICAgICBkYXRhWyJ0eXBlIl0gPSAiZ3JvdXAtdGl0bGUiOw0KICAgICAgICAgICAgICAgIFNFUlZFUlsic2V0dGluZ3MiXVsiZmlsdGVyIl1baWRdID0gZGF0YTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGRhdGEgPSBTRVJWRVJbInNldHRpbmdzIl1bImZpbHRlciJdW2lkXTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJ4bWx0diI6DQogICAgICAgICAgICBkYXRhID0gU0VSVkVSWyJzZXR0aW5ncyJdWyJmaWxlcyJdW2RhdGFUeXBlXVtpZF07DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSAidXNlcnMiOg0KICAgICAgICAgICAgZGF0YSA9IFNFUlZFUlsidXNlcnMiXVtpZF1bImRhdGEiXTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJtYXBwaW5nIjoNCiAgICAgICAgICAgIGRhdGEgPSBTRVJWRVJbInhlcGciXVsiZXBnTWFwcGluZyJdW2lkXTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJtM3VHcm91cHMiOg0KICAgICAgICAgICAgZGF0YSA9IFNFUlZFUlsiZGF0YSJdWyJwbGF5bGlzdCJdWyJtM3UiXVsiZ3JvdXBzIl07DQogICAgICAgICAgICBicmVhazsNCiAgICB9DQogICAgcmV0dXJuIGRhdGE7DQp9DQpmdW5jdGlvbiBnZXRPYmpLZXlzKG9iaikgew0KICAgIHZhciBrZXlzID0gbmV3IEFycmF5KCk7DQogICAgZm9yICh2YXIgaSBpbiBvYmopIHsNCiAgICAgICAgaWYgKG9iai5oYXNPd25Qcm9wZXJ0eShpKSkgew0KICAgICAgICAgICAga2V5cy5wdXNoKGkpOw0KICAgICAgICB9DQogICAgfQ0KICAgIHJldHVybiBrZXlzOw0KfQ0KZnVuY3Rpb24gZ2V0QWxsU2VsZWN0ZWRDaGFubmVscygpIHsNCiAgICB2YXIgY2hhbm5lbHMgPSBuZXcgQXJyYXkoKTsNCiAgICBpZiAoQlVMS19FRElUID09IGZhbHNlKSB7DQogICAgICAgIHJldHVybiBjaGFubmVsczsNCiAgICB9DQogICAgdmFyIHRycyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb250ZW50X3RhYmxlIikuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlRSIik7DQogICAgZm9yICh2YXIgaSA9IDE7IGkgPCB0cnMubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgaWYgKHRyc1tpXS5zdHlsZS5kaXNwbGF5ICE9ICJub25lIikgew0KICAgICAgICAgICAgaWYgKHRyc1tpXS5maXJzdENoaWxkLmZpcnN0Q2hpbGQuY2hlY2tlZCA9PSB0cnVlKSB7DQogICAgICAgICAgICAgICAgY2hhbm5lbHMucHVzaCh0cnNbaV0uaWQpOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQogICAgfQ0KICAgIHJldHVybiBjaGFubmVsczsNCn0NCmZ1bmN0aW9uIHNlbGVjdEFsbENoYW5uZWxzKCkgew0KICAgIHZhciBidWxrID0gZmFsc2U7DQogICAgdmFyIHRycyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb250ZW50X3RhYmxlIikuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlRSIik7DQogICAgaWYgKHRyc1swXS5maXJzdENoaWxkLmZpcnN0Q2hpbGQuY2hlY2tlZCA9PSB0cnVlKSB7DQogICAgICAgIGJ1bGsgPSB0cnVlOw0KICAgIH0NCiAgICBmb3IgKHZhciBpID0gMTsgaSA8IHRycy5sZW5ndGg7IGkrKykgew0KICAgICAgICBpZiAodHJzW2ldLnN0eWxlLmRpc3BsYXkgIT0gIm5vbmUiKSB7DQogICAgICAgICAgICBzd2l0Y2ggKGJ1bGspIHsNCiAgICAgICAgICAgICAgICBjYXNlIHRydWU6DQogICAgICAgICAgICAgICAgICAgIHRyc1tpXS5maXJzdENoaWxkLmZpcnN0Q2hpbGQuY2hlY2tlZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgZmFsc2U6DQogICAgICAgICAgICAgICAgICAgIHRyc1tpXS5maXJzdENoaWxkLmZpcnN0Q2hpbGQuY2hlY2tlZCA9IGZhbHNlOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KICAgIH0NCiAgICByZXR1cm47DQp9DQpmdW5jdGlvbiBidWxrRWRpdCgpIHsNCiAgICBCVUxLX0VESVQgPSAhQlVMS19FRElUOw0KICAgIHZhciBjbGFzc05hbWU7DQogICAgdmFyIHJvd3MgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCJidWxrIik7DQogICAgc3dpdGNoIChCVUxLX0VESVQpIHsNCiAgICAgICAgY2FzZSB0cnVlOg0KICAgICAgICAgICAgY2xhc3NOYW1lID0gImJ1bGsgc2hvd0J1bGsiOw0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGNhc2UgZmFsc2U6DQogICAgICAgICAgICBjbGFzc05hbWUgPSAiYnVsayBoaWRlQnVsayI7DQogICAgICAgICAgICBicmVhazsNCiAgICB9DQogICAgZm9yICh2YXIgaSA9IDA7IGkgPCByb3dzLmxlbmd0aDsgaSsrKSB7DQogICAgICAgIHJvd3NbaV0uY2xhc3NOYW1lID0gY2xhc3NOYW1lOw0KICAgICAgICByb3dzW2ldLmNoZWNrZWQgPSBmYWxzZTsNCiAgICB9DQogICAgcmV0dXJuOw0KfQ0KZnVuY3Rpb24gc29ydFRhYmxlKGNvbHVtbikgew0KICAgIC8vY29uc29sZS5sb2coY29sdW1tKTsNCiAgICBpZiAoY29sdW1uID09IENPTFVNTl9UT19TT1JUKSB7DQogICAgICAgIHJldHVybjsNCiAgICB9DQogICAgdmFyIHRhYmxlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnRlbnRfdGFibGUiKTsNCiAgICB2YXIgdGFibGVIZWFkID0gdGFibGUuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlRSIilbMF07DQogICAgdmFyIHRhYmxlSXRlbXMgPSB0YWJsZUhlYWQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlREIik7DQogICAgdmFyIHNvcnRPYmogPSBuZXcgT2JqZWN0KCk7DQogICAgdmFyIHgsIHhWYWx1ZTsNCiAgICB2YXIgdGFibGVIZWFkZXI7DQogICAgdmFyIHNvcnRCeVN0cmluZyA9IGZhbHNlOw0KICAgIGlmIChjb2x1bW4gPiAwICYmIENPTFVNTl9UT19TT1JUID4gMCkgew0KICAgICAgICB0YWJsZUl0ZW1zW0NPTFVNTl9UT19TT1JUXS5jbGFzc05hbWUgPSAicG9pbnRlciI7DQogICAgICAgIHRhYmxlSXRlbXNbY29sdW1uXS5jbGFzc05hbWUgPSAic29ydFRoaXMiOw0KICAgIH0NCiAgICBDT0xVTU5fVE9fU09SVCA9IGNvbHVtbjsNCiAgICB2YXIgcm93cyA9IHRhYmxlLnJvd3M7DQogICAgaWYgKHJvd3NbMV0gIT0gdW5kZWZpbmVkKSB7DQogICAgICAgIHRhYmxlSGVhZGVyID0gcm93c1swXTsNCiAgICAgICAgeCA9IHJvd3NbMV0uZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlREIilbY29sdW1uXTsNCiAgICAgICAgZm9yIChpID0gMTsgaSA8IHJvd3MubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgICAgIHggPSByb3dzW2ldLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJURCIpW2NvbHVtbl07DQogICAgICAgICAgICBzd2l0Y2ggKHguY2hpbGROb2Rlc1swXS50YWdOYW1lLnRvTG93ZXJDYXNlKCkpIHsNCiAgICAgICAgICAgICAgICBjYXNlICJpbnB1dCI6DQogICAgICAgICAgICAgICAgICAgIHhWYWx1ZSA9IHguZ2V0RWxlbWVudHNCeVRhZ05hbWUoIklOUFVUIilbMF0udmFsdWUudG9Mb3dlckNhc2UoKTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAicCI6DQogICAgICAgICAgICAgICAgICAgIHhWYWx1ZSA9IHguZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlAiKVswXS5pbm5lclRleHQudG9Mb3dlckNhc2UoKTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgZGVmYXVsdDogY29uc29sZS5sb2coeC5jaGlsZE5vZGVzWzBdLnRhZ05hbWUpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgaWYgKHhWYWx1ZSA9PSAiIiB8fCB4VmFsdWUgPT0gTmFOKSB7DQogICAgICAgICAgICAgICAgeFZhbHVlID0gaTsNCiAgICAgICAgICAgICAgICBzb3J0T2JqW2ldID0gcm93c1tpXTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgICAgIHN3aXRjaCAoaXNOYU4oeFZhbHVlKSkgew0KICAgICAgICAgICAgICAgICAgICBjYXNlIGZhbHNlOg0KICAgICAgICAgICAgICAgICAgICAgICAgeFZhbHVlID0gcGFyc2VGbG9hdCh4VmFsdWUpOw0KICAgICAgICAgICAgICAgICAgICAgICAgc29ydE9ialt4VmFsdWVdID0gcm93c1tpXTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgICAgICBjYXNlIHRydWU6DQogICAgICAgICAgICAgICAgICAgICAgICBzb3J0QnlTdHJpbmcgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgc29ydE9ialt4VmFsdWUudG9Mb3dlckNhc2UoKSArIGldID0gcm93c1tpXTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KICAgICAgICB3aGlsZSAodGFibGUuZmlyc3RDaGlsZCkgew0KICAgICAgICAgICAgdGFibGUucmVtb3ZlQ2hpbGQodGFibGUuZmlyc3RDaGlsZCk7DQogICAgICAgIH0NCiAgICAgICAgdmFyIHNvcnRWYWx1ZXMgPSBnZXRPYmpLZXlzKHNvcnRPYmopOw0KICAgICAgICBpZiAoc29ydEJ5U3RyaW5nID09IHRydWUpIHsNCiAgICAgICAgICAgIHNvcnRWYWx1ZXMuc29ydCgpOw0KICAgICAgICAgICAgY29uc29sZS5sb2coc29ydFZhbHVlcyk7DQogICAgICAgIH0NCiAgICAgICAgZWxzZSB7DQogICAgICAgICAgICBmdW5jdGlvbiBzb3J0RmxvYXQoYSwgYikgew0KICAgICAgICAgICAgICAgIHJldHVybiBhIC0gYjsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIHNvcnRWYWx1ZXMuc29ydChzb3J0RmxvYXQpOw0KICAgICAgICB9DQogICAgICAgIHRhYmxlLmFwcGVuZENoaWxkKHRhYmxlSGVhZGVyKTsNCiAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBzb3J0VmFsdWVzLmxlbmd0aDsgaSsrKSB7DQogICAgICAgICAgICB0YWJsZS5hcHBlbmRDaGlsZChzb3J0T2JqW3NvcnRWYWx1ZXNbaV1dKTsNCiAgICAgICAgfQ0KICAgIH0NCiAgICByZXR1cm47DQp9DQpmdW5jdGlvbiBjcmVhdGVTZWFyY2hPYmooKSB7DQogICAgU0VBUkNIX01BUFBJTkcgPSBuZXcgT2JqZWN0KCk7DQogICAgdmFyIGRhdGEgPSBTRVJWRVJbInhlcGciXVsiZXBnTWFwcGluZyJdOw0KICAgIHZhciBjaGFubmVscyA9IGdldE9iaktleXMoZGF0YSk7DQogICAgdmFyIGNoYW5uZWxLZXlzID0gWyJ4LWFjdGl2ZSIsICJ4LWNoYW5uZWxJRCIsICJ4LW5hbWUiLCAiX2ZpbGUubTN1Lm5hbWUiLCAieC1ncm91cC10aXRsZSIsICJ4LXhtbHR2LWZpbGUiXTsNCiAgICBjaGFubmVscy5mb3JFYWNoKGZ1bmN0aW9uIChpZCkgew0KICAgICAgICBjaGFubmVsS2V5cy5mb3JFYWNoKGZ1bmN0aW9uIChrZXkpIHsNCiAgICAgICAgICAgIGlmIChrZXkgPT0gIngtYWN0aXZlIikgew0KICAgICAgICAgICAgICAgIHN3aXRjaCAoZGF0YVtpZF1ba2V5XSkgew0KICAgICAgICAgICAgICAgICAgICBjYXNlIHRydWU6DQogICAgICAgICAgICAgICAgICAgICAgICBTRUFSQ0hfTUFQUElOR1tpZF0gPSAib25saW5lICI7DQogICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICAgICAgY2FzZSBmYWxzZToNCiAgICAgICAgICAgICAgICAgICAgICAgIFNFQVJDSF9NQVBQSU5HW2lkXSA9ICJvZmZsaW5lICI7DQogICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9DQogICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICBpZiAoa2V5ID09ICJ4LXhtbHR2LWZpbGUiKSB7DQogICAgICAgICAgICAgICAgICAgIHZhciB4bWx0dkZpbGUgPSBnZXRWYWx1ZUZyb21Qcm92aWRlckZpbGUoZGF0YVtpZF1ba2V5XSwgInhtbHR2IiwgIm5hbWUiKTsNCiAgICAgICAgICAgICAgICAgICAgaWYgKHhtbHR2RmlsZSAhPSB1bmRlZmluZWQpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIFNFQVJDSF9NQVBQSU5HW2lkXSA9IFNFQVJDSF9NQVBQSU5HW2lkXSArIHhtbHR2RmlsZSArICIgIjsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICAgICAgU0VBUkNIX01BUFBJTkdbaWRdID0gU0VBUkNIX01BUFBJTkdbaWRdICsgZGF0YVtpZF1ba2V5XSArICIgIjsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9DQogICAgICAgIH0pOw0KICAgIH0pOw0KICAgIHJldHVybjsNCn0NCmZ1bmN0aW9uIHNlYXJjaEluTWFwcGluZygpIHsNCiAgICB2YXIgc2VhcmNoVmFsdWUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic2VhcmNoTWFwcGluZyIpLnZhbHVlOw0KICAgIHZhciB0cnMgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29udGVudF90YWJsZSIpLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJUUiIpOw0KICAgIGZvciAodmFyIGkgPSAxOyBpIDwgdHJzLmxlbmd0aDsgKytpKSB7DQogICAgICAgIHZhciBpZCA9IHRyc1tpXS5nZXRBdHRyaWJ1dGUoImlkIik7DQogICAgICAgIHZhciBlbGVtZW50ID0gU0VBUkNIX01BUFBJTkdbaWRdOw0KICAgICAgICBzd2l0Y2ggKGVsZW1lbnQudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhzZWFyY2hWYWx1ZS50b0xvd2VyQ2FzZSgpKSkgew0KICAgICAgICAgICAgY2FzZSB0cnVlOg0KICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5zdHlsZS5kaXNwbGF5ID0gIiI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlIGZhbHNlOg0KICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5zdHlsZS5kaXNwbGF5ID0gIm5vbmUiOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICB9DQogICAgfQ0KICAgIHJldHVybjsNCn0NCmZ1bmN0aW9uIGNhbGN1bGF0ZVdyYXBwZXJIZWlnaHQoKSB7DQogICAgaWYgKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJib3gtd3JhcHBlciIpKSB7DQogICAgICAgIHZhciBlbG0gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYm94LXdyYXBwZXIiKTsNCiAgICAgICAgdmFyIGRpdnMgPSBuZXcgQXJyYXkoIm15U3RyZWFtc0JveCIsICJjbGllbnRJbmZvIiwgImNvbnRlbnQiKTsNCiAgICAgICAgdmFyIGVsZW1lbnRzSGVpZ2h0ID0gMCAtIGVsbS5vZmZzZXRIZWlnaHQ7DQogICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgZGl2cy5sZW5ndGg7IGkrKykgew0KICAgICAgICAgICAgZWxlbWVudHNIZWlnaHQgPSBlbGVtZW50c0hlaWdodCArIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGRpdnNbaV0pLm9mZnNldEhlaWdodDsNCiAgICAgICAgfQ0KICAgICAgICBlbG0uc3R5bGUuaGVpZ2h0ID0gd2luZG93LmlubmVySGVpZ2h0IC0gZWxlbWVudHNIZWlnaHQgKyAicHgiOw0KICAgIH0NCiAgICByZXR1cm47DQp9DQpmdW5jdGlvbiBjaGFuZ2VDaGFubmVsTnVtYmVyKGVsZW1lbnQpIHsNCiAgICB2YXIgZGJJRCA9IGVsZW1lbnQucGFyZW50Tm9kZS5wYXJlbnROb2RlLmlkOw0KICAgIHZhciBuZXdOdW1iZXIgPSBwYXJzZUZsb2F0KGVsZW1lbnQudmFsdWUpOw0KICAgIHZhciBjaGFubmVsTnVtYmVycyA9IFtdOw0KICAgIHZhciBkYXRhID0gU0VSVkVSWyJ4ZXBnIl1bImVwZ01hcHBpbmciXTsNCiAgICB2YXIgY2hhbm5lbHMgPSBnZXRPYmpLZXlzKGRhdGEpOw0KICAgIGlmIChpc05hTihuZXdOdW1iZXIpKSB7DQogICAgICAgIGFsZXJ0KCJ7ey5hbGVydC5pbnZhbGlkQ2hhbm5lbE51bWJlcn19Iik7DQogICAgICAgIHJldHVybjsNCiAgICB9DQogICAgY2hhbm5lbHMuZm9yRWFjaChmdW5jdGlvbiAoaWQpIHsNCiAgICAgICAgdmFyIGNoYW5uZWxOdW1iZXIgPSBwYXJzZUZsb2F0KGRhdGFbaWRdWyJ4LWNoYW5uZWxJRCJdKTsNCiAgICAgICAgY2hhbm5lbE51bWJlcnMucHVzaChjaGFubmVsTnVtYmVyKTsNCiAgICB9KTsNCiAgICBmb3IgKHZhciBpID0gMDsgaSA8IGNoYW5uZWxOdW1iZXJzLmxlbmd0aDsgaSsrKSB7DQogICAgICAgIGlmIChjaGFubmVsTnVtYmVycy5pbmRleE9mKG5ld051bWJlcikgPT0gLTEpIHsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICB9DQogICAgICAgIGlmIChNYXRoLmZsb29yKG5ld051bWJlcikgPT0gbmV3TnVtYmVyKSB7DQogICAgICAgICAgICBuZXdOdW1iZXIgPSBuZXdOdW1iZXIgKyAxOw0KICAgICAgICB9DQogICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgbmV3TnVtYmVyID0gbmV3TnVtYmVyICsgMC4xOw0KICAgICAgICAgICAgbmV3TnVtYmVyLnRvRml4ZWQoMSk7DQogICAgICAgICAgICBuZXdOdW1iZXIgPSBNYXRoLnJvdW5kKG5ld051bWJlciAqIDEwKSAvIDEwOw0KICAgICAgICB9DQogICAgfQ0KICAgIGRhdGFbZGJJRF1bIngtY2hhbm5lbElEIl0gPSBuZXdOdW1iZXIudG9TdHJpbmcoKTsNCiAgICBlbGVtZW50LnZhbHVlID0gbmV3TnVtYmVyOw0KICAgIGNvbnNvbGUubG9nKGRhdGFbZGJJRF1bIngtY2hhbm5lbElEIl0pOw0KICAgIGlmIChDT0xVTU5fVE9fU09SVCA9PSAxKSB7DQogICAgICAgIENPTFVNTl9UT19TT1JUID0gLTE7DQogICAgICAgIHNvcnRUYWJsZSgxKTsNCiAgICB9DQogICAgcmV0dXJuOw0KfQ0KZnVuY3Rpb24gYmFja3VwKCkgew0KICAgIHZhciBkYXRhID0gbmV3IE9iamVjdCgpOw0KICAgIGNvbnNvbGUubG9nKCJCYWNrdXAgZGF0YSIpOw0KICAgIHZhciBjbWQgPSAieHRldmVCYWNrdXAiOw0KICAgIGNvbnNvbGUubG9nKCJTRU5EIFRPIFNFUlZFUiIpOw0KICAgIGNvbnNvbGUubG9nKGRhdGEpOw0KICAgIHZhciBzZXJ2ZXIgPSBuZXcgU2VydmVyKGNtZCk7DQogICAgc2VydmVyLnJlcXVlc3QoZGF0YSk7DQogICAgcmV0dXJuOw0KfQ0KZnVuY3Rpb24gdG9nZ2xlQ2hhbm5lbFN0YXR1cyhpZCkgew0KICAgIHZhciBlbGVtZW50Ow0KICAgIHZhciBzdGF0dXM7DQogICAgaWYgKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJhY3RpdmUiKSkgew0KICAgICAgICB2YXIgY2hlY2tib3ggPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYWN0aXZlIik7DQogICAgICAgIHN0YXR1cyA9IChjaGVja2JveCkuY2hlY2tlZDsNCiAgICB9DQogICAgdmFyIGlkcyA9IGdldEFsbFNlbGVjdGVkQ2hhbm5lbHMoKTsNCiAgICBpZiAoaWRzLmxlbmd0aCA9PSAwKSB7DQogICAgICAgIGlkcy5wdXNoKGlkKTsNCiAgICB9DQogICAgaWRzLmZvckVhY2goZnVuY3Rpb24gKGlkKSB7DQogICAgICAgIHZhciBjaGFubmVsID0gU0VSVkVSWyJ4ZXBnIl1bImVwZ01hcHBpbmciXVtpZF07DQogICAgICAgIGNoYW5uZWxbIngtYWN0aXZlIl0gPSBzdGF0dXM7DQogICAgICAgIHN3aXRjaCAoY2hhbm5lbFsieC1hY3RpdmUiXSkgew0KICAgICAgICAgICAgY2FzZSB0cnVlOg0KICAgICAgICAgICAgICAgIGlmIChjaGFubmVsWyJ4LXhtbHR2LWZpbGUiXSA9PSAiLSIgfHwgY2hhbm5lbFsieC1tYXBwaW5nIl0gPT0gIi0iKSB7DQogICAgICAgICAgICAgICAgICAgIGlmIChCVUxLX0VESVQgPT0gZmFsc2UpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGFsZXJ0KGNoYW5uZWxbIngtbmFtZSJdICsgIjogTWlzc2luZyBYTUxUViBmaWxlIC8gY2hhbm5lbCIpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2hlY2tib3guY2hlY2tlZCA9IGZhbHNlOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIGNoYW5uZWxbIngtYWN0aXZlIl0gPSBmYWxzZTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlIGZhbHNlOg0KICAgICAgICAgICAgICAgIC8vIGNvZGUuLi4NCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgfQ0KICAgICAgICBpZiAoY2hhbm5lbFsieC1hY3RpdmUiXSA9PSBmYWxzZSkgew0KICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpLmNsYXNzTmFtZSA9ICJub3RBY3RpdmVFUEciOw0KICAgICAgICB9DQogICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpLmNsYXNzTmFtZSA9ICJhY3RpdmVFUEciOw0KICAgICAgICB9DQogICAgfSk7DQp9DQpmdW5jdGlvbiByZXN0b3JlKCkgew0KICAgIGlmIChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndXBsb2FkJykpIHsNCiAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3VwbG9hZCcpLnJlbW92ZSgpOw0KICAgIH0NCiAgICB2YXIgcmVzdG9yZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIklOUFVUIik7DQogICAgcmVzdG9yZS5zZXRBdHRyaWJ1dGUoInR5cGUiLCAiZmlsZSIpOw0KICAgIHJlc3RvcmUuc2V0QXR0cmlidXRlKCJjbGFzcyIsICJub3RWaXNpYmxlIik7DQogICAgcmVzdG9yZS5zZXRBdHRyaWJ1dGUoIm5hbWUiLCAiIik7DQogICAgcmVzdG9yZS5pZCA9ICJ1cGxvYWQiOw0KICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQocmVzdG9yZSk7DQogICAgcmVzdG9yZS5jbGljaygpOw0KICAgIHJlc3RvcmUub25jaGFuZ2UgPSBmdW5jdGlvbiAoKSB7DQogICAgICAgIHZhciBmaWxlbmFtZSA9IHJlc3RvcmUuZmlsZXNbMF0ubmFtZTsNCiAgICAgICAgdmFyIGNoZWNrID0gY29uZmlybSgiRmlsZTogIiArIGZpbGVuYW1lICsgIlxue3suY29uZmlybS5yZXN0b3JlfX0iKTsNCiAgICAgICAgaWYgKGNoZWNrID09IHRydWUpIHsNCiAgICAgICAgICAgIHZhciByZWFkZXIgPSBuZXcgRmlsZVJlYWRlcigpOw0KICAgICAgICAgICAgdmFyIGZpbGUgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCdpbnB1dFt0eXBlPWZpbGVdJykuZmlsZXNbMF07DQogICAgICAgICAgICBpZiAoZmlsZSkgew0KICAgICAgICAgICAgICAgIHJlYWRlci5yZWFkQXNEYXRhVVJMKGZpbGUpOw0KICAgICAgICAgICAgICAgIHJlYWRlci5vbmxvYWQgPSBmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKHJlYWRlci5yZXN1bHQpOw0KICAgICAgICAgICAgICAgICAgICB2YXIgZGF0YSA9IG5ldyBPYmplY3QoKTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGNtZCA9ICJ4dGV2ZVJlc3RvcmUiOw0KICAgICAgICAgICAgICAgICAgICBkYXRhWyJiYXNlNjQiXSA9IHJlYWRlci5yZXN1bHQ7DQogICAgICAgICAgICAgICAgICAgIHZhciBzZXJ2ZXIgPSBuZXcgU2VydmVyKGNtZCk7DQogICAgICAgICAgICAgICAgICAgIHNlcnZlci5yZXF1ZXN0KGRhdGEpOw0KICAgICAgICAgICAgICAgIH07DQogICAgICAgICAgICB9DQogICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICBhbGVydCgiRmlsZSBjb3VsZCBub3QgYmUgbG9hZGVkIik7DQogICAgICAgICAgICB9DQogICAgICAgICAgICByZXN0b3JlLnJlbW92ZSgpOw0KICAgICAgICAgICAgcmV0dXJuOw0KICAgICAgICB9DQogICAgfTsNCiAgICByZXR1cm47DQp9DQpmdW5jdGlvbiB1cGxvYWRMb2dvKCkgew0KICAgIGlmIChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndXBsb2FkJykpIHsNCiAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3VwbG9hZCcpLnJlbW92ZSgpOw0KICAgIH0NCiAgICB2YXIgdXBsb2FkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiSU5QVVQiKTsNCiAgICB1cGxvYWQuc2V0QXR0cmlidXRlKCJ0eXBlIiwgImZpbGUiKTsNCiAgICB1cGxvYWQuc2V0QXR0cmlidXRlKCJjbGFzcyIsICJub3RWaXNpYmxlIik7DQogICAgdXBsb2FkLnNldEF0dHJpYnV0ZSgibmFtZSIsICIiKTsNCiAgICB1cGxvYWQuaWQgPSAidXBsb2FkIjsNCiAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHVwbG9hZCk7DQogICAgdXBsb2FkLmNsaWNrKCk7DQogICAgdXBsb2FkLm9uYmx1ciA9IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgYWxlcnQoKTsNCiAgICB9Ow0KICAgIHVwbG9hZC5vbmNoYW5nZSA9IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgdmFyIGZpbGVuYW1lID0gdXBsb2FkLmZpbGVzWzBdLm5hbWU7DQogICAgICAgIHZhciByZWFkZXIgPSBuZXcgRmlsZVJlYWRlcigpOw0KICAgICAgICB2YXIgZmlsZSA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ2lucHV0W3R5cGU9ZmlsZV0nKS5maWxlc1swXTsNCiAgICAgICAgaWYgKGZpbGUpIHsNCiAgICAgICAgICAgIHJlYWRlci5yZWFkQXNEYXRhVVJMKGZpbGUpOw0KICAgICAgICAgICAgcmVhZGVyLm9ubG9hZCA9IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhyZWFkZXIucmVzdWx0KTsNCiAgICAgICAgICAgICAgICB2YXIgZGF0YSA9IG5ldyBPYmplY3QoKTsNCiAgICAgICAgICAgICAgICB2YXIgY21kID0gInVwbG9hZExvZ28iOw0KICAgICAgICAgICAgICAgIGRhdGFbImJhc2U2NCJdID0gcmVhZGVyLnJlc3VsdDsNCiAgICAgICAgICAgICAgICBkYXRhWyJmaWxlbmFtZSJdID0gZmlsZS5uYW1lOw0KICAgICAgICAgICAgICAgIHZhciBzZXJ2ZXIgPSBuZXcgU2VydmVyKGNtZCk7DQogICAgICAgICAgICAgICAgc2VydmVyLnJlcXVlc3QoZGF0YSk7DQogICAgICAgICAgICAgICAgdmFyIHVwZGF0ZUxvZ28gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndXBkYXRlLWljb24nKTsNCiAgICAgICAgICAgICAgICB1cGRhdGVMb2dvLmNoZWNrZWQgPSBmYWxzZTsNCiAgICAgICAgICAgICAgICB1cGRhdGVMb2dvLmNsYXNzTmFtZSA9ICJjaGFuZ2VkIjsNCiAgICAgICAgICAgIH07DQogICAgICAgIH0NCiAgICAgICAgZWxzZSB7DQogICAgICAgICAgICBhbGVydCgiRmlsZSBjb3VsZCBub3QgYmUgbG9hZGVkIik7DQogICAgICAgIH0NCiAgICAgICAgdXBsb2FkLnJlbW92ZSgpOw0KICAgICAgICByZXR1cm47DQogICAgfTsNCn0NCmZ1bmN0aW9uIGNoZWNrVW5kbyhrZXkpIHsNCiAgICBzd2l0Y2ggKGtleSkgew0KICAgICAgICBjYXNlICJlcGdNYXBwaW5nIjoNCiAgICAgICAgICAgIGlmIChVTkRPLmhhc093blByb3BlcnR5KGtleSkpIHsNCiAgICAgICAgICAgICAgICBTRVJWRVJbInhlcGciXVtrZXldID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeShVTkRPW2tleV0pKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgICAgIFVORE9ba2V5XSA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkoU0VSVkVSWyJ4ZXBnIl1ba2V5XSkpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICBicmVhazsNCiAgICB9DQogICAgcmV0dXJuOw0KfQ0KZnVuY3Rpb24gc29ydFNlbGVjdChlbGVtKSB7DQogICAgdmFyIHRtcEFyeSA9IFtdOw0KICAgIHZhciBzZWxlY3RlZFZhbHVlID0gZWxlbVtlbGVtLnNlbGVjdGVkSW5kZXhdLnZhbHVlOw0KICAgIGZvciAodmFyIGkgPSAwOyBpIDwgZWxlbS5vcHRpb25zLmxlbmd0aDsgaSsrKQ0KICAgICAgICB0bXBBcnkucHVzaChlbGVtLm9wdGlvbnNbaV0pOw0KICAgIHRtcEFyeS5zb3J0KGZ1bmN0aW9uIChhLCBiKSB7IHJldHVybiAoYS50ZXh0IDwgYi50ZXh0KSA/IC0xIDogMTsgfSk7DQogICAgd2hpbGUgKGVsZW0ub3B0aW9ucy5sZW5ndGggPiAwKQ0KICAgICAgICBlbGVtLm9wdGlvbnNbMF0gPSBudWxsOw0KICAgIHZhciBuZXdTZWxlY3RlZEluZGV4ID0gMDsNCiAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRtcEFyeS5sZW5ndGg7IGkrKykgew0KICAgICAgICBlbGVtLm9wdGlvbnNbaV0gPSB0bXBBcnlbaV07DQogICAgICAgIGlmIChlbGVtLm9wdGlvbnNbaV0udmFsdWUgPT0gc2VsZWN0ZWRWYWx1ZSkNCiAgICAgICAgICAgIG5ld1NlbGVjdGVkSW5kZXggPSBpOw0KICAgIH0NCiAgICBlbGVtLnNlbGVjdGVkSW5kZXggPSBuZXdTZWxlY3RlZEluZGV4OyAvLyBTZXQgbmV3IHNlbGVjdGVkIGluZGV4IGFmdGVyIHNvcnRpbmcNCiAgICByZXR1cm47DQp9DQpmdW5jdGlvbiB1cGRhdGVMb2coKSB7DQogICAgY29uc29sZS5sb2coIlRPS0VOIik7DQogICAgdmFyIHNlcnZlciA9IG5ldyBTZXJ2ZXIoInVwZGF0ZUxvZyIpOw0KICAgIHNlcnZlci5yZXF1ZXN0KG5ldyBPYmplY3QoKSk7DQp9DQo=" + webUI["html/js/network_ts.js"] = "dmFyIFNlcnZlciA9IC8qKiBAY2xhc3MgKi8gKGZ1bmN0aW9uICgpIHsNCiAgICBmdW5jdGlvbiBTZXJ2ZXIoY21kKSB7DQogICAgICAgIHRoaXMuY21kID0gY21kOw0KICAgIH0NCiAgICBTZXJ2ZXIucHJvdG90eXBlLnJlcXVlc3QgPSBmdW5jdGlvbiAoZGF0YSkgew0KICAgICAgICBpZiAoU0VSVkVSX0NPTk5FQ1RJT04gPT0gdHJ1ZSkgew0KICAgICAgICAgICAgcmV0dXJuOw0KICAgICAgICB9DQogICAgICAgIFNFUlZFUl9DT05ORUNUSU9OID0gdHJ1ZTsNCiAgICAgICAgY29uc29sZS5sb2coZGF0YSk7DQogICAgICAgIGlmICh0aGlzLmNtZCAhPSAidXBkYXRlTG9nIikgew0KICAgICAgICAgICAgc2hvd0VsZW1lbnQoImxvYWRpbmciLCB0cnVlKTsNCiAgICAgICAgICAgIFVORE8gPSBuZXcgT2JqZWN0KCk7DQogICAgICAgIH0NCiAgICAgICAgc3dpdGNoICh3aW5kb3cubG9jYXRpb24ucHJvdG9jb2wpIHsNCiAgICAgICAgICAgIGNhc2UgImh0dHA6IjoNCiAgICAgICAgICAgICAgICB0aGlzLnByb3RvY29sID0gIndzOi8vIjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImh0dHBzOiI6DQogICAgICAgICAgICAgICAgdGhpcy5wcm90b2NvbCA9ICJ3c3M6Ly8iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICB9DQogICAgICAgIHZhciB1cmwgPSB0aGlzLnByb3RvY29sICsgd2luZG93LmxvY2F0aW9uLmhvc3RuYW1lICsgIjoiICsgd2luZG93LmxvY2F0aW9uLnBvcnQgKyAiL2RhdGEvIiArICI/VG9rZW49IiArIGdldENvb2tpZSgiVG9rZW4iKTsNCiAgICAgICAgZGF0YVsiY21kIl0gPSB0aGlzLmNtZDsNCiAgICAgICAgdmFyIHdzID0gbmV3IFdlYlNvY2tldCh1cmwpOw0KICAgICAgICB3cy5vbm9wZW4gPSBmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICBXU19BVkFJTEFCTEUgPSB0cnVlOw0KICAgICAgICAgICAgY29uc29sZS5sb2coIlJFUVVFU1QgKEpTKToiKTsNCiAgICAgICAgICAgIGNvbnNvbGUubG9nKGRhdGEpOw0KICAgICAgICAgICAgY29uc29sZS5sb2coIlJFUVVFU1Q6IChKU09OKSIpOw0KICAgICAgICAgICAgY29uc29sZS5sb2coSlNPTi5zdHJpbmdpZnkoZGF0YSkpOw0KICAgICAgICAgICAgdGhpcy5zZW5kKEpTT04uc3RyaW5naWZ5KGRhdGEpKTsNCiAgICAgICAgfTsNCiAgICAgICAgd3Mub25lcnJvciA9IGZ1bmN0aW9uIChlKSB7DQogICAgICAgICAgICBjb25zb2xlLmxvZygiTm8gd2Vic29ja2V0IGNvbm5lY3Rpb24gdG8geFRlVmUgY291bGQgYmUgZXN0YWJsaXNoZWQuIENoZWNrIHlvdXIgbmV0d29yayBjb25maWd1cmF0aW9uLiIpOw0KICAgICAgICAgICAgU0VSVkVSX0NPTk5FQ1RJT04gPSBmYWxzZTsNCiAgICAgICAgICAgIGlmIChXU19BVkFJTEFCTEUgPT0gZmFsc2UpIHsNCiAgICAgICAgICAgICAgICBhbGVydCgiTm8gd2Vic29ja2V0IGNvbm5lY3Rpb24gdG8geFRlVmUgY291bGQgYmUgZXN0YWJsaXNoZWQuIENoZWNrIHlvdXIgbmV0d29yayBjb25maWd1cmF0aW9uLiIpOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9Ow0KICAgICAgICB3cy5vbm1lc3NhZ2UgPSBmdW5jdGlvbiAoZSkgew0KICAgICAgICAgICAgU0VSVkVSX0NPTk5FQ1RJT04gPSBmYWxzZTsNCiAgICAgICAgICAgIHNob3dFbGVtZW50KCJsb2FkaW5nIiwgZmFsc2UpOw0KICAgICAgICAgICAgY29uc29sZS5sb2coIlJFU1BPTlNFOiIpOw0KICAgICAgICAgICAgdmFyIHJlc3BvbnNlID0gSlNPTi5wYXJzZShlLmRhdGEpOw0KICAgICAgICAgICAgY29uc29sZS5sb2cocmVzcG9uc2UpOw0KICAgICAgICAgICAgaWYgKHJlc3BvbnNlLmhhc093blByb3BlcnR5KCJ0b2tlbiIpKSB7DQogICAgICAgICAgICAgICAgZG9jdW1lbnQuY29va2llID0gIlRva2VuPSIgKyByZXNwb25zZVsidG9rZW4iXTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGlmIChyZXNwb25zZVsic3RhdHVzIl0gPT0gZmFsc2UpIHsNCiAgICAgICAgICAgICAgICBhbGVydChyZXNwb25zZVsiZXJyIl0pOw0KICAgICAgICAgICAgICAgIGlmIChyZXNwb25zZS5oYXNPd25Qcm9wZXJ0eSgicmVsb2FkIikpIHsNCiAgICAgICAgICAgICAgICAgICAgbG9jYXRpb24ucmVsb2FkKCk7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIHJldHVybjsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGlmIChyZXNwb25zZS5oYXNPd25Qcm9wZXJ0eSgibG9nb1VSTCIpKSB7DQogICAgICAgICAgICAgICAgdmFyIGRpdiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjaGFubmVsLWljb24iKTsNCiAgICAgICAgICAgICAgICBkaXYudmFsdWUgPSByZXNwb25zZVsibG9nb1VSTCJdOw0KICAgICAgICAgICAgICAgIGRpdi5jbGFzc05hbWUgPSAiY2hhbmdlZCI7DQogICAgICAgICAgICAgICAgcmV0dXJuOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgc3dpdGNoIChkYXRhWyJjbWQiXSkgew0KICAgICAgICAgICAgICAgIGNhc2UgInVwZGF0ZUxvZyI6DQogICAgICAgICAgICAgICAgICAgIFNFUlZFUlsibG9nIl0gPSByZXNwb25zZVsibG9nIl07DQogICAgICAgICAgICAgICAgICAgIGlmIChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29udGVudF9sb2ciKSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgc2hvd0xvZ3MoZmFsc2UpOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIHJldHVybjsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgICAgICAgICAgU0VSVkVSID0gbmV3IE9iamVjdCgpOw0KICAgICAgICAgICAgICAgICAgICBTRVJWRVIgPSByZXNwb25zZTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBpZiAocmVzcG9uc2UuaGFzT3duUHJvcGVydHkoIm9wZW5NZW51IikpIHsNCiAgICAgICAgICAgICAgICB2YXIgbWVudSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHJlc3BvbnNlWyJvcGVuTWVudSJdKTsNCiAgICAgICAgICAgICAgICBtZW51LmNsaWNrKCk7DQogICAgICAgICAgICAgICAgc2hvd0VsZW1lbnQoInBvcHVwIiwgZmFsc2UpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgaWYgKHJlc3BvbnNlLmhhc093blByb3BlcnR5KCJvcGVuTGluayIpKSB7DQogICAgICAgICAgICAgICAgd2luZG93LmxvY2F0aW9uID0gcmVzcG9uc2VbIm9wZW5MaW5rIl07DQogICAgICAgICAgICB9DQogICAgICAgICAgICBpZiAocmVzcG9uc2UuaGFzT3duUHJvcGVydHkoImFsZXJ0IikpIHsNCiAgICAgICAgICAgICAgICBhbGVydChyZXNwb25zZVsiYWxlcnQiXSk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBpZiAocmVzcG9uc2UuaGFzT3duUHJvcGVydHkoInJlbG9hZCIpKSB7DQogICAgICAgICAgICAgICAgbG9jYXRpb24ucmVsb2FkKCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBpZiAocmVzcG9uc2UuaGFzT3duUHJvcGVydHkoIndpemFyZCIpKSB7DQogICAgICAgICAgICAgICAgY3JlYXRlTGF5b3V0KCk7DQogICAgICAgICAgICAgICAgY29uZmlndXJhdGlvbldpemFyZFtyZXNwb25zZVsid2l6YXJkIl1dLmNyZWF0ZVdpemFyZCgpOw0KICAgICAgICAgICAgICAgIHJldHVybjsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGNyZWF0ZUxheW91dCgpOw0KICAgICAgICB9Ow0KICAgIH07DQogICAgcmV0dXJuIFNlcnZlcjsNCn0oKSk7DQpmdW5jdGlvbiBnZXRDb29raWUobmFtZSkgew0KICAgIHZhciB2YWx1ZSA9ICI7ICIgKyBkb2N1bWVudC5jb29raWU7DQogICAgdmFyIHBhcnRzID0gdmFsdWUuc3BsaXQoIjsgIiArIG5hbWUgKyAiPSIpOw0KICAgIGlmIChwYXJ0cy5sZW5ndGggPT0gMikNCiAgICAgICAgcmV0dXJuIHBhcnRzLnBvcCgpLnNwbGl0KCI7Iikuc2hpZnQoKTsNCn0NCg==" + webUI["html/maintenance.html"] = "PCFkb2N0eXBlIGh0bWw+DQo8aHRtbD4NCiAgPGhlYWQ+DQogICAgPG1ldGEgY2hhcnNldD0idXRmLTgiPg0KICAgIDxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgsIGluaXRpYWwtc2NhbGU9MS4wIiAvPiANCiAgICA8dGl0bGU+eFRlVmU8L3RpdGxlPg0KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iY3NzL3NjcmVlbi5jc3MiIHR5cGU9InRleHQvY3NzIj4NCiAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9ImNzcy9iYXNlLmNzcyIgdHlwZT0idGV4dC9jc3MiPg0KICA8L2hlYWQ+DQoNCiAgICA8Ym9keT4NCiAgICAgICAgICANCiAgICAgIDxkaXYgaWQ9ImhlYWRlciIgY2xhc3M9ImltZ0NlbnRlciI+PC9kaXY+DQoNCiAgICAgIDxkaXYgaWQ9ImJveCI+DQoNCiAgICAgICAgPGRpdiBpZD0iaGVhZGxpbmUiPg0KICAgICAgICAgIDxoMSBpZD0iaGVhZC10ZXh0IiBjbGFzcz0iY2VudGVyIj5NYWludGVuYW5jZTwvaDE+ICAgICAgDQogICAgICAgIDwvZGl2PiAgDQoNCiAgICAgICAgPGRpdiBpZD0iY29udGVudCI+DQogICAgICAgICAgeFRlVmUgaXMgdXBkYXRpbmcgdGhlIGRhdGFiYXNlLCBwbGVhc2UgdHJ5IGFnYWluIGxhdGVyLg0KICAgICAgICA8L2Rpdj4NCg0KICAgICAgICA8ZGl2IGlkPSJib3gtZm9vdGVyIj48L2Rpdj4NCiAgICAgICAgDQogICAgICA8L2Rpdj4NCg0KICAgIDwvYm9keT4NCjwvaHRtbD4=" + webUI["html/img/xmltv.png"] = "iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAAAXNSR0IArs4c6QAAAAlwSFlzAAAsSwAALEsBpT2WqQAABCRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IlhNUCBDb3JlIDUuNC4wIj4KICAgPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIgogICAgICAgICAgICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgICAgICAgICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyI+CiAgICAgICAgIDx0aWZmOlJlc29sdXRpb25Vbml0PjI8L3RpZmY6UmVzb2x1dGlvblVuaXQ+CiAgICAgICAgIDx0aWZmOkNvbXByZXNzaW9uPjU8L3RpZmY6Q29tcHJlc3Npb24+CiAgICAgICAgIDx0aWZmOlhSZXNvbHV0aW9uPjI4ODwvdGlmZjpYUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6T3JpZW50YXRpb24+MTwvdGlmZjpPcmllbnRhdGlvbj4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+Mjg4PC90aWZmOllSZXNvbHV0aW9uPgogICAgICAgICA8ZXhpZjpQaXhlbFhEaW1lbnNpb24+NTA8L2V4aWY6UGl4ZWxYRGltZW5zaW9uPgogICAgICAgICA8ZXhpZjpDb2xvclNwYWNlPjE8L2V4aWY6Q29sb3JTcGFjZT4KICAgICAgICAgPGV4aWY6UGl4ZWxZRGltZW5zaW9uPjUwPC9leGlmOlBpeGVsWURpbWVuc2lvbj4KICAgICAgICAgPGRjOnN1YmplY3Q+CiAgICAgICAgICAgIDxyZGY6QmFnLz4KICAgICAgICAgPC9kYzpzdWJqZWN0PgogICAgICAgICA8eG1wOk1vZGlmeURhdGU+MjAxOC0wNy0yOFQyMDowNzozMzwveG1wOk1vZGlmeURhdGU+CiAgICAgICAgIDx4bXA6Q3JlYXRvclRvb2w+UGl4ZWxtYXRvciAzLjM8L3htcDpDcmVhdG9yVG9vbD4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgIDwvcmRmOlJERj4KPC94OnhtcG1ldGE+Co6j9bsAAAGgSURBVGgF7VqxTsNADL0gYGEon8DOwsbAAH8BYmJn6cYIn8DC3h0+oixISFRiYYCJL0AwMMBAeK5w2rpV6uikxHfYknW98+vds18TK21DWGBlWR7CH+BfcEv2AzLP8HP42gLqkyUATuEp2PWEdQjF9ATs1zF/g29Mrxt+vVcUxR3xWxEktzFPJQmivsv8ZSI9DiQyVnxlIonwn6fpiczXpNuVVXH8O+a3Ys3y9NUyuf/NTTbEHZTjUlGSRzSiPhroUIENwB4AS/vS/susDwDhTpYBER9g7wHh5DWyibV9CiitCZbIafDEYUuJHQI3Nr/9ciWsjK6IFSWYhyvClbAyZqOIlYJG84jq7E1Ot97Zm+TinV1TrWwudk9EI3ebGFekzWprzspGEU2ySWCiOrs/s9dr7M/s9fVJJJrNXcsTsfaJc0WsKZINH+/sf1Jqvl1n1f2ZnStRN/pdq646XcSkIh9dkIg4s+IrE3nCpp8RG7f91ns+cCYR/LD4jcAZB42PN+A7/mcQ8ZxJhBYQvMJwBB/BKTFLVoLMC/wCfgyv7BesTKUC2LKM3wAAAABJRU5ErkJggg==" + webUI["html/img/logo_b_880x200.jpg"] = "/9j/4AAQSkZJRgABAQABLAEsAAD/4QDIRXhpZgAATU0AKgAAAAgABwESAAMAAAABAAEAAAEaAAUAAAABAAAAYgEbAAUAAAABAAAAagEoAAMAAAABAAIAAAExAAIAAAAPAAAAcgEyAAIAAAAUAAAAgodpAAQAAAABAAAAlgAAAAAAAAEsAAAAAQAAASwAAAABUGl4ZWxtYXRvciAzLjMAADIwMTk6MDg6MDIgMjA6MDg6MTQAAAOgAQADAAAAAQABAACgAgAEAAAAAQAAA3CgAwAEAAAAAQAAAMgAAAAA/+EJkGh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8APD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iWE1QIENvcmUgNS40LjAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcDpDcmVhdG9yVG9vbD0iUGl4ZWxtYXRvciAzLjMiIHhtcDpNb2RpZnlEYXRlPSIyMDE5LTA4LTAyVDIwOjA4OjE0Ii8+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPD94cGFja2V0IGVuZD0idyI/PgD/7QA4UGhvdG9zaG9wIDMuMAA4QklNBAQAAAAAAAA4QklNBCUAAAAAABDUHYzZjwCyBOmACZjs+EJ+/8AAEQgAyANwAwERAAIRAQMRAf/EAB8AAAEFAQEBAQEBAAAAAAAAAAABAgMEBQYHCAkKC//EALUQAAIBAwMCBAMFBQQEAAABfQECAwAEEQUSITFBBhNRYQcicRQygZGhCCNCscEVUtHwJDNicoIJChYXGBkaJSYnKCkqNDU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6g4SFhoeIiYqSk5SVlpeYmZqio6Slpqeoqaqys7S1tre4ubrCw8TFxsfIycrS09TV1tfY2drh4uPk5ebn6Onq8fLz9PX29/j5+v/EAB8BAAMBAQEBAQEBAQEAAAAAAAABAgMEBQYHCAkKC//EALURAAIBAgQEAwQHBQQEAAECdwABAgMRBAUhMQYSQVEHYXETIjKBCBRCkaGxwQkjM1LwFWJy0QoWJDThJfEXGBkaJicoKSo1Njc4OTpDREVGR0hJSlNUVVZXWFlaY2RlZmdoaWpzdHV2d3h5eoKDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uLj5OXm5+jp6vLz9PX29/j5+v/bAEMAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAf/bAEMBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAf/dAAQAbv/aAAwDAQACEQMRAD8A/iHoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKAP/9D+IegAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoA//0f4h6ACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgD//S/iHoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKAP/9P+IegAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoA//1P4h6ACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgDvPDXws+J3jPT31bwf8OfHnivSo7mSyfU/DXhDxBrunpeQpFLNaPe6Xp11bLcxRzwSSQNL5saTROyhZUNAHQf8M//AB4/6In8XP8Aw23jL/5TUAH/AAz/APHj/oifxc/8Nt4y/wDl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f/E3xn4o+IPjnxDLaafp8mveMPGet33iPxNrMlhpNpYaVZPqmtale3z2mmWNlp9s05hsrS2tkjhQA4ygAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgD//S/iHoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAczu+N7M2BgbmLYHoM9BnJxx1/FgBtABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAOLuwVWZiq/dUsSFz12joM4HQduc4FADaACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgD//0/4h6ACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgD//U/iHoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKAP/9X+IegAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoA//1v4h6ACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgD//X/iHoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKAP/9k=" + webUI["html/img/logo_w_600x200.png"] = "iVBORw0KGgoAAAANSUhEUgAAAlgAAADICAYAAAA0n5+2AAAAAXNSR0IArs4c6QAAAAlwSFlzAAAuIwAALiMBeKU/dgAABCZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IlhNUCBDb3JlIDUuNC4wIj4KICAgPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIgogICAgICAgICAgICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgICAgICAgICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyI+CiAgICAgICAgIDx0aWZmOlJlc29sdXRpb25Vbml0PjI8L3RpZmY6UmVzb2x1dGlvblVuaXQ+CiAgICAgICAgIDx0aWZmOkNvbXByZXNzaW9uPjU8L3RpZmY6Q29tcHJlc3Npb24+CiAgICAgICAgIDx0aWZmOlhSZXNvbHV0aW9uPjMwMDwvdGlmZjpYUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6T3JpZW50YXRpb24+MTwvdGlmZjpPcmllbnRhdGlvbj4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+MzAwPC90aWZmOllSZXNvbHV0aW9uPgogICAgICAgICA8ZXhpZjpQaXhlbFhEaW1lbnNpb24+NjAwPC9leGlmOlBpeGVsWERpbWVuc2lvbj4KICAgICAgICAgPGV4aWY6Q29sb3JTcGFjZT4xPC9leGlmOkNvbG9yU3BhY2U+CiAgICAgICAgIDxleGlmOlBpeGVsWURpbWVuc2lvbj4yMDA8L2V4aWY6UGl4ZWxZRGltZW5zaW9uPgogICAg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" + webUI["html/img/x_white.png"] = "iVBORw0KGgoAAAANSUhEUgAAAQAAAAEACAIAAADTED8xAAAAAXNSR0IArs4c6QAAAAlwSFlzAAAWJQAAFiUBSVIk8AAAA6ppVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IlhNUCBDb3JlIDUuNC4wIj4KICAgPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIgogICAgICAgICAgICB4bWxuczp0aWZmPSJodHRwOi8vbnMuYWRvYmUuY29tL3RpZmYvMS4wLyIKICAgICAgICAgICAgeG1sbnM6ZXhpZj0iaHR0cDovL25zLmFkb2JlLmNvbS9leGlmLzEuMC8iPgogICAgICAgICA8eG1wOk1vZGlmeURhdGU+MjAxOC0xMS0xNVQxNzoxMToyNTwveG1wOk1vZGlmeURhdGU+CiAgICAgICAgIDx4bXA6Q3JlYXRvclRvb2w+UGl4ZWxtYXRvciAzLjM8L3htcDpDcmVhdG9yVG9vbD4KICAgICAgICAgPHRpZmY6T3JpZW50YXRpb24+MTwvdGlmZjpPcmllbnRhdGlvbj4KICAgICAgICAgPHRpZmY6Q29tcHJlc3Npb24+NTwvdGlmZjpDb21wcmVzc2lvbj4KICAgICAgICAgPHRpZmY6UmVzb2x1dGlvblVuaXQ+MjwvdGlmZjpSZXNvbHV0aW9uVW5pdD4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+MTQ0PC90aWZmOllSZXNvbHV0aW9uPgogICAgICAgICA8dGlmZjpYUmVzb2x1dGlvbj4xNDQ8L3RpZmY6WFJlc29sdXRpb24+CiAgICAgICAgIDxleGlmOlBpeGVsWERpbWVuc2lvbj4yNTY8L2V4aWY6UGl4ZWxYRGltZW5zaW9uPgogICAgICAgICA8ZXhpZjpDb2xvclNwYWNlPjE8L2V4aWY6Q29sb3JTcGFj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" + webUI["html/js/files.js"] = "ZnVuY3Rpb24gb3BlbkZpbGVzKGVsbSwgZmlsZVR5cGUpIHsNCiAgLy9kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic2V0dGluZ3MiKS5pbm5lckhUTUwgPSAiVGVzdCI7DQogIA0KICBjb2x1bW5Ub1NvcnQgPSAwOyANCiAgdmFyIG5ld0RpdiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzZXR0aW5ncyIpOw0KICANCiAgdmFyIG5ld0VudHJ5ID0gbmV3IE9iamVjdCgpOw0KICBuZXdFbnRyeVsiX2VsZW1lbnQiXSAgPSAiSFIiOw0KICBuZXdEaXYuYXBwZW5kQ2hpbGQoY3JlYXRlRWxlbWVudChuZXdFbnRyeSkpOw0KDQogIHZhciBuZXdFbnRyeSA9IG5ldyBPYmplY3QoKTsNCiAgbmV3RW50cnlbIl9lbGVtZW50Il0gID0gIklOUFVUIjsNCiAgbmV3RW50cnlbInR5cGUiXSA9ICJidXR0b24iOw0KICBuZXdFbnRyeVsiY2xhc3MiXSA9ICJidXR0b24iOw0KICBuZXdFbnRyeVsidmFsdWUiXSA9ICJOZXciOw0KICBuZXdFbnRyeVsib25jbGljayJdID0gJ2ZpbGVEZXRhaWwoIi0iLCAiJyArIGZpbGVUeXBlICsgJyIpJzsNCiAgbmV3RGl2LmFwcGVuZENoaWxkKGNyZWF0ZUVsZW1lbnQobmV3RW50cnkpKTsNCg0KICB2YXIgbmV3RW50cnkgPSBuZXcgT2JqZWN0KCk7DQogIG5ld0VudHJ5WyJfZWxlbWVudCJdICA9ICJJTlBVVCI7DQogIG5ld0VudHJ5WyJ0eXBlIl0gPSAiYnV0dG9uIjsNCiAgbmV3RW50cnlbImNsYXNzIl0gPSAiYnV0dG9uIjsNCiAgbmV3RW50cnlbInZhbHVlIl0gPSAiVXBkYXRlIjsNCiAgbmV3RW50cnlbIm9uY2xpY2siXSA9ICJmaWxlRGV0YWlsKDApIjsNCiAgLy9uZXdEaXYuYXBwZW5kQ2hpbGQoY3JlYXRlRWxlbWVudChuZXdFbnRyeSkpOw0KDQogIHZhciBkaXYgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic2V0dGluZ3MiKTsNCg0KICAgLy8gQnVpbGQgdGFibGUNCiAgdmFyIG5ld1RhYmxlID0gbmV3IE9iamVjdCgpOw0KICBuZXdUYWJsZVsiX2VsZW1lbnQiXSAgPSAiVEFCTEUiOw0KICBuZXdUYWJsZVsiaWQiXSAgICAgICAgPSAiaWRfbWFwcGluZyI7DQogIG5ld1RhYmxlWyJjbGFzcyJdICAgICA9ICJ0YWJsZS1tYXBwaW5nIjsNCiAgZGl2LmFwcGVuZENoaWxkKGNyZWF0ZUVsZW1lbnQobmV3VGFibGUpKTsNCg0KICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7IA0KICAgIGNyZWF0ZUZpbGVzVGFibGUoZmlsZVR5cGUpOyANCiAgfSwgMTApOw0KDQp9DQoNCmZ1bmN0aW9uIGNyZWF0ZUZpbGVzVGFibGUoZmlsZVR5cGUpIHsNCiAgdmFyIHRhYmxlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImlkX21hcHBpbmciKTsNCiAgdmFyIGF2YWlsYWJsZUZpbGVUeXBlcyA9IG5ldyBBcnJheSgpOw0KICANCiAgdGFibGUuaW5uZXJIVE1MID0gIiI7DQogIHZhciBuZXdUUiA9IG5ldyBPYmplY3QoKTsNCiAgbmV3VFJbIl9lbGVtZW50Il0gPSAiVFIiOw0KICBuZXdUUlsiY2xhc3MiXSAgICA9ICJ0YWJsZS1tYXBwaW5nLWhlYWRlciI7DQogIHRhYmxlLmFwcGVuZENoaWxkKGNyZWF0ZUVsZW1lbnQobmV3VFIpKTsNCg0KICB2YXIgdHIgPSB0YWJsZS5sYXN0Q2hpbGQ7DQoNCiAgc3dpdGNoKGZpbGVUeXBlKSB7DQogICAgY2FzZSAieG1sdHYiOiANCiAgICAgIGF2YWlsYWJsZUZpbGVUeXBlcyA9IG5ldyBBcnJheSgieG1sdHYiKTsgDQogICAgICB2YXIgdHJIZWFkbGluZXMgPSBuZXcgQXJyYXkoIkd1aWRlIiwgIkxhc3QgVXBkYXRlIiwgIkF2YWlsYWJpbGl0eSAlIiwgIkNoYW5uZWxzIiwgIlByb2dyYW1zIikNCiAgICAgIHZhciBjb21wYXRpYmlsaXR5S2V5cyA9IG5ldyBBcnJheSgieG1sdHYuY2hhbm5lbHMiLCAieG1sdHYucHJvZ3JhbXMiKQ0KICAgICAgYnJlYWs7DQoNCiAgICBjYXNlICJtM3UiOg0KICAgICAgYXZhaWxhYmxlRmlsZVR5cGVzID0gbmV3IEFycmF5KCJtM3UiLCAiaGRociIpOyANCiAgICAgIHZhciB0ckhlYWRsaW5lcyA9IG5ldyBBcnJheSgiUGxheWxpc3QiLCAiTGFzdCBVcGRhdGUiLCAiQXZhaWxhYmlsaXR5ICUiLCAiVHlwZSIsICJTdHJlYW1zIiwgImdyb3VwLXRpdGxlICUiLCAidHZnLWlkICUiLCAiVW5pcXVlIElEICUiKTsNCiAgICAgIHZhciBjb21wYXRpYmlsaXR5S2V5cyA9IG5ldyBBcnJheSgic3RyZWFtcyIsICJncm91cC50aXRsZSIsICJ0dmcuaWQiLCAic3RyZWFtLmlkIik7DQogICAgICBicmVhazsNCiAgfQ0KDQogIGZvciAodmFyIGkgPSAwOyBpIDwgdHJIZWFkbGluZXMubGVuZ3RoOyBpKyspIHsNCiAgICB2YXIgbmV3VEQgPSBuZXcgT2JqZWN0KCk7DQogICAgbmV3VERbIl9lbGVtZW50Il0gPSAiVEQiOw0KICAgIG5ld1REWyJfdGV4dCJdICAgID0gdHJIZWFkbGluZXNbaV07DQogICAgdHIuYXBwZW5kQ2hpbGQoY3JlYXRlRWxlbWVudChuZXdURCkpOw0KICB9DQogIA0KICBmb3IgKHZhciBpID0gMDsgaSA8IGF2YWlsYWJsZUZpbGVUeXBlcy5sZW5ndGg7IGkrKykgew0KICAgIA0KICAgIHZhciBmaWxlVHlwZSA9IGF2YWlsYWJsZUZpbGVUeXBlc1tpXQ0KDQogICAgdmFyIGRhdGEgPSBjb25maWdbImZpbGVzIl1bZmlsZVR5cGVdOw0KICAgIA0KICAgIHZhciBhbGxGaWxlcyA9IGdldE9iaktleXMoZGF0YSkNCiAgDQogICAgZm9yICh2YXIgZiA9IDA7IGYgPCBhbGxGaWxlcy5sZW5ndGg7IGYrKykgew0KICAgICAgdmFyIGVsbSAgICAgICAgICAgPSBkYXRhW2FsbEZpbGVzW2ZdXTsNCiAgICAgIHZhciB0YWJsZSAgICAgICAgID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImlkX21hcHBpbmciKTsNCiAgICAgIHZhciBmaWxlSUQgICAgICAgID0gZWxtWyJpZC5wcm92aWRlciJdOw0KICAgICAgdmFyIG5hbWUgICAgICAgICAgPSBlbG1bIm5hbWUiXTsNCiAgICAgIHZhciBsYXN0VXBkYXRlICAgID0gZWxtWyJsYXN0LnVwZGF0ZSJdOw0KICAgICAgdmFyIGF2YWlsYWJpbGl0eSAgPSBlbG1bInByb3ZpZGVyLmF2YWlsYWJpbGl0eSJdOw0KICAgICAgdmFyIHR5cGUgICAgICAgICAgPSBlbG1bInR5cGUiXS50b1VwcGVyQ2FzZSgpOw0KICAgICAgdmFyIGNvbXBhdGliaWxpdHkgPSBlbG1bImNvbXBhdGliaWxpdHkiXTsNCg0KICAgICAgLy8gQ3JlYXRlIFRSDQogICAgICB2YXIgbmV3VFIgPSBuZXcgT2JqZWN0KCk7DQogICAgICBuZXdUUlsiX2VsZW1lbnQiXSAgICAgICA9ICJUUiI7DQogICAgICBuZXdUUlsiY2xhc3MiXSAgICAgICAgICA9ICIiOw0KICAgICAgbmV3VFJbImlkIl0gICAgICAgICAgICAgPSBmaWxlSUQ7DQogICAgICBuZXdUUlsib25jbGljayJdICAgICAgICA9ICdqYXZhc2NyaXB0OiBmaWxlRGV0YWlsKCInICsgZmlsZUlEICsgJyIsIicgKyBmaWxlVHlwZSArICciKTsnOw0KICAgICAgdGFibGUuYXBwZW5kQ2hpbGQoY3JlYXRlRWxlbWVudChuZXdUUikpOw0KDQogICAgICB2YXIgdHIgPSB0YWJsZS5sYXN0Q2hpbGQ7DQoNCiAgICAgIC8vIENyZWF0ZSBmaWxlIG5hbWUgVEQNCiAgICAgIHZhciBuZXdURCA9IG5ldyBPYmplY3QoKTsNCiAgICAgIG5ld1REWyJfZWxlbWVudCJdID0gIlAiOw0KICAgICAgbmV3VERbIl90ZXh0Il0gICAgPSBuYW1lOw0KICAgICAgY3JlYXRlTmV3VEQobmV3VEQsIHRyKTsNCg0KICAgICAgLy8gQ3JlYXRlIGxhc3QgdXBkYXRlIFREDQogICAgICB2YXIgbmV3VEQgPSBuZXcgT2JqZWN0KCk7DQogICAgICBuZXdURFsiX2VsZW1lbnQiXSA9ICJQIjsNCiAgICAgIG5ld1REWyJfdGV4dCJdICAgID0gbGFzdFVwZGF0ZTsNCiAgICAgIGNyZWF0ZU5ld1REKG5ld1RELCB0cik7DQoNCiAgICAgIC8vIENyZWF0ZSBhdmFpbGFiaWxpdHkgVEQNCiAgICAgIHZhciBuZXdURCA9IG5ldyBPYmplY3QoKTsNCiAgICAgIG5ld1REWyJfZWxlbWVudCJdID0gIlAiOw0KICAgICAgbmV3VERbIl90ZXh0Il0gICAgPSBhdmFpbGFiaWxpdHk7DQogICAgICBjcmVhdGVOZXdURChuZXdURCwgdHIpOw0KDQogICAgICBpZiAoZmlsZVR5cGUgPT0gIm0zdSIgfHwgZmlsZVR5cGUgPT0gImhkaHIiKSB7DQoNCiAgICAgICAgLy8gQ3JlYXRlIFR5cGUgVEQNCiAgICAgICAgdmFyIG5ld1REID0gbmV3IE9iamVjdCgpOw0KICAgICAgICBuZXdURFsiX2VsZW1lbnQiXSA9ICJQIjsNCiAgICAgICAgbmV3VERbIl90ZXh0Il0gICAgPSB0eXBlOw0KICAgICAgICBjcmVhdGVOZXdURChuZXdURCwgdHIpOw0KICANCiAgICAgIH0NCiAgICAgIA0KICAgICAgLy8gQ3JlYXRlIGFsbCBjb21wYXRpYmlsaXR5IFREcw0KDQogICAgICBmb3IgKHZhciBqID0gMDsgaiA8IGNvbXBhdGliaWxpdHlLZXlzLmxlbmd0aDsgaisrKSB7DQogICAgICAgIHZhciBuZXdURCA9IG5ldyBPYmplY3QoKTsNCiAgICAgICAgbmV3VERbIl9lbGVtZW50Il0gPSAiUCI7DQogICAgICAgIG5ld1REWyJfdGV4dCJdICAgID0gY29tcGF0aWJpbGl0eVtjb21wYXRpYmlsaXR5S2V5c1tqXV07DQogICAgICAgIGNyZWF0ZU5ld1REKG5ld1RELCB0cik7DQogICAgICB9DQoNCiAgICB9DQoNCiAgfQ0KICANCiAgDQogIHNvcnRUYWJsZSgwKQ0KDQogIC8vIHVzYWdlIEluZm8gIA0KICB2YXIgZGl2ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNldHRpbmdzIik7DQogIHN3aXRjaChtZW51W2FjdGl2ZU1lbnUuaWRdLmhhc093blByb3BlcnR5KCJfdXNhZ2UiKSkgew0KICAgIGNhc2UgdHJ1ZTogDQogICAgICB2YXIgdXNhZ2VJdGVtID0gbmV3IE9iamVjdCgpOw0KICAgICAgdXNhZ2VJdGVtWyJfZWxlbWVudCJdID0gIlBSRSINCiAgICAgIHVzYWdlSXRlbVsiX3RleHQiXSAgICA9IG1lbnVbYWN0aXZlTWVudS5pZF1bIl91c2FnZSJdOw0KDQogICAgICB2YXIgbmV3SFIgPSBuZXcgT2JqZWN0KCk7DQogICAgICBuZXdIUlsiX2VsZW1lbnQiXSA9ICJIUiINCiAgICAgIGRpdi5hcHBlbmRDaGlsZChjcmVhdGVFbGVtZW50KG5ld0hSKSk7DQogICAgICBkaXYuYXBwZW5kQ2hpbGQoY3JlYXRlRWxlbWVudCh1c2FnZUl0ZW0pKTsNCiAgICAgIGJyZWFrOw0KICB9DQoNCiAgY2FsY3VsYXRlV3JhcHBlckhlaWdodCgpOw0KICByZXR1cm47DQp9DQoNCg0KZnVuY3Rpb24gZmlsZURldGFpbChmaWxlSUQsIGZpbGVUeXBlKSB7DQoNCiAgb3B0aW9uc1RleHQgID0gbmV3IEFycmF5KCJNM1UiLCAiSERIb21lUnVuIC0gW0V4cGVyaW1lbnRhbF0iKQ0KICBvcHRpb25zVmFsdWUgPSBuZXcgQXJyYXkoIm0zdSIsICJoZGhyIikNCg0KICBzd2l0Y2ggKGZpbGVUeXBlKSB7DQogICAgDQogICAgY2FzZSAibTN1IjogDQogICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibmFtZSIpLnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAiUGxheWxpc3QgbmFtZSIpOyANCiAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJkZXNjcmlwdGlvbiIpLnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAiRGVzY3JpcHRpb24gb2YgdGhpcyBwbGF5bGlzdCIpOyANCiAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJmaWxlLWRldGFpbC1oZWFkbGluZSIpLmlubmVySFRNTCA9ICJNM1UgUGxheWxpc3QiOyANCiAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJmaWxlLXBhdGgiKS5pbm5lckhUTUwgPSAiTTNVIEZpbGU6IjsgDQogICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZmlsZS5zb3VyY2UiKS5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgIkxvY2FsIG9yIHJlbW90ZSIpOw0KICAgICAgYnJlYWs7DQoNCiAgICBjYXNlICJoZGhyIjogDQogICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibmFtZSIpLnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAiSERIb21lUnVuIG5hbWUiKTsgDQogICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZGVzY3JpcHRpb24iKS5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgIkRlc2NyaXB0aW9uIG9mIHRoaXMgSERIb21lUnVuIHR1bmVyIik7IA0KICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImZpbGUtZGV0YWlsLWhlYWRsaW5lIikuaW5uZXJIVE1MID0gIkhESG9tZVJ1biI7IA0KICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImZpbGUtcGF0aCIpLmlubmVySFRNTCA9ICJIREhvbWVSdW4gSVA6IjsgDQogICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZmlsZS5zb3VyY2UiKS5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgIklQIGFkZHJlc3MgYW5kIHBvcnQgb2YgdGhlIHR1bmVyICgxOTIuMTY4LjEuMTA6NTAwNCkiKTsNCiAgICAgIGJyZWFrOw0KICAgIA0KICAgIGNhc2UgInhtbHR2IjogDQogICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibmFtZSIpLnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAiWE1MVFYgbmFtZSIpOyANCiAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJkZXNjcmlwdGlvbiIpLnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAiRGVzY3JpcHRpb24gb2YgdGhpcyBYTUxUViBmaWxlIik7IA0KICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImZpbGUtZGV0YWlsLWhlYWRsaW5lIikuaW5uZXJIVE1MID0gIlhNTFRWIEZpbGUiOyANCiAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJmaWxlLXBhdGgiKS5pbm5lckhUTUwgPSAiWE1MVFYgRmlsZToiOw0KICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImZpbGUuc291cmNlIikuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJMb2NhbCBvciByZW1vdGUiKTsNCg0KICAgICAgb3B0aW9uc1RleHQgID0gbmV3IEFycmF5KCJYTUxUViIpDQogICAgICBvcHRpb25zVmFsdWUgPSBuZXcgQXJyYXkoInhtbHR2IikNCiAgICAgIGJyZWFrOw0KICB9DQoNCiAgbW9kaWZ5T3B0aW9uKCJ0eXBlIiwgb3B0aW9uc1RleHQsIG9wdGlvbnNWYWx1ZSkNCiAgDQogIHNob3dQb3BVcEVsZW1lbnQoJ2ZpbGUtZGV0YWlsJyk7DQoNCiAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNhdmVGaWxlRGV0YWlsIikuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IHNhdmVGaWxlRGV0YWlsKCInICsgZmlsZUlEICsgJyIsIicgKyBmaWxlVHlwZSArICciLCBmYWxzZSknKTsNCiAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInVwZGF0ZUZpbGVEZXRhaWwiKS5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogdXBkYXRlRmlsZSgiJyArIGZpbGVJRCArICciLCInICsgZmlsZVR5cGUgKyAnIiwgZmFsc2UpJyk7DQogIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJkZWxldGVGaWxlRGV0YWlsIikuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IHNhdmVGaWxlRGV0YWlsKCInICsgZmlsZUlEICsgJyIsIicgKyBmaWxlVHlwZSArICciLCB0cnVlKScpOw0KDQogIHZhciBkYXRhID0gbmV3IE9iamVjdCgpOw0KDQogIHN3aXRjaChmaWxlSUQpIHsNCg0KICAgIGNhc2UgIi0iOiAvLyBOZXcgZmlsZQ0KICAgICAgZGF0YVsibmFtZSJdICAgICAgICA9ICIiOw0KICAgICAgZGF0YVsiZGVzY3JpcHRpb24iXSA9ICIiOw0KICAgICAgZGF0YVsiZmlsZS5zb3VyY2UiXSA9ICIiOw0KICAgICAgZGF0YVsidHlwZSJdID0gZmlsZVR5cGU7DQogICAgICANCiAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJkZWxldGVGaWxlRGV0YWlsIikuY2xhc3NOYW1lID0gImRlbGV0ZSI7DQogICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidHlwZSIpLnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiY2hhbmdlRmlsZVR5cGUodGhpcyk7IikNCiAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0eXBlIikuc2V0QXR0cmlidXRlKCJkYXRhLWlkIiwgZmlsZUlEKQ0KICAgICAgDQogICAgICBzaG93RWxlbWVudCgiZGVsZXRlRmlsZURldGFpbCIsIGZhbHNlKTsNCiAgICAgIHNob3dFbGVtZW50KCJ1cGRhdGVGaWxlRGV0YWlsIiwgZmFsc2UpOw0KICAgICAgDQogICAgICBpZiAoZmlsZVR5cGUgPT0gInhtbHR2Iikgew0KICAgICAgICBzaG93RWxlbWVudCgidHlwZSIsIGZhbHNlKTsNCiAgICAgICAgc2hvd0VsZW1lbnQoImZpbGUtdHlwZSIsIGZhbHNlKTsNCiAgICAgIH0gZWxzZSB7DQogICAgICAgIHNob3dFbGVtZW50KCJ0eXBlIiwgdHJ1ZSk7DQogICAgICAgIHNob3dFbGVtZW50KCJmaWxlLXR5cGUiLCB0cnVlKTsNCiAgICAgIH0NCiAgICAgIA0KICAgICAgYnJlYWs7DQoNCiAgICBkZWZhdWx0OiANCiAgICAgIGRhdGEgPSBjb25maWdbImZpbGVzIl1bZmlsZVR5cGVdW2ZpbGVJRF07DQogICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZGVsZXRlRmlsZURldGFpbCIpLmNsYXNzTmFtZSA9ICJkZWxldGUiOw0KICAgICAgDQogICAgICBzaG93RWxlbWVudCgidXBkYXRlRmlsZURldGFpbCIsIHRydWUpOw0KICAgICAgc2hvd0VsZW1lbnQoInR5cGUiLCBmYWxzZSk7DQogICAgICBzaG93RWxlbWVudCgiZmlsZS10eXBlIiwgZmFsc2UpOw0KICAgICAgDQogICAgICBicmVhazsNCg0KICB9DQoNCiAgdmFyIGtleXMgPSBnZXRPYmpLZXlzKGRhdGEpOw0KICANCiAgZm9yICh2YXIgaSA9IDA7IGkgPCBrZXlzLmxlbmd0aDsgaSsrKSB7DQoNCiAgICBpZihkb2N1bWVudC5nZXRFbGVtZW50QnlJZChrZXlzW2ldKSl7DQogICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChrZXlzW2ldKS52YWx1ZSA9IGRhdGFba2V5c1tpXV07DQogICAgfSANCg0KDQogIH0NCg0KfQ0KDQpmdW5jdGlvbiBjaGFuZ2VGaWxlVHlwZShlbG0pIHsNCg0KICB2YXIgZmlsZUlEID0gZWxtLmdldEF0dHJpYnV0ZSgiZGF0YS1pZCIpOw0KICB2YXIgZmlsZVR5cGUgPSBlbG0ub3B0aW9uc1tlbG0uc2VsZWN0ZWRJbmRleF0udmFsdWU7DQogIA0KICBmaWxlRGV0YWlsKGZpbGVJRCwgZmlsZVR5cGUpDQoNCn0NCg0KDQpmdW5jdGlvbiBzYXZlRmlsZURldGFpbChmaWxlSUQsIGZpbGVUeXBlLCBkZWxldGVGaWxlKSB7DQoNCiAgaWYgKGZpbGVJRCA9PSB1bmRlZmluZWQpIHsNCiAgICBhbGVydCgiSUQgaXMgbWlzc2luZyEhISIpOw0KICAgIHJldHVybiANCiAgfQ0KDQogIHZhciBpbnB1dHMgICAgICA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJmaWxlLWRldGFpbCIpLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJJTlBVVCIpOw0KICB2YXIgc2VsZWN0cyAgICAgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZmlsZS1kZXRhaWwiKS5nZXRFbGVtZW50c0J5VGFnTmFtZSgiU0VMRUNUIik7DQogIHZhciBuZXdGaWxlRGF0YSA9IG5ldyBPYmplY3QoKTsNCiAgdmFyIGRhdGEgICAgICAgID0gbmV3IE9iamVjdCgpOw0KDQogIGZvciAodmFyIGkgPSAwOyBpIDwgaW5wdXRzLmxlbmd0aDsgaSsrKSB7DQogICAgc3dpdGNoKGlucHV0c1tpXS50eXBlKSB7DQogICAgICBjYXNlICJ0ZXh0IjogbmV3RmlsZURhdGFbaW5wdXRzW2ldLm5hbWVdID0gaW5wdXRzW2ldLnZhbHVlOyBicmVhazsNCiAgICB9DQogIH0NCg0KICBmb3IgKHZhciBpID0gMDsgaSA8IHNlbGVjdHMubGVuZ3RoOyBpKyspIHsNCiAgICBuZXdGaWxlRGF0YVtzZWxlY3RzW2ldLmlkXSA9IHNlbGVjdHNbaV0ub3B0aW9uc1tzZWxlY3RzW2ldLnNlbGVjdGVkSW5kZXhdLnZhbHVlOw0KICB9DQoNCiAgaWYgKGRlbGV0ZUZpbGUgPT0gdHJ1ZSkgew0KICAgIHN3aXRjaChmaWxlVHlwZSkgew0KICAgICAgY2FzZSAibTN1IjogICB2YXIgYWxlcnRUZXh0ID0gIkRlbGV0ZSB0aGlzIHBsYXlsaXN0PyI7IGJyZWFrOw0KICAgICAgY2FzZSAiaGRociI6IHZhciBhbGVydFRleHQgPSAiRGVsZXRlIHRoaXMgSERIb21lUnVuIHR1bmVyPyI7IGJyZWFrOw0KICAgICAgY2FzZSAieG1sdHYiOiB2YXIgYWxlcnRUZXh0ID0gIkRlbGV0ZSB0aGlzIFhNTFRWIGZpbGU/IjsgYnJlYWs7DQogICAgfQ0KDQogICAgaWYgKGNvbmZpcm0oYWxlcnRUZXh0KSkgew0KICAgICAgbmV3RmlsZURhdGFbImRlbGV0ZSJdID0gdHJ1ZQ0KICAgICAgZGF0YSA9IGJ1aWxkRmlsZXNPYmooZmlsZVR5cGUsIGZpbGVJRCwgbmV3RmlsZURhdGEpOw0KICAgICAgY29uc29sZS5sb2coZGF0YSk7DQogICAgICANCiAgICB9IGVsc2Ugew0KICAgICAgc2hvd0VsZW1lbnQoInBvcHVwIiwgZmFsc2UpOw0KICAgICAgcmV0dXJuDQogICAgDQogICAgfQ0KDQogIH0gZWxzZSB7DQogIA0KICAgIHN3aXRjaChjb25maWdbImZpbGVzIl1bZmlsZVR5cGVdLmhhc093blByb3BlcnR5KGZpbGVJRCkpIHsNCg0KICAgICAgY2FzZSB0cnVlOiANCiAgICAgICAgZGF0YSA9IGNvbmZpZ1siZmlsZXMiXVtmaWxlVHlwZV1bZmlsZUlEXTsgDQogICAgICAgIGlmIChkYXRhWyJmaWxlLnNvdXJjZSJdICE9IG5ld0ZpbGVEYXRhWyJmaWxlLnNvdXJjZSJdKSB7DQogICAgICAgICAgZGF0YVsidXBkYXRlIl0gPSB0cnVlDQogICAgICAgIH0gZWxzZSB7DQogICAgICAgICAgZGF0YVsidXBkYXRlUGxheWxpc3ROYW1lIl0gPSB0cnVlOw0KICAgICAgICB9DQogICAgICAgIGJyZWFrOw0KICAgICAgDQogICAgICBjYXNlIGZhbHNlOiANCiAgICAgICAgbmV3RmlsZURhdGFbIm5ldyJdID0gdHJ1ZTsNCiAgICAgICAgZGF0YSA9IGJ1aWxkRmlsZXNPYmooZmlsZVR5cGUsIGZpbGVJRCwgbmV3RmlsZURhdGEpOw0KICAgICAgICBicmVhaw0KDQogICAgfQ0KICANCiAgfSAgDQogIA0KICBzd2l0Y2goZmlsZVR5cGUpIHsNCg0KICAgIGNhc2UgIm0zdSI6ICAgZGF0YVsiY21kIl0gPSAic2F2ZUZpbGVzTTNVIjsgYnJlYWs7DQogICAgY2FzZSAiaGRociI6ICBkYXRhWyJjbWQiXSA9ICJzYXZlRmlsZXNIREhSIjsgYnJlYWs7DQogICAgY2FzZSAieG1sdHYiOiBkYXRhWyJjbWQiXSA9ICJzYXZlRmlsZXNYTUxUViI7IGJyZWFrOw0KDQogIH0NCiAgLy9jb25zb2xlLmxvZyhkYXRhKTsNCiAgeFRlVmUoZGF0YSk7DQogIHJldHVybg0KfQ0KDQpmdW5jdGlvbiB1cGRhdGVGaWxlKGZpbGVJRCwgZmlsZVR5cGUsIGFsbEZpbGVzKSB7DQogIA0KICBzd2l0Y2goY29uZmlnWyJmaWxlcyJdW2ZpbGVUeXBlXS5oYXNPd25Qcm9wZXJ0eShmaWxlSUQpKSB7DQoNCiAgICBjYXNlIHRydWU6IA0KICAgIA0KICAgICAgdmFyIGRhdGEgPSBuZXcgT2JqZWN0KCk7DQogICAgICB2YXIgZGF0YSA9IGJ1aWxkRmlsZXNPYmooZmlsZVR5cGUsIGZpbGVJRCwgY29uZmlnWyJmaWxlcyJdW2ZpbGVUeXBlXVtmaWxlSURdKQ0KICAgICAgZGF0YVsibmV3Il0gPSB0cnVlDQoNCiAgICAgIHN3aXRjaChmaWxlVHlwZSkgew0KDQogICAgICAgIGNhc2UgIm0zdSI6ICAgZGF0YVsiY21kIl0gPSAidXBkYXRlRmlsZU0zVSI7IGJyZWFrOw0KICAgICAgICBjYXNlICJoZGhyIjogIGRhdGFbImNtZCJdID0gInVwZGF0ZUZpbGVIREhSIjsgYnJlYWs7DQogICAgICAgIGNhc2UgInhtbHR2IjogZGF0YVsiY21kIl0gPSAidXBkYXRlRmlsZVhNTFRWIjsgYnJlYWs7DQoNCiAgICAgIH0NCiAgICAgIA0KICAgICAgeFRlVmUoZGF0YSk7DQogICAgICANCiAgICAgIGJyZWFrOw0KICB9DQoNCn0NCg0KZnVuY3Rpb24gYnVpbGRGaWxlc09iaihmaWxlVHlwZSwgZmlsZUlELCBvYmopIHsNCg0KICB2YXIgZGF0YSA9IG5ldyBPYmplY3QoKTsNCiAgZGF0YVsiZmlsZXMiXSA9IG5ldyBPYmplY3QoKTsNCiAgZGF0YVsiZmlsZXMiXVtmaWxlVHlwZV0gPSBuZXcgT2JqZWN0KCk7DQogIGRhdGFbImZpbGVzIl1bZmlsZVR5cGVdW2ZpbGVJRF0gPSBvYmoNCiAgcmV0dXJuIGRhdGENCg0KfQ==" + webUI["html/create-first-user.html"] = "PCFkb2N0eXBlIGh0bWw+DQo8aHRtbD4NCiAgPGhlYWQ+DQogICAgPG1ldGEgY2hhcnNldD0idXRmLTgiPg0KICAgIDxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgsIGluaXRpYWwtc2NhbGU9MS4wIiAvPiANCiAgICA8dGl0bGU+eFRlVmU8L3RpdGxlPg0KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iY3NzL3NjcmVlbi5jc3MiIHR5cGU9InRleHQvY3NzIj4NCiAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9ImNzcy9iYXNlLmNzcyIgdHlwZT0idGV4dC9jc3MiPg0KICAgIDxzY3JpcHQgbGFuZ3VhZ2U9ImphdmFzY3JpcHQiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJqcy9uZXR3b3JrX3RzLmpzIj48L3NjcmlwdD4NCiAgICA8c2NyaXB0IGxhbmd1YWdlPSJqYXZhc2NyaXB0IiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ianMvYXV0aGVudGljYXRpb25fdHMuanMiPjwvc2NyaXB0Pg0KICA8L2hlYWQ+DQoNCiAgICA8Ym9keT4NCiAgICAgICAgICANCiAgICAgIDxkaXYgaWQ9ImhlYWRlciIgY2xhc3M9ImltZ0NlbnRlciI+PC9kaXY+DQoNCiAgICAgIDxkaXYgaWQ9ImJveCI+DQoNCiAgICAgICAgPGRpdiBpZD0iaGVhZGxpbmUiPg0KICAgICAgICAgIDxoMSBpZD0iaGVhZC10ZXh0IiBjbGFzcz0iY2VudGVyIj57ey5hY2NvdW50LmhlYWRsaW5lfX08L2gxPg0KICAgICAgICA8L2Rpdj4NCg0KICAgICAgICA8cCBpZD0iZXJyIiBjbGFzcz0iZXJyb3JNc2cgY2VudGVyIj48L3A+DQoNCiAgICAgICAgPGRpdiBpZD0iY29udGVudCI+DQoNCiAgICAgICAgICAgIDxmb3JtIGlkPSJhdXRoZW50aWNhdGlvbiIgYWN0aW9uPSIiIG1ldGhvZD0icG9zdCI+DQoNCiAgICAgICAgICAgICAgPGg1Pnt7LmFjY291bnQudXNlcm5hbWUudGl0bGV9fTo8L2g1Pg0KICAgICAgICAgICAgICA8aW5wdXQgaWQ9InVzZXJuYW1lIiB0eXBlPSJ0ZXh0IiBuYW1lPSJ1c2VybmFtZSIgcGxhY2Vob2xkZXI9IlVzZXJuYW1lIiB2YWx1ZT0iIj4NCiAgICAgICAgICAgICAgPGg1Pnt7LmFjY291bnQucGFzc3dvcmQudGl0bGV9fTo8L2g1Pg0KICAgICAgICAgICAgICA8aW5wdXQgaWQ9InBhc3N3b3JkIiB0eXBlPSJwYXNzd29yZCIgbmFtZT0icGFzc3dvcmQiIHBsYWNlaG9sZGVyPSJQYXNzd29yZCIgdmFsdWU9IiI+DQogICAgICAgICAgICAgIDxoNT57ey5hY2NvdW50LmNvbmZpcm0udGl0bGV9fTo8L2g1Pg0KICAgICAgICAgICAgICA8aW5wdXQgaWQ9ImNvbmZpcm0iICB0eXBlPSJwYXNzd29yZCIgbmFtZT0iY29uZmlybSIgIHBsYWNlaG9sZGVyPSJDb25maXJtIiB2YWx1ZT0iIj4NCiAgICAgICAgICAgICAgDQogICAgICAgICAgICA8L2Zvcm0+DQoNCiAgICAgICAgPC9kaXY+DQogICAgICAgIA0KICAgICAgICA8ZGl2IGlkPSJib3gtZm9vdGVyIj4NCiAgICAgICAgICA8aW5wdXQgaWQ9InN1Ym1pdCIgY2xhc3M9IiIgdHlwZT0iYnV0dG9uIiB2YWx1ZT0ie3suYnV0dG9uLmNyYWV0ZUFjY291bnR9fSIgb25jbGljaz0iamF2YXNjcmlwdDogbG9naW4oKTsiPg0KICAgICAgICA8L2Rpdj4NCiAgICAgIA0KICAgICAgICANCiAgICAgIDwvZGl2Pg0KICAgIDwvYm9keT4NCjwvaHRtbD4=" + webUI["html/img/x_ transparent.png"] = "iVBORw0KGgoAAAANSUhEUgAAAQAAAAEACAYAAABccqhmAAAAAXNSR0IArs4c6QAAAAlwSFlzAAAWJQAAFiUBSVIk8AAAA6ppVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IlhNUCBDb3JlIDUuNC4wIj4KICAgPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIgogICAgICAgICAgICB4bWxuczp0aWZmPSJodHRwOi8vbnMuYWRvYmUuY29tL3RpZmYvMS4wLyIKICAgICAgICAgICAgeG1sbnM6ZXhpZj0iaHR0cDovL25zLmFkb2JlLmNvbS9leGlmLzEuMC8iPgogICAgICAgICA8eG1wOk1vZGlmeURhdGU+MjAxOC0xMS0xNVQxNzoxMTo3NjwveG1wOk1vZGlmeURhdGU+CiAgICAgICAgIDx4bXA6Q3JlYXRvclRvb2w+UGl4ZWxtYXRvciAzLjM8L3htcDpDcmVhdG9yVG9vbD4KICAgICAgICAgPHRpZmY6T3JpZW50YXRpb24+MTwvdGlmZjpPcmllbnRhdGlvbj4KICAgICAgICAgPHRpZmY6Q29tcHJlc3Npb24+NTwvdGlmZjpDb21wcmVzc2lvbj4KICAgICAgICAgPHRpZmY6UmVzb2x1dGlvblVuaXQ+MjwvdGlmZjpSZXNvbHV0aW9uVW5pdD4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+MTQ0PC90aWZmOllSZXNvbHV0aW9uPgogICAgICAgICA8dGlmZjpYUmVzb2x1dGlvbj4xNDQ8L3RpZmY6WFJlc29sdXRpb24+CiAgICAgICAgIDxleGlmOlBpeGVsWERpbWVuc2lvbj4yNTY8L2V4aWY6UGl4ZWxYRGltZW5zaW9uPgogICAgICAgICA8ZXhpZjpDb2xvclNwYWNlPjE8L2V4aWY6Q29sb3JTcGFjZT4KICAgICAgICAgPGV4aWY6UGl4ZWxZRGltZW5zaW9uPjI1NjwvZXhpZjpQaXhlbFlEaW1lbnNpb24+CiAgICAgIDwvcmRmOkRlc2NyaXB0aW9uPgogICA8L3JkZjpSREY+CjwveDp4bXBtZXRhPgoeXQb1AAAaJElEQVR4Ae2dCZhcVZXHz+1KSFiGkISkqyIoOgI68EkgOBNkEcQRlIFRZDGABAQEhInGbxw+RUZRNhWRLawDYR0GHAaHUVkGvwGURUcgwIiAOGxjV3UHAslHQrbuM/9TlQ6d7qruWt527/u/7+uuqvvucu7vvnveuffde54IDxIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARLwiIDzQtayHi0q23shaydCOnlISu7nnWThRdrFOkPWyCleyNqJkF1yjhTd8k6yiDvtuLgLiCR/lVnIZ14keWU7k2Xyuu4oU92r2RazQ+nWypXI4W86zCXbyZ28KBvJ97MtpEhX1gWsyleS08TJU17I2omQKpvLarmqkywyn7ZHPw9rLvTOvwbX6xEyxS3Nenv4oQCcWwmQc/D3dtaBdiyfyv5S1mM7zieLGSzWEsS6KIuiRSzTGTD9H404z1iy80MBWNVL7hn8nx8LhaxlqnKBvKbvyppYHctTM/0nd5xPljNwcrcUs2/6DyL0RwGYxDOcjR3vGBQ+4M8tMElmdQ3n6NGjYPofGE6F6tTESRmm/1xxTuuczWSQH08BhqJbqlNkuTyJoK2GBgf53S6mkrvB+7qZ6b9Gfod6hHv3dzKAGbX9pNvd51N7+WUBGNlJbgm07FH4G/AJdFuyqlwotXFzW8kzk2itXAFZwu38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" + webUI["html/js/menu.js"] = "DQpmdW5jdGlvbiBzZXRNZW51SXRlbSgpIHsNCg0KICBtZW51ID0gbmV3IE9iamVjdCgpOw0KICBzdWJNZW51ID0gbmV3IE9iamVjdCgpOw0KDQogIHZhciBtZW51X20zdSA9IG5ldyBPYmplY3QoKTsNCiAgbWVudV9tM3VbIl9tZW51VHlwZSJdICAgICAgID0gImlucHV0QXJyYXkiOw0KICBtZW51X20zdVsiX2VsZW1lbnQiXSAgICAgICAgPSAiTEkiOw0KICBtZW51X20zdVsiX2NvbmZpZ0tleSJdICAgICAgPSAiZmlsZXMubTN1IjsNCiAgbWVudV9tM3VbIl90ZXh0Il0gICAgICAgICAgID0gIlBsYXlsaXN0IjsNCiAgbWVudV9tM3VbIl9pY29uIl0gICAgICAgICAgID0gImltZy9tM3UucG5nIjsNCiAgbWVudV9tM3VbIl9oZWFkbGluZSJdICAgICAgID0gIlBsYXlsaXN0czogTG9jYWwgb3IgcmVtb3RlIjsNCiAgbWVudV9tM3VbIl91c2FnZSJdICAgICAgICAgID0gIjxiPkluZm88L2I+PGJyPkF2YWlsYWJpbGl0eTogRmlsZSBhdmFpbGFiaWxpdHkgaW4gcGVyY2VudDxicj5TdHJlYW1zOiAgICAgIE51bWJlciBvZiBzdHJlYW1zIGluIHRoZSBmaWxlLjxicj5ncm91cC10aXRsZTogIFN0cmVhbXMgdGhhdCBhcmUgYXNzaWduZWQgdG8gYSBncm91cC4gU2ltcGxpZmllcyBmaWx0ZXJpbmcgc3RyZWFtczxicj50dmctaWQ6ICAgICAgIFRoaXMgSUQgaXMgdXNlZCBmb3IgYXV0b21hdGljIG1hcHBpbmcsIG11c3QgbWF0Y2ggd2l0aCB0aGUgY2hhbm5lbCBJRCBpbiB0aGUgWE1MVFYgZmlsZS48YnI+VW5pcXVlIElEOiAgICBTdHJlYW1zIHdpdGggYSB1bmlxdWUgSUQgdG8gaWRlbnRpZnkgdGhlbS4gQWxsb3dzIGNoYW5uZWwgbmFtZSBjaGFuZ2VzIGluIHRoZSBNM1Ugd2l0aG91dCBsb3NpbmcgdGhlIFhNTFRWIG1hcHBpbmcgKFBQViAvIGxpdmUgZXZlbnRzKS48YnI+PGJyPjxiPlVzYWdlIE0zVTo8L2I+PGJyPlJlbW90ZSBwbGF5bGlzdDogaHR0cDovL3lvdXIuaXB0di5wcm92aWRlci5jb20vZmlsZS5tM3U8YnI+TG9jYWwgIHBsYXlsaXN0OiAvcGF0aC90by9maWxlLm0zdTxicj48YnI+PGI+VXNhZ2UgSERIb21lUnVuOjwvYj48YnI+SVA6IDE5Mi4xNjguMS4xMDo1MDA0PGJyPiINCiAgbWVudV9tM3VbIm5hbWUiXSAgICAgICAgICAgID0gImZpbGUiOw0KICBtZW51X20zdVsiaWQiXSAgICAgICAgICAgICAgPSAiZmlsZSI7DQogIG1lbnVfbTN1WyJ2YWx1ZSJdICAgICAgICAgICA9IG1lbnVfbTN1WyJuYW1lIl07DQogIG1lbnVfbTN1WyJwbGFjZWhvbGRlciJdICAgICA9ICJQbGF5bGlzdDogbG9jYWwgb3IgcmVtb3RlIjsNCiAgbWVudV9tM3VbIm9uY2xpY2siXSAgICAgICAgID0gImphdmFzY3JpcHQ6IHRvZ2dsZU1lbnUodGhpcyk7IjsNCiAgbWVudV9tM3VbImNsYXNzIl0gICAgICAgICAgID0gIm1lbnUtbm90QWN0aXZlIjsNCg0KDQogIHZhciBtZW51X2ZpbHRlciA9IG5ldyBPYmplY3QoKTsNCiAgbWVudV9maWx0ZXJbIl9tZW51VHlwZSJdICAgID0gImlucHV0QXJyYXkiOw0KICBtZW51X2ZpbHRlclsiX2VsZW1lbnQiXSAgICAgPSAiTEkiOw0KICBtZW51X2ZpbHRlclsiX2NvbmZpZ0tleSJdICAgPSAiZmlsdGVyIjsNCiAgbWVudV9maWx0ZXJbIl90ZXh0Il0gICAgICAgID0gIkZpbHRlciI7DQogIG1lbnVfZmlsdGVyWyJfaWNvbiJdICAgICAgICA9ICJpbWcvZmlsdGVyLnBuZyI7DQogIG1lbnVfZmlsdGVyWyJfaGVhZGxpbmUiXSAgICA9ICJGaWx0ZXIgYnkgTTNVIHBhcmFtZXRlcnMsIGUuZy4gZ3JvdXAtdGl0bGUiOw0KICBtZW51X2ZpbHRlclsiX3VzYWdlIl0gICAgICAgPSAiPGI+VXNhZ2U6PC9iPjxicj5TcG9ydCAtIEFsbCBzcG9ydHMgY2hhbm5lbHM8YnI+U3BvcnQge0hEfSAtIEFsbCBIRCBzcG9ydHMgY2hhbm5lbHM8YnI+U3BvcnQge0hEfSAhe0VTLERFfSAtIEFsbCBIRCBzcG9ydHMgY2hhbm5lbHMsIGJ1dCBubyBTcGFuaXNoIGFuZCBHZXJtYW48YnI+PGJyPlRvIGZpbHRlciB0aGUgc3RyZWFtcyBvZiBhIEhESG9tZVJ1biwgdGhlIHBsYXlsaXN0IG5hbWUgY2FuIGJlIGVudGVyZWQ6PGJyPk15IHR1bmVyIHtIRH0iDQogIC8vbWVudV9maWx0ZXJbIl91c2FnZSJdICAgICAgID0gIjxiPlVzYWdlOjwvYj48YnI+QWxsIHNwb3J0cyBjaGFubmVsczogU3BvcnQ8YnI+QWxsIEhEIHNwb3J0cyBjaGFubmVsczogU3BvcnQge0hEfTxicj5BbGwgSEQgc3BvcnRzIGNoYW5uZWxzLCBidXQgbm8gU3BhbmlzaCBhbmQgR2VybWFuOiBTcG9ydCB7SER9ICF7RVMsREV9Ig0KICBtZW51X2ZpbHRlclsibmFtZSJdICAgICAgICAgPSAiZmlsdGVyIjsNCiAgbWVudV9maWx0ZXJbImlkIl0gICAgICAgICAgID0gIk0zVSI7DQogIG1lbnVfZmlsdGVyWyJ2YWx1ZSJdICAgICAgICA9IG1lbnVfZmlsdGVyWyJuYW1lIl07DQogIG1lbnVfZmlsdGVyWyJwbGFjZWhvbGRlciJdICA9ICJGaWx0ZXIgc3RyZWFtczogU3BvcnQiOw0KICBtZW51X2ZpbHRlclsib25jbGljayJdICAgICAgPSAiamF2YXNjcmlwdDogdG9nZ2xlTWVudSh0aGlzKTsiOw0KICBtZW51X2ZpbHRlclsiY2xhc3MiXSAgICAgICAgPSAibWVudS1ub3RBY3RpdmUiOw0KDQogIHZhciBtZW51X2lkID0gbmV3IE9iamVjdCgpOw0KICBtZW51X2lkWyJfbWVudVR5cGUiXSAgICAgICAgPSAiaW5wdXRBcnJheSI7DQogIG1lbnVfaWRbIl9lbGVtZW50Il0gICAgICAgICA9ICJMSSI7DQogIG1lbnVfaWRbIl9jb25maWdLZXkiXSAgICAgICA9ICJpZCI7DQogIG1lbnVfaWRbIl90ZXh0Il0gICAgICAgICAgICA9ICJQTVMgSUQiOw0KICBtZW51X2lkWyJfaWNvbiJdICAgICAgICAgICAgPSAiaW1nL251bWJlci5wbmciOw0KICBtZW51X2lkWyJfaGVhZGxpbmUiXSAgICAgICAgPSAiU2V0dXAgUE1TIGd1aWRlIG51bWJlciI7DQogIG1lbnVfaWRbIl91c2FnZSJdICAgICAgICAgICA9ICdTb21lIHBsYXlsaXN0cyBoYXZlIHVuaXF1ZSBjaGFubmVsIElEcy48YnI+RW50ZXIgdGhlIGtleXdvcmQgb2YgdGhlIElELiBUaGUgY2hhbm5lbCBhc3NpZ25tZW50IGluIFBNUyB3aWxsIGNoYW5nZSBhcyBhIHJlc3VsdC48YnI+PGJyPmUuZy4gY2hhbm5lbElEPGJyPiNFWFRJTkY6MCB0eXBlPSJzdHJlYW0iIDxiPmNoYW5uZWxJZDwvYj49IjgxIiwgTXkgU3RyZWFtaW5nIENoYW5uZWwgSEQ8YnI+PGJyPk9ubHkgZW50ZXIgaGVyZSBpZiB5b3Uga25vdyB3aGF0IHlvdSBhcmUgZG9pbmchJw0KICBtZW51X2lkWyJuYW1lIl0gICAgICAgICAgICAgPSAiaWQiOw0KICBtZW51X2lkWyJpZCJdICAgICAgICAgICAgICAgPSAiaWQiOw0KICBtZW51X2lkWyJ2YWx1ZSJdICAgICAgICAgICAgPSBtZW51X2lkWyJuYW1lIl07DQogIG1lbnVfaWRbInBsYWNlaG9sZGVyIl0gICAgICA9ICJVbmlxdWUgSUQgZnJvbSB0aGUgTTNVIGZpbGUiOw0KICBtZW51X2lkWyJvbmNsaWNrIl0gICAgICAgICAgPSAiamF2YXNjcmlwdDogdG9nZ2xlTWVudSh0aGlzKTsiOw0KICBtZW51X2lkWyJjbGFzcyJdICAgICAgICAgICAgPSAibWVudS1ub3RBY3RpdmUiOw0KDQoNCiAgdmFyIG1lbnVfeG1sdHYgPSBuZXcgT2JqZWN0KCk7DQogIG1lbnVfeG1sdHZbIl9tZW51VHlwZSJdICAgICA9ICJpbnB1dEFycmF5IjsNCiAgbWVudV94bWx0dlsiX2VsZW1lbnQiXSAgICAgID0gIkxJIjsNCiAgbWVudV94bWx0dlsiX2NvbmZpZ0tleSJdICAgID0gImZpbGVzLnhtbHR2IjsNCiAgbWVudV94bWx0dlsiX3RleHQiXSAgICAgICAgID0gIlhNTFRWIjsNCiAgbWVudV94bWx0dlsiX2ljb24iXSAgICAgICAgID0gImltZy94bWx0di5wbmciOw0KICBtZW51X3htbHR2WyJfaGVhZGxpbmUiXSAgICAgPSAiWE1MVFYgZmlsZXM6IExvY2FsIG9yIHJlbW90ZSI7DQogIG1lbnVfeG1sdHZbIl91c2FnZSJdICAgICAgICA9ICI8Yj5JbmZvOjwvYj48YnI+QXZhaWxhYmlsaXR5OiBGaWxlIGF2YWlsYWJpbGl0eSBpbiBwZXJjZW50PGJyPkNoYW5uZWxzOiAgICAgTnVtYmVyIG9mIGNoYW5uZWxzIGluIHRoZSBmaWxlPGJyPlByb2dyYW1zOiAgICAgTnVtYmVyIG9mIEVQRyBkYXRhPGJyPjxicj48Yj5Vc2FnZTo8L2I+PGJyPlJlbW90ZSBYTUxUViBmaWxlOiBodHRwOi8veW91ci5lcGcucHJvdmlkZXIuY29tL2d1aWRlLnhtbDxicj5Mb2NhbCAgWE1MVFYgZmlsZTogL3BhdGgvdG8vZ3VpZGUueG1sIg0KICBtZW51X3htbHR2WyJuYW1lIl0gICAgICAgICAgPSAieG1sdHYiOw0KICBtZW51X3htbHR2WyJpZCJdICAgICAgICAgICAgPSAieG1sdHYiOw0KICBtZW51X3htbHR2WyJ2YWx1ZSJdICAgICAgICAgPSBtZW51X3htbHR2WyJuYW1lIl07DQogIG1lbnVfeG1sdHZbInBsYWNlaG9sZGVyIl0gICA9ICJYTUxUViBGaWxlOiBsb2NhbCBvciByZW1vdGUiOw0KICBtZW51X3htbHR2WyJvbmNsaWNrIl0gICAgICAgPSAiamF2YXNjcmlwdDogdG9nZ2xlTWVudSh0aGlzKTsiOw0KICBtZW51X3htbHR2WyJjbGFzcyJdICAgICAgICAgPSAibWVudS1ub3RBY3RpdmUiOw0KDQogIG1lbnVfbWFwcGluZyA9IG5ldyBPYmplY3QoKTsNCiAgbWVudV9tYXBwaW5nWyJfZWxlbWVudCJdICAgPSAiTEkiOw0KICBtZW51X21hcHBpbmdbIl90ZXh0Il0gICAgICA9ICJNYXBwaW5nIjsNCiAgbWVudV9tYXBwaW5nWyJfaWNvbiJdICAgICAgPSAiaW1nL21hcHBpbmcucG5nIjsNCiAgbWVudV9tYXBwaW5nWyJfY29uZmlnS2V5Il0gPSAibWFwcGluZyI7DQogIG1lbnVfbWFwcGluZ1siX2hlYWRsaW5lIl0gID0gIlhNTFRWIGFzc2lnbm1lbnQgYW5kIHNvcnRpbmcgb2YgY2hhbm5lbHMiOw0KICBtZW51X21hcHBpbmdbImlkIl0gICAgICAgICA9ICJtYXBwaW5nIjsNCiAgbWVudV9tYXBwaW5nWyJvbmNsaWNrIl0gICAgPSAiamF2YXNjcmlwdDogdG9nZ2xlTWVudSh0aGlzKTsiOw0KICBtZW51X21hcHBpbmdbImNsYXNzIl0gICAgICA9ICJtZW51LW5vdEFjdGl2ZSBwaG9uZSI7DQoNCiAgbWVudV91c2VycyA9IG5ldyBPYmplY3QoKTsNCiAgbWVudV91c2Vyc1siX2VsZW1lbnQiXSAgID0gIkxJIjsNCiAgbWVudV91c2Vyc1siX3RleHQiXSAgICAgID0gIlVzZXJzIjsNCiAgbWVudV91c2Vyc1siX2ljb24iXSAgICAgID0gImltZy91c2Vycy5wbmciOw0KICBtZW51X3VzZXJzWyJfY29uZmlnS2V5Il0gPSAidXNlcnMiOw0KICBtZW51X3VzZXJzWyJfaGVhZGxpbmUiXSAgPSAiQWRtaW5pc3RyYXRpb24gb2YgdXNlcnMgYW5kIHBlcm1pc3Npb25zIjsNCiAgbWVudV91c2Vyc1siaWQiXSAgICAgICAgID0gInVzZXJzIjsNCiAgbWVudV91c2Vyc1sib25jbGljayJdICAgID0gImphdmFzY3JpcHQ6IHRvZ2dsZU1lbnUodGhpcyk7IjsNCiAgbWVudV91c2Vyc1siY2xhc3MiXSAgICAgID0gIm1lbnUtbm90QWN0aXZlIjsNCiAgbWVudV91c2Vyc1siX3VzYWdlIl0gICAgID0gIjxiPkF1dGhvcml6YXRpb24gZ3JvdXBzOjwvYj48YnI+V0VCOiBVc2VycyBjYW4gbG9nIGluIHRvIHRoZSB3ZWIgaW50ZXJmYWNlPGJyPlBNUzogUHJvZ3JhbXMgbGlrZSBQbGV4IGNhbiBhY2Nlc3MgdGhlIGNoYW5uZWwgbGlzdC4gTG9naW4gdmlhIERWUiBJUDogdXNlcm5hbWU6cGFzc3dvcmRAeHRldmUuaXA6cG9ydDxicj5NM1U6IEFsbG93cyBjbGllbnRzIHRvIGRvd25sb2FkIHRoZSBNM1UgcGxheWxpc3QuPGJyPlhNTDogQWxsb3dzIGNsaWVudHMgdG8gZG93bmxvYWQgdGhlIFhNTFRWIGZpbGUuPGJyPkFQSTogQWxsb3dzIGNsaWVudHMgdG8gdXNlIHRoZSBBUEkgaW50ZXJmYWNlLjxicj48YnI+ISEhIEZvciBQTVMgYXV0aGVudGljYXRpb24sIG9ubHkgdGhlIGZvbGxvd2luZyBzcGVjaWFsIGNoYXJhY3RlcnMgYXJlIHZhbGlkOiAhJCgpPS4sLTo7PGJyPjxicj5UaGUgaW5kaXZpZHVhbCBhdXRoZW50aWNhdGlvbiBncm91cHMgY2FuIGJlIGFjdGl2YXRlZCAvIGRlYWN0aXZhdGVkIGluIHRoZSBzZXR0aW5ncyBtZW51LiINCiAgDQogIG1lbnVfc2V0dGluZ3MgPSBuZXcgT2JqZWN0KCk7DQogIG1lbnVfc2V0dGluZ3NbIl9lbGVtZW50Il0gICA9ICJMSSI7DQogIG1lbnVfc2V0dGluZ3NbIl90ZXh0Il0gICAgICA9ICJTZXR0aW5ncyI7DQogIG1lbnVfc2V0dGluZ3NbIl9pY29uIl0gICAgICA9ICJpbWcvc2V0dGluZ3MucG5nIjsNCiAgbWVudV9zZXR0aW5nc1siX2NvbmZpZ0tleSJdID0gInNldHRpbmdzIjsNCiAgbWVudV9zZXR0aW5nc1siX2hlYWRsaW5lIl0gID0gIlNldHRpbmdzIjsNCiAgbWVudV9zZXR0aW5nc1siX3N1Yk1lbnUiXSAgID0gIjcwMSw3MDIsNzAzLDcwNCw3MDUsNzA2LDcwNyw3MDgsNzk5LDcxMCw3MTEsNzEyLDcxMyw3MTQiOw0KICBtZW51X3NldHRpbmdzWyJpZCJdICAgICAgICAgPSAic2V0dGluZ3MiOw0KICBtZW51X3NldHRpbmdzWyJvbmNsaWNrIl0gICAgPSAiamF2YXNjcmlwdDogdG9nZ2xlTWVudSh0aGlzKTsiOw0KICBtZW51X3NldHRpbmdzWyJjbGFzcyJdICAgICAgPSAibWVudS1ub3RBY3RpdmUiOw0KDQogIG1lbnVfbG9nID0gbmV3IE9iamVjdCgpOw0KICBtZW51X2xvZ1siX2VsZW1lbnQiXSAgICAgICAgPSAiTEkiOw0KICBtZW51X2xvZ1siX3RleHQiXSAgICAgICAgICAgPSAiTG9nIjsNCiAgbWVudV9sb2dbIl9pY29uIl0gICAgICAgICAgID0gImltZy9sb2cucG5nIjsNCiAgbWVudV9sb2dbIl9oZWFkbGluZSJdICAgICAgID0gIkxvZyI7DQogIG1lbnVfbG9nWyJfY29uZmlnS2V5Il0gICAgICA9ICJsb2ciOw0KICBtZW51X2xvZ1siaWQiXSAgICAgICAgICAgICAgPSAibG9nIjsNCiAgbWVudV9sb2dbIm9uY2xpY2siXSAgICAgICAgID0gImphdmFzY3JpcHQ6IHRvZ2dsZU1lbnUodGhpcyk7IjsNCiAgbWVudV9sb2dbImNsYXNzIl0gICAgICAgICAgID0gIm1lbnUtbm90QWN0aXZlIjsNCg0KICBtZW51X2xvZ291dCA9IG5ldyBPYmplY3QoKTsNCiAgbWVudV9sb2dvdXRbIl9lbGVtZW50Il0gICA9ICJMSSI7DQogIG1lbnVfbG9nb3V0WyJfdGV4dCJdICAgICAgPSAiTG9nb3V0IjsNCiAgbWVudV9sb2dvdXRbIl9pY29uIl0gICAgICA9ICJpbWcvbG9nb3V0LnBuZyI7DQogIG1lbnVfbG9nb3V0WyJpZCJdICAgICAgICAgPSAibG9nb3V0IjsNCiAgbWVudV9sb2dvdXRbIm9uY2xpY2siXSAgICA9ICJqYXZhc2NyaXB0OiBsb2dvdXQoKTsiOw0KICBtZW51X2xvZ291dFsiY2xhc3MiXSAgICAgID0gIm1lbnUtbm90QWN0aXZlIjsNCg0KICB2YXIgbWVudV9zY2hlZHVsZSA9IG5ldyBPYmplY3QoKTsNCiAgbWVudV9zY2hlZHVsZVsiX21lbnVUeXBlIl0gID0gImlucHV0QXJyYXkiOw0KICBtZW51X3NjaGVkdWxlWyJfZWxlbWVudCJdICAgPSAiTEkiOw0KICBtZW51X3NjaGVkdWxlWyJfY29uZmlnS2V5Il0gPSAidXBkYXRlIjsNCiAgbWVudV9zY2hlZHVsZVsiX3RleHQiXSAgICAgID0gIlNjaGVkdWxlIjsNCiAgbWVudV9zY2hlZHVsZVsiX2ljb24iXSAgICAgID0gImltZy9zY2hlZHVsZS5wbmciOw0KICBtZW51X3NjaGVkdWxlWyJfaGVhZGxpbmUiXSAgPSAiU2NoZWR1bGUgZm9yIHVwZGF0aW5nIE0zVSwgWE1MVFYgZmlsZXMgYW5kIGNyZWF0aW5nIGEgbG9jYWwgYmFja3VwIjsNCiAgbWVudV9zY2hlZHVsZVsiX3VzYWdlIl0gICAgID0gIjxiPlVzYWdlOjwvYj48YnI+MDgxNSA9IDg6MTUgYW08YnI+MTkzMCA9IDc6MzAgcG0iDQogIG1lbnVfc2NoZWR1bGVbIm5hbWUiXSAgICAgICA9ICJ1cGRhdGUiOw0KICBtZW51X3NjaGVkdWxlWyJpZCJdICAgICAgICAgPSAidXBkYXRlIjsNCiAgbWVudV9zY2hlZHVsZVsidmFsdWUiXSAgICAgID0gbWVudV9pZFsibmFtZSJdOw0KICBtZW51X3NjaGVkdWxlWyJwbGFjZWhvbGRlciJdPSAidGltZSBvZiBkYXkgKDI0LWhvdXIgY2xvY2spIjsNCiAgbWVudV9zY2hlZHVsZVsib25jbGljayJdICAgID0gImphdmFzY3JpcHQ6IHRvZ2dsZU1lbnUodGhpcyk7IjsNCiAgbWVudV9zY2hlZHVsZVsiY2xhc3MiXSAgICAgID0gIm1lbnUtbm90QWN0aXZlIjsNCg0KICB2YXIgbWVudV9maWxlc1VwZGF0ZSA9IG5ldyBPYmplY3QoKTsNCiAgbWVudV9maWxlc1VwZGF0ZVsiX2VsZW1lbnQiXSA9ICJMSSI7DQogIG1lbnVfZmlsZXNVcGRhdGVbIl9tZW51VHlwZSJdICAgICA9ICJjaGVja2JveCI7DQogIG1lbnVfZmlsZXNVcGRhdGVbIl9jb25maWdLZXkiXSAgICA9ICJmaWxlcy51cGRhdGUiOw0KICBtZW51X2ZpbGVzVXBkYXRlWyJfbGFiZWwiXSAgICAgICAgPSAiVXBkYXRlIHRoZSBwcm92aWRlciBmaWxlcyBhdCBzeXN0ZW0gc3RhcnR1cCI7DQogIG1lbnVfZmlsZXNVcGRhdGVbIl9oZWFkbGluZSJdICAgICA9ICJVcGRhdGUgdGhlIHByb3ZpZGVyIGZpbGVzIGF0IHN5c3RlbSBzdGFydHVwIjsNCiAgbWVudV9maWxlc1VwZGF0ZVsiX3VzYWdlIl0gICAgICAgID0gIlBsYXlsaXN0cyBhbmQgWE1MVFYgZmlsZXMgYXJlIHVwZGF0ZWQgYnkgeFRlVmUgYXQgc3lzdGVtIHN0YXJ0dXAuIg0KICBtZW51X2ZpbGVzVXBkYXRlWyJuYW1lIl0gICAgICAgICAgPSAiZmlsZXMudXBkYXRlIjsNCiAgbWVudV9maWxlc1VwZGF0ZVsiaWQiXSAgICAgICAgICAgID0gImZpbGVzLnVwZGF0ZSI7DQogIG1lbnVfZmlsZXNVcGRhdGVbInZhbHVlIl0gICAgICAgICA9IG1lbnVfZmlsZXNVcGRhdGVbIm5hbWUiXTsNCiAgbWVudV9maWxlc1VwZGF0ZVsib25jbGljayJdICAgICAgID0gImphdmFzY3JpcHQ6IHRvZ2dsZU1lbnUodGhpcyk7IjsNCiAgbWVudV9maWxlc1VwZGF0ZVsiY2xhc3MiXSAgICAgICAgID0gIm1lbnUtbm90QWN0aXZlIjsNCiAgDQogIHZhciBtZW51X3R1bmVyID0gbmV3IE9iamVjdCgpOw0KICBtZW51X3R1bmVyWyJfZWxlbWVudCJdICAgICAgPSAiTEkiOw0KICBtZW51X3R1bmVyWyJfbWVudVR5cGUiXSAgICAgPSAic2VsZWN0IjsNCiAgbWVudV90dW5lclsiX2NvbmZpZ0tleSJdICAgID0gInR1bmVyIjsNCiAgbWVudV90dW5lclsiX2xhYmVsIl0gICAgICAgID0gIkF2YWlsYWJsZSB0dW5lcnMiOw0KICBtZW51X3R1bmVyWyJfdGV4dCJdICAgICAgICAgPSAiVHVuZXIiOw0KICBtZW51X3R1bmVyWyJfaWNvbiJdICAgICAgICAgPSAiaW1nL3R1bmVyLnBuZyI7DQogIG1lbnVfdHVuZXJbIl9oZWFkbGluZSJdICAgICA9ICJOdW1iZXIgb2YgdHVuZXJzIjsNCiAgbWVudV90dW5lclsiX3VzYWdlIl0gICAgICAgID0gIlRoaXMgc2V0dGluZyBpcyBvbmx5IHVzZWQgYnkgUGxleCBhbmQgRW1ieS48YnI+VGhlIG51bWJlciBvZiBjb25jdXJyZW50IHN0cmVhbXMgYWxsb3dlZCBieSB0aGUgSVBUViBwcm92aWRlci48YnI+QWZ0ZXIgYSBjaGFuZ2UsIHhUZVZlIG11c3QgYmUgZGVsZXRlIGluIHRoZSBQTVMgRFZSIHNldHRpbmdzIGFuZCBzZXQgdXAgYWdhaW4uIg0KICBtZW51X3R1bmVyWyJuYW1lIl0gICAgICAgICAgPSAidHVuZXIiOw0KICBtZW51X3R1bmVyWyJpZCJdICAgICAgICAgICAgPSAidHVuZXIiOw0KICBtZW51X3R1bmVyWyJ2YWx1ZSJdICAgICAgICAgPSBtZW51X3R1bmVyWyJuYW1lIl07DQogIG1lbnVfdHVuZXJbInBsYWNlaG9sZGVyIl0gICA9ICJOdW1iZXIgb2YgdHVuZXJzIjsNCiAgbWVudV90dW5lclsib25jbGljayJdICAgICAgID0gImphdmFzY3JpcHQ6IHRvZ2dsZU1lbnUodGhpcyk7IjsNCiAgbWVudV90dW5lclsiY2xhc3MiXSAgICAgICAgID0gIm1lbnUtbm90QWN0aXZlIjsNCg0KICB2YXIgb3B0aW9uVmFsdWVzID0gbmV3IEFycmF5KCk7DQogIGZvciAodmFyIGkgPSAxOyBpIDw9IDEwMDsgaSsrKSB7DQogICAgb3B0aW9uVmFsdWVzLnB1c2goaSkNCiAgfQ0KICBtZW51X3R1bmVyWyJfb3B0aW9uVmFsdWVzIl0gPSBvcHRpb25WYWx1ZXM7DQogIA0KICB2YXIgbWVudV9lcGcgPSBuZXcgT2JqZWN0KCk7DQogIG1lbnVfZXBnWyJfZWxlbWVudCJdID0gIkxJIjsNCiAgbWVudV9lcGdbIl9tZW51VHlwZSJdICAgICA9ICJzZWxlY3QiOw0KICBtZW51X2VwZ1siX2NvbmZpZ0tleSJdICAgID0gImVwZ1NvdXJjZSI7DQogIG1lbnVfZXBnWyJfbGFiZWwiXSAgICAgICAgPSAiU2VsZWN0aW9uIG9mIHRoZSBFUEcgc291cmNlIjsNCiAgbWVudV9lcGdbIl90ZXh0Il0gICAgICAgICA9ICJFUEcgc291cmNlIjsNCiAgbWVudV9lcGdbIl9oZWFkbGluZSJdICAgICA9ICJTZWxlY3Rpb24gb2YgdGhlIEVQRyBzb3VyY2UiOw0KICBtZW51X2VwZ1siX3VzYWdlIl0gICAgICAgID0gIlBNUzogICBVc2UgRVBHIGRhdGEgZnJvbSBQbGV4IG9yIEVtYnkuPGJyPlhFUEc6ICBVc2Ugb2YgZXh0ZXJuYWwgRVBHIGRhdGEgKFhNTFRWKS48YnI+ICAgICAgIFNldmVyYWwgWE1MVFYgc291cmNlcyBwb3NzaWJsZS48YnI+ICAgICAgIEFsbG93cyBlZGl0aW5nIGFuZCBvcmRlciBjaGFubmVscy48YnI+ICAgICAgIE0zVSAvIFhNTFRWIGV4cG9ydCAoSFRUUCBsaW5rIGZvciBJUFRWIGFwcHMpLiINCiAgbWVudV9lcGdbIm5hbWUiXSAgICAgICAgICA9ICJlcGdTb3VyY2UiOw0KICBtZW51X2VwZ1siaWQiXSAgICAgICAgICAgID0gImVwZ1NvdXJjZSI7DQogIG1lbnVfZXBnWyJ2YWx1ZSJdICAgICAgICAgPSBtZW51X2VwZ1sibmFtZSJdOw0KICBtZW51X2VwZ1sicGxhY2Vob2xkZXIiXSAgID0gIkVQRyBzb3VyY2UiOw0KICBtZW51X2VwZ1sib25jbGljayJdICAgICAgID0gImphdmFzY3JpcHQ6IHRvZ2dsZU1lbnUodGhpcyk7IjsNCiAgbWVudV9lcGdbImNsYXNzIl0gICAgICAgICA9ICJtZW51LW5vdEFjdGl2ZSI7DQogIG1lbnVfZXBnWyJfb3B0aW9uVmFsdWVzIl0gPSBuZXcgQXJyYXkoIlBNUyIsICJYRVBHIik7DQoNCiAgdmFyIG1lbnVfeGVwZyA9IG5ldyBPYmplY3QoKTsNCiAgbWVudV94ZXBnWyJfZWxlbWVudCJdID0gIkxJIjsNCiAgbWVudV94ZXBnWyJfbWVudVR5cGUiXSAgICAgPSAiY2hlY2tib3giOw0KICBtZW51X3hlcGdbIl9jb25maWdLZXkiXSAgICA9ICJ4dGV2ZUF1dG9VcGRhdGUiOw0KICBtZW51X3hlcGdbIl9sYWJlbCJdICAgICAgICA9ICJBdXRvbWF0aWMgdXBkYXRlIG9mIHhUZVZlIjsNCiAgbWVudV94ZXBnWyJfaGVhZGxpbmUiXSAgICAgPSAiQXV0b21hdGljIHVwZGF0ZSBvZiB4VGVWZSI7DQogIG1lbnVfeGVwZ1siX3VzYWdlIl0gICAgICAgID0gIklmIGEgbmV3IHZlcnNpb24gb2YgeFRlVmUgaXMgYXZhaWxhYmxlLCBpdCB3aWxsIGJlIGF1dG9tYXRpY2FsbHkgaW5zdGFsbGVkLiINCiAgbWVudV94ZXBnWyJuYW1lIl0gICAgICAgICAgPSAieHRldmVBdXRvVXBkYXRlIjsNCiAgbWVudV94ZXBnWyJpZCJdICAgICAgICAgICAgPSAieHRldmVBdXRvVXBkYXRlIjsNCiAgbWVudV94ZXBnWyJ2YWx1ZSJdICAgICAgICAgPSBtZW51X3hlcGdbIm5hbWUiXTsNCiAgbWVudV94ZXBnWyJvbmNsaWNrIl0gICAgICAgPSAiamF2YXNjcmlwdDogdG9nZ2xlTWVudSh0aGlzKTsiOw0KICBtZW51X3hlcGdbImNsYXNzIl0gICAgICAgICA9ICJtZW51LW5vdEFjdGl2ZSI7DQoNCiAgdmFyIG1lbnVfYXV0b0JhY2t1cFBhdGggPSBuZXcgT2JqZWN0KCk7DQogIG1lbnVfYXV0b0JhY2t1cFBhdGhbIl9lbGVtZW50Il0gICA9ICJMSSI7DQogIG1lbnVfYXV0b0JhY2t1cFBhdGhbIl9tZW51VHlwZSJdICA9ICJzaW5nbGVJbnB1dCI7DQogIG1lbnVfYXV0b0JhY2t1cFBhdGhbIl9jb25maWdLZXkiXSA9ICJiYWNrdXAucGF0aCI7DQogIG1lbnVfYXV0b0JhY2t1cFBhdGhbIl9sYWJlbCJdICAgICA9ICJMb2NhdGlvbiBmb3IgYXV0b21hdGljIGJhY2t1cHMiOw0KICBtZW51X2F1dG9CYWNrdXBQYXRoWyJfaGVhZGxpbmUiXSAgPSAiTG9jYXRpb24gZm9yIGF1dG9tYXRpYyBiYWNrdXBzIjsNCiAgbWVudV9hdXRvQmFja3VwUGF0aFsiX3VzYWdlIl0gICAgID0gIkJlZm9yZSBhbnkgdXBkYXRlIG9mIHRoZSBwcm92aWRlciBkYXRhIGJ5IHRoZSBzY2hlZHVsZSwgeFRlVmUgY3JlYXRlcyBhIGJhY2t1cC4gVGhlIHBhdGggZm9yIHRoZSBhdXRvbWF0aWMgYmFja3VwcyBjYW4gYmUgY2hhbmdlZC4geFRlVmUgcmVxdWlyZXMgd3JpdGUgcGVybWlzc2lvbiBmb3IgdGhpcyBmb2xkZXIuIg0KICBtZW51X2F1dG9CYWNrdXBQYXRoWyJuYW1lIl0gICAgICAgPSAiYmFja3VwLnBhdGgiOw0KICBtZW51X2F1dG9CYWNrdXBQYXRoWyJpZCJdICAgICAgICAgPSAiYmFja3VwLnBhdGgiOw0KICBtZW51X2F1dG9CYWNrdXBQYXRoWyJ2YWx1ZSJdICAgICAgPSBtZW51X2F1dG9CYWNrdXBQYXRoWyJuYW1lIl07DQogIG1lbnVfYXV0b0JhY2t1cFBhdGhbIm9uY2xpY2siXSAgICA9ICJqYXZhc2NyaXB0OiB0b2dnbGVNZW51KHRoaXMpOyI7DQogIG1lbnVfYXV0b0JhY2t1cFBhdGhbImNsYXNzIl0gICAgICA9ICJtZW51LW5vdEFjdGl2ZSI7DQoNCiAgdmFyIG1lbnVfYXV0b0JhY2t1cEtlZXAgPSBuZXcgT2JqZWN0KCk7DQogIG1lbnVfYXV0b0JhY2t1cEtlZXBbIl9lbGVtZW50Il0gICA9ICJMSSI7DQogIG1lbnVfYXV0b0JhY2t1cEtlZXBbIl9tZW51VHlwZSJdICA9ICJzZWxlY3QiOw0KICBtZW51X2F1dG9CYWNrdXBLZWVwWyJfY29uZmlnS2V5Il0gPSAiYmFja3VwLmtlZXAiOw0KICBtZW51X2F1dG9CYWNrdXBLZWVwWyJfdGV4dCJdICAgICAgPSAiS2VlcCI7DQogIG1lbnVfYXV0b0JhY2t1cEtlZXBbIl9sYWJlbCJdICAgICA9ICJOdW1iZXIgb2YgYmFja3VwcyB0byBrZWVwIjsNCiAgbWVudV9hdXRvQmFja3VwS2VlcFsiX2hlYWRsaW5lIl0gID0gIk51bWJlciBvZiBiYWNrdXBzIHRvIGtlZXAiOw0KICBtZW51X2F1dG9CYWNrdXBLZWVwWyJfdXNhZ2UiXSAgICAgPSAiIg0KICBtZW51X2F1dG9CYWNrdXBLZWVwWyJuYW1lIl0gICAgICAgPSAiYmFja3VwLmtlZXAiOw0KICBtZW51X2F1dG9CYWNrdXBLZWVwWyJpZCJdICAgICAgICAgPSAiYmFja3VwLmtlZXAiOw0KICBtZW51X2F1dG9CYWNrdXBLZWVwWyJ2YWx1ZSJdICAgICAgPSBtZW51X2F1dG9CYWNrdXBLZWVwWyJuYW1lIl07DQogIG1lbnVfYXV0b0JhY2t1cEtlZXBbIm9uY2xpY2siXSAgICA9ICJqYXZhc2NyaXB0OiB0b2dnbGVNZW51KHRoaXMpOyI7DQogIG1lbnVfYXV0b0JhY2t1cEtlZXBbImNsYXNzIl0gICAgICA9ICJtZW51LW5vdEFjdGl2ZSI7DQoNCiAgdmFyIG9wdGlvblZhbHVlcyA9IG5ldyBBcnJheSg1LCAxMCwgMjAsIDMwLCA0MCwgNTApOw0KICBtZW51X2F1dG9CYWNrdXBLZWVwWyJfb3B0aW9uVmFsdWVzIl0gPSBvcHRpb25WYWx1ZXM7DQoNCg0KICB2YXIgbWVudV9idWZmZXIgPSBuZXcgT2JqZWN0KCk7DQogIG1lbnVfYnVmZmVyWyJfZWxlbWVudCJdID0gIkxJIjsNCiAgbWVudV9idWZmZXJbIl9tZW51VHlwZSJdICAgICA9ICJjaGVja2JveCI7DQogIG1lbnVfYnVmZmVyWyJfY29uZmlnS2V5Il0gICAgPSAiYnVmZmVyIjsNCiAgbWVudV9idWZmZXJbIl9sYWJlbCJdICAgICAgICA9ICJTdHJlYW0gYnVmZmVyaW5nIFtFeHBlcmltZW50YWxdIjsNCiAgbWVudV9idWZmZXJbIl9oZWFkbGluZSJdICAgICA9ICJTdHJlYW0gYnVmZmVyaW5nIFtFeHBlcmltZW50YWxdIjsNCiAgbWVudV9idWZmZXJbIl91c2FnZSJdICAgICAgICA9ICJXaXRoIGFjdGl2YXRlZCBidWZmZXIsIHN0cmVhbXMgY2FuIGJlIHBsYXllZCBhbmQgcmVjb3JkZWQgbW9yZSBmbHVlbnRseS48YnI+VGhlIHN0cmVhbSBpcyBwYXNzZWQgZnJvbSB4VGVWZSB0byBQbGV4IC8gRW1ieSINCiAgbWVudV9idWZmZXJbIm5hbWUiXSAgICAgICAgICA9ICJidWZmZXIiOw0KICBtZW51X2J1ZmZlclsiaWQiXSAgICAgICAgICAgID0gImJ1ZmZlciI7DQogIG1lbnVfYnVmZmVyWyJ2YWx1ZSJdICAgICAgICAgPSBtZW51X2J1ZmZlclsibmFtZSJdOw0KICBtZW51X2J1ZmZlclsib25jbGljayJdICAgICAgID0gImphdmFzY3JpcHQ6IHRvZ2dsZU1lbnUodGhpcyk7IjsNCiAgbWVudV9idWZmZXJbImNsYXNzIl0gICAgICAgICA9ICJtZW51LW5vdEFjdGl2ZSI7DQoNCiAgdmFyIG1lbnVfYXBpID0gbmV3IE9iamVjdCgpOw0KICBtZW51X2FwaVsiX2VsZW1lbnQiXSA9ICJMSSI7DQogIG1lbnVfYXBpWyJfbWVudVR5cGUiXSAgICAgPSAiY2hlY2tib3giOw0KICBtZW51X2FwaVsiX2NvbmZpZ0tleSJdICAgID0gImFwaSI7DQogIG1lbnVfYXBpWyJfbGFiZWwiXSAgICAgICAgPSAiQVBJIGludGVyZmFjZSI7DQogIG1lbnVfYXBpWyJfaGVhZGxpbmUiXSAgICAgPSAiQVBJIGludGVyZmFjZSI7DQogIG1lbnVfYXBpWyJfdXNhZ2UiXSAgICAgICAgPSAnVmlhIEFQSSBpbnRlcmZhY2UgaXQgaXMgcG9zc2libGUgdG8gc2VuZCBjb21tYW5kcyB0byB4VGVWZS4gQVBJIGRvY3VtZW50YXRpb24gaXMgYXZhaWxhYmxlIDxhIGhyZWY9Imh0dHBzOi8veHRldmUuZGU/c2Nyb2xsPWFwaSI+aGVyZTwvYT4gJw0KICAvL21lbnVfYXBpWyJfdXNhZ2UiXSAgICAgICAgPSAnVmlhIEFQSSBpbnRlcmZhY2UgaXQgaXMgcG9zc2libGUgdG8gc2VuZCBjb21tYW5kcyB0byB4VGVWZS4gQVBJIGRvY3VtZW50YXRpb24gaXMgYXZhaWxhYmxlIDxhIGhyZWY9Imh0dHA6Ly9sb2NhbGhvc3Q6MTMxMz9zY3JvbGw9YXBpIj5oZXJlPC9hPiAnDQogIG1lbnVfYXBpWyJuYW1lIl0gICAgICAgICAgPSAiYXBpIjsNCiAgbWVudV9hcGlbImlkIl0gICAgICAgICAgICA9ICJhcGkiOw0KICBtZW51X2FwaVsidmFsdWUiXSAgICAgICAgID0gbWVudV9hcGlbIm5hbWUiXTsNCiAgbWVudV9hcGlbIm9uY2xpY2siXSAgICAgICA9ICJqYXZhc2NyaXB0OiB0b2dnbGVNZW51KHRoaXMpOyI7DQogIG1lbnVfYXBpWyJjbGFzcyJdICAgICAgICAgPSAibWVudS1ub3RBY3RpdmUiOw0KDQogIHZhciBtZW51X2F1dGhlbnRpY2F0aW9uV2ViID0gbmV3IE9iamVjdCgpOw0KICBtZW51X2F1dGhlbnRpY2F0aW9uV2ViWyJfZWxlbWVudCJdID0gIkxJIjsNCiAgbWVudV9hdXRoZW50aWNhdGlvbldlYlsiX21lbnVUeXBlIl0gICAgID0gImNoZWNrYm94IjsNCiAgbWVudV9hdXRoZW50aWNhdGlvbldlYlsiX2NvbmZpZ0tleSJdICAgID0gImF1dGhlbnRpY2F0aW9uLndlYiI7DQogIG1lbnVfYXV0aGVudGljYXRpb25XZWJbIl9sYWJlbCJdICAgICAgICA9ICJVc2VyIGF1dGhlbnRpY2F0aW9uIjsNCiAgbWVudV9hdXRoZW50aWNhdGlvbldlYlsiX2hlYWRsaW5lIl0gICAgID0gIlVzZXIgYXV0aGVudGljYXRpb24iOw0KICBtZW51X2F1dGhlbnRpY2F0aW9uV2ViWyJfdXNhZ2UiXSAgICAgICAgPSAiQWNjZXNzIHRvIHhUZVZlIHJlcXVpcmVzIGF1dGhlbnRpY2F0aW9uLiINCiAgbWVudV9hdXRoZW50aWNhdGlvbldlYlsibmFtZSJdICAgICAgICAgID0gImF1dGhlbnRpY2F0aW9uLndlYiI7DQogIG1lbnVfYXV0aGVudGljYXRpb25XZWJbImlkIl0gICAgICAgICAgICA9ICJhdXRoZW50aWNhdGlvbi53ZWIiOw0KICBtZW51X2F1dGhlbnRpY2F0aW9uV2ViWyJ2YWx1ZSJdICAgICAgICAgPSBtZW51X2F1dGhlbnRpY2F0aW9uV2ViWyJuYW1lIl07DQogIG1lbnVfYXV0aGVudGljYXRpb25XZWJbIm9uY2xpY2siXSAgICAgICA9ICJqYXZhc2NyaXB0OiB0b2dnbGVNZW51KHRoaXMpOyI7DQogIG1lbnVfYXV0aGVudGljYXRpb25XZWJbImNsYXNzIl0gICAgICAgICA9ICJtZW51LW5vdEFjdGl2ZSI7DQogIA0KICB2YXIgbWVudV9hdXRoZW50aWNhdGlvblBtcyA9IG5ldyBPYmplY3QoKTsNCiAgbWVudV9hdXRoZW50aWNhdGlvblBtc1siX2VsZW1lbnQiXSA9ICJMSSI7DQogIG1lbnVfYXV0aGVudGljYXRpb25QbXNbIl9tZW51VHlwZSJdICAgICA9ICJjaGVja2JveCI7DQogIG1lbnVfYXV0aGVudGljYXRpb25QbXNbIl9jb25maWdLZXkiXSAgICA9ICJhdXRoZW50aWNhdGlvbi5wbXMiOw0KICBtZW51X2F1dGhlbnRpY2F0aW9uUG1zWyJfbGFiZWwiXSAgICAgICAgPSAiUGxleCBhdXRoZW50aWNhdGlvbi4iOw0KICBtZW51X2F1dGhlbnRpY2F0aW9uUG1zWyJfaGVhZGxpbmUiXSAgICAgPSAiUGxleCBhdXRoZW50aWNhdGlvbi4iOw0KICBtZW51X2F1dGhlbnRpY2F0aW9uUG1zWyJfdXNhZ2UiXSAgICAgICAgPSAiUGxleCByZXF1ZXN0cyBhcmUgb25seSBwb3NzaWJsZSB3aXRoIGF1dGhlbnRpY2F0aW9uLjxicj5XYXJuaW5nISEhIEFmdGVyIGFjdGl2YXRpbmcgdGhpcyBmdW5jdGlvbiB4VGVWZSBtdXN0IGJlIGRlbGV0ZSBpbiB0aGUgUE1TIERWUiBzZXR0aW5ncyBhbmQgc2V0IHVwIGFnYWluLiINCiAgbWVudV9hdXRoZW50aWNhdGlvblBtc1sibmFtZSJdICAgICAgICAgID0gImF1dGhlbnRpY2F0aW9uLnBtcyI7DQogIG1lbnVfYXV0aGVudGljYXRpb25QbXNbImlkIl0gICAgICAgICAgICA9ICJhdXRoZW50aWNhdGlvbi5wbXMiOw0KICBtZW51X2F1dGhlbnRpY2F0aW9uUG1zWyJ2YWx1ZSJdICAgICAgICAgPSBtZW51X2F1dGhlbnRpY2F0aW9uUG1zWyJuYW1lIl07DQogIG1lbnVfYXV0aGVudGljYXRpb25QbXNbIm9uY2xpY2siXSAgICAgICA9ICJqYXZhc2NyaXB0OiB0b2dnbGVNZW51KHRoaXMpOyI7DQogIG1lbnVfYXV0aGVudGljYXRpb25QbXNbImNsYXNzIl0gICAgICAgICA9ICJtZW51LW5vdEFjdGl2ZSI7DQogIA0KICB2YXIgbWVudV9hdXRoZW50aWNhdGlvbk0zdSA9IG5ldyBPYmplY3QoKTsNCiAgbWVudV9hdXRoZW50aWNhdGlvbk0zdVsiX2VsZW1lbnQiXSA9ICJMSSI7DQogIG1lbnVfYXV0aGVudGljYXRpb25NM3VbIl9tZW51VHlwZSJdICAgICA9ICJjaGVja2JveCI7DQogIG1lbnVfYXV0aGVudGljYXRpb25NM3VbIl9jb25maWdLZXkiXSAgICA9ICJhdXRoZW50aWNhdGlvbi5tM3UiOw0KICBtZW51X2F1dGhlbnRpY2F0aW9uTTN1WyJfbGFiZWwiXSAgICAgICAgPSAiTTNVIGF1dGhlbnRpY2F0aW9uLiI7DQogIG1lbnVfYXV0aGVudGljYXRpb25NM3VbIl9oZWFkbGluZSJdICAgICA9ICJNM1UgYXV0aGVudGljYXRpb24uIjsNCiAgbWVudV9hdXRoZW50aWNhdGlvbk0zdVsiX3VzYWdlIl0gICAgICAgID0gIkRvd25sb2FkaW5nIHRoZSBNM1UgZmlsZSB2aWEgYW4gSFRUUCByZXF1ZXN0IGlzIG9ubHkgcG9zc2libGUgd2l0aCBhdXRoZW50aWNhdGlvbi4iDQogIG1lbnVfYXV0aGVudGljYXRpb25NM3VbIm5hbWUiXSAgICAgICAgICA9ICJhdXRoZW50aWNhdGlvbi5tM3UiOw0KICBtZW51X2F1dGhlbnRpY2F0aW9uTTN1WyJpZCJdICAgICAgICAgICAgPSAiYXV0aGVudGljYXRpb24ubTN1IjsNCiAgbWVudV9hdXRoZW50aWNhdGlvbk0zdVsidmFsdWUiXSAgICAgICAgID0gbWVudV9hdXRoZW50aWNhdGlvbk0zdVsibmFtZSJdOw0KICBtZW51X2F1dGhlbnRpY2F0aW9uTTN1WyJvbmNsaWNrIl0gICAgICAgPSAiamF2YXNjcmlwdDogdG9nZ2xlTWVudSh0aGlzKTsiOw0KICBtZW51X2F1dGhlbnRpY2F0aW9uTTN1WyJjbGFzcyJdICAgICAgICAgPSAibWVudS1ub3RBY3RpdmUiOw0KICANCg0KICB2YXIgbWVudV9hdXRoZW50aWNhdGlvblhtbCA9IG5ldyBPYmplY3QoKTsNCiAgbWVudV9hdXRoZW50aWNhdGlvblhtbFsiX2VsZW1lbnQiXSA9ICJMSSI7DQogIG1lbnVfYXV0aGVudGljYXRpb25YbWxbIl9tZW51VHlwZSJdICAgICA9ICJjaGVja2JveCI7DQogIG1lbnVfYXV0aGVudGljYXRpb25YbWxbIl9jb25maWdLZXkiXSAgICA9ICJhdXRoZW50aWNhdGlvbi54bWwiOw0KICBtZW51X2F1dGhlbnRpY2F0aW9uWG1sWyJfbGFiZWwiXSAgICAgICAgPSAiWEVQRyBhdXRoZW50aWNhdGlvbiI7DQogIG1lbnVfYXV0aGVudGljYXRpb25YbWxbIl9oZWFkbGluZSJdICAgICA9ICJYRVBHIGF1dGhlbnRpY2F0aW9uIjsNCiAgbWVudV9hdXRoZW50aWNhdGlvblhtbFsiX3VzYWdlIl0gICAgICAgID0gIkRvd25sb2FkaW5nIHRoZSBYRVBHIChYTUxUVikgZmlsZSB2aWEgYW4gSFRUUCByZXF1ZXN0IGlzIG9ubHkgcG9zc2libGUgd2l0aCBhdXRoZW50aWNhdGlvbi4iDQogIG1lbnVfYXV0aGVudGljYXRpb25YbWxbIm5hbWUiXSAgICAgICAgICA9ICJhdXRoZW50aWNhdGlvbi54bWwiOw0KICBtZW51X2F1dGhlbnRpY2F0aW9uWG1sWyJpZCJdICAgICAgICAgICAgPSAiYXV0aGVudGljYXRpb24ueG1sIjsNCiAgbWVudV9hdXRoZW50aWNhdGlvblhtbFsidmFsdWUiXSAgICAgICAgID0gbWVudV9hdXRoZW50aWNhdGlvblhtbFsibmFtZSJdOw0KICBtZW51X2F1dGhlbnRpY2F0aW9uWG1sWyJvbmNsaWNrIl0gICAgICAgPSAiamF2YXNjcmlwdDogdG9nZ2xlTWVudSh0aGlzKTsiOw0KICBtZW51X2F1dGhlbnRpY2F0aW9uWG1sWyJjbGFzcyJdICAgICAgICAgPSAibWVudS1ub3RBY3RpdmUiOw0KDQogIHZhciBtZW51X2F1dGhlbnRpY2F0aW9uQXBpID0gbmV3IE9iamVjdCgpOw0KICBtZW51X2F1dGhlbnRpY2F0aW9uQXBpWyJfZWxlbWVudCJdID0gIkxJIjsNCiAgbWVudV9hdXRoZW50aWNhdGlvbkFwaVsiX21lbnVUeXBlIl0gICAgID0gImNoZWNrYm94IjsNCiAgbWVudV9hdXRoZW50aWNhdGlvbkFwaVsiX2NvbmZpZ0tleSJdICAgID0gImF1dGhlbnRpY2F0aW9uLmFwaSI7DQogIG1lbnVfYXV0aGVudGljYXRpb25BcGlbIl9sYWJlbCJdICAgICAgICA9ICJBUEkgYXV0aGVudGljYXRpb24iOw0KICBtZW51X2F1dGhlbnRpY2F0aW9uQXBpWyJfaGVhZGxpbmUiXSAgICAgPSAiQVBJIGF1dGhlbnRpY2F0aW9uIjsNCiAgbWVudV9hdXRoZW50aWNhdGlvbkFwaVsiX3VzYWdlIl0gICAgICAgID0gIkFjY2VzcyB0byB0aGUgQVBJIGludGVyZmFjZSBpcyBvbmx5IHBvc3NpYmxlIHdpdGggYXV0aGVudGljYXRpb24uIg0KICBtZW51X2F1dGhlbnRpY2F0aW9uQXBpWyJuYW1lIl0gICAgICAgICAgPSAiYXV0aGVudGljYXRpb24uYXBpIjsNCiAgbWVudV9hdXRoZW50aWNhdGlvbkFwaVsiaWQiXSAgICAgICAgICAgID0gImF1dGhlbnRpY2F0aW9uLmFwaSI7DQogIG1lbnVfYXV0aGVudGljYXRpb25BcGlbInZhbHVlIl0gICAgICAgICA9IG1lbnVfYXV0aGVudGljYXRpb25BcGlbIm5hbWUiXTsNCiAgbWVudV9hdXRoZW50aWNhdGlvbkFwaVsib25jbGljayJdICAgICAgID0gImphdmFzY3JpcHQ6IHRvZ2dsZU1lbnUodGhpcyk7IjsNCiAgbWVudV9hdXRoZW50aWNhdGlvbkFwaVsiY2xhc3MiXSAgICAgICAgID0gIm1lbnUtbm90QWN0aXZlIjsNCiAgDQogIA0KICAvLyBNYWluIG1lbnUNCiAgbWVudVsxMF0gPSBtZW51X20zdTsNCg0KICBzd2l0Y2goY29uZmlnWyJlcGdTb3VyY2UiXSkgew0KICAgIGNhc2UgIlBNUyI6DQogICAgICBtZW51WzIwXSA9IG1lbnVfaWQ7DQogICAgICBicmVhazsNCiAgICANCiAgICBjYXNlICJYTUxUViI6DQogICAgICBtZW51WzQwXSA9IG1lbnVfeG1sdHY7DQogICAgICBicmVhazsNCg0KICAgIGNhc2UgIlhFUEciOg0KICAgICAgbWVudVs0MF0gPSBtZW51X3htbHR2Ow0KICAgICAgbWVudVs1MF0gPSBtZW51X21hcHBpbmc7DQogICAgICBicmVhazsNCiAgfQ0KICANCiAgbWVudVszMF0gPSBtZW51X2ZpbHRlcjsNCiAgDQogIGlmIChjb25maWdbImF1dGhlbnRpY2F0aW9uLndlYiJdID09IHRydWUpIHsNCiAgICBtZW51WzYwXSA9IG1lbnVfdXNlcnM7DQogIH0NCg0KICBtZW51WzcwXSA9IG1lbnVfc2V0dGluZ3M7DQogIG1lbnVbODBdID0gbWVudV9sb2c7DQogIGlmIChjb25maWdbImF1dGhlbnRpY2F0aW9uLndlYiJdID09IHRydWUpIHsNCiAgICBtZW51WzEwMF0gPSBtZW51X2xvZ291dDsNCiAgfSANCiAgDQoNCiAgLy8gU3ViLU1lbnUNCg0KICBzdWJNZW51WzcwMV0gPSBtZW51X3NjaGVkdWxlOw0KICBzdWJNZW51WzcwMl0gPSBtZW51X2ZpbGVzVXBkYXRlOw0KICBzdWJNZW51WzcwM10gPSBtZW51X3R1bmVyOw0KICBzdWJNZW51WzcwNF0gPSBtZW51X2VwZzsNCiAgc3ViTWVudVs3MDVdID0gbWVudV94ZXBnOw0KICBzdWJNZW51WzcwNl0gPSBtZW51X2F1dG9CYWNrdXBQYXRoOw0KICBzdWJNZW51WzcwN10gPSBtZW51X2F1dG9CYWNrdXBLZWVwOw0KICBzdWJNZW51WzcwOF0gPSBtZW51X2J1ZmZlcjsNCiAgDQogIHN1Yk1lbnVbNzEwXSA9IG1lbnVfYXV0aGVudGljYXRpb25XZWI7DQogIA0KICBpZiAoY29uZmlnWyJhdXRoZW50aWNhdGlvbi53ZWIiXSA9PSB0cnVlKSB7DQogICAgc3ViTWVudVs3MTFdID0gbWVudV9hdXRoZW50aWNhdGlvblBtczsNCiAgICBzdWJNZW51WzcxMl0gPSBtZW51X2F1dGhlbnRpY2F0aW9uTTN1Ow0KICAgIHN1Yk1lbnVbNzEzXSA9IG1lbnVfYXV0aGVudGljYXRpb25YbWw7DQogICAgc3ViTWVudVs3MTRdID0gbWVudV9hdXRoZW50aWNhdGlvbkFwaTsNCiAgfQ0KDQogIHN1Yk1lbnVbNzk5XSA9IG1lbnVfYXBpOw0KDQogIA0KDQogIHJldHVybg0KfQ0KDQpmdW5jdGlvbiBjcmVhdGVNZW51KCkgew0KDQogIHNob3dFbGVtZW50KCJwb3B1cCIsIGZhbHNlKTsNCg0KICAvL2NvbnNvbGUubG9nKGNvbmZpZyk7DQogIHNldE1lbnVJdGVtKCk7DQogIHZhciBtZW51SXRlbXMgPSBnZXRPYmpLZXlzKG1lbnUpDQogIHZhciBuYXYgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgiTkFWIilbMF07DQogIG5hdi5pbm5lckhUTUwgPSAiIjsNCiAgdmFyIG5ld0l0ZW0gPSBuZXcgT2JqZWN0KCk7DQoNCiAgZm9yICh2YXIgaSA9IDA7IGkgPCBtZW51SXRlbXMubGVuZ3RoOyBpKyspIHsNCg0KICAgIA0KICAgIHZhciBuZXdJdGVtID0gbWVudVttZW51SXRlbXNbaV1dOw0KICAgIG5ld0l0ZW1bImlkIl0gPSBtZW51SXRlbXNbaV07DQoNCiAgICANCiAgICBzd2l0Y2gobmV3SXRlbS5oYXNPd25Qcm9wZXJ0eSgiX2ljb24iKSkgew0KICAgICAgY2FzZSB0cnVlOiANCiAgICAgICAgdmFyIGl0ZW1UZXh0ID0gbmV3SXRlbVsiX3RleHQiXTsNCiAgICAgICAgZGVsZXRlIG5ld0l0ZW1bIl90ZXh0Il0NCiAgICAgICAgbmF2LmFwcGVuZENoaWxkKGNyZWF0ZUVsZW1lbnQobmV3SXRlbSkpOw0KICAgICAgICBuZXdJdGVtWyJfdGV4dCJdID0gaXRlbVRleHQ7DQogICAgICAgIHZhciBuZXdJY29uID0gbmV3IE9iamVjdCgpOw0KICAgICAgICBuZXdJY29uWyJfZWxlbWVudCJdID0gIklNRyI7DQogICAgICAgIG5ld0ljb25bInNyYyJdID0gbmV3SXRlbVsiX2ljb24iXTsNCg0KICAgICAgICB2YXIgY3VycmVudEVsZW1lbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChtZW51SXRlbXNbaV0pOw0KICAgICAgICBjdXJyZW50RWxlbWVudC5hcHBlbmRDaGlsZChjcmVhdGVFbGVtZW50KG5ld0ljb24pKTsNCg0KDQogICAgICAgIHZhciB0ZXh0ID0gbmV3IE9iamVjdCgpOw0KICAgICAgICB0ZXh0WyJfZWxlbWVudCJdID0gIlAiDQogICAgICAgIHRleHRbIl90ZXh0Il0gPSBpdGVtVGV4dDsNCiAgICAgICAgdGV4dFsiY2xhc3MiXSA9ICJuYXYtdGV4dCINCiAgICAgICAgY3VycmVudEVsZW1lbnQuYXBwZW5kQ2hpbGQoY3JlYXRlRWxlbWVudCh0ZXh0KSk7DQogICAgICAgIGJyZWFrOw0KDQogICAgICBkZWZhdWx0Og0KICAgICAgICBuYXYuYXBwZW5kQ2hpbGQoY3JlYXRlRWxlbWVudChuZXdJY29uKSk7DQogICAgICAgIGJyZWFrOw0KICAgIH0NCg0KICB9DQogIGlmIChhY3RpdmVNZW51ICE9IHVuZGVmaW5lZCkgew0KICAgIC8vY29uc29sZS5sb2coYWN0aXZlTWVudSk7DQogICAgdG9nZ2xlTWVudShhY3RpdmVNZW51KTsNCiAgfQ0KDQogIHJldHVybg0KfQ0KDQpmdW5jdGlvbiB0b2dnbGVNZW51KGVsbSkgew0KICAvL3Nob3dTdHJlYW1zKGZhbHNlKTsNCiAgY2xlYXJJbnRlcnZhbChsb2dJbnRlcnZhbCkNCiAgYWN0aXZlTWVudSA9IGVsbTsNCiAgdmFyIGl0ZW0gPSBtZW51W2VsbS5pZF0NCiAgdmFyIGRpdiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzZXR0aW5ncyIpOw0KICBkaXYuaW5uZXJIVE1MID0gIiI7DQogIA0KICAvLyBTZXQgSGVhZGxpbmUNCiAgdmFyIGhlYWRsaW5lID0gbmV3IE9iamVjdCgpOw0KICBoZWFkbGluZVsiX2VsZW1lbnQiXSA9ICJINCI7DQogIGhlYWRsaW5lWyJfdGV4dCJdID0gaXRlbVsiX2hlYWRsaW5lIl07DQogIGRpdi5hcHBlbmRDaGlsZChjcmVhdGVFbGVtZW50KGhlYWRsaW5lKSk7DQoNCiAgLy8gU3ViLU1lbnUNCiAgaWYgKGl0ZW0uaGFzT3duUHJvcGVydHkoIl9zdWJNZW51IikgPT0gdHJ1ZSkgew0KICAgIG9wZW5TdWJNZW51KGl0ZW0pOw0KICAgIHJldHVybg0KICB9DQoNCiAgLy8gTWFwcGluZywgVXNlcnMsIExvZywgRmlsZXMNCiAgc3dpdGNoKGl0ZW1bIl9jb25maWdLZXkiXSkgew0KICAgIGNhc2UgIm1hcHBpbmciOiAgICAgb3Blbk1hcHBpbmdFZGl0b3IoaXRlbSk7IHJldHVybjsgYnJlYWs7DQogICAgY2FzZSAidXNlcnMiOiAgICAgICBvcGVuVXNlcnMoaXRlbSk7IHJldHVybjsgYnJlYWs7DQogICAgY2FzZSAibG9nIjogICAgICAgICBzaG93TG9nKGl0ZW0pOyByZXR1cm47IGJyZWFrOw0KICAgIGNhc2UgImZpbGVzLm0zdSI6ICAgb3BlbkZpbGVzKGl0ZW0sICJtM3UiKTsgcmV0dXJuOyBicmVhazsNCiAgICBjYXNlICJmaWxlcy54bWx0diI6IG9wZW5GaWxlcyhpdGVtLCAieG1sdHYiKTsgcmV0dXJuOyBicmVhazsNCg0KICAgIGNhc2UgImZpbHRlciI6ICAgICAgc2hvd1N0cmVhbXModHJ1ZSk7IGJyZWFrOw0KICB9DQoNCiANCg0KICB2YXIgbmV3SFIgPSBuZXcgT2JqZWN0KCk7DQogIG5ld0hSWyJfZWxlbWVudCJdID0gIkhSIg0KICBkaXYuYXBwZW5kQ2hpbGQoY3JlYXRlRWxlbWVudChuZXdIUikpOw0KICANCiAgdmFyIG5ld0VudHJ5ID0gbmV3IE9iamVjdCgpOw0KICBuZXdFbnRyeVsiX2VsZW1lbnQiXSAgPSAiSU5QVVQiOw0KICBuZXdFbnRyeVsidHlwZSJdID0gImJ1dHRvbiI7DQogIC8vbmV3RW50cnlbImNsYXNzIl0gPSAic2F2ZSI7DQogIG5ld0VudHJ5WyJ2YWx1ZSJdID0gIlNhdmUiOw0KICBuZXdFbnRyeVsib25jbGljayJdID0gInNhdmVEYXRhMignc2V0dGluZ3MnKSINCiAgZGl2LmFwcGVuZENoaWxkKGNyZWF0ZUVsZW1lbnQobmV3RW50cnkpKTsNCg0KDQogIHZhciBuZXdXcmFwcGVyID0gbmV3IE9iamVjdCgpOw0KICBuZXdXcmFwcGVyWyJfZWxlbWVudCJdICA9ICJESVYiOw0KICBuZXdXcmFwcGVyWyJpZCJdICAgICAgICA9ICJib3gtd3JhcHBlciI7DQogIGRpdi5hcHBlbmRDaGlsZChjcmVhdGVFbGVtZW50KG5ld1dyYXBwZXIpKTsNCg0KICBkaXYgPSBkaXYubGFzdENoaWxkOw0KICANCiAgZGl2LmFwcGVuZENoaWxkKGNyZWF0ZU1lbnVJdGVtKGl0ZW0pKQ0KDQogIC8vIHVzYWdlIEluZm8gIA0KICBzd2l0Y2gobWVudVthY3RpdmVNZW51LmlkXS5oYXNPd25Qcm9wZXJ0eSgiX3VzYWdlIikpIHsNCiAgICBjYXNlIHRydWU6IA0KICAgICAgdmFyIHVzYWdlSXRlbSA9IG5ldyBPYmplY3QoKTsNCiAgICAgIHVzYWdlSXRlbVsiX2VsZW1lbnQiXSA9ICJQUkUiDQogICAgICB1c2FnZUl0ZW1bIl90ZXh0Il0gICAgPSBtZW51W2FjdGl2ZU1lbnUuaWRdWyJfdXNhZ2UiXTsNCiAgICAgIGRpdi5hcHBlbmRDaGlsZChjcmVhdGVFbGVtZW50KHVzYWdlSXRlbSkpOw0KICB9DQogIA0KICBjYWxjdWxhdGVXcmFwcGVySGVpZ2h0KCk7DQoNCn0NCg0KZnVuY3Rpb24gY3JlYXRlTWVudUl0ZW0oaXRlbSkgew0KICB2YXIgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIkRJViIpOw0KICBzd2l0Y2goaXRlbVsiX21lbnVUeXBlIl0pIHsNCiAgICBjYXNlICJpbnB1dEFycmF5IjoNCiAgICAgIGlmIChjb25maWcuaGFzT3duUHJvcGVydHkoaXRlbVsiX2NvbmZpZ0tleSJdKSA9PSB0cnVlKSB7DQogICAgICAgIHZhciB2YWx1ZSA9IGNvbmZpZ1tpdGVtWyJfY29uZmlnS2V5Il1dOw0KICAgICAgfSBlbHNlIHsNCiAgICAgICAgdmFyIHZhbHVlID0gbmV3IEFycmF5KCk7DQogICAgICB9DQogICAgICANCiAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdmFsdWUubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgdmFyIG5ld0VudHJ5ID0gbmV3IE9iamVjdCgpOw0KICAgICAgICBuZXdFbnRyeSA9IGl0ZW0NCiAgICAgICAgZGVsZXRlIG5ld0VudHJ5WyJvbmNsaWNrIl07DQogICAgICAgIG5ld0VudHJ5WyJfZWxlbWVudCJdICA9ICJJTlBVVCI7DQogICAgICAgIG5ld0VudHJ5WyJ2YWx1ZSJdICAgICA9IHZhbHVlW2ldOw0KICAgICAgICBuZXdFbnRyeVsidHlwZSJdICAgICAgPSAic2VhcmNoIjsNCiAgICAgICAgbmV3RW50cnlbImRhdGEtbWVudXR5cGUiXSA9IGl0ZW1bIl9tZW51VHlwZSJdOw0KICAgICAgICBuZXdFbnRyeVsiZGF0YS1tZW51a2V5Il0gPSBpdGVtWyJfY29uZmlnS2V5Il07DQogICAgICAgIGVsZW1lbnQuYXBwZW5kQ2hpbGQoY3JlYXRlRWxlbWVudChuZXdFbnRyeSkpOw0KDQogICAgICB9DQogICAgICAvLyBOZXcgZW50cnkgZm9yIGFycmF5DQogICAgICB2YXIgbmV3RW50cnkgPSBuZXcgT2JqZWN0KCk7DQogICAgICBuZXdFbnRyeVsiX2VsZW1lbnQiXSAgICAgID0gIklOUFVUIjsNCiAgICAgIG5ld0VudHJ5WyJ0eXBlIl0gICAgICAgICAgPSAic2VhcmNoIjsNCiAgICAgIG5ld0VudHJ5WyJuYW1lIl0gICAgICAgICAgPSBpdGVtWyJuYW1lIl07DQogICAgICBuZXdFbnRyeVsicGxhY2Vob2xkZXIiXSAgID0gaXRlbVsicGxhY2Vob2xkZXIiXTsNCiAgICAgIG5ld0VudHJ5WyJ2YWx1ZSJdICAgICAgICAgPSAiIjsNCiAgICAgIG5ld0VudHJ5WyJkYXRhLW1lbnV0eXBlIl0gPSBpdGVtWyJfbWVudVR5cGUiXTsNCiAgICAgIG5ld0VudHJ5WyJkYXRhLW1lbnVrZXkiXSAgPSBpdGVtWyJfY29uZmlnS2V5Il07DQogICAgICBlbGVtZW50LmFwcGVuZENoaWxkKGNyZWF0ZUVsZW1lbnQobmV3RW50cnkpKTsNCiAgICAgIGJyZWFrOw0KICANCiAgICBjYXNlICJzaW5nbGVJbnB1dCI6DQogICAgICB2YXIgdmFsdWUgPSBjb25maWdbaXRlbVsiX2NvbmZpZ0tleSJdXTsNCiAgICAgIGlmICh2YWx1ZSA9PSB1bmRlZmluZWQpIHsNCiAgICAgICAgdmFsdWUgPSAiIjsNCiAgICAgIH0NCiAgICAgIHZhciBuZXdFbnRyeSA9IG5ldyBPYmplY3QoKTsNCiAgICAgIG5ld0VudHJ5ID0gaXRlbTsNCiAgICAgIGRlbGV0ZSBuZXdFbnRyeVsib25jbGljayJdOw0KICAgICAgbmV3RW50cnlbIl9lbGVtZW50Il0gID0gIklOUFVUIjsNCiAgICAgIG5ld0VudHJ5WyJ2YWx1ZSJdICAgICA9IHZhbHVlOw0KICAgICAgbmV3RW50cnlbInR5cGUiXSAgICAgID0gInNlYXJjaCI7DQogICAgICBuZXdFbnRyeVsiZGF0YS1tZW51dHlwZSJdID0gaXRlbVsiX21lbnVUeXBlIl07DQogICAgICBuZXdFbnRyeVsiZGF0YS1tZW51a2V5Il0gPSBpdGVtWyJfY29uZmlnS2V5Il07DQogICAgICBlbGVtZW50LmFwcGVuZENoaWxkKGNyZWF0ZUVsZW1lbnQobmV3RW50cnkpKTsNCiAgICAgIGJyZWFrOw0KDQogICAgY2FzZSAiY2hlY2tib3giOg0KICAgICAgdmFyIHZhbHVlID0gY29uZmlnW2l0ZW1bIl9jb25maWdLZXkiXV07DQogICAgICBpZiAodmFsdWUgPT0gdW5kZWZpbmVkKSB7DQogICAgICAgIHZhbHVlID0gZmFsc2U7DQogICAgICB9DQogICAgICB2YXIgbmV3RW50cnkgPSBuZXcgT2JqZWN0KCk7DQogICAgICBuZXdFbnRyeSA9IGl0ZW07DQogICAgICBkZWxldGUgbmV3RW50cnlbIm9uY2xpY2siXTsNCiAgICAgIG5ld0VudHJ5WyJfZWxlbWVudCJdICA9ICJJTlBVVCI7DQogICAgICBuZXdFbnRyeVsidmFsdWUiXSAgICAgPSB2YWx1ZTsNCiAgICAgIG5ld0VudHJ5WyJ0eXBlIl0gICAgICA9ICJjaGVja2JveCI7DQogICAgICBuZXdFbnRyeVsiZGF0YS1tZW51dHlwZSJdID0gaXRlbVsiX21lbnVUeXBlIl07DQogICAgICBuZXdFbnRyeVsiZGF0YS1tZW51a2V5Il0gPSBpdGVtWyJfY29uZmlnS2V5Il07DQogICAgICBlbGVtZW50LmFwcGVuZENoaWxkKGNyZWF0ZUVsZW1lbnQobmV3RW50cnkpKTsNCiAgICAgIGVsZW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIklOUFVUIilbMF0uY2hlY2tlZCA9IHZhbHVlOw0KICAgICAgYnJlYWs7DQogICAgDQogICAgY2FzZSAic2VsZWN0IjoNCiAgICAgIHZhciB2YWx1ZSA9IGNvbmZpZ1tpdGVtWyJfY29uZmlnS2V5Il1dOw0KICAgICAgdmFyIG5ld0VudHJ5ID0gbmV3IE9iamVjdCgpOw0KICAgICAgbmV3RW50cnkgPSBpdGVtOw0KICAgICAgZGVsZXRlIG5ld0VudHJ5WyJvbmNsaWNrIl0NCiAgICAgIG5ld0VudHJ5WyJfZWxlbWVudCJdICA9ICJTRUxFQ1QiOw0KICAgICAgZWxlbWVudC5hcHBlbmRDaGlsZChjcmVhdGVFbGVtZW50KG5ld0VudHJ5KSk7DQogICAgICB2YXIgc2VsZWN0RWxlbWVudCA9IGVsZW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlNFTEVDVCIpWzBdOw0KICAgICAgdmFyIHZhbHVlcyA9IGl0ZW1bIl9vcHRpb25WYWx1ZXMiXTsNCiAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdmFsdWVzLmxlbmd0aDsgaSsrKSB7DQogICAgICAgIHZhciBuZXdFbnRyeSA9IG5ldyBPYmplY3Q7DQogICAgICAgIG5ld0VudHJ5WyJfZWxlbWVudCJdICA9ICJPUFRJT04iOw0KICAgICAgICBuZXdFbnRyeVsiX3RleHQiXSAgICAgPSBpdGVtWyJfdGV4dCJdICsgIjogIiArIHZhbHVlc1tpXTsNCiAgICAgICAgbmV3RW50cnlbInZhbHVlIl0gICAgID0gdmFsdWVzW2ldOw0KICAgICAgICBzZWxlY3RFbGVtZW50LmFwcGVuZENoaWxkKGNyZWF0ZUVsZW1lbnQobmV3RW50cnkpKTsNCiAgICAgIH0NCiAgICAgIHNlbGVjdEVsZW1lbnQudmFsdWUgPSB2YWx1ZTsNCiAgICAgIGJyZWFrOw0KICAgIA0KICB9DQogIHJldHVybiBlbGVtZW50Ow0KfQ0KDQpmdW5jdGlvbiBvcGVuU3ViTWVudShpdGVtKSB7DQogIHZhciBlbnRyeXMgPSBpdGVtWyJfc3ViTWVudSJdLnNwbGl0KCIsIik7DQogIHZhciBkaXYgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic2V0dGluZ3MiKTsNCg0KICB2YXIgbmV3SFIgPSBuZXcgT2JqZWN0KCk7DQogIG5ld0hSWyJfZWxlbWVudCJdID0gIkhSIg0KICBkaXYuYXBwZW5kQ2hpbGQoY3JlYXRlRWxlbWVudChuZXdIUikpOw0KICANCiAgdmFyIG5ld0VudHJ5ID0gbmV3IE9iamVjdCgpOw0KICBuZXdFbnRyeVsiX2VsZW1lbnQiXSAgPSAiSU5QVVQiOw0KICBuZXdFbnRyeVsidHlwZSJdID0gImJ1dHRvbiI7DQogIC8vbmV3RW50cnlbImNsYXNzIl0gPSAic2F2ZSI7DQogIG5ld0VudHJ5WyJ2YWx1ZSJdID0gIlNhdmUiOw0KICBuZXdFbnRyeVsib25jbGljayJdID0gInNhdmVEYXRhMignc2V0dGluZ3MnKSINCiAgZGl2LmFwcGVuZENoaWxkKGNyZWF0ZUVsZW1lbnQobmV3RW50cnkpKTsNCg0KICBpZiAoaXRlbVsiX2NvbmZpZ0tleSJdID09ICJzZXR0aW5ncyIpIHsNCiAgICB2YXIgbmV3RW50cnkgPSBuZXcgT2JqZWN0KCk7DQogICAgbmV3RW50cnlbIl9lbGVtZW50Il0gID0gIklOUFVUIjsNCiAgICBuZXdFbnRyeVsidHlwZSJdID0gImJ1dHRvbiI7DQogICAgLy9uZXdFbnRyeVsiY2xhc3MiXSA9ICJzYXZlIjsNCiAgICBuZXdFbnRyeVsidmFsdWUiXSA9ICJCYWNrdXAiOw0KICAgIG5ld0VudHJ5WyJvbmNsaWNrIl0gPSAieHRldmVCYWNrdXAoKSINCiAgICBkaXYuYXBwZW5kQ2hpbGQoY3JlYXRlRWxlbWVudChuZXdFbnRyeSkpOw0KICB9DQoNCiAgaWYgKGl0ZW1bIl9jb25maWdLZXkiXSA9PSAic2V0dGluZ3MiKSB7DQogICAgdmFyIG5ld0VudHJ5ID0gbmV3IE9iamVjdCgpOw0KICAgIG5ld0VudHJ5WyJfZWxlbWVudCJdICA9ICJJTlBVVCI7DQogICAgbmV3RW50cnlbInR5cGUiXSA9ICJidXR0b24iOw0KICAgIC8vbmV3RW50cnlbImNsYXNzIl0gPSAic2F2ZSI7DQogICAgbmV3RW50cnlbInZhbHVlIl0gPSAiUmVzdG9yZSI7DQogICAgbmV3RW50cnlbIm9uY2xpY2siXSA9ICJ4dGV2ZVJlc3RvcmUodGhpcykiDQogICAgZGl2LmFwcGVuZENoaWxkKGNyZWF0ZUVsZW1lbnQobmV3RW50cnkpKTsNCiAgfQ0KDQoNCiAgdmFyIG5ld1dyYXBwZXIgPSBuZXcgT2JqZWN0KCk7DQogIG5ld1dyYXBwZXJbIl9lbGVtZW50Il0gID0gIkRJViI7DQogIG5ld1dyYXBwZXJbImlkIl0gICAgICAgID0gImJveC13cmFwcGVyIjsNCiAgZGl2LmFwcGVuZENoaWxkKGNyZWF0ZUVsZW1lbnQobmV3V3JhcHBlcikpOw0KICANCiAgZGl2ID0gZGl2Lmxhc3RDaGlsZDsNCiAgDQoNCiAgZm9yICh2YXIgaSA9IDA7IGkgPCBlbnRyeXMubGVuZ3RoOyBpKyspIHsNCiAgICB2YXIgaXRlbSA9IHN1Yk1lbnVbZW50cnlzW2ldXTsNCiAgICBpZiAoaXRlbSA9PSB1bmRlZmluZWQpIHsNCiAgICAgIGJyZWFrOw0KICAgIH0NCiAgICANCiAgICB2YXIgY29udGFpbmVyID0gbmV3IE9iamVjdCgpOw0KICAgIGNvbnRhaW5lclsiX2VsZW1lbnQiXSA9ICJESVYiOw0KICAgIGRpdi5hcHBlbmRDaGlsZChjcmVhdGVFbGVtZW50KGNvbnRhaW5lcikpOw0KDQogICAgdmFyIGRpdkNvbnRhaW5lciA9IGRpdi5sYXN0Q2hpbGQ7DQogICAgDQogICAgdmFyIGhlYWRsaW5lID0gbmV3IE9iamVjdCgpOw0KICAgIGhlYWRsaW5lWyJfZWxlbWVudCJdID0gIkg1IjsNCiAgICBoZWFkbGluZVsiX3RleHQiXSA9IGl0ZW1bIl9oZWFkbGluZSJdOw0KICAgIGRpdkNvbnRhaW5lci5hcHBlbmRDaGlsZChjcmVhdGVFbGVtZW50KGhlYWRsaW5lKSk7DQoNCiAgICBkaXZDb250YWluZXIuYXBwZW5kQ2hpbGQoY3JlYXRlTWVudUl0ZW0oaXRlbSkpDQoNCiAgICBzd2l0Y2goaXRlbS5oYXNPd25Qcm9wZXJ0eSgiX3VzYWdlIikpIHsNCiAgICAgIGNhc2UgdHJ1ZTogDQogICAgICAgIHZhciB1c2FnZUl0ZW0gPSBuZXcgT2JqZWN0KCk7DQogICAgICAgIHVzYWdlSXRlbVsiX2VsZW1lbnQiXSA9ICJQUkUiDQogICAgICAgIHVzYWdlSXRlbVsiX3RleHQiXSAgICA9IGl0ZW1bIl91c2FnZSJdOw0KICAgICAgICBkaXZDb250YWluZXIuYXBwZW5kQ2hpbGQoY3JlYXRlRWxlbWVudCh1c2FnZUl0ZW0pKTsNCiAgICB9DQoNCiAgICB2YXIgaHIgPSBuZXcgT2JqZWN0KCk7DQogICAgaHJbIl9lbGVtZW50Il0gPSAiSFIiOw0KICAgIGRpdkNvbnRhaW5lci5hcHBlbmRDaGlsZChjcmVhdGVFbGVtZW50KGhyKSk7DQogIA0KICB9DQoNCiAgY2FsY3VsYXRlV3JhcHBlckhlaWdodCgpOw0KICByZXR1cm4NCn0NCg0KZnVuY3Rpb24gc2F2ZURhdGEyKGVsbSkgew0KICB2YXIgZGl2ICAgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChlbG0pOw0KICB2YXIgaW5wdXRzID0gZGl2LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJJTlBVVCIpOw0KICB2YXIgc2VsZWN0cyA9IGRpdi5nZXRFbGVtZW50c0J5VGFnTmFtZSgiU0VMRUNUIik7DQogIHZhciB2YWx1ZSwgY29uZmlnS2V5Ow0KICB2YXIgZGF0YSA9IG5ldyBPYmplY3QoKTsNCiAgdmFyIHZhbHVlQXJyID0gbmV3IEFycmF5KCk7DQogIHZhciBuZXdEYXRhID0gZmFsc2U7DQogIA0KICBmb3IgKHZhciBpID0gMDsgaSA8IGlucHV0cy5sZW5ndGg7IGkrKykgew0KICAgIGlmIChpbnB1dHNbaV0udHlwZSAhPSAiYnV0dG9uIikgew0KICAgICAgdmFyIG1lbnVUeXBlID0gaW5wdXRzW2ldLmdldEF0dHJpYnV0ZSgiZGF0YS1tZW51dHlwZSIpOw0KICAgICAgDQogICAgICAvL2NvbnNvbGUubG9nKG1lbnVUeXBlKTsNCiAgICAgIHN3aXRjaChtZW51VHlwZSkgew0KICAgICAgICBjYXNlICJzaW5nbGVJbnB1dCI6DQogICAgICAgICAgdmFsdWUgPSBpbnB1dHNbaV0udmFsdWU7DQogICAgICAgICAgaWYgKHZhbHVlID09ICIiIHx8IHZhbHVlID09IHVuZGVmaW5lZCkgew0KICAgICAgICAgICAgZGF0YSA9IG5ldyBPYmplY3QoKTsNCiAgICAgICAgICAgIGRhdGFbImRlbGV0ZSJdID0gaW5wdXRzW2ldLm5hbWUNCiAgICAgICAgICAgIG5ld0RhdGEgPSB0cnVlOw0KICAgICAgICAgIH0gZWxzZSB7DQogICAgICAgICAgICBuZXdEYXRhID0gdHJ1ZTsNCiAgICAgICAgICAgIGRhdGFbaW5wdXRzW2ldLm5hbWVdID0gdmFsdWU7DQogICAgICAgICAgICBjb25zb2xlLmxvZyhkYXRhKTsNCiAgICAgICAgICB9DQogICAgICAgICAgYnJlYWs7DQogICAgICAgIGNhc2UgImlucHV0QXJyYXkiOiANCiAgICAgICAgICB2YWx1ZSA9IGlucHV0c1tpXS52YWx1ZTsNCiAgICAgICAgICBpZiAodmFsdWUgIT0gIiIgJiYgdmFsdWUgIT0gdW5kZWZpbmVkKSB7DQogICAgICAgICAgICBuZXdEYXRhID0gdHJ1ZTsNCiAgICAgICAgICAgIHZhbHVlQXJyLnB1c2godmFsdWUpDQogICAgICAgICAgICBkYXRhW2lucHV0c1tpXS5uYW1lXSA9IHZhbHVlQXJyOw0KICAgICAgICAgICAgY29uZmlnS2V5ID0gaW5wdXRzW2ldLm5hbWU7DQogICAgICAgICAgfSANCiAgICAgICAgICANCiAgICAgICAgICBicmVhazsNCg0KICAgICAgICBjYXNlICJjaGVja2JveCI6DQogICAgICAgICAgdmFsdWUgPSBpbnB1dHNbaV0uY2hlY2tlZA0KICAgICAgICAgIGRhdGFbaW5wdXRzW2ldLm5hbWVdID0gdmFsdWU7DQogICAgICB9DQogICAgICANCiAgICB9DQogICAgDQogIH0NCg0KDQogIC8vIERlbGV0ZSBjb25maWcga2V5DQogIGlmICh2YWx1ZUFyci5sZW5ndGggPT0gMCAmJiBuZXdEYXRhID09IGZhbHNlKSB7DQogICAgbmV3RGF0YSA9IHRydWU7DQogICAgZGF0YSA9IG5ldyBPYmplY3QoKTsNCiAgICBkYXRhWyJkZWxldGUiXSA9IGNvbmZpZ0tleTsNCiAgfSANCg0KDQogIGZvciAodmFyIGkgPSAwOyBpIDwgc2VsZWN0cy5sZW5ndGg7IGkrKykgew0KICAgIHZhciB2YWx1ZSA9IHNlbGVjdHNbaV0ub3B0aW9uc1tzZWxlY3RzW2ldLnNlbGVjdGVkSW5kZXhdLnZhbHVlOw0KICAgIHN3aXRjaChpc05hTih2YWx1ZSkpIHsNCiAgICAgIGNhc2UgZmFsc2U6IHZhbHVlID0gcGFyc2VJbnQodmFsdWUpOyBicmVhazsNCiAgICB9DQoNCiAgICBkYXRhW3NlbGVjdHNbaV0ubmFtZV0gPSB2YWx1ZTsNCiAgICBuZXdEYXRhID0gdHJ1ZTsNCiAgfQ0KDQogIC8vY29uc29sZS5sb2coZGF0YSwgbmV3RGF0YSk7DQoNCiAgaWYgKG5ld0RhdGEgPT0gdHJ1ZSkgew0KICAgIGRhdGFbImNtZCJdID0gInNhdmVDb25maWciOw0KICAgIGlmICghZGF0YS5oYXNPd25Qcm9wZXJ0eSgnZmlsdGVyJykpIHsNCiAgICAgIGRhdGFbImZpbHRlciJdID0gY29uZmlnWyJmaWx0ZXIiXQ0KICAgIH0NCiAgICB2YXIgc2V0dGluZ3MgPSBuZXcgT2JqZWN0KCk7DQogICAgc2V0dGluZ3NbImNtZCJdID0gZGF0YVsiY21kIl07DQogICAgc2V0dGluZ3NbInNldHRpbmdzIl0gPSBkYXRhOw0KICAgIGNvbnNvbGUubG9nKHNldHRpbmdzKTsNCiAgICB4VGVWZShzZXR0aW5ncyk7DQogIH0NCn0NCg==" + webUI["html/js/settings_ts.js"] = "dmFyIF9fZXh0ZW5kcyA9ICh0aGlzICYmIHRoaXMuX19leHRlbmRzKSB8fCAoZnVuY3Rpb24gKCkgew0KICAgIHZhciBleHRlbmRTdGF0aWNzID0gZnVuY3Rpb24gKGQsIGIpIHsNCiAgICAgICAgZXh0ZW5kU3RhdGljcyA9IE9iamVjdC5zZXRQcm90b3R5cGVPZiB8fA0KICAgICAgICAgICAgKHsgX19wcm90b19fOiBbXSB9IGluc3RhbmNlb2YgQXJyYXkgJiYgZnVuY3Rpb24gKGQsIGIpIHsgZC5fX3Byb3RvX18gPSBiOyB9KSB8fA0KICAgICAgICAgICAgZnVuY3Rpb24gKGQsIGIpIHsgZm9yICh2YXIgcCBpbiBiKSBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGIsIHApKSBkW3BdID0gYltwXTsgfTsNCiAgICAgICAgcmV0dXJuIGV4dGVuZFN0YXRpY3MoZCwgYik7DQogICAgfTsNCiAgICByZXR1cm4gZnVuY3Rpb24gKGQsIGIpIHsNCiAgICAgICAgZXh0ZW5kU3RhdGljcyhkLCBiKTsNCiAgICAgICAgZnVuY3Rpb24gX18oKSB7IHRoaXMuY29uc3RydWN0b3IgPSBkOyB9DQogICAgICAgIGQucHJvdG90eXBlID0gYiA9PT0gbnVsbCA/IE9iamVjdC5jcmVhdGUoYikgOiAoX18ucHJvdG90eXBlID0gYi5wcm90b3R5cGUsIG5ldyBfXygpKTsNCiAgICB9Ow0KfSkoKTsNCnZhciBTZXR0aW5nc0NhdGVnb3J5ID0gLyoqIEBjbGFzcyAqLyAoZnVuY3Rpb24gKCkgew0KICAgIGZ1bmN0aW9uIFNldHRpbmdzQ2F0ZWdvcnkoKSB7DQogICAgICAgIHRoaXMuRG9jdW1lbnRJRCA9ICJjb250ZW50X3NldHRpbmdzIjsNCiAgICB9DQogICAgU2V0dGluZ3NDYXRlZ29yeS5wcm90b3R5cGUuY3JlYXRlQ2F0ZWdvcnlIZWFkbGluZSA9IGZ1bmN0aW9uICh2YWx1ZSkgew0KICAgICAgICB2YXIgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIkg0Iik7DQogICAgICAgIGVsZW1lbnQuaW5uZXJIVE1MID0gdmFsdWU7DQogICAgICAgIHJldHVybiBlbGVtZW50Ow0KICAgIH07DQogICAgU2V0dGluZ3NDYXRlZ29yeS5wcm90b3R5cGUuY3JlYXRlSFIgPSBmdW5jdGlvbiAoKSB7DQogICAgICAgIHZhciBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiSFIiKTsNCiAgICAgICAgcmV0dXJuIGVsZW1lbnQ7DQogICAgfTsNCiAgICBTZXR0aW5nc0NhdGVnb3J5LnByb3RvdHlwZS5jcmVhdGVTZXR0aW5ncyA9IGZ1bmN0aW9uIChzZXR0aW5nc0tleSkgew0KICAgICAgICB2YXIgc2V0dGluZyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlRSIik7DQogICAgICAgIHZhciBjb250ZW50ID0gbmV3IFBvcHVwQ29udGVudCgpOw0KICAgICAgICB2YXIgZGF0YSA9IFNFUlZFUlsic2V0dGluZ3MiXVtzZXR0aW5nc0tleV07DQogICAgICAgIHN3aXRjaCAoc2V0dGluZ3NLZXkpIHsNCiAgICAgICAgICAgIC8vIFRleHRlaW5nYWJlbg0KICAgICAgICAgICAgY2FzZSAidXBkYXRlIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLnVwZGF0ZS50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsICJ1cGRhdGUiLCBkYXRhLnRvU3RyaW5nKCkpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3suc2V0dGluZ3MudXBkYXRlLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJiYWNrdXAucGF0aCI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5iYWNrdXBQYXRoLnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgImJhY2t1cC5wYXRoIiwgZGF0YSk7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5zZXR0aW5ncy5iYWNrdXBQYXRoLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ0ZW1wLnBhdGgiOg0KICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MudGVtcFBhdGgudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCAidGVtcC5wYXRoIiwgZGF0YSk7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5zZXR0aW5ncy50bXBQYXRoLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ1c2VyLmFnZW50IjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLnVzZXJBZ2VudC50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsICJ1c2VyLmFnZW50IiwgZGF0YSk7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5zZXR0aW5ncy51c2VyQWdlbnQucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImJ1ZmZlci50aW1lb3V0IjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmJ1ZmZlclRpbWVvdXQudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCAiYnVmZmVyLnRpbWVvdXQiLCBkYXRhKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnNldHRpbmdzLmJ1ZmZlclRpbWVvdXQucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImZmbXBlZy5wYXRoIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmZmbXBlZ1BhdGgudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCAiZmZtcGVnLnBhdGgiLCBkYXRhKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnNldHRpbmdzLmZmbXBlZ1BhdGgucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImZmbXBlZy5vcHRpb25zIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmZmbXBlZ09wdGlvbnMudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCAiZmZtcGVnLm9wdGlvbnMiLCBkYXRhKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnNldHRpbmdzLmZmbXBlZ09wdGlvbnMucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInZsYy5wYXRoIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLnZsY1BhdGgudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCAidmxjLnBhdGgiLCBkYXRhKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnNldHRpbmdzLnZsY1BhdGgucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInZsYy5vcHRpb25zIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLnZsY09wdGlvbnMudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCAidmxjLm9wdGlvbnMiLCBkYXRhKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnNldHRpbmdzLnZsY09wdGlvbnMucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIC8vIENoZWNrYm94ZW4NCiAgICAgICAgICAgIGNhc2UgImF1dGhlbnRpY2F0aW9uLndlYiI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5hdXRoZW50aWNhdGlvbldFQi50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChzZXR0aW5nc0tleSk7DQogICAgICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGE7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiYXV0aGVudGljYXRpb24ucG1zIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmF1dGhlbnRpY2F0aW9uUE1TLnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KHNldHRpbmdzS2V5KTsNCiAgICAgICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJhdXRoZW50aWNhdGlvbi5tM3UiOg0KICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MuYXV0aGVudGljYXRpb25NM1UudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goc2V0dGluZ3NLZXkpOw0KICAgICAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImF1dGhlbnRpY2F0aW9uLnhtbCI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5hdXRoZW50aWNhdGlvblhNTC50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChzZXR0aW5nc0tleSk7DQogICAgICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGE7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiYXV0aGVudGljYXRpb24uYXBpIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmF1dGhlbnRpY2F0aW9uQVBJLnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KHNldHRpbmdzS2V5KTsNCiAgICAgICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJmaWxlcy51cGRhdGUiOg0KICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MuZmlsZXNVcGRhdGUudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goc2V0dGluZ3NLZXkpOw0KICAgICAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImNhY2hlLmltYWdlcyI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5jYWNoZUltYWdlcy50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChzZXR0aW5nc0tleSk7DQogICAgICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGE7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAieGVwZy5yZXBsYWNlLm1pc3NpbmcuaW1hZ2VzIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLnJlcGxhY2VFbXB0eUltYWdlcy50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChzZXR0aW5nc0tleSk7DQogICAgICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGE7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAieHRldmVBdXRvVXBkYXRlIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLnh0ZXZlQXV0b1VwZGF0ZS50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChzZXR0aW5nc0tleSk7DQogICAgICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGE7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiYXBpIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmFwaS50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChzZXR0aW5nc0tleSk7DQogICAgICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGE7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgLy8gU2VsZWN0DQogICAgICAgICAgICBjYXNlICJ0dW5lciI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy50dW5lci50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIHRleHQgPSBuZXcgQXJyYXkoKTsNCiAgICAgICAgICAgICAgICB2YXIgdmFsdWVzID0gbmV3IEFycmF5KCk7DQogICAgICAgICAgICAgICAgZm9yICh2YXIgaSA9IDE7IGkgPD0gMTAwOyBpKyspIHsNCiAgICAgICAgICAgICAgICAgICAgdGV4dC5wdXNoKGkpOw0KICAgICAgICAgICAgICAgICAgICB2YWx1ZXMucHVzaChpKTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgdmFyIHNlbGVjdCA9IGNvbnRlbnQuY3JlYXRlU2VsZWN0KHRleHQsIHZhbHVlcywgZGF0YSwgc2V0dGluZ3NLZXkpOw0KICAgICAgICAgICAgICAgIHNlbGVjdC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChzZWxlY3QpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiZXBnU291cmNlIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmVwZ1NvdXJjZS50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIHRleHQgPSBbIlBNUyIsICJYRVBHIl07DQogICAgICAgICAgICAgICAgdmFyIHZhbHVlcyA9IFsiUE1TIiwgIlhFUEciXTsNCiAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCBkYXRhLCBzZXR0aW5nc0tleSk7DQogICAgICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKHNlbGVjdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJiYWNrdXAua2VlcCI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5iYWNrdXBLZWVwLnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgdGV4dCA9IFsiNSIsICIxMCIsICIyMCIsICIzMCIsICI0MCIsICI1MCJdOw0KICAgICAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBbIjUiLCAiMTAiLCAiMjAiLCAiMzAiLCAiNDAiLCAiNTAiXTsNCiAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCBkYXRhLCBzZXR0aW5nc0tleSk7DQogICAgICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKHNlbGVjdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJidWZmZXIuc2l6ZS5rYiI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5idWZmZXJTaXplLnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgdGV4dCA9IFsiMC41IE1CIiwgIjEgTUIiLCAiMiBNQiIsICIzIE1CIiwgIjQgTUIiLCAiNSBNQiIsICI2IE1CIiwgIjcgTUIiLCAiOCBNQiJdOw0KICAgICAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBbIjUxMiIsICIxMDI0IiwgIjIwNDgiLCAiMzA3MiIsICI0MDk2IiwgIjUxMjAiLCAiNjE0NCIsICI3MTY4IiwgIjgxOTIiXTsNCiAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCBkYXRhLCBzZXR0aW5nc0tleSk7DQogICAgICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKHNlbGVjdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJidWZmZXIiOg0KICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3Muc3RyZWFtQnVmZmVyaW5nLnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgdGV4dCA9IFsie3suc2V0dGluZ3Muc3RyZWFtQnVmZmVyaW5nLmluZm9fZmFsc2V9fSIsICJ4VGVWZTogKHt7LnNldHRpbmdzLnN0cmVhbUJ1ZmZlcmluZy5pbmZvX3h0ZXZlfX0pIiwgIkZGbXBlZzogKHt7LnNldHRpbmdzLnN0cmVhbUJ1ZmZlcmluZy5pbmZvX2ZmbXBlZ319KSIsICJWTEM6ICh7ey5zZXR0aW5ncy5zdHJlYW1CdWZmZXJpbmcuaW5mb192bGN9fSkiXTsNCiAgICAgICAgICAgICAgICB2YXIgdmFsdWVzID0gWyItIiwgInh0ZXZlIiwgImZmbXBlZyIsICJ2bGMiXTsNCiAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCBkYXRhLCBzZXR0aW5nc0tleSk7DQogICAgICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKHNlbGVjdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ1ZHB4eSI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy51ZHB4eS50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsICJ1ZHB4eSIsIGRhdGEpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3suc2V0dGluZ3MudWRweHkucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgfQ0KICAgICAgICByZXR1cm4gc2V0dGluZzsNCiAgICB9Ow0KICAgIFNldHRpbmdzQ2F0ZWdvcnkucHJvdG90eXBlLmNyZWF0ZURlc2NyaXB0aW9uID0gZnVuY3Rpb24gKHNldHRpbmdzS2V5KSB7DQogICAgICAgIHZhciBkZXNjcmlwdGlvbiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlRSIik7DQogICAgICAgIHZhciB0ZXh0Ow0KICAgICAgICBzd2l0Y2ggKHNldHRpbmdzS2V5KSB7DQogICAgICAgICAgICBjYXNlICJhdXRoZW50aWNhdGlvbi53ZWIiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MuYXV0aGVudGljYXRpb25XRUIuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJhdXRoZW50aWNhdGlvbi5tM3UiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MuYXV0aGVudGljYXRpb25NM1UuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJhdXRoZW50aWNhdGlvbi5wbXMiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MuYXV0aGVudGljYXRpb25QTVMuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJhdXRoZW50aWNhdGlvbi54bWwiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MuYXV0aGVudGljYXRpb25YTUwuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJhdXRoZW50aWNhdGlvbi5hcGkiOg0KICAgICAgICAgICAgICAgIGlmIChTRVJWRVJbInNldHRpbmdzIl1bImF1dGhlbnRpY2F0aW9uLndlYiJdID09IHRydWUpIHsNCiAgICAgICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5hdXRoZW50aWNhdGlvbkFQSS5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ4dGV2ZUF1dG9VcGRhdGUiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MueHRldmVBdXRvVXBkYXRlLmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiYmFja3VwLmtlZXAiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MuYmFja3VwS2VlcC5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImJhY2t1cC5wYXRoIjoNCiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLmJhY2t1cFBhdGguZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ0ZW1wLnBhdGgiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MudGVtcFBhdGguZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJidWZmZXIiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3Muc3RyZWFtQnVmZmVyaW5nLmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiYnVmZmVyLnNpemUua2IiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MuYnVmZmVyU2l6ZS5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImJ1ZmZlci50aW1lb3V0IjoNCiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLmJ1ZmZlclRpbWVvdXQuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ1c2VyLmFnZW50IjoNCiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLnVzZXJBZ2VudC5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImZmbXBlZy5wYXRoIjoNCiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLmZmbXBlZ1BhdGguZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJmZm1wZWcub3B0aW9ucyI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5mZm1wZWdPcHRpb25zLmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAidmxjLnBhdGgiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MudmxjUGF0aC5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInZsYy5vcHRpb25zIjoNCiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLnZsY09wdGlvbnMuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJlcGdTb3VyY2UiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MuZXBnU291cmNlLmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAidHVuZXIiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MudHVuZXIuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ1cGRhdGUiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MudXBkYXRlLmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiYXBpIjoNCiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLmFwaS5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImZpbGVzLnVwZGF0ZSI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5maWxlc1VwZGF0ZS5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImNhY2hlLmltYWdlcyI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5jYWNoZUltYWdlcy5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInhlcGcucmVwbGFjZS5taXNzaW5nLmltYWdlcyI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5yZXBsYWNlRW1wdHlJbWFnZXMuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ1ZHB4eSI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy51ZHB4eS5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICAgICAgdGV4dCA9ICIiOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICB9DQogICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gIiI7DQogICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgdmFyIHByZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlBSRSIpOw0KICAgICAgICBwcmUuaW5uZXJIVE1MID0gdGV4dDsNCiAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChwcmUpOw0KICAgICAgICBkZXNjcmlwdGlvbi5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICBkZXNjcmlwdGlvbi5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgcmV0dXJuIGRlc2NyaXB0aW9uOw0KICAgIH07DQogICAgcmV0dXJuIFNldHRpbmdzQ2F0ZWdvcnk7DQp9KCkpOw0KdmFyIFNldHRpbmdzQ2F0ZWdvcnlJdGVtID0gLyoqIEBjbGFzcyAqLyAoZnVuY3Rpb24gKF9zdXBlcikgew0KICAgIF9fZXh0ZW5kcyhTZXR0aW5nc0NhdGVnb3J5SXRlbSwgX3N1cGVyKTsNCiAgICBmdW5jdGlvbiBTZXR0aW5nc0NhdGVnb3J5SXRlbShoZWFkbGluZSwgc2V0dGluZ3NLZXlzKSB7DQogICAgICAgIHZhciBfdGhpcyA9IF9zdXBlci5jYWxsKHRoaXMpIHx8IHRoaXM7DQogICAgICAgIF90aGlzLmhlYWRsaW5lID0gaGVhZGxpbmU7DQogICAgICAgIF90aGlzLnNldHRpbmdzS2V5cyA9IHNldHRpbmdzS2V5czsNCiAgICAgICAgcmV0dXJuIF90aGlzOw0KICAgIH0NCiAgICBTZXR0aW5nc0NhdGVnb3J5SXRlbS5wcm90b3R5cGUuY3JlYXRlQ2F0ZWdvcnkgPSBmdW5jdGlvbiAoKSB7DQogICAgICAgIHZhciBfdGhpcyA9IHRoaXM7DQogICAgICAgIHZhciBoZWFkbGluZSA9IHRoaXMuY3JlYXRlQ2F0ZWdvcnlIZWFkbGluZSh0aGlzLmhlYWRsaW5lKTsNCiAgICAgICAgdmFyIHNldHRpbmdzS2V5cyA9IHRoaXMuc2V0dGluZ3NLZXlzOw0KICAgICAgICB2YXIgZG9jID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQodGhpcy5Eb2N1bWVudElEKTsNCiAgICAgICAgZG9jLmFwcGVuZENoaWxkKGhlYWRsaW5lKTsNCiAgICAgICAgLy8gVGFiZWxsZSBmw7xyIGRpZSBLYXRlZ29yaWUgZXJzdGVsbGVuDQogICAgICAgIHZhciB0YWJsZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlRBQkxFIik7DQogICAgICAgIHZhciBrZXlzID0gc2V0dGluZ3NLZXlzLnNwbGl0KCIsIik7DQogICAgICAgIGtleXMuZm9yRWFjaChmdW5jdGlvbiAoc2V0dGluZ3NLZXkpIHsNCiAgICAgICAgICAgIHN3aXRjaCAoc2V0dGluZ3NLZXkpIHsNCiAgICAgICAgICAgICAgICBjYXNlICJhdXRoZW50aWNhdGlvbi5wbXMiOg0KICAgICAgICAgICAgICAgIGNhc2UgImF1dGhlbnRpY2F0aW9uLm0zdSI6DQogICAgICAgICAgICAgICAgY2FzZSAiYXV0aGVudGljYXRpb24ueG1sIjoNCiAgICAgICAgICAgICAgICBjYXNlICJhdXRoZW50aWNhdGlvbi5hcGkiOg0KICAgICAgICAgICAgICAgICAgICBpZiAoU0VSVkVSWyJzZXR0aW5ncyJdWyJhdXRoZW50aWNhdGlvbi53ZWIiXSA9PSBmYWxzZSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBkZWZhdWx0Og0KICAgICAgICAgICAgICAgICAgICB2YXIgaXRlbSA9IF90aGlzLmNyZWF0ZVNldHRpbmdzKHNldHRpbmdzS2V5KTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGRlc2NyaXB0aW9uID0gX3RoaXMuY3JlYXRlRGVzY3JpcHRpb24oc2V0dGluZ3NLZXkpOw0KICAgICAgICAgICAgICAgICAgICB0YWJsZS5hcHBlbmRDaGlsZChpdGVtKTsNCiAgICAgICAgICAgICAgICAgICAgdGFibGUuYXBwZW5kQ2hpbGQoZGVzY3JpcHRpb24pOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfSk7DQogICAgICAgIGRvYy5hcHBlbmRDaGlsZCh0YWJsZSk7DQogICAgICAgIGRvYy5hcHBlbmRDaGlsZCh0aGlzLmNyZWF0ZUhSKCkpOw0KICAgIH07DQogICAgcmV0dXJuIFNldHRpbmdzQ2F0ZWdvcnlJdGVtOw0KfShTZXR0aW5nc0NhdGVnb3J5KSk7DQpmdW5jdGlvbiBzaG93U2V0dGluZ3MoKSB7DQogICAgY29uc29sZS5sb2coIlNFVFRJTkdTIik7DQogICAgZm9yICh2YXIgaSA9IDA7IGkgPCBzZXR0aW5nc0NhdGVnb3J5Lmxlbmd0aDsgaSsrKSB7DQogICAgICAgIHNldHRpbmdzQ2F0ZWdvcnlbaV0uY3JlYXRlQ2F0ZWdvcnkoKTsNCiAgICB9DQp9DQpmdW5jdGlvbiBzYXZlU2V0dGluZ3MoKSB7DQogICAgY29uc29sZS5sb2coIlNhdmUgU2V0dGluZ3MiKTsNCiAgICB2YXIgY21kID0gInNhdmVTZXR0aW5ncyI7DQogICAgdmFyIGRpdiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb250ZW50X3NldHRpbmdzIik7DQogICAgdmFyIHNldHRpbmdzID0gZGl2LmdldEVsZW1lbnRzQnlDbGFzc05hbWUoImNoYW5nZWQiKTsNCiAgICB2YXIgbmV3U2V0dGluZ3MgPSBuZXcgT2JqZWN0KCk7DQogICAgZm9yICh2YXIgaSA9IDA7IGkgPCBzZXR0aW5ncy5sZW5ndGg7IGkrKykgew0KICAgICAgICB2YXIgbmFtZTsNCiAgICAgICAgdmFyIHZhbHVlOw0KICAgICAgICBzd2l0Y2ggKHNldHRpbmdzW2ldLnRhZ05hbWUpIHsNCiAgICAgICAgICAgIGNhc2UgIklOUFVUIjoNCiAgICAgICAgICAgICAgICBzd2l0Y2ggKHNldHRpbmdzW2ldLnR5cGUpIHsNCiAgICAgICAgICAgICAgICAgICAgY2FzZSAiY2hlY2tib3giOg0KICAgICAgICAgICAgICAgICAgICAgICAgbmFtZSA9IHNldHRpbmdzW2ldLm5hbWU7DQogICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IHNldHRpbmdzW2ldLmNoZWNrZWQ7DQogICAgICAgICAgICAgICAgICAgICAgICBuZXdTZXR0aW5nc1tuYW1lXSA9IHZhbHVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgICAgIGNhc2UgInRleHQiOg0KICAgICAgICAgICAgICAgICAgICAgICAgbmFtZSA9IHNldHRpbmdzW2ldLm5hbWU7DQogICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IHNldHRpbmdzW2ldLnZhbHVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgc3dpdGNoIChuYW1lKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAidXBkYXRlIjoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSB2YWx1ZS5zcGxpdCgiLCIpOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IHZhbHVlLmZpbHRlcihmdW5jdGlvbiAoZSkgeyByZXR1cm4gZTsgfSk7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgImJ1ZmZlci50aW1lb3V0IjoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSBwYXJzZUZsb2F0KHZhbHVlKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgIG5ld1NldHRpbmdzW25hbWVdID0gdmFsdWU7DQogICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJTRUxFQ1QiOg0KICAgICAgICAgICAgICAgIG5hbWUgPSBzZXR0aW5nc1tpXS5uYW1lOw0KICAgICAgICAgICAgICAgIHZhbHVlID0gc2V0dGluZ3NbaV0udmFsdWU7DQogICAgICAgICAgICAgICAgLy8gV2VubiBkZXIgV2VydCBlaW5lIFphaGwgaXN0LCB3aXJkIGRpZXNlciBhbHMgWmFobCBnZXNwZWljaGVydA0KICAgICAgICAgICAgICAgIGlmIChpc05hTih2YWx1ZSkpIHsNCiAgICAgICAgICAgICAgICAgICAgbmV3U2V0dGluZ3NbbmFtZV0gPSB2YWx1ZTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgZWxzZSB7DQogICAgICAgICAgICAgICAgICAgIG5ld1NldHRpbmdzW25hbWVdID0gcGFyc2VJbnQodmFsdWUpOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgfQ0KICAgIH0NCiAgICB2YXIgZGF0YSA9IG5ldyBPYmplY3QoKTsNCiAgICBkYXRhWyJzZXR0aW5ncyJdID0gbmV3U2V0dGluZ3M7DQogICAgdmFyIHNlcnZlciA9IG5ldyBTZXJ2ZXIoY21kKTsNCiAgICBzZXJ2ZXIucmVxdWVzdChkYXRhKTsNCn0NCg==" + webUI["html/lang/en.json"] = "ew0KICAibWFpbk1lbnUiOg0KICB7DQogICAgIml0ZW0iOg0KICAgIHsNCiAgICAgICJwbGF5bGlzdCI6ICJQbGF5bGlzdCIsDQogICAgICAicG1zSUQiOiAiUE1TIElEIiwNCiAgICAgICJmaWx0ZXIiOiAiRmlsdGVyIiwNCiAgICAgICJ4bWx0diI6ICJYTUxUViIsDQogICAgICAibWFwcGluZyI6ICJNYXBwaW5nIiwNCiAgICAgICJ1c2VycyI6ICJVc2VycyIsDQogICAgICAic2V0dGluZ3MiOiAiU2V0dGluZ3MiLA0KICAgICAgImxvZyI6ICJMb2ciLA0KICAgICAgImxvZ291dCI6ICJMb2dvdXQiDQogICAgfSwNCiAgICAiaGVhZGxpbmUiOg0KICAgIHsNCiAgICAgICJwbGF5bGlzdCI6ICJMb2NhbCBvciByZW1vdGUgcGxheWxpc3RzIiwNCiAgICAgICJmaWx0ZXIiOiAiRmlsdGVyIHBsYXlsaXN0IiwNCiAgICAgICJ4bWx0diI6ICJMb2NhbCBvciByZW1vdGUgWE1MVFYgZmlsZXMiLA0KICAgICAgIm1hcHBpbmciOiAiTWFwIHBsYXlsaXN0IGNoYW5uZWxzIHRvIEVQRyBjaGFubmVscyIsDQogICAgICAidXNlcnMiOiAiVXNlciBtYW5hZ2VtZW50IiwNCiAgICAgICJzZXR0aW5ncyI6ICJTZXR0aW5ncyIsDQogICAgICAibG9nIjogIkxvZyIsDQogICAgICAibG9nb3V0IjogIkxvZ291dCINCiAgICB9DQogIH0sDQogICJjb25maXJtIjoNCiAgew0KICAgICJyZXN0b3JlIjogIkFsbCBkYXRhIHdpbGwgYmUgcmVwbGFjZWQgd2l0aCB0aG9zZSBmcm9tIHRoZSBiYWNrdXAuIFNob3VsZCB0aGUgZmlsZXMgYmUgcmVzdG9yZWQ/Ig0KICB9LA0KICAiYWxlcnQiOg0KICB7DQogICAgImZpbGVMb2FkaW5nRXJyb3IiOiAiRmlsZSBjb3VsZG4ndCBiZSBsb2FkZWQiLA0KICAgICJpbnZhbGlkQ2hhbm5lbE51bWJlciI6ICJJbnZhbGlkIGNoYW5uZWwgbnVtYmVyIiwNCiAgICAibWlzc2luZ0lucHV0IjogIk1pc3NpbmcgaW5wdXQiDQogIH0sDQogICJidXR0b24iOg0KICB7DQogICAgImJhY2siOiAiQmFjayIsDQogICAgImJhY2t1cCI6ICJCYWNrdXAiLA0KICAgICJidWxrRWRpdCI6ICJCdWxrIEVkaXQiLA0KICAgICJjYW5jZWwiOiAiQ2FuY2VsIiwNCiAgICAiZGVsZXRlIjogIkRlbGV0ZSIsDQogICAgImRvbmUiOiAiRG9uZSIsDQogICAgImxvZ2luIjogIkxvZ2luIiwNCiAgICAibmV3IjogIk5ldyIsDQogICAgIm5leHQiOiAiTmV4dCIsDQogICAgInJlc3RvcmUiOiAiUmVzdG9yZSIsDQogICAgInNhdmUiOiAiU2F2ZSIsDQogICAgInNlYXJjaCI6ICJTZWFyY2giLA0KICAgICJ1cGRhdGUiOiAiVXBkYXRlIiwNCiAgICAiY3JhZXRlQWNjb3VudCI6ICJDcmVhdGUgQWNjb3VudCIsDQogICAgInJlc2V0TG9ncyI6ICJSZXNldCBMb2dzIiwNCiAgICAidXBsb2FkTG9nbyI6ICJVcGxvYWQgTG9nbyINCiAgfSwNCiAgImZpbHRlciI6DQogIHsNCiAgICAidGFibGUiOg0KICAgIHsNCiAgICAgICJuYW1lIjogIkZpbHRlciBOYW1lIiwNCiAgICAgICJ0eXBlIjogIkZpbHRlciBUeXBlIiwNCiAgICAgICJmaWx0ZXIiOiAiRmlsdGVyIg0KICAgIH0sDQogICAgImN1c3RvbSI6ICJDdXN0b20iLA0KICAgICJncm91cCI6ICJHcm91cCIsDQogICAgIm5hbWUiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJGaWx0ZXIgTmFtZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiRmlsdGVyIG5hbWUiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJkZXNjcmlwdGlvbiI6DQogICAgew0KICAgICAgInRpdGxlIjogIkRlc2NyaXB0aW9uIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJEZXNjcmlwdGlvbiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgInR5cGUiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJUeXBlIiwNCiAgICAgICJncm91cFRpdGxlIjogIkdyb3VwIFRpdGxlIiwNCiAgICAgICJjdXN0b21GaWx0ZXIiOiAiQ3VzdG9tIEZpbHRlciINCiAgICB9LA0KICAgICJjYXNlU2Vuc2l0aXZlIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiQ2FzZSBTZW5zaXRpdmUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgImZpbHRlclJ1bGUiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJGaWx0ZXIgUnVsZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiU3BvcnQge0hEfSAhe0VTLElUfSIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgImZpbHRlckdyb3VwIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiR3JvdXAgVGl0bGUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiU2VsZWN0IGEgTTNVIGdyb3VwLiAoQ291bnRlcik8YnI+Q2hhbmdpbmcgdGhlIGdyb3VwIHRpdGxlIGluIHRoZSBNM1UgaW52YWxpZGF0ZXMgdGhlIGZpbHRlci4iDQogICAgfSwNCiAgICAiaW5jbHVkZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIkluY2x1ZGUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIkZIRCxVSEQiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIkNoYW5uZWwgbmFtZSBtdXN0IGluY2x1ZGUuPGJyPihDb21tYSBzZXBhcmF0ZWQpIENvbW1hIG1lYW5zIG9yIg0KICAgIH0sDQogICAgImV4Y2x1ZGUiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJFeGNsdWRlIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJFUyxJVCIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiQ2hhbm5lbCBuYW1lIG11c3Qgbm90IGNvbnRhaW4uPGJyPihDb21tYSBzZXBhcmF0ZWQpIENvbW1hIG1lYW5zIG9yIg0KICAgIH0NCg0KICB9LA0KICAicGxheWxpc3QiOg0KICB7DQogICAgInRhYmxlIjoNCiAgICB7DQogICAgICAicGxheWxpc3QiOiAiUGxheWxpc3QiLA0KICAgICAgInR1bmVyIjogIlR1bmVyIiwNCiAgICAgICJsYXN0VXBkYXRlIjogIkxhc3QgVXBkYXRlIiwNCiAgICAgICJhdmFpbGFiaWxpdHkiOiAiQXZhaWxhYmlsaXR5IiwNCiAgICAgICJ0eXBlIjogIlR5cGUiLA0KICAgICAgInN0cmVhbXMiOiAiU3RyZWFtcyIsDQogICAgICAiZ3JvdXBUaXRsZSI6ICJncm91cC10aXRsZSIsDQogICAgICAidHZnSUQiOiAidHZnLWlkIiwNCiAgICAgICJ1bmlxdWVJRCI6ICJVbmlxdWUgSUQiDQogICAgfSwNCiAgICAicGxheWxpc3RUeXBlIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiUGxheWxpc3QgdHlwZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAidHlwZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIlR5cGUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgIm5hbWUiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJOYW1lIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJQbGF5bGlzdCBuYW1lIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAiZGVzY3JpcHRpb24iOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJEZXNjcmlwdGlvbiIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiRGVzY3JpcHRpb24iLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJmaWxlTTNVIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiTTNVIEZpbGUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIkZpbGUgcGF0aCBvciBVUkwgb2YgdGhlIE0zVSIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgImZpbGVIREhSIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiSERIb21lUnVuIElQIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJJUCBhZGRyZXNzIGFuZCBwb3J0ICgxOTIuMTY4LjEuMTA6NTAwNCkiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJ0dW5lciI6DQogICAgew0KICAgICAgInRpdGxlIjogIlR1bmVyIC8gU3RyZWFtcyIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJOdW1iZXIgb2YgcGFyYWxsZWwgY29ubmVjdGlvbnMgdGhhdCBjYW4gYmUgZXN0YWJsaXNoZWQgdG8gdGhlIHByb3ZpZGVyLiA8YnI+T25seSBhdmFpbGFibGUgd2l0aCBhY3RpdmF0ZWQgYnVmZmVyLjxicj5OZXcgc2V0dGluZ3Mgd2lsbCBvbmx5IGJlIGFwcGxpZWQgYWZ0ZXIgcXVpdHRpbmcgYWxsIHN0cmVhbXMuIg0KICAgIH0NCiAgfSwNCiAgInhtbHR2IjoNCiAgew0KICAgICJ0YWJsZSI6DQogICAgew0KICAgICAgImd1aWRlIjogIkd1aWRlIiwNCiAgICAgICJsYXN0VXBkYXRlIjogIkxhc3QgVXBkYXRlIiwNCiAgICAgICJhdmFpbGFiaWxpdHkiOiAiQXZhaWxhYmlsaXR5IiwNCiAgICAgICJjaGFubmVscyI6ICJDaGFubmVscyIsDQogICAgICAicHJvZ3JhbXMiOiAiUHJvZ3JhbXMiDQogICAgfSwNCiAgICAibmFtZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIk5hbWUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIkd1aWRlIG5hbWUiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJkZXNjcmlwdGlvbiI6DQogICAgew0KICAgICAgInRpdGxlIjogIkRlc2NyaXB0aW9uIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJEZXNjcmlwdGlvbiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgImZpbGVYTUxUViI6DQogICAgew0KICAgICAgInRpdGxlIjogIlhNTFRWIEZpbGUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIkZpbGUgcGF0aCBvciBVUkwgb2YgdGhlIFhNTFRWIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfQ0KICB9LA0KICAibWFwcGluZyI6DQogIHsNCiAgICAidGFibGUiOg0KICAgIHsNCiAgICAgICJjaE5vIjogIkNoLiBOby4iLA0KICAgICAgImxvZ28iOiAiTG9nbyIsDQogICAgICAiY2hhbm5lbE5hbWUiOiAiQ2hhbm5lbCBOYW1lIiwNCiAgICAgICJwbGF5bGlzdCI6ICJQbGF5bGlzdCIsDQogICAgICAiZ3JvdXBUaXRsZSI6ICJHcm91cCBUaXRsZSIsDQogICAgICAieG1sdHZGaWxlIjogIlhNTFRWIEZpbGUiLA0KICAgICAgInhtbHR2SUQiOiAiWE1MVFYgSUQiLA0KICAgICAgInRpbWVzaGlmdCI6ICJUaW1lc2hpZnQiDQogICAgfSwNCiAgICAiYWN0aXZlIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiQWN0aXZlIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJjaGFubmVsTmFtZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIkNoYW5uZWwgTmFtZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAiZGVzY3JpcHRpb24iOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJDaGFubmVsIERlc2NyaXB0aW9uIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJVc2VkIGJ5IHRoZSBEdW1teSBhcyBhbiBYTUwgZGVzY3JpcHRpb24iLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJ1cGRhdGVDaGFubmVsTmFtZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIlVwZGF0ZSBDaGFubmVsIE5hbWUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgImNoYW5uZWxMb2dvIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiTG9nbyBVUkwiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgInVwZGF0ZUNoYW5uZWxMb2dvIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiVXBkYXRlIENoYW5uZWwgTG9nbyIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAiZXBnQ2F0ZWdvcnkiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJFUEcgQ2F0ZWdvcnkiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgIm0zdUdyb3VwVGl0bGUiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJHcm91cCBUaXRsZSAoeHRldmUubTN1KSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAieG1sdHZGaWxlIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiWE1MVFYgRmlsZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAieG1sdHZDaGFubmVsIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiWE1MVFYgQ2hhbm5lbCIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAidGltZXNoaWZ0IjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiVGltZXNoaWZ0IiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIwIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfQ0KICB9LA0KICAidXNlcnMiOg0KICB7DQogICAgInRhYmxlIjoNCiAgICB7DQogICAgICAidXNlcm5hbWUiOiAiVXNlcm5hbWUiLA0KICAgICAgInBhc3N3b3JkIjogIlBhc3N3b3JkIiwNCiAgICAgICJ3ZWIiOiAiV0VCIiwNCiAgICAgICJwbXMiOiAiUE1TIiwNCiAgICAgICJtM3UiOiAiTTNVIiwNCiAgICAgICJ4bWwiOiAiWE1MIiwNCiAgICAgICJhcGkiOiAiQVBJIg0KICAgIH0sDQogICAgInVzZXJuYW1lIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiVXNlcm5hbWUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIlVzZXJuYW1lIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAicGFzc3dvcmQiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJQYXNzd29yZCIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiUGFzc3dvcmQiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJjb25maXJtIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiQ29uZmlybSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiUGFzc3dvcmQgY29uZmlybSIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgIndlYiI6DQogICAgew0KICAgICAgInRpdGxlIjogIldlYiBBY2Nlc3MiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgInBtcyI6DQogICAgew0KICAgICAgInRpdGxlIjogIlBNUyBBY2Nlc3MiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgIm0zdSI6DQogICAgew0KICAgICAgInRpdGxlIjogIk0zVSBBY2Nlc3MiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgInhtbCI6DQogICAgew0KICAgICAgInRpdGxlIjogIlhNTCBBY2Nlc3MiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgImFwaSI6DQogICAgew0KICAgICAgInRpdGxlIjogIkFQSSBBY2Nlc3MiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0NCiAgfSwNCiAgInNldHRpbmdzIjoNCiAgew0KICAgICJjYXRlZ29yeSI6DQogICAgew0KICAgICAgImdlbmVyYWwiOiAiR2VuZXJhbCIsDQogICAgICAiZmlsZXMiOiAiRmlsZXMiLA0KICAgICAgInN0cmVhbWluZyI6ICJTdHJlYW1pbmciLA0KICAgICAgImJhY2t1cCI6ICJCYWNrdXAiLA0KICAgICAgImF1dGhlbnRpY2F0aW9uIjogIkF1dGhlbnRpY2F0aW9uIg0KICAgIH0sDQogICAgInVwZGF0ZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIlNjaGVkdWxlIGZvciB1cGRhdGluZyAoUGxheWxpc3QsIFhNTFRWLCBCYWNrdXApIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIwMDAwLDEwMDAsMjAwMCIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiVGltZSBpbiAyNCBob3VyIGZvcm1hdCAoMDgwMCA9IDg6MDAgYW0pLiBNb3JlIHRpbWVzIGNhbiBiZSBlbnRlcmVkIGNvbW1hIHNlcGFyYXRlZC4gTGVhdmUgdGhpcyBmaWVsZCBlbXB0eSBpZiBubyB1cGRhdGVzIGFyZSB0byBiZSBjYXJyaWVkIG91dC4iDQogICAgfSwNCiAgICAiYXBpIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiQVBJIEludGVyZmFjZSIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiVmlhIEFQSSBpbnRlcmZhY2UgaXQgaXMgcG9zc2libGUgdG8gc2VuZCBjb21tYW5kcyB0byB4VGVWZS4gQVBJIGRvY3VtZW50YXRpb24gaXMgPGEgaHJlZj0naHR0cHM6Ly9naXRodWIuY29tL3h0ZXZlLXByb2plY3QveFRlVmUtRG9jdW1lbnRhdGlvbi9ibG9iL21hc3Rlci9lbi9jb25maWd1cmF0aW9uLm1kI2FwaSc+aGVyZTwvYT4iDQogICAgfSwNCiAgICAiZXBnU291cmNlIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiRVBHIFNvdXJjZSIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiUE1TOjxicj4tIFVzZSBFUEcgZGF0YSBmcm9tIFBsZXggb3IgRW1ieSA8YnI+PGJyPlhFUEc6PGJyPi0gVXNlIG9mIG9uZSBvciBtb3JlIFhNTFRWIGZpbGVzPGJyPi0gQ2hhbm5lbCBtYW5hZ2VtZW50PGJyPi0gTTNVIC8gWE1MVFYgZXhwb3J0IChIVFRQIGxpbmsgZm9yIElQVFYgYXBwcykiDQogICAgfSwNCiAgICAidHVuZXIiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJOdW1iZXIgb2YgVHVuZXJzIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJOdW1iZXIgb2YgcGFyYWxsZWwgY29ubmVjdGlvbnMgdGhhdCBjYW4gYmUgZXN0YWJsaXNoZWQgdG8gdGhlIHByb3ZpZGVyLjxicj5BdmFpbGFibGUgZm9yOiBQbGV4LCBFbWJ5IChIREhSKSwgTTNVICh3aXRoIGFjdGl2ZSBidWZmZXIpLjxicj5BZnRlciBhIGNoYW5nZSwgeFRlVmUgbXVzdCBiZSBkZWxldGUgaW4gdGhlIFBsZXggLyBFbWJ5IERWUiBzZXR0aW5ncyBhbmQgc2V0IHVwIGFnYWluLiINCiAgICB9LA0KICAgICJmaWxlc1VwZGF0ZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIlVwZGF0ZXMgYWxsIGZpbGVzIGF0IHN0YXJ0dXAiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIlVwZGF0ZXMgYWxsIHBsYXlsaXN0cywgdHVuZXIgYW5kIFhNTFRWIGZpbGVzIGF0IHN0YXJ0dXAuIg0KICAgIH0sDQogICAgImNhY2hlSW1hZ2VzIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiSW1hZ2UgQ2FjaGluZyIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiQWxsIGltYWdlcyBmcm9tIHRoZSBYTUxUViBmaWxlIGFyZSBjYWNoZWQsIGFsbG93aW5nIGZhc3RlciByZW5kZXJpbmcgb2YgdGhlIGdyaWQgaW4gdGhlIGNsaWVudC48YnI+RG93bmxvYWRpbmcgdGhlIGltYWdlcyBtYXkgdGFrZSBhIHdoaWxlIGFuZCB3aWxsIGJlIGRvbmUgaW4gdGhlIGJhY2tncm91bmQuIg0KICAgIH0sDQogICAgInJlcGxhY2VFbXB0eUltYWdlcyI6DQogICAgew0KICAgICAgInRpdGxlIjogIlJlcGxhY2UgbWlzc2luZyBwcm9ncmFtIGltYWdlcyIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiSWYgdGhlIHBvc3RlciBpbiB0aGUgWE1MVFYgcHJvZ3JhbSBpcyBtaXNzaW5nLCB0aGUgY2hhbm5lbCBsb2dvIHdpbGwgYmUgdXNlZC4iDQogICAgfSwNCiAgICAieHRldmVBdXRvVXBkYXRlIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiQXV0b21hdGljIHVwZGF0ZSBvZiB4VGVWZSIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiSWYgYSBuZXcgdmVyc2lvbiBvZiB4VGVWZSBpcyBhdmFpbGFibGUsIGl0IHdpbGwgYmUgYXV0b21hdGljYWxseSBpbnN0YWxsZWQuIFRoZSB1cGRhdGVzIGFyZSBkb3dubG9hZGVkIGZyb20gR2l0SHViLiINCiAgICB9LA0KICAgICJzdHJlYW1CdWZmZXJpbmciOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJTdHJlYW0gQnVmZmVyIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJGdW5jdGlvbnMgb2YgdGhlIGJ1ZmZlcjo8YnI+LSBUaGUgc3RyZWFtIGlzIHBhc3NlZCBmcm9tIHhUZVZlLCBGRm1wZWcgb3IgVkxDIHRvIFBsZXgsIEVtYnkgb3IgTTNVIFBsYXllcjxicj4tIFNtYWxsIGplcmtpbmcgb2YgdGhlIHN0cmVhbXMgY2FuIGJlIGNvbXBlbnNhdGVkPGJyPi0gSExTIC8gTTNVOCBzdXBwb3J0PGJyPi0gUlRQIC8gUlRQUyBzdXBwb3J0IChvbmx5IEZGbXBlZyBvciBWTEMpPGJyPi0gUmUtc3RyZWFtaW5nPGJyPi0gU2VwYXJhdGUgdHVuZXIgbGltaXQgZm9yIGVhY2ggcGxheWxpc3QiLA0KICAgICAgImluZm9fZmFsc2UiOiAiTm8gQnVmZmVyIChDbGllbnQgY29ubmVjdHMgdG8gdGhlIHN0cmVhbWluZyBzZXJ2ZXIpIiwNCiAgICAgICJpbmZvX3h0ZXZlIjogInhUZVZlIGNvbm5lY3RzIHRvIHRoZSBzdHJlYW1pbmcgc2VydmVyIiwNCiAgICAgICJpbmZvX2ZmbXBlZyI6ICJGRm1wZWcgY29ubmVjdHMgdG8gdGhlIHN0cmVhbWluZyBzZXJ2ZXIiLA0KICAgICAgImluZm9fdmxjIjogIlZMQyBjb25uZWN0cyB0byB0aGUgc3RyZWFtaW5nIHNlcnZlciINCg0KICAgIH0sDQogICAgInVkcHh5IjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiVURQeHkgYWRkcmVzcyIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiVGhlIGFkZHJlc3Mgb2YgeW91ciBVRFB4eSBzZXJ2ZXIuIElmIHNldCwgYW5kIHRoZSBjaGFubmVsIFVSTHMgaW4gdGhlIG0zdSBpcyBtdWx0aWNhc3QsIHhUZVZlIHdpbGwgcmV3cml0ZSBpdCBzbyB0aGF0IGl0IGlzIGFjY2Vzc2VkIHZpYSB0aGUgVURQeHkgc2VydmljZS4iLA0KICAgICAgInBsYWNlaG9sZGVyIjogImhvc3Q6cG9ydCINCiAgICB9LA0KICAgICJmZm1wZWdQYXRoIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiRkZtcGVnIEJpbmFyeSBQYXRoIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJQYXRoIHRvIEZGbXBlZyBiaW5hcnkuIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIvcGF0aC90by9mZm1wZWciDQogICAgfSwNCiAgICAiZmZtcGVnT3B0aW9ucyI6DQogICAgew0KICAgICAgInRpdGxlIjogIkZGbXBlZyBPcHRpb25zIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJGRm1wZWcgb3B0aW9ucy48YnI+T25seSBjaGFuZ2UgaWYgeW91IGtub3cgd2hhdCB5b3UgYXJlIGRvaW5nLjxicj5MZWF2ZSBibGFuayB0byBzZXQgZGVmYXVsdCBzZXR0aW5ncy4iLA0KICAgICAgInBsYWNlaG9sZGVyIjogIkxlYXZlIGJsYW5rIHRvIHNldCBkZWZhdWx0IHNldHRpbmdzIg0KICAgIH0sDQogICAgInZsY1BhdGgiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJWTEMgLyBDVkxDIEJpbmFyeSBQYXRoIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJQYXRoIHRvIFZMQyAvIENWTEMgYmluYXJ5LiIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiL3BhdGgvdG8vY3ZsYyINCiAgICB9LA0KICAgICJ2bGNPcHRpb25zIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiVkxDIC8gQ1ZMQyBPcHRpb25zIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJWTEMgLyBDVkxDIG9wdGlvbnMuPGJyPk9ubHkgY2hhbmdlIGlmIHlvdSBrbm93IHdoYXQgeW91IGFyZSBkb2luZy48YnI+TGVhdmUgYmxhbmsgdG8gc2V0IGRlZmF1bHQgc2V0dGluZ3MuIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJMZWF2ZSBibGFuayB0byBzZXQgZGVmYXVsdCBzZXR0aW5ncyINCiAgICB9LA0KICAgICJidWZmZXJTaXplIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiQnVmZmVyIFNpemUiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIkJ1ZmZlciBzaXplIGluIE1CLjxicj5NM1U4OiBJZiB0aGUgVFMgc2VnbWVudCBzbWFsbGVyIHRoZW4gdGhlIGJ1ZmZlciBzaXplLCB0aGUgZmlsZSBzaXplIG9mIHRoZSBzZWdtZW50IGlzIHVzZWQuIg0KICAgIH0sDQogICAgImJ1ZmZlclRpbWVvdXQiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJUaW1lb3V0IGZvciBuZXcgY2xpZW50IGNvbm5lY3Rpb25zIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJUaGUgeFRlVmUgYnVmZmVyIHdhaXRzIHVudGlsIG5ldyBjbGllbnQgY29ubmVjdGlvbnMgYXJlIGVzdGFibGlzaGVkLiBIZWxwZnVsIGZvciBmYXN0IGNoYW5uZWwgc3dpdGNoaW5nLiBWYWx1ZSBpbiBtaWxsaXNlY29uZHMuIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIxMDAiDQogICAgfSwNCiAgICAidXNlckFnZW50IjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiVXNlciBBZ2VudCIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiVXNlciBBZ2VudCBmb3IgSFRUUCByZXF1ZXN0cy4gRm9yIGV2ZXJ5IEhUVFAgY29ubmVjdGlvbiwgdGhpcyB2YWx1ZSBpcyB1c2VkIGZvciB0aGUgdXNlciBhZ2VudC4gU2hvdWxkIG9ubHkgYmUgY2hhbmdlZCBpZiB4VGVWZSBpcyBibG9ja2VkLiIsDQogICAgICAicGxhY2Vob2xkZXIiOiAieFRlVmUiDQogICAgfSwNCiAgICAiYmFja3VwUGF0aCI6DQogICAgew0KICAgICAgInRpdGxlIjogIkxvY2F0aW9uIGZvciBhdXRvbWF0aWMgYmFja3VwcyIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiL21udC9kYXRhL2JhY2t1cC94dGV2ZS8iLA0KICAgICAgImRlc2NyaXB0aW9uIjogIkJlZm9yZSBhbnkgdXBkYXRlIG9mIHRoZSBwcm92aWRlciBkYXRhIGJ5IHRoZSBzY2hlZHVsZSwgeFRlVmUgY3JlYXRlcyBhIGJhY2t1cC4gVGhlIHBhdGggZm9yIHRoZSBhdXRvbWF0aWMgYmFja3VwcyBjYW4gYmUgY2hhbmdlZC4geFRlVmUgcmVxdWlyZXMgd3JpdGUgcGVybWlzc2lvbiBmb3IgdGhpcyBmb2xkZXIuIg0KICAgIH0sDQogICAgInRlbXBQYXRoIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiTG9jYXRpb24gZm9yIHRoZSB0ZW1wb3JhcnkgZmlsZXMiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIi90bXAveHRldmUvIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJMb2NhdGlvbiBmb3IgdGhlIGJ1ZmZlciBmaWxlcy4iDQogICAgfSwNCiAgICAiYmFja3VwS2VlcCI6DQogICAgew0KICAgICAgInRpdGxlIjogIk51bWJlciBvZiBiYWNrdXBzIHRvIGtlZXAiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIk51bWJlciBvZiBiYWNrdXBzIHRvIGtlZXAuIE9sZGVyIGJhY2t1cHMgYXJlIGF1dG9tYXRpY2FsbHkgZGVsZXRlZC4iDQogICAgfSwNCiAgICAiYXV0aGVudGljYXRpb25XRUIiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJXRUIgQXV0aGVudGljYXRpb24iLA0KICAgICAgImRlc2NyaXB0aW9uIjogIkFjY2VzcyB0byB0aGUgd2ViIGludGVyZmFjZSBvbmx5IHBvc3NpYmxlIHdpdGggY3JlZGVudGlhbHMuIg0KICAgIH0sDQogICAgImF1dGhlbnRpY2F0aW9uUE1TIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiUE1TIEF1dGhlbnRpY2F0aW9uIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJQbGV4IHJlcXVlc3RzIGFyZSBvbmx5IHBvc3NpYmxlIHdpdGggYXV0aGVudGljYXRpb24uIDxicj48Yj5XYXJuaW5nISEhPC9iPiBBZnRlciBhY3RpdmF0aW5nIHRoaXMgZnVuY3Rpb24geFRlVmUgbXVzdCBiZSBkZWxldGUgaW4gdGhlIFBNUyBEVlIgc2V0dGluZ3MgYW5kIHNldCB1cCBhZ2Fpbi4iDQogICAgfSwNCiAgICAiYXV0aGVudGljYXRpb25NM1UiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJNM1UgQXV0aGVudGljYXRpb24iLA0KICAgICAgImRlc2NyaXB0aW9uIjogIkRvd25sb2FkaW5nIHRoZSB4dGV2ZS5tM3UgZmlsZSB2aWEgYW4gSFRUUCByZXF1ZXN0IGlzIG9ubHkgcG9zc2libGUgd2l0aCBhdXRoZW50aWNhdGlvbi4iDQogICAgfSwNCiAgICAiYXV0aGVudGljYXRpb25YTUwiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJYTUwgQXV0aGVudGljYXRpb24iLA0KICAgICAgImRlc2NyaXB0aW9uIjogIkRvd25sb2FkaW5nIHRoZSB4dGV2ZS54bWwgZmlsZSB2aWEgYW4gSFRUUCByZXF1ZXN0IGlzIG9ubHkgcG9zc2libGUgd2l0aCBhdXRoZW50aWNhdGlvbiINCiAgICB9LA0KICAgICJhdXRoZW50aWNhdGlvbkFQSSI6DQogICAgew0KICAgICAgInRpdGxlIjogIkFQSSBBdXRoZW50aWNhdGlvbiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiQWNjZXNzIHRvIHRoZSBBUEkgaW50ZXJmYWNlIGlzIG9ubHkgcG9zc2libGUgd2l0aCBhdXRoZW50aWNhdGlvbi4iDQogICAgfQ0KICB9LA0KICAid2l6YXJkIjoNCiAgew0KICAgICJlcGdTb3VyY2UiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJFUEcgU291cmNlIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJQTVM6PGJyPi0gVXNlIEVQRyBkYXRhIGZyb20gUGxleCBvciBFbWJ5IDxicj48YnI+WEVQRzo8YnI+LSBVc2Ugb2Ygb25lIG9yIG1vcmUgWE1MVFYgZmlsZXM8YnI+LSBDaGFubmVsIG1hbmFnZW1lbnQ8YnI+LSBNM1UgLyBYTUxUViBleHBvcnQgKEhUVFAgbGluayBmb3IgSVBUViBhcHBzKSINCiAgICB9LA0KICAgICJ0dW5lciI6DQogICAgew0KICAgICAgInRpdGxlIjogIk51bWJlciBvZiB0dW5lcnMiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIk51bWJlciBvZiBwYXJhbGxlbCBjb25uZWN0aW9ucyB0aGF0IGNhbiBiZSBlc3RhYmxpc2hlZCB0byB0aGUgcHJvdmlkZXIuPGJyPkF2YWlsYWJsZSBmb3I6IFBsZXgsIEVtYnkgKEhESFIpLCBNM1UgKHdpdGggYWN0aXZlIGJ1ZmZlcikuPGJyPkFmdGVyIGEgY2hhbmdlLCB4VGVWZSBtdXN0IGJlIGRlbGV0ZSBpbiB0aGUgUGxleCAvIEVtYnkgRFZSIHNldHRpbmdzIGFuZCBzZXQgdXAgYWdhaW4uIg0KICAgIH0sDQogICAgIm0zdSI6DQogICAgew0KICAgICAgInRpdGxlIjogIk0zVSBQbGF5bGlzdCIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiRmlsZSBwYXRoIG9yIFVSTCBvZiB0aGUgTTNVIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJMb2NhbCBvciByZW1vdGUgcGxheWxpc3RzIg0KICAgIH0sDQogICAgInhtbHR2IjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiWE1MVFYgRmlsZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiRmlsZSBwYXRoIG9yIFVSTCBvZiB0aGUgWE1MVFYiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIkxvY2FsIG9yIHJlbW90ZSBYTUxUViBmaWxlIg0KICAgIH0NCiAgfSwNCiAgImxvZ2luIjoNCiAgew0KICAgICJmYWlsZWQiOiAiVXNlciBhdXRoZW50aWNhdGlvbiBmYWlsZWQiLA0KICAgICJoZWFkbGluZSI6ICJMb2dpbiIsDQogICAgInVzZXJuYW1lIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiVXNlcm5hbWUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIlVzZXJuYW1lIg0KICAgIH0sDQogICAgInBhc3N3b3JkIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiUGFzc3dvcmQiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIlBhc3N3b3JkIg0KICAgIH0NCiAgfSwNCiAgImFjY291bnQiOg0KICB7DQogICAgImZhaWxlZCI6ICJQYXNzd29yZCBkb2VzIG5vdCBtYXRjaCIsDQogICAgImhlYWRsaW5lIjogIkNyZWF0ZSB1c2VyIGFjY291bnQiLA0KICAgICJ1c2VybmFtZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIlVzZXJuYW1lIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJVc2VybmFtZSINCiAgICB9LA0KICAgICJwYXNzd29yZCI6DQogICAgew0KICAgICAgInRpdGxlIjogIlBhc3N3b3JkIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJQYXNzd29yZCINCiAgICB9LA0KICAgICJjb25maXJtIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiQ29uZmlybSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiQ29uZmlybSINCiAgICB9DQogIH0NCn0=" + webUI["html/login.html"] = "PCFkb2N0eXBlIGh0bWw+DQo8aHRtbD4NCiAgPGhlYWQ+DQogICAgPG1ldGEgY2hhcnNldD0idXRmLTgiPg0KICAgIDxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgsIGluaXRpYWwtc2NhbGU9MS4wIiAvPiANCiAgICA8dGl0bGU+eFRlVmU8L3RpdGxlPg0KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iY3NzL3NjcmVlbi5jc3MiIHR5cGU9InRleHQvY3NzIj4NCiAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9ImNzcy9iYXNlLmNzcyIgdHlwZT0idGV4dC9jc3MiPg0KICAgIDxzY3JpcHQgbGFuZ3VhZ2U9ImphdmFzY3JpcHQiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJqcy9uZXR3b3JrX3RzLmpzIj48L3NjcmlwdD4NCiAgICA8c2NyaXB0IGxhbmd1YWdlPSJqYXZhc2NyaXB0IiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ianMvYXV0aGVudGljYXRpb25fdHMuanMiPjwvc2NyaXB0Pg0KICA8L2hlYWQ+DQoNCiAgICA8Ym9keT4NCiAgICAgICAgICANCiAgICAgIDxkaXYgaWQ9ImhlYWRlciIgY2xhc3M9ImltZ0NlbnRlciI+PC9kaXY+DQoNCiAgICAgIDxkaXYgaWQ9ImJveCI+DQoNCiAgICAgICAgPGRpdiBpZD0iaGVhZGxpbmUiPg0KICAgICAgICAgIDxoMSBpZD0iaGVhZC10ZXh0IiBjbGFzcz0iY2VudGVyIj57ey5sb2dpbi5oZWFkbGluZX19PC9oMT4NCiAgICAgICAgPC9kaXY+DQoNCiAgICAgICAgPHAgaWQ9ImVyciIgY2xhc3M9ImVycm9yTXNnIGNlbnRlciI+e3suYXV0aGVudGljYXRpb25FcnJ9fTwvcD4NCg0KICAgICAgICA8ZGl2IGlkPSJjb250ZW50Ij4NCg0KICAgICAgICAgICAgPGZvcm0gaWQ9ImF1dGhlbnRpY2F0aW9uIiBhY3Rpb249IiIgbWV0aG9kPSJwb3N0Ij4NCg0KICAgICAgICAgICAgICA8aDU+e3subG9naW4udXNlcm5hbWUudGl0bGV9fTo8L2g1Pg0KICAgICAgICAgICAgICA8aW5wdXQgaWQ9InVzZXJuYW1lIiB0eXBlPSJ0ZXh0IiBuYW1lPSJ1c2VybmFtZSIgcGxhY2Vob2xkZXI9IlVzZXJuYW1lIiB2YWx1ZT0iIj4NCiAgICAgICAgICAgICAgPGg1Pnt7LmxvZ2luLnBhc3N3b3JkLnRpdGxlfX06PC9oNT4NCiAgICAgICAgICAgICAgPGlucHV0IGlkPSJwYXNzd29yZCIgdHlwZT0icGFzc3dvcmQiIG5hbWU9InBhc3N3b3JkIiBwbGFjZWhvbGRlcj0iUGFzc3dvcmQiIHZhbHVlPSIiPg0KDQogICAgICAgICAgICA8L2Zvcm0+DQoNCiAgICAgICAgPC9kaXY+DQoNCiAgICAgICAgPGRpdiBpZD0iYm94LWZvb3RlciI+DQogICAgICAgICAgPGlucHV0IGlkPSJzdWJtaXQiIGNsYXNzPSIiIHR5cGU9ImJ1dHRvbiIgdmFsdWU9Int7LmJ1dHRvbi5sb2dpbn19IiBvbmNsaWNrPSJqYXZhc2NyaXB0OiBsb2dpbigpOyI+DQogICAgICAgIDwvZGl2Pg0KICAgICAgICANCiAgICAgIDwvZGl2Pg0KDQogICAgPC9ib2R5Pg0KICAgIA0KPC9odG1sPg==" + webUI["html/video/stream-limit.ts"] = "R0AREABC8CUAAcEAAP8B/wAB/IAUSBIBBkZGbXBlZwlTZXJ2aWNlMDF3fEPK//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////9HQAAQAACwDQABwQAAAAHwACqxBLL//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////0dQABAAArASAAHBAADhAPAAG+EA8AAVvU1W////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////R0EAMAdQAAB7DH4AAAAB4AAAgMAKMQAJEKERAAfYYQAAAAEJ8AAAAAFnZAAorNlAeAIn5cBEAAADAAQAAAMAyDxgxlgAAAABaOvjyyLAAAABBgX//6rcRem95tlIt5Ys2CDZI+7veDI2NCAtIGNvcmUgMTUyIHIyODU0IGU5YTU5MDMgLSBILjI2NC9NUEVHLTQgQVZDIGNvZGVjIC0gQ29weWxlZnQgMjAwMy0yMDE3IC0gaHR0cDovL3dHAQARd3cudmlkZW9sYW4ub3JnL3gyNjQuaHRtbCAtIG9wdGlvbnM6IGNhYmFjPTEgcmVmPTMgZGVibG9jaz0xOjA6MCBhbmFseXNlPTB4MzoweDExMyBtZT1oZXggc3VibWU9NyBwc3k9MSBwc3lfcmQ9MS4wMDowLjAwIG1peGVkX3JlZj0xIG1lX3JhbmdlPTE2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ACqxBLL//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////0dQABEAArASAAHBAADhAPAAG+EA8AAVvU1W////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////RwEAGO10tGlFAwyE91Tzg8923ovJk1dv2xh1gVlYQFtWdZ6NSQ8vgHM7/tMfIZPsqgCU856rdBJJRMDaor/oWA7pkvSmC2aqaC5fd/mkWUPTuG8fRhGqOY1rKxLNSI3HtTQAcuVBxRM0NfMw0ky/JMJYZiCgXcNsxpxl+khr/9fKtO5Fg2VNBti92xcZimHUZDJMQTBOY6vSR9L1N2O/kJQCpdfuc9bkcUTMjH/es/lAySxvbiislkohqkpHAQAZVatwHI0t9eHCUfDyWUEtuCNyDwQFOVMtaYEQJrTrhQX0VduT86F0u0wN9ag0uPsrmX6Rid/x5S7KI1SkS+qP6cdmgSP57uiF4dG6IKsWNfGBLY09H/CFlrg73WINQkkp2diKkdEmtZetn8+ZAKzR5eXN5FebiKt6pIkNLuSofjosypEs2o6boKsfpmbtOV0idOeWDM9C8EIcn3aZwk1s2KBDvt1DlY+i2Cuvhk3XoKLT+pq/bOC5QkcBABolcOXneZXLoQw9W1PH1f/of92Ytjj8okrWijcQAKlE5l8XoTb9qrOiZnDOhqwcMlB9H9rorq041I89hChohYoSkJElcM8V+r8WYN5axD1BNyfwaHAOm4UN2/VEYOkNSfMjmx2S0WW/F2ha8Jj4fc4QgqcXr+TnnbwqLkLTValK4Qa1pcv7PIbDq6zCUfxe04guZ8xEhPQjp17/G6IB/6uqIuo7pzuN2ILWNmJBMsawAinQy0KHE7HQRwEAGz1R+tt0cmQSjo1isoOsDDDIp3Tmizsn67P/OcHe/0kDfOxZ64ySuxIIL/dIIzhjEvRAf7spa1ZKukufXffNiEUgf2Dh1+Svgx4pc4AR8v3Kp5DA2FPhKaNALz2OOqAZkq4APojoxUc4cQJzOVMx3nKPN7LUwaZe9h5UYz/rr+O7LMCCGQBmZv+T+vfZ7MH+hgR0RuIm2WDgK0xWnYsjYgpdhPkOFmR9ypsthtXh18/3M3tIcz9yoZVHAQAcD8cm9dXbHuN4+yGebTg8JOyIFoRImB2o8d5inS5OiJXyBrySVrU4Fa1MzjPYLNulucjXgAAIoPdc/bfDnuKIc/a9sheUEUfQrQ448VMZ//WQwDCe5igCPqKczFJKJlDdha+0Q5QIimmwUxYyfbvp26689j/qAOiUFcqTfas3Q+SvP/xhToXvE9eJPwsbS6RH7k01YATeMm0rydZVwAxxrLS9pyCenFWkXN1PaPL/Poy9IQyFK00RNkcBAB3yQSzlj6PoCoBh32QZwW5Q1kSeVBOU7Do3dvkhOL5NnUI4ttFWYv1PMol7ZoW+Yj/GGQY5BB31FcMnl+YPTIJxJrh4ZXzrdaRUJAdJZ4Zfu/UuKVp597MBazkkqo6VZ+kaIa55znw1YrruHcZmImU3xw2gtDjOORIJditem0geEQwoVrxrKPS/+4ODbBhxPi0X10lBjIPGs3x+M84+ebMH1YsfbnxbPnYFG1YKifvd0N91ocx+DK3FRwEAHuKZ7ozvu2wsrpTRpTlKdI+uDOb1ROwsQ/sPFlaMgNtRfOmWhxG26B7kHd5ZLZe0cuEdA1sE5tjAIhqFLLNQCJkvcZ4vsFUG7Sd/21dRP1RxoEMqYzoAmHx7P8/1oFhPG3LyqmFm4Yg/8On9yygdzEcENDcwT0pW3gQgwMtqy0pNWA/iwHhUtT8pAZ0J9MIn0L86JkKL7IEsUy3h4MTqYfiCnE+E63xb1o0ig06TZr6WWPr/aVBCa9BHAQAfu9S4KEn/4HBrNuHU6wD5ScTeQ5t1rKcrO3OIA8IBCnH24QceeDn376IBFsMWypXDR/z6EAAAAwAAFhs+36OpsPrZqefoW5lZtwn5uW02DNDJn0WzXKHvi3VeD2ArLGEmY4UT5EykLlpp+24W4mnq0/b0DpKJGeP9/gmXd8dzAqzG/rAzwnD9R7efBvEg8vhF9rv1T4ak45NvSySq1WefGcipvYXEldjS7JUY1mWc9acYUQg0ONaQ30cBABAwN2JhmEe1e59DNT+kVr8blx2elmAQT6EbQ4aJAw3xeVjTHRFb1LHG4B7ggA9XA1ul3JePxANqg1S6yIpH3Pk+JGGaBgrgqC6+c1B8NDAnG/HE1v29xLaIF9kt/+XaLnfua/FzVNXtV5+ABnuVcJ8w1ARgdiewIev1oAkHX50VncMg23r2UgeqhxhYRWUdJW3xKXRzwBwW6fD6JB1E+e+tksyeQua9Mo9l+MjL+YOsS78h6Pto1PEpRwEAEY912w+d5D8ZhXzwlBcjKTsJgplzEsdxYDppRR3rwhgmZEEhxKYSAbR82MVWL6LRj1W5G/m/im/3mWc7OSyaTZDGJPilsghWdgIPUNP8yU7b2HiApE4goxjc/XdUAJo+LAMHEn8ZYHRJQ2fwVxf1ZbBsOqEcglft1bdl4weUIQvU7TRRBdd66RlcPo7or5OkhTlvG6fwWv2v6zPg38hAkGcANEb27RFoj3LmLgoqWA4OoSA4CIGnCl9HAQASFZYomwyHjvRRnlD0n6T1BYm652Lp0fAaojKnPakdQd++WlJsnPu5fjEzRo6Zg+EwLTvnHjKNQw5cExyWfk8hJqp3LsegNx/7u+Ezd/6MNodhmzPoF+LTb6BCFbCPwHgJ4bUp1YUWr7tyb4xYdEojhhTJ140OyFMrCkStDb+PEL/WJqFTw56zpU1aQWK/0cNp69jvTcJtgsskEkL0EMJeakI3/xQFHjmKzi/Rr9Cjd/nnx3mAedwYCkcBABMdbTIM6Kwho8RL8QYLZJwgeneAEc+qJ6nhLMzzHdDzXQSgQ6+KioMAhQLKbChryo1vOBWhCRT1e/6z1L6ApYgZAtuQDXWsKPfOrNSkf0JFonpGE4omnNnaQ6eUvsVoGnne+AAAAwAACOn9aEgzsgB6/iB10jVeKJi6jpoN2IlhkaPjUXiO/7/MTfMgvYkifLFmIi0qbyzxMv/f+9XFf5k4RflW2Qu0ZutzUKznuY7Ml8Ma0LIJR5x4RwEAFIJhwbdbbmXWxS4/Vj6rtX1NX60Ar+fetTN6P+mshdJt0rv/Pv+R/N5ZgUp/8e9tYrxYZz5b+4C3VXaruuHouUR5YKRlA4RNmcacgaxGDz6Ca+00EE1rXyGy/03udWMQPPkWEJmXU3g7bzSrIFytreC+EZNfVkgMuPYLTgxkvKA+e7H9PmmwLojNZdgTQi7Nala/tVnLQGAthQztBYI0y9H/uXju0axwnmopNvjdtPwMvhjMckg7EPFHAQAVTtct+JOyBmPENfuD3Y5En8dkZH+5jhAWPYgWv4INxpckQWu/979vIi/wJWGJFGJDMP//cfilLsEkQwH7CA3+wYURzLAu61mtmR/VG1qnqt0F92iYVULqF7CH1YVu0GcGsvnYLtWRfiKV47jT2HUCgtJUeL5QanujI43Kxdf8eiakEZkWiAQy4Nfvgw5zROnWOatZImIJHSL7RNmC3XNLFVvnrY6xKQNoReMVpcH8Sj7xTe/R0yy570cBABbh7k1iSoUoMqQYxOJodbHu9zS3msCs25Nqb3ZDhCtdWOsqvKvtrPZQ4XcOI+a6ihG/Ycmd+asxHg3VrQ6JG/pzFphe9c8TRV5yfWJYQgpoboaMniM5ppcybB53KlDIcab7dSYrttrbaYJBYUACFIyck+sfCXgCdAAAVAAAAwAAAwDDQAAAAwAEeAAAAwAAEiAAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMARwEAFwADAAADAAADASlycnNTmxnyBLcXsWz8h6WF0kYTGhHP8asasyLeBzDJ9gp5mHMGnpKbAjmdyZKkqLM/GPx32j5xbE1B/4BVb1CqOUh708D4c8SgbK4l8oH+7ntXSn+1ucd/8/mpMXAZkli7GqwRswPkf3iy73pwD0Lj1jtsvFV5Ya9pbK5XPJvnr5kAh5B2olRuayQficqQun3BaA+TLwI4Pet5fRsuu/NlLyByr9A+ZDEAkVGe729HAQAY7VmiGx1Ogtz4HMMQQAAAAwAQxL11ZI096au1I6RJP/y/sIb/M3lrvj7OsbbcGYu6AFxP7TCvVbqcDnZvz4Jvg3J9UCcXOZAawA8hwlkNrWHVOW4QQUMqCRS0hmubAxYpievo+EKMZFclBcpqmos+6tIq4yYuMm2mU7SHT2YXfi/smSQKGiQ5rOUPvaDibyW27+4HGz/LOV8On1IosaigeYiM2kPhtAMzDBMgFmkypIjkGoaWQ2xfZUcBABkLYUBb/feXPFLHLSkevtM5lBKWRqKPo2s10TOMa1i1iUxgwMr46RICL6ewK5XDbHNlzaD0EO+haLSR8mJrKjyktTxR1qF8CF8YpGNK3b4rtbZ68pn1Cycf8FMjDYTuNUCw6TyJQxAu6CFGaFgpS2pApj2wxHhN9xe7Bk8+zHQy+mNy9AV5Dn+ckwd78CNrtfT4JPGDeXq/oqpr2VwJCtXI2pz1d/eGU5RWvauNYDbJumMcZmoDLRQLRwEAGksa3WjicuJEvpE/WKZapUatBGpvl3Y/7YU/cd3HnppRvayufhAU+rp5PXdQB48ZjNRSQF0OzYiZ40gXb5wwhN+lDw86ULPV/R5FF8e7rR0Ncne5CJseKGSSKJdN7N6mE0WowZrVoslYamlOFF9EepFYXcul3MWr/8sHaW2ivgv6USTm9wmys9O5TTRogkLCkV51bMO5Nf26bSlsf8MHa5paD9RLq5PZ/O54+rQB8nL2NAZQyde1/5ZHAQAbjTU3beuNZI6wglFkDNfNBPhH6uv/MazQ4XfWwNSQ7aHrfORMZYpwCo9uHR9org13ueb/HwHvVsHHOjq6Ea6iIBWC5NjSHZ886ZqJ2f5UVzQqITMsQAvWPR/1H++IharnM3V/3vhl4qsEQGidY7vhk+jd0aVI+WqwGVjgIryjo2P+lo7eyR62jVTUHGrz8woJESAwviQcjk6RS12hH/rH/kokr884wXkNeMUbMMD1quFOgtZwYFTb6EcBABx/76VVTABvZ66Tpl7FFNKuyvTB22cx75z6QLpBGOkovrN/3stJ60KRDgSxKEQlBpm4sH3bkDmzy56AHBkdGIv/1abQQKuGoFTBBYl5+j7zE00Nj/AHdteq0oArBYZzAEvcDju230uEMV+YOfMQQiSojTVSR+4kHCTT3LvzU53EVHzD7ZmsKhyhCSrAH6um+HcPHESNZCknCIVwNRUHYWmUBQvBqQ6eFSSw3OBH8cfI92IzgTHchjeWRwEAHQ67+e5mho6aJfJ1DSfvRz6nm4wQlWUxmY3WoxgY7eSZSWnyDk5zUtxutuhTnLRwngGI2GAYptHV4/JE6hvICCrOVyXSO54J25RuUE+XqT0E9zKiKiHCd7McqAW/LG7aqUfRoGXO4+FzLs/4HJ/GEdYZb2/8tksmvDRED1XjzrAkTXnrsD+Y66hYBscvgm2D2IUm5DIirxrSHCtrDTo/P653/JPhOwcwB1ARpihyfMYpIRU/NNX2P/dHAQAe47PibRpj44bY8wv6RkvLrZAAFzeK7wAreuY1mQfzgAJ+NKZDvAL6cXghTWYbwl0vQvkUV/UXT2k+v6FWRYjSTd+EBVjBgFS6GqEzMEbQl6r/jGarqdgKOqVSDAch/A3JGSxAXRCY0U+TJ0Jss6CoiyEcz6VlcHWgVGLM715+t87wkNGc2PRJIv/m5YJ1Z5EpDjoDHEAW4ytyc7jm0Nm3P5fradcJlYNs7NA2RDK4UqyhjculF8vWWUcBAB9AptBsY/CA7o70Ymq7D+51DrpBVnhghBCERYgwY2AgCGIXmb0FP8mOi4SztMegdVsu3nYsu3wedsR4n7C3fBxFoXOtXR7jb9y2tdxaN+vE9U29rqeo09jeoE0DohbRndPDtqleKZ0M9JX1mITUVKc1h5Uyk2n4LUiu6y9FqRYqMhgnmJFyb4n0l1r0w2vEp5hZqQ6s+pincvbzhqo0cM0Eze+tLhKI5DSLp3ts9IKBsGkjflGPHcoFRwEAEK0Kf+WapwtI+Tbh9IF8OTLreFFPrGaD9iButWKDb8FZybOe1xnsUaFcof4ttxETtD5CzFPVFPrbKWQ+4i3OaCl/v3ehqlrEJFBXy6TUrtcE8imbhjou6Yp5ckgTS5NMhToX+FQ/SnHv3lG+B/oFkVnC59jZb2KObyb0IwwM3VOQwt65xyAHoBFD/3xsvJhC0UJcudSdXreuoOHVVJvvLCIDY9zLcG7Z+T1LtHLfRrJrK22yTCH+p4NHAQAR2MUOxiSRh77FN4Xq89SijTT1QcFcwJWgi7qxRPm0cvNXlOO3eKu8LzhxW+1r9oTUKe++y09Ar7D+jK7PtfcU51RJ6u9hxLL03qcNLM5F37FlVL7Ii6HRZtudEV617L76N7+dw+vfjJgAFFYNoCFVSGaWcim0NG7JY35/r6TYlg788HQMS5JTnU+fQW7OKewui/OE6wVhD5DwqIRtpx5QlRU5Du1ffsnT+4G09pqTfRhtOdkT1Jr/e0cBABJXIpvsDPvnr5cnvs8/o9CAe+0EIPMIFdgBJKfQx0TfNITZDVrus+nyfopE6lgvfrd1luEc5kas65cuQdwjHYTVCyzLN+wgmZnBOwrtSZuT00SpBvDJyiSSg9Okl8GB8uShlQ1IKC0UfSZ9E9kEbe3hBOJYk7FZrR0x179tvGBjXBx+LHlUNSKUkNm2wE0+3MB4X5VtpEfRxZXn1KxgzVENBVidWkXspbp+2vajsCIWsJ6QtRGG12dARwEAEwXVDuILuHUHe0YVozn5MeSxkHHLW6A/FhIOmBUlwa15+6I3sLvEfs/lvt3dg9qyV3WDyefrnnP8R7K1oUJffNqTYpk2x3tf1eP1lw1jCVs8Md6RfBp636Ao//6M2CJJr07dqQZ7JS2dJ4ekIlNKa6yvuzZDYgAdTjGmv4y8nUpwdH4blHePi4WE4zR9xDKjl7WopKtgXgFiw0Qygdqa0p8KMwBF4ei1J/NythnX82KmGtQh8RkVMidHAQAUkckmc83sODwEv5QRD+/8XbUZjc7OyVHeFDNLwdTrxZwbjM0oKaEYr9A9jVt2YyuIEvM4S0jx9t041mJeU4zNAAADAAD+wJN/aSH3oQjomrrvvYbLAY892upvZRpRdxKJhcO9kRE3HqOJo+dhziRHjYVsjnrEWxhlLrbQttswOzATqSgqofqVDqyptVyt+hRwQjP2Vp8jL+etFOL+4/yYP7izg3eH+ehTkGuhcXM/pL7KkZjDcM6m6EcBABV3+EtJpjSjvrKOei4iwHF3ie2AqHGbkkhaM/ciyuODy8Qubl2GxT/JLw6k3pqcQj0sjL1Eee3yEeqIFLLqgDbbBsu+x6/AxrcsalU1VpUVujcfRBm82qyIgD2l9tl96oF701i/7a3Y2ZQFsEuz3MmJWOJ8i3iAcDmtxbLyYKJQvFQB7GChv1hdsiOF8RgLQaRdOL4qjfRAOY8AIBfdooc5IgOsdbncGRZmSPD0mgjNJUKIb++krWDmRwEAFvb9EAAkNWIlXOFqNjYHpGUrwAKWtVTG32tuzoX1rF4kt6exM8j4BfAUCD9PR/47qqTLR8qo9BwTYMWR19SjX/sYsA4ADaB79JCYDTg+o/1WSVkjkATYEmjVZlaZgvwIRCEq6wRTeH9Xmt1ymBnu8BmSzdVWEdpBXybOA8Q2Hn/0qYhhfQIvJu0GJEZTY5WXUqQjT4YattfDV/vUg5h51OVXjtbE7JZfHnCjmytxSBOMbL688/hpm41HAQAXLSpU5jydyJaS3J5S2u70zpQFYtEgdjodrabpk+sY5bDt0SCAWVo3bKtWDTLQUfu1ryRljAxn9RKmG/PxLkez6l4+iAYuV78qyuuYf/r9S/VP1VPGnsRam6C37TPn0GK5RiVfAkcoBlWITztAAjwqpfifBkFp75i2Uhw1dovkWVuCWdl0JF9S6heMPqXuvZnqLty1sWwLmsjTK0RvoY+JS3OBTbQLu6RwXG54Qt/2KJBAVEDS/2HouEcBABhCnS4sa3Kf28wcXVk7uLQ/tgWCQOltgo0+fadM0nOV6Ct7HmQgh1/c+Hx+aTHqdCFmHf4U+LzI1irsvE0iygXVwq3gaxQfOpGVuNhKx40xYOJCv7GeiOHxGv1/TVcHeTggQQub0Ce7OJETW3zL2ijEvFr/90IpEJjGVcuGXlHT4YGT+sEgiww7LXPLhV+mRVs+dQCZLqkhFOOqXHIMSc1f2pjxQ/0AnMD4G19aAr6aSux4Un6zJV6eRwEAGWmqjXInxpYxmhZUgnGD4hHccy8iX7PXAzN2X5vepIyAo2Pt/3eM6VfzczMJdlQBT7OB78fa1XJvQguJXp0/IeoQXzyyq6IKbsJY/Fq8YIV8Nb7x3CLandnKjBSu5tpcBORjKSwfGB80kyqJy8MIdtD88MT5Vk2BE4Mx+qxPj1uGsNcqJokvDLyGUziFTI8XALCj6SL+RZNb5+8ejK2PZrv/JJcoL0RVzKxJ4CQ1DwiDGRZesmCcIslHAQAatdKwVX6Xfcep1RT38EuHBV7fg3RJ/PYvSJqMCFZd5lOXJh9YpTZQ0TyWNegCEGlA353UkXS0g9RdUFOMrVsBzvBlQlavBQK/tT0MV7YEiCmtKxXwz+D6E5K2HkXSztUb0L3XMYLhs4ZfWOEZ/vn5FL/6uxSlrW6irjtnM1J+bBTHmrgO5Zvx56BO7cpe7+SSYTa+P3HPNTDvnhth6RZHkIAMc+fwXod00HcrfYaEUP5vUjNisffDVEcBABtwZ7eaZH715QL+vN2lkyrfofshaE8HQ9UllaoJe4PSvUzzid3X95s8WbJv6A76JYODVx21aCqpi2ourmt/o4H9IXsSp5JsNnYOpGwb7Ju0oL/WeSNKWGSWkQug3XLox83iBBARgNDJUMkoCJQPrL9KSebkr0T6WVp2FggtoeiPsDjrsz1VlfsFkOOIIQpJmpzeLVzCsuefvxwqdnJflpQSMY6XFBVJSMRLtrQLQFOm1Y8A4UXo/gB0RwEAHEdgReRhgFYhRCwRO4hsBkniGCbjjOxpUyPGiHd8zz8D9mRud+NCP9OU30S6fwtaFSfKHhmut9b6HDHkdeFLYRj4PCRzwnibxQ/cXEblVnM47wbCN3iy4eHjYB5MoIICrSYmd8nt4V0toLs084KJlmnur5FbApYM4W79ff4oZkW88Cg8Fv8TnWhh1Hqc4UlhMbRKm2QxDgfBxar3U7BwNR6prrXXjqfR7ja3tPli+H7Jez/xcTg32QpHAQAdTa7pSSgBvmOqzz175NAFIhwE9p3d71F9jLvhaPv8q1iKopL0kizwzEWElnXWmNhfLkl/Au8KujnoKUaxVdTe+zAZm2dOkejnpNVtVj0Aw9wKcG3ZQ1iRZrUFRIoPKYlmR+oi0LrupuhYABtgPbdCbDtezGTr0nw9wVd/rZ6V+1wcoJ6+8VAVueIdwI3brqm6EoFHiI8L6lER+9SefB8fHo4NYgr/I8jSxaa/2PLX2K/DjrlY6bN8fEcBAB7DXsuh8DITF6CYWj2HTFvqfzlic3QHXnHtvsTFNpyVY1LY8y/fRK2mwALN6IB5W3OuyoKiA3K0lJdQUv2gYhHWvPTV218HYrD0rkbMxRH0SiEEkrHDeOt5T1HtWD13D2/QvMu535fsfZyeaFDjdCE9M0Xi8Lfc7Xj1ZNGend7Jo7/cEiczFkc1vB4z2JpFGZreV2EdquyEzC2STFJtfimyx8QlLngEuR1cxH+lWEcFX+mvBa/eqktIRwEAH6VazFLPNsnHZqsI66TVoArQuUUGFAzr8MT8GZ9V6qpZa5D0jA/4eGi6Kq0smUgRExnqIbSMLWqDf/Pk2YT3MpHTu9VE3Dn9blgB6KsVIkWnB98Y2n/6DrZDcF94Ndu0Ka4U/RZwdV5O5KcO+lU2ZiIOYTYZ6Ie0d+tApxYxJ+YmxaDoCyRNe6crw/yzR5SflT8ddi/E2BM+l+nwVDiKZ/714fmrBxFKWuqLiQNHV19o1cZ8Ubun+ZtHQAASAACwDQABwQAAAAHwACqxBLL//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////0dQABIAArASAAHBAADhAPAAG+EA8AAVvU1W////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////RwEAEH1s3BdtHdF1ln55B24wdACF/ggcRtPmB4IUB6cZJ+m32I4R48ZkdhAFBulgWcsv0wZwH0o1yi3i4qm3rJ98AUKdB9PsNyG9gURV0bTw4myAj6g5Dgodfv6w9bsbOxsGUWkvgAJ3rrR010BvZbIa6CMRCQRjxkCfRF77ansRJZT0JzhtYeSS/ZJob8Rr2jrng3W2rkmHtE+rdqlPiHxmwkRZvYGhBxwiJO2L6f+l/cABsfs09rA+A0pHAQAREZay3TBUIAfMWhApE+LaPgeyOYtaPFONA9aC0h4QrFkaLZfb86678MK+zLgqDBsDoj50eZHMVcczRjs4sYlv7RG8RIWKb5lB9Kn/8+CkxiiA11cHH1yzLX2SKCmhsak/+P/zYQ1EDvEj33bl9e3Jd62cTI+Qw99KrsWnUMN8hFNeXzoGHA3aec+Li4NFboF8sa6lCPR6Csxsvxw8DJaWCnER5Z0p+nKhXavF/eNHQ0DX47ohycc87UcBABKsYHCHXXe3vK1cFYDWO6rhwM6hxCdJ+/X+VB1akQejL6iBMdUPuadUqBnbprwJM0dWpSSn9uuZZeqe46iZOGIJUo69d8x+ZSvPcBH/dK1Y0LJnoWdgWH51SQg7eYqcwjQW3BOy7ZF02Hn1EhTuhsN7ms8zv3WIeEBDBq0T3Idl+Tmw9iJU9skVYiwygHG2+0XwrLa6y+uiQPwMzrnEr1kuf24XoAqrJTZQiVH3aQF4d94yDreWu2KPRwEAE2FsynHZaUcBXEFbeX0nSxZ7sRcRjJvc7RYOny6N8QFwKDVO7jpRWWYM55kuepBOyZ+7BFYeG+FU1kR+ZfmqyDNkD4D1IPwNh6u9JQxDymfN/aMcQC3WxdvCKquPsAut6dugpGkOFtIe+W3ayc4V/J978P+h1EDFMbFjxRPuXht0K2dBQZCJ0ybISUDqWzhPuep8CdxSU4MvMVfdXh7FLl/BqKJUTT+vM+Pz3XnqCQQmH5TjQ4CK55VHAQAUEtgfkBwIYgtwHkhjmtLw7HNTeJeMfTjATEKcyuKzItSeYxHBmGzQ/+G2otpPCOkVAXJ9mfx7LxrW4joZ0ttTRQJ/wqMUK1IN349LiJoo8y/+FwN4jPNDwIleJG697riqnmLOweFW8spHKLBfnHcyC1pG6EIxFpTqUQ0KHqXD/KXIHKioJNAOVwQ1Gfloxebo/Tdtd00dpHP3gcsAOnV75APCYOjVIlwm2X6ViDeZw6Btdb/Br/+yokcBABU3+eOESLlneGbR5SLiL8wPkoRaZ5X7xFlMTMvsv9yHk26bVdmsubSdbYS1Hy64n0+NnL7C1aLD7aJxOudMjVW5goZbfO2KxBQkCD4HFA284wbaB5vOL7mRilCn6YEs1kiwf22+fBLNUmXDb2p353wrD/ygTDhlki66USvUmd/ZAs9uzAddegEzy7Xn00YysWTu/hegYyZtWFC+X5dhLubWJ7n96y5wjrP7PAOXoQQtFUH9j/rBiP/7RwEAFnL/wYKYuj80mPGtimSbF/E9K7XwjwBz8yHZubmVMTCmwkZBM4h0FR1thnUGiSjqjJT6SfunWCZ/dZDQplrzS00UKcUP399SyM+nNG1br8Za0ZYwWch8nyLHYXSRuxdnrfUUespsOQo1cWSLGf0pV2HIcHoiAAEKwPU6irB5BSoFvB1qKVjgEk+QwAEYAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAABHAQA3pAD/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////AwAAAwAAAwAAAwAAAwAAAwBbwUdBABgAAAHgAACAwAoxAAmBIREAB/SBAAAAAQnwAAAAAUGaJGxDv/6plgAAAwAAAwAAAwAAAwAAAwAAAwAAAwAKCKB0AIhy1ftwLNISWucTFC7xeBcaIzP3oZjZo8uT9hqZVstWGnrPz+vjaA5FuCO+K2w7/o39LygDO7aL+0zSrN90LW7r133x8+f+PEKk8d7pd2fj4RYuMOXOYunzFzRX/4IvR1XsK5WJYwVkOca3yfo7DTvUBP9rgSiTRwEAGQD6CFK1PBC4qYCa+coLVnX+jgODNrau5YJXIekDI4+wUNV+5T5HE4e2t5EGAjn77+kC1Vghmvx8KqPnylVUvsaTofheggxHsPuxn1zQt6nA59UglrRUMn8b4pmrvfqTBSqU949+AcNAI6M/eAqz6r0RG5KNeBhx8R2f0x2kujwHU3pc3rlPb6ZrFM/2HiG97eEIezrvWFG7YAAAAwAAAwAE1KRo1VfbdZQ/tOpNGxFmTcQoFidyD2tHAQAapTTIErUKA2Rc9uIzGJu+oW0uNOxRyl6oJNUNJp5L9TIshNS1CmUKgdCaE3LkLwdE8iUkUnIGfWLiWpWmjzsINYC8dnDaSptB53yJkBu0SsR00oo1PZ0pl4ZzoXGSYQJTPaVCbj6FNqm5wcnUqKTB/rgHdPdnDj0K8asLABeo/n3XCXrDorI+LYSD1FBgmV9O7RZdjfL0NnXOQkiq/ZGirwVV0cUF1aHtZx1yHlAAZKuuu7TqB13CAUcBADuRAP///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////yj/IrOvAEoXDNGy+nrxWN0l8cmuqWYaUJpuM9XgAAADAAADAAKmR0EAPAcQAACJHH4AAAAB4AAAgMAKMQAJSOERAAkQoQAAAAEJ8AAAAAFBnkJ4hf8AAAMAAAMAAAMAAAMAAAMAAAMAAAMAC/BmhyuvLmkCgKTgACEXfOVvHRHdpBEEmTTz9pIZCa2FD0CXukzDCakOHekTpJQSdsfd7a/jjM1/5lBtKCAGQ6zOCSQ6DeKtyw+CugDuuglGipwmvQW+FIDjnZ6HRd0uaSOGy6VB3h9MI1o4nqaCqVwwIgubYZFHAQA9XgD////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////WcZrO6BEiqf8pCxYwlz2mkdUzY/ipM/TIHS4m5xQAAAMAAAMAAA5sVm90p14dlvWgBgY7XQ9KVOJKLtaMAN5KiffVQtNuzW5DfL+RewZpAAADAAADAAAQMUdBAB4AAAHgAACAgAUhAAkswQAAAAEJ8AAAAAEBnmF0Qr8AAAMAAAMAAAMAAAMAAAMAAAMAAAMAABJfBjP2+4+W7ZybyT130+Ma4WSqICfd/dS4YtjrLlmh5VBlfrtwJqdN1PBTYDkwGOOONqZQeFN6lLGJoDzvuh3kv1aDBLqug+JhvrSeu5ebnvcrtQzb2REwJL3h9mvtkr0WfDu4AAADAAADAAs32Y4C/6Ns79oCGj6oqLltY3T4I0/QRwEAP5wA//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////8BeoWLRnKQmVgO/RBoBfcK85AAAAMAAAMACFhHQQAwBxAAAJcsfgAAAAHgAACAwAoxAAllAREACUjhAAAAAQnwAAAAAQGeY2pCvwAAAwAAAwAAAwAAAwAAAwAAAwAAAwAAEmDKfLGXsvBBQPNYXlEd6WueJ4deApfcHESlG+7V6u0AiWQqJvNZYM+3Js3Lj9Ldc9yYIHqruVwfMtCYGlX3wMavI/DrhMuJw+RreIF8SKsJD8CMccAAAAMAAAMACrFZOBgEqaP/8EyWsAHV6CgcAgfyox/roEcBADGuAP//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////AAADAAADAHTBR0EAEgAAAeAAAIDACjEACfGhEQAJZQEAAAABCfAAAAABQZpoSahBaJlMCHf//qmWAAADAAADAAADAAADAAADAAADAAADAAALf8A2bry6lUyIAQGNFfVK2Cd7h4qDqmqpvmXfkfTwo2Ab79AHhajxJ4MPWIgAAA84xLRIx7I2CrWjWe96OvgkzgS9mtvhuxdzAgpuIOJI3DEY9mviDDZz8XSAAAADAAADAB7AZkj9AAHHGvk+Pzlku8UkWa5HAQAzogD//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////6HjAkbF/gsWuvw4QAAAAwAAAwAccUdBADQHEAAApTx+AAAAAeAAAIDACjEACblhEQAJgSEAAAABCfAAAAABQZ6GRREsL/8AAAMAAAMAAAMAAAMAAAMAAAMAAAMAAA3URJB/3lMHSmOd0GYZnfpoR80WdqxlyHzPX+V81VUMeXIGrRgq5agd+ACdjoGI036yQ/rmpGw0CmMBrKwpI+nwFo3SP0s1rI2yHBZaiPJjSUgw33rBkxXcq55kfLf2sAAAAwAAAwACBWolidWDnIeQAAADRwEANbEA//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////8AAAMADulHQQA2NAD///////////////////////////////////////////////////////////////////8AAAHgAACAgAUhAAmdQQAAAAEJ8AAAAAEBnqV0Qr8AAAMAAAMAAAMAAAMAAAMAAAMAAAMAABJXNihCnx11JUosH2hBE53O/YN+GPHqcnJiQBIf3maTAAj5iRt+7GYUKBAU9iCXTiouCjGYgAAAAwAAAwA9p4HQBg2cAAADAAADAADGgUdBADc4EAAAs0x+AP////////////////////////////////////////////////////////////////8AAAHgAACAwAoxAAnVgREACblhAAAAAQnwAAAAAQGep2pCvwAAAwAAAwAAAwAAAwAAAwAAAwAAAwAAAwBR6/L83y+ZevtMZ0FW4lp8qV7fVXQAhLAWlS6mDxvpaSUgChorvgTMXtxJEIAAAAMAAAMACqFCAAADAAADAAADAAz4R0EAOCsA////////////////////////////////////////////////////////AAAB4AAAgMAKMQALYiERAAnVgQAAAAEJ8AAAAAFBmqxJqEFsmUwId//+qZYAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAApQTq0hABLvkcWCYrAaRRPNDrECJGlF/11BYvG9+JJ9Y86nxnmQzPxtAAe1UgOsXAAADAAADAAADAAADAAADAAADAAADA/JHQQA5JhAAAMFcfgD/////////////////////////////////////////AAAB4AAAgMAKMQALKeERAAnxoQAAAAEJ8AAAAAFBnspFFSwv/wAAAwAAAwAAAwAAAwAAAwAAAwAAAwAADdRFmvrVE0KXDOGwWddlwYa1foib7tXZKmkua6R4APb4b8+tXwdSNNqgf2IVNwGTohgQAcMvp6SiQxpiQym4AAADAAADAANUNUAAAAMAAAMAAAMBN0dBADo8AP//////////////////////////////////////////////////////////////////////////////AAAB4AAAgIAFIQALDcEAAAABCfAAAAABAZ7pdEK/AAADAAADAAADAAADAAADAAADAAADAAADAFHTAfujIUaaLSuklb9y0/so9AEtQAqkAxOviALQZ5jNt/iOkABrCOZ4md0iUnFwAAADAAADAALwckAAAAMAAAMAAATcR0EAO0IQAADPbH4A//////////////////////////////////////////////////////////////////////////////8AAAHgAACAwAoxAAtGAREACynhAAAAAQnwAAAAAQGe62pCvwAAAwAAAwAAAwAAAwAAAwAAAwAAAwAAAwBR6/L83y+WryR9gmVKPGbIhJpkgAFgHCej3gB6rAHPgHHAAAADAAADAAAYIV0AAAMAAAMAAAMABnxHQQA8UQD//////////////////////////////////////////////////////////////////////////////////////////////////////////wAAAeAAAIDACjEAC9KhEQALRgEAAAABCfAAAAABQZrwSahBbJlMCG///qeEAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAAZ8UdBAD00EAAA3Xx+AP///////////////////////////////////////////////////////////wAAAeAAAIDACjEAC5phEQALYiEAAAABCfAAAAABQZ8ORRUsL/8AAAMAAAMAAAMAAAMAAAMAAAMAAAMAAA3URZr61RNClwzhI2ZXdRHYLZWc1yTgKRhTIXBNABHQKIIyYNyc+AaEn1jhATEAAAMAAAMAAAMAckkIAAADAAADAAADAEbBR0EAPkYA////////////////////////////////////////////////////////////////////////////////////////////AAAB4AAAgIAFIQALfkEAAAABCfAAAAABAZ8tdEK/AAADAAADAAADAAADAAADAAADAAADAAADAFHTAfujIUAYRtY0f/43cIs2OjxACR2hMR1QBGYX+34JGAAAAwAAAwAAAwKEJ6AAAAMAAAMAAAMA3oFHQQA/QhAAAOuMfgD//////////////////////////////////////////////////////////////////////////////wAAAeAAAIDACjEAC7aBEQALmmEAAAABCfAAAAABAZ8vakK/AAADAAADAAADAAADAAADAAADAAADAAADAFHr8vzfL5avJH2CZUo8ZsiEmmSAAWAcJ6PeAHqsAc+AccAAAAMAAAMAABghXQAAAwAAAwAAAwAGfEdBADBRAP//////////////////////////////////////////////////////////////////////////////////////////////////////////AAAB4AAAgMAKMQANQyERAAu2gQAAAAEJ8AAAAAFBmzRJqEFsmUwIZ//+nhAAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAGVAR0EAMTQQAAD5nH4A////////////////////////////////////////////////////////////AAAB4AAAgMAKMQANCuERAAvSoQAAAAEJ8AAAAAFBn1JFFSwv/wAAAwAAAwAAAwAAAwAAAwAAAwAAAwAADdRFmvrVE0KXDOEjZld1EdgtlZzXJOApGFMhcE0AEdAogjJg3Jz4BoSfWOEBMQAAAwAAAwAAAwBySQgAAAMAAAMAAAMARsFHQQAyRgD///////////////////////////////////////////////////////////////////////////////////////////8AAAHgAACAgAUhAAvuwQAAAAEJ8AAAAAEBn3F0Qr8AAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAUdMB+6MhQBhG1jR//jdwizY6PEAJHaExHVAEZhf7fgkYAAADAAADAAADAoQnoAAAAwAAAwAAAwDegEdBADNCEAABB6x+AP//////////////////////////////////////////////////////////////////////////////AAAB4AAAgMAKMQANJwERAA0K4QAAAAEJ8AAAAAEBn3NqQr8AAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAUevy/N8vlq8kfYJlSjxmyISaZIABYBwno94AeqwBz4BxwAAAAwAAAwAAGCFdAAADAAADAAADAAZ8R0EANFIA////////////////////////////////////////////////////////////////////////////////////////////////////////////AAAB4AAAgMAKMQANs6ERAA0nAQAAAAEJ8AAAAAFBm3hJqEFsmUwIV//+OEAAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAYtHQQA1NBAAARW8fgD///////////////////////////////////////////////////////////8AAAHgAACAwAoxAA17YREADUMhAAAAAQnwAAAAAUGflkUVLC//AAADAAADAAADAAADAAADAAADAAADAAAN1EWa+tUTQpcM4SNmV3UR2C2VnNck4CkYUyFwTQAR0CiCMmDcnPgGhJ9Y4QExAAADAAADAAADAHJJCAAAAwAAAwAAAwBGwEdBADZGAP///////////////////////////////////////////////////////////////////////////////////////////wAAAeAAAICABSEADV9BAAAAAQnwAAAAAQGftXRCvwAAAwAAAwAAAwAAAwAAAwAAAwAAAwAAAwBR0wH7oyFAGEbWNH/+N3CLNjo8QAkdoTEdUARmF/t+CRgAAAMAAAMAAAMChCegAAADAAADAAADAN6BR0EAN0IQAAEjzH4A//////////////////////////////////////////////////////////////////////////////8AAAHgAACAwAoxAA2XgREADXthAAAAAQnwAAAAAQGft2pCvwAAAwAAAwAAAwAAAwAAAwAAAwAAAwAAAwBR6/L83y+WryR9gmVKPGbIhJpkgAFgHCej3gB6rAHPgHHAAAADAAADAAAYIV0AAAMAAAMAAAMABn0=" + webUI["html/img/mapping.png"] = "iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAAAXNSR0IArs4c6QAAAAlwSFlzAAAsSwAALEsBpT2WqQAABCRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IlhNUCBDb3JlIDUuNC4wIj4KICAgPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIgogICAgICAgICAgICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgICAgICAgICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyI+CiAgICAgICAgIDx0aWZmOlJlc29sdXRpb25Vbml0PjI8L3RpZmY6UmVzb2x1dGlvblVuaXQ+CiAgICAgICAgIDx0aWZmOkNvbXByZXNzaW9uPjU8L3RpZmY6Q29tcHJlc3Npb24+CiAgICAgICAgIDx0aWZmOlhSZXNvbHV0aW9uPjI4ODwvdGlmZjpYUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6T3JpZW50YXRpb24+MTwvdGlmZjpPcmllbnRhdGlvbj4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+Mjg4PC90aWZmOllSZXNvbHV0aW9uPgogICAgICAgICA8ZXhpZjpQaXhlbFhEaW1lbnNpb24+NTA8L2V4aWY6UGl4ZWxYRGltZW5zaW9uPgogICAgICAgICA8ZXhpZjpDb2xvclNwYWNlPjE8L2V4aWY6Q29sb3JTcGFjZT4KICAgICAgICAgPGV4aWY6UGl4ZWxZRGltZW5zaW9uPjUwPC9leGlmOlBpeGVsWURpbWVuc2lvbj4KICAgICAgICAgPGRjOnN1YmplY3Q+CiAgICAgICAgICAgIDxyZGY6QmFnLz4KICAgICAgICAgPC9kYzpzdWJqZWN0PgogICAgICAgICA8eG1wOk1vZGlmeURhdGU+MjAxOC0wOC0wMlQxMjowODo5NzwveG1wOk1vZGlmeURhdGU+CiAgICAgICAgIDx4bXA6Q3JlYXRvclRvb2w+UGl4ZWxtYXRvciAzLjM8L3htcDpDcmVhdG9yVG9vbD4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgIDwvcmRmOlJERj4KPC94OnhtcG1ldGE+CpRxQsEAAAJLSURBVGgF7VoxTgMxEMwBHWlAaeABVCEtBcoD+EBewCdCyQsQtLyAPCBvCBSRIBUPCF1ogqBJjlkrezGr6HTrO98lhy1Z9trr2VmvnbMNjUadUhzHLeQB8hw5LS3QOUbubvIf7X3kKXIZibgS51bCZdWgMT6D8nECgArkngagQN0B8dhbkblalVmLIyheCGUthhjuLBq77MihA0xTjHHBEBBOorHLjjghbNOg4Mg2RYO4hIiEiHiaAV5aSwf8hRgjZdHtTTTc2ZFXpZkY+hMx5k3IZYlr7jgudJHp2JElLaF0K1mirYn8nAWgQB3ibM59ERNCA52d6Nghv9isQiUtn0kURe92I9eBcYA6YZxym8dyDuwRuMw82gjQYQbsPdLDdNCROO0US3uEfp3usTZpjf5J2CNtNFwjl7FHvmBnCB5PCQkQoJudJtGvE23sJEFuI39rQArS7dskXK6nlwkAKiB1VxAxLcyUePAH8cQmlbEul4+UM8LkVjPc2ZHcaFUDBEeqjoC0HyIiZ6RqOUSk6ghI+xyRD9mRQTYfIktPylaX16rhzo48KE29QH8kxjxC/hFtZYiGe70OjWVMW7Dx32bA3iO7//iAC8DOPweZFQhH6O+CmkRvW2f28oV8owEoUHdMPPg70rFJZajTkqT7uZ3ObaHEuuHOjnCpsb8vlKUsur2JhruLA94Y5QEOjuSZPR9jQ0R8zGoezNpFhN5RtUm+/bpgaG1u0jd2OSLDTRopbZ/okxcrLUYKvKprbRfHhXr8m5PK/y1V/gWRKLfiNSmxEAAAAABJRU5ErkJggg==" + webUI["html/img/users.png"] = "iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAAAXNSR0IArs4c6QAAAAlwSFlzAAAsSwAALEsBpT2WqQAABCRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IlhNUCBDb3JlIDUuNC4wIj4KICAgPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIgogICAgICAgICAgICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgICAgICAgICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyI+CiAgICAgICAgIDx0aWZmOlJlc29sdXRpb25Vbml0PjI8L3RpZmY6UmVzb2x1dGlvblVuaXQ+CiAgICAgICAgIDx0aWZmOkNvbXByZXNzaW9uPjU8L3RpZmY6Q29tcHJlc3Npb24+CiAgICAgICAgIDx0aWZmOlhSZXNvbHV0aW9uPjI4ODwvdGlmZjpYUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6T3JpZW50YXRpb24+MTwvdGlmZjpPcmllbnRhdGlvbj4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+Mjg4PC90aWZmOllSZXNvbHV0aW9uPgogICAgICAgICA8ZXhpZjpQaXhlbFhEaW1lbnNpb24+NTA8L2V4aWY6UGl4ZWxYRGltZW5zaW9uPgogICAgICAgICA8ZXhpZjpDb2xvclNwYWNlPjE8L2V4aWY6Q29sb3JTcGFjZT4KICAgICAgICAgPGV4aWY6UGl4ZWxZRGltZW5zaW9uPjUwPC9leGlmOlBpeGVsWURpbWVuc2lvbj4KICAgICAgICAgPGRjOnN1YmplY3Q+CiAgICAgICAgICAgIDxyZGY6QmFnLz4KICAgICAgICAgPC9kYzpzdWJqZWN0PgogICAgICAgICA8eG1wOk1vZGlmeURhdGU+MjAxOC0wOC0zMFQxNzowODozODwveG1wOk1vZGlmeURhdGU+CiAgICAgICAgIDx4bXA6Q3JlYXRvclRvb2w+UGl4ZWxtYXRvciAzLjM8L3htcDpDcmVhdG9yVG9vbD4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgIDwvcmRmOlJERj4KPC94OnhtcG1ldGE+CjU01MMAAANJSURBVGgF1ZnLaxNRFMYz2rpoFbW+SCsihaJQRMT6rPhAXAq6c+HChSguRFd1oRtd+A/oWhQ3oiiWFB91UbqRqlXXgoIIQhFbQTTQao2/GzLDZEjIPefO7SQHPjJz55zzfd/MZCa5N8h5ilKptJvWp8FekAed4Bv4Cj6Dh2A4CIJZPpszMHEV2MQ0SZdB0DROENMHjoEzQBoFCpZnbgYR58E/qfpE/kv2F2dmBvJ94G9ClHb3SiZGUBuASa3qGnVzjG3RmFmkKYrVHGB7e2zfdbOdBhc1TVyNnNSQNqg5wVURf/FdjRxpIEpzuIOio9JCtRHO2hrINkgJLfPFt6vaCII2WYrSpPVJi1RGuBrmTbxeSibIX5j3CUauAfOo9BXzNH4nMJ5TXREI1gHzqPQVRtc2zCyxJdAaGbclcMj7zi/jOdt6rZFhCH7akijznknqVEY4U78heSAhUuTekNSojFQIChIiYe57TtZrSY2LkecQzUjIBLljglz3VJ4qg+AXSDNGabbWXZ2wA6Qjabqg136hhHK6y60V8o2EGyl8/qHHpKZPGkYeQzyvIa9RM86XvFhjvOGQsxGIp2B50ZDJLuG2XZqnLO5rM3viGh9o0OZJon1bRLxxdHLcns1jJiYOAu2U0D2P0uStMXJdcVU+UdMlZ/NYgaA28ERg5ge5/R4l6VsjrANMWJiZJWeXnqm60vnxW90ul6u8ByaS4zX2i+S+qjGuGkrdSEWFzT1vlhlSC19Gui0UtnNriSfi6vX1ZWRjPcLEeGrzYqkb4SyvQGxvQnC93cF6BzIfx8gpYBsfSdycuei4AAR1ggugCCRh1lbugIF4vwXbhtisjfSDc+ARSOOf4lv6mNWv1VIj1ouQNF9K851gDzArtWbV1uYxS5o4zB+sp+AuKPC+cVv5RXwPuATMmUpreY1Wopgh+ybYKj4dFHWB+8DMwTZTjCHmsJUhEgfAF9DMcQtx9V8dHMyDqWZ2ENM2FL8yVV92kkY56GM5Lc6Z1vY0jbp5EJQnuqPLg4kdLWTCnIxVIJoDi4wweNYcbbGIfuLEjRxqMRNGbvTvsmyE22oZg70taKQn1BxekXw40GKfK0O9oZHsJ8ZCRbLPaI3xP7YzeQoHxWckAAAAAElFTkSuQmCC" + webUI["html/index.html"] = "PCFkb2N0eXBlIGh0bWw+DQo8aHRtbD4NCiAgPGhlYWQ+DQogICAgPG1ldGEgY2hhcnNldD0idXRmLTgiPg0KICAgIDwhLS0tDQogICAgPG1ldGEgbmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9IndpZHRoPWRldmljZS13aWR0aCwgaW5pdGlhbC1zY2FsZT0xLjAiIC8+IA0KICAgIC0tPg0KICAgIDx0aXRsZT54VGVWZTwvdGl0bGU+DQogICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJjc3Mvc2NyZWVuLmNzcyIgdHlwZT0idGV4dC9jc3MiPg0KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iY3NzL2Jhc2UuY3NzIiB0eXBlPSJ0ZXh0L2NzcyI+DQoNCiAgICA8c2NyaXB0IGxhbmd1YWdlPSJqYXZhc2NyaXB0IiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ianMvbmV0d29ya190cy5qcyI+PC9zY3JpcHQ+DQogICAgPHNjcmlwdCBsYW5ndWFnZT0iamF2YXNjcmlwdCIgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9ImpzL21lbnVfdHMuanMiPjwvc2NyaXB0Pg0KICAgIDxzY3JpcHQgbGFuZ3VhZ2U9ImphdmFzY3JpcHQiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJqcy9zZXR0aW5nc190cy5qcyI+PC9zY3JpcHQ+DQogICAgPHNjcmlwdCBsYW5ndWFnZT0iamF2YXNjcmlwdCIgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9ImpzL2xvZ3NfdHMuanMiPjwvc2NyaXB0Pg0KICAgIDxzY3JpcHQgbGFuZ3VhZ2U9ImphdmFzY3JpcHQiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJqcy9iYXNlX3RzLmpzIj48L3NjcmlwdD4NCg0KICA8L2hlYWQ+DQoNCiAgICA8Ym9keSBvbmxvYWQ9ImphdmFzY3JpcHQ6IFBhZ2VSZWFkeSgpOyI+DQoNCiAgICAgIDxkaXYgaWQ9ImxvYWRpbmciIGNsYXNzPSJub25lIj4NCiAgICAgICAgPGRpdiBjbGFzcz0ibG9hZGVyIj48L2Rpdj4NCiAgICAgIDwvZGl2Pg0KDQogICAgICA8ZGl2IGlkPSJwb3B1cCIgY2xhc3M9Im5vbmUiPg0KICAgICAgICA8ZGl2IGlkPSJwb3B1cC1jdXN0b20iPjwvZGl2Pg0KICAgICAgPC9kaXY+DQoNCiAgICAgIDxkaXYgaWQ9ImxheW91dCI+DQoNCiAgICAgICAgPCEtLQ0KICAgICAgICA8ZGl2IGlkPSJub3RpZmljYXRpb24iPg0KICAgICAgICAgIDxkaXYgY2xhc3M9ImVsZW1lbnQiPg0KICAgICAgICAgICAgPGg1PlhFUEc8L2g1Pg0KICAgICAgICAgICAgPHByZT4xMS4wNS4yMDE5IC0gMjA6MjE8L3ByZT4NCiAgICAgICAgICAgIDxocj4NCiAgICAgICAgICAgIDxwPkhhbGxvIGRhcyBpc3QgZWluIFRlc3QuIFVuZCBub2NoIG1laHIgVGV4dC48L3A+DQogICAgICAgICAgPC9kaXY+DQogICAgICAgIDwvZGl2Pg0KICAgICAgLS0+DQoNCiAgICAgICAgPGRpdiBpZD0ibWVudS13cmFwcGVyIiBjbGFzcz0ibGF5b3V0LWxlZnQiPg0KICAgICAgICAgIDxkaXYgaWQ9ICJicmFuY2giPjwvZGl2Pg0KICAgICAgICAgIDxkaXYgaWQ9ImxvZ28iPjwvZGl2Pg0KICAgICAgICAgIDxuYXYgaWQ9Im1haW4tbWVudSI+PC9uYXY+DQogICAgICAgIDwvZGl2Pg0KDQogICAgICAgIDxkaXYgY2xhc3M9ImxheW91dC1yaWdodCI+DQoNCiAgICAgICAgICA8dGFibGUgaWQ9ImNsaWVudEluZm8iIGNsYXNzPSIiPg0KDQogICAgICAgICAgICA8dHI+DQogICAgICAgICAgICAgIDx0ZCBjbGFzcz0idGRLZXkiPnhUZVZlOjwvdGQ+DQogICAgICAgICAgICAgIDx0ZCBpZD0idmVyc2lvbiIgY2xhc3M9InRkVmFsIj4mbmJzcDs8L3RkPg0KICAgICAgICAgICAgICA8dGQgY2xhc3M9InRkS2V5Ij5PUzo8L3RkPg0KICAgICAgICAgICAgICA8dGQgaWQ9Im9zIiBjbGFzcz0idGRWYWwiPiZuYnNwOzwvdGQ+DQogICAgICAgICAgICAgIDx0ZCBjbGFzcz0idGRLZXkgcGhvbmUiPkRWUiBJUDo8L3RkPg0KICAgICAgICAgICAgICA8dGQgaWQ9IkRWUiIgY2xhc3M9InRkVmFsIHBob25lIj4mbmJzcDs8L3RkPg0KICAgICAgICAgICAgPC90cj4NCg0KICAgICAgICAgICAgPHRyPg0KICAgICAgICAgICAgICA8dGQgY2xhc3M9InRkS2V5Ij5VVUlEOjwvdGQ+DQogICAgICAgICAgICAgIDx0ZCBpZD0idXVpZCIgY2xhc3M9InRkVmFsIj4mbmJzcDs8L3RkPg0KICAgICAgICAgICAgICA8dGQgY2xhc3M9InRkS2V5Ij5BcmNoOjwvdGQ+DQogICAgICAgICAgICAgIDx0ZCBpZD0iYXJjaCIgY2xhc3M9InRkVmFsIj4mbmJzcDs8L3RkPg0KICAgICAgICAgICAgICA8dGQgY2xhc3M9InRkS2V5IHBob25lIj5NM1UgVVJMOjwvdGQ+DQogICAgICAgICAgICAgIDx0ZCBpZD0ibTN1LXVybCIgY2xhc3M9InRkVmFsIHBob25lIj4mbmJzcDs8L3RkPg0KICAgICAgICAgICAgPC90cj4NCg0KICAgICAgICAgICAgPHRyPg0KICAgICAgICAgICAgICA8dGQgY2xhc3M9InRkS2V5Ij5BdmFpbGFibGUgU3RyZWFtczo8L3RkPg0KICAgICAgICAgICAgICA8dGQgaWQ9InN0cmVhbXMiIGNsYXNzPSJ0ZFZhbCI+Jm5ic3A7PC90ZD4NCiAgICAgICAgICAgICAgPHRkIGNsYXNzPSJ0ZEtleSI+RVBHIFNvdXJjZTo8L3RkPg0KICAgICAgICAgICAgICA8dGQgaWQ9ImVwZ1NvdXJjZSIgY2xhc3M9InRkVmFsIj4mbmJzcDs8L3RkPg0KICAgICAgICAgICAgICA8dGQgY2xhc3M9InRkS2V5IHBob25lIj5YRVBHIFVSTDo8L3RkPg0KICAgICAgICAgICAgICA8dGQgaWQ9InhlcGctdXJsIiBjbGFzcz0idGRWYWwgcGhvbmUiPiZuYnNwOzwvdGQ+DQogICAgICAgICAgICA8L3RyPg0KDQogICAgICAgICAgICA8dHI+DQogICAgICAgICAgICAgIDx0ZCBjbGFzcz0idGRLZXkiPlhFUEcgQ2hhbm5lbHM6PC90ZD4NCiAgICAgICAgICAgICAgPHRkIGlkPSJ4ZXBnIiBjbGFzcz0idGRWYWwiPiZuYnNwOzwvdGQ+DQogICAgICAgICAgICAgIDx0ZCBjbGFzcz0idGRLZXkiPkVycm9yczo8L3RkPg0KICAgICAgICAgICAgICA8dGQgaWQ9ImVycm9ycyIgY2xhc3M9InRkVmFsIj4mbmJzcDs8L3RkPg0KICAgICAgICAgICAgICA8dGQgY2xhc3M9InRkS2V5Ij5XYXJuaW5nczo8L3RkPg0KICAgICAgICAgICAgICA8dGQgaWQ9Indhcm5pbmdzIiBjbGFzcz0idGRWYWwiPiZuYnNwOzwvdGQ+DQogICAgICAgICAgICA8L3RyPg0KDQogICAgICAgICAgPC90YWJsZT4NCiAgICAgICAgIA0KICAgICAgICAgIDxkaXYgaWQ9Im15U3RyZWFtc0JveCIgY2xhc3M9Im5vdFZpc2libGUiPg0KDQogICAgICAgICAgICA8ZGl2IGlkPSJhbGxTdHJlYW1zIj4NCiAgICAgICAgICAgICAgPHRhYmxlIGlkPSJhY3RpdmVTdHJlYW1zIj48L3RhYmxlPg0KICAgICAgICAgICAgICA8dGFibGUgaWQ9ImluYWN0aXZlU3RyZWFtcyI+PC90YWJsZT4NCiAgICAgICAgICAgIDwvZGl2Pg0KDQogICAgICAgICAgPC9kaXY+DQogICAgICAgICAgDQogICAgICAgICAgPGRpdiBpZD0iY29udGVudCIgY2xhc3M9IiI+PC9kaXY+DQogICAgICAgICAgICANCiAgICAgICAgPC9kaXY+DQoNCiAgICAgIDwvZGl2Pg0KICAgICAgDQogICAgPC9ib2R5Pg0KICAgIA0KPC9odG1sPg==" + webUI["html/js/log.js"] = "dmFyIGxvZ0ludGVydmFsDQoNCg0KZnVuY3Rpb24gdXBkYXRlTG9nKCkgew0KICB2YXIgZGF0YSA9IG5ldyBPYmplY3QoKTsNCiAgZGF0YVsiY21kIl0gPSAiZ2V0TG9nIjsNCiAgeFRlVmUoZGF0YSk7DQogIHdyaXRlTG9nSW5EaXYoKTsNCiAgcmV0dXJuDQp9DQoNCmZ1bmN0aW9uIHdyaXRlTG9nSW5EaXYoKSB7DQogIHZhciBsb2dzID0gbG9nWyJsb2ciXTsNCiAgdmFyIGRpdiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzZXR0aW5ncyIpLmxhc3RDaGlsZC5sYXN0Q2hpbGQ7DQogIGRpdi5pbm5lckhUTUwgPSAiIjsNCg0KICB2YXIgbWF4ID0gNTA7DQogIA0KICANCiAgZm9yICh2YXIgaSA9IDA7IGkgPCBsb2dzLmxlbmd0aDsgaSsrKSB7DQogICAgdmFyIG5ld0VudHJ5ID0gbmV3IE9iamVjdCgpOw0KICAgIG5ld0VudHJ5WyJfZWxlbWVudCJdICA9ICJQIjsNCg0KICAgIGlmIChsb2dzW2ldLmluY2x1ZGVzKCJFUlJPUiIpKSB7DQovLyAgICAgIGNhc2UgIndhcm5pbmdzIjogIG1zZ1R5cGUgPSAid2FybmluZ01zZyI7IGJyZWFrOw0KICAgICAgbmV3RW50cnlbImNsYXNzIl0gICA9ICJlcnJvck1zZyI7DQogICAgfQ0KDQogICAgaWYgKGxvZ3NbaV0uaW5jbHVkZXMoIldBUk5JTkciKSkgew0KLy8gICAgICBjYXNlICJ3YXJuaW5ncyI6ICBtc2dUeXBlID0gIndhcm5pbmdNc2ciOyBicmVhazsNCiAgICAgIG5ld0VudHJ5WyJjbGFzcyJdICAgPSAid2FybmluZ01zZyI7DQogICAgfQ0KDQogICAgbmV3RW50cnlbIl90ZXh0Il0gICAgID0gbG9nc1tpXTsNCiAgICANCiAgICBkaXYuYXBwZW5kQ2hpbGQoY3JlYXRlRWxlbWVudChuZXdFbnRyeSkpOw0KICB9DQoNCiAgY2FsY3VsYXRlV3JhcHBlckhlaWdodCgpOw0KICB2YXIgc2Nyb2xsRGl2ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImJveC13cmFwcGVyIik7DQogIHNjcm9sbERpdi5zY3JvbGxUb3AgPSBzY3JvbGxEaXYuc2Nyb2xsSGVpZ2h0Ow0KfQ0KDQpmdW5jdGlvbiBzaG93TG9nKG9iaikgew0KICAvL2xvZ0ludGVydmFsID0gc2V0SW50ZXJ2YWwodXBkYXRlTG9nLCA1MDAwKTsNCg0KICB2YXIgbG9ncyA9IGxvZ1sibG9nIl07DQoNCiAgdmFyIGRpdiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzZXR0aW5ncyIpOw0KDQogIHZhciBuZXdFbnRyeSA9IG5ldyBPYmplY3QoKTsNCiAgbmV3RW50cnlbIl9lbGVtZW50Il0gID0gIkhSIjsNCiAgZGl2LmFwcGVuZENoaWxkKGNyZWF0ZUVsZW1lbnQobmV3RW50cnkpKTsNCiAgLy9kaXYgPSBkaXYubGFzdENoaWxkOw0KDQogIHZhciBuZXdFbnRyeSA9IG5ldyBPYmplY3QoKTsNCiAgbmV3RW50cnlbIl9lbGVtZW50Il0gICAgPSAiSU5QVVQiOw0KICBuZXdFbnRyeVsidHlwZSJdICAgICAgICA9ICJidXR0b24iOw0KICBuZXdFbnRyeVsiY2xhc3MiXSAgICAgICA9ICJidXR0b24iOw0KICBuZXdFbnRyeVsidmFsdWUiXSAgICAgICA9ICJFbXB0eSBMb2ciOw0KICBuZXdFbnRyeVsib25jbGljayJdICAgICA9ICJlbXB0eUxvZygpIjsNCiAgZGl2LmFwcGVuZENoaWxkKGNyZWF0ZUVsZW1lbnQobmV3RW50cnkpKTsNCg0KICB2YXIgbmV3RW50cnkgPSBuZXcgT2JqZWN0KCk7DQogIG5ld0VudHJ5WyJfZWxlbWVudCJdICAgID0gImNvZGUiOw0KICBuZXdFbnRyeVsiX3RleHQiXSAgICAgICAgPSAiVXBkYXRlIExvZzogIjsNCiAgZGl2LmFwcGVuZENoaWxkKGNyZWF0ZUVsZW1lbnQobmV3RW50cnkpKTsNCg0KICB2YXIgbmV3RW50cnkgPSBuZXcgT2JqZWN0KCk7DQogIG5ld0VudHJ5WyJfZWxlbWVudCJdICAgID0gIklOUFVUIjsNCiAgbmV3RW50cnlbInR5cGUiXSAgICAgICAgPSAiY2hlY2tib3giOw0KICAvL25ld0VudHJ5WyJjaGVja2VkIl0gICAgID0gImNoZWNrYm94IjsNCiAgbmV3RW50cnlbIm9uY2xpY2siXSAgICAgPSAibG9nVXBkYXRlcyh0aGlzKSI7DQogIGRpdi5hcHBlbmRDaGlsZChjcmVhdGVFbGVtZW50KG5ld0VudHJ5KSk7DQoNCiAgdmFyIG5ld0VudHJ5ID0gbmV3IE9iamVjdCgpOw0KICBuZXdFbnRyeVsiX2VsZW1lbnQiXSAgPSAiSFIiOw0KICBkaXYuYXBwZW5kQ2hpbGQoY3JlYXRlRWxlbWVudChuZXdFbnRyeSkpOw0KDQogIA0KDQoNCiAgDQogIHZhciBuZXdXcmFwcGVyID0gbmV3IE9iamVjdCgpOw0KICBuZXdXcmFwcGVyWyJfZWxlbWVudCJdICA9ICJESVYiOw0KICBuZXdXcmFwcGVyWyJpZCJdICAgICAgICA9ICJib3gtd3JhcHBlciI7DQogIGRpdi5hcHBlbmRDaGlsZChjcmVhdGVFbGVtZW50KG5ld1dyYXBwZXIpKTsNCiAgZGl2ID0gZGl2Lmxhc3RDaGlsZDsNCg0KICB2YXIgbmV3UHJlID0gbmV3IE9iamVjdCgpOw0KICBuZXdQcmVbIl9lbGVtZW50Il0gID0gIlBSRSI7DQogIG5ld1ByZVsiaWQiXSAgICAgICAgPSAibG9nU2NyZWVuIjsNCiAgZGl2LmFwcGVuZENoaWxkKGNyZWF0ZUVsZW1lbnQobmV3UHJlKSk7DQoNCiAgZGl2ID0gZGl2Lmxhc3RDaGlsZDsNCg0KICB3cml0ZUxvZ0luRGl2KCkNCiAgcmV0dXJuDQp9DQoNCmZ1bmN0aW9uIGVtcHR5TG9nKCkgew0KICB2YXIgZGF0YSA9IG5ldyBPYmplY3QoKTsNCiAgZGF0YVsiY21kIl0gPSAiZW1wdHlMb2ciOw0KICB4VGVWZShkYXRhKTsNCiAgcmV0dXJuDQp9DQoNCmZ1bmN0aW9uIGxvZ1VwZGF0ZXMoZWxtKSB7DQogIHN3aXRjaChlbG0uY2hlY2tlZCkgew0KICAgIGNhc2UgZmFsc2U6IGNsZWFySW50ZXJ2YWwobG9nSW50ZXJ2YWwpOyBicmVhazsNCiAgICBjYXNlIHRydWU6IGxvZ0ludGVydmFsID0gc2V0SW50ZXJ2YWwodXBkYXRlTG9nLCA1MDAwKTsgYnJlYWs7DQogICAgDQogIH0NCn0=" + webUI["html/js/mapping-editor.js"] = "dmFyIG1hcHBpbmdFcnJvciAgPSBmYWxzZTsNCnZhciBidWxrICAgICAgICAgID0gZmFsc2U7DQp2YXIgYnVsa0VkaXRBbGwgICA9IGZhbHNlOyANCnZhciBzZWxlY3RPYmogICAgID0gbmV3IE9iamVjdCgpOw0KdmFyIHNlYXJjaE9iaiAgICAgPSBuZXcgT2JqZWN0KCk7DQoNCnZhciBidWxrSURzICAgICAgID0gbmV3IEFycmF5KCk7DQp2YXIgYnVsa0NoYW5nZU9iaiA9IG5ldyBPYmplY3QoKTsNCg0KZnVuY3Rpb24gY2hlY2tVbmRvKGtleSwgZWxtKSB7DQogIHZhciB0bXAgPSBuZXcgT2JqZWN0KCk7DQogIHRtcCA9IGVsbQ0KICBjb25zb2xlLmxvZygiLS0iKTsNCiAgaWYgKHVuZG8uaGFzT3duUHJvcGVydHkoImVwZ01hcHBpbmciKSkgew0KICAgIHhFUEdbImVwZ01hcHBpbmciXSA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkodW5kb1siZXBnTWFwcGluZyJdKSk7Ow0KICB9IGVsc2Ugew0KICAgIHVuZG9bImVwZ01hcHBpbmciXSA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkoZWxtKSk7DQogIH0NCn0NCg0KLy92YXIgcGxleENhdGVnb3JpZXMgPSBuZXcgQXJyYXkoIi0iLCAiQWN0aW9uIHNwb3J0cyIsICJBY3Rpb24iLCAiQWR1bHRzIG9ubHkiLCAiQWR2ZW50dXJlIiwgIkFlcm9iaWNzIiwgIkFuaW1hbHMiLCAiQW5pbWF0ZWQiLCAiQW5pbWUiLCAiQW50aG9sb2d5IiwgIkFyY2hlcnkiLCAiQXJ0IiwgIkFydHMvY3JhZnRzIiwgIkF1Y3Rpb24iLCAiQXV0byByYWNpbmciLCAiQXV0byIsICJBdmlhdGlvbiIsICJBd2FyZHMiLCAiQmFsbGV0IiwgIkJhc2ViYWxsIiwgIkJhc2tldGJhbGwiLCAiQmljeWNsZSByYWNpbmciLCAiQmljeWNsZSIsICJCaWxsaWFyZHMiLCAiQmlvZ3JhcGh5IiwgIkJvYXQgcmFjaW5nIiwgIkJvYXQiLCAiQm93bGluZyIsICJCb3hpbmciLCAiQnVzLi9maW5hbmNpYWwiLCAiQ2hpbGRyZW4iLCAiQ29sbGVjdGlibGVzIiwgIkNvbWVkeSBkcmFtYSIsICJDb21lZHkiLCAiQ29tbXVuaXR5IiwgIkNvbXB1dGVycyIsICJDb25zdW1lciIsICJDb29raW5nIiwgIkNyaW1lIGRyYW1hIiwgIkNyaW1lIiwgIkRhbmNlIiwgIkRhcmsgY29tZWR5IiwgIkRlYmF0ZSIsICJEaXZpbmciLCAiRG9jdWRyYW1hIiwgIkRvY3VtZW50YXJ5IiwgIkRyYW1hIiwgIkVkdWNhdGlvbmFsIiwgIkVudGVydGFpbm1lbnQiLCAiRW52aXJvbm1lbnQiLCAiRXF1ZXN0cmlhbiIsICJFcm90aWMiLCAiRXZlbnQiLCAiRmFudGFzeSIsICJGYXNoaW9uIiwgIkZlYXR1cmUgRmlsbSIsICJGaXNoaW5nIiwgIkZvb3RiYWxsIiwgIkdhbWUgc2hvdyIsICJHYW1pbmciLCAiR2F5L2xlc2JpYW4iLCAiR29sZiIsICJIYW5kYmFsbCIsICJIZWFsdGgiLCAiSGlzdG9yaWNhbCBkcmFtYSIsICJIaXN0b3J5IiwgIkhvY2tleSIsICJIb2xpZGF5IiwgIkhvbWUgaW1wcm92ZW1lbnQiLCAiSG9ycm9yIiwgIkhvcnNlIiwgIkhvdXNlL2dhcmRlbiIsICJIb3ctdG8iLCAiSW50ZXJ2aWV3IiwgIkludGwgc29jY2VyIiwgIkxhdyIsICJNYXJ0aWFsIGFydHMiLCAiTWVkaWNhbCIsICJNaWxpdGFyeSIsICJNaW5pc2VyaWVzIiwgIk1peGVkIG1hcnRpYWwgYXJ0cyIsICJNb3RvcmN5Y2xlIHJhY2luZyIsICJNb3RvcmN5Y2xlIiwgIk1vdG9yc3BvcnRzIiwgIk1vdW50YWluIGJpa2luZyIsICJNdXNpYyIsICJNdXNpY2FsIGNvbWVkeSIsICJNdXNpY2FsIiwgIk15c3RlcnkiLCAiTmF0dXJlIiwgIk5ld3MiLCAiTmV3c21hZ2F6aW5lIiwgIk9seW1waWNzIiwgIk9wZXJhIiwgIk91dGRvb3JzIiwgIlBhcmFkZSIsICJQYXJhbm9ybWFsIiwgIlBhcmVudGluZyIsICJQZXJmb3JtaW5nIGFydHMiLCAiUGxheW9mZiBzcG9ydHMiLCAiUG9rZXIiLCAiUG9saXRpY3MiLCAiUHJvIHdyZXN0bGluZyIsICJQdWJsaWMgYWZmYWlycyIsICJSZWFsaXR5IiwgIlJlbGlnaW91cyIsICJSb2RlbyIsICJSb2xsZXIgZGVyYnkiLCAiUm9tYW5jZSIsICJSb21hbnRpYyBjb21lZHkiLCAiUnVnYnkiLCAiUnVubmluZyIsICJTYWlsaW5nIiwgIlNjaWVuY2UgZmljdGlvbiIsICJTY2llbmNlIiwgIlNlbGYgaW1wcm92ZW1lbnQiLCAiU2VyaWVzIiwgIlNob290aW5nIiwgIlNob3BwaW5nIiwgIlNob3J0IEZpbG0iLCAiU2l0Y29tIiwgIlNraWluZyIsICJTbm9va2VyIiwgIlNvYXAiLCAiU29jY2VyIiwgIlNwZWNpYWwiLCAiU3BvcnRzIiwgInNwb3J0cyIsICJTcG9ydHMgZXZlbnQiLCAiU3BvcnRzIG5vbi1ldmVudCIsICJTcG9ydHMgdGFsayIsICJTdGFuZHVwIiwgIlN1cmZpbmciLCAiU3VzcGVuc2UiLCAiVFYgTW92aWUiLCAiVGFsayIsICJUZWNobm9sb2d5IiwgIlRlbm5pcyIsICJUaGVhdGVyIiwgIlRocmlsbGVyIiwgIlRyYWNrL2ZpZWxkIiwgIlRyYXZlbCIsICJUcmlhdGhsb24iLCAiVmFyaWV0eSIsICJWb2xsZXliYWxsIiwgIldhciIsICJXYXRlcnNwb3J0cyIsICJXZWF0aGVyIiwgIldlc3Rlcm4iLCAiV3Jlc3RsaW5nIiwgIllhY2h0IHJhY2luZyIsICJtb3ZpZSIsICJzZXJpZXMiLCAic3BvcnRzIiwgInR2c2hvdyIpOw0KdmFyIHBsZXhDYXRlZ29yaWVzVmFsdWVzID0gbmV3IEFycmF5KCItIiwgIktpZHMiLCAiTmV3cyIsICJNb3ZpZSIsICJTZXJpZXMiLCAiU3BvcnRzIikNCnZhciBwbGV4Q2F0ZWdvcmllc09wdGlvbiA9IG5ldyBBcnJheSgiLSIsICJLaWRzIChFbWJ5IG9ubHkpIiwgIk5ld3MiLCAiTW92aWUiLCAiU2VyaWVzIiwgIlNwb3J0cyIpDQoNCg0KZnVuY3Rpb24gb3Blbk1hcHBpbmdFZGl0b3IoZWxtKSB7DQogIHZhciBjb2x1bW5Ub1NvcnQgID0gMQ0KDQogIGNoZWNrVW5kbygiZXBnTWFwcGluZyIsIHhFUEdbImVwZ01hcHBpbmciXSkNCg0KICB2YXIgbmV3RGl2ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNldHRpbmdzIik7DQogIA0KICB2YXIgbmV3RW50cnkgPSBuZXcgT2JqZWN0KCk7DQogIG5ld0VudHJ5WyJfZWxlbWVudCJdICA9ICJIUiI7DQogIG5ld0Rpdi5hcHBlbmRDaGlsZChjcmVhdGVFbGVtZW50KG5ld0VudHJ5KSk7DQoNCiAgdmFyIG5ld0VudHJ5ID0gbmV3IE9iamVjdCgpOw0KICBuZXdFbnRyeVsiX2VsZW1lbnQiXSAgICA9ICJJTlBVVCI7DQogIG5ld0VudHJ5WyJ0eXBlIl0gICAgICAgID0gImJ1dHRvbiI7DQogIG5ld0VudHJ5WyJjbGFzcyJdICAgICAgID0gImJ1dHRvbiI7DQogIG5ld0VudHJ5WyJ2YWx1ZSJdICAgICAgID0gIlNhdmUiOw0KICBuZXdFbnRyeVsib25jbGljayJdICAgICA9ICJzYXZlWEVQRygpIjsNCiAgbmV3RGl2LmFwcGVuZENoaWxkKGNyZWF0ZUVsZW1lbnQobmV3RW50cnkpKTsNCg0KICB2YXIgbmV3RW50cnkgPSBuZXcgT2JqZWN0KCk7DQogIG5ld0VudHJ5WyJfZWxlbWVudCJdICAgID0gIklOUFVUIjsNCiAgbmV3RW50cnlbInR5cGUiXSAgICAgICAgPSAiYnV0dG9uIjsNCiAgbmV3RW50cnlbImNsYXNzIl0gICAgICAgPSAiYnV0dG9uIjsNCiAgbmV3RW50cnlbInZhbHVlIl0gICAgICAgPSAiQnVsayBFZGl0IjsNCiAgbmV3RW50cnlbIm9uY2xpY2siXSAgICAgPSAiYnVsa0VkaXQoKSI7DQogIG5ld0Rpdi5hcHBlbmRDaGlsZChjcmVhdGVFbGVtZW50KG5ld0VudHJ5KSk7DQoNCiAgdmFyIG5ld0VudHJ5ID0gbmV3IE9iamVjdCgpOw0KICBuZXdFbnRyeVsiX2VsZW1lbnQiXSAgICA9ICJJTlBVVCI7DQogIG5ld0VudHJ5WyJ0eXBlIl0gICAgICAgID0gImJ1dHRvbiI7DQogIG5ld0VudHJ5WyJjbGFzcyJdICAgICAgID0gImJ1dHRvbiI7DQogIG5ld0VudHJ5WyJ2YWx1ZSJdICAgICAgID0gIlNob3cgWEVQRyI7DQogIG5ld0VudHJ5WyJvbmNsaWNrIl0gICAgID0gInNob3dYRVBHKCkiOw0KICBuZXdEaXYuYXBwZW5kQ2hpbGQoY3JlYXRlRWxlbWVudChuZXdFbnRyeSkpOw0KDQogIHZhciBuZXdFbnRyeSA9IG5ldyBPYmplY3QoKTsNCiAgbmV3RW50cnlbIl9lbGVtZW50Il0gICAgPSAiSU5QVVQiOw0KICBuZXdFbnRyeVsiY2xhc3MiXSAgICAgICA9ICJzZWFyY2giOw0KICBuZXdFbnRyeVsiaWQiXSAgICAgICAgICA9ICJzZWFyY2hNYXBwaW5nIjsNCiAgbmV3RW50cnlbInR5cGUiXSAgICAgICAgPSAic2VhcmNoIjsNCiAgbmV3RW50cnlbInBsYWNlaG9sZGVyIl0gPSAiU2VhcmNoIjsNCiAgbmV3RW50cnlbIm9uY2hhbmdlIl0gICAgPSAic2VhcmNoSW5NYXBwaW5nKCkiOw0KICBuZXdEaXYuYXBwZW5kQ2hpbGQoY3JlYXRlRWxlbWVudChuZXdFbnRyeSkpOw0KDQogIHZhciBkaXYgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic2V0dGluZ3MiKTsNCiAgLy9zY3JlZW5Mb2coIkR1cGxpY2F0ZSBJRCIsICJlcnJvciIsIHRydWUpDQogIA0KDQogIC8vIEJ1aWxkIHRhYmxlDQoNCiAgdmFyIG5ld1dyYXBwZXIgPSBuZXcgT2JqZWN0KCk7DQogIG5ld1dyYXBwZXJbIl9lbGVtZW50Il0gID0gIkRJViI7DQogIG5ld1dyYXBwZXJbImlkIl0gICAgICAgID0gImJveC13cmFwcGVyIjsNCiAgZGl2LmFwcGVuZENoaWxkKGNyZWF0ZUVsZW1lbnQobmV3V3JhcHBlcikpOw0KDQoNCiAgdmFyIG5ld1RhYmxlID0gbmV3IE9iamVjdCgpOw0KICBuZXdUYWJsZVsiX2VsZW1lbnQiXSAgPSAiVEFCTEUiOw0KICBuZXdUYWJsZVsiaWQiXSAgICAgICAgPSAiaWRfbWFwcGluZyI7DQogIG5ld1RhYmxlWyJjbGFzcyJdICAgICA9ICJ0YWJsZS1tYXBwaW5nIjsNCiAgZGl2Lmxhc3RDaGlsZC5hcHBlbmRDaGlsZChjcmVhdGVFbGVtZW50KG5ld1RhYmxlKSk7DQogIHNob3dMb2FkaW5nU2NyZWVuKHRydWUpOw0KDQogIHNldFRpbWVvdXQoZnVuY3Rpb24oKXsgDQogICAgY3JlYXRlTWFwcGluZ1RhYmxlKCk7IA0KICB9LCAxMCk7DQoNCn0NCg0KZnVuY3Rpb24gY3JlYXRlU2VhcmNoT2JqKCkgew0KICBzZWFyY2hPYmogPSBuZXcgT2JqZWN0KCk7DQogIHZhciBJRHMgPSBnZXRPYmpLZXlzKHhFUEdbImVwZ01hcHBpbmciXSkNCiAgZm9yICh2YXIgaSA9IElEcy5sZW5ndGggLSAxOyBpID49IDA7IGktLSkgew0KICAgIHZhciBpdGVtID0geEVQR1siZXBnTWFwcGluZyJdW0lEc1tpXV07DQogICAgdmFyIHNlYXJjaElEID0gaXRlbVsieC1lcGciXTsNCiAgICB2YXIgc2VhcmNoVmFsdWUgPSAiIjsgDQogICAgc2VhcmNoVmFsdWUgPSBzZWFyY2hWYWx1ZSArIGl0ZW1bIngtY2hhbm5lbElEIl0gKyAiICI7DQogICAgc2VhcmNoVmFsdWUgPSBzZWFyY2hWYWx1ZSArIGl0ZW1bIngtY2F0ZWdvcnkiXSArICIgIjsNCiAgICBzZWFyY2hWYWx1ZSA9IHNlYXJjaFZhbHVlICsgaXRlbVsieC1uYW1lIl0gKyAiICI7DQogICAgc2VhcmNoVmFsdWUgPSBzZWFyY2hWYWx1ZSArIGl0ZW1bIngtZ3JvdXAtdGl0bGUiXSArICIgIjsNCiAgICBzZWFyY2hWYWx1ZSA9IHNlYXJjaFZhbHVlICsgaXRlbVsieC14bWx0di1maWxlIl0gKyAiICI7DQogICAgc2VhcmNoVmFsdWUgPSBzZWFyY2hWYWx1ZSArIGl0ZW1bIl9maWxlLm0zdS5uYW1lIl0gKyAiICI7DQoNCiAgICBzd2l0Y2goaXRlbVsieC1hY3RpdmUiXSkgew0KICAgICAgY2FzZSB0cnVlOiAgc2VhcmNoVmFsdWUgPSBzZWFyY2hWYWx1ZSArICJvbmxpbmUiOyBicmVhazsNCiAgICAgIGNhc2UgZmFsc2U6IHNlYXJjaFZhbHVlID0gc2VhcmNoVmFsdWUgKyAib2ZmbGluZSI7IGJyZWFrOw0KICAgIH0NCg0KICAgIHNlYXJjaE9ialtzZWFyY2hWYWx1ZV0gPSBzZWFyY2hJRDsNCg0KICB9DQp9DQoNCg0KZnVuY3Rpb24gY2FsY3VsYXRlV3JhcHBlckhlaWdodCgpIHsNCg0KICBpZiAoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImJveC13cmFwcGVyIikpew0KDQogICAgdmFyIGVsbSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJib3gtd3JhcHBlciIpOw0KICAgIA0KICAgIHZhciBkaXZzID0gbmV3IEFycmF5KCJteVN0cmVhbXNCb3giLCAiY2xpZW50SW5mbyIsICJzZXR0aW5ncyIpOw0KICAgIHZhciBlbGVtZW50c0hlaWdodCA9IDAgLSBlbG0ub2Zmc2V0SGVpZ2h0Ow0KICAgIGZvciAodmFyIGkgPSAwOyBpIDwgZGl2cy5sZW5ndGg7IGkrKykgew0KICAgICAgZWxlbWVudHNIZWlnaHQgPSBlbGVtZW50c0hlaWdodCArIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGRpdnNbaV0pLm9mZnNldEhlaWdodDsNCiAgICB9DQoNCiAgICBlbG0uc3R5bGUuaGVpZ2h0ID0gd2luZG93LmlubmVySGVpZ2h0IC0gZWxlbWVudHNIZWlnaHQgKyAicHgiOw0KDQogIH0NCg0KICBpZiAoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm1lbnUtd3JhcHBlciIpKXsNCg0KICAgIHZhciBlbG0gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibWVudS13cmFwcGVyIik7DQogICAgDQogICAgdmFyIG9mZmVzdCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzZXR0aW5ncyIpLm9mZnNldEhlaWdodCArIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJteVN0cmVhbXNCb3giKS5vZmZzZXRIZWlnaHQgKyBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY2xpZW50SW5mbyIpLm9mZnNldEhlaWdodDsNCiAgICANCiAgICBpZiAod2luZG93LmlubmVySGVpZ2h0ID4gb2ZmZXN0KSB7DQogICAgICBlbG0uc3R5bGUuaGVpZ2h0ID0gd2luZG93LmlubmVySGVpZ2h0ICsgInB4Ig0KICAgIH0gZWxzZSB7DQogICAgICBlbG0uc3R5bGUuaGVpZ2h0ID0gb2ZmZXN0ICsgInB4Ig0KICAgIH0NCiAgICANCg0KICB9DQoNCg0KfQ0KDQpmdW5jdGlvbiBjcmVhdGVNYXBwaW5nVGFibGUoKSB7DQogIGNvbHVtblRvU29ydCA9IDE7DQogIGNyZWF0ZVNlYXJjaE9iaigpOw0KDQogIC8vIENyZWF0ZSB0YWJsZSAoSGVhZGVyKQ0KICB2YXIgdGFibGUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiaWRfbWFwcGluZyIpOw0KICB0YWJsZS5pbm5lckhUTUwgPSAiIjsNCiAgdmFyIG5ld1RSID0gbmV3IE9iamVjdCgpOw0KICBuZXdUUlsiX2VsZW1lbnQiXSA9ICJUUiI7DQogIG5ld1RSWyJjbGFzcyJdICAgID0gInRhYmxlLW1hcHBpbmctaGVhZGVyIjsNCiAgdGFibGUuYXBwZW5kQ2hpbGQoY3JlYXRlRWxlbWVudChuZXdUUikpOw0KDQogIHZhciB0ciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJpZF9tYXBwaW5nIikubGFzdENoaWxkOw0KICB2YXIgdHJIZWFkbGluZXMgPSBuZXcgQXJyYXkoIkJ1bGsiLCAiQ2guIE5vLiIsICJMb2dvIiwgIkNoYW5uZWwgTmFtZSIsICJQbGF5bGlzdCIsICJHcm91cCBUaXRsZSIsICJYTUxUViBGaWxlIiwgIlhNTFRWIElEIiwgIlRpbWVzaGlmdCIpDQoNCiAgZm9yICh2YXIgaSA9IDA7IGkgPCB0ckhlYWRsaW5lcy5sZW5ndGg7IGkrKykgew0KICAgIHZhciBuZXdURCA9IG5ldyBPYmplY3QoKTsNCg0KICAgIG5ld1REWyJfZWxlbWVudCJdID0gIlREIjsNCiAgICBuZXdURFsiX3RleHQiXSAgICA9IHRySGVhZGxpbmVzW2ldOw0KDQogICAgDQoNCiAgICB2YXIgd2lkdGggPSAiIjsNCiAgICBzd2l0Y2godHJIZWFkbGluZXNbaV0pIHsNCg0KICAgICAgY2FzZSAiQnVsayI6ICANCiAgICAgICAgDQogICAgICAgIG1heFdpZHRoID0gIjMycHgiOyANCiAgICAgICAgbWluV2lkdGggPSAiMzJweCI7IA0KICAgIA0KICAgICAgICAvLyBDcmVhdGUgYnVsayBURA0KICAgICAgICB2YXIgbmV3Q2hlY2tib3ggPSBuZXcgT2JqZWN0KCk7DQogICAgICAgIG5ld0NoZWNrYm94WyJfZWxlbWVudCJdID0gIklOUFVUIjsNCiAgICAgICAgbmV3Q2hlY2tib3hbInR5cGUiXSAgICAgPSAiY2hlY2tib3giOw0KICAgICAgICBuZXdDaGVja2JveFsiY2xhc3MiXSAgICA9ICJidWxrIGhpZGVCdWxrIjsNCiAgICAgICAgbmV3Q2hlY2tib3hbIm9ubW91c2VvdXQiXSA9ICJqYXZhc2NyaXB0OiB0aGlzLmJsdXIoKSINCiAgICAgICAgbmV3Q2hlY2tib3hbIm9uY2xpY2siXSAgICA9ICJqYXZhc2NyaXB0OiBidWxrRWRpdEFsbENoYW5uZWxzKCkiDQoNCiAgICANCiAgICAgICAgLy9uZXdURC5hcHBlbmRDaGlsZChjcmVhdGVFbGVtZW50KG5ld0NoZWNrYm94KSk7DQoNCiAgICAgICAgYnJlYWs7DQoNCiAgICAgIGNhc2UgIkNoLiBOby4iOiANCiAgICAgICAgbWF4V2lkdGggPSAiODBweCI7IA0KICAgICAgICBtaW5XaWR0aCA9ICI3MHB4IjsgDQogICAgICAgIG5ld1REWyJvbmNsaWNrIl0gID0gImphdnNjcmlwdDogc29ydFRhYmxlKCIgKyBpICsgIik7IjsNCiAgICAgICAgbmV3VERbImNsYXNzIl0gICAgPSAicG9pbnRlciI7DQogICAgICAgIGJyZWFrOw0KICAgICAgDQogICAgICBjYXNlICJMb2dvIjogIG1heFdpZHRoID0gIjEyMHB4IjsgbWluV2lkdGggPSAiNjBweCI7IGJyZWFrOw0KICAgICAgDQogICAgICBjYXNlICJDaGFubmVsIE5hbWUiOiAgDQogICAgICAgIG1heFdpZHRoID0gIjUwJSI7IA0KICAgICAgICBtaW5XaWR0aCA9ICIyMDBweCI7IA0KICAgICAgICBuZXdURFsib25jbGljayJdICA9ICJqYXZzY3JpcHQ6IHNvcnRUYWJsZSgiICsgaSArICIpOyI7DQogICAgICAgIG5ld1REWyJjbGFzcyJdID0gInBvaW50ZXIiOw0KICAgICAgICBicmVhazsNCg0KICAgICAgY2FzZSAiUGxheWxpc3QiOiAgICAgIA0KICAgICAgICBtYXhXaWR0aCA9ICIxNTBweCI7IA0KICAgICAgICBtaW5XaWR0aCA9ICIxMDBweCI7IA0KICAgICAgICBuZXdURFsib25jbGljayJdICA9ICJqYXZzY3JpcHQ6IHNvcnRUYWJsZSgiICsgaSArICIpOyI7DQogICAgICAgIG5ld1REWyJjbGFzcyJdICAgID0gInBvaW50ZXIiOw0KICAgICAgICBicmVhazsNCiAgICAgIA0KICAgICAgY2FzZSAiR3JvdXAgVGl0bGUiOiAgIA0KICAgICAgICBtYXhXaWR0aCA9ICIxNTBweCI7IA0KICAgICAgICBtaW5XaWR0aCA9ICIxMDBweCI7IA0KICAgICAgICBuZXdURFsib25jbGljayJdICA9ICJqYXZzY3JpcHQ6IHNvcnRUYWJsZSgiICsgaSArICIpOyI7DQogICAgICAgIG5ld1REWyJjbGFzcyJdICAgID0gInBvaW50ZXIiOw0KICAgICAgICBicmVhazsNCiAgICAgIA0KICAgICAgY2FzZSAiWE1MVFYgRmlsZSI6ICAgIA0KICAgICAgICBtYXhXaWR0aCA9ICIxNTBweCI7IA0KICAgICAgICBtaW5XaWR0aCA9ICIxMDBweCI7IA0KICAgICAgICAvL25ld1REWyJvbmNsaWNrIl0gID0gImphdnNjcmlwdDogc29ydFRhYmxlKCIgKyBpICsgIik7IjsNCiAgICAgICAgbmV3VERbImNsYXNzIl0gICAgPSAiIjsNCiAgICAgICAgYnJlYWs7DQogICAgICANCg0KICAgICAgY2FzZSAiWE1MVFYgSUQiOiAgICAgIG1heFdpZHRoID0gIjE1MHB4IjsgbWluV2lkdGggPSAiMTAwcHgiOyBicmVhazsNCg0KICAgICAgY2FzZSAiVGltZXNoaWZ0IjogICAgICBtYXhXaWR0aCA9ICI1MHB4IjsgbWluV2lkdGggPSAiMjBweCI7IGJyZWFrOw0KDQogICAgICBkZWZhdWx0OiANCiAgICAgICAgbmV3VERbImNsYXNzIl0gICAgPSAiIjsNCiAgICAgICAgYnJlYWs7DQogICAgfQ0KDQogICAgdHIuYXBwZW5kQ2hpbGQoY3JlYXRlRWxlbWVudChuZXdURCkpOw0KICAgIGlmICh0ckhlYWRsaW5lc1tpXSA9PSAiQnVsayIpIHsNCiAgICAgIHRyLmxhc3RDaGlsZC5pbm5lckhUTUwgPSAiIjsNCiAgICAgIHRyLmxhc3RDaGlsZC5hcHBlbmRDaGlsZChjcmVhdGVFbGVtZW50KG5ld0NoZWNrYm94KSk7DQogICAgICANCiAgICB9DQogICAgDQogICAgdmFyIGVsbSA9IHRyLmxhc3RDaGlsZDsNCiAgICBlbG0uc3R5bGUud2lkdGggPSBtYXhXaWR0aDsNCiAgICBlbG0uc3R5bGUubWF4V2lkdGggPSBtYXhXaWR0aDsNCiAgICBlbG0uc3R5bGUubWluV2lkdGggPSBtaW5XaWR0aDsNCg0KICB9DQogIGNhbGN1bGF0ZVdyYXBwZXJIZWlnaHQoKTsNCiAgdmFyIElEcyA9IGdldE9iaktleXMoeEVQR1siZXBnTWFwcGluZyJdKQ0KDQogIHZhciBhbGxYbWx0dkZpbGVzID0gZ2V0T2JqS2V5cyh4RVBHWyJ4bWx0dk1hcCJdKTsNCg0KICBpZiAoYWxsWG1sdHZGaWxlcyA9PSAwKSB7DQogICAgc2hvd0xvYWRpbmdTY3JlZW4oZmFsc2UpOw0KICAgIHJldHVybjsNCiAgfQ0KDQogIC8vIFNvcnQgSURzDQogIHZhciBwb3NPYmogPSBuZXcgT2JqZWN0KCk7DQogIGZvciAodmFyIGkgPSAwOyBpIDwgSURzLmxlbmd0aDsgaSsrKSB7DQogICAgdmFyIGl0ZW0gID0geEVQR1siZXBnTWFwcGluZyJdW0lEc1tpXV07DQogICAgdmFyIHBvcw0KICAgIHN3aXRjaChpc05hTih4RVBHWyJlcGdNYXBwaW5nIl1bSURzW2ldXVsieC1jaGFubmVsSUQiXSkpIHsNCiAgICAgIGNhc2UgZmFsc2U6IHBvcyA9IHBhcnNlRmxvYXQoeEVQR1siZXBnTWFwcGluZyJdW0lEc1tpXV1bIngtY2hhbm5lbElEIl0pIDsgYnJlYWs7DQogICAgfQ0KICAgIHBvc09ialtwb3NdID0gaXRlbTsNCiAgfQ0KICBwb3NGbG9hdCA9IGdldE9iaktleXMocG9zT2JqKQ0KICBmdW5jdGlvbiBzb3J0RmxvYXQoYSxiKSB7IHJldHVybiBhIC0gYjsgfQ0KICBwb3NGbG9hdC5zb3J0KHNvcnRGbG9hdCkNCg0KICAvL2NvbnNvbGUubG9nKHBvc0Zsb2F0KTsNCg0KICAvLyAtLS0NCg0KICBpZiAoSURzLmxlbmd0aCA+IDIwMCkgew0KICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKXsgDQogICAgICBzaG93TG9hZGluZ1NjcmVlbih0cnVlKTsNCiAgICB9LCAxKTsNCg0KICB9DQoNCg0KICAvLyB0YWJsZSBmb3IgaW50IGNoYW5uZWwgSUQncw0KICBmb3IgKHZhciBpID0gMDsgaSA8IHBvc0Zsb2F0Lmxlbmd0aDsgaSsrKSB7DQoNCiAgICB2YXIgdGFibGUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiaWRfbWFwcGluZyIpOw0KICAgIHZhciBpdGVtICA9IHBvc09ialtwb3NGbG9hdFtpXV07DQogICAgLy92YXIgaXRlbSAgPSB4RVBHWyJlcGdNYXBwaW5nIl1bSURzW2ldXTsNCiAgICAvL2NvbnNvbGUubG9nKGl0ZW0pOw0KICAgIHZhciBuZXdUUiA9IG5ldyBPYmplY3QoKTsNCiAgICBuZXdUUlsiX2VsZW1lbnQiXSAgICAgICA9ICJUUiI7DQogICAgbmV3VFJbImNsYXNzIl0gICAgICAgICAgPSAiIjsNCiAgICBuZXdUUlsiaWQiXSAgICAgICAgICAgICA9IGl0ZW1bIngtZXBnIl07DQogICAgbmV3VFJbIm9uY29udGV4dG1lbnUiXSAgPSAnamF2YXNjcmlwdDogc3dpdGNoQ2hhbm5lbFN0YXR1cygiJyArIGl0ZW1bIngtZXBnIl0gKyAnIik7IHJldHVybiBmYWxzZTsnOw0KICAgIHRhYmxlLmFwcGVuZENoaWxkKGNyZWF0ZUVsZW1lbnQobmV3VFIpKTsNCg0KICAgIHZhciB0ciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJpZF9tYXBwaW5nIikubGFzdENoaWxkOw0KICAgIA0KICAgIC8vIENyZWF0ZSBidWxrIFREDQogICAgdmFyIG5ld1REID0gbmV3IE9iamVjdCgpOw0KICAgIG5ld1REWyJfZWxlbWVudCJdICAgPSAiSU5QVVQiOw0KICAgIG5ld1REWyJ0eXBlIl0gICAgICAgPSAiY2hlY2tib3giOw0KICAgIG5ld1REWyJjbGFzcyJdICAgICAgPSAiYnVsayBoaWRlQnVsayI7DQogICAgbmV3VERbIm9ubW91c2VvdXQiXSA9ICJqYXZhc2NyaXB0OiB0aGlzLmJsdXIoKSINCiAgICANCiAgICBjcmVhdGVOZXdURChuZXdURCwgdHIpOw0KICAgIA0KDQogICAgLy8gQ3JlYXRlIElEIFREDQogICAgdmFyIG5ld1REID0gbmV3IE9iamVjdCgpOw0KICAgIG5ld1REWyJfZWxlbWVudCJdID0gIklOUFVUIjsNCiAgICBuZXdURFsidHlwZSJdICAgICA9ICJ0ZXh0Ig0KICAgIG5ld1REWyJjbGFzcyJdICAgID0gInc0MHB4IjsNCiAgICBuZXdURFsidmFsdWUiXSAgICA9IGl0ZW1bIngtY2hhbm5lbElEIl07DQogICAgbmV3VERbIm9uZm9jdXNvdXQiXSA9ICJqYXZhc2NyaXB0OiBhcnJhbmdlVGFibGUodGhpcyk7Ig0KICAgIGNyZWF0ZU5ld1REKG5ld1RELCB0cik7DQoNCiAgICAvLyBDcmVhdGUgSU1HIFREDQogICAgdmFyIG5ld1REID0gbmV3IE9iamVjdCgpOw0KICAgIG5ld1REWyJfZWxlbWVudCJdID0gIklNRyI7DQogICAgbmV3VERbIm9uY2xpY2siXSAgPSAnamF2YXNjcmlwdDogbWFwcGluZ0RldGFpbCgiJyArIGl0ZW1bIngtZXBnIl0gKyAnIik7JzsNCiAgICBpZiAoaXRlbVsidHZnLWxvZ28iXSAhPSB1bmRlZmluZWQpIHsNCiAgICAgIG5ld1REWyJzcmMiXSAgICAgID0gaXRlbVsidHZnLWxvZ28iXTsNCiAgICB9IGVsc2Ugew0KICAgICAgaXRlbVsidHZnLWxvZ28iXSA9ICIiOw0KICAgICAgbmV3VERbInNyYyJdID0gIiI7DQogICAgfQ0KICAgIGNyZWF0ZU5ld1REKG5ld1RELCB0cik7DQogICAgdHIubGFzdENoaWxkLnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBtYXBwaW5nRGV0YWlsKCInICsgaXRlbVsieC1lcGciXSArICciKTsnKQ0KDQogICAgLy8gQ3JlYXRlIFAgVEQgKGNoYW5uZWwgbmFtZSkNCiAgICB2YXIgbmV3VEQgPSBuZXcgT2JqZWN0KCk7DQogICAgbmV3VERbIl9lbGVtZW50Il0gPSAiUCI7DQogICAgbmV3VERbIl90ZXh0Il0gICAgPSBpdGVtWyJ4LW5hbWUiXTsNCiAgICBuZXdURFsiY2xhc3MiXSAgICAgPSBpdGVtWyJ4LWNhdGVnb3J5Il07DQoNCiAgICBjcmVhdGVOZXdURChuZXdURCwgdHIpOw0KICAgIHRyLmxhc3RDaGlsZC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogbWFwcGluZ0RldGFpbCgiJyArIGl0ZW1bIngtZXBnIl0gKyAnIik7JykNCiAgICB0ci5sYXN0Q2hpbGQubGFzdENoaWxkLnN0eWxlLnBhZGRpbmcgPSAiNXB4IDEwcHgiOw0KDQogICAgLy8gQ3JlYXRlIFAgVEQgKFBsYXlsaXN0IE5hbWUpDQogICAgdmFyIG5ld1REID0gbmV3IE9iamVjdCgpOw0KICAgIG5ld1REWyJfZWxlbWVudCJdID0gIlAiOw0KICAgIG5ld1REWyJfdGV4dCJdICAgID0gaXRlbVsiX2ZpbGUubTN1Lm5hbWUiXTsNCiAgICBuZXdURFsiY2xhc3MiXSAgICAgPSBpdGVtWyJ0YWJsZUVsbGlwc2lzIl07DQogICAgDQogICAgY3JlYXRlTmV3VEQobmV3VEQsIHRyKTsNCiAgICB0ci5sYXN0Q2hpbGQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IG1hcHBpbmdEZXRhaWwoIicgKyBpdGVtWyJ4LWVwZyJdICsgJyIpOycpDQogICAgDQogICAgLy8gQ3JlYXRlIFAgVEQgKEdyb3VwIFRpdGxlKQ0KICAgIHZhciBuZXdURCA9IG5ldyBPYmplY3QoKTsNCiAgICBuZXdURFsiX2VsZW1lbnQiXSA9ICJQIjsNCiAgICBuZXdURFsiX3RleHQiXSAgICA9IGl0ZW1bIngtZ3JvdXAtdGl0bGUiXTsNCiAgICBuZXdURFsiY2xhc3MiXSAgICAgPSBpdGVtWyJ0YWJsZUVsbGlwc2lzIl07DQogICAgDQogICAgY3JlYXRlTmV3VEQobmV3VEQsIHRyKTsNCiAgICB0ci5sYXN0Q2hpbGQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IG1hcHBpbmdEZXRhaWwoIicgKyBpdGVtWyJ4LWVwZyJdICsgJyIpOycpDQoNCiAgICANCiAgICAvLyBDcmVhdGUgUCBURCAoWE1MVFYgZmlsZSkNCiAgICB2YXIgbmV3VEQgPSBuZXcgT2JqZWN0KCk7DQogICAgbmV3VERbIl9lbGVtZW50Il0gICAgICAgPSAiUCI7DQogICAgbmV3VERbImNsYXNzIl0gICAgPSAidGFibGVFbGxpcHNpcyI7DQogICAgbmV3VERbIl90ZXh0Il0gPSAiLSINCg0KICAgIGlmIChhbGxYbWx0dkZpbGVzLmluZGV4T2YoaXRlbVsieC14bWx0di1maWxlIl0pICE9IC0xKSB7DQogICAgICB2YXIgeFhtbHR2RmlsZSA9IGl0ZW1bIngteG1sdHYtZmlsZSJdOw0KICAgICAgc3dpdGNoKHhYbWx0dkZpbGUpIHsNCiAgICAgICAgY2FzZSAiLSI6ICAgICAgICAgICBuZXdURFsiX3RleHQiXSAgPSB4WG1sdHZGaWxlOyBicmVhazsNCiAgICAgICAgY2FzZSAieFRlVmUgRHVtbXkiOiBuZXdURFsiX3RleHQiXSAgPSB4WG1sdHZGaWxlOyBicmVhazsNCiAgICAgICAgZGVmYXVsdDogICAgICAgICAgICBuZXdURFsiX3RleHQiXSAgPSBnZXRWYWx1ZUZyb21Qcm92aWRlckZpbGUoeFhtbHR2RmlsZSwgInhtbHR2IiwgIm5hbWUiKTsgYnJlYWs7DQogICAgICAgIA0KICAgICAgfQ0KICAgICAgLy9jb25zb2xlLmxvZyhuZXdURCk7DQoNCiAgICAgIC8vbmV3VERbIl90ZXh0Il0gICAgPSBpdGVtWyJ4LXhtbHR2LWZpbGUiXTsNCiAgICB9IGVsc2Ugew0KICAgICAgLy9uZXdURFsiX3RleHQiXSA9ICItIg0KICAgIH0NCiAgICBjcmVhdGVOZXdURChuZXdURCwgdHIpOw0KICAgIHRyLmxhc3RDaGlsZC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogbWFwcGluZ0RldGFpbCgiJyArIGl0ZW1bIngtZXBnIl0gKyAnIik7JykNCg0KICAgIC8vIENyZWF0ciBQIFREIChYTUxUViBjaGFubmVsIElEKQ0KICAgIG5ld1REWyJfZWxlbWVudCJdID0gIlAiOw0KICAgIG5ld1REWyJjbGFzcyJdICAgID0gInRhYmxlRWxsaXBzaXMiOw0KDQogICAgaWYgKGl0ZW1bIngtbWFwcGluZyJdICE9IHVuZGVmaW5lZCkgew0KICAgICAgbmV3VERbIl90ZXh0Il0gICAgPSBpdGVtWyJ4LW1hcHBpbmciXTsNCiAgICB9DQogICAgDQogICAgY3JlYXRlTmV3VEQobmV3VEQsIHRyKTsNCiAgICB0ci5sYXN0Q2hpbGQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IG1hcHBpbmdEZXRhaWwoIicgKyBpdGVtWyJ4LWVwZyJdICsgJyIpOycpDQoNCg0KICAgIHZhciB4WG1sdHZGaWxlICA9IGl0ZW1bIngteG1sdHYtZmlsZSJdOw0KICAgIHZhciB4TWFwcGluZyAgICA9IGl0ZW1bIngtbWFwcGluZyJdOw0KICAgIHZhciB0dmdJRCAgICAgICA9IGl0ZW1bInR2Zy1pZCJdOw0KICAgIA0KICAgIC8vY29uc29sZS5sb2coaXRlbVsieC1lcGciXSk7DQogICAgLy9jb25zb2xlLmxvZyhpdGVtKTsNCg0KICAgIGlmIChpdGVtWyJ4LWFjdGl2ZSJdID09IHRydWUpIHsNCiAgICAgIHRyLmNsYXNzTmFtZSA9ICJhY3RpdmVFUEciOw0KICAgIH0gZWxzZSB7DQogICAgICB0ci5jbGFzc05hbWUgPSAibm90QWN0aXZlRVBHIjsNCiAgICB9DQogICAgDQogIH0NCg0KICBzb3J0VGFibGUoMSk7DQoNCiAgc2V0VGltZW91dChmdW5jdGlvbigpeyANCiAgICBzaG93TG9hZGluZ1NjcmVlbihmYWxzZSk7DQogIH0sIDUpOw0KfQ0KDQpmdW5jdGlvbiBzZWFyY2hJbk1hcHBpbmcoZWxtKSB7DQoNCiAgdmFyIHNlYXJjaCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzZWFyY2hNYXBwaW5nIikudmFsdWU7DQogIHZhciB2YWx1ZXMgPSBnZXRPYmpLZXlzKHNlYXJjaE9iaikNCiAgDQogIGZvciAodmFyIGkgPSB2YWx1ZXMubGVuZ3RoIC0gMTsgaSA+PSAwOyBpLS0pIHsNCiAgICB2YXIgaWQgPSBzZWFyY2hPYmpbdmFsdWVzW2ldXTsNCiAgICB2YXIgYm9vbCA9IHZhbHVlc1tpXS50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKHNlYXJjaC50b0xvd2VyQ2FzZSgpKTsNCiAgICBzd2l0Y2goYm9vbCkgew0KICAgICAgY2FzZSB0cnVlOiAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpLnN0eWxlLmRpc3BsYXkgPSAiIjsgYnJlYWs7DQogICAgICBjYXNlIGZhbHNlOiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkuc3R5bGUuZGlzcGxheSA9ICJub25lIjsgYnJlYWs7DQogICAgfQ0KICB9DQoNCn0NCg0KZnVuY3Rpb24gbWFwcGluZ0RldGFpbCh4ZXBnKSB7DQogIA0KICBidWxrSURzICAgPSBuZXcgQXJyYXkoKTsNCiAgdmFyIGFjdGl2ZUVsZW1lbnQgPSBkb2N1bWVudC5hY3RpdmVFbGVtZW50Ow0KICAvLyBJZiBpbnB1dCBpZCwgcmV0dXJuDQogIGlmIChhY3RpdmVFbGVtZW50LnRhZ05hbWUgPT0gIklOUFVUIikgew0KICAgIHJldHVybg0KICB9DQoNCiAgaWYgKGJ1bGsgPT0gdHJ1ZSkgew0KICAgIHZhciBlbG0gPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCJidWxrIik7DQogICAgZm9yICh2YXIgaSA9IDE7IGkgPCBlbG0ubGVuZ3RoOyBpKyspIHsNCiAgICAgIGlmIChlbG1baV0uY2hlY2tlZCA9PSB0cnVlKSB7DQogICAgICAgIHZhciBpZCA9IGVsbVtpXS5wYXJlbnRFbGVtZW50LnBhcmVudEVsZW1lbnQuaWQ7DQogICAgICAgIGJ1bGtJRHMucHVzaChpZCkNCiAgICAgIH0NCiAgICAgIA0KICAgIH0NCg0KICAgIGlmIChidWxrSURzLmxlbmd0aCA9PSAwKSB7DQogICAgICBzaG93RWxlbWVudCgncG9wdXAnLCBmYWxzZSkNCiAgICAgIGFsZXJ0KCJObyBjaGFubmVscyBzZWxlY3RlZCBmb3IgZWRpdGluZyIpDQogICAgICByZXR1cm4NCiAgICB9DQoNCiAgICB4ZXBnID0gYnVsa0lEc1swXQ0KICB9DQoNCg0KICBjcmVhdGVTZWFyY2hPYmooKTsNCiAgDQogIHNob3dQb3BVcEVsZW1lbnQoJ21hcHBpbmctZGV0YWlsJyk7DQoNCiAgdmFyIHRoaXNDaGFubmVsID0geEVQR1siZXBnTWFwcGluZyJdW3hlcGddOw0KICAvL2NvbnNvbGUubG9nKHRoaXNDaGFubmVsKTsNCiAgdmFyIHhYbWx0dkZpbGUgID0gdGhpc0NoYW5uZWxbIngteG1sdHYtZmlsZSJdOw0KICB2YXIgeE1hcHBpbmcgICAgPSB0aGlzQ2hhbm5lbFsieC1tYXBwaW5nIl07DQogIHZhciB4Q2F0ZWdvcnkgICA9IHRoaXNDaGFubmVsWyJ4LWNhdGVnb3J5Il07DQoNCiAgaWYgKHhYbWx0dkZpbGUgPT0gdW5kZWZpbmVkKSB7DQogICAgdGhpc0NoYW5uZWxbIngteG1sdHYtZmlsZSJdID0gIi0iOw0KICAgIHhYbWx0dkZpbGUgPSAiLSI7DQogIH0NCg0KICBpZiAoeE1hcHBpbmcgPT0gdW5kZWZpbmVkKSB7DQogICAgdGhpc0NoYW5uZWxbIngtbWFwcGluZyJdID0gIi0iOw0KICAgIHhNYXBwaW5nID0gIi0iOw0KICB9DQoNCiAgLyoNCiAgY29uc29sZS5sb2coIklEOiIsIHhlcGcpOw0KICBjb25zb2xlLmxvZygiWE1MVFYgRmlsZToiLCB4WG1sdHZGaWxlKTsNCiAgY29uc29sZS5sb2coIk1hcHBpbmc6IiwgeE1hcHBpbmcpOw0KICAqLw0KDQogIHZhciBrZXlzID0gZ2V0T2JqS2V5cyh0aGlzQ2hhbm5lbCk7DQogIGZvciAodmFyIGkgPSAwOyBpIDwga2V5cy5sZW5ndGg7IGkrKykgew0KICAgIGlmKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGtleXNbaV0pKXsNCiAgICAgIHZhciB0ZCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGtleXNbaV0pDQogICAgfSBlbHNlIHsNCiAgICAgIHZhciB0ZCA9IHVuZGVmaW5lZDsNCiAgICB9DQogICAgDQogICAgdmFyIG5ld0l0ZW0gPSBuZXcgT2JqZWN0KCk7DQogICAgdmFyIHZhbHVlcywgdGV4dCA9IG5ldyBBcnJheSgpOw0KICAgIHN3aXRjaChrZXlzW2ldKSB7DQogICAgICBjYXNlICJ4LXhtbHR2LWZpbGUiOiANCiAgICAgICAgdmFyIGZpbGVJRHMgPSBnZXRPYmpLZXlzKHhFUEdbInhtbHR2TWFwIl0pOw0KICAgICAgICB2YXIgdmFsdWUgPSBuZXcgQXJyYXkoIi0iKTsNCiAgICAgICAgdmFyIHRleHQgID0gbmV3IEFycmF5KCItIik7DQoNCiAgICAgICAgZm9yICh2YXIgaiA9IGZpbGVJRHMubGVuZ3RoIC0gMTsgaiA+PSAwOyBqLS0pIHsNCiAgICAgICAgICBpZiAoZmlsZUlEc1tqXSAhPSAieFRlVmUgRHVtbXkiKSB7DQogICAgICAgICAgICB2YWx1ZS5wdXNoKGdldFZhbHVlRnJvbVByb3ZpZGVyRmlsZShmaWxlSURzW2pdLCAieG1sdHYiLCAiZmlsZS54dGV2ZSIpKQ0KICAgICAgICAgICAgdGV4dC5wdXNoKGdldFZhbHVlRnJvbVByb3ZpZGVyRmlsZShmaWxlSURzW2pdLCAieG1sdHYiLCAibmFtZSIpKQ0KICAgICAgICAgIH0gZWxzZSB7DQogICAgICAgICAgICB2YWx1ZS5wdXNoKGZpbGVJRHNbal0pDQogICAgICAgICAgICB0ZXh0LnB1c2goZmlsZUlEc1tqXSkNCiAgICAgICAgICB9DQogICAgICAgICAgDQogICAgICAgIH0NCiAgICAgICAgDQogICAgICAgIG5ld0l0ZW1bIl9lbGVtZW50Il0gICAgICAgPSAiU0VMRUNUIjsNCiAgICAgICAgbmV3SXRlbVsiX29wdGlvblZhbHVlcyJdICA9IHZhbHVlOw0KICAgICAgICBuZXdJdGVtWyJfb3B0aW9uVGV4dCJdICAgID0gdGV4dA0KICAgICAgICBuZXdJdGVtWyJ2YWx1ZSJdICAgICAgICAgID0geFhtbHR2RmlsZTsNCiAgICAgICAgbmV3SXRlbVsib25jaGFuZ2UiXSAgICAgICA9ICdqYXZhc2NyaXB0OiBjaGFuZ2VYbWx0dkZpbGUoIicgKyB4ZXBnICsgJyIsdGhpcyk7JzsNCg0KICAgICAgICBicmVhazsNCg0KICAgICAgY2FzZSAieC1tYXBwaW5nIjogDQoNCiAgICAgICAgdmFyIHZhbHVlcyA9IGdldE9iaktleXMoeEVQR1sieG1sdHZNYXAiXVt4WG1sdHZGaWxlXSk7DQoNCiAgICAgICAgZm9yICh2YXIgaiA9IDA7IGogPCB2YWx1ZXMubGVuZ3RoOyBqKyspIHsNCiAgICAgICAgICANCiAgICAgICAgICBpZiAoeEVQR1sieG1sdHZNYXAiXVt4WG1sdHZGaWxlXVt2YWx1ZXNbal1dLmhhc093blByb3BlcnR5KCdkaXNwbGF5LW5hbWUnKSA9PSB0cnVlKSB7DQogICAgICAgICAgICB2YXIgZGlzcGxheU5hbWUgPSB4RVBHWyJ4bWx0dk1hcCJdW3hYbWx0dkZpbGVdW3ZhbHVlc1tqXV1bImRpc3BsYXktbmFtZSJdOw0KICAgICAgICAgIH0gZWxzZSB7DQogICAgICAgICAgICB2YXIgZGlzcGxheU5hbWUgPSAiLSINCiAgICAgICAgICB9DQogICAgICAgICAgDQogICAgICAgICAgLy90ZXh0W2pdID0gdmFsdWVzW2pdICsgIiAoIiArIGRpc3BsYXlOYW1lICsgIikiOw0KICAgICAgICAgIHRleHRbal0gPSBkaXNwbGF5TmFtZSArICIgKCIgKyB2YWx1ZXNbal0gICsgIikiOw0KICAgICAgICB9DQoNCiAgICAgICAgdGV4dC51bnNoaWZ0KCItIik7DQogICAgICAgIHZhbHVlcy51bnNoaWZ0KCItIik7DQogICAgICAgIG5ld0l0ZW1bIl9lbGVtZW50Il0gICAgICAgPSAiU0VMRUNUIjsNCiAgICAgICAgbmV3SXRlbVsiX29wdGlvblZhbHVlcyJdICA9IHZhbHVlczsNCiAgICAgICAgbmV3SXRlbVsiX29wdGlvblRleHQiXSAgICA9IHRleHQNCiAgICAgICAgbmV3SXRlbVsidmFsdWUiXSAgICAgICAgICA9IHhNYXBwaW5nOw0KICAgICAgICBuZXdJdGVtWyJvbmNoYW5nZSJdICAgICAgID0gJ2phdmFzY3JpcHQ6IG1hcHBpbmdDaGFubmVsKCInICsgeGVwZyArICciLHRoaXMpOyc7DQogICAgICAgIGJyZWFrOw0KDQogICAgICBjYXNlICJ4LWNhdGVnb3J5IjoNCiAgICAgICAgLy92YXIgdmFsdWVzID0gcGxleENhdGVnb3JpZXNWYWx1ZXMNCiAgICAgICAgbmV3SXRlbVsiX2VsZW1lbnQiXSAgICAgICA9ICJTRUxFQ1QiOw0KICAgICAgICBuZXdJdGVtWyJfb3B0aW9uVmFsdWVzIl0gID0gcGxleENhdGVnb3JpZXNWYWx1ZXM7DQogICAgICAgIG5ld0l0ZW1bIl9vcHRpb25UZXh0Il0gICAgPSBwbGV4Q2F0ZWdvcmllc09wdGlvbjsNCiAgICAgICAgbmV3SXRlbVsidmFsdWUiXSAgICAgICAgICA9IHhDYXRlZ29yeTsNCiAgICAgICAgbmV3SXRlbVsib25jaGFuZ2UiXSAgICAgICA9ICdzYXZlQ2F0ZWdvcnkoIicgKyB4ZXBnICsgJyIpJzsNCiAgICAgICAgYnJlYWs7DQoNCiAgICAgIGNhc2UgInR2Zy1sb2dvIjoNCiAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNoYW5uZWwtbG9nbyIpLnNldEF0dHJpYnV0ZSgic3JjIiwgdGhpc0NoYW5uZWxbInR2Zy1sb2dvIl0pOw0KICAgICAgICBuZXdJdGVtWyJfZWxlbWVudCJdICAgICAgID0gIklOUFVUIjsNCiAgICAgICAgbmV3SXRlbVsidHlwZSJdICAgICAgICAgICA9ICJ0ZXh0IjsNCiAgICAgICAgbmV3SXRlbVsidmFsdWUiXSAgICAgICAgICA9IHRoaXNDaGFubmVsWyJ0dmctbG9nbyJdOw0KICAgICAgICBuZXdJdGVtWyJvbmZvY3Vzb3V0Il0gICAgID0gJ3NhdmVDaGFubmVsTG9nbygiJyArIHhlcGcgKyAnIiknOw0KICAgICAgICBuZXdJdGVtWyJwbGFjZWhvbGRlciJdICAgID0gJ0ltYWdlIFVSTCc7DQogICAgICAgIGJyZWFrOw0KDQogICAgICBjYXNlICJ4LXVwZGF0ZS1jaGFubmVsLWljb24iOg0KICAgICAgICBuZXdJdGVtWyJfZWxlbWVudCJdICAgICAgID0gIklOUFVUIjsNCiAgICAgICAgbmV3SXRlbVsidHlwZSJdICAgICAgICAgICA9ICJjaGVja2JveCI7DQogICAgICAgIHN3aXRjaChKU09OLnBhcnNlKHRoaXNDaGFubmVsWyJ4LXVwZGF0ZS1jaGFubmVsLWljb24iXSkpIHsNCiAgICAgICAgICBjYXNlIHRydWU6IG5ld0l0ZW1bImNoZWNrZWQiXSAgICAgICAgPSB0aGlzQ2hhbm5lbFsieC11cGRhdGUtY2hhbm5lbC1pY29uIl07DQogICAgICAgICAgICBicmVhaw0KICAgICAgICB9DQogICAgICAgIG5ld0l0ZW1bIm9uY2hhbmdlIl0gICAgID0gJ3NhdmVDaGFubmVsSWNvblVwZGF0ZSgiJyArIHhlcGcgKyAnIiknOw0KICAgICAgICBicmVhazsNCg0KICAgICAgY2FzZSAieC1uYW1lIjoNCiAgICAgICAgbmV3SXRlbVsiX2VsZW1lbnQiXSAgICAgICA9ICJJTlBVVCI7DQogICAgICAgIG5ld0l0ZW1bInR5cGUiXSAgICAgICAgICAgPSAidGV4dCI7DQogICAgICAgIG5ld0l0ZW1bInZhbHVlIl0gICAgICAgICAgPSB0aGlzQ2hhbm5lbFsieC1uYW1lIl07DQogICAgICAgIG5ld0l0ZW1bIm9uZm9jdXNvdXQiXSAgICAgPSAnc2F2ZUNoYW5uZWxOYW1lKCInICsgeGVwZyArICciKSc7DQogICAgICAgIG5ld0l0ZW1bInBsYWNlaG9sZGVyIl0gICAgPSAnQ2hhbm5lbCBOYW1lJzsNCiAgICAgICAgYnJlYWs7DQoNCiAgICAgIGNhc2UgIngtdXBkYXRlLWNoYW5uZWwtbmFtZSI6DQogICAgICAgIGlmICh0aGlzQ2hhbm5lbC5oYXNPd25Qcm9wZXJ0eSgiX3V1aWQua2V5IikgPT0gdHJ1ZSkgew0KICAgICAgICAgIG5ld0l0ZW1bIl9lbGVtZW50Il0gICAgICAgPSAiSU5QVVQiOw0KICAgICAgICAgIG5ld0l0ZW1bInR5cGUiXSAgICAgICAgICAgPSAiY2hlY2tib3giOw0KICAgICAgICAgIHN3aXRjaChKU09OLnBhcnNlKHRoaXNDaGFubmVsWyJ4LXVwZGF0ZS1jaGFubmVsLW5hbWUiXSkpIHsNCiAgICAgICAgICAgIGNhc2UgdHJ1ZTogbmV3SXRlbVsiY2hlY2tlZCJdICAgICAgICA9IHRoaXNDaGFubmVsWyJ4LXVwZGF0ZS1jaGFubmVsLW5hbWUiXTsNCiAgICAgICAgICAgICAgYnJlYWsNCiAgICAgICAgICB9DQogICAgICAgICAgbmV3SXRlbVsib25jaGFuZ2UiXSAgICAgPSAnc2F2ZUNoYW5uZWxOYW1lVXBkYXRlKCInICsgeGVwZyArICciKSc7DQogICAgICAgICAgc2hvd0VsZW1lbnQoInN0cmVhbUhhc0NVSUQiLCB0cnVlKQ0KDQogICAgICAgICAgYnJlYWs7DQogICAgICAgIH0gZWxzZSB7DQogICAgICAgICAgLy9zdHJlYW1IYXNDVUlEDQogICAgICAgICAgc2hvd0VsZW1lbnQoInN0cmVhbUhhc0NVSUQiLCBmYWxzZSkNCiAgICAgICAgICBicmVhazsNCiAgICAgICAgfQ0KICAgICAgICANCiAgICAgIGNhc2UgIngtYWN0aXZlIjoNCiAgICAgICAgbmV3SXRlbVsiX2VsZW1lbnQiXSAgICAgICA9ICJJTlBVVCI7DQogICAgICAgIG5ld0l0ZW1bInR5cGUiXSAgICAgICAgICAgPSAiY2hlY2tib3giOw0KICAgICAgICBzd2l0Y2goSlNPTi5wYXJzZSh0aGlzQ2hhbm5lbFsieC1hY3RpdmUiXSkpIHsNCiAgICAgICAgICBjYXNlIHRydWU6IG5ld0l0ZW1bImNoZWNrZWQiXSAgICAgICAgPSB0aGlzQ2hhbm5lbFsieC1hY3RpdmUiXTsNCiAgICAgICAgICAgIGJyZWFrDQogICAgICAgIH0NCiAgICAgICAgbmV3SXRlbVsib25jaGFuZ2UiXSAgICAgPSAnc2F2ZUNoYW5uZWxTdGF0dXMoIicgKyB4ZXBnICsgJyIpJzsNCiAgICAgICAgYnJlYWs7DQoNCiAgICAgIGNhc2UgIngtZ3JvdXAtdGl0bGUiOg0KICAgICAgICBuZXdJdGVtWyJfZWxlbWVudCJdICAgICAgID0gIklOUFVUIjsNCiAgICAgICAgbmV3SXRlbVsidHlwZSJdICAgICAgICAgICA9ICJ0ZXh0IjsNCiAgICAgICAgbmV3SXRlbVsidmFsdWUiXSAgICAgICAgICA9IHRoaXNDaGFubmVsWyJ4LWdyb3VwLXRpdGxlIl07DQogICAgICAgIG5ld0l0ZW1bIm9uZm9jdXNvdXQiXSAgICAgPSAnc2F2ZUdyb3VwVGl0bGUoIicgKyB4ZXBnICsgJyIpJzsNCiAgICAgICAgbmV3SXRlbVsicGxhY2Vob2xkZXIiXSAgICA9ICdHcm91cCBUaXRsZSc7DQogICAgICAgIGJyZWFrOw0KDQogICAgICBkZWZhdWx0Og0KICAgICAgICBuZXdJdGVtWyJfZWxlbWVudCJdICAgICAgID0gIlAiOw0KICAgICAgICBuZXdJdGVtWyJfdGV4dCJdICAgICAgICAgID0gdGhpc0NoYW5uZWxba2V5c1tpXV07DQogICAgICAgIGJyZWFrOw0KICAgICAgDQogICAgfQ0KICAgIA0KICAgIGlmICh0ZCAhPSB1bmRlZmluZWQpIHsNCiAgICAgIHRkLmlubmVySFRNTCA9ICIiOw0KICAgICAgdmFyIGVsZW1lbnQgPSBjcmVhdGVOZXdFbGVtZW50KG5ld0l0ZW0pDQogICAgICAvL2NvbnNvbGUubG9nKGVsZW1lbnQpOw0KICAgICAgdGQuYXBwZW5kQ2hpbGQoZWxlbWVudCk7DQogICAgfQ0KDQogIH0NCg0KICBpZiAoYnVsayA9PSB0cnVlKSB7DQoNCiAgICB2YXIgZWxtID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSgibm9CdWxrIik7DQogICAgZm9yICh2YXIgaSA9IDA7IGkgPCBlbG0ubGVuZ3RoOyBpKyspIHsNCiAgICAgIGVsbVtpXS5sYXN0Q2hpbGQuc2V0QXR0cmlidXRlKCJyZWFkb25seSIsIHRydWUpDQogICAgICBlbG1baV0ubGFzdENoaWxkLnN0eWxlLmJvcmRlckNvbG9yID0gInJlZCI7DQogICAgfQ0KDQogICAgeGVwZyA9IGJ1bGtJRHNbMF0NCiAgfQ0KDQogIHNvcnRTZWxlY3QoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIngteG1sdHYtZmlsZSIpLmxhc3RDaGlsZCk7DQogIHNvcnRTZWxlY3QoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIngtbWFwcGluZyIpLmxhc3RDaGlsZCk7DQogIA0KfQ0KDQpmdW5jdGlvbiBzb3J0U2VsZWN0KGVsZW0pIHsNCg0KICB2YXIgdG1wQXJ5ID0gW107DQogIC8vIFJldGFpbiBzZWxlY3RlZCB2YWx1ZSBiZWZvcmUgc29ydGluZw0KICB2YXIgc2VsZWN0ZWRWYWx1ZSA9IGVsZW1bZWxlbS5zZWxlY3RlZEluZGV4XS52YWx1ZTsNCiAgLy8gR3JhYiBhbGwgZXhpc3RpbmcgZW50cmllcw0KICBmb3IgKHZhciBpPTA7aTxlbGVtLm9wdGlvbnMubGVuZ3RoO2krKykgdG1wQXJ5LnB1c2goZWxlbS5vcHRpb25zW2ldKTsNCiAgLy8gU29ydCBhcnJheSBieSB0ZXh0IGF0dHJpYnV0ZQ0KICB0bXBBcnkuc29ydChmdW5jdGlvbihhLGIpeyByZXR1cm4gKGEudGV4dCA8IGIudGV4dCk/LTE6MTsgfSk7DQogIC8vIFdpcGUgb3V0IGV4aXN0aW5nIGVsZW1lbnRzDQogIHdoaWxlIChlbGVtLm9wdGlvbnMubGVuZ3RoID4gMCkgZWxlbS5vcHRpb25zWzBdID0gbnVsbDsNCiAgLy8gUmVzdG9yZSBzb3J0ZWQgZWxlbWVudHMNCiAgdmFyIG5ld1NlbGVjdGVkSW5kZXggPSAwOw0KICBmb3IgKHZhciBpPTA7aTx0bXBBcnkubGVuZ3RoO2krKykgew0KICAgICAgZWxlbS5vcHRpb25zW2ldID0gdG1wQXJ5W2ldOw0KICAgICAgaWYoZWxlbS5vcHRpb25zW2ldLnZhbHVlID09IHNlbGVjdGVkVmFsdWUpIG5ld1NlbGVjdGVkSW5kZXggPSBpOw0KICB9DQogIGVsZW0uc2VsZWN0ZWRJbmRleCA9IG5ld1NlbGVjdGVkSW5kZXg7IC8vIFNldCBuZXcgc2VsZWN0ZWQgaW5kZXggYWZ0ZXIgc29ydGluZw0KICByZXR1cm47DQp9DQoNCg0KZnVuY3Rpb24gc3dpdGNoQ2hhbm5lbFN0YXR1cyh4ZXBnKSB7DQogIHZhciB0aGlzQ2hhbm5lbCA9IHhFUEdbImVwZ01hcHBpbmciXVt4ZXBnXTsNCiAgdmFyIHhYbWx0dkZpbGUgPSB0aGlzQ2hhbm5lbFsieC14bWx0di1maWxlIl07DQoNCiAgaWYgKHhFUEdbInhtbHR2TWFwIl0uaGFzT3duUHJvcGVydHkoeFhtbHR2RmlsZSkgPT0gdHJ1ZSkgew0KICAgIGlmICh0aGlzQ2hhbm5lbFsieC1tYXBwaW5nIl0gIT0gIi0iICYmIHRoaXNDaGFubmVsWyJ4LW1hcHBpbmciXSAhPSB1bmRlZmluZWQpIHsNCiAgICAgIHRoaXNDaGFubmVsWyJ4LWFjdGl2ZSJdID0gIXRoaXNDaGFubmVsWyJ4LWFjdGl2ZSJdOw0KICAgICAgdmFyIHRyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoeGVwZyk7DQogICAgICBzd2l0Y2godGhpc0NoYW5uZWxbIngtYWN0aXZlIl0pIHsNCiAgICAgICAgY2FzZSB0cnVlOiB0ci5jbGFzc05hbWUgPSAiYWN0aXZlRVBHIjsgYnJlYWs7DQogICAgICAgIGNhc2UgZmFsc2U6IHRyLmNsYXNzTmFtZSA9ICJub3RBY3RpdmVFUEciOyBicmVhazsNCiAgICAgIH0NCiAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJsb2dJbmZvIikuY2xhc3NOYW1lID0gIm5vdFZpc2libGUiOw0KDQogICAgfSBlbHNlIHsNCiAgICAgIHZhciBlcnIgPSAiWE1MVFYgQ2hhbm5lbCBpcyBub3Qgc2VsZWN0ZWQiDQogICAgICBhbGVydChlcnIpDQogICAgICAvKg0KICAgICAgdmFyIG5ld0Vycm9yID0gbmV3IE9iamVjdCgpOw0KICAgICAgbmV3RXJyb3JbImVyciJdID0gIkNoYW5uZWwgaXMgbm90IHNlbGVjdGVkIjsNCiAgICAgIGNoZWNrRXJyKG5ld0Vycm9yKTsNCiAgICAgICovDQogICAgfQ0KDQogIH0gZWxzZSB7DQogICAgdmFyIGVyciA9ICJYTUxUViBGaWxlIGlzIG5vdCBzZWxlY3RlZCINCiAgICBhbGVydChlcnIpDQogICAgLyoNCiAgICB2YXIgbmV3RXJyb3IgPSBuZXcgT2JqZWN0KCk7DQogICAgbmV3RXJyb3JbImVyciJdID0gIlhNTFRWIGZpbGUgaXMgbm90IHNlbGVjdGVkIjsNCiAgICBjaGVja0VycihuZXdFcnJvcik7DQogICAgKi8NCiAgfQ0KDQogIHNlYXJjaEluTWFwcGluZygpOw0KDQp9DQoNCmZ1bmN0aW9uIGNyZWF0ZU5ld0VsZW1lbnQobmV3SXRlbSkgew0KDQogIHZhciBlbGVtZW50ID0gY3JlYXRlRWxlbWVudChuZXdJdGVtKTsNCiAgDQogIHN3aXRjaChuZXdJdGVtWyJfZWxlbWVudCJdKSB7DQogICAgY2FzZSAiU0VMRUNUIjoNCiAgICAgIC8vZWxlbWVudFtdDQogICAgICB2YXIgdmFsdWVzICA9IG5ld0l0ZW1bIl9vcHRpb25WYWx1ZXMiXTsNCiAgICAgIHZhciB0ZXh0ICAgID0gbmV3SXRlbVsiX29wdGlvblRleHQiXTsNCg0KICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB2YWx1ZXMubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgLy9jb25zb2xlLmxvZyhpdGVtKTsNCiAgICAgICAgdmFyIG5ld0VudHJ5ID0gbmV3IE9iamVjdDsNCiAgICAgICAgbmV3RW50cnlbIl9lbGVtZW50Il0gID0gIk9QVElPTiI7DQogICAgICAgIG5ld0VudHJ5WyJfdGV4dCJdICAgICA9IHRleHRbaV07DQogICAgICAgIG5ld0VudHJ5WyJ2YWx1ZSJdICAgICA9IHZhbHVlc1tpXTsNCiAgICAgICAgZWxlbWVudC5hcHBlbmRDaGlsZChjcmVhdGVFbGVtZW50KG5ld0VudHJ5KSk7DQogICAgICB9DQogICAgICBlbGVtZW50LnZhbHVlID0gbmV3SXRlbVsidmFsdWUiXTsNCiAgICAgIGJyZWFrOw0KICAgIA0KICAgIGRlZmF1bHQ6IA0KICAgICAgDQogICAgICAvL2VsZW1lbnQuYXBwZW5kQ2hpbGQoY3JlYXRlRWxlbWVudChuZXdJdGVtKSk7DQogICAgICBicmVhazsNCiAgfQ0KICANCiAgcmV0dXJuIGVsZW1lbnQ7DQp9DQoNCmZ1bmN0aW9uIHNhdmVCdWxrKGtleSwgdmFsdWUpIHsNCiAgZm9yICh2YXIgaSA9IDA7IGkgPCBidWxrSURzLmxlbmd0aDsgaSsrKSB7DQogICAgdmFyIGlkID0gYnVsa0lEc1tpXQ0KICAgIHZhciB0aGlzQ2hhbm5lbCA9IHhFUEdbImVwZ01hcHBpbmciXVtpZF07DQogICAgdGhpc0NoYW5uZWxba2V5XSA9IHZhbHVlOw0KDQogICAgc3dpdGNoKGtleSkgew0KICAgICAgY2FzZSAidHZnLWxvZ28iOiAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5jaGlsZE5vZGVzWzJdLmxhc3RDaGlsZC5zZXRBdHRyaWJ1dGUoInNyYyIsIHZhbHVlKTsgYnJlYWs7DQogICAgICANCiAgICAgIGNhc2UgIngtY2F0ZWdvcnkiOiAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkuY2hpbGROb2Rlc1szXS5sYXN0Q2hpbGQuY2xhc3NOYW1lID0gdmFsdWU7IGJyZWFrOw0KDQogICAgICBjYXNlICJ4LXhtbHR2LWZpbGUiOg0KICAgICAgICB2YXIgZWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5jaGlsZE5vZGVzWzZdLmxhc3RDaGlsZDsNCiAgICAgICAgc3dpdGNoKHZhbHVlKSB7DQogICAgICAgICAgY2FzZSAiLSI6ICAgICAgICAgICBlbGVtZW50LmlubmVySFRNTCA9IHZhbHVlOyBicmVhazsNCiAgICAgICAgICBjYXNlICJ4VGVWZSBEdW1teSI6IGVsZW1lbnQuaW5uZXJIVE1MID0gdmFsdWU7IGJyZWFrOw0KICAgICAgICAgIGRlZmF1bHQ6ICAgICAgICAgICAgZWxlbWVudC5pbm5lckhUTUwgPSBnZXRWYWx1ZUZyb21Qcm92aWRlckZpbGUodmFsdWUsICJ4bWx0diIsICJuYW1lIik7IGJyZWFrOw0KICAgICAgICB9DQoNCg0KDQogICAgICAvL2RvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5jaGlsZE5vZGVzWzVdLmxhc3RDaGlsZC5pbm5lckhUTUwgPSB2YWx1ZS5yZXBsYWNlKC9eLipbXFxcL10vLCAnJyk7IGJyZWFrOw0KICAgICAgY2FzZSAieC1tYXBwaW5nIjogICANCiAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpLmNoaWxkTm9kZXNbN10ubGFzdENoaWxkLmlubmVySFRNTCA9IHZhbHVlOw0KICAgICAgICBpZiAodmFsdWUgPT0gIi0iKSB7DQogICAgICAgICAgdGhpc0NoYW5uZWxbIngtYWN0aXZlIl0gPSBmYWxzZTsNCiAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkuY2xhc3NOYW1lID0gIm5vdEFjdGl2ZUVQRyI7DQogICAgICAgIH0gZWxzZSB7DQogICAgICAgICAgdGhpc0NoYW5uZWxbIngtYWN0aXZlIl0gPSB0cnVlOw0KICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5jbGFzc05hbWUgPSAiYWN0aXZlRVBHIjsNCiAgICAgICAgfQ0KICAgICAgICBicmVhazsNCg0KICAgICAgY2FzZSAieC1ncm91cC10aXRsZSI6IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5jaGlsZE5vZGVzWzVdLmxhc3RDaGlsZC5pbm5lckhUTUwgPSB2YWx1ZTsgYnJlYWs7DQoNCiAgICAgIGNhc2UgIngtYWN0aXZlIjoNCiAgICAgICAgdmFyIHRyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpOw0KICAgICAgICANCiAgICAgICAgaWYgKHRoaXNDaGFubmVsLmhhc093blByb3BlcnR5KCJ4LXhtbHR2LWZpbGUiKSA9PSB0cnVlKSB7DQogICAgICAgICAgaWYgKHRoaXNDaGFubmVsWyJ4LW1hcHBpbmciXSAhPSAiLSIgJiYgdGhpc0NoYW5uZWxbIngtbWFwcGluZyJdICE9IHVuZGVmaW5lZCAmJiB0aGlzQ2hhbm5lbFsieC14bWx0di1maWxlIl0gIT0gIi0iICYmIHRoaXNDaGFubmVsWyJ4LXhtbHR2LWZpbGUiXSAhPSB1bmRlZmluZWQpIHsNCiAgICAgICAgICAgIHN3aXRjaCh0aGlzQ2hhbm5lbFsieC1hY3RpdmUiXSkgew0KICAgICAgICAgICAgICBjYXNlIHRydWU6IHRyLmNsYXNzTmFtZSA9ICJhY3RpdmVFUEciOyBicmVhazsNCiAgICAgICAgICAgICAgY2FzZSBmYWxzZTogdHIuY2xhc3NOYW1lID0gIm5vdEFjdGl2ZUVQRyI7IGJyZWFrOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgfQ0KICAgICAgICB9DQoNCiAgICB9DQoNCiAgICB1cGRhdGVDaGFubmVsTG9nbyhpZCkNCg0KICB9DQoNCn0NCg0KZnVuY3Rpb24gdXBkYXRlQ2hhbm5lbExvZ28oeGVwZykgew0KICB2YXIgdGhpc0NoYW5uZWwgPSB4RVBHWyJlcGdNYXBwaW5nIl1beGVwZ107DQogIGlmICh0aGlzQ2hhbm5lbFsieC11cGRhdGUtY2hhbm5lbC1pY29uIl0gPT0gdHJ1ZSkgew0KICAgIHZhciB4WG1sdHZGaWxlICA9IHRoaXNDaGFubmVsWyJ4LXhtbHR2LWZpbGUiXTsNCiAgICB2YXIgeE1hcHBpbmcgICAgPSB0aGlzQ2hhbm5lbFsieC1tYXBwaW5nIl07DQoNCiAgICBpZiAoeFhtbHR2RmlsZSAhPSAiLSIgJiYgeFhtbHR2RmlsZS5sZW5ndGggPiAwICYmIHhNYXBwaW5nICE9ICItIiAmJiB4TWFwcGluZy5sZW5ndGggPiAwKSB7DQogICAgICBpZiAoeEVQR1sieG1sdHZNYXAiXVt4WG1sdHZGaWxlXVt4TWFwcGluZ10uaGFzT3duUHJvcGVydHkoImljb24iKSkgew0KICAgICAgICB2YXIgbG9nb1VSTCA9IHhFUEdbInhtbHR2TWFwIl1beFhtbHR2RmlsZV1beE1hcHBpbmddWyJpY29uIl07DQogICAgICAgIHRoaXNDaGFubmVsWyJ0dmctbG9nbyJdID0gbG9nb1VSTDsNCiAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoeGVwZykuY2hpbGROb2Rlc1syXS5sYXN0Q2hpbGQuc2V0QXR0cmlidXRlKCJzcmMiLCBsb2dvVVJMKTsNCiAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNoYW5uZWwtbG9nbyIpLnNldEF0dHJpYnV0ZSgic3JjIiwgbG9nb1VSTCk7DQogICAgICB9IGVsc2Ugew0KICAgICAgICBhbGVydCgiTm8gbG9nbyBVUkwgaW4gdGhlIFhNTFRWIGZpbGUgYXZhaWxhYmxlIikNCiAgICAgIH0NCiAgICAgIA0KICAgIH0NCiAgICANCiAgICAvKg0KICAgIGlmICh4RVBHWyJ4bWx0dk1hcCJdW3hYbWx0dkZpbGVdW3hNYXBwaW5nXVsiaWNvbiJdICE9IHVuZGVmaW5lZCkgew0KDQogICAgICANCiAgICB9DQogICAgKi8NCiAgICANCiAgfQ0KfQ0KDQpmdW5jdGlvbiBzYXZlQ2hhbm5lbExvZ28oeGVwZykgew0KICBpZiAoYnVsayA9PSBmYWxzZSkgew0KICAgIHZhciB0aGlzQ2hhbm5lbCA9IHhFUEdbImVwZ01hcHBpbmciXVt4ZXBnXTsNCiAgICB0aGlzQ2hhbm5lbFsidHZnLWxvZ28iXSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0dmctbG9nbyIpLmxhc3RDaGlsZC52YWx1ZTsNCiAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCh4ZXBnKS5jaGlsZE5vZGVzWzJdLmxhc3RDaGlsZC5zZXRBdHRyaWJ1dGUoInNyYyIsIHRoaXNDaGFubmVsWyJ0dmctbG9nbyJdKTsNCiAgICBtYXBwaW5nRGV0YWlsKHhlcGcpOw0KICAgIHJldHVybg0KICB9DQoNCiAgaWYgKGJ1bGsgPT0gdHJ1ZSkgew0KICAgIHZhciBrZXkgICA9ICJ0dmctbG9nbyI7DQogICAgdmFyIHZhbHVlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInR2Zy1sb2dvIikubGFzdENoaWxkLnZhbHVlOw0KICAgIHNhdmVCdWxrKGtleSwgdmFsdWUpOw0KDQogICAgbWFwcGluZ0RldGFpbCh4ZXBnKTsNCiAgICByZXR1cm4NCiAgfQ0KfQ0KDQpmdW5jdGlvbiBzYXZlQ2hhbm5lbEljb25VcGRhdGUoeGVwZykgew0KDQogIHZhciBrZXkgICA9ICJ4LXVwZGF0ZS1jaGFubmVsLWljb24iOw0KICB2YXIgdmFsdWUgPSBKU09OLnBhcnNlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ4LXVwZGF0ZS1jaGFubmVsLWljb24iKS5sYXN0Q2hpbGQuY2hlY2tlZCk7DQogIGlmIChidWxrID09IGZhbHNlKSB7DQogICAgdmFyIHRoaXNDaGFubmVsID0geEVQR1siZXBnTWFwcGluZyJdW3hlcGddOw0KICAgIHRoaXNDaGFubmVsW2tleV0gPSB2YWx1ZQ0KICAgIHVwZGF0ZUNoYW5uZWxMb2dvKHhlcGcpDQogICAgDQogICAgbWFwcGluZ0RldGFpbCh4ZXBnKTsNCiAgICBzZWFyY2hJbk1hcHBpbmcoKTsNCiAgICByZXR1cm4NCiAgfQ0KDQogIGlmIChidWxrID09IHRydWUpIHsNCiAgICBzYXZlQnVsayhrZXksIHZhbHVlKTsNCiAgICBtYXBwaW5nRGV0YWlsKHhlcGcpOw0KICAgIHJldHVybg0KICB9DQogIA0KfQ0KDQpmdW5jdGlvbiBzYXZlQ2hhbm5lbE5hbWUoeGVwZykgew0KICBpZiAoYnVsayA9PSBmYWxzZSkgew0KICAgIHZhciB0aGlzQ2hhbm5lbCA9IHhFUEdbImVwZ01hcHBpbmciXVt4ZXBnXTsNCiAgICB0aGlzQ2hhbm5lbFsieC1uYW1lIl0gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgieC1uYW1lIikubGFzdENoaWxkLnZhbHVlOw0KICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHhlcGcpLmNoaWxkTm9kZXNbM10ubGFzdENoaWxkLmlubmVySFRNTCA9IHRoaXNDaGFubmVsWyJ4LW5hbWUiXTsNCiAgICBtYXBwaW5nRGV0YWlsKHhlcGcpOw0KICAgIHNlYXJjaEluTWFwcGluZygpOw0KICB9DQogIA0KfQ0KDQpmdW5jdGlvbiBzYXZlQ2hhbm5lbE5hbWVVcGRhdGUoeGVwZykgew0KICB2YXIga2V5ICAgPSAieC11cGRhdGUtY2hhbm5lbC1uYW1lIjsNCiAgdmFyIHZhbHVlID0gSlNPTi5wYXJzZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgieC11cGRhdGUtY2hhbm5lbC1uYW1lIikubGFzdENoaWxkLmNoZWNrZWQpOw0KDQogIGlmIChidWxrID09IGZhbHNlKSB7DQogICAgdmFyIHRoaXNDaGFubmVsID0geEVQR1siZXBnTWFwcGluZyJdW3hlcGddOw0KICAgIHRoaXNDaGFubmVsW2tleV0gPSB2YWx1ZQ0KICAgIG1hcHBpbmdEZXRhaWwoeGVwZyk7DQogICAgc2VhcmNoSW5NYXBwaW5nKCk7DQogICAgcmV0dXJuDQogIH0NCg0KICBpZiAoYnVsayA9PSB0cnVlKSB7DQogICAgc2F2ZUJ1bGsoa2V5LCB2YWx1ZSk7DQogICAgbWFwcGluZ0RldGFpbCh4ZXBnKTsNCiAgICByZXR1cm4NCiAgfQ0KDQp9DQoNCmZ1bmN0aW9uIHNhdmVDaGFubmVsU3RhdHVzKHhlcGcpIHsNCiAgdmFyIHRoaXNDaGFubmVsID0geEVQR1siZXBnTWFwcGluZyJdW3hlcGddOw0KICB2YXIgeFhtbHR2RmlsZSA9IHRoaXNDaGFubmVsWyJ4LXhtbHR2LWZpbGUiXTsNCg0KICB2YXIga2V5ICAgPSAieC1hY3RpdmUiOw0KICB2YXIgdmFsdWUgPSBKU09OLnBhcnNlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ4LWFjdGl2ZSIpLmxhc3RDaGlsZC5jaGVja2VkKTsNCg0KICBpZiAoeEVQR1sieG1sdHZNYXAiXS5oYXNPd25Qcm9wZXJ0eSh4WG1sdHZGaWxlKSA9PSB0cnVlKSB7DQogICAgaWYgKHRoaXNDaGFubmVsWyJ4LW1hcHBpbmciXSAhPSAiLSIgJiYgdGhpc0NoYW5uZWxbIngtbWFwcGluZyJdICE9IHVuZGVmaW5lZCkgew0KICAgICAgdGhpc0NoYW5uZWxbIngtYWN0aXZlIl0gPSAhdGhpc0NoYW5uZWxbIngtYWN0aXZlIl07DQogICAgICB2YXIgdHIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCh4ZXBnKTsNCiAgICAgIHN3aXRjaCh0aGlzQ2hhbm5lbFsieC1hY3RpdmUiXSkgew0KICAgICAgICBjYXNlIHRydWU6IHRyLmNsYXNzTmFtZSA9ICJhY3RpdmVFUEciOyBicmVhazsNCiAgICAgICAgY2FzZSBmYWxzZTogdHIuY2xhc3NOYW1lID0gIm5vdEFjdGl2ZUVQRyI7IGJyZWFrOw0KICAgICAgfQ0KICAgICAgDQogICAgfSBlbHNlIHsNCiAgICAgIHZhciBlcnIgPSAiWE1MVFYgQ2hhbm5lbCBpcyBub3Qgc2VsZWN0ZWQiDQogICAgICBhbGVydChlcnIpDQogICAgICB2YWx1ZSA9IGZhbHNlDQogICAgfQ0KDQogIH0gZWxzZSB7DQogICAgaWYgKHZhbHVlID09IHRydWUpIHsNCiAgICAgIHZhciBlcnIgPSAiWE1MVFYgRmlsZSBpcyBub3Qgc2VsZWN0ZSINCiAgICAgIGFsZXJ0KGVycikNCiAgICAgIHZhbHVlID0gZmFsc2UNCiAgICB9DQogIH0NCg0KICANCg0KICBpZiAoYnVsayA9PSBmYWxzZSkgew0KICAgIHZhciB0aGlzQ2hhbm5lbCA9IHhFUEdbImVwZ01hcHBpbmciXVt4ZXBnXTsNCiAgICB0aGlzQ2hhbm5lbFtrZXldID0gdmFsdWUNCiAgICBtYXBwaW5nRGV0YWlsKHhlcGcpOw0KICAgIHNlYXJjaEluTWFwcGluZygpOw0KDQogICAgdmFyIHRyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoeGVwZyk7DQogICAgc3dpdGNoKHRoaXNDaGFubmVsWyJ4LWFjdGl2ZSJdKSB7DQogICAgICBjYXNlIHRydWU6IHRyLmNsYXNzTmFtZSA9ICJhY3RpdmVFUEciOyBicmVhazsNCiAgICAgIGNhc2UgZmFsc2U6IHRyLmNsYXNzTmFtZSA9ICJub3RBY3RpdmVFUEciOyBicmVhazsNCiAgICB9DQoNCiAgICByZXR1cm4NCiAgfQ0KDQogIGlmIChidWxrID09IHRydWUpIHsNCiAgICBzYXZlQnVsayhrZXksIHZhbHVlKTsNCiAgICBtYXBwaW5nRGV0YWlsKHhlcGcpOw0KICAgIHJldHVybg0KICB9DQoNCn0NCg0KZnVuY3Rpb24gc2F2ZUdyb3VwVGl0bGUoeGVwZykgew0KICB2YXIga2V5ICAgPSAieC1ncm91cC10aXRsZSI7DQogIHZhciB2YWx1ZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ4LWdyb3VwLXRpdGxlIikubGFzdENoaWxkLnZhbHVlOw0KDQogIGlmIChidWxrID09IGZhbHNlKSB7DQogICAgdmFyIHRoaXNDaGFubmVsID0geEVQR1siZXBnTWFwcGluZyJdW3hlcGddOw0KICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHhlcGcpLmNoaWxkTm9kZXNbNV0ubGFzdENoaWxkLmlubmVySFRNTCA9IHZhbHVlOw0KICAgIHRoaXNDaGFubmVsW2tleV0gPSB2YWx1ZTsNCiAgICBtYXBwaW5nRGV0YWlsKHhlcGcpOw0KICAgIHNlYXJjaEluTWFwcGluZygpOw0KICB9DQoNCiAgaWYgKGJ1bGsgPT0gdHJ1ZSkgew0KICAgIHNhdmVCdWxrKGtleSwgdmFsdWUpOw0KICAgIG1hcHBpbmdEZXRhaWwoeGVwZyk7DQogICAgcmV0dXJuDQogIH0NCg0KfQ0KDQpmdW5jdGlvbiBzYXZlQ2F0ZWdvcnkoeGVwZykgew0KICB2YXIga2V5ICAgPSAieC1jYXRlZ29yeSI7DQogIHZhciB2YWx1ZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ4LWNhdGVnb3J5IikubGFzdENoaWxkLnZhbHVlOw0KDQogIGlmIChidWxrID09IGZhbHNlKSB7DQogICAgdmFyIHRoaXNDaGFubmVsID0geEVQR1siZXBnTWFwcGluZyJdW3hlcGddOw0KICAgIHRoaXNDaGFubmVsW2tleV0gPSB2YWx1ZQ0KICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHhlcGcpLmNoaWxkTm9kZXNbM10ubGFzdENoaWxkLmNsYXNzTmFtZSA9IHZhbHVlDQogICAgbWFwcGluZ0RldGFpbCh4ZXBnKTsNCiAgICBzZWFyY2hJbk1hcHBpbmcoKTsNCiAgfQ0KDQogIGlmIChidWxrID09IHRydWUpIHsNCiAgICBzYXZlQnVsayhrZXksIHZhbHVlKTsNCiAgICBtYXBwaW5nRGV0YWlsKHhlcGcpOw0KICAgIHJldHVybg0KICB9DQoNCn0NCg0KZnVuY3Rpb24gYXJyYW5nZVRhYmxlKGVsbSkgew0KICB2YXIgdHIgPSBlbG0ucGFyZW50RWxlbWVudC5wYXJlbnRFbGVtZW50Ow0KICB2YXIgbmV3UG9zaXRpb24gPSBlbG0udmFsdWU7DQogIHZhciB4X2NoYW5uZWxJRCA9IHRyLmlkOw0KDQogIHN3aXRjaChpc05hTihuZXdQb3NpdGlvbikpIHsNCiAgICBjYXNlIHRydWU6IA0KICAgICAgYWxlcnQoIkNoLiBOby4gbXVzdCBiZSBhIG51bWJlciIpOw0KICAgICAgbWFwcGluZ0Vycm9yID0gdHJ1ZTsNCiAgICAgIGJyZWFrOw0KICB9DQoNCg0KICAvL3ZhciBpdGVtID0geEVQR1siZXBnTWFwcGluZyJdW2lkXTsNCiAgdmFyIGtleXMgPSBnZXRPYmpLZXlzKHhFUEdbImVwZ01hcHBpbmciXSkNCiAgZm9yICh2YXIgaSA9IDA7IGkgPCBrZXlzLmxlbmd0aDsgaSsrKSB7DQogICAgdmFyIGl0ZW0gPSB4RVBHWyJlcGdNYXBwaW5nIl1ba2V5c1tpXV07DQogICAgaWYgKGl0ZW1bIngtZXBnIl0gPT0geF9jaGFubmVsSUQpIHsNCg0KICAgICAgLy8gQ2hlY2sgaWYgcG9zaXRpb24gZXhpc3QNCiAgICAgIHZhciBvbGRQb3NpdGlvbiA9IGl0ZW1bIngtY2hhbm5lbElEIl07DQoNCiAgICAgIGlmIChvbGRQb3NpdGlvbiAhPSBuZXdQb3NpdGlvbikgew0KDQogICAgICAgIGNvbnNvbGUubG9nKG5ld1Bvc2l0aW9uLCBuZXdQb3NpdGlvbi5sZW5ndGgpOw0KICAgICAgICBpZiAobmV3UG9zaXRpb24ubGVuZ3RoID09IDApIHsNCiAgICAgICAgICBtYXBwaW5nRXJyb3IgPSB0cnVlDQogICAgICAgICAgbmV3UG9zaXRpb24gPSBvbGRQb3NpdGlvbjsNCiAgICAgICAgICANCiAgICAgICAgfQ0KDQogICAgICAgIGlmIChtYXBwaW5nRXJyb3IgPT0gdHJ1ZSkgew0KICAgICAgICAgIGVsbS52YWx1ZSA9IG9sZFBvc2l0aW9uOw0KICAgICAgICAgIHJldHVybjsNCiAgICAgICAgfQ0KDQogICAgICAgIGZvciAodmFyIGogPSBrZXlzLmxlbmd0aCAtIDE7IGogPj0gMDsgai0tKSB7DQogICAgICAgICAgdmFyIGNoYW5uZWwgPSB4RVBHWyJlcGdNYXBwaW5nIl1ba2V5c1tqXV07DQogICAgICAgICAgaWYgKGtleXNbal0gIT0geF9jaGFubmVsSUQpIHsNCiAgICAgICAgICAgIGlmIChuZXdQb3NpdGlvbiA9PSBjaGFubmVsWyJ4LWNoYW5uZWxJRCJdKSB7IC8vIElmIHBvc2l0aW9uIGV4aXN0LCBzZXQgbmV4dCBmcmVlIHBvc2l0aW9uLg0KICAgICAgICAgICAgICBuZXdQb3NpdGlvbisrOw0KICAgICAgICAgICAgICBlbG0udmFsdWUgPSBuZXdQb3NpdGlvbjsNCiAgICAgICAgICAgICAgYXJyYW5nZVRhYmxlKGVsbSk7DQogICAgICAgICAgICAgIHJldHVybjsNCiAgICAgICAgICAgICAgLyoNCiAgICAgICAgICAgICAgdmFyIG5ld0Vycm9yID0gbmV3IE9iamVjdCgpOw0KICAgICAgICAgICAgICBuZXdFcnJvclsiZXJyIl0gPSAiRHVwbGljYXRlIElEIjsNCiAgICAgICAgICAgICAgY2hlY2tFcnIobmV3RXJyb3IpOw0KICAgICAgICAgICAgICBzb3J0VGFibGUoKTsNCiAgICAgICAgICAgICAgbWFwcGluZ0Vycm9yID0gdHJ1ZTsNCiAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoeF9jaGFubmVsSUQpLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJJTlBVVCIpWzBdLmZvY3VzKCk7DQogICAgICAgICAgICAgIHJldHVybjsNCiAgICAgICAgICAgICAgKi8NCiAgICAgICAgICAgIH0NCiAgICAgICAgICB9DQogICAgICAgIH0NCg0KICAgICAgfQ0KDQogICAgICAvL2NvbnNvbGUubG9nKG9sZFBvc2l0aW9uLCBuZXdQb3NpdGlvbik7DQogICAgICBpZiAoa2V5c1tpXSA9PSB4X2NoYW5uZWxJRCAmJiBvbGRQb3NpdGlvbiAhPSBuZXdQb3NpdGlvbikgeyAgDQogICAgICAgIGl0ZW1bIngtY2hhbm5lbElEIl0gPSBuZXdQb3NpdGlvbjsNCiAgICAgIH0gDQoNCiAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJsb2dJbmZvIikuY2xhc3NOYW1lID0gIm5vdFZpc2libGUiOw0KICAgICAgaWYgKGNvbHVtblRvU29ydCA9PSAxKSB7DQogICAgICAgIHNvcnRUYWJsZShjb2x1bW5Ub1NvcnQpOw0KICAgICAgfQ0KICAgICAgbWFwcGluZ0Vycm9yID0gZmFsc2U7DQoNCiAgICB9DQogIH0NCn0NCg0KZnVuY3Rpb24gY2hhbmdlWG1sdHZGaWxlKHhlcGcsIGVsbSkgew0KDQogIHZhciB0aGlzQ2hhbm5lbCA9IHhFUEdbImVwZ01hcHBpbmciXVt4ZXBnXTsNCiAgDQogIHZhciB4WG1sdHZGaWxlICAgID0gZWxtLnZhbHVlOw0KICB2YXIgY2hhbm5lbElEICAgICA9IHRoaXNDaGFubmVsWyJ0dmctaWQiXTsNCiAgdGhpc0NoYW5uZWxbIngteG1sdHYtZmlsZSJdID0geFhtbHR2RmlsZTsNCg0KICBpZiAoYnVsayA9PSBmYWxzZSkgew0KDQogICAgc2V0VGltZW91dChmdW5jdGlvbigpeyANCg0KICAgICAgdmFyIHhNYXBwaW5nID0gIi0iDQoNCiAgICAgIC8vIEF1dG9tYXANCiAgICAgIGlmICh4WG1sdHZGaWxlICE9ICItIikgew0KICAgICAgICBpZiAoeEVQR1sieG1sdHZNYXAiXVt4WG1sdHZGaWxlXS5oYXNPd25Qcm9wZXJ0eShjaGFubmVsSUQpID09IHRydWUpIHsNCiAgICAgICAgICB0aGlzQ2hhbm5lbFsieC1tYXBwaW5nIl0gPSBjaGFubmVsSUQ7DQogICAgICAgICAgeE1hcHBpbmcgPSBjaGFubmVsSUQNCiAgICAgICAgfSBlbHNlIHsNCiAgICAgICAgICB0aGlzQ2hhbm5lbFsieC1tYXBwaW5nIl0gPSB4TWFwcGluZw0KICAgICAgICB9DQogICAgICB9IGVsc2Ugew0KICAgICAgICB0aGlzQ2hhbm5lbFsieC1tYXBwaW5nIl0gPSB4TWFwcGluZw0KDQogICAgICB9DQogICAgICANCiAgICAgIHZhciB0ciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHhlcGcpOw0KDQogICAgICBpZiAoeE1hcHBpbmcgPT0gIi0iKSB7DQogICAgICAgIHRoaXNDaGFubmVsWyJ4LWFjdGl2ZSJdID0gZmFsc2U7DQogICAgICAgIHRyLmNsYXNzTmFtZSA9ICJub3RBY3RpdmVFUEciDQogICAgICB9IGVsc2Ugew0KICAgICAgICB0aGlzQ2hhbm5lbFsieC1hY3RpdmUiXSAgPSB0cnVlOw0KICAgICAgICB0ci5jbGFzc05hbWUgPSAiYWN0aXZlRVBHIg0KICAgICAgfQ0KDQogICAgICAvLyBTaG93IGRhdGEgaW4gdGFibGUNCiAgICAgIHZhciB0ZCA9IHRyLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJURCIpOw0KICAgICAgdmFyIGRhdGFGaWxlID0gdGRbdGQubGVuZ3RoIC0gMl0ubGFzdENoaWxkOw0KICAgICAgc3dpdGNoKHhYbWx0dkZpbGUpIHsNCiAgICAgICAgY2FzZSAiLSI6ICAgICAgICAgICBkYXRhRmlsZS5pbm5lckhUTUwgPSB4WG1sdHZGaWxlOyBicmVhazsNCiAgICAgICAgY2FzZSAieFRlVmUgRHVtbXkiOiBkYXRhRmlsZS5pbm5lckhUTUwgPSB4WG1sdHZGaWxlOyBicmVhazsNCiAgICAgICAgZGVmYXVsdDogICAgICAgICAgICBkYXRhRmlsZS5pbm5lckhUTUwgPSBnZXRWYWx1ZUZyb21Qcm92aWRlckZpbGUoeFhtbHR2RmlsZSwgInhtbHR2IiwgIm5hbWUiKTsgYnJlYWs7DQogICAgICB9DQoNCiAgICAgIC8veFhtbHR2RmlsZS5yZXBsYWNlKC9eLipbXFxcL10vLCAnJyk7DQoNCiAgICAgIHZhciBkYXRhWG1sdHZJRCA9IHRkW3RkLmxlbmd0aCAtIDFdLmxhc3RDaGlsZDsNCiAgICAgIGRhdGFYbWx0dklELmlubmVySFRNTCA9IHhNYXBwaW5nOw0KICAgICAgDQogICAgICBtYXBwaW5nRGV0YWlsKHhlcGcpOw0KDQogICAgfSwgMTApOw0KICB9DQoNCiAgaWYgKGJ1bGsgPT0gdHJ1ZSkgew0KICAgIHZhciBrZXkgPSAieC14bWx0di1maWxlIg0KICAgIHZhciB2YWx1ZSA9IHhYbWx0dkZpbGUNCiAgICBzYXZlQnVsayhrZXksIHZhbHVlKTsNCg0KICAgIHZhciBrZXkgPSAieC1tYXBwaW5nIg0KICAgIHZhciB2YWx1ZSA9ICItIg0KICAgIHNhdmVCdWxrKGtleSwgdmFsdWUpOw0KICAgIG1hcHBpbmdEZXRhaWwoeGVwZyk7DQogICAgcmV0dXJuDQogIH0NCg0KICByZXR1cm4NCn0NCg0KZnVuY3Rpb24gbWFwcGluZ0NoYW5uZWwoeGVwZywgZWxtKSB7DQogIHZhciB0aGlzQ2hhbm5lbCA9IHhFUEdbImVwZ01hcHBpbmciXVt4ZXBnXTsNCiAgLy92YXIgeE1hcHBpbmcgICAgICA9IGVsbS52YWx1ZTsNCiAgdmFyIHhNYXBwaW5nICAgICAgPSBlbG0ub3B0aW9uc1tlbG0uc2VsZWN0ZWRJbmRleF0udmFsdWUNCiAgDQogIGlmIChidWxrID09IGZhbHNlKSB7DQogICAgDQogICAgdGhpc0NoYW5uZWxbIngtbWFwcGluZyJdID0geE1hcHBpbmc7DQoNCiAgICB2YXIgdHIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCh4ZXBnKTsNCg0KICAgIGlmICh4TWFwcGluZyA9PSAiLSIpIHsNCiAgICAgIHRoaXNDaGFubmVsWyJ4LWFjdGl2ZSJdID0gZmFsc2U7DQogICAgICB0ci5jbGFzc05hbWUgPSAibm90QWN0aXZlRVBHIg0KICAgIH0gZWxzZSB7DQogICAgICB0aGlzQ2hhbm5lbFsieC1hY3RpdmUiXSAgPSB0cnVlOw0KICAgICAgdHIuY2xhc3NOYW1lID0gImFjdGl2ZUVQRyINCiAgICB9DQoNCiAgICAvLyBTaG93IGRhdGEgaW4gdGFibGUNCiAgICB2YXIgdGQgPSB0ci5nZXRFbGVtZW50c0J5VGFnTmFtZSgiVEQiKTsNCiAgICB2YXIgZGF0YVhtbHR2SUQgPSB0ZFt0ZC5sZW5ndGggLSAxXS5sYXN0Q2hpbGQ7DQogICAgZGF0YVhtbHR2SUQuaW5uZXJIVE1MID0geE1hcHBpbmc7DQogICAgLy9jb25zb2xlLmxvZyh0ZFt0ZC5sZW5ndGggLSAxXSk7DQogICAgLy9jb25zb2xlLmxvZyh4TWFwcGluZywgZWxtKTsNCg0KICAgIGNyZWF0ZVNlYXJjaE9iaigpOw0KICAgIHNlYXJjaEluTWFwcGluZygpOw0KICAgIHVwZGF0ZUNoYW5uZWxMb2dvKHhlcGcpDQogICAgbWFwcGluZ0RldGFpbCh4ZXBnKTsNCiAgICByZXR1cm4NCiAgfQ0KDQogIGlmIChidWxrID09IHRydWUpIHsNCg0KICAgIHZhciBrZXkgPSAieC1tYXBwaW5nIg0KICAgIHZhciB2YWx1ZSA9IHhNYXBwaW5nDQogICAgc2F2ZUJ1bGsoa2V5LCB2YWx1ZSk7DQoNCiAgICBtYXBwaW5nRGV0YWlsKHhlcGcpOw0KICAgIHJldHVybg0KICB9DQoNCiAgcmV0dXJuDQp9DQoNCg0KZnVuY3Rpb24gY3JlYXRlTmV3VEQobmV3SXRlbSwgZWxtKSB7DQogIHZhciBuZXdURCA9IG5ldyBPYmplY3QoKTsNCiAgbmV3VERbIl9lbGVtZW50Il0gPSAiVEQiOw0KICANCiAgZWxtLmFwcGVuZENoaWxkKGNyZWF0ZUVsZW1lbnQobmV3VEQpKTsNCiAgdmFyIHRkID0gZWxtLmxhc3RDaGlsZDsgDQogIA0KICBzd2l0Y2gobmV3SXRlbVsiX2VsZW1lbnQiXSkgew0KICAgIGNhc2UgIlNFTEVDVCI6DQogICAgICB0ZC5hcHBlbmRDaGlsZChjcmVhdGVFbGVtZW50KG5ld0l0ZW0pKTsNCiAgICAgIHZhciB0ZCA9IGVsbS5sYXN0Q2hpbGQubGFzdENoaWxkOyANCiAgICAgIHZhciB2YWx1ZXMgPSBuZXdJdGVtWyJfb3B0aW9uVmFsdWVzIl07DQogICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHZhbHVlcy5sZW5ndGg7IGkrKykgew0KICAgICAgICAvL2NvbnNvbGUubG9nKGl0ZW0pOw0KICAgICAgICB2YXIgbmV3RW50cnkgPSBuZXcgT2JqZWN0Ow0KICAgICAgICBuZXdFbnRyeVsiX2VsZW1lbnQiXSAgPSAiT1BUSU9OIjsNCiAgICAgICAgbmV3RW50cnlbIl90ZXh0Il0gICAgID0gdmFsdWVzW2ldOw0KICAgICAgICBuZXdFbnRyeVsidmFsdWUiXSAgICAgPSB2YWx1ZXNbaV07DQogICAgICAgIHRkLmFwcGVuZENoaWxkKGNyZWF0ZUVsZW1lbnQobmV3RW50cnkpKTsNCiAgICAgIH0NCiAgICAgIHRkLnZhbHVlID0gbmV3SXRlbVsidmFsdWUiXTsNCg0KICAgICAgYnJlYWs7DQogICAgDQogICAgZGVmYXVsdDogDQogICAgICANCiAgICAgIHRkLmFwcGVuZENoaWxkKGNyZWF0ZUVsZW1lbnQobmV3SXRlbSkpOw0KICAgICAgYnJlYWs7DQogIH0NCiAgDQp9DQoNCmZ1bmN0aW9uIHNhdmVYRVBHKCkgew0KICBpZiAobWFwcGluZ0Vycm9yID09IHRydWUpIHsNCiAgICBhbGVydCgiRGF0YSBjb3VsZCBub3QgYmUgc2F2ZWQsIGVycm9ycyBpbiB0aGUgWEVQRyBkYXRhLiIpOw0KICAgIHJldHVybjsNCiAgfQ0KICBzaG93TG9hZGluZ1NjcmVlbih0cnVlKTsNCg0KICB2YXIgZGF0YSA9IG5ldyBPYmplY3QoKTsNCiAgZGF0YVsiZXBnTWFwcGluZyJdID0geEVQR1siZXBnTWFwcGluZyJdOw0KICBkYXRhWyJjbWQiXSA9ICJzYXZlRXBnTWFwcGluZyI7DQogIC8vY29uc29sZS5sb2coZGF0YSk7DQogIHhUZVZlKGRhdGEpOw0KfQ0KDQpmdW5jdGlvbiBidWxrRWRpdCgpIHsNCiAgYnVsayA9ICFidWxrOw0KICB2YXIgY2xhc3NOYW1lOw0KDQogIHZhciBlbG0gPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCJidWxrIik7DQoNCiAgc3dpdGNoKGJ1bGspIHsNCiAgICBjYXNlIHRydWU6IA0KICAgICAgY2xhc3NOYW1lID0gImJ1bGsgc2hvd0J1bGsiOw0KICAgICAgYnJlYWs7DQoNCiAgICBjYXNlIGZhbHNlOiANCiAgICAgIGNsYXNzTmFtZSA9ICJidWxrIGhpZGVCdWxrIjsNCiAgICAgIGJ1bGtFZGl0QWxsID0gZmFsc2U7DQogICAgICBicmVhazsNCiAgfQ0KDQogIGZvciAodmFyIGkgPSAwOyBpIDwgZWxtLmxlbmd0aDsgaSsrKSB7DQogICAgZWxtW2ldLmNsYXNzTmFtZSA9IGNsYXNzTmFtZTsNCiAgICBlbG1baV0uY2hlY2tlZCA9IGZhbHNlOw0KICB9DQoNCn0NCg0KZnVuY3Rpb24gYnVsa0VkaXRBbGxDaGFubmVscygpIHsNCg0KICB2YXIgYWxsVFIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiaWRfbWFwcGluZyIpLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJUUiIpOw0KDQogIGZvciAodmFyIGkgPSAxOyBpIDwgYWxsVFIubGVuZ3RoOyBpKyspIHsNCiAgICBpZiAoYWxsVFJbaV0uc3R5bGUuZGlzcGxheSAhPSAibm9uZSIpIHsNCiAgICAgIHN3aXRjaChidWxrRWRpdEFsbCkgew0KICAgICAgICBjYXNlIGZhbHNlOiBhbGxUUltpXS5maXJzdENoaWxkLmZpcnN0Q2hpbGQuY2hlY2tlZCA9IHRydWU7IGJyZWFrOw0KICAgICAgICBjYXNlIHRydWU6IGFsbFRSW2ldLmZpcnN0Q2hpbGQuZmlyc3RDaGlsZC5jaGVja2VkID0gZmFsc2U7IGJyZWFrOyANCiAgICAgIH0NCg0KICAgIH0NCiAgICANCiAgfQ0KDQogIGJ1bGtFZGl0QWxsID0gIWJ1bGtFZGl0QWxsOw0KfQ0KDQpmdW5jdGlvbiBzb3J0VGFibGUoY29sdW1tKSB7DQogIC8vY29uc29sZS5sb2coY29sdW1tKTsNCiAgaWYgKGNvbHVtbSA9PSBjb2x1bW5Ub1NvcnQpIHsNCiAgICAvL3JldHVybjsNCiAgfQ0KDQogIHZhciB0YWJsZSAgICAgICA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJpZF9tYXBwaW5nIik7DQogIHZhciB0YWJsZUhlYWQgICA9IHRhYmxlLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJUUiIpWzBdOw0KICB2YXIgdGFibGVJdGVtcyAgPSB0YWJsZUhlYWQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlREIik7DQogIA0KICB2YXIgc29ydE9iaiA9IG5ldyBPYmplY3QoKTsNCiAgdmFyIHgsIHhWYWx1ZTsNCiAgdmFyIHRhYmxlSGVhZGVyDQogIHZhciBzb3J0QnlTdHJpbmcgPSBmYWxzZQ0KDQogIGlmIChjb2x1bW0gPiAwICYmIGNvbHVtblRvU29ydCA+IDApICB7DQogICAgdGFibGVJdGVtc1tjb2x1bW5Ub1NvcnRdLmNsYXNzTmFtZSA9ICJwb2ludGVyIjsNCiAgICB0YWJsZUl0ZW1zW2NvbHVtbV0uY2xhc3NOYW1lID0gInNvcnRUaGlzIjsNCiAgfQ0KDQogIGNvbHVtblRvU29ydCA9IGNvbHVtbTsNCg0KICB2YXIgcm93cyA9IHRhYmxlLnJvd3M7DQoNCiAgaWYgKHJvd3NbMV0gIT0gdW5kZWZpbmVkKSB7DQogICAgdGFibGVIZWFkZXIgPSByb3dzWzBdDQoNCiAgICB4ID0gcm93c1sxXS5nZXRFbGVtZW50c0J5VGFnTmFtZSgiVEQiKVtjb2x1bW1dOw0KICAgIA0KICAgIGZvciAoaSA9IDE7IGkgPCByb3dzLmxlbmd0aDsgaSsrKSB7DQoNCiAgICAgIHggPSByb3dzW2ldLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJURCIpW2NvbHVtbV07DQoNCiAgICAgIHN3aXRjaCh4LmNoaWxkTm9kZXNbMF0udGFnTmFtZS50b0xvd2VyQ2FzZSgpKSB7DQogICAgICAgIGNhc2UgImlucHV0IjoNCiAgICAgICAgICB4VmFsdWUgPSB4LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJJTlBVVCIpWzBdLnZhbHVlLnRvTG93ZXJDYXNlKCk7DQogICAgICAgICAgYnJlYWs7DQoNCiAgICAgICAgY2FzZSAicCI6DQogICAgICAgICAgeFZhbHVlID0geC5nZXRFbGVtZW50c0J5VGFnTmFtZSgiUCIpWzBdLmlubmVyVGV4dC50b0xvd2VyQ2FzZSgpOw0KICAgICAgICAgIGJyZWFrOw0KICAgICAgICANCiAgICAgICAgZGVmYXVsdDogY29uc29sZS5sb2coeC5jaGlsZE5vZGVzWzBdLnRhZ05hbWUpOw0KICAgICAgfQ0KDQogICAgICBpZiAoeFZhbHVlID09ICIiIHx8IHhWYWx1ZSA9PSBOYU4pIHsNCiAgICAgICAgeFZhbHVlID0gaQ0KICAgICAgICBzb3J0T2JqW2ldID0gcm93c1tpXTsNCiAgICAgIA0KICAgICAgfSBlbHNlIHsNCg0KICAgICAgICBzd2l0Y2goaXNOYU4oeFZhbHVlKSkgew0KICAgICAgICAgIGNhc2UgZmFsc2U6IA0KDQogICAgICAgICAgICB4VmFsdWUgPSBwYXJzZUZsb2F0KHhWYWx1ZSk7DQogICAgICAgICAgICBzb3J0T2JqW3hWYWx1ZV0gPSByb3dzW2ldDQogICAgICAgICAgICBicmVhazsNCg0KICAgICAgICAgIGNhc2UgdHJ1ZToNCg0KICAgICAgICAgICAgc29ydEJ5U3RyaW5nID0gdHJ1ZQ0KICAgICAgICAgICAgc29ydE9ialt4VmFsdWUudG9Mb3dlckNhc2UoKSArIGldID0gcm93c1tpXQ0KICAgICAgICAgICAgYnJlYWs7DQoNCiAgICAgICAgfQ0KDQogICAgICB9DQogICAgDQogICAgfQ0KDQogICAgd2hpbGUgKHRhYmxlLmZpcnN0Q2hpbGQpIHsNCiAgICAgIHRhYmxlLnJlbW92ZUNoaWxkKHRhYmxlLmZpcnN0Q2hpbGQpOw0KICAgIH0NCiAgICANCiAgICB2YXIgc29ydFZhbHVlcyA9IGdldE9iaktleXMoc29ydE9iaikNCiAgICBpZiAoc29ydEJ5U3RyaW5nID09IHRydWUpIHsNCiAgICAgIHNvcnRWYWx1ZXMuc29ydCgpDQogICAgfSBlbHNlIHsNCiAgICAgIGZ1bmN0aW9uIHNvcnRGbG9hdChhLCBiKSB7IA0KICAgICAgICByZXR1cm4gYSAtIGI7IA0KICAgICAgfQ0KICAgICAgc29ydFZhbHVlcy5zb3J0KHNvcnRGbG9hdCk7DQogICAgfQ0KDQogICAgdGFibGUuYXBwZW5kQ2hpbGQodGFibGVIZWFkZXIpDQogICAgDQogICAgZm9yICh2YXIgaSA9IDA7IGkgPCBzb3J0VmFsdWVzLmxlbmd0aDsgaSsrKSB7DQogICAgIA0KICAgICAgdGFibGUuYXBwZW5kQ2hpbGQoc29ydE9ialtzb3J0VmFsdWVzW2ldXSkNCg0KICAgIH0NCiAgICANCiAgfQ0KDQp9DQoNCg0KZnVuY3Rpb24gc29ydFRhYmxlX29sZChjb2x1bW0pIHsNCiAgc2hvd0xvYWRpbmdTY3JlZW4odHJ1ZSk7DQogIA0KICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7IA0KDQogICAgdmFyIHRhYmxlLCByb3dzLCBzd2l0Y2hpbmcsIGksIHgsIHksIHNob3VsZFN3aXRjaDsNCiAgICB0YWJsZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJpZF9tYXBwaW5nIik7DQoNCiAgICB2YXIgdGFibGVIZWFkID0gdGFibGUuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlRSIilbMF07DQogICAgdmFyIHRhYmxlSXRlbXMgPSB0YWJsZUhlYWQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlREIik7DQoNCiAgICBpZiAoY29sdW1tID4gMCkgIHsNCiAgICAgIHRhYmxlSXRlbXNbY29sdW1uVG9Tb3J0XS5jbGFzc05hbWUgPSAicG9pbnRlciI7DQogICAgICB0YWJsZUl0ZW1zW2NvbHVtbV0uY2xhc3NOYW1lID0gInNvcnRUaGlzIjsNCiAgICB9DQogICAgDQogICAgY29sdW1uVG9Tb3J0ID0gY29sdW1tOw0KDQogICAgLyoNCiAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRhYmxlSXRlbXMubGVuZ3RoOyBpKyspIHsNCiAgICAgIGlmICh0YWJsZUl0ZW1zW2ldLmNsYXNzTmFtZSAhPSB1bmRlZmluZWQpIHsNCiAgICAgICAgdGFibGVJdGVtc1tpXS5jbGFzc05hbWUgPSAicG9pbnRlciINCiAgICAgIH0NCg0KICAgIH0NCiAgICAqLw0KDQogICAgDQoNCiAgICBjb25zb2xlLmxvZyh0YWJsZUl0ZW1zKTsgDQoNCiAgICBzd2l0Y2hpbmcgPSB0cnVlOw0KICAgIHdoaWxlIChzd2l0Y2hpbmcpIHsNCiAgICAgIHN3aXRjaGluZyA9IGZhbHNlOw0KICAgICAgcm93cyA9IHRhYmxlLnJvd3M7DQogICAgICBmb3IgKGkgPSAxOyBpIDwgKHJvd3MubGVuZ3RoIC0gMSk7IGkrKykgew0KICAgICAgICBzaG91bGRTd2l0Y2ggPSBmYWxzZTsNCg0KICAgICAgICB4ID0gcm93c1tpXS5nZXRFbGVtZW50c0J5VGFnTmFtZSgiVEQiKVtjb2x1bW1dOw0KICAgICAgICB5ID0gcm93c1tpICsgMV0uZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlREIilbY29sdW1tXTsNCg0KICAgICAgICBzd2l0Y2goeC5jaGlsZE5vZGVzWzBdLnRhZ05hbWUudG9Mb3dlckNhc2UoKSkgew0KICAgICAgICAgIGNhc2UgImlucHV0IjoNCiAgICAgICAgICAgIHhWYWx1ZSA9IHguZ2V0RWxlbWVudHNCeVRhZ05hbWUoIklOUFVUIilbMF0udmFsdWUudG9Mb3dlckNhc2UoKTsNCiAgICAgICAgICAgIHlWYWx1ZSA9IHkuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIklOUFVUIilbMF0udmFsdWUudG9Mb3dlckNhc2UoKTsNCiAgICAgICAgICAgIGJyZWFrOw0KDQogICAgICAgICAgY2FzZSAicCI6DQogICAgICAgICAgICB4VmFsdWUgPSB4LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJQIilbMF0uaW5uZXJUZXh0LnRvTG93ZXJDYXNlKCk7DQogICAgICAgICAgICB5VmFsdWUgPSB5LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJQIilbMF0uaW5uZXJUZXh0LnRvTG93ZXJDYXNlKCk7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgICANCiAgICAgICAgICBkZWZhdWx0OiBjb25zb2xlLmxvZyh4LmNoaWxkTm9kZXNbMF0udGFnTmFtZSk7DQogICAgICAgIH0NCg0KICAgICAgICANCiAgICAgICAgc3dpdGNoKGlzTmFOKHhWYWx1ZSkpIHsNCiAgICAgICAgICBjYXNlIGZhbHNlOiB4VmFsdWUgPSBwYXJzZUZsb2F0KHhWYWx1ZSkgOyBicmVhazsNCiAgICAgICAgfQ0KDQogICAgICAgIHN3aXRjaChpc05hTih5VmFsdWUpKSB7DQogICAgICAgICAgY2FzZSBmYWxzZTogeVZhbHVlID0gcGFyc2VGbG9hdCh5VmFsdWUpIDsgYnJlYWs7DQogICAgICAgIH0NCiAgICAgICAgDQoNCiAgICAgICAgaWYgKHhWYWx1ZSA+IHlWYWx1ZSkgew0KICAgICAgICAgIHNob3VsZFN3aXRjaCA9IHRydWU7DQogICAgICAgICAgYnJlYWs7DQogICAgICAgIH0NCg0KICAgICAgfQ0KICAgICAgaWYgKHNob3VsZFN3aXRjaCkgew0KICAgICAgICByb3dzW2ldLnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKHJvd3NbaSArIDFdLCByb3dzW2ldKTsNCiAgICAgICAgc3dpdGNoaW5nID0gdHJ1ZTsNCiAgICAgIH0NCiAgICB9DQogICAgY3JlYXRlU2VhcmNoT2JqKCkNCiAgICANCiAgICBzaG93TG9hZGluZ1NjcmVlbihmYWxzZSk7DQogIH0sIDIwKTsNCg0KfQ0KDQpmdW5jdGlvbiBzaG93WEVQRygpIHsNCiAgdmFyIHVybCA9IGxvY2F0aW9uLnByb3RvY29sICsgIi8vIiArIGxvY2F0aW9uLmhvc3RuYW1lICsgIjoiICsgbG9jYXRpb24ucG9ydCArICIveG1sdHYveHRldmUueG1sIg0KICB2YXIgd2luID0gd2luZG93Lm9wZW4odXJsLCAnX2JsYW5rJyk7DQogIHdpbi5mb2N1cygpOw0KfQ==" + webUI["html/img/BC-QR.jpg"] = "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" + webUI["html/img/x_black.png"] = "iVBORw0KGgoAAAANSUhEUgAAAQAAAAEACAIAAADTED8xAAAAAXNSR0IArs4c6QAAAAlwSFlzAAAWJQAAFiUBSVIk8AAAA6ppVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IlhNUCBDb3JlIDUuNC4wIj4KICAgPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIgogICAgICAgICAgICB4bWxuczp0aWZmPSJodHRwOi8vbnMuYWRvYmUuY29tL3RpZmYvMS4wLyIKICAgICAgICAgICAgeG1sbnM6ZXhpZj0iaHR0cDovL25zLmFkb2JlLmNvbS9leGlmLzEuMC8iPgogICAgICAgICA8eG1wOk1vZGlmeURhdGU+MjAxOC0xMS0xNVQxNzoxMTozNzwveG1wOk1vZGlmeURhdGU+CiAgICAgICAgIDx4bXA6Q3JlYXRvclRvb2w+UGl4ZWxtYXRvciAzLjM8L3htcDpDcmVhdG9yVG9vbD4KICAgICAgICAgPHRpZmY6T3JpZW50YXRpb24+MTwvdGlmZjpPcmllbnRhdGlvbj4KICAgICAgICAgPHRpZmY6Q29tcHJlc3Npb24+NTwvdGlmZjpDb21wcmVzc2lvbj4KICAgICAgICAgPHRpZmY6UmVzb2x1dGlvblVuaXQ+MjwvdGlmZjpSZXNvbHV0aW9uVW5pdD4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+MTQ0PC90aWZmOllSZXNvbHV0aW9uPgogICAgICAgICA8dGlmZjpYUmVzb2x1dGlvbj4xNDQ8L3RpZmY6WFJlc29sdXRpb24+CiAgICAgICAgIDxleGlmOlBpeGVsWERpbWVuc2lvbj4yNTY8L2V4aWY6UGl4ZWxYRGltZW5zaW9uPgogICAgICAgICA8ZXhpZjpDb2xvclNwYWNlPjE8L2V4aWY6Q29sb3JTcGFj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a1jSekqmtA1rrGsx7JYkDuvrVahwRdgVXD1xcwri6mmYRULLe4CuPc2wfrGo4U+7Y/3S9ZHD+GcflbnfiCJbr77whoaS6ucCXVkVkuLKgORQwNJFygRDJnqwb9i3b0HxkqjT0L4erGy5Rh1IRnhXrpaZq6GZCyRLf6cvhoTY6V9koX8bGdEUlyWVm6W5q1GuostihNm97L/dpm5k+QHCbDna0zRzgSS/lRHWL7iHPOa+9YsYkpttoCwSMcQRkrWioz5Qsc7aFJ1coHY3QyJ9jSjfJEOCfTUpWzehVBnUbqCJOCHEkB1xsmXDwq9DnObUz9q4QOUqYPaPKFzUKcVj6Eeu461q67Vhlqy6+Xo11G52JhRZNNW1FRbN00FWPVwguSa+8YEZ1i+D9vQjelm/iHTwAB69Vwd7CkuGLOcWtxfR4o+dHhNg4DNmhDvJ8M6ehknvhTXMDp8kQQgT33W4z+i7k/2gho+Jvrp1NTVwgW5opV76yl8F/cufe9CyJiRllZ6lYCHMXWPAXmNp9CRb8Pi30r658sHtCSCPsZNXQDYdMaLIek/No13V/rBfGMFSCXnsKNo1dDelnKt/dyUH8uvjjLH+zyfpbv1iUl/NVBt4mVJy58HoDyFZLt0rrj4G7TfIjARvMjy7d6JnR/UXS/+yeD5kLYkETxpRZL2jZJVzb7cl9yZA/cYqh4z+20AEzOj+BKxbZYRFqXQssvLs5gQzpBUp616rNsX55WdXBHbPBRrwlBm5v2VYJo1FsjmOtQg8ezo+fd8Ve4qy04HPRlmR1UiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABGwg8D8UnyVeZFwGAQAAAABJRU5ErkJggg==" + webUI["html/js/base.js"] = "dmFyIGNvbmZpZyAgICAgICAgPSBuZXcgT2JqZWN0KCk7DQp2YXIgbWVudSAgICAgICAgICA9IG5ldyBPYmplY3QoKTsNCnZhciBzdWJNZW51ICAgICAgID0gbmV3IE9iamVjdCgpOw0KdmFyIGFjdGl2ZVN0cmVhbXMgPSBuZXcgT2JqZWN0KCk7DQp2YXIgeEVQRyAgICAgICAgICA9IG5ldyBPYmplY3QoKTsNCnZhciB1c2VycyAgICAgICAgID0gbmV3IE9iamVjdCgpOw0KdmFyIGxvZyAgICAgICAgICAgPSBuZXcgT2JqZWN0KCk7DQp2YXIgdW5kbyAgICAgICAgICA9IG5ldyBPYmplY3QoKTsNCnZhciB3ZWJTb2NrZXRzICAgID0gdHJ1ZTsNCnZhciBjbG9zZUxvZywgdmVyc2lvbiwgYWN0aXZlTWVudTsNCnZhciBjb2x1bW5Ub1NvcnQgID0gMA0KDQoNCmlmICh3aW5kb3cuV2ViU29ja2V0ID09PSB1bmRlZmluZWQpIHsNCiAgYWxlcnQoIllvdXIgYnJvd3NlciBkb2VzIG5vdCBzdXBwb3J0IFdlYlNvY2tldHMiKTsNCiAgd2ViU29ja2V0cyA9IGZhbHNlOw0KfSANCg0KZnVuY3Rpb24gcGFnZVJlYWR5KCkgew0KICB2YXIgZGF0YSA9IG5ldyBPYmplY3QoKTsNCiAgZGF0YVsiY21kIl0gPSAiZ2V0U2VydmVyQ29uZmlnIjsNCiAgeFRlVmUoZGF0YSk7DQogIC8vc2hvd0xvYWRpbmdTY3JlZW4oZmFsc2UpOw0KDQogIHZhciByZXNpemVIYW5kbGUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgib3BlblN0cmVhbXMiKTsNCiAgdmFyIGJveCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJteVN0cmVhbXNCb3giKTsNCiAgcmVzaXplSGFuZGxlLmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlZG93biIsIGluaXRpYWxpc2VSZXNpemUsIGZhbHNlKTsNCg0KICBmdW5jdGlvbiBpbml0aWFsaXNlUmVzaXplKGUpIHsNCiAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigibW91c2Vtb3ZlIiwgc3RhcnRSZXNpemluZywgZmFsc2UpOw0KICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJtb3VzZXVwIiwgc3RvcFJlc2l6aW5nLCBmYWxzZSk7DQogIH0NCg0KICBmdW5jdGlvbiBzdGFydFJlc2l6aW5nKGUpIHsNCiAgICBib3guc3R5bGUuaGVpZ2h0ID0gKGUuY2xpZW50WSAtIGJveC5vZmZzZXRUb3ApICsgInB4IjsNCiAgICAgIA0KICAgIHZhciBlbG0gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYWxsU3RyZWFtcyIpOw0KICAgIGlmIChlLmNsaWVudFkgPiAxMjApIHsNCiAgICAgIGVsbS5jbGFzc05hbWUgPSAidmlzaWJsZSI7IA0KICAgIH0gZWxzZSB7DQogICAgICBlbG0uY2xhc3NOYW1lID0gIm5vdFZpc2libGUiOyANCiAgICB9DQoNCiAgICBjYWxjdWxhdGVXcmFwcGVySGVpZ2h0KCk7DQoNCiAgfQ0KICBmdW5jdGlvbiBzdG9wUmVzaXppbmcoZSkgew0KICAgICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ21vdXNlbW92ZScsIHN0YXJ0UmVzaXppbmcsIGZhbHNlKTsNCiAgICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCdtb3VzZXVwJywgc3RvcFJlc2l6aW5nLCBmYWxzZSk7DQogICAgICBjYWxjdWxhdGVXcmFwcGVySGVpZ2h0KCk7DQogIH0NCg0KICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigicmVzaXplIiwgZnVuY3Rpb24oKXsNCiAgICBjYWxjdWxhdGVXcmFwcGVySGVpZ2h0KCk7DQogIH0sIHRydWUpOw0KfQ0KDQoNCmZ1bmN0aW9uIGdldE9iaktleXMob2JqKSB7DQogIHZhciBrZXlzID0gbmV3IEFycmF5KCk7DQoNCiAgZm9yICh2YXIgaSBpbiBvYmopIHsNCiAgICBpZiAob2JqLmhhc093blByb3BlcnR5KGkpKSB7DQogICAgICBrZXlzLnB1c2goaSk7DQogICAgfQ0KICB9DQoNCiAgcmV0dXJuIGtleXM7DQp9DQoNCg0KZnVuY3Rpb24gY3JlYXRlRWxlbWVudChpdGVtKSB7DQogIC8vY29uc29sZS5sb2coaXRlbSk7DQogIHZhciBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChpdGVtWyJfZWxlbWVudCJdKTsNCiAgaWYgKGl0ZW0uaGFzT3duUHJvcGVydHkoIl90ZXh0IikpIHsNCiAgICAvL2VsZW1lbnQuaW5uZXJIVE1MID0gIjxwPiIgKyBpdGVtWyJfdGV4dCJdICsgIjwvcD4iOw0KICAgIGVsZW1lbnQuaW5uZXJIVE1MID0gaXRlbVsiX3RleHQiXTsNCiAgfQ0KDQogIHZhciBrZXlzID0gZ2V0T2JqS2V5cyhpdGVtKTsNCiAgZm9yICh2YXIgaSA9IDA7IGkgPCBrZXlzLmxlbmd0aDsgaSsrKSB7DQogICAgaWYgKGtleXNbaV0uY2hhckF0KDApICE9ICJfIikgew0KICAgICAgLy9jb25zb2xlLmxvZyhrZXlzW2ldLCBpdGVtW2tleXNbaV1dKTsNCiAgICAgIGVsZW1lbnQuc2V0QXR0cmlidXRlKGtleXNbaV0sIGl0ZW1ba2V5c1tpXV0pOw0KICAgIH0NCiAgfQ0KDQogIC8vY29uc29sZS5sb2coZWxlbWVudCk7DQogIHJldHVybiBlbGVtZW50Ow0KfQ0KDQpmdW5jdGlvbiBtb2RpZnlPcHRpb24oaWQsIG9wdGlvbnMsIHZhbHVlcykgew0KICB2YXIgc2VsZWN0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpOw0KICBzZWxlY3QuaW5uZXJIVE1MID0gIiI7DQoNCiAgZm9yICh2YXIgaSA9IDA7IGkgPCBvcHRpb25zLmxlbmd0aDsgaSsrKSB7DQogIA0KICAgIHZhciBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiT1BUSU9OIikNCiAgDQogICAgZWxlbWVudC52YWx1ZSA9IHZhbHVlc1tpXTsNCiAgICBlbGVtZW50LmlubmVySFRNTCA9IG9wdGlvbnNbaV07DQoNCiAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkuYXBwZW5kQ2hpbGQoZWxlbWVudCk7DQogIA0KICB9DQoNCn0NCg0KDQpmdW5jdGlvbiBzdGFydFdlYlNvY2tldCgpIHsNCiAgaWYgKHdlYlNvY2tldHMgPT0gZmFsc2UpIHsNCiAgICByZXR1cm47DQogIH0NCg0KICAvL3dzLnNlbmQoJ3siY21kIjogImdldFNlcnZlckNvbmZpZzEifScpOw0KDQp9DQoNCmZ1bmN0aW9uIGNoZWNrRXJyKG9iaikgew0KICAvL2FsZXJ0KG9ialsiZXJyIl0pDQogIC8vc2NyZWVuTG9nKG9ialsiZXJyIl0sICJlcnJvciIpDQogIGNvbnNvbGUubG9nKG9iaik7DQogIHZhciBuZXdPYmogPSBuZXcgT2JqZWN0KCk7DQogIHZhciBuZXdFcnIgPSBuZXcgT2JqZWN0KCk7DQogIG5ld0Vyclsia2V5Il0gICA9ICJFcnJvciI7DQogIG5ld0VyclsidmFsdWUiXSA9IG9ialsiZXJyIl07DQogIG5ld0VyclsidHlwZSJdICA9ICJlcnJvciI7DQoNCiAgbmV3T2JqWzBdID0gbmV3RXJyDQogIHNob3dMb2cobmV3T2JqKTsNCiAgcmV0dXJuDQp9DQoNCmZ1bmN0aW9uIHNjcmVlbkxvZyhtc2csIG1zZ1R5cGUsIHNob3cpIHsNCiAgcmV0dXJuDQogIGNsZWFyVGltZW91dChjbG9zZUxvZykNCiAgdmFyIGRpdiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzY3JlZW5Mb2ciKTsNCiAgdmFyIG5ld01zZyA9IG5ldyBPYmplY3QoKTsNCiAgDQogIG5ld01zZ1siX2VsZW1lbnQiXSA9ICJQIjsNCiAgDQogIHN3aXRjaChtc2dUeXBlKSB7DQogICAgY2FzZSAiZXJyb3IiOiAgIG5ld01zZ1siY2xhc3MiXSA9ICJlcnJvck1zZyI7IGJyZWFrOw0KICAgIGNhc2UgIndhcm5pbmciOiBuZXdNc2dbImNsYXNzIl0gPSAid2FybmluZ01zZyI7IGJyZWFrOw0KICAgIC8vZGVmYXVsdDogICAgICBuZXdNc2dbImNsYXNzIl0gPSAiaW5mb01zZyINCiAgfQ0KDQogIG5ld01zZ1siX3RleHQiXSA9IG1zZzsNCg0KICBkaXYuYXBwZW5kQ2hpbGQoY3JlYXRlRWxlbWVudChuZXdNc2cpKTsNCg0KICBkaXYuc2Nyb2xsVG9wID0gZGl2LnNjcm9sbEhlaWdodDsNCg0KICBpZiAoc2hvdyA9PSBmYWxzZSkgew0KICAgIHJldHVybjsNCiAgfQ0KDQogIGRpdi5jbGFzc05hbWUgPSAiIg0KICBjbG9zZUxvZyA9IHNldFRpbWVvdXQoY2xvc2VTY3JlZW5Mb2csIDEwMDAwKTsNCn0NCg0KDQpmdW5jdGlvbiBjbG9zZVNjcmVlbkxvZygpIHsNCiAgdmFyIGRpdiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzY3JlZW5Mb2ciKTsNCiAgZGl2LmNsYXNzTmFtZSA9ICJzY3JlZW5Mb2dIaWRkZW4iDQp9DQoNCmZ1bmN0aW9uIHNob3dTY3JlZW5Mb2coKSB7DQogIGNsZWFyVGltZW91dChjbG9zZUxvZykNCiAgdmFyIGRpdiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzY3JlZW5Mb2ciKTsNCiAgdmFyIGN1cnJlbnRDbGFzcyA9IGRpdi5jbGFzc05hbWU7DQogIGRpdi5jbGFzc05hbWUgPSAic2NyZWVuTG9nSGlkZGVuIg0KDQogIHN3aXRjaChjdXJyZW50Q2xhc3MpIHsNCiAgICBjYXNlICJzY3JlZW5Mb2dIaWRkZW4iOiAgZGl2LmNsYXNzTmFtZSA9ICIiOyBicmVhazsgDQogICAgY2FzZSAiIjogZGl2LmNsYXNzTmFtZSA9ICJzY3JlZW5Mb2dIaWRkZW4iOyBicmVhazsNCiAgfQ0KfQ0KDQpmdW5jdGlvbiBzaG93TG9hZGluZ1NjcmVlbihlbG0pIHsNCiAgdmFyIGRpdiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJsb2FkaW5nIik7DQogIHN3aXRjaChlbG0pIHsNCiAgICBjYXNlIHRydWU6IGRpdi5jbGFzc05hbWUgPSAiYmxvY2siOyBicmVhazsNCiAgICBjYXNlIGZhbHNlOiBkaXYuY2xhc3NOYW1lID0gIm5vbmUiOyBicmVhazsNCg0KICAgIC8qDQogICAgY2FzZSB0cnVlOiBkaXYuc3R5bGUuZGlzcGxheSA9ICJibG9jayI7IGJyZWFrOw0KICAgIGNhc2UgZmFsc2U6IGRpdi5zdHlsZS5kaXNwbGF5ID0gIm5vbmUiOyBicmVhazsNCiAgICAqLw0KICB9DQp9DQoNCmZ1bmN0aW9uIGNyZWF0ZUNsaW50SW5mbyhvYmopIHsNCiAgLy9jb25zb2xlLmxvZyhvYmopOw0KICB2YXIga2V5cyA9IGdldE9iaktleXMob2JqKTsNCiAgZm9yICh2YXIgaSA9IDA7IGkgPCBrZXlzLmxlbmd0aDsgaSsrKSB7DQogICAgaWYoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoa2V5c1tpXSkpew0KICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoa2V5c1tpXSkuaW5uZXJIVE1MID0gb2JqW2tleXNbaV1dOw0KICAgIH0NCiAgfQ0KICAvL2RvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjbGllbnRJbmZvIikuY2xhc3NOYW1lID0gInZpc2libGUiOw0KfQ0KDQpmdW5jdGlvbiBzaG93RWxlbWVudChlbG1JRCwgdHlwZSkgew0KICBzd2l0Y2godHlwZSkgew0KICAgIGNhc2UgdHJ1ZTogIGNzc0NsYXNzID0gImJsb2NrIjsgYnJlYWs7DQogICAgY2FzZSBmYWxzZTogY3NzQ2xhc3MgPSAibm9uZSI7IGJyZWFrOw0KICB9DQoNCiAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoZWxtSUQpLmNsYXNzTmFtZSA9IGNzc0NsYXNzOw0KfSANCg0KZnVuY3Rpb24gc2hvd1BvcFVwRWxlbWVudChlbG0pIHsNCiAgdmFyIGFsbEVsZW1lbnRzID0gbmV3IEFycmF5KCJkZWxldGVVc2VyRGV0YWlsIiwgIm1hcHBpbmctZGV0YWlsIiwgInVzZXItZGV0YWlsIiwgImZpbGUtZGV0YWlsIik7DQoNCiAgZm9yICh2YXIgaSA9IDA7IGkgPCBhbGxFbGVtZW50cy5sZW5ndGg7IGkrKykgew0KICAgIHNob3dFbGVtZW50KGFsbEVsZW1lbnRzW2ldLCBmYWxzZSkNCiAgfQ0KDQogIHNob3dFbGVtZW50KGVsbSwgdHJ1ZSkNCg0KICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7IA0KICAgIHNob3dFbGVtZW50KCJwb3B1cCIsIHRydWUpOw0KICB9LCAxMCk7DQp9DQoNCiAgLy8gYm9keS4uLg0KDQpmdW5jdGlvbiBzaG93U3RyZWFtcyhmb3JjZSkgew0KDQogIHZhciBlbG1Cb3ggPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibXlTdHJlYW1zQm94Iik7DQogIHZhciBlbG0gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYWxsU3RyZWFtcyIpOw0KICAvL2NvbnNvbGUubG9nKGVsbSk7DQogIHNob3cgPSBlbG0uY2xhc3NOYW1lOw0KDQogIHN3aXRjaChmb3JjZSkgew0KICAgIGNhc2UgdHJ1ZTogc2hvdyA9ICJub3RWaXNpYmxlIjsgYnJlYWs7DQogICAgY2FzZSBmYWxzZTogc2hvdyA9ICJ2aXNpYmxlIjsgYnJlYWs7DQogIH0NCg0KICBzd2l0Y2goc2hvdykgew0KICAgIGNhc2UgIm5vdFZpc2libGUiOiANCiAgICAgIGVsbS5jbGFzc05hbWUgPSAidmlzaWJsZSI7IA0KICAgICAgZWxtQm94LnN0eWxlLmhlaWdodCA9ICIxMDBweCI7DQogICAgICBicmVhazsNCg0KICAgIGRlZmF1bHQ6IA0KICAgICAgZWxtLmNsYXNzTmFtZSA9ICJub3RWaXNpYmxlIjsgDQogICAgICBlbG1Cb3guc3R5bGUuaGVpZ2h0ID0gIjIwcHgiOw0KICAgICAgYnJlYWs7DQogIH0NCg0KICB2YXIgc2hvdyA9IGVsbS5zdHlsZS5kaXNwbGF5OyB7DQogICAgLy9jb25zb2xlLmxvZyhlbG0uc3R5bGUuZGlzcGxheSk7DQogIH0NCiAgDQogIGNhbGN1bGF0ZVdyYXBwZXJIZWlnaHQoKTsNCn0NCg0KZnVuY3Rpb24geHRldmVCYWNrdXAoKSB7DQogIGNvbnNvbGUubG9nKCJ4dGV2ZUJhY2t1cCIpOw0KICB2YXIgZGF0YSA9IG5ldyBPYmplY3QoKTsNCiAgZGF0YVsiY21kIl0gPSAieHRldmVCYWNrdXAiOw0KDQogIHhUZVZlKGRhdGEpOw0KfQ0KDQpmdW5jdGlvbiB4dGV2ZVJlc3RvcmUoZWxtKSB7DQogIHZhciByZXN0b3JlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiSU5QVVQiKTsNCiAgcmVzdG9yZS5zZXRBdHRyaWJ1dGUoInR5cGUiLCAiZmlsZSIpOw0KICByZXN0b3JlLnNldEF0dHJpYnV0ZSgiY2xhc3MiLCAibm90VmlzaWJsZSIpOw0KICByZXN0b3JlLnNldEF0dHJpYnV0ZSgibmFtZSIsICIiKTsNCiAgcmVzdG9yZS5pZCA9ICJ1cGxvYWQiOw0KDQogIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQocmVzdG9yZSk7DQogIHJlc3RvcmUuY2xpY2soKTsNCg0KICByZXN0b3JlLm9uY2hhbmdlID0gZnVuY3Rpb24oKSB7DQogICAgdmFyIGZpbGVuYW1lID0gcmVzdG9yZS5maWxlc1swXS5uYW1lDQogICAgLy9jb25zb2xlLmxvZyhyZXN0b3JlLnNyY0VsZW1lbnQuZmlsZXNbMF0pOw0KICAgIHZhciBjaGVjayA9IGNvbmZpcm0oIkZpbGU6ICIgKyBmaWxlbmFtZSArICJcbkFsbCBkYXRhIHdpbGwgYmUgcmVwbGFjZWQgd2l0aCB0aG9zZSBmcm9tIHRoZSBiYWNrdXAuXG5TaG91bGQgdGhlIGZpbGVzIGJlIHJlc3RvcmVkPyIpOyANCiAgICBpZiAoY2hlY2sgPT0gdHJ1ZSkgew0KICAgICAgdmFyIHJlYWRlciAgPSBuZXcgRmlsZVJlYWRlcigpOw0KICAgICAgdmFyIGZpbGUgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCdpbnB1dFt0eXBlPWZpbGVdJykuZmlsZXNbMF07DQogICAgICBpZiAoZmlsZSkgew0KICAgICAgICByZWFkZXIucmVhZEFzRGF0YVVSTChmaWxlKTsNCiAgICAgICAgcmVhZGVyLm9ubG9hZCA9IGZ1bmN0aW9uKCkgew0KICAgICAgICAgIGNvbnNvbGUubG9nKHJlYWRlci5yZXN1bHQpOw0KICAgICAgICAgIHZhciBkYXRhID0gbmV3IE9iamVjdCgpOw0KICAgICAgICAgIGRhdGFbImNtZCJdICAgICA9ICJ4dGV2ZVJlc3RvcmUiDQogICAgICAgICAgZGF0YVsiYmFzZTY0Il0gID0gcmVhZGVyLnJlc3VsdA0KDQogICAgICAgICAgeFRlVmUoZGF0YSk7DQogICAgICAgICAgcmV0dXJuDQogICAgICAgIH07DQogICAgICB9IGVsc2Ugew0KICAgICAgICBhbGVydCgiRmlsZSBjb3VsZCBub3QgYmUgbG9hZGVkIikNCiAgICAgIH0NCiAgICB9DQogIH07DQp9DQoNCmZ1bmN0aW9uIGdldEJhc2U2NChmaWxlKSB7DQogICB2YXIgcmVhZGVyID0gbmV3IEZpbGVSZWFkZXIoKTsNCiAgIHJlYWRlci5yZWFkQXNEYXRhVVJMKGZpbGUpOw0KICAgcmVhZGVyLm9ubG9hZCA9IGZ1bmN0aW9uKCkgew0KICAgICBjb25zb2xlLmxvZyhyZWFkZXIucmVzdWx0KTsNCiAgIH07DQogICByZWFkZXIub25lcnJvciA9IGZ1bmN0aW9uKGVycm9yKSB7DQogICAgIGNvbnNvbGUubG9nKCdFcnJvcjogJywgZXJyb3IpOw0KICAgfTsNCn0NCg0KZnVuY3Rpb24gbG9nb3V0KCkgew0KICBkb2N1bWVudC5jb29raWUuc3BsaXQoJzsnKS5mb3JFYWNoKGZ1bmN0aW9uKGMpIHsNCiAgICBkb2N1bWVudC5jb29raWUgPSBjLnRyaW0oKS5zcGxpdCgnPScpWzBdICsgJz07JyArICdleHBpcmVzPVRodSwgMDEgSmFuIDE5NzAgMDA6MDA6MDAgVVRDOyc7DQogIH0pOw0KICBsb2NhdGlvbi5yZWxvYWQoKTsNCn0NCg0KZnVuY3Rpb24gZ2V0Q29va2llKG5hbWUpIHsNCiAgdmFyIHZhbHVlID0gIjsgIiArIGRvY3VtZW50LmNvb2tpZTsNCiAgdmFyIHBhcnRzID0gdmFsdWUuc3BsaXQoIjsgIiArIG5hbWUgKyAiPSIpOw0KICBpZiAocGFydHMubGVuZ3RoID09IDIpIHJldHVybiBwYXJ0cy5wb3AoKS5zcGxpdCgiOyIpLnNoaWZ0KCk7DQp9DQoNCmZ1bmN0aW9uIHNldENvb2tpZSh0b2tlbikgew0KICAvL2NvbnNvbGUubG9nKHRva2VuKTsNCiAgZG9jdW1lbnQuY29va2llID0gIlRva2VuPSIgKyB0b2tlbg0KfQ0KDQo=" + webUI["html/js/data.js"] = "ZnVuY3Rpb24gc2hvd0NvbmZpZyhvYmopIHsNCiAgY29uZmlnID0gb2JqOw0KICAvL3NldE1lbnVJdGVtKCk7DQogIGNyZWF0ZU1lbnUoKTsNCiAgLy9kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicGFnZSIpLmNsYXNzTmFtZSA9ICIiOw0KfQ0KDQpzaG93TXlTdHJlYW1zDQoNCmZ1bmN0aW9uIHNob3dNeVN0cmVhbXMoYWxsU3RyZWFtc09iaikgew0KDQogIHZhciBzdHJlYW1UeXBlS2V5cyA9IGdldE9iaktleXMoYWxsU3RyZWFtc09iaikNCg0KICBmb3IgKHZhciBzID0gMDsgcyA8IHN0cmVhbVR5cGVLZXlzLmxlbmd0aDsgcysrKSB7DQogICAgdmFyIHN0cmVhbVR5cGUgPSBzdHJlYW1UeXBlS2V5c1tzXTsNCiAgICB2YXIgb2JqID0gbmV3IE9iamVjdCgpOw0KICAgIG9iaiA9IGFsbFN0cmVhbXNPYmpbc3RyZWFtVHlwZV07DQogICAgc3dpdGNoKHN0cmVhbVR5cGUpIHsNCiAgICAgIGNhc2UgImFjdGl2ZVN0cmVhbXMiOiBhY3RpdmVTdHJlYW1zICAgICA9IG9iajsgYnJlYWs7DQogICAgfQ0KDQogICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoc3RyZWFtVHlwZSkuaW5uZXJIVE1MID0gIiI7DQoNCiAgICB2YXIgc3RyZWFtc09iaiAgICA9IG5ldyBPYmplY3QoKTsNCiAgICB2YXIgc3RyZWFtc05hbWVzICA9IG5ldyBBcnJheSgpOw0KICAgIA0KICAgIHZhciBrZXlzID0gZ2V0T2JqS2V5cyhvYmopDQogICAgDQogICAgLy8gQ3JlYXRlIE9iamVjdCAoc3RyZWFtc09iaikgZm9yIHRoZSBzdHJlYW1zIGFuZCBzb3J0IGJ5IG5hbWUgKHN0cmVhbXNOYW1lcykNCiAgICBmb3IgKHZhciBpID0gMDsgaSA8IGtleXMubGVuZ3RoOyBpKyspIHsNCiAgICAgIHZhciBuYW1lICAgID0gb2JqW2tleXNbaV1dWyJuYW1lIl07DQogICAgICB2YXIgdG1wID0gbmV3IE9iamVjdCgpOw0KICAgICAgdmFyIHN0cmVhbUtleSA9IGdldE9iaktleXMob2JqW2tleXNbaV1dKTsNCg0KICAgICAgZm9yICh2YXIgaiA9IDA7IGogPCBzdHJlYW1LZXkubGVuZ3RoOyBqKyspIHsNCiAgICAgICAgdG1wW3N0cmVhbUtleVtqXV0gPSBvYmpba2V5c1tpXV1bc3RyZWFtS2V5W2pdXTsgICAgICANCiAgICAgIH0NCg0KICAgICAgc3RyZWFtc09ialtuYW1lXSA9IHRtcDsNCiAgICAgIHN0cmVhbXNOYW1lcy5wdXNoKG5hbWUpDQogICAgfQ0KDQogICAgc3RyZWFtc05hbWVzLnNvcnQoKTsNCiAgICANCiAgICAvLyBDcmVhdGUgVGFibGUgZm9yIGFjdGl2ZVN0cmVhbXMNCiAgICB2YXIgdGFibGUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChzdHJlYW1UeXBlKTsNCg0KICAgIGZvciAodmFyIGkgPSAwOyBpIDwgc3RyZWFtc05hbWVzLmxlbmd0aDsgaSsrKSB7DQogICAgICB2YXIgbmV3RW50cnkgPSBuZXcgT2JqZWN0KCk7DQogICAgICBuZXdFbnRyeVsiX2VsZW1lbnQiXSA9ICJUUiI7DQogICAgICB0YWJsZS5hcHBlbmRDaGlsZChjcmVhdGVFbGVtZW50KG5ld0VudHJ5KSk7DQogICAgICB2YXIgbGluZSA9IHRhYmxlLmxhc3RDaGlsZDsNCg0KICAgICAgdmFyIHRtcCA9IHN0cmVhbXNPYmpbc3RyZWFtc05hbWVzW2ldXQ0KICAgICAgdmFyIGtleXMgPSBnZXRPYmpLZXlzKHRtcCkNCg0KICAgICAgdmFyIG5ld0tleSA9IG5ldyBPYmplY3QoKQ0KICAgICAgbmV3S2V5WyJfZWxlbWVudCJdICA9ICJURCI7DQogICAgICAvL25ld0tleVsiX3RleHQiXSAgICAgPSBzdHJlYW1zTmFtZXNbaV07DQogICAgICBzd2l0Y2goc3RyZWFtVHlwZSkgew0KICAgICAgICBjYXNlICJhY3RpdmVTdHJlYW1zIjogbmV3S2V5WyJfdGV4dCJdICAgICA9ICJDaGFubmVsICgrKToiOyBicmVhazsNCiAgICAgICAgY2FzZSAiaW5hY3RpdmVTdHJlYW1zIjogbmV3S2V5WyJfdGV4dCJdICAgPSAiQ2hhbm5lbCAoLSk6IjsgYnJlYWs7DQogICAgICB9DQogICAgICANCiAgICAgIG5ld0tleVsiY2xhc3MiXSAgICAgPSAidGRLZXkiOw0KICAgICAgY29uc29sZS5sb2coKTsNCg0KDQogICAgICB2YXIgbmV3VmFsID0gbmV3IE9iamVjdCgpDQogICAgICBuZXdWYWxbIl9lbGVtZW50Il0gID0gIlREIjsNCiAgICAgIG5ld1ZhbFsiX3RleHQiXSAgICAgPSBzdHJlYW1zTmFtZXNbaV07DQogICAgICBuZXdWYWxbImNsYXNzIl0gICAgID0gInRkVmFsIjsNCiAgICAgIC8vbmV3VmFsWyJfdGV4dCJdICAgICA9IHZhbHVlOw0KICAgICAgDQogICAgICBsaW5lLmFwcGVuZENoaWxkKGNyZWF0ZUVsZW1lbnQobmV3S2V5KSk7DQogICAgICBsaW5lLmFwcGVuZENoaWxkKGNyZWF0ZUVsZW1lbnQobmV3VmFsKSk7DQogICAgICANCiAgICB9DQoNCiAgfQ0KDQogIHJldHVybg0KfQ0KDQpmdW5jdGlvbiBzaG93QWN0aXZlU3RyZWFtcyhvYmopIHsNCiAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImFjdGl2ZVN0cmVhbXMiKS5pbm5lckhUTUwgPSAiIjsNCiAgYWN0aXZlU3RyZWFtcyAgICAgPSBvYmo7DQogIHZhciBzdHJlYW1zT2JqICAgID0gbmV3IE9iamVjdCgpOw0KICB2YXIgc3RyZWFtc05hbWVzICA9IG5ldyBBcnJheSgpOw0KICANCiAgdmFyIGtleXMgPSBnZXRPYmpLZXlzKG9iaikNCiAgDQogIC8vIENyZWF0ZSBPYmplY3QgKHN0cmVhbXNPYmopIGZvciB0aGUgc3RyZWFtcyBhbmQgc29ydCBieSBuYW1lIChzdHJlYW1zTmFtZXMpDQogIGZvciAodmFyIGkgPSAwOyBpIDwga2V5cy5sZW5ndGg7IGkrKykgew0KICAgIHZhciBuYW1lICAgID0gb2JqW2tleXNbaV1dWyJuYW1lIl07DQogICAgdmFyIHRtcCA9IG5ldyBPYmplY3QoKTsNCiAgICB2YXIgc3RyZWFtS2V5ID0gZ2V0T2JqS2V5cyhvYmpba2V5c1tpXV0pOw0KDQogICAgZm9yICh2YXIgaiA9IDA7IGogPCBzdHJlYW1LZXkubGVuZ3RoOyBqKyspIHsNCiAgICAgIHRtcFtzdHJlYW1LZXlbal1dID0gb2JqW2tleXNbaV1dW3N0cmVhbUtleVtqXV07ICAgICAgDQogICAgfQ0KDQogICAgc3RyZWFtc09ialtuYW1lXSA9IHRtcDsNCiAgICBzdHJlYW1zTmFtZXMucHVzaChuYW1lKQ0KICB9DQoNCiAgc3RyZWFtc05hbWVzLnNvcnQoKTsNCiAgDQogIC8vIENyZWF0ZSBUYWJsZSBmb3IgYWN0aXZlU3RyZWFtcw0KICB2YXIgdGFibGUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYWN0aXZlU3RyZWFtcyIpOw0KDQogIGZvciAodmFyIGkgPSAwOyBpIDwgc3RyZWFtc05hbWVzLmxlbmd0aDsgaSsrKSB7DQogICAgdmFyIG5ld0VudHJ5ID0gbmV3IE9iamVjdCgpOw0KICAgIG5ld0VudHJ5WyJfZWxlbWVudCJdID0gIlRSIjsNCiAgICB0YWJsZS5hcHBlbmRDaGlsZChjcmVhdGVFbGVtZW50KG5ld0VudHJ5KSk7DQogICAgdmFyIGxpbmUgPSB0YWJsZS5sYXN0Q2hpbGQ7DQoNCiAgICB2YXIgdG1wID0gc3RyZWFtc09ialtzdHJlYW1zTmFtZXNbaV1dDQogICAgdmFyIGtleXMgPSBnZXRPYmpLZXlzKHRtcCkNCg0KICAgIHZhciBuZXdLZXkgPSBuZXcgT2JqZWN0KCkNCiAgICBuZXdLZXlbIl9lbGVtZW50Il0gID0gIlREIjsNCiAgICAvL25ld0tleVsiX3RleHQiXSAgICAgPSBzdHJlYW1zTmFtZXNbaV07DQogICAgbmV3S2V5WyJfdGV4dCJdICAgICA9ICJDaGFubmVsOiI7DQogICAgbmV3S2V5WyJjbGFzcyJdICAgICA9ICJ0ZEtleSI7DQogICAgY29uc29sZS5sb2coKTsNCg0KDQogICAgdmFyIG5ld1ZhbCA9IG5ldyBPYmplY3QoKQ0KICAgIG5ld1ZhbFsiX2VsZW1lbnQiXSAgPSAiVEQiOw0KICAgIG5ld1ZhbFsiX3RleHQiXSAgICAgPSBzdHJlYW1zTmFtZXNbaV07DQogICAgbmV3VmFsWyJjbGFzcyJdICAgICA9ICJ0ZFZhbCI7DQogICAgLy9uZXdWYWxbIl90ZXh0Il0gICAgID0gdmFsdWU7DQogICAgDQogICAgbGluZS5hcHBlbmRDaGlsZChjcmVhdGVFbGVtZW50KG5ld0tleSkpOw0KICAgIGxpbmUuYXBwZW5kQ2hpbGQoY3JlYXRlRWxlbWVudChuZXdWYWwpKTsNCiAgICANCiAgfQ0KDQp9DQoNCmZ1bmN0aW9uIHBhcnNlTG9ncyhvYmopIHsNCiAgbG9nID0gb2JqDQogIHZhciBrZXlzID0gZ2V0T2JqS2V5cyhvYmopDQoNCiAgdmFyIG1zZ1R5cGU7DQogIGZvciAodmFyIGkgPSAwOyBpIDwga2V5cy5sZW5ndGg7IGkrKykgew0KICAgIHN3aXRjaChrZXlzW2ldKSB7DQogICAgICBjYXNlICJ3YXJuaW5ncyI6ICBtc2dUeXBlID0gIndhcm5pbmdNc2ciOyBicmVhazsNCiAgICAgIGNhc2UgImVycm9ycyI6ICAgIG1zZ1R5cGUgPSAiZXJyb3JNc2ciOyBicmVhazsNCiAgICB9DQoNCiAgICBzd2l0Y2gob2JqW2tleXNbaV1dKSB7DQogICAgICBjYXNlIDA6IG1zZ1R5cGUgPSAidGRWYWwiOyBicmVhazsNCiAgICAgIGRlZmF1bHQ6IGJyZWFrOw0KICAgIH0NCg0KICAgIGlmKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGtleXNbaV0pKXsNCiAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGtleXNbaV0pLmNsYXNzTmFtZSA9IG1zZ1R5cGU7DQogICAgfQ0KICAgIA0KICAgIA0KICB9DQogIHJldHVybg0KfQ0KDQoNCmZ1bmN0aW9uIGNhbmNlbERhdGEoZWxlbWVudCkgew0KICBjcmVhdGVNZW51KCk7DQp9DQoNCmZ1bmN0aW9uIHNhdmVEYXRhKGVsZW1lbnQpIHsNCiAgdmFyIGRhdGEgPSBuZXcgT2JqZWN0KCk7DQogIHZhciBkaXYgPSBlbGVtZW50LnBhcmVudE5vZGUucGFyZW50Tm9kZTsNCiAgdmFyIGlucHV0cyA9IGRpdi5nZXRFbGVtZW50c0J5VGFnTmFtZSgiSU5QVVQiKTsNCiAgDQogIHZhciBjb25maWdLZXkgPSBkaXYuZ2V0QXR0cmlidXRlKCJkYXRhLWNvbmZpZ2tleSIpOw0KICB2YXIgbWVudVR5cGUgPSBkaXYuZ2V0QXR0cmlidXRlKCJkYXRhLW1lbnV0eXBlIik7DQogIHZhciB2YWx1ZTsNCiAgdmFyIHZhbHVlQXJyID0gbmV3IEFycmF5KCk7DQogIA0KICBmb3IgKHZhciBpID0gMDsgaSA8IGlucHV0cy5sZW5ndGg7IGkrKykgew0KICAgIGlmIChpbnB1dHNbaV0udHlwZSA9PSAidGV4dCIgJiYgaW5wdXRzW2ldLnZhbHVlICE9IHVuZGVmaW5lZCAmJiBpbnB1dHNbaV0udmFsdWUgIT0gIiIgKSB7DQogICAgICBjb25zb2xlLmxvZyhpbnB1dHNbaV0udmFsdWUsIG1lbnVUeXBlKQ0KICAgICAgc3dpdGNoKG1lbnVUeXBlKSB7DQogICAgICAgIGNhc2UgImlucHV0QXJyYXkiOiB2YWx1ZUFyci5wdXNoKGlucHV0c1tpXS52YWx1ZSk7IGJyZWFrOw0KICAgICAgICBjYXNlICJzaW5nbGVJbnB1dCI6IHZhbHVlID0gaW5wdXRzW2ldLnZhbHVlOyBicmVhazsNCiAgICAgIH0NCiAgICB9DQogIH0NCg0KICBzd2l0Y2gobWVudVR5cGUpIHsNCiAgICBjYXNlICJpbnB1dEFycmF5IjogIGRhdGFbY29uZmlnS2V5XSA9IHZhbHVlQXJyOyBicmVhazsNCiAgICBjYXNlICJzaW5nbGVJbnB1dCI6ICANCiAgICAgIGlmIChpc05hTih2YWx1ZSkgPT0gZmFsc2UpIHsNCiAgICAgICAgdmFsdWUgPSBwYXJzZUludCh2YWx1ZSk7DQogICAgICAgIGRhdGFbY29uZmlnS2V5XSA9IHZhbHVlOw0KICAgICAgICBicmVhazsNCiAgICAgIH0NCg0KICAgICAgaWYgKHZhbHVlID09IHVuZGVmaW5lZCkgew0KICAgICAgICBkYXRhWyJkZWxldGUiXSA9IGNvbmZpZ0tleTsgDQogICAgICB9IGVsc2Ugew0KICAgICAgICBkYXRhW2NvbmZpZ0tleV0gPSB2YWx1ZQ0KICAgICAgfQ0KDQogICAgICBicmVhazsNCiAgfQ0KDQogIGRhdGFbImNtZCJdID0gInNhdmVDb25maWciOw0KICBjb25zb2xlLmxvZyhkYXRhKTsNCiAgeFRlVmUoZGF0YSkNCn0NCg0KZnVuY3Rpb24geFRlVmUoZGF0YSkgew0KICBpZiAod2ViU29ja2V0cyA9PSBmYWxzZSkgew0KICAgIGFsZXJ0KCJZb3VyIGJyb3dzZXIgZG9lcyBub3Qgc3VwcG9ydCBXZWJTb2NrZXRzIik7DQogICAgcmV0dXJuOw0KICB9IGVsc2Ugew0KICAgIGlmIChkYXRhWyJjbWQiXSAhPSAiZ2V0TG9nIikgew0KICAgICAgc2hvd0xvYWRpbmdTY3JlZW4odHJ1ZSkNCiAgICB9DQogIH0NCiAgZGVsZXRlIHVuZG9bImVwZ01hcHBpbmciXTsNCiAgDQogIHZhciBwcm90b2NvbFdTDQogIHN3aXRjaCh3aW5kb3cubG9jYXRpb24ucHJvdG9jb2wpIHsNCiAgICBjYXNlICJodHRwOiI6ICAgcHJvdG9jb2xXUyA9ICJ3czovLyI7IGJyZWFrOw0KICAgIGNhc2UgImh0dHBzOiI6ICBwcm90b2NvbFdTID0gIndzczovLyI7IGJyZWFrOw0KICB9DQoNCg0KICB2YXIgd3MgPSBuZXcgV2ViU29ja2V0KHByb3RvY29sV1MgKyB3aW5kb3cubG9jYXRpb24uaG9zdG5hbWUgKyAiOiIgKyB3aW5kb3cubG9jYXRpb24ucG9ydCArICIvZGF0YS8iICsgIj9Ub2tlbj0iICsgZ2V0Q29va2llKCJUb2tlbiIpKTsNCiAgd3Mub25vcGVuID0gZnVuY3Rpb24oKSB7DQogICAgY29uc29sZS5sb2coZGF0YSkNCiAgICB3cy5zZW5kKEpTT04uc3RyaW5naWZ5KGRhdGEpKTsNCiAgfQ0KDQogIHdzLm9ubWVzc2FnZSA9IGZ1bmN0aW9uIChlKSB7DQogICAgdmFyIHJlc3BvbnNlID0gSlNPTi5wYXJzZShlLmRhdGEpOw0KICAgIGNvbnNvbGUubG9nKHJlc3BvbnNlKTsNCiAgICANCiAgICBpZiAocmVzcG9uc2UuaGFzT3duUHJvcGVydHkoImNsaWVudEluZm8iKSkgew0KICAgICAgY3JlYXRlQ2xpbnRJbmZvKHJlc3BvbnNlWyJjbGllbnRJbmZvIl0pOw0KICAgIH0NCg0KICAgIGlmIChyZXNwb25zZS5oYXNPd25Qcm9wZXJ0eSgibG9nIikpIHsNCiAgICAgIGNyZWF0ZUNsaW50SW5mbyhyZXNwb25zZVsibG9nIl0pOw0KICAgIH0NCg0KICAgIGlmIChyZXNwb25zZS5oYXNPd25Qcm9wZXJ0eSgic3RhdHVzIikpIHsNCiAgICAgIGlmIChyZXNwb25zZVsic3RhdHVzIl0gPT0gZmFsc2UpIHsNCiAgICAgICAgYWxlcnQocmVzcG9uc2VbImVyciJdKQ0KICAgICAgICBpZihyZXNwb25zZS5oYXNPd25Qcm9wZXJ0eSgicmVsb2FkIikpIHsNCiAgICAgICAgICBsb2NhdGlvbi5yZWxvYWQoKTsNCiAgICAgICAgfQ0KICAgICAgICAvL2NoZWNrRXJyKHJlc3BvbnNlKQ0KICAgICAgICBjb25zb2xlLmxvZyhyZXNwb25zZSk7DQogICAgICAgIHVwZGF0ZVh0ZXZlU3RhdHVzKHJlc3BvbnNlKTsNCiAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbigpeyBzaG93TG9hZGluZ1NjcmVlbihmYWxzZSk7IH0sIDMwMCk7DQogICAgICAgIA0KICAgICAgICByZXR1cm4NCiAgICAgIH0NCg0KICAgICAgdXBkYXRlWHRldmVTdGF0dXMocmVzcG9uc2UpDQoNCiAgICAgIC8vY29uc29sZS5sb2coZGF0YVsiY21kIl0pOw0KICAgICAgc3dpdGNoKGRhdGFbImNtZCJdKSB7DQogICAgICAgIGNhc2UgInNhdmVVc2VyRGF0YSI6ICAgIGNyZWF0ZU1lbnUoKTsgYnJlYWs7DQogICAgICAgIGNhc2UgInNhdmVOZXdVc2VyIjogICAgIGNyZWF0ZU1lbnUoKTsgYnJlYWs7DQogICAgICAgIGNhc2UgInNhdmVGaWxlc1hNTFRWIjogIC8vY3JlYXRlTWVudSgpOyBicmVhazsNCiAgICAgICAgY2FzZSAic2F2ZUZpbGVzTTNVIjogICAgLy9jcmVhdGVNZW51KCk7IHJldHVybjsgYnJlYWs7DQogICAgICAgIGNhc2UgInNhdmVDb25maWciOiAgICANCiAgICAgICAgICBkYXRhID0gbmV3IE9iamVjdCgpOw0KICAgICAgICAgIGRhdGFbImNtZCJdID0gImNoZWNrVG9rZW4iOw0KICAgICAgICAgIHhUZVZlKGRhdGEpOw0KICAgICAgICAgIGJyZWFrOw0KDQogICAgICAgIGNhc2UgImVtcHR5TG9nIjogd3JpdGVMb2dJbkRpdigpOyBicmVhazsNCiAgICAgICAgY2FzZSAiZ2V0TG9nIjogIHJldHVybjsgYnJlYWs7DQogICAgICB9DQoNCg0KICAgIH0NCg0KICAgIGlmIChjb25maWdbImZpbGVzIl0gPT0gdW5kZWZpbmVkIHx8IGNvbmZpZ1siZmlsZXMiXS5sZW5ndGggPT0gMCkgew0KICAgICAgY3JlYXRlTWVudSgpOw0KICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoMTApLmNsaWNrKCkNCiAgICB9DQoNCiAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7IHNob3dMb2FkaW5nU2NyZWVuKGZhbHNlKTsgfSwgMCk7DQogIH0NCiAgDQp9DQoNCmZ1bmN0aW9uIHVwZGF0ZVh0ZXZlU3RhdHVzKHJlc3BvbnNlKSB7DQogIHZhciBrZXlzID0gZ2V0T2JqS2V5cyhyZXNwb25zZSk7DQogIC8vY29uc29sZS5sb2coa2V5cyk7DQoNCiAgZm9yICh2YXIgaSA9IDA7IGkgPCBrZXlzLmxlbmd0aDsgaSsrKSB7DQogICAgc3dpdGNoKGtleXNbaV0pIHsNCiAgICAgIGNhc2UgImFsZXJ0IjogICAgICAgICBhbGVydChyZXNwb25zZVtrZXlzW2ldXSk7IGJyZWFrOw0KICAgICAgY2FzZSAiY29uZmlnIjogICAgICAgIHNob3dDb25maWcocmVzcG9uc2Vba2V5c1tpXV0pOyBicmVhazsNCiAgICAgIGNhc2UgImxvZyI6ICAgICAgICAgICBwYXJzZUxvZ3MocmVzcG9uc2Vba2V5c1tpXV0pOyBicmVhazsNCiAgICAgIGNhc2UgIm15U3RyZWFtcyI6ICAgICBzaG93TXlTdHJlYW1zKHJlc3BvbnNlW2tleXNbaV1dKTsgYnJlYWs7DQogICAgICBjYXNlICJ4RVBHIjogICAgICAgICAgeEVQRyA9IHJlc3BvbnNlW2tleXNbaV1dOyBicmVhazsNCiAgICAgIGNhc2UgInVzZXJzIjogICAgICAgICB1c2VycyA9IHJlc3BvbnNlW2tleXNbaV1dOyBicmVhazsNCiAgICAgIGNhc2UgInRva2VuIjogICAgICAgICBkb2N1bWVudC5jb29raWUgPSAiVG9rZW49IiArIHJlc3BvbnNlW2tleXNbaV1dOyBicmVhazsNCiAgICAgIGNhc2UgInJlbG9hZCI6ICAgICAgICBsb2NhdGlvbi5yZWxvYWQoKTsgYnJlYWs7DQogICAgICBjYXNlICJvcGVuTGluayI6ICAgICAgd2luZG93LmxvY2F0aW9uID0gcmVzcG9uc2VbIm9wZW5MaW5rIl07IGJyZWFrOw0KICAgICAgLy9jYXNlICJ2ZXJzaW9uIjogdmVyc2lvbiA9IHJlc3BvbnNlW2tleXNbaV1dOyBicmVhazsNCiAgICB9DQogIH0NCn0NCg0KZnVuY3Rpb24gZ2V0VmFsdWVGcm9tUHJvdmlkZXJGaWxlKHhYbWx0dkZpbGUsIGZpbGVUeXBlLCBrZXkpIHsNCg0KICB2YXIgZmlsZUlEID0geFhtbHR2RmlsZS5zdWJzdHJpbmcoMCwgeFhtbHR2RmlsZS5sYXN0SW5kZXhPZignLicpKQ0KDQogIGlmIChjb25maWdbImZpbGVzIl1bZmlsZVR5cGVdLmhhc093blByb3BlcnR5KGZpbGVJRCkgPT0gdHJ1ZSkgew0KICAgIHZhciBkYXRhID0gY29uZmlnWyJmaWxlcyJdW2ZpbGVUeXBlXVtmaWxlSURdOw0KICAgIHJldHVybiBkYXRhW2tleV0NCiAgfQ0KDQp9DQoNCg0KDQoNCg==" + webUI["html/js/users.js"] = "ZnVuY3Rpb24gb3BlblVzZXJzKGVsbSkgew0KICBjb2xvbW5Tb3J0ID0gMDsNCg0KICB2YXIgbmV3RGl2ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNldHRpbmdzIik7DQogIA0KICB2YXIgbmV3RW50cnkgPSBuZXcgT2JqZWN0KCk7DQogIG5ld0VudHJ5WyJfZWxlbWVudCJdICA9ICJIUiI7DQogIG5ld0Rpdi5hcHBlbmRDaGlsZChjcmVhdGVFbGVtZW50KG5ld0VudHJ5KSk7DQoNCiAgdmFyIG5ld0VudHJ5ID0gbmV3IE9iamVjdCgpOw0KICBuZXdFbnRyeVsiX2VsZW1lbnQiXSAgPSAiSU5QVVQiOw0KICBuZXdFbnRyeVsidHlwZSJdID0gImJ1dHRvbiI7DQogIG5ld0VudHJ5WyJjbGFzcyJdID0gImJ1dHRvbiI7DQogIG5ld0VudHJ5WyJ2YWx1ZSJdID0gIk5ldyI7DQogIG5ld0VudHJ5WyJvbmNsaWNrIl0gPSAidXNlckRldGFpbCgwKSI7DQogIG5ld0Rpdi5hcHBlbmRDaGlsZChjcmVhdGVFbGVtZW50KG5ld0VudHJ5KSk7DQoNCiAgdmFyIGRpdiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzZXR0aW5ncyIpOw0KDQogICAvLyBCdWlsZCB0YWJsZQ0KICB2YXIgbmV3VGFibGUgPSBuZXcgT2JqZWN0KCk7DQogIG5ld1RhYmxlWyJfZWxlbWVudCJdICA9ICJUQUJMRSI7DQogIG5ld1RhYmxlWyJpZCJdICAgICAgICA9ICJpZF9tYXBwaW5nIjsNCiAgbmV3VGFibGVbImNsYXNzIl0gICAgID0gInRhYmxlLW1hcHBpbmciOw0KICBkaXYuYXBwZW5kQ2hpbGQoY3JlYXRlRWxlbWVudChuZXdUYWJsZSkpOw0KDQogIHNldFRpbWVvdXQoZnVuY3Rpb24oKXsgDQogICAgY3JlYXRlVXNlcnNUYWJsZSgpOyANCiAgfSwgMTApOw0KfQ0KDQpmdW5jdGlvbiBjcmVhdGVVc2Vyc1RhYmxlKCkgew0KICB2YXIgdGFibGUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiaWRfbWFwcGluZyIpOw0KICB0YWJsZS5pbm5lckhUTUwgPSAiIjsNCiAgdmFyIG5ld1RSID0gbmV3IE9iamVjdCgpOw0KICBuZXdUUlsiX2VsZW1lbnQiXSA9ICJUUiI7DQogIG5ld1RSWyJjbGFzcyJdICAgID0gInRhYmxlLW1hcHBpbmctaGVhZGVyIjsNCiAgdGFibGUuYXBwZW5kQ2hpbGQoY3JlYXRlRWxlbWVudChuZXdUUikpOw0KDQogIHZhciB0ciA9IHRhYmxlLmxhc3RDaGlsZDsNCiAgdmFyIHRySGVhZGxpbmVzID0gbmV3IEFycmF5KCJVc2VybmFtZSIsICJQYXNzd29yZCIsICJXRUIiLCAiUE1TIiwgIk0zVSIsICJYTUwiLCAiQVBJIikNCg0KICBmb3IgKHZhciBpID0gMDsgaSA8IHRySGVhZGxpbmVzLmxlbmd0aDsgaSsrKSB7DQogICAgdmFyIG5ld1REID0gbmV3IE9iamVjdCgpOw0KICAgIG5ld1REWyJfZWxlbWVudCJdID0gIlREIjsNCiAgICBuZXdURFsiX3RleHQiXSAgICA9IHRySGVhZGxpbmVzW2ldOw0KICAgIHRyLmFwcGVuZENoaWxkKGNyZWF0ZUVsZW1lbnQobmV3VEQpKTsNCiAgfQ0KDQoNCiAgLy8gU29ydCB1c2Vycw0KICB2YXIgdXNlcklkcyA9IGdldE9iaktleXModXNlcnMpOw0KDQogIHZhciB1c2VyT2JqID0gbmV3IE9iamVjdCgpOw0KDQogIGZvciAodmFyIGkgPSAwOyBpIDwgdXNlcklkcy5sZW5ndGg7IGkrKykgew0KICAgIHZhciB1c2VybmFtZSA9IHVzZXJzW3VzZXJJZHNbaV1dWyJkYXRhIl1bInVzZXJuYW1lIl07DQogICAgdXNlck9ialt1c2VybmFtZV0gPSB1c2VySWRzW2ldOw0KICB9DQoNCiAgdmFyIGFsbFVzZXJzID0gZ2V0T2JqS2V5cyh1c2VyT2JqKTsNCiAgYWxsVXNlcnMuc29ydCgpOw0KICAvLyAtLQ0KDQogIGZvciAodmFyIGkgPSAwOyBpIDwgYWxsVXNlcnMubGVuZ3RoOyBpKyspIHsNCiAgICB2YXIgdGFibGUgICAgID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImlkX21hcHBpbmciKTsNCiAgICB2YXIgdXNlcklEICAgID0gdXNlck9ialthbGxVc2Vyc1tpXV07DQogICAgdmFyIHVzZXJuYW1lICA9IGFsbFVzZXJzW2ldOw0KICAgIHZhciBpdGVtICAgICAgPSB1c2Vyc1t1c2VySURdWyJkYXRhIl07DQoNCiAgICAvLyBDcmVhdGUgVFINCiAgICB2YXIgbmV3VFIgPSBuZXcgT2JqZWN0KCk7DQogICAgbmV3VFJbIl9lbGVtZW50Il0gICAgICAgPSAiVFIiOw0KICAgIG5ld1RSWyJjbGFzcyJdICAgICAgICAgID0gIiI7DQogICAgbmV3VFJbImlkIl0gICAgICAgICAgICAgPSB1c2VySUQ7DQogICAgbmV3VFJbIm9uY2xpY2siXSAgICAgICAgPSAnamF2YXNjcmlwdDogdXNlckRldGFpbCgiJyArIHVzZXJJRCArICciKTsnOw0KICAgIHRhYmxlLmFwcGVuZENoaWxkKGNyZWF0ZUVsZW1lbnQobmV3VFIpKTsNCg0KICAgIHZhciB0ciA9IHRhYmxlLmxhc3RDaGlsZDsNCg0KICAgIC8vIENyZWF0ZSB1c2VybmFtZSBURA0KICAgIHZhciBuZXdURCA9IG5ldyBPYmplY3QoKTsNCiAgICBuZXdURFsiX2VsZW1lbnQiXSA9ICJQIjsNCiAgICBuZXdURFsiX3RleHQiXSAgICA9IHVzZXJuYW1lOw0KICAgIGNyZWF0ZU5ld1REKG5ld1RELCB0cik7DQoNCiAgICAvLyBDcmVhdGUgcGFzc3dvcmQgVEQNCiAgICB2YXIgbmV3VEQgPSBuZXcgT2JqZWN0KCk7DQogICAgbmV3VERbIl9lbGVtZW50Il0gPSAiUCI7DQogICAgbmV3VERbIl90ZXh0Il0gICAgPSAiLi4uLi4iOw0KICAgIGNyZWF0ZU5ld1REKG5ld1RELCB0cik7DQoNCiAgICAvLyBDcmVhdGUgd2ViIGFjY2Vzcw0KICAgIHZhciBuZXdURCA9IG5ldyBPYmplY3QoKTsNCiAgICBuZXdURFsiX2VsZW1lbnQiXSA9ICJQIjsNCiAgICBzd2l0Y2goaXRlbVsiYXV0aGVudGljYXRpb24ud2ViIl0pew0KICAgICAgY2FzZSB0cnVlOiBuZXdURFsiX3RleHQiXSAgICA9ICLinJMiOyBicmVhazsNCiAgICAgIGRlZmF1bHQ6ICAgbmV3VERbIl90ZXh0Il0gICAgPSAiLSI7IGJyZWFrOw0KICAgIH0NCiAgICBjcmVhdGVOZXdURChuZXdURCwgdHIpOw0KDQogICAgLy8gQ3JlYXRlIFBNUyBhY2Nlc3MNCiAgICB2YXIgbmV3VEQgPSBuZXcgT2JqZWN0KCk7DQogICAgbmV3VERbIl9lbGVtZW50Il0gPSAiUCI7DQogICAgc3dpdGNoKGl0ZW1bImF1dGhlbnRpY2F0aW9uLnBtcyJdKXsNCiAgICAgIGNhc2UgdHJ1ZTogbmV3VERbIl90ZXh0Il0gICAgPSAi4pyTIjsgYnJlYWs7DQogICAgICBkZWZhdWx0OiAgIG5ld1REWyJfdGV4dCJdICAgID0gIi0iOyBicmVhazsNCiAgICB9DQogICAgY3JlYXRlTmV3VEQobmV3VEQsIHRyKTsNCg0KICAgIC8vIENyZWF0ZSBNM1UgYWNjZXNzDQogICAgdmFyIG5ld1REID0gbmV3IE9iamVjdCgpOw0KICAgIG5ld1REWyJfZWxlbWVudCJdID0gIlAiOw0KICAgIHN3aXRjaChpdGVtWyJhdXRoZW50aWNhdGlvbi5tM3UiXSl7DQogICAgICBjYXNlIHRydWU6IG5ld1REWyJfdGV4dCJdICAgID0gIuKckyI7IGJyZWFrOw0KICAgICAgZGVmYXVsdDogICBuZXdURFsiX3RleHQiXSAgICA9ICItIjsgYnJlYWs7DQogICAgfQ0KICAgIGNyZWF0ZU5ld1REKG5ld1RELCB0cik7DQoNCiAgICAvLyBDcmVhdGUgWE1MVFYgYWNjZXNzDQogICAgdmFyIG5ld1REID0gbmV3IE9iamVjdCgpOw0KICAgIG5ld1REWyJfZWxlbWVudCJdID0gIlAiOw0KICAgIHN3aXRjaChpdGVtWyJhdXRoZW50aWNhdGlvbi54bWwiXSl7DQogICAgICBjYXNlIHRydWU6IG5ld1REWyJfdGV4dCJdICAgID0gIuKckyI7IGJyZWFrOw0KICAgICAgZGVmYXVsdDogICBuZXdURFsiX3RleHQiXSAgICA9ICItIjsgYnJlYWs7DQogICAgfQ0KICAgIGNyZWF0ZU5ld1REKG5ld1RELCB0cik7DQoNCiAgICAvLyBDcmVhdGUgQVBJIGFjY2Vzcw0KICAgIHZhciBuZXdURCA9IG5ldyBPYmplY3QoKTsNCiAgICBuZXdURFsiX2VsZW1lbnQiXSA9ICJQIjsNCg0KICAgIHN3aXRjaChpdGVtWyJhdXRoZW50aWNhdGlvbi5hcGkiXSl7DQogICAgICBjYXNlIHRydWU6IG5ld1REWyJfdGV4dCJdICAgID0gIuKckyI7IGJyZWFrOw0KICAgICAgZGVmYXVsdDogICBuZXdURFsiX3RleHQiXSAgICA9ICItIjsgYnJlYWs7DQogICAgfQ0KICAgIGNyZWF0ZU5ld1REKG5ld1RELCB0cik7DQoNCiAgfQ0KDQogIC8vIHVzYWdlIEluZm8gIA0KICB2YXIgZGl2ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNldHRpbmdzIik7DQogIHN3aXRjaChtZW51W2FjdGl2ZU1lbnUuaWRdLmhhc093blByb3BlcnR5KCJfdXNhZ2UiKSkgew0KICAgIGNhc2UgdHJ1ZTogDQogICAgICB2YXIgdXNhZ2VJdGVtID0gbmV3IE9iamVjdCgpOw0KICAgICAgdXNhZ2VJdGVtWyJfZWxlbWVudCJdID0gIlBSRSINCiAgICAgIHVzYWdlSXRlbVsiX3RleHQiXSAgICA9IG1lbnVbYWN0aXZlTWVudS5pZF1bIl91c2FnZSJdOw0KDQogICAgICB2YXIgbmV3SFIgPSBuZXcgT2JqZWN0KCk7DQogICAgICBuZXdIUlsiX2VsZW1lbnQiXSA9ICJIUiINCiAgICAgIGRpdi5hcHBlbmRDaGlsZChjcmVhdGVFbGVtZW50KG5ld0hSKSk7DQogICAgICBkaXYuYXBwZW5kQ2hpbGQoY3JlYXRlRWxlbWVudCh1c2FnZUl0ZW0pKTsNCiAgfQ0KDQogIHNvcnRUYWJsZSgwKTsNCn0NCg0KZnVuY3Rpb24gdXNlckRldGFpbCh1c2VySUQpIHsNCiAgc2hvd1BvcFVwRWxlbWVudCgndXNlci1kZXRhaWwnKTsNCiAgc2V0VGltZW91dChmdW5jdGlvbigpeyANCiAgICBzaG93RWxlbWVudCgicG9wdXAiLCB0cnVlKTsNCiAgfSwgMTApOw0KICB2YXIgZGVmYXVsdFVzZXI7DQoNCiAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNhdmVVc2VyRGV0YWlsIikuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IHNhdmVVc2VyRGV0YWlsKCInICsgdXNlcklEICsgJyIsIGZhbHNlKScpOw0KICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZGVsZXRlVXNlckRldGFpbCIpLnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBzYXZlVXNlckRldGFpbCgiJyArIHVzZXJJRCArICciLCB0cnVlKScpOw0KDQogIHZhciBkYXRhID0gbmV3IE9iamVjdCgpOw0KICANCiAgc3dpdGNoKHVzZXJJRCkgew0KICAgIGNhc2UgMDogICAvLyBOZXcgVXNlcg0KICAgICAgZGF0YVsidXNlcm5hbWUiXSA9ICIiOw0KICAgICAgZGF0YVsiYXV0aGVudGljYXRpb24ud2ViIl0gPSBmYWxzZTsNCiAgICAgIGRhdGFbImF1dGhlbnRpY2F0aW9uLnBtcyJdID0gdHJ1ZTsNCiAgICAgIGRhdGFbImF1dGhlbnRpY2F0aW9uLnhtbCJdID0gdHJ1ZTsNCiAgICAgIGRhdGFbImF1dGhlbnRpY2F0aW9uLm0zdSJdID0gZmFsc2U7DQogICAgICBkYXRhWyJhdXRoZW50aWNhdGlvbi5hcGkiXSA9IGZhbHNlOw0KICAgICAgZGF0YVsiZGVmYXVsdFVzZXIiXSAgICAgICAgPSBmYWxzZTsNCiAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKXsgDQogICAgICAgIHNob3dFbGVtZW50KCJkZWxldGVVc2VyRGV0YWlsIiwgZmFsc2UpDQogICAgICB9LCAxKTsNCg0KICAgICAgYnJlYWs7IA0KICAgIA0KICAgIGRlZmF1bHQ6IA0KICAgICAgZGF0YSA9IHVzZXJzW3VzZXJJRF1bImRhdGEiXTsgDQogICAgICBzaG93RWxlbWVudCgiZGVsZXRlVXNlckRldGFpbCIsIHRydWUpICAgDQogICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZGVsZXRlVXNlckRldGFpbCIpLmNsYXNzTmFtZSA9ICJkZWxldGUiOw0KICAgDQogICAgICBicmVhaw0KICB9DQogIA0KDQogIHZhciB1c2VybmFtZSA9IGRhdGFbInVzZXJuYW1lIl07DQogIGRhdGFbInBhc3N3b3JkIl0gPSAiIjsNCiAgZGF0YVsiY29uZmlybSJdID0gIiI7DQoNCiAgdmFyIGtleXMgPSBnZXRPYmpLZXlzKGRhdGEpOw0KICBkZWZhdWx0VXNlciA9IGRhdGFbImRlZmF1bHRVc2VyIl07DQogIGlmIChkYXRhLmhhc093blByb3BlcnR5KCJkZWZhdWx0VXNlciIpKSB7DQogICAgZGVmYXVsdFVzZXIgPSBKU09OLnBhcnNlKGRhdGFbImRlZmF1bHRVc2VyIl0pOw0KICB9DQoNCiAgZm9yICh2YXIgaSA9IDA7IGkgPCBrZXlzLmxlbmd0aDsgaSsrKSB7DQoNCiAgICBpZihkb2N1bWVudC5nZXRFbGVtZW50QnlJZChrZXlzW2ldKSl7DQogICAgICB2YXIgdGQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChrZXlzW2ldKQ0KICAgIH0gZWxzZSB7DQogICAgICB2YXIgdGQgPSB1bmRlZmluZWQ7DQogICAgfQ0KDQogICAgdmFyIG5ld0l0ZW0gPSBuZXcgT2JqZWN0KCk7DQoNCiAgICBuZXdJdGVtWyJfZWxlbWVudCJdID0gIklOUFVUIjsNCiAgICANCiAgICBuZXdJdGVtWyJ2YWx1ZSJdICAgID0gZGF0YVtrZXlzW2ldXTsNCiAgICBuZXdJdGVtWyJuYW1lIl0gICAgID0ga2V5c1tpXTsNCg0KDQoNCg0KDQogICAgc3dpdGNoKGtleXNbaV0uaW5kZXhPZigiYXV0aGVudGljYXRpb24iKSkgew0KICAgICAgY2FzZSAtMTogDQogICAgICAgIGlmIChrZXlzW2ldID09ICJwYXNzd29yZCIgfHwga2V5c1tpXSA9PSAiY29uZmlybSIpIHsNCiAgICAgICAgICBuZXdJdGVtWyJ0eXBlIl0gICAgID0gInBhc3N3b3JkIjsNCiAgICAgICAgfSBlbHNlIHsNCiAgICAgICAgICBuZXdJdGVtWyJ0eXBlIl0gICAgID0gInRleHQiOw0KICAgICAgICB9DQogICAgICAgIGJyZWFrOw0KDQogICAgICBkZWZhdWx0OiANCiAgICAgICAgbmV3SXRlbVsidHlwZSJdICAgICA9ICJjaGVja2JveCI7DQogICAgICAgIA0KICAgICAgICBpZiAoa2V5c1tpXSA9PSAiYXV0aGVudGljYXRpb24ud2ViIiAmJiBkZWZhdWx0VXNlciA9PSB0cnVlKSB7DQogICAgICAgICAgbmV3SXRlbVsib25jbGljayJdID0gInJldHVybiBmYWxzZSI7IA0KICAgICAgICB9DQogICAgICAgIA0KICAgICAgICBpZiAoZGF0YVtrZXlzW2ldXSA9PSB0cnVlKSB7ICAgICAgICAgIA0KICAgICAgICAgIG5ld0l0ZW1bImNoZWNrZWQiXSAgPSBkYXRhW2tleXNbaV1dOyAgDQogICAgICAgIH0NCiAgICAgICAgDQogICAgICAgIGJyZWFrOw0KICAgIH0NCg0KICAgIHN3aXRjaChrZXlzW2ldKSB7DQogICAgICBjYXNlICJkZWZhdWx0VXNlciI6IA0KICAgICAgICAvL2lmIChkYXRhW2tleXNbaV1dID09IHRydWUpIHsNCiAgICAgICAgbmV3SXRlbVsidHlwZSJdICAgICA9ICJoaWRkZW4iOw0KICAgICAgICAvL30NCiAgICB9DQoNCg0KICAgIGlmICh0ZCAhPSB1bmRlZmluZWQpIHsNCiAgICAgIHRkLmlubmVySFRNTCA9ICIiOw0KICAgICAgdmFyIGVsZW1lbnQgPSBjcmVhdGVOZXdFbGVtZW50KG5ld0l0ZW0pDQogICAgICAvL2NvbnNvbGUubG9nKGVsZW1lbnQpOw0KICAgICAgdGQuYXBwZW5kQ2hpbGQoZWxlbWVudCk7DQogICAgfQ0KDQoNCiAgfQ0KDQoNCiAgaWYgKGRlZmF1bHRVc2VyID09IHRydWUpIHsNCiAgICBzaG93RWxlbWVudCgiZGVsZXRlVXNlckRldGFpbCIsIGZhbHNlKQ0KICB9IGVsc2Ugew0KICAgIHNob3dFbGVtZW50KCJkZWxldGVVc2VyRGV0YWlsIiwgdHJ1ZSkNCiAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZGVsZXRlVXNlckRldGFpbCIpLmNsYXNzTmFtZSA9ICJkZWxldGUiOw0KICB9DQoNCn0NCg0KZnVuY3Rpb24gc2F2ZVVzZXJEZXRhaWwodXNlcklELCBkZWxldGVVc2VyKSB7DQoNCiAgdmFyIGlucHV0cyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ1c2VyLWRldGFpbC10YWJsZSIpLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJJTlBVVCIpOw0KDQogIHZhciBuZXdVc2VyRGF0YSA9IG5ldyBPYmplY3QoKTsNCiAgZm9yICh2YXIgaSA9IDA7IGkgPCBpbnB1dHMubGVuZ3RoOyBpKyspIHsNCiAgICBzd2l0Y2goaW5wdXRzW2ldLnR5cGUpIHsNCiAgICAgIGNhc2UgImNoZWNrYm94IjogIG5ld1VzZXJEYXRhW2lucHV0c1tpXS5uYW1lXSA9IGlucHV0c1tpXS5jaGVja2VkOyBicmVhazsNCiAgICAgIGRlZmF1bHQ6ICAgICAgICAgIG5ld1VzZXJEYXRhW2lucHV0c1tpXS5uYW1lXSA9IGlucHV0c1tpXS52YWx1ZTsgYnJlYWs7DQogICAgfQ0KICAgIA0KICAgIGlmIChpbnB1dHNbInVzZXJuYW1lIl0udmFsdWUubGVuZ3RoID09IDApIHsNCiAgICAgIGlucHV0c1sidXNlcm5hbWUiXS5zdHlsZS5ib3JkZXIgPSAic29saWQgMXB4IHJlZCI7DQogICAgICByZXR1cm47DQogICAgfQ0KDQogICAgc3dpdGNoKHVzZXJJRCkgew0KICAgICAgY2FzZSAiMCI6IA0KICAgICAgICBpZiAoaW5wdXRzWyJwYXNzd29yZCJdLnZhbHVlLmxlbmd0aCA9PSAwKSB7DQogICAgICAgICAgY29uc29sZS5sb2coaW5wdXRzWyJwYXNzd29yZCJdLnZhbHVlLmxlbmd0aCk7DQogICAgICAgICAgaW5wdXRzWyJwYXNzd29yZCJdLnN0eWxlLmJvcmRlciA9ICJzb2xpZCAxcHggcmVkIjsNCiAgICAgICAgICByZXR1cm4NCiAgICAgICAgfQ0KICAgICAgICBicmVhazsNCiAgICB9DQoNCiAgICBpZiAoaW5wdXRzWyJwYXNzd29yZCJdLnZhbHVlLmxlbmd0aCA+IDApIHsNCiAgICAgIGlmIChpbnB1dHNbInBhc3N3b3JkIl0udmFsdWUgIT0gaW5wdXRzWyJjb25maXJtIl0udmFsdWUpIHsNCiAgICAgICAgaW5wdXRzWyJwYXNzd29yZCJdLnN0eWxlLmJvcmRlciA9ICJzb2xpZCAxcHggcmVkIjsNCiAgICAgICAgaW5wdXRzWyJjb25maXJtIl0uc3R5bGUuYm9yZGVyID0gInNvbGlkIDFweCByZWQiOw0KICAgICAgICByZXR1cm47DQogICAgICB9DQogICAgfQ0KICAgIA0KICB9DQoNCiAgdmFyIGRhdGEgPSBuZXcgT2JqZWN0KCk7DQogIA0KICBzd2l0Y2godXNlcklEKSB7DQogICAgY2FzZSAiMCI6DQogICAgICAvL2RhdGEgPSBuZXdVc2VyRGF0YQ0KICAgICAgZGF0YVsidXNlckRhdGEiXSAgPSBuZXdVc2VyRGF0YQ0KICAgICAgZGF0YVsiY21kIl0gICAgICAgPSAic2F2ZU5ld1VzZXIiOyBicmVhazsNCiAgICANCiAgICBkZWZhdWx0OiAgDQogICAgICB2YXIgdGhpc1VzZXIgICAgICA9IG5ldyBPYmplY3QoKTsNCiAgICAgIA0KICAgICAgaWYgKGRlbGV0ZVVzZXIgPT0gdHJ1ZSkgew0KICAgICAgICBpZiAoY29uZmlybSgnRGVsZXRlIHRoZSBzZWxlY3RlZCB1c2VyPycpKSB7DQogICAgICAgICAgZGF0YVsiZGVsZXRlVXNlciJdID0gdHJ1ZTsNCiAgICAgICAgfSBlbHNlIHsNCiAgICAgICAgICBzaG93RWxlbWVudCgicG9wdXAiLCBmYWxzZSk7DQogICAgICAgICAgcmV0dXJuDQogICAgICAgIH0NCiAgICAgIH0NCiAgICAgIA0KICAgICAgdGhpc1VzZXJbdXNlcklEXSAgPSBuZXdVc2VyRGF0YTsNCg0KICAgICAgZGF0YVsidXNlckRhdGEiXSA9IHRoaXNVc2VyOw0KICAgICAgZGF0YVsiY21kIl0gPSAic2F2ZVVzZXJEYXRhIjsgYnJlYWs7DQogIH0NCiAgDQogIHhUZVZlKGRhdGEpOw0KICAvL2NyZWF0ZVVzZXJzVGFibGUoKQ0KICBzaG93RWxlbWVudCgicG9wdXAiLCBmYWxzZSk7DQp9DQoNCg0K" + webUI["html/img/stream-limit.jpg"] = "/9j/4AAQSkZJRgABAQAAAQABAAD/4gJoSUNDX1BST0ZJTEUAAQEAAAJYbGNtcwQwAABtbnRyUkdCIFhZWiAH4wAFABcAFgAuAAphY3NwQVBQTAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA9tYAAQAAAADTLWxjbXMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAtkZXNjAAABCAAAAEBjcHJ0AAABSAAAAE53dHB0AAABmAAAABRjaGFkAAABrAAAACxyWFlaAAAB2AAAABRiWFlaAAAB7AAAABRnWFlaAAACAAAAABRyVFJDAAACFAAAACBnVFJDAAACFAAAACBiVFJDAAACFAAAACBjaHJtAAACNAAAACRtbHVjAAAAAAAAAAEAAAAMZW5VUwAAACQAAAAcAHMAUgBHAEIAIABJAEUAQwA2ADEAOQA2ADYALQAyAC4AMQAAbWx1YwAAAAAAAAABAAAADGVuVVMAAAAyAAAAHABOAG8AIABjAG8AcAB5AHIAaQBnAGgAdAAsACAAdQBzAGUAIABmAHIAZQBlAGwAeQAAAABYWVogAAAAAAAA9tYAAQAAAADTLXNmMzIAAAAAAAEMSgAABeP///MqAAAHmwAA/Yf///ui///9owAAA9gAAMCUWFlaIAAAAAAAAG+UAAA47gAAA5BYWVogAAAAAAAAJJ0AAA+DAAC2vlhZWiAAAAAAAABipQAAt5AAABjecGFyYQAAAAAAAwAAAAJmZgAA8qcAAA1ZAAAT0AAACltjaHJtAAAAAAADAAAAAKPXAABUewAATM0AAJmaAAAmZgAAD1z/2wBDAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQH/2wBDAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQH/wAARCAQ4B4ADASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD/AD/6KKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigD9PvBf/AARa/wCCrXxF8HeE/iD4G/YM/aL8UeCfHfhrQvGXg/xNpHgia50nxF4W8T6Xa634f13TLkTgXGn6vpN9aahZTgAS21xFIAN1dL/w4o/4LB/9I7/2m/8AwgZ//kiv9b3/AIJp/wDKOX9gH/syf9lX/wBUV4Dr7YoA/wAWr/hxR/wWD/6R3/tN/wDhAz//ACRR/wAOKP8AgsH/ANI7/wBpv/wgZ/8A5Ir/AGlaKAP8Wr/hxR/wWD/6R3/tN/8AhAz/APyRR/w4o/4LB/8ASO/9pv8A8IGf/wCSK/2laKAP8Wr/AIcUf8Fg/wDpHf8AtN/+EDP/APJFH/Dij/gsH/0jv/ab/wDCBn/+SK/2laKAP8Wr/hxR/wAFg/8ApHf+03/4QM//AMkUf8OKP+Cwf/SO/wDab/8ACBn/APkiv9pWigD/ABav+HFH/BYP/pHf+03/AOEDP/8AJFH/AA4o/wCCwf8A0jv/AGm//CBn/wDkiv8AaVooA/xav+HFH/BYP/pHf+03/wCEDP8A/JFH/Dij/gsH/wBI7/2m/wDwgZ//AJIr/aVooA/xav8AhxR/wWD/AOkd/wC03/4QM/8A8kUf8OKP+Cwf/SO/9pv/AMIGf/5Ir/aVooA/xav+HFH/AAWD/wCkd/7Tf/hAz/8AyRR/w4o/4LB/9I7/ANpv/wAIGf8A+SK/2laKAP8AFq/4cUf8Fg/+kd/7Tf8A4QM//wAkUf8ADij/AILB/wDSO/8Aab/8IGf/AOSK/wBpWigD/Fq/4cUf8Fg/+kd/7Tf/AIQM/wD8kUf8OKP+Cwf/AEjv/ab/APCBn/8Akiv9pWigD/Fq/wCHFH/BYP8A6R3/ALTf/hAz/wDyRR/w4o/4LB/9I7/2m/8AwgZ//kiv9pWigD/E88f/APBGT/gqj8K/AnjT4nfEX9hL9ofwf8P/AIdeFPEPjnxz4t1zwTNaaL4X8IeE9Ju9d8SeIdXujORbaZo2j2F5qN9OQRDa20shB24r8yq/28f+Ctf/ACit/wCClX/ZhH7Xv/rP/wAQK/xDqACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooA+j/ANmj9kL9pr9snxbrvgL9lr4K+Ovjn408M+HH8X6/4Y+H2ljWdZ0vwvFqen6NLr1zYrNHMNMh1XVtL0+a7RWihu9RsoZSj3MIf7U/4cUf8Fg/+kd/7Tf/AIQM/wD8kV2v/BAD9sj/AIYi/wCCrf7K/wATNW1X+yvh98QPFw+AHxWklm+z6f8A8IJ8aWg8HjU9Xl3Ls0rwd4wufCPxAuz82B4RQlJACjf7MFAH+LV/w4o/4LB/9I7/ANpv/wAIGf8A+SKP+HFH/BYP/pHf+03/AOEDP/8AJFf7StFAH+LV/wAOKP8AgsH/ANI7/wBpv/wgZ/8A5Io/4cUf8Fg/+kd/7Tf/AIQM/wD8kV/tK0UAf4tX/Dij/gsH/wBI7/2m/wDwgZ//AJIo/wCHFH/BYP8A6R3/ALTf/hAz/wDyRX+0rRQB/gx/HT4CfGb9mT4n+Ivgt+0B8NfFnwj+K3hJNHl8SeA/G2lzaP4i0iLxBomneI9Emu7KbJWLU9C1bTtTs5UZ45rW7idWySB5HX9yX/B69+yL/wAIr8eP2V/22/D2meXpfxb8Da18BfiPd2sOy3i8afDG9k8U+BdR1OXbiXVPFHg/xZrukWzB2P8AZnw0jjZIxEjS/wANtABRRRQAUUUUAFFFFABRRRQAUUUUAPRHldIokeSSR1SONFLu7uQqIiKCzOzEKqqCWJAAJNfq8n/BCv8A4LBSIki/8E7/ANp3a6q67vh/dI21gGG5HnV0bB5V1VlPDAEEVv8A/BBj9kX/AIbU/wCCrf7Ivwo1PTP7T8DeGPiFb/Gz4nRTQ+fpzeAvgpE3xDv9L1hQrEaZ4w1nRdD8BSkAFp/FdvH5kO/zo/8AZ4oA/wAWr/hxR/wWD/6R3/tN/wDhAz//ACRR/wAOKP8AgsH/ANI7/wBpv/wgZ/8A5Ir/AGlaKAP8Wr/hxR/wWD/6R3/tN/8AhAz/APyRR/w4o/4LB/8ASO/9pv8A8IGf/wCSK/2laKAP8Wr/AIcUf8Fg/wDpHf8AtN/+EDP/APJFH/Dij/gsH/0jv/ab/wDCBn/+SK/2laKAP8Kz9p39iX9rL9i7UfCOkftV/AT4ifAfVPHtlq+o+DtO+IejjRb3xDp+gz2Ntq97p1s00k0lrY3GpWUEs7IkbSz+XGztHKI/lqv6F/8Ag5+/bI/4a5/4K2/HDTNF1X+0fh7+y5aaZ+y74KEU261GofDq61K8+KVz5UbG3N0fi9r3jnSTexl5bzSdE0USybLeCGD+eigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigD/cg/4Jp/8o5f2Af+zJ/2Vf8A1RXgOvtivif/AIJp/wDKOX9gH/syf9lX/wBUV4Dr7YoAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigD8+P8AgrX/AMorf+ClX/ZhH7Xv/rP/AMQK/wAQ6v8Abx/4K1/8orf+ClX/AGYR+17/AOs//ECv8Q6gAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAHI7xOkkbtHJGyvHIjFHR0IZXRlIZWVgGVlIIIBBBFf7Z//BIH9sRP28f+Cbv7J37St5qS6n4x8VfC/TPDXxTmMqvc/wDC3PhxNcfD/wCJdxdQ5Mtp/bPi7w3qfiLT7e4zK2jazplyHnhuIrib/Eur/QW/4Mm/2yPteh/tZfsE+JNV3T6PeaT+1D8KNPml3yNp2pDRvht8YrW381t0NrYahB8JtRtLK33Rtda5r980cUjzyzgH98VFFFABRRRQAUUUUAfhR/wcifsif8Ngf8Eif2ndD0vTP7T8dfAvSbH9p74ehYvPuINW+DCXur+MUs4FUzXF/qvwjvfiRoFhb25E819q9skazn/R5v8AHer/AH6NW0rTdd0rU9D1mxtdU0fWdPvNK1bTL6FLmy1HTdRtpLS+sby3kDRz2t3azS29xDIrJLFI6OCrEV/hv/8ABQv9lrUv2J/23/2ov2V9Riuo4Pgv8Y/GHhbwzPe7/tWqeAJdQbWfhrr83mfPu8R/D7VPDOvjcWO3Uh88n32APjeiiigAooooAKKKKACiiigAooooA/0D/wDgyU/ZE+z6T+19+3Xr+mYl1G70D9lz4Y6lJFtdbSwTSfif8YfKaRd0lvd3Vz8HreC4g2xifS9VtneSRHSD++mvyl/4Ih/sif8ADEf/AAS3/ZB+B2o6X/ZXjV/hhYfE/wCKEEsPlahH8S/jDNN8SfFmmaq21WnvfCl14ki8EpKw+Ww8M2MCExQxmv1aoAKKKKACiiigAr5A/b+/ao0X9iP9iv8AaZ/as1xrRk+Cfwi8V+LdCsr5gtrrfjk2R0j4c+GZWLKF/wCEq8f6n4a8NodwxJqqdeh+v6/ib/4PTP2yP+EA/Za/Z5/Yk8N6r5WvftCfEG7+LPxGtLWb98nww+Dogh8OaVqtvuA+weKviT4g03W9Nk2uWvvhfdrujEZEoB/nB+IfEGteLPEGueKvEup3eteIvE2san4g1/WL+Uz32ra1rN7PqOq6nezNzNd399cz3VzKeZJpXc8mseiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigD/cg/4Jp/8AKOX9gH/syf8AZV/9UV4Dr7Yr4n/4Jp/8o5f2Af8Asyf9lX/1RXgOvtigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAPz4/4K1/8orf+ClX/AGYR+17/AOs//ECv8Q6v9vH/AIK1/wDKK3/gpV/2YR+17/6z/wDECv8AEOoAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAr9V/+CJP7ZH/DCn/BT39k348anqv9leA2+Itp8Mvi1NNN5Onp8LPi3FJ8P/F+qaou5RPaeEbfXYPHcMLMB/aXhXT5R80Sg/lRRQB/v8UV+TP/AAQ5/bI/4bo/4JdfsnfG7VNV/tXx9p/w+tfhN8WpZZvO1Fvid8IJG8A+JNV1f5m8u/8AGUWi6d8QFjDECx8W2TgRh/LT9ZqACiiigAooooAK/wA07/g9I/ZE/wCFcftj/AD9sXQNM8jQP2lfhZdfD7xtd28O5H+KPwOnsbO31HUp1A8q41z4a+KvBmkaXDN808HgPUnhZ1tplh/0sa/nd/4Oi/2RP+Gq/wDgkT8cNZ0fS/7R8dfsuapoP7T/AITMUO64TS/ACahpXxSVp0Bnjsbf4ReJvHOuz26hoLi+0HS2nQG3iuLcA/yKaKKKACiiigAooooAKKKKACv02/4I3fsi/wDDcf8AwUy/ZC/Z3vtM/tXwfr3xX0nxh8TrWSLfaS/Cr4XQ3PxJ+IlleyMGhto9d8L+FtQ8NWk04MbaprWn2yxzz3EUEv5k1/eL/wAGTH7In9reP/2uf259f0zdZ+D9A0H9mf4Z6hND5sEmveK7jTviL8VprV3Gy21LQ9E0b4YWSTwlp207xnqVsWhgnkS5AP8AQzooooAKKKKACiiigAr/AB3f+DkD9sj/AIbN/wCCtf7SWvaRqv8Aanw9+BGpWv7MPw1aOf7RaJovwcudR0zxfd2E6MYLnT9d+LV/8RfEWm3dsPJuNM1axZJJ1VbiX/Ux/wCCnv7XVn+wl+wF+1T+1TLdW1trXws+E2vXHgJbsRtBe/FTxOYPBnwo02aKQMJbe/8AiN4h8MW16qxysti9zN5UixMp/wAQK+vr3U7281LUru5v9R1C6uL6/vryaS5u729u5XuLq7uriZnlnubieR5p5pXaSWV2d2ZmJIBVooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooA/sa/Z9/4PGv2mv2ffgJ8EPgJo37HXwJ8QaP8EPhD8NfhDpOv6n43+IFtqWt6b8NfBmi+DLHV9Qt7QfZbe+1K10WK9u4bb/R4riaSOH92q169/xG8ftWf9GRfs9/+F98R/8ACv4h6KAP7eP+I3j9qz/oyL9nv/wvviP/AIUf8RvH7Vn/AEZF+z3/AOF98R/8K/iHooA/t4/4jeP2rP8AoyL9nv8A8L74j/4Uf8RvH7Vn/RkX7Pf/AIX3xH/wr+IeigD+3j/iN4/as/6Mi/Z7/wDC++I/+FH/ABG8ftWf9GRfs9/+F98R/wDCv4h6KAP9GT/gmX/wdhftE/t2/t3fs3/skeLv2T/gt4E8N/G/xpf+F9W8XeHPGPjnUNb0O3tPCviHxCt1p9lqY+wXEzzaNFbslz8gimkYfOq1/cpX+NT/AMG73/KaX9gD/srmtf8AqtPHVf7K1ABRRRQAUUUUAFFFFAH8KH/BRT/g7X/aN/Yq/bf/AGl/2U/C37JXwT8a+HvgV8T9X8BaR4r8QeM/HVhrWu2emwWkqX+o2enD7Db3MhuWDx237oBRjqa+Lv8AiN4/as/6Mi/Z7/8AC++I/wDhX8/P/Ben/lMX/wAFDP8As4zxT/6R6XX5G0Af28f8RvH7Vn/RkX7Pf/hffEf/AAo/4jeP2rP+jIv2e/8AwvviP/hX8Q9FAH9vH/Ebx+1Z/wBGRfs9/wDhffEf/Cj/AIjeP2rP+jIv2e//AAvviP8A4V/EPRQB/bx/xG8ftWf9GRfs9/8AhffEf/Cj/iN4/as/6Mi/Z7/8L74j/wCFfxD0UAf2DftPf8Hgv7S37T37Nn7QX7Nmv/sf/AzwxoX7QXwU+KXwU1nxLpHjbx9d6t4f0r4peCNc8D6hremWt6PsdzqGl2muS31nBdf6NNcQRxz/ALtmr+PmiigAooooAKKKKACiiigAoor6X/Zy/Yz/AGsv2vNdbw7+zD+zn8Y/jpqMM6W1/J8NvAHiLxLo+iO4Uq/iPxHY2L+HvDNth03XniDVNNtFMkYacGRAwB80UV/Tx8Bf+DRn/gsL8YPsVz488E/BT9mvS7ny5nn+Mvxh0fVdSS0bDmRND+Ctl8W72K8aP/V6fqx0iZZiIb1rE+Y8f6wfDn/gx18YXIt7j4t/8FEfDejMoRrvSfhz+zpqniYSk48yK38Q+Jvi54SMAXnZPJ4Yud2But0yQAD+Ceiv9Krw1/wZJ/sN2trAnjD9rz9q7Xb1QPtNx4as/hD4UtZTxkwWeqeBfGctuDzgSX10RkcnHPqdh/wZXf8ABLa3iK33x2/bx1Cdl2mT/hZ3wDtIkb+/FDF+zOzBh6TTTr0yvqAf5gVFf6b+qf8ABlF/wTWm3f2L+0l+3Hp5Odv9p+MvgLq4X6i1/Z80QsB9VPv3r5n+IH/Bjz8Hb/z2+Ff/AAUF+JfhP7zW0PxA+A3hb4hdOUjnuvDnxH+GX3uFaeO0+TO8W748sgH+dxRX9kPxx/4MsP8AgoJ4LW6vvgV+0L+zP8ctOt1Yxabr9145+D/jK/OCUW00q/8ADvjTwgrHGH+3/ECxVCybWkUuyfhV+1T/AMET/wDgqb+xnFfal8df2L/i/Y+FNOje4vPH/wAPtLsfjH8PbOyUFlvtW8Z/CW/8Z6F4dgkT5lTxNd6Ndof3U1tFMrRqAflnRSkEEggggkEEYII4IIPIIPUUlABRRRQAUUUUAFFFFAH96v8AwZN/tkf2d4q/aw/YK8SarttfEmnaT+098KbCefy4V1rQzo/w5+L9rbLI2241DVtHu/hXqNva2+2ZbHwrrl40c0UUslt/oR1/iRf8Ej/2w5f2Dv8Ago1+yf8AtNXOoyad4S8F/FLStE+J8qu3lP8ACP4gw3HgD4oPNBnyrt9P8FeJNZ1nToJx5a6xpmm3KtDNbxTxf7bUUsU8Uc0MiTQzIksUsTrJFLFIoeOSORCVdHUhkdSVZSCCQQaAH0UUUAFFFFABXN+M/CHh34g+D/FfgLxhpdvrfhLxv4b13wh4o0W7Ba11fw74l0u60bW9LuVBBa31DTL25tJgCCY5WAIrpKKAP8Jn9sX9nPxF+yJ+1X+0P+zF4q+0Sax8C/jB48+GpvrmPym1vTPDPiG+sNA8SxJtQfY/FGgR6Z4i09wiCWx1O3lCIH2j5tr+vz/g8o/ZF/4U7/wUL+G37U2h6Z9m8LftefCSzOu3scOyO4+LfwOTSvA3iYFowIl8z4c3/wAIpV34muLsanM2/az1/IHQAUUUUAFFFFABRRRQAV/sp/8ABvh+yL/wxn/wSW/ZO8A6npf9meOviT4OP7QvxLWSH7PfP4t+NzR+NLGy1aEgGLVfC/gW78G+CLyNxvjfwuEkO9Wr/Kd/4Jgfsm3H7cn/AAUC/ZO/ZaFnPe6J8VPjD4btvHaWwcz2/wALfDDzeNPixfRFMFZrD4beHPFN3blnjQ3EMStLGG3j/cBtra3sre3s7O3htLS0hitrW1too4Le2t4I1igt7eCJVihhhiVY4oo1WOONVRFCgCgCaiiigAooooAKKKKAP4Wv+D139sj/AIRr4P8A7Lf7CXhvVfL1T4n+KNT/AGiPijZW83l3EfgvwEl74O+Gmn38Qb/SNJ8UeMNZ8Y6uiMu1NU+GtlNu3RgV/nWV+y3/AAX9/bI/4bd/4Kt/tU/E3SdV/tX4feAfF5+AXwokhm+0af8A8IH8FjP4O/tTR5SzFtK8ZeL7Xxb8QbQnbn/hLnIjjBEa/jTQAUUUUAFFFFABRRRQAUUUUAFFdf4F+H3j34o+J9N8E/DPwR4v+IvjPWZfJ0jwj4F8Naz4u8T6rNkDytN0Hw/Zahqt9LllHl2tpK2SBjkV+4X7P/8AwbKf8Fm/2gItO1K3/ZMvvg74c1FIXHiD9oDxr4N+Fktks4DKNR8D6nrF38VLV0Qlpoz4BaSEqYpVSfERAPwOor+4D4Uf8GQ/7UGtWdnL8b/24fgR8OLyXa17Z/DD4bePvjFHaK2CViu/FGpfBEXUqAkOvkQRbxhJpEw5++PAn/BkL+y7p9uq/Ez9uP4+eLroKoebwJ8OPh58Ordn43Mtt4gvPijIqnnahu3K5GXbHIB/nD0V/p16V/wZTf8ABMm32nWf2h/26dTdcZWx8e/APSYXPcMkn7OeqTBT6JcK3+3VrU/+DKr/AIJf3IZtL+P37d2mSHOFm+I3wD1G2X0xG37NlrcH33XZz6igD/MKor/SG8cf8GRP7JeoQMvw1/bY/aK8J3JUhJfHHgj4afEKBX52s1voNv8ADGR1HGUFyhPOHXPHwP8AF/8A4Mg/2jtFs7ib4C/t0/BX4kXy72t7D4s/Cvxx8GYJABlI31Lwjr3x0ZZCcpv/ALNVCcMQgYhAD+HGiv3x/aP/AODZf/gsl+zfY6hrl3+ytd/Gvwxp3mebrv7OXizw98W7y4EYZt1j8P8ASrqz+LV4ropdWg+HzKOEkKSssbfhr4x8E+M/h34j1Lwf8QPCPifwL4t0aY22seFvGOg6r4Z8R6VcDrBqWia3aWOp2Mw7xXVrE4/u0AcxRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABWlo2r6l4f1fSte0a7ksNX0TUrHV9KvoQhlstS025ivLG7iEivGZLe5himQOjoWQBlZcg5tFOMnGSlFuMotSjKLalGUWpRlFpppxlGMk0000mmmk1FWnTrU6lGtThVo1qdSjWpVYRqUqtKtTnSq0qlOalCpTq0qtWnUhOMoTp1KkJRlGcov8A0IP+CXP7Sn7PP7fP7PGn+Kr34VfCLTfjV4AXT/DHxr8J2ngPwlCtt4ga3k/s/wAYaTZDS/Mi8L+OILW41LTF2mPTdTt9b8OrNdHRDeXX6V/8KU+DX/RJPhl/4QfhX/5VV/m+/sI/tl+Pv2GP2h/Cnxr8GG41LR42Gg/EjwWLk29n48+H+oXNu+t6BOxJih1GHyINW8OajIki6X4h0/TruWK5s1u7K6/0hvg98W/APx4+GHgj4w/C/XbfxJ4C+IOgWfiLw5q1vhWktLoMs1pe2+5nsdW0q8judK1rS7jbd6Vq1le6ddpHdWsqL/dvg/xvl/G2R/UswoYD/WTJqVKlmEZYTBKeYYXSlh82px+qrmdXlVHHqKtSxsXUtGnjKdv+Tz9o/wDRZ4t+i94qPiXg7NeKv+IKeJeOx2YcH1aXEHEtTD8IZ63PHZz4fYus8+qeyp4BVqmZcKVK9TnxvDNVYNTr4vhvFe0j/wCFKfBr/oknwy/8IPwr/wDKqj/hSnwa/wCiSfDL/wAIPwr/APKqvTaK/YfqWC/6AsH/AOEeE/8AmU/zg/1n4m/6KXiT/wASLiD/AOfx5l/wpT4Nf9Ek+GX/AIQfhX/5VUf8KU+DX/RJPhl/4QfhX/5VV6bRR9SwX/QFg/8Awjwn/wAyh/rPxN/0UvEn/iRcQf8Az+PMv+FKfBr/AKJJ8Mv/AAg/Cv8A8qqRvgl8GXVlb4R/DFlYFWVvAPhUqykYKsDpJBBBwQeCODXp1FH1HBf9AWC/8I8J/wDMg/8AWfidaribiRNapriPiFNNdV/wvH+fD/wWL/4J8z/sQftF3Gs+B9Jli/Z7+M9zqnif4XzwRu1l4S1JZkn8T/DKebB8pvDVxdxXfhwTEtd+Er/TIxcXuoaXrUkP5C1/pyftu/skeBv22f2dPHPwI8bCGzn1i2Gr+BvFLW4uLrwP8QdJhuG8MeKrNRiVo7aeebT9ZtYJIZNU8OalrOkCeEX5lT/Nh+Lvwo8dfAz4m+OPhB8S9En8PeO/h74i1Dwz4k0qbLLFfWEu1bmzn2ql7pepWzQalo+pQBrXVNKu7PUbR5LW6ikb+FvGfw+/1Oz95jl1Dk4ez6rWr4NQjall+Ou6uMyx2XLCmnN4rARdk8LUnQhf6mkv+rT9mZ9MFfSS8Io8F8Z5osR4x+E+By/KuI54qspY7jDhRRhgOHOOY88/a4rGTjh6eQ8V1YqpOOf4PC5nXcVxHKpPzmiiivxk/wBMAooooAK+hv2Vv2a/iF+1z8ePh/8AAT4aWu/X/G2rJBe6tNDJLpnhTw3Zj7V4k8X62YypTSvD2lR3F9MgdJr+dLbSrES6lf2dvN88gZ4HJPAA71/er/wRD/4J4f8ADIfwH/4XB8S9D+yftB/HjSdP1LWLe+twmpfD34cSmLUvDXgPbKv2ix1bUj9n8S+Nbci3lXVG0jQb62Nx4TjuJv0Pwz4Gr8d8S4fL5RqQyjBcmNzvFQvH2WChUSWGp1LWjiswqR+q4ez5oReJxNrYdN/xx9OL6VWU/RP8Ec24upVMHivEPib61wz4XZDiHCr9e4nxGEnKpneMwjmp1ci4QwdZZ7mzcVRxNenkuTOoqmc1Iw/SP4Jfscfs7fAf4T+A/hD4S+Fvgm/0PwH4es9Dt9V8QeE/Dura/rl1GGn1TxBrupXWmyS3ms69qk15q+pygpB9svZktYbe1SG3i9T/AOFKfBr/AKJJ8Mv/AAg/Cv8A8qq9Nor/AEHoZXlmGoUcNh8uwFKhh6VKhQpQweEUKdGjThSpU4p4aT5YU6cIq8pOyvKUpOUpf8eGa8d8b55mmZZ1m/GPFWYZtnGYY3Nczx+J4kz+WIxuY5li8Rjsdi68o53Sg6uJxeLxFafJSpU06nJTo0aVOlRo+Zf8KU+DX/RJPhl/4QfhX/5VUf8AClPg1/0ST4Zf+EH4V/8AlVXptFa/UsF/0BYP/wAI8J/8ynB/rPxN/wBFLxJ/4kXEH/z+PMv+FKfBr/oknwy/8IPwr/8AKqj/AIUp8Gv+iSfDL/wg/Cv/AMqq9Noo+pYL/oCwf/hHhP8A5lD/AFn4m/6KXiT/AMSLiD/5/HmX/ClPg1/0ST4Zf+EH4V/+VVfGf7ePxk/Zb/YW/Z58U/Gnxl8JvhVqeuBW0D4aeCT4L8KQXvjzx/f2076NocJXSvNg0y2EM2reJNSRXOmaBYX9xDHc35sbG8+9PGXjHwv8PfCfiTx3421zT/DPg/wfomp+JPE3iHVpxb6bo2h6PaS3+pajeTEErBa2kEsrhFeR9uyJHkZUb/Op/wCCnP7ffij9vv8AaF1Hxor6hpPwe8ENf+Gfgr4Nu2MZ0vwwblDd+JtWtEdoE8WeNZra31TXHQytZWsOj+HVury10C2upvyvxX41yzgTIZLC4XL58Q5rCrh8nw7weCn7Cy5K+aV6bwrvQwXOvYxmuXEY2VCj70KeIt/fH7Pz6MHG/wBLDxapPPs84vw3g7wBiMBm/iPm9PiLibDrNXKosRlXAeV4yOextmvEzw03mNbD1HXyfhilmmZ3o4rGZM5fDPxK+IXiX4sePvF/xK8YT2c/ibxtr+o+IdYbTrC10nTIbrUJ2m+x6VpNjHDZaVpNhEY7HStMs4o7XT9Pt7azt0WGFFHEUUV/A9WrUrVKlatOVSrWqTq1ak3zTqVKk5VKk5ye8pznOUnZXcm7LRL/AK48DgsHlmCweW5fhqGCy/LsJhcBgMFhqapYbB4LBYehhMHhcPSi2qdDDYXDYehRgnLlp0YLmk1KcyiiioOoKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigD9ov8Ag3e/5TS/sAf9lc1r/wBVp46r/ZWr/Gp/4N3v+U0v7AH/AGVzWv8A1Wnjqv8AZWoAKKKKACiiigAooooA/wAXn/gvT/ymL/4KGf8AZxnin/0j0uvyNr9cv+C9P/KYv/goZ/2cZ4p/9I9Lr8jaACiiigAooooAKKKKACiiigAooooAKKK9k/Z//Z7+NP7U/wAXPBnwH/Z7+HPiT4q/Fr4gakNL8K+DPC9otxqF9Ksb3F3eXdxcSW+naNomk2UU+pa74h1q80/QtB0q2utV1nUbHT7W4uYwDxuv37/4Jjf8G43/AAUF/wCClFro/wAQ7Xwzbfs1/s4amsF3b/HT416Xq+nx+K9MmKH7V8Kfh9DHb+KPiIkkTmaz1st4c8A3nlXFsnjlL+E2h/sd/wCCMv8Away/s/fsW2Xhv49ftyad4M/aa/amMVpquk+B76wj8QfAb4I337ueCPR9F1i1W3+JnjrTpBvl8ZeJtOGg6PfCI+D/AA5Bf6Xb+MNU/reVVRVRFVERQqIoCqqqMKqqMBVUAAAAAAYHFAH82v7Bv/BrJ/wS9/Y4t9K8RfErwDcftn/Fu1jhku/GH7RNjpur+ALa9UL5/wDwjXwNtVk8AW+myukc0MPjqP4j61ZSq/2XxEkUrxV/Rd4X8K+F/BGgaZ4V8F+G9B8IeF9Etls9G8N+F9H07QNA0izQkpaaZo+lW9pp1hbISSsFrbxRKSSFGTW9RQAUUUUAFFFFABRRRQAUUUUAfk7+3Z/wRG/4Jr/8FEINU1H4+/s5+GtM+Jmoxy7Pjn8JVg+GHxjt7uRSqahqHirw9arZeNprZWcWln8StF8baPbl2ePTBJtdf4Pf+Cof/Bph+2N+yJH4g+Kn7G17qv7Z/wABrBbnUbnw3o2jxWf7R/gnTYg0jrqfgDTd9n8T7W1QxxDVvhoJfEN9J591P8ONE063e6P+pJRQB/gHXNtc2VzcWd5bz2l5aTy211a3MUkFzbXMEjRT29xBKqSwzwyo0csUirJHIrI6hgQIK/1hP+C23/Btz+z3/wAFItF8Y/Hr9nzT/D3wG/bhWyu9Vj8UWFumk/Dj48apBGZk0f4x6RYWzpa+JNSKm0svito9sPEFtLPGfF1r4w0yz0620r/LP+N3wQ+LP7N/xW8cfA/45+AvEPwy+K/w41y48O+M/BXiizNnq2j6lbhJEOVaW1v9O1C0lt9S0XWtMuLzRtd0e7sdZ0a/vtLvrS7mAPK6KKKACiiigAr/AGUv+DfH9sj/AIba/wCCT/7LfxC1bVf7U+IPwy8MN+zv8VZJJvtF8PGnwWjtfC1nqOrTlmaXVvFvgJfBPjy/dtrNN4rJKjv/AI1tf3Kf8GU37ZH/AAifxy/ae/YX8S6r5WkfF3whpvx9+GFndTbLePx58N5Lfwx8QdL02Hd++1XxX4I13w/rVwCh26X8Lp3EibCkoB/oyUUUUAFFFFABRRRQB/Ml/wAHZX7In/DSf/BJ7xp8TdE0v7d46/ZE8eeF/jvpMlvCZNRm8ETSS+AvijpqSYIj0u18M+K08eauCU3J8P7Zw5aIRS/5Olf72/xb+GPhP42fCr4mfBrx7Y/2p4G+LXgDxj8NPGWm/J/p/hXx14d1Hwv4gswZEkQNc6Tql3CrMjqrOCVbGK/wrP2ifgl4s/Zr+Pnxp/Z68dxGLxl8Efin48+FXiUiJ4YrjV/AfibUvDV3fWquW3WGoyacb/T5leSK4sbm3uIZZYZUkYA8booooAKKKKACiiigD+3r/gyn/ZF/4TP9pL9p39tTxDpfm6P8Efh3pPwW+Ht3dQ5gfx/8XL0614q1TSpgPl1Lwv4F8IJot8C6hdO+JiARymXfB/o/V+CH/BtH+yL/AMMjf8Eh/wBm+01XS/7N8dftDW+p/tR+Ow0XlTT3HxejsLnwD56Momimtfg5pHw2srqCc+ZDf294NkW4xr+99ABRRRQAUUUUAFfmr/wWB/bFX9g7/gm5+1j+0pZakumeMvC/ww1Pwx8K5hKEuf8AhbnxImt/h/8ADW5tYciW7/sXxZ4k03xJqFvb4lGjaLqdyZIIbeW4i/Sqv4Gv+D2X9sj7Lo37Jv7BPhvVcTardat+1F8V9Phm2OLDTxrPw2+DttP5Tbpba9vp/i1qN3ZXO2NbnRtAvljlkSCWAA/z7nd5HeSR2kkkZnd3Ys7uxLM7sxLMzMSWYkkkkk5ptFFABRRRQAUUUUAFFKASQACSSAABkkngAAckk9BX9qf/AARP/wCDUj4g/tFxeDv2nf8AgpLYeI/hL8CL5NP8ReC/2b7ee68P/F74s6bKsd5ZXvxFvIjFqfwm8C6lGYgdGhNt8TtespLrZ/wgEX9la5qgB/Mx+wp/wTW/bO/4KQfEP/hXv7JnwX8Q+PhY3dtB4u8fXif8I/8ACr4eQXOHF546+IeqLF4f0Vxa+beWuhxXF74q1uC3nTw54f1m7QWzf3b/ALAn/Bmf+zB8Kf7F8b/t+/FnWv2m/GcH2e7ufhH8M59a+GnwPsbldrTafqviSGWz+Knj+3jlRZLfULK9+FcEsbyW2oeHryP5m/sH+D3wX+En7Pnw88OfCX4G/DbwX8Jvhn4StFsvDvgfwB4d0zwx4c0uLgyyQ6bpVvbQSXt5KDc6lqVws2oapeyTX2o3V1eTzTv6bQB4L8A/2Wf2a/2V/DC+DP2bfgN8JPgZ4aMUMVzpfwt8A+GvBaambcYS51u50PTrO917UGOZJ9T1q5v9QuZmee5upZnd296oooAKKKKACiiigAooooAK+Y/2n/2L/wBlH9tLwXJ4A/ap+AHwx+OPhowzQ2KeOfDNnfa54fM4YS3fhDxdbra+LfBeplXdRq3hLXNF1RFklVLtVkcN9OUUAfwRf8FJf+DM3w5daZrfxK/4Jh/E/UdL1yAXWoP+zT8dvECX+iamgDSppfw1+MD2kWpaLcosa2um6P8AE+LXbbULq487VfiVodtD8/8ACh+0H+zh8eP2Ufijr3wW/aP+FHjX4NfFHw0ynVfB3jrRbjSNR+yTPKlpq+mTOHsNe8Pal5Msuj+JNCu9S0DWbdPtWlaleWxWU/7xlfnp/wAFFv8Agl/+yJ/wVA+EEvwp/af+H8WpajpcF8/w6+LPhr7Jo/xZ+FGr3qKJNU8EeLHtLt4rS4ljt5NY8Lazbat4Q8Qm2tG1vQr2ey0+e0AP8RKiv1d/4K0/8Eif2kP+CSvx5l+G/wAWLOXxh8JPF11qV58Dfj7oul3Fr4O+KHh20kVmtbiMyXaeF/iDoVvNbR+MPAt7e3F3pU8sWoaXea54Y1HRvEGpflFQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABX9Bv/BCz/gpP/wAM1fE+P9l/4w6/9n+BPxh16EeE9Z1S522Hwv8AijqRhs7S6e4lby7Dwl44dbbSdf34stJ1tdI8QO+n2T+Jru5/nyor6DhfiTMuEs8wGfZXU5cTgqt50pOSo4vC1LRxWCxCi7yoYqjzU5aOVOfsq9O1WhTb/IfHfwU4K+kL4V8WeE/HmE9vknE2BcMNj6NOlPMeHc9wqqV8i4nyapVi1RzXI8ydHGUHzQp4vDvMMrxbngc1xcI/6zFFfgF/wQz/AOCk3/DUHwrT9mv4v6/9o+Pvwa0GBdB1bU7nfqHxS+F+n+RY2OrvPKxkv/Ffg0SWmi+JzJuu9T019G8RyS397ceIp7P9/a/0a4Y4jy3izI8Bn2VVOfC42kpSpycXWwmJhaOKwWIjFtRxGFrc1KaslOPsq1O9KvTZ/wAXHjp4Lca/R88UuLPCfj3B/V894Yx8qVHG0qdaOXcQZLiXUr5HxNk1StGLr5TnuW+xxuFlzTqYar9ey3FuGPyrGUwooor3j8kCiiigAr+a3/g4A/4J4/8AC2vh4P2z/hRoXm/Ej4T6Kll8YtL022zc+MPhXYB3g8WNFCpa61r4cB5JL+d0M1x4Hlu3uboW/hHTLR/6Uqr3dpa39rc2N9bW95ZXlvNaXlndwx3Frd2txG0NxbXNvMrxT288TvFNDKjRyxsyOrKxB+b4u4Yy/jDIMwyHMYpUsXSvh8QoqVTBY2kpTweNo3s/aYetZyipRVWhPEUJPlre7+2fR48dOLvo4eL3CHi3wbVlPHcO45U83yidepQwXE/C+PlRw/EXDGZOHMnhM3y1VIUa0qdWWX5phsozWjD2+XWrf5N9FfrV/wAFf/8Agn3dfsNftHXV14O0y4X9n/4wz6p4q+E14qySWvhudZ45fEvw0ubh8kXPhC6vIH0UzPLLeeE9Q0SWS6utSt9X+z/krX+cOe5LmHDub5hkmaUXRx2XYmeHrR15JqLvSr0ZNL2mHxNGVLEYeoladKrF6SjUjD/tT8KvE7hHxm8OuEPFDgTMY5nwtxnk2FzjLazdNYnDSqx9njsqzKjTqVFhM3yXMaWOyjNsHKXNhswy+vFc9GrhK2IKKK+g/wBln9m34hftbfHf4f8AwE+Gdr5niHxxq6W91qs0MsumeFfDtopu/Efi7W2iwY9J8O6TFc6hcKHWa9ljt9LsRNqV/Z283DhMJicfisNgsHRqYnF4yvRw2Gw9KLnVrV69SFKlShFbynOcUr2SXNKUowhOUfquIM/yXhTIc64o4kzPB5Lw9w7lWYZ5nmb5hWjh8DlmU5Vg6+PzDHYqtLSFHDYXDVakrKdScvZUaNKtiMRh6Ff9c/8AghN/wTw/4ab+NJ/aO+KOhfavgX8B9cs59JsdRtvM034ifFu1W31PRdCaKVfJvdD8GRS2XijxNE5eG5vJfDOi3Nte6dq2rR2/90VeJ/s6fAL4e/sv/BX4f/Ar4X6b/Z/g/wCH2hQaTaSSLH/aGs6g7Pd634l1mWJES41zxJrE97rWrzoiRNfXsy20UFqkEEXtlf6JeG/BGG4E4aw2WJU6mZ4nlxmdYuCT+sZhUpxTpQnZSeFwMH9Uwq0TjCtX5VPEu3/Gf9Nb6UmdfSv8bc645qSxmD4HyT2/DXhjw9iZSh/ZHCOExdWdPH4rDKpKlTz3ijFQfEOfTXNOnWxWXZUq08PkcFMooor74/kYKKKKACiivxP/AOCz/wDwUmh/Ys+DP/Cr/hhrUcf7Snxl0i9tvC8lpMjXnw08FTNNp2r/ABJuUUl7fVJJVudH8BrKI0n12O/1pTcweFrywu/F4hz/AC3hjJsfnma1vY4LAUXUmk4+1r1XeOHwuHjJr2mJxVZwoUKa3lNzly0qVWcP03wc8I+NfHXxK4T8K/D/AC55jxNxbmVPBYdzVVYHK8DT5a+bZ/nFelTqPB5JkOWxxOZ5pipK8KFCnh6Cq43H5fh8R+RX/BfH/gpZ/wALI8Tah+xD8FNf3+APBOrxP8ePEelXWYPGHjrSLlZrX4d288DbJ9A8DX8SXXiNWd0v/GtvBYtDB/wiXm6l/MZUs001zNLcXEstxcXEsk0880jyzTTSuXllllcs8ksjszySOzO7sWYkkmoq/wA5+L+Ksy4yz7G57mcrVMRPkw2GjKUqOAwNJyWFwVC9vco03ec+WMq+IqV8RNc9VKH/AGhfR08A+Cvo1eEvDHhRwRQUsJk2H+tZ5ndWhSo5lxZxTjadCefcT5q6fM3isyxdNxwuGdWrSyvKMLlOT4WXsMBOeKKKKK+ZP3EKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooA/aL/g3e/5TS/sAf8AZXNa/wDVaeOq/wBlav8AGp/4N3v+U0v7AH/ZXNa/9Vp46r/ZWoAKKKKACiiigAooooA/xef+C9P/ACmL/wCChn/Zxnin/wBI9Lr8ja/XL/gvT/ymL/4KGf8AZxnin/0j0uvyNoAKKKKACiiigAooooAKKKKACiir2l6Xqeuanp2i6Lp19q+savfWml6TpOmWk9/qWp6nqFxHaWGnafY2sct1e317dSxW1paW0Uk9xcSxwwxvI6qQD3H9lz9mH41ftlfHn4cfs2/s9+Db3x18Vvihr0Oh+HdGtcxWlpGFe51XxD4g1Eo9vofhXw1pcN3rniXXr3bZaPo1jeX1wxWIK3+ut/wRr/4Iq/s9f8Ejfg3/AGf4bjsPiT+01490iyj+N37QeoaYsGqa5IrQ3j+B/ANvcebc+EfhfpN/HHLaaPFKNR8TX9rbeIPFlxeXlvo9joXzv/wbyf8ABFbwp/wS5/Zt0/4kfFLw7YX37bnx48M6bqPxj8Q3K219dfC3w1fNBq+lfAnwreIJIrKz0J0sbv4iXunTSp4q8dWrl7/U/D/hrwh9i/oroAKKKKACiiigAooqveXlpp9pc39/dW9jY2UEt1eXl5PFbWlpbQI0s9zc3EzJDBBDErSSzSukcaKzuwUE0AWKK/PXx/8A8Fav+CXvwuvr/SfHP/BQf9jnRdZ0qaS21TQY/wBof4Xav4g025iOJLW/0DQ/EupaxZ3SHhra4sY5h/zz5FeaeHP+C4//AASD8VXLWumf8FFP2V7WVZTCW8R/FDRvB1sXVtpK3ni5tDtHiz0nSdoWX5lkK80AfqrRXknwh+P3wI/aD0B/FXwE+NXwl+N3hiNlSTxH8IviP4P+JOhRu+4Ikmr+DdZ1mwR2KOAjXAYlGAGVOPW6ACiiigAooooAK/nF/wCDhb/gh/4Z/wCCpvwHf4ofB3R9F0P9uD4JaDe3Hww19haaWnxg8KWvnahffBHxnq0nkw4vpmuL34ca7q0wtfCviy4ls7i70vw54o8S3sX9HVFAH+A94g8P654T17W/C3ifR9S8PeJfDWr6l4f8Q6BrNlcabrGh65o17Np2raPqunXccV1Yalpl/bXFlfWVzFHcWt1BLBNGkkbKMiv7f/8Ag7+/4JO6b8HviToP/BTb4JaAlj4I+OXia08D/tMaDpdmI7LQPjLcafcT+F/iikNqnlWtj8UNL0q80vxdcPFbW6ePdIstWurq/wBc+Iswj/iAoAKKKKACvuT/AIJpftbah+wr+3n+yz+1ZaXF1Dpnwk+Lfh7UvG0Vl5hutR+GGvNN4S+K2j26x5Z7jWfhvr/ijTLYFJVW5uoZDDLs8tvhuigD/fr03UtP1nTrDV9JvbXUtK1WytdS0zUbGeO6sr/T76CO6s72zuYWeG4tbq2ljnt54naOWKRJEZlYE3a/Bn/g2v8A2yP+GyP+CSX7Ompaxqv9p/EL9ny0vf2XfiKZJvOuk1D4Q22m2fga6upXJuLi61b4Q6p8OtVv724HmXWrXepFpZ3R5n/eagAooooAKKKKACv8rj/g77/ZF/4UF/wU/tvj1oel/Y/Bf7Yvwt8P/EJrmGEQWH/C0Ph3Ba/DX4iadbIoEbXL6RpXw/8AGGqzL81xqXja4uJgZpZJJP8AVHr+Uf8A4O//ANkT/hff/BMSx+P+h6Z9s8Z/sc/FTQPHstzDF596Phb8SprP4bfEPT7aNVMogXXdS+HPizU5kJW20zwZd3E6eTE8sIB/lf0UUUAFFFFABX1r+wZ+zDq/7aH7Z37Mv7LGjLdB/jd8Y/BXgnWryyDNcaL4Nu9Whu/HviRQqs2zwv4Is/EHiKbarMINLkIBIAr5Kr+y/wD4MwP2RP8AhZ/7b/xv/a917TPP8O/st/CdfCfhC9mi2iH4r/HZ9S0KC9sJ3UrM+mfDDw78SNM1OGD95br4u0qSeSKO5ijugD/S00HQtH8L6Ho3hrw9p1ro+geHdK07QtD0mxiENlpej6TZw2GmadZwr8sVrZWVvBbW8Q4jhiRBwK1aKKACiiigAooooAK/xXP+C2n7ZH/Ddn/BTz9rL49aZqv9q+A/+Fi3nw0+Es8U3nae/wAK/hLFH8P/AAfqelruZYLXxba6FN46nhViP7T8U6hKTulav9Tv/guT+2R/wwv/AMEuf2sfjbpeq/2V4+1L4f3Pwk+EssU3k6ivxO+MEi+AfDuq6R8y+Zf+DYNZ1L4gGMsAbHwjeuVkCeU/+LfQAUUUUAFFFFABSgEkAAkk4AHJJPQAdyaSv7av+DUz/giFo/7RHiWz/wCClH7Vfg3+1fgz8NvFDW37MHgDxBZB9G+KPxN8MXzx6r8UtbsbqMx6t4I+GWs2y6b4ZtNk2n+IfiLZ6jJeyLa+BLrTNdAPvf8A4Nxv+DbjQ/hfo/w6/wCCgX/BQDwUmrfFvU4dN8afs9/s4+LNMVtN+FFnL5d94d+J3xU0W+Rl1D4n3MX2fVvCHgzUbf7J8N4pLTWdetrj4hNaWPw//uXoooAKKKKACiiigAoor5T+NX7dn7E37N2qNoX7QX7Xn7M3wU8QrGZR4b+KXxz+GfgbxLKihSzW/hzxH4l07W7nAdSRb2EpwynGCKAPqyivydf/AILrf8EfI9WGit/wUQ/ZjN4c/vk8f28uk8Nt51+O3fQhz0zqQyvzDKgmvq34K/t8/sOftIavH4e+AH7Yf7Mfxn8Syqrr4W+Gfxz+GnjLxWFfOxpPDGheJb3X4Q+1tvnacm4qwGSpwAfWtFFFABRRRQAUUUUAfKX7a/7GPwI/b9/Zw+If7MH7RPhaLxJ8P/H2mskF9AltH4l8D+KbSOVvDnxA8DarcW9ydD8Y+Fb6X7bpV+sUtvcxNeaNrFpqfh/VdX0q+/xsf+Cl3/BO742/8Ewv2rvHH7L/AMardb99KC+JPhr8QrG0ltPD3xY+F2rXl7B4X8faDHLJObUXv2C80zX9Ga5upvDfinS9b0Ca6vP7OS+uv9vuv59v+Di//gk/pf8AwU0/Yh17WfAehRz/ALVf7M+m+JPib8BtQs7QS6v4wtLfTlvPHXwVkKI0t1B8R9L0q2PhuAmP7L8QdG8JytdWmlXGupeAH+QhRTmVkZkdWV1YqysCrKynDKynBDAgggjIPBptABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAeofBb4xfED9n74qeB/jL8LNdm8O+PPh9r1rr/h/U4tzRGaDdFdadqNuHjW/0bWbCW60jXNLmb7PqmkX17p9yGguZAf8ASJ/Yb/bE+H/7cX7PXhH43+BnhsL+7j/sT4g+DjcrcX3gP4gadb27a/4au2+WSW1DTw6noGoSRxHVvDuoaXqLw209xPaW/wDmTV+nH/BK/wD4KCa9+wP+0NZa/qtxqGofA34iyab4Z+NPhi1824YaMlxINL8caRZKSJfEvgea7ub60iVDJqujXOuaArQS6rBe2f7F4O+IsuCs8+o5jWl/q3nVWlSx6k24Zdi3alh81px15Y0+aNDMFFXqYNqq1Kpg43/zb/aRfQyo/Sf8LXxXwZl1J+NnhngMdj+E50adOnieMuH4qpj848P8VVtB1q+KdKrmnCM61TlwnElOWAjOjhOJa/s/9GCisXw34j0Hxh4e0LxZ4W1fT/EHhnxNpGm6/wCHtd0m5ivdL1nRNYs4dQ0vVNOvIWaG6sr+yuILq1uImZJYZUdSQwrar+9YyjOMZwlGcJxjOE4SUoThOMZwnGUXKMoyjKMoyjKUZRlGUZOMk3/yUV6FbDVq2GxNGrh8Thq1bD4jD4ilUoV8PiMPVq0K9CvQrU6VajXoV6FahWo1qVKrRrUatKrTp1aVSnAooopmQUUUUAfH/wC3T+yB4I/bf/Zx8bfAzxf9msNS1CEa58PfFssHnz+B/iJpMFz/AMI34kgCqZmtA9xcaTr9rAUl1Hw1qmsadFLBNdR3EP8AmzfFT4YeN/gt8R/Gvwn+JGh3Phzx18P/ABFqXhjxNo9yMta6lpk7QyPBMB5d5p95GI73S9Rty9pqem3NrqFnLLa3MMr/AOqzX8zf/BwL/wAE8f8AhZvgX/htn4T6H5vj74ZaPBp3xu0vTrfNx4q+GenrssPG5hgXfc6v8PFbyNZuGSSWfwNJ9pubmCy8F20Ev8++O/h9/b+U/wCteVUObOMjw8lj6dKF6mYZNT5qlR2iuapiMrvUxFLSUp4KWLoq/sacV/sJ+yc+mF/xCTxC/wCJf+Pc19j4beKeb0nwljcdiOXCcH+JeM9jhMJT9pWqKlhMm47UMJk+O96lQw/E1Lh3MZ8rzLGVZfxl1/eh/wAEQf8Agnh/wyL8Cf8AhcvxM0P7H+0F8eNI0/UdUtr+38vUvh58NpTDqfhvwLsmUXFhq+qt9m8TeNbci3lXUjo2g31sLnwos8/4Qf8ABCn/AIJ4f8NP/Gs/tFfFHQ/tXwK+A+uWdxptjqNt5mm/ET4s2qwanonh9o5V8m90PwfHLZeKPFELl4bm5l8NaJc215p+saolv/dPXzH0f/D7lj/r3m1D3pKrh+G6NWG0XzUcXnHLJbz/AHmDwE7fCsbiYP3qUj90/a+/TD9tU/4lP8PM1/dUZYDNvGrM8BX0qV17DMeH/Dn21GprGhfB8S8W0Odp15cNZJiYfucdQRRRRX9Un+A4UUUUAFFFZutazpHhzR9W8Q6/qdjouhaFpt9rOtazql1DY6ZpOk6Zay3uo6nqN7cvHb2djY2cE11d3U8iQ29vFJLK6ojMFKUYxlKUlGMYuUpSajGMYpylKUpNRjGMYylKUmoxjGUm0k2rpUqterSoUadStWrVKdGjRo051a1atWqU6NGjRpUoVKtWrVq1aVKlSpU6lSrVq06dOnUqVKdOfzp+2F+1Z8N/2MfgH40+PHxLuQ+n+HrYWXhvw5DcxW+reOfGmoRTjw54N0TzFkJvtWuYXkurlYJ00jRrTVdeu4jYaVdsv+bh+0X+0B8SP2ovjN46+OfxX1c6t4y8d6xJqN0sZlXTdF06JVttF8NaFbSyStZaB4d0uK10nSbUySSpaWqSXU1zeS3FzN93/wDBWj/gonq/7efx7mXwteX1l+z38LLnUtC+EWgyia2GuF5Fg1n4lazZyBJBrHi17aJtMtrmKOXQvDMGl6Y1vDqcmuXF/wDlJX8IeMniPLjPOf7Lyuu3w1ktapDCuEmoZpjo81Kvmc1pz0UlPD5cpJqOH9piUlPGRcf+sj9mp9Cyl9Gfw1/1846yynHxt8TMtweJz2GIpQlieBOFavscflfAuHm1N4fMqkp4fNuM6lGcZVc5eDyOU6mF4bqRrFFFFfi5/pqFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFAH7Rf8G73/KaX9gD/ALK5rX/qtPHVf7K1f41P/Bu9/wAppf2AP+yua1/6rTx1X+ytQAUUUUAFFFFABRRRQB/i8/8ABen/AJTF/wDBQz/s4zxT/wCkel1+Rtfrl/wXp/5TF/8ABQz/ALOM8U/+kel1+RtABRRRQAUUUUAFFFFABRRRQAV/aj/waDf8EqdO+Pnxt8T/APBRn41+FU1P4Y/s269F4W/Z907WLXzNN8TftBm1tdT1HxvHbzo8N9bfBzQL3T7jSZJIjFH488U6FrOm3cereBriOP8Ajt+FHwx8afGz4ofDn4OfDjR5vEPxB+K3jnwp8OfBGhW+fO1fxZ401yx8O+H9OQhW2fa9V1G1haUqViV2kf5EJr/cI/YY/ZH+Hv7CX7JPwI/ZP+GVtbJ4b+DXgLSvDl3qkFuLaXxZ4umD6r478c6hHyRqnjjxnf674q1Bc7IbnVntrdIrWGCGMA+saKKKACiiigAoor+Z3/g5e/4LG6p/wTN/Zg0j4Q/A3VvsX7XH7UumeJdF8Ba7azx/avg58OtNS207xj8WxEjNcReJmm1OLw58MfNSG3/4SNtX8TrPdDwNc6PqYB5J/wAFuf8Ag52+Ef8AwTw1rWf2bf2StL8GftFftcabJc6f43vNVv7u++DnwGvY0dG0zxlP4evrG+8a/EOC42RXXw/0LW9Ij8OEXH/CXeINN1W0TwxqH+dT+2L/AMFKP25P29/FeqeKf2qP2kPiT8S4NQuRPa+BpNcn0D4VeHoo5DJbWnhj4W+HTpfgTQ4rYbF+02ehLqd60SXWq39/fGS6f4hurq5vrm4vb24nvLy8nmuru7uppLi5urm4kaWe4uJ5WeWeeeV3lmmldpJJGZ3ZmYkwUAFFFFAHYeBPiF4++F3iXT/Gnwy8ceMPh14x0mQS6V4s8C+Jda8I+JdMlDK4k0/XdAvdP1SzcOiOHt7qNgyK2cqCP7Nv+CPf/B2z8cvhb4y8E/Ab/gpvrX/C4PgbqMlt4dtv2mItGdvjP8MnlMVrpur/ABEh0SNbf4reDbHaia9qKaKvxPtrea88QS6v46vreLQLz+JmigD/AH1PB3jHwn8QvCfhvx34D8S6H4y8FeMdD0vxN4T8WeGNUstb8O+JPDut2cOoaRrmh6xp01xYanpWp2NxBd2N9Zzy29zbyxyxSMjAnpK/gf8A+DOX/gqX4i8Rx+Mf+CWvxf1ttRtfCvh3xF8Xv2WdX1O9Zrux0e31S2uvih8HbYSljdWltcazN8TPCVrGBJp9qvxGSeZ7CHRbSx/vgoAKKKKACiiigD5h/bQ/ZU+HP7b/AOyv8cv2UvirbrJ4L+NngHVvCNzfi3jurvw1rbCPUfCHjXSoZWWJ9b8DeLrDQ/F+iCU+T/a2i2YnV4TIjf4d3xk+FHjT4D/Fz4n/AAR+I+mNo3xA+EPxA8YfDPxrpTbz9g8U+B9f1Dw3rttGzpG0sMepabci3n2Ks8HlzINki1/vX1/lef8AB39+yLYfAD/gp3p3x08MaV/Z/hP9sL4TaH8RtRkhhWCwb4r+A52+HfxCt7OJFEfm3Wh6X8PfFurTA+Zd634v1G7nXzZ2llAP5SqKKKACiiigD+1T/gy3/bI/4V1+1r8fv2KfEmq+T4f/AGkPh1b/ABM+HtnczZjHxT+CwvJtY0zS7csAl34l+GWv+I9a1WZQxktfhrpyNgRKa/0pK/wuv2EP2ote/Yq/bJ/Zr/aq8PG6kufgh8XfCHjXVbCyfy7jXvB9tqMdl498LB98ZWLxb4IvfEPhm4IkQ/Z9Wlw6n5h/uU+F/E2g+NPDXh3xj4V1S01zwx4s0PSfE3hzW7CTzbHWNB16wt9U0fVLKXA8y01DT7q3u7eTA3wzI2BnFAG5RRRQAUUUUAFeMftG/BDwn+0v+z/8a/2ePHUYfwf8cPhX48+FXiJ/JSeW10vx34Z1Lw3cajaI5ULqGmDURqOnTK8cttf2ttcQSxTRRyL7PRQB/gjfFf4aeLPgv8UviT8HfHtg2leOfhR4+8YfDbxlpjb86d4q8DeIdR8MeIbE70jc/ZdW0u7gyyIxCZKqTiuAr+mf/g7F/ZE/4Zq/4Kx+OfiToml/YfAv7XXgbwv8e9He2h2afD40Mc3gT4paesuB5mq3nizwo/jzVlJcofH1o4YLMscf8zFABRRRQAV/rff8Gr/7In/DLf8AwSO+EPirWdL/ALP8dftW+IfEX7S3iVpodt3/AMI/4rFl4b+FcCXDASy6ZefC7wr4V8WWUHywW934s1N4VZrmaef/ACw/2T/2ffE37V/7TfwC/Zo8HCVPEXx0+LngL4X2N3FF5w0mPxf4j0/R9Q1+5TBAsPDumXN5rupSv+7g0/TrmeQiONjX+6T4B8D+GPhj4E8FfDXwTpkOieDfh74S8OeB/CWjW/8AqNI8MeE9Hs9B0HTIOB+5sNK0+0tY+B8kS8UAdbRRRQAUUUUAFFFRyyxQRSzzyxwwQxvLNNK6xxRRRqXkllkchI440BZ3YhVUFmIAJoA/z3v+D2P9sj+0vFv7J/7BXhvVd1p4Z0zVv2nvitp8E/mQvreutq/w6+EFrcrG2231DSNGs/inqVxa3G6Z7DxZol4qQxSxSXP8Flfoz/wVt/bCl/bx/wCCjH7WH7TlvqEmo+E/G/xT1bRvhjIzt5afCPwBFb+Afhc0UGfLtJL/AMEeG9F1fUYIAI21jUtSuWaWa4lnl/OagAooooAKKKKAP0e/4JO/8E+/GH/BTT9uf4NfsseHhqVh4U1vVT4t+M/i7Togz+BPgp4Tntb3x94jEzxTW9tqd1aS2vhXwo13G1nc+NvEvhmwudsN27r/ALTfwq+Fvw/+CHw08B/B74UeFtL8EfDX4ZeFND8EeBvCWiwmHTPD/hnw5p8GmaTptsrs80vkWlvGJrq5lmvLycy3d7cXF3PNNJ/K1/waD/8ABPmx/Zy/YP1f9sbxp4eS2+L/AO2ZrMuoeHr++t9up6J+z74I1C70fwPplssymWxi8a+J4PE/j27mtXjt/EPh+7+H9zcRSHR7KQf1yUAFFFFABRRRQAV+XH/BU3/grd+yv/wSf+Cz/Ef46a5/wkXxH8S2d/H8HPgF4Y1CzX4i/FbW7VdmbWGUTr4Z8FabcvD/AMJV4/1i2bR9DgcWtlb674mvNF8M6v8AT37bn7Xfwv8A2Dv2VvjT+1n8YZZz4H+DXhC48QT6TYzW8GreK9fu7m20bwf4I0KS6It11zxp4s1LRvDGlSXBFrb3mqR3V40dnBcSp/i4ft3/ALbfxu/4KG/tQfEv9qj4+az9v8ZeP9TK6VoNnNcN4b+HvgrT3li8J/DrwbaXDsbHwx4U01xaWoP+l6rfyaj4i1ma98Qa1q2oXYB+jn/BRL/g4q/4KVf8FCtU1HR9T+LWpfs5/BKWeYab8D/2eNY1zwLotxYNujji8eeM7O/j8c/Ee5lt/JOoWuvazH4Pe+i+36P4N0J3MS/hRNNNczS3FxLLcXE8jzTzzSPLNNNKxeSWWVyzySSOxd3dizsSzEkk1FRQAU+OSSGSOWKR4pYnWSKWNmSSORGDJJG6kMjowDKykMrAEEEUyigD97P+CbP/AAcYf8FF/wDgnXq2keH4/iTqH7Sn7P8AFeW/9r/Av4865rPim0stMDqtzH8NvH13cXnjL4a3y25n/s600681PwPHfTtqGreBdbmGD/qO/wDBO/8A4KL/ALNH/BTb9nrQ/wBoT9mzxV/aGnyG30rx94B1lrW1+IHwl8aG1S4vfBnjzRIJ5/sV/CC82l6rayXOheJdNEer6BqF9YyF0/w9q/an/gg7/wAFRfE//BLr9urwP481DVZ/+GePjFqGgfCr9pnw1LcyJpsngDVdYjisPiJFAd8A8SfCTUr2TxZpNz5X2q60T/hKvCkN1Y2viy+ukAP9k+io4ZoriKKeCWOeCeNJoZoXWSKaKRQ8csUiFkkjkRg6OhKupDKSCDUlABRRRQAUUUUAf5En/Bzf/wAE/dN/YR/4Kc+P9Q8BaJ/Y/wAFv2qNLb9ov4dWlrbiHSdB1vxRrGpWXxV8GaeYkjtYItE+INnqmu6bpFpDDBoXhPxd4U02KPyoo5H/AJ4q/wBSf/g8Q/ZGsPjb/wAE0tA/aV0zSvtHjj9jz4raBr76nFEJbqL4V/GHUNJ+GvjrS1RVMxgm8YXPwr1+5mVilpaeGrqaVBC000P+WxQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQB/VX/AMEAf+Ck39i6hYfsI/GnX8aTq91dXP7OfiTVrnCabrN1JLe6p8Jbi5mbatrrdw9zrHgVZGQx61JqnhuKS4k1nw3p9t/XbX+Tppupajo2o6frGkX95peraVe2upaXqenXM1lqGnajYzx3Vlf2N5bvHcWl5Z3MUVxbXMEkc0E0aSxOrqrD/Qf/AOCRH/BRTTv27fgJFp3jLULOD9on4S2mm6H8VdLHk20niezaM2+h/E7SrOMJGbHxMtu8WvwWkccOjeKoL+3FrZaXqGgfa/7A8BfEf+0MNDgjOsRfHYGjKXD+JrT97F4ClFyqZZKcneWIwEL1MIm3KrgOeiuaWCgn/wA4n7Wr6Ff+p+eYr6UnhnlHJwrxRmFKl4u5Ll2HtR4d4sx9WNHCcc0cPQp8tDJ+LcQ6eE4hlGnChgOLHh8yqOlQ4nrzX62UUUV/TB/h0FFFFABVW+sbLU7K803UrO11DTtQtbixv7C+t4ruyvrK7ieC6s7u1nSSC5tbmCSSG4t5keKaJ3jkRkYg2qKTSaaaTTTTTSaaaaaaaaaabTTTTTaaabTqE505wqU5yhUpyjOE4SlCcJwlGcJwnCUJwnCcIThOE4ThOEJwnGcYyj5Z8Fvgp8MP2efhv4e+Enwd8Jaf4J+H/hdb7+x9A00zyRQy6pqN1q2pXU9zdy3F5eXl9qN7c3VzdXc800jy7d4jSNE9ToorOhQo4ajSw2Go0sPh6FOFGhQoU4UqNGjTioU6VKlTjGFOnCKUYQhGMYxSSXftzXNczzzM8wzrOsxx2b5xm2NxOZZrmuZ4vEY/MsyzDG1p4jGY7H47F1a+KxeLxVepOtiMRiK1WtWqSc5zbtYooorU4AooooAK/kq/4L9/8FLPtEmpfsIfBLX8wwSW0v7R/ijSLniWeMxXmm/CC0vIWxst3Fvq3xAEDEm4XTPCc06GDxZpUn61f8Fc/wDgovpn7CHwHk0/wdf2V1+0V8WLPUtF+FWkOIbp/DFoqC21r4naxZSB4/7P8NCdI9BtryOSHXPFMtlam1vdK0/xAbP/AD4dV1XU9d1TUtc1vUL3V9Z1m/vNV1fVdSupr3UdT1PUbiS7v9Qv725eS4u729uppbm6up5JJrieWSWV2d2Y/wA0+PHiR/ZuGqcE5LiLZhjqKef4mjP3sFgK0VKGWxnF3hicwptTxVmp0cA40nyzx0kv9wP2TX0J/wDXXPMH9KLxPyfn4Q4WzGpHwkyTMcPejxNxbl1aVLEcbV8PXp8uIyPhDFRlh8gc6c8PmXFsKuPh7bC8LUpzoUUUV/Hp/wBIAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFAH7Rf8G73/ACml/YA/7K5rX/qtPHVf7K1f41P/AAbvf8ppf2AP+yua1/6rTx1X+ytQAUUUUAFFFFABRRRQB/i8/wDBen/lMX/wUM/7OM8U/wDpHpdfkbX65f8ABen/AJTF/wDBQz/s4zxT/wCkel1+RtABRRRQAUUUUAFFFFABRRRQB/WP/wAGfX7HFj+0D/wUn8RftD+KtGGp+Df2NfhfeeNtLlnhFxYxfGL4lzXXgb4cR3cUimEyWnhpfid4p0qZiZrPXfCulX1sgmtlng/1Ma/k1/4M6f2arH4S/wDBLrXPj1c6f5fib9qz45+N/Ew1R4hHLc+AvhPcN8J/C+lq2A01tpvi/QviZqEMrE/vdeuo1AVAW/rKoAKKKKACiiigAr/F9/4Lp/tq65+3d/wU/wD2ovi1Prh1jwF4M8e618DvgrHBK0ml2Pwi+EWs6p4X8N3OjqzyGK18Y6jDrnxGvE3kNrXjPVJEWKJ44Iv9db9u74t33wD/AGI/2wfjhpV++l6x8If2YPjz8SdD1CJwk9rrvgv4XeKPEGhyWzNx9rOrWFmlovJe5aJACWAr/C1Zmdmd2ZnZizMxLMzMcszMcksSSSSck8mgBtFFFABRRRQAUUUUAfaX/BOf9pzWP2NP26/2Uv2mtI1abRovhL8bfA+ueJ7mFzH9r+Hl/q0Ph/4n6JOwIIs/Efw61fxRoF9ghvsepTlSGwR/uSKyuqujK6OoZHUhlZWGVZWGQysCCCCQQcjiv8Amv9zv/gn149u/in+wV+xJ8Tb+8k1HUPiH+yP+zf431C+mk82e71DxT8HfBut309w5yWuJLu+ma43fOJi4cBgRQB9e0UUUAFFFFABX8dH/AAejfs+2Xj3/AIJ6/Ar9oO1sPP8AEv7Pf7R1joU19sB+wfD741eFNX0jxKpcAsn2vxv4O+FkYBIjbYd2ZBEK/sXr8Yv+Dhn4UWnxj/4Iyft8eGrmDzpPDnweg+K9lIsYea1u/gt4y8L/ABZ8+FvvRbrbwbc21zIhBNjcXUT5ikkVgD/GkooooAKKKKACv9dH/g1z/bI/4a0/4JKfBnQNc1X+0fiF+ypqeq/sw+L1mn3Xf9ieBbfT9U+E90sDs066fH8Jtf8AB3hyC6cvDd6n4Z1lYXDW01vb/wCRdX9in/Bmj+2R/wAKg/bx+Kv7IniHVfs3hX9rf4YS6r4Us5pv3b/GH4HQ6v4s0mC2SVhHb/2p8MtU+KDX0kJE19daJoFs6TiGAwAH+nJRRRQAUUUUAFFFFAH8fv8AweV/si/8Lg/4J8/DL9qnQ9MNz4n/AGRfi3axeIL2OHc9t8JPjm2leCPETSPGDI/k/EnTfhGYRJmG3trjVJcxl2L/AOYTX+7F+2V+zj4e/a+/ZQ/aJ/Zg8UfZo9K+Onwf8d/Ddb+6jMseh6x4j8P3tn4b8TRoFc/a/C3iJtK8R2DCOTy77S7eTy5Nuxv8L/xh4T8Q+AvFvijwL4u0u50TxX4L8Ra34T8T6LeKEu9I8Q+HNTudH1rS7pQSFubDUrO5tJ1BIEsTAE4oA52iiigD+uX/AIM5P2RP+F1/8FHfGv7TOuaZ9r8JfsefCXU9W0u8kh863g+LXxoi1T4e+DIJVkHk5HgSP4t6rbyEtNa6jpOnXECLIqzwf6idfy9f8Gkf7In/AAzp/wAEqdA+L2uaX9i8cftgfEXxR8Zr2W4h8rUYfh/oc3/Cuvhjpcx2gSabc6d4Z1nx7o7ZkLW3xBeQyDzBDD/ULQAUUUUAFFFFABX4r/8ABwj+2R/wxN/wSe/aj+IGk6r/AGX8Qfif4YX9nb4VyRzfZ74+M/jTHd+F77UNKnDK0WreE/AJ8b+O7CRNzrP4VBVcjI/aiv8AOZ/4PWf2yP8AhLfjp+zF+wv4a1XzdI+EHg/Uvj58T7O1m328nj34kyT+Gfh/pepw5/dar4U8D6Fr2tWwCDdpnxRhcu+8JEAfw20UUUAFFFFABX0V+yL+z14h/ay/ak/Z7/Zm8LGePWvjr8Yfh/8ADCG9t4/NbR7Pxb4l0/SdX8QyqVdVs/Dmj3F/r1/KyMkNjp1xM6lI2FfOtf1e/wDBnh+zVY/GP/gqdq3xm1yw+1aR+yt8BvHPj/RriSITW0XxE8f3GmfCbw3BOjgxiT/hFPF3xD1aylbMlvf6JbTwKJo0mhAP9Qf4b/D3wh8JPh54D+FXw+0a28OeA/hp4N8MeAPBXh+zBFpofhPwdotl4e8O6RbA8+Rp2kadZ2cW4likILEkk12lFFABRRRQAUUUUAf593/B67+2rri6/wDsu/8ABP7wtrZtvD40G7/ad+MGm2kp3atqN5qmu+APg/puoyQuuyDR4tH+JWt3OkXPmJdT6r4Z1eSCN9P02d/4GK/cf/g5E+Lt/wDGL/gtF+27qlzqMt9p3gbxx4W+EWg27Sb4NJsPhb8PPCXg/UdOtF6RRv4o03xDqdzGDzqWpX0pw0hA/DigAooooAKKKKACiiigD/ZW/wCDez9p7Vf2sv8AgkL+xx8Q/E+svrfjfwh4H1P4I+NLy4k87UH1X4JeJNX+G+jXOrTkl7rVdZ8E6B4U8RX15Mz3N5NrJu7p3uZpWP7RV/Gj/wAGUPj261j/AIJ9ftOfDq5vJLiPwN+1zqHiDT7aV9/2Cw8d/CP4awmCAHmK2m1LwfqV2IlxH9quLyYASTSlv7LqACiiigAooooA+WP24/gBp/7VP7G37UX7OOo2a3y/Gj4D/FD4f6dGyqz23iLxB4Q1W08LapbbwUW+0XxK2k6xp8jqyR31jbyOjqpU/wCFg6PG7xyI0ckbMjo6lXR1JVkdWAZWVgQykAgggjNf7+1f4bn/AAUk+FFn8C/+ChH7cHwe0yD7Novw5/aw+P8A4V8PQ7BEB4Y0v4o+J4fDDiIfLGJfD/8AZswjUlUDhVZlAYgHxVRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABX0z+yD+1R8R/2NPj34J+PPw0uS2p+Grv7L4g8PTXEtvpPjfwbqEkKeJPBuueWsgaw1i0jUwXDQzyaTq9tpmu2cf9o6VZyJ8zUV04LGYrLsXhcfga9TC4zBV6WKwuIoycatGvQnGpSqQkusZRV004yi5wnGcKk4T8TibhvIeMuHc94S4pyrBZ7w3xLlOYZFn2TZjRjXwOZ5TmmFq4PHYPE0pWvCtQrPlnCVOtQrU8PicPWoYrC4XEYf/Ut/Z1+P/wAOP2ofgz4D+Ofwp1Yar4N8e6NFqVoshiXUdG1CNmtta8Na5bxSSrZ694c1WG70fV7VZJIkvLSR7aa4tJLe5m9rr+Cb/gip/wAFI3/Y3+Mx+EXxT1x4P2b/AI06xZW2uXN7ORYfDPx9OsOnaN8QovNbyrTRb6NbXQ/HZUwj+yI9M1+aWT/hFo7O8/vWjkSVElidJI5EWSOSNg6SI4DI6OpKsjKQyspIYEEEg1/ob4a8d4Xjzh2jj06dLNsH7PCZ3goNL2GMUE1iKUG3JYPHxi8RhpaqDdfCyk54Zc//ABvfTb+ihn30S/GTMeEpxxuYeHvEjxfEHhfxPiIyn/anDc8VKNTJ8fiY04UXxJwpXr08mzukvZzxNOOVZ5SoxwudtYd9FFFfoR/HYUUUUAFFFFABRRRQAV4V+0p+0R8Nv2VPgr46+OvxW1T+zvCXgfSnvGtoWiOq+IdYnIt9D8K6BbyvGt5r3iLU5LfTNNgLpDHJM13fTWunWt5dwe3XNzbWVtcXl5cQWlnaQS3N1dXMscFtbW0EbSz3FxPKyRQwQxI0kssjLHHGrO7BQSP4Df8Agsr/AMFI7n9tv41f8K9+G2sTn9mv4N6tfWXgpYJJIrX4ieLYxLp+sfE+9gG0TWk0Zn0rwPHchpbHw29xqSx2N74o1axi/O/Ezj3C8BcPVcanTrZxjlUwuSYKbT9riuT38XWgmpfU8BGca+Ieiq1Pq+EjLnxEuT+zPoPfRLz36WvjDgeGZRxuXeG/C0sHn3ihxPh4yp/UMgWJSw+QZbiZU5UlxLxZWw9XKspgvaTwOE/tfP6tF4fKKCxX56ftb/tSfEn9sf48eNvjx8T7vOseKLzyNE0G3nlm0jwV4RsXlTw74N0FZQvl6ZolnIVeby45tV1OfUdcvxJqeqXs0vzXRRX+emMxmKzDF4nH42vUxWMxlericViK0nOrXr15yqVak5PdylJ6JKMYqEIRhCEIQ/7GeG+HMi4P4eyPhPhfKsFkXDfDeU4DI8iybLqMcPgcsynLMLSweBwWFox+GnRoUYpynKpVrVZ4jE4itXxWKxWIxBRRRXMe2FFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQB+0X/AAbvf8ppf2AP+yua1/6rTx1X+ytX+NT/AMG73/KaX9gD/srmtf8AqtPHVf7K1ABRRRQAUUUUAFFFFAH+Lz/wXp/5TF/8FDP+zjPFP/pHpdfkbX65f8F6f+Uxf/BQz/s4zxT/AOkel1+RtABRRRQAUUUUAFFFFABRRW/4T8Oah4x8U+GvCOkJ5mq+Kdf0bw5pkeCd+oa5qNtplkmByd1zdRrgcnOBzQB/tif8Ei/gnbfs7/8ABML9g/4SQwLbXegfsw/CbWPEEKJ5aL4y8deF7Lx/45KKQrFZPGPijXZA7qskgfzJFWR2UforWH4Z8P6d4T8N+H/CukR+TpPhnQ9J8P6ZDgDytO0awt9Oso8KABstraJcAADHAxW5QAUUUUAFFFFAHjX7Q/wF+HP7UXwQ+J/7PHxesNT1X4YfGDwjqngbx1pej61qPh3UtR8NazGIdTsbbW9InttS043cAaCSeznilMMkkYba7V+C3/EJn/wRT/6IR8UP/Eg/i3/80lf0nUUAfzY/8Qmf/BFP/ohHxQ/8SD+Lf/zSUf8AEJn/AMEU/wDohHxQ/wDEg/i3/wDNJX9J1FAH82P/ABCZ/wDBFP8A6IR8UP8AxIP4t/8AzSUf8Qmf/BFP/ohHxQ/8SD+Lf/zSV/SdRQB/Nj/xCZ/8EU/+iEfFD/xIP4t//NJR/wAQmf8AwRT/AOiEfFD/AMSD+Lf/AM0lf0nUUAfzY/8AEJn/AMEU/wDohHxQ/wDEg/i3/wDNJX76/Af4KeAf2bvgv8LPgB8KrDUNL+Gnwb8CeGvhv4D0zVNWv9e1DTfCXhHS7bRdBsLrWdUmuNR1KWz060t7f7VeTy3EqxqZHY816zRQAUUUUAFFFFABXyT+374Kh+JP7CX7anw8uFVofHf7Jn7Rfg9w4yAPEnwg8YaPu6EgobwOrAblZQy/MBX1tXmPxt0z+2vgz8XNG27/AO1vhj490zZjO77f4V1a12477vNxj3oA/wAFWiiigAooooAK+iP2R/2ivFX7I/7UHwB/ac8FGV/EfwL+LPgf4l2dlFMbddatfC+vWeoav4bupAR/xLvE+jRah4d1SMkLNp2p3ULHbIa+d6KAP98b4dePvCvxW+H3gX4o+BdUi1zwR8SfBvhjx94O1qDHkav4V8Y6JY+IvD2qQ4LDytQ0jUbO7jwSNkw5PWuyr+Zj/g0+/bI/4af/AOCUvgr4Y69qv274g/se+L9b+Aesx3E3mahP4DAj8Y/CPVGi3MIdKtPCOvn4faSRs3/8K7vAY8xmSX+megAooooAKKKKACv8iP8A4Ohv2Rf+GU/+Cu/x01XSNL/s7wL+1Dp+h/tQ+ETHFtgk1H4iPqGm/FANMiiFryb4v+G/HmsS26hZrex1nTGmQieKef8A13K/iy/4PS/2Rf8AhYn7H/7Pn7Y+gaZ52vfs3/FG8+HPje7t4cSL8Mfjfb2cNlqWp3CjMlroPxI8KeE9H0uGQ4hufiBfvEQbiYOAf5qler/Af4O+Lf2hvjd8IPgL4Bt/tXjb40/E3wN8LPCcJjeSM+IPHvibTPC+lSTrH8wtYLzU4p7uTKrDbRyyyOiIzr5RX9TX/Bop+yL/AMNC/wDBUyy+NeuaZ9s8E/sefDPxL8VppriHztPk+JHi+GX4b/DbS5xtIS/hXxB4s8c6RIxQRXvgFZgxeNEcA/1Efgr8JvCXwF+Dvwp+B3gG0+weB/g78OPBPwu8H2ZVFe38M+AvDem+FtDjk8tVQzDTdLtvOcAeZKXc8sTXptFFABRRRQAUUUUAUtT1LT9G07UNY1e9tdM0rSrK71LU9Rvp47Wy0/T7GCS6vb28uZmSG3tbS2iknuJ5XWOKKN5HZVUkf4e//BSv9rbUP26v28v2pv2rLy4uptN+Lnxb8Ran4KivfMF1p3ww0JofCXwp0a4WTDLPovw30DwtpdwAkStcWksghi3+Wv8AqW/8HKX7ZH/DG/8AwSS/aK1HR9V/sz4hftC2tl+y78OjHL5N09/8XbXUrXx3c2sqMLi2udK+EGlfEXU7C9twJLXV7XTCssDyRzJ/j30AFFFFABRRRQAV/o4/8GRHwTt9H/Zn/bb/AGjJIEa8+Inxz8BfBa1uHTMkNn8HPAR8b3kdu7D5Iry4+OVmboRkCeTTrXzdxtotv+cdX+sV/wAGjPw8/wCEK/4Iy/DbxJ5Hlf8AC3fjj8eviH5m3H2n+zPGC/Cfz8/x7f8AhWH2bd2+z7f4aAP6bqKKKACiiigAooooA/AH42/8Gyv/AASQ/aG+MfxV+PPxT+DvxK1z4lfGf4h+Mfij491e2+OvxQ0u01Dxd461+/8AEviC5stLsPEENhpdjJqepXJstMsYYbLT7XybO0ijt4Y0Xy//AIhM/wDgin/0Qj4of+JB/Fv/AOaSv6TqKAP5sf8AiEz/AOCKf/RCPih/4kH8W/8A5pKP+ITP/gin/wBEI+KH/iQfxb/+aSv6TqKAP5sf+ITP/gin/wBEI+KH/iQfxb/+aSj/AIhM/wDgin/0Qj4of+JB/Fv/AOaSv6TqKAP5sf8AiEz/AOCKf/RCPih/4kH8W/8A5pKP+ITP/gin/wBEI+KH/iQfxb/+aSv6TqKAPzx/4J9/8EuP2Pf+CYfh74leFv2Q/BnijwZonxZ1nw9r/jS08SeP/Ffjv7Zqnhix1LTtKuLKTxRqOoPpuy01W6iuUs2iS6xA04Y28RX9DqKKACiiigAooooAK/xw/wDg4/8ABUPgH/gtn+3xocCqqX/xC8BeNSEGAZviT8E/hj8Rbhug+Z7jxTKznu5Y5Ocn/Y8r/Iq/4OqtM+wf8Fw/2s7rbt/trw1+zhqecff8r9mz4UaNu98f2Tsz/s47UAfzuUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFf2k/8EEv+Ck3/AAuPwRafsZfGXX/O+Knw00NpPg7r2qXObrx78NdHgHmeE5Jp23Xfib4d2UaiyRWNxqfgiOKVbct4U1i/uv4tq/os/wCCB3/BPTX/AIzfGHS/2xvHker6F8KPgh4jWb4eC2uLzS7j4h/FPT0DRi3uLaSC4m8I+C1mS68QMkq2WuazLYeGZRqOnxeK7CD9U8Gsw4iwPHmVUuH6UsV9fn9WzfCSnKGFqZOpRqYzEYqaUo0fqEbYvDV5Rco4qNKhBS+uTpv+Bf2lnB3g3xT9E7xAx/jBmFHIlwph/wC2/DviGjh6OJz3BeJEqNXCcNZRkeGnUoVswfFldy4fzrK6daFGvkNbH5piZUFw1h8XT/tsooor/QQ/4+QooooAKKKKACiiigD+Xv8A4L7f8FKz4E0DUf2Gvgpr5j8ZeLdLgk/aB8R6Vc7ZvDPg7VbZLqx+GNtcQMJItZ8ZWE0GoeLAHj+y+Dri00d1u08V3yab/HXX9nv/AAXw/wCCbH/C2vBt5+2p8GNAMvxN+HWixx/GvQNLts3Pjj4caPb7YPGsUMCbrnxJ8PbKPZqrurTaj4GiJa4T/hENPsr3+MKv4I8cY8SR48xzz982GlSg+HnS9osF/YilajHDqd0sRGv7VZmm/aPHNyl+5lhLf9b/AOytreCtX6JvC8PCOHss7o47ER8YqeYSwkuJn4nuknmFbOJYdRlLKK2VLL5cEOMVg4cKxhRopZjR4icyiiivx4/0hCiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAP2i/wCDd7/lNL+wB/2VzWv/AFWnjqv9lav8an/g3e/5TS/sAf8AZXNa/wDVaeOq/wBlagAooooAKKKKACiiigD/ABef+C9P/KYv/goZ/wBnGeKf/SPS6/I2v1y/4L0/8pi/+Chn/Zxnin/0j0uvyNoAKKKKACiiigAooooAK+mf2K9J/t79sf8AZM0Pbv8A7Z/aZ+A+k7MZ3/2j8U/Ctntxznd52MY5zXzNX11/wT8v4dK/b0/Yk1S4VXt9N/a6/Ztv51f7jQ2fxl8GXEqv/slI2DexNAH+59RRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAVyHxB/wCRC8b/APYoeJf/AEzXtdfXIfEH/kQvG/8A2KHiX/0zXtAH+BtRRRQAUUUUAFFFFAH9af8AwZ5/tkf8KG/4KQ+Jf2aPEGq/Y/BP7Znwy1Dw1Y200/kWZ+L/AMJINW8f/D+8uJJG8gPP4SPxS8M2MJCTXuseJdJtYJGlaO3uP9SWv8Gr9nj43eMP2avj18Gf2hfh9P8AZ/G3wS+J/gb4p+GC0rxQz6x4G8R6d4jtLG8KAmTTtRk0/wDs/UrdlkiutPubm2nilhlkjb/dI+Cvxa8HfHz4O/Cr45fD2+/tLwH8Yvh14L+J/g2+JQvc+GfHfhzTvE+iSyiNnRLg6dqduLiIMTDOJIm+ZCKAPTaKKKACiiigAr4z/wCCiP7LGnfttfsOftSfsrX8NrLdfGf4OeL/AAz4WlvTGLXTfiHbWJ134Za7OZf3fl+HfiJpHhfXTuZB/wAS7iWI4kT7MooA/wABXVNM1HRNT1HRtYsrrTNW0i+u9M1TTb2F7a90/UbC4ktL2yu7eULJBdWlzFLBcQyKrxSxujgMpFf6jf8AwZ4fsi/8KM/4Jp+JP2jdc0v7J4w/bG+LGseKbO7ki8i6l+FHwjm1H4ceA7O4jdfO2f8ACXRfFXxBYTOVjutL8TWNzbxmGRLi4/jc/wCC+v7Afir4Mf8ABbn4xfAr4Y+GpJo/2vPid4K+LfwL0eCE20Wt6j+05ryQXuk6bbxRtHb2Vp8b7jx34S02C1V4YbPSrZYoogPs0X+r7+zB8BfCv7Lf7OPwK/Zv8Eqn/CK/Az4T+AvhZo9wsK28mo2/gnw1p2gyazdxqTu1HXLmym1jU5nZ5bnUL66uJpJJpXdgD3WiiigAooooAKKKwvFHibQPBXhnxF4y8VapaaH4X8JaFq/ibxJrd+/lWOj6BoOn3Gq6xql5Jg+Xaafp1pcXdw+DshhdsHGKAP8AN2/4PR/2yP8AhY37XHwD/Yq8N6r53h/9m34dT/Er4g2dtNiP/hanxqFlcaTpmqW4Yh7rw38MdB8M6zpUzhWitviTqKICJmJ/itr6y/bt/ah179tX9sf9pP8Aaq8RG6juvjh8XfF/jbS7C9fzLjQfCN1qUln4D8LF98m6Lwl4IsvD/hm2Jkc/ZtJiBdj8x+TaACiiigAooooAK/2Hv+DZvSf7G/4Id/sIWe3Z53hv40atjGM/29+0r8Ztc3f8D/tHfnvuzzmv8eGv9kD/AINw7+HUv+CJ37A1xAqqkfw58c2DBOhm0r40fEvTLhj/ALb3FnKz/wC2WoA/biiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAr/JJ/4Ow/+U2X7Q//AGTv9nj/ANUr4Nr/AFtq/wAkn/g7D/5TZftD/wDZO/2eP/VK+DaAP5vaKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKK6vwJ4G8W/E3xn4X+HngLQdQ8UeNPGmu6b4a8L+HtLi86/1fWtXuo7OwsrdCVRTLPKoeaZ47e3iD3FzLFBFJIt06dSrUhSpQnUq1Zwp06dOMp1KlSpOMKdOEIKUpznOcIQhGMpSlKMYpuST58Xi8LgMJisfjsTh8FgcDhsRjcbjcXXpYXCYPB4OhWxWLxeKxOIqUaGHw2Fw2GxGIxGIr1aVGhQoVq1WpTp0pzj9Y/sAfsT+O/27/wBofw38HvC32vSfCtqY/EXxU8cx2/nWvgfwDZ3MMep6gDIpgm13VHkTR/C2myZ+361dwPcCLSrTVL2z/wBHr4T/AAs8CfBD4beC/hL8MtAtPDHgPwBoNl4c8NaJZj5LWwskOZriZv3t7qV/cvPqOr6ndNJe6rqt3eal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gAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAr+z7/ggp/wTT/4VH4Psf20vjV4f8r4n/ELRXX4K+HtVtsXPgT4d6zbFJvGk8E6brXxN8QbCXZpbIqz6X4Hn/17P4t1GysPyI/4Ip/8E13/AGxfjB/wuX4r6G837N3wa1q0m1S1voD9h+KPxAtlg1HSvAMXmL5V3oOmRyWmt+O8ear6bNpfh14h/wAJK95p/wDedHGkSJFEiRxxoscccahEjRAFRERQFVFUBVVQAoAAAAr+o/AXw29vUpcdZ3h/3FGclw3ha0NK1eDlTq5zOE1rTw8lOjlzaaniFXxkbxw+Hkf4Nfta/psf2Tg8d9FLwvzi2aZlh6E/GrPctxHv5dleIhRxeC8NsPiKFS8Mbm1KWFzPjSMKkZ4bKJZTw5VUKub5vRT6KKK/rU/55AooooAKKKr3d3a2Frc319c29lY2VvNd3l5dzR21raWttG01xc3NxMyQwW8EKPLNNK6RxRozuyqpIG0k22kkm220kkk2222kkkm220kk22km04xlOUYQjKc5yjCEIRlOc5zlGMIQhGMpSnKUoxjGMZSlKUYxjKUoxlYoqlpuo6frGn2Gr6TfWeqaVqlla6jpmp6fcw3un6jp99AlzZX1jeWzyW93Z3dtLHcW1zBJJDPDIksTsjqxu0k1JKUWnFpNNNNNNJppptNNNNNNpppptNNucJ0pzp1ITp1Kc506lOpCdOpTqU5zp1KdSnUjCpTqU6lOdOpTqQhOE4ThOEJwnCBRRRTJCiiigD8if+Cvv/BOiw/bq+A0ms+CNNtIv2i/hFZalrXwv1HENtN4u00p9q1z4X6pdvsRrXxCIRc+Gp7yRIdI8Vw2j/arDS9W8QPcf59Ooaff6Tf32larZXem6npl5c6fqWnX9vNZ31hf2Uz215ZXtpcJHPa3drcRyQXNvPGk0E0bxSIrqyj/AFjK/kJ/4L+/8E2P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/DSP/BUjUvgr4f1X7d4A/Y18AaL8IbSK3m87TpviZ4mSHx78VtVhBYmPULa61fw18PtYjCoEvPh1sCsVMsoB/LfRRRQAUUUUAFFFFABRRRQAUUUUAFf6lH/BsR/wW/h/bw+Ddn+xj+0n4qib9sH4C+E7ePwt4i1m7Vb/APaF+D2gQwWFp4kW4nYPqXxM8BWv2TS/H9u5k1LxFpA03x8kmp3U3jWXRP8ALXr0j4P/ABg+J3wA+J/gf4z/AAY8b6/8OPil8N/EFl4o8E+NvDF61jrWg61YMTFcW8oDxT288TzWWpabew3OmavplzeaVqtneabeXVrMAf72FFfzsf8ABCH/AIL2fCb/AIKr/DKw+GXxPvvDPwy/bk8CaKg8e/DJbqLTdK+K+nadbZuvil8HrW8nM9/pc8cL3fi7wbBJeav4DvTKZvtnhqfStbu/6J6ACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooA+HP8Agp3/AMo1v+Chf/Zjn7WX/qhPH9f4dVf7iv8AwU7/AOUa3/BQv/sxz9rL/wBUJ4/r/DqoAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKtWNje6ne2em6bZ3WoajqF1b2NhYWNvLd3t9e3cqQWtnaWsCST3N1czyRw29vCjyzSukcaM7AFpNtJJttpJJNtttJJJJtttpJJNttJJtpOZzhThKpUlGEIRlOc5yjCEIQjKc5znOUIQhCEJznOc4QhCE5znGMZSj7x+y5+zX8Sf2t/jj4G+BHwr0/7V4l8ZaksdzqVxHK2keFPDtpifxB4v8AEM0SsbbRPD+nCW8uiM3F5MLbStOjudV1CxtLj/SQ/ZX/AGZ/ht+yJ8DPA/wH+Flh9n8O+D9PAvtWniiTV/F3iW8CzeIfGHiGWIYuNZ1+/wB9zMNxgsLUWej6ctvpWm2FrB+fv/BHj/gnDZfs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FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRX+iL/wb7f8ABCH/AIJY/tyf8Eufgl+0f+0/+zPc/En4yeMPFvxm0vxD4tj+Nn7QHgxL+x8JfFfxZ4Z0CEeH/AXxT8MeGbT7DommWNmZLLRreW6MP2m8e4upJZ3AP87qiv8AXt/4hZ/+CF//AEZZe/8AiS37WX/z86/zu/8AgvN/wS9n/wCCWX7eXjL4WeEdM1OL9nP4pWsnxW/Zq1a+ub/VBF4A1e9mg1P4f3etahNeXeoa38LfEKXnhW4k1LUb7XdQ8Op4U8U6zL5/iiNnAPxWor239mfwf4e+IX7R/wCz/wCAPF1gdV8J+OPjb8KfB/ifSxd3tgdS8PeJvHeg6LrVgL7Tbi01GyN5pt7c24u7C7tb23MnnWtxDOkci/6wH/ELP/wQv/6Msvf/ABJb9rL/AOfnQB/kJUV+yP8AwX3/AGUPgJ+xH/wVT/aN/Zr/AGZfA7/Dn4L+AdJ+Cdz4U8ISeKPF/jJ9Ln8X/Ar4ceM/ELnxD4717xN4ovvt/iTX9W1ALqGtXaWguhZ2S29jBb20X43UAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRW74X0mLX/E3h3QppZIIda13SNJlniCtLDFqOoW9nJLGr/K0kazF0DfKWAB4zQBhUV/pDf8AEET+yX/0ex+0V/4RHw0/+R6/kG/4Lj/8Ez/AP/BKP9tHTf2X/hx8SvF/xV8PX3wU8DfFJ/E/jbTNF0rWU1HxZrvjTSLnS1tdCRLE2VpF4Xt5oJSPPd7qYSHaiUAfjlRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFAEscE82fJhll243eXG8m3OcZ2g4zg4z1wakNleAEm0uQAMkmCUAAdSTs4Ar/AEFv+DGz/kUf+ClP/Yx/sn/+mz9oev7R/wBsv/k0D9qz/s2345/+qw8UUAf4TQBJAAJJIAAGSSeAAByST0FWfsN7/wA+d1/4Dy//ABFe8/sk/wDJ1f7Mv/ZwfwY/9WP4br/d1oA/wCpI5Im2SxvG+AdsisjYPQ7WAOD24plf01/8Hcf/ACmc+J3/AGRL4Cf+oUtfzKUAFFFFABRRRQBZWzu3UMtrcsrAMrLBKVYEZBBCkEEcgjgio5IJ4cedDLFuzt8yN492MZxuAzjIzjpketf7bH/BHz/lFH/wTb/7Mc/Zd/8AVNeD6/kr/wCD5n/kHf8ABMX/AK/f2yv/AER+yzQB/n7UUUUAFWFtLt1Dpa3DowyrLDIysPUMFII+hqvX+zb/AMG/P/KGb/gn1/2QyH/1LfFFAH+MxJbzwgGaCaIMcAyRugJ9AWUZP0qGv9Hn/g96/wCTXP2Hf+y+/Eb/ANV3a1/nDUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAV/rff8GoX/AChI/Zt/7Hz9on/1evjuv8kGv9b7/g1C/wCUJH7Nv/Y+ftE/+r18d0Af0dV+D3/Bw/8A8EwY/wDgpl+wB4v0XwRoKal+0r+z5/avxj/Z4mt4Fk1bXNX03Tf+K2+FNtIF82SH4qeGLP8AszT7ES29tL480nwHqF/MtnpMqtR/4L7/APBQXxh/wTL+GH7CH7U3h46jfeE9G/4KA+AvCHxo8I6fJtfx38FPFvwG/aGs/H3hwQtJFBcalaWsFp4r8KLdSLaW/jbw14avrkPBaSRv+4XgDx54P+KfgXwZ8TPh74g07xZ4C+IfhXw/438FeKNIm8/SvEfhTxTpVprnh/XNOmKqZLLVdKvrS9tnZUYwzpvRWyoAP8Mv9jiKWD9sX9laGaOSGaH9pf4HRSxSo0csUsfxR8LpJHJG4DJIjAq6MAysCCAQRX+7DX+ZZ/wXb/4Jef8ADEH/AAWj/ZY/aQ+GHh3+zv2c/wBs/wDai+Ffj3TotOtfK0jwL8coPit4Svfiz4JCQKYNOsvEN3qFv8SPC8D/AGSCSHxF4j0LRbMWHguZk/006AP8iL/g6k/5Tj/te/8AYC/Zu/8AWYvg/X8/GiaHrXibWdJ8OeG9I1TxB4h1/UrHRtC0HRNPu9W1nWtY1O5istN0nSdLsIri+1LUtQvJ4bSxsbOCa6u7maKC3iklkRD/AED/APB1J/ynH/a9/wCwF+zd/wCsxfB+v6cf+DR3/gkR4C+HfwE0v/gpx8b/AAfZa/8AGn4x3GvWP7N1t4j021vI/hX8JtI1C68O3vxB0K2vI3k07xx8TNYsdbtrTXliS9sPh1Zab/YN9HYeOdfiuwD+fT9kv/g0k/4KsftI+GtI8bfETSfhV+yX4a1m1W/tdM+PfiXW0+JklnKv+jvN8N/AvhzxbqWgXkjH9/o3jrUPB2tWUaubrTopfKgl+5PEP/Bkb+2LbaSZvCn7Z37NGta79mkcab4g8MfFHwxpJvArGKA61p2jeLbwW7sFV7r+wTJGpZls5SoVv7xv29/28v2ev+Cb/wCzd4r/AGn/ANpXX9R0jwL4fvLLQNG0bw/p39seL/HvjjWYL6bw74D8GaS09pb3viLXE02/mibUL/TNH0zTtP1LWtc1TTNG0y/vrf8AnO/ZU/4PHv2Gfj18c/DPwi+LPwP+LX7NXhnxt4gtvDfh34v+KvEHhfxl4N0q+1Fkt9In+IlroUVjqvg/S77UJI9Pn1fTofFWmaM88Goa5d6fokeparpwB/DF/wAFBv8Agij/AMFEv+CZ8A8RftKfBG4l+FUt3b2Np8dPhhqK/EL4Pve3lx9ksrLVvE2m21vf+C7/AFG6It9K074gaJ4S1DWJDjSrW9AYj8oq/wB83x14F8F/E7wd4m+HnxG8KeHvHXgPxpot/wCHPF3g7xZpFjr/AIa8S6Dqtu9rqOj63o2pwXNhqWn3tvI8Vxa3UEsUiNyuQCP8eH/gvh/wTBtv+CWX7fHiz4TeBotUm/Z9+Kei2/xi/Z7v9TklvLiw8E6/qF/Yav4BvdTkeZ77Uvhv4p07VvDcU93cTatqHhdfCniHVyt5rzbgD8UKKKKAPuL/AIJ/f8E9P2jv+CmHxw1T9nv9l7TvCOqfEbSPh7r3xOvLbxp4qtvCGkDwt4c1nw1oOpyx6rdW9zHJfLqHizSFhsxGHlie4lDAQEH9nv8AiEL/AOCyP/Qnfs+/+H10b/5UV6j/AMGZn/KWXx//ANmWfF//ANWj8Ca/1J6AP8XT/gnN/wAESv2+/wDgp9res/8ADPHw303RPhl4X1mbQPFPx6+KupX3g74O6TrNrcCC80fT9et9I1rWvGet2Q/faho3gTw74mv9IhktJdch0uLULCS5/aX4o/8ABlr/AMFF/CXgm88RfDj48fstfFvxVp+nvdyfD+11vx/4J1TWbpD/AMgrwzr3inwXF4YubyUYME3ijVPB+nE7hcX1uArP/YJ8Q/8Agvt/wQ+/Yk8UaV+y6P2m/hx4Th+HjjwhJ4U+Avwq8f8Ajr4YfDCGwDKdHfV/g54D17wNa/YLozWWoaL4VvNX1PR9TW6t9Z02wuY7jb+2fgDx/wCCfir4H8I/Ev4beKdE8b/D/wAe+HdI8W+DPGHhvUINV0DxL4a16xh1LR9a0jULZ3gu7HULG4huLeaNuUcBgrBlAB/hF/GH4HfF79n/AOLHi74F/Gf4d+Kfhz8XvAmvyeGPFXgDxJpk1p4g0zWVaPyLdLZPNTULbUoZ7a90TU9LlvdL17TLyx1XRby/02+tLqb+jL9jH/g0q/4Ke/tU+A9F+J/xD/4Vd+yR4T8R2Vlqmg6J8dNT8St8VdS0rUIvPttQm+G3g/w7r154WzHgzaR4/wBX8H+Jrdnj87QVRzIv+h3+1p+z9/wTF+D3xs0f/gqn+2R4f+DPgn4mfBDwLZ+A/D/x3+LGoRW2meHbW01TU9d8OyaL4evZpNK8Q/FS1ubvVLLwLqmn6HrPxGhgnk0bwgwbybdfMv2Qf+C9H/BK/wDbo+NkH7O/7Of7TcHiP4u6sNWl8IeFvFPw4+Kfw3Pj220OyfUdSk8Gap8QPBnhzSdWvYbCK5v4/Dsl7aeK7qwsdR1C10Gax0+9uYAD/Om/4KFf8Gyn/BSr/gnx8Mta+OGt6R8Of2ivg54Z+1Xni/xZ+ztq3i3xPrXgHQLWEzyeJ/HXgfxN4M8J+JNO8PW8Mc82r674dg8V6F4ctreW98R6rpVjsun/AJ46/wB+3UNPsNWsL3StVsrTU9M1O0udP1HTtQtobyw1CwvIXtryyvbO5SS3u7S7t5JILm2njkhnhkeKVGRmU/4lv/BXX9l3wl+xf/wUq/bF/Zq+H9ldaZ4A+G/xg1M+AdJvJmuJ9H8DeMtM0rx/4O0X7TIPNuoNH8N+KtM0y1u5y9zdWtrDcXMkk8kkjAHwl4C8AeOvip4y8N/Dr4ZeDfFHxC8f+MdWtdC8JeCfBWg6n4n8V+JtavW2WmlaF4f0W1vdU1XULhgRFaWVrNM4DME2qxH9RP7M3/Bnv/wVJ+NvhzTPFvxZ1j4E/ss6dqllDew+GPib4v1nxT8SYY7oCS2F94X+Gvh/xToGlym3IlurDV/Gmn6zp8rx2d9pUF4t3Baf1Gf8Gtv/AASH8A/sefsg+BP20vih4PstR/ax/aq8IWXjfTNa13TbWfU/hD8D/EsL3vgPwf4SluI5LrRdR8e+GbjTvG3j2+gNlf3w1nRvCV/AIPChlv8A9mv+Cm//AAVC/Zo/4JT/AABi+Ov7Rd7r+oyeItafwn8Mfhp4KsbfUvHXxN8YLYzajJpGiQ3tzY6VpemaXYQvqPiLxNruoWGj6NZ+RAJb3XNT0LRNXAP4efGn/Bkn+2rpuj3Fz8P/ANsD9mLxbrUVqZYNJ8UaL8UfA9nc3SqGNour6d4d8ctEr/MkNxLpqqz7POS3Rnkj/nE/b5/4JN/t4/8ABNLXLKx/av8AgZrXhTwnrV+NM8LfFrw1c23jP4QeK794JrqLTtK8faC1xpdlrk1tbXdzH4W8SDQfFhtLS5vToQsojcH/AEK/+CfH/B2f+xX+23+0T4M/Zs8c/CH4mfsxeLfil4htfCHwr8UeMdd8PeNfAnifxhrOo22meFfCGs6voNvpmpeFPEHi29u4NP0VrvRb7w6dWki0298RWkl1ZyXP9LHx0+Bfwj/aX+E3jn4GfHXwF4e+Jfwq+I+hXXh7xf4O8TWMd9pupWFyA0c8JbFxpur6ZdJBqeha7ps1prOgazaWOs6NfWOp2NrdQgH+DBX78fsnf8G1n/BTv9tH9nj4YftP/BDwx8Gb74VfF3R7/XPB114k+Lml+HtbmsNN17VvDd02oaNPps0tjKNT0W+RI3lcvCscwOJAB8W/8Fbf+Cfev/8ABMn9u/40fsp395qmueDvD9/Y+Lvg94v1aKKO98ZfB/xpA2q+C9Xu3t44La51bS4/t3g/xRc2lta2Uni/wx4g+xW0NosCD/Uf/wCDcr/lCh+wL/2TTxj/AOrh+I9AH+Zd/wAFE/8AgiR+3T/wS6+HngL4n/tWaF8NNK8K/EnxpP4C8MS+B/iJYeM76XxDb6HfeIZI7yytLK1e0tf7O065ZblmZTMEi25cGvYv2TP+Dbz/AIK5/tgeDdK+JHgz9mt/hh8Pdftob3w/4p+P/inR/hI+uWNzbrdWmp6X4O1t5viNcaPf20sFzpmunwYmiarbXENzpmoXcBaRP9af4yfswfAX9oTxN8G/Fnxs+Gfhv4man8AfG118SfhNb+LbU6tovhT4gXGj3Og2/jBNBuHbR9T1zR9OvLs+H7nWLK/TQdSmi13SorXXtP0vUrHU1X9o/wDZ50LxAPCet/Hn4MaP4qMiwjwzqvxR8D6f4gMryeUkQ0a71yHUTI0v7tU+zbmk+QAtxQB/hrftF/AXx/8AsufHf4tfs6fFSLSIfiP8FfHniL4c+NotA1IaxosfiTwvqE2m6oul6qsNuNQsRcwv9nuvIh86PDGNCdo++f8Agn5/wRM/4KL/APBSy1XxL+zf8Drq3+FIuZ7Sb45/FHUV+HfwhN1aXTWV7baN4k1S3m1Dxtd6fdpJbarZfD7RPFt5pE0bR6rb2bYB/cf4Gf8ABK/Rf+Crf/ByZ/wUM0j4hJd3v7LXwH/ad+Kvxa+Od5pE7rbeMbKf4i3tn4E+E9vrdjKHsH+Jmq22oyX97ZzQ3n/CD+GPGsmj31jrMem3kX+iv8QPHHwJ/Yt/Zy8U+PvEaeFvg5+z1+zp8M77W72z0DSLHQ/DHgvwD4H0dng0bw14c0mC1tIhFZ2sGk+HPDej2qzX9/NYaPpVrLd3VvA4B/nyeHP+DI39sa60pZvF37Zv7NGh62bZHbTvDvhj4o+KdLW8KqZLcaxqWi+D7prZGLKl3/YYkkVVY2cZYqvw1+17/wAGlH/BVP8AZm8Lav47+HmmfC39rbwtotu19faZ8A/EGvSfE+3sIY2a5uF+Gnjjw34V1LxBcRuoWLR/AOpeNddu1kje30xyLhLf9ZviL/wfA6/B8UL9fhN+wPo2p/Bey1W5g02T4hfGm/0X4m+JNEjlC2ep3kfh3wVrnhbwXqd3ArTXGiwt47trCSRbdNd1BYTczf2gf8E+P26vg7/wUf8A2Ufhn+1p8EBqth4T8fwapZar4V8RGxHinwH4y8N6lcaN4q8GeJYtOubu1XUNJ1K2aazuopRDrOg3mjeILWOOz1a2UAH+HJfWN7pd7eaZqdndadqOnXVxY6hp99bzWl7Y3tpM9vd2d5aXCRz211bTxyQXFvPGk0MyPHIiurKKtf3U/wDB5N/wTR8C/C/xP8JP+Cknwj8NWPhr/hc/jOX4N/tIWGk28Vpp+s/E1vDmo+Jvhx8SPsNvHsTXPFPhvwt4x0LxtqX7i3v73w54Tv5o5td1rWL6/wD4VqACiiv6nf8Ag1A/4JtfCz9uj9t/x78XPjx4a0vx18JP2OvCXhbx0vgDXLSDUfDvi74teOtY1XT/AIYW/izSrqGW01jwvoNr4U8a+K7jR7j/AEXUtf0Lw3aanb6hoUmr6beAHxl+wt/wbnf8FT/2+PC+i/Eb4ffBXSvhB8I/EdrBfeHfit+0Z4gn+GXhvxDYXJVrbU/Dvhy30jxH8Ttf0W7t2+12HiLSPAN54c1G2xJY6vcGSJX/AF8k/wCDJP8AbmGitPF+11+ye/iIKuzS5LX4vx6KzbSWDa8vgOW+RQ+FVh4bcspLFUI2H/R8+IPjnw38LfAHjf4l+MLmew8IfDnwf4l8c+KLy0srrUbiy8N+ENFvdf1u5ttNsIp72+nttL0+5lhsrKCa6upEWC3ikldEP8Tnj7/g99/Z50vxidP+GX7B/wAYfGngNLm4ibxT4z+MPg74d+JpLaOTbb3Nv4K0jwf8SNOc3EY81oLjxtavBlULO24qAfz1ftL/APBqB/wWC/Z30G48TeH/AIafC/8Aac0ixSabUU/Zr+Ik/iTxDZW0Qys0Xgv4jeG/hf4z1+WY4SKw8IaB4j1IsSWtFjUyD4//AOCY/wDwRh/bj/4KM6v408Y/s6eF/A4079nj4oeDvDfxQsfiL40g8B65o2tXFzcaodPi0jUrCW6nubWDRNRhvYXWCa0vIfsssayEgf6Mn/BOv/g5S/4Jrf8ABQzxHovww0zxp4g/Zw+OuuvbWejfCr9oODRfDEfi7V5xsOmfD74g6XrGreB/E17LcGO20rRNR1Xw34z12WZF0rwlcMs6w/ym/wDBDL/gtp+yN/wSx+JH7fvwx/aL8K/HTxHr/wAf/wBrb+1fBN18IvCHgvxNpFpa6Rr3jTw/c/8ACQ3Xif4j+CbmykkvdZtJLcafZaqj2qzSM8cipFIAf6W1fwz/APBxP/wQO/4KD/8ABSn9v3SP2if2YfD/AMKdU+G9n+z78OvhzPc+M/ibp/hHWB4l8M+JPiBqeqRLpV1YXMjWa2viLTWhuxJsmd5kCgxHP9zFfg5/wUh/4OIv2Gf+CXP7Qtn+zT+0T4J/aU8Q+P734d+G/ibDf/CfwH8PvEnhYeH/ABTqfiHStOt5NR8T/FjwVqQ1WO58M6g13bro7W0UMlq0V7O8kqQgH+ch+33/AMEDf+ChH/BNf4F237RP7Tvh/wCFOmfDa68deH/h1Dc+DPibp3i7WD4l8TWGualpcTaVa2FtKtm1t4e1Ez3Zk2wusKFSZRj0/wDZL/4Nr/8Agp1+2r+zv8Mf2ofgd4Z+DN98Kvi5pWp6z4Ou/Evxc0vw9rk1lpPiLWPC94dQ0afTZpbGRdV0K/SON5XMkCxTAhZAB+s//Bf/AP4OI/2Gf+Co37CWm/s0fs7eCf2lPD/j+z+O/wAPviZLf/FjwH8PvDfhY+H/AAroPjnS9Rt01Hwx8WfGupHVZLjxJYNaW7aOttLFHdNLeQPHGk39cP8Awbgf8oTP2B/+yeePP/V2fE2gD/M5/wCCif8AwRF/br/4Jd/DjwJ8U/2rNC+GeleE/iN43k+H/hqXwP8AEWw8Z38viKLQtS8RNHeWVpZWr2lp/ZulXbC6ZmUzCOHblwR65+yX/wAG3/8AwVy/bC8G6V8SPBX7Nb/DL4ea/bQ3vh/xX8fvFGj/AAkOu2F1brd2ep6V4Q1ySX4jXWjX9rLBc6Zry+DV0PVba4huNM1G7gLSL/rVfGb9mD4C/tDeI/g74o+Nvwz8N/E3UPgF45n+JvwotfFtqdW0Twt8QpNFvPD9r4wXQLh20fVNa0bTtQvT4fn1mz1CLQtTmh17TIbbXtO0rUrHU1b9o/8AZ50HxAPCeu/Hn4MaL4qMiwjw1q3xR8D6d4gMzSeUsQ0a81yHUTI0v7tU+zbjJ8gG7igD/DZ/aP8AgF8QP2WPjx8Wv2cvitFpEPxI+C3jrX/h541i8P6kNZ0RPEXhu9ksNSXS9VENsL+y8+NvIuvs8PmphjGh4H3p/wAE/f8Agif/AMFFv+CllsPEn7NvwNu4fhUtzcWc/wAc/ifqC/Dv4QfarS5Nle2uj+JtVt5b7xreaddq9tqth8PtF8W3+kTIyapbWZxn9yvg3/wSx0f/AIKuf8HKX/BQbQ/H63d3+y58DP2lfib8XPjrf6PcOlv4u01/HU1l4H+FNrrdjKHsJfiZq8N99uvbOaG9XwR4b8az6Pe2WswaddR/6K/jvxn8CP2Lv2c/E/jnX4/Cnwa/Z5/Z0+GV/rd5Z6BpFjoXhfwT4A8DaM8sWkeHPDukQW1rEsFlaRaZ4f8ADuj2onv76Wx0nS7Wa8ureBwD/Pj8N/8ABkb+2NdaUs3i/wDbN/Zo0LWzbRu+neHPDPxR8VaWt4VUyW41jUtF8H3TW6MWVLv+xFkkADGzjLFV+Hf2u/8Ag0m/4Kpfsz+FtX8d/DrTfhX+1t4X0a3a9vdL+AniHXn+J8FhDGzXNwnw18ceG/CuoeILiNlCw6P4D1Txpr12skb22luVnSD9ZPiP/wAHwOvW/wAUb9PhH+wRo2qfBex1a5g0yb4ifGi+0T4m+JdEjlC2mp3kXhzwXrvhfwVqd3CGmn0WKTx5bWDyLbprmoCI3Ev9nn/BPX9u34Of8FIv2UPhr+1n8EF1XT/CvjyLVNP1jwn4iaw/4SnwF408NajNo/irwZ4kj065u7UX+l6hb/abC7ikWLWvD1/oviC3hhtNWt41AP8ADov7C+0q+vdL1Syu9N1PTbu5sNR06/tprO+sL6zme3u7K9tLhI7i1u7W4jkgubaeOOaCaN4pUV1ZR+jv/BPT/gkp+3J/wVCv/HUP7IXwy0PxfonwvvPDNj8SPFvif4heCPA3h/wdceMI9Zm8OJexeI9btPEOrnUovD2syKnhbQNfltksXN7Hb+dbCf8AqJ/4PJ/+CaPgX4Z+IPhL/wAFJvhH4asfDUnxh8aN8Gf2krHSYI7Wx1v4jyeHNS8S/Db4lNY28YWPW/Efh3wr4v8ADvjbVCYbfULvQfB13LHJrmratfaj4r/wam/8FKv2JP8AgnT8Gf8AgoF4k/bB+PPhz4SDxX4o/Z7u/Bfh2407xD4m8aeN10DRvjDFqyeE/B3hHSNc8Q6wLC51bSba+vIrBNM02XU7J9UvrG3l89QDlPBP/BlN/wAFHNWS3n8d/tHfsa+DIplR5LbRvEvxl8ZapabgC0VxA/wc8M6W08ZyCLXWbmBiPkuSDkWvG/8AwZRf8FEtK82X4f8A7S/7HPjKGIFki8Ra58ZfBGo3AHRYYLX4ReMdPEzcfLcatbxAZzPwAf19+LX/AAez/sX+HdYubD4L/sjftGfFLTLa9a2Gu+NfEPw++Ettf20cmx9Q02ysb34nak1vMoM1nDqltpF5JGYxeW1hMzxRfff/AATJ/wCDoX9iH/go58b/AAx+zPP4A+Kv7OPxw8dtfw/D7SviE/hvxH4B8c6rYWb6gPC2h+OvDmoLd2niy7sLbUbuw07xH4T0HS9RFj/Z+m65e67e6fpF0Af51H7fP/BGf/gol/wTYhTXv2oPgDq2l/DO51BNM0341eA9T074ifCO8u551trG3vvFnhqa6bwffarOTFo+j/EDT/COuasUlbTtLuUjdx+XFf73vxP+GPw++NPw88Z/Cb4r+ENC8ffDb4h+HdT8J+NfBviaxi1LQ/EXh7WLZ7TUNN1C0mBV45YnJjljMdxazrFdWs0F1DDMn+Id/wAFEf2YIP2Lv25v2qv2WbC9utS0L4J/Gvxv4O8JalfyLLqWo+BYdVlv/Ad/qsiRQRtq954NvtCudW8mJYBqMtysG6EIzAH6Sfsi/wDBtr/wU3/bc/Z0+Gf7UnwK8M/Bq++FHxa0/WtT8H3fib4t6X4d1ya10DxRrng/UDqGiz6bPNYuus+HtSSJHlcy26wzghZQB49+3t/wQk/4KD/8E4vBXwy8c/tEeC/A13p/xf8AibY/CHwBpHws8bR/EjxTrvjzVNH1TWtN0a18O6Npi6jPLf22kXUFkltHcT3V+9tZwQSTXCCv9J7/AINrf+UIf7Bf/YmfFP8A9aB+LVfpH+1l8bv2Qv2Y/A2j/tF/th+M/hL8N/CPwo1q51PwZ8QPihDplxqHhvxfq+iano8q/DW3ms9R8SXnjzV/DlzrelW+m+BLC98W6polzrNhaWtxYXGoQuAf5tP7Kf8AwZ+/8FNvj94D0j4hfFjxF8Fv2UrTX7K11DTPA3xV1bxRrvxWhs7yD7TbzeIPCHgrw7q+leF53ieHz9F13xXZ+KNMnaWz1rQNMvbaW2Hx7/wUl/4Nvv8Agor/AME1vh9qPxs8aaN4D+O3wG0PyG8V/FP4DavrmvweAIbqVoLa7+IPhDxL4e8MeL9A0ppQsdx4msNK1zwfpkk9lb6t4jsLu/s7ab/SX/Yp/wCC4/8AwTG/4KDfFq8+BX7L/wC0hB4s+LcWna3rWk+CPFHw/wDiV8NtU8W6F4eVJtV1TwbN8QfCXhzT/Eb2tk0mrTaDYXr+LLbRLTUdavPD9tpWl6jd2v6m+J/DPh7xr4a8Q+DfF2i6b4k8KeLdD1bwz4n8O6zaQ6ho+v8Ah7XrC40rWtF1WwuFe3vdN1TTbu5sb60nR4bm1nlhlVkdgQD/AA3P2MP2E/2qv+Cgnxctvgn+yZ8Itf8Air42NqNT1uWyez0nwp4L0ESeXJ4j8deMtbuLDw14S0VZAYLe51nUrabVb8xaRolvqes3Vnp1x/TPH/wZS/8ABRaTwTFq5/aR/Y6h8dyQQ3D+C59f+MQ0eDfAJZbOTxlb/CS5ZtQhkP2YrD4al06SYFk1T7Ptnb+tPU/2yf8AghX/AMG+vg3TP2S9N8f/AA++A+rl4Ne134X/AA90Dxv8Y/jJrOpahHBIvi34xal4T0nxh4lttYvdOuobrSLn4naxpU03h5bex8G2Z0O00/Tof1s/ZJ/bF/Zq/bq+DOk/tAfspfFXRPi98KdY1PVNCj8Q6VZa5ot7pniDRJI49W8PeJPC/inS9C8V+FteskuLS8fSPEeiaZfTaVqGla1awz6Pq2mX92Af4t/7cv8AwT9/at/4JzfGS7+CP7V/wu1TwB4mdLq+8K+IIW/tbwD8R/D9tMkP/CUfDrxlaxjSvFGjEy24u0geHWNCuZ00vxNpOiayk+mw/GFf61f/AAdX/sm+A/2iP+CSPxg+Ker6L9o+Jn7Juq+FPjH8LdftkjW+02DUfGHhjwT8S9FuZ/LaeTw7rfgPXdR1TUNOjkiin17wv4U1ScudFiQ/wu/8G1X/AATo+HX/AAUX/wCCkWh+GPjbo9t4l+B/wA8Aav8AtAfEXwdfqH0v4gy+HfEPhjwz4M8BavGySx3Oh6v4u8VaZq/iXTJ0+za54V8Pa7oUzxLqYcAHhf7BH/BBD/gpt/wUW0DTfH/wQ+Ba+Efg5q+46Z8bvjbrSfDL4c6vEG2C78MfbbTUPGnjjTDIJYW1nwJ4O8T6NDc21xaXN/BdxGCv22s/+DJT9uh9FafUP2uf2TrXxF5MbLpdnb/GC+0U3BUGWJtfn8A6dfLCj5WO4HhtpJFwzW0ROwf6TtraaZoOlW1jp9naaVo2jafDaWOn6daR2tjpumadbLDbWdjY2cSRW9pZ2sKQWtpawrHDDGkMEQVVUfxM/Gf/AIPbP2Y/CXju/wBA+Cf7Ffxh+LfgvTdav9Nbxx4z+J3hn4QXWqWFlcTW8Wt6H4Sg8IfEq9e11HykubKy8Qaj4c1OO0mj/tK00+9WaxjAP59P2h/+DR3/AIK+fAzw9eeJfCPhb4HftM2dj5s11pXwC+KN3N4qhsYl3tdR+HPi74T+Et5q8235RpXhp9e1aaUGO0srobWb+a7xp4M8W/Dnxj4r+Hvj7w1rngzx14E8Sa54O8aeD/E2mXei+I/Cvizwzqd1oviLw5r+j38UF9pWtaJq9leaZqmm3sMN1Y31tPbXEUcsTqP9Yf8A4J//APB0t/wTQ/bg8TaH8MfFeu+Kv2SPjBr89vp+j+Gvj/8A2FYeA/Eus3Uoig0nwt8XNF1O88Km7uHkht7K38cw+AL/AFW/lTT9GsNRunhSb/NT/wCCscsc3/BUz/gpPNDIksMv7e/7X8sUsTrJHJHJ+0F8QmSSN1JV0dSGR1JVlIIJBoA/P6iiigD9ff8Agnl/wQy/4KIf8FOvBF98Vf2Yvht4Ml+D+l+M9S+HuqfFP4gfE7wd4Q8O2HjDR9N0TWNV0dtCGoap8Q7xrHS/Eei3k17pngm+01lvlggvJbqKe3i/bbwd/wAGTn/BQTUBG3j39qX9jzwsrgM6eFtR+M/jaeLIzsddT+FHgaBpF6OI7l4852SuuGP11/wbf/8ABYj/AIJ7f8E2P+CUXj7Qv2q/j1p/hb4jXv7WXxV8VaD8H/DGg+IPG/xS8RaJqHw3+DVjpmoWPhrw7p13Fpem6ne6Nq1nY654q1Hw74elu9Nu7dtXSaIpX0v49/4Pdv2T9N1tbb4ZfsTftCeMfDouJEk1fxv47+HPw61b7MpYR3EOg6GPibaySSYUm3l1+3CBjmYsu0gH5EeO/wDgyu/4KV6Glzc+BPj9+xr48t4VdorS98YfGDwfrl3tBKJBaXfwa1fREkkxt/0rxJbxozLmUpudf55/24/+CY37cn/BOTxLp3h79rz4A+KvhjZa/cy2vhTx1DNpfi34YeMJ4klnNr4b+I3hK+1nwle6stnC1/ceGptUtfFWm2TRz6todgrgV/qM/wDBJ/8A4OGf2MP+CsPjfV/gx8PvD3xJ+Cnx/wBF8M3Xi8fC/wCKVroM9r4t0DTZ0i1u/wDh74w8M6vqVh4gbw8lzY3GsaZrWn+FNeW1u3v9L0jVNL03V9QsP1Q/bF/ZM+Dv7cX7N3xW/Zg+Onh2z8QeAPin4W1HQ5pZ7O1utT8K669tKfDfjvwtNdRyLpvi7wXrJtPEHhzUowGt9RsolmEtpLc28wB/jFf8E+/+Cd/7Qv8AwUw+NGtfAH9mQ/D65+Jmi+AdX+JDaR8QPGlr4It9U8N6FrGg6Lq39i317a3MGpapZXHiTTrqTSott22mLfajGj2unXrw/sv/AMQhf/BZH/oTv2ff/D66N/8AKivzE/4JzftF+Iv+CXH/AAVU+CfxU8T332K3/Z+/aE1T4Y/Gv7C80ltc/Dy81fVvhL8Z44YCim9+zeFNS8Rano8VzDhdWsNLu9kVxbxSRf7Vttc297b295Z3EN3aXcMVza3VtLHPb3NvPGssFxbzxM0U0M0TLJFLGzRyRsroxUg0Af4HHjvwT4m+Gnjjxl8OPGulzaJ4y+H/AIr8ReCfFui3OPtGkeJvCur3mha9pc+3I87T9VsLq0lwSN8TY4r3L9jj9kL42/t3/tF/D39lr9nfQ9O8QfFn4lv4i/4R2z1rVYdB0OC28K+Fta8Za7qGs65cxyW2lWFjoWgajObiZSJbhbeyhWS6uoIn/Yr/AIOk/wBkv/hlz/gr18b9c0nTP7P8E/tR6N4b/ad8LGOLEEmqeOxfaJ8Ty86ARSX138W/CvjjX7iHCzwWmvac86sJ4ri4/Wf/AIMnv2Tf+Ep+P/7V37aOvabv034R/D3QPgT8P7q5h3wS+MPipqS+KvGmoaZLtIj1Pwz4S8EaNpN0xZSNN+IzRqkgndogD88f+IQv/gsj/wBCd+z7/wCH10b/AOVFfinp/wDwT9/aZ8Tftwav/wAE7vh34X8O/E79qTSfiV4x+En/AAiXg3xx4VTw7qHjn4e2WtX/AI20ux8c+KtT8MeFEi8NQ+G/EKalfajqen2i3GjXtvBLNKIFm/2Yv+CgX7VuhfsO/sVftL/tX6+bRo/gp8J/E3inQbG+bba6547nt10P4beF5m3JtHiv4g6t4Z8NqwYFX1VWAJGD/kz/APBDH9o3wJ8J/wDgsr+yz+0r+0z8U9F8FeENO8d/Gbxl8Ufit4/1VLDS7fUvFnwY+LNvcazr2qTDBvNd8T67bWyEK017qupwW8MbzXCIQD9NPhh/wZpf8FWvG2nWmp+N/HH7I3wbM203Wg+Lvin458S+J7IEAkGL4b/Crxl4VuHUkqwh8YFCQdsjLhj7zrn/AAZKft0W+lxTeGv2uf2TtW1oxkz6frlv8YPD2lxzc7Ui1iw8A+J7uaMjGZX0OBhziFsZP7s/tMf8Hjf/AATH+D2uX3hr4IeEPjx+1TeWXmoPFXg7wvp3w3+G1zPE3lm3ttc+J2oaJ42uP3gYfa7f4bzabLEFns767jkQnwX4Jf8AB6/+xh4w8XaRoXxy/ZS+PXwV8Oandw2d1428NeJfCHxf07w/9onjiGp63o0Vt4C199Gs43e51GTw/Ya/rUcMTLp2g6pcMkLAH8un7W//AAa6f8Fdf2S/CWqePX+D/g79o3wboFnNqHiDVv2X/GF58RdX0mzgJ33H/CvfEXh3wN8UdbjSNWuJ28LeB9eWytVe5vzawRSyJ/PHLFJDJJDNG8U0TvFLFKjRyRyRsVeORGAZHRgVdGAZWBBAIr/fO8E+M/CvxH8GeEfiH4F13T/FPgjx54Y0Hxn4N8TaRN9p0nxH4V8UaVaa54e13TLgBRPp+r6RfWeoWU2B5ttcRPgbsV/mPf8AB4V+wl8N/wBmL9t/4SftJfCnw7pnhDQv20PBnjXX/HHh7RrWCw0qb40fCvVvDlj488XWWn2cFvZ2MnjLQfHfgPVddSFGl1TxeviXxNfSy6hr91IwB+Qf/BKj/gnh/wAFFf8AgoJf/G3Rv2AvGr+E5/hbaeANT+KMTfGvV/g9Bfw+LpvF9r4Rkzpk8S6/LbP4d8RriYM2mpP+7IF84P6dfG//AIIA/wDBf34OfBf4vfF34nfF4z/Db4V/C/x/8R/iFBB+2J4p1yebwP4H8Kat4n8WRQ6K95s1iWTQdL1BI9Lb5dQci0biY1+kX/Bjf/yPP/BSL/sU/wBlr/08fHuv7Rv+CnP/ACjY/wCChX/Zjv7WX/qhfH1AH+LZ+yT/AMnV/sy/9nB/Bj/1Y/huv93Wv8Ir9kn/AJOr/Zl/7OD+DH/qx/Ddf7utAH+Tl/wdx/8AKZz4nf8AZEvgJ/6hS1+e/wDwTv8A+CJ//BQT/gqD4Y1/4g/srfDTwnqfwt8J+NZ/h34o+Jnjn4l+C/BnhzRPGVrouh+I7nRZdIu9UuvHmpSW+h+JNF1Ga70Lwbq2npHfxwfa/tavbr+hH/B3H/ymc+J3/ZEvgJ/6hS1+qf8AwbI/8FbP2Av+CbX/AATU/aGsf2tfj3pHgXxrrP7X3i3xb4X+F2j6L4i8Z/E3xXoV18FPglpFjqWjeE/DGl6lcwaXfavoOsaXBr2uzaN4dS/066gu9YtmiYgA+bvBv/Bk9/wUL1Hyn8e/tP8A7HXhSOQK0kfhnVvjP41u4AcEq8d/8JPBVq0q9GWK+ki3D5Z2X5qx/HP/AAZVf8FI9GE8/gP9ob9jXxxbRB2jt9U8VfGLwZrN0ACUWG1f4N+INIWR+hFzr8Eakj96Rkj9d/iL/wAHuX7I+k60bX4U/sXftD+OtBS7kifWPHPjT4c/DO/ktEZlW7tdF0WT4oxyNKArpbXOrWbBH/eSRupSv1h/4JTf8HHH7Ff/AAVS+Jz/AAA8I+Ffib8Cv2hJNA1bxLonw7+J0Ph/UNG8daZoEEl/ryeAPGnhnVbyDWNV0LSIpNZ1XRte0XwrqR0qC+1DSLfWLLStWuLEA/zHv27P+CVf7eX/AATd1nT7H9rf4AeJfh/4e129fT/C3xL0q60vxr8KfFN4EuJo7HSPiF4SvdX8OQ63PaWs9+nhXWrvSPF0VhE95daBbwKzj886/wB4H9pv9mz4QftffAb4nfs3/HjwnY+Mvhd8WPC2peFvEmlXcFtJc2gvIW/s/wAQ6BdXNvc/2P4r8Maktrr/AIV8QW0f27QfEGnafqtk6XNrGw/w2Pj58JdY+AXx1+NXwJ8Q3UV7r/wV+LXxH+EuuXkCNHBd6x8OPGOs+DtSuoY3JaOK4vdGmljRiWVHCk5BoA/2g/8Agj5/yij/AOCbf/Zjn7Lv/qmvB9fyx/8AB6f8MviJ8ZfFX/BJ34X/AAm8D+KviT8RvGviL9sLQ/CXgfwRoWpeJfFPiPVrmD9lsxWGkaJpNvdX97OUV5ZBDAywwRS3EzRwRSSL/U5/wR8/5RR/8E2/+zHP2Xf/AFTXg+m/8FDf+CiH7Bv/AATW0LwD8cf2yfFuieFvFWpWnjnwv8FYNP8ABNz41+L3ia2nfwbefEjw98OINM0251PT9IuHt/AV142ubrVNA8KtNa+Eh4g1IXSaHGQD+BT4Cf8ABmd/wUp+Jng/TvFXxe+KP7OH7O+oaparcp4B8Q+IvFPxA8caS0kCyx2/iEeAvDWo+CLOYu4ikTSPG+vNAUlMqq6rG/wV/wAFHP8Ag24/4KPf8E4PAWr/ABn8X+HfA/x5+BPh6MXXir4o/AHVte8SReA9PK5Op/EDwf4i8OeGfGHh7RoSsn27xLZaTrfhHSV8k6x4isJLq2ik/v4/Ya/4OYf+CX37enxv0D9nj4feLPip8Jvij411GTRfh3pXx98EaL4K0v4ia+Zo4dO8O+F/Efhzxl420JPEWvmQr4b0PxDf6DqevXgTR9MtbnXbuw0u7/fXV9I0nxBpOp6Dr2mafreh63p97pGs6Nq9lbalpOr6TqVtLZ6jpmp6deRTWd/p9/ZzTWt7ZXcMttdW0ssE8UkUjKQD/AXr/Zt/4N+f+UM3/BPr/shkP/qW+KK/zDP+C6n7Bui/8E6f+CmH7QHwB8EWMun/AAi1W90j4ufBO1kYstj8MvidZnXbDw7bM5aaSy8C+Ix4m+HtlcXTyXd5a+Eor25llmuXkb/Tz/4N+f8AlDN/wT6/7IZD/wCpb4ooA/Av/g96/wCTXP2Hf+y+/Eb/ANV3a1/nDV/o8/8AB71/ya5+w7/2X34jf+q7ta/nz/4NjP8AgkR4U/4KT/tYeJfit8ffD7a7+yv+ymnhvxJ4w8M3ttv0b4tfE/Xbq6m8A/DDVvOKRXnhSK30bV/Fnj+0hF39r0rTNG8K6lbQ2HjcXsAB8Wf8E/v+CBv/AAUv/wCCj2g2Hj74JfBe28EfBvVNp0v44fHTV7j4a/DbXI2maA3XhN5NL1jxl4702KWK5juNY8CeD/Euj2txaXFjdX8N+qWsn7paV/wZFfteTaU02uftqfs36drflIV0/SvB/wATtZ0ozEfvI21i80/QbtYlbISYaGzuOWgjPyj+/D9qL9pT4FfsEfsvfEb9on4v3Vv4J+CfwG8Ew31zpvhvTdPhna0szZaB4Q8B+B9AWfStMk1vxDq9zovg7wboYudL01tT1HTbOW702wEt1b/w+3//AAfC+LR8T2k0v/gn94df4MJq7wLaX/x01OP4n3Wgi+CR6o2oW/w+l8KWGryaYGuX0EaZqNnDfOLJfEk9vGb+UA/Gz9tn/g1e/wCCqH7HXhHXfiTofhHwD+1R8OvDtvdalrWpfs4a5rviHxpomiWkDzz6nqnww8VeGvCnjHUFgjjd7uDwNZ+N2s4Qbu5kjtI554f5uWUqSrAqykqysCCpBwQQeQQeCDyDX+7R+yH+1R8J/wBtv9mn4O/tVfBDUL3UPhl8afCFt4q8PLqsVrb63o9wl1daR4i8KeI7WxvNQsbTxP4N8T6ZrPhPxNaWOoahZW2vaNqENnqF9apFdzf51H/B3z/wTR8C/ss/tO/DL9s34LeGrHwt4A/a+bxVZ/FHw5o0EVpo2j/H7wj/AGfqOr+JbKxgigtdNi+KfhvWINau7K1ST7R4u8M+NfEF1Ik2vrGAD+O2iiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACv9b7/g1C/wCUJH7Nv/Y+ftE/+r18d1/kg1/rff8ABqF/yhI/Zt/7Hz9on/1evjugD4q/4PW/+UZP7Ov/AGfb4B/9Z/8A2ka8Y/4M7v8AgqD/AMLW+DPi/wD4Jp/FrxF53j74C2Wo/EX9nW61S6BuvEPwV1bVlfxj4EtpbhvMurz4Y+LtXTV9KtvNmuX8IeMfsOn2tvovgSVo/Z/+D1v/AJRk/s6/9n2+Af8A1n/9pGv87H9jT9qz4nfsP/tQ/BX9qv4P3ptfHfwX8b6b4qsbOS4mt7DxJo4EuneK/BWtvB++Ph7xx4VvtZ8Ja+kOJ20jWbz7O8dwIpUAP9pn9uL9jL4a/tzfBWx+E/xDijtb3wh8Tfhl8a/hl4qFql1feCPil8JfFlh4q8Ma9YqzIRDqMFtqng/xDHE6TXnhHxR4hsIJYZ7qKeL7Er5//ZV/aV+GP7Yn7Ofwc/ae+Deq/wBrfDf41eBtH8beHZZHha+0038TQ6x4a1pIHlitfEfhHXrfVPC3iawWR/7P8QaPqViXZrck/QFAH+RF/wAHUn/Kcf8Aa9/7AX7N3/rMXwfr/Uw/YR+HekfCP9iT9kD4X6FZxWGk+AP2ZPgV4TtLaHBULofwx8MWEs0jjme5up4Zbq7uXLS3V1NNczO8sru3+Wf/AMHUn/Kcf9r3/sBfs3f+sxfB+v8ATh/4JWfHTQv2k/8Agm7+xD8Z9Au4byHxZ+zT8KLXWTb3CXUdl4z8JeFNP8F/EDRzcIzCSXQvHPh3xFos5fZMJrCQTxQzB4kAP4/f+D4n4oaur/8ABPL4LWep30GgzL+0N8UPEWjJNIum6nq9sfhT4T8GancW4IhlvtDsrrx5a2czBpLeDxDfohRbmTzP4Ba/0XP+D239mvxn4t+CX7Fv7VfhzR5L/wAI/Bnxp8VfhN8TL61ilnuNIX4x2fgPWvh7qd8sUbC00KLVfht4o0W41G4ZLaPW/Evh7Tt32nVbZJf87rw/oGueK9e0Twt4Z0nUNf8AEniTV9N0Dw/oWk2k1/quta3rF5Dp+laTpljbpJcXmoajfXEFpZ2sCPNcXE0cUaM7qCAf7cf/AASm+KGsfGf/AIJm/sDfE7xJqd7rfifxZ+yL8AbvxXrepTSXGoa14ss/hp4d0rxTrF7PL+8nutU8QWGo388zlmkkuGcs2dx/lM/4Pgvh1pF38Hf2Bfi0LOJde8P/ABL+NPw6OoJhJ5tI8YeF/BniVbO4xhp4ra88DvPab9wtHu77ythvZt/9fv7BPwK1r9mD9iD9kL9nTxMtkviv4I/s1fBP4YeMG02dbnT5fGXgz4deHtD8X3NjcoAtxaXXiWz1S5t5lGJYpUfndmv4tP8Ag+A+OehySfsGfs1WF3DP4ls0+L/xy8U2IuE+0abomonwt4C8B3UlqrGTytavtL+I0UU8qxoH0CWOAzFrgQAH8A1FFFAH9aP/AAZmf8pZfH//AGZZ8X//AFaPwJr/AFJ6/wAtj/gzM/5Sy+P/APsyz4v/APq0fgTX+pPQB/gSeKP+Rm8Rf9h3V/8A04XFf69X/BsJ4n1PxV/wQ6/YiutXvJb690mz+O/hhJ5jl00zwz+0x8ZNG0GzH/TLTtAtNL06AdoLWMHkGv8AIV8Uf8jN4i/7Dur/APpwuK/1wf8Ag1b/AOUG/wCyB/2HP2kv/Wn/AIw0AfHP/B5//wAoovhX/wBnxfCT/wBU3+0RX+ff/wAElfEup+Ef+CpP/BObXNJu5bK5i/bf/Zd06eaI4aTStd+NPgzQdds29YdR0TUtQ0+4HBaC5kUEE5r/AEEP+Dz/AP5RRfCv/s+L4Sf+qb/aIr/PK/4Jif8AKSn/AIJ6f9nx/sm/+r78AUAf7itf5IX/AAc1+F4/E/8AwX7/AGl/C9qqW83i++/ZQ0aSWMJGz3Otfs5fBDR1uHYjaZAjwrvfPEa7sgV/re1/kaf8HReq3ehf8F3/ANqjW7B/LvtGtP2YNVsnOcJd6f8As1/Bq7tnO0g/LNCh4IPHBB5oA/1sPDPhzRfB3hvw/wCEfDdhDpXh3wtomk+HNB0u3BW303RdDsLfTNLsIASSIbOxtYLeIEkhI1Ga/wA2T/g9l+KGsax+3f8AspfBt9TvZvDngD9k8fEOz0hppDptl4i+Kfxb+IXh/W72C2J8pb+/0n4T+GIry4Rd0ttZWETOfJ2r/ov/AAH+L/hf9oL4I/CD47eCbiG68IfGX4ZeBvih4amguI7uM6L478M6Z4m0+M3EXySSwW2pRwT4ClJ45EdEdWQfwB/8Htv7NfjO0+Of7H/7X9ppEl38PvEPwk1f9nHXNdtopXj0Lxd4J8Z+KfiV4a03WJvLENv/AMJPpHxE8T3Hh9RK73J8K+I96RC3iM4B/DVpGrapoGq6ZruiaheaTrWi6hZatpGq6dcS2eoaZqmnXMd5YahY3cDJPa3lldwxXNrcQuksE8aSxsrqCP8AeR+A3jqX4ofA34M/EydzJN8RPhR8O/HU0hQRmSXxb4Q0fX5HMaqioWfUC2xUULnaFUDA/wAK74JfB3x9+0L8YPhj8CvhXok3iP4j/F7x34X+HXgrRYQ/+neI/FusWmi6YtxJHHL9lsIbi7S41K/kT7Pp+nw3N9cslvbyuv8Au5/DXwba/Dn4c+APh7ZOkll4E8FeFfBtpJGhjjktfC+hWGiW7pGeURorFGVDyqkL2oA/zzP+D374daRpf7Rv7CHxZgs4o9d8b/BT4tfDzU79cebdaV8L/HPhzxHotrIOuyyu/i7rssRPU30gH3eP6tf+Dcr/AJQofsC/9k08Y/8Aq4fiPX8ff/B638c9D8ZftwfsvfATSLuC9v8A4H/s9ar4r8UG3uEl/srXvjP4zmkg0G9hUlrXUovDHw78OeIHSQAy6Z4l0mZcq4x/YJ/wblf8oUP2Bf8AsmnjH/1cPxHoA/JX/g8++KPxM+Hf7DP7M+mfD/4ieOfA2m+PP2jNU8O+ONP8HeLdf8M2XjLw/F8MPFN9HoXiu10XULKDxDoyXsUV4ul6ul5YrdRRXAg86NHX/Mkr/Sh/4Pb/APkyf9jz/s6XV/8A1U3i2v8ANeoA/wBLv/gya+GWjaP+wT+1Z8YIrJIvEnxA/a2k+Huo34x5t34d+FXwg+HOv+HrdiBnyrLVfi54uaIFjiS7nwq5y/8AVJ+2L+yZ8J/25v2cPiR+yv8AHP8A4SlvhR8V4PDlp4xg8GeIZfCviG7s/DHi/wAP+NrC0tNdt7e5ns7e41nw1psepRxRH7dppu9OlP2e7mB/kR/4Mjfj1oGq/sz/ALZv7ML3kUPinwJ8dPDHx4trCa5jWfUfD/xX8A6N8Pry60+0YiWaHRNS+DNjFq9xEHjtZPEOixzmNry383+p/wD4KYfCX9oL44/sH/tN/DT9lH4geNfhh+0lrPw4udU+Cvi/4eeOdS+Gvi6H4g+ENV0zxloHh/TPG+l6jpFxoEXjW50D/hCtTuptSs9Ok0nxDfW2rTx6ZNdsAD8ZP+IQn/gjh/0KX7Qv/h9dV/8AlLX7O/8ABPv/AIJ5fs7f8Ezfghq/7Pf7MNv43s/hvrPxF134oT2fjvxdceMtTtvE3iPQvC/h/VEsNSubW0ktdKktPCWmXEenrGyR382oXQcteMq/5FvjD/gqr/wWI+HvizxL4E8df8FAf2+/B/jTwbrmqeGfFnhTxJ+0b8btH8QeHPEWiXs2naxomtaVf+KoL3TtT0y/t57S9srqGOe3uIpIpEVlIrnP+Hwv/BV7/pJH+3D/AOJP/GP/AOa+gD/SS/4OyfDljrf/AARR+Pup3cUMk/g/4mfs9eI9MeWNXeC+uvjD4W8JSS27MCYZjpvinUIGkQqxt5p4idkrK3+ShX7g/tRaV/wXX8TfsAr+0l+2h8Y/2ytQ/Yq+JXxH8E/D7S/D/wC0b8c/iFdWnxK8RX1vqnjzwhrdh8H/ABx4ln1rWPClnL4NOtaN4z1Hw7BoNxqFtp134dv9Qkiee1/D6gAr+u//AIM8/wBuP4Zfsz/tx/Fz9nb4reJLDwdpX7Y/gXwj4e8CeINa1Oz0vQbj4v8Awv1fXtT8GeEdQur+S3tLe+8Y6J4y8Z6X4ZlkuRLqHipdG8L2Ntd6l4lskT+RCvtr9mr/AIJ5/tf/ALXXwc+Pnx3/AGZfhHr/AMX/AAx+zDeeAv8Aha+jeBWXV/iJo9l8QIfF1zomv+H/AANZ7vEfizTdOHgrVpNdPhe01PU9FgNvqc+nf2VFqOoaeAf7jFzbW95bz2l3BDdWl1DLbXVrcxJPb3NvOjRTQTwyq0c0M0bNHLFIrJIjMjqVJFfzsftRf8GsX/BH39pjVtW8S6b8FfFn7NfijWfMku9T/Zl8aN4D0RLpy7JPYfDjxHpPjX4W6JHGWA+x+HfBOjWbooDQ+Z+9r+G79jT/AIOjv+Csn7Gmj6f8PfEHxB8LftP+BvDzRaZa+Gv2otA1vxZ4u0Oysh9ln02z+JegeIPCPxImuIUjWG3HjTXvF1vpbwJFBpyW6y2sn9Xv/BK3/g7Q+Fn7df7Qvwq/ZQ+O/wCzB4j+BHxV+MXiGHwX4B8ceBPG1r8Sfhlq3i26sbu706x8Safq2jeEPFvgiHWrq1Gi6TJYJ8QYf7WvdPOq3WlaZJe6lp4B+H3/AAUk/wCDPP8AaL/Zy8D+KfjH+w78V5/2sPCHhXTbnW9Z+DPiHwwPDHx/i0uzLSXX/CER6FLqXhX4rX1pZJJfzaTaReCPEt+I207wx4a8S6vLa2Nz/H/8PY5IfiP4HhmjeKWLxt4ZjlikVkkjkTXbJXjkRgGR0YFWVgGVgQQCK/3wq/xr/wDgt/8ADf4f/AH/AILeftjeFPBVtpOh+B9L/aL8MeP2s9Hh+z6Ro1z8RPDvgf4reLbW0tIlEdnDpviHxZrcLWNpGlrZtC9pYwxWsMMSgH+yhX+WF/weRf8AKXHw9/2aF8Gv/U0+Llf6naOkqJJG6yRyKrxyIwdHRwGV0ZSVZWUhlZSQQQQSDX+Xj/wed+CvEWh/8FSfhb4yvtNuYvDfjn9j74cr4f1jypfsN9feGPiR8XNN1/TI7kosLajpX2jSrq+tI3kktrPWtIuJdi30IIB/IvX+x7/wbgf8oTP2B/8Asnnjz/1dnxNr/HCr/Y9/4NwP+UJn7A//AGTzx5/6uz4m0AflL/wed/FH4mfDr9hH9m3Tvh98RPHXgXT/AB3+0nd+G/HFj4N8W6/4YtPGXh1PhZ4zv10DxVbaJqFjD4h0Rb6CC9Glaul3YC7ghufs/nRRuv8AmOV/pU/8Htv/ACY7+yF/2dbe/wDqofHFf5q1AH+ln/wZLfDLRtI/YS/az+MUNkkfiLx9+1lH8OdSv+PNu9B+FHwg+H/iTQLZuN3lWWpfGLxTJFkkb72faAQxb+q79sL9k/4Uftxfs4/Er9lj44/8JS3wp+LFr4esfGMPgzxBL4W8Q3Vl4b8XaB40srS0123guZ7K3udX8N6fDqSRxH7dpj3mnyEQ3cuf5B/+DIv49aBqf7OP7aP7MEl5FB4o8EfG3wn8ebOwmuY1n1PQPil4E0v4e6jd6faEiWaLQtR+D+lw6xcxho7Z/EWhxTFGuoPM/qs/4KVfCX4//HH9hL9pv4Z/sq/EDxn8MP2kNb+Gt7qPwU8YfD7xxqPw28WwfETwlqOneMfDmhab440vUdJufD0PjO90BPBmq3kupWenPo/iC/ttWmTS57ygD8X/APiEJ/4I4f8AQpftC/8Ah9dV/wDlLX7N/wDBPn/gnf8As6f8Ey/glrf7Pv7MFt43svhxrvxH1z4pXVn488XXHjPUrfxR4i0Dwr4c1MWGpXNraSWulS2Pg/Sp49OWNo47+TULsPvvZAP8jHxl/wAFU/8AgsV8OvFvibwF49/b/wD2/PB3jbwZruqeGPFvhPxL+0b8btG8QeG/EWiXs2naxomtaVf+KoLzTtT02+t57S9s7qGOaCeJ45EDKRXNf8Phf+Cr3/SSP9uH/wASf+Mf/wA19AH+k1/wdh+HLHW/+CJn7RGp3cUMk/g/4ifs8eI9MeWNXeC+uvjX4M8JSS27MCYZjpvinUIGkQqxt5p4idkrK3+fN/wSO/4Id/taf8FdPFWt3fwufR/hX8AfAusWui/Ej9oXx3Z3t34a0jV7i2S/PhXwV4espLXUfiJ45i06WDUbrQtPvtK0nRbO80ybxX4m8ODXNB/tXpP2ndL/AOC7Hir/AIJ/yftJ/tmfGT9svUP2J/iR8RPA/wAP9P0D9o345/EO5sviZ4gvk1Dx14Q1nTvhB448Sz6zrfhSyufBya3o/jPUPD0OgXGo22nXfh3UNRlgkmtP9N7/AIIc/BTwb8Bv+CSH/BP7wh4KsLKys/Ev7Mfws+MGvzWbxz/2p42+OXhiw+L3jTU7m9TJvpZvEfjPUIIJnklWDT7ay0+2cWNlaxoAfjx8AP8AgzX/AOCYfw30rTn+N3jn9ov9o/xSttGmszal410z4V+Brq7UfvJ9F8LfD7R7bxbo9vIcn7LqXxL8RyJwBdnGT+pv7PH/AAb+f8EiP2WPiH4G+LnwV/Y+0Xw78UPht4j0jxf4L8c6z8U/jl421rQvFGhXUd7pet2SeNfibr+lxXVrdQpKsSactm2DG9q0TvG35hf8HYn/AAU3/at/4J//ALP37NfgD9lHxhq3wo8RftOeKPirZeMfi/4es7N/FHhjwx8MNK8CS/8ACM+Fdau0uG8K654tvPH8d0viDTbaPXbTT/DN/Ho2pabPLLOf4ff+CWX7S/7UXx8/4K5f8E8Z/i38fvj18ZtQ1L9s/wCAN/qz/EP4pfEH4g3V7Ba/EjQb3Uru+/4SLXNWkmt7Wxt7i6vJZg0NvZwSzTFIInZQD/ZRr/G6/wCDjYAf8Fr/ANvoAAD/AIWX4NPAxyfg78OCT9SSST3JJPNf7Itf43f/AAcb/wDKa/8Ab6/7KV4M/wDVO/DegD/R5/4Nrf8AlCH+wX/2JnxT/wDWgfi1X5F/8HtH/JhH7J//AGd7F/6pn4nV+un/AAbW/wDKEP8AYL/7Ez4p/wDrQPxar8i/+D2j/kwj9k//ALO9i/8AVM/E6gD+LH/gg94o1Pwh/wAFiP8Agnjq2k3ktjdXf7SfgzwvLNEcO+meN0vvBet2ZP8Azy1DRtfv7CYd4bmQd6/2ja/xSf8Agif/AMpcf+Cc3/Z3nwU/9TLTa/2tqAP8cP8A4OQP+U2f7fH/AGULwD/6pL4Y1/VT/wAGQHiXU7r9nb9vLwdLeSvo2hfGn4Q+JbCwJ/c22p+LPA3ifS9WvIx2lvrXwXosMp7pp8I7V/Kt/wAHIH/KbP8Ab4/7KF4B/wDVJfDGv6g/+DHX/kk//BRD/sof7Ov/AKjfxboA/py/4LbW8Fz/AMEi/wDgoxHcRRzRr+yR8ZbhUkUOontPCd9dW0oBBAkguYYp4m6pLGjqQyg1/nPf8GrX7cXwz/Ys/wCCoFhZfGbxHYeD/hv+038J/Ef7Pc3i7XNTtNI8L+EvHGreKPBvjf4f634l1C9kit7PTtR1jwXN4DjvZ5YrTT73xvbahqE1tp1rd3MP+jP/AMFr/wDlEd/wUa/7NC+Nv/qF6lX+Qp+yX+wB+1b+3NpPxy1D9lf4Xaj8X9V/Z88D6X8RPHngvwzc20/ju98MaprDaMkvgrwq7pqPjXVradJbiXw74fS88QXdtEy6TpupXjRWkgB/uWAggEHIPII5BB6EGvwK/a6/4Nnf+CRf7X/iPXPHOt/ALVPgd8QPElze32ueMf2bfFc/wwOo6jfzPdXOqTeBp7HxH8KF1Sa7lnu7nUYvh/Heahczyy6nNenZs/gB/Ys/4OPf+Cs3/BPLTrX4Ox/EWw+MfgDwG0Xhe1+Dv7VvhfW/GNx4Eh0E/wBlv4Y0rxJb614P+LHhuDRbe1TSLHwveeL59A8OJZQ2lj4dtI4ZbeT+pb/gnZ/weK/D39pT42fCb9nn9qX9lDVvg/4m+L3jzwb8MfDHxR+EvjhPHfgiPxf4616w8M6HJ4q8F+J9K8N+I/CnhsavqNnHe6tpPiXx7e2sE7TNpBhtpZWAPzp/4KB/8GZHxd+Ffg/xH8S/2APjvP8AtAweHtOv9Wn+BPxc0jTPCvxX1WzsUef7F4F8ceHvK8E+NPEdxFxBoet+H/hxFO0DpY6rfX93aaW38R+u6FrfhfW9Z8M+JtH1Tw94j8O6rqOheINA1ywutK1rQ9b0i7m0/VdH1jS76KC+03VNMv7eey1CwvIIbqzu4Jre4ijmjdB/vx1/kTf8HTXwp8E/Cr/gtF+0mPA1jpek2nxH8PfCb4reItJ0iEW8Fr428Y/D3RG8X31zCoCDVPFOtWFz401eZcm91LxJc38pM91LQB/PBRRT40MsiRqUDSOqAyOkaAuwUF5JCqRoCcs7sqKMsxABNAH9Dv8AwR6/4Nzf2rP+CrWhx/Gm+8TaZ+zd+yjHq1/o9t8ZPFfh+68T+IviBqWj3AtdZsfhP8PodS0B/Etlpd4JdL1XxdrHiDw94Ws9Vgv9M0y98Q63omt6LYf2W/BX/gzy/wCCSfw4020T4mf8NFftCayIYDqV546+LLeDNImu1VftDaXpHwh0PwBf6dYTOGMVpf8AiDW7yBG2Nqk7AS1/SP8As7fBjwZ+zn8Bfg18BPh3p9ppfgf4OfDHwT8N/DFpZBTCNJ8H+HtP0S2uXlCq13dX4szf31/NuudRvrm4v7qSS5uJZG/i+/4O3P8AgrH+2t+yP8XPgL+yH+y18VPGf7P/AIV8e/BY/Gf4gfEv4cXT+GvHvim91Px54u8F6T4P0L4gWMieI/Cll4bi8FT6xrA8K3Wi6lqL+JdKjvNTnsYTZMAf0q/sl/8ABE7/AIJf/sM/E3QfjP8AsufsqaD8M/ir4Ysta0/Q/HknxB+MHjbxBYWniPR73QNcgjuPiH8QvFcRj1PSNQvLO4R4GRUnLwrFLHE8f6oV/lC/8Gyfxr+PPxm/4Lj/ALLl/wDFD4t/F34rvF4b/aO1XWL3x9498ZeOnjEn7O/xQtl1HUrnxDquqFA+pXlnALy6cbr67tohIbieJW/1eqAP8MP/AIKCgD9vb9t0AAAfteftKAADAAHxm8aAAAcAAdBX+rh/wbl/tn/8Nr/8Em/2bvE+s6r/AGp8Rvgfpc/7MnxReSb7ReDxF8HLTTdK8L3+oTsxnutR8R/Cu9+HvinU7udRLcarrd+XeZkaeT/KQ/4KDf8AJ+/7b3/Z3v7Sn/q5vGlf1Mf8GXX7Z/8Awrj9rL48fsR+JtV8nw7+0l4Ai+Jvw4s7mbMa/Ff4MxXk+t6XpVuWAW68UfC/V/EGtarMA7PbfDHTYyFCZoA/Ur/g9R/ZL/4T39kn9m/9sXQdM87W/wBnv4qaj8L/ABtdW0OJV+HHxssLeXTdT1OcL89loHxB8F+H9G06N2BhvPiDdNEpFxMR+r3/AAbK/sm/8Mo/8EgP2cF1PTP7N8aftFLrX7UfjTdF5Ul0fi0bJvh5OwZVmz/wprQ/hqsiS8pdC52AIwFfqD+3p+yJ4M/bz/Y/+Pf7I3j2+k0nw98bPA83h2PXYbaO9m8N+I9N1LT/ABN4L8UQ2kpVLqXwx4y0PQdeS28yI3B07yVmhZxKn034V8L6D4I8L+G/BfhXTLbRfC/hDQNH8L+G9Gs1KWmk6DoGnW+laPplqhJK21hp9pb2sCkkrFEoJOM0AfxNf8HqX7aH/CF/s/fs4fsJ+GNW8rXPjb4vu/jl8UrO1nK3EXw3+GLSaL4E0nVIC2JNL8XfELVtQ1yzYIzLqXwoBLxgbZv4Iv2RP2Qv2gf26Pjz4M/Zu/Zn8BXvxB+KXjaa4ez0+KaHT9H0LRdOjE+t+LPFuvXjR6b4b8K6DakXGqaxqEyRh3ttPso73V9Q03Trz9Af+C/v7aP/AA3N/wAFVf2oPifpGrf2t8Ofh94o/wCFAfCKWKf7Rp5+H/waluvC39q6PKWO7SfGnjJPGHxDs+E+Xxe37uP7i/1Vf8GQ3wU8G2/wk/bf/aLksLK5+IWq/Eb4ffBSz1SR45NS0bwb4f8ADMnjrUrC0j/1tnZeJdb8TaTcai5/d6lP4T0tVw2lNkA7D9kP/gyl/Z08N+H9J1r9t/8Aab+JvxR8cywWd3qXgf8AZ+i0X4a/DjSL0xr9u0WbxX4w8P8Ai/xr4309JN4t9bstO+F15Mu0vpMG0h/1+8Df8GuX/BEPwQIZZf2Prrxrfwbcah45+Ov7QOsGTb1M2kWfxO0vw3LvIBbfohHZQqEqf0e/4Kb/ALTPjT9jb/gn9+1v+098ONFt9f8AiB8G/gr4t8V+CbG+szqOlweK/syaZoGta3p4ntW1Dw/4b1TUbXxF4gsUuraS80XS7+3juIXkWRf8dj4//wDBTb/goR+1H4g1XxF8df2yf2ifHcur3l7eyaDP8U/Fmi+BtNe/mae4tvD3w88OalpHgXwxpxZtsemeH/D2m2EMSRwx26xxoqgH+2x8Mfhp4G+DPw58C/CT4Y+HbTwh8OPhn4T0DwL4E8KafLdzaf4a8I+FtMttG8PaDYSX9zd3hsdJ0qztbCzW4uZ5I7aCKMyEKK/hQ/4PlwP7F/4JlHAyNU/bBAOOQDafsxkgHrgkDI74HoK/rE/4I6DUx/wSm/4J2nWhfjVZP2OvgDNfnVBcDUHuJ/hzoMzy3Zu/9JaabeJWebLyb95J3ZP8nn/B8t/yBP8AgmX/ANhX9sD/ANJP2ZKAPPv+DG//AJHn/gpF/wBin+y1/wCnj491/aN/wU5/5Rsf8FCv+zHf2sv/AFQvj6v4uf8Agxv/AOR5/wCCkX/Yp/stf+nj491/aN/wU5/5Rsf8FCv+zHf2sv8A1Qvj6gD/ABbP2Sf+Tq/2Zf8As4P4Mf8Aqx/Ddf7utf4RX7JP/J1f7Mv/AGcH8GP/AFY/huv93WgD/Jy/4O4/+UznxO/7Il8BP/UKWvDf+CPf/BvZ+1f/AMFZ7a4+KNhruk/s+fssaRrd5oGofHbxlod54hvfFWtaYY01bRPhR4BttQ0S58cXWkTSx22s6zf6/wCGPCOm3S3unJ4hvvEGm3mgp7l/wdx/8pnPid/2RL4Cf+oUtf6cn7DXwU8G/s5fsbfsvfA7wBYWWn+FPhp8Cvhl4a09NPeOWC+uLbwnpk2sa5Jcw/u76+8R63PqPiDVNRGTqWpand37kvcsSAfz3/BD/gzq/wCCUHw402yHxU1D9oz9ofXvs8H9q3XjD4oQ+BPDs16ir9ok0fQvhRoXg3WNLsJmBMdnqXi3xDdwKxU6pMQrj9V/2Vf+CG//AASv/Yn+KPhL42/s0/sm6F8PPi54F/tdvCnxBuPiN8ZvG3iPRn8QeH9U8K649pcfED4jeKbdDqvh7W9X0m8jFt5L2eoXMKRRqwC/z9/8Hbv/AAVX/bK/Yx1j9m39mP8AZT+JPir4DaZ8X/AfjD4j/Ej4qeBnXR/HeuRaX4msPD3h/wAGeEPHEDDW/BiaRJZ6lrPie78NS6ZreoprPhy0j1m301NUsNS/ms/4N3Pjv+0J8bf+C5P7EV58VPjL8Zfi5O/iP416prF18QPiH438fSsB+zn8YTJqOpT+I9Y1Z2AupYC93dMQLiSLdJ5jpkA/1ua/xCv+Cs4A/wCCp/8AwUqAAA/4b6/bC4HA/wCThPiHX+3rX+IX/wAFaP8AlKh/wUq/7P6/bB/9aD+IVAH+uz/wR8/5RR/8E2/+zHP2Xf8A1TXg+v5K/wDg+Z/5B3/BMX/r9/bK/wDRH7LNf1qf8EfP+UUf/BNv/sxz9l3/ANU14Pr+Sv8A4Pmf+Qd/wTF/6/f2yv8A0R+yzQB/A74J8ZeJvh14z8I/EHwXq934f8Y+BPE+geMvCevWEnlX2ieJvDGq2mt6Dq9lLz5d3puqWNreW0mPkmhRu1f72nhbXIvE/hnw74lgieCDxDoWka5DBKrLJDFq2n29/HFIrhXV40uAjqyqwYEMAciv8PD/AIJ/fsXfFL/goB+1t8F/2XfhXoOtanffEPxpoNp4x1/S9KvdTsPh18Nl1exj8dfEjxNJaRsmneHvCOhTXOoXFzdy28d3eix0e0kk1TVLC2n/ANya3t4bWCC1tokgt7aGO3t4IlCRwwwoscUUaDhUjjVURRwqgAcCgD/NB/4PYvA8Gmf8FAf2W/iHF5SSeMf2Q7LwvcohUSPN4E+MXxP1BbqZB826S28dW9skrj547JY1JEBC/wBnP/Bvz/yhm/4J9f8AZDIf/Ut8UV/DH/weRfHvQ/ih/wAFSPB/wn8P3treL+zh+zb4E8GeK1gnE8ll478c6/4r+KF/Yz7GKQtH4L8U+AJvII86OSeYyth0ji/uc/4N+f8AlDN/wT6/7IZD/wCpb4ooA/Av/g96/wCTXP2Hf+y+/Eb/ANV3a19s/wDBnn8MtG8Ff8Eik8aWVkkWr/GL9pP4xeMdbvzta4vP+Edi8LfDTTYPMxvSzsrbwQ7W9ruMcVzd39yiq97MW+Jv+D3r/k1z9h3/ALL78Rv/AFXdrX0f/wAGZvx50Dx//wAE0fiX8DkvIh4w/Z9/aP8AFbalpX2hJZ4/BnxX0LQ/FnhPW2hBEttBqfiOx+IelQoyGOSXw5czRyu0ksUAB/RP+3d+wp8Cf+Ci/wAAdQ/Zp/aOTxpcfC3VvFPhrxdqlh4G8VT+ENV1DUvCdxPe6Nb3WqW9rdySabDfyx38tl5YWW7s7KUuPIAb8Rf+IQn/AII4f9Cl+0L/AOH11X/5S1+mH/Bab4Rftb/GT/gnP8eNE/YV+IPxU+Hn7VHhaHwx8Q/hbd/B3x5r3w78a+KZPB3iXTtR8X+BbHW/Dup6Tf3k/irwGfFFjo+gvdrb6x4oHh+2dfM8qSP/ACg9R/4K6f8ABW3R9QvtJ1b/AIKK/t26Xqul3lzp2p6ZqP7SvxpstQ07ULKZ7a8sb6zufFcVzaXlpcRSW9zbXEcc0E0bxSojoygA/wBhn9iD9ir4J/8ABPr9nbwp+y7+zzF4ttvhP4K1XxVq/h2x8aeJZvFesWNx4z8Rah4q1yEavcW9rI9nLrmq6hewW5ixA11KAxDcfzqf8Hnnh2y1b/glR8Ltamih+3eFf21fhXfWVyY1NwsWp/Cf47aLeWsc2N6Q3H2+3uJ4gwjlksbZ3DPDEV/gJh/4K/8A/BWO4mit7f8A4KPftyzzzyJDBBD+038ZZZpppWCRxRRp4uZ5JJHZUREUs7EKoJIFfQ/7dvhL/gtvZ/sd/CL4x/8ABRT4pfta3/7N3xm+Ja2Pwu8BftMfGrxxr2rav4t0Dw1qer6b4yl+D3jXxFf674btf7EutZTw94h8Q6HpF3fWl1cXGlRzaTqdre3oB+K9Ff0e/wDBHD/g3b8e/wDBX79nv4jfH/wp+1B4Q+B9j8PPjLqfweuPDXiH4Zaz41u9Uu9N8EeCPGja5DqWm+L/AA9DbW8sPjWGwWxe0mkSTT5ZzcMs6xxfT/8AwUR/4NQvid/wT5/Yy+OP7Ymu/tm+A/ibpPwT0fw1q954G0n4O+IPDWo+IE8R+OvC3geOC21u88eatbWDWs3iePUHeXTrkSxWj26qjyrKgB/JHRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFf633/BqF/wAoSP2bf+x8/aJ/9Xr47r/JBr2zwZ+0t+0b8OPD9p4S+Hnx/wDjZ4C8K2El1NY+GfBnxV8d+F/D9lNfXMl5ey2mjaHr1jp1vJeXc011dPDbI1xcyyTyl5XZiAf6Pv8Awet/8oyf2df+z7fAP/rP/wC0jX+YtXrnj/8AaA+PPxY0i10D4p/G34ufErQbHUY9YstE8f8AxJ8ZeMtIs9Xhtruyh1S103xFrOo2dvqMVnf31pHfQwpcx215dwLKIriZH8joA/uq/wCDOP8A4Kg/8IV8QPGv/BMH4t+IvL8M/E241r4r/swXOp3WIdK+Iunad9s+J3wxspJmcx2/jTw5po8d+HrCNrWwtdd8LeMSi3Os+M4Uk/0Tq/wH/D3iLxB4S1zS/E3hTXdY8M+JNDvYNS0TxB4e1O90XXNH1G1cSW1/perabPbX+n3tvIA8F1aXEM8TgNHIrDNe/f8ADaH7Yn/R2H7S3/h9vij/APNTQB+wv/B1J/ynH/a9/wCwF+zd/wCsxfB+vvz/AINif+C9fgX9hK51P9hr9sXxI/h39mP4heLpvE/wl+LF5HJc6Z8DviN4jktLXxBo/jN1Z59P+FHjWWC31SXWrWGS18C+LhqGtava/wBgeKvEWv8Ahr+RDxl438afEXxDfeLviD4v8UeOvFmpraJqXifxlr+q+J/EOoJYWcGn2K32ta3d32pXa2Vha21jaLcXMgt7O3gtoQkMMaLy9AH+9ZqWm/B/9oz4U3mlanbfDz43/BP4seFpbS8tZh4e+Ifw1+Ifg3XbcpIjbTq3hvxP4f1S2f5XRryxuYyHjZsKw+JP2ev+CPX/AATH/ZU+KkXxu+AH7GHwY+HfxWtLm4vNH8a2mkalrmq+F7q7tXsrm58FL4o1XXLPwPPLZyzWjS+ELXRH+zXF1ACI7q4WX/Hj/Z0/b1/bW/ZGDwfsy/tU/Hn4I6ZLNNcXXhz4e/E3xVoXhC/uJzmW41PwZBqR8KapcM3zifUNGuZUk/eI6yfNX2N4h/4L5/8ABZDxPpLaLqX/AAUK/aDtrNraS0M3h7XdH8I6t5UisrOuv+FNE0XXVuQGJjvV1IXkTBXinR0VgAf6yH7fX/BSH9kn/gmv8HdW+MP7UXxO0nwykdhdT+DPhvpl5p2o/Ff4qatD+7g8P/DjwO99a6jrt3PdvDbXmrSmy8MeHo5v7R8Ua7oulRT30f8Ajuf8FIP28/in/wAFKP2wPiv+1p8V4YdI1Hx1qFtpvg7wXY3Ml3pPw5+G3hyH+zPBHgXS55Eh+0jR9JRZ9Z1Rbaz/AOEg8T3+veJJbK0uNYmt4/k/4ifE34k/F7xVqHjr4s/EHxx8UPG+rbP7U8Y/ETxZr3jXxVqXllin9oeIfEt/qer3mwu5T7ReSbSzYxuOeHoAKKKKAP60f+DMz/lLL4//AOzLPi//AOrR+BNf6k9f4HngP4lfEX4V61L4k+GHj7xr8OPEU1hPpU2v+A/FWu+ENal0u6mtri502XVfD1/p19JYXFxZ2k89m85t5ZrW2lkjZ4ImX2H/AIbQ/bE/6Ow/aW/8Pt8Uf/mpoA8G8Uf8jN4i/wCw7q//AKcLiv8AXB/4NW/+UG/7IH/Yc/aS/wDWn/jDX+RG7vI7SSMzyOzO7uxZ3diWZmZiWZmYksxJJJJJzXtvg39pn9pD4deHbHwh8Pv2gvjf4F8J6W12+m+GPBvxX8eeGPDunPf3k+oXzWOi6Jr1jpto17f3VzfXbW9tGbi8uJ7mYvNNI7AH+lT/AMHn/wDyii+Ff/Z8Xwk/9U3+0RX+eV/wTE/5SU/8E9P+z4/2Tf8A1ffgCvnzx7+0L8ffirosPhv4ofHH4wfEjw7bajBq9voPj34l+NPGGiwatbQXVrbapDpfiHWtRsYtRt7W+vbaC9SBbmKC8uoY5VjuJVfzDSNX1bw/q2l69oOqajomu6JqNlq+i61pF7c6bq2katptzFe6dqml6jZSw3lhqNheQw3dle2k0Vza3MUU8EscsaOAD/fnr/Ii/wCDqT/lOP8Ate/9gL9m7/1mL4P1+PX/AA2h+2J/0dh+0t/4fb4o/wDzU14j4y8b+NPiL4hvvF3xB8X+KPHXizU1tE1LxP4y1/VfE/iHUEsLODT7Fb7Wtbu77UrtbKwtbaxtFuLmQW9nbwW0ISGGNFAP7lP+DYD/AIOBfhb8DPh/oH/BOD9uHx1p/wAP/BWjaxe/8Mv/AB18V3cNh4N8N2niXVL7WdX+EfxP8SXk8dv4Y0eLxBqF1qvgHxhrDLoOnQ6rqXhfX9V0TStM8LK398fxQ+FPwV/ac+FOr/Dj4t+B/APxt+DfxF0iyk1Twx4r0rSPGfgrxTpMxt9U0nUI4LlLzT7tY5Us9W0TV7J/PtLqKz1TS7uG5ht7hP8ABgr7Y/Z2/wCCkf7fX7JemR6B+zh+2D+0J8IvC0IcQ+C/CnxP8TxeA4meVp3mj8B3t/eeD0uTK8j/AGpdEFz++nAl2zyhwD/YZ/ZY/wCCUv8AwTq/Yn8b6h8S/wBl39kj4TfCX4iajbalYv460vTtT1zxbYafrBX+1dM0HxD4t1TxBqvhrStQRFhu9L8O3Wl6fPbKLWS2a2HlV5//AMFPv+CuX7I//BK74Pav46+OPjbStb+Kd9pNxL8Kv2ePDWsadP8AFX4na3JFcJpYt9EEs134a8ErewlfEXxD1y0i8PaJaxyw2zax4iuNH8Oav/ld+M/+C8X/AAWH8e6RcaHr3/BQv9o21sLq0NlM/hHxZbfD7UjAVCts1vwDpvhnWoZ2UYe6hv47pwW3THc2fy18W+MPF3j/AMR6r4w8d+KfEfjXxbrtz9s1vxT4t1vU/EniPWbvYkf2rVdb1i6vNT1C58uNI/Pu7qaXYiLu2qAAD2j9rb9qL4q/tp/tJfGH9qX42anBqnxL+NHjG98WeIDYxyw6VpUJht9N0DwxoNvPNcz2vhzwh4bsNI8LeHLW4ubq4ttD0ewhuLq6nSS4k/1uv+Dcr/lCh+wL/wBk08Y/+rh+I9f43Ve7eFf2pP2mvAvh/TfCfgn9ov47eDvC2ixSW+j+GvCvxd+IHh7w/pMEs8t1LDpujaR4htNOsYpLmee4kjtbaJHnmlmZTJI7EA/0K/8Ag9v/AOTJ/wBjz/s6XV//AFU3i2v816vV/iD8efjl8WtPsdJ+Knxm+K/xM0rS7xtR0zTPiD8RPF/jPT9O1BoHtmvrGz8R6xqVtaXjW0slu11bxxzmCR4i/luynyigD9C/+CX3/BRb4t/8Euv2vPAn7U/wotYPEEOmW934R+J3w8v7yaw0n4ofCnxDc2EvirwXf3sCSvp13JLpum674a1n7PeR6F4u0PQNYudO1azsrnSb7/Xb/wCCfn/BVD9ij/gpf8OdN8c/sw/GDQtY8RNpy3ni34L+Jr7TPD/xu+HVyixC8tPGHw8k1C41RLO1uJPs0HirQ21rwVrEkcp0LxJqSRSmP/EZrZ8PeI/EPhHWtO8SeFNe1nwx4i0i4W70nX/D2qX2i61pd0qsq3Onarps9tfWVwqsyrNbTxSBWYBsE0Af7iH7SP8AwTp/YS/a/wBVg8Q/tNfslfAb40eKLazGn2/jHxr8OvD1/wCNodPVVSOwj8aQ2lt4qWxhVF+z2Y1f7PbkboI42JJ4X4E/8EnP+Caf7M/iCw8XfA/9h/8AZv8AAvjHSmV9J8Zw/DLw/rvjPSJVdXE2keLfFFtrfiPSp9yqTPp+p28zBQGcqAK/ySvAn/BaX/grN8NtOstI8K/8FDf2sE03ToxDY2fiH4w+KvGsNrAvEdvCPGt74gKW0K4SC3B8iCMLFDGkaqow/iV/wWC/4Km/F3S7jQ/H3/BQP9rPVtEvNy32i6f8bPHHhfSNQjcENb6jpvhTVtEstQtTnP2S8gntgwVxEGVSAD+8X/g8t+NXwe/4d0+BfgYPin8PX+NVz+1N8LvGUXwki8Y+H5fiT/wiGk+Avi1aal4pk8ExX7+I4PDtnd6xpNpPrU+nR6al1qVjb/afOuoUf/Mcq1fX17qd5dajqV5dahqF9cTXd7fX1xLd3l5dXEjSz3N1dTvJPcXE8rNJNNM7ySSMzuzMSaq0AFf3rf8ABkp8ZPhF4Iuf28/hp40+KPw88I/ET4l67+zPcfDnwL4n8Z+HdA8X+PofD1l8c4NffwX4c1XUbTVvFI0SbXNFj1YaHaXzac2raaLsQ/bbbzP4KaVWZGVlYqykMrKSGVgchlIwQQRkEcg8igD/AG3v2of+CRn/AATT/bN1658W/tI/safBb4g+NL5pn1Px5a6DdeBPiBrLzkF313x78OdQ8I+MNddDlrdtX1q9a1Z5WtTC00pfm/2Uf+CMP/BL79iLxtpfxL/Zn/Y7+G3gH4j6Ct8ugfEDVr/xr8TPG3h5tSt5bO+n8PeKvit4p8b65oN1dWU9zYS3mkX1ldHT7q7sFmFndXEEn+Rx8MP+Cpv/AAUp+DFpp+mfDH9vb9rzwjomlQwW2m+GrH9oL4oXPhOytrZFjt7e38J6j4lvfDccEESLFFEul+WkSiJVEY216l47/wCC2n/BW74j6Vc6J4o/4KG/tUjTLyPybuDwz8Vdf8CPcwbSj28114Fn8OXclvMhKXNu05hukZkuElViCAf6q/8AwVE/4LEfsff8Er/hTrnib4y+OtG8SfGi60O5ufhd+zd4X1ixu/il8QtaliKaQ11pUL3E/gvwSbpkl1rx74kt7XR7PT4LyPR08QeIf7O8O6l/jlftGfHr4hftSfHr4wftG/Fe/h1L4jfGz4ieK/iV4vntElh06HWPFmr3WrTado9rNNcSWOhaQlxHpOg6aZ5V03RrKxsI3aO3SvLdd17XPFGs6n4i8Tazq3iLxBrV5PqOsa7ruo3mr6zq2oXLmS5vtT1PUJri9v7y4kJee6up5Z5XJaR2Yk1k0Af7Nv8AwRN/4Ke/A/8A4KTfsWfCHxB4R8a6Efj18N/hz4P8GftD/CafVbZfG3g3x14a0ey8P6p4lk0KadtUuPAnje+sZPEHg7xPEl1pt1Z6gdFur9fEuja7pth99/tKfsffss/tjeFtM8F/tTfAD4U/Hrw5oV1eX3h2y+Jng3R/E1x4Yv8AUYIrXUNQ8K6re2zav4X1C+toYLe8vtAv9Ou7qCGGKeZ0ijVf8L7wd428Z/DrxFp3i/4feLvE/gXxbpEjy6T4o8Ha/qvhjxFpcskbRSSadreiXdjqdlI8TvG721zEzRsyMSrEH7s0H/grv/wVR8M6OdB0X/gox+2xa6VhVitpP2mPi9fPaRoCFi0+6v8AxZdXmnQAE/uLC4toc/MU3AGgD+3n/g6M/YN/Yu/Y7/4JDaSn7L37L3wQ+B95d/tZfBy01DXvAHw98PaP4t1W0k8H/FPfa6z4zWyk8WazbEwQnyNV1q8iDRqwQHmv2x/4NwP+UJn7A/8A2Tzx5/6uz4m1/kg/Gj9rD9qX9pBoX/aG/aS+Pfx2NtPHc2o+MXxf+IPxLS1uIo3hhmtY/GfiHWo7aSGGSSKFoFjMUTvHHtRipreFf2o/2mvAvh/TfCfgj9or47eDfCujRSQaP4Z8K/Fz4geHvD+lQTXE13NDpujaR4gs9OsYpbq4nuZI7W2iR7ieaZgZJHZgD/Qz/wCD23/kx39kL/s629/9VD44r/NWr1j4gfHr45/FnTrHSPip8Z/ix8TNJ0y9OpabpfxA+Ivi/wAZ6dp+omCS1N/Y2XiPWNStrS9NtNLbm6gijnMEskRk8t2U+T0AfoP/AMEwv+Cifxc/4Je/teeAv2qPhNbQa+ukQXnhP4l/D3ULyaw0j4ofCrxDcWL+K/BOo3sCSyafcTvp2na54c1j7PeJoXi7Q/D+tT6dqtrYT6Xe/wCu5/wT6/4Kp/sUf8FMPh1pnjf9mP4v6FqviVtOW88W/BXxPf6X4f8Ajd8O7lFiF5aeLfh7JqFxqYsbaeT7PB4r0Jtb8FavIkh0XxHqAhn8r/EcrZ8P+IvEHhLWtO8SeFdd1nwz4i0i4W70nXvD+p3uja1pd2gZVutO1TTp7a+srhVZlWa2nikAZgGwTQB/uJftI/8ABOv9hP8AbA1W38QftN/sl/Af40+J7W0Gn23jDxt8OvD1/wCNoNPVVVNPi8aRWdv4qSxiCL5Fmuri2gI3QxI2TXA/An/gk1/wTR/Zo8QWHi74I/sPfs3eB/GGkssmkeMovhl4f17xlo8qurifSPFvim21zxFpVxuVc3Gn6lbTMAFaQqMV/kl+A/8AgtJ/wVl+G2m2WkeFP+Chv7WEemadGIbGy8QfGHxX41htYE4jtoV8a33iApbQrhILYHyIIgsUMaRqqjF+JX/BYP8A4KnfF3SrnQvH3/BQP9rPVdEvdy32jad8bPG/hfSdQjcENb6jpvhPVtDs7+1Oc/ZLyGe23BXEW9VYAH95f/B5R8avg8v/AATl8G/Aw/FP4et8ab39p/4WeMbf4SJ4x8PyfEl/CWk+C/ilbal4obwTHft4ji8O2Vzq2l21xrU2nR6bHc6jZW5ufOuoUf1L/g1f/wCCrfwf/af/AGJPhn+xL4y8WeHfCn7UP7K/h/8A4V5o/gfVtbtbTV/iv8HdCjnuvBfjbwLp1/Ol3rLeFdAI8JeNdI0o6hcaC/h6y8Q3aWOk+JdOt7b/ACzr6/vtUvbvUtTvLvUdRv7ia7vr++uJru9vbu4kaW4uru6uHknuLieVmkmmmkeSWRmd2ZiTWj4Z8T+JfBXiHRfF3g3xDrnhLxX4b1K01nw94n8M6tf6D4h0HV7CZbix1XRda0q4tdS0vUrK4RJ7S+sbmC6tpkWWGVHUMAD/AHTP2o/2QP2Zf21/hqfhD+1V8FvBHxv+Hiatb6/ZaB4z0+SZ9F1+1trqyt9f8N61YXFhr/hfXY7G+v8ATxrPh3VdM1I6ff31g10bO8uYJfzH8IfCb/giZ/wRn+MXwT+Hnwp+EnwZ+Cf7S/7VPxC8FfBP4TeGvDf9pfEX9oTxO3xN8X2PhpbxdY8b+IvE/jzwx8KrHULgXnizX7zW9J8LNDpS6XarrPiJdD0C7/zD7L/gtd/wVv0/wvF4Ptv+Ci/7Xf8AZEIZY7i5+NXjK98SKrII9p8Z3uo3HjBlRVAiVtdZYT80QRiSfz91b4rfFHX/AIgt8Wtd+JPj7Wviq+tW/iR/ibq3jHxFqPxBfxFaSxz2uvN4zvNRm8RtrVtPFFNb6odSN9DLHHJHOropAB/vdV/jd/8ABxv/AMpr/wBvr/spXgz/ANU78N6/OH/htD9sT/o7D9pb/wAPt8Uf/mprwnxV4t8VeOvEGpeLPG/ibxB4x8U6zLHPrHiXxVrOo+IfEGrTxQRWsU2pazq9zeajfSx2sEFtHJdXMrpBDFCpEcaKAD/YN/4Nrf8AlCH+wX/2JnxT/wDWgfi1X5F/8HtH/JhH7J//AGd7F/6pn4nV/ndeE/2of2mPAXh7TfCXgb9on46eDPCmjRzRaR4Z8J/Fvx/4d8PaVFcXM97cR6bouj+ILPTbGOe8ubm7mS1tollubiedw0ssjtifED49/HT4s6bZaN8VPjT8WfiXo+m339p6dpXxA+I3jDxlpthqQt5rX+0LKx8R6zqVra332W4ntvtcEUdx9nnmh8zy5XVgD7p/4In/APKXH/gnN/2d58FP/Uy02v8Aa2r/AAH/AA/4h1/wnreleJvCuuax4a8SaFfW+p6J4g8P6ne6Nrej6laSCW11DStV06e2v9PvraVVkt7u0uIZ4ZAHjkVgDXv3/DaH7Yn/AEdh+0t/4fb4o/8AzU0AfpN/wcgf8ps/2+P+yheAf/VJfDGv6g/+DHX/AJJP/wAFEP8Asof7Ov8A6jfxbr/Ph8VeLfFfjvxBqXizxv4m8Q+MvFWsyxT6x4m8Va1qXiHxBqs0NvDaQzalrOr3N5qN9LFa28FtFJdXMrx28EMKkRxIq9f8PPjf8afhHBqlt8KPi98UPhjba5Laz61b/Dzx/wCK/BcGrz2KTx2U2qReG9W02PUJbOO5uUtZLtZnt0uJ1iKCWQMAf7M//Ba//lEd/wAFGv8As0L42/8AqF6lX8P/APwZf/GT4RfC79rj9q/QfiZ8Ufh58PNa+I/wY8B6F8PdL8c+M/DvhO/8c67YePJ7u80Pwhba9qNhL4k1q3tJo7uTSdHW81BbXdc/Z/IjkdP5RvEH7V/7UvizRNV8M+Kf2lfj94l8Oa7Y3Gma34f8QfGP4iazomsabdxmK60/VdK1HxHc2GoWNzEzR3FpdwTW80bFJI2UkV4DQB/uC/tT/wDBLz/gnv8AtsX41v8Aah/ZG+DHxY8UhVjbxzqPhhfD/wARZbeOEW8VncfEfwdP4d8dXNjBEFFvYXHiGSyt2VZIYEkVXHh/7Nn/AAQw/wCCTf7I/j/QPin8B/2Kfhp4b+IvhPWU8ReFPGPinWPiD8WNc8K6/C7S2eteGbz4u+MvHTeH9V0yZhPpGoaQLO70i5jhutMmtbmCKVP8kP4S/wDBSn/gob8CNM0vQvg5+3H+1j8OfDeiwRWuleE/C3x/+KOm+DrG1g4htbfwfH4nPhlbaEEiK3/sowxgsEQBiD714s/4Lif8FefGmkzaJrX/AAUR/amgsJ7dbSU+Gvidq/gq/eAKFI/tfwadA1cO6jbNMt8JpwXE0j733AH+s3/wUL/4Kg/se/8ABMr4T6n8S/2mvihpGk63JpV7eeAvg9od9p+qfGD4qanbxuttpPgjwULuK/nt57wRWV94p1T+zfB3h954pfEGvabE8Zk/xx/27f2wfiJ+3x+1x8c/2ufijDb2Hiz40eM5deGg2VxPd6f4S8M6bYWXh3wR4L026uAs11YeDvBuj6F4btryWOKa+TTPt08ST3Mq183eL/GfjD4heI9V8Y+PvFfiXxx4u125N5rnirxfruqeJfEes3jKFa61XXNaur3U9RuWVVUz3d1NKVUAtgCuaoAKKKKAP9jP/gg9/wAFW/g//wAFLP2LvhdHB4s8Pab+098H/AugeBfj98I5dbtW8W2Wr+ELGx8ORfE7TNGuZxq994C+IMUNjr1hrUUF1YaTrOp3/g+91K51bRZ5rj78/bC/4J7/ALF37fmgeHPDf7YH7PPgT44WPg6fUJ/CN94ij1bSvE/hU6uLQaxD4b8aeFNU0DxhodlrB0/T31fT9M121sdUl07Tpb+3uJbCzeH/ABCfhv8AFD4l/BvxjpPxE+EPxD8c/Cv4gaA88mheOfhv4t1/wP4x0V7mCS1uX0nxN4Y1DS9a05ri2llt52s72EywSyQyFo3ZT+gWtf8ABaf/AIK0+IfCq+DNV/4KJftbS6ELGbTZfs3xn8YabrN3Z3CPHPFqHijTdQs/E+pNLHI8ck2oaxcztGxQy7eKAP8AUu/Z4sP+CQf/AATa/ag+G3/BPz9lHwD8HfhV+1D+0XaeI7i5+H/wws/+Er+J1v4T+HXw98SfEuTXfjf441jVta8Z6L4bfSfD9zF4P0/xh4gutR17W9WivPD2h3WnL4i1zS/2Pr/A/wBC+JvxJ8L+NG+JHhn4heOPDvxEe51K8bx7oXizXtI8aNd6zBcW2r3TeKdPv7fXDc6rbXl3b6lOb4y30F1cRXTSxzyq3r3/AA2h+2J/0dh+0t/4fb4o/wDzU0AdP/wUG/5P3/be/wCzvf2lP/VzeNKx/wBiL9p3xL+xf+13+zp+1R4T+0y6p8Dfiz4P8eXOnWkohl8QeG9N1OKLxl4TeUsmy18YeELjXfC96fMjJstXuAJIyQ6/NGp6nqWt6lqGs6zqF9q+savfXep6rqup3dxf6lqepX9xJdX2oahfXUkt1e317dSy3N3d3Mstxc3Esk00jyOzGjQB/vo+CfGXhr4i+DfCXxB8Gatba94P8deGNB8ZeE9dsmL2eteGvE+lWmt6Fq1oxALW2o6XfWt5AxAJimQkDOK/OH/gs/8Atnr+wR/wTR/aq/aH07VBpXj2w+Hl54B+EMscwivf+FufFGWPwJ4E1DT48q91L4W1XXP+E3vbeNlc6N4Y1OXfGsTOv+Ofon7Wv7VfhrRtJ8O+HP2mv2g9A8P6Dptlo+h6Fonxn+I+laNo2kabbR2enaVpOmWPiSCy07TdPs4YbWysbOCG1tbaKOCCKOJFUc748/aH+P8A8U9Fj8NfE745fGH4j+HYb+DVYdA8efEzxr4v0WLVLWG4t7bUo9K8Qa3qNil/bwXl3BBeLALiGG6uI45FSeVWAPH2ZmYsxLMxLMzElmYnJJJ5JJ5JPJPJr+uP/g0y/wCCqnwm/Ye/aO+LH7MP7RfibQvh/wDCH9rVPB934a+KfirV4NG8LfD74v8Aw/h8R2+iaf4o1K/mt9K0Xw38R9G8SXejXfiPUZ0t9L8SaD4Otrp7XStT1TUrD+RuigD/AH2tc0Twz458Mav4b8R6Tofi/wAG+MNCv9E13QtZsbDXvDXifw1r+ny2Op6Tqum3sV1pms6HrWl3c9nfWN3Dc2Oo2FzLBPFNbzMrfiH47/4JLf8ABA79g6HxB+2R8Vf2WP2Y/gvofgW7i8S3/jj4oan4k1nwFoesW1xLqWlx+Gfh1408UeIPBH/CRzX0e3wv4b8IeDJdc1HUI7PTfDmlXN4llaj/AC4fgj/wVZ/4KUfs4eFrLwL8E/25P2m/AXgXStMj0bQ/BGn/ABb8W6h4M8OaXFGIobPwv4U1zUdU0DwxFDGFSH+wNP014lVRGy7Vx4H+0B+1p+1B+1drll4j/aY/aE+Mnx51nS42h0e7+LHxF8VeOV0SBxiS30K18QanfWeh28hy0lvpNvZwyOzyOjO7sQD/AHDv2dvjn4D/AGm/gT8JP2hvhd/ax+HHxo8AeGfiR4FfXtOXR9Yl8KeK9Mg1bQptR0pbi6/s26n065t5pLJp3ktt/ky7JUdF/h+/4Plv+QJ/wTL/AOwr+2B/6SfsyV/DboH7WP7U3hXRNK8NeF/2lvj/AOG/DmhWFtpWiaBoHxk+Iuj6Jo2mWUSwWenaVpWneI7ex0+wtIESG2s7SCG3giRY4o0RQBxvxE+NXxk+Ly6QnxY+LXxN+J6aA182gr8RPHninxquiNqYtBqTaQviXVdTGmtqI0+wF8bMQm7FlaC48z7NDsAP7g/+DG//AJHn/gpF/wBin+y1/wCnj491/aN/wU5/5Rsf8FCv+zHf2sv/AFQvj6v8TH4efGT4vfCKTVZvhP8AFT4kfDCbXks4tcl+HnjjxP4Kk1mPTmuW0+PVX8N6ppjaili15eNZpeGZbVru5MAQzy7u91f9rn9q7xBpOqaDr37Tv7Qut6HrenXuka1our/Gn4kalpOr6TqVtLZ6jpeqadeeJZrO/wBOv7Oaa0vbK7hltrq2llgnikikZSAN/ZJ/5Or/AGZf+zg/gx/6sfw3X+7rX+AjZXt7pl7aajp13dafqGn3Vve2F/ZXEtre2V7aypPa3dpdQPHPbXVtPGk1vcQuksMqJJG6uoI+jP8AhtD9sT/o7D9pb/w+3xR/+amgD91f+DuP/lM58Tv+yJfAT/1Clr+4H/g3d/4Kt/B//goN+w38IPhtdeLPDui/tU/s5/Drwz8Kfi58KrzW7VfFmtaX8O9F0nwtoPxj8P6TdzrqmteEvGukQaRfa5qdnbSWnhvxrdax4bvHjii0e81X/JB8beP/AB38S9em8VfEfxt4u+IHii4t7a0uPEnjbxJrPivXp7Wyj8qztptY129v9Qlt7SL91bQvcNHBH8kSovFO8A/EPx/8KfF2i/ED4XeOPGHw28eeG7l7zw7428A+Jta8HeLtAu5IJbaS60XxJ4evdO1nSrl7aea3eexvYJWgmliLGOR1IB/uIftd/sGfsfft6eEdC8D/ALXnwC8C/HHQPC19eal4VPii31Gy1/wpealHaxarL4W8X+HNQ0Txd4bXWI7Cwj1mHRNcsINXTT9PXUoroWNqIfhj4HeGv+COf/BLT9pb4RfsUfsz/Dn4OfCL9qj9qe41LQNJ8B/Dy3m8Z/GS48K+E/BPif4lz678WPGXiLWdf8c+Hvh+um+FL1tDHi3xDt8Ra/cWx8OaRqptdYv9K/y5b7/gtZ/wVt1HwtH4Ou/+Ci37XLaNHazWZli+NPjG18QzW86GOVbvxha6jD4uvZGRionvNcnnTOUkU81+fOn/ABO+JWk+Oj8UNK+IXjnTPiYb++1Q/ETT/Fmv2Xjo6nqlvcWmp6ifFttqEevm/wBRtby7tr68OofaLu3uriG4kkjnlVgD/e/r/EL/AOCtH/KVD/gpV/2f1+2D/wCtB/EKvEf+G0P2xP8Ao7D9pb/w+3xR/wDmpr581rW9Z8S6zq3iLxHq2p6/4g17Ur7Wdd13Wr+61XWda1jVLqW91PVtW1O+lnvdR1LUb2ea7vr68nmuru6mluLiWSWR3IB/tlf8EfP+UUf/AATb/wCzHP2Xf/VNeD69r/aT+EP7EX7RGsfD/wCCX7Wvw7/Zl+MXibX7fxXr/wAJvhl8d/Dvw08ZeK9St9E/sFPHGufDPwz42tr7XnGlLeeGY/FWq+EbUNZR3WjR6tcRxz2at/icaH+1n+1T4Y0XSvDnhr9pj9oHw94e0HTrPSND0HQ/jN8RtJ0XRtJ063jtdP0vStLsPElvY6dp1jaxRW1nZWcENtbW8ccMMSRoqjkPGPxx+NfxD1jw94i8f/GD4peOfEHhGXz/AAprvjH4geLPE2seGJjcwXnneHtT1rV7290WX7Xa2t15mmz2z/abaCfPmwxsoB/uS/Ab9k79l39lrTb/AEj9mv8AZ1+CPwDsNWitYdai+EHwu8F/DyTXUsWlazbX7nwro2l3Wuy27zzvFPq897Osk0ziTfK7N8I/8Fav+Cw37Mf/AASg+B+teL/iR4k0Txd8e9d0O6b4J/s56VrFo3jr4ga7OJ7XS9W1jT4JXvvCvwz07UInl8T+ONSgisorWzu9L0Fda8UzaboV7/k96L/wVl/4Ki+HNAk8L6J/wUU/bb03Q5FSNLK3/ag+M4NnEgIEOmXb+MmvdJhIY7odMubSJzy6MQDXw54s8X+LPHviLVfF/jrxR4i8aeLNdunvtc8UeLNb1LxH4i1m9kAEl5qut6xc3mpajdOAA9xd3M0rADLnFAHcfHn43/Ej9pX40fFD4/8Axg1+TxR8T/jB438Q/EDxvrjxrbx3mv8AiTUJtRvEsrOM+Rp2lWZmWw0fSrUJZ6TpVtZ6bZRxWtrDGv8AsJ/8G/P/AChm/wCCfX/ZDIf/AFLfFFf4yVe8+Gf2qP2nvBWg6Z4V8G/tHfHnwl4Y0S3Fno3hzwz8X/iDoOg6RaB3lFrpmj6V4htNPsLcSSSSCC1t4ot7u+3czEgH+gB/we9f8mufsO/9l9+I3/qu7Wv47f8AgjZ/wVW+I/8AwSU/a40v45+HdKufGvwo8Z6bB4B/aA+F0VykEnjX4cz6pa6g194fkuZYrGy8feDr2Aa34M1O7aOBpjqfh2+ubbRPEusufzs+IPx1+N3xbs9O074q/GP4qfE3T9IuZb3SbH4g/ELxd4zs9LvJ4hBPd6dbeI9X1KCyuZoAIZZ7ZIpZIgI3coMV5XQB/uRfsS/8FD/2Pf8Agob8NNO+J37KXxr8JfEazm023v8AxF4LXUbTTfih8PbiYrFNpPxE+Hd1cDxN4Tv7a7LWi3F7ZNourbVv/DurazpFzZajc5P7RX/BML/gnn+1p4juPGf7Rn7G/wCz98VvG95Atre+O/EPw60KHx3fW8Y2ww3/AI20m303xTfR265Fqt3q8wtAzi28oO+7/EZ8H+NfGXw88Q2Hi3wB4t8TeB/FelO0ml+JvB+var4Z8Q6bI6lGksNa0W7stSs3ZCVZre5jYqSpJBxX6R+D/wDgtx/wVy8C6fbaZoP/AAUR/atlsrOAW1tH4l+LPiLxtLHAqlUj+1eNLjxBdMI0wkRedmhRUSIoqIFAP9cT9nv/AIJh/wDBPL9lPXLbxV+z1+xl+zv8LvGFkI1sfHGg/DHw3P47sVjJZRY+ONXstS8WWQZiHlFrrEQndI3m8xooyn8nv/B638a/g9r/AOz/APsp/BbQfin8Pdc+L/hb4/a94q8U/C/RvGOgap4+8L+G5PhzrWlQa54k8J2N/PrmgaXdaldQ2NneatZWcN7cmSK0eZ4JxH/F78Vf+Cs3/BTj43aVPoHxP/b2/av8T+HrtZEvfDh+N/j3RvDmoJKu149S0Dw/rWlaPqUe0sqR31lcJEryCJUEj7vz6lllnlkmmkkmmmkeWWWV2klllkYvJJJI5LPI7Es7sSzMSSSSTQB/pp/8GT//ACjh/aY/7Pb8U/8AqiPgPX6sf8HJ/wDyhF/b0/7Er4X/APq/vhPX+RX8P/j98d/hPpV3oXws+Nfxb+Gmh6hqD6tf6N8P/iR4x8G6Ve6rJbW1nJqd3p3h3WdNtLnUJLSzs7V72aF7lra1toGkMUESrteK/wBqL9pjx54f1Lwl45/aJ+OvjPwrrMcMOr+GfFfxc8f+IvD+qxW9zDewRalour+ILzTb6OC8tre7hS6tpVjubeGdAssSOoB4VRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFAH//Z" } - From edbd8220be428eda26a62142961ce77732c3ac91 Mon Sep 17 00:00:00 2001 From: winguru Date: Tue, 15 Jun 2021 15:53:46 -0400 Subject: [PATCH 006/189] Created Dockerfile-experimental for manual and automated docker builds --- docker/Dockerfile-experimental | 146 +++++++++++++++++++++++++++++++++ 1 file changed, 146 insertions(+) create mode 100644 docker/Dockerfile-experimental diff --git a/docker/Dockerfile-experimental b/docker/Dockerfile-experimental new file mode 100644 index 0000000..cbddc11 --- /dev/null +++ b/docker/Dockerfile-experimental @@ -0,0 +1,146 @@ +# ----------------------------------------------------------------------------- +# winguru/xteve-experimental +# +# Builds a docker image for building an xTeVe server +# (https://xteve.de/) +# +# ----------------------------------------------------------------------------- +# First-stage build for xteve builder image +# ----------------------------------------------------------------------------- + +# Base image for builder is the latest Alpine release, version 3 +FROM alpine:3 as builder + +# Update base system and add dependencies for Go development environment +RUN apk update && apk upgrade && apk add --no-cache ca-certificates +RUN apk add --no-cache git make musl-dev go + +# Configure Go +ENV GOROOT /usr/lib/go +ENV GOPATH /go +ENV PATH /go/bin:${PATH} +RUN mkdir -p ${GOPATH}/src ${GOPATH}/bin + +# Checkout experimental xTeVe branch and compile +RUN git clone -b experimental https://github.com/winguru/xTeVe.git /src +WORKDIR /src +RUN go build xteve + +# ----------------------------------------------------------------------------- +# Second-stage build for xteve image +# ----------------------------------------------------------------------------- + +FROM alpine:latest +RUN apk update && apk upgrade && apk add --no-cache ca-certificates + +# Most of the docker build options are taken from https://github.com/dnsforge-repo/xteve +ARG BUILD_DATE +ARG VCS_REF +ARG XTEVE_VERSION + +LABEL org.label-schema.build-date="{$BUILD_DATE}" \ + org.label-schema.name="xTeVe Docker Edition" \ + org.label-schema.description="Experimental Dockerized xTeVe v2.1.x" \ + org.label-schema.url="https://hub.docker.com/r/winguru/xteve-experimental/" \ + org.label-schema.vcs-ref="{$VCS_REF}" \ + org.label-schema.vcs-url="https://github.com/winguru/xteve" \ + org.label-schema.vendor="WinGuru" \ + org.label-schema.version="{$XTEVE_VERSION}" \ + org.label-schema.schema-version="1.0" \ + MAINTAINER="github@geoffthornton.me" \ + DISCORD_URL="https://discord.gg/mqHtSBSSNC" + +ENV XTEVE_USER=xteve +ENV XTEVE_UID=31337 +ENV XTEVE_GID=31337 +ENV XTEVE_HOME=/home/xteve +ENV XTEVE_TEMP=/tmp/xteve +ENV XTEVE_BIN=/home/xteve/bin +ENV XTEVE_CACHE=/home/xteve/cache +ENV XTEVE_CONF=/home/xteve/conf +ENV XTEVE_PORT=34400 +ENV XTEVE_LOG=/var/log/xteve.log +ENV XTEVE_BRANCH=experimental +ENV XTEVE_DEBUG=0 +ENV XTEVE_API=1 +ENV XTEVE_URL="https://github.com/winguru/xTeVe-Downloads/blob/experimental/xteve_linux_amd64.tar.gz?raw=true" +ENV XTEVE_VERSION=1.0.9 +#ENV GUIDE2GO_HOME=/home/xteve/guide2go +#ENV GUIDE2GO_CONF=/home/xteve/guide2go/conf + +# Create the user and group to run inside the container +RUN adduser -g "$XTEVE_USER" -u $XTEVE_UID -D $XTEVE_USER +RUN addgroup -g $XTEVE_GID $XTEVE_USER $XTEVE_USER + +#ENV PERL_MM_USE_DEFAULT=1 +ENV PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:$XTEVE_BIN + +# Set working directory +WORKDIR $XTEVE_HOME + +# Add Bash shell & dependancies +#RUN apk add --no-cache bash busybox-suid curl su-exec + +# Timezone (TZ): Add the tzdata package and configure for EST timezone. +# This will override the default container time in UTC. +RUN apk update && apk add --no-cache tzdata +ENV TZ=America/New_York +RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone + +# Add VideoLAN & ffmpeg support +RUN apk add --no-cache vlc ffmpeg + +# Install Perl Dependancies +#RUN apk add --no-cache \ +#perl-dev \ +#build-base \ +#perl-html-parser \ +#perl-http-cookies \ +#perl-json \ +#perl-lwp-protocol-https \ +#perl-lwp-useragent-determined \ +#perl-digest-sha1 + +# Pull the required binaries for xTeVe, Guide2go and Zap2XML from the repos. +COPY --from=builder [ "/src/xteve", "${XTEVE_BIN}/" ] +#ADD /bin/xteve_starter.pl $XTEVE_BIN/xteve_starter.pl +#RUN wget $XTEVE_URL -O xteve_linux_amd64.tar.gz \ +#&& tar zxfvp xteve_linux_amd64.tar.gz -C $XTEVE_BIN && rm -f $XTEVE_HOME/xteve_linux_amd64.tar.gz +#ADD /bin/guide2go $XTEVE_BIN/guide2go +#ADD /bin/guide2conf $XTEVE_BIN/guide2conf +#ADD /bin/zap2xml.pl $XTEVE_BIN/zap2xml.pl + +# Create XML cache directory +#RUN mkdir $XTEVE_HOME/cache && mkdir $XTEVE_HOME/cache/guide2go +RUN mkdir $XTEVE_HOME/cache + +# Set binary executable permissions. +#RUN chmod +x $XTEVE_BIN/xteve_starter.pl +RUN chmod +rx $XTEVE_BIN/xteve +#RUN chmod +rx $XTEVE_BIN/guide2go +#RUN chmod +rx $XTEVE_BIN/guide2conf +#RUN chmod +rx $XTEVE_BIN/zap2xml.pl + +# Create working directories for xTeVe +RUN mkdir $XTEVE_CONF +RUN chmod a+rwX $XTEVE_CONF +RUN mkdir $XTEVE_TEMP +RUN chmod a+rwX $XTEVE_TEMP + +# Configure container volume mappings +VOLUME $XTEVE_CONF +VOLUME $XTEVE_TEMP +#VOLUME $GUIDE2GO_CONF + +# Ensure the container user has ownership of home dir +RUN chown -R $XTEVE_USER $XTEVE_HOME + +# Set default container port +EXPOSE $XTEVE_PORT + +# Switch users to the xTeVe container user +USER $XTEVE_USER + +# Run the xTeVe init script / executable +#ENTRYPOINT $XTEVE_BIN/xteve_starter.pl +ENTRYPOINT ${XTEVE_BIN}/xteve -config ${XTEVE_CONF} \ No newline at end of file From 9052c3e2870678299b4c853a7069ea56842d9063 Mon Sep 17 00:00:00 2001 From: winguru Date: Tue, 15 Jun 2021 16:01:43 -0400 Subject: [PATCH 007/189] Created Dockerfile-experimental for manual and automated docker builds --- docker/Dockerfile-experimental | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/docker/Dockerfile-experimental b/docker/Dockerfile-experimental index cbddc11..b003447 100644 --- a/docker/Dockerfile-experimental +++ b/docker/Dockerfile-experimental @@ -68,9 +68,8 @@ ENV XTEVE_VERSION=1.0.9 #ENV GUIDE2GO_HOME=/home/xteve/guide2go #ENV GUIDE2GO_CONF=/home/xteve/guide2go/conf -# Create the user and group to run inside the container +# Create the user to run inside the container RUN adduser -g "$XTEVE_USER" -u $XTEVE_UID -D $XTEVE_USER -RUN addgroup -g $XTEVE_GID $XTEVE_USER $XTEVE_USER #ENV PERL_MM_USE_DEFAULT=1 ENV PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:$XTEVE_BIN From 490a21070764963bd83814e00075144337dcd876 Mon Sep 17 00:00:00 2001 From: winguru Date: Tue, 15 Jun 2021 16:02:54 -0400 Subject: [PATCH 008/189] Created tsconfig.json file for compiling TypeScript files --- ts/tsconfig.json | 14 ++++++++++++++ 1 file changed, 14 insertions(+) create mode 100644 ts/tsconfig.json diff --git a/ts/tsconfig.json b/ts/tsconfig.json new file mode 100644 index 0000000..ba9756d --- /dev/null +++ b/ts/tsconfig.json @@ -0,0 +1,14 @@ +{ + "compilerOptions": { + "module": "commonjs", + "target": "es6", + "sourceMap": false, + "outDir": "../html/js" + }, + "include": [ + "*.ts" + ], + "exclude": [ + "node_modules" + ] +} \ No newline at end of file From fbd2a5b080af44adf4e8118572d124ec69638d31 Mon Sep 17 00:00:00 2001 From: Geoff Thornton Date: Tue, 15 Jun 2021 17:12:15 -0400 Subject: [PATCH 009/189] Create README.md --- docker/README.md | 182 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 182 insertions(+) create mode 100644 docker/README.md diff --git a/docker/README.md b/docker/README.md new file mode 100644 index 0000000..7f6eb7a --- /dev/null +++ b/docker/README.md @@ -0,0 +1,182 @@ +Docker Cloud Automated build  +Docker Cloud Build Status + +

xTeVe Docker Experimental Edition

+ + + +Image Maintainer: winguru\ +
+ +For issues, questions, comments, or suggestions regarding this experminal xTeVe build, click below to join my Discord server: + +Discord + + +Many thanks to all the contributors to xTeVe, including LeeD <hostmaster@dnsforge.com>, whom most of this docker build is based on. + +
+
+ +

Description

+ +xTeVe is a M3U proxy server for Plex, Emby and any client and provider which supports the .TS and .M3U8 (HLS) streaming formats. + +

xTeVe emulates a SiliconDust HDHomeRun OTA tuner, which allows it to expose IPTV style channels to software, which would not normally support it. This Docker image includes the following packages and features: + +
+ +
+ +

    +
  • xTeVe v2.1 (Linux) x86 64 bit
  • +
  • VLC & ffmpeg Support
  • +
  • Automated XMLTV Guide Lineups
  • +
  • Runs as an unprivileged user
  • +
+ +
+ +

Experimental Features

+
    +
  • Support for Tvg-shift in M3U files (timezone shifting)
  • +
  • Planned support for different channel number mapping options
  • +
  • Planned support for automatic xTeVe dummy EPG data for channels with no EPG source
  • +
+ +
+ +

Docker 'run' Configuration & container mappings

+ +The recommended default container settings are listed in the docker run command listed below: + + +

docker run -it -d --name=xteve --network=host --restart=always -v $PATH/xteve:/home/xteve/conf winguru/xteve-experimental:latest

+ + +
+ +
+ +

Isolated (bridge) mode

+

To isolate the container in bridge mode use 'docker run' as follows. **Only use bridge mode if you fully understand its use** Generally for most users, it is easier to use host mode. + +
+ +In bridge mode the docker container will assign it's own dockernet ip address (usually in the 172.17.x network).

+ +

docker run -it -d --name=xteve -p 34400:34400 --restart=always -v $PATH/xteve:/home/xteve/conf winguru/xteve-experimental:latest

+ +
+ +
+ +

Default container paths

+ +This container is configured with the following default environmental variables, for reference, here are the paths of the xTeVe installation: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
VariablePath
  
$XTEVE_HOME/home/xteve
$XTEVE_BIN/home/xteve/bin
$XTEVE_CONF/home/xteve/conf
$XTEVE_CONF/data/home/xteve/conf/data
$XTEVE_CONF/backup/home/xteve/conf/backup
+ +
+ +

Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ParameterDescription
  
--nameName of container image
--networkSet network type [ host | bridge ]
--restartEnable auto restart for this container
-e TZ=Europe/LondonSet custom Locale
-p 34400Default container port mapping [ 127.0.0.1:34400:34400 ]
-e XTEVE_PORT=8080Set custom xTeVe Port
-e XTEVE_BRANCH=betaSet xTeVe git branch [ master|beta ] Default: master +
-e XTEVE_DEBUG=1Set xTeVe debug level [ 0-3 ] Default: 0=OFF
-e XTEVE_API=0Enable/Disable API [ beta ] Default: 1=ON
-vSet volume mapping [ -v ~xteve:/home/xteve/conf ]
winguru/xteve-experimental:latestLatest Docker image
+ +
+
+ From d11d79883cfe85b52c0126fb2be06fe941b0e361 Mon Sep 17 00:00:00 2001 From: winguru Date: Tue, 15 Jun 2021 17:22:02 -0400 Subject: [PATCH 010/189] Updated .gitignore for GoLand IDE files --- .gitignore | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index 8d7b0a2..4f942d6 100644 --- a/.gitignore +++ b/.gitignore @@ -6,4 +6,5 @@ files update_xteve*.sh xteve xteve.exe -de.json \ No newline at end of file +de.json +/.idea/* \ No newline at end of file From 03871dc1da3d359be1f3c4d539202b982f715427 Mon Sep 17 00:00:00 2001 From: winguru Date: Tue, 15 Jun 2021 19:00:56 -0400 Subject: [PATCH 011/189] Fixed Timeshift column reference in mapping section --- ts/menu_ts.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/ts/menu_ts.ts b/ts/menu_ts.ts index fa678ee..1bd2363 100644 --- a/ts/menu_ts.ts +++ b/ts/menu_ts.ts @@ -63,8 +63,8 @@ class MainMenuItem extends MainMenu { this.tableHeader = ["{{.users.table.username}}", "{{.users.table.password}}", "{{.users.table.web}}", "{{.users.table.pms}}", "{{.users.table.m3u}}", "{{.users.table.xml}}", "{{.users.table.api}}"] break - case "mapping": - this.tableHeader = ["BULK", "{{.mapping.table.chNo}}", "{{.mapping.table.logo}}", "{{.mapping.table.channelName}}", "{{.mapping.table.playlist}}", "{{.mapping.table.groupTitle}}", "{{.mapping.table.xmltvFile}}", "{{.mapping.table.xmltvID}}"] + case "mapping": + this.tableHeader = ["BULK", "{{.mapping.table.chNo}}", "{{.mapping.table.logo}}", "{{.mapping.table.channelName}}", "{{.mapping.table.playlist}}", "{{.mapping.table.groupTitle}}", "{{.mapping.table.xmltvFile}}", "{{.mapping.table.xmltvID}}", "{{.mapping.table.timeshift}}"] break } From e53cdd0526c26b8089b87ea6bb14622c33eab0d2 Mon Sep 17 00:00:00 2001 From: winguru Date: Thu, 17 Jun 2021 11:33:16 -0400 Subject: [PATCH 012/189] Experimental features pass all initial testing * Added support for preserving existing M3U Channel numbers per filter * Added support for starting channel number mapping per filter * Added support for filling missing EPG data w/ xTeVe Dummy EPG per filter * A bit of code refactoring for JavaScript best practices --- html/js/base_ts.js | 13 +- html/js/configuration_ts.js | 43 +-- html/js/logs_ts.js | 13 +- html/js/menu_ts.js | 531 ++++++++++++++++++------------------ html/js/network_ts.js | 11 +- html/js/settings_ts.js | 66 ++--- html/lang/en.json | 20 +- src/data.go | 6 + src/m3u.go | 3 + src/struct-system.go | 60 ++-- src/webUI.go | 58 ++-- src/xepg.go | 28 +- ts/base_ts.ts | 5 +- ts/menu_ts.ts | 328 ++++++++++++---------- 14 files changed, 609 insertions(+), 576 deletions(-) diff --git a/html/js/base_ts.js b/html/js/base_ts.js index 17ea2ac..53e7e48 100644 --- a/html/js/base_ts.js +++ b/html/js/base_ts.js @@ -51,7 +51,7 @@ function changeButtonAction(element, buttonID, attribute) { document.getElementById(buttonID).setAttribute(attribute, value); } function getLocalData(dataType, id) { - var data = new Object(); + let data = {}; switch (dataType) { case "m3u": data = SERVER["settings"]["files"][dataType][id]; @@ -71,6 +71,9 @@ function getLocalData(dataType, id) { data["include"] = ""; data["name"] = ""; data["type"] = "group-title"; + data["preserveMapping"] = true; + data["startingChannel"] = SERVER["settings"]["mapping.first.channel"]; + data["defaultMissingEPG"] = "-"; SERVER["settings"]["filter"][id] = data; } data = SERVER["settings"]["filter"][id]; @@ -227,8 +230,8 @@ function createSearchObj() { var data = SERVER["xepg"]["epgMapping"]; var channels = getObjKeys(data); var channelKeys = ["x-active", "x-channelID", "x-name", "_file.m3u.name", "x-group-title", "x-xmltv-file"]; - channels.forEach(function (id) { - channelKeys.forEach(function (key) { + channels.forEach(id => { + channelKeys.forEach(key => { if (key == "x-active") { switch (data[id][key]) { case true: @@ -293,7 +296,7 @@ function changeChannelNumber(element) { alert("{{.alert.invalidChannelNumber}}"); return; } - channels.forEach(function (id) { + channels.forEach(id => { var channelNumber = parseFloat(data[id]["x-channelID"]); channelNumbers.push(channelNumber); }); @@ -340,7 +343,7 @@ function toggleChannelStatus(id) { if (ids.length == 0) { ids.push(id); } - ids.forEach(function (id) { + ids.forEach(id => { var channel = SERVER["xepg"]["epgMapping"][id]; channel["x-active"] = status; switch (channel["x-active"]) { diff --git a/html/js/configuration_ts.js b/html/js/configuration_ts.js index 8aa4ee3..9c9c40f 100644 --- a/html/js/configuration_ts.js +++ b/html/js/configuration_ts.js @@ -1,36 +1,20 @@ -var __extends = (this && this.__extends) || (function () { - var extendStatics = function (d, b) { - extendStatics = Object.setPrototypeOf || - ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || - function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; }; - return extendStatics(d, b); - }; - return function (d, b) { - extendStatics(d, b); - function __() { this.constructor = d; } - d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); - }; -})(); -var WizardCategory = /** @class */ (function () { - function WizardCategory() { +class WizardCategory { + constructor() { this.DocumentID = "content"; } - WizardCategory.prototype.createCategoryHeadline = function (value) { + createCategoryHeadline(value) { var element = document.createElement("H4"); element.innerHTML = value; return element; - }; - return WizardCategory; -}()); -var WizardItem = /** @class */ (function (_super) { - __extends(WizardItem, _super); - function WizardItem(key, headline) { - var _this = _super.call(this) || this; - _this.headline = headline; - _this.key = key; - return _this; } - WizardItem.prototype.createWizard = function () { +} +class WizardItem extends WizardCategory { + constructor(key, headline) { + super(); + this.headline = headline; + this.key = key; + } + createWizard() { var headline = this.createCategoryHeadline(this.headline); var key = this.key; var content = new PopupContent(); @@ -85,9 +69,8 @@ var WizardItem = /** @class */ (function (_super) { pre.innerHTML = description; doc.appendChild(pre); console.log(headline, key); - }; - return WizardItem; -}(WizardCategory)); + } +} function readyForConfiguration(wizard) { var server = new Server("getServerConfig"); server.request(new Object()); diff --git a/html/js/logs_ts.js b/html/js/logs_ts.js index ab2f812..1ccaef3 100644 --- a/html/js/logs_ts.js +++ b/html/js/logs_ts.js @@ -1,7 +1,5 @@ -var Log = /** @class */ (function () { - function Log() { - } - Log.prototype.createLog = function (entry) { +class Log { + createLog(entry) { var element = document.createElement("PRE"); if (entry.indexOf("WARNING") != -1) { element.className = "warningMsg"; @@ -14,16 +12,15 @@ var Log = /** @class */ (function () { } element.innerHTML = entry; return element; - }; - return Log; -}()); + } +} function showLogs(bottom) { var log = new Log(); var logs = SERVER["log"]["log"]; var div = document.getElementById("content_log"); div.innerHTML = ""; var keys = getObjKeys(logs); - keys.forEach(function (logID) { + keys.forEach(logID => { var entry = log.createLog(logs[logID]); div.append(entry); }); diff --git a/html/js/menu_ts.js b/html/js/menu_ts.js index 4924922..3efde66 100644 --- a/html/js/menu_ts.js +++ b/html/js/menu_ts.js @@ -1,53 +1,37 @@ -var __extends = (this && this.__extends) || (function () { - var extendStatics = function (d, b) { - extendStatics = Object.setPrototypeOf || - ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || - function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; }; - return extendStatics(d, b); - }; - return function (d, b) { - extendStatics(d, b); - function __() { this.constructor = d; } - d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); - }; -})(); -var MainMenu = /** @class */ (function () { - function MainMenu() { +class MainMenu { + constructor() { this.DocumentID = "main-menu"; this.HTMLTag = "LI"; this.ImagePath = "img/"; } - MainMenu.prototype.createIMG = function (src) { - var element = document.createElement("IMG"); + createIMG(src) { + let element = document.createElement("IMG"); element.setAttribute("src", this.ImagePath + src); return element; - }; - MainMenu.prototype.createValue = function (value) { - var element = document.createElement("P"); + } + createValue(value) { + let element = document.createElement("P"); element.innerHTML = value; return element; - }; - return MainMenu; -}()); -var MainMenuItem = /** @class */ (function (_super) { - __extends(MainMenuItem, _super); - function MainMenuItem(menuKey, value, image, headline) { - var _this = _super.call(this) || this; - _this.menuKey = menuKey; - _this.value = value; - _this.imgSrc = image; - _this.headline = headline; - return _this; } - MainMenuItem.prototype.createItem = function () { - var item = document.createElement("LI"); +} +class MainMenuItem extends MainMenu { + constructor(menuKey, value, image, headline) { + super(); + this.menuKey = menuKey; + this.value = value; + this.imgSrc = image; + this.headline = headline; + } + createItem() { + let item = document.createElement("LI"); item.setAttribute("onclick", "javascript: openThisMenu(this)"); item.setAttribute("id", this.id); - var img = this.createIMG(this.imgSrc); - var value = this.createValue(this.value); + let img = this.createIMG(this.imgSrc); + let value = this.createValue(this.value); item.appendChild(img); item.appendChild(value); - var doc = document.getElementById(this.DocumentID); + let doc = document.getElementById(this.DocumentID); doc.appendChild(item); switch (this.menuKey) { case "playlist": @@ -67,55 +51,54 @@ var MainMenuItem = /** @class */ (function (_super) { break; } //console.log(this.menuKey, this.tableHeader); - }; - return MainMenuItem; -}(MainMenu)); -var Content = /** @class */ (function () { - function Content() { + } +} +class Content { + constructor() { this.DocumentID = "content"; this.TableID = "content_table"; this.headerClass = "content_table_header"; this.interactionID = "content-interaction"; } - Content.prototype.createHeadline = function (value) { - var element = document.createElement("H3"); + createHeadline(value) { + let element = document.createElement("H3"); element.innerHTML = value; return element; - }; - Content.prototype.createHR = function () { - var element = document.createElement("HR"); - return element; - }; - Content.prototype.createInteraction = function () { - var element = document.createElement("DIV"); + } + createHR() { + return document.createElement("HR"); + } + createInteraction() { + let element = document.createElement("DIV"); element.setAttribute("id", this.interactionID); return element; - }; - Content.prototype.createDIV = function () { - var element = document.createElement("DIV"); + } + createDIV() { + let element = document.createElement("DIV"); element.id = this.DivID; return element; - }; - Content.prototype.createTABLE = function () { - var element = document.createElement("TABLE"); + } + createTABLE() { + let element = document.createElement("TABLE"); element.id = this.TableID; return element; - }; - Content.prototype.createTableRow = function () { - var element = document.createElement("TR"); + } + createTableRow() { + let element = document.createElement("TR"); element.className = this.headerClass; return element; - }; - Content.prototype.createTableContent = function (menuKey) { - var data = new Object(); - var rows = new Array(); + } + createTableContent(menuKey) { + let data = {}; + let rows = []; + let fileTypes = []; switch (menuKey) { case "playlist": - var fileTypes = new Array("m3u", "hdhr"); - fileTypes.forEach(function (fileType) { + fileTypes = ["m3u", "hdhr"]; + fileTypes.forEach(fileType => { data = SERVER["settings"]["files"][fileType]; var keys = getObjKeys(data); - keys.forEach(function (key) { + keys.forEach(key => { var tr = document.createElement("TR"); tr.id = key; tr.setAttribute('onclick', 'javascript: openPopUp("' + fileType + '", this)'); @@ -177,7 +160,7 @@ var Content = /** @class */ (function () { delete SERVER["settings"]["filter"][-1]; data = SERVER["settings"]["filter"]; var keys = getObjKeys(data); - keys.forEach(function (key) { + keys.forEach(key => { var tr = document.createElement("TR"); tr.id = key; tr.setAttribute('onclick', 'javascript: openPopUp("' + data[key]["type"] + '", this)'); @@ -209,11 +192,11 @@ var Content = /** @class */ (function () { }); break; case "xmltv": - var fileTypes = new Array("xmltv"); - fileTypes.forEach(function (fileType) { + fileTypes = new Array("xmltv"); + fileTypes.forEach(fileType => { data = SERVER["settings"]["files"][fileType]; var keys = getObjKeys(data); - keys.forEach(function (key) { + keys.forEach(key => { var tr = document.createElement("TR"); tr.id = key; tr.setAttribute('onclick', 'javascript: openPopUp("' + fileType + '", this)'); @@ -247,11 +230,11 @@ var Content = /** @class */ (function () { }); break; case "users": - var fileTypes = new Array("users"); - fileTypes.forEach(function (fileType) { + fileTypes = new Array("users"); + fileTypes.forEach(fileType => { data = SERVER[fileType]; var keys = getObjKeys(data); - keys.forEach(function (key) { + keys.forEach(key => { var tr = document.createElement("TR"); tr.id = key; tr.setAttribute('onclick', 'javascript: openPopUp("' + fileType + '", this)'); @@ -326,7 +309,7 @@ var Content = /** @class */ (function () { console.log("MAPPING"); data = SERVER["xepg"]["epgMapping"]; var keys = getObjKeys(data); - keys.forEach(function (key) { + keys.forEach(key => { var tr = document.createElement("TR"); tr.id = key; //tr.setAttribute('oncontextmenu', 'javascript: rightClick(this)') @@ -413,16 +396,15 @@ var Content = /** @class */ (function () { value = data[key]["x-mapping"].substring(0, 20) + "..."; } cell.value = value; - var td = cell.createCell(); + var td = cell.createCell(); td.setAttribute('onclick', 'javascript: openPopUp("mapping", this)'); td.id = key; tr.appendChild(td); - // Timeshift + // TimeShift var cell = new Cell(); cell.child = true; cell.childType = "P"; - var value = data[key]["x-timeshift"]; - cell.value = value; + cell.value = data[key]["x-timeshift"]; var td = cell.createCell(); td.setAttribute('onclick', 'javascript: openPopUp("mapping", this)'); td.id = key; @@ -438,14 +420,11 @@ var Content = /** @class */ (function () { break; } return rows; - }; - return Content; -}()); -var Cell = /** @class */ (function () { - function Cell() { } - Cell.prototype.createCell = function () { - var td = document.createElement("TD"); +} +class Cell { + createCell() { + let td = document.createElement("TD"); if (this.child == true) { var element; switch (this.childType) { @@ -499,40 +478,37 @@ var Cell = /** @class */ (function () { td.className = this.tdClassName; } return td; - }; - return Cell; -}()); -var ShowContent = /** @class */ (function (_super) { - __extends(ShowContent, _super); - function ShowContent(menuID) { - var _this = _super.call(this) || this; - _this.menuID = menuID; - return _this; } - ShowContent.prototype.createInput = function (type, name, value) { - var input = document.createElement("INPUT"); +} +class ShowContent extends Content { + constructor(menuID) { + super(); + this.menuID = menuID; + } + createInput(type, name, value) { + let input = document.createElement("INPUT"); input.setAttribute("type", type); input.setAttribute("name", name); input.setAttribute("value", value); return input; - }; - ShowContent.prototype.show = function () { + } + show() { COLUMN_TO_SORT = -1; // Alten Inhalt löschen - var doc = document.getElementById(this.DocumentID); + let doc = document.getElementById(this.DocumentID); doc.innerHTML = ""; showPreview(false); // Überschrift - var headline = menuItems[this.menuID].headline; - var menuKey = menuItems[this.menuID].menuKey; - var h = this.createHeadline(headline); + let headline = menuItems[this.menuID].headline; + let menuKey = menuItems[this.menuID].menuKey; + let h = this.createHeadline(headline); doc.appendChild(h); - var hr = this.createHR(); + let hr = this.createHR(); doc.appendChild(hr); // Interaktion - var div = this.createInteraction(); + let div = this.createInteraction(); doc.appendChild(div); - var interaction = document.getElementById(this.interactionID); + let interaction = document.getElementById(this.interactionID); switch (menuKey) { case "playlist": var input = this.createInput("button", menuKey, "{{.button.new}}"); @@ -591,7 +567,6 @@ var ShowContent = /** @class */ (function (_super) { wrapper.appendChild(settings); showSettings(); return; - break; case "log": var input = this.createInput("button", menuKey, "{{.button.resetLogs}}"); input.setAttribute("onclick", 'javascript: resetLogs();'); @@ -604,7 +579,6 @@ var ShowContent = /** @class */ (function (_super) { wrapper.appendChild(logs); showLogs(true); return; - break; case "logout": location.reload(); document.cookie = "Token= ; expires = Thu, 01 Jan 1970 00:00:00 GMT"; @@ -624,7 +598,7 @@ var ShowContent = /** @class */ (function (_super) { var header = this.createTableRow(); table.appendChild(header); // Kopfzeile der Tablle - tableHeader.forEach(function (element) { + tableHeader.forEach(element => { var cell = new Cell(); cell.child = true; cell.childType = "P"; @@ -657,7 +631,7 @@ var ShowContent = /** @class */ (function (_super) { table.appendChild(header); // Inhalt der Tabelle var rows = this.createTableContent(menuKey); - rows.forEach(function (tr) { + rows.forEach(tr => { table.appendChild(tr); }); } @@ -675,12 +649,11 @@ var ShowContent = /** @class */ (function (_super) { break; } showElement("loading", false); - }; - return ShowContent; -}(Content)); + } +} function PageReady() { - var server = new Server("getServerConfig"); - server.request(new Object()); + let server = new Server("getServerConfig"); + server.request({}); window.addEventListener("resize", function () { calculateWrapperHeight(); }, true); @@ -691,8 +664,8 @@ function PageReady() { } function createLayout() { // Client Info - var obj = SERVER["clientInfo"]; - var keys = getObjKeys(obj); + let obj = SERVER["clientInfo"]; + let keys = getObjKeys(obj); for (var i = 0; i < keys.length; i++) { if (document.getElementById(keys[i])) { document.getElementById(keys[i]).innerHTML = obj[keys[i]]; @@ -703,68 +676,65 @@ function createLayout() { } // Menü erstellen document.getElementById("main-menu").innerHTML = ""; - for (var i_1 = 0; i_1 < menuItems.length; i_1++) { - menuItems[i_1].id = i_1; - switch (menuItems[i_1]["menuKey"]) { + for (let i = 0; i < menuItems.length; i++) { + menuItems[i].id = i; + switch (menuItems[i]["menuKey"]) { case "users": case "logout": if (SERVER["settings"]["authentication.web"] == true) { - menuItems[i_1].createItem(); + menuItems[i].createItem(); } break; case "mapping": case "xmltv": if (SERVER["clientInfo"]["epgSource"] == "XEPG") { - menuItems[i_1].createItem(); + menuItems[i].createItem(); } break; default: - menuItems[i_1].createItem(); + menuItems[i].createItem(); break; } } return; } function openThisMenu(element) { - var id = element.id; - var content = new ShowContent(id); + let id = element.id; + let content = new ShowContent(id); content.show(); calculateWrapperHeight(); return; } -var PopupWindow = /** @class */ (function () { - function PopupWindow() { +class PopupWindow { + constructor() { this.DocumentID = "popup-custom"; this.InteractionID = "interaction"; this.doc = document.getElementById(this.DocumentID); } - PopupWindow.prototype.createTitle = function (title) { - var td = document.createElement("TD"); + createTitle(title) { + let td = document.createElement("TD"); td.className = "left"; td.innerHTML = title + ":"; return td; - }; - PopupWindow.prototype.createContent = function (element) { - var td = document.createElement("TD"); + } + createContent(element) { + let td = document.createElement("TD"); td.appendChild(element); return td; - }; - PopupWindow.prototype.createInteraction = function () { - var div = document.createElement("div"); + } + createInteraction() { + let div = document.createElement("div"); div.setAttribute("id", "popup-interaction"); div.className = "interaction"; this.doc.appendChild(div); - }; - return PopupWindow; -}()); -var PopupContent = /** @class */ (function (_super) { - __extends(PopupContent, _super); - function PopupContent() { - var _this = _super !== null && _super.apply(this, arguments) || this; - _this.table = document.createElement("TABLE"); - return _this; } - PopupContent.prototype.createHeadline = function (headline) { +} +class PopupContent extends PopupWindow { + constructor() { + super(...arguments); + this.table = document.createElement("TABLE"); + } + createHeadline(headline) { this.doc.innerHTML = ""; var element = document.createElement("H3"); element.innerHTML = headline.toUpperCase(); @@ -772,9 +742,9 @@ var PopupContent = /** @class */ (function (_super) { // Tabelle erstellen this.table = document.createElement("TABLE"); this.doc.appendChild(this.table); - }; - PopupContent.prototype.appendRow = function (title, element) { - var tr = document.createElement("TR"); + } + appendRow(title, element) { + let tr = document.createElement("TR"); // Bezeichnung if (title.length != 0) { tr.appendChild(this.createTitle(title)); @@ -782,9 +752,9 @@ var PopupContent = /** @class */ (function (_super) { // Content tr.appendChild(this.createContent(element)); this.table.appendChild(tr); - }; - PopupContent.prototype.createInput = function (type, name, value) { - var input = document.createElement("INPUT"); + } + createInput(type, name, value) { + let input = document.createElement("INPUT"); if (value == undefined) { value = ""; } @@ -792,18 +762,19 @@ var PopupContent = /** @class */ (function (_super) { input.setAttribute("name", name); input.setAttribute("value", value); return input; - }; - PopupContent.prototype.createCheckbox = function (name) { - var input = document.createElement("INPUT"); + } + createCheckbox(name) { + let input = document.createElement("INPUT"); input.setAttribute("type", "checkbox"); input.setAttribute("name", name); return input; - }; - PopupContent.prototype.createSelect = function (text, values, set, dbKey) { - var select = document.createElement("SELECT"); + } + // Creates a selection of multiple options values with text descriptions + createSelect(text, values, set, dbKey) { + let select = document.createElement("SELECT"); select.setAttribute("name", dbKey); - for (var i = 0; i < text.length; i++) { - var option = document.createElement("OPTION"); + for (let i = 0; i < text.length; i++) { + let option = document.createElement("OPTION"); option.setAttribute("value", values[i]); option.innerText = text[i]; select.appendChild(option); @@ -815,32 +786,31 @@ var PopupContent = /** @class */ (function (_super) { select.value = values[0]; } return select; - }; - PopupContent.prototype.selectOption = function (select, value) { + } + selectOption(select, value) { //select.selectedOptions = value - var s = select; + let s = select; s.options[s.selectedIndex].value = value; return select; - }; - PopupContent.prototype.description = function (value) { - var tr = document.createElement("TR"); - var td = document.createElement("TD"); - var span = document.createElement("PRE"); + } + description(value) { + let tr = document.createElement("TR"); + let td = document.createElement("TD"); + let span = document.createElement("PRE"); span.innerHTML = value; tr.appendChild(td); tr.appendChild(this.createContent(span)); this.table.appendChild(tr); - }; + } // Interaktion - PopupContent.prototype.addInteraction = function (element) { - var interaction = document.getElementById("popup-interaction"); + addInteraction(element) { + let interaction = document.getElementById("popup-interaction"); interaction.appendChild(element); - }; - return PopupContent; -}(PopupWindow)); + } +} function openPopUp(dataType, element) { - var data = new Object(); - var id; + let data = {}; + let id; switch (element) { case undefined: switch (dataType) { @@ -870,7 +840,7 @@ function openPopUp(dataType, element) { data = getLocalData(dataType, id); break; } - var content = new PopupContent(); + let content = new PopupContent(); switch (dataType) { case "playlist": content.createHeadline("{{.playlist.playlistType.title}}"); @@ -912,8 +882,8 @@ function openPopUp(dataType, element) { content.appendRow("{{.playlist.fileM3U.title}}", input); // Tuner if (SERVER["settings"]["buffer"] != "-") { - var text = new Array(); - var values = new Array(); + var text = []; + var values = []; for (var i = 1; i <= 100; i++) { text.push(i.toString()); values.push(i.toString()); @@ -982,8 +952,8 @@ function openPopUp(dataType, element) { content.appendRow("{{.playlist.fileHDHR.title}}", input); // Tuner if (SERVER["settings"]["buffer"] != "-") { - var text = new Array(); - var values = new Array(); + var text = []; + var values = []; for (var i = 1; i <= 100; i++) { text.push(i.toString()); values.push(i.toString()); @@ -1059,10 +1029,10 @@ function openPopUp(dataType, element) { case "group-title": switch (dataType) { case "custom-filter": - content.createHeadline("{{.filter.custom}}"); + content.createHeadline("{{.filter.custom}}" + " Filter"); break; case "group-title": - content.createHeadline("{{.filter.group}}"); + content.createHeadline("{{.filter.group}}" + " Filter"); break; } // Name @@ -1119,6 +1089,34 @@ function openPopUp(dataType, element) { input.setAttribute("placeholder", "{{.filter.exclude.placeholder}}"); content.appendRow("{{.filter.exclude.title}}", input); content.description("{{.filter.exclude.description}}"); + // Preserve M3U Playlist Channel Mapping + var dbKey = "preserveMapping"; + var input = content.createCheckbox(dbKey); + input.checked = data[dbKey]; + content.appendRow("{{.filter.preserveMapping.title}}", input); + // Starting Channel Number Mapping + var dbKey = "startingChannel"; + var input = content.createInput("text", dbKey, data[dbKey]); + input.setAttribute("placeholder", "{{.filter.startingChannel.placeholder}}"); + content.appendRow("{{.filter.startingChannel.title}}", input); + // Fill Missing EPG Data + // The following code only works when xTeVe Dummy already exists + // var dbKey:string = "defaultMissingEPG" + // var xmltv:XMLTVFile = new XMLTVFile() + // var select = xmltv.getPrograms("xTeVe Dummy", data[dbKey]) + // select.setAttribute("name", dbKey) + // select.setAttribute("id", "popup-missing-epg") + // The workaround is currently to hard code the xTeVe Dummy data + var dbKey = "defaultMissingEPG"; + var listOptions = { "text": ["-", "30 Minutes (30_Minutes)", "60 Minutes (60_Minutes)", "90 Minutes (90_Minutes)", + "120 Minutes (120_Minutes)", "180 Minutes (30_Minutes)", "240 Minutes (30_Minutes)", "360 Minutes (30_Minutes)"], + "value": ["-", "30_Minutes", "60_Minutes", "90_Minutes", "120_Minutes", "180_Minutes", "240_Minutes", "360_Minutes",] }; + var text = listOptions["text"]; + var values = listOptions["value"]; + var select = content.createSelect(text, values, data[dbKey], dbKey); + select.setAttribute("onchange", "javascript: this.className = 'changed'"); + content.appendRow("{{.filter.defaultMissingEPG.title}}", select); + content.description("{{.filter.defaultMissingEPG.description}}"); break; default: break; @@ -1329,8 +1327,8 @@ function openPopUp(dataType, element) { // Timeshift var dbKey = "x-timeshift"; var input = content.createInput("text", dbKey, data[dbKey]); - input.setAttribute("placeholder", "{{.mapping.timeshift.placeholder}}"); input.setAttribute("onchange", "javascript: this.className = 'changed'"); + input.setAttribute("placeholder", "{{.mapping.timeshift.placeholder}}"); input.setAttribute("id", "timeshift"); content.appendRow("{{.mapping.timeshift.title}}", input); // Interaktion @@ -1344,7 +1342,7 @@ function openPopUp(dataType, element) { input.setAttribute("onclick", 'javascript: showElement("popup", false);'); content.addInteraction(input); // Fertig - var ids = new Array(); + var ids = []; ids = getAllSelectedChannels(); if (ids.length == 0) { ids.push(id); @@ -1358,14 +1356,12 @@ function openPopUp(dataType, element) { } showPopUpElement('popup-custom'); } -var XMLTVFile = /** @class */ (function () { - function XMLTVFile() { - } - XMLTVFile.prototype.getFiles = function (set) { - var fileIDs = getObjKeys(SERVER["xepg"]["xmltvMap"]); - var values = new Array("-"); - var text = new Array("-"); - for (var i = 0; i < fileIDs.length; i++) { +class XMLTVFile { + getFiles(set) { + let fileIDs = getObjKeys(SERVER["xepg"]["xmltvMap"]); + let values = new Array("-"); + let text = new Array("-"); + for (let i = 0; i < fileIDs.length; i++) { if (fileIDs[i] != "xTeVe Dummy") { values.push(getValueFromProviderFile(fileIDs[i], "xmltv", "file.xteve")); text.push(getValueFromProviderFile(fileIDs[i], "xmltv", "name")); @@ -1375,8 +1371,8 @@ var XMLTVFile = /** @class */ (function () { text.push(fileIDs[i]); } } - var select = document.createElement("SELECT"); - for (var i = 0; i < text.length; i++) { + let select = document.createElement("SELECT"); + for (let i = 0; i < text.length; i++) { var option = document.createElement("OPTION"); option.setAttribute("value", values[i]); option.innerText = text[i]; @@ -1386,13 +1382,13 @@ var XMLTVFile = /** @class */ (function () { select.value = set; } return select; - }; - XMLTVFile.prototype.getPrograms = function (file, set) { + } + getPrograms(file, set) { //var fileIDs:string[] = getObjKeys(SERVER["xepg"]["xmltvMap"]) - var values = getObjKeys(SERVER["xepg"]["xmltvMap"][file]); - var text = new Array(); - var displayName; - for (var i = 0; i < values.length; i++) { + let values = getObjKeys(SERVER["xepg"]["xmltvMap"][file]); + let text = []; + let displayName; + for (let i = 0; i < values.length; i++) { if (SERVER["xepg"]["xmltvMap"][file][values[i]].hasOwnProperty('display-name') == true) { displayName = SERVER["xepg"]["xmltvMap"][file][values[i]]["display-name"]; } @@ -1403,8 +1399,8 @@ var XMLTVFile = /** @class */ (function () { } text.unshift("-"); values.unshift("-"); - var select = document.createElement("SELECT"); - for (var i = 0; i < text.length; i++) { + let select = document.createElement("SELECT"); + for (let i = 0; i < text.length; i++) { var option = document.createElement("OPTION"); option.setAttribute("value", values[i]); option.innerText = text[i]; @@ -1417,15 +1413,14 @@ var XMLTVFile = /** @class */ (function () { select.value = "-"; } return select; - }; - return XMLTVFile; -}()); + } +} function getValueFromProviderFile(file, fileType, key) { if (file == "xTeVe Dummy") { return file; } - var fileID; - var indicator = file.charAt(0); + let fileID; + let indicator = file.charAt(0); switch (indicator) { case "M": fileType = "m3u"; @@ -1447,12 +1442,12 @@ function getValueFromProviderFile(file, fileType, key) { return; } function setXmltvChannel(id, element) { - var xmltv = new XMLTVFile(); - var xmlFile = element.value; - var tvgId = SERVER["xepg"]["epgMapping"][id]["tvg-id"]; - var td = document.getElementById("popup-mapping").parentElement; + let xmltv = new XMLTVFile(); + let xmlFile = element.value; + let tvgId = SERVER["xepg"]["epgMapping"][id]["tvg-id"]; + let td = document.getElementById("popup-mapping").parentElement; td.innerHTML = ""; - var select = xmltv.getPrograms(element.value, tvgId); + let select = xmltv.getPrograms(element.value, tvgId); select.setAttribute("name", "x-mapping"); select.setAttribute("id", "popup-mapping"); select.setAttribute("onchange", "javascript: this.className = 'changed'; checkXmltvChannel('" + id + "',this,'" + xmlFile + "');"); @@ -1462,17 +1457,12 @@ function setXmltvChannel(id, element) { checkXmltvChannel(id, select, xmlFile); } function checkXmltvChannel(id, element, xmlFile) { - var value = element.value; - var bool; - var checkbox = document.getElementById('active'); - var channel = SERVER["xepg"]["epgMapping"][id]; - var updateLogo; - if (value == "-") { - bool = false; - } - else { - bool = true; - } + let value = element.value; + let bool; + let checkbox = document.getElementById('active'); + let channel = SERVER["xepg"]["epgMapping"][id]; + let updateLogo; + bool = value != "-"; checkbox.checked = bool; checkbox.className = "changed"; console.log(xmlFile); @@ -1495,13 +1485,13 @@ function checkXmltvChannel(id, element, xmlFile) { return; } function changeChannelLogo(id) { - var updateLogo; - var channel = SERVER["xepg"]["epgMapping"][id]; - var f = document.getElementById("popup-xmltv"); - var xmltvFile = f.options[f.selectedIndex].value; - var m = document.getElementById("popup-mapping"); - var xMapping = m.options[m.selectedIndex].value; - var xmltvLogo = SERVER["xepg"]["xmltvMap"][xmltvFile][xMapping]["icon"]; + let updateLogo; + let channel = SERVER["xepg"]["epgMapping"][id]; + let f = document.getElementById("popup-xmltv"); + let xmltvFile = f.options[f.selectedIndex].value; + let m = document.getElementById("popup-mapping"); + let xMapping = m.options[m.selectedIndex].value; + let xmltvLogo = SERVER["xepg"]["xmltvMap"][xmltvFile][xMapping]["icon"]; updateLogo = document.getElementById("update-icon").checked; if (updateLogo == true && xmltvFile != "xTeVe Dummy") { if (SERVER["xepg"]["xmltvMap"][xmltvFile].hasOwnProperty(xMapping)) { @@ -1519,23 +1509,23 @@ function changeChannelLogo(id) { } function savePopupData(dataType, id, remove, option) { if (dataType == "mapping") { - var data = new Object(); + let data = {}; console.log("Save mapping data"); - cmd = "saveEpgMapping"; + let cmd = "saveEpgMapping"; data["epgMapping"] = SERVER["xepg"]["epgMapping"]; console.log("SEND TO SERVER"); - var server = new Server(cmd); + let server = new Server(cmd); server.request(data); delete UNDO["epgMapping"]; return; } console.log("Save popup data"); - var div = document.getElementById("popup-custom"); - var inputs = div.getElementsByTagName("TABLE")[0].getElementsByTagName("INPUT"); - var selects = div.getElementsByTagName("TABLE")[0].getElementsByTagName("SELECT"); - var input = new Object(); - var confirmMsg; - for (var i = 0; i < selects.length; i++) { + let div = document.getElementById("popup-custom"); + let inputs = div.getElementsByTagName("TABLE")[0].getElementsByTagName("INPUT"); + let selects = div.getElementsByTagName("TABLE")[0].getElementsByTagName("SELECT"); + let input = {}; + let confirmMsg; + for (let i = 0; i < selects.length; i++) { var name; name = selects[i].name; var value = selects[i].value; @@ -1548,7 +1538,7 @@ function savePopupData(dataType, id, remove, option) { break; } } - for (var i = 0; i < inputs.length; i++) { + for (let i = 0; i < inputs.length; i++) { switch (inputs[i].type) { case "checkbox": name = inputs[i].name; @@ -1569,8 +1559,8 @@ function savePopupData(dataType, id, remove, option) { break; } } - var data = new Object(); - var cmd; + let data = {}; + let cmd; if (remove == true) { input["delete"] = true; } @@ -1583,7 +1573,7 @@ function savePopupData(dataType, id, remove, option) { } else { cmd = "saveUserData"; - var d = new Object(); + let d = {}; d[id] = input; data["userData"] = d; } @@ -1600,8 +1590,8 @@ function savePopupData(dataType, id, remove, option) { cmd = "updateFileM3U"; break; } - data["files"] = new Object; - data["files"][dataType] = new Object; + data["files"] = {}; + data["files"][dataType] = {}; data["files"][dataType][id] = input; break; case "hdhr": @@ -1616,8 +1606,8 @@ function savePopupData(dataType, id, remove, option) { cmd = "updateFileHDHR"; break; } - data["files"] = new Object; - data["files"][dataType] = new Object; + data["files"] = {}; + data["files"][dataType] = {}; data["files"][dataType][id] = input; break; case "xmltv": @@ -1632,20 +1622,19 @@ function savePopupData(dataType, id, remove, option) { cmd = "updateFileXMLTV"; break; } - data["files"] = new Object; - data["files"][dataType] = new Object; + data["files"] = {}; + data["files"][dataType] = {}; data["files"][dataType][id] = input; break; case "filter": confirmMsg = "Delete this filter?"; cmd = "saveFilter"; - data["filter"] = new Object; + data["filter"] = {}; data["filter"][id] = input; break; default: console.log(dataType, id); return; - break; } if (remove == true) { if (!confirm(confirmMsg)) { @@ -1655,20 +1644,20 @@ function savePopupData(dataType, id, remove, option) { } console.log("SEND TO SERVER"); console.log(data); - var server = new Server(cmd); + let server = new Server(cmd); server.request(data); } function donePopupData(dataType, idsStr) { - var ids = idsStr.split(','); - var div = document.getElementById("popup-custom"); - var inputs = div.getElementsByClassName("changed"); - ids.forEach(function (id) { - var input = new Object(); + let ids = idsStr.split(','); + let div = document.getElementById("popup-custom"); + let inputs = div.getElementsByClassName("changed"); + ids.forEach(id => { + let input; input = SERVER["xepg"]["epgMapping"][id]; console.log(input); - for (var i = 0; i < inputs.length; i++) { - var name; - var value; + for (let i = 0; i < inputs.length; i++) { + let name; + let value; switch (inputs[i].tagName) { case "INPUT": switch (inputs[i].type) { @@ -1718,9 +1707,6 @@ function donePopupData(dataType, idsStr) { } document.getElementById(id).childNodes[7].firstChild.innerHTML = value; break; - case "x-timeshift": - document.getElementById(id).childNodes[8].firstChild.innerHTML = value; - break; default: } createSearchObj(); @@ -1739,22 +1725,21 @@ function donePopupData(dataType, idsStr) { return; } function showPreview(element) { - var div = document.getElementById("myStreamsBox"); + let div = document.getElementById("myStreamsBox"); switch (element) { case false: div.className = "notVisible"; return; - break; } - var streams = ["activeStreams", "inactiveStreams"]; - streams.forEach(function (preview) { - var table = document.getElementById(preview); + let streams = ["activeStreams", "inactiveStreams"]; + streams.forEach(preview => { + let table = document.getElementById(preview); table.innerHTML = ""; - var obj = SERVER["data"]["StreamPreviewUI"][preview]; - obj.forEach(function (channel) { - var tr = document.createElement("TR"); - var tdKey = document.createElement("TD"); - var tdVal = document.createElement("TD"); + let obj = SERVER["data"]["StreamPreviewUI"][preview]; + obj.forEach(channel => { + let tr = document.createElement("TR"); + let tdKey = document.createElement("TD"); + let tdVal = document.createElement("TD"); tdKey.className = "tdKey"; tdVal.className = "tdVal"; switch (preview) { diff --git a/html/js/network_ts.js b/html/js/network_ts.js index 916e819..9f95bbe 100644 --- a/html/js/network_ts.js +++ b/html/js/network_ts.js @@ -1,8 +1,8 @@ -var Server = /** @class */ (function () { - function Server(cmd) { +class Server { + constructor(cmd) { this.cmd = cmd; } - Server.prototype.request = function (data) { + request(data) { if (SERVER_CONNECTION == true) { return; } @@ -94,9 +94,8 @@ var Server = /** @class */ (function () { } createLayout(); }; - }; - return Server; -}()); + } +} function getCookie(name) { var value = "; " + document.cookie; var parts = value.split("; " + name + "="); diff --git a/html/js/settings_ts.js b/html/js/settings_ts.js index f0f1fdb..b601752 100644 --- a/html/js/settings_ts.js +++ b/html/js/settings_ts.js @@ -1,30 +1,17 @@ -var __extends = (this && this.__extends) || (function () { - var extendStatics = function (d, b) { - extendStatics = Object.setPrototypeOf || - ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || - function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; }; - return extendStatics(d, b); - }; - return function (d, b) { - extendStatics(d, b); - function __() { this.constructor = d; } - d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); - }; -})(); -var SettingsCategory = /** @class */ (function () { - function SettingsCategory() { +class SettingsCategory { + constructor() { this.DocumentID = "content_settings"; } - SettingsCategory.prototype.createCategoryHeadline = function (value) { + createCategoryHeadline(value) { var element = document.createElement("H4"); element.innerHTML = value; return element; - }; - SettingsCategory.prototype.createHR = function () { + } + createHR() { var element = document.createElement("HR"); return element; - }; - SettingsCategory.prototype.createSettings = function (settingsKey) { + } + createSettings(settingsKey) { var setting = document.createElement("TR"); var content = new PopupContent(); var data = SERVER["settings"][settingsKey]; @@ -318,8 +305,8 @@ var SettingsCategory = /** @class */ (function () { break; } return setting; - }; - SettingsCategory.prototype.createDescription = function (settingsKey) { + } + createDescription(settingsKey) { var description = document.createElement("TR"); var text; switch (settingsKey) { @@ -413,19 +400,15 @@ var SettingsCategory = /** @class */ (function () { description.appendChild(tdLeft); description.appendChild(tdRight); return description; - }; - return SettingsCategory; -}()); -var SettingsCategoryItem = /** @class */ (function (_super) { - __extends(SettingsCategoryItem, _super); - function SettingsCategoryItem(headline, settingsKeys) { - var _this = _super.call(this) || this; - _this.headline = headline; - _this.settingsKeys = settingsKeys; - return _this; } - SettingsCategoryItem.prototype.createCategory = function () { - var _this = this; +} +class SettingsCategoryItem extends SettingsCategory { + constructor(headline, settingsKeys) { + super(); + this.headline = headline; + this.settingsKeys = settingsKeys; + } + createCategory() { var headline = this.createCategoryHeadline(this.headline); var settingsKeys = this.settingsKeys; var doc = document.getElementById(this.DocumentID); @@ -433,7 +416,7 @@ var SettingsCategoryItem = /** @class */ (function (_super) { // Tabelle für die Kategorie erstellen var table = document.createElement("TABLE"); var keys = settingsKeys.split(","); - keys.forEach(function (settingsKey) { + keys.forEach(settingsKey => { switch (settingsKey) { case "authentication.pms": case "authentication.m3u": @@ -443,8 +426,8 @@ var SettingsCategoryItem = /** @class */ (function (_super) { break; } default: - var item = _this.createSettings(settingsKey); - var description = _this.createDescription(settingsKey); + var item = this.createSettings(settingsKey); + var description = this.createDescription(settingsKey); table.appendChild(item); table.appendChild(description); break; @@ -452,12 +435,11 @@ var SettingsCategoryItem = /** @class */ (function (_super) { }); doc.appendChild(table); doc.appendChild(this.createHR()); - }; - return SettingsCategoryItem; -}(SettingsCategory)); + } +} function showSettings() { console.log("SETTINGS"); - for (var i = 0; i < settingsCategory.length; i++) { + for (let i = 0; i < settingsCategory.length; i++) { settingsCategory[i].createCategory(); } } @@ -467,7 +449,7 @@ function saveSettings() { var div = document.getElementById("content_settings"); var settings = div.getElementsByClassName("changed"); var newSettings = new Object(); - for (var i = 0; i < settings.length; i++) { + for (let i = 0; i < settings.length; i++) { var name; var value; switch (settings[i].tagName) { diff --git a/html/lang/en.json b/html/lang/en.json index 460b388..b3204bb 100644 --- a/html/lang/en.json +++ b/html/lang/en.json @@ -63,7 +63,7 @@ "filter": "Filter" }, "custom": "Custom", - "group": "Group", + "group": "M3U Group", "name": { "title": "Filter Name", @@ -111,6 +111,24 @@ "title": "Exclude", "placeholder": "ES,IT", "description": "Channel name must not contain.
(Comma separated) Comma means or" + }, + "preserveMapping": + { + "title": "Preserve Existing M3U
Channel Numbers", + "palceholder": "", + "description": "Preserve existing M3U playlist channel numbers?" + }, + "startingChannel": + { + "title": "Starting Channel Number", + "placeholder": "", + "description": "" + }, + "defaultMissingEPG": + { + "title": "Fill Missing EPG Data", + "placeholder": "", + "description": "When there is no matching EPG data for channel,
autofill with xTeVe dummy EPG data?" } }, diff --git a/src/data.go b/src/data.go index 095093d..06343ab 100644 --- a/src/data.go +++ b/src/data.go @@ -431,6 +431,9 @@ func saveFilter(request RequestStruct) (settings SettingsStruct, err error) { defaultFilter.Active = true defaultFilter.CaseSensitive = false + defaultFilter.PreserveMapping = true + defaultFilter.StartingChannel = strconv.FormatFloat(Settings.MappingFirstChannel, 'f', -1, 64) // 1000 + defaultFilter.DefaultMissingEPG = "-" filterMap = Settings.Filter newData = request.Filter @@ -781,6 +784,9 @@ func createFilterRules() (err error) { } dataFilter.CaseSensitive = filter.CaseSensitive + dataFilter.PreserveMapping = filter.PreserveMapping + dataFilter.StartingChannel = filter.StartingChannel + dataFilter.DefaultMissingEPG = filter.DefaultMissingEPG dataFilter.Rule = fmt.Sprintf("%s%s%s", filter.Filter, include, exclude) dataFilter.Type = filter.Type diff --git a/src/m3u.go b/src/m3u.go index 8f497f6..d6688b5 100644 --- a/src/m3u.go +++ b/src/m3u.go @@ -105,6 +105,9 @@ func filterThisStream(s interface{}) (status bool) { if group == filter.Rule { match = true + stream["_preserve-mapping"] = strconv.FormatBool(filter.PreserveMapping) + stream["_starting-channel"] = filter.StartingChannel + stream["_default-missing-epg"] = filter.DefaultMissingEPG } case "custom-filter": diff --git a/src/struct-system.go b/src/struct-system.go index daef941..9fc15ad 100644 --- a/src/struct-system.go +++ b/src/struct-system.go @@ -167,9 +167,12 @@ type DataStruct struct { // Filter : Used for the Filter Rules type Filter struct { - CaseSensitive bool - Rule string - Type string + CaseSensitive bool + PreserveMapping bool + Rule string + Type string + StartingChannel string + DefaultMissingEPG string } // XEPGChannelStruct : XEPG Structure @@ -199,36 +202,43 @@ type XEPGChannelStruct struct { XUpdateChannelName bool `json:"x-update-channel-name,required"` XDescription string `json:"x-description,required"` XTimeshift string `json:"x-timeshift,required"` + DefaultMissingEPG string `json:"x-default-missing-epg,required"` } // M3UChannelStructXEPG : M3U Structure for XEPG type M3UChannelStructXEPG struct { - FileM3UID string `json:"_file.m3u.id,required"` - FileM3UName string `json:"_file.m3u.name,required"` - FileM3UPath string `json:"_file.m3u.path,required"` - GroupTitle string `json:"group-title,required"` - Name string `json:"name,required"` - TvgID string `json:"tvg-id,required"` - TvgLogo string `json:"tvg-logo,required"` - TvgName string `json:"tvg-name,required"` - TvgShift string `json:"tvg-shift,required"` - URL string `json:"url,required"` - UUIDKey string `json:"_uuid.key,required"` - UUIDValue string `json:"_uuid.value,required"` - Values string `json:"_values,required"` + FileM3UID string `json:"_file.m3u.id,required"` + FileM3UName string `json:"_file.m3u.name,required"` + FileM3UPath string `json:"_file.m3u.path,required"` + GroupTitle string `json:"group-title,required"` + Name string `json:"name,required"` + TvgID string `json:"tvg-id,required"` + TvgLogo string `json:"tvg-logo,required"` + TvgName string `json:"tvg-name,required"` + TvgShift string `json:"tvg-shift,required"` + URL string `json:"url,required"` + UUIDKey string `json:"_uuid.key,required"` + UUIDValue string `json:"_uuid.value,required"` + Values string `json:"_values,required"` + PreserveMapping string `json:"_preserve-mapping,required"` + StartingChannel string `json:"_starting-channel,required"` + DefaultMissingEPG string `json:"_default-missing-epg,required"` } // FilterStruct : Filter Structure type FilterStruct struct { - Active bool `json:"active,required"` - CaseSensitive bool `json:"caseSensitive,required"` - Description string `json:"description,required"` - Exclude string `json:"exclude,required"` - Filter string `json:"filter,required"` - Include string `json:"include,required"` - Name string `json:"name,required"` - Rule string `json:"rule,omitempty"` - Type string `json:"type,required"` + Active bool `json:"active,required"` + CaseSensitive bool `json:"caseSensitive,required"` + PreserveMapping bool `json:"preserveMapping,required"` + Description string `json:"description,required"` + Exclude string `json:"exclude,required"` + Filter string `json:"filter,required"` + Include string `json:"include,required"` + Name string `json:"name,required"` + Rule string `json:"rule,omitempty"` + Type string `json:"type,required"` + StartingChannel string `json:"startingChannel,required"` + DefaultMissingEPG string `json:"defaultMissingEPG,required"` } // StreamingURLS : Information on all Streaming URL's diff --git a/src/webUI.go b/src/webUI.go index f570a24..d54c023 100644 --- a/src/webUI.go +++ b/src/webUI.go @@ -4,46 +4,46 @@ var webUI = make(map[string]interface{}) func loadHTMLMap() { - webUI["html/img/logout.png"] = "iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAAAXNSR0IArs4c6QAAAAlwSFlzAAAsSwAALEsBpT2WqQAABCRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IlhNUCBDb3JlIDUuNC4wIj4KICAgPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIgogICAgICAgICAgICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgICAgICAgICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyI+CiAgICAgICAgIDx0aWZmOlJlc29sdXRpb25Vbml0PjI8L3RpZmY6UmVzb2x1dGlvblVuaXQ+CiAgICAgICAgIDx0aWZmOkNvbXByZXNzaW9uPjU8L3RpZmY6Q29tcHJlc3Npb24+CiAgICAgICAgIDx0aWZmOlhSZXNvbHV0aW9uPjI4ODwvdGlmZjpYUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6T3JpZW50YXRpb24+MTwvdGlmZjpPcmllbnRhdGlvbj4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+Mjg4PC90aWZmOllSZXNvbHV0aW9uPgogICAgICAgICA8ZXhpZjpQaXhlbFhEaW1lbnNpb24+NTA8L2V4aWY6UGl4ZWxYRGltZW5zaW9uPgogICAgICAgICA8ZXhpZjpDb2xvclNwYWNlPjE8L2V4aWY6Q29sb3JTcGFjZT4KICAgICAgICAgPGV4aWY6UGl4ZWxZRGltZW5zaW9uPjUwPC9leGlmOlBpeGVsWURpbWVuc2lvbj4KICAgICAgICAgPGRjOnN1YmplY3Q+CiAgICAgICAgICAgIDxyZGY6QmFnLz4KICAgICAgICAgPC9kYzpzdWJqZWN0PgogICAgICAgICA8eG1wOk1vZGlmeURhdGU+MjAxOC0xMC0xM1QxMToxMDoxODwveG1wOk1vZGlmeURhdGU+CiAgICAgICAgIDx4bXA6Q3JlYXRvclRvb2w+UGl4ZWxtYXRvciAzLjM8L3htcDpDcmVhdG9yVG9vbD4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgIDwvcmRmOlJERj4KPC94OnhtcG1ldGE+Cg27QeEAAANQSURBVGgF7Zk9aBRBGIZzSRSN8YdoCpEkghCCqK1o4g9IsBCCNmIniCAiWAhqI8G02qiIoqCCWggSEcFKEFPYpVAU8QdFUyiKRpRokBjP55OdZDLZvZnZ7N3Ngh887M7sN/O9797t7c5eTc3/8D8DxWKxGS5Ai//oAEYgvB4OwleQaAtAlp8ERG+Bp6Jei/wYQfRy6NfE67vhG0FtA/TBqK7c2A/bCGJ3wpAhOq4ZphGUroEHcYoT+sIygsgmOAu/EwQndYdhBHV1sB8+Jym19Lf6/faVIRuBG+GRRajtcPWMoKwFbtgUOh6vvBGEzYFj8MNRpEtaZY2gaAe8cVHmmXOc/K3QXIZv/+SUFFgJ96AS8ZwiZ6Ab6iZVzGCPiRbCKRiDasQHip6EdD/PDKyFvfAJQgg5kVfB/VoieT0MQojxE1G9UG/7otWS0A7pPkrb7DM/Ppcp+mAAM/bFGEmL4RL8gVDjI8JWOZ0bEjvhSahO0CXXsLMZWZYegREIMV4jaoHTJyNJJLfC7RCdoOm6sxGVyKAeeBegoU6l0XmLiXlwAqp1o4w7j3d1AwW9YdtnNrnQzkOXLddyfAPHv8Ey6ABpd8N88In2QqHwymfARC5mCrAH0i6qGDr9jk3fbNgFz8A1DkwIS7tDpSVwGdLcexIfPZhPHpf2wS+wRX9a/dPGUakLzBdwNgGJRlQBJtgMw5aJ3qr8TLYUmwVHwXXxZTUiwphvHYxDUnzPxIA5CdXa4E5SVa3fyUhkRtYqpSKbNYxpJiq+ncpDJar7GGlknvcl5mqM05BZH4Xl3iOLpLh7j7OR6MScSzAykplg20QIWA0PDSG+RuTdQVy8sNXP9DgK5N4jK9AvkRpfI4sYF/c2836mQl0nQ4zce66AfZFkTMqYl2DGaSMt/CYOHpsuaPco5bLUzUuMGkLHaQ+ovjwZUZrVdpAHRnnw/Bd5MrJCiY62t4x2+E2uBfkfRg95TdSkK8/LJ7JWF83+Nb5Ww0Zf+E3OviwXVMgT8dLwVRsKEd0A+uP8biMlH01MHAYVF/Oh2lCJenkDqpbUN9nPyzU91QnCRbyEPEXn1sQhxMv7tG1T7cW3rK/r44eVtxfxm6gwBh38zJqPJuUtXu3Z/wLwuBaBLgMkKwAAAABJRU5ErkJggg==" - webUI["html/img/m3u.png"] = "iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAAAXNSR0IArs4c6QAAAAlwSFlzAAAsSwAALEsBpT2WqQAABCRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IlhNUCBDb3JlIDUuNC4wIj4KICAgPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIgogICAgICAgICAgICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgICAgICAgICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyI+CiAgICAgICAgIDx0aWZmOlJlc29sdXRpb25Vbml0PjI8L3RpZmY6UmVzb2x1dGlvblVuaXQ+CiAgICAgICAgIDx0aWZmOkNvbXByZXNzaW9uPjU8L3RpZmY6Q29tcHJlc3Npb24+CiAgICAgICAgIDx0aWZmOlhSZXNvbHV0aW9uPjI4ODwvdGlmZjpYUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6T3JpZW50YXRpb24+MTwvdGlmZjpPcmllbnRhdGlvbj4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+Mjg4PC90aWZmOllSZXNvbHV0aW9uPgogICAgICAgICA8ZXhpZjpQaXhlbFhEaW1lbnNpb24+NTA8L2V4aWY6UGl4ZWxYRGltZW5zaW9uPgogICAgICAgICA8ZXhpZjpDb2xvclNwYWNlPjE8L2V4aWY6Q29sb3JTcGFjZT4KICAgICAgICAgPGV4aWY6UGl4ZWxZRGltZW5zaW9uPjUwPC9leGlmOlBpeGVsWURpbWVuc2lvbj4KICAgICAgICAgPGRjOnN1YmplY3Q+CiAgICAgICAgICAgIDxyZGY6QmFnLz4KICAgICAgICAgPC9kYzpzdWJqZWN0PgogICAgICAgICA8eG1wOk1vZGlmeURhdGU+MjAxOC0wNy0yOFQxOTowNzozMTwveG1wOk1vZGlmeURhdGU+CiAgICAgICAgIDx4bXA6Q3JlYXRvclRvb2w+UGl4ZWxtYXRvciAzLjM8L3htcDpDcmVhdG9yVG9vbD4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgIDwvcmRmOlJERj4KPC94OnhtcG1ldGE+CumjVbcAAAGWSURBVGgF7VoxTgJRFGTFaGKBFnbEcABjb0fiBego7D2ABYmn8ARKRWFNQ6gx4QRQGWJJoY2VhXGdl7Dkh7Dsx3ns3yXvJ5P97L6d92bmhwYqlcWK43gK5L2enP51NP8F7pN721wPnOITZx9qG6HxI8QIZO+9XCHeL+VQKKm8QMyxb6+iCpH528AQYs58xIQWknV8mhDxCjEXWWJCC8maT55fAmOIudpUXAYhMn8dGEHMTZqYsgiR+U+BAcTcrhNTJiEy/xHQg5jOqpjD1RsBP3+id8u3P8TUoij6SuoLIwRDfWOofjLYtteyHa1UfcvvcUT1jqpGauVuHnyAdragjv/TAkley3uhj9Y5ZhDQa2+Olgmhz4IygSWibChNZ4nQFioTWCLKhtJ0lghtoTKBJaJsKE1nidAWKhNYIsqG0nSWCG2hMoElomwoTWeJ0BYqE1giyobSdJYIbaEygSWibChNZ4nQFioTWCLKhtJ0biJzmi1/guXMrpDn/OegO3bXMuAH0TtgAvwARV3y57Q34AGoJkL+AErKZ9cqbH7AAAAAAElFTkSuQmCC" - webUI["html/img/settings.png"] = "iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAAAXNSR0IArs4c6QAAAAlwSFlzAAAsSwAALEsBpT2WqQAABCRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IlhNUCBDb3JlIDUuNC4wIj4KICAgPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIgogICAgICAgICAgICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgICAgICAgICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyI+CiAgICAgICAgIDx0aWZmOlJlc29sdXRpb25Vbml0PjI8L3RpZmY6UmVzb2x1dGlvblVuaXQ+CiAgICAgICAgIDx0aWZmOkNvbXByZXNzaW9uPjU8L3RpZmY6Q29tcHJlc3Npb24+CiAgICAgICAgIDx0aWZmOlhSZXNvbHV0aW9uPjI4ODwvdGlmZjpYUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6T3JpZW50YXRpb24+MTwvdGlmZjpPcmllbnRhdGlvbj4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+Mjg4PC90aWZmOllSZXNvbHV0aW9uPgogICAgICAgICA8ZXhpZjpQaXhlbFhEaW1lbnNpb24+NTA8L2V4aWY6UGl4ZWxYRGltZW5zaW9uPgogICAgICAgICA8ZXhpZjpDb2xvclNwYWNlPjE8L2V4aWY6Q29sb3JTcGFjZT4KICAgICAgICAgPGV4aWY6UGl4ZWxZRGltZW5zaW9uPjUwPC9leGlmOlBpeGVsWURpbWVuc2lvbj4KICAgICAgICAgPGRjOnN1YmplY3Q+CiAgICAgICAgICAgIDxyZGY6QmFnLz4KICAgICAgICAgPC9kYzpzdWJqZWN0PgogICAgICAgICA8eG1wOk1vZGlmeURhdGU+MjAxOC0wOC0xMFQxODowODo4OTwveG1wOk1vZGlmeURhdGU+CiAgICAgICAgIDx4bXA6Q3JlYXRvclRvb2w+UGl4ZWxtYXRvciAzLjM8L3htcDpDcmVhdG9yVG9vbD4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgIDwvcmRmOlJERj4KPC94OnhtcG1ldGE+Ckxt87EAAAS7SURBVGgFzZpdiFVVGIbn5N+IMgVhaRLqWI7mQIJoIVRgOhQZNDAhWcbcVuPV3BRE6I14440iQQSaN0p6kz8zI0k5inUhZSSaYOVYODMo5eiMOOPf+LzH2cPMPmvttdbe53jOBy9rr2+938/ae51vr733qaoqgQwPD68B/wDJfXAP3AE94JMShCy+SxJ9CvSDJFlU7MiPFdsh/hrBdIffBsd48HApJjLPI4tnPThBlFJMZI5HBuWZCIt9AmgEzeAJR6JzHeMadnKI8wbYCz4Fkz18JlNwMgf8BCL5j4O3bVaMdUfEhPZqgv1U7HbEbDvoT7HZOPUYNwAlHheV09a4A3RTgMqtj9QY7JdgeM5i3I4+fDIYrQeq/UnyNYOTlBDtS+BwEjk2doz+KyO2OY5bwVCME+/qylTHT4C1D3k+uB33Yul3ov/eMuajlu1RH+II5wtT4hNNSnQ6U/kzbRkfq351bCfF8apAm7kmvq38njWRK0S305SHcSK5XO4U5O9MBmXWbSe3E6YccialdKzH2TTnQEF10XgZ5DdivsxEhkyxjVdERAwu03xmMiqD7hYx19km4cyHq6KyeHKkWpSz+ciVrHVpRYZk/wLHp0H2bULkNKzt4Eq86TKxLq3IECf6nXwV9QPbAfjHQSfoD7SN6L63gYhvbrkiTwKf/dPYpbdPVxKMnigdg0VAG8FQye8AzBl6aIk2A+wPiNoHd63LNZx3wbUAvz/CfTzJb/43AmkGpLfAi0DPE/NALQgtve+xFPdi5xRiNkHa5ySOJ/TR7RrBJdqL4AAxL+p+8ToYAFklNCnF3pM1KPba2L6v8vons5oPsko9ZyZoa0PsOoKezxoY+y5N5DYHWSvDTXzUMJH7IUkRW0tbyyV0CcfDDKmqDMe1KfqnQyehGNgo9q8p4hWYFGsiBY4fsSK/BRkkaPgj5PhMy720BnVFesfnlKo3Das0bw8XYJf196GEuzWRLSDoRypLg2w06FyqTS6Cx7iK1eeqGqrnugmuBgvB8+A5UAuqQYiU+oZ4h2T+BV3gAlDp/pai0U1rFpVGMAv8AHzFd4vShMOQLcoB+DNB/sSbM3ZoMV4BQsW0adSJSbNp1Hu1mY40/YZxpPdJaUSfFzrBMXAjjQNsdvll6cHCWVvKJIphdhcny11pqmolCk5aIDif0BKdZBucgPlO8kh/r8O4HtwClSCbk86HtQqQuUrvKVCf5OARjt0lll4H/WKKmbS0tmJQKZNQ7nq9+w0n2LhTN04E8jKMPpZ1hcli8tGTZYEYJwJrZQGzchTGz3a2ifwdkHc73LYAfpx6DcWXQK1LeiDsdpFGx7UOwUGQJKpmGyIjjvWh50iSQWzsZ/ofgvx+jnYp+B/YpJcB7QXDBKPJ4JDF6+/oCwoBuhoL36R+Jp4RJH16u2IgaxJpHhMehsBY3wTjV2YbOuuumLHrwCW6msbSj74O/DHGgV4Ohl8Jw1nSMmsB+tL6Wnw83odzBrhEr2GtgvFE8A74ADxtJZZygMC25cjQqBwqdg62qpUlziUP45Cq6OGuqqoUE/FJ8i+v7MpJYvEsHl1A5gNty2vLmaN3bBLdAvqB3svqXxLRvyEuc9zs7SiA+ACpw05pJx8SoAAAAABJRU5ErkJggg==" + webUI["html/img/x_ transparent.png"] = "iVBORw0KGgoAAAANSUhEUgAAAQAAAAEACAYAAABccqhmAAAAAXNSR0IArs4c6QAAAAlwSFlzAAAWJQAAFiUBSVIk8AAAA6ppVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IlhNUCBDb3JlIDUuNC4wIj4KICAgPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIgogICAgICAgICAgICB4bWxuczp0aWZmPSJodHRwOi8vbnMuYWRvYmUuY29tL3RpZmYvMS4wLyIKICAgICAgICAgICAgeG1sbnM6ZXhpZj0iaHR0cDovL25zLmFkb2JlLmNvbS9leGlmLzEuMC8iPgogICAgICAgICA8eG1wOk1vZGlmeURhdGU+MjAxOC0xMS0xNVQxNzoxMTo3NjwveG1wOk1vZGlmeURhdGU+CiAgICAgICAgIDx4bXA6Q3JlYXRvclRvb2w+UGl4ZWxtYXRvciAzLjM8L3htcDpDcmVhdG9yVG9vbD4KICAgICAgICAgPHRpZmY6T3JpZW50YXRpb24+MTwvdGlmZjpPcmllbnRhdGlvbj4KICAgICAgICAgPHRpZmY6Q29tcHJlc3Npb24+NTwvdGlmZjpDb21wcmVzc2lvbj4KICAgICAgICAgPHRpZmY6UmVzb2x1dGlvblVuaXQ+MjwvdGlmZjpSZXNvbHV0aW9uVW5pdD4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+MTQ0PC90aWZmOllSZXNvbHV0aW9uPgogICAgICAgICA8dGlmZjpYUmVzb2x1dGlvbj4xNDQ8L3RpZmY6WFJlc29sdXRpb24+CiAgICAgICAgIDxleGlmOlBpeGVsWERpbWVuc2lvbj4yNTY8L2V4aWY6UGl4ZWxYRGltZW5zaW9uPgogICAgICAgICA8ZXhpZjpDb2xvclNwYWNlPjE8L2V4aWY6Q29sb3JTcGFjZT4KICAgICAgICAgPGV4aWY6UGl4ZWxZRGltZW5zaW9uPjI1NjwvZXhpZjpQaXhlbFlEaW1lbnNpb24+CiAgICAgIDwvcmRmOkRlc2NyaXB0aW9uPgogICA8L3JkZjpSREY+CjwveDp4bXBtZXRhPgoeXQb1AAAaJElEQVR4Ae2dCZhcVZXHz+1KSFiGkISkqyIoOgI68EkgOBNkEcQRlIFRZDGABAQEhInGbxw+RUZRNhWRLawDYR0GHAaHUVkGvwGURUcgwIiAOGxjV3UHAslHQrbuM/9TlQ6d7qruWt527/u/7+uuqvvucu7vvnveuffde54IDxIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARLwiIDzQtayHi0q23shaydCOnlISu7nnWThRdrFOkPWyCleyNqJkF1yjhTd8k6yiDvtuLgLiCR/lVnIZ14keWU7k2Xyuu4oU92r2RazQ+nWypXI4W86zCXbyZ28KBvJ97MtpEhX1gWsyleS08TJU17I2omQKpvLarmqkywyn7ZHPw9rLvTOvwbX6xEyxS3Nenv4oQCcWwmQc/D3dtaBdiyfyv5S1mM7zieLGSzWEsS6KIuiRSzTGTD9H404z1iy80MBWNVL7hn8nx8LhaxlqnKBvKbvyppYHctTM/0nd5xPljNwcrcUs2/6DyL0RwGYxDOcjR3vGBQ+4M8tMElmdQ3n6NGjYPofGE6F6tTESRmm/1xxTuuczWSQH08BhqJbqlNkuTyJoK2GBgf53S6mkrvB+7qZ6b9Gfod6hHv3dzKAGbX9pNvd51N7+WUBGNlJbgm07FH4G/AJdFuyqlwotXFzW8kzk2itXAFZwu38BlrlPN86v4ntnwIwqUvuASiAc+1r4MdkqXUef6tZM/0P8rcCTUmO9RvyraZiZiySf0OAQYCq46QiD0Lz7jYYFOxnARZPt7vZu/r1aREKzEz/Kd7J3rzAS2Si7IxHfq80nyQ7Mf20AIyfc2thBRyJv2XZwRmTJP14dNar3THlHl+2Nesl5M4vUpDjfe381vD+KgCTvuhehAI4yb4GfkzFjMdlXtWxV4+EvH/rlcytCutkASwzr59K+TsEGNpYZb0OQ4G5Q4OC/N4ln4PSuzXzdcuH6b8I4/7ZsERXZb49RhHQbwtgsGIFORWWwAuDP4P9HJBLsUpwWubrt1Yuh4zhmv5O3pLxUMaed367jsJQANPdW7AA5kAJrMl85+hMwC2RfEFnWcScuqJHoIRPx1xK2tmfKtPcc2kLEUX5YSgAIzHD/Rb/T48CSqbzUDkUVsAhmZTRTP8BuTiTskUllJMb8Bj6+qiySzufMOYABimq2mLMe/DzrweDgvx00iebyg6yuXstU/XrUZsQC/nu/5yMk13FLM5AjnAsAGsQW4M93tZiy+JA2qd+NVSmYzn0JfVPphRa0TkoOeTOvwqdf05Ind+ulLAUgNVomivj/7H2NehDMQnVq5/JRB1tjcJAxhRS1GC65Gvo/E9EnW3a+YWnAIxoyf0M/8Mei1o9bW2AbY5K++ivzvpPTVuMGMv/CR6/ZsviiqiyYSoAg1OSf8BQ4KmIOGUzG8XO8+UpK7qKfg5wsmGJxNNKr2C+5bh4sk4/17AmAYfzLOtf4PGgPR3YePipoH53YcVd0d2ZeJ3M9O+vrvUP8+7vsJOhIPvA9P9V4mwTKjBcC8AA5sWLkGK77Zua/Hbb2vLkMDu/XT8qZ4bc+a2KYSsAq6F5EXLyb/Y12EMx4HkbvgOSPCp6ODrIwUkWmWhZTn4BquckWmYKhYU9BBgEmhcvQk4OgNUT/3sFKjodE5C2zddWJoZ32DqLcTJz3ROl8Oo3pEbhWwBW2bx4EVK4FF+ik4a0bzxftbozMdTOr7Bs5uah89vFkQ8FYDWteREK3aR7l6yCR+E4j7Iehg7y2TiLSDnv8zFsvDtlGRIrPh9DgEGcefEiVMC7BbqdLYmO9gjf9H8UD1b3worS0DeVrb8u8mMBWJXNi5DgjS1Olq4nEOKXfrkarxjbPPKqaXUnYpimv8ibuC5wbeSn89v1kS8FYDUuuZfQ0KF7EdoaQ4HzrbqRHWU9FKb/IZHll7WMnHyx6mEqa3LFLE++hgBDYZZ1IS7oY4YGBfe9gF2RUfiprzkh+R14Zd8ZSXuNeBXG/Se2l9TvVPlVAH26GdZ5PY7m29bvJhxFeicvYyXbjh3vYCvrbej8h45Skr+nnDyNcf9fwfQP/72TdVopf0OAQQi1Pd1hexFSeQ+W6v5gsMptfdZM/zA7v8gKMDHXXrns/HY95FcBWO1nuMfw/xv2NeDjRHgQ2qet+tVM/wVtpfUhUZfMW7dc3AdpY5Ex3wrAkBblh/j/n7HQzUKmiilPkWukopu2Ic6lAY/7b8Gk3zVtMAkqCRWAeREaJ0ejm4TrRUjlvejI57V05ZrfQZXDWkrjS2Qnf5QJwT8Jaqo18jsJOBxPWQ/ABf/T4cHB/HaonWBrq62IHOtYplvCz4DN+k8fK6qH51dD5t0x/LNt4rk/aAEMXgKhexEaHAqobjJY5Yafy/H+gTA7v1X56+z877Q8LYB3WGD/t06AV+FfI2inocGBfb8IHeArDevUo7bO/18bnvf5hIOFV5SDMOtv1hAPEKACGH4Z9OgHEWTm4dh3yuFpffjtsJG3IB+t6+gibNP/T7IZtvhmzZV6ytcMhwDDG2CG+z2C5g8PDua34tHvWjwVUB3pJi1U099hNYTDK9bZ+UdcxlQAI5AgYIa7ChdMyF6EtpOKnLVB1Xv0YIz7D98gLJwfZ2Hy8/5wqhNdTTgEaMTSfOytkCdxeutGUbwOt6FAl+yBvQKPSMimv5MHMO7fF+P+fq/bKybhaQE0AruFewOnjoIlMNAoitfhNhTol2sxFJhYfctQmLP+r+FNUUey8ze+UmkBNGZTO1PW78A0PmOsaN6et0UxKn/urfyjCd4lB2K1X7hrO0are5PnqADGAqVawKPBBxHtI2NF5flMEbgQcznhTuZGhJoKoBmQZd0G0RbhThm/w81m5GGc0Qk4PMYtYrWfc7bqj8coBDgHMAqc9adqXoRy6TBiPQNfvjhZhnUO2ObNzt9Mk1EBNEPJ4hTdrZgQXNhsdMZLiYCTk7HI6YWUSveuWA4BWmky21I7UPUitF0ryRg3IQIOTzVKLtgXecZBkQqgVao9OgtJHsbfRq0mZfwYCTh5BuP+D8P0Ny8/PJokwCFAk6DWRzMvQi54L0Lrq+vJl7fRJubai52/xQajAmgRWDV6sfr2nXvbSco0sRD4KuZono4l58Az5RCg3Qbu0yJW0j2JR4MhOs1ol0ry6Zz8GOP+w5IvOIwSaQG0247TXQVJj4Xpyb3l7TLsNJ2Tl2QiXujBo20CVABto0NCexW3ysWdZMG0bRJwsgbKd45Mdm+2mQOTgQAVQKeXQUlOQxaLOs2G6VsmcAbG/Y+2nIoJNiDAOYANcLT54zX9gKwWe8dAmF6E2sQSY7J7pCSfxKw/h18dQqYF0CHAavIt3bOwpRr72YuiDOZRI+DgyqTL3Liz80dxSVABREHR8ii6qzEmvT2q7JhPHQI1JyafB+u+OmcZ1AYBKoA2oDVMsrGcgHOvNjzPE50RsJebRPG2486kCCo15wCibs4+3RPrA/4LTwcKUWed8/wewrh/b5j+a3POIdLq0wKIFCcym+5+if9nR51tzvNbguf9R7DzR38V0AKInqm9YMS8CD2ArHePI/vc5VmQg2H635G7eidQYVoAcUCueaCFM0pZGkf2ucrTyQJ2/vhanBZAfGxFynoY5gJujbOIwPNehHH/bJj+qwKvZ2rVowUQJ/qSuw1WwLVxFhFs3k7egktv2+LLzh9jI1MBxAi3mrWTefh8Pu5iAsz/VJnmnguwXpmqEhVA3M1RdMtxJ5uDYuihtlnWTm7ARqvrm43OeO0ToAJon13zKae5xzEU+EbzCXId83msoDgl1wQSrDwnAZOCrerwaPAuFLdfUkV6WM4qGSe7YS3FEx7K7qXItACSajbbvFKQubAEuI69EfMu+Ro7fyM48YRTAcTDtX6u3a4XJ46BEuA21pGEfoJNPpeMDGZInASoAOKkWy/vkrsL3f+ieqdyHPaKbCrH5bj+qVWdcwBpoFedgPkA82YzM43iM1Wmw9apguwN0/9XmZIrJ8LQAkijoW1xy0bVR4P0Y6/ybXb+NC7CWplUAGmxr3kR+nJaxWeiXCe/wFLfczIhS06F4BAg7YYv648xJ3BI2mIkXr49DRmHIdA0V068bBa4ngAtgPUoUvoysepF6JWUSk+z2MvY+dPEXyubCiDtNjC/9g6PBvN3zJUlOil/1c5WjakAstAeTvbNghiJyqDyXlkplydaJgsbQYBzACOQJBzQqx+XAbkH8wD5VMYOr1cruesSps7i1hGgAkjzUqjodHR8e8FoMU0xUi3b9v0XZBc8CvxDqnLktPB83nWy0Ni2OWgA217z3PmtHVQ2w1Kgf4YfxY2y0Cx5k4EKIK0Wr2DjC3cG1uir7Ir3/dCTcgrXIocAKUCXis7Gne9B/I1Po/hMlmkbpLpkfzgAvTeT8gUqFBVA0g37hm6B2e8ncLlvk3TRmS/P3vvnZCe++iu5luIQIDnWtZJWytXs/A2g23yI0olqAzqxBFMBxIK1QaY9ehIu8Pwt+22Ao26wygEYIuV7j0RdMPEEcggQD9eRufbqhzDb/WucmDjyJEOGETDXYLPxaHDRsHD+jJgALYCIgdbNTnUTPPL7F5xj568LaETghHWPBjcZcYYBkRKgAogUZ4PMKnIJTP8PNjjL4HoEjFdZLqx3imHREeAQIDqW9XOq6BG4+99c/yRDmyBwiMxwtzcRj1HaIEAF0Aa0ppP06fthyj6Ou/+fNZ2GEYcTeEMm4NHgVPfq8BP83TkBDgE6Z1g/B1vauhbjfnb++nyaD52MdyrdVH3levNpGLNJAlQATYJqOVpZvoc0s1pOxwQjCajshSVCp488wZBOCXAI0CnBeukreiDG/XfWO8WwNgmY9+Au+SiWCj/UZg5MVocAFUAdKB0Fva5bySqx59dTO8qHiUcScPISHqTuLOZFiUckBDgEiATjukxUCxiv2ow/O3+UXAfzsv0TK+WKwZ/87JwAFUDnDN/JoSJnYNJvr3cC+C1yAiqHY6nwFyLPN6cZcggQVcOXdR9kdR8UAJVqVEwb5eNkOZYKz4JX4ecaRWF4cwR4sTbHafRYZZ2GCHhUxc4/OqiIzireJLiGXoSioEkF0ClFc+0lch06/4xOs2L6lgjsgkeD57aUgpFHEKACGIGkxYCyzEfn/1SLqRg9GgLzpUf3jyarfObCOYBO2r2sH0byh6AAxneSDdN2QMBJLwZeO2F9QG8HueQ2KS2Adpv+dd0cSW2pLzt/uwyjSKfSjUVXC7FUmDezNnhSAbQBrZpktVyJzv++dpMzXYQEVD6JrcNfiTDH3GRFrdlOU1f0eNx1rm4nKdPERsC8CO0GL0JPxFZCgBlTAbTaqGXdAXf+3yAZvdW0yi7++M9iPmBXeBVeHn9RYZTAIUAr7ai6MaKbay92/la4JRf3A7DMLkquOP9LogJopQ3NRZXKjq0kYdzECRwnZT008VI9LZBDgGYbrqKH4+5id38e2SdguwVnwpXYy9kXNV0JaQE0w79X34c7/5XNRGWcTBDYAlLQi1ATTUEFMBYk1fG4898CBTBprKg8nykCe2Cp8BmZkiiDwlABjNUoFTkHnf8vx4rm5Xknl0Huh72UvTmhvyl9umdzUfMZi3MAo7V7WW2N/0+hAELk9LyU4F3nNdkaO+sWoZ5hvrTEycuo2Ux6Eap/odMCqM9FZLHa7j7b5Rde5zf/egU5RpxbUd1T7wI2lVXeAy9CVzVq5ryHUwHUuwJUu+DS2/b32z7/EI/zsXnmkfUVK8qPoOYeXf87tC8qh8KL0PGhVSuK+oR3d4uCSlnNtdd3osgqc3k4eRov4d4Vd//VG8jWo/bqMltGO2GD8FB+mBeh8aj3lu7ZUKoURT1oAQyn2KPm0+9bw4OD+O0w2i/I0SM6v1Vuhvs9rIAw6231My9Cq6tehMJUcFbHNg4qgKHQlql5870ZF0thaHBA37876iu3i3I+lMB/B1Tf4VXZGbsGzxsemOffHAIMbf2y/js6/0FDg4L57rCBqSi74+6/dtQ6VXRHrHt4DHE2GjWerycdWljkACm5u3ytQpRy0wIYpFnRecF2fsE8uFZn/Ufv/Mai6P4HO+rOHMQS3Gftqc51WB9QDK5ubVSICsCg9egs3PV+0AY/X5KcXh3jNyttt3wfUR9vNrp38VSm4ykPHvHSixAVwGK1V3ffgr9QTd4HsODnwpY6qQ0TCnIs5gPWtJTOr8j7YanwV/0SOXppqQDWyOXAum30aDOQo5O30InRkd1Ay9J0u6eQ5qyW0/mUQLHMe7Hu4pPIUcua70nAsh6DsfHCqKFmKL+TYPq3v4vRNkKVq96PZmaoTlGL8hzmPGbl1YtQfi2A2sKXS6O+mjKTn5O7O+r8VhHn1sDP3hcCHwpsj5vAJZlpt4QFyacCUJ2Ii9pcem+aMO+kinsDq96iWfpac7J5blKCp1KOYphkDl9yeORTAVTkAnT+DwXc3vOw5PVPkdWvKGdDYT4dWX5ZzGgArx0v6zZZFC1OmfKnAHr0s+j8J8cJNdW8ndwO0/+mSGWwfQN2l3R4eBbusQXqmDsvQvlSADUN/0/BXsNO+lC3eJTbDPcYFMD3gmVXq9jueDQY7n6IOo2Xn6cAquPQuA9Cy+9Wh0MYQQU5GNt874itMqoTwPAxMNwhtjLSzth8Jah8DFbUg2mLkkT5+bEAyvLdoDt/F8zXODu/XY3OrcJ/eyrQn8TFmUoZtY1gN8mbOjmV8hMuNB8KoFc/gYv2tITZJlnc/2EX/98lUmDJ/QblnJ9IWekVsrW8nY9Xv4U/BLBNH/3weWdvkQ31KMj+uPvfk1j17DFqBXsFVMyJSMjHiRgKBO1OLGwLoOba68agO38X3leQZOe37u7cSlhUNhRofYmxX+riR9goFrSSC1sB9FbN/o/7dc21IK2TP2IZ69+3kCK6qEVnPgQviC7DTOa0CaTCOyEw+RnoEe4QoFd3x/3pftz9xwXZdnb3Lcje8PDzy9TqZy9LLVddim+XmgzJFHwxhgJfTqaoZEsJ0wKwGdx+8/8WaOevXSMXptr5TQbn3oYSysNQYB5WCR6QbNdMprQwFcAKuQb43p0MwhRKcfIM3HudnkLJI4vsdg9hLiAPr+ReiK3DpZEA/A4JTwGU9RQ0yWf8bpZRpLfluCpzqxNxo0RL9FS3fBNK4IVEy0y6MHtHxJrwvAiFpQD6dCY6xw+TvjYSLu9cjEd/m3CZoxdnbxhSOQ5KwBxuhnx8Ao8/05l0jYlqOJOAfboZ7o3WMbaPiVUWsn0c7r1m4+6fTVddZb0YKiCZBUlptYa5SVP5SOaUcJs8wrEA+sWce4Tc+VfhkZ+Z/tns/HYBOvk6/v63zWvRj2QKTwuCCWa74QRwhKEAyno0tPLcANqjcRXsrT3msjvLR9Eth3jH52AosC2eMtkNx/vD/yHAYt0Opr/tUAtCIze4oh6G6b8n7v5+rLwr6wK0x5ca1CWc4C45Akr5Fp8r5LcCsBVaZXkEDbCzz40whuwrsJphJp75/2GMeNk5beZxPzwIqWyTHaFikMTJUlg7O0MJvBhD7olk6fcQoFJ9mUfInd/G1ad51fntsp3u3sJ8xQnBDwVUJkHJ4V2S8DXh6eGvAujVTwN+2DPOIvdhwc8CL6+tbncfFEDQO+mq7WIOZnrl2162EYT2cwiwRN+Nt93Zu+yn+Ap+TLnNvJwAx6VT3Ctjxs1qhNd1c1lVdSYa7qpMY1/bFbkvXjh6f1abopFc/lkAZm6thNkVcuevtdZ8rzu/1WGqW4a9Al+sVSfg/4oBj8qNslS9uyH5pwBq5tYeAV9Odke5E3eThUHUsearwPZmhH5sJSv88yLk1xCgovtC096LP/8UV/OX/+uY9d8RE2mV5pNkPOYSnQSrzdYwbJVxSaMQ72SsErwiioySyMOfjlTR6VUzK+zOb3f/LwXV+e0qnuLscdmJSVzQGSjjAmwd9sZrsh8KwN7jrnI9/oLbjrnBBWuvKyu52zYIC+VHyf0cSuC6UKozSj02xjn4ooDfRA8OPxSA7cBSOL4M+XBY0rSJ2FbmcI+JMh9KoCfcCq6rmb12rrZGJfNVzb4CqOhsUDw78yQ7F/AEmeSWdJ5NhnOY7N6EAjgpwxJGJ5rKqXjh6IHRZRhPTtlXACr/iLu/7cAK93ByLUz/n4VbwSE1K7r/gBK4cUhIuF8H5MxwK8eakQAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkEB6BP4fVPHi4U0ZOJEAAAAASUVORK5CYII=" + webUI["html/js/base_ts.js"] = "dmFyIFNFUlZFUiA9IG5ldyBPYmplY3QoKTsNCnZhciBCVUxLX0VESVQgPSBmYWxzZTsNCnZhciBDT0xVTU5fVE9fU09SVDsNCnZhciBTRUFSQ0hfTUFQUElORyA9IG5ldyBPYmplY3QoKTsNCnZhciBVTkRPID0gbmV3IE9iamVjdCgpOw0KdmFyIFNFUlZFUl9DT05ORUNUSU9OID0gZmFsc2U7DQp2YXIgV1NfQVZBSUxBQkxFID0gZmFsc2U7DQovLyBNZW7DvA0KdmFyIG1lbnVJdGVtcyA9IG5ldyBBcnJheSgpOw0KbWVudUl0ZW1zLnB1c2gobmV3IE1haW5NZW51SXRlbSgicGxheWxpc3QiLCAie3subWFpbk1lbnUuaXRlbS5wbGF5bGlzdH19IiwgIm0zdS5wbmciLCAie3subWFpbk1lbnUuaGVhZGxpbmUucGxheWxpc3R9fSIpKTsNCi8vbWVudUl0ZW1zLnB1c2gobmV3IE1haW5NZW51SXRlbSgicG1zSUQiLCAie3subWFpbk1lbnUuaXRlbS5wbXNJRH19IiwgIm51bWJlci5wbmciLCAie3subWFpbk1lbnUuaGVhZGxpbmUucG1zSUR9fSIpKQ0KbWVudUl0ZW1zLnB1c2gobmV3IE1haW5NZW51SXRlbSgiZmlsdGVyIiwgInt7Lm1haW5NZW51Lml0ZW0uZmlsdGVyfX0iLCAiZmlsdGVyLnBuZyIsICJ7ey5tYWluTWVudS5oZWFkbGluZS5maWx0ZXJ9fSIpKTsNCm1lbnVJdGVtcy5wdXNoKG5ldyBNYWluTWVudUl0ZW0oInhtbHR2IiwgInt7Lm1haW5NZW51Lml0ZW0ueG1sdHZ9fSIsICJ4bWx0di5wbmciLCAie3subWFpbk1lbnUuaGVhZGxpbmUueG1sdHZ9fSIpKTsNCm1lbnVJdGVtcy5wdXNoKG5ldyBNYWluTWVudUl0ZW0oIm1hcHBpbmciLCAie3subWFpbk1lbnUuaXRlbS5tYXBwaW5nfX0iLCAibWFwcGluZy5wbmciLCAie3subWFpbk1lbnUuaGVhZGxpbmUubWFwcGluZ319IikpOw0KbWVudUl0ZW1zLnB1c2gobmV3IE1haW5NZW51SXRlbSgidXNlcnMiLCAie3subWFpbk1lbnUuaXRlbS51c2Vyc319IiwgInVzZXJzLnBuZyIsICJ7ey5tYWluTWVudS5oZWFkbGluZS51c2Vyc319IikpOw0KbWVudUl0ZW1zLnB1c2gobmV3IE1haW5NZW51SXRlbSgic2V0dGluZ3MiLCAie3subWFpbk1lbnUuaXRlbS5zZXR0aW5nc319IiwgInNldHRpbmdzLnBuZyIsICJ7ey5tYWluTWVudS5oZWFkbGluZS5zZXR0aW5nc319IikpOw0KbWVudUl0ZW1zLnB1c2gobmV3IE1haW5NZW51SXRlbSgibG9nIiwgInt7Lm1haW5NZW51Lml0ZW0ubG9nfX0iLCAibG9nLnBuZyIsICJ7ey5tYWluTWVudS5oZWFkbGluZS5sb2d9fSIpKTsNCm1lbnVJdGVtcy5wdXNoKG5ldyBNYWluTWVudUl0ZW0oImxvZ291dCIsICJ7ey5tYWluTWVudS5pdGVtLmxvZ291dH19IiwgImxvZ291dC5wbmciLCAie3subWFpbk1lbnUuaGVhZGxpbmUubG9nb3V0fX0iKSk7DQovLyBLYXRlZ29yaWVuIGbDvHIgZGllIEVpbnN0ZWxsdW5nZW4NCnZhciBzZXR0aW5nc0NhdGVnb3J5ID0gbmV3IEFycmF5KCk7DQpzZXR0aW5nc0NhdGVnb3J5LnB1c2gobmV3IFNldHRpbmdzQ2F0ZWdvcnlJdGVtKCJ7ey5zZXR0aW5ncy5jYXRlZ29yeS5nZW5lcmFsfX0iLCAieHRldmVBdXRvVXBkYXRlLHR1bmVyLGVwZ1NvdXJjZSxhcGkiKSk7DQpzZXR0aW5nc0NhdGVnb3J5LnB1c2gobmV3IFNldHRpbmdzQ2F0ZWdvcnlJdGVtKCJ7ey5zZXR0aW5ncy5jYXRlZ29yeS5maWxlc319IiwgInVwZGF0ZSxmaWxlcy51cGRhdGUsdGVtcC5wYXRoLGNhY2hlLmltYWdlcyx4ZXBnLnJlcGxhY2UubWlzc2luZy5pbWFnZXMiKSk7DQpzZXR0aW5nc0NhdGVnb3J5LnB1c2gobmV3IFNldHRpbmdzQ2F0ZWdvcnlJdGVtKCJ7ey5zZXR0aW5ncy5jYXRlZ29yeS5zdHJlYW1pbmd9fSIsICJidWZmZXIsdWRweHksYnVmZmVyLnNpemUua2IsYnVmZmVyLnRpbWVvdXQsdXNlci5hZ2VudCxmZm1wZWcucGF0aCxmZm1wZWcub3B0aW9ucyx2bGMucGF0aCx2bGMub3B0aW9ucyIpKTsNCnNldHRpbmdzQ2F0ZWdvcnkucHVzaChuZXcgU2V0dGluZ3NDYXRlZ29yeUl0ZW0oInt7LnNldHRpbmdzLmNhdGVnb3J5LmJhY2t1cH19IiwgImJhY2t1cC5wYXRoLGJhY2t1cC5rZWVwIikpOw0Kc2V0dGluZ3NDYXRlZ29yeS5wdXNoKG5ldyBTZXR0aW5nc0NhdGVnb3J5SXRlbSgie3suc2V0dGluZ3MuY2F0ZWdvcnkuYXV0aGVudGljYXRpb259fSIsICJhdXRoZW50aWNhdGlvbi53ZWIsYXV0aGVudGljYXRpb24ucG1zLGF1dGhlbnRpY2F0aW9uLm0zdSxhdXRoZW50aWNhdGlvbi54bWwsYXV0aGVudGljYXRpb24uYXBpIikpOw0KZnVuY3Rpb24gc2hvd1BvcFVwRWxlbWVudChlbG0pIHsNCiAgICB2YXIgYWxsRWxlbWVudHMgPSBuZXcgQXJyYXkoInBvcHVwLWN1c3RvbSIpOw0KICAgIGZvciAodmFyIGkgPSAwOyBpIDwgYWxsRWxlbWVudHMubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgc2hvd0VsZW1lbnQoYWxsRWxlbWVudHNbaV0sIGZhbHNlKTsNCiAgICB9DQogICAgc2hvd0VsZW1lbnQoZWxtLCB0cnVlKTsNCiAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsNCiAgICAgICAgc2hvd0VsZW1lbnQoInBvcHVwIiwgdHJ1ZSk7DQogICAgfSwgMTApOw0KICAgIHJldHVybjsNCn0NCmZ1bmN0aW9uIHNob3dFbGVtZW50KGVsbUlELCB0eXBlKSB7DQogICAgdmFyIGNzc0NsYXNzOw0KICAgIHN3aXRjaCAodHlwZSkgew0KICAgICAgICBjYXNlIHRydWU6DQogICAgICAgICAgICBjc3NDbGFzcyA9ICJibG9jayI7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSBmYWxzZToNCiAgICAgICAgICAgIGNzc0NsYXNzID0gIm5vbmUiOw0KICAgICAgICAgICAgYnJlYWs7DQogICAgfQ0KICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGVsbUlEKS5jbGFzc05hbWUgPSBjc3NDbGFzczsNCn0NCmZ1bmN0aW9uIGNoYW5nZUJ1dHRvbkFjdGlvbihlbGVtZW50LCBidXR0b25JRCwgYXR0cmlidXRlKSB7DQogICAgdmFyIHZhbHVlID0gZWxlbWVudC5vcHRpb25zW2VsZW1lbnQuc2VsZWN0ZWRJbmRleF0udmFsdWU7DQogICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoYnV0dG9uSUQpLnNldEF0dHJpYnV0ZShhdHRyaWJ1dGUsIHZhbHVlKTsNCn0NCmZ1bmN0aW9uIGdldExvY2FsRGF0YShkYXRhVHlwZSwgaWQpIHsNCiAgICBsZXQgZGF0YSA9IHt9Ow0KICAgIHN3aXRjaCAoZGF0YVR5cGUpIHsNCiAgICAgICAgY2FzZSAibTN1IjoNCiAgICAgICAgICAgIGRhdGEgPSBTRVJWRVJbInNldHRpbmdzIl1bImZpbGVzIl1bZGF0YVR5cGVdW2lkXTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJoZGhyIjoNCiAgICAgICAgICAgIGRhdGEgPSBTRVJWRVJbInNldHRpbmdzIl1bImZpbGVzIl1bZGF0YVR5cGVdW2lkXTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJmaWx0ZXIiOg0KICAgICAgICBjYXNlICJjdXN0b20tZmlsdGVyIjoNCiAgICAgICAgY2FzZSAiZ3JvdXAtdGl0bGUiOg0KICAgICAgICAgICAgaWYgKGlkID09IC0xKSB7DQogICAgICAgICAgICAgICAgZGF0YVsiYWN0aXZlIl0gPSB0cnVlOw0KICAgICAgICAgICAgICAgIGRhdGFbImNhc2VTZW5zaXRpdmUiXSA9IGZhbHNlOw0KICAgICAgICAgICAgICAgIGRhdGFbImRlc2NyaXB0aW9uIl0gPSAiIjsNCiAgICAgICAgICAgICAgICBkYXRhWyJleGNsdWRlIl0gPSAiIjsNCiAgICAgICAgICAgICAgICBkYXRhWyJmaWx0ZXIiXSA9ICIiOw0KICAgICAgICAgICAgICAgIGRhdGFbImluY2x1ZGUiXSA9ICIiOw0KICAgICAgICAgICAgICAgIGRhdGFbIm5hbWUiXSA9ICIiOw0KICAgICAgICAgICAgICAgIGRhdGFbInR5cGUiXSA9ICJncm91cC10aXRsZSI7DQogICAgICAgICAgICAgICAgZGF0YVsicHJlc2VydmVNYXBwaW5nIl0gPSB0cnVlOw0KICAgICAgICAgICAgICAgIGRhdGFbInN0YXJ0aW5nQ2hhbm5lbCJdID0gU0VSVkVSWyJzZXR0aW5ncyJdWyJtYXBwaW5nLmZpcnN0LmNoYW5uZWwiXTsNCiAgICAgICAgICAgICAgICBkYXRhWyJkZWZhdWx0TWlzc2luZ0VQRyJdID0gIi0iOw0KICAgICAgICAgICAgICAgIFNFUlZFUlsic2V0dGluZ3MiXVsiZmlsdGVyIl1baWRdID0gZGF0YTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGRhdGEgPSBTRVJWRVJbInNldHRpbmdzIl1bImZpbHRlciJdW2lkXTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJ4bWx0diI6DQogICAgICAgICAgICBkYXRhID0gU0VSVkVSWyJzZXR0aW5ncyJdWyJmaWxlcyJdW2RhdGFUeXBlXVtpZF07DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSAidXNlcnMiOg0KICAgICAgICAgICAgZGF0YSA9IFNFUlZFUlsidXNlcnMiXVtpZF1bImRhdGEiXTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJtYXBwaW5nIjoNCiAgICAgICAgICAgIGRhdGEgPSBTRVJWRVJbInhlcGciXVsiZXBnTWFwcGluZyJdW2lkXTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJtM3VHcm91cHMiOg0KICAgICAgICAgICAgZGF0YSA9IFNFUlZFUlsiZGF0YSJdWyJwbGF5bGlzdCJdWyJtM3UiXVsiZ3JvdXBzIl07DQogICAgICAgICAgICBicmVhazsNCiAgICB9DQogICAgcmV0dXJuIGRhdGE7DQp9DQpmdW5jdGlvbiBnZXRPYmpLZXlzKG9iaikgew0KICAgIHZhciBrZXlzID0gbmV3IEFycmF5KCk7DQogICAgZm9yICh2YXIgaSBpbiBvYmopIHsNCiAgICAgICAgaWYgKG9iai5oYXNPd25Qcm9wZXJ0eShpKSkgew0KICAgICAgICAgICAga2V5cy5wdXNoKGkpOw0KICAgICAgICB9DQogICAgfQ0KICAgIHJldHVybiBrZXlzOw0KfQ0KZnVuY3Rpb24gZ2V0QWxsU2VsZWN0ZWRDaGFubmVscygpIHsNCiAgICB2YXIgY2hhbm5lbHMgPSBuZXcgQXJyYXkoKTsNCiAgICBpZiAoQlVMS19FRElUID09IGZhbHNlKSB7DQogICAgICAgIHJldHVybiBjaGFubmVsczsNCiAgICB9DQogICAgdmFyIHRycyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb250ZW50X3RhYmxlIikuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlRSIik7DQogICAgZm9yICh2YXIgaSA9IDE7IGkgPCB0cnMubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgaWYgKHRyc1tpXS5zdHlsZS5kaXNwbGF5ICE9ICJub25lIikgew0KICAgICAgICAgICAgaWYgKHRyc1tpXS5maXJzdENoaWxkLmZpcnN0Q2hpbGQuY2hlY2tlZCA9PSB0cnVlKSB7DQogICAgICAgICAgICAgICAgY2hhbm5lbHMucHVzaCh0cnNbaV0uaWQpOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQogICAgfQ0KICAgIHJldHVybiBjaGFubmVsczsNCn0NCmZ1bmN0aW9uIHNlbGVjdEFsbENoYW5uZWxzKCkgew0KICAgIHZhciBidWxrID0gZmFsc2U7DQogICAgdmFyIHRycyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb250ZW50X3RhYmxlIikuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlRSIik7DQogICAgaWYgKHRyc1swXS5maXJzdENoaWxkLmZpcnN0Q2hpbGQuY2hlY2tlZCA9PSB0cnVlKSB7DQogICAgICAgIGJ1bGsgPSB0cnVlOw0KICAgIH0NCiAgICBmb3IgKHZhciBpID0gMTsgaSA8IHRycy5sZW5ndGg7IGkrKykgew0KICAgICAgICBpZiAodHJzW2ldLnN0eWxlLmRpc3BsYXkgIT0gIm5vbmUiKSB7DQogICAgICAgICAgICBzd2l0Y2ggKGJ1bGspIHsNCiAgICAgICAgICAgICAgICBjYXNlIHRydWU6DQogICAgICAgICAgICAgICAgICAgIHRyc1tpXS5maXJzdENoaWxkLmZpcnN0Q2hpbGQuY2hlY2tlZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgZmFsc2U6DQogICAgICAgICAgICAgICAgICAgIHRyc1tpXS5maXJzdENoaWxkLmZpcnN0Q2hpbGQuY2hlY2tlZCA9IGZhbHNlOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KICAgIH0NCiAgICByZXR1cm47DQp9DQpmdW5jdGlvbiBidWxrRWRpdCgpIHsNCiAgICBCVUxLX0VESVQgPSAhQlVMS19FRElUOw0KICAgIHZhciBjbGFzc05hbWU7DQogICAgdmFyIHJvd3MgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCJidWxrIik7DQogICAgc3dpdGNoIChCVUxLX0VESVQpIHsNCiAgICAgICAgY2FzZSB0cnVlOg0KICAgICAgICAgICAgY2xhc3NOYW1lID0gImJ1bGsgc2hvd0J1bGsiOw0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGNhc2UgZmFsc2U6DQogICAgICAgICAgICBjbGFzc05hbWUgPSAiYnVsayBoaWRlQnVsayI7DQogICAgICAgICAgICBicmVhazsNCiAgICB9DQogICAgZm9yICh2YXIgaSA9IDA7IGkgPCByb3dzLmxlbmd0aDsgaSsrKSB7DQogICAgICAgIHJvd3NbaV0uY2xhc3NOYW1lID0gY2xhc3NOYW1lOw0KICAgICAgICByb3dzW2ldLmNoZWNrZWQgPSBmYWxzZTsNCiAgICB9DQogICAgcmV0dXJuOw0KfQ0KZnVuY3Rpb24gc29ydFRhYmxlKGNvbHVtbikgew0KICAgIC8vY29uc29sZS5sb2coY29sdW1tKTsNCiAgICBpZiAoY29sdW1uID09IENPTFVNTl9UT19TT1JUKSB7DQogICAgICAgIHJldHVybjsNCiAgICB9DQogICAgdmFyIHRhYmxlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnRlbnRfdGFibGUiKTsNCiAgICB2YXIgdGFibGVIZWFkID0gdGFibGUuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlRSIilbMF07DQogICAgdmFyIHRhYmxlSXRlbXMgPSB0YWJsZUhlYWQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlREIik7DQogICAgdmFyIHNvcnRPYmogPSBuZXcgT2JqZWN0KCk7DQogICAgdmFyIHgsIHhWYWx1ZTsNCiAgICB2YXIgdGFibGVIZWFkZXI7DQogICAgdmFyIHNvcnRCeVN0cmluZyA9IGZhbHNlOw0KICAgIGlmIChjb2x1bW4gPiAwICYmIENPTFVNTl9UT19TT1JUID4gMCkgew0KICAgICAgICB0YWJsZUl0ZW1zW0NPTFVNTl9UT19TT1JUXS5jbGFzc05hbWUgPSAicG9pbnRlciI7DQogICAgICAgIHRhYmxlSXRlbXNbY29sdW1uXS5jbGFzc05hbWUgPSAic29ydFRoaXMiOw0KICAgIH0NCiAgICBDT0xVTU5fVE9fU09SVCA9IGNvbHVtbjsNCiAgICB2YXIgcm93cyA9IHRhYmxlLnJvd3M7DQogICAgaWYgKHJvd3NbMV0gIT0gdW5kZWZpbmVkKSB7DQogICAgICAgIHRhYmxlSGVhZGVyID0gcm93c1swXTsNCiAgICAgICAgeCA9IHJvd3NbMV0uZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlREIilbY29sdW1uXTsNCiAgICAgICAgZm9yIChpID0gMTsgaSA8IHJvd3MubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgICAgIHggPSByb3dzW2ldLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJURCIpW2NvbHVtbl07DQogICAgICAgICAgICBzd2l0Y2ggKHguY2hpbGROb2Rlc1swXS50YWdOYW1lLnRvTG93ZXJDYXNlKCkpIHsNCiAgICAgICAgICAgICAgICBjYXNlICJpbnB1dCI6DQogICAgICAgICAgICAgICAgICAgIHhWYWx1ZSA9IHguZ2V0RWxlbWVudHNCeVRhZ05hbWUoIklOUFVUIilbMF0udmFsdWUudG9Mb3dlckNhc2UoKTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAicCI6DQogICAgICAgICAgICAgICAgICAgIHhWYWx1ZSA9IHguZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlAiKVswXS5pbm5lclRleHQudG9Mb3dlckNhc2UoKTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgZGVmYXVsdDogY29uc29sZS5sb2coeC5jaGlsZE5vZGVzWzBdLnRhZ05hbWUpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgaWYgKHhWYWx1ZSA9PSAiIiB8fCB4VmFsdWUgPT0gTmFOKSB7DQogICAgICAgICAgICAgICAgeFZhbHVlID0gaTsNCiAgICAgICAgICAgICAgICBzb3J0T2JqW2ldID0gcm93c1tpXTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgICAgIHN3aXRjaCAoaXNOYU4oeFZhbHVlKSkgew0KICAgICAgICAgICAgICAgICAgICBjYXNlIGZhbHNlOg0KICAgICAgICAgICAgICAgICAgICAgICAgeFZhbHVlID0gcGFyc2VGbG9hdCh4VmFsdWUpOw0KICAgICAgICAgICAgICAgICAgICAgICAgc29ydE9ialt4VmFsdWVdID0gcm93c1tpXTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgICAgICBjYXNlIHRydWU6DQogICAgICAgICAgICAgICAgICAgICAgICBzb3J0QnlTdHJpbmcgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgc29ydE9ialt4VmFsdWUudG9Mb3dlckNhc2UoKSArIGldID0gcm93c1tpXTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KICAgICAgICB3aGlsZSAodGFibGUuZmlyc3RDaGlsZCkgew0KICAgICAgICAgICAgdGFibGUucmVtb3ZlQ2hpbGQodGFibGUuZmlyc3RDaGlsZCk7DQogICAgICAgIH0NCiAgICAgICAgdmFyIHNvcnRWYWx1ZXMgPSBnZXRPYmpLZXlzKHNvcnRPYmopOw0KICAgICAgICBpZiAoc29ydEJ5U3RyaW5nID09IHRydWUpIHsNCiAgICAgICAgICAgIHNvcnRWYWx1ZXMuc29ydCgpOw0KICAgICAgICAgICAgY29uc29sZS5sb2coc29ydFZhbHVlcyk7DQogICAgICAgIH0NCiAgICAgICAgZWxzZSB7DQogICAgICAgICAgICBmdW5jdGlvbiBzb3J0RmxvYXQoYSwgYikgew0KICAgICAgICAgICAgICAgIHJldHVybiBhIC0gYjsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIHNvcnRWYWx1ZXMuc29ydChzb3J0RmxvYXQpOw0KICAgICAgICB9DQogICAgICAgIHRhYmxlLmFwcGVuZENoaWxkKHRhYmxlSGVhZGVyKTsNCiAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBzb3J0VmFsdWVzLmxlbmd0aDsgaSsrKSB7DQogICAgICAgICAgICB0YWJsZS5hcHBlbmRDaGlsZChzb3J0T2JqW3NvcnRWYWx1ZXNbaV1dKTsNCiAgICAgICAgfQ0KICAgIH0NCiAgICByZXR1cm47DQp9DQpmdW5jdGlvbiBjcmVhdGVTZWFyY2hPYmooKSB7DQogICAgU0VBUkNIX01BUFBJTkcgPSBuZXcgT2JqZWN0KCk7DQogICAgdmFyIGRhdGEgPSBTRVJWRVJbInhlcGciXVsiZXBnTWFwcGluZyJdOw0KICAgIHZhciBjaGFubmVscyA9IGdldE9iaktleXMoZGF0YSk7DQogICAgdmFyIGNoYW5uZWxLZXlzID0gWyJ4LWFjdGl2ZSIsICJ4LWNoYW5uZWxJRCIsICJ4LW5hbWUiLCAiX2ZpbGUubTN1Lm5hbWUiLCAieC1ncm91cC10aXRsZSIsICJ4LXhtbHR2LWZpbGUiXTsNCiAgICBjaGFubmVscy5mb3JFYWNoKGlkID0+IHsNCiAgICAgICAgY2hhbm5lbEtleXMuZm9yRWFjaChrZXkgPT4gew0KICAgICAgICAgICAgaWYgKGtleSA9PSAieC1hY3RpdmUiKSB7DQogICAgICAgICAgICAgICAgc3dpdGNoIChkYXRhW2lkXVtrZXldKSB7DQogICAgICAgICAgICAgICAgICAgIGNhc2UgdHJ1ZToNCiAgICAgICAgICAgICAgICAgICAgICAgIFNFQVJDSF9NQVBQSU5HW2lkXSA9ICJvbmxpbmUgIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgICAgICBjYXNlIGZhbHNlOg0KICAgICAgICAgICAgICAgICAgICAgICAgU0VBUkNIX01BUFBJTkdbaWRdID0gIm9mZmxpbmUgIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgICAgIGlmIChrZXkgPT0gIngteG1sdHYtZmlsZSIpIHsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHhtbHR2RmlsZSA9IGdldFZhbHVlRnJvbVByb3ZpZGVyRmlsZShkYXRhW2lkXVtrZXldLCAieG1sdHYiLCAibmFtZSIpOw0KICAgICAgICAgICAgICAgICAgICBpZiAoeG1sdHZGaWxlICE9IHVuZGVmaW5lZCkgew0KICAgICAgICAgICAgICAgICAgICAgICAgU0VBUkNIX01BUFBJTkdbaWRdID0gU0VBUkNIX01BUFBJTkdbaWRdICsgeG1sdHZGaWxlICsgIiAiOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgICAgICAgICBTRUFSQ0hfTUFQUElOR1tpZF0gPSBTRUFSQ0hfTUFQUElOR1tpZF0gKyBkYXRhW2lkXVtrZXldICsgIiAiOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0NCiAgICAgICAgfSk7DQogICAgfSk7DQogICAgcmV0dXJuOw0KfQ0KZnVuY3Rpb24gc2VhcmNoSW5NYXBwaW5nKCkgew0KICAgIHZhciBzZWFyY2hWYWx1ZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzZWFyY2hNYXBwaW5nIikudmFsdWU7DQogICAgdmFyIHRycyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb250ZW50X3RhYmxlIikuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlRSIik7DQogICAgZm9yICh2YXIgaSA9IDE7IGkgPCB0cnMubGVuZ3RoOyArK2kpIHsNCiAgICAgICAgdmFyIGlkID0gdHJzW2ldLmdldEF0dHJpYnV0ZSgiaWQiKTsNCiAgICAgICAgdmFyIGVsZW1lbnQgPSBTRUFSQ0hfTUFQUElOR1tpZF07DQogICAgICAgIHN3aXRjaCAoZWxlbWVudC50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKHNlYXJjaFZhbHVlLnRvTG93ZXJDYXNlKCkpKSB7DQogICAgICAgICAgICBjYXNlIHRydWU6DQogICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpLnN0eWxlLmRpc3BsYXkgPSAiIjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgZmFsc2U6DQogICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpLnN0eWxlLmRpc3BsYXkgPSAibm9uZSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIH0NCiAgICB9DQogICAgcmV0dXJuOw0KfQ0KZnVuY3Rpb24gY2FsY3VsYXRlV3JhcHBlckhlaWdodCgpIHsNCiAgICBpZiAoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImJveC13cmFwcGVyIikpIHsNCiAgICAgICAgdmFyIGVsbSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJib3gtd3JhcHBlciIpOw0KICAgICAgICB2YXIgZGl2cyA9IG5ldyBBcnJheSgibXlTdHJlYW1zQm94IiwgImNsaWVudEluZm8iLCAiY29udGVudCIpOw0KICAgICAgICB2YXIgZWxlbWVudHNIZWlnaHQgPSAwIC0gZWxtLm9mZnNldEhlaWdodDsNCiAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBkaXZzLmxlbmd0aDsgaSsrKSB7DQogICAgICAgICAgICBlbGVtZW50c0hlaWdodCA9IGVsZW1lbnRzSGVpZ2h0ICsgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoZGl2c1tpXSkub2Zmc2V0SGVpZ2h0Ow0KICAgICAgICB9DQogICAgICAgIGVsbS5zdHlsZS5oZWlnaHQgPSB3aW5kb3cuaW5uZXJIZWlnaHQgLSBlbGVtZW50c0hlaWdodCArICJweCI7DQogICAgfQ0KICAgIHJldHVybjsNCn0NCmZ1bmN0aW9uIGNoYW5nZUNoYW5uZWxOdW1iZXIoZWxlbWVudCkgew0KICAgIHZhciBkYklEID0gZWxlbWVudC5wYXJlbnROb2RlLnBhcmVudE5vZGUuaWQ7DQogICAgdmFyIG5ld051bWJlciA9IHBhcnNlRmxvYXQoZWxlbWVudC52YWx1ZSk7DQogICAgdmFyIGNoYW5uZWxOdW1iZXJzID0gW107DQogICAgdmFyIGRhdGEgPSBTRVJWRVJbInhlcGciXVsiZXBnTWFwcGluZyJdOw0KICAgIHZhciBjaGFubmVscyA9IGdldE9iaktleXMoZGF0YSk7DQogICAgaWYgKGlzTmFOKG5ld051bWJlcikpIHsNCiAgICAgICAgYWxlcnQoInt7LmFsZXJ0LmludmFsaWRDaGFubmVsTnVtYmVyfX0iKTsNCiAgICAgICAgcmV0dXJuOw0KICAgIH0NCiAgICBjaGFubmVscy5mb3JFYWNoKGlkID0+IHsNCiAgICAgICAgdmFyIGNoYW5uZWxOdW1iZXIgPSBwYXJzZUZsb2F0KGRhdGFbaWRdWyJ4LWNoYW5uZWxJRCJdKTsNCiAgICAgICAgY2hhbm5lbE51bWJlcnMucHVzaChjaGFubmVsTnVtYmVyKTsNCiAgICB9KTsNCiAgICBmb3IgKHZhciBpID0gMDsgaSA8IGNoYW5uZWxOdW1iZXJzLmxlbmd0aDsgaSsrKSB7DQogICAgICAgIGlmIChjaGFubmVsTnVtYmVycy5pbmRleE9mKG5ld051bWJlcikgPT0gLTEpIHsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICB9DQogICAgICAgIGlmIChNYXRoLmZsb29yKG5ld051bWJlcikgPT0gbmV3TnVtYmVyKSB7DQogICAgICAgICAgICBuZXdOdW1iZXIgPSBuZXdOdW1iZXIgKyAxOw0KICAgICAgICB9DQogICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgbmV3TnVtYmVyID0gbmV3TnVtYmVyICsgMC4xOw0KICAgICAgICAgICAgbmV3TnVtYmVyLnRvRml4ZWQoMSk7DQogICAgICAgICAgICBuZXdOdW1iZXIgPSBNYXRoLnJvdW5kKG5ld051bWJlciAqIDEwKSAvIDEwOw0KICAgICAgICB9DQogICAgfQ0KICAgIGRhdGFbZGJJRF1bIngtY2hhbm5lbElEIl0gPSBuZXdOdW1iZXIudG9TdHJpbmcoKTsNCiAgICBlbGVtZW50LnZhbHVlID0gbmV3TnVtYmVyOw0KICAgIGNvbnNvbGUubG9nKGRhdGFbZGJJRF1bIngtY2hhbm5lbElEIl0pOw0KICAgIGlmIChDT0xVTU5fVE9fU09SVCA9PSAxKSB7DQogICAgICAgIENPTFVNTl9UT19TT1JUID0gLTE7DQogICAgICAgIHNvcnRUYWJsZSgxKTsNCiAgICB9DQogICAgcmV0dXJuOw0KfQ0KZnVuY3Rpb24gYmFja3VwKCkgew0KICAgIHZhciBkYXRhID0gbmV3IE9iamVjdCgpOw0KICAgIGNvbnNvbGUubG9nKCJCYWNrdXAgZGF0YSIpOw0KICAgIHZhciBjbWQgPSAieHRldmVCYWNrdXAiOw0KICAgIGNvbnNvbGUubG9nKCJTRU5EIFRPIFNFUlZFUiIpOw0KICAgIGNvbnNvbGUubG9nKGRhdGEpOw0KICAgIHZhciBzZXJ2ZXIgPSBuZXcgU2VydmVyKGNtZCk7DQogICAgc2VydmVyLnJlcXVlc3QoZGF0YSk7DQogICAgcmV0dXJuOw0KfQ0KZnVuY3Rpb24gdG9nZ2xlQ2hhbm5lbFN0YXR1cyhpZCkgew0KICAgIHZhciBlbGVtZW50Ow0KICAgIHZhciBzdGF0dXM7DQogICAgaWYgKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJhY3RpdmUiKSkgew0KICAgICAgICB2YXIgY2hlY2tib3ggPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYWN0aXZlIik7DQogICAgICAgIHN0YXR1cyA9IChjaGVja2JveCkuY2hlY2tlZDsNCiAgICB9DQogICAgdmFyIGlkcyA9IGdldEFsbFNlbGVjdGVkQ2hhbm5lbHMoKTsNCiAgICBpZiAoaWRzLmxlbmd0aCA9PSAwKSB7DQogICAgICAgIGlkcy5wdXNoKGlkKTsNCiAgICB9DQogICAgaWRzLmZvckVhY2goaWQgPT4gew0KICAgICAgICB2YXIgY2hhbm5lbCA9IFNFUlZFUlsieGVwZyJdWyJlcGdNYXBwaW5nIl1baWRdOw0KICAgICAgICBjaGFubmVsWyJ4LWFjdGl2ZSJdID0gc3RhdHVzOw0KICAgICAgICBzd2l0Y2ggKGNoYW5uZWxbIngtYWN0aXZlIl0pIHsNCiAgICAgICAgICAgIGNhc2UgdHJ1ZToNCiAgICAgICAgICAgICAgICBpZiAoY2hhbm5lbFsieC14bWx0di1maWxlIl0gPT0gIi0iIHx8IGNoYW5uZWxbIngtbWFwcGluZyJdID09ICItIikgew0KICAgICAgICAgICAgICAgICAgICBpZiAoQlVMS19FRElUID09IGZhbHNlKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBhbGVydChjaGFubmVsWyJ4LW5hbWUiXSArICI6IE1pc3NpbmcgWE1MVFYgZmlsZSAvIGNoYW5uZWwiKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNoZWNrYm94LmNoZWNrZWQgPSBmYWxzZTsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBjaGFubmVsWyJ4LWFjdGl2ZSJdID0gZmFsc2U7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSBmYWxzZToNCiAgICAgICAgICAgICAgICAvLyBjb2RlLi4uDQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIH0NCiAgICAgICAgaWYgKGNoYW5uZWxbIngtYWN0aXZlIl0gPT0gZmFsc2UpIHsNCiAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5jbGFzc05hbWUgPSAibm90QWN0aXZlRVBHIjsNCiAgICAgICAgfQ0KICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5jbGFzc05hbWUgPSAiYWN0aXZlRVBHIjsNCiAgICAgICAgfQ0KICAgIH0pOw0KfQ0KZnVuY3Rpb24gcmVzdG9yZSgpIHsNCiAgICBpZiAoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3VwbG9hZCcpKSB7DQogICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd1cGxvYWQnKS5yZW1vdmUoKTsNCiAgICB9DQogICAgdmFyIHJlc3RvcmUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJJTlBVVCIpOw0KICAgIHJlc3RvcmUuc2V0QXR0cmlidXRlKCJ0eXBlIiwgImZpbGUiKTsNCiAgICByZXN0b3JlLnNldEF0dHJpYnV0ZSgiY2xhc3MiLCAibm90VmlzaWJsZSIpOw0KICAgIHJlc3RvcmUuc2V0QXR0cmlidXRlKCJuYW1lIiwgIiIpOw0KICAgIHJlc3RvcmUuaWQgPSAidXBsb2FkIjsNCiAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHJlc3RvcmUpOw0KICAgIHJlc3RvcmUuY2xpY2soKTsNCiAgICByZXN0b3JlLm9uY2hhbmdlID0gZnVuY3Rpb24gKCkgew0KICAgICAgICB2YXIgZmlsZW5hbWUgPSByZXN0b3JlLmZpbGVzWzBdLm5hbWU7DQogICAgICAgIHZhciBjaGVjayA9IGNvbmZpcm0oIkZpbGU6ICIgKyBmaWxlbmFtZSArICJcbnt7LmNvbmZpcm0ucmVzdG9yZX19Iik7DQogICAgICAgIGlmIChjaGVjayA9PSB0cnVlKSB7DQogICAgICAgICAgICB2YXIgcmVhZGVyID0gbmV3IEZpbGVSZWFkZXIoKTsNCiAgICAgICAgICAgIHZhciBmaWxlID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignaW5wdXRbdHlwZT1maWxlXScpLmZpbGVzWzBdOw0KICAgICAgICAgICAgaWYgKGZpbGUpIHsNCiAgICAgICAgICAgICAgICByZWFkZXIucmVhZEFzRGF0YVVSTChmaWxlKTsNCiAgICAgICAgICAgICAgICByZWFkZXIub25sb2FkID0gZnVuY3Rpb24gKCkgew0KICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhyZWFkZXIucmVzdWx0KTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGRhdGEgPSBuZXcgT2JqZWN0KCk7DQogICAgICAgICAgICAgICAgICAgIHZhciBjbWQgPSAieHRldmVSZXN0b3JlIjsNCiAgICAgICAgICAgICAgICAgICAgZGF0YVsiYmFzZTY0Il0gPSByZWFkZXIucmVzdWx0Ow0KICAgICAgICAgICAgICAgICAgICB2YXIgc2VydmVyID0gbmV3IFNlcnZlcihjbWQpOw0KICAgICAgICAgICAgICAgICAgICBzZXJ2ZXIucmVxdWVzdChkYXRhKTsNCiAgICAgICAgICAgICAgICB9Ow0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgZWxzZSB7DQogICAgICAgICAgICAgICAgYWxlcnQoIkZpbGUgY291bGQgbm90IGJlIGxvYWRlZCIpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgcmVzdG9yZS5yZW1vdmUoKTsNCiAgICAgICAgICAgIHJldHVybjsNCiAgICAgICAgfQ0KICAgIH07DQogICAgcmV0dXJuOw0KfQ0KZnVuY3Rpb24gdXBsb2FkTG9nbygpIHsNCiAgICBpZiAoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3VwbG9hZCcpKSB7DQogICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd1cGxvYWQnKS5yZW1vdmUoKTsNCiAgICB9DQogICAgdmFyIHVwbG9hZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIklOUFVUIik7DQogICAgdXBsb2FkLnNldEF0dHJpYnV0ZSgidHlwZSIsICJmaWxlIik7DQogICAgdXBsb2FkLnNldEF0dHJpYnV0ZSgiY2xhc3MiLCAibm90VmlzaWJsZSIpOw0KICAgIHVwbG9hZC5zZXRBdHRyaWJ1dGUoIm5hbWUiLCAiIik7DQogICAgdXBsb2FkLmlkID0gInVwbG9hZCI7DQogICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZCh1cGxvYWQpOw0KICAgIHVwbG9hZC5jbGljaygpOw0KICAgIHVwbG9hZC5vbmJsdXIgPSBmdW5jdGlvbiAoKSB7DQogICAgICAgIGFsZXJ0KCk7DQogICAgfTsNCiAgICB1cGxvYWQub25jaGFuZ2UgPSBmdW5jdGlvbiAoKSB7DQogICAgICAgIHZhciBmaWxlbmFtZSA9IHVwbG9hZC5maWxlc1swXS5uYW1lOw0KICAgICAgICB2YXIgcmVhZGVyID0gbmV3IEZpbGVSZWFkZXIoKTsNCiAgICAgICAgdmFyIGZpbGUgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCdpbnB1dFt0eXBlPWZpbGVdJykuZmlsZXNbMF07DQogICAgICAgIGlmIChmaWxlKSB7DQogICAgICAgICAgICByZWFkZXIucmVhZEFzRGF0YVVSTChmaWxlKTsNCiAgICAgICAgICAgIHJlYWRlci5vbmxvYWQgPSBmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICAgICAgY29uc29sZS5sb2cocmVhZGVyLnJlc3VsdCk7DQogICAgICAgICAgICAgICAgdmFyIGRhdGEgPSBuZXcgT2JqZWN0KCk7DQogICAgICAgICAgICAgICAgdmFyIGNtZCA9ICJ1cGxvYWRMb2dvIjsNCiAgICAgICAgICAgICAgICBkYXRhWyJiYXNlNjQiXSA9IHJlYWRlci5yZXN1bHQ7DQogICAgICAgICAgICAgICAgZGF0YVsiZmlsZW5hbWUiXSA9IGZpbGUubmFtZTsNCiAgICAgICAgICAgICAgICB2YXIgc2VydmVyID0gbmV3IFNlcnZlcihjbWQpOw0KICAgICAgICAgICAgICAgIHNlcnZlci5yZXF1ZXN0KGRhdGEpOw0KICAgICAgICAgICAgICAgIHZhciB1cGRhdGVMb2dvID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3VwZGF0ZS1pY29uJyk7DQogICAgICAgICAgICAgICAgdXBkYXRlTG9nby5jaGVja2VkID0gZmFsc2U7DQogICAgICAgICAgICAgICAgdXBkYXRlTG9nby5jbGFzc05hbWUgPSAiY2hhbmdlZCI7DQogICAgICAgICAgICB9Ow0KICAgICAgICB9DQogICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgYWxlcnQoIkZpbGUgY291bGQgbm90IGJlIGxvYWRlZCIpOw0KICAgICAgICB9DQogICAgICAgIHVwbG9hZC5yZW1vdmUoKTsNCiAgICAgICAgcmV0dXJuOw0KICAgIH07DQp9DQpmdW5jdGlvbiBjaGVja1VuZG8oa2V5KSB7DQogICAgc3dpdGNoIChrZXkpIHsNCiAgICAgICAgY2FzZSAiZXBnTWFwcGluZyI6DQogICAgICAgICAgICBpZiAoVU5ETy5oYXNPd25Qcm9wZXJ0eShrZXkpKSB7DQogICAgICAgICAgICAgICAgU0VSVkVSWyJ4ZXBnIl1ba2V5XSA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkoVU5ET1trZXldKSk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICBVTkRPW2tleV0gPSBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KFNFUlZFUlsieGVwZyJdW2tleV0pKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBkZWZhdWx0Og0KICAgICAgICAgICAgYnJlYWs7DQogICAgfQ0KICAgIHJldHVybjsNCn0NCmZ1bmN0aW9uIHNvcnRTZWxlY3QoZWxlbSkgew0KICAgIHZhciB0bXBBcnkgPSBbXTsNCiAgICB2YXIgc2VsZWN0ZWRWYWx1ZSA9IGVsZW1bZWxlbS5zZWxlY3RlZEluZGV4XS52YWx1ZTsNCiAgICBmb3IgKHZhciBpID0gMDsgaSA8IGVsZW0ub3B0aW9ucy5sZW5ndGg7IGkrKykNCiAgICAgICAgdG1wQXJ5LnB1c2goZWxlbS5vcHRpb25zW2ldKTsNCiAgICB0bXBBcnkuc29ydChmdW5jdGlvbiAoYSwgYikgeyByZXR1cm4gKGEudGV4dCA8IGIudGV4dCkgPyAtMSA6IDE7IH0pOw0KICAgIHdoaWxlIChlbGVtLm9wdGlvbnMubGVuZ3RoID4gMCkNCiAgICAgICAgZWxlbS5vcHRpb25zWzBdID0gbnVsbDsNCiAgICB2YXIgbmV3U2VsZWN0ZWRJbmRleCA9IDA7DQogICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0bXBBcnkubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgZWxlbS5vcHRpb25zW2ldID0gdG1wQXJ5W2ldOw0KICAgICAgICBpZiAoZWxlbS5vcHRpb25zW2ldLnZhbHVlID09IHNlbGVjdGVkVmFsdWUpDQogICAgICAgICAgICBuZXdTZWxlY3RlZEluZGV4ID0gaTsNCiAgICB9DQogICAgZWxlbS5zZWxlY3RlZEluZGV4ID0gbmV3U2VsZWN0ZWRJbmRleDsgLy8gU2V0IG5ldyBzZWxlY3RlZCBpbmRleCBhZnRlciBzb3J0aW5nDQogICAgcmV0dXJuOw0KfQ0KZnVuY3Rpb24gdXBkYXRlTG9nKCkgew0KICAgIGNvbnNvbGUubG9nKCJUT0tFTiIpOw0KICAgIHZhciBzZXJ2ZXIgPSBuZXcgU2VydmVyKCJ1cGRhdGVMb2ciKTsNCiAgICBzZXJ2ZXIucmVxdWVzdChuZXcgT2JqZWN0KCkpOw0KfQ0K" + webUI["html/js/menu.js"] = "DQpmdW5jdGlvbiBzZXRNZW51SXRlbSgpIHsNCg0KICBtZW51ID0gbmV3IE9iamVjdCgpOw0KICBzdWJNZW51ID0gbmV3IE9iamVjdCgpOw0KDQogIHZhciBtZW51X20zdSA9IG5ldyBPYmplY3QoKTsNCiAgbWVudV9tM3VbIl9tZW51VHlwZSJdICAgICAgID0gImlucHV0QXJyYXkiOw0KICBtZW51X20zdVsiX2VsZW1lbnQiXSAgICAgICAgPSAiTEkiOw0KICBtZW51X20zdVsiX2NvbmZpZ0tleSJdICAgICAgPSAiZmlsZXMubTN1IjsNCiAgbWVudV9tM3VbIl90ZXh0Il0gICAgICAgICAgID0gIlBsYXlsaXN0IjsNCiAgbWVudV9tM3VbIl9pY29uIl0gICAgICAgICAgID0gImltZy9tM3UucG5nIjsNCiAgbWVudV9tM3VbIl9oZWFkbGluZSJdICAgICAgID0gIlBsYXlsaXN0czogTG9jYWwgb3IgcmVtb3RlIjsNCiAgbWVudV9tM3VbIl91c2FnZSJdICAgICAgICAgID0gIjxiPkluZm88L2I+PGJyPkF2YWlsYWJpbGl0eTogRmlsZSBhdmFpbGFiaWxpdHkgaW4gcGVyY2VudDxicj5TdHJlYW1zOiAgICAgIE51bWJlciBvZiBzdHJlYW1zIGluIHRoZSBmaWxlLjxicj5ncm91cC10aXRsZTogIFN0cmVhbXMgdGhhdCBhcmUgYXNzaWduZWQgdG8gYSBncm91cC4gU2ltcGxpZmllcyBmaWx0ZXJpbmcgc3RyZWFtczxicj50dmctaWQ6ICAgICAgIFRoaXMgSUQgaXMgdXNlZCBmb3IgYXV0b21hdGljIG1hcHBpbmcsIG11c3QgbWF0Y2ggd2l0aCB0aGUgY2hhbm5lbCBJRCBpbiB0aGUgWE1MVFYgZmlsZS48YnI+VW5pcXVlIElEOiAgICBTdHJlYW1zIHdpdGggYSB1bmlxdWUgSUQgdG8gaWRlbnRpZnkgdGhlbS4gQWxsb3dzIGNoYW5uZWwgbmFtZSBjaGFuZ2VzIGluIHRoZSBNM1Ugd2l0aG91dCBsb3NpbmcgdGhlIFhNTFRWIG1hcHBpbmcgKFBQViAvIGxpdmUgZXZlbnRzKS48YnI+PGJyPjxiPlVzYWdlIE0zVTo8L2I+PGJyPlJlbW90ZSBwbGF5bGlzdDogaHR0cDovL3lvdXIuaXB0di5wcm92aWRlci5jb20vZmlsZS5tM3U8YnI+TG9jYWwgIHBsYXlsaXN0OiAvcGF0aC90by9maWxlLm0zdTxicj48YnI+PGI+VXNhZ2UgSERIb21lUnVuOjwvYj48YnI+SVA6IDE5Mi4xNjguMS4xMDo1MDA0PGJyPiINCiAgbWVudV9tM3VbIm5hbWUiXSAgICAgICAgICAgID0gImZpbGUiOw0KICBtZW51X20zdVsiaWQiXSAgICAgICAgICAgICAgPSAiZmlsZSI7DQogIG1lbnVfbTN1WyJ2YWx1ZSJdICAgICAgICAgICA9IG1lbnVfbTN1WyJuYW1lIl07DQogIG1lbnVfbTN1WyJwbGFjZWhvbGRlciJdICAgICA9ICJQbGF5bGlzdDogbG9jYWwgb3IgcmVtb3RlIjsNCiAgbWVudV9tM3VbIm9uY2xpY2siXSAgICAgICAgID0gImphdmFzY3JpcHQ6IHRvZ2dsZU1lbnUodGhpcyk7IjsNCiAgbWVudV9tM3VbImNsYXNzIl0gICAgICAgICAgID0gIm1lbnUtbm90QWN0aXZlIjsNCg0KDQogIHZhciBtZW51X2ZpbHRlciA9IG5ldyBPYmplY3QoKTsNCiAgbWVudV9maWx0ZXJbIl9tZW51VHlwZSJdICAgID0gImlucHV0QXJyYXkiOw0KICBtZW51X2ZpbHRlclsiX2VsZW1lbnQiXSAgICAgPSAiTEkiOw0KICBtZW51X2ZpbHRlclsiX2NvbmZpZ0tleSJdICAgPSAiZmlsdGVyIjsNCiAgbWVudV9maWx0ZXJbIl90ZXh0Il0gICAgICAgID0gIkZpbHRlciI7DQogIG1lbnVfZmlsdGVyWyJfaWNvbiJdICAgICAgICA9ICJpbWcvZmlsdGVyLnBuZyI7DQogIG1lbnVfZmlsdGVyWyJfaGVhZGxpbmUiXSAgICA9ICJGaWx0ZXIgYnkgTTNVIHBhcmFtZXRlcnMsIGUuZy4gZ3JvdXAtdGl0bGUiOw0KICBtZW51X2ZpbHRlclsiX3VzYWdlIl0gICAgICAgPSAiPGI+VXNhZ2U6PC9iPjxicj5TcG9ydCAtIEFsbCBzcG9ydHMgY2hhbm5lbHM8YnI+U3BvcnQge0hEfSAtIEFsbCBIRCBzcG9ydHMgY2hhbm5lbHM8YnI+U3BvcnQge0hEfSAhe0VTLERFfSAtIEFsbCBIRCBzcG9ydHMgY2hhbm5lbHMsIGJ1dCBubyBTcGFuaXNoIGFuZCBHZXJtYW48YnI+PGJyPlRvIGZpbHRlciB0aGUgc3RyZWFtcyBvZiBhIEhESG9tZVJ1biwgdGhlIHBsYXlsaXN0IG5hbWUgY2FuIGJlIGVudGVyZWQ6PGJyPk15IHR1bmVyIHtIRH0iDQogIC8vbWVudV9maWx0ZXJbIl91c2FnZSJdICAgICAgID0gIjxiPlVzYWdlOjwvYj48YnI+QWxsIHNwb3J0cyBjaGFubmVsczogU3BvcnQ8YnI+QWxsIEhEIHNwb3J0cyBjaGFubmVsczogU3BvcnQge0hEfTxicj5BbGwgSEQgc3BvcnRzIGNoYW5uZWxzLCBidXQgbm8gU3BhbmlzaCBhbmQgR2VybWFuOiBTcG9ydCB7SER9ICF7RVMsREV9Ig0KICBtZW51X2ZpbHRlclsibmFtZSJdICAgICAgICAgPSAiZmlsdGVyIjsNCiAgbWVudV9maWx0ZXJbImlkIl0gICAgICAgICAgID0gIk0zVSI7DQogIG1lbnVfZmlsdGVyWyJ2YWx1ZSJdICAgICAgICA9IG1lbnVfZmlsdGVyWyJuYW1lIl07DQogIG1lbnVfZmlsdGVyWyJwbGFjZWhvbGRlciJdICA9ICJGaWx0ZXIgc3RyZWFtczogU3BvcnQiOw0KICBtZW51X2ZpbHRlclsib25jbGljayJdICAgICAgPSAiamF2YXNjcmlwdDogdG9nZ2xlTWVudSh0aGlzKTsiOw0KICBtZW51X2ZpbHRlclsiY2xhc3MiXSAgICAgICAgPSAibWVudS1ub3RBY3RpdmUiOw0KDQogIHZhciBtZW51X2lkID0gbmV3IE9iamVjdCgpOw0KICBtZW51X2lkWyJfbWVudVR5cGUiXSAgICAgICAgPSAiaW5wdXRBcnJheSI7DQogIG1lbnVfaWRbIl9lbGVtZW50Il0gICAgICAgICA9ICJMSSI7DQogIG1lbnVfaWRbIl9jb25maWdLZXkiXSAgICAgICA9ICJpZCI7DQogIG1lbnVfaWRbIl90ZXh0Il0gICAgICAgICAgICA9ICJQTVMgSUQiOw0KICBtZW51X2lkWyJfaWNvbiJdICAgICAgICAgICAgPSAiaW1nL251bWJlci5wbmciOw0KICBtZW51X2lkWyJfaGVhZGxpbmUiXSAgICAgICAgPSAiU2V0dXAgUE1TIGd1aWRlIG51bWJlciI7DQogIG1lbnVfaWRbIl91c2FnZSJdICAgICAgICAgICA9ICdTb21lIHBsYXlsaXN0cyBoYXZlIHVuaXF1ZSBjaGFubmVsIElEcy48YnI+RW50ZXIgdGhlIGtleXdvcmQgb2YgdGhlIElELiBUaGUgY2hhbm5lbCBhc3NpZ25tZW50IGluIFBNUyB3aWxsIGNoYW5nZSBhcyBhIHJlc3VsdC48YnI+PGJyPmUuZy4gY2hhbm5lbElEPGJyPiNFWFRJTkY6MCB0eXBlPSJzdHJlYW0iIDxiPmNoYW5uZWxJZDwvYj49IjgxIiwgTXkgU3RyZWFtaW5nIENoYW5uZWwgSEQ8YnI+PGJyPk9ubHkgZW50ZXIgaGVyZSBpZiB5b3Uga25vdyB3aGF0IHlvdSBhcmUgZG9pbmchJw0KICBtZW51X2lkWyJuYW1lIl0gICAgICAgICAgICAgPSAiaWQiOw0KICBtZW51X2lkWyJpZCJdICAgICAgICAgICAgICAgPSAiaWQiOw0KICBtZW51X2lkWyJ2YWx1ZSJdICAgICAgICAgICAgPSBtZW51X2lkWyJuYW1lIl07DQogIG1lbnVfaWRbInBsYWNlaG9sZGVyIl0gICAgICA9ICJVbmlxdWUgSUQgZnJvbSB0aGUgTTNVIGZpbGUiOw0KICBtZW51X2lkWyJvbmNsaWNrIl0gICAgICAgICAgPSAiamF2YXNjcmlwdDogdG9nZ2xlTWVudSh0aGlzKTsiOw0KICBtZW51X2lkWyJjbGFzcyJdICAgICAgICAgICAgPSAibWVudS1ub3RBY3RpdmUiOw0KDQoNCiAgdmFyIG1lbnVfeG1sdHYgPSBuZXcgT2JqZWN0KCk7DQogIG1lbnVfeG1sdHZbIl9tZW51VHlwZSJdICAgICA9ICJpbnB1dEFycmF5IjsNCiAgbWVudV94bWx0dlsiX2VsZW1lbnQiXSAgICAgID0gIkxJIjsNCiAgbWVudV94bWx0dlsiX2NvbmZpZ0tleSJdICAgID0gImZpbGVzLnhtbHR2IjsNCiAgbWVudV94bWx0dlsiX3RleHQiXSAgICAgICAgID0gIlhNTFRWIjsNCiAgbWVudV94bWx0dlsiX2ljb24iXSAgICAgICAgID0gImltZy94bWx0di5wbmciOw0KICBtZW51X3htbHR2WyJfaGVhZGxpbmUiXSAgICAgPSAiWE1MVFYgZmlsZXM6IExvY2FsIG9yIHJlbW90ZSI7DQogIG1lbnVfeG1sdHZbIl91c2FnZSJdICAgICAgICA9ICI8Yj5JbmZvOjwvYj48YnI+QXZhaWxhYmlsaXR5OiBGaWxlIGF2YWlsYWJpbGl0eSBpbiBwZXJjZW50PGJyPkNoYW5uZWxzOiAgICAgTnVtYmVyIG9mIGNoYW5uZWxzIGluIHRoZSBmaWxlPGJyPlByb2dyYW1zOiAgICAgTnVtYmVyIG9mIEVQRyBkYXRhPGJyPjxicj48Yj5Vc2FnZTo8L2I+PGJyPlJlbW90ZSBYTUxUViBmaWxlOiBodHRwOi8veW91ci5lcGcucHJvdmlkZXIuY29tL2d1aWRlLnhtbDxicj5Mb2NhbCAgWE1MVFYgZmlsZTogL3BhdGgvdG8vZ3VpZGUueG1sIg0KICBtZW51X3htbHR2WyJuYW1lIl0gICAgICAgICAgPSAieG1sdHYiOw0KICBtZW51X3htbHR2WyJpZCJdICAgICAgICAgICAgPSAieG1sdHYiOw0KICBtZW51X3htbHR2WyJ2YWx1ZSJdICAgICAgICAgPSBtZW51X3htbHR2WyJuYW1lIl07DQogIG1lbnVfeG1sdHZbInBsYWNlaG9sZGVyIl0gICA9ICJYTUxUViBGaWxlOiBsb2NhbCBvciByZW1vdGUiOw0KICBtZW51X3htbHR2WyJvbmNsaWNrIl0gICAgICAgPSAiamF2YXNjcmlwdDogdG9nZ2xlTWVudSh0aGlzKTsiOw0KICBtZW51X3htbHR2WyJjbGFzcyJdICAgICAgICAgPSAibWVudS1ub3RBY3RpdmUiOw0KDQogIG1lbnVfbWFwcGluZyA9IG5ldyBPYmplY3QoKTsNCiAgbWVudV9tYXBwaW5nWyJfZWxlbWVudCJdICAgPSAiTEkiOw0KICBtZW51X21hcHBpbmdbIl90ZXh0Il0gICAgICA9ICJNYXBwaW5nIjsNCiAgbWVudV9tYXBwaW5nWyJfaWNvbiJdICAgICAgPSAiaW1nL21hcHBpbmcucG5nIjsNCiAgbWVudV9tYXBwaW5nWyJfY29uZmlnS2V5Il0gPSAibWFwcGluZyI7DQogIG1lbnVfbWFwcGluZ1siX2hlYWRsaW5lIl0gID0gIlhNTFRWIGFzc2lnbm1lbnQgYW5kIHNvcnRpbmcgb2YgY2hhbm5lbHMiOw0KICBtZW51X21hcHBpbmdbImlkIl0gICAgICAgICA9ICJtYXBwaW5nIjsNCiAgbWVudV9tYXBwaW5nWyJvbmNsaWNrIl0gICAgPSAiamF2YXNjcmlwdDogdG9nZ2xlTWVudSh0aGlzKTsiOw0KICBtZW51X21hcHBpbmdbImNsYXNzIl0gICAgICA9ICJtZW51LW5vdEFjdGl2ZSBwaG9uZSI7DQoNCiAgbWVudV91c2VycyA9IG5ldyBPYmplY3QoKTsNCiAgbWVudV91c2Vyc1siX2VsZW1lbnQiXSAgID0gIkxJIjsNCiAgbWVudV91c2Vyc1siX3RleHQiXSAgICAgID0gIlVzZXJzIjsNCiAgbWVudV91c2Vyc1siX2ljb24iXSAgICAgID0gImltZy91c2Vycy5wbmciOw0KICBtZW51X3VzZXJzWyJfY29uZmlnS2V5Il0gPSAidXNlcnMiOw0KICBtZW51X3VzZXJzWyJfaGVhZGxpbmUiXSAgPSAiQWRtaW5pc3RyYXRpb24gb2YgdXNlcnMgYW5kIHBlcm1pc3Npb25zIjsNCiAgbWVudV91c2Vyc1siaWQiXSAgICAgICAgID0gInVzZXJzIjsNCiAgbWVudV91c2Vyc1sib25jbGljayJdICAgID0gImphdmFzY3JpcHQ6IHRvZ2dsZU1lbnUodGhpcyk7IjsNCiAgbWVudV91c2Vyc1siY2xhc3MiXSAgICAgID0gIm1lbnUtbm90QWN0aXZlIjsNCiAgbWVudV91c2Vyc1siX3VzYWdlIl0gICAgID0gIjxiPkF1dGhvcml6YXRpb24gZ3JvdXBzOjwvYj48YnI+V0VCOiBVc2VycyBjYW4gbG9nIGluIHRvIHRoZSB3ZWIgaW50ZXJmYWNlPGJyPlBNUzogUHJvZ3JhbXMgbGlrZSBQbGV4IGNhbiBhY2Nlc3MgdGhlIGNoYW5uZWwgbGlzdC4gTG9naW4gdmlhIERWUiBJUDogdXNlcm5hbWU6cGFzc3dvcmRAeHRldmUuaXA6cG9ydDxicj5NM1U6IEFsbG93cyBjbGllbnRzIHRvIGRvd25sb2FkIHRoZSBNM1UgcGxheWxpc3QuPGJyPlhNTDogQWxsb3dzIGNsaWVudHMgdG8gZG93bmxvYWQgdGhlIFhNTFRWIGZpbGUuPGJyPkFQSTogQWxsb3dzIGNsaWVudHMgdG8gdXNlIHRoZSBBUEkgaW50ZXJmYWNlLjxicj48YnI+ISEhIEZvciBQTVMgYXV0aGVudGljYXRpb24sIG9ubHkgdGhlIGZvbGxvd2luZyBzcGVjaWFsIGNoYXJhY3RlcnMgYXJlIHZhbGlkOiAhJCgpPS4sLTo7PGJyPjxicj5UaGUgaW5kaXZpZHVhbCBhdXRoZW50aWNhdGlvbiBncm91cHMgY2FuIGJlIGFjdGl2YXRlZCAvIGRlYWN0aXZhdGVkIGluIHRoZSBzZXR0aW5ncyBtZW51LiINCiAgDQogIG1lbnVfc2V0dGluZ3MgPSBuZXcgT2JqZWN0KCk7DQogIG1lbnVfc2V0dGluZ3NbIl9lbGVtZW50Il0gICA9ICJMSSI7DQogIG1lbnVfc2V0dGluZ3NbIl90ZXh0Il0gICAgICA9ICJTZXR0aW5ncyI7DQogIG1lbnVfc2V0dGluZ3NbIl9pY29uIl0gICAgICA9ICJpbWcvc2V0dGluZ3MucG5nIjsNCiAgbWVudV9zZXR0aW5nc1siX2NvbmZpZ0tleSJdID0gInNldHRpbmdzIjsNCiAgbWVudV9zZXR0aW5nc1siX2hlYWRsaW5lIl0gID0gIlNldHRpbmdzIjsNCiAgbWVudV9zZXR0aW5nc1siX3N1Yk1lbnUiXSAgID0gIjcwMSw3MDIsNzAzLDcwNCw3MDUsNzA2LDcwNyw3MDgsNzk5LDcxMCw3MTEsNzEyLDcxMyw3MTQiOw0KICBtZW51X3NldHRpbmdzWyJpZCJdICAgICAgICAgPSAic2V0dGluZ3MiOw0KICBtZW51X3NldHRpbmdzWyJvbmNsaWNrIl0gICAgPSAiamF2YXNjcmlwdDogdG9nZ2xlTWVudSh0aGlzKTsiOw0KICBtZW51X3NldHRpbmdzWyJjbGFzcyJdICAgICAgPSAibWVudS1ub3RBY3RpdmUiOw0KDQogIG1lbnVfbG9nID0gbmV3IE9iamVjdCgpOw0KICBtZW51X2xvZ1siX2VsZW1lbnQiXSAgICAgICAgPSAiTEkiOw0KICBtZW51X2xvZ1siX3RleHQiXSAgICAgICAgICAgPSAiTG9nIjsNCiAgbWVudV9sb2dbIl9pY29uIl0gICAgICAgICAgID0gImltZy9sb2cucG5nIjsNCiAgbWVudV9sb2dbIl9oZWFkbGluZSJdICAgICAgID0gIkxvZyI7DQogIG1lbnVfbG9nWyJfY29uZmlnS2V5Il0gICAgICA9ICJsb2ciOw0KICBtZW51X2xvZ1siaWQiXSAgICAgICAgICAgICAgPSAibG9nIjsNCiAgbWVudV9sb2dbIm9uY2xpY2siXSAgICAgICAgID0gImphdmFzY3JpcHQ6IHRvZ2dsZU1lbnUodGhpcyk7IjsNCiAgbWVudV9sb2dbImNsYXNzIl0gICAgICAgICAgID0gIm1lbnUtbm90QWN0aXZlIjsNCg0KICBtZW51X2xvZ291dCA9IG5ldyBPYmplY3QoKTsNCiAgbWVudV9sb2dvdXRbIl9lbGVtZW50Il0gICA9ICJMSSI7DQogIG1lbnVfbG9nb3V0WyJfdGV4dCJdICAgICAgPSAiTG9nb3V0IjsNCiAgbWVudV9sb2dvdXRbIl9pY29uIl0gICAgICA9ICJpbWcvbG9nb3V0LnBuZyI7DQogIG1lbnVfbG9nb3V0WyJpZCJdICAgICAgICAgPSAibG9nb3V0IjsNCiAgbWVudV9sb2dvdXRbIm9uY2xpY2siXSAgICA9ICJqYXZhc2NyaXB0OiBsb2dvdXQoKTsiOw0KICBtZW51X2xvZ291dFsiY2xhc3MiXSAgICAgID0gIm1lbnUtbm90QWN0aXZlIjsNCg0KICB2YXIgbWVudV9zY2hlZHVsZSA9IG5ldyBPYmplY3QoKTsNCiAgbWVudV9zY2hlZHVsZVsiX21lbnVUeXBlIl0gID0gImlucHV0QXJyYXkiOw0KICBtZW51X3NjaGVkdWxlWyJfZWxlbWVudCJdICAgPSAiTEkiOw0KICBtZW51X3NjaGVkdWxlWyJfY29uZmlnS2V5Il0gPSAidXBkYXRlIjsNCiAgbWVudV9zY2hlZHVsZVsiX3RleHQiXSAgICAgID0gIlNjaGVkdWxlIjsNCiAgbWVudV9zY2hlZHVsZVsiX2ljb24iXSAgICAgID0gImltZy9zY2hlZHVsZS5wbmciOw0KICBtZW51X3NjaGVkdWxlWyJfaGVhZGxpbmUiXSAgPSAiU2NoZWR1bGUgZm9yIHVwZGF0aW5nIE0zVSwgWE1MVFYgZmlsZXMgYW5kIGNyZWF0aW5nIGEgbG9jYWwgYmFja3VwIjsNCiAgbWVudV9zY2hlZHVsZVsiX3VzYWdlIl0gICAgID0gIjxiPlVzYWdlOjwvYj48YnI+MDgxNSA9IDg6MTUgYW08YnI+MTkzMCA9IDc6MzAgcG0iDQogIG1lbnVfc2NoZWR1bGVbIm5hbWUiXSAgICAgICA9ICJ1cGRhdGUiOw0KICBtZW51X3NjaGVkdWxlWyJpZCJdICAgICAgICAgPSAidXBkYXRlIjsNCiAgbWVudV9zY2hlZHVsZVsidmFsdWUiXSAgICAgID0gbWVudV9pZFsibmFtZSJdOw0KICBtZW51X3NjaGVkdWxlWyJwbGFjZWhvbGRlciJdPSAidGltZSBvZiBkYXkgKDI0LWhvdXIgY2xvY2spIjsNCiAgbWVudV9zY2hlZHVsZVsib25jbGljayJdICAgID0gImphdmFzY3JpcHQ6IHRvZ2dsZU1lbnUodGhpcyk7IjsNCiAgbWVudV9zY2hlZHVsZVsiY2xhc3MiXSAgICAgID0gIm1lbnUtbm90QWN0aXZlIjsNCg0KICB2YXIgbWVudV9maWxlc1VwZGF0ZSA9IG5ldyBPYmplY3QoKTsNCiAgbWVudV9maWxlc1VwZGF0ZVsiX2VsZW1lbnQiXSA9ICJMSSI7DQogIG1lbnVfZmlsZXNVcGRhdGVbIl9tZW51VHlwZSJdICAgICA9ICJjaGVja2JveCI7DQogIG1lbnVfZmlsZXNVcGRhdGVbIl9jb25maWdLZXkiXSAgICA9ICJmaWxlcy51cGRhdGUiOw0KICBtZW51X2ZpbGVzVXBkYXRlWyJfbGFiZWwiXSAgICAgICAgPSAiVXBkYXRlIHRoZSBwcm92aWRlciBmaWxlcyBhdCBzeXN0ZW0gc3RhcnR1cCI7DQogIG1lbnVfZmlsZXNVcGRhdGVbIl9oZWFkbGluZSJdICAgICA9ICJVcGRhdGUgdGhlIHByb3ZpZGVyIGZpbGVzIGF0IHN5c3RlbSBzdGFydHVwIjsNCiAgbWVudV9maWxlc1VwZGF0ZVsiX3VzYWdlIl0gICAgICAgID0gIlBsYXlsaXN0cyBhbmQgWE1MVFYgZmlsZXMgYXJlIHVwZGF0ZWQgYnkgeFRlVmUgYXQgc3lzdGVtIHN0YXJ0dXAuIg0KICBtZW51X2ZpbGVzVXBkYXRlWyJuYW1lIl0gICAgICAgICAgPSAiZmlsZXMudXBkYXRlIjsNCiAgbWVudV9maWxlc1VwZGF0ZVsiaWQiXSAgICAgICAgICAgID0gImZpbGVzLnVwZGF0ZSI7DQogIG1lbnVfZmlsZXNVcGRhdGVbInZhbHVlIl0gICAgICAgICA9IG1lbnVfZmlsZXNVcGRhdGVbIm5hbWUiXTsNCiAgbWVudV9maWxlc1VwZGF0ZVsib25jbGljayJdICAgICAgID0gImphdmFzY3JpcHQ6IHRvZ2dsZU1lbnUodGhpcyk7IjsNCiAgbWVudV9maWxlc1VwZGF0ZVsiY2xhc3MiXSAgICAgICAgID0gIm1lbnUtbm90QWN0aXZlIjsNCiAgDQogIHZhciBtZW51X3R1bmVyID0gbmV3IE9iamVjdCgpOw0KICBtZW51X3R1bmVyWyJfZWxlbWVudCJdICAgICAgPSAiTEkiOw0KICBtZW51X3R1bmVyWyJfbWVudVR5cGUiXSAgICAgPSAic2VsZWN0IjsNCiAgbWVudV90dW5lclsiX2NvbmZpZ0tleSJdICAgID0gInR1bmVyIjsNCiAgbWVudV90dW5lclsiX2xhYmVsIl0gICAgICAgID0gIkF2YWlsYWJsZSB0dW5lcnMiOw0KICBtZW51X3R1bmVyWyJfdGV4dCJdICAgICAgICAgPSAiVHVuZXIiOw0KICBtZW51X3R1bmVyWyJfaWNvbiJdICAgICAgICAgPSAiaW1nL3R1bmVyLnBuZyI7DQogIG1lbnVfdHVuZXJbIl9oZWFkbGluZSJdICAgICA9ICJOdW1iZXIgb2YgdHVuZXJzIjsNCiAgbWVudV90dW5lclsiX3VzYWdlIl0gICAgICAgID0gIlRoaXMgc2V0dGluZyBpcyBvbmx5IHVzZWQgYnkgUGxleCBhbmQgRW1ieS48YnI+VGhlIG51bWJlciBvZiBjb25jdXJyZW50IHN0cmVhbXMgYWxsb3dlZCBieSB0aGUgSVBUViBwcm92aWRlci48YnI+QWZ0ZXIgYSBjaGFuZ2UsIHhUZVZlIG11c3QgYmUgZGVsZXRlIGluIHRoZSBQTVMgRFZSIHNldHRpbmdzIGFuZCBzZXQgdXAgYWdhaW4uIg0KICBtZW51X3R1bmVyWyJuYW1lIl0gICAgICAgICAgPSAidHVuZXIiOw0KICBtZW51X3R1bmVyWyJpZCJdICAgICAgICAgICAgPSAidHVuZXIiOw0KICBtZW51X3R1bmVyWyJ2YWx1ZSJdICAgICAgICAgPSBtZW51X3R1bmVyWyJuYW1lIl07DQogIG1lbnVfdHVuZXJbInBsYWNlaG9sZGVyIl0gICA9ICJOdW1iZXIgb2YgdHVuZXJzIjsNCiAgbWVudV90dW5lclsib25jbGljayJdICAgICAgID0gImphdmFzY3JpcHQ6IHRvZ2dsZU1lbnUodGhpcyk7IjsNCiAgbWVudV90dW5lclsiY2xhc3MiXSAgICAgICAgID0gIm1lbnUtbm90QWN0aXZlIjsNCg0KICB2YXIgb3B0aW9uVmFsdWVzID0gbmV3IEFycmF5KCk7DQogIGZvciAodmFyIGkgPSAxOyBpIDw9IDEwMDsgaSsrKSB7DQogICAgb3B0aW9uVmFsdWVzLnB1c2goaSkNCiAgfQ0KICBtZW51X3R1bmVyWyJfb3B0aW9uVmFsdWVzIl0gPSBvcHRpb25WYWx1ZXM7DQogIA0KICB2YXIgbWVudV9lcGcgPSBuZXcgT2JqZWN0KCk7DQogIG1lbnVfZXBnWyJfZWxlbWVudCJdID0gIkxJIjsNCiAgbWVudV9lcGdbIl9tZW51VHlwZSJdICAgICA9ICJzZWxlY3QiOw0KICBtZW51X2VwZ1siX2NvbmZpZ0tleSJdICAgID0gImVwZ1NvdXJjZSI7DQogIG1lbnVfZXBnWyJfbGFiZWwiXSAgICAgICAgPSAiU2VsZWN0aW9uIG9mIHRoZSBFUEcgc291cmNlIjsNCiAgbWVudV9lcGdbIl90ZXh0Il0gICAgICAgICA9ICJFUEcgc291cmNlIjsNCiAgbWVudV9lcGdbIl9oZWFkbGluZSJdICAgICA9ICJTZWxlY3Rpb24gb2YgdGhlIEVQRyBzb3VyY2UiOw0KICBtZW51X2VwZ1siX3VzYWdlIl0gICAgICAgID0gIlBNUzogICBVc2UgRVBHIGRhdGEgZnJvbSBQbGV4IG9yIEVtYnkuPGJyPlhFUEc6ICBVc2Ugb2YgZXh0ZXJuYWwgRVBHIGRhdGEgKFhNTFRWKS48YnI+ICAgICAgIFNldmVyYWwgWE1MVFYgc291cmNlcyBwb3NzaWJsZS48YnI+ICAgICAgIEFsbG93cyBlZGl0aW5nIGFuZCBvcmRlciBjaGFubmVscy48YnI+ICAgICAgIE0zVSAvIFhNTFRWIGV4cG9ydCAoSFRUUCBsaW5rIGZvciBJUFRWIGFwcHMpLiINCiAgbWVudV9lcGdbIm5hbWUiXSAgICAgICAgICA9ICJlcGdTb3VyY2UiOw0KICBtZW51X2VwZ1siaWQiXSAgICAgICAgICAgID0gImVwZ1NvdXJjZSI7DQogIG1lbnVfZXBnWyJ2YWx1ZSJdICAgICAgICAgPSBtZW51X2VwZ1sibmFtZSJdOw0KICBtZW51X2VwZ1sicGxhY2Vob2xkZXIiXSAgID0gIkVQRyBzb3VyY2UiOw0KICBtZW51X2VwZ1sib25jbGljayJdICAgICAgID0gImphdmFzY3JpcHQ6IHRvZ2dsZU1lbnUodGhpcyk7IjsNCiAgbWVudV9lcGdbImNsYXNzIl0gICAgICAgICA9ICJtZW51LW5vdEFjdGl2ZSI7DQogIG1lbnVfZXBnWyJfb3B0aW9uVmFsdWVzIl0gPSBuZXcgQXJyYXkoIlBNUyIsICJYRVBHIik7DQoNCiAgdmFyIG1lbnVfeGVwZyA9IG5ldyBPYmplY3QoKTsNCiAgbWVudV94ZXBnWyJfZWxlbWVudCJdID0gIkxJIjsNCiAgbWVudV94ZXBnWyJfbWVudVR5cGUiXSAgICAgPSAiY2hlY2tib3giOw0KICBtZW51X3hlcGdbIl9jb25maWdLZXkiXSAgICA9ICJ4dGV2ZUF1dG9VcGRhdGUiOw0KICBtZW51X3hlcGdbIl9sYWJlbCJdICAgICAgICA9ICJBdXRvbWF0aWMgdXBkYXRlIG9mIHhUZVZlIjsNCiAgbWVudV94ZXBnWyJfaGVhZGxpbmUiXSAgICAgPSAiQXV0b21hdGljIHVwZGF0ZSBvZiB4VGVWZSI7DQogIG1lbnVfeGVwZ1siX3VzYWdlIl0gICAgICAgID0gIklmIGEgbmV3IHZlcnNpb24gb2YgeFRlVmUgaXMgYXZhaWxhYmxlLCBpdCB3aWxsIGJlIGF1dG9tYXRpY2FsbHkgaW5zdGFsbGVkLiINCiAgbWVudV94ZXBnWyJuYW1lIl0gICAgICAgICAgPSAieHRldmVBdXRvVXBkYXRlIjsNCiAgbWVudV94ZXBnWyJpZCJdICAgICAgICAgICAgPSAieHRldmVBdXRvVXBkYXRlIjsNCiAgbWVudV94ZXBnWyJ2YWx1ZSJdICAgICAgICAgPSBtZW51X3hlcGdbIm5hbWUiXTsNCiAgbWVudV94ZXBnWyJvbmNsaWNrIl0gICAgICAgPSAiamF2YXNjcmlwdDogdG9nZ2xlTWVudSh0aGlzKTsiOw0KICBtZW51X3hlcGdbImNsYXNzIl0gICAgICAgICA9ICJtZW51LW5vdEFjdGl2ZSI7DQoNCiAgdmFyIG1lbnVfYXV0b0JhY2t1cFBhdGggPSBuZXcgT2JqZWN0KCk7DQogIG1lbnVfYXV0b0JhY2t1cFBhdGhbIl9lbGVtZW50Il0gICA9ICJMSSI7DQogIG1lbnVfYXV0b0JhY2t1cFBhdGhbIl9tZW51VHlwZSJdICA9ICJzaW5nbGVJbnB1dCI7DQogIG1lbnVfYXV0b0JhY2t1cFBhdGhbIl9jb25maWdLZXkiXSA9ICJiYWNrdXAucGF0aCI7DQogIG1lbnVfYXV0b0JhY2t1cFBhdGhbIl9sYWJlbCJdICAgICA9ICJMb2NhdGlvbiBmb3IgYXV0b21hdGljIGJhY2t1cHMiOw0KICBtZW51X2F1dG9CYWNrdXBQYXRoWyJfaGVhZGxpbmUiXSAgPSAiTG9jYXRpb24gZm9yIGF1dG9tYXRpYyBiYWNrdXBzIjsNCiAgbWVudV9hdXRvQmFja3VwUGF0aFsiX3VzYWdlIl0gICAgID0gIkJlZm9yZSBhbnkgdXBkYXRlIG9mIHRoZSBwcm92aWRlciBkYXRhIGJ5IHRoZSBzY2hlZHVsZSwgeFRlVmUgY3JlYXRlcyBhIGJhY2t1cC4gVGhlIHBhdGggZm9yIHRoZSBhdXRvbWF0aWMgYmFja3VwcyBjYW4gYmUgY2hhbmdlZC4geFRlVmUgcmVxdWlyZXMgd3JpdGUgcGVybWlzc2lvbiBmb3IgdGhpcyBmb2xkZXIuIg0KICBtZW51X2F1dG9CYWNrdXBQYXRoWyJuYW1lIl0gICAgICAgPSAiYmFja3VwLnBhdGgiOw0KICBtZW51X2F1dG9CYWNrdXBQYXRoWyJpZCJdICAgICAgICAgPSAiYmFja3VwLnBhdGgiOw0KICBtZW51X2F1dG9CYWNrdXBQYXRoWyJ2YWx1ZSJdICAgICAgPSBtZW51X2F1dG9CYWNrdXBQYXRoWyJuYW1lIl07DQogIG1lbnVfYXV0b0JhY2t1cFBhdGhbIm9uY2xpY2siXSAgICA9ICJqYXZhc2NyaXB0OiB0b2dnbGVNZW51KHRoaXMpOyI7DQogIG1lbnVfYXV0b0JhY2t1cFBhdGhbImNsYXNzIl0gICAgICA9ICJtZW51LW5vdEFjdGl2ZSI7DQoNCiAgdmFyIG1lbnVfYXV0b0JhY2t1cEtlZXAgPSBuZXcgT2JqZWN0KCk7DQogIG1lbnVfYXV0b0JhY2t1cEtlZXBbIl9lbGVtZW50Il0gICA9ICJMSSI7DQogIG1lbnVfYXV0b0JhY2t1cEtlZXBbIl9tZW51VHlwZSJdICA9ICJzZWxlY3QiOw0KICBtZW51X2F1dG9CYWNrdXBLZWVwWyJfY29uZmlnS2V5Il0gPSAiYmFja3VwLmtlZXAiOw0KICBtZW51X2F1dG9CYWNrdXBLZWVwWyJfdGV4dCJdICAgICAgPSAiS2VlcCI7DQogIG1lbnVfYXV0b0JhY2t1cEtlZXBbIl9sYWJlbCJdICAgICA9ICJOdW1iZXIgb2YgYmFja3VwcyB0byBrZWVwIjsNCiAgbWVudV9hdXRvQmFja3VwS2VlcFsiX2hlYWRsaW5lIl0gID0gIk51bWJlciBvZiBiYWNrdXBzIHRvIGtlZXAiOw0KICBtZW51X2F1dG9CYWNrdXBLZWVwWyJfdXNhZ2UiXSAgICAgPSAiIg0KICBtZW51X2F1dG9CYWNrdXBLZWVwWyJuYW1lIl0gICAgICAgPSAiYmFja3VwLmtlZXAiOw0KICBtZW51X2F1dG9CYWNrdXBLZWVwWyJpZCJdICAgICAgICAgPSAiYmFja3VwLmtlZXAiOw0KICBtZW51X2F1dG9CYWNrdXBLZWVwWyJ2YWx1ZSJdICAgICAgPSBtZW51X2F1dG9CYWNrdXBLZWVwWyJuYW1lIl07DQogIG1lbnVfYXV0b0JhY2t1cEtlZXBbIm9uY2xpY2siXSAgICA9ICJqYXZhc2NyaXB0OiB0b2dnbGVNZW51KHRoaXMpOyI7DQogIG1lbnVfYXV0b0JhY2t1cEtlZXBbImNsYXNzIl0gICAgICA9ICJtZW51LW5vdEFjdGl2ZSI7DQoNCiAgdmFyIG9wdGlvblZhbHVlcyA9IG5ldyBBcnJheSg1LCAxMCwgMjAsIDMwLCA0MCwgNTApOw0KICBtZW51X2F1dG9CYWNrdXBLZWVwWyJfb3B0aW9uVmFsdWVzIl0gPSBvcHRpb25WYWx1ZXM7DQoNCg0KICB2YXIgbWVudV9idWZmZXIgPSBuZXcgT2JqZWN0KCk7DQogIG1lbnVfYnVmZmVyWyJfZWxlbWVudCJdID0gIkxJIjsNCiAgbWVudV9idWZmZXJbIl9tZW51VHlwZSJdICAgICA9ICJjaGVja2JveCI7DQogIG1lbnVfYnVmZmVyWyJfY29uZmlnS2V5Il0gICAgPSAiYnVmZmVyIjsNCiAgbWVudV9idWZmZXJbIl9sYWJlbCJdICAgICAgICA9ICJTdHJlYW0gYnVmZmVyaW5nIFtFeHBlcmltZW50YWxdIjsNCiAgbWVudV9idWZmZXJbIl9oZWFkbGluZSJdICAgICA9ICJTdHJlYW0gYnVmZmVyaW5nIFtFeHBlcmltZW50YWxdIjsNCiAgbWVudV9idWZmZXJbIl91c2FnZSJdICAgICAgICA9ICJXaXRoIGFjdGl2YXRlZCBidWZmZXIsIHN0cmVhbXMgY2FuIGJlIHBsYXllZCBhbmQgcmVjb3JkZWQgbW9yZSBmbHVlbnRseS48YnI+VGhlIHN0cmVhbSBpcyBwYXNzZWQgZnJvbSB4VGVWZSB0byBQbGV4IC8gRW1ieSINCiAgbWVudV9idWZmZXJbIm5hbWUiXSAgICAgICAgICA9ICJidWZmZXIiOw0KICBtZW51X2J1ZmZlclsiaWQiXSAgICAgICAgICAgID0gImJ1ZmZlciI7DQogIG1lbnVfYnVmZmVyWyJ2YWx1ZSJdICAgICAgICAgPSBtZW51X2J1ZmZlclsibmFtZSJdOw0KICBtZW51X2J1ZmZlclsib25jbGljayJdICAgICAgID0gImphdmFzY3JpcHQ6IHRvZ2dsZU1lbnUodGhpcyk7IjsNCiAgbWVudV9idWZmZXJbImNsYXNzIl0gICAgICAgICA9ICJtZW51LW5vdEFjdGl2ZSI7DQoNCiAgdmFyIG1lbnVfYXBpID0gbmV3IE9iamVjdCgpOw0KICBtZW51X2FwaVsiX2VsZW1lbnQiXSA9ICJMSSI7DQogIG1lbnVfYXBpWyJfbWVudVR5cGUiXSAgICAgPSAiY2hlY2tib3giOw0KICBtZW51X2FwaVsiX2NvbmZpZ0tleSJdICAgID0gImFwaSI7DQogIG1lbnVfYXBpWyJfbGFiZWwiXSAgICAgICAgPSAiQVBJIGludGVyZmFjZSI7DQogIG1lbnVfYXBpWyJfaGVhZGxpbmUiXSAgICAgPSAiQVBJIGludGVyZmFjZSI7DQogIG1lbnVfYXBpWyJfdXNhZ2UiXSAgICAgICAgPSAnVmlhIEFQSSBpbnRlcmZhY2UgaXQgaXMgcG9zc2libGUgdG8gc2VuZCBjb21tYW5kcyB0byB4VGVWZS4gQVBJIGRvY3VtZW50YXRpb24gaXMgYXZhaWxhYmxlIDxhIGhyZWY9Imh0dHBzOi8veHRldmUuZGU/c2Nyb2xsPWFwaSI+aGVyZTwvYT4gJw0KICAvL21lbnVfYXBpWyJfdXNhZ2UiXSAgICAgICAgPSAnVmlhIEFQSSBpbnRlcmZhY2UgaXQgaXMgcG9zc2libGUgdG8gc2VuZCBjb21tYW5kcyB0byB4VGVWZS4gQVBJIGRvY3VtZW50YXRpb24gaXMgYXZhaWxhYmxlIDxhIGhyZWY9Imh0dHA6Ly9sb2NhbGhvc3Q6MTMxMz9zY3JvbGw9YXBpIj5oZXJlPC9hPiAnDQogIG1lbnVfYXBpWyJuYW1lIl0gICAgICAgICAgPSAiYXBpIjsNCiAgbWVudV9hcGlbImlkIl0gICAgICAgICAgICA9ICJhcGkiOw0KICBtZW51X2FwaVsidmFsdWUiXSAgICAgICAgID0gbWVudV9hcGlbIm5hbWUiXTsNCiAgbWVudV9hcGlbIm9uY2xpY2siXSAgICAgICA9ICJqYXZhc2NyaXB0OiB0b2dnbGVNZW51KHRoaXMpOyI7DQogIG1lbnVfYXBpWyJjbGFzcyJdICAgICAgICAgPSAibWVudS1ub3RBY3RpdmUiOw0KDQogIHZhciBtZW51X2F1dGhlbnRpY2F0aW9uV2ViID0gbmV3IE9iamVjdCgpOw0KICBtZW51X2F1dGhlbnRpY2F0aW9uV2ViWyJfZWxlbWVudCJdID0gIkxJIjsNCiAgbWVudV9hdXRoZW50aWNhdGlvbldlYlsiX21lbnVUeXBlIl0gICAgID0gImNoZWNrYm94IjsNCiAgbWVudV9hdXRoZW50aWNhdGlvbldlYlsiX2NvbmZpZ0tleSJdICAgID0gImF1dGhlbnRpY2F0aW9uLndlYiI7DQogIG1lbnVfYXV0aGVudGljYXRpb25XZWJbIl9sYWJlbCJdICAgICAgICA9ICJVc2VyIGF1dGhlbnRpY2F0aW9uIjsNCiAgbWVudV9hdXRoZW50aWNhdGlvbldlYlsiX2hlYWRsaW5lIl0gICAgID0gIlVzZXIgYXV0aGVudGljYXRpb24iOw0KICBtZW51X2F1dGhlbnRpY2F0aW9uV2ViWyJfdXNhZ2UiXSAgICAgICAgPSAiQWNjZXNzIHRvIHhUZVZlIHJlcXVpcmVzIGF1dGhlbnRpY2F0aW9uLiINCiAgbWVudV9hdXRoZW50aWNhdGlvbldlYlsibmFtZSJdICAgICAgICAgID0gImF1dGhlbnRpY2F0aW9uLndlYiI7DQogIG1lbnVfYXV0aGVudGljYXRpb25XZWJbImlkIl0gICAgICAgICAgICA9ICJhdXRoZW50aWNhdGlvbi53ZWIiOw0KICBtZW51X2F1dGhlbnRpY2F0aW9uV2ViWyJ2YWx1ZSJdICAgICAgICAgPSBtZW51X2F1dGhlbnRpY2F0aW9uV2ViWyJuYW1lIl07DQogIG1lbnVfYXV0aGVudGljYXRpb25XZWJbIm9uY2xpY2siXSAgICAgICA9ICJqYXZhc2NyaXB0OiB0b2dnbGVNZW51KHRoaXMpOyI7DQogIG1lbnVfYXV0aGVudGljYXRpb25XZWJbImNsYXNzIl0gICAgICAgICA9ICJtZW51LW5vdEFjdGl2ZSI7DQogIA0KICB2YXIgbWVudV9hdXRoZW50aWNhdGlvblBtcyA9IG5ldyBPYmplY3QoKTsNCiAgbWVudV9hdXRoZW50aWNhdGlvblBtc1siX2VsZW1lbnQiXSA9ICJMSSI7DQogIG1lbnVfYXV0aGVudGljYXRpb25QbXNbIl9tZW51VHlwZSJdICAgICA9ICJjaGVja2JveCI7DQogIG1lbnVfYXV0aGVudGljYXRpb25QbXNbIl9jb25maWdLZXkiXSAgICA9ICJhdXRoZW50aWNhdGlvbi5wbXMiOw0KICBtZW51X2F1dGhlbnRpY2F0aW9uUG1zWyJfbGFiZWwiXSAgICAgICAgPSAiUGxleCBhdXRoZW50aWNhdGlvbi4iOw0KICBtZW51X2F1dGhlbnRpY2F0aW9uUG1zWyJfaGVhZGxpbmUiXSAgICAgPSAiUGxleCBhdXRoZW50aWNhdGlvbi4iOw0KICBtZW51X2F1dGhlbnRpY2F0aW9uUG1zWyJfdXNhZ2UiXSAgICAgICAgPSAiUGxleCByZXF1ZXN0cyBhcmUgb25seSBwb3NzaWJsZSB3aXRoIGF1dGhlbnRpY2F0aW9uLjxicj5XYXJuaW5nISEhIEFmdGVyIGFjdGl2YXRpbmcgdGhpcyBmdW5jdGlvbiB4VGVWZSBtdXN0IGJlIGRlbGV0ZSBpbiB0aGUgUE1TIERWUiBzZXR0aW5ncyBhbmQgc2V0IHVwIGFnYWluLiINCiAgbWVudV9hdXRoZW50aWNhdGlvblBtc1sibmFtZSJdICAgICAgICAgID0gImF1dGhlbnRpY2F0aW9uLnBtcyI7DQogIG1lbnVfYXV0aGVudGljYXRpb25QbXNbImlkIl0gICAgICAgICAgICA9ICJhdXRoZW50aWNhdGlvbi5wbXMiOw0KICBtZW51X2F1dGhlbnRpY2F0aW9uUG1zWyJ2YWx1ZSJdICAgICAgICAgPSBtZW51X2F1dGhlbnRpY2F0aW9uUG1zWyJuYW1lIl07DQogIG1lbnVfYXV0aGVudGljYXRpb25QbXNbIm9uY2xpY2siXSAgICAgICA9ICJqYXZhc2NyaXB0OiB0b2dnbGVNZW51KHRoaXMpOyI7DQogIG1lbnVfYXV0aGVudGljYXRpb25QbXNbImNsYXNzIl0gICAgICAgICA9ICJtZW51LW5vdEFjdGl2ZSI7DQogIA0KICB2YXIgbWVudV9hdXRoZW50aWNhdGlvbk0zdSA9IG5ldyBPYmplY3QoKTsNCiAgbWVudV9hdXRoZW50aWNhdGlvbk0zdVsiX2VsZW1lbnQiXSA9ICJMSSI7DQogIG1lbnVfYXV0aGVudGljYXRpb25NM3VbIl9tZW51VHlwZSJdICAgICA9ICJjaGVja2JveCI7DQogIG1lbnVfYXV0aGVudGljYXRpb25NM3VbIl9jb25maWdLZXkiXSAgICA9ICJhdXRoZW50aWNhdGlvbi5tM3UiOw0KICBtZW51X2F1dGhlbnRpY2F0aW9uTTN1WyJfbGFiZWwiXSAgICAgICAgPSAiTTNVIGF1dGhlbnRpY2F0aW9uLiI7DQogIG1lbnVfYXV0aGVudGljYXRpb25NM3VbIl9oZWFkbGluZSJdICAgICA9ICJNM1UgYXV0aGVudGljYXRpb24uIjsNCiAgbWVudV9hdXRoZW50aWNhdGlvbk0zdVsiX3VzYWdlIl0gICAgICAgID0gIkRvd25sb2FkaW5nIHRoZSBNM1UgZmlsZSB2aWEgYW4gSFRUUCByZXF1ZXN0IGlzIG9ubHkgcG9zc2libGUgd2l0aCBhdXRoZW50aWNhdGlvbi4iDQogIG1lbnVfYXV0aGVudGljYXRpb25NM3VbIm5hbWUiXSAgICAgICAgICA9ICJhdXRoZW50aWNhdGlvbi5tM3UiOw0KICBtZW51X2F1dGhlbnRpY2F0aW9uTTN1WyJpZCJdICAgICAgICAgICAgPSAiYXV0aGVudGljYXRpb24ubTN1IjsNCiAgbWVudV9hdXRoZW50aWNhdGlvbk0zdVsidmFsdWUiXSAgICAgICAgID0gbWVudV9hdXRoZW50aWNhdGlvbk0zdVsibmFtZSJdOw0KICBtZW51X2F1dGhlbnRpY2F0aW9uTTN1WyJvbmNsaWNrIl0gICAgICAgPSAiamF2YXNjcmlwdDogdG9nZ2xlTWVudSh0aGlzKTsiOw0KICBtZW51X2F1dGhlbnRpY2F0aW9uTTN1WyJjbGFzcyJdICAgICAgICAgPSAibWVudS1ub3RBY3RpdmUiOw0KICANCg0KICB2YXIgbWVudV9hdXRoZW50aWNhdGlvblhtbCA9IG5ldyBPYmplY3QoKTsNCiAgbWVudV9hdXRoZW50aWNhdGlvblhtbFsiX2VsZW1lbnQiXSA9ICJMSSI7DQogIG1lbnVfYXV0aGVudGljYXRpb25YbWxbIl9tZW51VHlwZSJdICAgICA9ICJjaGVja2JveCI7DQogIG1lbnVfYXV0aGVudGljYXRpb25YbWxbIl9jb25maWdLZXkiXSAgICA9ICJhdXRoZW50aWNhdGlvbi54bWwiOw0KICBtZW51X2F1dGhlbnRpY2F0aW9uWG1sWyJfbGFiZWwiXSAgICAgICAgPSAiWEVQRyBhdXRoZW50aWNhdGlvbiI7DQogIG1lbnVfYXV0aGVudGljYXRpb25YbWxbIl9oZWFkbGluZSJdICAgICA9ICJYRVBHIGF1dGhlbnRpY2F0aW9uIjsNCiAgbWVudV9hdXRoZW50aWNhdGlvblhtbFsiX3VzYWdlIl0gICAgICAgID0gIkRvd25sb2FkaW5nIHRoZSBYRVBHIChYTUxUVikgZmlsZSB2aWEgYW4gSFRUUCByZXF1ZXN0IGlzIG9ubHkgcG9zc2libGUgd2l0aCBhdXRoZW50aWNhdGlvbi4iDQogIG1lbnVfYXV0aGVudGljYXRpb25YbWxbIm5hbWUiXSAgICAgICAgICA9ICJhdXRoZW50aWNhdGlvbi54bWwiOw0KICBtZW51X2F1dGhlbnRpY2F0aW9uWG1sWyJpZCJdICAgICAgICAgICAgPSAiYXV0aGVudGljYXRpb24ueG1sIjsNCiAgbWVudV9hdXRoZW50aWNhdGlvblhtbFsidmFsdWUiXSAgICAgICAgID0gbWVudV9hdXRoZW50aWNhdGlvblhtbFsibmFtZSJdOw0KICBtZW51X2F1dGhlbnRpY2F0aW9uWG1sWyJvbmNsaWNrIl0gICAgICAgPSAiamF2YXNjcmlwdDogdG9nZ2xlTWVudSh0aGlzKTsiOw0KICBtZW51X2F1dGhlbnRpY2F0aW9uWG1sWyJjbGFzcyJdICAgICAgICAgPSAibWVudS1ub3RBY3RpdmUiOw0KDQogIHZhciBtZW51X2F1dGhlbnRpY2F0aW9uQXBpID0gbmV3IE9iamVjdCgpOw0KICBtZW51X2F1dGhlbnRpY2F0aW9uQXBpWyJfZWxlbWVudCJdID0gIkxJIjsNCiAgbWVudV9hdXRoZW50aWNhdGlvbkFwaVsiX21lbnVUeXBlIl0gICAgID0gImNoZWNrYm94IjsNCiAgbWVudV9hdXRoZW50aWNhdGlvbkFwaVsiX2NvbmZpZ0tleSJdICAgID0gImF1dGhlbnRpY2F0aW9uLmFwaSI7DQogIG1lbnVfYXV0aGVudGljYXRpb25BcGlbIl9sYWJlbCJdICAgICAgICA9ICJBUEkgYXV0aGVudGljYXRpb24iOw0KICBtZW51X2F1dGhlbnRpY2F0aW9uQXBpWyJfaGVhZGxpbmUiXSAgICAgPSAiQVBJIGF1dGhlbnRpY2F0aW9uIjsNCiAgbWVudV9hdXRoZW50aWNhdGlvbkFwaVsiX3VzYWdlIl0gICAgICAgID0gIkFjY2VzcyB0byB0aGUgQVBJIGludGVyZmFjZSBpcyBvbmx5IHBvc3NpYmxlIHdpdGggYXV0aGVudGljYXRpb24uIg0KICBtZW51X2F1dGhlbnRpY2F0aW9uQXBpWyJuYW1lIl0gICAgICAgICAgPSAiYXV0aGVudGljYXRpb24uYXBpIjsNCiAgbWVudV9hdXRoZW50aWNhdGlvbkFwaVsiaWQiXSAgICAgICAgICAgID0gImF1dGhlbnRpY2F0aW9uLmFwaSI7DQogIG1lbnVfYXV0aGVudGljYXRpb25BcGlbInZhbHVlIl0gICAgICAgICA9IG1lbnVfYXV0aGVudGljYXRpb25BcGlbIm5hbWUiXTsNCiAgbWVudV9hdXRoZW50aWNhdGlvbkFwaVsib25jbGljayJdICAgICAgID0gImphdmFzY3JpcHQ6IHRvZ2dsZU1lbnUodGhpcyk7IjsNCiAgbWVudV9hdXRoZW50aWNhdGlvbkFwaVsiY2xhc3MiXSAgICAgICAgID0gIm1lbnUtbm90QWN0aXZlIjsNCiAgDQogIA0KICAvLyBNYWluIG1lbnUNCiAgbWVudVsxMF0gPSBtZW51X20zdTsNCg0KICBzd2l0Y2goY29uZmlnWyJlcGdTb3VyY2UiXSkgew0KICAgIGNhc2UgIlBNUyI6DQogICAgICBtZW51WzIwXSA9IG1lbnVfaWQ7DQogICAgICBicmVhazsNCiAgICANCiAgICBjYXNlICJYTUxUViI6DQogICAgICBtZW51WzQwXSA9IG1lbnVfeG1sdHY7DQogICAgICBicmVhazsNCg0KICAgIGNhc2UgIlhFUEciOg0KICAgICAgbWVudVs0MF0gPSBtZW51X3htbHR2Ow0KICAgICAgbWVudVs1MF0gPSBtZW51X21hcHBpbmc7DQogICAgICBicmVhazsNCiAgfQ0KICANCiAgbWVudVszMF0gPSBtZW51X2ZpbHRlcjsNCiAgDQogIGlmIChjb25maWdbImF1dGhlbnRpY2F0aW9uLndlYiJdID09IHRydWUpIHsNCiAgICBtZW51WzYwXSA9IG1lbnVfdXNlcnM7DQogIH0NCg0KICBtZW51WzcwXSA9IG1lbnVfc2V0dGluZ3M7DQogIG1lbnVbODBdID0gbWVudV9sb2c7DQogIGlmIChjb25maWdbImF1dGhlbnRpY2F0aW9uLndlYiJdID09IHRydWUpIHsNCiAgICBtZW51WzEwMF0gPSBtZW51X2xvZ291dDsNCiAgfSANCiAgDQoNCiAgLy8gU3ViLU1lbnUNCg0KICBzdWJNZW51WzcwMV0gPSBtZW51X3NjaGVkdWxlOw0KICBzdWJNZW51WzcwMl0gPSBtZW51X2ZpbGVzVXBkYXRlOw0KICBzdWJNZW51WzcwM10gPSBtZW51X3R1bmVyOw0KICBzdWJNZW51WzcwNF0gPSBtZW51X2VwZzsNCiAgc3ViTWVudVs3MDVdID0gbWVudV94ZXBnOw0KICBzdWJNZW51WzcwNl0gPSBtZW51X2F1dG9CYWNrdXBQYXRoOw0KICBzdWJNZW51WzcwN10gPSBtZW51X2F1dG9CYWNrdXBLZWVwOw0KICBzdWJNZW51WzcwOF0gPSBtZW51X2J1ZmZlcjsNCiAgDQogIHN1Yk1lbnVbNzEwXSA9IG1lbnVfYXV0aGVudGljYXRpb25XZWI7DQogIA0KICBpZiAoY29uZmlnWyJhdXRoZW50aWNhdGlvbi53ZWIiXSA9PSB0cnVlKSB7DQogICAgc3ViTWVudVs3MTFdID0gbWVudV9hdXRoZW50aWNhdGlvblBtczsNCiAgICBzdWJNZW51WzcxMl0gPSBtZW51X2F1dGhlbnRpY2F0aW9uTTN1Ow0KICAgIHN1Yk1lbnVbNzEzXSA9IG1lbnVfYXV0aGVudGljYXRpb25YbWw7DQogICAgc3ViTWVudVs3MTRdID0gbWVudV9hdXRoZW50aWNhdGlvbkFwaTsNCiAgfQ0KDQogIHN1Yk1lbnVbNzk5XSA9IG1lbnVfYXBpOw0KDQogIA0KDQogIHJldHVybg0KfQ0KDQpmdW5jdGlvbiBjcmVhdGVNZW51KCkgew0KDQogIHNob3dFbGVtZW50KCJwb3B1cCIsIGZhbHNlKTsNCg0KICAvL2NvbnNvbGUubG9nKGNvbmZpZyk7DQogIHNldE1lbnVJdGVtKCk7DQogIHZhciBtZW51SXRlbXMgPSBnZXRPYmpLZXlzKG1lbnUpDQogIHZhciBuYXYgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgiTkFWIilbMF07DQogIG5hdi5pbm5lckhUTUwgPSAiIjsNCiAgdmFyIG5ld0l0ZW0gPSBuZXcgT2JqZWN0KCk7DQoNCiAgZm9yICh2YXIgaSA9IDA7IGkgPCBtZW51SXRlbXMubGVuZ3RoOyBpKyspIHsNCg0KICAgIA0KICAgIHZhciBuZXdJdGVtID0gbWVudVttZW51SXRlbXNbaV1dOw0KICAgIG5ld0l0ZW1bImlkIl0gPSBtZW51SXRlbXNbaV07DQoNCiAgICANCiAgICBzd2l0Y2gobmV3SXRlbS5oYXNPd25Qcm9wZXJ0eSgiX2ljb24iKSkgew0KICAgICAgY2FzZSB0cnVlOiANCiAgICAgICAgdmFyIGl0ZW1UZXh0ID0gbmV3SXRlbVsiX3RleHQiXTsNCiAgICAgICAgZGVsZXRlIG5ld0l0ZW1bIl90ZXh0Il0NCiAgICAgICAgbmF2LmFwcGVuZENoaWxkKGNyZWF0ZUVsZW1lbnQobmV3SXRlbSkpOw0KICAgICAgICBuZXdJdGVtWyJfdGV4dCJdID0gaXRlbVRleHQ7DQogICAgICAgIHZhciBuZXdJY29uID0gbmV3IE9iamVjdCgpOw0KICAgICAgICBuZXdJY29uWyJfZWxlbWVudCJdID0gIklNRyI7DQogICAgICAgIG5ld0ljb25bInNyYyJdID0gbmV3SXRlbVsiX2ljb24iXTsNCg0KICAgICAgICB2YXIgY3VycmVudEVsZW1lbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChtZW51SXRlbXNbaV0pOw0KICAgICAgICBjdXJyZW50RWxlbWVudC5hcHBlbmRDaGlsZChjcmVhdGVFbGVtZW50KG5ld0ljb24pKTsNCg0KDQogICAgICAgIHZhciB0ZXh0ID0gbmV3IE9iamVjdCgpOw0KICAgICAgICB0ZXh0WyJfZWxlbWVudCJdID0gIlAiDQogICAgICAgIHRleHRbIl90ZXh0Il0gPSBpdGVtVGV4dDsNCiAgICAgICAgdGV4dFsiY2xhc3MiXSA9ICJuYXYtdGV4dCINCiAgICAgICAgY3VycmVudEVsZW1lbnQuYXBwZW5kQ2hpbGQoY3JlYXRlRWxlbWVudCh0ZXh0KSk7DQogICAgICAgIGJyZWFrOw0KDQogICAgICBkZWZhdWx0Og0KICAgICAgICBuYXYuYXBwZW5kQ2hpbGQoY3JlYXRlRWxlbWVudChuZXdJY29uKSk7DQogICAgICAgIGJyZWFrOw0KICAgIH0NCg0KICB9DQogIGlmIChhY3RpdmVNZW51ICE9IHVuZGVmaW5lZCkgew0KICAgIC8vY29uc29sZS5sb2coYWN0aXZlTWVudSk7DQogICAgdG9nZ2xlTWVudShhY3RpdmVNZW51KTsNCiAgfQ0KDQogIHJldHVybg0KfQ0KDQpmdW5jdGlvbiB0b2dnbGVNZW51KGVsbSkgew0KICAvL3Nob3dTdHJlYW1zKGZhbHNlKTsNCiAgY2xlYXJJbnRlcnZhbChsb2dJbnRlcnZhbCkNCiAgYWN0aXZlTWVudSA9IGVsbTsNCiAgdmFyIGl0ZW0gPSBtZW51W2VsbS5pZF0NCiAgdmFyIGRpdiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzZXR0aW5ncyIpOw0KICBkaXYuaW5uZXJIVE1MID0gIiI7DQogIA0KICAvLyBTZXQgSGVhZGxpbmUNCiAgdmFyIGhlYWRsaW5lID0gbmV3IE9iamVjdCgpOw0KICBoZWFkbGluZVsiX2VsZW1lbnQiXSA9ICJINCI7DQogIGhlYWRsaW5lWyJfdGV4dCJdID0gaXRlbVsiX2hlYWRsaW5lIl07DQogIGRpdi5hcHBlbmRDaGlsZChjcmVhdGVFbGVtZW50KGhlYWRsaW5lKSk7DQoNCiAgLy8gU3ViLU1lbnUNCiAgaWYgKGl0ZW0uaGFzT3duUHJvcGVydHkoIl9zdWJNZW51IikgPT0gdHJ1ZSkgew0KICAgIG9wZW5TdWJNZW51KGl0ZW0pOw0KICAgIHJldHVybg0KICB9DQoNCiAgLy8gTWFwcGluZywgVXNlcnMsIExvZywgRmlsZXMNCiAgc3dpdGNoKGl0ZW1bIl9jb25maWdLZXkiXSkgew0KICAgIGNhc2UgIm1hcHBpbmciOiAgICAgb3Blbk1hcHBpbmdFZGl0b3IoaXRlbSk7IHJldHVybjsgYnJlYWs7DQogICAgY2FzZSAidXNlcnMiOiAgICAgICBvcGVuVXNlcnMoaXRlbSk7IHJldHVybjsgYnJlYWs7DQogICAgY2FzZSAibG9nIjogICAgICAgICBzaG93TG9nKGl0ZW0pOyByZXR1cm47IGJyZWFrOw0KICAgIGNhc2UgImZpbGVzLm0zdSI6ICAgb3BlbkZpbGVzKGl0ZW0sICJtM3UiKTsgcmV0dXJuOyBicmVhazsNCiAgICBjYXNlICJmaWxlcy54bWx0diI6IG9wZW5GaWxlcyhpdGVtLCAieG1sdHYiKTsgcmV0dXJuOyBicmVhazsNCg0KICAgIGNhc2UgImZpbHRlciI6ICAgICAgc2hvd1N0cmVhbXModHJ1ZSk7IGJyZWFrOw0KICB9DQoNCiANCg0KICB2YXIgbmV3SFIgPSBuZXcgT2JqZWN0KCk7DQogIG5ld0hSWyJfZWxlbWVudCJdID0gIkhSIg0KICBkaXYuYXBwZW5kQ2hpbGQoY3JlYXRlRWxlbWVudChuZXdIUikpOw0KICANCiAgdmFyIG5ld0VudHJ5ID0gbmV3IE9iamVjdCgpOw0KICBuZXdFbnRyeVsiX2VsZW1lbnQiXSAgPSAiSU5QVVQiOw0KICBuZXdFbnRyeVsidHlwZSJdID0gImJ1dHRvbiI7DQogIC8vbmV3RW50cnlbImNsYXNzIl0gPSAic2F2ZSI7DQogIG5ld0VudHJ5WyJ2YWx1ZSJdID0gIlNhdmUiOw0KICBuZXdFbnRyeVsib25jbGljayJdID0gInNhdmVEYXRhMignc2V0dGluZ3MnKSINCiAgZGl2LmFwcGVuZENoaWxkKGNyZWF0ZUVsZW1lbnQobmV3RW50cnkpKTsNCg0KDQogIHZhciBuZXdXcmFwcGVyID0gbmV3IE9iamVjdCgpOw0KICBuZXdXcmFwcGVyWyJfZWxlbWVudCJdICA9ICJESVYiOw0KICBuZXdXcmFwcGVyWyJpZCJdICAgICAgICA9ICJib3gtd3JhcHBlciI7DQogIGRpdi5hcHBlbmRDaGlsZChjcmVhdGVFbGVtZW50KG5ld1dyYXBwZXIpKTsNCg0KICBkaXYgPSBkaXYubGFzdENoaWxkOw0KICANCiAgZGl2LmFwcGVuZENoaWxkKGNyZWF0ZU1lbnVJdGVtKGl0ZW0pKQ0KDQogIC8vIHVzYWdlIEluZm8gIA0KICBzd2l0Y2gobWVudVthY3RpdmVNZW51LmlkXS5oYXNPd25Qcm9wZXJ0eSgiX3VzYWdlIikpIHsNCiAgICBjYXNlIHRydWU6IA0KICAgICAgdmFyIHVzYWdlSXRlbSA9IG5ldyBPYmplY3QoKTsNCiAgICAgIHVzYWdlSXRlbVsiX2VsZW1lbnQiXSA9ICJQUkUiDQogICAgICB1c2FnZUl0ZW1bIl90ZXh0Il0gICAgPSBtZW51W2FjdGl2ZU1lbnUuaWRdWyJfdXNhZ2UiXTsNCiAgICAgIGRpdi5hcHBlbmRDaGlsZChjcmVhdGVFbGVtZW50KHVzYWdlSXRlbSkpOw0KICB9DQogIA0KICBjYWxjdWxhdGVXcmFwcGVySGVpZ2h0KCk7DQoNCn0NCg0KZnVuY3Rpb24gY3JlYXRlTWVudUl0ZW0oaXRlbSkgew0KICB2YXIgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIkRJViIpOw0KICBzd2l0Y2goaXRlbVsiX21lbnVUeXBlIl0pIHsNCiAgICBjYXNlICJpbnB1dEFycmF5IjoNCiAgICAgIGlmIChjb25maWcuaGFzT3duUHJvcGVydHkoaXRlbVsiX2NvbmZpZ0tleSJdKSA9PSB0cnVlKSB7DQogICAgICAgIHZhciB2YWx1ZSA9IGNvbmZpZ1tpdGVtWyJfY29uZmlnS2V5Il1dOw0KICAgICAgfSBlbHNlIHsNCiAgICAgICAgdmFyIHZhbHVlID0gbmV3IEFycmF5KCk7DQogICAgICB9DQogICAgICANCiAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdmFsdWUubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgdmFyIG5ld0VudHJ5ID0gbmV3IE9iamVjdCgpOw0KICAgICAgICBuZXdFbnRyeSA9IGl0ZW0NCiAgICAgICAgZGVsZXRlIG5ld0VudHJ5WyJvbmNsaWNrIl07DQogICAgICAgIG5ld0VudHJ5WyJfZWxlbWVudCJdICA9ICJJTlBVVCI7DQogICAgICAgIG5ld0VudHJ5WyJ2YWx1ZSJdICAgICA9IHZhbHVlW2ldOw0KICAgICAgICBuZXdFbnRyeVsidHlwZSJdICAgICAgPSAic2VhcmNoIjsNCiAgICAgICAgbmV3RW50cnlbImRhdGEtbWVudXR5cGUiXSA9IGl0ZW1bIl9tZW51VHlwZSJdOw0KICAgICAgICBuZXdFbnRyeVsiZGF0YS1tZW51a2V5Il0gPSBpdGVtWyJfY29uZmlnS2V5Il07DQogICAgICAgIGVsZW1lbnQuYXBwZW5kQ2hpbGQoY3JlYXRlRWxlbWVudChuZXdFbnRyeSkpOw0KDQogICAgICB9DQogICAgICAvLyBOZXcgZW50cnkgZm9yIGFycmF5DQogICAgICB2YXIgbmV3RW50cnkgPSBuZXcgT2JqZWN0KCk7DQogICAgICBuZXdFbnRyeVsiX2VsZW1lbnQiXSAgICAgID0gIklOUFVUIjsNCiAgICAgIG5ld0VudHJ5WyJ0eXBlIl0gICAgICAgICAgPSAic2VhcmNoIjsNCiAgICAgIG5ld0VudHJ5WyJuYW1lIl0gICAgICAgICAgPSBpdGVtWyJuYW1lIl07DQogICAgICBuZXdFbnRyeVsicGxhY2Vob2xkZXIiXSAgID0gaXRlbVsicGxhY2Vob2xkZXIiXTsNCiAgICAgIG5ld0VudHJ5WyJ2YWx1ZSJdICAgICAgICAgPSAiIjsNCiAgICAgIG5ld0VudHJ5WyJkYXRhLW1lbnV0eXBlIl0gPSBpdGVtWyJfbWVudVR5cGUiXTsNCiAgICAgIG5ld0VudHJ5WyJkYXRhLW1lbnVrZXkiXSAgPSBpdGVtWyJfY29uZmlnS2V5Il07DQogICAgICBlbGVtZW50LmFwcGVuZENoaWxkKGNyZWF0ZUVsZW1lbnQobmV3RW50cnkpKTsNCiAgICAgIGJyZWFrOw0KICANCiAgICBjYXNlICJzaW5nbGVJbnB1dCI6DQogICAgICB2YXIgdmFsdWUgPSBjb25maWdbaXRlbVsiX2NvbmZpZ0tleSJdXTsNCiAgICAgIGlmICh2YWx1ZSA9PSB1bmRlZmluZWQpIHsNCiAgICAgICAgdmFsdWUgPSAiIjsNCiAgICAgIH0NCiAgICAgIHZhciBuZXdFbnRyeSA9IG5ldyBPYmplY3QoKTsNCiAgICAgIG5ld0VudHJ5ID0gaXRlbTsNCiAgICAgIGRlbGV0ZSBuZXdFbnRyeVsib25jbGljayJdOw0KICAgICAgbmV3RW50cnlbIl9lbGVtZW50Il0gID0gIklOUFVUIjsNCiAgICAgIG5ld0VudHJ5WyJ2YWx1ZSJdICAgICA9IHZhbHVlOw0KICAgICAgbmV3RW50cnlbInR5cGUiXSAgICAgID0gInNlYXJjaCI7DQogICAgICBuZXdFbnRyeVsiZGF0YS1tZW51dHlwZSJdID0gaXRlbVsiX21lbnVUeXBlIl07DQogICAgICBuZXdFbnRyeVsiZGF0YS1tZW51a2V5Il0gPSBpdGVtWyJfY29uZmlnS2V5Il07DQogICAgICBlbGVtZW50LmFwcGVuZENoaWxkKGNyZWF0ZUVsZW1lbnQobmV3RW50cnkpKTsNCiAgICAgIGJyZWFrOw0KDQogICAgY2FzZSAiY2hlY2tib3giOg0KICAgICAgdmFyIHZhbHVlID0gY29uZmlnW2l0ZW1bIl9jb25maWdLZXkiXV07DQogICAgICBpZiAodmFsdWUgPT0gdW5kZWZpbmVkKSB7DQogICAgICAgIHZhbHVlID0gZmFsc2U7DQogICAgICB9DQogICAgICB2YXIgbmV3RW50cnkgPSBuZXcgT2JqZWN0KCk7DQogICAgICBuZXdFbnRyeSA9IGl0ZW07DQogICAgICBkZWxldGUgbmV3RW50cnlbIm9uY2xpY2siXTsNCiAgICAgIG5ld0VudHJ5WyJfZWxlbWVudCJdICA9ICJJTlBVVCI7DQogICAgICBuZXdFbnRyeVsidmFsdWUiXSAgICAgPSB2YWx1ZTsNCiAgICAgIG5ld0VudHJ5WyJ0eXBlIl0gICAgICA9ICJjaGVja2JveCI7DQogICAgICBuZXdFbnRyeVsiZGF0YS1tZW51dHlwZSJdID0gaXRlbVsiX21lbnVUeXBlIl07DQogICAgICBuZXdFbnRyeVsiZGF0YS1tZW51a2V5Il0gPSBpdGVtWyJfY29uZmlnS2V5Il07DQogICAgICBlbGVtZW50LmFwcGVuZENoaWxkKGNyZWF0ZUVsZW1lbnQobmV3RW50cnkpKTsNCiAgICAgIGVsZW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIklOUFVUIilbMF0uY2hlY2tlZCA9IHZhbHVlOw0KICAgICAgYnJlYWs7DQogICAgDQogICAgY2FzZSAic2VsZWN0IjoNCiAgICAgIHZhciB2YWx1ZSA9IGNvbmZpZ1tpdGVtWyJfY29uZmlnS2V5Il1dOw0KICAgICAgdmFyIG5ld0VudHJ5ID0gbmV3IE9iamVjdCgpOw0KICAgICAgbmV3RW50cnkgPSBpdGVtOw0KICAgICAgZGVsZXRlIG5ld0VudHJ5WyJvbmNsaWNrIl0NCiAgICAgIG5ld0VudHJ5WyJfZWxlbWVudCJdICA9ICJTRUxFQ1QiOw0KICAgICAgZWxlbWVudC5hcHBlbmRDaGlsZChjcmVhdGVFbGVtZW50KG5ld0VudHJ5KSk7DQogICAgICB2YXIgc2VsZWN0RWxlbWVudCA9IGVsZW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlNFTEVDVCIpWzBdOw0KICAgICAgdmFyIHZhbHVlcyA9IGl0ZW1bIl9vcHRpb25WYWx1ZXMiXTsNCiAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdmFsdWVzLmxlbmd0aDsgaSsrKSB7DQogICAgICAgIHZhciBuZXdFbnRyeSA9IG5ldyBPYmplY3Q7DQogICAgICAgIG5ld0VudHJ5WyJfZWxlbWVudCJdICA9ICJPUFRJT04iOw0KICAgICAgICBuZXdFbnRyeVsiX3RleHQiXSAgICAgPSBpdGVtWyJfdGV4dCJdICsgIjogIiArIHZhbHVlc1tpXTsNCiAgICAgICAgbmV3RW50cnlbInZhbHVlIl0gICAgID0gdmFsdWVzW2ldOw0KICAgICAgICBzZWxlY3RFbGVtZW50LmFwcGVuZENoaWxkKGNyZWF0ZUVsZW1lbnQobmV3RW50cnkpKTsNCiAgICAgIH0NCiAgICAgIHNlbGVjdEVsZW1lbnQudmFsdWUgPSB2YWx1ZTsNCiAgICAgIGJyZWFrOw0KICAgIA0KICB9DQogIHJldHVybiBlbGVtZW50Ow0KfQ0KDQpmdW5jdGlvbiBvcGVuU3ViTWVudShpdGVtKSB7DQogIHZhciBlbnRyeXMgPSBpdGVtWyJfc3ViTWVudSJdLnNwbGl0KCIsIik7DQogIHZhciBkaXYgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic2V0dGluZ3MiKTsNCg0KICB2YXIgbmV3SFIgPSBuZXcgT2JqZWN0KCk7DQogIG5ld0hSWyJfZWxlbWVudCJdID0gIkhSIg0KICBkaXYuYXBwZW5kQ2hpbGQoY3JlYXRlRWxlbWVudChuZXdIUikpOw0KICANCiAgdmFyIG5ld0VudHJ5ID0gbmV3IE9iamVjdCgpOw0KICBuZXdFbnRyeVsiX2VsZW1lbnQiXSAgPSAiSU5QVVQiOw0KICBuZXdFbnRyeVsidHlwZSJdID0gImJ1dHRvbiI7DQogIC8vbmV3RW50cnlbImNsYXNzIl0gPSAic2F2ZSI7DQogIG5ld0VudHJ5WyJ2YWx1ZSJdID0gIlNhdmUiOw0KICBuZXdFbnRyeVsib25jbGljayJdID0gInNhdmVEYXRhMignc2V0dGluZ3MnKSINCiAgZGl2LmFwcGVuZENoaWxkKGNyZWF0ZUVsZW1lbnQobmV3RW50cnkpKTsNCg0KICBpZiAoaXRlbVsiX2NvbmZpZ0tleSJdID09ICJzZXR0aW5ncyIpIHsNCiAgICB2YXIgbmV3RW50cnkgPSBuZXcgT2JqZWN0KCk7DQogICAgbmV3RW50cnlbIl9lbGVtZW50Il0gID0gIklOUFVUIjsNCiAgICBuZXdFbnRyeVsidHlwZSJdID0gImJ1dHRvbiI7DQogICAgLy9uZXdFbnRyeVsiY2xhc3MiXSA9ICJzYXZlIjsNCiAgICBuZXdFbnRyeVsidmFsdWUiXSA9ICJCYWNrdXAiOw0KICAgIG5ld0VudHJ5WyJvbmNsaWNrIl0gPSAieHRldmVCYWNrdXAoKSINCiAgICBkaXYuYXBwZW5kQ2hpbGQoY3JlYXRlRWxlbWVudChuZXdFbnRyeSkpOw0KICB9DQoNCiAgaWYgKGl0ZW1bIl9jb25maWdLZXkiXSA9PSAic2V0dGluZ3MiKSB7DQogICAgdmFyIG5ld0VudHJ5ID0gbmV3IE9iamVjdCgpOw0KICAgIG5ld0VudHJ5WyJfZWxlbWVudCJdICA9ICJJTlBVVCI7DQogICAgbmV3RW50cnlbInR5cGUiXSA9ICJidXR0b24iOw0KICAgIC8vbmV3RW50cnlbImNsYXNzIl0gPSAic2F2ZSI7DQogICAgbmV3RW50cnlbInZhbHVlIl0gPSAiUmVzdG9yZSI7DQogICAgbmV3RW50cnlbIm9uY2xpY2siXSA9ICJ4dGV2ZVJlc3RvcmUodGhpcykiDQogICAgZGl2LmFwcGVuZENoaWxkKGNyZWF0ZUVsZW1lbnQobmV3RW50cnkpKTsNCiAgfQ0KDQoNCiAgdmFyIG5ld1dyYXBwZXIgPSBuZXcgT2JqZWN0KCk7DQogIG5ld1dyYXBwZXJbIl9lbGVtZW50Il0gID0gIkRJViI7DQogIG5ld1dyYXBwZXJbImlkIl0gICAgICAgID0gImJveC13cmFwcGVyIjsNCiAgZGl2LmFwcGVuZENoaWxkKGNyZWF0ZUVsZW1lbnQobmV3V3JhcHBlcikpOw0KICANCiAgZGl2ID0gZGl2Lmxhc3RDaGlsZDsNCiAgDQoNCiAgZm9yICh2YXIgaSA9IDA7IGkgPCBlbnRyeXMubGVuZ3RoOyBpKyspIHsNCiAgICB2YXIgaXRlbSA9IHN1Yk1lbnVbZW50cnlzW2ldXTsNCiAgICBpZiAoaXRlbSA9PSB1bmRlZmluZWQpIHsNCiAgICAgIGJyZWFrOw0KICAgIH0NCiAgICANCiAgICB2YXIgY29udGFpbmVyID0gbmV3IE9iamVjdCgpOw0KICAgIGNvbnRhaW5lclsiX2VsZW1lbnQiXSA9ICJESVYiOw0KICAgIGRpdi5hcHBlbmRDaGlsZChjcmVhdGVFbGVtZW50KGNvbnRhaW5lcikpOw0KDQogICAgdmFyIGRpdkNvbnRhaW5lciA9IGRpdi5sYXN0Q2hpbGQ7DQogICAgDQogICAgdmFyIGhlYWRsaW5lID0gbmV3IE9iamVjdCgpOw0KICAgIGhlYWRsaW5lWyJfZWxlbWVudCJdID0gIkg1IjsNCiAgICBoZWFkbGluZVsiX3RleHQiXSA9IGl0ZW1bIl9oZWFkbGluZSJdOw0KICAgIGRpdkNvbnRhaW5lci5hcHBlbmRDaGlsZChjcmVhdGVFbGVtZW50KGhlYWRsaW5lKSk7DQoNCiAgICBkaXZDb250YWluZXIuYXBwZW5kQ2hpbGQoY3JlYXRlTWVudUl0ZW0oaXRlbSkpDQoNCiAgICBzd2l0Y2goaXRlbS5oYXNPd25Qcm9wZXJ0eSgiX3VzYWdlIikpIHsNCiAgICAgIGNhc2UgdHJ1ZTogDQogICAgICAgIHZhciB1c2FnZUl0ZW0gPSBuZXcgT2JqZWN0KCk7DQogICAgICAgIHVzYWdlSXRlbVsiX2VsZW1lbnQiXSA9ICJQUkUiDQogICAgICAgIHVzYWdlSXRlbVsiX3RleHQiXSAgICA9IGl0ZW1bIl91c2FnZSJdOw0KICAgICAgICBkaXZDb250YWluZXIuYXBwZW5kQ2hpbGQoY3JlYXRlRWxlbWVudCh1c2FnZUl0ZW0pKTsNCiAgICB9DQoNCiAgICB2YXIgaHIgPSBuZXcgT2JqZWN0KCk7DQogICAgaHJbIl9lbGVtZW50Il0gPSAiSFIiOw0KICAgIGRpdkNvbnRhaW5lci5hcHBlbmRDaGlsZChjcmVhdGVFbGVtZW50KGhyKSk7DQogIA0KICB9DQoNCiAgY2FsY3VsYXRlV3JhcHBlckhlaWdodCgpOw0KICByZXR1cm4NCn0NCg0KZnVuY3Rpb24gc2F2ZURhdGEyKGVsbSkgew0KICB2YXIgZGl2ICAgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChlbG0pOw0KICB2YXIgaW5wdXRzID0gZGl2LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJJTlBVVCIpOw0KICB2YXIgc2VsZWN0cyA9IGRpdi5nZXRFbGVtZW50c0J5VGFnTmFtZSgiU0VMRUNUIik7DQogIHZhciB2YWx1ZSwgY29uZmlnS2V5Ow0KICB2YXIgZGF0YSA9IG5ldyBPYmplY3QoKTsNCiAgdmFyIHZhbHVlQXJyID0gbmV3IEFycmF5KCk7DQogIHZhciBuZXdEYXRhID0gZmFsc2U7DQogIA0KICBmb3IgKHZhciBpID0gMDsgaSA8IGlucHV0cy5sZW5ndGg7IGkrKykgew0KICAgIGlmIChpbnB1dHNbaV0udHlwZSAhPSAiYnV0dG9uIikgew0KICAgICAgdmFyIG1lbnVUeXBlID0gaW5wdXRzW2ldLmdldEF0dHJpYnV0ZSgiZGF0YS1tZW51dHlwZSIpOw0KICAgICAgDQogICAgICAvL2NvbnNvbGUubG9nKG1lbnVUeXBlKTsNCiAgICAgIHN3aXRjaChtZW51VHlwZSkgew0KICAgICAgICBjYXNlICJzaW5nbGVJbnB1dCI6DQogICAgICAgICAgdmFsdWUgPSBpbnB1dHNbaV0udmFsdWU7DQogICAgICAgICAgaWYgKHZhbHVlID09ICIiIHx8IHZhbHVlID09IHVuZGVmaW5lZCkgew0KICAgICAgICAgICAgZGF0YSA9IG5ldyBPYmplY3QoKTsNCiAgICAgICAgICAgIGRhdGFbImRlbGV0ZSJdID0gaW5wdXRzW2ldLm5hbWUNCiAgICAgICAgICAgIG5ld0RhdGEgPSB0cnVlOw0KICAgICAgICAgIH0gZWxzZSB7DQogICAgICAgICAgICBuZXdEYXRhID0gdHJ1ZTsNCiAgICAgICAgICAgIGRhdGFbaW5wdXRzW2ldLm5hbWVdID0gdmFsdWU7DQogICAgICAgICAgICBjb25zb2xlLmxvZyhkYXRhKTsNCiAgICAgICAgICB9DQogICAgICAgICAgYnJlYWs7DQogICAgICAgIGNhc2UgImlucHV0QXJyYXkiOiANCiAgICAgICAgICB2YWx1ZSA9IGlucHV0c1tpXS52YWx1ZTsNCiAgICAgICAgICBpZiAodmFsdWUgIT0gIiIgJiYgdmFsdWUgIT0gdW5kZWZpbmVkKSB7DQogICAgICAgICAgICBuZXdEYXRhID0gdHJ1ZTsNCiAgICAgICAgICAgIHZhbHVlQXJyLnB1c2godmFsdWUpDQogICAgICAgICAgICBkYXRhW2lucHV0c1tpXS5uYW1lXSA9IHZhbHVlQXJyOw0KICAgICAgICAgICAgY29uZmlnS2V5ID0gaW5wdXRzW2ldLm5hbWU7DQogICAgICAgICAgfSANCiAgICAgICAgICANCiAgICAgICAgICBicmVhazsNCg0KICAgICAgICBjYXNlICJjaGVja2JveCI6DQogICAgICAgICAgdmFsdWUgPSBpbnB1dHNbaV0uY2hlY2tlZA0KICAgICAgICAgIGRhdGFbaW5wdXRzW2ldLm5hbWVdID0gdmFsdWU7DQogICAgICB9DQogICAgICANCiAgICB9DQogICAgDQogIH0NCg0KDQogIC8vIERlbGV0ZSBjb25maWcga2V5DQogIGlmICh2YWx1ZUFyci5sZW5ndGggPT0gMCAmJiBuZXdEYXRhID09IGZhbHNlKSB7DQogICAgbmV3RGF0YSA9IHRydWU7DQogICAgZGF0YSA9IG5ldyBPYmplY3QoKTsNCiAgICBkYXRhWyJkZWxldGUiXSA9IGNvbmZpZ0tleTsNCiAgfSANCg0KDQogIGZvciAodmFyIGkgPSAwOyBpIDwgc2VsZWN0cy5sZW5ndGg7IGkrKykgew0KICAgIHZhciB2YWx1ZSA9IHNlbGVjdHNbaV0ub3B0aW9uc1tzZWxlY3RzW2ldLnNlbGVjdGVkSW5kZXhdLnZhbHVlOw0KICAgIHN3aXRjaChpc05hTih2YWx1ZSkpIHsNCiAgICAgIGNhc2UgZmFsc2U6IHZhbHVlID0gcGFyc2VJbnQodmFsdWUpOyBicmVhazsNCiAgICB9DQoNCiAgICBkYXRhW3NlbGVjdHNbaV0ubmFtZV0gPSB2YWx1ZTsNCiAgICBuZXdEYXRhID0gdHJ1ZTsNCiAgfQ0KDQogIC8vY29uc29sZS5sb2coZGF0YSwgbmV3RGF0YSk7DQoNCiAgaWYgKG5ld0RhdGEgPT0gdHJ1ZSkgew0KICAgIGRhdGFbImNtZCJdID0gInNhdmVDb25maWciOw0KICAgIGlmICghZGF0YS5oYXNPd25Qcm9wZXJ0eSgnZmlsdGVyJykpIHsNCiAgICAgIGRhdGFbImZpbHRlciJdID0gY29uZmlnWyJmaWx0ZXIiXQ0KICAgIH0NCiAgICB2YXIgc2V0dGluZ3MgPSBuZXcgT2JqZWN0KCk7DQogICAgc2V0dGluZ3NbImNtZCJdID0gZGF0YVsiY21kIl07DQogICAgc2V0dGluZ3NbInNldHRpbmdzIl0gPSBkYXRhOw0KICAgIGNvbnNvbGUubG9nKHNldHRpbmdzKTsNCiAgICB4VGVWZShzZXR0aW5ncyk7DQogIH0NCn0NCg==" + webUI["html/js/users.js"] = "ZnVuY3Rpb24gb3BlblVzZXJzKGVsbSkgew0KICBjb2xvbW5Tb3J0ID0gMDsNCg0KICB2YXIgbmV3RGl2ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNldHRpbmdzIik7DQogIA0KICB2YXIgbmV3RW50cnkgPSBuZXcgT2JqZWN0KCk7DQogIG5ld0VudHJ5WyJfZWxlbWVudCJdICA9ICJIUiI7DQogIG5ld0Rpdi5hcHBlbmRDaGlsZChjcmVhdGVFbGVtZW50KG5ld0VudHJ5KSk7DQoNCiAgdmFyIG5ld0VudHJ5ID0gbmV3IE9iamVjdCgpOw0KICBuZXdFbnRyeVsiX2VsZW1lbnQiXSAgPSAiSU5QVVQiOw0KICBuZXdFbnRyeVsidHlwZSJdID0gImJ1dHRvbiI7DQogIG5ld0VudHJ5WyJjbGFzcyJdID0gImJ1dHRvbiI7DQogIG5ld0VudHJ5WyJ2YWx1ZSJdID0gIk5ldyI7DQogIG5ld0VudHJ5WyJvbmNsaWNrIl0gPSAidXNlckRldGFpbCgwKSI7DQogIG5ld0Rpdi5hcHBlbmRDaGlsZChjcmVhdGVFbGVtZW50KG5ld0VudHJ5KSk7DQoNCiAgdmFyIGRpdiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzZXR0aW5ncyIpOw0KDQogICAvLyBCdWlsZCB0YWJsZQ0KICB2YXIgbmV3VGFibGUgPSBuZXcgT2JqZWN0KCk7DQogIG5ld1RhYmxlWyJfZWxlbWVudCJdICA9ICJUQUJMRSI7DQogIG5ld1RhYmxlWyJpZCJdICAgICAgICA9ICJpZF9tYXBwaW5nIjsNCiAgbmV3VGFibGVbImNsYXNzIl0gICAgID0gInRhYmxlLW1hcHBpbmciOw0KICBkaXYuYXBwZW5kQ2hpbGQoY3JlYXRlRWxlbWVudChuZXdUYWJsZSkpOw0KDQogIHNldFRpbWVvdXQoZnVuY3Rpb24oKXsgDQogICAgY3JlYXRlVXNlcnNUYWJsZSgpOyANCiAgfSwgMTApOw0KfQ0KDQpmdW5jdGlvbiBjcmVhdGVVc2Vyc1RhYmxlKCkgew0KICB2YXIgdGFibGUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiaWRfbWFwcGluZyIpOw0KICB0YWJsZS5pbm5lckhUTUwgPSAiIjsNCiAgdmFyIG5ld1RSID0gbmV3IE9iamVjdCgpOw0KICBuZXdUUlsiX2VsZW1lbnQiXSA9ICJUUiI7DQogIG5ld1RSWyJjbGFzcyJdICAgID0gInRhYmxlLW1hcHBpbmctaGVhZGVyIjsNCiAgdGFibGUuYXBwZW5kQ2hpbGQoY3JlYXRlRWxlbWVudChuZXdUUikpOw0KDQogIHZhciB0ciA9IHRhYmxlLmxhc3RDaGlsZDsNCiAgdmFyIHRySGVhZGxpbmVzID0gbmV3IEFycmF5KCJVc2VybmFtZSIsICJQYXNzd29yZCIsICJXRUIiLCAiUE1TIiwgIk0zVSIsICJYTUwiLCAiQVBJIikNCg0KICBmb3IgKHZhciBpID0gMDsgaSA8IHRySGVhZGxpbmVzLmxlbmd0aDsgaSsrKSB7DQogICAgdmFyIG5ld1REID0gbmV3IE9iamVjdCgpOw0KICAgIG5ld1REWyJfZWxlbWVudCJdID0gIlREIjsNCiAgICBuZXdURFsiX3RleHQiXSAgICA9IHRySGVhZGxpbmVzW2ldOw0KICAgIHRyLmFwcGVuZENoaWxkKGNyZWF0ZUVsZW1lbnQobmV3VEQpKTsNCiAgfQ0KDQoNCiAgLy8gU29ydCB1c2Vycw0KICB2YXIgdXNlcklkcyA9IGdldE9iaktleXModXNlcnMpOw0KDQogIHZhciB1c2VyT2JqID0gbmV3IE9iamVjdCgpOw0KDQogIGZvciAodmFyIGkgPSAwOyBpIDwgdXNlcklkcy5sZW5ndGg7IGkrKykgew0KICAgIHZhciB1c2VybmFtZSA9IHVzZXJzW3VzZXJJZHNbaV1dWyJkYXRhIl1bInVzZXJuYW1lIl07DQogICAgdXNlck9ialt1c2VybmFtZV0gPSB1c2VySWRzW2ldOw0KICB9DQoNCiAgdmFyIGFsbFVzZXJzID0gZ2V0T2JqS2V5cyh1c2VyT2JqKTsNCiAgYWxsVXNlcnMuc29ydCgpOw0KICAvLyAtLQ0KDQogIGZvciAodmFyIGkgPSAwOyBpIDwgYWxsVXNlcnMubGVuZ3RoOyBpKyspIHsNCiAgICB2YXIgdGFibGUgICAgID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImlkX21hcHBpbmciKTsNCiAgICB2YXIgdXNlcklEICAgID0gdXNlck9ialthbGxVc2Vyc1tpXV07DQogICAgdmFyIHVzZXJuYW1lICA9IGFsbFVzZXJzW2ldOw0KICAgIHZhciBpdGVtICAgICAgPSB1c2Vyc1t1c2VySURdWyJkYXRhIl07DQoNCiAgICAvLyBDcmVhdGUgVFINCiAgICB2YXIgbmV3VFIgPSBuZXcgT2JqZWN0KCk7DQogICAgbmV3VFJbIl9lbGVtZW50Il0gICAgICAgPSAiVFIiOw0KICAgIG5ld1RSWyJjbGFzcyJdICAgICAgICAgID0gIiI7DQogICAgbmV3VFJbImlkIl0gICAgICAgICAgICAgPSB1c2VySUQ7DQogICAgbmV3VFJbIm9uY2xpY2siXSAgICAgICAgPSAnamF2YXNjcmlwdDogdXNlckRldGFpbCgiJyArIHVzZXJJRCArICciKTsnOw0KICAgIHRhYmxlLmFwcGVuZENoaWxkKGNyZWF0ZUVsZW1lbnQobmV3VFIpKTsNCg0KICAgIHZhciB0ciA9IHRhYmxlLmxhc3RDaGlsZDsNCg0KICAgIC8vIENyZWF0ZSB1c2VybmFtZSBURA0KICAgIHZhciBuZXdURCA9IG5ldyBPYmplY3QoKTsNCiAgICBuZXdURFsiX2VsZW1lbnQiXSA9ICJQIjsNCiAgICBuZXdURFsiX3RleHQiXSAgICA9IHVzZXJuYW1lOw0KICAgIGNyZWF0ZU5ld1REKG5ld1RELCB0cik7DQoNCiAgICAvLyBDcmVhdGUgcGFzc3dvcmQgVEQNCiAgICB2YXIgbmV3VEQgPSBuZXcgT2JqZWN0KCk7DQogICAgbmV3VERbIl9lbGVtZW50Il0gPSAiUCI7DQogICAgbmV3VERbIl90ZXh0Il0gICAgPSAiLi4uLi4iOw0KICAgIGNyZWF0ZU5ld1REKG5ld1RELCB0cik7DQoNCiAgICAvLyBDcmVhdGUgd2ViIGFjY2Vzcw0KICAgIHZhciBuZXdURCA9IG5ldyBPYmplY3QoKTsNCiAgICBuZXdURFsiX2VsZW1lbnQiXSA9ICJQIjsNCiAgICBzd2l0Y2goaXRlbVsiYXV0aGVudGljYXRpb24ud2ViIl0pew0KICAgICAgY2FzZSB0cnVlOiBuZXdURFsiX3RleHQiXSAgICA9ICLinJMiOyBicmVhazsNCiAgICAgIGRlZmF1bHQ6ICAgbmV3VERbIl90ZXh0Il0gICAgPSAiLSI7IGJyZWFrOw0KICAgIH0NCiAgICBjcmVhdGVOZXdURChuZXdURCwgdHIpOw0KDQogICAgLy8gQ3JlYXRlIFBNUyBhY2Nlc3MNCiAgICB2YXIgbmV3VEQgPSBuZXcgT2JqZWN0KCk7DQogICAgbmV3VERbIl9lbGVtZW50Il0gPSAiUCI7DQogICAgc3dpdGNoKGl0ZW1bImF1dGhlbnRpY2F0aW9uLnBtcyJdKXsNCiAgICAgIGNhc2UgdHJ1ZTogbmV3VERbIl90ZXh0Il0gICAgPSAi4pyTIjsgYnJlYWs7DQogICAgICBkZWZhdWx0OiAgIG5ld1REWyJfdGV4dCJdICAgID0gIi0iOyBicmVhazsNCiAgICB9DQogICAgY3JlYXRlTmV3VEQobmV3VEQsIHRyKTsNCg0KICAgIC8vIENyZWF0ZSBNM1UgYWNjZXNzDQogICAgdmFyIG5ld1REID0gbmV3IE9iamVjdCgpOw0KICAgIG5ld1REWyJfZWxlbWVudCJdID0gIlAiOw0KICAgIHN3aXRjaChpdGVtWyJhdXRoZW50aWNhdGlvbi5tM3UiXSl7DQogICAgICBjYXNlIHRydWU6IG5ld1REWyJfdGV4dCJdICAgID0gIuKckyI7IGJyZWFrOw0KICAgICAgZGVmYXVsdDogICBuZXdURFsiX3RleHQiXSAgICA9ICItIjsgYnJlYWs7DQogICAgfQ0KICAgIGNyZWF0ZU5ld1REKG5ld1RELCB0cik7DQoNCiAgICAvLyBDcmVhdGUgWE1MVFYgYWNjZXNzDQogICAgdmFyIG5ld1REID0gbmV3IE9iamVjdCgpOw0KICAgIG5ld1REWyJfZWxlbWVudCJdID0gIlAiOw0KICAgIHN3aXRjaChpdGVtWyJhdXRoZW50aWNhdGlvbi54bWwiXSl7DQogICAgICBjYXNlIHRydWU6IG5ld1REWyJfdGV4dCJdICAgID0gIuKckyI7IGJyZWFrOw0KICAgICAgZGVmYXVsdDogICBuZXdURFsiX3RleHQiXSAgICA9ICItIjsgYnJlYWs7DQogICAgfQ0KICAgIGNyZWF0ZU5ld1REKG5ld1RELCB0cik7DQoNCiAgICAvLyBDcmVhdGUgQVBJIGFjY2Vzcw0KICAgIHZhciBuZXdURCA9IG5ldyBPYmplY3QoKTsNCiAgICBuZXdURFsiX2VsZW1lbnQiXSA9ICJQIjsNCg0KICAgIHN3aXRjaChpdGVtWyJhdXRoZW50aWNhdGlvbi5hcGkiXSl7DQogICAgICBjYXNlIHRydWU6IG5ld1REWyJfdGV4dCJdICAgID0gIuKckyI7IGJyZWFrOw0KICAgICAgZGVmYXVsdDogICBuZXdURFsiX3RleHQiXSAgICA9ICItIjsgYnJlYWs7DQogICAgfQ0KICAgIGNyZWF0ZU5ld1REKG5ld1RELCB0cik7DQoNCiAgfQ0KDQogIC8vIHVzYWdlIEluZm8gIA0KICB2YXIgZGl2ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNldHRpbmdzIik7DQogIHN3aXRjaChtZW51W2FjdGl2ZU1lbnUuaWRdLmhhc093blByb3BlcnR5KCJfdXNhZ2UiKSkgew0KICAgIGNhc2UgdHJ1ZTogDQogICAgICB2YXIgdXNhZ2VJdGVtID0gbmV3IE9iamVjdCgpOw0KICAgICAgdXNhZ2VJdGVtWyJfZWxlbWVudCJdID0gIlBSRSINCiAgICAgIHVzYWdlSXRlbVsiX3RleHQiXSAgICA9IG1lbnVbYWN0aXZlTWVudS5pZF1bIl91c2FnZSJdOw0KDQogICAgICB2YXIgbmV3SFIgPSBuZXcgT2JqZWN0KCk7DQogICAgICBuZXdIUlsiX2VsZW1lbnQiXSA9ICJIUiINCiAgICAgIGRpdi5hcHBlbmRDaGlsZChjcmVhdGVFbGVtZW50KG5ld0hSKSk7DQogICAgICBkaXYuYXBwZW5kQ2hpbGQoY3JlYXRlRWxlbWVudCh1c2FnZUl0ZW0pKTsNCiAgfQ0KDQogIHNvcnRUYWJsZSgwKTsNCn0NCg0KZnVuY3Rpb24gdXNlckRldGFpbCh1c2VySUQpIHsNCiAgc2hvd1BvcFVwRWxlbWVudCgndXNlci1kZXRhaWwnKTsNCiAgc2V0VGltZW91dChmdW5jdGlvbigpeyANCiAgICBzaG93RWxlbWVudCgicG9wdXAiLCB0cnVlKTsNCiAgfSwgMTApOw0KICB2YXIgZGVmYXVsdFVzZXI7DQoNCiAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNhdmVVc2VyRGV0YWlsIikuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IHNhdmVVc2VyRGV0YWlsKCInICsgdXNlcklEICsgJyIsIGZhbHNlKScpOw0KICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZGVsZXRlVXNlckRldGFpbCIpLnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBzYXZlVXNlckRldGFpbCgiJyArIHVzZXJJRCArICciLCB0cnVlKScpOw0KDQogIHZhciBkYXRhID0gbmV3IE9iamVjdCgpOw0KICANCiAgc3dpdGNoKHVzZXJJRCkgew0KICAgIGNhc2UgMDogICAvLyBOZXcgVXNlcg0KICAgICAgZGF0YVsidXNlcm5hbWUiXSA9ICIiOw0KICAgICAgZGF0YVsiYXV0aGVudGljYXRpb24ud2ViIl0gPSBmYWxzZTsNCiAgICAgIGRhdGFbImF1dGhlbnRpY2F0aW9uLnBtcyJdID0gdHJ1ZTsNCiAgICAgIGRhdGFbImF1dGhlbnRpY2F0aW9uLnhtbCJdID0gdHJ1ZTsNCiAgICAgIGRhdGFbImF1dGhlbnRpY2F0aW9uLm0zdSJdID0gZmFsc2U7DQogICAgICBkYXRhWyJhdXRoZW50aWNhdGlvbi5hcGkiXSA9IGZhbHNlOw0KICAgICAgZGF0YVsiZGVmYXVsdFVzZXIiXSAgICAgICAgPSBmYWxzZTsNCiAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKXsgDQogICAgICAgIHNob3dFbGVtZW50KCJkZWxldGVVc2VyRGV0YWlsIiwgZmFsc2UpDQogICAgICB9LCAxKTsNCg0KICAgICAgYnJlYWs7IA0KICAgIA0KICAgIGRlZmF1bHQ6IA0KICAgICAgZGF0YSA9IHVzZXJzW3VzZXJJRF1bImRhdGEiXTsgDQogICAgICBzaG93RWxlbWVudCgiZGVsZXRlVXNlckRldGFpbCIsIHRydWUpICAgDQogICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZGVsZXRlVXNlckRldGFpbCIpLmNsYXNzTmFtZSA9ICJkZWxldGUiOw0KICAgDQogICAgICBicmVhaw0KICB9DQogIA0KDQogIHZhciB1c2VybmFtZSA9IGRhdGFbInVzZXJuYW1lIl07DQogIGRhdGFbInBhc3N3b3JkIl0gPSAiIjsNCiAgZGF0YVsiY29uZmlybSJdID0gIiI7DQoNCiAgdmFyIGtleXMgPSBnZXRPYmpLZXlzKGRhdGEpOw0KICBkZWZhdWx0VXNlciA9IGRhdGFbImRlZmF1bHRVc2VyIl07DQogIGlmIChkYXRhLmhhc093blByb3BlcnR5KCJkZWZhdWx0VXNlciIpKSB7DQogICAgZGVmYXVsdFVzZXIgPSBKU09OLnBhcnNlKGRhdGFbImRlZmF1bHRVc2VyIl0pOw0KICB9DQoNCiAgZm9yICh2YXIgaSA9IDA7IGkgPCBrZXlzLmxlbmd0aDsgaSsrKSB7DQoNCiAgICBpZihkb2N1bWVudC5nZXRFbGVtZW50QnlJZChrZXlzW2ldKSl7DQogICAgICB2YXIgdGQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChrZXlzW2ldKQ0KICAgIH0gZWxzZSB7DQogICAgICB2YXIgdGQgPSB1bmRlZmluZWQ7DQogICAgfQ0KDQogICAgdmFyIG5ld0l0ZW0gPSBuZXcgT2JqZWN0KCk7DQoNCiAgICBuZXdJdGVtWyJfZWxlbWVudCJdID0gIklOUFVUIjsNCiAgICANCiAgICBuZXdJdGVtWyJ2YWx1ZSJdICAgID0gZGF0YVtrZXlzW2ldXTsNCiAgICBuZXdJdGVtWyJuYW1lIl0gICAgID0ga2V5c1tpXTsNCg0KDQoNCg0KDQogICAgc3dpdGNoKGtleXNbaV0uaW5kZXhPZigiYXV0aGVudGljYXRpb24iKSkgew0KICAgICAgY2FzZSAtMTogDQogICAgICAgIGlmIChrZXlzW2ldID09ICJwYXNzd29yZCIgfHwga2V5c1tpXSA9PSAiY29uZmlybSIpIHsNCiAgICAgICAgICBuZXdJdGVtWyJ0eXBlIl0gICAgID0gInBhc3N3b3JkIjsNCiAgICAgICAgfSBlbHNlIHsNCiAgICAgICAgICBuZXdJdGVtWyJ0eXBlIl0gICAgID0gInRleHQiOw0KICAgICAgICB9DQogICAgICAgIGJyZWFrOw0KDQogICAgICBkZWZhdWx0OiANCiAgICAgICAgbmV3SXRlbVsidHlwZSJdICAgICA9ICJjaGVja2JveCI7DQogICAgICAgIA0KICAgICAgICBpZiAoa2V5c1tpXSA9PSAiYXV0aGVudGljYXRpb24ud2ViIiAmJiBkZWZhdWx0VXNlciA9PSB0cnVlKSB7DQogICAgICAgICAgbmV3SXRlbVsib25jbGljayJdID0gInJldHVybiBmYWxzZSI7IA0KICAgICAgICB9DQogICAgICAgIA0KICAgICAgICBpZiAoZGF0YVtrZXlzW2ldXSA9PSB0cnVlKSB7ICAgICAgICAgIA0KICAgICAgICAgIG5ld0l0ZW1bImNoZWNrZWQiXSAgPSBkYXRhW2tleXNbaV1dOyAgDQogICAgICAgIH0NCiAgICAgICAgDQogICAgICAgIGJyZWFrOw0KICAgIH0NCg0KICAgIHN3aXRjaChrZXlzW2ldKSB7DQogICAgICBjYXNlICJkZWZhdWx0VXNlciI6IA0KICAgICAgICAvL2lmIChkYXRhW2tleXNbaV1dID09IHRydWUpIHsNCiAgICAgICAgbmV3SXRlbVsidHlwZSJdICAgICA9ICJoaWRkZW4iOw0KICAgICAgICAvL30NCiAgICB9DQoNCg0KICAgIGlmICh0ZCAhPSB1bmRlZmluZWQpIHsNCiAgICAgIHRkLmlubmVySFRNTCA9ICIiOw0KICAgICAgdmFyIGVsZW1lbnQgPSBjcmVhdGVOZXdFbGVtZW50KG5ld0l0ZW0pDQogICAgICAvL2NvbnNvbGUubG9nKGVsZW1lbnQpOw0KICAgICAgdGQuYXBwZW5kQ2hpbGQoZWxlbWVudCk7DQogICAgfQ0KDQoNCiAgfQ0KDQoNCiAgaWYgKGRlZmF1bHRVc2VyID09IHRydWUpIHsNCiAgICBzaG93RWxlbWVudCgiZGVsZXRlVXNlckRldGFpbCIsIGZhbHNlKQ0KICB9IGVsc2Ugew0KICAgIHNob3dFbGVtZW50KCJkZWxldGVVc2VyRGV0YWlsIiwgdHJ1ZSkNCiAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZGVsZXRlVXNlckRldGFpbCIpLmNsYXNzTmFtZSA9ICJkZWxldGUiOw0KICB9DQoNCn0NCg0KZnVuY3Rpb24gc2F2ZVVzZXJEZXRhaWwodXNlcklELCBkZWxldGVVc2VyKSB7DQoNCiAgdmFyIGlucHV0cyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ1c2VyLWRldGFpbC10YWJsZSIpLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJJTlBVVCIpOw0KDQogIHZhciBuZXdVc2VyRGF0YSA9IG5ldyBPYmplY3QoKTsNCiAgZm9yICh2YXIgaSA9IDA7IGkgPCBpbnB1dHMubGVuZ3RoOyBpKyspIHsNCiAgICBzd2l0Y2goaW5wdXRzW2ldLnR5cGUpIHsNCiAgICAgIGNhc2UgImNoZWNrYm94IjogIG5ld1VzZXJEYXRhW2lucHV0c1tpXS5uYW1lXSA9IGlucHV0c1tpXS5jaGVja2VkOyBicmVhazsNCiAgICAgIGRlZmF1bHQ6ICAgICAgICAgIG5ld1VzZXJEYXRhW2lucHV0c1tpXS5uYW1lXSA9IGlucHV0c1tpXS52YWx1ZTsgYnJlYWs7DQogICAgfQ0KICAgIA0KICAgIGlmIChpbnB1dHNbInVzZXJuYW1lIl0udmFsdWUubGVuZ3RoID09IDApIHsNCiAgICAgIGlucHV0c1sidXNlcm5hbWUiXS5zdHlsZS5ib3JkZXIgPSAic29saWQgMXB4IHJlZCI7DQogICAgICByZXR1cm47DQogICAgfQ0KDQogICAgc3dpdGNoKHVzZXJJRCkgew0KICAgICAgY2FzZSAiMCI6IA0KICAgICAgICBpZiAoaW5wdXRzWyJwYXNzd29yZCJdLnZhbHVlLmxlbmd0aCA9PSAwKSB7DQogICAgICAgICAgY29uc29sZS5sb2coaW5wdXRzWyJwYXNzd29yZCJdLnZhbHVlLmxlbmd0aCk7DQogICAgICAgICAgaW5wdXRzWyJwYXNzd29yZCJdLnN0eWxlLmJvcmRlciA9ICJzb2xpZCAxcHggcmVkIjsNCiAgICAgICAgICByZXR1cm4NCiAgICAgICAgfQ0KICAgICAgICBicmVhazsNCiAgICB9DQoNCiAgICBpZiAoaW5wdXRzWyJwYXNzd29yZCJdLnZhbHVlLmxlbmd0aCA+IDApIHsNCiAgICAgIGlmIChpbnB1dHNbInBhc3N3b3JkIl0udmFsdWUgIT0gaW5wdXRzWyJjb25maXJtIl0udmFsdWUpIHsNCiAgICAgICAgaW5wdXRzWyJwYXNzd29yZCJdLnN0eWxlLmJvcmRlciA9ICJzb2xpZCAxcHggcmVkIjsNCiAgICAgICAgaW5wdXRzWyJjb25maXJtIl0uc3R5bGUuYm9yZGVyID0gInNvbGlkIDFweCByZWQiOw0KICAgICAgICByZXR1cm47DQogICAgICB9DQogICAgfQ0KICAgIA0KICB9DQoNCiAgdmFyIGRhdGEgPSBuZXcgT2JqZWN0KCk7DQogIA0KICBzd2l0Y2godXNlcklEKSB7DQogICAgY2FzZSAiMCI6DQogICAgICAvL2RhdGEgPSBuZXdVc2VyRGF0YQ0KICAgICAgZGF0YVsidXNlckRhdGEiXSAgPSBuZXdVc2VyRGF0YQ0KICAgICAgZGF0YVsiY21kIl0gICAgICAgPSAic2F2ZU5ld1VzZXIiOyBicmVhazsNCiAgICANCiAgICBkZWZhdWx0OiAgDQogICAgICB2YXIgdGhpc1VzZXIgICAgICA9IG5ldyBPYmplY3QoKTsNCiAgICAgIA0KICAgICAgaWYgKGRlbGV0ZVVzZXIgPT0gdHJ1ZSkgew0KICAgICAgICBpZiAoY29uZmlybSgnRGVsZXRlIHRoZSBzZWxlY3RlZCB1c2VyPycpKSB7DQogICAgICAgICAgZGF0YVsiZGVsZXRlVXNlciJdID0gdHJ1ZTsNCiAgICAgICAgfSBlbHNlIHsNCiAgICAgICAgICBzaG93RWxlbWVudCgicG9wdXAiLCBmYWxzZSk7DQogICAgICAgICAgcmV0dXJuDQogICAgICAgIH0NCiAgICAgIH0NCiAgICAgIA0KICAgICAgdGhpc1VzZXJbdXNlcklEXSAgPSBuZXdVc2VyRGF0YTsNCg0KICAgICAgZGF0YVsidXNlckRhdGEiXSA9IHRoaXNVc2VyOw0KICAgICAgZGF0YVsiY21kIl0gPSAic2F2ZVVzZXJEYXRhIjsgYnJlYWs7DQogIH0NCiAgDQogIHhUZVZlKGRhdGEpOw0KICAvL2NyZWF0ZVVzZXJzVGFibGUoKQ0KICBzaG93RWxlbWVudCgicG9wdXAiLCBmYWxzZSk7DQp9DQoNCg0K" + webUI["html/img/filter.png"] = "iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAAAXNSR0IArs4c6QAAAAlwSFlzAAAsSwAALEsBpT2WqQAABCRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IlhNUCBDb3JlIDUuNC4wIj4KICAgPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIgogICAgICAgICAgICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgICAgICAgICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyI+CiAgICAgICAgIDx0aWZmOlJlc29sdXRpb25Vbml0PjI8L3RpZmY6UmVzb2x1dGlvblVuaXQ+CiAgICAgICAgIDx0aWZmOkNvbXByZXNzaW9uPjU8L3RpZmY6Q29tcHJlc3Npb24+CiAgICAgICAgIDx0aWZmOlhSZXNvbHV0aW9uPjI4ODwvdGlmZjpYUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6T3JpZW50YXRpb24+MTwvdGlmZjpPcmllbnRhdGlvbj4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+Mjg4PC90aWZmOllSZXNvbHV0aW9uPgogICAgICAgICA8ZXhpZjpQaXhlbFhEaW1lbnNpb24+NTA8L2V4aWY6UGl4ZWxYRGltZW5zaW9uPgogICAgICAgICA8ZXhpZjpDb2xvclNwYWNlPjE8L2V4aWY6Q29sb3JTcGFjZT4KICAgICAgICAgPGV4aWY6UGl4ZWxZRGltZW5zaW9uPjUwPC9leGlmOlBpeGVsWURpbWVuc2lvbj4KICAgICAgICAgPGRjOnN1YmplY3Q+CiAgICAgICAgICAgIDxyZGY6QmFnLz4KICAgICAgICAgPC9kYzpzdWJqZWN0PgogICAgICAgICA8eG1wOk1vZGlmeURhdGU+MjAxOC0wNy0yOFQxOTowNzo2OTwveG1wOk1vZGlmeURhdGU+CiAgICAgICAgIDx4bXA6Q3JlYXRvclRvb2w+UGl4ZWxtYXRvciAzLjM8L3htcDpDcmVhdG9yVG9vbD4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgIDwvcmRmOlJERj4KPC94OnhtcG1ldGE+Cs038OQAAAOISURBVGgF5ZpLSBVRGMfvvfmqCKKiKCqKtE3SQ8haJJm1ctPCZYHrFhXtohcUBLVsU1BRBJKLXpsSKs1aCL1oUUhvMgIloodZKmLZ72+OzNVx7jzOXGfqg/89Z875zv/7f35n7px7vanUP2JptzyGhoYKmK8GW0EZmA/mgW7wHrwDN0BTOp0epPVtxBBnLdgIVoE5YBboBR2gDTTA/5DWn0FeDPaBz8CLdeF0EBR5jYRvKbgABoAXa8Opwit/CudK8NoLs4PPM8ZyBsNnB/jpsD7X0C8cjgDXnaQkqkEPCGMSuGWivxxzx8OQj6xtpHWuPhPloHfEMWzTD0HN2GQY2xuW2Lb+/Fh+VaIQPLE5meh+gmSxFYz+BjBogtjGscfiH26Z2GmbNNltVQAIpwDdP6ZNO2iRYqTpZGhfgWUaiMC2w1kCzkbALcqLvDVvUyK6MW9HFES0b8BvsFwXEZi4F+iBtykCcjtlqf0igr52VJ1eqiIgzzdlrRIZfWfJd3SD8ZbqHvkB4XSDpJNB9V0VcX/cT4Ys/zEzSuSj/3WxW9GpRD7ETpZ/QcOJ6LyfdHugitxNehbob9G7lo4PXWBmQhPqQ/fsDOeUfjqNCU1Csi+TQ5+2luzc3yaRr6elevQZwhZr4bomYam0U41yabYqov5hvSTMjlp6RyuiAarSTLPZmox5246+lVREx/isiuh6NxhUJwF2yEpCWu1bK8WEsjyRgCSa0XrVrjNra2mC7TWD5ilYAuJoA4jSlnppF5dVEU3g0ENTD4b3nsZiZsfGJuGqj8qY+CINGqP2GLZCJ+HjtpblxAJ9k3cPrLfGJrnVUaSCarxw0jFua1lOLNBerANx+byya6IkLM2uLZWpAl6/Mcc1EjvjKtLrJNLqI5HnjfQ+bsVeteb0g2y/t7hGvd7CNjenOL8OkJ40KtOdTF+Cl/nV6Mkf4gxocI9vZPYLLKs9iQrqRIACcM2IXGeSboYrg+rztY5ARaDJWUeo0W+sXudLTFhnApaAW6FkZy/+yuXasLoCrSfwVHAnW0+gK93YawKJMLUIAdNAKwhqnSxcYUpPKB6EBE2mg7VR///EX24jybTQerXnOC70FyVP3gjTPXPTQyaP8NFPNeJrCNTPP667JKOq6VNo/A2hes5ccUjmEmPmDoD5+FMgWCcA+3FG57QJP//kQ1PgGBIOToEDgUn+t4V/AJeGknwARIKLAAAAAElFTkSuQmCC" webUI["html/js/configuaration.js"] = "dmFyIGNvbmZpZ01lbnUgPSBuZXcgT2JqZWN0KCk7DQp2YXIgd2l6YXJkID0gbmV3IEFycmF5KCJrZXkiLCAidHVuZXIiLCAiZXBnU291cmNlIiwgIm0zdSIsICJjb21wbGV0ZSIpOw0KdmFyIGFjdGl2ZVdpemFyZDsNCnZhciBkdnJJUA0KDQp2YXIgY29uZmlnTWVudV90dW5lciA9IG5ldyBPYmplY3QoKTsNCmNvbmZpZ01lbnVfdHVuZXJbIl9lbGVtZW50Il0gICAgICA9ICJTRUxFQ1QiOw0KY29uZmlnTWVudV90dW5lclsiX21lbnVUeXBlIl0gICAgID0gInNpbmdsZUlucHV0IjsNCmNvbmZpZ01lbnVfdHVuZXJbIl9jb25maWdLZXkiXSAgICA9ICJ0dW5lciI7DQpjb25maWdNZW51X3R1bmVyWyJfbGFiZWwiXSAgICAgICAgPSAiQXZhaWxhYmxlIHR1bmVycyI7DQpjb25maWdNZW51X3R1bmVyWyJuYW1lIl0gICAgICAgICAgPSAidHVuZXIiOw0KY29uZmlnTWVudV90dW5lclsiaWQiXSAgICAgICAgICAgID0gIlR1bmVyIjsNCmNvbmZpZ01lbnVfdHVuZXJbInBsYWNlaG9sZGVyIl0gICA9ICJUdW5lciI7DQpjb25maWdNZW51X3R1bmVyWyJfdXNhZ2UiXSAgICAgICAgPSAiVGhpcyBzZXR0aW5nIGlzIG9ubHkgdXNlZCBieSBQbGV4IGFuZCBFbWJ5Ljxicj5UaGUgbnVtYmVyIG9mIGNvbmN1cnJlbnQgc3RyZWFtcyBhbGxvd2VkIGJ5IHRoZSBJUFRWIHByb3ZpZGVyLiINCg0KDQp2YXIgb3B0aW9uVmFsdWVzID0gbmV3IEFycmF5KCk7DQpmb3IgKHZhciBpID0gMTsgaSA8PSAxMDA7IGkrKykgew0KICBvcHRpb25WYWx1ZXMucHVzaChpKQ0KfQ0KY29uZmlnTWVudV90dW5lclsiX29wdGlvblZhbHVlcyJdID0gb3B0aW9uVmFsdWVzOw0KDQp2YXIgY29uZmlnTWVudV9lcGcgPSBuZXcgT2JqZWN0KCk7DQpjb25maWdNZW51X2VwZ1siX2VsZW1lbnQiXSAgICAgID0gIlNFTEVDVCI7DQpjb25maWdNZW51X2VwZ1siX21lbnVUeXBlIl0gICAgID0gInNpbmdsZUlucHV0IjsNCmNvbmZpZ01lbnVfZXBnWyJfY29uZmlnS2V5Il0gICAgPSAiZXBnU291cmNlIjsNCmNvbmZpZ01lbnVfZXBnWyJfbGFiZWwiXSAgICAgICAgPSAiU2VsZWN0aW9uIG9mIHRoZSBFUEcgc291cmNlIjsNCmNvbmZpZ01lbnVfZXBnWyJuYW1lIl0gICAgICAgICAgPSAiZXBnU291cmNlIjsNCmNvbmZpZ01lbnVfZXBnWyJpZCJdICAgICAgICAgICAgPSAiRVBHIHNvdXJjZSI7DQpjb25maWdNZW51X2VwZ1sicGxhY2Vob2xkZXIiXSAgID0gIkVQRyBzb3VyY2UiOw0KY29uZmlnTWVudV9lcGdbIl9vcHRpb25WYWx1ZXMiXSA9IG5ldyBBcnJheSgiUE1TIiwgIlhFUEciKTsNCmNvbmZpZ01lbnVfZXBnWyJfdXNhZ2UiXSAgICAgICAgPSAiUE1TOiAgIFVzZSBFUEcgZGF0YSBmcm9tIFBsZXggb3IgRW1ieTxicj5YRVBHOiAgVXNlIG9mIGV4dGVybmFsIEVQRyBkYXRhIChYTUxUVik8YnI+ICAgICAgIFNldmVyYWwgWE1MVFYgc291cmNlcyBwb3NzaWJsZTxicj4gICAgICAgQWxsb3dzIGVkaXRpbmcgYW5kIG9yZGVyIGNoYW5uZWxzPGJyPiAgICAgICBNM1UgLyBYTUxUViBleHBvcnQgKEhUVFAgbGluayBmb3IgSVBUViBhcHBzKSINCg0KdmFyIGNvbmZpZ01lbnVfbTN1ID0gbmV3IE9iamVjdCgpOw0KY29uZmlnTWVudV9tM3VbIl9lbGVtZW50Il0gICAgICAgID0gIklOUFVUIjsNCmNvbmZpZ01lbnVfbTN1WyJfbWVudVR5cGUiXSAgICAgICA9ICJpbnB1dEFycmF5IjsNCmNvbmZpZ01lbnVfbTN1WyJfY29uZmlnS2V5Il0gICAgICA9ICJmaWxlIjsNCmNvbmZpZ01lbnVfbTN1WyJfbGFiZWwiXSAgICAgICAgICA9ICJNM1UgRmlsZTogbG9jYWwgb3IgcmVtb3RlIjsNCmNvbmZpZ01lbnVfbTN1WyJuYW1lIl0gICAgICAgICAgICA9ICJmaWxlIjsNCmNvbmZpZ01lbnVfbTN1WyJpZCJdICAgICAgICAgICAgICA9ICJtM3UiOw0KY29uZmlnTWVudV9tM3VbInR5cGUiXSAgICAgICAgICAgID0gInRleHQiOw0KY29uZmlnTWVudV9tM3VbInBsYWNlaG9sZGVyIl0gICAgID0gIk0zVSBGaWxlIjsNCmNvbmZpZ01lbnVfbTN1WyJfdXNhZ2UiXSAgICAgICAgICA9ICJSZW1vdGUgcGxheWxpc3Q6IGh0dHA6Ly95b3VyLnByb3ZpZGVyLmNvbS9maWxlLm0zdTxicj5Mb2NhbCAgcGxheWxpc3Q6IC9wYXRoL3RvL2ZpbGUubTN1Ig0KDQoNCmNvbmZpZ01lbnVfbTN1WyJ2YWx1ZSJdICAgICAgICAgICA9ICJodHRwOi8vd2Vic3J2LmxvY2FsOjgwODAva2FiZWwubTN1IjsNCg0KdmFyIGNvbmZpZ01lbnVfY29tcGxldGUgPSBuZXcgT2JqZWN0KCk7DQpjb25maWdNZW51X2NvbXBsZXRlWyJfZWxlbWVudCJdICAgICAgICA9ICJIMiI7DQpjb25maWdNZW51X2NvbXBsZXRlWyJfbWVudVR5cGUiXSAgICAgICA9ICJpbnB1dEFycmF5IjsNCmNvbmZpZ01lbnVfY29tcGxldGVbIl9jb25maWdLZXkiXSAgICAgID0gImZpbGUiOw0KY29uZmlnTWVudV9jb21wbGV0ZVsiX3RleHQiXSAgICAgICAgICAgPSAieFRlVmUgd2FzIHN1Y2Nlc3NmdWxseSBzZXQgdXAiOw0KY29uZmlnTWVudV9jb21wbGV0ZVsibmFtZSJdICAgICAgICAgICAgPSAiY29tcGxldGUiOw0KY29uZmlnTWVudV9jb21wbGV0ZVsiaWQiXSAgICAgICAgICAgICAgPSAiY29tcGxldGUiOw0KY29uZmlnTWVudV9jb21wbGV0ZVsidHlwZSJdICAgICAgICAgICAgPSAidGV4dCI7DQpjb25maWdNZW51X2NvbXBsZXRlWyJjbGFzcyJdICAgICAgICAgICA9ICJjZW50ZXIiOw0KDQpjb25maWdNZW51WyJ0dW5lciJdICAgICA9IGNvbmZpZ01lbnVfdHVuZXI7DQpjb25maWdNZW51WyJlcGdTb3VyY2UiXSA9IGNvbmZpZ01lbnVfZXBnOw0KY29uZmlnTWVudVsibTN1Il0gICAgICAgPSBjb25maWdNZW51X20zdTsNCmNvbmZpZ01lbnVbImNvbXBsZXRlIl0gID0gY29uZmlnTWVudV9jb21wbGV0ZTsNCg0KZnVuY3Rpb24gcmVhZHlGb3JDb25maWd1cmF0aW9uKCkgew0KICB2YXIgZGF0YSA9IG5ldyBPYmplY3QoKTsNCiAgZGF0YVsiY21kIl0gPSAiZ2V0U2VydmVyQ29uZmlnIjsNCiAgeFRlVmUoZGF0YSk7DQogIHNob3dMb2FkaW5nU2NyZWVuKGZhbHNlKTsNCn0NCg0KZnVuY3Rpb24gY3JlYXRlQ29uZmlndXJhdGlvbihlbG0pIHsNCg0KICBhY3RpdmVXaXphcmQgPSBlbG07DQogIHZhciBpdGVtICA9IGNvbmZpZ01lbnVbZWxtXTsNCg0KICB2YXIgZGl2ICAgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29udGVudCIpOw0KICBkaXYuaW5uZXJIVE1MID0gIiI7DQogIGRpdi5zZXRBdHRyaWJ1dGUoImRhdGEtY29uZmlnS2V5IiwgaXRlbVsiX2NvbmZpZ0tleSJdKTsNCiAgZGl2LnNldEF0dHJpYnV0ZSgiZGF0YS1tZW51VHlwZSIsIGl0ZW1bIl9tZW51VHlwZSJdKTsNCiAgDQogIHN3aXRjaChpdGVtLmhhc093blByb3BlcnR5KCJfbGFiZWwiKSkgew0KICAgIGNhc2UgdHJ1ZToNCiAgICAgIHZhciBuZXdJdGVtID0gbmV3IE9iamVjdCgpOw0KICAgICAgbmV3SXRlbVsiX2VsZW1lbnQiXSA9ICJMQUJFTCI7DQogICAgICBuZXdJdGVtWyJfdGV4dCJdICAgID0gaXRlbVsiX2xhYmVsIl07IA0KICAgICAgbmV3SXRlbVsiZm9yIl0gICAgICA9IGl0ZW1bImlkIl07DQogICAgICBkaXYuYXBwZW5kQ2hpbGQoY3JlYXRlRWxlbWVudChuZXdJdGVtKSk7DQogICAgICBicmVhaw0KICB9DQoNCiAgc3dpdGNoKGl0ZW1bIl9lbGVtZW50Il0pIHsNCiAgICBjYXNlICJTRUxFQ1QiOg0KICAgICAgZGl2LmFwcGVuZENoaWxkKGNyZWF0ZUVsZW1lbnQoaXRlbSkpOw0KICAgICAgdmFyIHNlbGVjdEVsZW1lbnQgPSBkaXYuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlNFTEVDVCIpWzBdOw0KICAgICAgdmFyIHZhbHVlcyA9IGl0ZW1bIl9vcHRpb25WYWx1ZXMiXTsNCiAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdmFsdWVzLmxlbmd0aDsgaSsrKSB7DQogICAgICAgIHZhciBuZXdFbnRyeSA9IG5ldyBPYmplY3Q7DQogICAgICAgIG5ld0VudHJ5WyJfZWxlbWVudCJdICA9ICJPUFRJT04iOw0KICAgICAgICBuZXdFbnRyeVsiX3RleHQiXSAgICAgPSBpdGVtWyJpZCJdICsgIjogIiArIHZhbHVlc1tpXTsNCiAgICAgICAgbmV3RW50cnlbInZhbHVlIl0gICAgID0gdmFsdWVzW2ldOw0KICAgICAgICBzZWxlY3RFbGVtZW50LmFwcGVuZENoaWxkKGNyZWF0ZUVsZW1lbnQobmV3RW50cnkpKTsNCiAgICAgIH0NCiAgICAgIC8vcmV0dXJuDQogICAgICBicmVhazsNCg0KICAgIGRlZmF1bHQ6IA0KICAgICAgZGl2LmFwcGVuZENoaWxkKGNyZWF0ZUVsZW1lbnQoaXRlbSkpOw0KICAgICAgYnJlYWs7DQoNCg0KICB9DQogIC8vYWxlcnQoKQ0KDQogIHN3aXRjaChpdGVtLmhhc093blByb3BlcnR5KCJfdXNhZ2UiKSkgew0KICAgIGNhc2UgdHJ1ZTogDQogICAgICB2YXIgdXNhZ2VJdGVtID0gbmV3IE9iamVjdCgpOw0KICAgICAgdXNhZ2VJdGVtWyJfZWxlbWVudCJdID0gIlBSRSINCiAgICAgIHVzYWdlSXRlbVsiX3RleHQiXSAgICA9IGl0ZW1bIl91c2FnZSJdOw0KICAgICAgZGl2LmFwcGVuZENoaWxkKGNyZWF0ZUVsZW1lbnQodXNhZ2VJdGVtKSk7DQogIH0NCg0KICBpZiAoYWN0aXZlV2l6YXJkID09ICJjb21wbGV0ZSIpIHsNCiAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibmV4dCIpLnZhbHVlID0gIkZpbmlzaGVkIg0KICAgIC8vZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm5leHQiKS5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAiamF2YXNjcmlwdDogbG9jYXRpb24ucmVsb2FkKCk7IikNCiAgfQ0KDQogIC8vZGl2LmFwcGVuZENoaWxkKGNyZWF0ZUVsZW1lbnQoaXRlbSkpOw0KfQ0KDQpmdW5jdGlvbiBzYXZlRGF0YSgpIHsNCg0KICB2YXIgZGl2ICAgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29udGVudCIpOw0KICB2YXIgaW5wdXRzID0gZGl2LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJJTlBVVCIpOw0KICB2YXIgc2VsZWN0cyA9IGRpdi5nZXRFbGVtZW50c0J5VGFnTmFtZSgiU0VMRUNUIik7DQogIHZhciB2YWx1ZTsNCiAgdmFyIGRhdGEgPSBuZXcgT2JqZWN0KCk7DQogIHZhciB2YWx1ZUFyciA9IG5ldyBBcnJheSgpOw0KICB2YXIgbmV3RGF0YSA9IGZhbHNlOw0KDQogIGlmIChhY3RpdmVXaXphcmQgPT0gImNvbXBsZXRlIikgew0KICAgIGRhdGFbImNtZCJdID0gIndpemFyZENvbXBsZXRlZCI7DQogICAgc2hvd0xvYWRpbmdTY3JlZW4odHJ1ZSkNCiAgICB4VGVWZShkYXRhKTsNCiAgICByZXR1cm4NCiAgfQ0KICANCiAgZm9yICh2YXIgaSA9IDA7IGkgPCBpbnB1dHMubGVuZ3RoOyBpKyspIHsNCiAgICB2YXIgbWVudVR5cGUgPSBpbnB1dHNbaV0ucGFyZW50RWxlbWVudC5nZXRBdHRyaWJ1dGUoImRhdGEtbWVudXR5cGUiKTsNCiAgICBpZiAoaW5wdXRzW2ldLnZhbHVlICE9IHVuZGVmaW5lZCAmJiBpbnB1dHNbaV0udmFsdWUgIT0gIiIgKSB7DQogICAgICBuZXdEYXRhID0gdHJ1ZTsNCg0KICAgICAgY29uc29sZS5sb2coaW5wdXRzW2ldLmlkKQ0KICAgICAgc3dpdGNoKGlucHV0c1tpXS5pZCkgew0KICAgICAgICBjYXNlICJtM3UiOiANCiAgICAgICAgICB2YXIgbmV3UGxheWxpc3QgPSBuZXcgT2JqZWN0KCk7DQogICAgICAgICAgbmV3UGxheWxpc3RbImZpbGUuc291cmNlIl0gPSBpbnB1dHNbaV0udmFsdWU7DQogICAgICAgICAgLy9uZXdQbGF5bGlzdFsibmFtZSJdID0gaW5wdXRzW2ldLnZhbHVlOw0KICAgICAgICAgIG5ld1BsYXlsaXN0WyJ0eXBlIl0gPSAibTN1IjsNCiAgICAgICAgICBuZXdQbGF5bGlzdFsibmV3Il0gPSB0cnVlOw0KDQogICAgICAgICAgZGF0YVsiZmlsZXMiXSA9IG5ldyBPYmplY3QoKTsNCiAgICAgICAgICBkYXRhWyJmaWxlcyJdWyJtM3UiXSA9IG5ldyBPYmplY3QoKTsNCiAgICAgICAgICBkYXRhWyJmaWxlcyJdWyJtM3UiXVsiLSJdID0gbmV3UGxheWxpc3Q7DQogICAgICAgICAgDQogICAgICAgICAgZGF0YVsiY21kIl0gPSAic2F2ZUZpbGVzTTNVIjsNCiAgICAgICAgICB4VGVWZShkYXRhKQ0KICAgICAgICAgIHJldHVybg0KICAgICAgfQ0KICAgICAgLyoNCiAgICAgIHN3aXRjaChtZW51VHlwZSkgew0KICAgICAgICBjYXNlICJzaW5nbGVJbnB1dCI6DQogICAgICAgICAgZGF0YVtpbnB1dHNbaV0ubmFtZV0gPSBpbnB1dHNbaV0udmFsdWU7IGJyZWFrOw0KICAgICAgICBjYXNlICJpbnB1dEFycmF5IjogDQogICAgICAgICAgdmFsdWVBcnIucHVzaChpbnB1dHNbaV0udmFsdWUpOw0KICAgICAgICAgIGRhdGFbaW5wdXRzW2ldLm5hbWVdID0gdmFsdWVBcnI7IGJyZWFrDQoNCiAgICAgIH0NCiAgICAgICovDQogICAgfSBlbHNlIHsNCiAgICAgIGlucHV0c1tpXS5zdHlsZS5ib3JkZXJCb3R0b21Db2xvciA9ICJyZWQiOw0KICAgICAgcmV0dXJuOw0KICAgIH0NCiAgfQ0KDQoNCiAgZm9yICh2YXIgaSA9IDA7IGkgPCBzZWxlY3RzLmxlbmd0aDsgaSsrKSB7DQogICAgdmFyIHZhbHVlID0gc2VsZWN0c1tpXS5vcHRpb25zW3NlbGVjdHNbaV0uc2VsZWN0ZWRJbmRleF0udmFsdWU7DQogICAgaWYgKGlzTmFOKHZhbHVlKSA9PSBmYWxzZSkgew0KICAgICAgdmFsdWUgPSBwYXJzZUludCh2YWx1ZSk7DQogICAgICBkYXRhW3NlbGVjdHNbaV0ubmFtZV0gPSB2YWx1ZTsNCiAgICAgIG5ld0RhdGEgPSB0cnVlOw0KICAgICAgYnJlYWs7DQogICAgfQ0KICAgIGRhdGFbc2VsZWN0c1tpXS5uYW1lXSA9IHZhbHVlOw0KICAgIG5ld0RhdGEgPSB0cnVlOw0KICB9DQoNCg0KICAvL2NvbnNvbGUubG9nKGRhdGEsIG5ld0RhdGEpOw0KICBpZiAobmV3RGF0YSA9PSB0cnVlKSB7DQogICAgY29uZmlnID0gZGF0YQ0KICAgIGRhdGFbImNtZCJdID0gInNhdmVDb25maWciOw0KICAgIHhUZVZlKGRhdGEpOw0KICB9DQp9DQoNCmZ1bmN0aW9uIHhUZVZlKGRhdGEpIHsNCg0KICBpZiAod2ViU29ja2V0cyA9PSBmYWxzZSkgew0KICAgIGFsZXJ0KCJZb3VyIGJyb3dzZXIgZG9lcyBub3Qgc3VwcG9ydCBXZWJTb2NrZXRzIik7DQogICAgcmV0dXJuOw0KICB9DQoNCiAgaWYgKGFjdGl2ZVdpemFyZCA9PSAibTN1IiB8fCBhY3RpdmVXaXphcmQgPT0gImVwZ1NvdXJjZSIpIHsNCiAgICBzaG93TG9hZGluZ1NjcmVlbih0cnVlKTsNCiAgfQ0KDQogIHZhciBwcm90b2NvbFdTDQogIHN3aXRjaCh3aW5kb3cubG9jYXRpb24ucHJvdG9jb2wpIHsNCiAgICBjYXNlICJodHRwOiI6ICAgcHJvdG9jb2xXUyA9ICJ3czovLyI7IGJyZWFrOw0KICAgIGNhc2UgImh0dHBzOiI6ICBwcm90b2NvbFdTID0gIndzczovLyI7IGJyZWFrOw0KICB9DQoNCiAgdmFyIHdzID0gbmV3IFdlYlNvY2tldChwcm90b2NvbFdTICsgd2luZG93LmxvY2F0aW9uLmhvc3RuYW1lICsgIjoiICsgd2luZG93LmxvY2F0aW9uLnBvcnQgKyAiL2RhdGEvIiArICI/VG9rZW49IiArIGdldENvb2tpZSgiVG9rZW4iKSk7DQogIA0KICB3cy5vbm9wZW4gPSBmdW5jdGlvbigpIHsNCiAgICB3cy5zZW5kKEpTT04uc3RyaW5naWZ5KGRhdGEpKTsNCiAgfQ0KDQogIHdzLm9ubWVzc2FnZSA9IGZ1bmN0aW9uIChlKSB7DQogICAgDQogICAgdmFyIHJlc3BvbnNlID0gSlNPTi5wYXJzZShlLmRhdGEpOw0KICAgIA0KICAgIGlmIChyZXNwb25zZS5oYXNPd25Qcm9wZXJ0eSgiY2xpZW50SW5mbyIpKSB7DQogICAgICBjcmVhdGVDbGludEluZm8ocmVzcG9uc2VbImNsaWVudEluZm8iXSk7DQogICAgfQ0KDQogICAgaWYgKHJlc3BvbnNlLmhhc093blByb3BlcnR5KCJzdGF0dXMiKSkgew0KICAgICAgaWYgKHJlc3BvbnNlWyJzdGF0dXMiXSA9PSBmYWxzZSkgew0KICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiaGVhZGxpbmUiKS5zdHlsZS5ib3JkZXJDb2xvciA9ICJyZWQiOw0KICAgICAgICBzaG93RXJyKHJlc3BvbnNlWyJlcnIiXSk7DQogICAgICAgIHNob3dMb2FkaW5nU2NyZWVuKGZhbHNlKQ0KICAgICAgICByZXR1cm4NCiAgICAgIH0gZWxzZSB7DQogICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJlcnIiKS5pbm5lckhUTUwgPSAiIjsNCiAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImhlYWRsaW5lIikuc3R5bGUuYm9yZGVyQ29sb3IgPSAibGF3bmdyZWVuIjsNCiAgICAgIH0NCg0KICAgICAgZHZySVAgPSByZXNwb25zZVsiRFZSIl0NCiAgICAgIHN3aXRjaChyZXNwb25zZVsiY29uZmlndXJhdGlvbldpemFyZCJdKSB7DQogICAgICAgIGNhc2UgdHJ1ZTogDQogICAgICAgICAgaWYgKGFjdGl2ZVdpemFyZCA9PSB1bmRlZmluZWQpIHsNCiAgICAgICAgICAgIGFjdGl2ZVdpemFyZCA9IHdpemFyZFswXQ0KICAgICAgICAgIH0NCiAgICAgICAgICB2YXIgbiA9IHdpemFyZC5pbmRleE9mKGFjdGl2ZVdpemFyZCk7DQogICAgICAgICAgbisrOw0KICAgICAgICAgIGFjdGl2ZVdpemFyZCA9IHdpemFyZFtuXQ0KDQogICAgICAgICAgaWYgKGFjdGl2ZVdpemFyZCA9PSB1bmRlZmluZWQpIHsNCiAgICAgICAgICAgIGRhdGFbImNtZCJdID0gIndpemFyZENvbXBsZXRlZCI7DQogICAgICAgICAgICB4VGVWZShkYXRhKQ0KICAgICAgICAgIH0gZWxzZSB7DQogICAgICAgICAgICAvL2NvbnNvbGUubG9nKGFjdGl2ZVdpemFyZCk7DQogICAgICAgICAgICBjcmVhdGVDb25maWd1cmF0aW9uKGFjdGl2ZVdpemFyZCk7IA0KICAgICAgICAgIH0NCiAgICAgICAgICANCiAgICAgICAgYnJlYWs7DQogICAgICB9DQoNCiAgICAgIHN3aXRjaChyZXNwb25zZVsicmVsb2FkIl0pIHsNCiAgICAgICAgDQogICAgICAgIA0KICAgICAgICBjYXNlIHRydWU6IA0KICAgIA0KICAgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKXsgDQogICAgICAgICAgICBsb2NhdGlvbi5yZWxvYWQoKTsNCiAgICAgICAgICB9LCAxMDApOw0KICAgICAgICAgIA0KICAgICAgICAgIC8vbG9jYXRpb24ucmVsb2FkKCk7DQogICAgICAgICAgDQogICAgICAgICAgYnJlYWs7DQogICAgICAgIA0KICAgICAgfQ0KDQogICAgICANCiAgICB9DQoNCiAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7IHNob3dMb2FkaW5nU2NyZWVuKGZhbHNlKTsgfSwgMzAwKTsNCiAgfQ0KICANCn0NCg0KZnVuY3Rpb24gc2hvd0VycihlbG0pIHsNCiAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImVyciIpLmlubmVySFRNTCA9IGVsbTsNCn0=" - webUI["html/js/logs_ts.js"] = "dmFyIExvZyA9IC8qKiBAY2xhc3MgKi8gKGZ1bmN0aW9uICgpIHsNCiAgICBmdW5jdGlvbiBMb2coKSB7DQogICAgfQ0KICAgIExvZy5wcm90b3R5cGUuY3JlYXRlTG9nID0gZnVuY3Rpb24gKGVudHJ5KSB7DQogICAgICAgIHZhciBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiUFJFIik7DQogICAgICAgIGlmIChlbnRyeS5pbmRleE9mKCJXQVJOSU5HIikgIT0gLTEpIHsNCiAgICAgICAgICAgIGVsZW1lbnQuY2xhc3NOYW1lID0gIndhcm5pbmdNc2ciOw0KICAgICAgICB9DQogICAgICAgIGlmIChlbnRyeS5pbmRleE9mKCJFUlJPUiIpICE9IC0xKSB7DQogICAgICAgICAgICBlbGVtZW50LmNsYXNzTmFtZSA9ICJlcnJvck1zZyI7DQogICAgICAgIH0NCiAgICAgICAgaWYgKGVudHJ5LmluZGV4T2YoIkRFQlVHIikgIT0gLTEpIHsNCiAgICAgICAgICAgIGVsZW1lbnQuY2xhc3NOYW1lID0gImRlYnVnTXNnIjsNCiAgICAgICAgfQ0KICAgICAgICBlbGVtZW50LmlubmVySFRNTCA9IGVudHJ5Ow0KICAgICAgICByZXR1cm4gZWxlbWVudDsNCiAgICB9Ow0KICAgIHJldHVybiBMb2c7DQp9KCkpOw0KZnVuY3Rpb24gc2hvd0xvZ3MoYm90dG9tKSB7DQogICAgdmFyIGxvZyA9IG5ldyBMb2coKTsNCiAgICB2YXIgbG9ncyA9IFNFUlZFUlsibG9nIl1bImxvZyJdOw0KICAgIHZhciBkaXYgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29udGVudF9sb2ciKTsNCiAgICBkaXYuaW5uZXJIVE1MID0gIiI7DQogICAgdmFyIGtleXMgPSBnZXRPYmpLZXlzKGxvZ3MpOw0KICAgIGtleXMuZm9yRWFjaChmdW5jdGlvbiAobG9nSUQpIHsNCiAgICAgICAgdmFyIGVudHJ5ID0gbG9nLmNyZWF0ZUxvZyhsb2dzW2xvZ0lEXSk7DQogICAgICAgIGRpdi5hcHBlbmQoZW50cnkpOw0KICAgIH0pOw0KICAgIHNldFRpbWVvdXQoZnVuY3Rpb24gKCkgew0KICAgICAgICBpZiAoYm90dG9tID09IHRydWUpIHsNCiAgICAgICAgICAgIHZhciB3cmFwcGVyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImJveC13cmFwcGVyIik7DQogICAgICAgICAgICB3cmFwcGVyLnNjcm9sbFRvcCA9IHdyYXBwZXIuc2Nyb2xsSGVpZ2h0Ow0KICAgICAgICB9DQogICAgfSwgMTApOw0KfQ0KZnVuY3Rpb24gcmVzZXRMb2dzKCkgew0KICAgIHZhciBjbWQgPSAicmVzZXRMb2dzIjsNCiAgICB2YXIgZGF0YSA9IG5ldyBPYmplY3QoKTsNCiAgICB2YXIgc2VydmVyID0gbmV3IFNlcnZlcihjbWQpOw0KICAgIHNlcnZlci5yZXF1ZXN0KGRhdGEpOw0KfQ0K" + webUI["html/js/settings_ts.js"] = "Y2xhc3MgU2V0dGluZ3NDYXRlZ29yeSB7DQogICAgY29uc3RydWN0b3IoKSB7DQogICAgICAgIHRoaXMuRG9jdW1lbnRJRCA9ICJjb250ZW50X3NldHRpbmdzIjsNCiAgICB9DQogICAgY3JlYXRlQ2F0ZWdvcnlIZWFkbGluZSh2YWx1ZSkgew0KICAgICAgICB2YXIgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIkg0Iik7DQogICAgICAgIGVsZW1lbnQuaW5uZXJIVE1MID0gdmFsdWU7DQogICAgICAgIHJldHVybiBlbGVtZW50Ow0KICAgIH0NCiAgICBjcmVhdGVIUigpIHsNCiAgICAgICAgdmFyIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJIUiIpOw0KICAgICAgICByZXR1cm4gZWxlbWVudDsNCiAgICB9DQogICAgY3JlYXRlU2V0dGluZ3Moc2V0dGluZ3NLZXkpIHsNCiAgICAgICAgdmFyIHNldHRpbmcgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJUUiIpOw0KICAgICAgICB2YXIgY29udGVudCA9IG5ldyBQb3B1cENvbnRlbnQoKTsNCiAgICAgICAgdmFyIGRhdGEgPSBTRVJWRVJbInNldHRpbmdzIl1bc2V0dGluZ3NLZXldOw0KICAgICAgICBzd2l0Y2ggKHNldHRpbmdzS2V5KSB7DQogICAgICAgICAgICAvLyBUZXh0ZWluZ2FiZW4NCiAgICAgICAgICAgIGNhc2UgInVwZGF0ZSI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy51cGRhdGUudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCAidXBkYXRlIiwgZGF0YS50b1N0cmluZygpKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnNldHRpbmdzLnVwZGF0ZS5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiYmFja3VwLnBhdGgiOg0KICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MuYmFja3VwUGF0aC50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsICJiYWNrdXAucGF0aCIsIGRhdGEpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3suc2V0dGluZ3MuYmFja3VwUGF0aC5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAidGVtcC5wYXRoIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLnRlbXBQYXRoLnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgInRlbXAucGF0aCIsIGRhdGEpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3suc2V0dGluZ3MudG1wUGF0aC5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAidXNlci5hZ2VudCI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy51c2VyQWdlbnQudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCAidXNlci5hZ2VudCIsIGRhdGEpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3suc2V0dGluZ3MudXNlckFnZW50LnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJidWZmZXIudGltZW91dCI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5idWZmZXJUaW1lb3V0LnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgImJ1ZmZlci50aW1lb3V0IiwgZGF0YSk7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5zZXR0aW5ncy5idWZmZXJUaW1lb3V0LnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJmZm1wZWcucGF0aCI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5mZm1wZWdQYXRoLnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgImZmbXBlZy5wYXRoIiwgZGF0YSk7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5zZXR0aW5ncy5mZm1wZWdQYXRoLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJmZm1wZWcub3B0aW9ucyI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5mZm1wZWdPcHRpb25zLnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgImZmbXBlZy5vcHRpb25zIiwgZGF0YSk7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5zZXR0aW5ncy5mZm1wZWdPcHRpb25zLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ2bGMucGF0aCI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy52bGNQYXRoLnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgInZsYy5wYXRoIiwgZGF0YSk7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5zZXR0aW5ncy52bGNQYXRoLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ2bGMub3B0aW9ucyI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy52bGNPcHRpb25zLnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgInZsYy5vcHRpb25zIiwgZGF0YSk7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5zZXR0aW5ncy52bGNPcHRpb25zLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAvLyBDaGVja2JveGVuDQogICAgICAgICAgICBjYXNlICJhdXRoZW50aWNhdGlvbi53ZWIiOg0KICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MuYXV0aGVudGljYXRpb25XRUIudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goc2V0dGluZ3NLZXkpOw0KICAgICAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImF1dGhlbnRpY2F0aW9uLnBtcyI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5hdXRoZW50aWNhdGlvblBNUy50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChzZXR0aW5nc0tleSk7DQogICAgICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGE7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiYXV0aGVudGljYXRpb24ubTN1IjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmF1dGhlbnRpY2F0aW9uTTNVLnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KHNldHRpbmdzS2V5KTsNCiAgICAgICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJhdXRoZW50aWNhdGlvbi54bWwiOg0KICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MuYXV0aGVudGljYXRpb25YTUwudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goc2V0dGluZ3NLZXkpOw0KICAgICAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImF1dGhlbnRpY2F0aW9uLmFwaSI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5hdXRoZW50aWNhdGlvbkFQSS50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChzZXR0aW5nc0tleSk7DQogICAgICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGE7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiZmlsZXMudXBkYXRlIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmZpbGVzVXBkYXRlLnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KHNldHRpbmdzS2V5KTsNCiAgICAgICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJjYWNoZS5pbWFnZXMiOg0KICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MuY2FjaGVJbWFnZXMudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goc2V0dGluZ3NLZXkpOw0KICAgICAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInhlcGcucmVwbGFjZS5taXNzaW5nLmltYWdlcyI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5yZXBsYWNlRW1wdHlJbWFnZXMudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goc2V0dGluZ3NLZXkpOw0KICAgICAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInh0ZXZlQXV0b1VwZGF0ZSI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy54dGV2ZUF1dG9VcGRhdGUudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goc2V0dGluZ3NLZXkpOw0KICAgICAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImFwaSI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5hcGkudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goc2V0dGluZ3NLZXkpOw0KICAgICAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIC8vIFNlbGVjdA0KICAgICAgICAgICAgY2FzZSAidHVuZXIiOg0KICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MudHVuZXIudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciB0ZXh0ID0gbmV3IEFycmF5KCk7DQogICAgICAgICAgICAgICAgdmFyIHZhbHVlcyA9IG5ldyBBcnJheSgpOw0KICAgICAgICAgICAgICAgIGZvciAodmFyIGkgPSAxOyBpIDw9IDEwMDsgaSsrKSB7DQogICAgICAgICAgICAgICAgICAgIHRleHQucHVzaChpKTsNCiAgICAgICAgICAgICAgICAgICAgdmFsdWVzLnB1c2goaSk7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIHZhciBzZWxlY3QgPSBjb250ZW50LmNyZWF0ZVNlbGVjdCh0ZXh0LCB2YWx1ZXMsIGRhdGEsIHNldHRpbmdzS2V5KTsNCiAgICAgICAgICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQoc2VsZWN0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImVwZ1NvdXJjZSI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5lcGdTb3VyY2UudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciB0ZXh0ID0gWyJQTVMiLCAiWEVQRyJdOw0KICAgICAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBbIlBNUyIsICJYRVBHIl07DQogICAgICAgICAgICAgICAgdmFyIHNlbGVjdCA9IGNvbnRlbnQuY3JlYXRlU2VsZWN0KHRleHQsIHZhbHVlcywgZGF0YSwgc2V0dGluZ3NLZXkpOw0KICAgICAgICAgICAgICAgIHNlbGVjdC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChzZWxlY3QpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiYmFja3VwLmtlZXAiOg0KICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MuYmFja3VwS2VlcC50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIHRleHQgPSBbIjUiLCAiMTAiLCAiMjAiLCAiMzAiLCAiNDAiLCAiNTAiXTsNCiAgICAgICAgICAgICAgICB2YXIgdmFsdWVzID0gWyI1IiwgIjEwIiwgIjIwIiwgIjMwIiwgIjQwIiwgIjUwIl07DQogICAgICAgICAgICAgICAgdmFyIHNlbGVjdCA9IGNvbnRlbnQuY3JlYXRlU2VsZWN0KHRleHQsIHZhbHVlcywgZGF0YSwgc2V0dGluZ3NLZXkpOw0KICAgICAgICAgICAgICAgIHNlbGVjdC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChzZWxlY3QpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiYnVmZmVyLnNpemUua2IiOg0KICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MuYnVmZmVyU2l6ZS50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIHRleHQgPSBbIjAuNSBNQiIsICIxIE1CIiwgIjIgTUIiLCAiMyBNQiIsICI0IE1CIiwgIjUgTUIiLCAiNiBNQiIsICI3IE1CIiwgIjggTUIiXTsNCiAgICAgICAgICAgICAgICB2YXIgdmFsdWVzID0gWyI1MTIiLCAiMTAyNCIsICIyMDQ4IiwgIjMwNzIiLCAiNDA5NiIsICI1MTIwIiwgIjYxNDQiLCAiNzE2OCIsICI4MTkyIl07DQogICAgICAgICAgICAgICAgdmFyIHNlbGVjdCA9IGNvbnRlbnQuY3JlYXRlU2VsZWN0KHRleHQsIHZhbHVlcywgZGF0YSwgc2V0dGluZ3NLZXkpOw0KICAgICAgICAgICAgICAgIHNlbGVjdC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChzZWxlY3QpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiYnVmZmVyIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLnN0cmVhbUJ1ZmZlcmluZy50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIHRleHQgPSBbInt7LnNldHRpbmdzLnN0cmVhbUJ1ZmZlcmluZy5pbmZvX2ZhbHNlfX0iLCAieFRlVmU6ICh7ey5zZXR0aW5ncy5zdHJlYW1CdWZmZXJpbmcuaW5mb194dGV2ZX19KSIsICJGRm1wZWc6ICh7ey5zZXR0aW5ncy5zdHJlYW1CdWZmZXJpbmcuaW5mb19mZm1wZWd9fSkiLCAiVkxDOiAoe3suc2V0dGluZ3Muc3RyZWFtQnVmZmVyaW5nLmluZm9fdmxjfX0pIl07DQogICAgICAgICAgICAgICAgdmFyIHZhbHVlcyA9IFsiLSIsICJ4dGV2ZSIsICJmZm1wZWciLCAidmxjIl07DQogICAgICAgICAgICAgICAgdmFyIHNlbGVjdCA9IGNvbnRlbnQuY3JlYXRlU2VsZWN0KHRleHQsIHZhbHVlcywgZGF0YSwgc2V0dGluZ3NLZXkpOw0KICAgICAgICAgICAgICAgIHNlbGVjdC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChzZWxlY3QpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAidWRweHkiOg0KICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MudWRweHkudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCAidWRweHkiLCBkYXRhKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnNldHRpbmdzLnVkcHh5LnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIH0NCiAgICAgICAgcmV0dXJuIHNldHRpbmc7DQogICAgfQ0KICAgIGNyZWF0ZURlc2NyaXB0aW9uKHNldHRpbmdzS2V5KSB7DQogICAgICAgIHZhciBkZXNjcmlwdGlvbiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlRSIik7DQogICAgICAgIHZhciB0ZXh0Ow0KICAgICAgICBzd2l0Y2ggKHNldHRpbmdzS2V5KSB7DQogICAgICAgICAgICBjYXNlICJhdXRoZW50aWNhdGlvbi53ZWIiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MuYXV0aGVudGljYXRpb25XRUIuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJhdXRoZW50aWNhdGlvbi5tM3UiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MuYXV0aGVudGljYXRpb25NM1UuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJhdXRoZW50aWNhdGlvbi5wbXMiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MuYXV0aGVudGljYXRpb25QTVMuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJhdXRoZW50aWNhdGlvbi54bWwiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MuYXV0aGVudGljYXRpb25YTUwuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJhdXRoZW50aWNhdGlvbi5hcGkiOg0KICAgICAgICAgICAgICAgIGlmIChTRVJWRVJbInNldHRpbmdzIl1bImF1dGhlbnRpY2F0aW9uLndlYiJdID09IHRydWUpIHsNCiAgICAgICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5hdXRoZW50aWNhdGlvbkFQSS5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ4dGV2ZUF1dG9VcGRhdGUiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MueHRldmVBdXRvVXBkYXRlLmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiYmFja3VwLmtlZXAiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MuYmFja3VwS2VlcC5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImJhY2t1cC5wYXRoIjoNCiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLmJhY2t1cFBhdGguZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ0ZW1wLnBhdGgiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MudGVtcFBhdGguZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJidWZmZXIiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3Muc3RyZWFtQnVmZmVyaW5nLmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiYnVmZmVyLnNpemUua2IiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MuYnVmZmVyU2l6ZS5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImJ1ZmZlci50aW1lb3V0IjoNCiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLmJ1ZmZlclRpbWVvdXQuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ1c2VyLmFnZW50IjoNCiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLnVzZXJBZ2VudC5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImZmbXBlZy5wYXRoIjoNCiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLmZmbXBlZ1BhdGguZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJmZm1wZWcub3B0aW9ucyI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5mZm1wZWdPcHRpb25zLmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAidmxjLnBhdGgiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MudmxjUGF0aC5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInZsYy5vcHRpb25zIjoNCiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLnZsY09wdGlvbnMuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJlcGdTb3VyY2UiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MuZXBnU291cmNlLmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAidHVuZXIiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MudHVuZXIuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ1cGRhdGUiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MudXBkYXRlLmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiYXBpIjoNCiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLmFwaS5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImZpbGVzLnVwZGF0ZSI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5maWxlc1VwZGF0ZS5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImNhY2hlLmltYWdlcyI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5jYWNoZUltYWdlcy5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInhlcGcucmVwbGFjZS5taXNzaW5nLmltYWdlcyI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5yZXBsYWNlRW1wdHlJbWFnZXMuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ1ZHB4eSI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy51ZHB4eS5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICAgICAgdGV4dCA9ICIiOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICB9DQogICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gIiI7DQogICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgdmFyIHByZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlBSRSIpOw0KICAgICAgICBwcmUuaW5uZXJIVE1MID0gdGV4dDsNCiAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChwcmUpOw0KICAgICAgICBkZXNjcmlwdGlvbi5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICBkZXNjcmlwdGlvbi5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgcmV0dXJuIGRlc2NyaXB0aW9uOw0KICAgIH0NCn0NCmNsYXNzIFNldHRpbmdzQ2F0ZWdvcnlJdGVtIGV4dGVuZHMgU2V0dGluZ3NDYXRlZ29yeSB7DQogICAgY29uc3RydWN0b3IoaGVhZGxpbmUsIHNldHRpbmdzS2V5cykgew0KICAgICAgICBzdXBlcigpOw0KICAgICAgICB0aGlzLmhlYWRsaW5lID0gaGVhZGxpbmU7DQogICAgICAgIHRoaXMuc2V0dGluZ3NLZXlzID0gc2V0dGluZ3NLZXlzOw0KICAgIH0NCiAgICBjcmVhdGVDYXRlZ29yeSgpIHsNCiAgICAgICAgdmFyIGhlYWRsaW5lID0gdGhpcy5jcmVhdGVDYXRlZ29yeUhlYWRsaW5lKHRoaXMuaGVhZGxpbmUpOw0KICAgICAgICB2YXIgc2V0dGluZ3NLZXlzID0gdGhpcy5zZXR0aW5nc0tleXM7DQogICAgICAgIHZhciBkb2MgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCh0aGlzLkRvY3VtZW50SUQpOw0KICAgICAgICBkb2MuYXBwZW5kQ2hpbGQoaGVhZGxpbmUpOw0KICAgICAgICAvLyBUYWJlbGxlIGbDvHIgZGllIEthdGVnb3JpZSBlcnN0ZWxsZW4NCiAgICAgICAgdmFyIHRhYmxlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEFCTEUiKTsNCiAgICAgICAgdmFyIGtleXMgPSBzZXR0aW5nc0tleXMuc3BsaXQoIiwiKTsNCiAgICAgICAga2V5cy5mb3JFYWNoKHNldHRpbmdzS2V5ID0+IHsNCiAgICAgICAgICAgIHN3aXRjaCAoc2V0dGluZ3NLZXkpIHsNCiAgICAgICAgICAgICAgICBjYXNlICJhdXRoZW50aWNhdGlvbi5wbXMiOg0KICAgICAgICAgICAgICAgIGNhc2UgImF1dGhlbnRpY2F0aW9uLm0zdSI6DQogICAgICAgICAgICAgICAgY2FzZSAiYXV0aGVudGljYXRpb24ueG1sIjoNCiAgICAgICAgICAgICAgICBjYXNlICJhdXRoZW50aWNhdGlvbi5hcGkiOg0KICAgICAgICAgICAgICAgICAgICBpZiAoU0VSVkVSWyJzZXR0aW5ncyJdWyJhdXRoZW50aWNhdGlvbi53ZWIiXSA9PSBmYWxzZSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBkZWZhdWx0Og0KICAgICAgICAgICAgICAgICAgICB2YXIgaXRlbSA9IHRoaXMuY3JlYXRlU2V0dGluZ3Moc2V0dGluZ3NLZXkpOw0KICAgICAgICAgICAgICAgICAgICB2YXIgZGVzY3JpcHRpb24gPSB0aGlzLmNyZWF0ZURlc2NyaXB0aW9uKHNldHRpbmdzS2V5KTsNCiAgICAgICAgICAgICAgICAgICAgdGFibGUuYXBwZW5kQ2hpbGQoaXRlbSk7DQogICAgICAgICAgICAgICAgICAgIHRhYmxlLmFwcGVuZENoaWxkKGRlc2NyaXB0aW9uKTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICB9DQogICAgICAgIH0pOw0KICAgICAgICBkb2MuYXBwZW5kQ2hpbGQodGFibGUpOw0KICAgICAgICBkb2MuYXBwZW5kQ2hpbGQodGhpcy5jcmVhdGVIUigpKTsNCiAgICB9DQp9DQpmdW5jdGlvbiBzaG93U2V0dGluZ3MoKSB7DQogICAgY29uc29sZS5sb2coIlNFVFRJTkdTIik7DQogICAgZm9yIChsZXQgaSA9IDA7IGkgPCBzZXR0aW5nc0NhdGVnb3J5Lmxlbmd0aDsgaSsrKSB7DQogICAgICAgIHNldHRpbmdzQ2F0ZWdvcnlbaV0uY3JlYXRlQ2F0ZWdvcnkoKTsNCiAgICB9DQp9DQpmdW5jdGlvbiBzYXZlU2V0dGluZ3MoKSB7DQogICAgY29uc29sZS5sb2coIlNhdmUgU2V0dGluZ3MiKTsNCiAgICB2YXIgY21kID0gInNhdmVTZXR0aW5ncyI7DQogICAgdmFyIGRpdiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb250ZW50X3NldHRpbmdzIik7DQogICAgdmFyIHNldHRpbmdzID0gZGl2LmdldEVsZW1lbnRzQnlDbGFzc05hbWUoImNoYW5nZWQiKTsNCiAgICB2YXIgbmV3U2V0dGluZ3MgPSBuZXcgT2JqZWN0KCk7DQogICAgZm9yIChsZXQgaSA9IDA7IGkgPCBzZXR0aW5ncy5sZW5ndGg7IGkrKykgew0KICAgICAgICB2YXIgbmFtZTsNCiAgICAgICAgdmFyIHZhbHVlOw0KICAgICAgICBzd2l0Y2ggKHNldHRpbmdzW2ldLnRhZ05hbWUpIHsNCiAgICAgICAgICAgIGNhc2UgIklOUFVUIjoNCiAgICAgICAgICAgICAgICBzd2l0Y2ggKHNldHRpbmdzW2ldLnR5cGUpIHsNCiAgICAgICAgICAgICAgICAgICAgY2FzZSAiY2hlY2tib3giOg0KICAgICAgICAgICAgICAgICAgICAgICAgbmFtZSA9IHNldHRpbmdzW2ldLm5hbWU7DQogICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IHNldHRpbmdzW2ldLmNoZWNrZWQ7DQogICAgICAgICAgICAgICAgICAgICAgICBuZXdTZXR0aW5nc1tuYW1lXSA9IHZhbHVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgICAgIGNhc2UgInRleHQiOg0KICAgICAgICAgICAgICAgICAgICAgICAgbmFtZSA9IHNldHRpbmdzW2ldLm5hbWU7DQogICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IHNldHRpbmdzW2ldLnZhbHVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgc3dpdGNoIChuYW1lKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAidXBkYXRlIjoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSB2YWx1ZS5zcGxpdCgiLCIpOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IHZhbHVlLmZpbHRlcihmdW5jdGlvbiAoZSkgeyByZXR1cm4gZTsgfSk7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgImJ1ZmZlci50aW1lb3V0IjoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSBwYXJzZUZsb2F0KHZhbHVlKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgIG5ld1NldHRpbmdzW25hbWVdID0gdmFsdWU7DQogICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJTRUxFQ1QiOg0KICAgICAgICAgICAgICAgIG5hbWUgPSBzZXR0aW5nc1tpXS5uYW1lOw0KICAgICAgICAgICAgICAgIHZhbHVlID0gc2V0dGluZ3NbaV0udmFsdWU7DQogICAgICAgICAgICAgICAgLy8gV2VubiBkZXIgV2VydCBlaW5lIFphaGwgaXN0LCB3aXJkIGRpZXNlciBhbHMgWmFobCBnZXNwZWljaGVydA0KICAgICAgICAgICAgICAgIGlmIChpc05hTih2YWx1ZSkpIHsNCiAgICAgICAgICAgICAgICAgICAgbmV3U2V0dGluZ3NbbmFtZV0gPSB2YWx1ZTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgZWxzZSB7DQogICAgICAgICAgICAgICAgICAgIG5ld1NldHRpbmdzW25hbWVdID0gcGFyc2VJbnQodmFsdWUpOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgfQ0KICAgIH0NCiAgICB2YXIgZGF0YSA9IG5ldyBPYmplY3QoKTsNCiAgICBkYXRhWyJzZXR0aW5ncyJdID0gbmV3U2V0dGluZ3M7DQogICAgdmFyIHNlcnZlciA9IG5ldyBTZXJ2ZXIoY21kKTsNCiAgICBzZXJ2ZXIucmVxdWVzdChkYXRhKTsNCn0NCg==" webUI["html/img/log.png"] = "iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAAAXNSR0IArs4c6QAAAAlwSFlzAAAsSwAALEsBpT2WqQAABCRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IlhNUCBDb3JlIDUuNC4wIj4KICAgPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIgogICAgICAgICAgICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgICAgICAgICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyI+CiAgICAgICAgIDx0aWZmOlJlc29sdXRpb25Vbml0PjI8L3RpZmY6UmVzb2x1dGlvblVuaXQ+CiAgICAgICAgIDx0aWZmOkNvbXByZXNzaW9uPjU8L3RpZmY6Q29tcHJlc3Npb24+CiAgICAgICAgIDx0aWZmOlhSZXNvbHV0aW9uPjI4ODwvdGlmZjpYUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6T3JpZW50YXRpb24+MTwvdGlmZjpPcmllbnRhdGlvbj4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+Mjg4PC90aWZmOllSZXNvbHV0aW9uPgogICAgICAgICA8ZXhpZjpQaXhlbFhEaW1lbnNpb24+NTA8L2V4aWY6UGl4ZWxYRGltZW5zaW9uPgogICAgICAgICA8ZXhpZjpDb2xvclNwYWNlPjE8L2V4aWY6Q29sb3JTcGFjZT4KICAgICAgICAgPGV4aWY6UGl4ZWxZRGltZW5zaW9uPjUwPC9leGlmOlBpeGVsWURpbWVuc2lvbj4KICAgICAgICAgPGRjOnN1YmplY3Q+CiAgICAgICAgICAgIDxyZGY6QmFnLz4KICAgICAgICAgPC9kYzpzdWJqZWN0PgogICAgICAgICA8eG1wOk1vZGlmeURhdGU+MjAxOC0xMC0xNFQxMToxMDo0MjwveG1wOk1vZGlmeURhdGU+CiAgICAgICAgIDx4bXA6Q3JlYXRvclRvb2w+UGl4ZWxtYXRvciAzLjM8L3htcDpDcmVhdG9yVG9vbD4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgIDwvcmRmOlJERj4KPC94OnhtcG1ldGE+CkP32mEAAANASURBVGgF7ZlPiE1RHMffw1AYhiL5k1HEijJiYaFZiHoyFspW2RFRkkSZGgtFWJIwi9FYmo0VOywkKTbKgjSlWcifRCPX51dv6s2d33md77vvXjfmV9859/7u93x/v98959x73p1KRbAkSargAhgDH0E/qIYkuHYEvAPGvwbmNOEerXM/0Q6BRSFuZj/ix0DaDnvCkGppIucDAe4OhzvkcUO+GaELAf8ux7/b8Zlrr+Pvc3zm6nX8NccXdKmFLHaUPJ/Ruhyu5zNap8Nd6PiCLrUQTyi0Rjy/5/M0Zd+smB7M32XwtgBr07aC6yfSTs7XO77OALfH4VbgHsD/HLytVquJx4nyIdQFBsHftscksK5Z0sGhpuN8Or4Aa5sJFHjtO7G2MjKvvZjN1sglOpSlCMt9LrDZ4S4Hd0Qg24vrK+gAZbPtjMqTdFKhEdkIsYxFWP720JlioUK6pzDL41jtpRIqxOOWxecuB3fhRGT8E85YBK8VygI6GSRTCxlH3TaJgyw4O2678aCxO94LbNPovYDdmOrUukIBN/MqwjJEOwGPOHR31W4VONVCLEBR9lAJpBbSrYhn5K5R+quFnGUOr1ICtMIlxjz6XVb6qot9JeKvCPSAdlQJJHDtd8hOIN0wtRDLxx6Ntr0ulalTq1TJNyYzXUjj3SjD8X87Iva7uR8s5+2bi6FtX1oOgi8g2tSn1g2yPx+t3gIR/c90s1+C1vuO/YkxdWrdjxFtE2dE0VELWaqIZ+QuUfqrhZxmyKUvgEoyE1xizOR4YOI8plXXyAZEbYsyTJvXFsUW+x6wGUSbWogJ237rZHSEgojq1CooLT3MdCH6Pcu3xz8zIq0s9lvc2+sgz6dWH/rnQPB/jlybZGoh99hCHJqk0P6TD0jaI/4b7dVYeXVq2bemokyKpRZiHwWKMimWWshxhryjoEpOKXHUNbIN8WcUc5s2r8Vue7l9oAaiTS3EhDeB6EUYnUlGojq1MobLr3uokB/5hcys7OYWKuRl5nD5Cbi5uYXw0ntPHoay2S8Seuol5RZSJ0r/n/DEc/BdrN9kTZrH7BkwDspgwyQxW6uggU3nHnAXvAG/QZE2SrARsL8hJffwDxM0mNDPvT8IAAAAAElFTkSuQmCC" - webUI["html/js/configuration_ts.js"] = "dmFyIF9fZXh0ZW5kcyA9ICh0aGlzICYmIHRoaXMuX19leHRlbmRzKSB8fCAoZnVuY3Rpb24gKCkgew0KICAgIHZhciBleHRlbmRTdGF0aWNzID0gZnVuY3Rpb24gKGQsIGIpIHsNCiAgICAgICAgZXh0ZW5kU3RhdGljcyA9IE9iamVjdC5zZXRQcm90b3R5cGVPZiB8fA0KICAgICAgICAgICAgKHsgX19wcm90b19fOiBbXSB9IGluc3RhbmNlb2YgQXJyYXkgJiYgZnVuY3Rpb24gKGQsIGIpIHsgZC5fX3Byb3RvX18gPSBiOyB9KSB8fA0KICAgICAgICAgICAgZnVuY3Rpb24gKGQsIGIpIHsgZm9yICh2YXIgcCBpbiBiKSBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGIsIHApKSBkW3BdID0gYltwXTsgfTsNCiAgICAgICAgcmV0dXJuIGV4dGVuZFN0YXRpY3MoZCwgYik7DQogICAgfTsNCiAgICByZXR1cm4gZnVuY3Rpb24gKGQsIGIpIHsNCiAgICAgICAgZXh0ZW5kU3RhdGljcyhkLCBiKTsNCiAgICAgICAgZnVuY3Rpb24gX18oKSB7IHRoaXMuY29uc3RydWN0b3IgPSBkOyB9DQogICAgICAgIGQucHJvdG90eXBlID0gYiA9PT0gbnVsbCA/IE9iamVjdC5jcmVhdGUoYikgOiAoX18ucHJvdG90eXBlID0gYi5wcm90b3R5cGUsIG5ldyBfXygpKTsNCiAgICB9Ow0KfSkoKTsNCnZhciBXaXphcmRDYXRlZ29yeSA9IC8qKiBAY2xhc3MgKi8gKGZ1bmN0aW9uICgpIHsNCiAgICBmdW5jdGlvbiBXaXphcmRDYXRlZ29yeSgpIHsNCiAgICAgICAgdGhpcy5Eb2N1bWVudElEID0gImNvbnRlbnQiOw0KICAgIH0NCiAgICBXaXphcmRDYXRlZ29yeS5wcm90b3R5cGUuY3JlYXRlQ2F0ZWdvcnlIZWFkbGluZSA9IGZ1bmN0aW9uICh2YWx1ZSkgew0KICAgICAgICB2YXIgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIkg0Iik7DQogICAgICAgIGVsZW1lbnQuaW5uZXJIVE1MID0gdmFsdWU7DQogICAgICAgIHJldHVybiBlbGVtZW50Ow0KICAgIH07DQogICAgcmV0dXJuIFdpemFyZENhdGVnb3J5Ow0KfSgpKTsNCnZhciBXaXphcmRJdGVtID0gLyoqIEBjbGFzcyAqLyAoZnVuY3Rpb24gKF9zdXBlcikgew0KICAgIF9fZXh0ZW5kcyhXaXphcmRJdGVtLCBfc3VwZXIpOw0KICAgIGZ1bmN0aW9uIFdpemFyZEl0ZW0oa2V5LCBoZWFkbGluZSkgew0KICAgICAgICB2YXIgX3RoaXMgPSBfc3VwZXIuY2FsbCh0aGlzKSB8fCB0aGlzOw0KICAgICAgICBfdGhpcy5oZWFkbGluZSA9IGhlYWRsaW5lOw0KICAgICAgICBfdGhpcy5rZXkgPSBrZXk7DQogICAgICAgIHJldHVybiBfdGhpczsNCiAgICB9DQogICAgV2l6YXJkSXRlbS5wcm90b3R5cGUuY3JlYXRlV2l6YXJkID0gZnVuY3Rpb24gKCkgew0KICAgICAgICB2YXIgaGVhZGxpbmUgPSB0aGlzLmNyZWF0ZUNhdGVnb3J5SGVhZGxpbmUodGhpcy5oZWFkbGluZSk7DQogICAgICAgIHZhciBrZXkgPSB0aGlzLmtleTsNCiAgICAgICAgdmFyIGNvbnRlbnQgPSBuZXcgUG9wdXBDb250ZW50KCk7DQogICAgICAgIHZhciBkZXNjcmlwdGlvbjsNCiAgICAgICAgdmFyIGRvYyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHRoaXMuRG9jdW1lbnRJRCk7DQogICAgICAgIGRvYy5pbm5lckhUTUwgPSAiIjsNCiAgICAgICAgZG9jLmFwcGVuZENoaWxkKGhlYWRsaW5lKTsNCiAgICAgICAgc3dpdGNoIChrZXkpIHsNCiAgICAgICAgICAgIGNhc2UgInR1bmVyIjoNCiAgICAgICAgICAgICAgICB2YXIgdGV4dCA9IG5ldyBBcnJheSgpOw0KICAgICAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBuZXcgQXJyYXkoKTsNCiAgICAgICAgICAgICAgICBmb3IgKHZhciBpID0gMTsgaSA8PSAxMDA7IGkrKykgew0KICAgICAgICAgICAgICAgICAgICB0ZXh0LnB1c2goaSk7DQogICAgICAgICAgICAgICAgICAgIHZhbHVlcy5wdXNoKGkpOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCAiMSIsIGtleSk7DQogICAgICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgiY2xhc3MiLCAid2l6YXJkIik7DQogICAgICAgICAgICAgICAgc2VsZWN0LmlkID0ga2V5Ow0KICAgICAgICAgICAgICAgIGRvYy5hcHBlbmRDaGlsZChzZWxlY3QpOw0KICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uID0gInt7LndpemFyZC50dW5lci5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImVwZ1NvdXJjZSI6DQogICAgICAgICAgICAgICAgdmFyIHRleHQgPSBbIlBNUyIsICJYRVBHIl07DQogICAgICAgICAgICAgICAgdmFyIHZhbHVlcyA9IFsiUE1TIiwgIlhFUEciXTsNCiAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCAiWEVQRyIsIGtleSk7DQogICAgICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgiY2xhc3MiLCAid2l6YXJkIik7DQogICAgICAgICAgICAgICAgc2VsZWN0LmlkID0ga2V5Ow0KICAgICAgICAgICAgICAgIGRvYy5hcHBlbmRDaGlsZChzZWxlY3QpOw0KICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uID0gInt7LndpemFyZC5lcGdTb3VyY2UuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJtM3UiOg0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBrZXksICIiKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LndpemFyZC5tM3UucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgiY2xhc3MiLCAid2l6YXJkIik7DQogICAgICAgICAgICAgICAgaW5wdXQuaWQgPSBrZXk7DQogICAgICAgICAgICAgICAgZG9jLmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbiA9ICJ7ey53aXphcmQubTN1LmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAieG1sdHYiOg0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBrZXksICIiKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LndpemFyZC54bWx0di5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJjbGFzcyIsICJ3aXphcmQiKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5pZCA9IGtleTsNCiAgICAgICAgICAgICAgICBkb2MuYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uID0gInt7LndpemFyZC54bWx0di5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICAgICAgY29uc29sZS5sb2coa2V5KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgfQ0KICAgICAgICB2YXIgcHJlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiUFJFIik7DQogICAgICAgIHByZS5pbm5lckhUTUwgPSBkZXNjcmlwdGlvbjsNCiAgICAgICAgZG9jLmFwcGVuZENoaWxkKHByZSk7DQogICAgICAgIGNvbnNvbGUubG9nKGhlYWRsaW5lLCBrZXkpOw0KICAgIH07DQogICAgcmV0dXJuIFdpemFyZEl0ZW07DQp9KFdpemFyZENhdGVnb3J5KSk7DQpmdW5jdGlvbiByZWFkeUZvckNvbmZpZ3VyYXRpb24od2l6YXJkKSB7DQogICAgdmFyIHNlcnZlciA9IG5ldyBTZXJ2ZXIoImdldFNlcnZlckNvbmZpZyIpOw0KICAgIHNlcnZlci5yZXF1ZXN0KG5ldyBPYmplY3QoKSk7DQogICAgc2hvd0VsZW1lbnQoImxvYWRpbmciLCBmYWxzZSk7DQogICAgY29uZmlndXJhdGlvbldpemFyZFt3aXphcmRdLmNyZWF0ZVdpemFyZCgpOw0KfQ0KZnVuY3Rpb24gc2F2ZVdpemFyZCgpIHsNCiAgICB2YXIgY21kID0gInNhdmVXaXphcmQiOw0KICAgIHZhciBkaXYgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29udGVudCIpOw0KICAgIHZhciBjb25maWcgPSBkaXYuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSgid2l6YXJkIik7DQogICAgdmFyIHdpemFyZCA9IG5ldyBPYmplY3QoKTsNCiAgICBmb3IgKHZhciBpID0gMDsgaSA8IGNvbmZpZy5sZW5ndGg7IGkrKykgew0KICAgICAgICB2YXIgbmFtZTsNCiAgICAgICAgdmFyIHZhbHVlOw0KICAgICAgICBzd2l0Y2ggKGNvbmZpZ1tpXS50YWdOYW1lKSB7DQogICAgICAgICAgICBjYXNlICJTRUxFQ1QiOg0KICAgICAgICAgICAgICAgIG5hbWUgPSBjb25maWdbaV0ubmFtZTsNCiAgICAgICAgICAgICAgICB2YWx1ZSA9IGNvbmZpZ1tpXS52YWx1ZTsNCiAgICAgICAgICAgICAgICAvLyBXZW5uIGRlciBXZXJ0IGVpbmUgWmFobCBpc3QsIHdpcmQgZGllc2VyIGFscyBaYWhsIGdlc3BlaWNoZXJ0DQogICAgICAgICAgICAgICAgaWYgKGlzTmFOKHZhbHVlKSkgew0KICAgICAgICAgICAgICAgICAgICB3aXphcmRbbmFtZV0gPSB2YWx1ZTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgZWxzZSB7DQogICAgICAgICAgICAgICAgICAgIHdpemFyZFtuYW1lXSA9IHBhcnNlSW50KHZhbHVlKTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJJTlBVVCI6DQogICAgICAgICAgICAgICAgc3dpdGNoIChjb25maWdbaV0udHlwZSkgew0KICAgICAgICAgICAgICAgICAgICBjYXNlICJ0ZXh0IjoNCiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWUgPSBjb25maWdbaV0ubmFtZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlID0gY29uZmlnW2ldLnZhbHVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHZhbHVlLmxlbmd0aCA9PSAwKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIG1zZyA9IG5hbWUudG9VcHBlckNhc2UoKSArICI6ICIgKyAie3suYWxlcnQubWlzc2luZ0lucHV0fX0iOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFsZXJ0KG1zZyk7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuOw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgd2l6YXJkW25hbWVdID0gdmFsdWU7DQogICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBkZWZhdWx0Og0KICAgICAgICAgICAgICAgIC8vIGNvZGUuLi4NCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgfQ0KICAgIH0NCiAgICB2YXIgZGF0YSA9IG5ldyBPYmplY3QoKTsNCiAgICBkYXRhWyJ3aXphcmQiXSA9IHdpemFyZDsNCiAgICB2YXIgc2VydmVyID0gbmV3IFNlcnZlcihjbWQpOw0KICAgIHNlcnZlci5yZXF1ZXN0KGRhdGEpOw0KICAgIGNvbnNvbGUubG9nKGRhdGEpOw0KfQ0KLy8gV2l6YXJkDQp2YXIgY29uZmlndXJhdGlvbldpemFyZCA9IG5ldyBBcnJheSgpOw0KY29uZmlndXJhdGlvbldpemFyZC5wdXNoKG5ldyBXaXphcmRJdGVtKCJ0dW5lciIsICJ7ey53aXphcmQudHVuZXIudGl0bGV9fSIpKTsNCmNvbmZpZ3VyYXRpb25XaXphcmQucHVzaChuZXcgV2l6YXJkSXRlbSgiZXBnU291cmNlIiwgInt7LndpemFyZC5lcGdTb3VyY2UudGl0bGV9fSIpKTsNCmNvbmZpZ3VyYXRpb25XaXphcmQucHVzaChuZXcgV2l6YXJkSXRlbSgibTN1IiwgInt7LndpemFyZC5tM3UudGl0bGV9fSIpKTsNCmNvbmZpZ3VyYXRpb25XaXphcmQucHVzaChuZXcgV2l6YXJkSXRlbSgieG1sdHYiLCAie3sud2l6YXJkLnhtbHR2LnRpdGxlfX0iKSk7DQo=" - webUI["html/css/base.css"] = "KiB7DQogIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTsNCiAgLW1vei1hcHBlYXJhbmNlOiBub25lOw0KICAtbXMtYXBwZWFyYW5jZTogbm9uZTsNCiAgZm9udC1mYW1pbHk6ICJBcmlhbCIsIHNhbnMtc2VyaWY7DQogIGxldHRlci1zcGFjaW5nOiAycHg7IA0KfQ0KDQovKg0KOjotd2Via2l0LXNjcm9sbGJhciB7IA0KICAgIGRpc3BsYXk6IG5vbmU7IA0KfQ0KKi8NCg0KOjotd2Via2l0LXNjcm9sbGJhciB7DQogIHdpZHRoOiAxMnB4Ow0KICBoZWlnaHQ6IDEycHg7DQp9DQoNCiANCjo6LXdlYmtpdC1zY3JvbGxiYXItdHJhY2sgew0KICAtd2Via2l0LWJveC1zaGFkb3c6IGluc2V0IDAgMCA2cHggcmdiYSgwLDAsMCwwLjMpOyANCiAgYm9yZGVyLXJhZGl1czogNXB4Ow0KICAgIA0KfQ0KIA0KOjotd2Via2l0LXNjcm9sbGJhci10aHVtYiB7DQogIGJvcmRlci1yYWRpdXM6IDVweDsNCiAgLXdlYmtpdC1ib3gtc2hhZG93OiBpbnNldCAwIDAgNnB4IHJnYmEoMCwgMCwgMCwwLjYpOyANCiAgYmFja2dyb3VuZC1jb2xvcjogIzQ0NDsNCn0NCg0KOjotd2Via2l0LXNjcm9sbGJhci10aHVtYjpob3ZlciB7DQogIGJhY2tncm91bmQ6ICMzMzM7IA0KfQ0KDQo6Oi13ZWJraXQtc2Nyb2xsYmFyLWNvcm5lciB7IA0KICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsgDQp9DQoNCmEgew0KICBjb2xvcjogIzAwRTZGRjsNCn0NCg0KaHRtbCwgYm9keSB7DQogIGNvbG9yOiAjZmZmOw0KICBtYXJnaW46IDBweCBhdXRvOw0KICBoZWlnaHQ6IDEwMCU7DQogIGZvbnQtc2l6ZTogMTRweDsNCn0NCg0KaDIgew0KICBmb250LXNpemU6IDI0cHg7DQogIGxldHRlci1zcGFjaW5nOiAycHg7DQp9DQoNCmgzIHsNCiAgZm9udC1zaXplOiAyMnB4Ow0KICBsZXR0ZXItc3BhY2luZzogMXB4Ow0KfQ0KDQpoNCB7DQogIGZvbnQtc2l6ZTogMjBweDsNCiAgbGV0dGVyLXNwYWNpbmc6IDFweDsNCiAgbGluZS1oZWlnaHQ6IDEuNWVtOw0KDQp9DQoNCmg1IHsNCiAgZm9udC1zaXplOiAxNnB4Ow0KICBsZXR0ZXItc3BhY2luZzogMXB4Ow0KICBsaW5lLWhlaWdodDogMS4yZW07DQogIG1hcmdpbjogMjVweCAwcHggMTBweCAwcHg7DQp9DQoNCmhyIHsNCiAgYm9yZGVyOiAwOw0KICBoZWlnaHQ6IDFweDsNCiAgYmFja2dyb3VuZDogIzMzMzsNCiAgbWFyZ2luOiAxMHB4IDBweDsNCn0NCg0KcCB7DQogIG1hcmdpbjogMnB4Ow0KICBwYWRkaW5nOiAycHggNXB4Ow0KfQ0KDQpwcmUgew0KICBtYXJnaW46IDBweCAwcHggNXB4IDBweDsNCiAgZm9udC1zaXplOiAxMnB4Ow0KICBjb2xvcjogI2RkZDsNCiAgbGV0dGVyLXNwYWNpbmc6IDFweDsNCiAgd2hpdGUtc3BhY2U6IHByZS13cmFwOw0KICBmb250LWZhbWlseTogbW9ub3NwYWNlOyANCiAgZm9udC1zaXplOiAxMnB4OyANCiAgZm9udC1zdHlsZTogbm9ybWFsOyANCiAgZm9udC12YXJpYW50OiBub3JtYWw7IA0KICBsaW5lLWhlaWdodDogMS42ZW07IA0KfQ0KDQpsYWJlbCB7DQogIG1hcmdpbi1ib3R0b206IDIwcHg7DQogIGRpc3BsYXk6IGJsb2NrOw0KfQ0KDQpsaSB7DQogIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTsNCiAgYmFja2dyb3VuZC1jb2xvcjogIzExMTsNCiAgcGFkZGluZzogMTBweCAyMHB4Ow0KICBjdXJzb3I6IHBvaW50ZXI7DQogIGJvcmRlci1sZWZ0OiBzb2xpZCAycHggIzExMTsNCiAgdHJhbnNpdGlvbjogYWxsIDAuMzsNCn0NCg0KbGk6aG92ZXIgew0KICBib3JkZXItY29sb3I6ICMwMEU2RkYNCn0NCg0Kc2VsZWN0IHsNCiAgY3Vyc29yOiBwb2ludGVyOw0KICB3aWR0aDogY2FsYygxMDAlICsgMnB4KTsNCiAgYm9yZGVyOiBzb2xpZCAwcHggIzAwRTZGRjsNCiAgYm9yZGVyLXJhZGl1czogMHB4Ow0KICBvdXRsaW5lOiBub25lOw0KICBjb2xvcjogI2ZmZjsNCiAgcGFkZGluZzogOXB4IDEwcHg7DQogIGRpc3BsYXk6YmxvY2s7DQogIGJhY2tncm91bmQtY29sb3I6ICMzMzM7DQogIGZvbnQtc2l6ZTogMTRweDsNCiAgbWFyZ2luOiA1cHggMHB4IDVweCAwcHg7DQp9DQoNCnNlbGVjdDpmb2N1cyB7DQogIG91dGxpbmU6IG5vbmU7DQp9DQoNCmlucHV0IHsNCiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lOw0KICBtYXJnaW46IDVweCAwcHg7DQogIHBhZGRpbmc6IDIuNXB4IDEwcHg7DQogIG91dGxpbmU6IG5vbmU7DQogIGZvbnQtc2l6ZTogMTRweDsNCn0NCg0KaW5wdXRbdHlwZT1idXR0b25dLCBpbnB1dFt0eXBlPXN1Ym1pdF0gew0KICBjdXJzb3I6IHBvaW50ZXI7DQogIGJhY2tncm91bmQtY29sb3I6ICMwMDA7DQogIG1hcmdpbjogMTBweCAxMHB4Ow0KICBwYWRkaW5nOiAxMHB4IDI1cHg7DQogIGJvcmRlcjogc29saWQgMHB4Ow0KICBib3JkZXItY29sb3I6ICMwMDA7DQogIGJvcmRlci1yYWRpdXM6IDNweDsNCiAgb3V0bGluZTogbm9uZTsNCiAgY29sb3I6ICNmZmY7DQp9DQoNCmlucHV0W3R5cGU9YnV0dG9uXTpmb2N1cyB7IA0KICAgb3V0bGluZTogbm9uZTsNCn0NCg0KaW5wdXRbdHlwZT1idXR0b25dOmhvdmVyIHsNCiAgYmFja2dyb3VuZC1jb2xvcjogIzAwRTZGRjsNCiAgY29sb3I6ICMwMDA7DQp9DQoNCmlucHV0W3R5cGU9YnV0dG9uXTpob3Zlci5kZWxldGUgIHsNCiAgYmFja2dyb3VuZC1jb2xvcjogcmVkOw0KICBjb2xvcjogI2ZmZjsNCn0NCg0KaW5wdXRbdHlwZT10ZXh0XSwgaW5wdXRbdHlwZT1zZWFyY2hdLCBpbnB1dFt0eXBlPXBhc3N3b3JkXSB7DQogIGNvbG9yOiAjZmZmOw0KICB3aWR0aDogLXdlYmtpdC1jYWxjKDEwMCUgLSAwcHgpOw0KICB3aWR0aDogLW1vei1jYWxjKDEwMCUgLSAwcHgpOw0KICB3aWR0aDogY2FsYygxMDAlIC0gMHB4KTsNCiAgb3V0bGluZTogbm9uZTsNCiAgYm9yZGVyOiBzb2xpZCAxcHggdHJhbnNwYXJlbnQ7DQogIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50Ow0KICBib3JkZXItYm90dG9tLWNvbG9yOiAjNTU1Ow0KICBib3JkZXItcmFkaXVzOiAwcHg7DQogIHBhZGRpbmc6IDhweCAxMHB4Ow0KfQ0KDQppbnB1dFt0eXBlPSJjaGVja2JveCJdIHsNCiAgYm9yZGVyOiBzb2xpZCAxcHggIzAwRTZGRjsNCiAgYmFja2dyb3VuZC1jb2xvcjogIzMzMzsNCiAgaGVpZ2h0OiAyNXB4Ow0KICB3aWR0aDogMjVweDsNCiAgY3Vyc29yOiBwb2ludGVyOw0KICAvKg0KICAtd2Via2l0LWFwcGVhcmFuY2U6IGNoZWNrYm94Ow0KICAqLw0KfQ0KDQppbnB1dFt0eXBlPSJjaGVja2JveCJdOmNoZWNrZWQgew0KICBjb2xvcjogI2ZmZjsNCiAgYmFja2dyb3VuZC1jb2xvcjogIzAwRTZGRjsNCiAgLypkaXNwbGF5OiBpbmxpbmUtYmxvY2s7Ki8NCn0NCg0KaW5wdXRbdHlwZT0iY2hlY2tib3giXTpiZWZvcmUgew0KICBwb3NpdGlvbjogaW5pdGlhbDsNCiAgbGVmdDogMHB4Ow0KICBtYXJnaW4tbGVmdDogLTRweDsNCiAgY29udGVudDogIiAiOw0KfQ0KDQppbnB1dFt0eXBlPSJjaGVja2JveCJdOmNoZWNrZWQ6YmVmb3JlIHsNCiAgcG9zaXRpb246IGluaXRpYWw7DQogIGxlZnQ6IDBweDsNCiAgbWFyZ2luLWxlZnQ6IC0zcHg7DQogIGNvbnRlbnQ6ICLinJMiOw0KICBjb2xvcjogIzAwMDsNCn0NCg0KDQppbnB1dFt0eXBlPWJ1dHRvbl0uY2FuY2VsIHsNCiAgDQogIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50Ow0KICBib3JkZXItY29sb3I6IHJlZDsNCn0NCg0KaW5wdXRbdHlwZT1idXR0b25dLnNhdmV7DQogIGJhY2tncm91bmQtY29sb3I6ICMxMTE7DQogIGZsb2F0OiByaWdodDsNCn0NCg0KDQppbnB1dFt0eXBlPWJ1dHRvbl0uYmxhY2ssIGlucHV0W3R5cGU9c3VibWl0XS5ibGFja3sNCiAgYmFja2dyb3VuZC1jb2xvcjogIzAwMDsNCiAgYm9yZGVyLWNvbG9yOiAjMDAwOw0KfQ0KDQppbnB1dFt0eXBlPWJ1dHRvbl0uY2VudGVyew0KICBtYXJnaW4tcmlnaHQ6IGF1dG87DQogIG1hcmdpbi1sZWZ0OiBhdXRvOw0KICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDAwOw0KICBib3JkZXItY29sb3I6ICMwMDA7DQp9DQoNCi5wb2ludGVyIHsNCiAgY3Vyc29yOiBwb2ludGVyOw0KfQ0KDQoucG9pbnRlcjpob3ZlciB7DQogIGNvbG9yOiAjMDBFNkZGOw0KICBjdXJzb3I6IHBvaW50ZXI7DQp9DQoNCi5zb3J0VGhpcyB7DQogIGNvbG9yOiAjMDBFNkZGOw0KfQ0KDQoudzQwcHggew0KICBtYXgtd2lkdGg6IDQwcHg7DQp9DQoNCi53NTBweCB7DQogIG1heC13aWR0aDogNTBweDsNCn0NCg0KLnc4MHB4IHsNCiAgbWF4LXdpZHRoOiA4MHB4Ow0KfQ0KDQoudzE1MHB4IHsNCiAgbWF4LXdpZHRoOiAxNTBweDsNCn0NCg0KLncyMDBweCB7DQogIG1heC13aWR0aDogMjAwcHg7DQogIG1pbi13aWR0aDogMTAwcHg7DQogIHdpZHRoOiAyMDBweDsNCiAgb3ZlcmZsb3cteDogaGlkZGVuOw0KICB3aGl0ZS1zcGFjZTogbm93cmFwOw0KICBvdmVyZmxvdzogaGlkZGVuOw0KICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsNCn0NCg0KLnczMDBweCB7DQogIG1heC13aWR0aDogMzAwcHg7DQp9DQoNCi53MjIwcHggew0KICBtYXgtd2lkdGg6IDIyMHB4Ow0KICBjdXJzb3I6IGFsaWFzOw0KfQ0KDQouZm9vdGVyIHsNCiAgZm9udC1zaXplOiAxMHB4Ow0KfQ0KDQouY2VudGVyIHsNCiAgdGV4dC1hbGlnbjogY2VudGVyOw0KfQ0KDQouc2NyZWVuTG9nSGlkZGVuIHsNCiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMHB4LCAtMTEwcHgpOw0KfQ0KDQouYm9yZGVyU3BhY2Ugew0KICBtYXJnaW4tYm90dG9tOiAzMHB4Ow0KfQ0KDQouYmxvY2sgew0KDQp9DQoNCi5ub25lIHsNCiAgZGlzcGxheTogbm9uZTsNCn0NCg0KDQoubm90VmlzaWJsZSB7DQogIGhlaWdodDogMHB4Ow0KICBkaXNwbGF5OiBub25lOw0KICBvcGFjaXR5OiAwOw0KICBib3JkZXItYm90dG9tOiAjMDAwIHNvbGlkIDBweDsNCiAgDQp9DQoNCi52aXNpYmxlIHsNCiAgb3BhY2l0eTogMTsNCiAgZGlzcGxheTogYmxvY2s7DQogIGJvcmRlci1ib3R0b206ICM0NDQgc29saWQgMXB4OyANCiAgcGFkZGluZzogMTBweDsNCn0NCg0KLmZsb2F0UmlnaHQgew0KICBmbG9hdDogcmlnaHQ7DQp9DQoNCi5mbG9hdExlZnQgew0KICBmbG9hdDogbGVmdDsNCn0NCg0KLm1lbnUtYWN0aXZlIHsNCiAgYmFja2dyb3VuZC1jb2xvcjogIzAwRTZGRjsNCn0NCg0KLm1lbnUtbm90QWN0aXZlIHsNCiAgDQp9DQoNCiNicmFuY2ggew0KICBkaXNwbGF5OiB0YWJsZTsNCiAgbWFyZ2luOiBhdXRvOw0KICBjb2xvcjogcmVkOw0KfQ0KDQojaW50ZXJhY3Rpb24gew0KICBtYXJnaW4tYm90dG9tOiAxMDBweDsNCiAgdGV4dC1hbGlnbjogY2VudGVyOw0KICBib3JkZXItYm90dG9tOiBzb2xpZCAwcHggIzc3NzsNCn0NCg0KDQouaGFsZiB7DQogIGRpc3BsYXk6IGJsb2NrOw0KICB3aWR0aDogNDUlOw0KfQ0KDQoubWVudSB7DQogIGJvcmRlcjogc29saWQgMXB4ICMwMEU2RkY7DQp9DQoNCi5pbmZvTXNnIHsNCiAgY29sb3I6ICNhYWE7DQp9DQoNCi5lcnJvck1zZyB7DQogIGNvbG9yOiByZWQ7DQp9DQoNCi53YXJuaW5nTXNnIHsNCiAgY29sb3I6IHllbGxvdzsNCn0NCg0KLmRlYnVnTXNnIHsNCiAgY29sb3I6IG1hZ2VudGE7DQp9DQoNCi5OZXdzLCAuTW92aWUsIC5TZXJpZXMsIC5TcG9ydHMsIC5LaWRzIHsNCiAgYm9yZGVyLWxlZnQ6IHNvbGlkIDJweA0KfQ0KDQouTmV3cyB7DQogIGJvcmRlci1jb2xvcjogdG9tYXRvDQp9DQoNCi5Nb3ZpZSB7DQogIGJvcmRlci1jb2xvcjogcm95YWxibHVlOw0KfQ0KDQouU2VyaWVzIHsNCiAgYm9yZGVyLWNvbG9yOiBnb2xkOw0KfQ0KDQouU3BvcnRzIHsNCiAgYm9yZGVyLWNvbG9yOiB5ZWxsb3dncmVlbjsNCn0NCg0KLktpZHMgew0KICBib3JkZXItY29sb3I6IG1lZGl1bXB1cnBsZTsNCn0NCg0KLyogTG9hZGluZyAqLw0KI2xvYWRpbmcgew0KICBsZWZ0OiAwcHg7DQogIHRvcDogMHB4Ow0KICB6LWluZGV4OiAxMDAwMDsNCiAgcG9zaXRpb246IGFic29sdXRlOw0KICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsMCwwLCAwLjgpOw0KICBtYXJnaW46IGF1dG87DQogIHdpZHRoOiAxMDAlOw0KICBoZWlnaHQ6IDEwMCU7DQp9DQoNCg0KLmxvYWRlciB7DQogIGJvcmRlcjogNXB4IHNvbGlkIHRyYW5zcGFyZW50Ow0KICBib3JkZXItcmFkaXVzOiA1MCU7DQogIGJvcmRlci10b3A6IDVweCBzb2xpZCAjMDBFNkZGOw0KICBib3JkZXItYm90dG9tOiA1cHggc29saWQgIzAwRTZGRjsNCiAgd2lkdGg6IDUwcHg7DQogIGhlaWdodDogNTBweDsNCiAgLXdlYmtpdC1hbmltYXRpb246IHNwaW4gMS4ycyBsaW5lYXIgaW5maW5pdGU7DQogIGFuaW1hdGlvbjogc3BpbiAxLjJzIGxpbmVhciBpbmZpbml0ZTsNCg0KICBwb3NpdGlvbjogZml4ZWQ7DQogIG1hcmdpbjogYXV0bzsNCg0KICB0b3A6IDA7DQogIHJpZ2h0OiAwOw0KICBib3R0b206IDA7DQogIGxlZnQ6IDA7DQogIA0KfQ0KDQpALXdlYmtpdC1rZXlmcmFtZXMgc3BpbiB7DQogIDAlIHsgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTsgfQ0KICAxMDAlIHsgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpOyB9DQp9DQoNCkBrZXlmcmFtZXMgc3BpbiB7DQogIDAlIHsgdHJhbnNmb3JtOiByb3RhdGUoMGRlZyk7IH0NCiAgMTAwJSB7IHRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7IH0NCn0NCg==" - webUI["html/css/screen.css"] = "bmF2IGltZyB7DQogIGRpc3BsYXk6IGJsb2NrOw0KICBtYXgtaGVpZ2h0OiAyMHB4Ow0KICBtYXgtd2lkdGg6IDIwcHg7DQogIGZsb2F0OiBsZWZ0Ow0KfQ0KDQpuYXYgcCB7DQogIHRleHQtYWxpZ246IGxlZnQ7DQogIHBhZGRpbmc6IDBweCAzMHB4Ow0KfQ0KDQojbGF5b3V0IHsNCiAgZGlzcGxheTogYmxvY2s7DQogIGhlaWdodDogMTAwJTsNCn0NCg0KDQoubGF5b3V0LWxlZnQgew0KICBkaXNwbGF5OiBibG9jazsNCiAgbWluLXdpZHRoOiAxNTBweDsNCiAgbWF4LXdpZHRoOiAyMCU7DQogIGJhY2tncm91bmQtY29sb3I6ICMxMTE7DQogIGhlaWdodDogaW5oZXJpdDsNCiAgZmxvYXQ6IGxlZnQ7DQp9DQoNCi5sYXlvdXQtcmlnaHQgew0KICBkaXNwbGF5OiBibG9jazsNCiAgYmFja2dyb3VuZC1jb2xvcjogIzQ0NDsNCn0NCg0KI21lbnUtd3JhcHBlciB7DQogIGhlaWdodDogMTAwJTsNCn0NCg0KDQojbG9nbyB7DQogIGRpc3BsYXk6IGJsb2NrOw0KICBtaW4td2lkdGg6IDE4MHB4Ow0KICB3aWR0aDogMTAwJTsNCiAgaGVpZ2h0OiAxMDBweDsNCiAgYmFja2dyb3VuZDogdXJsKCIuLi9pbWcvbG9nb193XzYwMHgyMDAucG5nIik7DQogIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7DQogIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjsgDQogIGJhY2tncm91bmQtc2l6ZTogMTAwJTsNCn0NCg0KDQojcGFnZSB7DQogIG1heC13aWR0aDogOTUwcHg7DQogIG1hcmdpbjogYXV0bzsNCiAgYmFja2dyb3VuZC1jb2xvcjogIzQ0NDsNCg0KICAvKg0KICBoZWlnaHQ6IC13ZWJraXQtY2FsYygxMDAlIC0gMTMwcHgpOw0KICBoZWlnaHQ6IC1tb3otY2FsYygxMDAlIC0gMTMwcHgpOw0KICBoZWlnaHQ6IGNhbGMoMTAwJSAtIDEzMHB4KTsNCiAgKi8NCiAgDQogIG1pbi1oZWlnaHQ6IC13ZWJraXQtY2FsYygxMDAlIC0gMTIwcHgpOw0KICBtaW4taGVpZ2h0OiAtbW96LWNhbGMoMTAwJSAtIDEyMHB4KTsNCiAgbWluLWhlaWdodDogY2FsYygxMDAlIC0gMTIwcHgpOw0KICANCiAgDQogIGJveC1zaGFkb3c6IDBweCA1cHggNXB4ICMyMjI7DQogIA0KfQ0KDQojdWlTZXR0aW5nIHsNCiAgZmxvYXQ6IHJpZ2h0Ow0KICBtYXJnaW4tcmlnaHQ6IDI1cHg7DQp9DQoNCiNib3ggaW5wdXRbdHlwZT10ZXh0XSwgI2JveCBpbnB1dFt0eXBlPXBhc3N3b3JkXSB7DQogIHdpZHRoOiAtd2Via2l0LWNhbGMoMTAwJSAtIDIwcHgpOw0KICB3aWR0aDogLW1vei1jYWxjKDEwMCUgLSAyMHB4KTsNCiAgd2lkdGg6IGNhbGMoMTAwJSAtIDIwcHgpOw0KfQ0KDQojYm94IGlucHV0W3R5cGU9c3VibWl0XXsNCiAgbWFyZ2luOiA1MHB4IGF1dG87DQp9DQoNCiNzZXR0aW5ncyB7DQogIGRpc3BsYXk6IGJsb2NrOw0KICBwYWRkaW5nOiAxMHB4IDEwcHg7DQp9DQoNCiNzZXR0aW5ncyBoNSB7DQogIG1hcmdpbjogNTBweCAwcHggMTBweCAwcHg7DQp9DQoNCiNjb250ZW50LWludGVyYWN0aW9uIC5zZWFyY2ggew0KICB3aWR0aDogMjAwcHg7DQogIGJvcmRlcjogMXB4IHNvbGlkICMwMDA7DQogIHBhZGRpbmc6IDlweDsNCiAgYmFja2dyb3VuZC1jb2xvcjogIzMzMzsNCiAgbWFyZ2luOiAxMHB4Ow0KICBmbG9hdDogcmlnaHQ7DQogIGJvcmRlci1yYWRpdXM6IDNweDsNCg0KfQ0KDQojbXlTdHJlYW1zIHsNCiAgcG9zaXRpb246IGZpeGVkOw0KICBib3R0b206IDBweDsNCiAgYmFja2dyb3VuZC1jb2xvcjogIzExMTsNCiAgd2lkdGg6IDEwMCU7DQogIG1heC13aWR0aDogOTUwcHg7DQoNCiAgLyoNCiAgbWF4LWhlaWdodDogMTAwcHg7DQogICovDQogIG1hcmdpbi1ib3R0b206IDBweDsNCn0NCg0KI215U3RyZWFtcyBpbWcgew0KICB3aWR0aDogNCU7DQogIHBhZGRpbmc6IDJweCA1cHg7DQogIGN1cnNvcjogcG9pbnRlcjsNCiAgZmxvYXQ6IHJpZ2h0Ow0KfQ0KDQojc2V0dGluZ3MtZm9vdGVyIHsNCg0KfQ0KDQoNCi8qIFdpemFyZCovDQojYm94IHsNCiAgYmFja2dyb3VuZC1jb2xvcjogIzQ0NDsNCiAgbWluLWhlaWdodDogNDAwcHg7DQogIA0KICBkaXNwbGF5OiBmbGV4Ow0KICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOw0KICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47DQp9DQoNCiNib3ggcHsNCiAgcGFkZGluZzogMTBweCAwcHg7DQp9DQoNCiNib3gtZm9vdGVyIHsNCiAgbWFyZ2luLXRvcDogYXV0bzsNCn0NCg0KI2JveC1mb290ZXIgew0KICBtYXJnaW46IGF1dG87DQogIHBhZGRpbmc6IDEwcHg7DQp9DQoNCiNoZWFkbGluZSB7DQogIGJhY2tncm91bmQtY29sb3I6ICMyMjI7DQogIGJvcmRlci1ib3R0b206IHNvbGlkIDJweCAjMjIyOw0KICB0cmFuc2l0aW9uOiBhbGwgMC41czsNCiAgcGFkZGluZzogMTBweCAwcHg7DQogIGRpc3BsYXk6IGJsb2NrOw0KfQ0KDQojY29udGVudCB7DQogIGRpc3BsYXk6IGJsb2NrOw0KICBvdmVyZmxvdzogYXV0bzsNCiAgcGFkZGluZzogMTBweDsNCn0NCg0KLyogLS0tICovDQoNCg0KI2NsaWVudEluZm8sICNhY3RpdmVTdHJlYW1zLCAjaW5hY3RpdmVTdHJlYW1zIHsNCiAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZTsNCiAgZGlzcGxheTogYmxvY2s7DQogIGZvbnQtc2l6ZTogOXB4Ow0KICBiYWNrZ3JvdW5kLWNvbG9yOiAjMTExOw0KICBjb2xvcjogIzAwRTZGRjsNCiAgYm9yZGVyLWJvdHRvbTogc29saWQgMHB4OzsNCiAgcGFkZGluZzogMHB4Ow0KICBsZXR0ZXItc3BhY2luZzogMXB4Ow0KICBvdmVyZmxvdy14OiBoaWRkZW47DQogIGJvcmRlci1zcGFjaW5nOiA0cHggNHB4Ow0KICBib3JkZXItYm90dG9tOiBzb2xpZCAxcHggIzQ0NDsNCn0NCg0KI215U3RyZWFtc0JveCB7DQogIHBvc2l0aW9uOiByZWxhdGl2ZTsNCiAgcGFkZGluZzogMHB4Ow0KICAvKmhlaWdodDogMTAwcHg7Ki8NCiAgbWF4LWhlaWdodDogMTUwcHg7DQogIGJhY2tncm91bmQtY29sb3I6ICMxMTE7DQogIGNvbG9yOiB3aGl0ZTsNCiAgZGlzcGxheTpmbGV4Ow0KICBqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyOw0KICBhbGlnbi1pdGVtczpjZW50ZXI7DQp9DQoNCiNvcGVuU3RyZWFtcyB7DQogIHdpZHRoOiAyMHB4Ow0KICBoZWlnaHQ6IDIwcHg7DQogIGN1cnNvcjogcG9pbnRlcjsNCiAgZmxvYXQ6IHJpZ2h0Ow0KICBwb3NpdGlvbjogYWJzb2x1dGU7DQogIHJpZ2h0OiAwcHg7DQogIGJvdHRvbTogMHB4Ow0KICBiYWNrZ3JvdW5kOiB1cmwoIi4uL2ltZy90b3VjaC5wbmciKTsNCiAgYmFja2dyb3VuZC1jb2xvcjogIzExMTsNCiAgDQogIGJhY2tncm91bmQtcG9zaXRpb246IGJvdHRvbSByaWdodDsgIA0KfQ0KDQojYWxsU3RyZWFtcyB7DQogIHdpZHRoOiAxMDAlOw0KICBoZWlnaHQ6IDEwMCU7DQogIHBhZGRpbmc6IDJweDsgICAgIA0KfQ0KDQojYWN0aXZlU3RyZWFtcywgI2luYWN0aXZlU3RyZWFtcyB7DQogIG92ZXJmbG93LXk6IHNjcm9sbDsNCiAgd2lkdGg6IDUwJTsNCiAgbWF4LWhlaWdodDogMTAwcHg7DQogIGZsb2F0OiBsZWZ0Ow0KfQ0KDQojYWN0aXZlU3RyZWFtcyAudGRLZXksICNpbmFjdGl2ZVN0cmVhbXMgLnRkS2V5IHsNCiAgd2lkdGg6IDc1cHg7DQp9DQoNCg0KDQoNCiNpbmFjdGl2ZVN0cmVhbXMgLnRkS2V5IHsNCiAgY29sb3I6IHJlZDsNCn0NCg0KI2NsaWVudEluZm8gLnRkVmFsLCAjbG9nSW5mbyAudGRWYWwsICNhY3RpdmVTdHJlYW1zIC50ZFZhbCwgI2luYWN0aXZlU3RyZWFtcyAudGRWYWwsICNtYXBwaW5nSW5mbyAudGRWYWx7DQogIGNvbG9yOiAjYWFhOw0KICB3aGl0ZS1zcGFjZTogaW5oZXJpdDsNCn0NCg0KI2JveC13cmFwcGVyIHsNCiAgZGlzcGxheTogaW5saW5lLWJsb2NrOw0KICB3aWR0aDogMTAwJTsNCiAgDQogIG92ZXJmbG93LXk6IHNjcm9sbDsNCn0NCg0KI2NvbnRlbnRfdGFibGUsICNtYXBwaW5nLWRldGFpbC10YWJsZSwgI2NvbnRlbnRfdGFibGUgew0KICBkaXNwbGF5OiB0YWJsZTsNCiAgDQogIGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7DQogIG92ZXJmbG93LXk6IHNjcm9sbDsNCiAgd2lkdGg6IDEwMCU7DQp9DQoNCg0KI2NvbnRlbnRfdGFibGUgLmNvbnRlbnRfdGFibGVfaGVhZGVyIHsNCiAgYmFja2dyb3VuZC1jb2xvcjogIzMzMzsNCiAgaGVpZ2h0OiA1MHB4Ow0KICBib3JkZXItYm90dG9tOiBzb2xpZCAxcHggIzExMTsNCiAgYm9yZGVyLWxlZnQ6IHNvbGlkIDNweCAjMzMzOw0KICBjdXJzb3I6IGF1dG87DQoNCn0NCg0KDQp0Ym9keSB7DQogIHdpZHRoOiAxMDAlOw0KfQ0KDQoNCi50YWJsZUVsbGlwc2lzIHsNCiAgd2lkdGg6IDE1MHB4Ow0KICBvdmVyZmxvdzogaGlkZGVuOw0KICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsNCiAgd2hpdGUtc3BhY2U6IG5vd3JhcDsNCn0NCg0KI2NvbnRlbnRfdGFibGUgaW1nIHsNCiAgZGlzcGxheTogYmxvY2s7DQogIG1heC1oZWlnaHQ6IDI4cHg7DQogIG1hcmdpbi1sZWZ0OiBhdXRvOw0KICBtYXJnaW4tcmlnaHQ6IGF1dG87DQogIG1heC13aWR0aDogMzBweDsNCn0NCg0KI2NvbnRlbnRfdGFibGUgdHJ7DQogIGJvcmRlci1sZWZ0OiBzb2xpZCAzcHggNDQ0Ow0KICBib3JkZXItYm90dG9tOiBzb2xpZCAxcHggIzMzMzsNCiAgY3Vyc29yOiBwb2ludGVyOw0KfQ0KDQojY29udGVudF90YWJsZSB0cjpob3ZlciB7DQogIGJhY2tncm91bmQtY29sb3I6ICMzMzM7DQp9DQoNCiNjb250ZW50X3RhYmxlIHRkIHsNCg0KICBwYWRkaW5nOiAwcHggMnB4Ow0KfQ0KDQojY29udGVudF90YWJsZSBpbnB1dFt0eXBlPXRleHRdew0KICB3aWR0aDogODAlOw0KICBtaW4td2lkdGg6IDM1cHg7DQogIG1heC13aWR0aDogNjBweDsNCiAgYm9yZGVyOiAwcHg7DQogIGJhY2tncm91bmQtY29sb3I6ICMzMzM7DQogIG1hcmdpbi1sZWZ0OiA1cHg7DQogIHRleHQtYWxpZ246IGxlZnQ7DQp9DQoNCiNjb250ZW50X3RhYmxlIGlucHV0W3R5cGU9Y2hlY2tib3hdew0KICBtYXgtd2lkdGg6IDI1cHg7DQogIG1hcmdpbjogYXV0bzsNCn0NCg0KDQouc2hvd0J1bGsgew0KICBkaXNwbGF5OiBibG9jazsNCn0NCg0KLmhpZGVCdWxrIHsNCiAgZGlzcGxheTogbm9uZTsNCn0NCg0KLm5vQnVsayB7DQoNCn0NCg0KI2NvbnRlbnRfdGFibGUgdHIuYWN0aXZlRVBHew0KICBib3JkZXItbGVmdDogc29saWQgM3B4IGxhd25ncmVlbjsNCn0NCg0KI2NvbnRlbnRfdGFibGUgdHIubm90QWN0aXZlRVBHew0KICBib3JkZXItbGVmdDogc29saWQgM3B4IHJlZDsNCn0NCg0KDQojbG9nU2NyZWVuIHB7DQogIHdoaXRlLXNwYWNlOiBwcmU7DQogIGZvbnQtc2l6ZTogMTBweDsNCiAgLyoNCiAgbGluZS1oZWlnaHQ6IDEuNmVtOw0KICBmb250LWZhbWlseTogIkFyaWFsIiwgc2Fucy1zZXJpZjsNCiAgKi8NCiAgbGV0dGVyLXNwYWNpbmc6IDFweDsNCiAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZTsgDQogIGZvbnQtc2l6ZTogMTJweDsgDQogIGZvbnQtc3R5bGU6IG5vcm1hbDsgDQogIGZvbnQtdmFyaWFudDogbm9ybWFsOyANCiAgbGluZS1oZWlnaHQ6IDEuNmVtOyANCn0NCg0KI3BvcHVwIHsNCiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjQpOw0KICBwb3NpdGlvbjogZml4ZWQ7DQogIGxlZnQ6IDBweDsNCiAgd2lkdGg6IDEwMCU7DQogIHotaW5kZXg6IDEwMDsNCiAgaGVpZ2h0OiAxMDAlOw0KfQ0KDQojbWFwcGluZy1kZXRhaWwsICN1c2VyLWRldGFpbCwgI2ZpbGUtZGV0YWlsLCAjcG9wdXAtY3VzdG9tIHsNCiAgYm94LXNoYWRvdzogMHB4IDVweCA0MHB4ICMwMDA7DQogIG1hcmdpbi10b3A6IDIwcHg7DQogIG1hcmdpbi1sZWZ0OiBhdXRvOw0KICBtYXJnaW4tcmlnaHQ6IGF1dG87DQogIA0KICBtYXgtd2lkdGg6IDYwMHB4Ow0KICBiYWNrZ3JvdW5kLWNvbG9yOiAjMjIyOw0KICBwYWRkaW5nOiAxMHB4Ow0KICBvdmVyZmxvdzphdXRvOw0KfQ0KDQojcG9wdXAtY3VzdG9tIGgzIHsNCiAgdGV4dC1hbGlnbjogY2VudGVyOw0KfQ0KDQojZmlsZS1kZXRhaWwgaW5wdXRbdHlwZT10ZXh0XSB7DQogIHdpZHRoOiAtd2Via2l0LWNhbGMoMTAwJSAtIDIwcHgpOw0KICB3aWR0aDogLW1vei1jYWxjKDEwMCUgLSAyMHB4KTsNCiAgd2lkdGg6IGNhbGMoMTAwJSAtIDIwcHgpOw0KfQ0KDQojbWFwcGluZy1kZXRhaWwgaW1nIHsNCiAgZGlzcGxheTogYmxvY2s7DQogIG1heC1oZWlnaHQ6IDMwcHg7DQogIG1hcmdpbi1ib3R0b206IDIwcHg7DQogIG1hcmdpbi1sZWZ0OiBhdXRvOw0KICBtYXJnaW4tcmlnaHQ6IGF1dG87DQp9DQoNCiNwb3B1cC1jdXN0b20gaW5wdXRbdHlwZT10ZXh0XSwgI3BvcHVwLWN1c3RvbSBpbnB1dFt0eXBlPXBhc3N3b3JkXSwgI21hcHBpbmctZGV0YWlsIGlucHV0W3R5cGU9dGV4dF0sICNjb250ZW50X3NldHRpbmdzIGlucHV0W3R5cGU9dGV4dF0sICNjb250ZW50X3NldHRpbmdzIGlucHV0W3R5cGU9cGFzc3dvcmRdew0KICBib3JkZXI6IHNvbGlkIDFweDsNCiAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDsNCiAgYmFja2dyb3VuZC1jb2xvcjogIzMzMzsNCiAgdGV4dC1hbGlnbjogbGVmdDsNCiAgd2lkdGg6IC13ZWJraXQtY2FsYygxMDAlIC0gMjBweCk7DQogIHdpZHRoOiAgICAtbW96LWNhbGMoMTAwJSAtIDIwcHgpOw0KICB3aWR0aDogICAgICAgICBjYWxjKDEwMCUgLSAyMHB4KTsNCn0NCg0KI3BvcHVwLWN1c3RvbSBpbnB1dFt0eXBlPXRleHRdLm5vdEF2YWlsYWJsZSB7DQogIGJvcmRlci1jb2xvcjogcmVkOw0KICBjb2xvcjogIzY2NjsNCiAgY3Vyc29yOiBub3QtYWxsb3dlZDsNCn0NCg0KI21hcHBpbmctZGV0YWlsLXRhYmxlLCAjdXNlci1kZXRhaWwtdGFibGUgew0KICBkaXNwbGF5OiBpbmxpbmUtdGFibGU7DQogIHdpZHRoOiAxMDAlOw0KfQ0KDQojcG9wdXAtY3VzdG9tIHRhYmxlLCAjY29udGVudF9zZXR0aW5ncyB0YWJsZSB7DQogIGRpc3BsYXk6IGlubGluZS10YWJsZTsNCiAgdGFibGUtbGF5b3V0OiBmaXhlZDsNCiAgd2lkdGg6IDEwMCU7DQp9DQoNCg0KI21hcHBpbmctZGV0YWlsLXRhYmxlIHRkLCAjdXNlci1kZXRhaWwtdGFibGUgdGQgew0KICBwYWRkaW5nOiAxMHB4IDBweDsNCg0KfQ0KDQojbWFwcGluZy1kZXRhaWwtdGFibGUgdGQubGVmdCwgI3VzZXItZGV0YWlsLXRhYmxlIHRkLmxlZnQsICNwb3B1cC1jdXN0b20gdGQubGVmdCB7DQogIHdpZHRoOiAzOCU7DQp9DQoNCi5pbnRlcmFjdGlvbiwgI2ludGVyYWN0aW9uIHsNCiAgbWFyZ2luLXRvcDogMjBweDsNCiAgZGlzcGxheTogaW5saW5lLWZsZXg7DQogIGZsb2F0OiByaWdodDsNCn0NCg0KLmludGVyYWN0aW9uIGlucHV0W3R5cGU9YnV0dG9uXSwgLmludGVyYWN0aW9uIGlucHV0W3R5cGU9c3VibWl0XSB7DQogIGJhY2tncm91bmQtY29sb3I6ICMwMDA7DQogIG1pbi13aWR0aDogMTAwcHg7DQogIG1hcmdpbjogMHB4IDEwcHg7DQogIHRleHQtYWxpZ246IGNlbnRlcjsNCn0NCg0KI25vdGlmaWNhdGlvbiB7DQogIGRpc3BsYXk6IGJsb2NrOw0KICBwb3NpdGlvbjogZml4ZWQ7DQogIHJpZ2h0OiAwcHg7DQogIGhlaWdodDogMTAwJTsNCiAgd2lkdGg6IDI1MHB4Ow0KICANCiAgYmFja2dyb3VuZC1jb2xvcjogIzIyMjsNCiAgYm94LXNoYWRvdzogMHB4IDBweCAyMHB4ICMwMDA7DQp9DQoNCiNub3RpZmljYXRpb24gaDUgew0KICBiYWNrZ3JvdW5kLWNvbG9yOiAjMTIxMjEyOw0KICBwYWRkaW5nOiA1cHggMTBweCA1cHggMTBweDsNCn0NCg0KI25vdGlmaWNhdGlvbiBwcmUgew0KICBwYWRkaW5nOiAwcHggMTBweCAwcHggMTBweDsNCn0NCg0KI25vdGlmaWNhdGlvbiBwIHsNCiAgZm9udC1zaXplOiAxMCBweDsNCiAgbWFyZ2luOiAwcHg7DQogIHBhZGRpbmc6IDBweCAxMHB4IDVweCAxMHB4Ow0KfQ0KDQojbm90aWZpY2F0aW9uIC5lbGVtZW50IHsNCiAgLypwYWRkaW5nOiAwcHggNXB4OyovDQogIG1hcmdpbjogNXB4IDVweDsNCiAgYm9yZGVyLXJhZGl1czogNXB4Ow0KICBiYWNrZ3JvdW5kLWNvbG9yOiAjMTgxODE4Ow0KICBib3JkZXItbGVmdDogMTBweCBzb2xpZCBncmVlbjsNCn0NCg0KDQpAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDYyMHB4KXsNCiAgYm9keSB7DQogICAgd2lkdGg6IDEwMCU7DQogICAgYmFja2dyb3VuZC1jb2xvcjogIzQ0NDsNCiAgfQ0KDQogIGgxIHsNCiAgICBmb250LXNpemU6IDI2cHg7DQogICAgbGV0dGVyLXNwYWNpbmc6IDNweDsNCiAgfQ0KDQogIG5hdiBwIHsNCiAgICBkaXNwbGF5OiBibG9jazsNCiAgfQ0KDQoNCg0KICAjaGVhZGVyX2NvbmZpZyB7DQogICAgZGlzcGxheTogYmxvY2s7DQogICAgaGVpZ2h0OiAxMDBweDsNCiAgICBiYWNrZ3JvdW5kOiB1cmwoIi4uL2ltZy9sb2dvX3dfNjAweDIwMC5wbmciKTsNCiAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0Ow0KICAgIA0KICAgIGJhY2tncm91bmQtc2l6ZTogMzAwcHggMTAwcHg7DQogIH0NCg0KICAjc2NyZWVuTG9nIHsNCiAgICBtYXJnaW4tbGVmdDogMzAwcHg7DQoNCiAgICB0cmFuc2l0aW9uOiBub25lOw0KICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50Ow0KICAgIGJvcmRlci1ib3R0b206IHNvbGlkIDFweCB0cmFuc3BhcmVudDsNCiAgICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAjMjIyOw0KICB9DQoNCiAgI3NldHRpbmdzIHsNCiAgICAvKg0KICAgIGhlaWdodDogLXdlYmtpdC1jYWxjKDEwMCUgLSAxMDBweCk7DQogICAgaGVpZ2h0OiAtbW96LWNhbGMoMTAwJSAtIDEwMHB4KTsNCiAgICBoZWlnaHQ6IGNhbGMoMTAwJSAtIDEwMHB4KTsNCiAgICAqLw0KICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsNCiAgICBvdmVyZmxvdzogYXV0bzsNCiAgfQ0KDQoNCiAgLnNjcmVlbkxvZ0hpZGRlbiB7DQogICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMHB4LCAwcHgpOw0KICB9DQoNCg0KICAjYm94IHsNCiAgICBkaXNwbGF5OiBibG9jazsNCiAgICBtaW4taGVpZ2h0OiA1MDBweDsNCiAgICBtYXgtd2lkdGg6IDUwMHB4Ow0KICAgIG1hcmdpbjogMTBweCBhdXRvOw0KICAgIGJhY2tncm91bmQtY29sb3I6ICM0NDQ7DQogICAgYm94LXNoYWRvdzogMHB4IDVweCA1cHggIzIyMjsNCg0KICAgIGRpc3BsYXk6IGZsZXg7DQogICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsNCiAgfQ0KDQogICNzZXR0aW5ncywgI3NldHRpbmdzLWZvb3RlciB7DQogICAgDQogIH0NCn0NCg==" - webUI["html/img/filter.png"] = "iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAAAXNSR0IArs4c6QAAAAlwSFlzAAAsSwAALEsBpT2WqQAABCRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IlhNUCBDb3JlIDUuNC4wIj4KICAgPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIgogICAgICAgICAgICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgICAgICAgICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyI+CiAgICAgICAgIDx0aWZmOlJlc29sdXRpb25Vbml0PjI8L3RpZmY6UmVzb2x1dGlvblVuaXQ+CiAgICAgICAgIDx0aWZmOkNvbXByZXNzaW9uPjU8L3RpZmY6Q29tcHJlc3Npb24+CiAgICAgICAgIDx0aWZmOlhSZXNvbHV0aW9uPjI4ODwvdGlmZjpYUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6T3JpZW50YXRpb24+MTwvdGlmZjpPcmllbnRhdGlvbj4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+Mjg4PC90aWZmOllSZXNvbHV0aW9uPgogICAgICAgICA8ZXhpZjpQaXhlbFhEaW1lbnNpb24+NTA8L2V4aWY6UGl4ZWxYRGltZW5zaW9uPgogICAgICAgICA8ZXhpZjpDb2xvclNwYWNlPjE8L2V4aWY6Q29sb3JTcGFjZT4KICAgICAgICAgPGV4aWY6UGl4ZWxZRGltZW5zaW9uPjUwPC9leGlmOlBpeGVsWURpbWVuc2lvbj4KICAgICAgICAgPGRjOnN1YmplY3Q+CiAgICAgICAgICAgIDxyZGY6QmFnLz4KICAgICAgICAgPC9kYzpzdWJqZWN0PgogICAgICAgICA8eG1wOk1vZGlmeURhdGU+MjAxOC0wNy0yOFQxOTowNzo2OTwveG1wOk1vZGlmeURhdGU+CiAgICAgICAgIDx4bXA6Q3JlYXRvclRvb2w+UGl4ZWxtYXRvciAzLjM8L3htcDpDcmVhdG9yVG9vbD4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgIDwvcmRmOlJERj4KPC94OnhtcG1ldGE+Cs038OQAAAOISURBVGgF5ZpLSBVRGMfvvfmqCKKiKCqKtE3SQ8haJJm1ctPCZYHrFhXtohcUBLVsU1BRBJKLXpsSKs1aCL1oUUhvMgIloodZKmLZ72+OzNVx7jzOXGfqg/89Z875zv/7f35n7px7vanUP2JptzyGhoYKmK8GW0EZmA/mgW7wHrwDN0BTOp0epPVtxBBnLdgIVoE5YBboBR2gDTTA/5DWn0FeDPaBz8CLdeF0EBR5jYRvKbgABoAXa8Opwit/CudK8NoLs4PPM8ZyBsNnB/jpsD7X0C8cjgDXnaQkqkEPCGMSuGWivxxzx8OQj6xtpHWuPhPloHfEMWzTD0HN2GQY2xuW2Lb+/Fh+VaIQPLE5meh+gmSxFYz+BjBogtjGscfiH26Z2GmbNNltVQAIpwDdP6ZNO2iRYqTpZGhfgWUaiMC2w1kCzkbALcqLvDVvUyK6MW9HFES0b8BvsFwXEZi4F+iBtykCcjtlqf0igr52VJ1eqiIgzzdlrRIZfWfJd3SD8ZbqHvkB4XSDpJNB9V0VcX/cT4Ys/zEzSuSj/3WxW9GpRD7ETpZ/QcOJ6LyfdHugitxNehbob9G7lo4PXWBmQhPqQ/fsDOeUfjqNCU1Csi+TQ5+2luzc3yaRr6elevQZwhZr4bomYam0U41yabYqov5hvSTMjlp6RyuiAarSTLPZmox5246+lVREx/isiuh6NxhUJwF2yEpCWu1bK8WEsjyRgCSa0XrVrjNra2mC7TWD5ilYAuJoA4jSlnppF5dVEU3g0ENTD4b3nsZiZsfGJuGqj8qY+CINGqP2GLZCJ+HjtpblxAJ9k3cPrLfGJrnVUaSCarxw0jFua1lOLNBerANx+byya6IkLM2uLZWpAl6/Mcc1EjvjKtLrJNLqI5HnjfQ+bsVeteb0g2y/t7hGvd7CNjenOL8OkJ40KtOdTF+Cl/nV6Mkf4gxocI9vZPYLLKs9iQrqRIACcM2IXGeSboYrg+rztY5ARaDJWUeo0W+sXudLTFhnApaAW6FkZy/+yuXasLoCrSfwVHAnW0+gK93YawKJMLUIAdNAKwhqnSxcYUpPKB6EBE2mg7VR///EX24jybTQerXnOC70FyVP3gjTPXPTQyaP8NFPNeJrCNTPP667JKOq6VNo/A2hes5ccUjmEmPmDoD5+FMgWCcA+3FG57QJP//kQ1PgGBIOToEDgUn+t4V/AJeGknwARIKLAAAAAElFTkSuQmCC" - webUI["html/js/classes_ts.js"] = "dmFyIF9fZXh0ZW5kcyA9ICh0aGlzICYmIHRoaXMuX19leHRlbmRzKSB8fCAoZnVuY3Rpb24gKCkgew0KICAgIHZhciBleHRlbmRTdGF0aWNzID0gZnVuY3Rpb24gKGQsIGIpIHsNCiAgICAgICAgZXh0ZW5kU3RhdGljcyA9IE9iamVjdC5zZXRQcm90b3R5cGVPZiB8fA0KICAgICAgICAgICAgKHsgX19wcm90b19fOiBbXSB9IGluc3RhbmNlb2YgQXJyYXkgJiYgZnVuY3Rpb24gKGQsIGIpIHsgZC5fX3Byb3RvX18gPSBiOyB9KSB8fA0KICAgICAgICAgICAgZnVuY3Rpb24gKGQsIGIpIHsgZm9yICh2YXIgcCBpbiBiKSBpZiAoYi5oYXNPd25Qcm9wZXJ0eShwKSkgZFtwXSA9IGJbcF07IH07DQogICAgICAgIHJldHVybiBleHRlbmRTdGF0aWNzKGQsIGIpOw0KICAgIH07DQogICAgcmV0dXJuIGZ1bmN0aW9uIChkLCBiKSB7DQogICAgICAgIGV4dGVuZFN0YXRpY3MoZCwgYik7DQogICAgICAgIGZ1bmN0aW9uIF9fKCkgeyB0aGlzLmNvbnN0cnVjdG9yID0gZDsgfQ0KICAgICAgICBkLnByb3RvdHlwZSA9IGIgPT09IG51bGwgPyBPYmplY3QuY3JlYXRlKGIpIDogKF9fLnByb3RvdHlwZSA9IGIucHJvdG90eXBlLCBuZXcgX18oKSk7DQogICAgfTsNCn0pKCk7DQp2YXIgTWFpbk1lbnUgPSAvKiogQGNsYXNzICovIChmdW5jdGlvbiAoKSB7DQogICAgZnVuY3Rpb24gTWFpbk1lbnUoKSB7DQogICAgICAgIHRoaXMuRG9jdW1lbnRJRCA9ICJtYWluLW1lbnUiOw0KICAgICAgICB0aGlzLkhUTUxUYWcgPSAiTEkiOw0KICAgIH0NCiAgICBNYWluTWVudS5wcm90b3R5cGUuY3JlYXRlID0gZnVuY3Rpb24gKCkgew0KICAgICAgICBjb25zb2xlLmxvZyh0aGlzLkRvY3VtZW50SUQpOw0KICAgIH07DQogICAgcmV0dXJuIE1haW5NZW51Ow0KfSgpKTsNCnZhciBNYWluTWVudUl0ZW0gPSAvKiogQGNsYXNzICovIChmdW5jdGlvbiAoX3N1cGVyKSB7DQogICAgX19leHRlbmRzKE1haW5NZW51SXRlbSwgX3N1cGVyKTsNCiAgICBmdW5jdGlvbiBNYWluTWVudUl0ZW0oKSB7DQogICAgICAgIHJldHVybiBfc3VwZXIgIT09IG51bGwgJiYgX3N1cGVyLmFwcGx5KHRoaXMsIGFyZ3VtZW50cykgfHwgdGhpczsNCiAgICB9DQogICAgTWFpbk1lbnVJdGVtLnByb3RvdHlwZS5jcmVhdGUyID0gZnVuY3Rpb24gKCkgew0KICAgICAgICB2YXIgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQodGhpcy5IVE1MVGFnKTsNCiAgICAgICAgZWxlbWVudC5pbm5lclRleHQgPSB0aGlzLlZhbHVlOw0KICAgICAgICBjb25zb2xlLmxvZyhlbGVtZW50KTsNCiAgICB9Ow0KICAgIHJldHVybiBNYWluTWVudUl0ZW07DQp9KE1haW5NZW51KSk7DQpmdW5jdGlvbiBwYWdlUmVhZHkoKSB7DQogICAgdmFyIGl0ZW0gPSBuZXcgTWFpbk1lbnVJdGVtKCk7DQogICAgaXRlbS5WYWx1ZSA9ICJUZXN0IjsNCiAgICBpdGVtLmNyZWF0ZTIoKTsNCn0NCg==" - webUI["html/js/menu_ts.js"] = "dmFyIF9fZXh0ZW5kcyA9ICh0aGlzICYmIHRoaXMuX19leHRlbmRzKSB8fCAoZnVuY3Rpb24gKCkgew0KICAgIHZhciBleHRlbmRTdGF0aWNzID0gZnVuY3Rpb24gKGQsIGIpIHsNCiAgICAgICAgZXh0ZW5kU3RhdGljcyA9IE9iamVjdC5zZXRQcm90b3R5cGVPZiB8fA0KICAgICAgICAgICAgKHsgX19wcm90b19fOiBbXSB9IGluc3RhbmNlb2YgQXJyYXkgJiYgZnVuY3Rpb24gKGQsIGIpIHsgZC5fX3Byb3RvX18gPSBiOyB9KSB8fA0KICAgICAgICAgICAgZnVuY3Rpb24gKGQsIGIpIHsgZm9yICh2YXIgcCBpbiBiKSBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGIsIHApKSBkW3BdID0gYltwXTsgfTsNCiAgICAgICAgcmV0dXJuIGV4dGVuZFN0YXRpY3MoZCwgYik7DQogICAgfTsNCiAgICByZXR1cm4gZnVuY3Rpb24gKGQsIGIpIHsNCiAgICAgICAgZXh0ZW5kU3RhdGljcyhkLCBiKTsNCiAgICAgICAgZnVuY3Rpb24gX18oKSB7IHRoaXMuY29uc3RydWN0b3IgPSBkOyB9DQogICAgICAgIGQucHJvdG90eXBlID0gYiA9PT0gbnVsbCA/IE9iamVjdC5jcmVhdGUoYikgOiAoX18ucHJvdG90eXBlID0gYi5wcm90b3R5cGUsIG5ldyBfXygpKTsNCiAgICB9Ow0KfSkoKTsNCnZhciBNYWluTWVudSA9IC8qKiBAY2xhc3MgKi8gKGZ1bmN0aW9uICgpIHsNCiAgICBmdW5jdGlvbiBNYWluTWVudSgpIHsNCiAgICAgICAgdGhpcy5Eb2N1bWVudElEID0gIm1haW4tbWVudSI7DQogICAgICAgIHRoaXMuSFRNTFRhZyA9ICJMSSI7DQogICAgICAgIHRoaXMuSW1hZ2VQYXRoID0gImltZy8iOw0KICAgIH0NCiAgICBNYWluTWVudS5wcm90b3R5cGUuY3JlYXRlSU1HID0gZnVuY3Rpb24gKHNyYykgew0KICAgICAgICB2YXIgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIklNRyIpOw0KICAgICAgICBlbGVtZW50LnNldEF0dHJpYnV0ZSgic3JjIiwgdGhpcy5JbWFnZVBhdGggKyBzcmMpOw0KICAgICAgICByZXR1cm4gZWxlbWVudDsNCiAgICB9Ow0KICAgIE1haW5NZW51LnByb3RvdHlwZS5jcmVhdGVWYWx1ZSA9IGZ1bmN0aW9uICh2YWx1ZSkgew0KICAgICAgICB2YXIgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlAiKTsNCiAgICAgICAgZWxlbWVudC5pbm5lckhUTUwgPSB2YWx1ZTsNCiAgICAgICAgcmV0dXJuIGVsZW1lbnQ7DQogICAgfTsNCiAgICByZXR1cm4gTWFpbk1lbnU7DQp9KCkpOw0KdmFyIE1haW5NZW51SXRlbSA9IC8qKiBAY2xhc3MgKi8gKGZ1bmN0aW9uIChfc3VwZXIpIHsNCiAgICBfX2V4dGVuZHMoTWFpbk1lbnVJdGVtLCBfc3VwZXIpOw0KICAgIGZ1bmN0aW9uIE1haW5NZW51SXRlbShtZW51S2V5LCB2YWx1ZSwgaW1hZ2UsIGhlYWRsaW5lKSB7DQogICAgICAgIHZhciBfdGhpcyA9IF9zdXBlci5jYWxsKHRoaXMpIHx8IHRoaXM7DQogICAgICAgIF90aGlzLm1lbnVLZXkgPSBtZW51S2V5Ow0KICAgICAgICBfdGhpcy52YWx1ZSA9IHZhbHVlOw0KICAgICAgICBfdGhpcy5pbWdTcmMgPSBpbWFnZTsNCiAgICAgICAgX3RoaXMuaGVhZGxpbmUgPSBoZWFkbGluZTsNCiAgICAgICAgcmV0dXJuIF90aGlzOw0KICAgIH0NCiAgICBNYWluTWVudUl0ZW0ucHJvdG90eXBlLmNyZWF0ZUl0ZW0gPSBmdW5jdGlvbiAoKSB7DQogICAgICAgIHZhciBpdGVtID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiTEkiKTsNCiAgICAgICAgaXRlbS5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAiamF2YXNjcmlwdDogb3BlblRoaXNNZW51KHRoaXMpIik7DQogICAgICAgIGl0ZW0uc2V0QXR0cmlidXRlKCJpZCIsIHRoaXMuaWQpOw0KICAgICAgICB2YXIgaW1nID0gdGhpcy5jcmVhdGVJTUcodGhpcy5pbWdTcmMpOw0KICAgICAgICB2YXIgdmFsdWUgPSB0aGlzLmNyZWF0ZVZhbHVlKHRoaXMudmFsdWUpOw0KICAgICAgICBpdGVtLmFwcGVuZENoaWxkKGltZyk7DQogICAgICAgIGl0ZW0uYXBwZW5kQ2hpbGQodmFsdWUpOw0KICAgICAgICB2YXIgZG9jID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQodGhpcy5Eb2N1bWVudElEKTsNCiAgICAgICAgZG9jLmFwcGVuZENoaWxkKGl0ZW0pOw0KICAgICAgICBzd2l0Y2ggKHRoaXMubWVudUtleSkgew0KICAgICAgICAgICAgY2FzZSAicGxheWxpc3QiOg0KICAgICAgICAgICAgICAgIHRoaXMudGFibGVIZWFkZXIgPSBbInt7LnBsYXlsaXN0LnRhYmxlLnBsYXlsaXN0fX0iLCAie3sucGxheWxpc3QudGFibGUudHVuZXJ9fSIsICJ7ey5wbGF5bGlzdC50YWJsZS5sYXN0VXBkYXRlfX0iLCAie3sucGxheWxpc3QudGFibGUuYXZhaWxhYmlsaXR5fX0gJSIsICJ7ey5wbGF5bGlzdC50YWJsZS50eXBlfX0iLCAie3sucGxheWxpc3QudGFibGUuc3RyZWFtc319IiwgInt7LnBsYXlsaXN0LnRhYmxlLmdyb3VwVGl0bGV9fSAlIiwgInt7LnBsYXlsaXN0LnRhYmxlLnR2Z0lEfX0gJSIsICJ7ey5wbGF5bGlzdC50YWJsZS51bmlxdWVJRH19ICUiXTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInhtbHR2IjoNCiAgICAgICAgICAgICAgICB0aGlzLnRhYmxlSGVhZGVyID0gWyJ7ey54bWx0di50YWJsZS5ndWlkZX19IiwgInt7LnhtbHR2LnRhYmxlLmxhc3RVcGRhdGV9fSIsICJ7ey54bWx0di50YWJsZS5hdmFpbGFiaWxpdHl9fSAlIiwgInt7LnhtbHR2LnRhYmxlLmNoYW5uZWxzfX0iLCAie3sueG1sdHYudGFibGUucHJvZ3JhbXN9fSJdOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiZmlsdGVyIjoNCiAgICAgICAgICAgICAgICB0aGlzLnRhYmxlSGVhZGVyID0gWyJ7ey5maWx0ZXIudGFibGUubmFtZX19IiwgInt7LmZpbHRlci50YWJsZS50eXBlfX0iLCAie3suZmlsdGVyLnRhYmxlLmZpbHRlcn19Il07DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ1c2VycyI6DQogICAgICAgICAgICAgICAgdGhpcy50YWJsZUhlYWRlciA9IFsie3sudXNlcnMudGFibGUudXNlcm5hbWV9fSIsICJ7ey51c2Vycy50YWJsZS5wYXNzd29yZH19IiwgInt7LnVzZXJzLnRhYmxlLndlYn19IiwgInt7LnVzZXJzLnRhYmxlLnBtc319IiwgInt7LnVzZXJzLnRhYmxlLm0zdX19IiwgInt7LnVzZXJzLnRhYmxlLnhtbH19IiwgInt7LnVzZXJzLnRhYmxlLmFwaX19Il07DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJtYXBwaW5nIjoNCiAgICAgICAgICAgICAgICB0aGlzLnRhYmxlSGVhZGVyID0gWyJCVUxLIiwgInt7Lm1hcHBpbmcudGFibGUuY2hOb319IiwgInt7Lm1hcHBpbmcudGFibGUubG9nb319IiwgInt7Lm1hcHBpbmcudGFibGUuY2hhbm5lbE5hbWV9fSIsICJ7ey5tYXBwaW5nLnRhYmxlLnBsYXlsaXN0fX0iLCAie3subWFwcGluZy50YWJsZS5ncm91cFRpdGxlfX0iLCAie3subWFwcGluZy50YWJsZS54bWx0dkZpbGV9fSIsICJ7ey5tYXBwaW5nLnRhYmxlLnhtbHR2SUR9fSIsICJ7ey5tYXBwaW5nLnRhYmxlLnRpbWVzaGlmdH19Il07DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIH0NCiAgICAgICAgLy9jb25zb2xlLmxvZyh0aGlzLm1lbnVLZXksIHRoaXMudGFibGVIZWFkZXIpOw0KICAgIH07DQogICAgcmV0dXJuIE1haW5NZW51SXRlbTsNCn0oTWFpbk1lbnUpKTsNCnZhciBDb250ZW50ID0gLyoqIEBjbGFzcyAqLyAoZnVuY3Rpb24gKCkgew0KICAgIGZ1bmN0aW9uIENvbnRlbnQoKSB7DQogICAgICAgIHRoaXMuRG9jdW1lbnRJRCA9ICJjb250ZW50IjsNCiAgICAgICAgdGhpcy5UYWJsZUlEID0gImNvbnRlbnRfdGFibGUiOw0KICAgICAgICB0aGlzLmhlYWRlckNsYXNzID0gImNvbnRlbnRfdGFibGVfaGVhZGVyIjsNCiAgICAgICAgdGhpcy5pbnRlcmFjdGlvbklEID0gImNvbnRlbnQtaW50ZXJhY3Rpb24iOw0KICAgIH0NCiAgICBDb250ZW50LnByb3RvdHlwZS5jcmVhdGVIZWFkbGluZSA9IGZ1bmN0aW9uICh2YWx1ZSkgew0KICAgICAgICB2YXIgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIkgzIik7DQogICAgICAgIGVsZW1lbnQuaW5uZXJIVE1MID0gdmFsdWU7DQogICAgICAgIHJldHVybiBlbGVtZW50Ow0KICAgIH07DQogICAgQ29udGVudC5wcm90b3R5cGUuY3JlYXRlSFIgPSBmdW5jdGlvbiAoKSB7DQogICAgICAgIHZhciBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiSFIiKTsNCiAgICAgICAgcmV0dXJuIGVsZW1lbnQ7DQogICAgfTsNCiAgICBDb250ZW50LnByb3RvdHlwZS5jcmVhdGVJbnRlcmFjdGlvbiA9IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgdmFyIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJESVYiKTsNCiAgICAgICAgZWxlbWVudC5zZXRBdHRyaWJ1dGUoImlkIiwgdGhpcy5pbnRlcmFjdGlvbklEKTsNCiAgICAgICAgcmV0dXJuIGVsZW1lbnQ7DQogICAgfTsNCiAgICBDb250ZW50LnByb3RvdHlwZS5jcmVhdGVESVYgPSBmdW5jdGlvbiAoKSB7DQogICAgICAgIHZhciBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiRElWIik7DQogICAgICAgIGVsZW1lbnQuaWQgPSB0aGlzLkRpdklEOw0KICAgICAgICByZXR1cm4gZWxlbWVudDsNCiAgICB9Ow0KICAgIENvbnRlbnQucHJvdG90eXBlLmNyZWF0ZVRBQkxFID0gZnVuY3Rpb24gKCkgew0KICAgICAgICB2YXIgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlRBQkxFIik7DQogICAgICAgIGVsZW1lbnQuaWQgPSB0aGlzLlRhYmxlSUQ7DQogICAgICAgIHJldHVybiBlbGVtZW50Ow0KICAgIH07DQogICAgQ29udGVudC5wcm90b3R5cGUuY3JlYXRlVGFibGVSb3cgPSBmdW5jdGlvbiAoKSB7DQogICAgICAgIHZhciBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVFIiKTsNCiAgICAgICAgZWxlbWVudC5jbGFzc05hbWUgPSB0aGlzLmhlYWRlckNsYXNzOw0KICAgICAgICByZXR1cm4gZWxlbWVudDsNCiAgICB9Ow0KICAgIENvbnRlbnQucHJvdG90eXBlLmNyZWF0ZVRhYmxlQ29udGVudCA9IGZ1bmN0aW9uIChtZW51S2V5KSB7DQogICAgICAgIHZhciBkYXRhID0gbmV3IE9iamVjdCgpOw0KICAgICAgICB2YXIgcm93cyA9IG5ldyBBcnJheSgpOw0KICAgICAgICBzd2l0Y2ggKG1lbnVLZXkpIHsNCiAgICAgICAgICAgIGNhc2UgInBsYXlsaXN0IjoNCiAgICAgICAgICAgICAgICB2YXIgZmlsZVR5cGVzID0gbmV3IEFycmF5KCJtM3UiLCAiaGRociIpOw0KICAgICAgICAgICAgICAgIGZpbGVUeXBlcy5mb3JFYWNoKGZ1bmN0aW9uIChmaWxlVHlwZSkgew0KICAgICAgICAgICAgICAgICAgICBkYXRhID0gU0VSVkVSWyJzZXR0aW5ncyJdWyJmaWxlcyJdW2ZpbGVUeXBlXTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGtleXMgPSBnZXRPYmpLZXlzKGRhdGEpOw0KICAgICAgICAgICAgICAgICAgICBrZXlzLmZvckVhY2goZnVuY3Rpb24gKGtleSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVFIiKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmlkID0ga2V5Ow0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgiJyArIGZpbGVUeXBlICsgJyIsIHRoaXMpJyk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsibmFtZSJdOw0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChTRVJWRVJbInNldHRpbmdzIl1bImJ1ZmZlciJdICE9ICItIikgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bInR1bmVyIl07DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gIi0iOw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bImxhc3QudXBkYXRlIl07DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsicHJvdmlkZXIuYXZhaWxhYmlsaXR5Il07DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsidHlwZSJdLnRvVXBwZXJDYXNlKCk7DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsiY29tcGF0aWJpbGl0eSJdWyJzdHJlYW1zIl07DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsiY29tcGF0aWJpbGl0eSJdWyJncm91cC50aXRsZSJdOw0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bImNvbXBhdGliaWxpdHkiXVsidHZnLmlkIl07DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsiY29tcGF0aWJpbGl0eSJdWyJzdHJlYW0uaWQiXTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHJvd3MucHVzaCh0cik7DQogICAgICAgICAgICAgICAgICAgIH0pOw0KICAgICAgICAgICAgICAgIH0pOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiZmlsdGVyIjoNCiAgICAgICAgICAgICAgICBkZWxldGUgU0VSVkVSWyJzZXR0aW5ncyJdWyJmaWx0ZXIiXVstMV07DQogICAgICAgICAgICAgICAgZGF0YSA9IFNFUlZFUlsic2V0dGluZ3MiXVsiZmlsdGVyIl07DQogICAgICAgICAgICAgICAgdmFyIGtleXMgPSBnZXRPYmpLZXlzKGRhdGEpOw0KICAgICAgICAgICAgICAgIGtleXMuZm9yRWFjaChmdW5jdGlvbiAoa2V5KSB7DQogICAgICAgICAgICAgICAgICAgIHZhciB0ciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlRSIik7DQogICAgICAgICAgICAgICAgICAgIHRyLmlkID0ga2V5Ow0KICAgICAgICAgICAgICAgICAgICB0ci5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCInICsgZGF0YVtrZXldWyJ0eXBlIl0gKyAnIiwgdGhpcyknKTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bIm5hbWUiXTsNCiAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgc3dpdGNoIChkYXRhW2tleV1bInR5cGUiXSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAiY3VzdG9tLWZpbHRlciI6DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9ICJ7ey5maWx0ZXIuY3VzdG9tfX0iOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAiZ3JvdXAtdGl0bGUiOg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSAie3suZmlsdGVyLmdyb3VwfX0iOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJmaWx0ZXIiXTsNCiAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICByb3dzLnB1c2godHIpOw0KICAgICAgICAgICAgICAgIH0pOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAieG1sdHYiOg0KICAgICAgICAgICAgICAgIHZhciBmaWxlVHlwZXMgPSBuZXcgQXJyYXkoInhtbHR2Iik7DQogICAgICAgICAgICAgICAgZmlsZVR5cGVzLmZvckVhY2goZnVuY3Rpb24gKGZpbGVUeXBlKSB7DQogICAgICAgICAgICAgICAgICAgIGRhdGEgPSBTRVJWRVJbInNldHRpbmdzIl1bImZpbGVzIl1bZmlsZVR5cGVdOw0KICAgICAgICAgICAgICAgICAgICB2YXIga2V5cyA9IGdldE9iaktleXMoZGF0YSk7DQogICAgICAgICAgICAgICAgICAgIGtleXMuZm9yRWFjaChmdW5jdGlvbiAoa2V5KSB7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgdHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJUUiIpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuaWQgPSBrZXk7DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCInICsgZmlsZVR5cGUgKyAnIiwgdGhpcyknKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJuYW1lIl07DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsibGFzdC51cGRhdGUiXTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJwcm92aWRlci5hdmFpbGFiaWxpdHkiXTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJjb21wYXRpYmlsaXR5Il1bInhtbHR2LmNoYW5uZWxzIl07DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsiY29tcGF0aWJpbGl0eSJdWyJ4bWx0di5wcm9ncmFtcyJdOw0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgcm93cy5wdXNoKHRyKTsNCiAgICAgICAgICAgICAgICAgICAgfSk7DQogICAgICAgICAgICAgICAgfSk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ1c2VycyI6DQogICAgICAgICAgICAgICAgdmFyIGZpbGVUeXBlcyA9IG5ldyBBcnJheSgidXNlcnMiKTsNCiAgICAgICAgICAgICAgICBmaWxlVHlwZXMuZm9yRWFjaChmdW5jdGlvbiAoZmlsZVR5cGUpIHsNCiAgICAgICAgICAgICAgICAgICAgZGF0YSA9IFNFUlZFUltmaWxlVHlwZV07DQogICAgICAgICAgICAgICAgICAgIHZhciBrZXlzID0gZ2V0T2JqS2V5cyhkYXRhKTsNCiAgICAgICAgICAgICAgICAgICAga2V5cy5mb3JFYWNoKGZ1bmN0aW9uIChrZXkpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciB0ciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlRSIik7DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5pZCA9IGtleTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoIicgKyBmaWxlVHlwZSArICciLCB0aGlzKScpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bImRhdGEiXVsidXNlcm5hbWUiXTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gIioqKioqKiI7DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGRhdGFba2V5XVsiZGF0YSJdWyJhdXRoZW50aWNhdGlvbi53ZWIiXSA9PSB0cnVlKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9ICLinJMiOw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9ICItIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgICAgICBpZiAoZGF0YVtrZXldWyJkYXRhIl1bImF1dGhlbnRpY2F0aW9uLnBtcyJdID09IHRydWUpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gIuKckyI7DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gIi0iOw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChkYXRhW2tleV1bImRhdGEiXVsiYXV0aGVudGljYXRpb24ubTN1Il0gPT0gdHJ1ZSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSAi4pyTIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSAiLSI7DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGRhdGFba2V5XVsiZGF0YSJdWyJhdXRoZW50aWNhdGlvbi54bWwiXSA9PSB0cnVlKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9ICLinJMiOw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9ICItIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgICAgICBpZiAoZGF0YVtrZXldWyJkYXRhIl1bImF1dGhlbnRpY2F0aW9uLmFwaSJdID09IHRydWUpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gIuKckyI7DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gIi0iOw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgcm93cy5wdXNoKHRyKTsNCiAgICAgICAgICAgICAgICAgICAgfSk7DQogICAgICAgICAgICAgICAgfSk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJtYXBwaW5nIjoNCiAgICAgICAgICAgICAgICBCVUxLX0VESVQgPSBmYWxzZTsNCiAgICAgICAgICAgICAgICBjcmVhdGVTZWFyY2hPYmooKTsNCiAgICAgICAgICAgICAgICBjaGVja1VuZG8oImVwZ01hcHBpbmciKTsNCiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZygiTUFQUElORyIpOw0KICAgICAgICAgICAgICAgIGRhdGEgPSBTRVJWRVJbInhlcGciXVsiZXBnTWFwcGluZyJdOw0KICAgICAgICAgICAgICAgIHZhciBrZXlzID0gZ2V0T2JqS2V5cyhkYXRhKTsNCiAgICAgICAgICAgICAgICBrZXlzLmZvckVhY2goZnVuY3Rpb24gKGtleSkgew0KICAgICAgICAgICAgICAgICAgICB2YXIgdHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJUUiIpOw0KICAgICAgICAgICAgICAgICAgICB0ci5pZCA9IGtleTsNCiAgICAgICAgICAgICAgICAgICAgLy90ci5zZXRBdHRyaWJ1dGUoJ29uY29udGV4dG1lbnUnLCAnamF2YXNjcmlwdDogcmlnaHRDbGljayh0aGlzKScpDQogICAgICAgICAgICAgICAgICAgIHN3aXRjaCAoZGF0YVtrZXldWyJ4LWFjdGl2ZSJdKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBjYXNlIHRydWU6DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgdHIuY2xhc3NOYW1lID0gImFjdGl2ZUVQRyI7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgICAgICAgICBjYXNlIGZhbHNlOg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyLmNsYXNzTmFtZSA9ICJub3RBY3RpdmVFUEciOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIC8vIEJ1bGsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiQlVMSyI7DQogICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBmYWxzZTsNCiAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAvLyBLYW5hbG51bW1lcg0KICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJJTlBVVENIQU5ORUwiOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJ4LWNoYW5uZWxJRCJdOw0KICAgICAgICAgICAgICAgICAgICAvL3RkLnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBjaGFuZ2VDaGFubmVsTnVtYmVyKCInICsga2V5ICsgJyIsIHRoaXMpJykNCiAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAvLyBMb2dvDQogICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIklNRyI7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuaW1hZ2VVUkwgPSBkYXRhW2tleV1bInR2Zy1sb2dvIl07DQogICAgICAgICAgICAgICAgICAgIHZhciB0ZCA9IGNlbGwuY3JlYXRlQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICB0ZC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJtYXBwaW5nIiwgdGhpcyknKTsNCiAgICAgICAgICAgICAgICAgICAgdGQuaWQgPSBrZXk7DQogICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKHRkKTsNCiAgICAgICAgICAgICAgICAgICAgLy8gS2FuYWxuYW1lDQogICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNsYXNzTmFtZSA9IGRhdGFba2V5XVsieC1jYXRlZ29yeSJdOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJ4LW5hbWUiXTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHRkID0gY2VsbC5jcmVhdGVDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgIHRkLnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoIm1hcHBpbmciLCB0aGlzKScpOw0KICAgICAgICAgICAgICAgICAgICB0ZC5pZCA9IGtleTsNCiAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQodGQpOw0KICAgICAgICAgICAgICAgICAgICAvLyBQbGF5bGlzdA0KICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgLy9jZWxsLnZhbHVlID0gZGF0YVtrZXldWyJfZmlsZS5tM3UubmFtZSJdIA0KICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZ2V0VmFsdWVGcm9tUHJvdmlkZXJGaWxlKGRhdGFba2V5XVsiX2ZpbGUubTN1LmlkIl0sICJtM3UiLCAibmFtZSIpOw0KICAgICAgICAgICAgICAgICAgICB2YXIgdGQgPSBjZWxsLmNyZWF0ZUNlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgdGQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgibWFwcGluZyIsIHRoaXMpJyk7DQogICAgICAgICAgICAgICAgICAgIHRkLmlkID0ga2V5Ow0KICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZCh0ZCk7DQogICAgICAgICAgICAgICAgICAgIC8vIEdydXBwZSAoZ3JvdXAtdGl0bGUpDQogICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJ4LWdyb3VwLXRpdGxlIl07DQogICAgICAgICAgICAgICAgICAgIHZhciB0ZCA9IGNlbGwuY3JlYXRlQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICB0ZC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJtYXBwaW5nIiwgdGhpcyknKTsNCiAgICAgICAgICAgICAgICAgICAgdGQuaWQgPSBrZXk7DQogICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKHRkKTsNCiAgICAgICAgICAgICAgICAgICAgLy8gWE1MVFYgRGF0ZWkNCiAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgIGlmIChkYXRhW2tleV1bIngteG1sdHYtZmlsZSJdICE9ICItIikgew0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGdldFZhbHVlRnJvbVByb3ZpZGVyRmlsZShkYXRhW2tleV1bIngteG1sdHYtZmlsZSJdLCAieG1sdHYiLCAibmFtZSIpOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsieC14bWx0di1maWxlIl07DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgdmFyIHRkID0gY2VsbC5jcmVhdGVDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgIHRkLnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoIm1hcHBpbmciLCB0aGlzKScpOw0KICAgICAgICAgICAgICAgICAgICB0ZC5pZCA9IGtleTsNCiAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQodGQpOw0KICAgICAgICAgICAgICAgICAgICAvLyBYTUxUViBLYW5hbA0KICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgLy92YXIgdmFsdWUgPSBzdHIuc3Vic3RyaW5nKDEsIDQpOw0KICAgICAgICAgICAgICAgICAgICB2YXIgdmFsdWUgPSBkYXRhW2tleV1bIngtbWFwcGluZyJdOw0KICAgICAgICAgICAgICAgICAgICBpZiAodmFsdWUubGVuZ3RoID4gMjApIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlID0gZGF0YVtrZXldWyJ4LW1hcHBpbmciXS5zdWJzdHJpbmcoMCwgMjApICsgIi4uLiI7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IHZhbHVlOw0KICAgICAgICAgICAgICAgICAgICAgdmFyIHRkID0gY2VsbC5jcmVhdGVDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgIHRkLnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoIm1hcHBpbmciLCB0aGlzKScpOw0KICAgICAgICAgICAgICAgICAgICB0ZC5pZCA9IGtleTsNCiAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQodGQpOw0KICAgICAgICAgICAgICAgICAgICAvLyBUaW1lc2hpZnQNCiAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgIHZhciB2YWx1ZSA9IGRhdGFba2V5XVsieC10aW1lc2hpZnQiXTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IHZhbHVlOw0KICAgICAgICAgICAgICAgICAgICB2YXIgdGQgPSBjZWxsLmNyZWF0ZUNlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgdGQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgibWFwcGluZyIsIHRoaXMpJyk7DQogICAgICAgICAgICAgICAgICAgIHRkLmlkID0ga2V5Ow0KICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZCh0ZCk7DQogICAgICAgICAgICAgICAgICAgIHJvd3MucHVzaCh0cik7DQogICAgICAgICAgICAgICAgfSk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJzZXR0aW5ncyI6DQogICAgICAgICAgICAgICAgYWxlcnQoKTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICAgICAgY29uc29sZS5sb2coIlRhYmxlIGNvbnRlbnQgKG1lbnVLZXkpOiIsIG1lbnVLZXkpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICB9DQogICAgICAgIHJldHVybiByb3dzOw0KICAgIH07DQogICAgcmV0dXJuIENvbnRlbnQ7DQp9KCkpOw0KdmFyIENlbGwgPSAvKiogQGNsYXNzICovIChmdW5jdGlvbiAoKSB7DQogICAgZnVuY3Rpb24gQ2VsbCgpIHsNCiAgICB9DQogICAgQ2VsbC5wcm90b3R5cGUuY3JlYXRlQ2VsbCA9IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgdmFyIHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgaWYgKHRoaXMuY2hpbGQgPT0gdHJ1ZSkgew0KICAgICAgICAgICAgdmFyIGVsZW1lbnQ7DQogICAgICAgICAgICBzd2l0Y2ggKHRoaXMuY2hpbGRUeXBlKSB7DQogICAgICAgICAgICAgICAgY2FzZSAiUCI6DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KHRoaXMuY2hpbGRUeXBlKTsNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC5pbm5lckhUTUwgPSB0aGlzLnZhbHVlOw0KICAgICAgICAgICAgICAgICAgICBlbGVtZW50LmNsYXNzTmFtZSA9IHRoaXMuY2xhc3NOYW1lOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBjYXNlICJJTlBVVCI6DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KHRoaXMuY2hpbGRUeXBlKTsNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC52YWx1ZSA9IHRoaXMudmFsdWU7DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQudHlwZSA9ICJ0ZXh0IjsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAiSU5QVVRDSEFOTkVMIjoNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIklOUFVUIik7DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZzY3JpcHQ6IGNoYW5nZUNoYW5uZWxOdW1iZXIodGhpcykiKTsNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC52YWx1ZSA9IHRoaXMudmFsdWU7DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQudHlwZSA9ICJ0ZXh0IjsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAiQlVMSyI6DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJJTlBVVCIpOw0KICAgICAgICAgICAgICAgICAgICBlbGVtZW50LmNoZWNrZWQgPSB0aGlzLnZhbHVlOw0KICAgICAgICAgICAgICAgICAgICBlbGVtZW50LnR5cGUgPSAiY2hlY2tib3giOw0KICAgICAgICAgICAgICAgICAgICBlbGVtZW50LmNsYXNzTmFtZSA9ICJidWxrIGhpZGVCdWxrIjsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAiQlVMS19IRUFEIjoNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIklOUFVUIik7DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQuY2hlY2tlZCA9IHRoaXMudmFsdWU7DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQudHlwZSA9ICJjaGVja2JveCI7DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQuY2xhc3NOYW1lID0gImJ1bGsgaGlkZUJ1bGsiOw0KICAgICAgICAgICAgICAgICAgICBlbGVtZW50LnNldEF0dHJpYnV0ZSgib25jbGljayIsICJqYXZhc2NyaXB0OiBzZWxlY3RBbGxDaGFubmVscygpIik7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgIklNRyI6DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KHRoaXMuY2hpbGRUeXBlKTsNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC5zZXRBdHRyaWJ1dGUoInNyYyIsIHRoaXMuaW1hZ2VVUkwpOw0KICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5pbWFnZVVSTCAhPSAiIikgew0KICAgICAgICAgICAgICAgICAgICAgICAgZWxlbWVudC5zZXRBdHRyaWJ1dGUoIm9uZXJyb3IiLCAiamF2YXNjcmlwdDogdGhpcy5vbmVycm9yPW51bGw7dGhpcy5zcmM9JyciKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIC8vb25lcnJvcj0idGhpcy5vbmVycm9yPW51bGw7dGhpcy5zcmM9J21pc3NpbmcuZ2lmJzsiDQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIHRkLmFwcGVuZENoaWxkKGVsZW1lbnQpOw0KICAgICAgICB9DQogICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgdGQuaW5uZXJIVE1MID0gdGhpcy52YWx1ZTsNCiAgICAgICAgfQ0KICAgICAgICBpZiAodGhpcy5vbmNsaWNrID09IHRydWUpIHsNCiAgICAgICAgICAgIHRkLnNldEF0dHJpYnV0ZSgib25jbGljayIsIHRoaXMub25jbGlja0Z1bmt0aW9uKTsNCiAgICAgICAgICAgIHRkLmNsYXNzTmFtZSA9ICJwb2ludGVyIjsNCiAgICAgICAgfQ0KICAgICAgICBpZiAodGhpcy50ZENsYXNzTmFtZSAhPSB1bmRlZmluZWQpIHsNCiAgICAgICAgICAgIHRkLmNsYXNzTmFtZSA9IHRoaXMudGRDbGFzc05hbWU7DQogICAgICAgIH0NCiAgICAgICAgcmV0dXJuIHRkOw0KICAgIH07DQogICAgcmV0dXJuIENlbGw7DQp9KCkpOw0KdmFyIFNob3dDb250ZW50ID0gLyoqIEBjbGFzcyAqLyAoZnVuY3Rpb24gKF9zdXBlcikgew0KICAgIF9fZXh0ZW5kcyhTaG93Q29udGVudCwgX3N1cGVyKTsNCiAgICBmdW5jdGlvbiBTaG93Q29udGVudChtZW51SUQpIHsNCiAgICAgICAgdmFyIF90aGlzID0gX3N1cGVyLmNhbGwodGhpcykgfHwgdGhpczsNCiAgICAgICAgX3RoaXMubWVudUlEID0gbWVudUlEOw0KICAgICAgICByZXR1cm4gX3RoaXM7DQogICAgfQ0KICAgIFNob3dDb250ZW50LnByb3RvdHlwZS5jcmVhdGVJbnB1dCA9IGZ1bmN0aW9uICh0eXBlLCBuYW1lLCB2YWx1ZSkgew0KICAgICAgICB2YXIgaW5wdXQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJJTlBVVCIpOw0KICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInR5cGUiLCB0eXBlKTsNCiAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJuYW1lIiwgbmFtZSk7DQogICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgidmFsdWUiLCB2YWx1ZSk7DQogICAgICAgIHJldHVybiBpbnB1dDsNCiAgICB9Ow0KICAgIFNob3dDb250ZW50LnByb3RvdHlwZS5zaG93ID0gZnVuY3Rpb24gKCkgew0KICAgICAgICBDT0xVTU5fVE9fU09SVCA9IC0xOw0KICAgICAgICAvLyBBbHRlbiBJbmhhbHQgbMO2c2NoZW4NCiAgICAgICAgdmFyIGRvYyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHRoaXMuRG9jdW1lbnRJRCk7DQogICAgICAgIGRvYy5pbm5lckhUTUwgPSAiIjsNCiAgICAgICAgc2hvd1ByZXZpZXcoZmFsc2UpOw0KICAgICAgICAvLyDDnGJlcnNjaHJpZnQNCiAgICAgICAgdmFyIGhlYWRsaW5lID0gbWVudUl0ZW1zW3RoaXMubWVudUlEXS5oZWFkbGluZTsNCiAgICAgICAgdmFyIG1lbnVLZXkgPSBtZW51SXRlbXNbdGhpcy5tZW51SURdLm1lbnVLZXk7DQogICAgICAgIHZhciBoID0gdGhpcy5jcmVhdGVIZWFkbGluZShoZWFkbGluZSk7DQogICAgICAgIGRvYy5hcHBlbmRDaGlsZChoKTsNCiAgICAgICAgdmFyIGhyID0gdGhpcy5jcmVhdGVIUigpOw0KICAgICAgICBkb2MuYXBwZW5kQ2hpbGQoaHIpOw0KICAgICAgICAvLyBJbnRlcmFrdGlvbg0KICAgICAgICB2YXIgZGl2ID0gdGhpcy5jcmVhdGVJbnRlcmFjdGlvbigpOw0KICAgICAgICBkb2MuYXBwZW5kQ2hpbGQoZGl2KTsNCiAgICAgICAgdmFyIGludGVyYWN0aW9uID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQodGhpcy5pbnRlcmFjdGlvbklEKTsNCiAgICAgICAgc3dpdGNoIChtZW51S2V5KSB7DQogICAgICAgICAgICBjYXNlICJwbGF5bGlzdCI6DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gdGhpcy5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgbWVudUtleSwgInt7LmJ1dHRvbi5uZXd9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgiaWQiLCAiLSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoInBsYXlsaXN0IiknKTsNCiAgICAgICAgICAgICAgICBpbnRlcmFjdGlvbi5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJmaWx0ZXIiOg0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IHRoaXMuY3JlYXRlSW5wdXQoImJ1dHRvbiIsIG1lbnVLZXksICJ7ey5idXR0b24ubmV3fX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoImlkIiwgLTEpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoImZpbHRlciIsIHRoaXMpJyk7DQogICAgICAgICAgICAgICAgaW50ZXJhY3Rpb24uYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAieG1sdHYiOg0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IHRoaXMuY3JlYXRlSW5wdXQoImJ1dHRvbiIsIG1lbnVLZXksICJ7ey5idXR0b24ubmV3fX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoImlkIiwgInhtbHR2Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgieG1sdHYiKScpOw0KICAgICAgICAgICAgICAgIGludGVyYWN0aW9uLmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInVzZXJzIjoNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSB0aGlzLmNyZWF0ZUlucHV0KCJidXR0b24iLCBtZW51S2V5LCAie3suYnV0dG9uLm5ld319Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJpZCIsICJ1c2VycyIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoInVzZXJzIiknKTsNCiAgICAgICAgICAgICAgICBpbnRlcmFjdGlvbi5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJtYXBwaW5nIjoNCiAgICAgICAgICAgICAgICBzaG93RWxlbWVudCgibG9hZGluZyIsIHRydWUpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IHRoaXMuY3JlYXRlSW5wdXQoImJ1dHRvbiIsIG1lbnVLZXksICJ7ey5idXR0b24uc2F2ZX19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoIm1hcHBpbmciLCAiIiwgIiIpJyk7DQogICAgICAgICAgICAgICAgaW50ZXJhY3Rpb24uYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IHRoaXMuY3JlYXRlSW5wdXQoImJ1dHRvbiIsIG1lbnVLZXksICJ7ey5idXR0b24uYnVsa0VkaXR9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBidWxrRWRpdCgpJyk7DQogICAgICAgICAgICAgICAgaW50ZXJhY3Rpb24uYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IHRoaXMuY3JlYXRlSW5wdXQoInNlYXJjaCIsICJzZWFyY2giLCAiIik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJpZCIsICJzZWFyY2hNYXBwaW5nIik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5idXR0b24uc2VhcmNofX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5jbGFzc05hbWUgPSAic2VhcmNoIjsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgJ2phdmFzY3JpcHQ6IHNlYXJjaEluTWFwcGluZygpJyk7DQogICAgICAgICAgICAgICAgaW50ZXJhY3Rpb24uYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAic2V0dGluZ3MiOg0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IHRoaXMuY3JlYXRlSW5wdXQoImJ1dHRvbiIsIG1lbnVLZXksICJ7ey5idXR0b24uc2F2ZX19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IHNhdmVTZXR0aW5ncygpOycpOw0KICAgICAgICAgICAgICAgIGludGVyYWN0aW9uLmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSB0aGlzLmNyZWF0ZUlucHV0KCJidXR0b24iLCBtZW51S2V5LCAie3suYnV0dG9uLmJhY2t1cH19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IGJhY2t1cCgpOycpOw0KICAgICAgICAgICAgICAgIGludGVyYWN0aW9uLmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSB0aGlzLmNyZWF0ZUlucHV0KCJidXR0b24iLCBtZW51S2V5LCAie3suYnV0dG9uLnJlc3RvcmV9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiByZXN0b3JlKCk7Jyk7DQogICAgICAgICAgICAgICAgaW50ZXJhY3Rpb24uYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIHZhciB3cmFwcGVyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiRElWIik7DQogICAgICAgICAgICAgICAgd3JhcHBlci5zZXRBdHRyaWJ1dGUoImlkIiwgImJveC13cmFwcGVyIik7DQogICAgICAgICAgICAgICAgZG9jLmFwcGVuZENoaWxkKHdyYXBwZXIpOw0KICAgICAgICAgICAgICAgIHRoaXMuRGl2SUQgPSAiY29udGVudF9zZXR0aW5ncyI7DQogICAgICAgICAgICAgICAgdmFyIHNldHRpbmdzID0gdGhpcy5jcmVhdGVESVYoKTsNCiAgICAgICAgICAgICAgICB3cmFwcGVyLmFwcGVuZENoaWxkKHNldHRpbmdzKTsNCiAgICAgICAgICAgICAgICBzaG93U2V0dGluZ3MoKTsNCiAgICAgICAgICAgICAgICByZXR1cm47DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJsb2ciOg0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IHRoaXMuY3JlYXRlSW5wdXQoImJ1dHRvbiIsIG1lbnVLZXksICJ7ey5idXR0b24ucmVzZXRMb2dzfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogcmVzZXRMb2dzKCk7Jyk7DQogICAgICAgICAgICAgICAgaW50ZXJhY3Rpb24uYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIHZhciB3cmFwcGVyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiRElWIik7DQogICAgICAgICAgICAgICAgd3JhcHBlci5zZXRBdHRyaWJ1dGUoImlkIiwgImJveC13cmFwcGVyIik7DQogICAgICAgICAgICAgICAgZG9jLmFwcGVuZENoaWxkKHdyYXBwZXIpOw0KICAgICAgICAgICAgICAgIHRoaXMuRGl2SUQgPSAiY29udGVudF9sb2ciOw0KICAgICAgICAgICAgICAgIHZhciBsb2dzID0gdGhpcy5jcmVhdGVESVYoKTsNCiAgICAgICAgICAgICAgICB3cmFwcGVyLmFwcGVuZENoaWxkKGxvZ3MpOw0KICAgICAgICAgICAgICAgIHNob3dMb2dzKHRydWUpOw0KICAgICAgICAgICAgICAgIHJldHVybjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImxvZ291dCI6DQogICAgICAgICAgICAgICAgbG9jYXRpb24ucmVsb2FkKCk7DQogICAgICAgICAgICAgICAgZG9jdW1lbnQuY29va2llID0gIlRva2VuPSA7IGV4cGlyZXMgPSBUaHUsIDAxIEphbiAxOTcwIDAwOjAwOjAwIEdNVCI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBkZWZhdWx0Og0KICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKCJTaG93IGNvbnRlbnQgKG1lbnVLZXkpOiIsIG1lbnVLZXkpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICB9DQogICAgICAgIC8vIFRhYmVsbGUgZXJzdGVsbGVuIChmYWxscyBiZW7DtnRpZ3QpDQogICAgICAgIHZhciB0YWJsZUhlYWRlciA9IG1lbnVJdGVtc1t0aGlzLm1lbnVJRF0udGFibGVIZWFkZXI7DQogICAgICAgIGlmICh0YWJsZUhlYWRlci5sZW5ndGggPiAwKSB7DQogICAgICAgICAgICB2YXIgd3JhcHBlciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIkRJViIpOw0KICAgICAgICAgICAgZG9jLmFwcGVuZENoaWxkKHdyYXBwZXIpOw0KICAgICAgICAgICAgd3JhcHBlci5zZXRBdHRyaWJ1dGUoImlkIiwgImJveC13cmFwcGVyIik7DQogICAgICAgICAgICB2YXIgdGFibGUgPSB0aGlzLmNyZWF0ZVRBQkxFKCk7DQogICAgICAgICAgICB3cmFwcGVyLmFwcGVuZENoaWxkKHRhYmxlKTsNCiAgICAgICAgICAgIHZhciBoZWFkZXIgPSB0aGlzLmNyZWF0ZVRhYmxlUm93KCk7DQogICAgICAgICAgICB0YWJsZS5hcHBlbmRDaGlsZChoZWFkZXIpOw0KICAgICAgICAgICAgLy8gS29wZnplaWxlIGRlciBUYWJsbGUNCiAgICAgICAgICAgIHRhYmxlSGVhZGVyLmZvckVhY2goZnVuY3Rpb24gKGVsZW1lbnQpIHsNCiAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGVsZW1lbnQ7DQogICAgICAgICAgICAgICAgaWYgKGVsZW1lbnQgPT0gIkJVTEsiKSB7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIkJVTEtfSEVBRCI7DQogICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBmYWxzZTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgaWYgKG1lbnVLZXkgPT0gIm1hcHBpbmciKSB7DQogICAgICAgICAgICAgICAgICAgIGlmIChlbGVtZW50ID09ICJ7ey5tYXBwaW5nLnRhYmxlLmNoTm99fSIpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwub25jbGljayA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLm9uY2xpY2tGdW5rdGlvbiA9ICJqYXZhc2NyaXB0OiBzb3J0VGFibGUoMSk7IjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudGRDbGFzc05hbWUgPSAic29ydFRoaXMiOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIGlmIChlbGVtZW50ID09ICJ7ey5tYXBwaW5nLnRhYmxlLmNoYW5uZWxOYW1lfX0iKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLm9uY2xpY2sgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5vbmNsaWNrRnVua3Rpb24gPSAiamF2YXNjcmlwdDogc29ydFRhYmxlKDMpOyI7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgaWYgKGVsZW1lbnQgPT0gInt7Lm1hcHBpbmcudGFibGUucGxheWxpc3R9fSIpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwub25jbGljayA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLm9uY2xpY2tGdW5rdGlvbiA9ICJqYXZhc2NyaXB0OiBzb3J0VGFibGUoNCk7IjsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBpZiAoZWxlbWVudCA9PSAie3subWFwcGluZy50YWJsZS5ncm91cFRpdGxlfX0iKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLm9uY2xpY2sgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5vbmNsaWNrRnVua3Rpb24gPSAiamF2YXNjcmlwdDogc29ydFRhYmxlKDUpOyI7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgaGVhZGVyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgIH0pOw0KICAgICAgICAgICAgdGFibGUuYXBwZW5kQ2hpbGQoaGVhZGVyKTsNCiAgICAgICAgICAgIC8vIEluaGFsdCBkZXIgVGFiZWxsZQ0KICAgICAgICAgICAgdmFyIHJvd3MgPSB0aGlzLmNyZWF0ZVRhYmxlQ29udGVudChtZW51S2V5KTsNCiAgICAgICAgICAgIHJvd3MuZm9yRWFjaChmdW5jdGlvbiAodHIpIHsNCiAgICAgICAgICAgICAgICB0YWJsZS5hcHBlbmRDaGlsZCh0cik7DQogICAgICAgICAgICB9KTsNCiAgICAgICAgfQ0KICAgICAgICBzd2l0Y2ggKG1lbnVLZXkpIHsNCiAgICAgICAgICAgIGNhc2UgIm1hcHBpbmciOg0KICAgICAgICAgICAgICAgIHNvcnRUYWJsZSgxKTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImZpbHRlciI6DQogICAgICAgICAgICAgICAgc2hvd1ByZXZpZXcodHJ1ZSk7DQogICAgICAgICAgICAgICAgc29ydFRhYmxlKDApOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgICAgICBDT0xVTU5fVE9fU09SVCA9IC0xOw0KICAgICAgICAgICAgICAgIHNvcnRUYWJsZSgwKTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgfQ0KICAgICAgICBzaG93RWxlbWVudCgibG9hZGluZyIsIGZhbHNlKTsNCiAgICB9Ow0KICAgIHJldHVybiBTaG93Q29udGVudDsNCn0oQ29udGVudCkpOw0KZnVuY3Rpb24gUGFnZVJlYWR5KCkgew0KICAgIHZhciBzZXJ2ZXIgPSBuZXcgU2VydmVyKCJnZXRTZXJ2ZXJDb25maWciKTsNCiAgICBzZXJ2ZXIucmVxdWVzdChuZXcgT2JqZWN0KCkpOw0KICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJyZXNpemUiLCBmdW5jdGlvbiAoKSB7DQogICAgICAgIGNhbGN1bGF0ZVdyYXBwZXJIZWlnaHQoKTsNCiAgICB9LCB0cnVlKTsNCiAgICBzZXRJbnRlcnZhbChmdW5jdGlvbiAoKSB7DQogICAgICAgIHVwZGF0ZUxvZygpOw0KICAgIH0sIDEwMDAwKTsNCiAgICByZXR1cm47DQp9DQpmdW5jdGlvbiBjcmVhdGVMYXlvdXQoKSB7DQogICAgLy8gQ2xpZW50IEluZm8NCiAgICB2YXIgb2JqID0gU0VSVkVSWyJjbGllbnRJbmZvIl07DQogICAgdmFyIGtleXMgPSBnZXRPYmpLZXlzKG9iaik7DQogICAgZm9yICh2YXIgaSA9IDA7IGkgPCBrZXlzLmxlbmd0aDsgaSsrKSB7DQogICAgICAgIGlmIChkb2N1bWVudC5nZXRFbGVtZW50QnlJZChrZXlzW2ldKSkgew0KICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoa2V5c1tpXSkuaW5uZXJIVE1MID0gb2JqW2tleXNbaV1dOw0KICAgICAgICB9DQogICAgfQ0KICAgIGlmICghZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm1haW4tbWVudSIpKSB7DQogICAgICAgIHJldHVybjsNCiAgICB9DQogICAgLy8gTWVuw7wgZXJzdGVsbGVuDQogICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm1haW4tbWVudSIpLmlubmVySFRNTCA9ICIiOw0KICAgIGZvciAodmFyIGlfMSA9IDA7IGlfMSA8IG1lbnVJdGVtcy5sZW5ndGg7IGlfMSsrKSB7DQogICAgICAgIG1lbnVJdGVtc1tpXzFdLmlkID0gaV8xOw0KICAgICAgICBzd2l0Y2ggKG1lbnVJdGVtc1tpXzFdWyJtZW51S2V5Il0pIHsNCiAgICAgICAgICAgIGNhc2UgInVzZXJzIjoNCiAgICAgICAgICAgIGNhc2UgImxvZ291dCI6DQogICAgICAgICAgICAgICAgaWYgKFNFUlZFUlsic2V0dGluZ3MiXVsiYXV0aGVudGljYXRpb24ud2ViIl0gPT0gdHJ1ZSkgew0KICAgICAgICAgICAgICAgICAgICBtZW51SXRlbXNbaV8xXS5jcmVhdGVJdGVtKCk7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAibWFwcGluZyI6DQogICAgICAgICAgICBjYXNlICJ4bWx0diI6DQogICAgICAgICAgICAgICAgaWYgKFNFUlZFUlsiY2xpZW50SW5mbyJdWyJlcGdTb3VyY2UiXSA9PSAiWEVQRyIpIHsNCiAgICAgICAgICAgICAgICAgICAgbWVudUl0ZW1zW2lfMV0uY3JlYXRlSXRlbSgpOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICAgICAgbWVudUl0ZW1zW2lfMV0uY3JlYXRlSXRlbSgpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICB9DQogICAgfQ0KICAgIHJldHVybjsNCn0NCmZ1bmN0aW9uIG9wZW5UaGlzTWVudShlbGVtZW50KSB7DQogICAgdmFyIGlkID0gZWxlbWVudC5pZDsNCiAgICB2YXIgY29udGVudCA9IG5ldyBTaG93Q29udGVudChpZCk7DQogICAgY29udGVudC5zaG93KCk7DQogICAgY2FsY3VsYXRlV3JhcHBlckhlaWdodCgpOw0KICAgIHJldHVybjsNCn0NCnZhciBQb3B1cFdpbmRvdyA9IC8qKiBAY2xhc3MgKi8gKGZ1bmN0aW9uICgpIHsNCiAgICBmdW5jdGlvbiBQb3B1cFdpbmRvdygpIHsNCiAgICAgICAgdGhpcy5Eb2N1bWVudElEID0gInBvcHVwLWN1c3RvbSI7DQogICAgICAgIHRoaXMuSW50ZXJhY3Rpb25JRCA9ICJpbnRlcmFjdGlvbiI7DQogICAgICAgIHRoaXMuZG9jID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQodGhpcy5Eb2N1bWVudElEKTsNCiAgICB9DQogICAgUG9wdXBXaW5kb3cucHJvdG90eXBlLmNyZWF0ZVRpdGxlID0gZnVuY3Rpb24gKHRpdGxlKSB7DQogICAgICAgIHZhciB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgIHRkLmNsYXNzTmFtZSA9ICJsZWZ0IjsNCiAgICAgICAgdGQuaW5uZXJIVE1MID0gdGl0bGUgKyAiOiI7DQogICAgICAgIHJldHVybiB0ZDsNCiAgICB9Ow0KICAgIFBvcHVwV2luZG93LnByb3RvdHlwZS5jcmVhdGVDb250ZW50ID0gZnVuY3Rpb24gKGVsZW1lbnQpIHsNCiAgICAgICAgdmFyIHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgdGQuYXBwZW5kQ2hpbGQoZWxlbWVudCk7DQogICAgICAgIHJldHVybiB0ZDsNCiAgICB9Ow0KICAgIFBvcHVwV2luZG93LnByb3RvdHlwZS5jcmVhdGVJbnRlcmFjdGlvbiA9IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgdmFyIGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOw0KICAgICAgICBkaXYuc2V0QXR0cmlidXRlKCJpZCIsICJwb3B1cC1pbnRlcmFjdGlvbiIpOw0KICAgICAgICBkaXYuY2xhc3NOYW1lID0gImludGVyYWN0aW9uIjsNCiAgICAgICAgdGhpcy5kb2MuYXBwZW5kQ2hpbGQoZGl2KTsNCiAgICB9Ow0KICAgIHJldHVybiBQb3B1cFdpbmRvdzsNCn0oKSk7DQp2YXIgUG9wdXBDb250ZW50ID0gLyoqIEBjbGFzcyAqLyAoZnVuY3Rpb24gKF9zdXBlcikgew0KICAgIF9fZXh0ZW5kcyhQb3B1cENvbnRlbnQsIF9zdXBlcik7DQogICAgZnVuY3Rpb24gUG9wdXBDb250ZW50KCkgew0KICAgICAgICB2YXIgX3RoaXMgPSBfc3VwZXIgIT09IG51bGwgJiYgX3N1cGVyLmFwcGx5KHRoaXMsIGFyZ3VtZW50cykgfHwgdGhpczsNCiAgICAgICAgX3RoaXMudGFibGUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJUQUJMRSIpOw0KICAgICAgICByZXR1cm4gX3RoaXM7DQogICAgfQ0KICAgIFBvcHVwQ29udGVudC5wcm90b3R5cGUuY3JlYXRlSGVhZGxpbmUgPSBmdW5jdGlvbiAoaGVhZGxpbmUpIHsNCiAgICAgICAgdGhpcy5kb2MuaW5uZXJIVE1MID0gIiI7DQogICAgICAgIHZhciBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiSDMiKTsNCiAgICAgICAgZWxlbWVudC5pbm5lckhUTUwgPSBoZWFkbGluZS50b1VwcGVyQ2FzZSgpOw0KICAgICAgICB0aGlzLmRvYy5hcHBlbmRDaGlsZChlbGVtZW50KTsNCiAgICAgICAgLy8gVGFiZWxsZSBlcnN0ZWxsZW4NCiAgICAgICAgdGhpcy50YWJsZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlRBQkxFIik7DQogICAgICAgIHRoaXMuZG9jLmFwcGVuZENoaWxkKHRoaXMudGFibGUpOw0KICAgIH07DQogICAgUG9wdXBDb250ZW50LnByb3RvdHlwZS5hcHBlbmRSb3cgPSBmdW5jdGlvbiAodGl0bGUsIGVsZW1lbnQpIHsNCiAgICAgICAgdmFyIHRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVFIiKTsNCiAgICAgICAgLy8gQmV6ZWljaG51bmcNCiAgICAgICAgaWYgKHRpdGxlLmxlbmd0aCAhPSAwKSB7DQogICAgICAgICAgICB0ci5hcHBlbmRDaGlsZCh0aGlzLmNyZWF0ZVRpdGxlKHRpdGxlKSk7DQogICAgICAgIH0NCiAgICAgICAgLy8gQ29udGVudA0KICAgICAgICB0ci5hcHBlbmRDaGlsZCh0aGlzLmNyZWF0ZUNvbnRlbnQoZWxlbWVudCkpOw0KICAgICAgICB0aGlzLnRhYmxlLmFwcGVuZENoaWxkKHRyKTsNCiAgICB9Ow0KICAgIFBvcHVwQ29udGVudC5wcm90b3R5cGUuY3JlYXRlSW5wdXQgPSBmdW5jdGlvbiAodHlwZSwgbmFtZSwgdmFsdWUpIHsNCiAgICAgICAgdmFyIGlucHV0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiSU5QVVQiKTsNCiAgICAgICAgaWYgKHZhbHVlID09IHVuZGVmaW5lZCkgew0KICAgICAgICAgICAgdmFsdWUgPSAiIjsNCiAgICAgICAgfQ0KICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInR5cGUiLCB0eXBlKTsNCiAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJuYW1lIiwgbmFtZSk7DQogICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgidmFsdWUiLCB2YWx1ZSk7DQogICAgICAgIHJldHVybiBpbnB1dDsNCiAgICB9Ow0KICAgIFBvcHVwQ29udGVudC5wcm90b3R5cGUuY3JlYXRlQ2hlY2tib3ggPSBmdW5jdGlvbiAobmFtZSkgew0KICAgICAgICB2YXIgaW5wdXQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJJTlBVVCIpOw0KICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInR5cGUiLCAiY2hlY2tib3giKTsNCiAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJuYW1lIiwgbmFtZSk7DQogICAgICAgIHJldHVybiBpbnB1dDsNCiAgICB9Ow0KICAgIFBvcHVwQ29udGVudC5wcm90b3R5cGUuY3JlYXRlU2VsZWN0ID0gZnVuY3Rpb24gKHRleHQsIHZhbHVlcywgc2V0LCBkYktleSkgew0KICAgICAgICB2YXIgc2VsZWN0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiU0VMRUNUIik7DQogICAgICAgIHNlbGVjdC5zZXRBdHRyaWJ1dGUoIm5hbWUiLCBkYktleSk7DQogICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGV4dC5sZW5ndGg7IGkrKykgew0KICAgICAgICAgICAgdmFyIG9wdGlvbiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIk9QVElPTiIpOw0KICAgICAgICAgICAgb3B0aW9uLnNldEF0dHJpYnV0ZSgidmFsdWUiLCB2YWx1ZXNbaV0pOw0KICAgICAgICAgICAgb3B0aW9uLmlubmVyVGV4dCA9IHRleHRbaV07DQogICAgICAgICAgICBzZWxlY3QuYXBwZW5kQ2hpbGQob3B0aW9uKTsNCiAgICAgICAgfQ0KICAgICAgICBpZiAoc2V0ICE9ICIiKSB7DQogICAgICAgICAgICBzZWxlY3QudmFsdWUgPSBzZXQ7DQogICAgICAgIH0NCiAgICAgICAgaWYgKHNldCA9PSB1bmRlZmluZWQpIHsNCiAgICAgICAgICAgIHNlbGVjdC52YWx1ZSA9IHZhbHVlc1swXTsNCiAgICAgICAgfQ0KICAgICAgICByZXR1cm4gc2VsZWN0Ow0KICAgIH07DQogICAgUG9wdXBDb250ZW50LnByb3RvdHlwZS5zZWxlY3RPcHRpb24gPSBmdW5jdGlvbiAoc2VsZWN0LCB2YWx1ZSkgew0KICAgICAgICAvL3NlbGVjdC5zZWxlY3RlZE9wdGlvbnMgPSB2YWx1ZQ0KICAgICAgICB2YXIgcyA9IHNlbGVjdDsNCiAgICAgICAgcy5vcHRpb25zW3Muc2VsZWN0ZWRJbmRleF0udmFsdWUgPSB2YWx1ZTsNCiAgICAgICAgcmV0dXJuIHNlbGVjdDsNCiAgICB9Ow0KICAgIFBvcHVwQ29udGVudC5wcm90b3R5cGUuZGVzY3JpcHRpb24gPSBmdW5jdGlvbiAodmFsdWUpIHsNCiAgICAgICAgdmFyIHRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVFIiKTsNCiAgICAgICAgdmFyIHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgdmFyIHNwYW4gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJQUkUiKTsNCiAgICAgICAgc3Bhbi5pbm5lckhUTUwgPSB2YWx1ZTsNCiAgICAgICAgdHIuYXBwZW5kQ2hpbGQodGQpOw0KICAgICAgICB0ci5hcHBlbmRDaGlsZCh0aGlzLmNyZWF0ZUNvbnRlbnQoc3BhbikpOw0KICAgICAgICB0aGlzLnRhYmxlLmFwcGVuZENoaWxkKHRyKTsNCiAgICB9Ow0KICAgIC8vIEludGVyYWt0aW9uDQogICAgUG9wdXBDb250ZW50LnByb3RvdHlwZS5hZGRJbnRlcmFjdGlvbiA9IGZ1bmN0aW9uIChlbGVtZW50KSB7DQogICAgICAgIHZhciBpbnRlcmFjdGlvbiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJwb3B1cC1pbnRlcmFjdGlvbiIpOw0KICAgICAgICBpbnRlcmFjdGlvbi5hcHBlbmRDaGlsZChlbGVtZW50KTsNCiAgICB9Ow0KICAgIHJldHVybiBQb3B1cENvbnRlbnQ7DQp9KFBvcHVwV2luZG93KSk7DQpmdW5jdGlvbiBvcGVuUG9wVXAoZGF0YVR5cGUsIGVsZW1lbnQpIHsNCiAgICB2YXIgZGF0YSA9IG5ldyBPYmplY3QoKTsNCiAgICB2YXIgaWQ7DQogICAgc3dpdGNoIChlbGVtZW50KSB7DQogICAgICAgIGNhc2UgdW5kZWZpbmVkOg0KICAgICAgICAgICAgc3dpdGNoIChkYXRhVHlwZSkgew0KICAgICAgICAgICAgICAgIGNhc2UgImdyb3VwLXRpdGxlIjoNCiAgICAgICAgICAgICAgICAgICAgaWYgKGlkID09IHVuZGVmaW5lZCkgew0KICAgICAgICAgICAgICAgICAgICAgICAgaWQgPSAtMTsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBkYXRhID0gZ2V0TG9jYWxEYXRhKCJmaWx0ZXIiLCBpZCk7DQogICAgICAgICAgICAgICAgICAgIGRhdGFbInR5cGUiXSA9ICJncm91cC10aXRsZSI7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgImN1c3RvbS1maWx0ZXIiOg0KICAgICAgICAgICAgICAgICAgICBpZiAoaWQgPT0gdW5kZWZpbmVkKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBpZCA9IC0xOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIGRhdGEgPSBnZXRMb2NhbERhdGEoImZpbHRlciIsIGlkKTsNCiAgICAgICAgICAgICAgICAgICAgZGF0YVsidHlwZSJdID0gImN1c3RvbS1maWx0ZXIiOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBkZWZhdWx0Og0KICAgICAgICAgICAgICAgICAgICBkYXRhWyJpZC5wcm92aWRlciJdID0gIi0iOw0KICAgICAgICAgICAgICAgICAgICBkYXRhWyJ0eXBlIl0gPSBkYXRhVHlwZTsNCiAgICAgICAgICAgICAgICAgICAgaWQgPSAiLSI7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICBpZCA9IGVsZW1lbnQuaWQ7DQogICAgICAgICAgICBkYXRhID0gZ2V0TG9jYWxEYXRhKGRhdGFUeXBlLCBpZCk7DQogICAgICAgICAgICBicmVhazsNCiAgICB9DQogICAgdmFyIGNvbnRlbnQgPSBuZXcgUG9wdXBDb250ZW50KCk7DQogICAgc3dpdGNoIChkYXRhVHlwZSkgew0KICAgICAgICBjYXNlICJwbGF5bGlzdCI6DQogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUhlYWRsaW5lKCJ7ey5wbGF5bGlzdC5wbGF5bGlzdFR5cGUudGl0bGV9fSIpOw0KICAgICAgICAgICAgLy8gVHlwZQ0KICAgICAgICAgICAgdmFyIHRleHQgPSBbIk0zVSIsICJIREhvbWVSdW4iXTsNCiAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBbImphdmFzY3JpcHQ6IG9wZW5Qb3BVcCgnbTN1JykiLCAiamF2YXNjcmlwdDogb3BlblBvcFVwKCdoZGhyJykiXTsNCiAgICAgICAgICAgIHZhciBzZWxlY3QgPSBjb250ZW50LmNyZWF0ZVNlbGVjdCh0ZXh0LCB2YWx1ZXMsICIiLCAidHlwZSIpOw0KICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgiaWQiLCAidHlwZSIpOw0KICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAnamF2YXNjcmlwdDogY2hhbmdlQnV0dG9uQWN0aW9uKHRoaXMsICJuZXh0IiwgIm9uY2xpY2siKScpOyAvLyBjaGFuZ2VCdXR0b25BY3Rpb24NCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5wbGF5bGlzdC50eXBlLnRpdGxlfX0iLCBzZWxlY3QpOw0KICAgICAgICAgICAgLy8gSW50ZXJha3Rpb24NCiAgICAgICAgICAgIGNvbnRlbnQuY3JlYXRlSW50ZXJhY3Rpb24oKTsNCiAgICAgICAgICAgIC8vIEFiYnJlY2hlbg0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImNhbmNlbCIsICJ7ey5idXR0b24uY2FuY2VsfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBzaG93RWxlbWVudCgicG9wdXAiLCBmYWxzZSk7Jyk7DQogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIC8vIFdlaXRlcg0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgIm5leHQiLCAie3suYnV0dG9uLm5leHR9fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgibTN1IiknKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgiaWQiLCAnbmV4dCcpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSAibTN1IjoNCiAgICAgICAgICAgIGNvbnRlbnQuY3JlYXRlSGVhZGxpbmUoZGF0YVR5cGUpOw0KICAgICAgICAgICAgLy8gTmFtZQ0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gIm5hbWUiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnBsYXlsaXN0Lm5hbWUucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnBsYXlsaXN0Lm5hbWUudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIEJlc2NocmVpYnVuZw0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gImRlc2NyaXB0aW9uIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5wbGF5bGlzdC5kZXNjcmlwdGlvbi5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sucGxheWxpc3QuZGVzY3JpcHRpb24udGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIFVSTA0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gImZpbGUuc291cmNlIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5wbGF5bGlzdC5maWxlTTNVLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5wbGF5bGlzdC5maWxlTTNVLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBUdW5lcg0KICAgICAgICAgICAgaWYgKFNFUlZFUlsic2V0dGluZ3MiXVsiYnVmZmVyIl0gIT0gIi0iKSB7DQogICAgICAgICAgICAgICAgdmFyIHRleHQgPSBuZXcgQXJyYXkoKTsNCiAgICAgICAgICAgICAgICB2YXIgdmFsdWVzID0gbmV3IEFycmF5KCk7DQogICAgICAgICAgICAgICAgZm9yICh2YXIgaSA9IDE7IGkgPD0gMTAwOyBpKyspIHsNCiAgICAgICAgICAgICAgICAgICAgdGV4dC5wdXNoKGkudG9TdHJpbmcoKSk7DQogICAgICAgICAgICAgICAgICAgIHZhbHVlcy5wdXNoKGkudG9TdHJpbmcoKSk7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIHZhciBkYktleSA9ICJ0dW5lciI7DQogICAgICAgICAgICAgICAgdmFyIHNlbGVjdCA9IGNvbnRlbnQuY3JlYXRlU2VsZWN0KHRleHQsIHZhbHVlcywgZGF0YVtkYktleV0sIGRiS2V5KTsNCiAgICAgICAgICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJvbmZvY3VzIiwgImphdmFzY3JpcHQ6IHJldHVybjsiKTsNCiAgICAgICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sucGxheWxpc3QudHVuZXIudGl0bGV9fSIsIHNlbGVjdCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICB2YXIgZGJLZXkgPSAidHVuZXIiOw0KICAgICAgICAgICAgICAgIGlmIChkYXRhW2RiS2V5XSA9PSB1bmRlZmluZWQpIHsNCiAgICAgICAgICAgICAgICAgICAgZGF0YVtkYktleV0gPSAxOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInJlYWRvbmx5IiwgInRydWUiKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5jbGFzc05hbWUgPSAibm90QXZhaWxhYmxlIjsNCiAgICAgICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sucGxheWxpc3QudHVuZXIudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGNvbnRlbnQuZGVzY3JpcHRpb24oInt7LnBsYXlsaXN0LnR1bmVyLmRlc2NyaXB0aW9ufX0iKTsNCiAgICAgICAgICAgIC8vIEludGVyYWt0aW9uDQogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUludGVyYWN0aW9uKCk7DQogICAgICAgICAgICAvLyBMw7ZzY2hlbg0KICAgICAgICAgICAgaWYgKGRhdGFbImlkLnByb3ZpZGVyIl0gIT0gIi0iKSB7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImRlbGV0ZSIsICJ7ey5idXR0b24uZGVsZXRlfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5jbGFzc05hbWUgPSAiZGVsZXRlIjsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogc2F2ZVBvcHVwRGF0YSgibTN1IiwgIicgKyBpZCArICciLCB0cnVlLCAwKScpOw0KICAgICAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgZWxzZSB7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImJhY2siLCAie3suYnV0dG9uLmJhY2t9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoInBsYXlsaXN0IiknKTsNCiAgICAgICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIC8vIEFiYnJlY2hlbg0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImNhbmNlbCIsICJ7ey5idXR0b24uY2FuY2VsfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBzaG93RWxlbWVudCgicG9wdXAiLCBmYWxzZSk7Jyk7DQogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIC8vIEFrdHVhbGlzaWVyZW4NCiAgICAgICAgICAgIGlmIChkYXRhWyJpZC5wcm92aWRlciJdICE9ICItIikgew0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJ1cGRhdGUiLCAie3suYnV0dG9uLnVwZGF0ZX19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoIm0zdSIsICInICsgaWQgKyAnIiwgZmFsc2UsIDEpJyk7DQogICAgICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICAvLyBTcGVpY2hlcm4NCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJzYXZlIiwgInt7LmJ1dHRvbi5zYXZlfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBzYXZlUG9wdXBEYXRhKCJtM3UiLCAiJyArIGlkICsgJyIsIGZhbHNlLCAwKScpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSAiaGRociI6DQogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUhlYWRsaW5lKGRhdGFUeXBlKTsNCiAgICAgICAgICAgIC8vIE5hbWUNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJuYW1lIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5wbGF5bGlzdC5uYW1lLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5wbGF5bGlzdC5uYW1lLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBCZXNjaHJlaWJ1bmcNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJkZXNjcmlwdGlvbiI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3sucGxheWxpc3QuZGVzY3JpcHRpb24ucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnBsYXlsaXN0LmRlc2NyaXB0aW9uLnBsYWNlaG9sZGVyfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBVUkwNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJmaWxlLnNvdXJjZSI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3sucGxheWxpc3QuZmlsZUhESFIucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnBsYXlsaXN0LmZpbGVIREhSLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBUdW5lcg0KICAgICAgICAgICAgaWYgKFNFUlZFUlsic2V0dGluZ3MiXVsiYnVmZmVyIl0gIT0gIi0iKSB7DQogICAgICAgICAgICAgICAgdmFyIHRleHQgPSBuZXcgQXJyYXkoKTsNCiAgICAgICAgICAgICAgICB2YXIgdmFsdWVzID0gbmV3IEFycmF5KCk7DQogICAgICAgICAgICAgICAgZm9yICh2YXIgaSA9IDE7IGkgPD0gMTAwOyBpKyspIHsNCiAgICAgICAgICAgICAgICAgICAgdGV4dC5wdXNoKGkudG9TdHJpbmcoKSk7DQogICAgICAgICAgICAgICAgICAgIHZhbHVlcy5wdXNoKGkudG9TdHJpbmcoKSk7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIHZhciBkYktleSA9ICJ0dW5lciI7DQogICAgICAgICAgICAgICAgdmFyIHNlbGVjdCA9IGNvbnRlbnQuY3JlYXRlU2VsZWN0KHRleHQsIHZhbHVlcywgZGF0YVtkYktleV0sIGRiS2V5KTsNCiAgICAgICAgICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJvbmZvY3VzIiwgImphdmFzY3JpcHQ6IHJldHVybjsiKTsNCiAgICAgICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sucGxheWxpc3QudHVuZXIudGl0bGV9fSIsIHNlbGVjdCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICB2YXIgZGJLZXkgPSAidHVuZXIiOw0KICAgICAgICAgICAgICAgIGlmIChkYXRhW2RiS2V5XSA9PSB1bmRlZmluZWQpIHsNCiAgICAgICAgICAgICAgICAgICAgZGF0YVtkYktleV0gPSAxOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInJlYWRvbmx5IiwgInRydWUiKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5jbGFzc05hbWUgPSAibm90QXZhaWxhYmxlIjsNCiAgICAgICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sucGxheWxpc3QudHVuZXIudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGNvbnRlbnQuZGVzY3JpcHRpb24oInt7LnBsYXlsaXN0LnR1bmVyLmRlc2NyaXB0aW9ufX0iKTsNCiAgICAgICAgICAgIC8vIEludGVyYWt0aW9uDQogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUludGVyYWN0aW9uKCk7DQogICAgICAgICAgICAvLyBMw7ZzY2hlbg0KICAgICAgICAgICAgaWYgKGRhdGFbImlkLnByb3ZpZGVyIl0gIT0gIi0iKSB7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImRlbGV0ZSIsICJ7ey5idXR0b24uZGVsZXRlfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogc2F2ZVBvcHVwRGF0YSgiaGRociIsICInICsgaWQgKyAnIiwgdHJ1ZSwgMCknKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5jbGFzc05hbWUgPSAiZGVsZXRlIjsNCiAgICAgICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJiYWNrIiwgInt7LmJ1dHRvbi5iYWNrfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJwbGF5bGlzdCIpJyk7DQogICAgICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICAvLyBBYmJyZWNoZW4NCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJjYW5jZWwiLCAie3suYnV0dG9uLmNhbmNlbH19Iik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogc2hvd0VsZW1lbnQoInBvcHVwIiwgZmFsc2UpOycpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICAvLyBBa3R1YWxpc2llcmVuDQogICAgICAgICAgICBpZiAoZGF0YVsiaWQucHJvdmlkZXIiXSAhPSAiLSIpIHsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAidXBkYXRlIiwgInt7LmJ1dHRvbi51cGRhdGV9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBzYXZlUG9wdXBEYXRhKCJoZGhyIiwgIicgKyBpZCArICciLCBmYWxzZSwgMSknKTsNCiAgICAgICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIC8vIFNwZWljaGVybg0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgInNhdmUiLCAie3suYnV0dG9uLnNhdmV9fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoImhkaHIiLCAiJyArIGlkICsgJyIsIGZhbHNlLCAwKScpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSAiZmlsdGVyIjoNCiAgICAgICAgICAgIGNvbnRlbnQuY3JlYXRlSGVhZGxpbmUoZGF0YVR5cGUpOw0KICAgICAgICAgICAgLy8gVHlwZQ0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gInR5cGUiOw0KICAgICAgICAgICAgdmFyIHRleHQgPSBbIk0zVTogIiArICJ7ey5maWx0ZXIudHlwZS5ncm91cFRpdGxlfX0iLCAieFRlVmU6ICIgKyAie3suZmlsdGVyLnR5cGUuY3VzdG9tRmlsdGVyfX0iXTsNCiAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBbImphdmFzY3JpcHQ6IG9wZW5Qb3BVcCgnZ3JvdXAtdGl0bGUnKSIsICJqYXZhc2NyaXB0OiBvcGVuUG9wVXAoJ2N1c3RvbS1maWx0ZXInKSJdOw0KICAgICAgICAgICAgdmFyIHNlbGVjdCA9IGNvbnRlbnQuY3JlYXRlU2VsZWN0KHRleHQsIHZhbHVlcywgImphdmFzY3JpcHQ6IG9wZW5Qb3BVcCgnZ3JvdXAtdGl0bGUnKSIsIGRiS2V5KTsNCiAgICAgICAgICAgIHNlbGVjdC5zZXRBdHRyaWJ1dGUoImlkIiwgaWQpOw0KICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAnamF2YXNjcmlwdDogY2hhbmdlQnV0dG9uQWN0aW9uKHRoaXMsICJuZXh0IiwgIm9uY2xpY2siKTsnKTsgLy8gY2hhbmdlQnV0dG9uQWN0aW9uDQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3suZmlsdGVyLnR5cGUudGl0bGV9fSIsIHNlbGVjdCk7DQogICAgICAgICAgICAvLyBJbnRlcmFrdGlvbg0KICAgICAgICAgICAgY29udGVudC5jcmVhdGVJbnRlcmFjdGlvbigpOw0KICAgICAgICAgICAgLy8gQWJicmVjaGVuDQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAiY2FuY2VsIiwgInt7LmJ1dHRvbi5jYW5jZWx9fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IHNob3dFbGVtZW50KCJwb3B1cCIsIGZhbHNlKTsnKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgLy8gV2VpdGVyDQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAibmV4dCIsICJ7ey5idXR0b24ubmV4dH19Iik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJncm91cC10aXRsZSIpJyk7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoImlkIiwgJ25leHQnKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGNhc2UgImN1c3RvbS1maWx0ZXIiOg0KICAgICAgICBjYXNlICJncm91cC10aXRsZSI6DQogICAgICAgICAgICBzd2l0Y2ggKGRhdGFUeXBlKSB7DQogICAgICAgICAgICAgICAgY2FzZSAiY3VzdG9tLWZpbHRlciI6DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuY3JlYXRlSGVhZGxpbmUoInt7LmZpbHRlci5jdXN0b219fSIpOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBjYXNlICJncm91cC10aXRsZSI6DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuY3JlYXRlSGVhZGxpbmUoInt7LmZpbHRlci5ncm91cH19Iik7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgLy8gTmFtZSAgICAgIA0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gIm5hbWUiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LmZpbHRlci5uYW1lLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5maWx0ZXIubmFtZS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgLy8gQmVzY2hyZWlidW5nDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAiZGVzY3JpcHRpb24iOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LmZpbHRlci5kZXNjcmlwdGlvbi5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3suZmlsdGVyLmRlc2NyaXB0aW9uLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBUeXANCiAgICAgICAgICAgIHZhciBkYktleSA9ICJ0eXBlIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImhpZGRlbiIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygiIiwgaW5wdXQpOw0KICAgICAgICAgICAgdmFyIGZpbHRlclR5cGUgPSBkYXRhW2RiS2V5XTsNCiAgICAgICAgICAgIHN3aXRjaCAoZmlsdGVyVHlwZSkgew0KICAgICAgICAgICAgICAgIGNhc2UgImN1c3RvbS1maWx0ZXIiOg0KICAgICAgICAgICAgICAgICAgICAvLyBHcm/Dny0gS2xlaW5zY2hyZWlidW5nIGJlYWNodGVuDQogICAgICAgICAgICAgICAgICAgIHZhciBkYktleSA9ICJjYXNlU2Vuc2l0aXZlIjsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChkYktleSk7DQogICAgICAgICAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhW2RiS2V5XTsNCiAgICAgICAgICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LmZpbHRlci5jYXNlU2Vuc2l0aXZlLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAgICAgICAgIC8vIEZpbHRlcnJlZ2VsIChCZW51dHplcmRlZmluaWVydCkNCiAgICAgICAgICAgICAgICAgICAgdmFyIGRiS2V5ID0gImZpbHRlciI7DQogICAgICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LmZpbHRlci5maWx0ZXJSdWxlLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LmZpbHRlci5maWx0ZXJSdWxlLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgImdyb3VwLXRpdGxlIjoNCiAgICAgICAgICAgICAgICAgICAgLy9hbGVydChkYktleSArICIgIiArIGZpbHRlclR5cGUpDQogICAgICAgICAgICAgICAgICAgIC8vIEZpbHRlciBiYXNpZXJlbmQgYXVmIGRlbiBHcnVwcGVuIGluIGRlciBNM1UNCiAgICAgICAgICAgICAgICAgICAgdmFyIGRiS2V5ID0gImZpbHRlciI7DQogICAgICAgICAgICAgICAgICAgIHZhciBncm91cHNNM1UgPSBnZXRMb2NhbERhdGEoIm0zdUdyb3VwcyIsICIiKTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHRleHQgPSBncm91cHNNM1VbInRleHQiXTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHZhbHVlcyA9IGdyb3Vwc00zVVsidmFsdWUiXTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHNlbGVjdCA9IGNvbnRlbnQuY3JlYXRlU2VsZWN0KHRleHQsIHZhbHVlcywgZGF0YVtkYktleV0sIGRiS2V5KTsNCiAgICAgICAgICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LmZpbHRlci5maWx0ZXJHcm91cC50aXRsZX19Iiwgc2VsZWN0KTsNCiAgICAgICAgICAgICAgICAgICAgY29udGVudC5kZXNjcmlwdGlvbigie3suZmlsdGVyLmZpbHRlckdyb3VwLmRlc2NyaXB0aW9ufX0iKTsNCiAgICAgICAgICAgICAgICAgICAgLy8gR3Jvw58tIEtsZWluc2NocmVpYnVuZyBiZWFjaHRlbg0KICAgICAgICAgICAgICAgICAgICB2YXIgZGJLZXkgPSAiY2FzZVNlbnNpdGl2ZSI7DQogICAgICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goZGJLZXkpOw0KICAgICAgICAgICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YVtkYktleV07DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5maWx0ZXIuY2FzZVNlbnNpdGl2ZS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgICAgICAgICB2YXIgZGJLZXkgPSAiaW5jbHVkZSI7DQogICAgICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LmZpbHRlci5pbmNsdWRlLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LmZpbHRlci5pbmNsdWRlLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuZGVzY3JpcHRpb24oInt7LmZpbHRlci5pbmNsdWRlLmRlc2NyaXB0aW9ufX0iKTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGRiS2V5ID0gImV4Y2x1ZGUiOw0KICAgICAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5maWx0ZXIuZXhjbHVkZS5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5maWx0ZXIuZXhjbHVkZS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgICAgICAgICBjb250ZW50LmRlc2NyaXB0aW9uKCJ7ey5maWx0ZXIuZXhjbHVkZS5kZXNjcmlwdGlvbn19Iik7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgLy8gSW50ZXJha3Rpb24NCiAgICAgICAgICAgIGNvbnRlbnQuY3JlYXRlSW50ZXJhY3Rpb24oKTsNCiAgICAgICAgICAgIC8vIEzDtnNjaGVuDQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAiZGVsZXRlIiwgInt7LmJ1dHRvbi5kZWxldGV9fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoImZpbHRlciIsICInICsgaWQgKyAnIiwgdHJ1ZSwgMCknKTsNCiAgICAgICAgICAgIGlucHV0LmNsYXNzTmFtZSA9ICJkZWxldGUiOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICAvLyBBYmJyZWNoZW4NCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJjYW5jZWwiLCAie3suYnV0dG9uLmNhbmNlbH19Iik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogc2hvd0VsZW1lbnQoInBvcHVwIiwgZmFsc2UpOycpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICAvLyBTcGVpY2hlcm4NCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJzYXZlIiwgInt7LmJ1dHRvbi5zYXZlfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBzYXZlUG9wdXBEYXRhKCJmaWx0ZXIiLCAiJyArIGlkICsgJyIsIGZhbHNlLCAwKScpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSAieG1sdHYiOg0KICAgICAgICAgICAgY29udGVudC5jcmVhdGVIZWFkbGluZShkYXRhVHlwZSk7DQogICAgICAgICAgICAvLyBOYW1lDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAibmFtZSI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3sueG1sdHYubmFtZS5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sueG1sdHYubmFtZS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgLy8gQmVzY2hyZWlidW5nDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAiZGVzY3JpcHRpb24iOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnhtbHR2LmRlc2NyaXB0aW9uLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey54bWx0di5kZXNjcmlwdGlvbi50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgLy8gVVJMDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAiZmlsZS5zb3VyY2UiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnhtbHR2LmZpbGVYTUxUVi5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sueG1sdHYuZmlsZVhNTFRWLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBJbnRlcmFrdGlvbg0KICAgICAgICAgICAgY29udGVudC5jcmVhdGVJbnRlcmFjdGlvbigpOw0KICAgICAgICAgICAgLy8gTMO2c2NoZW4NCiAgICAgICAgICAgIGlmIChkYXRhWyJpZC5wcm92aWRlciJdICE9ICItIikgew0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJkZWxldGUiLCAie3suYnV0dG9uLmRlbGV0ZX19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoInhtbHR2IiwgIicgKyBpZCArICciLCB0cnVlLCAwKScpOw0KICAgICAgICAgICAgICAgIGlucHV0LmNsYXNzTmFtZSA9ICJkZWxldGUiOw0KICAgICAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgLy8gQWJicmVjaGVuDQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAiY2FuY2VsIiwgInt7LmJ1dHRvbi5jYW5jZWx9fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IHNob3dFbGVtZW50KCJwb3B1cCIsIGZhbHNlKTsnKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgLy8gQWt0dWFsaXNpZXJlbg0KICAgICAgICAgICAgaWYgKGRhdGFbImlkLnByb3ZpZGVyIl0gIT0gIi0iKSB7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgInVwZGF0ZSIsICJ7ey5idXR0b24udXBkYXRlfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogc2F2ZVBvcHVwRGF0YSgieG1sdHYiLCAiJyArIGlkICsgJyIsIGZhbHNlLCAxKScpOw0KICAgICAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgLy8gU3BlaWNoZXJuDQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAic2F2ZSIsICJ7ey5idXR0b24uc2F2ZX19Iik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogc2F2ZVBvcHVwRGF0YSgieG1sdHYiLCAiJyArIGlkICsgJyIsIGZhbHNlLCAwKScpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSAidXNlcnMiOg0KICAgICAgICAgICAgY29udGVudC5jcmVhdGVIZWFkbGluZSgie3subWFpbk1lbnUuaXRlbS51c2Vyc319Iik7DQogICAgICAgICAgICAvLyBCZW51dHplcm5hbWUgDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAidXNlcm5hbWUiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnVzZXJzLnVzZXJuYW1lLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey51c2Vycy51c2VybmFtZS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgLy8gTmV1ZXMgUGFzc3dvcnQgDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAicGFzc3dvcmQiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgicGFzc3dvcmQiLCBkYktleSwgIiIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey51c2Vycy5wYXNzd29yZC5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sudXNlcnMucGFzc3dvcmQudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIEJlc3TDpHRpZ3VuZyANCiAgICAgICAgICAgIHZhciBkYktleSA9ICJjb25maXJtIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInBhc3N3b3JkIiwgZGJLZXksICIiKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3sudXNlcnMuY29uZmlybS5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sudXNlcnMuY29uZmlybS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgLy8gQmVyZWNodGlndW5nIFdFQg0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gImF1dGhlbnRpY2F0aW9uLndlYiI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KGRiS2V5KTsNCiAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhW2RiS2V5XTsNCiAgICAgICAgICAgIGlmIChkYXRhWyJkZWZhdWx0VXNlciJdID09IHRydWUpIHsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAiamF2YXNjcmlwdDogcmV0dXJuIGZhbHNlIik7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sudXNlcnMud2ViLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBCZXJlY2h0aWd1bmcgUE1TDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAiYXV0aGVudGljYXRpb24ucG1zIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goZGJLZXkpOw0KICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGFbZGJLZXldOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnVzZXJzLnBtcy50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgLy8gQmVyZWNodGlndW5nIE0zVQ0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gImF1dGhlbnRpY2F0aW9uLm0zdSI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KGRiS2V5KTsNCiAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhW2RiS2V5XTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey51c2Vycy5tM3UudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIEJlcmVjaHRpZ3VuZyBYTUwNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJhdXRoZW50aWNhdGlvbi54bWwiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChkYktleSk7DQogICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YVtkYktleV07DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sudXNlcnMueG1sLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBCZXJlY2h0aWd1bmcgQVBJDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAiYXV0aGVudGljYXRpb24uYXBpIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goZGJLZXkpOw0KICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGFbZGJLZXldOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnVzZXJzLmFwaS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgLy8gSW50ZXJha3Rpb24NCiAgICAgICAgICAgIGNvbnRlbnQuY3JlYXRlSW50ZXJhY3Rpb24oKTsNCiAgICAgICAgICAgIC8vIEzDtnNjaGVuDQogICAgICAgICAgICBpZiAoZGF0YVsiZGVmYXVsdFVzZXIiXSAhPSB0cnVlICYmIGlkICE9ICItIikgew0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJkZWxldGUiLCAie3suYnV0dG9uLmRlbGV0ZX19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuY2xhc3NOYW1lID0gImRlbGV0ZSI7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoIicgKyBkYXRhVHlwZSArICciLCAiJyArIGlkICsgJyIsIHRydWUsIDApJyk7DQogICAgICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICAvLyBBYmJyZWNoZW4NCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJjYW5jZWwiLCAie3suYnV0dG9uLmNhbmNlbH19Iik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogc2hvd0VsZW1lbnQoInBvcHVwIiwgZmFsc2UpOycpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICAvLyBTcGVpY2hlcm4NCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJzYXZlIiwgInt7LmJ1dHRvbi5zYXZlfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBzYXZlUG9wdXBEYXRhKCInICsgZGF0YVR5cGUgKyAnIiwgIicgKyBpZCArICciLCAiZmFsc2UiKTsnKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGNhc2UgIm1hcHBpbmciOg0KICAgICAgICAgICAgY29udGVudC5jcmVhdGVIZWFkbGluZSgie3subWFpbk1lbnUuaXRlbS5tYXBwaW5nfX0iKTsNCiAgICAgICAgICAgIC8vIEFrdGl2IA0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gIngtYWN0aXZlIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goZGJLZXkpOw0KICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGFbZGJLZXldOw0KICAgICAgICAgICAgaW5wdXQuaWQgPSAiYWN0aXZlIjsNCiAgICAgICAgICAgIC8vaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpDQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRvZ2dsZUNoYW5uZWxTdGF0dXMoJyIgKyBpZCArICInLCB0aGlzKSIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7Lm1hcHBpbmcuYWN0aXZlLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBLYW5hbG5hbWUgDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAieC1uYW1lIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgaWYgKEJVTEtfRURJVCA9PSB0cnVlKSB7DQogICAgICAgICAgICAgICAgaW5wdXQuc3R5bGUuYm9yZGVyID0gInNvbGlkIDFweCByZWQiOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicmVhZG9ubHkiLCAidHJ1ZSIpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7Lm1hcHBpbmcuY2hhbm5lbE5hbWUudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIGNvbnRlbnQuZGVzY3JpcHRpb24oZGF0YVsibmFtZSJdKTsNCiAgICAgICAgICAgIC8vIEJlc2NocmVpYnVuZyANCiAgICAgICAgICAgIHZhciBkYktleSA9ICJ4LWRlc2NyaXB0aW9uIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5tYXBwaW5nLmRlc2NyaXB0aW9uLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5tYXBwaW5nLmRlc2NyaXB0aW9uLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBBa3R1YWxpc2llcnVuZyBkZXMgS2FuYWxuYW1lbnMNCiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCJfdXVpZC5rZXkiKSkgew0KICAgICAgICAgICAgICAgIGlmIChkYXRhWyJfdXVpZC5rZXkiXSAhPSAiIikgew0KICAgICAgICAgICAgICAgICAgICB2YXIgZGJLZXkgPSAieC11cGRhdGUtY2hhbm5lbC1uYW1lIjsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChkYktleSk7DQogICAgICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGFbZGJLZXldOw0KICAgICAgICAgICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3subWFwcGluZy51cGRhdGVDaGFubmVsTmFtZS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIC8vIExvZ28gVVJMIChLYW5hbCkgDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAidHZnLWxvZ28iOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoImlkIiwgImNoYW5uZWwtaWNvbiIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7Lm1hcHBpbmcuY2hhbm5lbExvZ28udGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIEFrdHVhbGlzaWVydW5nIGRlcyBLYW5hbGxvZ29zDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAieC11cGRhdGUtY2hhbm5lbC1pY29uIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goZGJLZXkpOw0KICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGFbZGJLZXldOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJpZCIsICJ1cGRhdGUtaWNvbiIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJzsgY2hhbmdlQ2hhbm5lbExvZ28oJyIgKyBpZCArICInKTsiKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5tYXBwaW5nLnVwZGF0ZUNoYW5uZWxMb2dvLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBFcndlaXRlcm4gZGVyIEVQRyBLYXRlZ29yaWUNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJ4LWNhdGVnb3J5IjsNCiAgICAgICAgICAgIHZhciB0ZXh0ID0gWyItIiwgIktpZHMgKEVtYnkgb25seSkiLCAiTmV3cyIsICJNb3ZpZSIsICJTZXJpZXMiLCAiU3BvcnRzIl07DQogICAgICAgICAgICB2YXIgdmFsdWVzID0gWyIiLCAiS2lkcyIsICJOZXdzIiwgIk1vdmllIiwgIlNlcmllcyIsICJTcG9ydHMiXTsNCiAgICAgICAgICAgIHZhciBzZWxlY3QgPSBjb250ZW50LmNyZWF0ZVNlbGVjdCh0ZXh0LCB2YWx1ZXMsIGRhdGFbZGJLZXldLCBkYktleSk7DQogICAgICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7Lm1hcHBpbmcuZXBnQ2F0ZWdvcnkudGl0bGV9fSIsIHNlbGVjdCk7DQogICAgICAgICAgICAvLyBNM1UgR3J1cHBlbnRpdGVsDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAieC1ncm91cC10aXRsZSI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5tYXBwaW5nLm0zdUdyb3VwVGl0bGUudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIGlmIChkYXRhWyJncm91cC10aXRsZSJdICE9IHVuZGVmaW5lZCkgew0KICAgICAgICAgICAgICAgIGNvbnRlbnQuZGVzY3JpcHRpb24oZGF0YVsiZ3JvdXAtdGl0bGUiXSk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICAvLyBYTUxUViBEYXRlaQ0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gIngteG1sdHYtZmlsZSI7DQogICAgICAgICAgICB2YXIgeG1sRmlsZSA9IGRhdGFbZGJLZXldOw0KICAgICAgICAgICAgdmFyIHhtbHR2ID0gbmV3IFhNTFRWRmlsZSgpOw0KICAgICAgICAgICAgdmFyIHNlbGVjdCA9IHhtbHR2LmdldEZpbGVzKGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIHNlbGVjdC5zZXRBdHRyaWJ1dGUoIm5hbWUiLCBkYktleSk7DQogICAgICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJpZCIsICJwb3B1cC14bWx0diIpOw0KICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCc7IHNldFhtbHR2Q2hhbm5lbCgnIiArIGlkICsgIicsdGhpcyk7Iik7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3subWFwcGluZy54bWx0dkZpbGUudGl0bGV9fSIsIHNlbGVjdCk7DQogICAgICAgICAgICB2YXIgZmlsZSA9IGRhdGFbZGJLZXldOw0KICAgICAgICAgICAgLy8gWE1MVFYgTWFwcGluZw0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gIngtbWFwcGluZyI7DQogICAgICAgICAgICB2YXIgeG1sdHYgPSBuZXcgWE1MVFZGaWxlKCk7DQogICAgICAgICAgICB2YXIgc2VsZWN0ID0geG1sdHYuZ2V0UHJvZ3JhbXMoZmlsZSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgibmFtZSIsIGRiS2V5KTsNCiAgICAgICAgICAgIHNlbGVjdC5zZXRBdHRyaWJ1dGUoImlkIiwgInBvcHVwLW1hcHBpbmciKTsNCiAgICAgICAgICAgIHNlbGVjdC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnOyBjaGVja1htbHR2Q2hhbm5lbCgnIiArIGlkICsgIicsdGhpcywnIiArIHhtbEZpbGUgKyAiJyk7Iik7DQogICAgICAgICAgICBzb3J0U2VsZWN0KHNlbGVjdCk7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3subWFwcGluZy54bWx0dkNoYW5uZWwudGl0bGV9fSIsIHNlbGVjdCk7DQogICAgICAgICAgICAvLyBUaW1lc2hpZnQNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJ4LXRpbWVzaGlmdCI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3subWFwcGluZy50aW1lc2hpZnQucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJpZCIsICJ0aW1lc2hpZnQiKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5tYXBwaW5nLnRpbWVzaGlmdC50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgLy8gSW50ZXJha3Rpb24NCiAgICAgICAgICAgIGNvbnRlbnQuY3JlYXRlSW50ZXJhY3Rpb24oKTsNCiAgICAgICAgICAgIC8vIExvZ28gaG9jaGxhZGVuDQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAiY2FuY2VsIiwgInt7LmJ1dHRvbi51cGxvYWRMb2dvfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiB1cGxvYWRMb2dvKCk7Jyk7DQogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIC8vIEFiYnJlY2hlbg0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImNhbmNlbCIsICJ7ey5idXR0b24uY2FuY2VsfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBzaG93RWxlbWVudCgicG9wdXAiLCBmYWxzZSk7Jyk7DQogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIC8vIEZlcnRpZw0KICAgICAgICAgICAgdmFyIGlkcyA9IG5ldyBBcnJheSgpOw0KICAgICAgICAgICAgaWRzID0gZ2V0QWxsU2VsZWN0ZWRDaGFubmVscygpOw0KICAgICAgICAgICAgaWYgKGlkcy5sZW5ndGggPT0gMCkgew0KICAgICAgICAgICAgICAgIGlkcy5wdXNoKGlkKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJzYXZlIiwgInt7LmJ1dHRvbi5kb25lfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBkb25lUG9wdXBEYXRhKCInICsgZGF0YVR5cGUgKyAnIiwgIicgKyBpZHMgKyAnIiwgImZhbHNlIik7Jyk7DQogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBkZWZhdWx0Og0KICAgICAgICAgICAgYnJlYWs7DQogICAgfQ0KICAgIHNob3dQb3BVcEVsZW1lbnQoJ3BvcHVwLWN1c3RvbScpOw0KfQ0KdmFyIFhNTFRWRmlsZSA9IC8qKiBAY2xhc3MgKi8gKGZ1bmN0aW9uICgpIHsNCiAgICBmdW5jdGlvbiBYTUxUVkZpbGUoKSB7DQogICAgfQ0KICAgIFhNTFRWRmlsZS5wcm90b3R5cGUuZ2V0RmlsZXMgPSBmdW5jdGlvbiAoc2V0KSB7DQogICAgICAgIHZhciBmaWxlSURzID0gZ2V0T2JqS2V5cyhTRVJWRVJbInhlcGciXVsieG1sdHZNYXAiXSk7DQogICAgICAgIHZhciB2YWx1ZXMgPSBuZXcgQXJyYXkoIi0iKTsNCiAgICAgICAgdmFyIHRleHQgPSBuZXcgQXJyYXkoIi0iKTsNCiAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBmaWxlSURzLmxlbmd0aDsgaSsrKSB7DQogICAgICAgICAgICBpZiAoZmlsZUlEc1tpXSAhPSAieFRlVmUgRHVtbXkiKSB7DQogICAgICAgICAgICAgICAgdmFsdWVzLnB1c2goZ2V0VmFsdWVGcm9tUHJvdmlkZXJGaWxlKGZpbGVJRHNbaV0sICJ4bWx0diIsICJmaWxlLnh0ZXZlIikpOw0KICAgICAgICAgICAgICAgIHRleHQucHVzaChnZXRWYWx1ZUZyb21Qcm92aWRlckZpbGUoZmlsZUlEc1tpXSwgInhtbHR2IiwgIm5hbWUiKSk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICB2YWx1ZXMucHVzaChmaWxlSURzW2ldKTsNCiAgICAgICAgICAgICAgICB0ZXh0LnB1c2goZmlsZUlEc1tpXSk7DQogICAgICAgICAgICB9DQogICAgICAgIH0NCiAgICAgICAgdmFyIHNlbGVjdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlNFTEVDVCIpOw0KICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRleHQubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgICAgIHZhciBvcHRpb24gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJPUFRJT04iKTsNCiAgICAgICAgICAgIG9wdGlvbi5zZXRBdHRyaWJ1dGUoInZhbHVlIiwgdmFsdWVzW2ldKTsNCiAgICAgICAgICAgIG9wdGlvbi5pbm5lclRleHQgPSB0ZXh0W2ldOw0KICAgICAgICAgICAgc2VsZWN0LmFwcGVuZENoaWxkKG9wdGlvbik7DQogICAgICAgIH0NCiAgICAgICAgaWYgKHNldCAhPSAiIikgew0KICAgICAgICAgICAgc2VsZWN0LnZhbHVlID0gc2V0Ow0KICAgICAgICB9DQogICAgICAgIHJldHVybiBzZWxlY3Q7DQogICAgfTsNCiAgICBYTUxUVkZpbGUucHJvdG90eXBlLmdldFByb2dyYW1zID0gZnVuY3Rpb24gKGZpbGUsIHNldCkgew0KICAgICAgICAvL3ZhciBmaWxlSURzOnN0cmluZ1tdID0gZ2V0T2JqS2V5cyhTRVJWRVJbInhlcGciXVsieG1sdHZNYXAiXSkNCiAgICAgICAgdmFyIHZhbHVlcyA9IGdldE9iaktleXMoU0VSVkVSWyJ4ZXBnIl1bInhtbHR2TWFwIl1bZmlsZV0pOw0KICAgICAgICB2YXIgdGV4dCA9IG5ldyBBcnJheSgpOw0KICAgICAgICB2YXIgZGlzcGxheU5hbWU7DQogICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdmFsdWVzLmxlbmd0aDsgaSsrKSB7DQogICAgICAgICAgICBpZiAoU0VSVkVSWyJ4ZXBnIl1bInhtbHR2TWFwIl1bZmlsZV1bdmFsdWVzW2ldXS5oYXNPd25Qcm9wZXJ0eSgnZGlzcGxheS1uYW1lJykgPT0gdHJ1ZSkgew0KICAgICAgICAgICAgICAgIGRpc3BsYXlOYW1lID0gU0VSVkVSWyJ4ZXBnIl1bInhtbHR2TWFwIl1bZmlsZV1bdmFsdWVzW2ldXVsiZGlzcGxheS1uYW1lIl07DQogICAgICAgICAgICB9DQogICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICBkaXNwbGF5TmFtZSA9ICItIjsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIHRleHRbaV0gPSBkaXNwbGF5TmFtZSArICIgKCIgKyB2YWx1ZXNbaV0gKyAiKSI7DQogICAgICAgIH0NCiAgICAgICAgdGV4dC51bnNoaWZ0KCItIik7DQogICAgICAgIHZhbHVlcy51bnNoaWZ0KCItIik7DQogICAgICAgIHZhciBzZWxlY3QgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJTRUxFQ1QiKTsNCiAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0ZXh0Lmxlbmd0aDsgaSsrKSB7DQogICAgICAgICAgICB2YXIgb3B0aW9uID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiT1BUSU9OIik7DQogICAgICAgICAgICBvcHRpb24uc2V0QXR0cmlidXRlKCJ2YWx1ZSIsIHZhbHVlc1tpXSk7DQogICAgICAgICAgICBvcHRpb24uaW5uZXJUZXh0ID0gdGV4dFtpXTsNCiAgICAgICAgICAgIHNlbGVjdC5hcHBlbmRDaGlsZChvcHRpb24pOw0KICAgICAgICB9DQogICAgICAgIGlmIChzZXQgIT0gIiIpIHsNCiAgICAgICAgICAgIHNlbGVjdC52YWx1ZSA9IHNldDsNCiAgICAgICAgfQ0KICAgICAgICBpZiAoc2VsZWN0LnZhbHVlICE9IHNldCkgew0KICAgICAgICAgICAgc2VsZWN0LnZhbHVlID0gIi0iOw0KICAgICAgICB9DQogICAgICAgIHJldHVybiBzZWxlY3Q7DQogICAgfTsNCiAgICByZXR1cm4gWE1MVFZGaWxlOw0KfSgpKTsNCmZ1bmN0aW9uIGdldFZhbHVlRnJvbVByb3ZpZGVyRmlsZShmaWxlLCBmaWxlVHlwZSwga2V5KSB7DQogICAgaWYgKGZpbGUgPT0gInhUZVZlIER1bW15Iikgew0KICAgICAgICByZXR1cm4gZmlsZTsNCiAgICB9DQogICAgdmFyIGZpbGVJRDsNCiAgICB2YXIgaW5kaWNhdG9yID0gZmlsZS5jaGFyQXQoMCk7DQogICAgc3dpdGNoIChpbmRpY2F0b3IpIHsNCiAgICAgICAgY2FzZSAiTSI6DQogICAgICAgICAgICBmaWxlVHlwZSA9ICJtM3UiOw0KICAgICAgICAgICAgZmlsZUlEID0gZmlsZTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJIIjoNCiAgICAgICAgICAgIGZpbGVUeXBlID0gImhkaHIiOw0KICAgICAgICAgICAgZmlsZUlEID0gZmlsZTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJYIjoNCiAgICAgICAgICAgIGZpbGVUeXBlID0gInhtbHR2IjsNCiAgICAgICAgICAgIGZpbGVJRCA9IGZpbGUuc3Vic3RyaW5nKDAsIGZpbGUubGFzdEluZGV4T2YoJy4nKSk7DQogICAgICAgICAgICBicmVhazsNCiAgICB9DQogICAgaWYgKFNFUlZFUlsic2V0dGluZ3MiXVsiZmlsZXMiXVtmaWxlVHlwZV0uaGFzT3duUHJvcGVydHkoZmlsZUlEKSA9PSB0cnVlKSB7DQogICAgICAgIHZhciBkYXRhID0gU0VSVkVSWyJzZXR0aW5ncyJdWyJmaWxlcyJdW2ZpbGVUeXBlXVtmaWxlSURdOw0KICAgICAgICByZXR1cm4gZGF0YVtrZXldOw0KICAgIH0NCiAgICByZXR1cm47DQp9DQpmdW5jdGlvbiBzZXRYbWx0dkNoYW5uZWwoaWQsIGVsZW1lbnQpIHsNCiAgICB2YXIgeG1sdHYgPSBuZXcgWE1MVFZGaWxlKCk7DQogICAgdmFyIHhtbEZpbGUgPSBlbGVtZW50LnZhbHVlOw0KICAgIHZhciB0dmdJZCA9IFNFUlZFUlsieGVwZyJdWyJlcGdNYXBwaW5nIl1baWRdWyJ0dmctaWQiXTsNCiAgICB2YXIgdGQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicG9wdXAtbWFwcGluZyIpLnBhcmVudEVsZW1lbnQ7DQogICAgdGQuaW5uZXJIVE1MID0gIiI7DQogICAgdmFyIHNlbGVjdCA9IHhtbHR2LmdldFByb2dyYW1zKGVsZW1lbnQudmFsdWUsIHR2Z0lkKTsNCiAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJuYW1lIiwgIngtbWFwcGluZyIpOw0KICAgIHNlbGVjdC5zZXRBdHRyaWJ1dGUoImlkIiwgInBvcHVwLW1hcHBpbmciKTsNCiAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJzsgY2hlY2tYbWx0dkNoYW5uZWwoJyIgKyBpZCArICInLHRoaXMsJyIgKyB4bWxGaWxlICsgIicpOyIpOw0KICAgIHNlbGVjdC5jbGFzc05hbWUgPSAiY2hhbmdlZCI7DQogICAgc29ydFNlbGVjdChzZWxlY3QpOw0KICAgIHRkLmFwcGVuZENoaWxkKHNlbGVjdCk7DQogICAgY2hlY2tYbWx0dkNoYW5uZWwoaWQsIHNlbGVjdCwgeG1sRmlsZSk7DQp9DQpmdW5jdGlvbiBjaGVja1htbHR2Q2hhbm5lbChpZCwgZWxlbWVudCwgeG1sRmlsZSkgew0KICAgIHZhciB2YWx1ZSA9IGVsZW1lbnQudmFsdWU7DQogICAgdmFyIGJvb2w7DQogICAgdmFyIGNoZWNrYm94ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2FjdGl2ZScpOw0KICAgIHZhciBjaGFubmVsID0gU0VSVkVSWyJ4ZXBnIl1bImVwZ01hcHBpbmciXVtpZF07DQogICAgdmFyIHVwZGF0ZUxvZ287DQogICAgaWYgKHZhbHVlID09ICItIikgew0KICAgICAgICBib29sID0gZmFsc2U7DQogICAgfQ0KICAgIGVsc2Ugew0KICAgICAgICBib29sID0gdHJ1ZTsNCiAgICB9DQogICAgY2hlY2tib3guY2hlY2tlZCA9IGJvb2w7DQogICAgY2hlY2tib3guY2xhc3NOYW1lID0gImNoYW5nZWQiOw0KICAgIGNvbnNvbGUubG9nKHhtbEZpbGUpOw0KICAgIC8vIEthbmFsbG9nbyBha3R1YWxpc2llcmVuDQogICAgLyoNCiAgICB1cGRhdGVMb2dvID0gKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ1cGRhdGUtaWNvbiIpIGFzIEhUTUxJbnB1dEVsZW1lbnQpLmNoZWNrZWQNCiAgICBjb25zb2xlLmxvZyh1cGRhdGVMb2dvKTsNCiAgICAqLw0KICAgIGlmICh4bWxGaWxlICE9ICJ4VGVWZSBEdW1teSIgJiYgYm9vbCA9PSB0cnVlKSB7DQogICAgICAgIC8vKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ1cGRhdGUtaWNvbiIpIGFzIEhUTUxJbnB1dEVsZW1lbnQpLmNoZWNrZWQgPSB0cnVlOw0KICAgICAgICAvLyhkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidXBkYXRlLWljb24iKSBhcyBIVE1MSW5wdXRFbGVtZW50KS5jbGFzc05hbWUgPSAiY2hhbmdlZCI7DQogICAgICAgIGNvbnNvbGUubG9nKCJJRCIsIGlkKTsNCiAgICAgICAgY2hhbmdlQ2hhbm5lbExvZ28oaWQpOw0KICAgICAgICByZXR1cm47DQogICAgfQ0KICAgIGlmICh4bWxGaWxlID09ICJ4VGVWZSBEdW1teSIpIHsNCiAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInVwZGF0ZS1pY29uIikuY2hlY2tlZCA9IGZhbHNlOw0KICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidXBkYXRlLWljb24iKS5jbGFzc05hbWUgPSAiY2hhbmdlZCI7DQogICAgfQ0KICAgIHJldHVybjsNCn0NCmZ1bmN0aW9uIGNoYW5nZUNoYW5uZWxMb2dvKGlkKSB7DQogICAgdmFyIHVwZGF0ZUxvZ287DQogICAgdmFyIGNoYW5uZWwgPSBTRVJWRVJbInhlcGciXVsiZXBnTWFwcGluZyJdW2lkXTsNCiAgICB2YXIgZiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJwb3B1cC14bWx0diIpOw0KICAgIHZhciB4bWx0dkZpbGUgPSBmLm9wdGlvbnNbZi5zZWxlY3RlZEluZGV4XS52YWx1ZTsNCiAgICB2YXIgbSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJwb3B1cC1tYXBwaW5nIik7DQogICAgdmFyIHhNYXBwaW5nID0gbS5vcHRpb25zW20uc2VsZWN0ZWRJbmRleF0udmFsdWU7DQogICAgdmFyIHhtbHR2TG9nbyA9IFNFUlZFUlsieGVwZyJdWyJ4bWx0dk1hcCJdW3htbHR2RmlsZV1beE1hcHBpbmddWyJpY29uIl07DQogICAgdXBkYXRlTG9nbyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ1cGRhdGUtaWNvbiIpLmNoZWNrZWQ7DQogICAgaWYgKHVwZGF0ZUxvZ28gPT0gdHJ1ZSAmJiB4bWx0dkZpbGUgIT0gInhUZVZlIER1bW15Iikgew0KICAgICAgICBpZiAoU0VSVkVSWyJ4ZXBnIl1bInhtbHR2TWFwIl1beG1sdHZGaWxlXS5oYXNPd25Qcm9wZXJ0eSh4TWFwcGluZykpIHsNCiAgICAgICAgICAgIHZhciBsb2dvID0geG1sdHZMb2dvOw0KICAgICAgICB9DQogICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgbG9nbyA9IGNoYW5uZWxbInR2Zy1sb2dvIl07DQogICAgICAgIH0NCiAgICAgICAgdmFyIGxvZ29JbnB1dCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjaGFubmVsLWljb24iKTsNCiAgICAgICAgbG9nb0lucHV0LnZhbHVlID0gbG9nbzsNCiAgICAgICAgaWYgKEJVTEtfRURJVCA9PSBmYWxzZSkgew0KICAgICAgICAgICAgbG9nb0lucHV0LmNsYXNzTmFtZSA9ICJjaGFuZ2VkIjsNCiAgICAgICAgfQ0KICAgIH0NCn0NCmZ1bmN0aW9uIHNhdmVQb3B1cERhdGEoZGF0YVR5cGUsIGlkLCByZW1vdmUsIG9wdGlvbikgew0KICAgIGlmIChkYXRhVHlwZSA9PSAibWFwcGluZyIpIHsNCiAgICAgICAgdmFyIGRhdGEgPSBuZXcgT2JqZWN0KCk7DQogICAgICAgIGNvbnNvbGUubG9nKCJTYXZlIG1hcHBpbmcgZGF0YSIpOw0KICAgICAgICBjbWQgPSAic2F2ZUVwZ01hcHBpbmciOw0KICAgICAgICBkYXRhWyJlcGdNYXBwaW5nIl0gPSBTRVJWRVJbInhlcGciXVsiZXBnTWFwcGluZyJdOw0KICAgICAgICBjb25zb2xlLmxvZygiU0VORCBUTyBTRVJWRVIiKTsNCiAgICAgICAgdmFyIHNlcnZlciA9IG5ldyBTZXJ2ZXIoY21kKTsNCiAgICAgICAgc2VydmVyLnJlcXVlc3QoZGF0YSk7DQogICAgICAgIGRlbGV0ZSBVTkRPWyJlcGdNYXBwaW5nIl07DQogICAgICAgIHJldHVybjsNCiAgICB9DQogICAgY29uc29sZS5sb2coIlNhdmUgcG9wdXAgZGF0YSIpOw0KICAgIHZhciBkaXYgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicG9wdXAtY3VzdG9tIik7DQogICAgdmFyIGlucHV0cyA9IGRpdi5nZXRFbGVtZW50c0J5VGFnTmFtZSgiVEFCTEUiKVswXS5nZXRFbGVtZW50c0J5VGFnTmFtZSgiSU5QVVQiKTsNCiAgICB2YXIgc2VsZWN0cyA9IGRpdi5nZXRFbGVtZW50c0J5VGFnTmFtZSgiVEFCTEUiKVswXS5nZXRFbGVtZW50c0J5VGFnTmFtZSgiU0VMRUNUIik7DQogICAgdmFyIGlucHV0ID0gbmV3IE9iamVjdCgpOw0KICAgIHZhciBjb25maXJtTXNnOw0KICAgIGZvciAodmFyIGkgPSAwOyBpIDwgc2VsZWN0cy5sZW5ndGg7IGkrKykgew0KICAgICAgICB2YXIgbmFtZTsNCiAgICAgICAgbmFtZSA9IHNlbGVjdHNbaV0ubmFtZTsNCiAgICAgICAgdmFyIHZhbHVlID0gc2VsZWN0c1tpXS52YWx1ZTsNCiAgICAgICAgc3dpdGNoIChuYW1lKSB7DQogICAgICAgICAgICBjYXNlICJ0dW5lciI6DQogICAgICAgICAgICAgICAgaW5wdXRbbmFtZV0gPSBwYXJzZUludCh2YWx1ZSk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBkZWZhdWx0Og0KICAgICAgICAgICAgICAgIGlucHV0W25hbWVdID0gdmFsdWU7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIH0NCiAgICB9DQogICAgZm9yICh2YXIgaSA9IDA7IGkgPCBpbnB1dHMubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgc3dpdGNoIChpbnB1dHNbaV0udHlwZSkgew0KICAgICAgICAgICAgY2FzZSAiY2hlY2tib3giOg0KICAgICAgICAgICAgICAgIG5hbWUgPSBpbnB1dHNbaV0ubmFtZTsNCiAgICAgICAgICAgICAgICBpbnB1dFtuYW1lXSA9IGlucHV0c1tpXS5jaGVja2VkOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAidGV4dCI6DQogICAgICAgICAgICBjYXNlICJoaWRkZW4iOg0KICAgICAgICAgICAgY2FzZSAicGFzc3dvcmQiOg0KICAgICAgICAgICAgICAgIG5hbWUgPSBpbnB1dHNbaV0ubmFtZTsNCiAgICAgICAgICAgICAgICBzd2l0Y2ggKG5hbWUpIHsNCiAgICAgICAgICAgICAgICAgICAgY2FzZSAidHVuZXIiOg0KICAgICAgICAgICAgICAgICAgICAgICAgaW5wdXRbbmFtZV0gPSBwYXJzZUludChpbnB1dHNbaV0udmFsdWUpOw0KICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICAgICAgICAgICAgICBpbnB1dFtuYW1lXSA9IGlucHV0c1tpXS52YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgfQ0KICAgIH0NCiAgICB2YXIgZGF0YSA9IG5ldyBPYmplY3QoKTsNCiAgICB2YXIgY21kOw0KICAgIGlmIChyZW1vdmUgPT0gdHJ1ZSkgew0KICAgICAgICBpbnB1dFsiZGVsZXRlIl0gPSB0cnVlOw0KICAgIH0NCiAgICBzd2l0Y2ggKGRhdGFUeXBlKSB7DQogICAgICAgIGNhc2UgInVzZXJzIjoNCiAgICAgICAgICAgIGNvbmZpcm1Nc2cgPSAiRGVsZXRlIHRoaXMgdXNlcj8iOw0KICAgICAgICAgICAgaWYgKGlkID09ICItIikgew0KICAgICAgICAgICAgICAgIGNtZCA9ICJzYXZlTmV3VXNlciI7DQogICAgICAgICAgICAgICAgZGF0YVsidXNlckRhdGEiXSA9IGlucHV0Ow0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgZWxzZSB7DQogICAgICAgICAgICAgICAgY21kID0gInNhdmVVc2VyRGF0YSI7DQogICAgICAgICAgICAgICAgdmFyIGQgPSBuZXcgT2JqZWN0KCk7DQogICAgICAgICAgICAgICAgZFtpZF0gPSBpbnB1dDsNCiAgICAgICAgICAgICAgICBkYXRhWyJ1c2VyRGF0YSJdID0gZDsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJtM3UiOg0KICAgICAgICAgICAgY29uZmlybU1zZyA9ICJEZWxldGUgdGhpcyBwbGF5bGlzdD8iOw0KICAgICAgICAgICAgc3dpdGNoIChvcHRpb24pIHsNCiAgICAgICAgICAgICAgICAvLyBQb3B1cDogU2F2ZQ0KICAgICAgICAgICAgICAgIGNhc2UgMDoNCiAgICAgICAgICAgICAgICAgICAgY21kID0gInNhdmVGaWxlc00zVSI7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIC8vIFBvcHVwOiBVcGRhdGUNCiAgICAgICAgICAgICAgICBjYXNlIDE6DQogICAgICAgICAgICAgICAgICAgIGNtZCA9ICJ1cGRhdGVGaWxlTTNVIjsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBkYXRhWyJmaWxlcyJdID0gbmV3IE9iamVjdDsNCiAgICAgICAgICAgIGRhdGFbImZpbGVzIl1bZGF0YVR5cGVdID0gbmV3IE9iamVjdDsNCiAgICAgICAgICAgIGRhdGFbImZpbGVzIl1bZGF0YVR5cGVdW2lkXSA9IGlucHV0Ow0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGNhc2UgImhkaHIiOg0KICAgICAgICAgICAgY29uZmlybU1zZyA9ICJEZWxldGUgdGhpcyBIREhvbWVSdW4gdHVuZXI/IjsNCiAgICAgICAgICAgIHN3aXRjaCAob3B0aW9uKSB7DQogICAgICAgICAgICAgICAgLy8gUG9wdXA6IFNhdmUNCiAgICAgICAgICAgICAgICBjYXNlIDA6DQogICAgICAgICAgICAgICAgICAgIGNtZCA9ICJzYXZlRmlsZXNIREhSIjsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgLy8gUG9wdXA6IFVwZGF0ZQ0KICAgICAgICAgICAgICAgIGNhc2UgMToNCiAgICAgICAgICAgICAgICAgICAgY21kID0gInVwZGF0ZUZpbGVIREhSIjsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBkYXRhWyJmaWxlcyJdID0gbmV3IE9iamVjdDsNCiAgICAgICAgICAgIGRhdGFbImZpbGVzIl1bZGF0YVR5cGVdID0gbmV3IE9iamVjdDsNCiAgICAgICAgICAgIGRhdGFbImZpbGVzIl1bZGF0YVR5cGVdW2lkXSA9IGlucHV0Ow0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGNhc2UgInhtbHR2IjoNCiAgICAgICAgICAgIGNvbmZpcm1Nc2cgPSAiRGVsZXRlIHRoaXMgWE1MVFYgZmlsZT8iOw0KICAgICAgICAgICAgc3dpdGNoIChvcHRpb24pIHsNCiAgICAgICAgICAgICAgICAvLyBQb3B1cDogU2F2ZQ0KICAgICAgICAgICAgICAgIGNhc2UgMDoNCiAgICAgICAgICAgICAgICAgICAgY21kID0gInNhdmVGaWxlc1hNTFRWIjsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgLy8gUG9wdXA6IFVwZGF0ZQ0KICAgICAgICAgICAgICAgIGNhc2UgMToNCiAgICAgICAgICAgICAgICAgICAgY21kID0gInVwZGF0ZUZpbGVYTUxUViI7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgZGF0YVsiZmlsZXMiXSA9IG5ldyBPYmplY3Q7DQogICAgICAgICAgICBkYXRhWyJmaWxlcyJdW2RhdGFUeXBlXSA9IG5ldyBPYmplY3Q7DQogICAgICAgICAgICBkYXRhWyJmaWxlcyJdW2RhdGFUeXBlXVtpZF0gPSBpbnB1dDsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJmaWx0ZXIiOg0KICAgICAgICAgICAgY29uZmlybU1zZyA9ICJEZWxldGUgdGhpcyBmaWx0ZXI/IjsNCiAgICAgICAgICAgIGNtZCA9ICJzYXZlRmlsdGVyIjsNCiAgICAgICAgICAgIGRhdGFbImZpbHRlciJdID0gbmV3IE9iamVjdDsNCiAgICAgICAgICAgIGRhdGFbImZpbHRlciJdW2lkXSA9IGlucHV0Ow0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICBjb25zb2xlLmxvZyhkYXRhVHlwZSwgaWQpOw0KICAgICAgICAgICAgcmV0dXJuOw0KICAgICAgICAgICAgYnJlYWs7DQogICAgfQ0KICAgIGlmIChyZW1vdmUgPT0gdHJ1ZSkgew0KICAgICAgICBpZiAoIWNvbmZpcm0oY29uZmlybU1zZykpIHsNCiAgICAgICAgICAgIHNob3dFbGVtZW50KCJwb3B1cCIsIGZhbHNlKTsNCiAgICAgICAgICAgIHJldHVybjsNCiAgICAgICAgfQ0KICAgIH0NCiAgICBjb25zb2xlLmxvZygiU0VORCBUTyBTRVJWRVIiKTsNCiAgICBjb25zb2xlLmxvZyhkYXRhKTsNCiAgICB2YXIgc2VydmVyID0gbmV3IFNlcnZlcihjbWQpOw0KICAgIHNlcnZlci5yZXF1ZXN0KGRhdGEpOw0KfQ0KZnVuY3Rpb24gZG9uZVBvcHVwRGF0YShkYXRhVHlwZSwgaWRzU3RyKSB7DQogICAgdmFyIGlkcyA9IGlkc1N0ci5zcGxpdCgnLCcpOw0KICAgIHZhciBkaXYgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicG9wdXAtY3VzdG9tIik7DQogICAgdmFyIGlucHV0cyA9IGRpdi5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCJjaGFuZ2VkIik7DQogICAgaWRzLmZvckVhY2goZnVuY3Rpb24gKGlkKSB7DQogICAgICAgIHZhciBpbnB1dCA9IG5ldyBPYmplY3QoKTsNCiAgICAgICAgaW5wdXQgPSBTRVJWRVJbInhlcGciXVsiZXBnTWFwcGluZyJdW2lkXTsNCiAgICAgICAgY29uc29sZS5sb2coaW5wdXQpOw0KICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGlucHV0cy5sZW5ndGg7IGkrKykgew0KICAgICAgICAgICAgdmFyIG5hbWU7DQogICAgICAgICAgICB2YXIgdmFsdWU7DQogICAgICAgICAgICBzd2l0Y2ggKGlucHV0c1tpXS50YWdOYW1lKSB7DQogICAgICAgICAgICAgICAgY2FzZSAiSU5QVVQiOg0KICAgICAgICAgICAgICAgICAgICBzd2l0Y2ggKGlucHV0c1tpXS50eXBlKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBjYXNlICJjaGVja2JveCI6DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZSA9IGlucHV0c1tpXS5uYW1lOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlID0gaW5wdXRzW2ldLmNoZWNrZWQ7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5wdXRbbmFtZV0gPSB2YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgInRleHQiOg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWUgPSBpbnB1dHNbaV0ubmFtZTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IGlucHV0c1tpXS52YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnB1dFtuYW1lXSA9IHZhbHVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgIlNFTEVDVCI6DQogICAgICAgICAgICAgICAgICAgIG5hbWUgPSBpbnB1dHNbaV0ubmFtZTsNCiAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSBpbnB1dHNbaV0udmFsdWU7DQogICAgICAgICAgICAgICAgICAgIGlucHV0W25hbWVdID0gdmFsdWU7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgc3dpdGNoIChuYW1lKSB7DQogICAgICAgICAgICAgICAgY2FzZSAidHZnLWxvZ28iOg0KICAgICAgICAgICAgICAgICAgICAvLyhkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkuY2hpbGROb2Rlc1syXS5maXJzdENoaWxkIGFzIEhUTUxFbGVtZW50KS5zZXRBdHRyaWJ1dGUoInNyYyIsIHZhbHVlKQ0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBjYXNlICJ4LW5hbWUiOg0KICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkuY2hpbGROb2Rlc1szXS5maXJzdENoaWxkLmlubmVySFRNTCA9IHZhbHVlOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBjYXNlICJ4LWNhdGVnb3J5IjoNCiAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpLmNoaWxkTm9kZXNbM10uZmlyc3RDaGlsZC5jbGFzc05hbWUgPSB2YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAieC1ncm91cC10aXRsZSI6DQogICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5jaGlsZE5vZGVzWzVdLmZpcnN0Q2hpbGQuaW5uZXJIVE1MID0gdmFsdWU7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgIngteG1sdHYtZmlsZSI6DQogICAgICAgICAgICAgICAgICAgIGlmICh2YWx1ZSAhPSAieFRlVmUgRHVtbXkiICYmIHZhbHVlICE9ICItIikgew0KICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSBnZXRWYWx1ZUZyb21Qcm92aWRlckZpbGUodmFsdWUsICJ4bWx0diIsICJuYW1lIik7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgaWYgKHZhbHVlID09ICItIikgew0KICAgICAgICAgICAgICAgICAgICAgICAgaW5wdXRbIngtYWN0aXZlIl0gPSBmYWxzZTsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkuY2hpbGROb2Rlc1s2XS5maXJzdENoaWxkLmlubmVySFRNTCA9IHZhbHVlOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBjYXNlICJ4LW1hcHBpbmciOg0KICAgICAgICAgICAgICAgICAgICBpZiAodmFsdWUgPT0gIi0iKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBpbnB1dFsieC1hY3RpdmUiXSA9IGZhbHNlOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5jaGlsZE5vZGVzWzddLmZpcnN0Q2hpbGQuaW5uZXJIVE1MID0gdmFsdWU7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgIngtdGltZXNoaWZ0IjoNCiAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpLmNoaWxkTm9kZXNbOF0uZmlyc3RDaGlsZC5pbm5lckhUTUwgPSB2YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGNyZWF0ZVNlYXJjaE9iaigpOw0KICAgICAgICAgICAgc2VhcmNoSW5NYXBwaW5nKCk7DQogICAgICAgIH0NCiAgICAgICAgaWYgKGlucHV0WyJ4LWFjdGl2ZSJdID09IGZhbHNlKSB7DQogICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkuY2xhc3NOYW1lID0gIm5vdEFjdGl2ZUVQRyI7DQogICAgICAgIH0NCiAgICAgICAgZWxzZSB7DQogICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkuY2xhc3NOYW1lID0gImFjdGl2ZUVQRyI7DQogICAgICAgIH0NCiAgICAgICAgY29uc29sZS5sb2coaW5wdXRbInR2Zy1sb2dvIl0pOw0KICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkuY2hpbGROb2Rlc1syXS5maXJzdENoaWxkLnNldEF0dHJpYnV0ZSgic3JjIiwgaW5wdXRbInR2Zy1sb2dvIl0pOw0KICAgIH0pOw0KICAgIHNob3dFbGVtZW50KCJwb3B1cCIsIGZhbHNlKTsNCiAgICByZXR1cm47DQp9DQpmdW5jdGlvbiBzaG93UHJldmlldyhlbGVtZW50KSB7DQogICAgdmFyIGRpdiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJteVN0cmVhbXNCb3giKTsNCiAgICBzd2l0Y2ggKGVsZW1lbnQpIHsNCiAgICAgICAgY2FzZSBmYWxzZToNCiAgICAgICAgICAgIGRpdi5jbGFzc05hbWUgPSAibm90VmlzaWJsZSI7DQogICAgICAgICAgICByZXR1cm47DQogICAgICAgICAgICBicmVhazsNCiAgICB9DQogICAgdmFyIHN0cmVhbXMgPSBbImFjdGl2ZVN0cmVhbXMiLCAiaW5hY3RpdmVTdHJlYW1zIl07DQogICAgc3RyZWFtcy5mb3JFYWNoKGZ1bmN0aW9uIChwcmV2aWV3KSB7DQogICAgICAgIHZhciB0YWJsZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHByZXZpZXcpOw0KICAgICAgICB0YWJsZS5pbm5lckhUTUwgPSAiIjsNCiAgICAgICAgdmFyIG9iaiA9IFNFUlZFUlsiZGF0YSJdWyJTdHJlYW1QcmV2aWV3VUkiXVtwcmV2aWV3XTsNCiAgICAgICAgb2JqLmZvckVhY2goZnVuY3Rpb24gKGNoYW5uZWwpIHsNCiAgICAgICAgICAgIHZhciB0ciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlRSIik7DQogICAgICAgICAgICB2YXIgdGRLZXkgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgdmFyIHRkVmFsID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgIHRkS2V5LmNsYXNzTmFtZSA9ICJ0ZEtleSI7DQogICAgICAgICAgICB0ZFZhbC5jbGFzc05hbWUgPSAidGRWYWwiOw0KICAgICAgICAgICAgc3dpdGNoIChwcmV2aWV3KSB7DQogICAgICAgICAgICAgICAgY2FzZSAiYWN0aXZlU3RyZWFtcyI6DQogICAgICAgICAgICAgICAgICAgIHRkS2V5LmlubmVyVGV4dCA9ICJDaGFubmVsOiAoKykiOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBjYXNlICJpbmFjdGl2ZVN0cmVhbXMiOg0KICAgICAgICAgICAgICAgICAgICB0ZEtleS5pbm5lclRleHQgPSAiQ2hhbm5lbDogKC0pIjsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICB9DQogICAgICAgICAgICB0ZFZhbC5pbm5lclRleHQgPSBjaGFubmVsOw0KICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQodGRLZXkpOw0KICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQodGRWYWwpOw0KICAgICAgICAgICAgdGFibGUuYXBwZW5kQ2hpbGQodHIpOw0KICAgICAgICB9KTsNCiAgICB9KTsNCiAgICBzaG93RWxlbWVudCgibG9hZGluZyIsIGZhbHNlKTsNCiAgICBkaXYuY2xhc3NOYW1lID0gInZpc2libGUiOw0KICAgIHJldHVybjsNCn0NCg==" - webUI["html/configuration.html"] = "PCFkb2N0eXBlIGh0bWw+DQo8aHRtbD4NCiAgPGhlYWQ+DQogICAgPG1ldGEgY2hhcnNldD0idXRmLTgiPg0KICAgIDxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgsIGluaXRpYWwtc2NhbGU9MS4wIiAvPiANCiAgICA8dGl0bGU+eFRlVmU8L3RpdGxlPg0KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iY3NzL3NjcmVlbi5jc3MiIHR5cGU9InRleHQvY3NzIj4NCiAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9ImNzcy9iYXNlLmNzcyIgdHlwZT0idGV4dC9jc3MiPg0KICAgIDxzY3JpcHQgbGFuZ3VhZ2U9ImphdmFzY3JpcHQiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJqcy9jb25maWd1cmF0aW9uX3RzLmpzIj48L3NjcmlwdD4NCiAgICA8c2NyaXB0IGxhbmd1YWdlPSJqYXZhc2NyaXB0IiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ianMvbmV0d29ya190cy5qcyI+PC9zY3JpcHQ+DQogICAgPHNjcmlwdCBsYW5ndWFnZT0iamF2YXNjcmlwdCIgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9ImpzL21lbnVfdHMuanMiPjwvc2NyaXB0Pg0KICAgIDxzY3JpcHQgbGFuZ3VhZ2U9ImphdmFzY3JpcHQiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJqcy9zZXR0aW5nc190cy5qcyI+PC9zY3JpcHQ+DQogICAgPHNjcmlwdCBsYW5ndWFnZT0iamF2YXNjcmlwdCIgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9ImpzL2Jhc2VfdHMuanMiPjwvc2NyaXB0Pg0KICA8L2hlYWQ+DQoNCiAgICA8Ym9keSBvbmxvYWQ9ImphdmFzY3JpcHQ6IHJlYWR5Rm9yQ29uZmlndXJhdGlvbigwKTsiPg0KICAgICAgICAgIA0KICAgICAgPGRpdiBpZD0ibG9hZGluZyIgY2xhc3M9ImJsb2NrIj4NCiAgICAgICAgPGRpdiBjbGFzcz0ibG9hZGVyIj48L2Rpdj4NCiAgICAgIDwvZGl2Pg0KDQogICAgICA8ZGl2IGlkPSJoZWFkZXIiIGNsYXNzPSJpbWdDZW50ZXIiPjwvZGl2Pg0KICAgICAgPGRpdiBpZD0iYm94Ij4NCiAgICAgICAgDQogICAgICAgIDx0YWJsZSBpZD0iY2xpZW50SW5mbyIgY2xhc3M9InZpc2libGUiPg0KICAgICAgICAgIDx0cj4NCiAgICAgICAgICAgIDx0ZCBjbGFzcz0idGRLZXkiPlZlcnNpb246PC90ZD4NCiAgICAgICAgICAgIDx0ZCBpZD0idmVyc2lvbiIgY2xhc3M9InRkVmFsIj4mbmJzcDs8L3RkPg0KICAgICAgICAgICAgPHRkIGNsYXNzPSJ0ZEtleSI+T1M6PC90ZD4NCiAgICAgICAgICAgIDx0ZCBpZD0ib3MiIGNsYXNzPSJ0ZFZhbCI+Jm5ic3A7PC90ZD4NCiAgICAgICAgICA8L3RyPg0KICAgICAgICAgIDx0cj4NCiAgICAgICAgICAgIDx0ZCBjbGFzcz0idGRLZXkiPlVVSUQ6PC90ZD4NCiAgICAgICAgICAgIDx0ZCBpZD0idXVpZCIgY2xhc3M9InRkVmFsIj4mbmJzcDs8L3RkPg0KICAgICAgICAgICAgPHRkIGNsYXNzPSJ0ZEtleSI+QXJjaDo8L3RkPg0KICAgICAgICAgICAgPHRkIGlkPSJhcmNoIiBjbGFzcz0idGRWYWwiPiZuYnNwOzwvdGQ+DQogICAgICAgICAgPC90cj4NCiAgICAgICAgICA8dHI+DQogICAgICAgICAgICA8dGQgY2xhc3M9InRkS2V5Ij5TdHJlYW1zOjwvdGQ+DQogICAgICAgICAgICA8dGQgaWQ9InN0cmVhbXMiIGNsYXNzPSJ0ZFZhbCI+Jm5ic3A7PC90ZD4NCiAgICAgICAgICAgIDx0ZCBjbGFzcz0idGRLZXkiPkRWUjo8L3RkPg0KICAgICAgICAgICAgPHRkIGlkPSJEVlIiIGNsYXNzPSJ0ZFZhbCI+Jm5ic3A7PC90ZD4NCiAgICAgICAgICA8L3RyPg0KICAgICAgICA8L3RhYmxlPg0KICAgICAgICANCiAgICAgICAgPGRpdiBpZD0iaGVhZGxpbmUiPg0KICAgICAgICAgIDxoMSBpZD0iaGVhZC10ZXh0IiBjbGFzcz0iY2VudGVyIj5Db25maWd1cmF0aW9uPC9oMT4gICAgICANCiAgICAgICAgPC9kaXY+DQogICAgICAgIDxwIGlkPSJlcnIiIGNsYXNzPSJlcnJvck1zZyBjZW50ZXIiPjwvcD4gICANCiAgICAgICAgPGRpdiBpZD0iY29udGVudCI+DQogICAgICAgICAgICANCiAgICAgICAgPC9kaXY+DQogICAgICAgIDxkaXYgaWQ9ImJveC1mb290ZXIiPg0KICAgICAgICAgIDxpbnB1dCBpZD0ibmV4dCIgY2xhc3M9IiIgdHlwZT0iYnV0dG9uIiBuYW1lPSJuZXh0IiB2YWx1ZT0iTmV4dCIgb25jbGljaz0iamF2YXNjcmlwdDogc2F2ZVdpemFyZCgpOyI+DQogICAgICAgIDwvZGl2Pg0KICAgICAgPC9kaXY+DQogICAgPC9ib2R5Pg0KPC9odG1sPg==" + webUI["html/img/logo_w_600x200.png"] = "iVBORw0KGgoAAAANSUhEUgAAAlgAAADICAYAAAA0n5+2AAAAAXNSR0IArs4c6QAAAAlwSFlzAAAuIwAALiMBeKU/dgAABCZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IlhNUCBDb3JlIDUuNC4wIj4KICAgPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIgogICAgICAgICAgICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgICAgICAgICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyI+CiAgICAgICAgIDx0aWZmOlJlc29sdXRpb25Vbml0PjI8L3RpZmY6UmVzb2x1dGlvblVuaXQ+CiAgICAgICAgIDx0aWZmOkNvbXByZXNzaW9uPjU8L3RpZmY6Q29tcHJlc3Npb24+CiAgICAgICAgIDx0aWZmOlhSZXNvbHV0aW9uPjMwMDwvdGlmZjpYUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6T3JpZW50YXRpb24+MTwvdGlmZjpPcmllbnRhdGlvbj4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+MzAwPC90aWZmOllSZXNvbHV0aW9uPgogICAgICAgICA8ZXhpZjpQaXhlbFhEaW1lbnNpb24+NjAwPC9leGlmOlBpeGVsWERpbWVuc2lvbj4KICAgICAgICAgPGV4aWY6Q29sb3JTcGFjZT4xPC9leGlmOkNvbG9yU3BhY2U+CiAgICAgICAgIDxleGlmOlBpeGVsWURpbWVuc2lvbj4yMDA8L2V4aWY6UGl4ZWxZRGltZW5zaW9uPgogICAg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" + webUI["html/img/logout.png"] = "iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAAAXNSR0IArs4c6QAAAAlwSFlzAAAsSwAALEsBpT2WqQAABCRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IlhNUCBDb3JlIDUuNC4wIj4KICAgPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIgogICAgICAgICAgICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgICAgICAgICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyI+CiAgICAgICAgIDx0aWZmOlJlc29sdXRpb25Vbml0PjI8L3RpZmY6UmVzb2x1dGlvblVuaXQ+CiAgICAgICAgIDx0aWZmOkNvbXByZXNzaW9uPjU8L3RpZmY6Q29tcHJlc3Npb24+CiAgICAgICAgIDx0aWZmOlhSZXNvbHV0aW9uPjI4ODwvdGlmZjpYUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6T3JpZW50YXRpb24+MTwvdGlmZjpPcmllbnRhdGlvbj4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+Mjg4PC90aWZmOllSZXNvbHV0aW9uPgogICAgICAgICA8ZXhpZjpQaXhlbFhEaW1lbnNpb24+NTA8L2V4aWY6UGl4ZWxYRGltZW5zaW9uPgogICAgICAgICA8ZXhpZjpDb2xvclNwYWNlPjE8L2V4aWY6Q29sb3JTcGFjZT4KICAgICAgICAgPGV4aWY6UGl4ZWxZRGltZW5zaW9uPjUwPC9leGlmOlBpeGVsWURpbWVuc2lvbj4KICAgICAgICAgPGRjOnN1YmplY3Q+CiAgICAgICAgICAgIDxyZGY6QmFnLz4KICAgICAgICAgPC9kYzpzdWJqZWN0PgogICAgICAgICA8eG1wOk1vZGlmeURhdGU+MjAxOC0xMC0xM1QxMToxMDoxODwveG1wOk1vZGlmeURhdGU+CiAgICAgICAgIDx4bXA6Q3JlYXRvclRvb2w+UGl4ZWxtYXRvciAzLjM8L3htcDpDcmVhdG9yVG9vbD4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgIDwvcmRmOlJERj4KPC94OnhtcG1ldGE+Cg27QeEAAANQSURBVGgF7Zk9aBRBGIZzSRSN8YdoCpEkghCCqK1o4g9IsBCCNmIniCAiWAhqI8G02qiIoqCCWggSEcFKEFPYpVAU8QdFUyiKRpRokBjP55OdZDLZvZnZ7N3Ngh887M7sN/O9797t7c5eTc3/8D8DxWKxGS5Ai//oAEYgvB4OwleQaAtAlp8ERG+Bp6Jei/wYQfRy6NfE67vhG0FtA/TBqK7c2A/bCGJ3wpAhOq4ZphGUroEHcYoT+sIygsgmOAu/EwQndYdhBHV1sB8+Jym19Lf6/faVIRuBG+GRRajtcPWMoKwFbtgUOh6vvBGEzYFj8MNRpEtaZY2gaAe8cVHmmXOc/K3QXIZv/+SUFFgJ96AS8ZwiZ6Ab6iZVzGCPiRbCKRiDasQHip6EdD/PDKyFvfAJQgg5kVfB/VoieT0MQojxE1G9UG/7otWS0A7pPkrb7DM/Ppcp+mAAM/bFGEmL4RL8gVDjI8JWOZ0bEjvhSahO0CXXsLMZWZYegREIMV4jaoHTJyNJJLfC7RCdoOm6sxGVyKAeeBegoU6l0XmLiXlwAqp1o4w7j3d1AwW9YdtnNrnQzkOXLddyfAPHv8Ey6ABpd8N88In2QqHwymfARC5mCrAH0i6qGDr9jk3fbNgFz8A1DkwIS7tDpSVwGdLcexIfPZhPHpf2wS+wRX9a/dPGUakLzBdwNgGJRlQBJtgMw5aJ3qr8TLYUmwVHwXXxZTUiwphvHYxDUnzPxIA5CdXa4E5SVa3fyUhkRtYqpSKbNYxpJiq+ncpDJar7GGlknvcl5mqM05BZH4Xl3iOLpLh7j7OR6MScSzAykplg20QIWA0PDSG+RuTdQVy8sNXP9DgK5N4jK9AvkRpfI4sYF/c2836mQl0nQ4zce66AfZFkTMqYl2DGaSMt/CYOHpsuaPco5bLUzUuMGkLHaQ+ovjwZUZrVdpAHRnnw/Bd5MrJCiY62t4x2+E2uBfkfRg95TdSkK8/LJ7JWF83+Nb5Ww0Zf+E3OviwXVMgT8dLwVRsKEd0A+uP8biMlH01MHAYVF/Oh2lCJenkDqpbUN9nPyzU91QnCRbyEPEXn1sQhxMv7tG1T7cW3rK/r44eVtxfxm6gwBh38zJqPJuUtXu3Z/wLwuBaBLgMkKwAAAABJRU5ErkJggg==" webUI["html/js/authentication.js"] = "ZnVuY3Rpb24gY3JlYXRlRmlyc3RBY2NvdW50KGVsbSkgew0KICB2YXIgZXJyID0gZmFsc2U7DQogIHZhciBkaXYgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChlbG0pOw0KICBjb25zb2xlLmxvZyhkaXYpOw0KDQogIHZhciBmb3JtID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2F1dGhlbnRpY2F0aW9uJyk7DQogIA0KICBjb25zdCB1c2VybmFtZSAgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndXNlcm5hbWUnKTsNCiAgY29uc3QgcGFzc3dvcmQgID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Bhc3N3b3JkJyk7DQogIGNvbnN0IGNvbmZpcm0gICA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjb25maXJtJyk7DQoNCiAgdmFyIGlucHV0cyA9IGRpdi5nZXRFbGVtZW50c0J5VGFnTmFtZSgnSU5QVVQnKQ0KICBjb25zb2xlLmxvZyhjb25maXJtKTsNCg0KICBzd2l0Y2goY29uZmlybSkgew0KICAgIGNhc2UgbnVsbDogYnJlYWs7DQogICAgDQogICAgZGVmYXVsdDogDQogICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGlucHV0cy5sZW5ndGg7IGkrKykgew0KICAgICAgICBpZiAoaW5wdXRzW2ldLnZhbHVlLmxlbmd0aCA9PSAwKSB7DQogICAgICAgICAgaW5wdXRzW2ldLnN0eWxlLmJvcmRlckNvbG9yID0gJ3JlZCc7DQogICAgICAgICAgZXJyID0gdHJ1ZQ0KICAgICAgICB9DQogICAgICB9DQoNCiAgICAgIHN3aXRjaChlcnIpIHsNCiAgICAgICAgY2FzZSB0cnVlOiByZXR1cm47IGJyZWFrOw0KICAgICAgICBjYXNlIGZhbHNlOiANCiAgICAgICAgICBpZiAocGFzc3dvcmQudmFsdWUgIT0gY29uZmlybS52YWx1ZSkgew0KICAgICAgICAgICAgY29uZmlybS5zdHlsZS5ib3JkZXJDb2xvciA9ICdyZWQnOw0KICAgICAgICAgICAgcmV0dXJuOw0KICAgICAgICAgIH0NCiAgICAgICAgICBicmVhazsNCiAgICAgIH0NCiAgfQ0KDQoNCiAgDQoNCiAgZm9ybS5zdWJtaXQoKTsNCiAgcmV0dXJuOw0KfQ==" - webUI["html/js/authentication_ts.js"] = "ZnVuY3Rpb24gbG9naW4oKSB7DQogICAgdmFyIGVyciA9IGZhbHNlOw0KICAgIHZhciBkYXRhID0gbmV3IE9iamVjdCgpOw0KICAgIHZhciBkaXYgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29udGVudCIpOw0KICAgIHZhciBmb3JtID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImF1dGhlbnRpY2F0aW9uIik7DQogICAgdmFyIGlucHV0cyA9IGRpdi5nZXRFbGVtZW50c0J5VGFnTmFtZSgiSU5QVVQiKTsNCiAgICBjb25zb2xlLmxvZyhpbnB1dHMpOw0KICAgIGZvciAodmFyIGkgPSBpbnB1dHMubGVuZ3RoIC0gMTsgaSA+PSAwOyBpLS0pIHsNCiAgICAgICAgdmFyIGtleSA9IGlucHV0c1tpXS5uYW1lOw0KICAgICAgICB2YXIgdmFsdWUgPSBpbnB1dHNbaV0udmFsdWU7DQogICAgICAgIGlmICh2YWx1ZS5sZW5ndGggPT0gMCkgew0KICAgICAgICAgICAgaW5wdXRzW2ldLnN0eWxlLmJvcmRlckNvbG9yID0gInJlZCI7DQogICAgICAgICAgICBlcnIgPSB0cnVlOw0KICAgICAgICB9DQogICAgICAgIGRhdGFba2V5XSA9IHZhbHVlOw0KICAgIH0NCiAgICBpZiAoZXJyID09IHRydWUpIHsNCiAgICAgICAgZGF0YSA9IG5ldyBPYmplY3QoKTsNCiAgICAgICAgcmV0dXJuOw0KICAgIH0NCiAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgiY29uZmlybSIpKSB7DQogICAgICAgIGlmIChkYXRhWyJjb25maXJtIl0gIT0gZGF0YVsicGFzc3dvcmQiXSkgew0KICAgICAgICAgICAgYWxlcnQoInNkYWZzZCIpOw0KICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Bhc3N3b3JkJykuc3R5bGUuYm9yZGVyQ29sb3IgPSAicmVkIjsNCiAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjb25maXJtJykuc3R5bGUuYm9yZGVyQ29sb3IgPSAicmVkIjsNCiAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJlcnIiKS5pbm5lckhUTUwgPSAie3suYWNjb3VudC5mYWlsZWR9fSI7DQogICAgICAgICAgICByZXR1cm47DQogICAgICAgIH0NCiAgICB9DQogICAgY29uc29sZS5sb2coZGF0YSk7DQogICAgZm9ybS5zdWJtaXQoKTsNCn0NCg==" - webUI["html/js/base_ts.js"] = "dmFyIFNFUlZFUiA9IG5ldyBPYmplY3QoKTsNCnZhciBCVUxLX0VESVQgPSBmYWxzZTsNCnZhciBDT0xVTU5fVE9fU09SVDsNCnZhciBTRUFSQ0hfTUFQUElORyA9IG5ldyBPYmplY3QoKTsNCnZhciBVTkRPID0gbmV3IE9iamVjdCgpOw0KdmFyIFNFUlZFUl9DT05ORUNUSU9OID0gZmFsc2U7DQp2YXIgV1NfQVZBSUxBQkxFID0gZmFsc2U7DQovLyBNZW7DvA0KdmFyIG1lbnVJdGVtcyA9IG5ldyBBcnJheSgpOw0KbWVudUl0ZW1zLnB1c2gobmV3IE1haW5NZW51SXRlbSgicGxheWxpc3QiLCAie3subWFpbk1lbnUuaXRlbS5wbGF5bGlzdH19IiwgIm0zdS5wbmciLCAie3subWFpbk1lbnUuaGVhZGxpbmUucGxheWxpc3R9fSIpKTsNCi8vbWVudUl0ZW1zLnB1c2gobmV3IE1haW5NZW51SXRlbSgicG1zSUQiLCAie3subWFpbk1lbnUuaXRlbS5wbXNJRH19IiwgIm51bWJlci5wbmciLCAie3subWFpbk1lbnUuaGVhZGxpbmUucG1zSUR9fSIpKQ0KbWVudUl0ZW1zLnB1c2gobmV3IE1haW5NZW51SXRlbSgiZmlsdGVyIiwgInt7Lm1haW5NZW51Lml0ZW0uZmlsdGVyfX0iLCAiZmlsdGVyLnBuZyIsICJ7ey5tYWluTWVudS5oZWFkbGluZS5maWx0ZXJ9fSIpKTsNCm1lbnVJdGVtcy5wdXNoKG5ldyBNYWluTWVudUl0ZW0oInhtbHR2IiwgInt7Lm1haW5NZW51Lml0ZW0ueG1sdHZ9fSIsICJ4bWx0di5wbmciLCAie3subWFpbk1lbnUuaGVhZGxpbmUueG1sdHZ9fSIpKTsNCm1lbnVJdGVtcy5wdXNoKG5ldyBNYWluTWVudUl0ZW0oIm1hcHBpbmciLCAie3subWFpbk1lbnUuaXRlbS5tYXBwaW5nfX0iLCAibWFwcGluZy5wbmciLCAie3subWFpbk1lbnUuaGVhZGxpbmUubWFwcGluZ319IikpOw0KbWVudUl0ZW1zLnB1c2gobmV3IE1haW5NZW51SXRlbSgidXNlcnMiLCAie3subWFpbk1lbnUuaXRlbS51c2Vyc319IiwgInVzZXJzLnBuZyIsICJ7ey5tYWluTWVudS5oZWFkbGluZS51c2Vyc319IikpOw0KbWVudUl0ZW1zLnB1c2gobmV3IE1haW5NZW51SXRlbSgic2V0dGluZ3MiLCAie3subWFpbk1lbnUuaXRlbS5zZXR0aW5nc319IiwgInNldHRpbmdzLnBuZyIsICJ7ey5tYWluTWVudS5oZWFkbGluZS5zZXR0aW5nc319IikpOw0KbWVudUl0ZW1zLnB1c2gobmV3IE1haW5NZW51SXRlbSgibG9nIiwgInt7Lm1haW5NZW51Lml0ZW0ubG9nfX0iLCAibG9nLnBuZyIsICJ7ey5tYWluTWVudS5oZWFkbGluZS5sb2d9fSIpKTsNCm1lbnVJdGVtcy5wdXNoKG5ldyBNYWluTWVudUl0ZW0oImxvZ291dCIsICJ7ey5tYWluTWVudS5pdGVtLmxvZ291dH19IiwgImxvZ291dC5wbmciLCAie3subWFpbk1lbnUuaGVhZGxpbmUubG9nb3V0fX0iKSk7DQovLyBLYXRlZ29yaWVuIGbDvHIgZGllIEVpbnN0ZWxsdW5nZW4NCnZhciBzZXR0aW5nc0NhdGVnb3J5ID0gbmV3IEFycmF5KCk7DQpzZXR0aW5nc0NhdGVnb3J5LnB1c2gobmV3IFNldHRpbmdzQ2F0ZWdvcnlJdGVtKCJ7ey5zZXR0aW5ncy5jYXRlZ29yeS5nZW5lcmFsfX0iLCAieHRldmVBdXRvVXBkYXRlLHR1bmVyLGVwZ1NvdXJjZSxhcGkiKSk7DQpzZXR0aW5nc0NhdGVnb3J5LnB1c2gobmV3IFNldHRpbmdzQ2F0ZWdvcnlJdGVtKCJ7ey5zZXR0aW5ncy5jYXRlZ29yeS5maWxlc319IiwgInVwZGF0ZSxmaWxlcy51cGRhdGUsdGVtcC5wYXRoLGNhY2hlLmltYWdlcyx4ZXBnLnJlcGxhY2UubWlzc2luZy5pbWFnZXMiKSk7DQpzZXR0aW5nc0NhdGVnb3J5LnB1c2gobmV3IFNldHRpbmdzQ2F0ZWdvcnlJdGVtKCJ7ey5zZXR0aW5ncy5jYXRlZ29yeS5zdHJlYW1pbmd9fSIsICJidWZmZXIsdWRweHksYnVmZmVyLnNpemUua2IsYnVmZmVyLnRpbWVvdXQsdXNlci5hZ2VudCxmZm1wZWcucGF0aCxmZm1wZWcub3B0aW9ucyx2bGMucGF0aCx2bGMub3B0aW9ucyIpKTsNCnNldHRpbmdzQ2F0ZWdvcnkucHVzaChuZXcgU2V0dGluZ3NDYXRlZ29yeUl0ZW0oInt7LnNldHRpbmdzLmNhdGVnb3J5LmJhY2t1cH19IiwgImJhY2t1cC5wYXRoLGJhY2t1cC5rZWVwIikpOw0Kc2V0dGluZ3NDYXRlZ29yeS5wdXNoKG5ldyBTZXR0aW5nc0NhdGVnb3J5SXRlbSgie3suc2V0dGluZ3MuY2F0ZWdvcnkuYXV0aGVudGljYXRpb259fSIsICJhdXRoZW50aWNhdGlvbi53ZWIsYXV0aGVudGljYXRpb24ucG1zLGF1dGhlbnRpY2F0aW9uLm0zdSxhdXRoZW50aWNhdGlvbi54bWwsYXV0aGVudGljYXRpb24uYXBpIikpOw0KZnVuY3Rpb24gc2hvd1BvcFVwRWxlbWVudChlbG0pIHsNCiAgICB2YXIgYWxsRWxlbWVudHMgPSBuZXcgQXJyYXkoInBvcHVwLWN1c3RvbSIpOw0KICAgIGZvciAodmFyIGkgPSAwOyBpIDwgYWxsRWxlbWVudHMubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgc2hvd0VsZW1lbnQoYWxsRWxlbWVudHNbaV0sIGZhbHNlKTsNCiAgICB9DQogICAgc2hvd0VsZW1lbnQoZWxtLCB0cnVlKTsNCiAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsNCiAgICAgICAgc2hvd0VsZW1lbnQoInBvcHVwIiwgdHJ1ZSk7DQogICAgfSwgMTApOw0KICAgIHJldHVybjsNCn0NCmZ1bmN0aW9uIHNob3dFbGVtZW50KGVsbUlELCB0eXBlKSB7DQogICAgdmFyIGNzc0NsYXNzOw0KICAgIHN3aXRjaCAodHlwZSkgew0KICAgICAgICBjYXNlIHRydWU6DQogICAgICAgICAgICBjc3NDbGFzcyA9ICJibG9jayI7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSBmYWxzZToNCiAgICAgICAgICAgIGNzc0NsYXNzID0gIm5vbmUiOw0KICAgICAgICAgICAgYnJlYWs7DQogICAgfQ0KICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGVsbUlEKS5jbGFzc05hbWUgPSBjc3NDbGFzczsNCn0NCmZ1bmN0aW9uIGNoYW5nZUJ1dHRvbkFjdGlvbihlbGVtZW50LCBidXR0b25JRCwgYXR0cmlidXRlKSB7DQogICAgdmFyIHZhbHVlID0gZWxlbWVudC5vcHRpb25zW2VsZW1lbnQuc2VsZWN0ZWRJbmRleF0udmFsdWU7DQogICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoYnV0dG9uSUQpLnNldEF0dHJpYnV0ZShhdHRyaWJ1dGUsIHZhbHVlKTsNCn0NCmZ1bmN0aW9uIGdldExvY2FsRGF0YShkYXRhVHlwZSwgaWQpIHsNCiAgICB2YXIgZGF0YSA9IG5ldyBPYmplY3QoKTsNCiAgICBzd2l0Y2ggKGRhdGFUeXBlKSB7DQogICAgICAgIGNhc2UgIm0zdSI6DQogICAgICAgICAgICBkYXRhID0gU0VSVkVSWyJzZXR0aW5ncyJdWyJmaWxlcyJdW2RhdGFUeXBlXVtpZF07DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSAiaGRociI6DQogICAgICAgICAgICBkYXRhID0gU0VSVkVSWyJzZXR0aW5ncyJdWyJmaWxlcyJdW2RhdGFUeXBlXVtpZF07DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSAiZmlsdGVyIjoNCiAgICAgICAgY2FzZSAiY3VzdG9tLWZpbHRlciI6DQogICAgICAgIGNhc2UgImdyb3VwLXRpdGxlIjoNCiAgICAgICAgICAgIGlmIChpZCA9PSAtMSkgew0KICAgICAgICAgICAgICAgIGRhdGFbImFjdGl2ZSJdID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICBkYXRhWyJjYXNlU2Vuc2l0aXZlIl0gPSBmYWxzZTsNCiAgICAgICAgICAgICAgICBkYXRhWyJkZXNjcmlwdGlvbiJdID0gIiI7DQogICAgICAgICAgICAgICAgZGF0YVsiZXhjbHVkZSJdID0gIiI7DQogICAgICAgICAgICAgICAgZGF0YVsiZmlsdGVyIl0gPSAiIjsNCiAgICAgICAgICAgICAgICBkYXRhWyJpbmNsdWRlIl0gPSAiIjsNCiAgICAgICAgICAgICAgICBkYXRhWyJuYW1lIl0gPSAiIjsNCiAgICAgICAgICAgICAgICBkYXRhWyJ0eXBlIl0gPSAiZ3JvdXAtdGl0bGUiOw0KICAgICAgICAgICAgICAgIFNFUlZFUlsic2V0dGluZ3MiXVsiZmlsdGVyIl1baWRdID0gZGF0YTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGRhdGEgPSBTRVJWRVJbInNldHRpbmdzIl1bImZpbHRlciJdW2lkXTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJ4bWx0diI6DQogICAgICAgICAgICBkYXRhID0gU0VSVkVSWyJzZXR0aW5ncyJdWyJmaWxlcyJdW2RhdGFUeXBlXVtpZF07DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSAidXNlcnMiOg0KICAgICAgICAgICAgZGF0YSA9IFNFUlZFUlsidXNlcnMiXVtpZF1bImRhdGEiXTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJtYXBwaW5nIjoNCiAgICAgICAgICAgIGRhdGEgPSBTRVJWRVJbInhlcGciXVsiZXBnTWFwcGluZyJdW2lkXTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJtM3VHcm91cHMiOg0KICAgICAgICAgICAgZGF0YSA9IFNFUlZFUlsiZGF0YSJdWyJwbGF5bGlzdCJdWyJtM3UiXVsiZ3JvdXBzIl07DQogICAgICAgICAgICBicmVhazsNCiAgICB9DQogICAgcmV0dXJuIGRhdGE7DQp9DQpmdW5jdGlvbiBnZXRPYmpLZXlzKG9iaikgew0KICAgIHZhciBrZXlzID0gbmV3IEFycmF5KCk7DQogICAgZm9yICh2YXIgaSBpbiBvYmopIHsNCiAgICAgICAgaWYgKG9iai5oYXNPd25Qcm9wZXJ0eShpKSkgew0KICAgICAgICAgICAga2V5cy5wdXNoKGkpOw0KICAgICAgICB9DQogICAgfQ0KICAgIHJldHVybiBrZXlzOw0KfQ0KZnVuY3Rpb24gZ2V0QWxsU2VsZWN0ZWRDaGFubmVscygpIHsNCiAgICB2YXIgY2hhbm5lbHMgPSBuZXcgQXJyYXkoKTsNCiAgICBpZiAoQlVMS19FRElUID09IGZhbHNlKSB7DQogICAgICAgIHJldHVybiBjaGFubmVsczsNCiAgICB9DQogICAgdmFyIHRycyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb250ZW50X3RhYmxlIikuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlRSIik7DQogICAgZm9yICh2YXIgaSA9IDE7IGkgPCB0cnMubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgaWYgKHRyc1tpXS5zdHlsZS5kaXNwbGF5ICE9ICJub25lIikgew0KICAgICAgICAgICAgaWYgKHRyc1tpXS5maXJzdENoaWxkLmZpcnN0Q2hpbGQuY2hlY2tlZCA9PSB0cnVlKSB7DQogICAgICAgICAgICAgICAgY2hhbm5lbHMucHVzaCh0cnNbaV0uaWQpOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQogICAgfQ0KICAgIHJldHVybiBjaGFubmVsczsNCn0NCmZ1bmN0aW9uIHNlbGVjdEFsbENoYW5uZWxzKCkgew0KICAgIHZhciBidWxrID0gZmFsc2U7DQogICAgdmFyIHRycyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb250ZW50X3RhYmxlIikuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlRSIik7DQogICAgaWYgKHRyc1swXS5maXJzdENoaWxkLmZpcnN0Q2hpbGQuY2hlY2tlZCA9PSB0cnVlKSB7DQogICAgICAgIGJ1bGsgPSB0cnVlOw0KICAgIH0NCiAgICBmb3IgKHZhciBpID0gMTsgaSA8IHRycy5sZW5ndGg7IGkrKykgew0KICAgICAgICBpZiAodHJzW2ldLnN0eWxlLmRpc3BsYXkgIT0gIm5vbmUiKSB7DQogICAgICAgICAgICBzd2l0Y2ggKGJ1bGspIHsNCiAgICAgICAgICAgICAgICBjYXNlIHRydWU6DQogICAgICAgICAgICAgICAgICAgIHRyc1tpXS5maXJzdENoaWxkLmZpcnN0Q2hpbGQuY2hlY2tlZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgZmFsc2U6DQogICAgICAgICAgICAgICAgICAgIHRyc1tpXS5maXJzdENoaWxkLmZpcnN0Q2hpbGQuY2hlY2tlZCA9IGZhbHNlOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KICAgIH0NCiAgICByZXR1cm47DQp9DQpmdW5jdGlvbiBidWxrRWRpdCgpIHsNCiAgICBCVUxLX0VESVQgPSAhQlVMS19FRElUOw0KICAgIHZhciBjbGFzc05hbWU7DQogICAgdmFyIHJvd3MgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCJidWxrIik7DQogICAgc3dpdGNoIChCVUxLX0VESVQpIHsNCiAgICAgICAgY2FzZSB0cnVlOg0KICAgICAgICAgICAgY2xhc3NOYW1lID0gImJ1bGsgc2hvd0J1bGsiOw0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGNhc2UgZmFsc2U6DQogICAgICAgICAgICBjbGFzc05hbWUgPSAiYnVsayBoaWRlQnVsayI7DQogICAgICAgICAgICBicmVhazsNCiAgICB9DQogICAgZm9yICh2YXIgaSA9IDA7IGkgPCByb3dzLmxlbmd0aDsgaSsrKSB7DQogICAgICAgIHJvd3NbaV0uY2xhc3NOYW1lID0gY2xhc3NOYW1lOw0KICAgICAgICByb3dzW2ldLmNoZWNrZWQgPSBmYWxzZTsNCiAgICB9DQogICAgcmV0dXJuOw0KfQ0KZnVuY3Rpb24gc29ydFRhYmxlKGNvbHVtbikgew0KICAgIC8vY29uc29sZS5sb2coY29sdW1tKTsNCiAgICBpZiAoY29sdW1uID09IENPTFVNTl9UT19TT1JUKSB7DQogICAgICAgIHJldHVybjsNCiAgICB9DQogICAgdmFyIHRhYmxlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnRlbnRfdGFibGUiKTsNCiAgICB2YXIgdGFibGVIZWFkID0gdGFibGUuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlRSIilbMF07DQogICAgdmFyIHRhYmxlSXRlbXMgPSB0YWJsZUhlYWQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlREIik7DQogICAgdmFyIHNvcnRPYmogPSBuZXcgT2JqZWN0KCk7DQogICAgdmFyIHgsIHhWYWx1ZTsNCiAgICB2YXIgdGFibGVIZWFkZXI7DQogICAgdmFyIHNvcnRCeVN0cmluZyA9IGZhbHNlOw0KICAgIGlmIChjb2x1bW4gPiAwICYmIENPTFVNTl9UT19TT1JUID4gMCkgew0KICAgICAgICB0YWJsZUl0ZW1zW0NPTFVNTl9UT19TT1JUXS5jbGFzc05hbWUgPSAicG9pbnRlciI7DQogICAgICAgIHRhYmxlSXRlbXNbY29sdW1uXS5jbGFzc05hbWUgPSAic29ydFRoaXMiOw0KICAgIH0NCiAgICBDT0xVTU5fVE9fU09SVCA9IGNvbHVtbjsNCiAgICB2YXIgcm93cyA9IHRhYmxlLnJvd3M7DQogICAgaWYgKHJvd3NbMV0gIT0gdW5kZWZpbmVkKSB7DQogICAgICAgIHRhYmxlSGVhZGVyID0gcm93c1swXTsNCiAgICAgICAgeCA9IHJvd3NbMV0uZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlREIilbY29sdW1uXTsNCiAgICAgICAgZm9yIChpID0gMTsgaSA8IHJvd3MubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgICAgIHggPSByb3dzW2ldLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJURCIpW2NvbHVtbl07DQogICAgICAgICAgICBzd2l0Y2ggKHguY2hpbGROb2Rlc1swXS50YWdOYW1lLnRvTG93ZXJDYXNlKCkpIHsNCiAgICAgICAgICAgICAgICBjYXNlICJpbnB1dCI6DQogICAgICAgICAgICAgICAgICAgIHhWYWx1ZSA9IHguZ2V0RWxlbWVudHNCeVRhZ05hbWUoIklOUFVUIilbMF0udmFsdWUudG9Mb3dlckNhc2UoKTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAicCI6DQogICAgICAgICAgICAgICAgICAgIHhWYWx1ZSA9IHguZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlAiKVswXS5pbm5lclRleHQudG9Mb3dlckNhc2UoKTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgZGVmYXVsdDogY29uc29sZS5sb2coeC5jaGlsZE5vZGVzWzBdLnRhZ05hbWUpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgaWYgKHhWYWx1ZSA9PSAiIiB8fCB4VmFsdWUgPT0gTmFOKSB7DQogICAgICAgICAgICAgICAgeFZhbHVlID0gaTsNCiAgICAgICAgICAgICAgICBzb3J0T2JqW2ldID0gcm93c1tpXTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgICAgIHN3aXRjaCAoaXNOYU4oeFZhbHVlKSkgew0KICAgICAgICAgICAgICAgICAgICBjYXNlIGZhbHNlOg0KICAgICAgICAgICAgICAgICAgICAgICAgeFZhbHVlID0gcGFyc2VGbG9hdCh4VmFsdWUpOw0KICAgICAgICAgICAgICAgICAgICAgICAgc29ydE9ialt4VmFsdWVdID0gcm93c1tpXTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgICAgICBjYXNlIHRydWU6DQogICAgICAgICAgICAgICAgICAgICAgICBzb3J0QnlTdHJpbmcgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgc29ydE9ialt4VmFsdWUudG9Mb3dlckNhc2UoKSArIGldID0gcm93c1tpXTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KICAgICAgICB3aGlsZSAodGFibGUuZmlyc3RDaGlsZCkgew0KICAgICAgICAgICAgdGFibGUucmVtb3ZlQ2hpbGQodGFibGUuZmlyc3RDaGlsZCk7DQogICAgICAgIH0NCiAgICAgICAgdmFyIHNvcnRWYWx1ZXMgPSBnZXRPYmpLZXlzKHNvcnRPYmopOw0KICAgICAgICBpZiAoc29ydEJ5U3RyaW5nID09IHRydWUpIHsNCiAgICAgICAgICAgIHNvcnRWYWx1ZXMuc29ydCgpOw0KICAgICAgICAgICAgY29uc29sZS5sb2coc29ydFZhbHVlcyk7DQogICAgICAgIH0NCiAgICAgICAgZWxzZSB7DQogICAgICAgICAgICBmdW5jdGlvbiBzb3J0RmxvYXQoYSwgYikgew0KICAgICAgICAgICAgICAgIHJldHVybiBhIC0gYjsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIHNvcnRWYWx1ZXMuc29ydChzb3J0RmxvYXQpOw0KICAgICAgICB9DQogICAgICAgIHRhYmxlLmFwcGVuZENoaWxkKHRhYmxlSGVhZGVyKTsNCiAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBzb3J0VmFsdWVzLmxlbmd0aDsgaSsrKSB7DQogICAgICAgICAgICB0YWJsZS5hcHBlbmRDaGlsZChzb3J0T2JqW3NvcnRWYWx1ZXNbaV1dKTsNCiAgICAgICAgfQ0KICAgIH0NCiAgICByZXR1cm47DQp9DQpmdW5jdGlvbiBjcmVhdGVTZWFyY2hPYmooKSB7DQogICAgU0VBUkNIX01BUFBJTkcgPSBuZXcgT2JqZWN0KCk7DQogICAgdmFyIGRhdGEgPSBTRVJWRVJbInhlcGciXVsiZXBnTWFwcGluZyJdOw0KICAgIHZhciBjaGFubmVscyA9IGdldE9iaktleXMoZGF0YSk7DQogICAgdmFyIGNoYW5uZWxLZXlzID0gWyJ4LWFjdGl2ZSIsICJ4LWNoYW5uZWxJRCIsICJ4LW5hbWUiLCAiX2ZpbGUubTN1Lm5hbWUiLCAieC1ncm91cC10aXRsZSIsICJ4LXhtbHR2LWZpbGUiXTsNCiAgICBjaGFubmVscy5mb3JFYWNoKGZ1bmN0aW9uIChpZCkgew0KICAgICAgICBjaGFubmVsS2V5cy5mb3JFYWNoKGZ1bmN0aW9uIChrZXkpIHsNCiAgICAgICAgICAgIGlmIChrZXkgPT0gIngtYWN0aXZlIikgew0KICAgICAgICAgICAgICAgIHN3aXRjaCAoZGF0YVtpZF1ba2V5XSkgew0KICAgICAgICAgICAgICAgICAgICBjYXNlIHRydWU6DQogICAgICAgICAgICAgICAgICAgICAgICBTRUFSQ0hfTUFQUElOR1tpZF0gPSAib25saW5lICI7DQogICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICAgICAgY2FzZSBmYWxzZToNCiAgICAgICAgICAgICAgICAgICAgICAgIFNFQVJDSF9NQVBQSU5HW2lkXSA9ICJvZmZsaW5lICI7DQogICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9DQogICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICBpZiAoa2V5ID09ICJ4LXhtbHR2LWZpbGUiKSB7DQogICAgICAgICAgICAgICAgICAgIHZhciB4bWx0dkZpbGUgPSBnZXRWYWx1ZUZyb21Qcm92aWRlckZpbGUoZGF0YVtpZF1ba2V5XSwgInhtbHR2IiwgIm5hbWUiKTsNCiAgICAgICAgICAgICAgICAgICAgaWYgKHhtbHR2RmlsZSAhPSB1bmRlZmluZWQpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIFNFQVJDSF9NQVBQSU5HW2lkXSA9IFNFQVJDSF9NQVBQSU5HW2lkXSArIHhtbHR2RmlsZSArICIgIjsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICAgICAgU0VBUkNIX01BUFBJTkdbaWRdID0gU0VBUkNIX01BUFBJTkdbaWRdICsgZGF0YVtpZF1ba2V5XSArICIgIjsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9DQogICAgICAgIH0pOw0KICAgIH0pOw0KICAgIHJldHVybjsNCn0NCmZ1bmN0aW9uIHNlYXJjaEluTWFwcGluZygpIHsNCiAgICB2YXIgc2VhcmNoVmFsdWUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic2VhcmNoTWFwcGluZyIpLnZhbHVlOw0KICAgIHZhciB0cnMgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29udGVudF90YWJsZSIpLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJUUiIpOw0KICAgIGZvciAodmFyIGkgPSAxOyBpIDwgdHJzLmxlbmd0aDsgKytpKSB7DQogICAgICAgIHZhciBpZCA9IHRyc1tpXS5nZXRBdHRyaWJ1dGUoImlkIik7DQogICAgICAgIHZhciBlbGVtZW50ID0gU0VBUkNIX01BUFBJTkdbaWRdOw0KICAgICAgICBzd2l0Y2ggKGVsZW1lbnQudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhzZWFyY2hWYWx1ZS50b0xvd2VyQ2FzZSgpKSkgew0KICAgICAgICAgICAgY2FzZSB0cnVlOg0KICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5zdHlsZS5kaXNwbGF5ID0gIiI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlIGZhbHNlOg0KICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5zdHlsZS5kaXNwbGF5ID0gIm5vbmUiOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICB9DQogICAgfQ0KICAgIHJldHVybjsNCn0NCmZ1bmN0aW9uIGNhbGN1bGF0ZVdyYXBwZXJIZWlnaHQoKSB7DQogICAgaWYgKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJib3gtd3JhcHBlciIpKSB7DQogICAgICAgIHZhciBlbG0gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYm94LXdyYXBwZXIiKTsNCiAgICAgICAgdmFyIGRpdnMgPSBuZXcgQXJyYXkoIm15U3RyZWFtc0JveCIsICJjbGllbnRJbmZvIiwgImNvbnRlbnQiKTsNCiAgICAgICAgdmFyIGVsZW1lbnRzSGVpZ2h0ID0gMCAtIGVsbS5vZmZzZXRIZWlnaHQ7DQogICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgZGl2cy5sZW5ndGg7IGkrKykgew0KICAgICAgICAgICAgZWxlbWVudHNIZWlnaHQgPSBlbGVtZW50c0hlaWdodCArIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGRpdnNbaV0pLm9mZnNldEhlaWdodDsNCiAgICAgICAgfQ0KICAgICAgICBlbG0uc3R5bGUuaGVpZ2h0ID0gd2luZG93LmlubmVySGVpZ2h0IC0gZWxlbWVudHNIZWlnaHQgKyAicHgiOw0KICAgIH0NCiAgICByZXR1cm47DQp9DQpmdW5jdGlvbiBjaGFuZ2VDaGFubmVsTnVtYmVyKGVsZW1lbnQpIHsNCiAgICB2YXIgZGJJRCA9IGVsZW1lbnQucGFyZW50Tm9kZS5wYXJlbnROb2RlLmlkOw0KICAgIHZhciBuZXdOdW1iZXIgPSBwYXJzZUZsb2F0KGVsZW1lbnQudmFsdWUpOw0KICAgIHZhciBjaGFubmVsTnVtYmVycyA9IFtdOw0KICAgIHZhciBkYXRhID0gU0VSVkVSWyJ4ZXBnIl1bImVwZ01hcHBpbmciXTsNCiAgICB2YXIgY2hhbm5lbHMgPSBnZXRPYmpLZXlzKGRhdGEpOw0KICAgIGlmIChpc05hTihuZXdOdW1iZXIpKSB7DQogICAgICAgIGFsZXJ0KCJ7ey5hbGVydC5pbnZhbGlkQ2hhbm5lbE51bWJlcn19Iik7DQogICAgICAgIHJldHVybjsNCiAgICB9DQogICAgY2hhbm5lbHMuZm9yRWFjaChmdW5jdGlvbiAoaWQpIHsNCiAgICAgICAgdmFyIGNoYW5uZWxOdW1iZXIgPSBwYXJzZUZsb2F0KGRhdGFbaWRdWyJ4LWNoYW5uZWxJRCJdKTsNCiAgICAgICAgY2hhbm5lbE51bWJlcnMucHVzaChjaGFubmVsTnVtYmVyKTsNCiAgICB9KTsNCiAgICBmb3IgKHZhciBpID0gMDsgaSA8IGNoYW5uZWxOdW1iZXJzLmxlbmd0aDsgaSsrKSB7DQogICAgICAgIGlmIChjaGFubmVsTnVtYmVycy5pbmRleE9mKG5ld051bWJlcikgPT0gLTEpIHsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICB9DQogICAgICAgIGlmIChNYXRoLmZsb29yKG5ld051bWJlcikgPT0gbmV3TnVtYmVyKSB7DQogICAgICAgICAgICBuZXdOdW1iZXIgPSBuZXdOdW1iZXIgKyAxOw0KICAgICAgICB9DQogICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgbmV3TnVtYmVyID0gbmV3TnVtYmVyICsgMC4xOw0KICAgICAgICAgICAgbmV3TnVtYmVyLnRvRml4ZWQoMSk7DQogICAgICAgICAgICBuZXdOdW1iZXIgPSBNYXRoLnJvdW5kKG5ld051bWJlciAqIDEwKSAvIDEwOw0KICAgICAgICB9DQogICAgfQ0KICAgIGRhdGFbZGJJRF1bIngtY2hhbm5lbElEIl0gPSBuZXdOdW1iZXIudG9TdHJpbmcoKTsNCiAgICBlbGVtZW50LnZhbHVlID0gbmV3TnVtYmVyOw0KICAgIGNvbnNvbGUubG9nKGRhdGFbZGJJRF1bIngtY2hhbm5lbElEIl0pOw0KICAgIGlmIChDT0xVTU5fVE9fU09SVCA9PSAxKSB7DQogICAgICAgIENPTFVNTl9UT19TT1JUID0gLTE7DQogICAgICAgIHNvcnRUYWJsZSgxKTsNCiAgICB9DQogICAgcmV0dXJuOw0KfQ0KZnVuY3Rpb24gYmFja3VwKCkgew0KICAgIHZhciBkYXRhID0gbmV3IE9iamVjdCgpOw0KICAgIGNvbnNvbGUubG9nKCJCYWNrdXAgZGF0YSIpOw0KICAgIHZhciBjbWQgPSAieHRldmVCYWNrdXAiOw0KICAgIGNvbnNvbGUubG9nKCJTRU5EIFRPIFNFUlZFUiIpOw0KICAgIGNvbnNvbGUubG9nKGRhdGEpOw0KICAgIHZhciBzZXJ2ZXIgPSBuZXcgU2VydmVyKGNtZCk7DQogICAgc2VydmVyLnJlcXVlc3QoZGF0YSk7DQogICAgcmV0dXJuOw0KfQ0KZnVuY3Rpb24gdG9nZ2xlQ2hhbm5lbFN0YXR1cyhpZCkgew0KICAgIHZhciBlbGVtZW50Ow0KICAgIHZhciBzdGF0dXM7DQogICAgaWYgKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJhY3RpdmUiKSkgew0KICAgICAgICB2YXIgY2hlY2tib3ggPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYWN0aXZlIik7DQogICAgICAgIHN0YXR1cyA9IChjaGVja2JveCkuY2hlY2tlZDsNCiAgICB9DQogICAgdmFyIGlkcyA9IGdldEFsbFNlbGVjdGVkQ2hhbm5lbHMoKTsNCiAgICBpZiAoaWRzLmxlbmd0aCA9PSAwKSB7DQogICAgICAgIGlkcy5wdXNoKGlkKTsNCiAgICB9DQogICAgaWRzLmZvckVhY2goZnVuY3Rpb24gKGlkKSB7DQogICAgICAgIHZhciBjaGFubmVsID0gU0VSVkVSWyJ4ZXBnIl1bImVwZ01hcHBpbmciXVtpZF07DQogICAgICAgIGNoYW5uZWxbIngtYWN0aXZlIl0gPSBzdGF0dXM7DQogICAgICAgIHN3aXRjaCAoY2hhbm5lbFsieC1hY3RpdmUiXSkgew0KICAgICAgICAgICAgY2FzZSB0cnVlOg0KICAgICAgICAgICAgICAgIGlmIChjaGFubmVsWyJ4LXhtbHR2LWZpbGUiXSA9PSAiLSIgfHwgY2hhbm5lbFsieC1tYXBwaW5nIl0gPT0gIi0iKSB7DQogICAgICAgICAgICAgICAgICAgIGlmIChCVUxLX0VESVQgPT0gZmFsc2UpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGFsZXJ0KGNoYW5uZWxbIngtbmFtZSJdICsgIjogTWlzc2luZyBYTUxUViBmaWxlIC8gY2hhbm5lbCIpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2hlY2tib3guY2hlY2tlZCA9IGZhbHNlOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIGNoYW5uZWxbIngtYWN0aXZlIl0gPSBmYWxzZTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlIGZhbHNlOg0KICAgICAgICAgICAgICAgIC8vIGNvZGUuLi4NCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgfQ0KICAgICAgICBpZiAoY2hhbm5lbFsieC1hY3RpdmUiXSA9PSBmYWxzZSkgew0KICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpLmNsYXNzTmFtZSA9ICJub3RBY3RpdmVFUEciOw0KICAgICAgICB9DQogICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpLmNsYXNzTmFtZSA9ICJhY3RpdmVFUEciOw0KICAgICAgICB9DQogICAgfSk7DQp9DQpmdW5jdGlvbiByZXN0b3JlKCkgew0KICAgIGlmIChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndXBsb2FkJykpIHsNCiAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3VwbG9hZCcpLnJlbW92ZSgpOw0KICAgIH0NCiAgICB2YXIgcmVzdG9yZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIklOUFVUIik7DQogICAgcmVzdG9yZS5zZXRBdHRyaWJ1dGUoInR5cGUiLCAiZmlsZSIpOw0KICAgIHJlc3RvcmUuc2V0QXR0cmlidXRlKCJjbGFzcyIsICJub3RWaXNpYmxlIik7DQogICAgcmVzdG9yZS5zZXRBdHRyaWJ1dGUoIm5hbWUiLCAiIik7DQogICAgcmVzdG9yZS5pZCA9ICJ1cGxvYWQiOw0KICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQocmVzdG9yZSk7DQogICAgcmVzdG9yZS5jbGljaygpOw0KICAgIHJlc3RvcmUub25jaGFuZ2UgPSBmdW5jdGlvbiAoKSB7DQogICAgICAgIHZhciBmaWxlbmFtZSA9IHJlc3RvcmUuZmlsZXNbMF0ubmFtZTsNCiAgICAgICAgdmFyIGNoZWNrID0gY29uZmlybSgiRmlsZTogIiArIGZpbGVuYW1lICsgIlxue3suY29uZmlybS5yZXN0b3JlfX0iKTsNCiAgICAgICAgaWYgKGNoZWNrID09IHRydWUpIHsNCiAgICAgICAgICAgIHZhciByZWFkZXIgPSBuZXcgRmlsZVJlYWRlcigpOw0KICAgICAgICAgICAgdmFyIGZpbGUgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCdpbnB1dFt0eXBlPWZpbGVdJykuZmlsZXNbMF07DQogICAgICAgICAgICBpZiAoZmlsZSkgew0KICAgICAgICAgICAgICAgIHJlYWRlci5yZWFkQXNEYXRhVVJMKGZpbGUpOw0KICAgICAgICAgICAgICAgIHJlYWRlci5vbmxvYWQgPSBmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKHJlYWRlci5yZXN1bHQpOw0KICAgICAgICAgICAgICAgICAgICB2YXIgZGF0YSA9IG5ldyBPYmplY3QoKTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGNtZCA9ICJ4dGV2ZVJlc3RvcmUiOw0KICAgICAgICAgICAgICAgICAgICBkYXRhWyJiYXNlNjQiXSA9IHJlYWRlci5yZXN1bHQ7DQogICAgICAgICAgICAgICAgICAgIHZhciBzZXJ2ZXIgPSBuZXcgU2VydmVyKGNtZCk7DQogICAgICAgICAgICAgICAgICAgIHNlcnZlci5yZXF1ZXN0KGRhdGEpOw0KICAgICAgICAgICAgICAgIH07DQogICAgICAgICAgICB9DQogICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICBhbGVydCgiRmlsZSBjb3VsZCBub3QgYmUgbG9hZGVkIik7DQogICAgICAgICAgICB9DQogICAgICAgICAgICByZXN0b3JlLnJlbW92ZSgpOw0KICAgICAgICAgICAgcmV0dXJuOw0KICAgICAgICB9DQogICAgfTsNCiAgICByZXR1cm47DQp9DQpmdW5jdGlvbiB1cGxvYWRMb2dvKCkgew0KICAgIGlmIChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndXBsb2FkJykpIHsNCiAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3VwbG9hZCcpLnJlbW92ZSgpOw0KICAgIH0NCiAgICB2YXIgdXBsb2FkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiSU5QVVQiKTsNCiAgICB1cGxvYWQuc2V0QXR0cmlidXRlKCJ0eXBlIiwgImZpbGUiKTsNCiAgICB1cGxvYWQuc2V0QXR0cmlidXRlKCJjbGFzcyIsICJub3RWaXNpYmxlIik7DQogICAgdXBsb2FkLnNldEF0dHJpYnV0ZSgibmFtZSIsICIiKTsNCiAgICB1cGxvYWQuaWQgPSAidXBsb2FkIjsNCiAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHVwbG9hZCk7DQogICAgdXBsb2FkLmNsaWNrKCk7DQogICAgdXBsb2FkLm9uYmx1ciA9IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgYWxlcnQoKTsNCiAgICB9Ow0KICAgIHVwbG9hZC5vbmNoYW5nZSA9IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgdmFyIGZpbGVuYW1lID0gdXBsb2FkLmZpbGVzWzBdLm5hbWU7DQogICAgICAgIHZhciByZWFkZXIgPSBuZXcgRmlsZVJlYWRlcigpOw0KICAgICAgICB2YXIgZmlsZSA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ2lucHV0W3R5cGU9ZmlsZV0nKS5maWxlc1swXTsNCiAgICAgICAgaWYgKGZpbGUpIHsNCiAgICAgICAgICAgIHJlYWRlci5yZWFkQXNEYXRhVVJMKGZpbGUpOw0KICAgICAgICAgICAgcmVhZGVyLm9ubG9hZCA9IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhyZWFkZXIucmVzdWx0KTsNCiAgICAgICAgICAgICAgICB2YXIgZGF0YSA9IG5ldyBPYmplY3QoKTsNCiAgICAgICAgICAgICAgICB2YXIgY21kID0gInVwbG9hZExvZ28iOw0KICAgICAgICAgICAgICAgIGRhdGFbImJhc2U2NCJdID0gcmVhZGVyLnJlc3VsdDsNCiAgICAgICAgICAgICAgICBkYXRhWyJmaWxlbmFtZSJdID0gZmlsZS5uYW1lOw0KICAgICAgICAgICAgICAgIHZhciBzZXJ2ZXIgPSBuZXcgU2VydmVyKGNtZCk7DQogICAgICAgICAgICAgICAgc2VydmVyLnJlcXVlc3QoZGF0YSk7DQogICAgICAgICAgICAgICAgdmFyIHVwZGF0ZUxvZ28gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndXBkYXRlLWljb24nKTsNCiAgICAgICAgICAgICAgICB1cGRhdGVMb2dvLmNoZWNrZWQgPSBmYWxzZTsNCiAgICAgICAgICAgICAgICB1cGRhdGVMb2dvLmNsYXNzTmFtZSA9ICJjaGFuZ2VkIjsNCiAgICAgICAgICAgIH07DQogICAgICAgIH0NCiAgICAgICAgZWxzZSB7DQogICAgICAgICAgICBhbGVydCgiRmlsZSBjb3VsZCBub3QgYmUgbG9hZGVkIik7DQogICAgICAgIH0NCiAgICAgICAgdXBsb2FkLnJlbW92ZSgpOw0KICAgICAgICByZXR1cm47DQogICAgfTsNCn0NCmZ1bmN0aW9uIGNoZWNrVW5kbyhrZXkpIHsNCiAgICBzd2l0Y2ggKGtleSkgew0KICAgICAgICBjYXNlICJlcGdNYXBwaW5nIjoNCiAgICAgICAgICAgIGlmIChVTkRPLmhhc093blByb3BlcnR5KGtleSkpIHsNCiAgICAgICAgICAgICAgICBTRVJWRVJbInhlcGciXVtrZXldID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeShVTkRPW2tleV0pKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgICAgIFVORE9ba2V5XSA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkoU0VSVkVSWyJ4ZXBnIl1ba2V5XSkpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICBicmVhazsNCiAgICB9DQogICAgcmV0dXJuOw0KfQ0KZnVuY3Rpb24gc29ydFNlbGVjdChlbGVtKSB7DQogICAgdmFyIHRtcEFyeSA9IFtdOw0KICAgIHZhciBzZWxlY3RlZFZhbHVlID0gZWxlbVtlbGVtLnNlbGVjdGVkSW5kZXhdLnZhbHVlOw0KICAgIGZvciAodmFyIGkgPSAwOyBpIDwgZWxlbS5vcHRpb25zLmxlbmd0aDsgaSsrKQ0KICAgICAgICB0bXBBcnkucHVzaChlbGVtLm9wdGlvbnNbaV0pOw0KICAgIHRtcEFyeS5zb3J0KGZ1bmN0aW9uIChhLCBiKSB7IHJldHVybiAoYS50ZXh0IDwgYi50ZXh0KSA/IC0xIDogMTsgfSk7DQogICAgd2hpbGUgKGVsZW0ub3B0aW9ucy5sZW5ndGggPiAwKQ0KICAgICAgICBlbGVtLm9wdGlvbnNbMF0gPSBudWxsOw0KICAgIHZhciBuZXdTZWxlY3RlZEluZGV4ID0gMDsNCiAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRtcEFyeS5sZW5ndGg7IGkrKykgew0KICAgICAgICBlbGVtLm9wdGlvbnNbaV0gPSB0bXBBcnlbaV07DQogICAgICAgIGlmIChlbGVtLm9wdGlvbnNbaV0udmFsdWUgPT0gc2VsZWN0ZWRWYWx1ZSkNCiAgICAgICAgICAgIG5ld1NlbGVjdGVkSW5kZXggPSBpOw0KICAgIH0NCiAgICBlbGVtLnNlbGVjdGVkSW5kZXggPSBuZXdTZWxlY3RlZEluZGV4OyAvLyBTZXQgbmV3IHNlbGVjdGVkIGluZGV4IGFmdGVyIHNvcnRpbmcNCiAgICByZXR1cm47DQp9DQpmdW5jdGlvbiB1cGRhdGVMb2coKSB7DQogICAgY29uc29sZS5sb2coIlRPS0VOIik7DQogICAgdmFyIHNlcnZlciA9IG5ldyBTZXJ2ZXIoInVwZGF0ZUxvZyIpOw0KICAgIHNlcnZlci5yZXF1ZXN0KG5ldyBPYmplY3QoKSk7DQp9DQo=" - webUI["html/js/network_ts.js"] = "dmFyIFNlcnZlciA9IC8qKiBAY2xhc3MgKi8gKGZ1bmN0aW9uICgpIHsNCiAgICBmdW5jdGlvbiBTZXJ2ZXIoY21kKSB7DQogICAgICAgIHRoaXMuY21kID0gY21kOw0KICAgIH0NCiAgICBTZXJ2ZXIucHJvdG90eXBlLnJlcXVlc3QgPSBmdW5jdGlvbiAoZGF0YSkgew0KICAgICAgICBpZiAoU0VSVkVSX0NPTk5FQ1RJT04gPT0gdHJ1ZSkgew0KICAgICAgICAgICAgcmV0dXJuOw0KICAgICAgICB9DQogICAgICAgIFNFUlZFUl9DT05ORUNUSU9OID0gdHJ1ZTsNCiAgICAgICAgY29uc29sZS5sb2coZGF0YSk7DQogICAgICAgIGlmICh0aGlzLmNtZCAhPSAidXBkYXRlTG9nIikgew0KICAgICAgICAgICAgc2hvd0VsZW1lbnQoImxvYWRpbmciLCB0cnVlKTsNCiAgICAgICAgICAgIFVORE8gPSBuZXcgT2JqZWN0KCk7DQogICAgICAgIH0NCiAgICAgICAgc3dpdGNoICh3aW5kb3cubG9jYXRpb24ucHJvdG9jb2wpIHsNCiAgICAgICAgICAgIGNhc2UgImh0dHA6IjoNCiAgICAgICAgICAgICAgICB0aGlzLnByb3RvY29sID0gIndzOi8vIjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImh0dHBzOiI6DQogICAgICAgICAgICAgICAgdGhpcy5wcm90b2NvbCA9ICJ3c3M6Ly8iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICB9DQogICAgICAgIHZhciB1cmwgPSB0aGlzLnByb3RvY29sICsgd2luZG93LmxvY2F0aW9uLmhvc3RuYW1lICsgIjoiICsgd2luZG93LmxvY2F0aW9uLnBvcnQgKyAiL2RhdGEvIiArICI/VG9rZW49IiArIGdldENvb2tpZSgiVG9rZW4iKTsNCiAgICAgICAgZGF0YVsiY21kIl0gPSB0aGlzLmNtZDsNCiAgICAgICAgdmFyIHdzID0gbmV3IFdlYlNvY2tldCh1cmwpOw0KICAgICAgICB3cy5vbm9wZW4gPSBmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICBXU19BVkFJTEFCTEUgPSB0cnVlOw0KICAgICAgICAgICAgY29uc29sZS5sb2coIlJFUVVFU1QgKEpTKToiKTsNCiAgICAgICAgICAgIGNvbnNvbGUubG9nKGRhdGEpOw0KICAgICAgICAgICAgY29uc29sZS5sb2coIlJFUVVFU1Q6IChKU09OKSIpOw0KICAgICAgICAgICAgY29uc29sZS5sb2coSlNPTi5zdHJpbmdpZnkoZGF0YSkpOw0KICAgICAgICAgICAgdGhpcy5zZW5kKEpTT04uc3RyaW5naWZ5KGRhdGEpKTsNCiAgICAgICAgfTsNCiAgICAgICAgd3Mub25lcnJvciA9IGZ1bmN0aW9uIChlKSB7DQogICAgICAgICAgICBjb25zb2xlLmxvZygiTm8gd2Vic29ja2V0IGNvbm5lY3Rpb24gdG8geFRlVmUgY291bGQgYmUgZXN0YWJsaXNoZWQuIENoZWNrIHlvdXIgbmV0d29yayBjb25maWd1cmF0aW9uLiIpOw0KICAgICAgICAgICAgU0VSVkVSX0NPTk5FQ1RJT04gPSBmYWxzZTsNCiAgICAgICAgICAgIGlmIChXU19BVkFJTEFCTEUgPT0gZmFsc2UpIHsNCiAgICAgICAgICAgICAgICBhbGVydCgiTm8gd2Vic29ja2V0IGNvbm5lY3Rpb24gdG8geFRlVmUgY291bGQgYmUgZXN0YWJsaXNoZWQuIENoZWNrIHlvdXIgbmV0d29yayBjb25maWd1cmF0aW9uLiIpOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9Ow0KICAgICAgICB3cy5vbm1lc3NhZ2UgPSBmdW5jdGlvbiAoZSkgew0KICAgICAgICAgICAgU0VSVkVSX0NPTk5FQ1RJT04gPSBmYWxzZTsNCiAgICAgICAgICAgIHNob3dFbGVtZW50KCJsb2FkaW5nIiwgZmFsc2UpOw0KICAgICAgICAgICAgY29uc29sZS5sb2coIlJFU1BPTlNFOiIpOw0KICAgICAgICAgICAgdmFyIHJlc3BvbnNlID0gSlNPTi5wYXJzZShlLmRhdGEpOw0KICAgICAgICAgICAgY29uc29sZS5sb2cocmVzcG9uc2UpOw0KICAgICAgICAgICAgaWYgKHJlc3BvbnNlLmhhc093blByb3BlcnR5KCJ0b2tlbiIpKSB7DQogICAgICAgICAgICAgICAgZG9jdW1lbnQuY29va2llID0gIlRva2VuPSIgKyByZXNwb25zZVsidG9rZW4iXTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGlmIChyZXNwb25zZVsic3RhdHVzIl0gPT0gZmFsc2UpIHsNCiAgICAgICAgICAgICAgICBhbGVydChyZXNwb25zZVsiZXJyIl0pOw0KICAgICAgICAgICAgICAgIGlmIChyZXNwb25zZS5oYXNPd25Qcm9wZXJ0eSgicmVsb2FkIikpIHsNCiAgICAgICAgICAgICAgICAgICAgbG9jYXRpb24ucmVsb2FkKCk7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIHJldHVybjsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGlmIChyZXNwb25zZS5oYXNPd25Qcm9wZXJ0eSgibG9nb1VSTCIpKSB7DQogICAgICAgICAgICAgICAgdmFyIGRpdiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjaGFubmVsLWljb24iKTsNCiAgICAgICAgICAgICAgICBkaXYudmFsdWUgPSByZXNwb25zZVsibG9nb1VSTCJdOw0KICAgICAgICAgICAgICAgIGRpdi5jbGFzc05hbWUgPSAiY2hhbmdlZCI7DQogICAgICAgICAgICAgICAgcmV0dXJuOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgc3dpdGNoIChkYXRhWyJjbWQiXSkgew0KICAgICAgICAgICAgICAgIGNhc2UgInVwZGF0ZUxvZyI6DQogICAgICAgICAgICAgICAgICAgIFNFUlZFUlsibG9nIl0gPSByZXNwb25zZVsibG9nIl07DQogICAgICAgICAgICAgICAgICAgIGlmIChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29udGVudF9sb2ciKSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgc2hvd0xvZ3MoZmFsc2UpOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIHJldHVybjsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgICAgICAgICAgU0VSVkVSID0gbmV3IE9iamVjdCgpOw0KICAgICAgICAgICAgICAgICAgICBTRVJWRVIgPSByZXNwb25zZTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBpZiAocmVzcG9uc2UuaGFzT3duUHJvcGVydHkoIm9wZW5NZW51IikpIHsNCiAgICAgICAgICAgICAgICB2YXIgbWVudSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHJlc3BvbnNlWyJvcGVuTWVudSJdKTsNCiAgICAgICAgICAgICAgICBtZW51LmNsaWNrKCk7DQogICAgICAgICAgICAgICAgc2hvd0VsZW1lbnQoInBvcHVwIiwgZmFsc2UpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgaWYgKHJlc3BvbnNlLmhhc093blByb3BlcnR5KCJvcGVuTGluayIpKSB7DQogICAgICAgICAgICAgICAgd2luZG93LmxvY2F0aW9uID0gcmVzcG9uc2VbIm9wZW5MaW5rIl07DQogICAgICAgICAgICB9DQogICAgICAgICAgICBpZiAocmVzcG9uc2UuaGFzT3duUHJvcGVydHkoImFsZXJ0IikpIHsNCiAgICAgICAgICAgICAgICBhbGVydChyZXNwb25zZVsiYWxlcnQiXSk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBpZiAocmVzcG9uc2UuaGFzT3duUHJvcGVydHkoInJlbG9hZCIpKSB7DQogICAgICAgICAgICAgICAgbG9jYXRpb24ucmVsb2FkKCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBpZiAocmVzcG9uc2UuaGFzT3duUHJvcGVydHkoIndpemFyZCIpKSB7DQogICAgICAgICAgICAgICAgY3JlYXRlTGF5b3V0KCk7DQogICAgICAgICAgICAgICAgY29uZmlndXJhdGlvbldpemFyZFtyZXNwb25zZVsid2l6YXJkIl1dLmNyZWF0ZVdpemFyZCgpOw0KICAgICAgICAgICAgICAgIHJldHVybjsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGNyZWF0ZUxheW91dCgpOw0KICAgICAgICB9Ow0KICAgIH07DQogICAgcmV0dXJuIFNlcnZlcjsNCn0oKSk7DQpmdW5jdGlvbiBnZXRDb29raWUobmFtZSkgew0KICAgIHZhciB2YWx1ZSA9ICI7ICIgKyBkb2N1bWVudC5jb29raWU7DQogICAgdmFyIHBhcnRzID0gdmFsdWUuc3BsaXQoIjsgIiArIG5hbWUgKyAiPSIpOw0KICAgIGlmIChwYXJ0cy5sZW5ndGggPT0gMikNCiAgICAgICAgcmV0dXJuIHBhcnRzLnBvcCgpLnNwbGl0KCI7Iikuc2hpZnQoKTsNCn0NCg==" + webUI["html/js/logs_ts.js"] = "Y2xhc3MgTG9nIHsNCiAgICBjcmVhdGVMb2coZW50cnkpIHsNCiAgICAgICAgdmFyIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJQUkUiKTsNCiAgICAgICAgaWYgKGVudHJ5LmluZGV4T2YoIldBUk5JTkciKSAhPSAtMSkgew0KICAgICAgICAgICAgZWxlbWVudC5jbGFzc05hbWUgPSAid2FybmluZ01zZyI7DQogICAgICAgIH0NCiAgICAgICAgaWYgKGVudHJ5LmluZGV4T2YoIkVSUk9SIikgIT0gLTEpIHsNCiAgICAgICAgICAgIGVsZW1lbnQuY2xhc3NOYW1lID0gImVycm9yTXNnIjsNCiAgICAgICAgfQ0KICAgICAgICBpZiAoZW50cnkuaW5kZXhPZigiREVCVUciKSAhPSAtMSkgew0KICAgICAgICAgICAgZWxlbWVudC5jbGFzc05hbWUgPSAiZGVidWdNc2ciOw0KICAgICAgICB9DQogICAgICAgIGVsZW1lbnQuaW5uZXJIVE1MID0gZW50cnk7DQogICAgICAgIHJldHVybiBlbGVtZW50Ow0KICAgIH0NCn0NCmZ1bmN0aW9uIHNob3dMb2dzKGJvdHRvbSkgew0KICAgIHZhciBsb2cgPSBuZXcgTG9nKCk7DQogICAgdmFyIGxvZ3MgPSBTRVJWRVJbImxvZyJdWyJsb2ciXTsNCiAgICB2YXIgZGl2ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnRlbnRfbG9nIik7DQogICAgZGl2LmlubmVySFRNTCA9ICIiOw0KICAgIHZhciBrZXlzID0gZ2V0T2JqS2V5cyhsb2dzKTsNCiAgICBrZXlzLmZvckVhY2gobG9nSUQgPT4gew0KICAgICAgICB2YXIgZW50cnkgPSBsb2cuY3JlYXRlTG9nKGxvZ3NbbG9nSURdKTsNCiAgICAgICAgZGl2LmFwcGVuZChlbnRyeSk7DQogICAgfSk7DQogICAgc2V0VGltZW91dChmdW5jdGlvbiAoKSB7DQogICAgICAgIGlmIChib3R0b20gPT0gdHJ1ZSkgew0KICAgICAgICAgICAgdmFyIHdyYXBwZXIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYm94LXdyYXBwZXIiKTsNCiAgICAgICAgICAgIHdyYXBwZXIuc2Nyb2xsVG9wID0gd3JhcHBlci5zY3JvbGxIZWlnaHQ7DQogICAgICAgIH0NCiAgICB9LCAxMCk7DQp9DQpmdW5jdGlvbiByZXNldExvZ3MoKSB7DQogICAgdmFyIGNtZCA9ICJyZXNldExvZ3MiOw0KICAgIHZhciBkYXRhID0gbmV3IE9iamVjdCgpOw0KICAgIHZhciBzZXJ2ZXIgPSBuZXcgU2VydmVyKGNtZCk7DQogICAgc2VydmVyLnJlcXVlc3QoZGF0YSk7DQp9DQo=" + webUI["html/js/network_ts.js"] = "Y2xhc3MgU2VydmVyIHsNCiAgICBjb25zdHJ1Y3RvcihjbWQpIHsNCiAgICAgICAgdGhpcy5jbWQgPSBjbWQ7DQogICAgfQ0KICAgIHJlcXVlc3QoZGF0YSkgew0KICAgICAgICBpZiAoU0VSVkVSX0NPTk5FQ1RJT04gPT0gdHJ1ZSkgew0KICAgICAgICAgICAgcmV0dXJuOw0KICAgICAgICB9DQogICAgICAgIFNFUlZFUl9DT05ORUNUSU9OID0gdHJ1ZTsNCiAgICAgICAgY29uc29sZS5sb2coZGF0YSk7DQogICAgICAgIGlmICh0aGlzLmNtZCAhPSAidXBkYXRlTG9nIikgew0KICAgICAgICAgICAgc2hvd0VsZW1lbnQoImxvYWRpbmciLCB0cnVlKTsNCiAgICAgICAgICAgIFVORE8gPSBuZXcgT2JqZWN0KCk7DQogICAgICAgIH0NCiAgICAgICAgc3dpdGNoICh3aW5kb3cubG9jYXRpb24ucHJvdG9jb2wpIHsNCiAgICAgICAgICAgIGNhc2UgImh0dHA6IjoNCiAgICAgICAgICAgICAgICB0aGlzLnByb3RvY29sID0gIndzOi8vIjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImh0dHBzOiI6DQogICAgICAgICAgICAgICAgdGhpcy5wcm90b2NvbCA9ICJ3c3M6Ly8iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICB9DQogICAgICAgIHZhciB1cmwgPSB0aGlzLnByb3RvY29sICsgd2luZG93LmxvY2F0aW9uLmhvc3RuYW1lICsgIjoiICsgd2luZG93LmxvY2F0aW9uLnBvcnQgKyAiL2RhdGEvIiArICI/VG9rZW49IiArIGdldENvb2tpZSgiVG9rZW4iKTsNCiAgICAgICAgZGF0YVsiY21kIl0gPSB0aGlzLmNtZDsNCiAgICAgICAgdmFyIHdzID0gbmV3IFdlYlNvY2tldCh1cmwpOw0KICAgICAgICB3cy5vbm9wZW4gPSBmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICBXU19BVkFJTEFCTEUgPSB0cnVlOw0KICAgICAgICAgICAgY29uc29sZS5sb2coIlJFUVVFU1QgKEpTKToiKTsNCiAgICAgICAgICAgIGNvbnNvbGUubG9nKGRhdGEpOw0KICAgICAgICAgICAgY29uc29sZS5sb2coIlJFUVVFU1Q6IChKU09OKSIpOw0KICAgICAgICAgICAgY29uc29sZS5sb2coSlNPTi5zdHJpbmdpZnkoZGF0YSkpOw0KICAgICAgICAgICAgdGhpcy5zZW5kKEpTT04uc3RyaW5naWZ5KGRhdGEpKTsNCiAgICAgICAgfTsNCiAgICAgICAgd3Mub25lcnJvciA9IGZ1bmN0aW9uIChlKSB7DQogICAgICAgICAgICBjb25zb2xlLmxvZygiTm8gd2Vic29ja2V0IGNvbm5lY3Rpb24gdG8geFRlVmUgY291bGQgYmUgZXN0YWJsaXNoZWQuIENoZWNrIHlvdXIgbmV0d29yayBjb25maWd1cmF0aW9uLiIpOw0KICAgICAgICAgICAgU0VSVkVSX0NPTk5FQ1RJT04gPSBmYWxzZTsNCiAgICAgICAgICAgIGlmIChXU19BVkFJTEFCTEUgPT0gZmFsc2UpIHsNCiAgICAgICAgICAgICAgICBhbGVydCgiTm8gd2Vic29ja2V0IGNvbm5lY3Rpb24gdG8geFRlVmUgY291bGQgYmUgZXN0YWJsaXNoZWQuIENoZWNrIHlvdXIgbmV0d29yayBjb25maWd1cmF0aW9uLiIpOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9Ow0KICAgICAgICB3cy5vbm1lc3NhZ2UgPSBmdW5jdGlvbiAoZSkgew0KICAgICAgICAgICAgU0VSVkVSX0NPTk5FQ1RJT04gPSBmYWxzZTsNCiAgICAgICAgICAgIHNob3dFbGVtZW50KCJsb2FkaW5nIiwgZmFsc2UpOw0KICAgICAgICAgICAgY29uc29sZS5sb2coIlJFU1BPTlNFOiIpOw0KICAgICAgICAgICAgdmFyIHJlc3BvbnNlID0gSlNPTi5wYXJzZShlLmRhdGEpOw0KICAgICAgICAgICAgY29uc29sZS5sb2cocmVzcG9uc2UpOw0KICAgICAgICAgICAgaWYgKHJlc3BvbnNlLmhhc093blByb3BlcnR5KCJ0b2tlbiIpKSB7DQogICAgICAgICAgICAgICAgZG9jdW1lbnQuY29va2llID0gIlRva2VuPSIgKyByZXNwb25zZVsidG9rZW4iXTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGlmIChyZXNwb25zZVsic3RhdHVzIl0gPT0gZmFsc2UpIHsNCiAgICAgICAgICAgICAgICBhbGVydChyZXNwb25zZVsiZXJyIl0pOw0KICAgICAgICAgICAgICAgIGlmIChyZXNwb25zZS5oYXNPd25Qcm9wZXJ0eSgicmVsb2FkIikpIHsNCiAgICAgICAgICAgICAgICAgICAgbG9jYXRpb24ucmVsb2FkKCk7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIHJldHVybjsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGlmIChyZXNwb25zZS5oYXNPd25Qcm9wZXJ0eSgibG9nb1VSTCIpKSB7DQogICAgICAgICAgICAgICAgdmFyIGRpdiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjaGFubmVsLWljb24iKTsNCiAgICAgICAgICAgICAgICBkaXYudmFsdWUgPSByZXNwb25zZVsibG9nb1VSTCJdOw0KICAgICAgICAgICAgICAgIGRpdi5jbGFzc05hbWUgPSAiY2hhbmdlZCI7DQogICAgICAgICAgICAgICAgcmV0dXJuOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgc3dpdGNoIChkYXRhWyJjbWQiXSkgew0KICAgICAgICAgICAgICAgIGNhc2UgInVwZGF0ZUxvZyI6DQogICAgICAgICAgICAgICAgICAgIFNFUlZFUlsibG9nIl0gPSByZXNwb25zZVsibG9nIl07DQogICAgICAgICAgICAgICAgICAgIGlmIChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29udGVudF9sb2ciKSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgc2hvd0xvZ3MoZmFsc2UpOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIHJldHVybjsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgICAgICAgICAgU0VSVkVSID0gbmV3IE9iamVjdCgpOw0KICAgICAgICAgICAgICAgICAgICBTRVJWRVIgPSByZXNwb25zZTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBpZiAocmVzcG9uc2UuaGFzT3duUHJvcGVydHkoIm9wZW5NZW51IikpIHsNCiAgICAgICAgICAgICAgICB2YXIgbWVudSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHJlc3BvbnNlWyJvcGVuTWVudSJdKTsNCiAgICAgICAgICAgICAgICBtZW51LmNsaWNrKCk7DQogICAgICAgICAgICAgICAgc2hvd0VsZW1lbnQoInBvcHVwIiwgZmFsc2UpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgaWYgKHJlc3BvbnNlLmhhc093blByb3BlcnR5KCJvcGVuTGluayIpKSB7DQogICAgICAgICAgICAgICAgd2luZG93LmxvY2F0aW9uID0gcmVzcG9uc2VbIm9wZW5MaW5rIl07DQogICAgICAgICAgICB9DQogICAgICAgICAgICBpZiAocmVzcG9uc2UuaGFzT3duUHJvcGVydHkoImFsZXJ0IikpIHsNCiAgICAgICAgICAgICAgICBhbGVydChyZXNwb25zZVsiYWxlcnQiXSk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBpZiAocmVzcG9uc2UuaGFzT3duUHJvcGVydHkoInJlbG9hZCIpKSB7DQogICAgICAgICAgICAgICAgbG9jYXRpb24ucmVsb2FkKCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBpZiAocmVzcG9uc2UuaGFzT3duUHJvcGVydHkoIndpemFyZCIpKSB7DQogICAgICAgICAgICAgICAgY3JlYXRlTGF5b3V0KCk7DQogICAgICAgICAgICAgICAgY29uZmlndXJhdGlvbldpemFyZFtyZXNwb25zZVsid2l6YXJkIl1dLmNyZWF0ZVdpemFyZCgpOw0KICAgICAgICAgICAgICAgIHJldHVybjsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGNyZWF0ZUxheW91dCgpOw0KICAgICAgICB9Ow0KICAgIH0NCn0NCmZ1bmN0aW9uIGdldENvb2tpZShuYW1lKSB7DQogICAgdmFyIHZhbHVlID0gIjsgIiArIGRvY3VtZW50LmNvb2tpZTsNCiAgICB2YXIgcGFydHMgPSB2YWx1ZS5zcGxpdCgiOyAiICsgbmFtZSArICI9Iik7DQogICAgaWYgKHBhcnRzLmxlbmd0aCA9PSAyKQ0KICAgICAgICByZXR1cm4gcGFydHMucG9wKCkuc3BsaXQoIjsiKS5zaGlmdCgpOw0KfQ0K" + webUI["html/login.html"] = "PCFkb2N0eXBlIGh0bWw+DQo8aHRtbD4NCiAgPGhlYWQ+DQogICAgPG1ldGEgY2hhcnNldD0idXRmLTgiPg0KICAgIDxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgsIGluaXRpYWwtc2NhbGU9MS4wIiAvPiANCiAgICA8dGl0bGU+eFRlVmU8L3RpdGxlPg0KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iY3NzL3NjcmVlbi5jc3MiIHR5cGU9InRleHQvY3NzIj4NCiAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9ImNzcy9iYXNlLmNzcyIgdHlwZT0idGV4dC9jc3MiPg0KICAgIDxzY3JpcHQgbGFuZ3VhZ2U9ImphdmFzY3JpcHQiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJqcy9uZXR3b3JrX3RzLmpzIj48L3NjcmlwdD4NCiAgICA8c2NyaXB0IGxhbmd1YWdlPSJqYXZhc2NyaXB0IiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ianMvYXV0aGVudGljYXRpb25fdHMuanMiPjwvc2NyaXB0Pg0KICA8L2hlYWQ+DQoNCiAgICA8Ym9keT4NCiAgICAgICAgICANCiAgICAgIDxkaXYgaWQ9ImhlYWRlciIgY2xhc3M9ImltZ0NlbnRlciI+PC9kaXY+DQoNCiAgICAgIDxkaXYgaWQ9ImJveCI+DQoNCiAgICAgICAgPGRpdiBpZD0iaGVhZGxpbmUiPg0KICAgICAgICAgIDxoMSBpZD0iaGVhZC10ZXh0IiBjbGFzcz0iY2VudGVyIj57ey5sb2dpbi5oZWFkbGluZX19PC9oMT4NCiAgICAgICAgPC9kaXY+DQoNCiAgICAgICAgPHAgaWQ9ImVyciIgY2xhc3M9ImVycm9yTXNnIGNlbnRlciI+e3suYXV0aGVudGljYXRpb25FcnJ9fTwvcD4NCg0KICAgICAgICA8ZGl2IGlkPSJjb250ZW50Ij4NCg0KICAgICAgICAgICAgPGZvcm0gaWQ9ImF1dGhlbnRpY2F0aW9uIiBhY3Rpb249IiIgbWV0aG9kPSJwb3N0Ij4NCg0KICAgICAgICAgICAgICA8aDU+e3subG9naW4udXNlcm5hbWUudGl0bGV9fTo8L2g1Pg0KICAgICAgICAgICAgICA8aW5wdXQgaWQ9InVzZXJuYW1lIiB0eXBlPSJ0ZXh0IiBuYW1lPSJ1c2VybmFtZSIgcGxhY2Vob2xkZXI9IlVzZXJuYW1lIiB2YWx1ZT0iIj4NCiAgICAgICAgICAgICAgPGg1Pnt7LmxvZ2luLnBhc3N3b3JkLnRpdGxlfX06PC9oNT4NCiAgICAgICAgICAgICAgPGlucHV0IGlkPSJwYXNzd29yZCIgdHlwZT0icGFzc3dvcmQiIG5hbWU9InBhc3N3b3JkIiBwbGFjZWhvbGRlcj0iUGFzc3dvcmQiIHZhbHVlPSIiPg0KDQogICAgICAgICAgICA8L2Zvcm0+DQoNCiAgICAgICAgPC9kaXY+DQoNCiAgICAgICAgPGRpdiBpZD0iYm94LWZvb3RlciI+DQogICAgICAgICAgPGlucHV0IGlkPSJzdWJtaXQiIGNsYXNzPSIiIHR5cGU9ImJ1dHRvbiIgdmFsdWU9Int7LmJ1dHRvbi5sb2dpbn19IiBvbmNsaWNrPSJqYXZhc2NyaXB0OiBsb2dpbigpOyI+DQogICAgICAgIDwvZGl2Pg0KICAgICAgICANCiAgICAgIDwvZGl2Pg0KDQogICAgPC9ib2R5Pg0KICAgIA0KPC9odG1sPg==" webUI["html/maintenance.html"] = "PCFkb2N0eXBlIGh0bWw+DQo8aHRtbD4NCiAgPGhlYWQ+DQogICAgPG1ldGEgY2hhcnNldD0idXRmLTgiPg0KICAgIDxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgsIGluaXRpYWwtc2NhbGU9MS4wIiAvPiANCiAgICA8dGl0bGU+eFRlVmU8L3RpdGxlPg0KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iY3NzL3NjcmVlbi5jc3MiIHR5cGU9InRleHQvY3NzIj4NCiAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9ImNzcy9iYXNlLmNzcyIgdHlwZT0idGV4dC9jc3MiPg0KICA8L2hlYWQ+DQoNCiAgICA8Ym9keT4NCiAgICAgICAgICANCiAgICAgIDxkaXYgaWQ9ImhlYWRlciIgY2xhc3M9ImltZ0NlbnRlciI+PC9kaXY+DQoNCiAgICAgIDxkaXYgaWQ9ImJveCI+DQoNCiAgICAgICAgPGRpdiBpZD0iaGVhZGxpbmUiPg0KICAgICAgICAgIDxoMSBpZD0iaGVhZC10ZXh0IiBjbGFzcz0iY2VudGVyIj5NYWludGVuYW5jZTwvaDE+ICAgICAgDQogICAgICAgIDwvZGl2PiAgDQoNCiAgICAgICAgPGRpdiBpZD0iY29udGVudCI+DQogICAgICAgICAgeFRlVmUgaXMgdXBkYXRpbmcgdGhlIGRhdGFiYXNlLCBwbGVhc2UgdHJ5IGFnYWluIGxhdGVyLg0KICAgICAgICA8L2Rpdj4NCg0KICAgICAgICA8ZGl2IGlkPSJib3gtZm9vdGVyIj48L2Rpdj4NCiAgICAgICAgDQogICAgICA8L2Rpdj4NCg0KICAgIDwvYm9keT4NCjwvaHRtbD4=" - webUI["html/img/xmltv.png"] = "iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAAAXNSR0IArs4c6QAAAAlwSFlzAAAsSwAALEsBpT2WqQAABCRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IlhNUCBDb3JlIDUuNC4wIj4KICAgPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIgogICAgICAgICAgICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgICAgICAgICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyI+CiAgICAgICAgIDx0aWZmOlJlc29sdXRpb25Vbml0PjI8L3RpZmY6UmVzb2x1dGlvblVuaXQ+CiAgICAgICAgIDx0aWZmOkNvbXByZXNzaW9uPjU8L3RpZmY6Q29tcHJlc3Npb24+CiAgICAgICAgIDx0aWZmOlhSZXNvbHV0aW9uPjI4ODwvdGlmZjpYUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6T3JpZW50YXRpb24+MTwvdGlmZjpPcmllbnRhdGlvbj4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+Mjg4PC90aWZmOllSZXNvbHV0aW9uPgogICAgICAgICA8ZXhpZjpQaXhlbFhEaW1lbnNpb24+NTA8L2V4aWY6UGl4ZWxYRGltZW5zaW9uPgogICAgICAgICA8ZXhpZjpDb2xvclNwYWNlPjE8L2V4aWY6Q29sb3JTcGFjZT4KICAgICAgICAgPGV4aWY6UGl4ZWxZRGltZW5zaW9uPjUwPC9leGlmOlBpeGVsWURpbWVuc2lvbj4KICAgICAgICAgPGRjOnN1YmplY3Q+CiAgICAgICAgICAgIDxyZGY6QmFnLz4KICAgICAgICAgPC9kYzpzdWJqZWN0PgogICAgICAgICA8eG1wOk1vZGlmeURhdGU+MjAxOC0wNy0yOFQyMDowNzozMzwveG1wOk1vZGlmeURhdGU+CiAgICAgICAgIDx4bXA6Q3JlYXRvclRvb2w+UGl4ZWxtYXRvciAzLjM8L3htcDpDcmVhdG9yVG9vbD4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgIDwvcmRmOlJERj4KPC94OnhtcG1ldGE+Co6j9bsAAAGgSURBVGgF7VqxTsNADL0gYGEon8DOwsbAAH8BYmJn6cYIn8DC3h0+oixISFRiYYCJL0AwMMBAeK5w2rpV6uikxHfYknW98+vds18TK21DWGBlWR7CH+BfcEv2AzLP8HP42gLqkyUATuEp2PWEdQjF9ATs1zF/g29Mrxt+vVcUxR3xWxEktzFPJQmivsv8ZSI9DiQyVnxlIonwn6fpiczXpNuVVXH8O+a3Ys3y9NUyuf/NTTbEHZTjUlGSRzSiPhroUIENwB4AS/vS/susDwDhTpYBER9g7wHh5DWyibV9CiitCZbIafDEYUuJHQI3Nr/9ciWsjK6IFSWYhyvClbAyZqOIlYJG84jq7E1Ot97Zm+TinV1TrWwudk9EI3ebGFekzWprzspGEU2ySWCiOrs/s9dr7M/s9fVJJJrNXcsTsfaJc0WsKZINH+/sf1Jqvl1n1f2ZnStRN/pdq646XcSkIh9dkIg4s+IrE3nCpp8RG7f91ns+cCYR/LD4jcAZB42PN+A7/mcQ8ZxJhBYQvMJwBB/BKTFLVoLMC/wCfgyv7BesTKUC2LKM3wAAAABJRU5ErkJggg==" - webUI["html/img/logo_b_880x200.jpg"] = "/9j/4AAQSkZJRgABAQABLAEsAAD/4QDIRXhpZgAATU0AKgAAAAgABwESAAMAAAABAAEAAAEaAAUAAAABAAAAYgEbAAUAAAABAAAAagEoAAMAAAABAAIAAAExAAIAAAAPAAAAcgEyAAIAAAAUAAAAgodpAAQAAAABAAAAlgAAAAAAAAEsAAAAAQAAASwAAAABUGl4ZWxtYXRvciAzLjMAADIwMTk6MDg6MDIgMjA6MDg6MTQAAAOgAQADAAAAAQABAACgAgAEAAAAAQAAA3CgAwAEAAAAAQAAAMgAAAAA/+EJkGh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8APD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iWE1QIENvcmUgNS40LjAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcDpDcmVhdG9yVG9vbD0iUGl4ZWxtYXRvciAzLjMiIHhtcDpNb2RpZnlEYXRlPSIyMDE5LTA4LTAyVDIwOjA4OjE0Ii8+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPD94cGFja2V0IGVuZD0idyI/PgD/7QA4UGhvdG9zaG9wIDMuMAA4QklNBAQAAAAAAAA4QklNBCUAAAAAABDUHYzZjwCyBOmACZjs+EJ+/8AAEQgAyANwAwERAAIRAQMRAf/EAB8AAAEFAQEBAQEBAAAAAAAAAAABAgMEBQYHCAkKC//EALUQAAIBAwMCBAMFBQQEAAABfQECAwAEEQUSITFBBhNRYQcicRQygZGhCCNCscEVUtHwJDNicoIJChYXGBkaJSYnKCkqNDU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6g4SFhoeIiYqSk5SVlpeYmZqio6Slpqeoqaqys7S1tre4ubrCw8TFxsfIycrS09TV1tfY2drh4uPk5ebn6Onq8fLz9PX29/j5+v/EAB8BAAMBAQEBAQEBAQEAAAAAAAABAgMEBQYHCAkKC//EALURAAIBAgQEAwQHBQQEAAECdwABAgMRBAUhMQYSQVEHYXETIjKBCBRCkaGxwQkjM1LwFWJy0QoWJDThJfEXGBkaJicoKSo1Njc4OTpDREVGR0hJSlNUVVZXWFlaY2RlZmdoaWpzdHV2d3h5eoKDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uLj5OXm5+jp6vLz9PX29/j5+v/bAEMAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAf/bAEMBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAf/dAAQAbv/aAAwDAQACEQMRAD8A/iHoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKAP/9D+IegAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoA//0f4h6ACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgD//S/iHoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKAP/9P+IegAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoA//1P4h6ACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgDvPDXws+J3jPT31bwf8OfHnivSo7mSyfU/DXhDxBrunpeQpFLNaPe6Xp11bLcxRzwSSQNL5saTROyhZUNAHQf8M//AB4/6In8XP8Aw23jL/5TUAH/AAz/APHj/oifxc/8Nt4y/wDl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f/E3xn4o+IPjnxDLaafp8mveMPGet33iPxNrMlhpNpYaVZPqmtale3z2mmWNlp9s05hsrS2tkjhQA4ygAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgD//S/iHoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAczu+N7M2BgbmLYHoM9BnJxx1/FgBtABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAOLuwVWZiq/dUsSFz12joM4HQduc4FADaACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgD//0/4h6ACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgD//U/iHoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKAP/9X+IegAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoA//1v4h6ACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgD//X/iHoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKAP/9k=" - webUI["html/img/logo_w_600x200.png"] = "iVBORw0KGgoAAAANSUhEUgAAAlgAAADICAYAAAA0n5+2AAAAAXNSR0IArs4c6QAAAAlwSFlzAAAuIwAALiMBeKU/dgAABCZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IlhNUCBDb3JlIDUuNC4wIj4KICAgPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIgogICAgICAgICAgICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgICAgICAgICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyI+CiAgICAgICAgIDx0aWZmOlJlc29sdXRpb25Vbml0PjI8L3RpZmY6UmVzb2x1dGlvblVuaXQ+CiAgICAgICAgIDx0aWZmOkNvbXByZXNzaW9uPjU8L3RpZmY6Q29tcHJlc3Npb24+CiAgICAgICAgIDx0aWZmOlhSZXNvbHV0aW9uPjMwMDwvdGlmZjpYUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6T3JpZW50YXRpb24+MTwvdGlmZjpPcmllbnRhdGlvbj4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+MzAwPC90aWZmOllSZXNvbHV0aW9uPgogICAgICAgICA8ZXhpZjpQaXhlbFhEaW1lbnNpb24+NjAwPC9leGlmOlBpeGVsWERpbWVuc2lvbj4KICAgICAgICAgPGV4aWY6Q29sb3JTcGFjZT4xPC9leGlmOkNvbG9yU3BhY2U+CiAgICAgICAgIDxleGlmOlBpeGVsWURpbWVuc2lvbj4yMDA8L2V4aWY6UGl4ZWxZRGltZW5zaW9uPgogICAg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" - webUI["html/img/x_white.png"] = "iVBORw0KGgoAAAANSUhEUgAAAQAAAAEACAIAAADTED8xAAAAAXNSR0IArs4c6QAAAAlwSFlzAAAWJQAAFiUBSVIk8AAAA6ppVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IlhNUCBDb3JlIDUuNC4wIj4KICAgPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIgogICAgICAgICAgICB4bWxuczp0aWZmPSJodHRwOi8vbnMuYWRvYmUuY29tL3RpZmYvMS4wLyIKICAgICAgICAgICAgeG1sbnM6ZXhpZj0iaHR0cDovL25zLmFkb2JlLmNvbS9leGlmLzEuMC8iPgogICAgICAgICA8eG1wOk1vZGlmeURhdGU+MjAxOC0xMS0xNVQxNzoxMToyNTwveG1wOk1vZGlmeURhdGU+CiAgICAgICAgIDx4bXA6Q3JlYXRvclRvb2w+UGl4ZWxtYXRvciAzLjM8L3htcDpDcmVhdG9yVG9vbD4KICAgICAgICAgPHRpZmY6T3JpZW50YXRpb24+MTwvdGlmZjpPcmllbnRhdGlvbj4KICAgICAgICAgPHRpZmY6Q29tcHJlc3Npb24+NTwvdGlmZjpDb21wcmVzc2lvbj4KICAgICAgICAgPHRpZmY6UmVzb2x1dGlvblVuaXQ+MjwvdGlmZjpSZXNvbHV0aW9uVW5pdD4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+MTQ0PC90aWZmOllSZXNvbHV0aW9uPgogICAgICAgICA8dGlmZjpYUmVzb2x1dGlvbj4xNDQ8L3RpZmY6WFJlc29sdXRpb24+CiAgICAgICAgIDxleGlmOlBpeGVsWERpbWVuc2lvbj4yNTY8L2V4aWY6UGl4ZWxYRGltZW5zaW9uPgogICAgICAgICA8ZXhpZjpDb2xvclNwYWNlPjE8L2V4aWY6Q29sb3JTcGFj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" - webUI["html/js/files.js"] = "ZnVuY3Rpb24gb3BlbkZpbGVzKGVsbSwgZmlsZVR5cGUpIHsNCiAgLy9kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic2V0dGluZ3MiKS5pbm5lckhUTUwgPSAiVGVzdCI7DQogIA0KICBjb2x1bW5Ub1NvcnQgPSAwOyANCiAgdmFyIG5ld0RpdiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzZXR0aW5ncyIpOw0KICANCiAgdmFyIG5ld0VudHJ5ID0gbmV3IE9iamVjdCgpOw0KICBuZXdFbnRyeVsiX2VsZW1lbnQiXSAgPSAiSFIiOw0KICBuZXdEaXYuYXBwZW5kQ2hpbGQoY3JlYXRlRWxlbWVudChuZXdFbnRyeSkpOw0KDQogIHZhciBuZXdFbnRyeSA9IG5ldyBPYmplY3QoKTsNCiAgbmV3RW50cnlbIl9lbGVtZW50Il0gID0gIklOUFVUIjsNCiAgbmV3RW50cnlbInR5cGUiXSA9ICJidXR0b24iOw0KICBuZXdFbnRyeVsiY2xhc3MiXSA9ICJidXR0b24iOw0KICBuZXdFbnRyeVsidmFsdWUiXSA9ICJOZXciOw0KICBuZXdFbnRyeVsib25jbGljayJdID0gJ2ZpbGVEZXRhaWwoIi0iLCAiJyArIGZpbGVUeXBlICsgJyIpJzsNCiAgbmV3RGl2LmFwcGVuZENoaWxkKGNyZWF0ZUVsZW1lbnQobmV3RW50cnkpKTsNCg0KICB2YXIgbmV3RW50cnkgPSBuZXcgT2JqZWN0KCk7DQogIG5ld0VudHJ5WyJfZWxlbWVudCJdICA9ICJJTlBVVCI7DQogIG5ld0VudHJ5WyJ0eXBlIl0gPSAiYnV0dG9uIjsNCiAgbmV3RW50cnlbImNsYXNzIl0gPSAiYnV0dG9uIjsNCiAgbmV3RW50cnlbInZhbHVlIl0gPSAiVXBkYXRlIjsNCiAgbmV3RW50cnlbIm9uY2xpY2siXSA9ICJmaWxlRGV0YWlsKDApIjsNCiAgLy9uZXdEaXYuYXBwZW5kQ2hpbGQoY3JlYXRlRWxlbWVudChuZXdFbnRyeSkpOw0KDQogIHZhciBkaXYgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic2V0dGluZ3MiKTsNCg0KICAgLy8gQnVpbGQgdGFibGUNCiAgdmFyIG5ld1RhYmxlID0gbmV3IE9iamVjdCgpOw0KICBuZXdUYWJsZVsiX2VsZW1lbnQiXSAgPSAiVEFCTEUiOw0KICBuZXdUYWJsZVsiaWQiXSAgICAgICAgPSAiaWRfbWFwcGluZyI7DQogIG5ld1RhYmxlWyJjbGFzcyJdICAgICA9ICJ0YWJsZS1tYXBwaW5nIjsNCiAgZGl2LmFwcGVuZENoaWxkKGNyZWF0ZUVsZW1lbnQobmV3VGFibGUpKTsNCg0KICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7IA0KICAgIGNyZWF0ZUZpbGVzVGFibGUoZmlsZVR5cGUpOyANCiAgfSwgMTApOw0KDQp9DQoNCmZ1bmN0aW9uIGNyZWF0ZUZpbGVzVGFibGUoZmlsZVR5cGUpIHsNCiAgdmFyIHRhYmxlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImlkX21hcHBpbmciKTsNCiAgdmFyIGF2YWlsYWJsZUZpbGVUeXBlcyA9IG5ldyBBcnJheSgpOw0KICANCiAgdGFibGUuaW5uZXJIVE1MID0gIiI7DQogIHZhciBuZXdUUiA9IG5ldyBPYmplY3QoKTsNCiAgbmV3VFJbIl9lbGVtZW50Il0gPSAiVFIiOw0KICBuZXdUUlsiY2xhc3MiXSAgICA9ICJ0YWJsZS1tYXBwaW5nLWhlYWRlciI7DQogIHRhYmxlLmFwcGVuZENoaWxkKGNyZWF0ZUVsZW1lbnQobmV3VFIpKTsNCg0KICB2YXIgdHIgPSB0YWJsZS5sYXN0Q2hpbGQ7DQoNCiAgc3dpdGNoKGZpbGVUeXBlKSB7DQogICAgY2FzZSAieG1sdHYiOiANCiAgICAgIGF2YWlsYWJsZUZpbGVUeXBlcyA9IG5ldyBBcnJheSgieG1sdHYiKTsgDQogICAgICB2YXIgdHJIZWFkbGluZXMgPSBuZXcgQXJyYXkoIkd1aWRlIiwgIkxhc3QgVXBkYXRlIiwgIkF2YWlsYWJpbGl0eSAlIiwgIkNoYW5uZWxzIiwgIlByb2dyYW1zIikNCiAgICAgIHZhciBjb21wYXRpYmlsaXR5S2V5cyA9IG5ldyBBcnJheSgieG1sdHYuY2hhbm5lbHMiLCAieG1sdHYucHJvZ3JhbXMiKQ0KICAgICAgYnJlYWs7DQoNCiAgICBjYXNlICJtM3UiOg0KICAgICAgYXZhaWxhYmxlRmlsZVR5cGVzID0gbmV3IEFycmF5KCJtM3UiLCAiaGRociIpOyANCiAgICAgIHZhciB0ckhlYWRsaW5lcyA9IG5ldyBBcnJheSgiUGxheWxpc3QiLCAiTGFzdCBVcGRhdGUiLCAiQXZhaWxhYmlsaXR5ICUiLCAiVHlwZSIsICJTdHJlYW1zIiwgImdyb3VwLXRpdGxlICUiLCAidHZnLWlkICUiLCAiVW5pcXVlIElEICUiKTsNCiAgICAgIHZhciBjb21wYXRpYmlsaXR5S2V5cyA9IG5ldyBBcnJheSgic3RyZWFtcyIsICJncm91cC50aXRsZSIsICJ0dmcuaWQiLCAic3RyZWFtLmlkIik7DQogICAgICBicmVhazsNCiAgfQ0KDQogIGZvciAodmFyIGkgPSAwOyBpIDwgdHJIZWFkbGluZXMubGVuZ3RoOyBpKyspIHsNCiAgICB2YXIgbmV3VEQgPSBuZXcgT2JqZWN0KCk7DQogICAgbmV3VERbIl9lbGVtZW50Il0gPSAiVEQiOw0KICAgIG5ld1REWyJfdGV4dCJdICAgID0gdHJIZWFkbGluZXNbaV07DQogICAgdHIuYXBwZW5kQ2hpbGQoY3JlYXRlRWxlbWVudChuZXdURCkpOw0KICB9DQogIA0KICBmb3IgKHZhciBpID0gMDsgaSA8IGF2YWlsYWJsZUZpbGVUeXBlcy5sZW5ndGg7IGkrKykgew0KICAgIA0KICAgIHZhciBmaWxlVHlwZSA9IGF2YWlsYWJsZUZpbGVUeXBlc1tpXQ0KDQogICAgdmFyIGRhdGEgPSBjb25maWdbImZpbGVzIl1bZmlsZVR5cGVdOw0KICAgIA0KICAgIHZhciBhbGxGaWxlcyA9IGdldE9iaktleXMoZGF0YSkNCiAgDQogICAgZm9yICh2YXIgZiA9IDA7IGYgPCBhbGxGaWxlcy5sZW5ndGg7IGYrKykgew0KICAgICAgdmFyIGVsbSAgICAgICAgICAgPSBkYXRhW2FsbEZpbGVzW2ZdXTsNCiAgICAgIHZhciB0YWJsZSAgICAgICAgID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImlkX21hcHBpbmciKTsNCiAgICAgIHZhciBmaWxlSUQgICAgICAgID0gZWxtWyJpZC5wcm92aWRlciJdOw0KICAgICAgdmFyIG5hbWUgICAgICAgICAgPSBlbG1bIm5hbWUiXTsNCiAgICAgIHZhciBsYXN0VXBkYXRlICAgID0gZWxtWyJsYXN0LnVwZGF0ZSJdOw0KICAgICAgdmFyIGF2YWlsYWJpbGl0eSAgPSBlbG1bInByb3ZpZGVyLmF2YWlsYWJpbGl0eSJdOw0KICAgICAgdmFyIHR5cGUgICAgICAgICAgPSBlbG1bInR5cGUiXS50b1VwcGVyQ2FzZSgpOw0KICAgICAgdmFyIGNvbXBhdGliaWxpdHkgPSBlbG1bImNvbXBhdGliaWxpdHkiXTsNCg0KICAgICAgLy8gQ3JlYXRlIFRSDQogICAgICB2YXIgbmV3VFIgPSBuZXcgT2JqZWN0KCk7DQogICAgICBuZXdUUlsiX2VsZW1lbnQiXSAgICAgICA9ICJUUiI7DQogICAgICBuZXdUUlsiY2xhc3MiXSAgICAgICAgICA9ICIiOw0KICAgICAgbmV3VFJbImlkIl0gICAgICAgICAgICAgPSBmaWxlSUQ7DQogICAgICBuZXdUUlsib25jbGljayJdICAgICAgICA9ICdqYXZhc2NyaXB0OiBmaWxlRGV0YWlsKCInICsgZmlsZUlEICsgJyIsIicgKyBmaWxlVHlwZSArICciKTsnOw0KICAgICAgdGFibGUuYXBwZW5kQ2hpbGQoY3JlYXRlRWxlbWVudChuZXdUUikpOw0KDQogICAgICB2YXIgdHIgPSB0YWJsZS5sYXN0Q2hpbGQ7DQoNCiAgICAgIC8vIENyZWF0ZSBmaWxlIG5hbWUgVEQNCiAgICAgIHZhciBuZXdURCA9IG5ldyBPYmplY3QoKTsNCiAgICAgIG5ld1REWyJfZWxlbWVudCJdID0gIlAiOw0KICAgICAgbmV3VERbIl90ZXh0Il0gICAgPSBuYW1lOw0KICAgICAgY3JlYXRlTmV3VEQobmV3VEQsIHRyKTsNCg0KICAgICAgLy8gQ3JlYXRlIGxhc3QgdXBkYXRlIFREDQogICAgICB2YXIgbmV3VEQgPSBuZXcgT2JqZWN0KCk7DQogICAgICBuZXdURFsiX2VsZW1lbnQiXSA9ICJQIjsNCiAgICAgIG5ld1REWyJfdGV4dCJdICAgID0gbGFzdFVwZGF0ZTsNCiAgICAgIGNyZWF0ZU5ld1REKG5ld1RELCB0cik7DQoNCiAgICAgIC8vIENyZWF0ZSBhdmFpbGFiaWxpdHkgVEQNCiAgICAgIHZhciBuZXdURCA9IG5ldyBPYmplY3QoKTsNCiAgICAgIG5ld1REWyJfZWxlbWVudCJdID0gIlAiOw0KICAgICAgbmV3VERbIl90ZXh0Il0gICAgPSBhdmFpbGFiaWxpdHk7DQogICAgICBjcmVhdGVOZXdURChuZXdURCwgdHIpOw0KDQogICAgICBpZiAoZmlsZVR5cGUgPT0gIm0zdSIgfHwgZmlsZVR5cGUgPT0gImhkaHIiKSB7DQoNCiAgICAgICAgLy8gQ3JlYXRlIFR5cGUgVEQNCiAgICAgICAgdmFyIG5ld1REID0gbmV3IE9iamVjdCgpOw0KICAgICAgICBuZXdURFsiX2VsZW1lbnQiXSA9ICJQIjsNCiAgICAgICAgbmV3VERbIl90ZXh0Il0gICAgPSB0eXBlOw0KICAgICAgICBjcmVhdGVOZXdURChuZXdURCwgdHIpOw0KICANCiAgICAgIH0NCiAgICAgIA0KICAgICAgLy8gQ3JlYXRlIGFsbCBjb21wYXRpYmlsaXR5IFREcw0KDQogICAgICBmb3IgKHZhciBqID0gMDsgaiA8IGNvbXBhdGliaWxpdHlLZXlzLmxlbmd0aDsgaisrKSB7DQogICAgICAgIHZhciBuZXdURCA9IG5ldyBPYmplY3QoKTsNCiAgICAgICAgbmV3VERbIl9lbGVtZW50Il0gPSAiUCI7DQogICAgICAgIG5ld1REWyJfdGV4dCJdICAgID0gY29tcGF0aWJpbGl0eVtjb21wYXRpYmlsaXR5S2V5c1tqXV07DQogICAgICAgIGNyZWF0ZU5ld1REKG5ld1RELCB0cik7DQogICAgICB9DQoNCiAgICB9DQoNCiAgfQ0KICANCiAgDQogIHNvcnRUYWJsZSgwKQ0KDQogIC8vIHVzYWdlIEluZm8gIA0KICB2YXIgZGl2ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNldHRpbmdzIik7DQogIHN3aXRjaChtZW51W2FjdGl2ZU1lbnUuaWRdLmhhc093blByb3BlcnR5KCJfdXNhZ2UiKSkgew0KICAgIGNhc2UgdHJ1ZTogDQogICAgICB2YXIgdXNhZ2VJdGVtID0gbmV3IE9iamVjdCgpOw0KICAgICAgdXNhZ2VJdGVtWyJfZWxlbWVudCJdID0gIlBSRSINCiAgICAgIHVzYWdlSXRlbVsiX3RleHQiXSAgICA9IG1lbnVbYWN0aXZlTWVudS5pZF1bIl91c2FnZSJdOw0KDQogICAgICB2YXIgbmV3SFIgPSBuZXcgT2JqZWN0KCk7DQogICAgICBuZXdIUlsiX2VsZW1lbnQiXSA9ICJIUiINCiAgICAgIGRpdi5hcHBlbmRDaGlsZChjcmVhdGVFbGVtZW50KG5ld0hSKSk7DQogICAgICBkaXYuYXBwZW5kQ2hpbGQoY3JlYXRlRWxlbWVudCh1c2FnZUl0ZW0pKTsNCiAgICAgIGJyZWFrOw0KICB9DQoNCiAgY2FsY3VsYXRlV3JhcHBlckhlaWdodCgpOw0KICByZXR1cm47DQp9DQoNCg0KZnVuY3Rpb24gZmlsZURldGFpbChmaWxlSUQsIGZpbGVUeXBlKSB7DQoNCiAgb3B0aW9uc1RleHQgID0gbmV3IEFycmF5KCJNM1UiLCAiSERIb21lUnVuIC0gW0V4cGVyaW1lbnRhbF0iKQ0KICBvcHRpb25zVmFsdWUgPSBuZXcgQXJyYXkoIm0zdSIsICJoZGhyIikNCg0KICBzd2l0Y2ggKGZpbGVUeXBlKSB7DQogICAgDQogICAgY2FzZSAibTN1IjogDQogICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibmFtZSIpLnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAiUGxheWxpc3QgbmFtZSIpOyANCiAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJkZXNjcmlwdGlvbiIpLnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAiRGVzY3JpcHRpb24gb2YgdGhpcyBwbGF5bGlzdCIpOyANCiAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJmaWxlLWRldGFpbC1oZWFkbGluZSIpLmlubmVySFRNTCA9ICJNM1UgUGxheWxpc3QiOyANCiAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJmaWxlLXBhdGgiKS5pbm5lckhUTUwgPSAiTTNVIEZpbGU6IjsgDQogICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZmlsZS5zb3VyY2UiKS5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgIkxvY2FsIG9yIHJlbW90ZSIpOw0KICAgICAgYnJlYWs7DQoNCiAgICBjYXNlICJoZGhyIjogDQogICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibmFtZSIpLnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAiSERIb21lUnVuIG5hbWUiKTsgDQogICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZGVzY3JpcHRpb24iKS5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgIkRlc2NyaXB0aW9uIG9mIHRoaXMgSERIb21lUnVuIHR1bmVyIik7IA0KICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImZpbGUtZGV0YWlsLWhlYWRsaW5lIikuaW5uZXJIVE1MID0gIkhESG9tZVJ1biI7IA0KICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImZpbGUtcGF0aCIpLmlubmVySFRNTCA9ICJIREhvbWVSdW4gSVA6IjsgDQogICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZmlsZS5zb3VyY2UiKS5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgIklQIGFkZHJlc3MgYW5kIHBvcnQgb2YgdGhlIHR1bmVyICgxOTIuMTY4LjEuMTA6NTAwNCkiKTsNCiAgICAgIGJyZWFrOw0KICAgIA0KICAgIGNhc2UgInhtbHR2IjogDQogICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibmFtZSIpLnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAiWE1MVFYgbmFtZSIpOyANCiAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJkZXNjcmlwdGlvbiIpLnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAiRGVzY3JpcHRpb24gb2YgdGhpcyBYTUxUViBmaWxlIik7IA0KICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImZpbGUtZGV0YWlsLWhlYWRsaW5lIikuaW5uZXJIVE1MID0gIlhNTFRWIEZpbGUiOyANCiAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJmaWxlLXBhdGgiKS5pbm5lckhUTUwgPSAiWE1MVFYgRmlsZToiOw0KICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImZpbGUuc291cmNlIikuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJMb2NhbCBvciByZW1vdGUiKTsNCg0KICAgICAgb3B0aW9uc1RleHQgID0gbmV3IEFycmF5KCJYTUxUViIpDQogICAgICBvcHRpb25zVmFsdWUgPSBuZXcgQXJyYXkoInhtbHR2IikNCiAgICAgIGJyZWFrOw0KICB9DQoNCiAgbW9kaWZ5T3B0aW9uKCJ0eXBlIiwgb3B0aW9uc1RleHQsIG9wdGlvbnNWYWx1ZSkNCiAgDQogIHNob3dQb3BVcEVsZW1lbnQoJ2ZpbGUtZGV0YWlsJyk7DQoNCiAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNhdmVGaWxlRGV0YWlsIikuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IHNhdmVGaWxlRGV0YWlsKCInICsgZmlsZUlEICsgJyIsIicgKyBmaWxlVHlwZSArICciLCBmYWxzZSknKTsNCiAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInVwZGF0ZUZpbGVEZXRhaWwiKS5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogdXBkYXRlRmlsZSgiJyArIGZpbGVJRCArICciLCInICsgZmlsZVR5cGUgKyAnIiwgZmFsc2UpJyk7DQogIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJkZWxldGVGaWxlRGV0YWlsIikuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IHNhdmVGaWxlRGV0YWlsKCInICsgZmlsZUlEICsgJyIsIicgKyBmaWxlVHlwZSArICciLCB0cnVlKScpOw0KDQogIHZhciBkYXRhID0gbmV3IE9iamVjdCgpOw0KDQogIHN3aXRjaChmaWxlSUQpIHsNCg0KICAgIGNhc2UgIi0iOiAvLyBOZXcgZmlsZQ0KICAgICAgZGF0YVsibmFtZSJdICAgICAgICA9ICIiOw0KICAgICAgZGF0YVsiZGVzY3JpcHRpb24iXSA9ICIiOw0KICAgICAgZGF0YVsiZmlsZS5zb3VyY2UiXSA9ICIiOw0KICAgICAgZGF0YVsidHlwZSJdID0gZmlsZVR5cGU7DQogICAgICANCiAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJkZWxldGVGaWxlRGV0YWlsIikuY2xhc3NOYW1lID0gImRlbGV0ZSI7DQogICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidHlwZSIpLnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiY2hhbmdlRmlsZVR5cGUodGhpcyk7IikNCiAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0eXBlIikuc2V0QXR0cmlidXRlKCJkYXRhLWlkIiwgZmlsZUlEKQ0KICAgICAgDQogICAgICBzaG93RWxlbWVudCgiZGVsZXRlRmlsZURldGFpbCIsIGZhbHNlKTsNCiAgICAgIHNob3dFbGVtZW50KCJ1cGRhdGVGaWxlRGV0YWlsIiwgZmFsc2UpOw0KICAgICAgDQogICAgICBpZiAoZmlsZVR5cGUgPT0gInhtbHR2Iikgew0KICAgICAgICBzaG93RWxlbWVudCgidHlwZSIsIGZhbHNlKTsNCiAgICAgICAgc2hvd0VsZW1lbnQoImZpbGUtdHlwZSIsIGZhbHNlKTsNCiAgICAgIH0gZWxzZSB7DQogICAgICAgIHNob3dFbGVtZW50KCJ0eXBlIiwgdHJ1ZSk7DQogICAgICAgIHNob3dFbGVtZW50KCJmaWxlLXR5cGUiLCB0cnVlKTsNCiAgICAgIH0NCiAgICAgIA0KICAgICAgYnJlYWs7DQoNCiAgICBkZWZhdWx0OiANCiAgICAgIGRhdGEgPSBjb25maWdbImZpbGVzIl1bZmlsZVR5cGVdW2ZpbGVJRF07DQogICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZGVsZXRlRmlsZURldGFpbCIpLmNsYXNzTmFtZSA9ICJkZWxldGUiOw0KICAgICAgDQogICAgICBzaG93RWxlbWVudCgidXBkYXRlRmlsZURldGFpbCIsIHRydWUpOw0KICAgICAgc2hvd0VsZW1lbnQoInR5cGUiLCBmYWxzZSk7DQogICAgICBzaG93RWxlbWVudCgiZmlsZS10eXBlIiwgZmFsc2UpOw0KICAgICAgDQogICAgICBicmVhazsNCg0KICB9DQoNCiAgdmFyIGtleXMgPSBnZXRPYmpLZXlzKGRhdGEpOw0KICANCiAgZm9yICh2YXIgaSA9IDA7IGkgPCBrZXlzLmxlbmd0aDsgaSsrKSB7DQoNCiAgICBpZihkb2N1bWVudC5nZXRFbGVtZW50QnlJZChrZXlzW2ldKSl7DQogICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChrZXlzW2ldKS52YWx1ZSA9IGRhdGFba2V5c1tpXV07DQogICAgfSANCg0KDQogIH0NCg0KfQ0KDQpmdW5jdGlvbiBjaGFuZ2VGaWxlVHlwZShlbG0pIHsNCg0KICB2YXIgZmlsZUlEID0gZWxtLmdldEF0dHJpYnV0ZSgiZGF0YS1pZCIpOw0KICB2YXIgZmlsZVR5cGUgPSBlbG0ub3B0aW9uc1tlbG0uc2VsZWN0ZWRJbmRleF0udmFsdWU7DQogIA0KICBmaWxlRGV0YWlsKGZpbGVJRCwgZmlsZVR5cGUpDQoNCn0NCg0KDQpmdW5jdGlvbiBzYXZlRmlsZURldGFpbChmaWxlSUQsIGZpbGVUeXBlLCBkZWxldGVGaWxlKSB7DQoNCiAgaWYgKGZpbGVJRCA9PSB1bmRlZmluZWQpIHsNCiAgICBhbGVydCgiSUQgaXMgbWlzc2luZyEhISIpOw0KICAgIHJldHVybiANCiAgfQ0KDQogIHZhciBpbnB1dHMgICAgICA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJmaWxlLWRldGFpbCIpLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJJTlBVVCIpOw0KICB2YXIgc2VsZWN0cyAgICAgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZmlsZS1kZXRhaWwiKS5nZXRFbGVtZW50c0J5VGFnTmFtZSgiU0VMRUNUIik7DQogIHZhciBuZXdGaWxlRGF0YSA9IG5ldyBPYmplY3QoKTsNCiAgdmFyIGRhdGEgICAgICAgID0gbmV3IE9iamVjdCgpOw0KDQogIGZvciAodmFyIGkgPSAwOyBpIDwgaW5wdXRzLmxlbmd0aDsgaSsrKSB7DQogICAgc3dpdGNoKGlucHV0c1tpXS50eXBlKSB7DQogICAgICBjYXNlICJ0ZXh0IjogbmV3RmlsZURhdGFbaW5wdXRzW2ldLm5hbWVdID0gaW5wdXRzW2ldLnZhbHVlOyBicmVhazsNCiAgICB9DQogIH0NCg0KICBmb3IgKHZhciBpID0gMDsgaSA8IHNlbGVjdHMubGVuZ3RoOyBpKyspIHsNCiAgICBuZXdGaWxlRGF0YVtzZWxlY3RzW2ldLmlkXSA9IHNlbGVjdHNbaV0ub3B0aW9uc1tzZWxlY3RzW2ldLnNlbGVjdGVkSW5kZXhdLnZhbHVlOw0KICB9DQoNCiAgaWYgKGRlbGV0ZUZpbGUgPT0gdHJ1ZSkgew0KICAgIHN3aXRjaChmaWxlVHlwZSkgew0KICAgICAgY2FzZSAibTN1IjogICB2YXIgYWxlcnRUZXh0ID0gIkRlbGV0ZSB0aGlzIHBsYXlsaXN0PyI7IGJyZWFrOw0KICAgICAgY2FzZSAiaGRociI6IHZhciBhbGVydFRleHQgPSAiRGVsZXRlIHRoaXMgSERIb21lUnVuIHR1bmVyPyI7IGJyZWFrOw0KICAgICAgY2FzZSAieG1sdHYiOiB2YXIgYWxlcnRUZXh0ID0gIkRlbGV0ZSB0aGlzIFhNTFRWIGZpbGU/IjsgYnJlYWs7DQogICAgfQ0KDQogICAgaWYgKGNvbmZpcm0oYWxlcnRUZXh0KSkgew0KICAgICAgbmV3RmlsZURhdGFbImRlbGV0ZSJdID0gdHJ1ZQ0KICAgICAgZGF0YSA9IGJ1aWxkRmlsZXNPYmooZmlsZVR5cGUsIGZpbGVJRCwgbmV3RmlsZURhdGEpOw0KICAgICAgY29uc29sZS5sb2coZGF0YSk7DQogICAgICANCiAgICB9IGVsc2Ugew0KICAgICAgc2hvd0VsZW1lbnQoInBvcHVwIiwgZmFsc2UpOw0KICAgICAgcmV0dXJuDQogICAgDQogICAgfQ0KDQogIH0gZWxzZSB7DQogIA0KICAgIHN3aXRjaChjb25maWdbImZpbGVzIl1bZmlsZVR5cGVdLmhhc093blByb3BlcnR5KGZpbGVJRCkpIHsNCg0KICAgICAgY2FzZSB0cnVlOiANCiAgICAgICAgZGF0YSA9IGNvbmZpZ1siZmlsZXMiXVtmaWxlVHlwZV1bZmlsZUlEXTsgDQogICAgICAgIGlmIChkYXRhWyJmaWxlLnNvdXJjZSJdICE9IG5ld0ZpbGVEYXRhWyJmaWxlLnNvdXJjZSJdKSB7DQogICAgICAgICAgZGF0YVsidXBkYXRlIl0gPSB0cnVlDQogICAgICAgIH0gZWxzZSB7DQogICAgICAgICAgZGF0YVsidXBkYXRlUGxheWxpc3ROYW1lIl0gPSB0cnVlOw0KICAgICAgICB9DQogICAgICAgIGJyZWFrOw0KICAgICAgDQogICAgICBjYXNlIGZhbHNlOiANCiAgICAgICAgbmV3RmlsZURhdGFbIm5ldyJdID0gdHJ1ZTsNCiAgICAgICAgZGF0YSA9IGJ1aWxkRmlsZXNPYmooZmlsZVR5cGUsIGZpbGVJRCwgbmV3RmlsZURhdGEpOw0KICAgICAgICBicmVhaw0KDQogICAgfQ0KICANCiAgfSAgDQogIA0KICBzd2l0Y2goZmlsZVR5cGUpIHsNCg0KICAgIGNhc2UgIm0zdSI6ICAgZGF0YVsiY21kIl0gPSAic2F2ZUZpbGVzTTNVIjsgYnJlYWs7DQogICAgY2FzZSAiaGRociI6ICBkYXRhWyJjbWQiXSA9ICJzYXZlRmlsZXNIREhSIjsgYnJlYWs7DQogICAgY2FzZSAieG1sdHYiOiBkYXRhWyJjbWQiXSA9ICJzYXZlRmlsZXNYTUxUViI7IGJyZWFrOw0KDQogIH0NCiAgLy9jb25zb2xlLmxvZyhkYXRhKTsNCiAgeFRlVmUoZGF0YSk7DQogIHJldHVybg0KfQ0KDQpmdW5jdGlvbiB1cGRhdGVGaWxlKGZpbGVJRCwgZmlsZVR5cGUsIGFsbEZpbGVzKSB7DQogIA0KICBzd2l0Y2goY29uZmlnWyJmaWxlcyJdW2ZpbGVUeXBlXS5oYXNPd25Qcm9wZXJ0eShmaWxlSUQpKSB7DQoNCiAgICBjYXNlIHRydWU6IA0KICAgIA0KICAgICAgdmFyIGRhdGEgPSBuZXcgT2JqZWN0KCk7DQogICAgICB2YXIgZGF0YSA9IGJ1aWxkRmlsZXNPYmooZmlsZVR5cGUsIGZpbGVJRCwgY29uZmlnWyJmaWxlcyJdW2ZpbGVUeXBlXVtmaWxlSURdKQ0KICAgICAgZGF0YVsibmV3Il0gPSB0cnVlDQoNCiAgICAgIHN3aXRjaChmaWxlVHlwZSkgew0KDQogICAgICAgIGNhc2UgIm0zdSI6ICAgZGF0YVsiY21kIl0gPSAidXBkYXRlRmlsZU0zVSI7IGJyZWFrOw0KICAgICAgICBjYXNlICJoZGhyIjogIGRhdGFbImNtZCJdID0gInVwZGF0ZUZpbGVIREhSIjsgYnJlYWs7DQogICAgICAgIGNhc2UgInhtbHR2IjogZGF0YVsiY21kIl0gPSAidXBkYXRlRmlsZVhNTFRWIjsgYnJlYWs7DQoNCiAgICAgIH0NCiAgICAgIA0KICAgICAgeFRlVmUoZGF0YSk7DQogICAgICANCiAgICAgIGJyZWFrOw0KICB9DQoNCn0NCg0KZnVuY3Rpb24gYnVpbGRGaWxlc09iaihmaWxlVHlwZSwgZmlsZUlELCBvYmopIHsNCg0KICB2YXIgZGF0YSA9IG5ldyBPYmplY3QoKTsNCiAgZGF0YVsiZmlsZXMiXSA9IG5ldyBPYmplY3QoKTsNCiAgZGF0YVsiZmlsZXMiXVtmaWxlVHlwZV0gPSBuZXcgT2JqZWN0KCk7DQogIGRhdGFbImZpbGVzIl1bZmlsZVR5cGVdW2ZpbGVJRF0gPSBvYmoNCiAgcmV0dXJuIGRhdGENCg0KfQ==" webUI["html/create-first-user.html"] = "PCFkb2N0eXBlIGh0bWw+DQo8aHRtbD4NCiAgPGhlYWQ+DQogICAgPG1ldGEgY2hhcnNldD0idXRmLTgiPg0KICAgIDxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgsIGluaXRpYWwtc2NhbGU9MS4wIiAvPiANCiAgICA8dGl0bGU+eFRlVmU8L3RpdGxlPg0KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iY3NzL3NjcmVlbi5jc3MiIHR5cGU9InRleHQvY3NzIj4NCiAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9ImNzcy9iYXNlLmNzcyIgdHlwZT0idGV4dC9jc3MiPg0KICAgIDxzY3JpcHQgbGFuZ3VhZ2U9ImphdmFzY3JpcHQiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJqcy9uZXR3b3JrX3RzLmpzIj48L3NjcmlwdD4NCiAgICA8c2NyaXB0IGxhbmd1YWdlPSJqYXZhc2NyaXB0IiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ianMvYXV0aGVudGljYXRpb25fdHMuanMiPjwvc2NyaXB0Pg0KICA8L2hlYWQ+DQoNCiAgICA8Ym9keT4NCiAgICAgICAgICANCiAgICAgIDxkaXYgaWQ9ImhlYWRlciIgY2xhc3M9ImltZ0NlbnRlciI+PC9kaXY+DQoNCiAgICAgIDxkaXYgaWQ9ImJveCI+DQoNCiAgICAgICAgPGRpdiBpZD0iaGVhZGxpbmUiPg0KICAgICAgICAgIDxoMSBpZD0iaGVhZC10ZXh0IiBjbGFzcz0iY2VudGVyIj57ey5hY2NvdW50LmhlYWRsaW5lfX08L2gxPg0KICAgICAgICA8L2Rpdj4NCg0KICAgICAgICA8cCBpZD0iZXJyIiBjbGFzcz0iZXJyb3JNc2cgY2VudGVyIj48L3A+DQoNCiAgICAgICAgPGRpdiBpZD0iY29udGVudCI+DQoNCiAgICAgICAgICAgIDxmb3JtIGlkPSJhdXRoZW50aWNhdGlvbiIgYWN0aW9uPSIiIG1ldGhvZD0icG9zdCI+DQoNCiAgICAgICAgICAgICAgPGg1Pnt7LmFjY291bnQudXNlcm5hbWUudGl0bGV9fTo8L2g1Pg0KICAgICAgICAgICAgICA8aW5wdXQgaWQ9InVzZXJuYW1lIiB0eXBlPSJ0ZXh0IiBuYW1lPSJ1c2VybmFtZSIgcGxhY2Vob2xkZXI9IlVzZXJuYW1lIiB2YWx1ZT0iIj4NCiAgICAgICAgICAgICAgPGg1Pnt7LmFjY291bnQucGFzc3dvcmQudGl0bGV9fTo8L2g1Pg0KICAgICAgICAgICAgICA8aW5wdXQgaWQ9InBhc3N3b3JkIiB0eXBlPSJwYXNzd29yZCIgbmFtZT0icGFzc3dvcmQiIHBsYWNlaG9sZGVyPSJQYXNzd29yZCIgdmFsdWU9IiI+DQogICAgICAgICAgICAgIDxoNT57ey5hY2NvdW50LmNvbmZpcm0udGl0bGV9fTo8L2g1Pg0KICAgICAgICAgICAgICA8aW5wdXQgaWQ9ImNvbmZpcm0iICB0eXBlPSJwYXNzd29yZCIgbmFtZT0iY29uZmlybSIgIHBsYWNlaG9sZGVyPSJDb25maXJtIiB2YWx1ZT0iIj4NCiAgICAgICAgICAgICAgDQogICAgICAgICAgICA8L2Zvcm0+DQoNCiAgICAgICAgPC9kaXY+DQogICAgICAgIA0KICAgICAgICA8ZGl2IGlkPSJib3gtZm9vdGVyIj4NCiAgICAgICAgICA8aW5wdXQgaWQ9InN1Ym1pdCIgY2xhc3M9IiIgdHlwZT0iYnV0dG9uIiB2YWx1ZT0ie3suYnV0dG9uLmNyYWV0ZUFjY291bnR9fSIgb25jbGljaz0iamF2YXNjcmlwdDogbG9naW4oKTsiPg0KICAgICAgICA8L2Rpdj4NCiAgICAgIA0KICAgICAgICANCiAgICAgIDwvZGl2Pg0KICAgIDwvYm9keT4NCjwvaHRtbD4=" - webUI["html/img/x_ transparent.png"] = "iVBORw0KGgoAAAANSUhEUgAAAQAAAAEACAYAAABccqhmAAAAAXNSR0IArs4c6QAAAAlwSFlzAAAWJQAAFiUBSVIk8AAAA6ppVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IlhNUCBDb3JlIDUuNC4wIj4KICAgPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIgogICAgICAgICAgICB4bWxuczp0aWZmPSJodHRwOi8vbnMuYWRvYmUuY29tL3RpZmYvMS4wLyIKICAgICAgICAgICAgeG1sbnM6ZXhpZj0iaHR0cDovL25zLmFkb2JlLmNvbS9leGlmLzEuMC8iPgogICAgICAgICA8eG1wOk1vZGlmeURhdGU+MjAxOC0xMS0xNVQxNzoxMTo3NjwveG1wOk1vZGlmeURhdGU+CiAgICAgICAgIDx4bXA6Q3JlYXRvclRvb2w+UGl4ZWxtYXRvciAzLjM8L3htcDpDcmVhdG9yVG9vbD4KICAgICAgICAgPHRpZmY6T3JpZW50YXRpb24+MTwvdGlmZjpPcmllbnRhdGlvbj4KICAgICAgICAgPHRpZmY6Q29tcHJlc3Npb24+NTwvdGlmZjpDb21wcmVzc2lvbj4KICAgICAgICAgPHRpZmY6UmVzb2x1dGlvblVuaXQ+MjwvdGlmZjpSZXNvbHV0aW9uVW5pdD4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+MTQ0PC90aWZmOllSZXNvbHV0aW9uPgogICAgICAgICA8dGlmZjpYUmVzb2x1dGlvbj4xNDQ8L3RpZmY6WFJlc29sdXRpb24+CiAgICAgICAgIDxleGlmOlBpeGVsWERpbWVuc2lvbj4yNTY8L2V4aWY6UGl4ZWxYRGltZW5zaW9uPgogICAgICAgICA8ZXhpZjpDb2xvclNwYWNlPjE8L2V4aWY6Q29sb3JTcGFjZT4KICAgICAgICAgPGV4aWY6UGl4ZWxZRGltZW5zaW9uPjI1NjwvZXhpZjpQaXhlbFlEaW1lbnNpb24+CiAgICAgIDwvcmRmOkRlc2NyaXB0aW9uPgogICA8L3JkZjpSREY+CjwveDp4bXBtZXRhPgoeXQb1AAAaJElEQVR4Ae2dCZhcVZXHz+1KSFiGkISkqyIoOgI68EkgOBNkEcQRlIFRZDGABAQEhInGbxw+RUZRNhWRLawDYR0GHAaHUVkGvwGURUcgwIiAOGxjV3UHAslHQrbuM/9TlQ6d7qruWt527/u/7+uuqvvucu7vvnveuffde54IDxIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARLwiIDzQtayHi0q23shaydCOnlISu7nnWThRdrFOkPWyCleyNqJkF1yjhTd8k6yiDvtuLgLiCR/lVnIZ14keWU7k2Xyuu4oU92r2RazQ+nWypXI4W86zCXbyZ28KBvJ97MtpEhX1gWsyleS08TJU17I2omQKpvLarmqkywyn7ZHPw9rLvTOvwbX6xEyxS3Nenv4oQCcWwmQc/D3dtaBdiyfyv5S1mM7zieLGSzWEsS6KIuiRSzTGTD9H404z1iy80MBWNVL7hn8nx8LhaxlqnKBvKbvyppYHctTM/0nd5xPljNwcrcUs2/6DyL0RwGYxDOcjR3vGBQ+4M8tMElmdQ3n6NGjYPofGE6F6tTESRmm/1xxTuuczWSQH08BhqJbqlNkuTyJoK2GBgf53S6mkrvB+7qZ6b9Gfod6hHv3dzKAGbX9pNvd51N7+WUBGNlJbgm07FH4G/AJdFuyqlwotXFzW8kzk2itXAFZwu38BlrlPN86v4ntnwIwqUvuASiAc+1r4MdkqXUef6tZM/0P8rcCTUmO9RvyraZiZiySf0OAQYCq46QiD0Lz7jYYFOxnARZPt7vZu/r1aREKzEz/Kd7J3rzAS2Si7IxHfq80nyQ7Mf20AIyfc2thBRyJv2XZwRmTJP14dNar3THlHl+2Nesl5M4vUpDjfe381vD+KgCTvuhehAI4yb4GfkzFjMdlXtWxV4+EvH/rlcytCutkASwzr59K+TsEGNpYZb0OQ4G5Q4OC/N4ln4PSuzXzdcuH6b8I4/7ZsERXZb49RhHQbwtgsGIFORWWwAuDP4P9HJBLsUpwWubrt1Yuh4zhmv5O3pLxUMaed367jsJQANPdW7AA5kAJrMl85+hMwC2RfEFnWcScuqJHoIRPx1xK2tmfKtPcc2kLEUX5YSgAIzHD/Rb/T48CSqbzUDkUVsAhmZTRTP8BuTiTskUllJMb8Bj6+qiySzufMOYABimq2mLMe/DzrweDgvx00iebyg6yuXstU/XrUZsQC/nu/5yMk13FLM5AjnAsAGsQW4M93tZiy+JA2qd+NVSmYzn0JfVPphRa0TkoOeTOvwqdf05Ind+ulLAUgNVomivj/7H2NehDMQnVq5/JRB1tjcJAxhRS1GC65Gvo/E9EnW3a+YWnAIxoyf0M/8Mei1o9bW2AbY5K++ivzvpPTVuMGMv/CR6/ZsviiqiyYSoAg1OSf8BQ4KmIOGUzG8XO8+UpK7qKfg5wsmGJxNNKr2C+5bh4sk4/17AmAYfzLOtf4PGgPR3YePipoH53YcVd0d2ZeJ3M9O+vrvUP8+7vsJOhIPvA9P9V4mwTKjBcC8AA5sWLkGK77Zua/Hbb2vLkMDu/XT8qZ4bc+a2KYSsAq6F5EXLyb/Y12EMx4HkbvgOSPCp6ODrIwUkWmWhZTn4BquckWmYKhYU9BBgEmhcvQk4OgNUT/3sFKjodE5C2zddWJoZ32DqLcTJz3ROl8Oo3pEbhWwBW2bx4EVK4FF+ik4a0bzxftbozMdTOr7Bs5uah89vFkQ8FYDWteREK3aR7l6yCR+E4j7Iehg7y2TiLSDnv8zFsvDtlGRIrPh9DgEGcefEiVMC7BbqdLYmO9gjf9H8UD1b3worS0DeVrb8u8mMBWJXNi5DgjS1Olq4nEOKXfrkarxjbPPKqaXUnYpimv8ibuC5wbeSn89v1kS8FYDUuuZfQ0KF7EdoaQ4HzrbqRHWU9FKb/IZHll7WMnHyx6mEqa3LFLE++hgBDYZZ1IS7oY4YGBfe9gF2RUfiprzkh+R14Zd8ZSXuNeBXG/Se2l9TvVPlVAH26GdZ5PY7m29bvJhxFeicvYyXbjh3vYCvrbej8h45Skr+nnDyNcf9fwfQP/72TdVopf0OAQQi1Pd1hexFSeQ+W6v5gsMptfdZM/zA7v8gKMDHXXrns/HY95FcBWO1nuMfw/xv2NeDjRHgQ2qet+tVM/wVtpfUhUZfMW7dc3AdpY5Ex3wrAkBblh/j/n7HQzUKmiilPkWukopu2Ic6lAY/7b8Gk3zVtMAkqCRWAeREaJ0ejm4TrRUjlvejI57V05ZrfQZXDWkrjS2Qnf5QJwT8Jaqo18jsJOBxPWQ/ABf/T4cHB/HaonWBrq62IHOtYplvCz4DN+k8fK6qH51dD5t0x/LNt4rk/aAEMXgKhexEaHAqobjJY5Yafy/H+gTA7v1X56+z877Q8LYB3WGD/t06AV+FfI2inocGBfb8IHeArDevUo7bO/18bnvf5hIOFV5SDMOtv1hAPEKACGH4Z9OgHEWTm4dh3yuFpffjtsJG3IB+t6+gibNP/T7IZtvhmzZV6ytcMhwDDG2CG+z2C5g8PDua34tHvWjwVUB3pJi1U099hNYTDK9bZ+UdcxlQAI5AgYIa7ChdMyF6EtpOKnLVB1Xv0YIz7D98gLJwfZ2Hy8/5wqhNdTTgEaMTSfOytkCdxeutGUbwOt6FAl+yBvQKPSMimv5MHMO7fF+P+fq/bKybhaQE0AruFewOnjoIlMNAoitfhNhTol2sxFJhYfctQmLP+r+FNUUey8ze+UmkBNGZTO1PW78A0PmOsaN6et0UxKn/urfyjCd4lB2K1X7hrO0are5PnqADGAqVawKPBBxHtI2NF5flMEbgQcznhTuZGhJoKoBmQZd0G0RbhThm/w81m5GGc0Qk4PMYtYrWfc7bqj8coBDgHMAqc9adqXoRy6TBiPQNfvjhZhnUO2ObNzt9Mk1EBNEPJ4hTdrZgQXNhsdMZLiYCTk7HI6YWUSveuWA4BWmky21I7UPUitF0ryRg3IQIOTzVKLtgXecZBkQqgVao9OgtJHsbfRq0mZfwYCTh5BuP+D8P0Ny8/PJokwCFAk6DWRzMvQi54L0Lrq+vJl7fRJubai52/xQajAmgRWDV6sfr2nXvbSco0sRD4KuZono4l58Az5RCg3Qbu0yJW0j2JR4MhOs1ol0ry6Zz8GOP+w5IvOIwSaQG0247TXQVJj4Xpyb3l7TLsNJ2Tl2QiXujBo20CVABto0NCexW3ysWdZMG0bRJwsgbKd45Mdm+2mQOTgQAVQKeXQUlOQxaLOs2G6VsmcAbG/Y+2nIoJNiDAOYANcLT54zX9gKwWe8dAmF6E2sQSY7J7pCSfxKw/h18dQqYF0CHAavIt3bOwpRr72YuiDOZRI+DgyqTL3Liz80dxSVABREHR8ii6qzEmvT2q7JhPHQI1JyafB+u+OmcZ1AYBKoA2oDVMsrGcgHOvNjzPE50RsJebRPG2486kCCo15wCibs4+3RPrA/4LTwcKUWed8/wewrh/b5j+a3POIdLq0wKIFCcym+5+if9nR51tzvNbguf9R7DzR38V0AKInqm9YMS8CD2ArHePI/vc5VmQg2H635G7eidQYVoAcUCueaCFM0pZGkf2ucrTyQJ2/vhanBZAfGxFynoY5gJujbOIwPNehHH/bJj+qwKvZ2rVowUQJ/qSuw1WwLVxFhFs3k7egktv2+LLzh9jI1MBxAi3mrWTefh8Pu5iAsz/VJnmnguwXpmqEhVA3M1RdMtxJ5uDYuihtlnWTm7ARqvrm43OeO0ToAJon13zKae5xzEU+EbzCXId83msoDgl1wQSrDwnAZOCrerwaPAuFLdfUkV6WM4qGSe7YS3FEx7K7qXItACSajbbvFKQubAEuI69EfMu+Ro7fyM48YRTAcTDtX6u3a4XJ46BEuA21pGEfoJNPpeMDGZInASoAOKkWy/vkrsL3f+ieqdyHPaKbCrH5bj+qVWdcwBpoFedgPkA82YzM43iM1Wmw9apguwN0/9XmZIrJ8LQAkijoW1xy0bVR4P0Y6/ybXb+NC7CWplUAGmxr3kR+nJaxWeiXCe/wFLfczIhS06F4BAg7YYv648xJ3BI2mIkXr49DRmHIdA0V068bBa4ngAtgPUoUvoysepF6JWUSk+z2MvY+dPEXyubCiDtNjC/9g6PBvN3zJUlOil/1c5WjakAstAeTvbNghiJyqDyXlkplydaJgsbQYBzACOQJBzQqx+XAbkH8wD5VMYOr1cruesSps7i1hGgAkjzUqjodHR8e8FoMU0xUi3b9v0XZBc8CvxDqnLktPB83nWy0Ni2OWgA217z3PmtHVQ2w1Kgf4YfxY2y0Cx5k4EKIK0Wr2DjC3cG1uir7Ir3/dCTcgrXIocAKUCXis7Gne9B/I1Po/hMlmkbpLpkfzgAvTeT8gUqFBVA0g37hm6B2e8ncLlvk3TRmS/P3vvnZCe++iu5luIQIDnWtZJWytXs/A2g23yI0olqAzqxBFMBxIK1QaY9ehIu8Pwt+22Ao26wygEYIuV7j0RdMPEEcggQD9eRufbqhzDb/WucmDjyJEOGETDXYLPxaHDRsHD+jJgALYCIgdbNTnUTPPL7F5xj568LaETghHWPBjcZcYYBkRKgAogUZ4PMKnIJTP8PNjjL4HoEjFdZLqx3imHREeAQIDqW9XOq6BG4+99c/yRDmyBwiMxwtzcRj1HaIEAF0Aa0ppP06fthyj6Ou/+fNZ2GEYcTeEMm4NHgVPfq8BP83TkBDgE6Z1g/B1vauhbjfnb++nyaD52MdyrdVH3levNpGLNJAlQATYJqOVpZvoc0s1pOxwQjCajshSVCp488wZBOCXAI0CnBeukreiDG/XfWO8WwNgmY9+Au+SiWCj/UZg5MVocAFUAdKB0Fva5bySqx59dTO8qHiUcScPISHqTuLOZFiUckBDgEiATjukxUCxiv2ow/O3+UXAfzsv0TK+WKwZ/87JwAFUDnDN/JoSJnYNJvr3cC+C1yAiqHY6nwFyLPN6cZcggQVcOXdR9kdR8UAJVqVEwb5eNkOZYKz4JX4ecaRWF4cwR4sTbHafRYZZ2GCHhUxc4/OqiIzireJLiGXoSioEkF0ClFc+0lch06/4xOs2L6lgjsgkeD57aUgpFHEKACGIGkxYCyzEfn/1SLqRg9GgLzpUf3jyarfObCOYBO2r2sH0byh6AAxneSDdN2QMBJLwZeO2F9QG8HueQ2KS2Adpv+dd0cSW2pLzt/uwyjSKfSjUVXC7FUmDezNnhSAbQBrZpktVyJzv++dpMzXYQEVD6JrcNfiTDH3GRFrdlOU1f0eNx1rm4nKdPERsC8CO0GL0JPxFZCgBlTAbTaqGXdAXf+3yAZvdW0yi7++M9iPmBXeBVeHn9RYZTAIUAr7ai6MaKbay92/la4JRf3A7DMLkquOP9LogJopQ3NRZXKjq0kYdzECRwnZT008VI9LZBDgGYbrqKH4+5id38e2SdguwVnwpXYy9kXNV0JaQE0w79X34c7/5XNRGWcTBDYAlLQi1ATTUEFMBYk1fG4898CBTBprKg8nykCe2Cp8BmZkiiDwlABjNUoFTkHnf8vx4rm5Xknl0Huh72UvTmhvyl9umdzUfMZi3MAo7V7WW2N/0+hAELk9LyU4F3nNdkaO+sWoZ5hvrTEycuo2Ux6Eap/odMCqM9FZLHa7j7b5Rde5zf/egU5RpxbUd1T7wI2lVXeAy9CVzVq5ryHUwHUuwJUu+DS2/b32z7/EI/zsXnmkfUVK8qPoOYeXf87tC8qh8KL0PGhVSuK+oR3d4uCSlnNtdd3osgqc3k4eRov4d4Vd//VG8jWo/bqMltGO2GD8FB+mBeh8aj3lu7ZUKoURT1oAQyn2KPm0+9bw4OD+O0w2i/I0SM6v1Vuhvs9rIAw6231My9Cq6tehMJUcFbHNg4qgKHQlql5870ZF0thaHBA37876iu3i3I+lMB/B1Tf4VXZGbsGzxsemOffHAIMbf2y/js6/0FDg4L57rCBqSi74+6/dtQ6VXRHrHt4DHE2GjWerycdWljkACm5u3ytQpRy0wIYpFnRecF2fsE8uFZn/Ufv/Mai6P4HO+rOHMQS3Gftqc51WB9QDK5ubVSICsCg9egs3PV+0AY/X5KcXh3jNyttt3wfUR9vNrp38VSm4ykPHvHSixAVwGK1V3ffgr9QTd4HsODnwpY6qQ0TCnIs5gPWtJTOr8j7YanwV/0SOXppqQDWyOXAum30aDOQo5O30InRkd1Ay9J0u6eQ5qyW0/mUQLHMe7Hu4pPIUcua70nAsh6DsfHCqKFmKL+TYPq3v4vRNkKVq96PZmaoTlGL8hzmPGbl1YtQfi2A2sKXS6O+mjKTn5O7O+r8VhHn1sDP3hcCHwpsj5vAJZlpt4QFyacCUJ2Ii9pcem+aMO+kinsDq96iWfpac7J5blKCp1KOYphkDl9yeORTAVTkAnT+DwXc3vOw5PVPkdWvKGdDYT4dWX5ZzGgArx0v6zZZFC1OmfKnAHr0s+j8J8cJNdW8ndwO0/+mSGWwfQN2l3R4eBbusQXqmDsvQvlSADUN/0/BXsNO+lC3eJTbDPcYFMD3gmVXq9jueDQY7n6IOo2Xn6cAquPQuA9Cy+9Wh0MYQQU5GNt874itMqoTwPAxMNwhtjLSzth8Jah8DFbUg2mLkkT5+bEAyvLdoDt/F8zXODu/XY3OrcJ/eyrQn8TFmUoZtY1gN8mbOjmV8hMuNB8KoFc/gYv2tITZJlnc/2EX/98lUmDJ/QblnJ9IWekVsrW8nY9Xv4U/BLBNH/3weWdvkQ31KMj+uPvfk1j17DFqBXsFVMyJSMjHiRgKBO1OLGwLoOba68agO38X3leQZOe37u7cSlhUNhRofYmxX+riR9goFrSSC1sB9FbN/o/7dc21IK2TP2IZ69+3kCK6qEVnPgQviC7DTOa0CaTCOyEw+RnoEe4QoFd3x/3pftz9xwXZdnb3Lcje8PDzy9TqZy9LLVddim+XmgzJFHwxhgJfTqaoZEsJ0wKwGdx+8/8WaOevXSMXptr5TQbn3oYSysNQYB5WCR6QbNdMprQwFcAKuQb43p0MwhRKcfIM3HudnkLJI4vsdg9hLiAPr+ReiK3DpZEA/A4JTwGU9RQ0yWf8bpZRpLfluCpzqxNxo0RL9FS3fBNK4IVEy0y6MHtHxJrwvAiFpQD6dCY6xw+TvjYSLu9cjEd/m3CZoxdnbxhSOQ5KwBxuhnx8Ao8/05l0jYlqOJOAfboZ7o3WMbaPiVUWsn0c7r1m4+6fTVddZb0YKiCZBUlptYa5SVP5SOaUcJs8wrEA+sWce4Tc+VfhkZ+Z/tns/HYBOvk6/v63zWvRj2QKTwuCCWa74QRwhKEAyno0tPLcANqjcRXsrT3msjvLR9Eth3jH52AosC2eMtkNx/vD/yHAYt0Opr/tUAtCIze4oh6G6b8n7v5+rLwr6wK0x5ca1CWc4C45Akr5Fp8r5LcCsBVaZXkEDbCzz40whuwrsJphJp75/2GMeNk5beZxPzwIqWyTHaFikMTJUlg7O0MJvBhD7olk6fcQoFJ9mUfInd/G1ad51fntsp3u3sJ8xQnBDwVUJkHJ4V2S8DXh6eGvAujVTwN+2DPOIvdhwc8CL6+tbncfFEDQO+mq7WIOZnrl2162EYT2cwiwRN+Nt93Zu+yn+Ap+TLnNvJwAx6VT3Ctjxs1qhNd1c1lVdSYa7qpMY1/bFbkvXjh6f1abopFc/lkAZm6thNkVcuevtdZ8rzu/1WGqW4a9Al+sVSfg/4oBj8qNslS9uyH5pwBq5tYeAV9Odke5E3eThUHUsearwPZmhH5sJSv88yLk1xCgovtC096LP/8UV/OX/+uY9d8RE2mV5pNkPOYSnQSrzdYwbJVxSaMQ72SsErwiioySyMOfjlTR6VUzK+zOb3f/LwXV+e0qnuLscdmJSVzQGSjjAmwd9sZrsh8KwN7jrnI9/oLbjrnBBWuvKyu52zYIC+VHyf0cSuC6UKozSj02xjn4ooDfRA8OPxSA7cBSOL4M+XBY0rSJ2FbmcI+JMh9KoCfcCq6rmb12rrZGJfNVzb4CqOhsUDw78yQ7F/AEmeSWdJ5NhnOY7N6EAjgpwxJGJ5rKqXjh6IHRZRhPTtlXACr/iLu/7cAK93ByLUz/n4VbwSE1K7r/gBK4cUhIuF8H5MxwK8eakQAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkEB6BP4fVPHi4U0ZOJEAAAAASUVORK5CYII=" - webUI["html/js/menu.js"] = "DQpmdW5jdGlvbiBzZXRNZW51SXRlbSgpIHsNCg0KICBtZW51ID0gbmV3IE9iamVjdCgpOw0KICBzdWJNZW51ID0gbmV3IE9iamVjdCgpOw0KDQogIHZhciBtZW51X20zdSA9IG5ldyBPYmplY3QoKTsNCiAgbWVudV9tM3VbIl9tZW51VHlwZSJdICAgICAgID0gImlucHV0QXJyYXkiOw0KICBtZW51X20zdVsiX2VsZW1lbnQiXSAgICAgICAgPSAiTEkiOw0KICBtZW51X20zdVsiX2NvbmZpZ0tleSJdICAgICAgPSAiZmlsZXMubTN1IjsNCiAgbWVudV9tM3VbIl90ZXh0Il0gICAgICAgICAgID0gIlBsYXlsaXN0IjsNCiAgbWVudV9tM3VbIl9pY29uIl0gICAgICAgICAgID0gImltZy9tM3UucG5nIjsNCiAgbWVudV9tM3VbIl9oZWFkbGluZSJdICAgICAgID0gIlBsYXlsaXN0czogTG9jYWwgb3IgcmVtb3RlIjsNCiAgbWVudV9tM3VbIl91c2FnZSJdICAgICAgICAgID0gIjxiPkluZm88L2I+PGJyPkF2YWlsYWJpbGl0eTogRmlsZSBhdmFpbGFiaWxpdHkgaW4gcGVyY2VudDxicj5TdHJlYW1zOiAgICAgIE51bWJlciBvZiBzdHJlYW1zIGluIHRoZSBmaWxlLjxicj5ncm91cC10aXRsZTogIFN0cmVhbXMgdGhhdCBhcmUgYXNzaWduZWQgdG8gYSBncm91cC4gU2ltcGxpZmllcyBmaWx0ZXJpbmcgc3RyZWFtczxicj50dmctaWQ6ICAgICAgIFRoaXMgSUQgaXMgdXNlZCBmb3IgYXV0b21hdGljIG1hcHBpbmcsIG11c3QgbWF0Y2ggd2l0aCB0aGUgY2hhbm5lbCBJRCBpbiB0aGUgWE1MVFYgZmlsZS48YnI+VW5pcXVlIElEOiAgICBTdHJlYW1zIHdpdGggYSB1bmlxdWUgSUQgdG8gaWRlbnRpZnkgdGhlbS4gQWxsb3dzIGNoYW5uZWwgbmFtZSBjaGFuZ2VzIGluIHRoZSBNM1Ugd2l0aG91dCBsb3NpbmcgdGhlIFhNTFRWIG1hcHBpbmcgKFBQViAvIGxpdmUgZXZlbnRzKS48YnI+PGJyPjxiPlVzYWdlIE0zVTo8L2I+PGJyPlJlbW90ZSBwbGF5bGlzdDogaHR0cDovL3lvdXIuaXB0di5wcm92aWRlci5jb20vZmlsZS5tM3U8YnI+TG9jYWwgIHBsYXlsaXN0OiAvcGF0aC90by9maWxlLm0zdTxicj48YnI+PGI+VXNhZ2UgSERIb21lUnVuOjwvYj48YnI+SVA6IDE5Mi4xNjguMS4xMDo1MDA0PGJyPiINCiAgbWVudV9tM3VbIm5hbWUiXSAgICAgICAgICAgID0gImZpbGUiOw0KICBtZW51X20zdVsiaWQiXSAgICAgICAgICAgICAgPSAiZmlsZSI7DQogIG1lbnVfbTN1WyJ2YWx1ZSJdICAgICAgICAgICA9IG1lbnVfbTN1WyJuYW1lIl07DQogIG1lbnVfbTN1WyJwbGFjZWhvbGRlciJdICAgICA9ICJQbGF5bGlzdDogbG9jYWwgb3IgcmVtb3RlIjsNCiAgbWVudV9tM3VbIm9uY2xpY2siXSAgICAgICAgID0gImphdmFzY3JpcHQ6IHRvZ2dsZU1lbnUodGhpcyk7IjsNCiAgbWVudV9tM3VbImNsYXNzIl0gICAgICAgICAgID0gIm1lbnUtbm90QWN0aXZlIjsNCg0KDQogIHZhciBtZW51X2ZpbHRlciA9IG5ldyBPYmplY3QoKTsNCiAgbWVudV9maWx0ZXJbIl9tZW51VHlwZSJdICAgID0gImlucHV0QXJyYXkiOw0KICBtZW51X2ZpbHRlclsiX2VsZW1lbnQiXSAgICAgPSAiTEkiOw0KICBtZW51X2ZpbHRlclsiX2NvbmZpZ0tleSJdICAgPSAiZmlsdGVyIjsNCiAgbWVudV9maWx0ZXJbIl90ZXh0Il0gICAgICAgID0gIkZpbHRlciI7DQogIG1lbnVfZmlsdGVyWyJfaWNvbiJdICAgICAgICA9ICJpbWcvZmlsdGVyLnBuZyI7DQogIG1lbnVfZmlsdGVyWyJfaGVhZGxpbmUiXSAgICA9ICJGaWx0ZXIgYnkgTTNVIHBhcmFtZXRlcnMsIGUuZy4gZ3JvdXAtdGl0bGUiOw0KICBtZW51X2ZpbHRlclsiX3VzYWdlIl0gICAgICAgPSAiPGI+VXNhZ2U6PC9iPjxicj5TcG9ydCAtIEFsbCBzcG9ydHMgY2hhbm5lbHM8YnI+U3BvcnQge0hEfSAtIEFsbCBIRCBzcG9ydHMgY2hhbm5lbHM8YnI+U3BvcnQge0hEfSAhe0VTLERFfSAtIEFsbCBIRCBzcG9ydHMgY2hhbm5lbHMsIGJ1dCBubyBTcGFuaXNoIGFuZCBHZXJtYW48YnI+PGJyPlRvIGZpbHRlciB0aGUgc3RyZWFtcyBvZiBhIEhESG9tZVJ1biwgdGhlIHBsYXlsaXN0IG5hbWUgY2FuIGJlIGVudGVyZWQ6PGJyPk15IHR1bmVyIHtIRH0iDQogIC8vbWVudV9maWx0ZXJbIl91c2FnZSJdICAgICAgID0gIjxiPlVzYWdlOjwvYj48YnI+QWxsIHNwb3J0cyBjaGFubmVsczogU3BvcnQ8YnI+QWxsIEhEIHNwb3J0cyBjaGFubmVsczogU3BvcnQge0hEfTxicj5BbGwgSEQgc3BvcnRzIGNoYW5uZWxzLCBidXQgbm8gU3BhbmlzaCBhbmQgR2VybWFuOiBTcG9ydCB7SER9ICF7RVMsREV9Ig0KICBtZW51X2ZpbHRlclsibmFtZSJdICAgICAgICAgPSAiZmlsdGVyIjsNCiAgbWVudV9maWx0ZXJbImlkIl0gICAgICAgICAgID0gIk0zVSI7DQogIG1lbnVfZmlsdGVyWyJ2YWx1ZSJdICAgICAgICA9IG1lbnVfZmlsdGVyWyJuYW1lIl07DQogIG1lbnVfZmlsdGVyWyJwbGFjZWhvbGRlciJdICA9ICJGaWx0ZXIgc3RyZWFtczogU3BvcnQiOw0KICBtZW51X2ZpbHRlclsib25jbGljayJdICAgICAgPSAiamF2YXNjcmlwdDogdG9nZ2xlTWVudSh0aGlzKTsiOw0KICBtZW51X2ZpbHRlclsiY2xhc3MiXSAgICAgICAgPSAibWVudS1ub3RBY3RpdmUiOw0KDQogIHZhciBtZW51X2lkID0gbmV3IE9iamVjdCgpOw0KICBtZW51X2lkWyJfbWVudVR5cGUiXSAgICAgICAgPSAiaW5wdXRBcnJheSI7DQogIG1lbnVfaWRbIl9lbGVtZW50Il0gICAgICAgICA9ICJMSSI7DQogIG1lbnVfaWRbIl9jb25maWdLZXkiXSAgICAgICA9ICJpZCI7DQogIG1lbnVfaWRbIl90ZXh0Il0gICAgICAgICAgICA9ICJQTVMgSUQiOw0KICBtZW51X2lkWyJfaWNvbiJdICAgICAgICAgICAgPSAiaW1nL251bWJlci5wbmciOw0KICBtZW51X2lkWyJfaGVhZGxpbmUiXSAgICAgICAgPSAiU2V0dXAgUE1TIGd1aWRlIG51bWJlciI7DQogIG1lbnVfaWRbIl91c2FnZSJdICAgICAgICAgICA9ICdTb21lIHBsYXlsaXN0cyBoYXZlIHVuaXF1ZSBjaGFubmVsIElEcy48YnI+RW50ZXIgdGhlIGtleXdvcmQgb2YgdGhlIElELiBUaGUgY2hhbm5lbCBhc3NpZ25tZW50IGluIFBNUyB3aWxsIGNoYW5nZSBhcyBhIHJlc3VsdC48YnI+PGJyPmUuZy4gY2hhbm5lbElEPGJyPiNFWFRJTkY6MCB0eXBlPSJzdHJlYW0iIDxiPmNoYW5uZWxJZDwvYj49IjgxIiwgTXkgU3RyZWFtaW5nIENoYW5uZWwgSEQ8YnI+PGJyPk9ubHkgZW50ZXIgaGVyZSBpZiB5b3Uga25vdyB3aGF0IHlvdSBhcmUgZG9pbmchJw0KICBtZW51X2lkWyJuYW1lIl0gICAgICAgICAgICAgPSAiaWQiOw0KICBtZW51X2lkWyJpZCJdICAgICAgICAgICAgICAgPSAiaWQiOw0KICBtZW51X2lkWyJ2YWx1ZSJdICAgICAgICAgICAgPSBtZW51X2lkWyJuYW1lIl07DQogIG1lbnVfaWRbInBsYWNlaG9sZGVyIl0gICAgICA9ICJVbmlxdWUgSUQgZnJvbSB0aGUgTTNVIGZpbGUiOw0KICBtZW51X2lkWyJvbmNsaWNrIl0gICAgICAgICAgPSAiamF2YXNjcmlwdDogdG9nZ2xlTWVudSh0aGlzKTsiOw0KICBtZW51X2lkWyJjbGFzcyJdICAgICAgICAgICAgPSAibWVudS1ub3RBY3RpdmUiOw0KDQoNCiAgdmFyIG1lbnVfeG1sdHYgPSBuZXcgT2JqZWN0KCk7DQogIG1lbnVfeG1sdHZbIl9tZW51VHlwZSJdICAgICA9ICJpbnB1dEFycmF5IjsNCiAgbWVudV94bWx0dlsiX2VsZW1lbnQiXSAgICAgID0gIkxJIjsNCiAgbWVudV94bWx0dlsiX2NvbmZpZ0tleSJdICAgID0gImZpbGVzLnhtbHR2IjsNCiAgbWVudV94bWx0dlsiX3RleHQiXSAgICAgICAgID0gIlhNTFRWIjsNCiAgbWVudV94bWx0dlsiX2ljb24iXSAgICAgICAgID0gImltZy94bWx0di5wbmciOw0KICBtZW51X3htbHR2WyJfaGVhZGxpbmUiXSAgICAgPSAiWE1MVFYgZmlsZXM6IExvY2FsIG9yIHJlbW90ZSI7DQogIG1lbnVfeG1sdHZbIl91c2FnZSJdICAgICAgICA9ICI8Yj5JbmZvOjwvYj48YnI+QXZhaWxhYmlsaXR5OiBGaWxlIGF2YWlsYWJpbGl0eSBpbiBwZXJjZW50PGJyPkNoYW5uZWxzOiAgICAgTnVtYmVyIG9mIGNoYW5uZWxzIGluIHRoZSBmaWxlPGJyPlByb2dyYW1zOiAgICAgTnVtYmVyIG9mIEVQRyBkYXRhPGJyPjxicj48Yj5Vc2FnZTo8L2I+PGJyPlJlbW90ZSBYTUxUViBmaWxlOiBodHRwOi8veW91ci5lcGcucHJvdmlkZXIuY29tL2d1aWRlLnhtbDxicj5Mb2NhbCAgWE1MVFYgZmlsZTogL3BhdGgvdG8vZ3VpZGUueG1sIg0KICBtZW51X3htbHR2WyJuYW1lIl0gICAgICAgICAgPSAieG1sdHYiOw0KICBtZW51X3htbHR2WyJpZCJdICAgICAgICAgICAgPSAieG1sdHYiOw0KICBtZW51X3htbHR2WyJ2YWx1ZSJdICAgICAgICAgPSBtZW51X3htbHR2WyJuYW1lIl07DQogIG1lbnVfeG1sdHZbInBsYWNlaG9sZGVyIl0gICA9ICJYTUxUViBGaWxlOiBsb2NhbCBvciByZW1vdGUiOw0KICBtZW51X3htbHR2WyJvbmNsaWNrIl0gICAgICAgPSAiamF2YXNjcmlwdDogdG9nZ2xlTWVudSh0aGlzKTsiOw0KICBtZW51X3htbHR2WyJjbGFzcyJdICAgICAgICAgPSAibWVudS1ub3RBY3RpdmUiOw0KDQogIG1lbnVfbWFwcGluZyA9IG5ldyBPYmplY3QoKTsNCiAgbWVudV9tYXBwaW5nWyJfZWxlbWVudCJdICAgPSAiTEkiOw0KICBtZW51X21hcHBpbmdbIl90ZXh0Il0gICAgICA9ICJNYXBwaW5nIjsNCiAgbWVudV9tYXBwaW5nWyJfaWNvbiJdICAgICAgPSAiaW1nL21hcHBpbmcucG5nIjsNCiAgbWVudV9tYXBwaW5nWyJfY29uZmlnS2V5Il0gPSAibWFwcGluZyI7DQogIG1lbnVfbWFwcGluZ1siX2hlYWRsaW5lIl0gID0gIlhNTFRWIGFzc2lnbm1lbnQgYW5kIHNvcnRpbmcgb2YgY2hhbm5lbHMiOw0KICBtZW51X21hcHBpbmdbImlkIl0gICAgICAgICA9ICJtYXBwaW5nIjsNCiAgbWVudV9tYXBwaW5nWyJvbmNsaWNrIl0gICAgPSAiamF2YXNjcmlwdDogdG9nZ2xlTWVudSh0aGlzKTsiOw0KICBtZW51X21hcHBpbmdbImNsYXNzIl0gICAgICA9ICJtZW51LW5vdEFjdGl2ZSBwaG9uZSI7DQoNCiAgbWVudV91c2VycyA9IG5ldyBPYmplY3QoKTsNCiAgbWVudV91c2Vyc1siX2VsZW1lbnQiXSAgID0gIkxJIjsNCiAgbWVudV91c2Vyc1siX3RleHQiXSAgICAgID0gIlVzZXJzIjsNCiAgbWVudV91c2Vyc1siX2ljb24iXSAgICAgID0gImltZy91c2Vycy5wbmciOw0KICBtZW51X3VzZXJzWyJfY29uZmlnS2V5Il0gPSAidXNlcnMiOw0KICBtZW51X3VzZXJzWyJfaGVhZGxpbmUiXSAgPSAiQWRtaW5pc3RyYXRpb24gb2YgdXNlcnMgYW5kIHBlcm1pc3Npb25zIjsNCiAgbWVudV91c2Vyc1siaWQiXSAgICAgICAgID0gInVzZXJzIjsNCiAgbWVudV91c2Vyc1sib25jbGljayJdICAgID0gImphdmFzY3JpcHQ6IHRvZ2dsZU1lbnUodGhpcyk7IjsNCiAgbWVudV91c2Vyc1siY2xhc3MiXSAgICAgID0gIm1lbnUtbm90QWN0aXZlIjsNCiAgbWVudV91c2Vyc1siX3VzYWdlIl0gICAgID0gIjxiPkF1dGhvcml6YXRpb24gZ3JvdXBzOjwvYj48YnI+V0VCOiBVc2VycyBjYW4gbG9nIGluIHRvIHRoZSB3ZWIgaW50ZXJmYWNlPGJyPlBNUzogUHJvZ3JhbXMgbGlrZSBQbGV4IGNhbiBhY2Nlc3MgdGhlIGNoYW5uZWwgbGlzdC4gTG9naW4gdmlhIERWUiBJUDogdXNlcm5hbWU6cGFzc3dvcmRAeHRldmUuaXA6cG9ydDxicj5NM1U6IEFsbG93cyBjbGllbnRzIHRvIGRvd25sb2FkIHRoZSBNM1UgcGxheWxpc3QuPGJyPlhNTDogQWxsb3dzIGNsaWVudHMgdG8gZG93bmxvYWQgdGhlIFhNTFRWIGZpbGUuPGJyPkFQSTogQWxsb3dzIGNsaWVudHMgdG8gdXNlIHRoZSBBUEkgaW50ZXJmYWNlLjxicj48YnI+ISEhIEZvciBQTVMgYXV0aGVudGljYXRpb24sIG9ubHkgdGhlIGZvbGxvd2luZyBzcGVjaWFsIGNoYXJhY3RlcnMgYXJlIHZhbGlkOiAhJCgpPS4sLTo7PGJyPjxicj5UaGUgaW5kaXZpZHVhbCBhdXRoZW50aWNhdGlvbiBncm91cHMgY2FuIGJlIGFjdGl2YXRlZCAvIGRlYWN0aXZhdGVkIGluIHRoZSBzZXR0aW5ncyBtZW51LiINCiAgDQogIG1lbnVfc2V0dGluZ3MgPSBuZXcgT2JqZWN0KCk7DQogIG1lbnVfc2V0dGluZ3NbIl9lbGVtZW50Il0gICA9ICJMSSI7DQogIG1lbnVfc2V0dGluZ3NbIl90ZXh0Il0gICAgICA9ICJTZXR0aW5ncyI7DQogIG1lbnVfc2V0dGluZ3NbIl9pY29uIl0gICAgICA9ICJpbWcvc2V0dGluZ3MucG5nIjsNCiAgbWVudV9zZXR0aW5nc1siX2NvbmZpZ0tleSJdID0gInNldHRpbmdzIjsNCiAgbWVudV9zZXR0aW5nc1siX2hlYWRsaW5lIl0gID0gIlNldHRpbmdzIjsNCiAgbWVudV9zZXR0aW5nc1siX3N1Yk1lbnUiXSAgID0gIjcwMSw3MDIsNzAzLDcwNCw3MDUsNzA2LDcwNyw3MDgsNzk5LDcxMCw3MTEsNzEyLDcxMyw3MTQiOw0KICBtZW51X3NldHRpbmdzWyJpZCJdICAgICAgICAgPSAic2V0dGluZ3MiOw0KICBtZW51X3NldHRpbmdzWyJvbmNsaWNrIl0gICAgPSAiamF2YXNjcmlwdDogdG9nZ2xlTWVudSh0aGlzKTsiOw0KICBtZW51X3NldHRpbmdzWyJjbGFzcyJdICAgICAgPSAibWVudS1ub3RBY3RpdmUiOw0KDQogIG1lbnVfbG9nID0gbmV3IE9iamVjdCgpOw0KICBtZW51X2xvZ1siX2VsZW1lbnQiXSAgICAgICAgPSAiTEkiOw0KICBtZW51X2xvZ1siX3RleHQiXSAgICAgICAgICAgPSAiTG9nIjsNCiAgbWVudV9sb2dbIl9pY29uIl0gICAgICAgICAgID0gImltZy9sb2cucG5nIjsNCiAgbWVudV9sb2dbIl9oZWFkbGluZSJdICAgICAgID0gIkxvZyI7DQogIG1lbnVfbG9nWyJfY29uZmlnS2V5Il0gICAgICA9ICJsb2ciOw0KICBtZW51X2xvZ1siaWQiXSAgICAgICAgICAgICAgPSAibG9nIjsNCiAgbWVudV9sb2dbIm9uY2xpY2siXSAgICAgICAgID0gImphdmFzY3JpcHQ6IHRvZ2dsZU1lbnUodGhpcyk7IjsNCiAgbWVudV9sb2dbImNsYXNzIl0gICAgICAgICAgID0gIm1lbnUtbm90QWN0aXZlIjsNCg0KICBtZW51X2xvZ291dCA9IG5ldyBPYmplY3QoKTsNCiAgbWVudV9sb2dvdXRbIl9lbGVtZW50Il0gICA9ICJMSSI7DQogIG1lbnVfbG9nb3V0WyJfdGV4dCJdICAgICAgPSAiTG9nb3V0IjsNCiAgbWVudV9sb2dvdXRbIl9pY29uIl0gICAgICA9ICJpbWcvbG9nb3V0LnBuZyI7DQogIG1lbnVfbG9nb3V0WyJpZCJdICAgICAgICAgPSAibG9nb3V0IjsNCiAgbWVudV9sb2dvdXRbIm9uY2xpY2siXSAgICA9ICJqYXZhc2NyaXB0OiBsb2dvdXQoKTsiOw0KICBtZW51X2xvZ291dFsiY2xhc3MiXSAgICAgID0gIm1lbnUtbm90QWN0aXZlIjsNCg0KICB2YXIgbWVudV9zY2hlZHVsZSA9IG5ldyBPYmplY3QoKTsNCiAgbWVudV9zY2hlZHVsZVsiX21lbnVUeXBlIl0gID0gImlucHV0QXJyYXkiOw0KICBtZW51X3NjaGVkdWxlWyJfZWxlbWVudCJdICAgPSAiTEkiOw0KICBtZW51X3NjaGVkdWxlWyJfY29uZmlnS2V5Il0gPSAidXBkYXRlIjsNCiAgbWVudV9zY2hlZHVsZVsiX3RleHQiXSAgICAgID0gIlNjaGVkdWxlIjsNCiAgbWVudV9zY2hlZHVsZVsiX2ljb24iXSAgICAgID0gImltZy9zY2hlZHVsZS5wbmciOw0KICBtZW51X3NjaGVkdWxlWyJfaGVhZGxpbmUiXSAgPSAiU2NoZWR1bGUgZm9yIHVwZGF0aW5nIE0zVSwgWE1MVFYgZmlsZXMgYW5kIGNyZWF0aW5nIGEgbG9jYWwgYmFja3VwIjsNCiAgbWVudV9zY2hlZHVsZVsiX3VzYWdlIl0gICAgID0gIjxiPlVzYWdlOjwvYj48YnI+MDgxNSA9IDg6MTUgYW08YnI+MTkzMCA9IDc6MzAgcG0iDQogIG1lbnVfc2NoZWR1bGVbIm5hbWUiXSAgICAgICA9ICJ1cGRhdGUiOw0KICBtZW51X3NjaGVkdWxlWyJpZCJdICAgICAgICAgPSAidXBkYXRlIjsNCiAgbWVudV9zY2hlZHVsZVsidmFsdWUiXSAgICAgID0gbWVudV9pZFsibmFtZSJdOw0KICBtZW51X3NjaGVkdWxlWyJwbGFjZWhvbGRlciJdPSAidGltZSBvZiBkYXkgKDI0LWhvdXIgY2xvY2spIjsNCiAgbWVudV9zY2hlZHVsZVsib25jbGljayJdICAgID0gImphdmFzY3JpcHQ6IHRvZ2dsZU1lbnUodGhpcyk7IjsNCiAgbWVudV9zY2hlZHVsZVsiY2xhc3MiXSAgICAgID0gIm1lbnUtbm90QWN0aXZlIjsNCg0KICB2YXIgbWVudV9maWxlc1VwZGF0ZSA9IG5ldyBPYmplY3QoKTsNCiAgbWVudV9maWxlc1VwZGF0ZVsiX2VsZW1lbnQiXSA9ICJMSSI7DQogIG1lbnVfZmlsZXNVcGRhdGVbIl9tZW51VHlwZSJdICAgICA9ICJjaGVja2JveCI7DQogIG1lbnVfZmlsZXNVcGRhdGVbIl9jb25maWdLZXkiXSAgICA9ICJmaWxlcy51cGRhdGUiOw0KICBtZW51X2ZpbGVzVXBkYXRlWyJfbGFiZWwiXSAgICAgICAgPSAiVXBkYXRlIHRoZSBwcm92aWRlciBmaWxlcyBhdCBzeXN0ZW0gc3RhcnR1cCI7DQogIG1lbnVfZmlsZXNVcGRhdGVbIl9oZWFkbGluZSJdICAgICA9ICJVcGRhdGUgdGhlIHByb3ZpZGVyIGZpbGVzIGF0IHN5c3RlbSBzdGFydHVwIjsNCiAgbWVudV9maWxlc1VwZGF0ZVsiX3VzYWdlIl0gICAgICAgID0gIlBsYXlsaXN0cyBhbmQgWE1MVFYgZmlsZXMgYXJlIHVwZGF0ZWQgYnkgeFRlVmUgYXQgc3lzdGVtIHN0YXJ0dXAuIg0KICBtZW51X2ZpbGVzVXBkYXRlWyJuYW1lIl0gICAgICAgICAgPSAiZmlsZXMudXBkYXRlIjsNCiAgbWVudV9maWxlc1VwZGF0ZVsiaWQiXSAgICAgICAgICAgID0gImZpbGVzLnVwZGF0ZSI7DQogIG1lbnVfZmlsZXNVcGRhdGVbInZhbHVlIl0gICAgICAgICA9IG1lbnVfZmlsZXNVcGRhdGVbIm5hbWUiXTsNCiAgbWVudV9maWxlc1VwZGF0ZVsib25jbGljayJdICAgICAgID0gImphdmFzY3JpcHQ6IHRvZ2dsZU1lbnUodGhpcyk7IjsNCiAgbWVudV9maWxlc1VwZGF0ZVsiY2xhc3MiXSAgICAgICAgID0gIm1lbnUtbm90QWN0aXZlIjsNCiAgDQogIHZhciBtZW51X3R1bmVyID0gbmV3IE9iamVjdCgpOw0KICBtZW51X3R1bmVyWyJfZWxlbWVudCJdICAgICAgPSAiTEkiOw0KICBtZW51X3R1bmVyWyJfbWVudVR5cGUiXSAgICAgPSAic2VsZWN0IjsNCiAgbWVudV90dW5lclsiX2NvbmZpZ0tleSJdICAgID0gInR1bmVyIjsNCiAgbWVudV90dW5lclsiX2xhYmVsIl0gICAgICAgID0gIkF2YWlsYWJsZSB0dW5lcnMiOw0KICBtZW51X3R1bmVyWyJfdGV4dCJdICAgICAgICAgPSAiVHVuZXIiOw0KICBtZW51X3R1bmVyWyJfaWNvbiJdICAgICAgICAgPSAiaW1nL3R1bmVyLnBuZyI7DQogIG1lbnVfdHVuZXJbIl9oZWFkbGluZSJdICAgICA9ICJOdW1iZXIgb2YgdHVuZXJzIjsNCiAgbWVudV90dW5lclsiX3VzYWdlIl0gICAgICAgID0gIlRoaXMgc2V0dGluZyBpcyBvbmx5IHVzZWQgYnkgUGxleCBhbmQgRW1ieS48YnI+VGhlIG51bWJlciBvZiBjb25jdXJyZW50IHN0cmVhbXMgYWxsb3dlZCBieSB0aGUgSVBUViBwcm92aWRlci48YnI+QWZ0ZXIgYSBjaGFuZ2UsIHhUZVZlIG11c3QgYmUgZGVsZXRlIGluIHRoZSBQTVMgRFZSIHNldHRpbmdzIGFuZCBzZXQgdXAgYWdhaW4uIg0KICBtZW51X3R1bmVyWyJuYW1lIl0gICAgICAgICAgPSAidHVuZXIiOw0KICBtZW51X3R1bmVyWyJpZCJdICAgICAgICAgICAgPSAidHVuZXIiOw0KICBtZW51X3R1bmVyWyJ2YWx1ZSJdICAgICAgICAgPSBtZW51X3R1bmVyWyJuYW1lIl07DQogIG1lbnVfdHVuZXJbInBsYWNlaG9sZGVyIl0gICA9ICJOdW1iZXIgb2YgdHVuZXJzIjsNCiAgbWVudV90dW5lclsib25jbGljayJdICAgICAgID0gImphdmFzY3JpcHQ6IHRvZ2dsZU1lbnUodGhpcyk7IjsNCiAgbWVudV90dW5lclsiY2xhc3MiXSAgICAgICAgID0gIm1lbnUtbm90QWN0aXZlIjsNCg0KICB2YXIgb3B0aW9uVmFsdWVzID0gbmV3IEFycmF5KCk7DQogIGZvciAodmFyIGkgPSAxOyBpIDw9IDEwMDsgaSsrKSB7DQogICAgb3B0aW9uVmFsdWVzLnB1c2goaSkNCiAgfQ0KICBtZW51X3R1bmVyWyJfb3B0aW9uVmFsdWVzIl0gPSBvcHRpb25WYWx1ZXM7DQogIA0KICB2YXIgbWVudV9lcGcgPSBuZXcgT2JqZWN0KCk7DQogIG1lbnVfZXBnWyJfZWxlbWVudCJdID0gIkxJIjsNCiAgbWVudV9lcGdbIl9tZW51VHlwZSJdICAgICA9ICJzZWxlY3QiOw0KICBtZW51X2VwZ1siX2NvbmZpZ0tleSJdICAgID0gImVwZ1NvdXJjZSI7DQogIG1lbnVfZXBnWyJfbGFiZWwiXSAgICAgICAgPSAiU2VsZWN0aW9uIG9mIHRoZSBFUEcgc291cmNlIjsNCiAgbWVudV9lcGdbIl90ZXh0Il0gICAgICAgICA9ICJFUEcgc291cmNlIjsNCiAgbWVudV9lcGdbIl9oZWFkbGluZSJdICAgICA9ICJTZWxlY3Rpb24gb2YgdGhlIEVQRyBzb3VyY2UiOw0KICBtZW51X2VwZ1siX3VzYWdlIl0gICAgICAgID0gIlBNUzogICBVc2UgRVBHIGRhdGEgZnJvbSBQbGV4IG9yIEVtYnkuPGJyPlhFUEc6ICBVc2Ugb2YgZXh0ZXJuYWwgRVBHIGRhdGEgKFhNTFRWKS48YnI+ICAgICAgIFNldmVyYWwgWE1MVFYgc291cmNlcyBwb3NzaWJsZS48YnI+ICAgICAgIEFsbG93cyBlZGl0aW5nIGFuZCBvcmRlciBjaGFubmVscy48YnI+ICAgICAgIE0zVSAvIFhNTFRWIGV4cG9ydCAoSFRUUCBsaW5rIGZvciBJUFRWIGFwcHMpLiINCiAgbWVudV9lcGdbIm5hbWUiXSAgICAgICAgICA9ICJlcGdTb3VyY2UiOw0KICBtZW51X2VwZ1siaWQiXSAgICAgICAgICAgID0gImVwZ1NvdXJjZSI7DQogIG1lbnVfZXBnWyJ2YWx1ZSJdICAgICAgICAgPSBtZW51X2VwZ1sibmFtZSJdOw0KICBtZW51X2VwZ1sicGxhY2Vob2xkZXIiXSAgID0gIkVQRyBzb3VyY2UiOw0KICBtZW51X2VwZ1sib25jbGljayJdICAgICAgID0gImphdmFzY3JpcHQ6IHRvZ2dsZU1lbnUodGhpcyk7IjsNCiAgbWVudV9lcGdbImNsYXNzIl0gICAgICAgICA9ICJtZW51LW5vdEFjdGl2ZSI7DQogIG1lbnVfZXBnWyJfb3B0aW9uVmFsdWVzIl0gPSBuZXcgQXJyYXkoIlBNUyIsICJYRVBHIik7DQoNCiAgdmFyIG1lbnVfeGVwZyA9IG5ldyBPYmplY3QoKTsNCiAgbWVudV94ZXBnWyJfZWxlbWVudCJdID0gIkxJIjsNCiAgbWVudV94ZXBnWyJfbWVudVR5cGUiXSAgICAgPSAiY2hlY2tib3giOw0KICBtZW51X3hlcGdbIl9jb25maWdLZXkiXSAgICA9ICJ4dGV2ZUF1dG9VcGRhdGUiOw0KICBtZW51X3hlcGdbIl9sYWJlbCJdICAgICAgICA9ICJBdXRvbWF0aWMgdXBkYXRlIG9mIHhUZVZlIjsNCiAgbWVudV94ZXBnWyJfaGVhZGxpbmUiXSAgICAgPSAiQXV0b21hdGljIHVwZGF0ZSBvZiB4VGVWZSI7DQogIG1lbnVfeGVwZ1siX3VzYWdlIl0gICAgICAgID0gIklmIGEgbmV3IHZlcnNpb24gb2YgeFRlVmUgaXMgYXZhaWxhYmxlLCBpdCB3aWxsIGJlIGF1dG9tYXRpY2FsbHkgaW5zdGFsbGVkLiINCiAgbWVudV94ZXBnWyJuYW1lIl0gICAgICAgICAgPSAieHRldmVBdXRvVXBkYXRlIjsNCiAgbWVudV94ZXBnWyJpZCJdICAgICAgICAgICAgPSAieHRldmVBdXRvVXBkYXRlIjsNCiAgbWVudV94ZXBnWyJ2YWx1ZSJdICAgICAgICAgPSBtZW51X3hlcGdbIm5hbWUiXTsNCiAgbWVudV94ZXBnWyJvbmNsaWNrIl0gICAgICAgPSAiamF2YXNjcmlwdDogdG9nZ2xlTWVudSh0aGlzKTsiOw0KICBtZW51X3hlcGdbImNsYXNzIl0gICAgICAgICA9ICJtZW51LW5vdEFjdGl2ZSI7DQoNCiAgdmFyIG1lbnVfYXV0b0JhY2t1cFBhdGggPSBuZXcgT2JqZWN0KCk7DQogIG1lbnVfYXV0b0JhY2t1cFBhdGhbIl9lbGVtZW50Il0gICA9ICJMSSI7DQogIG1lbnVfYXV0b0JhY2t1cFBhdGhbIl9tZW51VHlwZSJdICA9ICJzaW5nbGVJbnB1dCI7DQogIG1lbnVfYXV0b0JhY2t1cFBhdGhbIl9jb25maWdLZXkiXSA9ICJiYWNrdXAucGF0aCI7DQogIG1lbnVfYXV0b0JhY2t1cFBhdGhbIl9sYWJlbCJdICAgICA9ICJMb2NhdGlvbiBmb3IgYXV0b21hdGljIGJhY2t1cHMiOw0KICBtZW51X2F1dG9CYWNrdXBQYXRoWyJfaGVhZGxpbmUiXSAgPSAiTG9jYXRpb24gZm9yIGF1dG9tYXRpYyBiYWNrdXBzIjsNCiAgbWVudV9hdXRvQmFja3VwUGF0aFsiX3VzYWdlIl0gICAgID0gIkJlZm9yZSBhbnkgdXBkYXRlIG9mIHRoZSBwcm92aWRlciBkYXRhIGJ5IHRoZSBzY2hlZHVsZSwgeFRlVmUgY3JlYXRlcyBhIGJhY2t1cC4gVGhlIHBhdGggZm9yIHRoZSBhdXRvbWF0aWMgYmFja3VwcyBjYW4gYmUgY2hhbmdlZC4geFRlVmUgcmVxdWlyZXMgd3JpdGUgcGVybWlzc2lvbiBmb3IgdGhpcyBmb2xkZXIuIg0KICBtZW51X2F1dG9CYWNrdXBQYXRoWyJuYW1lIl0gICAgICAgPSAiYmFja3VwLnBhdGgiOw0KICBtZW51X2F1dG9CYWNrdXBQYXRoWyJpZCJdICAgICAgICAgPSAiYmFja3VwLnBhdGgiOw0KICBtZW51X2F1dG9CYWNrdXBQYXRoWyJ2YWx1ZSJdICAgICAgPSBtZW51X2F1dG9CYWNrdXBQYXRoWyJuYW1lIl07DQogIG1lbnVfYXV0b0JhY2t1cFBhdGhbIm9uY2xpY2siXSAgICA9ICJqYXZhc2NyaXB0OiB0b2dnbGVNZW51KHRoaXMpOyI7DQogIG1lbnVfYXV0b0JhY2t1cFBhdGhbImNsYXNzIl0gICAgICA9ICJtZW51LW5vdEFjdGl2ZSI7DQoNCiAgdmFyIG1lbnVfYXV0b0JhY2t1cEtlZXAgPSBuZXcgT2JqZWN0KCk7DQogIG1lbnVfYXV0b0JhY2t1cEtlZXBbIl9lbGVtZW50Il0gICA9ICJMSSI7DQogIG1lbnVfYXV0b0JhY2t1cEtlZXBbIl9tZW51VHlwZSJdICA9ICJzZWxlY3QiOw0KICBtZW51X2F1dG9CYWNrdXBLZWVwWyJfY29uZmlnS2V5Il0gPSAiYmFja3VwLmtlZXAiOw0KICBtZW51X2F1dG9CYWNrdXBLZWVwWyJfdGV4dCJdICAgICAgPSAiS2VlcCI7DQogIG1lbnVfYXV0b0JhY2t1cEtlZXBbIl9sYWJlbCJdICAgICA9ICJOdW1iZXIgb2YgYmFja3VwcyB0byBrZWVwIjsNCiAgbWVudV9hdXRvQmFja3VwS2VlcFsiX2hlYWRsaW5lIl0gID0gIk51bWJlciBvZiBiYWNrdXBzIHRvIGtlZXAiOw0KICBtZW51X2F1dG9CYWNrdXBLZWVwWyJfdXNhZ2UiXSAgICAgPSAiIg0KICBtZW51X2F1dG9CYWNrdXBLZWVwWyJuYW1lIl0gICAgICAgPSAiYmFja3VwLmtlZXAiOw0KICBtZW51X2F1dG9CYWNrdXBLZWVwWyJpZCJdICAgICAgICAgPSAiYmFja3VwLmtlZXAiOw0KICBtZW51X2F1dG9CYWNrdXBLZWVwWyJ2YWx1ZSJdICAgICAgPSBtZW51X2F1dG9CYWNrdXBLZWVwWyJuYW1lIl07DQogIG1lbnVfYXV0b0JhY2t1cEtlZXBbIm9uY2xpY2siXSAgICA9ICJqYXZhc2NyaXB0OiB0b2dnbGVNZW51KHRoaXMpOyI7DQogIG1lbnVfYXV0b0JhY2t1cEtlZXBbImNsYXNzIl0gICAgICA9ICJtZW51LW5vdEFjdGl2ZSI7DQoNCiAgdmFyIG9wdGlvblZhbHVlcyA9IG5ldyBBcnJheSg1LCAxMCwgMjAsIDMwLCA0MCwgNTApOw0KICBtZW51X2F1dG9CYWNrdXBLZWVwWyJfb3B0aW9uVmFsdWVzIl0gPSBvcHRpb25WYWx1ZXM7DQoNCg0KICB2YXIgbWVudV9idWZmZXIgPSBuZXcgT2JqZWN0KCk7DQogIG1lbnVfYnVmZmVyWyJfZWxlbWVudCJdID0gIkxJIjsNCiAgbWVudV9idWZmZXJbIl9tZW51VHlwZSJdICAgICA9ICJjaGVja2JveCI7DQogIG1lbnVfYnVmZmVyWyJfY29uZmlnS2V5Il0gICAgPSAiYnVmZmVyIjsNCiAgbWVudV9idWZmZXJbIl9sYWJlbCJdICAgICAgICA9ICJTdHJlYW0gYnVmZmVyaW5nIFtFeHBlcmltZW50YWxdIjsNCiAgbWVudV9idWZmZXJbIl9oZWFkbGluZSJdICAgICA9ICJTdHJlYW0gYnVmZmVyaW5nIFtFeHBlcmltZW50YWxdIjsNCiAgbWVudV9idWZmZXJbIl91c2FnZSJdICAgICAgICA9ICJXaXRoIGFjdGl2YXRlZCBidWZmZXIsIHN0cmVhbXMgY2FuIGJlIHBsYXllZCBhbmQgcmVjb3JkZWQgbW9yZSBmbHVlbnRseS48YnI+VGhlIHN0cmVhbSBpcyBwYXNzZWQgZnJvbSB4VGVWZSB0byBQbGV4IC8gRW1ieSINCiAgbWVudV9idWZmZXJbIm5hbWUiXSAgICAgICAgICA9ICJidWZmZXIiOw0KICBtZW51X2J1ZmZlclsiaWQiXSAgICAgICAgICAgID0gImJ1ZmZlciI7DQogIG1lbnVfYnVmZmVyWyJ2YWx1ZSJdICAgICAgICAgPSBtZW51X2J1ZmZlclsibmFtZSJdOw0KICBtZW51X2J1ZmZlclsib25jbGljayJdICAgICAgID0gImphdmFzY3JpcHQ6IHRvZ2dsZU1lbnUodGhpcyk7IjsNCiAgbWVudV9idWZmZXJbImNsYXNzIl0gICAgICAgICA9ICJtZW51LW5vdEFjdGl2ZSI7DQoNCiAgdmFyIG1lbnVfYXBpID0gbmV3IE9iamVjdCgpOw0KICBtZW51X2FwaVsiX2VsZW1lbnQiXSA9ICJMSSI7DQogIG1lbnVfYXBpWyJfbWVudVR5cGUiXSAgICAgPSAiY2hlY2tib3giOw0KICBtZW51X2FwaVsiX2NvbmZpZ0tleSJdICAgID0gImFwaSI7DQogIG1lbnVfYXBpWyJfbGFiZWwiXSAgICAgICAgPSAiQVBJIGludGVyZmFjZSI7DQogIG1lbnVfYXBpWyJfaGVhZGxpbmUiXSAgICAgPSAiQVBJIGludGVyZmFjZSI7DQogIG1lbnVfYXBpWyJfdXNhZ2UiXSAgICAgICAgPSAnVmlhIEFQSSBpbnRlcmZhY2UgaXQgaXMgcG9zc2libGUgdG8gc2VuZCBjb21tYW5kcyB0byB4VGVWZS4gQVBJIGRvY3VtZW50YXRpb24gaXMgYXZhaWxhYmxlIDxhIGhyZWY9Imh0dHBzOi8veHRldmUuZGU/c2Nyb2xsPWFwaSI+aGVyZTwvYT4gJw0KICAvL21lbnVfYXBpWyJfdXNhZ2UiXSAgICAgICAgPSAnVmlhIEFQSSBpbnRlcmZhY2UgaXQgaXMgcG9zc2libGUgdG8gc2VuZCBjb21tYW5kcyB0byB4VGVWZS4gQVBJIGRvY3VtZW50YXRpb24gaXMgYXZhaWxhYmxlIDxhIGhyZWY9Imh0dHA6Ly9sb2NhbGhvc3Q6MTMxMz9zY3JvbGw9YXBpIj5oZXJlPC9hPiAnDQogIG1lbnVfYXBpWyJuYW1lIl0gICAgICAgICAgPSAiYXBpIjsNCiAgbWVudV9hcGlbImlkIl0gICAgICAgICAgICA9ICJhcGkiOw0KICBtZW51X2FwaVsidmFsdWUiXSAgICAgICAgID0gbWVudV9hcGlbIm5hbWUiXTsNCiAgbWVudV9hcGlbIm9uY2xpY2siXSAgICAgICA9ICJqYXZhc2NyaXB0OiB0b2dnbGVNZW51KHRoaXMpOyI7DQogIG1lbnVfYXBpWyJjbGFzcyJdICAgICAgICAgPSAibWVudS1ub3RBY3RpdmUiOw0KDQogIHZhciBtZW51X2F1dGhlbnRpY2F0aW9uV2ViID0gbmV3IE9iamVjdCgpOw0KICBtZW51X2F1dGhlbnRpY2F0aW9uV2ViWyJfZWxlbWVudCJdID0gIkxJIjsNCiAgbWVudV9hdXRoZW50aWNhdGlvbldlYlsiX21lbnVUeXBlIl0gICAgID0gImNoZWNrYm94IjsNCiAgbWVudV9hdXRoZW50aWNhdGlvbldlYlsiX2NvbmZpZ0tleSJdICAgID0gImF1dGhlbnRpY2F0aW9uLndlYiI7DQogIG1lbnVfYXV0aGVudGljYXRpb25XZWJbIl9sYWJlbCJdICAgICAgICA9ICJVc2VyIGF1dGhlbnRpY2F0aW9uIjsNCiAgbWVudV9hdXRoZW50aWNhdGlvbldlYlsiX2hlYWRsaW5lIl0gICAgID0gIlVzZXIgYXV0aGVudGljYXRpb24iOw0KICBtZW51X2F1dGhlbnRpY2F0aW9uV2ViWyJfdXNhZ2UiXSAgICAgICAgPSAiQWNjZXNzIHRvIHhUZVZlIHJlcXVpcmVzIGF1dGhlbnRpY2F0aW9uLiINCiAgbWVudV9hdXRoZW50aWNhdGlvbldlYlsibmFtZSJdICAgICAgICAgID0gImF1dGhlbnRpY2F0aW9uLndlYiI7DQogIG1lbnVfYXV0aGVudGljYXRpb25XZWJbImlkIl0gICAgICAgICAgICA9ICJhdXRoZW50aWNhdGlvbi53ZWIiOw0KICBtZW51X2F1dGhlbnRpY2F0aW9uV2ViWyJ2YWx1ZSJdICAgICAgICAgPSBtZW51X2F1dGhlbnRpY2F0aW9uV2ViWyJuYW1lIl07DQogIG1lbnVfYXV0aGVudGljYXRpb25XZWJbIm9uY2xpY2siXSAgICAgICA9ICJqYXZhc2NyaXB0OiB0b2dnbGVNZW51KHRoaXMpOyI7DQogIG1lbnVfYXV0aGVudGljYXRpb25XZWJbImNsYXNzIl0gICAgICAgICA9ICJtZW51LW5vdEFjdGl2ZSI7DQogIA0KICB2YXIgbWVudV9hdXRoZW50aWNhdGlvblBtcyA9IG5ldyBPYmplY3QoKTsNCiAgbWVudV9hdXRoZW50aWNhdGlvblBtc1siX2VsZW1lbnQiXSA9ICJMSSI7DQogIG1lbnVfYXV0aGVudGljYXRpb25QbXNbIl9tZW51VHlwZSJdICAgICA9ICJjaGVja2JveCI7DQogIG1lbnVfYXV0aGVudGljYXRpb25QbXNbIl9jb25maWdLZXkiXSAgICA9ICJhdXRoZW50aWNhdGlvbi5wbXMiOw0KICBtZW51X2F1dGhlbnRpY2F0aW9uUG1zWyJfbGFiZWwiXSAgICAgICAgPSAiUGxleCBhdXRoZW50aWNhdGlvbi4iOw0KICBtZW51X2F1dGhlbnRpY2F0aW9uUG1zWyJfaGVhZGxpbmUiXSAgICAgPSAiUGxleCBhdXRoZW50aWNhdGlvbi4iOw0KICBtZW51X2F1dGhlbnRpY2F0aW9uUG1zWyJfdXNhZ2UiXSAgICAgICAgPSAiUGxleCByZXF1ZXN0cyBhcmUgb25seSBwb3NzaWJsZSB3aXRoIGF1dGhlbnRpY2F0aW9uLjxicj5XYXJuaW5nISEhIEFmdGVyIGFjdGl2YXRpbmcgdGhpcyBmdW5jdGlvbiB4VGVWZSBtdXN0IGJlIGRlbGV0ZSBpbiB0aGUgUE1TIERWUiBzZXR0aW5ncyBhbmQgc2V0IHVwIGFnYWluLiINCiAgbWVudV9hdXRoZW50aWNhdGlvblBtc1sibmFtZSJdICAgICAgICAgID0gImF1dGhlbnRpY2F0aW9uLnBtcyI7DQogIG1lbnVfYXV0aGVudGljYXRpb25QbXNbImlkIl0gICAgICAgICAgICA9ICJhdXRoZW50aWNhdGlvbi5wbXMiOw0KICBtZW51X2F1dGhlbnRpY2F0aW9uUG1zWyJ2YWx1ZSJdICAgICAgICAgPSBtZW51X2F1dGhlbnRpY2F0aW9uUG1zWyJuYW1lIl07DQogIG1lbnVfYXV0aGVudGljYXRpb25QbXNbIm9uY2xpY2siXSAgICAgICA9ICJqYXZhc2NyaXB0OiB0b2dnbGVNZW51KHRoaXMpOyI7DQogIG1lbnVfYXV0aGVudGljYXRpb25QbXNbImNsYXNzIl0gICAgICAgICA9ICJtZW51LW5vdEFjdGl2ZSI7DQogIA0KICB2YXIgbWVudV9hdXRoZW50aWNhdGlvbk0zdSA9IG5ldyBPYmplY3QoKTsNCiAgbWVudV9hdXRoZW50aWNhdGlvbk0zdVsiX2VsZW1lbnQiXSA9ICJMSSI7DQogIG1lbnVfYXV0aGVudGljYXRpb25NM3VbIl9tZW51VHlwZSJdICAgICA9ICJjaGVja2JveCI7DQogIG1lbnVfYXV0aGVudGljYXRpb25NM3VbIl9jb25maWdLZXkiXSAgICA9ICJhdXRoZW50aWNhdGlvbi5tM3UiOw0KICBtZW51X2F1dGhlbnRpY2F0aW9uTTN1WyJfbGFiZWwiXSAgICAgICAgPSAiTTNVIGF1dGhlbnRpY2F0aW9uLiI7DQogIG1lbnVfYXV0aGVudGljYXRpb25NM3VbIl9oZWFkbGluZSJdICAgICA9ICJNM1UgYXV0aGVudGljYXRpb24uIjsNCiAgbWVudV9hdXRoZW50aWNhdGlvbk0zdVsiX3VzYWdlIl0gICAgICAgID0gIkRvd25sb2FkaW5nIHRoZSBNM1UgZmlsZSB2aWEgYW4gSFRUUCByZXF1ZXN0IGlzIG9ubHkgcG9zc2libGUgd2l0aCBhdXRoZW50aWNhdGlvbi4iDQogIG1lbnVfYXV0aGVudGljYXRpb25NM3VbIm5hbWUiXSAgICAgICAgICA9ICJhdXRoZW50aWNhdGlvbi5tM3UiOw0KICBtZW51X2F1dGhlbnRpY2F0aW9uTTN1WyJpZCJdICAgICAgICAgICAgPSAiYXV0aGVudGljYXRpb24ubTN1IjsNCiAgbWVudV9hdXRoZW50aWNhdGlvbk0zdVsidmFsdWUiXSAgICAgICAgID0gbWVudV9hdXRoZW50aWNhdGlvbk0zdVsibmFtZSJdOw0KICBtZW51X2F1dGhlbnRpY2F0aW9uTTN1WyJvbmNsaWNrIl0gICAgICAgPSAiamF2YXNjcmlwdDogdG9nZ2xlTWVudSh0aGlzKTsiOw0KICBtZW51X2F1dGhlbnRpY2F0aW9uTTN1WyJjbGFzcyJdICAgICAgICAgPSAibWVudS1ub3RBY3RpdmUiOw0KICANCg0KICB2YXIgbWVudV9hdXRoZW50aWNhdGlvblhtbCA9IG5ldyBPYmplY3QoKTsNCiAgbWVudV9hdXRoZW50aWNhdGlvblhtbFsiX2VsZW1lbnQiXSA9ICJMSSI7DQogIG1lbnVfYXV0aGVudGljYXRpb25YbWxbIl9tZW51VHlwZSJdICAgICA9ICJjaGVja2JveCI7DQogIG1lbnVfYXV0aGVudGljYXRpb25YbWxbIl9jb25maWdLZXkiXSAgICA9ICJhdXRoZW50aWNhdGlvbi54bWwiOw0KICBtZW51X2F1dGhlbnRpY2F0aW9uWG1sWyJfbGFiZWwiXSAgICAgICAgPSAiWEVQRyBhdXRoZW50aWNhdGlvbiI7DQogIG1lbnVfYXV0aGVudGljYXRpb25YbWxbIl9oZWFkbGluZSJdICAgICA9ICJYRVBHIGF1dGhlbnRpY2F0aW9uIjsNCiAgbWVudV9hdXRoZW50aWNhdGlvblhtbFsiX3VzYWdlIl0gICAgICAgID0gIkRvd25sb2FkaW5nIHRoZSBYRVBHIChYTUxUVikgZmlsZSB2aWEgYW4gSFRUUCByZXF1ZXN0IGlzIG9ubHkgcG9zc2libGUgd2l0aCBhdXRoZW50aWNhdGlvbi4iDQogIG1lbnVfYXV0aGVudGljYXRpb25YbWxbIm5hbWUiXSAgICAgICAgICA9ICJhdXRoZW50aWNhdGlvbi54bWwiOw0KICBtZW51X2F1dGhlbnRpY2F0aW9uWG1sWyJpZCJdICAgICAgICAgICAgPSAiYXV0aGVudGljYXRpb24ueG1sIjsNCiAgbWVudV9hdXRoZW50aWNhdGlvblhtbFsidmFsdWUiXSAgICAgICAgID0gbWVudV9hdXRoZW50aWNhdGlvblhtbFsibmFtZSJdOw0KICBtZW51X2F1dGhlbnRpY2F0aW9uWG1sWyJvbmNsaWNrIl0gICAgICAgPSAiamF2YXNjcmlwdDogdG9nZ2xlTWVudSh0aGlzKTsiOw0KICBtZW51X2F1dGhlbnRpY2F0aW9uWG1sWyJjbGFzcyJdICAgICAgICAgPSAibWVudS1ub3RBY3RpdmUiOw0KDQogIHZhciBtZW51X2F1dGhlbnRpY2F0aW9uQXBpID0gbmV3IE9iamVjdCgpOw0KICBtZW51X2F1dGhlbnRpY2F0aW9uQXBpWyJfZWxlbWVudCJdID0gIkxJIjsNCiAgbWVudV9hdXRoZW50aWNhdGlvbkFwaVsiX21lbnVUeXBlIl0gICAgID0gImNoZWNrYm94IjsNCiAgbWVudV9hdXRoZW50aWNhdGlvbkFwaVsiX2NvbmZpZ0tleSJdICAgID0gImF1dGhlbnRpY2F0aW9uLmFwaSI7DQogIG1lbnVfYXV0aGVudGljYXRpb25BcGlbIl9sYWJlbCJdICAgICAgICA9ICJBUEkgYXV0aGVudGljYXRpb24iOw0KICBtZW51X2F1dGhlbnRpY2F0aW9uQXBpWyJfaGVhZGxpbmUiXSAgICAgPSAiQVBJIGF1dGhlbnRpY2F0aW9uIjsNCiAgbWVudV9hdXRoZW50aWNhdGlvbkFwaVsiX3VzYWdlIl0gICAgICAgID0gIkFjY2VzcyB0byB0aGUgQVBJIGludGVyZmFjZSBpcyBvbmx5IHBvc3NpYmxlIHdpdGggYXV0aGVudGljYXRpb24uIg0KICBtZW51X2F1dGhlbnRpY2F0aW9uQXBpWyJuYW1lIl0gICAgICAgICAgPSAiYXV0aGVudGljYXRpb24uYXBpIjsNCiAgbWVudV9hdXRoZW50aWNhdGlvbkFwaVsiaWQiXSAgICAgICAgICAgID0gImF1dGhlbnRpY2F0aW9uLmFwaSI7DQogIG1lbnVfYXV0aGVudGljYXRpb25BcGlbInZhbHVlIl0gICAgICAgICA9IG1lbnVfYXV0aGVudGljYXRpb25BcGlbIm5hbWUiXTsNCiAgbWVudV9hdXRoZW50aWNhdGlvbkFwaVsib25jbGljayJdICAgICAgID0gImphdmFzY3JpcHQ6IHRvZ2dsZU1lbnUodGhpcyk7IjsNCiAgbWVudV9hdXRoZW50aWNhdGlvbkFwaVsiY2xhc3MiXSAgICAgICAgID0gIm1lbnUtbm90QWN0aXZlIjsNCiAgDQogIA0KICAvLyBNYWluIG1lbnUNCiAgbWVudVsxMF0gPSBtZW51X20zdTsNCg0KICBzd2l0Y2goY29uZmlnWyJlcGdTb3VyY2UiXSkgew0KICAgIGNhc2UgIlBNUyI6DQogICAgICBtZW51WzIwXSA9IG1lbnVfaWQ7DQogICAgICBicmVhazsNCiAgICANCiAgICBjYXNlICJYTUxUViI6DQogICAgICBtZW51WzQwXSA9IG1lbnVfeG1sdHY7DQogICAgICBicmVhazsNCg0KICAgIGNhc2UgIlhFUEciOg0KICAgICAgbWVudVs0MF0gPSBtZW51X3htbHR2Ow0KICAgICAgbWVudVs1MF0gPSBtZW51X21hcHBpbmc7DQogICAgICBicmVhazsNCiAgfQ0KICANCiAgbWVudVszMF0gPSBtZW51X2ZpbHRlcjsNCiAgDQogIGlmIChjb25maWdbImF1dGhlbnRpY2F0aW9uLndlYiJdID09IHRydWUpIHsNCiAgICBtZW51WzYwXSA9IG1lbnVfdXNlcnM7DQogIH0NCg0KICBtZW51WzcwXSA9IG1lbnVfc2V0dGluZ3M7DQogIG1lbnVbODBdID0gbWVudV9sb2c7DQogIGlmIChjb25maWdbImF1dGhlbnRpY2F0aW9uLndlYiJdID09IHRydWUpIHsNCiAgICBtZW51WzEwMF0gPSBtZW51X2xvZ291dDsNCiAgfSANCiAgDQoNCiAgLy8gU3ViLU1lbnUNCg0KICBzdWJNZW51WzcwMV0gPSBtZW51X3NjaGVkdWxlOw0KICBzdWJNZW51WzcwMl0gPSBtZW51X2ZpbGVzVXBkYXRlOw0KICBzdWJNZW51WzcwM10gPSBtZW51X3R1bmVyOw0KICBzdWJNZW51WzcwNF0gPSBtZW51X2VwZzsNCiAgc3ViTWVudVs3MDVdID0gbWVudV94ZXBnOw0KICBzdWJNZW51WzcwNl0gPSBtZW51X2F1dG9CYWNrdXBQYXRoOw0KICBzdWJNZW51WzcwN10gPSBtZW51X2F1dG9CYWNrdXBLZWVwOw0KICBzdWJNZW51WzcwOF0gPSBtZW51X2J1ZmZlcjsNCiAgDQogIHN1Yk1lbnVbNzEwXSA9IG1lbnVfYXV0aGVudGljYXRpb25XZWI7DQogIA0KICBpZiAoY29uZmlnWyJhdXRoZW50aWNhdGlvbi53ZWIiXSA9PSB0cnVlKSB7DQogICAgc3ViTWVudVs3MTFdID0gbWVudV9hdXRoZW50aWNhdGlvblBtczsNCiAgICBzdWJNZW51WzcxMl0gPSBtZW51X2F1dGhlbnRpY2F0aW9uTTN1Ow0KICAgIHN1Yk1lbnVbNzEzXSA9IG1lbnVfYXV0aGVudGljYXRpb25YbWw7DQogICAgc3ViTWVudVs3MTRdID0gbWVudV9hdXRoZW50aWNhdGlvbkFwaTsNCiAgfQ0KDQogIHN1Yk1lbnVbNzk5XSA9IG1lbnVfYXBpOw0KDQogIA0KDQogIHJldHVybg0KfQ0KDQpmdW5jdGlvbiBjcmVhdGVNZW51KCkgew0KDQogIHNob3dFbGVtZW50KCJwb3B1cCIsIGZhbHNlKTsNCg0KICAvL2NvbnNvbGUubG9nKGNvbmZpZyk7DQogIHNldE1lbnVJdGVtKCk7DQogIHZhciBtZW51SXRlbXMgPSBnZXRPYmpLZXlzKG1lbnUpDQogIHZhciBuYXYgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgiTkFWIilbMF07DQogIG5hdi5pbm5lckhUTUwgPSAiIjsNCiAgdmFyIG5ld0l0ZW0gPSBuZXcgT2JqZWN0KCk7DQoNCiAgZm9yICh2YXIgaSA9IDA7IGkgPCBtZW51SXRlbXMubGVuZ3RoOyBpKyspIHsNCg0KICAgIA0KICAgIHZhciBuZXdJdGVtID0gbWVudVttZW51SXRlbXNbaV1dOw0KICAgIG5ld0l0ZW1bImlkIl0gPSBtZW51SXRlbXNbaV07DQoNCiAgICANCiAgICBzd2l0Y2gobmV3SXRlbS5oYXNPd25Qcm9wZXJ0eSgiX2ljb24iKSkgew0KICAgICAgY2FzZSB0cnVlOiANCiAgICAgICAgdmFyIGl0ZW1UZXh0ID0gbmV3SXRlbVsiX3RleHQiXTsNCiAgICAgICAgZGVsZXRlIG5ld0l0ZW1bIl90ZXh0Il0NCiAgICAgICAgbmF2LmFwcGVuZENoaWxkKGNyZWF0ZUVsZW1lbnQobmV3SXRlbSkpOw0KICAgICAgICBuZXdJdGVtWyJfdGV4dCJdID0gaXRlbVRleHQ7DQogICAgICAgIHZhciBuZXdJY29uID0gbmV3IE9iamVjdCgpOw0KICAgICAgICBuZXdJY29uWyJfZWxlbWVudCJdID0gIklNRyI7DQogICAgICAgIG5ld0ljb25bInNyYyJdID0gbmV3SXRlbVsiX2ljb24iXTsNCg0KICAgICAgICB2YXIgY3VycmVudEVsZW1lbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChtZW51SXRlbXNbaV0pOw0KICAgICAgICBjdXJyZW50RWxlbWVudC5hcHBlbmRDaGlsZChjcmVhdGVFbGVtZW50KG5ld0ljb24pKTsNCg0KDQogICAgICAgIHZhciB0ZXh0ID0gbmV3IE9iamVjdCgpOw0KICAgICAgICB0ZXh0WyJfZWxlbWVudCJdID0gIlAiDQogICAgICAgIHRleHRbIl90ZXh0Il0gPSBpdGVtVGV4dDsNCiAgICAgICAgdGV4dFsiY2xhc3MiXSA9ICJuYXYtdGV4dCINCiAgICAgICAgY3VycmVudEVsZW1lbnQuYXBwZW5kQ2hpbGQoY3JlYXRlRWxlbWVudCh0ZXh0KSk7DQogICAgICAgIGJyZWFrOw0KDQogICAgICBkZWZhdWx0Og0KICAgICAgICBuYXYuYXBwZW5kQ2hpbGQoY3JlYXRlRWxlbWVudChuZXdJY29uKSk7DQogICAgICAgIGJyZWFrOw0KICAgIH0NCg0KICB9DQogIGlmIChhY3RpdmVNZW51ICE9IHVuZGVmaW5lZCkgew0KICAgIC8vY29uc29sZS5sb2coYWN0aXZlTWVudSk7DQogICAgdG9nZ2xlTWVudShhY3RpdmVNZW51KTsNCiAgfQ0KDQogIHJldHVybg0KfQ0KDQpmdW5jdGlvbiB0b2dnbGVNZW51KGVsbSkgew0KICAvL3Nob3dTdHJlYW1zKGZhbHNlKTsNCiAgY2xlYXJJbnRlcnZhbChsb2dJbnRlcnZhbCkNCiAgYWN0aXZlTWVudSA9IGVsbTsNCiAgdmFyIGl0ZW0gPSBtZW51W2VsbS5pZF0NCiAgdmFyIGRpdiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzZXR0aW5ncyIpOw0KICBkaXYuaW5uZXJIVE1MID0gIiI7DQogIA0KICAvLyBTZXQgSGVhZGxpbmUNCiAgdmFyIGhlYWRsaW5lID0gbmV3IE9iamVjdCgpOw0KICBoZWFkbGluZVsiX2VsZW1lbnQiXSA9ICJINCI7DQogIGhlYWRsaW5lWyJfdGV4dCJdID0gaXRlbVsiX2hlYWRsaW5lIl07DQogIGRpdi5hcHBlbmRDaGlsZChjcmVhdGVFbGVtZW50KGhlYWRsaW5lKSk7DQoNCiAgLy8gU3ViLU1lbnUNCiAgaWYgKGl0ZW0uaGFzT3duUHJvcGVydHkoIl9zdWJNZW51IikgPT0gdHJ1ZSkgew0KICAgIG9wZW5TdWJNZW51KGl0ZW0pOw0KICAgIHJldHVybg0KICB9DQoNCiAgLy8gTWFwcGluZywgVXNlcnMsIExvZywgRmlsZXMNCiAgc3dpdGNoKGl0ZW1bIl9jb25maWdLZXkiXSkgew0KICAgIGNhc2UgIm1hcHBpbmciOiAgICAgb3Blbk1hcHBpbmdFZGl0b3IoaXRlbSk7IHJldHVybjsgYnJlYWs7DQogICAgY2FzZSAidXNlcnMiOiAgICAgICBvcGVuVXNlcnMoaXRlbSk7IHJldHVybjsgYnJlYWs7DQogICAgY2FzZSAibG9nIjogICAgICAgICBzaG93TG9nKGl0ZW0pOyByZXR1cm47IGJyZWFrOw0KICAgIGNhc2UgImZpbGVzLm0zdSI6ICAgb3BlbkZpbGVzKGl0ZW0sICJtM3UiKTsgcmV0dXJuOyBicmVhazsNCiAgICBjYXNlICJmaWxlcy54bWx0diI6IG9wZW5GaWxlcyhpdGVtLCAieG1sdHYiKTsgcmV0dXJuOyBicmVhazsNCg0KICAgIGNhc2UgImZpbHRlciI6ICAgICAgc2hvd1N0cmVhbXModHJ1ZSk7IGJyZWFrOw0KICB9DQoNCiANCg0KICB2YXIgbmV3SFIgPSBuZXcgT2JqZWN0KCk7DQogIG5ld0hSWyJfZWxlbWVudCJdID0gIkhSIg0KICBkaXYuYXBwZW5kQ2hpbGQoY3JlYXRlRWxlbWVudChuZXdIUikpOw0KICANCiAgdmFyIG5ld0VudHJ5ID0gbmV3IE9iamVjdCgpOw0KICBuZXdFbnRyeVsiX2VsZW1lbnQiXSAgPSAiSU5QVVQiOw0KICBuZXdFbnRyeVsidHlwZSJdID0gImJ1dHRvbiI7DQogIC8vbmV3RW50cnlbImNsYXNzIl0gPSAic2F2ZSI7DQogIG5ld0VudHJ5WyJ2YWx1ZSJdID0gIlNhdmUiOw0KICBuZXdFbnRyeVsib25jbGljayJdID0gInNhdmVEYXRhMignc2V0dGluZ3MnKSINCiAgZGl2LmFwcGVuZENoaWxkKGNyZWF0ZUVsZW1lbnQobmV3RW50cnkpKTsNCg0KDQogIHZhciBuZXdXcmFwcGVyID0gbmV3IE9iamVjdCgpOw0KICBuZXdXcmFwcGVyWyJfZWxlbWVudCJdICA9ICJESVYiOw0KICBuZXdXcmFwcGVyWyJpZCJdICAgICAgICA9ICJib3gtd3JhcHBlciI7DQogIGRpdi5hcHBlbmRDaGlsZChjcmVhdGVFbGVtZW50KG5ld1dyYXBwZXIpKTsNCg0KICBkaXYgPSBkaXYubGFzdENoaWxkOw0KICANCiAgZGl2LmFwcGVuZENoaWxkKGNyZWF0ZU1lbnVJdGVtKGl0ZW0pKQ0KDQogIC8vIHVzYWdlIEluZm8gIA0KICBzd2l0Y2gobWVudVthY3RpdmVNZW51LmlkXS5oYXNPd25Qcm9wZXJ0eSgiX3VzYWdlIikpIHsNCiAgICBjYXNlIHRydWU6IA0KICAgICAgdmFyIHVzYWdlSXRlbSA9IG5ldyBPYmplY3QoKTsNCiAgICAgIHVzYWdlSXRlbVsiX2VsZW1lbnQiXSA9ICJQUkUiDQogICAgICB1c2FnZUl0ZW1bIl90ZXh0Il0gICAgPSBtZW51W2FjdGl2ZU1lbnUuaWRdWyJfdXNhZ2UiXTsNCiAgICAgIGRpdi5hcHBlbmRDaGlsZChjcmVhdGVFbGVtZW50KHVzYWdlSXRlbSkpOw0KICB9DQogIA0KICBjYWxjdWxhdGVXcmFwcGVySGVpZ2h0KCk7DQoNCn0NCg0KZnVuY3Rpb24gY3JlYXRlTWVudUl0ZW0oaXRlbSkgew0KICB2YXIgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIkRJViIpOw0KICBzd2l0Y2goaXRlbVsiX21lbnVUeXBlIl0pIHsNCiAgICBjYXNlICJpbnB1dEFycmF5IjoNCiAgICAgIGlmIChjb25maWcuaGFzT3duUHJvcGVydHkoaXRlbVsiX2NvbmZpZ0tleSJdKSA9PSB0cnVlKSB7DQogICAgICAgIHZhciB2YWx1ZSA9IGNvbmZpZ1tpdGVtWyJfY29uZmlnS2V5Il1dOw0KICAgICAgfSBlbHNlIHsNCiAgICAgICAgdmFyIHZhbHVlID0gbmV3IEFycmF5KCk7DQogICAgICB9DQogICAgICANCiAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdmFsdWUubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgdmFyIG5ld0VudHJ5ID0gbmV3IE9iamVjdCgpOw0KICAgICAgICBuZXdFbnRyeSA9IGl0ZW0NCiAgICAgICAgZGVsZXRlIG5ld0VudHJ5WyJvbmNsaWNrIl07DQogICAgICAgIG5ld0VudHJ5WyJfZWxlbWVudCJdICA9ICJJTlBVVCI7DQogICAgICAgIG5ld0VudHJ5WyJ2YWx1ZSJdICAgICA9IHZhbHVlW2ldOw0KICAgICAgICBuZXdFbnRyeVsidHlwZSJdICAgICAgPSAic2VhcmNoIjsNCiAgICAgICAgbmV3RW50cnlbImRhdGEtbWVudXR5cGUiXSA9IGl0ZW1bIl9tZW51VHlwZSJdOw0KICAgICAgICBuZXdFbnRyeVsiZGF0YS1tZW51a2V5Il0gPSBpdGVtWyJfY29uZmlnS2V5Il07DQogICAgICAgIGVsZW1lbnQuYXBwZW5kQ2hpbGQoY3JlYXRlRWxlbWVudChuZXdFbnRyeSkpOw0KDQogICAgICB9DQogICAgICAvLyBOZXcgZW50cnkgZm9yIGFycmF5DQogICAgICB2YXIgbmV3RW50cnkgPSBuZXcgT2JqZWN0KCk7DQogICAgICBuZXdFbnRyeVsiX2VsZW1lbnQiXSAgICAgID0gIklOUFVUIjsNCiAgICAgIG5ld0VudHJ5WyJ0eXBlIl0gICAgICAgICAgPSAic2VhcmNoIjsNCiAgICAgIG5ld0VudHJ5WyJuYW1lIl0gICAgICAgICAgPSBpdGVtWyJuYW1lIl07DQogICAgICBuZXdFbnRyeVsicGxhY2Vob2xkZXIiXSAgID0gaXRlbVsicGxhY2Vob2xkZXIiXTsNCiAgICAgIG5ld0VudHJ5WyJ2YWx1ZSJdICAgICAgICAgPSAiIjsNCiAgICAgIG5ld0VudHJ5WyJkYXRhLW1lbnV0eXBlIl0gPSBpdGVtWyJfbWVudVR5cGUiXTsNCiAgICAgIG5ld0VudHJ5WyJkYXRhLW1lbnVrZXkiXSAgPSBpdGVtWyJfY29uZmlnS2V5Il07DQogICAgICBlbGVtZW50LmFwcGVuZENoaWxkKGNyZWF0ZUVsZW1lbnQobmV3RW50cnkpKTsNCiAgICAgIGJyZWFrOw0KICANCiAgICBjYXNlICJzaW5nbGVJbnB1dCI6DQogICAgICB2YXIgdmFsdWUgPSBjb25maWdbaXRlbVsiX2NvbmZpZ0tleSJdXTsNCiAgICAgIGlmICh2YWx1ZSA9PSB1bmRlZmluZWQpIHsNCiAgICAgICAgdmFsdWUgPSAiIjsNCiAgICAgIH0NCiAgICAgIHZhciBuZXdFbnRyeSA9IG5ldyBPYmplY3QoKTsNCiAgICAgIG5ld0VudHJ5ID0gaXRlbTsNCiAgICAgIGRlbGV0ZSBuZXdFbnRyeVsib25jbGljayJdOw0KICAgICAgbmV3RW50cnlbIl9lbGVtZW50Il0gID0gIklOUFVUIjsNCiAgICAgIG5ld0VudHJ5WyJ2YWx1ZSJdICAgICA9IHZhbHVlOw0KICAgICAgbmV3RW50cnlbInR5cGUiXSAgICAgID0gInNlYXJjaCI7DQogICAgICBuZXdFbnRyeVsiZGF0YS1tZW51dHlwZSJdID0gaXRlbVsiX21lbnVUeXBlIl07DQogICAgICBuZXdFbnRyeVsiZGF0YS1tZW51a2V5Il0gPSBpdGVtWyJfY29uZmlnS2V5Il07DQogICAgICBlbGVtZW50LmFwcGVuZENoaWxkKGNyZWF0ZUVsZW1lbnQobmV3RW50cnkpKTsNCiAgICAgIGJyZWFrOw0KDQogICAgY2FzZSAiY2hlY2tib3giOg0KICAgICAgdmFyIHZhbHVlID0gY29uZmlnW2l0ZW1bIl9jb25maWdLZXkiXV07DQogICAgICBpZiAodmFsdWUgPT0gdW5kZWZpbmVkKSB7DQogICAgICAgIHZhbHVlID0gZmFsc2U7DQogICAgICB9DQogICAgICB2YXIgbmV3RW50cnkgPSBuZXcgT2JqZWN0KCk7DQogICAgICBuZXdFbnRyeSA9IGl0ZW07DQogICAgICBkZWxldGUgbmV3RW50cnlbIm9uY2xpY2siXTsNCiAgICAgIG5ld0VudHJ5WyJfZWxlbWVudCJdICA9ICJJTlBVVCI7DQogICAgICBuZXdFbnRyeVsidmFsdWUiXSAgICAgPSB2YWx1ZTsNCiAgICAgIG5ld0VudHJ5WyJ0eXBlIl0gICAgICA9ICJjaGVja2JveCI7DQogICAgICBuZXdFbnRyeVsiZGF0YS1tZW51dHlwZSJdID0gaXRlbVsiX21lbnVUeXBlIl07DQogICAgICBuZXdFbnRyeVsiZGF0YS1tZW51a2V5Il0gPSBpdGVtWyJfY29uZmlnS2V5Il07DQogICAgICBlbGVtZW50LmFwcGVuZENoaWxkKGNyZWF0ZUVsZW1lbnQobmV3RW50cnkpKTsNCiAgICAgIGVsZW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIklOUFVUIilbMF0uY2hlY2tlZCA9IHZhbHVlOw0KICAgICAgYnJlYWs7DQogICAgDQogICAgY2FzZSAic2VsZWN0IjoNCiAgICAgIHZhciB2YWx1ZSA9IGNvbmZpZ1tpdGVtWyJfY29uZmlnS2V5Il1dOw0KICAgICAgdmFyIG5ld0VudHJ5ID0gbmV3IE9iamVjdCgpOw0KICAgICAgbmV3RW50cnkgPSBpdGVtOw0KICAgICAgZGVsZXRlIG5ld0VudHJ5WyJvbmNsaWNrIl0NCiAgICAgIG5ld0VudHJ5WyJfZWxlbWVudCJdICA9ICJTRUxFQ1QiOw0KICAgICAgZWxlbWVudC5hcHBlbmRDaGlsZChjcmVhdGVFbGVtZW50KG5ld0VudHJ5KSk7DQogICAgICB2YXIgc2VsZWN0RWxlbWVudCA9IGVsZW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlNFTEVDVCIpWzBdOw0KICAgICAgdmFyIHZhbHVlcyA9IGl0ZW1bIl9vcHRpb25WYWx1ZXMiXTsNCiAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdmFsdWVzLmxlbmd0aDsgaSsrKSB7DQogICAgICAgIHZhciBuZXdFbnRyeSA9IG5ldyBPYmplY3Q7DQogICAgICAgIG5ld0VudHJ5WyJfZWxlbWVudCJdICA9ICJPUFRJT04iOw0KICAgICAgICBuZXdFbnRyeVsiX3RleHQiXSAgICAgPSBpdGVtWyJfdGV4dCJdICsgIjogIiArIHZhbHVlc1tpXTsNCiAgICAgICAgbmV3RW50cnlbInZhbHVlIl0gICAgID0gdmFsdWVzW2ldOw0KICAgICAgICBzZWxlY3RFbGVtZW50LmFwcGVuZENoaWxkKGNyZWF0ZUVsZW1lbnQobmV3RW50cnkpKTsNCiAgICAgIH0NCiAgICAgIHNlbGVjdEVsZW1lbnQudmFsdWUgPSB2YWx1ZTsNCiAgICAgIGJyZWFrOw0KICAgIA0KICB9DQogIHJldHVybiBlbGVtZW50Ow0KfQ0KDQpmdW5jdGlvbiBvcGVuU3ViTWVudShpdGVtKSB7DQogIHZhciBlbnRyeXMgPSBpdGVtWyJfc3ViTWVudSJdLnNwbGl0KCIsIik7DQogIHZhciBkaXYgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic2V0dGluZ3MiKTsNCg0KICB2YXIgbmV3SFIgPSBuZXcgT2JqZWN0KCk7DQogIG5ld0hSWyJfZWxlbWVudCJdID0gIkhSIg0KICBkaXYuYXBwZW5kQ2hpbGQoY3JlYXRlRWxlbWVudChuZXdIUikpOw0KICANCiAgdmFyIG5ld0VudHJ5ID0gbmV3IE9iamVjdCgpOw0KICBuZXdFbnRyeVsiX2VsZW1lbnQiXSAgPSAiSU5QVVQiOw0KICBuZXdFbnRyeVsidHlwZSJdID0gImJ1dHRvbiI7DQogIC8vbmV3RW50cnlbImNsYXNzIl0gPSAic2F2ZSI7DQogIG5ld0VudHJ5WyJ2YWx1ZSJdID0gIlNhdmUiOw0KICBuZXdFbnRyeVsib25jbGljayJdID0gInNhdmVEYXRhMignc2V0dGluZ3MnKSINCiAgZGl2LmFwcGVuZENoaWxkKGNyZWF0ZUVsZW1lbnQobmV3RW50cnkpKTsNCg0KICBpZiAoaXRlbVsiX2NvbmZpZ0tleSJdID09ICJzZXR0aW5ncyIpIHsNCiAgICB2YXIgbmV3RW50cnkgPSBuZXcgT2JqZWN0KCk7DQogICAgbmV3RW50cnlbIl9lbGVtZW50Il0gID0gIklOUFVUIjsNCiAgICBuZXdFbnRyeVsidHlwZSJdID0gImJ1dHRvbiI7DQogICAgLy9uZXdFbnRyeVsiY2xhc3MiXSA9ICJzYXZlIjsNCiAgICBuZXdFbnRyeVsidmFsdWUiXSA9ICJCYWNrdXAiOw0KICAgIG5ld0VudHJ5WyJvbmNsaWNrIl0gPSAieHRldmVCYWNrdXAoKSINCiAgICBkaXYuYXBwZW5kQ2hpbGQoY3JlYXRlRWxlbWVudChuZXdFbnRyeSkpOw0KICB9DQoNCiAgaWYgKGl0ZW1bIl9jb25maWdLZXkiXSA9PSAic2V0dGluZ3MiKSB7DQogICAgdmFyIG5ld0VudHJ5ID0gbmV3IE9iamVjdCgpOw0KICAgIG5ld0VudHJ5WyJfZWxlbWVudCJdICA9ICJJTlBVVCI7DQogICAgbmV3RW50cnlbInR5cGUiXSA9ICJidXR0b24iOw0KICAgIC8vbmV3RW50cnlbImNsYXNzIl0gPSAic2F2ZSI7DQogICAgbmV3RW50cnlbInZhbHVlIl0gPSAiUmVzdG9yZSI7DQogICAgbmV3RW50cnlbIm9uY2xpY2siXSA9ICJ4dGV2ZVJlc3RvcmUodGhpcykiDQogICAgZGl2LmFwcGVuZENoaWxkKGNyZWF0ZUVsZW1lbnQobmV3RW50cnkpKTsNCiAgfQ0KDQoNCiAgdmFyIG5ld1dyYXBwZXIgPSBuZXcgT2JqZWN0KCk7DQogIG5ld1dyYXBwZXJbIl9lbGVtZW50Il0gID0gIkRJViI7DQogIG5ld1dyYXBwZXJbImlkIl0gICAgICAgID0gImJveC13cmFwcGVyIjsNCiAgZGl2LmFwcGVuZENoaWxkKGNyZWF0ZUVsZW1lbnQobmV3V3JhcHBlcikpOw0KICANCiAgZGl2ID0gZGl2Lmxhc3RDaGlsZDsNCiAgDQoNCiAgZm9yICh2YXIgaSA9IDA7IGkgPCBlbnRyeXMubGVuZ3RoOyBpKyspIHsNCiAgICB2YXIgaXRlbSA9IHN1Yk1lbnVbZW50cnlzW2ldXTsNCiAgICBpZiAoaXRlbSA9PSB1bmRlZmluZWQpIHsNCiAgICAgIGJyZWFrOw0KICAgIH0NCiAgICANCiAgICB2YXIgY29udGFpbmVyID0gbmV3IE9iamVjdCgpOw0KICAgIGNvbnRhaW5lclsiX2VsZW1lbnQiXSA9ICJESVYiOw0KICAgIGRpdi5hcHBlbmRDaGlsZChjcmVhdGVFbGVtZW50KGNvbnRhaW5lcikpOw0KDQogICAgdmFyIGRpdkNvbnRhaW5lciA9IGRpdi5sYXN0Q2hpbGQ7DQogICAgDQogICAgdmFyIGhlYWRsaW5lID0gbmV3IE9iamVjdCgpOw0KICAgIGhlYWRsaW5lWyJfZWxlbWVudCJdID0gIkg1IjsNCiAgICBoZWFkbGluZVsiX3RleHQiXSA9IGl0ZW1bIl9oZWFkbGluZSJdOw0KICAgIGRpdkNvbnRhaW5lci5hcHBlbmRDaGlsZChjcmVhdGVFbGVtZW50KGhlYWRsaW5lKSk7DQoNCiAgICBkaXZDb250YWluZXIuYXBwZW5kQ2hpbGQoY3JlYXRlTWVudUl0ZW0oaXRlbSkpDQoNCiAgICBzd2l0Y2goaXRlbS5oYXNPd25Qcm9wZXJ0eSgiX3VzYWdlIikpIHsNCiAgICAgIGNhc2UgdHJ1ZTogDQogICAgICAgIHZhciB1c2FnZUl0ZW0gPSBuZXcgT2JqZWN0KCk7DQogICAgICAgIHVzYWdlSXRlbVsiX2VsZW1lbnQiXSA9ICJQUkUiDQogICAgICAgIHVzYWdlSXRlbVsiX3RleHQiXSAgICA9IGl0ZW1bIl91c2FnZSJdOw0KICAgICAgICBkaXZDb250YWluZXIuYXBwZW5kQ2hpbGQoY3JlYXRlRWxlbWVudCh1c2FnZUl0ZW0pKTsNCiAgICB9DQoNCiAgICB2YXIgaHIgPSBuZXcgT2JqZWN0KCk7DQogICAgaHJbIl9lbGVtZW50Il0gPSAiSFIiOw0KICAgIGRpdkNvbnRhaW5lci5hcHBlbmRDaGlsZChjcmVhdGVFbGVtZW50KGhyKSk7DQogIA0KICB9DQoNCiAgY2FsY3VsYXRlV3JhcHBlckhlaWdodCgpOw0KICByZXR1cm4NCn0NCg0KZnVuY3Rpb24gc2F2ZURhdGEyKGVsbSkgew0KICB2YXIgZGl2ICAgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChlbG0pOw0KICB2YXIgaW5wdXRzID0gZGl2LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJJTlBVVCIpOw0KICB2YXIgc2VsZWN0cyA9IGRpdi5nZXRFbGVtZW50c0J5VGFnTmFtZSgiU0VMRUNUIik7DQogIHZhciB2YWx1ZSwgY29uZmlnS2V5Ow0KICB2YXIgZGF0YSA9IG5ldyBPYmplY3QoKTsNCiAgdmFyIHZhbHVlQXJyID0gbmV3IEFycmF5KCk7DQogIHZhciBuZXdEYXRhID0gZmFsc2U7DQogIA0KICBmb3IgKHZhciBpID0gMDsgaSA8IGlucHV0cy5sZW5ndGg7IGkrKykgew0KICAgIGlmIChpbnB1dHNbaV0udHlwZSAhPSAiYnV0dG9uIikgew0KICAgICAgdmFyIG1lbnVUeXBlID0gaW5wdXRzW2ldLmdldEF0dHJpYnV0ZSgiZGF0YS1tZW51dHlwZSIpOw0KICAgICAgDQogICAgICAvL2NvbnNvbGUubG9nKG1lbnVUeXBlKTsNCiAgICAgIHN3aXRjaChtZW51VHlwZSkgew0KICAgICAgICBjYXNlICJzaW5nbGVJbnB1dCI6DQogICAgICAgICAgdmFsdWUgPSBpbnB1dHNbaV0udmFsdWU7DQogICAgICAgICAgaWYgKHZhbHVlID09ICIiIHx8IHZhbHVlID09IHVuZGVmaW5lZCkgew0KICAgICAgICAgICAgZGF0YSA9IG5ldyBPYmplY3QoKTsNCiAgICAgICAgICAgIGRhdGFbImRlbGV0ZSJdID0gaW5wdXRzW2ldLm5hbWUNCiAgICAgICAgICAgIG5ld0RhdGEgPSB0cnVlOw0KICAgICAgICAgIH0gZWxzZSB7DQogICAgICAgICAgICBuZXdEYXRhID0gdHJ1ZTsNCiAgICAgICAgICAgIGRhdGFbaW5wdXRzW2ldLm5hbWVdID0gdmFsdWU7DQogICAgICAgICAgICBjb25zb2xlLmxvZyhkYXRhKTsNCiAgICAgICAgICB9DQogICAgICAgICAgYnJlYWs7DQogICAgICAgIGNhc2UgImlucHV0QXJyYXkiOiANCiAgICAgICAgICB2YWx1ZSA9IGlucHV0c1tpXS52YWx1ZTsNCiAgICAgICAgICBpZiAodmFsdWUgIT0gIiIgJiYgdmFsdWUgIT0gdW5kZWZpbmVkKSB7DQogICAgICAgICAgICBuZXdEYXRhID0gdHJ1ZTsNCiAgICAgICAgICAgIHZhbHVlQXJyLnB1c2godmFsdWUpDQogICAgICAgICAgICBkYXRhW2lucHV0c1tpXS5uYW1lXSA9IHZhbHVlQXJyOw0KICAgICAgICAgICAgY29uZmlnS2V5ID0gaW5wdXRzW2ldLm5hbWU7DQogICAgICAgICAgfSANCiAgICAgICAgICANCiAgICAgICAgICBicmVhazsNCg0KICAgICAgICBjYXNlICJjaGVja2JveCI6DQogICAgICAgICAgdmFsdWUgPSBpbnB1dHNbaV0uY2hlY2tlZA0KICAgICAgICAgIGRhdGFbaW5wdXRzW2ldLm5hbWVdID0gdmFsdWU7DQogICAgICB9DQogICAgICANCiAgICB9DQogICAgDQogIH0NCg0KDQogIC8vIERlbGV0ZSBjb25maWcga2V5DQogIGlmICh2YWx1ZUFyci5sZW5ndGggPT0gMCAmJiBuZXdEYXRhID09IGZhbHNlKSB7DQogICAgbmV3RGF0YSA9IHRydWU7DQogICAgZGF0YSA9IG5ldyBPYmplY3QoKTsNCiAgICBkYXRhWyJkZWxldGUiXSA9IGNvbmZpZ0tleTsNCiAgfSANCg0KDQogIGZvciAodmFyIGkgPSAwOyBpIDwgc2VsZWN0cy5sZW5ndGg7IGkrKykgew0KICAgIHZhciB2YWx1ZSA9IHNlbGVjdHNbaV0ub3B0aW9uc1tzZWxlY3RzW2ldLnNlbGVjdGVkSW5kZXhdLnZhbHVlOw0KICAgIHN3aXRjaChpc05hTih2YWx1ZSkpIHsNCiAgICAgIGNhc2UgZmFsc2U6IHZhbHVlID0gcGFyc2VJbnQodmFsdWUpOyBicmVhazsNCiAgICB9DQoNCiAgICBkYXRhW3NlbGVjdHNbaV0ubmFtZV0gPSB2YWx1ZTsNCiAgICBuZXdEYXRhID0gdHJ1ZTsNCiAgfQ0KDQogIC8vY29uc29sZS5sb2coZGF0YSwgbmV3RGF0YSk7DQoNCiAgaWYgKG5ld0RhdGEgPT0gdHJ1ZSkgew0KICAgIGRhdGFbImNtZCJdID0gInNhdmVDb25maWciOw0KICAgIGlmICghZGF0YS5oYXNPd25Qcm9wZXJ0eSgnZmlsdGVyJykpIHsNCiAgICAgIGRhdGFbImZpbHRlciJdID0gY29uZmlnWyJmaWx0ZXIiXQ0KICAgIH0NCiAgICB2YXIgc2V0dGluZ3MgPSBuZXcgT2JqZWN0KCk7DQogICAgc2V0dGluZ3NbImNtZCJdID0gZGF0YVsiY21kIl07DQogICAgc2V0dGluZ3NbInNldHRpbmdzIl0gPSBkYXRhOw0KICAgIGNvbnNvbGUubG9nKHNldHRpbmdzKTsNCiAgICB4VGVWZShzZXR0aW5ncyk7DQogIH0NCn0NCg==" - webUI["html/js/settings_ts.js"] = "dmFyIF9fZXh0ZW5kcyA9ICh0aGlzICYmIHRoaXMuX19leHRlbmRzKSB8fCAoZnVuY3Rpb24gKCkgew0KICAgIHZhciBleHRlbmRTdGF0aWNzID0gZnVuY3Rpb24gKGQsIGIpIHsNCiAgICAgICAgZXh0ZW5kU3RhdGljcyA9IE9iamVjdC5zZXRQcm90b3R5cGVPZiB8fA0KICAgICAgICAgICAgKHsgX19wcm90b19fOiBbXSB9IGluc3RhbmNlb2YgQXJyYXkgJiYgZnVuY3Rpb24gKGQsIGIpIHsgZC5fX3Byb3RvX18gPSBiOyB9KSB8fA0KICAgICAgICAgICAgZnVuY3Rpb24gKGQsIGIpIHsgZm9yICh2YXIgcCBpbiBiKSBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGIsIHApKSBkW3BdID0gYltwXTsgfTsNCiAgICAgICAgcmV0dXJuIGV4dGVuZFN0YXRpY3MoZCwgYik7DQogICAgfTsNCiAgICByZXR1cm4gZnVuY3Rpb24gKGQsIGIpIHsNCiAgICAgICAgZXh0ZW5kU3RhdGljcyhkLCBiKTsNCiAgICAgICAgZnVuY3Rpb24gX18oKSB7IHRoaXMuY29uc3RydWN0b3IgPSBkOyB9DQogICAgICAgIGQucHJvdG90eXBlID0gYiA9PT0gbnVsbCA/IE9iamVjdC5jcmVhdGUoYikgOiAoX18ucHJvdG90eXBlID0gYi5wcm90b3R5cGUsIG5ldyBfXygpKTsNCiAgICB9Ow0KfSkoKTsNCnZhciBTZXR0aW5nc0NhdGVnb3J5ID0gLyoqIEBjbGFzcyAqLyAoZnVuY3Rpb24gKCkgew0KICAgIGZ1bmN0aW9uIFNldHRpbmdzQ2F0ZWdvcnkoKSB7DQogICAgICAgIHRoaXMuRG9jdW1lbnRJRCA9ICJjb250ZW50X3NldHRpbmdzIjsNCiAgICB9DQogICAgU2V0dGluZ3NDYXRlZ29yeS5wcm90b3R5cGUuY3JlYXRlQ2F0ZWdvcnlIZWFkbGluZSA9IGZ1bmN0aW9uICh2YWx1ZSkgew0KICAgICAgICB2YXIgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIkg0Iik7DQogICAgICAgIGVsZW1lbnQuaW5uZXJIVE1MID0gdmFsdWU7DQogICAgICAgIHJldHVybiBlbGVtZW50Ow0KICAgIH07DQogICAgU2V0dGluZ3NDYXRlZ29yeS5wcm90b3R5cGUuY3JlYXRlSFIgPSBmdW5jdGlvbiAoKSB7DQogICAgICAgIHZhciBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiSFIiKTsNCiAgICAgICAgcmV0dXJuIGVsZW1lbnQ7DQogICAgfTsNCiAgICBTZXR0aW5nc0NhdGVnb3J5LnByb3RvdHlwZS5jcmVhdGVTZXR0aW5ncyA9IGZ1bmN0aW9uIChzZXR0aW5nc0tleSkgew0KICAgICAgICB2YXIgc2V0dGluZyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlRSIik7DQogICAgICAgIHZhciBjb250ZW50ID0gbmV3IFBvcHVwQ29udGVudCgpOw0KICAgICAgICB2YXIgZGF0YSA9IFNFUlZFUlsic2V0dGluZ3MiXVtzZXR0aW5nc0tleV07DQogICAgICAgIHN3aXRjaCAoc2V0dGluZ3NLZXkpIHsNCiAgICAgICAgICAgIC8vIFRleHRlaW5nYWJlbg0KICAgICAgICAgICAgY2FzZSAidXBkYXRlIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLnVwZGF0ZS50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsICJ1cGRhdGUiLCBkYXRhLnRvU3RyaW5nKCkpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3suc2V0dGluZ3MudXBkYXRlLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJiYWNrdXAucGF0aCI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5iYWNrdXBQYXRoLnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgImJhY2t1cC5wYXRoIiwgZGF0YSk7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5zZXR0aW5ncy5iYWNrdXBQYXRoLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ0ZW1wLnBhdGgiOg0KICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MudGVtcFBhdGgudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCAidGVtcC5wYXRoIiwgZGF0YSk7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5zZXR0aW5ncy50bXBQYXRoLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ1c2VyLmFnZW50IjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLnVzZXJBZ2VudC50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsICJ1c2VyLmFnZW50IiwgZGF0YSk7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5zZXR0aW5ncy51c2VyQWdlbnQucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImJ1ZmZlci50aW1lb3V0IjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmJ1ZmZlclRpbWVvdXQudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCAiYnVmZmVyLnRpbWVvdXQiLCBkYXRhKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnNldHRpbmdzLmJ1ZmZlclRpbWVvdXQucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImZmbXBlZy5wYXRoIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmZmbXBlZ1BhdGgudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCAiZmZtcGVnLnBhdGgiLCBkYXRhKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnNldHRpbmdzLmZmbXBlZ1BhdGgucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImZmbXBlZy5vcHRpb25zIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmZmbXBlZ09wdGlvbnMudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCAiZmZtcGVnLm9wdGlvbnMiLCBkYXRhKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnNldHRpbmdzLmZmbXBlZ09wdGlvbnMucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInZsYy5wYXRoIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLnZsY1BhdGgudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCAidmxjLnBhdGgiLCBkYXRhKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnNldHRpbmdzLnZsY1BhdGgucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInZsYy5vcHRpb25zIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLnZsY09wdGlvbnMudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCAidmxjLm9wdGlvbnMiLCBkYXRhKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnNldHRpbmdzLnZsY09wdGlvbnMucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIC8vIENoZWNrYm94ZW4NCiAgICAgICAgICAgIGNhc2UgImF1dGhlbnRpY2F0aW9uLndlYiI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5hdXRoZW50aWNhdGlvbldFQi50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChzZXR0aW5nc0tleSk7DQogICAgICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGE7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiYXV0aGVudGljYXRpb24ucG1zIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmF1dGhlbnRpY2F0aW9uUE1TLnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KHNldHRpbmdzS2V5KTsNCiAgICAgICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJhdXRoZW50aWNhdGlvbi5tM3UiOg0KICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MuYXV0aGVudGljYXRpb25NM1UudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goc2V0dGluZ3NLZXkpOw0KICAgICAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImF1dGhlbnRpY2F0aW9uLnhtbCI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5hdXRoZW50aWNhdGlvblhNTC50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChzZXR0aW5nc0tleSk7DQogICAgICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGE7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiYXV0aGVudGljYXRpb24uYXBpIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmF1dGhlbnRpY2F0aW9uQVBJLnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KHNldHRpbmdzS2V5KTsNCiAgICAgICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJmaWxlcy51cGRhdGUiOg0KICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MuZmlsZXNVcGRhdGUudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goc2V0dGluZ3NLZXkpOw0KICAgICAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImNhY2hlLmltYWdlcyI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5jYWNoZUltYWdlcy50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChzZXR0aW5nc0tleSk7DQogICAgICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGE7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAieGVwZy5yZXBsYWNlLm1pc3NpbmcuaW1hZ2VzIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLnJlcGxhY2VFbXB0eUltYWdlcy50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChzZXR0aW5nc0tleSk7DQogICAgICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGE7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAieHRldmVBdXRvVXBkYXRlIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLnh0ZXZlQXV0b1VwZGF0ZS50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChzZXR0aW5nc0tleSk7DQogICAgICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGE7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiYXBpIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmFwaS50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChzZXR0aW5nc0tleSk7DQogICAgICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGE7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgLy8gU2VsZWN0DQogICAgICAgICAgICBjYXNlICJ0dW5lciI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy50dW5lci50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIHRleHQgPSBuZXcgQXJyYXkoKTsNCiAgICAgICAgICAgICAgICB2YXIgdmFsdWVzID0gbmV3IEFycmF5KCk7DQogICAgICAgICAgICAgICAgZm9yICh2YXIgaSA9IDE7IGkgPD0gMTAwOyBpKyspIHsNCiAgICAgICAgICAgICAgICAgICAgdGV4dC5wdXNoKGkpOw0KICAgICAgICAgICAgICAgICAgICB2YWx1ZXMucHVzaChpKTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgdmFyIHNlbGVjdCA9IGNvbnRlbnQuY3JlYXRlU2VsZWN0KHRleHQsIHZhbHVlcywgZGF0YSwgc2V0dGluZ3NLZXkpOw0KICAgICAgICAgICAgICAgIHNlbGVjdC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChzZWxlY3QpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiZXBnU291cmNlIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmVwZ1NvdXJjZS50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIHRleHQgPSBbIlBNUyIsICJYRVBHIl07DQogICAgICAgICAgICAgICAgdmFyIHZhbHVlcyA9IFsiUE1TIiwgIlhFUEciXTsNCiAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCBkYXRhLCBzZXR0aW5nc0tleSk7DQogICAgICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKHNlbGVjdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJiYWNrdXAua2VlcCI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5iYWNrdXBLZWVwLnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgdGV4dCA9IFsiNSIsICIxMCIsICIyMCIsICIzMCIsICI0MCIsICI1MCJdOw0KICAgICAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBbIjUiLCAiMTAiLCAiMjAiLCAiMzAiLCAiNDAiLCAiNTAiXTsNCiAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCBkYXRhLCBzZXR0aW5nc0tleSk7DQogICAgICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKHNlbGVjdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJidWZmZXIuc2l6ZS5rYiI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5idWZmZXJTaXplLnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgdGV4dCA9IFsiMC41IE1CIiwgIjEgTUIiLCAiMiBNQiIsICIzIE1CIiwgIjQgTUIiLCAiNSBNQiIsICI2IE1CIiwgIjcgTUIiLCAiOCBNQiJdOw0KICAgICAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBbIjUxMiIsICIxMDI0IiwgIjIwNDgiLCAiMzA3MiIsICI0MDk2IiwgIjUxMjAiLCAiNjE0NCIsICI3MTY4IiwgIjgxOTIiXTsNCiAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCBkYXRhLCBzZXR0aW5nc0tleSk7DQogICAgICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKHNlbGVjdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJidWZmZXIiOg0KICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3Muc3RyZWFtQnVmZmVyaW5nLnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgdGV4dCA9IFsie3suc2V0dGluZ3Muc3RyZWFtQnVmZmVyaW5nLmluZm9fZmFsc2V9fSIsICJ4VGVWZTogKHt7LnNldHRpbmdzLnN0cmVhbUJ1ZmZlcmluZy5pbmZvX3h0ZXZlfX0pIiwgIkZGbXBlZzogKHt7LnNldHRpbmdzLnN0cmVhbUJ1ZmZlcmluZy5pbmZvX2ZmbXBlZ319KSIsICJWTEM6ICh7ey5zZXR0aW5ncy5zdHJlYW1CdWZmZXJpbmcuaW5mb192bGN9fSkiXTsNCiAgICAgICAgICAgICAgICB2YXIgdmFsdWVzID0gWyItIiwgInh0ZXZlIiwgImZmbXBlZyIsICJ2bGMiXTsNCiAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCBkYXRhLCBzZXR0aW5nc0tleSk7DQogICAgICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKHNlbGVjdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ1ZHB4eSI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy51ZHB4eS50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsICJ1ZHB4eSIsIGRhdGEpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3suc2V0dGluZ3MudWRweHkucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgfQ0KICAgICAgICByZXR1cm4gc2V0dGluZzsNCiAgICB9Ow0KICAgIFNldHRpbmdzQ2F0ZWdvcnkucHJvdG90eXBlLmNyZWF0ZURlc2NyaXB0aW9uID0gZnVuY3Rpb24gKHNldHRpbmdzS2V5KSB7DQogICAgICAgIHZhciBkZXNjcmlwdGlvbiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlRSIik7DQogICAgICAgIHZhciB0ZXh0Ow0KICAgICAgICBzd2l0Y2ggKHNldHRpbmdzS2V5KSB7DQogICAgICAgICAgICBjYXNlICJhdXRoZW50aWNhdGlvbi53ZWIiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MuYXV0aGVudGljYXRpb25XRUIuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJhdXRoZW50aWNhdGlvbi5tM3UiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MuYXV0aGVudGljYXRpb25NM1UuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJhdXRoZW50aWNhdGlvbi5wbXMiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MuYXV0aGVudGljYXRpb25QTVMuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJhdXRoZW50aWNhdGlvbi54bWwiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MuYXV0aGVudGljYXRpb25YTUwuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJhdXRoZW50aWNhdGlvbi5hcGkiOg0KICAgICAgICAgICAgICAgIGlmIChTRVJWRVJbInNldHRpbmdzIl1bImF1dGhlbnRpY2F0aW9uLndlYiJdID09IHRydWUpIHsNCiAgICAgICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5hdXRoZW50aWNhdGlvbkFQSS5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ4dGV2ZUF1dG9VcGRhdGUiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MueHRldmVBdXRvVXBkYXRlLmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiYmFja3VwLmtlZXAiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MuYmFja3VwS2VlcC5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImJhY2t1cC5wYXRoIjoNCiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLmJhY2t1cFBhdGguZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ0ZW1wLnBhdGgiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MudGVtcFBhdGguZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJidWZmZXIiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3Muc3RyZWFtQnVmZmVyaW5nLmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiYnVmZmVyLnNpemUua2IiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MuYnVmZmVyU2l6ZS5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImJ1ZmZlci50aW1lb3V0IjoNCiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLmJ1ZmZlclRpbWVvdXQuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ1c2VyLmFnZW50IjoNCiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLnVzZXJBZ2VudC5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImZmbXBlZy5wYXRoIjoNCiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLmZmbXBlZ1BhdGguZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJmZm1wZWcub3B0aW9ucyI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5mZm1wZWdPcHRpb25zLmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAidmxjLnBhdGgiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MudmxjUGF0aC5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInZsYy5vcHRpb25zIjoNCiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLnZsY09wdGlvbnMuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJlcGdTb3VyY2UiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MuZXBnU291cmNlLmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAidHVuZXIiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MudHVuZXIuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ1cGRhdGUiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MudXBkYXRlLmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiYXBpIjoNCiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLmFwaS5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImZpbGVzLnVwZGF0ZSI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5maWxlc1VwZGF0ZS5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImNhY2hlLmltYWdlcyI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5jYWNoZUltYWdlcy5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInhlcGcucmVwbGFjZS5taXNzaW5nLmltYWdlcyI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5yZXBsYWNlRW1wdHlJbWFnZXMuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ1ZHB4eSI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy51ZHB4eS5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICAgICAgdGV4dCA9ICIiOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICB9DQogICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gIiI7DQogICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgdmFyIHByZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlBSRSIpOw0KICAgICAgICBwcmUuaW5uZXJIVE1MID0gdGV4dDsNCiAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChwcmUpOw0KICAgICAgICBkZXNjcmlwdGlvbi5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICBkZXNjcmlwdGlvbi5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgcmV0dXJuIGRlc2NyaXB0aW9uOw0KICAgIH07DQogICAgcmV0dXJuIFNldHRpbmdzQ2F0ZWdvcnk7DQp9KCkpOw0KdmFyIFNldHRpbmdzQ2F0ZWdvcnlJdGVtID0gLyoqIEBjbGFzcyAqLyAoZnVuY3Rpb24gKF9zdXBlcikgew0KICAgIF9fZXh0ZW5kcyhTZXR0aW5nc0NhdGVnb3J5SXRlbSwgX3N1cGVyKTsNCiAgICBmdW5jdGlvbiBTZXR0aW5nc0NhdGVnb3J5SXRlbShoZWFkbGluZSwgc2V0dGluZ3NLZXlzKSB7DQogICAgICAgIHZhciBfdGhpcyA9IF9zdXBlci5jYWxsKHRoaXMpIHx8IHRoaXM7DQogICAgICAgIF90aGlzLmhlYWRsaW5lID0gaGVhZGxpbmU7DQogICAgICAgIF90aGlzLnNldHRpbmdzS2V5cyA9IHNldHRpbmdzS2V5czsNCiAgICAgICAgcmV0dXJuIF90aGlzOw0KICAgIH0NCiAgICBTZXR0aW5nc0NhdGVnb3J5SXRlbS5wcm90b3R5cGUuY3JlYXRlQ2F0ZWdvcnkgPSBmdW5jdGlvbiAoKSB7DQogICAgICAgIHZhciBfdGhpcyA9IHRoaXM7DQogICAgICAgIHZhciBoZWFkbGluZSA9IHRoaXMuY3JlYXRlQ2F0ZWdvcnlIZWFkbGluZSh0aGlzLmhlYWRsaW5lKTsNCiAgICAgICAgdmFyIHNldHRpbmdzS2V5cyA9IHRoaXMuc2V0dGluZ3NLZXlzOw0KICAgICAgICB2YXIgZG9jID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQodGhpcy5Eb2N1bWVudElEKTsNCiAgICAgICAgZG9jLmFwcGVuZENoaWxkKGhlYWRsaW5lKTsNCiAgICAgICAgLy8gVGFiZWxsZSBmw7xyIGRpZSBLYXRlZ29yaWUgZXJzdGVsbGVuDQogICAgICAgIHZhciB0YWJsZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlRBQkxFIik7DQogICAgICAgIHZhciBrZXlzID0gc2V0dGluZ3NLZXlzLnNwbGl0KCIsIik7DQogICAgICAgIGtleXMuZm9yRWFjaChmdW5jdGlvbiAoc2V0dGluZ3NLZXkpIHsNCiAgICAgICAgICAgIHN3aXRjaCAoc2V0dGluZ3NLZXkpIHsNCiAgICAgICAgICAgICAgICBjYXNlICJhdXRoZW50aWNhdGlvbi5wbXMiOg0KICAgICAgICAgICAgICAgIGNhc2UgImF1dGhlbnRpY2F0aW9uLm0zdSI6DQogICAgICAgICAgICAgICAgY2FzZSAiYXV0aGVudGljYXRpb24ueG1sIjoNCiAgICAgICAgICAgICAgICBjYXNlICJhdXRoZW50aWNhdGlvbi5hcGkiOg0KICAgICAgICAgICAgICAgICAgICBpZiAoU0VSVkVSWyJzZXR0aW5ncyJdWyJhdXRoZW50aWNhdGlvbi53ZWIiXSA9PSBmYWxzZSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBkZWZhdWx0Og0KICAgICAgICAgICAgICAgICAgICB2YXIgaXRlbSA9IF90aGlzLmNyZWF0ZVNldHRpbmdzKHNldHRpbmdzS2V5KTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGRlc2NyaXB0aW9uID0gX3RoaXMuY3JlYXRlRGVzY3JpcHRpb24oc2V0dGluZ3NLZXkpOw0KICAgICAgICAgICAgICAgICAgICB0YWJsZS5hcHBlbmRDaGlsZChpdGVtKTsNCiAgICAgICAgICAgICAgICAgICAgdGFibGUuYXBwZW5kQ2hpbGQoZGVzY3JpcHRpb24pOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfSk7DQogICAgICAgIGRvYy5hcHBlbmRDaGlsZCh0YWJsZSk7DQogICAgICAgIGRvYy5hcHBlbmRDaGlsZCh0aGlzLmNyZWF0ZUhSKCkpOw0KICAgIH07DQogICAgcmV0dXJuIFNldHRpbmdzQ2F0ZWdvcnlJdGVtOw0KfShTZXR0aW5nc0NhdGVnb3J5KSk7DQpmdW5jdGlvbiBzaG93U2V0dGluZ3MoKSB7DQogICAgY29uc29sZS5sb2coIlNFVFRJTkdTIik7DQogICAgZm9yICh2YXIgaSA9IDA7IGkgPCBzZXR0aW5nc0NhdGVnb3J5Lmxlbmd0aDsgaSsrKSB7DQogICAgICAgIHNldHRpbmdzQ2F0ZWdvcnlbaV0uY3JlYXRlQ2F0ZWdvcnkoKTsNCiAgICB9DQp9DQpmdW5jdGlvbiBzYXZlU2V0dGluZ3MoKSB7DQogICAgY29uc29sZS5sb2coIlNhdmUgU2V0dGluZ3MiKTsNCiAgICB2YXIgY21kID0gInNhdmVTZXR0aW5ncyI7DQogICAgdmFyIGRpdiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb250ZW50X3NldHRpbmdzIik7DQogICAgdmFyIHNldHRpbmdzID0gZGl2LmdldEVsZW1lbnRzQnlDbGFzc05hbWUoImNoYW5nZWQiKTsNCiAgICB2YXIgbmV3U2V0dGluZ3MgPSBuZXcgT2JqZWN0KCk7DQogICAgZm9yICh2YXIgaSA9IDA7IGkgPCBzZXR0aW5ncy5sZW5ndGg7IGkrKykgew0KICAgICAgICB2YXIgbmFtZTsNCiAgICAgICAgdmFyIHZhbHVlOw0KICAgICAgICBzd2l0Y2ggKHNldHRpbmdzW2ldLnRhZ05hbWUpIHsNCiAgICAgICAgICAgIGNhc2UgIklOUFVUIjoNCiAgICAgICAgICAgICAgICBzd2l0Y2ggKHNldHRpbmdzW2ldLnR5cGUpIHsNCiAgICAgICAgICAgICAgICAgICAgY2FzZSAiY2hlY2tib3giOg0KICAgICAgICAgICAgICAgICAgICAgICAgbmFtZSA9IHNldHRpbmdzW2ldLm5hbWU7DQogICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IHNldHRpbmdzW2ldLmNoZWNrZWQ7DQogICAgICAgICAgICAgICAgICAgICAgICBuZXdTZXR0aW5nc1tuYW1lXSA9IHZhbHVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgICAgIGNhc2UgInRleHQiOg0KICAgICAgICAgICAgICAgICAgICAgICAgbmFtZSA9IHNldHRpbmdzW2ldLm5hbWU7DQogICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IHNldHRpbmdzW2ldLnZhbHVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgc3dpdGNoIChuYW1lKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAidXBkYXRlIjoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSB2YWx1ZS5zcGxpdCgiLCIpOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IHZhbHVlLmZpbHRlcihmdW5jdGlvbiAoZSkgeyByZXR1cm4gZTsgfSk7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgImJ1ZmZlci50aW1lb3V0IjoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSBwYXJzZUZsb2F0KHZhbHVlKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgIG5ld1NldHRpbmdzW25hbWVdID0gdmFsdWU7DQogICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJTRUxFQ1QiOg0KICAgICAgICAgICAgICAgIG5hbWUgPSBzZXR0aW5nc1tpXS5uYW1lOw0KICAgICAgICAgICAgICAgIHZhbHVlID0gc2V0dGluZ3NbaV0udmFsdWU7DQogICAgICAgICAgICAgICAgLy8gV2VubiBkZXIgV2VydCBlaW5lIFphaGwgaXN0LCB3aXJkIGRpZXNlciBhbHMgWmFobCBnZXNwZWljaGVydA0KICAgICAgICAgICAgICAgIGlmIChpc05hTih2YWx1ZSkpIHsNCiAgICAgICAgICAgICAgICAgICAgbmV3U2V0dGluZ3NbbmFtZV0gPSB2YWx1ZTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgZWxzZSB7DQogICAgICAgICAgICAgICAgICAgIG5ld1NldHRpbmdzW25hbWVdID0gcGFyc2VJbnQodmFsdWUpOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgfQ0KICAgIH0NCiAgICB2YXIgZGF0YSA9IG5ldyBPYmplY3QoKTsNCiAgICBkYXRhWyJzZXR0aW5ncyJdID0gbmV3U2V0dGluZ3M7DQogICAgdmFyIHNlcnZlciA9IG5ldyBTZXJ2ZXIoY21kKTsNCiAgICBzZXJ2ZXIucmVxdWVzdChkYXRhKTsNCn0NCg==" - webUI["html/lang/en.json"] = "ew0KICAibWFpbk1lbnUiOg0KICB7DQogICAgIml0ZW0iOg0KICAgIHsNCiAgICAgICJwbGF5bGlzdCI6ICJQbGF5bGlzdCIsDQogICAgICAicG1zSUQiOiAiUE1TIElEIiwNCiAgICAgICJmaWx0ZXIiOiAiRmlsdGVyIiwNCiAgICAgICJ4bWx0diI6ICJYTUxUViIsDQogICAgICAibWFwcGluZyI6ICJNYXBwaW5nIiwNCiAgICAgICJ1c2VycyI6ICJVc2VycyIsDQogICAgICAic2V0dGluZ3MiOiAiU2V0dGluZ3MiLA0KICAgICAgImxvZyI6ICJMb2ciLA0KICAgICAgImxvZ291dCI6ICJMb2dvdXQiDQogICAgfSwNCiAgICAiaGVhZGxpbmUiOg0KICAgIHsNCiAgICAgICJwbGF5bGlzdCI6ICJMb2NhbCBvciByZW1vdGUgcGxheWxpc3RzIiwNCiAgICAgICJmaWx0ZXIiOiAiRmlsdGVyIHBsYXlsaXN0IiwNCiAgICAgICJ4bWx0diI6ICJMb2NhbCBvciByZW1vdGUgWE1MVFYgZmlsZXMiLA0KICAgICAgIm1hcHBpbmciOiAiTWFwIHBsYXlsaXN0IGNoYW5uZWxzIHRvIEVQRyBjaGFubmVscyIsDQogICAgICAidXNlcnMiOiAiVXNlciBtYW5hZ2VtZW50IiwNCiAgICAgICJzZXR0aW5ncyI6ICJTZXR0aW5ncyIsDQogICAgICAibG9nIjogIkxvZyIsDQogICAgICAibG9nb3V0IjogIkxvZ291dCINCiAgICB9DQogIH0sDQogICJjb25maXJtIjoNCiAgew0KICAgICJyZXN0b3JlIjogIkFsbCBkYXRhIHdpbGwgYmUgcmVwbGFjZWQgd2l0aCB0aG9zZSBmcm9tIHRoZSBiYWNrdXAuIFNob3VsZCB0aGUgZmlsZXMgYmUgcmVzdG9yZWQ/Ig0KICB9LA0KICAiYWxlcnQiOg0KICB7DQogICAgImZpbGVMb2FkaW5nRXJyb3IiOiAiRmlsZSBjb3VsZG4ndCBiZSBsb2FkZWQiLA0KICAgICJpbnZhbGlkQ2hhbm5lbE51bWJlciI6ICJJbnZhbGlkIGNoYW5uZWwgbnVtYmVyIiwNCiAgICAibWlzc2luZ0lucHV0IjogIk1pc3NpbmcgaW5wdXQiDQogIH0sDQogICJidXR0b24iOg0KICB7DQogICAgImJhY2siOiAiQmFjayIsDQogICAgImJhY2t1cCI6ICJCYWNrdXAiLA0KICAgICJidWxrRWRpdCI6ICJCdWxrIEVkaXQiLA0KICAgICJjYW5jZWwiOiAiQ2FuY2VsIiwNCiAgICAiZGVsZXRlIjogIkRlbGV0ZSIsDQogICAgImRvbmUiOiAiRG9uZSIsDQogICAgImxvZ2luIjogIkxvZ2luIiwNCiAgICAibmV3IjogIk5ldyIsDQogICAgIm5leHQiOiAiTmV4dCIsDQogICAgInJlc3RvcmUiOiAiUmVzdG9yZSIsDQogICAgInNhdmUiOiAiU2F2ZSIsDQogICAgInNlYXJjaCI6ICJTZWFyY2giLA0KICAgICJ1cGRhdGUiOiAiVXBkYXRlIiwNCiAgICAiY3JhZXRlQWNjb3VudCI6ICJDcmVhdGUgQWNjb3VudCIsDQogICAgInJlc2V0TG9ncyI6ICJSZXNldCBMb2dzIiwNCiAgICAidXBsb2FkTG9nbyI6ICJVcGxvYWQgTG9nbyINCiAgfSwNCiAgImZpbHRlciI6DQogIHsNCiAgICAidGFibGUiOg0KICAgIHsNCiAgICAgICJuYW1lIjogIkZpbHRlciBOYW1lIiwNCiAgICAgICJ0eXBlIjogIkZpbHRlciBUeXBlIiwNCiAgICAgICJmaWx0ZXIiOiAiRmlsdGVyIg0KICAgIH0sDQogICAgImN1c3RvbSI6ICJDdXN0b20iLA0KICAgICJncm91cCI6ICJHcm91cCIsDQogICAgIm5hbWUiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJGaWx0ZXIgTmFtZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiRmlsdGVyIG5hbWUiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJkZXNjcmlwdGlvbiI6DQogICAgew0KICAgICAgInRpdGxlIjogIkRlc2NyaXB0aW9uIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJEZXNjcmlwdGlvbiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgInR5cGUiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJUeXBlIiwNCiAgICAgICJncm91cFRpdGxlIjogIkdyb3VwIFRpdGxlIiwNCiAgICAgICJjdXN0b21GaWx0ZXIiOiAiQ3VzdG9tIEZpbHRlciINCiAgICB9LA0KICAgICJjYXNlU2Vuc2l0aXZlIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiQ2FzZSBTZW5zaXRpdmUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgImZpbHRlclJ1bGUiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJGaWx0ZXIgUnVsZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiU3BvcnQge0hEfSAhe0VTLElUfSIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgImZpbHRlckdyb3VwIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiR3JvdXAgVGl0bGUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiU2VsZWN0IGEgTTNVIGdyb3VwLiAoQ291bnRlcik8YnI+Q2hhbmdpbmcgdGhlIGdyb3VwIHRpdGxlIGluIHRoZSBNM1UgaW52YWxpZGF0ZXMgdGhlIGZpbHRlci4iDQogICAgfSwNCiAgICAiaW5jbHVkZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIkluY2x1ZGUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIkZIRCxVSEQiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIkNoYW5uZWwgbmFtZSBtdXN0IGluY2x1ZGUuPGJyPihDb21tYSBzZXBhcmF0ZWQpIENvbW1hIG1lYW5zIG9yIg0KICAgIH0sDQogICAgImV4Y2x1ZGUiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJFeGNsdWRlIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJFUyxJVCIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiQ2hhbm5lbCBuYW1lIG11c3Qgbm90IGNvbnRhaW4uPGJyPihDb21tYSBzZXBhcmF0ZWQpIENvbW1hIG1lYW5zIG9yIg0KICAgIH0NCg0KICB9LA0KICAicGxheWxpc3QiOg0KICB7DQogICAgInRhYmxlIjoNCiAgICB7DQogICAgICAicGxheWxpc3QiOiAiUGxheWxpc3QiLA0KICAgICAgInR1bmVyIjogIlR1bmVyIiwNCiAgICAgICJsYXN0VXBkYXRlIjogIkxhc3QgVXBkYXRlIiwNCiAgICAgICJhdmFpbGFiaWxpdHkiOiAiQXZhaWxhYmlsaXR5IiwNCiAgICAgICJ0eXBlIjogIlR5cGUiLA0KICAgICAgInN0cmVhbXMiOiAiU3RyZWFtcyIsDQogICAgICAiZ3JvdXBUaXRsZSI6ICJncm91cC10aXRsZSIsDQogICAgICAidHZnSUQiOiAidHZnLWlkIiwNCiAgICAgICJ1bmlxdWVJRCI6ICJVbmlxdWUgSUQiDQogICAgfSwNCiAgICAicGxheWxpc3RUeXBlIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiUGxheWxpc3QgdHlwZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAidHlwZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIlR5cGUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgIm5hbWUiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJOYW1lIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJQbGF5bGlzdCBuYW1lIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAiZGVzY3JpcHRpb24iOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJEZXNjcmlwdGlvbiIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiRGVzY3JpcHRpb24iLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJmaWxlTTNVIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiTTNVIEZpbGUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIkZpbGUgcGF0aCBvciBVUkwgb2YgdGhlIE0zVSIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgImZpbGVIREhSIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiSERIb21lUnVuIElQIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJJUCBhZGRyZXNzIGFuZCBwb3J0ICgxOTIuMTY4LjEuMTA6NTAwNCkiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJ0dW5lciI6DQogICAgew0KICAgICAgInRpdGxlIjogIlR1bmVyIC8gU3RyZWFtcyIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJOdW1iZXIgb2YgcGFyYWxsZWwgY29ubmVjdGlvbnMgdGhhdCBjYW4gYmUgZXN0YWJsaXNoZWQgdG8gdGhlIHByb3ZpZGVyLiA8YnI+T25seSBhdmFpbGFibGUgd2l0aCBhY3RpdmF0ZWQgYnVmZmVyLjxicj5OZXcgc2V0dGluZ3Mgd2lsbCBvbmx5IGJlIGFwcGxpZWQgYWZ0ZXIgcXVpdHRpbmcgYWxsIHN0cmVhbXMuIg0KICAgIH0NCiAgfSwNCiAgInhtbHR2IjoNCiAgew0KICAgICJ0YWJsZSI6DQogICAgew0KICAgICAgImd1aWRlIjogIkd1aWRlIiwNCiAgICAgICJsYXN0VXBkYXRlIjogIkxhc3QgVXBkYXRlIiwNCiAgICAgICJhdmFpbGFiaWxpdHkiOiAiQXZhaWxhYmlsaXR5IiwNCiAgICAgICJjaGFubmVscyI6ICJDaGFubmVscyIsDQogICAgICAicHJvZ3JhbXMiOiAiUHJvZ3JhbXMiDQogICAgfSwNCiAgICAibmFtZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIk5hbWUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIkd1aWRlIG5hbWUiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJkZXNjcmlwdGlvbiI6DQogICAgew0KICAgICAgInRpdGxlIjogIkRlc2NyaXB0aW9uIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJEZXNjcmlwdGlvbiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgImZpbGVYTUxUViI6DQogICAgew0KICAgICAgInRpdGxlIjogIlhNTFRWIEZpbGUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIkZpbGUgcGF0aCBvciBVUkwgb2YgdGhlIFhNTFRWIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfQ0KICB9LA0KICAibWFwcGluZyI6DQogIHsNCiAgICAidGFibGUiOg0KICAgIHsNCiAgICAgICJjaE5vIjogIkNoLiBOby4iLA0KICAgICAgImxvZ28iOiAiTG9nbyIsDQogICAgICAiY2hhbm5lbE5hbWUiOiAiQ2hhbm5lbCBOYW1lIiwNCiAgICAgICJwbGF5bGlzdCI6ICJQbGF5bGlzdCIsDQogICAgICAiZ3JvdXBUaXRsZSI6ICJHcm91cCBUaXRsZSIsDQogICAgICAieG1sdHZGaWxlIjogIlhNTFRWIEZpbGUiLA0KICAgICAgInhtbHR2SUQiOiAiWE1MVFYgSUQiLA0KICAgICAgInRpbWVzaGlmdCI6ICJUaW1lc2hpZnQiDQogICAgfSwNCiAgICAiYWN0aXZlIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiQWN0aXZlIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJjaGFubmVsTmFtZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIkNoYW5uZWwgTmFtZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAiZGVzY3JpcHRpb24iOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJDaGFubmVsIERlc2NyaXB0aW9uIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJVc2VkIGJ5IHRoZSBEdW1teSBhcyBhbiBYTUwgZGVzY3JpcHRpb24iLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJ1cGRhdGVDaGFubmVsTmFtZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIlVwZGF0ZSBDaGFubmVsIE5hbWUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgImNoYW5uZWxMb2dvIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiTG9nbyBVUkwiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgInVwZGF0ZUNoYW5uZWxMb2dvIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiVXBkYXRlIENoYW5uZWwgTG9nbyIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAiZXBnQ2F0ZWdvcnkiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJFUEcgQ2F0ZWdvcnkiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgIm0zdUdyb3VwVGl0bGUiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJHcm91cCBUaXRsZSAoeHRldmUubTN1KSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAieG1sdHZGaWxlIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiWE1MVFYgRmlsZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAieG1sdHZDaGFubmVsIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiWE1MVFYgQ2hhbm5lbCIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAidGltZXNoaWZ0IjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiVGltZXNoaWZ0IiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIwIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfQ0KICB9LA0KICAidXNlcnMiOg0KICB7DQogICAgInRhYmxlIjoNCiAgICB7DQogICAgICAidXNlcm5hbWUiOiAiVXNlcm5hbWUiLA0KICAgICAgInBhc3N3b3JkIjogIlBhc3N3b3JkIiwNCiAgICAgICJ3ZWIiOiAiV0VCIiwNCiAgICAgICJwbXMiOiAiUE1TIiwNCiAgICAgICJtM3UiOiAiTTNVIiwNCiAgICAgICJ4bWwiOiAiWE1MIiwNCiAgICAgICJhcGkiOiAiQVBJIg0KICAgIH0sDQogICAgInVzZXJuYW1lIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiVXNlcm5hbWUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIlVzZXJuYW1lIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAicGFzc3dvcmQiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJQYXNzd29yZCIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiUGFzc3dvcmQiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJjb25maXJtIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiQ29uZmlybSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiUGFzc3dvcmQgY29uZmlybSIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgIndlYiI6DQogICAgew0KICAgICAgInRpdGxlIjogIldlYiBBY2Nlc3MiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgInBtcyI6DQogICAgew0KICAgICAgInRpdGxlIjogIlBNUyBBY2Nlc3MiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgIm0zdSI6DQogICAgew0KICAgICAgInRpdGxlIjogIk0zVSBBY2Nlc3MiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgInhtbCI6DQogICAgew0KICAgICAgInRpdGxlIjogIlhNTCBBY2Nlc3MiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgImFwaSI6DQogICAgew0KICAgICAgInRpdGxlIjogIkFQSSBBY2Nlc3MiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0NCiAgfSwNCiAgInNldHRpbmdzIjoNCiAgew0KICAgICJjYXRlZ29yeSI6DQogICAgew0KICAgICAgImdlbmVyYWwiOiAiR2VuZXJhbCIsDQogICAgICAiZmlsZXMiOiAiRmlsZXMiLA0KICAgICAgInN0cmVhbWluZyI6ICJTdHJlYW1pbmciLA0KICAgICAgImJhY2t1cCI6ICJCYWNrdXAiLA0KICAgICAgImF1dGhlbnRpY2F0aW9uIjogIkF1dGhlbnRpY2F0aW9uIg0KICAgIH0sDQogICAgInVwZGF0ZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIlNjaGVkdWxlIGZvciB1cGRhdGluZyAoUGxheWxpc3QsIFhNTFRWLCBCYWNrdXApIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIwMDAwLDEwMDAsMjAwMCIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiVGltZSBpbiAyNCBob3VyIGZvcm1hdCAoMDgwMCA9IDg6MDAgYW0pLiBNb3JlIHRpbWVzIGNhbiBiZSBlbnRlcmVkIGNvbW1hIHNlcGFyYXRlZC4gTGVhdmUgdGhpcyBmaWVsZCBlbXB0eSBpZiBubyB1cGRhdGVzIGFyZSB0byBiZSBjYXJyaWVkIG91dC4iDQogICAgfSwNCiAgICAiYXBpIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiQVBJIEludGVyZmFjZSIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiVmlhIEFQSSBpbnRlcmZhY2UgaXQgaXMgcG9zc2libGUgdG8gc2VuZCBjb21tYW5kcyB0byB4VGVWZS4gQVBJIGRvY3VtZW50YXRpb24gaXMgPGEgaHJlZj0naHR0cHM6Ly9naXRodWIuY29tL3h0ZXZlLXByb2plY3QveFRlVmUtRG9jdW1lbnRhdGlvbi9ibG9iL21hc3Rlci9lbi9jb25maWd1cmF0aW9uLm1kI2FwaSc+aGVyZTwvYT4iDQogICAgfSwNCiAgICAiZXBnU291cmNlIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiRVBHIFNvdXJjZSIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiUE1TOjxicj4tIFVzZSBFUEcgZGF0YSBmcm9tIFBsZXggb3IgRW1ieSA8YnI+PGJyPlhFUEc6PGJyPi0gVXNlIG9mIG9uZSBvciBtb3JlIFhNTFRWIGZpbGVzPGJyPi0gQ2hhbm5lbCBtYW5hZ2VtZW50PGJyPi0gTTNVIC8gWE1MVFYgZXhwb3J0IChIVFRQIGxpbmsgZm9yIElQVFYgYXBwcykiDQogICAgfSwNCiAgICAidHVuZXIiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJOdW1iZXIgb2YgVHVuZXJzIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJOdW1iZXIgb2YgcGFyYWxsZWwgY29ubmVjdGlvbnMgdGhhdCBjYW4gYmUgZXN0YWJsaXNoZWQgdG8gdGhlIHByb3ZpZGVyLjxicj5BdmFpbGFibGUgZm9yOiBQbGV4LCBFbWJ5IChIREhSKSwgTTNVICh3aXRoIGFjdGl2ZSBidWZmZXIpLjxicj5BZnRlciBhIGNoYW5nZSwgeFRlVmUgbXVzdCBiZSBkZWxldGUgaW4gdGhlIFBsZXggLyBFbWJ5IERWUiBzZXR0aW5ncyBhbmQgc2V0IHVwIGFnYWluLiINCiAgICB9LA0KICAgICJmaWxlc1VwZGF0ZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIlVwZGF0ZXMgYWxsIGZpbGVzIGF0IHN0YXJ0dXAiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIlVwZGF0ZXMgYWxsIHBsYXlsaXN0cywgdHVuZXIgYW5kIFhNTFRWIGZpbGVzIGF0IHN0YXJ0dXAuIg0KICAgIH0sDQogICAgImNhY2hlSW1hZ2VzIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiSW1hZ2UgQ2FjaGluZyIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiQWxsIGltYWdlcyBmcm9tIHRoZSBYTUxUViBmaWxlIGFyZSBjYWNoZWQsIGFsbG93aW5nIGZhc3RlciByZW5kZXJpbmcgb2YgdGhlIGdyaWQgaW4gdGhlIGNsaWVudC48YnI+RG93bmxvYWRpbmcgdGhlIGltYWdlcyBtYXkgdGFrZSBhIHdoaWxlIGFuZCB3aWxsIGJlIGRvbmUgaW4gdGhlIGJhY2tncm91bmQuIg0KICAgIH0sDQogICAgInJlcGxhY2VFbXB0eUltYWdlcyI6DQogICAgew0KICAgICAgInRpdGxlIjogIlJlcGxhY2UgbWlzc2luZyBwcm9ncmFtIGltYWdlcyIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiSWYgdGhlIHBvc3RlciBpbiB0aGUgWE1MVFYgcHJvZ3JhbSBpcyBtaXNzaW5nLCB0aGUgY2hhbm5lbCBsb2dvIHdpbGwgYmUgdXNlZC4iDQogICAgfSwNCiAgICAieHRldmVBdXRvVXBkYXRlIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiQXV0b21hdGljIHVwZGF0ZSBvZiB4VGVWZSIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiSWYgYSBuZXcgdmVyc2lvbiBvZiB4VGVWZSBpcyBhdmFpbGFibGUsIGl0IHdpbGwgYmUgYXV0b21hdGljYWxseSBpbnN0YWxsZWQuIFRoZSB1cGRhdGVzIGFyZSBkb3dubG9hZGVkIGZyb20gR2l0SHViLiINCiAgICB9LA0KICAgICJzdHJlYW1CdWZmZXJpbmciOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJTdHJlYW0gQnVmZmVyIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJGdW5jdGlvbnMgb2YgdGhlIGJ1ZmZlcjo8YnI+LSBUaGUgc3RyZWFtIGlzIHBhc3NlZCBmcm9tIHhUZVZlLCBGRm1wZWcgb3IgVkxDIHRvIFBsZXgsIEVtYnkgb3IgTTNVIFBsYXllcjxicj4tIFNtYWxsIGplcmtpbmcgb2YgdGhlIHN0cmVhbXMgY2FuIGJlIGNvbXBlbnNhdGVkPGJyPi0gSExTIC8gTTNVOCBzdXBwb3J0PGJyPi0gUlRQIC8gUlRQUyBzdXBwb3J0IChvbmx5IEZGbXBlZyBvciBWTEMpPGJyPi0gUmUtc3RyZWFtaW5nPGJyPi0gU2VwYXJhdGUgdHVuZXIgbGltaXQgZm9yIGVhY2ggcGxheWxpc3QiLA0KICAgICAgImluZm9fZmFsc2UiOiAiTm8gQnVmZmVyIChDbGllbnQgY29ubmVjdHMgdG8gdGhlIHN0cmVhbWluZyBzZXJ2ZXIpIiwNCiAgICAgICJpbmZvX3h0ZXZlIjogInhUZVZlIGNvbm5lY3RzIHRvIHRoZSBzdHJlYW1pbmcgc2VydmVyIiwNCiAgICAgICJpbmZvX2ZmbXBlZyI6ICJGRm1wZWcgY29ubmVjdHMgdG8gdGhlIHN0cmVhbWluZyBzZXJ2ZXIiLA0KICAgICAgImluZm9fdmxjIjogIlZMQyBjb25uZWN0cyB0byB0aGUgc3RyZWFtaW5nIHNlcnZlciINCg0KICAgIH0sDQogICAgInVkcHh5IjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiVURQeHkgYWRkcmVzcyIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiVGhlIGFkZHJlc3Mgb2YgeW91ciBVRFB4eSBzZXJ2ZXIuIElmIHNldCwgYW5kIHRoZSBjaGFubmVsIFVSTHMgaW4gdGhlIG0zdSBpcyBtdWx0aWNhc3QsIHhUZVZlIHdpbGwgcmV3cml0ZSBpdCBzbyB0aGF0IGl0IGlzIGFjY2Vzc2VkIHZpYSB0aGUgVURQeHkgc2VydmljZS4iLA0KICAgICAgInBsYWNlaG9sZGVyIjogImhvc3Q6cG9ydCINCiAgICB9LA0KICAgICJmZm1wZWdQYXRoIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiRkZtcGVnIEJpbmFyeSBQYXRoIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJQYXRoIHRvIEZGbXBlZyBiaW5hcnkuIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIvcGF0aC90by9mZm1wZWciDQogICAgfSwNCiAgICAiZmZtcGVnT3B0aW9ucyI6DQogICAgew0KICAgICAgInRpdGxlIjogIkZGbXBlZyBPcHRpb25zIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJGRm1wZWcgb3B0aW9ucy48YnI+T25seSBjaGFuZ2UgaWYgeW91IGtub3cgd2hhdCB5b3UgYXJlIGRvaW5nLjxicj5MZWF2ZSBibGFuayB0byBzZXQgZGVmYXVsdCBzZXR0aW5ncy4iLA0KICAgICAgInBsYWNlaG9sZGVyIjogIkxlYXZlIGJsYW5rIHRvIHNldCBkZWZhdWx0IHNldHRpbmdzIg0KICAgIH0sDQogICAgInZsY1BhdGgiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJWTEMgLyBDVkxDIEJpbmFyeSBQYXRoIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJQYXRoIHRvIFZMQyAvIENWTEMgYmluYXJ5LiIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiL3BhdGgvdG8vY3ZsYyINCiAgICB9LA0KICAgICJ2bGNPcHRpb25zIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiVkxDIC8gQ1ZMQyBPcHRpb25zIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJWTEMgLyBDVkxDIG9wdGlvbnMuPGJyPk9ubHkgY2hhbmdlIGlmIHlvdSBrbm93IHdoYXQgeW91IGFyZSBkb2luZy48YnI+TGVhdmUgYmxhbmsgdG8gc2V0IGRlZmF1bHQgc2V0dGluZ3MuIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJMZWF2ZSBibGFuayB0byBzZXQgZGVmYXVsdCBzZXR0aW5ncyINCiAgICB9LA0KICAgICJidWZmZXJTaXplIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiQnVmZmVyIFNpemUiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIkJ1ZmZlciBzaXplIGluIE1CLjxicj5NM1U4OiBJZiB0aGUgVFMgc2VnbWVudCBzbWFsbGVyIHRoZW4gdGhlIGJ1ZmZlciBzaXplLCB0aGUgZmlsZSBzaXplIG9mIHRoZSBzZWdtZW50IGlzIHVzZWQuIg0KICAgIH0sDQogICAgImJ1ZmZlclRpbWVvdXQiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJUaW1lb3V0IGZvciBuZXcgY2xpZW50IGNvbm5lY3Rpb25zIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJUaGUgeFRlVmUgYnVmZmVyIHdhaXRzIHVudGlsIG5ldyBjbGllbnQgY29ubmVjdGlvbnMgYXJlIGVzdGFibGlzaGVkLiBIZWxwZnVsIGZvciBmYXN0IGNoYW5uZWwgc3dpdGNoaW5nLiBWYWx1ZSBpbiBtaWxsaXNlY29uZHMuIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIxMDAiDQogICAgfSwNCiAgICAidXNlckFnZW50IjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiVXNlciBBZ2VudCIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiVXNlciBBZ2VudCBmb3IgSFRUUCByZXF1ZXN0cy4gRm9yIGV2ZXJ5IEhUVFAgY29ubmVjdGlvbiwgdGhpcyB2YWx1ZSBpcyB1c2VkIGZvciB0aGUgdXNlciBhZ2VudC4gU2hvdWxkIG9ubHkgYmUgY2hhbmdlZCBpZiB4VGVWZSBpcyBibG9ja2VkLiIsDQogICAgICAicGxhY2Vob2xkZXIiOiAieFRlVmUiDQogICAgfSwNCiAgICAiYmFja3VwUGF0aCI6DQogICAgew0KICAgICAgInRpdGxlIjogIkxvY2F0aW9uIGZvciBhdXRvbWF0aWMgYmFja3VwcyIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiL21udC9kYXRhL2JhY2t1cC94dGV2ZS8iLA0KICAgICAgImRlc2NyaXB0aW9uIjogIkJlZm9yZSBhbnkgdXBkYXRlIG9mIHRoZSBwcm92aWRlciBkYXRhIGJ5IHRoZSBzY2hlZHVsZSwgeFRlVmUgY3JlYXRlcyBhIGJhY2t1cC4gVGhlIHBhdGggZm9yIHRoZSBhdXRvbWF0aWMgYmFja3VwcyBjYW4gYmUgY2hhbmdlZC4geFRlVmUgcmVxdWlyZXMgd3JpdGUgcGVybWlzc2lvbiBmb3IgdGhpcyBmb2xkZXIuIg0KICAgIH0sDQogICAgInRlbXBQYXRoIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiTG9jYXRpb24gZm9yIHRoZSB0ZW1wb3JhcnkgZmlsZXMiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIi90bXAveHRldmUvIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJMb2NhdGlvbiBmb3IgdGhlIGJ1ZmZlciBmaWxlcy4iDQogICAgfSwNCiAgICAiYmFja3VwS2VlcCI6DQogICAgew0KICAgICAgInRpdGxlIjogIk51bWJlciBvZiBiYWNrdXBzIHRvIGtlZXAiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIk51bWJlciBvZiBiYWNrdXBzIHRvIGtlZXAuIE9sZGVyIGJhY2t1cHMgYXJlIGF1dG9tYXRpY2FsbHkgZGVsZXRlZC4iDQogICAgfSwNCiAgICAiYXV0aGVudGljYXRpb25XRUIiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJXRUIgQXV0aGVudGljYXRpb24iLA0KICAgICAgImRlc2NyaXB0aW9uIjogIkFjY2VzcyB0byB0aGUgd2ViIGludGVyZmFjZSBvbmx5IHBvc3NpYmxlIHdpdGggY3JlZGVudGlhbHMuIg0KICAgIH0sDQogICAgImF1dGhlbnRpY2F0aW9uUE1TIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiUE1TIEF1dGhlbnRpY2F0aW9uIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJQbGV4IHJlcXVlc3RzIGFyZSBvbmx5IHBvc3NpYmxlIHdpdGggYXV0aGVudGljYXRpb24uIDxicj48Yj5XYXJuaW5nISEhPC9iPiBBZnRlciBhY3RpdmF0aW5nIHRoaXMgZnVuY3Rpb24geFRlVmUgbXVzdCBiZSBkZWxldGUgaW4gdGhlIFBNUyBEVlIgc2V0dGluZ3MgYW5kIHNldCB1cCBhZ2Fpbi4iDQogICAgfSwNCiAgICAiYXV0aGVudGljYXRpb25NM1UiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJNM1UgQXV0aGVudGljYXRpb24iLA0KICAgICAgImRlc2NyaXB0aW9uIjogIkRvd25sb2FkaW5nIHRoZSB4dGV2ZS5tM3UgZmlsZSB2aWEgYW4gSFRUUCByZXF1ZXN0IGlzIG9ubHkgcG9zc2libGUgd2l0aCBhdXRoZW50aWNhdGlvbi4iDQogICAgfSwNCiAgICAiYXV0aGVudGljYXRpb25YTUwiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJYTUwgQXV0aGVudGljYXRpb24iLA0KICAgICAgImRlc2NyaXB0aW9uIjogIkRvd25sb2FkaW5nIHRoZSB4dGV2ZS54bWwgZmlsZSB2aWEgYW4gSFRUUCByZXF1ZXN0IGlzIG9ubHkgcG9zc2libGUgd2l0aCBhdXRoZW50aWNhdGlvbiINCiAgICB9LA0KICAgICJhdXRoZW50aWNhdGlvbkFQSSI6DQogICAgew0KICAgICAgInRpdGxlIjogIkFQSSBBdXRoZW50aWNhdGlvbiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiQWNjZXNzIHRvIHRoZSBBUEkgaW50ZXJmYWNlIGlzIG9ubHkgcG9zc2libGUgd2l0aCBhdXRoZW50aWNhdGlvbi4iDQogICAgfQ0KICB9LA0KICAid2l6YXJkIjoNCiAgew0KICAgICJlcGdTb3VyY2UiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJFUEcgU291cmNlIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJQTVM6PGJyPi0gVXNlIEVQRyBkYXRhIGZyb20gUGxleCBvciBFbWJ5IDxicj48YnI+WEVQRzo8YnI+LSBVc2Ugb2Ygb25lIG9yIG1vcmUgWE1MVFYgZmlsZXM8YnI+LSBDaGFubmVsIG1hbmFnZW1lbnQ8YnI+LSBNM1UgLyBYTUxUViBleHBvcnQgKEhUVFAgbGluayBmb3IgSVBUViBhcHBzKSINCiAgICB9LA0KICAgICJ0dW5lciI6DQogICAgew0KICAgICAgInRpdGxlIjogIk51bWJlciBvZiB0dW5lcnMiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIk51bWJlciBvZiBwYXJhbGxlbCBjb25uZWN0aW9ucyB0aGF0IGNhbiBiZSBlc3RhYmxpc2hlZCB0byB0aGUgcHJvdmlkZXIuPGJyPkF2YWlsYWJsZSBmb3I6IFBsZXgsIEVtYnkgKEhESFIpLCBNM1UgKHdpdGggYWN0aXZlIGJ1ZmZlcikuPGJyPkFmdGVyIGEgY2hhbmdlLCB4VGVWZSBtdXN0IGJlIGRlbGV0ZSBpbiB0aGUgUGxleCAvIEVtYnkgRFZSIHNldHRpbmdzIGFuZCBzZXQgdXAgYWdhaW4uIg0KICAgIH0sDQogICAgIm0zdSI6DQogICAgew0KICAgICAgInRpdGxlIjogIk0zVSBQbGF5bGlzdCIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiRmlsZSBwYXRoIG9yIFVSTCBvZiB0aGUgTTNVIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJMb2NhbCBvciByZW1vdGUgcGxheWxpc3RzIg0KICAgIH0sDQogICAgInhtbHR2IjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiWE1MVFYgRmlsZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiRmlsZSBwYXRoIG9yIFVSTCBvZiB0aGUgWE1MVFYiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIkxvY2FsIG9yIHJlbW90ZSBYTUxUViBmaWxlIg0KICAgIH0NCiAgfSwNCiAgImxvZ2luIjoNCiAgew0KICAgICJmYWlsZWQiOiAiVXNlciBhdXRoZW50aWNhdGlvbiBmYWlsZWQiLA0KICAgICJoZWFkbGluZSI6ICJMb2dpbiIsDQogICAgInVzZXJuYW1lIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiVXNlcm5hbWUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIlVzZXJuYW1lIg0KICAgIH0sDQogICAgInBhc3N3b3JkIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiUGFzc3dvcmQiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIlBhc3N3b3JkIg0KICAgIH0NCiAgfSwNCiAgImFjY291bnQiOg0KICB7DQogICAgImZhaWxlZCI6ICJQYXNzd29yZCBkb2VzIG5vdCBtYXRjaCIsDQogICAgImhlYWRsaW5lIjogIkNyZWF0ZSB1c2VyIGFjY291bnQiLA0KICAgICJ1c2VybmFtZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIlVzZXJuYW1lIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJVc2VybmFtZSINCiAgICB9LA0KICAgICJwYXNzd29yZCI6DQogICAgew0KICAgICAgInRpdGxlIjogIlBhc3N3b3JkIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJQYXNzd29yZCINCiAgICB9LA0KICAgICJjb25maXJtIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiQ29uZmlybSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiQ29uZmlybSINCiAgICB9DQogIH0NCn0=" - webUI["html/login.html"] = "PCFkb2N0eXBlIGh0bWw+DQo8aHRtbD4NCiAgPGhlYWQ+DQogICAgPG1ldGEgY2hhcnNldD0idXRmLTgiPg0KICAgIDxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgsIGluaXRpYWwtc2NhbGU9MS4wIiAvPiANCiAgICA8dGl0bGU+eFRlVmU8L3RpdGxlPg0KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iY3NzL3NjcmVlbi5jc3MiIHR5cGU9InRleHQvY3NzIj4NCiAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9ImNzcy9iYXNlLmNzcyIgdHlwZT0idGV4dC9jc3MiPg0KICAgIDxzY3JpcHQgbGFuZ3VhZ2U9ImphdmFzY3JpcHQiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJqcy9uZXR3b3JrX3RzLmpzIj48L3NjcmlwdD4NCiAgICA8c2NyaXB0IGxhbmd1YWdlPSJqYXZhc2NyaXB0IiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ianMvYXV0aGVudGljYXRpb25fdHMuanMiPjwvc2NyaXB0Pg0KICA8L2hlYWQ+DQoNCiAgICA8Ym9keT4NCiAgICAgICAgICANCiAgICAgIDxkaXYgaWQ9ImhlYWRlciIgY2xhc3M9ImltZ0NlbnRlciI+PC9kaXY+DQoNCiAgICAgIDxkaXYgaWQ9ImJveCI+DQoNCiAgICAgICAgPGRpdiBpZD0iaGVhZGxpbmUiPg0KICAgICAgICAgIDxoMSBpZD0iaGVhZC10ZXh0IiBjbGFzcz0iY2VudGVyIj57ey5sb2dpbi5oZWFkbGluZX19PC9oMT4NCiAgICAgICAgPC9kaXY+DQoNCiAgICAgICAgPHAgaWQ9ImVyciIgY2xhc3M9ImVycm9yTXNnIGNlbnRlciI+e3suYXV0aGVudGljYXRpb25FcnJ9fTwvcD4NCg0KICAgICAgICA8ZGl2IGlkPSJjb250ZW50Ij4NCg0KICAgICAgICAgICAgPGZvcm0gaWQ9ImF1dGhlbnRpY2F0aW9uIiBhY3Rpb249IiIgbWV0aG9kPSJwb3N0Ij4NCg0KICAgICAgICAgICAgICA8aDU+e3subG9naW4udXNlcm5hbWUudGl0bGV9fTo8L2g1Pg0KICAgICAgICAgICAgICA8aW5wdXQgaWQ9InVzZXJuYW1lIiB0eXBlPSJ0ZXh0IiBuYW1lPSJ1c2VybmFtZSIgcGxhY2Vob2xkZXI9IlVzZXJuYW1lIiB2YWx1ZT0iIj4NCiAgICAgICAgICAgICAgPGg1Pnt7LmxvZ2luLnBhc3N3b3JkLnRpdGxlfX06PC9oNT4NCiAgICAgICAgICAgICAgPGlucHV0IGlkPSJwYXNzd29yZCIgdHlwZT0icGFzc3dvcmQiIG5hbWU9InBhc3N3b3JkIiBwbGFjZWhvbGRlcj0iUGFzc3dvcmQiIHZhbHVlPSIiPg0KDQogICAgICAgICAgICA8L2Zvcm0+DQoNCiAgICAgICAgPC9kaXY+DQoNCiAgICAgICAgPGRpdiBpZD0iYm94LWZvb3RlciI+DQogICAgICAgICAgPGlucHV0IGlkPSJzdWJtaXQiIGNsYXNzPSIiIHR5cGU9ImJ1dHRvbiIgdmFsdWU9Int7LmJ1dHRvbi5sb2dpbn19IiBvbmNsaWNrPSJqYXZhc2NyaXB0OiBsb2dpbigpOyI+DQogICAgICAgIDwvZGl2Pg0KICAgICAgICANCiAgICAgIDwvZGl2Pg0KDQogICAgPC9ib2R5Pg0KICAgIA0KPC9odG1sPg==" - webUI["html/video/stream-limit.ts"] = "R0AREABC8CUAAcEAAP8B/wAB/IAUSBIBBkZGbXBlZwlTZXJ2aWNlMDF3fEPK//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////9HQAAQAACwDQABwQAAAAHwACqxBLL//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////0dQABAAArASAAHBAADhAPAAG+EA8AAVvU1W////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////R0EAMAdQAAB7DH4AAAAB4AAAgMAKMQAJEKERAAfYYQAAAAEJ8AAAAAFnZAAorNlAeAIn5cBEAAADAAQAAAMAyDxgxlgAAAABaOvjyyLAAAABBgX//6rcRem95tlIt5Ys2CDZI+7veDI2NCAtIGNvcmUgMTUyIHIyODU0IGU5YTU5MDMgLSBILjI2NC9NUEVHLTQgQVZDIGNvZGVjIC0gQ29weWxlZnQgMjAwMy0yMDE3IC0gaHR0cDovL3dHAQARd3cudmlkZW9sYW4ub3JnL3gyNjQuaHRtbCAtIG9wdGlvbnM6IGNhYmFjPTEgcmVmPTMgZGVibG9jaz0xOjA6MCBhbmFseXNlPTB4MzoweDExMyBtZT1oZXggc3VibWU9NyBwc3k9MSBwc3lfcmQ9MS4wMDowLjAwIG1peGVkX3JlZj0xIG1lX3JhbmdlPTE2IGNocm9tYV9tZT0xIHRyZWxsaXM9MSA4eDhkY3Q9MSBjcW09MCBkZUcBABJhZHpvbmU9MjEsMTEgZmFzdF9wc2tpcD0xIGNocm9tYV9xcF9vZmZzZXQ9LTIgdGhyZWFkcz02IGxvb2thaGVhZF90aHJlYWRzPTEgc2xpY2VkX3RocmVhZHM9MCBucj0wIGRlY2ltYXRlPTEgaW50ZXJsYWNlZD0wIGJsdXJheV9jb21wYXQ9MCBjb25zdHJhaW5lZF9pbnRyYT0wIGJmcmFtZXM9MyBiX3B5cmFtaWQ9MiBiX2FkRwEAE2FwdD0xIGJfYmlhcz0wIGRpcmVjdD0xIHdlaWdodGI9MSBvcGVuX2dvcD0wIHdlaWdodHA9MiBrZXlpbnQ9MjUwIGtleWludF9taW49MjUgc2NlbmVjdXQ9NDAgaW50cmFfcmVmcmVzaD0wIHJjX2xvb2thaGVhZD00MCByYz1jcmYgbWJ0cmVlPTEgY3JmPTIzLjAgcWNvbXA9MC42MCBxcG1pbj0wIHFwbWF4PTY5IHFwc3RlcD1HAQAUNCBpcF9yYXRpbz0xLjQwIGFxPTE6MS4wMACAAAABZYiEADv//vdOvwKbVMIqA5JXCvbKpCZZuVJrAfKmAAADAAADAAADAAADAAADAq7aiiFafTJvTQAAAwAAAwAAF1AAAAVUAAADAiYAAAMBNwAAAwDUAAADAMkAAAMA4gAAAwD+AAADATIAAAMCGgAABAQAAAYoAAAOwAAAAwAAAwAAAwAAAwAAAwAAAwAAAwAAAwAAAwAAAwAAA0cBABUAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAA2F55UwH3zADgCn7Xsg5urkZA62Mq62dWKwprJak9U0cjT1Yh9J7WRISuxmagZEf3SG5hJ5glLK+m1DQRdCFD2mN6YZGjkCTKwYyDxKlNHkaW8fuatJR0sAtCoVfOjRr2/NS+bw85zMQI7VFu7+JhD/Go1Q5RgMv5bIq0gpxJKRnF31ojI62CwCRiJ1dHa6nIwcU00zURwEAFhyu6/UdOQ6gXR/Fn3SkmUwkQsjmQF0XEAAAAwAAQkN8C3guxx7g23xd3I1uQvL9Dh+C+fpNfOmVma2q7DiUF3VD8o51I57iYniPq7fe7f2YnPwRwynt2WAsZSjTMgHnGbk5zsyy+rXIMy1p3notBIJkpSBHSuogn9FDL99PItYMLSYCXzbB1ngJo9jnaTgI0b904RmkSjuZtpKyt0ofkYfxNRrztwDGURi3JRPkpuouCWX8KWcxn8NHAQAXWrAsVbXQ0f+vby6QN9oHh0jRsBw7+79AAAsCUlIAAAMAAIGTVQt7SJOBNtpTiAsB1/AzhYzJ8lMVgRENWBT0VBkiPo9+OyjWfg6dlrISORs+GKnEy5aUKA1M9uXDtedogUi7S7uVd54Gj1Qb5NTw4Jix5w1Ejl/de0xvxERyv4b3rmZdsU72FOcfnbK1K8lG4wnxVzYPGiElBGSrNsWNXskCT++8dTbAQv4ejltKQDN2z2xpw5g1CkcBABjFGRM3p9Rp9BGLQ/gaCYSE37IZAAADAFsvgUK7rSLf56T0ZOVulX2oYo74ASEKbonCVfRcGAke05L38QhPtmJ8xRmebFR5/801CbQAWvnAOc2AWgY1coPTdBTZIfsBwU94Gu+qjaoR4dfBX9u8RZXmrbLBCqJ8wTgvf9kJu7/27gcTx8SsJfq40cjhNaRNiof2e8CF4imWObVdvBDpPRxSiR1tsORfA0r+gqjURLyvIwDsE+O9NkeiRwEAGZMG5kW8doFnKjj4QW/OIpFfzF+53Eb4LrnRmrkHqYA/RnqVvBWNpUSFdATxWKzy0MBYRpY4IoUCpCeWwgQ/9Ny0Yi1iQ++wmh1ay/SnYR5B8k+FpDYbWDODuSuCMmrTDKXjicAStFseuB4peB1Ufu7fitj0L0uZzCgGY5zkzbBp3bfXJQEGCnSwEtW+TY50gbhenVCesUfJKjvG6PshP5ScKPdVkZltrS4wx1CntFR+srvN3MjP6p1HAQAaM8+T4dTA6o28g/ki3+J9b5WD8oY+fVgTsb1jfV2GWWd2Hh8JK00uloyX94k2QHGzhbuiS1YKiEdCLz9Pt3RuxuTNm9XSlLwQvyRvfY6sKD8KIinvSq3XP//Kx5Ni82QOXvrn5eEmFlTGuT36Yax5OR4BI3UhdWSGGa0YoqeD7zcvWv64AAANbhz0PNupTjTGu6vxaQq6PcgarV8F7NT0zHSQCZ8KuEFdideJmx4581/BCMYXuJt5cEcBABufpZ3Gzdy5JLw0J2eg1hz70uf/nD82aqNxy/HUvEd6+w5woyIYb7nzl1eo/+ACzPidfiSKydCNxKh9e7tKjNNTJYRX+1f5A398n+2wKJPX7dRmPk4C0j/auaYtAMF+Ft5g6ZqxQuA071fEmj4uiYMR7F+JbZ7CjA98DObmNy/ZWoJQvMrvR3ep5XAmNFkqs1Ma20JWsiikVsr/jblTK0PBVnLul36knafsXUW38/19lMQo0HUcMvrmRwEAHI2OaNsvRTodm5RGcpDEKfXIqXsLfH53r0F3K+sfRvbk3u2ilZd/c5zH95TBbceTvFEt5mD6oPEhxHX3gId6ZBsNNUKUnWDxoX7MaYE38/ELMyIVzRxDCIEkf+q7aY6tcZEMrPBa352hxE6SJ+2y/zlDc8X4jSYerSPRgLBiUm/TSHdm/sHP7d/kl2fmIUNKBbeaghigfwmfDnaZ3wPkRi3oXIp3YypbLYpeup62X805+oYMAgynQd1HAQAdHLgV5nC45givqz8G4AAB0pcgXQpZhwRtJ0wE/aFEPMXugXV9NeZnpzJeXaijTBtaFonT4e+hZZXjLHhxTugKb085RNFOoT0GAB6b2twqc++PKcb796IKMKtNpGaUWjoFvBDGh4HrRguoZWCbLy2RFxUX8SmNUb7qfDXwIi4nY4i89/TcrSc0q64NPWA3SPmQ5D5/ZFbRzBtFuMVVmbEF0cxv9RoqLyW/VGkp+bBAmoMhAw82eI9VskcBAB7bidwIeUDbJvHb2Z8Ep/avJccAh157ZUytHDDW9DhmdbdBzT1TpsJFsFWe8FOQfaNpJVfj2nGqShY4+DhxRYxOpzXw2VF7hQpp6PqFUtyi4ib3VHETkSuHz+2uom/bMRbhw+hQ05xdXOHcFVpih+k58QKrhN+txmOmV3ULdeiVLUplf35jQJTUIZltXjTCZhljRc0sdqOZHDZjy58Sc6hmq8D6lztRR5jN6ifzzKdZbHOpMvK28A4ZRwEAHwyCdGDG4LksEyABPYPnzVuaVJHpUiKgtb3006VleBPo2EZenL5/vyGrjLMas0C6R0iyXZjr0xqvCfaFfxVO/+DQUMKaj0XLNNIrLqXxwzxzy2ENSUjNNySzfvDkpjuJVywa0uwsg60r6EURKgU15gAtbm3Kx4tjb3pRMM8SZHnsN075ztW98+aTrdbRryY9XR74p76dkImiqWIVRQAAAwAAerbiggDgwfd5iHYwqlkEXOqApTuXEhFHAQAQ1PUugOrA4HsFQsLzVf2RjOkhWvlC/kwNqqDXkwlUM6egLoIdgXAyBFgSXuM59iSh6DSi4LwFa/FhyGMrxPV0UF8QD9dGgSeXBUvExQHAGOHz98Mbwm3lBdIzxkzeGLDhi0wZ5SurQPpWomKoDW7t0a+GpQkmCEgVO7iBc/JrOFIt8BBRW1E3EOMv6Wpc5Bw9M2A1XVVaNSFyVkr4bJmsPdNLXAJ4UeKO9R1lUBhl+OhrxoG4RKVHp0cBABF4Om4vKIyHfOkDd6zL8NOXPLL7gS3TIX2EFGJwyyOzsp3WEnvyFp3pujaaLMn/lubQO3uY99+DKi2Io2lBhymLAR6LDBeQ7AhVrgnfiNz91OxGGiYYLcV2yR4f5zrcwMQZNJDrBZZB5gHIDL20vdPnM5RCWlhx/pWX/VbNt2slYDgCwcQp6S/f+sYDWW8d6kKnv4kberk4wmAhuvG6Y9SNfBDQ5l9qn/Obo+/QByc1yiGJRu8Gf6MCRwEAEoe8DYkkVe/6Ixqln5QQ/EQgnqBdcH9XhmfrybwZkozmwKLLqqVJH8KoMeYLCfFbfUaJbcR1M2fwEHGq8BQXjRJFgtHh3lCD2NBLo+9F2kwxA+U6o3SQoAiESygbnYzTRsRmJbxNCRKSLcIhfuhjjCaAi0Icfv4rxjBMuDTA3ZANJ/jmVtzwWUFolUII47bYNLfdylQl/XdlhiHX3vln9Ji8cLEbSL8BMxJ2EI8GBsnrIBeQBPJc+UNHAQATIY6b3+HKasi+GNJ2c21SbezgAtkzMWLCJOnux4sNbrOiNHjom7p+U1hZN9Nr5wuzsM8+1NBBB2pfg3/QKiCYs6b9pduydYs2HEo8FbJJO9uH/yhvTL9d6RHrHf9srnZkSZKhJ7J7mApu4eNNCFusU8sNmfV7H97V1FOBXT/6JShgEQxdnwWdgxDvO8PxjkwuGrYPamKBNG/zRiG5AbW+ikv3OBftfBdhuifSSqoWx0W/XRtyk55S8kcBABTW3x1rkDAHFUfqPG8dZSQWAtnA0fS2fwfdqEGWrbQvYFwWWVcRma+zWJHw2/lVzPD/mSdMieWiX8i5DWTg51gGKy0ftdjOBgAAAwAC/KwTiIpM5clRTlEEi87aAOb87wCHqn1gnPnLGPfQQiw2QYxiClSodV7wEhhJw6ToIwyUjyxYDwVnF2+7eRq7fijw2kLyk5C88BvU1OTdlPGHyBmiT3UXo3I7308/Mn49t3tnXLB8MdaOaVwaRwEAFbiVrH5lksx9oY9DCw61tAqU07scxCL86wtgcyZCmy2ZZ/2W79DRKs2QCu0op9Lw2QYj/OgOj6apaZTOtksj8+VKlTlQQnkV9sFudGr7gpsQoaxBjmrhVk1adbYaFkKCEUYRbDRJpZQDbv1RIRFlY/KmWweiUOZDX+3fplGzJs5LvbvgiM7THIlybfPIXTjS2SPmFm+rQ6T4X9BQocVCjzQvz6g2kp58j9jXT5sBBuu9tC7iTFfMEzZHAQAW0QFraUkCV6gEC2C8wvr2E+hXgJwCskVL+063JAWE9yhGOTyWD/fLQiiuxJ/88Zes8sHmBC+quRzE8SHNO8OIMMptzSvx1i2D8aBb0ksDLYEqwCXN8Lsz+71HkS8SdC0nDGQZqAm7DYd3/uBgR/J4FAOc0jvOUci0tSUbSVn2z+H03GNfHcZ+XgduswjjsUodtsUtRn4nXpryhElgMI3kr2OyFXf92YxZPgbhGubgcNlo+sZ4Z/ApNUcBABeS+kT7jvDiaynYNz51Kc4yccGFoXKWRhGdSRtXJFDck0iJWKT4opQng0gcHiUFaL9bf4jSqm56kxLcQ5YAgHkDZ0UGYh6QEEPPAfCpoDLCF9mL+/OEuHWZ9NOnW7TcJlKbhJOZEKkoE4KW3fDydJ3a3l4IOByTPx5LJAjAZoV1BtKInfF7g5OQU0G5EXJGhFWUsr8Sf48Q9LVjnWvDuawWdWPiS+BcWfUZoGIkK6NoPQR/qL1AIJhcRwEAGAOEUaznr61uMAnNb33549uKjSRk1nM/fUR2BA7+39FhNrmR3taY6qgM804qoHgCSbYS+YIKj8U9vxfATvknbWEZv4JF5hoFJaAN0bNc36f9VcnxAkGsb3r74Yko3jVackXvVrdcN76rT9izohLnH2yQem0zb5wOq7EtjPnGn2t4t4/9JDKIfVb2QikijBu8gHlSjvgVRWSYDIRCi2Zle5MtFyXOaIGwCRAv6PFD6mmJBUT2XimID7tHAQAZOkCES5EDxQ08m+f8cpxKkoyHem8Ex4m8xZ2DA4d39JDH02xtTRRfSfDrC/TqpIjzCtcVv/zzgSflzEbq/UKFH/Z7CbtsrVS2+ll2/CGSNsmOHGi5yrhPM/JSClEmt6IRtyk0FZ3r5cdREJwAKoXP4tNLpfjWSZbATEIGmr+OxqYxQMlzf/93+QrgM/g1HvmPFBPard2U8aKbHTEH3r/kFdkNmlE0EQi5b8TOCYIa/mpuWq/yMn7by0cBABrkhq6Rldw6p3qQyVsZsBpoW3OLgDe/7/pMx+iijZdk9jE9T0fcFh77YVfpjYex2//dcNszIlWr2vl65Z1+0cQQShk/R5GP20mU4dc78l3iyti4DcDCi6PdIU4nzdwZIpGFX9xIuPAHaNfyP4Nyr1K0j9h5STEAHsYX21+iN6CKiuWoWOm3ev+GGzt1NNmtc1W0OYicTiPoIVr1TGzQC+1Nd7izII3tPWn1PEtqM9+fXo32ibSZUvGsRwEAG28xtoQMOBX+QWzc6MLY+xdighCBxpzLcNRK09DBzvBjyt59TqRxzLpeKgJMb4hkrGZnI7ZB7k4WSdssIdlyXiqQOLW68TKxOi/m2l4eAg3OCdiWnrmhOdRSMVLPALUNPDXtBJE5hOD/rtb0FHxtGQKnmP64bBNEEEJCWqJO6W+Gy5Bj/1OPVO5Lb/mGT6SfZVe2RtKnX3ZVDyDZb1jHV0Y6RKS8+Ww1Ya57NIcyPDo3g06Ef4Vi2RpHAQAcWH+V9i+eiLHkvPKkSHT97ZZGFxrcu9T++hegAGupHOjZYoxGWV+zfmemcnV4Qc0p0Sb+bCBN/WYAmY2PsHr+MIroPJIqRxQacYxgv0Eh/ahn4Y8AHjDPnPRprvdugL71ZtfrhmqiLml/RA0I8xMa/JZ4jrmIOqM+Z+fLjB67UYM71w0xjsBG/PgXRORM5Qqkfa6vscWkOW3l2RaUeeyDnUES4bdGUahzOYND5CZ11DaxBi7FZpSS2kcBAB1UDuNag/7CUCi13BGNTDCy03A2H45ho7AAABa85YSo2ddxRWSmP/8M1+fhrnv2TvJk7zHcA5z9BfW6MKcG/ehOV8RoJWUXPPQvUS5U0mqa69CuPBPy9cA1FwAI3ipau/UmVf9WS+R7+XREZCdpkNc5acRUaY6VieEi58Gy3p/q3E9lT4f4oYx563YFbu2Mjwq/dN/ncWug4Nun06Ap71zELPDKDaexmC+kEhaf6dReVEeK+uZfg42ZRwEAHq4bLzMgvrZQb5Neabro0F+gcFiL7UdLm0y8LR7TPvIQ+Kevu6d1BghMMTKxPVSrBVH6F6mATlcYYyhZ6fc7mnHFrpCznzCepMqz3ro5tOUnl9iNq+BQQPFZZlKIVl/GEtg5jzNU88j4KpNvVAoa6Cb/P9X3gWXF7KWmnzgUsZM5mR4GvWJWIcg+IDfe/2FtphXajgL5wfiIK1jzzOr3tQ5xYrVpBvuyKmtdCfIrHoFt4i/42TRgGMJHAQAfCTLHw8EYKGd4hzY41zaYLjR4E4nuBnCtxuCX9FhYm/YnBE6exCJDSBtf1sfFAv5pgAOcF+CZrALrM4tRCUKQs0t0o0+8+ZU1dyyuCLBTtC+vJydoSGmMBg+XNyIPtNEtN7qGS9WWA81qcbxxzsc40CIJf78S26nBKAJuyPu+iX9ANPAyMrgOAVc95U6bJlSjLkP6CXXR2dJRvUv3raWkoAAOjJ71lTFvacoQwhCErx3cbavuczBzJ0cBABB+z7EDY6atdC4NZwX22iBmtZsaHUa3NaBIO7aD08FA7Kd0ugfbomTYomPBMuWwk/b3KMR0uhkyeHKC1RjYo4d/mMo97xS4ix+t+38cwQHmkYQH5Cm1BO6ezuTSevjTojq1hlXD39LxF8a/93o4Tojo+ZmPPJix6BuKlBIwjtpZb0M+nOEX8jPyyd96ytD4eWjOAt/heOiSF9hvmiN50BmkUiITCBF39iClDPO2k/Fag4BqTBbtubcLRwEAEUNMr0m0/lLKJ5ks1W5j+cRzJ3kSK0mRkjrPrr0eWASIwI6LNyATeQMrpq3uWQlAQ+9SdeWmTu5uHTgt+d8sFZe8JXcU+1JnZRSZ9yaoEC0i+bOkGfWyMpA85qtvAlKTBMOm6ub/5NMaKU/VAW9lEvkA9PprSonQVMnG4+BlH2JOh8TsTKkBZPVgILxDM8mFjQXm0TBsezlo4ABKvPWcftdHUaGyF7gP1XbV0exXEHfsSASfYRd0OZZHAQASC+/t5TafeJT36YiEZXYeQH2+IoK6ZxRnFgTmKOGcCCYd3KzwxTJp8XFrSbvg7LzTDnvjGYOaazdnbZt4/Jn3krhhlSRWjhWRqAyxMNVF8n18FXqTzJB1PKNbd7ax8R0AjZfFVC/ycdg6wATRrdRJSofJHpjwYHGQO+L2neTkvCrH/gUPD1U+SjdMlUvLS6vMXop0yzDX/L7HQcLXjKsR2lGDYBlM1UB2WHnq/qPBycWFFtPYyTlN90cBABPvVe8f0oNTNwJhtM/kLJBEZI3ZwCEWYk/wv9hIIWr3A4qkehY4+ptgTX/1///4JZ6dscO9HKuG6puRV3lR4ETvMwdKnHPSHjJF2aQeuvoGeA7yVT+AaeDi7V8ZlVYMc4uVncx1liUQapUssjXpK+2MxWQ7Cb5GU97Drj7W/oPo2Ptldofr3uIe6fvheMu/6aViZagqUWfdOTc0YXVHZzPFok9FEQJUWdUPZiJlfllKLIy/6aAyw8HuRwEAFKEU8CS7kA5ZslGAnKoBbCTNOXl4p9BBgCPqieSBknZibS3PcR/LjWgGifTDu5u2Wj+eAMmSM7P3HMAAAC+T9jKtui2s4cFmXoWX8va4/qVAzxWGs3w547v+Tmac4FyXAqNj0/rFe9k3Egw/P9Q1LxzxwDOEbknnvYdCGAAp8Ivp0KW4t+inn46uKR4RHHa3/VSY8znvIUPdudc1/K0jIEI/Q3pEL9pzjQZxtgqbGfHOMo5yI2dWIDlHAQAV/YbUhbsIYEjAICdYv/AE36OWoooY0Nf/2lmJx7BftLoE1dLDfZKeiAdmrhnpvihEEfTo0MaKnEoSfryZ2OAN9yMb5+fcL8FTpHFFCfvfivNdZyTFOvrxIc3hv+2TavaVMjhtrDqlErqEd/XPoVqKmAeHo/ORSn73CZ/cWNXX0JQ1pRuP8VvL2QwfnG2vq9nTXfiQrMzEeEpNIaeqZS29MfFP8+VCiKyM9p1vNhZC1NItrJ+gsFzJsEcBABbEKpgjE+ovbWLdj0EXyH8KO2Jmn2vTLCKigPqQhq3uaL/6o+uZWDa8dvkxNep66qHmLO7/821Audrn3I6tmZZWSE51J3/XYBVjpW9Fw0Bkr6GpAeDT7ybMGYdKJsd7/WZPZV+Db7zD1ZmulDiRnfN9EmSFStYYD0lEfqrCbP+xQuwtYvfYJsqIvl31t7RBZk/QV2ENWfDLEpMHt5tlrAv5w+3dl1lg2WcrFP2A/7e4sIIyRJo4HsLGRwEAFz/AGCMZq1GUNbPZoNkM+R2je+8sB+Gh/lgSXtAQZK4CwsR8tHn5hyV9QoAAAGJ3xJ/ZGmyBFBfvFt3Yyf/NFoecJXk49dlUxZvTtB0WRCewg6hn1yl3AH406dFPGEk44wMT7vPKyYJW4OT7kiDQvBsdpaU9TmUUKyup1MsILviQKXWAv+kecpWRTY51BniLudSBH3vmnE2l4hUOm7AVWQ3O8V048//RRvDBX7tSPIiWu+MxSSGZfLdHQAARAACwDQABwQAAAAHwACqxBLL//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////0dQABEAArASAAHBAADhAPAAG+EA8AAVvU1W////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////RwEAGO10tGlFAwyE91Tzg8923ovJk1dv2xh1gVlYQFtWdZ6NSQ8vgHM7/tMfIZPsqgCU856rdBJJRMDaor/oWA7pkvSmC2aqaC5fd/mkWUPTuG8fRhGqOY1rKxLNSI3HtTQAcuVBxRM0NfMw0ky/JMJYZiCgXcNsxpxl+khr/9fKtO5Fg2VNBti92xcZimHUZDJMQTBOY6vSR9L1N2O/kJQCpdfuc9bkcUTMjH/es/lAySxvbiislkohqkpHAQAZVatwHI0t9eHCUfDyWUEtuCNyDwQFOVMtaYEQJrTrhQX0VduT86F0u0wN9ag0uPsrmX6Rid/x5S7KI1SkS+qP6cdmgSP57uiF4dG6IKsWNfGBLY09H/CFlrg73WINQkkp2diKkdEmtZetn8+ZAKzR5eXN5FebiKt6pIkNLuSofjosypEs2o6boKsfpmbtOV0idOeWDM9C8EIcn3aZwk1s2KBDvt1DlY+i2Cuvhk3XoKLT+pq/bOC5QkcBABolcOXneZXLoQw9W1PH1f/of92Ytjj8okrWijcQAKlE5l8XoTb9qrOiZnDOhqwcMlB9H9rorq041I89hChohYoSkJElcM8V+r8WYN5axD1BNyfwaHAOm4UN2/VEYOkNSfMjmx2S0WW/F2ha8Jj4fc4QgqcXr+TnnbwqLkLTValK4Qa1pcv7PIbDq6zCUfxe04guZ8xEhPQjp17/G6IB/6uq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wnibxQ/cXEblVnM47wbCN3iy4eHjYB5MoIICrSYmd8nt4V0toLs084KJlmnur5FbApYM4W79ff4oZkW88Cg8Fv8TnWhh1Hqc4UlhMbRKm2QxDgfBxar3U7BwNR6prrXXjqfR7ja3tPli+H7Jez/xcTg32QpHAQAdTa7pSSgBvmOqzz175NAFIhwE9p3d71F9jLvhaPv8q1iKopL0kizwzEWElnXWmNhfLkl/Au8KujnoKUaxVdTe+zAZm2dOkejnpNVtVj0Aw9wKcG3ZQ1iRZrUFRIoPKYlmR+oi0LrupuhYABtgPbdCbDtezGTr0nw9wVd/rZ6V+1wcoJ6+8VAVueIdwI3brqm6EoFHiI8L6lER+9SefB8fHo4NYgr/I8jSxaa/2PLX2K/DjrlY6bN8fEcBAB7DXsuh8DITF6CYWj2HTFvqfzlic3QHXnHtvsTFNpyVY1LY8y/fRK2mwALN6IB5W3OuyoKiA3K0lJdQUv2gYhHWvPTV218HYrD0rkbMxRH0SiEEkrHDeOt5T1HtWD13D2/QvMu535fsfZyeaFDjdCE9M0Xi8Lfc7Xj1ZNGend7Jo7/cEiczFkc1vB4z2JpFGZreV2EdquyEzC2STFJtfimyx8QlLngEuR1cxH+lWEcFX+mvBa/eqktIRwEAH6VazFLPNsnHZqsI66TVoArQuUUGFAzr8MT8GZ9V6qpZa5D0jA/4eGi6Kq0smUgRExnqIbSMLWqDf/Pk2YT3MpHTu9VE3Dn9blgB6KsVIkWnB98Y2n/6DrZDcF94Ndu0Ka4U/RZwdV5O5KcO+lU2ZiIOYTYZ6Ie0d+tApxYxJ+YmxaDoCyRNe6crw/yzR5SflT8ddi/E2BM+l+nwVDiKZ/714fmrBxFKWuqLiQNHV19o1cZ8Ubun+ZtHQAASAACwDQABwQAAAAHwACqxBLL//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////0dQABIAArASAAHBAADhAPAAG+EA8AAVvU1W////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////RwEAEH1s3BdtHdF1ln55B24wdACF/ggcRtPmB4IUB6cZJ+m32I4R48ZkdhAFBulgWcsv0wZwH0o1yi3i4qm3rJ98AUKdB9PsNyG9gURV0bTw4myAj6g5Dgodfv6w9bsbOxsGUWkvgAJ3rrR010BvZbIa6CMRCQRjxkCfRF77ansRJZT0JzhtYeSS/ZJob8Rr2jrng3W2rkmHtE+rdqlPiHxmwkRZvYGhBxwiJO2L6f+l/cABsfs09rA+A0pHAQAREZay3TBUIAfMWhApE+LaPgeyOYtaPFONA9aC0h4QrFkaLZfb86678MK+zLgqDBsDoj50eZHMVcczRjs4sYlv7RG8RIWKb5lB9Kn/8+CkxiiA11cHH1yzLX2SKCmhsak/+P/zYQ1EDvEj33bl9e3Jd62cTI+Qw99KrsWnUMN8hFNeXzoGHA3aec+Li4NFboF8sa6lCPR6Csxsvxw8DJaWCnER5Z0p+nKhXavF/eNHQ0DX47ohycc87UcBABKsYHCHXXe3vK1cFYDWO6rhwM6hxCdJ+/X+VB1akQejL6iBMdUPuadUqBnbprwJM0dWpSSn9uuZZeqe46iZOGIJUo69d8x+ZSvPcBH/dK1Y0LJnoWdgWH51SQg7eYqcwjQW3BOy7ZF02Hn1EhTuhsN7ms8zv3WIeEBDBq0T3Idl+Tmw9iJU9skVYiwygHG2+0XwrLa6y+uiQPwMzrnEr1kuf24XoAqrJTZQiVH3aQF4d94yDreWu2KPRwEAE2FsynHZaUcBXEFbeX0nSxZ7sRcRjJvc7RYOny6N8QFwKDVO7jpRWWYM55kuepBOyZ+7BFYeG+FU1kR+ZfmqyDNkD4D1IPwNh6u9JQxDymfN/aMcQC3WxdvCKquPsAut6dugpGkOFtIe+W3ayc4V/J978P+h1EDFMbFjxRPuXht0K2dBQZCJ0ybISUDqWzhPuep8CdxSU4MvMVfdXh7FLl/BqKJUTT+vM+Pz3XnqCQQmH5TjQ4CK55VHAQAUEtgfkBwIYgtwHkhjmtLw7HNTeJeMfTjATEKcyuKzItSeYxHBmGzQ/+G2otpPCOkVAXJ9mfx7LxrW4joZ0ttTRQJ/wqMUK1IN349LiJoo8y/+FwN4jPNDwIleJG697riqnmLOweFW8spHKLBfnHcyC1pG6EIxFpTqUQ0KHqXD/KXIHKioJNAOVwQ1Gfloxebo/Tdtd00dpHP3gcsAOnV75APCYOjVIlwm2X6ViDeZw6Btdb/Br/+yokcBABU3+eOESLlneGbR5SLiL8wPkoRaZ5X7xFlMTMvsv9yHk26bVdmsubSdbYS1Hy64n0+NnL7C1aLD7aJxOudMjVW5goZbfO2KxBQkCD4HFA284wbaB5vOL7mRilCn6YEs1kiwf22+fBLNUmXDb2p353wrD/ygTDhlki66USvUmd/ZAs9uzAddegEzy7Xn00YysWTu/hegYyZtWFC+X5dhLubWJ7n96y5wjrP7PAOXoQQtFUH9j/rBiP/7RwEAFnL/wYKYuj80mPGtimSbF/E9K7XwjwBz8yHZubmVMTCmwkZBM4h0FR1thnUGiSjqjJT6SfunWCZ/dZDQplrzS00UKcUP399SyM+nNG1br8Za0ZYwWch8nyLHYXSRuxdnrfUUespsOQo1cWSLGf0pV2HIcHoiAAEKwPU6irB5BSoFvB1qKVjgEk+QwAEYAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAABHAQA3pAD/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////AwAAAwAAAwAAAwAAAwAAAwBbwUdBABgAAAHgAACAwAoxAAmBIREAB/SBAAAAAQnwAAAAAUGaJGxDv/6plgAAAwAAAwAAAwAAAwAAAwAAAwAAAwAKCKB0AIhy1ftwLNISWucTFC7xeBcaIzP3oZjZo8uT9hqZVstWGnrPz+vjaA5FuCO+K2w7/o39LygDO7aL+0zSrN90LW7r133x8+f+PEKk8d7pd2fj4RYuMOXOYunzFzRX/4IvR1XsK5WJYwVkOca3yfo7DTvUBP9rgSiTRwEAGQD6CFK1PBC4qYCa+coLVnX+jgODNrau5YJXIekDI4+wUNV+5T5HE4e2t5EGAjn77+kC1Vghmvx8KqPnylVUvsaTofheggxHsPuxn1zQt6nA59UglrRUMn8b4pmrvfqTBSqU949+AcNAI6M/eAqz6r0RG5KNeBhx8R2f0x2kujwHU3pc3rlPb6ZrFM/2HiG97eEIezrvWFG7YAAAAwAAAwAE1KRo1VfbdZQ/tOpNGxFmTcQoFidyD2tHAQAapTTIErUKA2Rc9uIzGJu+oW0uNOxRyl6oJNUNJp5L9TIshNS1CmUKgdCaE3LkLwdE8iUkUnIGfWLiWpWmjzsINYC8dnDaSptB53yJkBu0SsR00oo1PZ0pl4ZzoXGSYQJTPaVCbj6FNqm5wcnUqKTB/rgHdPdnDj0K8asLABeo/n3XCXrDorI+LYSD1FBgmV9O7RZdjfL0NnXOQkiq/ZGirwVV0cUF1aHtZx1yHlAAZKuuu7TqB13CAUcBADuRAP///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////yj/IrOvAEoXDNGy+nrxWN0l8cmuqWYaUJpuM9XgAAADAAADAAKmR0EAPAcQAACJHH4AAAAB4AAAgMAKMQAJSOERAAkQoQAAAAEJ8AAAAAFBnkJ4hf8AAAMAAAMAAAMAAAMAAAMAAAMAAAMAC/BmhyuvLmkCgKTgACEXfOVvHRHdpBEEmTTz9pIZCa2FD0CXukzDCakOHekTpJQSdsfd7a/jjM1/5lBtKCAGQ6zOCSQ6DeKtyw+CugDuuglGipwmvQW+FIDjnZ6HRd0uaSOGy6VB3h9MI1o4nqaCqVwwIgubYZFHAQA9XgD////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////WcZrO6BEiqf8pCxYwlz2mkdUzY/ipM/TIHS4m5xQAAAMAAAMAAA5sVm90p14dlvWgBgY7XQ9KVOJKLtaMAN5KiffVQtNuzW5DfL+RewZpAAADAAADAAAQMUdBAB4AAAHgAACAgAUhAAkswQAAAAEJ8AAAAAEBnmF0Qr8AAAMAAAMAAAMAAAMAAAMAAAMAAAMAABJfBjP2+4+W7ZybyT130+Ma4WSqICfd/dS4YtjrLlmh5VBlfrtwJqdN1PBTYDkwGOOONqZQeFN6lLGJoDzvuh3kv1aDBLqug+JhvrSeu5ebnvcrtQzb2REwJL3h9mvtkr0WfDu4AAADAAADAAs32Y4C/6Ns79oCGj6oqLltY3T4I0/QRwEAP5wA//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////8BeoWLRnKQmVgO/RBoBfcK85AAAAMAAAMACFhHQQAwBxAAAJcsfgAAAAHgAACAwAoxAAllAREACUjhAAAAAQnwAAAAAQGeY2pCvwAAAwAAAwAAAwAAAwAAAwAAAwAAAwAAEmDKfLGXsvBBQPNYXlEd6WueJ4deApfcHESlG+7V6u0AiWQqJvNZYM+3Js3Lj9Ldc9yYIHqruVwfMtCYGlX3wMavI/DrhMuJw+RreIF8SKsJD8CMccAAAAMAAAMACrFZOBgEqaP/8EyWsAHV6CgcAgfyox/roEcBADGuAP//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////AAADAAADAHTBR0EAEgAAAeAAAIDACjEACfGhEQAJZQEAAAABCfAAAAABQZpoSahBaJlMCHf//qmWAAADAAADAAADAAADAAADAAADAAADAAALf8A2bry6lUyIAQGNFfVK2Cd7h4qDqmqpvmXfkfTwo2Ab79AHhajxJ4MPWIgAAA84xLRIx7I2CrWjWe96OvgkzgS9mtvhuxdzAgpuIOJI3DEY9mviDDZz8XSAAAADAAADAB7AZkj9AAHHGvk+Pzlku8UkWa5HAQAzogD//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////6HjAkbF/gsWuvw4QAAAAwAAAwAccUdBADQHEAAApTx+AAAAAeAAAIDACjEACblhEQAJgSEAAAABCfAAAAABQZ6GRREsL/8AAAMAAAMAAAMAAAMAAAMAAAMAAAMAAA3URJB/3lMHSmOd0GYZnfpoR80WdqxlyHzPX+V81VUMeXIGrRgq5agd+ACdjoGI036yQ/rmpGw0CmMBrKwpI+nwFo3SP0s1rI2yHBZaiPJjSUgw33rBkxXcq55kfLf2sAAAAwAAAwACBWolidWDnIeQAAADRwEANbEA//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////8AAAMADulHQQA2NAD///////////////////////////////////////////////////////////////////8AAAHgAACAgAUhAAmdQQAAAAEJ8AAAAAEBnqV0Qr8AAAMAAAMAAAMAAAMAAAMAAAMAAAMAABJXNihCnx11JUosH2hBE53O/YN+GPHqcnJiQBIf3maTAAj5iRt+7GYUKBAU9iCXTiouCjGYgAAAAwAAAwA9p4HQBg2cAAADAAADAADGgUdBADc4EAAAs0x+AP////////////////////////////////////////////////////////////////8AAAHgAACAwAoxAAnVgREACblhAAAAAQnwAAAAAQGep2pCvwAAAwAAAwAAAwAAAwAAAwAAAwAAAwAAAwBR6/L83y+ZevtMZ0FW4lp8qV7fVXQAhLAWlS6mDxvpaSUgChorvgTMXtxJEIAAAAMAAAMACqFCAAADAAADAAADAAz4R0EAOCsA////////////////////////////////////////////////////////AAAB4AAAgMAKMQALYiERAAnVgQAAAAEJ8AAAAAFBmqxJqEFsmUwId//+qZYAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAApQTq0hABLvkcWCYrAaRRPNDrECJGlF/11BYvG9+JJ9Y86nxnmQzPxtAAe1UgOsXAAADAAADAAADAAADAAADAAADAAADA/JHQQA5JhAAAMFcfgD/////////////////////////////////////////AAAB4AAAgMAKMQALKeERAAnxoQAAAAEJ8AAAAAFBnspFFSwv/wAAAwAAAwAAAwAAAwAAAwAAAwAAAwAADdRFmvrVE0KXDOGwWddlwYa1foib7tXZKmkua6R4APb4b8+tXwdSNNqgf2IVNwGTohgQAcMvp6SiQxpiQym4AAADAAADAANUNUAAAAMAAAMAAAMBN0dBADo8AP//////////////////////////////////////////////////////////////////////////////AAAB4AAAgIAFIQALDcEAAAABCfAAAAABAZ7pdEK/AAADAAADAAADAAADAAADAAADAAADAAADAFHTAfujIUaaLSuklb9y0/so9AEtQAqkAxOviALQZ5jNt/iOkABrCOZ4md0iUnFwAAADAAADAALwckAAAAMAAAMAAATcR0EAO0IQAADPbH4A//////////////////////////////////////////////////////////////////////////////8AAAHgAACAwAoxAAtGAREACynhAAAAAQnwAAAAAQGe62pCvwAAAwAAAwAAAwAAAwAAAwAAAwAAAwAAAwBR6/L83y+WryR9gmVKPGbIhJpkgAFgHCej3gB6rAHPgHHAAAADAAADAAAYIV0AAAMAAAMAAAMABnxHQQA8UQD//////////////////////////////////////////////////////////////////////////////////////////////////////////wAAAeAAAIDACjEAC9KhEQALRgEAAAABCfAAAAABQZrwSahBbJlMCG///qeEAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAAZ8UdBAD00EAAA3Xx+AP///////////////////////////////////////////////////////////wAAAeAAAIDACjEAC5phEQALYiEAAAABCfAAAAABQZ8ORRUsL/8AAAMAAAMAAAMAAAMAAAMAAAMAAAMAAA3URZr61RNClwzhI2ZXdRHYLZWc1yTgKRhTIXBNABHQKIIyYNyc+AaEn1jhATEAAAMAAAMAAAMAckkIAAADAAADAAADAEbBR0EAPkYA////////////////////////////////////////////////////////////////////////////////////////////AAAB4AAAgIAFIQALfkEAAAABCfAAAAABAZ8tdEK/AAADAAADAAADAAADAAADAAADAAADAAADAFHTAfujIUAYRtY0f/43cIs2OjxACR2hMR1QBGYX+34JGAAAAwAAAwAAAwKEJ6AAAAMAAAMAAAMA3oFHQQA/QhAAAOuMfgD//////////////////////////////////////////////////////////////////////////////wAAAeAAAIDACjEAC7aBEQALmmEAAAABCfAAAAABAZ8vakK/AAADAAADAAADAAADAAADAAADAAADAAADAFHr8vzfL5avJH2CZUo8ZsiEmmSAAWAcJ6PeAHqsAc+AccAAAAMAAAMAABghXQAAAwAAAwAAAwAGfEdBADBRAP//////////////////////////////////////////////////////////////////////////////////////////////////////////AAAB4AAAgMAKMQANQyERAAu2gQAAAAEJ8AAAAAFBmzRJqEFsmUwIZ//+nhAAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAGVAR0EAMTQQAAD5nH4A////////////////////////////////////////////////////////////AAAB4AAAgMAKMQANCuERAAvSoQAAAAEJ8AAAAAFBn1JFFSwv/wAAAwAAAwAAAwAAAwAAAwAAAwAAAwAADdRFmvrVE0KXDOEjZld1EdgtlZzXJOApGFMhcE0AEdAogjJg3Jz4BoSfWOEBMQAAAwAAAwAAAwBySQgAAAMAAAMAAAMARsFHQQAyRgD///////////////////////////////////////////////////////////////////////////////////////////8AAAHgAACAgAUhAAvuwQAAAAEJ8AAAAAEBn3F0Qr8AAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAUdMB+6MhQBhG1jR//jdwizY6PEAJHaExHVAEZhf7fgkYAAADAAADAAADAoQnoAAAAwAAAwAAAwDegEdBADNCEAABB6x+AP//////////////////////////////////////////////////////////////////////////////AAAB4AAAgMAKMQANJwERAA0K4QAAAAEJ8AAAAAEBn3NqQr8AAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAUevy/N8vlq8kfYJlSjxmyISaZIABYBwno94AeqwBz4BxwAAAAwAAAwAAGCFdAAADAAADAAADAAZ8R0EANFIA////////////////////////////////////////////////////////////////////////////////////////////////////////////AAAB4AAAgMAKMQANs6ERAA0nAQAAAAEJ8AAAAAFBm3hJqEFsmUwIV//+OEAAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAYtHQQA1NBAAARW8fgD///////////////////////////////////////////////////////////8AAAHgAACAwAoxAA17YREADUMhAAAAAQnwAAAAAUGflkUVLC//AAADAAADAAADAAADAAADAAADAAADAAAN1EWa+tUTQpcM4SNmV3UR2C2VnNck4CkYUyFwTQAR0CiCMmDcnPgGhJ9Y4QExAAADAAADAAADAHJJCAAAAwAAAwAAAwBGwEdBADZGAP///////////////////////////////////////////////////////////////////////////////////////////wAAAeAAAICABSEADV9BAAAAAQnwAAAAAQGftXRCvwAAAwAAAwAAAwAAAwAAAwAAAwAAAwAAAwBR0wH7oyFAGEbWNH/+N3CLNjo8QAkdoTEdUARmF/t+CRgAAAMAAAMAAAMChCegAAADAAADAAADAN6BR0EAN0IQAAEjzH4A//////////////////////////////////////////////////////////////////////////////8AAAHgAACAwAoxAA2XgREADXthAAAAAQnwAAAAAQGft2pCvwAAAwAAAwAAAwAAAwAAAwAAAwAAAwAAAwBR6/L83y+WryR9gmVKPGbIhJpkgAFgHCej3gB6rAHPgHHAAAADAAADAAAYIV0AAAMAAAMAAAMABn0=" + webUI["html/img/logo_b_880x200.jpg"] = "/9j/4AAQSkZJRgABAQABLAEsAAD/4QDIRXhpZgAATU0AKgAAAAgABwESAAMAAAABAAEAAAEaAAUAAAABAAAAYgEbAAUAAAABAAAAagEoAAMAAAABAAIAAAExAAIAAAAPAAAAcgEyAAIAAAAUAAAAgodpAAQAAAABAAAAlgAAAAAAAAEsAAAAAQAAASwAAAABUGl4ZWxtYXRvciAzLjMAADIwMTk6MDg6MDIgMjA6MDg6MTQAAAOgAQADAAAAAQABAACgAgAEAAAAAQAAA3CgAwAEAAAAAQAAAMgAAAAA/+EJkGh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8APD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iWE1QIENvcmUgNS40LjAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcDpDcmVhdG9yVG9vbD0iUGl4ZWxtYXRvciAzLjMiIHhtcDpNb2RpZnlEYXRlPSIyMDE5LTA4LTAyVDIwOjA4OjE0Ii8+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPD94cGFja2V0IGVuZD0idyI/PgD/7QA4UGhvdG9zaG9wIDMuMAA4QklNBAQAAAAAAAA4QklNBCUAAAAAABDUHYzZjwCyBOmACZjs+EJ+/8AAEQgAyANwAwERAAIRAQMRAf/EAB8AAAEFAQEBAQEBAAAAAAAAAAABAgMEBQYHCAkKC//EALUQAAIBAwMCBAMFBQQEAAABfQECAwAEEQUSITFBBhNRYQcicRQygZGhCCNCscEVUtHwJDNicoIJChYXGBkaJSYnKCkqNDU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6g4SFhoeIiYqSk5SVlpeYmZqio6Slpqeoqaqys7S1tre4ubrCw8TFxsfIycrS09TV1tfY2drh4uPk5ebn6Onq8fLz9PX29/j5+v/EAB8BAAMBAQEBAQEBAQEAAAAAAAABAgMEBQYHCAkKC//EALURAAIBAgQEAwQHBQQEAAECdwABAgMRBAUhMQYSQVEHYXETIjKBCBRCkaGxwQkjM1LwFWJy0QoWJDThJfEXGBkaJicoKSo1Njc4OTpDREVGR0hJSlNUVVZXWFlaY2RlZmdoaWpzdHV2d3h5eoKDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uLj5OXm5+jp6vLz9PX29/j5+v/bAEMAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAf/bAEMBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAf/dAAQAbv/aAAwDAQACEQMRAD8A/iHoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKAP/9D+IegAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoA//0f4h6ACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgD//S/iHoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKAP/9P+IegAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoA//1P4h6ACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgDvPDXws+J3jPT31bwf8OfHnivSo7mSyfU/DXhDxBrunpeQpFLNaPe6Xp11bLcxRzwSSQNL5saTROyhZUNAHQf8M//AB4/6In8XP8Aw23jL/5TUAH/AAz/APHj/oifxc/8Nt4y/wDl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f/E3xn4o+IPjnxDLaafp8mveMPGet33iPxNrMlhpNpYaVZPqmtale3z2mmWNlp9s05hsrS2tkjhQA4ygAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgD//S/iHoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAczu+N7M2BgbmLYHoM9BnJxx1/FgBtABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAOLuwVWZiq/dUsSFz12joM4HQduc4FADaACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgD//0/4h6ACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgD//U/iHoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKAP/9X+IegAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoA//1v4h6ACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgD//X/iHoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKAP/9k=" + webUI["html/img/m3u.png"] = "iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAAAXNSR0IArs4c6QAAAAlwSFlzAAAsSwAALEsBpT2WqQAABCRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IlhNUCBDb3JlIDUuNC4wIj4KICAgPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIgogICAgICAgICAgICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgICAgICAgICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyI+CiAgICAgICAgIDx0aWZmOlJlc29sdXRpb25Vbml0PjI8L3RpZmY6UmVzb2x1dGlvblVuaXQ+CiAgICAgICAgIDx0aWZmOkNvbXByZXNzaW9uPjU8L3RpZmY6Q29tcHJlc3Npb24+CiAgICAgICAgIDx0aWZmOlhSZXNvbHV0aW9uPjI4ODwvdGlmZjpYUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6T3JpZW50YXRpb24+MTwvdGlmZjpPcmllbnRhdGlvbj4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+Mjg4PC90aWZmOllSZXNvbHV0aW9uPgogICAgICAgICA8ZXhpZjpQaXhlbFhEaW1lbnNpb24+NTA8L2V4aWY6UGl4ZWxYRGltZW5zaW9uPgogICAgICAgICA8ZXhpZjpDb2xvclNwYWNlPjE8L2V4aWY6Q29sb3JTcGFjZT4KICAgICAgICAgPGV4aWY6UGl4ZWxZRGltZW5zaW9uPjUwPC9leGlmOlBpeGVsWURpbWVuc2lvbj4KICAgICAgICAgPGRjOnN1YmplY3Q+CiAgICAgICAgICAgIDxyZGY6QmFnLz4KICAgICAgICAgPC9kYzpzdWJqZWN0PgogICAgICAgICA8eG1wOk1vZGlmeURhdGU+MjAxOC0wNy0yOFQxOTowNzozMTwveG1wOk1vZGlmeURhdGU+CiAgICAgICAgIDx4bXA6Q3JlYXRvclRvb2w+UGl4ZWxtYXRvciAzLjM8L3htcDpDcmVhdG9yVG9vbD4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgIDwvcmRmOlJERj4KPC94OnhtcG1ldGE+CumjVbcAAAGWSURBVGgF7VoxTgJRFGTFaGKBFnbEcABjb0fiBego7D2ABYmn8ARKRWFNQ6gx4QRQGWJJoY2VhXGdl7Dkh7Dsx3ns3yXvJ5P97L6d92bmhwYqlcWK43gK5L2enP51NP8F7pN721wPnOITZx9qG6HxI8QIZO+9XCHeL+VQKKm8QMyxb6+iCpH528AQYs58xIQWknV8mhDxCjEXWWJCC8maT55fAmOIudpUXAYhMn8dGEHMTZqYsgiR+U+BAcTcrhNTJiEy/xHQg5jOqpjD1RsBP3+id8u3P8TUoij6SuoLIwRDfWOofjLYtteyHa1UfcvvcUT1jqpGauVuHnyAdragjv/TAkley3uhj9Y5ZhDQa2+Olgmhz4IygSWibChNZ4nQFioTWCLKhtJ0lghtoTKBJaJsKE1nidAWKhNYIsqG0nSWCG2hMoElomwoTWeJ0BYqE1giyobSdJYIbaEygSWibChNZ4nQFioTWCLKhtJ0biJzmi1/guXMrpDn/OegO3bXMuAH0TtgAvwARV3y57Q34AGoJkL+AErKZ9cqbH7AAAAAAElFTkSuQmCC" webUI["html/img/mapping.png"] = "iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAAAXNSR0IArs4c6QAAAAlwSFlzAAAsSwAALEsBpT2WqQAABCRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IlhNUCBDb3JlIDUuNC4wIj4KICAgPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIgogICAgICAgICAgICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgICAgICAgICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyI+CiAgICAgICAgIDx0aWZmOlJlc29sdXRpb25Vbml0PjI8L3RpZmY6UmVzb2x1dGlvblVuaXQ+CiAgICAgICAgIDx0aWZmOkNvbXByZXNzaW9uPjU8L3RpZmY6Q29tcHJlc3Npb24+CiAgICAgICAgIDx0aWZmOlhSZXNvbHV0aW9uPjI4ODwvdGlmZjpYUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6T3JpZW50YXRpb24+MTwvdGlmZjpPcmllbnRhdGlvbj4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+Mjg4PC90aWZmOllSZXNvbHV0aW9uPgogICAgICAgICA8ZXhpZjpQaXhlbFhEaW1lbnNpb24+NTA8L2V4aWY6UGl4ZWxYRGltZW5zaW9uPgogICAgICAgICA8ZXhpZjpDb2xvclNwYWNlPjE8L2V4aWY6Q29sb3JTcGFjZT4KICAgICAgICAgPGV4aWY6UGl4ZWxZRGltZW5zaW9uPjUwPC9leGlmOlBpeGVsWURpbWVuc2lvbj4KICAgICAgICAgPGRjOnN1YmplY3Q+CiAgICAgICAgICAgIDxyZGY6QmFnLz4KICAgICAgICAgPC9kYzpzdWJqZWN0PgogICAgICAgICA8eG1wOk1vZGlmeURhdGU+MjAxOC0wOC0wMlQxMjowODo5NzwveG1wOk1vZGlmeURhdGU+CiAgICAgICAgIDx4bXA6Q3JlYXRvclRvb2w+UGl4ZWxtYXRvciAzLjM8L3htcDpDcmVhdG9yVG9vbD4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgIDwvcmRmOlJERj4KPC94OnhtcG1ldGE+CpRxQsEAAAJLSURBVGgF7VoxTgMxEMwBHWlAaeABVCEtBcoD+EBewCdCyQsQtLyAPCBvCBSRIBUPCF1ogqBJjlkrezGr6HTrO98lhy1Z9trr2VmvnbMNjUadUhzHLeQB8hw5LS3QOUbubvIf7X3kKXIZibgS51bCZdWgMT6D8nECgArkngagQN0B8dhbkblalVmLIyheCGUthhjuLBq77MihA0xTjHHBEBBOorHLjjghbNOg4Mg2RYO4hIiEiHiaAV5aSwf8hRgjZdHtTTTc2ZFXpZkY+hMx5k3IZYlr7jgudJHp2JElLaF0K1mirYn8nAWgQB3ibM59ERNCA52d6Nghv9isQiUtn0kURe92I9eBcYA6YZxym8dyDuwRuMw82gjQYQbsPdLDdNCROO0US3uEfp3usTZpjf5J2CNtNFwjl7FHvmBnCB5PCQkQoJudJtGvE23sJEFuI39rQArS7dskXK6nlwkAKiB1VxAxLcyUePAH8cQmlbEul4+UM8LkVjPc2ZHcaFUDBEeqjoC0HyIiZ6RqOUSk6ghI+xyRD9mRQTYfIktPylaX16rhzo48KE29QH8kxjxC/hFtZYiGe70OjWVMW7Dx32bA3iO7//iAC8DOPweZFQhH6O+CmkRvW2f28oV8owEoUHdMPPg70rFJZajTkqT7uZ3ObaHEuuHOjnCpsb8vlKUsur2JhruLA94Y5QEOjuSZPR9jQ0R8zGoezNpFhN5RtUm+/bpgaG1u0jd2OSLDTRopbZ/okxcrLUYKvKprbRfHhXr8m5PK/y1V/gWRKLfiNSmxEAAAAABJRU5ErkJggg==" + webUI["html/img/stream-limit.jpg"] = "/9j/4AAQSkZJRgABAQAAAQABAAD/4gJoSUNDX1BST0ZJTEUAAQEAAAJYbGNtcwQwAABtbnRyUkdCIFhZWiAH4wAFABcAFgAuAAphY3NwQVBQTAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA9tYAAQAAAADTLWxjbXMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAtkZXNjAAABCAAAAEBjcHJ0AAABSAAAAE53dHB0AAABmAAAABRjaGFkAAABrAAAACxyWFlaAAAB2AAAABRiWFlaAAAB7AAAABRnWFlaAAACAAAAABRyVFJDAAACFAAAACBnVFJDAAACFAAAACBiVFJDAAACFAAAACBjaHJtAAACNAAAACRtbHVjAAAAAAAAAAEAAAAMZW5VUwAAACQAAAAcAHMAUgBHAEIAIABJAEUAQwA2ADEAOQA2ADYALQAyAC4AMQAAbWx1YwAAAAAAAAABAAAADGVuVVMAAAAyAAAAHABOAG8AIABjAG8AcAB5AHIAaQBnAGgAdAAsACAAdQBzAGUAIABmAHIAZQBlAGwAeQAAAABYWVogAAAAAAAA9tYAAQAAAADTLXNmMzIAAAAAAAEMSgAABeP///MqAAAHmwAA/Yf///ui///9owAAA9gAAMCUWFlaIAAAAAAAAG+UAAA47gAAA5BYWVogAAAAAAAAJJ0AAA+DAAC2vlhZWiAAAAAAAABipQAAt5AAABjecGFyYQAAAAAAAwAAAAJmZgAA8qcAAA1ZAAAT0AAACltjaHJtAAAAAAADAAAAAKPXAABUewAATM0AAJmaAAAmZgAAD1z/2wBDAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQH/2wBDAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQH/wAARCAQ4B4ADASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD/AD/6KKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigD9PvBf/AARa/wCCrXxF8HeE/iD4G/YM/aL8UeCfHfhrQvGXg/xNpHgia50nxF4W8T6Xa634f13TLkTgXGn6vpN9aahZTgAS21xFIAN1dL/w4o/4LB/9I7/2m/8AwgZ//kiv9b3/AIJp/wDKOX9gH/syf9lX/wBUV4Dr7YoA/wAWr/hxR/wWD/6R3/tN/wDhAz//ACRR/wAOKP8AgsH/ANI7/wBpv/wgZ/8A5Ir/AGlaKAP8Wr/hxR/wWD/6R3/tN/8AhAz/APyRR/w4o/4LB/8ASO/9pv8A8IGf/wCSK/2laKAP8Wr/AIcUf8Fg/wDpHf8AtN/+EDP/APJFH/Dij/gsH/0jv/ab/wDCBn/+SK/2laKAP8Wr/hxR/wAFg/8ApHf+03/4QM//AMkUf8OKP+Cwf/SO/wDab/8ACBn/APkiv9pWigD/ABav+HFH/BYP/pHf+03/AOEDP/8AJFH/AA4o/wCCwf8A0jv/AGm//CBn/wDkiv8AaVooA/xav+HFH/BYP/pHf+03/wCEDP8A/JFH/Dij/gsH/wBI7/2m/wDwgZ//AJIr/aVooA/xav8AhxR/wWD/AOkd/wC03/4QM/8A8kUf8OKP+Cwf/SO/9pv/AMIGf/5Ir/aVooA/xav+HFH/AAWD/wCkd/7Tf/hAz/8AyRR/w4o/4LB/9I7/ANpv/wAIGf8A+SK/2laKAP8AFq/4cUf8Fg/+kd/7Tf8A4QM//wAkUf8ADij/AILB/wDSO/8Aab/8IGf/AOSK/wBpWigD/Fq/4cUf8Fg/+kd/7Tf/AIQM/wD8kUf8OKP+Cwf/AEjv/ab/APCBn/8Akiv9pWigD/Fq/wCHFH/BYP8A6R3/ALTf/hAz/wDyRR/w4o/4LB/9I7/2m/8AwgZ//kiv9pWigD/E88f/APBGT/gqj8K/AnjT4nfEX9hL9ofwf8P/AIdeFPEPjnxz4t1zwTNaaL4X8IeE9Ju9d8SeIdXujORbaZo2j2F5qN9OQRDa20shB24r8yq/28f+Ctf/ACit/wCClX/ZhH7Xv/rP/wAQK/xDqACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooA+j/ANmj9kL9pr9snxbrvgL9lr4K+Ovjn408M+HH8X6/4Y+H2ljWdZ0vwvFqen6NLr1zYrNHMNMh1XVtL0+a7RWihu9RsoZSj3MIf7U/4cUf8Fg/+kd/7Tf/AIQM/wD8kV2v/BAD9sj/AIYi/wCCrf7K/wATNW1X+yvh98QPFw+AHxWklm+z6f8A8IJ8aWg8HjU9Xl3Ls0rwd4wufCPxAuz82B4RQlJACjf7MFAH+LV/w4o/4LB/9I7/ANpv/wAIGf8A+SKP+HFH/BYP/pHf+03/AOEDP/8AJFf7StFAH+LV/wAOKP8AgsH/ANI7/wBpv/wgZ/8A5Io/4cUf8Fg/+kd/7Tf/AIQM/wD8kV/tK0UAf4tX/Dij/gsH/wBI7/2m/wDwgZ//AJIo/wCHFH/BYP8A6R3/ALTf/hAz/wDyRX+0rRQB/gx/HT4CfGb9mT4n+Ivgt+0B8NfFnwj+K3hJNHl8SeA/G2lzaP4i0iLxBomneI9Emu7KbJWLU9C1bTtTs5UZ45rW7idWySB5HX9yX/B69+yL/wAIr8eP2V/22/D2meXpfxb8Da18BfiPd2sOy3i8afDG9k8U+BdR1OXbiXVPFHg/xZrukWzB2P8AZnw0jjZIxEjS/wANtABRRRQAUUUUAFFFFABRRRQAUUUUAPRHldIokeSSR1SONFLu7uQqIiKCzOzEKqqCWJAAJNfq8n/BCv8A4LBSIki/8E7/ANp3a6q67vh/dI21gGG5HnV0bB5V1VlPDAEEVv8A/BBj9kX/AIbU/wCCrf7Ivwo1PTP7T8DeGPiFb/Gz4nRTQ+fpzeAvgpE3xDv9L1hQrEaZ4w1nRdD8BSkAFp/FdvH5kO/zo/8AZ4oA/wAWr/hxR/wWD/6R3/tN/wDhAz//ACRR/wAOKP8AgsH/ANI7/wBpv/wgZ/8A5Ir/AGlaKAP8Wr/hxR/wWD/6R3/tN/8AhAz/APyRR/w4o/4LB/8ASO/9pv8A8IGf/wCSK/2laKAP8Wr/AIcUf8Fg/wDpHf8AtN/+EDP/APJFH/Dij/gsH/0jv/ab/wDCBn/+SK/2laKAP8Kz9p39iX9rL9i7UfCOkftV/AT4ifAfVPHtlq+o+DtO+IejjRb3xDp+gz2Ntq97p1s00k0lrY3GpWUEs7IkbSz+XGztHKI/lqv6F/8Ag5+/bI/4a5/4K2/HDTNF1X+0fh7+y5aaZ+y74KEU261GofDq61K8+KVz5UbG3N0fi9r3jnSTexl5bzSdE0USybLeCGD+eigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigD/cg/4Jp/8o5f2Af+zJ/2Vf8A1RXgOvtivif/AIJp/wDKOX9gH/syf9lX/wBUV4Dr7YoAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigD8+P8AgrX/AMorf+ClX/ZhH7Xv/rP/AMQK/wAQ6v8Abx/4K1/8orf+ClX/AGYR+17/AOs//ECv8Q6gAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAHI7xOkkbtHJGyvHIjFHR0IZXRlIZWVgGVlIIIBBBFf7Z//BIH9sRP28f+Cbv7J37St5qS6n4x8VfC/TPDXxTmMqvc/wDC3PhxNcfD/wCJdxdQ5Mtp/bPi7w3qfiLT7e4zK2jazplyHnhuIrib/Eur/QW/4Mm/2yPteh/tZfsE+JNV3T6PeaT+1D8KNPml3yNp2pDRvht8YrW381t0NrYahB8JtRtLK33Rtda5r980cUjzyzgH98VFFFABRRRQAUUUUAfhR/wcifsif8Ngf8Eif2ndD0vTP7T8dfAvSbH9p74ehYvPuINW+DCXur+MUs4FUzXF/qvwjvfiRoFhb25E819q9skazn/R5v8AHer/AH6NW0rTdd0rU9D1mxtdU0fWdPvNK1bTL6FLmy1HTdRtpLS+sby3kDRz2t3azS29xDIrJLFI6OCrEV/hv/8ABQv9lrUv2J/23/2ov2V9Riuo4Pgv8Y/GHhbwzPe7/tWqeAJdQbWfhrr83mfPu8R/D7VPDOvjcWO3Uh88n32APjeiiigAooooAKKKKACiiigAooooA/0D/wDgyU/ZE+z6T+19+3Xr+mYl1G70D9lz4Y6lJFtdbSwTSfif8YfKaRd0lvd3Vz8HreC4g2xifS9VtneSRHSD++mvyl/4Ih/sif8ADEf/AAS3/ZB+B2o6X/ZXjV/hhYfE/wCKEEsPlahH8S/jDNN8SfFmmaq21WnvfCl14ki8EpKw+Ww8M2MCExQxmv1aoAKKKKACiiigAr5A/b+/ao0X9iP9iv8AaZ/as1xrRk+Cfwi8V+LdCsr5gtrrfjk2R0j4c+GZWLKF/wCEq8f6n4a8NodwxJqqdeh+v6/ib/4PTP2yP+EA/Za/Z5/Yk8N6r5WvftCfEG7+LPxGtLWb98nww+Dogh8OaVqtvuA+weKviT4g03W9Nk2uWvvhfdrujEZEoB/nB+IfEGteLPEGueKvEup3eteIvE2san4g1/WL+Uz32ra1rN7PqOq6nezNzNd399cz3VzKeZJpXc8mseiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigD/cg/4Jp/8AKOX9gH/syf8AZV/9UV4Dr7Yr4n/4Jp/8o5f2Af8Asyf9lX/1RXgOvtigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAPz4/4K1/8orf+ClX/AGYR+17/AOs//ECv8Q6v9vH/AIK1/wDKK3/gpV/2YR+17/6z/wDECv8AEOoAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAr9V/+CJP7ZH/DCn/BT39k348anqv9leA2+Itp8Mvi1NNN5Onp8LPi3FJ8P/F+qaou5RPaeEbfXYPHcMLMB/aXhXT5R80Sg/lRRQB/v8UV+TP/AAQ5/bI/4bo/4JdfsnfG7VNV/tXx9p/w+tfhN8WpZZvO1Fvid8IJG8A+JNV1f5m8u/8AGUWi6d8QFjDECx8W2TgRh/LT9ZqACiiigAooooAK/wA07/g9I/ZE/wCFcftj/AD9sXQNM8jQP2lfhZdfD7xtd28O5H+KPwOnsbO31HUp1A8q41z4a+KvBmkaXDN808HgPUnhZ1tplh/0sa/nd/4Oi/2RP+Gq/wDgkT8cNZ0fS/7R8dfsuapoP7T/AITMUO64TS/ACahpXxSVp0Bnjsbf4ReJvHOuz26hoLi+0HS2nQG3iuLcA/yKaKKKACiiigAooooAKKKKACv02/4I3fsi/wDDcf8AwUy/ZC/Z3vtM/tXwfr3xX0nxh8TrWSLfaS/Cr4XQ3PxJ+IlleyMGhto9d8L+FtQ8NWk04MbaprWn2yxzz3EUEv5k1/eL/wAGTH7In9reP/2uf259f0zdZ+D9A0H9mf4Z6hND5sEmveK7jTviL8VprV3Gy21LQ9E0b4YWSTwlp207xnqVsWhgnkS5AP8AQzooooAKKKKACiiigAr/AB3f+DkD9sj/AIbN/wCCtf7SWvaRqv8Aanw9+BGpWv7MPw1aOf7RaJovwcudR0zxfd2E6MYLnT9d+LV/8RfEWm3dsPJuNM1axZJJ1VbiX/Ux/wCCnv7XVn+wl+wF+1T+1TLdW1trXws+E2vXHgJbsRtBe/FTxOYPBnwo02aKQMJbe/8AiN4h8MW16qxysti9zN5UixMp/wAQK+vr3U7281LUru5v9R1C6uL6/vryaS5u729u5XuLq7uriZnlnubieR5p5pXaSWV2d2ZmJIBVooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooA/sa/Z9/4PGv2mv2ffgJ8EPgJo37HXwJ8QaP8EPhD8NfhDpOv6n43+IFtqWt6b8NfBmi+DLHV9Qt7QfZbe+1K10WK9u4bb/R4riaSOH92q169/xG8ftWf9GRfs9/+F98R/8ACv4h6KAP7eP+I3j9qz/oyL9nv/wvviP/AIUf8RvH7Vn/AEZF+z3/AOF98R/8K/iHooA/t4/4jeP2rP8AoyL9nv8A8L74j/4Uf8RvH7Vn/RkX7Pf/AIX3xH/wr+IeigD+3j/iN4/as/6Mi/Z7/wDC++I/+FH/ABG8ftWf9GRfs9/+F98R/wDCv4h6KAP9GT/gmX/wdhftE/t2/t3fs3/skeLv2T/gt4E8N/G/xpf+F9W8XeHPGPjnUNb0O3tPCviHxCt1p9lqY+wXEzzaNFbslz8gimkYfOq1/cpX+NT/AMG73/KaX9gD/srmtf8AqtPHVf7K1ABRRRQAUUUUAFFFFAH8KH/BRT/g7X/aN/Yq/bf/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WOj6BoOn3Gq6xql5Jg+Xaafp1pcXdw+DshhdsHGKAP8AN2/4PR/2yP8AhY37XHwD/Yq8N6r53h/9m34dT/Er4g2dtNiP/hanxqFlcaTpmqW4Yh7rw38MdB8M6zpUzhWitviTqKICJmJ/itr6y/bt/ah179tX9sf9pP8Aaq8RG6juvjh8XfF/jbS7C9fzLjQfCN1qUln4D8LF98m6Lwl4IsvD/hm2Jkc/ZtJiBdj8x+TaACiiigAooooAK/2Hv+DZvSf7G/4Id/sIWe3Z53hv40atjGM/29+0r8Ztc3f8D/tHfnvuzzmv8eGv9kD/AINw7+HUv+CJ37A1xAqqkfw58c2DBOhm0r40fEvTLhj/ALb3FnKz/wC2WoA/biiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAr/JJ/4Ow/+U2X7Q//AGTv9nj/ANUr4Nr/AFtq/wAkn/g7D/5TZftD/wDZO/2eP/VK+DaAP5vaKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKK6vwJ4G8W/E3xn4X+HngLQdQ8UeNPGmu6b4a8L+HtLi86/1fWtXuo7OwsrdCVRTLPKoeaZ47e3iD3FzLFBFJIt06dSrUhSpQnUq1Zwp06dOMp1KlSpOMKdOEIKUpznOcIQhGMpSlKMYpuST58Xi8LgMJisfjsTh8FgcDhsRjcbjcXXpYXCYPB4OhWxWLxeKxOIqUaGHw2Fw2GxGIxGIr1aVGhQoVq1WpTp0pzj9Y/sAfsT+O/27/wBofw38HvC32vSfCtqY/EXxU8cx2/nWvgfwDZ3MMep6gDIpgm13VHkTR/C2myZ+361dwPcCLSrTVL2z/wBHr4T/AAs8CfBD4beC/hL8MtAtPDHgPwBoNl4c8NaJZj5LWwskOZriZv3t7qV/cvPqOr6ndNJe6rqt3eal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gAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAr+z7/ggp/wTT/4VH4Psf20vjV4f8r4n/ELRXX4K+HtVtsXPgT4d6zbFJvGk8E6brXxN8QbCXZpbIqz6X4Hn/17P4t1GysPyI/4Ip/8E13/AGxfjB/wuX4r6G837N3wa1q0m1S1voD9h+KPxAtlg1HSvAMXmL5V3oOmRyWmt+O8ear6bNpfh14h/wAJK95p/wDedHGkSJFEiRxxoscccahEjRAFRERQFVFUBVVQAoAAAAr+o/AXw29vUpcdZ3h/3FGclw3ha0NK1eDlTq5zOE1rTw8lOjlzaaniFXxkbxw+Hkf4Nfta/psf2Tg8d9FLwvzi2aZlh6E/GrPctxHv5dleIhRxeC8NsPiKFS8Mbm1KWFzPjSMKkZ4bKJZTw5VUKub5vRT6KKK/rU/55AooooAKKKr3d3a2Frc319c29lY2VvNd3l5dzR21raWttG01xc3NxMyQwW8EKPLNNK6RxRozuyqpIG0k22kkm220kkk2222kkkm220kk22km04xlOUYQjKc5yjCEIRlOc5zlGMIQhGMpSnKUoxjGMZSlKUYxjKUoxlYoqlpuo6frGn2Gr6TfWeqaVqlla6jpmp6fcw3un6jp99AlzZX1jeWzyW93Z3dtLHcW1zBJJDPDIksTsjqxu0k1JKUWnFpNNNNNNJppptNNNNNNpppptNNucJ0pzp1ITp1Kc506lOpCdOpTqU5zp1KdSnUjCpTqU6lOdOpTqQhOE4ThOEJwnCBRRRTJCiiigD8if+Cvv/BOiw/bq+A0ms+CNNtIv2i/hFZalrXwv1HENtN4u00p9q1z4X6pdvsRrXxCIRc+Gp7yRIdI8Vw2j/arDS9W8QPcf59Ooaff6Tf32larZXem6npl5c6fqWnX9vNZ31hf2Uz215ZXtpcJHPa3drcRyQXNvPGk0E0bxSIrqyj/AFjK/kJ/4L+/8E2P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/DSP/BUjUvgr4f1X7d4A/Y18AaL8IbSK3m87TpviZ4mSHx78VtVhBYmPULa61fw18PtYjCoEvPh1sCsVMsoB/LfRRRQAUUUUAFFFFABRRRQAUUUUAFf6lH/BsR/wW/h/bw+Ddn+xj+0n4qib9sH4C+E7ePwt4i1m7Vb/APaF+D2gQwWFp4kW4nYPqXxM8BWv2TS/H9u5k1LxFpA03x8kmp3U3jWXRP8ALXr0j4P/ABg+J3wA+J/gf4z/AAY8b6/8OPil8N/EFl4o8E+NvDF61jrWg61YMTFcW8oDxT288TzWWpabew3OmavplzeaVqtneabeXVrMAf72FFfzsf8ABCH/AIL2fCb/AIKr/DKw+GXxPvvDPwy/bk8CaKg8e/DJbqLTdK+K+nadbZuvil8HrW8nM9/pc8cL3fi7wbBJeav4DvTKZvtnhqfStbu/6J6ACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooA+HP8Agp3/AMo1v+Chf/Zjn7WX/qhPH9f4dVf7iv8AwU7/AOUa3/BQv/sxz9rL/wBUJ4/r/DqoAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKtWNje6ne2em6bZ3WoajqF1b2NhYWNvLd3t9e3cqQWtnaWsCST3N1czyRw29vCjyzSukcaM7AFpNtJJttpJJNtttJJJJtttpJJNttJJtpOZzhThKpUlGEIRlOc5yjCEIQjKc5znOUIQhCEJznOc4QhCE5znGMZSj7x+y5+zX8Sf2t/jj4G+BHwr0/7V4l8ZaksdzqVxHK2keFPDtpifxB4v8AEM0SsbbRPD+nCW8uiM3F5MLbStOjudV1CxtLj/SQ/ZX/AGZ/ht+yJ8DPA/wH+Flh9n8O+D9PAvtWniiTV/F3iW8CzeIfGHiGWIYuNZ1+/wB9zMNxgsLUWej6ctvpWm2FrB+fv/BHj/gnDZfs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FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF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FFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFAH//Z" webUI["html/img/users.png"] = "iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAAAXNSR0IArs4c6QAAAAlwSFlzAAAsSwAALEsBpT2WqQAABCRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IlhNUCBDb3JlIDUuNC4wIj4KICAgPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIgogICAgICAgICAgICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgICAgICAgICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyI+CiAgICAgICAgIDx0aWZmOlJlc29sdXRpb25Vbml0PjI8L3RpZmY6UmVzb2x1dGlvblVuaXQ+CiAgICAgICAgIDx0aWZmOkNvbXByZXNzaW9uPjU8L3RpZmY6Q29tcHJlc3Npb24+CiAgICAgICAgIDx0aWZmOlhSZXNvbHV0aW9uPjI4ODwvdGlmZjpYUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6T3JpZW50YXRpb24+MTwvdGlmZjpPcmllbnRhdGlvbj4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+Mjg4PC90aWZmOllSZXNvbHV0aW9uPgogICAgICAgICA8ZXhpZjpQaXhlbFhEaW1lbnNpb24+NTA8L2V4aWY6UGl4ZWxYRGltZW5zaW9uPgogICAgICAgICA8ZXhpZjpDb2xvclNwYWNlPjE8L2V4aWY6Q29sb3JTcGFjZT4KICAgICAgICAgPGV4aWY6UGl4ZWxZRGltZW5zaW9uPjUwPC9leGlmOlBpeGVsWURpbWVuc2lvbj4KICAgICAgICAgPGRjOnN1YmplY3Q+CiAgICAgICAgICAgIDxyZGY6QmFnLz4KICAgICAgICAgPC9kYzpzdWJqZWN0PgogICAgICAgICA8eG1wOk1vZGlmeURhdGU+MjAxOC0wOC0zMFQxNzowODozODwveG1wOk1vZGlmeURhdGU+CiAgICAgICAgIDx4bXA6Q3JlYXRvclRvb2w+UGl4ZWxtYXRvciAzLjM8L3htcDpDcmVhdG9yVG9vbD4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgIDwvcmRmOlJERj4KPC94OnhtcG1ldGE+CjU01MMAAANJSURBVGgF1ZnLaxNRFMYz2rpoFbW+SCsihaJQRMT6rPhAXAq6c+HChSguRFd1oRtd+A/oWhQ3oiiWFB91UbqRqlXXgoIIQhFbQTTQao2/GzLDZEjIPefO7SQHPjJz55zzfd/MZCa5N8h5ilKptJvWp8FekAed4Bv4Cj6Dh2A4CIJZPpszMHEV2MQ0SZdB0DROENMHjoEzQBoFCpZnbgYR58E/qfpE/kv2F2dmBvJ94G9ClHb3SiZGUBuASa3qGnVzjG3RmFmkKYrVHGB7e2zfdbOdBhc1TVyNnNSQNqg5wVURf/FdjRxpIEpzuIOio9JCtRHO2hrINkgJLfPFt6vaCII2WYrSpPVJi1RGuBrmTbxeSibIX5j3CUauAfOo9BXzNH4nMJ5TXREI1gHzqPQVRtc2zCyxJdAaGbclcMj7zi/jOdt6rZFhCH7akijznknqVEY4U78heSAhUuTekNSojFQIChIiYe57TtZrSY2LkecQzUjIBLljglz3VJ4qg+AXSDNGabbWXZ2wA6Qjabqg136hhHK6y60V8o2EGyl8/qHHpKZPGkYeQzyvIa9RM86XvFhjvOGQsxGIp2B50ZDJLuG2XZqnLO5rM3viGh9o0OZJon1bRLxxdHLcns1jJiYOAu2U0D2P0uStMXJdcVU+UdMlZ/NYgaA28ERg5ge5/R4l6VsjrANMWJiZJWeXnqm60vnxW90ul6u8ByaS4zX2i+S+qjGuGkrdSEWFzT1vlhlSC19Gui0UtnNriSfi6vX1ZWRjPcLEeGrzYqkb4SyvQGxvQnC93cF6BzIfx8gpYBsfSdycuei4AAR1ggugCCRh1lbugIF4vwXbhtisjfSDc+ARSOOf4lv6mNWv1VIj1ouQNF9K851gDzArtWbV1uYxS5o4zB+sp+AuKPC+cVv5RXwPuATMmUpreY1Wopgh+ybYKj4dFHWB+8DMwTZTjCHmsJUhEgfAF9DMcQtx9V8dHMyDqWZ2ENM2FL8yVV92kkY56GM5Lc6Z1vY0jbp5EJQnuqPLg4kdLWTCnIxVIJoDi4wweNYcbbGIfuLEjRxqMRNGbvTvsmyE22oZg70taKQn1BxekXw40GKfK0O9oZHsJ8ZCRbLPaI3xP7YzeQoHxWckAAAAAElFTkSuQmCC" webUI["html/index.html"] = "PCFkb2N0eXBlIGh0bWw+DQo8aHRtbD4NCiAgPGhlYWQ+DQogICAgPG1ldGEgY2hhcnNldD0idXRmLTgiPg0KICAgIDwhLS0tDQogICAgPG1ldGEgbmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9IndpZHRoPWRldmljZS13aWR0aCwgaW5pdGlhbC1zY2FsZT0xLjAiIC8+IA0KICAgIC0tPg0KICAgIDx0aXRsZT54VGVWZTwvdGl0bGU+DQogICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJjc3Mvc2NyZWVuLmNzcyIgdHlwZT0idGV4dC9jc3MiPg0KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iY3NzL2Jhc2UuY3NzIiB0eXBlPSJ0ZXh0L2NzcyI+DQoNCiAgICA8c2NyaXB0IGxhbmd1YWdlPSJqYXZhc2NyaXB0IiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ianMvbmV0d29ya190cy5qcyI+PC9zY3JpcHQ+DQogICAgPHNjcmlwdCBsYW5ndWFnZT0iamF2YXNjcmlwdCIgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9ImpzL21lbnVfdHMuanMiPjwvc2NyaXB0Pg0KICAgIDxzY3JpcHQgbGFuZ3VhZ2U9ImphdmFzY3JpcHQiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJqcy9zZXR0aW5nc190cy5qcyI+PC9zY3JpcHQ+DQogICAgPHNjcmlwdCBsYW5ndWFnZT0iamF2YXNjcmlwdCIgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9ImpzL2xvZ3NfdHMuanMiPjwvc2NyaXB0Pg0KICAgIDxzY3JpcHQgbGFuZ3VhZ2U9ImphdmFzY3JpcHQiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJqcy9iYXNlX3RzLmpzIj48L3NjcmlwdD4NCg0KICA8L2hlYWQ+DQoNCiAgICA8Ym9keSBvbmxvYWQ9ImphdmFzY3JpcHQ6IFBhZ2VSZWFkeSgpOyI+DQoNCiAgICAgIDxkaXYgaWQ9ImxvYWRpbmciIGNsYXNzPSJub25lIj4NCiAgICAgICAgPGRpdiBjbGFzcz0ibG9hZGVyIj48L2Rpdj4NCiAgICAgIDwvZGl2Pg0KDQogICAgICA8ZGl2IGlkPSJwb3B1cCIgY2xhc3M9Im5vbmUiPg0KICAgICAgICA8ZGl2IGlkPSJwb3B1cC1jdXN0b20iPjwvZGl2Pg0KICAgICAgPC9kaXY+DQoNCiAgICAgIDxkaXYgaWQ9ImxheW91dCI+DQoNCiAgICAgICAgPCEtLQ0KICAgICAgICA8ZGl2IGlkPSJub3RpZmljYXRpb24iPg0KICAgICAgICAgIDxkaXYgY2xhc3M9ImVsZW1lbnQiPg0KICAgICAgICAgICAgPGg1PlhFUEc8L2g1Pg0KICAgICAgICAgICAgPHByZT4xMS4wNS4yMDE5IC0gMjA6MjE8L3ByZT4NCiAgICAgICAgICAgIDxocj4NCiAgICAgICAgICAgIDxwPkhhbGxvIGRhcyBpc3QgZWluIFRlc3QuIFVuZCBub2NoIG1laHIgVGV4dC48L3A+DQogICAgICAgICAgPC9kaXY+DQogICAgICAgIDwvZGl2Pg0KICAgICAgLS0+DQoNCiAgICAgICAgPGRpdiBpZD0ibWVudS13cmFwcGVyIiBjbGFzcz0ibGF5b3V0LWxlZnQiPg0KICAgICAgICAgIDxkaXYgaWQ9ICJicmFuY2giPjwvZGl2Pg0KICAgICAgICAgIDxkaXYgaWQ9ImxvZ28iPjwvZGl2Pg0KICAgICAgICAgIDxuYXYgaWQ9Im1haW4tbWVudSI+PC9uYXY+DQogICAgICAgIDwvZGl2Pg0KDQogICAgICAgIDxkaXYgY2xhc3M9ImxheW91dC1yaWdodCI+DQoNCiAgICAgICAgICA8dGFibGUgaWQ9ImNsaWVudEluZm8iIGNsYXNzPSIiPg0KDQogICAgICAgICAgICA8dHI+DQogICAgICAgICAgICAgIDx0ZCBjbGFzcz0idGRLZXkiPnhUZVZlOjwvdGQ+DQogICAgICAgICAgICAgIDx0ZCBpZD0idmVyc2lvbiIgY2xhc3M9InRkVmFsIj4mbmJzcDs8L3RkPg0KICAgICAgICAgICAgICA8dGQgY2xhc3M9InRkS2V5Ij5PUzo8L3RkPg0KICAgICAgICAgICAgICA8dGQgaWQ9Im9zIiBjbGFzcz0idGRWYWwiPiZuYnNwOzwvdGQ+DQogICAgICAgICAgICAgIDx0ZCBjbGFzcz0idGRLZXkgcGhvbmUiPkRWUiBJUDo8L3RkPg0KICAgICAgICAgICAgICA8dGQgaWQ9IkRWUiIgY2xhc3M9InRkVmFsIHBob25lIj4mbmJzcDs8L3RkPg0KICAgICAgICAgICAgPC90cj4NCg0KICAgICAgICAgICAgPHRyPg0KICAgICAgICAgICAgICA8dGQgY2xhc3M9InRkS2V5Ij5VVUlEOjwvdGQ+DQogICAgICAgICAgICAgIDx0ZCBpZD0idXVpZCIgY2xhc3M9InRkVmFsIj4mbmJzcDs8L3RkPg0KICAgICAgICAgICAgICA8dGQgY2xhc3M9InRkS2V5Ij5BcmNoOjwvdGQ+DQogICAgICAgICAgICAgIDx0ZCBpZD0iYXJjaCIgY2xhc3M9InRkVmFsIj4mbmJzcDs8L3RkPg0KICAgICAgICAgICAgICA8dGQgY2xhc3M9InRkS2V5IHBob25lIj5NM1UgVVJMOjwvdGQ+DQogICAgICAgICAgICAgIDx0ZCBpZD0ibTN1LXVybCIgY2xhc3M9InRkVmFsIHBob25lIj4mbmJzcDs8L3RkPg0KICAgICAgICAgICAgPC90cj4NCg0KICAgICAgICAgICAgPHRyPg0KICAgICAgICAgICAgICA8dGQgY2xhc3M9InRkS2V5Ij5BdmFpbGFibGUgU3RyZWFtczo8L3RkPg0KICAgICAgICAgICAgICA8dGQgaWQ9InN0cmVhbXMiIGNsYXNzPSJ0ZFZhbCI+Jm5ic3A7PC90ZD4NCiAgICAgICAgICAgICAgPHRkIGNsYXNzPSJ0ZEtleSI+RVBHIFNvdXJjZTo8L3RkPg0KICAgICAgICAgICAgICA8dGQgaWQ9ImVwZ1NvdXJjZSIgY2xhc3M9InRkVmFsIj4mbmJzcDs8L3RkPg0KICAgICAgICAgICAgICA8dGQgY2xhc3M9InRkS2V5IHBob25lIj5YRVBHIFVSTDo8L3RkPg0KICAgICAgICAgICAgICA8dGQgaWQ9InhlcGctdXJsIiBjbGFzcz0idGRWYWwgcGhvbmUiPiZuYnNwOzwvdGQ+DQogICAgICAgICAgICA8L3RyPg0KDQogICAgICAgICAgICA8dHI+DQogICAgICAgICAgICAgIDx0ZCBjbGFzcz0idGRLZXkiPlhFUEcgQ2hhbm5lbHM6PC90ZD4NCiAgICAgICAgICAgICAgPHRkIGlkPSJ4ZXBnIiBjbGFzcz0idGRWYWwiPiZuYnNwOzwvdGQ+DQogICAgICAgICAgICAgIDx0ZCBjbGFzcz0idGRLZXkiPkVycm9yczo8L3RkPg0KICAgICAgICAgICAgICA8dGQgaWQ9ImVycm9ycyIgY2xhc3M9InRkVmFsIj4mbmJzcDs8L3RkPg0KICAgICAgICAgICAgICA8dGQgY2xhc3M9InRkS2V5Ij5XYXJuaW5nczo8L3RkPg0KICAgICAgICAgICAgICA8dGQgaWQ9Indhcm5pbmdzIiBjbGFzcz0idGRWYWwiPiZuYnNwOzwvdGQ+DQogICAgICAgICAgICA8L3RyPg0KDQogICAgICAgICAgPC90YWJsZT4NCiAgICAgICAgIA0KICAgICAgICAgIDxkaXYgaWQ9Im15U3RyZWFtc0JveCIgY2xhc3M9Im5vdFZpc2libGUiPg0KDQogICAgICAgICAgICA8ZGl2IGlkPSJhbGxTdHJlYW1zIj4NCiAgICAgICAgICAgICAgPHRhYmxlIGlkPSJhY3RpdmVTdHJlYW1zIj48L3RhYmxlPg0KICAgICAgICAgICAgICA8dGFibGUgaWQ9ImluYWN0aXZlU3RyZWFtcyI+PC90YWJsZT4NCiAgICAgICAgICAgIDwvZGl2Pg0KDQogICAgICAgICAgPC9kaXY+DQogICAgICAgICAgDQogICAgICAgICAgPGRpdiBpZD0iY29udGVudCIgY2xhc3M9IiI+PC9kaXY+DQogICAgICAgICAgICANCiAgICAgICAgPC9kaXY+DQoNCiAgICAgIDwvZGl2Pg0KICAgICAgDQogICAgPC9ib2R5Pg0KICAgIA0KPC9odG1sPg==" + webUI["html/configuration.html"] = "PCFkb2N0eXBlIGh0bWw+DQo8aHRtbD4NCiAgPGhlYWQ+DQogICAgPG1ldGEgY2hhcnNldD0idXRmLTgiPg0KICAgIDxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgsIGluaXRpYWwtc2NhbGU9MS4wIiAvPiANCiAgICA8dGl0bGU+eFRlVmU8L3RpdGxlPg0KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iY3NzL3NjcmVlbi5jc3MiIHR5cGU9InRleHQvY3NzIj4NCiAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9ImNzcy9iYXNlLmNzcyIgdHlwZT0idGV4dC9jc3MiPg0KICAgIDxzY3JpcHQgbGFuZ3VhZ2U9ImphdmFzY3JpcHQiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJqcy9jb25maWd1cmF0aW9uX3RzLmpzIj48L3NjcmlwdD4NCiAgICA8c2NyaXB0IGxhbmd1YWdlPSJqYXZhc2NyaXB0IiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ianMvbmV0d29ya190cy5qcyI+PC9zY3JpcHQ+DQogICAgPHNjcmlwdCBsYW5ndWFnZT0iamF2YXNjcmlwdCIgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9ImpzL21lbnVfdHMuanMiPjwvc2NyaXB0Pg0KICAgIDxzY3JpcHQgbGFuZ3VhZ2U9ImphdmFzY3JpcHQiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJqcy9zZXR0aW5nc190cy5qcyI+PC9zY3JpcHQ+DQogICAgPHNjcmlwdCBsYW5ndWFnZT0iamF2YXNjcmlwdCIgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9ImpzL2Jhc2VfdHMuanMiPjwvc2NyaXB0Pg0KICA8L2hlYWQ+DQoNCiAgICA8Ym9keSBvbmxvYWQ9ImphdmFzY3JpcHQ6IHJlYWR5Rm9yQ29uZmlndXJhdGlvbigwKTsiPg0KICAgICAgICAgIA0KICAgICAgPGRpdiBpZD0ibG9hZGluZyIgY2xhc3M9ImJsb2NrIj4NCiAgICAgICAgPGRpdiBjbGFzcz0ibG9hZGVyIj48L2Rpdj4NCiAgICAgIDwvZGl2Pg0KDQogICAgICA8ZGl2IGlkPSJoZWFkZXIiIGNsYXNzPSJpbWdDZW50ZXIiPjwvZGl2Pg0KICAgICAgPGRpdiBpZD0iYm94Ij4NCiAgICAgICAgDQogICAgICAgIDx0YWJsZSBpZD0iY2xpZW50SW5mbyIgY2xhc3M9InZpc2libGUiPg0KICAgICAgICAgIDx0cj4NCiAgICAgICAgICAgIDx0ZCBjbGFzcz0idGRLZXkiPlZlcnNpb246PC90ZD4NCiAgICAgICAgICAgIDx0ZCBpZD0idmVyc2lvbiIgY2xhc3M9InRkVmFsIj4mbmJzcDs8L3RkPg0KICAgICAgICAgICAgPHRkIGNsYXNzPSJ0ZEtleSI+T1M6PC90ZD4NCiAgICAgICAgICAgIDx0ZCBpZD0ib3MiIGNsYXNzPSJ0ZFZhbCI+Jm5ic3A7PC90ZD4NCiAgICAgICAgICA8L3RyPg0KICAgICAgICAgIDx0cj4NCiAgICAgICAgICAgIDx0ZCBjbGFzcz0idGRLZXkiPlVVSUQ6PC90ZD4NCiAgICAgICAgICAgIDx0ZCBpZD0idXVpZCIgY2xhc3M9InRkVmFsIj4mbmJzcDs8L3RkPg0KICAgICAgICAgICAgPHRkIGNsYXNzPSJ0ZEtleSI+QXJjaDo8L3RkPg0KICAgICAgICAgICAgPHRkIGlkPSJhcmNoIiBjbGFzcz0idGRWYWwiPiZuYnNwOzwvdGQ+DQogICAgICAgICAgPC90cj4NCiAgICAgICAgICA8dHI+DQogICAgICAgICAgICA8dGQgY2xhc3M9InRkS2V5Ij5TdHJlYW1zOjwvdGQ+DQogICAgICAgICAgICA8dGQgaWQ9InN0cmVhbXMiIGNsYXNzPSJ0ZFZhbCI+Jm5ic3A7PC90ZD4NCiAgICAgICAgICAgIDx0ZCBjbGFzcz0idGRLZXkiPkRWUjo8L3RkPg0KICAgICAgICAgICAgPHRkIGlkPSJEVlIiIGNsYXNzPSJ0ZFZhbCI+Jm5ic3A7PC90ZD4NCiAgICAgICAgICA8L3RyPg0KICAgICAgICA8L3RhYmxlPg0KICAgICAgICANCiAgICAgICAgPGRpdiBpZD0iaGVhZGxpbmUiPg0KICAgICAgICAgIDxoMSBpZD0iaGVhZC10ZXh0IiBjbGFzcz0iY2VudGVyIj5Db25maWd1cmF0aW9uPC9oMT4gICAgICANCiAgICAgICAgPC9kaXY+DQogICAgICAgIDxwIGlkPSJlcnIiIGNsYXNzPSJlcnJvck1zZyBjZW50ZXIiPjwvcD4gICANCiAgICAgICAgPGRpdiBpZD0iY29udGVudCI+DQogICAgICAgICAgICANCiAgICAgICAgPC9kaXY+DQogICAgICAgIDxkaXYgaWQ9ImJveC1mb290ZXIiPg0KICAgICAgICAgIDxpbnB1dCBpZD0ibmV4dCIgY2xhc3M9IiIgdHlwZT0iYnV0dG9uIiBuYW1lPSJuZXh0IiB2YWx1ZT0iTmV4dCIgb25jbGljaz0iamF2YXNjcmlwdDogc2F2ZVdpemFyZCgpOyI+DQogICAgICAgIDwvZGl2Pg0KICAgICAgPC9kaXY+DQogICAgPC9ib2R5Pg0KPC9odG1sPg==" + webUI["html/js/files.js"] = "ZnVuY3Rpb24gb3BlbkZpbGVzKGVsbSwgZmlsZVR5cGUpIHsNCiAgLy9kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic2V0dGluZ3MiKS5pbm5lckhUTUwgPSAiVGVzdCI7DQogIA0KICBjb2x1bW5Ub1NvcnQgPSAwOyANCiAgdmFyIG5ld0RpdiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzZXR0aW5ncyIpOw0KICANCiAgdmFyIG5ld0VudHJ5ID0gbmV3IE9iamVjdCgpOw0KICBuZXdFbnRyeVsiX2VsZW1lbnQiXSAgPSAiSFIiOw0KICBuZXdEaXYuYXBwZW5kQ2hpbGQoY3JlYXRlRWxlbWVudChuZXdFbnRyeSkpOw0KDQogIHZhciBuZXdFbnRyeSA9IG5ldyBPYmplY3QoKTsNCiAgbmV3RW50cnlbIl9lbGVtZW50Il0gID0gIklOUFVUIjsNCiAgbmV3RW50cnlbInR5cGUiXSA9ICJidXR0b24iOw0KICBuZXdFbnRyeVsiY2xhc3MiXSA9ICJidXR0b24iOw0KICBuZXdFbnRyeVsidmFsdWUiXSA9ICJOZXciOw0KICBuZXdFbnRyeVsib25jbGljayJdID0gJ2ZpbGVEZXRhaWwoIi0iLCAiJyArIGZpbGVUeXBlICsgJyIpJzsNCiAgbmV3RGl2LmFwcGVuZENoaWxkKGNyZWF0ZUVsZW1lbnQobmV3RW50cnkpKTsNCg0KICB2YXIgbmV3RW50cnkgPSBuZXcgT2JqZWN0KCk7DQogIG5ld0VudHJ5WyJfZWxlbWVudCJdICA9ICJJTlBVVCI7DQogIG5ld0VudHJ5WyJ0eXBlIl0gPSAiYnV0dG9uIjsNCiAgbmV3RW50cnlbImNsYXNzIl0gPSAiYnV0dG9uIjsNCiAgbmV3RW50cnlbInZhbHVlIl0gPSAiVXBkYXRlIjsNCiAgbmV3RW50cnlbIm9uY2xpY2siXSA9ICJmaWxlRGV0YWlsKDApIjsNCiAgLy9uZXdEaXYuYXBwZW5kQ2hpbGQoY3JlYXRlRWxlbWVudChuZXdFbnRyeSkpOw0KDQogIHZhciBkaXYgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic2V0dGluZ3MiKTsNCg0KICAgLy8gQnVpbGQgdGFibGUNCiAgdmFyIG5ld1RhYmxlID0gbmV3IE9iamVjdCgpOw0KICBuZXdUYWJsZVsiX2VsZW1lbnQiXSAgPSAiVEFCTEUiOw0KICBuZXdUYWJsZVsiaWQiXSAgICAgICAgPSAiaWRfbWFwcGluZyI7DQogIG5ld1RhYmxlWyJjbGFzcyJdICAgICA9ICJ0YWJsZS1tYXBwaW5nIjsNCiAgZGl2LmFwcGVuZENoaWxkKGNyZWF0ZUVsZW1lbnQobmV3VGFibGUpKTsNCg0KICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7IA0KICAgIGNyZWF0ZUZpbGVzVGFibGUoZmlsZVR5cGUpOyANCiAgfSwgMTApOw0KDQp9DQoNCmZ1bmN0aW9uIGNyZWF0ZUZpbGVzVGFibGUoZmlsZVR5cGUpIHsNCiAgdmFyIHRhYmxlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImlkX21hcHBpbmciKTsNCiAgdmFyIGF2YWlsYWJsZUZpbGVUeXBlcyA9IG5ldyBBcnJheSgpOw0KICANCiAgdGFibGUuaW5uZXJIVE1MID0gIiI7DQogIHZhciBuZXdUUiA9IG5ldyBPYmplY3QoKTsNCiAgbmV3VFJbIl9lbGVtZW50Il0gPSAiVFIiOw0KICBuZXdUUlsiY2xhc3MiXSAgICA9ICJ0YWJsZS1tYXBwaW5nLWhlYWRlciI7DQogIHRhYmxlLmFwcGVuZENoaWxkKGNyZWF0ZUVsZW1lbnQobmV3VFIpKTsNCg0KICB2YXIgdHIgPSB0YWJsZS5sYXN0Q2hpbGQ7DQoNCiAgc3dpdGNoKGZpbGVUeXBlKSB7DQogICAgY2FzZSAieG1sdHYiOiANCiAgICAgIGF2YWlsYWJsZUZpbGVUeXBlcyA9IG5ldyBBcnJheSgieG1sdHYiKTsgDQogICAgICB2YXIgdHJIZWFkbGluZXMgPSBuZXcgQXJyYXkoIkd1aWRlIiwgIkxhc3QgVXBkYXRlIiwgIkF2YWlsYWJpbGl0eSAlIiwgIkNoYW5uZWxzIiwgIlByb2dyYW1zIikNCiAgICAgIHZhciBjb21wYXRpYmlsaXR5S2V5cyA9IG5ldyBBcnJheSgieG1sdHYuY2hhbm5lbHMiLCAieG1sdHYucHJvZ3JhbXMiKQ0KICAgICAgYnJlYWs7DQoNCiAgICBjYXNlICJtM3UiOg0KICAgICAgYXZhaWxhYmxlRmlsZVR5cGVzID0gbmV3IEFycmF5KCJtM3UiLCAiaGRociIpOyANCiAgICAgIHZhciB0ckhlYWRsaW5lcyA9IG5ldyBBcnJheSgiUGxheWxpc3QiLCAiTGFzdCBVcGRhdGUiLCAiQXZhaWxhYmlsaXR5ICUiLCAiVHlwZSIsICJTdHJlYW1zIiwgImdyb3VwLXRpdGxlICUiLCAidHZnLWlkICUiLCAiVW5pcXVlIElEICUiKTsNCiAgICAgIHZhciBjb21wYXRpYmlsaXR5S2V5cyA9IG5ldyBBcnJheSgic3RyZWFtcyIsICJncm91cC50aXRsZSIsICJ0dmcuaWQiLCAic3RyZWFtLmlkIik7DQogICAgICBicmVhazsNCiAgfQ0KDQogIGZvciAodmFyIGkgPSAwOyBpIDwgdHJIZWFkbGluZXMubGVuZ3RoOyBpKyspIHsNCiAgICB2YXIgbmV3VEQgPSBuZXcgT2JqZWN0KCk7DQogICAgbmV3VERbIl9lbGVtZW50Il0gPSAiVEQiOw0KICAgIG5ld1REWyJfdGV4dCJdICAgID0gdHJIZWFkbGluZXNbaV07DQogICAgdHIuYXBwZW5kQ2hpbGQoY3JlYXRlRWxlbWVudChuZXdURCkpOw0KICB9DQogIA0KICBmb3IgKHZhciBpID0gMDsgaSA8IGF2YWlsYWJsZUZpbGVUeXBlcy5sZW5ndGg7IGkrKykgew0KICAgIA0KICAgIHZhciBmaWxlVHlwZSA9IGF2YWlsYWJsZUZpbGVUeXBlc1tpXQ0KDQogICAgdmFyIGRhdGEgPSBjb25maWdbImZpbGVzIl1bZmlsZVR5cGVdOw0KICAgIA0KICAgIHZhciBhbGxGaWxlcyA9IGdldE9iaktleXMoZGF0YSkNCiAgDQogICAgZm9yICh2YXIgZiA9IDA7IGYgPCBhbGxGaWxlcy5sZW5ndGg7IGYrKykgew0KICAgICAgdmFyIGVsbSAgICAgICAgICAgPSBkYXRhW2FsbEZpbGVzW2ZdXTsNCiAgICAgIHZhciB0YWJsZSAgICAgICAgID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImlkX21hcHBpbmciKTsNCiAgICAgIHZhciBmaWxlSUQgICAgICAgID0gZWxtWyJpZC5wcm92aWRlciJdOw0KICAgICAgdmFyIG5hbWUgICAgICAgICAgPSBlbG1bIm5hbWUiXTsNCiAgICAgIHZhciBsYXN0VXBkYXRlICAgID0gZWxtWyJsYXN0LnVwZGF0ZSJdOw0KICAgICAgdmFyIGF2YWlsYWJpbGl0eSAgPSBlbG1bInByb3ZpZGVyLmF2YWlsYWJpbGl0eSJdOw0KICAgICAgdmFyIHR5cGUgICAgICAgICAgPSBlbG1bInR5cGUiXS50b1VwcGVyQ2FzZSgpOw0KICAgICAgdmFyIGNvbXBhdGliaWxpdHkgPSBlbG1bImNvbXBhdGliaWxpdHkiXTsNCg0KICAgICAgLy8gQ3JlYXRlIFRSDQogICAgICB2YXIgbmV3VFIgPSBuZXcgT2JqZWN0KCk7DQogICAgICBuZXdUUlsiX2VsZW1lbnQiXSAgICAgICA9ICJUUiI7DQogICAgICBuZXdUUlsiY2xhc3MiXSAgICAgICAgICA9ICIiOw0KICAgICAgbmV3VFJbImlkIl0gICAgICAgICAgICAgPSBmaWxlSUQ7DQogICAgICBuZXdUUlsib25jbGljayJdICAgICAgICA9ICdqYXZhc2NyaXB0OiBmaWxlRGV0YWlsKCInICsgZmlsZUlEICsgJyIsIicgKyBmaWxlVHlwZSArICciKTsnOw0KICAgICAgdGFibGUuYXBwZW5kQ2hpbGQoY3JlYXRlRWxlbWVudChuZXdUUikpOw0KDQogICAgICB2YXIgdHIgPSB0YWJsZS5sYXN0Q2hpbGQ7DQoNCiAgICAgIC8vIENyZWF0ZSBmaWxlIG5hbWUgVEQNCiAgICAgIHZhciBuZXdURCA9IG5ldyBPYmplY3QoKTsNCiAgICAgIG5ld1REWyJfZWxlbWVudCJdID0gIlAiOw0KICAgICAgbmV3VERbIl90ZXh0Il0gICAgPSBuYW1lOw0KICAgICAgY3JlYXRlTmV3VEQobmV3VEQsIHRyKTsNCg0KICAgICAgLy8gQ3JlYXRlIGxhc3QgdXBkYXRlIFREDQogICAgICB2YXIgbmV3VEQgPSBuZXcgT2JqZWN0KCk7DQogICAgICBuZXdURFsiX2VsZW1lbnQiXSA9ICJQIjsNCiAgICAgIG5ld1REWyJfdGV4dCJdICAgID0gbGFzdFVwZGF0ZTsNCiAgICAgIGNyZWF0ZU5ld1REKG5ld1RELCB0cik7DQoNCiAgICAgIC8vIENyZWF0ZSBhdmFpbGFiaWxpdHkgVEQNCiAgICAgIHZhciBuZXdURCA9IG5ldyBPYmplY3QoKTsNCiAgICAgIG5ld1REWyJfZWxlbWVudCJdID0gIlAiOw0KICAgICAgbmV3VERbIl90ZXh0Il0gICAgPSBhdmFpbGFiaWxpdHk7DQogICAgICBjcmVhdGVOZXdURChuZXdURCwgdHIpOw0KDQogICAgICBpZiAoZmlsZVR5cGUgPT0gIm0zdSIgfHwgZmlsZVR5cGUgPT0gImhkaHIiKSB7DQoNCiAgICAgICAgLy8gQ3JlYXRlIFR5cGUgVEQNCiAgICAgICAgdmFyIG5ld1REID0gbmV3IE9iamVjdCgpOw0KICAgICAgICBuZXdURFsiX2VsZW1lbnQiXSA9ICJQIjsNCiAgICAgICAgbmV3VERbIl90ZXh0Il0gICAgPSB0eXBlOw0KICAgICAgICBjcmVhdGVOZXdURChuZXdURCwgdHIpOw0KICANCiAgICAgIH0NCiAgICAgIA0KICAgICAgLy8gQ3JlYXRlIGFsbCBjb21wYXRpYmlsaXR5IFREcw0KDQogICAgICBmb3IgKHZhciBqID0gMDsgaiA8IGNvbXBhdGliaWxpdHlLZXlzLmxlbmd0aDsgaisrKSB7DQogICAgICAgIHZhciBuZXdURCA9IG5ldyBPYmplY3QoKTsNCiAgICAgICAgbmV3VERbIl9lbGVtZW50Il0gPSAiUCI7DQogICAgICAgIG5ld1REWyJfdGV4dCJdICAgID0gY29tcGF0aWJpbGl0eVtjb21wYXRpYmlsaXR5S2V5c1tqXV07DQogICAgICAgIGNyZWF0ZU5ld1REKG5ld1RELCB0cik7DQogICAgICB9DQoNCiAgICB9DQoNCiAgfQ0KICANCiAgDQogIHNvcnRUYWJsZSgwKQ0KDQogIC8vIHVzYWdlIEluZm8gIA0KICB2YXIgZGl2ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNldHRpbmdzIik7DQogIHN3aXRjaChtZW51W2FjdGl2ZU1lbnUuaWRdLmhhc093blByb3BlcnR5KCJfdXNhZ2UiKSkgew0KICAgIGNhc2UgdHJ1ZTogDQogICAgICB2YXIgdXNhZ2VJdGVtID0gbmV3IE9iamVjdCgpOw0KICAgICAgdXNhZ2VJdGVtWyJfZWxlbWVudCJdID0gIlBSRSINCiAgICAgIHVzYWdlSXRlbVsiX3RleHQiXSAgICA9IG1lbnVbYWN0aXZlTWVudS5pZF1bIl91c2FnZSJdOw0KDQogICAgICB2YXIgbmV3SFIgPSBuZXcgT2JqZWN0KCk7DQogICAgICBuZXdIUlsiX2VsZW1lbnQiXSA9ICJIUiINCiAgICAgIGRpdi5hcHBlbmRDaGlsZChjcmVhdGVFbGVtZW50KG5ld0hSKSk7DQogICAgICBkaXYuYXBwZW5kQ2hpbGQoY3JlYXRlRWxlbWVudCh1c2FnZUl0ZW0pKTsNCiAgICAgIGJyZWFrOw0KICB9DQoNCiAgY2FsY3VsYXRlV3JhcHBlckhlaWdodCgpOw0KICByZXR1cm47DQp9DQoNCg0KZnVuY3Rpb24gZmlsZURldGFpbChmaWxlSUQsIGZpbGVUeXBlKSB7DQoNCiAgb3B0aW9uc1RleHQgID0gbmV3IEFycmF5KCJNM1UiLCAiSERIb21lUnVuIC0gW0V4cGVyaW1lbnRhbF0iKQ0KICBvcHRpb25zVmFsdWUgPSBuZXcgQXJyYXkoIm0zdSIsICJoZGhyIikNCg0KICBzd2l0Y2ggKGZpbGVUeXBlKSB7DQogICAgDQogICAgY2FzZSAibTN1IjogDQogICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibmFtZSIpLnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAiUGxheWxpc3QgbmFtZSIpOyANCiAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJkZXNjcmlwdGlvbiIpLnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAiRGVzY3JpcHRpb24gb2YgdGhpcyBwbGF5bGlzdCIpOyANCiAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJmaWxlLWRldGFpbC1oZWFkbGluZSIpLmlubmVySFRNTCA9ICJNM1UgUGxheWxpc3QiOyANCiAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJmaWxlLXBhdGgiKS5pbm5lckhUTUwgPSAiTTNVIEZpbGU6IjsgDQogICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZmlsZS5zb3VyY2UiKS5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgIkxvY2FsIG9yIHJlbW90ZSIpOw0KICAgICAgYnJlYWs7DQoNCiAgICBjYXNlICJoZGhyIjogDQogICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibmFtZSIpLnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAiSERIb21lUnVuIG5hbWUiKTsgDQogICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZGVzY3JpcHRpb24iKS5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgIkRlc2NyaXB0aW9uIG9mIHRoaXMgSERIb21lUnVuIHR1bmVyIik7IA0KICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImZpbGUtZGV0YWlsLWhlYWRsaW5lIikuaW5uZXJIVE1MID0gIkhESG9tZVJ1biI7IA0KICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImZpbGUtcGF0aCIpLmlubmVySFRNTCA9ICJIREhvbWVSdW4gSVA6IjsgDQogICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZmlsZS5zb3VyY2UiKS5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgIklQIGFkZHJlc3MgYW5kIHBvcnQgb2YgdGhlIHR1bmVyICgxOTIuMTY4LjEuMTA6NTAwNCkiKTsNCiAgICAgIGJyZWFrOw0KICAgIA0KICAgIGNhc2UgInhtbHR2IjogDQogICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibmFtZSIpLnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAiWE1MVFYgbmFtZSIpOyANCiAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJkZXNjcmlwdGlvbiIpLnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAiRGVzY3JpcHRpb24gb2YgdGhpcyBYTUxUViBmaWxlIik7IA0KICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImZpbGUtZGV0YWlsLWhlYWRsaW5lIikuaW5uZXJIVE1MID0gIlhNTFRWIEZpbGUiOyANCiAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJmaWxlLXBhdGgiKS5pbm5lckhUTUwgPSAiWE1MVFYgRmlsZToiOw0KICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImZpbGUuc291cmNlIikuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJMb2NhbCBvciByZW1vdGUiKTsNCg0KICAgICAgb3B0aW9uc1RleHQgID0gbmV3IEFycmF5KCJYTUxUViIpDQogICAgICBvcHRpb25zVmFsdWUgPSBuZXcgQXJyYXkoInhtbHR2IikNCiAgICAgIGJyZWFrOw0KICB9DQoNCiAgbW9kaWZ5T3B0aW9uKCJ0eXBlIiwgb3B0aW9uc1RleHQsIG9wdGlvbnNWYWx1ZSkNCiAgDQogIHNob3dQb3BVcEVsZW1lbnQoJ2ZpbGUtZGV0YWlsJyk7DQoNCiAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNhdmVGaWxlRGV0YWlsIikuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IHNhdmVGaWxlRGV0YWlsKCInICsgZmlsZUlEICsgJyIsIicgKyBmaWxlVHlwZSArICciLCBmYWxzZSknKTsNCiAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInVwZGF0ZUZpbGVEZXRhaWwiKS5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogdXBkYXRlRmlsZSgiJyArIGZpbGVJRCArICciLCInICsgZmlsZVR5cGUgKyAnIiwgZmFsc2UpJyk7DQogIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJkZWxldGVGaWxlRGV0YWlsIikuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IHNhdmVGaWxlRGV0YWlsKCInICsgZmlsZUlEICsgJyIsIicgKyBmaWxlVHlwZSArICciLCB0cnVlKScpOw0KDQogIHZhciBkYXRhID0gbmV3IE9iamVjdCgpOw0KDQogIHN3aXRjaChmaWxlSUQpIHsNCg0KICAgIGNhc2UgIi0iOiAvLyBOZXcgZmlsZQ0KICAgICAgZGF0YVsibmFtZSJdICAgICAgICA9ICIiOw0KICAgICAgZGF0YVsiZGVzY3JpcHRpb24iXSA9ICIiOw0KICAgICAgZGF0YVsiZmlsZS5zb3VyY2UiXSA9ICIiOw0KICAgICAgZGF0YVsidHlwZSJdID0gZmlsZVR5cGU7DQogICAgICANCiAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJkZWxldGVGaWxlRGV0YWlsIikuY2xhc3NOYW1lID0gImRlbGV0ZSI7DQogICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidHlwZSIpLnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiY2hhbmdlRmlsZVR5cGUodGhpcyk7IikNCiAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0eXBlIikuc2V0QXR0cmlidXRlKCJkYXRhLWlkIiwgZmlsZUlEKQ0KICAgICAgDQogICAgICBzaG93RWxlbWVudCgiZGVsZXRlRmlsZURldGFpbCIsIGZhbHNlKTsNCiAgICAgIHNob3dFbGVtZW50KCJ1cGRhdGVGaWxlRGV0YWlsIiwgZmFsc2UpOw0KICAgICAgDQogICAgICBpZiAoZmlsZVR5cGUgPT0gInhtbHR2Iikgew0KICAgICAgICBzaG93RWxlbWVudCgidHlwZSIsIGZhbHNlKTsNCiAgICAgICAgc2hvd0VsZW1lbnQoImZpbGUtdHlwZSIsIGZhbHNlKTsNCiAgICAgIH0gZWxzZSB7DQogICAgICAgIHNob3dFbGVtZW50KCJ0eXBlIiwgdHJ1ZSk7DQogICAgICAgIHNob3dFbGVtZW50KCJmaWxlLXR5cGUiLCB0cnVlKTsNCiAgICAgIH0NCiAgICAgIA0KICAgICAgYnJlYWs7DQoNCiAgICBkZWZhdWx0OiANCiAgICAgIGRhdGEgPSBjb25maWdbImZpbGVzIl1bZmlsZVR5cGVdW2ZpbGVJRF07DQogICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZGVsZXRlRmlsZURldGFpbCIpLmNsYXNzTmFtZSA9ICJkZWxldGUiOw0KICAgICAgDQogICAgICBzaG93RWxlbWVudCgidXBkYXRlRmlsZURldGFpbCIsIHRydWUpOw0KICAgICAgc2hvd0VsZW1lbnQoInR5cGUiLCBmYWxzZSk7DQogICAgICBzaG93RWxlbWVudCgiZmlsZS10eXBlIiwgZmFsc2UpOw0KICAgICAgDQogICAgICBicmVhazsNCg0KICB9DQoNCiAgdmFyIGtleXMgPSBnZXRPYmpLZXlzKGRhdGEpOw0KICANCiAgZm9yICh2YXIgaSA9IDA7IGkgPCBrZXlzLmxlbmd0aDsgaSsrKSB7DQoNCiAgICBpZihkb2N1bWVudC5nZXRFbGVtZW50QnlJZChrZXlzW2ldKSl7DQogICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChrZXlzW2ldKS52YWx1ZSA9IGRhdGFba2V5c1tpXV07DQogICAgfSANCg0KDQogIH0NCg0KfQ0KDQpmdW5jdGlvbiBjaGFuZ2VGaWxlVHlwZShlbG0pIHsNCg0KICB2YXIgZmlsZUlEID0gZWxtLmdldEF0dHJpYnV0ZSgiZGF0YS1pZCIpOw0KICB2YXIgZmlsZVR5cGUgPSBlbG0ub3B0aW9uc1tlbG0uc2VsZWN0ZWRJbmRleF0udmFsdWU7DQogIA0KICBmaWxlRGV0YWlsKGZpbGVJRCwgZmlsZVR5cGUpDQoNCn0NCg0KDQpmdW5jdGlvbiBzYXZlRmlsZURldGFpbChmaWxlSUQsIGZpbGVUeXBlLCBkZWxldGVGaWxlKSB7DQoNCiAgaWYgKGZpbGVJRCA9PSB1bmRlZmluZWQpIHsNCiAgICBhbGVydCgiSUQgaXMgbWlzc2luZyEhISIpOw0KICAgIHJldHVybiANCiAgfQ0KDQogIHZhciBpbnB1dHMgICAgICA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJmaWxlLWRldGFpbCIpLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJJTlBVVCIpOw0KICB2YXIgc2VsZWN0cyAgICAgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZmlsZS1kZXRhaWwiKS5nZXRFbGVtZW50c0J5VGFnTmFtZSgiU0VMRUNUIik7DQogIHZhciBuZXdGaWxlRGF0YSA9IG5ldyBPYmplY3QoKTsNCiAgdmFyIGRhdGEgICAgICAgID0gbmV3IE9iamVjdCgpOw0KDQogIGZvciAodmFyIGkgPSAwOyBpIDwgaW5wdXRzLmxlbmd0aDsgaSsrKSB7DQogICAgc3dpdGNoKGlucHV0c1tpXS50eXBlKSB7DQogICAgICBjYXNlICJ0ZXh0IjogbmV3RmlsZURhdGFbaW5wdXRzW2ldLm5hbWVdID0gaW5wdXRzW2ldLnZhbHVlOyBicmVhazsNCiAgICB9DQogIH0NCg0KICBmb3IgKHZhciBpID0gMDsgaSA8IHNlbGVjdHMubGVuZ3RoOyBpKyspIHsNCiAgICBuZXdGaWxlRGF0YVtzZWxlY3RzW2ldLmlkXSA9IHNlbGVjdHNbaV0ub3B0aW9uc1tzZWxlY3RzW2ldLnNlbGVjdGVkSW5kZXhdLnZhbHVlOw0KICB9DQoNCiAgaWYgKGRlbGV0ZUZpbGUgPT0gdHJ1ZSkgew0KICAgIHN3aXRjaChmaWxlVHlwZSkgew0KICAgICAgY2FzZSAibTN1IjogICB2YXIgYWxlcnRUZXh0ID0gIkRlbGV0ZSB0aGlzIHBsYXlsaXN0PyI7IGJyZWFrOw0KICAgICAgY2FzZSAiaGRociI6IHZhciBhbGVydFRleHQgPSAiRGVsZXRlIHRoaXMgSERIb21lUnVuIHR1bmVyPyI7IGJyZWFrOw0KICAgICAgY2FzZSAieG1sdHYiOiB2YXIgYWxlcnRUZXh0ID0gIkRlbGV0ZSB0aGlzIFhNTFRWIGZpbGU/IjsgYnJlYWs7DQogICAgfQ0KDQogICAgaWYgKGNvbmZpcm0oYWxlcnRUZXh0KSkgew0KICAgICAgbmV3RmlsZURhdGFbImRlbGV0ZSJdID0gdHJ1ZQ0KICAgICAgZGF0YSA9IGJ1aWxkRmlsZXNPYmooZmlsZVR5cGUsIGZpbGVJRCwgbmV3RmlsZURhdGEpOw0KICAgICAgY29uc29sZS5sb2coZGF0YSk7DQogICAgICANCiAgICB9IGVsc2Ugew0KICAgICAgc2hvd0VsZW1lbnQoInBvcHVwIiwgZmFsc2UpOw0KICAgICAgcmV0dXJuDQogICAgDQogICAgfQ0KDQogIH0gZWxzZSB7DQogIA0KICAgIHN3aXRjaChjb25maWdbImZpbGVzIl1bZmlsZVR5cGVdLmhhc093blByb3BlcnR5KGZpbGVJRCkpIHsNCg0KICAgICAgY2FzZSB0cnVlOiANCiAgICAgICAgZGF0YSA9IGNvbmZpZ1siZmlsZXMiXVtmaWxlVHlwZV1bZmlsZUlEXTsgDQogICAgICAgIGlmIChkYXRhWyJmaWxlLnNvdXJjZSJdICE9IG5ld0ZpbGVEYXRhWyJmaWxlLnNvdXJjZSJdKSB7DQogICAgICAgICAgZGF0YVsidXBkYXRlIl0gPSB0cnVlDQogICAgICAgIH0gZWxzZSB7DQogICAgICAgICAgZGF0YVsidXBkYXRlUGxheWxpc3ROYW1lIl0gPSB0cnVlOw0KICAgICAgICB9DQogICAgICAgIGJyZWFrOw0KICAgICAgDQogICAgICBjYXNlIGZhbHNlOiANCiAgICAgICAgbmV3RmlsZURhdGFbIm5ldyJdID0gdHJ1ZTsNCiAgICAgICAgZGF0YSA9IGJ1aWxkRmlsZXNPYmooZmlsZVR5cGUsIGZpbGVJRCwgbmV3RmlsZURhdGEpOw0KICAgICAgICBicmVhaw0KDQogICAgfQ0KICANCiAgfSAgDQogIA0KICBzd2l0Y2goZmlsZVR5cGUpIHsNCg0KICAgIGNhc2UgIm0zdSI6ICAgZGF0YVsiY21kIl0gPSAic2F2ZUZpbGVzTTNVIjsgYnJlYWs7DQogICAgY2FzZSAiaGRociI6ICBkYXRhWyJjbWQiXSA9ICJzYXZlRmlsZXNIREhSIjsgYnJlYWs7DQogICAgY2FzZSAieG1sdHYiOiBkYXRhWyJjbWQiXSA9ICJzYXZlRmlsZXNYTUxUViI7IGJyZWFrOw0KDQogIH0NCiAgLy9jb25zb2xlLmxvZyhkYXRhKTsNCiAgeFRlVmUoZGF0YSk7DQogIHJldHVybg0KfQ0KDQpmdW5jdGlvbiB1cGRhdGVGaWxlKGZpbGVJRCwgZmlsZVR5cGUsIGFsbEZpbGVzKSB7DQogIA0KICBzd2l0Y2goY29uZmlnWyJmaWxlcyJdW2ZpbGVUeXBlXS5oYXNPd25Qcm9wZXJ0eShmaWxlSUQpKSB7DQoNCiAgICBjYXNlIHRydWU6IA0KICAgIA0KICAgICAgdmFyIGRhdGEgPSBuZXcgT2JqZWN0KCk7DQogICAgICB2YXIgZGF0YSA9IGJ1aWxkRmlsZXNPYmooZmlsZVR5cGUsIGZpbGVJRCwgY29uZmlnWyJmaWxlcyJdW2ZpbGVUeXBlXVtmaWxlSURdKQ0KICAgICAgZGF0YVsibmV3Il0gPSB0cnVlDQoNCiAgICAgIHN3aXRjaChmaWxlVHlwZSkgew0KDQogICAgICAgIGNhc2UgIm0zdSI6ICAgZGF0YVsiY21kIl0gPSAidXBkYXRlRmlsZU0zVSI7IGJyZWFrOw0KICAgICAgICBjYXNlICJoZGhyIjogIGRhdGFbImNtZCJdID0gInVwZGF0ZUZpbGVIREhSIjsgYnJlYWs7DQogICAgICAgIGNhc2UgInhtbHR2IjogZGF0YVsiY21kIl0gPSAidXBkYXRlRmlsZVhNTFRWIjsgYnJlYWs7DQoNCiAgICAgIH0NCiAgICAgIA0KICAgICAgeFRlVmUoZGF0YSk7DQogICAgICANCiAgICAgIGJyZWFrOw0KICB9DQoNCn0NCg0KZnVuY3Rpb24gYnVpbGRGaWxlc09iaihmaWxlVHlwZSwgZmlsZUlELCBvYmopIHsNCg0KICB2YXIgZGF0YSA9IG5ldyBPYmplY3QoKTsNCiAgZGF0YVsiZmlsZXMiXSA9IG5ldyBPYmplY3QoKTsNCiAgZGF0YVsiZmlsZXMiXVtmaWxlVHlwZV0gPSBuZXcgT2JqZWN0KCk7DQogIGRhdGFbImZpbGVzIl1bZmlsZVR5cGVdW2ZpbGVJRF0gPSBvYmoNCiAgcmV0dXJuIGRhdGENCg0KfQ==" + webUI["html/js/classes_ts.js"] = "dmFyIF9fZXh0ZW5kcyA9ICh0aGlzICYmIHRoaXMuX19leHRlbmRzKSB8fCAoZnVuY3Rpb24gKCkgew0KICAgIHZhciBleHRlbmRTdGF0aWNzID0gZnVuY3Rpb24gKGQsIGIpIHsNCiAgICAgICAgZXh0ZW5kU3RhdGljcyA9IE9iamVjdC5zZXRQcm90b3R5cGVPZiB8fA0KICAgICAgICAgICAgKHsgX19wcm90b19fOiBbXSB9IGluc3RhbmNlb2YgQXJyYXkgJiYgZnVuY3Rpb24gKGQsIGIpIHsgZC5fX3Byb3RvX18gPSBiOyB9KSB8fA0KICAgICAgICAgICAgZnVuY3Rpb24gKGQsIGIpIHsgZm9yICh2YXIgcCBpbiBiKSBpZiAoYi5oYXNPd25Qcm9wZXJ0eShwKSkgZFtwXSA9IGJbcF07IH07DQogICAgICAgIHJldHVybiBleHRlbmRTdGF0aWNzKGQsIGIpOw0KICAgIH07DQogICAgcmV0dXJuIGZ1bmN0aW9uIChkLCBiKSB7DQogICAgICAgIGV4dGVuZFN0YXRpY3MoZCwgYik7DQogICAgICAgIGZ1bmN0aW9uIF9fKCkgeyB0aGlzLmNvbnN0cnVjdG9yID0gZDsgfQ0KICAgICAgICBkLnByb3RvdHlwZSA9IGIgPT09IG51bGwgPyBPYmplY3QuY3JlYXRlKGIpIDogKF9fLnByb3RvdHlwZSA9IGIucHJvdG90eXBlLCBuZXcgX18oKSk7DQogICAgfTsNCn0pKCk7DQp2YXIgTWFpbk1lbnUgPSAvKiogQGNsYXNzICovIChmdW5jdGlvbiAoKSB7DQogICAgZnVuY3Rpb24gTWFpbk1lbnUoKSB7DQogICAgICAgIHRoaXMuRG9jdW1lbnRJRCA9ICJtYWluLW1lbnUiOw0KICAgICAgICB0aGlzLkhUTUxUYWcgPSAiTEkiOw0KICAgIH0NCiAgICBNYWluTWVudS5wcm90b3R5cGUuY3JlYXRlID0gZnVuY3Rpb24gKCkgew0KICAgICAgICBjb25zb2xlLmxvZyh0aGlzLkRvY3VtZW50SUQpOw0KICAgIH07DQogICAgcmV0dXJuIE1haW5NZW51Ow0KfSgpKTsNCnZhciBNYWluTWVudUl0ZW0gPSAvKiogQGNsYXNzICovIChmdW5jdGlvbiAoX3N1cGVyKSB7DQogICAgX19leHRlbmRzKE1haW5NZW51SXRlbSwgX3N1cGVyKTsNCiAgICBmdW5jdGlvbiBNYWluTWVudUl0ZW0oKSB7DQogICAgICAgIHJldHVybiBfc3VwZXIgIT09IG51bGwgJiYgX3N1cGVyLmFwcGx5KHRoaXMsIGFyZ3VtZW50cykgfHwgdGhpczsNCiAgICB9DQogICAgTWFpbk1lbnVJdGVtLnByb3RvdHlwZS5jcmVhdGUyID0gZnVuY3Rpb24gKCkgew0KICAgICAgICB2YXIgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQodGhpcy5IVE1MVGFnKTsNCiAgICAgICAgZWxlbWVudC5pbm5lclRleHQgPSB0aGlzLlZhbHVlOw0KICAgICAgICBjb25zb2xlLmxvZyhlbGVtZW50KTsNCiAgICB9Ow0KICAgIHJldHVybiBNYWluTWVudUl0ZW07DQp9KE1haW5NZW51KSk7DQpmdW5jdGlvbiBwYWdlUmVhZHkoKSB7DQogICAgdmFyIGl0ZW0gPSBuZXcgTWFpbk1lbnVJdGVtKCk7DQogICAgaXRlbS5WYWx1ZSA9ICJUZXN0IjsNCiAgICBpdGVtLmNyZWF0ZTIoKTsNCn0NCg==" + webUI["html/img/xmltv.png"] = "iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAAAXNSR0IArs4c6QAAAAlwSFlzAAAsSwAALEsBpT2WqQAABCRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IlhNUCBDb3JlIDUuNC4wIj4KICAgPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIgogICAgICAgICAgICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgICAgICAgICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyI+CiAgICAgICAgIDx0aWZmOlJlc29sdXRpb25Vbml0PjI8L3RpZmY6UmVzb2x1dGlvblVuaXQ+CiAgICAgICAgIDx0aWZmOkNvbXByZXNzaW9uPjU8L3RpZmY6Q29tcHJlc3Npb24+CiAgICAgICAgIDx0aWZmOlhSZXNvbHV0aW9uPjI4ODwvdGlmZjpYUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6T3JpZW50YXRpb24+MTwvdGlmZjpPcmllbnRhdGlvbj4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+Mjg4PC90aWZmOllSZXNvbHV0aW9uPgogICAgICAgICA8ZXhpZjpQaXhlbFhEaW1lbnNpb24+NTA8L2V4aWY6UGl4ZWxYRGltZW5zaW9uPgogICAgICAgICA8ZXhpZjpDb2xvclNwYWNlPjE8L2V4aWY6Q29sb3JTcGFjZT4KICAgICAgICAgPGV4aWY6UGl4ZWxZRGltZW5zaW9uPjUwPC9leGlmOlBpeGVsWURpbWVuc2lvbj4KICAgICAgICAgPGRjOnN1YmplY3Q+CiAgICAgICAgICAgIDxyZGY6QmFnLz4KICAgICAgICAgPC9kYzpzdWJqZWN0PgogICAgICAgICA8eG1wOk1vZGlmeURhdGU+MjAxOC0wNy0yOFQyMDowNzozMzwveG1wOk1vZGlmeURhdGU+CiAgICAgICAgIDx4bXA6Q3JlYXRvclRvb2w+UGl4ZWxtYXRvciAzLjM8L3htcDpDcmVhdG9yVG9vbD4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgIDwvcmRmOlJERj4KPC94OnhtcG1ldGE+Co6j9bsAAAGgSURBVGgF7VqxTsNADL0gYGEon8DOwsbAAH8BYmJn6cYIn8DC3h0+oixISFRiYYCJL0AwMMBAeK5w2rpV6uikxHfYknW98+vds18TK21DWGBlWR7CH+BfcEv2AzLP8HP42gLqkyUATuEp2PWEdQjF9ATs1zF/g29Mrxt+vVcUxR3xWxEktzFPJQmivsv8ZSI9DiQyVnxlIonwn6fpiczXpNuVVXH8O+a3Ys3y9NUyuf/NTTbEHZTjUlGSRzSiPhroUIENwB4AS/vS/susDwDhTpYBER9g7wHh5DWyibV9CiitCZbIafDEYUuJHQI3Nr/9ciWsjK6IFSWYhyvClbAyZqOIlYJG84jq7E1Ot97Zm+TinV1TrWwudk9EI3ebGFekzWprzspGEU2ySWCiOrs/s9dr7M/s9fVJJJrNXcsTsfaJc0WsKZINH+/sf1Jqvl1n1f2ZnStRN/pdq646XcSkIh9dkIg4s+IrE3nCpp8RG7f91ns+cCYR/LD4jcAZB42PN+A7/mcQ8ZxJhBYQvMJwBB/BKTFLVoLMC/wCfgyv7BesTKUC2LKM3wAAAABJRU5ErkJggg==" webUI["html/js/log.js"] = "dmFyIGxvZ0ludGVydmFsDQoNCg0KZnVuY3Rpb24gdXBkYXRlTG9nKCkgew0KICB2YXIgZGF0YSA9IG5ldyBPYmplY3QoKTsNCiAgZGF0YVsiY21kIl0gPSAiZ2V0TG9nIjsNCiAgeFRlVmUoZGF0YSk7DQogIHdyaXRlTG9nSW5EaXYoKTsNCiAgcmV0dXJuDQp9DQoNCmZ1bmN0aW9uIHdyaXRlTG9nSW5EaXYoKSB7DQogIHZhciBsb2dzID0gbG9nWyJsb2ciXTsNCiAgdmFyIGRpdiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzZXR0aW5ncyIpLmxhc3RDaGlsZC5sYXN0Q2hpbGQ7DQogIGRpdi5pbm5lckhUTUwgPSAiIjsNCg0KICB2YXIgbWF4ID0gNTA7DQogIA0KICANCiAgZm9yICh2YXIgaSA9IDA7IGkgPCBsb2dzLmxlbmd0aDsgaSsrKSB7DQogICAgdmFyIG5ld0VudHJ5ID0gbmV3IE9iamVjdCgpOw0KICAgIG5ld0VudHJ5WyJfZWxlbWVudCJdICA9ICJQIjsNCg0KICAgIGlmIChsb2dzW2ldLmluY2x1ZGVzKCJFUlJPUiIpKSB7DQovLyAgICAgIGNhc2UgIndhcm5pbmdzIjogIG1zZ1R5cGUgPSAid2FybmluZ01zZyI7IGJyZWFrOw0KICAgICAgbmV3RW50cnlbImNsYXNzIl0gICA9ICJlcnJvck1zZyI7DQogICAgfQ0KDQogICAgaWYgKGxvZ3NbaV0uaW5jbHVkZXMoIldBUk5JTkciKSkgew0KLy8gICAgICBjYXNlICJ3YXJuaW5ncyI6ICBtc2dUeXBlID0gIndhcm5pbmdNc2ciOyBicmVhazsNCiAgICAgIG5ld0VudHJ5WyJjbGFzcyJdICAgPSAid2FybmluZ01zZyI7DQogICAgfQ0KDQogICAgbmV3RW50cnlbIl90ZXh0Il0gICAgID0gbG9nc1tpXTsNCiAgICANCiAgICBkaXYuYXBwZW5kQ2hpbGQoY3JlYXRlRWxlbWVudChuZXdFbnRyeSkpOw0KICB9DQoNCiAgY2FsY3VsYXRlV3JhcHBlckhlaWdodCgpOw0KICB2YXIgc2Nyb2xsRGl2ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImJveC13cmFwcGVyIik7DQogIHNjcm9sbERpdi5zY3JvbGxUb3AgPSBzY3JvbGxEaXYuc2Nyb2xsSGVpZ2h0Ow0KfQ0KDQpmdW5jdGlvbiBzaG93TG9nKG9iaikgew0KICAvL2xvZ0ludGVydmFsID0gc2V0SW50ZXJ2YWwodXBkYXRlTG9nLCA1MDAwKTsNCg0KICB2YXIgbG9ncyA9IGxvZ1sibG9nIl07DQoNCiAgdmFyIGRpdiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzZXR0aW5ncyIpOw0KDQogIHZhciBuZXdFbnRyeSA9IG5ldyBPYmplY3QoKTsNCiAgbmV3RW50cnlbIl9lbGVtZW50Il0gID0gIkhSIjsNCiAgZGl2LmFwcGVuZENoaWxkKGNyZWF0ZUVsZW1lbnQobmV3RW50cnkpKTsNCiAgLy9kaXYgPSBkaXYubGFzdENoaWxkOw0KDQogIHZhciBuZXdFbnRyeSA9IG5ldyBPYmplY3QoKTsNCiAgbmV3RW50cnlbIl9lbGVtZW50Il0gICAgPSAiSU5QVVQiOw0KICBuZXdFbnRyeVsidHlwZSJdICAgICAgICA9ICJidXR0b24iOw0KICBuZXdFbnRyeVsiY2xhc3MiXSAgICAgICA9ICJidXR0b24iOw0KICBuZXdFbnRyeVsidmFsdWUiXSAgICAgICA9ICJFbXB0eSBMb2ciOw0KICBuZXdFbnRyeVsib25jbGljayJdICAgICA9ICJlbXB0eUxvZygpIjsNCiAgZGl2LmFwcGVuZENoaWxkKGNyZWF0ZUVsZW1lbnQobmV3RW50cnkpKTsNCg0KICB2YXIgbmV3RW50cnkgPSBuZXcgT2JqZWN0KCk7DQogIG5ld0VudHJ5WyJfZWxlbWVudCJdICAgID0gImNvZGUiOw0KICBuZXdFbnRyeVsiX3RleHQiXSAgICAgICAgPSAiVXBkYXRlIExvZzogIjsNCiAgZGl2LmFwcGVuZENoaWxkKGNyZWF0ZUVsZW1lbnQobmV3RW50cnkpKTsNCg0KICB2YXIgbmV3RW50cnkgPSBuZXcgT2JqZWN0KCk7DQogIG5ld0VudHJ5WyJfZWxlbWVudCJdICAgID0gIklOUFVUIjsNCiAgbmV3RW50cnlbInR5cGUiXSAgICAgICAgPSAiY2hlY2tib3giOw0KICAvL25ld0VudHJ5WyJjaGVja2VkIl0gICAgID0gImNoZWNrYm94IjsNCiAgbmV3RW50cnlbIm9uY2xpY2siXSAgICAgPSAibG9nVXBkYXRlcyh0aGlzKSI7DQogIGRpdi5hcHBlbmRDaGlsZChjcmVhdGVFbGVtZW50KG5ld0VudHJ5KSk7DQoNCiAgdmFyIG5ld0VudHJ5ID0gbmV3IE9iamVjdCgpOw0KICBuZXdFbnRyeVsiX2VsZW1lbnQiXSAgPSAiSFIiOw0KICBkaXYuYXBwZW5kQ2hpbGQoY3JlYXRlRWxlbWVudChuZXdFbnRyeSkpOw0KDQogIA0KDQoNCiAgDQogIHZhciBuZXdXcmFwcGVyID0gbmV3IE9iamVjdCgpOw0KICBuZXdXcmFwcGVyWyJfZWxlbWVudCJdICA9ICJESVYiOw0KICBuZXdXcmFwcGVyWyJpZCJdICAgICAgICA9ICJib3gtd3JhcHBlciI7DQogIGRpdi5hcHBlbmRDaGlsZChjcmVhdGVFbGVtZW50KG5ld1dyYXBwZXIpKTsNCiAgZGl2ID0gZGl2Lmxhc3RDaGlsZDsNCg0KICB2YXIgbmV3UHJlID0gbmV3IE9iamVjdCgpOw0KICBuZXdQcmVbIl9lbGVtZW50Il0gID0gIlBSRSI7DQogIG5ld1ByZVsiaWQiXSAgICAgICAgPSAibG9nU2NyZWVuIjsNCiAgZGl2LmFwcGVuZENoaWxkKGNyZWF0ZUVsZW1lbnQobmV3UHJlKSk7DQoNCiAgZGl2ID0gZGl2Lmxhc3RDaGlsZDsNCg0KICB3cml0ZUxvZ0luRGl2KCkNCiAgcmV0dXJuDQp9DQoNCmZ1bmN0aW9uIGVtcHR5TG9nKCkgew0KICB2YXIgZGF0YSA9IG5ldyBPYmplY3QoKTsNCiAgZGF0YVsiY21kIl0gPSAiZW1wdHlMb2ciOw0KICB4VGVWZShkYXRhKTsNCiAgcmV0dXJuDQp9DQoNCmZ1bmN0aW9uIGxvZ1VwZGF0ZXMoZWxtKSB7DQogIHN3aXRjaChlbG0uY2hlY2tlZCkgew0KICAgIGNhc2UgZmFsc2U6IGNsZWFySW50ZXJ2YWwobG9nSW50ZXJ2YWwpOyBicmVhazsNCiAgICBjYXNlIHRydWU6IGxvZ0ludGVydmFsID0gc2V0SW50ZXJ2YWwodXBkYXRlTG9nLCA1MDAwKTsgYnJlYWs7DQogICAgDQogIH0NCn0=" - webUI["html/js/mapping-editor.js"] = "dmFyIG1hcHBpbmdFcnJvciAgPSBmYWxzZTsNCnZhciBidWxrICAgICAgICAgID0gZmFsc2U7DQp2YXIgYnVsa0VkaXRBbGwgICA9IGZhbHNlOyANCnZhciBzZWxlY3RPYmogICAgID0gbmV3IE9iamVjdCgpOw0KdmFyIHNlYXJjaE9iaiAgICAgPSBuZXcgT2JqZWN0KCk7DQoNCnZhciBidWxrSURzICAgICAgID0gbmV3IEFycmF5KCk7DQp2YXIgYnVsa0NoYW5nZU9iaiA9IG5ldyBPYmplY3QoKTsNCg0KZnVuY3Rpb24gY2hlY2tVbmRvKGtleSwgZWxtKSB7DQogIHZhciB0bXAgPSBuZXcgT2JqZWN0KCk7DQogIHRtcCA9IGVsbQ0KICBjb25zb2xlLmxvZygiLS0iKTsNCiAgaWYgKHVuZG8uaGFzT3duUHJvcGVydHkoImVwZ01hcHBpbmciKSkgew0KICAgIHhFUEdbImVwZ01hcHBpbmciXSA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkodW5kb1siZXBnTWFwcGluZyJdKSk7Ow0KICB9IGVsc2Ugew0KICAgIHVuZG9bImVwZ01hcHBpbmciXSA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkoZWxtKSk7DQogIH0NCn0NCg0KLy92YXIgcGxleENhdGVnb3JpZXMgPSBuZXcgQXJyYXkoIi0iLCAiQWN0aW9uIHNwb3J0cyIsICJBY3Rpb24iLCAiQWR1bHRzIG9ubHkiLCAiQWR2ZW50dXJlIiwgIkFlcm9iaWNzIiwgIkFuaW1hbHMiLCAiQW5pbWF0ZWQiLCAiQW5pbWUiLCAiQW50aG9sb2d5IiwgIkFyY2hlcnkiLCAiQXJ0IiwgIkFydHMvY3JhZnRzIiwgIkF1Y3Rpb24iLCAiQXV0byByYWNpbmciLCAiQXV0byIsICJBdmlhdGlvbiIsICJBd2FyZHMiLCAiQmFsbGV0IiwgIkJhc2ViYWxsIiwgIkJhc2tldGJhbGwiLCAiQmljeWNsZSByYWNpbmciLCAiQmljeWNsZSIsICJCaWxsaWFyZHMiLCAiQmlvZ3JhcGh5IiwgIkJvYXQgcmFjaW5nIiwgIkJvYXQiLCAiQm93bGluZyIsICJCb3hpbmciLCAiQnVzLi9maW5hbmNpYWwiLCAiQ2hpbGRyZW4iLCAiQ29sbGVjdGlibGVzIiwgIkNvbWVkeSBkcmFtYSIsICJDb21lZHkiLCAiQ29tbXVuaXR5IiwgIkNvbXB1dGVycyIsICJDb25zdW1lciIsICJDb29raW5nIiwgIkNyaW1lIGRyYW1hIiwgIkNyaW1lIiwgIkRhbmNlIiwgIkRhcmsgY29tZWR5IiwgIkRlYmF0ZSIsICJEaXZpbmciLCAiRG9jdWRyYW1hIiwgIkRvY3VtZW50YXJ5IiwgIkRyYW1hIiwgIkVkdWNhdGlvbmFsIiwgIkVudGVydGFpbm1lbnQiLCAiRW52aXJvbm1lbnQiLCAiRXF1ZXN0cmlhbiIsICJFcm90aWMiLCAiRXZlbnQiLCAiRmFudGFzeSIsICJGYXNoaW9uIiwgIkZlYXR1cmUgRmlsbSIsICJGaXNoaW5nIiwgIkZvb3RiYWxsIiwgIkdhbWUgc2hvdyIsICJHYW1pbmciLCAiR2F5L2xlc2JpYW4iLCAiR29sZiIsICJIYW5kYmFsbCIsICJIZWFsdGgiLCAiSGlzdG9yaWNhbCBkcmFtYSIsICJIaXN0b3J5IiwgIkhvY2tleSIsICJIb2xpZGF5IiwgIkhvbWUgaW1wcm92ZW1lbnQiLCAiSG9ycm9yIiwgIkhvcnNlIiwgIkhvdXNlL2dhcmRlbiIsICJIb3ctdG8iLCAiSW50ZXJ2aWV3IiwgIkludGwgc29jY2VyIiwgIkxhdyIsICJNYXJ0aWFsIGFydHMiLCAiTWVkaWNhbCIsICJNaWxpdGFyeSIsICJNaW5pc2VyaWVzIiwgIk1peGVkIG1hcnRpYWwgYXJ0cyIsICJNb3RvcmN5Y2xlIHJhY2luZyIsICJNb3RvcmN5Y2xlIiwgIk1vdG9yc3BvcnRzIiwgIk1vdW50YWluIGJpa2luZyIsICJNdXNpYyIsICJNdXNpY2FsIGNvbWVkeSIsICJNdXNpY2FsIiwgIk15c3RlcnkiLCAiTmF0dXJlIiwgIk5ld3MiLCAiTmV3c21hZ2F6aW5lIiwgIk9seW1waWNzIiwgIk9wZXJhIiwgIk91dGRvb3JzIiwgIlBhcmFkZSIsICJQYXJhbm9ybWFsIiwgIlBhcmVudGluZyIsICJQZXJmb3JtaW5nIGFydHMiLCAiUGxheW9mZiBzcG9ydHMiLCAiUG9rZXIiLCAiUG9saXRpY3MiLCAiUHJvIHdyZXN0bGluZyIsICJQdWJsaWMgYWZmYWlycyIsICJSZWFsaXR5IiwgIlJlbGlnaW91cyIsICJSb2RlbyIsICJSb2xsZXIgZGVyYnkiLCAiUm9tYW5jZSIsICJSb21hbnRpYyBjb21lZHkiLCAiUnVnYnkiLCAiUnVubmluZyIsICJTYWlsaW5nIiwgIlNjaWVuY2UgZmljdGlvbiIsICJTY2llbmNlIiwgIlNlbGYgaW1wcm92ZW1lbnQiLCAiU2VyaWVzIiwgIlNob290aW5nIiwgIlNob3BwaW5nIiwgIlNob3J0IEZpbG0iLCAiU2l0Y29tIiwgIlNraWluZyIsICJTbm9va2VyIiwgIlNvYXAiLCAiU29jY2VyIiwgIlNwZWNpYWwiLCAiU3BvcnRzIiwgInNwb3J0cyIsICJTcG9ydHMgZXZlbnQiLCAiU3BvcnRzIG5vbi1ldmVudCIsICJTcG9ydHMgdGFsayIsICJTdGFuZHVwIiwgIlN1cmZpbmciLCAiU3VzcGVuc2UiLCAiVFYgTW92aWUiLCAiVGFsayIsICJUZWNobm9sb2d5IiwgIlRlbm5pcyIsICJUaGVhdGVyIiwgIlRocmlsbGVyIiwgIlRyYWNrL2ZpZWxkIiwgIlRyYXZlbCIsICJUcmlhdGhsb24iLCAiVmFyaWV0eSIsICJWb2xsZXliYWxsIiwgIldhciIsICJXYXRlcnNwb3J0cyIsICJXZWF0aGVyIiwgIldlc3Rlcm4iLCAiV3Jlc3RsaW5nIiwgIllhY2h0IHJhY2luZyIsICJtb3ZpZSIsICJzZXJpZXMiLCAic3BvcnRzIiwgInR2c2hvdyIpOw0KdmFyIHBsZXhDYXRlZ29yaWVzVmFsdWVzID0gbmV3IEFycmF5KCItIiwgIktpZHMiLCAiTmV3cyIsICJNb3ZpZSIsICJTZXJpZXMiLCAiU3BvcnRzIikNCnZhciBwbGV4Q2F0ZWdvcmllc09wdGlvbiA9IG5ldyBBcnJheSgiLSIsICJLaWRzIChFbWJ5IG9ubHkpIiwgIk5ld3MiLCAiTW92aWUiLCAiU2VyaWVzIiwgIlNwb3J0cyIpDQoNCg0KZnVuY3Rpb24gb3Blbk1hcHBpbmdFZGl0b3IoZWxtKSB7DQogIHZhciBjb2x1bW5Ub1NvcnQgID0gMQ0KDQogIGNoZWNrVW5kbygiZXBnTWFwcGluZyIsIHhFUEdbImVwZ01hcHBpbmciXSkNCg0KICB2YXIgbmV3RGl2ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNldHRpbmdzIik7DQogIA0KICB2YXIgbmV3RW50cnkgPSBuZXcgT2JqZWN0KCk7DQogIG5ld0VudHJ5WyJfZWxlbWVudCJdICA9ICJIUiI7DQogIG5ld0Rpdi5hcHBlbmRDaGlsZChjcmVhdGVFbGVtZW50KG5ld0VudHJ5KSk7DQoNCiAgdmFyIG5ld0VudHJ5ID0gbmV3IE9iamVjdCgpOw0KICBuZXdFbnRyeVsiX2VsZW1lbnQiXSAgICA9ICJJTlBVVCI7DQogIG5ld0VudHJ5WyJ0eXBlIl0gICAgICAgID0gImJ1dHRvbiI7DQogIG5ld0VudHJ5WyJjbGFzcyJdICAgICAgID0gImJ1dHRvbiI7DQogIG5ld0VudHJ5WyJ2YWx1ZSJdICAgICAgID0gIlNhdmUiOw0KICBuZXdFbnRyeVsib25jbGljayJdICAgICA9ICJzYXZlWEVQRygpIjsNCiAgbmV3RGl2LmFwcGVuZENoaWxkKGNyZWF0ZUVsZW1lbnQobmV3RW50cnkpKTsNCg0KICB2YXIgbmV3RW50cnkgPSBuZXcgT2JqZWN0KCk7DQogIG5ld0VudHJ5WyJfZWxlbWVudCJdICAgID0gIklOUFVUIjsNCiAgbmV3RW50cnlbInR5cGUiXSAgICAgICAgPSAiYnV0dG9uIjsNCiAgbmV3RW50cnlbImNsYXNzIl0gICAgICAgPSAiYnV0dG9uIjsNCiAgbmV3RW50cnlbInZhbHVlIl0gICAgICAgPSAiQnVsayBFZGl0IjsNCiAgbmV3RW50cnlbIm9uY2xpY2siXSAgICAgPSAiYnVsa0VkaXQoKSI7DQogIG5ld0Rpdi5hcHBlbmRDaGlsZChjcmVhdGVFbGVtZW50KG5ld0VudHJ5KSk7DQoNCiAgdmFyIG5ld0VudHJ5ID0gbmV3IE9iamVjdCgpOw0KICBuZXdFbnRyeVsiX2VsZW1lbnQiXSAgICA9ICJJTlBVVCI7DQogIG5ld0VudHJ5WyJ0eXBlIl0gICAgICAgID0gImJ1dHRvbiI7DQogIG5ld0VudHJ5WyJjbGFzcyJdICAgICAgID0gImJ1dHRvbiI7DQogIG5ld0VudHJ5WyJ2YWx1ZSJdICAgICAgID0gIlNob3cgWEVQRyI7DQogIG5ld0VudHJ5WyJvbmNsaWNrIl0gICAgID0gInNob3dYRVBHKCkiOw0KICBuZXdEaXYuYXBwZW5kQ2hpbGQoY3JlYXRlRWxlbWVudChuZXdFbnRyeSkpOw0KDQogIHZhciBuZXdFbnRyeSA9IG5ldyBPYmplY3QoKTsNCiAgbmV3RW50cnlbIl9lbGVtZW50Il0gICAgPSAiSU5QVVQiOw0KICBuZXdFbnRyeVsiY2xhc3MiXSAgICAgICA9ICJzZWFyY2giOw0KICBuZXdFbnRyeVsiaWQiXSAgICAgICAgICA9ICJzZWFyY2hNYXBwaW5nIjsNCiAgbmV3RW50cnlbInR5cGUiXSAgICAgICAgPSAic2VhcmNoIjsNCiAgbmV3RW50cnlbInBsYWNlaG9sZGVyIl0gPSAiU2VhcmNoIjsNCiAgbmV3RW50cnlbIm9uY2hhbmdlIl0gICAgPSAic2VhcmNoSW5NYXBwaW5nKCkiOw0KICBuZXdEaXYuYXBwZW5kQ2hpbGQoY3JlYXRlRWxlbWVudChuZXdFbnRyeSkpOw0KDQogIHZhciBkaXYgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic2V0dGluZ3MiKTsNCiAgLy9zY3JlZW5Mb2coIkR1cGxpY2F0ZSBJRCIsICJlcnJvciIsIHRydWUpDQogIA0KDQogIC8vIEJ1aWxkIHRhYmxlDQoNCiAgdmFyIG5ld1dyYXBwZXIgPSBuZXcgT2JqZWN0KCk7DQogIG5ld1dyYXBwZXJbIl9lbGVtZW50Il0gID0gIkRJViI7DQogIG5ld1dyYXBwZXJbImlkIl0gICAgICAgID0gImJveC13cmFwcGVyIjsNCiAgZGl2LmFwcGVuZENoaWxkKGNyZWF0ZUVsZW1lbnQobmV3V3JhcHBlcikpOw0KDQoNCiAgdmFyIG5ld1RhYmxlID0gbmV3IE9iamVjdCgpOw0KICBuZXdUYWJsZVsiX2VsZW1lbnQiXSAgPSAiVEFCTEUiOw0KICBuZXdUYWJsZVsiaWQiXSAgICAgICAgPSAiaWRfbWFwcGluZyI7DQogIG5ld1RhYmxlWyJjbGFzcyJdICAgICA9ICJ0YWJsZS1tYXBwaW5nIjsNCiAgZGl2Lmxhc3RDaGlsZC5hcHBlbmRDaGlsZChjcmVhdGVFbGVtZW50KG5ld1RhYmxlKSk7DQogIHNob3dMb2FkaW5nU2NyZWVuKHRydWUpOw0KDQogIHNldFRpbWVvdXQoZnVuY3Rpb24oKXsgDQogICAgY3JlYXRlTWFwcGluZ1RhYmxlKCk7IA0KICB9LCAxMCk7DQoNCn0NCg0KZnVuY3Rpb24gY3JlYXRlU2VhcmNoT2JqKCkgew0KICBzZWFyY2hPYmogPSBuZXcgT2JqZWN0KCk7DQogIHZhciBJRHMgPSBnZXRPYmpLZXlzKHhFUEdbImVwZ01hcHBpbmciXSkNCiAgZm9yICh2YXIgaSA9IElEcy5sZW5ndGggLSAxOyBpID49IDA7IGktLSkgew0KICAgIHZhciBpdGVtID0geEVQR1siZXBnTWFwcGluZyJdW0lEc1tpXV07DQogICAgdmFyIHNlYXJjaElEID0gaXRlbVsieC1lcGciXTsNCiAgICB2YXIgc2VhcmNoVmFsdWUgPSAiIjsgDQogICAgc2VhcmNoVmFsdWUgPSBzZWFyY2hWYWx1ZSArIGl0ZW1bIngtY2hhbm5lbElEIl0gKyAiICI7DQogICAgc2VhcmNoVmFsdWUgPSBzZWFyY2hWYWx1ZSArIGl0ZW1bIngtY2F0ZWdvcnkiXSArICIgIjsNCiAgICBzZWFyY2hWYWx1ZSA9IHNlYXJjaFZhbHVlICsgaXRlbVsieC1uYW1lIl0gKyAiICI7DQogICAgc2VhcmNoVmFsdWUgPSBzZWFyY2hWYWx1ZSArIGl0ZW1bIngtZ3JvdXAtdGl0bGUiXSArICIgIjsNCiAgICBzZWFyY2hWYWx1ZSA9IHNlYXJjaFZhbHVlICsgaXRlbVsieC14bWx0di1maWxlIl0gKyAiICI7DQogICAgc2VhcmNoVmFsdWUgPSBzZWFyY2hWYWx1ZSArIGl0ZW1bIl9maWxlLm0zdS5uYW1lIl0gKyAiICI7DQoNCiAgICBzd2l0Y2goaXRlbVsieC1hY3RpdmUiXSkgew0KICAgICAgY2FzZSB0cnVlOiAgc2VhcmNoVmFsdWUgPSBzZWFyY2hWYWx1ZSArICJvbmxpbmUiOyBicmVhazsNCiAgICAgIGNhc2UgZmFsc2U6IHNlYXJjaFZhbHVlID0gc2VhcmNoVmFsdWUgKyAib2ZmbGluZSI7IGJyZWFrOw0KICAgIH0NCg0KICAgIHNlYXJjaE9ialtzZWFyY2hWYWx1ZV0gPSBzZWFyY2hJRDsNCg0KICB9DQp9DQoNCg0KZnVuY3Rpb24gY2FsY3VsYXRlV3JhcHBlckhlaWdodCgpIHsNCg0KICBpZiAoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImJveC13cmFwcGVyIikpew0KDQogICAgdmFyIGVsbSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJib3gtd3JhcHBlciIpOw0KICAgIA0KICAgIHZhciBkaXZzID0gbmV3IEFycmF5KCJteVN0cmVhbXNCb3giLCAiY2xpZW50SW5mbyIsICJzZXR0aW5ncyIpOw0KICAgIHZhciBlbGVtZW50c0hlaWdodCA9IDAgLSBlbG0ub2Zmc2V0SGVpZ2h0Ow0KICAgIGZvciAodmFyIGkgPSAwOyBpIDwgZGl2cy5sZW5ndGg7IGkrKykgew0KICAgICAgZWxlbWVudHNIZWlnaHQgPSBlbGVtZW50c0hlaWdodCArIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGRpdnNbaV0pLm9mZnNldEhlaWdodDsNCiAgICB9DQoNCiAgICBlbG0uc3R5bGUuaGVpZ2h0ID0gd2luZG93LmlubmVySGVpZ2h0IC0gZWxlbWVudHNIZWlnaHQgKyAicHgiOw0KDQogIH0NCg0KICBpZiAoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm1lbnUtd3JhcHBlciIpKXsNCg0KICAgIHZhciBlbG0gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibWVudS13cmFwcGVyIik7DQogICAgDQogICAgdmFyIG9mZmVzdCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzZXR0aW5ncyIpLm9mZnNldEhlaWdodCArIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJteVN0cmVhbXNCb3giKS5vZmZzZXRIZWlnaHQgKyBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY2xpZW50SW5mbyIpLm9mZnNldEhlaWdodDsNCiAgICANCiAgICBpZiAod2luZG93LmlubmVySGVpZ2h0ID4gb2ZmZXN0KSB7DQogICAgICBlbG0uc3R5bGUuaGVpZ2h0ID0gd2luZG93LmlubmVySGVpZ2h0ICsgInB4Ig0KICAgIH0gZWxzZSB7DQogICAgICBlbG0uc3R5bGUuaGVpZ2h0ID0gb2ZmZXN0ICsgInB4Ig0KICAgIH0NCiAgICANCg0KICB9DQoNCg0KfQ0KDQpmdW5jdGlvbiBjcmVhdGVNYXBwaW5nVGFibGUoKSB7DQogIGNvbHVtblRvU29ydCA9IDE7DQogIGNyZWF0ZVNlYXJjaE9iaigpOw0KDQogIC8vIENyZWF0ZSB0YWJsZSAoSGVhZGVyKQ0KICB2YXIgdGFibGUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiaWRfbWFwcGluZyIpOw0KICB0YWJsZS5pbm5lckhUTUwgPSAiIjsNCiAgdmFyIG5ld1RSID0gbmV3IE9iamVjdCgpOw0KICBuZXdUUlsiX2VsZW1lbnQiXSA9ICJUUiI7DQogIG5ld1RSWyJjbGFzcyJdICAgID0gInRhYmxlLW1hcHBpbmctaGVhZGVyIjsNCiAgdGFibGUuYXBwZW5kQ2hpbGQoY3JlYXRlRWxlbWVudChuZXdUUikpOw0KDQogIHZhciB0ciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJpZF9tYXBwaW5nIikubGFzdENoaWxkOw0KICB2YXIgdHJIZWFkbGluZXMgPSBuZXcgQXJyYXkoIkJ1bGsiLCAiQ2guIE5vLiIsICJMb2dvIiwgIkNoYW5uZWwgTmFtZSIsICJQbGF5bGlzdCIsICJHcm91cCBUaXRsZSIsICJYTUxUViBGaWxlIiwgIlhNTFRWIElEIiwgIlRpbWVzaGlmdCIpDQoNCiAgZm9yICh2YXIgaSA9IDA7IGkgPCB0ckhlYWRsaW5lcy5sZW5ndGg7IGkrKykgew0KICAgIHZhciBuZXdURCA9IG5ldyBPYmplY3QoKTsNCg0KICAgIG5ld1REWyJfZWxlbWVudCJdID0gIlREIjsNCiAgICBuZXdURFsiX3RleHQiXSAgICA9IHRySGVhZGxpbmVzW2ldOw0KDQogICAgDQoNCiAgICB2YXIgd2lkdGggPSAiIjsNCiAgICBzd2l0Y2godHJIZWFkbGluZXNbaV0pIHsNCg0KICAgICAgY2FzZSAiQnVsayI6ICANCiAgICAgICAgDQogICAgICAgIG1heFdpZHRoID0gIjMycHgiOyANCiAgICAgICAgbWluV2lkdGggPSAiMzJweCI7IA0KICAgIA0KICAgICAgICAvLyBDcmVhdGUgYnVsayBURA0KICAgICAgICB2YXIgbmV3Q2hlY2tib3ggPSBuZXcgT2JqZWN0KCk7DQogICAgICAgIG5ld0NoZWNrYm94WyJfZWxlbWVudCJdID0gIklOUFVUIjsNCiAgICAgICAgbmV3Q2hlY2tib3hbInR5cGUiXSAgICAgPSAiY2hlY2tib3giOw0KICAgICAgICBuZXdDaGVja2JveFsiY2xhc3MiXSAgICA9ICJidWxrIGhpZGVCdWxrIjsNCiAgICAgICAgbmV3Q2hlY2tib3hbIm9ubW91c2VvdXQiXSA9ICJqYXZhc2NyaXB0OiB0aGlzLmJsdXIoKSINCiAgICAgICAgbmV3Q2hlY2tib3hbIm9uY2xpY2siXSAgICA9ICJqYXZhc2NyaXB0OiBidWxrRWRpdEFsbENoYW5uZWxzKCkiDQoNCiAgICANCiAgICAgICAgLy9uZXdURC5hcHBlbmRDaGlsZChjcmVhdGVFbGVtZW50KG5ld0NoZWNrYm94KSk7DQoNCiAgICAgICAgYnJlYWs7DQoNCiAgICAgIGNhc2UgIkNoLiBOby4iOiANCiAgICAgICAgbWF4V2lkdGggPSAiODBweCI7IA0KICAgICAgICBtaW5XaWR0aCA9ICI3MHB4IjsgDQogICAgICAgIG5ld1REWyJvbmNsaWNrIl0gID0gImphdnNjcmlwdDogc29ydFRhYmxlKCIgKyBpICsgIik7IjsNCiAgICAgICAgbmV3VERbImNsYXNzIl0gICAgPSAicG9pbnRlciI7DQogICAgICAgIGJyZWFrOw0KICAgICAgDQogICAgICBjYXNlICJMb2dvIjogIG1heFdpZHRoID0gIjEyMHB4IjsgbWluV2lkdGggPSAiNjBweCI7IGJyZWFrOw0KICAgICAgDQogICAgICBjYXNlICJDaGFubmVsIE5hbWUiOiAgDQogICAgICAgIG1heFdpZHRoID0gIjUwJSI7IA0KICAgICAgICBtaW5XaWR0aCA9ICIyMDBweCI7IA0KICAgICAgICBuZXdURFsib25jbGljayJdICA9ICJqYXZzY3JpcHQ6IHNvcnRUYWJsZSgiICsgaSArICIpOyI7DQogICAgICAgIG5ld1REWyJjbGFzcyJdID0gInBvaW50ZXIiOw0KICAgICAgICBicmVhazsNCg0KICAgICAgY2FzZSAiUGxheWxpc3QiOiAgICAgIA0KICAgICAgICBtYXhXaWR0aCA9ICIxNTBweCI7IA0KICAgICAgICBtaW5XaWR0aCA9ICIxMDBweCI7IA0KICAgICAgICBuZXdURFsib25jbGljayJdICA9ICJqYXZzY3JpcHQ6IHNvcnRUYWJsZSgiICsgaSArICIpOyI7DQogICAgICAgIG5ld1REWyJjbGFzcyJdICAgID0gInBvaW50ZXIiOw0KICAgICAgICBicmVhazsNCiAgICAgIA0KICAgICAgY2FzZSAiR3JvdXAgVGl0bGUiOiAgIA0KICAgICAgICBtYXhXaWR0aCA9ICIxNTBweCI7IA0KICAgICAgICBtaW5XaWR0aCA9ICIxMDBweCI7IA0KICAgICAgICBuZXdURFsib25jbGljayJdICA9ICJqYXZzY3JpcHQ6IHNvcnRUYWJsZSgiICsgaSArICIpOyI7DQogICAgICAgIG5ld1REWyJjbGFzcyJdICAgID0gInBvaW50ZXIiOw0KICAgICAgICBicmVhazsNCiAgICAgIA0KICAgICAgY2FzZSAiWE1MVFYgRmlsZSI6ICAgIA0KICAgICAgICBtYXhXaWR0aCA9ICIxNTBweCI7IA0KICAgICAgICBtaW5XaWR0aCA9ICIxMDBweCI7IA0KICAgICAgICAvL25ld1REWyJvbmNsaWNrIl0gID0gImphdnNjcmlwdDogc29ydFRhYmxlKCIgKyBpICsgIik7IjsNCiAgICAgICAgbmV3VERbImNsYXNzIl0gICAgPSAiIjsNCiAgICAgICAgYnJlYWs7DQogICAgICANCg0KICAgICAgY2FzZSAiWE1MVFYgSUQiOiAgICAgIG1heFdpZHRoID0gIjE1MHB4IjsgbWluV2lkdGggPSAiMTAwcHgiOyBicmVhazsNCg0KICAgICAgY2FzZSAiVGltZXNoaWZ0IjogICAgICBtYXhXaWR0aCA9ICI1MHB4IjsgbWluV2lkdGggPSAiMjBweCI7IGJyZWFrOw0KDQogICAgICBkZWZhdWx0OiANCiAgICAgICAgbmV3VERbImNsYXNzIl0gICAgPSAiIjsNCiAgICAgICAgYnJlYWs7DQogICAgfQ0KDQogICAgdHIuYXBwZW5kQ2hpbGQoY3JlYXRlRWxlbWVudChuZXdURCkpOw0KICAgIGlmICh0ckhlYWRsaW5lc1tpXSA9PSAiQnVsayIpIHsNCiAgICAgIHRyLmxhc3RDaGlsZC5pbm5lckhUTUwgPSAiIjsNCiAgICAgIHRyLmxhc3RDaGlsZC5hcHBlbmRDaGlsZChjcmVhdGVFbGVtZW50KG5ld0NoZWNrYm94KSk7DQogICAgICANCiAgICB9DQogICAgDQogICAgdmFyIGVsbSA9IHRyLmxhc3RDaGlsZDsNCiAgICBlbG0uc3R5bGUud2lkdGggPSBtYXhXaWR0aDsNCiAgICBlbG0uc3R5bGUubWF4V2lkdGggPSBtYXhXaWR0aDsNCiAgICBlbG0uc3R5bGUubWluV2lkdGggPSBtaW5XaWR0aDsNCg0KICB9DQogIGNhbGN1bGF0ZVdyYXBwZXJIZWlnaHQoKTsNCiAgdmFyIElEcyA9IGdldE9iaktleXMoeEVQR1siZXBnTWFwcGluZyJdKQ0KDQogIHZhciBhbGxYbWx0dkZpbGVzID0gZ2V0T2JqS2V5cyh4RVBHWyJ4bWx0dk1hcCJdKTsNCg0KICBpZiAoYWxsWG1sdHZGaWxlcyA9PSAwKSB7DQogICAgc2hvd0xvYWRpbmdTY3JlZW4oZmFsc2UpOw0KICAgIHJldHVybjsNCiAgfQ0KDQogIC8vIFNvcnQgSURzDQogIHZhciBwb3NPYmogPSBuZXcgT2JqZWN0KCk7DQogIGZvciAodmFyIGkgPSAwOyBpIDwgSURzLmxlbmd0aDsgaSsrKSB7DQogICAgdmFyIGl0ZW0gID0geEVQR1siZXBnTWFwcGluZyJdW0lEc1tpXV07DQogICAgdmFyIHBvcw0KICAgIHN3aXRjaChpc05hTih4RVBHWyJlcGdNYXBwaW5nIl1bSURzW2ldXVsieC1jaGFubmVsSUQiXSkpIHsNCiAgICAgIGNhc2UgZmFsc2U6IHBvcyA9IHBhcnNlRmxvYXQoeEVQR1siZXBnTWFwcGluZyJdW0lEc1tpXV1bIngtY2hhbm5lbElEIl0pIDsgYnJlYWs7DQogICAgfQ0KICAgIHBvc09ialtwb3NdID0gaXRlbTsNCiAgfQ0KICBwb3NGbG9hdCA9IGdldE9iaktleXMocG9zT2JqKQ0KICBmdW5jdGlvbiBzb3J0RmxvYXQoYSxiKSB7IHJldHVybiBhIC0gYjsgfQ0KICBwb3NGbG9hdC5zb3J0KHNvcnRGbG9hdCkNCg0KICAvL2NvbnNvbGUubG9nKHBvc0Zsb2F0KTsNCg0KICAvLyAtLS0NCg0KICBpZiAoSURzLmxlbmd0aCA+IDIwMCkgew0KICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKXsgDQogICAgICBzaG93TG9hZGluZ1NjcmVlbih0cnVlKTsNCiAgICB9LCAxKTsNCg0KICB9DQoNCg0KICAvLyB0YWJsZSBmb3IgaW50IGNoYW5uZWwgSUQncw0KICBmb3IgKHZhciBpID0gMDsgaSA8IHBvc0Zsb2F0Lmxlbmd0aDsgaSsrKSB7DQoNCiAgICB2YXIgdGFibGUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiaWRfbWFwcGluZyIpOw0KICAgIHZhciBpdGVtICA9IHBvc09ialtwb3NGbG9hdFtpXV07DQogICAgLy92YXIgaXRlbSAgPSB4RVBHWyJlcGdNYXBwaW5nIl1bSURzW2ldXTsNCiAgICAvL2NvbnNvbGUubG9nKGl0ZW0pOw0KICAgIHZhciBuZXdUUiA9IG5ldyBPYmplY3QoKTsNCiAgICBuZXdUUlsiX2VsZW1lbnQiXSAgICAgICA9ICJUUiI7DQogICAgbmV3VFJbImNsYXNzIl0gICAgICAgICAgPSAiIjsNCiAgICBuZXdUUlsiaWQiXSAgICAgICAgICAgICA9IGl0ZW1bIngtZXBnIl07DQogICAgbmV3VFJbIm9uY29udGV4dG1lbnUiXSAgPSAnamF2YXNjcmlwdDogc3dpdGNoQ2hhbm5lbFN0YXR1cygiJyArIGl0ZW1bIngtZXBnIl0gKyAnIik7IHJldHVybiBmYWxzZTsnOw0KICAgIHRhYmxlLmFwcGVuZENoaWxkKGNyZWF0ZUVsZW1lbnQobmV3VFIpKTsNCg0KICAgIHZhciB0ciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJpZF9tYXBwaW5nIikubGFzdENoaWxkOw0KICAgIA0KICAgIC8vIENyZWF0ZSBidWxrIFREDQogICAgdmFyIG5ld1REID0gbmV3IE9iamVjdCgpOw0KICAgIG5ld1REWyJfZWxlbWVudCJdICAgPSAiSU5QVVQiOw0KICAgIG5ld1REWyJ0eXBlIl0gICAgICAgPSAiY2hlY2tib3giOw0KICAgIG5ld1REWyJjbGFzcyJdICAgICAgPSAiYnVsayBoaWRlQnVsayI7DQogICAgbmV3VERbIm9ubW91c2VvdXQiXSA9ICJqYXZhc2NyaXB0OiB0aGlzLmJsdXIoKSINCiAgICANCiAgICBjcmVhdGVOZXdURChuZXdURCwgdHIpOw0KICAgIA0KDQogICAgLy8gQ3JlYXRlIElEIFREDQogICAgdmFyIG5ld1REID0gbmV3IE9iamVjdCgpOw0KICAgIG5ld1REWyJfZWxlbWVudCJdID0gIklOUFVUIjsNCiAgICBuZXdURFsidHlwZSJdICAgICA9ICJ0ZXh0Ig0KICAgIG5ld1REWyJjbGFzcyJdICAgID0gInc0MHB4IjsNCiAgICBuZXdURFsidmFsdWUiXSAgICA9IGl0ZW1bIngtY2hhbm5lbElEIl07DQogICAgbmV3VERbIm9uZm9jdXNvdXQiXSA9ICJqYXZhc2NyaXB0OiBhcnJhbmdlVGFibGUodGhpcyk7Ig0KICAgIGNyZWF0ZU5ld1REKG5ld1RELCB0cik7DQoNCiAgICAvLyBDcmVhdGUgSU1HIFREDQogICAgdmFyIG5ld1REID0gbmV3IE9iamVjdCgpOw0KICAgIG5ld1REWyJfZWxlbWVudCJdID0gIklNRyI7DQogICAgbmV3VERbIm9uY2xpY2siXSAgPSAnamF2YXNjcmlwdDogbWFwcGluZ0RldGFpbCgiJyArIGl0ZW1bIngtZXBnIl0gKyAnIik7JzsNCiAgICBpZiAoaXRlbVsidHZnLWxvZ28iXSAhPSB1bmRlZmluZWQpIHsNCiAgICAgIG5ld1REWyJzcmMiXSAgICAgID0gaXRlbVsidHZnLWxvZ28iXTsNCiAgICB9IGVsc2Ugew0KICAgICAgaXRlbVsidHZnLWxvZ28iXSA9ICIiOw0KICAgICAgbmV3VERbInNyYyJdID0gIiI7DQogICAgfQ0KICAgIGNyZWF0ZU5ld1REKG5ld1RELCB0cik7DQogICAgdHIubGFzdENoaWxkLnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBtYXBwaW5nRGV0YWlsKCInICsgaXRlbVsieC1lcGciXSArICciKTsnKQ0KDQogICAgLy8gQ3JlYXRlIFAgVEQgKGNoYW5uZWwgbmFtZSkNCiAgICB2YXIgbmV3VEQgPSBuZXcgT2JqZWN0KCk7DQogICAgbmV3VERbIl9lbGVtZW50Il0gPSAiUCI7DQogICAgbmV3VERbIl90ZXh0Il0gICAgPSBpdGVtWyJ4LW5hbWUiXTsNCiAgICBuZXdURFsiY2xhc3MiXSAgICAgPSBpdGVtWyJ4LWNhdGVnb3J5Il07DQoNCiAgICBjcmVhdGVOZXdURChuZXdURCwgdHIpOw0KICAgIHRyLmxhc3RDaGlsZC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogbWFwcGluZ0RldGFpbCgiJyArIGl0ZW1bIngtZXBnIl0gKyAnIik7JykNCiAgICB0ci5sYXN0Q2hpbGQubGFzdENoaWxkLnN0eWxlLnBhZGRpbmcgPSAiNXB4IDEwcHgiOw0KDQogICAgLy8gQ3JlYXRlIFAgVEQgKFBsYXlsaXN0IE5hbWUpDQogICAgdmFyIG5ld1REID0gbmV3IE9iamVjdCgpOw0KICAgIG5ld1REWyJfZWxlbWVudCJdID0gIlAiOw0KICAgIG5ld1REWyJfdGV4dCJdICAgID0gaXRlbVsiX2ZpbGUubTN1Lm5hbWUiXTsNCiAgICBuZXdURFsiY2xhc3MiXSAgICAgPSBpdGVtWyJ0YWJsZUVsbGlwc2lzIl07DQogICAgDQogICAgY3JlYXRlTmV3VEQobmV3VEQsIHRyKTsNCiAgICB0ci5sYXN0Q2hpbGQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IG1hcHBpbmdEZXRhaWwoIicgKyBpdGVtWyJ4LWVwZyJdICsgJyIpOycpDQogICAgDQogICAgLy8gQ3JlYXRlIFAgVEQgKEdyb3VwIFRpdGxlKQ0KICAgIHZhciBuZXdURCA9IG5ldyBPYmplY3QoKTsNCiAgICBuZXdURFsiX2VsZW1lbnQiXSA9ICJQIjsNCiAgICBuZXdURFsiX3RleHQiXSAgICA9IGl0ZW1bIngtZ3JvdXAtdGl0bGUiXTsNCiAgICBuZXdURFsiY2xhc3MiXSAgICAgPSBpdGVtWyJ0YWJsZUVsbGlwc2lzIl07DQogICAgDQogICAgY3JlYXRlTmV3VEQobmV3VEQsIHRyKTsNCiAgICB0ci5sYXN0Q2hpbGQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IG1hcHBpbmdEZXRhaWwoIicgKyBpdGVtWyJ4LWVwZyJdICsgJyIpOycpDQoNCiAgICANCiAgICAvLyBDcmVhdGUgUCBURCAoWE1MVFYgZmlsZSkNCiAgICB2YXIgbmV3VEQgPSBuZXcgT2JqZWN0KCk7DQogICAgbmV3VERbIl9lbGVtZW50Il0gICAgICAgPSAiUCI7DQogICAgbmV3VERbImNsYXNzIl0gICAgPSAidGFibGVFbGxpcHNpcyI7DQogICAgbmV3VERbIl90ZXh0Il0gPSAiLSINCg0KICAgIGlmIChhbGxYbWx0dkZpbGVzLmluZGV4T2YoaXRlbVsieC14bWx0di1maWxlIl0pICE9IC0xKSB7DQogICAgICB2YXIgeFhtbHR2RmlsZSA9IGl0ZW1bIngteG1sdHYtZmlsZSJdOw0KICAgICAgc3dpdGNoKHhYbWx0dkZpbGUpIHsNCiAgICAgICAgY2FzZSAiLSI6ICAgICAgICAgICBuZXdURFsiX3RleHQiXSAgPSB4WG1sdHZGaWxlOyBicmVhazsNCiAgICAgICAgY2FzZSAieFRlVmUgRHVtbXkiOiBuZXdURFsiX3RleHQiXSAgPSB4WG1sdHZGaWxlOyBicmVhazsNCiAgICAgICAgZGVmYXVsdDogICAgICAgICAgICBuZXdURFsiX3RleHQiXSAgPSBnZXRWYWx1ZUZyb21Qcm92aWRlckZpbGUoeFhtbHR2RmlsZSwgInhtbHR2IiwgIm5hbWUiKTsgYnJlYWs7DQogICAgICAgIA0KICAgICAgfQ0KICAgICAgLy9jb25zb2xlLmxvZyhuZXdURCk7DQoNCiAgICAgIC8vbmV3VERbIl90ZXh0Il0gICAgPSBpdGVtWyJ4LXhtbHR2LWZpbGUiXTsNCiAgICB9IGVsc2Ugew0KICAgICAgLy9uZXdURFsiX3RleHQiXSA9ICItIg0KICAgIH0NCiAgICBjcmVhdGVOZXdURChuZXdURCwgdHIpOw0KICAgIHRyLmxhc3RDaGlsZC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogbWFwcGluZ0RldGFpbCgiJyArIGl0ZW1bIngtZXBnIl0gKyAnIik7JykNCg0KICAgIC8vIENyZWF0ciBQIFREIChYTUxUViBjaGFubmVsIElEKQ0KICAgIG5ld1REWyJfZWxlbWVudCJdID0gIlAiOw0KICAgIG5ld1REWyJjbGFzcyJdICAgID0gInRhYmxlRWxsaXBzaXMiOw0KDQogICAgaWYgKGl0ZW1bIngtbWFwcGluZyJdICE9IHVuZGVmaW5lZCkgew0KICAgICAgbmV3VERbIl90ZXh0Il0gICAgPSBpdGVtWyJ4LW1hcHBpbmciXTsNCiAgICB9DQogICAgDQogICAgY3JlYXRlTmV3VEQobmV3VEQsIHRyKTsNCiAgICB0ci5sYXN0Q2hpbGQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IG1hcHBpbmdEZXRhaWwoIicgKyBpdGVtWyJ4LWVwZyJdICsgJyIpOycpDQoNCg0KICAgIHZhciB4WG1sdHZGaWxlICA9IGl0ZW1bIngteG1sdHYtZmlsZSJdOw0KICAgIHZhciB4TWFwcGluZyAgICA9IGl0ZW1bIngtbWFwcGluZyJdOw0KICAgIHZhciB0dmdJRCAgICAgICA9IGl0ZW1bInR2Zy1pZCJdOw0KICAgIA0KICAgIC8vY29uc29sZS5sb2coaXRlbVsieC1lcGciXSk7DQogICAgLy9jb25zb2xlLmxvZyhpdGVtKTsNCg0KICAgIGlmIChpdGVtWyJ4LWFjdGl2ZSJdID09IHRydWUpIHsNCiAgICAgIHRyLmNsYXNzTmFtZSA9ICJhY3RpdmVFUEciOw0KICAgIH0gZWxzZSB7DQogICAgICB0ci5jbGFzc05hbWUgPSAibm90QWN0aXZlRVBHIjsNCiAgICB9DQogICAgDQogIH0NCg0KICBzb3J0VGFibGUoMSk7DQoNCiAgc2V0VGltZW91dChmdW5jdGlvbigpeyANCiAgICBzaG93TG9hZGluZ1NjcmVlbihmYWxzZSk7DQogIH0sIDUpOw0KfQ0KDQpmdW5jdGlvbiBzZWFyY2hJbk1hcHBpbmcoZWxtKSB7DQoNCiAgdmFyIHNlYXJjaCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzZWFyY2hNYXBwaW5nIikudmFsdWU7DQogIHZhciB2YWx1ZXMgPSBnZXRPYmpLZXlzKHNlYXJjaE9iaikNCiAgDQogIGZvciAodmFyIGkgPSB2YWx1ZXMubGVuZ3RoIC0gMTsgaSA+PSAwOyBpLS0pIHsNCiAgICB2YXIgaWQgPSBzZWFyY2hPYmpbdmFsdWVzW2ldXTsNCiAgICB2YXIgYm9vbCA9IHZhbHVlc1tpXS50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKHNlYXJjaC50b0xvd2VyQ2FzZSgpKTsNCiAgICBzd2l0Y2goYm9vbCkgew0KICAgICAgY2FzZSB0cnVlOiAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpLnN0eWxlLmRpc3BsYXkgPSAiIjsgYnJlYWs7DQogICAgICBjYXNlIGZhbHNlOiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkuc3R5bGUuZGlzcGxheSA9ICJub25lIjsgYnJlYWs7DQogICAgfQ0KICB9DQoNCn0NCg0KZnVuY3Rpb24gbWFwcGluZ0RldGFpbCh4ZXBnKSB7DQogIA0KICBidWxrSURzICAgPSBuZXcgQXJyYXkoKTsNCiAgdmFyIGFjdGl2ZUVsZW1lbnQgPSBkb2N1bWVudC5hY3RpdmVFbGVtZW50Ow0KICAvLyBJZiBpbnB1dCBpZCwgcmV0dXJuDQogIGlmIChhY3RpdmVFbGVtZW50LnRhZ05hbWUgPT0gIklOUFVUIikgew0KICAgIHJldHVybg0KICB9DQoNCiAgaWYgKGJ1bGsgPT0gdHJ1ZSkgew0KICAgIHZhciBlbG0gPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCJidWxrIik7DQogICAgZm9yICh2YXIgaSA9IDE7IGkgPCBlbG0ubGVuZ3RoOyBpKyspIHsNCiAgICAgIGlmIChlbG1baV0uY2hlY2tlZCA9PSB0cnVlKSB7DQogICAgICAgIHZhciBpZCA9IGVsbVtpXS5wYXJlbnRFbGVtZW50LnBhcmVudEVsZW1lbnQuaWQ7DQogICAgICAgIGJ1bGtJRHMucHVzaChpZCkNCiAgICAgIH0NCiAgICAgIA0KICAgIH0NCg0KICAgIGlmIChidWxrSURzLmxlbmd0aCA9PSAwKSB7DQogICAgICBzaG93RWxlbWVudCgncG9wdXAnLCBmYWxzZSkNCiAgICAgIGFsZXJ0KCJObyBjaGFubmVscyBzZWxlY3RlZCBmb3IgZWRpdGluZyIpDQogICAgICByZXR1cm4NCiAgICB9DQoNCiAgICB4ZXBnID0gYnVsa0lEc1swXQ0KICB9DQoNCg0KICBjcmVhdGVTZWFyY2hPYmooKTsNCiAgDQogIHNob3dQb3BVcEVsZW1lbnQoJ21hcHBpbmctZGV0YWlsJyk7DQoNCiAgdmFyIHRoaXNDaGFubmVsID0geEVQR1siZXBnTWFwcGluZyJdW3hlcGddOw0KICAvL2NvbnNvbGUubG9nKHRoaXNDaGFubmVsKTsNCiAgdmFyIHhYbWx0dkZpbGUgID0gdGhpc0NoYW5uZWxbIngteG1sdHYtZmlsZSJdOw0KICB2YXIgeE1hcHBpbmcgICAgPSB0aGlzQ2hhbm5lbFsieC1tYXBwaW5nIl07DQogIHZhciB4Q2F0ZWdvcnkgICA9IHRoaXNDaGFubmVsWyJ4LWNhdGVnb3J5Il07DQoNCiAgaWYgKHhYbWx0dkZpbGUgPT0gdW5kZWZpbmVkKSB7DQogICAgdGhpc0NoYW5uZWxbIngteG1sdHYtZmlsZSJdID0gIi0iOw0KICAgIHhYbWx0dkZpbGUgPSAiLSI7DQogIH0NCg0KICBpZiAoeE1hcHBpbmcgPT0gdW5kZWZpbmVkKSB7DQogICAgdGhpc0NoYW5uZWxbIngtbWFwcGluZyJdID0gIi0iOw0KICAgIHhNYXBwaW5nID0gIi0iOw0KICB9DQoNCiAgLyoNCiAgY29uc29sZS5sb2coIklEOiIsIHhlcGcpOw0KICBjb25zb2xlLmxvZygiWE1MVFYgRmlsZToiLCB4WG1sdHZGaWxlKTsNCiAgY29uc29sZS5sb2coIk1hcHBpbmc6IiwgeE1hcHBpbmcpOw0KICAqLw0KDQogIHZhciBrZXlzID0gZ2V0T2JqS2V5cyh0aGlzQ2hhbm5lbCk7DQogIGZvciAodmFyIGkgPSAwOyBpIDwga2V5cy5sZW5ndGg7IGkrKykgew0KICAgIGlmKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGtleXNbaV0pKXsNCiAgICAgIHZhciB0ZCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGtleXNbaV0pDQogICAgfSBlbHNlIHsNCiAgICAgIHZhciB0ZCA9IHVuZGVmaW5lZDsNCiAgICB9DQogICAgDQogICAgdmFyIG5ld0l0ZW0gPSBuZXcgT2JqZWN0KCk7DQogICAgdmFyIHZhbHVlcywgdGV4dCA9IG5ldyBBcnJheSgpOw0KICAgIHN3aXRjaChrZXlzW2ldKSB7DQogICAgICBjYXNlICJ4LXhtbHR2LWZpbGUiOiANCiAgICAgICAgdmFyIGZpbGVJRHMgPSBnZXRPYmpLZXlzKHhFUEdbInhtbHR2TWFwIl0pOw0KICAgICAgICB2YXIgdmFsdWUgPSBuZXcgQXJyYXkoIi0iKTsNCiAgICAgICAgdmFyIHRleHQgID0gbmV3IEFycmF5KCItIik7DQoNCiAgICAgICAgZm9yICh2YXIgaiA9IGZpbGVJRHMubGVuZ3RoIC0gMTsgaiA+PSAwOyBqLS0pIHsNCiAgICAgICAgICBpZiAoZmlsZUlEc1tqXSAhPSAieFRlVmUgRHVtbXkiKSB7DQogICAgICAgICAgICB2YWx1ZS5wdXNoKGdldFZhbHVlRnJvbVByb3ZpZGVyRmlsZShmaWxlSURzW2pdLCAieG1sdHYiLCAiZmlsZS54dGV2ZSIpKQ0KICAgICAgICAgICAgdGV4dC5wdXNoKGdldFZhbHVlRnJvbVByb3ZpZGVyRmlsZShmaWxlSURzW2pdLCAieG1sdHYiLCAibmFtZSIpKQ0KICAgICAgICAgIH0gZWxzZSB7DQogICAgICAgICAgICB2YWx1ZS5wdXNoKGZpbGVJRHNbal0pDQogICAgICAgICAgICB0ZXh0LnB1c2goZmlsZUlEc1tqXSkNCiAgICAgICAgICB9DQogICAgICAgICAgDQogICAgICAgIH0NCiAgICAgICAgDQogICAgICAgIG5ld0l0ZW1bIl9lbGVtZW50Il0gICAgICAgPSAiU0VMRUNUIjsNCiAgICAgICAgbmV3SXRlbVsiX29wdGlvblZhbHVlcyJdICA9IHZhbHVlOw0KICAgICAgICBuZXdJdGVtWyJfb3B0aW9uVGV4dCJdICAgID0gdGV4dA0KICAgICAgICBuZXdJdGVtWyJ2YWx1ZSJdICAgICAgICAgID0geFhtbHR2RmlsZTsNCiAgICAgICAgbmV3SXRlbVsib25jaGFuZ2UiXSAgICAgICA9ICdqYXZhc2NyaXB0OiBjaGFuZ2VYbWx0dkZpbGUoIicgKyB4ZXBnICsgJyIsdGhpcyk7JzsNCg0KICAgICAgICBicmVhazsNCg0KICAgICAgY2FzZSAieC1tYXBwaW5nIjogDQoNCiAgICAgICAgdmFyIHZhbHVlcyA9IGdldE9iaktleXMoeEVQR1sieG1sdHZNYXAiXVt4WG1sdHZGaWxlXSk7DQoNCiAgICAgICAgZm9yICh2YXIgaiA9IDA7IGogPCB2YWx1ZXMubGVuZ3RoOyBqKyspIHsNCiAgICAgICAgICANCiAgICAgICAgICBpZiAoeEVQR1sieG1sdHZNYXAiXVt4WG1sdHZGaWxlXVt2YWx1ZXNbal1dLmhhc093blByb3BlcnR5KCdkaXNwbGF5LW5hbWUnKSA9PSB0cnVlKSB7DQogICAgICAgICAgICB2YXIgZGlzcGxheU5hbWUgPSB4RVBHWyJ4bWx0dk1hcCJdW3hYbWx0dkZpbGVdW3ZhbHVlc1tqXV1bImRpc3BsYXktbmFtZSJdOw0KICAgICAgICAgIH0gZWxzZSB7DQogICAgICAgICAgICB2YXIgZGlzcGxheU5hbWUgPSAiLSINCiAgICAgICAgICB9DQogICAgICAgICAgDQogICAgICAgICAgLy90ZXh0W2pdID0gdmFsdWVzW2pdICsgIiAoIiArIGRpc3BsYXlOYW1lICsgIikiOw0KICAgICAgICAgIHRleHRbal0gPSBkaXNwbGF5TmFtZSArICIgKCIgKyB2YWx1ZXNbal0gICsgIikiOw0KICAgICAgICB9DQoNCiAgICAgICAgdGV4dC51bnNoaWZ0KCItIik7DQogICAgICAgIHZhbHVlcy51bnNoaWZ0KCItIik7DQogICAgICAgIG5ld0l0ZW1bIl9lbGVtZW50Il0gICAgICAgPSAiU0VMRUNUIjsNCiAgICAgICAgbmV3SXRlbVsiX29wdGlvblZhbHVlcyJdICA9IHZhbHVlczsNCiAgICAgICAgbmV3SXRlbVsiX29wdGlvblRleHQiXSAgICA9IHRleHQNCiAgICAgICAgbmV3SXRlbVsidmFsdWUiXSAgICAgICAgICA9IHhNYXBwaW5nOw0KICAgICAgICBuZXdJdGVtWyJvbmNoYW5nZSJdICAgICAgID0gJ2phdmFzY3JpcHQ6IG1hcHBpbmdDaGFubmVsKCInICsgeGVwZyArICciLHRoaXMpOyc7DQogICAgICAgIGJyZWFrOw0KDQogICAgICBjYXNlICJ4LWNhdGVnb3J5IjoNCiAgICAgICAgLy92YXIgdmFsdWVzID0gcGxleENhdGVnb3JpZXNWYWx1ZXMNCiAgICAgICAgbmV3SXRlbVsiX2VsZW1lbnQiXSAgICAgICA9ICJTRUxFQ1QiOw0KICAgICAgICBuZXdJdGVtWyJfb3B0aW9uVmFsdWVzIl0gID0gcGxleENhdGVnb3JpZXNWYWx1ZXM7DQogICAgICAgIG5ld0l0ZW1bIl9vcHRpb25UZXh0Il0gICAgPSBwbGV4Q2F0ZWdvcmllc09wdGlvbjsNCiAgICAgICAgbmV3SXRlbVsidmFsdWUiXSAgICAgICAgICA9IHhDYXRlZ29yeTsNCiAgICAgICAgbmV3SXRlbVsib25jaGFuZ2UiXSAgICAgICA9ICdzYXZlQ2F0ZWdvcnkoIicgKyB4ZXBnICsgJyIpJzsNCiAgICAgICAgYnJlYWs7DQoNCiAgICAgIGNhc2UgInR2Zy1sb2dvIjoNCiAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNoYW5uZWwtbG9nbyIpLnNldEF0dHJpYnV0ZSgic3JjIiwgdGhpc0NoYW5uZWxbInR2Zy1sb2dvIl0pOw0KICAgICAgICBuZXdJdGVtWyJfZWxlbWVudCJdICAgICAgID0gIklOUFVUIjsNCiAgICAgICAgbmV3SXRlbVsidHlwZSJdICAgICAgICAgICA9ICJ0ZXh0IjsNCiAgICAgICAgbmV3SXRlbVsidmFsdWUiXSAgICAgICAgICA9IHRoaXNDaGFubmVsWyJ0dmctbG9nbyJdOw0KICAgICAgICBuZXdJdGVtWyJvbmZvY3Vzb3V0Il0gICAgID0gJ3NhdmVDaGFubmVsTG9nbygiJyArIHhlcGcgKyAnIiknOw0KICAgICAgICBuZXdJdGVtWyJwbGFjZWhvbGRlciJdICAgID0gJ0ltYWdlIFVSTCc7DQogICAgICAgIGJyZWFrOw0KDQogICAgICBjYXNlICJ4LXVwZGF0ZS1jaGFubmVsLWljb24iOg0KICAgICAgICBuZXdJdGVtWyJfZWxlbWVudCJdICAgICAgID0gIklOUFVUIjsNCiAgICAgICAgbmV3SXRlbVsidHlwZSJdICAgICAgICAgICA9ICJjaGVja2JveCI7DQogICAgICAgIHN3aXRjaChKU09OLnBhcnNlKHRoaXNDaGFubmVsWyJ4LXVwZGF0ZS1jaGFubmVsLWljb24iXSkpIHsNCiAgICAgICAgICBjYXNlIHRydWU6IG5ld0l0ZW1bImNoZWNrZWQiXSAgICAgICAgPSB0aGlzQ2hhbm5lbFsieC11cGRhdGUtY2hhbm5lbC1pY29uIl07DQogICAgICAgICAgICBicmVhaw0KICAgICAgICB9DQogICAgICAgIG5ld0l0ZW1bIm9uY2hhbmdlIl0gICAgID0gJ3NhdmVDaGFubmVsSWNvblVwZGF0ZSgiJyArIHhlcGcgKyAnIiknOw0KICAgICAgICBicmVhazsNCg0KICAgICAgY2FzZSAieC1uYW1lIjoNCiAgICAgICAgbmV3SXRlbVsiX2VsZW1lbnQiXSAgICAgICA9ICJJTlBVVCI7DQogICAgICAgIG5ld0l0ZW1bInR5cGUiXSAgICAgICAgICAgPSAidGV4dCI7DQogICAgICAgIG5ld0l0ZW1bInZhbHVlIl0gICAgICAgICAgPSB0aGlzQ2hhbm5lbFsieC1uYW1lIl07DQogICAgICAgIG5ld0l0ZW1bIm9uZm9jdXNvdXQiXSAgICAgPSAnc2F2ZUNoYW5uZWxOYW1lKCInICsgeGVwZyArICciKSc7DQogICAgICAgIG5ld0l0ZW1bInBsYWNlaG9sZGVyIl0gICAgPSAnQ2hhbm5lbCBOYW1lJzsNCiAgICAgICAgYnJlYWs7DQoNCiAgICAgIGNhc2UgIngtdXBkYXRlLWNoYW5uZWwtbmFtZSI6DQogICAgICAgIGlmICh0aGlzQ2hhbm5lbC5oYXNPd25Qcm9wZXJ0eSgiX3V1aWQua2V5IikgPT0gdHJ1ZSkgew0KICAgICAgICAgIG5ld0l0ZW1bIl9lbGVtZW50Il0gICAgICAgPSAiSU5QVVQiOw0KICAgICAgICAgIG5ld0l0ZW1bInR5cGUiXSAgICAgICAgICAgPSAiY2hlY2tib3giOw0KICAgICAgICAgIHN3aXRjaChKU09OLnBhcnNlKHRoaXNDaGFubmVsWyJ4LXVwZGF0ZS1jaGFubmVsLW5hbWUiXSkpIHsNCiAgICAgICAgICAgIGNhc2UgdHJ1ZTogbmV3SXRlbVsiY2hlY2tlZCJdICAgICAgICA9IHRoaXNDaGFubmVsWyJ4LXVwZGF0ZS1jaGFubmVsLW5hbWUiXTsNCiAgICAgICAgICAgICAgYnJlYWsNCiAgICAgICAgICB9DQogICAgICAgICAgbmV3SXRlbVsib25jaGFuZ2UiXSAgICAgPSAnc2F2ZUNoYW5uZWxOYW1lVXBkYXRlKCInICsgeGVwZyArICciKSc7DQogICAgICAgICAgc2hvd0VsZW1lbnQoInN0cmVhbUhhc0NVSUQiLCB0cnVlKQ0KDQogICAgICAgICAgYnJlYWs7DQogICAgICAgIH0gZWxzZSB7DQogICAgICAgICAgLy9zdHJlYW1IYXNDVUlEDQogICAgICAgICAgc2hvd0VsZW1lbnQoInN0cmVhbUhhc0NVSUQiLCBmYWxzZSkNCiAgICAgICAgICBicmVhazsNCiAgICAgICAgfQ0KICAgICAgICANCiAgICAgIGNhc2UgIngtYWN0aXZlIjoNCiAgICAgICAgbmV3SXRlbVsiX2VsZW1lbnQiXSAgICAgICA9ICJJTlBVVCI7DQogICAgICAgIG5ld0l0ZW1bInR5cGUiXSAgICAgICAgICAgPSAiY2hlY2tib3giOw0KICAgICAgICBzd2l0Y2goSlNPTi5wYXJzZSh0aGlzQ2hhbm5lbFsieC1hY3RpdmUiXSkpIHsNCiAgICAgICAgICBjYXNlIHRydWU6IG5ld0l0ZW1bImNoZWNrZWQiXSAgICAgICAgPSB0aGlzQ2hhbm5lbFsieC1hY3RpdmUiXTsNCiAgICAgICAgICAgIGJyZWFrDQogICAgICAgIH0NCiAgICAgICAgbmV3SXRlbVsib25jaGFuZ2UiXSAgICAgPSAnc2F2ZUNoYW5uZWxTdGF0dXMoIicgKyB4ZXBnICsgJyIpJzsNCiAgICAgICAgYnJlYWs7DQoNCiAgICAgIGNhc2UgIngtZ3JvdXAtdGl0bGUiOg0KICAgICAgICBuZXdJdGVtWyJfZWxlbWVudCJdICAgICAgID0gIklOUFVUIjsNCiAgICAgICAgbmV3SXRlbVsidHlwZSJdICAgICAgICAgICA9ICJ0ZXh0IjsNCiAgICAgICAgbmV3SXRlbVsidmFsdWUiXSAgICAgICAgICA9IHRoaXNDaGFubmVsWyJ4LWdyb3VwLXRpdGxlIl07DQogICAgICAgIG5ld0l0ZW1bIm9uZm9jdXNvdXQiXSAgICAgPSAnc2F2ZUdyb3VwVGl0bGUoIicgKyB4ZXBnICsgJyIpJzsNCiAgICAgICAgbmV3SXRlbVsicGxhY2Vob2xkZXIiXSAgICA9ICdHcm91cCBUaXRsZSc7DQogICAgICAgIGJyZWFrOw0KDQogICAgICBkZWZhdWx0Og0KICAgICAgICBuZXdJdGVtWyJfZWxlbWVudCJdICAgICAgID0gIlAiOw0KICAgICAgICBuZXdJdGVtWyJfdGV4dCJdICAgICAgICAgID0gdGhpc0NoYW5uZWxba2V5c1tpXV07DQogICAgICAgIGJyZWFrOw0KICAgICAgDQogICAgfQ0KICAgIA0KICAgIGlmICh0ZCAhPSB1bmRlZmluZWQpIHsNCiAgICAgIHRkLmlubmVySFRNTCA9ICIiOw0KICAgICAgdmFyIGVsZW1lbnQgPSBjcmVhdGVOZXdFbGVtZW50KG5ld0l0ZW0pDQogICAgICAvL2NvbnNvbGUubG9nKGVsZW1lbnQpOw0KICAgICAgdGQuYXBwZW5kQ2hpbGQoZWxlbWVudCk7DQogICAgfQ0KDQogIH0NCg0KICBpZiAoYnVsayA9PSB0cnVlKSB7DQoNCiAgICB2YXIgZWxtID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSgibm9CdWxrIik7DQogICAgZm9yICh2YXIgaSA9IDA7IGkgPCBlbG0ubGVuZ3RoOyBpKyspIHsNCiAgICAgIGVsbVtpXS5sYXN0Q2hpbGQuc2V0QXR0cmlidXRlKCJyZWFkb25seSIsIHRydWUpDQogICAgICBlbG1baV0ubGFzdENoaWxkLnN0eWxlLmJvcmRlckNvbG9yID0gInJlZCI7DQogICAgfQ0KDQogICAgeGVwZyA9IGJ1bGtJRHNbMF0NCiAgfQ0KDQogIHNvcnRTZWxlY3QoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIngteG1sdHYtZmlsZSIpLmxhc3RDaGlsZCk7DQogIHNvcnRTZWxlY3QoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIngtbWFwcGluZyIpLmxhc3RDaGlsZCk7DQogIA0KfQ0KDQpmdW5jdGlvbiBzb3J0U2VsZWN0KGVsZW0pIHsNCg0KICB2YXIgdG1wQXJ5ID0gW107DQogIC8vIFJldGFpbiBzZWxlY3RlZCB2YWx1ZSBiZWZvcmUgc29ydGluZw0KICB2YXIgc2VsZWN0ZWRWYWx1ZSA9IGVsZW1bZWxlbS5zZWxlY3RlZEluZGV4XS52YWx1ZTsNCiAgLy8gR3JhYiBhbGwgZXhpc3RpbmcgZW50cmllcw0KICBmb3IgKHZhciBpPTA7aTxlbGVtLm9wdGlvbnMubGVuZ3RoO2krKykgdG1wQXJ5LnB1c2goZWxlbS5vcHRpb25zW2ldKTsNCiAgLy8gU29ydCBhcnJheSBieSB0ZXh0IGF0dHJpYnV0ZQ0KICB0bXBBcnkuc29ydChmdW5jdGlvbihhLGIpeyByZXR1cm4gKGEudGV4dCA8IGIudGV4dCk/LTE6MTsgfSk7DQogIC8vIFdpcGUgb3V0IGV4aXN0aW5nIGVsZW1lbnRzDQogIHdoaWxlIChlbGVtLm9wdGlvbnMubGVuZ3RoID4gMCkgZWxlbS5vcHRpb25zWzBdID0gbnVsbDsNCiAgLy8gUmVzdG9yZSBzb3J0ZWQgZWxlbWVudHMNCiAgdmFyIG5ld1NlbGVjdGVkSW5kZXggPSAwOw0KICBmb3IgKHZhciBpPTA7aTx0bXBBcnkubGVuZ3RoO2krKykgew0KICAgICAgZWxlbS5vcHRpb25zW2ldID0gdG1wQXJ5W2ldOw0KICAgICAgaWYoZWxlbS5vcHRpb25zW2ldLnZhbHVlID09IHNlbGVjdGVkVmFsdWUpIG5ld1NlbGVjdGVkSW5kZXggPSBpOw0KICB9DQogIGVsZW0uc2VsZWN0ZWRJbmRleCA9IG5ld1NlbGVjdGVkSW5kZXg7IC8vIFNldCBuZXcgc2VsZWN0ZWQgaW5kZXggYWZ0ZXIgc29ydGluZw0KICByZXR1cm47DQp9DQoNCg0KZnVuY3Rpb24gc3dpdGNoQ2hhbm5lbFN0YXR1cyh4ZXBnKSB7DQogIHZhciB0aGlzQ2hhbm5lbCA9IHhFUEdbImVwZ01hcHBpbmciXVt4ZXBnXTsNCiAgdmFyIHhYbWx0dkZpbGUgPSB0aGlzQ2hhbm5lbFsieC14bWx0di1maWxlIl07DQoNCiAgaWYgKHhFUEdbInhtbHR2TWFwIl0uaGFzT3duUHJvcGVydHkoeFhtbHR2RmlsZSkgPT0gdHJ1ZSkgew0KICAgIGlmICh0aGlzQ2hhbm5lbFsieC1tYXBwaW5nIl0gIT0gIi0iICYmIHRoaXNDaGFubmVsWyJ4LW1hcHBpbmciXSAhPSB1bmRlZmluZWQpIHsNCiAgICAgIHRoaXNDaGFubmVsWyJ4LWFjdGl2ZSJdID0gIXRoaXNDaGFubmVsWyJ4LWFjdGl2ZSJdOw0KICAgICAgdmFyIHRyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoeGVwZyk7DQogICAgICBzd2l0Y2godGhpc0NoYW5uZWxbIngtYWN0aXZlIl0pIHsNCiAgICAgICAgY2FzZSB0cnVlOiB0ci5jbGFzc05hbWUgPSAiYWN0aXZlRVBHIjsgYnJlYWs7DQogICAgICAgIGNhc2UgZmFsc2U6IHRyLmNsYXNzTmFtZSA9ICJub3RBY3RpdmVFUEciOyBicmVhazsNCiAgICAgIH0NCiAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJsb2dJbmZvIikuY2xhc3NOYW1lID0gIm5vdFZpc2libGUiOw0KDQogICAgfSBlbHNlIHsNCiAgICAgIHZhciBlcnIgPSAiWE1MVFYgQ2hhbm5lbCBpcyBub3Qgc2VsZWN0ZWQiDQogICAgICBhbGVydChlcnIpDQogICAgICAvKg0KICAgICAgdmFyIG5ld0Vycm9yID0gbmV3IE9iamVjdCgpOw0KICAgICAgbmV3RXJyb3JbImVyciJdID0gIkNoYW5uZWwgaXMgbm90IHNlbGVjdGVkIjsNCiAgICAgIGNoZWNrRXJyKG5ld0Vycm9yKTsNCiAgICAgICovDQogICAgfQ0KDQogIH0gZWxzZSB7DQogICAgdmFyIGVyciA9ICJYTUxUViBGaWxlIGlzIG5vdCBzZWxlY3RlZCINCiAgICBhbGVydChlcnIpDQogICAgLyoNCiAgICB2YXIgbmV3RXJyb3IgPSBuZXcgT2JqZWN0KCk7DQogICAgbmV3RXJyb3JbImVyciJdID0gIlhNTFRWIGZpbGUgaXMgbm90IHNlbGVjdGVkIjsNCiAgICBjaGVja0VycihuZXdFcnJvcik7DQogICAgKi8NCiAgfQ0KDQogIHNlYXJjaEluTWFwcGluZygpOw0KDQp9DQoNCmZ1bmN0aW9uIGNyZWF0ZU5ld0VsZW1lbnQobmV3SXRlbSkgew0KDQogIHZhciBlbGVtZW50ID0gY3JlYXRlRWxlbWVudChuZXdJdGVtKTsNCiAgDQogIHN3aXRjaChuZXdJdGVtWyJfZWxlbWVudCJdKSB7DQogICAgY2FzZSAiU0VMRUNUIjoNCiAgICAgIC8vZWxlbWVudFtdDQogICAgICB2YXIgdmFsdWVzICA9IG5ld0l0ZW1bIl9vcHRpb25WYWx1ZXMiXTsNCiAgICAgIHZhciB0ZXh0ICAgID0gbmV3SXRlbVsiX29wdGlvblRleHQiXTsNCg0KICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB2YWx1ZXMubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgLy9jb25zb2xlLmxvZyhpdGVtKTsNCiAgICAgICAgdmFyIG5ld0VudHJ5ID0gbmV3IE9iamVjdDsNCiAgICAgICAgbmV3RW50cnlbIl9lbGVtZW50Il0gID0gIk9QVElPTiI7DQogICAgICAgIG5ld0VudHJ5WyJfdGV4dCJdICAgICA9IHRleHRbaV07DQogICAgICAgIG5ld0VudHJ5WyJ2YWx1ZSJdICAgICA9IHZhbHVlc1tpXTsNCiAgICAgICAgZWxlbWVudC5hcHBlbmRDaGlsZChjcmVhdGVFbGVtZW50KG5ld0VudHJ5KSk7DQogICAgICB9DQogICAgICBlbGVtZW50LnZhbHVlID0gbmV3SXRlbVsidmFsdWUiXTsNCiAgICAgIGJyZWFrOw0KICAgIA0KICAgIGRlZmF1bHQ6IA0KICAgICAgDQogICAgICAvL2VsZW1lbnQuYXBwZW5kQ2hpbGQoY3JlYXRlRWxlbWVudChuZXdJdGVtKSk7DQogICAgICBicmVhazsNCiAgfQ0KICANCiAgcmV0dXJuIGVsZW1lbnQ7DQp9DQoNCmZ1bmN0aW9uIHNhdmVCdWxrKGtleSwgdmFsdWUpIHsNCiAgZm9yICh2YXIgaSA9IDA7IGkgPCBidWxrSURzLmxlbmd0aDsgaSsrKSB7DQogICAgdmFyIGlkID0gYnVsa0lEc1tpXQ0KICAgIHZhciB0aGlzQ2hhbm5lbCA9IHhFUEdbImVwZ01hcHBpbmciXVtpZF07DQogICAgdGhpc0NoYW5uZWxba2V5XSA9IHZhbHVlOw0KDQogICAgc3dpdGNoKGtleSkgew0KICAgICAgY2FzZSAidHZnLWxvZ28iOiAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5jaGlsZE5vZGVzWzJdLmxhc3RDaGlsZC5zZXRBdHRyaWJ1dGUoInNyYyIsIHZhbHVlKTsgYnJlYWs7DQogICAgICANCiAgICAgIGNhc2UgIngtY2F0ZWdvcnkiOiAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkuY2hpbGROb2Rlc1szXS5sYXN0Q2hpbGQuY2xhc3NOYW1lID0gdmFsdWU7IGJyZWFrOw0KDQogICAgICBjYXNlICJ4LXhtbHR2LWZpbGUiOg0KICAgICAgICB2YXIgZWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5jaGlsZE5vZGVzWzZdLmxhc3RDaGlsZDsNCiAgICAgICAgc3dpdGNoKHZhbHVlKSB7DQogICAgICAgICAgY2FzZSAiLSI6ICAgICAgICAgICBlbGVtZW50LmlubmVySFRNTCA9IHZhbHVlOyBicmVhazsNCiAgICAgICAgICBjYXNlICJ4VGVWZSBEdW1teSI6IGVsZW1lbnQuaW5uZXJIVE1MID0gdmFsdWU7IGJyZWFrOw0KICAgICAgICAgIGRlZmF1bHQ6ICAgICAgICAgICAgZWxlbWVudC5pbm5lckhUTUwgPSBnZXRWYWx1ZUZyb21Qcm92aWRlckZpbGUodmFsdWUsICJ4bWx0diIsICJuYW1lIik7IGJyZWFrOw0KICAgICAgICB9DQoNCg0KDQogICAgICAvL2RvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5jaGlsZE5vZGVzWzVdLmxhc3RDaGlsZC5pbm5lckhUTUwgPSB2YWx1ZS5yZXBsYWNlKC9eLipbXFxcL10vLCAnJyk7IGJyZWFrOw0KICAgICAgY2FzZSAieC1tYXBwaW5nIjogICANCiAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpLmNoaWxkTm9kZXNbN10ubGFzdENoaWxkLmlubmVySFRNTCA9IHZhbHVlOw0KICAgICAgICBpZiAodmFsdWUgPT0gIi0iKSB7DQogICAgICAgICAgdGhpc0NoYW5uZWxbIngtYWN0aXZlIl0gPSBmYWxzZTsNCiAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkuY2xhc3NOYW1lID0gIm5vdEFjdGl2ZUVQRyI7DQogICAgICAgIH0gZWxzZSB7DQogICAgICAgICAgdGhpc0NoYW5uZWxbIngtYWN0aXZlIl0gPSB0cnVlOw0KICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5jbGFzc05hbWUgPSAiYWN0aXZlRVBHIjsNCiAgICAgICAgfQ0KICAgICAgICBicmVhazsNCg0KICAgICAgY2FzZSAieC1ncm91cC10aXRsZSI6IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5jaGlsZE5vZGVzWzVdLmxhc3RDaGlsZC5pbm5lckhUTUwgPSB2YWx1ZTsgYnJlYWs7DQoNCiAgICAgIGNhc2UgIngtYWN0aXZlIjoNCiAgICAgICAgdmFyIHRyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpOw0KICAgICAgICANCiAgICAgICAgaWYgKHRoaXNDaGFubmVsLmhhc093blByb3BlcnR5KCJ4LXhtbHR2LWZpbGUiKSA9PSB0cnVlKSB7DQogICAgICAgICAgaWYgKHRoaXNDaGFubmVsWyJ4LW1hcHBpbmciXSAhPSAiLSIgJiYgdGhpc0NoYW5uZWxbIngtbWFwcGluZyJdICE9IHVuZGVmaW5lZCAmJiB0aGlzQ2hhbm5lbFsieC14bWx0di1maWxlIl0gIT0gIi0iICYmIHRoaXNDaGFubmVsWyJ4LXhtbHR2LWZpbGUiXSAhPSB1bmRlZmluZWQpIHsNCiAgICAgICAgICAgIHN3aXRjaCh0aGlzQ2hhbm5lbFsieC1hY3RpdmUiXSkgew0KICAgICAgICAgICAgICBjYXNlIHRydWU6IHRyLmNsYXNzTmFtZSA9ICJhY3RpdmVFUEciOyBicmVhazsNCiAgICAgICAgICAgICAgY2FzZSBmYWxzZTogdHIuY2xhc3NOYW1lID0gIm5vdEFjdGl2ZUVQRyI7IGJyZWFrOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgfQ0KICAgICAgICB9DQoNCiAgICB9DQoNCiAgICB1cGRhdGVDaGFubmVsTG9nbyhpZCkNCg0KICB9DQoNCn0NCg0KZnVuY3Rpb24gdXBkYXRlQ2hhbm5lbExvZ28oeGVwZykgew0KICB2YXIgdGhpc0NoYW5uZWwgPSB4RVBHWyJlcGdNYXBwaW5nIl1beGVwZ107DQogIGlmICh0aGlzQ2hhbm5lbFsieC11cGRhdGUtY2hhbm5lbC1pY29uIl0gPT0gdHJ1ZSkgew0KICAgIHZhciB4WG1sdHZGaWxlICA9IHRoaXNDaGFubmVsWyJ4LXhtbHR2LWZpbGUiXTsNCiAgICB2YXIgeE1hcHBpbmcgICAgPSB0aGlzQ2hhbm5lbFsieC1tYXBwaW5nIl07DQoNCiAgICBpZiAoeFhtbHR2RmlsZSAhPSAiLSIgJiYgeFhtbHR2RmlsZS5sZW5ndGggPiAwICYmIHhNYXBwaW5nICE9ICItIiAmJiB4TWFwcGluZy5sZW5ndGggPiAwKSB7DQogICAgICBpZiAoeEVQR1sieG1sdHZNYXAiXVt4WG1sdHZGaWxlXVt4TWFwcGluZ10uaGFzT3duUHJvcGVydHkoImljb24iKSkgew0KICAgICAgICB2YXIgbG9nb1VSTCA9IHhFUEdbInhtbHR2TWFwIl1beFhtbHR2RmlsZV1beE1hcHBpbmddWyJpY29uIl07DQogICAgICAgIHRoaXNDaGFubmVsWyJ0dmctbG9nbyJdID0gbG9nb1VSTDsNCiAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoeGVwZykuY2hpbGROb2Rlc1syXS5sYXN0Q2hpbGQuc2V0QXR0cmlidXRlKCJzcmMiLCBsb2dvVVJMKTsNCiAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNoYW5uZWwtbG9nbyIpLnNldEF0dHJpYnV0ZSgic3JjIiwgbG9nb1VSTCk7DQogICAgICB9IGVsc2Ugew0KICAgICAgICBhbGVydCgiTm8gbG9nbyBVUkwgaW4gdGhlIFhNTFRWIGZpbGUgYXZhaWxhYmxlIikNCiAgICAgIH0NCiAgICAgIA0KICAgIH0NCiAgICANCiAgICAvKg0KICAgIGlmICh4RVBHWyJ4bWx0dk1hcCJdW3hYbWx0dkZpbGVdW3hNYXBwaW5nXVsiaWNvbiJdICE9IHVuZGVmaW5lZCkgew0KDQogICAgICANCiAgICB9DQogICAgKi8NCiAgICANCiAgfQ0KfQ0KDQpmdW5jdGlvbiBzYXZlQ2hhbm5lbExvZ28oeGVwZykgew0KICBpZiAoYnVsayA9PSBmYWxzZSkgew0KICAgIHZhciB0aGlzQ2hhbm5lbCA9IHhFUEdbImVwZ01hcHBpbmciXVt4ZXBnXTsNCiAgICB0aGlzQ2hhbm5lbFsidHZnLWxvZ28iXSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0dmctbG9nbyIpLmxhc3RDaGlsZC52YWx1ZTsNCiAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCh4ZXBnKS5jaGlsZE5vZGVzWzJdLmxhc3RDaGlsZC5zZXRBdHRyaWJ1dGUoInNyYyIsIHRoaXNDaGFubmVsWyJ0dmctbG9nbyJdKTsNCiAgICBtYXBwaW5nRGV0YWlsKHhlcGcpOw0KICAgIHJldHVybg0KICB9DQoNCiAgaWYgKGJ1bGsgPT0gdHJ1ZSkgew0KICAgIHZhciBrZXkgICA9ICJ0dmctbG9nbyI7DQogICAgdmFyIHZhbHVlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInR2Zy1sb2dvIikubGFzdENoaWxkLnZhbHVlOw0KICAgIHNhdmVCdWxrKGtleSwgdmFsdWUpOw0KDQogICAgbWFwcGluZ0RldGFpbCh4ZXBnKTsNCiAgICByZXR1cm4NCiAgfQ0KfQ0KDQpmdW5jdGlvbiBzYXZlQ2hhbm5lbEljb25VcGRhdGUoeGVwZykgew0KDQogIHZhciBrZXkgICA9ICJ4LXVwZGF0ZS1jaGFubmVsLWljb24iOw0KICB2YXIgdmFsdWUgPSBKU09OLnBhcnNlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ4LXVwZGF0ZS1jaGFubmVsLWljb24iKS5sYXN0Q2hpbGQuY2hlY2tlZCk7DQogIGlmIChidWxrID09IGZhbHNlKSB7DQogICAgdmFyIHRoaXNDaGFubmVsID0geEVQR1siZXBnTWFwcGluZyJdW3hlcGddOw0KICAgIHRoaXNDaGFubmVsW2tleV0gPSB2YWx1ZQ0KICAgIHVwZGF0ZUNoYW5uZWxMb2dvKHhlcGcpDQogICAgDQogICAgbWFwcGluZ0RldGFpbCh4ZXBnKTsNCiAgICBzZWFyY2hJbk1hcHBpbmcoKTsNCiAgICByZXR1cm4NCiAgfQ0KDQogIGlmIChidWxrID09IHRydWUpIHsNCiAgICBzYXZlQnVsayhrZXksIHZhbHVlKTsNCiAgICBtYXBwaW5nRGV0YWlsKHhlcGcpOw0KICAgIHJldHVybg0KICB9DQogIA0KfQ0KDQpmdW5jdGlvbiBzYXZlQ2hhbm5lbE5hbWUoeGVwZykgew0KICBpZiAoYnVsayA9PSBmYWxzZSkgew0KICAgIHZhciB0aGlzQ2hhbm5lbCA9IHhFUEdbImVwZ01hcHBpbmciXVt4ZXBnXTsNCiAgICB0aGlzQ2hhbm5lbFsieC1uYW1lIl0gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgieC1uYW1lIikubGFzdENoaWxkLnZhbHVlOw0KICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHhlcGcpLmNoaWxkTm9kZXNbM10ubGFzdENoaWxkLmlubmVySFRNTCA9IHRoaXNDaGFubmVsWyJ4LW5hbWUiXTsNCiAgICBtYXBwaW5nRGV0YWlsKHhlcGcpOw0KICAgIHNlYXJjaEluTWFwcGluZygpOw0KICB9DQogIA0KfQ0KDQpmdW5jdGlvbiBzYXZlQ2hhbm5lbE5hbWVVcGRhdGUoeGVwZykgew0KICB2YXIga2V5ICAgPSAieC11cGRhdGUtY2hhbm5lbC1uYW1lIjsNCiAgdmFyIHZhbHVlID0gSlNPTi5wYXJzZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgieC11cGRhdGUtY2hhbm5lbC1uYW1lIikubGFzdENoaWxkLmNoZWNrZWQpOw0KDQogIGlmIChidWxrID09IGZhbHNlKSB7DQogICAgdmFyIHRoaXNDaGFubmVsID0geEVQR1siZXBnTWFwcGluZyJdW3hlcGddOw0KICAgIHRoaXNDaGFubmVsW2tleV0gPSB2YWx1ZQ0KICAgIG1hcHBpbmdEZXRhaWwoeGVwZyk7DQogICAgc2VhcmNoSW5NYXBwaW5nKCk7DQogICAgcmV0dXJuDQogIH0NCg0KICBpZiAoYnVsayA9PSB0cnVlKSB7DQogICAgc2F2ZUJ1bGsoa2V5LCB2YWx1ZSk7DQogICAgbWFwcGluZ0RldGFpbCh4ZXBnKTsNCiAgICByZXR1cm4NCiAgfQ0KDQp9DQoNCmZ1bmN0aW9uIHNhdmVDaGFubmVsU3RhdHVzKHhlcGcpIHsNCiAgdmFyIHRoaXNDaGFubmVsID0geEVQR1siZXBnTWFwcGluZyJdW3hlcGddOw0KICB2YXIgeFhtbHR2RmlsZSA9IHRoaXNDaGFubmVsWyJ4LXhtbHR2LWZpbGUiXTsNCg0KICB2YXIga2V5ICAgPSAieC1hY3RpdmUiOw0KICB2YXIgdmFsdWUgPSBKU09OLnBhcnNlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ4LWFjdGl2ZSIpLmxhc3RDaGlsZC5jaGVja2VkKTsNCg0KICBpZiAoeEVQR1sieG1sdHZNYXAiXS5oYXNPd25Qcm9wZXJ0eSh4WG1sdHZGaWxlKSA9PSB0cnVlKSB7DQogICAgaWYgKHRoaXNDaGFubmVsWyJ4LW1hcHBpbmciXSAhPSAiLSIgJiYgdGhpc0NoYW5uZWxbIngtbWFwcGluZyJdICE9IHVuZGVmaW5lZCkgew0KICAgICAgdGhpc0NoYW5uZWxbIngtYWN0aXZlIl0gPSAhdGhpc0NoYW5uZWxbIngtYWN0aXZlIl07DQogICAgICB2YXIgdHIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCh4ZXBnKTsNCiAgICAgIHN3aXRjaCh0aGlzQ2hhbm5lbFsieC1hY3RpdmUiXSkgew0KICAgICAgICBjYXNlIHRydWU6IHRyLmNsYXNzTmFtZSA9ICJhY3RpdmVFUEciOyBicmVhazsNCiAgICAgICAgY2FzZSBmYWxzZTogdHIuY2xhc3NOYW1lID0gIm5vdEFjdGl2ZUVQRyI7IGJyZWFrOw0KICAgICAgfQ0KICAgICAgDQogICAgfSBlbHNlIHsNCiAgICAgIHZhciBlcnIgPSAiWE1MVFYgQ2hhbm5lbCBpcyBub3Qgc2VsZWN0ZWQiDQogICAgICBhbGVydChlcnIpDQogICAgICB2YWx1ZSA9IGZhbHNlDQogICAgfQ0KDQogIH0gZWxzZSB7DQogICAgaWYgKHZhbHVlID09IHRydWUpIHsNCiAgICAgIHZhciBlcnIgPSAiWE1MVFYgRmlsZSBpcyBub3Qgc2VsZWN0ZSINCiAgICAgIGFsZXJ0KGVycikNCiAgICAgIHZhbHVlID0gZmFsc2UNCiAgICB9DQogIH0NCg0KICANCg0KICBpZiAoYnVsayA9PSBmYWxzZSkgew0KICAgIHZhciB0aGlzQ2hhbm5lbCA9IHhFUEdbImVwZ01hcHBpbmciXVt4ZXBnXTsNCiAgICB0aGlzQ2hhbm5lbFtrZXldID0gdmFsdWUNCiAgICBtYXBwaW5nRGV0YWlsKHhlcGcpOw0KICAgIHNlYXJjaEluTWFwcGluZygpOw0KDQogICAgdmFyIHRyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoeGVwZyk7DQogICAgc3dpdGNoKHRoaXNDaGFubmVsWyJ4LWFjdGl2ZSJdKSB7DQogICAgICBjYXNlIHRydWU6IHRyLmNsYXNzTmFtZSA9ICJhY3RpdmVFUEciOyBicmVhazsNCiAgICAgIGNhc2UgZmFsc2U6IHRyLmNsYXNzTmFtZSA9ICJub3RBY3RpdmVFUEciOyBicmVhazsNCiAgICB9DQoNCiAgICByZXR1cm4NCiAgfQ0KDQogIGlmIChidWxrID09IHRydWUpIHsNCiAgICBzYXZlQnVsayhrZXksIHZhbHVlKTsNCiAgICBtYXBwaW5nRGV0YWlsKHhlcGcpOw0KICAgIHJldHVybg0KICB9DQoNCn0NCg0KZnVuY3Rpb24gc2F2ZUdyb3VwVGl0bGUoeGVwZykgew0KICB2YXIga2V5ICAgPSAieC1ncm91cC10aXRsZSI7DQogIHZhciB2YWx1ZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ4LWdyb3VwLXRpdGxlIikubGFzdENoaWxkLnZhbHVlOw0KDQogIGlmIChidWxrID09IGZhbHNlKSB7DQogICAgdmFyIHRoaXNDaGFubmVsID0geEVQR1siZXBnTWFwcGluZyJdW3hlcGddOw0KICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHhlcGcpLmNoaWxkTm9kZXNbNV0ubGFzdENoaWxkLmlubmVySFRNTCA9IHZhbHVlOw0KICAgIHRoaXNDaGFubmVsW2tleV0gPSB2YWx1ZTsNCiAgICBtYXBwaW5nRGV0YWlsKHhlcGcpOw0KICAgIHNlYXJjaEluTWFwcGluZygpOw0KICB9DQoNCiAgaWYgKGJ1bGsgPT0gdHJ1ZSkgew0KICAgIHNhdmVCdWxrKGtleSwgdmFsdWUpOw0KICAgIG1hcHBpbmdEZXRhaWwoeGVwZyk7DQogICAgcmV0dXJuDQogIH0NCg0KfQ0KDQpmdW5jdGlvbiBzYXZlQ2F0ZWdvcnkoeGVwZykgew0KICB2YXIga2V5ICAgPSAieC1jYXRlZ29yeSI7DQogIHZhciB2YWx1ZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ4LWNhdGVnb3J5IikubGFzdENoaWxkLnZhbHVlOw0KDQogIGlmIChidWxrID09IGZhbHNlKSB7DQogICAgdmFyIHRoaXNDaGFubmVsID0geEVQR1siZXBnTWFwcGluZyJdW3hlcGddOw0KICAgIHRoaXNDaGFubmVsW2tleV0gPSB2YWx1ZQ0KICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHhlcGcpLmNoaWxkTm9kZXNbM10ubGFzdENoaWxkLmNsYXNzTmFtZSA9IHZhbHVlDQogICAgbWFwcGluZ0RldGFpbCh4ZXBnKTsNCiAgICBzZWFyY2hJbk1hcHBpbmcoKTsNCiAgfQ0KDQogIGlmIChidWxrID09IHRydWUpIHsNCiAgICBzYXZlQnVsayhrZXksIHZhbHVlKTsNCiAgICBtYXBwaW5nRGV0YWlsKHhlcGcpOw0KICAgIHJldHVybg0KICB9DQoNCn0NCg0KZnVuY3Rpb24gYXJyYW5nZVRhYmxlKGVsbSkgew0KICB2YXIgdHIgPSBlbG0ucGFyZW50RWxlbWVudC5wYXJlbnRFbGVtZW50Ow0KICB2YXIgbmV3UG9zaXRpb24gPSBlbG0udmFsdWU7DQogIHZhciB4X2NoYW5uZWxJRCA9IHRyLmlkOw0KDQogIHN3aXRjaChpc05hTihuZXdQb3NpdGlvbikpIHsNCiAgICBjYXNlIHRydWU6IA0KICAgICAgYWxlcnQoIkNoLiBOby4gbXVzdCBiZSBhIG51bWJlciIpOw0KICAgICAgbWFwcGluZ0Vycm9yID0gdHJ1ZTsNCiAgICAgIGJyZWFrOw0KICB9DQoNCg0KICAvL3ZhciBpdGVtID0geEVQR1siZXBnTWFwcGluZyJdW2lkXTsNCiAgdmFyIGtleXMgPSBnZXRPYmpLZXlzKHhFUEdbImVwZ01hcHBpbmciXSkNCiAgZm9yICh2YXIgaSA9IDA7IGkgPCBrZXlzLmxlbmd0aDsgaSsrKSB7DQogICAgdmFyIGl0ZW0gPSB4RVBHWyJlcGdNYXBwaW5nIl1ba2V5c1tpXV07DQogICAgaWYgKGl0ZW1bIngtZXBnIl0gPT0geF9jaGFubmVsSUQpIHsNCg0KICAgICAgLy8gQ2hlY2sgaWYgcG9zaXRpb24gZXhpc3QNCiAgICAgIHZhciBvbGRQb3NpdGlvbiA9IGl0ZW1bIngtY2hhbm5lbElEIl07DQoNCiAgICAgIGlmIChvbGRQb3NpdGlvbiAhPSBuZXdQb3NpdGlvbikgew0KDQogICAgICAgIGNvbnNvbGUubG9nKG5ld1Bvc2l0aW9uLCBuZXdQb3NpdGlvbi5sZW5ndGgpOw0KICAgICAgICBpZiAobmV3UG9zaXRpb24ubGVuZ3RoID09IDApIHsNCiAgICAgICAgICBtYXBwaW5nRXJyb3IgPSB0cnVlDQogICAgICAgICAgbmV3UG9zaXRpb24gPSBvbGRQb3NpdGlvbjsNCiAgICAgICAgICANCiAgICAgICAgfQ0KDQogICAgICAgIGlmIChtYXBwaW5nRXJyb3IgPT0gdHJ1ZSkgew0KICAgICAgICAgIGVsbS52YWx1ZSA9IG9sZFBvc2l0aW9uOw0KICAgICAgICAgIHJldHVybjsNCiAgICAgICAgfQ0KDQogICAgICAgIGZvciAodmFyIGogPSBrZXlzLmxlbmd0aCAtIDE7IGogPj0gMDsgai0tKSB7DQogICAgICAgICAgdmFyIGNoYW5uZWwgPSB4RVBHWyJlcGdNYXBwaW5nIl1ba2V5c1tqXV07DQogICAgICAgICAgaWYgKGtleXNbal0gIT0geF9jaGFubmVsSUQpIHsNCiAgICAgICAgICAgIGlmIChuZXdQb3NpdGlvbiA9PSBjaGFubmVsWyJ4LWNoYW5uZWxJRCJdKSB7IC8vIElmIHBvc2l0aW9uIGV4aXN0LCBzZXQgbmV4dCBmcmVlIHBvc2l0aW9uLg0KICAgICAgICAgICAgICBuZXdQb3NpdGlvbisrOw0KICAgICAgICAgICAgICBlbG0udmFsdWUgPSBuZXdQb3NpdGlvbjsNCiAgICAgICAgICAgICAgYXJyYW5nZVRhYmxlKGVsbSk7DQogICAgICAgICAgICAgIHJldHVybjsNCiAgICAgICAgICAgICAgLyoNCiAgICAgICAgICAgICAgdmFyIG5ld0Vycm9yID0gbmV3IE9iamVjdCgpOw0KICAgICAgICAgICAgICBuZXdFcnJvclsiZXJyIl0gPSAiRHVwbGljYXRlIElEIjsNCiAgICAgICAgICAgICAgY2hlY2tFcnIobmV3RXJyb3IpOw0KICAgICAgICAgICAgICBzb3J0VGFibGUoKTsNCiAgICAgICAgICAgICAgbWFwcGluZ0Vycm9yID0gdHJ1ZTsNCiAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoeF9jaGFubmVsSUQpLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJJTlBVVCIpWzBdLmZvY3VzKCk7DQogICAgICAgICAgICAgIHJldHVybjsNCiAgICAgICAgICAgICAgKi8NCiAgICAgICAgICAgIH0NCiAgICAgICAgICB9DQogICAgICAgIH0NCg0KICAgICAgfQ0KDQogICAgICAvL2NvbnNvbGUubG9nKG9sZFBvc2l0aW9uLCBuZXdQb3NpdGlvbik7DQogICAgICBpZiAoa2V5c1tpXSA9PSB4X2NoYW5uZWxJRCAmJiBvbGRQb3NpdGlvbiAhPSBuZXdQb3NpdGlvbikgeyAgDQogICAgICAgIGl0ZW1bIngtY2hhbm5lbElEIl0gPSBuZXdQb3NpdGlvbjsNCiAgICAgIH0gDQoNCiAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJsb2dJbmZvIikuY2xhc3NOYW1lID0gIm5vdFZpc2libGUiOw0KICAgICAgaWYgKGNvbHVtblRvU29ydCA9PSAxKSB7DQogICAgICAgIHNvcnRUYWJsZShjb2x1bW5Ub1NvcnQpOw0KICAgICAgfQ0KICAgICAgbWFwcGluZ0Vycm9yID0gZmFsc2U7DQoNCiAgICB9DQogIH0NCn0NCg0KZnVuY3Rpb24gY2hhbmdlWG1sdHZGaWxlKHhlcGcsIGVsbSkgew0KDQogIHZhciB0aGlzQ2hhbm5lbCA9IHhFUEdbImVwZ01hcHBpbmciXVt4ZXBnXTsNCiAgDQogIHZhciB4WG1sdHZGaWxlICAgID0gZWxtLnZhbHVlOw0KICB2YXIgY2hhbm5lbElEICAgICA9IHRoaXNDaGFubmVsWyJ0dmctaWQiXTsNCiAgdGhpc0NoYW5uZWxbIngteG1sdHYtZmlsZSJdID0geFhtbHR2RmlsZTsNCg0KICBpZiAoYnVsayA9PSBmYWxzZSkgew0KDQogICAgc2V0VGltZW91dChmdW5jdGlvbigpeyANCg0KICAgICAgdmFyIHhNYXBwaW5nID0gIi0iDQoNCiAgICAgIC8vIEF1dG9tYXANCiAgICAgIGlmICh4WG1sdHZGaWxlICE9ICItIikgew0KICAgICAgICBpZiAoeEVQR1sieG1sdHZNYXAiXVt4WG1sdHZGaWxlXS5oYXNPd25Qcm9wZXJ0eShjaGFubmVsSUQpID09IHRydWUpIHsNCiAgICAgICAgICB0aGlzQ2hhbm5lbFsieC1tYXBwaW5nIl0gPSBjaGFubmVsSUQ7DQogICAgICAgICAgeE1hcHBpbmcgPSBjaGFubmVsSUQNCiAgICAgICAgfSBlbHNlIHsNCiAgICAgICAgICB0aGlzQ2hhbm5lbFsieC1tYXBwaW5nIl0gPSB4TWFwcGluZw0KICAgICAgICB9DQogICAgICB9IGVsc2Ugew0KICAgICAgICB0aGlzQ2hhbm5lbFsieC1tYXBwaW5nIl0gPSB4TWFwcGluZw0KDQogICAgICB9DQogICAgICANCiAgICAgIHZhciB0ciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHhlcGcpOw0KDQogICAgICBpZiAoeE1hcHBpbmcgPT0gIi0iKSB7DQogICAgICAgIHRoaXNDaGFubmVsWyJ4LWFjdGl2ZSJdID0gZmFsc2U7DQogICAgICAgIHRyLmNsYXNzTmFtZSA9ICJub3RBY3RpdmVFUEciDQogICAgICB9IGVsc2Ugew0KICAgICAgICB0aGlzQ2hhbm5lbFsieC1hY3RpdmUiXSAgPSB0cnVlOw0KICAgICAgICB0ci5jbGFzc05hbWUgPSAiYWN0aXZlRVBHIg0KICAgICAgfQ0KDQogICAgICAvLyBTaG93IGRhdGEgaW4gdGFibGUNCiAgICAgIHZhciB0ZCA9IHRyLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJURCIpOw0KICAgICAgdmFyIGRhdGFGaWxlID0gdGRbdGQubGVuZ3RoIC0gMl0ubGFzdENoaWxkOw0KICAgICAgc3dpdGNoKHhYbWx0dkZpbGUpIHsNCiAgICAgICAgY2FzZSAiLSI6ICAgICAgICAgICBkYXRhRmlsZS5pbm5lckhUTUwgPSB4WG1sdHZGaWxlOyBicmVhazsNCiAgICAgICAgY2FzZSAieFRlVmUgRHVtbXkiOiBkYXRhRmlsZS5pbm5lckhUTUwgPSB4WG1sdHZGaWxlOyBicmVhazsNCiAgICAgICAgZGVmYXVsdDogICAgICAgICAgICBkYXRhRmlsZS5pbm5lckhUTUwgPSBnZXRWYWx1ZUZyb21Qcm92aWRlckZpbGUoeFhtbHR2RmlsZSwgInhtbHR2IiwgIm5hbWUiKTsgYnJlYWs7DQogICAgICB9DQoNCiAgICAgIC8veFhtbHR2RmlsZS5yZXBsYWNlKC9eLipbXFxcL10vLCAnJyk7DQoNCiAgICAgIHZhciBkYXRhWG1sdHZJRCA9IHRkW3RkLmxlbmd0aCAtIDFdLmxhc3RDaGlsZDsNCiAgICAgIGRhdGFYbWx0dklELmlubmVySFRNTCA9IHhNYXBwaW5nOw0KICAgICAgDQogICAgICBtYXBwaW5nRGV0YWlsKHhlcGcpOw0KDQogICAgfSwgMTApOw0KICB9DQoNCiAgaWYgKGJ1bGsgPT0gdHJ1ZSkgew0KICAgIHZhciBrZXkgPSAieC14bWx0di1maWxlIg0KICAgIHZhciB2YWx1ZSA9IHhYbWx0dkZpbGUNCiAgICBzYXZlQnVsayhrZXksIHZhbHVlKTsNCg0KICAgIHZhciBrZXkgPSAieC1tYXBwaW5nIg0KICAgIHZhciB2YWx1ZSA9ICItIg0KICAgIHNhdmVCdWxrKGtleSwgdmFsdWUpOw0KICAgIG1hcHBpbmdEZXRhaWwoeGVwZyk7DQogICAgcmV0dXJuDQogIH0NCg0KICByZXR1cm4NCn0NCg0KZnVuY3Rpb24gbWFwcGluZ0NoYW5uZWwoeGVwZywgZWxtKSB7DQogIHZhciB0aGlzQ2hhbm5lbCA9IHhFUEdbImVwZ01hcHBpbmciXVt4ZXBnXTsNCiAgLy92YXIgeE1hcHBpbmcgICAgICA9IGVsbS52YWx1ZTsNCiAgdmFyIHhNYXBwaW5nICAgICAgPSBlbG0ub3B0aW9uc1tlbG0uc2VsZWN0ZWRJbmRleF0udmFsdWUNCiAgDQogIGlmIChidWxrID09IGZhbHNlKSB7DQogICAgDQogICAgdGhpc0NoYW5uZWxbIngtbWFwcGluZyJdID0geE1hcHBpbmc7DQoNCiAgICB2YXIgdHIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCh4ZXBnKTsNCg0KICAgIGlmICh4TWFwcGluZyA9PSAiLSIpIHsNCiAgICAgIHRoaXNDaGFubmVsWyJ4LWFjdGl2ZSJdID0gZmFsc2U7DQogICAgICB0ci5jbGFzc05hbWUgPSAibm90QWN0aXZlRVBHIg0KICAgIH0gZWxzZSB7DQogICAgICB0aGlzQ2hhbm5lbFsieC1hY3RpdmUiXSAgPSB0cnVlOw0KICAgICAgdHIuY2xhc3NOYW1lID0gImFjdGl2ZUVQRyINCiAgICB9DQoNCiAgICAvLyBTaG93IGRhdGEgaW4gdGFibGUNCiAgICB2YXIgdGQgPSB0ci5nZXRFbGVtZW50c0J5VGFnTmFtZSgiVEQiKTsNCiAgICB2YXIgZGF0YVhtbHR2SUQgPSB0ZFt0ZC5sZW5ndGggLSAxXS5sYXN0Q2hpbGQ7DQogICAgZGF0YVhtbHR2SUQuaW5uZXJIVE1MID0geE1hcHBpbmc7DQogICAgLy9jb25zb2xlLmxvZyh0ZFt0ZC5sZW5ndGggLSAxXSk7DQogICAgLy9jb25zb2xlLmxvZyh4TWFwcGluZywgZWxtKTsNCg0KICAgIGNyZWF0ZVNlYXJjaE9iaigpOw0KICAgIHNlYXJjaEluTWFwcGluZygpOw0KICAgIHVwZGF0ZUNoYW5uZWxMb2dvKHhlcGcpDQogICAgbWFwcGluZ0RldGFpbCh4ZXBnKTsNCiAgICByZXR1cm4NCiAgfQ0KDQogIGlmIChidWxrID09IHRydWUpIHsNCg0KICAgIHZhciBrZXkgPSAieC1tYXBwaW5nIg0KICAgIHZhciB2YWx1ZSA9IHhNYXBwaW5nDQogICAgc2F2ZUJ1bGsoa2V5LCB2YWx1ZSk7DQoNCiAgICBtYXBwaW5nRGV0YWlsKHhlcGcpOw0KICAgIHJldHVybg0KICB9DQoNCiAgcmV0dXJuDQp9DQoNCg0KZnVuY3Rpb24gY3JlYXRlTmV3VEQobmV3SXRlbSwgZWxtKSB7DQogIHZhciBuZXdURCA9IG5ldyBPYmplY3QoKTsNCiAgbmV3VERbIl9lbGVtZW50Il0gPSAiVEQiOw0KICANCiAgZWxtLmFwcGVuZENoaWxkKGNyZWF0ZUVsZW1lbnQobmV3VEQpKTsNCiAgdmFyIHRkID0gZWxtLmxhc3RDaGlsZDsgDQogIA0KICBzd2l0Y2gobmV3SXRlbVsiX2VsZW1lbnQiXSkgew0KICAgIGNhc2UgIlNFTEVDVCI6DQogICAgICB0ZC5hcHBlbmRDaGlsZChjcmVhdGVFbGVtZW50KG5ld0l0ZW0pKTsNCiAgICAgIHZhciB0ZCA9IGVsbS5sYXN0Q2hpbGQubGFzdENoaWxkOyANCiAgICAgIHZhciB2YWx1ZXMgPSBuZXdJdGVtWyJfb3B0aW9uVmFsdWVzIl07DQogICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHZhbHVlcy5sZW5ndGg7IGkrKykgew0KICAgICAgICAvL2NvbnNvbGUubG9nKGl0ZW0pOw0KICAgICAgICB2YXIgbmV3RW50cnkgPSBuZXcgT2JqZWN0Ow0KICAgICAgICBuZXdFbnRyeVsiX2VsZW1lbnQiXSAgPSAiT1BUSU9OIjsNCiAgICAgICAgbmV3RW50cnlbIl90ZXh0Il0gICAgID0gdmFsdWVzW2ldOw0KICAgICAgICBuZXdFbnRyeVsidmFsdWUiXSAgICAgPSB2YWx1ZXNbaV07DQogICAgICAgIHRkLmFwcGVuZENoaWxkKGNyZWF0ZUVsZW1lbnQobmV3RW50cnkpKTsNCiAgICAgIH0NCiAgICAgIHRkLnZhbHVlID0gbmV3SXRlbVsidmFsdWUiXTsNCg0KICAgICAgYnJlYWs7DQogICAgDQogICAgZGVmYXVsdDogDQogICAgICANCiAgICAgIHRkLmFwcGVuZENoaWxkKGNyZWF0ZUVsZW1lbnQobmV3SXRlbSkpOw0KICAgICAgYnJlYWs7DQogIH0NCiAgDQp9DQoNCmZ1bmN0aW9uIHNhdmVYRVBHKCkgew0KICBpZiAobWFwcGluZ0Vycm9yID09IHRydWUpIHsNCiAgICBhbGVydCgiRGF0YSBjb3VsZCBub3QgYmUgc2F2ZWQsIGVycm9ycyBpbiB0aGUgWEVQRyBkYXRhLiIpOw0KICAgIHJldHVybjsNCiAgfQ0KICBzaG93TG9hZGluZ1NjcmVlbih0cnVlKTsNCg0KICB2YXIgZGF0YSA9IG5ldyBPYmplY3QoKTsNCiAgZGF0YVsiZXBnTWFwcGluZyJdID0geEVQR1siZXBnTWFwcGluZyJdOw0KICBkYXRhWyJjbWQiXSA9ICJzYXZlRXBnTWFwcGluZyI7DQogIC8vY29uc29sZS5sb2coZGF0YSk7DQogIHhUZVZlKGRhdGEpOw0KfQ0KDQpmdW5jdGlvbiBidWxrRWRpdCgpIHsNCiAgYnVsayA9ICFidWxrOw0KICB2YXIgY2xhc3NOYW1lOw0KDQogIHZhciBlbG0gPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCJidWxrIik7DQoNCiAgc3dpdGNoKGJ1bGspIHsNCiAgICBjYXNlIHRydWU6IA0KICAgICAgY2xhc3NOYW1lID0gImJ1bGsgc2hvd0J1bGsiOw0KICAgICAgYnJlYWs7DQoNCiAgICBjYXNlIGZhbHNlOiANCiAgICAgIGNsYXNzTmFtZSA9ICJidWxrIGhpZGVCdWxrIjsNCiAgICAgIGJ1bGtFZGl0QWxsID0gZmFsc2U7DQogICAgICBicmVhazsNCiAgfQ0KDQogIGZvciAodmFyIGkgPSAwOyBpIDwgZWxtLmxlbmd0aDsgaSsrKSB7DQogICAgZWxtW2ldLmNsYXNzTmFtZSA9IGNsYXNzTmFtZTsNCiAgICBlbG1baV0uY2hlY2tlZCA9IGZhbHNlOw0KICB9DQoNCn0NCg0KZnVuY3Rpb24gYnVsa0VkaXRBbGxDaGFubmVscygpIHsNCg0KICB2YXIgYWxsVFIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiaWRfbWFwcGluZyIpLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJUUiIpOw0KDQogIGZvciAodmFyIGkgPSAxOyBpIDwgYWxsVFIubGVuZ3RoOyBpKyspIHsNCiAgICBpZiAoYWxsVFJbaV0uc3R5bGUuZGlzcGxheSAhPSAibm9uZSIpIHsNCiAgICAgIHN3aXRjaChidWxrRWRpdEFsbCkgew0KICAgICAgICBjYXNlIGZhbHNlOiBhbGxUUltpXS5maXJzdENoaWxkLmZpcnN0Q2hpbGQuY2hlY2tlZCA9IHRydWU7IGJyZWFrOw0KICAgICAgICBjYXNlIHRydWU6IGFsbFRSW2ldLmZpcnN0Q2hpbGQuZmlyc3RDaGlsZC5jaGVja2VkID0gZmFsc2U7IGJyZWFrOyANCiAgICAgIH0NCg0KICAgIH0NCiAgICANCiAgfQ0KDQogIGJ1bGtFZGl0QWxsID0gIWJ1bGtFZGl0QWxsOw0KfQ0KDQpmdW5jdGlvbiBzb3J0VGFibGUoY29sdW1tKSB7DQogIC8vY29uc29sZS5sb2coY29sdW1tKTsNCiAgaWYgKGNvbHVtbSA9PSBjb2x1bW5Ub1NvcnQpIHsNCiAgICAvL3JldHVybjsNCiAgfQ0KDQogIHZhciB0YWJsZSAgICAgICA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJpZF9tYXBwaW5nIik7DQogIHZhciB0YWJsZUhlYWQgICA9IHRhYmxlLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJUUiIpWzBdOw0KICB2YXIgdGFibGVJdGVtcyAgPSB0YWJsZUhlYWQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlREIik7DQogIA0KICB2YXIgc29ydE9iaiA9IG5ldyBPYmplY3QoKTsNCiAgdmFyIHgsIHhWYWx1ZTsNCiAgdmFyIHRhYmxlSGVhZGVyDQogIHZhciBzb3J0QnlTdHJpbmcgPSBmYWxzZQ0KDQogIGlmIChjb2x1bW0gPiAwICYmIGNvbHVtblRvU29ydCA+IDApICB7DQogICAgdGFibGVJdGVtc1tjb2x1bW5Ub1NvcnRdLmNsYXNzTmFtZSA9ICJwb2ludGVyIjsNCiAgICB0YWJsZUl0ZW1zW2NvbHVtbV0uY2xhc3NOYW1lID0gInNvcnRUaGlzIjsNCiAgfQ0KDQogIGNvbHVtblRvU29ydCA9IGNvbHVtbTsNCg0KICB2YXIgcm93cyA9IHRhYmxlLnJvd3M7DQoNCiAgaWYgKHJvd3NbMV0gIT0gdW5kZWZpbmVkKSB7DQogICAgdGFibGVIZWFkZXIgPSByb3dzWzBdDQoNCiAgICB4ID0gcm93c1sxXS5nZXRFbGVtZW50c0J5VGFnTmFtZSgiVEQiKVtjb2x1bW1dOw0KICAgIA0KICAgIGZvciAoaSA9IDE7IGkgPCByb3dzLmxlbmd0aDsgaSsrKSB7DQoNCiAgICAgIHggPSByb3dzW2ldLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJURCIpW2NvbHVtbV07DQoNCiAgICAgIHN3aXRjaCh4LmNoaWxkTm9kZXNbMF0udGFnTmFtZS50b0xvd2VyQ2FzZSgpKSB7DQogICAgICAgIGNhc2UgImlucHV0IjoNCiAgICAgICAgICB4VmFsdWUgPSB4LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJJTlBVVCIpWzBdLnZhbHVlLnRvTG93ZXJDYXNlKCk7DQogICAgICAgICAgYnJlYWs7DQoNCiAgICAgICAgY2FzZSAicCI6DQogICAgICAgICAgeFZhbHVlID0geC5nZXRFbGVtZW50c0J5VGFnTmFtZSgiUCIpWzBdLmlubmVyVGV4dC50b0xvd2VyQ2FzZSgpOw0KICAgICAgICAgIGJyZWFrOw0KICAgICAgICANCiAgICAgICAgZGVmYXVsdDogY29uc29sZS5sb2coeC5jaGlsZE5vZGVzWzBdLnRhZ05hbWUpOw0KICAgICAgfQ0KDQogICAgICBpZiAoeFZhbHVlID09ICIiIHx8IHhWYWx1ZSA9PSBOYU4pIHsNCiAgICAgICAgeFZhbHVlID0gaQ0KICAgICAgICBzb3J0T2JqW2ldID0gcm93c1tpXTsNCiAgICAgIA0KICAgICAgfSBlbHNlIHsNCg0KICAgICAgICBzd2l0Y2goaXNOYU4oeFZhbHVlKSkgew0KICAgICAgICAgIGNhc2UgZmFsc2U6IA0KDQogICAgICAgICAgICB4VmFsdWUgPSBwYXJzZUZsb2F0KHhWYWx1ZSk7DQogICAgICAgICAgICBzb3J0T2JqW3hWYWx1ZV0gPSByb3dzW2ldDQogICAgICAgICAgICBicmVhazsNCg0KICAgICAgICAgIGNhc2UgdHJ1ZToNCg0KICAgICAgICAgICAgc29ydEJ5U3RyaW5nID0gdHJ1ZQ0KICAgICAgICAgICAgc29ydE9ialt4VmFsdWUudG9Mb3dlckNhc2UoKSArIGldID0gcm93c1tpXQ0KICAgICAgICAgICAgYnJlYWs7DQoNCiAgICAgICAgfQ0KDQogICAgICB9DQogICAgDQogICAgfQ0KDQogICAgd2hpbGUgKHRhYmxlLmZpcnN0Q2hpbGQpIHsNCiAgICAgIHRhYmxlLnJlbW92ZUNoaWxkKHRhYmxlLmZpcnN0Q2hpbGQpOw0KICAgIH0NCiAgICANCiAgICB2YXIgc29ydFZhbHVlcyA9IGdldE9iaktleXMoc29ydE9iaikNCiAgICBpZiAoc29ydEJ5U3RyaW5nID09IHRydWUpIHsNCiAgICAgIHNvcnRWYWx1ZXMuc29ydCgpDQogICAgfSBlbHNlIHsNCiAgICAgIGZ1bmN0aW9uIHNvcnRGbG9hdChhLCBiKSB7IA0KICAgICAgICByZXR1cm4gYSAtIGI7IA0KICAgICAgfQ0KICAgICAgc29ydFZhbHVlcy5zb3J0KHNvcnRGbG9hdCk7DQogICAgfQ0KDQogICAgdGFibGUuYXBwZW5kQ2hpbGQodGFibGVIZWFkZXIpDQogICAgDQogICAgZm9yICh2YXIgaSA9IDA7IGkgPCBzb3J0VmFsdWVzLmxlbmd0aDsgaSsrKSB7DQogICAgIA0KICAgICAgdGFibGUuYXBwZW5kQ2hpbGQoc29ydE9ialtzb3J0VmFsdWVzW2ldXSkNCg0KICAgIH0NCiAgICANCiAgfQ0KDQp9DQoNCg0KZnVuY3Rpb24gc29ydFRhYmxlX29sZChjb2x1bW0pIHsNCiAgc2hvd0xvYWRpbmdTY3JlZW4odHJ1ZSk7DQogIA0KICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7IA0KDQogICAgdmFyIHRhYmxlLCByb3dzLCBzd2l0Y2hpbmcsIGksIHgsIHksIHNob3VsZFN3aXRjaDsNCiAgICB0YWJsZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJpZF9tYXBwaW5nIik7DQoNCiAgICB2YXIgdGFibGVIZWFkID0gdGFibGUuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlRSIilbMF07DQogICAgdmFyIHRhYmxlSXRlbXMgPSB0YWJsZUhlYWQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlREIik7DQoNCiAgICBpZiAoY29sdW1tID4gMCkgIHsNCiAgICAgIHRhYmxlSXRlbXNbY29sdW1uVG9Tb3J0XS5jbGFzc05hbWUgPSAicG9pbnRlciI7DQogICAgICB0YWJsZUl0ZW1zW2NvbHVtbV0uY2xhc3NOYW1lID0gInNvcnRUaGlzIjsNCiAgICB9DQogICAgDQogICAgY29sdW1uVG9Tb3J0ID0gY29sdW1tOw0KDQogICAgLyoNCiAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRhYmxlSXRlbXMubGVuZ3RoOyBpKyspIHsNCiAgICAgIGlmICh0YWJsZUl0ZW1zW2ldLmNsYXNzTmFtZSAhPSB1bmRlZmluZWQpIHsNCiAgICAgICAgdGFibGVJdGVtc1tpXS5jbGFzc05hbWUgPSAicG9pbnRlciINCiAgICAgIH0NCg0KICAgIH0NCiAgICAqLw0KDQogICAgDQoNCiAgICBjb25zb2xlLmxvZyh0YWJsZUl0ZW1zKTsgDQoNCiAgICBzd2l0Y2hpbmcgPSB0cnVlOw0KICAgIHdoaWxlIChzd2l0Y2hpbmcpIHsNCiAgICAgIHN3aXRjaGluZyA9IGZhbHNlOw0KICAgICAgcm93cyA9IHRhYmxlLnJvd3M7DQogICAgICBmb3IgKGkgPSAxOyBpIDwgKHJvd3MubGVuZ3RoIC0gMSk7IGkrKykgew0KICAgICAgICBzaG91bGRTd2l0Y2ggPSBmYWxzZTsNCg0KICAgICAgICB4ID0gcm93c1tpXS5nZXRFbGVtZW50c0J5VGFnTmFtZSgiVEQiKVtjb2x1bW1dOw0KICAgICAgICB5ID0gcm93c1tpICsgMV0uZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlREIilbY29sdW1tXTsNCg0KICAgICAgICBzd2l0Y2goeC5jaGlsZE5vZGVzWzBdLnRhZ05hbWUudG9Mb3dlckNhc2UoKSkgew0KICAgICAgICAgIGNhc2UgImlucHV0IjoNCiAgICAgICAgICAgIHhWYWx1ZSA9IHguZ2V0RWxlbWVudHNCeVRhZ05hbWUoIklOUFVUIilbMF0udmFsdWUudG9Mb3dlckNhc2UoKTsNCiAgICAgICAgICAgIHlWYWx1ZSA9IHkuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIklOUFVUIilbMF0udmFsdWUudG9Mb3dlckNhc2UoKTsNCiAgICAgICAgICAgIGJyZWFrOw0KDQogICAgICAgICAgY2FzZSAicCI6DQogICAgICAgICAgICB4VmFsdWUgPSB4LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJQIilbMF0uaW5uZXJUZXh0LnRvTG93ZXJDYXNlKCk7DQogICAgICAgICAgICB5VmFsdWUgPSB5LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJQIilbMF0uaW5uZXJUZXh0LnRvTG93ZXJDYXNlKCk7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgICANCiAgICAgICAgICBkZWZhdWx0OiBjb25zb2xlLmxvZyh4LmNoaWxkTm9kZXNbMF0udGFnTmFtZSk7DQogICAgICAgIH0NCg0KICAgICAgICANCiAgICAgICAgc3dpdGNoKGlzTmFOKHhWYWx1ZSkpIHsNCiAgICAgICAgICBjYXNlIGZhbHNlOiB4VmFsdWUgPSBwYXJzZUZsb2F0KHhWYWx1ZSkgOyBicmVhazsNCiAgICAgICAgfQ0KDQogICAgICAgIHN3aXRjaChpc05hTih5VmFsdWUpKSB7DQogICAgICAgICAgY2FzZSBmYWxzZTogeVZhbHVlID0gcGFyc2VGbG9hdCh5VmFsdWUpIDsgYnJlYWs7DQogICAgICAgIH0NCiAgICAgICAgDQoNCiAgICAgICAgaWYgKHhWYWx1ZSA+IHlWYWx1ZSkgew0KICAgICAgICAgIHNob3VsZFN3aXRjaCA9IHRydWU7DQogICAgICAgICAgYnJlYWs7DQogICAgICAgIH0NCg0KICAgICAgfQ0KICAgICAgaWYgKHNob3VsZFN3aXRjaCkgew0KICAgICAgICByb3dzW2ldLnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKHJvd3NbaSArIDFdLCByb3dzW2ldKTsNCiAgICAgICAgc3dpdGNoaW5nID0gdHJ1ZTsNCiAgICAgIH0NCiAgICB9DQogICAgY3JlYXRlU2VhcmNoT2JqKCkNCiAgICANCiAgICBzaG93TG9hZGluZ1NjcmVlbihmYWxzZSk7DQogIH0sIDIwKTsNCg0KfQ0KDQpmdW5jdGlvbiBzaG93WEVQRygpIHsNCiAgdmFyIHVybCA9IGxvY2F0aW9uLnByb3RvY29sICsgIi8vIiArIGxvY2F0aW9uLmhvc3RuYW1lICsgIjoiICsgbG9jYXRpb24ucG9ydCArICIveG1sdHYveHRldmUueG1sIg0KICB2YXIgd2luID0gd2luZG93Lm9wZW4odXJsLCAnX2JsYW5rJyk7DQogIHdpbi5mb2N1cygpOw0KfQ==" - webUI["html/img/BC-QR.jpg"] = "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" + webUI["html/css/base.css"] = "KiB7DQogIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTsNCiAgLW1vei1hcHBlYXJhbmNlOiBub25lOw0KICAtbXMtYXBwZWFyYW5jZTogbm9uZTsNCiAgZm9udC1mYW1pbHk6ICJBcmlhbCIsIHNhbnMtc2VyaWY7DQogIGxldHRlci1zcGFjaW5nOiAycHg7IA0KfQ0KDQovKg0KOjotd2Via2l0LXNjcm9sbGJhciB7IA0KICAgIGRpc3BsYXk6IG5vbmU7IA0KfQ0KKi8NCg0KOjotd2Via2l0LXNjcm9sbGJhciB7DQogIHdpZHRoOiAxMnB4Ow0KICBoZWlnaHQ6IDEycHg7DQp9DQoNCiANCjo6LXdlYmtpdC1zY3JvbGxiYXItdHJhY2sgew0KICAtd2Via2l0LWJveC1zaGFkb3c6IGluc2V0IDAgMCA2cHggcmdiYSgwLDAsMCwwLjMpOyANCiAgYm9yZGVyLXJhZGl1czogNXB4Ow0KICAgIA0KfQ0KIA0KOjotd2Via2l0LXNjcm9sbGJhci10aHVtYiB7DQogIGJvcmRlci1yYWRpdXM6IDVweDsNCiAgLXdlYmtpdC1ib3gtc2hhZG93OiBpbnNldCAwIDAgNnB4IHJnYmEoMCwgMCwgMCwwLjYpOyANCiAgYmFja2dyb3VuZC1jb2xvcjogIzQ0NDsNCn0NCg0KOjotd2Via2l0LXNjcm9sbGJhci10aHVtYjpob3ZlciB7DQogIGJhY2tncm91bmQ6ICMzMzM7IA0KfQ0KDQo6Oi13ZWJraXQtc2Nyb2xsYmFyLWNvcm5lciB7IA0KICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsgDQp9DQoNCmEgew0KICBjb2xvcjogIzAwRTZGRjsNCn0NCg0KaHRtbCwgYm9keSB7DQogIGNvbG9yOiAjZmZmOw0KICBtYXJnaW46IDBweCBhdXRvOw0KICBoZWlnaHQ6IDEwMCU7DQogIGZvbnQtc2l6ZTogMTRweDsNCn0NCg0KaDIgew0KICBmb250LXNpemU6IDI0cHg7DQogIGxldHRlci1zcGFjaW5nOiAycHg7DQp9DQoNCmgzIHsNCiAgZm9udC1zaXplOiAyMnB4Ow0KICBsZXR0ZXItc3BhY2luZzogMXB4Ow0KfQ0KDQpoNCB7DQogIGZvbnQtc2l6ZTogMjBweDsNCiAgbGV0dGVyLXNwYWNpbmc6IDFweDsNCiAgbGluZS1oZWlnaHQ6IDEuNWVtOw0KDQp9DQoNCmg1IHsNCiAgZm9udC1zaXplOiAxNnB4Ow0KICBsZXR0ZXItc3BhY2luZzogMXB4Ow0KICBsaW5lLWhlaWdodDogMS4yZW07DQogIG1hcmdpbjogMjVweCAwcHggMTBweCAwcHg7DQp9DQoNCmhyIHsNCiAgYm9yZGVyOiAwOw0KICBoZWlnaHQ6IDFweDsNCiAgYmFja2dyb3VuZDogIzMzMzsNCiAgbWFyZ2luOiAxMHB4IDBweDsNCn0NCg0KcCB7DQogIG1hcmdpbjogMnB4Ow0KICBwYWRkaW5nOiAycHggNXB4Ow0KfQ0KDQpwcmUgew0KICBtYXJnaW46IDBweCAwcHggNXB4IDBweDsNCiAgZm9udC1zaXplOiAxMnB4Ow0KICBjb2xvcjogI2RkZDsNCiAgbGV0dGVyLXNwYWNpbmc6IDFweDsNCiAgd2hpdGUtc3BhY2U6IHByZS13cmFwOw0KICBmb250LWZhbWlseTogbW9ub3NwYWNlOyANCiAgZm9udC1zaXplOiAxMnB4OyANCiAgZm9udC1zdHlsZTogbm9ybWFsOyANCiAgZm9udC12YXJpYW50OiBub3JtYWw7IA0KICBsaW5lLWhlaWdodDogMS42ZW07IA0KfQ0KDQpsYWJlbCB7DQogIG1hcmdpbi1ib3R0b206IDIwcHg7DQogIGRpc3BsYXk6IGJsb2NrOw0KfQ0KDQpsaSB7DQogIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTsNCiAgYmFja2dyb3VuZC1jb2xvcjogIzExMTsNCiAgcGFkZGluZzogMTBweCAyMHB4Ow0KICBjdXJzb3I6IHBvaW50ZXI7DQogIGJvcmRlci1sZWZ0OiBzb2xpZCAycHggIzExMTsNCiAgdHJhbnNpdGlvbjogYWxsIDAuMzsNCn0NCg0KbGk6aG92ZXIgew0KICBib3JkZXItY29sb3I6ICMwMEU2RkYNCn0NCg0Kc2VsZWN0IHsNCiAgY3Vyc29yOiBwb2ludGVyOw0KICB3aWR0aDogY2FsYygxMDAlICsgMnB4KTsNCiAgYm9yZGVyOiBzb2xpZCAwcHggIzAwRTZGRjsNCiAgYm9yZGVyLXJhZGl1czogMHB4Ow0KICBvdXRsaW5lOiBub25lOw0KICBjb2xvcjogI2ZmZjsNCiAgcGFkZGluZzogOXB4IDEwcHg7DQogIGRpc3BsYXk6YmxvY2s7DQogIGJhY2tncm91bmQtY29sb3I6ICMzMzM7DQogIGZvbnQtc2l6ZTogMTRweDsNCiAgbWFyZ2luOiA1cHggMHB4IDVweCAwcHg7DQp9DQoNCnNlbGVjdDpmb2N1cyB7DQogIG91dGxpbmU6IG5vbmU7DQp9DQoNCmlucHV0IHsNCiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lOw0KICBtYXJnaW46IDVweCAwcHg7DQogIHBhZGRpbmc6IDIuNXB4IDEwcHg7DQogIG91dGxpbmU6IG5vbmU7DQogIGZvbnQtc2l6ZTogMTRweDsNCn0NCg0KaW5wdXRbdHlwZT1idXR0b25dLCBpbnB1dFt0eXBlPXN1Ym1pdF0gew0KICBjdXJzb3I6IHBvaW50ZXI7DQogIGJhY2tncm91bmQtY29sb3I6ICMwMDA7DQogIG1hcmdpbjogMTBweCAxMHB4Ow0KICBwYWRkaW5nOiAxMHB4IDI1cHg7DQogIGJvcmRlcjogc29saWQgMHB4Ow0KICBib3JkZXItY29sb3I6ICMwMDA7DQogIGJvcmRlci1yYWRpdXM6IDNweDsNCiAgb3V0bGluZTogbm9uZTsNCiAgY29sb3I6ICNmZmY7DQp9DQoNCmlucHV0W3R5cGU9YnV0dG9uXTpmb2N1cyB7IA0KICAgb3V0bGluZTogbm9uZTsNCn0NCg0KaW5wdXRbdHlwZT1idXR0b25dOmhvdmVyIHsNCiAgYmFja2dyb3VuZC1jb2xvcjogIzAwRTZGRjsNCiAgY29sb3I6ICMwMDA7DQp9DQoNCmlucHV0W3R5cGU9YnV0dG9uXTpob3Zlci5kZWxldGUgIHsNCiAgYmFja2dyb3VuZC1jb2xvcjogcmVkOw0KICBjb2xvcjogI2ZmZjsNCn0NCg0KaW5wdXRbdHlwZT10ZXh0XSwgaW5wdXRbdHlwZT1zZWFyY2hdLCBpbnB1dFt0eXBlPXBhc3N3b3JkXSB7DQogIGNvbG9yOiAjZmZmOw0KICB3aWR0aDogLXdlYmtpdC1jYWxjKDEwMCUgLSAwcHgpOw0KICB3aWR0aDogLW1vei1jYWxjKDEwMCUgLSAwcHgpOw0KICB3aWR0aDogY2FsYygxMDAlIC0gMHB4KTsNCiAgb3V0bGluZTogbm9uZTsNCiAgYm9yZGVyOiBzb2xpZCAxcHggdHJhbnNwYXJlbnQ7DQogIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50Ow0KICBib3JkZXItYm90dG9tLWNvbG9yOiAjNTU1Ow0KICBib3JkZXItcmFkaXVzOiAwcHg7DQogIHBhZGRpbmc6IDhweCAxMHB4Ow0KfQ0KDQppbnB1dFt0eXBlPSJjaGVja2JveCJdIHsNCiAgYm9yZGVyOiBzb2xpZCAxcHggIzAwRTZGRjsNCiAgYmFja2dyb3VuZC1jb2xvcjogIzMzMzsNCiAgaGVpZ2h0OiAyNXB4Ow0KICB3aWR0aDogMjVweDsNCiAgY3Vyc29yOiBwb2ludGVyOw0KICAvKg0KICAtd2Via2l0LWFwcGVhcmFuY2U6IGNoZWNrYm94Ow0KICAqLw0KfQ0KDQppbnB1dFt0eXBlPSJjaGVja2JveCJdOmNoZWNrZWQgew0KICBjb2xvcjogI2ZmZjsNCiAgYmFja2dyb3VuZC1jb2xvcjogIzAwRTZGRjsNCiAgLypkaXNwbGF5OiBpbmxpbmUtYmxvY2s7Ki8NCn0NCg0KaW5wdXRbdHlwZT0iY2hlY2tib3giXTpiZWZvcmUgew0KICBwb3NpdGlvbjogaW5pdGlhbDsNCiAgbGVmdDogMHB4Ow0KICBtYXJnaW4tbGVmdDogLTRweDsNCiAgY29udGVudDogIiAiOw0KfQ0KDQppbnB1dFt0eXBlPSJjaGVja2JveCJdOmNoZWNrZWQ6YmVmb3JlIHsNCiAgcG9zaXRpb246IGluaXRpYWw7DQogIGxlZnQ6IDBweDsNCiAgbWFyZ2luLWxlZnQ6IC0zcHg7DQogIGNvbnRlbnQ6ICLinJMiOw0KICBjb2xvcjogIzAwMDsNCn0NCg0KDQppbnB1dFt0eXBlPWJ1dHRvbl0uY2FuY2VsIHsNCiAgDQogIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50Ow0KICBib3JkZXItY29sb3I6IHJlZDsNCn0NCg0KaW5wdXRbdHlwZT1idXR0b25dLnNhdmV7DQogIGJhY2tncm91bmQtY29sb3I6ICMxMTE7DQogIGZsb2F0OiByaWdodDsNCn0NCg0KDQppbnB1dFt0eXBlPWJ1dHRvbl0uYmxhY2ssIGlucHV0W3R5cGU9c3VibWl0XS5ibGFja3sNCiAgYmFja2dyb3VuZC1jb2xvcjogIzAwMDsNCiAgYm9yZGVyLWNvbG9yOiAjMDAwOw0KfQ0KDQppbnB1dFt0eXBlPWJ1dHRvbl0uY2VudGVyew0KICBtYXJnaW4tcmlnaHQ6IGF1dG87DQogIG1hcmdpbi1sZWZ0OiBhdXRvOw0KICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDAwOw0KICBib3JkZXItY29sb3I6ICMwMDA7DQp9DQoNCi5wb2ludGVyIHsNCiAgY3Vyc29yOiBwb2ludGVyOw0KfQ0KDQoucG9pbnRlcjpob3ZlciB7DQogIGNvbG9yOiAjMDBFNkZGOw0KICBjdXJzb3I6IHBvaW50ZXI7DQp9DQoNCi5zb3J0VGhpcyB7DQogIGNvbG9yOiAjMDBFNkZGOw0KfQ0KDQoudzQwcHggew0KICBtYXgtd2lkdGg6IDQwcHg7DQp9DQoNCi53NTBweCB7DQogIG1heC13aWR0aDogNTBweDsNCn0NCg0KLnc4MHB4IHsNCiAgbWF4LXdpZHRoOiA4MHB4Ow0KfQ0KDQoudzE1MHB4IHsNCiAgbWF4LXdpZHRoOiAxNTBweDsNCn0NCg0KLncyMDBweCB7DQogIG1heC13aWR0aDogMjAwcHg7DQogIG1pbi13aWR0aDogMTAwcHg7DQogIHdpZHRoOiAyMDBweDsNCiAgb3ZlcmZsb3cteDogaGlkZGVuOw0KICB3aGl0ZS1zcGFjZTogbm93cmFwOw0KICBvdmVyZmxvdzogaGlkZGVuOw0KICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsNCn0NCg0KLnczMDBweCB7DQogIG1heC13aWR0aDogMzAwcHg7DQp9DQoNCi53MjIwcHggew0KICBtYXgtd2lkdGg6IDIyMHB4Ow0KICBjdXJzb3I6IGFsaWFzOw0KfQ0KDQouZm9vdGVyIHsNCiAgZm9udC1zaXplOiAxMHB4Ow0KfQ0KDQouY2VudGVyIHsNCiAgdGV4dC1hbGlnbjogY2VudGVyOw0KfQ0KDQouc2NyZWVuTG9nSGlkZGVuIHsNCiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMHB4LCAtMTEwcHgpOw0KfQ0KDQouYm9yZGVyU3BhY2Ugew0KICBtYXJnaW4tYm90dG9tOiAzMHB4Ow0KfQ0KDQouYmxvY2sgew0KDQp9DQoNCi5ub25lIHsNCiAgZGlzcGxheTogbm9uZTsNCn0NCg0KDQoubm90VmlzaWJsZSB7DQogIGhlaWdodDogMHB4Ow0KICBkaXNwbGF5OiBub25lOw0KICBvcGFjaXR5OiAwOw0KICBib3JkZXItYm90dG9tOiAjMDAwIHNvbGlkIDBweDsNCiAgDQp9DQoNCi52aXNpYmxlIHsNCiAgb3BhY2l0eTogMTsNCiAgZGlzcGxheTogYmxvY2s7DQogIGJvcmRlci1ib3R0b206ICM0NDQgc29saWQgMXB4OyANCiAgcGFkZGluZzogMTBweDsNCn0NCg0KLmZsb2F0UmlnaHQgew0KICBmbG9hdDogcmlnaHQ7DQp9DQoNCi5mbG9hdExlZnQgew0KICBmbG9hdDogbGVmdDsNCn0NCg0KLm1lbnUtYWN0aXZlIHsNCiAgYmFja2dyb3VuZC1jb2xvcjogIzAwRTZGRjsNCn0NCg0KLm1lbnUtbm90QWN0aXZlIHsNCiAgDQp9DQoNCiNicmFuY2ggew0KICBkaXNwbGF5OiB0YWJsZTsNCiAgbWFyZ2luOiBhdXRvOw0KICBjb2xvcjogcmVkOw0KfQ0KDQojaW50ZXJhY3Rpb24gew0KICBtYXJnaW4tYm90dG9tOiAxMDBweDsNCiAgdGV4dC1hbGlnbjogY2VudGVyOw0KICBib3JkZXItYm90dG9tOiBzb2xpZCAwcHggIzc3NzsNCn0NCg0KDQouaGFsZiB7DQogIGRpc3BsYXk6IGJsb2NrOw0KICB3aWR0aDogNDUlOw0KfQ0KDQoubWVudSB7DQogIGJvcmRlcjogc29saWQgMXB4ICMwMEU2RkY7DQp9DQoNCi5pbmZvTXNnIHsNCiAgY29sb3I6ICNhYWE7DQp9DQoNCi5lcnJvck1zZyB7DQogIGNvbG9yOiByZWQ7DQp9DQoNCi53YXJuaW5nTXNnIHsNCiAgY29sb3I6IHllbGxvdzsNCn0NCg0KLmRlYnVnTXNnIHsNCiAgY29sb3I6IG1hZ2VudGE7DQp9DQoNCi5OZXdzLCAuTW92aWUsIC5TZXJpZXMsIC5TcG9ydHMsIC5LaWRzIHsNCiAgYm9yZGVyLWxlZnQ6IHNvbGlkIDJweA0KfQ0KDQouTmV3cyB7DQogIGJvcmRlci1jb2xvcjogdG9tYXRvDQp9DQoNCi5Nb3ZpZSB7DQogIGJvcmRlci1jb2xvcjogcm95YWxibHVlOw0KfQ0KDQouU2VyaWVzIHsNCiAgYm9yZGVyLWNvbG9yOiBnb2xkOw0KfQ0KDQouU3BvcnRzIHsNCiAgYm9yZGVyLWNvbG9yOiB5ZWxsb3dncmVlbjsNCn0NCg0KLktpZHMgew0KICBib3JkZXItY29sb3I6IG1lZGl1bXB1cnBsZTsNCn0NCg0KLyogTG9hZGluZyAqLw0KI2xvYWRpbmcgew0KICBsZWZ0OiAwcHg7DQogIHRvcDogMHB4Ow0KICB6LWluZGV4OiAxMDAwMDsNCiAgcG9zaXRpb246IGFic29sdXRlOw0KICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsMCwwLCAwLjgpOw0KICBtYXJnaW46IGF1dG87DQogIHdpZHRoOiAxMDAlOw0KICBoZWlnaHQ6IDEwMCU7DQp9DQoNCg0KLmxvYWRlciB7DQogIGJvcmRlcjogNXB4IHNvbGlkIHRyYW5zcGFyZW50Ow0KICBib3JkZXItcmFkaXVzOiA1MCU7DQogIGJvcmRlci10b3A6IDVweCBzb2xpZCAjMDBFNkZGOw0KICBib3JkZXItYm90dG9tOiA1cHggc29saWQgIzAwRTZGRjsNCiAgd2lkdGg6IDUwcHg7DQogIGhlaWdodDogNTBweDsNCiAgLXdlYmtpdC1hbmltYXRpb246IHNwaW4gMS4ycyBsaW5lYXIgaW5maW5pdGU7DQogIGFuaW1hdGlvbjogc3BpbiAxLjJzIGxpbmVhciBpbmZpbml0ZTsNCg0KICBwb3NpdGlvbjogZml4ZWQ7DQogIG1hcmdpbjogYXV0bzsNCg0KICB0b3A6IDA7DQogIHJpZ2h0OiAwOw0KICBib3R0b206IDA7DQogIGxlZnQ6IDA7DQogIA0KfQ0KDQpALXdlYmtpdC1rZXlmcmFtZXMgc3BpbiB7DQogIDAlIHsgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTsgfQ0KICAxMDAlIHsgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpOyB9DQp9DQoNCkBrZXlmcmFtZXMgc3BpbiB7DQogIDAlIHsgdHJhbnNmb3JtOiByb3RhdGUoMGRlZyk7IH0NCiAgMTAwJSB7IHRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7IH0NCn0NCg==" + webUI["html/img/settings.png"] = "iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAAAXNSR0IArs4c6QAAAAlwSFlzAAAsSwAALEsBpT2WqQAABCRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IlhNUCBDb3JlIDUuNC4wIj4KICAgPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIgogICAgICAgICAgICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgICAgICAgICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyI+CiAgICAgICAgIDx0aWZmOlJlc29sdXRpb25Vbml0PjI8L3RpZmY6UmVzb2x1dGlvblVuaXQ+CiAgICAgICAgIDx0aWZmOkNvbXByZXNzaW9uPjU8L3RpZmY6Q29tcHJlc3Npb24+CiAgICAgICAgIDx0aWZmOlhSZXNvbHV0aW9uPjI4ODwvdGlmZjpYUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6T3JpZW50YXRpb24+MTwvdGlmZjpPcmllbnRhdGlvbj4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+Mjg4PC90aWZmOllSZXNvbHV0aW9uPgogICAgICAgICA8ZXhpZjpQaXhlbFhEaW1lbnNpb24+NTA8L2V4aWY6UGl4ZWxYRGltZW5zaW9uPgogICAgICAgICA8ZXhpZjpDb2xvclNwYWNlPjE8L2V4aWY6Q29sb3JTcGFjZT4KICAgICAgICAgPGV4aWY6UGl4ZWxZRGltZW5zaW9uPjUwPC9leGlmOlBpeGVsWURpbWVuc2lvbj4KICAgICAgICAgPGRjOnN1YmplY3Q+CiAgICAgICAgICAgIDxyZGY6QmFnLz4KICAgICAgICAgPC9kYzpzdWJqZWN0PgogICAgICAgICA8eG1wOk1vZGlmeURhdGU+MjAxOC0wOC0xMFQxODowODo4OTwveG1wOk1vZGlmeURhdGU+CiAgICAgICAgIDx4bXA6Q3JlYXRvclRvb2w+UGl4ZWxtYXRvciAzLjM8L3htcDpDcmVhdG9yVG9vbD4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgIDwvcmRmOlJERj4KPC94OnhtcG1ldGE+Ckxt87EAAAS7SURBVGgFzZpdiFVVGIbn5N+IMgVhaRLqWI7mQIJoIVRgOhQZNDAhWcbcVuPV3BRE6I14440iQQSaN0p6kz8zI0k5inUhZSSaYOVYODMo5eiMOOPf+LzH2cPMPmvttdbe53jOBy9rr2+938/ae51vr733qaoqgQwPD68B/wDJfXAP3AE94JMShCy+SxJ9CvSDJFlU7MiPFdsh/hrBdIffBsd48HApJjLPI4tnPThBlFJMZI5HBuWZCIt9AmgEzeAJR6JzHeMadnKI8wbYCz4Fkz18JlNwMgf8BCL5j4O3bVaMdUfEhPZqgv1U7HbEbDvoT7HZOPUYNwAlHheV09a4A3RTgMqtj9QY7JdgeM5i3I4+fDIYrQeq/UnyNYOTlBDtS+BwEjk2doz+KyO2OY5bwVCME+/qylTHT4C1D3k+uB33Yul3ov/eMuajlu1RH+II5wtT4hNNSnQ6U/kzbRkfq351bCfF8apAm7kmvq38njWRK0S305SHcSK5XO4U5O9MBmXWbSe3E6YccialdKzH2TTnQEF10XgZ5DdivsxEhkyxjVdERAwu03xmMiqD7hYx19km4cyHq6KyeHKkWpSz+ciVrHVpRYZk/wLHp0H2bULkNKzt4Eq86TKxLq3IECf6nXwV9QPbAfjHQSfoD7SN6L63gYhvbrkiTwKf/dPYpbdPVxKMnigdg0VAG8FQye8AzBl6aIk2A+wPiNoHd63LNZx3wbUAvz/CfTzJb/43AmkGpLfAi0DPE/NALQgtve+xFPdi5xRiNkHa5ySOJ/TR7RrBJdqL4AAxL+p+8ToYAFklNCnF3pM1KPba2L6v8vons5oPsko9ZyZoa0PsOoKezxoY+y5N5DYHWSvDTXzUMJH7IUkRW0tbyyV0CcfDDKmqDMe1KfqnQyehGNgo9q8p4hWYFGsiBY4fsSK/BRkkaPgj5PhMy720BnVFesfnlKo3Das0bw8XYJf196GEuzWRLSDoRypLg2w06FyqTS6Cx7iK1eeqGqrnugmuBgvB8+A5UAuqQYiU+oZ4h2T+BV3gAlDp/pai0U1rFpVGMAv8AHzFd4vShMOQLcoB+DNB/sSbM3ZoMV4BQsW0adSJSbNp1Hu1mY40/YZxpPdJaUSfFzrBMXAjjQNsdvll6cHCWVvKJIphdhcny11pqmolCk5aIDif0BKdZBucgPlO8kh/r8O4HtwClSCbk86HtQqQuUrvKVCf5OARjt0lll4H/WKKmbS0tmJQKZNQ7nq9+w0n2LhTN04E8jKMPpZ1hcli8tGTZYEYJwJrZQGzchTGz3a2ifwdkHc73LYAfpx6DcWXQK1LeiDsdpFGx7UOwUGQJKpmGyIjjvWh50iSQWzsZ/ofgvx+jnYp+B/YpJcB7QXDBKPJ4JDF6+/oCwoBuhoL36R+Jp4RJH16u2IgaxJpHhMehsBY3wTjV2YbOuuumLHrwCW6msbSj74O/DHGgV4Ohl8Jw1nSMmsB+tL6Wnw83odzBrhEr2GtgvFE8A74ADxtJZZygMC25cjQqBwqdg62qpUlziUP45Cq6OGuqqoUE/FJ8i+v7MpJYvEsHl1A5gNty2vLmaN3bBLdAvqB3svqXxLRvyEuc9zs7SiA+ACpw05pJx8SoAAAAABJRU5ErkJggg==" webUI["html/img/x_black.png"] = "iVBORw0KGgoAAAANSUhEUgAAAQAAAAEACAIAAADTED8xAAAAAXNSR0IArs4c6QAAAAlwSFlzAAAWJQAAFiUBSVIk8AAAA6ppVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IlhNUCBDb3JlIDUuNC4wIj4KICAgPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIgogICAgICAgICAgICB4bWxuczp0aWZmPSJodHRwOi8vbnMuYWRvYmUuY29tL3RpZmYvMS4wLyIKICAgICAgICAgICAgeG1sbnM6ZXhpZj0iaHR0cDovL25zLmFkb2JlLmNvbS9leGlmLzEuMC8iPgogICAgICAgICA8eG1wOk1vZGlmeURhdGU+MjAxOC0xMS0xNVQxNzoxMTozNzwveG1wOk1vZGlmeURhdGU+CiAgICAgICAgIDx4bXA6Q3JlYXRvclRvb2w+UGl4ZWxtYXRvciAzLjM8L3htcDpDcmVhdG9yVG9vbD4KICAgICAgICAgPHRpZmY6T3JpZW50YXRpb24+MTwvdGlmZjpPcmllbnRhdGlvbj4KICAgICAgICAgPHRpZmY6Q29tcHJlc3Npb24+NTwvdGlmZjpDb21wcmVzc2lvbj4KICAgICAgICAgPHRpZmY6UmVzb2x1dGlvblVuaXQ+MjwvdGlmZjpSZXNvbHV0aW9uVW5pdD4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+MTQ0PC90aWZmOllSZXNvbHV0aW9uPgogICAgICAgICA8dGlmZjpYUmVzb2x1dGlvbj4xNDQ8L3RpZmY6WFJlc29sdXRpb24+CiAgICAgICAgIDxleGlmOlBpeGVsWERpbWVuc2lvbj4yNTY8L2V4aWY6UGl4ZWxYRGltZW5zaW9uPgogICAgICAgICA8ZXhpZjpDb2xvclNwYWNlPjE8L2V4aWY6Q29sb3JTcGFj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a1jSekqmtA1rrGsx7JYkDuvrVahwRdgVXD1xcwri6mmYRULLe4CuPc2wfrGo4U+7Y/3S9ZHD+GcflbnfiCJbr77whoaS6ucCXVkVkuLKgORQwNJFygRDJnqwb9i3b0HxkqjT0L4erGy5Rh1IRnhXrpaZq6GZCyRLf6cvhoTY6V9koX8bGdEUlyWVm6W5q1GuostihNm97L/dpm5k+QHCbDna0zRzgSS/lRHWL7iHPOa+9YsYkpttoCwSMcQRkrWioz5Qsc7aFJ1coHY3QyJ9jSjfJEOCfTUpWzehVBnUbqCJOCHEkB1xsmXDwq9DnObUz9q4QOUqYPaPKFzUKcVj6Eeu461q67Vhlqy6+Xo11G52JhRZNNW1FRbN00FWPVwguSa+8YEZ1i+D9vQjelm/iHTwAB69Vwd7CkuGLOcWtxfR4o+dHhNg4DNmhDvJ8M6ehknvhTXMDp8kQQgT33W4z+i7k/2gho+Jvrp1NTVwgW5opV76yl8F/cufe9CyJiRllZ6lYCHMXWPAXmNp9CRb8Pi30r658sHtCSCPsZNXQDYdMaLIek/No13V/rBfGMFSCXnsKNo1dDelnKt/dyUH8uvjjLH+zyfpbv1iUl/NVBt4mVJy58HoDyFZLt0rrj4G7TfIjARvMjy7d6JnR/UXS/+yeD5kLYkETxpRZL2jZJVzb7cl9yZA/cYqh4z+20AEzOj+BKxbZYRFqXQssvLs5gQzpBUp616rNsX55WdXBHbPBRrwlBm5v2VYJo1FsjmOtQg8ezo+fd8Ve4qy04HPRlmR1UiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABGwg8D8UnyVeZFwGAQAAAABJRU5ErkJggg==" + webUI["html/img/x_white.png"] = "iVBORw0KGgoAAAANSUhEUgAAAQAAAAEACAIAAADTED8xAAAAAXNSR0IArs4c6QAAAAlwSFlzAAAWJQAAFiUBSVIk8AAAA6ppVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IlhNUCBDb3JlIDUuNC4wIj4KICAgPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIgogICAgICAgICAgICB4bWxuczp0aWZmPSJodHRwOi8vbnMuYWRvYmUuY29tL3RpZmYvMS4wLyIKICAgICAgICAgICAgeG1sbnM6ZXhpZj0iaHR0cDovL25zLmFkb2JlLmNvbS9leGlmLzEuMC8iPgogICAgICAgICA8eG1wOk1vZGlmeURhdGU+MjAxOC0xMS0xNVQxNzoxMToyNTwveG1wOk1vZGlmeURhdGU+CiAgICAgICAgIDx4bXA6Q3JlYXRvclRvb2w+UGl4ZWxtYXRvciAzLjM8L3htcDpDcmVhdG9yVG9vbD4KICAgICAgICAgPHRpZmY6T3JpZW50YXRpb24+MTwvdGlmZjpPcmllbnRhdGlvbj4KICAgICAgICAgPHRpZmY6Q29tcHJlc3Npb24+NTwvdGlmZjpDb21wcmVzc2lvbj4KICAgICAgICAgPHRpZmY6UmVzb2x1dGlvblVuaXQ+MjwvdGlmZjpSZXNvbHV0aW9uVW5pdD4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+MTQ0PC90aWZmOllSZXNvbHV0aW9uPgogICAgICAgICA8dGlmZjpYUmVzb2x1dGlvbj4xNDQ8L3RpZmY6WFJlc29sdXRpb24+CiAgICAgICAgIDxleGlmOlBpeGVsWERpbWVuc2lvbj4yNTY8L2V4aWY6UGl4ZWxYRGltZW5zaW9uPgogICAgICAgICA8ZXhpZjpDb2xvclNwYWNlPjE8L2V4aWY6Q29sb3JTcGFj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" + webUI["html/js/configuration_ts.js"] = "Y2xhc3MgV2l6YXJkQ2F0ZWdvcnkgew0KICAgIGNvbnN0cnVjdG9yKCkgew0KICAgICAgICB0aGlzLkRvY3VtZW50SUQgPSAiY29udGVudCI7DQogICAgfQ0KICAgIGNyZWF0ZUNhdGVnb3J5SGVhZGxpbmUodmFsdWUpIHsNCiAgICAgICAgdmFyIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJINCIpOw0KICAgICAgICBlbGVtZW50LmlubmVySFRNTCA9IHZhbHVlOw0KICAgICAgICByZXR1cm4gZWxlbWVudDsNCiAgICB9DQp9DQpjbGFzcyBXaXphcmRJdGVtIGV4dGVuZHMgV2l6YXJkQ2F0ZWdvcnkgew0KICAgIGNvbnN0cnVjdG9yKGtleSwgaGVhZGxpbmUpIHsNCiAgICAgICAgc3VwZXIoKTsNCiAgICAgICAgdGhpcy5oZWFkbGluZSA9IGhlYWRsaW5lOw0KICAgICAgICB0aGlzLmtleSA9IGtleTsNCiAgICB9DQogICAgY3JlYXRlV2l6YXJkKCkgew0KICAgICAgICB2YXIgaGVhZGxpbmUgPSB0aGlzLmNyZWF0ZUNhdGVnb3J5SGVhZGxpbmUodGhpcy5oZWFkbGluZSk7DQogICAgICAgIHZhciBrZXkgPSB0aGlzLmtleTsNCiAgICAgICAgdmFyIGNvbnRlbnQgPSBuZXcgUG9wdXBDb250ZW50KCk7DQogICAgICAgIHZhciBkZXNjcmlwdGlvbjsNCiAgICAgICAgdmFyIGRvYyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHRoaXMuRG9jdW1lbnRJRCk7DQogICAgICAgIGRvYy5pbm5lckhUTUwgPSAiIjsNCiAgICAgICAgZG9jLmFwcGVuZENoaWxkKGhlYWRsaW5lKTsNCiAgICAgICAgc3dpdGNoIChrZXkpIHsNCiAgICAgICAgICAgIGNhc2UgInR1bmVyIjoNCiAgICAgICAgICAgICAgICB2YXIgdGV4dCA9IG5ldyBBcnJheSgpOw0KICAgICAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBuZXcgQXJyYXkoKTsNCiAgICAgICAgICAgICAgICBmb3IgKHZhciBpID0gMTsgaSA8PSAxMDA7IGkrKykgew0KICAgICAgICAgICAgICAgICAgICB0ZXh0LnB1c2goaSk7DQogICAgICAgICAgICAgICAgICAgIHZhbHVlcy5wdXNoKGkpOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCAiMSIsIGtleSk7DQogICAgICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgiY2xhc3MiLCAid2l6YXJkIik7DQogICAgICAgICAgICAgICAgc2VsZWN0LmlkID0ga2V5Ow0KICAgICAgICAgICAgICAgIGRvYy5hcHBlbmRDaGlsZChzZWxlY3QpOw0KICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uID0gInt7LndpemFyZC50dW5lci5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImVwZ1NvdXJjZSI6DQogICAgICAgICAgICAgICAgdmFyIHRleHQgPSBbIlBNUyIsICJYRVBHIl07DQogICAgICAgICAgICAgICAgdmFyIHZhbHVlcyA9IFsiUE1TIiwgIlhFUEciXTsNCiAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCAiWEVQRyIsIGtleSk7DQogICAgICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgiY2xhc3MiLCAid2l6YXJkIik7DQogICAgICAgICAgICAgICAgc2VsZWN0LmlkID0ga2V5Ow0KICAgICAgICAgICAgICAgIGRvYy5hcHBlbmRDaGlsZChzZWxlY3QpOw0KICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uID0gInt7LndpemFyZC5lcGdTb3VyY2UuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJtM3UiOg0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBrZXksICIiKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LndpemFyZC5tM3UucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgiY2xhc3MiLCAid2l6YXJkIik7DQogICAgICAgICAgICAgICAgaW5wdXQuaWQgPSBrZXk7DQogICAgICAgICAgICAgICAgZG9jLmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbiA9ICJ7ey53aXphcmQubTN1LmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAieG1sdHYiOg0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBrZXksICIiKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LndpemFyZC54bWx0di5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJjbGFzcyIsICJ3aXphcmQiKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5pZCA9IGtleTsNCiAgICAgICAgICAgICAgICBkb2MuYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uID0gInt7LndpemFyZC54bWx0di5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICAgICAgY29uc29sZS5sb2coa2V5KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgfQ0KICAgICAgICB2YXIgcHJlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiUFJFIik7DQogICAgICAgIHByZS5pbm5lckhUTUwgPSBkZXNjcmlwdGlvbjsNCiAgICAgICAgZG9jLmFwcGVuZENoaWxkKHByZSk7DQogICAgICAgIGNvbnNvbGUubG9nKGhlYWRsaW5lLCBrZXkpOw0KICAgIH0NCn0NCmZ1bmN0aW9uIHJlYWR5Rm9yQ29uZmlndXJhdGlvbih3aXphcmQpIHsNCiAgICB2YXIgc2VydmVyID0gbmV3IFNlcnZlcigiZ2V0U2VydmVyQ29uZmlnIik7DQogICAgc2VydmVyLnJlcXVlc3QobmV3IE9iamVjdCgpKTsNCiAgICBzaG93RWxlbWVudCgibG9hZGluZyIsIGZhbHNlKTsNCiAgICBjb25maWd1cmF0aW9uV2l6YXJkW3dpemFyZF0uY3JlYXRlV2l6YXJkKCk7DQp9DQpmdW5jdGlvbiBzYXZlV2l6YXJkKCkgew0KICAgIHZhciBjbWQgPSAic2F2ZVdpemFyZCI7DQogICAgdmFyIGRpdiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb250ZW50Iik7DQogICAgdmFyIGNvbmZpZyA9IGRpdi5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCJ3aXphcmQiKTsNCiAgICB2YXIgd2l6YXJkID0gbmV3IE9iamVjdCgpOw0KICAgIGZvciAodmFyIGkgPSAwOyBpIDwgY29uZmlnLmxlbmd0aDsgaSsrKSB7DQogICAgICAgIHZhciBuYW1lOw0KICAgICAgICB2YXIgdmFsdWU7DQogICAgICAgIHN3aXRjaCAoY29uZmlnW2ldLnRhZ05hbWUpIHsNCiAgICAgICAgICAgIGNhc2UgIlNFTEVDVCI6DQogICAgICAgICAgICAgICAgbmFtZSA9IGNvbmZpZ1tpXS5uYW1lOw0KICAgICAgICAgICAgICAgIHZhbHVlID0gY29uZmlnW2ldLnZhbHVlOw0KICAgICAgICAgICAgICAgIC8vIFdlbm4gZGVyIFdlcnQgZWluZSBaYWhsIGlzdCwgd2lyZCBkaWVzZXIgYWxzIFphaGwgZ2VzcGVpY2hlcnQNCiAgICAgICAgICAgICAgICBpZiAoaXNOYU4odmFsdWUpKSB7DQogICAgICAgICAgICAgICAgICAgIHdpemFyZFtuYW1lXSA9IHZhbHVlOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICAgICAgd2l6YXJkW25hbWVdID0gcGFyc2VJbnQodmFsdWUpOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgIklOUFVUIjoNCiAgICAgICAgICAgICAgICBzd2l0Y2ggKGNvbmZpZ1tpXS50eXBlKSB7DQogICAgICAgICAgICAgICAgICAgIGNhc2UgInRleHQiOg0KICAgICAgICAgICAgICAgICAgICAgICAgbmFtZSA9IGNvbmZpZ1tpXS5uYW1lOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSBjb25maWdbaV0udmFsdWU7DQogICAgICAgICAgICAgICAgICAgICAgICBpZiAodmFsdWUubGVuZ3RoID09IDApIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgbXNnID0gbmFtZS50b1VwcGVyQ2FzZSgpICsgIjogIiArICJ7ey5hbGVydC5taXNzaW5nSW5wdXR9fSI7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgYWxlcnQobXNnKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICB3aXphcmRbbmFtZV0gPSB2YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICAgICAgLy8gY29kZS4uLg0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICB9DQogICAgfQ0KICAgIHZhciBkYXRhID0gbmV3IE9iamVjdCgpOw0KICAgIGRhdGFbIndpemFyZCJdID0gd2l6YXJkOw0KICAgIHZhciBzZXJ2ZXIgPSBuZXcgU2VydmVyKGNtZCk7DQogICAgc2VydmVyLnJlcXVlc3QoZGF0YSk7DQogICAgY29uc29sZS5sb2coZGF0YSk7DQp9DQovLyBXaXphcmQNCnZhciBjb25maWd1cmF0aW9uV2l6YXJkID0gbmV3IEFycmF5KCk7DQpjb25maWd1cmF0aW9uV2l6YXJkLnB1c2gobmV3IFdpemFyZEl0ZW0oInR1bmVyIiwgInt7LndpemFyZC50dW5lci50aXRsZX19IikpOw0KY29uZmlndXJhdGlvbldpemFyZC5wdXNoKG5ldyBXaXphcmRJdGVtKCJlcGdTb3VyY2UiLCAie3sud2l6YXJkLmVwZ1NvdXJjZS50aXRsZX19IikpOw0KY29uZmlndXJhdGlvbldpemFyZC5wdXNoKG5ldyBXaXphcmRJdGVtKCJtM3UiLCAie3sud2l6YXJkLm0zdS50aXRsZX19IikpOw0KY29uZmlndXJhdGlvbldpemFyZC5wdXNoKG5ldyBXaXphcmRJdGVtKCJ4bWx0diIsICJ7ey53aXphcmQueG1sdHYudGl0bGV9fSIpKTsNCg==" + webUI["html/js/mapping-editor.js"] = "dmFyIG1hcHBpbmdFcnJvciAgPSBmYWxzZTsNCnZhciBidWxrICAgICAgICAgID0gZmFsc2U7DQp2YXIgYnVsa0VkaXRBbGwgICA9IGZhbHNlOyANCnZhciBzZWxlY3RPYmogICAgID0gbmV3IE9iamVjdCgpOw0KdmFyIHNlYXJjaE9iaiAgICAgPSBuZXcgT2JqZWN0KCk7DQoNCnZhciBidWxrSURzICAgICAgID0gbmV3IEFycmF5KCk7DQp2YXIgYnVsa0NoYW5nZU9iaiA9IG5ldyBPYmplY3QoKTsNCg0KZnVuY3Rpb24gY2hlY2tVbmRvKGtleSwgZWxtKSB7DQogIHZhciB0bXAgPSBuZXcgT2JqZWN0KCk7DQogIHRtcCA9IGVsbQ0KICBjb25zb2xlLmxvZygiLS0iKTsNCiAgaWYgKHVuZG8uaGFzT3duUHJvcGVydHkoImVwZ01hcHBpbmciKSkgew0KICAgIHhFUEdbImVwZ01hcHBpbmciXSA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkodW5kb1siZXBnTWFwcGluZyJdKSk7Ow0KICB9IGVsc2Ugew0KICAgIHVuZG9bImVwZ01hcHBpbmciXSA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkoZWxtKSk7DQogIH0NCn0NCg0KLy92YXIgcGxleENhdGVnb3JpZXMgPSBuZXcgQXJyYXkoIi0iLCAiQWN0aW9uIHNwb3J0cyIsICJBY3Rpb24iLCAiQWR1bHRzIG9ubHkiLCAiQWR2ZW50dXJlIiwgIkFlcm9iaWNzIiwgIkFuaW1hbHMiLCAiQW5pbWF0ZWQiLCAiQW5pbWUiLCAiQW50aG9sb2d5IiwgIkFyY2hlcnkiLCAiQXJ0IiwgIkFydHMvY3JhZnRzIiwgIkF1Y3Rpb24iLCAiQXV0byByYWNpbmciLCAiQXV0byIsICJBdmlhdGlvbiIsICJBd2FyZHMiLCAiQmFsbGV0IiwgIkJhc2ViYWxsIiwgIkJhc2tldGJhbGwiLCAiQmljeWNsZSByYWNpbmciLCAiQmljeWNsZSIsICJCaWxsaWFyZHMiLCAiQmlvZ3JhcGh5IiwgIkJvYXQgcmFjaW5nIiwgIkJvYXQiLCAiQm93bGluZyIsICJCb3hpbmciLCAiQnVzLi9maW5hbmNpYWwiLCAiQ2hpbGRyZW4iLCAiQ29sbGVjdGlibGVzIiwgIkNvbWVkeSBkcmFtYSIsICJDb21lZHkiLCAiQ29tbXVuaXR5IiwgIkNvbXB1dGVycyIsICJDb25zdW1lciIsICJDb29raW5nIiwgIkNyaW1lIGRyYW1hIiwgIkNyaW1lIiwgIkRhbmNlIiwgIkRhcmsgY29tZWR5IiwgIkRlYmF0ZSIsICJEaXZpbmciLCAiRG9jdWRyYW1hIiwgIkRvY3VtZW50YXJ5IiwgIkRyYW1hIiwgIkVkdWNhdGlvbmFsIiwgIkVudGVydGFpbm1lbnQiLCAiRW52aXJvbm1lbnQiLCAiRXF1ZXN0cmlhbiIsICJFcm90aWMiLCAiRXZlbnQiLCAiRmFudGFzeSIsICJGYXNoaW9uIiwgIkZlYXR1cmUgRmlsbSIsICJGaXNoaW5nIiwgIkZvb3RiYWxsIiwgIkdhbWUgc2hvdyIsICJHYW1pbmciLCAiR2F5L2xlc2JpYW4iLCAiR29sZiIsICJIYW5kYmFsbCIsICJIZWFsdGgiLCAiSGlzdG9yaWNhbCBkcmFtYSIsICJIaXN0b3J5IiwgIkhvY2tleSIsICJIb2xpZGF5IiwgIkhvbWUgaW1wcm92ZW1lbnQiLCAiSG9ycm9yIiwgIkhvcnNlIiwgIkhvdXNlL2dhcmRlbiIsICJIb3ctdG8iLCAiSW50ZXJ2aWV3IiwgIkludGwgc29jY2VyIiwgIkxhdyIsICJNYXJ0aWFsIGFydHMiLCAiTWVkaWNhbCIsICJNaWxpdGFyeSIsICJNaW5pc2VyaWVzIiwgIk1peGVkIG1hcnRpYWwgYXJ0cyIsICJNb3RvcmN5Y2xlIHJhY2luZyIsICJNb3RvcmN5Y2xlIiwgIk1vdG9yc3BvcnRzIiwgIk1vdW50YWluIGJpa2luZyIsICJNdXNpYyIsICJNdXNpY2FsIGNvbWVkeSIsICJNdXNpY2FsIiwgIk15c3RlcnkiLCAiTmF0dXJlIiwgIk5ld3MiLCAiTmV3c21hZ2F6aW5lIiwgIk9seW1waWNzIiwgIk9wZXJhIiwgIk91dGRvb3JzIiwgIlBhcmFkZSIsICJQYXJhbm9ybWFsIiwgIlBhcmVudGluZyIsICJQZXJmb3JtaW5nIGFydHMiLCAiUGxheW9mZiBzcG9ydHMiLCAiUG9rZXIiLCAiUG9saXRpY3MiLCAiUHJvIHdyZXN0bGluZyIsICJQdWJsaWMgYWZmYWlycyIsICJSZWFsaXR5IiwgIlJlbGlnaW91cyIsICJSb2RlbyIsICJSb2xsZXIgZGVyYnkiLCAiUm9tYW5jZSIsICJSb21hbnRpYyBjb21lZHkiLCAiUnVnYnkiLCAiUnVubmluZyIsICJTYWlsaW5nIiwgIlNjaWVuY2UgZmljdGlvbiIsICJTY2llbmNlIiwgIlNlbGYgaW1wcm92ZW1lbnQiLCAiU2VyaWVzIiwgIlNob290aW5nIiwgIlNob3BwaW5nIiwgIlNob3J0IEZpbG0iLCAiU2l0Y29tIiwgIlNraWluZyIsICJTbm9va2VyIiwgIlNvYXAiLCAiU29jY2VyIiwgIlNwZWNpYWwiLCAiU3BvcnRzIiwgInNwb3J0cyIsICJTcG9ydHMgZXZlbnQiLCAiU3BvcnRzIG5vbi1ldmVudCIsICJTcG9ydHMgdGFsayIsICJTdGFuZHVwIiwgIlN1cmZpbmciLCAiU3VzcGVuc2UiLCAiVFYgTW92aWUiLCAiVGFsayIsICJUZWNobm9sb2d5IiwgIlRlbm5pcyIsICJUaGVhdGVyIiwgIlRocmlsbGVyIiwgIlRyYWNrL2ZpZWxkIiwgIlRyYXZlbCIsICJUcmlhdGhsb24iLCAiVmFyaWV0eSIsICJWb2xsZXliYWxsIiwgIldhciIsICJXYXRlcnNwb3J0cyIsICJXZWF0aGVyIiwgIldlc3Rlcm4iLCAiV3Jlc3RsaW5nIiwgIllhY2h0IHJhY2luZyIsICJtb3ZpZSIsICJzZXJpZXMiLCAic3BvcnRzIiwgInR2c2hvdyIpOw0KdmFyIHBsZXhDYXRlZ29yaWVzVmFsdWVzID0gbmV3IEFycmF5KCItIiwgIktpZHMiLCAiTmV3cyIsICJNb3ZpZSIsICJTZXJpZXMiLCAiU3BvcnRzIikNCnZhciBwbGV4Q2F0ZWdvcmllc09wdGlvbiA9IG5ldyBBcnJheSgiLSIsICJLaWRzIChFbWJ5IG9ubHkpIiwgIk5ld3MiLCAiTW92aWUiLCAiU2VyaWVzIiwgIlNwb3J0cyIpDQoNCg0KZnVuY3Rpb24gb3Blbk1hcHBpbmdFZGl0b3IoZWxtKSB7DQogIHZhciBjb2x1bW5Ub1NvcnQgID0gMQ0KDQogIGNoZWNrVW5kbygiZXBnTWFwcGluZyIsIHhFUEdbImVwZ01hcHBpbmciXSkNCg0KICB2YXIgbmV3RGl2ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNldHRpbmdzIik7DQogIA0KICB2YXIgbmV3RW50cnkgPSBuZXcgT2JqZWN0KCk7DQogIG5ld0VudHJ5WyJfZWxlbWVudCJdICA9ICJIUiI7DQogIG5ld0Rpdi5hcHBlbmRDaGlsZChjcmVhdGVFbGVtZW50KG5ld0VudHJ5KSk7DQoNCiAgdmFyIG5ld0VudHJ5ID0gbmV3IE9iamVjdCgpOw0KICBuZXdFbnRyeVsiX2VsZW1lbnQiXSAgICA9ICJJTlBVVCI7DQogIG5ld0VudHJ5WyJ0eXBlIl0gICAgICAgID0gImJ1dHRvbiI7DQogIG5ld0VudHJ5WyJjbGFzcyJdICAgICAgID0gImJ1dHRvbiI7DQogIG5ld0VudHJ5WyJ2YWx1ZSJdICAgICAgID0gIlNhdmUiOw0KICBuZXdFbnRyeVsib25jbGljayJdICAgICA9ICJzYXZlWEVQRygpIjsNCiAgbmV3RGl2LmFwcGVuZENoaWxkKGNyZWF0ZUVsZW1lbnQobmV3RW50cnkpKTsNCg0KICB2YXIgbmV3RW50cnkgPSBuZXcgT2JqZWN0KCk7DQogIG5ld0VudHJ5WyJfZWxlbWVudCJdICAgID0gIklOUFVUIjsNCiAgbmV3RW50cnlbInR5cGUiXSAgICAgICAgPSAiYnV0dG9uIjsNCiAgbmV3RW50cnlbImNsYXNzIl0gICAgICAgPSAiYnV0dG9uIjsNCiAgbmV3RW50cnlbInZhbHVlIl0gICAgICAgPSAiQnVsayBFZGl0IjsNCiAgbmV3RW50cnlbIm9uY2xpY2siXSAgICAgPSAiYnVsa0VkaXQoKSI7DQogIG5ld0Rpdi5hcHBlbmRDaGlsZChjcmVhdGVFbGVtZW50KG5ld0VudHJ5KSk7DQoNCiAgdmFyIG5ld0VudHJ5ID0gbmV3IE9iamVjdCgpOw0KICBuZXdFbnRyeVsiX2VsZW1lbnQiXSAgICA9ICJJTlBVVCI7DQogIG5ld0VudHJ5WyJ0eXBlIl0gICAgICAgID0gImJ1dHRvbiI7DQogIG5ld0VudHJ5WyJjbGFzcyJdICAgICAgID0gImJ1dHRvbiI7DQogIG5ld0VudHJ5WyJ2YWx1ZSJdICAgICAgID0gIlNob3cgWEVQRyI7DQogIG5ld0VudHJ5WyJvbmNsaWNrIl0gICAgID0gInNob3dYRVBHKCkiOw0KICBuZXdEaXYuYXBwZW5kQ2hpbGQoY3JlYXRlRWxlbWVudChuZXdFbnRyeSkpOw0KDQogIHZhciBuZXdFbnRyeSA9IG5ldyBPYmplY3QoKTsNCiAgbmV3RW50cnlbIl9lbGVtZW50Il0gICAgPSAiSU5QVVQiOw0KICBuZXdFbnRyeVsiY2xhc3MiXSAgICAgICA9ICJzZWFyY2giOw0KICBuZXdFbnRyeVsiaWQiXSAgICAgICAgICA9ICJzZWFyY2hNYXBwaW5nIjsNCiAgbmV3RW50cnlbInR5cGUiXSAgICAgICAgPSAic2VhcmNoIjsNCiAgbmV3RW50cnlbInBsYWNlaG9sZGVyIl0gPSAiU2VhcmNoIjsNCiAgbmV3RW50cnlbIm9uY2hhbmdlIl0gICAgPSAic2VhcmNoSW5NYXBwaW5nKCkiOw0KICBuZXdEaXYuYXBwZW5kQ2hpbGQoY3JlYXRlRWxlbWVudChuZXdFbnRyeSkpOw0KDQogIHZhciBkaXYgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic2V0dGluZ3MiKTsNCiAgLy9zY3JlZW5Mb2coIkR1cGxpY2F0ZSBJRCIsICJlcnJvciIsIHRydWUpDQogIA0KDQogIC8vIEJ1aWxkIHRhYmxlDQoNCiAgdmFyIG5ld1dyYXBwZXIgPSBuZXcgT2JqZWN0KCk7DQogIG5ld1dyYXBwZXJbIl9lbGVtZW50Il0gID0gIkRJViI7DQogIG5ld1dyYXBwZXJbImlkIl0gICAgICAgID0gImJveC13cmFwcGVyIjsNCiAgZGl2LmFwcGVuZENoaWxkKGNyZWF0ZUVsZW1lbnQobmV3V3JhcHBlcikpOw0KDQoNCiAgdmFyIG5ld1RhYmxlID0gbmV3IE9iamVjdCgpOw0KICBuZXdUYWJsZVsiX2VsZW1lbnQiXSAgPSAiVEFCTEUiOw0KICBuZXdUYWJsZVsiaWQiXSAgICAgICAgPSAiaWRfbWFwcGluZyI7DQogIG5ld1RhYmxlWyJjbGFzcyJdICAgICA9ICJ0YWJsZS1tYXBwaW5nIjsNCiAgZGl2Lmxhc3RDaGlsZC5hcHBlbmRDaGlsZChjcmVhdGVFbGVtZW50KG5ld1RhYmxlKSk7DQogIHNob3dMb2FkaW5nU2NyZWVuKHRydWUpOw0KDQogIHNldFRpbWVvdXQoZnVuY3Rpb24oKXsgDQogICAgY3JlYXRlTWFwcGluZ1RhYmxlKCk7IA0KICB9LCAxMCk7DQoNCn0NCg0KZnVuY3Rpb24gY3JlYXRlU2VhcmNoT2JqKCkgew0KICBzZWFyY2hPYmogPSBuZXcgT2JqZWN0KCk7DQogIHZhciBJRHMgPSBnZXRPYmpLZXlzKHhFUEdbImVwZ01hcHBpbmciXSkNCiAgZm9yICh2YXIgaSA9IElEcy5sZW5ndGggLSAxOyBpID49IDA7IGktLSkgew0KICAgIHZhciBpdGVtID0geEVQR1siZXBnTWFwcGluZyJdW0lEc1tpXV07DQogICAgdmFyIHNlYXJjaElEID0gaXRlbVsieC1lcGciXTsNCiAgICB2YXIgc2VhcmNoVmFsdWUgPSAiIjsgDQogICAgc2VhcmNoVmFsdWUgPSBzZWFyY2hWYWx1ZSArIGl0ZW1bIngtY2hhbm5lbElEIl0gKyAiICI7DQogICAgc2VhcmNoVmFsdWUgPSBzZWFyY2hWYWx1ZSArIGl0ZW1bIngtY2F0ZWdvcnkiXSArICIgIjsNCiAgICBzZWFyY2hWYWx1ZSA9IHNlYXJjaFZhbHVlICsgaXRlbVsieC1uYW1lIl0gKyAiICI7DQogICAgc2VhcmNoVmFsdWUgPSBzZWFyY2hWYWx1ZSArIGl0ZW1bIngtZ3JvdXAtdGl0bGUiXSArICIgIjsNCiAgICBzZWFyY2hWYWx1ZSA9IHNlYXJjaFZhbHVlICsgaXRlbVsieC14bWx0di1maWxlIl0gKyAiICI7DQogICAgc2VhcmNoVmFsdWUgPSBzZWFyY2hWYWx1ZSArIGl0ZW1bIl9maWxlLm0zdS5uYW1lIl0gKyAiICI7DQoNCiAgICBzd2l0Y2goaXRlbVsieC1hY3RpdmUiXSkgew0KICAgICAgY2FzZSB0cnVlOiAgc2VhcmNoVmFsdWUgPSBzZWFyY2hWYWx1ZSArICJvbmxpbmUiOyBicmVhazsNCiAgICAgIGNhc2UgZmFsc2U6IHNlYXJjaFZhbHVlID0gc2VhcmNoVmFsdWUgKyAib2ZmbGluZSI7IGJyZWFrOw0KICAgIH0NCg0KICAgIHNlYXJjaE9ialtzZWFyY2hWYWx1ZV0gPSBzZWFyY2hJRDsNCg0KICB9DQp9DQoNCg0KZnVuY3Rpb24gY2FsY3VsYXRlV3JhcHBlckhlaWdodCgpIHsNCg0KICBpZiAoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImJveC13cmFwcGVyIikpew0KDQogICAgdmFyIGVsbSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJib3gtd3JhcHBlciIpOw0KICAgIA0KICAgIHZhciBkaXZzID0gbmV3IEFycmF5KCJteVN0cmVhbXNCb3giLCAiY2xpZW50SW5mbyIsICJzZXR0aW5ncyIpOw0KICAgIHZhciBlbGVtZW50c0hlaWdodCA9IDAgLSBlbG0ub2Zmc2V0SGVpZ2h0Ow0KICAgIGZvciAodmFyIGkgPSAwOyBpIDwgZGl2cy5sZW5ndGg7IGkrKykgew0KICAgICAgZWxlbWVudHNIZWlnaHQgPSBlbGVtZW50c0hlaWdodCArIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGRpdnNbaV0pLm9mZnNldEhlaWdodDsNCiAgICB9DQoNCiAgICBlbG0uc3R5bGUuaGVpZ2h0ID0gd2luZG93LmlubmVySGVpZ2h0IC0gZWxlbWVudHNIZWlnaHQgKyAicHgiOw0KDQogIH0NCg0KICBpZiAoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm1lbnUtd3JhcHBlciIpKXsNCg0KICAgIHZhciBlbG0gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibWVudS13cmFwcGVyIik7DQogICAgDQogICAgdmFyIG9mZmVzdCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzZXR0aW5ncyIpLm9mZnNldEhlaWdodCArIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJteVN0cmVhbXNCb3giKS5vZmZzZXRIZWlnaHQgKyBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY2xpZW50SW5mbyIpLm9mZnNldEhlaWdodDsNCiAgICANCiAgICBpZiAod2luZG93LmlubmVySGVpZ2h0ID4gb2ZmZXN0KSB7DQogICAgICBlbG0uc3R5bGUuaGVpZ2h0ID0gd2luZG93LmlubmVySGVpZ2h0ICsgInB4Ig0KICAgIH0gZWxzZSB7DQogICAgICBlbG0uc3R5bGUuaGVpZ2h0ID0gb2ZmZXN0ICsgInB4Ig0KICAgIH0NCiAgICANCg0KICB9DQoNCg0KfQ0KDQpmdW5jdGlvbiBjcmVhdGVNYXBwaW5nVGFibGUoKSB7DQogIGNvbHVtblRvU29ydCA9IDE7DQogIGNyZWF0ZVNlYXJjaE9iaigpOw0KDQogIC8vIENyZWF0ZSB0YWJsZSAoSGVhZGVyKQ0KICB2YXIgdGFibGUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiaWRfbWFwcGluZyIpOw0KICB0YWJsZS5pbm5lckhUTUwgPSAiIjsNCiAgdmFyIG5ld1RSID0gbmV3IE9iamVjdCgpOw0KICBuZXdUUlsiX2VsZW1lbnQiXSA9ICJUUiI7DQogIG5ld1RSWyJjbGFzcyJdICAgID0gInRhYmxlLW1hcHBpbmctaGVhZGVyIjsNCiAgdGFibGUuYXBwZW5kQ2hpbGQoY3JlYXRlRWxlbWVudChuZXdUUikpOw0KDQogIHZhciB0ciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJpZF9tYXBwaW5nIikubGFzdENoaWxkOw0KICB2YXIgdHJIZWFkbGluZXMgPSBuZXcgQXJyYXkoIkJ1bGsiLCAiQ2guIE5vLiIsICJMb2dvIiwgIkNoYW5uZWwgTmFtZSIsICJQbGF5bGlzdCIsICJHcm91cCBUaXRsZSIsICJYTUxUViBGaWxlIiwgIlhNTFRWIElEIiwgIlRpbWVzaGlmdCIpDQoNCiAgZm9yICh2YXIgaSA9IDA7IGkgPCB0ckhlYWRsaW5lcy5sZW5ndGg7IGkrKykgew0KICAgIHZhciBuZXdURCA9IG5ldyBPYmplY3QoKTsNCg0KICAgIG5ld1REWyJfZWxlbWVudCJdID0gIlREIjsNCiAgICBuZXdURFsiX3RleHQiXSAgICA9IHRySGVhZGxpbmVzW2ldOw0KDQogICAgDQoNCiAgICB2YXIgd2lkdGggPSAiIjsNCiAgICBzd2l0Y2godHJIZWFkbGluZXNbaV0pIHsNCg0KICAgICAgY2FzZSAiQnVsayI6ICANCiAgICAgICAgDQogICAgICAgIG1heFdpZHRoID0gIjMycHgiOyANCiAgICAgICAgbWluV2lkdGggPSAiMzJweCI7IA0KICAgIA0KICAgICAgICAvLyBDcmVhdGUgYnVsayBURA0KICAgICAgICB2YXIgbmV3Q2hlY2tib3ggPSBuZXcgT2JqZWN0KCk7DQogICAgICAgIG5ld0NoZWNrYm94WyJfZWxlbWVudCJdID0gIklOUFVUIjsNCiAgICAgICAgbmV3Q2hlY2tib3hbInR5cGUiXSAgICAgPSAiY2hlY2tib3giOw0KICAgICAgICBuZXdDaGVja2JveFsiY2xhc3MiXSAgICA9ICJidWxrIGhpZGVCdWxrIjsNCiAgICAgICAgbmV3Q2hlY2tib3hbIm9ubW91c2VvdXQiXSA9ICJqYXZhc2NyaXB0OiB0aGlzLmJsdXIoKSINCiAgICAgICAgbmV3Q2hlY2tib3hbIm9uY2xpY2siXSAgICA9ICJqYXZhc2NyaXB0OiBidWxrRWRpdEFsbENoYW5uZWxzKCkiDQoNCiAgICANCiAgICAgICAgLy9uZXdURC5hcHBlbmRDaGlsZChjcmVhdGVFbGVtZW50KG5ld0NoZWNrYm94KSk7DQoNCiAgICAgICAgYnJlYWs7DQoNCiAgICAgIGNhc2UgIkNoLiBOby4iOiANCiAgICAgICAgbWF4V2lkdGggPSAiODBweCI7IA0KICAgICAgICBtaW5XaWR0aCA9ICI3MHB4IjsgDQogICAgICAgIG5ld1REWyJvbmNsaWNrIl0gID0gImphdnNjcmlwdDogc29ydFRhYmxlKCIgKyBpICsgIik7IjsNCiAgICAgICAgbmV3VERbImNsYXNzIl0gICAgPSAicG9pbnRlciI7DQogICAgICAgIGJyZWFrOw0KICAgICAgDQogICAgICBjYXNlICJMb2dvIjogIG1heFdpZHRoID0gIjEyMHB4IjsgbWluV2lkdGggPSAiNjBweCI7IGJyZWFrOw0KICAgICAgDQogICAgICBjYXNlICJDaGFubmVsIE5hbWUiOiAgDQogICAgICAgIG1heFdpZHRoID0gIjUwJSI7IA0KICAgICAgICBtaW5XaWR0aCA9ICIyMDBweCI7IA0KICAgICAgICBuZXdURFsib25jbGljayJdICA9ICJqYXZzY3JpcHQ6IHNvcnRUYWJsZSgiICsgaSArICIpOyI7DQogICAgICAgIG5ld1REWyJjbGFzcyJdID0gInBvaW50ZXIiOw0KICAgICAgICBicmVhazsNCg0KICAgICAgY2FzZSAiUGxheWxpc3QiOiAgICAgIA0KICAgICAgICBtYXhXaWR0aCA9ICIxNTBweCI7IA0KICAgICAgICBtaW5XaWR0aCA9ICIxMDBweCI7IA0KICAgICAgICBuZXdURFsib25jbGljayJdICA9ICJqYXZzY3JpcHQ6IHNvcnRUYWJsZSgiICsgaSArICIpOyI7DQogICAgICAgIG5ld1REWyJjbGFzcyJdICAgID0gInBvaW50ZXIiOw0KICAgICAgICBicmVhazsNCiAgICAgIA0KICAgICAgY2FzZSAiR3JvdXAgVGl0bGUiOiAgIA0KICAgICAgICBtYXhXaWR0aCA9ICIxNTBweCI7IA0KICAgICAgICBtaW5XaWR0aCA9ICIxMDBweCI7IA0KICAgICAgICBuZXdURFsib25jbGljayJdICA9ICJqYXZzY3JpcHQ6IHNvcnRUYWJsZSgiICsgaSArICIpOyI7DQogICAgICAgIG5ld1REWyJjbGFzcyJdICAgID0gInBvaW50ZXIiOw0KICAgICAgICBicmVhazsNCiAgICAgIA0KICAgICAgY2FzZSAiWE1MVFYgRmlsZSI6ICAgIA0KICAgICAgICBtYXhXaWR0aCA9ICIxNTBweCI7IA0KICAgICAgICBtaW5XaWR0aCA9ICIxMDBweCI7IA0KICAgICAgICAvL25ld1REWyJvbmNsaWNrIl0gID0gImphdnNjcmlwdDogc29ydFRhYmxlKCIgKyBpICsgIik7IjsNCiAgICAgICAgbmV3VERbImNsYXNzIl0gICAgPSAiIjsNCiAgICAgICAgYnJlYWs7DQogICAgICANCg0KICAgICAgY2FzZSAiWE1MVFYgSUQiOiAgICAgIG1heFdpZHRoID0gIjE1MHB4IjsgbWluV2lkdGggPSAiMTAwcHgiOyBicmVhazsNCg0KICAgICAgY2FzZSAiVGltZXNoaWZ0IjogICAgICBtYXhXaWR0aCA9ICI1MHB4IjsgbWluV2lkdGggPSAiMjBweCI7IGJyZWFrOw0KDQogICAgICBkZWZhdWx0OiANCiAgICAgICAgbmV3VERbImNsYXNzIl0gICAgPSAiIjsNCiAgICAgICAgYnJlYWs7DQogICAgfQ0KDQogICAgdHIuYXBwZW5kQ2hpbGQoY3JlYXRlRWxlbWVudChuZXdURCkpOw0KICAgIGlmICh0ckhlYWRsaW5lc1tpXSA9PSAiQnVsayIpIHsNCiAgICAgIHRyLmxhc3RDaGlsZC5pbm5lckhUTUwgPSAiIjsNCiAgICAgIHRyLmxhc3RDaGlsZC5hcHBlbmRDaGlsZChjcmVhdGVFbGVtZW50KG5ld0NoZWNrYm94KSk7DQogICAgICANCiAgICB9DQogICAgDQogICAgdmFyIGVsbSA9IHRyLmxhc3RDaGlsZDsNCiAgICBlbG0uc3R5bGUud2lkdGggPSBtYXhXaWR0aDsNCiAgICBlbG0uc3R5bGUubWF4V2lkdGggPSBtYXhXaWR0aDsNCiAgICBlbG0uc3R5bGUubWluV2lkdGggPSBtaW5XaWR0aDsNCg0KICB9DQogIGNhbGN1bGF0ZVdyYXBwZXJIZWlnaHQoKTsNCiAgdmFyIElEcyA9IGdldE9iaktleXMoeEVQR1siZXBnTWFwcGluZyJdKQ0KDQogIHZhciBhbGxYbWx0dkZpbGVzID0gZ2V0T2JqS2V5cyh4RVBHWyJ4bWx0dk1hcCJdKTsNCg0KICBpZiAoYWxsWG1sdHZGaWxlcyA9PSAwKSB7DQogICAgc2hvd0xvYWRpbmdTY3JlZW4oZmFsc2UpOw0KICAgIHJldHVybjsNCiAgfQ0KDQogIC8vIFNvcnQgSURzDQogIHZhciBwb3NPYmogPSBuZXcgT2JqZWN0KCk7DQogIGZvciAodmFyIGkgPSAwOyBpIDwgSURzLmxlbmd0aDsgaSsrKSB7DQogICAgdmFyIGl0ZW0gID0geEVQR1siZXBnTWFwcGluZyJdW0lEc1tpXV07DQogICAgdmFyIHBvcw0KICAgIHN3aXRjaChpc05hTih4RVBHWyJlcGdNYXBwaW5nIl1bSURzW2ldXVsieC1jaGFubmVsSUQiXSkpIHsNCiAgICAgIGNhc2UgZmFsc2U6IHBvcyA9IHBhcnNlRmxvYXQoeEVQR1siZXBnTWFwcGluZyJdW0lEc1tpXV1bIngtY2hhbm5lbElEIl0pIDsgYnJlYWs7DQogICAgfQ0KICAgIHBvc09ialtwb3NdID0gaXRlbTsNCiAgfQ0KICBwb3NGbG9hdCA9IGdldE9iaktleXMocG9zT2JqKQ0KICBmdW5jdGlvbiBzb3J0RmxvYXQoYSxiKSB7IHJldHVybiBhIC0gYjsgfQ0KICBwb3NGbG9hdC5zb3J0KHNvcnRGbG9hdCkNCg0KICAvL2NvbnNvbGUubG9nKHBvc0Zsb2F0KTsNCg0KICAvLyAtLS0NCg0KICBpZiAoSURzLmxlbmd0aCA+IDIwMCkgew0KICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKXsgDQogICAgICBzaG93TG9hZGluZ1NjcmVlbih0cnVlKTsNCiAgICB9LCAxKTsNCg0KICB9DQoNCg0KICAvLyB0YWJsZSBmb3IgaW50IGNoYW5uZWwgSUQncw0KICBmb3IgKHZhciBpID0gMDsgaSA8IHBvc0Zsb2F0Lmxlbmd0aDsgaSsrKSB7DQoNCiAgICB2YXIgdGFibGUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiaWRfbWFwcGluZyIpOw0KICAgIHZhciBpdGVtICA9IHBvc09ialtwb3NGbG9hdFtpXV07DQogICAgLy92YXIgaXRlbSAgPSB4RVBHWyJlcGdNYXBwaW5nIl1bSURzW2ldXTsNCiAgICAvL2NvbnNvbGUubG9nKGl0ZW0pOw0KICAgIHZhciBuZXdUUiA9IG5ldyBPYmplY3QoKTsNCiAgICBuZXdUUlsiX2VsZW1lbnQiXSAgICAgICA9ICJUUiI7DQogICAgbmV3VFJbImNsYXNzIl0gICAgICAgICAgPSAiIjsNCiAgICBuZXdUUlsiaWQiXSAgICAgICAgICAgICA9IGl0ZW1bIngtZXBnIl07DQogICAgbmV3VFJbIm9uY29udGV4dG1lbnUiXSAgPSAnamF2YXNjcmlwdDogc3dpdGNoQ2hhbm5lbFN0YXR1cygiJyArIGl0ZW1bIngtZXBnIl0gKyAnIik7IHJldHVybiBmYWxzZTsnOw0KICAgIHRhYmxlLmFwcGVuZENoaWxkKGNyZWF0ZUVsZW1lbnQobmV3VFIpKTsNCg0KICAgIHZhciB0ciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJpZF9tYXBwaW5nIikubGFzdENoaWxkOw0KICAgIA0KICAgIC8vIENyZWF0ZSBidWxrIFREDQogICAgdmFyIG5ld1REID0gbmV3IE9iamVjdCgpOw0KICAgIG5ld1REWyJfZWxlbWVudCJdICAgPSAiSU5QVVQiOw0KICAgIG5ld1REWyJ0eXBlIl0gICAgICAgPSAiY2hlY2tib3giOw0KICAgIG5ld1REWyJjbGFzcyJdICAgICAgPSAiYnVsayBoaWRlQnVsayI7DQogICAgbmV3VERbIm9ubW91c2VvdXQiXSA9ICJqYXZhc2NyaXB0OiB0aGlzLmJsdXIoKSINCiAgICANCiAgICBjcmVhdGVOZXdURChuZXdURCwgdHIpOw0KICAgIA0KDQogICAgLy8gQ3JlYXRlIElEIFREDQogICAgdmFyIG5ld1REID0gbmV3IE9iamVjdCgpOw0KICAgIG5ld1REWyJfZWxlbWVudCJdID0gIklOUFVUIjsNCiAgICBuZXdURFsidHlwZSJdICAgICA9ICJ0ZXh0Ig0KICAgIG5ld1REWyJjbGFzcyJdICAgID0gInc0MHB4IjsNCiAgICBuZXdURFsidmFsdWUiXSAgICA9IGl0ZW1bIngtY2hhbm5lbElEIl07DQogICAgbmV3VERbIm9uZm9jdXNvdXQiXSA9ICJqYXZhc2NyaXB0OiBhcnJhbmdlVGFibGUodGhpcyk7Ig0KICAgIGNyZWF0ZU5ld1REKG5ld1RELCB0cik7DQoNCiAgICAvLyBDcmVhdGUgSU1HIFREDQogICAgdmFyIG5ld1REID0gbmV3IE9iamVjdCgpOw0KICAgIG5ld1REWyJfZWxlbWVudCJdID0gIklNRyI7DQogICAgbmV3VERbIm9uY2xpY2siXSAgPSAnamF2YXNjcmlwdDogbWFwcGluZ0RldGFpbCgiJyArIGl0ZW1bIngtZXBnIl0gKyAnIik7JzsNCiAgICBpZiAoaXRlbVsidHZnLWxvZ28iXSAhPSB1bmRlZmluZWQpIHsNCiAgICAgIG5ld1REWyJzcmMiXSAgICAgID0gaXRlbVsidHZnLWxvZ28iXTsNCiAgICB9IGVsc2Ugew0KICAgICAgaXRlbVsidHZnLWxvZ28iXSA9ICIiOw0KICAgICAgbmV3VERbInNyYyJdID0gIiI7DQogICAgfQ0KICAgIGNyZWF0ZU5ld1REKG5ld1RELCB0cik7DQogICAgdHIubGFzdENoaWxkLnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBtYXBwaW5nRGV0YWlsKCInICsgaXRlbVsieC1lcGciXSArICciKTsnKQ0KDQogICAgLy8gQ3JlYXRlIFAgVEQgKGNoYW5uZWwgbmFtZSkNCiAgICB2YXIgbmV3VEQgPSBuZXcgT2JqZWN0KCk7DQogICAgbmV3VERbIl9lbGVtZW50Il0gPSAiUCI7DQogICAgbmV3VERbIl90ZXh0Il0gICAgPSBpdGVtWyJ4LW5hbWUiXTsNCiAgICBuZXdURFsiY2xhc3MiXSAgICAgPSBpdGVtWyJ4LWNhdGVnb3J5Il07DQoNCiAgICBjcmVhdGVOZXdURChuZXdURCwgdHIpOw0KICAgIHRyLmxhc3RDaGlsZC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogbWFwcGluZ0RldGFpbCgiJyArIGl0ZW1bIngtZXBnIl0gKyAnIik7JykNCiAgICB0ci5sYXN0Q2hpbGQubGFzdENoaWxkLnN0eWxlLnBhZGRpbmcgPSAiNXB4IDEwcHgiOw0KDQogICAgLy8gQ3JlYXRlIFAgVEQgKFBsYXlsaXN0IE5hbWUpDQogICAgdmFyIG5ld1REID0gbmV3IE9iamVjdCgpOw0KICAgIG5ld1REWyJfZWxlbWVudCJdID0gIlAiOw0KICAgIG5ld1REWyJfdGV4dCJdICAgID0gaXRlbVsiX2ZpbGUubTN1Lm5hbWUiXTsNCiAgICBuZXdURFsiY2xhc3MiXSAgICAgPSBpdGVtWyJ0YWJsZUVsbGlwc2lzIl07DQogICAgDQogICAgY3JlYXRlTmV3VEQobmV3VEQsIHRyKTsNCiAgICB0ci5sYXN0Q2hpbGQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IG1hcHBpbmdEZXRhaWwoIicgKyBpdGVtWyJ4LWVwZyJdICsgJyIpOycpDQogICAgDQogICAgLy8gQ3JlYXRlIFAgVEQgKEdyb3VwIFRpdGxlKQ0KICAgIHZhciBuZXdURCA9IG5ldyBPYmplY3QoKTsNCiAgICBuZXdURFsiX2VsZW1lbnQiXSA9ICJQIjsNCiAgICBuZXdURFsiX3RleHQiXSAgICA9IGl0ZW1bIngtZ3JvdXAtdGl0bGUiXTsNCiAgICBuZXdURFsiY2xhc3MiXSAgICAgPSBpdGVtWyJ0YWJsZUVsbGlwc2lzIl07DQogICAgDQogICAgY3JlYXRlTmV3VEQobmV3VEQsIHRyKTsNCiAgICB0ci5sYXN0Q2hpbGQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IG1hcHBpbmdEZXRhaWwoIicgKyBpdGVtWyJ4LWVwZyJdICsgJyIpOycpDQoNCiAgICANCiAgICAvLyBDcmVhdGUgUCBURCAoWE1MVFYgZmlsZSkNCiAgICB2YXIgbmV3VEQgPSBuZXcgT2JqZWN0KCk7DQogICAgbmV3VERbIl9lbGVtZW50Il0gICAgICAgPSAiUCI7DQogICAgbmV3VERbImNsYXNzIl0gICAgPSAidGFibGVFbGxpcHNpcyI7DQogICAgbmV3VERbIl90ZXh0Il0gPSAiLSINCg0KICAgIGlmIChhbGxYbWx0dkZpbGVzLmluZGV4T2YoaXRlbVsieC14bWx0di1maWxlIl0pICE9IC0xKSB7DQogICAgICB2YXIgeFhtbHR2RmlsZSA9IGl0ZW1bIngteG1sdHYtZmlsZSJdOw0KICAgICAgc3dpdGNoKHhYbWx0dkZpbGUpIHsNCiAgICAgICAgY2FzZSAiLSI6ICAgICAgICAgICBuZXdURFsiX3RleHQiXSAgPSB4WG1sdHZGaWxlOyBicmVhazsNCiAgICAgICAgY2FzZSAieFRlVmUgRHVtbXkiOiBuZXdURFsiX3RleHQiXSAgPSB4WG1sdHZGaWxlOyBicmVhazsNCiAgICAgICAgZGVmYXVsdDogICAgICAgICAgICBuZXdURFsiX3RleHQiXSAgPSBnZXRWYWx1ZUZyb21Qcm92aWRlckZpbGUoeFhtbHR2RmlsZSwgInhtbHR2IiwgIm5hbWUiKTsgYnJlYWs7DQogICAgICAgIA0KICAgICAgfQ0KICAgICAgLy9jb25zb2xlLmxvZyhuZXdURCk7DQoNCiAgICAgIC8vbmV3VERbIl90ZXh0Il0gICAgPSBpdGVtWyJ4LXhtbHR2LWZpbGUiXTsNCiAgICB9IGVsc2Ugew0KICAgICAgLy9uZXdURFsiX3RleHQiXSA9ICItIg0KICAgIH0NCiAgICBjcmVhdGVOZXdURChuZXdURCwgdHIpOw0KICAgIHRyLmxhc3RDaGlsZC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogbWFwcGluZ0RldGFpbCgiJyArIGl0ZW1bIngtZXBnIl0gKyAnIik7JykNCg0KICAgIC8vIENyZWF0ciBQIFREIChYTUxUViBjaGFubmVsIElEKQ0KICAgIG5ld1REWyJfZWxlbWVudCJdID0gIlAiOw0KICAgIG5ld1REWyJjbGFzcyJdICAgID0gInRhYmxlRWxsaXBzaXMiOw0KDQogICAgaWYgKGl0ZW1bIngtbWFwcGluZyJdICE9IHVuZGVmaW5lZCkgew0KICAgICAgbmV3VERbIl90ZXh0Il0gICAgPSBpdGVtWyJ4LW1hcHBpbmciXTsNCiAgICB9DQogICAgDQogICAgY3JlYXRlTmV3VEQobmV3VEQsIHRyKTsNCiAgICB0ci5sYXN0Q2hpbGQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IG1hcHBpbmdEZXRhaWwoIicgKyBpdGVtWyJ4LWVwZyJdICsgJyIpOycpDQoNCg0KICAgIHZhciB4WG1sdHZGaWxlICA9IGl0ZW1bIngteG1sdHYtZmlsZSJdOw0KICAgIHZhciB4TWFwcGluZyAgICA9IGl0ZW1bIngtbWFwcGluZyJdOw0KICAgIHZhciB0dmdJRCAgICAgICA9IGl0ZW1bInR2Zy1pZCJdOw0KICAgIA0KICAgIC8vY29uc29sZS5sb2coaXRlbVsieC1lcGciXSk7DQogICAgLy9jb25zb2xlLmxvZyhpdGVtKTsNCg0KICAgIGlmIChpdGVtWyJ4LWFjdGl2ZSJdID09IHRydWUpIHsNCiAgICAgIHRyLmNsYXNzTmFtZSA9ICJhY3RpdmVFUEciOw0KICAgIH0gZWxzZSB7DQogICAgICB0ci5jbGFzc05hbWUgPSAibm90QWN0aXZlRVBHIjsNCiAgICB9DQogICAgDQogIH0NCg0KICBzb3J0VGFibGUoMSk7DQoNCiAgc2V0VGltZW91dChmdW5jdGlvbigpeyANCiAgICBzaG93TG9hZGluZ1NjcmVlbihmYWxzZSk7DQogIH0sIDUpOw0KfQ0KDQpmdW5jdGlvbiBzZWFyY2hJbk1hcHBpbmcoZWxtKSB7DQoNCiAgdmFyIHNlYXJjaCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzZWFyY2hNYXBwaW5nIikudmFsdWU7DQogIHZhciB2YWx1ZXMgPSBnZXRPYmpLZXlzKHNlYXJjaE9iaikNCiAgDQogIGZvciAodmFyIGkgPSB2YWx1ZXMubGVuZ3RoIC0gMTsgaSA+PSAwOyBpLS0pIHsNCiAgICB2YXIgaWQgPSBzZWFyY2hPYmpbdmFsdWVzW2ldXTsNCiAgICB2YXIgYm9vbCA9IHZhbHVlc1tpXS50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKHNlYXJjaC50b0xvd2VyQ2FzZSgpKTsNCiAgICBzd2l0Y2goYm9vbCkgew0KICAgICAgY2FzZSB0cnVlOiAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpLnN0eWxlLmRpc3BsYXkgPSAiIjsgYnJlYWs7DQogICAgICBjYXNlIGZhbHNlOiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkuc3R5bGUuZGlzcGxheSA9ICJub25lIjsgYnJlYWs7DQogICAgfQ0KICB9DQoNCn0NCg0KZnVuY3Rpb24gbWFwcGluZ0RldGFpbCh4ZXBnKSB7DQogIA0KICBidWxrSURzICAgPSBuZXcgQXJyYXkoKTsNCiAgdmFyIGFjdGl2ZUVsZW1lbnQgPSBkb2N1bWVudC5hY3RpdmVFbGVtZW50Ow0KICAvLyBJZiBpbnB1dCBpZCwgcmV0dXJuDQogIGlmIChhY3RpdmVFbGVtZW50LnRhZ05hbWUgPT0gIklOUFVUIikgew0KICAgIHJldHVybg0KICB9DQoNCiAgaWYgKGJ1bGsgPT0gdHJ1ZSkgew0KICAgIHZhciBlbG0gPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCJidWxrIik7DQogICAgZm9yICh2YXIgaSA9IDE7IGkgPCBlbG0ubGVuZ3RoOyBpKyspIHsNCiAgICAgIGlmIChlbG1baV0uY2hlY2tlZCA9PSB0cnVlKSB7DQogICAgICAgIHZhciBpZCA9IGVsbVtpXS5wYXJlbnRFbGVtZW50LnBhcmVudEVsZW1lbnQuaWQ7DQogICAgICAgIGJ1bGtJRHMucHVzaChpZCkNCiAgICAgIH0NCiAgICAgIA0KICAgIH0NCg0KICAgIGlmIChidWxrSURzLmxlbmd0aCA9PSAwKSB7DQogICAgICBzaG93RWxlbWVudCgncG9wdXAnLCBmYWxzZSkNCiAgICAgIGFsZXJ0KCJObyBjaGFubmVscyBzZWxlY3RlZCBmb3IgZWRpdGluZyIpDQogICAgICByZXR1cm4NCiAgICB9DQoNCiAgICB4ZXBnID0gYnVsa0lEc1swXQ0KICB9DQoNCg0KICBjcmVhdGVTZWFyY2hPYmooKTsNCiAgDQogIHNob3dQb3BVcEVsZW1lbnQoJ21hcHBpbmctZGV0YWlsJyk7DQoNCiAgdmFyIHRoaXNDaGFubmVsID0geEVQR1siZXBnTWFwcGluZyJdW3hlcGddOw0KICAvL2NvbnNvbGUubG9nKHRoaXNDaGFubmVsKTsNCiAgdmFyIHhYbWx0dkZpbGUgID0gdGhpc0NoYW5uZWxbIngteG1sdHYtZmlsZSJdOw0KICB2YXIgeE1hcHBpbmcgICAgPSB0aGlzQ2hhbm5lbFsieC1tYXBwaW5nIl07DQogIHZhciB4Q2F0ZWdvcnkgICA9IHRoaXNDaGFubmVsWyJ4LWNhdGVnb3J5Il07DQoNCiAgaWYgKHhYbWx0dkZpbGUgPT0gdW5kZWZpbmVkKSB7DQogICAgdGhpc0NoYW5uZWxbIngteG1sdHYtZmlsZSJdID0gIi0iOw0KICAgIHhYbWx0dkZpbGUgPSAiLSI7DQogIH0NCg0KICBpZiAoeE1hcHBpbmcgPT0gdW5kZWZpbmVkKSB7DQogICAgdGhpc0NoYW5uZWxbIngtbWFwcGluZyJdID0gIi0iOw0KICAgIHhNYXBwaW5nID0gIi0iOw0KICB9DQoNCiAgLyoNCiAgY29uc29sZS5sb2coIklEOiIsIHhlcGcpOw0KICBjb25zb2xlLmxvZygiWE1MVFYgRmlsZToiLCB4WG1sdHZGaWxlKTsNCiAgY29uc29sZS5sb2coIk1hcHBpbmc6IiwgeE1hcHBpbmcpOw0KICAqLw0KDQogIHZhciBrZXlzID0gZ2V0T2JqS2V5cyh0aGlzQ2hhbm5lbCk7DQogIGZvciAodmFyIGkgPSAwOyBpIDwga2V5cy5sZW5ndGg7IGkrKykgew0KICAgIGlmKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGtleXNbaV0pKXsNCiAgICAgIHZhciB0ZCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGtleXNbaV0pDQogICAgfSBlbHNlIHsNCiAgICAgIHZhciB0ZCA9IHVuZGVmaW5lZDsNCiAgICB9DQogICAgDQogICAgdmFyIG5ld0l0ZW0gPSBuZXcgT2JqZWN0KCk7DQogICAgdmFyIHZhbHVlcywgdGV4dCA9IG5ldyBBcnJheSgpOw0KICAgIHN3aXRjaChrZXlzW2ldKSB7DQogICAgICBjYXNlICJ4LXhtbHR2LWZpbGUiOiANCiAgICAgICAgdmFyIGZpbGVJRHMgPSBnZXRPYmpLZXlzKHhFUEdbInhtbHR2TWFwIl0pOw0KICAgICAgICB2YXIgdmFsdWUgPSBuZXcgQXJyYXkoIi0iKTsNCiAgICAgICAgdmFyIHRleHQgID0gbmV3IEFycmF5KCItIik7DQoNCiAgICAgICAgZm9yICh2YXIgaiA9IGZpbGVJRHMubGVuZ3RoIC0gMTsgaiA+PSAwOyBqLS0pIHsNCiAgICAgICAgICBpZiAoZmlsZUlEc1tqXSAhPSAieFRlVmUgRHVtbXkiKSB7DQogICAgICAgICAgICB2YWx1ZS5wdXNoKGdldFZhbHVlRnJvbVByb3ZpZGVyRmlsZShmaWxlSURzW2pdLCAieG1sdHYiLCAiZmlsZS54dGV2ZSIpKQ0KICAgICAgICAgICAgdGV4dC5wdXNoKGdldFZhbHVlRnJvbVByb3ZpZGVyRmlsZShmaWxlSURzW2pdLCAieG1sdHYiLCAibmFtZSIpKQ0KICAgICAgICAgIH0gZWxzZSB7DQogICAgICAgICAgICB2YWx1ZS5wdXNoKGZpbGVJRHNbal0pDQogICAgICAgICAgICB0ZXh0LnB1c2goZmlsZUlEc1tqXSkNCiAgICAgICAgICB9DQogICAgICAgICAgDQogICAgICAgIH0NCiAgICAgICAgDQogICAgICAgIG5ld0l0ZW1bIl9lbGVtZW50Il0gICAgICAgPSAiU0VMRUNUIjsNCiAgICAgICAgbmV3SXRlbVsiX29wdGlvblZhbHVlcyJdICA9IHZhbHVlOw0KICAgICAgICBuZXdJdGVtWyJfb3B0aW9uVGV4dCJdICAgID0gdGV4dA0KICAgICAgICBuZXdJdGVtWyJ2YWx1ZSJdICAgICAgICAgID0geFhtbHR2RmlsZTsNCiAgICAgICAgbmV3SXRlbVsib25jaGFuZ2UiXSAgICAgICA9ICdqYXZhc2NyaXB0OiBjaGFuZ2VYbWx0dkZpbGUoIicgKyB4ZXBnICsgJyIsdGhpcyk7JzsNCg0KICAgICAgICBicmVhazsNCg0KICAgICAgY2FzZSAieC1tYXBwaW5nIjogDQoNCiAgICAgICAgdmFyIHZhbHVlcyA9IGdldE9iaktleXMoeEVQR1sieG1sdHZNYXAiXVt4WG1sdHZGaWxlXSk7DQoNCiAgICAgICAgZm9yICh2YXIgaiA9IDA7IGogPCB2YWx1ZXMubGVuZ3RoOyBqKyspIHsNCiAgICAgICAgICANCiAgICAgICAgICBpZiAoeEVQR1sieG1sdHZNYXAiXVt4WG1sdHZGaWxlXVt2YWx1ZXNbal1dLmhhc093blByb3BlcnR5KCdkaXNwbGF5LW5hbWUnKSA9PSB0cnVlKSB7DQogICAgICAgICAgICB2YXIgZGlzcGxheU5hbWUgPSB4RVBHWyJ4bWx0dk1hcCJdW3hYbWx0dkZpbGVdW3ZhbHVlc1tqXV1bImRpc3BsYXktbmFtZSJdOw0KICAgICAgICAgIH0gZWxzZSB7DQogICAgICAgICAgICB2YXIgZGlzcGxheU5hbWUgPSAiLSINCiAgICAgICAgICB9DQogICAgICAgICAgDQogICAgICAgICAgLy90ZXh0W2pdID0gdmFsdWVzW2pdICsgIiAoIiArIGRpc3BsYXlOYW1lICsgIikiOw0KICAgICAgICAgIHRleHRbal0gPSBkaXNwbGF5TmFtZSArICIgKCIgKyB2YWx1ZXNbal0gICsgIikiOw0KICAgICAgICB9DQoNCiAgICAgICAgdGV4dC51bnNoaWZ0KCItIik7DQogICAgICAgIHZhbHVlcy51bnNoaWZ0KCItIik7DQogICAgICAgIG5ld0l0ZW1bIl9lbGVtZW50Il0gICAgICAgPSAiU0VMRUNUIjsNCiAgICAgICAgbmV3SXRlbVsiX29wdGlvblZhbHVlcyJdICA9IHZhbHVlczsNCiAgICAgICAgbmV3SXRlbVsiX29wdGlvblRleHQiXSAgICA9IHRleHQNCiAgICAgICAgbmV3SXRlbVsidmFsdWUiXSAgICAgICAgICA9IHhNYXBwaW5nOw0KICAgICAgICBuZXdJdGVtWyJvbmNoYW5nZSJdICAgICAgID0gJ2phdmFzY3JpcHQ6IG1hcHBpbmdDaGFubmVsKCInICsgeGVwZyArICciLHRoaXMpOyc7DQogICAgICAgIGJyZWFrOw0KDQogICAgICBjYXNlICJ4LWNhdGVnb3J5IjoNCiAgICAgICAgLy92YXIgdmFsdWVzID0gcGxleENhdGVnb3JpZXNWYWx1ZXMNCiAgICAgICAgbmV3SXRlbVsiX2VsZW1lbnQiXSAgICAgICA9ICJTRUxFQ1QiOw0KICAgICAgICBuZXdJdGVtWyJfb3B0aW9uVmFsdWVzIl0gID0gcGxleENhdGVnb3JpZXNWYWx1ZXM7DQogICAgICAgIG5ld0l0ZW1bIl9vcHRpb25UZXh0Il0gICAgPSBwbGV4Q2F0ZWdvcmllc09wdGlvbjsNCiAgICAgICAgbmV3SXRlbVsidmFsdWUiXSAgICAgICAgICA9IHhDYXRlZ29yeTsNCiAgICAgICAgbmV3SXRlbVsib25jaGFuZ2UiXSAgICAgICA9ICdzYXZlQ2F0ZWdvcnkoIicgKyB4ZXBnICsgJyIpJzsNCiAgICAgICAgYnJlYWs7DQoNCiAgICAgIGNhc2UgInR2Zy1sb2dvIjoNCiAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNoYW5uZWwtbG9nbyIpLnNldEF0dHJpYnV0ZSgic3JjIiwgdGhpc0NoYW5uZWxbInR2Zy1sb2dvIl0pOw0KICAgICAgICBuZXdJdGVtWyJfZWxlbWVudCJdICAgICAgID0gIklOUFVUIjsNCiAgICAgICAgbmV3SXRlbVsidHlwZSJdICAgICAgICAgICA9ICJ0ZXh0IjsNCiAgICAgICAgbmV3SXRlbVsidmFsdWUiXSAgICAgICAgICA9IHRoaXNDaGFubmVsWyJ0dmctbG9nbyJdOw0KICAgICAgICBuZXdJdGVtWyJvbmZvY3Vzb3V0Il0gICAgID0gJ3NhdmVDaGFubmVsTG9nbygiJyArIHhlcGcgKyAnIiknOw0KICAgICAgICBuZXdJdGVtWyJwbGFjZWhvbGRlciJdICAgID0gJ0ltYWdlIFVSTCc7DQogICAgICAgIGJyZWFrOw0KDQogICAgICBjYXNlICJ4LXVwZGF0ZS1jaGFubmVsLWljb24iOg0KICAgICAgICBuZXdJdGVtWyJfZWxlbWVudCJdICAgICAgID0gIklOUFVUIjsNCiAgICAgICAgbmV3SXRlbVsidHlwZSJdICAgICAgICAgICA9ICJjaGVja2JveCI7DQogICAgICAgIHN3aXRjaChKU09OLnBhcnNlKHRoaXNDaGFubmVsWyJ4LXVwZGF0ZS1jaGFubmVsLWljb24iXSkpIHsNCiAgICAgICAgICBjYXNlIHRydWU6IG5ld0l0ZW1bImNoZWNrZWQiXSAgICAgICAgPSB0aGlzQ2hhbm5lbFsieC11cGRhdGUtY2hhbm5lbC1pY29uIl07DQogICAgICAgICAgICBicmVhaw0KICAgICAgICB9DQogICAgICAgIG5ld0l0ZW1bIm9uY2hhbmdlIl0gICAgID0gJ3NhdmVDaGFubmVsSWNvblVwZGF0ZSgiJyArIHhlcGcgKyAnIiknOw0KICAgICAgICBicmVhazsNCg0KICAgICAgY2FzZSAieC1uYW1lIjoNCiAgICAgICAgbmV3SXRlbVsiX2VsZW1lbnQiXSAgICAgICA9ICJJTlBVVCI7DQogICAgICAgIG5ld0l0ZW1bInR5cGUiXSAgICAgICAgICAgPSAidGV4dCI7DQogICAgICAgIG5ld0l0ZW1bInZhbHVlIl0gICAgICAgICAgPSB0aGlzQ2hhbm5lbFsieC1uYW1lIl07DQogICAgICAgIG5ld0l0ZW1bIm9uZm9jdXNvdXQiXSAgICAgPSAnc2F2ZUNoYW5uZWxOYW1lKCInICsgeGVwZyArICciKSc7DQogICAgICAgIG5ld0l0ZW1bInBsYWNlaG9sZGVyIl0gICAgPSAnQ2hhbm5lbCBOYW1lJzsNCiAgICAgICAgYnJlYWs7DQoNCiAgICAgIGNhc2UgIngtdXBkYXRlLWNoYW5uZWwtbmFtZSI6DQogICAgICAgIGlmICh0aGlzQ2hhbm5lbC5oYXNPd25Qcm9wZXJ0eSgiX3V1aWQua2V5IikgPT0gdHJ1ZSkgew0KICAgICAgICAgIG5ld0l0ZW1bIl9lbGVtZW50Il0gICAgICAgPSAiSU5QVVQiOw0KICAgICAgICAgIG5ld0l0ZW1bInR5cGUiXSAgICAgICAgICAgPSAiY2hlY2tib3giOw0KICAgICAgICAgIHN3aXRjaChKU09OLnBhcnNlKHRoaXNDaGFubmVsWyJ4LXVwZGF0ZS1jaGFubmVsLW5hbWUiXSkpIHsNCiAgICAgICAgICAgIGNhc2UgdHJ1ZTogbmV3SXRlbVsiY2hlY2tlZCJdICAgICAgICA9IHRoaXNDaGFubmVsWyJ4LXVwZGF0ZS1jaGFubmVsLW5hbWUiXTsNCiAgICAgICAgICAgICAgYnJlYWsNCiAgICAgICAgICB9DQogICAgICAgICAgbmV3SXRlbVsib25jaGFuZ2UiXSAgICAgPSAnc2F2ZUNoYW5uZWxOYW1lVXBkYXRlKCInICsgeGVwZyArICciKSc7DQogICAgICAgICAgc2hvd0VsZW1lbnQoInN0cmVhbUhhc0NVSUQiLCB0cnVlKQ0KDQogICAgICAgICAgYnJlYWs7DQogICAgICAgIH0gZWxzZSB7DQogICAgICAgICAgLy9zdHJlYW1IYXNDVUlEDQogICAgICAgICAgc2hvd0VsZW1lbnQoInN0cmVhbUhhc0NVSUQiLCBmYWxzZSkNCiAgICAgICAgICBicmVhazsNCiAgICAgICAgfQ0KICAgICAgICANCiAgICAgIGNhc2UgIngtYWN0aXZlIjoNCiAgICAgICAgbmV3SXRlbVsiX2VsZW1lbnQiXSAgICAgICA9ICJJTlBVVCI7DQogICAgICAgIG5ld0l0ZW1bInR5cGUiXSAgICAgICAgICAgPSAiY2hlY2tib3giOw0KICAgICAgICBzd2l0Y2goSlNPTi5wYXJzZSh0aGlzQ2hhbm5lbFsieC1hY3RpdmUiXSkpIHsNCiAgICAgICAgICBjYXNlIHRydWU6IG5ld0l0ZW1bImNoZWNrZWQiXSAgICAgICAgPSB0aGlzQ2hhbm5lbFsieC1hY3RpdmUiXTsNCiAgICAgICAgICAgIGJyZWFrDQogICAgICAgIH0NCiAgICAgICAgbmV3SXRlbVsib25jaGFuZ2UiXSAgICAgPSAnc2F2ZUNoYW5uZWxTdGF0dXMoIicgKyB4ZXBnICsgJyIpJzsNCiAgICAgICAgYnJlYWs7DQoNCiAgICAgIGNhc2UgIngtZ3JvdXAtdGl0bGUiOg0KICAgICAgICBuZXdJdGVtWyJfZWxlbWVudCJdICAgICAgID0gIklOUFVUIjsNCiAgICAgICAgbmV3SXRlbVsidHlwZSJdICAgICAgICAgICA9ICJ0ZXh0IjsNCiAgICAgICAgbmV3SXRlbVsidmFsdWUiXSAgICAgICAgICA9IHRoaXNDaGFubmVsWyJ4LWdyb3VwLXRpdGxlIl07DQogICAgICAgIG5ld0l0ZW1bIm9uZm9jdXNvdXQiXSAgICAgPSAnc2F2ZUdyb3VwVGl0bGUoIicgKyB4ZXBnICsgJyIpJzsNCiAgICAgICAgbmV3SXRlbVsicGxhY2Vob2xkZXIiXSAgICA9ICdHcm91cCBUaXRsZSc7DQogICAgICAgIGJyZWFrOw0KDQogICAgICBkZWZhdWx0Og0KICAgICAgICBuZXdJdGVtWyJfZWxlbWVudCJdICAgICAgID0gIlAiOw0KICAgICAgICBuZXdJdGVtWyJfdGV4dCJdICAgICAgICAgID0gdGhpc0NoYW5uZWxba2V5c1tpXV07DQogICAgICAgIGJyZWFrOw0KICAgICAgDQogICAgfQ0KICAgIA0KICAgIGlmICh0ZCAhPSB1bmRlZmluZWQpIHsNCiAgICAgIHRkLmlubmVySFRNTCA9ICIiOw0KICAgICAgdmFyIGVsZW1lbnQgPSBjcmVhdGVOZXdFbGVtZW50KG5ld0l0ZW0pDQogICAgICAvL2NvbnNvbGUubG9nKGVsZW1lbnQpOw0KICAgICAgdGQuYXBwZW5kQ2hpbGQoZWxlbWVudCk7DQogICAgfQ0KDQogIH0NCg0KICBpZiAoYnVsayA9PSB0cnVlKSB7DQoNCiAgICB2YXIgZWxtID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSgibm9CdWxrIik7DQogICAgZm9yICh2YXIgaSA9IDA7IGkgPCBlbG0ubGVuZ3RoOyBpKyspIHsNCiAgICAgIGVsbVtpXS5sYXN0Q2hpbGQuc2V0QXR0cmlidXRlKCJyZWFkb25seSIsIHRydWUpDQogICAgICBlbG1baV0ubGFzdENoaWxkLnN0eWxlLmJvcmRlckNvbG9yID0gInJlZCI7DQogICAgfQ0KDQogICAgeGVwZyA9IGJ1bGtJRHNbMF0NCiAgfQ0KDQogIHNvcnRTZWxlY3QoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIngteG1sdHYtZmlsZSIpLmxhc3RDaGlsZCk7DQogIHNvcnRTZWxlY3QoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIngtbWFwcGluZyIpLmxhc3RDaGlsZCk7DQogIA0KfQ0KDQpmdW5jdGlvbiBzb3J0U2VsZWN0KGVsZW0pIHsNCg0KICB2YXIgdG1wQXJ5ID0gW107DQogIC8vIFJldGFpbiBzZWxlY3RlZCB2YWx1ZSBiZWZvcmUgc29ydGluZw0KICB2YXIgc2VsZWN0ZWRWYWx1ZSA9IGVsZW1bZWxlbS5zZWxlY3RlZEluZGV4XS52YWx1ZTsNCiAgLy8gR3JhYiBhbGwgZXhpc3RpbmcgZW50cmllcw0KICBmb3IgKHZhciBpPTA7aTxlbGVtLm9wdGlvbnMubGVuZ3RoO2krKykgdG1wQXJ5LnB1c2goZWxlbS5vcHRpb25zW2ldKTsNCiAgLy8gU29ydCBhcnJheSBieSB0ZXh0IGF0dHJpYnV0ZQ0KICB0bXBBcnkuc29ydChmdW5jdGlvbihhLGIpeyByZXR1cm4gKGEudGV4dCA8IGIudGV4dCk/LTE6MTsgfSk7DQogIC8vIFdpcGUgb3V0IGV4aXN0aW5nIGVsZW1lbnRzDQogIHdoaWxlIChlbGVtLm9wdGlvbnMubGVuZ3RoID4gMCkgZWxlbS5vcHRpb25zWzBdID0gbnVsbDsNCiAgLy8gUmVzdG9yZSBzb3J0ZWQgZWxlbWVudHMNCiAgdmFyIG5ld1NlbGVjdGVkSW5kZXggPSAwOw0KICBmb3IgKHZhciBpPTA7aTx0bXBBcnkubGVuZ3RoO2krKykgew0KICAgICAgZWxlbS5vcHRpb25zW2ldID0gdG1wQXJ5W2ldOw0KICAgICAgaWYoZWxlbS5vcHRpb25zW2ldLnZhbHVlID09IHNlbGVjdGVkVmFsdWUpIG5ld1NlbGVjdGVkSW5kZXggPSBpOw0KICB9DQogIGVsZW0uc2VsZWN0ZWRJbmRleCA9IG5ld1NlbGVjdGVkSW5kZXg7IC8vIFNldCBuZXcgc2VsZWN0ZWQgaW5kZXggYWZ0ZXIgc29ydGluZw0KICByZXR1cm47DQp9DQoNCg0KZnVuY3Rpb24gc3dpdGNoQ2hhbm5lbFN0YXR1cyh4ZXBnKSB7DQogIHZhciB0aGlzQ2hhbm5lbCA9IHhFUEdbImVwZ01hcHBpbmciXVt4ZXBnXTsNCiAgdmFyIHhYbWx0dkZpbGUgPSB0aGlzQ2hhbm5lbFsieC14bWx0di1maWxlIl07DQoNCiAgaWYgKHhFUEdbInhtbHR2TWFwIl0uaGFzT3duUHJvcGVydHkoeFhtbHR2RmlsZSkgPT0gdHJ1ZSkgew0KICAgIGlmICh0aGlzQ2hhbm5lbFsieC1tYXBwaW5nIl0gIT0gIi0iICYmIHRoaXNDaGFubmVsWyJ4LW1hcHBpbmciXSAhPSB1bmRlZmluZWQpIHsNCiAgICAgIHRoaXNDaGFubmVsWyJ4LWFjdGl2ZSJdID0gIXRoaXNDaGFubmVsWyJ4LWFjdGl2ZSJdOw0KICAgICAgdmFyIHRyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoeGVwZyk7DQogICAgICBzd2l0Y2godGhpc0NoYW5uZWxbIngtYWN0aXZlIl0pIHsNCiAgICAgICAgY2FzZSB0cnVlOiB0ci5jbGFzc05hbWUgPSAiYWN0aXZlRVBHIjsgYnJlYWs7DQogICAgICAgIGNhc2UgZmFsc2U6IHRyLmNsYXNzTmFtZSA9ICJub3RBY3RpdmVFUEciOyBicmVhazsNCiAgICAgIH0NCiAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJsb2dJbmZvIikuY2xhc3NOYW1lID0gIm5vdFZpc2libGUiOw0KDQogICAgfSBlbHNlIHsNCiAgICAgIHZhciBlcnIgPSAiWE1MVFYgQ2hhbm5lbCBpcyBub3Qgc2VsZWN0ZWQiDQogICAgICBhbGVydChlcnIpDQogICAgICAvKg0KICAgICAgdmFyIG5ld0Vycm9yID0gbmV3IE9iamVjdCgpOw0KICAgICAgbmV3RXJyb3JbImVyciJdID0gIkNoYW5uZWwgaXMgbm90IHNlbGVjdGVkIjsNCiAgICAgIGNoZWNrRXJyKG5ld0Vycm9yKTsNCiAgICAgICovDQogICAgfQ0KDQogIH0gZWxzZSB7DQogICAgdmFyIGVyciA9ICJYTUxUViBGaWxlIGlzIG5vdCBzZWxlY3RlZCINCiAgICBhbGVydChlcnIpDQogICAgLyoNCiAgICB2YXIgbmV3RXJyb3IgPSBuZXcgT2JqZWN0KCk7DQogICAgbmV3RXJyb3JbImVyciJdID0gIlhNTFRWIGZpbGUgaXMgbm90IHNlbGVjdGVkIjsNCiAgICBjaGVja0VycihuZXdFcnJvcik7DQogICAgKi8NCiAgfQ0KDQogIHNlYXJjaEluTWFwcGluZygpOw0KDQp9DQoNCmZ1bmN0aW9uIGNyZWF0ZU5ld0VsZW1lbnQobmV3SXRlbSkgew0KDQogIHZhciBlbGVtZW50ID0gY3JlYXRlRWxlbWVudChuZXdJdGVtKTsNCiAgDQogIHN3aXRjaChuZXdJdGVtWyJfZWxlbWVudCJdKSB7DQogICAgY2FzZSAiU0VMRUNUIjoNCiAgICAgIC8vZWxlbWVudFtdDQogICAgICB2YXIgdmFsdWVzICA9IG5ld0l0ZW1bIl9vcHRpb25WYWx1ZXMiXTsNCiAgICAgIHZhciB0ZXh0ICAgID0gbmV3SXRlbVsiX29wdGlvblRleHQiXTsNCg0KICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB2YWx1ZXMubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgLy9jb25zb2xlLmxvZyhpdGVtKTsNCiAgICAgICAgdmFyIG5ld0VudHJ5ID0gbmV3IE9iamVjdDsNCiAgICAgICAgbmV3RW50cnlbIl9lbGVtZW50Il0gID0gIk9QVElPTiI7DQogICAgICAgIG5ld0VudHJ5WyJfdGV4dCJdICAgICA9IHRleHRbaV07DQogICAgICAgIG5ld0VudHJ5WyJ2YWx1ZSJdICAgICA9IHZhbHVlc1tpXTsNCiAgICAgICAgZWxlbWVudC5hcHBlbmRDaGlsZChjcmVhdGVFbGVtZW50KG5ld0VudHJ5KSk7DQogICAgICB9DQogICAgICBlbGVtZW50LnZhbHVlID0gbmV3SXRlbVsidmFsdWUiXTsNCiAgICAgIGJyZWFrOw0KICAgIA0KICAgIGRlZmF1bHQ6IA0KICAgICAgDQogICAgICAvL2VsZW1lbnQuYXBwZW5kQ2hpbGQoY3JlYXRlRWxlbWVudChuZXdJdGVtKSk7DQogICAgICBicmVhazsNCiAgfQ0KICANCiAgcmV0dXJuIGVsZW1lbnQ7DQp9DQoNCmZ1bmN0aW9uIHNhdmVCdWxrKGtleSwgdmFsdWUpIHsNCiAgZm9yICh2YXIgaSA9IDA7IGkgPCBidWxrSURzLmxlbmd0aDsgaSsrKSB7DQogICAgdmFyIGlkID0gYnVsa0lEc1tpXQ0KICAgIHZhciB0aGlzQ2hhbm5lbCA9IHhFUEdbImVwZ01hcHBpbmciXVtpZF07DQogICAgdGhpc0NoYW5uZWxba2V5XSA9IHZhbHVlOw0KDQogICAgc3dpdGNoKGtleSkgew0KICAgICAgY2FzZSAidHZnLWxvZ28iOiAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5jaGlsZE5vZGVzWzJdLmxhc3RDaGlsZC5zZXRBdHRyaWJ1dGUoInNyYyIsIHZhbHVlKTsgYnJlYWs7DQogICAgICANCiAgICAgIGNhc2UgIngtY2F0ZWdvcnkiOiAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkuY2hpbGROb2Rlc1szXS5sYXN0Q2hpbGQuY2xhc3NOYW1lID0gdmFsdWU7IGJyZWFrOw0KDQogICAgICBjYXNlICJ4LXhtbHR2LWZpbGUiOg0KICAgICAgICB2YXIgZWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5jaGlsZE5vZGVzWzZdLmxhc3RDaGlsZDsNCiAgICAgICAgc3dpdGNoKHZhbHVlKSB7DQogICAgICAgICAgY2FzZSAiLSI6ICAgICAgICAgICBlbGVtZW50LmlubmVySFRNTCA9IHZhbHVlOyBicmVhazsNCiAgICAgICAgICBjYXNlICJ4VGVWZSBEdW1teSI6IGVsZW1lbnQuaW5uZXJIVE1MID0gdmFsdWU7IGJyZWFrOw0KICAgICAgICAgIGRlZmF1bHQ6ICAgICAgICAgICAgZWxlbWVudC5pbm5lckhUTUwgPSBnZXRWYWx1ZUZyb21Qcm92aWRlckZpbGUodmFsdWUsICJ4bWx0diIsICJuYW1lIik7IGJyZWFrOw0KICAgICAgICB9DQoNCg0KDQogICAgICAvL2RvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5jaGlsZE5vZGVzWzVdLmxhc3RDaGlsZC5pbm5lckhUTUwgPSB2YWx1ZS5yZXBsYWNlKC9eLipbXFxcL10vLCAnJyk7IGJyZWFrOw0KICAgICAgY2FzZSAieC1tYXBwaW5nIjogICANCiAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpLmNoaWxkTm9kZXNbN10ubGFzdENoaWxkLmlubmVySFRNTCA9IHZhbHVlOw0KICAgICAgICBpZiAodmFsdWUgPT0gIi0iKSB7DQogICAgICAgICAgdGhpc0NoYW5uZWxbIngtYWN0aXZlIl0gPSBmYWxzZTsNCiAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkuY2xhc3NOYW1lID0gIm5vdEFjdGl2ZUVQRyI7DQogICAgICAgIH0gZWxzZSB7DQogICAgICAgICAgdGhpc0NoYW5uZWxbIngtYWN0aXZlIl0gPSB0cnVlOw0KICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5jbGFzc05hbWUgPSAiYWN0aXZlRVBHIjsNCiAgICAgICAgfQ0KICAgICAgICBicmVhazsNCg0KICAgICAgY2FzZSAieC1ncm91cC10aXRsZSI6IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5jaGlsZE5vZGVzWzVdLmxhc3RDaGlsZC5pbm5lckhUTUwgPSB2YWx1ZTsgYnJlYWs7DQoNCiAgICAgIGNhc2UgIngtYWN0aXZlIjoNCiAgICAgICAgdmFyIHRyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpOw0KICAgICAgICANCiAgICAgICAgaWYgKHRoaXNDaGFubmVsLmhhc093blByb3BlcnR5KCJ4LXhtbHR2LWZpbGUiKSA9PSB0cnVlKSB7DQogICAgICAgICAgaWYgKHRoaXNDaGFubmVsWyJ4LW1hcHBpbmciXSAhPSAiLSIgJiYgdGhpc0NoYW5uZWxbIngtbWFwcGluZyJdICE9IHVuZGVmaW5lZCAmJiB0aGlzQ2hhbm5lbFsieC14bWx0di1maWxlIl0gIT0gIi0iICYmIHRoaXNDaGFubmVsWyJ4LXhtbHR2LWZpbGUiXSAhPSB1bmRlZmluZWQpIHsNCiAgICAgICAgICAgIHN3aXRjaCh0aGlzQ2hhbm5lbFsieC1hY3RpdmUiXSkgew0KICAgICAgICAgICAgICBjYXNlIHRydWU6IHRyLmNsYXNzTmFtZSA9ICJhY3RpdmVFUEciOyBicmVhazsNCiAgICAgICAgICAgICAgY2FzZSBmYWxzZTogdHIuY2xhc3NOYW1lID0gIm5vdEFjdGl2ZUVQRyI7IGJyZWFrOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgfQ0KICAgICAgICB9DQoNCiAgICB9DQoNCiAgICB1cGRhdGVDaGFubmVsTG9nbyhpZCkNCg0KICB9DQoNCn0NCg0KZnVuY3Rpb24gdXBkYXRlQ2hhbm5lbExvZ28oeGVwZykgew0KICB2YXIgdGhpc0NoYW5uZWwgPSB4RVBHWyJlcGdNYXBwaW5nIl1beGVwZ107DQogIGlmICh0aGlzQ2hhbm5lbFsieC11cGRhdGUtY2hhbm5lbC1pY29uIl0gPT0gdHJ1ZSkgew0KICAgIHZhciB4WG1sdHZGaWxlICA9IHRoaXNDaGFubmVsWyJ4LXhtbHR2LWZpbGUiXTsNCiAgICB2YXIgeE1hcHBpbmcgICAgPSB0aGlzQ2hhbm5lbFsieC1tYXBwaW5nIl07DQoNCiAgICBpZiAoeFhtbHR2RmlsZSAhPSAiLSIgJiYgeFhtbHR2RmlsZS5sZW5ndGggPiAwICYmIHhNYXBwaW5nICE9ICItIiAmJiB4TWFwcGluZy5sZW5ndGggPiAwKSB7DQogICAgICBpZiAoeEVQR1sieG1sdHZNYXAiXVt4WG1sdHZGaWxlXVt4TWFwcGluZ10uaGFzT3duUHJvcGVydHkoImljb24iKSkgew0KICAgICAgICB2YXIgbG9nb1VSTCA9IHhFUEdbInhtbHR2TWFwIl1beFhtbHR2RmlsZV1beE1hcHBpbmddWyJpY29uIl07DQogICAgICAgIHRoaXNDaGFubmVsWyJ0dmctbG9nbyJdID0gbG9nb1VSTDsNCiAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoeGVwZykuY2hpbGROb2Rlc1syXS5sYXN0Q2hpbGQuc2V0QXR0cmlidXRlKCJzcmMiLCBsb2dvVVJMKTsNCiAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNoYW5uZWwtbG9nbyIpLnNldEF0dHJpYnV0ZSgic3JjIiwgbG9nb1VSTCk7DQogICAgICB9IGVsc2Ugew0KICAgICAgICBhbGVydCgiTm8gbG9nbyBVUkwgaW4gdGhlIFhNTFRWIGZpbGUgYXZhaWxhYmxlIikNCiAgICAgIH0NCiAgICAgIA0KICAgIH0NCiAgICANCiAgICAvKg0KICAgIGlmICh4RVBHWyJ4bWx0dk1hcCJdW3hYbWx0dkZpbGVdW3hNYXBwaW5nXVsiaWNvbiJdICE9IHVuZGVmaW5lZCkgew0KDQogICAgICANCiAgICB9DQogICAgKi8NCiAgICANCiAgfQ0KfQ0KDQpmdW5jdGlvbiBzYXZlQ2hhbm5lbExvZ28oeGVwZykgew0KICBpZiAoYnVsayA9PSBmYWxzZSkgew0KICAgIHZhciB0aGlzQ2hhbm5lbCA9IHhFUEdbImVwZ01hcHBpbmciXVt4ZXBnXTsNCiAgICB0aGlzQ2hhbm5lbFsidHZnLWxvZ28iXSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0dmctbG9nbyIpLmxhc3RDaGlsZC52YWx1ZTsNCiAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCh4ZXBnKS5jaGlsZE5vZGVzWzJdLmxhc3RDaGlsZC5zZXRBdHRyaWJ1dGUoInNyYyIsIHRoaXNDaGFubmVsWyJ0dmctbG9nbyJdKTsNCiAgICBtYXBwaW5nRGV0YWlsKHhlcGcpOw0KICAgIHJldHVybg0KICB9DQoNCiAgaWYgKGJ1bGsgPT0gdHJ1ZSkgew0KICAgIHZhciBrZXkgICA9ICJ0dmctbG9nbyI7DQogICAgdmFyIHZhbHVlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInR2Zy1sb2dvIikubGFzdENoaWxkLnZhbHVlOw0KICAgIHNhdmVCdWxrKGtleSwgdmFsdWUpOw0KDQogICAgbWFwcGluZ0RldGFpbCh4ZXBnKTsNCiAgICByZXR1cm4NCiAgfQ0KfQ0KDQpmdW5jdGlvbiBzYXZlQ2hhbm5lbEljb25VcGRhdGUoeGVwZykgew0KDQogIHZhciBrZXkgICA9ICJ4LXVwZGF0ZS1jaGFubmVsLWljb24iOw0KICB2YXIgdmFsdWUgPSBKU09OLnBhcnNlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ4LXVwZGF0ZS1jaGFubmVsLWljb24iKS5sYXN0Q2hpbGQuY2hlY2tlZCk7DQogIGlmIChidWxrID09IGZhbHNlKSB7DQogICAgdmFyIHRoaXNDaGFubmVsID0geEVQR1siZXBnTWFwcGluZyJdW3hlcGddOw0KICAgIHRoaXNDaGFubmVsW2tleV0gPSB2YWx1ZQ0KICAgIHVwZGF0ZUNoYW5uZWxMb2dvKHhlcGcpDQogICAgDQogICAgbWFwcGluZ0RldGFpbCh4ZXBnKTsNCiAgICBzZWFyY2hJbk1hcHBpbmcoKTsNCiAgICByZXR1cm4NCiAgfQ0KDQogIGlmIChidWxrID09IHRydWUpIHsNCiAgICBzYXZlQnVsayhrZXksIHZhbHVlKTsNCiAgICBtYXBwaW5nRGV0YWlsKHhlcGcpOw0KICAgIHJldHVybg0KICB9DQogIA0KfQ0KDQpmdW5jdGlvbiBzYXZlQ2hhbm5lbE5hbWUoeGVwZykgew0KICBpZiAoYnVsayA9PSBmYWxzZSkgew0KICAgIHZhciB0aGlzQ2hhbm5lbCA9IHhFUEdbImVwZ01hcHBpbmciXVt4ZXBnXTsNCiAgICB0aGlzQ2hhbm5lbFsieC1uYW1lIl0gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgieC1uYW1lIikubGFzdENoaWxkLnZhbHVlOw0KICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHhlcGcpLmNoaWxkTm9kZXNbM10ubGFzdENoaWxkLmlubmVySFRNTCA9IHRoaXNDaGFubmVsWyJ4LW5hbWUiXTsNCiAgICBtYXBwaW5nRGV0YWlsKHhlcGcpOw0KICAgIHNlYXJjaEluTWFwcGluZygpOw0KICB9DQogIA0KfQ0KDQpmdW5jdGlvbiBzYXZlQ2hhbm5lbE5hbWVVcGRhdGUoeGVwZykgew0KICB2YXIga2V5ICAgPSAieC11cGRhdGUtY2hhbm5lbC1uYW1lIjsNCiAgdmFyIHZhbHVlID0gSlNPTi5wYXJzZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgieC11cGRhdGUtY2hhbm5lbC1uYW1lIikubGFzdENoaWxkLmNoZWNrZWQpOw0KDQogIGlmIChidWxrID09IGZhbHNlKSB7DQogICAgdmFyIHRoaXNDaGFubmVsID0geEVQR1siZXBnTWFwcGluZyJdW3hlcGddOw0KICAgIHRoaXNDaGFubmVsW2tleV0gPSB2YWx1ZQ0KICAgIG1hcHBpbmdEZXRhaWwoeGVwZyk7DQogICAgc2VhcmNoSW5NYXBwaW5nKCk7DQogICAgcmV0dXJuDQogIH0NCg0KICBpZiAoYnVsayA9PSB0cnVlKSB7DQogICAgc2F2ZUJ1bGsoa2V5LCB2YWx1ZSk7DQogICAgbWFwcGluZ0RldGFpbCh4ZXBnKTsNCiAgICByZXR1cm4NCiAgfQ0KDQp9DQoNCmZ1bmN0aW9uIHNhdmVDaGFubmVsU3RhdHVzKHhlcGcpIHsNCiAgdmFyIHRoaXNDaGFubmVsID0geEVQR1siZXBnTWFwcGluZyJdW3hlcGddOw0KICB2YXIgeFhtbHR2RmlsZSA9IHRoaXNDaGFubmVsWyJ4LXhtbHR2LWZpbGUiXTsNCg0KICB2YXIga2V5ICAgPSAieC1hY3RpdmUiOw0KICB2YXIgdmFsdWUgPSBKU09OLnBhcnNlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ4LWFjdGl2ZSIpLmxhc3RDaGlsZC5jaGVja2VkKTsNCg0KICBpZiAoeEVQR1sieG1sdHZNYXAiXS5oYXNPd25Qcm9wZXJ0eSh4WG1sdHZGaWxlKSA9PSB0cnVlKSB7DQogICAgaWYgKHRoaXNDaGFubmVsWyJ4LW1hcHBpbmciXSAhPSAiLSIgJiYgdGhpc0NoYW5uZWxbIngtbWFwcGluZyJdICE9IHVuZGVmaW5lZCkgew0KICAgICAgdGhpc0NoYW5uZWxbIngtYWN0aXZlIl0gPSAhdGhpc0NoYW5uZWxbIngtYWN0aXZlIl07DQogICAgICB2YXIgdHIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCh4ZXBnKTsNCiAgICAgIHN3aXRjaCh0aGlzQ2hhbm5lbFsieC1hY3RpdmUiXSkgew0KICAgICAgICBjYXNlIHRydWU6IHRyLmNsYXNzTmFtZSA9ICJhY3RpdmVFUEciOyBicmVhazsNCiAgICAgICAgY2FzZSBmYWxzZTogdHIuY2xhc3NOYW1lID0gIm5vdEFjdGl2ZUVQRyI7IGJyZWFrOw0KICAgICAgfQ0KICAgICAgDQogICAgfSBlbHNlIHsNCiAgICAgIHZhciBlcnIgPSAiWE1MVFYgQ2hhbm5lbCBpcyBub3Qgc2VsZWN0ZWQiDQogICAgICBhbGVydChlcnIpDQogICAgICB2YWx1ZSA9IGZhbHNlDQogICAgfQ0KDQogIH0gZWxzZSB7DQogICAgaWYgKHZhbHVlID09IHRydWUpIHsNCiAgICAgIHZhciBlcnIgPSAiWE1MVFYgRmlsZSBpcyBub3Qgc2VsZWN0ZSINCiAgICAgIGFsZXJ0KGVycikNCiAgICAgIHZhbHVlID0gZmFsc2UNCiAgICB9DQogIH0NCg0KICANCg0KICBpZiAoYnVsayA9PSBmYWxzZSkgew0KICAgIHZhciB0aGlzQ2hhbm5lbCA9IHhFUEdbImVwZ01hcHBpbmciXVt4ZXBnXTsNCiAgICB0aGlzQ2hhbm5lbFtrZXldID0gdmFsdWUNCiAgICBtYXBwaW5nRGV0YWlsKHhlcGcpOw0KICAgIHNlYXJjaEluTWFwcGluZygpOw0KDQogICAgdmFyIHRyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoeGVwZyk7DQogICAgc3dpdGNoKHRoaXNDaGFubmVsWyJ4LWFjdGl2ZSJdKSB7DQogICAgICBjYXNlIHRydWU6IHRyLmNsYXNzTmFtZSA9ICJhY3RpdmVFUEciOyBicmVhazsNCiAgICAgIGNhc2UgZmFsc2U6IHRyLmNsYXNzTmFtZSA9ICJub3RBY3RpdmVFUEciOyBicmVhazsNCiAgICB9DQoNCiAgICByZXR1cm4NCiAgfQ0KDQogIGlmIChidWxrID09IHRydWUpIHsNCiAgICBzYXZlQnVsayhrZXksIHZhbHVlKTsNCiAgICBtYXBwaW5nRGV0YWlsKHhlcGcpOw0KICAgIHJldHVybg0KICB9DQoNCn0NCg0KZnVuY3Rpb24gc2F2ZUdyb3VwVGl0bGUoeGVwZykgew0KICB2YXIga2V5ICAgPSAieC1ncm91cC10aXRsZSI7DQogIHZhciB2YWx1ZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ4LWdyb3VwLXRpdGxlIikubGFzdENoaWxkLnZhbHVlOw0KDQogIGlmIChidWxrID09IGZhbHNlKSB7DQogICAgdmFyIHRoaXNDaGFubmVsID0geEVQR1siZXBnTWFwcGluZyJdW3hlcGddOw0KICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHhlcGcpLmNoaWxkTm9kZXNbNV0ubGFzdENoaWxkLmlubmVySFRNTCA9IHZhbHVlOw0KICAgIHRoaXNDaGFubmVsW2tleV0gPSB2YWx1ZTsNCiAgICBtYXBwaW5nRGV0YWlsKHhlcGcpOw0KICAgIHNlYXJjaEluTWFwcGluZygpOw0KICB9DQoNCiAgaWYgKGJ1bGsgPT0gdHJ1ZSkgew0KICAgIHNhdmVCdWxrKGtleSwgdmFsdWUpOw0KICAgIG1hcHBpbmdEZXRhaWwoeGVwZyk7DQogICAgcmV0dXJuDQogIH0NCg0KfQ0KDQpmdW5jdGlvbiBzYXZlQ2F0ZWdvcnkoeGVwZykgew0KICB2YXIga2V5ICAgPSAieC1jYXRlZ29yeSI7DQogIHZhciB2YWx1ZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ4LWNhdGVnb3J5IikubGFzdENoaWxkLnZhbHVlOw0KDQogIGlmIChidWxrID09IGZhbHNlKSB7DQogICAgdmFyIHRoaXNDaGFubmVsID0geEVQR1siZXBnTWFwcGluZyJdW3hlcGddOw0KICAgIHRoaXNDaGFubmVsW2tleV0gPSB2YWx1ZQ0KICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHhlcGcpLmNoaWxkTm9kZXNbM10ubGFzdENoaWxkLmNsYXNzTmFtZSA9IHZhbHVlDQogICAgbWFwcGluZ0RldGFpbCh4ZXBnKTsNCiAgICBzZWFyY2hJbk1hcHBpbmcoKTsNCiAgfQ0KDQogIGlmIChidWxrID09IHRydWUpIHsNCiAgICBzYXZlQnVsayhrZXksIHZhbHVlKTsNCiAgICBtYXBwaW5nRGV0YWlsKHhlcGcpOw0KICAgIHJldHVybg0KICB9DQoNCn0NCg0KZnVuY3Rpb24gYXJyYW5nZVRhYmxlKGVsbSkgew0KICB2YXIgdHIgPSBlbG0ucGFyZW50RWxlbWVudC5wYXJlbnRFbGVtZW50Ow0KICB2YXIgbmV3UG9zaXRpb24gPSBlbG0udmFsdWU7DQogIHZhciB4X2NoYW5uZWxJRCA9IHRyLmlkOw0KDQogIHN3aXRjaChpc05hTihuZXdQb3NpdGlvbikpIHsNCiAgICBjYXNlIHRydWU6IA0KICAgICAgYWxlcnQoIkNoLiBOby4gbXVzdCBiZSBhIG51bWJlciIpOw0KICAgICAgbWFwcGluZ0Vycm9yID0gdHJ1ZTsNCiAgICAgIGJyZWFrOw0KICB9DQoNCg0KICAvL3ZhciBpdGVtID0geEVQR1siZXBnTWFwcGluZyJdW2lkXTsNCiAgdmFyIGtleXMgPSBnZXRPYmpLZXlzKHhFUEdbImVwZ01hcHBpbmciXSkNCiAgZm9yICh2YXIgaSA9IDA7IGkgPCBrZXlzLmxlbmd0aDsgaSsrKSB7DQogICAgdmFyIGl0ZW0gPSB4RVBHWyJlcGdNYXBwaW5nIl1ba2V5c1tpXV07DQogICAgaWYgKGl0ZW1bIngtZXBnIl0gPT0geF9jaGFubmVsSUQpIHsNCg0KICAgICAgLy8gQ2hlY2sgaWYgcG9zaXRpb24gZXhpc3QNCiAgICAgIHZhciBvbGRQb3NpdGlvbiA9IGl0ZW1bIngtY2hhbm5lbElEIl07DQoNCiAgICAgIGlmIChvbGRQb3NpdGlvbiAhPSBuZXdQb3NpdGlvbikgew0KDQogICAgICAgIGNvbnNvbGUubG9nKG5ld1Bvc2l0aW9uLCBuZXdQb3NpdGlvbi5sZW5ndGgpOw0KICAgICAgICBpZiAobmV3UG9zaXRpb24ubGVuZ3RoID09IDApIHsNCiAgICAgICAgICBtYXBwaW5nRXJyb3IgPSB0cnVlDQogICAgICAgICAgbmV3UG9zaXRpb24gPSBvbGRQb3NpdGlvbjsNCiAgICAgICAgICANCiAgICAgICAgfQ0KDQogICAgICAgIGlmIChtYXBwaW5nRXJyb3IgPT0gdHJ1ZSkgew0KICAgICAgICAgIGVsbS52YWx1ZSA9IG9sZFBvc2l0aW9uOw0KICAgICAgICAgIHJldHVybjsNCiAgICAgICAgfQ0KDQogICAgICAgIGZvciAodmFyIGogPSBrZXlzLmxlbmd0aCAtIDE7IGogPj0gMDsgai0tKSB7DQogICAgICAgICAgdmFyIGNoYW5uZWwgPSB4RVBHWyJlcGdNYXBwaW5nIl1ba2V5c1tqXV07DQogICAgICAgICAgaWYgKGtleXNbal0gIT0geF9jaGFubmVsSUQpIHsNCiAgICAgICAgICAgIGlmIChuZXdQb3NpdGlvbiA9PSBjaGFubmVsWyJ4LWNoYW5uZWxJRCJdKSB7IC8vIElmIHBvc2l0aW9uIGV4aXN0LCBzZXQgbmV4dCBmcmVlIHBvc2l0aW9uLg0KICAgICAgICAgICAgICBuZXdQb3NpdGlvbisrOw0KICAgICAgICAgICAgICBlbG0udmFsdWUgPSBuZXdQb3NpdGlvbjsNCiAgICAgICAgICAgICAgYXJyYW5nZVRhYmxlKGVsbSk7DQogICAgICAgICAgICAgIHJldHVybjsNCiAgICAgICAgICAgICAgLyoNCiAgICAgICAgICAgICAgdmFyIG5ld0Vycm9yID0gbmV3IE9iamVjdCgpOw0KICAgICAgICAgICAgICBuZXdFcnJvclsiZXJyIl0gPSAiRHVwbGljYXRlIElEIjsNCiAgICAgICAgICAgICAgY2hlY2tFcnIobmV3RXJyb3IpOw0KICAgICAgICAgICAgICBzb3J0VGFibGUoKTsNCiAgICAgICAgICAgICAgbWFwcGluZ0Vycm9yID0gdHJ1ZTsNCiAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoeF9jaGFubmVsSUQpLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJJTlBVVCIpWzBdLmZvY3VzKCk7DQogICAgICAgICAgICAgIHJldHVybjsNCiAgICAgICAgICAgICAgKi8NCiAgICAgICAgICAgIH0NCiAgICAgICAgICB9DQogICAgICAgIH0NCg0KICAgICAgfQ0KDQogICAgICAvL2NvbnNvbGUubG9nKG9sZFBvc2l0aW9uLCBuZXdQb3NpdGlvbik7DQogICAgICBpZiAoa2V5c1tpXSA9PSB4X2NoYW5uZWxJRCAmJiBvbGRQb3NpdGlvbiAhPSBuZXdQb3NpdGlvbikgeyAgDQogICAgICAgIGl0ZW1bIngtY2hhbm5lbElEIl0gPSBuZXdQb3NpdGlvbjsNCiAgICAgIH0gDQoNCiAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJsb2dJbmZvIikuY2xhc3NOYW1lID0gIm5vdFZpc2libGUiOw0KICAgICAgaWYgKGNvbHVtblRvU29ydCA9PSAxKSB7DQogICAgICAgIHNvcnRUYWJsZShjb2x1bW5Ub1NvcnQpOw0KICAgICAgfQ0KICAgICAgbWFwcGluZ0Vycm9yID0gZmFsc2U7DQoNCiAgICB9DQogIH0NCn0NCg0KZnVuY3Rpb24gY2hhbmdlWG1sdHZGaWxlKHhlcGcsIGVsbSkgew0KDQogIHZhciB0aGlzQ2hhbm5lbCA9IHhFUEdbImVwZ01hcHBpbmciXVt4ZXBnXTsNCiAgDQogIHZhciB4WG1sdHZGaWxlICAgID0gZWxtLnZhbHVlOw0KICB2YXIgY2hhbm5lbElEICAgICA9IHRoaXNDaGFubmVsWyJ0dmctaWQiXTsNCiAgdGhpc0NoYW5uZWxbIngteG1sdHYtZmlsZSJdID0geFhtbHR2RmlsZTsNCg0KICBpZiAoYnVsayA9PSBmYWxzZSkgew0KDQogICAgc2V0VGltZW91dChmdW5jdGlvbigpeyANCg0KICAgICAgdmFyIHhNYXBwaW5nID0gIi0iDQoNCiAgICAgIC8vIEF1dG9tYXANCiAgICAgIGlmICh4WG1sdHZGaWxlICE9ICItIikgew0KICAgICAgICBpZiAoeEVQR1sieG1sdHZNYXAiXVt4WG1sdHZGaWxlXS5oYXNPd25Qcm9wZXJ0eShjaGFubmVsSUQpID09IHRydWUpIHsNCiAgICAgICAgICB0aGlzQ2hhbm5lbFsieC1tYXBwaW5nIl0gPSBjaGFubmVsSUQ7DQogICAgICAgICAgeE1hcHBpbmcgPSBjaGFubmVsSUQNCiAgICAgICAgfSBlbHNlIHsNCiAgICAgICAgICB0aGlzQ2hhbm5lbFsieC1tYXBwaW5nIl0gPSB4TWFwcGluZw0KICAgICAgICB9DQogICAgICB9IGVsc2Ugew0KICAgICAgICB0aGlzQ2hhbm5lbFsieC1tYXBwaW5nIl0gPSB4TWFwcGluZw0KDQogICAgICB9DQogICAgICANCiAgICAgIHZhciB0ciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHhlcGcpOw0KDQogICAgICBpZiAoeE1hcHBpbmcgPT0gIi0iKSB7DQogICAgICAgIHRoaXNDaGFubmVsWyJ4LWFjdGl2ZSJdID0gZmFsc2U7DQogICAgICAgIHRyLmNsYXNzTmFtZSA9ICJub3RBY3RpdmVFUEciDQogICAgICB9IGVsc2Ugew0KICAgICAgICB0aGlzQ2hhbm5lbFsieC1hY3RpdmUiXSAgPSB0cnVlOw0KICAgICAgICB0ci5jbGFzc05hbWUgPSAiYWN0aXZlRVBHIg0KICAgICAgfQ0KDQogICAgICAvLyBTaG93IGRhdGEgaW4gdGFibGUNCiAgICAgIHZhciB0ZCA9IHRyLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJURCIpOw0KICAgICAgdmFyIGRhdGFGaWxlID0gdGRbdGQubGVuZ3RoIC0gMl0ubGFzdENoaWxkOw0KICAgICAgc3dpdGNoKHhYbWx0dkZpbGUpIHsNCiAgICAgICAgY2FzZSAiLSI6ICAgICAgICAgICBkYXRhRmlsZS5pbm5lckhUTUwgPSB4WG1sdHZGaWxlOyBicmVhazsNCiAgICAgICAgY2FzZSAieFRlVmUgRHVtbXkiOiBkYXRhRmlsZS5pbm5lckhUTUwgPSB4WG1sdHZGaWxlOyBicmVhazsNCiAgICAgICAgZGVmYXVsdDogICAgICAgICAgICBkYXRhRmlsZS5pbm5lckhUTUwgPSBnZXRWYWx1ZUZyb21Qcm92aWRlckZpbGUoeFhtbHR2RmlsZSwgInhtbHR2IiwgIm5hbWUiKTsgYnJlYWs7DQogICAgICB9DQoNCiAgICAgIC8veFhtbHR2RmlsZS5yZXBsYWNlKC9eLipbXFxcL10vLCAnJyk7DQoNCiAgICAgIHZhciBkYXRhWG1sdHZJRCA9IHRkW3RkLmxlbmd0aCAtIDFdLmxhc3RDaGlsZDsNCiAgICAgIGRhdGFYbWx0dklELmlubmVySFRNTCA9IHhNYXBwaW5nOw0KICAgICAgDQogICAgICBtYXBwaW5nRGV0YWlsKHhlcGcpOw0KDQogICAgfSwgMTApOw0KICB9DQoNCiAgaWYgKGJ1bGsgPT0gdHJ1ZSkgew0KICAgIHZhciBrZXkgPSAieC14bWx0di1maWxlIg0KICAgIHZhciB2YWx1ZSA9IHhYbWx0dkZpbGUNCiAgICBzYXZlQnVsayhrZXksIHZhbHVlKTsNCg0KICAgIHZhciBrZXkgPSAieC1tYXBwaW5nIg0KICAgIHZhciB2YWx1ZSA9ICItIg0KICAgIHNhdmVCdWxrKGtleSwgdmFsdWUpOw0KICAgIG1hcHBpbmdEZXRhaWwoeGVwZyk7DQogICAgcmV0dXJuDQogIH0NCg0KICByZXR1cm4NCn0NCg0KZnVuY3Rpb24gbWFwcGluZ0NoYW5uZWwoeGVwZywgZWxtKSB7DQogIHZhciB0aGlzQ2hhbm5lbCA9IHhFUEdbImVwZ01hcHBpbmciXVt4ZXBnXTsNCiAgLy92YXIgeE1hcHBpbmcgICAgICA9IGVsbS52YWx1ZTsNCiAgdmFyIHhNYXBwaW5nICAgICAgPSBlbG0ub3B0aW9uc1tlbG0uc2VsZWN0ZWRJbmRleF0udmFsdWUNCiAgDQogIGlmIChidWxrID09IGZhbHNlKSB7DQogICAgDQogICAgdGhpc0NoYW5uZWxbIngtbWFwcGluZyJdID0geE1hcHBpbmc7DQoNCiAgICB2YXIgdHIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCh4ZXBnKTsNCg0KICAgIGlmICh4TWFwcGluZyA9PSAiLSIpIHsNCiAgICAgIHRoaXNDaGFubmVsWyJ4LWFjdGl2ZSJdID0gZmFsc2U7DQogICAgICB0ci5jbGFzc05hbWUgPSAibm90QWN0aXZlRVBHIg0KICAgIH0gZWxzZSB7DQogICAgICB0aGlzQ2hhbm5lbFsieC1hY3RpdmUiXSAgPSB0cnVlOw0KICAgICAgdHIuY2xhc3NOYW1lID0gImFjdGl2ZUVQRyINCiAgICB9DQoNCiAgICAvLyBTaG93IGRhdGEgaW4gdGFibGUNCiAgICB2YXIgdGQgPSB0ci5nZXRFbGVtZW50c0J5VGFnTmFtZSgiVEQiKTsNCiAgICB2YXIgZGF0YVhtbHR2SUQgPSB0ZFt0ZC5sZW5ndGggLSAxXS5sYXN0Q2hpbGQ7DQogICAgZGF0YVhtbHR2SUQuaW5uZXJIVE1MID0geE1hcHBpbmc7DQogICAgLy9jb25zb2xlLmxvZyh0ZFt0ZC5sZW5ndGggLSAxXSk7DQogICAgLy9jb25zb2xlLmxvZyh4TWFwcGluZywgZWxtKTsNCg0KICAgIGNyZWF0ZVNlYXJjaE9iaigpOw0KICAgIHNlYXJjaEluTWFwcGluZygpOw0KICAgIHVwZGF0ZUNoYW5uZWxMb2dvKHhlcGcpDQogICAgbWFwcGluZ0RldGFpbCh4ZXBnKTsNCiAgICByZXR1cm4NCiAgfQ0KDQogIGlmIChidWxrID09IHRydWUpIHsNCg0KICAgIHZhciBrZXkgPSAieC1tYXBwaW5nIg0KICAgIHZhciB2YWx1ZSA9IHhNYXBwaW5nDQogICAgc2F2ZUJ1bGsoa2V5LCB2YWx1ZSk7DQoNCiAgICBtYXBwaW5nRGV0YWlsKHhlcGcpOw0KICAgIHJldHVybg0KICB9DQoNCiAgcmV0dXJuDQp9DQoNCg0KZnVuY3Rpb24gY3JlYXRlTmV3VEQobmV3SXRlbSwgZWxtKSB7DQogIHZhciBuZXdURCA9IG5ldyBPYmplY3QoKTsNCiAgbmV3VERbIl9lbGVtZW50Il0gPSAiVEQiOw0KICANCiAgZWxtLmFwcGVuZENoaWxkKGNyZWF0ZUVsZW1lbnQobmV3VEQpKTsNCiAgdmFyIHRkID0gZWxtLmxhc3RDaGlsZDsgDQogIA0KICBzd2l0Y2gobmV3SXRlbVsiX2VsZW1lbnQiXSkgew0KICAgIGNhc2UgIlNFTEVDVCI6DQogICAgICB0ZC5hcHBlbmRDaGlsZChjcmVhdGVFbGVtZW50KG5ld0l0ZW0pKTsNCiAgICAgIHZhciB0ZCA9IGVsbS5sYXN0Q2hpbGQubGFzdENoaWxkOyANCiAgICAgIHZhciB2YWx1ZXMgPSBuZXdJdGVtWyJfb3B0aW9uVmFsdWVzIl07DQogICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHZhbHVlcy5sZW5ndGg7IGkrKykgew0KICAgICAgICAvL2NvbnNvbGUubG9nKGl0ZW0pOw0KICAgICAgICB2YXIgbmV3RW50cnkgPSBuZXcgT2JqZWN0Ow0KICAgICAgICBuZXdFbnRyeVsiX2VsZW1lbnQiXSAgPSAiT1BUSU9OIjsNCiAgICAgICAgbmV3RW50cnlbIl90ZXh0Il0gICAgID0gdmFsdWVzW2ldOw0KICAgICAgICBuZXdFbnRyeVsidmFsdWUiXSAgICAgPSB2YWx1ZXNbaV07DQogICAgICAgIHRkLmFwcGVuZENoaWxkKGNyZWF0ZUVsZW1lbnQobmV3RW50cnkpKTsNCiAgICAgIH0NCiAgICAgIHRkLnZhbHVlID0gbmV3SXRlbVsidmFsdWUiXTsNCg0KICAgICAgYnJlYWs7DQogICAgDQogICAgZGVmYXVsdDogDQogICAgICANCiAgICAgIHRkLmFwcGVuZENoaWxkKGNyZWF0ZUVsZW1lbnQobmV3SXRlbSkpOw0KICAgICAgYnJlYWs7DQogIH0NCiAgDQp9DQoNCmZ1bmN0aW9uIHNhdmVYRVBHKCkgew0KICBpZiAobWFwcGluZ0Vycm9yID09IHRydWUpIHsNCiAgICBhbGVydCgiRGF0YSBjb3VsZCBub3QgYmUgc2F2ZWQsIGVycm9ycyBpbiB0aGUgWEVQRyBkYXRhLiIpOw0KICAgIHJldHVybjsNCiAgfQ0KICBzaG93TG9hZGluZ1NjcmVlbih0cnVlKTsNCg0KICB2YXIgZGF0YSA9IG5ldyBPYmplY3QoKTsNCiAgZGF0YVsiZXBnTWFwcGluZyJdID0geEVQR1siZXBnTWFwcGluZyJdOw0KICBkYXRhWyJjbWQiXSA9ICJzYXZlRXBnTWFwcGluZyI7DQogIC8vY29uc29sZS5sb2coZGF0YSk7DQogIHhUZVZlKGRhdGEpOw0KfQ0KDQpmdW5jdGlvbiBidWxrRWRpdCgpIHsNCiAgYnVsayA9ICFidWxrOw0KICB2YXIgY2xhc3NOYW1lOw0KDQogIHZhciBlbG0gPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCJidWxrIik7DQoNCiAgc3dpdGNoKGJ1bGspIHsNCiAgICBjYXNlIHRydWU6IA0KICAgICAgY2xhc3NOYW1lID0gImJ1bGsgc2hvd0J1bGsiOw0KICAgICAgYnJlYWs7DQoNCiAgICBjYXNlIGZhbHNlOiANCiAgICAgIGNsYXNzTmFtZSA9ICJidWxrIGhpZGVCdWxrIjsNCiAgICAgIGJ1bGtFZGl0QWxsID0gZmFsc2U7DQogICAgICBicmVhazsNCiAgfQ0KDQogIGZvciAodmFyIGkgPSAwOyBpIDwgZWxtLmxlbmd0aDsgaSsrKSB7DQogICAgZWxtW2ldLmNsYXNzTmFtZSA9IGNsYXNzTmFtZTsNCiAgICBlbG1baV0uY2hlY2tlZCA9IGZhbHNlOw0KICB9DQoNCn0NCg0KZnVuY3Rpb24gYnVsa0VkaXRBbGxDaGFubmVscygpIHsNCg0KICB2YXIgYWxsVFIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiaWRfbWFwcGluZyIpLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJUUiIpOw0KDQogIGZvciAodmFyIGkgPSAxOyBpIDwgYWxsVFIubGVuZ3RoOyBpKyspIHsNCiAgICBpZiAoYWxsVFJbaV0uc3R5bGUuZGlzcGxheSAhPSAibm9uZSIpIHsNCiAgICAgIHN3aXRjaChidWxrRWRpdEFsbCkgew0KICAgICAgICBjYXNlIGZhbHNlOiBhbGxUUltpXS5maXJzdENoaWxkLmZpcnN0Q2hpbGQuY2hlY2tlZCA9IHRydWU7IGJyZWFrOw0KICAgICAgICBjYXNlIHRydWU6IGFsbFRSW2ldLmZpcnN0Q2hpbGQuZmlyc3RDaGlsZC5jaGVja2VkID0gZmFsc2U7IGJyZWFrOyANCiAgICAgIH0NCg0KICAgIH0NCiAgICANCiAgfQ0KDQogIGJ1bGtFZGl0QWxsID0gIWJ1bGtFZGl0QWxsOw0KfQ0KDQpmdW5jdGlvbiBzb3J0VGFibGUoY29sdW1tKSB7DQogIC8vY29uc29sZS5sb2coY29sdW1tKTsNCiAgaWYgKGNvbHVtbSA9PSBjb2x1bW5Ub1NvcnQpIHsNCiAgICAvL3JldHVybjsNCiAgfQ0KDQogIHZhciB0YWJsZSAgICAgICA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJpZF9tYXBwaW5nIik7DQogIHZhciB0YWJsZUhlYWQgICA9IHRhYmxlLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJUUiIpWzBdOw0KICB2YXIgdGFibGVJdGVtcyAgPSB0YWJsZUhlYWQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlREIik7DQogIA0KICB2YXIgc29ydE9iaiA9IG5ldyBPYmplY3QoKTsNCiAgdmFyIHgsIHhWYWx1ZTsNCiAgdmFyIHRhYmxlSGVhZGVyDQogIHZhciBzb3J0QnlTdHJpbmcgPSBmYWxzZQ0KDQogIGlmIChjb2x1bW0gPiAwICYmIGNvbHVtblRvU29ydCA+IDApICB7DQogICAgdGFibGVJdGVtc1tjb2x1bW5Ub1NvcnRdLmNsYXNzTmFtZSA9ICJwb2ludGVyIjsNCiAgICB0YWJsZUl0ZW1zW2NvbHVtbV0uY2xhc3NOYW1lID0gInNvcnRUaGlzIjsNCiAgfQ0KDQogIGNvbHVtblRvU29ydCA9IGNvbHVtbTsNCg0KICB2YXIgcm93cyA9IHRhYmxlLnJvd3M7DQoNCiAgaWYgKHJvd3NbMV0gIT0gdW5kZWZpbmVkKSB7DQogICAgdGFibGVIZWFkZXIgPSByb3dzWzBdDQoNCiAgICB4ID0gcm93c1sxXS5nZXRFbGVtZW50c0J5VGFnTmFtZSgiVEQiKVtjb2x1bW1dOw0KICAgIA0KICAgIGZvciAoaSA9IDE7IGkgPCByb3dzLmxlbmd0aDsgaSsrKSB7DQoNCiAgICAgIHggPSByb3dzW2ldLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJURCIpW2NvbHVtbV07DQoNCiAgICAgIHN3aXRjaCh4LmNoaWxkTm9kZXNbMF0udGFnTmFtZS50b0xvd2VyQ2FzZSgpKSB7DQogICAgICAgIGNhc2UgImlucHV0IjoNCiAgICAgICAgICB4VmFsdWUgPSB4LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJJTlBVVCIpWzBdLnZhbHVlLnRvTG93ZXJDYXNlKCk7DQogICAgICAgICAgYnJlYWs7DQoNCiAgICAgICAgY2FzZSAicCI6DQogICAgICAgICAgeFZhbHVlID0geC5nZXRFbGVtZW50c0J5VGFnTmFtZSgiUCIpWzBdLmlubmVyVGV4dC50b0xvd2VyQ2FzZSgpOw0KICAgICAgICAgIGJyZWFrOw0KICAgICAgICANCiAgICAgICAgZGVmYXVsdDogY29uc29sZS5sb2coeC5jaGlsZE5vZGVzWzBdLnRhZ05hbWUpOw0KICAgICAgfQ0KDQogICAgICBpZiAoeFZhbHVlID09ICIiIHx8IHhWYWx1ZSA9PSBOYU4pIHsNCiAgICAgICAgeFZhbHVlID0gaQ0KICAgICAgICBzb3J0T2JqW2ldID0gcm93c1tpXTsNCiAgICAgIA0KICAgICAgfSBlbHNlIHsNCg0KICAgICAgICBzd2l0Y2goaXNOYU4oeFZhbHVlKSkgew0KICAgICAgICAgIGNhc2UgZmFsc2U6IA0KDQogICAgICAgICAgICB4VmFsdWUgPSBwYXJzZUZsb2F0KHhWYWx1ZSk7DQogICAgICAgICAgICBzb3J0T2JqW3hWYWx1ZV0gPSByb3dzW2ldDQogICAgICAgICAgICBicmVhazsNCg0KICAgICAgICAgIGNhc2UgdHJ1ZToNCg0KICAgICAgICAgICAgc29ydEJ5U3RyaW5nID0gdHJ1ZQ0KICAgICAgICAgICAgc29ydE9ialt4VmFsdWUudG9Mb3dlckNhc2UoKSArIGldID0gcm93c1tpXQ0KICAgICAgICAgICAgYnJlYWs7DQoNCiAgICAgICAgfQ0KDQogICAgICB9DQogICAgDQogICAgfQ0KDQogICAgd2hpbGUgKHRhYmxlLmZpcnN0Q2hpbGQpIHsNCiAgICAgIHRhYmxlLnJlbW92ZUNoaWxkKHRhYmxlLmZpcnN0Q2hpbGQpOw0KICAgIH0NCiAgICANCiAgICB2YXIgc29ydFZhbHVlcyA9IGdldE9iaktleXMoc29ydE9iaikNCiAgICBpZiAoc29ydEJ5U3RyaW5nID09IHRydWUpIHsNCiAgICAgIHNvcnRWYWx1ZXMuc29ydCgpDQogICAgfSBlbHNlIHsNCiAgICAgIGZ1bmN0aW9uIHNvcnRGbG9hdChhLCBiKSB7IA0KICAgICAgICByZXR1cm4gYSAtIGI7IA0KICAgICAgfQ0KICAgICAgc29ydFZhbHVlcy5zb3J0KHNvcnRGbG9hdCk7DQogICAgfQ0KDQogICAgdGFibGUuYXBwZW5kQ2hpbGQodGFibGVIZWFkZXIpDQogICAgDQogICAgZm9yICh2YXIgaSA9IDA7IGkgPCBzb3J0VmFsdWVzLmxlbmd0aDsgaSsrKSB7DQogICAgIA0KICAgICAgdGFibGUuYXBwZW5kQ2hpbGQoc29ydE9ialtzb3J0VmFsdWVzW2ldXSkNCg0KICAgIH0NCiAgICANCiAgfQ0KDQp9DQoNCg0KZnVuY3Rpb24gc29ydFRhYmxlX29sZChjb2x1bW0pIHsNCiAgc2hvd0xvYWRpbmdTY3JlZW4odHJ1ZSk7DQogIA0KICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7IA0KDQogICAgdmFyIHRhYmxlLCByb3dzLCBzd2l0Y2hpbmcsIGksIHgsIHksIHNob3VsZFN3aXRjaDsNCiAgICB0YWJsZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJpZF9tYXBwaW5nIik7DQoNCiAgICB2YXIgdGFibGVIZWFkID0gdGFibGUuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlRSIilbMF07DQogICAgdmFyIHRhYmxlSXRlbXMgPSB0YWJsZUhlYWQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlREIik7DQoNCiAgICBpZiAoY29sdW1tID4gMCkgIHsNCiAgICAgIHRhYmxlSXRlbXNbY29sdW1uVG9Tb3J0XS5jbGFzc05hbWUgPSAicG9pbnRlciI7DQogICAgICB0YWJsZUl0ZW1zW2NvbHVtbV0uY2xhc3NOYW1lID0gInNvcnRUaGlzIjsNCiAgICB9DQogICAgDQogICAgY29sdW1uVG9Tb3J0ID0gY29sdW1tOw0KDQogICAgLyoNCiAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRhYmxlSXRlbXMubGVuZ3RoOyBpKyspIHsNCiAgICAgIGlmICh0YWJsZUl0ZW1zW2ldLmNsYXNzTmFtZSAhPSB1bmRlZmluZWQpIHsNCiAgICAgICAgdGFibGVJdGVtc1tpXS5jbGFzc05hbWUgPSAicG9pbnRlciINCiAgICAgIH0NCg0KICAgIH0NCiAgICAqLw0KDQogICAgDQoNCiAgICBjb25zb2xlLmxvZyh0YWJsZUl0ZW1zKTsgDQoNCiAgICBzd2l0Y2hpbmcgPSB0cnVlOw0KICAgIHdoaWxlIChzd2l0Y2hpbmcpIHsNCiAgICAgIHN3aXRjaGluZyA9IGZhbHNlOw0KICAgICAgcm93cyA9IHRhYmxlLnJvd3M7DQogICAgICBmb3IgKGkgPSAxOyBpIDwgKHJvd3MubGVuZ3RoIC0gMSk7IGkrKykgew0KICAgICAgICBzaG91bGRTd2l0Y2ggPSBmYWxzZTsNCg0KICAgICAgICB4ID0gcm93c1tpXS5nZXRFbGVtZW50c0J5VGFnTmFtZSgiVEQiKVtjb2x1bW1dOw0KICAgICAgICB5ID0gcm93c1tpICsgMV0uZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlREIilbY29sdW1tXTsNCg0KICAgICAgICBzd2l0Y2goeC5jaGlsZE5vZGVzWzBdLnRhZ05hbWUudG9Mb3dlckNhc2UoKSkgew0KICAgICAgICAgIGNhc2UgImlucHV0IjoNCiAgICAgICAgICAgIHhWYWx1ZSA9IHguZ2V0RWxlbWVudHNCeVRhZ05hbWUoIklOUFVUIilbMF0udmFsdWUudG9Mb3dlckNhc2UoKTsNCiAgICAgICAgICAgIHlWYWx1ZSA9IHkuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIklOUFVUIilbMF0udmFsdWUudG9Mb3dlckNhc2UoKTsNCiAgICAgICAgICAgIGJyZWFrOw0KDQogICAgICAgICAgY2FzZSAicCI6DQogICAgICAgICAgICB4VmFsdWUgPSB4LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJQIilbMF0uaW5uZXJUZXh0LnRvTG93ZXJDYXNlKCk7DQogICAgICAgICAgICB5VmFsdWUgPSB5LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJQIilbMF0uaW5uZXJUZXh0LnRvTG93ZXJDYXNlKCk7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgICANCiAgICAgICAgICBkZWZhdWx0OiBjb25zb2xlLmxvZyh4LmNoaWxkTm9kZXNbMF0udGFnTmFtZSk7DQogICAgICAgIH0NCg0KICAgICAgICANCiAgICAgICAgc3dpdGNoKGlzTmFOKHhWYWx1ZSkpIHsNCiAgICAgICAgICBjYXNlIGZhbHNlOiB4VmFsdWUgPSBwYXJzZUZsb2F0KHhWYWx1ZSkgOyBicmVhazsNCiAgICAgICAgfQ0KDQogICAgICAgIHN3aXRjaChpc05hTih5VmFsdWUpKSB7DQogICAgICAgICAgY2FzZSBmYWxzZTogeVZhbHVlID0gcGFyc2VGbG9hdCh5VmFsdWUpIDsgYnJlYWs7DQogICAgICAgIH0NCiAgICAgICAgDQoNCiAgICAgICAgaWYgKHhWYWx1ZSA+IHlWYWx1ZSkgew0KICAgICAgICAgIHNob3VsZFN3aXRjaCA9IHRydWU7DQogICAgICAgICAgYnJlYWs7DQogICAgICAgIH0NCg0KICAgICAgfQ0KICAgICAgaWYgKHNob3VsZFN3aXRjaCkgew0KICAgICAgICByb3dzW2ldLnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKHJvd3NbaSArIDFdLCByb3dzW2ldKTsNCiAgICAgICAgc3dpdGNoaW5nID0gdHJ1ZTsNCiAgICAgIH0NCiAgICB9DQogICAgY3JlYXRlU2VhcmNoT2JqKCkNCiAgICANCiAgICBzaG93TG9hZGluZ1NjcmVlbihmYWxzZSk7DQogIH0sIDIwKTsNCg0KfQ0KDQpmdW5jdGlvbiBzaG93WEVQRygpIHsNCiAgdmFyIHVybCA9IGxvY2F0aW9uLnByb3RvY29sICsgIi8vIiArIGxvY2F0aW9uLmhvc3RuYW1lICsgIjoiICsgbG9jYXRpb24ucG9ydCArICIveG1sdHYveHRldmUueG1sIg0KICB2YXIgd2luID0gd2luZG93Lm9wZW4odXJsLCAnX2JsYW5rJyk7DQogIHdpbi5mb2N1cygpOw0KfQ==" + webUI["html/lang/en.json"] = "ew0KICAibWFpbk1lbnUiOg0KICB7DQogICAgIml0ZW0iOg0KICAgIHsNCiAgICAgICJwbGF5bGlzdCI6ICJQbGF5bGlzdCIsDQogICAgICAicG1zSUQiOiAiUE1TIElEIiwNCiAgICAgICJmaWx0ZXIiOiAiRmlsdGVyIiwNCiAgICAgICJ4bWx0diI6ICJYTUxUViIsDQogICAgICAibWFwcGluZyI6ICJNYXBwaW5nIiwNCiAgICAgICJ1c2VycyI6ICJVc2VycyIsDQogICAgICAic2V0dGluZ3MiOiAiU2V0dGluZ3MiLA0KICAgICAgImxvZyI6ICJMb2ciLA0KICAgICAgImxvZ291dCI6ICJMb2dvdXQiDQogICAgfSwNCiAgICAiaGVhZGxpbmUiOg0KICAgIHsNCiAgICAgICJwbGF5bGlzdCI6ICJMb2NhbCBvciByZW1vdGUgcGxheWxpc3RzIiwNCiAgICAgICJmaWx0ZXIiOiAiRmlsdGVyIHBsYXlsaXN0IiwNCiAgICAgICJ4bWx0diI6ICJMb2NhbCBvciByZW1vdGUgWE1MVFYgZmlsZXMiLA0KICAgICAgIm1hcHBpbmciOiAiTWFwIHBsYXlsaXN0IGNoYW5uZWxzIHRvIEVQRyBjaGFubmVscyIsDQogICAgICAidXNlcnMiOiAiVXNlciBtYW5hZ2VtZW50IiwNCiAgICAgICJzZXR0aW5ncyI6ICJTZXR0aW5ncyIsDQogICAgICAibG9nIjogIkxvZyIsDQogICAgICAibG9nb3V0IjogIkxvZ291dCINCiAgICB9DQogIH0sDQogICJjb25maXJtIjoNCiAgew0KICAgICJyZXN0b3JlIjogIkFsbCBkYXRhIHdpbGwgYmUgcmVwbGFjZWQgd2l0aCB0aG9zZSBmcm9tIHRoZSBiYWNrdXAuIFNob3VsZCB0aGUgZmlsZXMgYmUgcmVzdG9yZWQ/Ig0KICB9LA0KICAiYWxlcnQiOg0KICB7DQogICAgImZpbGVMb2FkaW5nRXJyb3IiOiAiRmlsZSBjb3VsZG4ndCBiZSBsb2FkZWQiLA0KICAgICJpbnZhbGlkQ2hhbm5lbE51bWJlciI6ICJJbnZhbGlkIGNoYW5uZWwgbnVtYmVyIiwNCiAgICAibWlzc2luZ0lucHV0IjogIk1pc3NpbmcgaW5wdXQiDQogIH0sDQogICJidXR0b24iOg0KICB7DQogICAgImJhY2siOiAiQmFjayIsDQogICAgImJhY2t1cCI6ICJCYWNrdXAiLA0KICAgICJidWxrRWRpdCI6ICJCdWxrIEVkaXQiLA0KICAgICJjYW5jZWwiOiAiQ2FuY2VsIiwNCiAgICAiZGVsZXRlIjogIkRlbGV0ZSIsDQogICAgImRvbmUiOiAiRG9uZSIsDQogICAgImxvZ2luIjogIkxvZ2luIiwNCiAgICAibmV3IjogIk5ldyIsDQogICAgIm5leHQiOiAiTmV4dCIsDQogICAgInJlc3RvcmUiOiAiUmVzdG9yZSIsDQogICAgInNhdmUiOiAiU2F2ZSIsDQogICAgInNlYXJjaCI6ICJTZWFyY2giLA0KICAgICJ1cGRhdGUiOiAiVXBkYXRlIiwNCiAgICAiY3JhZXRlQWNjb3VudCI6ICJDcmVhdGUgQWNjb3VudCIsDQogICAgInJlc2V0TG9ncyI6ICJSZXNldCBMb2dzIiwNCiAgICAidXBsb2FkTG9nbyI6ICJVcGxvYWQgTG9nbyINCiAgfSwNCiAgImZpbHRlciI6DQogIHsNCiAgICAidGFibGUiOg0KICAgIHsNCiAgICAgICJuYW1lIjogIkZpbHRlciBOYW1lIiwNCiAgICAgICJ0eXBlIjogIkZpbHRlciBUeXBlIiwNCiAgICAgICJmaWx0ZXIiOiAiRmlsdGVyIg0KICAgIH0sDQogICAgImN1c3RvbSI6ICJDdXN0b20iLA0KICAgICJncm91cCI6ICJNM1UgR3JvdXAiLA0KICAgICJuYW1lIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiRmlsdGVyIE5hbWUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIkZpbHRlciBuYW1lIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAiZGVzY3JpcHRpb24iOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJEZXNjcmlwdGlvbiIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiRGVzY3JpcHRpb24iLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJ0eXBlIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiVHlwZSIsDQogICAgICAiZ3JvdXBUaXRsZSI6ICJHcm91cCBUaXRsZSIsDQogICAgICAiY3VzdG9tRmlsdGVyIjogIkN1c3RvbSBGaWx0ZXIiDQogICAgfSwNCiAgICAiY2FzZVNlbnNpdGl2ZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIkNhc2UgU2Vuc2l0aXZlIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJmaWx0ZXJSdWxlIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiRmlsdGVyIFJ1bGUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIlNwb3J0IHtIRH0gIXtFUyxJVH0iLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJmaWx0ZXJHcm91cCI6DQogICAgew0KICAgICAgInRpdGxlIjogIkdyb3VwIFRpdGxlIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIlNlbGVjdCBhIE0zVSBncm91cC4gKENvdW50ZXIpPGJyPkNoYW5naW5nIHRoZSBncm91cCB0aXRsZSBpbiB0aGUgTTNVIGludmFsaWRhdGVzIHRoZSBmaWx0ZXIuIg0KICAgIH0sDQogICAgImluY2x1ZGUiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJJbmNsdWRlIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJGSEQsVUhEIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJDaGFubmVsIG5hbWUgbXVzdCBpbmNsdWRlLjxicj4oQ29tbWEgc2VwYXJhdGVkKSBDb21tYSBtZWFucyBvciINCiAgICB9LA0KICAgICJleGNsdWRlIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiRXhjbHVkZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiRVMsSVQiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIkNoYW5uZWwgbmFtZSBtdXN0IG5vdCBjb250YWluLjxicj4oQ29tbWEgc2VwYXJhdGVkKSBDb21tYSBtZWFucyBvciINCiAgICB9LA0KICAgICJwcmVzZXJ2ZU1hcHBpbmciOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJQcmVzZXJ2ZSBFeGlzdGluZyBNM1U8YnI+Q2hhbm5lbCBOdW1iZXJzIiwNCiAgICAgICJwYWxjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIlByZXNlcnZlIGV4aXN0aW5nIE0zVSBwbGF5bGlzdCBjaGFubmVsIG51bWJlcnM/Ig0KICAgIH0sDQogICAgInN0YXJ0aW5nQ2hhbm5lbCI6DQogICAgew0KICAgICAgInRpdGxlIjogIlN0YXJ0aW5nIENoYW5uZWwgTnVtYmVyIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJkZWZhdWx0TWlzc2luZ0VQRyI6DQogICAgew0KICAgICAgInRpdGxlIjogIkZpbGwgTWlzc2luZyBFUEcgRGF0YSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJXaGVuIHRoZXJlIGlzIG5vIG1hdGNoaW5nIEVQRyBkYXRhIGZvciBjaGFubmVsLCA8YnI+YXV0b2ZpbGwgd2l0aCB4VGVWZSBkdW1teSBFUEcgZGF0YT8iDQogICAgfQ0KDQogIH0sDQogICJwbGF5bGlzdCI6DQogIHsNCiAgICAidGFibGUiOg0KICAgIHsNCiAgICAgICJwbGF5bGlzdCI6ICJQbGF5bGlzdCIsDQogICAgICAidHVuZXIiOiAiVHVuZXIiLA0KICAgICAgImxhc3RVcGRhdGUiOiAiTGFzdCBVcGRhdGUiLA0KICAgICAgImF2YWlsYWJpbGl0eSI6ICJBdmFpbGFiaWxpdHkiLA0KICAgICAgInR5cGUiOiAiVHlwZSIsDQogICAgICAic3RyZWFtcyI6ICJTdHJlYW1zIiwNCiAgICAgICJncm91cFRpdGxlIjogImdyb3VwLXRpdGxlIiwNCiAgICAgICJ0dmdJRCI6ICJ0dmctaWQiLA0KICAgICAgInVuaXF1ZUlEIjogIlVuaXF1ZSBJRCINCiAgICB9LA0KICAgICJwbGF5bGlzdFR5cGUiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJQbGF5bGlzdCB0eXBlIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJ0eXBlIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiVHlwZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAibmFtZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIk5hbWUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIlBsYXlsaXN0IG5hbWUiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJkZXNjcmlwdGlvbiI6DQogICAgew0KICAgICAgInRpdGxlIjogIkRlc2NyaXB0aW9uIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJEZXNjcmlwdGlvbiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgImZpbGVNM1UiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJNM1UgRmlsZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiRmlsZSBwYXRoIG9yIFVSTCBvZiB0aGUgTTNVIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAiZmlsZUhESFIiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJIREhvbWVSdW4gSVAiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIklQIGFkZHJlc3MgYW5kIHBvcnQgKDE5Mi4xNjguMS4xMDo1MDA0KSIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgInR1bmVyIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiVHVuZXIgLyBTdHJlYW1zIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIk51bWJlciBvZiBwYXJhbGxlbCBjb25uZWN0aW9ucyB0aGF0IGNhbiBiZSBlc3RhYmxpc2hlZCB0byB0aGUgcHJvdmlkZXIuIDxicj5Pbmx5IGF2YWlsYWJsZSB3aXRoIGFjdGl2YXRlZCBidWZmZXIuPGJyPk5ldyBzZXR0aW5ncyB3aWxsIG9ubHkgYmUgYXBwbGllZCBhZnRlciBxdWl0dGluZyBhbGwgc3RyZWFtcy4iDQogICAgfQ0KICB9LA0KICAieG1sdHYiOg0KICB7DQogICAgInRhYmxlIjoNCiAgICB7DQogICAgICAiZ3VpZGUiOiAiR3VpZGUiLA0KICAgICAgImxhc3RVcGRhdGUiOiAiTGFzdCBVcGRhdGUiLA0KICAgICAgImF2YWlsYWJpbGl0eSI6ICJBdmFpbGFiaWxpdHkiLA0KICAgICAgImNoYW5uZWxzIjogIkNoYW5uZWxzIiwNCiAgICAgICJwcm9ncmFtcyI6ICJQcm9ncmFtcyINCiAgICB9LA0KICAgICJuYW1lIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiTmFtZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiR3VpZGUgbmFtZSIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgImRlc2NyaXB0aW9uIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiRGVzY3JpcHRpb24iLA0KICAgICAgInBsYWNlaG9sZGVyIjogIkRlc2NyaXB0aW9uIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAiZmlsZVhNTFRWIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiWE1MVFYgRmlsZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiRmlsZSBwYXRoIG9yIFVSTCBvZiB0aGUgWE1MVFYiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9DQogIH0sDQogICJtYXBwaW5nIjoNCiAgew0KICAgICJ0YWJsZSI6DQogICAgew0KICAgICAgImNoTm8iOiAiQ2guIE5vLiIsDQogICAgICAibG9nbyI6ICJMb2dvIiwNCiAgICAgICJjaGFubmVsTmFtZSI6ICJDaGFubmVsIE5hbWUiLA0KICAgICAgInBsYXlsaXN0IjogIlBsYXlsaXN0IiwNCiAgICAgICJncm91cFRpdGxlIjogIkdyb3VwIFRpdGxlIiwNCiAgICAgICJ4bWx0dkZpbGUiOiAiWE1MVFYgRmlsZSIsDQogICAgICAieG1sdHZJRCI6ICJYTUxUViBJRCIsDQogICAgICAidGltZXNoaWZ0IjogIlRpbWVzaGlmdCINCiAgICB9LA0KICAgICJhY3RpdmUiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJBY3RpdmUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgImNoYW5uZWxOYW1lIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiQ2hhbm5lbCBOYW1lIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJkZXNjcmlwdGlvbiI6DQogICAgew0KICAgICAgInRpdGxlIjogIkNoYW5uZWwgRGVzY3JpcHRpb24iLA0KICAgICAgInBsYWNlaG9sZGVyIjogIlVzZWQgYnkgdGhlIER1bW15IGFzIGFuIFhNTCBkZXNjcmlwdGlvbiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgInVwZGF0ZUNoYW5uZWxOYW1lIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiVXBkYXRlIENoYW5uZWwgTmFtZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAiY2hhbm5lbExvZ28iOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJMb2dvIFVSTCIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAidXBkYXRlQ2hhbm5lbExvZ28iOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJVcGRhdGUgQ2hhbm5lbCBMb2dvIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJlcGdDYXRlZ29yeSI6DQogICAgew0KICAgICAgInRpdGxlIjogIkVQRyBDYXRlZ29yeSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAibTN1R3JvdXBUaXRsZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIkdyb3VwIFRpdGxlICh4dGV2ZS5tM3UpIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJ4bWx0dkZpbGUiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJYTUxUViBGaWxlIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJ4bWx0dkNoYW5uZWwiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJYTUxUViBDaGFubmVsIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJ0aW1lc2hpZnQiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJUaW1lc2hpZnQiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIjAiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9DQogIH0sDQogICJ1c2VycyI6DQogIHsNCiAgICAidGFibGUiOg0KICAgIHsNCiAgICAgICJ1c2VybmFtZSI6ICJVc2VybmFtZSIsDQogICAgICAicGFzc3dvcmQiOiAiUGFzc3dvcmQiLA0KICAgICAgIndlYiI6ICJXRUIiLA0KICAgICAgInBtcyI6ICJQTVMiLA0KICAgICAgIm0zdSI6ICJNM1UiLA0KICAgICAgInhtbCI6ICJYTUwiLA0KICAgICAgImFwaSI6ICJBUEkiDQogICAgfSwNCiAgICAidXNlcm5hbWUiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJVc2VybmFtZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiVXNlcm5hbWUiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJwYXNzd29yZCI6DQogICAgew0KICAgICAgInRpdGxlIjogIlBhc3N3b3JkIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJQYXNzd29yZCIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgImNvbmZpcm0iOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJDb25maXJtIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJQYXNzd29yZCBjb25maXJtIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAid2ViIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiV2ViIEFjY2VzcyIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAicG1zIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiUE1TIEFjY2VzcyIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAibTN1IjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiTTNVIEFjY2VzcyIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAieG1sIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiWE1MIEFjY2VzcyIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAiYXBpIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiQVBJIEFjY2VzcyIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfQ0KICB9LA0KICAic2V0dGluZ3MiOg0KICB7DQogICAgImNhdGVnb3J5IjoNCiAgICB7DQogICAgICAiZ2VuZXJhbCI6ICJHZW5lcmFsIiwNCiAgICAgICJmaWxlcyI6ICJGaWxlcyIsDQogICAgICAic3RyZWFtaW5nIjogIlN0cmVhbWluZyIsDQogICAgICAiYmFja3VwIjogIkJhY2t1cCIsDQogICAgICAiYXV0aGVudGljYXRpb24iOiAiQXV0aGVudGljYXRpb24iDQogICAgfSwNCiAgICAidXBkYXRlIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiU2NoZWR1bGUgZm9yIHVwZGF0aW5nIChQbGF5bGlzdCwgWE1MVFYsIEJhY2t1cCkiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIjAwMDAsMTAwMCwyMDAwIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJUaW1lIGluIDI0IGhvdXIgZm9ybWF0ICgwODAwID0gODowMCBhbSkuIE1vcmUgdGltZXMgY2FuIGJlIGVudGVyZWQgY29tbWEgc2VwYXJhdGVkLiBMZWF2ZSB0aGlzIGZpZWxkIGVtcHR5IGlmIG5vIHVwZGF0ZXMgYXJlIHRvIGJlIGNhcnJpZWQgb3V0LiINCiAgICB9LA0KICAgICJhcGkiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJBUEkgSW50ZXJmYWNlIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJWaWEgQVBJIGludGVyZmFjZSBpdCBpcyBwb3NzaWJsZSB0byBzZW5kIGNvbW1hbmRzIHRvIHhUZVZlLiBBUEkgZG9jdW1lbnRhdGlvbiBpcyA8YSBocmVmPSdodHRwczovL2dpdGh1Yi5jb20veHRldmUtcHJvamVjdC94VGVWZS1Eb2N1bWVudGF0aW9uL2Jsb2IvbWFzdGVyL2VuL2NvbmZpZ3VyYXRpb24ubWQjYXBpJz5oZXJlPC9hPiINCiAgICB9LA0KICAgICJlcGdTb3VyY2UiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJFUEcgU291cmNlIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJQTVM6PGJyPi0gVXNlIEVQRyBkYXRhIGZyb20gUGxleCBvciBFbWJ5IDxicj48YnI+WEVQRzo8YnI+LSBVc2Ugb2Ygb25lIG9yIG1vcmUgWE1MVFYgZmlsZXM8YnI+LSBDaGFubmVsIG1hbmFnZW1lbnQ8YnI+LSBNM1UgLyBYTUxUViBleHBvcnQgKEhUVFAgbGluayBmb3IgSVBUViBhcHBzKSINCiAgICB9LA0KICAgICJ0dW5lciI6DQogICAgew0KICAgICAgInRpdGxlIjogIk51bWJlciBvZiBUdW5lcnMiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIk51bWJlciBvZiBwYXJhbGxlbCBjb25uZWN0aW9ucyB0aGF0IGNhbiBiZSBlc3RhYmxpc2hlZCB0byB0aGUgcHJvdmlkZXIuPGJyPkF2YWlsYWJsZSBmb3I6IFBsZXgsIEVtYnkgKEhESFIpLCBNM1UgKHdpdGggYWN0aXZlIGJ1ZmZlcikuPGJyPkFmdGVyIGEgY2hhbmdlLCB4VGVWZSBtdXN0IGJlIGRlbGV0ZSBpbiB0aGUgUGxleCAvIEVtYnkgRFZSIHNldHRpbmdzIGFuZCBzZXQgdXAgYWdhaW4uIg0KICAgIH0sDQogICAgImZpbGVzVXBkYXRlIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiVXBkYXRlcyBhbGwgZmlsZXMgYXQgc3RhcnR1cCIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiVXBkYXRlcyBhbGwgcGxheWxpc3RzLCB0dW5lciBhbmQgWE1MVFYgZmlsZXMgYXQgc3RhcnR1cC4iDQogICAgfSwNCiAgICAiY2FjaGVJbWFnZXMiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJJbWFnZSBDYWNoaW5nIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJBbGwgaW1hZ2VzIGZyb20gdGhlIFhNTFRWIGZpbGUgYXJlIGNhY2hlZCwgYWxsb3dpbmcgZmFzdGVyIHJlbmRlcmluZyBvZiB0aGUgZ3JpZCBpbiB0aGUgY2xpZW50Ljxicj5Eb3dubG9hZGluZyB0aGUgaW1hZ2VzIG1heSB0YWtlIGEgd2hpbGUgYW5kIHdpbGwgYmUgZG9uZSBpbiB0aGUgYmFja2dyb3VuZC4iDQogICAgfSwNCiAgICAicmVwbGFjZUVtcHR5SW1hZ2VzIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiUmVwbGFjZSBtaXNzaW5nIHByb2dyYW0gaW1hZ2VzIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJJZiB0aGUgcG9zdGVyIGluIHRoZSBYTUxUViBwcm9ncmFtIGlzIG1pc3NpbmcsIHRoZSBjaGFubmVsIGxvZ28gd2lsbCBiZSB1c2VkLiINCiAgICB9LA0KICAgICJ4dGV2ZUF1dG9VcGRhdGUiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJBdXRvbWF0aWMgdXBkYXRlIG9mIHhUZVZlIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJJZiBhIG5ldyB2ZXJzaW9uIG9mIHhUZVZlIGlzIGF2YWlsYWJsZSwgaXQgd2lsbCBiZSBhdXRvbWF0aWNhbGx5IGluc3RhbGxlZC4gVGhlIHVwZGF0ZXMgYXJlIGRvd25sb2FkZWQgZnJvbSBHaXRIdWIuIg0KICAgIH0sDQogICAgInN0cmVhbUJ1ZmZlcmluZyI6DQogICAgew0KICAgICAgInRpdGxlIjogIlN0cmVhbSBCdWZmZXIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIkZ1bmN0aW9ucyBvZiB0aGUgYnVmZmVyOjxicj4tIFRoZSBzdHJlYW0gaXMgcGFzc2VkIGZyb20geFRlVmUsIEZGbXBlZyBvciBWTEMgdG8gUGxleCwgRW1ieSBvciBNM1UgUGxheWVyPGJyPi0gU21hbGwgamVya2luZyBvZiB0aGUgc3RyZWFtcyBjYW4gYmUgY29tcGVuc2F0ZWQ8YnI+LSBITFMgLyBNM1U4IHN1cHBvcnQ8YnI+LSBSVFAgLyBSVFBTIHN1cHBvcnQgKG9ubHkgRkZtcGVnIG9yIFZMQyk8YnI+LSBSZS1zdHJlYW1pbmc8YnI+LSBTZXBhcmF0ZSB0dW5lciBsaW1pdCBmb3IgZWFjaCBwbGF5bGlzdCIsDQogICAgICAiaW5mb19mYWxzZSI6ICJObyBCdWZmZXIgKENsaWVudCBjb25uZWN0cyB0byB0aGUgc3RyZWFtaW5nIHNlcnZlcikiLA0KICAgICAgImluZm9feHRldmUiOiAieFRlVmUgY29ubmVjdHMgdG8gdGhlIHN0cmVhbWluZyBzZXJ2ZXIiLA0KICAgICAgImluZm9fZmZtcGVnIjogIkZGbXBlZyBjb25uZWN0cyB0byB0aGUgc3RyZWFtaW5nIHNlcnZlciIsDQogICAgICAiaW5mb192bGMiOiAiVkxDIGNvbm5lY3RzIHRvIHRoZSBzdHJlYW1pbmcgc2VydmVyIg0KDQogICAgfSwNCiAgICAidWRweHkiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJVRFB4eSBhZGRyZXNzIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJUaGUgYWRkcmVzcyBvZiB5b3VyIFVEUHh5IHNlcnZlci4gSWYgc2V0LCBhbmQgdGhlIGNoYW5uZWwgVVJMcyBpbiB0aGUgbTN1IGlzIG11bHRpY2FzdCwgeFRlVmUgd2lsbCByZXdyaXRlIGl0IHNvIHRoYXQgaXQgaXMgYWNjZXNzZWQgdmlhIHRoZSBVRFB4eSBzZXJ2aWNlLiIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiaG9zdDpwb3J0Ig0KICAgIH0sDQogICAgImZmbXBlZ1BhdGgiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJGRm1wZWcgQmluYXJ5IFBhdGgiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIlBhdGggdG8gRkZtcGVnIGJpbmFyeS4iLA0KICAgICAgInBsYWNlaG9sZGVyIjogIi9wYXRoL3RvL2ZmbXBlZyINCiAgICB9LA0KICAgICJmZm1wZWdPcHRpb25zIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiRkZtcGVnIE9wdGlvbnMiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIkZGbXBlZyBvcHRpb25zLjxicj5Pbmx5IGNoYW5nZSBpZiB5b3Uga25vdyB3aGF0IHlvdSBhcmUgZG9pbmcuPGJyPkxlYXZlIGJsYW5rIHRvIHNldCBkZWZhdWx0IHNldHRpbmdzLiIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiTGVhdmUgYmxhbmsgdG8gc2V0IGRlZmF1bHQgc2V0dGluZ3MiDQogICAgfSwNCiAgICAidmxjUGF0aCI6DQogICAgew0KICAgICAgInRpdGxlIjogIlZMQyAvIENWTEMgQmluYXJ5IFBhdGgiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIlBhdGggdG8gVkxDIC8gQ1ZMQyBiaW5hcnkuIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIvcGF0aC90by9jdmxjIg0KICAgIH0sDQogICAgInZsY09wdGlvbnMiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJWTEMgLyBDVkxDIE9wdGlvbnMiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIlZMQyAvIENWTEMgb3B0aW9ucy48YnI+T25seSBjaGFuZ2UgaWYgeW91IGtub3cgd2hhdCB5b3UgYXJlIGRvaW5nLjxicj5MZWF2ZSBibGFuayB0byBzZXQgZGVmYXVsdCBzZXR0aW5ncy4iLA0KICAgICAgInBsYWNlaG9sZGVyIjogIkxlYXZlIGJsYW5rIHRvIHNldCBkZWZhdWx0IHNldHRpbmdzIg0KICAgIH0sDQogICAgImJ1ZmZlclNpemUiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJCdWZmZXIgU2l6ZSIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiQnVmZmVyIHNpemUgaW4gTUIuPGJyPk0zVTg6IElmIHRoZSBUUyBzZWdtZW50IHNtYWxsZXIgdGhlbiB0aGUgYnVmZmVyIHNpemUsIHRoZSBmaWxlIHNpemUgb2YgdGhlIHNlZ21lbnQgaXMgdXNlZC4iDQogICAgfSwNCiAgICAiYnVmZmVyVGltZW91dCI6DQogICAgew0KICAgICAgInRpdGxlIjogIlRpbWVvdXQgZm9yIG5ldyBjbGllbnQgY29ubmVjdGlvbnMiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIlRoZSB4VGVWZSBidWZmZXIgd2FpdHMgdW50aWwgbmV3IGNsaWVudCBjb25uZWN0aW9ucyBhcmUgZXN0YWJsaXNoZWQuIEhlbHBmdWwgZm9yIGZhc3QgY2hhbm5lbCBzd2l0Y2hpbmcuIFZhbHVlIGluIG1pbGxpc2Vjb25kcy4iLA0KICAgICAgInBsYWNlaG9sZGVyIjogIjEwMCINCiAgICB9LA0KICAgICJ1c2VyQWdlbnQiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJVc2VyIEFnZW50IiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJVc2VyIEFnZW50IGZvciBIVFRQIHJlcXVlc3RzLiBGb3IgZXZlcnkgSFRUUCBjb25uZWN0aW9uLCB0aGlzIHZhbHVlIGlzIHVzZWQgZm9yIHRoZSB1c2VyIGFnZW50LiBTaG91bGQgb25seSBiZSBjaGFuZ2VkIGlmIHhUZVZlIGlzIGJsb2NrZWQuIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJ4VGVWZSINCiAgICB9LA0KICAgICJiYWNrdXBQYXRoIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiTG9jYXRpb24gZm9yIGF1dG9tYXRpYyBiYWNrdXBzIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIvbW50L2RhdGEvYmFja3VwL3h0ZXZlLyIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiQmVmb3JlIGFueSB1cGRhdGUgb2YgdGhlIHByb3ZpZGVyIGRhdGEgYnkgdGhlIHNjaGVkdWxlLCB4VGVWZSBjcmVhdGVzIGEgYmFja3VwLiBUaGUgcGF0aCBmb3IgdGhlIGF1dG9tYXRpYyBiYWNrdXBzIGNhbiBiZSBjaGFuZ2VkLiB4VGVWZSByZXF1aXJlcyB3cml0ZSBwZXJtaXNzaW9uIGZvciB0aGlzIGZvbGRlci4iDQogICAgfSwNCiAgICAidGVtcFBhdGgiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJMb2NhdGlvbiBmb3IgdGhlIHRlbXBvcmFyeSBmaWxlcyIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiL3RtcC94dGV2ZS8iLA0KICAgICAgImRlc2NyaXB0aW9uIjogIkxvY2F0aW9uIGZvciB0aGUgYnVmZmVyIGZpbGVzLiINCiAgICB9LA0KICAgICJiYWNrdXBLZWVwIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiTnVtYmVyIG9mIGJhY2t1cHMgdG8ga2VlcCIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiTnVtYmVyIG9mIGJhY2t1cHMgdG8ga2VlcC4gT2xkZXIgYmFja3VwcyBhcmUgYXV0b21hdGljYWxseSBkZWxldGVkLiINCiAgICB9LA0KICAgICJhdXRoZW50aWNhdGlvbldFQiI6DQogICAgew0KICAgICAgInRpdGxlIjogIldFQiBBdXRoZW50aWNhdGlvbiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiQWNjZXNzIHRvIHRoZSB3ZWIgaW50ZXJmYWNlIG9ubHkgcG9zc2libGUgd2l0aCBjcmVkZW50aWFscy4iDQogICAgfSwNCiAgICAiYXV0aGVudGljYXRpb25QTVMiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJQTVMgQXV0aGVudGljYXRpb24iLA0KICAgICAgImRlc2NyaXB0aW9uIjogIlBsZXggcmVxdWVzdHMgYXJlIG9ubHkgcG9zc2libGUgd2l0aCBhdXRoZW50aWNhdGlvbi4gPGJyPjxiPldhcm5pbmchISE8L2I+IEFmdGVyIGFjdGl2YXRpbmcgdGhpcyBmdW5jdGlvbiB4VGVWZSBtdXN0IGJlIGRlbGV0ZSBpbiB0aGUgUE1TIERWUiBzZXR0aW5ncyBhbmQgc2V0IHVwIGFnYWluLiINCiAgICB9LA0KICAgICJhdXRoZW50aWNhdGlvbk0zVSI6DQogICAgew0KICAgICAgInRpdGxlIjogIk0zVSBBdXRoZW50aWNhdGlvbiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiRG93bmxvYWRpbmcgdGhlIHh0ZXZlLm0zdSBmaWxlIHZpYSBhbiBIVFRQIHJlcXVlc3QgaXMgb25seSBwb3NzaWJsZSB3aXRoIGF1dGhlbnRpY2F0aW9uLiINCiAgICB9LA0KICAgICJhdXRoZW50aWNhdGlvblhNTCI6DQogICAgew0KICAgICAgInRpdGxlIjogIlhNTCBBdXRoZW50aWNhdGlvbiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiRG93bmxvYWRpbmcgdGhlIHh0ZXZlLnhtbCBmaWxlIHZpYSBhbiBIVFRQIHJlcXVlc3QgaXMgb25seSBwb3NzaWJsZSB3aXRoIGF1dGhlbnRpY2F0aW9uIg0KICAgIH0sDQogICAgImF1dGhlbnRpY2F0aW9uQVBJIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiQVBJIEF1dGhlbnRpY2F0aW9uIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJBY2Nlc3MgdG8gdGhlIEFQSSBpbnRlcmZhY2UgaXMgb25seSBwb3NzaWJsZSB3aXRoIGF1dGhlbnRpY2F0aW9uLiINCiAgICB9DQogIH0sDQogICJ3aXphcmQiOg0KICB7DQogICAgImVwZ1NvdXJjZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIkVQRyBTb3VyY2UiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIlBNUzo8YnI+LSBVc2UgRVBHIGRhdGEgZnJvbSBQbGV4IG9yIEVtYnkgPGJyPjxicj5YRVBHOjxicj4tIFVzZSBvZiBvbmUgb3IgbW9yZSBYTUxUViBmaWxlczxicj4tIENoYW5uZWwgbWFuYWdlbWVudDxicj4tIE0zVSAvIFhNTFRWIGV4cG9ydCAoSFRUUCBsaW5rIGZvciBJUFRWIGFwcHMpIg0KICAgIH0sDQogICAgInR1bmVyIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiTnVtYmVyIG9mIHR1bmVycyIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiTnVtYmVyIG9mIHBhcmFsbGVsIGNvbm5lY3Rpb25zIHRoYXQgY2FuIGJlIGVzdGFibGlzaGVkIHRvIHRoZSBwcm92aWRlci48YnI+QXZhaWxhYmxlIGZvcjogUGxleCwgRW1ieSAoSERIUiksIE0zVSAod2l0aCBhY3RpdmUgYnVmZmVyKS48YnI+QWZ0ZXIgYSBjaGFuZ2UsIHhUZVZlIG11c3QgYmUgZGVsZXRlIGluIHRoZSBQbGV4IC8gRW1ieSBEVlIgc2V0dGluZ3MgYW5kIHNldCB1cCBhZ2Fpbi4iDQogICAgfSwNCiAgICAibTN1IjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiTTNVIFBsYXlsaXN0IiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJGaWxlIHBhdGggb3IgVVJMIG9mIHRoZSBNM1UiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIkxvY2FsIG9yIHJlbW90ZSBwbGF5bGlzdHMiDQogICAgfSwNCiAgICAieG1sdHYiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJYTUxUViBGaWxlIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJGaWxlIHBhdGggb3IgVVJMIG9mIHRoZSBYTUxUViIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiTG9jYWwgb3IgcmVtb3RlIFhNTFRWIGZpbGUiDQogICAgfQ0KICB9LA0KICAibG9naW4iOg0KICB7DQogICAgImZhaWxlZCI6ICJVc2VyIGF1dGhlbnRpY2F0aW9uIGZhaWxlZCIsDQogICAgImhlYWRsaW5lIjogIkxvZ2luIiwNCiAgICAidXNlcm5hbWUiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJVc2VybmFtZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiVXNlcm5hbWUiDQogICAgfSwNCiAgICAicGFzc3dvcmQiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJQYXNzd29yZCIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiUGFzc3dvcmQiDQogICAgfQ0KICB9LA0KICAiYWNjb3VudCI6DQogIHsNCiAgICAiZmFpbGVkIjogIlBhc3N3b3JkIGRvZXMgbm90IG1hdGNoIiwNCiAgICAiaGVhZGxpbmUiOiAiQ3JlYXRlIHVzZXIgYWNjb3VudCIsDQogICAgInVzZXJuYW1lIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiVXNlcm5hbWUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIlVzZXJuYW1lIg0KICAgIH0sDQogICAgInBhc3N3b3JkIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiUGFzc3dvcmQiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIlBhc3N3b3JkIg0KICAgIH0sDQogICAgImNvbmZpcm0iOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJDb25maXJtIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJDb25maXJtIg0KICAgIH0NCiAgfQ0KfQ==" + webUI["html/css/screen.css"] = "bmF2IGltZyB7DQogIGRpc3BsYXk6IGJsb2NrOw0KICBtYXgtaGVpZ2h0OiAyMHB4Ow0KICBtYXgtd2lkdGg6IDIwcHg7DQogIGZsb2F0OiBsZWZ0Ow0KfQ0KDQpuYXYgcCB7DQogIHRleHQtYWxpZ246IGxlZnQ7DQogIHBhZGRpbmc6IDBweCAzMHB4Ow0KfQ0KDQojbGF5b3V0IHsNCiAgZGlzcGxheTogYmxvY2s7DQogIGhlaWdodDogMTAwJTsNCn0NCg0KDQoubGF5b3V0LWxlZnQgew0KICBkaXNwbGF5OiBibG9jazsNCiAgbWluLXdpZHRoOiAxNTBweDsNCiAgbWF4LXdpZHRoOiAyMCU7DQogIGJhY2tncm91bmQtY29sb3I6ICMxMTE7DQogIGhlaWdodDogaW5oZXJpdDsNCiAgZmxvYXQ6IGxlZnQ7DQp9DQoNCi5sYXlvdXQtcmlnaHQgew0KICBkaXNwbGF5OiBibG9jazsNCiAgYmFja2dyb3VuZC1jb2xvcjogIzQ0NDsNCn0NCg0KI21lbnUtd3JhcHBlciB7DQogIGhlaWdodDogMTAwJTsNCn0NCg0KDQojbG9nbyB7DQogIGRpc3BsYXk6IGJsb2NrOw0KICBtaW4td2lkdGg6IDE4MHB4Ow0KICB3aWR0aDogMTAwJTsNCiAgaGVpZ2h0OiAxMDBweDsNCiAgYmFja2dyb3VuZDogdXJsKCIuLi9pbWcvbG9nb193XzYwMHgyMDAucG5nIik7DQogIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7DQogIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjsgDQogIGJhY2tncm91bmQtc2l6ZTogMTAwJTsNCn0NCg0KDQojcGFnZSB7DQogIG1heC13aWR0aDogOTUwcHg7DQogIG1hcmdpbjogYXV0bzsNCiAgYmFja2dyb3VuZC1jb2xvcjogIzQ0NDsNCg0KICAvKg0KICBoZWlnaHQ6IC13ZWJraXQtY2FsYygxMDAlIC0gMTMwcHgpOw0KICBoZWlnaHQ6IC1tb3otY2FsYygxMDAlIC0gMTMwcHgpOw0KICBoZWlnaHQ6IGNhbGMoMTAwJSAtIDEzMHB4KTsNCiAgKi8NCiAgDQogIG1pbi1oZWlnaHQ6IC13ZWJraXQtY2FsYygxMDAlIC0gMTIwcHgpOw0KICBtaW4taGVpZ2h0OiAtbW96LWNhbGMoMTAwJSAtIDEyMHB4KTsNCiAgbWluLWhlaWdodDogY2FsYygxMDAlIC0gMTIwcHgpOw0KICANCiAgDQogIGJveC1zaGFkb3c6IDBweCA1cHggNXB4ICMyMjI7DQogIA0KfQ0KDQojdWlTZXR0aW5nIHsNCiAgZmxvYXQ6IHJpZ2h0Ow0KICBtYXJnaW4tcmlnaHQ6IDI1cHg7DQp9DQoNCiNib3ggaW5wdXRbdHlwZT10ZXh0XSwgI2JveCBpbnB1dFt0eXBlPXBhc3N3b3JkXSB7DQogIHdpZHRoOiAtd2Via2l0LWNhbGMoMTAwJSAtIDIwcHgpOw0KICB3aWR0aDogLW1vei1jYWxjKDEwMCUgLSAyMHB4KTsNCiAgd2lkdGg6IGNhbGMoMTAwJSAtIDIwcHgpOw0KfQ0KDQojYm94IGlucHV0W3R5cGU9c3VibWl0XXsNCiAgbWFyZ2luOiA1MHB4IGF1dG87DQp9DQoNCiNzZXR0aW5ncyB7DQogIGRpc3BsYXk6IGJsb2NrOw0KICBwYWRkaW5nOiAxMHB4IDEwcHg7DQp9DQoNCiNzZXR0aW5ncyBoNSB7DQogIG1hcmdpbjogNTBweCAwcHggMTBweCAwcHg7DQp9DQoNCiNjb250ZW50LWludGVyYWN0aW9uIC5zZWFyY2ggew0KICB3aWR0aDogMjAwcHg7DQogIGJvcmRlcjogMXB4IHNvbGlkICMwMDA7DQogIHBhZGRpbmc6IDlweDsNCiAgYmFja2dyb3VuZC1jb2xvcjogIzMzMzsNCiAgbWFyZ2luOiAxMHB4Ow0KICBmbG9hdDogcmlnaHQ7DQogIGJvcmRlci1yYWRpdXM6IDNweDsNCg0KfQ0KDQojbXlTdHJlYW1zIHsNCiAgcG9zaXRpb246IGZpeGVkOw0KICBib3R0b206IDBweDsNCiAgYmFja2dyb3VuZC1jb2xvcjogIzExMTsNCiAgd2lkdGg6IDEwMCU7DQogIG1heC13aWR0aDogOTUwcHg7DQoNCiAgLyoNCiAgbWF4LWhlaWdodDogMTAwcHg7DQogICovDQogIG1hcmdpbi1ib3R0b206IDBweDsNCn0NCg0KI215U3RyZWFtcyBpbWcgew0KICB3aWR0aDogNCU7DQogIHBhZGRpbmc6IDJweCA1cHg7DQogIGN1cnNvcjogcG9pbnRlcjsNCiAgZmxvYXQ6IHJpZ2h0Ow0KfQ0KDQojc2V0dGluZ3MtZm9vdGVyIHsNCg0KfQ0KDQoNCi8qIFdpemFyZCovDQojYm94IHsNCiAgYmFja2dyb3VuZC1jb2xvcjogIzQ0NDsNCiAgbWluLWhlaWdodDogNDAwcHg7DQogIA0KICBkaXNwbGF5OiBmbGV4Ow0KICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOw0KICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47DQp9DQoNCiNib3ggcHsNCiAgcGFkZGluZzogMTBweCAwcHg7DQp9DQoNCiNib3gtZm9vdGVyIHsNCiAgbWFyZ2luLXRvcDogYXV0bzsNCn0NCg0KI2JveC1mb290ZXIgew0KICBtYXJnaW46IGF1dG87DQogIHBhZGRpbmc6IDEwcHg7DQp9DQoNCiNoZWFkbGluZSB7DQogIGJhY2tncm91bmQtY29sb3I6ICMyMjI7DQogIGJvcmRlci1ib3R0b206IHNvbGlkIDJweCAjMjIyOw0KICB0cmFuc2l0aW9uOiBhbGwgMC41czsNCiAgcGFkZGluZzogMTBweCAwcHg7DQogIGRpc3BsYXk6IGJsb2NrOw0KfQ0KDQojY29udGVudCB7DQogIGRpc3BsYXk6IGJsb2NrOw0KICBvdmVyZmxvdzogYXV0bzsNCiAgcGFkZGluZzogMTBweDsNCn0NCg0KLyogLS0tICovDQoNCg0KI2NsaWVudEluZm8sICNhY3RpdmVTdHJlYW1zLCAjaW5hY3RpdmVTdHJlYW1zIHsNCiAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZTsNCiAgZGlzcGxheTogYmxvY2s7DQogIGZvbnQtc2l6ZTogOXB4Ow0KICBiYWNrZ3JvdW5kLWNvbG9yOiAjMTExOw0KICBjb2xvcjogIzAwRTZGRjsNCiAgYm9yZGVyLWJvdHRvbTogc29saWQgMHB4OzsNCiAgcGFkZGluZzogMHB4Ow0KICBsZXR0ZXItc3BhY2luZzogMXB4Ow0KICBvdmVyZmxvdy14OiBoaWRkZW47DQogIGJvcmRlci1zcGFjaW5nOiA0cHggNHB4Ow0KICBib3JkZXItYm90dG9tOiBzb2xpZCAxcHggIzQ0NDsNCn0NCg0KI215U3RyZWFtc0JveCB7DQogIHBvc2l0aW9uOiByZWxhdGl2ZTsNCiAgcGFkZGluZzogMHB4Ow0KICAvKmhlaWdodDogMTAwcHg7Ki8NCiAgbWF4LWhlaWdodDogMTUwcHg7DQogIGJhY2tncm91bmQtY29sb3I6ICMxMTE7DQogIGNvbG9yOiB3aGl0ZTsNCiAgZGlzcGxheTpmbGV4Ow0KICBqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyOw0KICBhbGlnbi1pdGVtczpjZW50ZXI7DQp9DQoNCiNvcGVuU3RyZWFtcyB7DQogIHdpZHRoOiAyMHB4Ow0KICBoZWlnaHQ6IDIwcHg7DQogIGN1cnNvcjogcG9pbnRlcjsNCiAgZmxvYXQ6IHJpZ2h0Ow0KICBwb3NpdGlvbjogYWJzb2x1dGU7DQogIHJpZ2h0OiAwcHg7DQogIGJvdHRvbTogMHB4Ow0KICBiYWNrZ3JvdW5kOiB1cmwoIi4uL2ltZy90b3VjaC5wbmciKTsNCiAgYmFja2dyb3VuZC1jb2xvcjogIzExMTsNCiAgDQogIGJhY2tncm91bmQtcG9zaXRpb246IGJvdHRvbSByaWdodDsgIA0KfQ0KDQojYWxsU3RyZWFtcyB7DQogIHdpZHRoOiAxMDAlOw0KICBoZWlnaHQ6IDEwMCU7DQogIHBhZGRpbmc6IDJweDsgICAgIA0KfQ0KDQojYWN0aXZlU3RyZWFtcywgI2luYWN0aXZlU3RyZWFtcyB7DQogIG92ZXJmbG93LXk6IHNjcm9sbDsNCiAgd2lkdGg6IDUwJTsNCiAgbWF4LWhlaWdodDogMTAwcHg7DQogIGZsb2F0OiBsZWZ0Ow0KfQ0KDQojYWN0aXZlU3RyZWFtcyAudGRLZXksICNpbmFjdGl2ZVN0cmVhbXMgLnRkS2V5IHsNCiAgd2lkdGg6IDc1cHg7DQp9DQoNCg0KDQoNCiNpbmFjdGl2ZVN0cmVhbXMgLnRkS2V5IHsNCiAgY29sb3I6IHJlZDsNCn0NCg0KI2NsaWVudEluZm8gLnRkVmFsLCAjbG9nSW5mbyAudGRWYWwsICNhY3RpdmVTdHJlYW1zIC50ZFZhbCwgI2luYWN0aXZlU3RyZWFtcyAudGRWYWwsICNtYXBwaW5nSW5mbyAudGRWYWx7DQogIGNvbG9yOiAjYWFhOw0KICB3aGl0ZS1zcGFjZTogaW5oZXJpdDsNCn0NCg0KI2JveC13cmFwcGVyIHsNCiAgZGlzcGxheTogaW5saW5lLWJsb2NrOw0KICB3aWR0aDogMTAwJTsNCiAgDQogIG92ZXJmbG93LXk6IHNjcm9sbDsNCn0NCg0KI2NvbnRlbnRfdGFibGUsICNtYXBwaW5nLWRldGFpbC10YWJsZSwgI2NvbnRlbnRfdGFibGUgew0KICBkaXNwbGF5OiB0YWJsZTsNCiAgDQogIGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7DQogIG92ZXJmbG93LXk6IHNjcm9sbDsNCiAgd2lkdGg6IDEwMCU7DQp9DQoNCg0KI2NvbnRlbnRfdGFibGUgLmNvbnRlbnRfdGFibGVfaGVhZGVyIHsNCiAgYmFja2dyb3VuZC1jb2xvcjogIzMzMzsNCiAgaGVpZ2h0OiA1MHB4Ow0KICBib3JkZXItYm90dG9tOiBzb2xpZCAxcHggIzExMTsNCiAgYm9yZGVyLWxlZnQ6IHNvbGlkIDNweCAjMzMzOw0KICBjdXJzb3I6IGF1dG87DQoNCn0NCg0KDQp0Ym9keSB7DQogIHdpZHRoOiAxMDAlOw0KfQ0KDQoNCi50YWJsZUVsbGlwc2lzIHsNCiAgd2lkdGg6IDE1MHB4Ow0KICBvdmVyZmxvdzogaGlkZGVuOw0KICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsNCiAgd2hpdGUtc3BhY2U6IG5vd3JhcDsNCn0NCg0KI2NvbnRlbnRfdGFibGUgaW1nIHsNCiAgZGlzcGxheTogYmxvY2s7DQogIG1heC1oZWlnaHQ6IDI4cHg7DQogIG1hcmdpbi1sZWZ0OiBhdXRvOw0KICBtYXJnaW4tcmlnaHQ6IGF1dG87DQogIG1heC13aWR0aDogMzBweDsNCn0NCg0KI2NvbnRlbnRfdGFibGUgdHJ7DQogIGJvcmRlci1sZWZ0OiBzb2xpZCAzcHggNDQ0Ow0KICBib3JkZXItYm90dG9tOiBzb2xpZCAxcHggIzMzMzsNCiAgY3Vyc29yOiBwb2ludGVyOw0KfQ0KDQojY29udGVudF90YWJsZSB0cjpob3ZlciB7DQogIGJhY2tncm91bmQtY29sb3I6ICMzMzM7DQp9DQoNCiNjb250ZW50X3RhYmxlIHRkIHsNCg0KICBwYWRkaW5nOiAwcHggMnB4Ow0KfQ0KDQojY29udGVudF90YWJsZSBpbnB1dFt0eXBlPXRleHRdew0KICB3aWR0aDogODAlOw0KICBtaW4td2lkdGg6IDM1cHg7DQogIG1heC13aWR0aDogNjBweDsNCiAgYm9yZGVyOiAwcHg7DQogIGJhY2tncm91bmQtY29sb3I6ICMzMzM7DQogIG1hcmdpbi1sZWZ0OiA1cHg7DQogIHRleHQtYWxpZ246IGxlZnQ7DQp9DQoNCiNjb250ZW50X3RhYmxlIGlucHV0W3R5cGU9Y2hlY2tib3hdew0KICBtYXgtd2lkdGg6IDI1cHg7DQogIG1hcmdpbjogYXV0bzsNCn0NCg0KDQouc2hvd0J1bGsgew0KICBkaXNwbGF5OiBibG9jazsNCn0NCg0KLmhpZGVCdWxrIHsNCiAgZGlzcGxheTogbm9uZTsNCn0NCg0KLm5vQnVsayB7DQoNCn0NCg0KI2NvbnRlbnRfdGFibGUgdHIuYWN0aXZlRVBHew0KICBib3JkZXItbGVmdDogc29saWQgM3B4IGxhd25ncmVlbjsNCn0NCg0KI2NvbnRlbnRfdGFibGUgdHIubm90QWN0aXZlRVBHew0KICBib3JkZXItbGVmdDogc29saWQgM3B4IHJlZDsNCn0NCg0KDQojbG9nU2NyZWVuIHB7DQogIHdoaXRlLXNwYWNlOiBwcmU7DQogIGZvbnQtc2l6ZTogMTBweDsNCiAgLyoNCiAgbGluZS1oZWlnaHQ6IDEuNmVtOw0KICBmb250LWZhbWlseTogIkFyaWFsIiwgc2Fucy1zZXJpZjsNCiAgKi8NCiAgbGV0dGVyLXNwYWNpbmc6IDFweDsNCiAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZTsgDQogIGZvbnQtc2l6ZTogMTJweDsgDQogIGZvbnQtc3R5bGU6IG5vcm1hbDsgDQogIGZvbnQtdmFyaWFudDogbm9ybWFsOyANCiAgbGluZS1oZWlnaHQ6IDEuNmVtOyANCn0NCg0KI3BvcHVwIHsNCiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjQpOw0KICBwb3NpdGlvbjogZml4ZWQ7DQogIGxlZnQ6IDBweDsNCiAgd2lkdGg6IDEwMCU7DQogIHotaW5kZXg6IDEwMDsNCiAgaGVpZ2h0OiAxMDAlOw0KfQ0KDQojbWFwcGluZy1kZXRhaWwsICN1c2VyLWRldGFpbCwgI2ZpbGUtZGV0YWlsLCAjcG9wdXAtY3VzdG9tIHsNCiAgYm94LXNoYWRvdzogMHB4IDVweCA0MHB4ICMwMDA7DQogIG1hcmdpbi10b3A6IDIwcHg7DQogIG1hcmdpbi1sZWZ0OiBhdXRvOw0KICBtYXJnaW4tcmlnaHQ6IGF1dG87DQogIA0KICBtYXgtd2lkdGg6IDYwMHB4Ow0KICBiYWNrZ3JvdW5kLWNvbG9yOiAjMjIyOw0KICBwYWRkaW5nOiAxMHB4Ow0KICBvdmVyZmxvdzphdXRvOw0KfQ0KDQojcG9wdXAtY3VzdG9tIGgzIHsNCiAgdGV4dC1hbGlnbjogY2VudGVyOw0KfQ0KDQojZmlsZS1kZXRhaWwgaW5wdXRbdHlwZT10ZXh0XSB7DQogIHdpZHRoOiAtd2Via2l0LWNhbGMoMTAwJSAtIDIwcHgpOw0KICB3aWR0aDogLW1vei1jYWxjKDEwMCUgLSAyMHB4KTsNCiAgd2lkdGg6IGNhbGMoMTAwJSAtIDIwcHgpOw0KfQ0KDQojbWFwcGluZy1kZXRhaWwgaW1nIHsNCiAgZGlzcGxheTogYmxvY2s7DQogIG1heC1oZWlnaHQ6IDMwcHg7DQogIG1hcmdpbi1ib3R0b206IDIwcHg7DQogIG1hcmdpbi1sZWZ0OiBhdXRvOw0KICBtYXJnaW4tcmlnaHQ6IGF1dG87DQp9DQoNCiNwb3B1cC1jdXN0b20gaW5wdXRbdHlwZT10ZXh0XSwgI3BvcHVwLWN1c3RvbSBpbnB1dFt0eXBlPXBhc3N3b3JkXSwgI21hcHBpbmctZGV0YWlsIGlucHV0W3R5cGU9dGV4dF0sICNjb250ZW50X3NldHRpbmdzIGlucHV0W3R5cGU9dGV4dF0sICNjb250ZW50X3NldHRpbmdzIGlucHV0W3R5cGU9cGFzc3dvcmRdew0KICBib3JkZXI6IHNvbGlkIDFweDsNCiAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDsNCiAgYmFja2dyb3VuZC1jb2xvcjogIzMzMzsNCiAgdGV4dC1hbGlnbjogbGVmdDsNCiAgd2lkdGg6IC13ZWJraXQtY2FsYygxMDAlIC0gMjBweCk7DQogIHdpZHRoOiAgICAtbW96LWNhbGMoMTAwJSAtIDIwcHgpOw0KICB3aWR0aDogICAgICAgICBjYWxjKDEwMCUgLSAyMHB4KTsNCn0NCg0KI3BvcHVwLWN1c3RvbSBpbnB1dFt0eXBlPXRleHRdLm5vdEF2YWlsYWJsZSB7DQogIGJvcmRlci1jb2xvcjogcmVkOw0KICBjb2xvcjogIzY2NjsNCiAgY3Vyc29yOiBub3QtYWxsb3dlZDsNCn0NCg0KI21hcHBpbmctZGV0YWlsLXRhYmxlLCAjdXNlci1kZXRhaWwtdGFibGUgew0KICBkaXNwbGF5OiBpbmxpbmUtdGFibGU7DQogIHdpZHRoOiAxMDAlOw0KfQ0KDQojcG9wdXAtY3VzdG9tIHRhYmxlLCAjY29udGVudF9zZXR0aW5ncyB0YWJsZSB7DQogIGRpc3BsYXk6IGlubGluZS10YWJsZTsNCiAgdGFibGUtbGF5b3V0OiBmaXhlZDsNCiAgd2lkdGg6IDEwMCU7DQp9DQoNCg0KI21hcHBpbmctZGV0YWlsLXRhYmxlIHRkLCAjdXNlci1kZXRhaWwtdGFibGUgdGQgew0KICBwYWRkaW5nOiAxMHB4IDBweDsNCg0KfQ0KDQojbWFwcGluZy1kZXRhaWwtdGFibGUgdGQubGVmdCwgI3VzZXItZGV0YWlsLXRhYmxlIHRkLmxlZnQsICNwb3B1cC1jdXN0b20gdGQubGVmdCB7DQogIHdpZHRoOiAzOCU7DQp9DQoNCi5pbnRlcmFjdGlvbiwgI2ludGVyYWN0aW9uIHsNCiAgbWFyZ2luLXRvcDogMjBweDsNCiAgZGlzcGxheTogaW5saW5lLWZsZXg7DQogIGZsb2F0OiByaWdodDsNCn0NCg0KLmludGVyYWN0aW9uIGlucHV0W3R5cGU9YnV0dG9uXSwgLmludGVyYWN0aW9uIGlucHV0W3R5cGU9c3VibWl0XSB7DQogIGJhY2tncm91bmQtY29sb3I6ICMwMDA7DQogIG1pbi13aWR0aDogMTAwcHg7DQogIG1hcmdpbjogMHB4IDEwcHg7DQogIHRleHQtYWxpZ246IGNlbnRlcjsNCn0NCg0KI25vdGlmaWNhdGlvbiB7DQogIGRpc3BsYXk6IGJsb2NrOw0KICBwb3NpdGlvbjogZml4ZWQ7DQogIHJpZ2h0OiAwcHg7DQogIGhlaWdodDogMTAwJTsNCiAgd2lkdGg6IDI1MHB4Ow0KICANCiAgYmFja2dyb3VuZC1jb2xvcjogIzIyMjsNCiAgYm94LXNoYWRvdzogMHB4IDBweCAyMHB4ICMwMDA7DQp9DQoNCiNub3RpZmljYXRpb24gaDUgew0KICBiYWNrZ3JvdW5kLWNvbG9yOiAjMTIxMjEyOw0KICBwYWRkaW5nOiA1cHggMTBweCA1cHggMTBweDsNCn0NCg0KI25vdGlmaWNhdGlvbiBwcmUgew0KICBwYWRkaW5nOiAwcHggMTBweCAwcHggMTBweDsNCn0NCg0KI25vdGlmaWNhdGlvbiBwIHsNCiAgZm9udC1zaXplOiAxMCBweDsNCiAgbWFyZ2luOiAwcHg7DQogIHBhZGRpbmc6IDBweCAxMHB4IDVweCAxMHB4Ow0KfQ0KDQojbm90aWZpY2F0aW9uIC5lbGVtZW50IHsNCiAgLypwYWRkaW5nOiAwcHggNXB4OyovDQogIG1hcmdpbjogNXB4IDVweDsNCiAgYm9yZGVyLXJhZGl1czogNXB4Ow0KICBiYWNrZ3JvdW5kLWNvbG9yOiAjMTgxODE4Ow0KICBib3JkZXItbGVmdDogMTBweCBzb2xpZCBncmVlbjsNCn0NCg0KDQpAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDYyMHB4KXsNCiAgYm9keSB7DQogICAgd2lkdGg6IDEwMCU7DQogICAgYmFja2dyb3VuZC1jb2xvcjogIzQ0NDsNCiAgfQ0KDQogIGgxIHsNCiAgICBmb250LXNpemU6IDI2cHg7DQogICAgbGV0dGVyLXNwYWNpbmc6IDNweDsNCiAgfQ0KDQogIG5hdiBwIHsNCiAgICBkaXNwbGF5OiBibG9jazsNCiAgfQ0KDQoNCg0KICAjaGVhZGVyX2NvbmZpZyB7DQogICAgZGlzcGxheTogYmxvY2s7DQogICAgaGVpZ2h0OiAxMDBweDsNCiAgICBiYWNrZ3JvdW5kOiB1cmwoIi4uL2ltZy9sb2dvX3dfNjAweDIwMC5wbmciKTsNCiAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0Ow0KICAgIA0KICAgIGJhY2tncm91bmQtc2l6ZTogMzAwcHggMTAwcHg7DQogIH0NCg0KICAjc2NyZWVuTG9nIHsNCiAgICBtYXJnaW4tbGVmdDogMzAwcHg7DQoNCiAgICB0cmFuc2l0aW9uOiBub25lOw0KICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50Ow0KICAgIGJvcmRlci1ib3R0b206IHNvbGlkIDFweCB0cmFuc3BhcmVudDsNCiAgICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAjMjIyOw0KICB9DQoNCiAgI3NldHRpbmdzIHsNCiAgICAvKg0KICAgIGhlaWdodDogLXdlYmtpdC1jYWxjKDEwMCUgLSAxMDBweCk7DQogICAgaGVpZ2h0OiAtbW96LWNhbGMoMTAwJSAtIDEwMHB4KTsNCiAgICBoZWlnaHQ6IGNhbGMoMTAwJSAtIDEwMHB4KTsNCiAgICAqLw0KICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsNCiAgICBvdmVyZmxvdzogYXV0bzsNCiAgfQ0KDQoNCiAgLnNjcmVlbkxvZ0hpZGRlbiB7DQogICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMHB4LCAwcHgpOw0KICB9DQoNCg0KICAjYm94IHsNCiAgICBkaXNwbGF5OiBibG9jazsNCiAgICBtaW4taGVpZ2h0OiA1MDBweDsNCiAgICBtYXgtd2lkdGg6IDUwMHB4Ow0KICAgIG1hcmdpbjogMTBweCBhdXRvOw0KICAgIGJhY2tncm91bmQtY29sb3I6ICM0NDQ7DQogICAgYm94LXNoYWRvdzogMHB4IDVweCA1cHggIzIyMjsNCg0KICAgIGRpc3BsYXk6IGZsZXg7DQogICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsNCiAgfQ0KDQogICNzZXR0aW5ncywgI3NldHRpbmdzLWZvb3RlciB7DQogICAgDQogIH0NCn0NCg==" + webUI["html/js/authentication_ts.js"] = "ZnVuY3Rpb24gbG9naW4oKSB7DQogICAgdmFyIGVyciA9IGZhbHNlOw0KICAgIHZhciBkYXRhID0gbmV3IE9iamVjdCgpOw0KICAgIHZhciBkaXYgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29udGVudCIpOw0KICAgIHZhciBmb3JtID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImF1dGhlbnRpY2F0aW9uIik7DQogICAgdmFyIGlucHV0cyA9IGRpdi5nZXRFbGVtZW50c0J5VGFnTmFtZSgiSU5QVVQiKTsNCiAgICBjb25zb2xlLmxvZyhpbnB1dHMpOw0KICAgIGZvciAodmFyIGkgPSBpbnB1dHMubGVuZ3RoIC0gMTsgaSA+PSAwOyBpLS0pIHsNCiAgICAgICAgdmFyIGtleSA9IGlucHV0c1tpXS5uYW1lOw0KICAgICAgICB2YXIgdmFsdWUgPSBpbnB1dHNbaV0udmFsdWU7DQogICAgICAgIGlmICh2YWx1ZS5sZW5ndGggPT0gMCkgew0KICAgICAgICAgICAgaW5wdXRzW2ldLnN0eWxlLmJvcmRlckNvbG9yID0gInJlZCI7DQogICAgICAgICAgICBlcnIgPSB0cnVlOw0KICAgICAgICB9DQogICAgICAgIGRhdGFba2V5XSA9IHZhbHVlOw0KICAgIH0NCiAgICBpZiAoZXJyID09IHRydWUpIHsNCiAgICAgICAgZGF0YSA9IG5ldyBPYmplY3QoKTsNCiAgICAgICAgcmV0dXJuOw0KICAgIH0NCiAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgiY29uZmlybSIpKSB7DQogICAgICAgIGlmIChkYXRhWyJjb25maXJtIl0gIT0gZGF0YVsicGFzc3dvcmQiXSkgew0KICAgICAgICAgICAgYWxlcnQoInNkYWZzZCIpOw0KICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Bhc3N3b3JkJykuc3R5bGUuYm9yZGVyQ29sb3IgPSAicmVkIjsNCiAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjb25maXJtJykuc3R5bGUuYm9yZGVyQ29sb3IgPSAicmVkIjsNCiAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJlcnIiKS5pbm5lckhUTUwgPSAie3suYWNjb3VudC5mYWlsZWR9fSI7DQogICAgICAgICAgICByZXR1cm47DQogICAgICAgIH0NCiAgICB9DQogICAgY29uc29sZS5sb2coZGF0YSk7DQogICAgZm9ybS5zdWJtaXQoKTsNCn0NCg==" webUI["html/js/base.js"] = "dmFyIGNvbmZpZyAgICAgICAgPSBuZXcgT2JqZWN0KCk7DQp2YXIgbWVudSAgICAgICAgICA9IG5ldyBPYmplY3QoKTsNCnZhciBzdWJNZW51ICAgICAgID0gbmV3IE9iamVjdCgpOw0KdmFyIGFjdGl2ZVN0cmVhbXMgPSBuZXcgT2JqZWN0KCk7DQp2YXIgeEVQRyAgICAgICAgICA9IG5ldyBPYmplY3QoKTsNCnZhciB1c2VycyAgICAgICAgID0gbmV3IE9iamVjdCgpOw0KdmFyIGxvZyAgICAgICAgICAgPSBuZXcgT2JqZWN0KCk7DQp2YXIgdW5kbyAgICAgICAgICA9IG5ldyBPYmplY3QoKTsNCnZhciB3ZWJTb2NrZXRzICAgID0gdHJ1ZTsNCnZhciBjbG9zZUxvZywgdmVyc2lvbiwgYWN0aXZlTWVudTsNCnZhciBjb2x1bW5Ub1NvcnQgID0gMA0KDQoNCmlmICh3aW5kb3cuV2ViU29ja2V0ID09PSB1bmRlZmluZWQpIHsNCiAgYWxlcnQoIllvdXIgYnJvd3NlciBkb2VzIG5vdCBzdXBwb3J0IFdlYlNvY2tldHMiKTsNCiAgd2ViU29ja2V0cyA9IGZhbHNlOw0KfSANCg0KZnVuY3Rpb24gcGFnZVJlYWR5KCkgew0KICB2YXIgZGF0YSA9IG5ldyBPYmplY3QoKTsNCiAgZGF0YVsiY21kIl0gPSAiZ2V0U2VydmVyQ29uZmlnIjsNCiAgeFRlVmUoZGF0YSk7DQogIC8vc2hvd0xvYWRpbmdTY3JlZW4oZmFsc2UpOw0KDQogIHZhciByZXNpemVIYW5kbGUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgib3BlblN0cmVhbXMiKTsNCiAgdmFyIGJveCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJteVN0cmVhbXNCb3giKTsNCiAgcmVzaXplSGFuZGxlLmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlZG93biIsIGluaXRpYWxpc2VSZXNpemUsIGZhbHNlKTsNCg0KICBmdW5jdGlvbiBpbml0aWFsaXNlUmVzaXplKGUpIHsNCiAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigibW91c2Vtb3ZlIiwgc3RhcnRSZXNpemluZywgZmFsc2UpOw0KICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJtb3VzZXVwIiwgc3RvcFJlc2l6aW5nLCBmYWxzZSk7DQogIH0NCg0KICBmdW5jdGlvbiBzdGFydFJlc2l6aW5nKGUpIHsNCiAgICBib3guc3R5bGUuaGVpZ2h0ID0gKGUuY2xpZW50WSAtIGJveC5vZmZzZXRUb3ApICsgInB4IjsNCiAgICAgIA0KICAgIHZhciBlbG0gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYWxsU3RyZWFtcyIpOw0KICAgIGlmIChlLmNsaWVudFkgPiAxMjApIHsNCiAgICAgIGVsbS5jbGFzc05hbWUgPSAidmlzaWJsZSI7IA0KICAgIH0gZWxzZSB7DQogICAgICBlbG0uY2xhc3NOYW1lID0gIm5vdFZpc2libGUiOyANCiAgICB9DQoNCiAgICBjYWxjdWxhdGVXcmFwcGVySGVpZ2h0KCk7DQoNCiAgfQ0KICBmdW5jdGlvbiBzdG9wUmVzaXppbmcoZSkgew0KICAgICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ21vdXNlbW92ZScsIHN0YXJ0UmVzaXppbmcsIGZhbHNlKTsNCiAgICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCdtb3VzZXVwJywgc3RvcFJlc2l6aW5nLCBmYWxzZSk7DQogICAgICBjYWxjdWxhdGVXcmFwcGVySGVpZ2h0KCk7DQogIH0NCg0KICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigicmVzaXplIiwgZnVuY3Rpb24oKXsNCiAgICBjYWxjdWxhdGVXcmFwcGVySGVpZ2h0KCk7DQogIH0sIHRydWUpOw0KfQ0KDQoNCmZ1bmN0aW9uIGdldE9iaktleXMob2JqKSB7DQogIHZhciBrZXlzID0gbmV3IEFycmF5KCk7DQoNCiAgZm9yICh2YXIgaSBpbiBvYmopIHsNCiAgICBpZiAob2JqLmhhc093blByb3BlcnR5KGkpKSB7DQogICAgICBrZXlzLnB1c2goaSk7DQogICAgfQ0KICB9DQoNCiAgcmV0dXJuIGtleXM7DQp9DQoNCg0KZnVuY3Rpb24gY3JlYXRlRWxlbWVudChpdGVtKSB7DQogIC8vY29uc29sZS5sb2coaXRlbSk7DQogIHZhciBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChpdGVtWyJfZWxlbWVudCJdKTsNCiAgaWYgKGl0ZW0uaGFzT3duUHJvcGVydHkoIl90ZXh0IikpIHsNCiAgICAvL2VsZW1lbnQuaW5uZXJIVE1MID0gIjxwPiIgKyBpdGVtWyJfdGV4dCJdICsgIjwvcD4iOw0KICAgIGVsZW1lbnQuaW5uZXJIVE1MID0gaXRlbVsiX3RleHQiXTsNCiAgfQ0KDQogIHZhciBrZXlzID0gZ2V0T2JqS2V5cyhpdGVtKTsNCiAgZm9yICh2YXIgaSA9IDA7IGkgPCBrZXlzLmxlbmd0aDsgaSsrKSB7DQogICAgaWYgKGtleXNbaV0uY2hhckF0KDApICE9ICJfIikgew0KICAgICAgLy9jb25zb2xlLmxvZyhrZXlzW2ldLCBpdGVtW2tleXNbaV1dKTsNCiAgICAgIGVsZW1lbnQuc2V0QXR0cmlidXRlKGtleXNbaV0sIGl0ZW1ba2V5c1tpXV0pOw0KICAgIH0NCiAgfQ0KDQogIC8vY29uc29sZS5sb2coZWxlbWVudCk7DQogIHJldHVybiBlbGVtZW50Ow0KfQ0KDQpmdW5jdGlvbiBtb2RpZnlPcHRpb24oaWQsIG9wdGlvbnMsIHZhbHVlcykgew0KICB2YXIgc2VsZWN0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpOw0KICBzZWxlY3QuaW5uZXJIVE1MID0gIiI7DQoNCiAgZm9yICh2YXIgaSA9IDA7IGkgPCBvcHRpb25zLmxlbmd0aDsgaSsrKSB7DQogIA0KICAgIHZhciBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiT1BUSU9OIikNCiAgDQogICAgZWxlbWVudC52YWx1ZSA9IHZhbHVlc1tpXTsNCiAgICBlbGVtZW50LmlubmVySFRNTCA9IG9wdGlvbnNbaV07DQoNCiAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkuYXBwZW5kQ2hpbGQoZWxlbWVudCk7DQogIA0KICB9DQoNCn0NCg0KDQpmdW5jdGlvbiBzdGFydFdlYlNvY2tldCgpIHsNCiAgaWYgKHdlYlNvY2tldHMgPT0gZmFsc2UpIHsNCiAgICByZXR1cm47DQogIH0NCg0KICAvL3dzLnNlbmQoJ3siY21kIjogImdldFNlcnZlckNvbmZpZzEifScpOw0KDQp9DQoNCmZ1bmN0aW9uIGNoZWNrRXJyKG9iaikgew0KICAvL2FsZXJ0KG9ialsiZXJyIl0pDQogIC8vc2NyZWVuTG9nKG9ialsiZXJyIl0sICJlcnJvciIpDQogIGNvbnNvbGUubG9nKG9iaik7DQogIHZhciBuZXdPYmogPSBuZXcgT2JqZWN0KCk7DQogIHZhciBuZXdFcnIgPSBuZXcgT2JqZWN0KCk7DQogIG5ld0Vyclsia2V5Il0gICA9ICJFcnJvciI7DQogIG5ld0VyclsidmFsdWUiXSA9IG9ialsiZXJyIl07DQogIG5ld0VyclsidHlwZSJdICA9ICJlcnJvciI7DQoNCiAgbmV3T2JqWzBdID0gbmV3RXJyDQogIHNob3dMb2cobmV3T2JqKTsNCiAgcmV0dXJuDQp9DQoNCmZ1bmN0aW9uIHNjcmVlbkxvZyhtc2csIG1zZ1R5cGUsIHNob3cpIHsNCiAgcmV0dXJuDQogIGNsZWFyVGltZW91dChjbG9zZUxvZykNCiAgdmFyIGRpdiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzY3JlZW5Mb2ciKTsNCiAgdmFyIG5ld01zZyA9IG5ldyBPYmplY3QoKTsNCiAgDQogIG5ld01zZ1siX2VsZW1lbnQiXSA9ICJQIjsNCiAgDQogIHN3aXRjaChtc2dUeXBlKSB7DQogICAgY2FzZSAiZXJyb3IiOiAgIG5ld01zZ1siY2xhc3MiXSA9ICJlcnJvck1zZyI7IGJyZWFrOw0KICAgIGNhc2UgIndhcm5pbmciOiBuZXdNc2dbImNsYXNzIl0gPSAid2FybmluZ01zZyI7IGJyZWFrOw0KICAgIC8vZGVmYXVsdDogICAgICBuZXdNc2dbImNsYXNzIl0gPSAiaW5mb01zZyINCiAgfQ0KDQogIG5ld01zZ1siX3RleHQiXSA9IG1zZzsNCg0KICBkaXYuYXBwZW5kQ2hpbGQoY3JlYXRlRWxlbWVudChuZXdNc2cpKTsNCg0KICBkaXYuc2Nyb2xsVG9wID0gZGl2LnNjcm9sbEhlaWdodDsNCg0KICBpZiAoc2hvdyA9PSBmYWxzZSkgew0KICAgIHJldHVybjsNCiAgfQ0KDQogIGRpdi5jbGFzc05hbWUgPSAiIg0KICBjbG9zZUxvZyA9IHNldFRpbWVvdXQoY2xvc2VTY3JlZW5Mb2csIDEwMDAwKTsNCn0NCg0KDQpmdW5jdGlvbiBjbG9zZVNjcmVlbkxvZygpIHsNCiAgdmFyIGRpdiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzY3JlZW5Mb2ciKTsNCiAgZGl2LmNsYXNzTmFtZSA9ICJzY3JlZW5Mb2dIaWRkZW4iDQp9DQoNCmZ1bmN0aW9uIHNob3dTY3JlZW5Mb2coKSB7DQogIGNsZWFyVGltZW91dChjbG9zZUxvZykNCiAgdmFyIGRpdiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzY3JlZW5Mb2ciKTsNCiAgdmFyIGN1cnJlbnRDbGFzcyA9IGRpdi5jbGFzc05hbWU7DQogIGRpdi5jbGFzc05hbWUgPSAic2NyZWVuTG9nSGlkZGVuIg0KDQogIHN3aXRjaChjdXJyZW50Q2xhc3MpIHsNCiAgICBjYXNlICJzY3JlZW5Mb2dIaWRkZW4iOiAgZGl2LmNsYXNzTmFtZSA9ICIiOyBicmVhazsgDQogICAgY2FzZSAiIjogZGl2LmNsYXNzTmFtZSA9ICJzY3JlZW5Mb2dIaWRkZW4iOyBicmVhazsNCiAgfQ0KfQ0KDQpmdW5jdGlvbiBzaG93TG9hZGluZ1NjcmVlbihlbG0pIHsNCiAgdmFyIGRpdiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJsb2FkaW5nIik7DQogIHN3aXRjaChlbG0pIHsNCiAgICBjYXNlIHRydWU6IGRpdi5jbGFzc05hbWUgPSAiYmxvY2siOyBicmVhazsNCiAgICBjYXNlIGZhbHNlOiBkaXYuY2xhc3NOYW1lID0gIm5vbmUiOyBicmVhazsNCg0KICAgIC8qDQogICAgY2FzZSB0cnVlOiBkaXYuc3R5bGUuZGlzcGxheSA9ICJibG9jayI7IGJyZWFrOw0KICAgIGNhc2UgZmFsc2U6IGRpdi5zdHlsZS5kaXNwbGF5ID0gIm5vbmUiOyBicmVhazsNCiAgICAqLw0KICB9DQp9DQoNCmZ1bmN0aW9uIGNyZWF0ZUNsaW50SW5mbyhvYmopIHsNCiAgLy9jb25zb2xlLmxvZyhvYmopOw0KICB2YXIga2V5cyA9IGdldE9iaktleXMob2JqKTsNCiAgZm9yICh2YXIgaSA9IDA7IGkgPCBrZXlzLmxlbmd0aDsgaSsrKSB7DQogICAgaWYoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoa2V5c1tpXSkpew0KICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoa2V5c1tpXSkuaW5uZXJIVE1MID0gb2JqW2tleXNbaV1dOw0KICAgIH0NCiAgfQ0KICAvL2RvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjbGllbnRJbmZvIikuY2xhc3NOYW1lID0gInZpc2libGUiOw0KfQ0KDQpmdW5jdGlvbiBzaG93RWxlbWVudChlbG1JRCwgdHlwZSkgew0KICBzd2l0Y2godHlwZSkgew0KICAgIGNhc2UgdHJ1ZTogIGNzc0NsYXNzID0gImJsb2NrIjsgYnJlYWs7DQogICAgY2FzZSBmYWxzZTogY3NzQ2xhc3MgPSAibm9uZSI7IGJyZWFrOw0KICB9DQoNCiAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoZWxtSUQpLmNsYXNzTmFtZSA9IGNzc0NsYXNzOw0KfSANCg0KZnVuY3Rpb24gc2hvd1BvcFVwRWxlbWVudChlbG0pIHsNCiAgdmFyIGFsbEVsZW1lbnRzID0gbmV3IEFycmF5KCJkZWxldGVVc2VyRGV0YWlsIiwgIm1hcHBpbmctZGV0YWlsIiwgInVzZXItZGV0YWlsIiwgImZpbGUtZGV0YWlsIik7DQoNCiAgZm9yICh2YXIgaSA9IDA7IGkgPCBhbGxFbGVtZW50cy5sZW5ndGg7IGkrKykgew0KICAgIHNob3dFbGVtZW50KGFsbEVsZW1lbnRzW2ldLCBmYWxzZSkNCiAgfQ0KDQogIHNob3dFbGVtZW50KGVsbSwgdHJ1ZSkNCg0KICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7IA0KICAgIHNob3dFbGVtZW50KCJwb3B1cCIsIHRydWUpOw0KICB9LCAxMCk7DQp9DQoNCiAgLy8gYm9keS4uLg0KDQpmdW5jdGlvbiBzaG93U3RyZWFtcyhmb3JjZSkgew0KDQogIHZhciBlbG1Cb3ggPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibXlTdHJlYW1zQm94Iik7DQogIHZhciBlbG0gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYWxsU3RyZWFtcyIpOw0KICAvL2NvbnNvbGUubG9nKGVsbSk7DQogIHNob3cgPSBlbG0uY2xhc3NOYW1lOw0KDQogIHN3aXRjaChmb3JjZSkgew0KICAgIGNhc2UgdHJ1ZTogc2hvdyA9ICJub3RWaXNpYmxlIjsgYnJlYWs7DQogICAgY2FzZSBmYWxzZTogc2hvdyA9ICJ2aXNpYmxlIjsgYnJlYWs7DQogIH0NCg0KICBzd2l0Y2goc2hvdykgew0KICAgIGNhc2UgIm5vdFZpc2libGUiOiANCiAgICAgIGVsbS5jbGFzc05hbWUgPSAidmlzaWJsZSI7IA0KICAgICAgZWxtQm94LnN0eWxlLmhlaWdodCA9ICIxMDBweCI7DQogICAgICBicmVhazsNCg0KICAgIGRlZmF1bHQ6IA0KICAgICAgZWxtLmNsYXNzTmFtZSA9ICJub3RWaXNpYmxlIjsgDQogICAgICBlbG1Cb3guc3R5bGUuaGVpZ2h0ID0gIjIwcHgiOw0KICAgICAgYnJlYWs7DQogIH0NCg0KICB2YXIgc2hvdyA9IGVsbS5zdHlsZS5kaXNwbGF5OyB7DQogICAgLy9jb25zb2xlLmxvZyhlbG0uc3R5bGUuZGlzcGxheSk7DQogIH0NCiAgDQogIGNhbGN1bGF0ZVdyYXBwZXJIZWlnaHQoKTsNCn0NCg0KZnVuY3Rpb24geHRldmVCYWNrdXAoKSB7DQogIGNvbnNvbGUubG9nKCJ4dGV2ZUJhY2t1cCIpOw0KICB2YXIgZGF0YSA9IG5ldyBPYmplY3QoKTsNCiAgZGF0YVsiY21kIl0gPSAieHRldmVCYWNrdXAiOw0KDQogIHhUZVZlKGRhdGEpOw0KfQ0KDQpmdW5jdGlvbiB4dGV2ZVJlc3RvcmUoZWxtKSB7DQogIHZhciByZXN0b3JlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiSU5QVVQiKTsNCiAgcmVzdG9yZS5zZXRBdHRyaWJ1dGUoInR5cGUiLCAiZmlsZSIpOw0KICByZXN0b3JlLnNldEF0dHJpYnV0ZSgiY2xhc3MiLCAibm90VmlzaWJsZSIpOw0KICByZXN0b3JlLnNldEF0dHJpYnV0ZSgibmFtZSIsICIiKTsNCiAgcmVzdG9yZS5pZCA9ICJ1cGxvYWQiOw0KDQogIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQocmVzdG9yZSk7DQogIHJlc3RvcmUuY2xpY2soKTsNCg0KICByZXN0b3JlLm9uY2hhbmdlID0gZnVuY3Rpb24oKSB7DQogICAgdmFyIGZpbGVuYW1lID0gcmVzdG9yZS5maWxlc1swXS5uYW1lDQogICAgLy9jb25zb2xlLmxvZyhyZXN0b3JlLnNyY0VsZW1lbnQuZmlsZXNbMF0pOw0KICAgIHZhciBjaGVjayA9IGNvbmZpcm0oIkZpbGU6ICIgKyBmaWxlbmFtZSArICJcbkFsbCBkYXRhIHdpbGwgYmUgcmVwbGFjZWQgd2l0aCB0aG9zZSBmcm9tIHRoZSBiYWNrdXAuXG5TaG91bGQgdGhlIGZpbGVzIGJlIHJlc3RvcmVkPyIpOyANCiAgICBpZiAoY2hlY2sgPT0gdHJ1ZSkgew0KICAgICAgdmFyIHJlYWRlciAgPSBuZXcgRmlsZVJlYWRlcigpOw0KICAgICAgdmFyIGZpbGUgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCdpbnB1dFt0eXBlPWZpbGVdJykuZmlsZXNbMF07DQogICAgICBpZiAoZmlsZSkgew0KICAgICAgICByZWFkZXIucmVhZEFzRGF0YVVSTChmaWxlKTsNCiAgICAgICAgcmVhZGVyLm9ubG9hZCA9IGZ1bmN0aW9uKCkgew0KICAgICAgICAgIGNvbnNvbGUubG9nKHJlYWRlci5yZXN1bHQpOw0KICAgICAgICAgIHZhciBkYXRhID0gbmV3IE9iamVjdCgpOw0KICAgICAgICAgIGRhdGFbImNtZCJdICAgICA9ICJ4dGV2ZVJlc3RvcmUiDQogICAgICAgICAgZGF0YVsiYmFzZTY0Il0gID0gcmVhZGVyLnJlc3VsdA0KDQogICAgICAgICAgeFRlVmUoZGF0YSk7DQogICAgICAgICAgcmV0dXJuDQogICAgICAgIH07DQogICAgICB9IGVsc2Ugew0KICAgICAgICBhbGVydCgiRmlsZSBjb3VsZCBub3QgYmUgbG9hZGVkIikNCiAgICAgIH0NCiAgICB9DQogIH07DQp9DQoNCmZ1bmN0aW9uIGdldEJhc2U2NChmaWxlKSB7DQogICB2YXIgcmVhZGVyID0gbmV3IEZpbGVSZWFkZXIoKTsNCiAgIHJlYWRlci5yZWFkQXNEYXRhVVJMKGZpbGUpOw0KICAgcmVhZGVyLm9ubG9hZCA9IGZ1bmN0aW9uKCkgew0KICAgICBjb25zb2xlLmxvZyhyZWFkZXIucmVzdWx0KTsNCiAgIH07DQogICByZWFkZXIub25lcnJvciA9IGZ1bmN0aW9uKGVycm9yKSB7DQogICAgIGNvbnNvbGUubG9nKCdFcnJvcjogJywgZXJyb3IpOw0KICAgfTsNCn0NCg0KZnVuY3Rpb24gbG9nb3V0KCkgew0KICBkb2N1bWVudC5jb29raWUuc3BsaXQoJzsnKS5mb3JFYWNoKGZ1bmN0aW9uKGMpIHsNCiAgICBkb2N1bWVudC5jb29raWUgPSBjLnRyaW0oKS5zcGxpdCgnPScpWzBdICsgJz07JyArICdleHBpcmVzPVRodSwgMDEgSmFuIDE5NzAgMDA6MDA6MDAgVVRDOyc7DQogIH0pOw0KICBsb2NhdGlvbi5yZWxvYWQoKTsNCn0NCg0KZnVuY3Rpb24gZ2V0Q29va2llKG5hbWUpIHsNCiAgdmFyIHZhbHVlID0gIjsgIiArIGRvY3VtZW50LmNvb2tpZTsNCiAgdmFyIHBhcnRzID0gdmFsdWUuc3BsaXQoIjsgIiArIG5hbWUgKyAiPSIpOw0KICBpZiAocGFydHMubGVuZ3RoID09IDIpIHJldHVybiBwYXJ0cy5wb3AoKS5zcGxpdCgiOyIpLnNoaWZ0KCk7DQp9DQoNCmZ1bmN0aW9uIHNldENvb2tpZSh0b2tlbikgew0KICAvL2NvbnNvbGUubG9nKHRva2VuKTsNCiAgZG9jdW1lbnQuY29va2llID0gIlRva2VuPSIgKyB0b2tlbg0KfQ0KDQo=" webUI["html/js/data.js"] = "ZnVuY3Rpb24gc2hvd0NvbmZpZyhvYmopIHsNCiAgY29uZmlnID0gb2JqOw0KICAvL3NldE1lbnVJdGVtKCk7DQogIGNyZWF0ZU1lbnUoKTsNCiAgLy9kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicGFnZSIpLmNsYXNzTmFtZSA9ICIiOw0KfQ0KDQpzaG93TXlTdHJlYW1zDQoNCmZ1bmN0aW9uIHNob3dNeVN0cmVhbXMoYWxsU3RyZWFtc09iaikgew0KDQogIHZhciBzdHJlYW1UeXBlS2V5cyA9IGdldE9iaktleXMoYWxsU3RyZWFtc09iaikNCg0KICBmb3IgKHZhciBzID0gMDsgcyA8IHN0cmVhbVR5cGVLZXlzLmxlbmd0aDsgcysrKSB7DQogICAgdmFyIHN0cmVhbVR5cGUgPSBzdHJlYW1UeXBlS2V5c1tzXTsNCiAgICB2YXIgb2JqID0gbmV3IE9iamVjdCgpOw0KICAgIG9iaiA9IGFsbFN0cmVhbXNPYmpbc3RyZWFtVHlwZV07DQogICAgc3dpdGNoKHN0cmVhbVR5cGUpIHsNCiAgICAgIGNhc2UgImFjdGl2ZVN0cmVhbXMiOiBhY3RpdmVTdHJlYW1zICAgICA9IG9iajsgYnJlYWs7DQogICAgfQ0KDQogICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoc3RyZWFtVHlwZSkuaW5uZXJIVE1MID0gIiI7DQoNCiAgICB2YXIgc3RyZWFtc09iaiAgICA9IG5ldyBPYmplY3QoKTsNCiAgICB2YXIgc3RyZWFtc05hbWVzICA9IG5ldyBBcnJheSgpOw0KICAgIA0KICAgIHZhciBrZXlzID0gZ2V0T2JqS2V5cyhvYmopDQogICAgDQogICAgLy8gQ3JlYXRlIE9iamVjdCAoc3RyZWFtc09iaikgZm9yIHRoZSBzdHJlYW1zIGFuZCBzb3J0IGJ5IG5hbWUgKHN0cmVhbXNOYW1lcykNCiAgICBmb3IgKHZhciBpID0gMDsgaSA8IGtleXMubGVuZ3RoOyBpKyspIHsNCiAgICAgIHZhciBuYW1lICAgID0gb2JqW2tleXNbaV1dWyJuYW1lIl07DQogICAgICB2YXIgdG1wID0gbmV3IE9iamVjdCgpOw0KICAgICAgdmFyIHN0cmVhbUtleSA9IGdldE9iaktleXMob2JqW2tleXNbaV1dKTsNCg0KICAgICAgZm9yICh2YXIgaiA9IDA7IGogPCBzdHJlYW1LZXkubGVuZ3RoOyBqKyspIHsNCiAgICAgICAgdG1wW3N0cmVhbUtleVtqXV0gPSBvYmpba2V5c1tpXV1bc3RyZWFtS2V5W2pdXTsgICAgICANCiAgICAgIH0NCg0KICAgICAgc3RyZWFtc09ialtuYW1lXSA9IHRtcDsNCiAgICAgIHN0cmVhbXNOYW1lcy5wdXNoKG5hbWUpDQogICAgfQ0KDQogICAgc3RyZWFtc05hbWVzLnNvcnQoKTsNCiAgICANCiAgICAvLyBDcmVhdGUgVGFibGUgZm9yIGFjdGl2ZVN0cmVhbXMNCiAgICB2YXIgdGFibGUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChzdHJlYW1UeXBlKTsNCg0KICAgIGZvciAodmFyIGkgPSAwOyBpIDwgc3RyZWFtc05hbWVzLmxlbmd0aDsgaSsrKSB7DQogICAgICB2YXIgbmV3RW50cnkgPSBuZXcgT2JqZWN0KCk7DQogICAgICBuZXdFbnRyeVsiX2VsZW1lbnQiXSA9ICJUUiI7DQogICAgICB0YWJsZS5hcHBlbmRDaGlsZChjcmVhdGVFbGVtZW50KG5ld0VudHJ5KSk7DQogICAgICB2YXIgbGluZSA9IHRhYmxlLmxhc3RDaGlsZDsNCg0KICAgICAgdmFyIHRtcCA9IHN0cmVhbXNPYmpbc3RyZWFtc05hbWVzW2ldXQ0KICAgICAgdmFyIGtleXMgPSBnZXRPYmpLZXlzKHRtcCkNCg0KICAgICAgdmFyIG5ld0tleSA9IG5ldyBPYmplY3QoKQ0KICAgICAgbmV3S2V5WyJfZWxlbWVudCJdICA9ICJURCI7DQogICAgICAvL25ld0tleVsiX3RleHQiXSAgICAgPSBzdHJlYW1zTmFtZXNbaV07DQogICAgICBzd2l0Y2goc3RyZWFtVHlwZSkgew0KICAgICAgICBjYXNlICJhY3RpdmVTdHJlYW1zIjogbmV3S2V5WyJfdGV4dCJdICAgICA9ICJDaGFubmVsICgrKToiOyBicmVhazsNCiAgICAgICAgY2FzZSAiaW5hY3RpdmVTdHJlYW1zIjogbmV3S2V5WyJfdGV4dCJdICAgPSAiQ2hhbm5lbCAoLSk6IjsgYnJlYWs7DQogICAgICB9DQogICAgICANCiAgICAgIG5ld0tleVsiY2xhc3MiXSAgICAgPSAidGRLZXkiOw0KICAgICAgY29uc29sZS5sb2coKTsNCg0KDQogICAgICB2YXIgbmV3VmFsID0gbmV3IE9iamVjdCgpDQogICAgICBuZXdWYWxbIl9lbGVtZW50Il0gID0gIlREIjsNCiAgICAgIG5ld1ZhbFsiX3RleHQiXSAgICAgPSBzdHJlYW1zTmFtZXNbaV07DQogICAgICBuZXdWYWxbImNsYXNzIl0gICAgID0gInRkVmFsIjsNCiAgICAgIC8vbmV3VmFsWyJfdGV4dCJdICAgICA9IHZhbHVlOw0KICAgICAgDQogICAgICBsaW5lLmFwcGVuZENoaWxkKGNyZWF0ZUVsZW1lbnQobmV3S2V5KSk7DQogICAgICBsaW5lLmFwcGVuZENoaWxkKGNyZWF0ZUVsZW1lbnQobmV3VmFsKSk7DQogICAgICANCiAgICB9DQoNCiAgfQ0KDQogIHJldHVybg0KfQ0KDQpmdW5jdGlvbiBzaG93QWN0aXZlU3RyZWFtcyhvYmopIHsNCiAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImFjdGl2ZVN0cmVhbXMiKS5pbm5lckhUTUwgPSAiIjsNCiAgYWN0aXZlU3RyZWFtcyAgICAgPSBvYmo7DQogIHZhciBzdHJlYW1zT2JqICAgID0gbmV3IE9iamVjdCgpOw0KICB2YXIgc3RyZWFtc05hbWVzICA9IG5ldyBBcnJheSgpOw0KICANCiAgdmFyIGtleXMgPSBnZXRPYmpLZXlzKG9iaikNCiAgDQogIC8vIENyZWF0ZSBPYmplY3QgKHN0cmVhbXNPYmopIGZvciB0aGUgc3RyZWFtcyBhbmQgc29ydCBieSBuYW1lIChzdHJlYW1zTmFtZXMpDQogIGZvciAodmFyIGkgPSAwOyBpIDwga2V5cy5sZW5ndGg7IGkrKykgew0KICAgIHZhciBuYW1lICAgID0gb2JqW2tleXNbaV1dWyJuYW1lIl07DQogICAgdmFyIHRtcCA9IG5ldyBPYmplY3QoKTsNCiAgICB2YXIgc3RyZWFtS2V5ID0gZ2V0T2JqS2V5cyhvYmpba2V5c1tpXV0pOw0KDQogICAgZm9yICh2YXIgaiA9IDA7IGogPCBzdHJlYW1LZXkubGVuZ3RoOyBqKyspIHsNCiAgICAgIHRtcFtzdHJlYW1LZXlbal1dID0gb2JqW2tleXNbaV1dW3N0cmVhbUtleVtqXV07ICAgICAgDQogICAgfQ0KDQogICAgc3RyZWFtc09ialtuYW1lXSA9IHRtcDsNCiAgICBzdHJlYW1zTmFtZXMucHVzaChuYW1lKQ0KICB9DQoNCiAgc3RyZWFtc05hbWVzLnNvcnQoKTsNCiAgDQogIC8vIENyZWF0ZSBUYWJsZSBmb3IgYWN0aXZlU3RyZWFtcw0KICB2YXIgdGFibGUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYWN0aXZlU3RyZWFtcyIpOw0KDQogIGZvciAodmFyIGkgPSAwOyBpIDwgc3RyZWFtc05hbWVzLmxlbmd0aDsgaSsrKSB7DQogICAgdmFyIG5ld0VudHJ5ID0gbmV3IE9iamVjdCgpOw0KICAgIG5ld0VudHJ5WyJfZWxlbWVudCJdID0gIlRSIjsNCiAgICB0YWJsZS5hcHBlbmRDaGlsZChjcmVhdGVFbGVtZW50KG5ld0VudHJ5KSk7DQogICAgdmFyIGxpbmUgPSB0YWJsZS5sYXN0Q2hpbGQ7DQoNCiAgICB2YXIgdG1wID0gc3RyZWFtc09ialtzdHJlYW1zTmFtZXNbaV1dDQogICAgdmFyIGtleXMgPSBnZXRPYmpLZXlzKHRtcCkNCg0KICAgIHZhciBuZXdLZXkgPSBuZXcgT2JqZWN0KCkNCiAgICBuZXdLZXlbIl9lbGVtZW50Il0gID0gIlREIjsNCiAgICAvL25ld0tleVsiX3RleHQiXSAgICAgPSBzdHJlYW1zTmFtZXNbaV07DQogICAgbmV3S2V5WyJfdGV4dCJdICAgICA9ICJDaGFubmVsOiI7DQogICAgbmV3S2V5WyJjbGFzcyJdICAgICA9ICJ0ZEtleSI7DQogICAgY29uc29sZS5sb2coKTsNCg0KDQogICAgdmFyIG5ld1ZhbCA9IG5ldyBPYmplY3QoKQ0KICAgIG5ld1ZhbFsiX2VsZW1lbnQiXSAgPSAiVEQiOw0KICAgIG5ld1ZhbFsiX3RleHQiXSAgICAgPSBzdHJlYW1zTmFtZXNbaV07DQogICAgbmV3VmFsWyJjbGFzcyJdICAgICA9ICJ0ZFZhbCI7DQogICAgLy9uZXdWYWxbIl90ZXh0Il0gICAgID0gdmFsdWU7DQogICAgDQogICAgbGluZS5hcHBlbmRDaGlsZChjcmVhdGVFbGVtZW50KG5ld0tleSkpOw0KICAgIGxpbmUuYXBwZW5kQ2hpbGQoY3JlYXRlRWxlbWVudChuZXdWYWwpKTsNCiAgICANCiAgfQ0KDQp9DQoNCmZ1bmN0aW9uIHBhcnNlTG9ncyhvYmopIHsNCiAgbG9nID0gb2JqDQogIHZhciBrZXlzID0gZ2V0T2JqS2V5cyhvYmopDQoNCiAgdmFyIG1zZ1R5cGU7DQogIGZvciAodmFyIGkgPSAwOyBpIDwga2V5cy5sZW5ndGg7IGkrKykgew0KICAgIHN3aXRjaChrZXlzW2ldKSB7DQogICAgICBjYXNlICJ3YXJuaW5ncyI6ICBtc2dUeXBlID0gIndhcm5pbmdNc2ciOyBicmVhazsNCiAgICAgIGNhc2UgImVycm9ycyI6ICAgIG1zZ1R5cGUgPSAiZXJyb3JNc2ciOyBicmVhazsNCiAgICB9DQoNCiAgICBzd2l0Y2gob2JqW2tleXNbaV1dKSB7DQogICAgICBjYXNlIDA6IG1zZ1R5cGUgPSAidGRWYWwiOyBicmVhazsNCiAgICAgIGRlZmF1bHQ6IGJyZWFrOw0KICAgIH0NCg0KICAgIGlmKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGtleXNbaV0pKXsNCiAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGtleXNbaV0pLmNsYXNzTmFtZSA9IG1zZ1R5cGU7DQogICAgfQ0KICAgIA0KICAgIA0KICB9DQogIHJldHVybg0KfQ0KDQoNCmZ1bmN0aW9uIGNhbmNlbERhdGEoZWxlbWVudCkgew0KICBjcmVhdGVNZW51KCk7DQp9DQoNCmZ1bmN0aW9uIHNhdmVEYXRhKGVsZW1lbnQpIHsNCiAgdmFyIGRhdGEgPSBuZXcgT2JqZWN0KCk7DQogIHZhciBkaXYgPSBlbGVtZW50LnBhcmVudE5vZGUucGFyZW50Tm9kZTsNCiAgdmFyIGlucHV0cyA9IGRpdi5nZXRFbGVtZW50c0J5VGFnTmFtZSgiSU5QVVQiKTsNCiAgDQogIHZhciBjb25maWdLZXkgPSBkaXYuZ2V0QXR0cmlidXRlKCJkYXRhLWNvbmZpZ2tleSIpOw0KICB2YXIgbWVudVR5cGUgPSBkaXYuZ2V0QXR0cmlidXRlKCJkYXRhLW1lbnV0eXBlIik7DQogIHZhciB2YWx1ZTsNCiAgdmFyIHZhbHVlQXJyID0gbmV3IEFycmF5KCk7DQogIA0KICBmb3IgKHZhciBpID0gMDsgaSA8IGlucHV0cy5sZW5ndGg7IGkrKykgew0KICAgIGlmIChpbnB1dHNbaV0udHlwZSA9PSAidGV4dCIgJiYgaW5wdXRzW2ldLnZhbHVlICE9IHVuZGVmaW5lZCAmJiBpbnB1dHNbaV0udmFsdWUgIT0gIiIgKSB7DQogICAgICBjb25zb2xlLmxvZyhpbnB1dHNbaV0udmFsdWUsIG1lbnVUeXBlKQ0KICAgICAgc3dpdGNoKG1lbnVUeXBlKSB7DQogICAgICAgIGNhc2UgImlucHV0QXJyYXkiOiB2YWx1ZUFyci5wdXNoKGlucHV0c1tpXS52YWx1ZSk7IGJyZWFrOw0KICAgICAgICBjYXNlICJzaW5nbGVJbnB1dCI6IHZhbHVlID0gaW5wdXRzW2ldLnZhbHVlOyBicmVhazsNCiAgICAgIH0NCiAgICB9DQogIH0NCg0KICBzd2l0Y2gobWVudVR5cGUpIHsNCiAgICBjYXNlICJpbnB1dEFycmF5IjogIGRhdGFbY29uZmlnS2V5XSA9IHZhbHVlQXJyOyBicmVhazsNCiAgICBjYXNlICJzaW5nbGVJbnB1dCI6ICANCiAgICAgIGlmIChpc05hTih2YWx1ZSkgPT0gZmFsc2UpIHsNCiAgICAgICAgdmFsdWUgPSBwYXJzZUludCh2YWx1ZSk7DQogICAgICAgIGRhdGFbY29uZmlnS2V5XSA9IHZhbHVlOw0KICAgICAgICBicmVhazsNCiAgICAgIH0NCg0KICAgICAgaWYgKHZhbHVlID09IHVuZGVmaW5lZCkgew0KICAgICAgICBkYXRhWyJkZWxldGUiXSA9IGNvbmZpZ0tleTsgDQogICAgICB9IGVsc2Ugew0KICAgICAgICBkYXRhW2NvbmZpZ0tleV0gPSB2YWx1ZQ0KICAgICAgfQ0KDQogICAgICBicmVhazsNCiAgfQ0KDQogIGRhdGFbImNtZCJdID0gInNhdmVDb25maWciOw0KICBjb25zb2xlLmxvZyhkYXRhKTsNCiAgeFRlVmUoZGF0YSkNCn0NCg0KZnVuY3Rpb24geFRlVmUoZGF0YSkgew0KICBpZiAod2ViU29ja2V0cyA9PSBmYWxzZSkgew0KICAgIGFsZXJ0KCJZb3VyIGJyb3dzZXIgZG9lcyBub3Qgc3VwcG9ydCBXZWJTb2NrZXRzIik7DQogICAgcmV0dXJuOw0KICB9IGVsc2Ugew0KICAgIGlmIChkYXRhWyJjbWQiXSAhPSAiZ2V0TG9nIikgew0KICAgICAgc2hvd0xvYWRpbmdTY3JlZW4odHJ1ZSkNCiAgICB9DQogIH0NCiAgZGVsZXRlIHVuZG9bImVwZ01hcHBpbmciXTsNCiAgDQogIHZhciBwcm90b2NvbFdTDQogIHN3aXRjaCh3aW5kb3cubG9jYXRpb24ucHJvdG9jb2wpIHsNCiAgICBjYXNlICJodHRwOiI6ICAgcHJvdG9jb2xXUyA9ICJ3czovLyI7IGJyZWFrOw0KICAgIGNhc2UgImh0dHBzOiI6ICBwcm90b2NvbFdTID0gIndzczovLyI7IGJyZWFrOw0KICB9DQoNCg0KICB2YXIgd3MgPSBuZXcgV2ViU29ja2V0KHByb3RvY29sV1MgKyB3aW5kb3cubG9jYXRpb24uaG9zdG5hbWUgKyAiOiIgKyB3aW5kb3cubG9jYXRpb24ucG9ydCArICIvZGF0YS8iICsgIj9Ub2tlbj0iICsgZ2V0Q29va2llKCJUb2tlbiIpKTsNCiAgd3Mub25vcGVuID0gZnVuY3Rpb24oKSB7DQogICAgY29uc29sZS5sb2coZGF0YSkNCiAgICB3cy5zZW5kKEpTT04uc3RyaW5naWZ5KGRhdGEpKTsNCiAgfQ0KDQogIHdzLm9ubWVzc2FnZSA9IGZ1bmN0aW9uIChlKSB7DQogICAgdmFyIHJlc3BvbnNlID0gSlNPTi5wYXJzZShlLmRhdGEpOw0KICAgIGNvbnNvbGUubG9nKHJlc3BvbnNlKTsNCiAgICANCiAgICBpZiAocmVzcG9uc2UuaGFzT3duUHJvcGVydHkoImNsaWVudEluZm8iKSkgew0KICAgICAgY3JlYXRlQ2xpbnRJbmZvKHJlc3BvbnNlWyJjbGllbnRJbmZvIl0pOw0KICAgIH0NCg0KICAgIGlmIChyZXNwb25zZS5oYXNPd25Qcm9wZXJ0eSgibG9nIikpIHsNCiAgICAgIGNyZWF0ZUNsaW50SW5mbyhyZXNwb25zZVsibG9nIl0pOw0KICAgIH0NCg0KICAgIGlmIChyZXNwb25zZS5oYXNPd25Qcm9wZXJ0eSgic3RhdHVzIikpIHsNCiAgICAgIGlmIChyZXNwb25zZVsic3RhdHVzIl0gPT0gZmFsc2UpIHsNCiAgICAgICAgYWxlcnQocmVzcG9uc2VbImVyciJdKQ0KICAgICAgICBpZihyZXNwb25zZS5oYXNPd25Qcm9wZXJ0eSgicmVsb2FkIikpIHsNCiAgICAgICAgICBsb2NhdGlvbi5yZWxvYWQoKTsNCiAgICAgICAgfQ0KICAgICAgICAvL2NoZWNrRXJyKHJlc3BvbnNlKQ0KICAgICAgICBjb25zb2xlLmxvZyhyZXNwb25zZSk7DQogICAgICAgIHVwZGF0ZVh0ZXZlU3RhdHVzKHJlc3BvbnNlKTsNCiAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbigpeyBzaG93TG9hZGluZ1NjcmVlbihmYWxzZSk7IH0sIDMwMCk7DQogICAgICAgIA0KICAgICAgICByZXR1cm4NCiAgICAgIH0NCg0KICAgICAgdXBkYXRlWHRldmVTdGF0dXMocmVzcG9uc2UpDQoNCiAgICAgIC8vY29uc29sZS5sb2coZGF0YVsiY21kIl0pOw0KICAgICAgc3dpdGNoKGRhdGFbImNtZCJdKSB7DQogICAgICAgIGNhc2UgInNhdmVVc2VyRGF0YSI6ICAgIGNyZWF0ZU1lbnUoKTsgYnJlYWs7DQogICAgICAgIGNhc2UgInNhdmVOZXdVc2VyIjogICAgIGNyZWF0ZU1lbnUoKTsgYnJlYWs7DQogICAgICAgIGNhc2UgInNhdmVGaWxlc1hNTFRWIjogIC8vY3JlYXRlTWVudSgpOyBicmVhazsNCiAgICAgICAgY2FzZSAic2F2ZUZpbGVzTTNVIjogICAgLy9jcmVhdGVNZW51KCk7IHJldHVybjsgYnJlYWs7DQogICAgICAgIGNhc2UgInNhdmVDb25maWciOiAgICANCiAgICAgICAgICBkYXRhID0gbmV3IE9iamVjdCgpOw0KICAgICAgICAgIGRhdGFbImNtZCJdID0gImNoZWNrVG9rZW4iOw0KICAgICAgICAgIHhUZVZlKGRhdGEpOw0KICAgICAgICAgIGJyZWFrOw0KDQogICAgICAgIGNhc2UgImVtcHR5TG9nIjogd3JpdGVMb2dJbkRpdigpOyBicmVhazsNCiAgICAgICAgY2FzZSAiZ2V0TG9nIjogIHJldHVybjsgYnJlYWs7DQogICAgICB9DQoNCg0KICAgIH0NCg0KICAgIGlmIChjb25maWdbImZpbGVzIl0gPT0gdW5kZWZpbmVkIHx8IGNvbmZpZ1siZmlsZXMiXS5sZW5ndGggPT0gMCkgew0KICAgICAgY3JlYXRlTWVudSgpOw0KICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoMTApLmNsaWNrKCkNCiAgICB9DQoNCiAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7IHNob3dMb2FkaW5nU2NyZWVuKGZhbHNlKTsgfSwgMCk7DQogIH0NCiAgDQp9DQoNCmZ1bmN0aW9uIHVwZGF0ZVh0ZXZlU3RhdHVzKHJlc3BvbnNlKSB7DQogIHZhciBrZXlzID0gZ2V0T2JqS2V5cyhyZXNwb25zZSk7DQogIC8vY29uc29sZS5sb2coa2V5cyk7DQoNCiAgZm9yICh2YXIgaSA9IDA7IGkgPCBrZXlzLmxlbmd0aDsgaSsrKSB7DQogICAgc3dpdGNoKGtleXNbaV0pIHsNCiAgICAgIGNhc2UgImFsZXJ0IjogICAgICAgICBhbGVydChyZXNwb25zZVtrZXlzW2ldXSk7IGJyZWFrOw0KICAgICAgY2FzZSAiY29uZmlnIjogICAgICAgIHNob3dDb25maWcocmVzcG9uc2Vba2V5c1tpXV0pOyBicmVhazsNCiAgICAgIGNhc2UgImxvZyI6ICAgICAgICAgICBwYXJzZUxvZ3MocmVzcG9uc2Vba2V5c1tpXV0pOyBicmVhazsNCiAgICAgIGNhc2UgIm15U3RyZWFtcyI6ICAgICBzaG93TXlTdHJlYW1zKHJlc3BvbnNlW2tleXNbaV1dKTsgYnJlYWs7DQogICAgICBjYXNlICJ4RVBHIjogICAgICAgICAgeEVQRyA9IHJlc3BvbnNlW2tleXNbaV1dOyBicmVhazsNCiAgICAgIGNhc2UgInVzZXJzIjogICAgICAgICB1c2VycyA9IHJlc3BvbnNlW2tleXNbaV1dOyBicmVhazsNCiAgICAgIGNhc2UgInRva2VuIjogICAgICAgICBkb2N1bWVudC5jb29raWUgPSAiVG9rZW49IiArIHJlc3BvbnNlW2tleXNbaV1dOyBicmVhazsNCiAgICAgIGNhc2UgInJlbG9hZCI6ICAgICAgICBsb2NhdGlvbi5yZWxvYWQoKTsgYnJlYWs7DQogICAgICBjYXNlICJvcGVuTGluayI6ICAgICAgd2luZG93LmxvY2F0aW9uID0gcmVzcG9uc2VbIm9wZW5MaW5rIl07IGJyZWFrOw0KICAgICAgLy9jYXNlICJ2ZXJzaW9uIjogdmVyc2lvbiA9IHJlc3BvbnNlW2tleXNbaV1dOyBicmVhazsNCiAgICB9DQogIH0NCn0NCg0KZnVuY3Rpb24gZ2V0VmFsdWVGcm9tUHJvdmlkZXJGaWxlKHhYbWx0dkZpbGUsIGZpbGVUeXBlLCBrZXkpIHsNCg0KICB2YXIgZmlsZUlEID0geFhtbHR2RmlsZS5zdWJzdHJpbmcoMCwgeFhtbHR2RmlsZS5sYXN0SW5kZXhPZignLicpKQ0KDQogIGlmIChjb25maWdbImZpbGVzIl1bZmlsZVR5cGVdLmhhc093blByb3BlcnR5KGZpbGVJRCkgPT0gdHJ1ZSkgew0KICAgIHZhciBkYXRhID0gY29uZmlnWyJmaWxlcyJdW2ZpbGVUeXBlXVtmaWxlSURdOw0KICAgIHJldHVybiBkYXRhW2tleV0NCiAgfQ0KDQp9DQoNCg0KDQoNCg==" - webUI["html/js/users.js"] = "ZnVuY3Rpb24gb3BlblVzZXJzKGVsbSkgew0KICBjb2xvbW5Tb3J0ID0gMDsNCg0KICB2YXIgbmV3RGl2ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNldHRpbmdzIik7DQogIA0KICB2YXIgbmV3RW50cnkgPSBuZXcgT2JqZWN0KCk7DQogIG5ld0VudHJ5WyJfZWxlbWVudCJdICA9ICJIUiI7DQogIG5ld0Rpdi5hcHBlbmRDaGlsZChjcmVhdGVFbGVtZW50KG5ld0VudHJ5KSk7DQoNCiAgdmFyIG5ld0VudHJ5ID0gbmV3IE9iamVjdCgpOw0KICBuZXdFbnRyeVsiX2VsZW1lbnQiXSAgPSAiSU5QVVQiOw0KICBuZXdFbnRyeVsidHlwZSJdID0gImJ1dHRvbiI7DQogIG5ld0VudHJ5WyJjbGFzcyJdID0gImJ1dHRvbiI7DQogIG5ld0VudHJ5WyJ2YWx1ZSJdID0gIk5ldyI7DQogIG5ld0VudHJ5WyJvbmNsaWNrIl0gPSAidXNlckRldGFpbCgwKSI7DQogIG5ld0Rpdi5hcHBlbmRDaGlsZChjcmVhdGVFbGVtZW50KG5ld0VudHJ5KSk7DQoNCiAgdmFyIGRpdiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzZXR0aW5ncyIpOw0KDQogICAvLyBCdWlsZCB0YWJsZQ0KICB2YXIgbmV3VGFibGUgPSBuZXcgT2JqZWN0KCk7DQogIG5ld1RhYmxlWyJfZWxlbWVudCJdICA9ICJUQUJMRSI7DQogIG5ld1RhYmxlWyJpZCJdICAgICAgICA9ICJpZF9tYXBwaW5nIjsNCiAgbmV3VGFibGVbImNsYXNzIl0gICAgID0gInRhYmxlLW1hcHBpbmciOw0KICBkaXYuYXBwZW5kQ2hpbGQoY3JlYXRlRWxlbWVudChuZXdUYWJsZSkpOw0KDQogIHNldFRpbWVvdXQoZnVuY3Rpb24oKXsgDQogICAgY3JlYXRlVXNlcnNUYWJsZSgpOyANCiAgfSwgMTApOw0KfQ0KDQpmdW5jdGlvbiBjcmVhdGVVc2Vyc1RhYmxlKCkgew0KICB2YXIgdGFibGUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiaWRfbWFwcGluZyIpOw0KICB0YWJsZS5pbm5lckhUTUwgPSAiIjsNCiAgdmFyIG5ld1RSID0gbmV3IE9iamVjdCgpOw0KICBuZXdUUlsiX2VsZW1lbnQiXSA9ICJUUiI7DQogIG5ld1RSWyJjbGFzcyJdICAgID0gInRhYmxlLW1hcHBpbmctaGVhZGVyIjsNCiAgdGFibGUuYXBwZW5kQ2hpbGQoY3JlYXRlRWxlbWVudChuZXdUUikpOw0KDQogIHZhciB0ciA9IHRhYmxlLmxhc3RDaGlsZDsNCiAgdmFyIHRySGVhZGxpbmVzID0gbmV3IEFycmF5KCJVc2VybmFtZSIsICJQYXNzd29yZCIsICJXRUIiLCAiUE1TIiwgIk0zVSIsICJYTUwiLCAiQVBJIikNCg0KICBmb3IgKHZhciBpID0gMDsgaSA8IHRySGVhZGxpbmVzLmxlbmd0aDsgaSsrKSB7DQogICAgdmFyIG5ld1REID0gbmV3IE9iamVjdCgpOw0KICAgIG5ld1REWyJfZWxlbWVudCJdID0gIlREIjsNCiAgICBuZXdURFsiX3RleHQiXSAgICA9IHRySGVhZGxpbmVzW2ldOw0KICAgIHRyLmFwcGVuZENoaWxkKGNyZWF0ZUVsZW1lbnQobmV3VEQpKTsNCiAgfQ0KDQoNCiAgLy8gU29ydCB1c2Vycw0KICB2YXIgdXNlcklkcyA9IGdldE9iaktleXModXNlcnMpOw0KDQogIHZhciB1c2VyT2JqID0gbmV3IE9iamVjdCgpOw0KDQogIGZvciAodmFyIGkgPSAwOyBpIDwgdXNlcklkcy5sZW5ndGg7IGkrKykgew0KICAgIHZhciB1c2VybmFtZSA9IHVzZXJzW3VzZXJJZHNbaV1dWyJkYXRhIl1bInVzZXJuYW1lIl07DQogICAgdXNlck9ialt1c2VybmFtZV0gPSB1c2VySWRzW2ldOw0KICB9DQoNCiAgdmFyIGFsbFVzZXJzID0gZ2V0T2JqS2V5cyh1c2VyT2JqKTsNCiAgYWxsVXNlcnMuc29ydCgpOw0KICAvLyAtLQ0KDQogIGZvciAodmFyIGkgPSAwOyBpIDwgYWxsVXNlcnMubGVuZ3RoOyBpKyspIHsNCiAgICB2YXIgdGFibGUgICAgID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImlkX21hcHBpbmciKTsNCiAgICB2YXIgdXNlcklEICAgID0gdXNlck9ialthbGxVc2Vyc1tpXV07DQogICAgdmFyIHVzZXJuYW1lICA9IGFsbFVzZXJzW2ldOw0KICAgIHZhciBpdGVtICAgICAgPSB1c2Vyc1t1c2VySURdWyJkYXRhIl07DQoNCiAgICAvLyBDcmVhdGUgVFINCiAgICB2YXIgbmV3VFIgPSBuZXcgT2JqZWN0KCk7DQogICAgbmV3VFJbIl9lbGVtZW50Il0gICAgICAgPSAiVFIiOw0KICAgIG5ld1RSWyJjbGFzcyJdICAgICAgICAgID0gIiI7DQogICAgbmV3VFJbImlkIl0gICAgICAgICAgICAgPSB1c2VySUQ7DQogICAgbmV3VFJbIm9uY2xpY2siXSAgICAgICAgPSAnamF2YXNjcmlwdDogdXNlckRldGFpbCgiJyArIHVzZXJJRCArICciKTsnOw0KICAgIHRhYmxlLmFwcGVuZENoaWxkKGNyZWF0ZUVsZW1lbnQobmV3VFIpKTsNCg0KICAgIHZhciB0ciA9IHRhYmxlLmxhc3RDaGlsZDsNCg0KICAgIC8vIENyZWF0ZSB1c2VybmFtZSBURA0KICAgIHZhciBuZXdURCA9IG5ldyBPYmplY3QoKTsNCiAgICBuZXdURFsiX2VsZW1lbnQiXSA9ICJQIjsNCiAgICBuZXdURFsiX3RleHQiXSAgICA9IHVzZXJuYW1lOw0KICAgIGNyZWF0ZU5ld1REKG5ld1RELCB0cik7DQoNCiAgICAvLyBDcmVhdGUgcGFzc3dvcmQgVEQNCiAgICB2YXIgbmV3VEQgPSBuZXcgT2JqZWN0KCk7DQogICAgbmV3VERbIl9lbGVtZW50Il0gPSAiUCI7DQogICAgbmV3VERbIl90ZXh0Il0gICAgPSAiLi4uLi4iOw0KICAgIGNyZWF0ZU5ld1REKG5ld1RELCB0cik7DQoNCiAgICAvLyBDcmVhdGUgd2ViIGFjY2Vzcw0KICAgIHZhciBuZXdURCA9IG5ldyBPYmplY3QoKTsNCiAgICBuZXdURFsiX2VsZW1lbnQiXSA9ICJQIjsNCiAgICBzd2l0Y2goaXRlbVsiYXV0aGVudGljYXRpb24ud2ViIl0pew0KICAgICAgY2FzZSB0cnVlOiBuZXdURFsiX3RleHQiXSAgICA9ICLinJMiOyBicmVhazsNCiAgICAgIGRlZmF1bHQ6ICAgbmV3VERbIl90ZXh0Il0gICAgPSAiLSI7IGJyZWFrOw0KICAgIH0NCiAgICBjcmVhdGVOZXdURChuZXdURCwgdHIpOw0KDQogICAgLy8gQ3JlYXRlIFBNUyBhY2Nlc3MNCiAgICB2YXIgbmV3VEQgPSBuZXcgT2JqZWN0KCk7DQogICAgbmV3VERbIl9lbGVtZW50Il0gPSAiUCI7DQogICAgc3dpdGNoKGl0ZW1bImF1dGhlbnRpY2F0aW9uLnBtcyJdKXsNCiAgICAgIGNhc2UgdHJ1ZTogbmV3VERbIl90ZXh0Il0gICAgPSAi4pyTIjsgYnJlYWs7DQogICAgICBkZWZhdWx0OiAgIG5ld1REWyJfdGV4dCJdICAgID0gIi0iOyBicmVhazsNCiAgICB9DQogICAgY3JlYXRlTmV3VEQobmV3VEQsIHRyKTsNCg0KICAgIC8vIENyZWF0ZSBNM1UgYWNjZXNzDQogICAgdmFyIG5ld1REID0gbmV3IE9iamVjdCgpOw0KICAgIG5ld1REWyJfZWxlbWVudCJdID0gIlAiOw0KICAgIHN3aXRjaChpdGVtWyJhdXRoZW50aWNhdGlvbi5tM3UiXSl7DQogICAgICBjYXNlIHRydWU6IG5ld1REWyJfdGV4dCJdICAgID0gIuKckyI7IGJyZWFrOw0KICAgICAgZGVmYXVsdDogICBuZXdURFsiX3RleHQiXSAgICA9ICItIjsgYnJlYWs7DQogICAgfQ0KICAgIGNyZWF0ZU5ld1REKG5ld1RELCB0cik7DQoNCiAgICAvLyBDcmVhdGUgWE1MVFYgYWNjZXNzDQogICAgdmFyIG5ld1REID0gbmV3IE9iamVjdCgpOw0KICAgIG5ld1REWyJfZWxlbWVudCJdID0gIlAiOw0KICAgIHN3aXRjaChpdGVtWyJhdXRoZW50aWNhdGlvbi54bWwiXSl7DQogICAgICBjYXNlIHRydWU6IG5ld1REWyJfdGV4dCJdICAgID0gIuKckyI7IGJyZWFrOw0KICAgICAgZGVmYXVsdDogICBuZXdURFsiX3RleHQiXSAgICA9ICItIjsgYnJlYWs7DQogICAgfQ0KICAgIGNyZWF0ZU5ld1REKG5ld1RELCB0cik7DQoNCiAgICAvLyBDcmVhdGUgQVBJIGFjY2Vzcw0KICAgIHZhciBuZXdURCA9IG5ldyBPYmplY3QoKTsNCiAgICBuZXdURFsiX2VsZW1lbnQiXSA9ICJQIjsNCg0KICAgIHN3aXRjaChpdGVtWyJhdXRoZW50aWNhdGlvbi5hcGkiXSl7DQogICAgICBjYXNlIHRydWU6IG5ld1REWyJfdGV4dCJdICAgID0gIuKckyI7IGJyZWFrOw0KICAgICAgZGVmYXVsdDogICBuZXdURFsiX3RleHQiXSAgICA9ICItIjsgYnJlYWs7DQogICAgfQ0KICAgIGNyZWF0ZU5ld1REKG5ld1RELCB0cik7DQoNCiAgfQ0KDQogIC8vIHVzYWdlIEluZm8gIA0KICB2YXIgZGl2ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNldHRpbmdzIik7DQogIHN3aXRjaChtZW51W2FjdGl2ZU1lbnUuaWRdLmhhc093blByb3BlcnR5KCJfdXNhZ2UiKSkgew0KICAgIGNhc2UgdHJ1ZTogDQogICAgICB2YXIgdXNhZ2VJdGVtID0gbmV3IE9iamVjdCgpOw0KICAgICAgdXNhZ2VJdGVtWyJfZWxlbWVudCJdID0gIlBSRSINCiAgICAgIHVzYWdlSXRlbVsiX3RleHQiXSAgICA9IG1lbnVbYWN0aXZlTWVudS5pZF1bIl91c2FnZSJdOw0KDQogICAgICB2YXIgbmV3SFIgPSBuZXcgT2JqZWN0KCk7DQogICAgICBuZXdIUlsiX2VsZW1lbnQiXSA9ICJIUiINCiAgICAgIGRpdi5hcHBlbmRDaGlsZChjcmVhdGVFbGVtZW50KG5ld0hSKSk7DQogICAgICBkaXYuYXBwZW5kQ2hpbGQoY3JlYXRlRWxlbWVudCh1c2FnZUl0ZW0pKTsNCiAgfQ0KDQogIHNvcnRUYWJsZSgwKTsNCn0NCg0KZnVuY3Rpb24gdXNlckRldGFpbCh1c2VySUQpIHsNCiAgc2hvd1BvcFVwRWxlbWVudCgndXNlci1kZXRhaWwnKTsNCiAgc2V0VGltZW91dChmdW5jdGlvbigpeyANCiAgICBzaG93RWxlbWVudCgicG9wdXAiLCB0cnVlKTsNCiAgfSwgMTApOw0KICB2YXIgZGVmYXVsdFVzZXI7DQoNCiAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNhdmVVc2VyRGV0YWlsIikuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IHNhdmVVc2VyRGV0YWlsKCInICsgdXNlcklEICsgJyIsIGZhbHNlKScpOw0KICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZGVsZXRlVXNlckRldGFpbCIpLnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBzYXZlVXNlckRldGFpbCgiJyArIHVzZXJJRCArICciLCB0cnVlKScpOw0KDQogIHZhciBkYXRhID0gbmV3IE9iamVjdCgpOw0KICANCiAgc3dpdGNoKHVzZXJJRCkgew0KICAgIGNhc2UgMDogICAvLyBOZXcgVXNlcg0KICAgICAgZGF0YVsidXNlcm5hbWUiXSA9ICIiOw0KICAgICAgZGF0YVsiYXV0aGVudGljYXRpb24ud2ViIl0gPSBmYWxzZTsNCiAgICAgIGRhdGFbImF1dGhlbnRpY2F0aW9uLnBtcyJdID0gdHJ1ZTsNCiAgICAgIGRhdGFbImF1dGhlbnRpY2F0aW9uLnhtbCJdID0gdHJ1ZTsNCiAgICAgIGRhdGFbImF1dGhlbnRpY2F0aW9uLm0zdSJdID0gZmFsc2U7DQogICAgICBkYXRhWyJhdXRoZW50aWNhdGlvbi5hcGkiXSA9IGZhbHNlOw0KICAgICAgZGF0YVsiZGVmYXVsdFVzZXIiXSAgICAgICAgPSBmYWxzZTsNCiAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKXsgDQogICAgICAgIHNob3dFbGVtZW50KCJkZWxldGVVc2VyRGV0YWlsIiwgZmFsc2UpDQogICAgICB9LCAxKTsNCg0KICAgICAgYnJlYWs7IA0KICAgIA0KICAgIGRlZmF1bHQ6IA0KICAgICAgZGF0YSA9IHVzZXJzW3VzZXJJRF1bImRhdGEiXTsgDQogICAgICBzaG93RWxlbWVudCgiZGVsZXRlVXNlckRldGFpbCIsIHRydWUpICAgDQogICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZGVsZXRlVXNlckRldGFpbCIpLmNsYXNzTmFtZSA9ICJkZWxldGUiOw0KICAgDQogICAgICBicmVhaw0KICB9DQogIA0KDQogIHZhciB1c2VybmFtZSA9IGRhdGFbInVzZXJuYW1lIl07DQogIGRhdGFbInBhc3N3b3JkIl0gPSAiIjsNCiAgZGF0YVsiY29uZmlybSJdID0gIiI7DQoNCiAgdmFyIGtleXMgPSBnZXRPYmpLZXlzKGRhdGEpOw0KICBkZWZhdWx0VXNlciA9IGRhdGFbImRlZmF1bHRVc2VyIl07DQogIGlmIChkYXRhLmhhc093blByb3BlcnR5KCJkZWZhdWx0VXNlciIpKSB7DQogICAgZGVmYXVsdFVzZXIgPSBKU09OLnBhcnNlKGRhdGFbImRlZmF1bHRVc2VyIl0pOw0KICB9DQoNCiAgZm9yICh2YXIgaSA9IDA7IGkgPCBrZXlzLmxlbmd0aDsgaSsrKSB7DQoNCiAgICBpZihkb2N1bWVudC5nZXRFbGVtZW50QnlJZChrZXlzW2ldKSl7DQogICAgICB2YXIgdGQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChrZXlzW2ldKQ0KICAgIH0gZWxzZSB7DQogICAgICB2YXIgdGQgPSB1bmRlZmluZWQ7DQogICAgfQ0KDQogICAgdmFyIG5ld0l0ZW0gPSBuZXcgT2JqZWN0KCk7DQoNCiAgICBuZXdJdGVtWyJfZWxlbWVudCJdID0gIklOUFVUIjsNCiAgICANCiAgICBuZXdJdGVtWyJ2YWx1ZSJdICAgID0gZGF0YVtrZXlzW2ldXTsNCiAgICBuZXdJdGVtWyJuYW1lIl0gICAgID0ga2V5c1tpXTsNCg0KDQoNCg0KDQogICAgc3dpdGNoKGtleXNbaV0uaW5kZXhPZigiYXV0aGVudGljYXRpb24iKSkgew0KICAgICAgY2FzZSAtMTogDQogICAgICAgIGlmIChrZXlzW2ldID09ICJwYXNzd29yZCIgfHwga2V5c1tpXSA9PSAiY29uZmlybSIpIHsNCiAgICAgICAgICBuZXdJdGVtWyJ0eXBlIl0gICAgID0gInBhc3N3b3JkIjsNCiAgICAgICAgfSBlbHNlIHsNCiAgICAgICAgICBuZXdJdGVtWyJ0eXBlIl0gICAgID0gInRleHQiOw0KICAgICAgICB9DQogICAgICAgIGJyZWFrOw0KDQogICAgICBkZWZhdWx0OiANCiAgICAgICAgbmV3SXRlbVsidHlwZSJdICAgICA9ICJjaGVja2JveCI7DQogICAgICAgIA0KICAgICAgICBpZiAoa2V5c1tpXSA9PSAiYXV0aGVudGljYXRpb24ud2ViIiAmJiBkZWZhdWx0VXNlciA9PSB0cnVlKSB7DQogICAgICAgICAgbmV3SXRlbVsib25jbGljayJdID0gInJldHVybiBmYWxzZSI7IA0KICAgICAgICB9DQogICAgICAgIA0KICAgICAgICBpZiAoZGF0YVtrZXlzW2ldXSA9PSB0cnVlKSB7ICAgICAgICAgIA0KICAgICAgICAgIG5ld0l0ZW1bImNoZWNrZWQiXSAgPSBkYXRhW2tleXNbaV1dOyAgDQogICAgICAgIH0NCiAgICAgICAgDQogICAgICAgIGJyZWFrOw0KICAgIH0NCg0KICAgIHN3aXRjaChrZXlzW2ldKSB7DQogICAgICBjYXNlICJkZWZhdWx0VXNlciI6IA0KICAgICAgICAvL2lmIChkYXRhW2tleXNbaV1dID09IHRydWUpIHsNCiAgICAgICAgbmV3SXRlbVsidHlwZSJdICAgICA9ICJoaWRkZW4iOw0KICAgICAgICAvL30NCiAgICB9DQoNCg0KICAgIGlmICh0ZCAhPSB1bmRlZmluZWQpIHsNCiAgICAgIHRkLmlubmVySFRNTCA9ICIiOw0KICAgICAgdmFyIGVsZW1lbnQgPSBjcmVhdGVOZXdFbGVtZW50KG5ld0l0ZW0pDQogICAgICAvL2NvbnNvbGUubG9nKGVsZW1lbnQpOw0KICAgICAgdGQuYXBwZW5kQ2hpbGQoZWxlbWVudCk7DQogICAgfQ0KDQoNCiAgfQ0KDQoNCiAgaWYgKGRlZmF1bHRVc2VyID09IHRydWUpIHsNCiAgICBzaG93RWxlbWVudCgiZGVsZXRlVXNlckRldGFpbCIsIGZhbHNlKQ0KICB9IGVsc2Ugew0KICAgIHNob3dFbGVtZW50KCJkZWxldGVVc2VyRGV0YWlsIiwgdHJ1ZSkNCiAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZGVsZXRlVXNlckRldGFpbCIpLmNsYXNzTmFtZSA9ICJkZWxldGUiOw0KICB9DQoNCn0NCg0KZnVuY3Rpb24gc2F2ZVVzZXJEZXRhaWwodXNlcklELCBkZWxldGVVc2VyKSB7DQoNCiAgdmFyIGlucHV0cyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ1c2VyLWRldGFpbC10YWJsZSIpLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJJTlBVVCIpOw0KDQogIHZhciBuZXdVc2VyRGF0YSA9IG5ldyBPYmplY3QoKTsNCiAgZm9yICh2YXIgaSA9IDA7IGkgPCBpbnB1dHMubGVuZ3RoOyBpKyspIHsNCiAgICBzd2l0Y2goaW5wdXRzW2ldLnR5cGUpIHsNCiAgICAgIGNhc2UgImNoZWNrYm94IjogIG5ld1VzZXJEYXRhW2lucHV0c1tpXS5uYW1lXSA9IGlucHV0c1tpXS5jaGVja2VkOyBicmVhazsNCiAgICAgIGRlZmF1bHQ6ICAgICAgICAgIG5ld1VzZXJEYXRhW2lucHV0c1tpXS5uYW1lXSA9IGlucHV0c1tpXS52YWx1ZTsgYnJlYWs7DQogICAgfQ0KICAgIA0KICAgIGlmIChpbnB1dHNbInVzZXJuYW1lIl0udmFsdWUubGVuZ3RoID09IDApIHsNCiAgICAgIGlucHV0c1sidXNlcm5hbWUiXS5zdHlsZS5ib3JkZXIgPSAic29saWQgMXB4IHJlZCI7DQogICAgICByZXR1cm47DQogICAgfQ0KDQogICAgc3dpdGNoKHVzZXJJRCkgew0KICAgICAgY2FzZSAiMCI6IA0KICAgICAgICBpZiAoaW5wdXRzWyJwYXNzd29yZCJdLnZhbHVlLmxlbmd0aCA9PSAwKSB7DQogICAgICAgICAgY29uc29sZS5sb2coaW5wdXRzWyJwYXNzd29yZCJdLnZhbHVlLmxlbmd0aCk7DQogICAgICAgICAgaW5wdXRzWyJwYXNzd29yZCJdLnN0eWxlLmJvcmRlciA9ICJzb2xpZCAxcHggcmVkIjsNCiAgICAgICAgICByZXR1cm4NCiAgICAgICAgfQ0KICAgICAgICBicmVhazsNCiAgICB9DQoNCiAgICBpZiAoaW5wdXRzWyJwYXNzd29yZCJdLnZhbHVlLmxlbmd0aCA+IDApIHsNCiAgICAgIGlmIChpbnB1dHNbInBhc3N3b3JkIl0udmFsdWUgIT0gaW5wdXRzWyJjb25maXJtIl0udmFsdWUpIHsNCiAgICAgICAgaW5wdXRzWyJwYXNzd29yZCJdLnN0eWxlLmJvcmRlciA9ICJzb2xpZCAxcHggcmVkIjsNCiAgICAgICAgaW5wdXRzWyJjb25maXJtIl0uc3R5bGUuYm9yZGVyID0gInNvbGlkIDFweCByZWQiOw0KICAgICAgICByZXR1cm47DQogICAgICB9DQogICAgfQ0KICAgIA0KICB9DQoNCiAgdmFyIGRhdGEgPSBuZXcgT2JqZWN0KCk7DQogIA0KICBzd2l0Y2godXNlcklEKSB7DQogICAgY2FzZSAiMCI6DQogICAgICAvL2RhdGEgPSBuZXdVc2VyRGF0YQ0KICAgICAgZGF0YVsidXNlckRhdGEiXSAgPSBuZXdVc2VyRGF0YQ0KICAgICAgZGF0YVsiY21kIl0gICAgICAgPSAic2F2ZU5ld1VzZXIiOyBicmVhazsNCiAgICANCiAgICBkZWZhdWx0OiAgDQogICAgICB2YXIgdGhpc1VzZXIgICAgICA9IG5ldyBPYmplY3QoKTsNCiAgICAgIA0KICAgICAgaWYgKGRlbGV0ZVVzZXIgPT0gdHJ1ZSkgew0KICAgICAgICBpZiAoY29uZmlybSgnRGVsZXRlIHRoZSBzZWxlY3RlZCB1c2VyPycpKSB7DQogICAgICAgICAgZGF0YVsiZGVsZXRlVXNlciJdID0gdHJ1ZTsNCiAgICAgICAgfSBlbHNlIHsNCiAgICAgICAgICBzaG93RWxlbWVudCgicG9wdXAiLCBmYWxzZSk7DQogICAgICAgICAgcmV0dXJuDQogICAgICAgIH0NCiAgICAgIH0NCiAgICAgIA0KICAgICAgdGhpc1VzZXJbdXNlcklEXSAgPSBuZXdVc2VyRGF0YTsNCg0KICAgICAgZGF0YVsidXNlckRhdGEiXSA9IHRoaXNVc2VyOw0KICAgICAgZGF0YVsiY21kIl0gPSAic2F2ZVVzZXJEYXRhIjsgYnJlYWs7DQogIH0NCiAgDQogIHhUZVZlKGRhdGEpOw0KICAvL2NyZWF0ZVVzZXJzVGFibGUoKQ0KICBzaG93RWxlbWVudCgicG9wdXAiLCBmYWxzZSk7DQp9DQoNCg0K" - webUI["html/img/stream-limit.jpg"] = "/9j/4AAQSkZJRgABAQAAAQABAAD/4gJoSUNDX1BST0ZJTEUAAQEAAAJYbGNtcwQwAABtbnRyUkdCIFhZWiAH4wAFABcAFgAuAAphY3NwQVBQTAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA9tYAAQAAAADTLWxjbXMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAtkZXNjAAABCAAAAEBjcHJ0AAABSAAAAE53dHB0AAABmAAAABRjaGFkAAABrAAAACxyWFlaAAAB2AAAABRiWFlaAAAB7AAAABRnWFlaAAACAAAAABRyVFJDAAACFAAAACBnVFJDAAACFAAAACBiVFJDAAACFAAAACBjaHJtAAACNAAAACRtbHVjAAAAAAAAAAEAAAAMZW5VUwAAACQAAAAcAHMAUgBHAEIAIABJAEUAQwA2ADEAOQA2ADYALQAyAC4AMQAAbWx1YwAAAAAAAAABAAAADGVuVVMAAAAyAAAAHABOAG8AIABjAG8AcAB5AHIAaQBnAGgAdAAsACAAdQBzAGUAIABmAHIAZQBlAGwAeQAAAABYWVogAAAAAAAA9tYAAQAAAADTLXNmMzIAAAAAAAEMSgAABeP///MqAAAHmwAA/Yf///ui///9owAAA9gAAMCUWFlaIAAAAAAAAG+UAAA47gAAA5BYWVogAAAAAAAAJJ0AAA+DAAC2vlhZWiAAAAAAAABipQAAt5AAABjecGFyYQAAAAAAAwAAAAJmZgAA8qcAAA1ZAAAT0AAACltjaHJtAAAAAAADAAAAAKPXAABUewAATM0AAJmaAAAmZgAAD1z/2wBDAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQH/2wBDAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQH/wAARCAQ4B4ADASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD/AD/6KKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigD9PvBf/AARa/wCCrXxF8HeE/iD4G/YM/aL8UeCfHfhrQvGXg/xNpHgia50nxF4W8T6Xa634f13TLkTgXGn6vpN9aahZTgAS21xFIAN1dL/w4o/4LB/9I7/2m/8AwgZ//kiv9b3/AIJp/wDKOX9gH/syf9lX/wBUV4Dr7YoA/wAWr/hxR/wWD/6R3/tN/wDhAz//ACRR/wAOKP8AgsH/ANI7/wBpv/wgZ/8A5Ir/AGlaKAP8Wr/hxR/wWD/6R3/tN/8AhAz/APyRR/w4o/4LB/8ASO/9pv8A8IGf/wCSK/2laKAP8Wr/AIcUf8Fg/wDpHf8AtN/+EDP/APJFH/Dij/gsH/0jv/ab/wDCBn/+SK/2laKAP8Wr/hxR/wAFg/8ApHf+03/4QM//AMkUf8OKP+Cwf/SO/wDab/8ACBn/APkiv9pWigD/ABav+HFH/BYP/pHf+03/AOEDP/8AJFH/AA4o/wCCwf8A0jv/AGm//CBn/wDkiv8AaVooA/xav+HFH/BYP/pHf+03/wCEDP8A/JFH/Dij/gsH/wBI7/2m/wDwgZ//AJIr/aVooA/xav8AhxR/wWD/AOkd/wC03/4QM/8A8kUf8OKP+Cwf/SO/9pv/AMIGf/5Ir/aVooA/xav+HFH/AAWD/wCkd/7Tf/hAz/8AyRR/w4o/4LB/9I7/ANpv/wAIGf8A+SK/2laKAP8AFq/4cUf8Fg/+kd/7Tf8A4QM//wAkUf8ADij/AILB/wDSO/8Aab/8IGf/AOSK/wBpWigD/Fq/4cUf8Fg/+kd/7Tf/AIQM/wD8kUf8OKP+Cwf/AEjv/ab/APCBn/8Akiv9pWigD/Fq/wCHFH/BYP8A6R3/ALTf/hAz/wDyRR/w4o/4LB/9I7/2m/8AwgZ//kiv9pWigD/E88f/APBGT/gqj8K/AnjT4nfEX9hL9ofwf8P/AIdeFPEPjnxz4t1zwTNaaL4X8IeE9Ju9d8SeIdXujORbaZo2j2F5qN9OQRDa20shB24r8yq/28f+Ctf/ACit/wCClX/ZhH7Xv/rP/wAQK/xDqACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooA+j/ANmj9kL9pr9snxbrvgL9lr4K+Ovjn408M+HH8X6/4Y+H2ljWdZ0vwvFqen6NLr1zYrNHMNMh1XVtL0+a7RWihu9RsoZSj3MIf7U/4cUf8Fg/+kd/7Tf/AIQM/wD8kV2v/BAD9sj/AIYi/wCCrf7K/wATNW1X+yvh98QPFw+AHxWklm+z6f8A8IJ8aWg8HjU9Xl3Ls0rwd4wufCPxAuz82B4RQlJACjf7MFAH+LV/w4o/4LB/9I7/ANpv/wAIGf8A+SKP+HFH/BYP/pHf+03/AOEDP/8AJFf7StFAH+LV/wAOKP8AgsH/ANI7/wBpv/wgZ/8A5Io/4cUf8Fg/+kd/7Tf/AIQM/wD8kV/tK0UAf4tX/Dij/gsH/wBI7/2m/wDwgZ//AJIo/wCHFH/BYP8A6R3/ALTf/hAz/wDyRX+0rRQB/gx/HT4CfGb9mT4n+Ivgt+0B8NfFnwj+K3hJNHl8SeA/G2lzaP4i0iLxBomneI9Emu7KbJWLU9C1bTtTs5UZ45rW7idWySB5HX9yX/B69+yL/wAIr8eP2V/22/D2meXpfxb8Da18BfiPd2sOy3i8afDG9k8U+BdR1OXbiXVPFHg/xZrukWzB2P8AZnw0jjZIxEjS/wANtABRRRQAUUUUAFFFFABRRRQAUUUUAPRHldIokeSSR1SONFLu7uQqIiKCzOzEKqqCWJAAJNfq8n/BCv8A4LBSIki/8E7/ANp3a6q67vh/dI21gGG5HnV0bB5V1VlPDAEEVv8A/BBj9kX/AIbU/wCCrf7Ivwo1PTP7T8DeGPiFb/Gz4nRTQ+fpzeAvgpE3xDv9L1hQrEaZ4w1nRdD8BSkAFp/FdvH5kO/zo/8AZ4oA/wAWr/hxR/wWD/6R3/tN/wDhAz//ACRR/wAOKP8AgsH/ANI7/wBpv/wgZ/8A5Ir/AGlaKAP8Wr/hxR/wWD/6R3/tN/8AhAz/APyRR/w4o/4LB/8ASO/9pv8A8IGf/wCSK/2laKAP8Wr/AIcUf8Fg/wDpHf8AtN/+EDP/APJFH/Dij/gsH/0jv/ab/wDCBn/+SK/2laKAP8Kz9p39iX9rL9i7UfCOkftV/AT4ifAfVPHtlq+o+DtO+IejjRb3xDp+gz2Ntq97p1s00k0lrY3GpWUEs7IkbSz+XGztHKI/lqv6F/8Ag5+/bI/4a5/4K2/HDTNF1X+0fh7+y5aaZ+y74KEU261GofDq61K8+KVz5UbG3N0fi9r3jnSTexl5bzSdE0USybLeCGD+eigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigD/cg/4Jp/8o5f2Af+zJ/2Vf8A1RXgOvtivif/AIJp/wDKOX9gH/syf9lX/wBUV4Dr7YoAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigD8+P8AgrX/AMorf+ClX/ZhH7Xv/rP/AMQK/wAQ6v8Abx/4K1/8orf+ClX/AGYR+17/AOs//ECv8Q6gAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAHI7xOkkbtHJGyvHIjFHR0IZXRlIZWVgGVlIIIBBBFf7Z//BIH9sRP28f+Cbv7J37St5qS6n4x8VfC/TPDXxTmMqvc/wDC3PhxNcfD/wCJdxdQ5Mtp/bPi7w3qfiLT7e4zK2jazplyHnhuIrib/Eur/QW/4Mm/2yPteh/tZfsE+JNV3T6PeaT+1D8KNPml3yNp2pDRvht8YrW381t0NrYahB8JtRtLK33Rtda5r980cUjzyzgH98VFFFABRRRQAUUUUAfhR/wcifsif8Ngf8Eif2ndD0vTP7T8dfAvSbH9p74ehYvPuINW+DCXur+MUs4FUzXF/qvwjvfiRoFhb25E819q9skazn/R5v8AHer/AH6NW0rTdd0rU9D1mxtdU0fWdPvNK1bTL6FLmy1HTdRtpLS+sby3kDRz2t3azS29xDIrJLFI6OCrEV/hv/8ABQv9lrUv2J/23/2ov2V9Riuo4Pgv8Y/GHhbwzPe7/tWqeAJdQbWfhrr83mfPu8R/D7VPDOvjcWO3Uh88n32APjeiiigAooooAKKKKACiiigAooooA/0D/wDgyU/ZE+z6T+19+3Xr+mYl1G70D9lz4Y6lJFtdbSwTSfif8YfKaRd0lvd3Vz8HreC4g2xifS9VtneSRHSD++mvyl/4Ih/sif8ADEf/AAS3/ZB+B2o6X/ZXjV/hhYfE/wCKEEsPlahH8S/jDNN8SfFmmaq21WnvfCl14ki8EpKw+Ww8M2MCExQxmv1aoAKKKKACiiigAr5A/b+/ao0X9iP9iv8AaZ/as1xrRk+Cfwi8V+LdCsr5gtrrfjk2R0j4c+GZWLKF/wCEq8f6n4a8NodwxJqqdeh+v6/ib/4PTP2yP+EA/Za/Z5/Yk8N6r5WvftCfEG7+LPxGtLWb98nww+Dogh8OaVqtvuA+weKviT4g03W9Nk2uWvvhfdrujEZEoB/nB+IfEGteLPEGueKvEup3eteIvE2san4g1/WL+Uz32ra1rN7PqOq6nezNzNd399cz3VzKeZJpXc8mseiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigD/cg/4Jp/8AKOX9gH/syf8AZV/9UV4Dr7Yr4n/4Jp/8o5f2Af8Asyf9lX/1RXgOvtigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAPz4/4K1/8orf+ClX/AGYR+17/AOs//ECv8Q6v9vH/AIK1/wDKK3/gpV/2YR+17/6z/wDECv8AEOoAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAr9V/+CJP7ZH/DCn/BT39k348anqv9leA2+Itp8Mvi1NNN5Onp8LPi3FJ8P/F+qaou5RPaeEbfXYPHcMLMB/aXhXT5R80Sg/lRRQB/v8UV+TP/AAQ5/bI/4bo/4JdfsnfG7VNV/tXx9p/w+tfhN8WpZZvO1Fvid8IJG8A+JNV1f5m8u/8AGUWi6d8QFjDECx8W2TgRh/LT9ZqACiiigAooooAK/wA07/g9I/ZE/wCFcftj/AD9sXQNM8jQP2lfhZdfD7xtd28O5H+KPwOnsbO31HUp1A8q41z4a+KvBmkaXDN808HgPUnhZ1tplh/0sa/nd/4Oi/2RP+Gq/wDgkT8cNZ0fS/7R8dfsuapoP7T/AITMUO64TS/ACahpXxSVp0Bnjsbf4ReJvHOuz26hoLi+0HS2nQG3iuLcA/yKaKKKACiiigAooooAKKKKACv02/4I3fsi/wDDcf8AwUy/ZC/Z3vtM/tXwfr3xX0nxh8TrWSLfaS/Cr4XQ3PxJ+IlleyMGhto9d8L+FtQ8NWk04MbaprWn2yxzz3EUEv5k1/eL/wAGTH7In9reP/2uf259f0zdZ+D9A0H9mf4Z6hND5sEmveK7jTviL8VprV3Gy21LQ9E0b4YWSTwlp207xnqVsWhgnkS5AP8AQzooooAKKKKACiiigAr/AB3f+DkD9sj/AIbN/wCCtf7SWvaRqv8Aanw9+BGpWv7MPw1aOf7RaJovwcudR0zxfd2E6MYLnT9d+LV/8RfEWm3dsPJuNM1axZJJ1VbiX/Ux/wCCnv7XVn+wl+wF+1T+1TLdW1trXws+E2vXHgJbsRtBe/FTxOYPBnwo02aKQMJbe/8AiN4h8MW16qxysti9zN5UixMp/wAQK+vr3U7281LUru5v9R1C6uL6/vryaS5u729u5XuLq7uriZnlnubieR5p5pXaSWV2d2ZmJIBVooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooA/sa/Z9/4PGv2mv2ffgJ8EPgJo37HXwJ8QaP8EPhD8NfhDpOv6n43+IFtqWt6b8NfBmi+DLHV9Qt7QfZbe+1K10WK9u4bb/R4riaSOH92q169/xG8ftWf9GRfs9/+F98R/8ACv4h6KAP7eP+I3j9qz/oyL9nv/wvviP/AIUf8RvH7Vn/AEZF+z3/AOF98R/8K/iHooA/t4/4jeP2rP8AoyL9nv8A8L74j/4Uf8RvH7Vn/RkX7Pf/AIX3xH/wr+IeigD+3j/iN4/as/6Mi/Z7/wDC++I/+FH/ABG8ftWf9GRfs9/+F98R/wDCv4h6KAP9GT/gmX/wdhftE/t2/t3fs3/skeLv2T/gt4E8N/G/xpf+F9W8XeHPGPjnUNb0O3tPCviHxCt1p9lqY+wXEzzaNFbslz8gimkYfOq1/cpX+NT/AMG73/KaX9gD/srmtf8AqtPHVf7K1ABRRRQAUUUUAFFFFAH8KH/BRT/g7X/aN/Yq/bf/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WOj6BoOn3Gq6xql5Jg+Xaafp1pcXdw+DshhdsHGKAP8AN2/4PR/2yP8AhY37XHwD/Yq8N6r53h/9m34dT/Er4g2dtNiP/hanxqFlcaTpmqW4Yh7rw38MdB8M6zpUzhWitviTqKICJmJ/itr6y/bt/ah179tX9sf9pP8Aaq8RG6juvjh8XfF/jbS7C9fzLjQfCN1qUln4D8LF98m6Lwl4IsvD/hm2Jkc/ZtJiBdj8x+TaACiiigAooooAK/2Hv+DZvSf7G/4Id/sIWe3Z53hv40atjGM/29+0r8Ztc3f8D/tHfnvuzzmv8eGv9kD/AINw7+HUv+CJ37A1xAqqkfw58c2DBOhm0r40fEvTLhj/ALb3FnKz/wC2WoA/biiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAr/JJ/4Ow/+U2X7Q//AGTv9nj/ANUr4Nr/AFtq/wAkn/g7D/5TZftD/wDZO/2eP/VK+DaAP5vaKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKK6vwJ4G8W/E3xn4X+HngLQdQ8UeNPGmu6b4a8L+HtLi86/1fWtXuo7OwsrdCVRTLPKoeaZ47e3iD3FzLFBFJIt06dSrUhSpQnUq1Zwp06dOMp1KlSpOMKdOEIKUpznOcIQhGMpSlKMYpuST58Xi8LgMJisfjsTh8FgcDhsRjcbjcXXpYXCYPB4OhWxWLxeKxOIqUaGHw2Fw2GxGIxGIr1aVGhQoVq1WpTp0pzj9Y/sAfsT+O/27/wBofw38HvC32vSfCtqY/EXxU8cx2/nWvgfwDZ3MMep6gDIpgm13VHkTR/C2myZ+361dwPcCLSrTVL2z/wBHr4T/AAs8CfBD4beC/hL8MtAtPDHgPwBoNl4c8NaJZj5LWwskOZriZv3t7qV/cvPqOr6ndNJe6rqt3eal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gAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAr+z7/ggp/wTT/4VH4Psf20vjV4f8r4n/ELRXX4K+HtVtsXPgT4d6zbFJvGk8E6brXxN8QbCXZpbIqz6X4Hn/17P4t1GysPyI/4Ip/8E13/AGxfjB/wuX4r6G837N3wa1q0m1S1voD9h+KPxAtlg1HSvAMXmL5V3oOmRyWmt+O8ear6bNpfh14h/wAJK95p/wDedHGkSJFEiRxxoscccahEjRAFRERQFVFUBVVQAoAAAAr+o/AXw29vUpcdZ3h/3FGclw3ha0NK1eDlTq5zOE1rTw8lOjlzaaniFXxkbxw+Hkf4Nfta/psf2Tg8d9FLwvzi2aZlh6E/GrPctxHv5dleIhRxeC8NsPiKFS8Mbm1KWFzPjSMKkZ4bKJZTw5VUKub5vRT6KKK/rU/55AooooAKKKr3d3a2Frc319c29lY2VvNd3l5dzR21raWttG01xc3NxMyQwW8EKPLNNK6RxRozuyqpIG0k22kkm220kkk2222kkkm220kk22km04xlOUYQjKc5yjCEIRlOc5zlGMIQhGMpSnKUoxjGMZSlKUYxjKUoxlYoqlpuo6frGn2Gr6TfWeqaVqlla6jpmp6fcw3un6jp99AlzZX1jeWzyW93Z3dtLHcW1zBJJDPDIksTsjqxu0k1JKUWnFpNNNNNNJppptNNNNNNpppptNNucJ0pzp1ITp1Kc506lOpCdOpTqU5zp1KdSnUjCpTqU6lOdOpTqQhOE4ThOEJwnCBRRRTJCiiigD8if+Cvv/BOiw/bq+A0ms+CNNtIv2i/hFZalrXwv1HENtN4u00p9q1z4X6pdvsRrXxCIRc+Gp7yRIdI8Vw2j/arDS9W8QPcf59Ooaff6Tf32larZXem6npl5c6fqWnX9vNZ31hf2Uz215ZXtpcJHPa3drcRyQXNvPGk0E0bxSIrqyj/AFjK/kJ/4L+/8E2P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/DSP/BUjUvgr4f1X7d4A/Y18AaL8IbSK3m87TpviZ4mSHx78VtVhBYmPULa61fw18PtYjCoEvPh1sCsVMsoB/LfRRRQAUUUUAFFFFABRRRQAUUUUAFf6lH/BsR/wW/h/bw+Ddn+xj+0n4qib9sH4C+E7ePwt4i1m7Vb/APaF+D2gQwWFp4kW4nYPqXxM8BWv2TS/H9u5k1LxFpA03x8kmp3U3jWXRP8ALXr0j4P/ABg+J3wA+J/gf4z/AAY8b6/8OPil8N/EFl4o8E+NvDF61jrWg61YMTFcW8oDxT288TzWWpabew3OmavplzeaVqtneabeXVrMAf72FFfzsf8ABCH/AIL2fCb/AIKr/DKw+GXxPvvDPwy/bk8CaKg8e/DJbqLTdK+K+nadbZuvil8HrW8nM9/pc8cL3fi7wbBJeav4DvTKZvtnhqfStbu/6J6ACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooA+HP8Agp3/AMo1v+Chf/Zjn7WX/qhPH9f4dVf7iv8AwU7/AOUa3/BQv/sxz9rL/wBUJ4/r/DqoAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKtWNje6ne2em6bZ3WoajqF1b2NhYWNvLd3t9e3cqQWtnaWsCST3N1czyRw29vCjyzSukcaM7AFpNtJJttpJJNtttJJJJtttpJJNttJJtpOZzhThKpUlGEIRlOc5yjCEIQjKc5znOUIQhCEJznOc4QhCE5znGMZSj7x+y5+zX8Sf2t/jj4G+BHwr0/7V4l8ZaksdzqVxHK2keFPDtpifxB4v8AEM0SsbbRPD+nCW8uiM3F5MLbStOjudV1CxtLj/SQ/ZX/AGZ/ht+yJ8DPA/wH+Flh9n8O+D9PAvtWniiTV/F3iW8CzeIfGHiGWIYuNZ1+/wB9zMNxgsLUWej6ctvpWm2FrB+fv/BHj/gnDZfs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FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRX+iL/wb7f8ABCH/AIJY/tyf8Eufgl+0f+0/+zPc/En4yeMPFvxm0vxD4tj+Nn7QHgxL+x8JfFfxZ4Z0CEeH/AXxT8MeGbT7DommWNmZLLRreW6MP2m8e4upJZ3AP87qiv8AXt/4hZ/+CF//AEZZe/8AiS37WX/z86/zu/8AgvN/wS9n/wCCWX7eXjL4WeEdM1OL9nP4pWsnxW/Zq1a+ub/VBF4A1e9mg1P4f3etahNeXeoa38LfEKXnhW4k1LUb7XdQ8Op4U8U6zL5/iiNnAPxWor239mfwf4e+IX7R/wCz/wCAPF1gdV8J+OPjb8KfB/ifSxd3tgdS8PeJvHeg6LrVgL7Tbi01GyN5pt7c24u7C7tb23MnnWtxDOkci/6wH/ELP/wQv/6Msvf/ABJb9rL/AOfnQB/kJUV+yP8AwX3/AGUPgJ+xH/wVT/aN/Zr/AGZfA7/Dn4L+AdJ+Cdz4U8ISeKPF/jJ9Ln8X/Ar4ceM/ELnxD4717xN4ovvt/iTX9W1ALqGtXaWguhZ2S29jBb20X43UAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRW74X0mLX/E3h3QppZIIda13SNJlniCtLDFqOoW9nJLGr/K0kazF0DfKWAB4zQBhUV/pDf8AEET+yX/0ex+0V/4RHw0/+R6/kG/4Lj/8Ez/AP/BKP9tHTf2X/hx8SvF/xV8PX3wU8DfFJ/E/jbTNF0rWU1HxZrvjTSLnS1tdCRLE2VpF4Xt5oJSPPd7qYSHaiUAfjlRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFAEscE82fJhll243eXG8m3OcZ2g4zg4z1wakNleAEm0uQAMkmCUAAdSTs4Ar/AEFv+DGz/kUf+ClP/Yx/sn/+mz9oev7R/wBsv/k0D9qz/s2345/+qw8UUAf4TQBJAAJJIAAGSSeAAByST0FWfsN7/wA+d1/4Dy//ABFe8/sk/wDJ1f7Mv/ZwfwY/9WP4br/d1oA/wCpI5Im2SxvG+AdsisjYPQ7WAOD24plf01/8Hcf/ACmc+J3/AGRL4Cf+oUtfzKUAFFFFABRRRQBZWzu3UMtrcsrAMrLBKVYEZBBCkEEcgjgio5IJ4cedDLFuzt8yN492MZxuAzjIzjpketf7bH/BHz/lFH/wTb/7Mc/Zd/8AVNeD6/kr/wCD5n/kHf8ABMX/AK/f2yv/AER+yzQB/n7UUUUAFWFtLt1Dpa3DowyrLDIysPUMFII+hqvX+zb/AMG/P/KGb/gn1/2QyH/1LfFFAH+MxJbzwgGaCaIMcAyRugJ9AWUZP0qGv9Hn/g96/wCTXP2Hf+y+/Eb/ANV3a1/nDUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAV/rff8GoX/AChI/Zt/7Hz9on/1evjuv8kGv9b7/g1C/wCUJH7Nv/Y+ftE/+r18d0Af0dV+D3/Bw/8A8EwY/wDgpl+wB4v0XwRoKal+0r+z5/avxj/Z4mt4Fk1bXNX03Tf+K2+FNtIF82SH4qeGLP8AszT7ES29tL480nwHqF/MtnpMqtR/4L7/APBQXxh/wTL+GH7CH7U3h46jfeE9G/4KA+AvCHxo8I6fJtfx38FPFvwG/aGs/H3hwQtJFBcalaWsFp4r8KLdSLaW/jbw14avrkPBaSRv+4XgDx54P+KfgXwZ8TPh74g07xZ4C+IfhXw/438FeKNIm8/SvEfhTxTpVprnh/XNOmKqZLLVdKvrS9tnZUYwzpvRWyoAP8Mv9jiKWD9sX9laGaOSGaH9pf4HRSxSo0csUsfxR8LpJHJG4DJIjAq6MAysCCAQRX+7DX+ZZ/wXb/4Jef8ADEH/AAWj/ZY/aQ+GHh3+zv2c/wBs/wDai+Ffj3TotOtfK0jwL8coPit4Svfiz4JCQKYNOsvEN3qFv8SPC8D/AGSCSHxF4j0LRbMWHguZk/006AP8iL/g6k/5Tj/te/8AYC/Zu/8AWYvg/X8/GiaHrXibWdJ8OeG9I1TxB4h1/UrHRtC0HRNPu9W1nWtY1O5istN0nSdLsIri+1LUtQvJ4bSxsbOCa6u7maKC3iklkRD/AED/APB1J/ynH/a9/wCwF+zd/wCsxfB+v6cf+DR3/gkR4C+HfwE0v/gpx8b/AAfZa/8AGn4x3GvWP7N1t4j021vI/hX8JtI1C68O3vxB0K2vI3k07xx8TNYsdbtrTXliS9sPh1Zab/YN9HYeOdfiuwD+fT9kv/g0k/4KsftI+GtI8bfETSfhV+yX4a1m1W/tdM+PfiXW0+JklnKv+jvN8N/AvhzxbqWgXkjH9/o3jrUPB2tWUaubrTopfKgl+5PEP/Bkb+2LbaSZvCn7Z37NGta79mkcab4g8MfFHwxpJvArGKA61p2jeLbwW7sFV7r+wTJGpZls5SoVv7xv29/28v2ev+Cb/wCzd4r/AGn/ANpXX9R0jwL4fvLLQNG0bw/p39seL/HvjjWYL6bw74D8GaS09pb3viLXE02/mibUL/TNH0zTtP1LWtc1TTNG0y/vrf8AnO/ZU/4PHv2Gfj18c/DPwi+LPwP+LX7NXhnxt4gtvDfh34v+KvEHhfxl4N0q+1Fkt9In+IlroUVjqvg/S77UJI9Pn1fTofFWmaM88Goa5d6fokeparpwB/DF/wAFBv8Agij/AMFEv+CZ8A8RftKfBG4l+FUt3b2Np8dPhhqK/EL4Pve3lx9ksrLVvE2m21vf+C7/AFG6It9K074gaJ4S1DWJDjSrW9AYj8oq/wB83x14F8F/E7wd4m+HnxG8KeHvHXgPxpot/wCHPF3g7xZpFjr/AIa8S6Dqtu9rqOj63o2pwXNhqWn3tvI8Vxa3UEsUiNyuQCP8eH/gvh/wTBtv+CWX7fHiz4TeBotUm/Z9+Kei2/xi/Z7v9TklvLiw8E6/qF/Yav4BvdTkeZ77Uvhv4p07VvDcU93cTatqHhdfCniHVyt5rzbgD8UKKKKAPuL/AIJ/f8E9P2jv+CmHxw1T9nv9l7TvCOqfEbSPh7r3xOvLbxp4qtvCGkDwt4c1nw1oOpyx6rdW9zHJfLqHizSFhsxGHlie4lDAQEH9nv8AiEL/AOCyP/Qnfs+/+H10b/5UV6j/AMGZn/KWXx//ANmWfF//ANWj8Ca/1J6AP8XT/gnN/wAESv2+/wDgp9res/8ADPHw303RPhl4X1mbQPFPx6+KupX3g74O6TrNrcCC80fT9et9I1rWvGet2Q/faho3gTw74mv9IhktJdch0uLULCS5/aX4o/8ABlr/AMFF/CXgm88RfDj48fstfFvxVp+nvdyfD+11vx/4J1TWbpD/AMgrwzr3inwXF4YubyUYME3ijVPB+nE7hcX1uArP/YJ8Q/8Agvt/wQ+/Yk8UaV+y6P2m/hx4Th+HjjwhJ4U+Avwq8f8Ajr4YfDCGwDKdHfV/g54D17wNa/YLozWWoaL4VvNX1PR9TW6t9Z02wuY7jb+2fgDx/wCCfir4H8I/Ev4beKdE8b/D/wAe+HdI8W+DPGHhvUINV0DxL4a16xh1LR9a0jULZ3gu7HULG4huLeaNuUcBgrBlAB/hF/GH4HfF79n/AOLHi74F/Gf4d+Kfhz8XvAmvyeGPFXgDxJpk1p4g0zWVaPyLdLZPNTULbUoZ7a90TU9LlvdL17TLyx1XRby/02+tLqb+jL9jH/g0q/4Ke/tU+A9F+J/xD/4Vd+yR4T8R2Vlqmg6J8dNT8St8VdS0rUIvPttQm+G3g/w7r154WzHgzaR4/wBX8H+Jrdnj87QVRzIv+h3+1p+z9/wTF+D3xs0f/gqn+2R4f+DPgn4mfBDwLZ+A/D/x3+LGoRW2meHbW01TU9d8OyaL4evZpNK8Q/FS1ubvVLLwLqmn6HrPxGhgnk0bwgwbybdfMv2Qf+C9H/BK/wDbo+NkH7O/7Of7TcHiP4u6sNWl8IeFvFPw4+Kfw3Pj220OyfUdSk8Gap8QPBnhzSdWvYbCK5v4/Dsl7aeK7qwsdR1C10Gax0+9uYAD/Om/4KFf8Gyn/BSr/gnx8Mta+OGt6R8Of2ivg54Z+1Xni/xZ+ztq3i3xPrXgHQLWEzyeJ/HXgfxN4M8J+JNO8PW8Mc82r674dg8V6F4ctreW98R6rpVjsun/AJ46/wB+3UNPsNWsL3StVsrTU9M1O0udP1HTtQtobyw1CwvIXtryyvbO5SS3u7S7t5JILm2njkhnhkeKVGRmU/4lv/BXX9l3wl+xf/wUq/bF/Zq+H9ldaZ4A+G/xg1M+AdJvJmuJ9H8DeMtM0rx/4O0X7TIPNuoNH8N+KtM0y1u5y9zdWtrDcXMkk8kkjAHwl4C8AeOvip4y8N/Dr4ZeDfFHxC8f+MdWtdC8JeCfBWg6n4n8V+JtavW2WmlaF4f0W1vdU1XULhgRFaWVrNM4DME2qxH9RP7M3/Bnv/wVJ+NvhzTPFvxZ1j4E/ss6dqllDew+GPib4v1nxT8SYY7oCS2F94X+Gvh/xToGlym3IlurDV/Gmn6zp8rx2d9pUF4t3Baf1Gf8Gtv/AASH8A/sefsg+BP20vih4PstR/ax/aq8IWXjfTNa13TbWfU/hD8D/EsL3vgPwf4SluI5LrRdR8e+GbjTvG3j2+gNlf3w1nRvCV/AIPChlv8A9mv+Cm//AAVC/Zo/4JT/AABi+Ov7Rd7r+oyeItafwn8Mfhp4KsbfUvHXxN8YLYzajJpGiQ3tzY6VpemaXYQvqPiLxNruoWGj6NZ+RAJb3XNT0LRNXAP4efGn/Bkn+2rpuj3Fz8P/ANsD9mLxbrUVqZYNJ8UaL8UfA9nc3SqGNour6d4d8ctEr/MkNxLpqqz7POS3Rnkj/nE/b5/4JN/t4/8ABNLXLKx/av8AgZrXhTwnrV+NM8LfFrw1c23jP4QeK794JrqLTtK8faC1xpdlrk1tbXdzH4W8SDQfFhtLS5vToQsojcH/AEK/+CfH/B2f+xX+23+0T4M/Zs8c/CH4mfsxeLfil4htfCHwr8UeMdd8PeNfAnifxhrOo22meFfCGs6voNvpmpeFPEHi29u4NP0VrvRb7w6dWki0298RWkl1ZyXP9LHx0+Bfwj/aX+E3jn4GfHXwF4e+Jfwq+I+hXXh7xf4O8TWMd9pupWFyA0c8JbFxpur6ZdJBqeha7ps1prOgazaWOs6NfWOp2NrdQgH+DBX78fsnf8G1n/BTv9tH9nj4YftP/BDwx8Gb74VfF3R7/XPB114k+Lml+HtbmsNN17VvDd02oaNPps0tjKNT0W+RI3lcvCscwOJAB8W/8Fbf+Cfev/8ABMn9u/40fsp395qmueDvD9/Y+Lvg94v1aKKO98ZfB/xpA2q+C9Xu3t44La51bS4/t3g/xRc2lta2Uni/wx4g+xW0NosCD/Uf/wCDcr/lCh+wL/2TTxj/AOrh+I9AH+Zd/wAFE/8AgiR+3T/wS6+HngL4n/tWaF8NNK8K/EnxpP4C8MS+B/iJYeM76XxDb6HfeIZI7yytLK1e0tf7O065ZblmZTMEi25cGvYv2TP+Dbz/AIK5/tgeDdK+JHgz9mt/hh8Pdftob3w/4p+P/inR/hI+uWNzbrdWmp6X4O1t5viNcaPf20sFzpmunwYmiarbXENzpmoXcBaRP9af4yfswfAX9oTxN8G/Fnxs+Gfhv4man8AfG118SfhNb+LbU6tovhT4gXGj3Og2/jBNBuHbR9T1zR9OvLs+H7nWLK/TQdSmi13SorXXtP0vUrHU1X9o/wDZ50LxAPCet/Hn4MaP4qMiwjwzqvxR8D6f4gMryeUkQ0a71yHUTI0v7tU+zbmk+QAtxQB/hrftF/AXx/8AsufHf4tfs6fFSLSIfiP8FfHniL4c+NotA1IaxosfiTwvqE2m6oul6qsNuNQsRcwv9nuvIh86PDGNCdo++f8Agn5/wRM/4KL/APBSy1XxL+zf8Drq3+FIuZ7Sb45/FHUV+HfwhN1aXTWV7baN4k1S3m1Dxtd6fdpJbarZfD7RPFt5pE0bR6rb2bYB/cf4Gf8ABK/Rf+Crf/ByZ/wUM0j4hJd3v7LXwH/ad+Kvxa+Od5pE7rbeMbKf4i3tn4E+E9vrdjKHsH+Jmq22oyX97ZzQ3n/CD+GPGsmj31jrMem3kX+iv8QPHHwJ/Yt/Zy8U+PvEaeFvg5+z1+zp8M77W72z0DSLHQ/DHgvwD4H0dng0bw14c0mC1tIhFZ2sGk+HPDej2qzX9/NYaPpVrLd3VvA4B/nyeHP+DI39sa60pZvF37Zv7NGh62bZHbTvDvhj4o+KdLW8KqZLcaxqWi+D7prZGLKl3/YYkkVVY2cZYqvw1+17/wAGlH/BVP8AZm8Lav47+HmmfC39rbwtotu19faZ8A/EGvSfE+3sIY2a5uF+Gnjjw34V1LxBcRuoWLR/AOpeNddu1kje30xyLhLf9ZviL/wfA6/B8UL9fhN+wPo2p/Bey1W5g02T4hfGm/0X4m+JNEjlC2ep3kfh3wVrnhbwXqd3ArTXGiwt47trCSRbdNd1BYTczf2gf8E+P26vg7/wUf8A2Ufhn+1p8EBqth4T8fwapZar4V8RGxHinwH4y8N6lcaN4q8GeJYtOubu1XUNJ1K2aazuopRDrOg3mjeILWOOz1a2UAH+HJfWN7pd7eaZqdndadqOnXVxY6hp99bzWl7Y3tpM9vd2d5aXCRz211bTxyQXFvPGk0MyPHIiurKKtf3U/wDB5N/wTR8C/C/xP8JP+Cknwj8NWPhr/hc/jOX4N/tIWGk28Vpp+s/E1vDmo+Jvhx8SPsNvHsTXPFPhvwt4x0LxtqX7i3v73w54Tv5o5td1rWL6/wD4VqACiiv6nf8Ag1A/4JtfCz9uj9t/x78XPjx4a0vx18JP2OvCXhbx0vgDXLSDUfDvi74teOtY1XT/AIYW/izSrqGW01jwvoNr4U8a+K7jR7j/AEXUtf0Lw3aanb6hoUmr6beAHxl+wt/wbnf8FT/2+PC+i/Eb4ffBXSvhB8I/EdrBfeHfit+0Z4gn+GXhvxDYXJVrbU/Dvhy30jxH8Ttf0W7t2+12HiLSPAN54c1G2xJY6vcGSJX/AF8k/wCDJP8AbmGitPF+11+ye/iIKuzS5LX4vx6KzbSWDa8vgOW+RQ+FVh4bcspLFUI2H/R8+IPjnw38LfAHjf4l+MLmew8IfDnwf4l8c+KLy0srrUbiy8N+ENFvdf1u5ttNsIp72+nttL0+5lhsrKCa6upEWC3ikldEP8Tnj7/g99/Z50vxidP+GX7B/wAYfGngNLm4ibxT4z+MPg74d+JpLaOTbb3Nv4K0jwf8SNOc3EY81oLjxtavBlULO24qAfz1ftL/APBqB/wWC/Z30G48TeH/AIafC/8Aac0ixSabUU/Zr+Ik/iTxDZW0Qys0Xgv4jeG/hf4z1+WY4SKw8IaB4j1IsSWtFjUyD4//AOCY/wDwRh/bj/4KM6v408Y/s6eF/A4079nj4oeDvDfxQsfiL40g8B65o2tXFzcaodPi0jUrCW6nubWDRNRhvYXWCa0vIfsssayEgf6Mn/BOv/g5S/4Jrf8ABQzxHovww0zxp4g/Zw+OuuvbWejfCr9oODRfDEfi7V5xsOmfD74g6XrGreB/E17LcGO20rRNR1Xw34z12WZF0rwlcMs6w/ym/wDBDL/gtp+yN/wSx+JH7fvwx/aL8K/HTxHr/wAf/wBrb+1fBN18IvCHgvxNpFpa6Rr3jTw/c/8ACQ3Xif4j+CbmykkvdZtJLcafZaqj2qzSM8cipFIAf6W1fwz/APBxP/wQO/4KD/8ABSn9v3SP2if2YfD/AMKdU+G9n+z78OvhzPc+M/ibp/hHWB4l8M+JPiBqeqRLpV1YXMjWa2viLTWhuxJsmd5kCgxHP9zFfg5/wUh/4OIv2Gf+CXP7Qtn+zT+0T4J/aU8Q+P734d+G/ibDf/CfwH8PvEnhYeH/ABTqfiHStOt5NR8T/FjwVqQ1WO58M6g13bro7W0UMlq0V7O8kqQgH+ch+33/AMEDf+ChH/BNf4F237RP7Tvh/wCFOmfDa68deH/h1Dc+DPibp3i7WD4l8TWGualpcTaVa2FtKtm1t4e1Ez3Zk2wusKFSZRj0/wDZL/4Nr/8Agp1+2r+zv8Mf2ofgd4Z+DN98Kvi5pWp6z4Ou/Evxc0vw9rk1lpPiLWPC94dQ0afTZpbGRdV0K/SON5XMkCxTAhZAB+s//Bf/AP4OI/2Gf+Co37CWm/s0fs7eCf2lPD/j+z+O/wAPviZLf/FjwH8PvDfhY+H/AAroPjnS9Rt01Hwx8WfGupHVZLjxJYNaW7aOttLFHdNLeQPHGk39cP8Awbgf8oTP2B/+yeePP/V2fE2gD/M5/wCCif8AwRF/br/4Jd/DjwJ8U/2rNC+GeleE/iN43k+H/hqXwP8AEWw8Z38viKLQtS8RNHeWVpZWr2lp/ZulXbC6ZmUzCOHblwR65+yX/wAG3/8AwVy/bC8G6V8SPBX7Nb/DL4ea/bQ3vh/xX8fvFGj/AAkOu2F1brd2ep6V4Q1ySX4jXWjX9rLBc6Zry+DV0PVba4huNM1G7gLSL/rVfGb9mD4C/tDeI/g74o+Nvwz8N/E3UPgF45n+JvwotfFtqdW0Twt8QpNFvPD9r4wXQLh20fVNa0bTtQvT4fn1mz1CLQtTmh17TIbbXtO0rUrHU1b9o/8AZ50HxAPCeu/Hn4MaL4qMiwjw1q3xR8D6d4gMzSeUsQ0a81yHUTI0v7tU+zbjJ8gG7igD/DZ/aP8AgF8QP2WPjx8Wv2cvitFpEPxI+C3jrX/h541i8P6kNZ0RPEXhu9ksNSXS9VENsL+y8+NvIuvs8PmphjGh4H3p/wAE/f8Agif/AMFFv+CllsPEn7NvwNu4fhUtzcWc/wAc/ifqC/Dv4QfarS5Nle2uj+JtVt5b7xreaddq9tqth8PtF8W3+kTIyapbWZxn9yvg3/wSx0f/AIKuf8HKX/BQbQ/H63d3+y58DP2lfib8XPjrf6PcOlv4u01/HU1l4H+FNrrdjKHsJfiZq8N99uvbOaG9XwR4b8az6Pe2WswaddR/6K/jvxn8CP2Lv2c/E/jnX4/Cnwa/Z5/Z0+GV/rd5Z6BpFjoXhfwT4A8DaM8sWkeHPDukQW1rEsFlaRaZ4f8ADuj2onv76Wx0nS7Wa8ureBwD/Pj8N/8ABkb+2NdaUs3i/wDbN/Zo0LWzbRu+neHPDPxR8VaWt4VUyW41jUtF8H3TW6MWVLv+xFkkADGzjLFV+Hf2u/8Ag0m/4Kpfsz+FtX8d/DrTfhX+1t4X0a3a9vdL+AniHXn+J8FhDGzXNwnw18ceG/CuoeILiNlCw6P4D1Txpr12skb22luVnSD9ZPiP/wAHwOvW/wAUb9PhH+wRo2qfBex1a5g0yb4ifGi+0T4m+JdEjlC2mp3kXhzwXrvhfwVqd3CGmn0WKTx5bWDyLbprmoCI3Ev9nn/BPX9u34Of8FIv2UPhr+1n8EF1XT/CvjyLVNP1jwn4iaw/4SnwF408NajNo/irwZ4kj065u7UX+l6hb/abC7ikWLWvD1/oviC3hhtNWt41AP8ADov7C+0q+vdL1Syu9N1PTbu5sNR06/tprO+sL6zme3u7K9tLhI7i1u7W4jkgubaeOOaCaN4pUV1ZR+jv/BPT/gkp+3J/wVCv/HUP7IXwy0PxfonwvvPDNj8SPFvif4heCPA3h/wdceMI9Zm8OJexeI9btPEOrnUovD2syKnhbQNfltksXN7Hb+dbCf8AqJ/4PJ/+CaPgX4Z+IPhL/wAFJvhH4asfDUnxh8aN8Gf2krHSYI7Wx1v4jyeHNS8S/Db4lNY28YWPW/Efh3wr4v8ADvjbVCYbfULvQfB13LHJrmratfaj4r/wam/8FKv2JP8AgnT8Gf8AgoF4k/bB+PPhz4SDxX4o/Z7u/Bfh2407xD4m8aeN10DRvjDFqyeE/B3hHSNc8Q6wLC51bSba+vIrBNM02XU7J9UvrG3l89QDlPBP/BlN/wAFHNWS3n8d/tHfsa+DIplR5LbRvEvxl8ZapabgC0VxA/wc8M6W08ZyCLXWbmBiPkuSDkWvG/8AwZRf8FEtK82X4f8A7S/7HPjKGIFki8Ra58ZfBGo3AHRYYLX4ReMdPEzcfLcatbxAZzPwAf19+LX/AAez/sX+HdYubD4L/sjftGfFLTLa9a2Gu+NfEPw++Ettf20cmx9Q02ysb34nak1vMoM1nDqltpF5JGYxeW1hMzxRfff/AATJ/wCDoX9iH/go58b/AAx+zPP4A+Kv7OPxw8dtfw/D7SviE/hvxH4B8c6rYWb6gPC2h+OvDmoLd2niy7sLbUbuw07xH4T0HS9RFj/Z+m65e67e6fpF0Af51H7fP/BGf/gol/wTYhTXv2oPgDq2l/DO51BNM0341eA9T074ifCO8u551trG3vvFnhqa6bwffarOTFo+j/EDT/COuasUlbTtLuUjdx+XFf73vxP+GPw++NPw88Z/Cb4r+ENC8ffDb4h+HdT8J+NfBviaxi1LQ/EXh7WLZ7TUNN1C0mBV45YnJjljMdxazrFdWs0F1DDMn+Id/wAFEf2YIP2Lv25v2qv2WbC9utS0L4J/Gvxv4O8JalfyLLqWo+BYdVlv/Ad/qsiRQRtq954NvtCudW8mJYBqMtysG6EIzAH6Sfsi/wDBtr/wU3/bc/Z0+Gf7UnwK8M/Bq++FHxa0/WtT8H3fib4t6X4d1ya10DxRrng/UDqGiz6bPNYuus+HtSSJHlcy26wzghZQB49+3t/wQk/4KD/8E4vBXwy8c/tEeC/A13p/xf8AibY/CHwBpHws8bR/EjxTrvjzVNH1TWtN0a18O6Npi6jPLf22kXUFkltHcT3V+9tZwQSTXCCv9J7/AINrf+UIf7Bf/YmfFP8A9aB+LVfpH+1l8bv2Qv2Y/A2j/tF/th+M/hL8N/CPwo1q51PwZ8QPihDplxqHhvxfq+iano8q/DW3ms9R8SXnjzV/DlzrelW+m+BLC98W6polzrNhaWtxYXGoQuAf5tP7Kf8AwZ+/8FNvj94D0j4hfFjxF8Fv2UrTX7K11DTPA3xV1bxRrvxWhs7yD7TbzeIPCHgrw7q+leF53ieHz9F13xXZ+KNMnaWz1rQNMvbaW2Hx7/wUl/4Nvv8Agor/AME1vh9qPxs8aaN4D+O3wG0PyG8V/FP4DavrmvweAIbqVoLa7+IPhDxL4e8MeL9A0ppQsdx4msNK1zwfpkk9lb6t4jsLu/s7ab/SX/Yp/wCC4/8AwTG/4KDfFq8+BX7L/wC0hB4s+LcWna3rWk+CPFHw/wDiV8NtU8W6F4eVJtV1TwbN8QfCXhzT/Eb2tk0mrTaDYXr+LLbRLTUdavPD9tpWl6jd2v6m+J/DPh7xr4a8Q+DfF2i6b4k8KeLdD1bwz4n8O6zaQ6ho+v8Ah7XrC40rWtF1WwuFe3vdN1TTbu5sb60nR4bm1nlhlVkdgQD/AA3P2MP2E/2qv+Cgnxctvgn+yZ8Itf8Air42NqNT1uWyez0nwp4L0ESeXJ4j8deMtbuLDw14S0VZAYLe51nUrabVb8xaRolvqes3Vnp1x/TPH/wZS/8ABRaTwTFq5/aR/Y6h8dyQQ3D+C59f+MQ0eDfAJZbOTxlb/CS5ZtQhkP2YrD4al06SYFk1T7Ptnb+tPU/2yf8AghX/AMG+vg3TP2S9N8f/AA++A+rl4Ne134X/AA90Dxv8Y/jJrOpahHBIvi34xal4T0nxh4lttYvdOuobrSLn4naxpU03h5bex8G2Z0O00/Tof1s/ZJ/bF/Zq/bq+DOk/tAfspfFXRPi98KdY1PVNCj8Q6VZa5ot7pniDRJI49W8PeJPC/inS9C8V+FteskuLS8fSPEeiaZfTaVqGla1awz6Pq2mX92Af4t/7cv8AwT9/at/4JzfGS7+CP7V/wu1TwB4mdLq+8K+IIW/tbwD8R/D9tMkP/CUfDrxlaxjSvFGjEy24u0geHWNCuZ00vxNpOiayk+mw/GFf61f/AAdX/sm+A/2iP+CSPxg+Ker6L9o+Jn7Juq+FPjH8LdftkjW+02DUfGHhjwT8S9FuZ/LaeTw7rfgPXdR1TUNOjkiin17wv4U1ScudFiQ/wu/8G1X/AATo+HX/AAUX/wCCkWh+GPjbo9t4l+B/wA8Aav8AtAfEXwdfqH0v4gy+HfEPhjwz4M8BavGySx3Oh6v4u8VaZq/iXTJ0+za54V8Pa7oUzxLqYcAHhf7BH/BBD/gpt/wUW0DTfH/wQ+Ba+Efg5q+46Z8bvjbrSfDL4c6vEG2C78MfbbTUPGnjjTDIJYW1nwJ4O8T6NDc21xaXN/BdxGCv22s/+DJT9uh9FafUP2uf2TrXxF5MbLpdnb/GC+0U3BUGWJtfn8A6dfLCj5WO4HhtpJFwzW0ROwf6TtraaZoOlW1jp9naaVo2jafDaWOn6daR2tjpumadbLDbWdjY2cSRW9pZ2sKQWtpawrHDDGkMEQVVUfxM/Gf/AIPbP2Y/CXju/wBA+Cf7Ffxh+LfgvTdav9Nbxx4z+J3hn4QXWqWFlcTW8Wt6H4Sg8IfEq9e11HykubKy8Qaj4c1OO0mj/tK00+9WaxjAP59P2h/+DR3/AIK+fAzw9eeJfCPhb4HftM2dj5s11pXwC+KN3N4qhsYl3tdR+HPi74T+Et5q8235RpXhp9e1aaUGO0srobWb+a7xp4M8W/Dnxj4r+Hvj7w1rngzx14E8Sa54O8aeD/E2mXei+I/Cvizwzqd1oviLw5r+j38UF9pWtaJq9leaZqmm3sMN1Y31tPbXEUcsTqP9Yf8A4J//APB0t/wTQ/bg8TaH8MfFeu+Kv2SPjBr89vp+j+Gvj/8A2FYeA/Eus3Uoig0nwt8XNF1O88Km7uHkht7K38cw+AL/AFW/lTT9GsNRunhSb/NT/wCCscsc3/BUz/gpPNDIksMv7e/7X8sUsTrJHJHJ+0F8QmSSN1JV0dSGR1JVlIIJBoA/P6iiigD9ff8Agnl/wQy/4KIf8FOvBF98Vf2Yvht4Ml+D+l+M9S+HuqfFP4gfE7wd4Q8O2HjDR9N0TWNV0dtCGoap8Q7xrHS/Eei3k17pngm+01lvlggvJbqKe3i/bbwd/wAGTn/BQTUBG3j39qX9jzwsrgM6eFtR+M/jaeLIzsddT+FHgaBpF6OI7l4852SuuGP11/wbf/8ABYj/AIJ7f8E2P+CUXj7Qv2q/j1p/hb4jXv7WXxV8VaD8H/DGg+IPG/xS8RaJqHw3+DVjpmoWPhrw7p13Fpem6ne6Nq1nY654q1Hw74elu9Nu7dtXSaIpX0v49/4Pdv2T9N1tbb4ZfsTftCeMfDouJEk1fxv47+HPw61b7MpYR3EOg6GPibaySSYUm3l1+3CBjmYsu0gH5EeO/wDgyu/4KV6Glzc+BPj9+xr48t4VdorS98YfGDwfrl3tBKJBaXfwa1fREkkxt/0rxJbxozLmUpudf55/24/+CY37cn/BOTxLp3h79rz4A+KvhjZa/cy2vhTx1DNpfi34YeMJ4klnNr4b+I3hK+1nwle6stnC1/ceGptUtfFWm2TRz6todgrgV/qM/wDBJ/8A4OGf2MP+CsPjfV/gx8PvD3xJ+Cnx/wBF8M3Xi8fC/wCKVroM9r4t0DTZ0i1u/wDh74w8M6vqVh4gbw8lzY3GsaZrWn+FNeW1u3v9L0jVNL03V9QsP1Q/bF/ZM+Dv7cX7N3xW/Zg+Onh2z8QeAPin4W1HQ5pZ7O1utT8K669tKfDfjvwtNdRyLpvi7wXrJtPEHhzUowGt9RsolmEtpLc28wB/jFf8E+/+Cd/7Qv8AwUw+NGtfAH9mQ/D65+Jmi+AdX+JDaR8QPGlr4It9U8N6FrGg6Lq39i317a3MGpapZXHiTTrqTSott22mLfajGj2unXrw/sv/AMQhf/BZH/oTv2ff/D66N/8AKivzE/4JzftF+Iv+CXH/AAVU+CfxU8T332K3/Z+/aE1T4Y/Gv7C80ltc/Dy81fVvhL8Z44YCim9+zeFNS8Rano8VzDhdWsNLu9kVxbxSRf7Vttc297b295Z3EN3aXcMVza3VtLHPb3NvPGssFxbzxM0U0M0TLJFLGzRyRsroxUg0Af4HHjvwT4m+Gnjjxl8OPGulzaJ4y+H/AIr8ReCfFui3OPtGkeJvCur3mha9pc+3I87T9VsLq0lwSN8TY4r3L9jj9kL42/t3/tF/D39lr9nfQ9O8QfFn4lv4i/4R2z1rVYdB0OC28K+Fta8Za7qGs65cxyW2lWFjoWgajObiZSJbhbeyhWS6uoIn/Yr/AIOk/wBkv/hlz/gr18b9c0nTP7P8E/tR6N4b/ad8LGOLEEmqeOxfaJ8Ty86ARSX138W/CvjjX7iHCzwWmvac86sJ4ri4/Wf/AIMnv2Tf+Ep+P/7V37aOvabv034R/D3QPgT8P7q5h3wS+MPipqS+KvGmoaZLtIj1Pwz4S8EaNpN0xZSNN+IzRqkgndogD88f+IQv/gsj/wBCd+z7/wCH10b/AOVFfinp/wDwT9/aZ8Tftwav/wAE7vh34X8O/E79qTSfiV4x+En/AAiXg3xx4VTw7qHjn4e2WtX/AI20ux8c+KtT8MeFEi8NQ+G/EKalfajqen2i3GjXtvBLNKIFm/2Yv+CgX7VuhfsO/sVftL/tX6+bRo/gp8J/E3inQbG+bba6547nt10P4beF5m3JtHiv4g6t4Z8NqwYFX1VWAJGD/kz/APBDH9o3wJ8J/wDgsr+yz+0r+0z8U9F8FeENO8d/Gbxl8Ufit4/1VLDS7fUvFnwY+LNvcazr2qTDBvNd8T67bWyEK017qupwW8MbzXCIQD9NPhh/wZpf8FWvG2nWmp+N/HH7I3wbM203Wg+Lvin458S+J7IEAkGL4b/Crxl4VuHUkqwh8YFCQdsjLhj7zrn/AAZKft0W+lxTeGv2uf2TtW1oxkz6frlv8YPD2lxzc7Ui1iw8A+J7uaMjGZX0OBhziFsZP7s/tMf8Hjf/AATH+D2uX3hr4IeEPjx+1TeWXmoPFXg7wvp3w3+G1zPE3lm3ttc+J2oaJ42uP3gYfa7f4bzabLEFns767jkQnwX4Jf8AB6/+xh4w8XaRoXxy/ZS+PXwV8Oandw2d1428NeJfCHxf07w/9onjiGp63o0Vt4C199Gs43e51GTw/Ya/rUcMTLp2g6pcMkLAH8un7W//AAa6f8Fdf2S/CWqePX+D/g79o3wboFnNqHiDVv2X/GF58RdX0mzgJ33H/CvfEXh3wN8UdbjSNWuJ28LeB9eWytVe5vzawRSyJ/PHLFJDJJDNG8U0TvFLFKjRyRyRsVeORGAZHRgVdGAZWBBAIr/fO8E+M/CvxH8GeEfiH4F13T/FPgjx54Y0Hxn4N8TaRN9p0nxH4V8UaVaa54e13TLgBRPp+r6RfWeoWU2B5ttcRPgbsV/mPf8AB4V+wl8N/wBmL9t/4SftJfCnw7pnhDQv20PBnjXX/HHh7RrWCw0qb40fCvVvDlj488XWWn2cFvZ2MnjLQfHfgPVddSFGl1TxeviXxNfSy6hr91IwB+Qf/BKj/gnh/wAFFf8AgoJf/G3Rv2AvGr+E5/hbaeANT+KMTfGvV/g9Bfw+LpvF9r4Rkzpk8S6/LbP4d8RriYM2mpP+7IF84P6dfG//AIIA/wDBf34OfBf4vfF34nfF4z/Db4V/C/x/8R/iFBB+2J4p1yebwP4H8Kat4n8WRQ6K95s1iWTQdL1BI9Lb5dQci0biY1+kX/Bjf/yPP/BSL/sU/wBlr/08fHuv7Rv+CnP/ACjY/wCChX/Zjv7WX/qhfH1AH+LZ+yT/AMnV/sy/9nB/Bj/1Y/huv93Wv8Ir9kn/AJOr/Zl/7OD+DH/qx/Ddf7utAH+Tl/wdx/8AKZz4nf8AZEvgJ/6hS1+e/wDwTv8A+CJ//BQT/gqD4Y1/4g/srfDTwnqfwt8J+NZ/h34o+Jnjn4l+C/BnhzRPGVrouh+I7nRZdIu9UuvHmpSW+h+JNF1Ga70Lwbq2npHfxwfa/tavbr+hH/B3H/ymc+J3/ZEvgJ/6hS1+qf8AwbI/8FbP2Av+CbX/AATU/aGsf2tfj3pHgXxrrP7X3i3xb4X+F2j6L4i8Z/E3xXoV18FPglpFjqWjeE/DGl6lcwaXfavoOsaXBr2uzaN4dS/066gu9YtmiYgA+bvBv/Bk9/wUL1Hyn8e/tP8A7HXhSOQK0kfhnVvjP41u4AcEq8d/8JPBVq0q9GWK+ki3D5Z2X5qx/HP/AAZVf8FI9GE8/gP9ob9jXxxbRB2jt9U8VfGLwZrN0ACUWG1f4N+INIWR+hFzr8Eakj96Rkj9d/iL/wAHuX7I+k60bX4U/sXftD+OtBS7kifWPHPjT4c/DO/ktEZlW7tdF0WT4oxyNKArpbXOrWbBH/eSRupSv1h/4JTf8HHH7Ff/AAVS+Jz/AAA8I+Ffib8Cv2hJNA1bxLonw7+J0Ph/UNG8daZoEEl/ryeAPGnhnVbyDWNV0LSIpNZ1XRte0XwrqR0qC+1DSLfWLLStWuLEA/zHv27P+CVf7eX/AATd1nT7H9rf4AeJfh/4e129fT/C3xL0q60vxr8KfFN4EuJo7HSPiF4SvdX8OQ63PaWs9+nhXWrvSPF0VhE95daBbwKzj886/wB4H9pv9mz4QftffAb4nfs3/HjwnY+Mvhd8WPC2peFvEmlXcFtJc2gvIW/s/wAQ6BdXNvc/2P4r8Maktrr/AIV8QW0f27QfEGnafqtk6XNrGw/w2Pj58JdY+AXx1+NXwJ8Q3UV7r/wV+LXxH+EuuXkCNHBd6x8OPGOs+DtSuoY3JaOK4vdGmljRiWVHCk5BoA/2g/8Agj5/yij/AOCbf/Zjn7Lv/qmvB9fyx/8AB6f8MviJ8ZfFX/BJ34X/AAm8D+KviT8RvGviL9sLQ/CXgfwRoWpeJfFPiPVrmD9lsxWGkaJpNvdX97OUV5ZBDAywwRS3EzRwRSSL/U5/wR8/5RR/8E2/+zHP2Xf/AFTXg+m/8FDf+CiH7Bv/AATW0LwD8cf2yfFuieFvFWpWnjnwv8FYNP8ABNz41+L3ia2nfwbefEjw98OINM0251PT9IuHt/AV142ubrVNA8KtNa+Eh4g1IXSaHGQD+BT4Cf8ABmd/wUp+Jng/TvFXxe+KP7OH7O+oaparcp4B8Q+IvFPxA8caS0kCyx2/iEeAvDWo+CLOYu4ikTSPG+vNAUlMqq6rG/wV/wAFHP8Ag24/4KPf8E4PAWr/ABn8X+HfA/x5+BPh6MXXir4o/AHVte8SReA9PK5Op/EDwf4i8OeGfGHh7RoSsn27xLZaTrfhHSV8k6x4isJLq2ik/v4/Ya/4OYf+CX37enxv0D9nj4feLPip8Jvij411GTRfh3pXx98EaL4K0v4ia+Zo4dO8O+F/Efhzxl420JPEWvmQr4b0PxDf6DqevXgTR9MtbnXbuw0u7/fXV9I0nxBpOp6Dr2mafreh63p97pGs6Nq9lbalpOr6TqVtLZ6jpmp6deRTWd/p9/ZzTWt7ZXcMttdW0ssE8UkUjKQD/AXr/Zt/4N+f+UM3/BPr/shkP/qW+KK/zDP+C6n7Bui/8E6f+CmH7QHwB8EWMun/AAi1W90j4ufBO1kYstj8MvidZnXbDw7bM5aaSy8C+Ix4m+HtlcXTyXd5a+Eor25llmuXkb/Tz/4N+f8AlDN/wT6/7IZD/wCpb4ooA/Av/g96/wCTXP2Hf+y+/Eb/ANV3a1/nDV/o8/8AB71/ya5+w7/2X34jf+q7ta/nz/4NjP8AgkR4U/4KT/tYeJfit8ffD7a7+yv+ymnhvxJ4w8M3ttv0b4tfE/Xbq6m8A/DDVvOKRXnhSK30bV/Fnj+0hF39r0rTNG8K6lbQ2HjcXsAB8Wf8E/v+CBv/AAUv/wCCj2g2Hj74JfBe28EfBvVNp0v44fHTV7j4a/DbXI2maA3XhN5NL1jxl4702KWK5juNY8CeD/Euj2txaXFjdX8N+qWsn7paV/wZFfteTaU02uftqfs36drflIV0/SvB/wATtZ0ozEfvI21i80/QbtYlbISYaGzuOWgjPyj+/D9qL9pT4FfsEfsvfEb9on4v3Vv4J+CfwG8Ew31zpvhvTdPhna0szZaB4Q8B+B9AWfStMk1vxDq9zovg7wboYudL01tT1HTbOW702wEt1b/w+3//AAfC+LR8T2k0v/gn94df4MJq7wLaX/x01OP4n3Wgi+CR6o2oW/w+l8KWGryaYGuX0EaZqNnDfOLJfEk9vGb+UA/Gz9tn/g1e/wCCqH7HXhHXfiTofhHwD+1R8OvDtvdalrWpfs4a5rviHxpomiWkDzz6nqnww8VeGvCnjHUFgjjd7uDwNZ+N2s4Qbu5kjtI554f5uWUqSrAqykqysCCpBwQQeQQeCDyDX+7R+yH+1R8J/wBtv9mn4O/tVfBDUL3UPhl8afCFt4q8PLqsVrb63o9wl1daR4i8KeI7WxvNQsbTxP4N8T6ZrPhPxNaWOoahZW2vaNqENnqF9apFdzf51H/B3z/wTR8C/ss/tO/DL9s34LeGrHwt4A/a+bxVZ/FHw5o0EVpo2j/H7wj/AGfqOr+JbKxgigtdNi+KfhvWINau7K1ST7R4u8M+NfEF1Ik2vrGAD+O2iiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACv9b7/g1C/wCUJH7Nv/Y+ftE/+r18d1/kg1/rff8ABqF/yhI/Zt/7Hz9on/1evjugD4q/4PW/+UZP7Ov/AGfb4B/9Z/8A2ka8Y/4M7v8AgqD/AMLW+DPi/wD4Jp/FrxF53j74C2Wo/EX9nW61S6BuvEPwV1bVlfxj4EtpbhvMurz4Y+LtXTV9KtvNmuX8IeMfsOn2tvovgSVo/Z/+D1v/AJRk/s6/9n2+Af8A1n/9pGv87H9jT9qz4nfsP/tQ/BX9qv4P3ptfHfwX8b6b4qsbOS4mt7DxJo4EuneK/BWtvB++Ph7xx4VvtZ8Ja+kOJ20jWbz7O8dwIpUAP9pn9uL9jL4a/tzfBWx+E/xDijtb3wh8Tfhl8a/hl4qFql1feCPil8JfFlh4q8Ma9YqzIRDqMFtqng/xDHE6TXnhHxR4hsIJYZ7qKeL7Er5//ZV/aV+GP7Yn7Ofwc/ae+Deq/wBrfDf41eBtH8beHZZHha+0038TQ6x4a1pIHlitfEfhHXrfVPC3iawWR/7P8QaPqViXZrck/QFAH+RF/wAHUn/Kcf8Aa9/7AX7N3/rMXwfr/Uw/YR+HekfCP9iT9kD4X6FZxWGk+AP2ZPgV4TtLaHBULofwx8MWEs0jjme5up4Zbq7uXLS3V1NNczO8sru3+Wf/AMHUn/Kcf9r3/sBfs3f+sxfB+v8ATh/4JWfHTQv2k/8Agm7+xD8Z9Au4byHxZ+zT8KLXWTb3CXUdl4z8JeFNP8F/EDRzcIzCSXQvHPh3xFos5fZMJrCQTxQzB4kAP4/f+D4n4oaur/8ABPL4LWep30GgzL+0N8UPEWjJNIum6nq9sfhT4T8GancW4IhlvtDsrrx5a2czBpLeDxDfohRbmTzP4Ba/0XP+D239mvxn4t+CX7Fv7VfhzR5L/wAI/Bnxp8VfhN8TL61ilnuNIX4x2fgPWvh7qd8sUbC00KLVfht4o0W41G4ZLaPW/Evh7Tt32nVbZJf87rw/oGueK9e0Twt4Z0nUNf8AEniTV9N0Dw/oWk2k1/quta3rF5Dp+laTpljbpJcXmoajfXEFpZ2sCPNcXE0cUaM7qCAf7cf/AASm+KGsfGf/AIJm/sDfE7xJqd7rfifxZ+yL8AbvxXrepTSXGoa14ss/hp4d0rxTrF7PL+8nutU8QWGo388zlmkkuGcs2dx/lM/4Pgvh1pF38Hf2Bfi0LOJde8P/ABL+NPw6OoJhJ5tI8YeF/BniVbO4xhp4ra88DvPab9wtHu77ythvZt/9fv7BPwK1r9mD9iD9kL9nTxMtkviv4I/s1fBP4YeMG02dbnT5fGXgz4deHtD8X3NjcoAtxaXXiWz1S5t5lGJYpUfndmv4tP8Ag+A+OehySfsGfs1WF3DP4ls0+L/xy8U2IuE+0abomonwt4C8B3UlqrGTytavtL+I0UU8qxoH0CWOAzFrgQAH8A1FFFAH9aP/AAZmf8pZfH//AGZZ8X//AFaPwJr/AFJ6/wAtj/gzM/5Sy+P/APsyz4v/APq0fgTX+pPQB/gSeKP+Rm8Rf9h3V/8A04XFf69X/BsJ4n1PxV/wQ6/YiutXvJb690mz+O/hhJ5jl00zwz+0x8ZNG0GzH/TLTtAtNL06AdoLWMHkGv8AIV8Uf8jN4i/7Dur/APpwuK/1wf8Ag1b/AOUG/wCyB/2HP2kv/Wn/AIw0AfHP/B5//wAoovhX/wBnxfCT/wBU3+0RX+ff/wAElfEup+Ef+CpP/BObXNJu5bK5i/bf/Zd06eaI4aTStd+NPgzQdds29YdR0TUtQ0+4HBaC5kUEE5r/AEEP+Dz/AP5RRfCv/s+L4Sf+qb/aIr/PK/4Jif8AKSn/AIJ6f9nx/sm/+r78AUAf7itf5IX/AAc1+F4/E/8AwX7/AGl/C9qqW83i++/ZQ0aSWMJGz3Otfs5fBDR1uHYjaZAjwrvfPEa7sgV/re1/kaf8HReq3ehf8F3/ANqjW7B/LvtGtP2YNVsnOcJd6f8As1/Bq7tnO0g/LNCh4IPHBB5oA/1sPDPhzRfB3hvw/wCEfDdhDpXh3wtomk+HNB0u3BW303RdDsLfTNLsIASSIbOxtYLeIEkhI1Ga/wA2T/g9l+KGsax+3f8AspfBt9TvZvDngD9k8fEOz0hppDptl4i+Kfxb+IXh/W72C2J8pb+/0n4T+GIry4Rd0ttZWETOfJ2r/ov/AAH+L/hf9oL4I/CD47eCbiG68IfGX4ZeBvih4amguI7uM6L478M6Z4m0+M3EXySSwW2pRwT4ClJ45EdEdWQfwB/8Htv7NfjO0+Of7H/7X9ppEl38PvEPwk1f9nHXNdtopXj0Lxd4J8Z+KfiV4a03WJvLENv/AMJPpHxE8T3Hh9RK73J8K+I96RC3iM4B/DVpGrapoGq6ZruiaheaTrWi6hZatpGq6dcS2eoaZqmnXMd5YahY3cDJPa3lldwxXNrcQuksE8aSxsrqCP8AeR+A3jqX4ofA34M/EydzJN8RPhR8O/HU0hQRmSXxb4Q0fX5HMaqioWfUC2xUULnaFUDA/wAK74JfB3x9+0L8YPhj8CvhXok3iP4j/F7x34X+HXgrRYQ/+neI/FusWmi6YtxJHHL9lsIbi7S41K/kT7Pp+nw3N9cslvbyuv8Au5/DXwba/Dn4c+APh7ZOkll4E8FeFfBtpJGhjjktfC+hWGiW7pGeURorFGVDyqkL2oA/zzP+D374daRpf7Rv7CHxZgs4o9d8b/BT4tfDzU79cebdaV8L/HPhzxHotrIOuyyu/i7rssRPU30gH3eP6tf+Dcr/AJQofsC/9k08Y/8Aq4fiPX8ff/B638c9D8ZftwfsvfATSLuC9v8A4H/s9ar4r8UG3uEl/srXvjP4zmkg0G9hUlrXUovDHw78OeIHSQAy6Z4l0mZcq4x/YJ/wblf8oUP2Bf8AsmnjH/1cPxHoA/JX/g8++KPxM+Hf7DP7M+mfD/4ieOfA2m+PP2jNU8O+ONP8HeLdf8M2XjLw/F8MPFN9HoXiu10XULKDxDoyXsUV4ul6ul5YrdRRXAg86NHX/Mkr/Sh/4Pb/APkyf9jz/s6XV/8A1U3i2v8ANeoA/wBLv/gya+GWjaP+wT+1Z8YIrJIvEnxA/a2k+Huo34x5t34d+FXwg+HOv+HrdiBnyrLVfi54uaIFjiS7nwq5y/8AVJ+2L+yZ8J/25v2cPiR+yv8AHP8A4SlvhR8V4PDlp4xg8GeIZfCviG7s/DHi/wAP+NrC0tNdt7e5ns7e41nw1psepRxRH7dppu9OlP2e7mB/kR/4Mjfj1oGq/sz/ALZv7ML3kUPinwJ8dPDHx4trCa5jWfUfD/xX8A6N8Pry60+0YiWaHRNS+DNjFq9xEHjtZPEOixzmNry383+p/wD4KYfCX9oL44/sH/tN/DT9lH4geNfhh+0lrPw4udU+Cvi/4eeOdS+Gvi6H4g+ENV0zxloHh/TPG+l6jpFxoEXjW50D/hCtTuptSs9Ok0nxDfW2rTx6ZNdsAD8ZP+IQn/gjh/0KX7Qv/h9dV/8AlLX7O/8ABPv/AIJ5fs7f8Ezfghq/7Pf7MNv43s/hvrPxF134oT2fjvxdceMtTtvE3iPQvC/h/VEsNSubW0ktdKktPCWmXEenrGyR382oXQcteMq/5FvjD/gqr/wWI+HvizxL4E8df8FAf2+/B/jTwbrmqeGfFnhTxJ+0b8btH8QeHPEWiXs2naxomtaVf+KoL3TtT0y/t57S9srqGOe3uIpIpEVlIrnP+Hwv/BV7/pJH+3D/AOJP/GP/AOa+gD/SS/4OyfDljrf/AARR+Pup3cUMk/g/4mfs9eI9MeWNXeC+uvjD4W8JSS27MCYZjpvinUIGkQqxt5p4idkrK3+ShX7g/tRaV/wXX8TfsAr+0l+2h8Y/2ytQ/Yq+JXxH8E/D7S/D/wC0b8c/iFdWnxK8RX1vqnjzwhrdh8H/ABx4ln1rWPClnL4NOtaN4z1Hw7BoNxqFtp134dv9Qkiee1/D6gAr+u//AIM8/wBuP4Zfsz/tx/Fz9nb4reJLDwdpX7Y/gXwj4e8CeINa1Oz0vQbj4v8Awv1fXtT8GeEdQur+S3tLe+8Y6J4y8Z6X4ZlkuRLqHipdG8L2Ntd6l4lskT+RCvtr9mr/AIJ5/tf/ALXXwc+Pnx3/AGZfhHr/AMX/AAx+zDeeAv8Aha+jeBWXV/iJo9l8QIfF1zomv+H/AANZ7vEfizTdOHgrVpNdPhe01PU9FgNvqc+nf2VFqOoaeAf7jFzbW95bz2l3BDdWl1DLbXVrcxJPb3NvOjRTQTwyq0c0M0bNHLFIrJIjMjqVJFfzsftRf8GsX/BH39pjVtW8S6b8FfFn7NfijWfMku9T/Zl8aN4D0RLpy7JPYfDjxHpPjX4W6JHGWA+x+HfBOjWbooDQ+Z+9r+G79jT/AIOjv+Csn7Gmj6f8PfEHxB8LftP+BvDzRaZa+Gv2otA1vxZ4u0Oysh9ln02z+JegeIPCPxImuIUjWG3HjTXvF1vpbwJFBpyW6y2sn9Xv/BK3/g7Q+Fn7df7Qvwq/ZQ+O/wCzB4j+BHxV+MXiGHwX4B8ceBPG1r8Sfhlq3i26sbu706x8Safq2jeEPFvgiHWrq1Gi6TJYJ8QYf7WvdPOq3WlaZJe6lp4B+H3/AAUk/wCDPP8AaL/Zy8D+KfjH+w78V5/2sPCHhXTbnW9Z+DPiHwwPDHx/i0uzLSXX/CER6FLqXhX4rX1pZJJfzaTaReCPEt+I207wx4a8S6vLa2Nz/H/8PY5IfiP4HhmjeKWLxt4ZjlikVkkjkTXbJXjkRgGR0YFWVgGVgQQCK/3wq/xr/wDgt/8ADf4f/AH/AILeftjeFPBVtpOh+B9L/aL8MeP2s9Hh+z6Ro1z8RPDvgf4reLbW0tIlEdnDpviHxZrcLWNpGlrZtC9pYwxWsMMSgH+yhX+WF/weRf8AKXHw9/2aF8Gv/U0+Llf6naOkqJJG6yRyKrxyIwdHRwGV0ZSVZWUhlZSQQQQSDX+Xj/wed+CvEWh/8FSfhb4yvtNuYvDfjn9j74cr4f1jypfsN9feGPiR8XNN1/TI7kosLajpX2jSrq+tI3kktrPWtIuJdi30IIB/IvX+x7/wbgf8oTP2B/8Asnnjz/1dnxNr/HCr/Y9/4NwP+UJn7A//AGTzx5/6uz4m0AflL/wed/FH4mfDr9hH9m3Tvh98RPHXgXT/AB3+0nd+G/HFj4N8W6/4YtPGXh1PhZ4zv10DxVbaJqFjD4h0Rb6CC9Glaul3YC7ghufs/nRRuv8AmOV/pU/8Htv/ACY7+yF/2dbe/wDqofHFf5q1AH+ln/wZLfDLRtI/YS/az+MUNkkfiLx9+1lH8OdSv+PNu9B+FHwg+H/iTQLZuN3lWWpfGLxTJFkkb72faAQxb+q79sL9k/4Uftxfs4/Er9lj44/8JS3wp+LFr4esfGMPgzxBL4W8Q3Vl4b8XaB40srS0123guZ7K3udX8N6fDqSRxH7dpj3mnyEQ3cuf5B/+DIv49aBqf7OP7aP7MEl5FB4o8EfG3wn8ebOwmuY1n1PQPil4E0v4e6jd6faEiWaLQtR+D+lw6xcxho7Z/EWhxTFGuoPM/qs/4KVfCX4//HH9hL9pv4Z/sq/EDxn8MP2kNb+Gt7qPwU8YfD7xxqPw28WwfETwlqOneMfDmhab440vUdJufD0PjO90BPBmq3kupWenPo/iC/ttWmTS57ygD8X/APiEJ/4I4f8AQpftC/8Ah9dV/wDlLX7N/wDBPn/gnf8As6f8Ey/glrf7Pv7MFt43svhxrvxH1z4pXVn488XXHjPUrfxR4i0Dwr4c1MWGpXNraSWulS2Pg/Sp49OWNo47+TULsPvvZAP8jHxl/wAFU/8AgsV8OvFvibwF49/b/wD2/PB3jbwZruqeGPFvhPxL+0b8btG8QeG/EWiXs2naxomtaVf+KoLzTtT02+t57S9s7qGOaCeJ45EDKRXNf8Phf+Cr3/SSP9uH/wASf+Mf/wA19AH+k1/wdh+HLHW/+CJn7RGp3cUMk/g/4ifs8eI9MeWNXeC+uvjX4M8JSS27MCYZjpvinUIGkQqxt5p4idkrK3+fN/wSO/4Id/taf8FdPFWt3fwufR/hX8AfAusWui/Ej9oXx3Z3t34a0jV7i2S/PhXwV4espLXUfiJ45i06WDUbrQtPvtK0nRbO80ybxX4m8ODXNB/tXpP2ndL/AOC7Hir/AIJ/yftJ/tmfGT9svUP2J/iR8RPA/wAP9P0D9o345/EO5sviZ4gvk1Dx14Q1nTvhB448Sz6zrfhSyufBya3o/jPUPD0OgXGo22nXfh3UNRlgkmtP9N7/AIIc/BTwb8Bv+CSH/BP7wh4KsLKys/Ev7Mfws+MGvzWbxz/2p42+OXhiw+L3jTU7m9TJvpZvEfjPUIIJnklWDT7ay0+2cWNlaxoAfjx8AP8AgzX/AOCYfw30rTn+N3jn9ov9o/xSttGmszal410z4V+Brq7UfvJ9F8LfD7R7bxbo9vIcn7LqXxL8RyJwBdnGT+pv7PH/AAb+f8EiP2WPiH4G+LnwV/Y+0Xw78UPht4j0jxf4L8c6z8U/jl421rQvFGhXUd7pet2SeNfibr+lxXVrdQpKsSactm2DG9q0TvG35hf8HYn/AAU3/at/4J//ALP37NfgD9lHxhq3wo8RftOeKPirZeMfi/4es7N/FHhjwx8MNK8CS/8ACM+Fdau0uG8K654tvPH8d0viDTbaPXbTT/DN/Ho2pabPLLOf4ff+CWX7S/7UXx8/4K5f8E8Z/i38fvj18ZtQ1L9s/wCAN/qz/EP4pfEH4g3V7Ba/EjQb3Uru+/4SLXNWkmt7Wxt7i6vJZg0NvZwSzTFIInZQD/ZRr/G6/wCDjYAf8Fr/ANvoAAD/AIWX4NPAxyfg78OCT9SSST3JJPNf7Itf43f/AAcb/wDKa/8Ab6/7KV4M/wDVO/DegD/R5/4Nrf8AlCH+wX/2JnxT/wDWgfi1X5F/8HtH/JhH7J//AGd7F/6pn4nV+un/AAbW/wDKEP8AYL/7Ez4p/wDrQPxar8i/+D2j/kwj9k//ALO9i/8AVM/E6gD+LH/gg94o1Pwh/wAFiP8Agnjq2k3ktjdXf7SfgzwvLNEcO+meN0vvBet2ZP8Azy1DRtfv7CYd4bmQd6/2ja/xSf8Agif/AMpcf+Cc3/Z3nwU/9TLTa/2tqAP8cP8A4OQP+U2f7fH/AGULwD/6pL4Y1/VT/wAGQHiXU7r9nb9vLwdLeSvo2hfGn4Q+JbCwJ/c22p+LPA3ifS9WvIx2lvrXwXosMp7pp8I7V/Kt/wAHIH/KbP8Ab4/7KF4B/wDVJfDGv6g/+DHX/kk//BRD/sof7Ov/AKjfxboA/py/4LbW8Fz/AMEi/wDgoxHcRRzRr+yR8ZbhUkUOontPCd9dW0oBBAkguYYp4m6pLGjqQyg1/nPf8GrX7cXwz/Ys/wCCoFhZfGbxHYeD/hv+038J/Ef7Pc3i7XNTtNI8L+EvHGreKPBvjf4f634l1C9kit7PTtR1jwXN4DjvZ5YrTT73xvbahqE1tp1rd3MP+jP/AMFr/wDlEd/wUa/7NC+Nv/qF6lX+Qp+yX+wB+1b+3NpPxy1D9lf4Xaj8X9V/Z88D6X8RPHngvwzc20/ju98MaprDaMkvgrwq7pqPjXVradJbiXw74fS88QXdtEy6TpupXjRWkgB/uWAggEHIPII5BB6EGvwK/a6/4Nnf+CRf7X/iPXPHOt/ALVPgd8QPElze32ueMf2bfFc/wwOo6jfzPdXOqTeBp7HxH8KF1Sa7lnu7nUYvh/Heahczyy6nNenZs/gB/Ys/4OPf+Cs3/BPLTrX4Ox/EWw+MfgDwG0Xhe1+Dv7VvhfW/GNx4Eh0E/wBlv4Y0rxJb614P+LHhuDRbe1TSLHwveeL59A8OJZQ2lj4dtI4ZbeT+pb/gnZ/weK/D39pT42fCb9nn9qX9lDVvg/4m+L3jzwb8MfDHxR+EvjhPHfgiPxf4616w8M6HJ4q8F+J9K8N+I/CnhsavqNnHe6tpPiXx7e2sE7TNpBhtpZWAPzp/4KB/8GZHxd+Ffg/xH8S/2APjvP8AtAweHtOv9Wn+BPxc0jTPCvxX1WzsUef7F4F8ceHvK8E+NPEdxFxBoet+H/hxFO0DpY6rfX93aaW38R+u6FrfhfW9Z8M+JtH1Tw94j8O6rqOheINA1ywutK1rQ9b0i7m0/VdH1jS76KC+03VNMv7eey1CwvIIbqzu4Jre4ijmjdB/vx1/kTf8HTXwp8E/Cr/gtF+0mPA1jpek2nxH8PfCb4reItJ0iEW8Fr428Y/D3RG8X31zCoCDVPFOtWFz401eZcm91LxJc38pM91LQB/PBRRT40MsiRqUDSOqAyOkaAuwUF5JCqRoCcs7sqKMsxABNAH9Dv8AwR6/4Nzf2rP+CrWhx/Gm+8TaZ+zd+yjHq1/o9t8ZPFfh+68T+IviBqWj3AtdZsfhP8PodS0B/Etlpd4JdL1XxdrHiDw94Ws9Vgv9M0y98Q63omt6LYf2W/BX/gzy/wCCSfw4020T4mf8NFftCayIYDqV546+LLeDNImu1VftDaXpHwh0PwBf6dYTOGMVpf8AiDW7yBG2Nqk7AS1/SP8As7fBjwZ+zn8Bfg18BPh3p9ppfgf4OfDHwT8N/DFpZBTCNJ8H+HtP0S2uXlCq13dX4szf31/NuudRvrm4v7qSS5uJZG/i+/4O3P8AgrH+2t+yP8XPgL+yH+y18VPGf7P/AIV8e/BY/Gf4gfEv4cXT+GvHvim91Px54u8F6T4P0L4gWMieI/Cll4bi8FT6xrA8K3Wi6lqL+JdKjvNTnsYTZMAf0q/sl/8ABE7/AIJf/sM/E3QfjP8AsufsqaD8M/ir4Ysta0/Q/HknxB+MHjbxBYWniPR73QNcgjuPiH8QvFcRj1PSNQvLO4R4GRUnLwrFLHE8f6oV/lC/8Gyfxr+PPxm/4Lj/ALLl/wDFD4t/F34rvF4b/aO1XWL3x9498ZeOnjEn7O/xQtl1HUrnxDquqFA+pXlnALy6cbr67tohIbieJW/1eqAP8MP/AIKCgD9vb9t0AAAfteftKAADAAHxm8aAAAcAAdBX+rh/wbl/tn/8Nr/8Em/2bvE+s6r/AGp8Rvgfpc/7MnxReSb7ReDxF8HLTTdK8L3+oTsxnutR8R/Cu9+HvinU7udRLcarrd+XeZkaeT/KQ/4KDf8AJ+/7b3/Z3v7Sn/q5vGlf1Mf8GXX7Z/8Awrj9rL48fsR+JtV8nw7+0l4Ai+Jvw4s7mbMa/Ff4MxXk+t6XpVuWAW68UfC/V/EGtarMA7PbfDHTYyFCZoA/Ur/g9R/ZL/4T39kn9m/9sXQdM87W/wBnv4qaj8L/ABtdW0OJV+HHxssLeXTdT1OcL89loHxB8F+H9G06N2BhvPiDdNEpFxMR+r3/AAbK/sm/8Mo/8EgP2cF1PTP7N8aftFLrX7UfjTdF5Ul0fi0bJvh5OwZVmz/wprQ/hqsiS8pdC52AIwFfqD+3p+yJ4M/bz/Y/+Pf7I3j2+k0nw98bPA83h2PXYbaO9m8N+I9N1LT/ABN4L8UQ2kpVLqXwx4y0PQdeS28yI3B07yVmhZxKn034V8L6D4I8L+G/BfhXTLbRfC/hDQNH8L+G9Gs1KWmk6DoGnW+laPplqhJK21hp9pb2sCkkrFEoJOM0AfxNf8HqX7aH/CF/s/fs4fsJ+GNW8rXPjb4vu/jl8UrO1nK3EXw3+GLSaL4E0nVIC2JNL8XfELVtQ1yzYIzLqXwoBLxgbZv4Iv2RP2Qv2gf26Pjz4M/Zu/Zn8BXvxB+KXjaa4ez0+KaHT9H0LRdOjE+t+LPFuvXjR6b4b8K6DakXGqaxqEyRh3ttPso73V9Q03Trz9Af+C/v7aP/AA3N/wAFVf2oPifpGrf2t8Ofh94o/wCFAfCKWKf7Rp5+H/waluvC39q6PKWO7SfGnjJPGHxDs+E+Xxe37uP7i/1Vf8GQ3wU8G2/wk/bf/aLksLK5+IWq/Eb4ffBSz1SR45NS0bwb4f8ADMnjrUrC0j/1tnZeJdb8TaTcai5/d6lP4T0tVw2lNkA7D9kP/gyl/Z08N+H9J1r9t/8Aab+JvxR8cywWd3qXgf8AZ+i0X4a/DjSL0xr9u0WbxX4w8P8Ai/xr4309JN4t9bstO+F15Mu0vpMG0h/1+8Df8GuX/BEPwQIZZf2Prrxrfwbcah45+Ov7QOsGTb1M2kWfxO0vw3LvIBbfohHZQqEqf0e/4Kb/ALTPjT9jb/gn9+1v+098ONFt9f8AiB8G/gr4t8V+CbG+szqOlweK/syaZoGta3p4ntW1Dw/4b1TUbXxF4gsUuraS80XS7+3juIXkWRf8dj4//wDBTb/goR+1H4g1XxF8df2yf2ifHcur3l7eyaDP8U/Fmi+BtNe/mae4tvD3w88OalpHgXwxpxZtsemeH/D2m2EMSRwx26xxoqgH+2x8Mfhp4G+DPw58C/CT4Y+HbTwh8OPhn4T0DwL4E8KafLdzaf4a8I+FtMttG8PaDYSX9zd3hsdJ0qztbCzW4uZ5I7aCKMyEKK/hQ/4PlwP7F/4JlHAyNU/bBAOOQDafsxkgHrgkDI74HoK/rE/4I6DUx/wSm/4J2nWhfjVZP2OvgDNfnVBcDUHuJ/hzoMzy3Zu/9JaabeJWebLyb95J3ZP8nn/B8t/yBP8AgmX/ANhX9sD/ANJP2ZKAPPv+DG//AJHn/gpF/wBin+y1/wCnj491/aN/wU5/5Rsf8FCv+zHf2sv/AFQvj6v4uf8Agxv/AOR5/wCCkX/Yp/stf+nj491/aN/wU5/5Rsf8FCv+zHf2sv8A1Qvj6gD/ABbP2Sf+Tq/2Zf8As4P4Mf8Aqx/Ddf7utf4RX7JP/J1f7Mv/AGcH8GP/AFY/huv93WgD/Jy/4O4/+UznxO/7Il8BP/UKWvDf+CPf/BvZ+1f/AMFZ7a4+KNhruk/s+fssaRrd5oGofHbxlod54hvfFWtaYY01bRPhR4BttQ0S58cXWkTSx22s6zf6/wCGPCOm3S3unJ4hvvEGm3mgp7l/wdx/8pnPid/2RL4Cf+oUtf6cn7DXwU8G/s5fsbfsvfA7wBYWWn+FPhp8Cvhl4a09NPeOWC+uLbwnpk2sa5Jcw/u76+8R63PqPiDVNRGTqWpand37kvcsSAfz3/BD/gzq/wCCUHw402yHxU1D9oz9ofXvs8H9q3XjD4oQ+BPDs16ir9ok0fQvhRoXg3WNLsJmBMdnqXi3xDdwKxU6pMQrj9V/2Vf+CG//AASv/Yn+KPhL42/s0/sm6F8PPi54F/tdvCnxBuPiN8ZvG3iPRn8QeH9U8K649pcfED4jeKbdDqvh7W9X0m8jFt5L2eoXMKRRqwC/z9/8Hbv/AAVX/bK/Yx1j9m39mP8AZT+JPir4DaZ8X/AfjD4j/Ej4qeBnXR/HeuRaX4msPD3h/wAGeEPHEDDW/BiaRJZ6lrPie78NS6ZreoprPhy0j1m301NUsNS/ms/4N3Pjv+0J8bf+C5P7EV58VPjL8Zfi5O/iP416prF18QPiH438fSsB+zn8YTJqOpT+I9Y1Z2AupYC93dMQLiSLdJ5jpkA/1ua/xCv+Cs4A/wCCp/8AwUqAAA/4b6/bC4HA/wCThPiHX+3rX+IX/wAFaP8AlKh/wUq/7P6/bB/9aD+IVAH+uz/wR8/5RR/8E2/+zHP2Xf8A1TXg+v5K/wDg+Z/5B3/BMX/r9/bK/wDRH7LNf1qf8EfP+UUf/BNv/sxz9l3/ANU14Pr+Sv8A4Pmf+Qd/wTF/6/f2yv8A0R+yzQB/A74J8ZeJvh14z8I/EHwXq934f8Y+BPE+geMvCevWEnlX2ieJvDGq2mt6Dq9lLz5d3puqWNreW0mPkmhRu1f72nhbXIvE/hnw74lgieCDxDoWka5DBKrLJDFq2n29/HFIrhXV40uAjqyqwYEMAciv8PD/AIJ/fsXfFL/goB+1t8F/2XfhXoOtanffEPxpoNp4x1/S9KvdTsPh18Nl1exj8dfEjxNJaRsmneHvCOhTXOoXFzdy28d3eix0e0kk1TVLC2n/ANya3t4bWCC1tokgt7aGO3t4IlCRwwwoscUUaDhUjjVURRwqgAcCgD/NB/4PYvA8Gmf8FAf2W/iHF5SSeMf2Q7LwvcohUSPN4E+MXxP1BbqZB826S28dW9skrj547JY1JEBC/wBnP/Bvz/yhm/4J9f8AZDIf/Ut8UV/DH/weRfHvQ/ih/wAFSPB/wn8P3treL+zh+zb4E8GeK1gnE8ll478c6/4r+KF/Yz7GKQtH4L8U+AJvII86OSeYyth0ji/uc/4N+f8AlDN/wT6/7IZD/wCpb4ooA/Av/g96/wCTXP2Hf+y+/Eb/ANV3a19s/wDBnn8MtG8Ff8Eik8aWVkkWr/GL9pP4xeMdbvzta4vP+Edi8LfDTTYPMxvSzsrbwQ7W9ruMcVzd39yiq97MW+Jv+D3r/k1z9h3/ALL78Rv/AFXdrX0f/wAGZvx50Dx//wAE0fiX8DkvIh4w/Z9/aP8AFbalpX2hJZ4/BnxX0LQ/FnhPW2hBEttBqfiOx+IelQoyGOSXw5czRyu0ksUAB/RP+3d+wp8Cf+Ci/wAAdQ/Zp/aOTxpcfC3VvFPhrxdqlh4G8VT+ENV1DUvCdxPe6Nb3WqW9rdySabDfyx38tl5YWW7s7KUuPIAb8Rf+IQn/AII4f9Cl+0L/AOH11X/5S1+mH/Bab4Rftb/GT/gnP8eNE/YV+IPxU+Hn7VHhaHwx8Q/hbd/B3x5r3w78a+KZPB3iXTtR8X+BbHW/Dup6Tf3k/irwGfFFjo+gvdrb6x4oHh+2dfM8qSP/ACg9R/4K6f8ABW3R9QvtJ1b/AIKK/t26Xqul3lzp2p6ZqP7SvxpstQ07ULKZ7a8sb6zufFcVzaXlpcRSW9zbXEcc0E0bxSojoygA/wBhn9iD9ir4J/8ABPr9nbwp+y7+zzF4ttvhP4K1XxVq/h2x8aeJZvFesWNx4z8Rah4q1yEavcW9rI9nLrmq6hewW5ixA11KAxDcfzqf8Hnnh2y1b/glR8Ltamih+3eFf21fhXfWVyY1NwsWp/Cf47aLeWsc2N6Q3H2+3uJ4gwjlksbZ3DPDEV/gJh/4K/8A/BWO4mit7f8A4KPftyzzzyJDBBD+038ZZZpppWCRxRRp4uZ5JJHZUREUs7EKoJIFfQ/7dvhL/gtvZ/sd/CL4x/8ABRT4pfta3/7N3xm+Ja2Pwu8BftMfGrxxr2rav4t0Dw1qer6b4yl+D3jXxFf674btf7EutZTw94h8Q6HpF3fWl1cXGlRzaTqdre3oB+K9Ff0e/wDBHD/g3b8e/wDBX79nv4jfH/wp+1B4Q+B9j8PPjLqfweuPDXiH4Zaz41u9Uu9N8EeCPGja5DqWm+L/AA9DbW8sPjWGwWxe0mkSTT5ZzcMs6xxfT/8AwUR/4NQvid/wT5/Yy+OP7Ymu/tm+A/ibpPwT0fw1q954G0n4O+IPDWo+IE8R+OvC3geOC21u88eatbWDWs3iePUHeXTrkSxWj26qjyrKgB/JHRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFf633/BqF/wAoSP2bf+x8/aJ/9Xr47r/JBr2zwZ+0t+0b8OPD9p4S+Hnx/wDjZ4C8K2El1NY+GfBnxV8d+F/D9lNfXMl5ey2mjaHr1jp1vJeXc011dPDbI1xcyyTyl5XZiAf6Pv8Awet/8oyf2df+z7fAP/rP/wC0jX+YtXrnj/8AaA+PPxY0i10D4p/G34ufErQbHUY9YstE8f8AxJ8ZeMtIs9Xhtruyh1S103xFrOo2dvqMVnf31pHfQwpcx215dwLKIriZH8joA/uq/wCDOP8A4Kg/8IV8QPGv/BMH4t+IvL8M/E241r4r/swXOp3WIdK+Iunad9s+J3wxspJmcx2/jTw5po8d+HrCNrWwtdd8LeMSi3Os+M4Uk/0Tq/wH/D3iLxB4S1zS/E3hTXdY8M+JNDvYNS0TxB4e1O90XXNH1G1cSW1/perabPbX+n3tvIA8F1aXEM8TgNHIrDNe/f8ADaH7Yn/R2H7S3/h9vij/APNTQB+wv/B1J/ynH/a9/wCwF+zd/wCsxfB+vvz/AINif+C9fgX9hK51P9hr9sXxI/h39mP4heLpvE/wl+LF5HJc6Z8DviN4jktLXxBo/jN1Z59P+FHjWWC31SXWrWGS18C+LhqGtava/wBgeKvEWv8Ahr+RDxl438afEXxDfeLviD4v8UeOvFmpraJqXifxlr+q+J/EOoJYWcGn2K32ta3d32pXa2Vha21jaLcXMgt7O3gtoQkMMaLy9AH+9ZqWm/B/9oz4U3mlanbfDz43/BP4seFpbS8tZh4e+Ifw1+Ifg3XbcpIjbTq3hvxP4f1S2f5XRryxuYyHjZsKw+JP2ev+CPX/AATH/ZU+KkXxu+AH7GHwY+HfxWtLm4vNH8a2mkalrmq+F7q7tXsrm58FL4o1XXLPwPPLZyzWjS+ELXRH+zXF1ACI7q4WX/Hj/Z0/b1/bW/ZGDwfsy/tU/Hn4I6ZLNNcXXhz4e/E3xVoXhC/uJzmW41PwZBqR8KapcM3zifUNGuZUk/eI6yfNX2N4h/4L5/8ABZDxPpLaLqX/AAUK/aDtrNraS0M3h7XdH8I6t5UisrOuv+FNE0XXVuQGJjvV1IXkTBXinR0VgAf6yH7fX/BSH9kn/gmv8HdW+MP7UXxO0nwykdhdT+DPhvpl5p2o/Ff4qatD+7g8P/DjwO99a6jrt3PdvDbXmrSmy8MeHo5v7R8Ua7oulRT30f8Ajuf8FIP28/in/wAFKP2wPiv+1p8V4YdI1Hx1qFtpvg7wXY3Ml3pPw5+G3hyH+zPBHgXS55Eh+0jR9JRZ9Z1Rbaz/AOEg8T3+veJJbK0uNYmt4/k/4ifE34k/F7xVqHjr4s/EHxx8UPG+rbP7U8Y/ETxZr3jXxVqXllin9oeIfEt/qer3mwu5T7ReSbSzYxuOeHoAKKKKAP60f+DMz/lLL4//AOzLPi//AOrR+BNf6k9f4HngP4lfEX4V61L4k+GHj7xr8OPEU1hPpU2v+A/FWu+ENal0u6mtri502XVfD1/p19JYXFxZ2k89m85t5ZrW2lkjZ4ImX2H/AIbQ/bE/6Ow/aW/8Pt8Uf/mpoA8G8Uf8jN4i/wCw7q//AKcLiv8AXB/4NW/+UG/7IH/Yc/aS/wDWn/jDX+RG7vI7SSMzyOzO7uxZ3diWZmZiWZmYksxJJJJJzXtvg39pn9pD4deHbHwh8Pv2gvjf4F8J6W12+m+GPBvxX8eeGPDunPf3k+oXzWOi6Jr1jpto17f3VzfXbW9tGbi8uJ7mYvNNI7AH+lT/AMHn/wDyii+Ff/Z8Xwk/9U3+0RX+eV/wTE/5SU/8E9P+z4/2Tf8A1ffgCvnzx7+0L8ffirosPhv4ofHH4wfEjw7bajBq9voPj34l+NPGGiwatbQXVrbapDpfiHWtRsYtRt7W+vbaC9SBbmKC8uoY5VjuJVfzDSNX1bw/q2l69oOqajomu6JqNlq+i61pF7c6bq2katptzFe6dqml6jZSw3lhqNheQw3dle2k0Vza3MUU8EscsaOAD/fnr/Ii/wCDqT/lOP8Ate/9gL9m7/1mL4P1+PX/AA2h+2J/0dh+0t/4fb4o/wDzU14j4y8b+NPiL4hvvF3xB8X+KPHXizU1tE1LxP4y1/VfE/iHUEsLODT7Fb7Wtbu77UrtbKwtbaxtFuLmQW9nbwW0ISGGNFAP7lP+DYD/AIOBfhb8DPh/oH/BOD9uHx1p/wAP/BWjaxe/8Mv/AB18V3cNh4N8N2niXVL7WdX+EfxP8SXk8dv4Y0eLxBqF1qvgHxhrDLoOnQ6rqXhfX9V0TStM8LK398fxQ+FPwV/ac+FOr/Dj4t+B/APxt+DfxF0iyk1Twx4r0rSPGfgrxTpMxt9U0nUI4LlLzT7tY5Us9W0TV7J/PtLqKz1TS7uG5ht7hP8ABgr7Y/Z2/wCCkf7fX7JemR6B+zh+2D+0J8IvC0IcQ+C/CnxP8TxeA4meVp3mj8B3t/eeD0uTK8j/AGpdEFz++nAl2zyhwD/YZ/ZY/wCCUv8AwTq/Yn8b6h8S/wBl39kj4TfCX4iajbalYv460vTtT1zxbYafrBX+1dM0HxD4t1TxBqvhrStQRFhu9L8O3Wl6fPbKLWS2a2HlV5//AMFPv+CuX7I//BK74Pav46+OPjbStb+Kd9pNxL8Kv2ePDWsadP8AFX4na3JFcJpYt9EEs134a8ErewlfEXxD1y0i8PaJaxyw2zax4iuNH8Oav/ld+M/+C8X/AAWH8e6RcaHr3/BQv9o21sLq0NlM/hHxZbfD7UjAVCts1vwDpvhnWoZ2UYe6hv47pwW3THc2fy18W+MPF3j/AMR6r4w8d+KfEfjXxbrtz9s1vxT4t1vU/EniPWbvYkf2rVdb1i6vNT1C58uNI/Pu7qaXYiLu2qAAD2j9rb9qL4q/tp/tJfGH9qX42anBqnxL+NHjG98WeIDYxyw6VpUJht9N0DwxoNvPNcz2vhzwh4bsNI8LeHLW4ubq4ttD0ewhuLq6nSS4k/1uv+Dcr/lCh+wL/wBk08Y/+rh+I9f43Ve7eFf2pP2mvAvh/TfCfgn9ov47eDvC2ixSW+j+GvCvxd+IHh7w/pMEs8t1LDpujaR4htNOsYpLmee4kjtbaJHnmlmZTJI7EA/0K/8Ag9v/AOTJ/wBjz/s6XV//AFU3i2v816vV/iD8efjl8WtPsdJ+Knxm+K/xM0rS7xtR0zTPiD8RPF/jPT9O1BoHtmvrGz8R6xqVtaXjW0slu11bxxzmCR4i/luynyigD9C/+CX3/BRb4t/8Euv2vPAn7U/wotYPEEOmW934R+J3w8v7yaw0n4ofCnxDc2EvirwXf3sCSvp13JLpum674a1n7PeR6F4u0PQNYudO1azsrnSb7/Xb/wCCfn/BVD9ij/gpf8OdN8c/sw/GDQtY8RNpy3ni34L+Jr7TPD/xu+HVyixC8tPGHw8k1C41RLO1uJPs0HirQ21rwVrEkcp0LxJqSRSmP/EZrZ8PeI/EPhHWtO8SeFNe1nwx4i0i4W70nX/D2qX2i61pd0qsq3Onarps9tfWVwqsyrNbTxSBWYBsE0Af7iH7SP8AwTp/YS/a/wBVg8Q/tNfslfAb40eKLazGn2/jHxr8OvD1/wCNodPVVSOwj8aQ2lt4qWxhVF+z2Y1f7PbkboI42JJ4X4E/8EnP+Caf7M/iCw8XfA/9h/8AZv8AAvjHSmV9J8Zw/DLw/rvjPSJVdXE2keLfFFtrfiPSp9yqTPp+p28zBQGcqAK/ySvAn/BaX/grN8NtOstI8K/8FDf2sE03ToxDY2fiH4w+KvGsNrAvEdvCPGt74gKW0K4SC3B8iCMLFDGkaqow/iV/wWC/4Km/F3S7jQ/H3/BQP9rPVtEvNy32i6f8bPHHhfSNQjcENb6jpvhTVtEstQtTnP2S8gntgwVxEGVSAD+8X/g8t+NXwe/4d0+BfgYPin8PX+NVz+1N8LvGUXwki8Y+H5fiT/wiGk+Avi1aal4pk8ExX7+I4PDtnd6xpNpPrU+nR6al1qVjb/afOuoUf/Mcq1fX17qd5dajqV5dahqF9cTXd7fX1xLd3l5dXEjSz3N1dTvJPcXE8rNJNNM7ySSMzuzMSaq0AFf3rf8ABkp8ZPhF4Iuf28/hp40+KPw88I/ET4l67+zPcfDnwL4n8Z+HdA8X+PofD1l8c4NffwX4c1XUbTVvFI0SbXNFj1YaHaXzac2raaLsQ/bbbzP4KaVWZGVlYqykMrKSGVgchlIwQQRkEcg8igD/AG3v2of+CRn/AATT/bN1658W/tI/safBb4g+NL5pn1Px5a6DdeBPiBrLzkF313x78OdQ8I+MNddDlrdtX1q9a1Z5WtTC00pfm/2Uf+CMP/BL79iLxtpfxL/Zn/Y7+G3gH4j6Ct8ugfEDVr/xr8TPG3h5tSt5bO+n8PeKvit4p8b65oN1dWU9zYS3mkX1ldHT7q7sFmFndXEEn+Rx8MP+Cpv/AAUp+DFpp+mfDH9vb9rzwjomlQwW2m+GrH9oL4oXPhOytrZFjt7e38J6j4lvfDccEESLFFEul+WkSiJVEY216l47/wCC2n/BW74j6Vc6J4o/4KG/tUjTLyPybuDwz8Vdf8CPcwbSj28114Fn8OXclvMhKXNu05hukZkuElViCAf6q/8AwVE/4LEfsff8Er/hTrnib4y+OtG8SfGi60O5ufhd+zd4X1ixu/il8QtaliKaQ11pUL3E/gvwSbpkl1rx74kt7XR7PT4LyPR08QeIf7O8O6l/jlftGfHr4hftSfHr4wftG/Fe/h1L4jfGz4ieK/iV4vntElh06HWPFmr3WrTado9rNNcSWOhaQlxHpOg6aZ5V03RrKxsI3aO3SvLdd17XPFGs6n4i8Tazq3iLxBrV5PqOsa7ruo3mr6zq2oXLmS5vtT1PUJri9v7y4kJee6up5Z5XJaR2Yk1k0Af7Nv8AwRN/4Ke/A/8A4KTfsWfCHxB4R8a6Efj18N/hz4P8GftD/CafVbZfG3g3x14a0ey8P6p4lk0KadtUuPAnje+sZPEHg7xPEl1pt1Z6gdFur9fEuja7pth99/tKfsffss/tjeFtM8F/tTfAD4U/Hrw5oV1eX3h2y+Jng3R/E1x4Yv8AUYIrXUNQ8K6re2zav4X1C+toYLe8vtAv9Ou7qCGGKeZ0ijVf8L7wd428Z/DrxFp3i/4feLvE/gXxbpEjy6T4o8Ha/qvhjxFpcskbRSSadreiXdjqdlI8TvG721zEzRsyMSrEH7s0H/grv/wVR8M6OdB0X/gox+2xa6VhVitpP2mPi9fPaRoCFi0+6v8AxZdXmnQAE/uLC4toc/MU3AGgD+3n/g6M/YN/Yu/Y7/4JDaSn7L37L3wQ+B95d/tZfBy01DXvAHw98PaP4t1W0k8H/FPfa6z4zWyk8WazbEwQnyNV1q8iDRqwQHmv2x/4NwP+UJn7A/8A2Tzx5/6uz4m1/kg/Gj9rD9qX9pBoX/aG/aS+Pfx2NtPHc2o+MXxf+IPxLS1uIo3hhmtY/GfiHWo7aSGGSSKFoFjMUTvHHtRipreFf2o/2mvAvh/TfCfgj9or47eDfCujRSQaP4Z8K/Fz4geHvD+lQTXE13NDpujaR4gs9OsYpbq4nuZI7W2iR7ieaZgZJHZgD/Qz/wCD23/kx39kL/s629/9VD44r/NWr1j4gfHr45/FnTrHSPip8Z/ix8TNJ0y9OpabpfxA+Ivi/wAZ6dp+omCS1N/Y2XiPWNStrS9NtNLbm6gijnMEskRk8t2U+T0AfoP/AMEwv+Cifxc/4Je/teeAv2qPhNbQa+ukQXnhP4l/D3ULyaw0j4ofCrxDcWL+K/BOo3sCSyafcTvp2na54c1j7PeJoXi7Q/D+tT6dqtrYT6Xe/wCu5/wT6/4Kp/sUf8FMPh1pnjf9mP4v6FqviVtOW88W/BXxPf6X4f8Ajd8O7lFiF5aeLfh7JqFxqYsbaeT7PB4r0Jtb8FavIkh0XxHqAhn8r/EcrZ8P+IvEHhLWtO8SeFdd1nwz4i0i4W70nXvD+p3uja1pd2gZVutO1TTp7a+srhVZlWa2nikAZgGwTQB/uJftI/8ABOv9hP8AbA1W38QftN/sl/Af40+J7W0Gn23jDxt8OvD1/wCNoNPVVVNPi8aRWdv4qSxiCL5Fmuri2gI3QxI2TXA/An/gk1/wTR/Zo8QWHi74I/sPfs3eB/GGkssmkeMovhl4f17xlo8qurifSPFvim21zxFpVxuVc3Gn6lbTMAFaQqMV/kl+A/8AgtJ/wVl+G2m2WkeFP+Chv7WEemadGIbGy8QfGHxX41htYE4jtoV8a33iApbQrhILYHyIIgsUMaRqqjF+JX/BYP8A4KnfF3SrnQvH3/BQP9rPVdEvdy32jad8bPG/hfSdQjcENb6jpvhPVtDs7+1Oc/ZLyGe23BXEW9VYAH95f/B5R8avg8v/AATl8G/Aw/FP4et8ab39p/4WeMbf4SJ4x8PyfEl/CWk+C/ilbal4obwTHft4ji8O2Vzq2l21xrU2nR6bHc6jZW5ufOuoUf1L/g1f/wCCrfwf/af/AGJPhn+xL4y8WeHfCn7UP7K/h/8A4V5o/gfVtbtbTV/iv8HdCjnuvBfjbwLp1/Ol3rLeFdAI8JeNdI0o6hcaC/h6y8Q3aWOk+JdOt7b/ACzr6/vtUvbvUtTvLvUdRv7ia7vr++uJru9vbu4kaW4uru6uHknuLieVmkmmmkeSWRmd2ZiTWj4Z8T+JfBXiHRfF3g3xDrnhLxX4b1K01nw94n8M6tf6D4h0HV7CZbix1XRda0q4tdS0vUrK4RJ7S+sbmC6tpkWWGVHUMAD/AHTP2o/2QP2Zf21/hqfhD+1V8FvBHxv+Hiatb6/ZaB4z0+SZ9F1+1trqyt9f8N61YXFhr/hfXY7G+v8ATxrPh3VdM1I6ff31g10bO8uYJfzH8IfCb/giZ/wRn+MXwT+Hnwp+EnwZ+Cf7S/7VPxC8FfBP4TeGvDf9pfEX9oTxO3xN8X2PhpbxdY8b+IvE/jzwx8KrHULgXnizX7zW9J8LNDpS6XarrPiJdD0C7/zD7L/gtd/wVv0/wvF4Ptv+Ci/7Xf8AZEIZY7i5+NXjK98SKrII9p8Z3uo3HjBlRVAiVtdZYT80QRiSfz91b4rfFHX/AIgt8Wtd+JPj7Wviq+tW/iR/ibq3jHxFqPxBfxFaSxz2uvN4zvNRm8RtrVtPFFNb6odSN9DLHHJHOropAB/vdV/jd/8ABxv/AMpr/wBvr/spXgz/ANU78N6/OH/htD9sT/o7D9pb/wAPt8Uf/mprwnxV4t8VeOvEGpeLPG/ibxB4x8U6zLHPrHiXxVrOo+IfEGrTxQRWsU2pazq9zeajfSx2sEFtHJdXMrpBDFCpEcaKAD/YN/4Nrf8AlCH+wX/2JnxT/wDWgfi1X5F/8HtH/JhH7J//AGd7F/6pn4nV/ndeE/2of2mPAXh7TfCXgb9on46eDPCmjRzRaR4Z8J/Fvx/4d8PaVFcXM97cR6bouj+ILPTbGOe8ubm7mS1tollubiedw0ssjtifED49/HT4s6bZaN8VPjT8WfiXo+m339p6dpXxA+I3jDxlpthqQt5rX+0LKx8R6zqVra332W4ntvtcEUdx9nnmh8zy5XVgD7p/4In/APKXH/gnN/2d58FP/Uy02v8Aa2r/AAH/AA/4h1/wnreleJvCuuax4a8SaFfW+p6J4g8P6ne6Nrej6laSCW11DStV06e2v9PvraVVkt7u0uIZ4ZAHjkVgDXv3/DaH7Yn/AEdh+0t/4fb4o/8AzU0AfpN/wcgf8ps/2+P+yheAf/VJfDGv6g/+DHX/AJJP/wAFEP8Asof7Ov8A6jfxbr/Ph8VeLfFfjvxBqXizxv4m8Q+MvFWsyxT6x4m8Va1qXiHxBqs0NvDaQzalrOr3N5qN9LFa28FtFJdXMrx28EMKkRxIq9f8PPjf8afhHBqlt8KPi98UPhjba5Laz61b/Dzx/wCK/BcGrz2KTx2U2qReG9W02PUJbOO5uUtZLtZnt0uJ1iKCWQMAf7M//Ba//lEd/wAFGv8As0L42/8AqF6lX8P/APwZf/GT4RfC79rj9q/QfiZ8Ufh58PNa+I/wY8B6F8PdL8c+M/DvhO/8c67YePJ7u80Pwhba9qNhL4k1q3tJo7uTSdHW81BbXdc/Z/IjkdP5RvEH7V/7UvizRNV8M+Kf2lfj94l8Oa7Y3Gma34f8QfGP4iazomsabdxmK60/VdK1HxHc2GoWNzEzR3FpdwTW80bFJI2UkV4DQB/uC/tT/wDBLz/gnv8AtsX41v8Aah/ZG+DHxY8UhVjbxzqPhhfD/wARZbeOEW8VncfEfwdP4d8dXNjBEFFvYXHiGSyt2VZIYEkVXHh/7Nn/AAQw/wCCTf7I/j/QPin8B/2Kfhp4b+IvhPWU8ReFPGPinWPiD8WNc8K6/C7S2eteGbz4u+MvHTeH9V0yZhPpGoaQLO70i5jhutMmtbmCKVP8kP4S/wDBSn/gob8CNM0vQvg5+3H+1j8OfDeiwRWuleE/C3x/+KOm+DrG1g4htbfwfH4nPhlbaEEiK3/sowxgsEQBiD714s/4Lif8FefGmkzaJrX/AAUR/amgsJ7dbSU+Gvidq/gq/eAKFI/tfwadA1cO6jbNMt8JpwXE0j733AH+s3/wUL/4Kg/se/8ABMr4T6n8S/2mvihpGk63JpV7eeAvg9od9p+qfGD4qanbxuttpPgjwULuK/nt57wRWV94p1T+zfB3h954pfEGvabE8Zk/xx/27f2wfiJ+3x+1x8c/2ufijDb2Hiz40eM5deGg2VxPd6f4S8M6bYWXh3wR4L026uAs11YeDvBuj6F4btryWOKa+TTPt08ST3Mq183eL/GfjD4heI9V8Y+PvFfiXxx4u125N5rnirxfruqeJfEes3jKFa61XXNaur3U9RuWVVUz3d1NKVUAtgCuaoAKKKKAP9jP/gg9/wAFW/g//wAFLP2LvhdHB4s8Pab+098H/AugeBfj98I5dbtW8W2Wr+ELGx8ORfE7TNGuZxq994C+IMUNjr1hrUUF1YaTrOp3/g+91K51bRZ5rj78/bC/4J7/ALF37fmgeHPDf7YH7PPgT44WPg6fUJ/CN94ij1bSvE/hU6uLQaxD4b8aeFNU0DxhodlrB0/T31fT9M121sdUl07Tpb+3uJbCzeH/ABCfhv8AFD4l/BvxjpPxE+EPxD8c/Cv4gaA88mheOfhv4t1/wP4x0V7mCS1uX0nxN4Y1DS9a05ri2llt52s72EywSyQyFo3ZT+gWtf8ABaf/AIK0+IfCq+DNV/4KJftbS6ELGbTZfs3xn8YabrN3Z3CPHPFqHijTdQs/E+pNLHI8ck2oaxcztGxQy7eKAP8AUu/Z4sP+CQf/AATa/ag+G3/BPz9lHwD8HfhV+1D+0XaeI7i5+H/wws/+Er+J1v4T+HXw98SfEuTXfjf441jVta8Z6L4bfSfD9zF4P0/xh4gutR17W9WivPD2h3WnL4i1zS/2Pr/A/wBC+JvxJ8L+NG+JHhn4heOPDvxEe51K8bx7oXizXtI8aNd6zBcW2r3TeKdPv7fXDc6rbXl3b6lOb4y30F1cRXTSxzyq3r3/AA2h+2J/0dh+0t/4fb4o/wDzU0AdP/wUG/5P3/be/wCzvf2lP/VzeNKx/wBiL9p3xL+xf+13+zp+1R4T+0y6p8Dfiz4P8eXOnWkohl8QeG9N1OKLxl4TeUsmy18YeELjXfC96fMjJstXuAJIyQ6/NGp6nqWt6lqGs6zqF9q+savfXep6rqup3dxf6lqepX9xJdX2oahfXUkt1e317dSy3N3d3Mstxc3Esk00jyOzGjQB/vo+CfGXhr4i+DfCXxB8Gatba94P8deGNB8ZeE9dsmL2eteGvE+lWmt6Fq1oxALW2o6XfWt5AxAJimQkDOK/OH/gs/8Atnr+wR/wTR/aq/aH07VBpXj2w+Hl54B+EMscwivf+FufFGWPwJ4E1DT48q91L4W1XXP+E3vbeNlc6N4Y1OXfGsTOv+Ofon7Wv7VfhrRtJ8O+HP2mv2g9A8P6Dptlo+h6Fonxn+I+laNo2kabbR2enaVpOmWPiSCy07TdPs4YbWysbOCG1tbaKOCCKOJFUc748/aH+P8A8U9Fj8NfE745fGH4j+HYb+DVYdA8efEzxr4v0WLVLWG4t7bUo9K8Qa3qNil/bwXl3BBeLALiGG6uI45FSeVWAPH2ZmYsxLMxLMzElmYnJJJ5JJ5JPJPJr+uP/g0y/wCCqnwm/Ye/aO+LH7MP7RfibQvh/wDCH9rVPB934a+KfirV4NG8LfD74v8Aw/h8R2+iaf4o1K/mt9K0Xw38R9G8SXejXfiPUZ0t9L8SaD4Otrp7XStT1TUrD+RuigD/AH2tc0Twz458Mav4b8R6Tofi/wAG+MNCv9E13QtZsbDXvDXifw1r+ny2Op6Tqum3sV1pms6HrWl3c9nfWN3Dc2Oo2FzLBPFNbzMrfiH47/4JLf8ABA79g6HxB+2R8Vf2WP2Y/gvofgW7i8S3/jj4oan4k1nwFoesW1xLqWlx+Gfh1408UeIPBH/CRzX0e3wv4b8IeDJdc1HUI7PTfDmlXN4llaj/AC4fgj/wVZ/4KUfs4eFrLwL8E/25P2m/AXgXStMj0bQ/BGn/ABb8W6h4M8OaXFGIobPwv4U1zUdU0DwxFDGFSH+wNP014lVRGy7Vx4H+0B+1p+1B+1drll4j/aY/aE+Mnx51nS42h0e7+LHxF8VeOV0SBxiS30K18QanfWeh28hy0lvpNvZwyOzyOjO7sQD/AHDv2dvjn4D/AGm/gT8JP2hvhd/ax+HHxo8AeGfiR4FfXtOXR9Yl8KeK9Mg1bQptR0pbi6/s26n065t5pLJp3ktt/ky7JUdF/h+/4Plv+QJ/wTL/AOwr+2B/6SfsyV/DboH7WP7U3hXRNK8NeF/2lvj/AOG/DmhWFtpWiaBoHxk+Iuj6Jo2mWUSwWenaVpWneI7ex0+wtIESG2s7SCG3giRY4o0RQBxvxE+NXxk+Ly6QnxY+LXxN+J6aA182gr8RPHninxquiNqYtBqTaQviXVdTGmtqI0+wF8bMQm7FlaC48z7NDsAP7g/+DG//AJHn/gpF/wBin+y1/wCnj491/aN/wU5/5Rsf8FCv+zHf2sv/AFQvj6v8TH4efGT4vfCKTVZvhP8AFT4kfDCbXks4tcl+HnjjxP4Kk1mPTmuW0+PVX8N6ppjaili15eNZpeGZbVru5MAQzy7u91f9rn9q7xBpOqaDr37Tv7Qut6HrenXuka1our/Gn4kalpOr6TqVtLZ6jpeqadeeJZrO/wBOv7Oaa0vbK7hltrq2llgnikikZSAN/ZJ/5Or/AGZf+zg/gx/6sfw3X+7rX+AjZXt7pl7aajp13dafqGn3Vve2F/ZXEtre2V7aypPa3dpdQPHPbXVtPGk1vcQuksMqJJG6uoI+jP8AhtD9sT/o7D9pb/w+3xR/+amgD91f+DuP/lM58Tv+yJfAT/1Clr+4H/g3d/4Kt/B//goN+w38IPhtdeLPDui/tU/s5/Drwz8Kfi58KrzW7VfFmtaX8O9F0nwtoPxj8P6TdzrqmteEvGukQaRfa5qdnbSWnhvxrdax4bvHjii0e81X/JB8beP/AB38S9em8VfEfxt4u+IHii4t7a0uPEnjbxJrPivXp7Wyj8qztptY129v9Qlt7SL91bQvcNHBH8kSovFO8A/EPx/8KfF2i/ED4XeOPGHw28eeG7l7zw7428A+Jta8HeLtAu5IJbaS60XxJ4evdO1nSrl7aea3eexvYJWgmliLGOR1IB/uIftd/sGfsfft6eEdC8D/ALXnwC8C/HHQPC19eal4VPii31Gy1/wpealHaxarL4W8X+HNQ0Txd4bXWI7Cwj1mHRNcsINXTT9PXUoroWNqIfhj4HeGv+COf/BLT9pb4RfsUfsz/Dn4OfCL9qj9qe41LQNJ8B/Dy3m8Z/GS48K+E/BPif4lz678WPGXiLWdf8c+Hvh+um+FL1tDHi3xDt8Ra/cWx8OaRqptdYv9K/y5b7/gtZ/wVt1HwtH4Ou/+Ci37XLaNHazWZli+NPjG18QzW86GOVbvxha6jD4uvZGRionvNcnnTOUkU81+fOn/ABO+JWk+Oj8UNK+IXjnTPiYb++1Q/ETT/Fmv2Xjo6nqlvcWmp6ifFttqEevm/wBRtby7tr68OofaLu3uriG4kkjnlVgD/e/r/EL/AOCtH/KVD/gpV/2f1+2D/wCtB/EKvEf+G0P2xP8Ao7D9pb/w+3xR/wDmpr581rW9Z8S6zq3iLxHq2p6/4g17Ur7Wdd13Wr+61XWda1jVLqW91PVtW1O+lnvdR1LUb2ea7vr68nmuru6mluLiWSWR3IB/tlf8EfP+UUf/AATb/wCzHP2Xf/VNeD69r/aT+EP7EX7RGsfD/wCCX7Wvw7/Zl+MXibX7fxXr/wAJvhl8d/Dvw08ZeK9St9E/sFPHGufDPwz42tr7XnGlLeeGY/FWq+EbUNZR3WjR6tcRxz2at/icaH+1n+1T4Y0XSvDnhr9pj9oHw94e0HTrPSND0HQ/jN8RtJ0XRtJ063jtdP0vStLsPElvY6dp1jaxRW1nZWcENtbW8ccMMSRoqjkPGPxx+NfxD1jw94i8f/GD4peOfEHhGXz/AAprvjH4geLPE2seGJjcwXnneHtT1rV7290WX7Xa2t15mmz2z/abaCfPmwxsoB/uS/Ab9k79l39lrTb/AEj9mv8AZ1+CPwDsNWitYdai+EHwu8F/DyTXUsWlazbX7nwro2l3Wuy27zzvFPq897Osk0ziTfK7N8I/8Fav+Cw37Mf/AASg+B+teL/iR4k0Txd8e9d0O6b4J/s56VrFo3jr4ga7OJ7XS9W1jT4JXvvCvwz07UInl8T+ONSgisorWzu9L0Fda8UzaboV7/k96L/wVl/4Ki+HNAk8L6J/wUU/bb03Q5FSNLK3/ag+M4NnEgIEOmXb+MmvdJhIY7odMubSJzy6MQDXw54s8X+LPHviLVfF/jrxR4i8aeLNdunvtc8UeLNb1LxH4i1m9kAEl5qut6xc3mpajdOAA9xd3M0rADLnFAHcfHn43/Ej9pX40fFD4/8Axg1+TxR8T/jB438Q/EDxvrjxrbx3mv8AiTUJtRvEsrOM+Rp2lWZmWw0fSrUJZ6TpVtZ6bZRxWtrDGv8AsJ/8G/P/AChm/wCCfX/ZDIf/AFLfFFf4yVe8+Gf2qP2nvBWg6Z4V8G/tHfHnwl4Y0S3Fno3hzwz8X/iDoOg6RaB3lFrpmj6V4htNPsLcSSSSCC1t4ot7u+3czEgH+gB/we9f8mufsO/9l9+I3/qu7Wv47f8AgjZ/wVW+I/8AwSU/a40v45+HdKufGvwo8Z6bB4B/aA+F0VykEnjX4cz6pa6g194fkuZYrGy8feDr2Aa34M1O7aOBpjqfh2+ubbRPEusufzs+IPx1+N3xbs9O074q/GP4qfE3T9IuZb3SbH4g/ELxd4zs9LvJ4hBPd6dbeI9X1KCyuZoAIZZ7ZIpZIgI3coMV5XQB/uRfsS/8FD/2Pf8Agob8NNO+J37KXxr8JfEazm023v8AxF4LXUbTTfih8PbiYrFNpPxE+Hd1cDxN4Tv7a7LWi3F7ZNourbVv/DurazpFzZajc5P7RX/BML/gnn+1p4juPGf7Rn7G/wCz98VvG95Atre+O/EPw60KHx3fW8Y2ww3/AI20m303xTfR265Fqt3q8wtAzi28oO+7/EZ8H+NfGXw88Q2Hi3wB4t8TeB/FelO0ml+JvB+var4Z8Q6bI6lGksNa0W7stSs3ZCVZre5jYqSpJBxX6R+D/wDgtx/wVy8C6fbaZoP/AAUR/atlsrOAW1tH4l+LPiLxtLHAqlUj+1eNLjxBdMI0wkRedmhRUSIoqIFAP9cT9nv/AIJh/wDBPL9lPXLbxV+z1+xl+zv8LvGFkI1sfHGg/DHw3P47sVjJZRY+ONXstS8WWQZiHlFrrEQndI3m8xooyn8nv/B638a/g9r/AOz/APsp/BbQfin8Pdc+L/hb4/a94q8U/C/RvGOgap4+8L+G5PhzrWlQa54k8J2N/PrmgaXdaldQ2NneatZWcN7cmSK0eZ4JxH/F78Vf+Cs3/BTj43aVPoHxP/b2/av8T+HrtZEvfDh+N/j3RvDmoJKu149S0Dw/rWlaPqUe0sqR31lcJEryCJUEj7vz6lllnlkmmkkmmmkeWWWV2klllkYvJJJI5LPI7Es7sSzMSSSSTQB/pp/8GT//ACjh/aY/7Pb8U/8AqiPgPX6sf8HJ/wDyhF/b0/7Er4X/APq/vhPX+RX8P/j98d/hPpV3oXws+Nfxb+Gmh6hqD6tf6N8P/iR4x8G6Ve6rJbW1nJqd3p3h3WdNtLnUJLSzs7V72aF7lra1toGkMUESrteK/wBqL9pjx54f1Lwl45/aJ+OvjPwrrMcMOr+GfFfxc8f+IvD+qxW9zDewRalour+ILzTb6OC8tre7hS6tpVjubeGdAssSOoB4VRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFAH//Z" + webUI["html/js/menu_ts.js"] = "Y2xhc3MgTWFpbk1lbnUgew0KICAgIGNvbnN0cnVjdG9yKCkgew0KICAgICAgICB0aGlzLkRvY3VtZW50SUQgPSAibWFpbi1tZW51IjsNCiAgICAgICAgdGhpcy5IVE1MVGFnID0gIkxJIjsNCiAgICAgICAgdGhpcy5JbWFnZVBhdGggPSAiaW1nLyI7DQogICAgfQ0KICAgIGNyZWF0ZUlNRyhzcmMpIHsNCiAgICAgICAgbGV0IGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJJTUciKTsNCiAgICAgICAgZWxlbWVudC5zZXRBdHRyaWJ1dGUoInNyYyIsIHRoaXMuSW1hZ2VQYXRoICsgc3JjKTsNCiAgICAgICAgcmV0dXJuIGVsZW1lbnQ7DQogICAgfQ0KICAgIGNyZWF0ZVZhbHVlKHZhbHVlKSB7DQogICAgICAgIGxldCBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiUCIpOw0KICAgICAgICBlbGVtZW50LmlubmVySFRNTCA9IHZhbHVlOw0KICAgICAgICByZXR1cm4gZWxlbWVudDsNCiAgICB9DQp9DQpjbGFzcyBNYWluTWVudUl0ZW0gZXh0ZW5kcyBNYWluTWVudSB7DQogICAgY29uc3RydWN0b3IobWVudUtleSwgdmFsdWUsIGltYWdlLCBoZWFkbGluZSkgew0KICAgICAgICBzdXBlcigpOw0KICAgICAgICB0aGlzLm1lbnVLZXkgPSBtZW51S2V5Ow0KICAgICAgICB0aGlzLnZhbHVlID0gdmFsdWU7DQogICAgICAgIHRoaXMuaW1nU3JjID0gaW1hZ2U7DQogICAgICAgIHRoaXMuaGVhZGxpbmUgPSBoZWFkbGluZTsNCiAgICB9DQogICAgY3JlYXRlSXRlbSgpIHsNCiAgICAgICAgbGV0IGl0ZW0gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJMSSIpOw0KICAgICAgICBpdGVtLnNldEF0dHJpYnV0ZSgib25jbGljayIsICJqYXZhc2NyaXB0OiBvcGVuVGhpc01lbnUodGhpcykiKTsNCiAgICAgICAgaXRlbS5zZXRBdHRyaWJ1dGUoImlkIiwgdGhpcy5pZCk7DQogICAgICAgIGxldCBpbWcgPSB0aGlzLmNyZWF0ZUlNRyh0aGlzLmltZ1NyYyk7DQogICAgICAgIGxldCB2YWx1ZSA9IHRoaXMuY3JlYXRlVmFsdWUodGhpcy52YWx1ZSk7DQogICAgICAgIGl0ZW0uYXBwZW5kQ2hpbGQoaW1nKTsNCiAgICAgICAgaXRlbS5hcHBlbmRDaGlsZCh2YWx1ZSk7DQogICAgICAgIGxldCBkb2MgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCh0aGlzLkRvY3VtZW50SUQpOw0KICAgICAgICBkb2MuYXBwZW5kQ2hpbGQoaXRlbSk7DQogICAgICAgIHN3aXRjaCAodGhpcy5tZW51S2V5KSB7DQogICAgICAgICAgICBjYXNlICJwbGF5bGlzdCI6DQogICAgICAgICAgICAgICAgdGhpcy50YWJsZUhlYWRlciA9IFsie3sucGxheWxpc3QudGFibGUucGxheWxpc3R9fSIsICJ7ey5wbGF5bGlzdC50YWJsZS50dW5lcn19IiwgInt7LnBsYXlsaXN0LnRhYmxlLmxhc3RVcGRhdGV9fSIsICJ7ey5wbGF5bGlzdC50YWJsZS5hdmFpbGFiaWxpdHl9fSAlIiwgInt7LnBsYXlsaXN0LnRhYmxlLnR5cGV9fSIsICJ7ey5wbGF5bGlzdC50YWJsZS5zdHJlYW1zfX0iLCAie3sucGxheWxpc3QudGFibGUuZ3JvdXBUaXRsZX19ICUiLCAie3sucGxheWxpc3QudGFibGUudHZnSUR9fSAlIiwgInt7LnBsYXlsaXN0LnRhYmxlLnVuaXF1ZUlEfX0gJSJdOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAieG1sdHYiOg0KICAgICAgICAgICAgICAgIHRoaXMudGFibGVIZWFkZXIgPSBbInt7LnhtbHR2LnRhYmxlLmd1aWRlfX0iLCAie3sueG1sdHYudGFibGUubGFzdFVwZGF0ZX19IiwgInt7LnhtbHR2LnRhYmxlLmF2YWlsYWJpbGl0eX19ICUiLCAie3sueG1sdHYudGFibGUuY2hhbm5lbHN9fSIsICJ7ey54bWx0di50YWJsZS5wcm9ncmFtc319Il07DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJmaWx0ZXIiOg0KICAgICAgICAgICAgICAgIHRoaXMudGFibGVIZWFkZXIgPSBbInt7LmZpbHRlci50YWJsZS5uYW1lfX0iLCAie3suZmlsdGVyLnRhYmxlLnR5cGV9fSIsICJ7ey5maWx0ZXIudGFibGUuZmlsdGVyfX0iXTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInVzZXJzIjoNCiAgICAgICAgICAgICAgICB0aGlzLnRhYmxlSGVhZGVyID0gWyJ7ey51c2Vycy50YWJsZS51c2VybmFtZX19IiwgInt7LnVzZXJzLnRhYmxlLnBhc3N3b3JkfX0iLCAie3sudXNlcnMudGFibGUud2VifX0iLCAie3sudXNlcnMudGFibGUucG1zfX0iLCAie3sudXNlcnMudGFibGUubTN1fX0iLCAie3sudXNlcnMudGFibGUueG1sfX0iLCAie3sudXNlcnMudGFibGUuYXBpfX0iXTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgIm1hcHBpbmciOg0KICAgICAgICAgICAgICAgIHRoaXMudGFibGVIZWFkZXIgPSBbIkJVTEsiLCAie3subWFwcGluZy50YWJsZS5jaE5vfX0iLCAie3subWFwcGluZy50YWJsZS5sb2dvfX0iLCAie3subWFwcGluZy50YWJsZS5jaGFubmVsTmFtZX19IiwgInt7Lm1hcHBpbmcudGFibGUucGxheWxpc3R9fSIsICJ7ey5tYXBwaW5nLnRhYmxlLmdyb3VwVGl0bGV9fSIsICJ7ey5tYXBwaW5nLnRhYmxlLnhtbHR2RmlsZX19IiwgInt7Lm1hcHBpbmcudGFibGUueG1sdHZJRH19IiwgInt7Lm1hcHBpbmcudGFibGUudGltZXNoaWZ0fX0iXTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgfQ0KICAgICAgICAvL2NvbnNvbGUubG9nKHRoaXMubWVudUtleSwgdGhpcy50YWJsZUhlYWRlcik7DQogICAgfQ0KfQ0KY2xhc3MgQ29udGVudCB7DQogICAgY29uc3RydWN0b3IoKSB7DQogICAgICAgIHRoaXMuRG9jdW1lbnRJRCA9ICJjb250ZW50IjsNCiAgICAgICAgdGhpcy5UYWJsZUlEID0gImNvbnRlbnRfdGFibGUiOw0KICAgICAgICB0aGlzLmhlYWRlckNsYXNzID0gImNvbnRlbnRfdGFibGVfaGVhZGVyIjsNCiAgICAgICAgdGhpcy5pbnRlcmFjdGlvbklEID0gImNvbnRlbnQtaW50ZXJhY3Rpb24iOw0KICAgIH0NCiAgICBjcmVhdGVIZWFkbGluZSh2YWx1ZSkgew0KICAgICAgICBsZXQgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIkgzIik7DQogICAgICAgIGVsZW1lbnQuaW5uZXJIVE1MID0gdmFsdWU7DQogICAgICAgIHJldHVybiBlbGVtZW50Ow0KICAgIH0NCiAgICBjcmVhdGVIUigpIHsNCiAgICAgICAgcmV0dXJuIGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIkhSIik7DQogICAgfQ0KICAgIGNyZWF0ZUludGVyYWN0aW9uKCkgew0KICAgICAgICBsZXQgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIkRJViIpOw0KICAgICAgICBlbGVtZW50LnNldEF0dHJpYnV0ZSgiaWQiLCB0aGlzLmludGVyYWN0aW9uSUQpOw0KICAgICAgICByZXR1cm4gZWxlbWVudDsNCiAgICB9DQogICAgY3JlYXRlRElWKCkgew0KICAgICAgICBsZXQgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIkRJViIpOw0KICAgICAgICBlbGVtZW50LmlkID0gdGhpcy5EaXZJRDsNCiAgICAgICAgcmV0dXJuIGVsZW1lbnQ7DQogICAgfQ0KICAgIGNyZWF0ZVRBQkxFKCkgew0KICAgICAgICBsZXQgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlRBQkxFIik7DQogICAgICAgIGVsZW1lbnQuaWQgPSB0aGlzLlRhYmxlSUQ7DQogICAgICAgIHJldHVybiBlbGVtZW50Ow0KICAgIH0NCiAgICBjcmVhdGVUYWJsZVJvdygpIHsNCiAgICAgICAgbGV0IGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJUUiIpOw0KICAgICAgICBlbGVtZW50LmNsYXNzTmFtZSA9IHRoaXMuaGVhZGVyQ2xhc3M7DQogICAgICAgIHJldHVybiBlbGVtZW50Ow0KICAgIH0NCiAgICBjcmVhdGVUYWJsZUNvbnRlbnQobWVudUtleSkgew0KICAgICAgICBsZXQgZGF0YSA9IHt9Ow0KICAgICAgICBsZXQgcm93cyA9IFtdOw0KICAgICAgICBsZXQgZmlsZVR5cGVzID0gW107DQogICAgICAgIHN3aXRjaCAobWVudUtleSkgew0KICAgICAgICAgICAgY2FzZSAicGxheWxpc3QiOg0KICAgICAgICAgICAgICAgIGZpbGVUeXBlcyA9IFsibTN1IiwgImhkaHIiXTsNCiAgICAgICAgICAgICAgICBmaWxlVHlwZXMuZm9yRWFjaChmaWxlVHlwZSA9PiB7DQogICAgICAgICAgICAgICAgICAgIGRhdGEgPSBTRVJWRVJbInNldHRpbmdzIl1bImZpbGVzIl1bZmlsZVR5cGVdOw0KICAgICAgICAgICAgICAgICAgICB2YXIga2V5cyA9IGdldE9iaktleXMoZGF0YSk7DQogICAgICAgICAgICAgICAgICAgIGtleXMuZm9yRWFjaChrZXkgPT4gew0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVFIiKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmlkID0ga2V5Ow0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgiJyArIGZpbGVUeXBlICsgJyIsIHRoaXMpJyk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsibmFtZSJdOw0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChTRVJWRVJbInNldHRpbmdzIl1bImJ1ZmZlciJdICE9ICItIikgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bInR1bmVyIl07DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gIi0iOw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bImxhc3QudXBkYXRlIl07DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsicHJvdmlkZXIuYXZhaWxhYmlsaXR5Il07DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsidHlwZSJdLnRvVXBwZXJDYXNlKCk7DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsiY29tcGF0aWJpbGl0eSJdWyJzdHJlYW1zIl07DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsiY29tcGF0aWJpbGl0eSJdWyJncm91cC50aXRsZSJdOw0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bImNvbXBhdGliaWxpdHkiXVsidHZnLmlkIl07DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsiY29tcGF0aWJpbGl0eSJdWyJzdHJlYW0uaWQiXTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHJvd3MucHVzaCh0cik7DQogICAgICAgICAgICAgICAgICAgIH0pOw0KICAgICAgICAgICAgICAgIH0pOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiZmlsdGVyIjoNCiAgICAgICAgICAgICAgICBkZWxldGUgU0VSVkVSWyJzZXR0aW5ncyJdWyJmaWx0ZXIiXVstMV07DQogICAgICAgICAgICAgICAgZGF0YSA9IFNFUlZFUlsic2V0dGluZ3MiXVsiZmlsdGVyIl07DQogICAgICAgICAgICAgICAgdmFyIGtleXMgPSBnZXRPYmpLZXlzKGRhdGEpOw0KICAgICAgICAgICAgICAgIGtleXMuZm9yRWFjaChrZXkgPT4gew0KICAgICAgICAgICAgICAgICAgICB2YXIgdHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJUUiIpOw0KICAgICAgICAgICAgICAgICAgICB0ci5pZCA9IGtleTsNCiAgICAgICAgICAgICAgICAgICAgdHIuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgiJyArIGRhdGFba2V5XVsidHlwZSJdICsgJyIsIHRoaXMpJyk7DQogICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJuYW1lIl07DQogICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgIHN3aXRjaCAoZGF0YVtrZXldWyJ0eXBlIl0pIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgImN1c3RvbS1maWx0ZXIiOg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSAie3suZmlsdGVyLmN1c3RvbX19IjsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgImdyb3VwLXRpdGxlIjoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gInt7LmZpbHRlci5ncm91cH19IjsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsiZmlsdGVyIl07DQogICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgcm93cy5wdXNoKHRyKTsNCiAgICAgICAgICAgICAgICB9KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInhtbHR2IjoNCiAgICAgICAgICAgICAgICBmaWxlVHlwZXMgPSBuZXcgQXJyYXkoInhtbHR2Iik7DQogICAgICAgICAgICAgICAgZmlsZVR5cGVzLmZvckVhY2goZmlsZVR5cGUgPT4gew0KICAgICAgICAgICAgICAgICAgICBkYXRhID0gU0VSVkVSWyJzZXR0aW5ncyJdWyJmaWxlcyJdW2ZpbGVUeXBlXTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGtleXMgPSBnZXRPYmpLZXlzKGRhdGEpOw0KICAgICAgICAgICAgICAgICAgICBrZXlzLmZvckVhY2goa2V5ID0+IHsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciB0ciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlRSIik7DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5pZCA9IGtleTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoIicgKyBmaWxlVHlwZSArICciLCB0aGlzKScpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bIm5hbWUiXTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJsYXN0LnVwZGF0ZSJdOw0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bInByb3ZpZGVyLmF2YWlsYWJpbGl0eSJdOw0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bImNvbXBhdGliaWxpdHkiXVsieG1sdHYuY2hhbm5lbHMiXTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJjb21wYXRpYmlsaXR5Il1bInhtbHR2LnByb2dyYW1zIl07DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICByb3dzLnB1c2godHIpOw0KICAgICAgICAgICAgICAgICAgICB9KTsNCiAgICAgICAgICAgICAgICB9KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInVzZXJzIjoNCiAgICAgICAgICAgICAgICBmaWxlVHlwZXMgPSBuZXcgQXJyYXkoInVzZXJzIik7DQogICAgICAgICAgICAgICAgZmlsZVR5cGVzLmZvckVhY2goZmlsZVR5cGUgPT4gew0KICAgICAgICAgICAgICAgICAgICBkYXRhID0gU0VSVkVSW2ZpbGVUeXBlXTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGtleXMgPSBnZXRPYmpLZXlzKGRhdGEpOw0KICAgICAgICAgICAgICAgICAgICBrZXlzLmZvckVhY2goa2V5ID0+IHsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciB0ciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlRSIik7DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5pZCA9IGtleTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoIicgKyBmaWxlVHlwZSArICciLCB0aGlzKScpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bImRhdGEiXVsidXNlcm5hbWUiXTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gIioqKioqKiI7DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGRhdGFba2V5XVsiZGF0YSJdWyJhdXRoZW50aWNhdGlvbi53ZWIiXSA9PSB0cnVlKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9ICLinJMiOw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9ICItIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgICAgICBpZiAoZGF0YVtrZXldWyJkYXRhIl1bImF1dGhlbnRpY2F0aW9uLnBtcyJdID09IHRydWUpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gIuKckyI7DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gIi0iOw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChkYXRhW2tleV1bImRhdGEiXVsiYXV0aGVudGljYXRpb24ubTN1Il0gPT0gdHJ1ZSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSAi4pyTIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSAiLSI7DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGRhdGFba2V5XVsiZGF0YSJdWyJhdXRoZW50aWNhdGlvbi54bWwiXSA9PSB0cnVlKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9ICLinJMiOw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9ICItIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgICAgICBpZiAoZGF0YVtrZXldWyJkYXRhIl1bImF1dGhlbnRpY2F0aW9uLmFwaSJdID09IHRydWUpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gIuKckyI7DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gIi0iOw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgcm93cy5wdXNoKHRyKTsNCiAgICAgICAgICAgICAgICAgICAgfSk7DQogICAgICAgICAgICAgICAgfSk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJtYXBwaW5nIjoNCiAgICAgICAgICAgICAgICBCVUxLX0VESVQgPSBmYWxzZTsNCiAgICAgICAgICAgICAgICBjcmVhdGVTZWFyY2hPYmooKTsNCiAgICAgICAgICAgICAgICBjaGVja1VuZG8oImVwZ01hcHBpbmciKTsNCiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZygiTUFQUElORyIpOw0KICAgICAgICAgICAgICAgIGRhdGEgPSBTRVJWRVJbInhlcGciXVsiZXBnTWFwcGluZyJdOw0KICAgICAgICAgICAgICAgIHZhciBrZXlzID0gZ2V0T2JqS2V5cyhkYXRhKTsNCiAgICAgICAgICAgICAgICBrZXlzLmZvckVhY2goa2V5ID0+IHsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVFIiKTsNCiAgICAgICAgICAgICAgICAgICAgdHIuaWQgPSBrZXk7DQogICAgICAgICAgICAgICAgICAgIC8vdHIuc2V0QXR0cmlidXRlKCdvbmNvbnRleHRtZW51JywgJ2phdmFzY3JpcHQ6IHJpZ2h0Q2xpY2sodGhpcyknKQ0KICAgICAgICAgICAgICAgICAgICBzd2l0Y2ggKGRhdGFba2V5XVsieC1hY3RpdmUiXSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSB0cnVlOg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyLmNsYXNzTmFtZSA9ICJhY3RpdmVFUEciOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSBmYWxzZToNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ci5jbGFzc05hbWUgPSAibm90QWN0aXZlRVBHIjsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAvLyBCdWxrDQogICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIkJVTEsiOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZmFsc2U7DQogICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgLy8gS2FuYWxudW1tZXINCiAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiSU5QVVRDSEFOTkVMIjsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsieC1jaGFubmVsSUQiXTsNCiAgICAgICAgICAgICAgICAgICAgLy90ZC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogY2hhbmdlQ2hhbm5lbE51bWJlcigiJyArIGtleSArICciLCB0aGlzKScpDQogICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgLy8gTG9nbw0KICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJJTUciOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmltYWdlVVJMID0gZGF0YVtrZXldWyJ0dmctbG9nbyJdOw0KICAgICAgICAgICAgICAgICAgICB2YXIgdGQgPSBjZWxsLmNyZWF0ZUNlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgdGQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgibWFwcGluZyIsIHRoaXMpJyk7DQogICAgICAgICAgICAgICAgICAgIHRkLmlkID0ga2V5Ow0KICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZCh0ZCk7DQogICAgICAgICAgICAgICAgICAgIC8vIEthbmFsbmFtZQ0KICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jbGFzc05hbWUgPSBkYXRhW2tleV1bIngtY2F0ZWdvcnkiXTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsieC1uYW1lIl07DQogICAgICAgICAgICAgICAgICAgIHZhciB0ZCA9IGNlbGwuY3JlYXRlQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICB0ZC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJtYXBwaW5nIiwgdGhpcyknKTsNCiAgICAgICAgICAgICAgICAgICAgdGQuaWQgPSBrZXk7DQogICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKHRkKTsNCiAgICAgICAgICAgICAgICAgICAgLy8gUGxheWxpc3QNCiAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgIC8vY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsiX2ZpbGUubTN1Lm5hbWUiXSANCiAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGdldFZhbHVlRnJvbVByb3ZpZGVyRmlsZShkYXRhW2tleV1bIl9maWxlLm0zdS5pZCJdLCAibTN1IiwgIm5hbWUiKTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHRkID0gY2VsbC5jcmVhdGVDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgIHRkLnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoIm1hcHBpbmciLCB0aGlzKScpOw0KICAgICAgICAgICAgICAgICAgICB0ZC5pZCA9IGtleTsNCiAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQodGQpOw0KICAgICAgICAgICAgICAgICAgICAvLyBHcnVwcGUgKGdyb3VwLXRpdGxlKQ0KICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsieC1ncm91cC10aXRsZSJdOw0KICAgICAgICAgICAgICAgICAgICB2YXIgdGQgPSBjZWxsLmNyZWF0ZUNlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgdGQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgibWFwcGluZyIsIHRoaXMpJyk7DQogICAgICAgICAgICAgICAgICAgIHRkLmlkID0ga2V5Ow0KICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZCh0ZCk7DQogICAgICAgICAgICAgICAgICAgIC8vIFhNTFRWIERhdGVpDQogICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICBpZiAoZGF0YVtrZXldWyJ4LXhtbHR2LWZpbGUiXSAhPSAiLSIpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBnZXRWYWx1ZUZyb21Qcm92aWRlckZpbGUoZGF0YVtrZXldWyJ4LXhtbHR2LWZpbGUiXSwgInhtbHR2IiwgIm5hbWUiKTsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bIngteG1sdHYtZmlsZSJdOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIHZhciB0ZCA9IGNlbGwuY3JlYXRlQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICB0ZC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJtYXBwaW5nIiwgdGhpcyknKTsNCiAgICAgICAgICAgICAgICAgICAgdGQuaWQgPSBrZXk7DQogICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKHRkKTsNCiAgICAgICAgICAgICAgICAgICAgLy8gWE1MVFYgS2FuYWwNCiAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgIC8vdmFyIHZhbHVlID0gc3RyLnN1YnN0cmluZygxLCA0KTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHZhbHVlID0gZGF0YVtrZXldWyJ4LW1hcHBpbmciXTsNCiAgICAgICAgICAgICAgICAgICAgaWYgKHZhbHVlLmxlbmd0aCA+IDIwKSB7DQogICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IGRhdGFba2V5XVsieC1tYXBwaW5nIl0uc3Vic3RyaW5nKDAsIDIwKSArICIuLi4iOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSB2YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHRkID0gY2VsbC5jcmVhdGVDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgIHRkLnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoIm1hcHBpbmciLCB0aGlzKScpOw0KICAgICAgICAgICAgICAgICAgICB0ZC5pZCA9IGtleTsNCiAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQodGQpOw0KICAgICAgICAgICAgICAgICAgICAvLyBUaW1lU2hpZnQNCiAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bIngtdGltZXNoaWZ0Il07DQogICAgICAgICAgICAgICAgICAgIHZhciB0ZCA9IGNlbGwuY3JlYXRlQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICB0ZC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJtYXBwaW5nIiwgdGhpcyknKTsNCiAgICAgICAgICAgICAgICAgICAgdGQuaWQgPSBrZXk7DQogICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKHRkKTsNCiAgICAgICAgICAgICAgICAgICAgcm93cy5wdXNoKHRyKTsNCiAgICAgICAgICAgICAgICB9KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInNldHRpbmdzIjoNCiAgICAgICAgICAgICAgICBhbGVydCgpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZygiVGFibGUgY29udGVudCAobWVudUtleSk6IiwgbWVudUtleSk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIH0NCiAgICAgICAgcmV0dXJuIHJvd3M7DQogICAgfQ0KfQ0KY2xhc3MgQ2VsbCB7DQogICAgY3JlYXRlQ2VsbCgpIHsNCiAgICAgICAgbGV0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgaWYgKHRoaXMuY2hpbGQgPT0gdHJ1ZSkgew0KICAgICAgICAgICAgdmFyIGVsZW1lbnQ7DQogICAgICAgICAgICBzd2l0Y2ggKHRoaXMuY2hpbGRUeXBlKSB7DQogICAgICAgICAgICAgICAgY2FzZSAiUCI6DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KHRoaXMuY2hpbGRUeXBlKTsNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC5pbm5lckhUTUwgPSB0aGlzLnZhbHVlOw0KICAgICAgICAgICAgICAgICAgICBlbGVtZW50LmNsYXNzTmFtZSA9IHRoaXMuY2xhc3NOYW1lOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBjYXNlICJJTlBVVCI6DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KHRoaXMuY2hpbGRUeXBlKTsNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC52YWx1ZSA9IHRoaXMudmFsdWU7DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQudHlwZSA9ICJ0ZXh0IjsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAiSU5QVVRDSEFOTkVMIjoNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIklOUFVUIik7DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZzY3JpcHQ6IGNoYW5nZUNoYW5uZWxOdW1iZXIodGhpcykiKTsNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC52YWx1ZSA9IHRoaXMudmFsdWU7DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQudHlwZSA9ICJ0ZXh0IjsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAiQlVMSyI6DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJJTlBVVCIpOw0KICAgICAgICAgICAgICAgICAgICBlbGVtZW50LmNoZWNrZWQgPSB0aGlzLnZhbHVlOw0KICAgICAgICAgICAgICAgICAgICBlbGVtZW50LnR5cGUgPSAiY2hlY2tib3giOw0KICAgICAgICAgICAgICAgICAgICBlbGVtZW50LmNsYXNzTmFtZSA9ICJidWxrIGhpZGVCdWxrIjsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAiQlVMS19IRUFEIjoNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIklOUFVUIik7DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQuY2hlY2tlZCA9IHRoaXMudmFsdWU7DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQudHlwZSA9ICJjaGVja2JveCI7DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQuY2xhc3NOYW1lID0gImJ1bGsgaGlkZUJ1bGsiOw0KICAgICAgICAgICAgICAgICAgICBlbGVtZW50LnNldEF0dHJpYnV0ZSgib25jbGljayIsICJqYXZhc2NyaXB0OiBzZWxlY3RBbGxDaGFubmVscygpIik7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgIklNRyI6DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KHRoaXMuY2hpbGRUeXBlKTsNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC5zZXRBdHRyaWJ1dGUoInNyYyIsIHRoaXMuaW1hZ2VVUkwpOw0KICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5pbWFnZVVSTCAhPSAiIikgew0KICAgICAgICAgICAgICAgICAgICAgICAgZWxlbWVudC5zZXRBdHRyaWJ1dGUoIm9uZXJyb3IiLCAiamF2YXNjcmlwdDogdGhpcy5vbmVycm9yPW51bGw7dGhpcy5zcmM9JyciKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIC8vb25lcnJvcj0idGhpcy5vbmVycm9yPW51bGw7dGhpcy5zcmM9J21pc3NpbmcuZ2lmJzsiDQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIHRkLmFwcGVuZENoaWxkKGVsZW1lbnQpOw0KICAgICAgICB9DQogICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgdGQuaW5uZXJIVE1MID0gdGhpcy52YWx1ZTsNCiAgICAgICAgfQ0KICAgICAgICBpZiAodGhpcy5vbmNsaWNrID09IHRydWUpIHsNCiAgICAgICAgICAgIHRkLnNldEF0dHJpYnV0ZSgib25jbGljayIsIHRoaXMub25jbGlja0Z1bmt0aW9uKTsNCiAgICAgICAgICAgIHRkLmNsYXNzTmFtZSA9ICJwb2ludGVyIjsNCiAgICAgICAgfQ0KICAgICAgICBpZiAodGhpcy50ZENsYXNzTmFtZSAhPSB1bmRlZmluZWQpIHsNCiAgICAgICAgICAgIHRkLmNsYXNzTmFtZSA9IHRoaXMudGRDbGFzc05hbWU7DQogICAgICAgIH0NCiAgICAgICAgcmV0dXJuIHRkOw0KICAgIH0NCn0NCmNsYXNzIFNob3dDb250ZW50IGV4dGVuZHMgQ29udGVudCB7DQogICAgY29uc3RydWN0b3IobWVudUlEKSB7DQogICAgICAgIHN1cGVyKCk7DQogICAgICAgIHRoaXMubWVudUlEID0gbWVudUlEOw0KICAgIH0NCiAgICBjcmVhdGVJbnB1dCh0eXBlLCBuYW1lLCB2YWx1ZSkgew0KICAgICAgICBsZXQgaW5wdXQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJJTlBVVCIpOw0KICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInR5cGUiLCB0eXBlKTsNCiAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJuYW1lIiwgbmFtZSk7DQogICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgidmFsdWUiLCB2YWx1ZSk7DQogICAgICAgIHJldHVybiBpbnB1dDsNCiAgICB9DQogICAgc2hvdygpIHsNCiAgICAgICAgQ09MVU1OX1RPX1NPUlQgPSAtMTsNCiAgICAgICAgLy8gQWx0ZW4gSW5oYWx0IGzDtnNjaGVuDQogICAgICAgIGxldCBkb2MgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCh0aGlzLkRvY3VtZW50SUQpOw0KICAgICAgICBkb2MuaW5uZXJIVE1MID0gIiI7DQogICAgICAgIHNob3dQcmV2aWV3KGZhbHNlKTsNCiAgICAgICAgLy8gw5xiZXJzY2hyaWZ0DQogICAgICAgIGxldCBoZWFkbGluZSA9IG1lbnVJdGVtc1t0aGlzLm1lbnVJRF0uaGVhZGxpbmU7DQogICAgICAgIGxldCBtZW51S2V5ID0gbWVudUl0ZW1zW3RoaXMubWVudUlEXS5tZW51S2V5Ow0KICAgICAgICBsZXQgaCA9IHRoaXMuY3JlYXRlSGVhZGxpbmUoaGVhZGxpbmUpOw0KICAgICAgICBkb2MuYXBwZW5kQ2hpbGQoaCk7DQogICAgICAgIGxldCBociA9IHRoaXMuY3JlYXRlSFIoKTsNCiAgICAgICAgZG9jLmFwcGVuZENoaWxkKGhyKTsNCiAgICAgICAgLy8gSW50ZXJha3Rpb24NCiAgICAgICAgbGV0IGRpdiA9IHRoaXMuY3JlYXRlSW50ZXJhY3Rpb24oKTsNCiAgICAgICAgZG9jLmFwcGVuZENoaWxkKGRpdik7DQogICAgICAgIGxldCBpbnRlcmFjdGlvbiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHRoaXMuaW50ZXJhY3Rpb25JRCk7DQogICAgICAgIHN3aXRjaCAobWVudUtleSkgew0KICAgICAgICAgICAgY2FzZSAicGxheWxpc3QiOg0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IHRoaXMuY3JlYXRlSW5wdXQoImJ1dHRvbiIsIG1lbnVLZXksICJ7ey5idXR0b24ubmV3fX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoImlkIiwgIi0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJwbGF5bGlzdCIpJyk7DQogICAgICAgICAgICAgICAgaW50ZXJhY3Rpb24uYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiZmlsdGVyIjoNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSB0aGlzLmNyZWF0ZUlucHV0KCJidXR0b24iLCBtZW51S2V5LCAie3suYnV0dG9uLm5ld319Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJpZCIsIC0xKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJmaWx0ZXIiLCB0aGlzKScpOw0KICAgICAgICAgICAgICAgIGludGVyYWN0aW9uLmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInhtbHR2IjoNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSB0aGlzLmNyZWF0ZUlucHV0KCJidXR0b24iLCBtZW51S2V5LCAie3suYnV0dG9uLm5ld319Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJpZCIsICJ4bWx0diIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoInhtbHR2IiknKTsNCiAgICAgICAgICAgICAgICBpbnRlcmFjdGlvbi5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ1c2VycyI6DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gdGhpcy5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgbWVudUtleSwgInt7LmJ1dHRvbi5uZXd9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgiaWQiLCAidXNlcnMiKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJ1c2VycyIpJyk7DQogICAgICAgICAgICAgICAgaW50ZXJhY3Rpb24uYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAibWFwcGluZyI6DQogICAgICAgICAgICAgICAgc2hvd0VsZW1lbnQoImxvYWRpbmciLCB0cnVlKTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSB0aGlzLmNyZWF0ZUlucHV0KCJidXR0b24iLCBtZW51S2V5LCAie3suYnV0dG9uLnNhdmV9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBzYXZlUG9wdXBEYXRhKCJtYXBwaW5nIiwgIiIsICIiKScpOw0KICAgICAgICAgICAgICAgIGludGVyYWN0aW9uLmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSB0aGlzLmNyZWF0ZUlucHV0KCJidXR0b24iLCBtZW51S2V5LCAie3suYnV0dG9uLmJ1bGtFZGl0fX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogYnVsa0VkaXQoKScpOw0KICAgICAgICAgICAgICAgIGludGVyYWN0aW9uLmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSB0aGlzLmNyZWF0ZUlucHV0KCJzZWFyY2giLCAic2VhcmNoIiwgIiIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgiaWQiLCAic2VhcmNoTWFwcGluZyIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3suYnV0dG9uLnNlYXJjaH19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuY2xhc3NOYW1lID0gInNlYXJjaCI7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICdqYXZhc2NyaXB0OiBzZWFyY2hJbk1hcHBpbmcoKScpOw0KICAgICAgICAgICAgICAgIGludGVyYWN0aW9uLmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInNldHRpbmdzIjoNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSB0aGlzLmNyZWF0ZUlucHV0KCJidXR0b24iLCBtZW51S2V5LCAie3suYnV0dG9uLnNhdmV9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBzYXZlU2V0dGluZ3MoKTsnKTsNCiAgICAgICAgICAgICAgICBpbnRlcmFjdGlvbi5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gdGhpcy5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgbWVudUtleSwgInt7LmJ1dHRvbi5iYWNrdXB9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBiYWNrdXAoKTsnKTsNCiAgICAgICAgICAgICAgICBpbnRlcmFjdGlvbi5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gdGhpcy5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgbWVudUtleSwgInt7LmJ1dHRvbi5yZXN0b3JlfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogcmVzdG9yZSgpOycpOw0KICAgICAgICAgICAgICAgIGludGVyYWN0aW9uLmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICB2YXIgd3JhcHBlciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIkRJViIpOw0KICAgICAgICAgICAgICAgIHdyYXBwZXIuc2V0QXR0cmlidXRlKCJpZCIsICJib3gtd3JhcHBlciIpOw0KICAgICAgICAgICAgICAgIGRvYy5hcHBlbmRDaGlsZCh3cmFwcGVyKTsNCiAgICAgICAgICAgICAgICB0aGlzLkRpdklEID0gImNvbnRlbnRfc2V0dGluZ3MiOw0KICAgICAgICAgICAgICAgIHZhciBzZXR0aW5ncyA9IHRoaXMuY3JlYXRlRElWKCk7DQogICAgICAgICAgICAgICAgd3JhcHBlci5hcHBlbmRDaGlsZChzZXR0aW5ncyk7DQogICAgICAgICAgICAgICAgc2hvd1NldHRpbmdzKCk7DQogICAgICAgICAgICAgICAgcmV0dXJuOw0KICAgICAgICAgICAgY2FzZSAibG9nIjoNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSB0aGlzLmNyZWF0ZUlucHV0KCJidXR0b24iLCBtZW51S2V5LCAie3suYnV0dG9uLnJlc2V0TG9nc319Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IHJlc2V0TG9ncygpOycpOw0KICAgICAgICAgICAgICAgIGludGVyYWN0aW9uLmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICB2YXIgd3JhcHBlciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIkRJViIpOw0KICAgICAgICAgICAgICAgIHdyYXBwZXIuc2V0QXR0cmlidXRlKCJpZCIsICJib3gtd3JhcHBlciIpOw0KICAgICAgICAgICAgICAgIGRvYy5hcHBlbmRDaGlsZCh3cmFwcGVyKTsNCiAgICAgICAgICAgICAgICB0aGlzLkRpdklEID0gImNvbnRlbnRfbG9nIjsNCiAgICAgICAgICAgICAgICB2YXIgbG9ncyA9IHRoaXMuY3JlYXRlRElWKCk7DQogICAgICAgICAgICAgICAgd3JhcHBlci5hcHBlbmRDaGlsZChsb2dzKTsNCiAgICAgICAgICAgICAgICBzaG93TG9ncyh0cnVlKTsNCiAgICAgICAgICAgICAgICByZXR1cm47DQogICAgICAgICAgICBjYXNlICJsb2dvdXQiOg0KICAgICAgICAgICAgICAgIGxvY2F0aW9uLnJlbG9hZCgpOw0KICAgICAgICAgICAgICAgIGRvY3VtZW50LmNvb2tpZSA9ICJUb2tlbj0gOyBleHBpcmVzID0gVGh1LCAwMSBKYW4gMTk3MCAwMDowMDowMCBHTVQiOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZygiU2hvdyBjb250ZW50IChtZW51S2V5KToiLCBtZW51S2V5KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgfQ0KICAgICAgICAvLyBUYWJlbGxlIGVyc3RlbGxlbiAoZmFsbHMgYmVuw7Z0aWd0KQ0KICAgICAgICB2YXIgdGFibGVIZWFkZXIgPSBtZW51SXRlbXNbdGhpcy5tZW51SURdLnRhYmxlSGVhZGVyOw0KICAgICAgICBpZiAodGFibGVIZWFkZXIubGVuZ3RoID4gMCkgew0KICAgICAgICAgICAgdmFyIHdyYXBwZXIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJESVYiKTsNCiAgICAgICAgICAgIGRvYy5hcHBlbmRDaGlsZCh3cmFwcGVyKTsNCiAgICAgICAgICAgIHdyYXBwZXIuc2V0QXR0cmlidXRlKCJpZCIsICJib3gtd3JhcHBlciIpOw0KICAgICAgICAgICAgdmFyIHRhYmxlID0gdGhpcy5jcmVhdGVUQUJMRSgpOw0KICAgICAgICAgICAgd3JhcHBlci5hcHBlbmRDaGlsZCh0YWJsZSk7DQogICAgICAgICAgICB2YXIgaGVhZGVyID0gdGhpcy5jcmVhdGVUYWJsZVJvdygpOw0KICAgICAgICAgICAgdGFibGUuYXBwZW5kQ2hpbGQoaGVhZGVyKTsNCiAgICAgICAgICAgIC8vIEtvcGZ6ZWlsZSBkZXIgVGFibGxlDQogICAgICAgICAgICB0YWJsZUhlYWRlci5mb3JFYWNoKGVsZW1lbnQgPT4gew0KICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZWxlbWVudDsNCiAgICAgICAgICAgICAgICBpZiAoZWxlbWVudCA9PSAiQlVMSyIpIHsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiQlVMS19IRUFEIjsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGZhbHNlOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBpZiAobWVudUtleSA9PSAibWFwcGluZyIpIHsNCiAgICAgICAgICAgICAgICAgICAgaWYgKGVsZW1lbnQgPT0gInt7Lm1hcHBpbmcudGFibGUuY2hOb319Iikgew0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5vbmNsaWNrID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwub25jbGlja0Z1bmt0aW9uID0gImphdmFzY3JpcHQ6IHNvcnRUYWJsZSgxKTsiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC50ZENsYXNzTmFtZSA9ICJzb3J0VGhpcyI7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgaWYgKGVsZW1lbnQgPT0gInt7Lm1hcHBpbmcudGFibGUuY2hhbm5lbE5hbWV9fSIpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwub25jbGljayA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLm9uY2xpY2tGdW5rdGlvbiA9ICJqYXZhc2NyaXB0OiBzb3J0VGFibGUoMyk7IjsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBpZiAoZWxlbWVudCA9PSAie3subWFwcGluZy50YWJsZS5wbGF5bGlzdH19Iikgew0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5vbmNsaWNrID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwub25jbGlja0Z1bmt0aW9uID0gImphdmFzY3JpcHQ6IHNvcnRUYWJsZSg0KTsiOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIGlmIChlbGVtZW50ID09ICJ7ey5tYXBwaW5nLnRhYmxlLmdyb3VwVGl0bGV9fSIpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwub25jbGljayA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLm9uY2xpY2tGdW5rdGlvbiA9ICJqYXZhc2NyaXB0OiBzb3J0VGFibGUoNSk7IjsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBoZWFkZXIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgfSk7DQogICAgICAgICAgICB0YWJsZS5hcHBlbmRDaGlsZChoZWFkZXIpOw0KICAgICAgICAgICAgLy8gSW5oYWx0IGRlciBUYWJlbGxlDQogICAgICAgICAgICB2YXIgcm93cyA9IHRoaXMuY3JlYXRlVGFibGVDb250ZW50KG1lbnVLZXkpOw0KICAgICAgICAgICAgcm93cy5mb3JFYWNoKHRyID0+IHsNCiAgICAgICAgICAgICAgICB0YWJsZS5hcHBlbmRDaGlsZCh0cik7DQogICAgICAgICAgICB9KTsNCiAgICAgICAgfQ0KICAgICAgICBzd2l0Y2ggKG1lbnVLZXkpIHsNCiAgICAgICAgICAgIGNhc2UgIm1hcHBpbmciOg0KICAgICAgICAgICAgICAgIHNvcnRUYWJsZSgxKTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImZpbHRlciI6DQogICAgICAgICAgICAgICAgc2hvd1ByZXZpZXcodHJ1ZSk7DQogICAgICAgICAgICAgICAgc29ydFRhYmxlKDApOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgICAgICBDT0xVTU5fVE9fU09SVCA9IC0xOw0KICAgICAgICAgICAgICAgIHNvcnRUYWJsZSgwKTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgfQ0KICAgICAgICBzaG93RWxlbWVudCgibG9hZGluZyIsIGZhbHNlKTsNCiAgICB9DQp9DQpmdW5jdGlvbiBQYWdlUmVhZHkoKSB7DQogICAgbGV0IHNlcnZlciA9IG5ldyBTZXJ2ZXIoImdldFNlcnZlckNvbmZpZyIpOw0KICAgIHNlcnZlci5yZXF1ZXN0KHt9KTsNCiAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigicmVzaXplIiwgZnVuY3Rpb24gKCkgew0KICAgICAgICBjYWxjdWxhdGVXcmFwcGVySGVpZ2h0KCk7DQogICAgfSwgdHJ1ZSk7DQogICAgc2V0SW50ZXJ2YWwoZnVuY3Rpb24gKCkgew0KICAgICAgICB1cGRhdGVMb2coKTsNCiAgICB9LCAxMDAwMCk7DQogICAgcmV0dXJuOw0KfQ0KZnVuY3Rpb24gY3JlYXRlTGF5b3V0KCkgew0KICAgIC8vIENsaWVudCBJbmZvDQogICAgbGV0IG9iaiA9IFNFUlZFUlsiY2xpZW50SW5mbyJdOw0KICAgIGxldCBrZXlzID0gZ2V0T2JqS2V5cyhvYmopOw0KICAgIGZvciAodmFyIGkgPSAwOyBpIDwga2V5cy5sZW5ndGg7IGkrKykgew0KICAgICAgICBpZiAoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoa2V5c1tpXSkpIHsNCiAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGtleXNbaV0pLmlubmVySFRNTCA9IG9ialtrZXlzW2ldXTsNCiAgICAgICAgfQ0KICAgIH0NCiAgICBpZiAoIWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJtYWluLW1lbnUiKSkgew0KICAgICAgICByZXR1cm47DQogICAgfQ0KICAgIC8vIE1lbsO8IGVyc3RlbGxlbg0KICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJtYWluLW1lbnUiKS5pbm5lckhUTUwgPSAiIjsNCiAgICBmb3IgKGxldCBpID0gMDsgaSA8IG1lbnVJdGVtcy5sZW5ndGg7IGkrKykgew0KICAgICAgICBtZW51SXRlbXNbaV0uaWQgPSBpOw0KICAgICAgICBzd2l0Y2ggKG1lbnVJdGVtc1tpXVsibWVudUtleSJdKSB7DQogICAgICAgICAgICBjYXNlICJ1c2VycyI6DQogICAgICAgICAgICBjYXNlICJsb2dvdXQiOg0KICAgICAgICAgICAgICAgIGlmIChTRVJWRVJbInNldHRpbmdzIl1bImF1dGhlbnRpY2F0aW9uLndlYiJdID09IHRydWUpIHsNCiAgICAgICAgICAgICAgICAgICAgbWVudUl0ZW1zW2ldLmNyZWF0ZUl0ZW0oKTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJtYXBwaW5nIjoNCiAgICAgICAgICAgIGNhc2UgInhtbHR2IjoNCiAgICAgICAgICAgICAgICBpZiAoU0VSVkVSWyJjbGllbnRJbmZvIl1bImVwZ1NvdXJjZSJdID09ICJYRVBHIikgew0KICAgICAgICAgICAgICAgICAgICBtZW51SXRlbXNbaV0uY3JlYXRlSXRlbSgpOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICAgICAgbWVudUl0ZW1zW2ldLmNyZWF0ZUl0ZW0oKTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgfQ0KICAgIH0NCiAgICByZXR1cm47DQp9DQpmdW5jdGlvbiBvcGVuVGhpc01lbnUoZWxlbWVudCkgew0KICAgIGxldCBpZCA9IGVsZW1lbnQuaWQ7DQogICAgbGV0IGNvbnRlbnQgPSBuZXcgU2hvd0NvbnRlbnQoaWQpOw0KICAgIGNvbnRlbnQuc2hvdygpOw0KICAgIGNhbGN1bGF0ZVdyYXBwZXJIZWlnaHQoKTsNCiAgICByZXR1cm47DQp9DQpjbGFzcyBQb3B1cFdpbmRvdyB7DQogICAgY29uc3RydWN0b3IoKSB7DQogICAgICAgIHRoaXMuRG9jdW1lbnRJRCA9ICJwb3B1cC1jdXN0b20iOw0KICAgICAgICB0aGlzLkludGVyYWN0aW9uSUQgPSAiaW50ZXJhY3Rpb24iOw0KICAgICAgICB0aGlzLmRvYyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHRoaXMuRG9jdW1lbnRJRCk7DQogICAgfQ0KICAgIGNyZWF0ZVRpdGxlKHRpdGxlKSB7DQogICAgICAgIGxldCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgIHRkLmNsYXNzTmFtZSA9ICJsZWZ0IjsNCiAgICAgICAgdGQuaW5uZXJIVE1MID0gdGl0bGUgKyAiOiI7DQogICAgICAgIHJldHVybiB0ZDsNCiAgICB9DQogICAgY3JlYXRlQ29udGVudChlbGVtZW50KSB7DQogICAgICAgIGxldCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgIHRkLmFwcGVuZENoaWxkKGVsZW1lbnQpOw0KICAgICAgICByZXR1cm4gdGQ7DQogICAgfQ0KICAgIGNyZWF0ZUludGVyYWN0aW9uKCkgew0KICAgICAgICBsZXQgZGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7DQogICAgICAgIGRpdi5zZXRBdHRyaWJ1dGUoImlkIiwgInBvcHVwLWludGVyYWN0aW9uIik7DQogICAgICAgIGRpdi5jbGFzc05hbWUgPSAiaW50ZXJhY3Rpb24iOw0KICAgICAgICB0aGlzLmRvYy5hcHBlbmRDaGlsZChkaXYpOw0KICAgIH0NCn0NCmNsYXNzIFBvcHVwQ29udGVudCBleHRlbmRzIFBvcHVwV2luZG93IHsNCiAgICBjb25zdHJ1Y3RvcigpIHsNCiAgICAgICAgc3VwZXIoLi4uYXJndW1lbnRzKTsNCiAgICAgICAgdGhpcy50YWJsZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlRBQkxFIik7DQogICAgfQ0KICAgIGNyZWF0ZUhlYWRsaW5lKGhlYWRsaW5lKSB7DQogICAgICAgIHRoaXMuZG9jLmlubmVySFRNTCA9ICIiOw0KICAgICAgICB2YXIgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIkgzIik7DQogICAgICAgIGVsZW1lbnQuaW5uZXJIVE1MID0gaGVhZGxpbmUudG9VcHBlckNhc2UoKTsNCiAgICAgICAgdGhpcy5kb2MuYXBwZW5kQ2hpbGQoZWxlbWVudCk7DQogICAgICAgIC8vIFRhYmVsbGUgZXJzdGVsbGVuDQogICAgICAgIHRoaXMudGFibGUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJUQUJMRSIpOw0KICAgICAgICB0aGlzLmRvYy5hcHBlbmRDaGlsZCh0aGlzLnRhYmxlKTsNCiAgICB9DQogICAgYXBwZW5kUm93KHRpdGxlLCBlbGVtZW50KSB7DQogICAgICAgIGxldCB0ciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlRSIik7DQogICAgICAgIC8vIEJlemVpY2hudW5nDQogICAgICAgIGlmICh0aXRsZS5sZW5ndGggIT0gMCkgew0KICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQodGhpcy5jcmVhdGVUaXRsZSh0aXRsZSkpOw0KICAgICAgICB9DQogICAgICAgIC8vIENvbnRlbnQNCiAgICAgICAgdHIuYXBwZW5kQ2hpbGQodGhpcy5jcmVhdGVDb250ZW50KGVsZW1lbnQpKTsNCiAgICAgICAgdGhpcy50YWJsZS5hcHBlbmRDaGlsZCh0cik7DQogICAgfQ0KICAgIGNyZWF0ZUlucHV0KHR5cGUsIG5hbWUsIHZhbHVlKSB7DQogICAgICAgIGxldCBpbnB1dCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIklOUFVUIik7DQogICAgICAgIGlmICh2YWx1ZSA9PSB1bmRlZmluZWQpIHsNCiAgICAgICAgICAgIHZhbHVlID0gIiI7DQogICAgICAgIH0NCiAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJ0eXBlIiwgdHlwZSk7DQogICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgibmFtZSIsIG5hbWUpOw0KICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInZhbHVlIiwgdmFsdWUpOw0KICAgICAgICByZXR1cm4gaW5wdXQ7DQogICAgfQ0KICAgIGNyZWF0ZUNoZWNrYm94KG5hbWUpIHsNCiAgICAgICAgbGV0IGlucHV0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiSU5QVVQiKTsNCiAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJ0eXBlIiwgImNoZWNrYm94Iik7DQogICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgibmFtZSIsIG5hbWUpOw0KICAgICAgICByZXR1cm4gaW5wdXQ7DQogICAgfQ0KICAgIC8vIENyZWF0ZXMgYSBzZWxlY3Rpb24gb2YgbXVsdGlwbGUgb3B0aW9ucyB2YWx1ZXMgd2l0aCB0ZXh0IGRlc2NyaXB0aW9ucw0KICAgIGNyZWF0ZVNlbGVjdCh0ZXh0LCB2YWx1ZXMsIHNldCwgZGJLZXkpIHsNCiAgICAgICAgbGV0IHNlbGVjdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlNFTEVDVCIpOw0KICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJuYW1lIiwgZGJLZXkpOw0KICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRleHQubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgICAgIGxldCBvcHRpb24gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJPUFRJT04iKTsNCiAgICAgICAgICAgIG9wdGlvbi5zZXRBdHRyaWJ1dGUoInZhbHVlIiwgdmFsdWVzW2ldKTsNCiAgICAgICAgICAgIG9wdGlvbi5pbm5lclRleHQgPSB0ZXh0W2ldOw0KICAgICAgICAgICAgc2VsZWN0LmFwcGVuZENoaWxkKG9wdGlvbik7DQogICAgICAgIH0NCiAgICAgICAgaWYgKHNldCAhPSAiIikgew0KICAgICAgICAgICAgc2VsZWN0LnZhbHVlID0gc2V0Ow0KICAgICAgICB9DQogICAgICAgIGlmIChzZXQgPT0gdW5kZWZpbmVkKSB7DQogICAgICAgICAgICBzZWxlY3QudmFsdWUgPSB2YWx1ZXNbMF07DQogICAgICAgIH0NCiAgICAgICAgcmV0dXJuIHNlbGVjdDsNCiAgICB9DQogICAgc2VsZWN0T3B0aW9uKHNlbGVjdCwgdmFsdWUpIHsNCiAgICAgICAgLy9zZWxlY3Quc2VsZWN0ZWRPcHRpb25zID0gdmFsdWUNCiAgICAgICAgbGV0IHMgPSBzZWxlY3Q7DQogICAgICAgIHMub3B0aW9uc1tzLnNlbGVjdGVkSW5kZXhdLnZhbHVlID0gdmFsdWU7DQogICAgICAgIHJldHVybiBzZWxlY3Q7DQogICAgfQ0KICAgIGRlc2NyaXB0aW9uKHZhbHVlKSB7DQogICAgICAgIGxldCB0ciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlRSIik7DQogICAgICAgIGxldCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgIGxldCBzcGFuID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiUFJFIik7DQogICAgICAgIHNwYW4uaW5uZXJIVE1MID0gdmFsdWU7DQogICAgICAgIHRyLmFwcGVuZENoaWxkKHRkKTsNCiAgICAgICAgdHIuYXBwZW5kQ2hpbGQodGhpcy5jcmVhdGVDb250ZW50KHNwYW4pKTsNCiAgICAgICAgdGhpcy50YWJsZS5hcHBlbmRDaGlsZCh0cik7DQogICAgfQ0KICAgIC8vIEludGVyYWt0aW9uDQogICAgYWRkSW50ZXJhY3Rpb24oZWxlbWVudCkgew0KICAgICAgICBsZXQgaW50ZXJhY3Rpb24gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicG9wdXAtaW50ZXJhY3Rpb24iKTsNCiAgICAgICAgaW50ZXJhY3Rpb24uYXBwZW5kQ2hpbGQoZWxlbWVudCk7DQogICAgfQ0KfQ0KZnVuY3Rpb24gb3BlblBvcFVwKGRhdGFUeXBlLCBlbGVtZW50KSB7DQogICAgbGV0IGRhdGEgPSB7fTsNCiAgICBsZXQgaWQ7DQogICAgc3dpdGNoIChlbGVtZW50KSB7DQogICAgICAgIGNhc2UgdW5kZWZpbmVkOg0KICAgICAgICAgICAgc3dpdGNoIChkYXRhVHlwZSkgew0KICAgICAgICAgICAgICAgIGNhc2UgImdyb3VwLXRpdGxlIjoNCiAgICAgICAgICAgICAgICAgICAgaWYgKGlkID09IHVuZGVmaW5lZCkgew0KICAgICAgICAgICAgICAgICAgICAgICAgaWQgPSAtMTsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBkYXRhID0gZ2V0TG9jYWxEYXRhKCJmaWx0ZXIiLCBpZCk7DQogICAgICAgICAgICAgICAgICAgIGRhdGFbInR5cGUiXSA9ICJncm91cC10aXRsZSI7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgImN1c3RvbS1maWx0ZXIiOg0KICAgICAgICAgICAgICAgICAgICBpZiAoaWQgPT0gdW5kZWZpbmVkKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBpZCA9IC0xOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIGRhdGEgPSBnZXRMb2NhbERhdGEoImZpbHRlciIsIGlkKTsNCiAgICAgICAgICAgICAgICAgICAgZGF0YVsidHlwZSJdID0gImN1c3RvbS1maWx0ZXIiOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBkZWZhdWx0Og0KICAgICAgICAgICAgICAgICAgICBkYXRhWyJpZC5wcm92aWRlciJdID0gIi0iOw0KICAgICAgICAgICAgICAgICAgICBkYXRhWyJ0eXBlIl0gPSBkYXRhVHlwZTsNCiAgICAgICAgICAgICAgICAgICAgaWQgPSAiLSI7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICBpZCA9IGVsZW1lbnQuaWQ7DQogICAgICAgICAgICBkYXRhID0gZ2V0TG9jYWxEYXRhKGRhdGFUeXBlLCBpZCk7DQogICAgICAgICAgICBicmVhazsNCiAgICB9DQogICAgbGV0IGNvbnRlbnQgPSBuZXcgUG9wdXBDb250ZW50KCk7DQogICAgc3dpdGNoIChkYXRhVHlwZSkgew0KICAgICAgICBjYXNlICJwbGF5bGlzdCI6DQogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUhlYWRsaW5lKCJ7ey5wbGF5bGlzdC5wbGF5bGlzdFR5cGUudGl0bGV9fSIpOw0KICAgICAgICAgICAgLy8gVHlwZQ0KICAgICAgICAgICAgdmFyIHRleHQgPSBbIk0zVSIsICJIREhvbWVSdW4iXTsNCiAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBbImphdmFzY3JpcHQ6IG9wZW5Qb3BVcCgnbTN1JykiLCAiamF2YXNjcmlwdDogb3BlblBvcFVwKCdoZGhyJykiXTsNCiAgICAgICAgICAgIHZhciBzZWxlY3QgPSBjb250ZW50LmNyZWF0ZVNlbGVjdCh0ZXh0LCB2YWx1ZXMsICIiLCAidHlwZSIpOw0KICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgiaWQiLCAidHlwZSIpOw0KICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAnamF2YXNjcmlwdDogY2hhbmdlQnV0dG9uQWN0aW9uKHRoaXMsICJuZXh0IiwgIm9uY2xpY2siKScpOyAvLyBjaGFuZ2VCdXR0b25BY3Rpb24NCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5wbGF5bGlzdC50eXBlLnRpdGxlfX0iLCBzZWxlY3QpOw0KICAgICAgICAgICAgLy8gSW50ZXJha3Rpb24NCiAgICAgICAgICAgIGNvbnRlbnQuY3JlYXRlSW50ZXJhY3Rpb24oKTsNCiAgICAgICAgICAgIC8vIEFiYnJlY2hlbg0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImNhbmNlbCIsICJ7ey5idXR0b24uY2FuY2VsfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBzaG93RWxlbWVudCgicG9wdXAiLCBmYWxzZSk7Jyk7DQogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIC8vIFdlaXRlcg0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgIm5leHQiLCAie3suYnV0dG9uLm5leHR9fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgibTN1IiknKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgiaWQiLCAnbmV4dCcpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSAibTN1IjoNCiAgICAgICAgICAgIGNvbnRlbnQuY3JlYXRlSGVhZGxpbmUoZGF0YVR5cGUpOw0KICAgICAgICAgICAgLy8gTmFtZQ0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gIm5hbWUiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnBsYXlsaXN0Lm5hbWUucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnBsYXlsaXN0Lm5hbWUudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIEJlc2NocmVpYnVuZw0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gImRlc2NyaXB0aW9uIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5wbGF5bGlzdC5kZXNjcmlwdGlvbi5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sucGxheWxpc3QuZGVzY3JpcHRpb24udGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIFVSTA0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gImZpbGUuc291cmNlIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5wbGF5bGlzdC5maWxlTTNVLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5wbGF5bGlzdC5maWxlTTNVLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBUdW5lcg0KICAgICAgICAgICAgaWYgKFNFUlZFUlsic2V0dGluZ3MiXVsiYnVmZmVyIl0gIT0gIi0iKSB7DQogICAgICAgICAgICAgICAgdmFyIHRleHQgPSBbXTsNCiAgICAgICAgICAgICAgICB2YXIgdmFsdWVzID0gW107DQogICAgICAgICAgICAgICAgZm9yICh2YXIgaSA9IDE7IGkgPD0gMTAwOyBpKyspIHsNCiAgICAgICAgICAgICAgICAgICAgdGV4dC5wdXNoKGkudG9TdHJpbmcoKSk7DQogICAgICAgICAgICAgICAgICAgIHZhbHVlcy5wdXNoKGkudG9TdHJpbmcoKSk7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIHZhciBkYktleSA9ICJ0dW5lciI7DQogICAgICAgICAgICAgICAgdmFyIHNlbGVjdCA9IGNvbnRlbnQuY3JlYXRlU2VsZWN0KHRleHQsIHZhbHVlcywgZGF0YVtkYktleV0sIGRiS2V5KTsNCiAgICAgICAgICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJvbmZvY3VzIiwgImphdmFzY3JpcHQ6IHJldHVybjsiKTsNCiAgICAgICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sucGxheWxpc3QudHVuZXIudGl0bGV9fSIsIHNlbGVjdCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICB2YXIgZGJLZXkgPSAidHVuZXIiOw0KICAgICAgICAgICAgICAgIGlmIChkYXRhW2RiS2V5XSA9PSB1bmRlZmluZWQpIHsNCiAgICAgICAgICAgICAgICAgICAgZGF0YVtkYktleV0gPSAxOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInJlYWRvbmx5IiwgInRydWUiKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5jbGFzc05hbWUgPSAibm90QXZhaWxhYmxlIjsNCiAgICAgICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sucGxheWxpc3QudHVuZXIudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGNvbnRlbnQuZGVzY3JpcHRpb24oInt7LnBsYXlsaXN0LnR1bmVyLmRlc2NyaXB0aW9ufX0iKTsNCiAgICAgICAgICAgIC8vIEludGVyYWt0aW9uDQogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUludGVyYWN0aW9uKCk7DQogICAgICAgICAgICAvLyBMw7ZzY2hlbg0KICAgICAgICAgICAgaWYgKGRhdGFbImlkLnByb3ZpZGVyIl0gIT0gIi0iKSB7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImRlbGV0ZSIsICJ7ey5idXR0b24uZGVsZXRlfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5jbGFzc05hbWUgPSAiZGVsZXRlIjsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogc2F2ZVBvcHVwRGF0YSgibTN1IiwgIicgKyBpZCArICciLCB0cnVlLCAwKScpOw0KICAgICAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgZWxzZSB7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImJhY2siLCAie3suYnV0dG9uLmJhY2t9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoInBsYXlsaXN0IiknKTsNCiAgICAgICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIC8vIEFiYnJlY2hlbg0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImNhbmNlbCIsICJ7ey5idXR0b24uY2FuY2VsfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBzaG93RWxlbWVudCgicG9wdXAiLCBmYWxzZSk7Jyk7DQogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIC8vIEFrdHVhbGlzaWVyZW4NCiAgICAgICAgICAgIGlmIChkYXRhWyJpZC5wcm92aWRlciJdICE9ICItIikgew0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJ1cGRhdGUiLCAie3suYnV0dG9uLnVwZGF0ZX19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoIm0zdSIsICInICsgaWQgKyAnIiwgZmFsc2UsIDEpJyk7DQogICAgICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICAvLyBTcGVpY2hlcm4NCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJzYXZlIiwgInt7LmJ1dHRvbi5zYXZlfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBzYXZlUG9wdXBEYXRhKCJtM3UiLCAiJyArIGlkICsgJyIsIGZhbHNlLCAwKScpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSAiaGRociI6DQogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUhlYWRsaW5lKGRhdGFUeXBlKTsNCiAgICAgICAgICAgIC8vIE5hbWUNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJuYW1lIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5wbGF5bGlzdC5uYW1lLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5wbGF5bGlzdC5uYW1lLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBCZXNjaHJlaWJ1bmcNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJkZXNjcmlwdGlvbiI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3sucGxheWxpc3QuZGVzY3JpcHRpb24ucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnBsYXlsaXN0LmRlc2NyaXB0aW9uLnBsYWNlaG9sZGVyfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBVUkwNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJmaWxlLnNvdXJjZSI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3sucGxheWxpc3QuZmlsZUhESFIucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnBsYXlsaXN0LmZpbGVIREhSLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBUdW5lcg0KICAgICAgICAgICAgaWYgKFNFUlZFUlsic2V0dGluZ3MiXVsiYnVmZmVyIl0gIT0gIi0iKSB7DQogICAgICAgICAgICAgICAgdmFyIHRleHQgPSBbXTsNCiAgICAgICAgICAgICAgICB2YXIgdmFsdWVzID0gW107DQogICAgICAgICAgICAgICAgZm9yICh2YXIgaSA9IDE7IGkgPD0gMTAwOyBpKyspIHsNCiAgICAgICAgICAgICAgICAgICAgdGV4dC5wdXNoKGkudG9TdHJpbmcoKSk7DQogICAgICAgICAgICAgICAgICAgIHZhbHVlcy5wdXNoKGkudG9TdHJpbmcoKSk7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIHZhciBkYktleSA9ICJ0dW5lciI7DQogICAgICAgICAgICAgICAgdmFyIHNlbGVjdCA9IGNvbnRlbnQuY3JlYXRlU2VsZWN0KHRleHQsIHZhbHVlcywgZGF0YVtkYktleV0sIGRiS2V5KTsNCiAgICAgICAgICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJvbmZvY3VzIiwgImphdmFzY3JpcHQ6IHJldHVybjsiKTsNCiAgICAgICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sucGxheWxpc3QudHVuZXIudGl0bGV9fSIsIHNlbGVjdCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICB2YXIgZGJLZXkgPSAidHVuZXIiOw0KICAgICAgICAgICAgICAgIGlmIChkYXRhW2RiS2V5XSA9PSB1bmRlZmluZWQpIHsNCiAgICAgICAgICAgICAgICAgICAgZGF0YVtkYktleV0gPSAxOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInJlYWRvbmx5IiwgInRydWUiKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5jbGFzc05hbWUgPSAibm90QXZhaWxhYmxlIjsNCiAgICAgICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sucGxheWxpc3QudHVuZXIudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGNvbnRlbnQuZGVzY3JpcHRpb24oInt7LnBsYXlsaXN0LnR1bmVyLmRlc2NyaXB0aW9ufX0iKTsNCiAgICAgICAgICAgIC8vIEludGVyYWt0aW9uDQogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUludGVyYWN0aW9uKCk7DQogICAgICAgICAgICAvLyBMw7ZzY2hlbg0KICAgICAgICAgICAgaWYgKGRhdGFbImlkLnByb3ZpZGVyIl0gIT0gIi0iKSB7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImRlbGV0ZSIsICJ7ey5idXR0b24uZGVsZXRlfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogc2F2ZVBvcHVwRGF0YSgiaGRociIsICInICsgaWQgKyAnIiwgdHJ1ZSwgMCknKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5jbGFzc05hbWUgPSAiZGVsZXRlIjsNCiAgICAgICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJiYWNrIiwgInt7LmJ1dHRvbi5iYWNrfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJwbGF5bGlzdCIpJyk7DQogICAgICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICAvLyBBYmJyZWNoZW4NCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJjYW5jZWwiLCAie3suYnV0dG9uLmNhbmNlbH19Iik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogc2hvd0VsZW1lbnQoInBvcHVwIiwgZmFsc2UpOycpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICAvLyBBa3R1YWxpc2llcmVuDQogICAgICAgICAgICBpZiAoZGF0YVsiaWQucHJvdmlkZXIiXSAhPSAiLSIpIHsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAidXBkYXRlIiwgInt7LmJ1dHRvbi51cGRhdGV9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBzYXZlUG9wdXBEYXRhKCJoZGhyIiwgIicgKyBpZCArICciLCBmYWxzZSwgMSknKTsNCiAgICAgICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIC8vIFNwZWljaGVybg0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgInNhdmUiLCAie3suYnV0dG9uLnNhdmV9fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoImhkaHIiLCAiJyArIGlkICsgJyIsIGZhbHNlLCAwKScpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSAiZmlsdGVyIjoNCiAgICAgICAgICAgIGNvbnRlbnQuY3JlYXRlSGVhZGxpbmUoZGF0YVR5cGUpOw0KICAgICAgICAgICAgLy8gVHlwZQ0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gInR5cGUiOw0KICAgICAgICAgICAgdmFyIHRleHQgPSBbIk0zVTogIiArICJ7ey5maWx0ZXIudHlwZS5ncm91cFRpdGxlfX0iLCAieFRlVmU6ICIgKyAie3suZmlsdGVyLnR5cGUuY3VzdG9tRmlsdGVyfX0iXTsNCiAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBbImphdmFzY3JpcHQ6IG9wZW5Qb3BVcCgnZ3JvdXAtdGl0bGUnKSIsICJqYXZhc2NyaXB0OiBvcGVuUG9wVXAoJ2N1c3RvbS1maWx0ZXInKSJdOw0KICAgICAgICAgICAgdmFyIHNlbGVjdCA9IGNvbnRlbnQuY3JlYXRlU2VsZWN0KHRleHQsIHZhbHVlcywgImphdmFzY3JpcHQ6IG9wZW5Qb3BVcCgnZ3JvdXAtdGl0bGUnKSIsIGRiS2V5KTsNCiAgICAgICAgICAgIHNlbGVjdC5zZXRBdHRyaWJ1dGUoImlkIiwgaWQpOw0KICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAnamF2YXNjcmlwdDogY2hhbmdlQnV0dG9uQWN0aW9uKHRoaXMsICJuZXh0IiwgIm9uY2xpY2siKTsnKTsgLy8gY2hhbmdlQnV0dG9uQWN0aW9uDQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3suZmlsdGVyLnR5cGUudGl0bGV9fSIsIHNlbGVjdCk7DQogICAgICAgICAgICAvLyBJbnRlcmFrdGlvbg0KICAgICAgICAgICAgY29udGVudC5jcmVhdGVJbnRlcmFjdGlvbigpOw0KICAgICAgICAgICAgLy8gQWJicmVjaGVuDQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAiY2FuY2VsIiwgInt7LmJ1dHRvbi5jYW5jZWx9fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IHNob3dFbGVtZW50KCJwb3B1cCIsIGZhbHNlKTsnKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgLy8gV2VpdGVyDQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAibmV4dCIsICJ7ey5idXR0b24ubmV4dH19Iik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJncm91cC10aXRsZSIpJyk7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoImlkIiwgJ25leHQnKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGNhc2UgImN1c3RvbS1maWx0ZXIiOg0KICAgICAgICBjYXNlICJncm91cC10aXRsZSI6DQogICAgICAgICAgICBzd2l0Y2ggKGRhdGFUeXBlKSB7DQogICAgICAgICAgICAgICAgY2FzZSAiY3VzdG9tLWZpbHRlciI6DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuY3JlYXRlSGVhZGxpbmUoInt7LmZpbHRlci5jdXN0b219fSIgKyAiIEZpbHRlciIpOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBjYXNlICJncm91cC10aXRsZSI6DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuY3JlYXRlSGVhZGxpbmUoInt7LmZpbHRlci5ncm91cH19IiArICIgRmlsdGVyIik7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgLy8gTmFtZSAgICAgIA0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gIm5hbWUiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LmZpbHRlci5uYW1lLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5maWx0ZXIubmFtZS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgLy8gQmVzY2hyZWlidW5nDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAiZGVzY3JpcHRpb24iOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LmZpbHRlci5kZXNjcmlwdGlvbi5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3suZmlsdGVyLmRlc2NyaXB0aW9uLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBUeXANCiAgICAgICAgICAgIHZhciBkYktleSA9ICJ0eXBlIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImhpZGRlbiIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygiIiwgaW5wdXQpOw0KICAgICAgICAgICAgdmFyIGZpbHRlclR5cGUgPSBkYXRhW2RiS2V5XTsNCiAgICAgICAgICAgIHN3aXRjaCAoZmlsdGVyVHlwZSkgew0KICAgICAgICAgICAgICAgIGNhc2UgImN1c3RvbS1maWx0ZXIiOg0KICAgICAgICAgICAgICAgICAgICAvLyBHcm/Dny0gS2xlaW5zY2hyZWlidW5nIGJlYWNodGVuDQogICAgICAgICAgICAgICAgICAgIHZhciBkYktleSA9ICJjYXNlU2Vuc2l0aXZlIjsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChkYktleSk7DQogICAgICAgICAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhW2RiS2V5XTsNCiAgICAgICAgICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LmZpbHRlci5jYXNlU2Vuc2l0aXZlLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAgICAgICAgIC8vIEZpbHRlcnJlZ2VsIChCZW51dHplcmRlZmluaWVydCkNCiAgICAgICAgICAgICAgICAgICAgdmFyIGRiS2V5ID0gImZpbHRlciI7DQogICAgICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LmZpbHRlci5maWx0ZXJSdWxlLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LmZpbHRlci5maWx0ZXJSdWxlLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgImdyb3VwLXRpdGxlIjoNCiAgICAgICAgICAgICAgICAgICAgLy9hbGVydChkYktleSArICIgIiArIGZpbHRlclR5cGUpDQogICAgICAgICAgICAgICAgICAgIC8vIEZpbHRlciBiYXNpZXJlbmQgYXVmIGRlbiBHcnVwcGVuIGluIGRlciBNM1UNCiAgICAgICAgICAgICAgICAgICAgdmFyIGRiS2V5ID0gImZpbHRlciI7DQogICAgICAgICAgICAgICAgICAgIHZhciBncm91cHNNM1UgPSBnZXRMb2NhbERhdGEoIm0zdUdyb3VwcyIsICIiKTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHRleHQgPSBncm91cHNNM1VbInRleHQiXTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHZhbHVlcyA9IGdyb3Vwc00zVVsidmFsdWUiXTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHNlbGVjdCA9IGNvbnRlbnQuY3JlYXRlU2VsZWN0KHRleHQsIHZhbHVlcywgZGF0YVtkYktleV0sIGRiS2V5KTsNCiAgICAgICAgICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LmZpbHRlci5maWx0ZXJHcm91cC50aXRsZX19Iiwgc2VsZWN0KTsNCiAgICAgICAgICAgICAgICAgICAgY29udGVudC5kZXNjcmlwdGlvbigie3suZmlsdGVyLmZpbHRlckdyb3VwLmRlc2NyaXB0aW9ufX0iKTsNCiAgICAgICAgICAgICAgICAgICAgLy8gR3Jvw58tIEtsZWluc2NocmVpYnVuZyBiZWFjaHRlbg0KICAgICAgICAgICAgICAgICAgICB2YXIgZGJLZXkgPSAiY2FzZVNlbnNpdGl2ZSI7DQogICAgICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goZGJLZXkpOw0KICAgICAgICAgICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YVtkYktleV07DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5maWx0ZXIuY2FzZVNlbnNpdGl2ZS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgICAgICAgICB2YXIgZGJLZXkgPSAiaW5jbHVkZSI7DQogICAgICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LmZpbHRlci5pbmNsdWRlLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LmZpbHRlci5pbmNsdWRlLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuZGVzY3JpcHRpb24oInt7LmZpbHRlci5pbmNsdWRlLmRlc2NyaXB0aW9ufX0iKTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGRiS2V5ID0gImV4Y2x1ZGUiOw0KICAgICAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5maWx0ZXIuZXhjbHVkZS5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5maWx0ZXIuZXhjbHVkZS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgICAgICAgICBjb250ZW50LmRlc2NyaXB0aW9uKCJ7ey5maWx0ZXIuZXhjbHVkZS5kZXNjcmlwdGlvbn19Iik7DQogICAgICAgICAgICAgICAgICAgIC8vIFByZXNlcnZlIE0zVSBQbGF5bGlzdCBDaGFubmVsIE1hcHBpbmcNCiAgICAgICAgICAgICAgICAgICAgdmFyIGRiS2V5ID0gInByZXNlcnZlTWFwcGluZyI7DQogICAgICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goZGJLZXkpOw0KICAgICAgICAgICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YVtkYktleV07DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5maWx0ZXIucHJlc2VydmVNYXBwaW5nLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAgICAgICAgIC8vIFN0YXJ0aW5nIENoYW5uZWwgTnVtYmVyIE1hcHBpbmcNCiAgICAgICAgICAgICAgICAgICAgdmFyIGRiS2V5ID0gInN0YXJ0aW5nQ2hhbm5lbCI7DQogICAgICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LmZpbHRlci5zdGFydGluZ0NoYW5uZWwucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3suZmlsdGVyLnN0YXJ0aW5nQ2hhbm5lbC50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgICAgICAgICAvLyBGaWxsIE1pc3NpbmcgRVBHIERhdGENCiAgICAgICAgICAgICAgICAgICAgLy8gVGhlIGZvbGxvd2luZyBjb2RlIG9ubHkgd29ya3Mgd2hlbiB4VGVWZSBEdW1teSBhbHJlYWR5IGV4aXN0cw0KICAgICAgICAgICAgICAgICAgICAvLyB2YXIgZGJLZXk6c3RyaW5nID0gImRlZmF1bHRNaXNzaW5nRVBHIg0KICAgICAgICAgICAgICAgICAgICAvLyB2YXIgeG1sdHY6WE1MVFZGaWxlID0gbmV3IFhNTFRWRmlsZSgpDQogICAgICAgICAgICAgICAgICAgIC8vIHZhciBzZWxlY3QgPSB4bWx0di5nZXRQcm9ncmFtcygieFRlVmUgRHVtbXkiLCBkYXRhW2RiS2V5XSkNCiAgICAgICAgICAgICAgICAgICAgLy8gc2VsZWN0LnNldEF0dHJpYnV0ZSgibmFtZSIsIGRiS2V5KQ0KICAgICAgICAgICAgICAgICAgICAvLyBzZWxlY3Quc2V0QXR0cmlidXRlKCJpZCIsICJwb3B1cC1taXNzaW5nLWVwZyIpDQogICAgICAgICAgICAgICAgICAgIC8vIFRoZSB3b3JrYXJvdW5kIGlzIGN1cnJlbnRseSB0byBoYXJkIGNvZGUgdGhlIHhUZVZlIER1bW15IGRhdGENCiAgICAgICAgICAgICAgICAgICAgdmFyIGRiS2V5ID0gImRlZmF1bHRNaXNzaW5nRVBHIjsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGxpc3RPcHRpb25zID0geyAidGV4dCI6IFsiLSIsICIzMCBNaW51dGVzICgzMF9NaW51dGVzKSIsICI2MCBNaW51dGVzICg2MF9NaW51dGVzKSIsICI5MCBNaW51dGVzICg5MF9NaW51dGVzKSIsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgIjEyMCBNaW51dGVzICgxMjBfTWludXRlcykiLCAiMTgwIE1pbnV0ZXMgKDMwX01pbnV0ZXMpIiwgIjI0MCBNaW51dGVzICgzMF9NaW51dGVzKSIsICIzNjAgTWludXRlcyAoMzBfTWludXRlcykiXSwNCiAgICAgICAgICAgICAgICAgICAgICAgICJ2YWx1ZSI6IFsiLSIsICIzMF9NaW51dGVzIiwgIjYwX01pbnV0ZXMiLCAiOTBfTWludXRlcyIsICIxMjBfTWludXRlcyIsICIxODBfTWludXRlcyIsICIyNDBfTWludXRlcyIsICIzNjBfTWludXRlcyIsXSB9Ow0KICAgICAgICAgICAgICAgICAgICB2YXIgdGV4dCA9IGxpc3RPcHRpb25zWyJ0ZXh0Il07DQogICAgICAgICAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBsaXN0T3B0aW9uc1sidmFsdWUiXTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHNlbGVjdCA9IGNvbnRlbnQuY3JlYXRlU2VsZWN0KHRleHQsIHZhbHVlcywgZGF0YVtkYktleV0sIGRiS2V5KTsNCiAgICAgICAgICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LmZpbHRlci5kZWZhdWx0TWlzc2luZ0VQRy50aXRsZX19Iiwgc2VsZWN0KTsNCiAgICAgICAgICAgICAgICAgICAgY29udGVudC5kZXNjcmlwdGlvbigie3suZmlsdGVyLmRlZmF1bHRNaXNzaW5nRVBHLmRlc2NyaXB0aW9ufX0iKTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICB9DQogICAgICAgICAgICAvLyBJbnRlcmFrdGlvbg0KICAgICAgICAgICAgY29udGVudC5jcmVhdGVJbnRlcmFjdGlvbigpOw0KICAgICAgICAgICAgLy8gTMO2c2NoZW4NCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJkZWxldGUiLCAie3suYnV0dG9uLmRlbGV0ZX19Iik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogc2F2ZVBvcHVwRGF0YSgiZmlsdGVyIiwgIicgKyBpZCArICciLCB0cnVlLCAwKScpOw0KICAgICAgICAgICAgaW5wdXQuY2xhc3NOYW1lID0gImRlbGV0ZSI7DQogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIC8vIEFiYnJlY2hlbg0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImNhbmNlbCIsICJ7ey5idXR0b24uY2FuY2VsfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBzaG93RWxlbWVudCgicG9wdXAiLCBmYWxzZSk7Jyk7DQogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIC8vIFNwZWljaGVybg0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgInNhdmUiLCAie3suYnV0dG9uLnNhdmV9fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoImZpbHRlciIsICInICsgaWQgKyAnIiwgZmFsc2UsIDApJyk7DQogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJ4bWx0diI6DQogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUhlYWRsaW5lKGRhdGFUeXBlKTsNCiAgICAgICAgICAgIC8vIE5hbWUNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJuYW1lIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey54bWx0di5uYW1lLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey54bWx0di5uYW1lLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBCZXNjaHJlaWJ1bmcNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJkZXNjcmlwdGlvbiI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3sueG1sdHYuZGVzY3JpcHRpb24ucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnhtbHR2LmRlc2NyaXB0aW9uLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBVUkwNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJmaWxlLnNvdXJjZSI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3sueG1sdHYuZmlsZVhNTFRWLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey54bWx0di5maWxlWE1MVFYudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIEludGVyYWt0aW9uDQogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUludGVyYWN0aW9uKCk7DQogICAgICAgICAgICAvLyBMw7ZzY2hlbg0KICAgICAgICAgICAgaWYgKGRhdGFbImlkLnByb3ZpZGVyIl0gIT0gIi0iKSB7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImRlbGV0ZSIsICJ7ey5idXR0b24uZGVsZXRlfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogc2F2ZVBvcHVwRGF0YSgieG1sdHYiLCAiJyArIGlkICsgJyIsIHRydWUsIDApJyk7DQogICAgICAgICAgICAgICAgaW5wdXQuY2xhc3NOYW1lID0gImRlbGV0ZSI7DQogICAgICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICAvLyBBYmJyZWNoZW4NCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJjYW5jZWwiLCAie3suYnV0dG9uLmNhbmNlbH19Iik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogc2hvd0VsZW1lbnQoInBvcHVwIiwgZmFsc2UpOycpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICAvLyBBa3R1YWxpc2llcmVuDQogICAgICAgICAgICBpZiAoZGF0YVsiaWQucHJvdmlkZXIiXSAhPSAiLSIpIHsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAidXBkYXRlIiwgInt7LmJ1dHRvbi51cGRhdGV9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBzYXZlUG9wdXBEYXRhKCJ4bWx0diIsICInICsgaWQgKyAnIiwgZmFsc2UsIDEpJyk7DQogICAgICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICAvLyBTcGVpY2hlcm4NCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJzYXZlIiwgInt7LmJ1dHRvbi5zYXZlfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBzYXZlUG9wdXBEYXRhKCJ4bWx0diIsICInICsgaWQgKyAnIiwgZmFsc2UsIDApJyk7DQogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJ1c2VycyI6DQogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUhlYWRsaW5lKCJ7ey5tYWluTWVudS5pdGVtLnVzZXJzfX0iKTsNCiAgICAgICAgICAgIC8vIEJlbnV0emVybmFtZSANCiAgICAgICAgICAgIHZhciBkYktleSA9ICJ1c2VybmFtZSI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3sudXNlcnMudXNlcm5hbWUucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnVzZXJzLnVzZXJuYW1lLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBOZXVlcyBQYXNzd29ydCANCiAgICAgICAgICAgIHZhciBkYktleSA9ICJwYXNzd29yZCI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJwYXNzd29yZCIsIGRiS2V5LCAiIik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnVzZXJzLnBhc3N3b3JkLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey51c2Vycy5wYXNzd29yZC50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgLy8gQmVzdMOkdGlndW5nIA0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gImNvbmZpcm0iOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgicGFzc3dvcmQiLCBkYktleSwgIiIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey51c2Vycy5jb25maXJtLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey51c2Vycy5jb25maXJtLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBCZXJlY2h0aWd1bmcgV0VCDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAiYXV0aGVudGljYXRpb24ud2ViIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goZGJLZXkpOw0KICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGFbZGJLZXldOw0KICAgICAgICAgICAgaWYgKGRhdGFbImRlZmF1bHRVc2VyIl0gPT0gdHJ1ZSkgew0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICJqYXZhc2NyaXB0OiByZXR1cm4gZmFsc2UiKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey51c2Vycy53ZWIudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIEJlcmVjaHRpZ3VuZyBQTVMNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJhdXRoZW50aWNhdGlvbi5wbXMiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChkYktleSk7DQogICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YVtkYktleV07DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sudXNlcnMucG1zLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBCZXJlY2h0aWd1bmcgTTNVDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAiYXV0aGVudGljYXRpb24ubTN1IjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goZGJLZXkpOw0KICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGFbZGJLZXldOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnVzZXJzLm0zdS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgLy8gQmVyZWNodGlndW5nIFhNTA0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gImF1dGhlbnRpY2F0aW9uLnhtbCI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KGRiS2V5KTsNCiAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhW2RiS2V5XTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey51c2Vycy54bWwudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIEJlcmVjaHRpZ3VuZyBBUEkNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJhdXRoZW50aWNhdGlvbi5hcGkiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChkYktleSk7DQogICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YVtkYktleV07DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sudXNlcnMuYXBpLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBJbnRlcmFrdGlvbg0KICAgICAgICAgICAgY29udGVudC5jcmVhdGVJbnRlcmFjdGlvbigpOw0KICAgICAgICAgICAgLy8gTMO2c2NoZW4NCiAgICAgICAgICAgIGlmIChkYXRhWyJkZWZhdWx0VXNlciJdICE9IHRydWUgJiYgaWQgIT0gIi0iKSB7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImRlbGV0ZSIsICJ7ey5idXR0b24uZGVsZXRlfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5jbGFzc05hbWUgPSAiZGVsZXRlIjsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogc2F2ZVBvcHVwRGF0YSgiJyArIGRhdGFUeXBlICsgJyIsICInICsgaWQgKyAnIiwgdHJ1ZSwgMCknKTsNCiAgICAgICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIC8vIEFiYnJlY2hlbg0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImNhbmNlbCIsICJ7ey5idXR0b24uY2FuY2VsfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBzaG93RWxlbWVudCgicG9wdXAiLCBmYWxzZSk7Jyk7DQogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIC8vIFNwZWljaGVybg0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgInNhdmUiLCAie3suYnV0dG9uLnNhdmV9fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoIicgKyBkYXRhVHlwZSArICciLCAiJyArIGlkICsgJyIsICJmYWxzZSIpOycpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSAibWFwcGluZyI6DQogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUhlYWRsaW5lKCJ7ey5tYWluTWVudS5pdGVtLm1hcHBpbmd9fSIpOw0KICAgICAgICAgICAgLy8gQWt0aXYgDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAieC1hY3RpdmUiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChkYktleSk7DQogICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YVtkYktleV07DQogICAgICAgICAgICBpbnB1dC5pZCA9ICJhY3RpdmUiOw0KICAgICAgICAgICAgLy9pbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIikNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdG9nZ2xlQ2hhbm5lbFN0YXR1cygnIiArIGlkICsgIicsIHRoaXMpIik7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3subWFwcGluZy5hY3RpdmUudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIEthbmFsbmFtZSANCiAgICAgICAgICAgIHZhciBkYktleSA9ICJ4LW5hbWUiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICBpZiAoQlVMS19FRElUID09IHRydWUpIHsNCiAgICAgICAgICAgICAgICBpbnB1dC5zdHlsZS5ib3JkZXIgPSAic29saWQgMXB4IHJlZCI7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJyZWFkb25seSIsICJ0cnVlIik7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3subWFwcGluZy5jaGFubmVsTmFtZS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgY29udGVudC5kZXNjcmlwdGlvbihkYXRhWyJuYW1lIl0pOw0KICAgICAgICAgICAgLy8gQmVzY2hyZWlidW5nIA0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gIngtZGVzY3JpcHRpb24iOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7Lm1hcHBpbmcuZGVzY3JpcHRpb24ucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7Lm1hcHBpbmcuZGVzY3JpcHRpb24udGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIEFrdHVhbGlzaWVydW5nIGRlcyBLYW5hbG5hbWVucw0KICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoIl91dWlkLmtleSIpKSB7DQogICAgICAgICAgICAgICAgaWYgKGRhdGFbIl91dWlkLmtleSJdICE9ICIiKSB7DQogICAgICAgICAgICAgICAgICAgIHZhciBkYktleSA9ICJ4LXVwZGF0ZS1jaGFubmVsLW5hbWUiOw0KICAgICAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KGRiS2V5KTsNCiAgICAgICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YVtkYktleV07DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5tYXBwaW5nLnVwZGF0ZUNoYW5uZWxOYW1lLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgLy8gTG9nbyBVUkwgKEthbmFsKSANCiAgICAgICAgICAgIHZhciBkYktleSA9ICJ0dmctbG9nbyI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgiaWQiLCAiY2hhbm5lbC1pY29uIik7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3subWFwcGluZy5jaGFubmVsTG9nby50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgLy8gQWt0dWFsaXNpZXJ1bmcgZGVzIEthbmFsbG9nb3MNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJ4LXVwZGF0ZS1jaGFubmVsLWljb24iOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChkYktleSk7DQogICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YVtkYktleV07DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoImlkIiwgInVwZGF0ZS1pY29uIik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnOyBjaGFuZ2VDaGFubmVsTG9nbygnIiArIGlkICsgIicpOyIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7Lm1hcHBpbmcudXBkYXRlQ2hhbm5lbExvZ28udGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIEVyd2VpdGVybiBkZXIgRVBHIEthdGVnb3JpZQ0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gIngtY2F0ZWdvcnkiOw0KICAgICAgICAgICAgdmFyIHRleHQgPSBbIi0iLCAiS2lkcyAoRW1ieSBvbmx5KSIsICJOZXdzIiwgIk1vdmllIiwgIlNlcmllcyIsICJTcG9ydHMiXTsNCiAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBbIiIsICJLaWRzIiwgIk5ld3MiLCAiTW92aWUiLCAiU2VyaWVzIiwgIlNwb3J0cyJdOw0KICAgICAgICAgICAgdmFyIHNlbGVjdCA9IGNvbnRlbnQuY3JlYXRlU2VsZWN0KHRleHQsIHZhbHVlcywgZGF0YVtkYktleV0sIGRiS2V5KTsNCiAgICAgICAgICAgIHNlbGVjdC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3subWFwcGluZy5lcGdDYXRlZ29yeS50aXRsZX19Iiwgc2VsZWN0KTsNCiAgICAgICAgICAgIC8vIE0zVSBHcnVwcGVudGl0ZWwNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJ4LWdyb3VwLXRpdGxlIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7Lm1hcHBpbmcubTN1R3JvdXBUaXRsZS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgaWYgKGRhdGFbImdyb3VwLXRpdGxlIl0gIT0gdW5kZWZpbmVkKSB7DQogICAgICAgICAgICAgICAgY29udGVudC5kZXNjcmlwdGlvbihkYXRhWyJncm91cC10aXRsZSJdKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIC8vIFhNTFRWIERhdGVpDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAieC14bWx0di1maWxlIjsNCiAgICAgICAgICAgIHZhciB4bWxGaWxlID0gZGF0YVtkYktleV07DQogICAgICAgICAgICB2YXIgeG1sdHYgPSBuZXcgWE1MVFZGaWxlKCk7DQogICAgICAgICAgICB2YXIgc2VsZWN0ID0geG1sdHYuZ2V0RmlsZXMoZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgibmFtZSIsIGRiS2V5KTsNCiAgICAgICAgICAgIHNlbGVjdC5zZXRBdHRyaWJ1dGUoImlkIiwgInBvcHVwLXhtbHR2Iik7DQogICAgICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJzsgc2V0WG1sdHZDaGFubmVsKCciICsgaWQgKyAiJyx0aGlzKTsiKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5tYXBwaW5nLnhtbHR2RmlsZS50aXRsZX19Iiwgc2VsZWN0KTsNCiAgICAgICAgICAgIHZhciBmaWxlID0gZGF0YVtkYktleV07DQogICAgICAgICAgICAvLyBYTUxUViBNYXBwaW5nDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAieC1tYXBwaW5nIjsNCiAgICAgICAgICAgIHZhciB4bWx0diA9IG5ldyBYTUxUVkZpbGUoKTsNCiAgICAgICAgICAgIHZhciBzZWxlY3QgPSB4bWx0di5nZXRQcm9ncmFtcyhmaWxlLCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJuYW1lIiwgZGJLZXkpOw0KICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgiaWQiLCAicG9wdXAtbWFwcGluZyIpOw0KICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCc7IGNoZWNrWG1sdHZDaGFubmVsKCciICsgaWQgKyAiJyx0aGlzLCciICsgeG1sRmlsZSArICInKTsiKTsNCiAgICAgICAgICAgIHNvcnRTZWxlY3Qoc2VsZWN0KTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5tYXBwaW5nLnhtbHR2Q2hhbm5lbC50aXRsZX19Iiwgc2VsZWN0KTsNCiAgICAgICAgICAgIC8vIFRpbWVzaGlmdA0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gIngtdGltZXNoaWZ0IjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5tYXBwaW5nLnRpbWVzaGlmdC5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoImlkIiwgInRpbWVzaGlmdCIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7Lm1hcHBpbmcudGltZXNoaWZ0LnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBJbnRlcmFrdGlvbg0KICAgICAgICAgICAgY29udGVudC5jcmVhdGVJbnRlcmFjdGlvbigpOw0KICAgICAgICAgICAgLy8gTG9nbyBob2NobGFkZW4NCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJjYW5jZWwiLCAie3suYnV0dG9uLnVwbG9hZExvZ299fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IHVwbG9hZExvZ28oKTsnKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgLy8gQWJicmVjaGVuDQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAiY2FuY2VsIiwgInt7LmJ1dHRvbi5jYW5jZWx9fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IHNob3dFbGVtZW50KCJwb3B1cCIsIGZhbHNlKTsnKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgLy8gRmVydGlnDQogICAgICAgICAgICB2YXIgaWRzID0gW107DQogICAgICAgICAgICBpZHMgPSBnZXRBbGxTZWxlY3RlZENoYW5uZWxzKCk7DQogICAgICAgICAgICBpZiAoaWRzLmxlbmd0aCA9PSAwKSB7DQogICAgICAgICAgICAgICAgaWRzLnB1c2goaWQpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgInNhdmUiLCAie3suYnV0dG9uLmRvbmV9fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IGRvbmVQb3B1cERhdGEoIicgKyBkYXRhVHlwZSArICciLCAiJyArIGlkcyArICciLCAiZmFsc2UiKTsnKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICBicmVhazsNCiAgICB9DQogICAgc2hvd1BvcFVwRWxlbWVudCgncG9wdXAtY3VzdG9tJyk7DQp9DQpjbGFzcyBYTUxUVkZpbGUgew0KICAgIGdldEZpbGVzKHNldCkgew0KICAgICAgICBsZXQgZmlsZUlEcyA9IGdldE9iaktleXMoU0VSVkVSWyJ4ZXBnIl1bInhtbHR2TWFwIl0pOw0KICAgICAgICBsZXQgdmFsdWVzID0gbmV3IEFycmF5KCItIik7DQogICAgICAgIGxldCB0ZXh0ID0gbmV3IEFycmF5KCItIik7DQogICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgZmlsZUlEcy5sZW5ndGg7IGkrKykgew0KICAgICAgICAgICAgaWYgKGZpbGVJRHNbaV0gIT0gInhUZVZlIER1bW15Iikgew0KICAgICAgICAgICAgICAgIHZhbHVlcy5wdXNoKGdldFZhbHVlRnJvbVByb3ZpZGVyRmlsZShmaWxlSURzW2ldLCAieG1sdHYiLCAiZmlsZS54dGV2ZSIpKTsNCiAgICAgICAgICAgICAgICB0ZXh0LnB1c2goZ2V0VmFsdWVGcm9tUHJvdmlkZXJGaWxlKGZpbGVJRHNbaV0sICJ4bWx0diIsICJuYW1lIikpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgZWxzZSB7DQogICAgICAgICAgICAgICAgdmFsdWVzLnB1c2goZmlsZUlEc1tpXSk7DQogICAgICAgICAgICAgICAgdGV4dC5wdXNoKGZpbGVJRHNbaV0pOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQogICAgICAgIGxldCBzZWxlY3QgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJTRUxFQ1QiKTsNCiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0ZXh0Lmxlbmd0aDsgaSsrKSB7DQogICAgICAgICAgICB2YXIgb3B0aW9uID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiT1BUSU9OIik7DQogICAgICAgICAgICBvcHRpb24uc2V0QXR0cmlidXRlKCJ2YWx1ZSIsIHZhbHVlc1tpXSk7DQogICAgICAgICAgICBvcHRpb24uaW5uZXJUZXh0ID0gdGV4dFtpXTsNCiAgICAgICAgICAgIHNlbGVjdC5hcHBlbmRDaGlsZChvcHRpb24pOw0KICAgICAgICB9DQogICAgICAgIGlmIChzZXQgIT0gIiIpIHsNCiAgICAgICAgICAgIHNlbGVjdC52YWx1ZSA9IHNldDsNCiAgICAgICAgfQ0KICAgICAgICByZXR1cm4gc2VsZWN0Ow0KICAgIH0NCiAgICBnZXRQcm9ncmFtcyhmaWxlLCBzZXQpIHsNCiAgICAgICAgLy92YXIgZmlsZUlEczpzdHJpbmdbXSA9IGdldE9iaktleXMoU0VSVkVSWyJ4ZXBnIl1bInhtbHR2TWFwIl0pDQogICAgICAgIGxldCB2YWx1ZXMgPSBnZXRPYmpLZXlzKFNFUlZFUlsieGVwZyJdWyJ4bWx0dk1hcCJdW2ZpbGVdKTsNCiAgICAgICAgbGV0IHRleHQgPSBbXTsNCiAgICAgICAgbGV0IGRpc3BsYXlOYW1lOw0KICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHZhbHVlcy5sZW5ndGg7IGkrKykgew0KICAgICAgICAgICAgaWYgKFNFUlZFUlsieGVwZyJdWyJ4bWx0dk1hcCJdW2ZpbGVdW3ZhbHVlc1tpXV0uaGFzT3duUHJvcGVydHkoJ2Rpc3BsYXktbmFtZScpID09IHRydWUpIHsNCiAgICAgICAgICAgICAgICBkaXNwbGF5TmFtZSA9IFNFUlZFUlsieGVwZyJdWyJ4bWx0dk1hcCJdW2ZpbGVdW3ZhbHVlc1tpXV1bImRpc3BsYXktbmFtZSJdOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgZWxzZSB7DQogICAgICAgICAgICAgICAgZGlzcGxheU5hbWUgPSAiLSI7DQogICAgICAgICAgICB9DQogICAgICAgICAgICB0ZXh0W2ldID0gZGlzcGxheU5hbWUgKyAiICgiICsgdmFsdWVzW2ldICsgIikiOw0KICAgICAgICB9DQogICAgICAgIHRleHQudW5zaGlmdCgiLSIpOw0KICAgICAgICB2YWx1ZXMudW5zaGlmdCgiLSIpOw0KICAgICAgICBsZXQgc2VsZWN0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiU0VMRUNUIik7DQogICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGV4dC5sZW5ndGg7IGkrKykgew0KICAgICAgICAgICAgdmFyIG9wdGlvbiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIk9QVElPTiIpOw0KICAgICAgICAgICAgb3B0aW9uLnNldEF0dHJpYnV0ZSgidmFsdWUiLCB2YWx1ZXNbaV0pOw0KICAgICAgICAgICAgb3B0aW9uLmlubmVyVGV4dCA9IHRleHRbaV07DQogICAgICAgICAgICBzZWxlY3QuYXBwZW5kQ2hpbGQob3B0aW9uKTsNCiAgICAgICAgfQ0KICAgICAgICBpZiAoc2V0ICE9ICIiKSB7DQogICAgICAgICAgICBzZWxlY3QudmFsdWUgPSBzZXQ7DQogICAgICAgIH0NCiAgICAgICAgaWYgKHNlbGVjdC52YWx1ZSAhPSBzZXQpIHsNCiAgICAgICAgICAgIHNlbGVjdC52YWx1ZSA9ICItIjsNCiAgICAgICAgfQ0KICAgICAgICByZXR1cm4gc2VsZWN0Ow0KICAgIH0NCn0NCmZ1bmN0aW9uIGdldFZhbHVlRnJvbVByb3ZpZGVyRmlsZShmaWxlLCBmaWxlVHlwZSwga2V5KSB7DQogICAgaWYgKGZpbGUgPT0gInhUZVZlIER1bW15Iikgew0KICAgICAgICByZXR1cm4gZmlsZTsNCiAgICB9DQogICAgbGV0IGZpbGVJRDsNCiAgICBsZXQgaW5kaWNhdG9yID0gZmlsZS5jaGFyQXQoMCk7DQogICAgc3dpdGNoIChpbmRpY2F0b3IpIHsNCiAgICAgICAgY2FzZSAiTSI6DQogICAgICAgICAgICBmaWxlVHlwZSA9ICJtM3UiOw0KICAgICAgICAgICAgZmlsZUlEID0gZmlsZTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJIIjoNCiAgICAgICAgICAgIGZpbGVUeXBlID0gImhkaHIiOw0KICAgICAgICAgICAgZmlsZUlEID0gZmlsZTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJYIjoNCiAgICAgICAgICAgIGZpbGVUeXBlID0gInhtbHR2IjsNCiAgICAgICAgICAgIGZpbGVJRCA9IGZpbGUuc3Vic3RyaW5nKDAsIGZpbGUubGFzdEluZGV4T2YoJy4nKSk7DQogICAgICAgICAgICBicmVhazsNCiAgICB9DQogICAgaWYgKFNFUlZFUlsic2V0dGluZ3MiXVsiZmlsZXMiXVtmaWxlVHlwZV0uaGFzT3duUHJvcGVydHkoZmlsZUlEKSA9PSB0cnVlKSB7DQogICAgICAgIHZhciBkYXRhID0gU0VSVkVSWyJzZXR0aW5ncyJdWyJmaWxlcyJdW2ZpbGVUeXBlXVtmaWxlSURdOw0KICAgICAgICByZXR1cm4gZGF0YVtrZXldOw0KICAgIH0NCiAgICByZXR1cm47DQp9DQpmdW5jdGlvbiBzZXRYbWx0dkNoYW5uZWwoaWQsIGVsZW1lbnQpIHsNCiAgICBsZXQgeG1sdHYgPSBuZXcgWE1MVFZGaWxlKCk7DQogICAgbGV0IHhtbEZpbGUgPSBlbGVtZW50LnZhbHVlOw0KICAgIGxldCB0dmdJZCA9IFNFUlZFUlsieGVwZyJdWyJlcGdNYXBwaW5nIl1baWRdWyJ0dmctaWQiXTsNCiAgICBsZXQgdGQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicG9wdXAtbWFwcGluZyIpLnBhcmVudEVsZW1lbnQ7DQogICAgdGQuaW5uZXJIVE1MID0gIiI7DQogICAgbGV0IHNlbGVjdCA9IHhtbHR2LmdldFByb2dyYW1zKGVsZW1lbnQudmFsdWUsIHR2Z0lkKTsNCiAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJuYW1lIiwgIngtbWFwcGluZyIpOw0KICAgIHNlbGVjdC5zZXRBdHRyaWJ1dGUoImlkIiwgInBvcHVwLW1hcHBpbmciKTsNCiAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJzsgY2hlY2tYbWx0dkNoYW5uZWwoJyIgKyBpZCArICInLHRoaXMsJyIgKyB4bWxGaWxlICsgIicpOyIpOw0KICAgIHNlbGVjdC5jbGFzc05hbWUgPSAiY2hhbmdlZCI7DQogICAgc29ydFNlbGVjdChzZWxlY3QpOw0KICAgIHRkLmFwcGVuZENoaWxkKHNlbGVjdCk7DQogICAgY2hlY2tYbWx0dkNoYW5uZWwoaWQsIHNlbGVjdCwgeG1sRmlsZSk7DQp9DQpmdW5jdGlvbiBjaGVja1htbHR2Q2hhbm5lbChpZCwgZWxlbWVudCwgeG1sRmlsZSkgew0KICAgIGxldCB2YWx1ZSA9IGVsZW1lbnQudmFsdWU7DQogICAgbGV0IGJvb2w7DQogICAgbGV0IGNoZWNrYm94ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2FjdGl2ZScpOw0KICAgIGxldCBjaGFubmVsID0gU0VSVkVSWyJ4ZXBnIl1bImVwZ01hcHBpbmciXVtpZF07DQogICAgbGV0IHVwZGF0ZUxvZ287DQogICAgYm9vbCA9IHZhbHVlICE9ICItIjsNCiAgICBjaGVja2JveC5jaGVja2VkID0gYm9vbDsNCiAgICBjaGVja2JveC5jbGFzc05hbWUgPSAiY2hhbmdlZCI7DQogICAgY29uc29sZS5sb2coeG1sRmlsZSk7DQogICAgLy8gS2FuYWxsb2dvIGFrdHVhbGlzaWVyZW4NCiAgICAvKg0KICAgIHVwZGF0ZUxvZ28gPSAoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInVwZGF0ZS1pY29uIikgYXMgSFRNTElucHV0RWxlbWVudCkuY2hlY2tlZA0KICAgIGNvbnNvbGUubG9nKHVwZGF0ZUxvZ28pOw0KICAgICovDQogICAgaWYgKHhtbEZpbGUgIT0gInhUZVZlIER1bW15IiAmJiBib29sID09IHRydWUpIHsNCiAgICAgICAgLy8oZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInVwZGF0ZS1pY29uIikgYXMgSFRNTElucHV0RWxlbWVudCkuY2hlY2tlZCA9IHRydWU7DQogICAgICAgIC8vKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ1cGRhdGUtaWNvbiIpIGFzIEhUTUxJbnB1dEVsZW1lbnQpLmNsYXNzTmFtZSA9ICJjaGFuZ2VkIjsNCiAgICAgICAgY29uc29sZS5sb2coIklEIiwgaWQpOw0KICAgICAgICBjaGFuZ2VDaGFubmVsTG9nbyhpZCk7DQogICAgICAgIHJldHVybjsNCiAgICB9DQogICAgaWYgKHhtbEZpbGUgPT0gInhUZVZlIER1bW15Iikgew0KICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidXBkYXRlLWljb24iKS5jaGVja2VkID0gZmFsc2U7DQogICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ1cGRhdGUtaWNvbiIpLmNsYXNzTmFtZSA9ICJjaGFuZ2VkIjsNCiAgICB9DQogICAgcmV0dXJuOw0KfQ0KZnVuY3Rpb24gY2hhbmdlQ2hhbm5lbExvZ28oaWQpIHsNCiAgICBsZXQgdXBkYXRlTG9nbzsNCiAgICBsZXQgY2hhbm5lbCA9IFNFUlZFUlsieGVwZyJdWyJlcGdNYXBwaW5nIl1baWRdOw0KICAgIGxldCBmID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInBvcHVwLXhtbHR2Iik7DQogICAgbGV0IHhtbHR2RmlsZSA9IGYub3B0aW9uc1tmLnNlbGVjdGVkSW5kZXhdLnZhbHVlOw0KICAgIGxldCBtID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInBvcHVwLW1hcHBpbmciKTsNCiAgICBsZXQgeE1hcHBpbmcgPSBtLm9wdGlvbnNbbS5zZWxlY3RlZEluZGV4XS52YWx1ZTsNCiAgICBsZXQgeG1sdHZMb2dvID0gU0VSVkVSWyJ4ZXBnIl1bInhtbHR2TWFwIl1beG1sdHZGaWxlXVt4TWFwcGluZ11bImljb24iXTsNCiAgICB1cGRhdGVMb2dvID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInVwZGF0ZS1pY29uIikuY2hlY2tlZDsNCiAgICBpZiAodXBkYXRlTG9nbyA9PSB0cnVlICYmIHhtbHR2RmlsZSAhPSAieFRlVmUgRHVtbXkiKSB7DQogICAgICAgIGlmIChTRVJWRVJbInhlcGciXVsieG1sdHZNYXAiXVt4bWx0dkZpbGVdLmhhc093blByb3BlcnR5KHhNYXBwaW5nKSkgew0KICAgICAgICAgICAgdmFyIGxvZ28gPSB4bWx0dkxvZ287DQogICAgICAgIH0NCiAgICAgICAgZWxzZSB7DQogICAgICAgICAgICBsb2dvID0gY2hhbm5lbFsidHZnLWxvZ28iXTsNCiAgICAgICAgfQ0KICAgICAgICB2YXIgbG9nb0lucHV0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNoYW5uZWwtaWNvbiIpOw0KICAgICAgICBsb2dvSW5wdXQudmFsdWUgPSBsb2dvOw0KICAgICAgICBpZiAoQlVMS19FRElUID09IGZhbHNlKSB7DQogICAgICAgICAgICBsb2dvSW5wdXQuY2xhc3NOYW1lID0gImNoYW5nZWQiOw0KICAgICAgICB9DQogICAgfQ0KfQ0KZnVuY3Rpb24gc2F2ZVBvcHVwRGF0YShkYXRhVHlwZSwgaWQsIHJlbW92ZSwgb3B0aW9uKSB7DQogICAgaWYgKGRhdGFUeXBlID09ICJtYXBwaW5nIikgew0KICAgICAgICBsZXQgZGF0YSA9IHt9Ow0KICAgICAgICBjb25zb2xlLmxvZygiU2F2ZSBtYXBwaW5nIGRhdGEiKTsNCiAgICAgICAgbGV0IGNtZCA9ICJzYXZlRXBnTWFwcGluZyI7DQogICAgICAgIGRhdGFbImVwZ01hcHBpbmciXSA9IFNFUlZFUlsieGVwZyJdWyJlcGdNYXBwaW5nIl07DQogICAgICAgIGNvbnNvbGUubG9nKCJTRU5EIFRPIFNFUlZFUiIpOw0KICAgICAgICBsZXQgc2VydmVyID0gbmV3IFNlcnZlcihjbWQpOw0KICAgICAgICBzZXJ2ZXIucmVxdWVzdChkYXRhKTsNCiAgICAgICAgZGVsZXRlIFVORE9bImVwZ01hcHBpbmciXTsNCiAgICAgICAgcmV0dXJuOw0KICAgIH0NCiAgICBjb25zb2xlLmxvZygiU2F2ZSBwb3B1cCBkYXRhIik7DQogICAgbGV0IGRpdiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJwb3B1cC1jdXN0b20iKTsNCiAgICBsZXQgaW5wdXRzID0gZGl2LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJUQUJMRSIpWzBdLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJJTlBVVCIpOw0KICAgIGxldCBzZWxlY3RzID0gZGl2LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJUQUJMRSIpWzBdLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJTRUxFQ1QiKTsNCiAgICBsZXQgaW5wdXQgPSB7fTsNCiAgICBsZXQgY29uZmlybU1zZzsNCiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHNlbGVjdHMubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgdmFyIG5hbWU7DQogICAgICAgIG5hbWUgPSBzZWxlY3RzW2ldLm5hbWU7DQogICAgICAgIHZhciB2YWx1ZSA9IHNlbGVjdHNbaV0udmFsdWU7DQogICAgICAgIHN3aXRjaCAobmFtZSkgew0KICAgICAgICAgICAgY2FzZSAidHVuZXIiOg0KICAgICAgICAgICAgICAgIGlucHV0W25hbWVdID0gcGFyc2VJbnQodmFsdWUpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgICAgICBpbnB1dFtuYW1lXSA9IHZhbHVlOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICB9DQogICAgfQ0KICAgIGZvciAobGV0IGkgPSAwOyBpIDwgaW5wdXRzLmxlbmd0aDsgaSsrKSB7DQogICAgICAgIHN3aXRjaCAoaW5wdXRzW2ldLnR5cGUpIHsNCiAgICAgICAgICAgIGNhc2UgImNoZWNrYm94IjoNCiAgICAgICAgICAgICAgICBuYW1lID0gaW5wdXRzW2ldLm5hbWU7DQogICAgICAgICAgICAgICAgaW5wdXRbbmFtZV0gPSBpbnB1dHNbaV0uY2hlY2tlZDsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInRleHQiOg0KICAgICAgICAgICAgY2FzZSAiaGlkZGVuIjoNCiAgICAgICAgICAgIGNhc2UgInBhc3N3b3JkIjoNCiAgICAgICAgICAgICAgICBuYW1lID0gaW5wdXRzW2ldLm5hbWU7DQogICAgICAgICAgICAgICAgc3dpdGNoIChuYW1lKSB7DQogICAgICAgICAgICAgICAgICAgIGNhc2UgInR1bmVyIjoNCiAgICAgICAgICAgICAgICAgICAgICAgIGlucHV0W25hbWVdID0gcGFyc2VJbnQoaW5wdXRzW2ldLnZhbHVlKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgICAgICBkZWZhdWx0Og0KICAgICAgICAgICAgICAgICAgICAgICAgaW5wdXRbbmFtZV0gPSBpbnB1dHNbaV0udmFsdWU7DQogICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIH0NCiAgICB9DQogICAgbGV0IGRhdGEgPSB7fTsNCiAgICBsZXQgY21kOw0KICAgIGlmIChyZW1vdmUgPT0gdHJ1ZSkgew0KICAgICAgICBpbnB1dFsiZGVsZXRlIl0gPSB0cnVlOw0KICAgIH0NCiAgICBzd2l0Y2ggKGRhdGFUeXBlKSB7DQogICAgICAgIGNhc2UgInVzZXJzIjoNCiAgICAgICAgICAgIGNvbmZpcm1Nc2cgPSAiRGVsZXRlIHRoaXMgdXNlcj8iOw0KICAgICAgICAgICAgaWYgKGlkID09ICItIikgew0KICAgICAgICAgICAgICAgIGNtZCA9ICJzYXZlTmV3VXNlciI7DQogICAgICAgICAgICAgICAgZGF0YVsidXNlckRhdGEiXSA9IGlucHV0Ow0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgZWxzZSB7DQogICAgICAgICAgICAgICAgY21kID0gInNhdmVVc2VyRGF0YSI7DQogICAgICAgICAgICAgICAgbGV0IGQgPSB7fTsNCiAgICAgICAgICAgICAgICBkW2lkXSA9IGlucHV0Ow0KICAgICAgICAgICAgICAgIGRhdGFbInVzZXJEYXRhIl0gPSBkOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGNhc2UgIm0zdSI6DQogICAgICAgICAgICBjb25maXJtTXNnID0gIkRlbGV0ZSB0aGlzIHBsYXlsaXN0PyI7DQogICAgICAgICAgICBzd2l0Y2ggKG9wdGlvbikgew0KICAgICAgICAgICAgICAgIC8vIFBvcHVwOiBTYXZlDQogICAgICAgICAgICAgICAgY2FzZSAwOg0KICAgICAgICAgICAgICAgICAgICBjbWQgPSAic2F2ZUZpbGVzTTNVIjsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgLy8gUG9wdXA6IFVwZGF0ZQ0KICAgICAgICAgICAgICAgIGNhc2UgMToNCiAgICAgICAgICAgICAgICAgICAgY21kID0gInVwZGF0ZUZpbGVNM1UiOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGRhdGFbImZpbGVzIl0gPSB7fTsNCiAgICAgICAgICAgIGRhdGFbImZpbGVzIl1bZGF0YVR5cGVdID0ge307DQogICAgICAgICAgICBkYXRhWyJmaWxlcyJdW2RhdGFUeXBlXVtpZF0gPSBpbnB1dDsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJoZGhyIjoNCiAgICAgICAgICAgIGNvbmZpcm1Nc2cgPSAiRGVsZXRlIHRoaXMgSERIb21lUnVuIHR1bmVyPyI7DQogICAgICAgICAgICBzd2l0Y2ggKG9wdGlvbikgew0KICAgICAgICAgICAgICAgIC8vIFBvcHVwOiBTYXZlDQogICAgICAgICAgICAgICAgY2FzZSAwOg0KICAgICAgICAgICAgICAgICAgICBjbWQgPSAic2F2ZUZpbGVzSERIUiI7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIC8vIFBvcHVwOiBVcGRhdGUNCiAgICAgICAgICAgICAgICBjYXNlIDE6DQogICAgICAgICAgICAgICAgICAgIGNtZCA9ICJ1cGRhdGVGaWxlSERIUiI7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgZGF0YVsiZmlsZXMiXSA9IHt9Ow0KICAgICAgICAgICAgZGF0YVsiZmlsZXMiXVtkYXRhVHlwZV0gPSB7fTsNCiAgICAgICAgICAgIGRhdGFbImZpbGVzIl1bZGF0YVR5cGVdW2lkXSA9IGlucHV0Ow0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGNhc2UgInhtbHR2IjoNCiAgICAgICAgICAgIGNvbmZpcm1Nc2cgPSAiRGVsZXRlIHRoaXMgWE1MVFYgZmlsZT8iOw0KICAgICAgICAgICAgc3dpdGNoIChvcHRpb24pIHsNCiAgICAgICAgICAgICAgICAvLyBQb3B1cDogU2F2ZQ0KICAgICAgICAgICAgICAgIGNhc2UgMDoNCiAgICAgICAgICAgICAgICAgICAgY21kID0gInNhdmVGaWxlc1hNTFRWIjsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgLy8gUG9wdXA6IFVwZGF0ZQ0KICAgICAgICAgICAgICAgIGNhc2UgMToNCiAgICAgICAgICAgICAgICAgICAgY21kID0gInVwZGF0ZUZpbGVYTUxUViI7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgZGF0YVsiZmlsZXMiXSA9IHt9Ow0KICAgICAgICAgICAgZGF0YVsiZmlsZXMiXVtkYXRhVHlwZV0gPSB7fTsNCiAgICAgICAgICAgIGRhdGFbImZpbGVzIl1bZGF0YVR5cGVdW2lkXSA9IGlucHV0Ow0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGNhc2UgImZpbHRlciI6DQogICAgICAgICAgICBjb25maXJtTXNnID0gIkRlbGV0ZSB0aGlzIGZpbHRlcj8iOw0KICAgICAgICAgICAgY21kID0gInNhdmVGaWx0ZXIiOw0KICAgICAgICAgICAgZGF0YVsiZmlsdGVyIl0gPSB7fTsNCiAgICAgICAgICAgIGRhdGFbImZpbHRlciJdW2lkXSA9IGlucHV0Ow0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICBjb25zb2xlLmxvZyhkYXRhVHlwZSwgaWQpOw0KICAgICAgICAgICAgcmV0dXJuOw0KICAgIH0NCiAgICBpZiAocmVtb3ZlID09IHRydWUpIHsNCiAgICAgICAgaWYgKCFjb25maXJtKGNvbmZpcm1Nc2cpKSB7DQogICAgICAgICAgICBzaG93RWxlbWVudCgicG9wdXAiLCBmYWxzZSk7DQogICAgICAgICAgICByZXR1cm47DQogICAgICAgIH0NCiAgICB9DQogICAgY29uc29sZS5sb2coIlNFTkQgVE8gU0VSVkVSIik7DQogICAgY29uc29sZS5sb2coZGF0YSk7DQogICAgbGV0IHNlcnZlciA9IG5ldyBTZXJ2ZXIoY21kKTsNCiAgICBzZXJ2ZXIucmVxdWVzdChkYXRhKTsNCn0NCmZ1bmN0aW9uIGRvbmVQb3B1cERhdGEoZGF0YVR5cGUsIGlkc1N0cikgew0KICAgIGxldCBpZHMgPSBpZHNTdHIuc3BsaXQoJywnKTsNCiAgICBsZXQgZGl2ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInBvcHVwLWN1c3RvbSIpOw0KICAgIGxldCBpbnB1dHMgPSBkaXYuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSgiY2hhbmdlZCIpOw0KICAgIGlkcy5mb3JFYWNoKGlkID0+IHsNCiAgICAgICAgbGV0IGlucHV0Ow0KICAgICAgICBpbnB1dCA9IFNFUlZFUlsieGVwZyJdWyJlcGdNYXBwaW5nIl1baWRdOw0KICAgICAgICBjb25zb2xlLmxvZyhpbnB1dCk7DQogICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgaW5wdXRzLmxlbmd0aDsgaSsrKSB7DQogICAgICAgICAgICBsZXQgbmFtZTsNCiAgICAgICAgICAgIGxldCB2YWx1ZTsNCiAgICAgICAgICAgIHN3aXRjaCAoaW5wdXRzW2ldLnRhZ05hbWUpIHsNCiAgICAgICAgICAgICAgICBjYXNlICJJTlBVVCI6DQogICAgICAgICAgICAgICAgICAgIHN3aXRjaCAoaW5wdXRzW2ldLnR5cGUpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgImNoZWNrYm94IjoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lID0gaW5wdXRzW2ldLm5hbWU7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSBpbnB1dHNbaV0uY2hlY2tlZDsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnB1dFtuYW1lXSA9IHZhbHVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAidGV4dCI6DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZSA9IGlucHV0c1tpXS5uYW1lOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlID0gaW5wdXRzW2ldLnZhbHVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlucHV0W25hbWVdID0gdmFsdWU7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAiU0VMRUNUIjoNCiAgICAgICAgICAgICAgICAgICAgbmFtZSA9IGlucHV0c1tpXS5uYW1lOw0KICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IGlucHV0c1tpXS52YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgaW5wdXRbbmFtZV0gPSB2YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBzd2l0Y2ggKG5hbWUpIHsNCiAgICAgICAgICAgICAgICBjYXNlICJ0dmctbG9nbyI6DQogICAgICAgICAgICAgICAgICAgIC8vKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5jaGlsZE5vZGVzWzJdLmZpcnN0Q2hpbGQgYXMgSFRNTEVsZW1lbnQpLnNldEF0dHJpYnV0ZSgic3JjIiwgdmFsdWUpDQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgIngtbmFtZSI6DQogICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5jaGlsZE5vZGVzWzNdLmZpcnN0Q2hpbGQuaW5uZXJIVE1MID0gdmFsdWU7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgIngtY2F0ZWdvcnkiOg0KICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkuY2hpbGROb2Rlc1szXS5maXJzdENoaWxkLmNsYXNzTmFtZSA9IHZhbHVlOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBjYXNlICJ4LWdyb3VwLXRpdGxlIjoNCiAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpLmNoaWxkTm9kZXNbNV0uZmlyc3RDaGlsZC5pbm5lckhUTUwgPSB2YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAieC14bWx0di1maWxlIjoNCiAgICAgICAgICAgICAgICAgICAgaWYgKHZhbHVlICE9ICJ4VGVWZSBEdW1teSIgJiYgdmFsdWUgIT0gIi0iKSB7DQogICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IGdldFZhbHVlRnJvbVByb3ZpZGVyRmlsZSh2YWx1ZSwgInhtbHR2IiwgIm5hbWUiKTsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBpZiAodmFsdWUgPT0gIi0iKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBpbnB1dFsieC1hY3RpdmUiXSA9IGZhbHNlOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5jaGlsZE5vZGVzWzZdLmZpcnN0Q2hpbGQuaW5uZXJIVE1MID0gdmFsdWU7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgIngtbWFwcGluZyI6DQogICAgICAgICAgICAgICAgICAgIGlmICh2YWx1ZSA9PSAiLSIpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGlucHV0WyJ4LWFjdGl2ZSJdID0gZmFsc2U7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpLmNoaWxkTm9kZXNbN10uZmlyc3RDaGlsZC5pbm5lckhUTUwgPSB2YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGNyZWF0ZVNlYXJjaE9iaigpOw0KICAgICAgICAgICAgc2VhcmNoSW5NYXBwaW5nKCk7DQogICAgICAgIH0NCiAgICAgICAgaWYgKGlucHV0WyJ4LWFjdGl2ZSJdID09IGZhbHNlKSB7DQogICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkuY2xhc3NOYW1lID0gIm5vdEFjdGl2ZUVQRyI7DQogICAgICAgIH0NCiAgICAgICAgZWxzZSB7DQogICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkuY2xhc3NOYW1lID0gImFjdGl2ZUVQRyI7DQogICAgICAgIH0NCiAgICAgICAgY29uc29sZS5sb2coaW5wdXRbInR2Zy1sb2dvIl0pOw0KICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkuY2hpbGROb2Rlc1syXS5maXJzdENoaWxkLnNldEF0dHJpYnV0ZSgic3JjIiwgaW5wdXRbInR2Zy1sb2dvIl0pOw0KICAgIH0pOw0KICAgIHNob3dFbGVtZW50KCJwb3B1cCIsIGZhbHNlKTsNCiAgICByZXR1cm47DQp9DQpmdW5jdGlvbiBzaG93UHJldmlldyhlbGVtZW50KSB7DQogICAgbGV0IGRpdiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJteVN0cmVhbXNCb3giKTsNCiAgICBzd2l0Y2ggKGVsZW1lbnQpIHsNCiAgICAgICAgY2FzZSBmYWxzZToNCiAgICAgICAgICAgIGRpdi5jbGFzc05hbWUgPSAibm90VmlzaWJsZSI7DQogICAgICAgICAgICByZXR1cm47DQogICAgfQ0KICAgIGxldCBzdHJlYW1zID0gWyJhY3RpdmVTdHJlYW1zIiwgImluYWN0aXZlU3RyZWFtcyJdOw0KICAgIHN0cmVhbXMuZm9yRWFjaChwcmV2aWV3ID0+IHsNCiAgICAgICAgbGV0IHRhYmxlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQocHJldmlldyk7DQogICAgICAgIHRhYmxlLmlubmVySFRNTCA9ICIiOw0KICAgICAgICBsZXQgb2JqID0gU0VSVkVSWyJkYXRhIl1bIlN0cmVhbVByZXZpZXdVSSJdW3ByZXZpZXddOw0KICAgICAgICBvYmouZm9yRWFjaChjaGFubmVsID0+IHsNCiAgICAgICAgICAgIGxldCB0ciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlRSIik7DQogICAgICAgICAgICBsZXQgdGRLZXkgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgbGV0IHRkVmFsID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgIHRkS2V5LmNsYXNzTmFtZSA9ICJ0ZEtleSI7DQogICAgICAgICAgICB0ZFZhbC5jbGFzc05hbWUgPSAidGRWYWwiOw0KICAgICAgICAgICAgc3dpdGNoIChwcmV2aWV3KSB7DQogICAgICAgICAgICAgICAgY2FzZSAiYWN0aXZlU3RyZWFtcyI6DQogICAgICAgICAgICAgICAgICAgIHRkS2V5LmlubmVyVGV4dCA9ICJDaGFubmVsOiAoKykiOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBjYXNlICJpbmFjdGl2ZVN0cmVhbXMiOg0KICAgICAgICAgICAgICAgICAgICB0ZEtleS5pbm5lclRleHQgPSAiQ2hhbm5lbDogKC0pIjsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICB9DQogICAgICAgICAgICB0ZFZhbC5pbm5lclRleHQgPSBjaGFubmVsOw0KICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQodGRLZXkpOw0KICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQodGRWYWwpOw0KICAgICAgICAgICAgdGFibGUuYXBwZW5kQ2hpbGQodHIpOw0KICAgICAgICB9KTsNCiAgICB9KTsNCiAgICBzaG93RWxlbWVudCgibG9hZGluZyIsIGZhbHNlKTsNCiAgICBkaXYuY2xhc3NOYW1lID0gInZpc2libGUiOw0KICAgIHJldHVybjsNCn0NCg==" + webUI["html/video/stream-limit.ts"] = "R0AREABC8CUAAcEAAP8B/wAB/IAUSBIBBkZGbXBlZwlTZXJ2aWNlMDF3fEPK//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////9HQAAQAACwDQABwQAAAAHwACqxBLL//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////0dQABAAArASAAHBAADhAPAAG+EA8AAVvU1W////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////R0EAMAdQAAB7DH4AAAAB4AAAgMAKMQAJEKERAAfYYQAAAAEJ8AAAAAFnZAAorNlAeAIn5cBEAAADAAQAAAMAyDxgxlgAAAABaOvjyyLAAAABBgX//6rcRem95tlIt5Ys2CDZI+7veDI2NCAtIGNvcmUgMTUyIHIyODU0IGU5YTU5MDMgLSBILjI2NC9NUEVHLTQgQVZDIGNvZGVjIC0gQ29weWxlZnQgMjAwMy0yMDE3IC0gaHR0cDovL3dHAQARd3cudmlkZW9sYW4ub3JnL3gyNjQuaHRtbCAtIG9wdGlvbnM6IGNhYmFjPTEgcmVmPTMgZGVibG9jaz0xOjA6MCBhbmFseXNlPTB4MzoweDExMyBtZT1oZXggc3VibWU9NyBwc3k9MSBwc3lfcmQ9MS4wMDowLjAwIG1peGVkX3JlZj0xIG1lX3JhbmdlPTE2IGNocm9tYV9tZT0xIHRyZWxsaXM9MSA4eDhkY3Q9MSBjcW09MCBkZUcBABJhZHpvbmU9MjEsMTEgZmFzdF9wc2tpcD0xIGNocm9tYV9xcF9vZmZzZXQ9LTIgdGhyZWFkcz02IGxvb2thaGVhZF90aHJlYWRzPTEgc2xpY2VkX3RocmVhZHM9MCBucj0wIGRlY2ltYXRlPTEgaW50ZXJsYWNlZD0wIGJsdXJheV9jb21wYXQ9MCBjb25zdHJhaW5lZF9pbnRyYT0wIGJmcmFtZXM9MyBiX3B5cmFtaWQ9MiBiX2FkRwEAE2FwdD0xIGJfYmlhcz0wIGRpcmVjdD0xIHdlaWdodGI9MSBvcGVuX2dvcD0wIHdlaWdodHA9MiBrZXlpbnQ9MjUwIGtleWludF9taW49MjUgc2NlbmVjdXQ9NDAgaW50cmFfcmVmcmVzaD0wIHJjX2xvb2thaGVhZD00MCByYz1jcmYgbWJ0cmVlPTEgY3JmPTIzLjAgcWNvbXA9MC42MCBxcG1pbj0wIHFwbWF4PTY5IHFwc3RlcD1HAQAUNCBpcF9yYXRpbz0xLjQwIGFxPTE6MS4wMACAAAABZYiEADv//vdOvwKbVMIqA5JXCvbKpCZZuVJrAfKmAAADAAADAAADAAADAAADAq7aiiFafTJvTQAAAwAAAwAAF1AAAAVUAAADAiYAAAMBNwAAAwDUAAADAMkAAAMA4gAAAwD+AAADATIAAAMCGgAABAQAAAYoAAAOwAAAAwAAAwAAAwAAAwAAAwAAAwAAAwAAAwAAAwAAAwAAA0cBABUAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAA2F55UwH3zADgCn7Xsg5urkZA62Mq62dWKwprJak9U0cjT1Yh9J7WRISuxmagZEf3SG5hJ5glLK+m1DQRdCFD2mN6YZGjkCTKwYyDxKlNHkaW8fuatJR0sAtCoVfOjRr2/NS+bw85zMQI7VFu7+JhD/Go1Q5RgMv5bIq0gpxJKRnF31ojI62CwCRiJ1dHa6nIwcU00zURwEAFhyu6/UdOQ6gXR/Fn3SkmUwkQsjmQF0XEAAAAwAAQkN8C3guxx7g23xd3I1uQvL9Dh+C+fpNfOmVma2q7DiUF3VD8o51I57iYniPq7fe7f2YnPwRwynt2WAsZSjTMgHnGbk5zsyy+rXIMy1p3notBIJkpSBHSuogn9FDL99PItYMLSYCXzbB1ngJo9jnaTgI0b904RmkSjuZtpKyt0ofkYfxNRrztwDGURi3JRPkpuouCWX8KWcxn8NHAQAXWrAsVbXQ0f+vby6QN9oHh0jRsBw7+79AAAsCUlIAAAMAAIGTVQt7SJOBNtpTiAsB1/AzhYzJ8lMVgRENWBT0VBkiPo9+OyjWfg6dlrISORs+GKnEy5aUKA1M9uXDtedogUi7S7uVd54Gj1Qb5NTw4Jix5w1Ejl/de0xvxERyv4b3rmZdsU72FOcfnbK1K8lG4wnxVzYPGiElBGSrNsWNXskCT++8dTbAQv4ejltKQDN2z2xpw5g1CkcBABjFGRM3p9Rp9BGLQ/gaCYSE37IZAAADAFsvgUK7rSLf56T0ZOVulX2oYo74ASEKbonCVfRcGAke05L38QhPtmJ8xRmebFR5/801CbQAWvnAOc2AWgY1coPTdBTZIfsBwU94Gu+qjaoR4dfBX9u8RZXmrbLBCqJ8wTgvf9kJu7/27gcTx8SsJfq40cjhNaRNiof2e8CF4imWObVdvBDpPRxSiR1tsORfA0r+gqjURLyvIwDsE+O9NkeiRwEAGZMG5kW8doFnKjj4QW/OIpFfzF+53Eb4LrnRmrkHqYA/RnqVvBWNpUSFdATxWKzy0MBYRpY4IoUCpCeWwgQ/9Ny0Yi1iQ++wmh1ay/SnYR5B8k+FpDYbWDODuSuCMmrTDKXjicAStFseuB4peB1Ufu7fitj0L0uZzCgGY5zkzbBp3bfXJQEGCnSwEtW+TY50gbhenVCesUfJKjvG6PshP5ScKPdVkZltrS4wx1CntFR+srvN3MjP6p1HAQAaM8+T4dTA6o28g/ki3+J9b5WD8oY+fVgTsb1jfV2GWWd2Hh8JK00uloyX94k2QHGzhbuiS1YKiEdCLz9Pt3RuxuTNm9XSlLwQvyRvfY6sKD8KIinvSq3XP//Kx5Ni82QOXvrn5eEmFlTGuT36Yax5OR4BI3UhdWSGGa0YoqeD7zcvWv64AAANbhz0PNupTjTGu6vxaQq6PcgarV8F7NT0zHSQCZ8KuEFdideJmx4581/BCMYXuJt5cEcBABufpZ3Gzdy5JLw0J2eg1hz70uf/nD82aqNxy/HUvEd6+w5woyIYb7nzl1eo/+ACzPidfiSKydCNxKh9e7tKjNNTJYRX+1f5A398n+2wKJPX7dRmPk4C0j/auaYtAMF+Ft5g6ZqxQuA071fEmj4uiYMR7F+JbZ7CjA98DObmNy/ZWoJQvMrvR3ep5XAmNFkqs1Ma20JWsiikVsr/jblTK0PBVnLul36knafsXUW38/19lMQo0HUcMvrmRwEAHI2OaNsvRTodm5RGcpDEKfXIqXsLfH53r0F3K+sfRvbk3u2ilZd/c5zH95TBbceTvFEt5mD6oPEhxHX3gId6ZBsNNUKUnWDxoX7MaYE38/ELMyIVzRxDCIEkf+q7aY6tcZEMrPBa352hxE6SJ+2y/zlDc8X4jSYerSPRgLBiUm/TSHdm/sHP7d/kl2fmIUNKBbeaghigfwmfDnaZ3wPkRi3oXIp3YypbLYpeup62X805+oYMAgynQd1HAQAdHLgV5nC45givqz8G4AAB0pcgXQpZhwRtJ0wE/aFEPMXugXV9NeZnpzJeXaijTBtaFonT4e+hZZXjLHhxTugKb085RNFOoT0GAB6b2twqc++PKcb796IKMKtNpGaUWjoFvBDGh4HrRguoZWCbLy2RFxUX8SmNUb7qfDXwIi4nY4i89/TcrSc0q64NPWA3SPmQ5D5/ZFbRzBtFuMVVmbEF0cxv9RoqLyW/VGkp+bBAmoMhAw82eI9VskcBAB7bidwIeUDbJvHb2Z8Ep/avJccAh157ZUytHDDW9DhmdbdBzT1TpsJFsFWe8FOQfaNpJVfj2nGqShY4+DhxRYxOpzXw2VF7hQpp6PqFUtyi4ib3VHETkSuHz+2uom/bMRbhw+hQ05xdXOHcFVpih+k58QKrhN+txmOmV3ULdeiVLUplf35jQJTUIZltXjTCZhljRc0sdqOZHDZjy58Sc6hmq8D6lztRR5jN6ifzzKdZbHOpMvK28A4ZRwEAHwyCdGDG4LksEyABPYPnzVuaVJHpUiKgtb3006VleBPo2EZenL5/vyGrjLMas0C6R0iyXZjr0xqvCfaFfxVO/+DQUMKaj0XLNNIrLqXxwzxzy2ENSUjNNySzfvDkpjuJVywa0uwsg60r6EURKgU15gAtbm3Kx4tjb3pRMM8SZHnsN075ztW98+aTrdbRryY9XR74p76dkImiqWIVRQAAAwAAerbiggDgwfd5iHYwqlkEXOqApTuXEhFHAQAQ1PUugOrA4HsFQsLzVf2RjOkhWvlC/kwNqqDXkwlUM6egLoIdgXAyBFgSXuM59iSh6DSi4LwFa/FhyGMrxPV0UF8QD9dGgSeXBUvExQHAGOHz98Mbwm3lBdIzxkzeGLDhi0wZ5SurQPpWomKoDW7t0a+GpQkmCEgVO7iBc/JrOFIt8BBRW1E3EOMv6Wpc5Bw9M2A1XVVaNSFyVkr4bJmsPdNLXAJ4UeKO9R1lUBhl+OhrxoG4RKVHp0cBABF4Om4vKIyHfOkDd6zL8NOXPLL7gS3TIX2EFGJwyyOzsp3WEnvyFp3pujaaLMn/lubQO3uY99+DKi2Io2lBhymLAR6LDBeQ7AhVrgnfiNz91OxGGiYYLcV2yR4f5zrcwMQZNJDrBZZB5gHIDL20vdPnM5RCWlhx/pWX/VbNt2slYDgCwcQp6S/f+sYDWW8d6kKnv4kberk4wmAhuvG6Y9SNfBDQ5l9qn/Obo+/QByc1yiGJRu8Gf6MCRwEAEoe8DYkkVe/6Ixqln5QQ/EQgnqBdcH9XhmfrybwZkozmwKLLqqVJH8KoMeYLCfFbfUaJbcR1M2fwEHGq8BQXjRJFgtHh3lCD2NBLo+9F2kwxA+U6o3SQoAiESygbnYzTRsRmJbxNCRKSLcIhfuhjjCaAi0Icfv4rxjBMuDTA3ZANJ/jmVtzwWUFolUII47bYNLfdylQl/XdlhiHX3vln9Ji8cLEbSL8BMxJ2EI8GBsnrIBeQBPJc+UNHAQATIY6b3+HKasi+GNJ2c21SbezgAtkzMWLCJOnux4sNbrOiNHjom7p+U1hZN9Nr5wuzsM8+1NBBB2pfg3/QKiCYs6b9pduydYs2HEo8FbJJO9uH/yhvTL9d6RHrHf9srnZkSZKhJ7J7mApu4eNNCFusU8sNmfV7H97V1FOBXT/6JShgEQxdnwWdgxDvO8PxjkwuGrYPamKBNG/zRiG5AbW+ikv3OBftfBdhuifSSqoWx0W/XRtyk55S8kcBABTW3x1rkDAHFUfqPG8dZSQWAtnA0fS2fwfdqEGWrbQvYFwWWVcRma+zWJHw2/lVzPD/mSdMieWiX8i5DWTg51gGKy0ftdjOBgAAAwAC/KwTiIpM5clRTlEEi87aAOb87wCHqn1gnPnLGPfQQiw2QYxiClSodV7wEhhJw6ToIwyUjyxYDwVnF2+7eRq7fijw2kLyk5C88BvU1OTdlPGHyBmiT3UXo3I7308/Mn49t3tnXLB8MdaOaVwaRwEAFbiVrH5lksx9oY9DCw61tAqU07scxCL86wtgcyZCmy2ZZ/2W79DRKs2QCu0op9Lw2QYj/OgOj6apaZTOtksj8+VKlTlQQnkV9sFudGr7gpsQoaxBjmrhVk1adbYaFkKCEUYRbDRJpZQDbv1RIRFlY/KmWweiUOZDX+3fplGzJs5LvbvgiM7THIlybfPIXTjS2SPmFm+rQ6T4X9BQocVCjzQvz6g2kp58j9jXT5sBBuu9tC7iTFfMEzZHAQAW0QFraUkCV6gEC2C8wvr2E+hXgJwCskVL+063JAWE9yhGOTyWD/fLQiiuxJ/88Zes8sHmBC+quRzE8SHNO8OIMMptzSvx1i2D8aBb0ksDLYEqwCXN8Lsz+71HkS8SdC0nDGQZqAm7DYd3/uBgR/J4FAOc0jvOUci0tSUbSVn2z+H03GNfHcZ+XgduswjjsUodtsUtRn4nXpryhElgMI3kr2OyFXf92YxZPgbhGubgcNlo+sZ4Z/ApNUcBABeS+kT7jvDiaynYNz51Kc4yccGFoXKWRhGdSRtXJFDck0iJWKT4opQng0gcHiUFaL9bf4jSqm56kxLcQ5YAgHkDZ0UGYh6QEEPPAfCpoDLCF9mL+/OEuHWZ9NOnW7TcJlKbhJOZEKkoE4KW3fDydJ3a3l4IOByTPx5LJAjAZoV1BtKInfF7g5OQU0G5EXJGhFWUsr8Sf48Q9LVjnWvDuawWdWPiS+BcWfUZoGIkK6NoPQR/qL1AIJhcRwEAGAOEUaznr61uMAnNb33549uKjSRk1nM/fUR2BA7+39FhNrmR3taY6qgM804qoHgCSbYS+YIKj8U9vxfATvknbWEZv4JF5hoFJaAN0bNc36f9VcnxAkGsb3r74Yko3jVackXvVrdcN76rT9izohLnH2yQem0zb5wOq7EtjPnGn2t4t4/9JDKIfVb2QikijBu8gHlSjvgVRWSYDIRCi2Zle5MtFyXOaIGwCRAv6PFD6mmJBUT2XimID7tHAQAZOkCES5EDxQ08m+f8cpxKkoyHem8Ex4m8xZ2DA4d39JDH02xtTRRfSfDrC/TqpIjzCtcVv/zzgSflzEbq/UKFH/Z7CbtsrVS2+ll2/CGSNsmOHGi5yrhPM/JSClEmt6IRtyk0FZ3r5cdREJwAKoXP4tNLpfjWSZbATEIGmr+OxqYxQMlzf/93+QrgM/g1HvmPFBPard2U8aKbHTEH3r/kFdkNmlE0EQi5b8TOCYIa/mpuWq/yMn7by0cBABrkhq6Rldw6p3qQyVsZsBpoW3OLgDe/7/pMx+iijZdk9jE9T0fcFh77YVfpjYex2//dcNszIlWr2vl65Z1+0cQQShk/R5GP20mU4dc78l3iyti4DcDCi6PdIU4nzdwZIpGFX9xIuPAHaNfyP4Nyr1K0j9h5STEAHsYX21+iN6CKiuWoWOm3ev+GGzt1NNmtc1W0OYicTiPoIVr1TGzQC+1Nd7izII3tPWn1PEtqM9+fXo32ibSZUvGsRwEAG28xtoQMOBX+QWzc6MLY+xdighCBxpzLcNRK09DBzvBjyt59TqRxzLpeKgJMb4hkrGZnI7ZB7k4WSdssIdlyXiqQOLW68TKxOi/m2l4eAg3OCdiWnrmhOdRSMVLPALUNPDXtBJE5hOD/rtb0FHxtGQKnmP64bBNEEEJCWqJO6W+Gy5Bj/1OPVO5Lb/mGT6SfZVe2RtKnX3ZVDyDZb1jHV0Y6RKS8+Ww1Ya57NIcyPDo3g06Ef4Vi2RpHAQAcWH+V9i+eiLHkvPKkSHT97ZZGFxrcu9T++hegAGupHOjZYoxGWV+zfmemcnV4Qc0p0Sb+bCBN/WYAmY2PsHr+MIroPJIqRxQacYxgv0Eh/ahn4Y8AHjDPnPRprvdugL71ZtfrhmqiLml/RA0I8xMa/JZ4jrmIOqM+Z+fLjB67UYM71w0xjsBG/PgXRORM5Qqkfa6vscWkOW3l2RaUeeyDnUES4bdGUahzOYND5CZ11DaxBi7FZpSS2kcBAB1UDuNag/7CUCi13BGNTDCy03A2H45ho7AAABa85YSo2ddxRWSmP/8M1+fhrnv2TvJk7zHcA5z9BfW6MKcG/ehOV8RoJWUXPPQvUS5U0mqa69CuPBPy9cA1FwAI3ipau/UmVf9WS+R7+XREZCdpkNc5acRUaY6VieEi58Gy3p/q3E9lT4f4oYx563YFbu2Mjwq/dN/ncWug4Nun06Ap71zELPDKDaexmC+kEhaf6dReVEeK+uZfg42ZRwEAHq4bLzMgvrZQb5Neabro0F+gcFiL7UdLm0y8LR7TPvIQ+Kevu6d1BghMMTKxPVSrBVH6F6mATlcYYyhZ6fc7mnHFrpCznzCepMqz3ro5tOUnl9iNq+BQQPFZZlKIVl/GEtg5jzNU88j4KpNvVAoa6Cb/P9X3gWXF7KWmnzgUsZM5mR4GvWJWIcg+IDfe/2FtphXajgL5wfiIK1jzzOr3tQ5xYrVpBvuyKmtdCfIrHoFt4i/42TRgGMJHAQAfCTLHw8EYKGd4hzY41zaYLjR4E4nuBnCtxuCX9FhYm/YnBE6exCJDSBtf1sfFAv5pgAOcF+CZrALrM4tRCUKQs0t0o0+8+ZU1dyyuCLBTtC+vJydoSGmMBg+XNyIPtNEtN7qGS9WWA81qcbxxzsc40CIJf78S26nBKAJuyPu+iX9ANPAyMrgOAVc95U6bJlSjLkP6CXXR2dJRvUv3raWkoAAOjJ71lTFvacoQwhCErx3cbavuczBzJ0cBABB+z7EDY6atdC4NZwX22iBmtZsaHUa3NaBIO7aD08FA7Kd0ugfbomTYomPBMuWwk/b3KMR0uhkyeHKC1RjYo4d/mMo97xS4ix+t+38cwQHmkYQH5Cm1BO6ezuTSevjTojq1hlXD39LxF8a/93o4Tojo+ZmPPJix6BuKlBIwjtpZb0M+nOEX8jPyyd96ytD4eWjOAt/heOiSF9hvmiN50BmkUiITCBF39iClDPO2k/Fag4BqTBbtubcLRwEAEUNMr0m0/lLKJ5ks1W5j+cRzJ3kSK0mRkjrPrr0eWASIwI6LNyATeQMrpq3uWQlAQ+9SdeWmTu5uHTgt+d8sFZe8JXcU+1JnZRSZ9yaoEC0i+bOkGfWyMpA85qtvAlKTBMOm6ub/5NMaKU/VAW9lEvkA9PprSonQVMnG4+BlH2JOh8TsTKkBZPVgILxDM8mFjQXm0TBsezlo4ABKvPWcftdHUaGyF7gP1XbV0exXEHfsSASfYRd0OZZHAQASC+/t5TafeJT36YiEZXYeQH2+IoK6ZxRnFgTmKOGcCCYd3KzwxTJp8XFrSbvg7LzTDnvjGYOaazdnbZt4/Jn3krhhlSRWjhWRqAyxMNVF8n18FXqTzJB1PKNbd7ax8R0AjZfFVC/ycdg6wATRrdRJSofJHpjwYHGQO+L2neTkvCrH/gUPD1U+SjdMlUvLS6vMXop0yzDX/L7HQcLXjKsR2lGDYBlM1UB2WHnq/qPBycWFFtPYyTlN90cBABPvVe8f0oNTNwJhtM/kLJBEZI3ZwCEWYk/wv9hIIWr3A4qkehY4+ptgTX/1///4JZ6dscO9HKuG6puRV3lR4ETvMwdKnHPSHjJF2aQeuvoGeA7yVT+AaeDi7V8ZlVYMc4uVncx1liUQapUssjXpK+2MxWQ7Cb5GU97Drj7W/oPo2Ptldofr3uIe6fvheMu/6aViZagqUWfdOTc0YXVHZzPFok9FEQJUWdUPZiJlfllKLIy/6aAyw8HuRwEAFKEU8CS7kA5ZslGAnKoBbCTNOXl4p9BBgCPqieSBknZibS3PcR/LjWgGifTDu5u2Wj+eAMmSM7P3HMAAAC+T9jKtui2s4cFmXoWX8va4/qVAzxWGs3w547v+Tmac4FyXAqNj0/rFe9k3Egw/P9Q1LxzxwDOEbknnvYdCGAAp8Ivp0KW4t+inn46uKR4RHHa3/VSY8znvIUPdudc1/K0jIEI/Q3pEL9pzjQZxtgqbGfHOMo5yI2dWIDlHAQAV/YbUhbsIYEjAICdYv/AE36OWoooY0Nf/2lmJx7BftLoE1dLDfZKeiAdmrhnpvihEEfTo0MaKnEoSfryZ2OAN9yMb5+fcL8FTpHFFCfvfivNdZyTFOvrxIc3hv+2TavaVMjhtrDqlErqEd/XPoVqKmAeHo/ORSn73CZ/cWNXX0JQ1pRuP8VvL2QwfnG2vq9nTXfiQrMzEeEpNIaeqZS29MfFP8+VCiKyM9p1vNhZC1NItrJ+gsFzJsEcBABbEKpgjE+ovbWLdj0EXyH8KO2Jmn2vTLCKigPqQhq3uaL/6o+uZWDa8dvkxNep66qHmLO7/821Audrn3I6tmZZWSE51J3/XYBVjpW9Fw0Bkr6GpAeDT7ybMGYdKJsd7/WZPZV+Db7zD1ZmulDiRnfN9EmSFStYYD0lEfqrCbP+xQuwtYvfYJsqIvl31t7RBZk/QV2ENWfDLEpMHt5tlrAv5w+3dl1lg2WcrFP2A/7e4sIIyRJo4HsLGRwEAFz/AGCMZq1GUNbPZoNkM+R2je+8sB+Gh/lgSXtAQZK4CwsR8tHn5hyV9QoAAAGJ3xJ/ZGmyBFBfvFt3Yyf/NFoecJXk49dlUxZvTtB0WRCewg6hn1yl3AH406dFPGEk44wMT7vPKyYJW4OT7kiDQvBsdpaU9TmUUKyup1MsILviQKXWAv+kecpWRTY51BniLudSBH3vmnE2l4hUOm7AVWQ3O8V048//RRvDBX7tSPIiWu+MxSSGZfLdHQAARAACwDQABwQAAAAHwACqxBLL//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////0dQABEAArASAAHBAADhAPAAG+EA8AAVvU1W////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////RwEAGO10tGlFAwyE91Tzg8923ovJk1dv2xh1gVlYQFtWdZ6NSQ8vgHM7/tMfIZPsqgCU856rdBJJRMDaor/oWA7pkvSmC2aqaC5fd/mkWUPTuG8fRhGqOY1rKxLNSI3HtTQAcuVBxRM0NfMw0ky/JMJYZiCgXcNsxpxl+khr/9fKtO5Fg2VNBti92xcZimHUZDJMQTBOY6vSR9L1N2O/kJQCpdfuc9bkcUTMjH/es/lAySxvbiislkohqkpHAQAZVatwHI0t9eHCUfDyWUEtuCNyDwQFOVMtaYEQJrTrhQX0VduT86F0u0wN9ag0uPsrmX6Rid/x5S7KI1SkS+qP6cdmgSP57uiF4dG6IKsWNfGBLY09H/CFlrg73WINQkkp2diKkdEmtZetn8+ZAKzR5eXN5FebiKt6pIkNLuSofjosypEs2o6boKsfpmbtOV0idOeWDM9C8EIcn3aZwk1s2KBDvt1DlY+i2Cuvhk3XoKLT+pq/bOC5QkcBABolcOXneZXLoQw9W1PH1f/of92Ytjj8okrWijcQAKlE5l8XoTb9qrOiZnDOhqwcMlB9H9rorq041I89hChohYoSkJElcM8V+r8WYN5axD1BNyfwaHAOm4UN2/VEYOkNSfMjmx2S0WW/F2ha8Jj4fc4QgqcXr+TnnbwqLkLTValK4Qa1pcv7PIbDq6zCUfxe04guZ8xEhPQjp17/G6IB/6uq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wnibxQ/cXEblVnM47wbCN3iy4eHjYB5MoIICrSYmd8nt4V0toLs084KJlmnur5FbApYM4W79ff4oZkW88Cg8Fv8TnWhh1Hqc4UlhMbRKm2QxDgfBxar3U7BwNR6prrXXjqfR7ja3tPli+H7Jez/xcTg32QpHAQAdTa7pSSgBvmOqzz175NAFIhwE9p3d71F9jLvhaPv8q1iKopL0kizwzEWElnXWmNhfLkl/Au8KujnoKUaxVdTe+zAZm2dOkejnpNVtVj0Aw9wKcG3ZQ1iRZrUFRIoPKYlmR+oi0LrupuhYABtgPbdCbDtezGTr0nw9wVd/rZ6V+1wcoJ6+8VAVueIdwI3brqm6EoFHiI8L6lER+9SefB8fHo4NYgr/I8jSxaa/2PLX2K/DjrlY6bN8fEcBAB7DXsuh8DITF6CYWj2HTFvqfzlic3QHXnHtvsTFNpyVY1LY8y/fRK2mwALN6IB5W3OuyoKiA3K0lJdQUv2gYhHWvPTV218HYrD0rkbMxRH0SiEEkrHDeOt5T1HtWD13D2/QvMu535fsfZyeaFDjdCE9M0Xi8Lfc7Xj1ZNGend7Jo7/cEiczFkc1vB4z2JpFGZreV2EdquyEzC2STFJtfimyx8QlLngEuR1cxH+lWEcFX+mvBa/eqktIRwEAH6VazFLPNsnHZqsI66TVoArQuUUGFAzr8MT8GZ9V6qpZa5D0jA/4eGi6Kq0smUgRExnqIbSMLWqDf/Pk2YT3MpHTu9VE3Dn9blgB6KsVIkWnB98Y2n/6DrZDcF94Ndu0Ka4U/RZwdV5O5KcO+lU2ZiIOYTYZ6Ie0d+tApxYxJ+YmxaDoCyRNe6crw/yzR5SflT8ddi/E2BM+l+nwVDiKZ/714fmrBxFKWuqLiQNHV19o1cZ8Ubun+ZtHQAASAACwDQABwQAAAAHwACqxBLL//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////0dQABIAArASAAHBAADhAPAAG+EA8AAVvU1W////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////RwEAEH1s3BdtHdF1ln55B24wdACF/ggcRtPmB4IUB6cZJ+m32I4R48ZkdhAFBulgWcsv0wZwH0o1yi3i4qm3rJ98AUKdB9PsNyG9gURV0bTw4myAj6g5Dgodfv6w9bsbOxsGUWkvgAJ3rrR010BvZbIa6CMRCQRjxkCfRF77ansRJZT0JzhtYeSS/ZJob8Rr2jrng3W2rkmHtE+rdqlPiHxmwkRZvYGhBxwiJO2L6f+l/cABsfs09rA+A0pHAQAREZay3TBUIAfMWhApE+LaPgeyOYtaPFONA9aC0h4QrFkaLZfb86678MK+zLgqDBsDoj50eZHMVcczRjs4sYlv7RG8RIWKb5lB9Kn/8+CkxiiA11cHH1yzLX2SKCmhsak/+P/zYQ1EDvEj33bl9e3Jd62cTI+Qw99KrsWnUMN8hFNeXzoGHA3aec+Li4NFboF8sa6lCPR6Csxsvxw8DJaWCnER5Z0p+nKhXavF/eNHQ0DX47ohycc87UcBABKsYHCHXXe3vK1cFYDWO6rhwM6hxCdJ+/X+VB1akQejL6iBMdUPuadUqBnbprwJM0dWpSSn9uuZZeqe46iZOGIJUo69d8x+ZSvPcBH/dK1Y0LJnoWdgWH51SQg7eYqcwjQW3BOy7ZF02Hn1EhTuhsN7ms8zv3WIeEBDBq0T3Idl+Tmw9iJU9skVYiwygHG2+0XwrLa6y+uiQPwMzrnEr1kuf24XoAqrJTZQiVH3aQF4d94yDreWu2KPRwEAE2FsynHZaUcBXEFbeX0nSxZ7sRcRjJvc7RYOny6N8QFwKDVO7jpRWWYM55kuepBOyZ+7BFYeG+FU1kR+ZfmqyDNkD4D1IPwNh6u9JQxDymfN/aMcQC3WxdvCKquPsAut6dugpGkOFtIe+W3ayc4V/J978P+h1EDFMbFjxRPuXht0K2dBQZCJ0ybISUDqWzhPuep8CdxSU4MvMVfdXh7FLl/BqKJUTT+vM+Pz3XnqCQQmH5TjQ4CK55VHAQAUEtgfkBwIYgtwHkhjmtLw7HNTeJeMfTjATEKcyuKzItSeYxHBmGzQ/+G2otpPCOkVAXJ9mfx7LxrW4joZ0ttTRQJ/wqMUK1IN349LiJoo8y/+FwN4jPNDwIleJG697riqnmLOweFW8spHKLBfnHcyC1pG6EIxFpTqUQ0KHqXD/KXIHKioJNAOVwQ1Gfloxebo/Tdtd00dpHP3gcsAOnV75APCYOjVIlwm2X6ViDeZw6Btdb/Br/+yokcBABU3+eOESLlneGbR5SLiL8wPkoRaZ5X7xFlMTMvsv9yHk26bVdmsubSdbYS1Hy64n0+NnL7C1aLD7aJxOudMjVW5goZbfO2KxBQkCD4HFA284wbaB5vOL7mRilCn6YEs1kiwf22+fBLNUmXDb2p353wrD/ygTDhlki66USvUmd/ZAs9uzAddegEzy7Xn00YysWTu/hegYyZtWFC+X5dhLubWJ7n96y5wjrP7PAOXoQQtFUH9j/rBiP/7RwEAFnL/wYKYuj80mPGtimSbF/E9K7XwjwBz8yHZubmVMTCmwkZBM4h0FR1thnUGiSjqjJT6SfunWCZ/dZDQplrzS00UKcUP399SyM+nNG1br8Za0ZYwWch8nyLHYXSRuxdnrfUUespsOQo1cWSLGf0pV2HIcHoiAAEKwPU6irB5BSoFvB1qKVjgEk+QwAEYAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAABHAQA3pAD/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////AwAAAwAAAwAAAwAAAwAAAwBbwUdBABgAAAHgAACAwAoxAAmBIREAB/SBAAAAAQnwAAAAAUGaJGxDv/6plgAAAwAAAwAAAwAAAwAAAwAAAwAAAwAKCKB0AIhy1ftwLNISWucTFC7xeBcaIzP3oZjZo8uT9hqZVstWGnrPz+vjaA5FuCO+K2w7/o39LygDO7aL+0zSrN90LW7r133x8+f+PEKk8d7pd2fj4RYuMOXOYunzFzRX/4IvR1XsK5WJYwVkOca3yfo7DTvUBP9rgSiTRwEAGQD6CFK1PBC4qYCa+coLVnX+jgODNrau5YJXIekDI4+wUNV+5T5HE4e2t5EGAjn77+kC1Vghmvx8KqPnylVUvsaTofheggxHsPuxn1zQt6nA59UglrRUMn8b4pmrvfqTBSqU949+AcNAI6M/eAqz6r0RG5KNeBhx8R2f0x2kujwHU3pc3rlPb6ZrFM/2HiG97eEIezrvWFG7YAAAAwAAAwAE1KRo1VfbdZQ/tOpNGxFmTcQoFidyD2tHAQAapTTIErUKA2Rc9uIzGJu+oW0uNOxRyl6oJNUNJp5L9TIshNS1CmUKgdCaE3LkLwdE8iUkUnIGfWLiWpWmjzsINYC8dnDaSptB53yJkBu0SsR00oo1PZ0pl4ZzoXGSYQJTPaVCbj6FNqm5wcnUqKTB/rgHdPdnDj0K8asLABeo/n3XCXrDorI+LYSD1FBgmV9O7RZdjfL0NnXOQkiq/ZGirwVV0cUF1aHtZx1yHlAAZKuuu7TqB13CAUcBADuRAP///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////yj/IrOvAEoXDNGy+nrxWN0l8cmuqWYaUJpuM9XgAAADAAADAAKmR0EAPAcQAACJHH4AAAAB4AAAgMAKMQAJSOERAAkQoQAAAAEJ8AAAAAFBnkJ4hf8AAAMAAAMAAAMAAAMAAAMAAAMAAAMAC/BmhyuvLmkCgKTgACEXfOVvHRHdpBEEmTTz9pIZCa2FD0CXukzDCakOHekTpJQSdsfd7a/jjM1/5lBtKCAGQ6zOCSQ6DeKtyw+CugDuuglGipwmvQW+FIDjnZ6HRd0uaSOGy6VB3h9MI1o4nqaCqVwwIgubYZFHAQA9XgD////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////WcZrO6BEiqf8pCxYwlz2mkdUzY/ipM/TIHS4m5xQAAAMAAAMAAA5sVm90p14dlvWgBgY7XQ9KVOJKLtaMAN5KiffVQtNuzW5DfL+RewZpAAADAAADAAAQMUdBAB4AAAHgAACAgAUhAAkswQAAAAEJ8AAAAAEBnmF0Qr8AAAMAAAMAAAMAAAMAAAMAAAMAAAMAABJfBjP2+4+W7ZybyT130+Ma4WSqICfd/dS4YtjrLlmh5VBlfrtwJqdN1PBTYDkwGOOONqZQeFN6lLGJoDzvuh3kv1aDBLqug+JhvrSeu5ebnvcrtQzb2REwJL3h9mvtkr0WfDu4AAADAAADAAs32Y4C/6Ns79oCGj6oqLltY3T4I0/QRwEAP5wA//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////8BeoWLRnKQmVgO/RBoBfcK85AAAAMAAAMACFhHQQAwBxAAAJcsfgAAAAHgAACAwAoxAAllAREACUjhAAAAAQnwAAAAAQGeY2pCvwAAAwAAAwAAAwAAAwAAAwAAAwAAAwAAEmDKfLGXsvBBQPNYXlEd6WueJ4deApfcHESlG+7V6u0AiWQqJvNZYM+3Js3Lj9Ldc9yYIHqruVwfMtCYGlX3wMavI/DrhMuJw+RreIF8SKsJD8CMccAAAAMAAAMACrFZOBgEqaP/8EyWsAHV6CgcAgfyox/roEcBADGuAP//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////AAADAAADAHTBR0EAEgAAAeAAAIDACjEACfGhEQAJZQEAAAABCfAAAAABQZpoSahBaJlMCHf//qmWAAADAAADAAADAAADAAADAAADAAADAAALf8A2bry6lUyIAQGNFfVK2Cd7h4qDqmqpvmXfkfTwo2Ab79AHhajxJ4MPWIgAAA84xLRIx7I2CrWjWe96OvgkzgS9mtvhuxdzAgpuIOJI3DEY9mviDDZz8XSAAAADAAADAB7AZkj9AAHHGvk+Pzlku8UkWa5HAQAzogD//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////6HjAkbF/gsWuvw4QAAAAwAAAwAccUdBADQHEAAApTx+AAAAAeAAAIDACjEACblhEQAJgSEAAAABCfAAAAABQZ6GRREsL/8AAAMAAAMAAAMAAAMAAAMAAAMAAAMAAA3URJB/3lMHSmOd0GYZnfpoR80WdqxlyHzPX+V81VUMeXIGrRgq5agd+ACdjoGI036yQ/rmpGw0CmMBrKwpI+nwFo3SP0s1rI2yHBZaiPJjSUgw33rBkxXcq55kfLf2sAAAAwAAAwACBWolidWDnIeQAAADRwEANbEA//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////8AAAMADulHQQA2NAD///////////////////////////////////////////////////////////////////8AAAHgAACAgAUhAAmdQQAAAAEJ8AAAAAEBnqV0Qr8AAAMAAAMAAAMAAAMAAAMAAAMAAAMAABJXNihCnx11JUosH2hBE53O/YN+GPHqcnJiQBIf3maTAAj5iRt+7GYUKBAU9iCXTiouCjGYgAAAAwAAAwA9p4HQBg2cAAADAAADAADGgUdBADc4EAAAs0x+AP////////////////////////////////////////////////////////////////8AAAHgAACAwAoxAAnVgREACblhAAAAAQnwAAAAAQGep2pCvwAAAwAAAwAAAwAAAwAAAwAAAwAAAwAAAwBR6/L83y+ZevtMZ0FW4lp8qV7fVXQAhLAWlS6mDxvpaSUgChorvgTMXtxJEIAAAAMAAAMACqFCAAADAAADAAADAAz4R0EAOCsA////////////////////////////////////////////////////////AAAB4AAAgMAKMQALYiERAAnVgQAAAAEJ8AAAAAFBmqxJqEFsmUwId//+qZYAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAApQTq0hABLvkcWCYrAaRRPNDrECJGlF/11BYvG9+JJ9Y86nxnmQzPxtAAe1UgOsXAAADAAADAAADAAADAAADAAADAAADA/JHQQA5JhAAAMFcfgD/////////////////////////////////////////AAAB4AAAgMAKMQALKeERAAnxoQAAAAEJ8AAAAAFBnspFFSwv/wAAAwAAAwAAAwAAAwAAAwAAAwAAAwAADdRFmvrVE0KXDOGwWddlwYa1foib7tXZKmkua6R4APb4b8+tXwdSNNqgf2IVNwGTohgQAcMvp6SiQxpiQym4AAADAAADAANUNUAAAAMAAAMAAAMBN0dBADo8AP//////////////////////////////////////////////////////////////////////////////AAAB4AAAgIAFIQALDcEAAAABCfAAAAABAZ7pdEK/AAADAAADAAADAAADAAADAAADAAADAAADAFHTAfujIUaaLSuklb9y0/so9AEtQAqkAxOviALQZ5jNt/iOkABrCOZ4md0iUnFwAAADAAADAALwckAAAAMAAAMAAATcR0EAO0IQAADPbH4A//////////////////////////////////////////////////////////////////////////////8AAAHgAACAwAoxAAtGAREACynhAAAAAQnwAAAAAQGe62pCvwAAAwAAAwAAAwAAAwAAAwAAAwAAAwAAAwBR6/L83y+WryR9gmVKPGbIhJpkgAFgHCej3gB6rAHPgHHAAAADAAADAAAYIV0AAAMAAAMAAAMABnxHQQA8UQD//////////////////////////////////////////////////////////////////////////////////////////////////////////wAAAeAAAIDACjEAC9KhEQALRgEAAAABCfAAAAABQZrwSahBbJlMCG///qeEAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAAZ8UdBAD00EAAA3Xx+AP///////////////////////////////////////////////////////////wAAAeAAAIDACjEAC5phEQALYiEAAAABCfAAAAABQZ8ORRUsL/8AAAMAAAMAAAMAAAMAAAMAAAMAAAMAAA3URZr61RNClwzhI2ZXdRHYLZWc1yTgKRhTIXBNABHQKIIyYNyc+AaEn1jhATEAAAMAAAMAAAMAckkIAAADAAADAAADAEbBR0EAPkYA////////////////////////////////////////////////////////////////////////////////////////////AAAB4AAAgIAFIQALfkEAAAABCfAAAAABAZ8tdEK/AAADAAADAAADAAADAAADAAADAAADAAADAFHTAfujIUAYRtY0f/43cIs2OjxACR2hMR1QBGYX+34JGAAAAwAAAwAAAwKEJ6AAAAMAAAMAAAMA3oFHQQA/QhAAAOuMfgD//////////////////////////////////////////////////////////////////////////////wAAAeAAAIDACjEAC7aBEQALmmEAAAABCfAAAAABAZ8vakK/AAADAAADAAADAAADAAADAAADAAADAAADAFHr8vzfL5avJH2CZUo8ZsiEmmSAAWAcJ6PeAHqsAc+AccAAAAMAAAMAABghXQAAAwAAAwAAAwAGfEdBADBRAP//////////////////////////////////////////////////////////////////////////////////////////////////////////AAAB4AAAgMAKMQANQyERAAu2gQAAAAEJ8AAAAAFBmzRJqEFsmUwIZ//+nhAAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAGVAR0EAMTQQAAD5nH4A////////////////////////////////////////////////////////////AAAB4AAAgMAKMQANCuERAAvSoQAAAAEJ8AAAAAFBn1JFFSwv/wAAAwAAAwAAAwAAAwAAAwAAAwAAAwAADdRFmvrVE0KXDOEjZld1EdgtlZzXJOApGFMhcE0AEdAogjJg3Jz4BoSfWOEBMQAAAwAAAwAAAwBySQgAAAMAAAMAAAMARsFHQQAyRgD///////////////////////////////////////////////////////////////////////////////////////////8AAAHgAACAgAUhAAvuwQAAAAEJ8AAAAAEBn3F0Qr8AAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAUdMB+6MhQBhG1jR//jdwizY6PEAJHaExHVAEZhf7fgkYAAADAAADAAADAoQnoAAAAwAAAwAAAwDegEdBADNCEAABB6x+AP//////////////////////////////////////////////////////////////////////////////AAAB4AAAgMAKMQANJwERAA0K4QAAAAEJ8AAAAAEBn3NqQr8AAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAUevy/N8vlq8kfYJlSjxmyISaZIABYBwno94AeqwBz4BxwAAAAwAAAwAAGCFdAAADAAADAAADAAZ8R0EANFIA////////////////////////////////////////////////////////////////////////////////////////////////////////////AAAB4AAAgMAKMQANs6ERAA0nAQAAAAEJ8AAAAAFBm3hJqEFsmUwIV//+OEAAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAYtHQQA1NBAAARW8fgD///////////////////////////////////////////////////////////8AAAHgAACAwAoxAA17YREADUMhAAAAAQnwAAAAAUGflkUVLC//AAADAAADAAADAAADAAADAAADAAADAAAN1EWa+tUTQpcM4SNmV3UR2C2VnNck4CkYUyFwTQAR0CiCMmDcnPgGhJ9Y4QExAAADAAADAAADAHJJCAAAAwAAAwAAAwBGwEdBADZGAP///////////////////////////////////////////////////////////////////////////////////////////wAAAeAAAICABSEADV9BAAAAAQnwAAAAAQGftXRCvwAAAwAAAwAAAwAAAwAAAwAAAwAAAwAAAwBR0wH7oyFAGEbWNH/+N3CLNjo8QAkdoTEdUARmF/t+CRgAAAMAAAMAAAMChCegAAADAAADAAADAN6BR0EAN0IQAAEjzH4A//////////////////////////////////////////////////////////////////////////////8AAAHgAACAwAoxAA2XgREADXthAAAAAQnwAAAAAQGft2pCvwAAAwAAAwAAAwAAAwAAAwAAAwAAAwAAAwBR6/L83y+WryR9gmVKPGbIhJpkgAFgHCej3gB6rAHPgHHAAAADAAADAAAYIV0AAAMAAAMAAAMABn0=" + webUI["html/img/BC-QR.jpg"] = "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" } diff --git a/src/xepg.go b/src/xepg.go index ef83202..1cbbcee 100644 --- a/src/xepg.go +++ b/src/xepg.go @@ -329,11 +329,17 @@ func createXEPGDatabase() (err error) { return } - var getFreeChannelNumber = func() (xChannelID string) { + var getFreeChannelNumber = func(startingChannel ...string) (xChannelID string) { sort.Float64s(allChannelNumbers) var firstFreeNumber float64 = Settings.MappingFirstChannel + if startingChannel != nil { + var startingChannel, _ = strconv.ParseFloat(startingChannel[0], 64) + if startingChannel > 0 { + firstFreeNumber = startingChannel + } + } for { @@ -481,8 +487,13 @@ func createXEPGDatabase() (err error) { case false: // Neuer Kanal var xepg = createNewID() - var xChannelID = getFreeChannelNumber() - + xChannelID := func() string { + if m3uChannel.PreserveMapping == "true" { + return getFreeChannelNumber(m3uChannel.UUIDValue) + } else { + return getFreeChannelNumber(m3uChannel.StartingChannel) + } + }() var newChannel XEPGChannelStruct newChannel.FileM3UID = m3uChannel.FileM3UID newChannel.FileM3UName = m3uChannel.FileM3UName @@ -501,6 +512,7 @@ func createXEPGDatabase() (err error) { newChannel.URL = m3uChannel.URL newChannel.XmltvFile = "" newChannel.XMapping = "" + newChannel.DefaultMissingEPG = m3uChannel.DefaultMissingEPG if len(m3uChannel.UUIDKey) > 0 { newChannel.UUIDKey = m3uChannel.UUIDKey @@ -548,8 +560,14 @@ func mapping() (err error) { var tvgID = xepgChannel.TvgID // Set default for new Channel - xepgChannel.XmltvFile = "-" - xepgChannel.XMapping = "-" + if len(xepgChannel.DefaultMissingEPG) > 1 { + xepgChannel.XmltvFile = "xTeVe Dummy" + xepgChannel.XMapping = xepgChannel.DefaultMissingEPG + xepgChannel.XActive = true + } else { + xepgChannel.XmltvFile = "-" + xepgChannel.XMapping = "-" + } Data.XEPG.Channels[xepg] = xepgChannel diff --git a/ts/base_ts.ts b/ts/base_ts.ts index e5cd134..cdf101c 100644 --- a/ts/base_ts.ts +++ b/ts/base_ts.ts @@ -60,7 +60,7 @@ function changeButtonAction(element, buttonID, attribute) { } function getLocalData(dataType, id):object { - var data = new Object() + let data = {} switch(dataType) { case "m3u": data = SERVER["settings"]["files"][dataType][id] @@ -82,6 +82,9 @@ function getLocalData(dataType, id):object { data["include"] = "" data["name"] = "" data["type"] = "group-title" + data["preserveMapping"] = true + data["startingChannel"] = SERVER["settings"]["mapping.first.channel"] + data["defaultMissingEPG"] = "-" SERVER["settings"]["filter"][id] = data } data = SERVER["settings"]["filter"][id] diff --git a/ts/menu_ts.ts b/ts/menu_ts.ts index 1bd2363..ef217f8 100644 --- a/ts/menu_ts.ts +++ b/ts/menu_ts.ts @@ -5,13 +5,13 @@ class MainMenu { ImagePath:string = "img/" createIMG(src):any { - var element = document.createElement("IMG") + let element = document.createElement("IMG") element.setAttribute("src", this.ImagePath + src) return element } createValue(value):any { - var element = document.createElement("P") + let element = document.createElement("P") element.innerHTML = value return element } @@ -34,16 +34,16 @@ class MainMenuItem extends MainMenu { } createItem():void { - var item = document.createElement("LI") + let item = document.createElement("LI") item.setAttribute("onclick", "javascript: openThisMenu(this)") item.setAttribute("id", this.id) - var img = this.createIMG(this.imgSrc) - var value = this.createValue(this.value) + let img = this.createIMG(this.imgSrc) + let value = this.createValue(this.value) item.appendChild(img) item.appendChild(value) - var doc = document.getElementById(this.DocumentID) + let doc = document.getElementById(this.DocumentID) doc.appendChild(item) switch(this.menuKey) { @@ -83,48 +83,48 @@ class Content { interactionID:string = "content-interaction" createHeadline(value):any { - var element = document.createElement("H3") + let element = document.createElement("H3") element.innerHTML = value return element } createHR():any { - var element = document.createElement("HR") - return element + return document.createElement("HR") } createInteraction():any { - var element = document.createElement("DIV") + let element = document.createElement("DIV") element.setAttribute("id", this.interactionID) return element } createDIV():any { - var element = document.createElement("DIV") + let element = document.createElement("DIV") element.id = this.DivID return element } createTABLE():any { - var element = document.createElement("TABLE") + let element = document.createElement("TABLE") element.id = this.TableID return element } createTableRow():any { - var element = document.createElement("TR") + let element = document.createElement("TR") element.className = this.headerClass return element } createTableContent(menuKey:string):string[] { - var data = new Object() - var rows = new Array() + let data = {} + let rows = [] + let fileTypes = [] switch(menuKey) { case "playlist": - var fileTypes = new Array("m3u", "hdhr") + fileTypes = ["m3u", "hdhr"] fileTypes.forEach(fileType => { @@ -203,7 +203,7 @@ class Content { }); break - case "filter": + case "filter": delete SERVER["settings"]["filter"][-1] data = SERVER["settings"]["filter"] var keys = getObjKeys(data) @@ -212,7 +212,7 @@ class Content { tr.id = key tr.setAttribute('onclick', 'javascript: openPopUp("' + data[key]["type"] + '", this)') - + var cell:Cell = new Cell() cell.child = true cell.childType = "P" @@ -230,11 +230,11 @@ class Content { case "group-title": cell.value = "{{.filter.group}}" break; - + default: break; } - + tr.appendChild(cell.createCell()) var cell:Cell = new Cell() @@ -249,58 +249,58 @@ class Content { break case "xmltv": - var fileTypes = new Array("xmltv") + fileTypes = new Array("xmltv") fileTypes.forEach(fileType => { - + data = SERVER["settings"]["files"][fileType] - + var keys = getObjKeys(data) - + keys.forEach(key => { var tr = document.createElement("TR") - + tr.id = key tr.setAttribute('onclick', 'javascript: openPopUp("' + fileType + '", this)') var cell:Cell = new Cell() cell.child = true cell.childType = "P" - cell.value = data[key]["name"] + cell.value = data[key]["name"] tr.appendChild(cell.createCell()) - + var cell:Cell = new Cell() cell.child = true cell.childType = "P" cell.value = data[key]["last.update"] tr.appendChild(cell.createCell()) - + var cell:Cell = new Cell() cell.child = true cell.childType = "P" cell.value = data[key]["provider.availability"] tr.appendChild(cell.createCell()) - + var cell:Cell = new Cell() cell.child = true cell.childType = "P" cell.value = data[key]["compatibility"]["xmltv.channels"] tr.appendChild(cell.createCell()) - + var cell:Cell = new Cell() cell.child = true cell.childType = "P" cell.value = data[key]["compatibility"]["xmltv.programs"] tr.appendChild(cell.createCell()) - + rows.push(tr) }); - + }); break case "users": - var fileTypes = new Array("users") + fileTypes = new Array("users") fileTypes.forEach(fileType => { data = SERVER[fileType] @@ -500,8 +500,7 @@ class Content { var cell:Cell = new Cell() cell.child = true cell.childType = "P" - var value = data[key]["x-timeshift"] - cell.value = value + cell.value = data[key]["x-timeshift"] var td = cell.createCell() td.setAttribute('onclick', 'javascript: openPopUp("mapping", this)') td.id = key @@ -541,7 +540,7 @@ class Cell { onclickFunktion:string createCell():any { - var td = document.createElement("TD") + let td = document.createElement("TD") if (this.child == true) { @@ -622,7 +621,7 @@ class ShowContent extends Content { createInput(type:string, name:string, value:string,):any { - var input = document.createElement("INPUT") + let input = document.createElement("INPUT") input.setAttribute("type", type) input.setAttribute("name", name) input.setAttribute("value", value) @@ -632,24 +631,24 @@ class ShowContent extends Content { show():void { COLUMN_TO_SORT = -1 // Alten Inhalt löschen - var doc = document.getElementById(this.DocumentID) + let doc = document.getElementById(this.DocumentID) doc.innerHTML = "" showPreview(false) // Überschrift - var headline:string[] = menuItems[this.menuID].headline + let headline:string[] = menuItems[this.menuID].headline - var menuKey = menuItems[this.menuID].menuKey - var h = this.createHeadline(headline) + let menuKey = menuItems[this.menuID].menuKey + let h = this.createHeadline(headline) doc.appendChild(h) - var hr = this.createHR() + let hr = this.createHR() doc.appendChild(hr) // Interaktion - var div =this.createInteraction() + let div =this.createInteraction() doc.appendChild(div) - var interaction = document.getElementById(this.interactionID) + let interaction = document.getElementById(this.interactionID) switch (menuKey) { case "playlist": var input = this.createInput("button", menuKey, "{{.button.new}}") @@ -722,7 +721,6 @@ class ShowContent extends Content { showSettings() return - break case "log": var input = this.createInput("button", menuKey, "{{.button.resetLogs}}") @@ -740,7 +738,6 @@ class ShowContent extends Content { showLogs(true) return - break case "logout": location.reload() @@ -837,8 +834,8 @@ class ShowContent extends Content { function PageReady() { - var server:Server = new Server("getServerConfig") - server.request(new Object()) + let server:Server = new Server("getServerConfig") + server.request({}) window.addEventListener("resize", function(){ calculateWrapperHeight(); @@ -855,8 +852,8 @@ function PageReady() { function createLayout() { // Client Info - var obj = SERVER["clientInfo"] - var keys = getObjKeys(obj); + let obj = SERVER["clientInfo"] + let keys = getObjKeys(obj); for (var i = 0; i < keys.length; i++) { if (document.getElementById(keys[i])) { @@ -904,8 +901,8 @@ function createLayout() { } function openThisMenu(element) { - var id = element.id - var content:ShowContent = new ShowContent(id) + let id = element.id + let content:ShowContent = new ShowContent(id) content.show() calculateWrapperHeight() @@ -918,20 +915,20 @@ class PopupWindow { doc = document.getElementById(this.DocumentID) createTitle(title:string):any { - var td = document.createElement("TD") + let td = document.createElement("TD") td.className = "left" td.innerHTML = title + ":" return td } createContent(element):any { - var td = document.createElement("TD") + let td = document.createElement("TD") td.appendChild(element) return td } createInteraction():any { - var div = document.createElement("div") + let div = document.createElement("div") div.setAttribute("id", "popup-interaction") div.className = "interaction" this.doc.appendChild(div) @@ -954,7 +951,7 @@ class PopupContent extends PopupWindow{ } appendRow(title:string, element:any):void { - var tr = document.createElement("TR") + let tr = document.createElement("TR") // Bezeichnung if (title.length != 0) { @@ -969,8 +966,8 @@ class PopupContent extends PopupWindow{ createInput(type:string, name:string, value:string):any { - - var input = document.createElement("INPUT") + + let input = document.createElement("INPUT") if (value == undefined) { value = "" } @@ -982,18 +979,19 @@ class PopupContent extends PopupWindow{ } createCheckbox(name:string):any { - var input = document.createElement("INPUT") + let input = document.createElement("INPUT") input.setAttribute("type", "checkbox") input.setAttribute("name", name) return input } + // Creates a selection of multiple options values with text descriptions createSelect(text:string[], values:string[], set:string, dbKey:string):any { - var select = document.createElement("SELECT") + let select = document.createElement("SELECT") select.setAttribute("name", dbKey) for (let i = 0; i < text.length; i++) { - var option = document.createElement("OPTION") + let option = document.createElement("OPTION") option.setAttribute("value", values[i]) option.innerText = text[i] select.appendChild(option) @@ -1011,15 +1009,15 @@ class PopupContent extends PopupWindow{ selectOption(select:any, value:string):any { //select.selectedOptions = value - var s:HTMLSelectElement = (select as HTMLSelectElement) + let s:HTMLSelectElement = (select as HTMLSelectElement) s.options[s.selectedIndex].value = value return select } description(value:string):any { - var tr = document.createElement("TR") - var td = document.createElement("TD") - var span = document.createElement("PRE") + let tr = document.createElement("TR") + let td = document.createElement("TD") + let span = document.createElement("PRE") span.innerHTML = value @@ -1032,15 +1030,15 @@ class PopupContent extends PopupWindow{ // Interaktion addInteraction(element:any) { - var interaction = document.getElementById("popup-interaction") + let interaction = document.getElementById("popup-interaction") interaction.appendChild(element) } } function openPopUp(dataType, element) { - var data:object = new Object(); - var id:any + let data:object = {}; + let id:any switch (element) { case undefined: @@ -1075,8 +1073,8 @@ function openPopUp(dataType, element) { data = getLocalData(dataType, id) break; } - - var content:PopupContent = new PopupContent() + + let content:PopupContent = new PopupContent() switch (dataType) { case "playlist": @@ -1125,8 +1123,8 @@ function openPopUp(dataType, element) { // Tuner if (SERVER["settings"]["buffer"] != "-") { - var text:string[] = new Array() - var values:string[] = new Array() + var text:string[] = [] + var values:string[] = [] for (var i = 1; i <= 100; i++) { text.push(i.toString()) @@ -1204,8 +1202,8 @@ function openPopUp(dataType, element) { // Tuner if (SERVER["settings"]["buffer"] != "-") { - var text:string[] = new Array() - var values:string[] = new Array() + var text:string[] = [] + var values:string[] = [] for (var i = 1; i <= 100; i++) { text.push(i.toString()) @@ -1292,11 +1290,11 @@ function openPopUp(dataType, element) { switch (dataType) { case "custom-filter": - content.createHeadline("{{.filter.custom}}") + content.createHeadline("{{.filter.custom}}" + " Filter") break; case "group-title": - content.createHeadline("{{.filter.group}}") + content.createHeadline("{{.filter.group}}" + " Filter") break; } @@ -1368,7 +1366,41 @@ function openPopUp(dataType, element) { input.setAttribute("placeholder", "{{.filter.exclude.placeholder}}") content.appendRow("{{.filter.exclude.title}}", input) content.description("{{.filter.exclude.description}}") - + + // Preserve M3U Playlist Channel Mapping + var dbKey:string = "preserveMapping" + var input = content.createCheckbox(dbKey) + input.checked = data[dbKey] + content.appendRow("{{.filter.preserveMapping.title}}", input) + + // Starting Channel Number Mapping + var dbKey:string = "startingChannel" + var input = content.createInput("text", dbKey, data[dbKey]) + input.setAttribute("placeholder", "{{.filter.startingChannel.placeholder}}") + content.appendRow("{{.filter.startingChannel.title}}", input) + + // Fill Missing EPG Data + + // The following code only works when xTeVe Dummy already exists + // var dbKey:string = "defaultMissingEPG" + // var xmltv:XMLTVFile = new XMLTVFile() + // var select = xmltv.getPrograms("xTeVe Dummy", data[dbKey]) + // select.setAttribute("name", dbKey) + // select.setAttribute("id", "popup-missing-epg") + + // The workaround is currently to hard code the xTeVe Dummy data + var dbKey:string = "defaultMissingEPG" + var listOptions = {"text": ["-", "30 Minutes (30_Minutes)", "60 Minutes (60_Minutes)", "90 Minutes (90_Minutes)", + "120 Minutes (120_Minutes)", "180 Minutes (30_Minutes)", "240 Minutes (30_Minutes)", "360 Minutes (30_Minutes)"], + "value": ["-", "30_Minutes", "60_Minutes", "90_Minutes", "120_Minutes", "180_Minutes", "240_Minutes", "360_Minutes", ]} + var text:string[] = listOptions["text"] + var values:string[] = listOptions["value"] + var select = content.createSelect(text, values, data[dbKey], dbKey) + + select.setAttribute("onchange", "javascript: this.className = 'changed'") + content.appendRow("{{.filter.defaultMissingEPG.title}}", select) + content.description("{{.filter.defaultMissingEPG.description}}") + break default: @@ -1638,7 +1670,7 @@ function openPopUp(dataType, element) { content.addInteraction(input) // Fertig - var ids:string[] = new Array() + var ids:string[] = [] ids = getAllSelectedChannels() if (ids.length == 0) { ids.push(id) @@ -1660,9 +1692,9 @@ class XMLTVFile { File:string getFiles(set:string):any { - var fileIDs:string[] = getObjKeys(SERVER["xepg"]["xmltvMap"]) - var values = new Array("-"); - var text = new Array("-"); + let fileIDs:string[] = getObjKeys(SERVER["xepg"]["xmltvMap"]) + let values = new Array("-"); + let text = new Array("-"); for (let i = 0; i < fileIDs.length; i++) { if (fileIDs[i] != "xTeVe Dummy") { @@ -1675,7 +1707,7 @@ class XMLTVFile { } - var select = document.createElement("SELECT") + let select = document.createElement("SELECT") for (let i = 0; i < text.length; i++) { var option = document.createElement("OPTION") option.setAttribute("value", values[i]) @@ -1692,9 +1724,9 @@ class XMLTVFile { getPrograms(file:string, set:string):any { //var fileIDs:string[] = getObjKeys(SERVER["xepg"]["xmltvMap"]) - var values = getObjKeys(SERVER["xepg"]["xmltvMap"][file]); - var text = new Array() - var displayName:string + let values = getObjKeys(SERVER["xepg"]["xmltvMap"][file]); + let text = [] + let displayName:string for (let i = 0; i < values.length; i++) { if (SERVER["xepg"]["xmltvMap"][file][values[i]].hasOwnProperty('display-name') == true) { @@ -1709,7 +1741,7 @@ class XMLTVFile { text.unshift("-"); values.unshift("-"); - var select = document.createElement("SELECT") + let select = document.createElement("SELECT") for (let i = 0; i < text.length; i++) { var option = document.createElement("OPTION") option.setAttribute("value", values[i]) @@ -1737,8 +1769,8 @@ function getValueFromProviderFile(file:string, fileType, key) { return file } - var fileID:string - var indicator = file.charAt(0) + let fileID:string + let indicator = file.charAt(0) switch (indicator) { case "M": @@ -1769,14 +1801,14 @@ function getValueFromProviderFile(file:string, fileType, key) { function setXmltvChannel(id, element) { - var xmltv:XMLTVFile = new XMLTVFile() - var xmlFile = element.value + let xmltv:XMLTVFile = new XMLTVFile() + let xmlFile = element.value - var tvgId:string = SERVER["xepg"]["epgMapping"][id]["tvg-id"] - var td = document.getElementById("popup-mapping").parentElement + let tvgId:string = SERVER["xepg"]["epgMapping"][id]["tvg-id"] + let td = document.getElementById("popup-mapping").parentElement td.innerHTML = "" - var select = xmltv.getPrograms(element.value, tvgId) + let select = xmltv.getPrograms(element.value, tvgId) select.setAttribute("name", "x-mapping") select.setAttribute("id", "popup-mapping") select.setAttribute("onchange", "javascript: this.className = 'changed'; checkXmltvChannel('" + id + "',this,'" + xmlFile + "');") @@ -1788,19 +1820,15 @@ function setXmltvChannel(id, element) { } function checkXmltvChannel(id:string, element:any, xmlFile) { - - var value = (element as HTMLSelectElement).value - var bool:boolean - var checkbox = document.getElementById('active') - var channel:any = SERVER["xepg"]["epgMapping"][id] - var updateLogo:boolean + + let value = (element as HTMLSelectElement).value + let bool:boolean + let checkbox = document.getElementById('active') + let channel:any = SERVER["xepg"]["epgMapping"][id] + let updateLogo:boolean - if (value == "-") { - bool = false - } else { - bool = true - } + bool = value != "-"; (checkbox as HTMLInputElement).checked = bool checkbox.className = "changed" @@ -1833,16 +1861,16 @@ function checkXmltvChannel(id:string, element:any, xmlFile) { function changeChannelLogo(id:string) { - var updateLogo:boolean - var channel:any = SERVER["xepg"]["epgMapping"][id] + let updateLogo:boolean + let channel:any = SERVER["xepg"]["epgMapping"][id] - var f = (document.getElementById("popup-xmltv") as HTMLSelectElement); - var xmltvFile = f.options[f.selectedIndex].value; + let f = (document.getElementById("popup-xmltv") as HTMLSelectElement); + let xmltvFile = f.options[f.selectedIndex].value; - var m = (document.getElementById("popup-mapping") as HTMLSelectElement); - var xMapping = m.options[m.selectedIndex].value; + let m = (document.getElementById("popup-mapping") as HTMLSelectElement); + let xMapping = m.options[m.selectedIndex].value; - var xmltvLogo = SERVER["xepg"]["xmltvMap"][xmltvFile][xMapping]["icon"] + let xmltvLogo = SERVER["xepg"]["xmltvMap"][xmltvFile][xMapping]["icon"] updateLogo = (document.getElementById("update-icon") as HTMLInputElement).checked if (updateLogo == true && xmltvFile != "xTeVe Dummy") { @@ -1867,15 +1895,15 @@ function savePopupData(dataType:string, id:string, remove:Boolean, option:number if (dataType == "mapping") { - var data = new Object() + let data = {} console.log("Save mapping data") - cmd = "saveEpgMapping" + let cmd = "saveEpgMapping" data["epgMapping"] = SERVER["xepg"]["epgMapping"] console.log("SEND TO SERVER"); - var server:Server = new Server(cmd) + let server:Server = new Server(cmd) server.request(data) delete UNDO["epgMapping"] @@ -1884,13 +1912,13 @@ function savePopupData(dataType:string, id:string, remove:Boolean, option:number } console.log("Save popup data") - var div = document.getElementById("popup-custom") + let div = document.getElementById("popup-custom") - var inputs = div.getElementsByTagName("TABLE")[0].getElementsByTagName("INPUT"); - var selects = div.getElementsByTagName("TABLE")[0].getElementsByTagName("SELECT"); + let inputs = div.getElementsByTagName("TABLE")[0].getElementsByTagName("INPUT"); + let selects = div.getElementsByTagName("TABLE")[0].getElementsByTagName("SELECT"); - var input = new Object(); - var confirmMsg: string + let input = {}; + let confirmMsg: string for (let i = 0; i < selects.length; i++) { @@ -1941,9 +1969,9 @@ function savePopupData(dataType:string, id:string, remove:Boolean, option:number } - var data = new Object() + let data = {} - var cmd:string + let cmd:string if (remove == true) { input["delete"] = true @@ -1958,7 +1986,7 @@ function savePopupData(dataType:string, id:string, remove:Boolean, option:number data["userData"] = input } else { cmd = "saveUserData" - var d = new Object() + let d = {} d[id] = input data["userData"] = d } @@ -1981,8 +2009,8 @@ function savePopupData(dataType:string, id:string, remove:Boolean, option:number } - data["files"] = new Object - data["files"][dataType] = new Object + data["files"] = {} + data["files"][dataType] = {} data["files"][dataType][id] = input break @@ -2003,8 +2031,8 @@ function savePopupData(dataType:string, id:string, remove:Boolean, option:number } - data["files"] = new Object - data["files"][dataType] = new Object + data["files"] = {} + data["files"][dataType] = {} data["files"][dataType][id] = input break @@ -2025,8 +2053,8 @@ function savePopupData(dataType:string, id:string, remove:Boolean, option:number } - data["files"] = new Object - data["files"][dataType] = new Object + data["files"] = {} + data["files"][dataType] = {} data["files"][dataType][id] = input break @@ -2035,14 +2063,13 @@ function savePopupData(dataType:string, id:string, remove:Boolean, option:number confirmMsg = "Delete this filter?" cmd = "saveFilter" - data["filter"] = new Object + data["filter"] = {} data["filter"][id] = input break default: console.log(dataType, id); return - break; } @@ -2058,28 +2085,28 @@ function savePopupData(dataType:string, id:string, remove:Boolean, option:number console.log("SEND TO SERVER"); console.log(data); - - var server:Server = new Server(cmd) + + let server:Server = new Server(cmd) server.request(data) } function donePopupData(dataType:string, idsStr:string) { - - var ids:string[] = idsStr.split(','); - var div = document.getElementById("popup-custom") - var inputs = div.getElementsByClassName("changed") + + let ids:string[] = idsStr.split(','); + let div = document.getElementById("popup-custom") + let inputs = div.getElementsByClassName("changed") ids.forEach(id => { - var input = new Object(); + let input: Object; input = SERVER["xepg"]["epgMapping"][id] console.log(input); for (let i = 0; i < inputs.length; i++) { - - var name:string - var value:any + + let name:string + let value:any switch (inputs[i].tagName) { @@ -2177,28 +2204,27 @@ function donePopupData(dataType:string, idsStr:string) { function showPreview(element:boolean) { - var div = document.getElementById("myStreamsBox") + let div = document.getElementById("myStreamsBox") switch (element) { case false: div.className = "notVisible" return - break; } - - var streams:string[] = ["activeStreams", "inactiveStreams"] + + let streams:string[] = ["activeStreams", "inactiveStreams"] streams.forEach(preview => { - - var table = document.getElementById(preview) + + let table = document.getElementById(preview) table.innerHTML = "" - var obj:string[] = SERVER["data"]["StreamPreviewUI"][preview] + let obj:string[] = SERVER["data"]["StreamPreviewUI"][preview] obj.forEach(channel => { - - var tr = document.createElement("TR") - var tdKey = document.createElement("TD") - var tdVal = document.createElement("TD") + + let tr = document.createElement("TR") + let tdKey = document.createElement("TD") + let tdVal = document.createElement("TD") tdKey.className = "tdKey" tdVal.className = "tdVal" From 6f96e74f7686c3f4a59e162fe77cbe58c8cfa9fb Mon Sep 17 00:00:00 2001 From: winguru Date: Thu, 17 Jun 2021 18:27:46 -0400 Subject: [PATCH 013/189] Reodered Default xTeVe Dummy mapping in xepg.go to catch edge cases. --- src/webUI.go | 54 ++++++++++++++++++++++++++-------------------------- src/xepg.go | 18 +++++++++--------- 2 files changed, 36 insertions(+), 36 deletions(-) diff --git a/src/webUI.go b/src/webUI.go index d54c023..3f90a30 100644 --- a/src/webUI.go +++ b/src/webUI.go @@ -4,46 +4,46 @@ var webUI = make(map[string]interface{}) func loadHTMLMap() { - webUI["html/img/x_ transparent.png"] = "iVBORw0KGgoAAAANSUhEUgAAAQAAAAEACAYAAABccqhmAAAAAXNSR0IArs4c6QAAAAlwSFlzAAAWJQAAFiUBSVIk8AAAA6ppVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IlhNUCBDb3JlIDUuNC4wIj4KICAgPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIgogICAgICAgICAgICB4bWxuczp0aWZmPSJodHRwOi8vbnMuYWRvYmUuY29tL3RpZmYvMS4wLyIKICAgICAgICAgICAgeG1sbnM6ZXhpZj0iaHR0cDovL25zLmFkb2JlLmNvbS9leGlmLzEuMC8iPgogICAgICAgICA8eG1wOk1vZGlmeURhdGU+MjAxOC0xMS0xNVQxNzoxMTo3NjwveG1wOk1vZGlmeURhdGU+CiAgICAgICAgIDx4bXA6Q3JlYXRvclRvb2w+UGl4ZWxtYXRvciAzLjM8L3htcDpDcmVhdG9yVG9vbD4KICAgICAgICAgPHRpZmY6T3JpZW50YXRpb24+MTwvdGlmZjpPcmllbnRhdGlvbj4KICAgICAgICAgPHRpZmY6Q29tcHJlc3Npb24+NTwvdGlmZjpDb21wcmVzc2lvbj4KICAgICAgICAgPHRpZmY6UmVzb2x1dGlvblVuaXQ+MjwvdGlmZjpSZXNvbHV0aW9uVW5pdD4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+MTQ0PC90aWZmOllSZXNvbHV0aW9uPgogICAgICAgICA8dGlmZjpYUmVzb2x1dGlvbj4xNDQ8L3RpZmY6WFJlc29sdXRpb24+CiAgICAgICAgIDxleGlmOlBpeGVsWERpbWVuc2lvbj4yNTY8L2V4aWY6UGl4ZWxYRGltZW5zaW9uPgogICAgICAgICA8ZXhpZjpDb2xvclNwYWNlPjE8L2V4aWY6Q29sb3JTcGFjZT4KICAgICAgICAgPGV4aWY6UGl4ZWxZRGltZW5zaW9uPjI1NjwvZXhpZjpQaXhlbFlEaW1lbnNpb24+CiAgICAgIDwvcmRmOkRlc2NyaXB0aW9uPgogICA8L3JkZjpSREY+CjwveDp4bXBtZXRhPgoeXQb1AAAaJElEQVR4Ae2dCZhcVZXHz+1KSFiGkISkqyIoOgI68EkgOBNkEcQRlIFRZDGABAQEhInGbxw+RUZRNhWRLawDYR0GHAaHUVkGvwGURUcgwIiAOGxjV3UHAslHQrbuM/9TlQ6d7qruWt527/u/7+uuqvvucu7vvnveuffde54IDxIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARLwiIDzQtayHi0q23shaydCOnlISu7nnWThRdrFOkPWyCleyNqJkF1yjhTd8k6yiDvtuLgLiCR/lVnIZ14keWU7k2Xyuu4oU92r2RazQ+nWypXI4W86zCXbyZ28KBvJ97MtpEhX1gWsyleS08TJU17I2omQKpvLarmqkywyn7ZHPw9rLvTOvwbX6xEyxS3Nenv4oQCcWwmQc/D3dtaBdiyfyv5S1mM7zieLGSzWEsS6KIuiRSzTGTD9H404z1iy80MBWNVL7hn8nx8LhaxlqnKBvKbvyppYHctTM/0nd5xPljNwcrcUs2/6DyL0RwGYxDOcjR3vGBQ+4M8tMElmdQ3n6NGjYPofGE6F6tTESRmm/1xxTuuczWSQH08BhqJbqlNkuTyJoK2GBgf53S6mkrvB+7qZ6b9Gfod6hHv3dzKAGbX9pNvd51N7+WUBGNlJbgm07FH4G/AJdFuyqlwotXFzW8kzk2itXAFZwu38BlrlPN86v4ntnwIwqUvuASiAc+1r4MdkqXUef6tZM/0P8rcCTUmO9RvyraZiZiySf0OAQYCq46QiD0Lz7jYYFOxnARZPt7vZu/r1aREKzEz/Kd7J3rzAS2Si7IxHfq80nyQ7Mf20AIyfc2thBRyJv2XZwRmTJP14dNar3THlHl+2Nesl5M4vUpDjfe381vD+KgCTvuhehAI4yb4GfkzFjMdlXtWxV4+EvH/rlcytCutkASwzr59K+TsEGNpYZb0OQ4G5Q4OC/N4ln4PSuzXzdcuH6b8I4/7ZsERXZb49RhHQbwtgsGIFORWWwAuDP4P9HJBLsUpwWubrt1Yuh4zhmv5O3pLxUMaed367jsJQANPdW7AA5kAJrMl85+hMwC2RfEFnWcScuqJHoIRPx1xK2tmfKtPcc2kLEUX5YSgAIzHD/Rb/T48CSqbzUDkUVsAhmZTRTP8BuTiTskUllJMb8Bj6+qiySzufMOYABimq2mLMe/DzrweDgvx00iebyg6yuXstU/XrUZsQC/nu/5yMk13FLM5AjnAsAGsQW4M93tZiy+JA2qd+NVSmYzn0JfVPphRa0TkoOeTOvwqdf05Ind+ulLAUgNVomivj/7H2NehDMQnVq5/JRB1tjcJAxhRS1GC65Gvo/E9EnW3a+YWnAIxoyf0M/8Mei1o9bW2AbY5K++ivzvpPTVuMGMv/CR6/ZsviiqiyYSoAg1OSf8BQ4KmIOGUzG8XO8+UpK7qKfg5wsmGJxNNKr2C+5bh4sk4/17AmAYfzLOtf4PGgPR3YePipoH53YcVd0d2ZeJ3M9O+vrvUP8+7vsJOhIPvA9P9V4mwTKjBcC8AA5sWLkGK77Zua/Hbb2vLkMDu/XT8qZ4bc+a2KYSsAq6F5EXLyb/Y12EMx4HkbvgOSPCp6ODrIwUkWmWhZTn4BquckWmYKhYU9BBgEmhcvQk4OgNUT/3sFKjodE5C2zddWJoZ32DqLcTJz3ROl8Oo3pEbhWwBW2bx4EVK4FF+ik4a0bzxftbozMdTOr7Bs5uah89vFkQ8FYDWteREK3aR7l6yCR+E4j7Iehg7y2TiLSDnv8zFsvDtlGRIrPh9DgEGcefEiVMC7BbqdLYmO9gjf9H8UD1b3worS0DeVrb8u8mMBWJXNi5DgjS1Olq4nEOKXfrkarxjbPPKqaXUnYpimv8ibuC5wbeSn89v1kS8FYDUuuZfQ0KF7EdoaQ4HzrbqRHWU9FKb/IZHll7WMnHyx6mEqa3LFLE++hgBDYZZ1IS7oY4YGBfe9gF2RUfiprzkh+R14Zd8ZSXuNeBXG/Se2l9TvVPlVAH26GdZ5PY7m29bvJhxFeicvYyXbjh3vYCvrbej8h45Skr+nnDyNcf9fwfQP/72TdVopf0OAQQi1Pd1hexFSeQ+W6v5gsMptfdZM/zA7v8gKMDHXXrns/HY95FcBWO1nuMfw/xv2NeDjRHgQ2qet+tVM/wVtpfUhUZfMW7dc3AdpY5Ex3wrAkBblh/j/n7HQzUKmiilPkWukopu2Ic6lAY/7b8Gk3zVtMAkqCRWAeREaJ0ejm4TrRUjlvejI57V05ZrfQZXDWkrjS2Qnf5QJwT8Jaqo18jsJOBxPWQ/ABf/T4cHB/HaonWBrq62IHOtYplvCz4DN+k8fK6qH51dD5t0x/LNt4rk/aAEMXgKhexEaHAqobjJY5Yafy/H+gTA7v1X56+z877Q8LYB3WGD/t06AV+FfI2inocGBfb8IHeArDevUo7bO/18bnvf5hIOFV5SDMOtv1hAPEKACGH4Z9OgHEWTm4dh3yuFpffjtsJG3IB+t6+gibNP/T7IZtvhmzZV6ytcMhwDDG2CG+z2C5g8PDua34tHvWjwVUB3pJi1U099hNYTDK9bZ+UdcxlQAI5AgYIa7ChdMyF6EtpOKnLVB1Xv0YIz7D98gLJwfZ2Hy8/5wqhNdTTgEaMTSfOytkCdxeutGUbwOt6FAl+yBvQKPSMimv5MHMO7fF+P+fq/bKybhaQE0AruFewOnjoIlMNAoitfhNhTol2sxFJhYfctQmLP+r+FNUUey8ze+UmkBNGZTO1PW78A0PmOsaN6et0UxKn/urfyjCd4lB2K1X7hrO0are5PnqADGAqVawKPBBxHtI2NF5flMEbgQcznhTuZGhJoKoBmQZd0G0RbhThm/w81m5GGc0Qk4PMYtYrWfc7bqj8coBDgHMAqc9adqXoRy6TBiPQNfvjhZhnUO2ObNzt9Mk1EBNEPJ4hTdrZgQXNhsdMZLiYCTk7HI6YWUSveuWA4BWmky21I7UPUitF0ryRg3IQIOTzVKLtgXecZBkQqgVao9OgtJHsbfRq0mZfwYCTh5BuP+D8P0Ny8/PJokwCFAk6DWRzMvQi54L0Lrq+vJl7fRJubai52/xQajAmgRWDV6sfr2nXvbSco0sRD4KuZono4l58Az5RCg3Qbu0yJW0j2JR4MhOs1ol0ry6Zz8GOP+w5IvOIwSaQG0247TXQVJj4Xpyb3l7TLsNJ2Tl2QiXujBo20CVABto0NCexW3ysWdZMG0bRJwsgbKd45Mdm+2mQOTgQAVQKeXQUlOQxaLOs2G6VsmcAbG/Y+2nIoJNiDAOYANcLT54zX9gKwWe8dAmF6E2sQSY7J7pCSfxKw/h18dQqYF0CHAavIt3bOwpRr72YuiDOZRI+DgyqTL3Liz80dxSVABREHR8ii6qzEmvT2q7JhPHQI1JyafB+u+OmcZ1AYBKoA2oDVMsrGcgHOvNjzPE50RsJebRPG2486kCCo15wCibs4+3RPrA/4LTwcKUWed8/wewrh/b5j+a3POIdLq0wKIFCcym+5+if9nR51tzvNbguf9R7DzR38V0AKInqm9YMS8CD2ArHePI/vc5VmQg2H635G7eidQYVoAcUCueaCFM0pZGkf2ucrTyQJ2/vhanBZAfGxFynoY5gJujbOIwPNehHH/bJj+qwKvZ2rVowUQJ/qSuw1WwLVxFhFs3k7egktv2+LLzh9jI1MBxAi3mrWTefh8Pu5iAsz/VJnmnguwXpmqEhVA3M1RdMtxJ5uDYuihtlnWTm7ARqvrm43OeO0ToAJon13zKae5xzEU+EbzCXId83msoDgl1wQSrDwnAZOCrerwaPAuFLdfUkV6WM4qGSe7YS3FEx7K7qXItACSajbbvFKQubAEuI69EfMu+Ro7fyM48YRTAcTDtX6u3a4XJ46BEuA21pGEfoJNPpeMDGZInASoAOKkWy/vkrsL3f+ieqdyHPaKbCrH5bj+qVWdcwBpoFedgPkA82YzM43iM1Wmw9apguwN0/9XmZIrJ8LQAkijoW1xy0bVR4P0Y6/ybXb+NC7CWplUAGmxr3kR+nJaxWeiXCe/wFLfczIhS06F4BAg7YYv648xJ3BI2mIkXr49DRmHIdA0V068bBa4ngAtgPUoUvoysepF6JWUSk+z2MvY+dPEXyubCiDtNjC/9g6PBvN3zJUlOil/1c5WjakAstAeTvbNghiJyqDyXlkplydaJgsbQYBzACOQJBzQqx+XAbkH8wD5VMYOr1cruesSps7i1hGgAkjzUqjodHR8e8FoMU0xUi3b9v0XZBc8CvxDqnLktPB83nWy0Ni2OWgA217z3PmtHVQ2w1Kgf4YfxY2y0Cx5k4EKIK0Wr2DjC3cG1uir7Ir3/dCTcgrXIocAKUCXis7Gne9B/I1Po/hMlmkbpLpkfzgAvTeT8gUqFBVA0g37hm6B2e8ncLlvk3TRmS/P3vvnZCe++iu5luIQIDnWtZJWytXs/A2g23yI0olqAzqxBFMBxIK1QaY9ehIu8Pwt+22Ao26wygEYIuV7j0RdMPEEcggQD9eRufbqhzDb/WucmDjyJEOGETDXYLPxaHDRsHD+jJgALYCIgdbNTnUTPPL7F5xj568LaETghHWPBjcZcYYBkRKgAogUZ4PMKnIJTP8PNjjL4HoEjFdZLqx3imHREeAQIDqW9XOq6BG4+99c/yRDmyBwiMxwtzcRj1HaIEAF0Aa0ppP06fthyj6Ou/+fNZ2GEYcTeEMm4NHgVPfq8BP83TkBDgE6Z1g/B1vauhbjfnb++nyaD52MdyrdVH3levNpGLNJAlQATYJqOVpZvoc0s1pOxwQjCajshSVCp488wZBOCXAI0CnBeukreiDG/XfWO8WwNgmY9+Au+SiWCj/UZg5MVocAFUAdKB0Fva5bySqx59dTO8qHiUcScPISHqTuLOZFiUckBDgEiATjukxUCxiv2ow/O3+UXAfzsv0TK+WKwZ/87JwAFUDnDN/JoSJnYNJvr3cC+C1yAiqHY6nwFyLPN6cZcggQVcOXdR9kdR8UAJVqVEwb5eNkOZYKz4JX4ecaRWF4cwR4sTbHafRYZZ2GCHhUxc4/OqiIzireJLiGXoSioEkF0ClFc+0lch06/4xOs2L6lgjsgkeD57aUgpFHEKACGIGkxYCyzEfn/1SLqRg9GgLzpUf3jyarfObCOYBO2r2sH0byh6AAxneSDdN2QMBJLwZeO2F9QG8HueQ2KS2Adpv+dd0cSW2pLzt/uwyjSKfSjUVXC7FUmDezNnhSAbQBrZpktVyJzv++dpMzXYQEVD6JrcNfiTDH3GRFrdlOU1f0eNx1rm4nKdPERsC8CO0GL0JPxFZCgBlTAbTaqGXdAXf+3yAZvdW0yi7++M9iPmBXeBVeHn9RYZTAIUAr7ai6MaKbay92/la4JRf3A7DMLkquOP9LogJopQ3NRZXKjq0kYdzECRwnZT008VI9LZBDgGYbrqKH4+5id38e2SdguwVnwpXYy9kXNV0JaQE0w79X34c7/5XNRGWcTBDYAlLQi1ATTUEFMBYk1fG4898CBTBprKg8nykCe2Cp8BmZkiiDwlABjNUoFTkHnf8vx4rm5Xknl0Huh72UvTmhvyl9umdzUfMZi3MAo7V7WW2N/0+hAELk9LyU4F3nNdkaO+sWoZ5hvrTEycuo2Ux6Eap/odMCqM9FZLHa7j7b5Rde5zf/egU5RpxbUd1T7wI2lVXeAy9CVzVq5ryHUwHUuwJUu+DS2/b32z7/EI/zsXnmkfUVK8qPoOYeXf87tC8qh8KL0PGhVSuK+oR3d4uCSlnNtdd3osgqc3k4eRov4d4Vd//VG8jWo/bqMltGO2GD8FB+mBeh8aj3lu7ZUKoURT1oAQyn2KPm0+9bw4OD+O0w2i/I0SM6v1Vuhvs9rIAw6231My9Cq6tehMJUcFbHNg4qgKHQlql5870ZF0thaHBA37876iu3i3I+lMB/B1Tf4VXZGbsGzxsemOffHAIMbf2y/js6/0FDg4L57rCBqSi74+6/dtQ6VXRHrHt4DHE2GjWerycdWljkACm5u3ytQpRy0wIYpFnRecF2fsE8uFZn/Ufv/Mai6P4HO+rOHMQS3Gftqc51WB9QDK5ubVSICsCg9egs3PV+0AY/X5KcXh3jNyttt3wfUR9vNrp38VSm4ykPHvHSixAVwGK1V3ffgr9QTd4HsODnwpY6qQ0TCnIs5gPWtJTOr8j7YanwV/0SOXppqQDWyOXAum30aDOQo5O30InRkd1Ay9J0u6eQ5qyW0/mUQLHMe7Hu4pPIUcua70nAsh6DsfHCqKFmKL+TYPq3v4vRNkKVq96PZmaoTlGL8hzmPGbl1YtQfi2A2sKXS6O+mjKTn5O7O+r8VhHn1sDP3hcCHwpsj5vAJZlpt4QFyacCUJ2Ii9pcem+aMO+kinsDq96iWfpac7J5blKCp1KOYphkDl9yeORTAVTkAnT+DwXc3vOw5PVPkdWvKGdDYT4dWX5ZzGgArx0v6zZZFC1OmfKnAHr0s+j8J8cJNdW8ndwO0/+mSGWwfQN2l3R4eBbusQXqmDsvQvlSADUN/0/BXsNO+lC3eJTbDPcYFMD3gmVXq9jueDQY7n6IOo2Xn6cAquPQuA9Cy+9Wh0MYQQU5GNt874itMqoTwPAxMNwhtjLSzth8Jah8DFbUg2mLkkT5+bEAyvLdoDt/F8zXODu/XY3OrcJ/eyrQn8TFmUoZtY1gN8mbOjmV8hMuNB8KoFc/gYv2tITZJlnc/2EX/98lUmDJ/QblnJ9IWekVsrW8nY9Xv4U/BLBNH/3weWdvkQ31KMj+uPvfk1j17DFqBXsFVMyJSMjHiRgKBO1OLGwLoOba68agO38X3leQZOe37u7cSlhUNhRofYmxX+riR9goFrSSC1sB9FbN/o/7dc21IK2TP2IZ69+3kCK6qEVnPgQviC7DTOa0CaTCOyEw+RnoEe4QoFd3x/3pftz9xwXZdnb3Lcje8PDzy9TqZy9LLVddim+XmgzJFHwxhgJfTqaoZEsJ0wKwGdx+8/8WaOevXSMXptr5TQbn3oYSysNQYB5WCR6QbNdMprQwFcAKuQb43p0MwhRKcfIM3HudnkLJI4vsdg9hLiAPr+ReiK3DpZEA/A4JTwGU9RQ0yWf8bpZRpLfluCpzqxNxo0RL9FS3fBNK4IVEy0y6MHtHxJrwvAiFpQD6dCY6xw+TvjYSLu9cjEd/m3CZoxdnbxhSOQ5KwBxuhnx8Ao8/05l0jYlqOJOAfboZ7o3WMbaPiVUWsn0c7r1m4+6fTVddZb0YKiCZBUlptYa5SVP5SOaUcJs8wrEA+sWce4Tc+VfhkZ+Z/tns/HYBOvk6/v63zWvRj2QKTwuCCWa74QRwhKEAyno0tPLcANqjcRXsrT3msjvLR9Eth3jH52AosC2eMtkNx/vD/yHAYt0Opr/tUAtCIze4oh6G6b8n7v5+rLwr6wK0x5ca1CWc4C45Akr5Fp8r5LcCsBVaZXkEDbCzz40whuwrsJphJp75/2GMeNk5beZxPzwIqWyTHaFikMTJUlg7O0MJvBhD7olk6fcQoFJ9mUfInd/G1ad51fntsp3u3sJ8xQnBDwVUJkHJ4V2S8DXh6eGvAujVTwN+2DPOIvdhwc8CL6+tbncfFEDQO+mq7WIOZnrl2162EYT2cwiwRN+Nt93Zu+yn+Ap+TLnNvJwAx6VT3Ctjxs1qhNd1c1lVdSYa7qpMY1/bFbkvXjh6f1abopFc/lkAZm6thNkVcuevtdZ8rzu/1WGqW4a9Al+sVSfg/4oBj8qNslS9uyH5pwBq5tYeAV9Odke5E3eThUHUsearwPZmhH5sJSv88yLk1xCgovtC096LP/8UV/OX/+uY9d8RE2mV5pNkPOYSnQSrzdYwbJVxSaMQ72SsErwiioySyMOfjlTR6VUzK+zOb3f/LwXV+e0qnuLscdmJSVzQGSjjAmwd9sZrsh8KwN7jrnI9/oLbjrnBBWuvKyu52zYIC+VHyf0cSuC6UKozSj02xjn4ooDfRA8OPxSA7cBSOL4M+XBY0rSJ2FbmcI+JMh9KoCfcCq6rmb12rrZGJfNVzb4CqOhsUDw78yQ7F/AEmeSWdJ5NhnOY7N6EAjgpwxJGJ5rKqXjh6IHRZRhPTtlXACr/iLu/7cAK93ByLUz/n4VbwSE1K7r/gBK4cUhIuF8H5MxwK8eakQAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkEB6BP4fVPHi4U0ZOJEAAAAASUVORK5CYII=" - webUI["html/js/base_ts.js"] = "dmFyIFNFUlZFUiA9IG5ldyBPYmplY3QoKTsNCnZhciBCVUxLX0VESVQgPSBmYWxzZTsNCnZhciBDT0xVTU5fVE9fU09SVDsNCnZhciBTRUFSQ0hfTUFQUElORyA9IG5ldyBPYmplY3QoKTsNCnZhciBVTkRPID0gbmV3IE9iamVjdCgpOw0KdmFyIFNFUlZFUl9DT05ORUNUSU9OID0gZmFsc2U7DQp2YXIgV1NfQVZBSUxBQkxFID0gZmFsc2U7DQovLyBNZW7DvA0KdmFyIG1lbnVJdGVtcyA9IG5ldyBBcnJheSgpOw0KbWVudUl0ZW1zLnB1c2gobmV3IE1haW5NZW51SXRlbSgicGxheWxpc3QiLCAie3subWFpbk1lbnUuaXRlbS5wbGF5bGlzdH19IiwgIm0zdS5wbmciLCAie3subWFpbk1lbnUuaGVhZGxpbmUucGxheWxpc3R9fSIpKTsNCi8vbWVudUl0ZW1zLnB1c2gobmV3IE1haW5NZW51SXRlbSgicG1zSUQiLCAie3subWFpbk1lbnUuaXRlbS5wbXNJRH19IiwgIm51bWJlci5wbmciLCAie3subWFpbk1lbnUuaGVhZGxpbmUucG1zSUR9fSIpKQ0KbWVudUl0ZW1zLnB1c2gobmV3IE1haW5NZW51SXRlbSgiZmlsdGVyIiwgInt7Lm1haW5NZW51Lml0ZW0uZmlsdGVyfX0iLCAiZmlsdGVyLnBuZyIsICJ7ey5tYWluTWVudS5oZWFkbGluZS5maWx0ZXJ9fSIpKTsNCm1lbnVJdGVtcy5wdXNoKG5ldyBNYWluTWVudUl0ZW0oInhtbHR2IiwgInt7Lm1haW5NZW51Lml0ZW0ueG1sdHZ9fSIsICJ4bWx0di5wbmciLCAie3subWFpbk1lbnUuaGVhZGxpbmUueG1sdHZ9fSIpKTsNCm1lbnVJdGVtcy5wdXNoKG5ldyBNYWluTWVudUl0ZW0oIm1hcHBpbmciLCAie3subWFpbk1lbnUuaXRlbS5tYXBwaW5nfX0iLCAibWFwcGluZy5wbmciLCAie3subWFpbk1lbnUuaGVhZGxpbmUubWFwcGluZ319IikpOw0KbWVudUl0ZW1zLnB1c2gobmV3IE1haW5NZW51SXRlbSgidXNlcnMiLCAie3subWFpbk1lbnUuaXRlbS51c2Vyc319IiwgInVzZXJzLnBuZyIsICJ7ey5tYWluTWVudS5oZWFkbGluZS51c2Vyc319IikpOw0KbWVudUl0ZW1zLnB1c2gobmV3IE1haW5NZW51SXRlbSgic2V0dGluZ3MiLCAie3subWFpbk1lbnUuaXRlbS5zZXR0aW5nc319IiwgInNldHRpbmdzLnBuZyIsICJ7ey5tYWluTWVudS5oZWFkbGluZS5zZXR0aW5nc319IikpOw0KbWVudUl0ZW1zLnB1c2gobmV3IE1haW5NZW51SXRlbSgibG9nIiwgInt7Lm1haW5NZW51Lml0ZW0ubG9nfX0iLCAibG9nLnBuZyIsICJ7ey5tYWluTWVudS5oZWFkbGluZS5sb2d9fSIpKTsNCm1lbnVJdGVtcy5wdXNoKG5ldyBNYWluTWVudUl0ZW0oImxvZ291dCIsICJ7ey5tYWluTWVudS5pdGVtLmxvZ291dH19IiwgImxvZ291dC5wbmciLCAie3subWFpbk1lbnUuaGVhZGxpbmUubG9nb3V0fX0iKSk7DQovLyBLYXRlZ29yaWVuIGbDvHIgZGllIEVpbnN0ZWxsdW5nZW4NCnZhciBzZXR0aW5nc0NhdGVnb3J5ID0gbmV3IEFycmF5KCk7DQpzZXR0aW5nc0NhdGVnb3J5LnB1c2gobmV3IFNldHRpbmdzQ2F0ZWdvcnlJdGVtKCJ7ey5zZXR0aW5ncy5jYXRlZ29yeS5nZW5lcmFsfX0iLCAieHRldmVBdXRvVXBkYXRlLHR1bmVyLGVwZ1NvdXJjZSxhcGkiKSk7DQpzZXR0aW5nc0NhdGVnb3J5LnB1c2gobmV3IFNldHRpbmdzQ2F0ZWdvcnlJdGVtKCJ7ey5zZXR0aW5ncy5jYXRlZ29yeS5maWxlc319IiwgInVwZGF0ZSxmaWxlcy51cGRhdGUsdGVtcC5wYXRoLGNhY2hlLmltYWdlcyx4ZXBnLnJlcGxhY2UubWlzc2luZy5pbWFnZXMiKSk7DQpzZXR0aW5nc0NhdGVnb3J5LnB1c2gobmV3IFNldHRpbmdzQ2F0ZWdvcnlJdGVtKCJ7ey5zZXR0aW5ncy5jYXRlZ29yeS5zdHJlYW1pbmd9fSIsICJidWZmZXIsdWRweHksYnVmZmVyLnNpemUua2IsYnVmZmVyLnRpbWVvdXQsdXNlci5hZ2VudCxmZm1wZWcucGF0aCxmZm1wZWcub3B0aW9ucyx2bGMucGF0aCx2bGMub3B0aW9ucyIpKTsNCnNldHRpbmdzQ2F0ZWdvcnkucHVzaChuZXcgU2V0dGluZ3NDYXRlZ29yeUl0ZW0oInt7LnNldHRpbmdzLmNhdGVnb3J5LmJhY2t1cH19IiwgImJhY2t1cC5wYXRoLGJhY2t1cC5rZWVwIikpOw0Kc2V0dGluZ3NDYXRlZ29yeS5wdXNoKG5ldyBTZXR0aW5nc0NhdGVnb3J5SXRlbSgie3suc2V0dGluZ3MuY2F0ZWdvcnkuYXV0aGVudGljYXRpb259fSIsICJhdXRoZW50aWNhdGlvbi53ZWIsYXV0aGVudGljYXRpb24ucG1zLGF1dGhlbnRpY2F0aW9uLm0zdSxhdXRoZW50aWNhdGlvbi54bWwsYXV0aGVudGljYXRpb24uYXBpIikpOw0KZnVuY3Rpb24gc2hvd1BvcFVwRWxlbWVudChlbG0pIHsNCiAgICB2YXIgYWxsRWxlbWVudHMgPSBuZXcgQXJyYXkoInBvcHVwLWN1c3RvbSIpOw0KICAgIGZvciAodmFyIGkgPSAwOyBpIDwgYWxsRWxlbWVudHMubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgc2hvd0VsZW1lbnQoYWxsRWxlbWVudHNbaV0sIGZhbHNlKTsNCiAgICB9DQogICAgc2hvd0VsZW1lbnQoZWxtLCB0cnVlKTsNCiAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsNCiAgICAgICAgc2hvd0VsZW1lbnQoInBvcHVwIiwgdHJ1ZSk7DQogICAgfSwgMTApOw0KICAgIHJldHVybjsNCn0NCmZ1bmN0aW9uIHNob3dFbGVtZW50KGVsbUlELCB0eXBlKSB7DQogICAgdmFyIGNzc0NsYXNzOw0KICAgIHN3aXRjaCAodHlwZSkgew0KICAgICAgICBjYXNlIHRydWU6DQogICAgICAgICAgICBjc3NDbGFzcyA9ICJibG9jayI7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSBmYWxzZToNCiAgICAgICAgICAgIGNzc0NsYXNzID0gIm5vbmUiOw0KICAgICAgICAgICAgYnJlYWs7DQogICAgfQ0KICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGVsbUlEKS5jbGFzc05hbWUgPSBjc3NDbGFzczsNCn0NCmZ1bmN0aW9uIGNoYW5nZUJ1dHRvbkFjdGlvbihlbGVtZW50LCBidXR0b25JRCwgYXR0cmlidXRlKSB7DQogICAgdmFyIHZhbHVlID0gZWxlbWVudC5vcHRpb25zW2VsZW1lbnQuc2VsZWN0ZWRJbmRleF0udmFsdWU7DQogICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoYnV0dG9uSUQpLnNldEF0dHJpYnV0ZShhdHRyaWJ1dGUsIHZhbHVlKTsNCn0NCmZ1bmN0aW9uIGdldExvY2FsRGF0YShkYXRhVHlwZSwgaWQpIHsNCiAgICBsZXQgZGF0YSA9IHt9Ow0KICAgIHN3aXRjaCAoZGF0YVR5cGUpIHsNCiAgICAgICAgY2FzZSAibTN1IjoNCiAgICAgICAgICAgIGRhdGEgPSBTRVJWRVJbInNldHRpbmdzIl1bImZpbGVzIl1bZGF0YVR5cGVdW2lkXTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJoZGhyIjoNCiAgICAgICAgICAgIGRhdGEgPSBTRVJWRVJbInNldHRpbmdzIl1bImZpbGVzIl1bZGF0YVR5cGVdW2lkXTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJmaWx0ZXIiOg0KICAgICAgICBjYXNlICJjdXN0b20tZmlsdGVyIjoNCiAgICAgICAgY2FzZSAiZ3JvdXAtdGl0bGUiOg0KICAgICAgICAgICAgaWYgKGlkID09IC0xKSB7DQogICAgICAgICAgICAgICAgZGF0YVsiYWN0aXZlIl0gPSB0cnVlOw0KICAgICAgICAgICAgICAgIGRhdGFbImNhc2VTZW5zaXRpdmUiXSA9IGZhbHNlOw0KICAgICAgICAgICAgICAgIGRhdGFbImRlc2NyaXB0aW9uIl0gPSAiIjsNCiAgICAgICAgICAgICAgICBkYXRhWyJleGNsdWRlIl0gPSAiIjsNCiAgICAgICAgICAgICAgICBkYXRhWyJmaWx0ZXIiXSA9ICIiOw0KICAgICAgICAgICAgICAgIGRhdGFbImluY2x1ZGUiXSA9ICIiOw0KICAgICAgICAgICAgICAgIGRhdGFbIm5hbWUiXSA9ICIiOw0KICAgICAgICAgICAgICAgIGRhdGFbInR5cGUiXSA9ICJncm91cC10aXRsZSI7DQogICAgICAgICAgICAgICAgZGF0YVsicHJlc2VydmVNYXBwaW5nIl0gPSB0cnVlOw0KICAgICAgICAgICAgICAgIGRhdGFbInN0YXJ0aW5nQ2hhbm5lbCJdID0gU0VSVkVSWyJzZXR0aW5ncyJdWyJtYXBwaW5nLmZpcnN0LmNoYW5uZWwiXTsNCiAgICAgICAgICAgICAgICBkYXRhWyJkZWZhdWx0TWlzc2luZ0VQRyJdID0gIi0iOw0KICAgICAgICAgICAgICAgIFNFUlZFUlsic2V0dGluZ3MiXVsiZmlsdGVyIl1baWRdID0gZGF0YTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGRhdGEgPSBTRVJWRVJbInNldHRpbmdzIl1bImZpbHRlciJdW2lkXTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJ4bWx0diI6DQogICAgICAgICAgICBkYXRhID0gU0VSVkVSWyJzZXR0aW5ncyJdWyJmaWxlcyJdW2RhdGFUeXBlXVtpZF07DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSAidXNlcnMiOg0KICAgICAgICAgICAgZGF0YSA9IFNFUlZFUlsidXNlcnMiXVtpZF1bImRhdGEiXTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJtYXBwaW5nIjoNCiAgICAgICAgICAgIGRhdGEgPSBTRVJWRVJbInhlcGciXVsiZXBnTWFwcGluZyJdW2lkXTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJtM3VHcm91cHMiOg0KICAgICAgICAgICAgZGF0YSA9IFNFUlZFUlsiZGF0YSJdWyJwbGF5bGlzdCJdWyJtM3UiXVsiZ3JvdXBzIl07DQogICAgICAgICAgICBicmVhazsNCiAgICB9DQogICAgcmV0dXJuIGRhdGE7DQp9DQpmdW5jdGlvbiBnZXRPYmpLZXlzKG9iaikgew0KICAgIHZhciBrZXlzID0gbmV3IEFycmF5KCk7DQogICAgZm9yICh2YXIgaSBpbiBvYmopIHsNCiAgICAgICAgaWYgKG9iai5oYXNPd25Qcm9wZXJ0eShpKSkgew0KICAgICAgICAgICAga2V5cy5wdXNoKGkpOw0KICAgICAgICB9DQogICAgfQ0KICAgIHJldHVybiBrZXlzOw0KfQ0KZnVuY3Rpb24gZ2V0QWxsU2VsZWN0ZWRDaGFubmVscygpIHsNCiAgICB2YXIgY2hhbm5lbHMgPSBuZXcgQXJyYXkoKTsNCiAgICBpZiAoQlVMS19FRElUID09IGZhbHNlKSB7DQogICAgICAgIHJldHVybiBjaGFubmVsczsNCiAgICB9DQogICAgdmFyIHRycyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb250ZW50X3RhYmxlIikuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlRSIik7DQogICAgZm9yICh2YXIgaSA9IDE7IGkgPCB0cnMubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgaWYgKHRyc1tpXS5zdHlsZS5kaXNwbGF5ICE9ICJub25lIikgew0KICAgICAgICAgICAgaWYgKHRyc1tpXS5maXJzdENoaWxkLmZpcnN0Q2hpbGQuY2hlY2tlZCA9PSB0cnVlKSB7DQogICAgICAgICAgICAgICAgY2hhbm5lbHMucHVzaCh0cnNbaV0uaWQpOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQogICAgfQ0KICAgIHJldHVybiBjaGFubmVsczsNCn0NCmZ1bmN0aW9uIHNlbGVjdEFsbENoYW5uZWxzKCkgew0KICAgIHZhciBidWxrID0gZmFsc2U7DQogICAgdmFyIHRycyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb250ZW50X3RhYmxlIikuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlRSIik7DQogICAgaWYgKHRyc1swXS5maXJzdENoaWxkLmZpcnN0Q2hpbGQuY2hlY2tlZCA9PSB0cnVlKSB7DQogICAgICAgIGJ1bGsgPSB0cnVlOw0KICAgIH0NCiAgICBmb3IgKHZhciBpID0gMTsgaSA8IHRycy5sZW5ndGg7IGkrKykgew0KICAgICAgICBpZiAodHJzW2ldLnN0eWxlLmRpc3BsYXkgIT0gIm5vbmUiKSB7DQogICAgICAgICAgICBzd2l0Y2ggKGJ1bGspIHsNCiAgICAgICAgICAgICAgICBjYXNlIHRydWU6DQogICAgICAgICAgICAgICAgICAgIHRyc1tpXS5maXJzdENoaWxkLmZpcnN0Q2hpbGQuY2hlY2tlZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgZmFsc2U6DQogICAgICAgICAgICAgICAgICAgIHRyc1tpXS5maXJzdENoaWxkLmZpcnN0Q2hpbGQuY2hlY2tlZCA9IGZhbHNlOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KICAgIH0NCiAgICByZXR1cm47DQp9DQpmdW5jdGlvbiBidWxrRWRpdCgpIHsNCiAgICBCVUxLX0VESVQgPSAhQlVMS19FRElUOw0KICAgIHZhciBjbGFzc05hbWU7DQogICAgdmFyIHJvd3MgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCJidWxrIik7DQogICAgc3dpdGNoIChCVUxLX0VESVQpIHsNCiAgICAgICAgY2FzZSB0cnVlOg0KICAgICAgICAgICAgY2xhc3NOYW1lID0gImJ1bGsgc2hvd0J1bGsiOw0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGNhc2UgZmFsc2U6DQogICAgICAgICAgICBjbGFzc05hbWUgPSAiYnVsayBoaWRlQnVsayI7DQogICAgICAgICAgICBicmVhazsNCiAgICB9DQogICAgZm9yICh2YXIgaSA9IDA7IGkgPCByb3dzLmxlbmd0aDsgaSsrKSB7DQogICAgICAgIHJvd3NbaV0uY2xhc3NOYW1lID0gY2xhc3NOYW1lOw0KICAgICAgICByb3dzW2ldLmNoZWNrZWQgPSBmYWxzZTsNCiAgICB9DQogICAgcmV0dXJuOw0KfQ0KZnVuY3Rpb24gc29ydFRhYmxlKGNvbHVtbikgew0KICAgIC8vY29uc29sZS5sb2coY29sdW1tKTsNCiAgICBpZiAoY29sdW1uID09IENPTFVNTl9UT19TT1JUKSB7DQogICAgICAgIHJldHVybjsNCiAgICB9DQogICAgdmFyIHRhYmxlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnRlbnRfdGFibGUiKTsNCiAgICB2YXIgdGFibGVIZWFkID0gdGFibGUuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlRSIilbMF07DQogICAgdmFyIHRhYmxlSXRlbXMgPSB0YWJsZUhlYWQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlREIik7DQogICAgdmFyIHNvcnRPYmogPSBuZXcgT2JqZWN0KCk7DQogICAgdmFyIHgsIHhWYWx1ZTsNCiAgICB2YXIgdGFibGVIZWFkZXI7DQogICAgdmFyIHNvcnRCeVN0cmluZyA9IGZhbHNlOw0KICAgIGlmIChjb2x1bW4gPiAwICYmIENPTFVNTl9UT19TT1JUID4gMCkgew0KICAgICAgICB0YWJsZUl0ZW1zW0NPTFVNTl9UT19TT1JUXS5jbGFzc05hbWUgPSAicG9pbnRlciI7DQogICAgICAgIHRhYmxlSXRlbXNbY29sdW1uXS5jbGFzc05hbWUgPSAic29ydFRoaXMiOw0KICAgIH0NCiAgICBDT0xVTU5fVE9fU09SVCA9IGNvbHVtbjsNCiAgICB2YXIgcm93cyA9IHRhYmxlLnJvd3M7DQogICAgaWYgKHJvd3NbMV0gIT0gdW5kZWZpbmVkKSB7DQogICAgICAgIHRhYmxlSGVhZGVyID0gcm93c1swXTsNCiAgICAgICAgeCA9IHJvd3NbMV0uZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlREIilbY29sdW1uXTsNCiAgICAgICAgZm9yIChpID0gMTsgaSA8IHJvd3MubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgICAgIHggPSByb3dzW2ldLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJURCIpW2NvbHVtbl07DQogICAgICAgICAgICBzd2l0Y2ggKHguY2hpbGROb2Rlc1swXS50YWdOYW1lLnRvTG93ZXJDYXNlKCkpIHsNCiAgICAgICAgICAgICAgICBjYXNlICJpbnB1dCI6DQogICAgICAgICAgICAgICAgICAgIHhWYWx1ZSA9IHguZ2V0RWxlbWVudHNCeVRhZ05hbWUoIklOUFVUIilbMF0udmFsdWUudG9Mb3dlckNhc2UoKTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAicCI6DQogICAgICAgICAgICAgICAgICAgIHhWYWx1ZSA9IHguZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlAiKVswXS5pbm5lclRleHQudG9Mb3dlckNhc2UoKTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgZGVmYXVsdDogY29uc29sZS5sb2coeC5jaGlsZE5vZGVzWzBdLnRhZ05hbWUpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgaWYgKHhWYWx1ZSA9PSAiIiB8fCB4VmFsdWUgPT0gTmFOKSB7DQogICAgICAgICAgICAgICAgeFZhbHVlID0gaTsNCiAgICAgICAgICAgICAgICBzb3J0T2JqW2ldID0gcm93c1tpXTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgICAgIHN3aXRjaCAoaXNOYU4oeFZhbHVlKSkgew0KICAgICAgICAgICAgICAgICAgICBjYXNlIGZhbHNlOg0KICAgICAgICAgICAgICAgICAgICAgICAgeFZhbHVlID0gcGFyc2VGbG9hdCh4VmFsdWUpOw0KICAgICAgICAgICAgICAgICAgICAgICAgc29ydE9ialt4VmFsdWVdID0gcm93c1tpXTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgICAgICBjYXNlIHRydWU6DQogICAgICAgICAgICAgICAgICAgICAgICBzb3J0QnlTdHJpbmcgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgc29ydE9ialt4VmFsdWUudG9Mb3dlckNhc2UoKSArIGldID0gcm93c1tpXTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KICAgICAgICB3aGlsZSAodGFibGUuZmlyc3RDaGlsZCkgew0KICAgICAgICAgICAgdGFibGUucmVtb3ZlQ2hpbGQodGFibGUuZmlyc3RDaGlsZCk7DQogICAgICAgIH0NCiAgICAgICAgdmFyIHNvcnRWYWx1ZXMgPSBnZXRPYmpLZXlzKHNvcnRPYmopOw0KICAgICAgICBpZiAoc29ydEJ5U3RyaW5nID09IHRydWUpIHsNCiAgICAgICAgICAgIHNvcnRWYWx1ZXMuc29ydCgpOw0KICAgICAgICAgICAgY29uc29sZS5sb2coc29ydFZhbHVlcyk7DQogICAgICAgIH0NCiAgICAgICAgZWxzZSB7DQogICAgICAgICAgICBmdW5jdGlvbiBzb3J0RmxvYXQoYSwgYikgew0KICAgICAgICAgICAgICAgIHJldHVybiBhIC0gYjsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIHNvcnRWYWx1ZXMuc29ydChzb3J0RmxvYXQpOw0KICAgICAgICB9DQogICAgICAgIHRhYmxlLmFwcGVuZENoaWxkKHRhYmxlSGVhZGVyKTsNCiAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBzb3J0VmFsdWVzLmxlbmd0aDsgaSsrKSB7DQogICAgICAgICAgICB0YWJsZS5hcHBlbmRDaGlsZChzb3J0T2JqW3NvcnRWYWx1ZXNbaV1dKTsNCiAgICAgICAgfQ0KICAgIH0NCiAgICByZXR1cm47DQp9DQpmdW5jdGlvbiBjcmVhdGVTZWFyY2hPYmooKSB7DQogICAgU0VBUkNIX01BUFBJTkcgPSBuZXcgT2JqZWN0KCk7DQogICAgdmFyIGRhdGEgPSBTRVJWRVJbInhlcGciXVsiZXBnTWFwcGluZyJdOw0KICAgIHZhciBjaGFubmVscyA9IGdldE9iaktleXMoZGF0YSk7DQogICAgdmFyIGNoYW5uZWxLZXlzID0gWyJ4LWFjdGl2ZSIsICJ4LWNoYW5uZWxJRCIsICJ4LW5hbWUiLCAiX2ZpbGUubTN1Lm5hbWUiLCAieC1ncm91cC10aXRsZSIsICJ4LXhtbHR2LWZpbGUiXTsNCiAgICBjaGFubmVscy5mb3JFYWNoKGlkID0+IHsNCiAgICAgICAgY2hhbm5lbEtleXMuZm9yRWFjaChrZXkgPT4gew0KICAgICAgICAgICAgaWYgKGtleSA9PSAieC1hY3RpdmUiKSB7DQogICAgICAgICAgICAgICAgc3dpdGNoIChkYXRhW2lkXVtrZXldKSB7DQogICAgICAgICAgICAgICAgICAgIGNhc2UgdHJ1ZToNCiAgICAgICAgICAgICAgICAgICAgICAgIFNFQVJDSF9NQVBQSU5HW2lkXSA9ICJvbmxpbmUgIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgICAgICBjYXNlIGZhbHNlOg0KICAgICAgICAgICAgICAgICAgICAgICAgU0VBUkNIX01BUFBJTkdbaWRdID0gIm9mZmxpbmUgIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgICAgIGlmIChrZXkgPT0gIngteG1sdHYtZmlsZSIpIHsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHhtbHR2RmlsZSA9IGdldFZhbHVlRnJvbVByb3ZpZGVyRmlsZShkYXRhW2lkXVtrZXldLCAieG1sdHYiLCAibmFtZSIpOw0KICAgICAgICAgICAgICAgICAgICBpZiAoeG1sdHZGaWxlICE9IHVuZGVmaW5lZCkgew0KICAgICAgICAgICAgICAgICAgICAgICAgU0VBUkNIX01BUFBJTkdbaWRdID0gU0VBUkNIX01BUFBJTkdbaWRdICsgeG1sdHZGaWxlICsgIiAiOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgICAgICAgICBTRUFSQ0hfTUFQUElOR1tpZF0gPSBTRUFSQ0hfTUFQUElOR1tpZF0gKyBkYXRhW2lkXVtrZXldICsgIiAiOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0NCiAgICAgICAgfSk7DQogICAgfSk7DQogICAgcmV0dXJuOw0KfQ0KZnVuY3Rpb24gc2VhcmNoSW5NYXBwaW5nKCkgew0KICAgIHZhciBzZWFyY2hWYWx1ZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzZWFyY2hNYXBwaW5nIikudmFsdWU7DQogICAgdmFyIHRycyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb250ZW50X3RhYmxlIikuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlRSIik7DQogICAgZm9yICh2YXIgaSA9IDE7IGkgPCB0cnMubGVuZ3RoOyArK2kpIHsNCiAgICAgICAgdmFyIGlkID0gdHJzW2ldLmdldEF0dHJpYnV0ZSgiaWQiKTsNCiAgICAgICAgdmFyIGVsZW1lbnQgPSBTRUFSQ0hfTUFQUElOR1tpZF07DQogICAgICAgIHN3aXRjaCAoZWxlbWVudC50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKHNlYXJjaFZhbHVlLnRvTG93ZXJDYXNlKCkpKSB7DQogICAgICAgICAgICBjYXNlIHRydWU6DQogICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpLnN0eWxlLmRpc3BsYXkgPSAiIjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgZmFsc2U6DQogICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpLnN0eWxlLmRpc3BsYXkgPSAibm9uZSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIH0NCiAgICB9DQogICAgcmV0dXJuOw0KfQ0KZnVuY3Rpb24gY2FsY3VsYXRlV3JhcHBlckhlaWdodCgpIHsNCiAgICBpZiAoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImJveC13cmFwcGVyIikpIHsNCiAgICAgICAgdmFyIGVsbSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJib3gtd3JhcHBlciIpOw0KICAgICAgICB2YXIgZGl2cyA9IG5ldyBBcnJheSgibXlTdHJlYW1zQm94IiwgImNsaWVudEluZm8iLCAiY29udGVudCIpOw0KICAgICAgICB2YXIgZWxlbWVudHNIZWlnaHQgPSAwIC0gZWxtLm9mZnNldEhlaWdodDsNCiAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBkaXZzLmxlbmd0aDsgaSsrKSB7DQogICAgICAgICAgICBlbGVtZW50c0hlaWdodCA9IGVsZW1lbnRzSGVpZ2h0ICsgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoZGl2c1tpXSkub2Zmc2V0SGVpZ2h0Ow0KICAgICAgICB9DQogICAgICAgIGVsbS5zdHlsZS5oZWlnaHQgPSB3aW5kb3cuaW5uZXJIZWlnaHQgLSBlbGVtZW50c0hlaWdodCArICJweCI7DQogICAgfQ0KICAgIHJldHVybjsNCn0NCmZ1bmN0aW9uIGNoYW5nZUNoYW5uZWxOdW1iZXIoZWxlbWVudCkgew0KICAgIHZhciBkYklEID0gZWxlbWVudC5wYXJlbnROb2RlLnBhcmVudE5vZGUuaWQ7DQogICAgdmFyIG5ld051bWJlciA9IHBhcnNlRmxvYXQoZWxlbWVudC52YWx1ZSk7DQogICAgdmFyIGNoYW5uZWxOdW1iZXJzID0gW107DQogICAgdmFyIGRhdGEgPSBTRVJWRVJbInhlcGciXVsiZXBnTWFwcGluZyJdOw0KICAgIHZhciBjaGFubmVscyA9IGdldE9iaktleXMoZGF0YSk7DQogICAgaWYgKGlzTmFOKG5ld051bWJlcikpIHsNCiAgICAgICAgYWxlcnQoInt7LmFsZXJ0LmludmFsaWRDaGFubmVsTnVtYmVyfX0iKTsNCiAgICAgICAgcmV0dXJuOw0KICAgIH0NCiAgICBjaGFubmVscy5mb3JFYWNoKGlkID0+IHsNCiAgICAgICAgdmFyIGNoYW5uZWxOdW1iZXIgPSBwYXJzZUZsb2F0KGRhdGFbaWRdWyJ4LWNoYW5uZWxJRCJdKTsNCiAgICAgICAgY2hhbm5lbE51bWJlcnMucHVzaChjaGFubmVsTnVtYmVyKTsNCiAgICB9KTsNCiAgICBmb3IgKHZhciBpID0gMDsgaSA8IGNoYW5uZWxOdW1iZXJzLmxlbmd0aDsgaSsrKSB7DQogICAgICAgIGlmIChjaGFubmVsTnVtYmVycy5pbmRleE9mKG5ld051bWJlcikgPT0gLTEpIHsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICB9DQogICAgICAgIGlmIChNYXRoLmZsb29yKG5ld051bWJlcikgPT0gbmV3TnVtYmVyKSB7DQogICAgICAgICAgICBuZXdOdW1iZXIgPSBuZXdOdW1iZXIgKyAxOw0KICAgICAgICB9DQogICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgbmV3TnVtYmVyID0gbmV3TnVtYmVyICsgMC4xOw0KICAgICAgICAgICAgbmV3TnVtYmVyLnRvRml4ZWQoMSk7DQogICAgICAgICAgICBuZXdOdW1iZXIgPSBNYXRoLnJvdW5kKG5ld051bWJlciAqIDEwKSAvIDEwOw0KICAgICAgICB9DQogICAgfQ0KICAgIGRhdGFbZGJJRF1bIngtY2hhbm5lbElEIl0gPSBuZXdOdW1iZXIudG9TdHJpbmcoKTsNCiAgICBlbGVtZW50LnZhbHVlID0gbmV3TnVtYmVyOw0KICAgIGNvbnNvbGUubG9nKGRhdGFbZGJJRF1bIngtY2hhbm5lbElEIl0pOw0KICAgIGlmIChDT0xVTU5fVE9fU09SVCA9PSAxKSB7DQogICAgICAgIENPTFVNTl9UT19TT1JUID0gLTE7DQogICAgICAgIHNvcnRUYWJsZSgxKTsNCiAgICB9DQogICAgcmV0dXJuOw0KfQ0KZnVuY3Rpb24gYmFja3VwKCkgew0KICAgIHZhciBkYXRhID0gbmV3IE9iamVjdCgpOw0KICAgIGNvbnNvbGUubG9nKCJCYWNrdXAgZGF0YSIpOw0KICAgIHZhciBjbWQgPSAieHRldmVCYWNrdXAiOw0KICAgIGNvbnNvbGUubG9nKCJTRU5EIFRPIFNFUlZFUiIpOw0KICAgIGNvbnNvbGUubG9nKGRhdGEpOw0KICAgIHZhciBzZXJ2ZXIgPSBuZXcgU2VydmVyKGNtZCk7DQogICAgc2VydmVyLnJlcXVlc3QoZGF0YSk7DQogICAgcmV0dXJuOw0KfQ0KZnVuY3Rpb24gdG9nZ2xlQ2hhbm5lbFN0YXR1cyhpZCkgew0KICAgIHZhciBlbGVtZW50Ow0KICAgIHZhciBzdGF0dXM7DQogICAgaWYgKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJhY3RpdmUiKSkgew0KICAgICAgICB2YXIgY2hlY2tib3ggPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYWN0aXZlIik7DQogICAgICAgIHN0YXR1cyA9IChjaGVja2JveCkuY2hlY2tlZDsNCiAgICB9DQogICAgdmFyIGlkcyA9IGdldEFsbFNlbGVjdGVkQ2hhbm5lbHMoKTsNCiAgICBpZiAoaWRzLmxlbmd0aCA9PSAwKSB7DQogICAgICAgIGlkcy5wdXNoKGlkKTsNCiAgICB9DQogICAgaWRzLmZvckVhY2goaWQgPT4gew0KICAgICAgICB2YXIgY2hhbm5lbCA9IFNFUlZFUlsieGVwZyJdWyJlcGdNYXBwaW5nIl1baWRdOw0KICAgICAgICBjaGFubmVsWyJ4LWFjdGl2ZSJdID0gc3RhdHVzOw0KICAgICAgICBzd2l0Y2ggKGNoYW5uZWxbIngtYWN0aXZlIl0pIHsNCiAgICAgICAgICAgIGNhc2UgdHJ1ZToNCiAgICAgICAgICAgICAgICBpZiAoY2hhbm5lbFsieC14bWx0di1maWxlIl0gPT0gIi0iIHx8IGNoYW5uZWxbIngtbWFwcGluZyJdID09ICItIikgew0KICAgICAgICAgICAgICAgICAgICBpZiAoQlVMS19FRElUID09IGZhbHNlKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBhbGVydChjaGFubmVsWyJ4LW5hbWUiXSArICI6IE1pc3NpbmcgWE1MVFYgZmlsZSAvIGNoYW5uZWwiKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNoZWNrYm94LmNoZWNrZWQgPSBmYWxzZTsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBjaGFubmVsWyJ4LWFjdGl2ZSJdID0gZmFsc2U7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSBmYWxzZToNCiAgICAgICAgICAgICAgICAvLyBjb2RlLi4uDQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIH0NCiAgICAgICAgaWYgKGNoYW5uZWxbIngtYWN0aXZlIl0gPT0gZmFsc2UpIHsNCiAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5jbGFzc05hbWUgPSAibm90QWN0aXZlRVBHIjsNCiAgICAgICAgfQ0KICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5jbGFzc05hbWUgPSAiYWN0aXZlRVBHIjsNCiAgICAgICAgfQ0KICAgIH0pOw0KfQ0KZnVuY3Rpb24gcmVzdG9yZSgpIHsNCiAgICBpZiAoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3VwbG9hZCcpKSB7DQogICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd1cGxvYWQnKS5yZW1vdmUoKTsNCiAgICB9DQogICAgdmFyIHJlc3RvcmUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJJTlBVVCIpOw0KICAgIHJlc3RvcmUuc2V0QXR0cmlidXRlKCJ0eXBlIiwgImZpbGUiKTsNCiAgICByZXN0b3JlLnNldEF0dHJpYnV0ZSgiY2xhc3MiLCAibm90VmlzaWJsZSIpOw0KICAgIHJlc3RvcmUuc2V0QXR0cmlidXRlKCJuYW1lIiwgIiIpOw0KICAgIHJlc3RvcmUuaWQgPSAidXBsb2FkIjsNCiAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHJlc3RvcmUpOw0KICAgIHJlc3RvcmUuY2xpY2soKTsNCiAgICByZXN0b3JlLm9uY2hhbmdlID0gZnVuY3Rpb24gKCkgew0KICAgICAgICB2YXIgZmlsZW5hbWUgPSByZXN0b3JlLmZpbGVzWzBdLm5hbWU7DQogICAgICAgIHZhciBjaGVjayA9IGNvbmZpcm0oIkZpbGU6ICIgKyBmaWxlbmFtZSArICJcbnt7LmNvbmZpcm0ucmVzdG9yZX19Iik7DQogICAgICAgIGlmIChjaGVjayA9PSB0cnVlKSB7DQogICAgICAgICAgICB2YXIgcmVhZGVyID0gbmV3IEZpbGVSZWFkZXIoKTsNCiAgICAgICAgICAgIHZhciBmaWxlID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignaW5wdXRbdHlwZT1maWxlXScpLmZpbGVzWzBdOw0KICAgICAgICAgICAgaWYgKGZpbGUpIHsNCiAgICAgICAgICAgICAgICByZWFkZXIucmVhZEFzRGF0YVVSTChmaWxlKTsNCiAgICAgICAgICAgICAgICByZWFkZXIub25sb2FkID0gZnVuY3Rpb24gKCkgew0KICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhyZWFkZXIucmVzdWx0KTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGRhdGEgPSBuZXcgT2JqZWN0KCk7DQogICAgICAgICAgICAgICAgICAgIHZhciBjbWQgPSAieHRldmVSZXN0b3JlIjsNCiAgICAgICAgICAgICAgICAgICAgZGF0YVsiYmFzZTY0Il0gPSByZWFkZXIucmVzdWx0Ow0KICAgICAgICAgICAgICAgICAgICB2YXIgc2VydmVyID0gbmV3IFNlcnZlcihjbWQpOw0KICAgICAgICAgICAgICAgICAgICBzZXJ2ZXIucmVxdWVzdChkYXRhKTsNCiAgICAgICAgICAgICAgICB9Ow0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgZWxzZSB7DQogICAgICAgICAgICAgICAgYWxlcnQoIkZpbGUgY291bGQgbm90IGJlIGxvYWRlZCIpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgcmVzdG9yZS5yZW1vdmUoKTsNCiAgICAgICAgICAgIHJldHVybjsNCiAgICAgICAgfQ0KICAgIH07DQogICAgcmV0dXJuOw0KfQ0KZnVuY3Rpb24gdXBsb2FkTG9nbygpIHsNCiAgICBpZiAoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3VwbG9hZCcpKSB7DQogICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd1cGxvYWQnKS5yZW1vdmUoKTsNCiAgICB9DQogICAgdmFyIHVwbG9hZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIklOUFVUIik7DQogICAgdXBsb2FkLnNldEF0dHJpYnV0ZSgidHlwZSIsICJmaWxlIik7DQogICAgdXBsb2FkLnNldEF0dHJpYnV0ZSgiY2xhc3MiLCAibm90VmlzaWJsZSIpOw0KICAgIHVwbG9hZC5zZXRBdHRyaWJ1dGUoIm5hbWUiLCAiIik7DQogICAgdXBsb2FkLmlkID0gInVwbG9hZCI7DQogICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZCh1cGxvYWQpOw0KICAgIHVwbG9hZC5jbGljaygpOw0KICAgIHVwbG9hZC5vbmJsdXIgPSBmdW5jdGlvbiAoKSB7DQogICAgICAgIGFsZXJ0KCk7DQogICAgfTsNCiAgICB1cGxvYWQub25jaGFuZ2UgPSBmdW5jdGlvbiAoKSB7DQogICAgICAgIHZhciBmaWxlbmFtZSA9IHVwbG9hZC5maWxlc1swXS5uYW1lOw0KICAgICAgICB2YXIgcmVhZGVyID0gbmV3IEZpbGVSZWFkZXIoKTsNCiAgICAgICAgdmFyIGZpbGUgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCdpbnB1dFt0eXBlPWZpbGVdJykuZmlsZXNbMF07DQogICAgICAgIGlmIChmaWxlKSB7DQogICAgICAgICAgICByZWFkZXIucmVhZEFzRGF0YVVSTChmaWxlKTsNCiAgICAgICAgICAgIHJlYWRlci5vbmxvYWQgPSBmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICAgICAgY29uc29sZS5sb2cocmVhZGVyLnJlc3VsdCk7DQogICAgICAgICAgICAgICAgdmFyIGRhdGEgPSBuZXcgT2JqZWN0KCk7DQogICAgICAgICAgICAgICAgdmFyIGNtZCA9ICJ1cGxvYWRMb2dvIjsNCiAgICAgICAgICAgICAgICBkYXRhWyJiYXNlNjQiXSA9IHJlYWRlci5yZXN1bHQ7DQogICAgICAgICAgICAgICAgZGF0YVsiZmlsZW5hbWUiXSA9IGZpbGUubmFtZTsNCiAgICAgICAgICAgICAgICB2YXIgc2VydmVyID0gbmV3IFNlcnZlcihjbWQpOw0KICAgICAgICAgICAgICAgIHNlcnZlci5yZXF1ZXN0KGRhdGEpOw0KICAgICAgICAgICAgICAgIHZhciB1cGRhdGVMb2dvID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3VwZGF0ZS1pY29uJyk7DQogICAgICAgICAgICAgICAgdXBkYXRlTG9nby5jaGVja2VkID0gZmFsc2U7DQogICAgICAgICAgICAgICAgdXBkYXRlTG9nby5jbGFzc05hbWUgPSAiY2hhbmdlZCI7DQogICAgICAgICAgICB9Ow0KICAgICAgICB9DQogICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgYWxlcnQoIkZpbGUgY291bGQgbm90IGJlIGxvYWRlZCIpOw0KICAgICAgICB9DQogICAgICAgIHVwbG9hZC5yZW1vdmUoKTsNCiAgICAgICAgcmV0dXJuOw0KICAgIH07DQp9DQpmdW5jdGlvbiBjaGVja1VuZG8oa2V5KSB7DQogICAgc3dpdGNoIChrZXkpIHsNCiAgICAgICAgY2FzZSAiZXBnTWFwcGluZyI6DQogICAgICAgICAgICBpZiAoVU5ETy5oYXNPd25Qcm9wZXJ0eShrZXkpKSB7DQogICAgICAgICAgICAgICAgU0VSVkVSWyJ4ZXBnIl1ba2V5XSA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkoVU5ET1trZXldKSk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICBVTkRPW2tleV0gPSBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KFNFUlZFUlsieGVwZyJdW2tleV0pKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBkZWZhdWx0Og0KICAgICAgICAgICAgYnJlYWs7DQogICAgfQ0KICAgIHJldHVybjsNCn0NCmZ1bmN0aW9uIHNvcnRTZWxlY3QoZWxlbSkgew0KICAgIHZhciB0bXBBcnkgPSBbXTsNCiAgICB2YXIgc2VsZWN0ZWRWYWx1ZSA9IGVsZW1bZWxlbS5zZWxlY3RlZEluZGV4XS52YWx1ZTsNCiAgICBmb3IgKHZhciBpID0gMDsgaSA8IGVsZW0ub3B0aW9ucy5sZW5ndGg7IGkrKykNCiAgICAgICAgdG1wQXJ5LnB1c2goZWxlbS5vcHRpb25zW2ldKTsNCiAgICB0bXBBcnkuc29ydChmdW5jdGlvbiAoYSwgYikgeyByZXR1cm4gKGEudGV4dCA8IGIudGV4dCkgPyAtMSA6IDE7IH0pOw0KICAgIHdoaWxlIChlbGVtLm9wdGlvbnMubGVuZ3RoID4gMCkNCiAgICAgICAgZWxlbS5vcHRpb25zWzBdID0gbnVsbDsNCiAgICB2YXIgbmV3U2VsZWN0ZWRJbmRleCA9IDA7DQogICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0bXBBcnkubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgZWxlbS5vcHRpb25zW2ldID0gdG1wQXJ5W2ldOw0KICAgICAgICBpZiAoZWxlbS5vcHRpb25zW2ldLnZhbHVlID09IHNlbGVjdGVkVmFsdWUpDQogICAgICAgICAgICBuZXdTZWxlY3RlZEluZGV4ID0gaTsNCiAgICB9DQogICAgZWxlbS5zZWxlY3RlZEluZGV4ID0gbmV3U2VsZWN0ZWRJbmRleDsgLy8gU2V0IG5ldyBzZWxlY3RlZCBpbmRleCBhZnRlciBzb3J0aW5nDQogICAgcmV0dXJuOw0KfQ0KZnVuY3Rpb24gdXBkYXRlTG9nKCkgew0KICAgIGNvbnNvbGUubG9nKCJUT0tFTiIpOw0KICAgIHZhciBzZXJ2ZXIgPSBuZXcgU2VydmVyKCJ1cGRhdGVMb2ciKTsNCiAgICBzZXJ2ZXIucmVxdWVzdChuZXcgT2JqZWN0KCkpOw0KfQ0K" - webUI["html/js/menu.js"] = "DQpmdW5jdGlvbiBzZXRNZW51SXRlbSgpIHsNCg0KICBtZW51ID0gbmV3IE9iamVjdCgpOw0KICBzdWJNZW51ID0gbmV3IE9iamVjdCgpOw0KDQogIHZhciBtZW51X20zdSA9IG5ldyBPYmplY3QoKTsNCiAgbWVudV9tM3VbIl9tZW51VHlwZSJdICAgICAgID0gImlucHV0QXJyYXkiOw0KICBtZW51X20zdVsiX2VsZW1lbnQiXSAgICAgICAgPSAiTEkiOw0KICBtZW51X20zdVsiX2NvbmZpZ0tleSJdICAgICAgPSAiZmlsZXMubTN1IjsNCiAgbWVudV9tM3VbIl90ZXh0Il0gICAgICAgICAgID0gIlBsYXlsaXN0IjsNCiAgbWVudV9tM3VbIl9pY29uIl0gICAgICAgICAgID0gImltZy9tM3UucG5nIjsNCiAgbWVudV9tM3VbIl9oZWFkbGluZSJdICAgICAgID0gIlBsYXlsaXN0czogTG9jYWwgb3IgcmVtb3RlIjsNCiAgbWVudV9tM3VbIl91c2FnZSJdICAgICAgICAgID0gIjxiPkluZm88L2I+PGJyPkF2YWlsYWJpbGl0eTogRmlsZSBhdmFpbGFiaWxpdHkgaW4gcGVyY2VudDxicj5TdHJlYW1zOiAgICAgIE51bWJlciBvZiBzdHJlYW1zIGluIHRoZSBmaWxlLjxicj5ncm91cC10aXRsZTogIFN0cmVhbXMgdGhhdCBhcmUgYXNzaWduZWQgdG8gYSBncm91cC4gU2ltcGxpZmllcyBmaWx0ZXJpbmcgc3RyZWFtczxicj50dmctaWQ6ICAgICAgIFRoaXMgSUQgaXMgdXNlZCBmb3IgYXV0b21hdGljIG1hcHBpbmcsIG11c3QgbWF0Y2ggd2l0aCB0aGUgY2hhbm5lbCBJRCBpbiB0aGUgWE1MVFYgZmlsZS48YnI+VW5pcXVlIElEOiAgICBTdHJlYW1zIHdpdGggYSB1bmlxdWUgSUQgdG8gaWRlbnRpZnkgdGhlbS4gQWxsb3dzIGNoYW5uZWwgbmFtZSBjaGFuZ2VzIGluIHRoZSBNM1Ugd2l0aG91dCBsb3NpbmcgdGhlIFhNTFRWIG1hcHBpbmcgKFBQViAvIGxpdmUgZXZlbnRzKS48YnI+PGJyPjxiPlVzYWdlIE0zVTo8L2I+PGJyPlJlbW90ZSBwbGF5bGlzdDogaHR0cDovL3lvdXIuaXB0di5wcm92aWRlci5jb20vZmlsZS5tM3U8YnI+TG9jYWwgIHBsYXlsaXN0OiAvcGF0aC90by9maWxlLm0zdTxicj48YnI+PGI+VXNhZ2UgSERIb21lUnVuOjwvYj48YnI+SVA6IDE5Mi4xNjguMS4xMDo1MDA0PGJyPiINCiAgbWVudV9tM3VbIm5hbWUiXSAgICAgICAgICAgID0gImZpbGUiOw0KICBtZW51X20zdVsiaWQiXSAgICAgICAgICAgICAgPSAiZmlsZSI7DQogIG1lbnVfbTN1WyJ2YWx1ZSJdICAgICAgICAgICA9IG1lbnVfbTN1WyJuYW1lIl07DQogIG1lbnVfbTN1WyJwbGFjZWhvbGRlciJdICAgICA9ICJQbGF5bGlzdDogbG9jYWwgb3IgcmVtb3RlIjsNCiAgbWVudV9tM3VbIm9uY2xpY2siXSAgICAgICAgID0gImphdmFzY3JpcHQ6IHRvZ2dsZU1lbnUodGhpcyk7IjsNCiAgbWVudV9tM3VbImNsYXNzIl0gICAgICAgICAgID0gIm1lbnUtbm90QWN0aXZlIjsNCg0KDQogIHZhciBtZW51X2ZpbHRlciA9IG5ldyBPYmplY3QoKTsNCiAgbWVudV9maWx0ZXJbIl9tZW51VHlwZSJdICAgID0gImlucHV0QXJyYXkiOw0KICBtZW51X2ZpbHRlclsiX2VsZW1lbnQiXSAgICAgPSAiTEkiOw0KICBtZW51X2ZpbHRlclsiX2NvbmZpZ0tleSJdICAgPSAiZmlsdGVyIjsNCiAgbWVudV9maWx0ZXJbIl90ZXh0Il0gICAgICAgID0gIkZpbHRlciI7DQogIG1lbnVfZmlsdGVyWyJfaWNvbiJdICAgICAgICA9ICJpbWcvZmlsdGVyLnBuZyI7DQogIG1lbnVfZmlsdGVyWyJfaGVhZGxpbmUiXSAgICA9ICJGaWx0ZXIgYnkgTTNVIHBhcmFtZXRlcnMsIGUuZy4gZ3JvdXAtdGl0bGUiOw0KICBtZW51X2ZpbHRlclsiX3VzYWdlIl0gICAgICAgPSAiPGI+VXNhZ2U6PC9iPjxicj5TcG9ydCAtIEFsbCBzcG9ydHMgY2hhbm5lbHM8YnI+U3BvcnQge0hEfSAtIEFsbCBIRCBzcG9ydHMgY2hhbm5lbHM8YnI+U3BvcnQge0hEfSAhe0VTLERFfSAtIEFsbCBIRCBzcG9ydHMgY2hhbm5lbHMsIGJ1dCBubyBTcGFuaXNoIGFuZCBHZXJtYW48YnI+PGJyPlRvIGZpbHRlciB0aGUgc3RyZWFtcyBvZiBhIEhESG9tZVJ1biwgdGhlIHBsYXlsaXN0IG5hbWUgY2FuIGJlIGVudGVyZWQ6PGJyPk15IHR1bmVyIHtIRH0iDQogIC8vbWVudV9maWx0ZXJbIl91c2FnZSJdICAgICAgID0gIjxiPlVzYWdlOjwvYj48YnI+QWxsIHNwb3J0cyBjaGFubmVsczogU3BvcnQ8YnI+QWxsIEhEIHNwb3J0cyBjaGFubmVsczogU3BvcnQge0hEfTxicj5BbGwgSEQgc3BvcnRzIGNoYW5uZWxzLCBidXQgbm8gU3BhbmlzaCBhbmQgR2VybWFuOiBTcG9ydCB7SER9ICF7RVMsREV9Ig0KICBtZW51X2ZpbHRlclsibmFtZSJdICAgICAgICAgPSAiZmlsdGVyIjsNCiAgbWVudV9maWx0ZXJbImlkIl0gICAgICAgICAgID0gIk0zVSI7DQogIG1lbnVfZmlsdGVyWyJ2YWx1ZSJdICAgICAgICA9IG1lbnVfZmlsdGVyWyJuYW1lIl07DQogIG1lbnVfZmlsdGVyWyJwbGFjZWhvbGRlciJdICA9ICJGaWx0ZXIgc3RyZWFtczogU3BvcnQiOw0KICBtZW51X2ZpbHRlclsib25jbGljayJdICAgICAgPSAiamF2YXNjcmlwdDogdG9nZ2xlTWVudSh0aGlzKTsiOw0KICBtZW51X2ZpbHRlclsiY2xhc3MiXSAgICAgICAgPSAibWVudS1ub3RBY3RpdmUiOw0KDQogIHZhciBtZW51X2lkID0gbmV3IE9iamVjdCgpOw0KICBtZW51X2lkWyJfbWVudVR5cGUiXSAgICAgICAgPSAiaW5wdXRBcnJheSI7DQogIG1lbnVfaWRbIl9lbGVtZW50Il0gICAgICAgICA9ICJMSSI7DQogIG1lbnVfaWRbIl9jb25maWdLZXkiXSAgICAgICA9ICJpZCI7DQogIG1lbnVfaWRbIl90ZXh0Il0gICAgICAgICAgICA9ICJQTVMgSUQiOw0KICBtZW51X2lkWyJfaWNvbiJdICAgICAgICAgICAgPSAiaW1nL251bWJlci5wbmciOw0KICBtZW51X2lkWyJfaGVhZGxpbmUiXSAgICAgICAgPSAiU2V0dXAgUE1TIGd1aWRlIG51bWJlciI7DQogIG1lbnVfaWRbIl91c2FnZSJdICAgICAgICAgICA9ICdTb21lIHBsYXlsaXN0cyBoYXZlIHVuaXF1ZSBjaGFubmVsIElEcy48YnI+RW50ZXIgdGhlIGtleXdvcmQgb2YgdGhlIElELiBUaGUgY2hhbm5lbCBhc3NpZ25tZW50IGluIFBNUyB3aWxsIGNoYW5nZSBhcyBhIHJlc3VsdC48YnI+PGJyPmUuZy4gY2hhbm5lbElEPGJyPiNFWFRJTkY6MCB0eXBlPSJzdHJlYW0iIDxiPmNoYW5uZWxJZDwvYj49IjgxIiwgTXkgU3RyZWFtaW5nIENoYW5uZWwgSEQ8YnI+PGJyPk9ubHkgZW50ZXIgaGVyZSBpZiB5b3Uga25vdyB3aGF0IHlvdSBhcmUgZG9pbmchJw0KICBtZW51X2lkWyJuYW1lIl0gICAgICAgICAgICAgPSAiaWQiOw0KICBtZW51X2lkWyJpZCJdICAgICAgICAgICAgICAgPSAiaWQiOw0KICBtZW51X2lkWyJ2YWx1ZSJdICAgICAgICAgICAgPSBtZW51X2lkWyJuYW1lIl07DQogIG1lbnVfaWRbInBsYWNlaG9sZGVyIl0gICAgICA9ICJVbmlxdWUgSUQgZnJvbSB0aGUgTTNVIGZpbGUiOw0KICBtZW51X2lkWyJvbmNsaWNrIl0gICAgICAgICAgPSAiamF2YXNjcmlwdDogdG9nZ2xlTWVudSh0aGlzKTsiOw0KICBtZW51X2lkWyJjbGFzcyJdICAgICAgICAgICAgPSAibWVudS1ub3RBY3RpdmUiOw0KDQoNCiAgdmFyIG1lbnVfeG1sdHYgPSBuZXcgT2JqZWN0KCk7DQogIG1lbnVfeG1sdHZbIl9tZW51VHlwZSJdICAgICA9ICJpbnB1dEFycmF5IjsNCiAgbWVudV94bWx0dlsiX2VsZW1lbnQiXSAgICAgID0gIkxJIjsNCiAgbWVudV94bWx0dlsiX2NvbmZpZ0tleSJdICAgID0gImZpbGVzLnhtbHR2IjsNCiAgbWVudV94bWx0dlsiX3RleHQiXSAgICAgICAgID0gIlhNTFRWIjsNCiAgbWVudV94bWx0dlsiX2ljb24iXSAgICAgICAgID0gImltZy94bWx0di5wbmciOw0KICBtZW51X3htbHR2WyJfaGVhZGxpbmUiXSAgICAgPSAiWE1MVFYgZmlsZXM6IExvY2FsIG9yIHJlbW90ZSI7DQogIG1lbnVfeG1sdHZbIl91c2FnZSJdICAgICAgICA9ICI8Yj5JbmZvOjwvYj48YnI+QXZhaWxhYmlsaXR5OiBGaWxlIGF2YWlsYWJpbGl0eSBpbiBwZXJjZW50PGJyPkNoYW5uZWxzOiAgICAgTnVtYmVyIG9mIGNoYW5uZWxzIGluIHRoZSBmaWxlPGJyPlByb2dyYW1zOiAgICAgTnVtYmVyIG9mIEVQRyBkYXRhPGJyPjxicj48Yj5Vc2FnZTo8L2I+PGJyPlJlbW90ZSBYTUxUViBmaWxlOiBodHRwOi8veW91ci5lcGcucHJvdmlkZXIuY29tL2d1aWRlLnhtbDxicj5Mb2NhbCAgWE1MVFYgZmlsZTogL3BhdGgvdG8vZ3VpZGUueG1sIg0KICBtZW51X3htbHR2WyJuYW1lIl0gICAgICAgICAgPSAieG1sdHYiOw0KICBtZW51X3htbHR2WyJpZCJdICAgICAgICAgICAgPSAieG1sdHYiOw0KICBtZW51X3htbHR2WyJ2YWx1ZSJdICAgICAgICAgPSBtZW51X3htbHR2WyJuYW1lIl07DQogIG1lbnVfeG1sdHZbInBsYWNlaG9sZGVyIl0gICA9ICJYTUxUViBGaWxlOiBsb2NhbCBvciByZW1vdGUiOw0KICBtZW51X3htbHR2WyJvbmNsaWNrIl0gICAgICAgPSAiamF2YXNjcmlwdDogdG9nZ2xlTWVudSh0aGlzKTsiOw0KICBtZW51X3htbHR2WyJjbGFzcyJdICAgICAgICAgPSAibWVudS1ub3RBY3RpdmUiOw0KDQogIG1lbnVfbWFwcGluZyA9IG5ldyBPYmplY3QoKTsNCiAgbWVudV9tYXBwaW5nWyJfZWxlbWVudCJdICAgPSAiTEkiOw0KICBtZW51X21hcHBpbmdbIl90ZXh0Il0gICAgICA9ICJNYXBwaW5nIjsNCiAgbWVudV9tYXBwaW5nWyJfaWNvbiJdICAgICAgPSAiaW1nL21hcHBpbmcucG5nIjsNCiAgbWVudV9tYXBwaW5nWyJfY29uZmlnS2V5Il0gPSAibWFwcGluZyI7DQogIG1lbnVfbWFwcGluZ1siX2hlYWRsaW5lIl0gID0gIlhNTFRWIGFzc2lnbm1lbnQgYW5kIHNvcnRpbmcgb2YgY2hhbm5lbHMiOw0KICBtZW51X21hcHBpbmdbImlkIl0gICAgICAgICA9ICJtYXBwaW5nIjsNCiAgbWVudV9tYXBwaW5nWyJvbmNsaWNrIl0gICAgPSAiamF2YXNjcmlwdDogdG9nZ2xlTWVudSh0aGlzKTsiOw0KICBtZW51X21hcHBpbmdbImNsYXNzIl0gICAgICA9ICJtZW51LW5vdEFjdGl2ZSBwaG9uZSI7DQoNCiAgbWVudV91c2VycyA9IG5ldyBPYmplY3QoKTsNCiAgbWVudV91c2Vyc1siX2VsZW1lbnQiXSAgID0gIkxJIjsNCiAgbWVudV91c2Vyc1siX3RleHQiXSAgICAgID0gIlVzZXJzIjsNCiAgbWVudV91c2Vyc1siX2ljb24iXSAgICAgID0gImltZy91c2Vycy5wbmciOw0KICBtZW51X3VzZXJzWyJfY29uZmlnS2V5Il0gPSAidXNlcnMiOw0KICBtZW51X3VzZXJzWyJfaGVhZGxpbmUiXSAgPSAiQWRtaW5pc3RyYXRpb24gb2YgdXNlcnMgYW5kIHBlcm1pc3Npb25zIjsNCiAgbWVudV91c2Vyc1siaWQiXSAgICAgICAgID0gInVzZXJzIjsNCiAgbWVudV91c2Vyc1sib25jbGljayJdICAgID0gImphdmFzY3JpcHQ6IHRvZ2dsZU1lbnUodGhpcyk7IjsNCiAgbWVudV91c2Vyc1siY2xhc3MiXSAgICAgID0gIm1lbnUtbm90QWN0aXZlIjsNCiAgbWVudV91c2Vyc1siX3VzYWdlIl0gICAgID0gIjxiPkF1dGhvcml6YXRpb24gZ3JvdXBzOjwvYj48YnI+V0VCOiBVc2VycyBjYW4gbG9nIGluIHRvIHRoZSB3ZWIgaW50ZXJmYWNlPGJyPlBNUzogUHJvZ3JhbXMgbGlrZSBQbGV4IGNhbiBhY2Nlc3MgdGhlIGNoYW5uZWwgbGlzdC4gTG9naW4gdmlhIERWUiBJUDogdXNlcm5hbWU6cGFzc3dvcmRAeHRldmUuaXA6cG9ydDxicj5NM1U6IEFsbG93cyBjbGllbnRzIHRvIGRvd25sb2FkIHRoZSBNM1UgcGxheWxpc3QuPGJyPlhNTDogQWxsb3dzIGNsaWVudHMgdG8gZG93bmxvYWQgdGhlIFhNTFRWIGZpbGUuPGJyPkFQSTogQWxsb3dzIGNsaWVudHMgdG8gdXNlIHRoZSBBUEkgaW50ZXJmYWNlLjxicj48YnI+ISEhIEZvciBQTVMgYXV0aGVudGljYXRpb24sIG9ubHkgdGhlIGZvbGxvd2luZyBzcGVjaWFsIGNoYXJhY3RlcnMgYXJlIHZhbGlkOiAhJCgpPS4sLTo7PGJyPjxicj5UaGUgaW5kaXZpZHVhbCBhdXRoZW50aWNhdGlvbiBncm91cHMgY2FuIGJlIGFjdGl2YXRlZCAvIGRlYWN0aXZhdGVkIGluIHRoZSBzZXR0aW5ncyBtZW51LiINCiAgDQogIG1lbnVfc2V0dGluZ3MgPSBuZXcgT2JqZWN0KCk7DQogIG1lbnVfc2V0dGluZ3NbIl9lbGVtZW50Il0gICA9ICJMSSI7DQogIG1lbnVfc2V0dGluZ3NbIl90ZXh0Il0gICAgICA9ICJTZXR0aW5ncyI7DQogIG1lbnVfc2V0dGluZ3NbIl9pY29uIl0gICAgICA9ICJpbWcvc2V0dGluZ3MucG5nIjsNCiAgbWVudV9zZXR0aW5nc1siX2NvbmZpZ0tleSJdID0gInNldHRpbmdzIjsNCiAgbWVudV9zZXR0aW5nc1siX2hlYWRsaW5lIl0gID0gIlNldHRpbmdzIjsNCiAgbWVudV9zZXR0aW5nc1siX3N1Yk1lbnUiXSAgID0gIjcwMSw3MDIsNzAzLDcwNCw3MDUsNzA2LDcwNyw3MDgsNzk5LDcxMCw3MTEsNzEyLDcxMyw3MTQiOw0KICBtZW51X3NldHRpbmdzWyJpZCJdICAgICAgICAgPSAic2V0dGluZ3MiOw0KICBtZW51X3NldHRpbmdzWyJvbmNsaWNrIl0gICAgPSAiamF2YXNjcmlwdDogdG9nZ2xlTWVudSh0aGlzKTsiOw0KICBtZW51X3NldHRpbmdzWyJjbGFzcyJdICAgICAgPSAibWVudS1ub3RBY3RpdmUiOw0KDQogIG1lbnVfbG9nID0gbmV3IE9iamVjdCgpOw0KICBtZW51X2xvZ1siX2VsZW1lbnQiXSAgICAgICAgPSAiTEkiOw0KICBtZW51X2xvZ1siX3RleHQiXSAgICAgICAgICAgPSAiTG9nIjsNCiAgbWVudV9sb2dbIl9pY29uIl0gICAgICAgICAgID0gImltZy9sb2cucG5nIjsNCiAgbWVudV9sb2dbIl9oZWFkbGluZSJdICAgICAgID0gIkxvZyI7DQogIG1lbnVfbG9nWyJfY29uZmlnS2V5Il0gICAgICA9ICJsb2ciOw0KICBtZW51X2xvZ1siaWQiXSAgICAgICAgICAgICAgPSAibG9nIjsNCiAgbWVudV9sb2dbIm9uY2xpY2siXSAgICAgICAgID0gImphdmFzY3JpcHQ6IHRvZ2dsZU1lbnUodGhpcyk7IjsNCiAgbWVudV9sb2dbImNsYXNzIl0gICAgICAgICAgID0gIm1lbnUtbm90QWN0aXZlIjsNCg0KICBtZW51X2xvZ291dCA9IG5ldyBPYmplY3QoKTsNCiAgbWVudV9sb2dvdXRbIl9lbGVtZW50Il0gICA9ICJMSSI7DQogIG1lbnVfbG9nb3V0WyJfdGV4dCJdICAgICAgPSAiTG9nb3V0IjsNCiAgbWVudV9sb2dvdXRbIl9pY29uIl0gICAgICA9ICJpbWcvbG9nb3V0LnBuZyI7DQogIG1lbnVfbG9nb3V0WyJpZCJdICAgICAgICAgPSAibG9nb3V0IjsNCiAgbWVudV9sb2dvdXRbIm9uY2xpY2siXSAgICA9ICJqYXZhc2NyaXB0OiBsb2dvdXQoKTsiOw0KICBtZW51X2xvZ291dFsiY2xhc3MiXSAgICAgID0gIm1lbnUtbm90QWN0aXZlIjsNCg0KICB2YXIgbWVudV9zY2hlZHVsZSA9IG5ldyBPYmplY3QoKTsNCiAgbWVudV9zY2hlZHVsZVsiX21lbnVUeXBlIl0gID0gImlucHV0QXJyYXkiOw0KICBtZW51X3NjaGVkdWxlWyJfZWxlbWVudCJdICAgPSAiTEkiOw0KICBtZW51X3NjaGVkdWxlWyJfY29uZmlnS2V5Il0gPSAidXBkYXRlIjsNCiAgbWVudV9zY2hlZHVsZVsiX3RleHQiXSAgICAgID0gIlNjaGVkdWxlIjsNCiAgbWVudV9zY2hlZHVsZVsiX2ljb24iXSAgICAgID0gImltZy9zY2hlZHVsZS5wbmciOw0KICBtZW51X3NjaGVkdWxlWyJfaGVhZGxpbmUiXSAgPSAiU2NoZWR1bGUgZm9yIHVwZGF0aW5nIE0zVSwgWE1MVFYgZmlsZXMgYW5kIGNyZWF0aW5nIGEgbG9jYWwgYmFja3VwIjsNCiAgbWVudV9zY2hlZHVsZVsiX3VzYWdlIl0gICAgID0gIjxiPlVzYWdlOjwvYj48YnI+MDgxNSA9IDg6MTUgYW08YnI+MTkzMCA9IDc6MzAgcG0iDQogIG1lbnVfc2NoZWR1bGVbIm5hbWUiXSAgICAgICA9ICJ1cGRhdGUiOw0KICBtZW51X3NjaGVkdWxlWyJpZCJdICAgICAgICAgPSAidXBkYXRlIjsNCiAgbWVudV9zY2hlZHVsZVsidmFsdWUiXSAgICAgID0gbWVudV9pZFsibmFtZSJdOw0KICBtZW51X3NjaGVkdWxlWyJwbGFjZWhvbGRlciJdPSAidGltZSBvZiBkYXkgKDI0LWhvdXIgY2xvY2spIjsNCiAgbWVudV9zY2hlZHVsZVsib25jbGljayJdICAgID0gImphdmFzY3JpcHQ6IHRvZ2dsZU1lbnUodGhpcyk7IjsNCiAgbWVudV9zY2hlZHVsZVsiY2xhc3MiXSAgICAgID0gIm1lbnUtbm90QWN0aXZlIjsNCg0KICB2YXIgbWVudV9maWxlc1VwZGF0ZSA9IG5ldyBPYmplY3QoKTsNCiAgbWVudV9maWxlc1VwZGF0ZVsiX2VsZW1lbnQiXSA9ICJMSSI7DQogIG1lbnVfZmlsZXNVcGRhdGVbIl9tZW51VHlwZSJdICAgICA9ICJjaGVja2JveCI7DQogIG1lbnVfZmlsZXNVcGRhdGVbIl9jb25maWdLZXkiXSAgICA9ICJmaWxlcy51cGRhdGUiOw0KICBtZW51X2ZpbGVzVXBkYXRlWyJfbGFiZWwiXSAgICAgICAgPSAiVXBkYXRlIHRoZSBwcm92aWRlciBmaWxlcyBhdCBzeXN0ZW0gc3RhcnR1cCI7DQogIG1lbnVfZmlsZXNVcGRhdGVbIl9oZWFkbGluZSJdICAgICA9ICJVcGRhdGUgdGhlIHByb3ZpZGVyIGZpbGVzIGF0IHN5c3RlbSBzdGFydHVwIjsNCiAgbWVudV9maWxlc1VwZGF0ZVsiX3VzYWdlIl0gICAgICAgID0gIlBsYXlsaXN0cyBhbmQgWE1MVFYgZmlsZXMgYXJlIHVwZGF0ZWQgYnkgeFRlVmUgYXQgc3lzdGVtIHN0YXJ0dXAuIg0KICBtZW51X2ZpbGVzVXBkYXRlWyJuYW1lIl0gICAgICAgICAgPSAiZmlsZXMudXBkYXRlIjsNCiAgbWVudV9maWxlc1VwZGF0ZVsiaWQiXSAgICAgICAgICAgID0gImZpbGVzLnVwZGF0ZSI7DQogIG1lbnVfZmlsZXNVcGRhdGVbInZhbHVlIl0gICAgICAgICA9IG1lbnVfZmlsZXNVcGRhdGVbIm5hbWUiXTsNCiAgbWVudV9maWxlc1VwZGF0ZVsib25jbGljayJdICAgICAgID0gImphdmFzY3JpcHQ6IHRvZ2dsZU1lbnUodGhpcyk7IjsNCiAgbWVudV9maWxlc1VwZGF0ZVsiY2xhc3MiXSAgICAgICAgID0gIm1lbnUtbm90QWN0aXZlIjsNCiAgDQogIHZhciBtZW51X3R1bmVyID0gbmV3IE9iamVjdCgpOw0KICBtZW51X3R1bmVyWyJfZWxlbWVudCJdICAgICAgPSAiTEkiOw0KICBtZW51X3R1bmVyWyJfbWVudVR5cGUiXSAgICAgPSAic2VsZWN0IjsNCiAgbWVudV90dW5lclsiX2NvbmZpZ0tleSJdICAgID0gInR1bmVyIjsNCiAgbWVudV90dW5lclsiX2xhYmVsIl0gICAgICAgID0gIkF2YWlsYWJsZSB0dW5lcnMiOw0KICBtZW51X3R1bmVyWyJfdGV4dCJdICAgICAgICAgPSAiVHVuZXIiOw0KICBtZW51X3R1bmVyWyJfaWNvbiJdICAgICAgICAgPSAiaW1nL3R1bmVyLnBuZyI7DQogIG1lbnVfdHVuZXJbIl9oZWFkbGluZSJdICAgICA9ICJOdW1iZXIgb2YgdHVuZXJzIjsNCiAgbWVudV90dW5lclsiX3VzYWdlIl0gICAgICAgID0gIlRoaXMgc2V0dGluZyBpcyBvbmx5IHVzZWQgYnkgUGxleCBhbmQgRW1ieS48YnI+VGhlIG51bWJlciBvZiBjb25jdXJyZW50IHN0cmVhbXMgYWxsb3dlZCBieSB0aGUgSVBUViBwcm92aWRlci48YnI+QWZ0ZXIgYSBjaGFuZ2UsIHhUZVZlIG11c3QgYmUgZGVsZXRlIGluIHRoZSBQTVMgRFZSIHNldHRpbmdzIGFuZCBzZXQgdXAgYWdhaW4uIg0KICBtZW51X3R1bmVyWyJuYW1lIl0gICAgICAgICAgPSAidHVuZXIiOw0KICBtZW51X3R1bmVyWyJpZCJdICAgICAgICAgICAgPSAidHVuZXIiOw0KICBtZW51X3R1bmVyWyJ2YWx1ZSJdICAgICAgICAgPSBtZW51X3R1bmVyWyJuYW1lIl07DQogIG1lbnVfdHVuZXJbInBsYWNlaG9sZGVyIl0gICA9ICJOdW1iZXIgb2YgdHVuZXJzIjsNCiAgbWVudV90dW5lclsib25jbGljayJdICAgICAgID0gImphdmFzY3JpcHQ6IHRvZ2dsZU1lbnUodGhpcyk7IjsNCiAgbWVudV90dW5lclsiY2xhc3MiXSAgICAgICAgID0gIm1lbnUtbm90QWN0aXZlIjsNCg0KICB2YXIgb3B0aW9uVmFsdWVzID0gbmV3IEFycmF5KCk7DQogIGZvciAodmFyIGkgPSAxOyBpIDw9IDEwMDsgaSsrKSB7DQogICAgb3B0aW9uVmFsdWVzLnB1c2goaSkNCiAgfQ0KICBtZW51X3R1bmVyWyJfb3B0aW9uVmFsdWVzIl0gPSBvcHRpb25WYWx1ZXM7DQogIA0KICB2YXIgbWVudV9lcGcgPSBuZXcgT2JqZWN0KCk7DQogIG1lbnVfZXBnWyJfZWxlbWVudCJdID0gIkxJIjsNCiAgbWVudV9lcGdbIl9tZW51VHlwZSJdICAgICA9ICJzZWxlY3QiOw0KICBtZW51X2VwZ1siX2NvbmZpZ0tleSJdICAgID0gImVwZ1NvdXJjZSI7DQogIG1lbnVfZXBnWyJfbGFiZWwiXSAgICAgICAgPSAiU2VsZWN0aW9uIG9mIHRoZSBFUEcgc291cmNlIjsNCiAgbWVudV9lcGdbIl90ZXh0Il0gICAgICAgICA9ICJFUEcgc291cmNlIjsNCiAgbWVudV9lcGdbIl9oZWFkbGluZSJdICAgICA9ICJTZWxlY3Rpb24gb2YgdGhlIEVQRyBzb3VyY2UiOw0KICBtZW51X2VwZ1siX3VzYWdlIl0gICAgICAgID0gIlBNUzogICBVc2UgRVBHIGRhdGEgZnJvbSBQbGV4IG9yIEVtYnkuPGJyPlhFUEc6ICBVc2Ugb2YgZXh0ZXJuYWwgRVBHIGRhdGEgKFhNTFRWKS48YnI+ICAgICAgIFNldmVyYWwgWE1MVFYgc291cmNlcyBwb3NzaWJsZS48YnI+ICAgICAgIEFsbG93cyBlZGl0aW5nIGFuZCBvcmRlciBjaGFubmVscy48YnI+ICAgICAgIE0zVSAvIFhNTFRWIGV4cG9ydCAoSFRUUCBsaW5rIGZvciBJUFRWIGFwcHMpLiINCiAgbWVudV9lcGdbIm5hbWUiXSAgICAgICAgICA9ICJlcGdTb3VyY2UiOw0KICBtZW51X2VwZ1siaWQiXSAgICAgICAgICAgID0gImVwZ1NvdXJjZSI7DQogIG1lbnVfZXBnWyJ2YWx1ZSJdICAgICAgICAgPSBtZW51X2VwZ1sibmFtZSJdOw0KICBtZW51X2VwZ1sicGxhY2Vob2xkZXIiXSAgID0gIkVQRyBzb3VyY2UiOw0KICBtZW51X2VwZ1sib25jbGljayJdICAgICAgID0gImphdmFzY3JpcHQ6IHRvZ2dsZU1lbnUodGhpcyk7IjsNCiAgbWVudV9lcGdbImNsYXNzIl0gICAgICAgICA9ICJtZW51LW5vdEFjdGl2ZSI7DQogIG1lbnVfZXBnWyJfb3B0aW9uVmFsdWVzIl0gPSBuZXcgQXJyYXkoIlBNUyIsICJYRVBHIik7DQoNCiAgdmFyIG1lbnVfeGVwZyA9IG5ldyBPYmplY3QoKTsNCiAgbWVudV94ZXBnWyJfZWxlbWVudCJdID0gIkxJIjsNCiAgbWVudV94ZXBnWyJfbWVudVR5cGUiXSAgICAgPSAiY2hlY2tib3giOw0KICBtZW51X3hlcGdbIl9jb25maWdLZXkiXSAgICA9ICJ4dGV2ZUF1dG9VcGRhdGUiOw0KICBtZW51X3hlcGdbIl9sYWJlbCJdICAgICAgICA9ICJBdXRvbWF0aWMgdXBkYXRlIG9mIHhUZVZlIjsNCiAgbWVudV94ZXBnWyJfaGVhZGxpbmUiXSAgICAgPSAiQXV0b21hdGljIHVwZGF0ZSBvZiB4VGVWZSI7DQogIG1lbnVfeGVwZ1siX3VzYWdlIl0gICAgICAgID0gIklmIGEgbmV3IHZlcnNpb24gb2YgeFRlVmUgaXMgYXZhaWxhYmxlLCBpdCB3aWxsIGJlIGF1dG9tYXRpY2FsbHkgaW5zdGFsbGVkLiINCiAgbWVudV94ZXBnWyJuYW1lIl0gICAgICAgICAgPSAieHRldmVBdXRvVXBkYXRlIjsNCiAgbWVudV94ZXBnWyJpZCJdICAgICAgICAgICAgPSAieHRldmVBdXRvVXBkYXRlIjsNCiAgbWVudV94ZXBnWyJ2YWx1ZSJdICAgICAgICAgPSBtZW51X3hlcGdbIm5hbWUiXTsNCiAgbWVudV94ZXBnWyJvbmNsaWNrIl0gICAgICAgPSAiamF2YXNjcmlwdDogdG9nZ2xlTWVudSh0aGlzKTsiOw0KICBtZW51X3hlcGdbImNsYXNzIl0gICAgICAgICA9ICJtZW51LW5vdEFjdGl2ZSI7DQoNCiAgdmFyIG1lbnVfYXV0b0JhY2t1cFBhdGggPSBuZXcgT2JqZWN0KCk7DQogIG1lbnVfYXV0b0JhY2t1cFBhdGhbIl9lbGVtZW50Il0gICA9ICJMSSI7DQogIG1lbnVfYXV0b0JhY2t1cFBhdGhbIl9tZW51VHlwZSJdICA9ICJzaW5nbGVJbnB1dCI7DQogIG1lbnVfYXV0b0JhY2t1cFBhdGhbIl9jb25maWdLZXkiXSA9ICJiYWNrdXAucGF0aCI7DQogIG1lbnVfYXV0b0JhY2t1cFBhdGhbIl9sYWJlbCJdICAgICA9ICJMb2NhdGlvbiBmb3IgYXV0b21hdGljIGJhY2t1cHMiOw0KICBtZW51X2F1dG9CYWNrdXBQYXRoWyJfaGVhZGxpbmUiXSAgPSAiTG9jYXRpb24gZm9yIGF1dG9tYXRpYyBiYWNrdXBzIjsNCiAgbWVudV9hdXRvQmFja3VwUGF0aFsiX3VzYWdlIl0gICAgID0gIkJlZm9yZSBhbnkgdXBkYXRlIG9mIHRoZSBwcm92aWRlciBkYXRhIGJ5IHRoZSBzY2hlZHVsZSwgeFRlVmUgY3JlYXRlcyBhIGJhY2t1cC4gVGhlIHBhdGggZm9yIHRoZSBhdXRvbWF0aWMgYmFja3VwcyBjYW4gYmUgY2hhbmdlZC4geFRlVmUgcmVxdWlyZXMgd3JpdGUgcGVybWlzc2lvbiBmb3IgdGhpcyBmb2xkZXIuIg0KICBtZW51X2F1dG9CYWNrdXBQYXRoWyJuYW1lIl0gICAgICAgPSAiYmFja3VwLnBhdGgiOw0KICBtZW51X2F1dG9CYWNrdXBQYXRoWyJpZCJdICAgICAgICAgPSAiYmFja3VwLnBhdGgiOw0KICBtZW51X2F1dG9CYWNrdXBQYXRoWyJ2YWx1ZSJdICAgICAgPSBtZW51X2F1dG9CYWNrdXBQYXRoWyJuYW1lIl07DQogIG1lbnVfYXV0b0JhY2t1cFBhdGhbIm9uY2xpY2siXSAgICA9ICJqYXZhc2NyaXB0OiB0b2dnbGVNZW51KHRoaXMpOyI7DQogIG1lbnVfYXV0b0JhY2t1cFBhdGhbImNsYXNzIl0gICAgICA9ICJtZW51LW5vdEFjdGl2ZSI7DQoNCiAgdmFyIG1lbnVfYXV0b0JhY2t1cEtlZXAgPSBuZXcgT2JqZWN0KCk7DQogIG1lbnVfYXV0b0JhY2t1cEtlZXBbIl9lbGVtZW50Il0gICA9ICJMSSI7DQogIG1lbnVfYXV0b0JhY2t1cEtlZXBbIl9tZW51VHlwZSJdICA9ICJzZWxlY3QiOw0KICBtZW51X2F1dG9CYWNrdXBLZWVwWyJfY29uZmlnS2V5Il0gPSAiYmFja3VwLmtlZXAiOw0KICBtZW51X2F1dG9CYWNrdXBLZWVwWyJfdGV4dCJdICAgICAgPSAiS2VlcCI7DQogIG1lbnVfYXV0b0JhY2t1cEtlZXBbIl9sYWJlbCJdICAgICA9ICJOdW1iZXIgb2YgYmFja3VwcyB0byBrZWVwIjsNCiAgbWVudV9hdXRvQmFja3VwS2VlcFsiX2hlYWRsaW5lIl0gID0gIk51bWJlciBvZiBiYWNrdXBzIHRvIGtlZXAiOw0KICBtZW51X2F1dG9CYWNrdXBLZWVwWyJfdXNhZ2UiXSAgICAgPSAiIg0KICBtZW51X2F1dG9CYWNrdXBLZWVwWyJuYW1lIl0gICAgICAgPSAiYmFja3VwLmtlZXAiOw0KICBtZW51X2F1dG9CYWNrdXBLZWVwWyJpZCJdICAgICAgICAgPSAiYmFja3VwLmtlZXAiOw0KICBtZW51X2F1dG9CYWNrdXBLZWVwWyJ2YWx1ZSJdICAgICAgPSBtZW51X2F1dG9CYWNrdXBLZWVwWyJuYW1lIl07DQogIG1lbnVfYXV0b0JhY2t1cEtlZXBbIm9uY2xpY2siXSAgICA9ICJqYXZhc2NyaXB0OiB0b2dnbGVNZW51KHRoaXMpOyI7DQogIG1lbnVfYXV0b0JhY2t1cEtlZXBbImNsYXNzIl0gICAgICA9ICJtZW51LW5vdEFjdGl2ZSI7DQoNCiAgdmFyIG9wdGlvblZhbHVlcyA9IG5ldyBBcnJheSg1LCAxMCwgMjAsIDMwLCA0MCwgNTApOw0KICBtZW51X2F1dG9CYWNrdXBLZWVwWyJfb3B0aW9uVmFsdWVzIl0gPSBvcHRpb25WYWx1ZXM7DQoNCg0KICB2YXIgbWVudV9idWZmZXIgPSBuZXcgT2JqZWN0KCk7DQogIG1lbnVfYnVmZmVyWyJfZWxlbWVudCJdID0gIkxJIjsNCiAgbWVudV9idWZmZXJbIl9tZW51VHlwZSJdICAgICA9ICJjaGVja2JveCI7DQogIG1lbnVfYnVmZmVyWyJfY29uZmlnS2V5Il0gICAgPSAiYnVmZmVyIjsNCiAgbWVudV9idWZmZXJbIl9sYWJlbCJdICAgICAgICA9ICJTdHJlYW0gYnVmZmVyaW5nIFtFeHBlcmltZW50YWxdIjsNCiAgbWVudV9idWZmZXJbIl9oZWFkbGluZSJdICAgICA9ICJTdHJlYW0gYnVmZmVyaW5nIFtFeHBlcmltZW50YWxdIjsNCiAgbWVudV9idWZmZXJbIl91c2FnZSJdICAgICAgICA9ICJXaXRoIGFjdGl2YXRlZCBidWZmZXIsIHN0cmVhbXMgY2FuIGJlIHBsYXllZCBhbmQgcmVjb3JkZWQgbW9yZSBmbHVlbnRseS48YnI+VGhlIHN0cmVhbSBpcyBwYXNzZWQgZnJvbSB4VGVWZSB0byBQbGV4IC8gRW1ieSINCiAgbWVudV9idWZmZXJbIm5hbWUiXSAgICAgICAgICA9ICJidWZmZXIiOw0KICBtZW51X2J1ZmZlclsiaWQiXSAgICAgICAgICAgID0gImJ1ZmZlciI7DQogIG1lbnVfYnVmZmVyWyJ2YWx1ZSJdICAgICAgICAgPSBtZW51X2J1ZmZlclsibmFtZSJdOw0KICBtZW51X2J1ZmZlclsib25jbGljayJdICAgICAgID0gImphdmFzY3JpcHQ6IHRvZ2dsZU1lbnUodGhpcyk7IjsNCiAgbWVudV9idWZmZXJbImNsYXNzIl0gICAgICAgICA9ICJtZW51LW5vdEFjdGl2ZSI7DQoNCiAgdmFyIG1lbnVfYXBpID0gbmV3IE9iamVjdCgpOw0KICBtZW51X2FwaVsiX2VsZW1lbnQiXSA9ICJMSSI7DQogIG1lbnVfYXBpWyJfbWVudVR5cGUiXSAgICAgPSAiY2hlY2tib3giOw0KICBtZW51X2FwaVsiX2NvbmZpZ0tleSJdICAgID0gImFwaSI7DQogIG1lbnVfYXBpWyJfbGFiZWwiXSAgICAgICAgPSAiQVBJIGludGVyZmFjZSI7DQogIG1lbnVfYXBpWyJfaGVhZGxpbmUiXSAgICAgPSAiQVBJIGludGVyZmFjZSI7DQogIG1lbnVfYXBpWyJfdXNhZ2UiXSAgICAgICAgPSAnVmlhIEFQSSBpbnRlcmZhY2UgaXQgaXMgcG9zc2libGUgdG8gc2VuZCBjb21tYW5kcyB0byB4VGVWZS4gQVBJIGRvY3VtZW50YXRpb24gaXMgYXZhaWxhYmxlIDxhIGhyZWY9Imh0dHBzOi8veHRldmUuZGU/c2Nyb2xsPWFwaSI+aGVyZTwvYT4gJw0KICAvL21lbnVfYXBpWyJfdXNhZ2UiXSAgICAgICAgPSAnVmlhIEFQSSBpbnRlcmZhY2UgaXQgaXMgcG9zc2libGUgdG8gc2VuZCBjb21tYW5kcyB0byB4VGVWZS4gQVBJIGRvY3VtZW50YXRpb24gaXMgYXZhaWxhYmxlIDxhIGhyZWY9Imh0dHA6Ly9sb2NhbGhvc3Q6MTMxMz9zY3JvbGw9YXBpIj5oZXJlPC9hPiAnDQogIG1lbnVfYXBpWyJuYW1lIl0gICAgICAgICAgPSAiYXBpIjsNCiAgbWVudV9hcGlbImlkIl0gICAgICAgICAgICA9ICJhcGkiOw0KICBtZW51X2FwaVsidmFsdWUiXSAgICAgICAgID0gbWVudV9hcGlbIm5hbWUiXTsNCiAgbWVudV9hcGlbIm9uY2xpY2siXSAgICAgICA9ICJqYXZhc2NyaXB0OiB0b2dnbGVNZW51KHRoaXMpOyI7DQogIG1lbnVfYXBpWyJjbGFzcyJdICAgICAgICAgPSAibWVudS1ub3RBY3RpdmUiOw0KDQogIHZhciBtZW51X2F1dGhlbnRpY2F0aW9uV2ViID0gbmV3IE9iamVjdCgpOw0KICBtZW51X2F1dGhlbnRpY2F0aW9uV2ViWyJfZWxlbWVudCJdID0gIkxJIjsNCiAgbWVudV9hdXRoZW50aWNhdGlvbldlYlsiX21lbnVUeXBlIl0gICAgID0gImNoZWNrYm94IjsNCiAgbWVudV9hdXRoZW50aWNhdGlvbldlYlsiX2NvbmZpZ0tleSJdICAgID0gImF1dGhlbnRpY2F0aW9uLndlYiI7DQogIG1lbnVfYXV0aGVudGljYXRpb25XZWJbIl9sYWJlbCJdICAgICAgICA9ICJVc2VyIGF1dGhlbnRpY2F0aW9uIjsNCiAgbWVudV9hdXRoZW50aWNhdGlvbldlYlsiX2hlYWRsaW5lIl0gICAgID0gIlVzZXIgYXV0aGVudGljYXRpb24iOw0KICBtZW51X2F1dGhlbnRpY2F0aW9uV2ViWyJfdXNhZ2UiXSAgICAgICAgPSAiQWNjZXNzIHRvIHhUZVZlIHJlcXVpcmVzIGF1dGhlbnRpY2F0aW9uLiINCiAgbWVudV9hdXRoZW50aWNhdGlvbldlYlsibmFtZSJdICAgICAgICAgID0gImF1dGhlbnRpY2F0aW9uLndlYiI7DQogIG1lbnVfYXV0aGVudGljYXRpb25XZWJbImlkIl0gICAgICAgICAgICA9ICJhdXRoZW50aWNhdGlvbi53ZWIiOw0KICBtZW51X2F1dGhlbnRpY2F0aW9uV2ViWyJ2YWx1ZSJdICAgICAgICAgPSBtZW51X2F1dGhlbnRpY2F0aW9uV2ViWyJuYW1lIl07DQogIG1lbnVfYXV0aGVudGljYXRpb25XZWJbIm9uY2xpY2siXSAgICAgICA9ICJqYXZhc2NyaXB0OiB0b2dnbGVNZW51KHRoaXMpOyI7DQogIG1lbnVfYXV0aGVudGljYXRpb25XZWJbImNsYXNzIl0gICAgICAgICA9ICJtZW51LW5vdEFjdGl2ZSI7DQogIA0KICB2YXIgbWVudV9hdXRoZW50aWNhdGlvblBtcyA9IG5ldyBPYmplY3QoKTsNCiAgbWVudV9hdXRoZW50aWNhdGlvblBtc1siX2VsZW1lbnQiXSA9ICJMSSI7DQogIG1lbnVfYXV0aGVudGljYXRpb25QbXNbIl9tZW51VHlwZSJdICAgICA9ICJjaGVja2JveCI7DQogIG1lbnVfYXV0aGVudGljYXRpb25QbXNbIl9jb25maWdLZXkiXSAgICA9ICJhdXRoZW50aWNhdGlvbi5wbXMiOw0KICBtZW51X2F1dGhlbnRpY2F0aW9uUG1zWyJfbGFiZWwiXSAgICAgICAgPSAiUGxleCBhdXRoZW50aWNhdGlvbi4iOw0KICBtZW51X2F1dGhlbnRpY2F0aW9uUG1zWyJfaGVhZGxpbmUiXSAgICAgPSAiUGxleCBhdXRoZW50aWNhdGlvbi4iOw0KICBtZW51X2F1dGhlbnRpY2F0aW9uUG1zWyJfdXNhZ2UiXSAgICAgICAgPSAiUGxleCByZXF1ZXN0cyBhcmUgb25seSBwb3NzaWJsZSB3aXRoIGF1dGhlbnRpY2F0aW9uLjxicj5XYXJuaW5nISEhIEFmdGVyIGFjdGl2YXRpbmcgdGhpcyBmdW5jdGlvbiB4VGVWZSBtdXN0IGJlIGRlbGV0ZSBpbiB0aGUgUE1TIERWUiBzZXR0aW5ncyBhbmQgc2V0IHVwIGFnYWluLiINCiAgbWVudV9hdXRoZW50aWNhdGlvblBtc1sibmFtZSJdICAgICAgICAgID0gImF1dGhlbnRpY2F0aW9uLnBtcyI7DQogIG1lbnVfYXV0aGVudGljYXRpb25QbXNbImlkIl0gICAgICAgICAgICA9ICJhdXRoZW50aWNhdGlvbi5wbXMiOw0KICBtZW51X2F1dGhlbnRpY2F0aW9uUG1zWyJ2YWx1ZSJdICAgICAgICAgPSBtZW51X2F1dGhlbnRpY2F0aW9uUG1zWyJuYW1lIl07DQogIG1lbnVfYXV0aGVudGljYXRpb25QbXNbIm9uY2xpY2siXSAgICAgICA9ICJqYXZhc2NyaXB0OiB0b2dnbGVNZW51KHRoaXMpOyI7DQogIG1lbnVfYXV0aGVudGljYXRpb25QbXNbImNsYXNzIl0gICAgICAgICA9ICJtZW51LW5vdEFjdGl2ZSI7DQogIA0KICB2YXIgbWVudV9hdXRoZW50aWNhdGlvbk0zdSA9IG5ldyBPYmplY3QoKTsNCiAgbWVudV9hdXRoZW50aWNhdGlvbk0zdVsiX2VsZW1lbnQiXSA9ICJMSSI7DQogIG1lbnVfYXV0aGVudGljYXRpb25NM3VbIl9tZW51VHlwZSJdICAgICA9ICJjaGVja2JveCI7DQogIG1lbnVfYXV0aGVudGljYXRpb25NM3VbIl9jb25maWdLZXkiXSAgICA9ICJhdXRoZW50aWNhdGlvbi5tM3UiOw0KICBtZW51X2F1dGhlbnRpY2F0aW9uTTN1WyJfbGFiZWwiXSAgICAgICAgPSAiTTNVIGF1dGhlbnRpY2F0aW9uLiI7DQogIG1lbnVfYXV0aGVudGljYXRpb25NM3VbIl9oZWFkbGluZSJdICAgICA9ICJNM1UgYXV0aGVudGljYXRpb24uIjsNCiAgbWVudV9hdXRoZW50aWNhdGlvbk0zdVsiX3VzYWdlIl0gICAgICAgID0gIkRvd25sb2FkaW5nIHRoZSBNM1UgZmlsZSB2aWEgYW4gSFRUUCByZXF1ZXN0IGlzIG9ubHkgcG9zc2libGUgd2l0aCBhdXRoZW50aWNhdGlvbi4iDQogIG1lbnVfYXV0aGVudGljYXRpb25NM3VbIm5hbWUiXSAgICAgICAgICA9ICJhdXRoZW50aWNhdGlvbi5tM3UiOw0KICBtZW51X2F1dGhlbnRpY2F0aW9uTTN1WyJpZCJdICAgICAgICAgICAgPSAiYXV0aGVudGljYXRpb24ubTN1IjsNCiAgbWVudV9hdXRoZW50aWNhdGlvbk0zdVsidmFsdWUiXSAgICAgICAgID0gbWVudV9hdXRoZW50aWNhdGlvbk0zdVsibmFtZSJdOw0KICBtZW51X2F1dGhlbnRpY2F0aW9uTTN1WyJvbmNsaWNrIl0gICAgICAgPSAiamF2YXNjcmlwdDogdG9nZ2xlTWVudSh0aGlzKTsiOw0KICBtZW51X2F1dGhlbnRpY2F0aW9uTTN1WyJjbGFzcyJdICAgICAgICAgPSAibWVudS1ub3RBY3RpdmUiOw0KICANCg0KICB2YXIgbWVudV9hdXRoZW50aWNhdGlvblhtbCA9IG5ldyBPYmplY3QoKTsNCiAgbWVudV9hdXRoZW50aWNhdGlvblhtbFsiX2VsZW1lbnQiXSA9ICJMSSI7DQogIG1lbnVfYXV0aGVudGljYXRpb25YbWxbIl9tZW51VHlwZSJdICAgICA9ICJjaGVja2JveCI7DQogIG1lbnVfYXV0aGVudGljYXRpb25YbWxbIl9jb25maWdLZXkiXSAgICA9ICJhdXRoZW50aWNhdGlvbi54bWwiOw0KICBtZW51X2F1dGhlbnRpY2F0aW9uWG1sWyJfbGFiZWwiXSAgICAgICAgPSAiWEVQRyBhdXRoZW50aWNhdGlvbiI7DQogIG1lbnVfYXV0aGVudGljYXRpb25YbWxbIl9oZWFkbGluZSJdICAgICA9ICJYRVBHIGF1dGhlbnRpY2F0aW9uIjsNCiAgbWVudV9hdXRoZW50aWNhdGlvblhtbFsiX3VzYWdlIl0gICAgICAgID0gIkRvd25sb2FkaW5nIHRoZSBYRVBHIChYTUxUVikgZmlsZSB2aWEgYW4gSFRUUCByZXF1ZXN0IGlzIG9ubHkgcG9zc2libGUgd2l0aCBhdXRoZW50aWNhdGlvbi4iDQogIG1lbnVfYXV0aGVudGljYXRpb25YbWxbIm5hbWUiXSAgICAgICAgICA9ICJhdXRoZW50aWNhdGlvbi54bWwiOw0KICBtZW51X2F1dGhlbnRpY2F0aW9uWG1sWyJpZCJdICAgICAgICAgICAgPSAiYXV0aGVudGljYXRpb24ueG1sIjsNCiAgbWVudV9hdXRoZW50aWNhdGlvblhtbFsidmFsdWUiXSAgICAgICAgID0gbWVudV9hdXRoZW50aWNhdGlvblhtbFsibmFtZSJdOw0KICBtZW51X2F1dGhlbnRpY2F0aW9uWG1sWyJvbmNsaWNrIl0gICAgICAgPSAiamF2YXNjcmlwdDogdG9nZ2xlTWVudSh0aGlzKTsiOw0KICBtZW51X2F1dGhlbnRpY2F0aW9uWG1sWyJjbGFzcyJdICAgICAgICAgPSAibWVudS1ub3RBY3RpdmUiOw0KDQogIHZhciBtZW51X2F1dGhlbnRpY2F0aW9uQXBpID0gbmV3IE9iamVjdCgpOw0KICBtZW51X2F1dGhlbnRpY2F0aW9uQXBpWyJfZWxlbWVudCJdID0gIkxJIjsNCiAgbWVudV9hdXRoZW50aWNhdGlvbkFwaVsiX21lbnVUeXBlIl0gICAgID0gImNoZWNrYm94IjsNCiAgbWVudV9hdXRoZW50aWNhdGlvbkFwaVsiX2NvbmZpZ0tleSJdICAgID0gImF1dGhlbnRpY2F0aW9uLmFwaSI7DQogIG1lbnVfYXV0aGVudGljYXRpb25BcGlbIl9sYWJlbCJdICAgICAgICA9ICJBUEkgYXV0aGVudGljYXRpb24iOw0KICBtZW51X2F1dGhlbnRpY2F0aW9uQXBpWyJfaGVhZGxpbmUiXSAgICAgPSAiQVBJIGF1dGhlbnRpY2F0aW9uIjsNCiAgbWVudV9hdXRoZW50aWNhdGlvbkFwaVsiX3VzYWdlIl0gICAgICAgID0gIkFjY2VzcyB0byB0aGUgQVBJIGludGVyZmFjZSBpcyBvbmx5IHBvc3NpYmxlIHdpdGggYXV0aGVudGljYXRpb24uIg0KICBtZW51X2F1dGhlbnRpY2F0aW9uQXBpWyJuYW1lIl0gICAgICAgICAgPSAiYXV0aGVudGljYXRpb24uYXBpIjsNCiAgbWVudV9hdXRoZW50aWNhdGlvbkFwaVsiaWQiXSAgICAgICAgICAgID0gImF1dGhlbnRpY2F0aW9uLmFwaSI7DQogIG1lbnVfYXV0aGVudGljYXRpb25BcGlbInZhbHVlIl0gICAgICAgICA9IG1lbnVfYXV0aGVudGljYXRpb25BcGlbIm5hbWUiXTsNCiAgbWVudV9hdXRoZW50aWNhdGlvbkFwaVsib25jbGljayJdICAgICAgID0gImphdmFzY3JpcHQ6IHRvZ2dsZU1lbnUodGhpcyk7IjsNCiAgbWVudV9hdXRoZW50aWNhdGlvbkFwaVsiY2xhc3MiXSAgICAgICAgID0gIm1lbnUtbm90QWN0aXZlIjsNCiAgDQogIA0KICAvLyBNYWluIG1lbnUNCiAgbWVudVsxMF0gPSBtZW51X20zdTsNCg0KICBzd2l0Y2goY29uZmlnWyJlcGdTb3VyY2UiXSkgew0KICAgIGNhc2UgIlBNUyI6DQogICAgICBtZW51WzIwXSA9IG1lbnVfaWQ7DQogICAgICBicmVhazsNCiAgICANCiAgICBjYXNlICJYTUxUViI6DQogICAgICBtZW51WzQwXSA9IG1lbnVfeG1sdHY7DQogICAgICBicmVhazsNCg0KICAgIGNhc2UgIlhFUEciOg0KICAgICAgbWVudVs0MF0gPSBtZW51X3htbHR2Ow0KICAgICAgbWVudVs1MF0gPSBtZW51X21hcHBpbmc7DQogICAgICBicmVhazsNCiAgfQ0KICANCiAgbWVudVszMF0gPSBtZW51X2ZpbHRlcjsNCiAgDQogIGlmIChjb25maWdbImF1dGhlbnRpY2F0aW9uLndlYiJdID09IHRydWUpIHsNCiAgICBtZW51WzYwXSA9IG1lbnVfdXNlcnM7DQogIH0NCg0KICBtZW51WzcwXSA9IG1lbnVfc2V0dGluZ3M7DQogIG1lbnVbODBdID0gbWVudV9sb2c7DQogIGlmIChjb25maWdbImF1dGhlbnRpY2F0aW9uLndlYiJdID09IHRydWUpIHsNCiAgICBtZW51WzEwMF0gPSBtZW51X2xvZ291dDsNCiAgfSANCiAgDQoNCiAgLy8gU3ViLU1lbnUNCg0KICBzdWJNZW51WzcwMV0gPSBtZW51X3NjaGVkdWxlOw0KICBzdWJNZW51WzcwMl0gPSBtZW51X2ZpbGVzVXBkYXRlOw0KICBzdWJNZW51WzcwM10gPSBtZW51X3R1bmVyOw0KICBzdWJNZW51WzcwNF0gPSBtZW51X2VwZzsNCiAgc3ViTWVudVs3MDVdID0gbWVudV94ZXBnOw0KICBzdWJNZW51WzcwNl0gPSBtZW51X2F1dG9CYWNrdXBQYXRoOw0KICBzdWJNZW51WzcwN10gPSBtZW51X2F1dG9CYWNrdXBLZWVwOw0KICBzdWJNZW51WzcwOF0gPSBtZW51X2J1ZmZlcjsNCiAgDQogIHN1Yk1lbnVbNzEwXSA9IG1lbnVfYXV0aGVudGljYXRpb25XZWI7DQogIA0KICBpZiAoY29uZmlnWyJhdXRoZW50aWNhdGlvbi53ZWIiXSA9PSB0cnVlKSB7DQogICAgc3ViTWVudVs3MTFdID0gbWVudV9hdXRoZW50aWNhdGlvblBtczsNCiAgICBzdWJNZW51WzcxMl0gPSBtZW51X2F1dGhlbnRpY2F0aW9uTTN1Ow0KICAgIHN1Yk1lbnVbNzEzXSA9IG1lbnVfYXV0aGVudGljYXRpb25YbWw7DQogICAgc3ViTWVudVs3MTRdID0gbWVudV9hdXRoZW50aWNhdGlvbkFwaTsNCiAgfQ0KDQogIHN1Yk1lbnVbNzk5XSA9IG1lbnVfYXBpOw0KDQogIA0KDQogIHJldHVybg0KfQ0KDQpmdW5jdGlvbiBjcmVhdGVNZW51KCkgew0KDQogIHNob3dFbGVtZW50KCJwb3B1cCIsIGZhbHNlKTsNCg0KICAvL2NvbnNvbGUubG9nKGNvbmZpZyk7DQogIHNldE1lbnVJdGVtKCk7DQogIHZhciBtZW51SXRlbXMgPSBnZXRPYmpLZXlzKG1lbnUpDQogIHZhciBuYXYgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgiTkFWIilbMF07DQogIG5hdi5pbm5lckhUTUwgPSAiIjsNCiAgdmFyIG5ld0l0ZW0gPSBuZXcgT2JqZWN0KCk7DQoNCiAgZm9yICh2YXIgaSA9IDA7IGkgPCBtZW51SXRlbXMubGVuZ3RoOyBpKyspIHsNCg0KICAgIA0KICAgIHZhciBuZXdJdGVtID0gbWVudVttZW51SXRlbXNbaV1dOw0KICAgIG5ld0l0ZW1bImlkIl0gPSBtZW51SXRlbXNbaV07DQoNCiAgICANCiAgICBzd2l0Y2gobmV3SXRlbS5oYXNPd25Qcm9wZXJ0eSgiX2ljb24iKSkgew0KICAgICAgY2FzZSB0cnVlOiANCiAgICAgICAgdmFyIGl0ZW1UZXh0ID0gbmV3SXRlbVsiX3RleHQiXTsNCiAgICAgICAgZGVsZXRlIG5ld0l0ZW1bIl90ZXh0Il0NCiAgICAgICAgbmF2LmFwcGVuZENoaWxkKGNyZWF0ZUVsZW1lbnQobmV3SXRlbSkpOw0KICAgICAgICBuZXdJdGVtWyJfdGV4dCJdID0gaXRlbVRleHQ7DQogICAgICAgIHZhciBuZXdJY29uID0gbmV3IE9iamVjdCgpOw0KICAgICAgICBuZXdJY29uWyJfZWxlbWVudCJdID0gIklNRyI7DQogICAgICAgIG5ld0ljb25bInNyYyJdID0gbmV3SXRlbVsiX2ljb24iXTsNCg0KICAgICAgICB2YXIgY3VycmVudEVsZW1lbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChtZW51SXRlbXNbaV0pOw0KICAgICAgICBjdXJyZW50RWxlbWVudC5hcHBlbmRDaGlsZChjcmVhdGVFbGVtZW50KG5ld0ljb24pKTsNCg0KDQogICAgICAgIHZhciB0ZXh0ID0gbmV3IE9iamVjdCgpOw0KICAgICAgICB0ZXh0WyJfZWxlbWVudCJdID0gIlAiDQogICAgICAgIHRleHRbIl90ZXh0Il0gPSBpdGVtVGV4dDsNCiAgICAgICAgdGV4dFsiY2xhc3MiXSA9ICJuYXYtdGV4dCINCiAgICAgICAgY3VycmVudEVsZW1lbnQuYXBwZW5kQ2hpbGQoY3JlYXRlRWxlbWVudCh0ZXh0KSk7DQogICAgICAgIGJyZWFrOw0KDQogICAgICBkZWZhdWx0Og0KICAgICAgICBuYXYuYXBwZW5kQ2hpbGQoY3JlYXRlRWxlbWVudChuZXdJY29uKSk7DQogICAgICAgIGJyZWFrOw0KICAgIH0NCg0KICB9DQogIGlmIChhY3RpdmVNZW51ICE9IHVuZGVmaW5lZCkgew0KICAgIC8vY29uc29sZS5sb2coYWN0aXZlTWVudSk7DQogICAgdG9nZ2xlTWVudShhY3RpdmVNZW51KTsNCiAgfQ0KDQogIHJldHVybg0KfQ0KDQpmdW5jdGlvbiB0b2dnbGVNZW51KGVsbSkgew0KICAvL3Nob3dTdHJlYW1zKGZhbHNlKTsNCiAgY2xlYXJJbnRlcnZhbChsb2dJbnRlcnZhbCkNCiAgYWN0aXZlTWVudSA9IGVsbTsNCiAgdmFyIGl0ZW0gPSBtZW51W2VsbS5pZF0NCiAgdmFyIGRpdiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzZXR0aW5ncyIpOw0KICBkaXYuaW5uZXJIVE1MID0gIiI7DQogIA0KICAvLyBTZXQgSGVhZGxpbmUNCiAgdmFyIGhlYWRsaW5lID0gbmV3IE9iamVjdCgpOw0KICBoZWFkbGluZVsiX2VsZW1lbnQiXSA9ICJINCI7DQogIGhlYWRsaW5lWyJfdGV4dCJdID0gaXRlbVsiX2hlYWRsaW5lIl07DQogIGRpdi5hcHBlbmRDaGlsZChjcmVhdGVFbGVtZW50KGhlYWRsaW5lKSk7DQoNCiAgLy8gU3ViLU1lbnUNCiAgaWYgKGl0ZW0uaGFzT3duUHJvcGVydHkoIl9zdWJNZW51IikgPT0gdHJ1ZSkgew0KICAgIG9wZW5TdWJNZW51KGl0ZW0pOw0KICAgIHJldHVybg0KICB9DQoNCiAgLy8gTWFwcGluZywgVXNlcnMsIExvZywgRmlsZXMNCiAgc3dpdGNoKGl0ZW1bIl9jb25maWdLZXkiXSkgew0KICAgIGNhc2UgIm1hcHBpbmciOiAgICAgb3Blbk1hcHBpbmdFZGl0b3IoaXRlbSk7IHJldHVybjsgYnJlYWs7DQogICAgY2FzZSAidXNlcnMiOiAgICAgICBvcGVuVXNlcnMoaXRlbSk7IHJldHVybjsgYnJlYWs7DQogICAgY2FzZSAibG9nIjogICAgICAgICBzaG93TG9nKGl0ZW0pOyByZXR1cm47IGJyZWFrOw0KICAgIGNhc2UgImZpbGVzLm0zdSI6ICAgb3BlbkZpbGVzKGl0ZW0sICJtM3UiKTsgcmV0dXJuOyBicmVhazsNCiAgICBjYXNlICJmaWxlcy54bWx0diI6IG9wZW5GaWxlcyhpdGVtLCAieG1sdHYiKTsgcmV0dXJuOyBicmVhazsNCg0KICAgIGNhc2UgImZpbHRlciI6ICAgICAgc2hvd1N0cmVhbXModHJ1ZSk7IGJyZWFrOw0KICB9DQoNCiANCg0KICB2YXIgbmV3SFIgPSBuZXcgT2JqZWN0KCk7DQogIG5ld0hSWyJfZWxlbWVudCJdID0gIkhSIg0KICBkaXYuYXBwZW5kQ2hpbGQoY3JlYXRlRWxlbWVudChuZXdIUikpOw0KICANCiAgdmFyIG5ld0VudHJ5ID0gbmV3IE9iamVjdCgpOw0KICBuZXdFbnRyeVsiX2VsZW1lbnQiXSAgPSAiSU5QVVQiOw0KICBuZXdFbnRyeVsidHlwZSJdID0gImJ1dHRvbiI7DQogIC8vbmV3RW50cnlbImNsYXNzIl0gPSAic2F2ZSI7DQogIG5ld0VudHJ5WyJ2YWx1ZSJdID0gIlNhdmUiOw0KICBuZXdFbnRyeVsib25jbGljayJdID0gInNhdmVEYXRhMignc2V0dGluZ3MnKSINCiAgZGl2LmFwcGVuZENoaWxkKGNyZWF0ZUVsZW1lbnQobmV3RW50cnkpKTsNCg0KDQogIHZhciBuZXdXcmFwcGVyID0gbmV3IE9iamVjdCgpOw0KICBuZXdXcmFwcGVyWyJfZWxlbWVudCJdICA9ICJESVYiOw0KICBuZXdXcmFwcGVyWyJpZCJdICAgICAgICA9ICJib3gtd3JhcHBlciI7DQogIGRpdi5hcHBlbmRDaGlsZChjcmVhdGVFbGVtZW50KG5ld1dyYXBwZXIpKTsNCg0KICBkaXYgPSBkaXYubGFzdENoaWxkOw0KICANCiAgZGl2LmFwcGVuZENoaWxkKGNyZWF0ZU1lbnVJdGVtKGl0ZW0pKQ0KDQogIC8vIHVzYWdlIEluZm8gIA0KICBzd2l0Y2gobWVudVthY3RpdmVNZW51LmlkXS5oYXNPd25Qcm9wZXJ0eSgiX3VzYWdlIikpIHsNCiAgICBjYXNlIHRydWU6IA0KICAgICAgdmFyIHVzYWdlSXRlbSA9IG5ldyBPYmplY3QoKTsNCiAgICAgIHVzYWdlSXRlbVsiX2VsZW1lbnQiXSA9ICJQUkUiDQogICAgICB1c2FnZUl0ZW1bIl90ZXh0Il0gICAgPSBtZW51W2FjdGl2ZU1lbnUuaWRdWyJfdXNhZ2UiXTsNCiAgICAgIGRpdi5hcHBlbmRDaGlsZChjcmVhdGVFbGVtZW50KHVzYWdlSXRlbSkpOw0KICB9DQogIA0KICBjYWxjdWxhdGVXcmFwcGVySGVpZ2h0KCk7DQoNCn0NCg0KZnVuY3Rpb24gY3JlYXRlTWVudUl0ZW0oaXRlbSkgew0KICB2YXIgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIkRJViIpOw0KICBzd2l0Y2goaXRlbVsiX21lbnVUeXBlIl0pIHsNCiAgICBjYXNlICJpbnB1dEFycmF5IjoNCiAgICAgIGlmIChjb25maWcuaGFzT3duUHJvcGVydHkoaXRlbVsiX2NvbmZpZ0tleSJdKSA9PSB0cnVlKSB7DQogICAgICAgIHZhciB2YWx1ZSA9IGNvbmZpZ1tpdGVtWyJfY29uZmlnS2V5Il1dOw0KICAgICAgfSBlbHNlIHsNCiAgICAgICAgdmFyIHZhbHVlID0gbmV3IEFycmF5KCk7DQogICAgICB9DQogICAgICANCiAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdmFsdWUubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgdmFyIG5ld0VudHJ5ID0gbmV3IE9iamVjdCgpOw0KICAgICAgICBuZXdFbnRyeSA9IGl0ZW0NCiAgICAgICAgZGVsZXRlIG5ld0VudHJ5WyJvbmNsaWNrIl07DQogICAgICAgIG5ld0VudHJ5WyJfZWxlbWVudCJdICA9ICJJTlBVVCI7DQogICAgICAgIG5ld0VudHJ5WyJ2YWx1ZSJdICAgICA9IHZhbHVlW2ldOw0KICAgICAgICBuZXdFbnRyeVsidHlwZSJdICAgICAgPSAic2VhcmNoIjsNCiAgICAgICAgbmV3RW50cnlbImRhdGEtbWVudXR5cGUiXSA9IGl0ZW1bIl9tZW51VHlwZSJdOw0KICAgICAgICBuZXdFbnRyeVsiZGF0YS1tZW51a2V5Il0gPSBpdGVtWyJfY29uZmlnS2V5Il07DQogICAgICAgIGVsZW1lbnQuYXBwZW5kQ2hpbGQoY3JlYXRlRWxlbWVudChuZXdFbnRyeSkpOw0KDQogICAgICB9DQogICAgICAvLyBOZXcgZW50cnkgZm9yIGFycmF5DQogICAgICB2YXIgbmV3RW50cnkgPSBuZXcgT2JqZWN0KCk7DQogICAgICBuZXdFbnRyeVsiX2VsZW1lbnQiXSAgICAgID0gIklOUFVUIjsNCiAgICAgIG5ld0VudHJ5WyJ0eXBlIl0gICAgICAgICAgPSAic2VhcmNoIjsNCiAgICAgIG5ld0VudHJ5WyJuYW1lIl0gICAgICAgICAgPSBpdGVtWyJuYW1lIl07DQogICAgICBuZXdFbnRyeVsicGxhY2Vob2xkZXIiXSAgID0gaXRlbVsicGxhY2Vob2xkZXIiXTsNCiAgICAgIG5ld0VudHJ5WyJ2YWx1ZSJdICAgICAgICAgPSAiIjsNCiAgICAgIG5ld0VudHJ5WyJkYXRhLW1lbnV0eXBlIl0gPSBpdGVtWyJfbWVudVR5cGUiXTsNCiAgICAgIG5ld0VudHJ5WyJkYXRhLW1lbnVrZXkiXSAgPSBpdGVtWyJfY29uZmlnS2V5Il07DQogICAgICBlbGVtZW50LmFwcGVuZENoaWxkKGNyZWF0ZUVsZW1lbnQobmV3RW50cnkpKTsNCiAgICAgIGJyZWFrOw0KICANCiAgICBjYXNlICJzaW5nbGVJbnB1dCI6DQogICAgICB2YXIgdmFsdWUgPSBjb25maWdbaXRlbVsiX2NvbmZpZ0tleSJdXTsNCiAgICAgIGlmICh2YWx1ZSA9PSB1bmRlZmluZWQpIHsNCiAgICAgICAgdmFsdWUgPSAiIjsNCiAgICAgIH0NCiAgICAgIHZhciBuZXdFbnRyeSA9IG5ldyBPYmplY3QoKTsNCiAgICAgIG5ld0VudHJ5ID0gaXRlbTsNCiAgICAgIGRlbGV0ZSBuZXdFbnRyeVsib25jbGljayJdOw0KICAgICAgbmV3RW50cnlbIl9lbGVtZW50Il0gID0gIklOUFVUIjsNCiAgICAgIG5ld0VudHJ5WyJ2YWx1ZSJdICAgICA9IHZhbHVlOw0KICAgICAgbmV3RW50cnlbInR5cGUiXSAgICAgID0gInNlYXJjaCI7DQogICAgICBuZXdFbnRyeVsiZGF0YS1tZW51dHlwZSJdID0gaXRlbVsiX21lbnVUeXBlIl07DQogICAgICBuZXdFbnRyeVsiZGF0YS1tZW51a2V5Il0gPSBpdGVtWyJfY29uZmlnS2V5Il07DQogICAgICBlbGVtZW50LmFwcGVuZENoaWxkKGNyZWF0ZUVsZW1lbnQobmV3RW50cnkpKTsNCiAgICAgIGJyZWFrOw0KDQogICAgY2FzZSAiY2hlY2tib3giOg0KICAgICAgdmFyIHZhbHVlID0gY29uZmlnW2l0ZW1bIl9jb25maWdLZXkiXV07DQogICAgICBpZiAodmFsdWUgPT0gdW5kZWZpbmVkKSB7DQogICAgICAgIHZhbHVlID0gZmFsc2U7DQogICAgICB9DQogICAgICB2YXIgbmV3RW50cnkgPSBuZXcgT2JqZWN0KCk7DQogICAgICBuZXdFbnRyeSA9IGl0ZW07DQogICAgICBkZWxldGUgbmV3RW50cnlbIm9uY2xpY2siXTsNCiAgICAgIG5ld0VudHJ5WyJfZWxlbWVudCJdICA9ICJJTlBVVCI7DQogICAgICBuZXdFbnRyeVsidmFsdWUiXSAgICAgPSB2YWx1ZTsNCiAgICAgIG5ld0VudHJ5WyJ0eXBlIl0gICAgICA9ICJjaGVja2JveCI7DQogICAgICBuZXdFbnRyeVsiZGF0YS1tZW51dHlwZSJdID0gaXRlbVsiX21lbnVUeXBlIl07DQogICAgICBuZXdFbnRyeVsiZGF0YS1tZW51a2V5Il0gPSBpdGVtWyJfY29uZmlnS2V5Il07DQogICAgICBlbGVtZW50LmFwcGVuZENoaWxkKGNyZWF0ZUVsZW1lbnQobmV3RW50cnkpKTsNCiAgICAgIGVsZW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIklOUFVUIilbMF0uY2hlY2tlZCA9IHZhbHVlOw0KICAgICAgYnJlYWs7DQogICAgDQogICAgY2FzZSAic2VsZWN0IjoNCiAgICAgIHZhciB2YWx1ZSA9IGNvbmZpZ1tpdGVtWyJfY29uZmlnS2V5Il1dOw0KICAgICAgdmFyIG5ld0VudHJ5ID0gbmV3IE9iamVjdCgpOw0KICAgICAgbmV3RW50cnkgPSBpdGVtOw0KICAgICAgZGVsZXRlIG5ld0VudHJ5WyJvbmNsaWNrIl0NCiAgICAgIG5ld0VudHJ5WyJfZWxlbWVudCJdICA9ICJTRUxFQ1QiOw0KICAgICAgZWxlbWVudC5hcHBlbmRDaGlsZChjcmVhdGVFbGVtZW50KG5ld0VudHJ5KSk7DQogICAgICB2YXIgc2VsZWN0RWxlbWVudCA9IGVsZW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlNFTEVDVCIpWzBdOw0KICAgICAgdmFyIHZhbHVlcyA9IGl0ZW1bIl9vcHRpb25WYWx1ZXMiXTsNCiAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdmFsdWVzLmxlbmd0aDsgaSsrKSB7DQogICAgICAgIHZhciBuZXdFbnRyeSA9IG5ldyBPYmplY3Q7DQogICAgICAgIG5ld0VudHJ5WyJfZWxlbWVudCJdICA9ICJPUFRJT04iOw0KICAgICAgICBuZXdFbnRyeVsiX3RleHQiXSAgICAgPSBpdGVtWyJfdGV4dCJdICsgIjogIiArIHZhbHVlc1tpXTsNCiAgICAgICAgbmV3RW50cnlbInZhbHVlIl0gICAgID0gdmFsdWVzW2ldOw0KICAgICAgICBzZWxlY3RFbGVtZW50LmFwcGVuZENoaWxkKGNyZWF0ZUVsZW1lbnQobmV3RW50cnkpKTsNCiAgICAgIH0NCiAgICAgIHNlbGVjdEVsZW1lbnQudmFsdWUgPSB2YWx1ZTsNCiAgICAgIGJyZWFrOw0KICAgIA0KICB9DQogIHJldHVybiBlbGVtZW50Ow0KfQ0KDQpmdW5jdGlvbiBvcGVuU3ViTWVudShpdGVtKSB7DQogIHZhciBlbnRyeXMgPSBpdGVtWyJfc3ViTWVudSJdLnNwbGl0KCIsIik7DQogIHZhciBkaXYgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic2V0dGluZ3MiKTsNCg0KICB2YXIgbmV3SFIgPSBuZXcgT2JqZWN0KCk7DQogIG5ld0hSWyJfZWxlbWVudCJdID0gIkhSIg0KICBkaXYuYXBwZW5kQ2hpbGQoY3JlYXRlRWxlbWVudChuZXdIUikpOw0KICANCiAgdmFyIG5ld0VudHJ5ID0gbmV3IE9iamVjdCgpOw0KICBuZXdFbnRyeVsiX2VsZW1lbnQiXSAgPSAiSU5QVVQiOw0KICBuZXdFbnRyeVsidHlwZSJdID0gImJ1dHRvbiI7DQogIC8vbmV3RW50cnlbImNsYXNzIl0gPSAic2F2ZSI7DQogIG5ld0VudHJ5WyJ2YWx1ZSJdID0gIlNhdmUiOw0KICBuZXdFbnRyeVsib25jbGljayJdID0gInNhdmVEYXRhMignc2V0dGluZ3MnKSINCiAgZGl2LmFwcGVuZENoaWxkKGNyZWF0ZUVsZW1lbnQobmV3RW50cnkpKTsNCg0KICBpZiAoaXRlbVsiX2NvbmZpZ0tleSJdID09ICJzZXR0aW5ncyIpIHsNCiAgICB2YXIgbmV3RW50cnkgPSBuZXcgT2JqZWN0KCk7DQogICAgbmV3RW50cnlbIl9lbGVtZW50Il0gID0gIklOUFVUIjsNCiAgICBuZXdFbnRyeVsidHlwZSJdID0gImJ1dHRvbiI7DQogICAgLy9uZXdFbnRyeVsiY2xhc3MiXSA9ICJzYXZlIjsNCiAgICBuZXdFbnRyeVsidmFsdWUiXSA9ICJCYWNrdXAiOw0KICAgIG5ld0VudHJ5WyJvbmNsaWNrIl0gPSAieHRldmVCYWNrdXAoKSINCiAgICBkaXYuYXBwZW5kQ2hpbGQoY3JlYXRlRWxlbWVudChuZXdFbnRyeSkpOw0KICB9DQoNCiAgaWYgKGl0ZW1bIl9jb25maWdLZXkiXSA9PSAic2V0dGluZ3MiKSB7DQogICAgdmFyIG5ld0VudHJ5ID0gbmV3IE9iamVjdCgpOw0KICAgIG5ld0VudHJ5WyJfZWxlbWVudCJdICA9ICJJTlBVVCI7DQogICAgbmV3RW50cnlbInR5cGUiXSA9ICJidXR0b24iOw0KICAgIC8vbmV3RW50cnlbImNsYXNzIl0gPSAic2F2ZSI7DQogICAgbmV3RW50cnlbInZhbHVlIl0gPSAiUmVzdG9yZSI7DQogICAgbmV3RW50cnlbIm9uY2xpY2siXSA9ICJ4dGV2ZVJlc3RvcmUodGhpcykiDQogICAgZGl2LmFwcGVuZENoaWxkKGNyZWF0ZUVsZW1lbnQobmV3RW50cnkpKTsNCiAgfQ0KDQoNCiAgdmFyIG5ld1dyYXBwZXIgPSBuZXcgT2JqZWN0KCk7DQogIG5ld1dyYXBwZXJbIl9lbGVtZW50Il0gID0gIkRJViI7DQogIG5ld1dyYXBwZXJbImlkIl0gICAgICAgID0gImJveC13cmFwcGVyIjsNCiAgZGl2LmFwcGVuZENoaWxkKGNyZWF0ZUVsZW1lbnQobmV3V3JhcHBlcikpOw0KICANCiAgZGl2ID0gZGl2Lmxhc3RDaGlsZDsNCiAgDQoNCiAgZm9yICh2YXIgaSA9IDA7IGkgPCBlbnRyeXMubGVuZ3RoOyBpKyspIHsNCiAgICB2YXIgaXRlbSA9IHN1Yk1lbnVbZW50cnlzW2ldXTsNCiAgICBpZiAoaXRlbSA9PSB1bmRlZmluZWQpIHsNCiAgICAgIGJyZWFrOw0KICAgIH0NCiAgICANCiAgICB2YXIgY29udGFpbmVyID0gbmV3IE9iamVjdCgpOw0KICAgIGNvbnRhaW5lclsiX2VsZW1lbnQiXSA9ICJESVYiOw0KICAgIGRpdi5hcHBlbmRDaGlsZChjcmVhdGVFbGVtZW50KGNvbnRhaW5lcikpOw0KDQogICAgdmFyIGRpdkNvbnRhaW5lciA9IGRpdi5sYXN0Q2hpbGQ7DQogICAgDQogICAgdmFyIGhlYWRsaW5lID0gbmV3IE9iamVjdCgpOw0KICAgIGhlYWRsaW5lWyJfZWxlbWVudCJdID0gIkg1IjsNCiAgICBoZWFkbGluZVsiX3RleHQiXSA9IGl0ZW1bIl9oZWFkbGluZSJdOw0KICAgIGRpdkNvbnRhaW5lci5hcHBlbmRDaGlsZChjcmVhdGVFbGVtZW50KGhlYWRsaW5lKSk7DQoNCiAgICBkaXZDb250YWluZXIuYXBwZW5kQ2hpbGQoY3JlYXRlTWVudUl0ZW0oaXRlbSkpDQoNCiAgICBzd2l0Y2goaXRlbS5oYXNPd25Qcm9wZXJ0eSgiX3VzYWdlIikpIHsNCiAgICAgIGNhc2UgdHJ1ZTogDQogICAgICAgIHZhciB1c2FnZUl0ZW0gPSBuZXcgT2JqZWN0KCk7DQogICAgICAgIHVzYWdlSXRlbVsiX2VsZW1lbnQiXSA9ICJQUkUiDQogICAgICAgIHVzYWdlSXRlbVsiX3RleHQiXSAgICA9IGl0ZW1bIl91c2FnZSJdOw0KICAgICAgICBkaXZDb250YWluZXIuYXBwZW5kQ2hpbGQoY3JlYXRlRWxlbWVudCh1c2FnZUl0ZW0pKTsNCiAgICB9DQoNCiAgICB2YXIgaHIgPSBuZXcgT2JqZWN0KCk7DQogICAgaHJbIl9lbGVtZW50Il0gPSAiSFIiOw0KICAgIGRpdkNvbnRhaW5lci5hcHBlbmRDaGlsZChjcmVhdGVFbGVtZW50KGhyKSk7DQogIA0KICB9DQoNCiAgY2FsY3VsYXRlV3JhcHBlckhlaWdodCgpOw0KICByZXR1cm4NCn0NCg0KZnVuY3Rpb24gc2F2ZURhdGEyKGVsbSkgew0KICB2YXIgZGl2ICAgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChlbG0pOw0KICB2YXIgaW5wdXRzID0gZGl2LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJJTlBVVCIpOw0KICB2YXIgc2VsZWN0cyA9IGRpdi5nZXRFbGVtZW50c0J5VGFnTmFtZSgiU0VMRUNUIik7DQogIHZhciB2YWx1ZSwgY29uZmlnS2V5Ow0KICB2YXIgZGF0YSA9IG5ldyBPYmplY3QoKTsNCiAgdmFyIHZhbHVlQXJyID0gbmV3IEFycmF5KCk7DQogIHZhciBuZXdEYXRhID0gZmFsc2U7DQogIA0KICBmb3IgKHZhciBpID0gMDsgaSA8IGlucHV0cy5sZW5ndGg7IGkrKykgew0KICAgIGlmIChpbnB1dHNbaV0udHlwZSAhPSAiYnV0dG9uIikgew0KICAgICAgdmFyIG1lbnVUeXBlID0gaW5wdXRzW2ldLmdldEF0dHJpYnV0ZSgiZGF0YS1tZW51dHlwZSIpOw0KICAgICAgDQogICAgICAvL2NvbnNvbGUubG9nKG1lbnVUeXBlKTsNCiAgICAgIHN3aXRjaChtZW51VHlwZSkgew0KICAgICAgICBjYXNlICJzaW5nbGVJbnB1dCI6DQogICAgICAgICAgdmFsdWUgPSBpbnB1dHNbaV0udmFsdWU7DQogICAgICAgICAgaWYgKHZhbHVlID09ICIiIHx8IHZhbHVlID09IHVuZGVmaW5lZCkgew0KICAgICAgICAgICAgZGF0YSA9IG5ldyBPYmplY3QoKTsNCiAgICAgICAgICAgIGRhdGFbImRlbGV0ZSJdID0gaW5wdXRzW2ldLm5hbWUNCiAgICAgICAgICAgIG5ld0RhdGEgPSB0cnVlOw0KICAgICAgICAgIH0gZWxzZSB7DQogICAgICAgICAgICBuZXdEYXRhID0gdHJ1ZTsNCiAgICAgICAgICAgIGRhdGFbaW5wdXRzW2ldLm5hbWVdID0gdmFsdWU7DQogICAgICAgICAgICBjb25zb2xlLmxvZyhkYXRhKTsNCiAgICAgICAgICB9DQogICAgICAgICAgYnJlYWs7DQogICAgICAgIGNhc2UgImlucHV0QXJyYXkiOiANCiAgICAgICAgICB2YWx1ZSA9IGlucHV0c1tpXS52YWx1ZTsNCiAgICAgICAgICBpZiAodmFsdWUgIT0gIiIgJiYgdmFsdWUgIT0gdW5kZWZpbmVkKSB7DQogICAgICAgICAgICBuZXdEYXRhID0gdHJ1ZTsNCiAgICAgICAgICAgIHZhbHVlQXJyLnB1c2godmFsdWUpDQogICAgICAgICAgICBkYXRhW2lucHV0c1tpXS5uYW1lXSA9IHZhbHVlQXJyOw0KICAgICAgICAgICAgY29uZmlnS2V5ID0gaW5wdXRzW2ldLm5hbWU7DQogICAgICAgICAgfSANCiAgICAgICAgICANCiAgICAgICAgICBicmVhazsNCg0KICAgICAgICBjYXNlICJjaGVja2JveCI6DQogICAgICAgICAgdmFsdWUgPSBpbnB1dHNbaV0uY2hlY2tlZA0KICAgICAgICAgIGRhdGFbaW5wdXRzW2ldLm5hbWVdID0gdmFsdWU7DQogICAgICB9DQogICAgICANCiAgICB9DQogICAgDQogIH0NCg0KDQogIC8vIERlbGV0ZSBjb25maWcga2V5DQogIGlmICh2YWx1ZUFyci5sZW5ndGggPT0gMCAmJiBuZXdEYXRhID09IGZhbHNlKSB7DQogICAgbmV3RGF0YSA9IHRydWU7DQogICAgZGF0YSA9IG5ldyBPYmplY3QoKTsNCiAgICBkYXRhWyJkZWxldGUiXSA9IGNvbmZpZ0tleTsNCiAgfSANCg0KDQogIGZvciAodmFyIGkgPSAwOyBpIDwgc2VsZWN0cy5sZW5ndGg7IGkrKykgew0KICAgIHZhciB2YWx1ZSA9IHNlbGVjdHNbaV0ub3B0aW9uc1tzZWxlY3RzW2ldLnNlbGVjdGVkSW5kZXhdLnZhbHVlOw0KICAgIHN3aXRjaChpc05hTih2YWx1ZSkpIHsNCiAgICAgIGNhc2UgZmFsc2U6IHZhbHVlID0gcGFyc2VJbnQodmFsdWUpOyBicmVhazsNCiAgICB9DQoNCiAgICBkYXRhW3NlbGVjdHNbaV0ubmFtZV0gPSB2YWx1ZTsNCiAgICBuZXdEYXRhID0gdHJ1ZTsNCiAgfQ0KDQogIC8vY29uc29sZS5sb2coZGF0YSwgbmV3RGF0YSk7DQoNCiAgaWYgKG5ld0RhdGEgPT0gdHJ1ZSkgew0KICAgIGRhdGFbImNtZCJdID0gInNhdmVDb25maWciOw0KICAgIGlmICghZGF0YS5oYXNPd25Qcm9wZXJ0eSgnZmlsdGVyJykpIHsNCiAgICAgIGRhdGFbImZpbHRlciJdID0gY29uZmlnWyJmaWx0ZXIiXQ0KICAgIH0NCiAgICB2YXIgc2V0dGluZ3MgPSBuZXcgT2JqZWN0KCk7DQogICAgc2V0dGluZ3NbImNtZCJdID0gZGF0YVsiY21kIl07DQogICAgc2V0dGluZ3NbInNldHRpbmdzIl0gPSBkYXRhOw0KICAgIGNvbnNvbGUubG9nKHNldHRpbmdzKTsNCiAgICB4VGVWZShzZXR0aW5ncyk7DQogIH0NCn0NCg==" - webUI["html/js/users.js"] = "ZnVuY3Rpb24gb3BlblVzZXJzKGVsbSkgew0KICBjb2xvbW5Tb3J0ID0gMDsNCg0KICB2YXIgbmV3RGl2ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNldHRpbmdzIik7DQogIA0KICB2YXIgbmV3RW50cnkgPSBuZXcgT2JqZWN0KCk7DQogIG5ld0VudHJ5WyJfZWxlbWVudCJdICA9ICJIUiI7DQogIG5ld0Rpdi5hcHBlbmRDaGlsZChjcmVhdGVFbGVtZW50KG5ld0VudHJ5KSk7DQoNCiAgdmFyIG5ld0VudHJ5ID0gbmV3IE9iamVjdCgpOw0KICBuZXdFbnRyeVsiX2VsZW1lbnQiXSAgPSAiSU5QVVQiOw0KICBuZXdFbnRyeVsidHlwZSJdID0gImJ1dHRvbiI7DQogIG5ld0VudHJ5WyJjbGFzcyJdID0gImJ1dHRvbiI7DQogIG5ld0VudHJ5WyJ2YWx1ZSJdID0gIk5ldyI7DQogIG5ld0VudHJ5WyJvbmNsaWNrIl0gPSAidXNlckRldGFpbCgwKSI7DQogIG5ld0Rpdi5hcHBlbmRDaGlsZChjcmVhdGVFbGVtZW50KG5ld0VudHJ5KSk7DQoNCiAgdmFyIGRpdiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzZXR0aW5ncyIpOw0KDQogICAvLyBCdWlsZCB0YWJsZQ0KICB2YXIgbmV3VGFibGUgPSBuZXcgT2JqZWN0KCk7DQogIG5ld1RhYmxlWyJfZWxlbWVudCJdICA9ICJUQUJMRSI7DQogIG5ld1RhYmxlWyJpZCJdICAgICAgICA9ICJpZF9tYXBwaW5nIjsNCiAgbmV3VGFibGVbImNsYXNzIl0gICAgID0gInRhYmxlLW1hcHBpbmciOw0KICBkaXYuYXBwZW5kQ2hpbGQoY3JlYXRlRWxlbWVudChuZXdUYWJsZSkpOw0KDQogIHNldFRpbWVvdXQoZnVuY3Rpb24oKXsgDQogICAgY3JlYXRlVXNlcnNUYWJsZSgpOyANCiAgfSwgMTApOw0KfQ0KDQpmdW5jdGlvbiBjcmVhdGVVc2Vyc1RhYmxlKCkgew0KICB2YXIgdGFibGUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiaWRfbWFwcGluZyIpOw0KICB0YWJsZS5pbm5lckhUTUwgPSAiIjsNCiAgdmFyIG5ld1RSID0gbmV3IE9iamVjdCgpOw0KICBuZXdUUlsiX2VsZW1lbnQiXSA9ICJUUiI7DQogIG5ld1RSWyJjbGFzcyJdICAgID0gInRhYmxlLW1hcHBpbmctaGVhZGVyIjsNCiAgdGFibGUuYXBwZW5kQ2hpbGQoY3JlYXRlRWxlbWVudChuZXdUUikpOw0KDQogIHZhciB0ciA9IHRhYmxlLmxhc3RDaGlsZDsNCiAgdmFyIHRySGVhZGxpbmVzID0gbmV3IEFycmF5KCJVc2VybmFtZSIsICJQYXNzd29yZCIsICJXRUIiLCAiUE1TIiwgIk0zVSIsICJYTUwiLCAiQVBJIikNCg0KICBmb3IgKHZhciBpID0gMDsgaSA8IHRySGVhZGxpbmVzLmxlbmd0aDsgaSsrKSB7DQogICAgdmFyIG5ld1REID0gbmV3IE9iamVjdCgpOw0KICAgIG5ld1REWyJfZWxlbWVudCJdID0gIlREIjsNCiAgICBuZXdURFsiX3RleHQiXSAgICA9IHRySGVhZGxpbmVzW2ldOw0KICAgIHRyLmFwcGVuZENoaWxkKGNyZWF0ZUVsZW1lbnQobmV3VEQpKTsNCiAgfQ0KDQoNCiAgLy8gU29ydCB1c2Vycw0KICB2YXIgdXNlcklkcyA9IGdldE9iaktleXModXNlcnMpOw0KDQogIHZhciB1c2VyT2JqID0gbmV3IE9iamVjdCgpOw0KDQogIGZvciAodmFyIGkgPSAwOyBpIDwgdXNlcklkcy5sZW5ndGg7IGkrKykgew0KICAgIHZhciB1c2VybmFtZSA9IHVzZXJzW3VzZXJJZHNbaV1dWyJkYXRhIl1bInVzZXJuYW1lIl07DQogICAgdXNlck9ialt1c2VybmFtZV0gPSB1c2VySWRzW2ldOw0KICB9DQoNCiAgdmFyIGFsbFVzZXJzID0gZ2V0T2JqS2V5cyh1c2VyT2JqKTsNCiAgYWxsVXNlcnMuc29ydCgpOw0KICAvLyAtLQ0KDQogIGZvciAodmFyIGkgPSAwOyBpIDwgYWxsVXNlcnMubGVuZ3RoOyBpKyspIHsNCiAgICB2YXIgdGFibGUgICAgID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImlkX21hcHBpbmciKTsNCiAgICB2YXIgdXNlcklEICAgID0gdXNlck9ialthbGxVc2Vyc1tpXV07DQogICAgdmFyIHVzZXJuYW1lICA9IGFsbFVzZXJzW2ldOw0KICAgIHZhciBpdGVtICAgICAgPSB1c2Vyc1t1c2VySURdWyJkYXRhIl07DQoNCiAgICAvLyBDcmVhdGUgVFINCiAgICB2YXIgbmV3VFIgPSBuZXcgT2JqZWN0KCk7DQogICAgbmV3VFJbIl9lbGVtZW50Il0gICAgICAgPSAiVFIiOw0KICAgIG5ld1RSWyJjbGFzcyJdICAgICAgICAgID0gIiI7DQogICAgbmV3VFJbImlkIl0gICAgICAgICAgICAgPSB1c2VySUQ7DQogICAgbmV3VFJbIm9uY2xpY2siXSAgICAgICAgPSAnamF2YXNjcmlwdDogdXNlckRldGFpbCgiJyArIHVzZXJJRCArICciKTsnOw0KICAgIHRhYmxlLmFwcGVuZENoaWxkKGNyZWF0ZUVsZW1lbnQobmV3VFIpKTsNCg0KICAgIHZhciB0ciA9IHRhYmxlLmxhc3RDaGlsZDsNCg0KICAgIC8vIENyZWF0ZSB1c2VybmFtZSBURA0KICAgIHZhciBuZXdURCA9IG5ldyBPYmplY3QoKTsNCiAgICBuZXdURFsiX2VsZW1lbnQiXSA9ICJQIjsNCiAgICBuZXdURFsiX3RleHQiXSAgICA9IHVzZXJuYW1lOw0KICAgIGNyZWF0ZU5ld1REKG5ld1RELCB0cik7DQoNCiAgICAvLyBDcmVhdGUgcGFzc3dvcmQgVEQNCiAgICB2YXIgbmV3VEQgPSBuZXcgT2JqZWN0KCk7DQogICAgbmV3VERbIl9lbGVtZW50Il0gPSAiUCI7DQogICAgbmV3VERbIl90ZXh0Il0gICAgPSAiLi4uLi4iOw0KICAgIGNyZWF0ZU5ld1REKG5ld1RELCB0cik7DQoNCiAgICAvLyBDcmVhdGUgd2ViIGFjY2Vzcw0KICAgIHZhciBuZXdURCA9IG5ldyBPYmplY3QoKTsNCiAgICBuZXdURFsiX2VsZW1lbnQiXSA9ICJQIjsNCiAgICBzd2l0Y2goaXRlbVsiYXV0aGVudGljYXRpb24ud2ViIl0pew0KICAgICAgY2FzZSB0cnVlOiBuZXdURFsiX3RleHQiXSAgICA9ICLinJMiOyBicmVhazsNCiAgICAgIGRlZmF1bHQ6ICAgbmV3VERbIl90ZXh0Il0gICAgPSAiLSI7IGJyZWFrOw0KICAgIH0NCiAgICBjcmVhdGVOZXdURChuZXdURCwgdHIpOw0KDQogICAgLy8gQ3JlYXRlIFBNUyBhY2Nlc3MNCiAgICB2YXIgbmV3VEQgPSBuZXcgT2JqZWN0KCk7DQogICAgbmV3VERbIl9lbGVtZW50Il0gPSAiUCI7DQogICAgc3dpdGNoKGl0ZW1bImF1dGhlbnRpY2F0aW9uLnBtcyJdKXsNCiAgICAgIGNhc2UgdHJ1ZTogbmV3VERbIl90ZXh0Il0gICAgPSAi4pyTIjsgYnJlYWs7DQogICAgICBkZWZhdWx0OiAgIG5ld1REWyJfdGV4dCJdICAgID0gIi0iOyBicmVhazsNCiAgICB9DQogICAgY3JlYXRlTmV3VEQobmV3VEQsIHRyKTsNCg0KICAgIC8vIENyZWF0ZSBNM1UgYWNjZXNzDQogICAgdmFyIG5ld1REID0gbmV3IE9iamVjdCgpOw0KICAgIG5ld1REWyJfZWxlbWVudCJdID0gIlAiOw0KICAgIHN3aXRjaChpdGVtWyJhdXRoZW50aWNhdGlvbi5tM3UiXSl7DQogICAgICBjYXNlIHRydWU6IG5ld1REWyJfdGV4dCJdICAgID0gIuKckyI7IGJyZWFrOw0KICAgICAgZGVmYXVsdDogICBuZXdURFsiX3RleHQiXSAgICA9ICItIjsgYnJlYWs7DQogICAgfQ0KICAgIGNyZWF0ZU5ld1REKG5ld1RELCB0cik7DQoNCiAgICAvLyBDcmVhdGUgWE1MVFYgYWNjZXNzDQogICAgdmFyIG5ld1REID0gbmV3IE9iamVjdCgpOw0KICAgIG5ld1REWyJfZWxlbWVudCJdID0gIlAiOw0KICAgIHN3aXRjaChpdGVtWyJhdXRoZW50aWNhdGlvbi54bWwiXSl7DQogICAgICBjYXNlIHRydWU6IG5ld1REWyJfdGV4dCJdICAgID0gIuKckyI7IGJyZWFrOw0KICAgICAgZGVmYXVsdDogICBuZXdURFsiX3RleHQiXSAgICA9ICItIjsgYnJlYWs7DQogICAgfQ0KICAgIGNyZWF0ZU5ld1REKG5ld1RELCB0cik7DQoNCiAgICAvLyBDcmVhdGUgQVBJIGFjY2Vzcw0KICAgIHZhciBuZXdURCA9IG5ldyBPYmplY3QoKTsNCiAgICBuZXdURFsiX2VsZW1lbnQiXSA9ICJQIjsNCg0KICAgIHN3aXRjaChpdGVtWyJhdXRoZW50aWNhdGlvbi5hcGkiXSl7DQogICAgICBjYXNlIHRydWU6IG5ld1REWyJfdGV4dCJdICAgID0gIuKckyI7IGJyZWFrOw0KICAgICAgZGVmYXVsdDogICBuZXdURFsiX3RleHQiXSAgICA9ICItIjsgYnJlYWs7DQogICAgfQ0KICAgIGNyZWF0ZU5ld1REKG5ld1RELCB0cik7DQoNCiAgfQ0KDQogIC8vIHVzYWdlIEluZm8gIA0KICB2YXIgZGl2ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNldHRpbmdzIik7DQogIHN3aXRjaChtZW51W2FjdGl2ZU1lbnUuaWRdLmhhc093blByb3BlcnR5KCJfdXNhZ2UiKSkgew0KICAgIGNhc2UgdHJ1ZTogDQogICAgICB2YXIgdXNhZ2VJdGVtID0gbmV3IE9iamVjdCgpOw0KICAgICAgdXNhZ2VJdGVtWyJfZWxlbWVudCJdID0gIlBSRSINCiAgICAgIHVzYWdlSXRlbVsiX3RleHQiXSAgICA9IG1lbnVbYWN0aXZlTWVudS5pZF1bIl91c2FnZSJdOw0KDQogICAgICB2YXIgbmV3SFIgPSBuZXcgT2JqZWN0KCk7DQogICAgICBuZXdIUlsiX2VsZW1lbnQiXSA9ICJIUiINCiAgICAgIGRpdi5hcHBlbmRDaGlsZChjcmVhdGVFbGVtZW50KG5ld0hSKSk7DQogICAgICBkaXYuYXBwZW5kQ2hpbGQoY3JlYXRlRWxlbWVudCh1c2FnZUl0ZW0pKTsNCiAgfQ0KDQogIHNvcnRUYWJsZSgwKTsNCn0NCg0KZnVuY3Rpb24gdXNlckRldGFpbCh1c2VySUQpIHsNCiAgc2hvd1BvcFVwRWxlbWVudCgndXNlci1kZXRhaWwnKTsNCiAgc2V0VGltZW91dChmdW5jdGlvbigpeyANCiAgICBzaG93RWxlbWVudCgicG9wdXAiLCB0cnVlKTsNCiAgfSwgMTApOw0KICB2YXIgZGVmYXVsdFVzZXI7DQoNCiAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNhdmVVc2VyRGV0YWlsIikuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IHNhdmVVc2VyRGV0YWlsKCInICsgdXNlcklEICsgJyIsIGZhbHNlKScpOw0KICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZGVsZXRlVXNlckRldGFpbCIpLnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBzYXZlVXNlckRldGFpbCgiJyArIHVzZXJJRCArICciLCB0cnVlKScpOw0KDQogIHZhciBkYXRhID0gbmV3IE9iamVjdCgpOw0KICANCiAgc3dpdGNoKHVzZXJJRCkgew0KICAgIGNhc2UgMDogICAvLyBOZXcgVXNlcg0KICAgICAgZGF0YVsidXNlcm5hbWUiXSA9ICIiOw0KICAgICAgZGF0YVsiYXV0aGVudGljYXRpb24ud2ViIl0gPSBmYWxzZTsNCiAgICAgIGRhdGFbImF1dGhlbnRpY2F0aW9uLnBtcyJdID0gdHJ1ZTsNCiAgICAgIGRhdGFbImF1dGhlbnRpY2F0aW9uLnhtbCJdID0gdHJ1ZTsNCiAgICAgIGRhdGFbImF1dGhlbnRpY2F0aW9uLm0zdSJdID0gZmFsc2U7DQogICAgICBkYXRhWyJhdXRoZW50aWNhdGlvbi5hcGkiXSA9IGZhbHNlOw0KICAgICAgZGF0YVsiZGVmYXVsdFVzZXIiXSAgICAgICAgPSBmYWxzZTsNCiAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKXsgDQogICAgICAgIHNob3dFbGVtZW50KCJkZWxldGVVc2VyRGV0YWlsIiwgZmFsc2UpDQogICAgICB9LCAxKTsNCg0KICAgICAgYnJlYWs7IA0KICAgIA0KICAgIGRlZmF1bHQ6IA0KICAgICAgZGF0YSA9IHVzZXJzW3VzZXJJRF1bImRhdGEiXTsgDQogICAgICBzaG93RWxlbWVudCgiZGVsZXRlVXNlckRldGFpbCIsIHRydWUpICAgDQogICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZGVsZXRlVXNlckRldGFpbCIpLmNsYXNzTmFtZSA9ICJkZWxldGUiOw0KICAgDQogICAgICBicmVhaw0KICB9DQogIA0KDQogIHZhciB1c2VybmFtZSA9IGRhdGFbInVzZXJuYW1lIl07DQogIGRhdGFbInBhc3N3b3JkIl0gPSAiIjsNCiAgZGF0YVsiY29uZmlybSJdID0gIiI7DQoNCiAgdmFyIGtleXMgPSBnZXRPYmpLZXlzKGRhdGEpOw0KICBkZWZhdWx0VXNlciA9IGRhdGFbImRlZmF1bHRVc2VyIl07DQogIGlmIChkYXRhLmhhc093blByb3BlcnR5KCJkZWZhdWx0VXNlciIpKSB7DQogICAgZGVmYXVsdFVzZXIgPSBKU09OLnBhcnNlKGRhdGFbImRlZmF1bHRVc2VyIl0pOw0KICB9DQoNCiAgZm9yICh2YXIgaSA9IDA7IGkgPCBrZXlzLmxlbmd0aDsgaSsrKSB7DQoNCiAgICBpZihkb2N1bWVudC5nZXRFbGVtZW50QnlJZChrZXlzW2ldKSl7DQogICAgICB2YXIgdGQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChrZXlzW2ldKQ0KICAgIH0gZWxzZSB7DQogICAgICB2YXIgdGQgPSB1bmRlZmluZWQ7DQogICAgfQ0KDQogICAgdmFyIG5ld0l0ZW0gPSBuZXcgT2JqZWN0KCk7DQoNCiAgICBuZXdJdGVtWyJfZWxlbWVudCJdID0gIklOUFVUIjsNCiAgICANCiAgICBuZXdJdGVtWyJ2YWx1ZSJdICAgID0gZGF0YVtrZXlzW2ldXTsNCiAgICBuZXdJdGVtWyJuYW1lIl0gICAgID0ga2V5c1tpXTsNCg0KDQoNCg0KDQogICAgc3dpdGNoKGtleXNbaV0uaW5kZXhPZigiYXV0aGVudGljYXRpb24iKSkgew0KICAgICAgY2FzZSAtMTogDQogICAgICAgIGlmIChrZXlzW2ldID09ICJwYXNzd29yZCIgfHwga2V5c1tpXSA9PSAiY29uZmlybSIpIHsNCiAgICAgICAgICBuZXdJdGVtWyJ0eXBlIl0gICAgID0gInBhc3N3b3JkIjsNCiAgICAgICAgfSBlbHNlIHsNCiAgICAgICAgICBuZXdJdGVtWyJ0eXBlIl0gICAgID0gInRleHQiOw0KICAgICAgICB9DQogICAgICAgIGJyZWFrOw0KDQogICAgICBkZWZhdWx0OiANCiAgICAgICAgbmV3SXRlbVsidHlwZSJdICAgICA9ICJjaGVja2JveCI7DQogICAgICAgIA0KICAgICAgICBpZiAoa2V5c1tpXSA9PSAiYXV0aGVudGljYXRpb24ud2ViIiAmJiBkZWZhdWx0VXNlciA9PSB0cnVlKSB7DQogICAgICAgICAgbmV3SXRlbVsib25jbGljayJdID0gInJldHVybiBmYWxzZSI7IA0KICAgICAgICB9DQogICAgICAgIA0KICAgICAgICBpZiAoZGF0YVtrZXlzW2ldXSA9PSB0cnVlKSB7ICAgICAgICAgIA0KICAgICAgICAgIG5ld0l0ZW1bImNoZWNrZWQiXSAgPSBkYXRhW2tleXNbaV1dOyAgDQogICAgICAgIH0NCiAgICAgICAgDQogICAgICAgIGJyZWFrOw0KICAgIH0NCg0KICAgIHN3aXRjaChrZXlzW2ldKSB7DQogICAgICBjYXNlICJkZWZhdWx0VXNlciI6IA0KICAgICAgICAvL2lmIChkYXRhW2tleXNbaV1dID09IHRydWUpIHsNCiAgICAgICAgbmV3SXRlbVsidHlwZSJdICAgICA9ICJoaWRkZW4iOw0KICAgICAgICAvL30NCiAgICB9DQoNCg0KICAgIGlmICh0ZCAhPSB1bmRlZmluZWQpIHsNCiAgICAgIHRkLmlubmVySFRNTCA9ICIiOw0KICAgICAgdmFyIGVsZW1lbnQgPSBjcmVhdGVOZXdFbGVtZW50KG5ld0l0ZW0pDQogICAgICAvL2NvbnNvbGUubG9nKGVsZW1lbnQpOw0KICAgICAgdGQuYXBwZW5kQ2hpbGQoZWxlbWVudCk7DQogICAgfQ0KDQoNCiAgfQ0KDQoNCiAgaWYgKGRlZmF1bHRVc2VyID09IHRydWUpIHsNCiAgICBzaG93RWxlbWVudCgiZGVsZXRlVXNlckRldGFpbCIsIGZhbHNlKQ0KICB9IGVsc2Ugew0KICAgIHNob3dFbGVtZW50KCJkZWxldGVVc2VyRGV0YWlsIiwgdHJ1ZSkNCiAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZGVsZXRlVXNlckRldGFpbCIpLmNsYXNzTmFtZSA9ICJkZWxldGUiOw0KICB9DQoNCn0NCg0KZnVuY3Rpb24gc2F2ZVVzZXJEZXRhaWwodXNlcklELCBkZWxldGVVc2VyKSB7DQoNCiAgdmFyIGlucHV0cyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ1c2VyLWRldGFpbC10YWJsZSIpLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJJTlBVVCIpOw0KDQogIHZhciBuZXdVc2VyRGF0YSA9IG5ldyBPYmplY3QoKTsNCiAgZm9yICh2YXIgaSA9IDA7IGkgPCBpbnB1dHMubGVuZ3RoOyBpKyspIHsNCiAgICBzd2l0Y2goaW5wdXRzW2ldLnR5cGUpIHsNCiAgICAgIGNhc2UgImNoZWNrYm94IjogIG5ld1VzZXJEYXRhW2lucHV0c1tpXS5uYW1lXSA9IGlucHV0c1tpXS5jaGVja2VkOyBicmVhazsNCiAgICAgIGRlZmF1bHQ6ICAgICAgICAgIG5ld1VzZXJEYXRhW2lucHV0c1tpXS5uYW1lXSA9IGlucHV0c1tpXS52YWx1ZTsgYnJlYWs7DQogICAgfQ0KICAgIA0KICAgIGlmIChpbnB1dHNbInVzZXJuYW1lIl0udmFsdWUubGVuZ3RoID09IDApIHsNCiAgICAgIGlucHV0c1sidXNlcm5hbWUiXS5zdHlsZS5ib3JkZXIgPSAic29saWQgMXB4IHJlZCI7DQogICAgICByZXR1cm47DQogICAgfQ0KDQogICAgc3dpdGNoKHVzZXJJRCkgew0KICAgICAgY2FzZSAiMCI6IA0KICAgICAgICBpZiAoaW5wdXRzWyJwYXNzd29yZCJdLnZhbHVlLmxlbmd0aCA9PSAwKSB7DQogICAgICAgICAgY29uc29sZS5sb2coaW5wdXRzWyJwYXNzd29yZCJdLnZhbHVlLmxlbmd0aCk7DQogICAgICAgICAgaW5wdXRzWyJwYXNzd29yZCJdLnN0eWxlLmJvcmRlciA9ICJzb2xpZCAxcHggcmVkIjsNCiAgICAgICAgICByZXR1cm4NCiAgICAgICAgfQ0KICAgICAgICBicmVhazsNCiAgICB9DQoNCiAgICBpZiAoaW5wdXRzWyJwYXNzd29yZCJdLnZhbHVlLmxlbmd0aCA+IDApIHsNCiAgICAgIGlmIChpbnB1dHNbInBhc3N3b3JkIl0udmFsdWUgIT0gaW5wdXRzWyJjb25maXJtIl0udmFsdWUpIHsNCiAgICAgICAgaW5wdXRzWyJwYXNzd29yZCJdLnN0eWxlLmJvcmRlciA9ICJzb2xpZCAxcHggcmVkIjsNCiAgICAgICAgaW5wdXRzWyJjb25maXJtIl0uc3R5bGUuYm9yZGVyID0gInNvbGlkIDFweCByZWQiOw0KICAgICAgICByZXR1cm47DQogICAgICB9DQogICAgfQ0KICAgIA0KICB9DQoNCiAgdmFyIGRhdGEgPSBuZXcgT2JqZWN0KCk7DQogIA0KICBzd2l0Y2godXNlcklEKSB7DQogICAgY2FzZSAiMCI6DQogICAgICAvL2RhdGEgPSBuZXdVc2VyRGF0YQ0KICAgICAgZGF0YVsidXNlckRhdGEiXSAgPSBuZXdVc2VyRGF0YQ0KICAgICAgZGF0YVsiY21kIl0gICAgICAgPSAic2F2ZU5ld1VzZXIiOyBicmVhazsNCiAgICANCiAgICBkZWZhdWx0OiAgDQogICAgICB2YXIgdGhpc1VzZXIgICAgICA9IG5ldyBPYmplY3QoKTsNCiAgICAgIA0KICAgICAgaWYgKGRlbGV0ZVVzZXIgPT0gdHJ1ZSkgew0KICAgICAgICBpZiAoY29uZmlybSgnRGVsZXRlIHRoZSBzZWxlY3RlZCB1c2VyPycpKSB7DQogICAgICAgICAgZGF0YVsiZGVsZXRlVXNlciJdID0gdHJ1ZTsNCiAgICAgICAgfSBlbHNlIHsNCiAgICAgICAgICBzaG93RWxlbWVudCgicG9wdXAiLCBmYWxzZSk7DQogICAgICAgICAgcmV0dXJuDQogICAgICAgIH0NCiAgICAgIH0NCiAgICAgIA0KICAgICAgdGhpc1VzZXJbdXNlcklEXSAgPSBuZXdVc2VyRGF0YTsNCg0KICAgICAgZGF0YVsidXNlckRhdGEiXSA9IHRoaXNVc2VyOw0KICAgICAgZGF0YVsiY21kIl0gPSAic2F2ZVVzZXJEYXRhIjsgYnJlYWs7DQogIH0NCiAgDQogIHhUZVZlKGRhdGEpOw0KICAvL2NyZWF0ZVVzZXJzVGFibGUoKQ0KICBzaG93RWxlbWVudCgicG9wdXAiLCBmYWxzZSk7DQp9DQoNCg0K" webUI["html/img/filter.png"] = "iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAAAXNSR0IArs4c6QAAAAlwSFlzAAAsSwAALEsBpT2WqQAABCRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IlhNUCBDb3JlIDUuNC4wIj4KICAgPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIgogICAgICAgICAgICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgICAgICAgICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyI+CiAgICAgICAgIDx0aWZmOlJlc29sdXRpb25Vbml0PjI8L3RpZmY6UmVzb2x1dGlvblVuaXQ+CiAgICAgICAgIDx0aWZmOkNvbXByZXNzaW9uPjU8L3RpZmY6Q29tcHJlc3Npb24+CiAgICAgICAgIDx0aWZmOlhSZXNvbHV0aW9uPjI4ODwvdGlmZjpYUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6T3JpZW50YXRpb24+MTwvdGlmZjpPcmllbnRhdGlvbj4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+Mjg4PC90aWZmOllSZXNvbHV0aW9uPgogICAgICAgICA8ZXhpZjpQaXhlbFhEaW1lbnNpb24+NTA8L2V4aWY6UGl4ZWxYRGltZW5zaW9uPgogICAgICAgICA8ZXhpZjpDb2xvclNwYWNlPjE8L2V4aWY6Q29sb3JTcGFjZT4KICAgICAgICAgPGV4aWY6UGl4ZWxZRGltZW5zaW9uPjUwPC9leGlmOlBpeGVsWURpbWVuc2lvbj4KICAgICAgICAgPGRjOnN1YmplY3Q+CiAgICAgICAgICAgIDxyZGY6QmFnLz4KICAgICAgICAgPC9kYzpzdWJqZWN0PgogICAgICAgICA8eG1wOk1vZGlmeURhdGU+MjAxOC0wNy0yOFQxOTowNzo2OTwveG1wOk1vZGlmeURhdGU+CiAgICAgICAgIDx4bXA6Q3JlYXRvclRvb2w+UGl4ZWxtYXRvciAzLjM8L3htcDpDcmVhdG9yVG9vbD4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgIDwvcmRmOlJERj4KPC94OnhtcG1ldGE+Cs038OQAAAOISURBVGgF5ZpLSBVRGMfvvfmqCKKiKCqKtE3SQ8haJJm1ctPCZYHrFhXtohcUBLVsU1BRBJKLXpsSKs1aCL1oUUhvMgIloodZKmLZ72+OzNVx7jzOXGfqg/89Z875zv/7f35n7px7vanUP2JptzyGhoYKmK8GW0EZmA/mgW7wHrwDN0BTOp0epPVtxBBnLdgIVoE5YBboBR2gDTTA/5DWn0FeDPaBz8CLdeF0EBR5jYRvKbgABoAXa8Opwit/CudK8NoLs4PPM8ZyBsNnB/jpsD7X0C8cjgDXnaQkqkEPCGMSuGWivxxzx8OQj6xtpHWuPhPloHfEMWzTD0HN2GQY2xuW2Lb+/Fh+VaIQPLE5meh+gmSxFYz+BjBogtjGscfiH26Z2GmbNNltVQAIpwDdP6ZNO2iRYqTpZGhfgWUaiMC2w1kCzkbALcqLvDVvUyK6MW9HFES0b8BvsFwXEZi4F+iBtykCcjtlqf0igr52VJ1eqiIgzzdlrRIZfWfJd3SD8ZbqHvkB4XSDpJNB9V0VcX/cT4Ys/zEzSuSj/3WxW9GpRD7ETpZ/QcOJ6LyfdHugitxNehbob9G7lo4PXWBmQhPqQ/fsDOeUfjqNCU1Csi+TQ5+2luzc3yaRr6elevQZwhZr4bomYam0U41yabYqov5hvSTMjlp6RyuiAarSTLPZmox5246+lVREx/isiuh6NxhUJwF2yEpCWu1bK8WEsjyRgCSa0XrVrjNra2mC7TWD5ilYAuJoA4jSlnppF5dVEU3g0ENTD4b3nsZiZsfGJuGqj8qY+CINGqP2GLZCJ+HjtpblxAJ9k3cPrLfGJrnVUaSCarxw0jFua1lOLNBerANx+byya6IkLM2uLZWpAl6/Mcc1EjvjKtLrJNLqI5HnjfQ+bsVeteb0g2y/t7hGvd7CNjenOL8OkJ40KtOdTF+Cl/nV6Mkf4gxocI9vZPYLLKs9iQrqRIACcM2IXGeSboYrg+rztY5ARaDJWUeo0W+sXudLTFhnApaAW6FkZy/+yuXasLoCrSfwVHAnW0+gK93YawKJMLUIAdNAKwhqnSxcYUpPKB6EBE2mg7VR///EX24jybTQerXnOC70FyVP3gjTPXPTQyaP8NFPNeJrCNTPP667JKOq6VNo/A2hes5ccUjmEmPmDoD5+FMgWCcA+3FG57QJP//kQ1PgGBIOToEDgUn+t4V/AJeGknwARIKLAAAAAElFTkSuQmCC" - webUI["html/js/configuaration.js"] = "dmFyIGNvbmZpZ01lbnUgPSBuZXcgT2JqZWN0KCk7DQp2YXIgd2l6YXJkID0gbmV3IEFycmF5KCJrZXkiLCAidHVuZXIiLCAiZXBnU291cmNlIiwgIm0zdSIsICJjb21wbGV0ZSIpOw0KdmFyIGFjdGl2ZVdpemFyZDsNCnZhciBkdnJJUA0KDQp2YXIgY29uZmlnTWVudV90dW5lciA9IG5ldyBPYmplY3QoKTsNCmNvbmZpZ01lbnVfdHVuZXJbIl9lbGVtZW50Il0gICAgICA9ICJTRUxFQ1QiOw0KY29uZmlnTWVudV90dW5lclsiX21lbnVUeXBlIl0gICAgID0gInNpbmdsZUlucHV0IjsNCmNvbmZpZ01lbnVfdHVuZXJbIl9jb25maWdLZXkiXSAgICA9ICJ0dW5lciI7DQpjb25maWdNZW51X3R1bmVyWyJfbGFiZWwiXSAgICAgICAgPSAiQXZhaWxhYmxlIHR1bmVycyI7DQpjb25maWdNZW51X3R1bmVyWyJuYW1lIl0gICAgICAgICAgPSAidHVuZXIiOw0KY29uZmlnTWVudV90dW5lclsiaWQiXSAgICAgICAgICAgID0gIlR1bmVyIjsNCmNvbmZpZ01lbnVfdHVuZXJbInBsYWNlaG9sZGVyIl0gICA9ICJUdW5lciI7DQpjb25maWdNZW51X3R1bmVyWyJfdXNhZ2UiXSAgICAgICAgPSAiVGhpcyBzZXR0aW5nIGlzIG9ubHkgdXNlZCBieSBQbGV4IGFuZCBFbWJ5Ljxicj5UaGUgbnVtYmVyIG9mIGNvbmN1cnJlbnQgc3RyZWFtcyBhbGxvd2VkIGJ5IHRoZSBJUFRWIHByb3ZpZGVyLiINCg0KDQp2YXIgb3B0aW9uVmFsdWVzID0gbmV3IEFycmF5KCk7DQpmb3IgKHZhciBpID0gMTsgaSA8PSAxMDA7IGkrKykgew0KICBvcHRpb25WYWx1ZXMucHVzaChpKQ0KfQ0KY29uZmlnTWVudV90dW5lclsiX29wdGlvblZhbHVlcyJdID0gb3B0aW9uVmFsdWVzOw0KDQp2YXIgY29uZmlnTWVudV9lcGcgPSBuZXcgT2JqZWN0KCk7DQpjb25maWdNZW51X2VwZ1siX2VsZW1lbnQiXSAgICAgID0gIlNFTEVDVCI7DQpjb25maWdNZW51X2VwZ1siX21lbnVUeXBlIl0gICAgID0gInNpbmdsZUlucHV0IjsNCmNvbmZpZ01lbnVfZXBnWyJfY29uZmlnS2V5Il0gICAgPSAiZXBnU291cmNlIjsNCmNvbmZpZ01lbnVfZXBnWyJfbGFiZWwiXSAgICAgICAgPSAiU2VsZWN0aW9uIG9mIHRoZSBFUEcgc291cmNlIjsNCmNvbmZpZ01lbnVfZXBnWyJuYW1lIl0gICAgICAgICAgPSAiZXBnU291cmNlIjsNCmNvbmZpZ01lbnVfZXBnWyJpZCJdICAgICAgICAgICAgPSAiRVBHIHNvdXJjZSI7DQpjb25maWdNZW51X2VwZ1sicGxhY2Vob2xkZXIiXSAgID0gIkVQRyBzb3VyY2UiOw0KY29uZmlnTWVudV9lcGdbIl9vcHRpb25WYWx1ZXMiXSA9IG5ldyBBcnJheSgiUE1TIiwgIlhFUEciKTsNCmNvbmZpZ01lbnVfZXBnWyJfdXNhZ2UiXSAgICAgICAgPSAiUE1TOiAgIFVzZSBFUEcgZGF0YSBmcm9tIFBsZXggb3IgRW1ieTxicj5YRVBHOiAgVXNlIG9mIGV4dGVybmFsIEVQRyBkYXRhIChYTUxUVik8YnI+ICAgICAgIFNldmVyYWwgWE1MVFYgc291cmNlcyBwb3NzaWJsZTxicj4gICAgICAgQWxsb3dzIGVkaXRpbmcgYW5kIG9yZGVyIGNoYW5uZWxzPGJyPiAgICAgICBNM1UgLyBYTUxUViBleHBvcnQgKEhUVFAgbGluayBmb3IgSVBUViBhcHBzKSINCg0KdmFyIGNvbmZpZ01lbnVfbTN1ID0gbmV3IE9iamVjdCgpOw0KY29uZmlnTWVudV9tM3VbIl9lbGVtZW50Il0gICAgICAgID0gIklOUFVUIjsNCmNvbmZpZ01lbnVfbTN1WyJfbWVudVR5cGUiXSAgICAgICA9ICJpbnB1dEFycmF5IjsNCmNvbmZpZ01lbnVfbTN1WyJfY29uZmlnS2V5Il0gICAgICA9ICJmaWxlIjsNCmNvbmZpZ01lbnVfbTN1WyJfbGFiZWwiXSAgICAgICAgICA9ICJNM1UgRmlsZTogbG9jYWwgb3IgcmVtb3RlIjsNCmNvbmZpZ01lbnVfbTN1WyJuYW1lIl0gICAgICAgICAgICA9ICJmaWxlIjsNCmNvbmZpZ01lbnVfbTN1WyJpZCJdICAgICAgICAgICAgICA9ICJtM3UiOw0KY29uZmlnTWVudV9tM3VbInR5cGUiXSAgICAgICAgICAgID0gInRleHQiOw0KY29uZmlnTWVudV9tM3VbInBsYWNlaG9sZGVyIl0gICAgID0gIk0zVSBGaWxlIjsNCmNvbmZpZ01lbnVfbTN1WyJfdXNhZ2UiXSAgICAgICAgICA9ICJSZW1vdGUgcGxheWxpc3Q6IGh0dHA6Ly95b3VyLnByb3ZpZGVyLmNvbS9maWxlLm0zdTxicj5Mb2NhbCAgcGxheWxpc3Q6IC9wYXRoL3RvL2ZpbGUubTN1Ig0KDQoNCmNvbmZpZ01lbnVfbTN1WyJ2YWx1ZSJdICAgICAgICAgICA9ICJodHRwOi8vd2Vic3J2LmxvY2FsOjgwODAva2FiZWwubTN1IjsNCg0KdmFyIGNvbmZpZ01lbnVfY29tcGxldGUgPSBuZXcgT2JqZWN0KCk7DQpjb25maWdNZW51X2NvbXBsZXRlWyJfZWxlbWVudCJdICAgICAgICA9ICJIMiI7DQpjb25maWdNZW51X2NvbXBsZXRlWyJfbWVudVR5cGUiXSAgICAgICA9ICJpbnB1dEFycmF5IjsNCmNvbmZpZ01lbnVfY29tcGxldGVbIl9jb25maWdLZXkiXSAgICAgID0gImZpbGUiOw0KY29uZmlnTWVudV9jb21wbGV0ZVsiX3RleHQiXSAgICAgICAgICAgPSAieFRlVmUgd2FzIHN1Y2Nlc3NmdWxseSBzZXQgdXAiOw0KY29uZmlnTWVudV9jb21wbGV0ZVsibmFtZSJdICAgICAgICAgICAgPSAiY29tcGxldGUiOw0KY29uZmlnTWVudV9jb21wbGV0ZVsiaWQiXSAgICAgICAgICAgICAgPSAiY29tcGxldGUiOw0KY29uZmlnTWVudV9jb21wbGV0ZVsidHlwZSJdICAgICAgICAgICAgPSAidGV4dCI7DQpjb25maWdNZW51X2NvbXBsZXRlWyJjbGFzcyJdICAgICAgICAgICA9ICJjZW50ZXIiOw0KDQpjb25maWdNZW51WyJ0dW5lciJdICAgICA9IGNvbmZpZ01lbnVfdHVuZXI7DQpjb25maWdNZW51WyJlcGdTb3VyY2UiXSA9IGNvbmZpZ01lbnVfZXBnOw0KY29uZmlnTWVudVsibTN1Il0gICAgICAgPSBjb25maWdNZW51X20zdTsNCmNvbmZpZ01lbnVbImNvbXBsZXRlIl0gID0gY29uZmlnTWVudV9jb21wbGV0ZTsNCg0KZnVuY3Rpb24gcmVhZHlGb3JDb25maWd1cmF0aW9uKCkgew0KICB2YXIgZGF0YSA9IG5ldyBPYmplY3QoKTsNCiAgZGF0YVsiY21kIl0gPSAiZ2V0U2VydmVyQ29uZmlnIjsNCiAgeFRlVmUoZGF0YSk7DQogIHNob3dMb2FkaW5nU2NyZWVuKGZhbHNlKTsNCn0NCg0KZnVuY3Rpb24gY3JlYXRlQ29uZmlndXJhdGlvbihlbG0pIHsNCg0KICBhY3RpdmVXaXphcmQgPSBlbG07DQogIHZhciBpdGVtICA9IGNvbmZpZ01lbnVbZWxtXTsNCg0KICB2YXIgZGl2ICAgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29udGVudCIpOw0KICBkaXYuaW5uZXJIVE1MID0gIiI7DQogIGRpdi5zZXRBdHRyaWJ1dGUoImRhdGEtY29uZmlnS2V5IiwgaXRlbVsiX2NvbmZpZ0tleSJdKTsNCiAgZGl2LnNldEF0dHJpYnV0ZSgiZGF0YS1tZW51VHlwZSIsIGl0ZW1bIl9tZW51VHlwZSJdKTsNCiAgDQogIHN3aXRjaChpdGVtLmhhc093blByb3BlcnR5KCJfbGFiZWwiKSkgew0KICAgIGNhc2UgdHJ1ZToNCiAgICAgIHZhciBuZXdJdGVtID0gbmV3IE9iamVjdCgpOw0KICAgICAgbmV3SXRlbVsiX2VsZW1lbnQiXSA9ICJMQUJFTCI7DQogICAgICBuZXdJdGVtWyJfdGV4dCJdICAgID0gaXRlbVsiX2xhYmVsIl07IA0KICAgICAgbmV3SXRlbVsiZm9yIl0gICAgICA9IGl0ZW1bImlkIl07DQogICAgICBkaXYuYXBwZW5kQ2hpbGQoY3JlYXRlRWxlbWVudChuZXdJdGVtKSk7DQogICAgICBicmVhaw0KICB9DQoNCiAgc3dpdGNoKGl0ZW1bIl9lbGVtZW50Il0pIHsNCiAgICBjYXNlICJTRUxFQ1QiOg0KICAgICAgZGl2LmFwcGVuZENoaWxkKGNyZWF0ZUVsZW1lbnQoaXRlbSkpOw0KICAgICAgdmFyIHNlbGVjdEVsZW1lbnQgPSBkaXYuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlNFTEVDVCIpWzBdOw0KICAgICAgdmFyIHZhbHVlcyA9IGl0ZW1bIl9vcHRpb25WYWx1ZXMiXTsNCiAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdmFsdWVzLmxlbmd0aDsgaSsrKSB7DQogICAgICAgIHZhciBuZXdFbnRyeSA9IG5ldyBPYmplY3Q7DQogICAgICAgIG5ld0VudHJ5WyJfZWxlbWVudCJdICA9ICJPUFRJT04iOw0KICAgICAgICBuZXdFbnRyeVsiX3RleHQiXSAgICAgPSBpdGVtWyJpZCJdICsgIjogIiArIHZhbHVlc1tpXTsNCiAgICAgICAgbmV3RW50cnlbInZhbHVlIl0gICAgID0gdmFsdWVzW2ldOw0KICAgICAgICBzZWxlY3RFbGVtZW50LmFwcGVuZENoaWxkKGNyZWF0ZUVsZW1lbnQobmV3RW50cnkpKTsNCiAgICAgIH0NCiAgICAgIC8vcmV0dXJuDQogICAgICBicmVhazsNCg0KICAgIGRlZmF1bHQ6IA0KICAgICAgZGl2LmFwcGVuZENoaWxkKGNyZWF0ZUVsZW1lbnQoaXRlbSkpOw0KICAgICAgYnJlYWs7DQoNCg0KICB9DQogIC8vYWxlcnQoKQ0KDQogIHN3aXRjaChpdGVtLmhhc093blByb3BlcnR5KCJfdXNhZ2UiKSkgew0KICAgIGNhc2UgdHJ1ZTogDQogICAgICB2YXIgdXNhZ2VJdGVtID0gbmV3IE9iamVjdCgpOw0KICAgICAgdXNhZ2VJdGVtWyJfZWxlbWVudCJdID0gIlBSRSINCiAgICAgIHVzYWdlSXRlbVsiX3RleHQiXSAgICA9IGl0ZW1bIl91c2FnZSJdOw0KICAgICAgZGl2LmFwcGVuZENoaWxkKGNyZWF0ZUVsZW1lbnQodXNhZ2VJdGVtKSk7DQogIH0NCg0KICBpZiAoYWN0aXZlV2l6YXJkID09ICJjb21wbGV0ZSIpIHsNCiAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibmV4dCIpLnZhbHVlID0gIkZpbmlzaGVkIg0KICAgIC8vZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm5leHQiKS5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAiamF2YXNjcmlwdDogbG9jYXRpb24ucmVsb2FkKCk7IikNCiAgfQ0KDQogIC8vZGl2LmFwcGVuZENoaWxkKGNyZWF0ZUVsZW1lbnQoaXRlbSkpOw0KfQ0KDQpmdW5jdGlvbiBzYXZlRGF0YSgpIHsNCg0KICB2YXIgZGl2ICAgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29udGVudCIpOw0KICB2YXIgaW5wdXRzID0gZGl2LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJJTlBVVCIpOw0KICB2YXIgc2VsZWN0cyA9IGRpdi5nZXRFbGVtZW50c0J5VGFnTmFtZSgiU0VMRUNUIik7DQogIHZhciB2YWx1ZTsNCiAgdmFyIGRhdGEgPSBuZXcgT2JqZWN0KCk7DQogIHZhciB2YWx1ZUFyciA9IG5ldyBBcnJheSgpOw0KICB2YXIgbmV3RGF0YSA9IGZhbHNlOw0KDQogIGlmIChhY3RpdmVXaXphcmQgPT0gImNvbXBsZXRlIikgew0KICAgIGRhdGFbImNtZCJdID0gIndpemFyZENvbXBsZXRlZCI7DQogICAgc2hvd0xvYWRpbmdTY3JlZW4odHJ1ZSkNCiAgICB4VGVWZShkYXRhKTsNCiAgICByZXR1cm4NCiAgfQ0KICANCiAgZm9yICh2YXIgaSA9IDA7IGkgPCBpbnB1dHMubGVuZ3RoOyBpKyspIHsNCiAgICB2YXIgbWVudVR5cGUgPSBpbnB1dHNbaV0ucGFyZW50RWxlbWVudC5nZXRBdHRyaWJ1dGUoImRhdGEtbWVudXR5cGUiKTsNCiAgICBpZiAoaW5wdXRzW2ldLnZhbHVlICE9IHVuZGVmaW5lZCAmJiBpbnB1dHNbaV0udmFsdWUgIT0gIiIgKSB7DQogICAgICBuZXdEYXRhID0gdHJ1ZTsNCg0KICAgICAgY29uc29sZS5sb2coaW5wdXRzW2ldLmlkKQ0KICAgICAgc3dpdGNoKGlucHV0c1tpXS5pZCkgew0KICAgICAgICBjYXNlICJtM3UiOiANCiAgICAgICAgICB2YXIgbmV3UGxheWxpc3QgPSBuZXcgT2JqZWN0KCk7DQogICAgICAgICAgbmV3UGxheWxpc3RbImZpbGUuc291cmNlIl0gPSBpbnB1dHNbaV0udmFsdWU7DQogICAgICAgICAgLy9uZXdQbGF5bGlzdFsibmFtZSJdID0gaW5wdXRzW2ldLnZhbHVlOw0KICAgICAgICAgIG5ld1BsYXlsaXN0WyJ0eXBlIl0gPSAibTN1IjsNCiAgICAgICAgICBuZXdQbGF5bGlzdFsibmV3Il0gPSB0cnVlOw0KDQogICAgICAgICAgZGF0YVsiZmlsZXMiXSA9IG5ldyBPYmplY3QoKTsNCiAgICAgICAgICBkYXRhWyJmaWxlcyJdWyJtM3UiXSA9IG5ldyBPYmplY3QoKTsNCiAgICAgICAgICBkYXRhWyJmaWxlcyJdWyJtM3UiXVsiLSJdID0gbmV3UGxheWxpc3Q7DQogICAgICAgICAgDQogICAgICAgICAgZGF0YVsiY21kIl0gPSAic2F2ZUZpbGVzTTNVIjsNCiAgICAgICAgICB4VGVWZShkYXRhKQ0KICAgICAgICAgIHJldHVybg0KICAgICAgfQ0KICAgICAgLyoNCiAgICAgIHN3aXRjaChtZW51VHlwZSkgew0KICAgICAgICBjYXNlICJzaW5nbGVJbnB1dCI6DQogICAgICAgICAgZGF0YVtpbnB1dHNbaV0ubmFtZV0gPSBpbnB1dHNbaV0udmFsdWU7IGJyZWFrOw0KICAgICAgICBjYXNlICJpbnB1dEFycmF5IjogDQogICAgICAgICAgdmFsdWVBcnIucHVzaChpbnB1dHNbaV0udmFsdWUpOw0KICAgICAgICAgIGRhdGFbaW5wdXRzW2ldLm5hbWVdID0gdmFsdWVBcnI7IGJyZWFrDQoNCiAgICAgIH0NCiAgICAgICovDQogICAgfSBlbHNlIHsNCiAgICAgIGlucHV0c1tpXS5zdHlsZS5ib3JkZXJCb3R0b21Db2xvciA9ICJyZWQiOw0KICAgICAgcmV0dXJuOw0KICAgIH0NCiAgfQ0KDQoNCiAgZm9yICh2YXIgaSA9IDA7IGkgPCBzZWxlY3RzLmxlbmd0aDsgaSsrKSB7DQogICAgdmFyIHZhbHVlID0gc2VsZWN0c1tpXS5vcHRpb25zW3NlbGVjdHNbaV0uc2VsZWN0ZWRJbmRleF0udmFsdWU7DQogICAgaWYgKGlzTmFOKHZhbHVlKSA9PSBmYWxzZSkgew0KICAgICAgdmFsdWUgPSBwYXJzZUludCh2YWx1ZSk7DQogICAgICBkYXRhW3NlbGVjdHNbaV0ubmFtZV0gPSB2YWx1ZTsNCiAgICAgIG5ld0RhdGEgPSB0cnVlOw0KICAgICAgYnJlYWs7DQogICAgfQ0KICAgIGRhdGFbc2VsZWN0c1tpXS5uYW1lXSA9IHZhbHVlOw0KICAgIG5ld0RhdGEgPSB0cnVlOw0KICB9DQoNCg0KICAvL2NvbnNvbGUubG9nKGRhdGEsIG5ld0RhdGEpOw0KICBpZiAobmV3RGF0YSA9PSB0cnVlKSB7DQogICAgY29uZmlnID0gZGF0YQ0KICAgIGRhdGFbImNtZCJdID0gInNhdmVDb25maWciOw0KICAgIHhUZVZlKGRhdGEpOw0KICB9DQp9DQoNCmZ1bmN0aW9uIHhUZVZlKGRhdGEpIHsNCg0KICBpZiAod2ViU29ja2V0cyA9PSBmYWxzZSkgew0KICAgIGFsZXJ0KCJZb3VyIGJyb3dzZXIgZG9lcyBub3Qgc3VwcG9ydCBXZWJTb2NrZXRzIik7DQogICAgcmV0dXJuOw0KICB9DQoNCiAgaWYgKGFjdGl2ZVdpemFyZCA9PSAibTN1IiB8fCBhY3RpdmVXaXphcmQgPT0gImVwZ1NvdXJjZSIpIHsNCiAgICBzaG93TG9hZGluZ1NjcmVlbih0cnVlKTsNCiAgfQ0KDQogIHZhciBwcm90b2NvbFdTDQogIHN3aXRjaCh3aW5kb3cubG9jYXRpb24ucHJvdG9jb2wpIHsNCiAgICBjYXNlICJodHRwOiI6ICAgcHJvdG9jb2xXUyA9ICJ3czovLyI7IGJyZWFrOw0KICAgIGNhc2UgImh0dHBzOiI6ICBwcm90b2NvbFdTID0gIndzczovLyI7IGJyZWFrOw0KICB9DQoNCiAgdmFyIHdzID0gbmV3IFdlYlNvY2tldChwcm90b2NvbFdTICsgd2luZG93LmxvY2F0aW9uLmhvc3RuYW1lICsgIjoiICsgd2luZG93LmxvY2F0aW9uLnBvcnQgKyAiL2RhdGEvIiArICI/VG9rZW49IiArIGdldENvb2tpZSgiVG9rZW4iKSk7DQogIA0KICB3cy5vbm9wZW4gPSBmdW5jdGlvbigpIHsNCiAgICB3cy5zZW5kKEpTT04uc3RyaW5naWZ5KGRhdGEpKTsNCiAgfQ0KDQogIHdzLm9ubWVzc2FnZSA9IGZ1bmN0aW9uIChlKSB7DQogICAgDQogICAgdmFyIHJlc3BvbnNlID0gSlNPTi5wYXJzZShlLmRhdGEpOw0KICAgIA0KICAgIGlmIChyZXNwb25zZS5oYXNPd25Qcm9wZXJ0eSgiY2xpZW50SW5mbyIpKSB7DQogICAgICBjcmVhdGVDbGludEluZm8ocmVzcG9uc2VbImNsaWVudEluZm8iXSk7DQogICAgfQ0KDQogICAgaWYgKHJlc3BvbnNlLmhhc093blByb3BlcnR5KCJzdGF0dXMiKSkgew0KICAgICAgaWYgKHJlc3BvbnNlWyJzdGF0dXMiXSA9PSBmYWxzZSkgew0KICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiaGVhZGxpbmUiKS5zdHlsZS5ib3JkZXJDb2xvciA9ICJyZWQiOw0KICAgICAgICBzaG93RXJyKHJlc3BvbnNlWyJlcnIiXSk7DQogICAgICAgIHNob3dMb2FkaW5nU2NyZWVuKGZhbHNlKQ0KICAgICAgICByZXR1cm4NCiAgICAgIH0gZWxzZSB7DQogICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJlcnIiKS5pbm5lckhUTUwgPSAiIjsNCiAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImhlYWRsaW5lIikuc3R5bGUuYm9yZGVyQ29sb3IgPSAibGF3bmdyZWVuIjsNCiAgICAgIH0NCg0KICAgICAgZHZySVAgPSByZXNwb25zZVsiRFZSIl0NCiAgICAgIHN3aXRjaChyZXNwb25zZVsiY29uZmlndXJhdGlvbldpemFyZCJdKSB7DQogICAgICAgIGNhc2UgdHJ1ZTogDQogICAgICAgICAgaWYgKGFjdGl2ZVdpemFyZCA9PSB1bmRlZmluZWQpIHsNCiAgICAgICAgICAgIGFjdGl2ZVdpemFyZCA9IHdpemFyZFswXQ0KICAgICAgICAgIH0NCiAgICAgICAgICB2YXIgbiA9IHdpemFyZC5pbmRleE9mKGFjdGl2ZVdpemFyZCk7DQogICAgICAgICAgbisrOw0KICAgICAgICAgIGFjdGl2ZVdpemFyZCA9IHdpemFyZFtuXQ0KDQogICAgICAgICAgaWYgKGFjdGl2ZVdpemFyZCA9PSB1bmRlZmluZWQpIHsNCiAgICAgICAgICAgIGRhdGFbImNtZCJdID0gIndpemFyZENvbXBsZXRlZCI7DQogICAgICAgICAgICB4VGVWZShkYXRhKQ0KICAgICAgICAgIH0gZWxzZSB7DQogICAgICAgICAgICAvL2NvbnNvbGUubG9nKGFjdGl2ZVdpemFyZCk7DQogICAgICAgICAgICBjcmVhdGVDb25maWd1cmF0aW9uKGFjdGl2ZVdpemFyZCk7IA0KICAgICAgICAgIH0NCiAgICAgICAgICANCiAgICAgICAgYnJlYWs7DQogICAgICB9DQoNCiAgICAgIHN3aXRjaChyZXNwb25zZVsicmVsb2FkIl0pIHsNCiAgICAgICAgDQogICAgICAgIA0KICAgICAgICBjYXNlIHRydWU6IA0KICAgIA0KICAgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKXsgDQogICAgICAgICAgICBsb2NhdGlvbi5yZWxvYWQoKTsNCiAgICAgICAgICB9LCAxMDApOw0KICAgICAgICAgIA0KICAgICAgICAgIC8vbG9jYXRpb24ucmVsb2FkKCk7DQogICAgICAgICAgDQogICAgICAgICAgYnJlYWs7DQogICAgICAgIA0KICAgICAgfQ0KDQogICAgICANCiAgICB9DQoNCiAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7IHNob3dMb2FkaW5nU2NyZWVuKGZhbHNlKTsgfSwgMzAwKTsNCiAgfQ0KICANCn0NCg0KZnVuY3Rpb24gc2hvd0VycihlbG0pIHsNCiAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImVyciIpLmlubmVySFRNTCA9IGVsbTsNCn0=" - webUI["html/js/settings_ts.js"] = "Y2xhc3MgU2V0dGluZ3NDYXRlZ29yeSB7DQogICAgY29uc3RydWN0b3IoKSB7DQogICAgICAgIHRoaXMuRG9jdW1lbnRJRCA9ICJjb250ZW50X3NldHRpbmdzIjsNCiAgICB9DQogICAgY3JlYXRlQ2F0ZWdvcnlIZWFkbGluZSh2YWx1ZSkgew0KICAgICAgICB2YXIgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIkg0Iik7DQogICAgICAgIGVsZW1lbnQuaW5uZXJIVE1MID0gdmFsdWU7DQogICAgICAgIHJldHVybiBlbGVtZW50Ow0KICAgIH0NCiAgICBjcmVhdGVIUigpIHsNCiAgICAgICAgdmFyIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJIUiIpOw0KICAgICAgICByZXR1cm4gZWxlbWVudDsNCiAgICB9DQogICAgY3JlYXRlU2V0dGluZ3Moc2V0dGluZ3NLZXkpIHsNCiAgICAgICAgdmFyIHNldHRpbmcgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJUUiIpOw0KICAgICAgICB2YXIgY29udGVudCA9IG5ldyBQb3B1cENvbnRlbnQoKTsNCiAgICAgICAgdmFyIGRhdGEgPSBTRVJWRVJbInNldHRpbmdzIl1bc2V0dGluZ3NLZXldOw0KICAgICAgICBzd2l0Y2ggKHNldHRpbmdzS2V5KSB7DQogICAgICAgICAgICAvLyBUZXh0ZWluZ2FiZW4NCiAgICAgICAgICAgIGNhc2UgInVwZGF0ZSI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy51cGRhdGUudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCAidXBkYXRlIiwgZGF0YS50b1N0cmluZygpKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnNldHRpbmdzLnVwZGF0ZS5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiYmFja3VwLnBhdGgiOg0KICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MuYmFja3VwUGF0aC50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsICJiYWNrdXAucGF0aCIsIGRhdGEpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3suc2V0dGluZ3MuYmFja3VwUGF0aC5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAidGVtcC5wYXRoIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLnRlbXBQYXRoLnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgInRlbXAucGF0aCIsIGRhdGEpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3suc2V0dGluZ3MudG1wUGF0aC5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAidXNlci5hZ2VudCI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy51c2VyQWdlbnQudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCAidXNlci5hZ2VudCIsIGRhdGEpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3suc2V0dGluZ3MudXNlckFnZW50LnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJidWZmZXIudGltZW91dCI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5idWZmZXJUaW1lb3V0LnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgImJ1ZmZlci50aW1lb3V0IiwgZGF0YSk7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5zZXR0aW5ncy5idWZmZXJUaW1lb3V0LnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJmZm1wZWcucGF0aCI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5mZm1wZWdQYXRoLnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgImZmbXBlZy5wYXRoIiwgZGF0YSk7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5zZXR0aW5ncy5mZm1wZWdQYXRoLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJmZm1wZWcub3B0aW9ucyI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5mZm1wZWdPcHRpb25zLnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgImZmbXBlZy5vcHRpb25zIiwgZGF0YSk7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5zZXR0aW5ncy5mZm1wZWdPcHRpb25zLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ2bGMucGF0aCI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy52bGNQYXRoLnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgInZsYy5wYXRoIiwgZGF0YSk7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5zZXR0aW5ncy52bGNQYXRoLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ2bGMub3B0aW9ucyI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy52bGNPcHRpb25zLnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgInZsYy5vcHRpb25zIiwgZGF0YSk7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5zZXR0aW5ncy52bGNPcHRpb25zLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAvLyBDaGVja2JveGVuDQogICAgICAgICAgICBjYXNlICJhdXRoZW50aWNhdGlvbi53ZWIiOg0KICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MuYXV0aGVudGljYXRpb25XRUIudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goc2V0dGluZ3NLZXkpOw0KICAgICAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImF1dGhlbnRpY2F0aW9uLnBtcyI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5hdXRoZW50aWNhdGlvblBNUy50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChzZXR0aW5nc0tleSk7DQogICAgICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGE7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiYXV0aGVudGljYXRpb24ubTN1IjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmF1dGhlbnRpY2F0aW9uTTNVLnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KHNldHRpbmdzS2V5KTsNCiAgICAgICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJhdXRoZW50aWNhdGlvbi54bWwiOg0KICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MuYXV0aGVudGljYXRpb25YTUwudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goc2V0dGluZ3NLZXkpOw0KICAgICAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImF1dGhlbnRpY2F0aW9uLmFwaSI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5hdXRoZW50aWNhdGlvbkFQSS50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChzZXR0aW5nc0tleSk7DQogICAgICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGE7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiZmlsZXMudXBkYXRlIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmZpbGVzVXBkYXRlLnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KHNldHRpbmdzS2V5KTsNCiAgICAgICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJjYWNoZS5pbWFnZXMiOg0KICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MuY2FjaGVJbWFnZXMudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goc2V0dGluZ3NLZXkpOw0KICAgICAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInhlcGcucmVwbGFjZS5taXNzaW5nLmltYWdlcyI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5yZXBsYWNlRW1wdHlJbWFnZXMudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goc2V0dGluZ3NLZXkpOw0KICAgICAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInh0ZXZlQXV0b1VwZGF0ZSI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy54dGV2ZUF1dG9VcGRhdGUudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goc2V0dGluZ3NLZXkpOw0KICAgICAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImFwaSI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5hcGkudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goc2V0dGluZ3NLZXkpOw0KICAgICAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIC8vIFNlbGVjdA0KICAgICAgICAgICAgY2FzZSAidHVuZXIiOg0KICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MudHVuZXIudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciB0ZXh0ID0gbmV3IEFycmF5KCk7DQogICAgICAgICAgICAgICAgdmFyIHZhbHVlcyA9IG5ldyBBcnJheSgpOw0KICAgICAgICAgICAgICAgIGZvciAodmFyIGkgPSAxOyBpIDw9IDEwMDsgaSsrKSB7DQogICAgICAgICAgICAgICAgICAgIHRleHQucHVzaChpKTsNCiAgICAgICAgICAgICAgICAgICAgdmFsdWVzLnB1c2goaSk7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIHZhciBzZWxlY3QgPSBjb250ZW50LmNyZWF0ZVNlbGVjdCh0ZXh0LCB2YWx1ZXMsIGRhdGEsIHNldHRpbmdzS2V5KTsNCiAgICAgICAgICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQoc2VsZWN0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImVwZ1NvdXJjZSI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5lcGdTb3VyY2UudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciB0ZXh0ID0gWyJQTVMiLCAiWEVQRyJdOw0KICAgICAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBbIlBNUyIsICJYRVBHIl07DQogICAgICAgICAgICAgICAgdmFyIHNlbGVjdCA9IGNvbnRlbnQuY3JlYXRlU2VsZWN0KHRleHQsIHZhbHVlcywgZGF0YSwgc2V0dGluZ3NLZXkpOw0KICAgICAgICAgICAgICAgIHNlbGVjdC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChzZWxlY3QpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiYmFja3VwLmtlZXAiOg0KICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MuYmFja3VwS2VlcC50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIHRleHQgPSBbIjUiLCAiMTAiLCAiMjAiLCAiMzAiLCAiNDAiLCAiNTAiXTsNCiAgICAgICAgICAgICAgICB2YXIgdmFsdWVzID0gWyI1IiwgIjEwIiwgIjIwIiwgIjMwIiwgIjQwIiwgIjUwIl07DQogICAgICAgICAgICAgICAgdmFyIHNlbGVjdCA9IGNvbnRlbnQuY3JlYXRlU2VsZWN0KHRleHQsIHZhbHVlcywgZGF0YSwgc2V0dGluZ3NLZXkpOw0KICAgICAgICAgICAgICAgIHNlbGVjdC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChzZWxlY3QpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiYnVmZmVyLnNpemUua2IiOg0KICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MuYnVmZmVyU2l6ZS50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIHRleHQgPSBbIjAuNSBNQiIsICIxIE1CIiwgIjIgTUIiLCAiMyBNQiIsICI0IE1CIiwgIjUgTUIiLCAiNiBNQiIsICI3IE1CIiwgIjggTUIiXTsNCiAgICAgICAgICAgICAgICB2YXIgdmFsdWVzID0gWyI1MTIiLCAiMTAyNCIsICIyMDQ4IiwgIjMwNzIiLCAiNDA5NiIsICI1MTIwIiwgIjYxNDQiLCAiNzE2OCIsICI4MTkyIl07DQogICAgICAgICAgICAgICAgdmFyIHNlbGVjdCA9IGNvbnRlbnQuY3JlYXRlU2VsZWN0KHRleHQsIHZhbHVlcywgZGF0YSwgc2V0dGluZ3NLZXkpOw0KICAgICAgICAgICAgICAgIHNlbGVjdC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChzZWxlY3QpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiYnVmZmVyIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLnN0cmVhbUJ1ZmZlcmluZy50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIHRleHQgPSBbInt7LnNldHRpbmdzLnN0cmVhbUJ1ZmZlcmluZy5pbmZvX2ZhbHNlfX0iLCAieFRlVmU6ICh7ey5zZXR0aW5ncy5zdHJlYW1CdWZmZXJpbmcuaW5mb194dGV2ZX19KSIsICJGRm1wZWc6ICh7ey5zZXR0aW5ncy5zdHJlYW1CdWZmZXJpbmcuaW5mb19mZm1wZWd9fSkiLCAiVkxDOiAoe3suc2V0dGluZ3Muc3RyZWFtQnVmZmVyaW5nLmluZm9fdmxjfX0pIl07DQogICAgICAgICAgICAgICAgdmFyIHZhbHVlcyA9IFsiLSIsICJ4dGV2ZSIsICJmZm1wZWciLCAidmxjIl07DQogICAgICAgICAgICAgICAgdmFyIHNlbGVjdCA9IGNvbnRlbnQuY3JlYXRlU2VsZWN0KHRleHQsIHZhbHVlcywgZGF0YSwgc2V0dGluZ3NLZXkpOw0KICAgICAgICAgICAgICAgIHNlbGVjdC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChzZWxlY3QpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAidWRweHkiOg0KICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MudWRweHkudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCAidWRweHkiLCBkYXRhKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnNldHRpbmdzLnVkcHh5LnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIH0NCiAgICAgICAgcmV0dXJuIHNldHRpbmc7DQogICAgfQ0KICAgIGNyZWF0ZURlc2NyaXB0aW9uKHNldHRpbmdzS2V5KSB7DQogICAgICAgIHZhciBkZXNjcmlwdGlvbiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlRSIik7DQogICAgICAgIHZhciB0ZXh0Ow0KICAgICAgICBzd2l0Y2ggKHNldHRpbmdzS2V5KSB7DQogICAgICAgICAgICBjYXNlICJhdXRoZW50aWNhdGlvbi53ZWIiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MuYXV0aGVudGljYXRpb25XRUIuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJhdXRoZW50aWNhdGlvbi5tM3UiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MuYXV0aGVudGljYXRpb25NM1UuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJhdXRoZW50aWNhdGlvbi5wbXMiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MuYXV0aGVudGljYXRpb25QTVMuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJhdXRoZW50aWNhdGlvbi54bWwiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MuYXV0aGVudGljYXRpb25YTUwuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJhdXRoZW50aWNhdGlvbi5hcGkiOg0KICAgICAgICAgICAgICAgIGlmIChTRVJWRVJbInNldHRpbmdzIl1bImF1dGhlbnRpY2F0aW9uLndlYiJdID09IHRydWUpIHsNCiAgICAgICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5hdXRoZW50aWNhdGlvbkFQSS5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ4dGV2ZUF1dG9VcGRhdGUiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MueHRldmVBdXRvVXBkYXRlLmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiYmFja3VwLmtlZXAiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MuYmFja3VwS2VlcC5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImJhY2t1cC5wYXRoIjoNCiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLmJhY2t1cFBhdGguZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ0ZW1wLnBhdGgiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MudGVtcFBhdGguZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJidWZmZXIiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3Muc3RyZWFtQnVmZmVyaW5nLmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiYnVmZmVyLnNpemUua2IiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MuYnVmZmVyU2l6ZS5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImJ1ZmZlci50aW1lb3V0IjoNCiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLmJ1ZmZlclRpbWVvdXQuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ1c2VyLmFnZW50IjoNCiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLnVzZXJBZ2VudC5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImZmbXBlZy5wYXRoIjoNCiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLmZmbXBlZ1BhdGguZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJmZm1wZWcub3B0aW9ucyI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5mZm1wZWdPcHRpb25zLmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAidmxjLnBhdGgiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MudmxjUGF0aC5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInZsYy5vcHRpb25zIjoNCiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLnZsY09wdGlvbnMuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJlcGdTb3VyY2UiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MuZXBnU291cmNlLmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAidHVuZXIiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MudHVuZXIuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ1cGRhdGUiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MudXBkYXRlLmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiYXBpIjoNCiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLmFwaS5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImZpbGVzLnVwZGF0ZSI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5maWxlc1VwZGF0ZS5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImNhY2hlLmltYWdlcyI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5jYWNoZUltYWdlcy5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInhlcGcucmVwbGFjZS5taXNzaW5nLmltYWdlcyI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5yZXBsYWNlRW1wdHlJbWFnZXMuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ1ZHB4eSI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy51ZHB4eS5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICAgICAgdGV4dCA9ICIiOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICB9DQogICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gIiI7DQogICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgdmFyIHByZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlBSRSIpOw0KICAgICAgICBwcmUuaW5uZXJIVE1MID0gdGV4dDsNCiAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChwcmUpOw0KICAgICAgICBkZXNjcmlwdGlvbi5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICBkZXNjcmlwdGlvbi5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgcmV0dXJuIGRlc2NyaXB0aW9uOw0KICAgIH0NCn0NCmNsYXNzIFNldHRpbmdzQ2F0ZWdvcnlJdGVtIGV4dGVuZHMgU2V0dGluZ3NDYXRlZ29yeSB7DQogICAgY29uc3RydWN0b3IoaGVhZGxpbmUsIHNldHRpbmdzS2V5cykgew0KICAgICAgICBzdXBlcigpOw0KICAgICAgICB0aGlzLmhlYWRsaW5lID0gaGVhZGxpbmU7DQogICAgICAgIHRoaXMuc2V0dGluZ3NLZXlzID0gc2V0dGluZ3NLZXlzOw0KICAgIH0NCiAgICBjcmVhdGVDYXRlZ29yeSgpIHsNCiAgICAgICAgdmFyIGhlYWRsaW5lID0gdGhpcy5jcmVhdGVDYXRlZ29yeUhlYWRsaW5lKHRoaXMuaGVhZGxpbmUpOw0KICAgICAgICB2YXIgc2V0dGluZ3NLZXlzID0gdGhpcy5zZXR0aW5nc0tleXM7DQogICAgICAgIHZhciBkb2MgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCh0aGlzLkRvY3VtZW50SUQpOw0KICAgICAgICBkb2MuYXBwZW5kQ2hpbGQoaGVhZGxpbmUpOw0KICAgICAgICAvLyBUYWJlbGxlIGbDvHIgZGllIEthdGVnb3JpZSBlcnN0ZWxsZW4NCiAgICAgICAgdmFyIHRhYmxlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEFCTEUiKTsNCiAgICAgICAgdmFyIGtleXMgPSBzZXR0aW5nc0tleXMuc3BsaXQoIiwiKTsNCiAgICAgICAga2V5cy5mb3JFYWNoKHNldHRpbmdzS2V5ID0+IHsNCiAgICAgICAgICAgIHN3aXRjaCAoc2V0dGluZ3NLZXkpIHsNCiAgICAgICAgICAgICAgICBjYXNlICJhdXRoZW50aWNhdGlvbi5wbXMiOg0KICAgICAgICAgICAgICAgIGNhc2UgImF1dGhlbnRpY2F0aW9uLm0zdSI6DQogICAgICAgICAgICAgICAgY2FzZSAiYXV0aGVudGljYXRpb24ueG1sIjoNCiAgICAgICAgICAgICAgICBjYXNlICJhdXRoZW50aWNhdGlvbi5hcGkiOg0KICAgICAgICAgICAgICAgICAgICBpZiAoU0VSVkVSWyJzZXR0aW5ncyJdWyJhdXRoZW50aWNhdGlvbi53ZWIiXSA9PSBmYWxzZSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBkZWZhdWx0Og0KICAgICAgICAgICAgICAgICAgICB2YXIgaXRlbSA9IHRoaXMuY3JlYXRlU2V0dGluZ3Moc2V0dGluZ3NLZXkpOw0KICAgICAgICAgICAgICAgICAgICB2YXIgZGVzY3JpcHRpb24gPSB0aGlzLmNyZWF0ZURlc2NyaXB0aW9uKHNldHRpbmdzS2V5KTsNCiAgICAgICAgICAgICAgICAgICAgdGFibGUuYXBwZW5kQ2hpbGQoaXRlbSk7DQogICAgICAgICAgICAgICAgICAgIHRhYmxlLmFwcGVuZENoaWxkKGRlc2NyaXB0aW9uKTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICB9DQogICAgICAgIH0pOw0KICAgICAgICBkb2MuYXBwZW5kQ2hpbGQodGFibGUpOw0KICAgICAgICBkb2MuYXBwZW5kQ2hpbGQodGhpcy5jcmVhdGVIUigpKTsNCiAgICB9DQp9DQpmdW5jdGlvbiBzaG93U2V0dGluZ3MoKSB7DQogICAgY29uc29sZS5sb2coIlNFVFRJTkdTIik7DQogICAgZm9yIChsZXQgaSA9IDA7IGkgPCBzZXR0aW5nc0NhdGVnb3J5Lmxlbmd0aDsgaSsrKSB7DQogICAgICAgIHNldHRpbmdzQ2F0ZWdvcnlbaV0uY3JlYXRlQ2F0ZWdvcnkoKTsNCiAgICB9DQp9DQpmdW5jdGlvbiBzYXZlU2V0dGluZ3MoKSB7DQogICAgY29uc29sZS5sb2coIlNhdmUgU2V0dGluZ3MiKTsNCiAgICB2YXIgY21kID0gInNhdmVTZXR0aW5ncyI7DQogICAgdmFyIGRpdiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb250ZW50X3NldHRpbmdzIik7DQogICAgdmFyIHNldHRpbmdzID0gZGl2LmdldEVsZW1lbnRzQnlDbGFzc05hbWUoImNoYW5nZWQiKTsNCiAgICB2YXIgbmV3U2V0dGluZ3MgPSBuZXcgT2JqZWN0KCk7DQogICAgZm9yIChsZXQgaSA9IDA7IGkgPCBzZXR0aW5ncy5sZW5ndGg7IGkrKykgew0KICAgICAgICB2YXIgbmFtZTsNCiAgICAgICAgdmFyIHZhbHVlOw0KICAgICAgICBzd2l0Y2ggKHNldHRpbmdzW2ldLnRhZ05hbWUpIHsNCiAgICAgICAgICAgIGNhc2UgIklOUFVUIjoNCiAgICAgICAgICAgICAgICBzd2l0Y2ggKHNldHRpbmdzW2ldLnR5cGUpIHsNCiAgICAgICAgICAgICAgICAgICAgY2FzZSAiY2hlY2tib3giOg0KICAgICAgICAgICAgICAgICAgICAgICAgbmFtZSA9IHNldHRpbmdzW2ldLm5hbWU7DQogICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IHNldHRpbmdzW2ldLmNoZWNrZWQ7DQogICAgICAgICAgICAgICAgICAgICAgICBuZXdTZXR0aW5nc1tuYW1lXSA9IHZhbHVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgICAgIGNhc2UgInRleHQiOg0KICAgICAgICAgICAgICAgICAgICAgICAgbmFtZSA9IHNldHRpbmdzW2ldLm5hbWU7DQogICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IHNldHRpbmdzW2ldLnZhbHVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgc3dpdGNoIChuYW1lKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAidXBkYXRlIjoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSB2YWx1ZS5zcGxpdCgiLCIpOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IHZhbHVlLmZpbHRlcihmdW5jdGlvbiAoZSkgeyByZXR1cm4gZTsgfSk7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgImJ1ZmZlci50aW1lb3V0IjoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSBwYXJzZUZsb2F0KHZhbHVlKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgIG5ld1NldHRpbmdzW25hbWVdID0gdmFsdWU7DQogICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJTRUxFQ1QiOg0KICAgICAgICAgICAgICAgIG5hbWUgPSBzZXR0aW5nc1tpXS5uYW1lOw0KICAgICAgICAgICAgICAgIHZhbHVlID0gc2V0dGluZ3NbaV0udmFsdWU7DQogICAgICAgICAgICAgICAgLy8gV2VubiBkZXIgV2VydCBlaW5lIFphaGwgaXN0LCB3aXJkIGRpZXNlciBhbHMgWmFobCBnZXNwZWljaGVydA0KICAgICAgICAgICAgICAgIGlmIChpc05hTih2YWx1ZSkpIHsNCiAgICAgICAgICAgICAgICAgICAgbmV3U2V0dGluZ3NbbmFtZV0gPSB2YWx1ZTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgZWxzZSB7DQogICAgICAgICAgICAgICAgICAgIG5ld1NldHRpbmdzW25hbWVdID0gcGFyc2VJbnQodmFsdWUpOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgfQ0KICAgIH0NCiAgICB2YXIgZGF0YSA9IG5ldyBPYmplY3QoKTsNCiAgICBkYXRhWyJzZXR0aW5ncyJdID0gbmV3U2V0dGluZ3M7DQogICAgdmFyIHNlcnZlciA9IG5ldyBTZXJ2ZXIoY21kKTsNCiAgICBzZXJ2ZXIucmVxdWVzdChkYXRhKTsNCn0NCg==" webUI["html/img/log.png"] = "iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAAAXNSR0IArs4c6QAAAAlwSFlzAAAsSwAALEsBpT2WqQAABCRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IlhNUCBDb3JlIDUuNC4wIj4KICAgPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIgogICAgICAgICAgICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgICAgICAgICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyI+CiAgICAgICAgIDx0aWZmOlJlc29sdXRpb25Vbml0PjI8L3RpZmY6UmVzb2x1dGlvblVuaXQ+CiAgICAgICAgIDx0aWZmOkNvbXByZXNzaW9uPjU8L3RpZmY6Q29tcHJlc3Npb24+CiAgICAgICAgIDx0aWZmOlhSZXNvbHV0aW9uPjI4ODwvdGlmZjpYUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6T3JpZW50YXRpb24+MTwvdGlmZjpPcmllbnRhdGlvbj4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+Mjg4PC90aWZmOllSZXNvbHV0aW9uPgogICAgICAgICA8ZXhpZjpQaXhlbFhEaW1lbnNpb24+NTA8L2V4aWY6UGl4ZWxYRGltZW5zaW9uPgogICAgICAgICA8ZXhpZjpDb2xvclNwYWNlPjE8L2V4aWY6Q29sb3JTcGFjZT4KICAgICAgICAgPGV4aWY6UGl4ZWxZRGltZW5zaW9uPjUwPC9leGlmOlBpeGVsWURpbWVuc2lvbj4KICAgICAgICAgPGRjOnN1YmplY3Q+CiAgICAgICAgICAgIDxyZGY6QmFnLz4KICAgICAgICAgPC9kYzpzdWJqZWN0PgogICAgICAgICA8eG1wOk1vZGlmeURhdGU+MjAxOC0xMC0xNFQxMToxMDo0MjwveG1wOk1vZGlmeURhdGU+CiAgICAgICAgIDx4bXA6Q3JlYXRvclRvb2w+UGl4ZWxtYXRvciAzLjM8L3htcDpDcmVhdG9yVG9vbD4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgIDwvcmRmOlJERj4KPC94OnhtcG1ldGE+CkP32mEAAANASURBVGgF7ZlPiE1RHMffw1AYhiL5k1HEijJiYaFZiHoyFspW2RFRkkSZGgtFWJIwi9FYmo0VOywkKTbKgjSlWcifRCPX51dv6s2d33md77vvXjfmV9859/7u93x/v98959x73p1KRbAkSargAhgDH0E/qIYkuHYEvAPGvwbmNOEerXM/0Q6BRSFuZj/ix0DaDnvCkGppIucDAe4OhzvkcUO+GaELAf8ux7/b8Zlrr+Pvc3zm6nX8NccXdKmFLHaUPJ/Ruhyu5zNap8Nd6PiCLrUQTyi0Rjy/5/M0Zd+smB7M32XwtgBr07aC6yfSTs7XO77OALfH4VbgHsD/HLytVquJx4nyIdQFBsHftscksK5Z0sGhpuN8Or4Aa5sJFHjtO7G2MjKvvZjN1sglOpSlCMt9LrDZ4S4Hd0Qg24vrK+gAZbPtjMqTdFKhEdkIsYxFWP720JlioUK6pzDL41jtpRIqxOOWxecuB3fhRGT8E85YBK8VygI6GSRTCxlH3TaJgyw4O2678aCxO94LbNPovYDdmOrUukIBN/MqwjJEOwGPOHR31W4VONVCLEBR9lAJpBbSrYhn5K5R+quFnGUOr1ICtMIlxjz6XVb6qot9JeKvCPSAdlQJJHDtd8hOIN0wtRDLxx6Ntr0ulalTq1TJNyYzXUjj3SjD8X87Iva7uR8s5+2bi6FtX1oOgi8g2tSn1g2yPx+t3gIR/c90s1+C1vuO/YkxdWrdjxFtE2dE0VELWaqIZ+QuUfqrhZxmyKUvgEoyE1xizOR4YOI8plXXyAZEbYsyTJvXFsUW+x6wGUSbWogJ237rZHSEgojq1CooLT3MdCH6Pcu3xz8zIq0s9lvc2+sgz6dWH/rnQPB/jlybZGoh99hCHJqk0P6TD0jaI/4b7dVYeXVq2bemokyKpRZiHwWKMimWWshxhryjoEpOKXHUNbIN8WcUc5s2r8Vue7l9oAaiTS3EhDeB6EUYnUlGojq1MobLr3uokB/5hcys7OYWKuRl5nD5Cbi5uYXw0ntPHoay2S8Seuol5RZSJ0r/n/DEc/BdrN9kTZrH7BkwDspgwyQxW6uggU3nHnAXvAG/QZE2SrARsL8hJffwDxM0mNDPvT8IAAAAAElFTkSuQmCC" - webUI["html/img/logo_w_600x200.png"] = "iVBORw0KGgoAAAANSUhEUgAAAlgAAADICAYAAAA0n5+2AAAAAXNSR0IArs4c6QAAAAlwSFlzAAAuIwAALiMBeKU/dgAABCZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IlhNUCBDb3JlIDUuNC4wIj4KICAgPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIgogICAgICAgICAgICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgICAgICAgICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyI+CiAgICAgICAgIDx0aWZmOlJlc29sdXRpb25Vbml0PjI8L3RpZmY6UmVzb2x1dGlvblVuaXQ+CiAgICAgICAgIDx0aWZmOkNvbXByZXNzaW9uPjU8L3RpZmY6Q29tcHJlc3Npb24+CiAgICAgICAgIDx0aWZmOlhSZXNvbHV0aW9uPjMwMDwvdGlmZjpYUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6T3JpZW50YXRpb24+MTwvdGlmZjpPcmllbnRhdGlvbj4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+MzAwPC90aWZmOllSZXNvbHV0aW9uPgogICAgICAgICA8ZXhpZjpQaXhlbFhEaW1lbnNpb24+NjAwPC9leGlmOlBpeGVsWERpbWVuc2lvbj4KICAgICAgICAgPGV4aWY6Q29sb3JTcGFjZT4xPC9leGlmOkNvbG9yU3BhY2U+CiAgICAgICAgIDxleGlmOlBpeGVsWURpbWVuc2lvbj4yMDA8L2V4aWY6UGl4ZWxZRGltZW5zaW9uPgogICAg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" - webUI["html/img/logout.png"] = "iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAAAXNSR0IArs4c6QAAAAlwSFlzAAAsSwAALEsBpT2WqQAABCRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IlhNUCBDb3JlIDUuNC4wIj4KICAgPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIgogICAgICAgICAgICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgICAgICAgICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyI+CiAgICAgICAgIDx0aWZmOlJlc29sdXRpb25Vbml0PjI8L3RpZmY6UmVzb2x1dGlvblVuaXQ+CiAgICAgICAgIDx0aWZmOkNvbXByZXNzaW9uPjU8L3RpZmY6Q29tcHJlc3Npb24+CiAgICAgICAgIDx0aWZmOlhSZXNvbHV0aW9uPjI4ODwvdGlmZjpYUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6T3JpZW50YXRpb24+MTwvdGlmZjpPcmllbnRhdGlvbj4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+Mjg4PC90aWZmOllSZXNvbHV0aW9uPgogICAgICAgICA8ZXhpZjpQaXhlbFhEaW1lbnNpb24+NTA8L2V4aWY6UGl4ZWxYRGltZW5zaW9uPgogICAgICAgICA8ZXhpZjpDb2xvclNwYWNlPjE8L2V4aWY6Q29sb3JTcGFjZT4KICAgICAgICAgPGV4aWY6UGl4ZWxZRGltZW5zaW9uPjUwPC9leGlmOlBpeGVsWURpbWVuc2lvbj4KICAgICAgICAgPGRjOnN1YmplY3Q+CiAgICAgICAgICAgIDxyZGY6QmFnLz4KICAgICAgICAgPC9kYzpzdWJqZWN0PgogICAgICAgICA8eG1wOk1vZGlmeURhdGU+MjAxOC0xMC0xM1QxMToxMDoxODwveG1wOk1vZGlmeURhdGU+CiAgICAgICAgIDx4bXA6Q3JlYXRvclRvb2w+UGl4ZWxtYXRvciAzLjM8L3htcDpDcmVhdG9yVG9vbD4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgIDwvcmRmOlJERj4KPC94OnhtcG1ldGE+Cg27QeEAAANQSURBVGgF7Zk9aBRBGIZzSRSN8YdoCpEkghCCqK1o4g9IsBCCNmIniCAiWAhqI8G02qiIoqCCWggSEcFKEFPYpVAU8QdFUyiKRpRokBjP55OdZDLZvZnZ7N3Ngh887M7sN/O9797t7c5eTc3/8D8DxWKxGS5Ai//oAEYgvB4OwleQaAtAlp8ERG+Bp6Jei/wYQfRy6NfE67vhG0FtA/TBqK7c2A/bCGJ3wpAhOq4ZphGUroEHcYoT+sIygsgmOAu/EwQndYdhBHV1sB8+Jym19Lf6/faVIRuBG+GRRajtcPWMoKwFbtgUOh6vvBGEzYFj8MNRpEtaZY2gaAe8cVHmmXOc/K3QXIZv/+SUFFgJ96AS8ZwiZ6Ab6iZVzGCPiRbCKRiDasQHip6EdD/PDKyFvfAJQgg5kVfB/VoieT0MQojxE1G9UG/7otWS0A7pPkrb7DM/Ppcp+mAAM/bFGEmL4RL8gVDjI8JWOZ0bEjvhSahO0CXXsLMZWZYegREIMV4jaoHTJyNJJLfC7RCdoOm6sxGVyKAeeBegoU6l0XmLiXlwAqp1o4w7j3d1AwW9YdtnNrnQzkOXLddyfAPHv8Ey6ABpd8N88In2QqHwymfARC5mCrAH0i6qGDr9jk3fbNgFz8A1DkwIS7tDpSVwGdLcexIfPZhPHpf2wS+wRX9a/dPGUakLzBdwNgGJRlQBJtgMw5aJ3qr8TLYUmwVHwXXxZTUiwphvHYxDUnzPxIA5CdXa4E5SVa3fyUhkRtYqpSKbNYxpJiq+ncpDJar7GGlknvcl5mqM05BZH4Xl3iOLpLh7j7OR6MScSzAykplg20QIWA0PDSG+RuTdQVy8sNXP9DgK5N4jK9AvkRpfI4sYF/c2836mQl0nQ4zce66AfZFkTMqYl2DGaSMt/CYOHpsuaPco5bLUzUuMGkLHaQ+ovjwZUZrVdpAHRnnw/Bd5MrJCiY62t4x2+E2uBfkfRg95TdSkK8/LJ7JWF83+Nb5Ww0Zf+E3OviwXVMgT8dLwVRsKEd0A+uP8biMlH01MHAYVF/Oh2lCJenkDqpbUN9nPyzU91QnCRbyEPEXn1sQhxMv7tG1T7cW3rK/r44eVtxfxm6gwBh38zJqPJuUtXu3Z/wLwuBaBLgMkKwAAAABJRU5ErkJggg==" + webUI["html/js/base_ts.js"] = "dmFyIFNFUlZFUiA9IG5ldyBPYmplY3QoKTsNCnZhciBCVUxLX0VESVQgPSBmYWxzZTsNCnZhciBDT0xVTU5fVE9fU09SVDsNCnZhciBTRUFSQ0hfTUFQUElORyA9IG5ldyBPYmplY3QoKTsNCnZhciBVTkRPID0gbmV3IE9iamVjdCgpOw0KdmFyIFNFUlZFUl9DT05ORUNUSU9OID0gZmFsc2U7DQp2YXIgV1NfQVZBSUxBQkxFID0gZmFsc2U7DQovLyBNZW7DvA0KdmFyIG1lbnVJdGVtcyA9IG5ldyBBcnJheSgpOw0KbWVudUl0ZW1zLnB1c2gobmV3IE1haW5NZW51SXRlbSgicGxheWxpc3QiLCAie3subWFpbk1lbnUuaXRlbS5wbGF5bGlzdH19IiwgIm0zdS5wbmciLCAie3subWFpbk1lbnUuaGVhZGxpbmUucGxheWxpc3R9fSIpKTsNCi8vbWVudUl0ZW1zLnB1c2gobmV3IE1haW5NZW51SXRlbSgicG1zSUQiLCAie3subWFpbk1lbnUuaXRlbS5wbXNJRH19IiwgIm51bWJlci5wbmciLCAie3subWFpbk1lbnUuaGVhZGxpbmUucG1zSUR9fSIpKQ0KbWVudUl0ZW1zLnB1c2gobmV3IE1haW5NZW51SXRlbSgiZmlsdGVyIiwgInt7Lm1haW5NZW51Lml0ZW0uZmlsdGVyfX0iLCAiZmlsdGVyLnBuZyIsICJ7ey5tYWluTWVudS5oZWFkbGluZS5maWx0ZXJ9fSIpKTsNCm1lbnVJdGVtcy5wdXNoKG5ldyBNYWluTWVudUl0ZW0oInhtbHR2IiwgInt7Lm1haW5NZW51Lml0ZW0ueG1sdHZ9fSIsICJ4bWx0di5wbmciLCAie3subWFpbk1lbnUuaGVhZGxpbmUueG1sdHZ9fSIpKTsNCm1lbnVJdGVtcy5wdXNoKG5ldyBNYWluTWVudUl0ZW0oIm1hcHBpbmciLCAie3subWFpbk1lbnUuaXRlbS5tYXBwaW5nfX0iLCAibWFwcGluZy5wbmciLCAie3subWFpbk1lbnUuaGVhZGxpbmUubWFwcGluZ319IikpOw0KbWVudUl0ZW1zLnB1c2gobmV3IE1haW5NZW51SXRlbSgidXNlcnMiLCAie3subWFpbk1lbnUuaXRlbS51c2Vyc319IiwgInVzZXJzLnBuZyIsICJ7ey5tYWluTWVudS5oZWFkbGluZS51c2Vyc319IikpOw0KbWVudUl0ZW1zLnB1c2gobmV3IE1haW5NZW51SXRlbSgic2V0dGluZ3MiLCAie3subWFpbk1lbnUuaXRlbS5zZXR0aW5nc319IiwgInNldHRpbmdzLnBuZyIsICJ7ey5tYWluTWVudS5oZWFkbGluZS5zZXR0aW5nc319IikpOw0KbWVudUl0ZW1zLnB1c2gobmV3IE1haW5NZW51SXRlbSgibG9nIiwgInt7Lm1haW5NZW51Lml0ZW0ubG9nfX0iLCAibG9nLnBuZyIsICJ7ey5tYWluTWVudS5oZWFkbGluZS5sb2d9fSIpKTsNCm1lbnVJdGVtcy5wdXNoKG5ldyBNYWluTWVudUl0ZW0oImxvZ291dCIsICJ7ey5tYWluTWVudS5pdGVtLmxvZ291dH19IiwgImxvZ291dC5wbmciLCAie3subWFpbk1lbnUuaGVhZGxpbmUubG9nb3V0fX0iKSk7DQovLyBLYXRlZ29yaWVuIGbDvHIgZGllIEVpbnN0ZWxsdW5nZW4NCnZhciBzZXR0aW5nc0NhdGVnb3J5ID0gbmV3IEFycmF5KCk7DQpzZXR0aW5nc0NhdGVnb3J5LnB1c2gobmV3IFNldHRpbmdzQ2F0ZWdvcnlJdGVtKCJ7ey5zZXR0aW5ncy5jYXRlZ29yeS5nZW5lcmFsfX0iLCAieHRldmVBdXRvVXBkYXRlLHR1bmVyLGVwZ1NvdXJjZSxhcGkiKSk7DQpzZXR0aW5nc0NhdGVnb3J5LnB1c2gobmV3IFNldHRpbmdzQ2F0ZWdvcnlJdGVtKCJ7ey5zZXR0aW5ncy5jYXRlZ29yeS5maWxlc319IiwgInVwZGF0ZSxmaWxlcy51cGRhdGUsdGVtcC5wYXRoLGNhY2hlLmltYWdlcyx4ZXBnLnJlcGxhY2UubWlzc2luZy5pbWFnZXMiKSk7DQpzZXR0aW5nc0NhdGVnb3J5LnB1c2gobmV3IFNldHRpbmdzQ2F0ZWdvcnlJdGVtKCJ7ey5zZXR0aW5ncy5jYXRlZ29yeS5zdHJlYW1pbmd9fSIsICJidWZmZXIsdWRweHksYnVmZmVyLnNpemUua2IsYnVmZmVyLnRpbWVvdXQsdXNlci5hZ2VudCxmZm1wZWcucGF0aCxmZm1wZWcub3B0aW9ucyx2bGMucGF0aCx2bGMub3B0aW9ucyIpKTsNCnNldHRpbmdzQ2F0ZWdvcnkucHVzaChuZXcgU2V0dGluZ3NDYXRlZ29yeUl0ZW0oInt7LnNldHRpbmdzLmNhdGVnb3J5LmJhY2t1cH19IiwgImJhY2t1cC5wYXRoLGJhY2t1cC5rZWVwIikpOw0Kc2V0dGluZ3NDYXRlZ29yeS5wdXNoKG5ldyBTZXR0aW5nc0NhdGVnb3J5SXRlbSgie3suc2V0dGluZ3MuY2F0ZWdvcnkuYXV0aGVudGljYXRpb259fSIsICJhdXRoZW50aWNhdGlvbi53ZWIsYXV0aGVudGljYXRpb24ucG1zLGF1dGhlbnRpY2F0aW9uLm0zdSxhdXRoZW50aWNhdGlvbi54bWwsYXV0aGVudGljYXRpb24uYXBpIikpOw0KZnVuY3Rpb24gc2hvd1BvcFVwRWxlbWVudChlbG0pIHsNCiAgICB2YXIgYWxsRWxlbWVudHMgPSBuZXcgQXJyYXkoInBvcHVwLWN1c3RvbSIpOw0KICAgIGZvciAodmFyIGkgPSAwOyBpIDwgYWxsRWxlbWVudHMubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgc2hvd0VsZW1lbnQoYWxsRWxlbWVudHNbaV0sIGZhbHNlKTsNCiAgICB9DQogICAgc2hvd0VsZW1lbnQoZWxtLCB0cnVlKTsNCiAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsNCiAgICAgICAgc2hvd0VsZW1lbnQoInBvcHVwIiwgdHJ1ZSk7DQogICAgfSwgMTApOw0KICAgIHJldHVybjsNCn0NCmZ1bmN0aW9uIHNob3dFbGVtZW50KGVsbUlELCB0eXBlKSB7DQogICAgdmFyIGNzc0NsYXNzOw0KICAgIHN3aXRjaCAodHlwZSkgew0KICAgICAgICBjYXNlIHRydWU6DQogICAgICAgICAgICBjc3NDbGFzcyA9ICJibG9jayI7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSBmYWxzZToNCiAgICAgICAgICAgIGNzc0NsYXNzID0gIm5vbmUiOw0KICAgICAgICAgICAgYnJlYWs7DQogICAgfQ0KICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGVsbUlEKS5jbGFzc05hbWUgPSBjc3NDbGFzczsNCn0NCmZ1bmN0aW9uIGNoYW5nZUJ1dHRvbkFjdGlvbihlbGVtZW50LCBidXR0b25JRCwgYXR0cmlidXRlKSB7DQogICAgdmFyIHZhbHVlID0gZWxlbWVudC5vcHRpb25zW2VsZW1lbnQuc2VsZWN0ZWRJbmRleF0udmFsdWU7DQogICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoYnV0dG9uSUQpLnNldEF0dHJpYnV0ZShhdHRyaWJ1dGUsIHZhbHVlKTsNCn0NCmZ1bmN0aW9uIGdldExvY2FsRGF0YShkYXRhVHlwZSwgaWQpIHsNCiAgICBsZXQgZGF0YSA9IHt9Ow0KICAgIHN3aXRjaCAoZGF0YVR5cGUpIHsNCiAgICAgICAgY2FzZSAibTN1IjoNCiAgICAgICAgICAgIGRhdGEgPSBTRVJWRVJbInNldHRpbmdzIl1bImZpbGVzIl1bZGF0YVR5cGVdW2lkXTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJoZGhyIjoNCiAgICAgICAgICAgIGRhdGEgPSBTRVJWRVJbInNldHRpbmdzIl1bImZpbGVzIl1bZGF0YVR5cGVdW2lkXTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJmaWx0ZXIiOg0KICAgICAgICBjYXNlICJjdXN0b20tZmlsdGVyIjoNCiAgICAgICAgY2FzZSAiZ3JvdXAtdGl0bGUiOg0KICAgICAgICAgICAgaWYgKGlkID09IC0xKSB7DQogICAgICAgICAgICAgICAgZGF0YVsiYWN0aXZlIl0gPSB0cnVlOw0KICAgICAgICAgICAgICAgIGRhdGFbImNhc2VTZW5zaXRpdmUiXSA9IGZhbHNlOw0KICAgICAgICAgICAgICAgIGRhdGFbImRlc2NyaXB0aW9uIl0gPSAiIjsNCiAgICAgICAgICAgICAgICBkYXRhWyJleGNsdWRlIl0gPSAiIjsNCiAgICAgICAgICAgICAgICBkYXRhWyJmaWx0ZXIiXSA9ICIiOw0KICAgICAgICAgICAgICAgIGRhdGFbImluY2x1ZGUiXSA9ICIiOw0KICAgICAgICAgICAgICAgIGRhdGFbIm5hbWUiXSA9ICIiOw0KICAgICAgICAgICAgICAgIGRhdGFbInR5cGUiXSA9ICJncm91cC10aXRsZSI7DQogICAgICAgICAgICAgICAgZGF0YVsicHJlc2VydmVNYXBwaW5nIl0gPSB0cnVlOw0KICAgICAgICAgICAgICAgIGRhdGFbInN0YXJ0aW5nQ2hhbm5lbCJdID0gU0VSVkVSWyJzZXR0aW5ncyJdWyJtYXBwaW5nLmZpcnN0LmNoYW5uZWwiXTsNCiAgICAgICAgICAgICAgICBkYXRhWyJkZWZhdWx0TWlzc2luZ0VQRyJdID0gIi0iOw0KICAgICAgICAgICAgICAgIFNFUlZFUlsic2V0dGluZ3MiXVsiZmlsdGVyIl1baWRdID0gZGF0YTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGRhdGEgPSBTRVJWRVJbInNldHRpbmdzIl1bImZpbHRlciJdW2lkXTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJ4bWx0diI6DQogICAgICAgICAgICBkYXRhID0gU0VSVkVSWyJzZXR0aW5ncyJdWyJmaWxlcyJdW2RhdGFUeXBlXVtpZF07DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSAidXNlcnMiOg0KICAgICAgICAgICAgZGF0YSA9IFNFUlZFUlsidXNlcnMiXVtpZF1bImRhdGEiXTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJtYXBwaW5nIjoNCiAgICAgICAgICAgIGRhdGEgPSBTRVJWRVJbInhlcGciXVsiZXBnTWFwcGluZyJdW2lkXTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJtM3VHcm91cHMiOg0KICAgICAgICAgICAgZGF0YSA9IFNFUlZFUlsiZGF0YSJdWyJwbGF5bGlzdCJdWyJtM3UiXVsiZ3JvdXBzIl07DQogICAgICAgICAgICBicmVhazsNCiAgICB9DQogICAgcmV0dXJuIGRhdGE7DQp9DQpmdW5jdGlvbiBnZXRPYmpLZXlzKG9iaikgew0KICAgIHZhciBrZXlzID0gbmV3IEFycmF5KCk7DQogICAgZm9yICh2YXIgaSBpbiBvYmopIHsNCiAgICAgICAgaWYgKG9iai5oYXNPd25Qcm9wZXJ0eShpKSkgew0KICAgICAgICAgICAga2V5cy5wdXNoKGkpOw0KICAgICAgICB9DQogICAgfQ0KICAgIHJldHVybiBrZXlzOw0KfQ0KZnVuY3Rpb24gZ2V0QWxsU2VsZWN0ZWRDaGFubmVscygpIHsNCiAgICB2YXIgY2hhbm5lbHMgPSBuZXcgQXJyYXkoKTsNCiAgICBpZiAoQlVMS19FRElUID09IGZhbHNlKSB7DQogICAgICAgIHJldHVybiBjaGFubmVsczsNCiAgICB9DQogICAgdmFyIHRycyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb250ZW50X3RhYmxlIikuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlRSIik7DQogICAgZm9yICh2YXIgaSA9IDE7IGkgPCB0cnMubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgaWYgKHRyc1tpXS5zdHlsZS5kaXNwbGF5ICE9ICJub25lIikgew0KICAgICAgICAgICAgaWYgKHRyc1tpXS5maXJzdENoaWxkLmZpcnN0Q2hpbGQuY2hlY2tlZCA9PSB0cnVlKSB7DQogICAgICAgICAgICAgICAgY2hhbm5lbHMucHVzaCh0cnNbaV0uaWQpOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQogICAgfQ0KICAgIHJldHVybiBjaGFubmVsczsNCn0NCmZ1bmN0aW9uIHNlbGVjdEFsbENoYW5uZWxzKCkgew0KICAgIHZhciBidWxrID0gZmFsc2U7DQogICAgdmFyIHRycyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb250ZW50X3RhYmxlIikuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlRSIik7DQogICAgaWYgKHRyc1swXS5maXJzdENoaWxkLmZpcnN0Q2hpbGQuY2hlY2tlZCA9PSB0cnVlKSB7DQogICAgICAgIGJ1bGsgPSB0cnVlOw0KICAgIH0NCiAgICBmb3IgKHZhciBpID0gMTsgaSA8IHRycy5sZW5ndGg7IGkrKykgew0KICAgICAgICBpZiAodHJzW2ldLnN0eWxlLmRpc3BsYXkgIT0gIm5vbmUiKSB7DQogICAgICAgICAgICBzd2l0Y2ggKGJ1bGspIHsNCiAgICAgICAgICAgICAgICBjYXNlIHRydWU6DQogICAgICAgICAgICAgICAgICAgIHRyc1tpXS5maXJzdENoaWxkLmZpcnN0Q2hpbGQuY2hlY2tlZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgZmFsc2U6DQogICAgICAgICAgICAgICAgICAgIHRyc1tpXS5maXJzdENoaWxkLmZpcnN0Q2hpbGQuY2hlY2tlZCA9IGZhbHNlOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KICAgIH0NCiAgICByZXR1cm47DQp9DQpmdW5jdGlvbiBidWxrRWRpdCgpIHsNCiAgICBCVUxLX0VESVQgPSAhQlVMS19FRElUOw0KICAgIHZhciBjbGFzc05hbWU7DQogICAgdmFyIHJvd3MgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCJidWxrIik7DQogICAgc3dpdGNoIChCVUxLX0VESVQpIHsNCiAgICAgICAgY2FzZSB0cnVlOg0KICAgICAgICAgICAgY2xhc3NOYW1lID0gImJ1bGsgc2hvd0J1bGsiOw0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGNhc2UgZmFsc2U6DQogICAgICAgICAgICBjbGFzc05hbWUgPSAiYnVsayBoaWRlQnVsayI7DQogICAgICAgICAgICBicmVhazsNCiAgICB9DQogICAgZm9yICh2YXIgaSA9IDA7IGkgPCByb3dzLmxlbmd0aDsgaSsrKSB7DQogICAgICAgIHJvd3NbaV0uY2xhc3NOYW1lID0gY2xhc3NOYW1lOw0KICAgICAgICByb3dzW2ldLmNoZWNrZWQgPSBmYWxzZTsNCiAgICB9DQogICAgcmV0dXJuOw0KfQ0KZnVuY3Rpb24gc29ydFRhYmxlKGNvbHVtbikgew0KICAgIC8vY29uc29sZS5sb2coY29sdW1tKTsNCiAgICBpZiAoY29sdW1uID09IENPTFVNTl9UT19TT1JUKSB7DQogICAgICAgIHJldHVybjsNCiAgICB9DQogICAgdmFyIHRhYmxlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnRlbnRfdGFibGUiKTsNCiAgICB2YXIgdGFibGVIZWFkID0gdGFibGUuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlRSIilbMF07DQogICAgdmFyIHRhYmxlSXRlbXMgPSB0YWJsZUhlYWQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlREIik7DQogICAgdmFyIHNvcnRPYmogPSBuZXcgT2JqZWN0KCk7DQogICAgdmFyIHgsIHhWYWx1ZTsNCiAgICB2YXIgdGFibGVIZWFkZXI7DQogICAgdmFyIHNvcnRCeVN0cmluZyA9IGZhbHNlOw0KICAgIGlmIChjb2x1bW4gPiAwICYmIENPTFVNTl9UT19TT1JUID4gMCkgew0KICAgICAgICB0YWJsZUl0ZW1zW0NPTFVNTl9UT19TT1JUXS5jbGFzc05hbWUgPSAicG9pbnRlciI7DQogICAgICAgIHRhYmxlSXRlbXNbY29sdW1uXS5jbGFzc05hbWUgPSAic29ydFRoaXMiOw0KICAgIH0NCiAgICBDT0xVTU5fVE9fU09SVCA9IGNvbHVtbjsNCiAgICB2YXIgcm93cyA9IHRhYmxlLnJvd3M7DQogICAgaWYgKHJvd3NbMV0gIT0gdW5kZWZpbmVkKSB7DQogICAgICAgIHRhYmxlSGVhZGVyID0gcm93c1swXTsNCiAgICAgICAgeCA9IHJvd3NbMV0uZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlREIilbY29sdW1uXTsNCiAgICAgICAgZm9yIChpID0gMTsgaSA8IHJvd3MubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgICAgIHggPSByb3dzW2ldLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJURCIpW2NvbHVtbl07DQogICAgICAgICAgICBzd2l0Y2ggKHguY2hpbGROb2Rlc1swXS50YWdOYW1lLnRvTG93ZXJDYXNlKCkpIHsNCiAgICAgICAgICAgICAgICBjYXNlICJpbnB1dCI6DQogICAgICAgICAgICAgICAgICAgIHhWYWx1ZSA9IHguZ2V0RWxlbWVudHNCeVRhZ05hbWUoIklOUFVUIilbMF0udmFsdWUudG9Mb3dlckNhc2UoKTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAicCI6DQogICAgICAgICAgICAgICAgICAgIHhWYWx1ZSA9IHguZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlAiKVswXS5pbm5lclRleHQudG9Mb3dlckNhc2UoKTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgZGVmYXVsdDogY29uc29sZS5sb2coeC5jaGlsZE5vZGVzWzBdLnRhZ05hbWUpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgaWYgKHhWYWx1ZSA9PSAiIiB8fCB4VmFsdWUgPT0gTmFOKSB7DQogICAgICAgICAgICAgICAgeFZhbHVlID0gaTsNCiAgICAgICAgICAgICAgICBzb3J0T2JqW2ldID0gcm93c1tpXTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgICAgIHN3aXRjaCAoaXNOYU4oeFZhbHVlKSkgew0KICAgICAgICAgICAgICAgICAgICBjYXNlIGZhbHNlOg0KICAgICAgICAgICAgICAgICAgICAgICAgeFZhbHVlID0gcGFyc2VGbG9hdCh4VmFsdWUpOw0KICAgICAgICAgICAgICAgICAgICAgICAgc29ydE9ialt4VmFsdWVdID0gcm93c1tpXTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgICAgICBjYXNlIHRydWU6DQogICAgICAgICAgICAgICAgICAgICAgICBzb3J0QnlTdHJpbmcgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgc29ydE9ialt4VmFsdWUudG9Mb3dlckNhc2UoKSArIGldID0gcm93c1tpXTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KICAgICAgICB3aGlsZSAodGFibGUuZmlyc3RDaGlsZCkgew0KICAgICAgICAgICAgdGFibGUucmVtb3ZlQ2hpbGQodGFibGUuZmlyc3RDaGlsZCk7DQogICAgICAgIH0NCiAgICAgICAgdmFyIHNvcnRWYWx1ZXMgPSBnZXRPYmpLZXlzKHNvcnRPYmopOw0KICAgICAgICBpZiAoc29ydEJ5U3RyaW5nID09IHRydWUpIHsNCiAgICAgICAgICAgIHNvcnRWYWx1ZXMuc29ydCgpOw0KICAgICAgICAgICAgY29uc29sZS5sb2coc29ydFZhbHVlcyk7DQogICAgICAgIH0NCiAgICAgICAgZWxzZSB7DQogICAgICAgICAgICBmdW5jdGlvbiBzb3J0RmxvYXQoYSwgYikgew0KICAgICAgICAgICAgICAgIHJldHVybiBhIC0gYjsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIHNvcnRWYWx1ZXMuc29ydChzb3J0RmxvYXQpOw0KICAgICAgICB9DQogICAgICAgIHRhYmxlLmFwcGVuZENoaWxkKHRhYmxlSGVhZGVyKTsNCiAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBzb3J0VmFsdWVzLmxlbmd0aDsgaSsrKSB7DQogICAgICAgICAgICB0YWJsZS5hcHBlbmRDaGlsZChzb3J0T2JqW3NvcnRWYWx1ZXNbaV1dKTsNCiAgICAgICAgfQ0KICAgIH0NCiAgICByZXR1cm47DQp9DQpmdW5jdGlvbiBjcmVhdGVTZWFyY2hPYmooKSB7DQogICAgU0VBUkNIX01BUFBJTkcgPSBuZXcgT2JqZWN0KCk7DQogICAgdmFyIGRhdGEgPSBTRVJWRVJbInhlcGciXVsiZXBnTWFwcGluZyJdOw0KICAgIHZhciBjaGFubmVscyA9IGdldE9iaktleXMoZGF0YSk7DQogICAgdmFyIGNoYW5uZWxLZXlzID0gWyJ4LWFjdGl2ZSIsICJ4LWNoYW5uZWxJRCIsICJ4LW5hbWUiLCAiX2ZpbGUubTN1Lm5hbWUiLCAieC1ncm91cC10aXRsZSIsICJ4LXhtbHR2LWZpbGUiXTsNCiAgICBjaGFubmVscy5mb3JFYWNoKGlkID0+IHsNCiAgICAgICAgY2hhbm5lbEtleXMuZm9yRWFjaChrZXkgPT4gew0KICAgICAgICAgICAgaWYgKGtleSA9PSAieC1hY3RpdmUiKSB7DQogICAgICAgICAgICAgICAgc3dpdGNoIChkYXRhW2lkXVtrZXldKSB7DQogICAgICAgICAgICAgICAgICAgIGNhc2UgdHJ1ZToNCiAgICAgICAgICAgICAgICAgICAgICAgIFNFQVJDSF9NQVBQSU5HW2lkXSA9ICJvbmxpbmUgIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgICAgICBjYXNlIGZhbHNlOg0KICAgICAgICAgICAgICAgICAgICAgICAgU0VBUkNIX01BUFBJTkdbaWRdID0gIm9mZmxpbmUgIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgICAgIGlmIChrZXkgPT0gIngteG1sdHYtZmlsZSIpIHsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHhtbHR2RmlsZSA9IGdldFZhbHVlRnJvbVByb3ZpZGVyRmlsZShkYXRhW2lkXVtrZXldLCAieG1sdHYiLCAibmFtZSIpOw0KICAgICAgICAgICAgICAgICAgICBpZiAoeG1sdHZGaWxlICE9IHVuZGVmaW5lZCkgew0KICAgICAgICAgICAgICAgICAgICAgICAgU0VBUkNIX01BUFBJTkdbaWRdID0gU0VBUkNIX01BUFBJTkdbaWRdICsgeG1sdHZGaWxlICsgIiAiOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgICAgICAgICBTRUFSQ0hfTUFQUElOR1tpZF0gPSBTRUFSQ0hfTUFQUElOR1tpZF0gKyBkYXRhW2lkXVtrZXldICsgIiAiOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0NCiAgICAgICAgfSk7DQogICAgfSk7DQogICAgcmV0dXJuOw0KfQ0KZnVuY3Rpb24gc2VhcmNoSW5NYXBwaW5nKCkgew0KICAgIHZhciBzZWFyY2hWYWx1ZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzZWFyY2hNYXBwaW5nIikudmFsdWU7DQogICAgdmFyIHRycyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb250ZW50X3RhYmxlIikuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlRSIik7DQogICAgZm9yICh2YXIgaSA9IDE7IGkgPCB0cnMubGVuZ3RoOyArK2kpIHsNCiAgICAgICAgdmFyIGlkID0gdHJzW2ldLmdldEF0dHJpYnV0ZSgiaWQiKTsNCiAgICAgICAgdmFyIGVsZW1lbnQgPSBTRUFSQ0hfTUFQUElOR1tpZF07DQogICAgICAgIHN3aXRjaCAoZWxlbWVudC50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKHNlYXJjaFZhbHVlLnRvTG93ZXJDYXNlKCkpKSB7DQogICAgICAgICAgICBjYXNlIHRydWU6DQogICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpLnN0eWxlLmRpc3BsYXkgPSAiIjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgZmFsc2U6DQogICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpLnN0eWxlLmRpc3BsYXkgPSAibm9uZSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIH0NCiAgICB9DQogICAgcmV0dXJuOw0KfQ0KZnVuY3Rpb24gY2FsY3VsYXRlV3JhcHBlckhlaWdodCgpIHsNCiAgICBpZiAoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImJveC13cmFwcGVyIikpIHsNCiAgICAgICAgdmFyIGVsbSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJib3gtd3JhcHBlciIpOw0KICAgICAgICB2YXIgZGl2cyA9IG5ldyBBcnJheSgibXlTdHJlYW1zQm94IiwgImNsaWVudEluZm8iLCAiY29udGVudCIpOw0KICAgICAgICB2YXIgZWxlbWVudHNIZWlnaHQgPSAwIC0gZWxtLm9mZnNldEhlaWdodDsNCiAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBkaXZzLmxlbmd0aDsgaSsrKSB7DQogICAgICAgICAgICBlbGVtZW50c0hlaWdodCA9IGVsZW1lbnRzSGVpZ2h0ICsgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoZGl2c1tpXSkub2Zmc2V0SGVpZ2h0Ow0KICAgICAgICB9DQogICAgICAgIGVsbS5zdHlsZS5oZWlnaHQgPSB3aW5kb3cuaW5uZXJIZWlnaHQgLSBlbGVtZW50c0hlaWdodCArICJweCI7DQogICAgfQ0KICAgIHJldHVybjsNCn0NCmZ1bmN0aW9uIGNoYW5nZUNoYW5uZWxOdW1iZXIoZWxlbWVudCkgew0KICAgIHZhciBkYklEID0gZWxlbWVudC5wYXJlbnROb2RlLnBhcmVudE5vZGUuaWQ7DQogICAgdmFyIG5ld051bWJlciA9IHBhcnNlRmxvYXQoZWxlbWVudC52YWx1ZSk7DQogICAgdmFyIGNoYW5uZWxOdW1iZXJzID0gW107DQogICAgdmFyIGRhdGEgPSBTRVJWRVJbInhlcGciXVsiZXBnTWFwcGluZyJdOw0KICAgIHZhciBjaGFubmVscyA9IGdldE9iaktleXMoZGF0YSk7DQogICAgaWYgKGlzTmFOKG5ld051bWJlcikpIHsNCiAgICAgICAgYWxlcnQoInt7LmFsZXJ0LmludmFsaWRDaGFubmVsTnVtYmVyfX0iKTsNCiAgICAgICAgcmV0dXJuOw0KICAgIH0NCiAgICBjaGFubmVscy5mb3JFYWNoKGlkID0+IHsNCiAgICAgICAgdmFyIGNoYW5uZWxOdW1iZXIgPSBwYXJzZUZsb2F0KGRhdGFbaWRdWyJ4LWNoYW5uZWxJRCJdKTsNCiAgICAgICAgY2hhbm5lbE51bWJlcnMucHVzaChjaGFubmVsTnVtYmVyKTsNCiAgICB9KTsNCiAgICBmb3IgKHZhciBpID0gMDsgaSA8IGNoYW5uZWxOdW1iZXJzLmxlbmd0aDsgaSsrKSB7DQogICAgICAgIGlmIChjaGFubmVsTnVtYmVycy5pbmRleE9mKG5ld051bWJlcikgPT0gLTEpIHsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICB9DQogICAgICAgIGlmIChNYXRoLmZsb29yKG5ld051bWJlcikgPT0gbmV3TnVtYmVyKSB7DQogICAgICAgICAgICBuZXdOdW1iZXIgPSBuZXdOdW1iZXIgKyAxOw0KICAgICAgICB9DQogICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgbmV3TnVtYmVyID0gbmV3TnVtYmVyICsgMC4xOw0KICAgICAgICAgICAgbmV3TnVtYmVyLnRvRml4ZWQoMSk7DQogICAgICAgICAgICBuZXdOdW1iZXIgPSBNYXRoLnJvdW5kKG5ld051bWJlciAqIDEwKSAvIDEwOw0KICAgICAgICB9DQogICAgfQ0KICAgIGRhdGFbZGJJRF1bIngtY2hhbm5lbElEIl0gPSBuZXdOdW1iZXIudG9TdHJpbmcoKTsNCiAgICBlbGVtZW50LnZhbHVlID0gbmV3TnVtYmVyOw0KICAgIGNvbnNvbGUubG9nKGRhdGFbZGJJRF1bIngtY2hhbm5lbElEIl0pOw0KICAgIGlmIChDT0xVTU5fVE9fU09SVCA9PSAxKSB7DQogICAgICAgIENPTFVNTl9UT19TT1JUID0gLTE7DQogICAgICAgIHNvcnRUYWJsZSgxKTsNCiAgICB9DQogICAgcmV0dXJuOw0KfQ0KZnVuY3Rpb24gYmFja3VwKCkgew0KICAgIHZhciBkYXRhID0gbmV3IE9iamVjdCgpOw0KICAgIGNvbnNvbGUubG9nKCJCYWNrdXAgZGF0YSIpOw0KICAgIHZhciBjbWQgPSAieHRldmVCYWNrdXAiOw0KICAgIGNvbnNvbGUubG9nKCJTRU5EIFRPIFNFUlZFUiIpOw0KICAgIGNvbnNvbGUubG9nKGRhdGEpOw0KICAgIHZhciBzZXJ2ZXIgPSBuZXcgU2VydmVyKGNtZCk7DQogICAgc2VydmVyLnJlcXVlc3QoZGF0YSk7DQogICAgcmV0dXJuOw0KfQ0KZnVuY3Rpb24gdG9nZ2xlQ2hhbm5lbFN0YXR1cyhpZCkgew0KICAgIHZhciBlbGVtZW50Ow0KICAgIHZhciBzdGF0dXM7DQogICAgaWYgKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJhY3RpdmUiKSkgew0KICAgICAgICB2YXIgY2hlY2tib3ggPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYWN0aXZlIik7DQogICAgICAgIHN0YXR1cyA9IChjaGVja2JveCkuY2hlY2tlZDsNCiAgICB9DQogICAgdmFyIGlkcyA9IGdldEFsbFNlbGVjdGVkQ2hhbm5lbHMoKTsNCiAgICBpZiAoaWRzLmxlbmd0aCA9PSAwKSB7DQogICAgICAgIGlkcy5wdXNoKGlkKTsNCiAgICB9DQogICAgaWRzLmZvckVhY2goaWQgPT4gew0KICAgICAgICB2YXIgY2hhbm5lbCA9IFNFUlZFUlsieGVwZyJdWyJlcGdNYXBwaW5nIl1baWRdOw0KICAgICAgICBjaGFubmVsWyJ4LWFjdGl2ZSJdID0gc3RhdHVzOw0KICAgICAgICBzd2l0Y2ggKGNoYW5uZWxbIngtYWN0aXZlIl0pIHsNCiAgICAgICAgICAgIGNhc2UgdHJ1ZToNCiAgICAgICAgICAgICAgICBpZiAoY2hhbm5lbFsieC14bWx0di1maWxlIl0gPT0gIi0iIHx8IGNoYW5uZWxbIngtbWFwcGluZyJdID09ICItIikgew0KICAgICAgICAgICAgICAgICAgICBpZiAoQlVMS19FRElUID09IGZhbHNlKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBhbGVydChjaGFubmVsWyJ4LW5hbWUiXSArICI6IE1pc3NpbmcgWE1MVFYgZmlsZSAvIGNoYW5uZWwiKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNoZWNrYm94LmNoZWNrZWQgPSBmYWxzZTsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBjaGFubmVsWyJ4LWFjdGl2ZSJdID0gZmFsc2U7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSBmYWxzZToNCiAgICAgICAgICAgICAgICAvLyBjb2RlLi4uDQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIH0NCiAgICAgICAgaWYgKGNoYW5uZWxbIngtYWN0aXZlIl0gPT0gZmFsc2UpIHsNCiAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5jbGFzc05hbWUgPSAibm90QWN0aXZlRVBHIjsNCiAgICAgICAgfQ0KICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5jbGFzc05hbWUgPSAiYWN0aXZlRVBHIjsNCiAgICAgICAgfQ0KICAgIH0pOw0KfQ0KZnVuY3Rpb24gcmVzdG9yZSgpIHsNCiAgICBpZiAoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3VwbG9hZCcpKSB7DQogICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd1cGxvYWQnKS5yZW1vdmUoKTsNCiAgICB9DQogICAgdmFyIHJlc3RvcmUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJJTlBVVCIpOw0KICAgIHJlc3RvcmUuc2V0QXR0cmlidXRlKCJ0eXBlIiwgImZpbGUiKTsNCiAgICByZXN0b3JlLnNldEF0dHJpYnV0ZSgiY2xhc3MiLCAibm90VmlzaWJsZSIpOw0KICAgIHJlc3RvcmUuc2V0QXR0cmlidXRlKCJuYW1lIiwgIiIpOw0KICAgIHJlc3RvcmUuaWQgPSAidXBsb2FkIjsNCiAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHJlc3RvcmUpOw0KICAgIHJlc3RvcmUuY2xpY2soKTsNCiAgICByZXN0b3JlLm9uY2hhbmdlID0gZnVuY3Rpb24gKCkgew0KICAgICAgICB2YXIgZmlsZW5hbWUgPSByZXN0b3JlLmZpbGVzWzBdLm5hbWU7DQogICAgICAgIHZhciBjaGVjayA9IGNvbmZpcm0oIkZpbGU6ICIgKyBmaWxlbmFtZSArICJcbnt7LmNvbmZpcm0ucmVzdG9yZX19Iik7DQogICAgICAgIGlmIChjaGVjayA9PSB0cnVlKSB7DQogICAgICAgICAgICB2YXIgcmVhZGVyID0gbmV3IEZpbGVSZWFkZXIoKTsNCiAgICAgICAgICAgIHZhciBmaWxlID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignaW5wdXRbdHlwZT1maWxlXScpLmZpbGVzWzBdOw0KICAgICAgICAgICAgaWYgKGZpbGUpIHsNCiAgICAgICAgICAgICAgICByZWFkZXIucmVhZEFzRGF0YVVSTChmaWxlKTsNCiAgICAgICAgICAgICAgICByZWFkZXIub25sb2FkID0gZnVuY3Rpb24gKCkgew0KICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhyZWFkZXIucmVzdWx0KTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGRhdGEgPSBuZXcgT2JqZWN0KCk7DQogICAgICAgICAgICAgICAgICAgIHZhciBjbWQgPSAieHRldmVSZXN0b3JlIjsNCiAgICAgICAgICAgICAgICAgICAgZGF0YVsiYmFzZTY0Il0gPSByZWFkZXIucmVzdWx0Ow0KICAgICAgICAgICAgICAgICAgICB2YXIgc2VydmVyID0gbmV3IFNlcnZlcihjbWQpOw0KICAgICAgICAgICAgICAgICAgICBzZXJ2ZXIucmVxdWVzdChkYXRhKTsNCiAgICAgICAgICAgICAgICB9Ow0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgZWxzZSB7DQogICAgICAgICAgICAgICAgYWxlcnQoIkZpbGUgY291bGQgbm90IGJlIGxvYWRlZCIpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgcmVzdG9yZS5yZW1vdmUoKTsNCiAgICAgICAgICAgIHJldHVybjsNCiAgICAgICAgfQ0KICAgIH07DQogICAgcmV0dXJuOw0KfQ0KZnVuY3Rpb24gdXBsb2FkTG9nbygpIHsNCiAgICBpZiAoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3VwbG9hZCcpKSB7DQogICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd1cGxvYWQnKS5yZW1vdmUoKTsNCiAgICB9DQogICAgdmFyIHVwbG9hZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIklOUFVUIik7DQogICAgdXBsb2FkLnNldEF0dHJpYnV0ZSgidHlwZSIsICJmaWxlIik7DQogICAgdXBsb2FkLnNldEF0dHJpYnV0ZSgiY2xhc3MiLCAibm90VmlzaWJsZSIpOw0KICAgIHVwbG9hZC5zZXRBdHRyaWJ1dGUoIm5hbWUiLCAiIik7DQogICAgdXBsb2FkLmlkID0gInVwbG9hZCI7DQogICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZCh1cGxvYWQpOw0KICAgIHVwbG9hZC5jbGljaygpOw0KICAgIHVwbG9hZC5vbmJsdXIgPSBmdW5jdGlvbiAoKSB7DQogICAgICAgIGFsZXJ0KCk7DQogICAgfTsNCiAgICB1cGxvYWQub25jaGFuZ2UgPSBmdW5jdGlvbiAoKSB7DQogICAgICAgIHZhciBmaWxlbmFtZSA9IHVwbG9hZC5maWxlc1swXS5uYW1lOw0KICAgICAgICB2YXIgcmVhZGVyID0gbmV3IEZpbGVSZWFkZXIoKTsNCiAgICAgICAgdmFyIGZpbGUgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCdpbnB1dFt0eXBlPWZpbGVdJykuZmlsZXNbMF07DQogICAgICAgIGlmIChmaWxlKSB7DQogICAgICAgICAgICByZWFkZXIucmVhZEFzRGF0YVVSTChmaWxlKTsNCiAgICAgICAgICAgIHJlYWRlci5vbmxvYWQgPSBmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICAgICAgY29uc29sZS5sb2cocmVhZGVyLnJlc3VsdCk7DQogICAgICAgICAgICAgICAgdmFyIGRhdGEgPSBuZXcgT2JqZWN0KCk7DQogICAgICAgICAgICAgICAgdmFyIGNtZCA9ICJ1cGxvYWRMb2dvIjsNCiAgICAgICAgICAgICAgICBkYXRhWyJiYXNlNjQiXSA9IHJlYWRlci5yZXN1bHQ7DQogICAgICAgICAgICAgICAgZGF0YVsiZmlsZW5hbWUiXSA9IGZpbGUubmFtZTsNCiAgICAgICAgICAgICAgICB2YXIgc2VydmVyID0gbmV3IFNlcnZlcihjbWQpOw0KICAgICAgICAgICAgICAgIHNlcnZlci5yZXF1ZXN0KGRhdGEpOw0KICAgICAgICAgICAgICAgIHZhciB1cGRhdGVMb2dvID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3VwZGF0ZS1pY29uJyk7DQogICAgICAgICAgICAgICAgdXBkYXRlTG9nby5jaGVja2VkID0gZmFsc2U7DQogICAgICAgICAgICAgICAgdXBkYXRlTG9nby5jbGFzc05hbWUgPSAiY2hhbmdlZCI7DQogICAgICAgICAgICB9Ow0KICAgICAgICB9DQogICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgYWxlcnQoIkZpbGUgY291bGQgbm90IGJlIGxvYWRlZCIpOw0KICAgICAgICB9DQogICAgICAgIHVwbG9hZC5yZW1vdmUoKTsNCiAgICAgICAgcmV0dXJuOw0KICAgIH07DQp9DQpmdW5jdGlvbiBjaGVja1VuZG8oa2V5KSB7DQogICAgc3dpdGNoIChrZXkpIHsNCiAgICAgICAgY2FzZSAiZXBnTWFwcGluZyI6DQogICAgICAgICAgICBpZiAoVU5ETy5oYXNPd25Qcm9wZXJ0eShrZXkpKSB7DQogICAgICAgICAgICAgICAgU0VSVkVSWyJ4ZXBnIl1ba2V5XSA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkoVU5ET1trZXldKSk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICBVTkRPW2tleV0gPSBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KFNFUlZFUlsieGVwZyJdW2tleV0pKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBkZWZhdWx0Og0KICAgICAgICAgICAgYnJlYWs7DQogICAgfQ0KICAgIHJldHVybjsNCn0NCmZ1bmN0aW9uIHNvcnRTZWxlY3QoZWxlbSkgew0KICAgIHZhciB0bXBBcnkgPSBbXTsNCiAgICB2YXIgc2VsZWN0ZWRWYWx1ZSA9IGVsZW1bZWxlbS5zZWxlY3RlZEluZGV4XS52YWx1ZTsNCiAgICBmb3IgKHZhciBpID0gMDsgaSA8IGVsZW0ub3B0aW9ucy5sZW5ndGg7IGkrKykNCiAgICAgICAgdG1wQXJ5LnB1c2goZWxlbS5vcHRpb25zW2ldKTsNCiAgICB0bXBBcnkuc29ydChmdW5jdGlvbiAoYSwgYikgeyByZXR1cm4gKGEudGV4dCA8IGIudGV4dCkgPyAtMSA6IDE7IH0pOw0KICAgIHdoaWxlIChlbGVtLm9wdGlvbnMubGVuZ3RoID4gMCkNCiAgICAgICAgZWxlbS5vcHRpb25zWzBdID0gbnVsbDsNCiAgICB2YXIgbmV3U2VsZWN0ZWRJbmRleCA9IDA7DQogICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0bXBBcnkubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgZWxlbS5vcHRpb25zW2ldID0gdG1wQXJ5W2ldOw0KICAgICAgICBpZiAoZWxlbS5vcHRpb25zW2ldLnZhbHVlID09IHNlbGVjdGVkVmFsdWUpDQogICAgICAgICAgICBuZXdTZWxlY3RlZEluZGV4ID0gaTsNCiAgICB9DQogICAgZWxlbS5zZWxlY3RlZEluZGV4ID0gbmV3U2VsZWN0ZWRJbmRleDsgLy8gU2V0IG5ldyBzZWxlY3RlZCBpbmRleCBhZnRlciBzb3J0aW5nDQogICAgcmV0dXJuOw0KfQ0KZnVuY3Rpb24gdXBkYXRlTG9nKCkgew0KICAgIGNvbnNvbGUubG9nKCJUT0tFTiIpOw0KICAgIHZhciBzZXJ2ZXIgPSBuZXcgU2VydmVyKCJ1cGRhdGVMb2ciKTsNCiAgICBzZXJ2ZXIucmVxdWVzdChuZXcgT2JqZWN0KCkpOw0KfQ0K" + webUI["html/configuration.html"] = "PCFkb2N0eXBlIGh0bWw+DQo8aHRtbD4NCiAgPGhlYWQ+DQogICAgPG1ldGEgY2hhcnNldD0idXRmLTgiPg0KICAgIDxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgsIGluaXRpYWwtc2NhbGU9MS4wIiAvPiANCiAgICA8dGl0bGU+eFRlVmU8L3RpdGxlPg0KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iY3NzL3NjcmVlbi5jc3MiIHR5cGU9InRleHQvY3NzIj4NCiAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9ImNzcy9iYXNlLmNzcyIgdHlwZT0idGV4dC9jc3MiPg0KICAgIDxzY3JpcHQgbGFuZ3VhZ2U9ImphdmFzY3JpcHQiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJqcy9jb25maWd1cmF0aW9uX3RzLmpzIj48L3NjcmlwdD4NCiAgICA8c2NyaXB0IGxhbmd1YWdlPSJqYXZhc2NyaXB0IiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ianMvbmV0d29ya190cy5qcyI+PC9zY3JpcHQ+DQogICAgPHNjcmlwdCBsYW5ndWFnZT0iamF2YXNjcmlwdCIgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9ImpzL21lbnVfdHMuanMiPjwvc2NyaXB0Pg0KICAgIDxzY3JpcHQgbGFuZ3VhZ2U9ImphdmFzY3JpcHQiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJqcy9zZXR0aW5nc190cy5qcyI+PC9zY3JpcHQ+DQogICAgPHNjcmlwdCBsYW5ndWFnZT0iamF2YXNjcmlwdCIgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9ImpzL2Jhc2VfdHMuanMiPjwvc2NyaXB0Pg0KICA8L2hlYWQ+DQoNCiAgICA8Ym9keSBvbmxvYWQ9ImphdmFzY3JpcHQ6IHJlYWR5Rm9yQ29uZmlndXJhdGlvbigwKTsiPg0KICAgICAgICAgIA0KICAgICAgPGRpdiBpZD0ibG9hZGluZyIgY2xhc3M9ImJsb2NrIj4NCiAgICAgICAgPGRpdiBjbGFzcz0ibG9hZGVyIj48L2Rpdj4NCiAgICAgIDwvZGl2Pg0KDQogICAgICA8ZGl2IGlkPSJoZWFkZXIiIGNsYXNzPSJpbWdDZW50ZXIiPjwvZGl2Pg0KICAgICAgPGRpdiBpZD0iYm94Ij4NCiAgICAgICAgDQogICAgICAgIDx0YWJsZSBpZD0iY2xpZW50SW5mbyIgY2xhc3M9InZpc2libGUiPg0KICAgICAgICAgIDx0cj4NCiAgICAgICAgICAgIDx0ZCBjbGFzcz0idGRLZXkiPlZlcnNpb246PC90ZD4NCiAgICAgICAgICAgIDx0ZCBpZD0idmVyc2lvbiIgY2xhc3M9InRkVmFsIj4mbmJzcDs8L3RkPg0KICAgICAgICAgICAgPHRkIGNsYXNzPSJ0ZEtleSI+T1M6PC90ZD4NCiAgICAgICAgICAgIDx0ZCBpZD0ib3MiIGNsYXNzPSJ0ZFZhbCI+Jm5ic3A7PC90ZD4NCiAgICAgICAgICA8L3RyPg0KICAgICAgICAgIDx0cj4NCiAgICAgICAgICAgIDx0ZCBjbGFzcz0idGRLZXkiPlVVSUQ6PC90ZD4NCiAgICAgICAgICAgIDx0ZCBpZD0idXVpZCIgY2xhc3M9InRkVmFsIj4mbmJzcDs8L3RkPg0KICAgICAgICAgICAgPHRkIGNsYXNzPSJ0ZEtleSI+QXJjaDo8L3RkPg0KICAgICAgICAgICAgPHRkIGlkPSJhcmNoIiBjbGFzcz0idGRWYWwiPiZuYnNwOzwvdGQ+DQogICAgICAgICAgPC90cj4NCiAgICAgICAgICA8dHI+DQogICAgICAgICAgICA8dGQgY2xhc3M9InRkS2V5Ij5TdHJlYW1zOjwvdGQ+DQogICAgICAgICAgICA8dGQgaWQ9InN0cmVhbXMiIGNsYXNzPSJ0ZFZhbCI+Jm5ic3A7PC90ZD4NCiAgICAgICAgICAgIDx0ZCBjbGFzcz0idGRLZXkiPkRWUjo8L3RkPg0KICAgICAgICAgICAgPHRkIGlkPSJEVlIiIGNsYXNzPSJ0ZFZhbCI+Jm5ic3A7PC90ZD4NCiAgICAgICAgICA8L3RyPg0KICAgICAgICA8L3RhYmxlPg0KICAgICAgICANCiAgICAgICAgPGRpdiBpZD0iaGVhZGxpbmUiPg0KICAgICAgICAgIDxoMSBpZD0iaGVhZC10ZXh0IiBjbGFzcz0iY2VudGVyIj5Db25maWd1cmF0aW9uPC9oMT4gICAgICANCiAgICAgICAgPC9kaXY+DQogICAgICAgIDxwIGlkPSJlcnIiIGNsYXNzPSJlcnJvck1zZyBjZW50ZXIiPjwvcD4gICANCiAgICAgICAgPGRpdiBpZD0iY29udGVudCI+DQogICAgICAgICAgICANCiAgICAgICAgPC9kaXY+DQogICAgICAgIDxkaXYgaWQ9ImJveC1mb290ZXIiPg0KICAgICAgICAgIDxpbnB1dCBpZD0ibmV4dCIgY2xhc3M9IiIgdHlwZT0iYnV0dG9uIiBuYW1lPSJuZXh0IiB2YWx1ZT0iTmV4dCIgb25jbGljaz0iamF2YXNjcmlwdDogc2F2ZVdpemFyZCgpOyI+DQogICAgICAgIDwvZGl2Pg0KICAgICAgPC9kaXY+DQogICAgPC9ib2R5Pg0KPC9odG1sPg==" + webUI["html/img/m3u.png"] = "iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAAAXNSR0IArs4c6QAAAAlwSFlzAAAsSwAALEsBpT2WqQAABCRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IlhNUCBDb3JlIDUuNC4wIj4KICAgPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIgogICAgICAgICAgICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgICAgICAgICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyI+CiAgICAgICAgIDx0aWZmOlJlc29sdXRpb25Vbml0PjI8L3RpZmY6UmVzb2x1dGlvblVuaXQ+CiAgICAgICAgIDx0aWZmOkNvbXByZXNzaW9uPjU8L3RpZmY6Q29tcHJlc3Npb24+CiAgICAgICAgIDx0aWZmOlhSZXNvbHV0aW9uPjI4ODwvdGlmZjpYUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6T3JpZW50YXRpb24+MTwvdGlmZjpPcmllbnRhdGlvbj4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+Mjg4PC90aWZmOllSZXNvbHV0aW9uPgogICAgICAgICA8ZXhpZjpQaXhlbFhEaW1lbnNpb24+NTA8L2V4aWY6UGl4ZWxYRGltZW5zaW9uPgogICAgICAgICA8ZXhpZjpDb2xvclNwYWNlPjE8L2V4aWY6Q29sb3JTcGFjZT4KICAgICAgICAgPGV4aWY6UGl4ZWxZRGltZW5zaW9uPjUwPC9leGlmOlBpeGVsWURpbWVuc2lvbj4KICAgICAgICAgPGRjOnN1YmplY3Q+CiAgICAgICAgICAgIDxyZGY6QmFnLz4KICAgICAgICAgPC9kYzpzdWJqZWN0PgogICAgICAgICA8eG1wOk1vZGlmeURhdGU+MjAxOC0wNy0yOFQxOTowNzozMTwveG1wOk1vZGlmeURhdGU+CiAgICAgICAgIDx4bXA6Q3JlYXRvclRvb2w+UGl4ZWxtYXRvciAzLjM8L3htcDpDcmVhdG9yVG9vbD4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgIDwvcmRmOlJERj4KPC94OnhtcG1ldGE+CumjVbcAAAGWSURBVGgF7VoxTgJRFGTFaGKBFnbEcABjb0fiBego7D2ABYmn8ARKRWFNQ6gx4QRQGWJJoY2VhXGdl7Dkh7Dsx3ns3yXvJ5P97L6d92bmhwYqlcWK43gK5L2enP51NP8F7pN721wPnOITZx9qG6HxI8QIZO+9XCHeL+VQKKm8QMyxb6+iCpH528AQYs58xIQWknV8mhDxCjEXWWJCC8maT55fAmOIudpUXAYhMn8dGEHMTZqYsgiR+U+BAcTcrhNTJiEy/xHQg5jOqpjD1RsBP3+id8u3P8TUoij6SuoLIwRDfWOofjLYtteyHa1UfcvvcUT1jqpGauVuHnyAdragjv/TAkley3uhj9Y5ZhDQa2+Olgmhz4IygSWibChNZ4nQFioTWCLKhtJ0lghtoTKBJaJsKE1nidAWKhNYIsqG0nSWCG2hMoElomwoTWeJ0BYqE1giyobSdJYIbaEygSWibChNZ4nQFioTWCLKhtJ0biJzmi1/guXMrpDn/OegO3bXMuAH0TtgAvwARV3y57Q34AGoJkL+AErKZ9cqbH7AAAAAAElFTkSuQmCC" + webUI["html/js/menu.js"] = "DQpmdW5jdGlvbiBzZXRNZW51SXRlbSgpIHsNCg0KICBtZW51ID0gbmV3IE9iamVjdCgpOw0KICBzdWJNZW51ID0gbmV3IE9iamVjdCgpOw0KDQogIHZhciBtZW51X20zdSA9IG5ldyBPYmplY3QoKTsNCiAgbWVudV9tM3VbIl9tZW51VHlwZSJdICAgICAgID0gImlucHV0QXJyYXkiOw0KICBtZW51X20zdVsiX2VsZW1lbnQiXSAgICAgICAgPSAiTEkiOw0KICBtZW51X20zdVsiX2NvbmZpZ0tleSJdICAgICAgPSAiZmlsZXMubTN1IjsNCiAgbWVudV9tM3VbIl90ZXh0Il0gICAgICAgICAgID0gIlBsYXlsaXN0IjsNCiAgbWVudV9tM3VbIl9pY29uIl0gICAgICAgICAgID0gImltZy9tM3UucG5nIjsNCiAgbWVudV9tM3VbIl9oZWFkbGluZSJdICAgICAgID0gIlBsYXlsaXN0czogTG9jYWwgb3IgcmVtb3RlIjsNCiAgbWVudV9tM3VbIl91c2FnZSJdICAgICAgICAgID0gIjxiPkluZm88L2I+PGJyPkF2YWlsYWJpbGl0eTogRmlsZSBhdmFpbGFiaWxpdHkgaW4gcGVyY2VudDxicj5TdHJlYW1zOiAgICAgIE51bWJlciBvZiBzdHJlYW1zIGluIHRoZSBmaWxlLjxicj5ncm91cC10aXRsZTogIFN0cmVhbXMgdGhhdCBhcmUgYXNzaWduZWQgdG8gYSBncm91cC4gU2ltcGxpZmllcyBmaWx0ZXJpbmcgc3RyZWFtczxicj50dmctaWQ6ICAgICAgIFRoaXMgSUQgaXMgdXNlZCBmb3IgYXV0b21hdGljIG1hcHBpbmcsIG11c3QgbWF0Y2ggd2l0aCB0aGUgY2hhbm5lbCBJRCBpbiB0aGUgWE1MVFYgZmlsZS48YnI+VW5pcXVlIElEOiAgICBTdHJlYW1zIHdpdGggYSB1bmlxdWUgSUQgdG8gaWRlbnRpZnkgdGhlbS4gQWxsb3dzIGNoYW5uZWwgbmFtZSBjaGFuZ2VzIGluIHRoZSBNM1Ugd2l0aG91dCBsb3NpbmcgdGhlIFhNTFRWIG1hcHBpbmcgKFBQViAvIGxpdmUgZXZlbnRzKS48YnI+PGJyPjxiPlVzYWdlIE0zVTo8L2I+PGJyPlJlbW90ZSBwbGF5bGlzdDogaHR0cDovL3lvdXIuaXB0di5wcm92aWRlci5jb20vZmlsZS5tM3U8YnI+TG9jYWwgIHBsYXlsaXN0OiAvcGF0aC90by9maWxlLm0zdTxicj48YnI+PGI+VXNhZ2UgSERIb21lUnVuOjwvYj48YnI+SVA6IDE5Mi4xNjguMS4xMDo1MDA0PGJyPiINCiAgbWVudV9tM3VbIm5hbWUiXSAgICAgICAgICAgID0gImZpbGUiOw0KICBtZW51X20zdVsiaWQiXSAgICAgICAgICAgICAgPSAiZmlsZSI7DQogIG1lbnVfbTN1WyJ2YWx1ZSJdICAgICAgICAgICA9IG1lbnVfbTN1WyJuYW1lIl07DQogIG1lbnVfbTN1WyJwbGFjZWhvbGRlciJdICAgICA9ICJQbGF5bGlzdDogbG9jYWwgb3IgcmVtb3RlIjsNCiAgbWVudV9tM3VbIm9uY2xpY2siXSAgICAgICAgID0gImphdmFzY3JpcHQ6IHRvZ2dsZU1lbnUodGhpcyk7IjsNCiAgbWVudV9tM3VbImNsYXNzIl0gICAgICAgICAgID0gIm1lbnUtbm90QWN0aXZlIjsNCg0KDQogIHZhciBtZW51X2ZpbHRlciA9IG5ldyBPYmplY3QoKTsNCiAgbWVudV9maWx0ZXJbIl9tZW51VHlwZSJdICAgID0gImlucHV0QXJyYXkiOw0KICBtZW51X2ZpbHRlclsiX2VsZW1lbnQiXSAgICAgPSAiTEkiOw0KICBtZW51X2ZpbHRlclsiX2NvbmZpZ0tleSJdICAgPSAiZmlsdGVyIjsNCiAgbWVudV9maWx0ZXJbIl90ZXh0Il0gICAgICAgID0gIkZpbHRlciI7DQogIG1lbnVfZmlsdGVyWyJfaWNvbiJdICAgICAgICA9ICJpbWcvZmlsdGVyLnBuZyI7DQogIG1lbnVfZmlsdGVyWyJfaGVhZGxpbmUiXSAgICA9ICJGaWx0ZXIgYnkgTTNVIHBhcmFtZXRlcnMsIGUuZy4gZ3JvdXAtdGl0bGUiOw0KICBtZW51X2ZpbHRlclsiX3VzYWdlIl0gICAgICAgPSAiPGI+VXNhZ2U6PC9iPjxicj5TcG9ydCAtIEFsbCBzcG9ydHMgY2hhbm5lbHM8YnI+U3BvcnQge0hEfSAtIEFsbCBIRCBzcG9ydHMgY2hhbm5lbHM8YnI+U3BvcnQge0hEfSAhe0VTLERFfSAtIEFsbCBIRCBzcG9ydHMgY2hhbm5lbHMsIGJ1dCBubyBTcGFuaXNoIGFuZCBHZXJtYW48YnI+PGJyPlRvIGZpbHRlciB0aGUgc3RyZWFtcyBvZiBhIEhESG9tZVJ1biwgdGhlIHBsYXlsaXN0IG5hbWUgY2FuIGJlIGVudGVyZWQ6PGJyPk15IHR1bmVyIHtIRH0iDQogIC8vbWVudV9maWx0ZXJbIl91c2FnZSJdICAgICAgID0gIjxiPlVzYWdlOjwvYj48YnI+QWxsIHNwb3J0cyBjaGFubmVsczogU3BvcnQ8YnI+QWxsIEhEIHNwb3J0cyBjaGFubmVsczogU3BvcnQge0hEfTxicj5BbGwgSEQgc3BvcnRzIGNoYW5uZWxzLCBidXQgbm8gU3BhbmlzaCBhbmQgR2VybWFuOiBTcG9ydCB7SER9ICF7RVMsREV9Ig0KICBtZW51X2ZpbHRlclsibmFtZSJdICAgICAgICAgPSAiZmlsdGVyIjsNCiAgbWVudV9maWx0ZXJbImlkIl0gICAgICAgICAgID0gIk0zVSI7DQogIG1lbnVfZmlsdGVyWyJ2YWx1ZSJdICAgICAgICA9IG1lbnVfZmlsdGVyWyJuYW1lIl07DQogIG1lbnVfZmlsdGVyWyJwbGFjZWhvbGRlciJdICA9ICJGaWx0ZXIgc3RyZWFtczogU3BvcnQiOw0KICBtZW51X2ZpbHRlclsib25jbGljayJdICAgICAgPSAiamF2YXNjcmlwdDogdG9nZ2xlTWVudSh0aGlzKTsiOw0KICBtZW51X2ZpbHRlclsiY2xhc3MiXSAgICAgICAgPSAibWVudS1ub3RBY3RpdmUiOw0KDQogIHZhciBtZW51X2lkID0gbmV3IE9iamVjdCgpOw0KICBtZW51X2lkWyJfbWVudVR5cGUiXSAgICAgICAgPSAiaW5wdXRBcnJheSI7DQogIG1lbnVfaWRbIl9lbGVtZW50Il0gICAgICAgICA9ICJMSSI7DQogIG1lbnVfaWRbIl9jb25maWdLZXkiXSAgICAgICA9ICJpZCI7DQogIG1lbnVfaWRbIl90ZXh0Il0gICAgICAgICAgICA9ICJQTVMgSUQiOw0KICBtZW51X2lkWyJfaWNvbiJdICAgICAgICAgICAgPSAiaW1nL251bWJlci5wbmciOw0KICBtZW51X2lkWyJfaGVhZGxpbmUiXSAgICAgICAgPSAiU2V0dXAgUE1TIGd1aWRlIG51bWJlciI7DQogIG1lbnVfaWRbIl91c2FnZSJdICAgICAgICAgICA9ICdTb21lIHBsYXlsaXN0cyBoYXZlIHVuaXF1ZSBjaGFubmVsIElEcy48YnI+RW50ZXIgdGhlIGtleXdvcmQgb2YgdGhlIElELiBUaGUgY2hhbm5lbCBhc3NpZ25tZW50IGluIFBNUyB3aWxsIGNoYW5nZSBhcyBhIHJlc3VsdC48YnI+PGJyPmUuZy4gY2hhbm5lbElEPGJyPiNFWFRJTkY6MCB0eXBlPSJzdHJlYW0iIDxiPmNoYW5uZWxJZDwvYj49IjgxIiwgTXkgU3RyZWFtaW5nIENoYW5uZWwgSEQ8YnI+PGJyPk9ubHkgZW50ZXIgaGVyZSBpZiB5b3Uga25vdyB3aGF0IHlvdSBhcmUgZG9pbmchJw0KICBtZW51X2lkWyJuYW1lIl0gICAgICAgICAgICAgPSAiaWQiOw0KICBtZW51X2lkWyJpZCJdICAgICAgICAgICAgICAgPSAiaWQiOw0KICBtZW51X2lkWyJ2YWx1ZSJdICAgICAgICAgICAgPSBtZW51X2lkWyJuYW1lIl07DQogIG1lbnVfaWRbInBsYWNlaG9sZGVyIl0gICAgICA9ICJVbmlxdWUgSUQgZnJvbSB0aGUgTTNVIGZpbGUiOw0KICBtZW51X2lkWyJvbmNsaWNrIl0gICAgICAgICAgPSAiamF2YXNjcmlwdDogdG9nZ2xlTWVudSh0aGlzKTsiOw0KICBtZW51X2lkWyJjbGFzcyJdICAgICAgICAgICAgPSAibWVudS1ub3RBY3RpdmUiOw0KDQoNCiAgdmFyIG1lbnVfeG1sdHYgPSBuZXcgT2JqZWN0KCk7DQogIG1lbnVfeG1sdHZbIl9tZW51VHlwZSJdICAgICA9ICJpbnB1dEFycmF5IjsNCiAgbWVudV94bWx0dlsiX2VsZW1lbnQiXSAgICAgID0gIkxJIjsNCiAgbWVudV94bWx0dlsiX2NvbmZpZ0tleSJdICAgID0gImZpbGVzLnhtbHR2IjsNCiAgbWVudV94bWx0dlsiX3RleHQiXSAgICAgICAgID0gIlhNTFRWIjsNCiAgbWVudV94bWx0dlsiX2ljb24iXSAgICAgICAgID0gImltZy94bWx0di5wbmciOw0KICBtZW51X3htbHR2WyJfaGVhZGxpbmUiXSAgICAgPSAiWE1MVFYgZmlsZXM6IExvY2FsIG9yIHJlbW90ZSI7DQogIG1lbnVfeG1sdHZbIl91c2FnZSJdICAgICAgICA9ICI8Yj5JbmZvOjwvYj48YnI+QXZhaWxhYmlsaXR5OiBGaWxlIGF2YWlsYWJpbGl0eSBpbiBwZXJjZW50PGJyPkNoYW5uZWxzOiAgICAgTnVtYmVyIG9mIGNoYW5uZWxzIGluIHRoZSBmaWxlPGJyPlByb2dyYW1zOiAgICAgTnVtYmVyIG9mIEVQRyBkYXRhPGJyPjxicj48Yj5Vc2FnZTo8L2I+PGJyPlJlbW90ZSBYTUxUViBmaWxlOiBodHRwOi8veW91ci5lcGcucHJvdmlkZXIuY29tL2d1aWRlLnhtbDxicj5Mb2NhbCAgWE1MVFYgZmlsZTogL3BhdGgvdG8vZ3VpZGUueG1sIg0KICBtZW51X3htbHR2WyJuYW1lIl0gICAgICAgICAgPSAieG1sdHYiOw0KICBtZW51X3htbHR2WyJpZCJdICAgICAgICAgICAgPSAieG1sdHYiOw0KICBtZW51X3htbHR2WyJ2YWx1ZSJdICAgICAgICAgPSBtZW51X3htbHR2WyJuYW1lIl07DQogIG1lbnVfeG1sdHZbInBsYWNlaG9sZGVyIl0gICA9ICJYTUxUViBGaWxlOiBsb2NhbCBvciByZW1vdGUiOw0KICBtZW51X3htbHR2WyJvbmNsaWNrIl0gICAgICAgPSAiamF2YXNjcmlwdDogdG9nZ2xlTWVudSh0aGlzKTsiOw0KICBtZW51X3htbHR2WyJjbGFzcyJdICAgICAgICAgPSAibWVudS1ub3RBY3RpdmUiOw0KDQogIG1lbnVfbWFwcGluZyA9IG5ldyBPYmplY3QoKTsNCiAgbWVudV9tYXBwaW5nWyJfZWxlbWVudCJdICAgPSAiTEkiOw0KICBtZW51X21hcHBpbmdbIl90ZXh0Il0gICAgICA9ICJNYXBwaW5nIjsNCiAgbWVudV9tYXBwaW5nWyJfaWNvbiJdICAgICAgPSAiaW1nL21hcHBpbmcucG5nIjsNCiAgbWVudV9tYXBwaW5nWyJfY29uZmlnS2V5Il0gPSAibWFwcGluZyI7DQogIG1lbnVfbWFwcGluZ1siX2hlYWRsaW5lIl0gID0gIlhNTFRWIGFzc2lnbm1lbnQgYW5kIHNvcnRpbmcgb2YgY2hhbm5lbHMiOw0KICBtZW51X21hcHBpbmdbImlkIl0gICAgICAgICA9ICJtYXBwaW5nIjsNCiAgbWVudV9tYXBwaW5nWyJvbmNsaWNrIl0gICAgPSAiamF2YXNjcmlwdDogdG9nZ2xlTWVudSh0aGlzKTsiOw0KICBtZW51X21hcHBpbmdbImNsYXNzIl0gICAgICA9ICJtZW51LW5vdEFjdGl2ZSBwaG9uZSI7DQoNCiAgbWVudV91c2VycyA9IG5ldyBPYmplY3QoKTsNCiAgbWVudV91c2Vyc1siX2VsZW1lbnQiXSAgID0gIkxJIjsNCiAgbWVudV91c2Vyc1siX3RleHQiXSAgICAgID0gIlVzZXJzIjsNCiAgbWVudV91c2Vyc1siX2ljb24iXSAgICAgID0gImltZy91c2Vycy5wbmciOw0KICBtZW51X3VzZXJzWyJfY29uZmlnS2V5Il0gPSAidXNlcnMiOw0KICBtZW51X3VzZXJzWyJfaGVhZGxpbmUiXSAgPSAiQWRtaW5pc3RyYXRpb24gb2YgdXNlcnMgYW5kIHBlcm1pc3Npb25zIjsNCiAgbWVudV91c2Vyc1siaWQiXSAgICAgICAgID0gInVzZXJzIjsNCiAgbWVudV91c2Vyc1sib25jbGljayJdICAgID0gImphdmFzY3JpcHQ6IHRvZ2dsZU1lbnUodGhpcyk7IjsNCiAgbWVudV91c2Vyc1siY2xhc3MiXSAgICAgID0gIm1lbnUtbm90QWN0aXZlIjsNCiAgbWVudV91c2Vyc1siX3VzYWdlIl0gICAgID0gIjxiPkF1dGhvcml6YXRpb24gZ3JvdXBzOjwvYj48YnI+V0VCOiBVc2VycyBjYW4gbG9nIGluIHRvIHRoZSB3ZWIgaW50ZXJmYWNlPGJyPlBNUzogUHJvZ3JhbXMgbGlrZSBQbGV4IGNhbiBhY2Nlc3MgdGhlIGNoYW5uZWwgbGlzdC4gTG9naW4gdmlhIERWUiBJUDogdXNlcm5hbWU6cGFzc3dvcmRAeHRldmUuaXA6cG9ydDxicj5NM1U6IEFsbG93cyBjbGllbnRzIHRvIGRvd25sb2FkIHRoZSBNM1UgcGxheWxpc3QuPGJyPlhNTDogQWxsb3dzIGNsaWVudHMgdG8gZG93bmxvYWQgdGhlIFhNTFRWIGZpbGUuPGJyPkFQSTogQWxsb3dzIGNsaWVudHMgdG8gdXNlIHRoZSBBUEkgaW50ZXJmYWNlLjxicj48YnI+ISEhIEZvciBQTVMgYXV0aGVudGljYXRpb24sIG9ubHkgdGhlIGZvbGxvd2luZyBzcGVjaWFsIGNoYXJhY3RlcnMgYXJlIHZhbGlkOiAhJCgpPS4sLTo7PGJyPjxicj5UaGUgaW5kaXZpZHVhbCBhdXRoZW50aWNhdGlvbiBncm91cHMgY2FuIGJlIGFjdGl2YXRlZCAvIGRlYWN0aXZhdGVkIGluIHRoZSBzZXR0aW5ncyBtZW51LiINCiAgDQogIG1lbnVfc2V0dGluZ3MgPSBuZXcgT2JqZWN0KCk7DQogIG1lbnVfc2V0dGluZ3NbIl9lbGVtZW50Il0gICA9ICJMSSI7DQogIG1lbnVfc2V0dGluZ3NbIl90ZXh0Il0gICAgICA9ICJTZXR0aW5ncyI7DQogIG1lbnVfc2V0dGluZ3NbIl9pY29uIl0gICAgICA9ICJpbWcvc2V0dGluZ3MucG5nIjsNCiAgbWVudV9zZXR0aW5nc1siX2NvbmZpZ0tleSJdID0gInNldHRpbmdzIjsNCiAgbWVudV9zZXR0aW5nc1siX2hlYWRsaW5lIl0gID0gIlNldHRpbmdzIjsNCiAgbWVudV9zZXR0aW5nc1siX3N1Yk1lbnUiXSAgID0gIjcwMSw3MDIsNzAzLDcwNCw3MDUsNzA2LDcwNyw3MDgsNzk5LDcxMCw3MTEsNzEyLDcxMyw3MTQiOw0KICBtZW51X3NldHRpbmdzWyJpZCJdICAgICAgICAgPSAic2V0dGluZ3MiOw0KICBtZW51X3NldHRpbmdzWyJvbmNsaWNrIl0gICAgPSAiamF2YXNjcmlwdDogdG9nZ2xlTWVudSh0aGlzKTsiOw0KICBtZW51X3NldHRpbmdzWyJjbGFzcyJdICAgICAgPSAibWVudS1ub3RBY3RpdmUiOw0KDQogIG1lbnVfbG9nID0gbmV3IE9iamVjdCgpOw0KICBtZW51X2xvZ1siX2VsZW1lbnQiXSAgICAgICAgPSAiTEkiOw0KICBtZW51X2xvZ1siX3RleHQiXSAgICAgICAgICAgPSAiTG9nIjsNCiAgbWVudV9sb2dbIl9pY29uIl0gICAgICAgICAgID0gImltZy9sb2cucG5nIjsNCiAgbWVudV9sb2dbIl9oZWFkbGluZSJdICAgICAgID0gIkxvZyI7DQogIG1lbnVfbG9nWyJfY29uZmlnS2V5Il0gICAgICA9ICJsb2ciOw0KICBtZW51X2xvZ1siaWQiXSAgICAgICAgICAgICAgPSAibG9nIjsNCiAgbWVudV9sb2dbIm9uY2xpY2siXSAgICAgICAgID0gImphdmFzY3JpcHQ6IHRvZ2dsZU1lbnUodGhpcyk7IjsNCiAgbWVudV9sb2dbImNsYXNzIl0gICAgICAgICAgID0gIm1lbnUtbm90QWN0aXZlIjsNCg0KICBtZW51X2xvZ291dCA9IG5ldyBPYmplY3QoKTsNCiAgbWVudV9sb2dvdXRbIl9lbGVtZW50Il0gICA9ICJMSSI7DQogIG1lbnVfbG9nb3V0WyJfdGV4dCJdICAgICAgPSAiTG9nb3V0IjsNCiAgbWVudV9sb2dvdXRbIl9pY29uIl0gICAgICA9ICJpbWcvbG9nb3V0LnBuZyI7DQogIG1lbnVfbG9nb3V0WyJpZCJdICAgICAgICAgPSAibG9nb3V0IjsNCiAgbWVudV9sb2dvdXRbIm9uY2xpY2siXSAgICA9ICJqYXZhc2NyaXB0OiBsb2dvdXQoKTsiOw0KICBtZW51X2xvZ291dFsiY2xhc3MiXSAgICAgID0gIm1lbnUtbm90QWN0aXZlIjsNCg0KICB2YXIgbWVudV9zY2hlZHVsZSA9IG5ldyBPYmplY3QoKTsNCiAgbWVudV9zY2hlZHVsZVsiX21lbnVUeXBlIl0gID0gImlucHV0QXJyYXkiOw0KICBtZW51X3NjaGVkdWxlWyJfZWxlbWVudCJdICAgPSAiTEkiOw0KICBtZW51X3NjaGVkdWxlWyJfY29uZmlnS2V5Il0gPSAidXBkYXRlIjsNCiAgbWVudV9zY2hlZHVsZVsiX3RleHQiXSAgICAgID0gIlNjaGVkdWxlIjsNCiAgbWVudV9zY2hlZHVsZVsiX2ljb24iXSAgICAgID0gImltZy9zY2hlZHVsZS5wbmciOw0KICBtZW51X3NjaGVkdWxlWyJfaGVhZGxpbmUiXSAgPSAiU2NoZWR1bGUgZm9yIHVwZGF0aW5nIE0zVSwgWE1MVFYgZmlsZXMgYW5kIGNyZWF0aW5nIGEgbG9jYWwgYmFja3VwIjsNCiAgbWVudV9zY2hlZHVsZVsiX3VzYWdlIl0gICAgID0gIjxiPlVzYWdlOjwvYj48YnI+MDgxNSA9IDg6MTUgYW08YnI+MTkzMCA9IDc6MzAgcG0iDQogIG1lbnVfc2NoZWR1bGVbIm5hbWUiXSAgICAgICA9ICJ1cGRhdGUiOw0KICBtZW51X3NjaGVkdWxlWyJpZCJdICAgICAgICAgPSAidXBkYXRlIjsNCiAgbWVudV9zY2hlZHVsZVsidmFsdWUiXSAgICAgID0gbWVudV9pZFsibmFtZSJdOw0KICBtZW51X3NjaGVkdWxlWyJwbGFjZWhvbGRlciJdPSAidGltZSBvZiBkYXkgKDI0LWhvdXIgY2xvY2spIjsNCiAgbWVudV9zY2hlZHVsZVsib25jbGljayJdICAgID0gImphdmFzY3JpcHQ6IHRvZ2dsZU1lbnUodGhpcyk7IjsNCiAgbWVudV9zY2hlZHVsZVsiY2xhc3MiXSAgICAgID0gIm1lbnUtbm90QWN0aXZlIjsNCg0KICB2YXIgbWVudV9maWxlc1VwZGF0ZSA9IG5ldyBPYmplY3QoKTsNCiAgbWVudV9maWxlc1VwZGF0ZVsiX2VsZW1lbnQiXSA9ICJMSSI7DQogIG1lbnVfZmlsZXNVcGRhdGVbIl9tZW51VHlwZSJdICAgICA9ICJjaGVja2JveCI7DQogIG1lbnVfZmlsZXNVcGRhdGVbIl9jb25maWdLZXkiXSAgICA9ICJmaWxlcy51cGRhdGUiOw0KICBtZW51X2ZpbGVzVXBkYXRlWyJfbGFiZWwiXSAgICAgICAgPSAiVXBkYXRlIHRoZSBwcm92aWRlciBmaWxlcyBhdCBzeXN0ZW0gc3RhcnR1cCI7DQogIG1lbnVfZmlsZXNVcGRhdGVbIl9oZWFkbGluZSJdICAgICA9ICJVcGRhdGUgdGhlIHByb3ZpZGVyIGZpbGVzIGF0IHN5c3RlbSBzdGFydHVwIjsNCiAgbWVudV9maWxlc1VwZGF0ZVsiX3VzYWdlIl0gICAgICAgID0gIlBsYXlsaXN0cyBhbmQgWE1MVFYgZmlsZXMgYXJlIHVwZGF0ZWQgYnkgeFRlVmUgYXQgc3lzdGVtIHN0YXJ0dXAuIg0KICBtZW51X2ZpbGVzVXBkYXRlWyJuYW1lIl0gICAgICAgICAgPSAiZmlsZXMudXBkYXRlIjsNCiAgbWVudV9maWxlc1VwZGF0ZVsiaWQiXSAgICAgICAgICAgID0gImZpbGVzLnVwZGF0ZSI7DQogIG1lbnVfZmlsZXNVcGRhdGVbInZhbHVlIl0gICAgICAgICA9IG1lbnVfZmlsZXNVcGRhdGVbIm5hbWUiXTsNCiAgbWVudV9maWxlc1VwZGF0ZVsib25jbGljayJdICAgICAgID0gImphdmFzY3JpcHQ6IHRvZ2dsZU1lbnUodGhpcyk7IjsNCiAgbWVudV9maWxlc1VwZGF0ZVsiY2xhc3MiXSAgICAgICAgID0gIm1lbnUtbm90QWN0aXZlIjsNCiAgDQogIHZhciBtZW51X3R1bmVyID0gbmV3IE9iamVjdCgpOw0KICBtZW51X3R1bmVyWyJfZWxlbWVudCJdICAgICAgPSAiTEkiOw0KICBtZW51X3R1bmVyWyJfbWVudVR5cGUiXSAgICAgPSAic2VsZWN0IjsNCiAgbWVudV90dW5lclsiX2NvbmZpZ0tleSJdICAgID0gInR1bmVyIjsNCiAgbWVudV90dW5lclsiX2xhYmVsIl0gICAgICAgID0gIkF2YWlsYWJsZSB0dW5lcnMiOw0KICBtZW51X3R1bmVyWyJfdGV4dCJdICAgICAgICAgPSAiVHVuZXIiOw0KICBtZW51X3R1bmVyWyJfaWNvbiJdICAgICAgICAgPSAiaW1nL3R1bmVyLnBuZyI7DQogIG1lbnVfdHVuZXJbIl9oZWFkbGluZSJdICAgICA9ICJOdW1iZXIgb2YgdHVuZXJzIjsNCiAgbWVudV90dW5lclsiX3VzYWdlIl0gICAgICAgID0gIlRoaXMgc2V0dGluZyBpcyBvbmx5IHVzZWQgYnkgUGxleCBhbmQgRW1ieS48YnI+VGhlIG51bWJlciBvZiBjb25jdXJyZW50IHN0cmVhbXMgYWxsb3dlZCBieSB0aGUgSVBUViBwcm92aWRlci48YnI+QWZ0ZXIgYSBjaGFuZ2UsIHhUZVZlIG11c3QgYmUgZGVsZXRlIGluIHRoZSBQTVMgRFZSIHNldHRpbmdzIGFuZCBzZXQgdXAgYWdhaW4uIg0KICBtZW51X3R1bmVyWyJuYW1lIl0gICAgICAgICAgPSAidHVuZXIiOw0KICBtZW51X3R1bmVyWyJpZCJdICAgICAgICAgICAgPSAidHVuZXIiOw0KICBtZW51X3R1bmVyWyJ2YWx1ZSJdICAgICAgICAgPSBtZW51X3R1bmVyWyJuYW1lIl07DQogIG1lbnVfdHVuZXJbInBsYWNlaG9sZGVyIl0gICA9ICJOdW1iZXIgb2YgdHVuZXJzIjsNCiAgbWVudV90dW5lclsib25jbGljayJdICAgICAgID0gImphdmFzY3JpcHQ6IHRvZ2dsZU1lbnUodGhpcyk7IjsNCiAgbWVudV90dW5lclsiY2xhc3MiXSAgICAgICAgID0gIm1lbnUtbm90QWN0aXZlIjsNCg0KICB2YXIgb3B0aW9uVmFsdWVzID0gbmV3IEFycmF5KCk7DQogIGZvciAodmFyIGkgPSAxOyBpIDw9IDEwMDsgaSsrKSB7DQogICAgb3B0aW9uVmFsdWVzLnB1c2goaSkNCiAgfQ0KICBtZW51X3R1bmVyWyJfb3B0aW9uVmFsdWVzIl0gPSBvcHRpb25WYWx1ZXM7DQogIA0KICB2YXIgbWVudV9lcGcgPSBuZXcgT2JqZWN0KCk7DQogIG1lbnVfZXBnWyJfZWxlbWVudCJdID0gIkxJIjsNCiAgbWVudV9lcGdbIl9tZW51VHlwZSJdICAgICA9ICJzZWxlY3QiOw0KICBtZW51X2VwZ1siX2NvbmZpZ0tleSJdICAgID0gImVwZ1NvdXJjZSI7DQogIG1lbnVfZXBnWyJfbGFiZWwiXSAgICAgICAgPSAiU2VsZWN0aW9uIG9mIHRoZSBFUEcgc291cmNlIjsNCiAgbWVudV9lcGdbIl90ZXh0Il0gICAgICAgICA9ICJFUEcgc291cmNlIjsNCiAgbWVudV9lcGdbIl9oZWFkbGluZSJdICAgICA9ICJTZWxlY3Rpb24gb2YgdGhlIEVQRyBzb3VyY2UiOw0KICBtZW51X2VwZ1siX3VzYWdlIl0gICAgICAgID0gIlBNUzogICBVc2UgRVBHIGRhdGEgZnJvbSBQbGV4IG9yIEVtYnkuPGJyPlhFUEc6ICBVc2Ugb2YgZXh0ZXJuYWwgRVBHIGRhdGEgKFhNTFRWKS48YnI+ICAgICAgIFNldmVyYWwgWE1MVFYgc291cmNlcyBwb3NzaWJsZS48YnI+ICAgICAgIEFsbG93cyBlZGl0aW5nIGFuZCBvcmRlciBjaGFubmVscy48YnI+ICAgICAgIE0zVSAvIFhNTFRWIGV4cG9ydCAoSFRUUCBsaW5rIGZvciBJUFRWIGFwcHMpLiINCiAgbWVudV9lcGdbIm5hbWUiXSAgICAgICAgICA9ICJlcGdTb3VyY2UiOw0KICBtZW51X2VwZ1siaWQiXSAgICAgICAgICAgID0gImVwZ1NvdXJjZSI7DQogIG1lbnVfZXBnWyJ2YWx1ZSJdICAgICAgICAgPSBtZW51X2VwZ1sibmFtZSJdOw0KICBtZW51X2VwZ1sicGxhY2Vob2xkZXIiXSAgID0gIkVQRyBzb3VyY2UiOw0KICBtZW51X2VwZ1sib25jbGljayJdICAgICAgID0gImphdmFzY3JpcHQ6IHRvZ2dsZU1lbnUodGhpcyk7IjsNCiAgbWVudV9lcGdbImNsYXNzIl0gICAgICAgICA9ICJtZW51LW5vdEFjdGl2ZSI7DQogIG1lbnVfZXBnWyJfb3B0aW9uVmFsdWVzIl0gPSBuZXcgQXJyYXkoIlBNUyIsICJYRVBHIik7DQoNCiAgdmFyIG1lbnVfeGVwZyA9IG5ldyBPYmplY3QoKTsNCiAgbWVudV94ZXBnWyJfZWxlbWVudCJdID0gIkxJIjsNCiAgbWVudV94ZXBnWyJfbWVudVR5cGUiXSAgICAgPSAiY2hlY2tib3giOw0KICBtZW51X3hlcGdbIl9jb25maWdLZXkiXSAgICA9ICJ4dGV2ZUF1dG9VcGRhdGUiOw0KICBtZW51X3hlcGdbIl9sYWJlbCJdICAgICAgICA9ICJBdXRvbWF0aWMgdXBkYXRlIG9mIHhUZVZlIjsNCiAgbWVudV94ZXBnWyJfaGVhZGxpbmUiXSAgICAgPSAiQXV0b21hdGljIHVwZGF0ZSBvZiB4VGVWZSI7DQogIG1lbnVfeGVwZ1siX3VzYWdlIl0gICAgICAgID0gIklmIGEgbmV3IHZlcnNpb24gb2YgeFRlVmUgaXMgYXZhaWxhYmxlLCBpdCB3aWxsIGJlIGF1dG9tYXRpY2FsbHkgaW5zdGFsbGVkLiINCiAgbWVudV94ZXBnWyJuYW1lIl0gICAgICAgICAgPSAieHRldmVBdXRvVXBkYXRlIjsNCiAgbWVudV94ZXBnWyJpZCJdICAgICAgICAgICAgPSAieHRldmVBdXRvVXBkYXRlIjsNCiAgbWVudV94ZXBnWyJ2YWx1ZSJdICAgICAgICAgPSBtZW51X3hlcGdbIm5hbWUiXTsNCiAgbWVudV94ZXBnWyJvbmNsaWNrIl0gICAgICAgPSAiamF2YXNjcmlwdDogdG9nZ2xlTWVudSh0aGlzKTsiOw0KICBtZW51X3hlcGdbImNsYXNzIl0gICAgICAgICA9ICJtZW51LW5vdEFjdGl2ZSI7DQoNCiAgdmFyIG1lbnVfYXV0b0JhY2t1cFBhdGggPSBuZXcgT2JqZWN0KCk7DQogIG1lbnVfYXV0b0JhY2t1cFBhdGhbIl9lbGVtZW50Il0gICA9ICJMSSI7DQogIG1lbnVfYXV0b0JhY2t1cFBhdGhbIl9tZW51VHlwZSJdICA9ICJzaW5nbGVJbnB1dCI7DQogIG1lbnVfYXV0b0JhY2t1cFBhdGhbIl9jb25maWdLZXkiXSA9ICJiYWNrdXAucGF0aCI7DQogIG1lbnVfYXV0b0JhY2t1cFBhdGhbIl9sYWJlbCJdICAgICA9ICJMb2NhdGlvbiBmb3IgYXV0b21hdGljIGJhY2t1cHMiOw0KICBtZW51X2F1dG9CYWNrdXBQYXRoWyJfaGVhZGxpbmUiXSAgPSAiTG9jYXRpb24gZm9yIGF1dG9tYXRpYyBiYWNrdXBzIjsNCiAgbWVudV9hdXRvQmFja3VwUGF0aFsiX3VzYWdlIl0gICAgID0gIkJlZm9yZSBhbnkgdXBkYXRlIG9mIHRoZSBwcm92aWRlciBkYXRhIGJ5IHRoZSBzY2hlZHVsZSwgeFRlVmUgY3JlYXRlcyBhIGJhY2t1cC4gVGhlIHBhdGggZm9yIHRoZSBhdXRvbWF0aWMgYmFja3VwcyBjYW4gYmUgY2hhbmdlZC4geFRlVmUgcmVxdWlyZXMgd3JpdGUgcGVybWlzc2lvbiBmb3IgdGhpcyBmb2xkZXIuIg0KICBtZW51X2F1dG9CYWNrdXBQYXRoWyJuYW1lIl0gICAgICAgPSAiYmFja3VwLnBhdGgiOw0KICBtZW51X2F1dG9CYWNrdXBQYXRoWyJpZCJdICAgICAgICAgPSAiYmFja3VwLnBhdGgiOw0KICBtZW51X2F1dG9CYWNrdXBQYXRoWyJ2YWx1ZSJdICAgICAgPSBtZW51X2F1dG9CYWNrdXBQYXRoWyJuYW1lIl07DQogIG1lbnVfYXV0b0JhY2t1cFBhdGhbIm9uY2xpY2siXSAgICA9ICJqYXZhc2NyaXB0OiB0b2dnbGVNZW51KHRoaXMpOyI7DQogIG1lbnVfYXV0b0JhY2t1cFBhdGhbImNsYXNzIl0gICAgICA9ICJtZW51LW5vdEFjdGl2ZSI7DQoNCiAgdmFyIG1lbnVfYXV0b0JhY2t1cEtlZXAgPSBuZXcgT2JqZWN0KCk7DQogIG1lbnVfYXV0b0JhY2t1cEtlZXBbIl9lbGVtZW50Il0gICA9ICJMSSI7DQogIG1lbnVfYXV0b0JhY2t1cEtlZXBbIl9tZW51VHlwZSJdICA9ICJzZWxlY3QiOw0KICBtZW51X2F1dG9CYWNrdXBLZWVwWyJfY29uZmlnS2V5Il0gPSAiYmFja3VwLmtlZXAiOw0KICBtZW51X2F1dG9CYWNrdXBLZWVwWyJfdGV4dCJdICAgICAgPSAiS2VlcCI7DQogIG1lbnVfYXV0b0JhY2t1cEtlZXBbIl9sYWJlbCJdICAgICA9ICJOdW1iZXIgb2YgYmFja3VwcyB0byBrZWVwIjsNCiAgbWVudV9hdXRvQmFja3VwS2VlcFsiX2hlYWRsaW5lIl0gID0gIk51bWJlciBvZiBiYWNrdXBzIHRvIGtlZXAiOw0KICBtZW51X2F1dG9CYWNrdXBLZWVwWyJfdXNhZ2UiXSAgICAgPSAiIg0KICBtZW51X2F1dG9CYWNrdXBLZWVwWyJuYW1lIl0gICAgICAgPSAiYmFja3VwLmtlZXAiOw0KICBtZW51X2F1dG9CYWNrdXBLZWVwWyJpZCJdICAgICAgICAgPSAiYmFja3VwLmtlZXAiOw0KICBtZW51X2F1dG9CYWNrdXBLZWVwWyJ2YWx1ZSJdICAgICAgPSBtZW51X2F1dG9CYWNrdXBLZWVwWyJuYW1lIl07DQogIG1lbnVfYXV0b0JhY2t1cEtlZXBbIm9uY2xpY2siXSAgICA9ICJqYXZhc2NyaXB0OiB0b2dnbGVNZW51KHRoaXMpOyI7DQogIG1lbnVfYXV0b0JhY2t1cEtlZXBbImNsYXNzIl0gICAgICA9ICJtZW51LW5vdEFjdGl2ZSI7DQoNCiAgdmFyIG9wdGlvblZhbHVlcyA9IG5ldyBBcnJheSg1LCAxMCwgMjAsIDMwLCA0MCwgNTApOw0KICBtZW51X2F1dG9CYWNrdXBLZWVwWyJfb3B0aW9uVmFsdWVzIl0gPSBvcHRpb25WYWx1ZXM7DQoNCg0KICB2YXIgbWVudV9idWZmZXIgPSBuZXcgT2JqZWN0KCk7DQogIG1lbnVfYnVmZmVyWyJfZWxlbWVudCJdID0gIkxJIjsNCiAgbWVudV9idWZmZXJbIl9tZW51VHlwZSJdICAgICA9ICJjaGVja2JveCI7DQogIG1lbnVfYnVmZmVyWyJfY29uZmlnS2V5Il0gICAgPSAiYnVmZmVyIjsNCiAgbWVudV9idWZmZXJbIl9sYWJlbCJdICAgICAgICA9ICJTdHJlYW0gYnVmZmVyaW5nIFtFeHBlcmltZW50YWxdIjsNCiAgbWVudV9idWZmZXJbIl9oZWFkbGluZSJdICAgICA9ICJTdHJlYW0gYnVmZmVyaW5nIFtFeHBlcmltZW50YWxdIjsNCiAgbWVudV9idWZmZXJbIl91c2FnZSJdICAgICAgICA9ICJXaXRoIGFjdGl2YXRlZCBidWZmZXIsIHN0cmVhbXMgY2FuIGJlIHBsYXllZCBhbmQgcmVjb3JkZWQgbW9yZSBmbHVlbnRseS48YnI+VGhlIHN0cmVhbSBpcyBwYXNzZWQgZnJvbSB4VGVWZSB0byBQbGV4IC8gRW1ieSINCiAgbWVudV9idWZmZXJbIm5hbWUiXSAgICAgICAgICA9ICJidWZmZXIiOw0KICBtZW51X2J1ZmZlclsiaWQiXSAgICAgICAgICAgID0gImJ1ZmZlciI7DQogIG1lbnVfYnVmZmVyWyJ2YWx1ZSJdICAgICAgICAgPSBtZW51X2J1ZmZlclsibmFtZSJdOw0KICBtZW51X2J1ZmZlclsib25jbGljayJdICAgICAgID0gImphdmFzY3JpcHQ6IHRvZ2dsZU1lbnUodGhpcyk7IjsNCiAgbWVudV9idWZmZXJbImNsYXNzIl0gICAgICAgICA9ICJtZW51LW5vdEFjdGl2ZSI7DQoNCiAgdmFyIG1lbnVfYXBpID0gbmV3IE9iamVjdCgpOw0KICBtZW51X2FwaVsiX2VsZW1lbnQiXSA9ICJMSSI7DQogIG1lbnVfYXBpWyJfbWVudVR5cGUiXSAgICAgPSAiY2hlY2tib3giOw0KICBtZW51X2FwaVsiX2NvbmZpZ0tleSJdICAgID0gImFwaSI7DQogIG1lbnVfYXBpWyJfbGFiZWwiXSAgICAgICAgPSAiQVBJIGludGVyZmFjZSI7DQogIG1lbnVfYXBpWyJfaGVhZGxpbmUiXSAgICAgPSAiQVBJIGludGVyZmFjZSI7DQogIG1lbnVfYXBpWyJfdXNhZ2UiXSAgICAgICAgPSAnVmlhIEFQSSBpbnRlcmZhY2UgaXQgaXMgcG9zc2libGUgdG8gc2VuZCBjb21tYW5kcyB0byB4VGVWZS4gQVBJIGRvY3VtZW50YXRpb24gaXMgYXZhaWxhYmxlIDxhIGhyZWY9Imh0dHBzOi8veHRldmUuZGU/c2Nyb2xsPWFwaSI+aGVyZTwvYT4gJw0KICAvL21lbnVfYXBpWyJfdXNhZ2UiXSAgICAgICAgPSAnVmlhIEFQSSBpbnRlcmZhY2UgaXQgaXMgcG9zc2libGUgdG8gc2VuZCBjb21tYW5kcyB0byB4VGVWZS4gQVBJIGRvY3VtZW50YXRpb24gaXMgYXZhaWxhYmxlIDxhIGhyZWY9Imh0dHA6Ly9sb2NhbGhvc3Q6MTMxMz9zY3JvbGw9YXBpIj5oZXJlPC9hPiAnDQogIG1lbnVfYXBpWyJuYW1lIl0gICAgICAgICAgPSAiYXBpIjsNCiAgbWVudV9hcGlbImlkIl0gICAgICAgICAgICA9ICJhcGkiOw0KICBtZW51X2FwaVsidmFsdWUiXSAgICAgICAgID0gbWVudV9hcGlbIm5hbWUiXTsNCiAgbWVudV9hcGlbIm9uY2xpY2siXSAgICAgICA9ICJqYXZhc2NyaXB0OiB0b2dnbGVNZW51KHRoaXMpOyI7DQogIG1lbnVfYXBpWyJjbGFzcyJdICAgICAgICAgPSAibWVudS1ub3RBY3RpdmUiOw0KDQogIHZhciBtZW51X2F1dGhlbnRpY2F0aW9uV2ViID0gbmV3IE9iamVjdCgpOw0KICBtZW51X2F1dGhlbnRpY2F0aW9uV2ViWyJfZWxlbWVudCJdID0gIkxJIjsNCiAgbWVudV9hdXRoZW50aWNhdGlvbldlYlsiX21lbnVUeXBlIl0gICAgID0gImNoZWNrYm94IjsNCiAgbWVudV9hdXRoZW50aWNhdGlvbldlYlsiX2NvbmZpZ0tleSJdICAgID0gImF1dGhlbnRpY2F0aW9uLndlYiI7DQogIG1lbnVfYXV0aGVudGljYXRpb25XZWJbIl9sYWJlbCJdICAgICAgICA9ICJVc2VyIGF1dGhlbnRpY2F0aW9uIjsNCiAgbWVudV9hdXRoZW50aWNhdGlvbldlYlsiX2hlYWRsaW5lIl0gICAgID0gIlVzZXIgYXV0aGVudGljYXRpb24iOw0KICBtZW51X2F1dGhlbnRpY2F0aW9uV2ViWyJfdXNhZ2UiXSAgICAgICAgPSAiQWNjZXNzIHRvIHhUZVZlIHJlcXVpcmVzIGF1dGhlbnRpY2F0aW9uLiINCiAgbWVudV9hdXRoZW50aWNhdGlvbldlYlsibmFtZSJdICAgICAgICAgID0gImF1dGhlbnRpY2F0aW9uLndlYiI7DQogIG1lbnVfYXV0aGVudGljYXRpb25XZWJbImlkIl0gICAgICAgICAgICA9ICJhdXRoZW50aWNhdGlvbi53ZWIiOw0KICBtZW51X2F1dGhlbnRpY2F0aW9uV2ViWyJ2YWx1ZSJdICAgICAgICAgPSBtZW51X2F1dGhlbnRpY2F0aW9uV2ViWyJuYW1lIl07DQogIG1lbnVfYXV0aGVudGljYXRpb25XZWJbIm9uY2xpY2siXSAgICAgICA9ICJqYXZhc2NyaXB0OiB0b2dnbGVNZW51KHRoaXMpOyI7DQogIG1lbnVfYXV0aGVudGljYXRpb25XZWJbImNsYXNzIl0gICAgICAgICA9ICJtZW51LW5vdEFjdGl2ZSI7DQogIA0KICB2YXIgbWVudV9hdXRoZW50aWNhdGlvblBtcyA9IG5ldyBPYmplY3QoKTsNCiAgbWVudV9hdXRoZW50aWNhdGlvblBtc1siX2VsZW1lbnQiXSA9ICJMSSI7DQogIG1lbnVfYXV0aGVudGljYXRpb25QbXNbIl9tZW51VHlwZSJdICAgICA9ICJjaGVja2JveCI7DQogIG1lbnVfYXV0aGVudGljYXRpb25QbXNbIl9jb25maWdLZXkiXSAgICA9ICJhdXRoZW50aWNhdGlvbi5wbXMiOw0KICBtZW51X2F1dGhlbnRpY2F0aW9uUG1zWyJfbGFiZWwiXSAgICAgICAgPSAiUGxleCBhdXRoZW50aWNhdGlvbi4iOw0KICBtZW51X2F1dGhlbnRpY2F0aW9uUG1zWyJfaGVhZGxpbmUiXSAgICAgPSAiUGxleCBhdXRoZW50aWNhdGlvbi4iOw0KICBtZW51X2F1dGhlbnRpY2F0aW9uUG1zWyJfdXNhZ2UiXSAgICAgICAgPSAiUGxleCByZXF1ZXN0cyBhcmUgb25seSBwb3NzaWJsZSB3aXRoIGF1dGhlbnRpY2F0aW9uLjxicj5XYXJuaW5nISEhIEFmdGVyIGFjdGl2YXRpbmcgdGhpcyBmdW5jdGlvbiB4VGVWZSBtdXN0IGJlIGRlbGV0ZSBpbiB0aGUgUE1TIERWUiBzZXR0aW5ncyBhbmQgc2V0IHVwIGFnYWluLiINCiAgbWVudV9hdXRoZW50aWNhdGlvblBtc1sibmFtZSJdICAgICAgICAgID0gImF1dGhlbnRpY2F0aW9uLnBtcyI7DQogIG1lbnVfYXV0aGVudGljYXRpb25QbXNbImlkIl0gICAgICAgICAgICA9ICJhdXRoZW50aWNhdGlvbi5wbXMiOw0KICBtZW51X2F1dGhlbnRpY2F0aW9uUG1zWyJ2YWx1ZSJdICAgICAgICAgPSBtZW51X2F1dGhlbnRpY2F0aW9uUG1zWyJuYW1lIl07DQogIG1lbnVfYXV0aGVudGljYXRpb25QbXNbIm9uY2xpY2siXSAgICAgICA9ICJqYXZhc2NyaXB0OiB0b2dnbGVNZW51KHRoaXMpOyI7DQogIG1lbnVfYXV0aGVudGljYXRpb25QbXNbImNsYXNzIl0gICAgICAgICA9ICJtZW51LW5vdEFjdGl2ZSI7DQogIA0KICB2YXIgbWVudV9hdXRoZW50aWNhdGlvbk0zdSA9IG5ldyBPYmplY3QoKTsNCiAgbWVudV9hdXRoZW50aWNhdGlvbk0zdVsiX2VsZW1lbnQiXSA9ICJMSSI7DQogIG1lbnVfYXV0aGVudGljYXRpb25NM3VbIl9tZW51VHlwZSJdICAgICA9ICJjaGVja2JveCI7DQogIG1lbnVfYXV0aGVudGljYXRpb25NM3VbIl9jb25maWdLZXkiXSAgICA9ICJhdXRoZW50aWNhdGlvbi5tM3UiOw0KICBtZW51X2F1dGhlbnRpY2F0aW9uTTN1WyJfbGFiZWwiXSAgICAgICAgPSAiTTNVIGF1dGhlbnRpY2F0aW9uLiI7DQogIG1lbnVfYXV0aGVudGljYXRpb25NM3VbIl9oZWFkbGluZSJdICAgICA9ICJNM1UgYXV0aGVudGljYXRpb24uIjsNCiAgbWVudV9hdXRoZW50aWNhdGlvbk0zdVsiX3VzYWdlIl0gICAgICAgID0gIkRvd25sb2FkaW5nIHRoZSBNM1UgZmlsZSB2aWEgYW4gSFRUUCByZXF1ZXN0IGlzIG9ubHkgcG9zc2libGUgd2l0aCBhdXRoZW50aWNhdGlvbi4iDQogIG1lbnVfYXV0aGVudGljYXRpb25NM3VbIm5hbWUiXSAgICAgICAgICA9ICJhdXRoZW50aWNhdGlvbi5tM3UiOw0KICBtZW51X2F1dGhlbnRpY2F0aW9uTTN1WyJpZCJdICAgICAgICAgICAgPSAiYXV0aGVudGljYXRpb24ubTN1IjsNCiAgbWVudV9hdXRoZW50aWNhdGlvbk0zdVsidmFsdWUiXSAgICAgICAgID0gbWVudV9hdXRoZW50aWNhdGlvbk0zdVsibmFtZSJdOw0KICBtZW51X2F1dGhlbnRpY2F0aW9uTTN1WyJvbmNsaWNrIl0gICAgICAgPSAiamF2YXNjcmlwdDogdG9nZ2xlTWVudSh0aGlzKTsiOw0KICBtZW51X2F1dGhlbnRpY2F0aW9uTTN1WyJjbGFzcyJdICAgICAgICAgPSAibWVudS1ub3RBY3RpdmUiOw0KICANCg0KICB2YXIgbWVudV9hdXRoZW50aWNhdGlvblhtbCA9IG5ldyBPYmplY3QoKTsNCiAgbWVudV9hdXRoZW50aWNhdGlvblhtbFsiX2VsZW1lbnQiXSA9ICJMSSI7DQogIG1lbnVfYXV0aGVudGljYXRpb25YbWxbIl9tZW51VHlwZSJdICAgICA9ICJjaGVja2JveCI7DQogIG1lbnVfYXV0aGVudGljYXRpb25YbWxbIl9jb25maWdLZXkiXSAgICA9ICJhdXRoZW50aWNhdGlvbi54bWwiOw0KICBtZW51X2F1dGhlbnRpY2F0aW9uWG1sWyJfbGFiZWwiXSAgICAgICAgPSAiWEVQRyBhdXRoZW50aWNhdGlvbiI7DQogIG1lbnVfYXV0aGVudGljYXRpb25YbWxbIl9oZWFkbGluZSJdICAgICA9ICJYRVBHIGF1dGhlbnRpY2F0aW9uIjsNCiAgbWVudV9hdXRoZW50aWNhdGlvblhtbFsiX3VzYWdlIl0gICAgICAgID0gIkRvd25sb2FkaW5nIHRoZSBYRVBHIChYTUxUVikgZmlsZSB2aWEgYW4gSFRUUCByZXF1ZXN0IGlzIG9ubHkgcG9zc2libGUgd2l0aCBhdXRoZW50aWNhdGlvbi4iDQogIG1lbnVfYXV0aGVudGljYXRpb25YbWxbIm5hbWUiXSAgICAgICAgICA9ICJhdXRoZW50aWNhdGlvbi54bWwiOw0KICBtZW51X2F1dGhlbnRpY2F0aW9uWG1sWyJpZCJdICAgICAgICAgICAgPSAiYXV0aGVudGljYXRpb24ueG1sIjsNCiAgbWVudV9hdXRoZW50aWNhdGlvblhtbFsidmFsdWUiXSAgICAgICAgID0gbWVudV9hdXRoZW50aWNhdGlvblhtbFsibmFtZSJdOw0KICBtZW51X2F1dGhlbnRpY2F0aW9uWG1sWyJvbmNsaWNrIl0gICAgICAgPSAiamF2YXNjcmlwdDogdG9nZ2xlTWVudSh0aGlzKTsiOw0KICBtZW51X2F1dGhlbnRpY2F0aW9uWG1sWyJjbGFzcyJdICAgICAgICAgPSAibWVudS1ub3RBY3RpdmUiOw0KDQogIHZhciBtZW51X2F1dGhlbnRpY2F0aW9uQXBpID0gbmV3IE9iamVjdCgpOw0KICBtZW51X2F1dGhlbnRpY2F0aW9uQXBpWyJfZWxlbWVudCJdID0gIkxJIjsNCiAgbWVudV9hdXRoZW50aWNhdGlvbkFwaVsiX21lbnVUeXBlIl0gICAgID0gImNoZWNrYm94IjsNCiAgbWVudV9hdXRoZW50aWNhdGlvbkFwaVsiX2NvbmZpZ0tleSJdICAgID0gImF1dGhlbnRpY2F0aW9uLmFwaSI7DQogIG1lbnVfYXV0aGVudGljYXRpb25BcGlbIl9sYWJlbCJdICAgICAgICA9ICJBUEkgYXV0aGVudGljYXRpb24iOw0KICBtZW51X2F1dGhlbnRpY2F0aW9uQXBpWyJfaGVhZGxpbmUiXSAgICAgPSAiQVBJIGF1dGhlbnRpY2F0aW9uIjsNCiAgbWVudV9hdXRoZW50aWNhdGlvbkFwaVsiX3VzYWdlIl0gICAgICAgID0gIkFjY2VzcyB0byB0aGUgQVBJIGludGVyZmFjZSBpcyBvbmx5IHBvc3NpYmxlIHdpdGggYXV0aGVudGljYXRpb24uIg0KICBtZW51X2F1dGhlbnRpY2F0aW9uQXBpWyJuYW1lIl0gICAgICAgICAgPSAiYXV0aGVudGljYXRpb24uYXBpIjsNCiAgbWVudV9hdXRoZW50aWNhdGlvbkFwaVsiaWQiXSAgICAgICAgICAgID0gImF1dGhlbnRpY2F0aW9uLmFwaSI7DQogIG1lbnVfYXV0aGVudGljYXRpb25BcGlbInZhbHVlIl0gICAgICAgICA9IG1lbnVfYXV0aGVudGljYXRpb25BcGlbIm5hbWUiXTsNCiAgbWVudV9hdXRoZW50aWNhdGlvbkFwaVsib25jbGljayJdICAgICAgID0gImphdmFzY3JpcHQ6IHRvZ2dsZU1lbnUodGhpcyk7IjsNCiAgbWVudV9hdXRoZW50aWNhdGlvbkFwaVsiY2xhc3MiXSAgICAgICAgID0gIm1lbnUtbm90QWN0aXZlIjsNCiAgDQogIA0KICAvLyBNYWluIG1lbnUNCiAgbWVudVsxMF0gPSBtZW51X20zdTsNCg0KICBzd2l0Y2goY29uZmlnWyJlcGdTb3VyY2UiXSkgew0KICAgIGNhc2UgIlBNUyI6DQogICAgICBtZW51WzIwXSA9IG1lbnVfaWQ7DQogICAgICBicmVhazsNCiAgICANCiAgICBjYXNlICJYTUxUViI6DQogICAgICBtZW51WzQwXSA9IG1lbnVfeG1sdHY7DQogICAgICBicmVhazsNCg0KICAgIGNhc2UgIlhFUEciOg0KICAgICAgbWVudVs0MF0gPSBtZW51X3htbHR2Ow0KICAgICAgbWVudVs1MF0gPSBtZW51X21hcHBpbmc7DQogICAgICBicmVhazsNCiAgfQ0KICANCiAgbWVudVszMF0gPSBtZW51X2ZpbHRlcjsNCiAgDQogIGlmIChjb25maWdbImF1dGhlbnRpY2F0aW9uLndlYiJdID09IHRydWUpIHsNCiAgICBtZW51WzYwXSA9IG1lbnVfdXNlcnM7DQogIH0NCg0KICBtZW51WzcwXSA9IG1lbnVfc2V0dGluZ3M7DQogIG1lbnVbODBdID0gbWVudV9sb2c7DQogIGlmIChjb25maWdbImF1dGhlbnRpY2F0aW9uLndlYiJdID09IHRydWUpIHsNCiAgICBtZW51WzEwMF0gPSBtZW51X2xvZ291dDsNCiAgfSANCiAgDQoNCiAgLy8gU3ViLU1lbnUNCg0KICBzdWJNZW51WzcwMV0gPSBtZW51X3NjaGVkdWxlOw0KICBzdWJNZW51WzcwMl0gPSBtZW51X2ZpbGVzVXBkYXRlOw0KICBzdWJNZW51WzcwM10gPSBtZW51X3R1bmVyOw0KICBzdWJNZW51WzcwNF0gPSBtZW51X2VwZzsNCiAgc3ViTWVudVs3MDVdID0gbWVudV94ZXBnOw0KICBzdWJNZW51WzcwNl0gPSBtZW51X2F1dG9CYWNrdXBQYXRoOw0KICBzdWJNZW51WzcwN10gPSBtZW51X2F1dG9CYWNrdXBLZWVwOw0KICBzdWJNZW51WzcwOF0gPSBtZW51X2J1ZmZlcjsNCiAgDQogIHN1Yk1lbnVbNzEwXSA9IG1lbnVfYXV0aGVudGljYXRpb25XZWI7DQogIA0KICBpZiAoY29uZmlnWyJhdXRoZW50aWNhdGlvbi53ZWIiXSA9PSB0cnVlKSB7DQogICAgc3ViTWVudVs3MTFdID0gbWVudV9hdXRoZW50aWNhdGlvblBtczsNCiAgICBzdWJNZW51WzcxMl0gPSBtZW51X2F1dGhlbnRpY2F0aW9uTTN1Ow0KICAgIHN1Yk1lbnVbNzEzXSA9IG1lbnVfYXV0aGVudGljYXRpb25YbWw7DQogICAgc3ViTWVudVs3MTRdID0gbWVudV9hdXRoZW50aWNhdGlvbkFwaTsNCiAgfQ0KDQogIHN1Yk1lbnVbNzk5XSA9IG1lbnVfYXBpOw0KDQogIA0KDQogIHJldHVybg0KfQ0KDQpmdW5jdGlvbiBjcmVhdGVNZW51KCkgew0KDQogIHNob3dFbGVtZW50KCJwb3B1cCIsIGZhbHNlKTsNCg0KICAvL2NvbnNvbGUubG9nKGNvbmZpZyk7DQogIHNldE1lbnVJdGVtKCk7DQogIHZhciBtZW51SXRlbXMgPSBnZXRPYmpLZXlzKG1lbnUpDQogIHZhciBuYXYgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgiTkFWIilbMF07DQogIG5hdi5pbm5lckhUTUwgPSAiIjsNCiAgdmFyIG5ld0l0ZW0gPSBuZXcgT2JqZWN0KCk7DQoNCiAgZm9yICh2YXIgaSA9IDA7IGkgPCBtZW51SXRlbXMubGVuZ3RoOyBpKyspIHsNCg0KICAgIA0KICAgIHZhciBuZXdJdGVtID0gbWVudVttZW51SXRlbXNbaV1dOw0KICAgIG5ld0l0ZW1bImlkIl0gPSBtZW51SXRlbXNbaV07DQoNCiAgICANCiAgICBzd2l0Y2gobmV3SXRlbS5oYXNPd25Qcm9wZXJ0eSgiX2ljb24iKSkgew0KICAgICAgY2FzZSB0cnVlOiANCiAgICAgICAgdmFyIGl0ZW1UZXh0ID0gbmV3SXRlbVsiX3RleHQiXTsNCiAgICAgICAgZGVsZXRlIG5ld0l0ZW1bIl90ZXh0Il0NCiAgICAgICAgbmF2LmFwcGVuZENoaWxkKGNyZWF0ZUVsZW1lbnQobmV3SXRlbSkpOw0KICAgICAgICBuZXdJdGVtWyJfdGV4dCJdID0gaXRlbVRleHQ7DQogICAgICAgIHZhciBuZXdJY29uID0gbmV3IE9iamVjdCgpOw0KICAgICAgICBuZXdJY29uWyJfZWxlbWVudCJdID0gIklNRyI7DQogICAgICAgIG5ld0ljb25bInNyYyJdID0gbmV3SXRlbVsiX2ljb24iXTsNCg0KICAgICAgICB2YXIgY3VycmVudEVsZW1lbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChtZW51SXRlbXNbaV0pOw0KICAgICAgICBjdXJyZW50RWxlbWVudC5hcHBlbmRDaGlsZChjcmVhdGVFbGVtZW50KG5ld0ljb24pKTsNCg0KDQogICAgICAgIHZhciB0ZXh0ID0gbmV3IE9iamVjdCgpOw0KICAgICAgICB0ZXh0WyJfZWxlbWVudCJdID0gIlAiDQogICAgICAgIHRleHRbIl90ZXh0Il0gPSBpdGVtVGV4dDsNCiAgICAgICAgdGV4dFsiY2xhc3MiXSA9ICJuYXYtdGV4dCINCiAgICAgICAgY3VycmVudEVsZW1lbnQuYXBwZW5kQ2hpbGQoY3JlYXRlRWxlbWVudCh0ZXh0KSk7DQogICAgICAgIGJyZWFrOw0KDQogICAgICBkZWZhdWx0Og0KICAgICAgICBuYXYuYXBwZW5kQ2hpbGQoY3JlYXRlRWxlbWVudChuZXdJY29uKSk7DQogICAgICAgIGJyZWFrOw0KICAgIH0NCg0KICB9DQogIGlmIChhY3RpdmVNZW51ICE9IHVuZGVmaW5lZCkgew0KICAgIC8vY29uc29sZS5sb2coYWN0aXZlTWVudSk7DQogICAgdG9nZ2xlTWVudShhY3RpdmVNZW51KTsNCiAgfQ0KDQogIHJldHVybg0KfQ0KDQpmdW5jdGlvbiB0b2dnbGVNZW51KGVsbSkgew0KICAvL3Nob3dTdHJlYW1zKGZhbHNlKTsNCiAgY2xlYXJJbnRlcnZhbChsb2dJbnRlcnZhbCkNCiAgYWN0aXZlTWVudSA9IGVsbTsNCiAgdmFyIGl0ZW0gPSBtZW51W2VsbS5pZF0NCiAgdmFyIGRpdiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzZXR0aW5ncyIpOw0KICBkaXYuaW5uZXJIVE1MID0gIiI7DQogIA0KICAvLyBTZXQgSGVhZGxpbmUNCiAgdmFyIGhlYWRsaW5lID0gbmV3IE9iamVjdCgpOw0KICBoZWFkbGluZVsiX2VsZW1lbnQiXSA9ICJINCI7DQogIGhlYWRsaW5lWyJfdGV4dCJdID0gaXRlbVsiX2hlYWRsaW5lIl07DQogIGRpdi5hcHBlbmRDaGlsZChjcmVhdGVFbGVtZW50KGhlYWRsaW5lKSk7DQoNCiAgLy8gU3ViLU1lbnUNCiAgaWYgKGl0ZW0uaGFzT3duUHJvcGVydHkoIl9zdWJNZW51IikgPT0gdHJ1ZSkgew0KICAgIG9wZW5TdWJNZW51KGl0ZW0pOw0KICAgIHJldHVybg0KICB9DQoNCiAgLy8gTWFwcGluZywgVXNlcnMsIExvZywgRmlsZXMNCiAgc3dpdGNoKGl0ZW1bIl9jb25maWdLZXkiXSkgew0KICAgIGNhc2UgIm1hcHBpbmciOiAgICAgb3Blbk1hcHBpbmdFZGl0b3IoaXRlbSk7IHJldHVybjsgYnJlYWs7DQogICAgY2FzZSAidXNlcnMiOiAgICAgICBvcGVuVXNlcnMoaXRlbSk7IHJldHVybjsgYnJlYWs7DQogICAgY2FzZSAibG9nIjogICAgICAgICBzaG93TG9nKGl0ZW0pOyByZXR1cm47IGJyZWFrOw0KICAgIGNhc2UgImZpbGVzLm0zdSI6ICAgb3BlbkZpbGVzKGl0ZW0sICJtM3UiKTsgcmV0dXJuOyBicmVhazsNCiAgICBjYXNlICJmaWxlcy54bWx0diI6IG9wZW5GaWxlcyhpdGVtLCAieG1sdHYiKTsgcmV0dXJuOyBicmVhazsNCg0KICAgIGNhc2UgImZpbHRlciI6ICAgICAgc2hvd1N0cmVhbXModHJ1ZSk7IGJyZWFrOw0KICB9DQoNCiANCg0KICB2YXIgbmV3SFIgPSBuZXcgT2JqZWN0KCk7DQogIG5ld0hSWyJfZWxlbWVudCJdID0gIkhSIg0KICBkaXYuYXBwZW5kQ2hpbGQoY3JlYXRlRWxlbWVudChuZXdIUikpOw0KICANCiAgdmFyIG5ld0VudHJ5ID0gbmV3IE9iamVjdCgpOw0KICBuZXdFbnRyeVsiX2VsZW1lbnQiXSAgPSAiSU5QVVQiOw0KICBuZXdFbnRyeVsidHlwZSJdID0gImJ1dHRvbiI7DQogIC8vbmV3RW50cnlbImNsYXNzIl0gPSAic2F2ZSI7DQogIG5ld0VudHJ5WyJ2YWx1ZSJdID0gIlNhdmUiOw0KICBuZXdFbnRyeVsib25jbGljayJdID0gInNhdmVEYXRhMignc2V0dGluZ3MnKSINCiAgZGl2LmFwcGVuZENoaWxkKGNyZWF0ZUVsZW1lbnQobmV3RW50cnkpKTsNCg0KDQogIHZhciBuZXdXcmFwcGVyID0gbmV3IE9iamVjdCgpOw0KICBuZXdXcmFwcGVyWyJfZWxlbWVudCJdICA9ICJESVYiOw0KICBuZXdXcmFwcGVyWyJpZCJdICAgICAgICA9ICJib3gtd3JhcHBlciI7DQogIGRpdi5hcHBlbmRDaGlsZChjcmVhdGVFbGVtZW50KG5ld1dyYXBwZXIpKTsNCg0KICBkaXYgPSBkaXYubGFzdENoaWxkOw0KICANCiAgZGl2LmFwcGVuZENoaWxkKGNyZWF0ZU1lbnVJdGVtKGl0ZW0pKQ0KDQogIC8vIHVzYWdlIEluZm8gIA0KICBzd2l0Y2gobWVudVthY3RpdmVNZW51LmlkXS5oYXNPd25Qcm9wZXJ0eSgiX3VzYWdlIikpIHsNCiAgICBjYXNlIHRydWU6IA0KICAgICAgdmFyIHVzYWdlSXRlbSA9IG5ldyBPYmplY3QoKTsNCiAgICAgIHVzYWdlSXRlbVsiX2VsZW1lbnQiXSA9ICJQUkUiDQogICAgICB1c2FnZUl0ZW1bIl90ZXh0Il0gICAgPSBtZW51W2FjdGl2ZU1lbnUuaWRdWyJfdXNhZ2UiXTsNCiAgICAgIGRpdi5hcHBlbmRDaGlsZChjcmVhdGVFbGVtZW50KHVzYWdlSXRlbSkpOw0KICB9DQogIA0KICBjYWxjdWxhdGVXcmFwcGVySGVpZ2h0KCk7DQoNCn0NCg0KZnVuY3Rpb24gY3JlYXRlTWVudUl0ZW0oaXRlbSkgew0KICB2YXIgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIkRJViIpOw0KICBzd2l0Y2goaXRlbVsiX21lbnVUeXBlIl0pIHsNCiAgICBjYXNlICJpbnB1dEFycmF5IjoNCiAgICAgIGlmIChjb25maWcuaGFzT3duUHJvcGVydHkoaXRlbVsiX2NvbmZpZ0tleSJdKSA9PSB0cnVlKSB7DQogICAgICAgIHZhciB2YWx1ZSA9IGNvbmZpZ1tpdGVtWyJfY29uZmlnS2V5Il1dOw0KICAgICAgfSBlbHNlIHsNCiAgICAgICAgdmFyIHZhbHVlID0gbmV3IEFycmF5KCk7DQogICAgICB9DQogICAgICANCiAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdmFsdWUubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgdmFyIG5ld0VudHJ5ID0gbmV3IE9iamVjdCgpOw0KICAgICAgICBuZXdFbnRyeSA9IGl0ZW0NCiAgICAgICAgZGVsZXRlIG5ld0VudHJ5WyJvbmNsaWNrIl07DQogICAgICAgIG5ld0VudHJ5WyJfZWxlbWVudCJdICA9ICJJTlBVVCI7DQogICAgICAgIG5ld0VudHJ5WyJ2YWx1ZSJdICAgICA9IHZhbHVlW2ldOw0KICAgICAgICBuZXdFbnRyeVsidHlwZSJdICAgICAgPSAic2VhcmNoIjsNCiAgICAgICAgbmV3RW50cnlbImRhdGEtbWVudXR5cGUiXSA9IGl0ZW1bIl9tZW51VHlwZSJdOw0KICAgICAgICBuZXdFbnRyeVsiZGF0YS1tZW51a2V5Il0gPSBpdGVtWyJfY29uZmlnS2V5Il07DQogICAgICAgIGVsZW1lbnQuYXBwZW5kQ2hpbGQoY3JlYXRlRWxlbWVudChuZXdFbnRyeSkpOw0KDQogICAgICB9DQogICAgICAvLyBOZXcgZW50cnkgZm9yIGFycmF5DQogICAgICB2YXIgbmV3RW50cnkgPSBuZXcgT2JqZWN0KCk7DQogICAgICBuZXdFbnRyeVsiX2VsZW1lbnQiXSAgICAgID0gIklOUFVUIjsNCiAgICAgIG5ld0VudHJ5WyJ0eXBlIl0gICAgICAgICAgPSAic2VhcmNoIjsNCiAgICAgIG5ld0VudHJ5WyJuYW1lIl0gICAgICAgICAgPSBpdGVtWyJuYW1lIl07DQogICAgICBuZXdFbnRyeVsicGxhY2Vob2xkZXIiXSAgID0gaXRlbVsicGxhY2Vob2xkZXIiXTsNCiAgICAgIG5ld0VudHJ5WyJ2YWx1ZSJdICAgICAgICAgPSAiIjsNCiAgICAgIG5ld0VudHJ5WyJkYXRhLW1lbnV0eXBlIl0gPSBpdGVtWyJfbWVudVR5cGUiXTsNCiAgICAgIG5ld0VudHJ5WyJkYXRhLW1lbnVrZXkiXSAgPSBpdGVtWyJfY29uZmlnS2V5Il07DQogICAgICBlbGVtZW50LmFwcGVuZENoaWxkKGNyZWF0ZUVsZW1lbnQobmV3RW50cnkpKTsNCiAgICAgIGJyZWFrOw0KICANCiAgICBjYXNlICJzaW5nbGVJbnB1dCI6DQogICAgICB2YXIgdmFsdWUgPSBjb25maWdbaXRlbVsiX2NvbmZpZ0tleSJdXTsNCiAgICAgIGlmICh2YWx1ZSA9PSB1bmRlZmluZWQpIHsNCiAgICAgICAgdmFsdWUgPSAiIjsNCiAgICAgIH0NCiAgICAgIHZhciBuZXdFbnRyeSA9IG5ldyBPYmplY3QoKTsNCiAgICAgIG5ld0VudHJ5ID0gaXRlbTsNCiAgICAgIGRlbGV0ZSBuZXdFbnRyeVsib25jbGljayJdOw0KICAgICAgbmV3RW50cnlbIl9lbGVtZW50Il0gID0gIklOUFVUIjsNCiAgICAgIG5ld0VudHJ5WyJ2YWx1ZSJdICAgICA9IHZhbHVlOw0KICAgICAgbmV3RW50cnlbInR5cGUiXSAgICAgID0gInNlYXJjaCI7DQogICAgICBuZXdFbnRyeVsiZGF0YS1tZW51dHlwZSJdID0gaXRlbVsiX21lbnVUeXBlIl07DQogICAgICBuZXdFbnRyeVsiZGF0YS1tZW51a2V5Il0gPSBpdGVtWyJfY29uZmlnS2V5Il07DQogICAgICBlbGVtZW50LmFwcGVuZENoaWxkKGNyZWF0ZUVsZW1lbnQobmV3RW50cnkpKTsNCiAgICAgIGJyZWFrOw0KDQogICAgY2FzZSAiY2hlY2tib3giOg0KICAgICAgdmFyIHZhbHVlID0gY29uZmlnW2l0ZW1bIl9jb25maWdLZXkiXV07DQogICAgICBpZiAodmFsdWUgPT0gdW5kZWZpbmVkKSB7DQogICAgICAgIHZhbHVlID0gZmFsc2U7DQogICAgICB9DQogICAgICB2YXIgbmV3RW50cnkgPSBuZXcgT2JqZWN0KCk7DQogICAgICBuZXdFbnRyeSA9IGl0ZW07DQogICAgICBkZWxldGUgbmV3RW50cnlbIm9uY2xpY2siXTsNCiAgICAgIG5ld0VudHJ5WyJfZWxlbWVudCJdICA9ICJJTlBVVCI7DQogICAgICBuZXdFbnRyeVsidmFsdWUiXSAgICAgPSB2YWx1ZTsNCiAgICAgIG5ld0VudHJ5WyJ0eXBlIl0gICAgICA9ICJjaGVja2JveCI7DQogICAgICBuZXdFbnRyeVsiZGF0YS1tZW51dHlwZSJdID0gaXRlbVsiX21lbnVUeXBlIl07DQogICAgICBuZXdFbnRyeVsiZGF0YS1tZW51a2V5Il0gPSBpdGVtWyJfY29uZmlnS2V5Il07DQogICAgICBlbGVtZW50LmFwcGVuZENoaWxkKGNyZWF0ZUVsZW1lbnQobmV3RW50cnkpKTsNCiAgICAgIGVsZW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIklOUFVUIilbMF0uY2hlY2tlZCA9IHZhbHVlOw0KICAgICAgYnJlYWs7DQogICAgDQogICAgY2FzZSAic2VsZWN0IjoNCiAgICAgIHZhciB2YWx1ZSA9IGNvbmZpZ1tpdGVtWyJfY29uZmlnS2V5Il1dOw0KICAgICAgdmFyIG5ld0VudHJ5ID0gbmV3IE9iamVjdCgpOw0KICAgICAgbmV3RW50cnkgPSBpdGVtOw0KICAgICAgZGVsZXRlIG5ld0VudHJ5WyJvbmNsaWNrIl0NCiAgICAgIG5ld0VudHJ5WyJfZWxlbWVudCJdICA9ICJTRUxFQ1QiOw0KICAgICAgZWxlbWVudC5hcHBlbmRDaGlsZChjcmVhdGVFbGVtZW50KG5ld0VudHJ5KSk7DQogICAgICB2YXIgc2VsZWN0RWxlbWVudCA9IGVsZW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlNFTEVDVCIpWzBdOw0KICAgICAgdmFyIHZhbHVlcyA9IGl0ZW1bIl9vcHRpb25WYWx1ZXMiXTsNCiAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdmFsdWVzLmxlbmd0aDsgaSsrKSB7DQogICAgICAgIHZhciBuZXdFbnRyeSA9IG5ldyBPYmplY3Q7DQogICAgICAgIG5ld0VudHJ5WyJfZWxlbWVudCJdICA9ICJPUFRJT04iOw0KICAgICAgICBuZXdFbnRyeVsiX3RleHQiXSAgICAgPSBpdGVtWyJfdGV4dCJdICsgIjogIiArIHZhbHVlc1tpXTsNCiAgICAgICAgbmV3RW50cnlbInZhbHVlIl0gICAgID0gdmFsdWVzW2ldOw0KICAgICAgICBzZWxlY3RFbGVtZW50LmFwcGVuZENoaWxkKGNyZWF0ZUVsZW1lbnQobmV3RW50cnkpKTsNCiAgICAgIH0NCiAgICAgIHNlbGVjdEVsZW1lbnQudmFsdWUgPSB2YWx1ZTsNCiAgICAgIGJyZWFrOw0KICAgIA0KICB9DQogIHJldHVybiBlbGVtZW50Ow0KfQ0KDQpmdW5jdGlvbiBvcGVuU3ViTWVudShpdGVtKSB7DQogIHZhciBlbnRyeXMgPSBpdGVtWyJfc3ViTWVudSJdLnNwbGl0KCIsIik7DQogIHZhciBkaXYgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic2V0dGluZ3MiKTsNCg0KICB2YXIgbmV3SFIgPSBuZXcgT2JqZWN0KCk7DQogIG5ld0hSWyJfZWxlbWVudCJdID0gIkhSIg0KICBkaXYuYXBwZW5kQ2hpbGQoY3JlYXRlRWxlbWVudChuZXdIUikpOw0KICANCiAgdmFyIG5ld0VudHJ5ID0gbmV3IE9iamVjdCgpOw0KICBuZXdFbnRyeVsiX2VsZW1lbnQiXSAgPSAiSU5QVVQiOw0KICBuZXdFbnRyeVsidHlwZSJdID0gImJ1dHRvbiI7DQogIC8vbmV3RW50cnlbImNsYXNzIl0gPSAic2F2ZSI7DQogIG5ld0VudHJ5WyJ2YWx1ZSJdID0gIlNhdmUiOw0KICBuZXdFbnRyeVsib25jbGljayJdID0gInNhdmVEYXRhMignc2V0dGluZ3MnKSINCiAgZGl2LmFwcGVuZENoaWxkKGNyZWF0ZUVsZW1lbnQobmV3RW50cnkpKTsNCg0KICBpZiAoaXRlbVsiX2NvbmZpZ0tleSJdID09ICJzZXR0aW5ncyIpIHsNCiAgICB2YXIgbmV3RW50cnkgPSBuZXcgT2JqZWN0KCk7DQogICAgbmV3RW50cnlbIl9lbGVtZW50Il0gID0gIklOUFVUIjsNCiAgICBuZXdFbnRyeVsidHlwZSJdID0gImJ1dHRvbiI7DQogICAgLy9uZXdFbnRyeVsiY2xhc3MiXSA9ICJzYXZlIjsNCiAgICBuZXdFbnRyeVsidmFsdWUiXSA9ICJCYWNrdXAiOw0KICAgIG5ld0VudHJ5WyJvbmNsaWNrIl0gPSAieHRldmVCYWNrdXAoKSINCiAgICBkaXYuYXBwZW5kQ2hpbGQoY3JlYXRlRWxlbWVudChuZXdFbnRyeSkpOw0KICB9DQoNCiAgaWYgKGl0ZW1bIl9jb25maWdLZXkiXSA9PSAic2V0dGluZ3MiKSB7DQogICAgdmFyIG5ld0VudHJ5ID0gbmV3IE9iamVjdCgpOw0KICAgIG5ld0VudHJ5WyJfZWxlbWVudCJdICA9ICJJTlBVVCI7DQogICAgbmV3RW50cnlbInR5cGUiXSA9ICJidXR0b24iOw0KICAgIC8vbmV3RW50cnlbImNsYXNzIl0gPSAic2F2ZSI7DQogICAgbmV3RW50cnlbInZhbHVlIl0gPSAiUmVzdG9yZSI7DQogICAgbmV3RW50cnlbIm9uY2xpY2siXSA9ICJ4dGV2ZVJlc3RvcmUodGhpcykiDQogICAgZGl2LmFwcGVuZENoaWxkKGNyZWF0ZUVsZW1lbnQobmV3RW50cnkpKTsNCiAgfQ0KDQoNCiAgdmFyIG5ld1dyYXBwZXIgPSBuZXcgT2JqZWN0KCk7DQogIG5ld1dyYXBwZXJbIl9lbGVtZW50Il0gID0gIkRJViI7DQogIG5ld1dyYXBwZXJbImlkIl0gICAgICAgID0gImJveC13cmFwcGVyIjsNCiAgZGl2LmFwcGVuZENoaWxkKGNyZWF0ZUVsZW1lbnQobmV3V3JhcHBlcikpOw0KICANCiAgZGl2ID0gZGl2Lmxhc3RDaGlsZDsNCiAgDQoNCiAgZm9yICh2YXIgaSA9IDA7IGkgPCBlbnRyeXMubGVuZ3RoOyBpKyspIHsNCiAgICB2YXIgaXRlbSA9IHN1Yk1lbnVbZW50cnlzW2ldXTsNCiAgICBpZiAoaXRlbSA9PSB1bmRlZmluZWQpIHsNCiAgICAgIGJyZWFrOw0KICAgIH0NCiAgICANCiAgICB2YXIgY29udGFpbmVyID0gbmV3IE9iamVjdCgpOw0KICAgIGNvbnRhaW5lclsiX2VsZW1lbnQiXSA9ICJESVYiOw0KICAgIGRpdi5hcHBlbmRDaGlsZChjcmVhdGVFbGVtZW50KGNvbnRhaW5lcikpOw0KDQogICAgdmFyIGRpdkNvbnRhaW5lciA9IGRpdi5sYXN0Q2hpbGQ7DQogICAgDQogICAgdmFyIGhlYWRsaW5lID0gbmV3IE9iamVjdCgpOw0KICAgIGhlYWRsaW5lWyJfZWxlbWVudCJdID0gIkg1IjsNCiAgICBoZWFkbGluZVsiX3RleHQiXSA9IGl0ZW1bIl9oZWFkbGluZSJdOw0KICAgIGRpdkNvbnRhaW5lci5hcHBlbmRDaGlsZChjcmVhdGVFbGVtZW50KGhlYWRsaW5lKSk7DQoNCiAgICBkaXZDb250YWluZXIuYXBwZW5kQ2hpbGQoY3JlYXRlTWVudUl0ZW0oaXRlbSkpDQoNCiAgICBzd2l0Y2goaXRlbS5oYXNPd25Qcm9wZXJ0eSgiX3VzYWdlIikpIHsNCiAgICAgIGNhc2UgdHJ1ZTogDQogICAgICAgIHZhciB1c2FnZUl0ZW0gPSBuZXcgT2JqZWN0KCk7DQogICAgICAgIHVzYWdlSXRlbVsiX2VsZW1lbnQiXSA9ICJQUkUiDQogICAgICAgIHVzYWdlSXRlbVsiX3RleHQiXSAgICA9IGl0ZW1bIl91c2FnZSJdOw0KICAgICAgICBkaXZDb250YWluZXIuYXBwZW5kQ2hpbGQoY3JlYXRlRWxlbWVudCh1c2FnZUl0ZW0pKTsNCiAgICB9DQoNCiAgICB2YXIgaHIgPSBuZXcgT2JqZWN0KCk7DQogICAgaHJbIl9lbGVtZW50Il0gPSAiSFIiOw0KICAgIGRpdkNvbnRhaW5lci5hcHBlbmRDaGlsZChjcmVhdGVFbGVtZW50KGhyKSk7DQogIA0KICB9DQoNCiAgY2FsY3VsYXRlV3JhcHBlckhlaWdodCgpOw0KICByZXR1cm4NCn0NCg0KZnVuY3Rpb24gc2F2ZURhdGEyKGVsbSkgew0KICB2YXIgZGl2ICAgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChlbG0pOw0KICB2YXIgaW5wdXRzID0gZGl2LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJJTlBVVCIpOw0KICB2YXIgc2VsZWN0cyA9IGRpdi5nZXRFbGVtZW50c0J5VGFnTmFtZSgiU0VMRUNUIik7DQogIHZhciB2YWx1ZSwgY29uZmlnS2V5Ow0KICB2YXIgZGF0YSA9IG5ldyBPYmplY3QoKTsNCiAgdmFyIHZhbHVlQXJyID0gbmV3IEFycmF5KCk7DQogIHZhciBuZXdEYXRhID0gZmFsc2U7DQogIA0KICBmb3IgKHZhciBpID0gMDsgaSA8IGlucHV0cy5sZW5ndGg7IGkrKykgew0KICAgIGlmIChpbnB1dHNbaV0udHlwZSAhPSAiYnV0dG9uIikgew0KICAgICAgdmFyIG1lbnVUeXBlID0gaW5wdXRzW2ldLmdldEF0dHJpYnV0ZSgiZGF0YS1tZW51dHlwZSIpOw0KICAgICAgDQogICAgICAvL2NvbnNvbGUubG9nKG1lbnVUeXBlKTsNCiAgICAgIHN3aXRjaChtZW51VHlwZSkgew0KICAgICAgICBjYXNlICJzaW5nbGVJbnB1dCI6DQogICAgICAgICAgdmFsdWUgPSBpbnB1dHNbaV0udmFsdWU7DQogICAgICAgICAgaWYgKHZhbHVlID09ICIiIHx8IHZhbHVlID09IHVuZGVmaW5lZCkgew0KICAgICAgICAgICAgZGF0YSA9IG5ldyBPYmplY3QoKTsNCiAgICAgICAgICAgIGRhdGFbImRlbGV0ZSJdID0gaW5wdXRzW2ldLm5hbWUNCiAgICAgICAgICAgIG5ld0RhdGEgPSB0cnVlOw0KICAgICAgICAgIH0gZWxzZSB7DQogICAgICAgICAgICBuZXdEYXRhID0gdHJ1ZTsNCiAgICAgICAgICAgIGRhdGFbaW5wdXRzW2ldLm5hbWVdID0gdmFsdWU7DQogICAgICAgICAgICBjb25zb2xlLmxvZyhkYXRhKTsNCiAgICAgICAgICB9DQogICAgICAgICAgYnJlYWs7DQogICAgICAgIGNhc2UgImlucHV0QXJyYXkiOiANCiAgICAgICAgICB2YWx1ZSA9IGlucHV0c1tpXS52YWx1ZTsNCiAgICAgICAgICBpZiAodmFsdWUgIT0gIiIgJiYgdmFsdWUgIT0gdW5kZWZpbmVkKSB7DQogICAgICAgICAgICBuZXdEYXRhID0gdHJ1ZTsNCiAgICAgICAgICAgIHZhbHVlQXJyLnB1c2godmFsdWUpDQogICAgICAgICAgICBkYXRhW2lucHV0c1tpXS5uYW1lXSA9IHZhbHVlQXJyOw0KICAgICAgICAgICAgY29uZmlnS2V5ID0gaW5wdXRzW2ldLm5hbWU7DQogICAgICAgICAgfSANCiAgICAgICAgICANCiAgICAgICAgICBicmVhazsNCg0KICAgICAgICBjYXNlICJjaGVja2JveCI6DQogICAgICAgICAgdmFsdWUgPSBpbnB1dHNbaV0uY2hlY2tlZA0KICAgICAgICAgIGRhdGFbaW5wdXRzW2ldLm5hbWVdID0gdmFsdWU7DQogICAgICB9DQogICAgICANCiAgICB9DQogICAgDQogIH0NCg0KDQogIC8vIERlbGV0ZSBjb25maWcga2V5DQogIGlmICh2YWx1ZUFyci5sZW5ndGggPT0gMCAmJiBuZXdEYXRhID09IGZhbHNlKSB7DQogICAgbmV3RGF0YSA9IHRydWU7DQogICAgZGF0YSA9IG5ldyBPYmplY3QoKTsNCiAgICBkYXRhWyJkZWxldGUiXSA9IGNvbmZpZ0tleTsNCiAgfSANCg0KDQogIGZvciAodmFyIGkgPSAwOyBpIDwgc2VsZWN0cy5sZW5ndGg7IGkrKykgew0KICAgIHZhciB2YWx1ZSA9IHNlbGVjdHNbaV0ub3B0aW9uc1tzZWxlY3RzW2ldLnNlbGVjdGVkSW5kZXhdLnZhbHVlOw0KICAgIHN3aXRjaChpc05hTih2YWx1ZSkpIHsNCiAgICAgIGNhc2UgZmFsc2U6IHZhbHVlID0gcGFyc2VJbnQodmFsdWUpOyBicmVhazsNCiAgICB9DQoNCiAgICBkYXRhW3NlbGVjdHNbaV0ubmFtZV0gPSB2YWx1ZTsNCiAgICBuZXdEYXRhID0gdHJ1ZTsNCiAgfQ0KDQogIC8vY29uc29sZS5sb2coZGF0YSwgbmV3RGF0YSk7DQoNCiAgaWYgKG5ld0RhdGEgPT0gdHJ1ZSkgew0KICAgIGRhdGFbImNtZCJdID0gInNhdmVDb25maWciOw0KICAgIGlmICghZGF0YS5oYXNPd25Qcm9wZXJ0eSgnZmlsdGVyJykpIHsNCiAgICAgIGRhdGFbImZpbHRlciJdID0gY29uZmlnWyJmaWx0ZXIiXQ0KICAgIH0NCiAgICB2YXIgc2V0dGluZ3MgPSBuZXcgT2JqZWN0KCk7DQogICAgc2V0dGluZ3NbImNtZCJdID0gZGF0YVsiY21kIl07DQogICAgc2V0dGluZ3NbInNldHRpbmdzIl0gPSBkYXRhOw0KICAgIGNvbnNvbGUubG9nKHNldHRpbmdzKTsNCiAgICB4VGVWZShzZXR0aW5ncyk7DQogIH0NCn0NCg==" + webUI["html/lang/en.json"] = "ew0KICAibWFpbk1lbnUiOg0KICB7DQogICAgIml0ZW0iOg0KICAgIHsNCiAgICAgICJwbGF5bGlzdCI6ICJQbGF5bGlzdCIsDQogICAgICAicG1zSUQiOiAiUE1TIElEIiwNCiAgICAgICJmaWx0ZXIiOiAiRmlsdGVyIiwNCiAgICAgICJ4bWx0diI6ICJYTUxUViIsDQogICAgICAibWFwcGluZyI6ICJNYXBwaW5nIiwNCiAgICAgICJ1c2VycyI6ICJVc2VycyIsDQogICAgICAic2V0dGluZ3MiOiAiU2V0dGluZ3MiLA0KICAgICAgImxvZyI6ICJMb2ciLA0KICAgICAgImxvZ291dCI6ICJMb2dvdXQiDQogICAgfSwNCiAgICAiaGVhZGxpbmUiOg0KICAgIHsNCiAgICAgICJwbGF5bGlzdCI6ICJMb2NhbCBvciByZW1vdGUgcGxheWxpc3RzIiwNCiAgICAgICJmaWx0ZXIiOiAiRmlsdGVyIHBsYXlsaXN0IiwNCiAgICAgICJ4bWx0diI6ICJMb2NhbCBvciByZW1vdGUgWE1MVFYgZmlsZXMiLA0KICAgICAgIm1hcHBpbmciOiAiTWFwIHBsYXlsaXN0IGNoYW5uZWxzIHRvIEVQRyBjaGFubmVscyIsDQogICAgICAidXNlcnMiOiAiVXNlciBtYW5hZ2VtZW50IiwNCiAgICAgICJzZXR0aW5ncyI6ICJTZXR0aW5ncyIsDQogICAgICAibG9nIjogIkxvZyIsDQogICAgICAibG9nb3V0IjogIkxvZ291dCINCiAgICB9DQogIH0sDQogICJjb25maXJtIjoNCiAgew0KICAgICJyZXN0b3JlIjogIkFsbCBkYXRhIHdpbGwgYmUgcmVwbGFjZWQgd2l0aCB0aG9zZSBmcm9tIHRoZSBiYWNrdXAuIFNob3VsZCB0aGUgZmlsZXMgYmUgcmVzdG9yZWQ/Ig0KICB9LA0KICAiYWxlcnQiOg0KICB7DQogICAgImZpbGVMb2FkaW5nRXJyb3IiOiAiRmlsZSBjb3VsZG4ndCBiZSBsb2FkZWQiLA0KICAgICJpbnZhbGlkQ2hhbm5lbE51bWJlciI6ICJJbnZhbGlkIGNoYW5uZWwgbnVtYmVyIiwNCiAgICAibWlzc2luZ0lucHV0IjogIk1pc3NpbmcgaW5wdXQiDQogIH0sDQogICJidXR0b24iOg0KICB7DQogICAgImJhY2siOiAiQmFjayIsDQogICAgImJhY2t1cCI6ICJCYWNrdXAiLA0KICAgICJidWxrRWRpdCI6ICJCdWxrIEVkaXQiLA0KICAgICJjYW5jZWwiOiAiQ2FuY2VsIiwNCiAgICAiZGVsZXRlIjogIkRlbGV0ZSIsDQogICAgImRvbmUiOiAiRG9uZSIsDQogICAgImxvZ2luIjogIkxvZ2luIiwNCiAgICAibmV3IjogIk5ldyIsDQogICAgIm5leHQiOiAiTmV4dCIsDQogICAgInJlc3RvcmUiOiAiUmVzdG9yZSIsDQogICAgInNhdmUiOiAiU2F2ZSIsDQogICAgInNlYXJjaCI6ICJTZWFyY2giLA0KICAgICJ1cGRhdGUiOiAiVXBkYXRlIiwNCiAgICAiY3JhZXRlQWNjb3VudCI6ICJDcmVhdGUgQWNjb3VudCIsDQogICAgInJlc2V0TG9ncyI6ICJSZXNldCBMb2dzIiwNCiAgICAidXBsb2FkTG9nbyI6ICJVcGxvYWQgTG9nbyINCiAgfSwNCiAgImZpbHRlciI6DQogIHsNCiAgICAidGFibGUiOg0KICAgIHsNCiAgICAgICJuYW1lIjogIkZpbHRlciBOYW1lIiwNCiAgICAgICJ0eXBlIjogIkZpbHRlciBUeXBlIiwNCiAgICAgICJmaWx0ZXIiOiAiRmlsdGVyIg0KICAgIH0sDQogICAgImN1c3RvbSI6ICJDdXN0b20iLA0KICAgICJncm91cCI6ICJNM1UgR3JvdXAiLA0KICAgICJuYW1lIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiRmlsdGVyIE5hbWUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIkZpbHRlciBuYW1lIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAiZGVzY3JpcHRpb24iOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJEZXNjcmlwdGlvbiIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiRGVzY3JpcHRpb24iLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJ0eXBlIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiVHlwZSIsDQogICAgICAiZ3JvdXBUaXRsZSI6ICJHcm91cCBUaXRsZSIsDQogICAgICAiY3VzdG9tRmlsdGVyIjogIkN1c3RvbSBGaWx0ZXIiDQogICAgfSwNCiAgICAiY2FzZVNlbnNpdGl2ZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIkNhc2UgU2Vuc2l0aXZlIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJmaWx0ZXJSdWxlIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiRmlsdGVyIFJ1bGUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIlNwb3J0IHtIRH0gIXtFUyxJVH0iLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJmaWx0ZXJHcm91cCI6DQogICAgew0KICAgICAgInRpdGxlIjogIkdyb3VwIFRpdGxlIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIlNlbGVjdCBhIE0zVSBncm91cC4gKENvdW50ZXIpPGJyPkNoYW5naW5nIHRoZSBncm91cCB0aXRsZSBpbiB0aGUgTTNVIGludmFsaWRhdGVzIHRoZSBmaWx0ZXIuIg0KICAgIH0sDQogICAgImluY2x1ZGUiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJJbmNsdWRlIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJGSEQsVUhEIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJDaGFubmVsIG5hbWUgbXVzdCBpbmNsdWRlLjxicj4oQ29tbWEgc2VwYXJhdGVkKSBDb21tYSBtZWFucyBvciINCiAgICB9LA0KICAgICJleGNsdWRlIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiRXhjbHVkZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiRVMsSVQiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIkNoYW5uZWwgbmFtZSBtdXN0IG5vdCBjb250YWluLjxicj4oQ29tbWEgc2VwYXJhdGVkKSBDb21tYSBtZWFucyBvciINCiAgICB9LA0KICAgICJwcmVzZXJ2ZU1hcHBpbmciOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJQcmVzZXJ2ZSBFeGlzdGluZyBNM1U8YnI+Q2hhbm5lbCBOdW1iZXJzIiwNCiAgICAgICJwYWxjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIlByZXNlcnZlIGV4aXN0aW5nIE0zVSBwbGF5bGlzdCBjaGFubmVsIG51bWJlcnM/Ig0KICAgIH0sDQogICAgInN0YXJ0aW5nQ2hhbm5lbCI6DQogICAgew0KICAgICAgInRpdGxlIjogIlN0YXJ0aW5nIENoYW5uZWwgTnVtYmVyIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJkZWZhdWx0TWlzc2luZ0VQRyI6DQogICAgew0KICAgICAgInRpdGxlIjogIkZpbGwgTWlzc2luZyBFUEcgRGF0YSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJXaGVuIHRoZXJlIGlzIG5vIG1hdGNoaW5nIEVQRyBkYXRhIGZvciBjaGFubmVsLCA8YnI+YXV0b2ZpbGwgd2l0aCB4VGVWZSBkdW1teSBFUEcgZGF0YT8iDQogICAgfQ0KDQogIH0sDQogICJwbGF5bGlzdCI6DQogIHsNCiAgICAidGFibGUiOg0KICAgIHsNCiAgICAgICJwbGF5bGlzdCI6ICJQbGF5bGlzdCIsDQogICAgICAidHVuZXIiOiAiVHVuZXIiLA0KICAgICAgImxhc3RVcGRhdGUiOiAiTGFzdCBVcGRhdGUiLA0KICAgICAgImF2YWlsYWJpbGl0eSI6ICJBdmFpbGFiaWxpdHkiLA0KICAgICAgInR5cGUiOiAiVHlwZSIsDQogICAgICAic3RyZWFtcyI6ICJTdHJlYW1zIiwNCiAgICAgICJncm91cFRpdGxlIjogImdyb3VwLXRpdGxlIiwNCiAgICAgICJ0dmdJRCI6ICJ0dmctaWQiLA0KICAgICAgInVuaXF1ZUlEIjogIlVuaXF1ZSBJRCINCiAgICB9LA0KICAgICJwbGF5bGlzdFR5cGUiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJQbGF5bGlzdCB0eXBlIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJ0eXBlIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiVHlwZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAibmFtZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIk5hbWUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIlBsYXlsaXN0IG5hbWUiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJkZXNjcmlwdGlvbiI6DQogICAgew0KICAgICAgInRpdGxlIjogIkRlc2NyaXB0aW9uIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJEZXNjcmlwdGlvbiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgImZpbGVNM1UiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJNM1UgRmlsZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiRmlsZSBwYXRoIG9yIFVSTCBvZiB0aGUgTTNVIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAiZmlsZUhESFIiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJIREhvbWVSdW4gSVAiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIklQIGFkZHJlc3MgYW5kIHBvcnQgKDE5Mi4xNjguMS4xMDo1MDA0KSIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgInR1bmVyIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiVHVuZXIgLyBTdHJlYW1zIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIk51bWJlciBvZiBwYXJhbGxlbCBjb25uZWN0aW9ucyB0aGF0IGNhbiBiZSBlc3RhYmxpc2hlZCB0byB0aGUgcHJvdmlkZXIuIDxicj5Pbmx5IGF2YWlsYWJsZSB3aXRoIGFjdGl2YXRlZCBidWZmZXIuPGJyPk5ldyBzZXR0aW5ncyB3aWxsIG9ubHkgYmUgYXBwbGllZCBhZnRlciBxdWl0dGluZyBhbGwgc3RyZWFtcy4iDQogICAgfQ0KICB9LA0KICAieG1sdHYiOg0KICB7DQogICAgInRhYmxlIjoNCiAgICB7DQogICAgICAiZ3VpZGUiOiAiR3VpZGUiLA0KICAgICAgImxhc3RVcGRhdGUiOiAiTGFzdCBVcGRhdGUiLA0KICAgICAgImF2YWlsYWJpbGl0eSI6ICJBdmFpbGFiaWxpdHkiLA0KICAgICAgImNoYW5uZWxzIjogIkNoYW5uZWxzIiwNCiAgICAgICJwcm9ncmFtcyI6ICJQcm9ncmFtcyINCiAgICB9LA0KICAgICJuYW1lIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiTmFtZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiR3VpZGUgbmFtZSIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgImRlc2NyaXB0aW9uIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiRGVzY3JpcHRpb24iLA0KICAgICAgInBsYWNlaG9sZGVyIjogIkRlc2NyaXB0aW9uIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAiZmlsZVhNTFRWIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiWE1MVFYgRmlsZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiRmlsZSBwYXRoIG9yIFVSTCBvZiB0aGUgWE1MVFYiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9DQogIH0sDQogICJtYXBwaW5nIjoNCiAgew0KICAgICJ0YWJsZSI6DQogICAgew0KICAgICAgImNoTm8iOiAiQ2guIE5vLiIsDQogICAgICAibG9nbyI6ICJMb2dvIiwNCiAgICAgICJjaGFubmVsTmFtZSI6ICJDaGFubmVsIE5hbWUiLA0KICAgICAgInBsYXlsaXN0IjogIlBsYXlsaXN0IiwNCiAgICAgICJncm91cFRpdGxlIjogIkdyb3VwIFRpdGxlIiwNCiAgICAgICJ4bWx0dkZpbGUiOiAiWE1MVFYgRmlsZSIsDQogICAgICAieG1sdHZJRCI6ICJYTUxUViBJRCIsDQogICAgICAidGltZXNoaWZ0IjogIlRpbWVzaGlmdCINCiAgICB9LA0KICAgICJhY3RpdmUiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJBY3RpdmUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgImNoYW5uZWxOYW1lIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiQ2hhbm5lbCBOYW1lIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJkZXNjcmlwdGlvbiI6DQogICAgew0KICAgICAgInRpdGxlIjogIkNoYW5uZWwgRGVzY3JpcHRpb24iLA0KICAgICAgInBsYWNlaG9sZGVyIjogIlVzZWQgYnkgdGhlIER1bW15IGFzIGFuIFhNTCBkZXNjcmlwdGlvbiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgInVwZGF0ZUNoYW5uZWxOYW1lIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiVXBkYXRlIENoYW5uZWwgTmFtZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAiY2hhbm5lbExvZ28iOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJMb2dvIFVSTCIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAidXBkYXRlQ2hhbm5lbExvZ28iOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJVcGRhdGUgQ2hhbm5lbCBMb2dvIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJlcGdDYXRlZ29yeSI6DQogICAgew0KICAgICAgInRpdGxlIjogIkVQRyBDYXRlZ29yeSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAibTN1R3JvdXBUaXRsZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIkdyb3VwIFRpdGxlICh4dGV2ZS5tM3UpIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJ4bWx0dkZpbGUiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJYTUxUViBGaWxlIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJ4bWx0dkNoYW5uZWwiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJYTUxUViBDaGFubmVsIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJ0aW1lc2hpZnQiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJUaW1lc2hpZnQiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIjAiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9DQogIH0sDQogICJ1c2VycyI6DQogIHsNCiAgICAidGFibGUiOg0KICAgIHsNCiAgICAgICJ1c2VybmFtZSI6ICJVc2VybmFtZSIsDQogICAgICAicGFzc3dvcmQiOiAiUGFzc3dvcmQiLA0KICAgICAgIndlYiI6ICJXRUIiLA0KICAgICAgInBtcyI6ICJQTVMiLA0KICAgICAgIm0zdSI6ICJNM1UiLA0KICAgICAgInhtbCI6ICJYTUwiLA0KICAgICAgImFwaSI6ICJBUEkiDQogICAgfSwNCiAgICAidXNlcm5hbWUiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJVc2VybmFtZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiVXNlcm5hbWUiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJwYXNzd29yZCI6DQogICAgew0KICAgICAgInRpdGxlIjogIlBhc3N3b3JkIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJQYXNzd29yZCIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgImNvbmZpcm0iOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJDb25maXJtIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJQYXNzd29yZCBjb25maXJtIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAid2ViIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiV2ViIEFjY2VzcyIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAicG1zIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiUE1TIEFjY2VzcyIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAibTN1IjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiTTNVIEFjY2VzcyIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAieG1sIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiWE1MIEFjY2VzcyIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAiYXBpIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiQVBJIEFjY2VzcyIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfQ0KICB9LA0KICAic2V0dGluZ3MiOg0KICB7DQogICAgImNhdGVnb3J5IjoNCiAgICB7DQogICAgICAiZ2VuZXJhbCI6ICJHZW5lcmFsIiwNCiAgICAgICJmaWxlcyI6ICJGaWxlcyIsDQogICAgICAic3RyZWFtaW5nIjogIlN0cmVhbWluZyIsDQogICAgICAiYmFja3VwIjogIkJhY2t1cCIsDQogICAgICAiYXV0aGVudGljYXRpb24iOiAiQXV0aGVudGljYXRpb24iDQogICAgfSwNCiAgICAidXBkYXRlIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiU2NoZWR1bGUgZm9yIHVwZGF0aW5nIChQbGF5bGlzdCwgWE1MVFYsIEJhY2t1cCkiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIjAwMDAsMTAwMCwyMDAwIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJUaW1lIGluIDI0IGhvdXIgZm9ybWF0ICgwODAwID0gODowMCBhbSkuIE1vcmUgdGltZXMgY2FuIGJlIGVudGVyZWQgY29tbWEgc2VwYXJhdGVkLiBMZWF2ZSB0aGlzIGZpZWxkIGVtcHR5IGlmIG5vIHVwZGF0ZXMgYXJlIHRvIGJlIGNhcnJpZWQgb3V0LiINCiAgICB9LA0KICAgICJhcGkiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJBUEkgSW50ZXJmYWNlIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJWaWEgQVBJIGludGVyZmFjZSBpdCBpcyBwb3NzaWJsZSB0byBzZW5kIGNvbW1hbmRzIHRvIHhUZVZlLiBBUEkgZG9jdW1lbnRhdGlvbiBpcyA8YSBocmVmPSdodHRwczovL2dpdGh1Yi5jb20veHRldmUtcHJvamVjdC94VGVWZS1Eb2N1bWVudGF0aW9uL2Jsb2IvbWFzdGVyL2VuL2NvbmZpZ3VyYXRpb24ubWQjYXBpJz5oZXJlPC9hPiINCiAgICB9LA0KICAgICJlcGdTb3VyY2UiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJFUEcgU291cmNlIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJQTVM6PGJyPi0gVXNlIEVQRyBkYXRhIGZyb20gUGxleCBvciBFbWJ5IDxicj48YnI+WEVQRzo8YnI+LSBVc2Ugb2Ygb25lIG9yIG1vcmUgWE1MVFYgZmlsZXM8YnI+LSBDaGFubmVsIG1hbmFnZW1lbnQ8YnI+LSBNM1UgLyBYTUxUViBleHBvcnQgKEhUVFAgbGluayBmb3IgSVBUViBhcHBzKSINCiAgICB9LA0KICAgICJ0dW5lciI6DQogICAgew0KICAgICAgInRpdGxlIjogIk51bWJlciBvZiBUdW5lcnMiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIk51bWJlciBvZiBwYXJhbGxlbCBjb25uZWN0aW9ucyB0aGF0IGNhbiBiZSBlc3RhYmxpc2hlZCB0byB0aGUgcHJvdmlkZXIuPGJyPkF2YWlsYWJsZSBmb3I6IFBsZXgsIEVtYnkgKEhESFIpLCBNM1UgKHdpdGggYWN0aXZlIGJ1ZmZlcikuPGJyPkFmdGVyIGEgY2hhbmdlLCB4VGVWZSBtdXN0IGJlIGRlbGV0ZSBpbiB0aGUgUGxleCAvIEVtYnkgRFZSIHNldHRpbmdzIGFuZCBzZXQgdXAgYWdhaW4uIg0KICAgIH0sDQogICAgImZpbGVzVXBkYXRlIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiVXBkYXRlcyBhbGwgZmlsZXMgYXQgc3RhcnR1cCIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiVXBkYXRlcyBhbGwgcGxheWxpc3RzLCB0dW5lciBhbmQgWE1MVFYgZmlsZXMgYXQgc3RhcnR1cC4iDQogICAgfSwNCiAgICAiY2FjaGVJbWFnZXMiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJJbWFnZSBDYWNoaW5nIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJBbGwgaW1hZ2VzIGZyb20gdGhlIFhNTFRWIGZpbGUgYXJlIGNhY2hlZCwgYWxsb3dpbmcgZmFzdGVyIHJlbmRlcmluZyBvZiB0aGUgZ3JpZCBpbiB0aGUgY2xpZW50Ljxicj5Eb3dubG9hZGluZyB0aGUgaW1hZ2VzIG1heSB0YWtlIGEgd2hpbGUgYW5kIHdpbGwgYmUgZG9uZSBpbiB0aGUgYmFja2dyb3VuZC4iDQogICAgfSwNCiAgICAicmVwbGFjZUVtcHR5SW1hZ2VzIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiUmVwbGFjZSBtaXNzaW5nIHByb2dyYW0gaW1hZ2VzIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJJZiB0aGUgcG9zdGVyIGluIHRoZSBYTUxUViBwcm9ncmFtIGlzIG1pc3NpbmcsIHRoZSBjaGFubmVsIGxvZ28gd2lsbCBiZSB1c2VkLiINCiAgICB9LA0KICAgICJ4dGV2ZUF1dG9VcGRhdGUiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJBdXRvbWF0aWMgdXBkYXRlIG9mIHhUZVZlIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJJZiBhIG5ldyB2ZXJzaW9uIG9mIHhUZVZlIGlzIGF2YWlsYWJsZSwgaXQgd2lsbCBiZSBhdXRvbWF0aWNhbGx5IGluc3RhbGxlZC4gVGhlIHVwZGF0ZXMgYXJlIGRvd25sb2FkZWQgZnJvbSBHaXRIdWIuIg0KICAgIH0sDQogICAgInN0cmVhbUJ1ZmZlcmluZyI6DQogICAgew0KICAgICAgInRpdGxlIjogIlN0cmVhbSBCdWZmZXIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIkZ1bmN0aW9ucyBvZiB0aGUgYnVmZmVyOjxicj4tIFRoZSBzdHJlYW0gaXMgcGFzc2VkIGZyb20geFRlVmUsIEZGbXBlZyBvciBWTEMgdG8gUGxleCwgRW1ieSBvciBNM1UgUGxheWVyPGJyPi0gU21hbGwgamVya2luZyBvZiB0aGUgc3RyZWFtcyBjYW4gYmUgY29tcGVuc2F0ZWQ8YnI+LSBITFMgLyBNM1U4IHN1cHBvcnQ8YnI+LSBSVFAgLyBSVFBTIHN1cHBvcnQgKG9ubHkgRkZtcGVnIG9yIFZMQyk8YnI+LSBSZS1zdHJlYW1pbmc8YnI+LSBTZXBhcmF0ZSB0dW5lciBsaW1pdCBmb3IgZWFjaCBwbGF5bGlzdCIsDQogICAgICAiaW5mb19mYWxzZSI6ICJObyBCdWZmZXIgKENsaWVudCBjb25uZWN0cyB0byB0aGUgc3RyZWFtaW5nIHNlcnZlcikiLA0KICAgICAgImluZm9feHRldmUiOiAieFRlVmUgY29ubmVjdHMgdG8gdGhlIHN0cmVhbWluZyBzZXJ2ZXIiLA0KICAgICAgImluZm9fZmZtcGVnIjogIkZGbXBlZyBjb25uZWN0cyB0byB0aGUgc3RyZWFtaW5nIHNlcnZlciIsDQogICAgICAiaW5mb192bGMiOiAiVkxDIGNvbm5lY3RzIHRvIHRoZSBzdHJlYW1pbmcgc2VydmVyIg0KDQogICAgfSwNCiAgICAidWRweHkiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJVRFB4eSBhZGRyZXNzIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJUaGUgYWRkcmVzcyBvZiB5b3VyIFVEUHh5IHNlcnZlci4gSWYgc2V0LCBhbmQgdGhlIGNoYW5uZWwgVVJMcyBpbiB0aGUgbTN1IGlzIG11bHRpY2FzdCwgeFRlVmUgd2lsbCByZXdyaXRlIGl0IHNvIHRoYXQgaXQgaXMgYWNjZXNzZWQgdmlhIHRoZSBVRFB4eSBzZXJ2aWNlLiIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiaG9zdDpwb3J0Ig0KICAgIH0sDQogICAgImZmbXBlZ1BhdGgiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJGRm1wZWcgQmluYXJ5IFBhdGgiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIlBhdGggdG8gRkZtcGVnIGJpbmFyeS4iLA0KICAgICAgInBsYWNlaG9sZGVyIjogIi9wYXRoL3RvL2ZmbXBlZyINCiAgICB9LA0KICAgICJmZm1wZWdPcHRpb25zIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiRkZtcGVnIE9wdGlvbnMiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIkZGbXBlZyBvcHRpb25zLjxicj5Pbmx5IGNoYW5nZSBpZiB5b3Uga25vdyB3aGF0IHlvdSBhcmUgZG9pbmcuPGJyPkxlYXZlIGJsYW5rIHRvIHNldCBkZWZhdWx0IHNldHRpbmdzLiIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiTGVhdmUgYmxhbmsgdG8gc2V0IGRlZmF1bHQgc2V0dGluZ3MiDQogICAgfSwNCiAgICAidmxjUGF0aCI6DQogICAgew0KICAgICAgInRpdGxlIjogIlZMQyAvIENWTEMgQmluYXJ5IFBhdGgiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIlBhdGggdG8gVkxDIC8gQ1ZMQyBiaW5hcnkuIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIvcGF0aC90by9jdmxjIg0KICAgIH0sDQogICAgInZsY09wdGlvbnMiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJWTEMgLyBDVkxDIE9wdGlvbnMiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIlZMQyAvIENWTEMgb3B0aW9ucy48YnI+T25seSBjaGFuZ2UgaWYgeW91IGtub3cgd2hhdCB5b3UgYXJlIGRvaW5nLjxicj5MZWF2ZSBibGFuayB0byBzZXQgZGVmYXVsdCBzZXR0aW5ncy4iLA0KICAgICAgInBsYWNlaG9sZGVyIjogIkxlYXZlIGJsYW5rIHRvIHNldCBkZWZhdWx0IHNldHRpbmdzIg0KICAgIH0sDQogICAgImJ1ZmZlclNpemUiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJCdWZmZXIgU2l6ZSIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiQnVmZmVyIHNpemUgaW4gTUIuPGJyPk0zVTg6IElmIHRoZSBUUyBzZWdtZW50IHNtYWxsZXIgdGhlbiB0aGUgYnVmZmVyIHNpemUsIHRoZSBmaWxlIHNpemUgb2YgdGhlIHNlZ21lbnQgaXMgdXNlZC4iDQogICAgfSwNCiAgICAiYnVmZmVyVGltZW91dCI6DQogICAgew0KICAgICAgInRpdGxlIjogIlRpbWVvdXQgZm9yIG5ldyBjbGllbnQgY29ubmVjdGlvbnMiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIlRoZSB4VGVWZSBidWZmZXIgd2FpdHMgdW50aWwgbmV3IGNsaWVudCBjb25uZWN0aW9ucyBhcmUgZXN0YWJsaXNoZWQuIEhlbHBmdWwgZm9yIGZhc3QgY2hhbm5lbCBzd2l0Y2hpbmcuIFZhbHVlIGluIG1pbGxpc2Vjb25kcy4iLA0KICAgICAgInBsYWNlaG9sZGVyIjogIjEwMCINCiAgICB9LA0KICAgICJ1c2VyQWdlbnQiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJVc2VyIEFnZW50IiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJVc2VyIEFnZW50IGZvciBIVFRQIHJlcXVlc3RzLiBGb3IgZXZlcnkgSFRUUCBjb25uZWN0aW9uLCB0aGlzIHZhbHVlIGlzIHVzZWQgZm9yIHRoZSB1c2VyIGFnZW50LiBTaG91bGQgb25seSBiZSBjaGFuZ2VkIGlmIHhUZVZlIGlzIGJsb2NrZWQuIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJ4VGVWZSINCiAgICB9LA0KICAgICJiYWNrdXBQYXRoIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiTG9jYXRpb24gZm9yIGF1dG9tYXRpYyBiYWNrdXBzIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIvbW50L2RhdGEvYmFja3VwL3h0ZXZlLyIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiQmVmb3JlIGFueSB1cGRhdGUgb2YgdGhlIHByb3ZpZGVyIGRhdGEgYnkgdGhlIHNjaGVkdWxlLCB4VGVWZSBjcmVhdGVzIGEgYmFja3VwLiBUaGUgcGF0aCBmb3IgdGhlIGF1dG9tYXRpYyBiYWNrdXBzIGNhbiBiZSBjaGFuZ2VkLiB4VGVWZSByZXF1aXJlcyB3cml0ZSBwZXJtaXNzaW9uIGZvciB0aGlzIGZvbGRlci4iDQogICAgfSwNCiAgICAidGVtcFBhdGgiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJMb2NhdGlvbiBmb3IgdGhlIHRlbXBvcmFyeSBmaWxlcyIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiL3RtcC94dGV2ZS8iLA0KICAgICAgImRlc2NyaXB0aW9uIjogIkxvY2F0aW9uIGZvciB0aGUgYnVmZmVyIGZpbGVzLiINCiAgICB9LA0KICAgICJiYWNrdXBLZWVwIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiTnVtYmVyIG9mIGJhY2t1cHMgdG8ga2VlcCIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiTnVtYmVyIG9mIGJhY2t1cHMgdG8ga2VlcC4gT2xkZXIgYmFja3VwcyBhcmUgYXV0b21hdGljYWxseSBkZWxldGVkLiINCiAgICB9LA0KICAgICJhdXRoZW50aWNhdGlvbldFQiI6DQogICAgew0KICAgICAgInRpdGxlIjogIldFQiBBdXRoZW50aWNhdGlvbiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiQWNjZXNzIHRvIHRoZSB3ZWIgaW50ZXJmYWNlIG9ubHkgcG9zc2libGUgd2l0aCBjcmVkZW50aWFscy4iDQogICAgfSwNCiAgICAiYXV0aGVudGljYXRpb25QTVMiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJQTVMgQXV0aGVudGljYXRpb24iLA0KICAgICAgImRlc2NyaXB0aW9uIjogIlBsZXggcmVxdWVzdHMgYXJlIG9ubHkgcG9zc2libGUgd2l0aCBhdXRoZW50aWNhdGlvbi4gPGJyPjxiPldhcm5pbmchISE8L2I+IEFmdGVyIGFjdGl2YXRpbmcgdGhpcyBmdW5jdGlvbiB4VGVWZSBtdXN0IGJlIGRlbGV0ZSBpbiB0aGUgUE1TIERWUiBzZXR0aW5ncyBhbmQgc2V0IHVwIGFnYWluLiINCiAgICB9LA0KICAgICJhdXRoZW50aWNhdGlvbk0zVSI6DQogICAgew0KICAgICAgInRpdGxlIjogIk0zVSBBdXRoZW50aWNhdGlvbiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiRG93bmxvYWRpbmcgdGhlIHh0ZXZlLm0zdSBmaWxlIHZpYSBhbiBIVFRQIHJlcXVlc3QgaXMgb25seSBwb3NzaWJsZSB3aXRoIGF1dGhlbnRpY2F0aW9uLiINCiAgICB9LA0KICAgICJhdXRoZW50aWNhdGlvblhNTCI6DQogICAgew0KICAgICAgInRpdGxlIjogIlhNTCBBdXRoZW50aWNhdGlvbiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiRG93bmxvYWRpbmcgdGhlIHh0ZXZlLnhtbCBmaWxlIHZpYSBhbiBIVFRQIHJlcXVlc3QgaXMgb25seSBwb3NzaWJsZSB3aXRoIGF1dGhlbnRpY2F0aW9uIg0KICAgIH0sDQogICAgImF1dGhlbnRpY2F0aW9uQVBJIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiQVBJIEF1dGhlbnRpY2F0aW9uIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJBY2Nlc3MgdG8gdGhlIEFQSSBpbnRlcmZhY2UgaXMgb25seSBwb3NzaWJsZSB3aXRoIGF1dGhlbnRpY2F0aW9uLiINCiAgICB9DQogIH0sDQogICJ3aXphcmQiOg0KICB7DQogICAgImVwZ1NvdXJjZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIkVQRyBTb3VyY2UiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIlBNUzo8YnI+LSBVc2UgRVBHIGRhdGEgZnJvbSBQbGV4IG9yIEVtYnkgPGJyPjxicj5YRVBHOjxicj4tIFVzZSBvZiBvbmUgb3IgbW9yZSBYTUxUViBmaWxlczxicj4tIENoYW5uZWwgbWFuYWdlbWVudDxicj4tIE0zVSAvIFhNTFRWIGV4cG9ydCAoSFRUUCBsaW5rIGZvciBJUFRWIGFwcHMpIg0KICAgIH0sDQogICAgInR1bmVyIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiTnVtYmVyIG9mIHR1bmVycyIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiTnVtYmVyIG9mIHBhcmFsbGVsIGNvbm5lY3Rpb25zIHRoYXQgY2FuIGJlIGVzdGFibGlzaGVkIHRvIHRoZSBwcm92aWRlci48YnI+QXZhaWxhYmxlIGZvcjogUGxleCwgRW1ieSAoSERIUiksIE0zVSAod2l0aCBhY3RpdmUgYnVmZmVyKS48YnI+QWZ0ZXIgYSBjaGFuZ2UsIHhUZVZlIG11c3QgYmUgZGVsZXRlIGluIHRoZSBQbGV4IC8gRW1ieSBEVlIgc2V0dGluZ3MgYW5kIHNldCB1cCBhZ2Fpbi4iDQogICAgfSwNCiAgICAibTN1IjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiTTNVIFBsYXlsaXN0IiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJGaWxlIHBhdGggb3IgVVJMIG9mIHRoZSBNM1UiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIkxvY2FsIG9yIHJlbW90ZSBwbGF5bGlzdHMiDQogICAgfSwNCiAgICAieG1sdHYiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJYTUxUViBGaWxlIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJGaWxlIHBhdGggb3IgVVJMIG9mIHRoZSBYTUxUViIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiTG9jYWwgb3IgcmVtb3RlIFhNTFRWIGZpbGUiDQogICAgfQ0KICB9LA0KICAibG9naW4iOg0KICB7DQogICAgImZhaWxlZCI6ICJVc2VyIGF1dGhlbnRpY2F0aW9uIGZhaWxlZCIsDQogICAgImhlYWRsaW5lIjogIkxvZ2luIiwNCiAgICAidXNlcm5hbWUiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJVc2VybmFtZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiVXNlcm5hbWUiDQogICAgfSwNCiAgICAicGFzc3dvcmQiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJQYXNzd29yZCIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiUGFzc3dvcmQiDQogICAgfQ0KICB9LA0KICAiYWNjb3VudCI6DQogIHsNCiAgICAiZmFpbGVkIjogIlBhc3N3b3JkIGRvZXMgbm90IG1hdGNoIiwNCiAgICAiaGVhZGxpbmUiOiAiQ3JlYXRlIHVzZXIgYWNjb3VudCIsDQogICAgInVzZXJuYW1lIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiVXNlcm5hbWUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIlVzZXJuYW1lIg0KICAgIH0sDQogICAgInBhc3N3b3JkIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiUGFzc3dvcmQiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIlBhc3N3b3JkIg0KICAgIH0sDQogICAgImNvbmZpcm0iOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJDb25maXJtIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJDb25maXJtIg0KICAgIH0NCiAgfQ0KfQ==" + webUI["html/img/logo_b_880x200.jpg"] = "/9j/4AAQSkZJRgABAQABLAEsAAD/4QDIRXhpZgAATU0AKgAAAAgABwESAAMAAAABAAEAAAEaAAUAAAABAAAAYgEbAAUAAAABAAAAagEoAAMAAAABAAIAAAExAAIAAAAPAAAAcgEyAAIAAAAUAAAAgodpAAQAAAABAAAAlgAAAAAAAAEsAAAAAQAAASwAAAABUGl4ZWxtYXRvciAzLjMAADIwMTk6MDg6MDIgMjA6MDg6MTQAAAOgAQADAAAAAQABAACgAgAEAAAAAQAAA3CgAwAEAAAAAQAAAMgAAAAA/+EJkGh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8APD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iWE1QIENvcmUgNS40LjAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcDpDcmVhdG9yVG9vbD0iUGl4ZWxtYXRvciAzLjMiIHhtcDpNb2RpZnlEYXRlPSIyMDE5LTA4LTAyVDIwOjA4OjE0Ii8+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPD94cGFja2V0IGVuZD0idyI/PgD/7QA4UGhvdG9zaG9wIDMuMAA4QklNBAQAAAAAAAA4QklNBCUAAAAAABDUHYzZjwCyBOmACZjs+EJ+/8AAEQgAyANwAwERAAIRAQMRAf/EAB8AAAEFAQEBAQEBAAAAAAAAAAABAgMEBQYHCAkKC//EALUQAAIBAwMCBAMFBQQEAAABfQECAwAEEQUSITFBBhNRYQcicRQygZGhCCNCscEVUtHwJDNicoIJChYXGBkaJSYnKCkqNDU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6g4SFhoeIiYqSk5SVlpeYmZqio6Slpqeoqaqys7S1tre4ubrCw8TFxsfIycrS09TV1tfY2drh4uPk5ebn6Onq8fLz9PX29/j5+v/EAB8BAAMBAQEBAQEBAQEAAAAAAAABAgMEBQYHCAkKC//EALURAAIBAgQEAwQHBQQEAAECdwABAgMRBAUhMQYSQVEHYXETIjKBCBRCkaGxwQkjM1LwFWJy0QoWJDThJfEXGBkaJicoKSo1Njc4OTpDREVGR0hJSlNUVVZXWFlaY2RlZmdoaWpzdHV2d3h5eoKDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uLj5OXm5+jp6vLz9PX29/j5+v/bAEMAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAf/bAEMBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAf/dAAQAbv/aAAwDAQACEQMRAD8A/iHoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKAP/9D+IegAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoA//0f4h6ACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgD//S/iHoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKAP/9P+IegAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoA//1P4h6ACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgDvPDXws+J3jPT31bwf8OfHnivSo7mSyfU/DXhDxBrunpeQpFLNaPe6Xp11bLcxRzwSSQNL5saTROyhZUNAHQf8M//AB4/6In8XP8Aw23jL/5TUAH/AAz/APHj/oifxc/8Nt4y/wDl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f/E3xn4o+IPjnxDLaafp8mveMPGet33iPxNrMlhpNpYaVZPqmtale3z2mmWNlp9s05hsrS2tkjhQA4ygAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgD//S/iHoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAczu+N7M2BgbmLYHoM9BnJxx1/FgBtABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAOLuwVWZiq/dUsSFz12joM4HQduc4FADaACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgD//0/4h6ACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgD//U/iHoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKAP/9X+IegAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoA//1v4h6ACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgD//X/iHoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKAP/9k=" webUI["html/js/authentication.js"] = "ZnVuY3Rpb24gY3JlYXRlRmlyc3RBY2NvdW50KGVsbSkgew0KICB2YXIgZXJyID0gZmFsc2U7DQogIHZhciBkaXYgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChlbG0pOw0KICBjb25zb2xlLmxvZyhkaXYpOw0KDQogIHZhciBmb3JtID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2F1dGhlbnRpY2F0aW9uJyk7DQogIA0KICBjb25zdCB1c2VybmFtZSAgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndXNlcm5hbWUnKTsNCiAgY29uc3QgcGFzc3dvcmQgID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Bhc3N3b3JkJyk7DQogIGNvbnN0IGNvbmZpcm0gICA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjb25maXJtJyk7DQoNCiAgdmFyIGlucHV0cyA9IGRpdi5nZXRFbGVtZW50c0J5VGFnTmFtZSgnSU5QVVQnKQ0KICBjb25zb2xlLmxvZyhjb25maXJtKTsNCg0KICBzd2l0Y2goY29uZmlybSkgew0KICAgIGNhc2UgbnVsbDogYnJlYWs7DQogICAgDQogICAgZGVmYXVsdDogDQogICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGlucHV0cy5sZW5ndGg7IGkrKykgew0KICAgICAgICBpZiAoaW5wdXRzW2ldLnZhbHVlLmxlbmd0aCA9PSAwKSB7DQogICAgICAgICAgaW5wdXRzW2ldLnN0eWxlLmJvcmRlckNvbG9yID0gJ3JlZCc7DQogICAgICAgICAgZXJyID0gdHJ1ZQ0KICAgICAgICB9DQogICAgICB9DQoNCiAgICAgIHN3aXRjaChlcnIpIHsNCiAgICAgICAgY2FzZSB0cnVlOiByZXR1cm47IGJyZWFrOw0KICAgICAgICBjYXNlIGZhbHNlOiANCiAgICAgICAgICBpZiAocGFzc3dvcmQudmFsdWUgIT0gY29uZmlybS52YWx1ZSkgew0KICAgICAgICAgICAgY29uZmlybS5zdHlsZS5ib3JkZXJDb2xvciA9ICdyZWQnOw0KICAgICAgICAgICAgcmV0dXJuOw0KICAgICAgICAgIH0NCiAgICAgICAgICBicmVhazsNCiAgICAgIH0NCiAgfQ0KDQoNCiAgDQoNCiAgZm9ybS5zdWJtaXQoKTsNCiAgcmV0dXJuOw0KfQ==" webUI["html/js/logs_ts.js"] = "Y2xhc3MgTG9nIHsNCiAgICBjcmVhdGVMb2coZW50cnkpIHsNCiAgICAgICAgdmFyIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJQUkUiKTsNCiAgICAgICAgaWYgKGVudHJ5LmluZGV4T2YoIldBUk5JTkciKSAhPSAtMSkgew0KICAgICAgICAgICAgZWxlbWVudC5jbGFzc05hbWUgPSAid2FybmluZ01zZyI7DQogICAgICAgIH0NCiAgICAgICAgaWYgKGVudHJ5LmluZGV4T2YoIkVSUk9SIikgIT0gLTEpIHsNCiAgICAgICAgICAgIGVsZW1lbnQuY2xhc3NOYW1lID0gImVycm9yTXNnIjsNCiAgICAgICAgfQ0KICAgICAgICBpZiAoZW50cnkuaW5kZXhPZigiREVCVUciKSAhPSAtMSkgew0KICAgICAgICAgICAgZWxlbWVudC5jbGFzc05hbWUgPSAiZGVidWdNc2ciOw0KICAgICAgICB9DQogICAgICAgIGVsZW1lbnQuaW5uZXJIVE1MID0gZW50cnk7DQogICAgICAgIHJldHVybiBlbGVtZW50Ow0KICAgIH0NCn0NCmZ1bmN0aW9uIHNob3dMb2dzKGJvdHRvbSkgew0KICAgIHZhciBsb2cgPSBuZXcgTG9nKCk7DQogICAgdmFyIGxvZ3MgPSBTRVJWRVJbImxvZyJdWyJsb2ciXTsNCiAgICB2YXIgZGl2ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnRlbnRfbG9nIik7DQogICAgZGl2LmlubmVySFRNTCA9ICIiOw0KICAgIHZhciBrZXlzID0gZ2V0T2JqS2V5cyhsb2dzKTsNCiAgICBrZXlzLmZvckVhY2gobG9nSUQgPT4gew0KICAgICAgICB2YXIgZW50cnkgPSBsb2cuY3JlYXRlTG9nKGxvZ3NbbG9nSURdKTsNCiAgICAgICAgZGl2LmFwcGVuZChlbnRyeSk7DQogICAgfSk7DQogICAgc2V0VGltZW91dChmdW5jdGlvbiAoKSB7DQogICAgICAgIGlmIChib3R0b20gPT0gdHJ1ZSkgew0KICAgICAgICAgICAgdmFyIHdyYXBwZXIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYm94LXdyYXBwZXIiKTsNCiAgICAgICAgICAgIHdyYXBwZXIuc2Nyb2xsVG9wID0gd3JhcHBlci5zY3JvbGxIZWlnaHQ7DQogICAgICAgIH0NCiAgICB9LCAxMCk7DQp9DQpmdW5jdGlvbiByZXNldExvZ3MoKSB7DQogICAgdmFyIGNtZCA9ICJyZXNldExvZ3MiOw0KICAgIHZhciBkYXRhID0gbmV3IE9iamVjdCgpOw0KICAgIHZhciBzZXJ2ZXIgPSBuZXcgU2VydmVyKGNtZCk7DQogICAgc2VydmVyLnJlcXVlc3QoZGF0YSk7DQp9DQo=" + webUI["html/js/users.js"] = "ZnVuY3Rpb24gb3BlblVzZXJzKGVsbSkgew0KICBjb2xvbW5Tb3J0ID0gMDsNCg0KICB2YXIgbmV3RGl2ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNldHRpbmdzIik7DQogIA0KICB2YXIgbmV3RW50cnkgPSBuZXcgT2JqZWN0KCk7DQogIG5ld0VudHJ5WyJfZWxlbWVudCJdICA9ICJIUiI7DQogIG5ld0Rpdi5hcHBlbmRDaGlsZChjcmVhdGVFbGVtZW50KG5ld0VudHJ5KSk7DQoNCiAgdmFyIG5ld0VudHJ5ID0gbmV3IE9iamVjdCgpOw0KICBuZXdFbnRyeVsiX2VsZW1lbnQiXSAgPSAiSU5QVVQiOw0KICBuZXdFbnRyeVsidHlwZSJdID0gImJ1dHRvbiI7DQogIG5ld0VudHJ5WyJjbGFzcyJdID0gImJ1dHRvbiI7DQogIG5ld0VudHJ5WyJ2YWx1ZSJdID0gIk5ldyI7DQogIG5ld0VudHJ5WyJvbmNsaWNrIl0gPSAidXNlckRldGFpbCgwKSI7DQogIG5ld0Rpdi5hcHBlbmRDaGlsZChjcmVhdGVFbGVtZW50KG5ld0VudHJ5KSk7DQoNCiAgdmFyIGRpdiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzZXR0aW5ncyIpOw0KDQogICAvLyBCdWlsZCB0YWJsZQ0KICB2YXIgbmV3VGFibGUgPSBuZXcgT2JqZWN0KCk7DQogIG5ld1RhYmxlWyJfZWxlbWVudCJdICA9ICJUQUJMRSI7DQogIG5ld1RhYmxlWyJpZCJdICAgICAgICA9ICJpZF9tYXBwaW5nIjsNCiAgbmV3VGFibGVbImNsYXNzIl0gICAgID0gInRhYmxlLW1hcHBpbmciOw0KICBkaXYuYXBwZW5kQ2hpbGQoY3JlYXRlRWxlbWVudChuZXdUYWJsZSkpOw0KDQogIHNldFRpbWVvdXQoZnVuY3Rpb24oKXsgDQogICAgY3JlYXRlVXNlcnNUYWJsZSgpOyANCiAgfSwgMTApOw0KfQ0KDQpmdW5jdGlvbiBjcmVhdGVVc2Vyc1RhYmxlKCkgew0KICB2YXIgdGFibGUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiaWRfbWFwcGluZyIpOw0KICB0YWJsZS5pbm5lckhUTUwgPSAiIjsNCiAgdmFyIG5ld1RSID0gbmV3IE9iamVjdCgpOw0KICBuZXdUUlsiX2VsZW1lbnQiXSA9ICJUUiI7DQogIG5ld1RSWyJjbGFzcyJdICAgID0gInRhYmxlLW1hcHBpbmctaGVhZGVyIjsNCiAgdGFibGUuYXBwZW5kQ2hpbGQoY3JlYXRlRWxlbWVudChuZXdUUikpOw0KDQogIHZhciB0ciA9IHRhYmxlLmxhc3RDaGlsZDsNCiAgdmFyIHRySGVhZGxpbmVzID0gbmV3IEFycmF5KCJVc2VybmFtZSIsICJQYXNzd29yZCIsICJXRUIiLCAiUE1TIiwgIk0zVSIsICJYTUwiLCAiQVBJIikNCg0KICBmb3IgKHZhciBpID0gMDsgaSA8IHRySGVhZGxpbmVzLmxlbmd0aDsgaSsrKSB7DQogICAgdmFyIG5ld1REID0gbmV3IE9iamVjdCgpOw0KICAgIG5ld1REWyJfZWxlbWVudCJdID0gIlREIjsNCiAgICBuZXdURFsiX3RleHQiXSAgICA9IHRySGVhZGxpbmVzW2ldOw0KICAgIHRyLmFwcGVuZENoaWxkKGNyZWF0ZUVsZW1lbnQobmV3VEQpKTsNCiAgfQ0KDQoNCiAgLy8gU29ydCB1c2Vycw0KICB2YXIgdXNlcklkcyA9IGdldE9iaktleXModXNlcnMpOw0KDQogIHZhciB1c2VyT2JqID0gbmV3IE9iamVjdCgpOw0KDQogIGZvciAodmFyIGkgPSAwOyBpIDwgdXNlcklkcy5sZW5ndGg7IGkrKykgew0KICAgIHZhciB1c2VybmFtZSA9IHVzZXJzW3VzZXJJZHNbaV1dWyJkYXRhIl1bInVzZXJuYW1lIl07DQogICAgdXNlck9ialt1c2VybmFtZV0gPSB1c2VySWRzW2ldOw0KICB9DQoNCiAgdmFyIGFsbFVzZXJzID0gZ2V0T2JqS2V5cyh1c2VyT2JqKTsNCiAgYWxsVXNlcnMuc29ydCgpOw0KICAvLyAtLQ0KDQogIGZvciAodmFyIGkgPSAwOyBpIDwgYWxsVXNlcnMubGVuZ3RoOyBpKyspIHsNCiAgICB2YXIgdGFibGUgICAgID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImlkX21hcHBpbmciKTsNCiAgICB2YXIgdXNlcklEICAgID0gdXNlck9ialthbGxVc2Vyc1tpXV07DQogICAgdmFyIHVzZXJuYW1lICA9IGFsbFVzZXJzW2ldOw0KICAgIHZhciBpdGVtICAgICAgPSB1c2Vyc1t1c2VySURdWyJkYXRhIl07DQoNCiAgICAvLyBDcmVhdGUgVFINCiAgICB2YXIgbmV3VFIgPSBuZXcgT2JqZWN0KCk7DQogICAgbmV3VFJbIl9lbGVtZW50Il0gICAgICAgPSAiVFIiOw0KICAgIG5ld1RSWyJjbGFzcyJdICAgICAgICAgID0gIiI7DQogICAgbmV3VFJbImlkIl0gICAgICAgICAgICAgPSB1c2VySUQ7DQogICAgbmV3VFJbIm9uY2xpY2siXSAgICAgICAgPSAnamF2YXNjcmlwdDogdXNlckRldGFpbCgiJyArIHVzZXJJRCArICciKTsnOw0KICAgIHRhYmxlLmFwcGVuZENoaWxkKGNyZWF0ZUVsZW1lbnQobmV3VFIpKTsNCg0KICAgIHZhciB0ciA9IHRhYmxlLmxhc3RDaGlsZDsNCg0KICAgIC8vIENyZWF0ZSB1c2VybmFtZSBURA0KICAgIHZhciBuZXdURCA9IG5ldyBPYmplY3QoKTsNCiAgICBuZXdURFsiX2VsZW1lbnQiXSA9ICJQIjsNCiAgICBuZXdURFsiX3RleHQiXSAgICA9IHVzZXJuYW1lOw0KICAgIGNyZWF0ZU5ld1REKG5ld1RELCB0cik7DQoNCiAgICAvLyBDcmVhdGUgcGFzc3dvcmQgVEQNCiAgICB2YXIgbmV3VEQgPSBuZXcgT2JqZWN0KCk7DQogICAgbmV3VERbIl9lbGVtZW50Il0gPSAiUCI7DQogICAgbmV3VERbIl90ZXh0Il0gICAgPSAiLi4uLi4iOw0KICAgIGNyZWF0ZU5ld1REKG5ld1RELCB0cik7DQoNCiAgICAvLyBDcmVhdGUgd2ViIGFjY2Vzcw0KICAgIHZhciBuZXdURCA9IG5ldyBPYmplY3QoKTsNCiAgICBuZXdURFsiX2VsZW1lbnQiXSA9ICJQIjsNCiAgICBzd2l0Y2goaXRlbVsiYXV0aGVudGljYXRpb24ud2ViIl0pew0KICAgICAgY2FzZSB0cnVlOiBuZXdURFsiX3RleHQiXSAgICA9ICLinJMiOyBicmVhazsNCiAgICAgIGRlZmF1bHQ6ICAgbmV3VERbIl90ZXh0Il0gICAgPSAiLSI7IGJyZWFrOw0KICAgIH0NCiAgICBjcmVhdGVOZXdURChuZXdURCwgdHIpOw0KDQogICAgLy8gQ3JlYXRlIFBNUyBhY2Nlc3MNCiAgICB2YXIgbmV3VEQgPSBuZXcgT2JqZWN0KCk7DQogICAgbmV3VERbIl9lbGVtZW50Il0gPSAiUCI7DQogICAgc3dpdGNoKGl0ZW1bImF1dGhlbnRpY2F0aW9uLnBtcyJdKXsNCiAgICAgIGNhc2UgdHJ1ZTogbmV3VERbIl90ZXh0Il0gICAgPSAi4pyTIjsgYnJlYWs7DQogICAgICBkZWZhdWx0OiAgIG5ld1REWyJfdGV4dCJdICAgID0gIi0iOyBicmVhazsNCiAgICB9DQogICAgY3JlYXRlTmV3VEQobmV3VEQsIHRyKTsNCg0KICAgIC8vIENyZWF0ZSBNM1UgYWNjZXNzDQogICAgdmFyIG5ld1REID0gbmV3IE9iamVjdCgpOw0KICAgIG5ld1REWyJfZWxlbWVudCJdID0gIlAiOw0KICAgIHN3aXRjaChpdGVtWyJhdXRoZW50aWNhdGlvbi5tM3UiXSl7DQogICAgICBjYXNlIHRydWU6IG5ld1REWyJfdGV4dCJdICAgID0gIuKckyI7IGJyZWFrOw0KICAgICAgZGVmYXVsdDogICBuZXdURFsiX3RleHQiXSAgICA9ICItIjsgYnJlYWs7DQogICAgfQ0KICAgIGNyZWF0ZU5ld1REKG5ld1RELCB0cik7DQoNCiAgICAvLyBDcmVhdGUgWE1MVFYgYWNjZXNzDQogICAgdmFyIG5ld1REID0gbmV3IE9iamVjdCgpOw0KICAgIG5ld1REWyJfZWxlbWVudCJdID0gIlAiOw0KICAgIHN3aXRjaChpdGVtWyJhdXRoZW50aWNhdGlvbi54bWwiXSl7DQogICAgICBjYXNlIHRydWU6IG5ld1REWyJfdGV4dCJdICAgID0gIuKckyI7IGJyZWFrOw0KICAgICAgZGVmYXVsdDogICBuZXdURFsiX3RleHQiXSAgICA9ICItIjsgYnJlYWs7DQogICAgfQ0KICAgIGNyZWF0ZU5ld1REKG5ld1RELCB0cik7DQoNCiAgICAvLyBDcmVhdGUgQVBJIGFjY2Vzcw0KICAgIHZhciBuZXdURCA9IG5ldyBPYmplY3QoKTsNCiAgICBuZXdURFsiX2VsZW1lbnQiXSA9ICJQIjsNCg0KICAgIHN3aXRjaChpdGVtWyJhdXRoZW50aWNhdGlvbi5hcGkiXSl7DQogICAgICBjYXNlIHRydWU6IG5ld1REWyJfdGV4dCJdICAgID0gIuKckyI7IGJyZWFrOw0KICAgICAgZGVmYXVsdDogICBuZXdURFsiX3RleHQiXSAgICA9ICItIjsgYnJlYWs7DQogICAgfQ0KICAgIGNyZWF0ZU5ld1REKG5ld1RELCB0cik7DQoNCiAgfQ0KDQogIC8vIHVzYWdlIEluZm8gIA0KICB2YXIgZGl2ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNldHRpbmdzIik7DQogIHN3aXRjaChtZW51W2FjdGl2ZU1lbnUuaWRdLmhhc093blByb3BlcnR5KCJfdXNhZ2UiKSkgew0KICAgIGNhc2UgdHJ1ZTogDQogICAgICB2YXIgdXNhZ2VJdGVtID0gbmV3IE9iamVjdCgpOw0KICAgICAgdXNhZ2VJdGVtWyJfZWxlbWVudCJdID0gIlBSRSINCiAgICAgIHVzYWdlSXRlbVsiX3RleHQiXSAgICA9IG1lbnVbYWN0aXZlTWVudS5pZF1bIl91c2FnZSJdOw0KDQogICAgICB2YXIgbmV3SFIgPSBuZXcgT2JqZWN0KCk7DQogICAgICBuZXdIUlsiX2VsZW1lbnQiXSA9ICJIUiINCiAgICAgIGRpdi5hcHBlbmRDaGlsZChjcmVhdGVFbGVtZW50KG5ld0hSKSk7DQogICAgICBkaXYuYXBwZW5kQ2hpbGQoY3JlYXRlRWxlbWVudCh1c2FnZUl0ZW0pKTsNCiAgfQ0KDQogIHNvcnRUYWJsZSgwKTsNCn0NCg0KZnVuY3Rpb24gdXNlckRldGFpbCh1c2VySUQpIHsNCiAgc2hvd1BvcFVwRWxlbWVudCgndXNlci1kZXRhaWwnKTsNCiAgc2V0VGltZW91dChmdW5jdGlvbigpeyANCiAgICBzaG93RWxlbWVudCgicG9wdXAiLCB0cnVlKTsNCiAgfSwgMTApOw0KICB2YXIgZGVmYXVsdFVzZXI7DQoNCiAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNhdmVVc2VyRGV0YWlsIikuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IHNhdmVVc2VyRGV0YWlsKCInICsgdXNlcklEICsgJyIsIGZhbHNlKScpOw0KICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZGVsZXRlVXNlckRldGFpbCIpLnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBzYXZlVXNlckRldGFpbCgiJyArIHVzZXJJRCArICciLCB0cnVlKScpOw0KDQogIHZhciBkYXRhID0gbmV3IE9iamVjdCgpOw0KICANCiAgc3dpdGNoKHVzZXJJRCkgew0KICAgIGNhc2UgMDogICAvLyBOZXcgVXNlcg0KICAgICAgZGF0YVsidXNlcm5hbWUiXSA9ICIiOw0KICAgICAgZGF0YVsiYXV0aGVudGljYXRpb24ud2ViIl0gPSBmYWxzZTsNCiAgICAgIGRhdGFbImF1dGhlbnRpY2F0aW9uLnBtcyJdID0gdHJ1ZTsNCiAgICAgIGRhdGFbImF1dGhlbnRpY2F0aW9uLnhtbCJdID0gdHJ1ZTsNCiAgICAgIGRhdGFbImF1dGhlbnRpY2F0aW9uLm0zdSJdID0gZmFsc2U7DQogICAgICBkYXRhWyJhdXRoZW50aWNhdGlvbi5hcGkiXSA9IGZhbHNlOw0KICAgICAgZGF0YVsiZGVmYXVsdFVzZXIiXSAgICAgICAgPSBmYWxzZTsNCiAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKXsgDQogICAgICAgIHNob3dFbGVtZW50KCJkZWxldGVVc2VyRGV0YWlsIiwgZmFsc2UpDQogICAgICB9LCAxKTsNCg0KICAgICAgYnJlYWs7IA0KICAgIA0KICAgIGRlZmF1bHQ6IA0KICAgICAgZGF0YSA9IHVzZXJzW3VzZXJJRF1bImRhdGEiXTsgDQogICAgICBzaG93RWxlbWVudCgiZGVsZXRlVXNlckRldGFpbCIsIHRydWUpICAgDQogICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZGVsZXRlVXNlckRldGFpbCIpLmNsYXNzTmFtZSA9ICJkZWxldGUiOw0KICAgDQogICAgICBicmVhaw0KICB9DQogIA0KDQogIHZhciB1c2VybmFtZSA9IGRhdGFbInVzZXJuYW1lIl07DQogIGRhdGFbInBhc3N3b3JkIl0gPSAiIjsNCiAgZGF0YVsiY29uZmlybSJdID0gIiI7DQoNCiAgdmFyIGtleXMgPSBnZXRPYmpLZXlzKGRhdGEpOw0KICBkZWZhdWx0VXNlciA9IGRhdGFbImRlZmF1bHRVc2VyIl07DQogIGlmIChkYXRhLmhhc093blByb3BlcnR5KCJkZWZhdWx0VXNlciIpKSB7DQogICAgZGVmYXVsdFVzZXIgPSBKU09OLnBhcnNlKGRhdGFbImRlZmF1bHRVc2VyIl0pOw0KICB9DQoNCiAgZm9yICh2YXIgaSA9IDA7IGkgPCBrZXlzLmxlbmd0aDsgaSsrKSB7DQoNCiAgICBpZihkb2N1bWVudC5nZXRFbGVtZW50QnlJZChrZXlzW2ldKSl7DQogICAgICB2YXIgdGQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChrZXlzW2ldKQ0KICAgIH0gZWxzZSB7DQogICAgICB2YXIgdGQgPSB1bmRlZmluZWQ7DQogICAgfQ0KDQogICAgdmFyIG5ld0l0ZW0gPSBuZXcgT2JqZWN0KCk7DQoNCiAgICBuZXdJdGVtWyJfZWxlbWVudCJdID0gIklOUFVUIjsNCiAgICANCiAgICBuZXdJdGVtWyJ2YWx1ZSJdICAgID0gZGF0YVtrZXlzW2ldXTsNCiAgICBuZXdJdGVtWyJuYW1lIl0gICAgID0ga2V5c1tpXTsNCg0KDQoNCg0KDQogICAgc3dpdGNoKGtleXNbaV0uaW5kZXhPZigiYXV0aGVudGljYXRpb24iKSkgew0KICAgICAgY2FzZSAtMTogDQogICAgICAgIGlmIChrZXlzW2ldID09ICJwYXNzd29yZCIgfHwga2V5c1tpXSA9PSAiY29uZmlybSIpIHsNCiAgICAgICAgICBuZXdJdGVtWyJ0eXBlIl0gICAgID0gInBhc3N3b3JkIjsNCiAgICAgICAgfSBlbHNlIHsNCiAgICAgICAgICBuZXdJdGVtWyJ0eXBlIl0gICAgID0gInRleHQiOw0KICAgICAgICB9DQogICAgICAgIGJyZWFrOw0KDQogICAgICBkZWZhdWx0OiANCiAgICAgICAgbmV3SXRlbVsidHlwZSJdICAgICA9ICJjaGVja2JveCI7DQogICAgICAgIA0KICAgICAgICBpZiAoa2V5c1tpXSA9PSAiYXV0aGVudGljYXRpb24ud2ViIiAmJiBkZWZhdWx0VXNlciA9PSB0cnVlKSB7DQogICAgICAgICAgbmV3SXRlbVsib25jbGljayJdID0gInJldHVybiBmYWxzZSI7IA0KICAgICAgICB9DQogICAgICAgIA0KICAgICAgICBpZiAoZGF0YVtrZXlzW2ldXSA9PSB0cnVlKSB7ICAgICAgICAgIA0KICAgICAgICAgIG5ld0l0ZW1bImNoZWNrZWQiXSAgPSBkYXRhW2tleXNbaV1dOyAgDQogICAgICAgIH0NCiAgICAgICAgDQogICAgICAgIGJyZWFrOw0KICAgIH0NCg0KICAgIHN3aXRjaChrZXlzW2ldKSB7DQogICAgICBjYXNlICJkZWZhdWx0VXNlciI6IA0KICAgICAgICAvL2lmIChkYXRhW2tleXNbaV1dID09IHRydWUpIHsNCiAgICAgICAgbmV3SXRlbVsidHlwZSJdICAgICA9ICJoaWRkZW4iOw0KICAgICAgICAvL30NCiAgICB9DQoNCg0KICAgIGlmICh0ZCAhPSB1bmRlZmluZWQpIHsNCiAgICAgIHRkLmlubmVySFRNTCA9ICIiOw0KICAgICAgdmFyIGVsZW1lbnQgPSBjcmVhdGVOZXdFbGVtZW50KG5ld0l0ZW0pDQogICAgICAvL2NvbnNvbGUubG9nKGVsZW1lbnQpOw0KICAgICAgdGQuYXBwZW5kQ2hpbGQoZWxlbWVudCk7DQogICAgfQ0KDQoNCiAgfQ0KDQoNCiAgaWYgKGRlZmF1bHRVc2VyID09IHRydWUpIHsNCiAgICBzaG93RWxlbWVudCgiZGVsZXRlVXNlckRldGFpbCIsIGZhbHNlKQ0KICB9IGVsc2Ugew0KICAgIHNob3dFbGVtZW50KCJkZWxldGVVc2VyRGV0YWlsIiwgdHJ1ZSkNCiAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZGVsZXRlVXNlckRldGFpbCIpLmNsYXNzTmFtZSA9ICJkZWxldGUiOw0KICB9DQoNCn0NCg0KZnVuY3Rpb24gc2F2ZVVzZXJEZXRhaWwodXNlcklELCBkZWxldGVVc2VyKSB7DQoNCiAgdmFyIGlucHV0cyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ1c2VyLWRldGFpbC10YWJsZSIpLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJJTlBVVCIpOw0KDQogIHZhciBuZXdVc2VyRGF0YSA9IG5ldyBPYmplY3QoKTsNCiAgZm9yICh2YXIgaSA9IDA7IGkgPCBpbnB1dHMubGVuZ3RoOyBpKyspIHsNCiAgICBzd2l0Y2goaW5wdXRzW2ldLnR5cGUpIHsNCiAgICAgIGNhc2UgImNoZWNrYm94IjogIG5ld1VzZXJEYXRhW2lucHV0c1tpXS5uYW1lXSA9IGlucHV0c1tpXS5jaGVja2VkOyBicmVhazsNCiAgICAgIGRlZmF1bHQ6ICAgICAgICAgIG5ld1VzZXJEYXRhW2lucHV0c1tpXS5uYW1lXSA9IGlucHV0c1tpXS52YWx1ZTsgYnJlYWs7DQogICAgfQ0KICAgIA0KICAgIGlmIChpbnB1dHNbInVzZXJuYW1lIl0udmFsdWUubGVuZ3RoID09IDApIHsNCiAgICAgIGlucHV0c1sidXNlcm5hbWUiXS5zdHlsZS5ib3JkZXIgPSAic29saWQgMXB4IHJlZCI7DQogICAgICByZXR1cm47DQogICAgfQ0KDQogICAgc3dpdGNoKHVzZXJJRCkgew0KICAgICAgY2FzZSAiMCI6IA0KICAgICAgICBpZiAoaW5wdXRzWyJwYXNzd29yZCJdLnZhbHVlLmxlbmd0aCA9PSAwKSB7DQogICAgICAgICAgY29uc29sZS5sb2coaW5wdXRzWyJwYXNzd29yZCJdLnZhbHVlLmxlbmd0aCk7DQogICAgICAgICAgaW5wdXRzWyJwYXNzd29yZCJdLnN0eWxlLmJvcmRlciA9ICJzb2xpZCAxcHggcmVkIjsNCiAgICAgICAgICByZXR1cm4NCiAgICAgICAgfQ0KICAgICAgICBicmVhazsNCiAgICB9DQoNCiAgICBpZiAoaW5wdXRzWyJwYXNzd29yZCJdLnZhbHVlLmxlbmd0aCA+IDApIHsNCiAgICAgIGlmIChpbnB1dHNbInBhc3N3b3JkIl0udmFsdWUgIT0gaW5wdXRzWyJjb25maXJtIl0udmFsdWUpIHsNCiAgICAgICAgaW5wdXRzWyJwYXNzd29yZCJdLnN0eWxlLmJvcmRlciA9ICJzb2xpZCAxcHggcmVkIjsNCiAgICAgICAgaW5wdXRzWyJjb25maXJtIl0uc3R5bGUuYm9yZGVyID0gInNvbGlkIDFweCByZWQiOw0KICAgICAgICByZXR1cm47DQogICAgICB9DQogICAgfQ0KICAgIA0KICB9DQoNCiAgdmFyIGRhdGEgPSBuZXcgT2JqZWN0KCk7DQogIA0KICBzd2l0Y2godXNlcklEKSB7DQogICAgY2FzZSAiMCI6DQogICAgICAvL2RhdGEgPSBuZXdVc2VyRGF0YQ0KICAgICAgZGF0YVsidXNlckRhdGEiXSAgPSBuZXdVc2VyRGF0YQ0KICAgICAgZGF0YVsiY21kIl0gICAgICAgPSAic2F2ZU5ld1VzZXIiOyBicmVhazsNCiAgICANCiAgICBkZWZhdWx0OiAgDQogICAgICB2YXIgdGhpc1VzZXIgICAgICA9IG5ldyBPYmplY3QoKTsNCiAgICAgIA0KICAgICAgaWYgKGRlbGV0ZVVzZXIgPT0gdHJ1ZSkgew0KICAgICAgICBpZiAoY29uZmlybSgnRGVsZXRlIHRoZSBzZWxlY3RlZCB1c2VyPycpKSB7DQogICAgICAgICAgZGF0YVsiZGVsZXRlVXNlciJdID0gdHJ1ZTsNCiAgICAgICAgfSBlbHNlIHsNCiAgICAgICAgICBzaG93RWxlbWVudCgicG9wdXAiLCBmYWxzZSk7DQogICAgICAgICAgcmV0dXJuDQogICAgICAgIH0NCiAgICAgIH0NCiAgICAgIA0KICAgICAgdGhpc1VzZXJbdXNlcklEXSAgPSBuZXdVc2VyRGF0YTsNCg0KICAgICAgZGF0YVsidXNlckRhdGEiXSA9IHRoaXNVc2VyOw0KICAgICAgZGF0YVsiY21kIl0gPSAic2F2ZVVzZXJEYXRhIjsgYnJlYWs7DQogIH0NCiAgDQogIHhUZVZlKGRhdGEpOw0KICAvL2NyZWF0ZVVzZXJzVGFibGUoKQ0KICBzaG93RWxlbWVudCgicG9wdXAiLCBmYWxzZSk7DQp9DQoNCg0K" + webUI["html/img/x_black.png"] = "iVBORw0KGgoAAAANSUhEUgAAAQAAAAEACAIAAADTED8xAAAAAXNSR0IArs4c6QAAAAlwSFlzAAAWJQAAFiUBSVIk8AAAA6ppVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IlhNUCBDb3JlIDUuNC4wIj4KICAgPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIgogICAgICAgICAgICB4bWxuczp0aWZmPSJodHRwOi8vbnMuYWRvYmUuY29tL3RpZmYvMS4wLyIKICAgICAgICAgICAgeG1sbnM6ZXhpZj0iaHR0cDovL25zLmFkb2JlLmNvbS9leGlmLzEuMC8iPgogICAgICAgICA8eG1wOk1vZGlmeURhdGU+MjAxOC0xMS0xNVQxNzoxMTozNzwveG1wOk1vZGlmeURhdGU+CiAgICAgICAgIDx4bXA6Q3JlYXRvclRvb2w+UGl4ZWxtYXRvciAzLjM8L3htcDpDcmVhdG9yVG9vbD4KICAgICAgICAgPHRpZmY6T3JpZW50YXRpb24+MTwvdGlmZjpPcmllbnRhdGlvbj4KICAgICAgICAgPHRpZmY6Q29tcHJlc3Npb24+NTwvdGlmZjpDb21wcmVzc2lvbj4KICAgICAgICAgPHRpZmY6UmVzb2x1dGlvblVuaXQ+MjwvdGlmZjpSZXNvbHV0aW9uVW5pdD4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+MTQ0PC90aWZmOllSZXNvbHV0aW9uPgogICAgICAgICA8dGlmZjpYUmVzb2x1dGlvbj4xNDQ8L3RpZmY6WFJlc29sdXRpb24+CiAgICAgICAgIDxleGlmOlBpeGVsWERpbWVuc2lvbj4yNTY8L2V4aWY6UGl4ZWxYRGltZW5zaW9uPgogICAgICAgICA8ZXhpZjpDb2xvclNwYWNlPjE8L2V4aWY6Q29sb3JTcGFj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a1jSekqmtA1rrGsx7JYkDuvrVahwRdgVXD1xcwri6mmYRULLe4CuPc2wfrGo4U+7Y/3S9ZHD+GcflbnfiCJbr77whoaS6ucCXVkVkuLKgORQwNJFygRDJnqwb9i3b0HxkqjT0L4erGy5Rh1IRnhXrpaZq6GZCyRLf6cvhoTY6V9koX8bGdEUlyWVm6W5q1GuostihNm97L/dpm5k+QHCbDna0zRzgSS/lRHWL7iHPOa+9YsYkpttoCwSMcQRkrWioz5Qsc7aFJ1coHY3QyJ9jSjfJEOCfTUpWzehVBnUbqCJOCHEkB1xsmXDwq9DnObUz9q4QOUqYPaPKFzUKcVj6Eeu461q67Vhlqy6+Xo11G52JhRZNNW1FRbN00FWPVwguSa+8YEZ1i+D9vQjelm/iHTwAB69Vwd7CkuGLOcWtxfR4o+dHhNg4DNmhDvJ8M6ehknvhTXMDp8kQQgT33W4z+i7k/2gho+Jvrp1NTVwgW5opV76yl8F/cufe9CyJiRllZ6lYCHMXWPAXmNp9CRb8Pi30r658sHtCSCPsZNXQDYdMaLIek/No13V/rBfGMFSCXnsKNo1dDelnKt/dyUH8uvjjLH+zyfpbv1iUl/NVBt4mVJy58HoDyFZLt0rrj4G7TfIjARvMjy7d6JnR/UXS/+yeD5kLYkETxpRZL2jZJVzb7cl9yZA/cYqh4z+20AEzOj+BKxbZYRFqXQssvLs5gQzpBUp616rNsX55WdXBHbPBRrwlBm5v2VYJo1FsjmOtQg8ezo+fd8Ve4qy04HPRlmR1UiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABGwg8D8UnyVeZFwGAQAAAABJRU5ErkJggg==" + webUI["html/css/screen.css"] = "bmF2IGltZyB7DQogIGRpc3BsYXk6IGJsb2NrOw0KICBtYXgtaGVpZ2h0OiAyMHB4Ow0KICBtYXgtd2lkdGg6IDIwcHg7DQogIGZsb2F0OiBsZWZ0Ow0KfQ0KDQpuYXYgcCB7DQogIHRleHQtYWxpZ246IGxlZnQ7DQogIHBhZGRpbmc6IDBweCAzMHB4Ow0KfQ0KDQojbGF5b3V0IHsNCiAgZGlzcGxheTogYmxvY2s7DQogIGhlaWdodDogMTAwJTsNCn0NCg0KDQoubGF5b3V0LWxlZnQgew0KICBkaXNwbGF5OiBibG9jazsNCiAgbWluLXdpZHRoOiAxNTBweDsNCiAgbWF4LXdpZHRoOiAyMCU7DQogIGJhY2tncm91bmQtY29sb3I6ICMxMTE7DQogIGhlaWdodDogaW5oZXJpdDsNCiAgZmxvYXQ6IGxlZnQ7DQp9DQoNCi5sYXlvdXQtcmlnaHQgew0KICBkaXNwbGF5OiBibG9jazsNCiAgYmFja2dyb3VuZC1jb2xvcjogIzQ0NDsNCn0NCg0KI21lbnUtd3JhcHBlciB7DQogIGhlaWdodDogMTAwJTsNCn0NCg0KDQojbG9nbyB7DQogIGRpc3BsYXk6IGJsb2NrOw0KICBtaW4td2lkdGg6IDE4MHB4Ow0KICB3aWR0aDogMTAwJTsNCiAgaGVpZ2h0OiAxMDBweDsNCiAgYmFja2dyb3VuZDogdXJsKCIuLi9pbWcvbG9nb193XzYwMHgyMDAucG5nIik7DQogIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7DQogIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjsgDQogIGJhY2tncm91bmQtc2l6ZTogMTAwJTsNCn0NCg0KDQojcGFnZSB7DQogIG1heC13aWR0aDogOTUwcHg7DQogIG1hcmdpbjogYXV0bzsNCiAgYmFja2dyb3VuZC1jb2xvcjogIzQ0NDsNCg0KICAvKg0KICBoZWlnaHQ6IC13ZWJraXQtY2FsYygxMDAlIC0gMTMwcHgpOw0KICBoZWlnaHQ6IC1tb3otY2FsYygxMDAlIC0gMTMwcHgpOw0KICBoZWlnaHQ6IGNhbGMoMTAwJSAtIDEzMHB4KTsNCiAgKi8NCiAgDQogIG1pbi1oZWlnaHQ6IC13ZWJraXQtY2FsYygxMDAlIC0gMTIwcHgpOw0KICBtaW4taGVpZ2h0OiAtbW96LWNhbGMoMTAwJSAtIDEyMHB4KTsNCiAgbWluLWhlaWdodDogY2FsYygxMDAlIC0gMTIwcHgpOw0KICANCiAgDQogIGJveC1zaGFkb3c6IDBweCA1cHggNXB4ICMyMjI7DQogIA0KfQ0KDQojdWlTZXR0aW5nIHsNCiAgZmxvYXQ6IHJpZ2h0Ow0KICBtYXJnaW4tcmlnaHQ6IDI1cHg7DQp9DQoNCiNib3ggaW5wdXRbdHlwZT10ZXh0XSwgI2JveCBpbnB1dFt0eXBlPXBhc3N3b3JkXSB7DQogIHdpZHRoOiAtd2Via2l0LWNhbGMoMTAwJSAtIDIwcHgpOw0KICB3aWR0aDogLW1vei1jYWxjKDEwMCUgLSAyMHB4KTsNCiAgd2lkdGg6IGNhbGMoMTAwJSAtIDIwcHgpOw0KfQ0KDQojYm94IGlucHV0W3R5cGU9c3VibWl0XXsNCiAgbWFyZ2luOiA1MHB4IGF1dG87DQp9DQoNCiNzZXR0aW5ncyB7DQogIGRpc3BsYXk6IGJsb2NrOw0KICBwYWRkaW5nOiAxMHB4IDEwcHg7DQp9DQoNCiNzZXR0aW5ncyBoNSB7DQogIG1hcmdpbjogNTBweCAwcHggMTBweCAwcHg7DQp9DQoNCiNjb250ZW50LWludGVyYWN0aW9uIC5zZWFyY2ggew0KICB3aWR0aDogMjAwcHg7DQogIGJvcmRlcjogMXB4IHNvbGlkICMwMDA7DQogIHBhZGRpbmc6IDlweDsNCiAgYmFja2dyb3VuZC1jb2xvcjogIzMzMzsNCiAgbWFyZ2luOiAxMHB4Ow0KICBmbG9hdDogcmlnaHQ7DQogIGJvcmRlci1yYWRpdXM6IDNweDsNCg0KfQ0KDQojbXlTdHJlYW1zIHsNCiAgcG9zaXRpb246IGZpeGVkOw0KICBib3R0b206IDBweDsNCiAgYmFja2dyb3VuZC1jb2xvcjogIzExMTsNCiAgd2lkdGg6IDEwMCU7DQogIG1heC13aWR0aDogOTUwcHg7DQoNCiAgLyoNCiAgbWF4LWhlaWdodDogMTAwcHg7DQogICovDQogIG1hcmdpbi1ib3R0b206IDBweDsNCn0NCg0KI215U3RyZWFtcyBpbWcgew0KICB3aWR0aDogNCU7DQogIHBhZGRpbmc6IDJweCA1cHg7DQogIGN1cnNvcjogcG9pbnRlcjsNCiAgZmxvYXQ6IHJpZ2h0Ow0KfQ0KDQojc2V0dGluZ3MtZm9vdGVyIHsNCg0KfQ0KDQoNCi8qIFdpemFyZCovDQojYm94IHsNCiAgYmFja2dyb3VuZC1jb2xvcjogIzQ0NDsNCiAgbWluLWhlaWdodDogNDAwcHg7DQogIA0KICBkaXNwbGF5OiBmbGV4Ow0KICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOw0KICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47DQp9DQoNCiNib3ggcHsNCiAgcGFkZGluZzogMTBweCAwcHg7DQp9DQoNCiNib3gtZm9vdGVyIHsNCiAgbWFyZ2luLXRvcDogYXV0bzsNCn0NCg0KI2JveC1mb290ZXIgew0KICBtYXJnaW46IGF1dG87DQogIHBhZGRpbmc6IDEwcHg7DQp9DQoNCiNoZWFkbGluZSB7DQogIGJhY2tncm91bmQtY29sb3I6ICMyMjI7DQogIGJvcmRlci1ib3R0b206IHNvbGlkIDJweCAjMjIyOw0KICB0cmFuc2l0aW9uOiBhbGwgMC41czsNCiAgcGFkZGluZzogMTBweCAwcHg7DQogIGRpc3BsYXk6IGJsb2NrOw0KfQ0KDQojY29udGVudCB7DQogIGRpc3BsYXk6IGJsb2NrOw0KICBvdmVyZmxvdzogYXV0bzsNCiAgcGFkZGluZzogMTBweDsNCn0NCg0KLyogLS0tICovDQoNCg0KI2NsaWVudEluZm8sICNhY3RpdmVTdHJlYW1zLCAjaW5hY3RpdmVTdHJlYW1zIHsNCiAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZTsNCiAgZGlzcGxheTogYmxvY2s7DQogIGZvbnQtc2l6ZTogOXB4Ow0KICBiYWNrZ3JvdW5kLWNvbG9yOiAjMTExOw0KICBjb2xvcjogIzAwRTZGRjsNCiAgYm9yZGVyLWJvdHRvbTogc29saWQgMHB4OzsNCiAgcGFkZGluZzogMHB4Ow0KICBsZXR0ZXItc3BhY2luZzogMXB4Ow0KICBvdmVyZmxvdy14OiBoaWRkZW47DQogIGJvcmRlci1zcGFjaW5nOiA0cHggNHB4Ow0KICBib3JkZXItYm90dG9tOiBzb2xpZCAxcHggIzQ0NDsNCn0NCg0KI215U3RyZWFtc0JveCB7DQogIHBvc2l0aW9uOiByZWxhdGl2ZTsNCiAgcGFkZGluZzogMHB4Ow0KICAvKmhlaWdodDogMTAwcHg7Ki8NCiAgbWF4LWhlaWdodDogMTUwcHg7DQogIGJhY2tncm91bmQtY29sb3I6ICMxMTE7DQogIGNvbG9yOiB3aGl0ZTsNCiAgZGlzcGxheTpmbGV4Ow0KICBqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyOw0KICBhbGlnbi1pdGVtczpjZW50ZXI7DQp9DQoNCiNvcGVuU3RyZWFtcyB7DQogIHdpZHRoOiAyMHB4Ow0KICBoZWlnaHQ6IDIwcHg7DQogIGN1cnNvcjogcG9pbnRlcjsNCiAgZmxvYXQ6IHJpZ2h0Ow0KICBwb3NpdGlvbjogYWJzb2x1dGU7DQogIHJpZ2h0OiAwcHg7DQogIGJvdHRvbTogMHB4Ow0KICBiYWNrZ3JvdW5kOiB1cmwoIi4uL2ltZy90b3VjaC5wbmciKTsNCiAgYmFja2dyb3VuZC1jb2xvcjogIzExMTsNCiAgDQogIGJhY2tncm91bmQtcG9zaXRpb246IGJvdHRvbSByaWdodDsgIA0KfQ0KDQojYWxsU3RyZWFtcyB7DQogIHdpZHRoOiAxMDAlOw0KICBoZWlnaHQ6IDEwMCU7DQogIHBhZGRpbmc6IDJweDsgICAgIA0KfQ0KDQojYWN0aXZlU3RyZWFtcywgI2luYWN0aXZlU3RyZWFtcyB7DQogIG92ZXJmbG93LXk6IHNjcm9sbDsNCiAgd2lkdGg6IDUwJTsNCiAgbWF4LWhlaWdodDogMTAwcHg7DQogIGZsb2F0OiBsZWZ0Ow0KfQ0KDQojYWN0aXZlU3RyZWFtcyAudGRLZXksICNpbmFjdGl2ZVN0cmVhbXMgLnRkS2V5IHsNCiAgd2lkdGg6IDc1cHg7DQp9DQoNCg0KDQoNCiNpbmFjdGl2ZVN0cmVhbXMgLnRkS2V5IHsNCiAgY29sb3I6IHJlZDsNCn0NCg0KI2NsaWVudEluZm8gLnRkVmFsLCAjbG9nSW5mbyAudGRWYWwsICNhY3RpdmVTdHJlYW1zIC50ZFZhbCwgI2luYWN0aXZlU3RyZWFtcyAudGRWYWwsICNtYXBwaW5nSW5mbyAudGRWYWx7DQogIGNvbG9yOiAjYWFhOw0KICB3aGl0ZS1zcGFjZTogaW5oZXJpdDsNCn0NCg0KI2JveC13cmFwcGVyIHsNCiAgZGlzcGxheTogaW5saW5lLWJsb2NrOw0KICB3aWR0aDogMTAwJTsNCiAgDQogIG92ZXJmbG93LXk6IHNjcm9sbDsNCn0NCg0KI2NvbnRlbnRfdGFibGUsICNtYXBwaW5nLWRldGFpbC10YWJsZSwgI2NvbnRlbnRfdGFibGUgew0KICBkaXNwbGF5OiB0YWJsZTsNCiAgDQogIGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7DQogIG92ZXJmbG93LXk6IHNjcm9sbDsNCiAgd2lkdGg6IDEwMCU7DQp9DQoNCg0KI2NvbnRlbnRfdGFibGUgLmNvbnRlbnRfdGFibGVfaGVhZGVyIHsNCiAgYmFja2dyb3VuZC1jb2xvcjogIzMzMzsNCiAgaGVpZ2h0OiA1MHB4Ow0KICBib3JkZXItYm90dG9tOiBzb2xpZCAxcHggIzExMTsNCiAgYm9yZGVyLWxlZnQ6IHNvbGlkIDNweCAjMzMzOw0KICBjdXJzb3I6IGF1dG87DQoNCn0NCg0KDQp0Ym9keSB7DQogIHdpZHRoOiAxMDAlOw0KfQ0KDQoNCi50YWJsZUVsbGlwc2lzIHsNCiAgd2lkdGg6IDE1MHB4Ow0KICBvdmVyZmxvdzogaGlkZGVuOw0KICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsNCiAgd2hpdGUtc3BhY2U6IG5vd3JhcDsNCn0NCg0KI2NvbnRlbnRfdGFibGUgaW1nIHsNCiAgZGlzcGxheTogYmxvY2s7DQogIG1heC1oZWlnaHQ6IDI4cHg7DQogIG1hcmdpbi1sZWZ0OiBhdXRvOw0KICBtYXJnaW4tcmlnaHQ6IGF1dG87DQogIG1heC13aWR0aDogMzBweDsNCn0NCg0KI2NvbnRlbnRfdGFibGUgdHJ7DQogIGJvcmRlci1sZWZ0OiBzb2xpZCAzcHggNDQ0Ow0KICBib3JkZXItYm90dG9tOiBzb2xpZCAxcHggIzMzMzsNCiAgY3Vyc29yOiBwb2ludGVyOw0KfQ0KDQojY29udGVudF90YWJsZSB0cjpob3ZlciB7DQogIGJhY2tncm91bmQtY29sb3I6ICMzMzM7DQp9DQoNCiNjb250ZW50X3RhYmxlIHRkIHsNCg0KICBwYWRkaW5nOiAwcHggMnB4Ow0KfQ0KDQojY29udGVudF90YWJsZSBpbnB1dFt0eXBlPXRleHRdew0KICB3aWR0aDogODAlOw0KICBtaW4td2lkdGg6IDM1cHg7DQogIG1heC13aWR0aDogNjBweDsNCiAgYm9yZGVyOiAwcHg7DQogIGJhY2tncm91bmQtY29sb3I6ICMzMzM7DQogIG1hcmdpbi1sZWZ0OiA1cHg7DQogIHRleHQtYWxpZ246IGxlZnQ7DQp9DQoNCiNjb250ZW50X3RhYmxlIGlucHV0W3R5cGU9Y2hlY2tib3hdew0KICBtYXgtd2lkdGg6IDI1cHg7DQogIG1hcmdpbjogYXV0bzsNCn0NCg0KDQouc2hvd0J1bGsgew0KICBkaXNwbGF5OiBibG9jazsNCn0NCg0KLmhpZGVCdWxrIHsNCiAgZGlzcGxheTogbm9uZTsNCn0NCg0KLm5vQnVsayB7DQoNCn0NCg0KI2NvbnRlbnRfdGFibGUgdHIuYWN0aXZlRVBHew0KICBib3JkZXItbGVmdDogc29saWQgM3B4IGxhd25ncmVlbjsNCn0NCg0KI2NvbnRlbnRfdGFibGUgdHIubm90QWN0aXZlRVBHew0KICBib3JkZXItbGVmdDogc29saWQgM3B4IHJlZDsNCn0NCg0KDQojbG9nU2NyZWVuIHB7DQogIHdoaXRlLXNwYWNlOiBwcmU7DQogIGZvbnQtc2l6ZTogMTBweDsNCiAgLyoNCiAgbGluZS1oZWlnaHQ6IDEuNmVtOw0KICBmb250LWZhbWlseTogIkFyaWFsIiwgc2Fucy1zZXJpZjsNCiAgKi8NCiAgbGV0dGVyLXNwYWNpbmc6IDFweDsNCiAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZTsgDQogIGZvbnQtc2l6ZTogMTJweDsgDQogIGZvbnQtc3R5bGU6IG5vcm1hbDsgDQogIGZvbnQtdmFyaWFudDogbm9ybWFsOyANCiAgbGluZS1oZWlnaHQ6IDEuNmVtOyANCn0NCg0KI3BvcHVwIHsNCiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjQpOw0KICBwb3NpdGlvbjogZml4ZWQ7DQogIGxlZnQ6IDBweDsNCiAgd2lkdGg6IDEwMCU7DQogIHotaW5kZXg6IDEwMDsNCiAgaGVpZ2h0OiAxMDAlOw0KfQ0KDQojbWFwcGluZy1kZXRhaWwsICN1c2VyLWRldGFpbCwgI2ZpbGUtZGV0YWlsLCAjcG9wdXAtY3VzdG9tIHsNCiAgYm94LXNoYWRvdzogMHB4IDVweCA0MHB4ICMwMDA7DQogIG1hcmdpbi10b3A6IDIwcHg7DQogIG1hcmdpbi1sZWZ0OiBhdXRvOw0KICBtYXJnaW4tcmlnaHQ6IGF1dG87DQogIA0KICBtYXgtd2lkdGg6IDYwMHB4Ow0KICBiYWNrZ3JvdW5kLWNvbG9yOiAjMjIyOw0KICBwYWRkaW5nOiAxMHB4Ow0KICBvdmVyZmxvdzphdXRvOw0KfQ0KDQojcG9wdXAtY3VzdG9tIGgzIHsNCiAgdGV4dC1hbGlnbjogY2VudGVyOw0KfQ0KDQojZmlsZS1kZXRhaWwgaW5wdXRbdHlwZT10ZXh0XSB7DQogIHdpZHRoOiAtd2Via2l0LWNhbGMoMTAwJSAtIDIwcHgpOw0KICB3aWR0aDogLW1vei1jYWxjKDEwMCUgLSAyMHB4KTsNCiAgd2lkdGg6IGNhbGMoMTAwJSAtIDIwcHgpOw0KfQ0KDQojbWFwcGluZy1kZXRhaWwgaW1nIHsNCiAgZGlzcGxheTogYmxvY2s7DQogIG1heC1oZWlnaHQ6IDMwcHg7DQogIG1hcmdpbi1ib3R0b206IDIwcHg7DQogIG1hcmdpbi1sZWZ0OiBhdXRvOw0KICBtYXJnaW4tcmlnaHQ6IGF1dG87DQp9DQoNCiNwb3B1cC1jdXN0b20gaW5wdXRbdHlwZT10ZXh0XSwgI3BvcHVwLWN1c3RvbSBpbnB1dFt0eXBlPXBhc3N3b3JkXSwgI21hcHBpbmctZGV0YWlsIGlucHV0W3R5cGU9dGV4dF0sICNjb250ZW50X3NldHRpbmdzIGlucHV0W3R5cGU9dGV4dF0sICNjb250ZW50X3NldHRpbmdzIGlucHV0W3R5cGU9cGFzc3dvcmRdew0KICBib3JkZXI6IHNvbGlkIDFweDsNCiAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDsNCiAgYmFja2dyb3VuZC1jb2xvcjogIzMzMzsNCiAgdGV4dC1hbGlnbjogbGVmdDsNCiAgd2lkdGg6IC13ZWJraXQtY2FsYygxMDAlIC0gMjBweCk7DQogIHdpZHRoOiAgICAtbW96LWNhbGMoMTAwJSAtIDIwcHgpOw0KICB3aWR0aDogICAgICAgICBjYWxjKDEwMCUgLSAyMHB4KTsNCn0NCg0KI3BvcHVwLWN1c3RvbSBpbnB1dFt0eXBlPXRleHRdLm5vdEF2YWlsYWJsZSB7DQogIGJvcmRlci1jb2xvcjogcmVkOw0KICBjb2xvcjogIzY2NjsNCiAgY3Vyc29yOiBub3QtYWxsb3dlZDsNCn0NCg0KI21hcHBpbmctZGV0YWlsLXRhYmxlLCAjdXNlci1kZXRhaWwtdGFibGUgew0KICBkaXNwbGF5OiBpbmxpbmUtdGFibGU7DQogIHdpZHRoOiAxMDAlOw0KfQ0KDQojcG9wdXAtY3VzdG9tIHRhYmxlLCAjY29udGVudF9zZXR0aW5ncyB0YWJsZSB7DQogIGRpc3BsYXk6IGlubGluZS10YWJsZTsNCiAgdGFibGUtbGF5b3V0OiBmaXhlZDsNCiAgd2lkdGg6IDEwMCU7DQp9DQoNCg0KI21hcHBpbmctZGV0YWlsLXRhYmxlIHRkLCAjdXNlci1kZXRhaWwtdGFibGUgdGQgew0KICBwYWRkaW5nOiAxMHB4IDBweDsNCg0KfQ0KDQojbWFwcGluZy1kZXRhaWwtdGFibGUgdGQubGVmdCwgI3VzZXItZGV0YWlsLXRhYmxlIHRkLmxlZnQsICNwb3B1cC1jdXN0b20gdGQubGVmdCB7DQogIHdpZHRoOiAzOCU7DQp9DQoNCi5pbnRlcmFjdGlvbiwgI2ludGVyYWN0aW9uIHsNCiAgbWFyZ2luLXRvcDogMjBweDsNCiAgZGlzcGxheTogaW5saW5lLWZsZXg7DQogIGZsb2F0OiByaWdodDsNCn0NCg0KLmludGVyYWN0aW9uIGlucHV0W3R5cGU9YnV0dG9uXSwgLmludGVyYWN0aW9uIGlucHV0W3R5cGU9c3VibWl0XSB7DQogIGJhY2tncm91bmQtY29sb3I6ICMwMDA7DQogIG1pbi13aWR0aDogMTAwcHg7DQogIG1hcmdpbjogMHB4IDEwcHg7DQogIHRleHQtYWxpZ246IGNlbnRlcjsNCn0NCg0KI25vdGlmaWNhdGlvbiB7DQogIGRpc3BsYXk6IGJsb2NrOw0KICBwb3NpdGlvbjogZml4ZWQ7DQogIHJpZ2h0OiAwcHg7DQogIGhlaWdodDogMTAwJTsNCiAgd2lkdGg6IDI1MHB4Ow0KICANCiAgYmFja2dyb3VuZC1jb2xvcjogIzIyMjsNCiAgYm94LXNoYWRvdzogMHB4IDBweCAyMHB4ICMwMDA7DQp9DQoNCiNub3RpZmljYXRpb24gaDUgew0KICBiYWNrZ3JvdW5kLWNvbG9yOiAjMTIxMjEyOw0KICBwYWRkaW5nOiA1cHggMTBweCA1cHggMTBweDsNCn0NCg0KI25vdGlmaWNhdGlvbiBwcmUgew0KICBwYWRkaW5nOiAwcHggMTBweCAwcHggMTBweDsNCn0NCg0KI25vdGlmaWNhdGlvbiBwIHsNCiAgZm9udC1zaXplOiAxMCBweDsNCiAgbWFyZ2luOiAwcHg7DQogIHBhZGRpbmc6IDBweCAxMHB4IDVweCAxMHB4Ow0KfQ0KDQojbm90aWZpY2F0aW9uIC5lbGVtZW50IHsNCiAgLypwYWRkaW5nOiAwcHggNXB4OyovDQogIG1hcmdpbjogNXB4IDVweDsNCiAgYm9yZGVyLXJhZGl1czogNXB4Ow0KICBiYWNrZ3JvdW5kLWNvbG9yOiAjMTgxODE4Ow0KICBib3JkZXItbGVmdDogMTBweCBzb2xpZCBncmVlbjsNCn0NCg0KDQpAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDYyMHB4KXsNCiAgYm9keSB7DQogICAgd2lkdGg6IDEwMCU7DQogICAgYmFja2dyb3VuZC1jb2xvcjogIzQ0NDsNCiAgfQ0KDQogIGgxIHsNCiAgICBmb250LXNpemU6IDI2cHg7DQogICAgbGV0dGVyLXNwYWNpbmc6IDNweDsNCiAgfQ0KDQogIG5hdiBwIHsNCiAgICBkaXNwbGF5OiBibG9jazsNCiAgfQ0KDQoNCg0KICAjaGVhZGVyX2NvbmZpZyB7DQogICAgZGlzcGxheTogYmxvY2s7DQogICAgaGVpZ2h0OiAxMDBweDsNCiAgICBiYWNrZ3JvdW5kOiB1cmwoIi4uL2ltZy9sb2dvX3dfNjAweDIwMC5wbmciKTsNCiAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0Ow0KICAgIA0KICAgIGJhY2tncm91bmQtc2l6ZTogMzAwcHggMTAwcHg7DQogIH0NCg0KICAjc2NyZWVuTG9nIHsNCiAgICBtYXJnaW4tbGVmdDogMzAwcHg7DQoNCiAgICB0cmFuc2l0aW9uOiBub25lOw0KICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50Ow0KICAgIGJvcmRlci1ib3R0b206IHNvbGlkIDFweCB0cmFuc3BhcmVudDsNCiAgICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAjMjIyOw0KICB9DQoNCiAgI3NldHRpbmdzIHsNCiAgICAvKg0KICAgIGhlaWdodDogLXdlYmtpdC1jYWxjKDEwMCUgLSAxMDBweCk7DQogICAgaGVpZ2h0OiAtbW96LWNhbGMoMTAwJSAtIDEwMHB4KTsNCiAgICBoZWlnaHQ6IGNhbGMoMTAwJSAtIDEwMHB4KTsNCiAgICAqLw0KICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsNCiAgICBvdmVyZmxvdzogYXV0bzsNCiAgfQ0KDQoNCiAgLnNjcmVlbkxvZ0hpZGRlbiB7DQogICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMHB4LCAwcHgpOw0KICB9DQoNCg0KICAjYm94IHsNCiAgICBkaXNwbGF5OiBibG9jazsNCiAgICBtaW4taGVpZ2h0OiA1MDBweDsNCiAgICBtYXgtd2lkdGg6IDUwMHB4Ow0KICAgIG1hcmdpbjogMTBweCBhdXRvOw0KICAgIGJhY2tncm91bmQtY29sb3I6ICM0NDQ7DQogICAgYm94LXNoYWRvdzogMHB4IDVweCA1cHggIzIyMjsNCg0KICAgIGRpc3BsYXk6IGZsZXg7DQogICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsNCiAgfQ0KDQogICNzZXR0aW5ncywgI3NldHRpbmdzLWZvb3RlciB7DQogICAgDQogIH0NCn0NCg==" + webUI["html/img/logout.png"] = "iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAAAXNSR0IArs4c6QAAAAlwSFlzAAAsSwAALEsBpT2WqQAABCRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IlhNUCBDb3JlIDUuNC4wIj4KICAgPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIgogICAgICAgICAgICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgICAgICAgICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyI+CiAgICAgICAgIDx0aWZmOlJlc29sdXRpb25Vbml0PjI8L3RpZmY6UmVzb2x1dGlvblVuaXQ+CiAgICAgICAgIDx0aWZmOkNvbXByZXNzaW9uPjU8L3RpZmY6Q29tcHJlc3Npb24+CiAgICAgICAgIDx0aWZmOlhSZXNvbHV0aW9uPjI4ODwvdGlmZjpYUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6T3JpZW50YXRpb24+MTwvdGlmZjpPcmllbnRhdGlvbj4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+Mjg4PC90aWZmOllSZXNvbHV0aW9uPgogICAgICAgICA8ZXhpZjpQaXhlbFhEaW1lbnNpb24+NTA8L2V4aWY6UGl4ZWxYRGltZW5zaW9uPgogICAgICAgICA8ZXhpZjpDb2xvclNwYWNlPjE8L2V4aWY6Q29sb3JTcGFjZT4KICAgICAgICAgPGV4aWY6UGl4ZWxZRGltZW5zaW9uPjUwPC9leGlmOlBpeGVsWURpbWVuc2lvbj4KICAgICAgICAgPGRjOnN1YmplY3Q+CiAgICAgICAgICAgIDxyZGY6QmFnLz4KICAgICAgICAgPC9kYzpzdWJqZWN0PgogICAgICAgICA8eG1wOk1vZGlmeURhdGU+MjAxOC0xMC0xM1QxMToxMDoxODwveG1wOk1vZGlmeURhdGU+CiAgICAgICAgIDx4bXA6Q3JlYXRvclRvb2w+UGl4ZWxtYXRvciAzLjM8L3htcDpDcmVhdG9yVG9vbD4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgIDwvcmRmOlJERj4KPC94OnhtcG1ldGE+Cg27QeEAAANQSURBVGgF7Zk9aBRBGIZzSRSN8YdoCpEkghCCqK1o4g9IsBCCNmIniCAiWAhqI8G02qiIoqCCWggSEcFKEFPYpVAU8QdFUyiKRpRokBjP55OdZDLZvZnZ7N3Ngh887M7sN/O9797t7c5eTc3/8D8DxWKxGS5Ai//oAEYgvB4OwleQaAtAlp8ERG+Bp6Jei/wYQfRy6NfE67vhG0FtA/TBqK7c2A/bCGJ3wpAhOq4ZphGUroEHcYoT+sIygsgmOAu/EwQndYdhBHV1sB8+Jym19Lf6/faVIRuBG+GRRajtcPWMoKwFbtgUOh6vvBGEzYFj8MNRpEtaZY2gaAe8cVHmmXOc/K3QXIZv/+SUFFgJ96AS8ZwiZ6Ab6iZVzGCPiRbCKRiDasQHip6EdD/PDKyFvfAJQgg5kVfB/VoieT0MQojxE1G9UG/7otWS0A7pPkrb7DM/Ppcp+mAAM/bFGEmL4RL8gVDjI8JWOZ0bEjvhSahO0CXXsLMZWZYegREIMV4jaoHTJyNJJLfC7RCdoOm6sxGVyKAeeBegoU6l0XmLiXlwAqp1o4w7j3d1AwW9YdtnNrnQzkOXLddyfAPHv8Ey6ABpd8N88In2QqHwymfARC5mCrAH0i6qGDr9jk3fbNgFz8A1DkwIS7tDpSVwGdLcexIfPZhPHpf2wS+wRX9a/dPGUakLzBdwNgGJRlQBJtgMw5aJ3qr8TLYUmwVHwXXxZTUiwphvHYxDUnzPxIA5CdXa4E5SVa3fyUhkRtYqpSKbNYxpJiq+ncpDJar7GGlknvcl5mqM05BZH4Xl3iOLpLh7j7OR6MScSzAykplg20QIWA0PDSG+RuTdQVy8sNXP9DgK5N4jK9AvkRpfI4sYF/c2836mQl0nQ4zce66AfZFkTMqYl2DGaSMt/CYOHpsuaPco5bLUzUuMGkLHaQ+ovjwZUZrVdpAHRnnw/Bd5MrJCiY62t4x2+E2uBfkfRg95TdSkK8/LJ7JWF83+Nb5Ww0Zf+E3OviwXVMgT8dLwVRsKEd0A+uP8biMlH01MHAYVF/Oh2lCJenkDqpbUN9nPyzU91QnCRbyEPEXn1sQhxMv7tG1T7cW3rK/r44eVtxfxm6gwBh38zJqPJuUtXu3Z/wLwuBaBLgMkKwAAAABJRU5ErkJggg==" + webUI["html/img/x_ transparent.png"] = "iVBORw0KGgoAAAANSUhEUgAAAQAAAAEACAYAAABccqhmAAAAAXNSR0IArs4c6QAAAAlwSFlzAAAWJQAAFiUBSVIk8AAAA6ppVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IlhNUCBDb3JlIDUuNC4wIj4KICAgPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIgogICAgICAgICAgICB4bWxuczp0aWZmPSJodHRwOi8vbnMuYWRvYmUuY29tL3RpZmYvMS4wLyIKICAgICAgICAgICAgeG1sbnM6ZXhpZj0iaHR0cDovL25zLmFkb2JlLmNvbS9leGlmLzEuMC8iPgogICAgICAgICA8eG1wOk1vZGlmeURhdGU+MjAxOC0xMS0xNVQxNzoxMTo3NjwveG1wOk1vZGlmeURhdGU+CiAgICAgICAgIDx4bXA6Q3JlYXRvclRvb2w+UGl4ZWxtYXRvciAzLjM8L3htcDpDcmVhdG9yVG9vbD4KICAgICAgICAgPHRpZmY6T3JpZW50YXRpb24+MTwvdGlmZjpPcmllbnRhdGlvbj4KICAgICAgICAgPHRpZmY6Q29tcHJlc3Npb24+NTwvdGlmZjpDb21wcmVzc2lvbj4KICAgICAgICAgPHRpZmY6UmVzb2x1dGlvblVuaXQ+MjwvdGlmZjpSZXNvbHV0aW9uVW5pdD4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+MTQ0PC90aWZmOllSZXNvbHV0aW9uPgogICAgICAgICA8dGlmZjpYUmVzb2x1dGlvbj4xNDQ8L3RpZmY6WFJlc29sdXRpb24+CiAgICAgICAgIDxleGlmOlBpeGVsWERpbWVuc2lvbj4yNTY8L2V4aWY6UGl4ZWxYRGltZW5zaW9uPgogICAgICAgICA8ZXhpZjpDb2xvclNwYWNlPjE8L2V4aWY6Q29sb3JTcGFjZT4KICAgICAgICAgPGV4aWY6UGl4ZWxZRGltZW5zaW9uPjI1NjwvZXhpZjpQaXhlbFlEaW1lbnNpb24+CiAgICAgIDwvcmRmOkRlc2NyaXB0aW9uPgogICA8L3JkZjpSREY+CjwveDp4bXBtZXRhPgoeXQb1AAAaJElEQVR4Ae2dCZhcVZXHz+1KSFiGkISkqyIoOgI68EkgOBNkEcQRlIFRZDGABAQEhInGbxw+RUZRNhWRLawDYR0GHAaHUVkGvwGURUcgwIiAOGxjV3UHAslHQrbuM/9TlQ6d7qruWt527/u/7+uuqvvucu7vvnveuffde54IDxIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARLwiIDzQtayHi0q23shaydCOnlISu7nnWThRdrFOkPWyCleyNqJkF1yjhTd8k6yiDvtuLgLiCR/lVnIZ14keWU7k2Xyuu4oU92r2RazQ+nWypXI4W86zCXbyZ28KBvJ97MtpEhX1gWsyleS08TJU17I2omQKpvLarmqkywyn7ZHPw9rLvTOvwbX6xEyxS3Nenv4oQCcWwmQc/D3dtaBdiyfyv5S1mM7zieLGSzWEsS6KIuiRSzTGTD9H404z1iy80MBWNVL7hn8nx8LhaxlqnKBvKbvyppYHctTM/0nd5xPljNwcrcUs2/6DyL0RwGYxDOcjR3vGBQ+4M8tMElmdQ3n6NGjYPofGE6F6tTESRmm/1xxTuuczWSQH08BhqJbqlNkuTyJoK2GBgf53S6mkrvB+7qZ6b9Gfod6hHv3dzKAGbX9pNvd51N7+WUBGNlJbgm07FH4G/AJdFuyqlwotXFzW8kzk2itXAFZwu38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" + webUI["html/index.html"] = "PCFkb2N0eXBlIGh0bWw+DQo8aHRtbD4NCiAgPGhlYWQ+DQogICAgPG1ldGEgY2hhcnNldD0idXRmLTgiPg0KICAgIDwhLS0tDQogICAgPG1ldGEgbmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9IndpZHRoPWRldmljZS13aWR0aCwgaW5pdGlhbC1zY2FsZT0xLjAiIC8+IA0KICAgIC0tPg0KICAgIDx0aXRsZT54VGVWZTwvdGl0bGU+DQogICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJjc3Mvc2NyZWVuLmNzcyIgdHlwZT0idGV4dC9jc3MiPg0KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iY3NzL2Jhc2UuY3NzIiB0eXBlPSJ0ZXh0L2NzcyI+DQoNCiAgICA8c2NyaXB0IGxhbmd1YWdlPSJqYXZhc2NyaXB0IiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ianMvbmV0d29ya190cy5qcyI+PC9zY3JpcHQ+DQogICAgPHNjcmlwdCBsYW5ndWFnZT0iamF2YXNjcmlwdCIgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9ImpzL21lbnVfdHMuanMiPjwvc2NyaXB0Pg0KICAgIDxzY3JpcHQgbGFuZ3VhZ2U9ImphdmFzY3JpcHQiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJqcy9zZXR0aW5nc190cy5qcyI+PC9zY3JpcHQ+DQogICAgPHNjcmlwdCBsYW5ndWFnZT0iamF2YXNjcmlwdCIgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9ImpzL2xvZ3NfdHMuanMiPjwvc2NyaXB0Pg0KICAgIDxzY3JpcHQgbGFuZ3VhZ2U9ImphdmFzY3JpcHQiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJqcy9iYXNlX3RzLmpzIj48L3NjcmlwdD4NCg0KICA8L2hlYWQ+DQoNCiAgICA8Ym9keSBvbmxvYWQ9ImphdmFzY3JpcHQ6IFBhZ2VSZWFkeSgpOyI+DQoNCiAgICAgIDxkaXYgaWQ9ImxvYWRpbmciIGNsYXNzPSJub25lIj4NCiAgICAgICAgPGRpdiBjbGFzcz0ibG9hZGVyIj48L2Rpdj4NCiAgICAgIDwvZGl2Pg0KDQogICAgICA8ZGl2IGlkPSJwb3B1cCIgY2xhc3M9Im5vbmUiPg0KICAgICAgICA8ZGl2IGlkPSJwb3B1cC1jdXN0b20iPjwvZGl2Pg0KICAgICAgPC9kaXY+DQoNCiAgICAgIDxkaXYgaWQ9ImxheW91dCI+DQoNCiAgICAgICAgPCEtLQ0KICAgICAgICA8ZGl2IGlkPSJub3RpZmljYXRpb24iPg0KICAgICAgICAgIDxkaXYgY2xhc3M9ImVsZW1lbnQiPg0KICAgICAgICAgICAgPGg1PlhFUEc8L2g1Pg0KICAgICAgICAgICAgPHByZT4xMS4wNS4yMDE5IC0gMjA6MjE8L3ByZT4NCiAgICAgICAgICAgIDxocj4NCiAgICAgICAgICAgIDxwPkhhbGxvIGRhcyBpc3QgZWluIFRlc3QuIFVuZCBub2NoIG1laHIgVGV4dC48L3A+DQogICAgICAgICAgPC9kaXY+DQogICAgICAgIDwvZGl2Pg0KICAgICAgLS0+DQoNCiAgICAgICAgPGRpdiBpZD0ibWVudS13cmFwcGVyIiBjbGFzcz0ibGF5b3V0LWxlZnQiPg0KICAgICAgICAgIDxkaXYgaWQ9ICJicmFuY2giPjwvZGl2Pg0KICAgICAgICAgIDxkaXYgaWQ9ImxvZ28iPjwvZGl2Pg0KICAgICAgICAgIDxuYXYgaWQ9Im1haW4tbWVudSI+PC9uYXY+DQogICAgICAgIDwvZGl2Pg0KDQogICAgICAgIDxkaXYgY2xhc3M9ImxheW91dC1yaWdodCI+DQoNCiAgICAgICAgICA8dGFibGUgaWQ9ImNsaWVudEluZm8iIGNsYXNzPSIiPg0KDQogICAgICAgICAgICA8dHI+DQogICAgICAgICAgICAgIDx0ZCBjbGFzcz0idGRLZXkiPnhUZVZlOjwvdGQ+DQogICAgICAgICAgICAgIDx0ZCBpZD0idmVyc2lvbiIgY2xhc3M9InRkVmFsIj4mbmJzcDs8L3RkPg0KICAgICAgICAgICAgICA8dGQgY2xhc3M9InRkS2V5Ij5PUzo8L3RkPg0KICAgICAgICAgICAgICA8dGQgaWQ9Im9zIiBjbGFzcz0idGRWYWwiPiZuYnNwOzwvdGQ+DQogICAgICAgICAgICAgIDx0ZCBjbGFzcz0idGRLZXkgcGhvbmUiPkRWUiBJUDo8L3RkPg0KICAgICAgICAgICAgICA8dGQgaWQ9IkRWUiIgY2xhc3M9InRkVmFsIHBob25lIj4mbmJzcDs8L3RkPg0KICAgICAgICAgICAgPC90cj4NCg0KICAgICAgICAgICAgPHRyPg0KICAgICAgICAgICAgICA8dGQgY2xhc3M9InRkS2V5Ij5VVUlEOjwvdGQ+DQogICAgICAgICAgICAgIDx0ZCBpZD0idXVpZCIgY2xhc3M9InRkVmFsIj4mbmJzcDs8L3RkPg0KICAgICAgICAgICAgICA8dGQgY2xhc3M9InRkS2V5Ij5BcmNoOjwvdGQ+DQogICAgICAgICAgICAgIDx0ZCBpZD0iYXJjaCIgY2xhc3M9InRkVmFsIj4mbmJzcDs8L3RkPg0KICAgICAgICAgICAgICA8dGQgY2xhc3M9InRkS2V5IHBob25lIj5NM1UgVVJMOjwvdGQ+DQogICAgICAgICAgICAgIDx0ZCBpZD0ibTN1LXVybCIgY2xhc3M9InRkVmFsIHBob25lIj4mbmJzcDs8L3RkPg0KICAgICAgICAgICAgPC90cj4NCg0KICAgICAgICAgICAgPHRyPg0KICAgICAgICAgICAgICA8dGQgY2xhc3M9InRkS2V5Ij5BdmFpbGFibGUgU3RyZWFtczo8L3RkPg0KICAgICAgICAgICAgICA8dGQgaWQ9InN0cmVhbXMiIGNsYXNzPSJ0ZFZhbCI+Jm5ic3A7PC90ZD4NCiAgICAgICAgICAgICAgPHRkIGNsYXNzPSJ0ZEtleSI+RVBHIFNvdXJjZTo8L3RkPg0KICAgICAgICAgICAgICA8dGQgaWQ9ImVwZ1NvdXJjZSIgY2xhc3M9InRkVmFsIj4mbmJzcDs8L3RkPg0KICAgICAgICAgICAgICA8dGQgY2xhc3M9InRkS2V5IHBob25lIj5YRVBHIFVSTDo8L3RkPg0KICAgICAgICAgICAgICA8dGQgaWQ9InhlcGctdXJsIiBjbGFzcz0idGRWYWwgcGhvbmUiPiZuYnNwOzwvdGQ+DQogICAgICAgICAgICA8L3RyPg0KDQogICAgICAgICAgICA8dHI+DQogICAgICAgICAgICAgIDx0ZCBjbGFzcz0idGRLZXkiPlhFUEcgQ2hhbm5lbHM6PC90ZD4NCiAgICAgICAgICAgICAgPHRkIGlkPSJ4ZXBnIiBjbGFzcz0idGRWYWwiPiZuYnNwOzwvdGQ+DQogICAgICAgICAgICAgIDx0ZCBjbGFzcz0idGRLZXkiPkVycm9yczo8L3RkPg0KICAgICAgICAgICAgICA8dGQgaWQ9ImVycm9ycyIgY2xhc3M9InRkVmFsIj4mbmJzcDs8L3RkPg0KICAgICAgICAgICAgICA8dGQgY2xhc3M9InRkS2V5Ij5XYXJuaW5nczo8L3RkPg0KICAgICAgICAgICAgICA8dGQgaWQ9Indhcm5pbmdzIiBjbGFzcz0idGRWYWwiPiZuYnNwOzwvdGQ+DQogICAgICAgICAgICA8L3RyPg0KDQogICAgICAgICAgPC90YWJsZT4NCiAgICAgICAgIA0KICAgICAgICAgIDxkaXYgaWQ9Im15U3RyZWFtc0JveCIgY2xhc3M9Im5vdFZpc2libGUiPg0KDQogICAgICAgICAgICA8ZGl2IGlkPSJhbGxTdHJlYW1zIj4NCiAgICAgICAgICAgICAgPHRhYmxlIGlkPSJhY3RpdmVTdHJlYW1zIj48L3RhYmxlPg0KICAgICAgICAgICAgICA8dGFibGUgaWQ9ImluYWN0aXZlU3RyZWFtcyI+PC90YWJsZT4NCiAgICAgICAgICAgIDwvZGl2Pg0KDQogICAgICAgICAgPC9kaXY+DQogICAgICAgICAgDQogICAgICAgICAgPGRpdiBpZD0iY29udGVudCIgY2xhc3M9IiI+PC9kaXY+DQogICAgICAgICAgICANCiAgICAgICAgPC9kaXY+DQoNCiAgICAgIDwvZGl2Pg0KICAgICAgDQogICAgPC9ib2R5Pg0KICAgIA0KPC9odG1sPg==" + webUI["html/js/configuaration.js"] = "dmFyIGNvbmZpZ01lbnUgPSBuZXcgT2JqZWN0KCk7DQp2YXIgd2l6YXJkID0gbmV3IEFycmF5KCJrZXkiLCAidHVuZXIiLCAiZXBnU291cmNlIiwgIm0zdSIsICJjb21wbGV0ZSIpOw0KdmFyIGFjdGl2ZVdpemFyZDsNCnZhciBkdnJJUA0KDQp2YXIgY29uZmlnTWVudV90dW5lciA9IG5ldyBPYmplY3QoKTsNCmNvbmZpZ01lbnVfdHVuZXJbIl9lbGVtZW50Il0gICAgICA9ICJTRUxFQ1QiOw0KY29uZmlnTWVudV90dW5lclsiX21lbnVUeXBlIl0gICAgID0gInNpbmdsZUlucHV0IjsNCmNvbmZpZ01lbnVfdHVuZXJbIl9jb25maWdLZXkiXSAgICA9ICJ0dW5lciI7DQpjb25maWdNZW51X3R1bmVyWyJfbGFiZWwiXSAgICAgICAgPSAiQXZhaWxhYmxlIHR1bmVycyI7DQpjb25maWdNZW51X3R1bmVyWyJuYW1lIl0gICAgICAgICAgPSAidHVuZXIiOw0KY29uZmlnTWVudV90dW5lclsiaWQiXSAgICAgICAgICAgID0gIlR1bmVyIjsNCmNvbmZpZ01lbnVfdHVuZXJbInBsYWNlaG9sZGVyIl0gICA9ICJUdW5lciI7DQpjb25maWdNZW51X3R1bmVyWyJfdXNhZ2UiXSAgICAgICAgPSAiVGhpcyBzZXR0aW5nIGlzIG9ubHkgdXNlZCBieSBQbGV4IGFuZCBFbWJ5Ljxicj5UaGUgbnVtYmVyIG9mIGNvbmN1cnJlbnQgc3RyZWFtcyBhbGxvd2VkIGJ5IHRoZSBJUFRWIHByb3ZpZGVyLiINCg0KDQp2YXIgb3B0aW9uVmFsdWVzID0gbmV3IEFycmF5KCk7DQpmb3IgKHZhciBpID0gMTsgaSA8PSAxMDA7IGkrKykgew0KICBvcHRpb25WYWx1ZXMucHVzaChpKQ0KfQ0KY29uZmlnTWVudV90dW5lclsiX29wdGlvblZhbHVlcyJdID0gb3B0aW9uVmFsdWVzOw0KDQp2YXIgY29uZmlnTWVudV9lcGcgPSBuZXcgT2JqZWN0KCk7DQpjb25maWdNZW51X2VwZ1siX2VsZW1lbnQiXSAgICAgID0gIlNFTEVDVCI7DQpjb25maWdNZW51X2VwZ1siX21lbnVUeXBlIl0gICAgID0gInNpbmdsZUlucHV0IjsNCmNvbmZpZ01lbnVfZXBnWyJfY29uZmlnS2V5Il0gICAgPSAiZXBnU291cmNlIjsNCmNvbmZpZ01lbnVfZXBnWyJfbGFiZWwiXSAgICAgICAgPSAiU2VsZWN0aW9uIG9mIHRoZSBFUEcgc291cmNlIjsNCmNvbmZpZ01lbnVfZXBnWyJuYW1lIl0gICAgICAgICAgPSAiZXBnU291cmNlIjsNCmNvbmZpZ01lbnVfZXBnWyJpZCJdICAgICAgICAgICAgPSAiRVBHIHNvdXJjZSI7DQpjb25maWdNZW51X2VwZ1sicGxhY2Vob2xkZXIiXSAgID0gIkVQRyBzb3VyY2UiOw0KY29uZmlnTWVudV9lcGdbIl9vcHRpb25WYWx1ZXMiXSA9IG5ldyBBcnJheSgiUE1TIiwgIlhFUEciKTsNCmNvbmZpZ01lbnVfZXBnWyJfdXNhZ2UiXSAgICAgICAgPSAiUE1TOiAgIFVzZSBFUEcgZGF0YSBmcm9tIFBsZXggb3IgRW1ieTxicj5YRVBHOiAgVXNlIG9mIGV4dGVybmFsIEVQRyBkYXRhIChYTUxUVik8YnI+ICAgICAgIFNldmVyYWwgWE1MVFYgc291cmNlcyBwb3NzaWJsZTxicj4gICAgICAgQWxsb3dzIGVkaXRpbmcgYW5kIG9yZGVyIGNoYW5uZWxzPGJyPiAgICAgICBNM1UgLyBYTUxUViBleHBvcnQgKEhUVFAgbGluayBmb3IgSVBUViBhcHBzKSINCg0KdmFyIGNvbmZpZ01lbnVfbTN1ID0gbmV3IE9iamVjdCgpOw0KY29uZmlnTWVudV9tM3VbIl9lbGVtZW50Il0gICAgICAgID0gIklOUFVUIjsNCmNvbmZpZ01lbnVfbTN1WyJfbWVudVR5cGUiXSAgICAgICA9ICJpbnB1dEFycmF5IjsNCmNvbmZpZ01lbnVfbTN1WyJfY29uZmlnS2V5Il0gICAgICA9ICJmaWxlIjsNCmNvbmZpZ01lbnVfbTN1WyJfbGFiZWwiXSAgICAgICAgICA9ICJNM1UgRmlsZTogbG9jYWwgb3IgcmVtb3RlIjsNCmNvbmZpZ01lbnVfbTN1WyJuYW1lIl0gICAgICAgICAgICA9ICJmaWxlIjsNCmNvbmZpZ01lbnVfbTN1WyJpZCJdICAgICAgICAgICAgICA9ICJtM3UiOw0KY29uZmlnTWVudV9tM3VbInR5cGUiXSAgICAgICAgICAgID0gInRleHQiOw0KY29uZmlnTWVudV9tM3VbInBsYWNlaG9sZGVyIl0gICAgID0gIk0zVSBGaWxlIjsNCmNvbmZpZ01lbnVfbTN1WyJfdXNhZ2UiXSAgICAgICAgICA9ICJSZW1vdGUgcGxheWxpc3Q6IGh0dHA6Ly95b3VyLnByb3ZpZGVyLmNvbS9maWxlLm0zdTxicj5Mb2NhbCAgcGxheWxpc3Q6IC9wYXRoL3RvL2ZpbGUubTN1Ig0KDQoNCmNvbmZpZ01lbnVfbTN1WyJ2YWx1ZSJdICAgICAgICAgICA9ICJodHRwOi8vd2Vic3J2LmxvY2FsOjgwODAva2FiZWwubTN1IjsNCg0KdmFyIGNvbmZpZ01lbnVfY29tcGxldGUgPSBuZXcgT2JqZWN0KCk7DQpjb25maWdNZW51X2NvbXBsZXRlWyJfZWxlbWVudCJdICAgICAgICA9ICJIMiI7DQpjb25maWdNZW51X2NvbXBsZXRlWyJfbWVudVR5cGUiXSAgICAgICA9ICJpbnB1dEFycmF5IjsNCmNvbmZpZ01lbnVfY29tcGxldGVbIl9jb25maWdLZXkiXSAgICAgID0gImZpbGUiOw0KY29uZmlnTWVudV9jb21wbGV0ZVsiX3RleHQiXSAgICAgICAgICAgPSAieFRlVmUgd2FzIHN1Y2Nlc3NmdWxseSBzZXQgdXAiOw0KY29uZmlnTWVudV9jb21wbGV0ZVsibmFtZSJdICAgICAgICAgICAgPSAiY29tcGxldGUiOw0KY29uZmlnTWVudV9jb21wbGV0ZVsiaWQiXSAgICAgICAgICAgICAgPSAiY29tcGxldGUiOw0KY29uZmlnTWVudV9jb21wbGV0ZVsidHlwZSJdICAgICAgICAgICAgPSAidGV4dCI7DQpjb25maWdNZW51X2NvbXBsZXRlWyJjbGFzcyJdICAgICAgICAgICA9ICJjZW50ZXIiOw0KDQpjb25maWdNZW51WyJ0dW5lciJdICAgICA9IGNvbmZpZ01lbnVfdHVuZXI7DQpjb25maWdNZW51WyJlcGdTb3VyY2UiXSA9IGNvbmZpZ01lbnVfZXBnOw0KY29uZmlnTWVudVsibTN1Il0gICAgICAgPSBjb25maWdNZW51X20zdTsNCmNvbmZpZ01lbnVbImNvbXBsZXRlIl0gID0gY29uZmlnTWVudV9jb21wbGV0ZTsNCg0KZnVuY3Rpb24gcmVhZHlGb3JDb25maWd1cmF0aW9uKCkgew0KICB2YXIgZGF0YSA9IG5ldyBPYmplY3QoKTsNCiAgZGF0YVsiY21kIl0gPSAiZ2V0U2VydmVyQ29uZmlnIjsNCiAgeFRlVmUoZGF0YSk7DQogIHNob3dMb2FkaW5nU2NyZWVuKGZhbHNlKTsNCn0NCg0KZnVuY3Rpb24gY3JlYXRlQ29uZmlndXJhdGlvbihlbG0pIHsNCg0KICBhY3RpdmVXaXphcmQgPSBlbG07DQogIHZhciBpdGVtICA9IGNvbmZpZ01lbnVbZWxtXTsNCg0KICB2YXIgZGl2ICAgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29udGVudCIpOw0KICBkaXYuaW5uZXJIVE1MID0gIiI7DQogIGRpdi5zZXRBdHRyaWJ1dGUoImRhdGEtY29uZmlnS2V5IiwgaXRlbVsiX2NvbmZpZ0tleSJdKTsNCiAgZGl2LnNldEF0dHJpYnV0ZSgiZGF0YS1tZW51VHlwZSIsIGl0ZW1bIl9tZW51VHlwZSJdKTsNCiAgDQogIHN3aXRjaChpdGVtLmhhc093blByb3BlcnR5KCJfbGFiZWwiKSkgew0KICAgIGNhc2UgdHJ1ZToNCiAgICAgIHZhciBuZXdJdGVtID0gbmV3IE9iamVjdCgpOw0KICAgICAgbmV3SXRlbVsiX2VsZW1lbnQiXSA9ICJMQUJFTCI7DQogICAgICBuZXdJdGVtWyJfdGV4dCJdICAgID0gaXRlbVsiX2xhYmVsIl07IA0KICAgICAgbmV3SXRlbVsiZm9yIl0gICAgICA9IGl0ZW1bImlkIl07DQogICAgICBkaXYuYXBwZW5kQ2hpbGQoY3JlYXRlRWxlbWVudChuZXdJdGVtKSk7DQogICAgICBicmVhaw0KICB9DQoNCiAgc3dpdGNoKGl0ZW1bIl9lbGVtZW50Il0pIHsNCiAgICBjYXNlICJTRUxFQ1QiOg0KICAgICAgZGl2LmFwcGVuZENoaWxkKGNyZWF0ZUVsZW1lbnQoaXRlbSkpOw0KICAgICAgdmFyIHNlbGVjdEVsZW1lbnQgPSBkaXYuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlNFTEVDVCIpWzBdOw0KICAgICAgdmFyIHZhbHVlcyA9IGl0ZW1bIl9vcHRpb25WYWx1ZXMiXTsNCiAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdmFsdWVzLmxlbmd0aDsgaSsrKSB7DQogICAgICAgIHZhciBuZXdFbnRyeSA9IG5ldyBPYmplY3Q7DQogICAgICAgIG5ld0VudHJ5WyJfZWxlbWVudCJdICA9ICJPUFRJT04iOw0KICAgICAgICBuZXdFbnRyeVsiX3RleHQiXSAgICAgPSBpdGVtWyJpZCJdICsgIjogIiArIHZhbHVlc1tpXTsNCiAgICAgICAgbmV3RW50cnlbInZhbHVlIl0gICAgID0gdmFsdWVzW2ldOw0KICAgICAgICBzZWxlY3RFbGVtZW50LmFwcGVuZENoaWxkKGNyZWF0ZUVsZW1lbnQobmV3RW50cnkpKTsNCiAgICAgIH0NCiAgICAgIC8vcmV0dXJuDQogICAgICBicmVhazsNCg0KICAgIGRlZmF1bHQ6IA0KICAgICAgZGl2LmFwcGVuZENoaWxkKGNyZWF0ZUVsZW1lbnQoaXRlbSkpOw0KICAgICAgYnJlYWs7DQoNCg0KICB9DQogIC8vYWxlcnQoKQ0KDQogIHN3aXRjaChpdGVtLmhhc093blByb3BlcnR5KCJfdXNhZ2UiKSkgew0KICAgIGNhc2UgdHJ1ZTogDQogICAgICB2YXIgdXNhZ2VJdGVtID0gbmV3IE9iamVjdCgpOw0KICAgICAgdXNhZ2VJdGVtWyJfZWxlbWVudCJdID0gIlBSRSINCiAgICAgIHVzYWdlSXRlbVsiX3RleHQiXSAgICA9IGl0ZW1bIl91c2FnZSJdOw0KICAgICAgZGl2LmFwcGVuZENoaWxkKGNyZWF0ZUVsZW1lbnQodXNhZ2VJdGVtKSk7DQogIH0NCg0KICBpZiAoYWN0aXZlV2l6YXJkID09ICJjb21wbGV0ZSIpIHsNCiAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibmV4dCIpLnZhbHVlID0gIkZpbmlzaGVkIg0KICAgIC8vZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm5leHQiKS5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAiamF2YXNjcmlwdDogbG9jYXRpb24ucmVsb2FkKCk7IikNCiAgfQ0KDQogIC8vZGl2LmFwcGVuZENoaWxkKGNyZWF0ZUVsZW1lbnQoaXRlbSkpOw0KfQ0KDQpmdW5jdGlvbiBzYXZlRGF0YSgpIHsNCg0KICB2YXIgZGl2ICAgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29udGVudCIpOw0KICB2YXIgaW5wdXRzID0gZGl2LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJJTlBVVCIpOw0KICB2YXIgc2VsZWN0cyA9IGRpdi5nZXRFbGVtZW50c0J5VGFnTmFtZSgiU0VMRUNUIik7DQogIHZhciB2YWx1ZTsNCiAgdmFyIGRhdGEgPSBuZXcgT2JqZWN0KCk7DQogIHZhciB2YWx1ZUFyciA9IG5ldyBBcnJheSgpOw0KICB2YXIgbmV3RGF0YSA9IGZhbHNlOw0KDQogIGlmIChhY3RpdmVXaXphcmQgPT0gImNvbXBsZXRlIikgew0KICAgIGRhdGFbImNtZCJdID0gIndpemFyZENvbXBsZXRlZCI7DQogICAgc2hvd0xvYWRpbmdTY3JlZW4odHJ1ZSkNCiAgICB4VGVWZShkYXRhKTsNCiAgICByZXR1cm4NCiAgfQ0KICANCiAgZm9yICh2YXIgaSA9IDA7IGkgPCBpbnB1dHMubGVuZ3RoOyBpKyspIHsNCiAgICB2YXIgbWVudVR5cGUgPSBpbnB1dHNbaV0ucGFyZW50RWxlbWVudC5nZXRBdHRyaWJ1dGUoImRhdGEtbWVudXR5cGUiKTsNCiAgICBpZiAoaW5wdXRzW2ldLnZhbHVlICE9IHVuZGVmaW5lZCAmJiBpbnB1dHNbaV0udmFsdWUgIT0gIiIgKSB7DQogICAgICBuZXdEYXRhID0gdHJ1ZTsNCg0KICAgICAgY29uc29sZS5sb2coaW5wdXRzW2ldLmlkKQ0KICAgICAgc3dpdGNoKGlucHV0c1tpXS5pZCkgew0KICAgICAgICBjYXNlICJtM3UiOiANCiAgICAgICAgICB2YXIgbmV3UGxheWxpc3QgPSBuZXcgT2JqZWN0KCk7DQogICAgICAgICAgbmV3UGxheWxpc3RbImZpbGUuc291cmNlIl0gPSBpbnB1dHNbaV0udmFsdWU7DQogICAgICAgICAgLy9uZXdQbGF5bGlzdFsibmFtZSJdID0gaW5wdXRzW2ldLnZhbHVlOw0KICAgICAgICAgIG5ld1BsYXlsaXN0WyJ0eXBlIl0gPSAibTN1IjsNCiAgICAgICAgICBuZXdQbGF5bGlzdFsibmV3Il0gPSB0cnVlOw0KDQogICAgICAgICAgZGF0YVsiZmlsZXMiXSA9IG5ldyBPYmplY3QoKTsNCiAgICAgICAgICBkYXRhWyJmaWxlcyJdWyJtM3UiXSA9IG5ldyBPYmplY3QoKTsNCiAgICAgICAgICBkYXRhWyJmaWxlcyJdWyJtM3UiXVsiLSJdID0gbmV3UGxheWxpc3Q7DQogICAgICAgICAgDQogICAgICAgICAgZGF0YVsiY21kIl0gPSAic2F2ZUZpbGVzTTNVIjsNCiAgICAgICAgICB4VGVWZShkYXRhKQ0KICAgICAgICAgIHJldHVybg0KICAgICAgfQ0KICAgICAgLyoNCiAgICAgIHN3aXRjaChtZW51VHlwZSkgew0KICAgICAgICBjYXNlICJzaW5nbGVJbnB1dCI6DQogICAgICAgICAgZGF0YVtpbnB1dHNbaV0ubmFtZV0gPSBpbnB1dHNbaV0udmFsdWU7IGJyZWFrOw0KICAgICAgICBjYXNlICJpbnB1dEFycmF5IjogDQogICAgICAgICAgdmFsdWVBcnIucHVzaChpbnB1dHNbaV0udmFsdWUpOw0KICAgICAgICAgIGRhdGFbaW5wdXRzW2ldLm5hbWVdID0gdmFsdWVBcnI7IGJyZWFrDQoNCiAgICAgIH0NCiAgICAgICovDQogICAgfSBlbHNlIHsNCiAgICAgIGlucHV0c1tpXS5zdHlsZS5ib3JkZXJCb3R0b21Db2xvciA9ICJyZWQiOw0KICAgICAgcmV0dXJuOw0KICAgIH0NCiAgfQ0KDQoNCiAgZm9yICh2YXIgaSA9IDA7IGkgPCBzZWxlY3RzLmxlbmd0aDsgaSsrKSB7DQogICAgdmFyIHZhbHVlID0gc2VsZWN0c1tpXS5vcHRpb25zW3NlbGVjdHNbaV0uc2VsZWN0ZWRJbmRleF0udmFsdWU7DQogICAgaWYgKGlzTmFOKHZhbHVlKSA9PSBmYWxzZSkgew0KICAgICAgdmFsdWUgPSBwYXJzZUludCh2YWx1ZSk7DQogICAgICBkYXRhW3NlbGVjdHNbaV0ubmFtZV0gPSB2YWx1ZTsNCiAgICAgIG5ld0RhdGEgPSB0cnVlOw0KICAgICAgYnJlYWs7DQogICAgfQ0KICAgIGRhdGFbc2VsZWN0c1tpXS5uYW1lXSA9IHZhbHVlOw0KICAgIG5ld0RhdGEgPSB0cnVlOw0KICB9DQoNCg0KICAvL2NvbnNvbGUubG9nKGRhdGEsIG5ld0RhdGEpOw0KICBpZiAobmV3RGF0YSA9PSB0cnVlKSB7DQogICAgY29uZmlnID0gZGF0YQ0KICAgIGRhdGFbImNtZCJdID0gInNhdmVDb25maWciOw0KICAgIHhUZVZlKGRhdGEpOw0KICB9DQp9DQoNCmZ1bmN0aW9uIHhUZVZlKGRhdGEpIHsNCg0KICBpZiAod2ViU29ja2V0cyA9PSBmYWxzZSkgew0KICAgIGFsZXJ0KCJZb3VyIGJyb3dzZXIgZG9lcyBub3Qgc3VwcG9ydCBXZWJTb2NrZXRzIik7DQogICAgcmV0dXJuOw0KICB9DQoNCiAgaWYgKGFjdGl2ZVdpemFyZCA9PSAibTN1IiB8fCBhY3RpdmVXaXphcmQgPT0gImVwZ1NvdXJjZSIpIHsNCiAgICBzaG93TG9hZGluZ1NjcmVlbih0cnVlKTsNCiAgfQ0KDQogIHZhciBwcm90b2NvbFdTDQogIHN3aXRjaCh3aW5kb3cubG9jYXRpb24ucHJvdG9jb2wpIHsNCiAgICBjYXNlICJodHRwOiI6ICAgcHJvdG9jb2xXUyA9ICJ3czovLyI7IGJyZWFrOw0KICAgIGNhc2UgImh0dHBzOiI6ICBwcm90b2NvbFdTID0gIndzczovLyI7IGJyZWFrOw0KICB9DQoNCiAgdmFyIHdzID0gbmV3IFdlYlNvY2tldChwcm90b2NvbFdTICsgd2luZG93LmxvY2F0aW9uLmhvc3RuYW1lICsgIjoiICsgd2luZG93LmxvY2F0aW9uLnBvcnQgKyAiL2RhdGEvIiArICI/VG9rZW49IiArIGdldENvb2tpZSgiVG9rZW4iKSk7DQogIA0KICB3cy5vbm9wZW4gPSBmdW5jdGlvbigpIHsNCiAgICB3cy5zZW5kKEpTT04uc3RyaW5naWZ5KGRhdGEpKTsNCiAgfQ0KDQogIHdzLm9ubWVzc2FnZSA9IGZ1bmN0aW9uIChlKSB7DQogICAgDQogICAgdmFyIHJlc3BvbnNlID0gSlNPTi5wYXJzZShlLmRhdGEpOw0KICAgIA0KICAgIGlmIChyZXNwb25zZS5oYXNPd25Qcm9wZXJ0eSgiY2xpZW50SW5mbyIpKSB7DQogICAgICBjcmVhdGVDbGludEluZm8ocmVzcG9uc2VbImNsaWVudEluZm8iXSk7DQogICAgfQ0KDQogICAgaWYgKHJlc3BvbnNlLmhhc093blByb3BlcnR5KCJzdGF0dXMiKSkgew0KICAgICAgaWYgKHJlc3BvbnNlWyJzdGF0dXMiXSA9PSBmYWxzZSkgew0KICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiaGVhZGxpbmUiKS5zdHlsZS5ib3JkZXJDb2xvciA9ICJyZWQiOw0KICAgICAgICBzaG93RXJyKHJlc3BvbnNlWyJlcnIiXSk7DQogICAgICAgIHNob3dMb2FkaW5nU2NyZWVuKGZhbHNlKQ0KICAgICAgICByZXR1cm4NCiAgICAgIH0gZWxzZSB7DQogICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJlcnIiKS5pbm5lckhUTUwgPSAiIjsNCiAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImhlYWRsaW5lIikuc3R5bGUuYm9yZGVyQ29sb3IgPSAibGF3bmdyZWVuIjsNCiAgICAgIH0NCg0KICAgICAgZHZySVAgPSByZXNwb25zZVsiRFZSIl0NCiAgICAgIHN3aXRjaChyZXNwb25zZVsiY29uZmlndXJhdGlvbldpemFyZCJdKSB7DQogICAgICAgIGNhc2UgdHJ1ZTogDQogICAgICAgICAgaWYgKGFjdGl2ZVdpemFyZCA9PSB1bmRlZmluZWQpIHsNCiAgICAgICAgICAgIGFjdGl2ZVdpemFyZCA9IHdpemFyZFswXQ0KICAgICAgICAgIH0NCiAgICAgICAgICB2YXIgbiA9IHdpemFyZC5pbmRleE9mKGFjdGl2ZVdpemFyZCk7DQogICAgICAgICAgbisrOw0KICAgICAgICAgIGFjdGl2ZVdpemFyZCA9IHdpemFyZFtuXQ0KDQogICAgICAgICAgaWYgKGFjdGl2ZVdpemFyZCA9PSB1bmRlZmluZWQpIHsNCiAgICAgICAgICAgIGRhdGFbImNtZCJdID0gIndpemFyZENvbXBsZXRlZCI7DQogICAgICAgICAgICB4VGVWZShkYXRhKQ0KICAgICAgICAgIH0gZWxzZSB7DQogICAgICAgICAgICAvL2NvbnNvbGUubG9nKGFjdGl2ZVdpemFyZCk7DQogICAgICAgICAgICBjcmVhdGVDb25maWd1cmF0aW9uKGFjdGl2ZVdpemFyZCk7IA0KICAgICAgICAgIH0NCiAgICAgICAgICANCiAgICAgICAgYnJlYWs7DQogICAgICB9DQoNCiAgICAgIHN3aXRjaChyZXNwb25zZVsicmVsb2FkIl0pIHsNCiAgICAgICAgDQogICAgICAgIA0KICAgICAgICBjYXNlIHRydWU6IA0KICAgIA0KICAgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKXsgDQogICAgICAgICAgICBsb2NhdGlvbi5yZWxvYWQoKTsNCiAgICAgICAgICB9LCAxMDApOw0KICAgICAgICAgIA0KICAgICAgICAgIC8vbG9jYXRpb24ucmVsb2FkKCk7DQogICAgICAgICAgDQogICAgICAgICAgYnJlYWs7DQogICAgICAgIA0KICAgICAgfQ0KDQogICAgICANCiAgICB9DQoNCiAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7IHNob3dMb2FkaW5nU2NyZWVuKGZhbHNlKTsgfSwgMzAwKTsNCiAgfQ0KICANCn0NCg0KZnVuY3Rpb24gc2hvd0VycihlbG0pIHsNCiAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImVyciIpLmlubmVySFRNTCA9IGVsbTsNCn0=" + webUI["html/js/menu_ts.js"] = "Y2xhc3MgTWFpbk1lbnUgew0KICAgIGNvbnN0cnVjdG9yKCkgew0KICAgICAgICB0aGlzLkRvY3VtZW50SUQgPSAibWFpbi1tZW51IjsNCiAgICAgICAgdGhpcy5IVE1MVGFnID0gIkxJIjsNCiAgICAgICAgdGhpcy5JbWFnZVBhdGggPSAiaW1nLyI7DQogICAgfQ0KICAgIGNyZWF0ZUlNRyhzcmMpIHsNCiAgICAgICAgbGV0IGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJJTUciKTsNCiAgICAgICAgZWxlbWVudC5zZXRBdHRyaWJ1dGUoInNyYyIsIHRoaXMuSW1hZ2VQYXRoICsgc3JjKTsNCiAgICAgICAgcmV0dXJuIGVsZW1lbnQ7DQogICAgfQ0KICAgIGNyZWF0ZVZhbHVlKHZhbHVlKSB7DQogICAgICAgIGxldCBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiUCIpOw0KICAgICAgICBlbGVtZW50LmlubmVySFRNTCA9IHZhbHVlOw0KICAgICAgICByZXR1cm4gZWxlbWVudDsNCiAgICB9DQp9DQpjbGFzcyBNYWluTWVudUl0ZW0gZXh0ZW5kcyBNYWluTWVudSB7DQogICAgY29uc3RydWN0b3IobWVudUtleSwgdmFsdWUsIGltYWdlLCBoZWFkbGluZSkgew0KICAgICAgICBzdXBlcigpOw0KICAgICAgICB0aGlzLm1lbnVLZXkgPSBtZW51S2V5Ow0KICAgICAgICB0aGlzLnZhbHVlID0gdmFsdWU7DQogICAgICAgIHRoaXMuaW1nU3JjID0gaW1hZ2U7DQogICAgICAgIHRoaXMuaGVhZGxpbmUgPSBoZWFkbGluZTsNCiAgICB9DQogICAgY3JlYXRlSXRlbSgpIHsNCiAgICAgICAgbGV0IGl0ZW0gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJMSSIpOw0KICAgICAgICBpdGVtLnNldEF0dHJpYnV0ZSgib25jbGljayIsICJqYXZhc2NyaXB0OiBvcGVuVGhpc01lbnUodGhpcykiKTsNCiAgICAgICAgaXRlbS5zZXRBdHRyaWJ1dGUoImlkIiwgdGhpcy5pZCk7DQogICAgICAgIGxldCBpbWcgPSB0aGlzLmNyZWF0ZUlNRyh0aGlzLmltZ1NyYyk7DQogICAgICAgIGxldCB2YWx1ZSA9IHRoaXMuY3JlYXRlVmFsdWUodGhpcy52YWx1ZSk7DQogICAgICAgIGl0ZW0uYXBwZW5kQ2hpbGQoaW1nKTsNCiAgICAgICAgaXRlbS5hcHBlbmRDaGlsZCh2YWx1ZSk7DQogICAgICAgIGxldCBkb2MgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCh0aGlzLkRvY3VtZW50SUQpOw0KICAgICAgICBkb2MuYXBwZW5kQ2hpbGQoaXRlbSk7DQogICAgICAgIHN3aXRjaCAodGhpcy5tZW51S2V5KSB7DQogICAgICAgICAgICBjYXNlICJwbGF5bGlzdCI6DQogICAgICAgICAgICAgICAgdGhpcy50YWJsZUhlYWRlciA9IFsie3sucGxheWxpc3QudGFibGUucGxheWxpc3R9fSIsICJ7ey5wbGF5bGlzdC50YWJsZS50dW5lcn19IiwgInt7LnBsYXlsaXN0LnRhYmxlLmxhc3RVcGRhdGV9fSIsICJ7ey5wbGF5bGlzdC50YWJsZS5hdmFpbGFiaWxpdHl9fSAlIiwgInt7LnBsYXlsaXN0LnRhYmxlLnR5cGV9fSIsICJ7ey5wbGF5bGlzdC50YWJsZS5zdHJlYW1zfX0iLCAie3sucGxheWxpc3QudGFibGUuZ3JvdXBUaXRsZX19ICUiLCAie3sucGxheWxpc3QudGFibGUudHZnSUR9fSAlIiwgInt7LnBsYXlsaXN0LnRhYmxlLnVuaXF1ZUlEfX0gJSJdOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAieG1sdHYiOg0KICAgICAgICAgICAgICAgIHRoaXMudGFibGVIZWFkZXIgPSBbInt7LnhtbHR2LnRhYmxlLmd1aWRlfX0iLCAie3sueG1sdHYudGFibGUubGFzdFVwZGF0ZX19IiwgInt7LnhtbHR2LnRhYmxlLmF2YWlsYWJpbGl0eX19ICUiLCAie3sueG1sdHYudGFibGUuY2hhbm5lbHN9fSIsICJ7ey54bWx0di50YWJsZS5wcm9ncmFtc319Il07DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJmaWx0ZXIiOg0KICAgICAgICAgICAgICAgIHRoaXMudGFibGVIZWFkZXIgPSBbInt7LmZpbHRlci50YWJsZS5uYW1lfX0iLCAie3suZmlsdGVyLnRhYmxlLnR5cGV9fSIsICJ7ey5maWx0ZXIudGFibGUuZmlsdGVyfX0iXTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInVzZXJzIjoNCiAgICAgICAgICAgICAgICB0aGlzLnRhYmxlSGVhZGVyID0gWyJ7ey51c2Vycy50YWJsZS51c2VybmFtZX19IiwgInt7LnVzZXJzLnRhYmxlLnBhc3N3b3JkfX0iLCAie3sudXNlcnMudGFibGUud2VifX0iLCAie3sudXNlcnMudGFibGUucG1zfX0iLCAie3sudXNlcnMudGFibGUubTN1fX0iLCAie3sudXNlcnMudGFibGUueG1sfX0iLCAie3sudXNlcnMudGFibGUuYXBpfX0iXTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgIm1hcHBpbmciOg0KICAgICAgICAgICAgICAgIHRoaXMudGFibGVIZWFkZXIgPSBbIkJVTEsiLCAie3subWFwcGluZy50YWJsZS5jaE5vfX0iLCAie3subWFwcGluZy50YWJsZS5sb2dvfX0iLCAie3subWFwcGluZy50YWJsZS5jaGFubmVsTmFtZX19IiwgInt7Lm1hcHBpbmcudGFibGUucGxheWxpc3R9fSIsICJ7ey5tYXBwaW5nLnRhYmxlLmdyb3VwVGl0bGV9fSIsICJ7ey5tYXBwaW5nLnRhYmxlLnhtbHR2RmlsZX19IiwgInt7Lm1hcHBpbmcudGFibGUueG1sdHZJRH19IiwgInt7Lm1hcHBpbmcudGFibGUudGltZXNoaWZ0fX0iXTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgfQ0KICAgICAgICAvL2NvbnNvbGUubG9nKHRoaXMubWVudUtleSwgdGhpcy50YWJsZUhlYWRlcik7DQogICAgfQ0KfQ0KY2xhc3MgQ29udGVudCB7DQogICAgY29uc3RydWN0b3IoKSB7DQogICAgICAgIHRoaXMuRG9jdW1lbnRJRCA9ICJjb250ZW50IjsNCiAgICAgICAgdGhpcy5UYWJsZUlEID0gImNvbnRlbnRfdGFibGUiOw0KICAgICAgICB0aGlzLmhlYWRlckNsYXNzID0gImNvbnRlbnRfdGFibGVfaGVhZGVyIjsNCiAgICAgICAgdGhpcy5pbnRlcmFjdGlvbklEID0gImNvbnRlbnQtaW50ZXJhY3Rpb24iOw0KICAgIH0NCiAgICBjcmVhdGVIZWFkbGluZSh2YWx1ZSkgew0KICAgICAgICBsZXQgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIkgzIik7DQogICAgICAgIGVsZW1lbnQuaW5uZXJIVE1MID0gdmFsdWU7DQogICAgICAgIHJldHVybiBlbGVtZW50Ow0KICAgIH0NCiAgICBjcmVhdGVIUigpIHsNCiAgICAgICAgcmV0dXJuIGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIkhSIik7DQogICAgfQ0KICAgIGNyZWF0ZUludGVyYWN0aW9uKCkgew0KICAgICAgICBsZXQgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIkRJViIpOw0KICAgICAgICBlbGVtZW50LnNldEF0dHJpYnV0ZSgiaWQiLCB0aGlzLmludGVyYWN0aW9uSUQpOw0KICAgICAgICByZXR1cm4gZWxlbWVudDsNCiAgICB9DQogICAgY3JlYXRlRElWKCkgew0KICAgICAgICBsZXQgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIkRJViIpOw0KICAgICAgICBlbGVtZW50LmlkID0gdGhpcy5EaXZJRDsNCiAgICAgICAgcmV0dXJuIGVsZW1lbnQ7DQogICAgfQ0KICAgIGNyZWF0ZVRBQkxFKCkgew0KICAgICAgICBsZXQgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlRBQkxFIik7DQogICAgICAgIGVsZW1lbnQuaWQgPSB0aGlzLlRhYmxlSUQ7DQogICAgICAgIHJldHVybiBlbGVtZW50Ow0KICAgIH0NCiAgICBjcmVhdGVUYWJsZVJvdygpIHsNCiAgICAgICAgbGV0IGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJUUiIpOw0KICAgICAgICBlbGVtZW50LmNsYXNzTmFtZSA9IHRoaXMuaGVhZGVyQ2xhc3M7DQogICAgICAgIHJldHVybiBlbGVtZW50Ow0KICAgIH0NCiAgICBjcmVhdGVUYWJsZUNvbnRlbnQobWVudUtleSkgew0KICAgICAgICBsZXQgZGF0YSA9IHt9Ow0KICAgICAgICBsZXQgcm93cyA9IFtdOw0KICAgICAgICBsZXQgZmlsZVR5cGVzID0gW107DQogICAgICAgIHN3aXRjaCAobWVudUtleSkgew0KICAgICAgICAgICAgY2FzZSAicGxheWxpc3QiOg0KICAgICAgICAgICAgICAgIGZpbGVUeXBlcyA9IFsibTN1IiwgImhkaHIiXTsNCiAgICAgICAgICAgICAgICBmaWxlVHlwZXMuZm9yRWFjaChmaWxlVHlwZSA9PiB7DQogICAgICAgICAgICAgICAgICAgIGRhdGEgPSBTRVJWRVJbInNldHRpbmdzIl1bImZpbGVzIl1bZmlsZVR5cGVdOw0KICAgICAgICAgICAgICAgICAgICB2YXIga2V5cyA9IGdldE9iaktleXMoZGF0YSk7DQogICAgICAgICAgICAgICAgICAgIGtleXMuZm9yRWFjaChrZXkgPT4gew0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVFIiKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmlkID0ga2V5Ow0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgiJyArIGZpbGVUeXBlICsgJyIsIHRoaXMpJyk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsibmFtZSJdOw0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChTRVJWRVJbInNldHRpbmdzIl1bImJ1ZmZlciJdICE9ICItIikgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bInR1bmVyIl07DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gIi0iOw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bImxhc3QudXBkYXRlIl07DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsicHJvdmlkZXIuYXZhaWxhYmlsaXR5Il07DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsidHlwZSJdLnRvVXBwZXJDYXNlKCk7DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsiY29tcGF0aWJpbGl0eSJdWyJzdHJlYW1zIl07DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsiY29tcGF0aWJpbGl0eSJdWyJncm91cC50aXRsZSJdOw0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bImNvbXBhdGliaWxpdHkiXVsidHZnLmlkIl07DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsiY29tcGF0aWJpbGl0eSJdWyJzdHJlYW0uaWQiXTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHJvd3MucHVzaCh0cik7DQogICAgICAgICAgICAgICAgICAgIH0pOw0KICAgICAgICAgICAgICAgIH0pOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiZmlsdGVyIjoNCiAgICAgICAgICAgICAgICBkZWxldGUgU0VSVkVSWyJzZXR0aW5ncyJdWyJmaWx0ZXIiXVstMV07DQogICAgICAgICAgICAgICAgZGF0YSA9IFNFUlZFUlsic2V0dGluZ3MiXVsiZmlsdGVyIl07DQogICAgICAgICAgICAgICAgdmFyIGtleXMgPSBnZXRPYmpLZXlzKGRhdGEpOw0KICAgICAgICAgICAgICAgIGtleXMuZm9yRWFjaChrZXkgPT4gew0KICAgICAgICAgICAgICAgICAgICB2YXIgdHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJUUiIpOw0KICAgICAgICAgICAgICAgICAgICB0ci5pZCA9IGtleTsNCiAgICAgICAgICAgICAgICAgICAgdHIuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgiJyArIGRhdGFba2V5XVsidHlwZSJdICsgJyIsIHRoaXMpJyk7DQogICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJuYW1lIl07DQogICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgIHN3aXRjaCAoZGF0YVtrZXldWyJ0eXBlIl0pIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgImN1c3RvbS1maWx0ZXIiOg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSAie3suZmlsdGVyLmN1c3RvbX19IjsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgImdyb3VwLXRpdGxlIjoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gInt7LmZpbHRlci5ncm91cH19IjsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsiZmlsdGVyIl07DQogICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgcm93cy5wdXNoKHRyKTsNCiAgICAgICAgICAgICAgICB9KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInhtbHR2IjoNCiAgICAgICAgICAgICAgICBmaWxlVHlwZXMgPSBuZXcgQXJyYXkoInhtbHR2Iik7DQogICAgICAgICAgICAgICAgZmlsZVR5cGVzLmZvckVhY2goZmlsZVR5cGUgPT4gew0KICAgICAgICAgICAgICAgICAgICBkYXRhID0gU0VSVkVSWyJzZXR0aW5ncyJdWyJmaWxlcyJdW2ZpbGVUeXBlXTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGtleXMgPSBnZXRPYmpLZXlzKGRhdGEpOw0KICAgICAgICAgICAgICAgICAgICBrZXlzLmZvckVhY2goa2V5ID0+IHsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciB0ciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlRSIik7DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5pZCA9IGtleTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoIicgKyBmaWxlVHlwZSArICciLCB0aGlzKScpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bIm5hbWUiXTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJsYXN0LnVwZGF0ZSJdOw0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bInByb3ZpZGVyLmF2YWlsYWJpbGl0eSJdOw0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bImNvbXBhdGliaWxpdHkiXVsieG1sdHYuY2hhbm5lbHMiXTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJjb21wYXRpYmlsaXR5Il1bInhtbHR2LnByb2dyYW1zIl07DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICByb3dzLnB1c2godHIpOw0KICAgICAgICAgICAgICAgICAgICB9KTsNCiAgICAgICAgICAgICAgICB9KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInVzZXJzIjoNCiAgICAgICAgICAgICAgICBmaWxlVHlwZXMgPSBuZXcgQXJyYXkoInVzZXJzIik7DQogICAgICAgICAgICAgICAgZmlsZVR5cGVzLmZvckVhY2goZmlsZVR5cGUgPT4gew0KICAgICAgICAgICAgICAgICAgICBkYXRhID0gU0VSVkVSW2ZpbGVUeXBlXTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGtleXMgPSBnZXRPYmpLZXlzKGRhdGEpOw0KICAgICAgICAgICAgICAgICAgICBrZXlzLmZvckVhY2goa2V5ID0+IHsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciB0ciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlRSIik7DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5pZCA9IGtleTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoIicgKyBmaWxlVHlwZSArICciLCB0aGlzKScpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bImRhdGEiXVsidXNlcm5hbWUiXTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gIioqKioqKiI7DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGRhdGFba2V5XVsiZGF0YSJdWyJhdXRoZW50aWNhdGlvbi53ZWIiXSA9PSB0cnVlKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9ICLinJMiOw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9ICItIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgICAgICBpZiAoZGF0YVtrZXldWyJkYXRhIl1bImF1dGhlbnRpY2F0aW9uLnBtcyJdID09IHRydWUpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gIuKckyI7DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gIi0iOw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChkYXRhW2tleV1bImRhdGEiXVsiYXV0aGVudGljYXRpb24ubTN1Il0gPT0gdHJ1ZSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSAi4pyTIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSAiLSI7DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGRhdGFba2V5XVsiZGF0YSJdWyJhdXRoZW50aWNhdGlvbi54bWwiXSA9PSB0cnVlKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9ICLinJMiOw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9ICItIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgICAgICBpZiAoZGF0YVtrZXldWyJkYXRhIl1bImF1dGhlbnRpY2F0aW9uLmFwaSJdID09IHRydWUpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gIuKckyI7DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gIi0iOw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgcm93cy5wdXNoKHRyKTsNCiAgICAgICAgICAgICAgICAgICAgfSk7DQogICAgICAgICAgICAgICAgfSk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJtYXBwaW5nIjoNCiAgICAgICAgICAgICAgICBCVUxLX0VESVQgPSBmYWxzZTsNCiAgICAgICAgICAgICAgICBjcmVhdGVTZWFyY2hPYmooKTsNCiAgICAgICAgICAgICAgICBjaGVja1VuZG8oImVwZ01hcHBpbmciKTsNCiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZygiTUFQUElORyIpOw0KICAgICAgICAgICAgICAgIGRhdGEgPSBTRVJWRVJbInhlcGciXVsiZXBnTWFwcGluZyJdOw0KICAgICAgICAgICAgICAgIHZhciBrZXlzID0gZ2V0T2JqS2V5cyhkYXRhKTsNCiAgICAgICAgICAgICAgICBrZXlzLmZvckVhY2goa2V5ID0+IHsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVFIiKTsNCiAgICAgICAgICAgICAgICAgICAgdHIuaWQgPSBrZXk7DQogICAgICAgICAgICAgICAgICAgIC8vdHIuc2V0QXR0cmlidXRlKCdvbmNvbnRleHRtZW51JywgJ2phdmFzY3JpcHQ6IHJpZ2h0Q2xpY2sodGhpcyknKQ0KICAgICAgICAgICAgICAgICAgICBzd2l0Y2ggKGRhdGFba2V5XVsieC1hY3RpdmUiXSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSB0cnVlOg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyLmNsYXNzTmFtZSA9ICJhY3RpdmVFUEciOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSBmYWxzZToNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ci5jbGFzc05hbWUgPSAibm90QWN0aXZlRVBHIjsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAvLyBCdWxrDQogICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIkJVTEsiOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZmFsc2U7DQogICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgLy8gS2FuYWxudW1tZXINCiAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiSU5QVVRDSEFOTkVMIjsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsieC1jaGFubmVsSUQiXTsNCiAgICAgICAgICAgICAgICAgICAgLy90ZC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogY2hhbmdlQ2hhbm5lbE51bWJlcigiJyArIGtleSArICciLCB0aGlzKScpDQogICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgLy8gTG9nbw0KICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJJTUciOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmltYWdlVVJMID0gZGF0YVtrZXldWyJ0dmctbG9nbyJdOw0KICAgICAgICAgICAgICAgICAgICB2YXIgdGQgPSBjZWxsLmNyZWF0ZUNlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgdGQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgibWFwcGluZyIsIHRoaXMpJyk7DQogICAgICAgICAgICAgICAgICAgIHRkLmlkID0ga2V5Ow0KICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZCh0ZCk7DQogICAgICAgICAgICAgICAgICAgIC8vIEthbmFsbmFtZQ0KICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jbGFzc05hbWUgPSBkYXRhW2tleV1bIngtY2F0ZWdvcnkiXTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsieC1uYW1lIl07DQogICAgICAgICAgICAgICAgICAgIHZhciB0ZCA9IGNlbGwuY3JlYXRlQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICB0ZC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJtYXBwaW5nIiwgdGhpcyknKTsNCiAgICAgICAgICAgICAgICAgICAgdGQuaWQgPSBrZXk7DQogICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKHRkKTsNCiAgICAgICAgICAgICAgICAgICAgLy8gUGxheWxpc3QNCiAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgIC8vY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsiX2ZpbGUubTN1Lm5hbWUiXSANCiAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGdldFZhbHVlRnJvbVByb3ZpZGVyRmlsZShkYXRhW2tleV1bIl9maWxlLm0zdS5pZCJdLCAibTN1IiwgIm5hbWUiKTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHRkID0gY2VsbC5jcmVhdGVDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgIHRkLnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoIm1hcHBpbmciLCB0aGlzKScpOw0KICAgICAgICAgICAgICAgICAgICB0ZC5pZCA9IGtleTsNCiAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQodGQpOw0KICAgICAgICAgICAgICAgICAgICAvLyBHcnVwcGUgKGdyb3VwLXRpdGxlKQ0KICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsieC1ncm91cC10aXRsZSJdOw0KICAgICAgICAgICAgICAgICAgICB2YXIgdGQgPSBjZWxsLmNyZWF0ZUNlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgdGQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgibWFwcGluZyIsIHRoaXMpJyk7DQogICAgICAgICAgICAgICAgICAgIHRkLmlkID0ga2V5Ow0KICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZCh0ZCk7DQogICAgICAgICAgICAgICAgICAgIC8vIFhNTFRWIERhdGVpDQogICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICBpZiAoZGF0YVtrZXldWyJ4LXhtbHR2LWZpbGUiXSAhPSAiLSIpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBnZXRWYWx1ZUZyb21Qcm92aWRlckZpbGUoZGF0YVtrZXldWyJ4LXhtbHR2LWZpbGUiXSwgInhtbHR2IiwgIm5hbWUiKTsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bIngteG1sdHYtZmlsZSJdOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIHZhciB0ZCA9IGNlbGwuY3JlYXRlQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICB0ZC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJtYXBwaW5nIiwgdGhpcyknKTsNCiAgICAgICAgICAgICAgICAgICAgdGQuaWQgPSBrZXk7DQogICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKHRkKTsNCiAgICAgICAgICAgICAgICAgICAgLy8gWE1MVFYgS2FuYWwNCiAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgIC8vdmFyIHZhbHVlID0gc3RyLnN1YnN0cmluZygxLCA0KTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHZhbHVlID0gZGF0YVtrZXldWyJ4LW1hcHBpbmciXTsNCiAgICAgICAgICAgICAgICAgICAgaWYgKHZhbHVlLmxlbmd0aCA+IDIwKSB7DQogICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IGRhdGFba2V5XVsieC1tYXBwaW5nIl0uc3Vic3RyaW5nKDAsIDIwKSArICIuLi4iOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSB2YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHRkID0gY2VsbC5jcmVhdGVDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgIHRkLnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoIm1hcHBpbmciLCB0aGlzKScpOw0KICAgICAgICAgICAgICAgICAgICB0ZC5pZCA9IGtleTsNCiAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQodGQpOw0KICAgICAgICAgICAgICAgICAgICAvLyBUaW1lU2hpZnQNCiAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bIngtdGltZXNoaWZ0Il07DQogICAgICAgICAgICAgICAgICAgIHZhciB0ZCA9IGNlbGwuY3JlYXRlQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICB0ZC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJtYXBwaW5nIiwgdGhpcyknKTsNCiAgICAgICAgICAgICAgICAgICAgdGQuaWQgPSBrZXk7DQogICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKHRkKTsNCiAgICAgICAgICAgICAgICAgICAgcm93cy5wdXNoKHRyKTsNCiAgICAgICAgICAgICAgICB9KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInNldHRpbmdzIjoNCiAgICAgICAgICAgICAgICBhbGVydCgpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZygiVGFibGUgY29udGVudCAobWVudUtleSk6IiwgbWVudUtleSk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIH0NCiAgICAgICAgcmV0dXJuIHJvd3M7DQogICAgfQ0KfQ0KY2xhc3MgQ2VsbCB7DQogICAgY3JlYXRlQ2VsbCgpIHsNCiAgICAgICAgbGV0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgaWYgKHRoaXMuY2hpbGQgPT0gdHJ1ZSkgew0KICAgICAgICAgICAgdmFyIGVsZW1lbnQ7DQogICAgICAgICAgICBzd2l0Y2ggKHRoaXMuY2hpbGRUeXBlKSB7DQogICAgICAgICAgICAgICAgY2FzZSAiUCI6DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KHRoaXMuY2hpbGRUeXBlKTsNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC5pbm5lckhUTUwgPSB0aGlzLnZhbHVlOw0KICAgICAgICAgICAgICAgICAgICBlbGVtZW50LmNsYXNzTmFtZSA9IHRoaXMuY2xhc3NOYW1lOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBjYXNlICJJTlBVVCI6DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KHRoaXMuY2hpbGRUeXBlKTsNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC52YWx1ZSA9IHRoaXMudmFsdWU7DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQudHlwZSA9ICJ0ZXh0IjsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAiSU5QVVRDSEFOTkVMIjoNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIklOUFVUIik7DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZzY3JpcHQ6IGNoYW5nZUNoYW5uZWxOdW1iZXIodGhpcykiKTsNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC52YWx1ZSA9IHRoaXMudmFsdWU7DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQudHlwZSA9ICJ0ZXh0IjsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAiQlVMSyI6DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJJTlBVVCIpOw0KICAgICAgICAgICAgICAgICAgICBlbGVtZW50LmNoZWNrZWQgPSB0aGlzLnZhbHVlOw0KICAgICAgICAgICAgICAgICAgICBlbGVtZW50LnR5cGUgPSAiY2hlY2tib3giOw0KICAgICAgICAgICAgICAgICAgICBlbGVtZW50LmNsYXNzTmFtZSA9ICJidWxrIGhpZGVCdWxrIjsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAiQlVMS19IRUFEIjoNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIklOUFVUIik7DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQuY2hlY2tlZCA9IHRoaXMudmFsdWU7DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQudHlwZSA9ICJjaGVja2JveCI7DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQuY2xhc3NOYW1lID0gImJ1bGsgaGlkZUJ1bGsiOw0KICAgICAgICAgICAgICAgICAgICBlbGVtZW50LnNldEF0dHJpYnV0ZSgib25jbGljayIsICJqYXZhc2NyaXB0OiBzZWxlY3RBbGxDaGFubmVscygpIik7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgIklNRyI6DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KHRoaXMuY2hpbGRUeXBlKTsNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC5zZXRBdHRyaWJ1dGUoInNyYyIsIHRoaXMuaW1hZ2VVUkwpOw0KICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5pbWFnZVVSTCAhPSAiIikgew0KICAgICAgICAgICAgICAgICAgICAgICAgZWxlbWVudC5zZXRBdHRyaWJ1dGUoIm9uZXJyb3IiLCAiamF2YXNjcmlwdDogdGhpcy5vbmVycm9yPW51bGw7dGhpcy5zcmM9JyciKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIC8vb25lcnJvcj0idGhpcy5vbmVycm9yPW51bGw7dGhpcy5zcmM9J21pc3NpbmcuZ2lmJzsiDQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIHRkLmFwcGVuZENoaWxkKGVsZW1lbnQpOw0KICAgICAgICB9DQogICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgdGQuaW5uZXJIVE1MID0gdGhpcy52YWx1ZTsNCiAgICAgICAgfQ0KICAgICAgICBpZiAodGhpcy5vbmNsaWNrID09IHRydWUpIHsNCiAgICAgICAgICAgIHRkLnNldEF0dHJpYnV0ZSgib25jbGljayIsIHRoaXMub25jbGlja0Z1bmt0aW9uKTsNCiAgICAgICAgICAgIHRkLmNsYXNzTmFtZSA9ICJwb2ludGVyIjsNCiAgICAgICAgfQ0KICAgICAgICBpZiAodGhpcy50ZENsYXNzTmFtZSAhPSB1bmRlZmluZWQpIHsNCiAgICAgICAgICAgIHRkLmNsYXNzTmFtZSA9IHRoaXMudGRDbGFzc05hbWU7DQogICAgICAgIH0NCiAgICAgICAgcmV0dXJuIHRkOw0KICAgIH0NCn0NCmNsYXNzIFNob3dDb250ZW50IGV4dGVuZHMgQ29udGVudCB7DQogICAgY29uc3RydWN0b3IobWVudUlEKSB7DQogICAgICAgIHN1cGVyKCk7DQogICAgICAgIHRoaXMubWVudUlEID0gbWVudUlEOw0KICAgIH0NCiAgICBjcmVhdGVJbnB1dCh0eXBlLCBuYW1lLCB2YWx1ZSkgew0KICAgICAgICBsZXQgaW5wdXQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJJTlBVVCIpOw0KICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInR5cGUiLCB0eXBlKTsNCiAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJuYW1lIiwgbmFtZSk7DQogICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgidmFsdWUiLCB2YWx1ZSk7DQogICAgICAgIHJldHVybiBpbnB1dDsNCiAgICB9DQogICAgc2hvdygpIHsNCiAgICAgICAgQ09MVU1OX1RPX1NPUlQgPSAtMTsNCiAgICAgICAgLy8gQWx0ZW4gSW5oYWx0IGzDtnNjaGVuDQogICAgICAgIGxldCBkb2MgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCh0aGlzLkRvY3VtZW50SUQpOw0KICAgICAgICBkb2MuaW5uZXJIVE1MID0gIiI7DQogICAgICAgIHNob3dQcmV2aWV3KGZhbHNlKTsNCiAgICAgICAgLy8gw5xiZXJzY2hyaWZ0DQogICAgICAgIGxldCBoZWFkbGluZSA9IG1lbnVJdGVtc1t0aGlzLm1lbnVJRF0uaGVhZGxpbmU7DQogICAgICAgIGxldCBtZW51S2V5ID0gbWVudUl0ZW1zW3RoaXMubWVudUlEXS5tZW51S2V5Ow0KICAgICAgICBsZXQgaCA9IHRoaXMuY3JlYXRlSGVhZGxpbmUoaGVhZGxpbmUpOw0KICAgICAgICBkb2MuYXBwZW5kQ2hpbGQoaCk7DQogICAgICAgIGxldCBociA9IHRoaXMuY3JlYXRlSFIoKTsNCiAgICAgICAgZG9jLmFwcGVuZENoaWxkKGhyKTsNCiAgICAgICAgLy8gSW50ZXJha3Rpb24NCiAgICAgICAgbGV0IGRpdiA9IHRoaXMuY3JlYXRlSW50ZXJhY3Rpb24oKTsNCiAgICAgICAgZG9jLmFwcGVuZENoaWxkKGRpdik7DQogICAgICAgIGxldCBpbnRlcmFjdGlvbiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHRoaXMuaW50ZXJhY3Rpb25JRCk7DQogICAgICAgIHN3aXRjaCAobWVudUtleSkgew0KICAgICAgICAgICAgY2FzZSAicGxheWxpc3QiOg0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IHRoaXMuY3JlYXRlSW5wdXQoImJ1dHRvbiIsIG1lbnVLZXksICJ7ey5idXR0b24ubmV3fX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoImlkIiwgIi0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJwbGF5bGlzdCIpJyk7DQogICAgICAgICAgICAgICAgaW50ZXJhY3Rpb24uYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiZmlsdGVyIjoNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSB0aGlzLmNyZWF0ZUlucHV0KCJidXR0b24iLCBtZW51S2V5LCAie3suYnV0dG9uLm5ld319Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJpZCIsIC0xKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJmaWx0ZXIiLCB0aGlzKScpOw0KICAgICAgICAgICAgICAgIGludGVyYWN0aW9uLmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInhtbHR2IjoNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSB0aGlzLmNyZWF0ZUlucHV0KCJidXR0b24iLCBtZW51S2V5LCAie3suYnV0dG9uLm5ld319Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJpZCIsICJ4bWx0diIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoInhtbHR2IiknKTsNCiAgICAgICAgICAgICAgICBpbnRlcmFjdGlvbi5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ1c2VycyI6DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gdGhpcy5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgbWVudUtleSwgInt7LmJ1dHRvbi5uZXd9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgiaWQiLCAidXNlcnMiKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJ1c2VycyIpJyk7DQogICAgICAgICAgICAgICAgaW50ZXJhY3Rpb24uYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAibWFwcGluZyI6DQogICAgICAgICAgICAgICAgc2hvd0VsZW1lbnQoImxvYWRpbmciLCB0cnVlKTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSB0aGlzLmNyZWF0ZUlucHV0KCJidXR0b24iLCBtZW51S2V5LCAie3suYnV0dG9uLnNhdmV9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBzYXZlUG9wdXBEYXRhKCJtYXBwaW5nIiwgIiIsICIiKScpOw0KICAgICAgICAgICAgICAgIGludGVyYWN0aW9uLmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSB0aGlzLmNyZWF0ZUlucHV0KCJidXR0b24iLCBtZW51S2V5LCAie3suYnV0dG9uLmJ1bGtFZGl0fX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogYnVsa0VkaXQoKScpOw0KICAgICAgICAgICAgICAgIGludGVyYWN0aW9uLmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSB0aGlzLmNyZWF0ZUlucHV0KCJzZWFyY2giLCAic2VhcmNoIiwgIiIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgiaWQiLCAic2VhcmNoTWFwcGluZyIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3suYnV0dG9uLnNlYXJjaH19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuY2xhc3NOYW1lID0gInNlYXJjaCI7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICdqYXZhc2NyaXB0OiBzZWFyY2hJbk1hcHBpbmcoKScpOw0KICAgICAgICAgICAgICAgIGludGVyYWN0aW9uLmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInNldHRpbmdzIjoNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSB0aGlzLmNyZWF0ZUlucHV0KCJidXR0b24iLCBtZW51S2V5LCAie3suYnV0dG9uLnNhdmV9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBzYXZlU2V0dGluZ3MoKTsnKTsNCiAgICAgICAgICAgICAgICBpbnRlcmFjdGlvbi5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gdGhpcy5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgbWVudUtleSwgInt7LmJ1dHRvbi5iYWNrdXB9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBiYWNrdXAoKTsnKTsNCiAgICAgICAgICAgICAgICBpbnRlcmFjdGlvbi5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gdGhpcy5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgbWVudUtleSwgInt7LmJ1dHRvbi5yZXN0b3JlfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogcmVzdG9yZSgpOycpOw0KICAgICAgICAgICAgICAgIGludGVyYWN0aW9uLmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICB2YXIgd3JhcHBlciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIkRJViIpOw0KICAgICAgICAgICAgICAgIHdyYXBwZXIuc2V0QXR0cmlidXRlKCJpZCIsICJib3gtd3JhcHBlciIpOw0KICAgICAgICAgICAgICAgIGRvYy5hcHBlbmRDaGlsZCh3cmFwcGVyKTsNCiAgICAgICAgICAgICAgICB0aGlzLkRpdklEID0gImNvbnRlbnRfc2V0dGluZ3MiOw0KICAgICAgICAgICAgICAgIHZhciBzZXR0aW5ncyA9IHRoaXMuY3JlYXRlRElWKCk7DQogICAgICAgICAgICAgICAgd3JhcHBlci5hcHBlbmRDaGlsZChzZXR0aW5ncyk7DQogICAgICAgICAgICAgICAgc2hvd1NldHRpbmdzKCk7DQogICAgICAgICAgICAgICAgcmV0dXJuOw0KICAgICAgICAgICAgY2FzZSAibG9nIjoNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSB0aGlzLmNyZWF0ZUlucHV0KCJidXR0b24iLCBtZW51S2V5LCAie3suYnV0dG9uLnJlc2V0TG9nc319Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IHJlc2V0TG9ncygpOycpOw0KICAgICAgICAgICAgICAgIGludGVyYWN0aW9uLmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICB2YXIgd3JhcHBlciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIkRJViIpOw0KICAgICAgICAgICAgICAgIHdyYXBwZXIuc2V0QXR0cmlidXRlKCJpZCIsICJib3gtd3JhcHBlciIpOw0KICAgICAgICAgICAgICAgIGRvYy5hcHBlbmRDaGlsZCh3cmFwcGVyKTsNCiAgICAgICAgICAgICAgICB0aGlzLkRpdklEID0gImNvbnRlbnRfbG9nIjsNCiAgICAgICAgICAgICAgICB2YXIgbG9ncyA9IHRoaXMuY3JlYXRlRElWKCk7DQogICAgICAgICAgICAgICAgd3JhcHBlci5hcHBlbmRDaGlsZChsb2dzKTsNCiAgICAgICAgICAgICAgICBzaG93TG9ncyh0cnVlKTsNCiAgICAgICAgICAgICAgICByZXR1cm47DQogICAgICAgICAgICBjYXNlICJsb2dvdXQiOg0KICAgICAgICAgICAgICAgIGxvY2F0aW9uLnJlbG9hZCgpOw0KICAgICAgICAgICAgICAgIGRvY3VtZW50LmNvb2tpZSA9ICJUb2tlbj0gOyBleHBpcmVzID0gVGh1LCAwMSBKYW4gMTk3MCAwMDowMDowMCBHTVQiOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZygiU2hvdyBjb250ZW50IChtZW51S2V5KToiLCBtZW51S2V5KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgfQ0KICAgICAgICAvLyBUYWJlbGxlIGVyc3RlbGxlbiAoZmFsbHMgYmVuw7Z0aWd0KQ0KICAgICAgICB2YXIgdGFibGVIZWFkZXIgPSBtZW51SXRlbXNbdGhpcy5tZW51SURdLnRhYmxlSGVhZGVyOw0KICAgICAgICBpZiAodGFibGVIZWFkZXIubGVuZ3RoID4gMCkgew0KICAgICAgICAgICAgdmFyIHdyYXBwZXIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJESVYiKTsNCiAgICAgICAgICAgIGRvYy5hcHBlbmRDaGlsZCh3cmFwcGVyKTsNCiAgICAgICAgICAgIHdyYXBwZXIuc2V0QXR0cmlidXRlKCJpZCIsICJib3gtd3JhcHBlciIpOw0KICAgICAgICAgICAgdmFyIHRhYmxlID0gdGhpcy5jcmVhdGVUQUJMRSgpOw0KICAgICAgICAgICAgd3JhcHBlci5hcHBlbmRDaGlsZCh0YWJsZSk7DQogICAgICAgICAgICB2YXIgaGVhZGVyID0gdGhpcy5jcmVhdGVUYWJsZVJvdygpOw0KICAgICAgICAgICAgdGFibGUuYXBwZW5kQ2hpbGQoaGVhZGVyKTsNCiAgICAgICAgICAgIC8vIEtvcGZ6ZWlsZSBkZXIgVGFibGxlDQogICAgICAgICAgICB0YWJsZUhlYWRlci5mb3JFYWNoKGVsZW1lbnQgPT4gew0KICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZWxlbWVudDsNCiAgICAgICAgICAgICAgICBpZiAoZWxlbWVudCA9PSAiQlVMSyIpIHsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiQlVMS19IRUFEIjsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGZhbHNlOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBpZiAobWVudUtleSA9PSAibWFwcGluZyIpIHsNCiAgICAgICAgICAgICAgICAgICAgaWYgKGVsZW1lbnQgPT0gInt7Lm1hcHBpbmcudGFibGUuY2hOb319Iikgew0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5vbmNsaWNrID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwub25jbGlja0Z1bmt0aW9uID0gImphdmFzY3JpcHQ6IHNvcnRUYWJsZSgxKTsiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC50ZENsYXNzTmFtZSA9ICJzb3J0VGhpcyI7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgaWYgKGVsZW1lbnQgPT0gInt7Lm1hcHBpbmcudGFibGUuY2hhbm5lbE5hbWV9fSIpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwub25jbGljayA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLm9uY2xpY2tGdW5rdGlvbiA9ICJqYXZhc2NyaXB0OiBzb3J0VGFibGUoMyk7IjsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBpZiAoZWxlbWVudCA9PSAie3subWFwcGluZy50YWJsZS5wbGF5bGlzdH19Iikgew0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5vbmNsaWNrID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwub25jbGlja0Z1bmt0aW9uID0gImphdmFzY3JpcHQ6IHNvcnRUYWJsZSg0KTsiOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIGlmIChlbGVtZW50ID09ICJ7ey5tYXBwaW5nLnRhYmxlLmdyb3VwVGl0bGV9fSIpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwub25jbGljayA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLm9uY2xpY2tGdW5rdGlvbiA9ICJqYXZhc2NyaXB0OiBzb3J0VGFibGUoNSk7IjsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBoZWFkZXIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgfSk7DQogICAgICAgICAgICB0YWJsZS5hcHBlbmRDaGlsZChoZWFkZXIpOw0KICAgICAgICAgICAgLy8gSW5oYWx0IGRlciBUYWJlbGxlDQogICAgICAgICAgICB2YXIgcm93cyA9IHRoaXMuY3JlYXRlVGFibGVDb250ZW50KG1lbnVLZXkpOw0KICAgICAgICAgICAgcm93cy5mb3JFYWNoKHRyID0+IHsNCiAgICAgICAgICAgICAgICB0YWJsZS5hcHBlbmRDaGlsZCh0cik7DQogICAgICAgICAgICB9KTsNCiAgICAgICAgfQ0KICAgICAgICBzd2l0Y2ggKG1lbnVLZXkpIHsNCiAgICAgICAgICAgIGNhc2UgIm1hcHBpbmciOg0KICAgICAgICAgICAgICAgIHNvcnRUYWJsZSgxKTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImZpbHRlciI6DQogICAgICAgICAgICAgICAgc2hvd1ByZXZpZXcodHJ1ZSk7DQogICAgICAgICAgICAgICAgc29ydFRhYmxlKDApOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgICAgICBDT0xVTU5fVE9fU09SVCA9IC0xOw0KICAgICAgICAgICAgICAgIHNvcnRUYWJsZSgwKTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgfQ0KICAgICAgICBzaG93RWxlbWVudCgibG9hZGluZyIsIGZhbHNlKTsNCiAgICB9DQp9DQpmdW5jdGlvbiBQYWdlUmVhZHkoKSB7DQogICAgbGV0IHNlcnZlciA9IG5ldyBTZXJ2ZXIoImdldFNlcnZlckNvbmZpZyIpOw0KICAgIHNlcnZlci5yZXF1ZXN0KHt9KTsNCiAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigicmVzaXplIiwgZnVuY3Rpb24gKCkgew0KICAgICAgICBjYWxjdWxhdGVXcmFwcGVySGVpZ2h0KCk7DQogICAgfSwgdHJ1ZSk7DQogICAgc2V0SW50ZXJ2YWwoZnVuY3Rpb24gKCkgew0KICAgICAgICB1cGRhdGVMb2coKTsNCiAgICB9LCAxMDAwMCk7DQogICAgcmV0dXJuOw0KfQ0KZnVuY3Rpb24gY3JlYXRlTGF5b3V0KCkgew0KICAgIC8vIENsaWVudCBJbmZvDQogICAgbGV0IG9iaiA9IFNFUlZFUlsiY2xpZW50SW5mbyJdOw0KICAgIGxldCBrZXlzID0gZ2V0T2JqS2V5cyhvYmopOw0KICAgIGZvciAodmFyIGkgPSAwOyBpIDwga2V5cy5sZW5ndGg7IGkrKykgew0KICAgICAgICBpZiAoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoa2V5c1tpXSkpIHsNCiAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGtleXNbaV0pLmlubmVySFRNTCA9IG9ialtrZXlzW2ldXTsNCiAgICAgICAgfQ0KICAgIH0NCiAgICBpZiAoIWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJtYWluLW1lbnUiKSkgew0KICAgICAgICByZXR1cm47DQogICAgfQ0KICAgIC8vIE1lbsO8IGVyc3RlbGxlbg0KICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJtYWluLW1lbnUiKS5pbm5lckhUTUwgPSAiIjsNCiAgICBmb3IgKGxldCBpID0gMDsgaSA8IG1lbnVJdGVtcy5sZW5ndGg7IGkrKykgew0KICAgICAgICBtZW51SXRlbXNbaV0uaWQgPSBpOw0KICAgICAgICBzd2l0Y2ggKG1lbnVJdGVtc1tpXVsibWVudUtleSJdKSB7DQogICAgICAgICAgICBjYXNlICJ1c2VycyI6DQogICAgICAgICAgICBjYXNlICJsb2dvdXQiOg0KICAgICAgICAgICAgICAgIGlmIChTRVJWRVJbInNldHRpbmdzIl1bImF1dGhlbnRpY2F0aW9uLndlYiJdID09IHRydWUpIHsNCiAgICAgICAgICAgICAgICAgICAgbWVudUl0ZW1zW2ldLmNyZWF0ZUl0ZW0oKTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJtYXBwaW5nIjoNCiAgICAgICAgICAgIGNhc2UgInhtbHR2IjoNCiAgICAgICAgICAgICAgICBpZiAoU0VSVkVSWyJjbGllbnRJbmZvIl1bImVwZ1NvdXJjZSJdID09ICJYRVBHIikgew0KICAgICAgICAgICAgICAgICAgICBtZW51SXRlbXNbaV0uY3JlYXRlSXRlbSgpOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICAgICAgbWVudUl0ZW1zW2ldLmNyZWF0ZUl0ZW0oKTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgfQ0KICAgIH0NCiAgICByZXR1cm47DQp9DQpmdW5jdGlvbiBvcGVuVGhpc01lbnUoZWxlbWVudCkgew0KICAgIGxldCBpZCA9IGVsZW1lbnQuaWQ7DQogICAgbGV0IGNvbnRlbnQgPSBuZXcgU2hvd0NvbnRlbnQoaWQpOw0KICAgIGNvbnRlbnQuc2hvdygpOw0KICAgIGNhbGN1bGF0ZVdyYXBwZXJIZWlnaHQoKTsNCiAgICByZXR1cm47DQp9DQpjbGFzcyBQb3B1cFdpbmRvdyB7DQogICAgY29uc3RydWN0b3IoKSB7DQogICAgICAgIHRoaXMuRG9jdW1lbnRJRCA9ICJwb3B1cC1jdXN0b20iOw0KICAgICAgICB0aGlzLkludGVyYWN0aW9uSUQgPSAiaW50ZXJhY3Rpb24iOw0KICAgICAgICB0aGlzLmRvYyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHRoaXMuRG9jdW1lbnRJRCk7DQogICAgfQ0KICAgIGNyZWF0ZVRpdGxlKHRpdGxlKSB7DQogICAgICAgIGxldCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgIHRkLmNsYXNzTmFtZSA9ICJsZWZ0IjsNCiAgICAgICAgdGQuaW5uZXJIVE1MID0gdGl0bGUgKyAiOiI7DQogICAgICAgIHJldHVybiB0ZDsNCiAgICB9DQogICAgY3JlYXRlQ29udGVudChlbGVtZW50KSB7DQogICAgICAgIGxldCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgIHRkLmFwcGVuZENoaWxkKGVsZW1lbnQpOw0KICAgICAgICByZXR1cm4gdGQ7DQogICAgfQ0KICAgIGNyZWF0ZUludGVyYWN0aW9uKCkgew0KICAgICAgICBsZXQgZGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7DQogICAgICAgIGRpdi5zZXRBdHRyaWJ1dGUoImlkIiwgInBvcHVwLWludGVyYWN0aW9uIik7DQogICAgICAgIGRpdi5jbGFzc05hbWUgPSAiaW50ZXJhY3Rpb24iOw0KICAgICAgICB0aGlzLmRvYy5hcHBlbmRDaGlsZChkaXYpOw0KICAgIH0NCn0NCmNsYXNzIFBvcHVwQ29udGVudCBleHRlbmRzIFBvcHVwV2luZG93IHsNCiAgICBjb25zdHJ1Y3RvcigpIHsNCiAgICAgICAgc3VwZXIoLi4uYXJndW1lbnRzKTsNCiAgICAgICAgdGhpcy50YWJsZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlRBQkxFIik7DQogICAgfQ0KICAgIGNyZWF0ZUhlYWRsaW5lKGhlYWRsaW5lKSB7DQogICAgICAgIHRoaXMuZG9jLmlubmVySFRNTCA9ICIiOw0KICAgICAgICB2YXIgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIkgzIik7DQogICAgICAgIGVsZW1lbnQuaW5uZXJIVE1MID0gaGVhZGxpbmUudG9VcHBlckNhc2UoKTsNCiAgICAgICAgdGhpcy5kb2MuYXBwZW5kQ2hpbGQoZWxlbWVudCk7DQogICAgICAgIC8vIFRhYmVsbGUgZXJzdGVsbGVuDQogICAgICAgIHRoaXMudGFibGUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJUQUJMRSIpOw0KICAgICAgICB0aGlzLmRvYy5hcHBlbmRDaGlsZCh0aGlzLnRhYmxlKTsNCiAgICB9DQogICAgYXBwZW5kUm93KHRpdGxlLCBlbGVtZW50KSB7DQogICAgICAgIGxldCB0ciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlRSIik7DQogICAgICAgIC8vIEJlemVpY2hudW5nDQogICAgICAgIGlmICh0aXRsZS5sZW5ndGggIT0gMCkgew0KICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQodGhpcy5jcmVhdGVUaXRsZSh0aXRsZSkpOw0KICAgICAgICB9DQogICAgICAgIC8vIENvbnRlbnQNCiAgICAgICAgdHIuYXBwZW5kQ2hpbGQodGhpcy5jcmVhdGVDb250ZW50KGVsZW1lbnQpKTsNCiAgICAgICAgdGhpcy50YWJsZS5hcHBlbmRDaGlsZCh0cik7DQogICAgfQ0KICAgIGNyZWF0ZUlucHV0KHR5cGUsIG5hbWUsIHZhbHVlKSB7DQogICAgICAgIGxldCBpbnB1dCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIklOUFVUIik7DQogICAgICAgIGlmICh2YWx1ZSA9PSB1bmRlZmluZWQpIHsNCiAgICAgICAgICAgIHZhbHVlID0gIiI7DQogICAgICAgIH0NCiAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJ0eXBlIiwgdHlwZSk7DQogICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgibmFtZSIsIG5hbWUpOw0KICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInZhbHVlIiwgdmFsdWUpOw0KICAgICAgICByZXR1cm4gaW5wdXQ7DQogICAgfQ0KICAgIGNyZWF0ZUNoZWNrYm94KG5hbWUpIHsNCiAgICAgICAgbGV0IGlucHV0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiSU5QVVQiKTsNCiAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJ0eXBlIiwgImNoZWNrYm94Iik7DQogICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgibmFtZSIsIG5hbWUpOw0KICAgICAgICByZXR1cm4gaW5wdXQ7DQogICAgfQ0KICAgIC8vIENyZWF0ZXMgYSBzZWxlY3Rpb24gb2YgbXVsdGlwbGUgb3B0aW9ucyB2YWx1ZXMgd2l0aCB0ZXh0IGRlc2NyaXB0aW9ucw0KICAgIGNyZWF0ZVNlbGVjdCh0ZXh0LCB2YWx1ZXMsIHNldCwgZGJLZXkpIHsNCiAgICAgICAgbGV0IHNlbGVjdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlNFTEVDVCIpOw0KICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJuYW1lIiwgZGJLZXkpOw0KICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRleHQubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgICAgIGxldCBvcHRpb24gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJPUFRJT04iKTsNCiAgICAgICAgICAgIG9wdGlvbi5zZXRBdHRyaWJ1dGUoInZhbHVlIiwgdmFsdWVzW2ldKTsNCiAgICAgICAgICAgIG9wdGlvbi5pbm5lclRleHQgPSB0ZXh0W2ldOw0KICAgICAgICAgICAgc2VsZWN0LmFwcGVuZENoaWxkKG9wdGlvbik7DQogICAgICAgIH0NCiAgICAgICAgaWYgKHNldCAhPSAiIikgew0KICAgICAgICAgICAgc2VsZWN0LnZhbHVlID0gc2V0Ow0KICAgICAgICB9DQogICAgICAgIGlmIChzZXQgPT0gdW5kZWZpbmVkKSB7DQogICAgICAgICAgICBzZWxlY3QudmFsdWUgPSB2YWx1ZXNbMF07DQogICAgICAgIH0NCiAgICAgICAgcmV0dXJuIHNlbGVjdDsNCiAgICB9DQogICAgc2VsZWN0T3B0aW9uKHNlbGVjdCwgdmFsdWUpIHsNCiAgICAgICAgLy9zZWxlY3Quc2VsZWN0ZWRPcHRpb25zID0gdmFsdWUNCiAgICAgICAgbGV0IHMgPSBzZWxlY3Q7DQogICAgICAgIHMub3B0aW9uc1tzLnNlbGVjdGVkSW5kZXhdLnZhbHVlID0gdmFsdWU7DQogICAgICAgIHJldHVybiBzZWxlY3Q7DQogICAgfQ0KICAgIGRlc2NyaXB0aW9uKHZhbHVlKSB7DQogICAgICAgIGxldCB0ciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlRSIik7DQogICAgICAgIGxldCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgIGxldCBzcGFuID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiUFJFIik7DQogICAgICAgIHNwYW4uaW5uZXJIVE1MID0gdmFsdWU7DQogICAgICAgIHRyLmFwcGVuZENoaWxkKHRkKTsNCiAgICAgICAgdHIuYXBwZW5kQ2hpbGQodGhpcy5jcmVhdGVDb250ZW50KHNwYW4pKTsNCiAgICAgICAgdGhpcy50YWJsZS5hcHBlbmRDaGlsZCh0cik7DQogICAgfQ0KICAgIC8vIEludGVyYWt0aW9uDQogICAgYWRkSW50ZXJhY3Rpb24oZWxlbWVudCkgew0KICAgICAgICBsZXQgaW50ZXJhY3Rpb24gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicG9wdXAtaW50ZXJhY3Rpb24iKTsNCiAgICAgICAgaW50ZXJhY3Rpb24uYXBwZW5kQ2hpbGQoZWxlbWVudCk7DQogICAgfQ0KfQ0KZnVuY3Rpb24gb3BlblBvcFVwKGRhdGFUeXBlLCBlbGVtZW50KSB7DQogICAgbGV0IGRhdGEgPSB7fTsNCiAgICBsZXQgaWQ7DQogICAgc3dpdGNoIChlbGVtZW50KSB7DQogICAgICAgIGNhc2UgdW5kZWZpbmVkOg0KICAgICAgICAgICAgc3dpdGNoIChkYXRhVHlwZSkgew0KICAgICAgICAgICAgICAgIGNhc2UgImdyb3VwLXRpdGxlIjoNCiAgICAgICAgICAgICAgICAgICAgaWYgKGlkID09IHVuZGVmaW5lZCkgew0KICAgICAgICAgICAgICAgICAgICAgICAgaWQgPSAtMTsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBkYXRhID0gZ2V0TG9jYWxEYXRhKCJmaWx0ZXIiLCBpZCk7DQogICAgICAgICAgICAgICAgICAgIGRhdGFbInR5cGUiXSA9ICJncm91cC10aXRsZSI7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgImN1c3RvbS1maWx0ZXIiOg0KICAgICAgICAgICAgICAgICAgICBpZiAoaWQgPT0gdW5kZWZpbmVkKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBpZCA9IC0xOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIGRhdGEgPSBnZXRMb2NhbERhdGEoImZpbHRlciIsIGlkKTsNCiAgICAgICAgICAgICAgICAgICAgZGF0YVsidHlwZSJdID0gImN1c3RvbS1maWx0ZXIiOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBkZWZhdWx0Og0KICAgICAgICAgICAgICAgICAgICBkYXRhWyJpZC5wcm92aWRlciJdID0gIi0iOw0KICAgICAgICAgICAgICAgICAgICBkYXRhWyJ0eXBlIl0gPSBkYXRhVHlwZTsNCiAgICAgICAgICAgICAgICAgICAgaWQgPSAiLSI7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICBpZCA9IGVsZW1lbnQuaWQ7DQogICAgICAgICAgICBkYXRhID0gZ2V0TG9jYWxEYXRhKGRhdGFUeXBlLCBpZCk7DQogICAgICAgICAgICBicmVhazsNCiAgICB9DQogICAgbGV0IGNvbnRlbnQgPSBuZXcgUG9wdXBDb250ZW50KCk7DQogICAgc3dpdGNoIChkYXRhVHlwZSkgew0KICAgICAgICBjYXNlICJwbGF5bGlzdCI6DQogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUhlYWRsaW5lKCJ7ey5wbGF5bGlzdC5wbGF5bGlzdFR5cGUudGl0bGV9fSIpOw0KICAgICAgICAgICAgLy8gVHlwZQ0KICAgICAgICAgICAgdmFyIHRleHQgPSBbIk0zVSIsICJIREhvbWVSdW4iXTsNCiAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBbImphdmFzY3JpcHQ6IG9wZW5Qb3BVcCgnbTN1JykiLCAiamF2YXNjcmlwdDogb3BlblBvcFVwKCdoZGhyJykiXTsNCiAgICAgICAgICAgIHZhciBzZWxlY3QgPSBjb250ZW50LmNyZWF0ZVNlbGVjdCh0ZXh0LCB2YWx1ZXMsICIiLCAidHlwZSIpOw0KICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgiaWQiLCAidHlwZSIpOw0KICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAnamF2YXNjcmlwdDogY2hhbmdlQnV0dG9uQWN0aW9uKHRoaXMsICJuZXh0IiwgIm9uY2xpY2siKScpOyAvLyBjaGFuZ2VCdXR0b25BY3Rpb24NCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5wbGF5bGlzdC50eXBlLnRpdGxlfX0iLCBzZWxlY3QpOw0KICAgICAgICAgICAgLy8gSW50ZXJha3Rpb24NCiAgICAgICAgICAgIGNvbnRlbnQuY3JlYXRlSW50ZXJhY3Rpb24oKTsNCiAgICAgICAgICAgIC8vIEFiYnJlY2hlbg0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImNhbmNlbCIsICJ7ey5idXR0b24uY2FuY2VsfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBzaG93RWxlbWVudCgicG9wdXAiLCBmYWxzZSk7Jyk7DQogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIC8vIFdlaXRlcg0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgIm5leHQiLCAie3suYnV0dG9uLm5leHR9fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgibTN1IiknKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgiaWQiLCAnbmV4dCcpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSAibTN1IjoNCiAgICAgICAgICAgIGNvbnRlbnQuY3JlYXRlSGVhZGxpbmUoZGF0YVR5cGUpOw0KICAgICAgICAgICAgLy8gTmFtZQ0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gIm5hbWUiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnBsYXlsaXN0Lm5hbWUucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnBsYXlsaXN0Lm5hbWUudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIEJlc2NocmVpYnVuZw0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gImRlc2NyaXB0aW9uIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5wbGF5bGlzdC5kZXNjcmlwdGlvbi5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sucGxheWxpc3QuZGVzY3JpcHRpb24udGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIFVSTA0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gImZpbGUuc291cmNlIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5wbGF5bGlzdC5maWxlTTNVLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5wbGF5bGlzdC5maWxlTTNVLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBUdW5lcg0KICAgICAgICAgICAgaWYgKFNFUlZFUlsic2V0dGluZ3MiXVsiYnVmZmVyIl0gIT0gIi0iKSB7DQogICAgICAgICAgICAgICAgdmFyIHRleHQgPSBbXTsNCiAgICAgICAgICAgICAgICB2YXIgdmFsdWVzID0gW107DQogICAgICAgICAgICAgICAgZm9yICh2YXIgaSA9IDE7IGkgPD0gMTAwOyBpKyspIHsNCiAgICAgICAgICAgICAgICAgICAgdGV4dC5wdXNoKGkudG9TdHJpbmcoKSk7DQogICAgICAgICAgICAgICAgICAgIHZhbHVlcy5wdXNoKGkudG9TdHJpbmcoKSk7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIHZhciBkYktleSA9ICJ0dW5lciI7DQogICAgICAgICAgICAgICAgdmFyIHNlbGVjdCA9IGNvbnRlbnQuY3JlYXRlU2VsZWN0KHRleHQsIHZhbHVlcywgZGF0YVtkYktleV0sIGRiS2V5KTsNCiAgICAgICAgICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJvbmZvY3VzIiwgImphdmFzY3JpcHQ6IHJldHVybjsiKTsNCiAgICAgICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sucGxheWxpc3QudHVuZXIudGl0bGV9fSIsIHNlbGVjdCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICB2YXIgZGJLZXkgPSAidHVuZXIiOw0KICAgICAgICAgICAgICAgIGlmIChkYXRhW2RiS2V5XSA9PSB1bmRlZmluZWQpIHsNCiAgICAgICAgICAgICAgICAgICAgZGF0YVtkYktleV0gPSAxOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInJlYWRvbmx5IiwgInRydWUiKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5jbGFzc05hbWUgPSAibm90QXZhaWxhYmxlIjsNCiAgICAgICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sucGxheWxpc3QudHVuZXIudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGNvbnRlbnQuZGVzY3JpcHRpb24oInt7LnBsYXlsaXN0LnR1bmVyLmRlc2NyaXB0aW9ufX0iKTsNCiAgICAgICAgICAgIC8vIEludGVyYWt0aW9uDQogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUludGVyYWN0aW9uKCk7DQogICAgICAgICAgICAvLyBMw7ZzY2hlbg0KICAgICAgICAgICAgaWYgKGRhdGFbImlkLnByb3ZpZGVyIl0gIT0gIi0iKSB7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImRlbGV0ZSIsICJ7ey5idXR0b24uZGVsZXRlfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5jbGFzc05hbWUgPSAiZGVsZXRlIjsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogc2F2ZVBvcHVwRGF0YSgibTN1IiwgIicgKyBpZCArICciLCB0cnVlLCAwKScpOw0KICAgICAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgZWxzZSB7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImJhY2siLCAie3suYnV0dG9uLmJhY2t9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoInBsYXlsaXN0IiknKTsNCiAgICAgICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIC8vIEFiYnJlY2hlbg0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImNhbmNlbCIsICJ7ey5idXR0b24uY2FuY2VsfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBzaG93RWxlbWVudCgicG9wdXAiLCBmYWxzZSk7Jyk7DQogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIC8vIEFrdHVhbGlzaWVyZW4NCiAgICAgICAgICAgIGlmIChkYXRhWyJpZC5wcm92aWRlciJdICE9ICItIikgew0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJ1cGRhdGUiLCAie3suYnV0dG9uLnVwZGF0ZX19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoIm0zdSIsICInICsgaWQgKyAnIiwgZmFsc2UsIDEpJyk7DQogICAgICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICAvLyBTcGVpY2hlcm4NCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJzYXZlIiwgInt7LmJ1dHRvbi5zYXZlfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBzYXZlUG9wdXBEYXRhKCJtM3UiLCAiJyArIGlkICsgJyIsIGZhbHNlLCAwKScpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSAiaGRociI6DQogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUhlYWRsaW5lKGRhdGFUeXBlKTsNCiAgICAgICAgICAgIC8vIE5hbWUNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJuYW1lIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5wbGF5bGlzdC5uYW1lLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5wbGF5bGlzdC5uYW1lLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBCZXNjaHJlaWJ1bmcNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJkZXNjcmlwdGlvbiI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3sucGxheWxpc3QuZGVzY3JpcHRpb24ucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnBsYXlsaXN0LmRlc2NyaXB0aW9uLnBsYWNlaG9sZGVyfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBVUkwNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJmaWxlLnNvdXJjZSI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3sucGxheWxpc3QuZmlsZUhESFIucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnBsYXlsaXN0LmZpbGVIREhSLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBUdW5lcg0KICAgICAgICAgICAgaWYgKFNFUlZFUlsic2V0dGluZ3MiXVsiYnVmZmVyIl0gIT0gIi0iKSB7DQogICAgICAgICAgICAgICAgdmFyIHRleHQgPSBbXTsNCiAgICAgICAgICAgICAgICB2YXIgdmFsdWVzID0gW107DQogICAgICAgICAgICAgICAgZm9yICh2YXIgaSA9IDE7IGkgPD0gMTAwOyBpKyspIHsNCiAgICAgICAgICAgICAgICAgICAgdGV4dC5wdXNoKGkudG9TdHJpbmcoKSk7DQogICAgICAgICAgICAgICAgICAgIHZhbHVlcy5wdXNoKGkudG9TdHJpbmcoKSk7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIHZhciBkYktleSA9ICJ0dW5lciI7DQogICAgICAgICAgICAgICAgdmFyIHNlbGVjdCA9IGNvbnRlbnQuY3JlYXRlU2VsZWN0KHRleHQsIHZhbHVlcywgZGF0YVtkYktleV0sIGRiS2V5KTsNCiAgICAgICAgICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJvbmZvY3VzIiwgImphdmFzY3JpcHQ6IHJldHVybjsiKTsNCiAgICAgICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sucGxheWxpc3QudHVuZXIudGl0bGV9fSIsIHNlbGVjdCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICB2YXIgZGJLZXkgPSAidHVuZXIiOw0KICAgICAgICAgICAgICAgIGlmIChkYXRhW2RiS2V5XSA9PSB1bmRlZmluZWQpIHsNCiAgICAgICAgICAgICAgICAgICAgZGF0YVtkYktleV0gPSAxOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInJlYWRvbmx5IiwgInRydWUiKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5jbGFzc05hbWUgPSAibm90QXZhaWxhYmxlIjsNCiAgICAgICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sucGxheWxpc3QudHVuZXIudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGNvbnRlbnQuZGVzY3JpcHRpb24oInt7LnBsYXlsaXN0LnR1bmVyLmRlc2NyaXB0aW9ufX0iKTsNCiAgICAgICAgICAgIC8vIEludGVyYWt0aW9uDQogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUludGVyYWN0aW9uKCk7DQogICAgICAgICAgICAvLyBMw7ZzY2hlbg0KICAgICAgICAgICAgaWYgKGRhdGFbImlkLnByb3ZpZGVyIl0gIT0gIi0iKSB7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImRlbGV0ZSIsICJ7ey5idXR0b24uZGVsZXRlfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogc2F2ZVBvcHVwRGF0YSgiaGRociIsICInICsgaWQgKyAnIiwgdHJ1ZSwgMCknKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5jbGFzc05hbWUgPSAiZGVsZXRlIjsNCiAgICAgICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJiYWNrIiwgInt7LmJ1dHRvbi5iYWNrfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJwbGF5bGlzdCIpJyk7DQogICAgICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICAvLyBBYmJyZWNoZW4NCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJjYW5jZWwiLCAie3suYnV0dG9uLmNhbmNlbH19Iik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogc2hvd0VsZW1lbnQoInBvcHVwIiwgZmFsc2UpOycpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICAvLyBBa3R1YWxpc2llcmVuDQogICAgICAgICAgICBpZiAoZGF0YVsiaWQucHJvdmlkZXIiXSAhPSAiLSIpIHsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAidXBkYXRlIiwgInt7LmJ1dHRvbi51cGRhdGV9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBzYXZlUG9wdXBEYXRhKCJoZGhyIiwgIicgKyBpZCArICciLCBmYWxzZSwgMSknKTsNCiAgICAgICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIC8vIFNwZWljaGVybg0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgInNhdmUiLCAie3suYnV0dG9uLnNhdmV9fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoImhkaHIiLCAiJyArIGlkICsgJyIsIGZhbHNlLCAwKScpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSAiZmlsdGVyIjoNCiAgICAgICAgICAgIGNvbnRlbnQuY3JlYXRlSGVhZGxpbmUoZGF0YVR5cGUpOw0KICAgICAgICAgICAgLy8gVHlwZQ0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gInR5cGUiOw0KICAgICAgICAgICAgdmFyIHRleHQgPSBbIk0zVTogIiArICJ7ey5maWx0ZXIudHlwZS5ncm91cFRpdGxlfX0iLCAieFRlVmU6ICIgKyAie3suZmlsdGVyLnR5cGUuY3VzdG9tRmlsdGVyfX0iXTsNCiAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBbImphdmFzY3JpcHQ6IG9wZW5Qb3BVcCgnZ3JvdXAtdGl0bGUnKSIsICJqYXZhc2NyaXB0OiBvcGVuUG9wVXAoJ2N1c3RvbS1maWx0ZXInKSJdOw0KICAgICAgICAgICAgdmFyIHNlbGVjdCA9IGNvbnRlbnQuY3JlYXRlU2VsZWN0KHRleHQsIHZhbHVlcywgImphdmFzY3JpcHQ6IG9wZW5Qb3BVcCgnZ3JvdXAtdGl0bGUnKSIsIGRiS2V5KTsNCiAgICAgICAgICAgIHNlbGVjdC5zZXRBdHRyaWJ1dGUoImlkIiwgaWQpOw0KICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAnamF2YXNjcmlwdDogY2hhbmdlQnV0dG9uQWN0aW9uKHRoaXMsICJuZXh0IiwgIm9uY2xpY2siKTsnKTsgLy8gY2hhbmdlQnV0dG9uQWN0aW9uDQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3suZmlsdGVyLnR5cGUudGl0bGV9fSIsIHNlbGVjdCk7DQogICAgICAgICAgICAvLyBJbnRlcmFrdGlvbg0KICAgICAgICAgICAgY29udGVudC5jcmVhdGVJbnRlcmFjdGlvbigpOw0KICAgICAgICAgICAgLy8gQWJicmVjaGVuDQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAiY2FuY2VsIiwgInt7LmJ1dHRvbi5jYW5jZWx9fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IHNob3dFbGVtZW50KCJwb3B1cCIsIGZhbHNlKTsnKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgLy8gV2VpdGVyDQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAibmV4dCIsICJ7ey5idXR0b24ubmV4dH19Iik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJncm91cC10aXRsZSIpJyk7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoImlkIiwgJ25leHQnKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGNhc2UgImN1c3RvbS1maWx0ZXIiOg0KICAgICAgICBjYXNlICJncm91cC10aXRsZSI6DQogICAgICAgICAgICBzd2l0Y2ggKGRhdGFUeXBlKSB7DQogICAgICAgICAgICAgICAgY2FzZSAiY3VzdG9tLWZpbHRlciI6DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuY3JlYXRlSGVhZGxpbmUoInt7LmZpbHRlci5jdXN0b219fSIgKyAiIEZpbHRlciIpOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBjYXNlICJncm91cC10aXRsZSI6DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuY3JlYXRlSGVhZGxpbmUoInt7LmZpbHRlci5ncm91cH19IiArICIgRmlsdGVyIik7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgLy8gTmFtZSAgICAgIA0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gIm5hbWUiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LmZpbHRlci5uYW1lLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5maWx0ZXIubmFtZS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgLy8gQmVzY2hyZWlidW5nDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAiZGVzY3JpcHRpb24iOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LmZpbHRlci5kZXNjcmlwdGlvbi5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3suZmlsdGVyLmRlc2NyaXB0aW9uLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBUeXANCiAgICAgICAgICAgIHZhciBkYktleSA9ICJ0eXBlIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImhpZGRlbiIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygiIiwgaW5wdXQpOw0KICAgICAgICAgICAgdmFyIGZpbHRlclR5cGUgPSBkYXRhW2RiS2V5XTsNCiAgICAgICAgICAgIHN3aXRjaCAoZmlsdGVyVHlwZSkgew0KICAgICAgICAgICAgICAgIGNhc2UgImN1c3RvbS1maWx0ZXIiOg0KICAgICAgICAgICAgICAgICAgICAvLyBHcm/Dny0gS2xlaW5zY2hyZWlidW5nIGJlYWNodGVuDQogICAgICAgICAgICAgICAgICAgIHZhciBkYktleSA9ICJjYXNlU2Vuc2l0aXZlIjsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChkYktleSk7DQogICAgICAgICAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhW2RiS2V5XTsNCiAgICAgICAgICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LmZpbHRlci5jYXNlU2Vuc2l0aXZlLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAgICAgICAgIC8vIEZpbHRlcnJlZ2VsIChCZW51dHplcmRlZmluaWVydCkNCiAgICAgICAgICAgICAgICAgICAgdmFyIGRiS2V5ID0gImZpbHRlciI7DQogICAgICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LmZpbHRlci5maWx0ZXJSdWxlLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LmZpbHRlci5maWx0ZXJSdWxlLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgImdyb3VwLXRpdGxlIjoNCiAgICAgICAgICAgICAgICAgICAgLy9hbGVydChkYktleSArICIgIiArIGZpbHRlclR5cGUpDQogICAgICAgICAgICAgICAgICAgIC8vIEZpbHRlciBiYXNpZXJlbmQgYXVmIGRlbiBHcnVwcGVuIGluIGRlciBNM1UNCiAgICAgICAgICAgICAgICAgICAgdmFyIGRiS2V5ID0gImZpbHRlciI7DQogICAgICAgICAgICAgICAgICAgIHZhciBncm91cHNNM1UgPSBnZXRMb2NhbERhdGEoIm0zdUdyb3VwcyIsICIiKTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHRleHQgPSBncm91cHNNM1VbInRleHQiXTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHZhbHVlcyA9IGdyb3Vwc00zVVsidmFsdWUiXTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHNlbGVjdCA9IGNvbnRlbnQuY3JlYXRlU2VsZWN0KHRleHQsIHZhbHVlcywgZGF0YVtkYktleV0sIGRiS2V5KTsNCiAgICAgICAgICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LmZpbHRlci5maWx0ZXJHcm91cC50aXRsZX19Iiwgc2VsZWN0KTsNCiAgICAgICAgICAgICAgICAgICAgY29udGVudC5kZXNjcmlwdGlvbigie3suZmlsdGVyLmZpbHRlckdyb3VwLmRlc2NyaXB0aW9ufX0iKTsNCiAgICAgICAgICAgICAgICAgICAgLy8gR3Jvw58tIEtsZWluc2NocmVpYnVuZyBiZWFjaHRlbg0KICAgICAgICAgICAgICAgICAgICB2YXIgZGJLZXkgPSAiY2FzZVNlbnNpdGl2ZSI7DQogICAgICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goZGJLZXkpOw0KICAgICAgICAgICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YVtkYktleV07DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5maWx0ZXIuY2FzZVNlbnNpdGl2ZS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgICAgICAgICB2YXIgZGJLZXkgPSAiaW5jbHVkZSI7DQogICAgICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LmZpbHRlci5pbmNsdWRlLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LmZpbHRlci5pbmNsdWRlLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuZGVzY3JpcHRpb24oInt7LmZpbHRlci5pbmNsdWRlLmRlc2NyaXB0aW9ufX0iKTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGRiS2V5ID0gImV4Y2x1ZGUiOw0KICAgICAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5maWx0ZXIuZXhjbHVkZS5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5maWx0ZXIuZXhjbHVkZS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgICAgICAgICBjb250ZW50LmRlc2NyaXB0aW9uKCJ7ey5maWx0ZXIuZXhjbHVkZS5kZXNjcmlwdGlvbn19Iik7DQogICAgICAgICAgICAgICAgICAgIC8vIFByZXNlcnZlIE0zVSBQbGF5bGlzdCBDaGFubmVsIE1hcHBpbmcNCiAgICAgICAgICAgICAgICAgICAgdmFyIGRiS2V5ID0gInByZXNlcnZlTWFwcGluZyI7DQogICAgICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goZGJLZXkpOw0KICAgICAgICAgICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YVtkYktleV07DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5maWx0ZXIucHJlc2VydmVNYXBwaW5nLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAgICAgICAgIC8vIFN0YXJ0aW5nIENoYW5uZWwgTnVtYmVyIE1hcHBpbmcNCiAgICAgICAgICAgICAgICAgICAgdmFyIGRiS2V5ID0gInN0YXJ0aW5nQ2hhbm5lbCI7DQogICAgICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LmZpbHRlci5zdGFydGluZ0NoYW5uZWwucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3suZmlsdGVyLnN0YXJ0aW5nQ2hhbm5lbC50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgICAgICAgICAvLyBGaWxsIE1pc3NpbmcgRVBHIERhdGENCiAgICAgICAgICAgICAgICAgICAgLy8gVGhlIGZvbGxvd2luZyBjb2RlIG9ubHkgd29ya3Mgd2hlbiB4VGVWZSBEdW1teSBhbHJlYWR5IGV4aXN0cw0KICAgICAgICAgICAgICAgICAgICAvLyB2YXIgZGJLZXk6c3RyaW5nID0gImRlZmF1bHRNaXNzaW5nRVBHIg0KICAgICAgICAgICAgICAgICAgICAvLyB2YXIgeG1sdHY6WE1MVFZGaWxlID0gbmV3IFhNTFRWRmlsZSgpDQogICAgICAgICAgICAgICAgICAgIC8vIHZhciBzZWxlY3QgPSB4bWx0di5nZXRQcm9ncmFtcygieFRlVmUgRHVtbXkiLCBkYXRhW2RiS2V5XSkNCiAgICAgICAgICAgICAgICAgICAgLy8gc2VsZWN0LnNldEF0dHJpYnV0ZSgibmFtZSIsIGRiS2V5KQ0KICAgICAgICAgICAgICAgICAgICAvLyBzZWxlY3Quc2V0QXR0cmlidXRlKCJpZCIsICJwb3B1cC1taXNzaW5nLWVwZyIpDQogICAgICAgICAgICAgICAgICAgIC8vIFRoZSB3b3JrYXJvdW5kIGlzIGN1cnJlbnRseSB0byBoYXJkIGNvZGUgdGhlIHhUZVZlIER1bW15IGRhdGENCiAgICAgICAgICAgICAgICAgICAgdmFyIGRiS2V5ID0gImRlZmF1bHRNaXNzaW5nRVBHIjsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGxpc3RPcHRpb25zID0geyAidGV4dCI6IFsiLSIsICIzMCBNaW51dGVzICgzMF9NaW51dGVzKSIsICI2MCBNaW51dGVzICg2MF9NaW51dGVzKSIsICI5MCBNaW51dGVzICg5MF9NaW51dGVzKSIsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgIjEyMCBNaW51dGVzICgxMjBfTWludXRlcykiLCAiMTgwIE1pbnV0ZXMgKDMwX01pbnV0ZXMpIiwgIjI0MCBNaW51dGVzICgzMF9NaW51dGVzKSIsICIzNjAgTWludXRlcyAoMzBfTWludXRlcykiXSwNCiAgICAgICAgICAgICAgICAgICAgICAgICJ2YWx1ZSI6IFsiLSIsICIzMF9NaW51dGVzIiwgIjYwX01pbnV0ZXMiLCAiOTBfTWludXRlcyIsICIxMjBfTWludXRlcyIsICIxODBfTWludXRlcyIsICIyNDBfTWludXRlcyIsICIzNjBfTWludXRlcyIsXSB9Ow0KICAgICAgICAgICAgICAgICAgICB2YXIgdGV4dCA9IGxpc3RPcHRpb25zWyJ0ZXh0Il07DQogICAgICAgICAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBsaXN0T3B0aW9uc1sidmFsdWUiXTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHNlbGVjdCA9IGNvbnRlbnQuY3JlYXRlU2VsZWN0KHRleHQsIHZhbHVlcywgZGF0YVtkYktleV0sIGRiS2V5KTsNCiAgICAgICAgICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LmZpbHRlci5kZWZhdWx0TWlzc2luZ0VQRy50aXRsZX19Iiwgc2VsZWN0KTsNCiAgICAgICAgICAgICAgICAgICAgY29udGVudC5kZXNjcmlwdGlvbigie3suZmlsdGVyLmRlZmF1bHRNaXNzaW5nRVBHLmRlc2NyaXB0aW9ufX0iKTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICB9DQogICAgICAgICAgICAvLyBJbnRlcmFrdGlvbg0KICAgICAgICAgICAgY29udGVudC5jcmVhdGVJbnRlcmFjdGlvbigpOw0KICAgICAgICAgICAgLy8gTMO2c2NoZW4NCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJkZWxldGUiLCAie3suYnV0dG9uLmRlbGV0ZX19Iik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogc2F2ZVBvcHVwRGF0YSgiZmlsdGVyIiwgIicgKyBpZCArICciLCB0cnVlLCAwKScpOw0KICAgICAgICAgICAgaW5wdXQuY2xhc3NOYW1lID0gImRlbGV0ZSI7DQogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIC8vIEFiYnJlY2hlbg0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImNhbmNlbCIsICJ7ey5idXR0b24uY2FuY2VsfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBzaG93RWxlbWVudCgicG9wdXAiLCBmYWxzZSk7Jyk7DQogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIC8vIFNwZWljaGVybg0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgInNhdmUiLCAie3suYnV0dG9uLnNhdmV9fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoImZpbHRlciIsICInICsgaWQgKyAnIiwgZmFsc2UsIDApJyk7DQogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJ4bWx0diI6DQogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUhlYWRsaW5lKGRhdGFUeXBlKTsNCiAgICAgICAgICAgIC8vIE5hbWUNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJuYW1lIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey54bWx0di5uYW1lLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey54bWx0di5uYW1lLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBCZXNjaHJlaWJ1bmcNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJkZXNjcmlwdGlvbiI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3sueG1sdHYuZGVzY3JpcHRpb24ucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnhtbHR2LmRlc2NyaXB0aW9uLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBVUkwNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJmaWxlLnNvdXJjZSI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3sueG1sdHYuZmlsZVhNTFRWLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey54bWx0di5maWxlWE1MVFYudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIEludGVyYWt0aW9uDQogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUludGVyYWN0aW9uKCk7DQogICAgICAgICAgICAvLyBMw7ZzY2hlbg0KICAgICAgICAgICAgaWYgKGRhdGFbImlkLnByb3ZpZGVyIl0gIT0gIi0iKSB7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImRlbGV0ZSIsICJ7ey5idXR0b24uZGVsZXRlfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogc2F2ZVBvcHVwRGF0YSgieG1sdHYiLCAiJyArIGlkICsgJyIsIHRydWUsIDApJyk7DQogICAgICAgICAgICAgICAgaW5wdXQuY2xhc3NOYW1lID0gImRlbGV0ZSI7DQogICAgICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICAvLyBBYmJyZWNoZW4NCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJjYW5jZWwiLCAie3suYnV0dG9uLmNhbmNlbH19Iik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogc2hvd0VsZW1lbnQoInBvcHVwIiwgZmFsc2UpOycpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICAvLyBBa3R1YWxpc2llcmVuDQogICAgICAgICAgICBpZiAoZGF0YVsiaWQucHJvdmlkZXIiXSAhPSAiLSIpIHsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAidXBkYXRlIiwgInt7LmJ1dHRvbi51cGRhdGV9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBzYXZlUG9wdXBEYXRhKCJ4bWx0diIsICInICsgaWQgKyAnIiwgZmFsc2UsIDEpJyk7DQogICAgICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICAvLyBTcGVpY2hlcm4NCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJzYXZlIiwgInt7LmJ1dHRvbi5zYXZlfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBzYXZlUG9wdXBEYXRhKCJ4bWx0diIsICInICsgaWQgKyAnIiwgZmFsc2UsIDApJyk7DQogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJ1c2VycyI6DQogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUhlYWRsaW5lKCJ7ey5tYWluTWVudS5pdGVtLnVzZXJzfX0iKTsNCiAgICAgICAgICAgIC8vIEJlbnV0emVybmFtZSANCiAgICAgICAgICAgIHZhciBkYktleSA9ICJ1c2VybmFtZSI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3sudXNlcnMudXNlcm5hbWUucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnVzZXJzLnVzZXJuYW1lLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBOZXVlcyBQYXNzd29ydCANCiAgICAgICAgICAgIHZhciBkYktleSA9ICJwYXNzd29yZCI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJwYXNzd29yZCIsIGRiS2V5LCAiIik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnVzZXJzLnBhc3N3b3JkLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey51c2Vycy5wYXNzd29yZC50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgLy8gQmVzdMOkdGlndW5nIA0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gImNvbmZpcm0iOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgicGFzc3dvcmQiLCBkYktleSwgIiIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey51c2Vycy5jb25maXJtLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey51c2Vycy5jb25maXJtLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBCZXJlY2h0aWd1bmcgV0VCDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAiYXV0aGVudGljYXRpb24ud2ViIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goZGJLZXkpOw0KICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGFbZGJLZXldOw0KICAgICAgICAgICAgaWYgKGRhdGFbImRlZmF1bHRVc2VyIl0gPT0gdHJ1ZSkgew0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICJqYXZhc2NyaXB0OiByZXR1cm4gZmFsc2UiKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey51c2Vycy53ZWIudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIEJlcmVjaHRpZ3VuZyBQTVMNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJhdXRoZW50aWNhdGlvbi5wbXMiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChkYktleSk7DQogICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YVtkYktleV07DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sudXNlcnMucG1zLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBCZXJlY2h0aWd1bmcgTTNVDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAiYXV0aGVudGljYXRpb24ubTN1IjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goZGJLZXkpOw0KICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGFbZGJLZXldOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnVzZXJzLm0zdS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgLy8gQmVyZWNodGlndW5nIFhNTA0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gImF1dGhlbnRpY2F0aW9uLnhtbCI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KGRiS2V5KTsNCiAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhW2RiS2V5XTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey51c2Vycy54bWwudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIEJlcmVjaHRpZ3VuZyBBUEkNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJhdXRoZW50aWNhdGlvbi5hcGkiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChkYktleSk7DQogICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YVtkYktleV07DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sudXNlcnMuYXBpLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBJbnRlcmFrdGlvbg0KICAgICAgICAgICAgY29udGVudC5jcmVhdGVJbnRlcmFjdGlvbigpOw0KICAgICAgICAgICAgLy8gTMO2c2NoZW4NCiAgICAgICAgICAgIGlmIChkYXRhWyJkZWZhdWx0VXNlciJdICE9IHRydWUgJiYgaWQgIT0gIi0iKSB7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImRlbGV0ZSIsICJ7ey5idXR0b24uZGVsZXRlfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5jbGFzc05hbWUgPSAiZGVsZXRlIjsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogc2F2ZVBvcHVwRGF0YSgiJyArIGRhdGFUeXBlICsgJyIsICInICsgaWQgKyAnIiwgdHJ1ZSwgMCknKTsNCiAgICAgICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIC8vIEFiYnJlY2hlbg0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImNhbmNlbCIsICJ7ey5idXR0b24uY2FuY2VsfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBzaG93RWxlbWVudCgicG9wdXAiLCBmYWxzZSk7Jyk7DQogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIC8vIFNwZWljaGVybg0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgInNhdmUiLCAie3suYnV0dG9uLnNhdmV9fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoIicgKyBkYXRhVHlwZSArICciLCAiJyArIGlkICsgJyIsICJmYWxzZSIpOycpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSAibWFwcGluZyI6DQogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUhlYWRsaW5lKCJ7ey5tYWluTWVudS5pdGVtLm1hcHBpbmd9fSIpOw0KICAgICAgICAgICAgLy8gQWt0aXYgDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAieC1hY3RpdmUiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChkYktleSk7DQogICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YVtkYktleV07DQogICAgICAgICAgICBpbnB1dC5pZCA9ICJhY3RpdmUiOw0KICAgICAgICAgICAgLy9pbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIikNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdG9nZ2xlQ2hhbm5lbFN0YXR1cygnIiArIGlkICsgIicsIHRoaXMpIik7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3subWFwcGluZy5hY3RpdmUudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIEthbmFsbmFtZSANCiAgICAgICAgICAgIHZhciBkYktleSA9ICJ4LW5hbWUiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICBpZiAoQlVMS19FRElUID09IHRydWUpIHsNCiAgICAgICAgICAgICAgICBpbnB1dC5zdHlsZS5ib3JkZXIgPSAic29saWQgMXB4IHJlZCI7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJyZWFkb25seSIsICJ0cnVlIik7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3subWFwcGluZy5jaGFubmVsTmFtZS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgY29udGVudC5kZXNjcmlwdGlvbihkYXRhWyJuYW1lIl0pOw0KICAgICAgICAgICAgLy8gQmVzY2hyZWlidW5nIA0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gIngtZGVzY3JpcHRpb24iOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7Lm1hcHBpbmcuZGVzY3JpcHRpb24ucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7Lm1hcHBpbmcuZGVzY3JpcHRpb24udGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIEFrdHVhbGlzaWVydW5nIGRlcyBLYW5hbG5hbWVucw0KICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoIl91dWlkLmtleSIpKSB7DQogICAgICAgICAgICAgICAgaWYgKGRhdGFbIl91dWlkLmtleSJdICE9ICIiKSB7DQogICAgICAgICAgICAgICAgICAgIHZhciBkYktleSA9ICJ4LXVwZGF0ZS1jaGFubmVsLW5hbWUiOw0KICAgICAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KGRiS2V5KTsNCiAgICAgICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YVtkYktleV07DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5tYXBwaW5nLnVwZGF0ZUNoYW5uZWxOYW1lLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgLy8gTG9nbyBVUkwgKEthbmFsKSANCiAgICAgICAgICAgIHZhciBkYktleSA9ICJ0dmctbG9nbyI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgiaWQiLCAiY2hhbm5lbC1pY29uIik7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3subWFwcGluZy5jaGFubmVsTG9nby50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgLy8gQWt0dWFsaXNpZXJ1bmcgZGVzIEthbmFsbG9nb3MNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJ4LXVwZGF0ZS1jaGFubmVsLWljb24iOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChkYktleSk7DQogICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YVtkYktleV07DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoImlkIiwgInVwZGF0ZS1pY29uIik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnOyBjaGFuZ2VDaGFubmVsTG9nbygnIiArIGlkICsgIicpOyIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7Lm1hcHBpbmcudXBkYXRlQ2hhbm5lbExvZ28udGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIEVyd2VpdGVybiBkZXIgRVBHIEthdGVnb3JpZQ0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gIngtY2F0ZWdvcnkiOw0KICAgICAgICAgICAgdmFyIHRleHQgPSBbIi0iLCAiS2lkcyAoRW1ieSBvbmx5KSIsICJOZXdzIiwgIk1vdmllIiwgIlNlcmllcyIsICJTcG9ydHMiXTsNCiAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBbIiIsICJLaWRzIiwgIk5ld3MiLCAiTW92aWUiLCAiU2VyaWVzIiwgIlNwb3J0cyJdOw0KICAgICAgICAgICAgdmFyIHNlbGVjdCA9IGNvbnRlbnQuY3JlYXRlU2VsZWN0KHRleHQsIHZhbHVlcywgZGF0YVtkYktleV0sIGRiS2V5KTsNCiAgICAgICAgICAgIHNlbGVjdC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3subWFwcGluZy5lcGdDYXRlZ29yeS50aXRsZX19Iiwgc2VsZWN0KTsNCiAgICAgICAgICAgIC8vIE0zVSBHcnVwcGVudGl0ZWwNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJ4LWdyb3VwLXRpdGxlIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7Lm1hcHBpbmcubTN1R3JvdXBUaXRsZS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgaWYgKGRhdGFbImdyb3VwLXRpdGxlIl0gIT0gdW5kZWZpbmVkKSB7DQogICAgICAgICAgICAgICAgY29udGVudC5kZXNjcmlwdGlvbihkYXRhWyJncm91cC10aXRsZSJdKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIC8vIFhNTFRWIERhdGVpDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAieC14bWx0di1maWxlIjsNCiAgICAgICAgICAgIHZhciB4bWxGaWxlID0gZGF0YVtkYktleV07DQogICAgICAgICAgICB2YXIgeG1sdHYgPSBuZXcgWE1MVFZGaWxlKCk7DQogICAgICAgICAgICB2YXIgc2VsZWN0ID0geG1sdHYuZ2V0RmlsZXMoZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgibmFtZSIsIGRiS2V5KTsNCiAgICAgICAgICAgIHNlbGVjdC5zZXRBdHRyaWJ1dGUoImlkIiwgInBvcHVwLXhtbHR2Iik7DQogICAgICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJzsgc2V0WG1sdHZDaGFubmVsKCciICsgaWQgKyAiJyx0aGlzKTsiKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5tYXBwaW5nLnhtbHR2RmlsZS50aXRsZX19Iiwgc2VsZWN0KTsNCiAgICAgICAgICAgIHZhciBmaWxlID0gZGF0YVtkYktleV07DQogICAgICAgICAgICAvLyBYTUxUViBNYXBwaW5nDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAieC1tYXBwaW5nIjsNCiAgICAgICAgICAgIHZhciB4bWx0diA9IG5ldyBYTUxUVkZpbGUoKTsNCiAgICAgICAgICAgIHZhciBzZWxlY3QgPSB4bWx0di5nZXRQcm9ncmFtcyhmaWxlLCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJuYW1lIiwgZGJLZXkpOw0KICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgiaWQiLCAicG9wdXAtbWFwcGluZyIpOw0KICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCc7IGNoZWNrWG1sdHZDaGFubmVsKCciICsgaWQgKyAiJyx0aGlzLCciICsgeG1sRmlsZSArICInKTsiKTsNCiAgICAgICAgICAgIHNvcnRTZWxlY3Qoc2VsZWN0KTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5tYXBwaW5nLnhtbHR2Q2hhbm5lbC50aXRsZX19Iiwgc2VsZWN0KTsNCiAgICAgICAgICAgIC8vIFRpbWVzaGlmdA0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gIngtdGltZXNoaWZ0IjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5tYXBwaW5nLnRpbWVzaGlmdC5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoImlkIiwgInRpbWVzaGlmdCIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7Lm1hcHBpbmcudGltZXNoaWZ0LnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBJbnRlcmFrdGlvbg0KICAgICAgICAgICAgY29udGVudC5jcmVhdGVJbnRlcmFjdGlvbigpOw0KICAgICAgICAgICAgLy8gTG9nbyBob2NobGFkZW4NCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJjYW5jZWwiLCAie3suYnV0dG9uLnVwbG9hZExvZ299fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IHVwbG9hZExvZ28oKTsnKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgLy8gQWJicmVjaGVuDQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAiY2FuY2VsIiwgInt7LmJ1dHRvbi5jYW5jZWx9fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IHNob3dFbGVtZW50KCJwb3B1cCIsIGZhbHNlKTsnKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgLy8gRmVydGlnDQogICAgICAgICAgICB2YXIgaWRzID0gW107DQogICAgICAgICAgICBpZHMgPSBnZXRBbGxTZWxlY3RlZENoYW5uZWxzKCk7DQogICAgICAgICAgICBpZiAoaWRzLmxlbmd0aCA9PSAwKSB7DQogICAgICAgICAgICAgICAgaWRzLnB1c2goaWQpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgInNhdmUiLCAie3suYnV0dG9uLmRvbmV9fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IGRvbmVQb3B1cERhdGEoIicgKyBkYXRhVHlwZSArICciLCAiJyArIGlkcyArICciLCAiZmFsc2UiKTsnKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICBicmVhazsNCiAgICB9DQogICAgc2hvd1BvcFVwRWxlbWVudCgncG9wdXAtY3VzdG9tJyk7DQp9DQpjbGFzcyBYTUxUVkZpbGUgew0KICAgIGdldEZpbGVzKHNldCkgew0KICAgICAgICBsZXQgZmlsZUlEcyA9IGdldE9iaktleXMoU0VSVkVSWyJ4ZXBnIl1bInhtbHR2TWFwIl0pOw0KICAgICAgICBsZXQgdmFsdWVzID0gbmV3IEFycmF5KCItIik7DQogICAgICAgIGxldCB0ZXh0ID0gbmV3IEFycmF5KCItIik7DQogICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgZmlsZUlEcy5sZW5ndGg7IGkrKykgew0KICAgICAgICAgICAgaWYgKGZpbGVJRHNbaV0gIT0gInhUZVZlIER1bW15Iikgew0KICAgICAgICAgICAgICAgIHZhbHVlcy5wdXNoKGdldFZhbHVlRnJvbVByb3ZpZGVyRmlsZShmaWxlSURzW2ldLCAieG1sdHYiLCAiZmlsZS54dGV2ZSIpKTsNCiAgICAgICAgICAgICAgICB0ZXh0LnB1c2goZ2V0VmFsdWVGcm9tUHJvdmlkZXJGaWxlKGZpbGVJRHNbaV0sICJ4bWx0diIsICJuYW1lIikpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgZWxzZSB7DQogICAgICAgICAgICAgICAgdmFsdWVzLnB1c2goZmlsZUlEc1tpXSk7DQogICAgICAgICAgICAgICAgdGV4dC5wdXNoKGZpbGVJRHNbaV0pOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQogICAgICAgIGxldCBzZWxlY3QgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJTRUxFQ1QiKTsNCiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0ZXh0Lmxlbmd0aDsgaSsrKSB7DQogICAgICAgICAgICB2YXIgb3B0aW9uID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiT1BUSU9OIik7DQogICAgICAgICAgICBvcHRpb24uc2V0QXR0cmlidXRlKCJ2YWx1ZSIsIHZhbHVlc1tpXSk7DQogICAgICAgICAgICBvcHRpb24uaW5uZXJUZXh0ID0gdGV4dFtpXTsNCiAgICAgICAgICAgIHNlbGVjdC5hcHBlbmRDaGlsZChvcHRpb24pOw0KICAgICAgICB9DQogICAgICAgIGlmIChzZXQgIT0gIiIpIHsNCiAgICAgICAgICAgIHNlbGVjdC52YWx1ZSA9IHNldDsNCiAgICAgICAgfQ0KICAgICAgICByZXR1cm4gc2VsZWN0Ow0KICAgIH0NCiAgICBnZXRQcm9ncmFtcyhmaWxlLCBzZXQpIHsNCiAgICAgICAgLy92YXIgZmlsZUlEczpzdHJpbmdbXSA9IGdldE9iaktleXMoU0VSVkVSWyJ4ZXBnIl1bInhtbHR2TWFwIl0pDQogICAgICAgIGxldCB2YWx1ZXMgPSBnZXRPYmpLZXlzKFNFUlZFUlsieGVwZyJdWyJ4bWx0dk1hcCJdW2ZpbGVdKTsNCiAgICAgICAgbGV0IHRleHQgPSBbXTsNCiAgICAgICAgbGV0IGRpc3BsYXlOYW1lOw0KICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHZhbHVlcy5sZW5ndGg7IGkrKykgew0KICAgICAgICAgICAgaWYgKFNFUlZFUlsieGVwZyJdWyJ4bWx0dk1hcCJdW2ZpbGVdW3ZhbHVlc1tpXV0uaGFzT3duUHJvcGVydHkoJ2Rpc3BsYXktbmFtZScpID09IHRydWUpIHsNCiAgICAgICAgICAgICAgICBkaXNwbGF5TmFtZSA9IFNFUlZFUlsieGVwZyJdWyJ4bWx0dk1hcCJdW2ZpbGVdW3ZhbHVlc1tpXV1bImRpc3BsYXktbmFtZSJdOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgZWxzZSB7DQogICAgICAgICAgICAgICAgZGlzcGxheU5hbWUgPSAiLSI7DQogICAgICAgICAgICB9DQogICAgICAgICAgICB0ZXh0W2ldID0gZGlzcGxheU5hbWUgKyAiICgiICsgdmFsdWVzW2ldICsgIikiOw0KICAgICAgICB9DQogICAgICAgIHRleHQudW5zaGlmdCgiLSIpOw0KICAgICAgICB2YWx1ZXMudW5zaGlmdCgiLSIpOw0KICAgICAgICBsZXQgc2VsZWN0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiU0VMRUNUIik7DQogICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGV4dC5sZW5ndGg7IGkrKykgew0KICAgICAgICAgICAgdmFyIG9wdGlvbiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIk9QVElPTiIpOw0KICAgICAgICAgICAgb3B0aW9uLnNldEF0dHJpYnV0ZSgidmFsdWUiLCB2YWx1ZXNbaV0pOw0KICAgICAgICAgICAgb3B0aW9uLmlubmVyVGV4dCA9IHRleHRbaV07DQogICAgICAgICAgICBzZWxlY3QuYXBwZW5kQ2hpbGQob3B0aW9uKTsNCiAgICAgICAgfQ0KICAgICAgICBpZiAoc2V0ICE9ICIiKSB7DQogICAgICAgICAgICBzZWxlY3QudmFsdWUgPSBzZXQ7DQogICAgICAgIH0NCiAgICAgICAgaWYgKHNlbGVjdC52YWx1ZSAhPSBzZXQpIHsNCiAgICAgICAgICAgIHNlbGVjdC52YWx1ZSA9ICItIjsNCiAgICAgICAgfQ0KICAgICAgICByZXR1cm4gc2VsZWN0Ow0KICAgIH0NCn0NCmZ1bmN0aW9uIGdldFZhbHVlRnJvbVByb3ZpZGVyRmlsZShmaWxlLCBmaWxlVHlwZSwga2V5KSB7DQogICAgaWYgKGZpbGUgPT0gInhUZVZlIER1bW15Iikgew0KICAgICAgICByZXR1cm4gZmlsZTsNCiAgICB9DQogICAgbGV0IGZpbGVJRDsNCiAgICBsZXQgaW5kaWNhdG9yID0gZmlsZS5jaGFyQXQoMCk7DQogICAgc3dpdGNoIChpbmRpY2F0b3IpIHsNCiAgICAgICAgY2FzZSAiTSI6DQogICAgICAgICAgICBmaWxlVHlwZSA9ICJtM3UiOw0KICAgICAgICAgICAgZmlsZUlEID0gZmlsZTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJIIjoNCiAgICAgICAgICAgIGZpbGVUeXBlID0gImhkaHIiOw0KICAgICAgICAgICAgZmlsZUlEID0gZmlsZTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJYIjoNCiAgICAgICAgICAgIGZpbGVUeXBlID0gInhtbHR2IjsNCiAgICAgICAgICAgIGZpbGVJRCA9IGZpbGUuc3Vic3RyaW5nKDAsIGZpbGUubGFzdEluZGV4T2YoJy4nKSk7DQogICAgICAgICAgICBicmVhazsNCiAgICB9DQogICAgaWYgKFNFUlZFUlsic2V0dGluZ3MiXVsiZmlsZXMiXVtmaWxlVHlwZV0uaGFzT3duUHJvcGVydHkoZmlsZUlEKSA9PSB0cnVlKSB7DQogICAgICAgIHZhciBkYXRhID0gU0VSVkVSWyJzZXR0aW5ncyJdWyJmaWxlcyJdW2ZpbGVUeXBlXVtmaWxlSURdOw0KICAgICAgICByZXR1cm4gZGF0YVtrZXldOw0KICAgIH0NCiAgICByZXR1cm47DQp9DQpmdW5jdGlvbiBzZXRYbWx0dkNoYW5uZWwoaWQsIGVsZW1lbnQpIHsNCiAgICBsZXQgeG1sdHYgPSBuZXcgWE1MVFZGaWxlKCk7DQogICAgbGV0IHhtbEZpbGUgPSBlbGVtZW50LnZhbHVlOw0KICAgIGxldCB0dmdJZCA9IFNFUlZFUlsieGVwZyJdWyJlcGdNYXBwaW5nIl1baWRdWyJ0dmctaWQiXTsNCiAgICBsZXQgdGQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicG9wdXAtbWFwcGluZyIpLnBhcmVudEVsZW1lbnQ7DQogICAgdGQuaW5uZXJIVE1MID0gIiI7DQogICAgbGV0IHNlbGVjdCA9IHhtbHR2LmdldFByb2dyYW1zKGVsZW1lbnQudmFsdWUsIHR2Z0lkKTsNCiAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJuYW1lIiwgIngtbWFwcGluZyIpOw0KICAgIHNlbGVjdC5zZXRBdHRyaWJ1dGUoImlkIiwgInBvcHVwLW1hcHBpbmciKTsNCiAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJzsgY2hlY2tYbWx0dkNoYW5uZWwoJyIgKyBpZCArICInLHRoaXMsJyIgKyB4bWxGaWxlICsgIicpOyIpOw0KICAgIHNlbGVjdC5jbGFzc05hbWUgPSAiY2hhbmdlZCI7DQogICAgc29ydFNlbGVjdChzZWxlY3QpOw0KICAgIHRkLmFwcGVuZENoaWxkKHNlbGVjdCk7DQogICAgY2hlY2tYbWx0dkNoYW5uZWwoaWQsIHNlbGVjdCwgeG1sRmlsZSk7DQp9DQpmdW5jdGlvbiBjaGVja1htbHR2Q2hhbm5lbChpZCwgZWxlbWVudCwgeG1sRmlsZSkgew0KICAgIGxldCB2YWx1ZSA9IGVsZW1lbnQudmFsdWU7DQogICAgbGV0IGJvb2w7DQogICAgbGV0IGNoZWNrYm94ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2FjdGl2ZScpOw0KICAgIGxldCBjaGFubmVsID0gU0VSVkVSWyJ4ZXBnIl1bImVwZ01hcHBpbmciXVtpZF07DQogICAgbGV0IHVwZGF0ZUxvZ287DQogICAgYm9vbCA9IHZhbHVlICE9ICItIjsNCiAgICBjaGVja2JveC5jaGVja2VkID0gYm9vbDsNCiAgICBjaGVja2JveC5jbGFzc05hbWUgPSAiY2hhbmdlZCI7DQogICAgY29uc29sZS5sb2coeG1sRmlsZSk7DQogICAgLy8gS2FuYWxsb2dvIGFrdHVhbGlzaWVyZW4NCiAgICAvKg0KICAgIHVwZGF0ZUxvZ28gPSAoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInVwZGF0ZS1pY29uIikgYXMgSFRNTElucHV0RWxlbWVudCkuY2hlY2tlZA0KICAgIGNvbnNvbGUubG9nKHVwZGF0ZUxvZ28pOw0KICAgICovDQogICAgaWYgKHhtbEZpbGUgIT0gInhUZVZlIER1bW15IiAmJiBib29sID09IHRydWUpIHsNCiAgICAgICAgLy8oZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInVwZGF0ZS1pY29uIikgYXMgSFRNTElucHV0RWxlbWVudCkuY2hlY2tlZCA9IHRydWU7DQogICAgICAgIC8vKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ1cGRhdGUtaWNvbiIpIGFzIEhUTUxJbnB1dEVsZW1lbnQpLmNsYXNzTmFtZSA9ICJjaGFuZ2VkIjsNCiAgICAgICAgY29uc29sZS5sb2coIklEIiwgaWQpOw0KICAgICAgICBjaGFuZ2VDaGFubmVsTG9nbyhpZCk7DQogICAgICAgIHJldHVybjsNCiAgICB9DQogICAgaWYgKHhtbEZpbGUgPT0gInhUZVZlIER1bW15Iikgew0KICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidXBkYXRlLWljb24iKS5jaGVja2VkID0gZmFsc2U7DQogICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ1cGRhdGUtaWNvbiIpLmNsYXNzTmFtZSA9ICJjaGFuZ2VkIjsNCiAgICB9DQogICAgcmV0dXJuOw0KfQ0KZnVuY3Rpb24gY2hhbmdlQ2hhbm5lbExvZ28oaWQpIHsNCiAgICBsZXQgdXBkYXRlTG9nbzsNCiAgICBsZXQgY2hhbm5lbCA9IFNFUlZFUlsieGVwZyJdWyJlcGdNYXBwaW5nIl1baWRdOw0KICAgIGxldCBmID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInBvcHVwLXhtbHR2Iik7DQogICAgbGV0IHhtbHR2RmlsZSA9IGYub3B0aW9uc1tmLnNlbGVjdGVkSW5kZXhdLnZhbHVlOw0KICAgIGxldCBtID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInBvcHVwLW1hcHBpbmciKTsNCiAgICBsZXQgeE1hcHBpbmcgPSBtLm9wdGlvbnNbbS5zZWxlY3RlZEluZGV4XS52YWx1ZTsNCiAgICBsZXQgeG1sdHZMb2dvID0gU0VSVkVSWyJ4ZXBnIl1bInhtbHR2TWFwIl1beG1sdHZGaWxlXVt4TWFwcGluZ11bImljb24iXTsNCiAgICB1cGRhdGVMb2dvID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInVwZGF0ZS1pY29uIikuY2hlY2tlZDsNCiAgICBpZiAodXBkYXRlTG9nbyA9PSB0cnVlICYmIHhtbHR2RmlsZSAhPSAieFRlVmUgRHVtbXkiKSB7DQogICAgICAgIGlmIChTRVJWRVJbInhlcGciXVsieG1sdHZNYXAiXVt4bWx0dkZpbGVdLmhhc093blByb3BlcnR5KHhNYXBwaW5nKSkgew0KICAgICAgICAgICAgdmFyIGxvZ28gPSB4bWx0dkxvZ287DQogICAgICAgIH0NCiAgICAgICAgZWxzZSB7DQogICAgICAgICAgICBsb2dvID0gY2hhbm5lbFsidHZnLWxvZ28iXTsNCiAgICAgICAgfQ0KICAgICAgICB2YXIgbG9nb0lucHV0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNoYW5uZWwtaWNvbiIpOw0KICAgICAgICBsb2dvSW5wdXQudmFsdWUgPSBsb2dvOw0KICAgICAgICBpZiAoQlVMS19FRElUID09IGZhbHNlKSB7DQogICAgICAgICAgICBsb2dvSW5wdXQuY2xhc3NOYW1lID0gImNoYW5nZWQiOw0KICAgICAgICB9DQogICAgfQ0KfQ0KZnVuY3Rpb24gc2F2ZVBvcHVwRGF0YShkYXRhVHlwZSwgaWQsIHJlbW92ZSwgb3B0aW9uKSB7DQogICAgaWYgKGRhdGFUeXBlID09ICJtYXBwaW5nIikgew0KICAgICAgICBsZXQgZGF0YSA9IHt9Ow0KICAgICAgICBjb25zb2xlLmxvZygiU2F2ZSBtYXBwaW5nIGRhdGEiKTsNCiAgICAgICAgbGV0IGNtZCA9ICJzYXZlRXBnTWFwcGluZyI7DQogICAgICAgIGRhdGFbImVwZ01hcHBpbmciXSA9IFNFUlZFUlsieGVwZyJdWyJlcGdNYXBwaW5nIl07DQogICAgICAgIGNvbnNvbGUubG9nKCJTRU5EIFRPIFNFUlZFUiIpOw0KICAgICAgICBsZXQgc2VydmVyID0gbmV3IFNlcnZlcihjbWQpOw0KICAgICAgICBzZXJ2ZXIucmVxdWVzdChkYXRhKTsNCiAgICAgICAgZGVsZXRlIFVORE9bImVwZ01hcHBpbmciXTsNCiAgICAgICAgcmV0dXJuOw0KICAgIH0NCiAgICBjb25zb2xlLmxvZygiU2F2ZSBwb3B1cCBkYXRhIik7DQogICAgbGV0IGRpdiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJwb3B1cC1jdXN0b20iKTsNCiAgICBsZXQgaW5wdXRzID0gZGl2LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJUQUJMRSIpWzBdLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJJTlBVVCIpOw0KICAgIGxldCBzZWxlY3RzID0gZGl2LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJUQUJMRSIpWzBdLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJTRUxFQ1QiKTsNCiAgICBsZXQgaW5wdXQgPSB7fTsNCiAgICBsZXQgY29uZmlybU1zZzsNCiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHNlbGVjdHMubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgdmFyIG5hbWU7DQogICAgICAgIG5hbWUgPSBzZWxlY3RzW2ldLm5hbWU7DQogICAgICAgIHZhciB2YWx1ZSA9IHNlbGVjdHNbaV0udmFsdWU7DQogICAgICAgIHN3aXRjaCAobmFtZSkgew0KICAgICAgICAgICAgY2FzZSAidHVuZXIiOg0KICAgICAgICAgICAgICAgIGlucHV0W25hbWVdID0gcGFyc2VJbnQodmFsdWUpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgICAgICBpbnB1dFtuYW1lXSA9IHZhbHVlOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICB9DQogICAgfQ0KICAgIGZvciAobGV0IGkgPSAwOyBpIDwgaW5wdXRzLmxlbmd0aDsgaSsrKSB7DQogICAgICAgIHN3aXRjaCAoaW5wdXRzW2ldLnR5cGUpIHsNCiAgICAgICAgICAgIGNhc2UgImNoZWNrYm94IjoNCiAgICAgICAgICAgICAgICBuYW1lID0gaW5wdXRzW2ldLm5hbWU7DQogICAgICAgICAgICAgICAgaW5wdXRbbmFtZV0gPSBpbnB1dHNbaV0uY2hlY2tlZDsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInRleHQiOg0KICAgICAgICAgICAgY2FzZSAiaGlkZGVuIjoNCiAgICAgICAgICAgIGNhc2UgInBhc3N3b3JkIjoNCiAgICAgICAgICAgICAgICBuYW1lID0gaW5wdXRzW2ldLm5hbWU7DQogICAgICAgICAgICAgICAgc3dpdGNoIChuYW1lKSB7DQogICAgICAgICAgICAgICAgICAgIGNhc2UgInR1bmVyIjoNCiAgICAgICAgICAgICAgICAgICAgICAgIGlucHV0W25hbWVdID0gcGFyc2VJbnQoaW5wdXRzW2ldLnZhbHVlKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgICAgICBkZWZhdWx0Og0KICAgICAgICAgICAgICAgICAgICAgICAgaW5wdXRbbmFtZV0gPSBpbnB1dHNbaV0udmFsdWU7DQogICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIH0NCiAgICB9DQogICAgbGV0IGRhdGEgPSB7fTsNCiAgICBsZXQgY21kOw0KICAgIGlmIChyZW1vdmUgPT0gdHJ1ZSkgew0KICAgICAgICBpbnB1dFsiZGVsZXRlIl0gPSB0cnVlOw0KICAgIH0NCiAgICBzd2l0Y2ggKGRhdGFUeXBlKSB7DQogICAgICAgIGNhc2UgInVzZXJzIjoNCiAgICAgICAgICAgIGNvbmZpcm1Nc2cgPSAiRGVsZXRlIHRoaXMgdXNlcj8iOw0KICAgICAgICAgICAgaWYgKGlkID09ICItIikgew0KICAgICAgICAgICAgICAgIGNtZCA9ICJzYXZlTmV3VXNlciI7DQogICAgICAgICAgICAgICAgZGF0YVsidXNlckRhdGEiXSA9IGlucHV0Ow0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgZWxzZSB7DQogICAgICAgICAgICAgICAgY21kID0gInNhdmVVc2VyRGF0YSI7DQogICAgICAgICAgICAgICAgbGV0IGQgPSB7fTsNCiAgICAgICAgICAgICAgICBkW2lkXSA9IGlucHV0Ow0KICAgICAgICAgICAgICAgIGRhdGFbInVzZXJEYXRhIl0gPSBkOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGNhc2UgIm0zdSI6DQogICAgICAgICAgICBjb25maXJtTXNnID0gIkRlbGV0ZSB0aGlzIHBsYXlsaXN0PyI7DQogICAgICAgICAgICBzd2l0Y2ggKG9wdGlvbikgew0KICAgICAgICAgICAgICAgIC8vIFBvcHVwOiBTYXZlDQogICAgICAgICAgICAgICAgY2FzZSAwOg0KICAgICAgICAgICAgICAgICAgICBjbWQgPSAic2F2ZUZpbGVzTTNVIjsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgLy8gUG9wdXA6IFVwZGF0ZQ0KICAgICAgICAgICAgICAgIGNhc2UgMToNCiAgICAgICAgICAgICAgICAgICAgY21kID0gInVwZGF0ZUZpbGVNM1UiOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGRhdGFbImZpbGVzIl0gPSB7fTsNCiAgICAgICAgICAgIGRhdGFbImZpbGVzIl1bZGF0YVR5cGVdID0ge307DQogICAgICAgICAgICBkYXRhWyJmaWxlcyJdW2RhdGFUeXBlXVtpZF0gPSBpbnB1dDsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJoZGhyIjoNCiAgICAgICAgICAgIGNvbmZpcm1Nc2cgPSAiRGVsZXRlIHRoaXMgSERIb21lUnVuIHR1bmVyPyI7DQogICAgICAgICAgICBzd2l0Y2ggKG9wdGlvbikgew0KICAgICAgICAgICAgICAgIC8vIFBvcHVwOiBTYXZlDQogICAgICAgICAgICAgICAgY2FzZSAwOg0KICAgICAgICAgICAgICAgICAgICBjbWQgPSAic2F2ZUZpbGVzSERIUiI7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIC8vIFBvcHVwOiBVcGRhdGUNCiAgICAgICAgICAgICAgICBjYXNlIDE6DQogICAgICAgICAgICAgICAgICAgIGNtZCA9ICJ1cGRhdGVGaWxlSERIUiI7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgZGF0YVsiZmlsZXMiXSA9IHt9Ow0KICAgICAgICAgICAgZGF0YVsiZmlsZXMiXVtkYXRhVHlwZV0gPSB7fTsNCiAgICAgICAgICAgIGRhdGFbImZpbGVzIl1bZGF0YVR5cGVdW2lkXSA9IGlucHV0Ow0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGNhc2UgInhtbHR2IjoNCiAgICAgICAgICAgIGNvbmZpcm1Nc2cgPSAiRGVsZXRlIHRoaXMgWE1MVFYgZmlsZT8iOw0KICAgICAgICAgICAgc3dpdGNoIChvcHRpb24pIHsNCiAgICAgICAgICAgICAgICAvLyBQb3B1cDogU2F2ZQ0KICAgICAgICAgICAgICAgIGNhc2UgMDoNCiAgICAgICAgICAgICAgICAgICAgY21kID0gInNhdmVGaWxlc1hNTFRWIjsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgLy8gUG9wdXA6IFVwZGF0ZQ0KICAgICAgICAgICAgICAgIGNhc2UgMToNCiAgICAgICAgICAgICAgICAgICAgY21kID0gInVwZGF0ZUZpbGVYTUxUViI7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgZGF0YVsiZmlsZXMiXSA9IHt9Ow0KICAgICAgICAgICAgZGF0YVsiZmlsZXMiXVtkYXRhVHlwZV0gPSB7fTsNCiAgICAgICAgICAgIGRhdGFbImZpbGVzIl1bZGF0YVR5cGVdW2lkXSA9IGlucHV0Ow0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGNhc2UgImZpbHRlciI6DQogICAgICAgICAgICBjb25maXJtTXNnID0gIkRlbGV0ZSB0aGlzIGZpbHRlcj8iOw0KICAgICAgICAgICAgY21kID0gInNhdmVGaWx0ZXIiOw0KICAgICAgICAgICAgZGF0YVsiZmlsdGVyIl0gPSB7fTsNCiAgICAgICAgICAgIGRhdGFbImZpbHRlciJdW2lkXSA9IGlucHV0Ow0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICBjb25zb2xlLmxvZyhkYXRhVHlwZSwgaWQpOw0KICAgICAgICAgICAgcmV0dXJuOw0KICAgIH0NCiAgICBpZiAocmVtb3ZlID09IHRydWUpIHsNCiAgICAgICAgaWYgKCFjb25maXJtKGNvbmZpcm1Nc2cpKSB7DQogICAgICAgICAgICBzaG93RWxlbWVudCgicG9wdXAiLCBmYWxzZSk7DQogICAgICAgICAgICByZXR1cm47DQogICAgICAgIH0NCiAgICB9DQogICAgY29uc29sZS5sb2coIlNFTkQgVE8gU0VSVkVSIik7DQogICAgY29uc29sZS5sb2coZGF0YSk7DQogICAgbGV0IHNlcnZlciA9IG5ldyBTZXJ2ZXIoY21kKTsNCiAgICBzZXJ2ZXIucmVxdWVzdChkYXRhKTsNCn0NCmZ1bmN0aW9uIGRvbmVQb3B1cERhdGEoZGF0YVR5cGUsIGlkc1N0cikgew0KICAgIGxldCBpZHMgPSBpZHNTdHIuc3BsaXQoJywnKTsNCiAgICBsZXQgZGl2ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInBvcHVwLWN1c3RvbSIpOw0KICAgIGxldCBpbnB1dHMgPSBkaXYuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSgiY2hhbmdlZCIpOw0KICAgIGlkcy5mb3JFYWNoKGlkID0+IHsNCiAgICAgICAgbGV0IGlucHV0Ow0KICAgICAgICBpbnB1dCA9IFNFUlZFUlsieGVwZyJdWyJlcGdNYXBwaW5nIl1baWRdOw0KICAgICAgICBjb25zb2xlLmxvZyhpbnB1dCk7DQogICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgaW5wdXRzLmxlbmd0aDsgaSsrKSB7DQogICAgICAgICAgICBsZXQgbmFtZTsNCiAgICAgICAgICAgIGxldCB2YWx1ZTsNCiAgICAgICAgICAgIHN3aXRjaCAoaW5wdXRzW2ldLnRhZ05hbWUpIHsNCiAgICAgICAgICAgICAgICBjYXNlICJJTlBVVCI6DQogICAgICAgICAgICAgICAgICAgIHN3aXRjaCAoaW5wdXRzW2ldLnR5cGUpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgImNoZWNrYm94IjoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lID0gaW5wdXRzW2ldLm5hbWU7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSBpbnB1dHNbaV0uY2hlY2tlZDsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnB1dFtuYW1lXSA9IHZhbHVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAidGV4dCI6DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZSA9IGlucHV0c1tpXS5uYW1lOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlID0gaW5wdXRzW2ldLnZhbHVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlucHV0W25hbWVdID0gdmFsdWU7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAiU0VMRUNUIjoNCiAgICAgICAgICAgICAgICAgICAgbmFtZSA9IGlucHV0c1tpXS5uYW1lOw0KICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IGlucHV0c1tpXS52YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgaW5wdXRbbmFtZV0gPSB2YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBzd2l0Y2ggKG5hbWUpIHsNCiAgICAgICAgICAgICAgICBjYXNlICJ0dmctbG9nbyI6DQogICAgICAgICAgICAgICAgICAgIC8vKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5jaGlsZE5vZGVzWzJdLmZpcnN0Q2hpbGQgYXMgSFRNTEVsZW1lbnQpLnNldEF0dHJpYnV0ZSgic3JjIiwgdmFsdWUpDQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgIngtbmFtZSI6DQogICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5jaGlsZE5vZGVzWzNdLmZpcnN0Q2hpbGQuaW5uZXJIVE1MID0gdmFsdWU7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgIngtY2F0ZWdvcnkiOg0KICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkuY2hpbGROb2Rlc1szXS5maXJzdENoaWxkLmNsYXNzTmFtZSA9IHZhbHVlOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBjYXNlICJ4LWdyb3VwLXRpdGxlIjoNCiAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpLmNoaWxkTm9kZXNbNV0uZmlyc3RDaGlsZC5pbm5lckhUTUwgPSB2YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAieC14bWx0di1maWxlIjoNCiAgICAgICAgICAgICAgICAgICAgaWYgKHZhbHVlICE9ICJ4VGVWZSBEdW1teSIgJiYgdmFsdWUgIT0gIi0iKSB7DQogICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IGdldFZhbHVlRnJvbVByb3ZpZGVyRmlsZSh2YWx1ZSwgInhtbHR2IiwgIm5hbWUiKTsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBpZiAodmFsdWUgPT0gIi0iKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBpbnB1dFsieC1hY3RpdmUiXSA9IGZhbHNlOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5jaGlsZE5vZGVzWzZdLmZpcnN0Q2hpbGQuaW5uZXJIVE1MID0gdmFsdWU7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgIngtbWFwcGluZyI6DQogICAgICAgICAgICAgICAgICAgIGlmICh2YWx1ZSA9PSAiLSIpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGlucHV0WyJ4LWFjdGl2ZSJdID0gZmFsc2U7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpLmNoaWxkTm9kZXNbN10uZmlyc3RDaGlsZC5pbm5lckhUTUwgPSB2YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGNyZWF0ZVNlYXJjaE9iaigpOw0KICAgICAgICAgICAgc2VhcmNoSW5NYXBwaW5nKCk7DQogICAgICAgIH0NCiAgICAgICAgaWYgKGlucHV0WyJ4LWFjdGl2ZSJdID09IGZhbHNlKSB7DQogICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkuY2xhc3NOYW1lID0gIm5vdEFjdGl2ZUVQRyI7DQogICAgICAgIH0NCiAgICAgICAgZWxzZSB7DQogICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkuY2xhc3NOYW1lID0gImFjdGl2ZUVQRyI7DQogICAgICAgIH0NCiAgICAgICAgY29uc29sZS5sb2coaW5wdXRbInR2Zy1sb2dvIl0pOw0KICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkuY2hpbGROb2Rlc1syXS5maXJzdENoaWxkLnNldEF0dHJpYnV0ZSgic3JjIiwgaW5wdXRbInR2Zy1sb2dvIl0pOw0KICAgIH0pOw0KICAgIHNob3dFbGVtZW50KCJwb3B1cCIsIGZhbHNlKTsNCiAgICByZXR1cm47DQp9DQpmdW5jdGlvbiBzaG93UHJldmlldyhlbGVtZW50KSB7DQogICAgbGV0IGRpdiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJteVN0cmVhbXNCb3giKTsNCiAgICBzd2l0Y2ggKGVsZW1lbnQpIHsNCiAgICAgICAgY2FzZSBmYWxzZToNCiAgICAgICAgICAgIGRpdi5jbGFzc05hbWUgPSAibm90VmlzaWJsZSI7DQogICAgICAgICAgICByZXR1cm47DQogICAgfQ0KICAgIGxldCBzdHJlYW1zID0gWyJhY3RpdmVTdHJlYW1zIiwgImluYWN0aXZlU3RyZWFtcyJdOw0KICAgIHN0cmVhbXMuZm9yRWFjaChwcmV2aWV3ID0+IHsNCiAgICAgICAgbGV0IHRhYmxlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQocHJldmlldyk7DQogICAgICAgIHRhYmxlLmlubmVySFRNTCA9ICIiOw0KICAgICAgICBsZXQgb2JqID0gU0VSVkVSWyJkYXRhIl1bIlN0cmVhbVByZXZpZXdVSSJdW3ByZXZpZXddOw0KICAgICAgICBvYmouZm9yRWFjaChjaGFubmVsID0+IHsNCiAgICAgICAgICAgIGxldCB0ciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlRSIik7DQogICAgICAgICAgICBsZXQgdGRLZXkgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgbGV0IHRkVmFsID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgIHRkS2V5LmNsYXNzTmFtZSA9ICJ0ZEtleSI7DQogICAgICAgICAgICB0ZFZhbC5jbGFzc05hbWUgPSAidGRWYWwiOw0KICAgICAgICAgICAgc3dpdGNoIChwcmV2aWV3KSB7DQogICAgICAgICAgICAgICAgY2FzZSAiYWN0aXZlU3RyZWFtcyI6DQogICAgICAgICAgICAgICAgICAgIHRkS2V5LmlubmVyVGV4dCA9ICJDaGFubmVsOiAoKykiOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBjYXNlICJpbmFjdGl2ZVN0cmVhbXMiOg0KICAgICAgICAgICAgICAgICAgICB0ZEtleS5pbm5lclRleHQgPSAiQ2hhbm5lbDogKC0pIjsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICB9DQogICAgICAgICAgICB0ZFZhbC5pbm5lclRleHQgPSBjaGFubmVsOw0KICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQodGRLZXkpOw0KICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQodGRWYWwpOw0KICAgICAgICAgICAgdGFibGUuYXBwZW5kQ2hpbGQodHIpOw0KICAgICAgICB9KTsNCiAgICB9KTsNCiAgICBzaG93RWxlbWVudCgibG9hZGluZyIsIGZhbHNlKTsNCiAgICBkaXYuY2xhc3NOYW1lID0gInZpc2libGUiOw0KICAgIHJldHVybjsNCn0NCg==" + webUI["html/create-first-user.html"] = "PCFkb2N0eXBlIGh0bWw+DQo8aHRtbD4NCiAgPGhlYWQ+DQogICAgPG1ldGEgY2hhcnNldD0idXRmLTgiPg0KICAgIDxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgsIGluaXRpYWwtc2NhbGU9MS4wIiAvPiANCiAgICA8dGl0bGU+eFRlVmU8L3RpdGxlPg0KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iY3NzL3NjcmVlbi5jc3MiIHR5cGU9InRleHQvY3NzIj4NCiAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9ImNzcy9iYXNlLmNzcyIgdHlwZT0idGV4dC9jc3MiPg0KICAgIDxzY3JpcHQgbGFuZ3VhZ2U9ImphdmFzY3JpcHQiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJqcy9uZXR3b3JrX3RzLmpzIj48L3NjcmlwdD4NCiAgICA8c2NyaXB0IGxhbmd1YWdlPSJqYXZhc2NyaXB0IiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ianMvYXV0aGVudGljYXRpb25fdHMuanMiPjwvc2NyaXB0Pg0KICA8L2hlYWQ+DQoNCiAgICA8Ym9keT4NCiAgICAgICAgICANCiAgICAgIDxkaXYgaWQ9ImhlYWRlciIgY2xhc3M9ImltZ0NlbnRlciI+PC9kaXY+DQoNCiAgICAgIDxkaXYgaWQ9ImJveCI+DQoNCiAgICAgICAgPGRpdiBpZD0iaGVhZGxpbmUiPg0KICAgICAgICAgIDxoMSBpZD0iaGVhZC10ZXh0IiBjbGFzcz0iY2VudGVyIj57ey5hY2NvdW50LmhlYWRsaW5lfX08L2gxPg0KICAgICAgICA8L2Rpdj4NCg0KICAgICAgICA8cCBpZD0iZXJyIiBjbGFzcz0iZXJyb3JNc2cgY2VudGVyIj48L3A+DQoNCiAgICAgICAgPGRpdiBpZD0iY29udGVudCI+DQoNCiAgICAgICAgICAgIDxmb3JtIGlkPSJhdXRoZW50aWNhdGlvbiIgYWN0aW9uPSIiIG1ldGhvZD0icG9zdCI+DQoNCiAgICAgICAgICAgICAgPGg1Pnt7LmFjY291bnQudXNlcm5hbWUudGl0bGV9fTo8L2g1Pg0KICAgICAgICAgICAgICA8aW5wdXQgaWQ9InVzZXJuYW1lIiB0eXBlPSJ0ZXh0IiBuYW1lPSJ1c2VybmFtZSIgcGxhY2Vob2xkZXI9IlVzZXJuYW1lIiB2YWx1ZT0iIj4NCiAgICAgICAgICAgICAgPGg1Pnt7LmFjY291bnQucGFzc3dvcmQudGl0bGV9fTo8L2g1Pg0KICAgICAgICAgICAgICA8aW5wdXQgaWQ9InBhc3N3b3JkIiB0eXBlPSJwYXNzd29yZCIgbmFtZT0icGFzc3dvcmQiIHBsYWNlaG9sZGVyPSJQYXNzd29yZCIgdmFsdWU9IiI+DQogICAgICAgICAgICAgIDxoNT57ey5hY2NvdW50LmNvbmZpcm0udGl0bGV9fTo8L2g1Pg0KICAgICAgICAgICAgICA8aW5wdXQgaWQ9ImNvbmZpcm0iICB0eXBlPSJwYXNzd29yZCIgbmFtZT0iY29uZmlybSIgIHBsYWNlaG9sZGVyPSJDb25maXJtIiB2YWx1ZT0iIj4NCiAgICAgICAgICAgICAgDQogICAgICAgICAgICA8L2Zvcm0+DQoNCiAgICAgICAgPC9kaXY+DQogICAgICAgIA0KICAgICAgICA8ZGl2IGlkPSJib3gtZm9vdGVyIj4NCiAgICAgICAgICA8aW5wdXQgaWQ9InN1Ym1pdCIgY2xhc3M9IiIgdHlwZT0iYnV0dG9uIiB2YWx1ZT0ie3suYnV0dG9uLmNyYWV0ZUFjY291bnR9fSIgb25jbGljaz0iamF2YXNjcmlwdDogbG9naW4oKTsiPg0KICAgICAgICA8L2Rpdj4NCiAgICAgIA0KICAgICAgICANCiAgICAgIDwvZGl2Pg0KICAgIDwvYm9keT4NCjwvaHRtbD4=" webUI["html/js/network_ts.js"] = "Y2xhc3MgU2VydmVyIHsNCiAgICBjb25zdHJ1Y3RvcihjbWQpIHsNCiAgICAgICAgdGhpcy5jbWQgPSBjbWQ7DQogICAgfQ0KICAgIHJlcXVlc3QoZGF0YSkgew0KICAgICAgICBpZiAoU0VSVkVSX0NPTk5FQ1RJT04gPT0gdHJ1ZSkgew0KICAgICAgICAgICAgcmV0dXJuOw0KICAgICAgICB9DQogICAgICAgIFNFUlZFUl9DT05ORUNUSU9OID0gdHJ1ZTsNCiAgICAgICAgY29uc29sZS5sb2coZGF0YSk7DQogICAgICAgIGlmICh0aGlzLmNtZCAhPSAidXBkYXRlTG9nIikgew0KICAgICAgICAgICAgc2hvd0VsZW1lbnQoImxvYWRpbmciLCB0cnVlKTsNCiAgICAgICAgICAgIFVORE8gPSBuZXcgT2JqZWN0KCk7DQogICAgICAgIH0NCiAgICAgICAgc3dpdGNoICh3aW5kb3cubG9jYXRpb24ucHJvdG9jb2wpIHsNCiAgICAgICAgICAgIGNhc2UgImh0dHA6IjoNCiAgICAgICAgICAgICAgICB0aGlzLnByb3RvY29sID0gIndzOi8vIjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImh0dHBzOiI6DQogICAgICAgICAgICAgICAgdGhpcy5wcm90b2NvbCA9ICJ3c3M6Ly8iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICB9DQogICAgICAgIHZhciB1cmwgPSB0aGlzLnByb3RvY29sICsgd2luZG93LmxvY2F0aW9uLmhvc3RuYW1lICsgIjoiICsgd2luZG93LmxvY2F0aW9uLnBvcnQgKyAiL2RhdGEvIiArICI/VG9rZW49IiArIGdldENvb2tpZSgiVG9rZW4iKTsNCiAgICAgICAgZGF0YVsiY21kIl0gPSB0aGlzLmNtZDsNCiAgICAgICAgdmFyIHdzID0gbmV3IFdlYlNvY2tldCh1cmwpOw0KICAgICAgICB3cy5vbm9wZW4gPSBmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICBXU19BVkFJTEFCTEUgPSB0cnVlOw0KICAgICAgICAgICAgY29uc29sZS5sb2coIlJFUVVFU1QgKEpTKToiKTsNCiAgICAgICAgICAgIGNvbnNvbGUubG9nKGRhdGEpOw0KICAgICAgICAgICAgY29uc29sZS5sb2coIlJFUVVFU1Q6IChKU09OKSIpOw0KICAgICAgICAgICAgY29uc29sZS5sb2coSlNPTi5zdHJpbmdpZnkoZGF0YSkpOw0KICAgICAgICAgICAgdGhpcy5zZW5kKEpTT04uc3RyaW5naWZ5KGRhdGEpKTsNCiAgICAgICAgfTsNCiAgICAgICAgd3Mub25lcnJvciA9IGZ1bmN0aW9uIChlKSB7DQogICAgICAgICAgICBjb25zb2xlLmxvZygiTm8gd2Vic29ja2V0IGNvbm5lY3Rpb24gdG8geFRlVmUgY291bGQgYmUgZXN0YWJsaXNoZWQuIENoZWNrIHlvdXIgbmV0d29yayBjb25maWd1cmF0aW9uLiIpOw0KICAgICAgICAgICAgU0VSVkVSX0NPTk5FQ1RJT04gPSBmYWxzZTsNCiAgICAgICAgICAgIGlmIChXU19BVkFJTEFCTEUgPT0gZmFsc2UpIHsNCiAgICAgICAgICAgICAgICBhbGVydCgiTm8gd2Vic29ja2V0IGNvbm5lY3Rpb24gdG8geFRlVmUgY291bGQgYmUgZXN0YWJsaXNoZWQuIENoZWNrIHlvdXIgbmV0d29yayBjb25maWd1cmF0aW9uLiIpOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9Ow0KICAgICAgICB3cy5vbm1lc3NhZ2UgPSBmdW5jdGlvbiAoZSkgew0KICAgICAgICAgICAgU0VSVkVSX0NPTk5FQ1RJT04gPSBmYWxzZTsNCiAgICAgICAgICAgIHNob3dFbGVtZW50KCJsb2FkaW5nIiwgZmFsc2UpOw0KICAgICAgICAgICAgY29uc29sZS5sb2coIlJFU1BPTlNFOiIpOw0KICAgICAgICAgICAgdmFyIHJlc3BvbnNlID0gSlNPTi5wYXJzZShlLmRhdGEpOw0KICAgICAgICAgICAgY29uc29sZS5sb2cocmVzcG9uc2UpOw0KICAgICAgICAgICAgaWYgKHJlc3BvbnNlLmhhc093blByb3BlcnR5KCJ0b2tlbiIpKSB7DQogICAgICAgICAgICAgICAgZG9jdW1lbnQuY29va2llID0gIlRva2VuPSIgKyByZXNwb25zZVsidG9rZW4iXTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGlmIChyZXNwb25zZVsic3RhdHVzIl0gPT0gZmFsc2UpIHsNCiAgICAgICAgICAgICAgICBhbGVydChyZXNwb25zZVsiZXJyIl0pOw0KICAgICAgICAgICAgICAgIGlmIChyZXNwb25zZS5oYXNPd25Qcm9wZXJ0eSgicmVsb2FkIikpIHsNCiAgICAgICAgICAgICAgICAgICAgbG9jYXRpb24ucmVsb2FkKCk7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIHJldHVybjsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGlmIChyZXNwb25zZS5oYXNPd25Qcm9wZXJ0eSgibG9nb1VSTCIpKSB7DQogICAgICAgICAgICAgICAgdmFyIGRpdiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjaGFubmVsLWljb24iKTsNCiAgICAgICAgICAgICAgICBkaXYudmFsdWUgPSByZXNwb25zZVsibG9nb1VSTCJdOw0KICAgICAgICAgICAgICAgIGRpdi5jbGFzc05hbWUgPSAiY2hhbmdlZCI7DQogICAgICAgICAgICAgICAgcmV0dXJuOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgc3dpdGNoIChkYXRhWyJjbWQiXSkgew0KICAgICAgICAgICAgICAgIGNhc2UgInVwZGF0ZUxvZyI6DQogICAgICAgICAgICAgICAgICAgIFNFUlZFUlsibG9nIl0gPSByZXNwb25zZVsibG9nIl07DQogICAgICAgICAgICAgICAgICAgIGlmIChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29udGVudF9sb2ciKSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgc2hvd0xvZ3MoZmFsc2UpOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIHJldHVybjsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgICAgICAgICAgU0VSVkVSID0gbmV3IE9iamVjdCgpOw0KICAgICAgICAgICAgICAgICAgICBTRVJWRVIgPSByZXNwb25zZTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBpZiAocmVzcG9uc2UuaGFzT3duUHJvcGVydHkoIm9wZW5NZW51IikpIHsNCiAgICAgICAgICAgICAgICB2YXIgbWVudSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHJlc3BvbnNlWyJvcGVuTWVudSJdKTsNCiAgICAgICAgICAgICAgICBtZW51LmNsaWNrKCk7DQogICAgICAgICAgICAgICAgc2hvd0VsZW1lbnQoInBvcHVwIiwgZmFsc2UpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgaWYgKHJlc3BvbnNlLmhhc093blByb3BlcnR5KCJvcGVuTGluayIpKSB7DQogICAgICAgICAgICAgICAgd2luZG93LmxvY2F0aW9uID0gcmVzcG9uc2VbIm9wZW5MaW5rIl07DQogICAgICAgICAgICB9DQogICAgICAgICAgICBpZiAocmVzcG9uc2UuaGFzT3duUHJvcGVydHkoImFsZXJ0IikpIHsNCiAgICAgICAgICAgICAgICBhbGVydChyZXNwb25zZVsiYWxlcnQiXSk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBpZiAocmVzcG9uc2UuaGFzT3duUHJvcGVydHkoInJlbG9hZCIpKSB7DQogICAgICAgICAgICAgICAgbG9jYXRpb24ucmVsb2FkKCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBpZiAocmVzcG9uc2UuaGFzT3duUHJvcGVydHkoIndpemFyZCIpKSB7DQogICAgICAgICAgICAgICAgY3JlYXRlTGF5b3V0KCk7DQogICAgICAgICAgICAgICAgY29uZmlndXJhdGlvbldpemFyZFtyZXNwb25zZVsid2l6YXJkIl1dLmNyZWF0ZVdpemFyZCgpOw0KICAgICAgICAgICAgICAgIHJldHVybjsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGNyZWF0ZUxheW91dCgpOw0KICAgICAgICB9Ow0KICAgIH0NCn0NCmZ1bmN0aW9uIGdldENvb2tpZShuYW1lKSB7DQogICAgdmFyIHZhbHVlID0gIjsgIiArIGRvY3VtZW50LmNvb2tpZTsNCiAgICB2YXIgcGFydHMgPSB2YWx1ZS5zcGxpdCgiOyAiICsgbmFtZSArICI9Iik7DQogICAgaWYgKHBhcnRzLmxlbmd0aCA9PSAyKQ0KICAgICAgICByZXR1cm4gcGFydHMucG9wKCkuc3BsaXQoIjsiKS5zaGlmdCgpOw0KfQ0K" - webUI["html/login.html"] = "PCFkb2N0eXBlIGh0bWw+DQo8aHRtbD4NCiAgPGhlYWQ+DQogICAgPG1ldGEgY2hhcnNldD0idXRmLTgiPg0KICAgIDxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgsIGluaXRpYWwtc2NhbGU9MS4wIiAvPiANCiAgICA8dGl0bGU+eFRlVmU8L3RpdGxlPg0KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iY3NzL3NjcmVlbi5jc3MiIHR5cGU9InRleHQvY3NzIj4NCiAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9ImNzcy9iYXNlLmNzcyIgdHlwZT0idGV4dC9jc3MiPg0KICAgIDxzY3JpcHQgbGFuZ3VhZ2U9ImphdmFzY3JpcHQiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJqcy9uZXR3b3JrX3RzLmpzIj48L3NjcmlwdD4NCiAgICA8c2NyaXB0IGxhbmd1YWdlPSJqYXZhc2NyaXB0IiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ianMvYXV0aGVudGljYXRpb25fdHMuanMiPjwvc2NyaXB0Pg0KICA8L2hlYWQ+DQoNCiAgICA8Ym9keT4NCiAgICAgICAgICANCiAgICAgIDxkaXYgaWQ9ImhlYWRlciIgY2xhc3M9ImltZ0NlbnRlciI+PC9kaXY+DQoNCiAgICAgIDxkaXYgaWQ9ImJveCI+DQoNCiAgICAgICAgPGRpdiBpZD0iaGVhZGxpbmUiPg0KICAgICAgICAgIDxoMSBpZD0iaGVhZC10ZXh0IiBjbGFzcz0iY2VudGVyIj57ey5sb2dpbi5oZWFkbGluZX19PC9oMT4NCiAgICAgICAgPC9kaXY+DQoNCiAgICAgICAgPHAgaWQ9ImVyciIgY2xhc3M9ImVycm9yTXNnIGNlbnRlciI+e3suYXV0aGVudGljYXRpb25FcnJ9fTwvcD4NCg0KICAgICAgICA8ZGl2IGlkPSJjb250ZW50Ij4NCg0KICAgICAgICAgICAgPGZvcm0gaWQ9ImF1dGhlbnRpY2F0aW9uIiBhY3Rpb249IiIgbWV0aG9kPSJwb3N0Ij4NCg0KICAgICAgICAgICAgICA8aDU+e3subG9naW4udXNlcm5hbWUudGl0bGV9fTo8L2g1Pg0KICAgICAgICAgICAgICA8aW5wdXQgaWQ9InVzZXJuYW1lIiB0eXBlPSJ0ZXh0IiBuYW1lPSJ1c2VybmFtZSIgcGxhY2Vob2xkZXI9IlVzZXJuYW1lIiB2YWx1ZT0iIj4NCiAgICAgICAgICAgICAgPGg1Pnt7LmxvZ2luLnBhc3N3b3JkLnRpdGxlfX06PC9oNT4NCiAgICAgICAgICAgICAgPGlucHV0IGlkPSJwYXNzd29yZCIgdHlwZT0icGFzc3dvcmQiIG5hbWU9InBhc3N3b3JkIiBwbGFjZWhvbGRlcj0iUGFzc3dvcmQiIHZhbHVlPSIiPg0KDQogICAgICAgICAgICA8L2Zvcm0+DQoNCiAgICAgICAgPC9kaXY+DQoNCiAgICAgICAgPGRpdiBpZD0iYm94LWZvb3RlciI+DQogICAgICAgICAgPGlucHV0IGlkPSJzdWJtaXQiIGNsYXNzPSIiIHR5cGU9ImJ1dHRvbiIgdmFsdWU9Int7LmJ1dHRvbi5sb2dpbn19IiBvbmNsaWNrPSJqYXZhc2NyaXB0OiBsb2dpbigpOyI+DQogICAgICAgIDwvZGl2Pg0KICAgICAgICANCiAgICAgIDwvZGl2Pg0KDQogICAgPC9ib2R5Pg0KICAgIA0KPC9odG1sPg==" webUI["html/maintenance.html"] = "PCFkb2N0eXBlIGh0bWw+DQo8aHRtbD4NCiAgPGhlYWQ+DQogICAgPG1ldGEgY2hhcnNldD0idXRmLTgiPg0KICAgIDxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgsIGluaXRpYWwtc2NhbGU9MS4wIiAvPiANCiAgICA8dGl0bGU+eFRlVmU8L3RpdGxlPg0KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iY3NzL3NjcmVlbi5jc3MiIHR5cGU9InRleHQvY3NzIj4NCiAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9ImNzcy9iYXNlLmNzcyIgdHlwZT0idGV4dC9jc3MiPg0KICA8L2hlYWQ+DQoNCiAgICA8Ym9keT4NCiAgICAgICAgICANCiAgICAgIDxkaXYgaWQ9ImhlYWRlciIgY2xhc3M9ImltZ0NlbnRlciI+PC9kaXY+DQoNCiAgICAgIDxkaXYgaWQ9ImJveCI+DQoNCiAgICAgICAgPGRpdiBpZD0iaGVhZGxpbmUiPg0KICAgICAgICAgIDxoMSBpZD0iaGVhZC10ZXh0IiBjbGFzcz0iY2VudGVyIj5NYWludGVuYW5jZTwvaDE+ICAgICAgDQogICAgICAgIDwvZGl2PiAgDQoNCiAgICAgICAgPGRpdiBpZD0iY29udGVudCI+DQogICAgICAgICAgeFRlVmUgaXMgdXBkYXRpbmcgdGhlIGRhdGFiYXNlLCBwbGVhc2UgdHJ5IGFnYWluIGxhdGVyLg0KICAgICAgICA8L2Rpdj4NCg0KICAgICAgICA8ZGl2IGlkPSJib3gtZm9vdGVyIj48L2Rpdj4NCiAgICAgICAgDQogICAgICA8L2Rpdj4NCg0KICAgIDwvYm9keT4NCjwvaHRtbD4=" - webUI["html/create-first-user.html"] = "PCFkb2N0eXBlIGh0bWw+DQo8aHRtbD4NCiAgPGhlYWQ+DQogICAgPG1ldGEgY2hhcnNldD0idXRmLTgiPg0KICAgIDxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgsIGluaXRpYWwtc2NhbGU9MS4wIiAvPiANCiAgICA8dGl0bGU+eFRlVmU8L3RpdGxlPg0KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iY3NzL3NjcmVlbi5jc3MiIHR5cGU9InRleHQvY3NzIj4NCiAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9ImNzcy9iYXNlLmNzcyIgdHlwZT0idGV4dC9jc3MiPg0KICAgIDxzY3JpcHQgbGFuZ3VhZ2U9ImphdmFzY3JpcHQiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJqcy9uZXR3b3JrX3RzLmpzIj48L3NjcmlwdD4NCiAgICA8c2NyaXB0IGxhbmd1YWdlPSJqYXZhc2NyaXB0IiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ianMvYXV0aGVudGljYXRpb25fdHMuanMiPjwvc2NyaXB0Pg0KICA8L2hlYWQ+DQoNCiAgICA8Ym9keT4NCiAgICAgICAgICANCiAgICAgIDxkaXYgaWQ9ImhlYWRlciIgY2xhc3M9ImltZ0NlbnRlciI+PC9kaXY+DQoNCiAgICAgIDxkaXYgaWQ9ImJveCI+DQoNCiAgICAgICAgPGRpdiBpZD0iaGVhZGxpbmUiPg0KICAgICAgICAgIDxoMSBpZD0iaGVhZC10ZXh0IiBjbGFzcz0iY2VudGVyIj57ey5hY2NvdW50LmhlYWRsaW5lfX08L2gxPg0KICAgICAgICA8L2Rpdj4NCg0KICAgICAgICA8cCBpZD0iZXJyIiBjbGFzcz0iZXJyb3JNc2cgY2VudGVyIj48L3A+DQoNCiAgICAgICAgPGRpdiBpZD0iY29udGVudCI+DQoNCiAgICAgICAgICAgIDxmb3JtIGlkPSJhdXRoZW50aWNhdGlvbiIgYWN0aW9uPSIiIG1ldGhvZD0icG9zdCI+DQoNCiAgICAgICAgICAgICAgPGg1Pnt7LmFjY291bnQudXNlcm5hbWUudGl0bGV9fTo8L2g1Pg0KICAgICAgICAgICAgICA8aW5wdXQgaWQ9InVzZXJuYW1lIiB0eXBlPSJ0ZXh0IiBuYW1lPSJ1c2VybmFtZSIgcGxhY2Vob2xkZXI9IlVzZXJuYW1lIiB2YWx1ZT0iIj4NCiAgICAgICAgICAgICAgPGg1Pnt7LmFjY291bnQucGFzc3dvcmQudGl0bGV9fTo8L2g1Pg0KICAgICAgICAgICAgICA8aW5wdXQgaWQ9InBhc3N3b3JkIiB0eXBlPSJwYXNzd29yZCIgbmFtZT0icGFzc3dvcmQiIHBsYWNlaG9sZGVyPSJQYXNzd29yZCIgdmFsdWU9IiI+DQogICAgICAgICAgICAgIDxoNT57ey5hY2NvdW50LmNvbmZpcm0udGl0bGV9fTo8L2g1Pg0KICAgICAgICAgICAgICA8aW5wdXQgaWQ9ImNvbmZpcm0iICB0eXBlPSJwYXNzd29yZCIgbmFtZT0iY29uZmlybSIgIHBsYWNlaG9sZGVyPSJDb25maXJtIiB2YWx1ZT0iIj4NCiAgICAgICAgICAgICAgDQogICAgICAgICAgICA8L2Zvcm0+DQoNCiAgICAgICAgPC9kaXY+DQogICAgICAgIA0KICAgICAgICA8ZGl2IGlkPSJib3gtZm9vdGVyIj4NCiAgICAgICAgICA8aW5wdXQgaWQ9InN1Ym1pdCIgY2xhc3M9IiIgdHlwZT0iYnV0dG9uIiB2YWx1ZT0ie3suYnV0dG9uLmNyYWV0ZUFjY291bnR9fSIgb25jbGljaz0iamF2YXNjcmlwdDogbG9naW4oKTsiPg0KICAgICAgICA8L2Rpdj4NCiAgICAgIA0KICAgICAgICANCiAgICAgIDwvZGl2Pg0KICAgIDwvYm9keT4NCjwvaHRtbD4=" - webUI["html/img/logo_b_880x200.jpg"] = "/9j/4AAQSkZJRgABAQABLAEsAAD/4QDIRXhpZgAATU0AKgAAAAgABwESAAMAAAABAAEAAAEaAAUAAAABAAAAYgEbAAUAAAABAAAAagEoAAMAAAABAAIAAAExAAIAAAAPAAAAcgEyAAIAAAAUAAAAgodpAAQAAAABAAAAlgAAAAAAAAEsAAAAAQAAASwAAAABUGl4ZWxtYXRvciAzLjMAADIwMTk6MDg6MDIgMjA6MDg6MTQAAAOgAQADAAAAAQABAACgAgAEAAAAAQAAA3CgAwAEAAAAAQAAAMgAAAAA/+EJkGh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8APD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iWE1QIENvcmUgNS40LjAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcDpDcmVhdG9yVG9vbD0iUGl4ZWxtYXRvciAzLjMiIHhtcDpNb2RpZnlEYXRlPSIyMDE5LTA4LTAyVDIwOjA4OjE0Ii8+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPD94cGFja2V0IGVuZD0idyI/PgD/7QA4UGhvdG9zaG9wIDMuMAA4QklNBAQAAAAAAAA4QklNBCUAAAAAABDUHYzZjwCyBOmACZjs+EJ+/8AAEQgAyANwAwERAAIRAQMRAf/EAB8AAAEFAQEBAQEBAAAAAAAAAAABAgMEBQYHCAkKC//EALUQAAIBAwMCBAMFBQQEAAABfQECAwAEEQUSITFBBhNRYQcicRQygZGhCCNCscEVUtHwJDNicoIJChYXGBkaJSYnKCkqNDU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6g4SFhoeIiYqSk5SVlpeYmZqio6Slpqeoqaqys7S1tre4ubrCw8TFxsfIycrS09TV1tfY2drh4uPk5ebn6Onq8fLz9PX29/j5+v/EAB8BAAMBAQEBAQEBAQEAAAAAAAABAgMEBQYHCAkKC//EALURAAIBAgQEAwQHBQQEAAECdwABAgMRBAUhMQYSQVEHYXETIjKBCBRCkaGxwQkjM1LwFWJy0QoWJDThJfEXGBkaJicoKSo1Njc4OTpDREVGR0hJSlNUVVZXWFlaY2RlZmdoaWpzdHV2d3h5eoKDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uLj5OXm5+jp6vLz9PX29/j5+v/bAEMAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAf/bAEMBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAf/dAAQAbv/aAAwDAQACEQMRAD8A/iHoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKAP/9D+IegAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoA//0f4h6ACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgD//S/iHoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKAP/9P+IegAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoA//1P4h6ACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgDvPDXws+J3jPT31bwf8OfHnivSo7mSyfU/DXhDxBrunpeQpFLNaPe6Xp11bLcxRzwSSQNL5saTROyhZUNAHQf8M//AB4/6In8XP8Aw23jL/5TUAH/AAz/APHj/oifxc/8Nt4y/wDl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f/E3xn4o+IPjnxDLaafp8mveMPGet33iPxNrMlhpNpYaVZPqmtale3z2mmWNlp9s05hsrS2tkjhQA4ygAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgD//S/iHoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAczu+N7M2BgbmLYHoM9BnJxx1/FgBtABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAOLuwVWZiq/dUsSFz12joM4HQduc4FADaACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgD//0/4h6ACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgD//U/iHoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKAP/9X+IegAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoA//1v4h6ACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgD//X/iHoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKAP/9k=" - webUI["html/img/m3u.png"] = "iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAAAXNSR0IArs4c6QAAAAlwSFlzAAAsSwAALEsBpT2WqQAABCRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IlhNUCBDb3JlIDUuNC4wIj4KICAgPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIgogICAgICAgICAgICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgICAgICAgICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyI+CiAgICAgICAgIDx0aWZmOlJlc29sdXRpb25Vbml0PjI8L3RpZmY6UmVzb2x1dGlvblVuaXQ+CiAgICAgICAgIDx0aWZmOkNvbXByZXNzaW9uPjU8L3RpZmY6Q29tcHJlc3Npb24+CiAgICAgICAgIDx0aWZmOlhSZXNvbHV0aW9uPjI4ODwvdGlmZjpYUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6T3JpZW50YXRpb24+MTwvdGlmZjpPcmllbnRhdGlvbj4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+Mjg4PC90aWZmOllSZXNvbHV0aW9uPgogICAgICAgICA8ZXhpZjpQaXhlbFhEaW1lbnNpb24+NTA8L2V4aWY6UGl4ZWxYRGltZW5zaW9uPgogICAgICAgICA8ZXhpZjpDb2xvclNwYWNlPjE8L2V4aWY6Q29sb3JTcGFjZT4KICAgICAgICAgPGV4aWY6UGl4ZWxZRGltZW5zaW9uPjUwPC9leGlmOlBpeGVsWURpbWVuc2lvbj4KICAgICAgICAgPGRjOnN1YmplY3Q+CiAgICAgICAgICAgIDxyZGY6QmFnLz4KICAgICAgICAgPC9kYzpzdWJqZWN0PgogICAgICAgICA8eG1wOk1vZGlmeURhdGU+MjAxOC0wNy0yOFQxOTowNzozMTwveG1wOk1vZGlmeURhdGU+CiAgICAgICAgIDx4bXA6Q3JlYXRvclRvb2w+UGl4ZWxtYXRvciAzLjM8L3htcDpDcmVhdG9yVG9vbD4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgIDwvcmRmOlJERj4KPC94OnhtcG1ldGE+CumjVbcAAAGWSURBVGgF7VoxTgJRFGTFaGKBFnbEcABjb0fiBego7D2ABYmn8ARKRWFNQ6gx4QRQGWJJoY2VhXGdl7Dkh7Dsx3ns3yXvJ5P97L6d92bmhwYqlcWK43gK5L2enP51NP8F7pN721wPnOITZx9qG6HxI8QIZO+9XCHeL+VQKKm8QMyxb6+iCpH528AQYs58xIQWknV8mhDxCjEXWWJCC8maT55fAmOIudpUXAYhMn8dGEHMTZqYsgiR+U+BAcTcrhNTJiEy/xHQg5jOqpjD1RsBP3+id8u3P8TUoij6SuoLIwRDfWOofjLYtteyHa1UfcvvcUT1jqpGauVuHnyAdragjv/TAkley3uhj9Y5ZhDQa2+Olgmhz4IygSWibChNZ4nQFioTWCLKhtJ0lghtoTKBJaJsKE1nidAWKhNYIsqG0nSWCG2hMoElomwoTWeJ0BYqE1giyobSdJYIbaEygSWibChNZ4nQFioTWCLKhtJ0biJzmi1/guXMrpDn/OegO3bXMuAH0TtgAvwARV3y57Q34AGoJkL+AErKZ9cqbH7AAAAAAElFTkSuQmCC" + webUI["html/video/stream-limit.ts"] = "R0AREABC8CUAAcEAAP8B/wAB/IAUSBIBBkZGbXBlZwlTZXJ2aWNlMDF3fEPK//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////9HQAAQAACwDQABwQAAAAHwACqxBLL//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////0dQABAAArASAAHBAADhAPAAG+EA8AAVvU1W////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////R0EAMAdQAAB7DH4AAAAB4AAAgMAKMQAJEKERAAfYYQAAAAEJ8AAAAAFnZAAorNlAeAIn5cBEAAADAAQAAAMAyDxgxlgAAAABaOvjyyLAAAABBgX//6rcRem95tlIt5Ys2CDZI+7veDI2NCAtIGNvcmUgMTUyIHIyODU0IGU5YTU5MDMgLSBILjI2NC9NUEVHLTQgQVZDIGNvZGVjIC0gQ29weWxlZnQgMjAwMy0yMDE3IC0gaHR0cDovL3dHAQARd3cudmlkZW9sYW4ub3JnL3gyNjQuaHRtbCAtIG9wdGlvbnM6IGNhYmFjPTEgcmVmPTMgZGVibG9jaz0xOjA6MCBhbmFseXNlPTB4MzoweDExMyBtZT1oZXggc3VibWU9NyBwc3k9MSBwc3lfcmQ9MS4wMDowLjAwIG1peGVkX3JlZj0xIG1lX3JhbmdlPTE2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ACqxBLL//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////0dQABEAArASAAHBAADhAPAAG+EA8AAVvU1W////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////RwEAGO10tGlFAwyE91Tzg8923ovJk1dv2xh1gVlYQFtWdZ6NSQ8vgHM7/tMfIZPsqgCU856rdBJJRMDaor/oWA7pkvSmC2aqaC5fd/mkWUPTuG8fRhGqOY1rKxLNSI3HtTQAcuVBxRM0NfMw0ky/JMJYZiCgXcNsxpxl+khr/9fKtO5Fg2VNBti92xcZimHUZDJMQTBOY6vSR9L1N2O/kJQCpdfuc9bkcUTMjH/es/lAySxvbiislkohqkpHAQAZVatwHI0t9eHCUfDyWUEtuCNyDwQFOVMtaYEQJrTrhQX0VduT86F0u0wN9ag0uPsrmX6Rid/x5S7KI1SkS+qP6cdmgSP57uiF4dG6IKsWNfGBLY09H/CFlrg73WINQkkp2diKkdEmtZetn8+ZAKzR5eXN5FebiKt6pIkNLuSofjosypEs2o6boKsfpmbtOV0idOeWDM9C8EIcn3aZwk1s2KBDvt1DlY+i2Cuvhk3XoKLT+pq/bOC5QkcBABolcOXneZXLoQw9W1PH1f/of92Ytjj8okrWijcQAKlE5l8XoTb9qrOiZnDOhqwcMlB9H9rorq041I89hChohYoSkJElcM8V+r8WYN5axD1BNyfwaHAOm4UN2/VEYOkNSfMjmx2S0WW/F2ha8Jj4fc4QgqcXr+TnnbwqLkLTValK4Qa1pcv7PIbDq6zCUfxe04guZ8xEhPQjp17/G6IB/6uq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wnibxQ/cXEblVnM47wbCN3iy4eHjYB5MoIICrSYmd8nt4V0toLs084KJlmnur5FbApYM4W79ff4oZkW88Cg8Fv8TnWhh1Hqc4UlhMbRKm2QxDgfBxar3U7BwNR6prrXXjqfR7ja3tPli+H7Jez/xcTg32QpHAQAdTa7pSSgBvmOqzz175NAFIhwE9p3d71F9jLvhaPv8q1iKopL0kizwzEWElnXWmNhfLkl/Au8KujnoKUaxVdTe+zAZm2dOkejnpNVtVj0Aw9wKcG3ZQ1iRZrUFRIoPKYlmR+oi0LrupuhYABtgPbdCbDtezGTr0nw9wVd/rZ6V+1wcoJ6+8VAVueIdwI3brqm6EoFHiI8L6lER+9SefB8fHo4NYgr/I8jSxaa/2PLX2K/DjrlY6bN8fEcBAB7DXsuh8DITF6CYWj2HTFvqfzlic3QHXnHtvsTFNpyVY1LY8y/fRK2mwALN6IB5W3OuyoKiA3K0lJdQUv2gYhHWvPTV218HYrD0rkbMxRH0SiEEkrHDeOt5T1HtWD13D2/QvMu535fsfZyeaFDjdCE9M0Xi8Lfc7Xj1ZNGend7Jo7/cEiczFkc1vB4z2JpFGZreV2EdquyEzC2STFJtfimyx8QlLngEuR1cxH+lWEcFX+mvBa/eqktIRwEAH6VazFLPNsnHZqsI66TVoArQuUUGFAzr8MT8GZ9V6qpZa5D0jA/4eGi6Kq0smUgRExnqIbSMLWqDf/Pk2YT3MpHTu9VE3Dn9blgB6KsVIkWnB98Y2n/6DrZDcF94Ndu0Ka4U/RZwdV5O5KcO+lU2ZiIOYTYZ6Ie0d+tApxYxJ+YmxaDoCyRNe6crw/yzR5SflT8ddi/E2BM+l+nwVDiKZ/714fmrBxFKWuqLiQNHV19o1cZ8Ubun+ZtHQAASAACwDQABwQAAAAHwACqxBLL//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////0dQABIAArASAAHBAADhAPAAG+EA8AAVvU1W////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////RwEAEH1s3BdtHdF1ln55B24wdACF/ggcRtPmB4IUB6cZJ+m32I4R48ZkdhAFBulgWcsv0wZwH0o1yi3i4qm3rJ98AUKdB9PsNyG9gURV0bTw4myAj6g5Dgodfv6w9bsbOxsGUWkvgAJ3rrR010BvZbIa6CMRCQRjxkCfRF77ansRJZT0JzhtYeSS/ZJob8Rr2jrng3W2rkmHtE+rdqlPiHxmwkRZvYGhBxwiJO2L6f+l/cABsfs09rA+A0pHAQAREZay3TBUIAfMWhApE+LaPgeyOYtaPFONA9aC0h4QrFkaLZfb86678MK+zLgqDBsDoj50eZHMVcczRjs4sYlv7RG8RIWKb5lB9Kn/8+CkxiiA11cHH1yzLX2SKCmhsak/+P/zYQ1EDvEj33bl9e3Jd62cTI+Qw99KrsWnUMN8hFNeXzoGHA3aec+Li4NFboF8sa6lCPR6Csxsvxw8DJaWCnER5Z0p+nKhXavF/eNHQ0DX47ohycc87UcBABKsYHCHXXe3vK1cFYDWO6rhwM6hxCdJ+/X+VB1akQejL6iBMdUPuadUqBnbprwJM0dWpSSn9uuZZeqe46iZOGIJUo69d8x+ZSvPcBH/dK1Y0LJnoWdgWH51SQg7eYqcwjQW3BOy7ZF02Hn1EhTuhsN7ms8zv3WIeEBDBq0T3Idl+Tmw9iJU9skVYiwygHG2+0XwrLa6y+uiQPwMzrnEr1kuf24XoAqrJTZQiVH3aQF4d94yDreWu2KPRwEAE2FsynHZaUcBXEFbeX0nSxZ7sRcRjJvc7RYOny6N8QFwKDVO7jpRWWYM55kuepBOyZ+7BFYeG+FU1kR+ZfmqyDNkD4D1IPwNh6u9JQxDymfN/aMcQC3WxdvCKquPsAut6dugpGkOFtIe+W3ayc4V/J978P+h1EDFMbFjxRPuXht0K2dBQZCJ0ybISUDqWzhPuep8CdxSU4MvMVfdXh7FLl/BqKJUTT+vM+Pz3XnqCQQmH5TjQ4CK55VHAQAUEtgfkBwIYgtwHkhjmtLw7HNTeJeMfTjATEKcyuKzItSeYxHBmGzQ/+G2otpPCOkVAXJ9mfx7LxrW4joZ0ttTRQJ/wqMUK1IN349LiJoo8y/+FwN4jPNDwIleJG697riqnmLOweFW8spHKLBfnHcyC1pG6EIxFpTqUQ0KHqXD/KXIHKioJNAOVwQ1Gfloxebo/Tdtd00dpHP3gcsAOnV75APCYOjVIlwm2X6ViDeZw6Btdb/Br/+yokcBABU3+eOESLlneGbR5SLiL8wPkoRaZ5X7xFlMTMvsv9yHk26bVdmsubSdbYS1Hy64n0+NnL7C1aLD7aJxOudMjVW5goZbfO2KxBQkCD4HFA284wbaB5vOL7mRilCn6YEs1kiwf22+fBLNUmXDb2p353wrD/ygTDhlki66USvUmd/ZAs9uzAddegEzy7Xn00YysWTu/hegYyZtWFC+X5dhLubWJ7n96y5wjrP7PAOXoQQtFUH9j/rBiP/7RwEAFnL/wYKYuj80mPGtimSbF/E9K7XwjwBz8yHZubmVMTCmwkZBM4h0FR1thnUGiSjqjJT6SfunWCZ/dZDQplrzS00UKcUP399SyM+nNG1br8Za0ZYwWch8nyLHYXSRuxdnrfUUespsOQo1cWSLGf0pV2HIcHoiAAEKwPU6irB5BSoFvB1qKVjgEk+QwAEYAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAABHAQA3pAD/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////AwAAAwAAAwAAAwAAAwAAAwBbwUdBABgAAAHgAACAwAoxAAmBIREAB/SBAAAAAQnwAAAAAUGaJGxDv/6plgAAAwAAAwAAAwAAAwAAAwAAAwAAAwAKCKB0AIhy1ftwLNISWucTFC7xeBcaIzP3oZjZo8uT9hqZVstWGnrPz+vjaA5FuCO+K2w7/o39LygDO7aL+0zSrN90LW7r133x8+f+PEKk8d7pd2fj4RYuMOXOYunzFzRX/4IvR1XsK5WJYwVkOca3yfo7DTvUBP9rgSiTRwEAGQD6CFK1PBC4qYCa+coLVnX+jgODNrau5YJXIekDI4+wUNV+5T5HE4e2t5EGAjn77+kC1Vghmvx8KqPnylVUvsaTofheggxHsPuxn1zQt6nA59UglrRUMn8b4pmrvfqTBSqU949+AcNAI6M/eAqz6r0RG5KNeBhx8R2f0x2kujwHU3pc3rlPb6ZrFM/2HiG97eEIezrvWFG7YAAAAwAAAwAE1KRo1VfbdZQ/tOpNGxFmTcQoFidyD2tHAQAapTTIErUKA2Rc9uIzGJu+oW0uNOxRyl6oJNUNJp5L9TIshNS1CmUKgdCaE3LkLwdE8iUkUnIGfWLiWpWmjzsINYC8dnDaSptB53yJkBu0SsR00oo1PZ0pl4ZzoXGSYQJTPaVCbj6FNqm5wcnUqKTB/rgHdPdnDj0K8asLABeo/n3XCXrDorI+LYSD1FBgmV9O7RZdjfL0NnXOQkiq/ZGirwVV0cUF1aHtZx1yHlAAZKuuu7TqB13CAUcBADuRAP///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////yj/IrOvAEoXDNGy+nrxWN0l8cmuqWYaUJpuM9XgAAADAAADAAKmR0EAPAcQAACJHH4AAAAB4AAAgMAKMQAJSOERAAkQoQAAAAEJ8AAAAAFBnkJ4hf8AAAMAAAMAAAMAAAMAAAMAAAMAAAMAC/BmhyuvLmkCgKTgACEXfOVvHRHdpBEEmTTz9pIZCa2FD0CXukzDCakOHekTpJQSdsfd7a/jjM1/5lBtKCAGQ6zOCSQ6DeKtyw+CugDuuglGipwmvQW+FIDjnZ6HRd0uaSOGy6VB3h9MI1o4nqaCqVwwIgubYZFHAQA9XgD////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////WcZrO6BEiqf8pCxYwlz2mkdUzY/ipM/TIHS4m5xQAAAMAAAMAAA5sVm90p14dlvWgBgY7XQ9KVOJKLtaMAN5KiffVQtNuzW5DfL+RewZpAAADAAADAAAQMUdBAB4AAAHgAACAgAUhAAkswQAAAAEJ8AAAAAEBnmF0Qr8AAAMAAAMAAAMAAAMAAAMAAAMAAAMAABJfBjP2+4+W7ZybyT130+Ma4WSqICfd/dS4YtjrLlmh5VBlfrtwJqdN1PBTYDkwGOOONqZQeFN6lLGJoDzvuh3kv1aDBLqug+JhvrSeu5ebnvcrtQzb2REwJL3h9mvtkr0WfDu4AAADAAADAAs32Y4C/6Ns79oCGj6oqLltY3T4I0/QRwEAP5wA//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////8BeoWLRnKQmVgO/RBoBfcK85AAAAMAAAMACFhHQQAwBxAAAJcsfgAAAAHgAACAwAoxAAllAREACUjhAAAAAQnwAAAAAQGeY2pCvwAAAwAAAwAAAwAAAwAAAwAAAwAAAwAAEmDKfLGXsvBBQPNYXlEd6WueJ4deApfcHESlG+7V6u0AiWQqJvNZYM+3Js3Lj9Ldc9yYIHqruVwfMtCYGlX3wMavI/DrhMuJw+RreIF8SKsJD8CMccAAAAMAAAMACrFZOBgEqaP/8EyWsAHV6CgcAgfyox/roEcBADGuAP//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////AAADAAADAHTBR0EAEgAAAeAAAIDACjEACfGhEQAJZQEAAAABCfAAAAABQZpoSahBaJlMCHf//qmWAAADAAADAAADAAADAAADAAADAAADAAALf8A2bry6lUyIAQGNFfVK2Cd7h4qDqmqpvmXfkfTwo2Ab79AHhajxJ4MPWIgAAA84xLRIx7I2CrWjWe96OvgkzgS9mtvhuxdzAgpuIOJI3DEY9mviDDZz8XSAAAADAAADAB7AZkj9AAHHGvk+Pzlku8UkWa5HAQAzogD//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////6HjAkbF/gsWuvw4QAAAAwAAAwAccUdBADQHEAAApTx+AAAAAeAAAIDACjEACblhEQAJgSEAAAABCfAAAAABQZ6GRREsL/8AAAMAAAMAAAMAAAMAAAMAAAMAAAMAAA3URJB/3lMHSmOd0GYZnfpoR80WdqxlyHzPX+V81VUMeXIGrRgq5agd+ACdjoGI036yQ/rmpGw0CmMBrKwpI+nwFo3SP0s1rI2yHBZaiPJjSUgw33rBkxXcq55kfLf2sAAAAwAAAwACBWolidWDnIeQAAADRwEANbEA//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////8AAAMADulHQQA2NAD///////////////////////////////////////////////////////////////////8AAAHgAACAgAUhAAmdQQAAAAEJ8AAAAAEBnqV0Qr8AAAMAAAMAAAMAAAMAAAMAAAMAAAMAABJXNihCnx11JUosH2hBE53O/YN+GPHqcnJiQBIf3maTAAj5iRt+7GYUKBAU9iCXTiouCjGYgAAAAwAAAwA9p4HQBg2cAAADAAADAADGgUdBADc4EAAAs0x+AP////////////////////////////////////////////////////////////////8AAAHgAACAwAoxAAnVgREACblhAAAAAQnwAAAAAQGep2pCvwAAAwAAAwAAAwAAAwAAAwAAAwAAAwAAAwBR6/L83y+ZevtMZ0FW4lp8qV7fVXQAhLAWlS6mDxvpaSUgChorvgTMXtxJEIAAAAMAAAMACqFCAAADAAADAAADAAz4R0EAOCsA////////////////////////////////////////////////////////AAAB4AAAgMAKMQALYiERAAnVgQAAAAEJ8AAAAAFBmqxJqEFsmUwId//+qZYAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAApQTq0hABLvkcWCYrAaRRPNDrECJGlF/11BYvG9+JJ9Y86nxnmQzPxtAAe1UgOsXAAADAAADAAADAAADAAADAAADAAADA/JHQQA5JhAAAMFcfgD/////////////////////////////////////////AAAB4AAAgMAKMQALKeERAAnxoQAAAAEJ8AAAAAFBnspFFSwv/wAAAwAAAwAAAwAAAwAAAwAAAwAAAwAADdRFmvrVE0KXDOGwWddlwYa1foib7tXZKmkua6R4APb4b8+tXwdSNNqgf2IVNwGTohgQAcMvp6SiQxpiQym4AAADAAADAANUNUAAAAMAAAMAAAMBN0dBADo8AP//////////////////////////////////////////////////////////////////////////////AAAB4AAAgIAFIQALDcEAAAABCfAAAAABAZ7pdEK/AAADAAADAAADAAADAAADAAADAAADAAADAFHTAfujIUaaLSuklb9y0/so9AEtQAqkAxOviALQZ5jNt/iOkABrCOZ4md0iUnFwAAADAAADAALwckAAAAMAAAMAAATcR0EAO0IQAADPbH4A//////////////////////////////////////////////////////////////////////////////8AAAHgAACAwAoxAAtGAREACynhAAAAAQnwAAAAAQGe62pCvwAAAwAAAwAAAwAAAwAAAwAAAwAAAwAAAwBR6/L83y+WryR9gmVKPGbIhJpkgAFgHCej3gB6rAHPgHHAAAADAAADAAAYIV0AAAMAAAMAAAMABnxHQQA8UQD//////////////////////////////////////////////////////////////////////////////////////////////////////////wAAAeAAAIDACjEAC9KhEQALRgEAAAABCfAAAAABQZrwSahBbJlMCG///qeEAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAAZ8UdBAD00EAAA3Xx+AP///////////////////////////////////////////////////////////wAAAeAAAIDACjEAC5phEQALYiEAAAABCfAAAAABQZ8ORRUsL/8AAAMAAAMAAAMAAAMAAAMAAAMAAAMAAA3URZr61RNClwzhI2ZXdRHYLZWc1yTgKRhTIXBNABHQKIIyYNyc+AaEn1jhATEAAAMAAAMAAAMAckkIAAADAAADAAADAEbBR0EAPkYA////////////////////////////////////////////////////////////////////////////////////////////AAAB4AAAgIAFIQALfkEAAAABCfAAAAABAZ8tdEK/AAADAAADAAADAAADAAADAAADAAADAAADAFHTAfujIUAYRtY0f/43cIs2OjxACR2hMR1QBGYX+34JGAAAAwAAAwAAAwKEJ6AAAAMAAAMAAAMA3oFHQQA/QhAAAOuMfgD//////////////////////////////////////////////////////////////////////////////wAAAeAAAIDACjEAC7aBEQALmmEAAAABCfAAAAABAZ8vakK/AAADAAADAAADAAADAAADAAADAAADAAADAFHr8vzfL5avJH2CZUo8ZsiEmmSAAWAcJ6PeAHqsAc+AccAAAAMAAAMAABghXQAAAwAAAwAAAwAGfEdBADBRAP//////////////////////////////////////////////////////////////////////////////////////////////////////////AAAB4AAAgMAKMQANQyERAAu2gQAAAAEJ8AAAAAFBmzRJqEFsmUwIZ//+nhAAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAGVAR0EAMTQQAAD5nH4A////////////////////////////////////////////////////////////AAAB4AAAgMAKMQANCuERAAvSoQAAAAEJ8AAAAAFBn1JFFSwv/wAAAwAAAwAAAwAAAwAAAwAAAwAAAwAADdRFmvrVE0KXDOEjZld1EdgtlZzXJOApGFMhcE0AEdAogjJg3Jz4BoSfWOEBMQAAAwAAAwAAAwBySQgAAAMAAAMAAAMARsFHQQAyRgD///////////////////////////////////////////////////////////////////////////////////////////8AAAHgAACAgAUhAAvuwQAAAAEJ8AAAAAEBn3F0Qr8AAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAUdMB+6MhQBhG1jR//jdwizY6PEAJHaExHVAEZhf7fgkYAAADAAADAAADAoQnoAAAAwAAAwAAAwDegEdBADNCEAABB6x+AP//////////////////////////////////////////////////////////////////////////////AAAB4AAAgMAKMQANJwERAA0K4QAAAAEJ8AAAAAEBn3NqQr8AAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAUevy/N8vlq8kfYJlSjxmyISaZIABYBwno94AeqwBz4BxwAAAAwAAAwAAGCFdAAADAAADAAADAAZ8R0EANFIA////////////////////////////////////////////////////////////////////////////////////////////////////////////AAAB4AAAgMAKMQANs6ERAA0nAQAAAAEJ8AAAAAFBm3hJqEFsmUwIV//+OEAAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAYtHQQA1NBAAARW8fgD///////////////////////////////////////////////////////////8AAAHgAACAwAoxAA17YREADUMhAAAAAQnwAAAAAUGflkUVLC//AAADAAADAAADAAADAAADAAADAAADAAAN1EWa+tUTQpcM4SNmV3UR2C2VnNck4CkYUyFwTQAR0CiCMmDcnPgGhJ9Y4QExAAADAAADAAADAHJJCAAAAwAAAwAAAwBGwEdBADZGAP///////////////////////////////////////////////////////////////////////////////////////////wAAAeAAAICABSEADV9BAAAAAQnwAAAAAQGftXRCvwAAAwAAAwAAAwAAAwAAAwAAAwAAAwAAAwBR0wH7oyFAGEbWNH/+N3CLNjo8QAkdoTEdUARmF/t+CRgAAAMAAAMAAAMChCegAAADAAADAAADAN6BR0EAN0IQAAEjzH4A//////////////////////////////////////////////////////////////////////////////8AAAHgAACAwAoxAA2XgREADXthAAAAAQnwAAAAAQGft2pCvwAAAwAAAwAAAwAAAwAAAwAAAwAAAwAAAwBR6/L83y+WryR9gmVKPGbIhJpkgAFgHCej3gB6rAHPgHHAAAADAAADAAAYIV0AAAMAAAMAAAMABn0=" + webUI["html/img/logo_w_600x200.png"] = "iVBORw0KGgoAAAANSUhEUgAAAlgAAADICAYAAAA0n5+2AAAAAXNSR0IArs4c6QAAAAlwSFlzAAAuIwAALiMBeKU/dgAABCZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IlhNUCBDb3JlIDUuNC4wIj4KICAgPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIgogICAgICAgICAgICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgICAgICAgICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyI+CiAgICAgICAgIDx0aWZmOlJlc29sdXRpb25Vbml0PjI8L3RpZmY6UmVzb2x1dGlvblVuaXQ+CiAgICAgICAgIDx0aWZmOkNvbXByZXNzaW9uPjU8L3RpZmY6Q29tcHJlc3Npb24+CiAgICAgICAgIDx0aWZmOlhSZXNvbHV0aW9uPjMwMDwvdGlmZjpYUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6T3JpZW50YXRpb24+MTwvdGlmZjpPcmllbnRhdGlvbj4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+MzAwPC90aWZmOllSZXNvbHV0aW9uPgogICAgICAgICA8ZXhpZjpQaXhlbFhEaW1lbnNpb24+NjAwPC9leGlmOlBpeGVsWERpbWVuc2lvbj4KICAgICAgICAgPGV4aWY6Q29sb3JTcGFjZT4xPC9leGlmOkNvbG9yU3BhY2U+CiAgICAgICAgIDxleGlmOlBpeGVsWURpbWVuc2lvbj4yMDA8L2V4aWY6UGl4ZWxZRGltZW5zaW9uPgogICAg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" + webUI["html/img/BC-QR.jpg"] = "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" webUI["html/img/mapping.png"] = "iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAAAXNSR0IArs4c6QAAAAlwSFlzAAAsSwAALEsBpT2WqQAABCRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IlhNUCBDb3JlIDUuNC4wIj4KICAgPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIgogICAgICAgICAgICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgICAgICAgICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyI+CiAgICAgICAgIDx0aWZmOlJlc29sdXRpb25Vbml0PjI8L3RpZmY6UmVzb2x1dGlvblVuaXQ+CiAgICAgICAgIDx0aWZmOkNvbXByZXNzaW9uPjU8L3RpZmY6Q29tcHJlc3Npb24+CiAgICAgICAgIDx0aWZmOlhSZXNvbHV0aW9uPjI4ODwvdGlmZjpYUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6T3JpZW50YXRpb24+MTwvdGlmZjpPcmllbnRhdGlvbj4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+Mjg4PC90aWZmOllSZXNvbHV0aW9uPgogICAgICAgICA8ZXhpZjpQaXhlbFhEaW1lbnNpb24+NTA8L2V4aWY6UGl4ZWxYRGltZW5zaW9uPgogICAgICAgICA8ZXhpZjpDb2xvclNwYWNlPjE8L2V4aWY6Q29sb3JTcGFjZT4KICAgICAgICAgPGV4aWY6UGl4ZWxZRGltZW5zaW9uPjUwPC9leGlmOlBpeGVsWURpbWVuc2lvbj4KICAgICAgICAgPGRjOnN1YmplY3Q+CiAgICAgICAgICAgIDxyZGY6QmFnLz4KICAgICAgICAgPC9kYzpzdWJqZWN0PgogICAgICAgICA8eG1wOk1vZGlmeURhdGU+MjAxOC0wOC0wMlQxMjowODo5NzwveG1wOk1vZGlmeURhdGU+CiAgICAgICAgIDx4bXA6Q3JlYXRvclRvb2w+UGl4ZWxtYXRvciAzLjM8L3htcDpDcmVhdG9yVG9vbD4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgIDwvcmRmOlJERj4KPC94OnhtcG1ldGE+CpRxQsEAAAJLSURBVGgF7VoxTgMxEMwBHWlAaeABVCEtBcoD+EBewCdCyQsQtLyAPCBvCBSRIBUPCF1ogqBJjlkrezGr6HTrO98lhy1Z9trr2VmvnbMNjUadUhzHLeQB8hw5LS3QOUbubvIf7X3kKXIZibgS51bCZdWgMT6D8nECgArkngagQN0B8dhbkblalVmLIyheCGUthhjuLBq77MihA0xTjHHBEBBOorHLjjghbNOg4Mg2RYO4hIiEiHiaAV5aSwf8hRgjZdHtTTTc2ZFXpZkY+hMx5k3IZYlr7jgudJHp2JElLaF0K1mirYn8nAWgQB3ibM59ERNCA52d6Nghv9isQiUtn0kURe92I9eBcYA6YZxym8dyDuwRuMw82gjQYQbsPdLDdNCROO0US3uEfp3usTZpjf5J2CNtNFwjl7FHvmBnCB5PCQkQoJudJtGvE23sJEFuI39rQArS7dskXK6nlwkAKiB1VxAxLcyUePAH8cQmlbEul4+UM8LkVjPc2ZHcaFUDBEeqjoC0HyIiZ6RqOUSk6ghI+xyRD9mRQTYfIktPylaX16rhzo48KE29QH8kxjxC/hFtZYiGe70OjWVMW7Dx32bA3iO7//iAC8DOPweZFQhH6O+CmkRvW2f28oV8owEoUHdMPPg70rFJZajTkqT7uZ3ObaHEuuHOjnCpsb8vlKUsur2JhruLA94Y5QEOjuSZPR9jQ0R8zGoezNpFhN5RtUm+/bpgaG1u0jd2OSLDTRopbZ/okxcrLUYKvKprbRfHhXr8m5PK/y1V/gWRKLfiNSmxEAAAAABJRU5ErkJggg==" + webUI["html/img/settings.png"] = "iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAAAXNSR0IArs4c6QAAAAlwSFlzAAAsSwAALEsBpT2WqQAABCRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IlhNUCBDb3JlIDUuNC4wIj4KICAgPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIgogICAgICAgICAgICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgICAgICAgICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyI+CiAgICAgICAgIDx0aWZmOlJlc29sdXRpb25Vbml0PjI8L3RpZmY6UmVzb2x1dGlvblVuaXQ+CiAgICAgICAgIDx0aWZmOkNvbXByZXNzaW9uPjU8L3RpZmY6Q29tcHJlc3Npb24+CiAgICAgICAgIDx0aWZmOlhSZXNvbHV0aW9uPjI4ODwvdGlmZjpYUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6T3JpZW50YXRpb24+MTwvdGlmZjpPcmllbnRhdGlvbj4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+Mjg4PC90aWZmOllSZXNvbHV0aW9uPgogICAgICAgICA8ZXhpZjpQaXhlbFhEaW1lbnNpb24+NTA8L2V4aWY6UGl4ZWxYRGltZW5zaW9uPgogICAgICAgICA8ZXhpZjpDb2xvclNwYWNlPjE8L2V4aWY6Q29sb3JTcGFjZT4KICAgICAgICAgPGV4aWY6UGl4ZWxZRGltZW5zaW9uPjUwPC9leGlmOlBpeGVsWURpbWVuc2lvbj4KICAgICAgICAgPGRjOnN1YmplY3Q+CiAgICAgICAgICAgIDxyZGY6QmFnLz4KICAgICAgICAgPC9kYzpzdWJqZWN0PgogICAgICAgICA8eG1wOk1vZGlmeURhdGU+MjAxOC0wOC0xMFQxODowODo4OTwveG1wOk1vZGlmeURhdGU+CiAgICAgICAgIDx4bXA6Q3JlYXRvclRvb2w+UGl4ZWxtYXRvciAzLjM8L3htcDpDcmVhdG9yVG9vbD4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgIDwvcmRmOlJERj4KPC94OnhtcG1ldGE+Ckxt87EAAAS7SURBVGgFzZpdiFVVGIbn5N+IMgVhaRLqWI7mQIJoIVRgOhQZNDAhWcbcVuPV3BRE6I14440iQQSaN0p6kz8zI0k5inUhZSSaYOVYODMo5eiMOOPf+LzH2cPMPmvttdbe53jOBy9rr2+938/ae51vr733qaoqgQwPD68B/wDJfXAP3AE94JMShCy+SxJ9CvSDJFlU7MiPFdsh/hrBdIffBsd48HApJjLPI4tnPThBlFJMZI5HBuWZCIt9AmgEzeAJR6JzHeMadnKI8wbYCz4Fkz18JlNwMgf8BCL5j4O3bVaMdUfEhPZqgv1U7HbEbDvoT7HZOPUYNwAlHheV09a4A3RTgMqtj9QY7JdgeM5i3I4+fDIYrQeq/UnyNYOTlBDtS+BwEjk2doz+KyO2OY5bwVCME+/qylTHT4C1D3k+uB33Yul3ov/eMuajlu1RH+II5wtT4hNNSnQ6U/kzbRkfq351bCfF8apAm7kmvq38njWRK0S305SHcSK5XO4U5O9MBmXWbSe3E6YccialdKzH2TTnQEF10XgZ5DdivsxEhkyxjVdERAwu03xmMiqD7hYx19km4cyHq6KyeHKkWpSz+ciVrHVpRYZk/wLHp0H2bULkNKzt4Eq86TKxLq3IECf6nXwV9QPbAfjHQSfoD7SN6L63gYhvbrkiTwKf/dPYpbdPVxKMnigdg0VAG8FQye8AzBl6aIk2A+wPiNoHd63LNZx3wbUAvz/CfTzJb/43AmkGpLfAi0DPE/NALQgtve+xFPdi5xRiNkHa5ySOJ/TR7RrBJdqL4AAxL+p+8ToYAFklNCnF3pM1KPba2L6v8vons5oPsko9ZyZoa0PsOoKezxoY+y5N5DYHWSvDTXzUMJH7IUkRW0tbyyV0CcfDDKmqDMe1KfqnQyehGNgo9q8p4hWYFGsiBY4fsSK/BRkkaPgj5PhMy720BnVFesfnlKo3Das0bw8XYJf196GEuzWRLSDoRypLg2w06FyqTS6Cx7iK1eeqGqrnugmuBgvB8+A5UAuqQYiU+oZ4h2T+BV3gAlDp/pai0U1rFpVGMAv8AHzFd4vShMOQLcoB+DNB/sSbM3ZoMV4BQsW0adSJSbNp1Hu1mY40/YZxpPdJaUSfFzrBMXAjjQNsdvll6cHCWVvKJIphdhcny11pqmolCk5aIDif0BKdZBucgPlO8kh/r8O4HtwClSCbk86HtQqQuUrvKVCf5OARjt0lll4H/WKKmbS0tmJQKZNQ7nq9+w0n2LhTN04E8jKMPpZ1hcli8tGTZYEYJwJrZQGzchTGz3a2ifwdkHc73LYAfpx6DcWXQK1LeiDsdpFGx7UOwUGQJKpmGyIjjvWh50iSQWzsZ/ofgvx+jnYp+B/YpJcB7QXDBKPJ4JDF6+/oCwoBuhoL36R+Jp4RJH16u2IgaxJpHhMehsBY3wTjV2YbOuuumLHrwCW6msbSj74O/DHGgV4Ohl8Jw1nSMmsB+tL6Wnw83odzBrhEr2GtgvFE8A74ADxtJZZygMC25cjQqBwqdg62qpUlziUP45Cq6OGuqqoUE/FJ8i+v7MpJYvEsHl1A5gNty2vLmaN3bBLdAvqB3svqXxLRvyEuc9zs7SiA+ACpw05pJx8SoAAAAABJRU5ErkJggg==" webUI["html/img/stream-limit.jpg"] = "/9j/4AAQSkZJRgABAQAAAQABAAD/4gJoSUNDX1BST0ZJTEUAAQEAAAJYbGNtcwQwAABtbnRyUkdCIFhZWiAH4wAFABcAFgAuAAphY3NwQVBQTAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA9tYAAQAAAADTLWxjbXMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAtkZXNjAAABCAAAAEBjcHJ0AAABSAAAAE53dHB0AAABmAAAABRjaGFkAAABrAAAACxyWFlaAAAB2AAAABRiWFlaAAAB7AAAABRnWFlaAAACAAAAABRyVFJDAAACFAAAACBnVFJDAAACFAAAACBiVFJDAAACFAAAACBjaHJtAAACNAAAACRtbHVjAAAAAAAAAAEAAAAMZW5VUwAAACQAAAAcAHMAUgBHAEIAIABJAEUAQwA2ADEAOQA2ADYALQAyAC4AMQAAbWx1YwAAAAAAAAABAAAADGVuVVMAAAAyAAAAHABOAG8AIABjAG8AcAB5AHIAaQBnAGgAdAAsACAAdQBzAGUAIABmAHIAZQBlAGwAeQAAAABYWVogAAAAAAAA9tYAAQAAAADTLXNmMzIAAAAAAAEMSgAABeP///MqAAAHmwAA/Yf///ui///9owAAA9gAAMCUWFlaIAAAAAAAAG+UAAA47gAAA5BYWVogAAAAAAAAJJ0AAA+DAAC2vlhZWiAAAAAAAABipQAAt5AAABjecGFyYQAAAAAAAwAAAAJmZgAA8qcAAA1ZAAAT0AAACltjaHJtAAAAAAADAAAAAKPXAABUewAATM0AAJmaAAAmZgAAD1z/2wBDAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQH/2wBDAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQH/wAARCAQ4B4ADASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD/AD/6KKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigD9PvBf/AARa/wCCrXxF8HeE/iD4G/YM/aL8UeCfHfhrQvGXg/xNpHgia50nxF4W8T6Xa634f13TLkTgXGn6vpN9aahZTgAS21xFIAN1dL/w4o/4LB/9I7/2m/8AwgZ//kiv9b3/AIJp/wDKOX9gH/syf9lX/wBUV4Dr7YoA/wAWr/hxR/wWD/6R3/tN/wDhAz//ACRR/wAOKP8AgsH/ANI7/wBpv/wgZ/8A5Ir/AGlaKAP8Wr/hxR/wWD/6R3/tN/8AhAz/APyRR/w4o/4LB/8ASO/9pv8A8IGf/wCSK/2laKAP8Wr/AIcUf8Fg/wDpHf8AtN/+EDP/APJFH/Dij/gsH/0jv/ab/wDCBn/+SK/2laKAP8Wr/hxR/wAFg/8ApHf+03/4QM//AMkUf8OKP+Cwf/SO/wDab/8ACBn/APkiv9pWigD/ABav+HFH/BYP/pHf+03/AOEDP/8AJFH/AA4o/wCCwf8A0jv/AGm//CBn/wDkiv8AaVooA/xav+HFH/BYP/pHf+03/wCEDP8A/JFH/Dij/gsH/wBI7/2m/wDwgZ//AJIr/aVooA/xav8AhxR/wWD/AOkd/wC03/4QM/8A8kUf8OKP+Cwf/SO/9pv/AMIGf/5Ir/aVooA/xav+HFH/AAWD/wCkd/7Tf/hAz/8AyRR/w4o/4LB/9I7/ANpv/wAIGf8A+SK/2laKAP8AFq/4cUf8Fg/+kd/7Tf8A4QM//wAkUf8ADij/AILB/wDSO/8Aab/8IGf/AOSK/wBpWigD/Fq/4cUf8Fg/+kd/7Tf/AIQM/wD8kUf8OKP+Cwf/AEjv/ab/APCBn/8Akiv9pWigD/Fq/wCHFH/BYP8A6R3/ALTf/hAz/wDyRR/w4o/4LB/9I7/2m/8AwgZ//kiv9pWigD/E88f/APBGT/gqj8K/AnjT4nfEX9hL9ofwf8P/AIdeFPEPjnxz4t1zwTNaaL4X8IeE9Ju9d8SeIdXujORbaZo2j2F5qN9OQRDa20shB24r8yq/28f+Ctf/ACit/wCClX/ZhH7Xv/rP/wAQK/xDqACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooA+j/ANmj9kL9pr9snxbrvgL9lr4K+Ovjn408M+HH8X6/4Y+H2ljWdZ0vwvFqen6NLr1zYrNHMNMh1XVtL0+a7RWihu9RsoZSj3MIf7U/4cUf8Fg/+kd/7Tf/AIQM/wD8kV2v/BAD9sj/AIYi/wCCrf7K/wATNW1X+yvh98QPFw+AHxWklm+z6f8A8IJ8aWg8HjU9Xl3Ls0rwd4wufCPxAuz82B4RQlJACjf7MFAH+LV/w4o/4LB/9I7/ANpv/wAIGf8A+SKP+HFH/BYP/pHf+03/AOEDP/8AJFf7StFAH+LV/wAOKP8AgsH/ANI7/wBpv/wgZ/8A5Io/4cUf8Fg/+kd/7Tf/AIQM/wD8kV/tK0UAf4tX/Dij/gsH/wBI7/2m/wDwgZ//AJIo/wCHFH/BYP8A6R3/ALTf/hAz/wDyRX+0rRQB/gx/HT4CfGb9mT4n+Ivgt+0B8NfFnwj+K3hJNHl8SeA/G2lzaP4i0iLxBomneI9Emu7KbJWLU9C1bTtTs5UZ45rW7idWySB5HX9yX/B69+yL/wAIr8eP2V/22/D2meXpfxb8Da18BfiPd2sOy3i8afDG9k8U+BdR1OXbiXVPFHg/xZrukWzB2P8AZnw0jjZIxEjS/wANtABRRRQAUUUUAFFFFABRRRQAUUUUAPRHldIokeSSR1SONFLu7uQqIiKCzOzEKqqCWJAAJNfq8n/BCv8A4LBSIki/8E7/ANp3a6q67vh/dI21gGG5HnV0bB5V1VlPDAEEVv8A/BBj9kX/AIbU/wCCrf7Ivwo1PTP7T8DeGPiFb/Gz4nRTQ+fpzeAvgpE3xDv9L1hQrEaZ4w1nRdD8BSkAFp/FdvH5kO/zo/8AZ4oA/wAWr/hxR/wWD/6R3/tN/wDhAz//ACRR/wAOKP8AgsH/ANI7/wBpv/wgZ/8A5Ir/AGlaKAP8Wr/hxR/wWD/6R3/tN/8AhAz/APyRR/w4o/4LB/8ASO/9pv8A8IGf/wCSK/2laKAP8Wr/AIcUf8Fg/wDpHf8AtN/+EDP/APJFH/Dij/gsH/0jv/ab/wDCBn/+SK/2laKAP8Kz9p39iX9rL9i7UfCOkftV/AT4ifAfVPHtlq+o+DtO+IejjRb3xDp+gz2Ntq97p1s00k0lrY3GpWUEs7IkbSz+XGztHKI/lqv6F/8Ag5+/bI/4a5/4K2/HDTNF1X+0fh7+y5aaZ+y74KEU261GofDq61K8+KVz5UbG3N0fi9r3jnSTexl5bzSdE0USybLeCGD+eigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigD/cg/4Jp/8o5f2Af+zJ/2Vf8A1RXgOvtivif/AIJp/wDKOX9gH/syf9lX/wBUV4Dr7YoAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigD8+P8AgrX/AMorf+ClX/ZhH7Xv/rP/AMQK/wAQ6v8Abx/4K1/8orf+ClX/AGYR+17/AOs//ECv8Q6gAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAHI7xOkkbtHJGyvHIjFHR0IZXRlIZWVgGVlIIIBBBFf7Z//BIH9sRP28f+Cbv7J37St5qS6n4x8VfC/TPDXxTmMqvc/wDC3PhxNcfD/wCJdxdQ5Mtp/bPi7w3qfiLT7e4zK2jazplyHnhuIrib/Eur/QW/4Mm/2yPteh/tZfsE+JNV3T6PeaT+1D8KNPml3yNp2pDRvht8YrW381t0NrYahB8JtRtLK33Rtda5r980cUjzyzgH98VFFFABRRRQAUUUUAfhR/wcifsif8Ngf8Eif2ndD0vTP7T8dfAvSbH9p74ehYvPuINW+DCXur+MUs4FUzXF/qvwjvfiRoFhb25E819q9skazn/R5v8AHer/AH6NW0rTdd0rU9D1mxtdU0fWdPvNK1bTL6FLmy1HTdRtpLS+sby3kDRz2t3azS29xDIrJLFI6OCrEV/hv/8ABQv9lrUv2J/23/2ov2V9Riuo4Pgv8Y/GHhbwzPe7/tWqeAJdQbWfhrr83mfPu8R/D7VPDOvjcWO3Uh88n32APjeiiigAooooAKKKKACiiigAooooA/0D/wDgyU/ZE+z6T+19+3Xr+mYl1G70D9lz4Y6lJFtdbSwTSfif8YfKaRd0lvd3Vz8HreC4g2xifS9VtneSRHSD++mvyl/4Ih/sif8ADEf/AAS3/ZB+B2o6X/ZXjV/hhYfE/wCKEEsPlahH8S/jDNN8SfFmmaq21WnvfCl14ki8EpKw+Ww8M2MCExQxmv1aoAKKKKACiiigAr5A/b+/ao0X9iP9iv8AaZ/as1xrRk+Cfwi8V+LdCsr5gtrrfjk2R0j4c+GZWLKF/wCEq8f6n4a8NodwxJqqdeh+v6/ib/4PTP2yP+EA/Za/Z5/Yk8N6r5WvftCfEG7+LPxGtLWb98nww+Dogh8OaVqtvuA+weKviT4g03W9Nk2uWvvhfdrujEZEoB/nB+IfEGteLPEGueKvEup3eteIvE2san4g1/WL+Uz32ra1rN7PqOq6nezNzNd399cz3VzKeZJpXc8mseiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigD/cg/4Jp/8AKOX9gH/syf8AZV/9UV4Dr7Yr4n/4Jp/8o5f2Af8Asyf9lX/1RXgOvtigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAPz4/4K1/8orf+ClX/AGYR+17/AOs//ECv8Q6v9vH/AIK1/wDKK3/gpV/2YR+17/6z/wDECv8AEOoAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAr9V/+CJP7ZH/DCn/BT39k348anqv9leA2+Itp8Mvi1NNN5Onp8LPi3FJ8P/F+qaou5RPaeEbfXYPHcMLMB/aXhXT5R80Sg/lRRQB/v8UV+TP/AAQ5/bI/4bo/4JdfsnfG7VNV/tXx9p/w+tfhN8WpZZvO1Fvid8IJG8A+JNV1f5m8u/8AGUWi6d8QFjDECx8W2TgRh/LT9ZqACiiigAooooAK/wA07/g9I/ZE/wCFcftj/AD9sXQNM8jQP2lfhZdfD7xtd28O5H+KPwOnsbO31HUp1A8q41z4a+KvBmkaXDN808HgPUnhZ1tplh/0sa/nd/4Oi/2RP+Gq/wDgkT8cNZ0fS/7R8dfsuapoP7T/AITMUO64TS/ACahpXxSVp0Bnjsbf4ReJvHOuz26hoLi+0HS2nQG3iuLcA/yKaKKKACiiigAooooAKKKKACv02/4I3fsi/wDDcf8AwUy/ZC/Z3vtM/tXwfr3xX0nxh8TrWSLfaS/Cr4XQ3PxJ+IlleyMGhto9d8L+FtQ8NWk04MbaprWn2yxzz3EUEv5k1/eL/wAGTH7In9reP/2uf259f0zdZ+D9A0H9mf4Z6hND5sEmveK7jTviL8VprV3Gy21LQ9E0b4YWSTwlp207xnqVsWhgnkS5AP8AQzooooAKKKKACiiigAr/AB3f+DkD9sj/AIbN/wCCtf7SWvaRqv8Aanw9+BGpWv7MPw1aOf7RaJovwcudR0zxfd2E6MYLnT9d+LV/8RfEWm3dsPJuNM1axZJJ1VbiX/Ux/wCCnv7XVn+wl+wF+1T+1TLdW1trXws+E2vXHgJbsRtBe/FTxOYPBnwo02aKQMJbe/8AiN4h8MW16qxysti9zN5UixMp/wAQK+vr3U7281LUru5v9R1C6uL6/vryaS5u729u5XuLq7uriZnlnubieR5p5pXaSWV2d2ZmJIBVooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooA/sa/Z9/4PGv2mv2ffgJ8EPgJo37HXwJ8QaP8EPhD8NfhDpOv6n43+IFtqWt6b8NfBmi+DLHV9Qt7QfZbe+1K10WK9u4bb/R4riaSOH92q169/xG8ftWf9GRfs9/+F98R/8ACv4h6KAP7eP+I3j9qz/oyL9nv/wvviP/AIUf8RvH7Vn/AEZF+z3/AOF98R/8K/iHooA/t4/4jeP2rP8AoyL9nv8A8L74j/4Uf8RvH7Vn/RkX7Pf/AIX3xH/wr+IeigD+3j/iN4/as/6Mi/Z7/wDC++I/+FH/ABG8ftWf9GRfs9/+F98R/wDCv4h6KAP9GT/gmX/wdhftE/t2/t3fs3/skeLv2T/gt4E8N/G/xpf+F9W8XeHPGPjnUNb0O3tPCviHxCt1p9lqY+wXEzzaNFbslz8gimkYfOq1/cpX+NT/AMG73/KaX9gD/srmtf8AqtPHVf7K1ABRRRQAUUUUAFFFFAH8KH/BRT/g7X/aN/Yq/bf/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WOj6BoOn3Gq6xql5Jg+Xaafp1pcXdw+DshhdsHGKAP8AN2/4PR/2yP8AhY37XHwD/Yq8N6r53h/9m34dT/Er4g2dtNiP/hanxqFlcaTpmqW4Yh7rw38MdB8M6zpUzhWitviTqKICJmJ/itr6y/bt/ah179tX9sf9pP8Aaq8RG6juvjh8XfF/jbS7C9fzLjQfCN1qUln4D8LF98m6Lwl4IsvD/hm2Jkc/ZtJiBdj8x+TaACiiigAooooAK/2Hv+DZvSf7G/4Id/sIWe3Z53hv40atjGM/29+0r8Ztc3f8D/tHfnvuzzmv8eGv9kD/AINw7+HUv+CJ37A1xAqqkfw58c2DBOhm0r40fEvTLhj/ALb3FnKz/wC2WoA/biiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAr/JJ/4Ow/+U2X7Q//AGTv9nj/ANUr4Nr/AFtq/wAkn/g7D/5TZftD/wDZO/2eP/VK+DaAP5vaKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKK6vwJ4G8W/E3xn4X+HngLQdQ8UeNPGmu6b4a8L+HtLi86/1fWtXuo7OwsrdCVRTLPKoeaZ47e3iD3FzLFBFJIt06dSrUhSpQnUq1Zwp06dOMp1KlSpOMKdOEIKUpznOcIQhGMpSlKMYpuST58Xi8LgMJisfjsTh8FgcDhsRjcbjcXXpYXCYPB4OhWxWLxeKxOIqUaGHw2Fw2GxGIxGIr1aVGhQoVq1WpTp0pzj9Y/sAfsT+O/27/wBofw38HvC32vSfCtqY/EXxU8cx2/nWvgfwDZ3MMep6gDIpgm13VHkTR/C2myZ+361dwPcCLSrTVL2z/wBHr4T/AAs8CfBD4beC/hL8MtAtPDHgPwBoNl4c8NaJZj5LWwskOZriZv3t7qV/cvPqOr6ndNJe6rqt3eal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gAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAr+z7/ggp/wTT/4VH4Psf20vjV4f8r4n/ELRXX4K+HtVtsXPgT4d6zbFJvGk8E6brXxN8QbCXZpbIqz6X4Hn/17P4t1GysPyI/4Ip/8E13/AGxfjB/wuX4r6G837N3wa1q0m1S1voD9h+KPxAtlg1HSvAMXmL5V3oOmRyWmt+O8ear6bNpfh14h/wAJK95p/wDedHGkSJFEiRxxoscccahEjRAFRERQFVFUBVVQAoAAAAr+o/AXw29vUpcdZ3h/3FGclw3ha0NK1eDlTq5zOE1rTw8lOjlzaaniFXxkbxw+Hkf4Nfta/psf2Tg8d9FLwvzi2aZlh6E/GrPctxHv5dleIhRxeC8NsPiKFS8Mbm1KWFzPjSMKkZ4bKJZTw5VUKub5vRT6KKK/rU/55AooooAKKKr3d3a2Frc319c29lY2VvNd3l5dzR21raWttG01xc3NxMyQwW8EKPLNNK6RxRozuyqpIG0k22kkm220kkk2222kkkm220kk22km04xlOUYQjKc5yjCEIRlOc5zlGMIQhGMpSnKUoxjGMZSlKUYxjKUoxlYoqlpuo6frGn2Gr6TfWeqaVqlla6jpmp6fcw3un6jp99AlzZX1jeWzyW93Z3dtLHcW1zBJJDPDIksTsjqxu0k1JKUWnFpNNNNNNJppptNNNNNNpppptNNucJ0pzp1ITp1Kc506lOpCdOpTqU5zp1KdSnUjCpTqU6lOdOpTqQhOE4ThOEJwnCBRRRTJCiiigD8if+Cvv/BOiw/bq+A0ms+CNNtIv2i/hFZalrXwv1HENtN4u00p9q1z4X6pdvsRrXxCIRc+Gp7yRIdI8Vw2j/arDS9W8QPcf59Ooaff6Tf32larZXem6npl5c6fqWnX9vNZ31hf2Uz215ZXtpcJHPa3drcRyQXNvPGk0E0bxSIrqyj/AFjK/kJ/4L+/8E2P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/DSP/BUjUvgr4f1X7d4A/Y18AaL8IbSK3m87TpviZ4mSHx78VtVhBYmPULa61fw18PtYjCoEvPh1sCsVMsoB/LfRRRQAUUUUAFFFFABRRRQAUUUUAFf6lH/BsR/wW/h/bw+Ddn+xj+0n4qib9sH4C+E7ePwt4i1m7Vb/APaF+D2gQwWFp4kW4nYPqXxM8BWv2TS/H9u5k1LxFpA03x8kmp3U3jWXRP8ALXr0j4P/ABg+J3wA+J/gf4z/AAY8b6/8OPil8N/EFl4o8E+NvDF61jrWg61YMTFcW8oDxT288TzWWpabew3OmavplzeaVqtneabeXVrMAf72FFfzsf8ABCH/AIL2fCb/AIKr/DKw+GXxPvvDPwy/bk8CaKg8e/DJbqLTdK+K+nadbZuvil8HrW8nM9/pc8cL3fi7wbBJeav4DvTKZvtnhqfStbu/6J6ACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooA+HP8Agp3/AMo1v+Chf/Zjn7WX/qhPH9f4dVf7iv8AwU7/AOUa3/BQv/sxz9rL/wBUJ4/r/DqoAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKtWNje6ne2em6bZ3WoajqF1b2NhYWNvLd3t9e3cqQWtnaWsCST3N1czyRw29vCjyzSukcaM7AFpNtJJttpJJNtttJJJJtttpJJNttJJtpOZzhThKpUlGEIRlOc5yjCEIQjKc5znOUIQhCEJznOc4QhCE5znGMZSj7x+y5+zX8Sf2t/jj4G+BHwr0/7V4l8ZaksdzqVxHK2keFPDtpifxB4v8AEM0SsbbRPD+nCW8uiM3F5MLbStOjudV1CxtLj/SQ/ZX/AGZ/ht+yJ8DPA/wH+Flh9n8O+D9PAvtWniiTV/F3iW8CzeIfGHiGWIYuNZ1+/wB9zMNxgsLUWej6ctvpWm2FrB+fv/BHj/gnDZfs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FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF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FFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFAH//Z" - webUI["html/img/users.png"] = "iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAAAXNSR0IArs4c6QAAAAlwSFlzAAAsSwAALEsBpT2WqQAABCRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IlhNUCBDb3JlIDUuNC4wIj4KICAgPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIgogICAgICAgICAgICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgICAgICAgICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyI+CiAgICAgICAgIDx0aWZmOlJlc29sdXRpb25Vbml0PjI8L3RpZmY6UmVzb2x1dGlvblVuaXQ+CiAgICAgICAgIDx0aWZmOkNvbXByZXNzaW9uPjU8L3RpZmY6Q29tcHJlc3Npb24+CiAgICAgICAgIDx0aWZmOlhSZXNvbHV0aW9uPjI4ODwvdGlmZjpYUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6T3JpZW50YXRpb24+MTwvdGlmZjpPcmllbnRhdGlvbj4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+Mjg4PC90aWZmOllSZXNvbHV0aW9uPgogICAgICAgICA8ZXhpZjpQaXhlbFhEaW1lbnNpb24+NTA8L2V4aWY6UGl4ZWxYRGltZW5zaW9uPgogICAgICAgICA8ZXhpZjpDb2xvclNwYWNlPjE8L2V4aWY6Q29sb3JTcGFjZT4KICAgICAgICAgPGV4aWY6UGl4ZWxZRGltZW5zaW9uPjUwPC9leGlmOlBpeGVsWURpbWVuc2lvbj4KICAgICAgICAgPGRjOnN1YmplY3Q+CiAgICAgICAgICAgIDxyZGY6QmFnLz4KICAgICAgICAgPC9kYzpzdWJqZWN0PgogICAgICAgICA8eG1wOk1vZGlmeURhdGU+MjAxOC0wOC0zMFQxNzowODozODwveG1wOk1vZGlmeURhdGU+CiAgICAgICAgIDx4bXA6Q3JlYXRvclRvb2w+UGl4ZWxtYXRvciAzLjM8L3htcDpDcmVhdG9yVG9vbD4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgIDwvcmRmOlJERj4KPC94OnhtcG1ldGE+CjU01MMAAANJSURBVGgF1ZnLaxNRFMYz2rpoFbW+SCsihaJQRMT6rPhAXAq6c+HChSguRFd1oRtd+A/oWhQ3oiiWFB91UbqRqlXXgoIIQhFbQTTQao2/GzLDZEjIPefO7SQHPjJz55zzfd/MZCa5N8h5ilKptJvWp8FekAed4Bv4Cj6Dh2A4CIJZPpszMHEV2MQ0SZdB0DROENMHjoEzQBoFCpZnbgYR58E/qfpE/kv2F2dmBvJ94G9ClHb3SiZGUBuASa3qGnVzjG3RmFmkKYrVHGB7e2zfdbOdBhc1TVyNnNSQNqg5wVURf/FdjRxpIEpzuIOio9JCtRHO2hrINkgJLfPFt6vaCII2WYrSpPVJi1RGuBrmTbxeSibIX5j3CUauAfOo9BXzNH4nMJ5TXREI1gHzqPQVRtc2zCyxJdAaGbclcMj7zi/jOdt6rZFhCH7akijznknqVEY4U78heSAhUuTekNSojFQIChIiYe57TtZrSY2LkecQzUjIBLljglz3VJ4qg+AXSDNGabbWXZ2wA6Qjabqg136hhHK6y60V8o2EGyl8/qHHpKZPGkYeQzyvIa9RM86XvFhjvOGQsxGIp2B50ZDJLuG2XZqnLO5rM3viGh9o0OZJon1bRLxxdHLcns1jJiYOAu2U0D2P0uStMXJdcVU+UdMlZ/NYgaA28ERg5ge5/R4l6VsjrANMWJiZJWeXnqm60vnxW90ul6u8ByaS4zX2i+S+qjGuGkrdSEWFzT1vlhlSC19Gui0UtnNriSfi6vX1ZWRjPcLEeGrzYqkb4SyvQGxvQnC93cF6BzIfx8gpYBsfSdycuei4AAR1ggugCCRh1lbugIF4vwXbhtisjfSDc+ARSOOf4lv6mNWv1VIj1ouQNF9K851gDzArtWbV1uYxS5o4zB+sp+AuKPC+cVv5RXwPuATMmUpreY1Wopgh+ybYKj4dFHWB+8DMwTZTjCHmsJUhEgfAF9DMcQtx9V8dHMyDqWZ2ENM2FL8yVV92kkY56GM5Lc6Z1vY0jbp5EJQnuqPLg4kdLWTCnIxVIJoDi4wweNYcbbGIfuLEjRxqMRNGbvTvsmyE22oZg70taKQn1BxekXw40GKfK0O9oZHsJ8ZCRbLPaI3xP7YzeQoHxWckAAAAAElFTkSuQmCC" - webUI["html/index.html"] = "PCFkb2N0eXBlIGh0bWw+DQo8aHRtbD4NCiAgPGhlYWQ+DQogICAgPG1ldGEgY2hhcnNldD0idXRmLTgiPg0KICAgIDwhLS0tDQogICAgPG1ldGEgbmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9IndpZHRoPWRldmljZS13aWR0aCwgaW5pdGlhbC1zY2FsZT0xLjAiIC8+IA0KICAgIC0tPg0KICAgIDx0aXRsZT54VGVWZTwvdGl0bGU+DQogICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJjc3Mvc2NyZWVuLmNzcyIgdHlwZT0idGV4dC9jc3MiPg0KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iY3NzL2Jhc2UuY3NzIiB0eXBlPSJ0ZXh0L2NzcyI+DQoNCiAgICA8c2NyaXB0IGxhbmd1YWdlPSJqYXZhc2NyaXB0IiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ianMvbmV0d29ya190cy5qcyI+PC9zY3JpcHQ+DQogICAgPHNjcmlwdCBsYW5ndWFnZT0iamF2YXNjcmlwdCIgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9ImpzL21lbnVfdHMuanMiPjwvc2NyaXB0Pg0KICAgIDxzY3JpcHQgbGFuZ3VhZ2U9ImphdmFzY3JpcHQiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJqcy9zZXR0aW5nc190cy5qcyI+PC9zY3JpcHQ+DQogICAgPHNjcmlwdCBsYW5ndWFnZT0iamF2YXNjcmlwdCIgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9ImpzL2xvZ3NfdHMuanMiPjwvc2NyaXB0Pg0KICAgIDxzY3JpcHQgbGFuZ3VhZ2U9ImphdmFzY3JpcHQiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJqcy9iYXNlX3RzLmpzIj48L3NjcmlwdD4NCg0KICA8L2hlYWQ+DQoNCiAgICA8Ym9keSBvbmxvYWQ9ImphdmFzY3JpcHQ6IFBhZ2VSZWFkeSgpOyI+DQoNCiAgICAgIDxkaXYgaWQ9ImxvYWRpbmciIGNsYXNzPSJub25lIj4NCiAgICAgICAgPGRpdiBjbGFzcz0ibG9hZGVyIj48L2Rpdj4NCiAgICAgIDwvZGl2Pg0KDQogICAgICA8ZGl2IGlkPSJwb3B1cCIgY2xhc3M9Im5vbmUiPg0KICAgICAgICA8ZGl2IGlkPSJwb3B1cC1jdXN0b20iPjwvZGl2Pg0KICAgICAgPC9kaXY+DQoNCiAgICAgIDxkaXYgaWQ9ImxheW91dCI+DQoNCiAgICAgICAgPCEtLQ0KICAgICAgICA8ZGl2IGlkPSJub3RpZmljYXRpb24iPg0KICAgICAgICAgIDxkaXYgY2xhc3M9ImVsZW1lbnQiPg0KICAgICAgICAgICAgPGg1PlhFUEc8L2g1Pg0KICAgICAgICAgICAgPHByZT4xMS4wNS4yMDE5IC0gMjA6MjE8L3ByZT4NCiAgICAgICAgICAgIDxocj4NCiAgICAgICAgICAgIDxwPkhhbGxvIGRhcyBpc3QgZWluIFRlc3QuIFVuZCBub2NoIG1laHIgVGV4dC48L3A+DQogICAgICAgICAgPC9kaXY+DQogICAgICAgIDwvZGl2Pg0KICAgICAgLS0+DQoNCiAgICAgICAgPGRpdiBpZD0ibWVudS13cmFwcGVyIiBjbGFzcz0ibGF5b3V0LWxlZnQiPg0KICAgICAgICAgIDxkaXYgaWQ9ICJicmFuY2giPjwvZGl2Pg0KICAgICAgICAgIDxkaXYgaWQ9ImxvZ28iPjwvZGl2Pg0KICAgICAgICAgIDxuYXYgaWQ9Im1haW4tbWVudSI+PC9uYXY+DQogICAgICAgIDwvZGl2Pg0KDQogICAgICAgIDxkaXYgY2xhc3M9ImxheW91dC1yaWdodCI+DQoNCiAgICAgICAgICA8dGFibGUgaWQ9ImNsaWVudEluZm8iIGNsYXNzPSIiPg0KDQogICAgICAgICAgICA8dHI+DQogICAgICAgICAgICAgIDx0ZCBjbGFzcz0idGRLZXkiPnhUZVZlOjwvdGQ+DQogICAgICAgICAgICAgIDx0ZCBpZD0idmVyc2lvbiIgY2xhc3M9InRkVmFsIj4mbmJzcDs8L3RkPg0KICAgICAgICAgICAgICA8dGQgY2xhc3M9InRkS2V5Ij5PUzo8L3RkPg0KICAgICAgICAgICAgICA8dGQgaWQ9Im9zIiBjbGFzcz0idGRWYWwiPiZuYnNwOzwvdGQ+DQogICAgICAgICAgICAgIDx0ZCBjbGFzcz0idGRLZXkgcGhvbmUiPkRWUiBJUDo8L3RkPg0KICAgICAgICAgICAgICA8dGQgaWQ9IkRWUiIgY2xhc3M9InRkVmFsIHBob25lIj4mbmJzcDs8L3RkPg0KICAgICAgICAgICAgPC90cj4NCg0KICAgICAgICAgICAgPHRyPg0KICAgICAgICAgICAgICA8dGQgY2xhc3M9InRkS2V5Ij5VVUlEOjwvdGQ+DQogICAgICAgICAgICAgIDx0ZCBpZD0idXVpZCIgY2xhc3M9InRkVmFsIj4mbmJzcDs8L3RkPg0KICAgICAgICAgICAgICA8dGQgY2xhc3M9InRkS2V5Ij5BcmNoOjwvdGQ+DQogICAgICAgICAgICAgIDx0ZCBpZD0iYXJjaCIgY2xhc3M9InRkVmFsIj4mbmJzcDs8L3RkPg0KICAgICAgICAgICAgICA8dGQgY2xhc3M9InRkS2V5IHBob25lIj5NM1UgVVJMOjwvdGQ+DQogICAgICAgICAgICAgIDx0ZCBpZD0ibTN1LXVybCIgY2xhc3M9InRkVmFsIHBob25lIj4mbmJzcDs8L3RkPg0KICAgICAgICAgICAgPC90cj4NCg0KICAgICAgICAgICAgPHRyPg0KICAgICAgICAgICAgICA8dGQgY2xhc3M9InRkS2V5Ij5BdmFpbGFibGUgU3RyZWFtczo8L3RkPg0KICAgICAgICAgICAgICA8dGQgaWQ9InN0cmVhbXMiIGNsYXNzPSJ0ZFZhbCI+Jm5ic3A7PC90ZD4NCiAgICAgICAgICAgICAgPHRkIGNsYXNzPSJ0ZEtleSI+RVBHIFNvdXJjZTo8L3RkPg0KICAgICAgICAgICAgICA8dGQgaWQ9ImVwZ1NvdXJjZSIgY2xhc3M9InRkVmFsIj4mbmJzcDs8L3RkPg0KICAgICAgICAgICAgICA8dGQgY2xhc3M9InRkS2V5IHBob25lIj5YRVBHIFVSTDo8L3RkPg0KICAgICAgICAgICAgICA8dGQgaWQ9InhlcGctdXJsIiBjbGFzcz0idGRWYWwgcGhvbmUiPiZuYnNwOzwvdGQ+DQogICAgICAgICAgICA8L3RyPg0KDQogICAgICAgICAgICA8dHI+DQogICAgICAgICAgICAgIDx0ZCBjbGFzcz0idGRLZXkiPlhFUEcgQ2hhbm5lbHM6PC90ZD4NCiAgICAgICAgICAgICAgPHRkIGlkPSJ4ZXBnIiBjbGFzcz0idGRWYWwiPiZuYnNwOzwvdGQ+DQogICAgICAgICAgICAgIDx0ZCBjbGFzcz0idGRLZXkiPkVycm9yczo8L3RkPg0KICAgICAgICAgICAgICA8dGQgaWQ9ImVycm9ycyIgY2xhc3M9InRkVmFsIj4mbmJzcDs8L3RkPg0KICAgICAgICAgICAgICA8dGQgY2xhc3M9InRkS2V5Ij5XYXJuaW5nczo8L3RkPg0KICAgICAgICAgICAgICA8dGQgaWQ9Indhcm5pbmdzIiBjbGFzcz0idGRWYWwiPiZuYnNwOzwvdGQ+DQogICAgICAgICAgICA8L3RyPg0KDQogICAgICAgICAgPC90YWJsZT4NCiAgICAgICAgIA0KICAgICAgICAgIDxkaXYgaWQ9Im15U3RyZWFtc0JveCIgY2xhc3M9Im5vdFZpc2libGUiPg0KDQogICAgICAgICAgICA8ZGl2IGlkPSJhbGxTdHJlYW1zIj4NCiAgICAgICAgICAgICAgPHRhYmxlIGlkPSJhY3RpdmVTdHJlYW1zIj48L3RhYmxlPg0KICAgICAgICAgICAgICA8dGFibGUgaWQ9ImluYWN0aXZlU3RyZWFtcyI+PC90YWJsZT4NCiAgICAgICAgICAgIDwvZGl2Pg0KDQogICAgICAgICAgPC9kaXY+DQogICAgICAgICAgDQogICAgICAgICAgPGRpdiBpZD0iY29udGVudCIgY2xhc3M9IiI+PC9kaXY+DQogICAgICAgICAgICANCiAgICAgICAgPC9kaXY+DQoNCiAgICAgIDwvZGl2Pg0KICAgICAgDQogICAgPC9ib2R5Pg0KICAgIA0KPC9odG1sPg==" - webUI["html/configuration.html"] = "PCFkb2N0eXBlIGh0bWw+DQo8aHRtbD4NCiAgPGhlYWQ+DQogICAgPG1ldGEgY2hhcnNldD0idXRmLTgiPg0KICAgIDxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgsIGluaXRpYWwtc2NhbGU9MS4wIiAvPiANCiAgICA8dGl0bGU+eFRlVmU8L3RpdGxlPg0KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iY3NzL3NjcmVlbi5jc3MiIHR5cGU9InRleHQvY3NzIj4NCiAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9ImNzcy9iYXNlLmNzcyIgdHlwZT0idGV4dC9jc3MiPg0KICAgIDxzY3JpcHQgbGFuZ3VhZ2U9ImphdmFzY3JpcHQiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJqcy9jb25maWd1cmF0aW9uX3RzLmpzIj48L3NjcmlwdD4NCiAgICA8c2NyaXB0IGxhbmd1YWdlPSJqYXZhc2NyaXB0IiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ianMvbmV0d29ya190cy5qcyI+PC9zY3JpcHQ+DQogICAgPHNjcmlwdCBsYW5ndWFnZT0iamF2YXNjcmlwdCIgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9ImpzL21lbnVfdHMuanMiPjwvc2NyaXB0Pg0KICAgIDxzY3JpcHQgbGFuZ3VhZ2U9ImphdmFzY3JpcHQiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJqcy9zZXR0aW5nc190cy5qcyI+PC9zY3JpcHQ+DQogICAgPHNjcmlwdCBsYW5ndWFnZT0iamF2YXNjcmlwdCIgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9ImpzL2Jhc2VfdHMuanMiPjwvc2NyaXB0Pg0KICA8L2hlYWQ+DQoNCiAgICA8Ym9keSBvbmxvYWQ9ImphdmFzY3JpcHQ6IHJlYWR5Rm9yQ29uZmlndXJhdGlvbigwKTsiPg0KICAgICAgICAgIA0KICAgICAgPGRpdiBpZD0ibG9hZGluZyIgY2xhc3M9ImJsb2NrIj4NCiAgICAgICAgPGRpdiBjbGFzcz0ibG9hZGVyIj48L2Rpdj4NCiAgICAgIDwvZGl2Pg0KDQogICAgICA8ZGl2IGlkPSJoZWFkZXIiIGNsYXNzPSJpbWdDZW50ZXIiPjwvZGl2Pg0KICAgICAgPGRpdiBpZD0iYm94Ij4NCiAgICAgICAgDQogICAgICAgIDx0YWJsZSBpZD0iY2xpZW50SW5mbyIgY2xhc3M9InZpc2libGUiPg0KICAgICAgICAgIDx0cj4NCiAgICAgICAgICAgIDx0ZCBjbGFzcz0idGRLZXkiPlZlcnNpb246PC90ZD4NCiAgICAgICAgICAgIDx0ZCBpZD0idmVyc2lvbiIgY2xhc3M9InRkVmFsIj4mbmJzcDs8L3RkPg0KICAgICAgICAgICAgPHRkIGNsYXNzPSJ0ZEtleSI+T1M6PC90ZD4NCiAgICAgICAgICAgIDx0ZCBpZD0ib3MiIGNsYXNzPSJ0ZFZhbCI+Jm5ic3A7PC90ZD4NCiAgICAgICAgICA8L3RyPg0KICAgICAgICAgIDx0cj4NCiAgICAgICAgICAgIDx0ZCBjbGFzcz0idGRLZXkiPlVVSUQ6PC90ZD4NCiAgICAgICAgICAgIDx0ZCBpZD0idXVpZCIgY2xhc3M9InRkVmFsIj4mbmJzcDs8L3RkPg0KICAgICAgICAgICAgPHRkIGNsYXNzPSJ0ZEtleSI+QXJjaDo8L3RkPg0KICAgICAgICAgICAgPHRkIGlkPSJhcmNoIiBjbGFzcz0idGRWYWwiPiZuYnNwOzwvdGQ+DQogICAgICAgICAgPC90cj4NCiAgICAgICAgICA8dHI+DQogICAgICAgICAgICA8dGQgY2xhc3M9InRkS2V5Ij5TdHJlYW1zOjwvdGQ+DQogICAgICAgICAgICA8dGQgaWQ9InN0cmVhbXMiIGNsYXNzPSJ0ZFZhbCI+Jm5ic3A7PC90ZD4NCiAgICAgICAgICAgIDx0ZCBjbGFzcz0idGRLZXkiPkRWUjo8L3RkPg0KICAgICAgICAgICAgPHRkIGlkPSJEVlIiIGNsYXNzPSJ0ZFZhbCI+Jm5ic3A7PC90ZD4NCiAgICAgICAgICA8L3RyPg0KICAgICAgICA8L3RhYmxlPg0KICAgICAgICANCiAgICAgICAgPGRpdiBpZD0iaGVhZGxpbmUiPg0KICAgICAgICAgIDxoMSBpZD0iaGVhZC10ZXh0IiBjbGFzcz0iY2VudGVyIj5Db25maWd1cmF0aW9uPC9oMT4gICAgICANCiAgICAgICAgPC9kaXY+DQogICAgICAgIDxwIGlkPSJlcnIiIGNsYXNzPSJlcnJvck1zZyBjZW50ZXIiPjwvcD4gICANCiAgICAgICAgPGRpdiBpZD0iY29udGVudCI+DQogICAgICAgICAgICANCiAgICAgICAgPC9kaXY+DQogICAgICAgIDxkaXYgaWQ9ImJveC1mb290ZXIiPg0KICAgICAgICAgIDxpbnB1dCBpZD0ibmV4dCIgY2xhc3M9IiIgdHlwZT0iYnV0dG9uIiBuYW1lPSJuZXh0IiB2YWx1ZT0iTmV4dCIgb25jbGljaz0iamF2YXNjcmlwdDogc2F2ZVdpemFyZCgpOyI+DQogICAgICAgIDwvZGl2Pg0KICAgICAgPC9kaXY+DQogICAgPC9ib2R5Pg0KPC9odG1sPg==" - webUI["html/js/files.js"] = "ZnVuY3Rpb24gb3BlbkZpbGVzKGVsbSwgZmlsZVR5cGUpIHsNCiAgLy9kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic2V0dGluZ3MiKS5pbm5lckhUTUwgPSAiVGVzdCI7DQogIA0KICBjb2x1bW5Ub1NvcnQgPSAwOyANCiAgdmFyIG5ld0RpdiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzZXR0aW5ncyIpOw0KICANCiAgdmFyIG5ld0VudHJ5ID0gbmV3IE9iamVjdCgpOw0KICBuZXdFbnRyeVsiX2VsZW1lbnQiXSAgPSAiSFIiOw0KICBuZXdEaXYuYXBwZW5kQ2hpbGQoY3JlYXRlRWxlbWVudChuZXdFbnRyeSkpOw0KDQogIHZhciBuZXdFbnRyeSA9IG5ldyBPYmplY3QoKTsNCiAgbmV3RW50cnlbIl9lbGVtZW50Il0gID0gIklOUFVUIjsNCiAgbmV3RW50cnlbInR5cGUiXSA9ICJidXR0b24iOw0KICBuZXdFbnRyeVsiY2xhc3MiXSA9ICJidXR0b24iOw0KICBuZXdFbnRyeVsidmFsdWUiXSA9ICJOZXciOw0KICBuZXdFbnRyeVsib25jbGljayJdID0gJ2ZpbGVEZXRhaWwoIi0iLCAiJyArIGZpbGVUeXBlICsgJyIpJzsNCiAgbmV3RGl2LmFwcGVuZENoaWxkKGNyZWF0ZUVsZW1lbnQobmV3RW50cnkpKTsNCg0KICB2YXIgbmV3RW50cnkgPSBuZXcgT2JqZWN0KCk7DQogIG5ld0VudHJ5WyJfZWxlbWVudCJdICA9ICJJTlBVVCI7DQogIG5ld0VudHJ5WyJ0eXBlIl0gPSAiYnV0dG9uIjsNCiAgbmV3RW50cnlbImNsYXNzIl0gPSAiYnV0dG9uIjsNCiAgbmV3RW50cnlbInZhbHVlIl0gPSAiVXBkYXRlIjsNCiAgbmV3RW50cnlbIm9uY2xpY2siXSA9ICJmaWxlRGV0YWlsKDApIjsNCiAgLy9uZXdEaXYuYXBwZW5kQ2hpbGQoY3JlYXRlRWxlbWVudChuZXdFbnRyeSkpOw0KDQogIHZhciBkaXYgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic2V0dGluZ3MiKTsNCg0KICAgLy8gQnVpbGQgdGFibGUNCiAgdmFyIG5ld1RhYmxlID0gbmV3IE9iamVjdCgpOw0KICBuZXdUYWJsZVsiX2VsZW1lbnQiXSAgPSAiVEFCTEUiOw0KICBuZXdUYWJsZVsiaWQiXSAgICAgICAgPSAiaWRfbWFwcGluZyI7DQogIG5ld1RhYmxlWyJjbGFzcyJdICAgICA9ICJ0YWJsZS1tYXBwaW5nIjsNCiAgZGl2LmFwcGVuZENoaWxkKGNyZWF0ZUVsZW1lbnQobmV3VGFibGUpKTsNCg0KICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7IA0KICAgIGNyZWF0ZUZpbGVzVGFibGUoZmlsZVR5cGUpOyANCiAgfSwgMTApOw0KDQp9DQoNCmZ1bmN0aW9uIGNyZWF0ZUZpbGVzVGFibGUoZmlsZVR5cGUpIHsNCiAgdmFyIHRhYmxlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImlkX21hcHBpbmciKTsNCiAgdmFyIGF2YWlsYWJsZUZpbGVUeXBlcyA9IG5ldyBBcnJheSgpOw0KICANCiAgdGFibGUuaW5uZXJIVE1MID0gIiI7DQogIHZhciBuZXdUUiA9IG5ldyBPYmplY3QoKTsNCiAgbmV3VFJbIl9lbGVtZW50Il0gPSAiVFIiOw0KICBuZXdUUlsiY2xhc3MiXSAgICA9ICJ0YWJsZS1tYXBwaW5nLWhlYWRlciI7DQogIHRhYmxlLmFwcGVuZENoaWxkKGNyZWF0ZUVsZW1lbnQobmV3VFIpKTsNCg0KICB2YXIgdHIgPSB0YWJsZS5sYXN0Q2hpbGQ7DQoNCiAgc3dpdGNoKGZpbGVUeXBlKSB7DQogICAgY2FzZSAieG1sdHYiOiANCiAgICAgIGF2YWlsYWJsZUZpbGVUeXBlcyA9IG5ldyBBcnJheSgieG1sdHYiKTsgDQogICAgICB2YXIgdHJIZWFkbGluZXMgPSBuZXcgQXJyYXkoIkd1aWRlIiwgIkxhc3QgVXBkYXRlIiwgIkF2YWlsYWJpbGl0eSAlIiwgIkNoYW5uZWxzIiwgIlByb2dyYW1zIikNCiAgICAgIHZhciBjb21wYXRpYmlsaXR5S2V5cyA9IG5ldyBBcnJheSgieG1sdHYuY2hhbm5lbHMiLCAieG1sdHYucHJvZ3JhbXMiKQ0KICAgICAgYnJlYWs7DQoNCiAgICBjYXNlICJtM3UiOg0KICAgICAgYXZhaWxhYmxlRmlsZVR5cGVzID0gbmV3IEFycmF5KCJtM3UiLCAiaGRociIpOyANCiAgICAgIHZhciB0ckhlYWRsaW5lcyA9IG5ldyBBcnJheSgiUGxheWxpc3QiLCAiTGFzdCBVcGRhdGUiLCAiQXZhaWxhYmlsaXR5ICUiLCAiVHlwZSIsICJTdHJlYW1zIiwgImdyb3VwLXRpdGxlICUiLCAidHZnLWlkICUiLCAiVW5pcXVlIElEICUiKTsNCiAgICAgIHZhciBjb21wYXRpYmlsaXR5S2V5cyA9IG5ldyBBcnJheSgic3RyZWFtcyIsICJncm91cC50aXRsZSIsICJ0dmcuaWQiLCAic3RyZWFtLmlkIik7DQogICAgICBicmVhazsNCiAgfQ0KDQogIGZvciAodmFyIGkgPSAwOyBpIDwgdHJIZWFkbGluZXMubGVuZ3RoOyBpKyspIHsNCiAgICB2YXIgbmV3VEQgPSBuZXcgT2JqZWN0KCk7DQogICAgbmV3VERbIl9lbGVtZW50Il0gPSAiVEQiOw0KICAgIG5ld1REWyJfdGV4dCJdICAgID0gdHJIZWFkbGluZXNbaV07DQogICAgdHIuYXBwZW5kQ2hpbGQoY3JlYXRlRWxlbWVudChuZXdURCkpOw0KICB9DQogIA0KICBmb3IgKHZhciBpID0gMDsgaSA8IGF2YWlsYWJsZUZpbGVUeXBlcy5sZW5ndGg7IGkrKykgew0KICAgIA0KICAgIHZhciBmaWxlVHlwZSA9IGF2YWlsYWJsZUZpbGVUeXBlc1tpXQ0KDQogICAgdmFyIGRhdGEgPSBjb25maWdbImZpbGVzIl1bZmlsZVR5cGVdOw0KICAgIA0KICAgIHZhciBhbGxGaWxlcyA9IGdldE9iaktleXMoZGF0YSkNCiAgDQogICAgZm9yICh2YXIgZiA9IDA7IGYgPCBhbGxGaWxlcy5sZW5ndGg7IGYrKykgew0KICAgICAgdmFyIGVsbSAgICAgICAgICAgPSBkYXRhW2FsbEZpbGVzW2ZdXTsNCiAgICAgIHZhciB0YWJsZSAgICAgICAgID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImlkX21hcHBpbmciKTsNCiAgICAgIHZhciBmaWxlSUQgICAgICAgID0gZWxtWyJpZC5wcm92aWRlciJdOw0KICAgICAgdmFyIG5hbWUgICAgICAgICAgPSBlbG1bIm5hbWUiXTsNCiAgICAgIHZhciBsYXN0VXBkYXRlICAgID0gZWxtWyJsYXN0LnVwZGF0ZSJdOw0KICAgICAgdmFyIGF2YWlsYWJpbGl0eSAgPSBlbG1bInByb3ZpZGVyLmF2YWlsYWJpbGl0eSJdOw0KICAgICAgdmFyIHR5cGUgICAgICAgICAgPSBlbG1bInR5cGUiXS50b1VwcGVyQ2FzZSgpOw0KICAgICAgdmFyIGNvbXBhdGliaWxpdHkgPSBlbG1bImNvbXBhdGliaWxpdHkiXTsNCg0KICAgICAgLy8gQ3JlYXRlIFRSDQogICAgICB2YXIgbmV3VFIgPSBuZXcgT2JqZWN0KCk7DQogICAgICBuZXdUUlsiX2VsZW1lbnQiXSAgICAgICA9ICJUUiI7DQogICAgICBuZXdUUlsiY2xhc3MiXSAgICAgICAgICA9ICIiOw0KICAgICAgbmV3VFJbImlkIl0gICAgICAgICAgICAgPSBmaWxlSUQ7DQogICAgICBuZXdUUlsib25jbGljayJdICAgICAgICA9ICdqYXZhc2NyaXB0OiBmaWxlRGV0YWlsKCInICsgZmlsZUlEICsgJyIsIicgKyBmaWxlVHlwZSArICciKTsnOw0KICAgICAgdGFibGUuYXBwZW5kQ2hpbGQoY3JlYXRlRWxlbWVudChuZXdUUikpOw0KDQogICAgICB2YXIgdHIgPSB0YWJsZS5sYXN0Q2hpbGQ7DQoNCiAgICAgIC8vIENyZWF0ZSBmaWxlIG5hbWUgVEQNCiAgICAgIHZhciBuZXdURCA9IG5ldyBPYmplY3QoKTsNCiAgICAgIG5ld1REWyJfZWxlbWVudCJdID0gIlAiOw0KICAgICAgbmV3VERbIl90ZXh0Il0gICAgPSBuYW1lOw0KICAgICAgY3JlYXRlTmV3VEQobmV3VEQsIHRyKTsNCg0KICAgICAgLy8gQ3JlYXRlIGxhc3QgdXBkYXRlIFREDQogICAgICB2YXIgbmV3VEQgPSBuZXcgT2JqZWN0KCk7DQogICAgICBuZXdURFsiX2VsZW1lbnQiXSA9ICJQIjsNCiAgICAgIG5ld1REWyJfdGV4dCJdICAgID0gbGFzdFVwZGF0ZTsNCiAgICAgIGNyZWF0ZU5ld1REKG5ld1RELCB0cik7DQoNCiAgICAgIC8vIENyZWF0ZSBhdmFpbGFiaWxpdHkgVEQNCiAgICAgIHZhciBuZXdURCA9IG5ldyBPYmplY3QoKTsNCiAgICAgIG5ld1REWyJfZWxlbWVudCJdID0gIlAiOw0KICAgICAgbmV3VERbIl90ZXh0Il0gICAgPSBhdmFpbGFiaWxpdHk7DQogICAgICBjcmVhdGVOZXdURChuZXdURCwgdHIpOw0KDQogICAgICBpZiAoZmlsZVR5cGUgPT0gIm0zdSIgfHwgZmlsZVR5cGUgPT0gImhkaHIiKSB7DQoNCiAgICAgICAgLy8gQ3JlYXRlIFR5cGUgVEQNCiAgICAgICAgdmFyIG5ld1REID0gbmV3IE9iamVjdCgpOw0KICAgICAgICBuZXdURFsiX2VsZW1lbnQiXSA9ICJQIjsNCiAgICAgICAgbmV3VERbIl90ZXh0Il0gICAgPSB0eXBlOw0KICAgICAgICBjcmVhdGVOZXdURChuZXdURCwgdHIpOw0KICANCiAgICAgIH0NCiAgICAgIA0KICAgICAgLy8gQ3JlYXRlIGFsbCBjb21wYXRpYmlsaXR5IFREcw0KDQogICAgICBmb3IgKHZhciBqID0gMDsgaiA8IGNvbXBhdGliaWxpdHlLZXlzLmxlbmd0aDsgaisrKSB7DQogICAgICAgIHZhciBuZXdURCA9IG5ldyBPYmplY3QoKTsNCiAgICAgICAgbmV3VERbIl9lbGVtZW50Il0gPSAiUCI7DQogICAgICAgIG5ld1REWyJfdGV4dCJdICAgID0gY29tcGF0aWJpbGl0eVtjb21wYXRpYmlsaXR5S2V5c1tqXV07DQogICAgICAgIGNyZWF0ZU5ld1REKG5ld1RELCB0cik7DQogICAgICB9DQoNCiAgICB9DQoNCiAgfQ0KICANCiAgDQogIHNvcnRUYWJsZSgwKQ0KDQogIC8vIHVzYWdlIEluZm8gIA0KICB2YXIgZGl2ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNldHRpbmdzIik7DQogIHN3aXRjaChtZW51W2FjdGl2ZU1lbnUuaWRdLmhhc093blByb3BlcnR5KCJfdXNhZ2UiKSkgew0KICAgIGNhc2UgdHJ1ZTogDQogICAgICB2YXIgdXNhZ2VJdGVtID0gbmV3IE9iamVjdCgpOw0KICAgICAgdXNhZ2VJdGVtWyJfZWxlbWVudCJdID0gIlBSRSINCiAgICAgIHVzYWdlSXRlbVsiX3RleHQiXSAgICA9IG1lbnVbYWN0aXZlTWVudS5pZF1bIl91c2FnZSJdOw0KDQogICAgICB2YXIgbmV3SFIgPSBuZXcgT2JqZWN0KCk7DQogICAgICBuZXdIUlsiX2VsZW1lbnQiXSA9ICJIUiINCiAgICAgIGRpdi5hcHBlbmRDaGlsZChjcmVhdGVFbGVtZW50KG5ld0hSKSk7DQogICAgICBkaXYuYXBwZW5kQ2hpbGQoY3JlYXRlRWxlbWVudCh1c2FnZUl0ZW0pKTsNCiAgICAgIGJyZWFrOw0KICB9DQoNCiAgY2FsY3VsYXRlV3JhcHBlckhlaWdodCgpOw0KICByZXR1cm47DQp9DQoNCg0KZnVuY3Rpb24gZmlsZURldGFpbChmaWxlSUQsIGZpbGVUeXBlKSB7DQoNCiAgb3B0aW9uc1RleHQgID0gbmV3IEFycmF5KCJNM1UiLCAiSERIb21lUnVuIC0gW0V4cGVyaW1lbnRhbF0iKQ0KICBvcHRpb25zVmFsdWUgPSBuZXcgQXJyYXkoIm0zdSIsICJoZGhyIikNCg0KICBzd2l0Y2ggKGZpbGVUeXBlKSB7DQogICAgDQogICAgY2FzZSAibTN1IjogDQogICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibmFtZSIpLnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAiUGxheWxpc3QgbmFtZSIpOyANCiAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJkZXNjcmlwdGlvbiIpLnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAiRGVzY3JpcHRpb24gb2YgdGhpcyBwbGF5bGlzdCIpOyANCiAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJmaWxlLWRldGFpbC1oZWFkbGluZSIpLmlubmVySFRNTCA9ICJNM1UgUGxheWxpc3QiOyANCiAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJmaWxlLXBhdGgiKS5pbm5lckhUTUwgPSAiTTNVIEZpbGU6IjsgDQogICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZmlsZS5zb3VyY2UiKS5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgIkxvY2FsIG9yIHJlbW90ZSIpOw0KICAgICAgYnJlYWs7DQoNCiAgICBjYXNlICJoZGhyIjogDQogICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibmFtZSIpLnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAiSERIb21lUnVuIG5hbWUiKTsgDQogICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZGVzY3JpcHRpb24iKS5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgIkRlc2NyaXB0aW9uIG9mIHRoaXMgSERIb21lUnVuIHR1bmVyIik7IA0KICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImZpbGUtZGV0YWlsLWhlYWRsaW5lIikuaW5uZXJIVE1MID0gIkhESG9tZVJ1biI7IA0KICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImZpbGUtcGF0aCIpLmlubmVySFRNTCA9ICJIREhvbWVSdW4gSVA6IjsgDQogICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZmlsZS5zb3VyY2UiKS5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgIklQIGFkZHJlc3MgYW5kIHBvcnQgb2YgdGhlIHR1bmVyICgxOTIuMTY4LjEuMTA6NTAwNCkiKTsNCiAgICAgIGJyZWFrOw0KICAgIA0KICAgIGNhc2UgInhtbHR2IjogDQogICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibmFtZSIpLnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAiWE1MVFYgbmFtZSIpOyANCiAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJkZXNjcmlwdGlvbiIpLnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAiRGVzY3JpcHRpb24gb2YgdGhpcyBYTUxUViBmaWxlIik7IA0KICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImZpbGUtZGV0YWlsLWhlYWRsaW5lIikuaW5uZXJIVE1MID0gIlhNTFRWIEZpbGUiOyANCiAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJmaWxlLXBhdGgiKS5pbm5lckhUTUwgPSAiWE1MVFYgRmlsZToiOw0KICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImZpbGUuc291cmNlIikuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJMb2NhbCBvciByZW1vdGUiKTsNCg0KICAgICAgb3B0aW9uc1RleHQgID0gbmV3IEFycmF5KCJYTUxUViIpDQogICAgICBvcHRpb25zVmFsdWUgPSBuZXcgQXJyYXkoInhtbHR2IikNCiAgICAgIGJyZWFrOw0KICB9DQoNCiAgbW9kaWZ5T3B0aW9uKCJ0eXBlIiwgb3B0aW9uc1RleHQsIG9wdGlvbnNWYWx1ZSkNCiAgDQogIHNob3dQb3BVcEVsZW1lbnQoJ2ZpbGUtZGV0YWlsJyk7DQoNCiAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNhdmVGaWxlRGV0YWlsIikuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IHNhdmVGaWxlRGV0YWlsKCInICsgZmlsZUlEICsgJyIsIicgKyBmaWxlVHlwZSArICciLCBmYWxzZSknKTsNCiAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInVwZGF0ZUZpbGVEZXRhaWwiKS5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogdXBkYXRlRmlsZSgiJyArIGZpbGVJRCArICciLCInICsgZmlsZVR5cGUgKyAnIiwgZmFsc2UpJyk7DQogIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJkZWxldGVGaWxlRGV0YWlsIikuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IHNhdmVGaWxlRGV0YWlsKCInICsgZmlsZUlEICsgJyIsIicgKyBmaWxlVHlwZSArICciLCB0cnVlKScpOw0KDQogIHZhciBkYXRhID0gbmV3IE9iamVjdCgpOw0KDQogIHN3aXRjaChmaWxlSUQpIHsNCg0KICAgIGNhc2UgIi0iOiAvLyBOZXcgZmlsZQ0KICAgICAgZGF0YVsibmFtZSJdICAgICAgICA9ICIiOw0KICAgICAgZGF0YVsiZGVzY3JpcHRpb24iXSA9ICIiOw0KICAgICAgZGF0YVsiZmlsZS5zb3VyY2UiXSA9ICIiOw0KICAgICAgZGF0YVsidHlwZSJdID0gZmlsZVR5cGU7DQogICAgICANCiAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJkZWxldGVGaWxlRGV0YWlsIikuY2xhc3NOYW1lID0gImRlbGV0ZSI7DQogICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidHlwZSIpLnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiY2hhbmdlRmlsZVR5cGUodGhpcyk7IikNCiAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0eXBlIikuc2V0QXR0cmlidXRlKCJkYXRhLWlkIiwgZmlsZUlEKQ0KICAgICAgDQogICAgICBzaG93RWxlbWVudCgiZGVsZXRlRmlsZURldGFpbCIsIGZhbHNlKTsNCiAgICAgIHNob3dFbGVtZW50KCJ1cGRhdGVGaWxlRGV0YWlsIiwgZmFsc2UpOw0KICAgICAgDQogICAgICBpZiAoZmlsZVR5cGUgPT0gInhtbHR2Iikgew0KICAgICAgICBzaG93RWxlbWVudCgidHlwZSIsIGZhbHNlKTsNCiAgICAgICAgc2hvd0VsZW1lbnQoImZpbGUtdHlwZSIsIGZhbHNlKTsNCiAgICAgIH0gZWxzZSB7DQogICAgICAgIHNob3dFbGVtZW50KCJ0eXBlIiwgdHJ1ZSk7DQogICAgICAgIHNob3dFbGVtZW50KCJmaWxlLXR5cGUiLCB0cnVlKTsNCiAgICAgIH0NCiAgICAgIA0KICAgICAgYnJlYWs7DQoNCiAgICBkZWZhdWx0OiANCiAgICAgIGRhdGEgPSBjb25maWdbImZpbGVzIl1bZmlsZVR5cGVdW2ZpbGVJRF07DQogICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZGVsZXRlRmlsZURldGFpbCIpLmNsYXNzTmFtZSA9ICJkZWxldGUiOw0KICAgICAgDQogICAgICBzaG93RWxlbWVudCgidXBkYXRlRmlsZURldGFpbCIsIHRydWUpOw0KICAgICAgc2hvd0VsZW1lbnQoInR5cGUiLCBmYWxzZSk7DQogICAgICBzaG93RWxlbWVudCgiZmlsZS10eXBlIiwgZmFsc2UpOw0KICAgICAgDQogICAgICBicmVhazsNCg0KICB9DQoNCiAgdmFyIGtleXMgPSBnZXRPYmpLZXlzKGRhdGEpOw0KICANCiAgZm9yICh2YXIgaSA9IDA7IGkgPCBrZXlzLmxlbmd0aDsgaSsrKSB7DQoNCiAgICBpZihkb2N1bWVudC5nZXRFbGVtZW50QnlJZChrZXlzW2ldKSl7DQogICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChrZXlzW2ldKS52YWx1ZSA9IGRhdGFba2V5c1tpXV07DQogICAgfSANCg0KDQogIH0NCg0KfQ0KDQpmdW5jdGlvbiBjaGFuZ2VGaWxlVHlwZShlbG0pIHsNCg0KICB2YXIgZmlsZUlEID0gZWxtLmdldEF0dHJpYnV0ZSgiZGF0YS1pZCIpOw0KICB2YXIgZmlsZVR5cGUgPSBlbG0ub3B0aW9uc1tlbG0uc2VsZWN0ZWRJbmRleF0udmFsdWU7DQogIA0KICBmaWxlRGV0YWlsKGZpbGVJRCwgZmlsZVR5cGUpDQoNCn0NCg0KDQpmdW5jdGlvbiBzYXZlRmlsZURldGFpbChmaWxlSUQsIGZpbGVUeXBlLCBkZWxldGVGaWxlKSB7DQoNCiAgaWYgKGZpbGVJRCA9PSB1bmRlZmluZWQpIHsNCiAgICBhbGVydCgiSUQgaXMgbWlzc2luZyEhISIpOw0KICAgIHJldHVybiANCiAgfQ0KDQogIHZhciBpbnB1dHMgICAgICA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJmaWxlLWRldGFpbCIpLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJJTlBVVCIpOw0KICB2YXIgc2VsZWN0cyAgICAgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZmlsZS1kZXRhaWwiKS5nZXRFbGVtZW50c0J5VGFnTmFtZSgiU0VMRUNUIik7DQogIHZhciBuZXdGaWxlRGF0YSA9IG5ldyBPYmplY3QoKTsNCiAgdmFyIGRhdGEgICAgICAgID0gbmV3IE9iamVjdCgpOw0KDQogIGZvciAodmFyIGkgPSAwOyBpIDwgaW5wdXRzLmxlbmd0aDsgaSsrKSB7DQogICAgc3dpdGNoKGlucHV0c1tpXS50eXBlKSB7DQogICAgICBjYXNlICJ0ZXh0IjogbmV3RmlsZURhdGFbaW5wdXRzW2ldLm5hbWVdID0gaW5wdXRzW2ldLnZhbHVlOyBicmVhazsNCiAgICB9DQogIH0NCg0KICBmb3IgKHZhciBpID0gMDsgaSA8IHNlbGVjdHMubGVuZ3RoOyBpKyspIHsNCiAgICBuZXdGaWxlRGF0YVtzZWxlY3RzW2ldLmlkXSA9IHNlbGVjdHNbaV0ub3B0aW9uc1tzZWxlY3RzW2ldLnNlbGVjdGVkSW5kZXhdLnZhbHVlOw0KICB9DQoNCiAgaWYgKGRlbGV0ZUZpbGUgPT0gdHJ1ZSkgew0KICAgIHN3aXRjaChmaWxlVHlwZSkgew0KICAgICAgY2FzZSAibTN1IjogICB2YXIgYWxlcnRUZXh0ID0gIkRlbGV0ZSB0aGlzIHBsYXlsaXN0PyI7IGJyZWFrOw0KICAgICAgY2FzZSAiaGRociI6IHZhciBhbGVydFRleHQgPSAiRGVsZXRlIHRoaXMgSERIb21lUnVuIHR1bmVyPyI7IGJyZWFrOw0KICAgICAgY2FzZSAieG1sdHYiOiB2YXIgYWxlcnRUZXh0ID0gIkRlbGV0ZSB0aGlzIFhNTFRWIGZpbGU/IjsgYnJlYWs7DQogICAgfQ0KDQogICAgaWYgKGNvbmZpcm0oYWxlcnRUZXh0KSkgew0KICAgICAgbmV3RmlsZURhdGFbImRlbGV0ZSJdID0gdHJ1ZQ0KICAgICAgZGF0YSA9IGJ1aWxkRmlsZXNPYmooZmlsZVR5cGUsIGZpbGVJRCwgbmV3RmlsZURhdGEpOw0KICAgICAgY29uc29sZS5sb2coZGF0YSk7DQogICAgICANCiAgICB9IGVsc2Ugew0KICAgICAgc2hvd0VsZW1lbnQoInBvcHVwIiwgZmFsc2UpOw0KICAgICAgcmV0dXJuDQogICAgDQogICAgfQ0KDQogIH0gZWxzZSB7DQogIA0KICAgIHN3aXRjaChjb25maWdbImZpbGVzIl1bZmlsZVR5cGVdLmhhc093blByb3BlcnR5KGZpbGVJRCkpIHsNCg0KICAgICAgY2FzZSB0cnVlOiANCiAgICAgICAgZGF0YSA9IGNvbmZpZ1siZmlsZXMiXVtmaWxlVHlwZV1bZmlsZUlEXTsgDQogICAgICAgIGlmIChkYXRhWyJmaWxlLnNvdXJjZSJdICE9IG5ld0ZpbGVEYXRhWyJmaWxlLnNvdXJjZSJdKSB7DQogICAgICAgICAgZGF0YVsidXBkYXRlIl0gPSB0cnVlDQogICAgICAgIH0gZWxzZSB7DQogICAgICAgICAgZGF0YVsidXBkYXRlUGxheWxpc3ROYW1lIl0gPSB0cnVlOw0KICAgICAgICB9DQogICAgICAgIGJyZWFrOw0KICAgICAgDQogICAgICBjYXNlIGZhbHNlOiANCiAgICAgICAgbmV3RmlsZURhdGFbIm5ldyJdID0gdHJ1ZTsNCiAgICAgICAgZGF0YSA9IGJ1aWxkRmlsZXNPYmooZmlsZVR5cGUsIGZpbGVJRCwgbmV3RmlsZURhdGEpOw0KICAgICAgICBicmVhaw0KDQogICAgfQ0KICANCiAgfSAgDQogIA0KICBzd2l0Y2goZmlsZVR5cGUpIHsNCg0KICAgIGNhc2UgIm0zdSI6ICAgZGF0YVsiY21kIl0gPSAic2F2ZUZpbGVzTTNVIjsgYnJlYWs7DQogICAgY2FzZSAiaGRociI6ICBkYXRhWyJjbWQiXSA9ICJzYXZlRmlsZXNIREhSIjsgYnJlYWs7DQogICAgY2FzZSAieG1sdHYiOiBkYXRhWyJjbWQiXSA9ICJzYXZlRmlsZXNYTUxUViI7IGJyZWFrOw0KDQogIH0NCiAgLy9jb25zb2xlLmxvZyhkYXRhKTsNCiAgeFRlVmUoZGF0YSk7DQogIHJldHVybg0KfQ0KDQpmdW5jdGlvbiB1cGRhdGVGaWxlKGZpbGVJRCwgZmlsZVR5cGUsIGFsbEZpbGVzKSB7DQogIA0KICBzd2l0Y2goY29uZmlnWyJmaWxlcyJdW2ZpbGVUeXBlXS5oYXNPd25Qcm9wZXJ0eShmaWxlSUQpKSB7DQoNCiAgICBjYXNlIHRydWU6IA0KICAgIA0KICAgICAgdmFyIGRhdGEgPSBuZXcgT2JqZWN0KCk7DQogICAgICB2YXIgZGF0YSA9IGJ1aWxkRmlsZXNPYmooZmlsZVR5cGUsIGZpbGVJRCwgY29uZmlnWyJmaWxlcyJdW2ZpbGVUeXBlXVtmaWxlSURdKQ0KICAgICAgZGF0YVsibmV3Il0gPSB0cnVlDQoNCiAgICAgIHN3aXRjaChmaWxlVHlwZSkgew0KDQogICAgICAgIGNhc2UgIm0zdSI6ICAgZGF0YVsiY21kIl0gPSAidXBkYXRlRmlsZU0zVSI7IGJyZWFrOw0KICAgICAgICBjYXNlICJoZGhyIjogIGRhdGFbImNtZCJdID0gInVwZGF0ZUZpbGVIREhSIjsgYnJlYWs7DQogICAgICAgIGNhc2UgInhtbHR2IjogZGF0YVsiY21kIl0gPSAidXBkYXRlRmlsZVhNTFRWIjsgYnJlYWs7DQoNCiAgICAgIH0NCiAgICAgIA0KICAgICAgeFRlVmUoZGF0YSk7DQogICAgICANCiAgICAgIGJyZWFrOw0KICB9DQoNCn0NCg0KZnVuY3Rpb24gYnVpbGRGaWxlc09iaihmaWxlVHlwZSwgZmlsZUlELCBvYmopIHsNCg0KICB2YXIgZGF0YSA9IG5ldyBPYmplY3QoKTsNCiAgZGF0YVsiZmlsZXMiXSA9IG5ldyBPYmplY3QoKTsNCiAgZGF0YVsiZmlsZXMiXVtmaWxlVHlwZV0gPSBuZXcgT2JqZWN0KCk7DQogIGRhdGFbImZpbGVzIl1bZmlsZVR5cGVdW2ZpbGVJRF0gPSBvYmoNCiAgcmV0dXJuIGRhdGENCg0KfQ==" - webUI["html/js/classes_ts.js"] = "dmFyIF9fZXh0ZW5kcyA9ICh0aGlzICYmIHRoaXMuX19leHRlbmRzKSB8fCAoZnVuY3Rpb24gKCkgew0KICAgIHZhciBleHRlbmRTdGF0aWNzID0gZnVuY3Rpb24gKGQsIGIpIHsNCiAgICAgICAgZXh0ZW5kU3RhdGljcyA9IE9iamVjdC5zZXRQcm90b3R5cGVPZiB8fA0KICAgICAgICAgICAgKHsgX19wcm90b19fOiBbXSB9IGluc3RhbmNlb2YgQXJyYXkgJiYgZnVuY3Rpb24gKGQsIGIpIHsgZC5fX3Byb3RvX18gPSBiOyB9KSB8fA0KICAgICAgICAgICAgZnVuY3Rpb24gKGQsIGIpIHsgZm9yICh2YXIgcCBpbiBiKSBpZiAoYi5oYXNPd25Qcm9wZXJ0eShwKSkgZFtwXSA9IGJbcF07IH07DQogICAgICAgIHJldHVybiBleHRlbmRTdGF0aWNzKGQsIGIpOw0KICAgIH07DQogICAgcmV0dXJuIGZ1bmN0aW9uIChkLCBiKSB7DQogICAgICAgIGV4dGVuZFN0YXRpY3MoZCwgYik7DQogICAgICAgIGZ1bmN0aW9uIF9fKCkgeyB0aGlzLmNvbnN0cnVjdG9yID0gZDsgfQ0KICAgICAgICBkLnByb3RvdHlwZSA9IGIgPT09IG51bGwgPyBPYmplY3QuY3JlYXRlKGIpIDogKF9fLnByb3RvdHlwZSA9IGIucHJvdG90eXBlLCBuZXcgX18oKSk7DQogICAgfTsNCn0pKCk7DQp2YXIgTWFpbk1lbnUgPSAvKiogQGNsYXNzICovIChmdW5jdGlvbiAoKSB7DQogICAgZnVuY3Rpb24gTWFpbk1lbnUoKSB7DQogICAgICAgIHRoaXMuRG9jdW1lbnRJRCA9ICJtYWluLW1lbnUiOw0KICAgICAgICB0aGlzLkhUTUxUYWcgPSAiTEkiOw0KICAgIH0NCiAgICBNYWluTWVudS5wcm90b3R5cGUuY3JlYXRlID0gZnVuY3Rpb24gKCkgew0KICAgICAgICBjb25zb2xlLmxvZyh0aGlzLkRvY3VtZW50SUQpOw0KICAgIH07DQogICAgcmV0dXJuIE1haW5NZW51Ow0KfSgpKTsNCnZhciBNYWluTWVudUl0ZW0gPSAvKiogQGNsYXNzICovIChmdW5jdGlvbiAoX3N1cGVyKSB7DQogICAgX19leHRlbmRzKE1haW5NZW51SXRlbSwgX3N1cGVyKTsNCiAgICBmdW5jdGlvbiBNYWluTWVudUl0ZW0oKSB7DQogICAgICAgIHJldHVybiBfc3VwZXIgIT09IG51bGwgJiYgX3N1cGVyLmFwcGx5KHRoaXMsIGFyZ3VtZW50cykgfHwgdGhpczsNCiAgICB9DQogICAgTWFpbk1lbnVJdGVtLnByb3RvdHlwZS5jcmVhdGUyID0gZnVuY3Rpb24gKCkgew0KICAgICAgICB2YXIgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQodGhpcy5IVE1MVGFnKTsNCiAgICAgICAgZWxlbWVudC5pbm5lclRleHQgPSB0aGlzLlZhbHVlOw0KICAgICAgICBjb25zb2xlLmxvZyhlbGVtZW50KTsNCiAgICB9Ow0KICAgIHJldHVybiBNYWluTWVudUl0ZW07DQp9KE1haW5NZW51KSk7DQpmdW5jdGlvbiBwYWdlUmVhZHkoKSB7DQogICAgdmFyIGl0ZW0gPSBuZXcgTWFpbk1lbnVJdGVtKCk7DQogICAgaXRlbS5WYWx1ZSA9ICJUZXN0IjsNCiAgICBpdGVtLmNyZWF0ZTIoKTsNCn0NCg==" webUI["html/img/xmltv.png"] = "iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAAAXNSR0IArs4c6QAAAAlwSFlzAAAsSwAALEsBpT2WqQAABCRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IlhNUCBDb3JlIDUuNC4wIj4KICAgPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIgogICAgICAgICAgICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgICAgICAgICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyI+CiAgICAgICAgIDx0aWZmOlJlc29sdXRpb25Vbml0PjI8L3RpZmY6UmVzb2x1dGlvblVuaXQ+CiAgICAgICAgIDx0aWZmOkNvbXByZXNzaW9uPjU8L3RpZmY6Q29tcHJlc3Npb24+CiAgICAgICAgIDx0aWZmOlhSZXNvbHV0aW9uPjI4ODwvdGlmZjpYUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6T3JpZW50YXRpb24+MTwvdGlmZjpPcmllbnRhdGlvbj4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+Mjg4PC90aWZmOllSZXNvbHV0aW9uPgogICAgICAgICA8ZXhpZjpQaXhlbFhEaW1lbnNpb24+NTA8L2V4aWY6UGl4ZWxYRGltZW5zaW9uPgogICAgICAgICA8ZXhpZjpDb2xvclNwYWNlPjE8L2V4aWY6Q29sb3JTcGFjZT4KICAgICAgICAgPGV4aWY6UGl4ZWxZRGltZW5zaW9uPjUwPC9leGlmOlBpeGVsWURpbWVuc2lvbj4KICAgICAgICAgPGRjOnN1YmplY3Q+CiAgICAgICAgICAgIDxyZGY6QmFnLz4KICAgICAgICAgPC9kYzpzdWJqZWN0PgogICAgICAgICA8eG1wOk1vZGlmeURhdGU+MjAxOC0wNy0yOFQyMDowNzozMzwveG1wOk1vZGlmeURhdGU+CiAgICAgICAgIDx4bXA6Q3JlYXRvclRvb2w+UGl4ZWxtYXRvciAzLjM8L3htcDpDcmVhdG9yVG9vbD4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgIDwvcmRmOlJERj4KPC94OnhtcG1ldGE+Co6j9bsAAAGgSURBVGgF7VqxTsNADL0gYGEon8DOwsbAAH8BYmJn6cYIn8DC3h0+oixISFRiYYCJL0AwMMBAeK5w2rpV6uikxHfYknW98+vds18TK21DWGBlWR7CH+BfcEv2AzLP8HP42gLqkyUATuEp2PWEdQjF9ATs1zF/g29Mrxt+vVcUxR3xWxEktzFPJQmivsv8ZSI9DiQyVnxlIonwn6fpiczXpNuVVXH8O+a3Ys3y9NUyuf/NTTbEHZTjUlGSRzSiPhroUIENwB4AS/vS/susDwDhTpYBER9g7wHh5DWyibV9CiitCZbIafDEYUuJHQI3Nr/9ciWsjK6IFSWYhyvClbAyZqOIlYJG84jq7E1Ot97Zm+TinV1TrWwudk9EI3ebGFekzWprzspGEU2ySWCiOrs/s9dr7M/s9fVJJJrNXcsTsfaJc0WsKZINH+/sf1Jqvl1n1f2ZnStRN/pdq646XcSkIh9dkIg4s+IrE3nCpp8RG7f91ns+cCYR/LD4jcAZB42PN+A7/mcQ8ZxJhBYQvMJwBB/BKTFLVoLMC/wCfgyv7BesTKUC2LKM3wAAAABJRU5ErkJggg==" + webUI["html/js/base.js"] = "dmFyIGNvbmZpZyAgICAgICAgPSBuZXcgT2JqZWN0KCk7DQp2YXIgbWVudSAgICAgICAgICA9IG5ldyBPYmplY3QoKTsNCnZhciBzdWJNZW51ICAgICAgID0gbmV3IE9iamVjdCgpOw0KdmFyIGFjdGl2ZVN0cmVhbXMgPSBuZXcgT2JqZWN0KCk7DQp2YXIgeEVQRyAgICAgICAgICA9IG5ldyBPYmplY3QoKTsNCnZhciB1c2VycyAgICAgICAgID0gbmV3IE9iamVjdCgpOw0KdmFyIGxvZyAgICAgICAgICAgPSBuZXcgT2JqZWN0KCk7DQp2YXIgdW5kbyAgICAgICAgICA9IG5ldyBPYmplY3QoKTsNCnZhciB3ZWJTb2NrZXRzICAgID0gdHJ1ZTsNCnZhciBjbG9zZUxvZywgdmVyc2lvbiwgYWN0aXZlTWVudTsNCnZhciBjb2x1bW5Ub1NvcnQgID0gMA0KDQoNCmlmICh3aW5kb3cuV2ViU29ja2V0ID09PSB1bmRlZmluZWQpIHsNCiAgYWxlcnQoIllvdXIgYnJvd3NlciBkb2VzIG5vdCBzdXBwb3J0IFdlYlNvY2tldHMiKTsNCiAgd2ViU29ja2V0cyA9IGZhbHNlOw0KfSANCg0KZnVuY3Rpb24gcGFnZVJlYWR5KCkgew0KICB2YXIgZGF0YSA9IG5ldyBPYmplY3QoKTsNCiAgZGF0YVsiY21kIl0gPSAiZ2V0U2VydmVyQ29uZmlnIjsNCiAgeFRlVmUoZGF0YSk7DQogIC8vc2hvd0xvYWRpbmdTY3JlZW4oZmFsc2UpOw0KDQogIHZhciByZXNpemVIYW5kbGUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgib3BlblN0cmVhbXMiKTsNCiAgdmFyIGJveCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJteVN0cmVhbXNCb3giKTsNCiAgcmVzaXplSGFuZGxlLmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlZG93biIsIGluaXRpYWxpc2VSZXNpemUsIGZhbHNlKTsNCg0KICBmdW5jdGlvbiBpbml0aWFsaXNlUmVzaXplKGUpIHsNCiAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigibW91c2Vtb3ZlIiwgc3RhcnRSZXNpemluZywgZmFsc2UpOw0KICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJtb3VzZXVwIiwgc3RvcFJlc2l6aW5nLCBmYWxzZSk7DQogIH0NCg0KICBmdW5jdGlvbiBzdGFydFJlc2l6aW5nKGUpIHsNCiAgICBib3guc3R5bGUuaGVpZ2h0ID0gKGUuY2xpZW50WSAtIGJveC5vZmZzZXRUb3ApICsgInB4IjsNCiAgICAgIA0KICAgIHZhciBlbG0gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYWxsU3RyZWFtcyIpOw0KICAgIGlmIChlLmNsaWVudFkgPiAxMjApIHsNCiAgICAgIGVsbS5jbGFzc05hbWUgPSAidmlzaWJsZSI7IA0KICAgIH0gZWxzZSB7DQogICAgICBlbG0uY2xhc3NOYW1lID0gIm5vdFZpc2libGUiOyANCiAgICB9DQoNCiAgICBjYWxjdWxhdGVXcmFwcGVySGVpZ2h0KCk7DQoNCiAgfQ0KICBmdW5jdGlvbiBzdG9wUmVzaXppbmcoZSkgew0KICAgICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ21vdXNlbW92ZScsIHN0YXJ0UmVzaXppbmcsIGZhbHNlKTsNCiAgICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCdtb3VzZXVwJywgc3RvcFJlc2l6aW5nLCBmYWxzZSk7DQogICAgICBjYWxjdWxhdGVXcmFwcGVySGVpZ2h0KCk7DQogIH0NCg0KICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigicmVzaXplIiwgZnVuY3Rpb24oKXsNCiAgICBjYWxjdWxhdGVXcmFwcGVySGVpZ2h0KCk7DQogIH0sIHRydWUpOw0KfQ0KDQoNCmZ1bmN0aW9uIGdldE9iaktleXMob2JqKSB7DQogIHZhciBrZXlzID0gbmV3IEFycmF5KCk7DQoNCiAgZm9yICh2YXIgaSBpbiBvYmopIHsNCiAgICBpZiAob2JqLmhhc093blByb3BlcnR5KGkpKSB7DQogICAgICBrZXlzLnB1c2goaSk7DQogICAgfQ0KICB9DQoNCiAgcmV0dXJuIGtleXM7DQp9DQoNCg0KZnVuY3Rpb24gY3JlYXRlRWxlbWVudChpdGVtKSB7DQogIC8vY29uc29sZS5sb2coaXRlbSk7DQogIHZhciBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChpdGVtWyJfZWxlbWVudCJdKTsNCiAgaWYgKGl0ZW0uaGFzT3duUHJvcGVydHkoIl90ZXh0IikpIHsNCiAgICAvL2VsZW1lbnQuaW5uZXJIVE1MID0gIjxwPiIgKyBpdGVtWyJfdGV4dCJdICsgIjwvcD4iOw0KICAgIGVsZW1lbnQuaW5uZXJIVE1MID0gaXRlbVsiX3RleHQiXTsNCiAgfQ0KDQogIHZhciBrZXlzID0gZ2V0T2JqS2V5cyhpdGVtKTsNCiAgZm9yICh2YXIgaSA9IDA7IGkgPCBrZXlzLmxlbmd0aDsgaSsrKSB7DQogICAgaWYgKGtleXNbaV0uY2hhckF0KDApICE9ICJfIikgew0KICAgICAgLy9jb25zb2xlLmxvZyhrZXlzW2ldLCBpdGVtW2tleXNbaV1dKTsNCiAgICAgIGVsZW1lbnQuc2V0QXR0cmlidXRlKGtleXNbaV0sIGl0ZW1ba2V5c1tpXV0pOw0KICAgIH0NCiAgfQ0KDQogIC8vY29uc29sZS5sb2coZWxlbWVudCk7DQogIHJldHVybiBlbGVtZW50Ow0KfQ0KDQpmdW5jdGlvbiBtb2RpZnlPcHRpb24oaWQsIG9wdGlvbnMsIHZhbHVlcykgew0KICB2YXIgc2VsZWN0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpOw0KICBzZWxlY3QuaW5uZXJIVE1MID0gIiI7DQoNCiAgZm9yICh2YXIgaSA9IDA7IGkgPCBvcHRpb25zLmxlbmd0aDsgaSsrKSB7DQogIA0KICAgIHZhciBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiT1BUSU9OIikNCiAgDQogICAgZWxlbWVudC52YWx1ZSA9IHZhbHVlc1tpXTsNCiAgICBlbGVtZW50LmlubmVySFRNTCA9IG9wdGlvbnNbaV07DQoNCiAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkuYXBwZW5kQ2hpbGQoZWxlbWVudCk7DQogIA0KICB9DQoNCn0NCg0KDQpmdW5jdGlvbiBzdGFydFdlYlNvY2tldCgpIHsNCiAgaWYgKHdlYlNvY2tldHMgPT0gZmFsc2UpIHsNCiAgICByZXR1cm47DQogIH0NCg0KICAvL3dzLnNlbmQoJ3siY21kIjogImdldFNlcnZlckNvbmZpZzEifScpOw0KDQp9DQoNCmZ1bmN0aW9uIGNoZWNrRXJyKG9iaikgew0KICAvL2FsZXJ0KG9ialsiZXJyIl0pDQogIC8vc2NyZWVuTG9nKG9ialsiZXJyIl0sICJlcnJvciIpDQogIGNvbnNvbGUubG9nKG9iaik7DQogIHZhciBuZXdPYmogPSBuZXcgT2JqZWN0KCk7DQogIHZhciBuZXdFcnIgPSBuZXcgT2JqZWN0KCk7DQogIG5ld0Vyclsia2V5Il0gICA9ICJFcnJvciI7DQogIG5ld0VyclsidmFsdWUiXSA9IG9ialsiZXJyIl07DQogIG5ld0VyclsidHlwZSJdICA9ICJlcnJvciI7DQoNCiAgbmV3T2JqWzBdID0gbmV3RXJyDQogIHNob3dMb2cobmV3T2JqKTsNCiAgcmV0dXJuDQp9DQoNCmZ1bmN0aW9uIHNjcmVlbkxvZyhtc2csIG1zZ1R5cGUsIHNob3cpIHsNCiAgcmV0dXJuDQogIGNsZWFyVGltZW91dChjbG9zZUxvZykNCiAgdmFyIGRpdiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzY3JlZW5Mb2ciKTsNCiAgdmFyIG5ld01zZyA9IG5ldyBPYmplY3QoKTsNCiAgDQogIG5ld01zZ1siX2VsZW1lbnQiXSA9ICJQIjsNCiAgDQogIHN3aXRjaChtc2dUeXBlKSB7DQogICAgY2FzZSAiZXJyb3IiOiAgIG5ld01zZ1siY2xhc3MiXSA9ICJlcnJvck1zZyI7IGJyZWFrOw0KICAgIGNhc2UgIndhcm5pbmciOiBuZXdNc2dbImNsYXNzIl0gPSAid2FybmluZ01zZyI7IGJyZWFrOw0KICAgIC8vZGVmYXVsdDogICAgICBuZXdNc2dbImNsYXNzIl0gPSAiaW5mb01zZyINCiAgfQ0KDQogIG5ld01zZ1siX3RleHQiXSA9IG1zZzsNCg0KICBkaXYuYXBwZW5kQ2hpbGQoY3JlYXRlRWxlbWVudChuZXdNc2cpKTsNCg0KICBkaXYuc2Nyb2xsVG9wID0gZGl2LnNjcm9sbEhlaWdodDsNCg0KICBpZiAoc2hvdyA9PSBmYWxzZSkgew0KICAgIHJldHVybjsNCiAgfQ0KDQogIGRpdi5jbGFzc05hbWUgPSAiIg0KICBjbG9zZUxvZyA9IHNldFRpbWVvdXQoY2xvc2VTY3JlZW5Mb2csIDEwMDAwKTsNCn0NCg0KDQpmdW5jdGlvbiBjbG9zZVNjcmVlbkxvZygpIHsNCiAgdmFyIGRpdiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzY3JlZW5Mb2ciKTsNCiAgZGl2LmNsYXNzTmFtZSA9ICJzY3JlZW5Mb2dIaWRkZW4iDQp9DQoNCmZ1bmN0aW9uIHNob3dTY3JlZW5Mb2coKSB7DQogIGNsZWFyVGltZW91dChjbG9zZUxvZykNCiAgdmFyIGRpdiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzY3JlZW5Mb2ciKTsNCiAgdmFyIGN1cnJlbnRDbGFzcyA9IGRpdi5jbGFzc05hbWU7DQogIGRpdi5jbGFzc05hbWUgPSAic2NyZWVuTG9nSGlkZGVuIg0KDQogIHN3aXRjaChjdXJyZW50Q2xhc3MpIHsNCiAgICBjYXNlICJzY3JlZW5Mb2dIaWRkZW4iOiAgZGl2LmNsYXNzTmFtZSA9ICIiOyBicmVhazsgDQogICAgY2FzZSAiIjogZGl2LmNsYXNzTmFtZSA9ICJzY3JlZW5Mb2dIaWRkZW4iOyBicmVhazsNCiAgfQ0KfQ0KDQpmdW5jdGlvbiBzaG93TG9hZGluZ1NjcmVlbihlbG0pIHsNCiAgdmFyIGRpdiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJsb2FkaW5nIik7DQogIHN3aXRjaChlbG0pIHsNCiAgICBjYXNlIHRydWU6IGRpdi5jbGFzc05hbWUgPSAiYmxvY2siOyBicmVhazsNCiAgICBjYXNlIGZhbHNlOiBkaXYuY2xhc3NOYW1lID0gIm5vbmUiOyBicmVhazsNCg0KICAgIC8qDQogICAgY2FzZSB0cnVlOiBkaXYuc3R5bGUuZGlzcGxheSA9ICJibG9jayI7IGJyZWFrOw0KICAgIGNhc2UgZmFsc2U6IGRpdi5zdHlsZS5kaXNwbGF5ID0gIm5vbmUiOyBicmVhazsNCiAgICAqLw0KICB9DQp9DQoNCmZ1bmN0aW9uIGNyZWF0ZUNsaW50SW5mbyhvYmopIHsNCiAgLy9jb25zb2xlLmxvZyhvYmopOw0KICB2YXIga2V5cyA9IGdldE9iaktleXMob2JqKTsNCiAgZm9yICh2YXIgaSA9IDA7IGkgPCBrZXlzLmxlbmd0aDsgaSsrKSB7DQogICAgaWYoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoa2V5c1tpXSkpew0KICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoa2V5c1tpXSkuaW5uZXJIVE1MID0gb2JqW2tleXNbaV1dOw0KICAgIH0NCiAgfQ0KICAvL2RvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjbGllbnRJbmZvIikuY2xhc3NOYW1lID0gInZpc2libGUiOw0KfQ0KDQpmdW5jdGlvbiBzaG93RWxlbWVudChlbG1JRCwgdHlwZSkgew0KICBzd2l0Y2godHlwZSkgew0KICAgIGNhc2UgdHJ1ZTogIGNzc0NsYXNzID0gImJsb2NrIjsgYnJlYWs7DQogICAgY2FzZSBmYWxzZTogY3NzQ2xhc3MgPSAibm9uZSI7IGJyZWFrOw0KICB9DQoNCiAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoZWxtSUQpLmNsYXNzTmFtZSA9IGNzc0NsYXNzOw0KfSANCg0KZnVuY3Rpb24gc2hvd1BvcFVwRWxlbWVudChlbG0pIHsNCiAgdmFyIGFsbEVsZW1lbnRzID0gbmV3IEFycmF5KCJkZWxldGVVc2VyRGV0YWlsIiwgIm1hcHBpbmctZGV0YWlsIiwgInVzZXItZGV0YWlsIiwgImZpbGUtZGV0YWlsIik7DQoNCiAgZm9yICh2YXIgaSA9IDA7IGkgPCBhbGxFbGVtZW50cy5sZW5ndGg7IGkrKykgew0KICAgIHNob3dFbGVtZW50KGFsbEVsZW1lbnRzW2ldLCBmYWxzZSkNCiAgfQ0KDQogIHNob3dFbGVtZW50KGVsbSwgdHJ1ZSkNCg0KICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7IA0KICAgIHNob3dFbGVtZW50KCJwb3B1cCIsIHRydWUpOw0KICB9LCAxMCk7DQp9DQoNCiAgLy8gYm9keS4uLg0KDQpmdW5jdGlvbiBzaG93U3RyZWFtcyhmb3JjZSkgew0KDQogIHZhciBlbG1Cb3ggPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibXlTdHJlYW1zQm94Iik7DQogIHZhciBlbG0gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYWxsU3RyZWFtcyIpOw0KICAvL2NvbnNvbGUubG9nKGVsbSk7DQogIHNob3cgPSBlbG0uY2xhc3NOYW1lOw0KDQogIHN3aXRjaChmb3JjZSkgew0KICAgIGNhc2UgdHJ1ZTogc2hvdyA9ICJub3RWaXNpYmxlIjsgYnJlYWs7DQogICAgY2FzZSBmYWxzZTogc2hvdyA9ICJ2aXNpYmxlIjsgYnJlYWs7DQogIH0NCg0KICBzd2l0Y2goc2hvdykgew0KICAgIGNhc2UgIm5vdFZpc2libGUiOiANCiAgICAgIGVsbS5jbGFzc05hbWUgPSAidmlzaWJsZSI7IA0KICAgICAgZWxtQm94LnN0eWxlLmhlaWdodCA9ICIxMDBweCI7DQogICAgICBicmVhazsNCg0KICAgIGRlZmF1bHQ6IA0KICAgICAgZWxtLmNsYXNzTmFtZSA9ICJub3RWaXNpYmxlIjsgDQogICAgICBlbG1Cb3guc3R5bGUuaGVpZ2h0ID0gIjIwcHgiOw0KICAgICAgYnJlYWs7DQogIH0NCg0KICB2YXIgc2hvdyA9IGVsbS5zdHlsZS5kaXNwbGF5OyB7DQogICAgLy9jb25zb2xlLmxvZyhlbG0uc3R5bGUuZGlzcGxheSk7DQogIH0NCiAgDQogIGNhbGN1bGF0ZVdyYXBwZXJIZWlnaHQoKTsNCn0NCg0KZnVuY3Rpb24geHRldmVCYWNrdXAoKSB7DQogIGNvbnNvbGUubG9nKCJ4dGV2ZUJhY2t1cCIpOw0KICB2YXIgZGF0YSA9IG5ldyBPYmplY3QoKTsNCiAgZGF0YVsiY21kIl0gPSAieHRldmVCYWNrdXAiOw0KDQogIHhUZVZlKGRhdGEpOw0KfQ0KDQpmdW5jdGlvbiB4dGV2ZVJlc3RvcmUoZWxtKSB7DQogIHZhciByZXN0b3JlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiSU5QVVQiKTsNCiAgcmVzdG9yZS5zZXRBdHRyaWJ1dGUoInR5cGUiLCAiZmlsZSIpOw0KICByZXN0b3JlLnNldEF0dHJpYnV0ZSgiY2xhc3MiLCAibm90VmlzaWJsZSIpOw0KICByZXN0b3JlLnNldEF0dHJpYnV0ZSgibmFtZSIsICIiKTsNCiAgcmVzdG9yZS5pZCA9ICJ1cGxvYWQiOw0KDQogIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQocmVzdG9yZSk7DQogIHJlc3RvcmUuY2xpY2soKTsNCg0KICByZXN0b3JlLm9uY2hhbmdlID0gZnVuY3Rpb24oKSB7DQogICAgdmFyIGZpbGVuYW1lID0gcmVzdG9yZS5maWxlc1swXS5uYW1lDQogICAgLy9jb25zb2xlLmxvZyhyZXN0b3JlLnNyY0VsZW1lbnQuZmlsZXNbMF0pOw0KICAgIHZhciBjaGVjayA9IGNvbmZpcm0oIkZpbGU6ICIgKyBmaWxlbmFtZSArICJcbkFsbCBkYXRhIHdpbGwgYmUgcmVwbGFjZWQgd2l0aCB0aG9zZSBmcm9tIHRoZSBiYWNrdXAuXG5TaG91bGQgdGhlIGZpbGVzIGJlIHJlc3RvcmVkPyIpOyANCiAgICBpZiAoY2hlY2sgPT0gdHJ1ZSkgew0KICAgICAgdmFyIHJlYWRlciAgPSBuZXcgRmlsZVJlYWRlcigpOw0KICAgICAgdmFyIGZpbGUgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCdpbnB1dFt0eXBlPWZpbGVdJykuZmlsZXNbMF07DQogICAgICBpZiAoZmlsZSkgew0KICAgICAgICByZWFkZXIucmVhZEFzRGF0YVVSTChmaWxlKTsNCiAgICAgICAgcmVhZGVyLm9ubG9hZCA9IGZ1bmN0aW9uKCkgew0KICAgICAgICAgIGNvbnNvbGUubG9nKHJlYWRlci5yZXN1bHQpOw0KICAgICAgICAgIHZhciBkYXRhID0gbmV3IE9iamVjdCgpOw0KICAgICAgICAgIGRhdGFbImNtZCJdICAgICA9ICJ4dGV2ZVJlc3RvcmUiDQogICAgICAgICAgZGF0YVsiYmFzZTY0Il0gID0gcmVhZGVyLnJlc3VsdA0KDQogICAgICAgICAgeFRlVmUoZGF0YSk7DQogICAgICAgICAgcmV0dXJuDQogICAgICAgIH07DQogICAgICB9IGVsc2Ugew0KICAgICAgICBhbGVydCgiRmlsZSBjb3VsZCBub3QgYmUgbG9hZGVkIikNCiAgICAgIH0NCiAgICB9DQogIH07DQp9DQoNCmZ1bmN0aW9uIGdldEJhc2U2NChmaWxlKSB7DQogICB2YXIgcmVhZGVyID0gbmV3IEZpbGVSZWFkZXIoKTsNCiAgIHJlYWRlci5yZWFkQXNEYXRhVVJMKGZpbGUpOw0KICAgcmVhZGVyLm9ubG9hZCA9IGZ1bmN0aW9uKCkgew0KICAgICBjb25zb2xlLmxvZyhyZWFkZXIucmVzdWx0KTsNCiAgIH07DQogICByZWFkZXIub25lcnJvciA9IGZ1bmN0aW9uKGVycm9yKSB7DQogICAgIGNvbnNvbGUubG9nKCdFcnJvcjogJywgZXJyb3IpOw0KICAgfTsNCn0NCg0KZnVuY3Rpb24gbG9nb3V0KCkgew0KICBkb2N1bWVudC5jb29raWUuc3BsaXQoJzsnKS5mb3JFYWNoKGZ1bmN0aW9uKGMpIHsNCiAgICBkb2N1bWVudC5jb29raWUgPSBjLnRyaW0oKS5zcGxpdCgnPScpWzBdICsgJz07JyArICdleHBpcmVzPVRodSwgMDEgSmFuIDE5NzAgMDA6MDA6MDAgVVRDOyc7DQogIH0pOw0KICBsb2NhdGlvbi5yZWxvYWQoKTsNCn0NCg0KZnVuY3Rpb24gZ2V0Q29va2llKG5hbWUpIHsNCiAgdmFyIHZhbHVlID0gIjsgIiArIGRvY3VtZW50LmNvb2tpZTsNCiAgdmFyIHBhcnRzID0gdmFsdWUuc3BsaXQoIjsgIiArIG5hbWUgKyAiPSIpOw0KICBpZiAocGFydHMubGVuZ3RoID09IDIpIHJldHVybiBwYXJ0cy5wb3AoKS5zcGxpdCgiOyIpLnNoaWZ0KCk7DQp9DQoNCmZ1bmN0aW9uIHNldENvb2tpZSh0b2tlbikgew0KICAvL2NvbnNvbGUubG9nKHRva2VuKTsNCiAgZG9jdW1lbnQuY29va2llID0gIlRva2VuPSIgKyB0b2tlbg0KfQ0KDQo=" webUI["html/js/log.js"] = "dmFyIGxvZ0ludGVydmFsDQoNCg0KZnVuY3Rpb24gdXBkYXRlTG9nKCkgew0KICB2YXIgZGF0YSA9IG5ldyBPYmplY3QoKTsNCiAgZGF0YVsiY21kIl0gPSAiZ2V0TG9nIjsNCiAgeFRlVmUoZGF0YSk7DQogIHdyaXRlTG9nSW5EaXYoKTsNCiAgcmV0dXJuDQp9DQoNCmZ1bmN0aW9uIHdyaXRlTG9nSW5EaXYoKSB7DQogIHZhciBsb2dzID0gbG9nWyJsb2ciXTsNCiAgdmFyIGRpdiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzZXR0aW5ncyIpLmxhc3RDaGlsZC5sYXN0Q2hpbGQ7DQogIGRpdi5pbm5lckhUTUwgPSAiIjsNCg0KICB2YXIgbWF4ID0gNTA7DQogIA0KICANCiAgZm9yICh2YXIgaSA9IDA7IGkgPCBsb2dzLmxlbmd0aDsgaSsrKSB7DQogICAgdmFyIG5ld0VudHJ5ID0gbmV3IE9iamVjdCgpOw0KICAgIG5ld0VudHJ5WyJfZWxlbWVudCJdICA9ICJQIjsNCg0KICAgIGlmIChsb2dzW2ldLmluY2x1ZGVzKCJFUlJPUiIpKSB7DQovLyAgICAgIGNhc2UgIndhcm5pbmdzIjogIG1zZ1R5cGUgPSAid2FybmluZ01zZyI7IGJyZWFrOw0KICAgICAgbmV3RW50cnlbImNsYXNzIl0gICA9ICJlcnJvck1zZyI7DQogICAgfQ0KDQogICAgaWYgKGxvZ3NbaV0uaW5jbHVkZXMoIldBUk5JTkciKSkgew0KLy8gICAgICBjYXNlICJ3YXJuaW5ncyI6ICBtc2dUeXBlID0gIndhcm5pbmdNc2ciOyBicmVhazsNCiAgICAgIG5ld0VudHJ5WyJjbGFzcyJdICAgPSAid2FybmluZ01zZyI7DQogICAgfQ0KDQogICAgbmV3RW50cnlbIl90ZXh0Il0gICAgID0gbG9nc1tpXTsNCiAgICANCiAgICBkaXYuYXBwZW5kQ2hpbGQoY3JlYXRlRWxlbWVudChuZXdFbnRyeSkpOw0KICB9DQoNCiAgY2FsY3VsYXRlV3JhcHBlckhlaWdodCgpOw0KICB2YXIgc2Nyb2xsRGl2ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImJveC13cmFwcGVyIik7DQogIHNjcm9sbERpdi5zY3JvbGxUb3AgPSBzY3JvbGxEaXYuc2Nyb2xsSGVpZ2h0Ow0KfQ0KDQpmdW5jdGlvbiBzaG93TG9nKG9iaikgew0KICAvL2xvZ0ludGVydmFsID0gc2V0SW50ZXJ2YWwodXBkYXRlTG9nLCA1MDAwKTsNCg0KICB2YXIgbG9ncyA9IGxvZ1sibG9nIl07DQoNCiAgdmFyIGRpdiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzZXR0aW5ncyIpOw0KDQogIHZhciBuZXdFbnRyeSA9IG5ldyBPYmplY3QoKTsNCiAgbmV3RW50cnlbIl9lbGVtZW50Il0gID0gIkhSIjsNCiAgZGl2LmFwcGVuZENoaWxkKGNyZWF0ZUVsZW1lbnQobmV3RW50cnkpKTsNCiAgLy9kaXYgPSBkaXYubGFzdENoaWxkOw0KDQogIHZhciBuZXdFbnRyeSA9IG5ldyBPYmplY3QoKTsNCiAgbmV3RW50cnlbIl9lbGVtZW50Il0gICAgPSAiSU5QVVQiOw0KICBuZXdFbnRyeVsidHlwZSJdICAgICAgICA9ICJidXR0b24iOw0KICBuZXdFbnRyeVsiY2xhc3MiXSAgICAgICA9ICJidXR0b24iOw0KICBuZXdFbnRyeVsidmFsdWUiXSAgICAgICA9ICJFbXB0eSBMb2ciOw0KICBuZXdFbnRyeVsib25jbGljayJdICAgICA9ICJlbXB0eUxvZygpIjsNCiAgZGl2LmFwcGVuZENoaWxkKGNyZWF0ZUVsZW1lbnQobmV3RW50cnkpKTsNCg0KICB2YXIgbmV3RW50cnkgPSBuZXcgT2JqZWN0KCk7DQogIG5ld0VudHJ5WyJfZWxlbWVudCJdICAgID0gImNvZGUiOw0KICBuZXdFbnRyeVsiX3RleHQiXSAgICAgICAgPSAiVXBkYXRlIExvZzogIjsNCiAgZGl2LmFwcGVuZENoaWxkKGNyZWF0ZUVsZW1lbnQobmV3RW50cnkpKTsNCg0KICB2YXIgbmV3RW50cnkgPSBuZXcgT2JqZWN0KCk7DQogIG5ld0VudHJ5WyJfZWxlbWVudCJdICAgID0gIklOUFVUIjsNCiAgbmV3RW50cnlbInR5cGUiXSAgICAgICAgPSAiY2hlY2tib3giOw0KICAvL25ld0VudHJ5WyJjaGVja2VkIl0gICAgID0gImNoZWNrYm94IjsNCiAgbmV3RW50cnlbIm9uY2xpY2siXSAgICAgPSAibG9nVXBkYXRlcyh0aGlzKSI7DQogIGRpdi5hcHBlbmRDaGlsZChjcmVhdGVFbGVtZW50KG5ld0VudHJ5KSk7DQoNCiAgdmFyIG5ld0VudHJ5ID0gbmV3IE9iamVjdCgpOw0KICBuZXdFbnRyeVsiX2VsZW1lbnQiXSAgPSAiSFIiOw0KICBkaXYuYXBwZW5kQ2hpbGQoY3JlYXRlRWxlbWVudChuZXdFbnRyeSkpOw0KDQogIA0KDQoNCiAgDQogIHZhciBuZXdXcmFwcGVyID0gbmV3IE9iamVjdCgpOw0KICBuZXdXcmFwcGVyWyJfZWxlbWVudCJdICA9ICJESVYiOw0KICBuZXdXcmFwcGVyWyJpZCJdICAgICAgICA9ICJib3gtd3JhcHBlciI7DQogIGRpdi5hcHBlbmRDaGlsZChjcmVhdGVFbGVtZW50KG5ld1dyYXBwZXIpKTsNCiAgZGl2ID0gZGl2Lmxhc3RDaGlsZDsNCg0KICB2YXIgbmV3UHJlID0gbmV3IE9iamVjdCgpOw0KICBuZXdQcmVbIl9lbGVtZW50Il0gID0gIlBSRSI7DQogIG5ld1ByZVsiaWQiXSAgICAgICAgPSAibG9nU2NyZWVuIjsNCiAgZGl2LmFwcGVuZENoaWxkKGNyZWF0ZUVsZW1lbnQobmV3UHJlKSk7DQoNCiAgZGl2ID0gZGl2Lmxhc3RDaGlsZDsNCg0KICB3cml0ZUxvZ0luRGl2KCkNCiAgcmV0dXJuDQp9DQoNCmZ1bmN0aW9uIGVtcHR5TG9nKCkgew0KICB2YXIgZGF0YSA9IG5ldyBPYmplY3QoKTsNCiAgZGF0YVsiY21kIl0gPSAiZW1wdHlMb2ciOw0KICB4VGVWZShkYXRhKTsNCiAgcmV0dXJuDQp9DQoNCmZ1bmN0aW9uIGxvZ1VwZGF0ZXMoZWxtKSB7DQogIHN3aXRjaChlbG0uY2hlY2tlZCkgew0KICAgIGNhc2UgZmFsc2U6IGNsZWFySW50ZXJ2YWwobG9nSW50ZXJ2YWwpOyBicmVhazsNCiAgICBjYXNlIHRydWU6IGxvZ0ludGVydmFsID0gc2V0SW50ZXJ2YWwodXBkYXRlTG9nLCA1MDAwKTsgYnJlYWs7DQogICAgDQogIH0NCn0=" webUI["html/css/base.css"] = "KiB7DQogIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTsNCiAgLW1vei1hcHBlYXJhbmNlOiBub25lOw0KICAtbXMtYXBwZWFyYW5jZTogbm9uZTsNCiAgZm9udC1mYW1pbHk6ICJBcmlhbCIsIHNhbnMtc2VyaWY7DQogIGxldHRlci1zcGFjaW5nOiAycHg7IA0KfQ0KDQovKg0KOjotd2Via2l0LXNjcm9sbGJhciB7IA0KICAgIGRpc3BsYXk6IG5vbmU7IA0KfQ0KKi8NCg0KOjotd2Via2l0LXNjcm9sbGJhciB7DQogIHdpZHRoOiAxMnB4Ow0KICBoZWlnaHQ6IDEycHg7DQp9DQoNCiANCjo6LXdlYmtpdC1zY3JvbGxiYXItdHJhY2sgew0KICAtd2Via2l0LWJveC1zaGFkb3c6IGluc2V0IDAgMCA2cHggcmdiYSgwLDAsMCwwLjMpOyANCiAgYm9yZGVyLXJhZGl1czogNXB4Ow0KICAgIA0KfQ0KIA0KOjotd2Via2l0LXNjcm9sbGJhci10aHVtYiB7DQogIGJvcmRlci1yYWRpdXM6IDVweDsNCiAgLXdlYmtpdC1ib3gtc2hhZG93OiBpbnNldCAwIDAgNnB4IHJnYmEoMCwgMCwgMCwwLjYpOyANCiAgYmFja2dyb3VuZC1jb2xvcjogIzQ0NDsNCn0NCg0KOjotd2Via2l0LXNjcm9sbGJhci10aHVtYjpob3ZlciB7DQogIGJhY2tncm91bmQ6ICMzMzM7IA0KfQ0KDQo6Oi13ZWJraXQtc2Nyb2xsYmFyLWNvcm5lciB7IA0KICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsgDQp9DQoNCmEgew0KICBjb2xvcjogIzAwRTZGRjsNCn0NCg0KaHRtbCwgYm9keSB7DQogIGNvbG9yOiAjZmZmOw0KICBtYXJnaW46IDBweCBhdXRvOw0KICBoZWlnaHQ6IDEwMCU7DQogIGZvbnQtc2l6ZTogMTRweDsNCn0NCg0KaDIgew0KICBmb250LXNpemU6IDI0cHg7DQogIGxldHRlci1zcGFjaW5nOiAycHg7DQp9DQoNCmgzIHsNCiAgZm9udC1zaXplOiAyMnB4Ow0KICBsZXR0ZXItc3BhY2luZzogMXB4Ow0KfQ0KDQpoNCB7DQogIGZvbnQtc2l6ZTogMjBweDsNCiAgbGV0dGVyLXNwYWNpbmc6IDFweDsNCiAgbGluZS1oZWlnaHQ6IDEuNWVtOw0KDQp9DQoNCmg1IHsNCiAgZm9udC1zaXplOiAxNnB4Ow0KICBsZXR0ZXItc3BhY2luZzogMXB4Ow0KICBsaW5lLWhlaWdodDogMS4yZW07DQogIG1hcmdpbjogMjVweCAwcHggMTBweCAwcHg7DQp9DQoNCmhyIHsNCiAgYm9yZGVyOiAwOw0KICBoZWlnaHQ6IDFweDsNCiAgYmFja2dyb3VuZDogIzMzMzsNCiAgbWFyZ2luOiAxMHB4IDBweDsNCn0NCg0KcCB7DQogIG1hcmdpbjogMnB4Ow0KICBwYWRkaW5nOiAycHggNXB4Ow0KfQ0KDQpwcmUgew0KICBtYXJnaW46IDBweCAwcHggNXB4IDBweDsNCiAgZm9udC1zaXplOiAxMnB4Ow0KICBjb2xvcjogI2RkZDsNCiAgbGV0dGVyLXNwYWNpbmc6IDFweDsNCiAgd2hpdGUtc3BhY2U6IHByZS13cmFwOw0KICBmb250LWZhbWlseTogbW9ub3NwYWNlOyANCiAgZm9udC1zaXplOiAxMnB4OyANCiAgZm9udC1zdHlsZTogbm9ybWFsOyANCiAgZm9udC12YXJpYW50OiBub3JtYWw7IA0KICBsaW5lLWhlaWdodDogMS42ZW07IA0KfQ0KDQpsYWJlbCB7DQogIG1hcmdpbi1ib3R0b206IDIwcHg7DQogIGRpc3BsYXk6IGJsb2NrOw0KfQ0KDQpsaSB7DQogIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTsNCiAgYmFja2dyb3VuZC1jb2xvcjogIzExMTsNCiAgcGFkZGluZzogMTBweCAyMHB4Ow0KICBjdXJzb3I6IHBvaW50ZXI7DQogIGJvcmRlci1sZWZ0OiBzb2xpZCAycHggIzExMTsNCiAgdHJhbnNpdGlvbjogYWxsIDAuMzsNCn0NCg0KbGk6aG92ZXIgew0KICBib3JkZXItY29sb3I6ICMwMEU2RkYNCn0NCg0Kc2VsZWN0IHsNCiAgY3Vyc29yOiBwb2ludGVyOw0KICB3aWR0aDogY2FsYygxMDAlICsgMnB4KTsNCiAgYm9yZGVyOiBzb2xpZCAwcHggIzAwRTZGRjsNCiAgYm9yZGVyLXJhZGl1czogMHB4Ow0KICBvdXRsaW5lOiBub25lOw0KICBjb2xvcjogI2ZmZjsNCiAgcGFkZGluZzogOXB4IDEwcHg7DQogIGRpc3BsYXk6YmxvY2s7DQogIGJhY2tncm91bmQtY29sb3I6ICMzMzM7DQogIGZvbnQtc2l6ZTogMTRweDsNCiAgbWFyZ2luOiA1cHggMHB4IDVweCAwcHg7DQp9DQoNCnNlbGVjdDpmb2N1cyB7DQogIG91dGxpbmU6IG5vbmU7DQp9DQoNCmlucHV0IHsNCiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lOw0KICBtYXJnaW46IDVweCAwcHg7DQogIHBhZGRpbmc6IDIuNXB4IDEwcHg7DQogIG91dGxpbmU6IG5vbmU7DQogIGZvbnQtc2l6ZTogMTRweDsNCn0NCg0KaW5wdXRbdHlwZT1idXR0b25dLCBpbnB1dFt0eXBlPXN1Ym1pdF0gew0KICBjdXJzb3I6IHBvaW50ZXI7DQogIGJhY2tncm91bmQtY29sb3I6ICMwMDA7DQogIG1hcmdpbjogMTBweCAxMHB4Ow0KICBwYWRkaW5nOiAxMHB4IDI1cHg7DQogIGJvcmRlcjogc29saWQgMHB4Ow0KICBib3JkZXItY29sb3I6ICMwMDA7DQogIGJvcmRlci1yYWRpdXM6IDNweDsNCiAgb3V0bGluZTogbm9uZTsNCiAgY29sb3I6ICNmZmY7DQp9DQoNCmlucHV0W3R5cGU9YnV0dG9uXTpmb2N1cyB7IA0KICAgb3V0bGluZTogbm9uZTsNCn0NCg0KaW5wdXRbdHlwZT1idXR0b25dOmhvdmVyIHsNCiAgYmFja2dyb3VuZC1jb2xvcjogIzAwRTZGRjsNCiAgY29sb3I6ICMwMDA7DQp9DQoNCmlucHV0W3R5cGU9YnV0dG9uXTpob3Zlci5kZWxldGUgIHsNCiAgYmFja2dyb3VuZC1jb2xvcjogcmVkOw0KICBjb2xvcjogI2ZmZjsNCn0NCg0KaW5wdXRbdHlwZT10ZXh0XSwgaW5wdXRbdHlwZT1zZWFyY2hdLCBpbnB1dFt0eXBlPXBhc3N3b3JkXSB7DQogIGNvbG9yOiAjZmZmOw0KICB3aWR0aDogLXdlYmtpdC1jYWxjKDEwMCUgLSAwcHgpOw0KICB3aWR0aDogLW1vei1jYWxjKDEwMCUgLSAwcHgpOw0KICB3aWR0aDogY2FsYygxMDAlIC0gMHB4KTsNCiAgb3V0bGluZTogbm9uZTsNCiAgYm9yZGVyOiBzb2xpZCAxcHggdHJhbnNwYXJlbnQ7DQogIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50Ow0KICBib3JkZXItYm90dG9tLWNvbG9yOiAjNTU1Ow0KICBib3JkZXItcmFkaXVzOiAwcHg7DQogIHBhZGRpbmc6IDhweCAxMHB4Ow0KfQ0KDQppbnB1dFt0eXBlPSJjaGVja2JveCJdIHsNCiAgYm9yZGVyOiBzb2xpZCAxcHggIzAwRTZGRjsNCiAgYmFja2dyb3VuZC1jb2xvcjogIzMzMzsNCiAgaGVpZ2h0OiAyNXB4Ow0KICB3aWR0aDogMjVweDsNCiAgY3Vyc29yOiBwb2ludGVyOw0KICAvKg0KICAtd2Via2l0LWFwcGVhcmFuY2U6IGNoZWNrYm94Ow0KICAqLw0KfQ0KDQppbnB1dFt0eXBlPSJjaGVja2JveCJdOmNoZWNrZWQgew0KICBjb2xvcjogI2ZmZjsNCiAgYmFja2dyb3VuZC1jb2xvcjogIzAwRTZGRjsNCiAgLypkaXNwbGF5OiBpbmxpbmUtYmxvY2s7Ki8NCn0NCg0KaW5wdXRbdHlwZT0iY2hlY2tib3giXTpiZWZvcmUgew0KICBwb3NpdGlvbjogaW5pdGlhbDsNCiAgbGVmdDogMHB4Ow0KICBtYXJnaW4tbGVmdDogLTRweDsNCiAgY29udGVudDogIiAiOw0KfQ0KDQppbnB1dFt0eXBlPSJjaGVja2JveCJdOmNoZWNrZWQ6YmVmb3JlIHsNCiAgcG9zaXRpb246IGluaXRpYWw7DQogIGxlZnQ6IDBweDsNCiAgbWFyZ2luLWxlZnQ6IC0zcHg7DQogIGNvbnRlbnQ6ICLinJMiOw0KICBjb2xvcjogIzAwMDsNCn0NCg0KDQppbnB1dFt0eXBlPWJ1dHRvbl0uY2FuY2VsIHsNCiAgDQogIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50Ow0KICBib3JkZXItY29sb3I6IHJlZDsNCn0NCg0KaW5wdXRbdHlwZT1idXR0b25dLnNhdmV7DQogIGJhY2tncm91bmQtY29sb3I6ICMxMTE7DQogIGZsb2F0OiByaWdodDsNCn0NCg0KDQppbnB1dFt0eXBlPWJ1dHRvbl0uYmxhY2ssIGlucHV0W3R5cGU9c3VibWl0XS5ibGFja3sNCiAgYmFja2dyb3VuZC1jb2xvcjogIzAwMDsNCiAgYm9yZGVyLWNvbG9yOiAjMDAwOw0KfQ0KDQppbnB1dFt0eXBlPWJ1dHRvbl0uY2VudGVyew0KICBtYXJnaW4tcmlnaHQ6IGF1dG87DQogIG1hcmdpbi1sZWZ0OiBhdXRvOw0KICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDAwOw0KICBib3JkZXItY29sb3I6ICMwMDA7DQp9DQoNCi5wb2ludGVyIHsNCiAgY3Vyc29yOiBwb2ludGVyOw0KfQ0KDQoucG9pbnRlcjpob3ZlciB7DQogIGNvbG9yOiAjMDBFNkZGOw0KICBjdXJzb3I6IHBvaW50ZXI7DQp9DQoNCi5zb3J0VGhpcyB7DQogIGNvbG9yOiAjMDBFNkZGOw0KfQ0KDQoudzQwcHggew0KICBtYXgtd2lkdGg6IDQwcHg7DQp9DQoNCi53NTBweCB7DQogIG1heC13aWR0aDogNTBweDsNCn0NCg0KLnc4MHB4IHsNCiAgbWF4LXdpZHRoOiA4MHB4Ow0KfQ0KDQoudzE1MHB4IHsNCiAgbWF4LXdpZHRoOiAxNTBweDsNCn0NCg0KLncyMDBweCB7DQogIG1heC13aWR0aDogMjAwcHg7DQogIG1pbi13aWR0aDogMTAwcHg7DQogIHdpZHRoOiAyMDBweDsNCiAgb3ZlcmZsb3cteDogaGlkZGVuOw0KICB3aGl0ZS1zcGFjZTogbm93cmFwOw0KICBvdmVyZmxvdzogaGlkZGVuOw0KICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsNCn0NCg0KLnczMDBweCB7DQogIG1heC13aWR0aDogMzAwcHg7DQp9DQoNCi53MjIwcHggew0KICBtYXgtd2lkdGg6IDIyMHB4Ow0KICBjdXJzb3I6IGFsaWFzOw0KfQ0KDQouZm9vdGVyIHsNCiAgZm9udC1zaXplOiAxMHB4Ow0KfQ0KDQouY2VudGVyIHsNCiAgdGV4dC1hbGlnbjogY2VudGVyOw0KfQ0KDQouc2NyZWVuTG9nSGlkZGVuIHsNCiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMHB4LCAtMTEwcHgpOw0KfQ0KDQouYm9yZGVyU3BhY2Ugew0KICBtYXJnaW4tYm90dG9tOiAzMHB4Ow0KfQ0KDQouYmxvY2sgew0KDQp9DQoNCi5ub25lIHsNCiAgZGlzcGxheTogbm9uZTsNCn0NCg0KDQoubm90VmlzaWJsZSB7DQogIGhlaWdodDogMHB4Ow0KICBkaXNwbGF5OiBub25lOw0KICBvcGFjaXR5OiAwOw0KICBib3JkZXItYm90dG9tOiAjMDAwIHNvbGlkIDBweDsNCiAgDQp9DQoNCi52aXNpYmxlIHsNCiAgb3BhY2l0eTogMTsNCiAgZGlzcGxheTogYmxvY2s7DQogIGJvcmRlci1ib3R0b206ICM0NDQgc29saWQgMXB4OyANCiAgcGFkZGluZzogMTBweDsNCn0NCg0KLmZsb2F0UmlnaHQgew0KICBmbG9hdDogcmlnaHQ7DQp9DQoNCi5mbG9hdExlZnQgew0KICBmbG9hdDogbGVmdDsNCn0NCg0KLm1lbnUtYWN0aXZlIHsNCiAgYmFja2dyb3VuZC1jb2xvcjogIzAwRTZGRjsNCn0NCg0KLm1lbnUtbm90QWN0aXZlIHsNCiAgDQp9DQoNCiNicmFuY2ggew0KICBkaXNwbGF5OiB0YWJsZTsNCiAgbWFyZ2luOiBhdXRvOw0KICBjb2xvcjogcmVkOw0KfQ0KDQojaW50ZXJhY3Rpb24gew0KICBtYXJnaW4tYm90dG9tOiAxMDBweDsNCiAgdGV4dC1hbGlnbjogY2VudGVyOw0KICBib3JkZXItYm90dG9tOiBzb2xpZCAwcHggIzc3NzsNCn0NCg0KDQouaGFsZiB7DQogIGRpc3BsYXk6IGJsb2NrOw0KICB3aWR0aDogNDUlOw0KfQ0KDQoubWVudSB7DQogIGJvcmRlcjogc29saWQgMXB4ICMwMEU2RkY7DQp9DQoNCi5pbmZvTXNnIHsNCiAgY29sb3I6ICNhYWE7DQp9DQoNCi5lcnJvck1zZyB7DQogIGNvbG9yOiByZWQ7DQp9DQoNCi53YXJuaW5nTXNnIHsNCiAgY29sb3I6IHllbGxvdzsNCn0NCg0KLmRlYnVnTXNnIHsNCiAgY29sb3I6IG1hZ2VudGE7DQp9DQoNCi5OZXdzLCAuTW92aWUsIC5TZXJpZXMsIC5TcG9ydHMsIC5LaWRzIHsNCiAgYm9yZGVyLWxlZnQ6IHNvbGlkIDJweA0KfQ0KDQouTmV3cyB7DQogIGJvcmRlci1jb2xvcjogdG9tYXRvDQp9DQoNCi5Nb3ZpZSB7DQogIGJvcmRlci1jb2xvcjogcm95YWxibHVlOw0KfQ0KDQouU2VyaWVzIHsNCiAgYm9yZGVyLWNvbG9yOiBnb2xkOw0KfQ0KDQouU3BvcnRzIHsNCiAgYm9yZGVyLWNvbG9yOiB5ZWxsb3dncmVlbjsNCn0NCg0KLktpZHMgew0KICBib3JkZXItY29sb3I6IG1lZGl1bXB1cnBsZTsNCn0NCg0KLyogTG9hZGluZyAqLw0KI2xvYWRpbmcgew0KICBsZWZ0OiAwcHg7DQogIHRvcDogMHB4Ow0KICB6LWluZGV4OiAxMDAwMDsNCiAgcG9zaXRpb246IGFic29sdXRlOw0KICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsMCwwLCAwLjgpOw0KICBtYXJnaW46IGF1dG87DQogIHdpZHRoOiAxMDAlOw0KICBoZWlnaHQ6IDEwMCU7DQp9DQoNCg0KLmxvYWRlciB7DQogIGJvcmRlcjogNXB4IHNvbGlkIHRyYW5zcGFyZW50Ow0KICBib3JkZXItcmFkaXVzOiA1MCU7DQogIGJvcmRlci10b3A6IDVweCBzb2xpZCAjMDBFNkZGOw0KICBib3JkZXItYm90dG9tOiA1cHggc29saWQgIzAwRTZGRjsNCiAgd2lkdGg6IDUwcHg7DQogIGhlaWdodDogNTBweDsNCiAgLXdlYmtpdC1hbmltYXRpb246IHNwaW4gMS4ycyBsaW5lYXIgaW5maW5pdGU7DQogIGFuaW1hdGlvbjogc3BpbiAxLjJzIGxpbmVhciBpbmZpbml0ZTsNCg0KICBwb3NpdGlvbjogZml4ZWQ7DQogIG1hcmdpbjogYXV0bzsNCg0KICB0b3A6IDA7DQogIHJpZ2h0OiAwOw0KICBib3R0b206IDA7DQogIGxlZnQ6IDA7DQogIA0KfQ0KDQpALXdlYmtpdC1rZXlmcmFtZXMgc3BpbiB7DQogIDAlIHsgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTsgfQ0KICAxMDAlIHsgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpOyB9DQp9DQoNCkBrZXlmcmFtZXMgc3BpbiB7DQogIDAlIHsgdHJhbnNmb3JtOiByb3RhdGUoMGRlZyk7IH0NCiAgMTAwJSB7IHRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7IH0NCn0NCg==" - webUI["html/img/settings.png"] = "iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAAAXNSR0IArs4c6QAAAAlwSFlzAAAsSwAALEsBpT2WqQAABCRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IlhNUCBDb3JlIDUuNC4wIj4KICAgPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIgogICAgICAgICAgICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgICAgICAgICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyI+CiAgICAgICAgIDx0aWZmOlJlc29sdXRpb25Vbml0PjI8L3RpZmY6UmVzb2x1dGlvblVuaXQ+CiAgICAgICAgIDx0aWZmOkNvbXByZXNzaW9uPjU8L3RpZmY6Q29tcHJlc3Npb24+CiAgICAgICAgIDx0aWZmOlhSZXNvbHV0aW9uPjI4ODwvdGlmZjpYUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6T3JpZW50YXRpb24+MTwvdGlmZjpPcmllbnRhdGlvbj4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+Mjg4PC90aWZmOllSZXNvbHV0aW9uPgogICAgICAgICA8ZXhpZjpQaXhlbFhEaW1lbnNpb24+NTA8L2V4aWY6UGl4ZWxYRGltZW5zaW9uPgogICAgICAgICA8ZXhpZjpDb2xvclNwYWNlPjE8L2V4aWY6Q29sb3JTcGFjZT4KICAgICAgICAgPGV4aWY6UGl4ZWxZRGltZW5zaW9uPjUwPC9leGlmOlBpeGVsWURpbWVuc2lvbj4KICAgICAgICAgPGRjOnN1YmplY3Q+CiAgICAgICAgICAgIDxyZGY6QmFnLz4KICAgICAgICAgPC9kYzpzdWJqZWN0PgogICAgICAgICA8eG1wOk1vZGlmeURhdGU+MjAxOC0wOC0xMFQxODowODo4OTwveG1wOk1vZGlmeURhdGU+CiAgICAgICAgIDx4bXA6Q3JlYXRvclRvb2w+UGl4ZWxtYXRvciAzLjM8L3htcDpDcmVhdG9yVG9vbD4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgIDwvcmRmOlJERj4KPC94OnhtcG1ldGE+Ckxt87EAAAS7SURBVGgFzZpdiFVVGIbn5N+IMgVhaRLqWI7mQIJoIVRgOhQZNDAhWcbcVuPV3BRE6I14440iQQSaN0p6kz8zI0k5inUhZSSaYOVYODMo5eiMOOPf+LzH2cPMPmvttdbe53jOBy9rr2+938/ae51vr733qaoqgQwPD68B/wDJfXAP3AE94JMShCy+SxJ9CvSDJFlU7MiPFdsh/hrBdIffBsd48HApJjLPI4tnPThBlFJMZI5HBuWZCIt9AmgEzeAJR6JzHeMadnKI8wbYCz4Fkz18JlNwMgf8BCL5j4O3bVaMdUfEhPZqgv1U7HbEbDvoT7HZOPUYNwAlHheV09a4A3RTgMqtj9QY7JdgeM5i3I4+fDIYrQeq/UnyNYOTlBDtS+BwEjk2doz+KyO2OY5bwVCME+/qylTHT4C1D3k+uB33Yul3ov/eMuajlu1RH+II5wtT4hNNSnQ6U/kzbRkfq351bCfF8apAm7kmvq38njWRK0S305SHcSK5XO4U5O9MBmXWbSe3E6YccialdKzH2TTnQEF10XgZ5DdivsxEhkyxjVdERAwu03xmMiqD7hYx19km4cyHq6KyeHKkWpSz+ciVrHVpRYZk/wLHp0H2bULkNKzt4Eq86TKxLq3IECf6nXwV9QPbAfjHQSfoD7SN6L63gYhvbrkiTwKf/dPYpbdPVxKMnigdg0VAG8FQye8AzBl6aIk2A+wPiNoHd63LNZx3wbUAvz/CfTzJb/43AmkGpLfAi0DPE/NALQgtve+xFPdi5xRiNkHa5ySOJ/TR7RrBJdqL4AAxL+p+8ToYAFklNCnF3pM1KPba2L6v8vons5oPsko9ZyZoa0PsOoKezxoY+y5N5DYHWSvDTXzUMJH7IUkRW0tbyyV0CcfDDKmqDMe1KfqnQyehGNgo9q8p4hWYFGsiBY4fsSK/BRkkaPgj5PhMy720BnVFesfnlKo3Das0bw8XYJf196GEuzWRLSDoRypLg2w06FyqTS6Cx7iK1eeqGqrnugmuBgvB8+A5UAuqQYiU+oZ4h2T+BV3gAlDp/pai0U1rFpVGMAv8AHzFd4vShMOQLcoB+DNB/sSbM3ZoMV4BQsW0adSJSbNp1Hu1mY40/YZxpPdJaUSfFzrBMXAjjQNsdvll6cHCWVvKJIphdhcny11pqmolCk5aIDif0BKdZBucgPlO8kh/r8O4HtwClSCbk86HtQqQuUrvKVCf5OARjt0lll4H/WKKmbS0tmJQKZNQ7nq9+w0n2LhTN04E8jKMPpZ1hcli8tGTZYEYJwJrZQGzchTGz3a2ifwdkHc73LYAfpx6DcWXQK1LeiDsdpFGx7UOwUGQJKpmGyIjjvWh50iSQWzsZ/ofgvx+jnYp+B/YpJcB7QXDBKPJ4JDF6+/oCwoBuhoL36R+Jp4RJH16u2IgaxJpHhMehsBY3wTjV2YbOuuumLHrwCW6msbSj74O/DHGgV4Ohl8Jw1nSMmsB+tL6Wnw83odzBrhEr2GtgvFE8A74ADxtJZZygMC25cjQqBwqdg62qpUlziUP45Cq6OGuqqoUE/FJ8i+v7MpJYvEsHl1A5gNty2vLmaN3bBLdAvqB3svqXxLRvyEuc9zs7SiA+ACpw05pJx8SoAAAAABJRU5ErkJggg==" - webUI["html/img/x_black.png"] = "iVBORw0KGgoAAAANSUhEUgAAAQAAAAEACAIAAADTED8xAAAAAXNSR0IArs4c6QAAAAlwSFlzAAAWJQAAFiUBSVIk8AAAA6ppVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IlhNUCBDb3JlIDUuNC4wIj4KICAgPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIgogICAgICAgICAgICB4bWxuczp0aWZmPSJodHRwOi8vbnMuYWRvYmUuY29tL3RpZmYvMS4wLyIKICAgICAgICAgICAgeG1sbnM6ZXhpZj0iaHR0cDovL25zLmFkb2JlLmNvbS9leGlmLzEuMC8iPgogICAgICAgICA8eG1wOk1vZGlmeURhdGU+MjAxOC0xMS0xNVQxNzoxMTozNzwveG1wOk1vZGlmeURhdGU+CiAgICAgICAgIDx4bXA6Q3JlYXRvclRvb2w+UGl4ZWxtYXRvciAzLjM8L3htcDpDcmVhdG9yVG9vbD4KICAgICAgICAgPHRpZmY6T3JpZW50YXRpb24+MTwvdGlmZjpPcmllbnRhdGlvbj4KICAgICAgICAgPHRpZmY6Q29tcHJlc3Npb24+NTwvdGlmZjpDb21wcmVzc2lvbj4KICAgICAgICAgPHRpZmY6UmVzb2x1dGlvblVuaXQ+MjwvdGlmZjpSZXNvbHV0aW9uVW5pdD4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+MTQ0PC90aWZmOllSZXNvbHV0aW9uPgogICAgICAgICA8dGlmZjpYUmVzb2x1dGlvbj4xNDQ8L3RpZmY6WFJlc29sdXRpb24+CiAgICAgICAgIDxleGlmOlBpeGVsWERpbWVuc2lvbj4yNTY8L2V4aWY6UGl4ZWxYRGltZW5zaW9uPgogICAgICAgICA8ZXhpZjpDb2xvclNwYWNlPjE8L2V4aWY6Q29sb3JTcGFj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a1jSekqmtA1rrGsx7JYkDuvrVahwRdgVXD1xcwri6mmYRULLe4CuPc2wfrGo4U+7Y/3S9ZHD+GcflbnfiCJbr77whoaS6ucCXVkVkuLKgORQwNJFygRDJnqwb9i3b0HxkqjT0L4erGy5Rh1IRnhXrpaZq6GZCyRLf6cvhoTY6V9koX8bGdEUlyWVm6W5q1GuostihNm97L/dpm5k+QHCbDna0zRzgSS/lRHWL7iHPOa+9YsYkpttoCwSMcQRkrWioz5Qsc7aFJ1coHY3QyJ9jSjfJEOCfTUpWzehVBnUbqCJOCHEkB1xsmXDwq9DnObUz9q4QOUqYPaPKFzUKcVj6Eeu461q67Vhlqy6+Xo11G52JhRZNNW1FRbN00FWPVwguSa+8YEZ1i+D9vQjelm/iHTwAB69Vwd7CkuGLOcWtxfR4o+dHhNg4DNmhDvJ8M6ehknvhTXMDp8kQQgT33W4z+i7k/2gho+Jvrp1NTVwgW5opV76yl8F/cufe9CyJiRllZ6lYCHMXWPAXmNp9CRb8Pi30r658sHtCSCPsZNXQDYdMaLIek/No13V/rBfGMFSCXnsKNo1dDelnKt/dyUH8uvjjLH+zyfpbv1iUl/NVBt4mVJy58HoDyFZLt0rrj4G7TfIjARvMjy7d6JnR/UXS/+yeD5kLYkETxpRZL2jZJVzb7cl9yZA/cYqh4z+20AEzOj+BKxbZYRFqXQssvLs5gQzpBUp616rNsX55WdXBHbPBRrwlBm5v2VYJo1FsjmOtQg8ezo+fd8Ve4qy04HPRlmR1UiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABGwg8D8UnyVeZFwGAQAAAABJRU5ErkJggg==" + webUI["html/login.html"] = "PCFkb2N0eXBlIGh0bWw+DQo8aHRtbD4NCiAgPGhlYWQ+DQogICAgPG1ldGEgY2hhcnNldD0idXRmLTgiPg0KICAgIDxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgsIGluaXRpYWwtc2NhbGU9MS4wIiAvPiANCiAgICA8dGl0bGU+eFRlVmU8L3RpdGxlPg0KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iY3NzL3NjcmVlbi5jc3MiIHR5cGU9InRleHQvY3NzIj4NCiAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9ImNzcy9iYXNlLmNzcyIgdHlwZT0idGV4dC9jc3MiPg0KICAgIDxzY3JpcHQgbGFuZ3VhZ2U9ImphdmFzY3JpcHQiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJqcy9uZXR3b3JrX3RzLmpzIj48L3NjcmlwdD4NCiAgICA8c2NyaXB0IGxhbmd1YWdlPSJqYXZhc2NyaXB0IiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ianMvYXV0aGVudGljYXRpb25fdHMuanMiPjwvc2NyaXB0Pg0KICA8L2hlYWQ+DQoNCiAgICA8Ym9keT4NCiAgICAgICAgICANCiAgICAgIDxkaXYgaWQ9ImhlYWRlciIgY2xhc3M9ImltZ0NlbnRlciI+PC9kaXY+DQoNCiAgICAgIDxkaXYgaWQ9ImJveCI+DQoNCiAgICAgICAgPGRpdiBpZD0iaGVhZGxpbmUiPg0KICAgICAgICAgIDxoMSBpZD0iaGVhZC10ZXh0IiBjbGFzcz0iY2VudGVyIj57ey5sb2dpbi5oZWFkbGluZX19PC9oMT4NCiAgICAgICAgPC9kaXY+DQoNCiAgICAgICAgPHAgaWQ9ImVyciIgY2xhc3M9ImVycm9yTXNnIGNlbnRlciI+e3suYXV0aGVudGljYXRpb25FcnJ9fTwvcD4NCg0KICAgICAgICA8ZGl2IGlkPSJjb250ZW50Ij4NCg0KICAgICAgICAgICAgPGZvcm0gaWQ9ImF1dGhlbnRpY2F0aW9uIiBhY3Rpb249IiIgbWV0aG9kPSJwb3N0Ij4NCg0KICAgICAgICAgICAgICA8aDU+e3subG9naW4udXNlcm5hbWUudGl0bGV9fTo8L2g1Pg0KICAgICAgICAgICAgICA8aW5wdXQgaWQ9InVzZXJuYW1lIiB0eXBlPSJ0ZXh0IiBuYW1lPSJ1c2VybmFtZSIgcGxhY2Vob2xkZXI9IlVzZXJuYW1lIiB2YWx1ZT0iIj4NCiAgICAgICAgICAgICAgPGg1Pnt7LmxvZ2luLnBhc3N3b3JkLnRpdGxlfX06PC9oNT4NCiAgICAgICAgICAgICAgPGlucHV0IGlkPSJwYXNzd29yZCIgdHlwZT0icGFzc3dvcmQiIG5hbWU9InBhc3N3b3JkIiBwbGFjZWhvbGRlcj0iUGFzc3dvcmQiIHZhbHVlPSIiPg0KDQogICAgICAgICAgICA8L2Zvcm0+DQoNCiAgICAgICAgPC9kaXY+DQoNCiAgICAgICAgPGRpdiBpZD0iYm94LWZvb3RlciI+DQogICAgICAgICAgPGlucHV0IGlkPSJzdWJtaXQiIGNsYXNzPSIiIHR5cGU9ImJ1dHRvbiIgdmFsdWU9Int7LmJ1dHRvbi5sb2dpbn19IiBvbmNsaWNrPSJqYXZhc2NyaXB0OiBsb2dpbigpOyI+DQogICAgICAgIDwvZGl2Pg0KICAgICAgICANCiAgICAgIDwvZGl2Pg0KDQogICAgPC9ib2R5Pg0KICAgIA0KPC9odG1sPg==" webUI["html/img/x_white.png"] = "iVBORw0KGgoAAAANSUhEUgAAAQAAAAEACAIAAADTED8xAAAAAXNSR0IArs4c6QAAAAlwSFlzAAAWJQAAFiUBSVIk8AAAA6ppVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IlhNUCBDb3JlIDUuNC4wIj4KICAgPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIgogICAgICAgICAgICB4bWxuczp0aWZmPSJodHRwOi8vbnMuYWRvYmUuY29tL3RpZmYvMS4wLyIKICAgICAgICAgICAgeG1sbnM6ZXhpZj0iaHR0cDovL25zLmFkb2JlLmNvbS9leGlmLzEuMC8iPgogICAgICAgICA8eG1wOk1vZGlmeURhdGU+MjAxOC0xMS0xNVQxNzoxMToyNTwveG1wOk1vZGlmeURhdGU+CiAgICAgICAgIDx4bXA6Q3JlYXRvclRvb2w+UGl4ZWxtYXRvciAzLjM8L3htcDpDcmVhdG9yVG9vbD4KICAgICAgICAgPHRpZmY6T3JpZW50YXRpb24+MTwvdGlmZjpPcmllbnRhdGlvbj4KICAgICAgICAgPHRpZmY6Q29tcHJlc3Npb24+NTwvdGlmZjpDb21wcmVzc2lvbj4KICAgICAgICAgPHRpZmY6UmVzb2x1dGlvblVuaXQ+MjwvdGlmZjpSZXNvbHV0aW9uVW5pdD4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+MTQ0PC90aWZmOllSZXNvbHV0aW9uPgogICAgICAgICA8dGlmZjpYUmVzb2x1dGlvbj4xNDQ8L3RpZmY6WFJlc29sdXRpb24+CiAgICAgICAgIDxleGlmOlBpeGVsWERpbWVuc2lvbj4yNTY8L2V4aWY6UGl4ZWxYRGltZW5zaW9uPgogICAgICAgICA8ZXhpZjpDb2xvclNwYWNlPjE8L2V4aWY6Q29sb3JTcGFj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" - webUI["html/js/configuration_ts.js"] = "Y2xhc3MgV2l6YXJkQ2F0ZWdvcnkgew0KICAgIGNvbnN0cnVjdG9yKCkgew0KICAgICAgICB0aGlzLkRvY3VtZW50SUQgPSAiY29udGVudCI7DQogICAgfQ0KICAgIGNyZWF0ZUNhdGVnb3J5SGVhZGxpbmUodmFsdWUpIHsNCiAgICAgICAgdmFyIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJINCIpOw0KICAgICAgICBlbGVtZW50LmlubmVySFRNTCA9IHZhbHVlOw0KICAgICAgICByZXR1cm4gZWxlbWVudDsNCiAgICB9DQp9DQpjbGFzcyBXaXphcmRJdGVtIGV4dGVuZHMgV2l6YXJkQ2F0ZWdvcnkgew0KICAgIGNvbnN0cnVjdG9yKGtleSwgaGVhZGxpbmUpIHsNCiAgICAgICAgc3VwZXIoKTsNCiAgICAgICAgdGhpcy5oZWFkbGluZSA9IGhlYWRsaW5lOw0KICAgICAgICB0aGlzLmtleSA9IGtleTsNCiAgICB9DQogICAgY3JlYXRlV2l6YXJkKCkgew0KICAgICAgICB2YXIgaGVhZGxpbmUgPSB0aGlzLmNyZWF0ZUNhdGVnb3J5SGVhZGxpbmUodGhpcy5oZWFkbGluZSk7DQogICAgICAgIHZhciBrZXkgPSB0aGlzLmtleTsNCiAgICAgICAgdmFyIGNvbnRlbnQgPSBuZXcgUG9wdXBDb250ZW50KCk7DQogICAgICAgIHZhciBkZXNjcmlwdGlvbjsNCiAgICAgICAgdmFyIGRvYyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHRoaXMuRG9jdW1lbnRJRCk7DQogICAgICAgIGRvYy5pbm5lckhUTUwgPSAiIjsNCiAgICAgICAgZG9jLmFwcGVuZENoaWxkKGhlYWRsaW5lKTsNCiAgICAgICAgc3dpdGNoIChrZXkpIHsNCiAgICAgICAgICAgIGNhc2UgInR1bmVyIjoNCiAgICAgICAgICAgICAgICB2YXIgdGV4dCA9IG5ldyBBcnJheSgpOw0KICAgICAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBuZXcgQXJyYXkoKTsNCiAgICAgICAgICAgICAgICBmb3IgKHZhciBpID0gMTsgaSA8PSAxMDA7IGkrKykgew0KICAgICAgICAgICAgICAgICAgICB0ZXh0LnB1c2goaSk7DQogICAgICAgICAgICAgICAgICAgIHZhbHVlcy5wdXNoKGkpOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCAiMSIsIGtleSk7DQogICAgICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgiY2xhc3MiLCAid2l6YXJkIik7DQogICAgICAgICAgICAgICAgc2VsZWN0LmlkID0ga2V5Ow0KICAgICAgICAgICAgICAgIGRvYy5hcHBlbmRDaGlsZChzZWxlY3QpOw0KICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uID0gInt7LndpemFyZC50dW5lci5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImVwZ1NvdXJjZSI6DQogICAgICAgICAgICAgICAgdmFyIHRleHQgPSBbIlBNUyIsICJYRVBHIl07DQogICAgICAgICAgICAgICAgdmFyIHZhbHVlcyA9IFsiUE1TIiwgIlhFUEciXTsNCiAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCAiWEVQRyIsIGtleSk7DQogICAgICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgiY2xhc3MiLCAid2l6YXJkIik7DQogICAgICAgICAgICAgICAgc2VsZWN0LmlkID0ga2V5Ow0KICAgICAgICAgICAgICAgIGRvYy5hcHBlbmRDaGlsZChzZWxlY3QpOw0KICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uID0gInt7LndpemFyZC5lcGdTb3VyY2UuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJtM3UiOg0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBrZXksICIiKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LndpemFyZC5tM3UucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgiY2xhc3MiLCAid2l6YXJkIik7DQogICAgICAgICAgICAgICAgaW5wdXQuaWQgPSBrZXk7DQogICAgICAgICAgICAgICAgZG9jLmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbiA9ICJ7ey53aXphcmQubTN1LmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAieG1sdHYiOg0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBrZXksICIiKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LndpemFyZC54bWx0di5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJjbGFzcyIsICJ3aXphcmQiKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5pZCA9IGtleTsNCiAgICAgICAgICAgICAgICBkb2MuYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uID0gInt7LndpemFyZC54bWx0di5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICAgICAgY29uc29sZS5sb2coa2V5KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgfQ0KICAgICAgICB2YXIgcHJlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiUFJFIik7DQogICAgICAgIHByZS5pbm5lckhUTUwgPSBkZXNjcmlwdGlvbjsNCiAgICAgICAgZG9jLmFwcGVuZENoaWxkKHByZSk7DQogICAgICAgIGNvbnNvbGUubG9nKGhlYWRsaW5lLCBrZXkpOw0KICAgIH0NCn0NCmZ1bmN0aW9uIHJlYWR5Rm9yQ29uZmlndXJhdGlvbih3aXphcmQpIHsNCiAgICB2YXIgc2VydmVyID0gbmV3IFNlcnZlcigiZ2V0U2VydmVyQ29uZmlnIik7DQogICAgc2VydmVyLnJlcXVlc3QobmV3IE9iamVjdCgpKTsNCiAgICBzaG93RWxlbWVudCgibG9hZGluZyIsIGZhbHNlKTsNCiAgICBjb25maWd1cmF0aW9uV2l6YXJkW3dpemFyZF0uY3JlYXRlV2l6YXJkKCk7DQp9DQpmdW5jdGlvbiBzYXZlV2l6YXJkKCkgew0KICAgIHZhciBjbWQgPSAic2F2ZVdpemFyZCI7DQogICAgdmFyIGRpdiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb250ZW50Iik7DQogICAgdmFyIGNvbmZpZyA9IGRpdi5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCJ3aXphcmQiKTsNCiAgICB2YXIgd2l6YXJkID0gbmV3IE9iamVjdCgpOw0KICAgIGZvciAodmFyIGkgPSAwOyBpIDwgY29uZmlnLmxlbmd0aDsgaSsrKSB7DQogICAgICAgIHZhciBuYW1lOw0KICAgICAgICB2YXIgdmFsdWU7DQogICAgICAgIHN3aXRjaCAoY29uZmlnW2ldLnRhZ05hbWUpIHsNCiAgICAgICAgICAgIGNhc2UgIlNFTEVDVCI6DQogICAgICAgICAgICAgICAgbmFtZSA9IGNvbmZpZ1tpXS5uYW1lOw0KICAgICAgICAgICAgICAgIHZhbHVlID0gY29uZmlnW2ldLnZhbHVlOw0KICAgICAgICAgICAgICAgIC8vIFdlbm4gZGVyIFdlcnQgZWluZSBaYWhsIGlzdCwgd2lyZCBkaWVzZXIgYWxzIFphaGwgZ2VzcGVpY2hlcnQNCiAgICAgICAgICAgICAgICBpZiAoaXNOYU4odmFsdWUpKSB7DQogICAgICAgICAgICAgICAgICAgIHdpemFyZFtuYW1lXSA9IHZhbHVlOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICAgICAgd2l6YXJkW25hbWVdID0gcGFyc2VJbnQodmFsdWUpOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgIklOUFVUIjoNCiAgICAgICAgICAgICAgICBzd2l0Y2ggKGNvbmZpZ1tpXS50eXBlKSB7DQogICAgICAgICAgICAgICAgICAgIGNhc2UgInRleHQiOg0KICAgICAgICAgICAgICAgICAgICAgICAgbmFtZSA9IGNvbmZpZ1tpXS5uYW1lOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSBjb25maWdbaV0udmFsdWU7DQogICAgICAgICAgICAgICAgICAgICAgICBpZiAodmFsdWUubGVuZ3RoID09IDApIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgbXNnID0gbmFtZS50b1VwcGVyQ2FzZSgpICsgIjogIiArICJ7ey5hbGVydC5taXNzaW5nSW5wdXR9fSI7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgYWxlcnQobXNnKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICB3aXphcmRbbmFtZV0gPSB2YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICAgICAgLy8gY29kZS4uLg0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICB9DQogICAgfQ0KICAgIHZhciBkYXRhID0gbmV3IE9iamVjdCgpOw0KICAgIGRhdGFbIndpemFyZCJdID0gd2l6YXJkOw0KICAgIHZhciBzZXJ2ZXIgPSBuZXcgU2VydmVyKGNtZCk7DQogICAgc2VydmVyLnJlcXVlc3QoZGF0YSk7DQogICAgY29uc29sZS5sb2coZGF0YSk7DQp9DQovLyBXaXphcmQNCnZhciBjb25maWd1cmF0aW9uV2l6YXJkID0gbmV3IEFycmF5KCk7DQpjb25maWd1cmF0aW9uV2l6YXJkLnB1c2gobmV3IFdpemFyZEl0ZW0oInR1bmVyIiwgInt7LndpemFyZC50dW5lci50aXRsZX19IikpOw0KY29uZmlndXJhdGlvbldpemFyZC5wdXNoKG5ldyBXaXphcmRJdGVtKCJlcGdTb3VyY2UiLCAie3sud2l6YXJkLmVwZ1NvdXJjZS50aXRsZX19IikpOw0KY29uZmlndXJhdGlvbldpemFyZC5wdXNoKG5ldyBXaXphcmRJdGVtKCJtM3UiLCAie3sud2l6YXJkLm0zdS50aXRsZX19IikpOw0KY29uZmlndXJhdGlvbldpemFyZC5wdXNoKG5ldyBXaXphcmRJdGVtKCJ4bWx0diIsICJ7ey53aXphcmQueG1sdHYudGl0bGV9fSIpKTsNCg==" - webUI["html/js/mapping-editor.js"] = "dmFyIG1hcHBpbmdFcnJvciAgPSBmYWxzZTsNCnZhciBidWxrICAgICAgICAgID0gZmFsc2U7DQp2YXIgYnVsa0VkaXRBbGwgICA9IGZhbHNlOyANCnZhciBzZWxlY3RPYmogICAgID0gbmV3IE9iamVjdCgpOw0KdmFyIHNlYXJjaE9iaiAgICAgPSBuZXcgT2JqZWN0KCk7DQoNCnZhciBidWxrSURzICAgICAgID0gbmV3IEFycmF5KCk7DQp2YXIgYnVsa0NoYW5nZU9iaiA9IG5ldyBPYmplY3QoKTsNCg0KZnVuY3Rpb24gY2hlY2tVbmRvKGtleSwgZWxtKSB7DQogIHZhciB0bXAgPSBuZXcgT2JqZWN0KCk7DQogIHRtcCA9IGVsbQ0KICBjb25zb2xlLmxvZygiLS0iKTsNCiAgaWYgKHVuZG8uaGFzT3duUHJvcGVydHkoImVwZ01hcHBpbmciKSkgew0KICAgIHhFUEdbImVwZ01hcHBpbmciXSA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkodW5kb1siZXBnTWFwcGluZyJdKSk7Ow0KICB9IGVsc2Ugew0KICAgIHVuZG9bImVwZ01hcHBpbmciXSA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkoZWxtKSk7DQogIH0NCn0NCg0KLy92YXIgcGxleENhdGVnb3JpZXMgPSBuZXcgQXJyYXkoIi0iLCAiQWN0aW9uIHNwb3J0cyIsICJBY3Rpb24iLCAiQWR1bHRzIG9ubHkiLCAiQWR2ZW50dXJlIiwgIkFlcm9iaWNzIiwgIkFuaW1hbHMiLCAiQW5pbWF0ZWQiLCAiQW5pbWUiLCAiQW50aG9sb2d5IiwgIkFyY2hlcnkiLCAiQXJ0IiwgIkFydHMvY3JhZnRzIiwgIkF1Y3Rpb24iLCAiQXV0byByYWNpbmciLCAiQXV0byIsICJBdmlhdGlvbiIsICJBd2FyZHMiLCAiQmFsbGV0IiwgIkJhc2ViYWxsIiwgIkJhc2tldGJhbGwiLCAiQmljeWNsZSByYWNpbmciLCAiQmljeWNsZSIsICJCaWxsaWFyZHMiLCAiQmlvZ3JhcGh5IiwgIkJvYXQgcmFjaW5nIiwgIkJvYXQiLCAiQm93bGluZyIsICJCb3hpbmciLCAiQnVzLi9maW5hbmNpYWwiLCAiQ2hpbGRyZW4iLCAiQ29sbGVjdGlibGVzIiwgIkNvbWVkeSBkcmFtYSIsICJDb21lZHkiLCAiQ29tbXVuaXR5IiwgIkNvbXB1dGVycyIsICJDb25zdW1lciIsICJDb29raW5nIiwgIkNyaW1lIGRyYW1hIiwgIkNyaW1lIiwgIkRhbmNlIiwgIkRhcmsgY29tZWR5IiwgIkRlYmF0ZSIsICJEaXZpbmciLCAiRG9jdWRyYW1hIiwgIkRvY3VtZW50YXJ5IiwgIkRyYW1hIiwgIkVkdWNhdGlvbmFsIiwgIkVudGVydGFpbm1lbnQiLCAiRW52aXJvbm1lbnQiLCAiRXF1ZXN0cmlhbiIsICJFcm90aWMiLCAiRXZlbnQiLCAiRmFudGFzeSIsICJGYXNoaW9uIiwgIkZlYXR1cmUgRmlsbSIsICJGaXNoaW5nIiwgIkZvb3RiYWxsIiwgIkdhbWUgc2hvdyIsICJHYW1pbmciLCAiR2F5L2xlc2JpYW4iLCAiR29sZiIsICJIYW5kYmFsbCIsICJIZWFsdGgiLCAiSGlzdG9yaWNhbCBkcmFtYSIsICJIaXN0b3J5IiwgIkhvY2tleSIsICJIb2xpZGF5IiwgIkhvbWUgaW1wcm92ZW1lbnQiLCAiSG9ycm9yIiwgIkhvcnNlIiwgIkhvdXNlL2dhcmRlbiIsICJIb3ctdG8iLCAiSW50ZXJ2aWV3IiwgIkludGwgc29jY2VyIiwgIkxhdyIsICJNYXJ0aWFsIGFydHMiLCAiTWVkaWNhbCIsICJNaWxpdGFyeSIsICJNaW5pc2VyaWVzIiwgIk1peGVkIG1hcnRpYWwgYXJ0cyIsICJNb3RvcmN5Y2xlIHJhY2luZyIsICJNb3RvcmN5Y2xlIiwgIk1vdG9yc3BvcnRzIiwgIk1vdW50YWluIGJpa2luZyIsICJNdXNpYyIsICJNdXNpY2FsIGNvbWVkeSIsICJNdXNpY2FsIiwgIk15c3RlcnkiLCAiTmF0dXJlIiwgIk5ld3MiLCAiTmV3c21hZ2F6aW5lIiwgIk9seW1waWNzIiwgIk9wZXJhIiwgIk91dGRvb3JzIiwgIlBhcmFkZSIsICJQYXJhbm9ybWFsIiwgIlBhcmVudGluZyIsICJQZXJmb3JtaW5nIGFydHMiLCAiUGxheW9mZiBzcG9ydHMiLCAiUG9rZXIiLCAiUG9saXRpY3MiLCAiUHJvIHdyZXN0bGluZyIsICJQdWJsaWMgYWZmYWlycyIsICJSZWFsaXR5IiwgIlJlbGlnaW91cyIsICJSb2RlbyIsICJSb2xsZXIgZGVyYnkiLCAiUm9tYW5jZSIsICJSb21hbnRpYyBjb21lZHkiLCAiUnVnYnkiLCAiUnVubmluZyIsICJTYWlsaW5nIiwgIlNjaWVuY2UgZmljdGlvbiIsICJTY2llbmNlIiwgIlNlbGYgaW1wcm92ZW1lbnQiLCAiU2VyaWVzIiwgIlNob290aW5nIiwgIlNob3BwaW5nIiwgIlNob3J0IEZpbG0iLCAiU2l0Y29tIiwgIlNraWluZyIsICJTbm9va2VyIiwgIlNvYXAiLCAiU29jY2VyIiwgIlNwZWNpYWwiLCAiU3BvcnRzIiwgInNwb3J0cyIsICJTcG9ydHMgZXZlbnQiLCAiU3BvcnRzIG5vbi1ldmVudCIsICJTcG9ydHMgdGFsayIsICJTdGFuZHVwIiwgIlN1cmZpbmciLCAiU3VzcGVuc2UiLCAiVFYgTW92aWUiLCAiVGFsayIsICJUZWNobm9sb2d5IiwgIlRlbm5pcyIsICJUaGVhdGVyIiwgIlRocmlsbGVyIiwgIlRyYWNrL2ZpZWxkIiwgIlRyYXZlbCIsICJUcmlhdGhsb24iLCAiVmFyaWV0eSIsICJWb2xsZXliYWxsIiwgIldhciIsICJXYXRlcnNwb3J0cyIsICJXZWF0aGVyIiwgIldlc3Rlcm4iLCAiV3Jlc3RsaW5nIiwgIllhY2h0IHJhY2luZyIsICJtb3ZpZSIsICJzZXJpZXMiLCAic3BvcnRzIiwgInR2c2hvdyIpOw0KdmFyIHBsZXhDYXRlZ29yaWVzVmFsdWVzID0gbmV3IEFycmF5KCItIiwgIktpZHMiLCAiTmV3cyIsICJNb3ZpZSIsICJTZXJpZXMiLCAiU3BvcnRzIikNCnZhciBwbGV4Q2F0ZWdvcmllc09wdGlvbiA9IG5ldyBBcnJheSgiLSIsICJLaWRzIChFbWJ5IG9ubHkpIiwgIk5ld3MiLCAiTW92aWUiLCAiU2VyaWVzIiwgIlNwb3J0cyIpDQoNCg0KZnVuY3Rpb24gb3Blbk1hcHBpbmdFZGl0b3IoZWxtKSB7DQogIHZhciBjb2x1bW5Ub1NvcnQgID0gMQ0KDQogIGNoZWNrVW5kbygiZXBnTWFwcGluZyIsIHhFUEdbImVwZ01hcHBpbmciXSkNCg0KICB2YXIgbmV3RGl2ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNldHRpbmdzIik7DQogIA0KICB2YXIgbmV3RW50cnkgPSBuZXcgT2JqZWN0KCk7DQogIG5ld0VudHJ5WyJfZWxlbWVudCJdICA9ICJIUiI7DQogIG5ld0Rpdi5hcHBlbmRDaGlsZChjcmVhdGVFbGVtZW50KG5ld0VudHJ5KSk7DQoNCiAgdmFyIG5ld0VudHJ5ID0gbmV3IE9iamVjdCgpOw0KICBuZXdFbnRyeVsiX2VsZW1lbnQiXSAgICA9ICJJTlBVVCI7DQogIG5ld0VudHJ5WyJ0eXBlIl0gICAgICAgID0gImJ1dHRvbiI7DQogIG5ld0VudHJ5WyJjbGFzcyJdICAgICAgID0gImJ1dHRvbiI7DQogIG5ld0VudHJ5WyJ2YWx1ZSJdICAgICAgID0gIlNhdmUiOw0KICBuZXdFbnRyeVsib25jbGljayJdICAgICA9ICJzYXZlWEVQRygpIjsNCiAgbmV3RGl2LmFwcGVuZENoaWxkKGNyZWF0ZUVsZW1lbnQobmV3RW50cnkpKTsNCg0KICB2YXIgbmV3RW50cnkgPSBuZXcgT2JqZWN0KCk7DQogIG5ld0VudHJ5WyJfZWxlbWVudCJdICAgID0gIklOUFVUIjsNCiAgbmV3RW50cnlbInR5cGUiXSAgICAgICAgPSAiYnV0dG9uIjsNCiAgbmV3RW50cnlbImNsYXNzIl0gICAgICAgPSAiYnV0dG9uIjsNCiAgbmV3RW50cnlbInZhbHVlIl0gICAgICAgPSAiQnVsayBFZGl0IjsNCiAgbmV3RW50cnlbIm9uY2xpY2siXSAgICAgPSAiYnVsa0VkaXQoKSI7DQogIG5ld0Rpdi5hcHBlbmRDaGlsZChjcmVhdGVFbGVtZW50KG5ld0VudHJ5KSk7DQoNCiAgdmFyIG5ld0VudHJ5ID0gbmV3IE9iamVjdCgpOw0KICBuZXdFbnRyeVsiX2VsZW1lbnQiXSAgICA9ICJJTlBVVCI7DQogIG5ld0VudHJ5WyJ0eXBlIl0gICAgICAgID0gImJ1dHRvbiI7DQogIG5ld0VudHJ5WyJjbGFzcyJdICAgICAgID0gImJ1dHRvbiI7DQogIG5ld0VudHJ5WyJ2YWx1ZSJdICAgICAgID0gIlNob3cgWEVQRyI7DQogIG5ld0VudHJ5WyJvbmNsaWNrIl0gICAgID0gInNob3dYRVBHKCkiOw0KICBuZXdEaXYuYXBwZW5kQ2hpbGQoY3JlYXRlRWxlbWVudChuZXdFbnRyeSkpOw0KDQogIHZhciBuZXdFbnRyeSA9IG5ldyBPYmplY3QoKTsNCiAgbmV3RW50cnlbIl9lbGVtZW50Il0gICAgPSAiSU5QVVQiOw0KICBuZXdFbnRyeVsiY2xhc3MiXSAgICAgICA9ICJzZWFyY2giOw0KICBuZXdFbnRyeVsiaWQiXSAgICAgICAgICA9ICJzZWFyY2hNYXBwaW5nIjsNCiAgbmV3RW50cnlbInR5cGUiXSAgICAgICAgPSAic2VhcmNoIjsNCiAgbmV3RW50cnlbInBsYWNlaG9sZGVyIl0gPSAiU2VhcmNoIjsNCiAgbmV3RW50cnlbIm9uY2hhbmdlIl0gICAgPSAic2VhcmNoSW5NYXBwaW5nKCkiOw0KICBuZXdEaXYuYXBwZW5kQ2hpbGQoY3JlYXRlRWxlbWVudChuZXdFbnRyeSkpOw0KDQogIHZhciBkaXYgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic2V0dGluZ3MiKTsNCiAgLy9zY3JlZW5Mb2coIkR1cGxpY2F0ZSBJRCIsICJlcnJvciIsIHRydWUpDQogIA0KDQogIC8vIEJ1aWxkIHRhYmxlDQoNCiAgdmFyIG5ld1dyYXBwZXIgPSBuZXcgT2JqZWN0KCk7DQogIG5ld1dyYXBwZXJbIl9lbGVtZW50Il0gID0gIkRJViI7DQogIG5ld1dyYXBwZXJbImlkIl0gICAgICAgID0gImJveC13cmFwcGVyIjsNCiAgZGl2LmFwcGVuZENoaWxkKGNyZWF0ZUVsZW1lbnQobmV3V3JhcHBlcikpOw0KDQoNCiAgdmFyIG5ld1RhYmxlID0gbmV3IE9iamVjdCgpOw0KICBuZXdUYWJsZVsiX2VsZW1lbnQiXSAgPSAiVEFCTEUiOw0KICBuZXdUYWJsZVsiaWQiXSAgICAgICAgPSAiaWRfbWFwcGluZyI7DQogIG5ld1RhYmxlWyJjbGFzcyJdICAgICA9ICJ0YWJsZS1tYXBwaW5nIjsNCiAgZGl2Lmxhc3RDaGlsZC5hcHBlbmRDaGlsZChjcmVhdGVFbGVtZW50KG5ld1RhYmxlKSk7DQogIHNob3dMb2FkaW5nU2NyZWVuKHRydWUpOw0KDQogIHNldFRpbWVvdXQoZnVuY3Rpb24oKXsgDQogICAgY3JlYXRlTWFwcGluZ1RhYmxlKCk7IA0KICB9LCAxMCk7DQoNCn0NCg0KZnVuY3Rpb24gY3JlYXRlU2VhcmNoT2JqKCkgew0KICBzZWFyY2hPYmogPSBuZXcgT2JqZWN0KCk7DQogIHZhciBJRHMgPSBnZXRPYmpLZXlzKHhFUEdbImVwZ01hcHBpbmciXSkNCiAgZm9yICh2YXIgaSA9IElEcy5sZW5ndGggLSAxOyBpID49IDA7IGktLSkgew0KICAgIHZhciBpdGVtID0geEVQR1siZXBnTWFwcGluZyJdW0lEc1tpXV07DQogICAgdmFyIHNlYXJjaElEID0gaXRlbVsieC1lcGciXTsNCiAgICB2YXIgc2VhcmNoVmFsdWUgPSAiIjsgDQogICAgc2VhcmNoVmFsdWUgPSBzZWFyY2hWYWx1ZSArIGl0ZW1bIngtY2hhbm5lbElEIl0gKyAiICI7DQogICAgc2VhcmNoVmFsdWUgPSBzZWFyY2hWYWx1ZSArIGl0ZW1bIngtY2F0ZWdvcnkiXSArICIgIjsNCiAgICBzZWFyY2hWYWx1ZSA9IHNlYXJjaFZhbHVlICsgaXRlbVsieC1uYW1lIl0gKyAiICI7DQogICAgc2VhcmNoVmFsdWUgPSBzZWFyY2hWYWx1ZSArIGl0ZW1bIngtZ3JvdXAtdGl0bGUiXSArICIgIjsNCiAgICBzZWFyY2hWYWx1ZSA9IHNlYXJjaFZhbHVlICsgaXRlbVsieC14bWx0di1maWxlIl0gKyAiICI7DQogICAgc2VhcmNoVmFsdWUgPSBzZWFyY2hWYWx1ZSArIGl0ZW1bIl9maWxlLm0zdS5uYW1lIl0gKyAiICI7DQoNCiAgICBzd2l0Y2goaXRlbVsieC1hY3RpdmUiXSkgew0KICAgICAgY2FzZSB0cnVlOiAgc2VhcmNoVmFsdWUgPSBzZWFyY2hWYWx1ZSArICJvbmxpbmUiOyBicmVhazsNCiAgICAgIGNhc2UgZmFsc2U6IHNlYXJjaFZhbHVlID0gc2VhcmNoVmFsdWUgKyAib2ZmbGluZSI7IGJyZWFrOw0KICAgIH0NCg0KICAgIHNlYXJjaE9ialtzZWFyY2hWYWx1ZV0gPSBzZWFyY2hJRDsNCg0KICB9DQp9DQoNCg0KZnVuY3Rpb24gY2FsY3VsYXRlV3JhcHBlckhlaWdodCgpIHsNCg0KICBpZiAoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImJveC13cmFwcGVyIikpew0KDQogICAgdmFyIGVsbSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJib3gtd3JhcHBlciIpOw0KICAgIA0KICAgIHZhciBkaXZzID0gbmV3IEFycmF5KCJteVN0cmVhbXNCb3giLCAiY2xpZW50SW5mbyIsICJzZXR0aW5ncyIpOw0KICAgIHZhciBlbGVtZW50c0hlaWdodCA9IDAgLSBlbG0ub2Zmc2V0SGVpZ2h0Ow0KICAgIGZvciAodmFyIGkgPSAwOyBpIDwgZGl2cy5sZW5ndGg7IGkrKykgew0KICAgICAgZWxlbWVudHNIZWlnaHQgPSBlbGVtZW50c0hlaWdodCArIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGRpdnNbaV0pLm9mZnNldEhlaWdodDsNCiAgICB9DQoNCiAgICBlbG0uc3R5bGUuaGVpZ2h0ID0gd2luZG93LmlubmVySGVpZ2h0IC0gZWxlbWVudHNIZWlnaHQgKyAicHgiOw0KDQogIH0NCg0KICBpZiAoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm1lbnUtd3JhcHBlciIpKXsNCg0KICAgIHZhciBlbG0gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibWVudS13cmFwcGVyIik7DQogICAgDQogICAgdmFyIG9mZmVzdCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzZXR0aW5ncyIpLm9mZnNldEhlaWdodCArIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJteVN0cmVhbXNCb3giKS5vZmZzZXRIZWlnaHQgKyBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY2xpZW50SW5mbyIpLm9mZnNldEhlaWdodDsNCiAgICANCiAgICBpZiAod2luZG93LmlubmVySGVpZ2h0ID4gb2ZmZXN0KSB7DQogICAgICBlbG0uc3R5bGUuaGVpZ2h0ID0gd2luZG93LmlubmVySGVpZ2h0ICsgInB4Ig0KICAgIH0gZWxzZSB7DQogICAgICBlbG0uc3R5bGUuaGVpZ2h0ID0gb2ZmZXN0ICsgInB4Ig0KICAgIH0NCiAgICANCg0KICB9DQoNCg0KfQ0KDQpmdW5jdGlvbiBjcmVhdGVNYXBwaW5nVGFibGUoKSB7DQogIGNvbHVtblRvU29ydCA9IDE7DQogIGNyZWF0ZVNlYXJjaE9iaigpOw0KDQogIC8vIENyZWF0ZSB0YWJsZSAoSGVhZGVyKQ0KICB2YXIgdGFibGUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiaWRfbWFwcGluZyIpOw0KICB0YWJsZS5pbm5lckhUTUwgPSAiIjsNCiAgdmFyIG5ld1RSID0gbmV3IE9iamVjdCgpOw0KICBuZXdUUlsiX2VsZW1lbnQiXSA9ICJUUiI7DQogIG5ld1RSWyJjbGFzcyJdICAgID0gInRhYmxlLW1hcHBpbmctaGVhZGVyIjsNCiAgdGFibGUuYXBwZW5kQ2hpbGQoY3JlYXRlRWxlbWVudChuZXdUUikpOw0KDQogIHZhciB0ciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJpZF9tYXBwaW5nIikubGFzdENoaWxkOw0KICB2YXIgdHJIZWFkbGluZXMgPSBuZXcgQXJyYXkoIkJ1bGsiLCAiQ2guIE5vLiIsICJMb2dvIiwgIkNoYW5uZWwgTmFtZSIsICJQbGF5bGlzdCIsICJHcm91cCBUaXRsZSIsICJYTUxUViBGaWxlIiwgIlhNTFRWIElEIiwgIlRpbWVzaGlmdCIpDQoNCiAgZm9yICh2YXIgaSA9IDA7IGkgPCB0ckhlYWRsaW5lcy5sZW5ndGg7IGkrKykgew0KICAgIHZhciBuZXdURCA9IG5ldyBPYmplY3QoKTsNCg0KICAgIG5ld1REWyJfZWxlbWVudCJdID0gIlREIjsNCiAgICBuZXdURFsiX3RleHQiXSAgICA9IHRySGVhZGxpbmVzW2ldOw0KDQogICAgDQoNCiAgICB2YXIgd2lkdGggPSAiIjsNCiAgICBzd2l0Y2godHJIZWFkbGluZXNbaV0pIHsNCg0KICAgICAgY2FzZSAiQnVsayI6ICANCiAgICAgICAgDQogICAgICAgIG1heFdpZHRoID0gIjMycHgiOyANCiAgICAgICAgbWluV2lkdGggPSAiMzJweCI7IA0KICAgIA0KICAgICAgICAvLyBDcmVhdGUgYnVsayBURA0KICAgICAgICB2YXIgbmV3Q2hlY2tib3ggPSBuZXcgT2JqZWN0KCk7DQogICAgICAgIG5ld0NoZWNrYm94WyJfZWxlbWVudCJdID0gIklOUFVUIjsNCiAgICAgICAgbmV3Q2hlY2tib3hbInR5cGUiXSAgICAgPSAiY2hlY2tib3giOw0KICAgICAgICBuZXdDaGVja2JveFsiY2xhc3MiXSAgICA9ICJidWxrIGhpZGVCdWxrIjsNCiAgICAgICAgbmV3Q2hlY2tib3hbIm9ubW91c2VvdXQiXSA9ICJqYXZhc2NyaXB0OiB0aGlzLmJsdXIoKSINCiAgICAgICAgbmV3Q2hlY2tib3hbIm9uY2xpY2siXSAgICA9ICJqYXZhc2NyaXB0OiBidWxrRWRpdEFsbENoYW5uZWxzKCkiDQoNCiAgICANCiAgICAgICAgLy9uZXdURC5hcHBlbmRDaGlsZChjcmVhdGVFbGVtZW50KG5ld0NoZWNrYm94KSk7DQoNCiAgICAgICAgYnJlYWs7DQoNCiAgICAgIGNhc2UgIkNoLiBOby4iOiANCiAgICAgICAgbWF4V2lkdGggPSAiODBweCI7IA0KICAgICAgICBtaW5XaWR0aCA9ICI3MHB4IjsgDQogICAgICAgIG5ld1REWyJvbmNsaWNrIl0gID0gImphdnNjcmlwdDogc29ydFRhYmxlKCIgKyBpICsgIik7IjsNCiAgICAgICAgbmV3VERbImNsYXNzIl0gICAgPSAicG9pbnRlciI7DQogICAgICAgIGJyZWFrOw0KICAgICAgDQogICAgICBjYXNlICJMb2dvIjogIG1heFdpZHRoID0gIjEyMHB4IjsgbWluV2lkdGggPSAiNjBweCI7IGJyZWFrOw0KICAgICAgDQogICAgICBjYXNlICJDaGFubmVsIE5hbWUiOiAgDQogICAgICAgIG1heFdpZHRoID0gIjUwJSI7IA0KICAgICAgICBtaW5XaWR0aCA9ICIyMDBweCI7IA0KICAgICAgICBuZXdURFsib25jbGljayJdICA9ICJqYXZzY3JpcHQ6IHNvcnRUYWJsZSgiICsgaSArICIpOyI7DQogICAgICAgIG5ld1REWyJjbGFzcyJdID0gInBvaW50ZXIiOw0KICAgICAgICBicmVhazsNCg0KICAgICAgY2FzZSAiUGxheWxpc3QiOiAgICAgIA0KICAgICAgICBtYXhXaWR0aCA9ICIxNTBweCI7IA0KICAgICAgICBtaW5XaWR0aCA9ICIxMDBweCI7IA0KICAgICAgICBuZXdURFsib25jbGljayJdICA9ICJqYXZzY3JpcHQ6IHNvcnRUYWJsZSgiICsgaSArICIpOyI7DQogICAgICAgIG5ld1REWyJjbGFzcyJdICAgID0gInBvaW50ZXIiOw0KICAgICAgICBicmVhazsNCiAgICAgIA0KICAgICAgY2FzZSAiR3JvdXAgVGl0bGUiOiAgIA0KICAgICAgICBtYXhXaWR0aCA9ICIxNTBweCI7IA0KICAgICAgICBtaW5XaWR0aCA9ICIxMDBweCI7IA0KICAgICAgICBuZXdURFsib25jbGljayJdICA9ICJqYXZzY3JpcHQ6IHNvcnRUYWJsZSgiICsgaSArICIpOyI7DQogICAgICAgIG5ld1REWyJjbGFzcyJdICAgID0gInBvaW50ZXIiOw0KICAgICAgICBicmVhazsNCiAgICAgIA0KICAgICAgY2FzZSAiWE1MVFYgRmlsZSI6ICAgIA0KICAgICAgICBtYXhXaWR0aCA9ICIxNTBweCI7IA0KICAgICAgICBtaW5XaWR0aCA9ICIxMDBweCI7IA0KICAgICAgICAvL25ld1REWyJvbmNsaWNrIl0gID0gImphdnNjcmlwdDogc29ydFRhYmxlKCIgKyBpICsgIik7IjsNCiAgICAgICAgbmV3VERbImNsYXNzIl0gICAgPSAiIjsNCiAgICAgICAgYnJlYWs7DQogICAgICANCg0KICAgICAgY2FzZSAiWE1MVFYgSUQiOiAgICAgIG1heFdpZHRoID0gIjE1MHB4IjsgbWluV2lkdGggPSAiMTAwcHgiOyBicmVhazsNCg0KICAgICAgY2FzZSAiVGltZXNoaWZ0IjogICAgICBtYXhXaWR0aCA9ICI1MHB4IjsgbWluV2lkdGggPSAiMjBweCI7IGJyZWFrOw0KDQogICAgICBkZWZhdWx0OiANCiAgICAgICAgbmV3VERbImNsYXNzIl0gICAgPSAiIjsNCiAgICAgICAgYnJlYWs7DQogICAgfQ0KDQogICAgdHIuYXBwZW5kQ2hpbGQoY3JlYXRlRWxlbWVudChuZXdURCkpOw0KICAgIGlmICh0ckhlYWRsaW5lc1tpXSA9PSAiQnVsayIpIHsNCiAgICAgIHRyLmxhc3RDaGlsZC5pbm5lckhUTUwgPSAiIjsNCiAgICAgIHRyLmxhc3RDaGlsZC5hcHBlbmRDaGlsZChjcmVhdGVFbGVtZW50KG5ld0NoZWNrYm94KSk7DQogICAgICANCiAgICB9DQogICAgDQogICAgdmFyIGVsbSA9IHRyLmxhc3RDaGlsZDsNCiAgICBlbG0uc3R5bGUud2lkdGggPSBtYXhXaWR0aDsNCiAgICBlbG0uc3R5bGUubWF4V2lkdGggPSBtYXhXaWR0aDsNCiAgICBlbG0uc3R5bGUubWluV2lkdGggPSBtaW5XaWR0aDsNCg0KICB9DQogIGNhbGN1bGF0ZVdyYXBwZXJIZWlnaHQoKTsNCiAgdmFyIElEcyA9IGdldE9iaktleXMoeEVQR1siZXBnTWFwcGluZyJdKQ0KDQogIHZhciBhbGxYbWx0dkZpbGVzID0gZ2V0T2JqS2V5cyh4RVBHWyJ4bWx0dk1hcCJdKTsNCg0KICBpZiAoYWxsWG1sdHZGaWxlcyA9PSAwKSB7DQogICAgc2hvd0xvYWRpbmdTY3JlZW4oZmFsc2UpOw0KICAgIHJldHVybjsNCiAgfQ0KDQogIC8vIFNvcnQgSURzDQogIHZhciBwb3NPYmogPSBuZXcgT2JqZWN0KCk7DQogIGZvciAodmFyIGkgPSAwOyBpIDwgSURzLmxlbmd0aDsgaSsrKSB7DQogICAgdmFyIGl0ZW0gID0geEVQR1siZXBnTWFwcGluZyJdW0lEc1tpXV07DQogICAgdmFyIHBvcw0KICAgIHN3aXRjaChpc05hTih4RVBHWyJlcGdNYXBwaW5nIl1bSURzW2ldXVsieC1jaGFubmVsSUQiXSkpIHsNCiAgICAgIGNhc2UgZmFsc2U6IHBvcyA9IHBhcnNlRmxvYXQoeEVQR1siZXBnTWFwcGluZyJdW0lEc1tpXV1bIngtY2hhbm5lbElEIl0pIDsgYnJlYWs7DQogICAgfQ0KICAgIHBvc09ialtwb3NdID0gaXRlbTsNCiAgfQ0KICBwb3NGbG9hdCA9IGdldE9iaktleXMocG9zT2JqKQ0KICBmdW5jdGlvbiBzb3J0RmxvYXQoYSxiKSB7IHJldHVybiBhIC0gYjsgfQ0KICBwb3NGbG9hdC5zb3J0KHNvcnRGbG9hdCkNCg0KICAvL2NvbnNvbGUubG9nKHBvc0Zsb2F0KTsNCg0KICAvLyAtLS0NCg0KICBpZiAoSURzLmxlbmd0aCA+IDIwMCkgew0KICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKXsgDQogICAgICBzaG93TG9hZGluZ1NjcmVlbih0cnVlKTsNCiAgICB9LCAxKTsNCg0KICB9DQoNCg0KICAvLyB0YWJsZSBmb3IgaW50IGNoYW5uZWwgSUQncw0KICBmb3IgKHZhciBpID0gMDsgaSA8IHBvc0Zsb2F0Lmxlbmd0aDsgaSsrKSB7DQoNCiAgICB2YXIgdGFibGUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiaWRfbWFwcGluZyIpOw0KICAgIHZhciBpdGVtICA9IHBvc09ialtwb3NGbG9hdFtpXV07DQogICAgLy92YXIgaXRlbSAgPSB4RVBHWyJlcGdNYXBwaW5nIl1bSURzW2ldXTsNCiAgICAvL2NvbnNvbGUubG9nKGl0ZW0pOw0KICAgIHZhciBuZXdUUiA9IG5ldyBPYmplY3QoKTsNCiAgICBuZXdUUlsiX2VsZW1lbnQiXSAgICAgICA9ICJUUiI7DQogICAgbmV3VFJbImNsYXNzIl0gICAgICAgICAgPSAiIjsNCiAgICBuZXdUUlsiaWQiXSAgICAgICAgICAgICA9IGl0ZW1bIngtZXBnIl07DQogICAgbmV3VFJbIm9uY29udGV4dG1lbnUiXSAgPSAnamF2YXNjcmlwdDogc3dpdGNoQ2hhbm5lbFN0YXR1cygiJyArIGl0ZW1bIngtZXBnIl0gKyAnIik7IHJldHVybiBmYWxzZTsnOw0KICAgIHRhYmxlLmFwcGVuZENoaWxkKGNyZWF0ZUVsZW1lbnQobmV3VFIpKTsNCg0KICAgIHZhciB0ciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJpZF9tYXBwaW5nIikubGFzdENoaWxkOw0KICAgIA0KICAgIC8vIENyZWF0ZSBidWxrIFREDQogICAgdmFyIG5ld1REID0gbmV3IE9iamVjdCgpOw0KICAgIG5ld1REWyJfZWxlbWVudCJdICAgPSAiSU5QVVQiOw0KICAgIG5ld1REWyJ0eXBlIl0gICAgICAgPSAiY2hlY2tib3giOw0KICAgIG5ld1REWyJjbGFzcyJdICAgICAgPSAiYnVsayBoaWRlQnVsayI7DQogICAgbmV3VERbIm9ubW91c2VvdXQiXSA9ICJqYXZhc2NyaXB0OiB0aGlzLmJsdXIoKSINCiAgICANCiAgICBjcmVhdGVOZXdURChuZXdURCwgdHIpOw0KICAgIA0KDQogICAgLy8gQ3JlYXRlIElEIFREDQogICAgdmFyIG5ld1REID0gbmV3IE9iamVjdCgpOw0KICAgIG5ld1REWyJfZWxlbWVudCJdID0gIklOUFVUIjsNCiAgICBuZXdURFsidHlwZSJdICAgICA9ICJ0ZXh0Ig0KICAgIG5ld1REWyJjbGFzcyJdICAgID0gInc0MHB4IjsNCiAgICBuZXdURFsidmFsdWUiXSAgICA9IGl0ZW1bIngtY2hhbm5lbElEIl07DQogICAgbmV3VERbIm9uZm9jdXNvdXQiXSA9ICJqYXZhc2NyaXB0OiBhcnJhbmdlVGFibGUodGhpcyk7Ig0KICAgIGNyZWF0ZU5ld1REKG5ld1RELCB0cik7DQoNCiAgICAvLyBDcmVhdGUgSU1HIFREDQogICAgdmFyIG5ld1REID0gbmV3IE9iamVjdCgpOw0KICAgIG5ld1REWyJfZWxlbWVudCJdID0gIklNRyI7DQogICAgbmV3VERbIm9uY2xpY2siXSAgPSAnamF2YXNjcmlwdDogbWFwcGluZ0RldGFpbCgiJyArIGl0ZW1bIngtZXBnIl0gKyAnIik7JzsNCiAgICBpZiAoaXRlbVsidHZnLWxvZ28iXSAhPSB1bmRlZmluZWQpIHsNCiAgICAgIG5ld1REWyJzcmMiXSAgICAgID0gaXRlbVsidHZnLWxvZ28iXTsNCiAgICB9IGVsc2Ugew0KICAgICAgaXRlbVsidHZnLWxvZ28iXSA9ICIiOw0KICAgICAgbmV3VERbInNyYyJdID0gIiI7DQogICAgfQ0KICAgIGNyZWF0ZU5ld1REKG5ld1RELCB0cik7DQogICAgdHIubGFzdENoaWxkLnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBtYXBwaW5nRGV0YWlsKCInICsgaXRlbVsieC1lcGciXSArICciKTsnKQ0KDQogICAgLy8gQ3JlYXRlIFAgVEQgKGNoYW5uZWwgbmFtZSkNCiAgICB2YXIgbmV3VEQgPSBuZXcgT2JqZWN0KCk7DQogICAgbmV3VERbIl9lbGVtZW50Il0gPSAiUCI7DQogICAgbmV3VERbIl90ZXh0Il0gICAgPSBpdGVtWyJ4LW5hbWUiXTsNCiAgICBuZXdURFsiY2xhc3MiXSAgICAgPSBpdGVtWyJ4LWNhdGVnb3J5Il07DQoNCiAgICBjcmVhdGVOZXdURChuZXdURCwgdHIpOw0KICAgIHRyLmxhc3RDaGlsZC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogbWFwcGluZ0RldGFpbCgiJyArIGl0ZW1bIngtZXBnIl0gKyAnIik7JykNCiAgICB0ci5sYXN0Q2hpbGQubGFzdENoaWxkLnN0eWxlLnBhZGRpbmcgPSAiNXB4IDEwcHgiOw0KDQogICAgLy8gQ3JlYXRlIFAgVEQgKFBsYXlsaXN0IE5hbWUpDQogICAgdmFyIG5ld1REID0gbmV3IE9iamVjdCgpOw0KICAgIG5ld1REWyJfZWxlbWVudCJdID0gIlAiOw0KICAgIG5ld1REWyJfdGV4dCJdICAgID0gaXRlbVsiX2ZpbGUubTN1Lm5hbWUiXTsNCiAgICBuZXdURFsiY2xhc3MiXSAgICAgPSBpdGVtWyJ0YWJsZUVsbGlwc2lzIl07DQogICAgDQogICAgY3JlYXRlTmV3VEQobmV3VEQsIHRyKTsNCiAgICB0ci5sYXN0Q2hpbGQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IG1hcHBpbmdEZXRhaWwoIicgKyBpdGVtWyJ4LWVwZyJdICsgJyIpOycpDQogICAgDQogICAgLy8gQ3JlYXRlIFAgVEQgKEdyb3VwIFRpdGxlKQ0KICAgIHZhciBuZXdURCA9IG5ldyBPYmplY3QoKTsNCiAgICBuZXdURFsiX2VsZW1lbnQiXSA9ICJQIjsNCiAgICBuZXdURFsiX3RleHQiXSAgICA9IGl0ZW1bIngtZ3JvdXAtdGl0bGUiXTsNCiAgICBuZXdURFsiY2xhc3MiXSAgICAgPSBpdGVtWyJ0YWJsZUVsbGlwc2lzIl07DQogICAgDQogICAgY3JlYXRlTmV3VEQobmV3VEQsIHRyKTsNCiAgICB0ci5sYXN0Q2hpbGQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IG1hcHBpbmdEZXRhaWwoIicgKyBpdGVtWyJ4LWVwZyJdICsgJyIpOycpDQoNCiAgICANCiAgICAvLyBDcmVhdGUgUCBURCAoWE1MVFYgZmlsZSkNCiAgICB2YXIgbmV3VEQgPSBuZXcgT2JqZWN0KCk7DQogICAgbmV3VERbIl9lbGVtZW50Il0gICAgICAgPSAiUCI7DQogICAgbmV3VERbImNsYXNzIl0gICAgPSAidGFibGVFbGxpcHNpcyI7DQogICAgbmV3VERbIl90ZXh0Il0gPSAiLSINCg0KICAgIGlmIChhbGxYbWx0dkZpbGVzLmluZGV4T2YoaXRlbVsieC14bWx0di1maWxlIl0pICE9IC0xKSB7DQogICAgICB2YXIgeFhtbHR2RmlsZSA9IGl0ZW1bIngteG1sdHYtZmlsZSJdOw0KICAgICAgc3dpdGNoKHhYbWx0dkZpbGUpIHsNCiAgICAgICAgY2FzZSAiLSI6ICAgICAgICAgICBuZXdURFsiX3RleHQiXSAgPSB4WG1sdHZGaWxlOyBicmVhazsNCiAgICAgICAgY2FzZSAieFRlVmUgRHVtbXkiOiBuZXdURFsiX3RleHQiXSAgPSB4WG1sdHZGaWxlOyBicmVhazsNCiAgICAgICAgZGVmYXVsdDogICAgICAgICAgICBuZXdURFsiX3RleHQiXSAgPSBnZXRWYWx1ZUZyb21Qcm92aWRlckZpbGUoeFhtbHR2RmlsZSwgInhtbHR2IiwgIm5hbWUiKTsgYnJlYWs7DQogICAgICAgIA0KICAgICAgfQ0KICAgICAgLy9jb25zb2xlLmxvZyhuZXdURCk7DQoNCiAgICAgIC8vbmV3VERbIl90ZXh0Il0gICAgPSBpdGVtWyJ4LXhtbHR2LWZpbGUiXTsNCiAgICB9IGVsc2Ugew0KICAgICAgLy9uZXdURFsiX3RleHQiXSA9ICItIg0KICAgIH0NCiAgICBjcmVhdGVOZXdURChuZXdURCwgdHIpOw0KICAgIHRyLmxhc3RDaGlsZC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogbWFwcGluZ0RldGFpbCgiJyArIGl0ZW1bIngtZXBnIl0gKyAnIik7JykNCg0KICAgIC8vIENyZWF0ciBQIFREIChYTUxUViBjaGFubmVsIElEKQ0KICAgIG5ld1REWyJfZWxlbWVudCJdID0gIlAiOw0KICAgIG5ld1REWyJjbGFzcyJdICAgID0gInRhYmxlRWxsaXBzaXMiOw0KDQogICAgaWYgKGl0ZW1bIngtbWFwcGluZyJdICE9IHVuZGVmaW5lZCkgew0KICAgICAgbmV3VERbIl90ZXh0Il0gICAgPSBpdGVtWyJ4LW1hcHBpbmciXTsNCiAgICB9DQogICAgDQogICAgY3JlYXRlTmV3VEQobmV3VEQsIHRyKTsNCiAgICB0ci5sYXN0Q2hpbGQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IG1hcHBpbmdEZXRhaWwoIicgKyBpdGVtWyJ4LWVwZyJdICsgJyIpOycpDQoNCg0KICAgIHZhciB4WG1sdHZGaWxlICA9IGl0ZW1bIngteG1sdHYtZmlsZSJdOw0KICAgIHZhciB4TWFwcGluZyAgICA9IGl0ZW1bIngtbWFwcGluZyJdOw0KICAgIHZhciB0dmdJRCAgICAgICA9IGl0ZW1bInR2Zy1pZCJdOw0KICAgIA0KICAgIC8vY29uc29sZS5sb2coaXRlbVsieC1lcGciXSk7DQogICAgLy9jb25zb2xlLmxvZyhpdGVtKTsNCg0KICAgIGlmIChpdGVtWyJ4LWFjdGl2ZSJdID09IHRydWUpIHsNCiAgICAgIHRyLmNsYXNzTmFtZSA9ICJhY3RpdmVFUEciOw0KICAgIH0gZWxzZSB7DQogICAgICB0ci5jbGFzc05hbWUgPSAibm90QWN0aXZlRVBHIjsNCiAgICB9DQogICAgDQogIH0NCg0KICBzb3J0VGFibGUoMSk7DQoNCiAgc2V0VGltZW91dChmdW5jdGlvbigpeyANCiAgICBzaG93TG9hZGluZ1NjcmVlbihmYWxzZSk7DQogIH0sIDUpOw0KfQ0KDQpmdW5jdGlvbiBzZWFyY2hJbk1hcHBpbmcoZWxtKSB7DQoNCiAgdmFyIHNlYXJjaCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzZWFyY2hNYXBwaW5nIikudmFsdWU7DQogIHZhciB2YWx1ZXMgPSBnZXRPYmpLZXlzKHNlYXJjaE9iaikNCiAgDQogIGZvciAodmFyIGkgPSB2YWx1ZXMubGVuZ3RoIC0gMTsgaSA+PSAwOyBpLS0pIHsNCiAgICB2YXIgaWQgPSBzZWFyY2hPYmpbdmFsdWVzW2ldXTsNCiAgICB2YXIgYm9vbCA9IHZhbHVlc1tpXS50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKHNlYXJjaC50b0xvd2VyQ2FzZSgpKTsNCiAgICBzd2l0Y2goYm9vbCkgew0KICAgICAgY2FzZSB0cnVlOiAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpLnN0eWxlLmRpc3BsYXkgPSAiIjsgYnJlYWs7DQogICAgICBjYXNlIGZhbHNlOiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkuc3R5bGUuZGlzcGxheSA9ICJub25lIjsgYnJlYWs7DQogICAgfQ0KICB9DQoNCn0NCg0KZnVuY3Rpb24gbWFwcGluZ0RldGFpbCh4ZXBnKSB7DQogIA0KICBidWxrSURzICAgPSBuZXcgQXJyYXkoKTsNCiAgdmFyIGFjdGl2ZUVsZW1lbnQgPSBkb2N1bWVudC5hY3RpdmVFbGVtZW50Ow0KICAvLyBJZiBpbnB1dCBpZCwgcmV0dXJuDQogIGlmIChhY3RpdmVFbGVtZW50LnRhZ05hbWUgPT0gIklOUFVUIikgew0KICAgIHJldHVybg0KICB9DQoNCiAgaWYgKGJ1bGsgPT0gdHJ1ZSkgew0KICAgIHZhciBlbG0gPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCJidWxrIik7DQogICAgZm9yICh2YXIgaSA9IDE7IGkgPCBlbG0ubGVuZ3RoOyBpKyspIHsNCiAgICAgIGlmIChlbG1baV0uY2hlY2tlZCA9PSB0cnVlKSB7DQogICAgICAgIHZhciBpZCA9IGVsbVtpXS5wYXJlbnRFbGVtZW50LnBhcmVudEVsZW1lbnQuaWQ7DQogICAgICAgIGJ1bGtJRHMucHVzaChpZCkNCiAgICAgIH0NCiAgICAgIA0KICAgIH0NCg0KICAgIGlmIChidWxrSURzLmxlbmd0aCA9PSAwKSB7DQogICAgICBzaG93RWxlbWVudCgncG9wdXAnLCBmYWxzZSkNCiAgICAgIGFsZXJ0KCJObyBjaGFubmVscyBzZWxlY3RlZCBmb3IgZWRpdGluZyIpDQogICAgICByZXR1cm4NCiAgICB9DQoNCiAgICB4ZXBnID0gYnVsa0lEc1swXQ0KICB9DQoNCg0KICBjcmVhdGVTZWFyY2hPYmooKTsNCiAgDQogIHNob3dQb3BVcEVsZW1lbnQoJ21hcHBpbmctZGV0YWlsJyk7DQoNCiAgdmFyIHRoaXNDaGFubmVsID0geEVQR1siZXBnTWFwcGluZyJdW3hlcGddOw0KICAvL2NvbnNvbGUubG9nKHRoaXNDaGFubmVsKTsNCiAgdmFyIHhYbWx0dkZpbGUgID0gdGhpc0NoYW5uZWxbIngteG1sdHYtZmlsZSJdOw0KICB2YXIgeE1hcHBpbmcgICAgPSB0aGlzQ2hhbm5lbFsieC1tYXBwaW5nIl07DQogIHZhciB4Q2F0ZWdvcnkgICA9IHRoaXNDaGFubmVsWyJ4LWNhdGVnb3J5Il07DQoNCiAgaWYgKHhYbWx0dkZpbGUgPT0gdW5kZWZpbmVkKSB7DQogICAgdGhpc0NoYW5uZWxbIngteG1sdHYtZmlsZSJdID0gIi0iOw0KICAgIHhYbWx0dkZpbGUgPSAiLSI7DQogIH0NCg0KICBpZiAoeE1hcHBpbmcgPT0gdW5kZWZpbmVkKSB7DQogICAgdGhpc0NoYW5uZWxbIngtbWFwcGluZyJdID0gIi0iOw0KICAgIHhNYXBwaW5nID0gIi0iOw0KICB9DQoNCiAgLyoNCiAgY29uc29sZS5sb2coIklEOiIsIHhlcGcpOw0KICBjb25zb2xlLmxvZygiWE1MVFYgRmlsZToiLCB4WG1sdHZGaWxlKTsNCiAgY29uc29sZS5sb2coIk1hcHBpbmc6IiwgeE1hcHBpbmcpOw0KICAqLw0KDQogIHZhciBrZXlzID0gZ2V0T2JqS2V5cyh0aGlzQ2hhbm5lbCk7DQogIGZvciAodmFyIGkgPSAwOyBpIDwga2V5cy5sZW5ndGg7IGkrKykgew0KICAgIGlmKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGtleXNbaV0pKXsNCiAgICAgIHZhciB0ZCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGtleXNbaV0pDQogICAgfSBlbHNlIHsNCiAgICAgIHZhciB0ZCA9IHVuZGVmaW5lZDsNCiAgICB9DQogICAgDQogICAgdmFyIG5ld0l0ZW0gPSBuZXcgT2JqZWN0KCk7DQogICAgdmFyIHZhbHVlcywgdGV4dCA9IG5ldyBBcnJheSgpOw0KICAgIHN3aXRjaChrZXlzW2ldKSB7DQogICAgICBjYXNlICJ4LXhtbHR2LWZpbGUiOiANCiAgICAgICAgdmFyIGZpbGVJRHMgPSBnZXRPYmpLZXlzKHhFUEdbInhtbHR2TWFwIl0pOw0KICAgICAgICB2YXIgdmFsdWUgPSBuZXcgQXJyYXkoIi0iKTsNCiAgICAgICAgdmFyIHRleHQgID0gbmV3IEFycmF5KCItIik7DQoNCiAgICAgICAgZm9yICh2YXIgaiA9IGZpbGVJRHMubGVuZ3RoIC0gMTsgaiA+PSAwOyBqLS0pIHsNCiAgICAgICAgICBpZiAoZmlsZUlEc1tqXSAhPSAieFRlVmUgRHVtbXkiKSB7DQogICAgICAgICAgICB2YWx1ZS5wdXNoKGdldFZhbHVlRnJvbVByb3ZpZGVyRmlsZShmaWxlSURzW2pdLCAieG1sdHYiLCAiZmlsZS54dGV2ZSIpKQ0KICAgICAgICAgICAgdGV4dC5wdXNoKGdldFZhbHVlRnJvbVByb3ZpZGVyRmlsZShmaWxlSURzW2pdLCAieG1sdHYiLCAibmFtZSIpKQ0KICAgICAgICAgIH0gZWxzZSB7DQogICAgICAgICAgICB2YWx1ZS5wdXNoKGZpbGVJRHNbal0pDQogICAgICAgICAgICB0ZXh0LnB1c2goZmlsZUlEc1tqXSkNCiAgICAgICAgICB9DQogICAgICAgICAgDQogICAgICAgIH0NCiAgICAgICAgDQogICAgICAgIG5ld0l0ZW1bIl9lbGVtZW50Il0gICAgICAgPSAiU0VMRUNUIjsNCiAgICAgICAgbmV3SXRlbVsiX29wdGlvblZhbHVlcyJdICA9IHZhbHVlOw0KICAgICAgICBuZXdJdGVtWyJfb3B0aW9uVGV4dCJdICAgID0gdGV4dA0KICAgICAgICBuZXdJdGVtWyJ2YWx1ZSJdICAgICAgICAgID0geFhtbHR2RmlsZTsNCiAgICAgICAgbmV3SXRlbVsib25jaGFuZ2UiXSAgICAgICA9ICdqYXZhc2NyaXB0OiBjaGFuZ2VYbWx0dkZpbGUoIicgKyB4ZXBnICsgJyIsdGhpcyk7JzsNCg0KICAgICAgICBicmVhazsNCg0KICAgICAgY2FzZSAieC1tYXBwaW5nIjogDQoNCiAgICAgICAgdmFyIHZhbHVlcyA9IGdldE9iaktleXMoeEVQR1sieG1sdHZNYXAiXVt4WG1sdHZGaWxlXSk7DQoNCiAgICAgICAgZm9yICh2YXIgaiA9IDA7IGogPCB2YWx1ZXMubGVuZ3RoOyBqKyspIHsNCiAgICAgICAgICANCiAgICAgICAgICBpZiAoeEVQR1sieG1sdHZNYXAiXVt4WG1sdHZGaWxlXVt2YWx1ZXNbal1dLmhhc093blByb3BlcnR5KCdkaXNwbGF5LW5hbWUnKSA9PSB0cnVlKSB7DQogICAgICAgICAgICB2YXIgZGlzcGxheU5hbWUgPSB4RVBHWyJ4bWx0dk1hcCJdW3hYbWx0dkZpbGVdW3ZhbHVlc1tqXV1bImRpc3BsYXktbmFtZSJdOw0KICAgICAgICAgIH0gZWxzZSB7DQogICAgICAgICAgICB2YXIgZGlzcGxheU5hbWUgPSAiLSINCiAgICAgICAgICB9DQogICAgICAgICAgDQogICAgICAgICAgLy90ZXh0W2pdID0gdmFsdWVzW2pdICsgIiAoIiArIGRpc3BsYXlOYW1lICsgIikiOw0KICAgICAgICAgIHRleHRbal0gPSBkaXNwbGF5TmFtZSArICIgKCIgKyB2YWx1ZXNbal0gICsgIikiOw0KICAgICAgICB9DQoNCiAgICAgICAgdGV4dC51bnNoaWZ0KCItIik7DQogICAgICAgIHZhbHVlcy51bnNoaWZ0KCItIik7DQogICAgICAgIG5ld0l0ZW1bIl9lbGVtZW50Il0gICAgICAgPSAiU0VMRUNUIjsNCiAgICAgICAgbmV3SXRlbVsiX29wdGlvblZhbHVlcyJdICA9IHZhbHVlczsNCiAgICAgICAgbmV3SXRlbVsiX29wdGlvblRleHQiXSAgICA9IHRleHQNCiAgICAgICAgbmV3SXRlbVsidmFsdWUiXSAgICAgICAgICA9IHhNYXBwaW5nOw0KICAgICAgICBuZXdJdGVtWyJvbmNoYW5nZSJdICAgICAgID0gJ2phdmFzY3JpcHQ6IG1hcHBpbmdDaGFubmVsKCInICsgeGVwZyArICciLHRoaXMpOyc7DQogICAgICAgIGJyZWFrOw0KDQogICAgICBjYXNlICJ4LWNhdGVnb3J5IjoNCiAgICAgICAgLy92YXIgdmFsdWVzID0gcGxleENhdGVnb3JpZXNWYWx1ZXMNCiAgICAgICAgbmV3SXRlbVsiX2VsZW1lbnQiXSAgICAgICA9ICJTRUxFQ1QiOw0KICAgICAgICBuZXdJdGVtWyJfb3B0aW9uVmFsdWVzIl0gID0gcGxleENhdGVnb3JpZXNWYWx1ZXM7DQogICAgICAgIG5ld0l0ZW1bIl9vcHRpb25UZXh0Il0gICAgPSBwbGV4Q2F0ZWdvcmllc09wdGlvbjsNCiAgICAgICAgbmV3SXRlbVsidmFsdWUiXSAgICAgICAgICA9IHhDYXRlZ29yeTsNCiAgICAgICAgbmV3SXRlbVsib25jaGFuZ2UiXSAgICAgICA9ICdzYXZlQ2F0ZWdvcnkoIicgKyB4ZXBnICsgJyIpJzsNCiAgICAgICAgYnJlYWs7DQoNCiAgICAgIGNhc2UgInR2Zy1sb2dvIjoNCiAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNoYW5uZWwtbG9nbyIpLnNldEF0dHJpYnV0ZSgic3JjIiwgdGhpc0NoYW5uZWxbInR2Zy1sb2dvIl0pOw0KICAgICAgICBuZXdJdGVtWyJfZWxlbWVudCJdICAgICAgID0gIklOUFVUIjsNCiAgICAgICAgbmV3SXRlbVsidHlwZSJdICAgICAgICAgICA9ICJ0ZXh0IjsNCiAgICAgICAgbmV3SXRlbVsidmFsdWUiXSAgICAgICAgICA9IHRoaXNDaGFubmVsWyJ0dmctbG9nbyJdOw0KICAgICAgICBuZXdJdGVtWyJvbmZvY3Vzb3V0Il0gICAgID0gJ3NhdmVDaGFubmVsTG9nbygiJyArIHhlcGcgKyAnIiknOw0KICAgICAgICBuZXdJdGVtWyJwbGFjZWhvbGRlciJdICAgID0gJ0ltYWdlIFVSTCc7DQogICAgICAgIGJyZWFrOw0KDQogICAgICBjYXNlICJ4LXVwZGF0ZS1jaGFubmVsLWljb24iOg0KICAgICAgICBuZXdJdGVtWyJfZWxlbWVudCJdICAgICAgID0gIklOUFVUIjsNCiAgICAgICAgbmV3SXRlbVsidHlwZSJdICAgICAgICAgICA9ICJjaGVja2JveCI7DQogICAgICAgIHN3aXRjaChKU09OLnBhcnNlKHRoaXNDaGFubmVsWyJ4LXVwZGF0ZS1jaGFubmVsLWljb24iXSkpIHsNCiAgICAgICAgICBjYXNlIHRydWU6IG5ld0l0ZW1bImNoZWNrZWQiXSAgICAgICAgPSB0aGlzQ2hhbm5lbFsieC11cGRhdGUtY2hhbm5lbC1pY29uIl07DQogICAgICAgICAgICBicmVhaw0KICAgICAgICB9DQogICAgICAgIG5ld0l0ZW1bIm9uY2hhbmdlIl0gICAgID0gJ3NhdmVDaGFubmVsSWNvblVwZGF0ZSgiJyArIHhlcGcgKyAnIiknOw0KICAgICAgICBicmVhazsNCg0KICAgICAgY2FzZSAieC1uYW1lIjoNCiAgICAgICAgbmV3SXRlbVsiX2VsZW1lbnQiXSAgICAgICA9ICJJTlBVVCI7DQogICAgICAgIG5ld0l0ZW1bInR5cGUiXSAgICAgICAgICAgPSAidGV4dCI7DQogICAgICAgIG5ld0l0ZW1bInZhbHVlIl0gICAgICAgICAgPSB0aGlzQ2hhbm5lbFsieC1uYW1lIl07DQogICAgICAgIG5ld0l0ZW1bIm9uZm9jdXNvdXQiXSAgICAgPSAnc2F2ZUNoYW5uZWxOYW1lKCInICsgeGVwZyArICciKSc7DQogICAgICAgIG5ld0l0ZW1bInBsYWNlaG9sZGVyIl0gICAgPSAnQ2hhbm5lbCBOYW1lJzsNCiAgICAgICAgYnJlYWs7DQoNCiAgICAgIGNhc2UgIngtdXBkYXRlLWNoYW5uZWwtbmFtZSI6DQogICAgICAgIGlmICh0aGlzQ2hhbm5lbC5oYXNPd25Qcm9wZXJ0eSgiX3V1aWQua2V5IikgPT0gdHJ1ZSkgew0KICAgICAgICAgIG5ld0l0ZW1bIl9lbGVtZW50Il0gICAgICAgPSAiSU5QVVQiOw0KICAgICAgICAgIG5ld0l0ZW1bInR5cGUiXSAgICAgICAgICAgPSAiY2hlY2tib3giOw0KICAgICAgICAgIHN3aXRjaChKU09OLnBhcnNlKHRoaXNDaGFubmVsWyJ4LXVwZGF0ZS1jaGFubmVsLW5hbWUiXSkpIHsNCiAgICAgICAgICAgIGNhc2UgdHJ1ZTogbmV3SXRlbVsiY2hlY2tlZCJdICAgICAgICA9IHRoaXNDaGFubmVsWyJ4LXVwZGF0ZS1jaGFubmVsLW5hbWUiXTsNCiAgICAgICAgICAgICAgYnJlYWsNCiAgICAgICAgICB9DQogICAgICAgICAgbmV3SXRlbVsib25jaGFuZ2UiXSAgICAgPSAnc2F2ZUNoYW5uZWxOYW1lVXBkYXRlKCInICsgeGVwZyArICciKSc7DQogICAgICAgICAgc2hvd0VsZW1lbnQoInN0cmVhbUhhc0NVSUQiLCB0cnVlKQ0KDQogICAgICAgICAgYnJlYWs7DQogICAgICAgIH0gZWxzZSB7DQogICAgICAgICAgLy9zdHJlYW1IYXNDVUlEDQogICAgICAgICAgc2hvd0VsZW1lbnQoInN0cmVhbUhhc0NVSUQiLCBmYWxzZSkNCiAgICAgICAgICBicmVhazsNCiAgICAgICAgfQ0KICAgICAgICANCiAgICAgIGNhc2UgIngtYWN0aXZlIjoNCiAgICAgICAgbmV3SXRlbVsiX2VsZW1lbnQiXSAgICAgICA9ICJJTlBVVCI7DQogICAgICAgIG5ld0l0ZW1bInR5cGUiXSAgICAgICAgICAgPSAiY2hlY2tib3giOw0KICAgICAgICBzd2l0Y2goSlNPTi5wYXJzZSh0aGlzQ2hhbm5lbFsieC1hY3RpdmUiXSkpIHsNCiAgICAgICAgICBjYXNlIHRydWU6IG5ld0l0ZW1bImNoZWNrZWQiXSAgICAgICAgPSB0aGlzQ2hhbm5lbFsieC1hY3RpdmUiXTsNCiAgICAgICAgICAgIGJyZWFrDQogICAgICAgIH0NCiAgICAgICAgbmV3SXRlbVsib25jaGFuZ2UiXSAgICAgPSAnc2F2ZUNoYW5uZWxTdGF0dXMoIicgKyB4ZXBnICsgJyIpJzsNCiAgICAgICAgYnJlYWs7DQoNCiAgICAgIGNhc2UgIngtZ3JvdXAtdGl0bGUiOg0KICAgICAgICBuZXdJdGVtWyJfZWxlbWVudCJdICAgICAgID0gIklOUFVUIjsNCiAgICAgICAgbmV3SXRlbVsidHlwZSJdICAgICAgICAgICA9ICJ0ZXh0IjsNCiAgICAgICAgbmV3SXRlbVsidmFsdWUiXSAgICAgICAgICA9IHRoaXNDaGFubmVsWyJ4LWdyb3VwLXRpdGxlIl07DQogICAgICAgIG5ld0l0ZW1bIm9uZm9jdXNvdXQiXSAgICAgPSAnc2F2ZUdyb3VwVGl0bGUoIicgKyB4ZXBnICsgJyIpJzsNCiAgICAgICAgbmV3SXRlbVsicGxhY2Vob2xkZXIiXSAgICA9ICdHcm91cCBUaXRsZSc7DQogICAgICAgIGJyZWFrOw0KDQogICAgICBkZWZhdWx0Og0KICAgICAgICBuZXdJdGVtWyJfZWxlbWVudCJdICAgICAgID0gIlAiOw0KICAgICAgICBuZXdJdGVtWyJfdGV4dCJdICAgICAgICAgID0gdGhpc0NoYW5uZWxba2V5c1tpXV07DQogICAgICAgIGJyZWFrOw0KICAgICAgDQogICAgfQ0KICAgIA0KICAgIGlmICh0ZCAhPSB1bmRlZmluZWQpIHsNCiAgICAgIHRkLmlubmVySFRNTCA9ICIiOw0KICAgICAgdmFyIGVsZW1lbnQgPSBjcmVhdGVOZXdFbGVtZW50KG5ld0l0ZW0pDQogICAgICAvL2NvbnNvbGUubG9nKGVsZW1lbnQpOw0KICAgICAgdGQuYXBwZW5kQ2hpbGQoZWxlbWVudCk7DQogICAgfQ0KDQogIH0NCg0KICBpZiAoYnVsayA9PSB0cnVlKSB7DQoNCiAgICB2YXIgZWxtID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSgibm9CdWxrIik7DQogICAgZm9yICh2YXIgaSA9IDA7IGkgPCBlbG0ubGVuZ3RoOyBpKyspIHsNCiAgICAgIGVsbVtpXS5sYXN0Q2hpbGQuc2V0QXR0cmlidXRlKCJyZWFkb25seSIsIHRydWUpDQogICAgICBlbG1baV0ubGFzdENoaWxkLnN0eWxlLmJvcmRlckNvbG9yID0gInJlZCI7DQogICAgfQ0KDQogICAgeGVwZyA9IGJ1bGtJRHNbMF0NCiAgfQ0KDQogIHNvcnRTZWxlY3QoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIngteG1sdHYtZmlsZSIpLmxhc3RDaGlsZCk7DQogIHNvcnRTZWxlY3QoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIngtbWFwcGluZyIpLmxhc3RDaGlsZCk7DQogIA0KfQ0KDQpmdW5jdGlvbiBzb3J0U2VsZWN0KGVsZW0pIHsNCg0KICB2YXIgdG1wQXJ5ID0gW107DQogIC8vIFJldGFpbiBzZWxlY3RlZCB2YWx1ZSBiZWZvcmUgc29ydGluZw0KICB2YXIgc2VsZWN0ZWRWYWx1ZSA9IGVsZW1bZWxlbS5zZWxlY3RlZEluZGV4XS52YWx1ZTsNCiAgLy8gR3JhYiBhbGwgZXhpc3RpbmcgZW50cmllcw0KICBmb3IgKHZhciBpPTA7aTxlbGVtLm9wdGlvbnMubGVuZ3RoO2krKykgdG1wQXJ5LnB1c2goZWxlbS5vcHRpb25zW2ldKTsNCiAgLy8gU29ydCBhcnJheSBieSB0ZXh0IGF0dHJpYnV0ZQ0KICB0bXBBcnkuc29ydChmdW5jdGlvbihhLGIpeyByZXR1cm4gKGEudGV4dCA8IGIudGV4dCk/LTE6MTsgfSk7DQogIC8vIFdpcGUgb3V0IGV4aXN0aW5nIGVsZW1lbnRzDQogIHdoaWxlIChlbGVtLm9wdGlvbnMubGVuZ3RoID4gMCkgZWxlbS5vcHRpb25zWzBdID0gbnVsbDsNCiAgLy8gUmVzdG9yZSBzb3J0ZWQgZWxlbWVudHMNCiAgdmFyIG5ld1NlbGVjdGVkSW5kZXggPSAwOw0KICBmb3IgKHZhciBpPTA7aTx0bXBBcnkubGVuZ3RoO2krKykgew0KICAgICAgZWxlbS5vcHRpb25zW2ldID0gdG1wQXJ5W2ldOw0KICAgICAgaWYoZWxlbS5vcHRpb25zW2ldLnZhbHVlID09IHNlbGVjdGVkVmFsdWUpIG5ld1NlbGVjdGVkSW5kZXggPSBpOw0KICB9DQogIGVsZW0uc2VsZWN0ZWRJbmRleCA9IG5ld1NlbGVjdGVkSW5kZXg7IC8vIFNldCBuZXcgc2VsZWN0ZWQgaW5kZXggYWZ0ZXIgc29ydGluZw0KICByZXR1cm47DQp9DQoNCg0KZnVuY3Rpb24gc3dpdGNoQ2hhbm5lbFN0YXR1cyh4ZXBnKSB7DQogIHZhciB0aGlzQ2hhbm5lbCA9IHhFUEdbImVwZ01hcHBpbmciXVt4ZXBnXTsNCiAgdmFyIHhYbWx0dkZpbGUgPSB0aGlzQ2hhbm5lbFsieC14bWx0di1maWxlIl07DQoNCiAgaWYgKHhFUEdbInhtbHR2TWFwIl0uaGFzT3duUHJvcGVydHkoeFhtbHR2RmlsZSkgPT0gdHJ1ZSkgew0KICAgIGlmICh0aGlzQ2hhbm5lbFsieC1tYXBwaW5nIl0gIT0gIi0iICYmIHRoaXNDaGFubmVsWyJ4LW1hcHBpbmciXSAhPSB1bmRlZmluZWQpIHsNCiAgICAgIHRoaXNDaGFubmVsWyJ4LWFjdGl2ZSJdID0gIXRoaXNDaGFubmVsWyJ4LWFjdGl2ZSJdOw0KICAgICAgdmFyIHRyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoeGVwZyk7DQogICAgICBzd2l0Y2godGhpc0NoYW5uZWxbIngtYWN0aXZlIl0pIHsNCiAgICAgICAgY2FzZSB0cnVlOiB0ci5jbGFzc05hbWUgPSAiYWN0aXZlRVBHIjsgYnJlYWs7DQogICAgICAgIGNhc2UgZmFsc2U6IHRyLmNsYXNzTmFtZSA9ICJub3RBY3RpdmVFUEciOyBicmVhazsNCiAgICAgIH0NCiAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJsb2dJbmZvIikuY2xhc3NOYW1lID0gIm5vdFZpc2libGUiOw0KDQogICAgfSBlbHNlIHsNCiAgICAgIHZhciBlcnIgPSAiWE1MVFYgQ2hhbm5lbCBpcyBub3Qgc2VsZWN0ZWQiDQogICAgICBhbGVydChlcnIpDQogICAgICAvKg0KICAgICAgdmFyIG5ld0Vycm9yID0gbmV3IE9iamVjdCgpOw0KICAgICAgbmV3RXJyb3JbImVyciJdID0gIkNoYW5uZWwgaXMgbm90IHNlbGVjdGVkIjsNCiAgICAgIGNoZWNrRXJyKG5ld0Vycm9yKTsNCiAgICAgICovDQogICAgfQ0KDQogIH0gZWxzZSB7DQogICAgdmFyIGVyciA9ICJYTUxUViBGaWxlIGlzIG5vdCBzZWxlY3RlZCINCiAgICBhbGVydChlcnIpDQogICAgLyoNCiAgICB2YXIgbmV3RXJyb3IgPSBuZXcgT2JqZWN0KCk7DQogICAgbmV3RXJyb3JbImVyciJdID0gIlhNTFRWIGZpbGUgaXMgbm90IHNlbGVjdGVkIjsNCiAgICBjaGVja0VycihuZXdFcnJvcik7DQogICAgKi8NCiAgfQ0KDQogIHNlYXJjaEluTWFwcGluZygpOw0KDQp9DQoNCmZ1bmN0aW9uIGNyZWF0ZU5ld0VsZW1lbnQobmV3SXRlbSkgew0KDQogIHZhciBlbGVtZW50ID0gY3JlYXRlRWxlbWVudChuZXdJdGVtKTsNCiAgDQogIHN3aXRjaChuZXdJdGVtWyJfZWxlbWVudCJdKSB7DQogICAgY2FzZSAiU0VMRUNUIjoNCiAgICAgIC8vZWxlbWVudFtdDQogICAgICB2YXIgdmFsdWVzICA9IG5ld0l0ZW1bIl9vcHRpb25WYWx1ZXMiXTsNCiAgICAgIHZhciB0ZXh0ICAgID0gbmV3SXRlbVsiX29wdGlvblRleHQiXTsNCg0KICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB2YWx1ZXMubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgLy9jb25zb2xlLmxvZyhpdGVtKTsNCiAgICAgICAgdmFyIG5ld0VudHJ5ID0gbmV3IE9iamVjdDsNCiAgICAgICAgbmV3RW50cnlbIl9lbGVtZW50Il0gID0gIk9QVElPTiI7DQogICAgICAgIG5ld0VudHJ5WyJfdGV4dCJdICAgICA9IHRleHRbaV07DQogICAgICAgIG5ld0VudHJ5WyJ2YWx1ZSJdICAgICA9IHZhbHVlc1tpXTsNCiAgICAgICAgZWxlbWVudC5hcHBlbmRDaGlsZChjcmVhdGVFbGVtZW50KG5ld0VudHJ5KSk7DQogICAgICB9DQogICAgICBlbGVtZW50LnZhbHVlID0gbmV3SXRlbVsidmFsdWUiXTsNCiAgICAgIGJyZWFrOw0KICAgIA0KICAgIGRlZmF1bHQ6IA0KICAgICAgDQogICAgICAvL2VsZW1lbnQuYXBwZW5kQ2hpbGQoY3JlYXRlRWxlbWVudChuZXdJdGVtKSk7DQogICAgICBicmVhazsNCiAgfQ0KICANCiAgcmV0dXJuIGVsZW1lbnQ7DQp9DQoNCmZ1bmN0aW9uIHNhdmVCdWxrKGtleSwgdmFsdWUpIHsNCiAgZm9yICh2YXIgaSA9IDA7IGkgPCBidWxrSURzLmxlbmd0aDsgaSsrKSB7DQogICAgdmFyIGlkID0gYnVsa0lEc1tpXQ0KICAgIHZhciB0aGlzQ2hhbm5lbCA9IHhFUEdbImVwZ01hcHBpbmciXVtpZF07DQogICAgdGhpc0NoYW5uZWxba2V5XSA9IHZhbHVlOw0KDQogICAgc3dpdGNoKGtleSkgew0KICAgICAgY2FzZSAidHZnLWxvZ28iOiAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5jaGlsZE5vZGVzWzJdLmxhc3RDaGlsZC5zZXRBdHRyaWJ1dGUoInNyYyIsIHZhbHVlKTsgYnJlYWs7DQogICAgICANCiAgICAgIGNhc2UgIngtY2F0ZWdvcnkiOiAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkuY2hpbGROb2Rlc1szXS5sYXN0Q2hpbGQuY2xhc3NOYW1lID0gdmFsdWU7IGJyZWFrOw0KDQogICAgICBjYXNlICJ4LXhtbHR2LWZpbGUiOg0KICAgICAgICB2YXIgZWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5jaGlsZE5vZGVzWzZdLmxhc3RDaGlsZDsNCiAgICAgICAgc3dpdGNoKHZhbHVlKSB7DQogICAgICAgICAgY2FzZSAiLSI6ICAgICAgICAgICBlbGVtZW50LmlubmVySFRNTCA9IHZhbHVlOyBicmVhazsNCiAgICAgICAgICBjYXNlICJ4VGVWZSBEdW1teSI6IGVsZW1lbnQuaW5uZXJIVE1MID0gdmFsdWU7IGJyZWFrOw0KICAgICAgICAgIGRlZmF1bHQ6ICAgICAgICAgICAgZWxlbWVudC5pbm5lckhUTUwgPSBnZXRWYWx1ZUZyb21Qcm92aWRlckZpbGUodmFsdWUsICJ4bWx0diIsICJuYW1lIik7IGJyZWFrOw0KICAgICAgICB9DQoNCg0KDQogICAgICAvL2RvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5jaGlsZE5vZGVzWzVdLmxhc3RDaGlsZC5pbm5lckhUTUwgPSB2YWx1ZS5yZXBsYWNlKC9eLipbXFxcL10vLCAnJyk7IGJyZWFrOw0KICAgICAgY2FzZSAieC1tYXBwaW5nIjogICANCiAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpLmNoaWxkTm9kZXNbN10ubGFzdENoaWxkLmlubmVySFRNTCA9IHZhbHVlOw0KICAgICAgICBpZiAodmFsdWUgPT0gIi0iKSB7DQogICAgICAgICAgdGhpc0NoYW5uZWxbIngtYWN0aXZlIl0gPSBmYWxzZTsNCiAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkuY2xhc3NOYW1lID0gIm5vdEFjdGl2ZUVQRyI7DQogICAgICAgIH0gZWxzZSB7DQogICAgICAgICAgdGhpc0NoYW5uZWxbIngtYWN0aXZlIl0gPSB0cnVlOw0KICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5jbGFzc05hbWUgPSAiYWN0aXZlRVBHIjsNCiAgICAgICAgfQ0KICAgICAgICBicmVhazsNCg0KICAgICAgY2FzZSAieC1ncm91cC10aXRsZSI6IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5jaGlsZE5vZGVzWzVdLmxhc3RDaGlsZC5pbm5lckhUTUwgPSB2YWx1ZTsgYnJlYWs7DQoNCiAgICAgIGNhc2UgIngtYWN0aXZlIjoNCiAgICAgICAgdmFyIHRyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpOw0KICAgICAgICANCiAgICAgICAgaWYgKHRoaXNDaGFubmVsLmhhc093blByb3BlcnR5KCJ4LXhtbHR2LWZpbGUiKSA9PSB0cnVlKSB7DQogICAgICAgICAgaWYgKHRoaXNDaGFubmVsWyJ4LW1hcHBpbmciXSAhPSAiLSIgJiYgdGhpc0NoYW5uZWxbIngtbWFwcGluZyJdICE9IHVuZGVmaW5lZCAmJiB0aGlzQ2hhbm5lbFsieC14bWx0di1maWxlIl0gIT0gIi0iICYmIHRoaXNDaGFubmVsWyJ4LXhtbHR2LWZpbGUiXSAhPSB1bmRlZmluZWQpIHsNCiAgICAgICAgICAgIHN3aXRjaCh0aGlzQ2hhbm5lbFsieC1hY3RpdmUiXSkgew0KICAgICAgICAgICAgICBjYXNlIHRydWU6IHRyLmNsYXNzTmFtZSA9ICJhY3RpdmVFUEciOyBicmVhazsNCiAgICAgICAgICAgICAgY2FzZSBmYWxzZTogdHIuY2xhc3NOYW1lID0gIm5vdEFjdGl2ZUVQRyI7IGJyZWFrOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgfQ0KICAgICAgICB9DQoNCiAgICB9DQoNCiAgICB1cGRhdGVDaGFubmVsTG9nbyhpZCkNCg0KICB9DQoNCn0NCg0KZnVuY3Rpb24gdXBkYXRlQ2hhbm5lbExvZ28oeGVwZykgew0KICB2YXIgdGhpc0NoYW5uZWwgPSB4RVBHWyJlcGdNYXBwaW5nIl1beGVwZ107DQogIGlmICh0aGlzQ2hhbm5lbFsieC11cGRhdGUtY2hhbm5lbC1pY29uIl0gPT0gdHJ1ZSkgew0KICAgIHZhciB4WG1sdHZGaWxlICA9IHRoaXNDaGFubmVsWyJ4LXhtbHR2LWZpbGUiXTsNCiAgICB2YXIgeE1hcHBpbmcgICAgPSB0aGlzQ2hhbm5lbFsieC1tYXBwaW5nIl07DQoNCiAgICBpZiAoeFhtbHR2RmlsZSAhPSAiLSIgJiYgeFhtbHR2RmlsZS5sZW5ndGggPiAwICYmIHhNYXBwaW5nICE9ICItIiAmJiB4TWFwcGluZy5sZW5ndGggPiAwKSB7DQogICAgICBpZiAoeEVQR1sieG1sdHZNYXAiXVt4WG1sdHZGaWxlXVt4TWFwcGluZ10uaGFzT3duUHJvcGVydHkoImljb24iKSkgew0KICAgICAgICB2YXIgbG9nb1VSTCA9IHhFUEdbInhtbHR2TWFwIl1beFhtbHR2RmlsZV1beE1hcHBpbmddWyJpY29uIl07DQogICAgICAgIHRoaXNDaGFubmVsWyJ0dmctbG9nbyJdID0gbG9nb1VSTDsNCiAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoeGVwZykuY2hpbGROb2Rlc1syXS5sYXN0Q2hpbGQuc2V0QXR0cmlidXRlKCJzcmMiLCBsb2dvVVJMKTsNCiAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNoYW5uZWwtbG9nbyIpLnNldEF0dHJpYnV0ZSgic3JjIiwgbG9nb1VSTCk7DQogICAgICB9IGVsc2Ugew0KICAgICAgICBhbGVydCgiTm8gbG9nbyBVUkwgaW4gdGhlIFhNTFRWIGZpbGUgYXZhaWxhYmxlIikNCiAgICAgIH0NCiAgICAgIA0KICAgIH0NCiAgICANCiAgICAvKg0KICAgIGlmICh4RVBHWyJ4bWx0dk1hcCJdW3hYbWx0dkZpbGVdW3hNYXBwaW5nXVsiaWNvbiJdICE9IHVuZGVmaW5lZCkgew0KDQogICAgICANCiAgICB9DQogICAgKi8NCiAgICANCiAgfQ0KfQ0KDQpmdW5jdGlvbiBzYXZlQ2hhbm5lbExvZ28oeGVwZykgew0KICBpZiAoYnVsayA9PSBmYWxzZSkgew0KICAgIHZhciB0aGlzQ2hhbm5lbCA9IHhFUEdbImVwZ01hcHBpbmciXVt4ZXBnXTsNCiAgICB0aGlzQ2hhbm5lbFsidHZnLWxvZ28iXSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0dmctbG9nbyIpLmxhc3RDaGlsZC52YWx1ZTsNCiAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCh4ZXBnKS5jaGlsZE5vZGVzWzJdLmxhc3RDaGlsZC5zZXRBdHRyaWJ1dGUoInNyYyIsIHRoaXNDaGFubmVsWyJ0dmctbG9nbyJdKTsNCiAgICBtYXBwaW5nRGV0YWlsKHhlcGcpOw0KICAgIHJldHVybg0KICB9DQoNCiAgaWYgKGJ1bGsgPT0gdHJ1ZSkgew0KICAgIHZhciBrZXkgICA9ICJ0dmctbG9nbyI7DQogICAgdmFyIHZhbHVlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInR2Zy1sb2dvIikubGFzdENoaWxkLnZhbHVlOw0KICAgIHNhdmVCdWxrKGtleSwgdmFsdWUpOw0KDQogICAgbWFwcGluZ0RldGFpbCh4ZXBnKTsNCiAgICByZXR1cm4NCiAgfQ0KfQ0KDQpmdW5jdGlvbiBzYXZlQ2hhbm5lbEljb25VcGRhdGUoeGVwZykgew0KDQogIHZhciBrZXkgICA9ICJ4LXVwZGF0ZS1jaGFubmVsLWljb24iOw0KICB2YXIgdmFsdWUgPSBKU09OLnBhcnNlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ4LXVwZGF0ZS1jaGFubmVsLWljb24iKS5sYXN0Q2hpbGQuY2hlY2tlZCk7DQogIGlmIChidWxrID09IGZhbHNlKSB7DQogICAgdmFyIHRoaXNDaGFubmVsID0geEVQR1siZXBnTWFwcGluZyJdW3hlcGddOw0KICAgIHRoaXNDaGFubmVsW2tleV0gPSB2YWx1ZQ0KICAgIHVwZGF0ZUNoYW5uZWxMb2dvKHhlcGcpDQogICAgDQogICAgbWFwcGluZ0RldGFpbCh4ZXBnKTsNCiAgICBzZWFyY2hJbk1hcHBpbmcoKTsNCiAgICByZXR1cm4NCiAgfQ0KDQogIGlmIChidWxrID09IHRydWUpIHsNCiAgICBzYXZlQnVsayhrZXksIHZhbHVlKTsNCiAgICBtYXBwaW5nRGV0YWlsKHhlcGcpOw0KICAgIHJldHVybg0KICB9DQogIA0KfQ0KDQpmdW5jdGlvbiBzYXZlQ2hhbm5lbE5hbWUoeGVwZykgew0KICBpZiAoYnVsayA9PSBmYWxzZSkgew0KICAgIHZhciB0aGlzQ2hhbm5lbCA9IHhFUEdbImVwZ01hcHBpbmciXVt4ZXBnXTsNCiAgICB0aGlzQ2hhbm5lbFsieC1uYW1lIl0gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgieC1uYW1lIikubGFzdENoaWxkLnZhbHVlOw0KICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHhlcGcpLmNoaWxkTm9kZXNbM10ubGFzdENoaWxkLmlubmVySFRNTCA9IHRoaXNDaGFubmVsWyJ4LW5hbWUiXTsNCiAgICBtYXBwaW5nRGV0YWlsKHhlcGcpOw0KICAgIHNlYXJjaEluTWFwcGluZygpOw0KICB9DQogIA0KfQ0KDQpmdW5jdGlvbiBzYXZlQ2hhbm5lbE5hbWVVcGRhdGUoeGVwZykgew0KICB2YXIga2V5ICAgPSAieC11cGRhdGUtY2hhbm5lbC1uYW1lIjsNCiAgdmFyIHZhbHVlID0gSlNPTi5wYXJzZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgieC11cGRhdGUtY2hhbm5lbC1uYW1lIikubGFzdENoaWxkLmNoZWNrZWQpOw0KDQogIGlmIChidWxrID09IGZhbHNlKSB7DQogICAgdmFyIHRoaXNDaGFubmVsID0geEVQR1siZXBnTWFwcGluZyJdW3hlcGddOw0KICAgIHRoaXNDaGFubmVsW2tleV0gPSB2YWx1ZQ0KICAgIG1hcHBpbmdEZXRhaWwoeGVwZyk7DQogICAgc2VhcmNoSW5NYXBwaW5nKCk7DQogICAgcmV0dXJuDQogIH0NCg0KICBpZiAoYnVsayA9PSB0cnVlKSB7DQogICAgc2F2ZUJ1bGsoa2V5LCB2YWx1ZSk7DQogICAgbWFwcGluZ0RldGFpbCh4ZXBnKTsNCiAgICByZXR1cm4NCiAgfQ0KDQp9DQoNCmZ1bmN0aW9uIHNhdmVDaGFubmVsU3RhdHVzKHhlcGcpIHsNCiAgdmFyIHRoaXNDaGFubmVsID0geEVQR1siZXBnTWFwcGluZyJdW3hlcGddOw0KICB2YXIgeFhtbHR2RmlsZSA9IHRoaXNDaGFubmVsWyJ4LXhtbHR2LWZpbGUiXTsNCg0KICB2YXIga2V5ICAgPSAieC1hY3RpdmUiOw0KICB2YXIgdmFsdWUgPSBKU09OLnBhcnNlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ4LWFjdGl2ZSIpLmxhc3RDaGlsZC5jaGVja2VkKTsNCg0KICBpZiAoeEVQR1sieG1sdHZNYXAiXS5oYXNPd25Qcm9wZXJ0eSh4WG1sdHZGaWxlKSA9PSB0cnVlKSB7DQogICAgaWYgKHRoaXNDaGFubmVsWyJ4LW1hcHBpbmciXSAhPSAiLSIgJiYgdGhpc0NoYW5uZWxbIngtbWFwcGluZyJdICE9IHVuZGVmaW5lZCkgew0KICAgICAgdGhpc0NoYW5uZWxbIngtYWN0aXZlIl0gPSAhdGhpc0NoYW5uZWxbIngtYWN0aXZlIl07DQogICAgICB2YXIgdHIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCh4ZXBnKTsNCiAgICAgIHN3aXRjaCh0aGlzQ2hhbm5lbFsieC1hY3RpdmUiXSkgew0KICAgICAgICBjYXNlIHRydWU6IHRyLmNsYXNzTmFtZSA9ICJhY3RpdmVFUEciOyBicmVhazsNCiAgICAgICAgY2FzZSBmYWxzZTogdHIuY2xhc3NOYW1lID0gIm5vdEFjdGl2ZUVQRyI7IGJyZWFrOw0KICAgICAgfQ0KICAgICAgDQogICAgfSBlbHNlIHsNCiAgICAgIHZhciBlcnIgPSAiWE1MVFYgQ2hhbm5lbCBpcyBub3Qgc2VsZWN0ZWQiDQogICAgICBhbGVydChlcnIpDQogICAgICB2YWx1ZSA9IGZhbHNlDQogICAgfQ0KDQogIH0gZWxzZSB7DQogICAgaWYgKHZhbHVlID09IHRydWUpIHsNCiAgICAgIHZhciBlcnIgPSAiWE1MVFYgRmlsZSBpcyBub3Qgc2VsZWN0ZSINCiAgICAgIGFsZXJ0KGVycikNCiAgICAgIHZhbHVlID0gZmFsc2UNCiAgICB9DQogIH0NCg0KICANCg0KICBpZiAoYnVsayA9PSBmYWxzZSkgew0KICAgIHZhciB0aGlzQ2hhbm5lbCA9IHhFUEdbImVwZ01hcHBpbmciXVt4ZXBnXTsNCiAgICB0aGlzQ2hhbm5lbFtrZXldID0gdmFsdWUNCiAgICBtYXBwaW5nRGV0YWlsKHhlcGcpOw0KICAgIHNlYXJjaEluTWFwcGluZygpOw0KDQogICAgdmFyIHRyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoeGVwZyk7DQogICAgc3dpdGNoKHRoaXNDaGFubmVsWyJ4LWFjdGl2ZSJdKSB7DQogICAgICBjYXNlIHRydWU6IHRyLmNsYXNzTmFtZSA9ICJhY3RpdmVFUEciOyBicmVhazsNCiAgICAgIGNhc2UgZmFsc2U6IHRyLmNsYXNzTmFtZSA9ICJub3RBY3RpdmVFUEciOyBicmVhazsNCiAgICB9DQoNCiAgICByZXR1cm4NCiAgfQ0KDQogIGlmIChidWxrID09IHRydWUpIHsNCiAgICBzYXZlQnVsayhrZXksIHZhbHVlKTsNCiAgICBtYXBwaW5nRGV0YWlsKHhlcGcpOw0KICAgIHJldHVybg0KICB9DQoNCn0NCg0KZnVuY3Rpb24gc2F2ZUdyb3VwVGl0bGUoeGVwZykgew0KICB2YXIga2V5ICAgPSAieC1ncm91cC10aXRsZSI7DQogIHZhciB2YWx1ZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ4LWdyb3VwLXRpdGxlIikubGFzdENoaWxkLnZhbHVlOw0KDQogIGlmIChidWxrID09IGZhbHNlKSB7DQogICAgdmFyIHRoaXNDaGFubmVsID0geEVQR1siZXBnTWFwcGluZyJdW3hlcGddOw0KICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHhlcGcpLmNoaWxkTm9kZXNbNV0ubGFzdENoaWxkLmlubmVySFRNTCA9IHZhbHVlOw0KICAgIHRoaXNDaGFubmVsW2tleV0gPSB2YWx1ZTsNCiAgICBtYXBwaW5nRGV0YWlsKHhlcGcpOw0KICAgIHNlYXJjaEluTWFwcGluZygpOw0KICB9DQoNCiAgaWYgKGJ1bGsgPT0gdHJ1ZSkgew0KICAgIHNhdmVCdWxrKGtleSwgdmFsdWUpOw0KICAgIG1hcHBpbmdEZXRhaWwoeGVwZyk7DQogICAgcmV0dXJuDQogIH0NCg0KfQ0KDQpmdW5jdGlvbiBzYXZlQ2F0ZWdvcnkoeGVwZykgew0KICB2YXIga2V5ICAgPSAieC1jYXRlZ29yeSI7DQogIHZhciB2YWx1ZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ4LWNhdGVnb3J5IikubGFzdENoaWxkLnZhbHVlOw0KDQogIGlmIChidWxrID09IGZhbHNlKSB7DQogICAgdmFyIHRoaXNDaGFubmVsID0geEVQR1siZXBnTWFwcGluZyJdW3hlcGddOw0KICAgIHRoaXNDaGFubmVsW2tleV0gPSB2YWx1ZQ0KICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHhlcGcpLmNoaWxkTm9kZXNbM10ubGFzdENoaWxkLmNsYXNzTmFtZSA9IHZhbHVlDQogICAgbWFwcGluZ0RldGFpbCh4ZXBnKTsNCiAgICBzZWFyY2hJbk1hcHBpbmcoKTsNCiAgfQ0KDQogIGlmIChidWxrID09IHRydWUpIHsNCiAgICBzYXZlQnVsayhrZXksIHZhbHVlKTsNCiAgICBtYXBwaW5nRGV0YWlsKHhlcGcpOw0KICAgIHJldHVybg0KICB9DQoNCn0NCg0KZnVuY3Rpb24gYXJyYW5nZVRhYmxlKGVsbSkgew0KICB2YXIgdHIgPSBlbG0ucGFyZW50RWxlbWVudC5wYXJlbnRFbGVtZW50Ow0KICB2YXIgbmV3UG9zaXRpb24gPSBlbG0udmFsdWU7DQogIHZhciB4X2NoYW5uZWxJRCA9IHRyLmlkOw0KDQogIHN3aXRjaChpc05hTihuZXdQb3NpdGlvbikpIHsNCiAgICBjYXNlIHRydWU6IA0KICAgICAgYWxlcnQoIkNoLiBOby4gbXVzdCBiZSBhIG51bWJlciIpOw0KICAgICAgbWFwcGluZ0Vycm9yID0gdHJ1ZTsNCiAgICAgIGJyZWFrOw0KICB9DQoNCg0KICAvL3ZhciBpdGVtID0geEVQR1siZXBnTWFwcGluZyJdW2lkXTsNCiAgdmFyIGtleXMgPSBnZXRPYmpLZXlzKHhFUEdbImVwZ01hcHBpbmciXSkNCiAgZm9yICh2YXIgaSA9IDA7IGkgPCBrZXlzLmxlbmd0aDsgaSsrKSB7DQogICAgdmFyIGl0ZW0gPSB4RVBHWyJlcGdNYXBwaW5nIl1ba2V5c1tpXV07DQogICAgaWYgKGl0ZW1bIngtZXBnIl0gPT0geF9jaGFubmVsSUQpIHsNCg0KICAgICAgLy8gQ2hlY2sgaWYgcG9zaXRpb24gZXhpc3QNCiAgICAgIHZhciBvbGRQb3NpdGlvbiA9IGl0ZW1bIngtY2hhbm5lbElEIl07DQoNCiAgICAgIGlmIChvbGRQb3NpdGlvbiAhPSBuZXdQb3NpdGlvbikgew0KDQogICAgICAgIGNvbnNvbGUubG9nKG5ld1Bvc2l0aW9uLCBuZXdQb3NpdGlvbi5sZW5ndGgpOw0KICAgICAgICBpZiAobmV3UG9zaXRpb24ubGVuZ3RoID09IDApIHsNCiAgICAgICAgICBtYXBwaW5nRXJyb3IgPSB0cnVlDQogICAgICAgICAgbmV3UG9zaXRpb24gPSBvbGRQb3NpdGlvbjsNCiAgICAgICAgICANCiAgICAgICAgfQ0KDQogICAgICAgIGlmIChtYXBwaW5nRXJyb3IgPT0gdHJ1ZSkgew0KICAgICAgICAgIGVsbS52YWx1ZSA9IG9sZFBvc2l0aW9uOw0KICAgICAgICAgIHJldHVybjsNCiAgICAgICAgfQ0KDQogICAgICAgIGZvciAodmFyIGogPSBrZXlzLmxlbmd0aCAtIDE7IGogPj0gMDsgai0tKSB7DQogICAgICAgICAgdmFyIGNoYW5uZWwgPSB4RVBHWyJlcGdNYXBwaW5nIl1ba2V5c1tqXV07DQogICAgICAgICAgaWYgKGtleXNbal0gIT0geF9jaGFubmVsSUQpIHsNCiAgICAgICAgICAgIGlmIChuZXdQb3NpdGlvbiA9PSBjaGFubmVsWyJ4LWNoYW5uZWxJRCJdKSB7IC8vIElmIHBvc2l0aW9uIGV4aXN0LCBzZXQgbmV4dCBmcmVlIHBvc2l0aW9uLg0KICAgICAgICAgICAgICBuZXdQb3NpdGlvbisrOw0KICAgICAgICAgICAgICBlbG0udmFsdWUgPSBuZXdQb3NpdGlvbjsNCiAgICAgICAgICAgICAgYXJyYW5nZVRhYmxlKGVsbSk7DQogICAgICAgICAgICAgIHJldHVybjsNCiAgICAgICAgICAgICAgLyoNCiAgICAgICAgICAgICAgdmFyIG5ld0Vycm9yID0gbmV3IE9iamVjdCgpOw0KICAgICAgICAgICAgICBuZXdFcnJvclsiZXJyIl0gPSAiRHVwbGljYXRlIElEIjsNCiAgICAgICAgICAgICAgY2hlY2tFcnIobmV3RXJyb3IpOw0KICAgICAgICAgICAgICBzb3J0VGFibGUoKTsNCiAgICAgICAgICAgICAgbWFwcGluZ0Vycm9yID0gdHJ1ZTsNCiAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoeF9jaGFubmVsSUQpLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJJTlBVVCIpWzBdLmZvY3VzKCk7DQogICAgICAgICAgICAgIHJldHVybjsNCiAgICAgICAgICAgICAgKi8NCiAgICAgICAgICAgIH0NCiAgICAgICAgICB9DQogICAgICAgIH0NCg0KICAgICAgfQ0KDQogICAgICAvL2NvbnNvbGUubG9nKG9sZFBvc2l0aW9uLCBuZXdQb3NpdGlvbik7DQogICAgICBpZiAoa2V5c1tpXSA9PSB4X2NoYW5uZWxJRCAmJiBvbGRQb3NpdGlvbiAhPSBuZXdQb3NpdGlvbikgeyAgDQogICAgICAgIGl0ZW1bIngtY2hhbm5lbElEIl0gPSBuZXdQb3NpdGlvbjsNCiAgICAgIH0gDQoNCiAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJsb2dJbmZvIikuY2xhc3NOYW1lID0gIm5vdFZpc2libGUiOw0KICAgICAgaWYgKGNvbHVtblRvU29ydCA9PSAxKSB7DQogICAgICAgIHNvcnRUYWJsZShjb2x1bW5Ub1NvcnQpOw0KICAgICAgfQ0KICAgICAgbWFwcGluZ0Vycm9yID0gZmFsc2U7DQoNCiAgICB9DQogIH0NCn0NCg0KZnVuY3Rpb24gY2hhbmdlWG1sdHZGaWxlKHhlcGcsIGVsbSkgew0KDQogIHZhciB0aGlzQ2hhbm5lbCA9IHhFUEdbImVwZ01hcHBpbmciXVt4ZXBnXTsNCiAgDQogIHZhciB4WG1sdHZGaWxlICAgID0gZWxtLnZhbHVlOw0KICB2YXIgY2hhbm5lbElEICAgICA9IHRoaXNDaGFubmVsWyJ0dmctaWQiXTsNCiAgdGhpc0NoYW5uZWxbIngteG1sdHYtZmlsZSJdID0geFhtbHR2RmlsZTsNCg0KICBpZiAoYnVsayA9PSBmYWxzZSkgew0KDQogICAgc2V0VGltZW91dChmdW5jdGlvbigpeyANCg0KICAgICAgdmFyIHhNYXBwaW5nID0gIi0iDQoNCiAgICAgIC8vIEF1dG9tYXANCiAgICAgIGlmICh4WG1sdHZGaWxlICE9ICItIikgew0KICAgICAgICBpZiAoeEVQR1sieG1sdHZNYXAiXVt4WG1sdHZGaWxlXS5oYXNPd25Qcm9wZXJ0eShjaGFubmVsSUQpID09IHRydWUpIHsNCiAgICAgICAgICB0aGlzQ2hhbm5lbFsieC1tYXBwaW5nIl0gPSBjaGFubmVsSUQ7DQogICAgICAgICAgeE1hcHBpbmcgPSBjaGFubmVsSUQNCiAgICAgICAgfSBlbHNlIHsNCiAgICAgICAgICB0aGlzQ2hhbm5lbFsieC1tYXBwaW5nIl0gPSB4TWFwcGluZw0KICAgICAgICB9DQogICAgICB9IGVsc2Ugew0KICAgICAgICB0aGlzQ2hhbm5lbFsieC1tYXBwaW5nIl0gPSB4TWFwcGluZw0KDQogICAgICB9DQogICAgICANCiAgICAgIHZhciB0ciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHhlcGcpOw0KDQogICAgICBpZiAoeE1hcHBpbmcgPT0gIi0iKSB7DQogICAgICAgIHRoaXNDaGFubmVsWyJ4LWFjdGl2ZSJdID0gZmFsc2U7DQogICAgICAgIHRyLmNsYXNzTmFtZSA9ICJub3RBY3RpdmVFUEciDQogICAgICB9IGVsc2Ugew0KICAgICAgICB0aGlzQ2hhbm5lbFsieC1hY3RpdmUiXSAgPSB0cnVlOw0KICAgICAgICB0ci5jbGFzc05hbWUgPSAiYWN0aXZlRVBHIg0KICAgICAgfQ0KDQogICAgICAvLyBTaG93IGRhdGEgaW4gdGFibGUNCiAgICAgIHZhciB0ZCA9IHRyLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJURCIpOw0KICAgICAgdmFyIGRhdGFGaWxlID0gdGRbdGQubGVuZ3RoIC0gMl0ubGFzdENoaWxkOw0KICAgICAgc3dpdGNoKHhYbWx0dkZpbGUpIHsNCiAgICAgICAgY2FzZSAiLSI6ICAgICAgICAgICBkYXRhRmlsZS5pbm5lckhUTUwgPSB4WG1sdHZGaWxlOyBicmVhazsNCiAgICAgICAgY2FzZSAieFRlVmUgRHVtbXkiOiBkYXRhRmlsZS5pbm5lckhUTUwgPSB4WG1sdHZGaWxlOyBicmVhazsNCiAgICAgICAgZGVmYXVsdDogICAgICAgICAgICBkYXRhRmlsZS5pbm5lckhUTUwgPSBnZXRWYWx1ZUZyb21Qcm92aWRlckZpbGUoeFhtbHR2RmlsZSwgInhtbHR2IiwgIm5hbWUiKTsgYnJlYWs7DQogICAgICB9DQoNCiAgICAgIC8veFhtbHR2RmlsZS5yZXBsYWNlKC9eLipbXFxcL10vLCAnJyk7DQoNCiAgICAgIHZhciBkYXRhWG1sdHZJRCA9IHRkW3RkLmxlbmd0aCAtIDFdLmxhc3RDaGlsZDsNCiAgICAgIGRhdGFYbWx0dklELmlubmVySFRNTCA9IHhNYXBwaW5nOw0KICAgICAgDQogICAgICBtYXBwaW5nRGV0YWlsKHhlcGcpOw0KDQogICAgfSwgMTApOw0KICB9DQoNCiAgaWYgKGJ1bGsgPT0gdHJ1ZSkgew0KICAgIHZhciBrZXkgPSAieC14bWx0di1maWxlIg0KICAgIHZhciB2YWx1ZSA9IHhYbWx0dkZpbGUNCiAgICBzYXZlQnVsayhrZXksIHZhbHVlKTsNCg0KICAgIHZhciBrZXkgPSAieC1tYXBwaW5nIg0KICAgIHZhciB2YWx1ZSA9ICItIg0KICAgIHNhdmVCdWxrKGtleSwgdmFsdWUpOw0KICAgIG1hcHBpbmdEZXRhaWwoeGVwZyk7DQogICAgcmV0dXJuDQogIH0NCg0KICByZXR1cm4NCn0NCg0KZnVuY3Rpb24gbWFwcGluZ0NoYW5uZWwoeGVwZywgZWxtKSB7DQogIHZhciB0aGlzQ2hhbm5lbCA9IHhFUEdbImVwZ01hcHBpbmciXVt4ZXBnXTsNCiAgLy92YXIgeE1hcHBpbmcgICAgICA9IGVsbS52YWx1ZTsNCiAgdmFyIHhNYXBwaW5nICAgICAgPSBlbG0ub3B0aW9uc1tlbG0uc2VsZWN0ZWRJbmRleF0udmFsdWUNCiAgDQogIGlmIChidWxrID09IGZhbHNlKSB7DQogICAgDQogICAgdGhpc0NoYW5uZWxbIngtbWFwcGluZyJdID0geE1hcHBpbmc7DQoNCiAgICB2YXIgdHIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCh4ZXBnKTsNCg0KICAgIGlmICh4TWFwcGluZyA9PSAiLSIpIHsNCiAgICAgIHRoaXNDaGFubmVsWyJ4LWFjdGl2ZSJdID0gZmFsc2U7DQogICAgICB0ci5jbGFzc05hbWUgPSAibm90QWN0aXZlRVBHIg0KICAgIH0gZWxzZSB7DQogICAgICB0aGlzQ2hhbm5lbFsieC1hY3RpdmUiXSAgPSB0cnVlOw0KICAgICAgdHIuY2xhc3NOYW1lID0gImFjdGl2ZUVQRyINCiAgICB9DQoNCiAgICAvLyBTaG93IGRhdGEgaW4gdGFibGUNCiAgICB2YXIgdGQgPSB0ci5nZXRFbGVtZW50c0J5VGFnTmFtZSgiVEQiKTsNCiAgICB2YXIgZGF0YVhtbHR2SUQgPSB0ZFt0ZC5sZW5ndGggLSAxXS5sYXN0Q2hpbGQ7DQogICAgZGF0YVhtbHR2SUQuaW5uZXJIVE1MID0geE1hcHBpbmc7DQogICAgLy9jb25zb2xlLmxvZyh0ZFt0ZC5sZW5ndGggLSAxXSk7DQogICAgLy9jb25zb2xlLmxvZyh4TWFwcGluZywgZWxtKTsNCg0KICAgIGNyZWF0ZVNlYXJjaE9iaigpOw0KICAgIHNlYXJjaEluTWFwcGluZygpOw0KICAgIHVwZGF0ZUNoYW5uZWxMb2dvKHhlcGcpDQogICAgbWFwcGluZ0RldGFpbCh4ZXBnKTsNCiAgICByZXR1cm4NCiAgfQ0KDQogIGlmIChidWxrID09IHRydWUpIHsNCg0KICAgIHZhciBrZXkgPSAieC1tYXBwaW5nIg0KICAgIHZhciB2YWx1ZSA9IHhNYXBwaW5nDQogICAgc2F2ZUJ1bGsoa2V5LCB2YWx1ZSk7DQoNCiAgICBtYXBwaW5nRGV0YWlsKHhlcGcpOw0KICAgIHJldHVybg0KICB9DQoNCiAgcmV0dXJuDQp9DQoNCg0KZnVuY3Rpb24gY3JlYXRlTmV3VEQobmV3SXRlbSwgZWxtKSB7DQogIHZhciBuZXdURCA9IG5ldyBPYmplY3QoKTsNCiAgbmV3VERbIl9lbGVtZW50Il0gPSAiVEQiOw0KICANCiAgZWxtLmFwcGVuZENoaWxkKGNyZWF0ZUVsZW1lbnQobmV3VEQpKTsNCiAgdmFyIHRkID0gZWxtLmxhc3RDaGlsZDsgDQogIA0KICBzd2l0Y2gobmV3SXRlbVsiX2VsZW1lbnQiXSkgew0KICAgIGNhc2UgIlNFTEVDVCI6DQogICAgICB0ZC5hcHBlbmRDaGlsZChjcmVhdGVFbGVtZW50KG5ld0l0ZW0pKTsNCiAgICAgIHZhciB0ZCA9IGVsbS5sYXN0Q2hpbGQubGFzdENoaWxkOyANCiAgICAgIHZhciB2YWx1ZXMgPSBuZXdJdGVtWyJfb3B0aW9uVmFsdWVzIl07DQogICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHZhbHVlcy5sZW5ndGg7IGkrKykgew0KICAgICAgICAvL2NvbnNvbGUubG9nKGl0ZW0pOw0KICAgICAgICB2YXIgbmV3RW50cnkgPSBuZXcgT2JqZWN0Ow0KICAgICAgICBuZXdFbnRyeVsiX2VsZW1lbnQiXSAgPSAiT1BUSU9OIjsNCiAgICAgICAgbmV3RW50cnlbIl90ZXh0Il0gICAgID0gdmFsdWVzW2ldOw0KICAgICAgICBuZXdFbnRyeVsidmFsdWUiXSAgICAgPSB2YWx1ZXNbaV07DQogICAgICAgIHRkLmFwcGVuZENoaWxkKGNyZWF0ZUVsZW1lbnQobmV3RW50cnkpKTsNCiAgICAgIH0NCiAgICAgIHRkLnZhbHVlID0gbmV3SXRlbVsidmFsdWUiXTsNCg0KICAgICAgYnJlYWs7DQogICAgDQogICAgZGVmYXVsdDogDQogICAgICANCiAgICAgIHRkLmFwcGVuZENoaWxkKGNyZWF0ZUVsZW1lbnQobmV3SXRlbSkpOw0KICAgICAgYnJlYWs7DQogIH0NCiAgDQp9DQoNCmZ1bmN0aW9uIHNhdmVYRVBHKCkgew0KICBpZiAobWFwcGluZ0Vycm9yID09IHRydWUpIHsNCiAgICBhbGVydCgiRGF0YSBjb3VsZCBub3QgYmUgc2F2ZWQsIGVycm9ycyBpbiB0aGUgWEVQRyBkYXRhLiIpOw0KICAgIHJldHVybjsNCiAgfQ0KICBzaG93TG9hZGluZ1NjcmVlbih0cnVlKTsNCg0KICB2YXIgZGF0YSA9IG5ldyBPYmplY3QoKTsNCiAgZGF0YVsiZXBnTWFwcGluZyJdID0geEVQR1siZXBnTWFwcGluZyJdOw0KICBkYXRhWyJjbWQiXSA9ICJzYXZlRXBnTWFwcGluZyI7DQogIC8vY29uc29sZS5sb2coZGF0YSk7DQogIHhUZVZlKGRhdGEpOw0KfQ0KDQpmdW5jdGlvbiBidWxrRWRpdCgpIHsNCiAgYnVsayA9ICFidWxrOw0KICB2YXIgY2xhc3NOYW1lOw0KDQogIHZhciBlbG0gPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCJidWxrIik7DQoNCiAgc3dpdGNoKGJ1bGspIHsNCiAgICBjYXNlIHRydWU6IA0KICAgICAgY2xhc3NOYW1lID0gImJ1bGsgc2hvd0J1bGsiOw0KICAgICAgYnJlYWs7DQoNCiAgICBjYXNlIGZhbHNlOiANCiAgICAgIGNsYXNzTmFtZSA9ICJidWxrIGhpZGVCdWxrIjsNCiAgICAgIGJ1bGtFZGl0QWxsID0gZmFsc2U7DQogICAgICBicmVhazsNCiAgfQ0KDQogIGZvciAodmFyIGkgPSAwOyBpIDwgZWxtLmxlbmd0aDsgaSsrKSB7DQogICAgZWxtW2ldLmNsYXNzTmFtZSA9IGNsYXNzTmFtZTsNCiAgICBlbG1baV0uY2hlY2tlZCA9IGZhbHNlOw0KICB9DQoNCn0NCg0KZnVuY3Rpb24gYnVsa0VkaXRBbGxDaGFubmVscygpIHsNCg0KICB2YXIgYWxsVFIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiaWRfbWFwcGluZyIpLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJUUiIpOw0KDQogIGZvciAodmFyIGkgPSAxOyBpIDwgYWxsVFIubGVuZ3RoOyBpKyspIHsNCiAgICBpZiAoYWxsVFJbaV0uc3R5bGUuZGlzcGxheSAhPSAibm9uZSIpIHsNCiAgICAgIHN3aXRjaChidWxrRWRpdEFsbCkgew0KICAgICAgICBjYXNlIGZhbHNlOiBhbGxUUltpXS5maXJzdENoaWxkLmZpcnN0Q2hpbGQuY2hlY2tlZCA9IHRydWU7IGJyZWFrOw0KICAgICAgICBjYXNlIHRydWU6IGFsbFRSW2ldLmZpcnN0Q2hpbGQuZmlyc3RDaGlsZC5jaGVja2VkID0gZmFsc2U7IGJyZWFrOyANCiAgICAgIH0NCg0KICAgIH0NCiAgICANCiAgfQ0KDQogIGJ1bGtFZGl0QWxsID0gIWJ1bGtFZGl0QWxsOw0KfQ0KDQpmdW5jdGlvbiBzb3J0VGFibGUoY29sdW1tKSB7DQogIC8vY29uc29sZS5sb2coY29sdW1tKTsNCiAgaWYgKGNvbHVtbSA9PSBjb2x1bW5Ub1NvcnQpIHsNCiAgICAvL3JldHVybjsNCiAgfQ0KDQogIHZhciB0YWJsZSAgICAgICA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJpZF9tYXBwaW5nIik7DQogIHZhciB0YWJsZUhlYWQgICA9IHRhYmxlLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJUUiIpWzBdOw0KICB2YXIgdGFibGVJdGVtcyAgPSB0YWJsZUhlYWQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlREIik7DQogIA0KICB2YXIgc29ydE9iaiA9IG5ldyBPYmplY3QoKTsNCiAgdmFyIHgsIHhWYWx1ZTsNCiAgdmFyIHRhYmxlSGVhZGVyDQogIHZhciBzb3J0QnlTdHJpbmcgPSBmYWxzZQ0KDQogIGlmIChjb2x1bW0gPiAwICYmIGNvbHVtblRvU29ydCA+IDApICB7DQogICAgdGFibGVJdGVtc1tjb2x1bW5Ub1NvcnRdLmNsYXNzTmFtZSA9ICJwb2ludGVyIjsNCiAgICB0YWJsZUl0ZW1zW2NvbHVtbV0uY2xhc3NOYW1lID0gInNvcnRUaGlzIjsNCiAgfQ0KDQogIGNvbHVtblRvU29ydCA9IGNvbHVtbTsNCg0KICB2YXIgcm93cyA9IHRhYmxlLnJvd3M7DQoNCiAgaWYgKHJvd3NbMV0gIT0gdW5kZWZpbmVkKSB7DQogICAgdGFibGVIZWFkZXIgPSByb3dzWzBdDQoNCiAgICB4ID0gcm93c1sxXS5nZXRFbGVtZW50c0J5VGFnTmFtZSgiVEQiKVtjb2x1bW1dOw0KICAgIA0KICAgIGZvciAoaSA9IDE7IGkgPCByb3dzLmxlbmd0aDsgaSsrKSB7DQoNCiAgICAgIHggPSByb3dzW2ldLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJURCIpW2NvbHVtbV07DQoNCiAgICAgIHN3aXRjaCh4LmNoaWxkTm9kZXNbMF0udGFnTmFtZS50b0xvd2VyQ2FzZSgpKSB7DQogICAgICAgIGNhc2UgImlucHV0IjoNCiAgICAgICAgICB4VmFsdWUgPSB4LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJJTlBVVCIpWzBdLnZhbHVlLnRvTG93ZXJDYXNlKCk7DQogICAgICAgICAgYnJlYWs7DQoNCiAgICAgICAgY2FzZSAicCI6DQogICAgICAgICAgeFZhbHVlID0geC5nZXRFbGVtZW50c0J5VGFnTmFtZSgiUCIpWzBdLmlubmVyVGV4dC50b0xvd2VyQ2FzZSgpOw0KICAgICAgICAgIGJyZWFrOw0KICAgICAgICANCiAgICAgICAgZGVmYXVsdDogY29uc29sZS5sb2coeC5jaGlsZE5vZGVzWzBdLnRhZ05hbWUpOw0KICAgICAgfQ0KDQogICAgICBpZiAoeFZhbHVlID09ICIiIHx8IHhWYWx1ZSA9PSBOYU4pIHsNCiAgICAgICAgeFZhbHVlID0gaQ0KICAgICAgICBzb3J0T2JqW2ldID0gcm93c1tpXTsNCiAgICAgIA0KICAgICAgfSBlbHNlIHsNCg0KICAgICAgICBzd2l0Y2goaXNOYU4oeFZhbHVlKSkgew0KICAgICAgICAgIGNhc2UgZmFsc2U6IA0KDQogICAgICAgICAgICB4VmFsdWUgPSBwYXJzZUZsb2F0KHhWYWx1ZSk7DQogICAgICAgICAgICBzb3J0T2JqW3hWYWx1ZV0gPSByb3dzW2ldDQogICAgICAgICAgICBicmVhazsNCg0KICAgICAgICAgIGNhc2UgdHJ1ZToNCg0KICAgICAgICAgICAgc29ydEJ5U3RyaW5nID0gdHJ1ZQ0KICAgICAgICAgICAgc29ydE9ialt4VmFsdWUudG9Mb3dlckNhc2UoKSArIGldID0gcm93c1tpXQ0KICAgICAgICAgICAgYnJlYWs7DQoNCiAgICAgICAgfQ0KDQogICAgICB9DQogICAgDQogICAgfQ0KDQogICAgd2hpbGUgKHRhYmxlLmZpcnN0Q2hpbGQpIHsNCiAgICAgIHRhYmxlLnJlbW92ZUNoaWxkKHRhYmxlLmZpcnN0Q2hpbGQpOw0KICAgIH0NCiAgICANCiAgICB2YXIgc29ydFZhbHVlcyA9IGdldE9iaktleXMoc29ydE9iaikNCiAgICBpZiAoc29ydEJ5U3RyaW5nID09IHRydWUpIHsNCiAgICAgIHNvcnRWYWx1ZXMuc29ydCgpDQogICAgfSBlbHNlIHsNCiAgICAgIGZ1bmN0aW9uIHNvcnRGbG9hdChhLCBiKSB7IA0KICAgICAgICByZXR1cm4gYSAtIGI7IA0KICAgICAgfQ0KICAgICAgc29ydFZhbHVlcy5zb3J0KHNvcnRGbG9hdCk7DQogICAgfQ0KDQogICAgdGFibGUuYXBwZW5kQ2hpbGQodGFibGVIZWFkZXIpDQogICAgDQogICAgZm9yICh2YXIgaSA9IDA7IGkgPCBzb3J0VmFsdWVzLmxlbmd0aDsgaSsrKSB7DQogICAgIA0KICAgICAgdGFibGUuYXBwZW5kQ2hpbGQoc29ydE9ialtzb3J0VmFsdWVzW2ldXSkNCg0KICAgIH0NCiAgICANCiAgfQ0KDQp9DQoNCg0KZnVuY3Rpb24gc29ydFRhYmxlX29sZChjb2x1bW0pIHsNCiAgc2hvd0xvYWRpbmdTY3JlZW4odHJ1ZSk7DQogIA0KICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7IA0KDQogICAgdmFyIHRhYmxlLCByb3dzLCBzd2l0Y2hpbmcsIGksIHgsIHksIHNob3VsZFN3aXRjaDsNCiAgICB0YWJsZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJpZF9tYXBwaW5nIik7DQoNCiAgICB2YXIgdGFibGVIZWFkID0gdGFibGUuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlRSIilbMF07DQogICAgdmFyIHRhYmxlSXRlbXMgPSB0YWJsZUhlYWQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlREIik7DQoNCiAgICBpZiAoY29sdW1tID4gMCkgIHsNCiAgICAgIHRhYmxlSXRlbXNbY29sdW1uVG9Tb3J0XS5jbGFzc05hbWUgPSAicG9pbnRlciI7DQogICAgICB0YWJsZUl0ZW1zW2NvbHVtbV0uY2xhc3NOYW1lID0gInNvcnRUaGlzIjsNCiAgICB9DQogICAgDQogICAgY29sdW1uVG9Tb3J0ID0gY29sdW1tOw0KDQogICAgLyoNCiAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRhYmxlSXRlbXMubGVuZ3RoOyBpKyspIHsNCiAgICAgIGlmICh0YWJsZUl0ZW1zW2ldLmNsYXNzTmFtZSAhPSB1bmRlZmluZWQpIHsNCiAgICAgICAgdGFibGVJdGVtc1tpXS5jbGFzc05hbWUgPSAicG9pbnRlciINCiAgICAgIH0NCg0KICAgIH0NCiAgICAqLw0KDQogICAgDQoNCiAgICBjb25zb2xlLmxvZyh0YWJsZUl0ZW1zKTsgDQoNCiAgICBzd2l0Y2hpbmcgPSB0cnVlOw0KICAgIHdoaWxlIChzd2l0Y2hpbmcpIHsNCiAgICAgIHN3aXRjaGluZyA9IGZhbHNlOw0KICAgICAgcm93cyA9IHRhYmxlLnJvd3M7DQogICAgICBmb3IgKGkgPSAxOyBpIDwgKHJvd3MubGVuZ3RoIC0gMSk7IGkrKykgew0KICAgICAgICBzaG91bGRTd2l0Y2ggPSBmYWxzZTsNCg0KICAgICAgICB4ID0gcm93c1tpXS5nZXRFbGVtZW50c0J5VGFnTmFtZSgiVEQiKVtjb2x1bW1dOw0KICAgICAgICB5ID0gcm93c1tpICsgMV0uZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlREIilbY29sdW1tXTsNCg0KICAgICAgICBzd2l0Y2goeC5jaGlsZE5vZGVzWzBdLnRhZ05hbWUudG9Mb3dlckNhc2UoKSkgew0KICAgICAgICAgIGNhc2UgImlucHV0IjoNCiAgICAgICAgICAgIHhWYWx1ZSA9IHguZ2V0RWxlbWVudHNCeVRhZ05hbWUoIklOUFVUIilbMF0udmFsdWUudG9Mb3dlckNhc2UoKTsNCiAgICAgICAgICAgIHlWYWx1ZSA9IHkuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIklOUFVUIilbMF0udmFsdWUudG9Mb3dlckNhc2UoKTsNCiAgICAgICAgICAgIGJyZWFrOw0KDQogICAgICAgICAgY2FzZSAicCI6DQogICAgICAgICAgICB4VmFsdWUgPSB4LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJQIilbMF0uaW5uZXJUZXh0LnRvTG93ZXJDYXNlKCk7DQogICAgICAgICAgICB5VmFsdWUgPSB5LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJQIilbMF0uaW5uZXJUZXh0LnRvTG93ZXJDYXNlKCk7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgICANCiAgICAgICAgICBkZWZhdWx0OiBjb25zb2xlLmxvZyh4LmNoaWxkTm9kZXNbMF0udGFnTmFtZSk7DQogICAgICAgIH0NCg0KICAgICAgICANCiAgICAgICAgc3dpdGNoKGlzTmFOKHhWYWx1ZSkpIHsNCiAgICAgICAgICBjYXNlIGZhbHNlOiB4VmFsdWUgPSBwYXJzZUZsb2F0KHhWYWx1ZSkgOyBicmVhazsNCiAgICAgICAgfQ0KDQogICAgICAgIHN3aXRjaChpc05hTih5VmFsdWUpKSB7DQogICAgICAgICAgY2FzZSBmYWxzZTogeVZhbHVlID0gcGFyc2VGbG9hdCh5VmFsdWUpIDsgYnJlYWs7DQogICAgICAgIH0NCiAgICAgICAgDQoNCiAgICAgICAgaWYgKHhWYWx1ZSA+IHlWYWx1ZSkgew0KICAgICAgICAgIHNob3VsZFN3aXRjaCA9IHRydWU7DQogICAgICAgICAgYnJlYWs7DQogICAgICAgIH0NCg0KICAgICAgfQ0KICAgICAgaWYgKHNob3VsZFN3aXRjaCkgew0KICAgICAgICByb3dzW2ldLnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKHJvd3NbaSArIDFdLCByb3dzW2ldKTsNCiAgICAgICAgc3dpdGNoaW5nID0gdHJ1ZTsNCiAgICAgIH0NCiAgICB9DQogICAgY3JlYXRlU2VhcmNoT2JqKCkNCiAgICANCiAgICBzaG93TG9hZGluZ1NjcmVlbihmYWxzZSk7DQogIH0sIDIwKTsNCg0KfQ0KDQpmdW5jdGlvbiBzaG93WEVQRygpIHsNCiAgdmFyIHVybCA9IGxvY2F0aW9uLnByb3RvY29sICsgIi8vIiArIGxvY2F0aW9uLmhvc3RuYW1lICsgIjoiICsgbG9jYXRpb24ucG9ydCArICIveG1sdHYveHRldmUueG1sIg0KICB2YXIgd2luID0gd2luZG93Lm9wZW4odXJsLCAnX2JsYW5rJyk7DQogIHdpbi5mb2N1cygpOw0KfQ==" - webUI["html/lang/en.json"] = "ew0KICAibWFpbk1lbnUiOg0KICB7DQogICAgIml0ZW0iOg0KICAgIHsNCiAgICAgICJwbGF5bGlzdCI6ICJQbGF5bGlzdCIsDQogICAgICAicG1zSUQiOiAiUE1TIElEIiwNCiAgICAgICJmaWx0ZXIiOiAiRmlsdGVyIiwNCiAgICAgICJ4bWx0diI6ICJYTUxUViIsDQogICAgICAibWFwcGluZyI6ICJNYXBwaW5nIiwNCiAgICAgICJ1c2VycyI6ICJVc2VycyIsDQogICAgICAic2V0dGluZ3MiOiAiU2V0dGluZ3MiLA0KICAgICAgImxvZyI6ICJMb2ciLA0KICAgICAgImxvZ291dCI6ICJMb2dvdXQiDQogICAgfSwNCiAgICAiaGVhZGxpbmUiOg0KICAgIHsNCiAgICAgICJwbGF5bGlzdCI6ICJMb2NhbCBvciByZW1vdGUgcGxheWxpc3RzIiwNCiAgICAgICJmaWx0ZXIiOiAiRmlsdGVyIHBsYXlsaXN0IiwNCiAgICAgICJ4bWx0diI6ICJMb2NhbCBvciByZW1vdGUgWE1MVFYgZmlsZXMiLA0KICAgICAgIm1hcHBpbmciOiAiTWFwIHBsYXlsaXN0IGNoYW5uZWxzIHRvIEVQRyBjaGFubmVscyIsDQogICAgICAidXNlcnMiOiAiVXNlciBtYW5hZ2VtZW50IiwNCiAgICAgICJzZXR0aW5ncyI6ICJTZXR0aW5ncyIsDQogICAgICAibG9nIjogIkxvZyIsDQogICAgICAibG9nb3V0IjogIkxvZ291dCINCiAgICB9DQogIH0sDQogICJjb25maXJtIjoNCiAgew0KICAgICJyZXN0b3JlIjogIkFsbCBkYXRhIHdpbGwgYmUgcmVwbGFjZWQgd2l0aCB0aG9zZSBmcm9tIHRoZSBiYWNrdXAuIFNob3VsZCB0aGUgZmlsZXMgYmUgcmVzdG9yZWQ/Ig0KICB9LA0KICAiYWxlcnQiOg0KICB7DQogICAgImZpbGVMb2FkaW5nRXJyb3IiOiAiRmlsZSBjb3VsZG4ndCBiZSBsb2FkZWQiLA0KICAgICJpbnZhbGlkQ2hhbm5lbE51bWJlciI6ICJJbnZhbGlkIGNoYW5uZWwgbnVtYmVyIiwNCiAgICAibWlzc2luZ0lucHV0IjogIk1pc3NpbmcgaW5wdXQiDQogIH0sDQogICJidXR0b24iOg0KICB7DQogICAgImJhY2siOiAiQmFjayIsDQogICAgImJhY2t1cCI6ICJCYWNrdXAiLA0KICAgICJidWxrRWRpdCI6ICJCdWxrIEVkaXQiLA0KICAgICJjYW5jZWwiOiAiQ2FuY2VsIiwNCiAgICAiZGVsZXRlIjogIkRlbGV0ZSIsDQogICAgImRvbmUiOiAiRG9uZSIsDQogICAgImxvZ2luIjogIkxvZ2luIiwNCiAgICAibmV3IjogIk5ldyIsDQogICAgIm5leHQiOiAiTmV4dCIsDQogICAgInJlc3RvcmUiOiAiUmVzdG9yZSIsDQogICAgInNhdmUiOiAiU2F2ZSIsDQogICAgInNlYXJjaCI6ICJTZWFyY2giLA0KICAgICJ1cGRhdGUiOiAiVXBkYXRlIiwNCiAgICAiY3JhZXRlQWNjb3VudCI6ICJDcmVhdGUgQWNjb3VudCIsDQogICAgInJlc2V0TG9ncyI6ICJSZXNldCBMb2dzIiwNCiAgICAidXBsb2FkTG9nbyI6ICJVcGxvYWQgTG9nbyINCiAgfSwNCiAgImZpbHRlciI6DQogIHsNCiAgICAidGFibGUiOg0KICAgIHsNCiAgICAgICJuYW1lIjogIkZpbHRlciBOYW1lIiwNCiAgICAgICJ0eXBlIjogIkZpbHRlciBUeXBlIiwNCiAgICAgICJmaWx0ZXIiOiAiRmlsdGVyIg0KICAgIH0sDQogICAgImN1c3RvbSI6ICJDdXN0b20iLA0KICAgICJncm91cCI6ICJNM1UgR3JvdXAiLA0KICAgICJuYW1lIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiRmlsdGVyIE5hbWUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIkZpbHRlciBuYW1lIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAiZGVzY3JpcHRpb24iOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJEZXNjcmlwdGlvbiIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiRGVzY3JpcHRpb24iLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJ0eXBlIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiVHlwZSIsDQogICAgICAiZ3JvdXBUaXRsZSI6ICJHcm91cCBUaXRsZSIsDQogICAgICAiY3VzdG9tRmlsdGVyIjogIkN1c3RvbSBGaWx0ZXIiDQogICAgfSwNCiAgICAiY2FzZVNlbnNpdGl2ZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIkNhc2UgU2Vuc2l0aXZlIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJmaWx0ZXJSdWxlIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiRmlsdGVyIFJ1bGUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIlNwb3J0IHtIRH0gIXtFUyxJVH0iLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJmaWx0ZXJHcm91cCI6DQogICAgew0KICAgICAgInRpdGxlIjogIkdyb3VwIFRpdGxlIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIlNlbGVjdCBhIE0zVSBncm91cC4gKENvdW50ZXIpPGJyPkNoYW5naW5nIHRoZSBncm91cCB0aXRsZSBpbiB0aGUgTTNVIGludmFsaWRhdGVzIHRoZSBmaWx0ZXIuIg0KICAgIH0sDQogICAgImluY2x1ZGUiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJJbmNsdWRlIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJGSEQsVUhEIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJDaGFubmVsIG5hbWUgbXVzdCBpbmNsdWRlLjxicj4oQ29tbWEgc2VwYXJhdGVkKSBDb21tYSBtZWFucyBvciINCiAgICB9LA0KICAgICJleGNsdWRlIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiRXhjbHVkZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiRVMsSVQiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIkNoYW5uZWwgbmFtZSBtdXN0IG5vdCBjb250YWluLjxicj4oQ29tbWEgc2VwYXJhdGVkKSBDb21tYSBtZWFucyBvciINCiAgICB9LA0KICAgICJwcmVzZXJ2ZU1hcHBpbmciOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJQcmVzZXJ2ZSBFeGlzdGluZyBNM1U8YnI+Q2hhbm5lbCBOdW1iZXJzIiwNCiAgICAgICJwYWxjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIlByZXNlcnZlIGV4aXN0aW5nIE0zVSBwbGF5bGlzdCBjaGFubmVsIG51bWJlcnM/Ig0KICAgIH0sDQogICAgInN0YXJ0aW5nQ2hhbm5lbCI6DQogICAgew0KICAgICAgInRpdGxlIjogIlN0YXJ0aW5nIENoYW5uZWwgTnVtYmVyIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJkZWZhdWx0TWlzc2luZ0VQRyI6DQogICAgew0KICAgICAgInRpdGxlIjogIkZpbGwgTWlzc2luZyBFUEcgRGF0YSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJXaGVuIHRoZXJlIGlzIG5vIG1hdGNoaW5nIEVQRyBkYXRhIGZvciBjaGFubmVsLCA8YnI+YXV0b2ZpbGwgd2l0aCB4VGVWZSBkdW1teSBFUEcgZGF0YT8iDQogICAgfQ0KDQogIH0sDQogICJwbGF5bGlzdCI6DQogIHsNCiAgICAidGFibGUiOg0KICAgIHsNCiAgICAgICJwbGF5bGlzdCI6ICJQbGF5bGlzdCIsDQogICAgICAidHVuZXIiOiAiVHVuZXIiLA0KICAgICAgImxhc3RVcGRhdGUiOiAiTGFzdCBVcGRhdGUiLA0KICAgICAgImF2YWlsYWJpbGl0eSI6ICJBdmFpbGFiaWxpdHkiLA0KICAgICAgInR5cGUiOiAiVHlwZSIsDQogICAgICAic3RyZWFtcyI6ICJTdHJlYW1zIiwNCiAgICAgICJncm91cFRpdGxlIjogImdyb3VwLXRpdGxlIiwNCiAgICAgICJ0dmdJRCI6ICJ0dmctaWQiLA0KICAgICAgInVuaXF1ZUlEIjogIlVuaXF1ZSBJRCINCiAgICB9LA0KICAgICJwbGF5bGlzdFR5cGUiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJQbGF5bGlzdCB0eXBlIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJ0eXBlIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiVHlwZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAibmFtZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIk5hbWUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIlBsYXlsaXN0IG5hbWUiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJkZXNjcmlwdGlvbiI6DQogICAgew0KICAgICAgInRpdGxlIjogIkRlc2NyaXB0aW9uIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJEZXNjcmlwdGlvbiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgImZpbGVNM1UiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJNM1UgRmlsZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiRmlsZSBwYXRoIG9yIFVSTCBvZiB0aGUgTTNVIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAiZmlsZUhESFIiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJIREhvbWVSdW4gSVAiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIklQIGFkZHJlc3MgYW5kIHBvcnQgKDE5Mi4xNjguMS4xMDo1MDA0KSIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgInR1bmVyIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiVHVuZXIgLyBTdHJlYW1zIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIk51bWJlciBvZiBwYXJhbGxlbCBjb25uZWN0aW9ucyB0aGF0IGNhbiBiZSBlc3RhYmxpc2hlZCB0byB0aGUgcHJvdmlkZXIuIDxicj5Pbmx5IGF2YWlsYWJsZSB3aXRoIGFjdGl2YXRlZCBidWZmZXIuPGJyPk5ldyBzZXR0aW5ncyB3aWxsIG9ubHkgYmUgYXBwbGllZCBhZnRlciBxdWl0dGluZyBhbGwgc3RyZWFtcy4iDQogICAgfQ0KICB9LA0KICAieG1sdHYiOg0KICB7DQogICAgInRhYmxlIjoNCiAgICB7DQogICAgICAiZ3VpZGUiOiAiR3VpZGUiLA0KICAgICAgImxhc3RVcGRhdGUiOiAiTGFzdCBVcGRhdGUiLA0KICAgICAgImF2YWlsYWJpbGl0eSI6ICJBdmFpbGFiaWxpdHkiLA0KICAgICAgImNoYW5uZWxzIjogIkNoYW5uZWxzIiwNCiAgICAgICJwcm9ncmFtcyI6ICJQcm9ncmFtcyINCiAgICB9LA0KICAgICJuYW1lIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiTmFtZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiR3VpZGUgbmFtZSIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgImRlc2NyaXB0aW9uIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiRGVzY3JpcHRpb24iLA0KICAgICAgInBsYWNlaG9sZGVyIjogIkRlc2NyaXB0aW9uIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAiZmlsZVhNTFRWIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiWE1MVFYgRmlsZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiRmlsZSBwYXRoIG9yIFVSTCBvZiB0aGUgWE1MVFYiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9DQogIH0sDQogICJtYXBwaW5nIjoNCiAgew0KICAgICJ0YWJsZSI6DQogICAgew0KICAgICAgImNoTm8iOiAiQ2guIE5vLiIsDQogICAgICAibG9nbyI6ICJMb2dvIiwNCiAgICAgICJjaGFubmVsTmFtZSI6ICJDaGFubmVsIE5hbWUiLA0KICAgICAgInBsYXlsaXN0IjogIlBsYXlsaXN0IiwNCiAgICAgICJncm91cFRpdGxlIjogIkdyb3VwIFRpdGxlIiwNCiAgICAgICJ4bWx0dkZpbGUiOiAiWE1MVFYgRmlsZSIsDQogICAgICAieG1sdHZJRCI6ICJYTUxUViBJRCIsDQogICAgICAidGltZXNoaWZ0IjogIlRpbWVzaGlmdCINCiAgICB9LA0KICAgICJhY3RpdmUiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJBY3RpdmUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgImNoYW5uZWxOYW1lIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiQ2hhbm5lbCBOYW1lIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJkZXNjcmlwdGlvbiI6DQogICAgew0KICAgICAgInRpdGxlIjogIkNoYW5uZWwgRGVzY3JpcHRpb24iLA0KICAgICAgInBsYWNlaG9sZGVyIjogIlVzZWQgYnkgdGhlIER1bW15IGFzIGFuIFhNTCBkZXNjcmlwdGlvbiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgInVwZGF0ZUNoYW5uZWxOYW1lIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiVXBkYXRlIENoYW5uZWwgTmFtZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAiY2hhbm5lbExvZ28iOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJMb2dvIFVSTCIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAidXBkYXRlQ2hhbm5lbExvZ28iOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJVcGRhdGUgQ2hhbm5lbCBMb2dvIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJlcGdDYXRlZ29yeSI6DQogICAgew0KICAgICAgInRpdGxlIjogIkVQRyBDYXRlZ29yeSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAibTN1R3JvdXBUaXRsZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIkdyb3VwIFRpdGxlICh4dGV2ZS5tM3UpIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJ4bWx0dkZpbGUiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJYTUxUViBGaWxlIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJ4bWx0dkNoYW5uZWwiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJYTUxUViBDaGFubmVsIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJ0aW1lc2hpZnQiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJUaW1lc2hpZnQiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIjAiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9DQogIH0sDQogICJ1c2VycyI6DQogIHsNCiAgICAidGFibGUiOg0KICAgIHsNCiAgICAgICJ1c2VybmFtZSI6ICJVc2VybmFtZSIsDQogICAgICAicGFzc3dvcmQiOiAiUGFzc3dvcmQiLA0KICAgICAgIndlYiI6ICJXRUIiLA0KICAgICAgInBtcyI6ICJQTVMiLA0KICAgICAgIm0zdSI6ICJNM1UiLA0KICAgICAgInhtbCI6ICJYTUwiLA0KICAgICAgImFwaSI6ICJBUEkiDQogICAgfSwNCiAgICAidXNlcm5hbWUiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJVc2VybmFtZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiVXNlcm5hbWUiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJwYXNzd29yZCI6DQogICAgew0KICAgICAgInRpdGxlIjogIlBhc3N3b3JkIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJQYXNzd29yZCIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgImNvbmZpcm0iOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJDb25maXJtIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJQYXNzd29yZCBjb25maXJtIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAid2ViIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiV2ViIEFjY2VzcyIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAicG1zIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiUE1TIEFjY2VzcyIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAibTN1IjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiTTNVIEFjY2VzcyIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAieG1sIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiWE1MIEFjY2VzcyIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAiYXBpIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiQVBJIEFjY2VzcyIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfQ0KICB9LA0KICAic2V0dGluZ3MiOg0KICB7DQogICAgImNhdGVnb3J5IjoNCiAgICB7DQogICAgICAiZ2VuZXJhbCI6ICJHZW5lcmFsIiwNCiAgICAgICJmaWxlcyI6ICJGaWxlcyIsDQogICAgICAic3RyZWFtaW5nIjogIlN0cmVhbWluZyIsDQogICAgICAiYmFja3VwIjogIkJhY2t1cCIsDQogICAgICAiYXV0aGVudGljYXRpb24iOiAiQXV0aGVudGljYXRpb24iDQogICAgfSwNCiAgICAidXBkYXRlIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiU2NoZWR1bGUgZm9yIHVwZGF0aW5nIChQbGF5bGlzdCwgWE1MVFYsIEJhY2t1cCkiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIjAwMDAsMTAwMCwyMDAwIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJUaW1lIGluIDI0IGhvdXIgZm9ybWF0ICgwODAwID0gODowMCBhbSkuIE1vcmUgdGltZXMgY2FuIGJlIGVudGVyZWQgY29tbWEgc2VwYXJhdGVkLiBMZWF2ZSB0aGlzIGZpZWxkIGVtcHR5IGlmIG5vIHVwZGF0ZXMgYXJlIHRvIGJlIGNhcnJpZWQgb3V0LiINCiAgICB9LA0KICAgICJhcGkiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJBUEkgSW50ZXJmYWNlIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJWaWEgQVBJIGludGVyZmFjZSBpdCBpcyBwb3NzaWJsZSB0byBzZW5kIGNvbW1hbmRzIHRvIHhUZVZlLiBBUEkgZG9jdW1lbnRhdGlvbiBpcyA8YSBocmVmPSdodHRwczovL2dpdGh1Yi5jb20veHRldmUtcHJvamVjdC94VGVWZS1Eb2N1bWVudGF0aW9uL2Jsb2IvbWFzdGVyL2VuL2NvbmZpZ3VyYXRpb24ubWQjYXBpJz5oZXJlPC9hPiINCiAgICB9LA0KICAgICJlcGdTb3VyY2UiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJFUEcgU291cmNlIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJQTVM6PGJyPi0gVXNlIEVQRyBkYXRhIGZyb20gUGxleCBvciBFbWJ5IDxicj48YnI+WEVQRzo8YnI+LSBVc2Ugb2Ygb25lIG9yIG1vcmUgWE1MVFYgZmlsZXM8YnI+LSBDaGFubmVsIG1hbmFnZW1lbnQ8YnI+LSBNM1UgLyBYTUxUViBleHBvcnQgKEhUVFAgbGluayBmb3IgSVBUViBhcHBzKSINCiAgICB9LA0KICAgICJ0dW5lciI6DQogICAgew0KICAgICAgInRpdGxlIjogIk51bWJlciBvZiBUdW5lcnMiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIk51bWJlciBvZiBwYXJhbGxlbCBjb25uZWN0aW9ucyB0aGF0IGNhbiBiZSBlc3RhYmxpc2hlZCB0byB0aGUgcHJvdmlkZXIuPGJyPkF2YWlsYWJsZSBmb3I6IFBsZXgsIEVtYnkgKEhESFIpLCBNM1UgKHdpdGggYWN0aXZlIGJ1ZmZlcikuPGJyPkFmdGVyIGEgY2hhbmdlLCB4VGVWZSBtdXN0IGJlIGRlbGV0ZSBpbiB0aGUgUGxleCAvIEVtYnkgRFZSIHNldHRpbmdzIGFuZCBzZXQgdXAgYWdhaW4uIg0KICAgIH0sDQogICAgImZpbGVzVXBkYXRlIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiVXBkYXRlcyBhbGwgZmlsZXMgYXQgc3RhcnR1cCIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiVXBkYXRlcyBhbGwgcGxheWxpc3RzLCB0dW5lciBhbmQgWE1MVFYgZmlsZXMgYXQgc3RhcnR1cC4iDQogICAgfSwNCiAgICAiY2FjaGVJbWFnZXMiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJJbWFnZSBDYWNoaW5nIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJBbGwgaW1hZ2VzIGZyb20gdGhlIFhNTFRWIGZpbGUgYXJlIGNhY2hlZCwgYWxsb3dpbmcgZmFzdGVyIHJlbmRlcmluZyBvZiB0aGUgZ3JpZCBpbiB0aGUgY2xpZW50Ljxicj5Eb3dubG9hZGluZyB0aGUgaW1hZ2VzIG1heSB0YWtlIGEgd2hpbGUgYW5kIHdpbGwgYmUgZG9uZSBpbiB0aGUgYmFja2dyb3VuZC4iDQogICAgfSwNCiAgICAicmVwbGFjZUVtcHR5SW1hZ2VzIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiUmVwbGFjZSBtaXNzaW5nIHByb2dyYW0gaW1hZ2VzIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJJZiB0aGUgcG9zdGVyIGluIHRoZSBYTUxUViBwcm9ncmFtIGlzIG1pc3NpbmcsIHRoZSBjaGFubmVsIGxvZ28gd2lsbCBiZSB1c2VkLiINCiAgICB9LA0KICAgICJ4dGV2ZUF1dG9VcGRhdGUiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJBdXRvbWF0aWMgdXBkYXRlIG9mIHhUZVZlIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJJZiBhIG5ldyB2ZXJzaW9uIG9mIHhUZVZlIGlzIGF2YWlsYWJsZSwgaXQgd2lsbCBiZSBhdXRvbWF0aWNhbGx5IGluc3RhbGxlZC4gVGhlIHVwZGF0ZXMgYXJlIGRvd25sb2FkZWQgZnJvbSBHaXRIdWIuIg0KICAgIH0sDQogICAgInN0cmVhbUJ1ZmZlcmluZyI6DQogICAgew0KICAgICAgInRpdGxlIjogIlN0cmVhbSBCdWZmZXIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIkZ1bmN0aW9ucyBvZiB0aGUgYnVmZmVyOjxicj4tIFRoZSBzdHJlYW0gaXMgcGFzc2VkIGZyb20geFRlVmUsIEZGbXBlZyBvciBWTEMgdG8gUGxleCwgRW1ieSBvciBNM1UgUGxheWVyPGJyPi0gU21hbGwgamVya2luZyBvZiB0aGUgc3RyZWFtcyBjYW4gYmUgY29tcGVuc2F0ZWQ8YnI+LSBITFMgLyBNM1U4IHN1cHBvcnQ8YnI+LSBSVFAgLyBSVFBTIHN1cHBvcnQgKG9ubHkgRkZtcGVnIG9yIFZMQyk8YnI+LSBSZS1zdHJlYW1pbmc8YnI+LSBTZXBhcmF0ZSB0dW5lciBsaW1pdCBmb3IgZWFjaCBwbGF5bGlzdCIsDQogICAgICAiaW5mb19mYWxzZSI6ICJObyBCdWZmZXIgKENsaWVudCBjb25uZWN0cyB0byB0aGUgc3RyZWFtaW5nIHNlcnZlcikiLA0KICAgICAgImluZm9feHRldmUiOiAieFRlVmUgY29ubmVjdHMgdG8gdGhlIHN0cmVhbWluZyBzZXJ2ZXIiLA0KICAgICAgImluZm9fZmZtcGVnIjogIkZGbXBlZyBjb25uZWN0cyB0byB0aGUgc3RyZWFtaW5nIHNlcnZlciIsDQogICAgICAiaW5mb192bGMiOiAiVkxDIGNvbm5lY3RzIHRvIHRoZSBzdHJlYW1pbmcgc2VydmVyIg0KDQogICAgfSwNCiAgICAidWRweHkiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJVRFB4eSBhZGRyZXNzIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJUaGUgYWRkcmVzcyBvZiB5b3VyIFVEUHh5IHNlcnZlci4gSWYgc2V0LCBhbmQgdGhlIGNoYW5uZWwgVVJMcyBpbiB0aGUgbTN1IGlzIG11bHRpY2FzdCwgeFRlVmUgd2lsbCByZXdyaXRlIGl0IHNvIHRoYXQgaXQgaXMgYWNjZXNzZWQgdmlhIHRoZSBVRFB4eSBzZXJ2aWNlLiIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiaG9zdDpwb3J0Ig0KICAgIH0sDQogICAgImZmbXBlZ1BhdGgiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJGRm1wZWcgQmluYXJ5IFBhdGgiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIlBhdGggdG8gRkZtcGVnIGJpbmFyeS4iLA0KICAgICAgInBsYWNlaG9sZGVyIjogIi9wYXRoL3RvL2ZmbXBlZyINCiAgICB9LA0KICAgICJmZm1wZWdPcHRpb25zIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiRkZtcGVnIE9wdGlvbnMiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIkZGbXBlZyBvcHRpb25zLjxicj5Pbmx5IGNoYW5nZSBpZiB5b3Uga25vdyB3aGF0IHlvdSBhcmUgZG9pbmcuPGJyPkxlYXZlIGJsYW5rIHRvIHNldCBkZWZhdWx0IHNldHRpbmdzLiIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiTGVhdmUgYmxhbmsgdG8gc2V0IGRlZmF1bHQgc2V0dGluZ3MiDQogICAgfSwNCiAgICAidmxjUGF0aCI6DQogICAgew0KICAgICAgInRpdGxlIjogIlZMQyAvIENWTEMgQmluYXJ5IFBhdGgiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIlBhdGggdG8gVkxDIC8gQ1ZMQyBiaW5hcnkuIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIvcGF0aC90by9jdmxjIg0KICAgIH0sDQogICAgInZsY09wdGlvbnMiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJWTEMgLyBDVkxDIE9wdGlvbnMiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIlZMQyAvIENWTEMgb3B0aW9ucy48YnI+T25seSBjaGFuZ2UgaWYgeW91IGtub3cgd2hhdCB5b3UgYXJlIGRvaW5nLjxicj5MZWF2ZSBibGFuayB0byBzZXQgZGVmYXVsdCBzZXR0aW5ncy4iLA0KICAgICAgInBsYWNlaG9sZGVyIjogIkxlYXZlIGJsYW5rIHRvIHNldCBkZWZhdWx0IHNldHRpbmdzIg0KICAgIH0sDQogICAgImJ1ZmZlclNpemUiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJCdWZmZXIgU2l6ZSIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiQnVmZmVyIHNpemUgaW4gTUIuPGJyPk0zVTg6IElmIHRoZSBUUyBzZWdtZW50IHNtYWxsZXIgdGhlbiB0aGUgYnVmZmVyIHNpemUsIHRoZSBmaWxlIHNpemUgb2YgdGhlIHNlZ21lbnQgaXMgdXNlZC4iDQogICAgfSwNCiAgICAiYnVmZmVyVGltZW91dCI6DQogICAgew0KICAgICAgInRpdGxlIjogIlRpbWVvdXQgZm9yIG5ldyBjbGllbnQgY29ubmVjdGlvbnMiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIlRoZSB4VGVWZSBidWZmZXIgd2FpdHMgdW50aWwgbmV3IGNsaWVudCBjb25uZWN0aW9ucyBhcmUgZXN0YWJsaXNoZWQuIEhlbHBmdWwgZm9yIGZhc3QgY2hhbm5lbCBzd2l0Y2hpbmcuIFZhbHVlIGluIG1pbGxpc2Vjb25kcy4iLA0KICAgICAgInBsYWNlaG9sZGVyIjogIjEwMCINCiAgICB9LA0KICAgICJ1c2VyQWdlbnQiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJVc2VyIEFnZW50IiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJVc2VyIEFnZW50IGZvciBIVFRQIHJlcXVlc3RzLiBGb3IgZXZlcnkgSFRUUCBjb25uZWN0aW9uLCB0aGlzIHZhbHVlIGlzIHVzZWQgZm9yIHRoZSB1c2VyIGFnZW50LiBTaG91bGQgb25seSBiZSBjaGFuZ2VkIGlmIHhUZVZlIGlzIGJsb2NrZWQuIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJ4VGVWZSINCiAgICB9LA0KICAgICJiYWNrdXBQYXRoIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiTG9jYXRpb24gZm9yIGF1dG9tYXRpYyBiYWNrdXBzIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIvbW50L2RhdGEvYmFja3VwL3h0ZXZlLyIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiQmVmb3JlIGFueSB1cGRhdGUgb2YgdGhlIHByb3ZpZGVyIGRhdGEgYnkgdGhlIHNjaGVkdWxlLCB4VGVWZSBjcmVhdGVzIGEgYmFja3VwLiBUaGUgcGF0aCBmb3IgdGhlIGF1dG9tYXRpYyBiYWNrdXBzIGNhbiBiZSBjaGFuZ2VkLiB4VGVWZSByZXF1aXJlcyB3cml0ZSBwZXJtaXNzaW9uIGZvciB0aGlzIGZvbGRlci4iDQogICAgfSwNCiAgICAidGVtcFBhdGgiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJMb2NhdGlvbiBmb3IgdGhlIHRlbXBvcmFyeSBmaWxlcyIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiL3RtcC94dGV2ZS8iLA0KICAgICAgImRlc2NyaXB0aW9uIjogIkxvY2F0aW9uIGZvciB0aGUgYnVmZmVyIGZpbGVzLiINCiAgICB9LA0KICAgICJiYWNrdXBLZWVwIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiTnVtYmVyIG9mIGJhY2t1cHMgdG8ga2VlcCIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiTnVtYmVyIG9mIGJhY2t1cHMgdG8ga2VlcC4gT2xkZXIgYmFja3VwcyBhcmUgYXV0b21hdGljYWxseSBkZWxldGVkLiINCiAgICB9LA0KICAgICJhdXRoZW50aWNhdGlvbldFQiI6DQogICAgew0KICAgICAgInRpdGxlIjogIldFQiBBdXRoZW50aWNhdGlvbiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiQWNjZXNzIHRvIHRoZSB3ZWIgaW50ZXJmYWNlIG9ubHkgcG9zc2libGUgd2l0aCBjcmVkZW50aWFscy4iDQogICAgfSwNCiAgICAiYXV0aGVudGljYXRpb25QTVMiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJQTVMgQXV0aGVudGljYXRpb24iLA0KICAgICAgImRlc2NyaXB0aW9uIjogIlBsZXggcmVxdWVzdHMgYXJlIG9ubHkgcG9zc2libGUgd2l0aCBhdXRoZW50aWNhdGlvbi4gPGJyPjxiPldhcm5pbmchISE8L2I+IEFmdGVyIGFjdGl2YXRpbmcgdGhpcyBmdW5jdGlvbiB4VGVWZSBtdXN0IGJlIGRlbGV0ZSBpbiB0aGUgUE1TIERWUiBzZXR0aW5ncyBhbmQgc2V0IHVwIGFnYWluLiINCiAgICB9LA0KICAgICJhdXRoZW50aWNhdGlvbk0zVSI6DQogICAgew0KICAgICAgInRpdGxlIjogIk0zVSBBdXRoZW50aWNhdGlvbiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiRG93bmxvYWRpbmcgdGhlIHh0ZXZlLm0zdSBmaWxlIHZpYSBhbiBIVFRQIHJlcXVlc3QgaXMgb25seSBwb3NzaWJsZSB3aXRoIGF1dGhlbnRpY2F0aW9uLiINCiAgICB9LA0KICAgICJhdXRoZW50aWNhdGlvblhNTCI6DQogICAgew0KICAgICAgInRpdGxlIjogIlhNTCBBdXRoZW50aWNhdGlvbiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiRG93bmxvYWRpbmcgdGhlIHh0ZXZlLnhtbCBmaWxlIHZpYSBhbiBIVFRQIHJlcXVlc3QgaXMgb25seSBwb3NzaWJsZSB3aXRoIGF1dGhlbnRpY2F0aW9uIg0KICAgIH0sDQogICAgImF1dGhlbnRpY2F0aW9uQVBJIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiQVBJIEF1dGhlbnRpY2F0aW9uIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJBY2Nlc3MgdG8gdGhlIEFQSSBpbnRlcmZhY2UgaXMgb25seSBwb3NzaWJsZSB3aXRoIGF1dGhlbnRpY2F0aW9uLiINCiAgICB9DQogIH0sDQogICJ3aXphcmQiOg0KICB7DQogICAgImVwZ1NvdXJjZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIkVQRyBTb3VyY2UiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIlBNUzo8YnI+LSBVc2UgRVBHIGRhdGEgZnJvbSBQbGV4IG9yIEVtYnkgPGJyPjxicj5YRVBHOjxicj4tIFVzZSBvZiBvbmUgb3IgbW9yZSBYTUxUViBmaWxlczxicj4tIENoYW5uZWwgbWFuYWdlbWVudDxicj4tIE0zVSAvIFhNTFRWIGV4cG9ydCAoSFRUUCBsaW5rIGZvciBJUFRWIGFwcHMpIg0KICAgIH0sDQogICAgInR1bmVyIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiTnVtYmVyIG9mIHR1bmVycyIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiTnVtYmVyIG9mIHBhcmFsbGVsIGNvbm5lY3Rpb25zIHRoYXQgY2FuIGJlIGVzdGFibGlzaGVkIHRvIHRoZSBwcm92aWRlci48YnI+QXZhaWxhYmxlIGZvcjogUGxleCwgRW1ieSAoSERIUiksIE0zVSAod2l0aCBhY3RpdmUgYnVmZmVyKS48YnI+QWZ0ZXIgYSBjaGFuZ2UsIHhUZVZlIG11c3QgYmUgZGVsZXRlIGluIHRoZSBQbGV4IC8gRW1ieSBEVlIgc2V0dGluZ3MgYW5kIHNldCB1cCBhZ2Fpbi4iDQogICAgfSwNCiAgICAibTN1IjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiTTNVIFBsYXlsaXN0IiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJGaWxlIHBhdGggb3IgVVJMIG9mIHRoZSBNM1UiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIkxvY2FsIG9yIHJlbW90ZSBwbGF5bGlzdHMiDQogICAgfSwNCiAgICAieG1sdHYiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJYTUxUViBGaWxlIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJGaWxlIHBhdGggb3IgVVJMIG9mIHRoZSBYTUxUViIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiTG9jYWwgb3IgcmVtb3RlIFhNTFRWIGZpbGUiDQogICAgfQ0KICB9LA0KICAibG9naW4iOg0KICB7DQogICAgImZhaWxlZCI6ICJVc2VyIGF1dGhlbnRpY2F0aW9uIGZhaWxlZCIsDQogICAgImhlYWRsaW5lIjogIkxvZ2luIiwNCiAgICAidXNlcm5hbWUiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJVc2VybmFtZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiVXNlcm5hbWUiDQogICAgfSwNCiAgICAicGFzc3dvcmQiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJQYXNzd29yZCIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiUGFzc3dvcmQiDQogICAgfQ0KICB9LA0KICAiYWNjb3VudCI6DQogIHsNCiAgICAiZmFpbGVkIjogIlBhc3N3b3JkIGRvZXMgbm90IG1hdGNoIiwNCiAgICAiaGVhZGxpbmUiOiAiQ3JlYXRlIHVzZXIgYWNjb3VudCIsDQogICAgInVzZXJuYW1lIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiVXNlcm5hbWUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIlVzZXJuYW1lIg0KICAgIH0sDQogICAgInBhc3N3b3JkIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiUGFzc3dvcmQiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIlBhc3N3b3JkIg0KICAgIH0sDQogICAgImNvbmZpcm0iOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJDb25maXJtIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJDb25maXJtIg0KICAgIH0NCiAgfQ0KfQ==" - webUI["html/css/screen.css"] = "bmF2IGltZyB7DQogIGRpc3BsYXk6IGJsb2NrOw0KICBtYXgtaGVpZ2h0OiAyMHB4Ow0KICBtYXgtd2lkdGg6IDIwcHg7DQogIGZsb2F0OiBsZWZ0Ow0KfQ0KDQpuYXYgcCB7DQogIHRleHQtYWxpZ246IGxlZnQ7DQogIHBhZGRpbmc6IDBweCAzMHB4Ow0KfQ0KDQojbGF5b3V0IHsNCiAgZGlzcGxheTogYmxvY2s7DQogIGhlaWdodDogMTAwJTsNCn0NCg0KDQoubGF5b3V0LWxlZnQgew0KICBkaXNwbGF5OiBibG9jazsNCiAgbWluLXdpZHRoOiAxNTBweDsNCiAgbWF4LXdpZHRoOiAyMCU7DQogIGJhY2tncm91bmQtY29sb3I6ICMxMTE7DQogIGhlaWdodDogaW5oZXJpdDsNCiAgZmxvYXQ6IGxlZnQ7DQp9DQoNCi5sYXlvdXQtcmlnaHQgew0KICBkaXNwbGF5OiBibG9jazsNCiAgYmFja2dyb3VuZC1jb2xvcjogIzQ0NDsNCn0NCg0KI21lbnUtd3JhcHBlciB7DQogIGhlaWdodDogMTAwJTsNCn0NCg0KDQojbG9nbyB7DQogIGRpc3BsYXk6IGJsb2NrOw0KICBtaW4td2lkdGg6IDE4MHB4Ow0KICB3aWR0aDogMTAwJTsNCiAgaGVpZ2h0OiAxMDBweDsNCiAgYmFja2dyb3VuZDogdXJsKCIuLi9pbWcvbG9nb193XzYwMHgyMDAucG5nIik7DQogIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7DQogIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjsgDQogIGJhY2tncm91bmQtc2l6ZTogMTAwJTsNCn0NCg0KDQojcGFnZSB7DQogIG1heC13aWR0aDogOTUwcHg7DQogIG1hcmdpbjogYXV0bzsNCiAgYmFja2dyb3VuZC1jb2xvcjogIzQ0NDsNCg0KICAvKg0KICBoZWlnaHQ6IC13ZWJraXQtY2FsYygxMDAlIC0gMTMwcHgpOw0KICBoZWlnaHQ6IC1tb3otY2FsYygxMDAlIC0gMTMwcHgpOw0KICBoZWlnaHQ6IGNhbGMoMTAwJSAtIDEzMHB4KTsNCiAgKi8NCiAgDQogIG1pbi1oZWlnaHQ6IC13ZWJraXQtY2FsYygxMDAlIC0gMTIwcHgpOw0KICBtaW4taGVpZ2h0OiAtbW96LWNhbGMoMTAwJSAtIDEyMHB4KTsNCiAgbWluLWhlaWdodDogY2FsYygxMDAlIC0gMTIwcHgpOw0KICANCiAgDQogIGJveC1zaGFkb3c6IDBweCA1cHggNXB4ICMyMjI7DQogIA0KfQ0KDQojdWlTZXR0aW5nIHsNCiAgZmxvYXQ6IHJpZ2h0Ow0KICBtYXJnaW4tcmlnaHQ6IDI1cHg7DQp9DQoNCiNib3ggaW5wdXRbdHlwZT10ZXh0XSwgI2JveCBpbnB1dFt0eXBlPXBhc3N3b3JkXSB7DQogIHdpZHRoOiAtd2Via2l0LWNhbGMoMTAwJSAtIDIwcHgpOw0KICB3aWR0aDogLW1vei1jYWxjKDEwMCUgLSAyMHB4KTsNCiAgd2lkdGg6IGNhbGMoMTAwJSAtIDIwcHgpOw0KfQ0KDQojYm94IGlucHV0W3R5cGU9c3VibWl0XXsNCiAgbWFyZ2luOiA1MHB4IGF1dG87DQp9DQoNCiNzZXR0aW5ncyB7DQogIGRpc3BsYXk6IGJsb2NrOw0KICBwYWRkaW5nOiAxMHB4IDEwcHg7DQp9DQoNCiNzZXR0aW5ncyBoNSB7DQogIG1hcmdpbjogNTBweCAwcHggMTBweCAwcHg7DQp9DQoNCiNjb250ZW50LWludGVyYWN0aW9uIC5zZWFyY2ggew0KICB3aWR0aDogMjAwcHg7DQogIGJvcmRlcjogMXB4IHNvbGlkICMwMDA7DQogIHBhZGRpbmc6IDlweDsNCiAgYmFja2dyb3VuZC1jb2xvcjogIzMzMzsNCiAgbWFyZ2luOiAxMHB4Ow0KICBmbG9hdDogcmlnaHQ7DQogIGJvcmRlci1yYWRpdXM6IDNweDsNCg0KfQ0KDQojbXlTdHJlYW1zIHsNCiAgcG9zaXRpb246IGZpeGVkOw0KICBib3R0b206IDBweDsNCiAgYmFja2dyb3VuZC1jb2xvcjogIzExMTsNCiAgd2lkdGg6IDEwMCU7DQogIG1heC13aWR0aDogOTUwcHg7DQoNCiAgLyoNCiAgbWF4LWhlaWdodDogMTAwcHg7DQogICovDQogIG1hcmdpbi1ib3R0b206IDBweDsNCn0NCg0KI215U3RyZWFtcyBpbWcgew0KICB3aWR0aDogNCU7DQogIHBhZGRpbmc6IDJweCA1cHg7DQogIGN1cnNvcjogcG9pbnRlcjsNCiAgZmxvYXQ6IHJpZ2h0Ow0KfQ0KDQojc2V0dGluZ3MtZm9vdGVyIHsNCg0KfQ0KDQoNCi8qIFdpemFyZCovDQojYm94IHsNCiAgYmFja2dyb3VuZC1jb2xvcjogIzQ0NDsNCiAgbWluLWhlaWdodDogNDAwcHg7DQogIA0KICBkaXNwbGF5OiBmbGV4Ow0KICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOw0KICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47DQp9DQoNCiNib3ggcHsNCiAgcGFkZGluZzogMTBweCAwcHg7DQp9DQoNCiNib3gtZm9vdGVyIHsNCiAgbWFyZ2luLXRvcDogYXV0bzsNCn0NCg0KI2JveC1mb290ZXIgew0KICBtYXJnaW46IGF1dG87DQogIHBhZGRpbmc6IDEwcHg7DQp9DQoNCiNoZWFkbGluZSB7DQogIGJhY2tncm91bmQtY29sb3I6ICMyMjI7DQogIGJvcmRlci1ib3R0b206IHNvbGlkIDJweCAjMjIyOw0KICB0cmFuc2l0aW9uOiBhbGwgMC41czsNCiAgcGFkZGluZzogMTBweCAwcHg7DQogIGRpc3BsYXk6IGJsb2NrOw0KfQ0KDQojY29udGVudCB7DQogIGRpc3BsYXk6IGJsb2NrOw0KICBvdmVyZmxvdzogYXV0bzsNCiAgcGFkZGluZzogMTBweDsNCn0NCg0KLyogLS0tICovDQoNCg0KI2NsaWVudEluZm8sICNhY3RpdmVTdHJlYW1zLCAjaW5hY3RpdmVTdHJlYW1zIHsNCiAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZTsNCiAgZGlzcGxheTogYmxvY2s7DQogIGZvbnQtc2l6ZTogOXB4Ow0KICBiYWNrZ3JvdW5kLWNvbG9yOiAjMTExOw0KICBjb2xvcjogIzAwRTZGRjsNCiAgYm9yZGVyLWJvdHRvbTogc29saWQgMHB4OzsNCiAgcGFkZGluZzogMHB4Ow0KICBsZXR0ZXItc3BhY2luZzogMXB4Ow0KICBvdmVyZmxvdy14OiBoaWRkZW47DQogIGJvcmRlci1zcGFjaW5nOiA0cHggNHB4Ow0KICBib3JkZXItYm90dG9tOiBzb2xpZCAxcHggIzQ0NDsNCn0NCg0KI215U3RyZWFtc0JveCB7DQogIHBvc2l0aW9uOiByZWxhdGl2ZTsNCiAgcGFkZGluZzogMHB4Ow0KICAvKmhlaWdodDogMTAwcHg7Ki8NCiAgbWF4LWhlaWdodDogMTUwcHg7DQogIGJhY2tncm91bmQtY29sb3I6ICMxMTE7DQogIGNvbG9yOiB3aGl0ZTsNCiAgZGlzcGxheTpmbGV4Ow0KICBqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyOw0KICBhbGlnbi1pdGVtczpjZW50ZXI7DQp9DQoNCiNvcGVuU3RyZWFtcyB7DQogIHdpZHRoOiAyMHB4Ow0KICBoZWlnaHQ6IDIwcHg7DQogIGN1cnNvcjogcG9pbnRlcjsNCiAgZmxvYXQ6IHJpZ2h0Ow0KICBwb3NpdGlvbjogYWJzb2x1dGU7DQogIHJpZ2h0OiAwcHg7DQogIGJvdHRvbTogMHB4Ow0KICBiYWNrZ3JvdW5kOiB1cmwoIi4uL2ltZy90b3VjaC5wbmciKTsNCiAgYmFja2dyb3VuZC1jb2xvcjogIzExMTsNCiAgDQogIGJhY2tncm91bmQtcG9zaXRpb246IGJvdHRvbSByaWdodDsgIA0KfQ0KDQojYWxsU3RyZWFtcyB7DQogIHdpZHRoOiAxMDAlOw0KICBoZWlnaHQ6IDEwMCU7DQogIHBhZGRpbmc6IDJweDsgICAgIA0KfQ0KDQojYWN0aXZlU3RyZWFtcywgI2luYWN0aXZlU3RyZWFtcyB7DQogIG92ZXJmbG93LXk6IHNjcm9sbDsNCiAgd2lkdGg6IDUwJTsNCiAgbWF4LWhlaWdodDogMTAwcHg7DQogIGZsb2F0OiBsZWZ0Ow0KfQ0KDQojYWN0aXZlU3RyZWFtcyAudGRLZXksICNpbmFjdGl2ZVN0cmVhbXMgLnRkS2V5IHsNCiAgd2lkdGg6IDc1cHg7DQp9DQoNCg0KDQoNCiNpbmFjdGl2ZVN0cmVhbXMgLnRkS2V5IHsNCiAgY29sb3I6IHJlZDsNCn0NCg0KI2NsaWVudEluZm8gLnRkVmFsLCAjbG9nSW5mbyAudGRWYWwsICNhY3RpdmVTdHJlYW1zIC50ZFZhbCwgI2luYWN0aXZlU3RyZWFtcyAudGRWYWwsICNtYXBwaW5nSW5mbyAudGRWYWx7DQogIGNvbG9yOiAjYWFhOw0KICB3aGl0ZS1zcGFjZTogaW5oZXJpdDsNCn0NCg0KI2JveC13cmFwcGVyIHsNCiAgZGlzcGxheTogaW5saW5lLWJsb2NrOw0KICB3aWR0aDogMTAwJTsNCiAgDQogIG92ZXJmbG93LXk6IHNjcm9sbDsNCn0NCg0KI2NvbnRlbnRfdGFibGUsICNtYXBwaW5nLWRldGFpbC10YWJsZSwgI2NvbnRlbnRfdGFibGUgew0KICBkaXNwbGF5OiB0YWJsZTsNCiAgDQogIGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7DQogIG92ZXJmbG93LXk6IHNjcm9sbDsNCiAgd2lkdGg6IDEwMCU7DQp9DQoNCg0KI2NvbnRlbnRfdGFibGUgLmNvbnRlbnRfdGFibGVfaGVhZGVyIHsNCiAgYmFja2dyb3VuZC1jb2xvcjogIzMzMzsNCiAgaGVpZ2h0OiA1MHB4Ow0KICBib3JkZXItYm90dG9tOiBzb2xpZCAxcHggIzExMTsNCiAgYm9yZGVyLWxlZnQ6IHNvbGlkIDNweCAjMzMzOw0KICBjdXJzb3I6IGF1dG87DQoNCn0NCg0KDQp0Ym9keSB7DQogIHdpZHRoOiAxMDAlOw0KfQ0KDQoNCi50YWJsZUVsbGlwc2lzIHsNCiAgd2lkdGg6IDE1MHB4Ow0KICBvdmVyZmxvdzogaGlkZGVuOw0KICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsNCiAgd2hpdGUtc3BhY2U6IG5vd3JhcDsNCn0NCg0KI2NvbnRlbnRfdGFibGUgaW1nIHsNCiAgZGlzcGxheTogYmxvY2s7DQogIG1heC1oZWlnaHQ6IDI4cHg7DQogIG1hcmdpbi1sZWZ0OiBhdXRvOw0KICBtYXJnaW4tcmlnaHQ6IGF1dG87DQogIG1heC13aWR0aDogMzBweDsNCn0NCg0KI2NvbnRlbnRfdGFibGUgdHJ7DQogIGJvcmRlci1sZWZ0OiBzb2xpZCAzcHggNDQ0Ow0KICBib3JkZXItYm90dG9tOiBzb2xpZCAxcHggIzMzMzsNCiAgY3Vyc29yOiBwb2ludGVyOw0KfQ0KDQojY29udGVudF90YWJsZSB0cjpob3ZlciB7DQogIGJhY2tncm91bmQtY29sb3I6ICMzMzM7DQp9DQoNCiNjb250ZW50X3RhYmxlIHRkIHsNCg0KICBwYWRkaW5nOiAwcHggMnB4Ow0KfQ0KDQojY29udGVudF90YWJsZSBpbnB1dFt0eXBlPXRleHRdew0KICB3aWR0aDogODAlOw0KICBtaW4td2lkdGg6IDM1cHg7DQogIG1heC13aWR0aDogNjBweDsNCiAgYm9yZGVyOiAwcHg7DQogIGJhY2tncm91bmQtY29sb3I6ICMzMzM7DQogIG1hcmdpbi1sZWZ0OiA1cHg7DQogIHRleHQtYWxpZ246IGxlZnQ7DQp9DQoNCiNjb250ZW50X3RhYmxlIGlucHV0W3R5cGU9Y2hlY2tib3hdew0KICBtYXgtd2lkdGg6IDI1cHg7DQogIG1hcmdpbjogYXV0bzsNCn0NCg0KDQouc2hvd0J1bGsgew0KICBkaXNwbGF5OiBibG9jazsNCn0NCg0KLmhpZGVCdWxrIHsNCiAgZGlzcGxheTogbm9uZTsNCn0NCg0KLm5vQnVsayB7DQoNCn0NCg0KI2NvbnRlbnRfdGFibGUgdHIuYWN0aXZlRVBHew0KICBib3JkZXItbGVmdDogc29saWQgM3B4IGxhd25ncmVlbjsNCn0NCg0KI2NvbnRlbnRfdGFibGUgdHIubm90QWN0aXZlRVBHew0KICBib3JkZXItbGVmdDogc29saWQgM3B4IHJlZDsNCn0NCg0KDQojbG9nU2NyZWVuIHB7DQogIHdoaXRlLXNwYWNlOiBwcmU7DQogIGZvbnQtc2l6ZTogMTBweDsNCiAgLyoNCiAgbGluZS1oZWlnaHQ6IDEuNmVtOw0KICBmb250LWZhbWlseTogIkFyaWFsIiwgc2Fucy1zZXJpZjsNCiAgKi8NCiAgbGV0dGVyLXNwYWNpbmc6IDFweDsNCiAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZTsgDQogIGZvbnQtc2l6ZTogMTJweDsgDQogIGZvbnQtc3R5bGU6IG5vcm1hbDsgDQogIGZvbnQtdmFyaWFudDogbm9ybWFsOyANCiAgbGluZS1oZWlnaHQ6IDEuNmVtOyANCn0NCg0KI3BvcHVwIHsNCiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjQpOw0KICBwb3NpdGlvbjogZml4ZWQ7DQogIGxlZnQ6IDBweDsNCiAgd2lkdGg6IDEwMCU7DQogIHotaW5kZXg6IDEwMDsNCiAgaGVpZ2h0OiAxMDAlOw0KfQ0KDQojbWFwcGluZy1kZXRhaWwsICN1c2VyLWRldGFpbCwgI2ZpbGUtZGV0YWlsLCAjcG9wdXAtY3VzdG9tIHsNCiAgYm94LXNoYWRvdzogMHB4IDVweCA0MHB4ICMwMDA7DQogIG1hcmdpbi10b3A6IDIwcHg7DQogIG1hcmdpbi1sZWZ0OiBhdXRvOw0KICBtYXJnaW4tcmlnaHQ6IGF1dG87DQogIA0KICBtYXgtd2lkdGg6IDYwMHB4Ow0KICBiYWNrZ3JvdW5kLWNvbG9yOiAjMjIyOw0KICBwYWRkaW5nOiAxMHB4Ow0KICBvdmVyZmxvdzphdXRvOw0KfQ0KDQojcG9wdXAtY3VzdG9tIGgzIHsNCiAgdGV4dC1hbGlnbjogY2VudGVyOw0KfQ0KDQojZmlsZS1kZXRhaWwgaW5wdXRbdHlwZT10ZXh0XSB7DQogIHdpZHRoOiAtd2Via2l0LWNhbGMoMTAwJSAtIDIwcHgpOw0KICB3aWR0aDogLW1vei1jYWxjKDEwMCUgLSAyMHB4KTsNCiAgd2lkdGg6IGNhbGMoMTAwJSAtIDIwcHgpOw0KfQ0KDQojbWFwcGluZy1kZXRhaWwgaW1nIHsNCiAgZGlzcGxheTogYmxvY2s7DQogIG1heC1oZWlnaHQ6IDMwcHg7DQogIG1hcmdpbi1ib3R0b206IDIwcHg7DQogIG1hcmdpbi1sZWZ0OiBhdXRvOw0KICBtYXJnaW4tcmlnaHQ6IGF1dG87DQp9DQoNCiNwb3B1cC1jdXN0b20gaW5wdXRbdHlwZT10ZXh0XSwgI3BvcHVwLWN1c3RvbSBpbnB1dFt0eXBlPXBhc3N3b3JkXSwgI21hcHBpbmctZGV0YWlsIGlucHV0W3R5cGU9dGV4dF0sICNjb250ZW50X3NldHRpbmdzIGlucHV0W3R5cGU9dGV4dF0sICNjb250ZW50X3NldHRpbmdzIGlucHV0W3R5cGU9cGFzc3dvcmRdew0KICBib3JkZXI6IHNvbGlkIDFweDsNCiAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDsNCiAgYmFja2dyb3VuZC1jb2xvcjogIzMzMzsNCiAgdGV4dC1hbGlnbjogbGVmdDsNCiAgd2lkdGg6IC13ZWJraXQtY2FsYygxMDAlIC0gMjBweCk7DQogIHdpZHRoOiAgICAtbW96LWNhbGMoMTAwJSAtIDIwcHgpOw0KICB3aWR0aDogICAgICAgICBjYWxjKDEwMCUgLSAyMHB4KTsNCn0NCg0KI3BvcHVwLWN1c3RvbSBpbnB1dFt0eXBlPXRleHRdLm5vdEF2YWlsYWJsZSB7DQogIGJvcmRlci1jb2xvcjogcmVkOw0KICBjb2xvcjogIzY2NjsNCiAgY3Vyc29yOiBub3QtYWxsb3dlZDsNCn0NCg0KI21hcHBpbmctZGV0YWlsLXRhYmxlLCAjdXNlci1kZXRhaWwtdGFibGUgew0KICBkaXNwbGF5OiBpbmxpbmUtdGFibGU7DQogIHdpZHRoOiAxMDAlOw0KfQ0KDQojcG9wdXAtY3VzdG9tIHRhYmxlLCAjY29udGVudF9zZXR0aW5ncyB0YWJsZSB7DQogIGRpc3BsYXk6IGlubGluZS10YWJsZTsNCiAgdGFibGUtbGF5b3V0OiBmaXhlZDsNCiAgd2lkdGg6IDEwMCU7DQp9DQoNCg0KI21hcHBpbmctZGV0YWlsLXRhYmxlIHRkLCAjdXNlci1kZXRhaWwtdGFibGUgdGQgew0KICBwYWRkaW5nOiAxMHB4IDBweDsNCg0KfQ0KDQojbWFwcGluZy1kZXRhaWwtdGFibGUgdGQubGVmdCwgI3VzZXItZGV0YWlsLXRhYmxlIHRkLmxlZnQsICNwb3B1cC1jdXN0b20gdGQubGVmdCB7DQogIHdpZHRoOiAzOCU7DQp9DQoNCi5pbnRlcmFjdGlvbiwgI2ludGVyYWN0aW9uIHsNCiAgbWFyZ2luLXRvcDogMjBweDsNCiAgZGlzcGxheTogaW5saW5lLWZsZXg7DQogIGZsb2F0OiByaWdodDsNCn0NCg0KLmludGVyYWN0aW9uIGlucHV0W3R5cGU9YnV0dG9uXSwgLmludGVyYWN0aW9uIGlucHV0W3R5cGU9c3VibWl0XSB7DQogIGJhY2tncm91bmQtY29sb3I6ICMwMDA7DQogIG1pbi13aWR0aDogMTAwcHg7DQogIG1hcmdpbjogMHB4IDEwcHg7DQogIHRleHQtYWxpZ246IGNlbnRlcjsNCn0NCg0KI25vdGlmaWNhdGlvbiB7DQogIGRpc3BsYXk6IGJsb2NrOw0KICBwb3NpdGlvbjogZml4ZWQ7DQogIHJpZ2h0OiAwcHg7DQogIGhlaWdodDogMTAwJTsNCiAgd2lkdGg6IDI1MHB4Ow0KICANCiAgYmFja2dyb3VuZC1jb2xvcjogIzIyMjsNCiAgYm94LXNoYWRvdzogMHB4IDBweCAyMHB4ICMwMDA7DQp9DQoNCiNub3RpZmljYXRpb24gaDUgew0KICBiYWNrZ3JvdW5kLWNvbG9yOiAjMTIxMjEyOw0KICBwYWRkaW5nOiA1cHggMTBweCA1cHggMTBweDsNCn0NCg0KI25vdGlmaWNhdGlvbiBwcmUgew0KICBwYWRkaW5nOiAwcHggMTBweCAwcHggMTBweDsNCn0NCg0KI25vdGlmaWNhdGlvbiBwIHsNCiAgZm9udC1zaXplOiAxMCBweDsNCiAgbWFyZ2luOiAwcHg7DQogIHBhZGRpbmc6IDBweCAxMHB4IDVweCAxMHB4Ow0KfQ0KDQojbm90aWZpY2F0aW9uIC5lbGVtZW50IHsNCiAgLypwYWRkaW5nOiAwcHggNXB4OyovDQogIG1hcmdpbjogNXB4IDVweDsNCiAgYm9yZGVyLXJhZGl1czogNXB4Ow0KICBiYWNrZ3JvdW5kLWNvbG9yOiAjMTgxODE4Ow0KICBib3JkZXItbGVmdDogMTBweCBzb2xpZCBncmVlbjsNCn0NCg0KDQpAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDYyMHB4KXsNCiAgYm9keSB7DQogICAgd2lkdGg6IDEwMCU7DQogICAgYmFja2dyb3VuZC1jb2xvcjogIzQ0NDsNCiAgfQ0KDQogIGgxIHsNCiAgICBmb250LXNpemU6IDI2cHg7DQogICAgbGV0dGVyLXNwYWNpbmc6IDNweDsNCiAgfQ0KDQogIG5hdiBwIHsNCiAgICBkaXNwbGF5OiBibG9jazsNCiAgfQ0KDQoNCg0KICAjaGVhZGVyX2NvbmZpZyB7DQogICAgZGlzcGxheTogYmxvY2s7DQogICAgaGVpZ2h0OiAxMDBweDsNCiAgICBiYWNrZ3JvdW5kOiB1cmwoIi4uL2ltZy9sb2dvX3dfNjAweDIwMC5wbmciKTsNCiAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0Ow0KICAgIA0KICAgIGJhY2tncm91bmQtc2l6ZTogMzAwcHggMTAwcHg7DQogIH0NCg0KICAjc2NyZWVuTG9nIHsNCiAgICBtYXJnaW4tbGVmdDogMzAwcHg7DQoNCiAgICB0cmFuc2l0aW9uOiBub25lOw0KICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50Ow0KICAgIGJvcmRlci1ib3R0b206IHNvbGlkIDFweCB0cmFuc3BhcmVudDsNCiAgICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAjMjIyOw0KICB9DQoNCiAgI3NldHRpbmdzIHsNCiAgICAvKg0KICAgIGhlaWdodDogLXdlYmtpdC1jYWxjKDEwMCUgLSAxMDBweCk7DQogICAgaGVpZ2h0OiAtbW96LWNhbGMoMTAwJSAtIDEwMHB4KTsNCiAgICBoZWlnaHQ6IGNhbGMoMTAwJSAtIDEwMHB4KTsNCiAgICAqLw0KICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsNCiAgICBvdmVyZmxvdzogYXV0bzsNCiAgfQ0KDQoNCiAgLnNjcmVlbkxvZ0hpZGRlbiB7DQogICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMHB4LCAwcHgpOw0KICB9DQoNCg0KICAjYm94IHsNCiAgICBkaXNwbGF5OiBibG9jazsNCiAgICBtaW4taGVpZ2h0OiA1MDBweDsNCiAgICBtYXgtd2lkdGg6IDUwMHB4Ow0KICAgIG1hcmdpbjogMTBweCBhdXRvOw0KICAgIGJhY2tncm91bmQtY29sb3I6ICM0NDQ7DQogICAgYm94LXNoYWRvdzogMHB4IDVweCA1cHggIzIyMjsNCg0KICAgIGRpc3BsYXk6IGZsZXg7DQogICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsNCiAgfQ0KDQogICNzZXR0aW5ncywgI3NldHRpbmdzLWZvb3RlciB7DQogICAgDQogIH0NCn0NCg==" webUI["html/js/authentication_ts.js"] = "ZnVuY3Rpb24gbG9naW4oKSB7DQogICAgdmFyIGVyciA9IGZhbHNlOw0KICAgIHZhciBkYXRhID0gbmV3IE9iamVjdCgpOw0KICAgIHZhciBkaXYgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29udGVudCIpOw0KICAgIHZhciBmb3JtID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImF1dGhlbnRpY2F0aW9uIik7DQogICAgdmFyIGlucHV0cyA9IGRpdi5nZXRFbGVtZW50c0J5VGFnTmFtZSgiSU5QVVQiKTsNCiAgICBjb25zb2xlLmxvZyhpbnB1dHMpOw0KICAgIGZvciAodmFyIGkgPSBpbnB1dHMubGVuZ3RoIC0gMTsgaSA+PSAwOyBpLS0pIHsNCiAgICAgICAgdmFyIGtleSA9IGlucHV0c1tpXS5uYW1lOw0KICAgICAgICB2YXIgdmFsdWUgPSBpbnB1dHNbaV0udmFsdWU7DQogICAgICAgIGlmICh2YWx1ZS5sZW5ndGggPT0gMCkgew0KICAgICAgICAgICAgaW5wdXRzW2ldLnN0eWxlLmJvcmRlckNvbG9yID0gInJlZCI7DQogICAgICAgICAgICBlcnIgPSB0cnVlOw0KICAgICAgICB9DQogICAgICAgIGRhdGFba2V5XSA9IHZhbHVlOw0KICAgIH0NCiAgICBpZiAoZXJyID09IHRydWUpIHsNCiAgICAgICAgZGF0YSA9IG5ldyBPYmplY3QoKTsNCiAgICAgICAgcmV0dXJuOw0KICAgIH0NCiAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgiY29uZmlybSIpKSB7DQogICAgICAgIGlmIChkYXRhWyJjb25maXJtIl0gIT0gZGF0YVsicGFzc3dvcmQiXSkgew0KICAgICAgICAgICAgYWxlcnQoInNkYWZzZCIpOw0KICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Bhc3N3b3JkJykuc3R5bGUuYm9yZGVyQ29sb3IgPSAicmVkIjsNCiAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjb25maXJtJykuc3R5bGUuYm9yZGVyQ29sb3IgPSAicmVkIjsNCiAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJlcnIiKS5pbm5lckhUTUwgPSAie3suYWNjb3VudC5mYWlsZWR9fSI7DQogICAgICAgICAgICByZXR1cm47DQogICAgICAgIH0NCiAgICB9DQogICAgY29uc29sZS5sb2coZGF0YSk7DQogICAgZm9ybS5zdWJtaXQoKTsNCn0NCg==" - webUI["html/js/base.js"] = "dmFyIGNvbmZpZyAgICAgICAgPSBuZXcgT2JqZWN0KCk7DQp2YXIgbWVudSAgICAgICAgICA9IG5ldyBPYmplY3QoKTsNCnZhciBzdWJNZW51ICAgICAgID0gbmV3IE9iamVjdCgpOw0KdmFyIGFjdGl2ZVN0cmVhbXMgPSBuZXcgT2JqZWN0KCk7DQp2YXIgeEVQRyAgICAgICAgICA9IG5ldyBPYmplY3QoKTsNCnZhciB1c2VycyAgICAgICAgID0gbmV3IE9iamVjdCgpOw0KdmFyIGxvZyAgICAgICAgICAgPSBuZXcgT2JqZWN0KCk7DQp2YXIgdW5kbyAgICAgICAgICA9IG5ldyBPYmplY3QoKTsNCnZhciB3ZWJTb2NrZXRzICAgID0gdHJ1ZTsNCnZhciBjbG9zZUxvZywgdmVyc2lvbiwgYWN0aXZlTWVudTsNCnZhciBjb2x1bW5Ub1NvcnQgID0gMA0KDQoNCmlmICh3aW5kb3cuV2ViU29ja2V0ID09PSB1bmRlZmluZWQpIHsNCiAgYWxlcnQoIllvdXIgYnJvd3NlciBkb2VzIG5vdCBzdXBwb3J0IFdlYlNvY2tldHMiKTsNCiAgd2ViU29ja2V0cyA9IGZhbHNlOw0KfSANCg0KZnVuY3Rpb24gcGFnZVJlYWR5KCkgew0KICB2YXIgZGF0YSA9IG5ldyBPYmplY3QoKTsNCiAgZGF0YVsiY21kIl0gPSAiZ2V0U2VydmVyQ29uZmlnIjsNCiAgeFRlVmUoZGF0YSk7DQogIC8vc2hvd0xvYWRpbmdTY3JlZW4oZmFsc2UpOw0KDQogIHZhciByZXNpemVIYW5kbGUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgib3BlblN0cmVhbXMiKTsNCiAgdmFyIGJveCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJteVN0cmVhbXNCb3giKTsNCiAgcmVzaXplSGFuZGxlLmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlZG93biIsIGluaXRpYWxpc2VSZXNpemUsIGZhbHNlKTsNCg0KICBmdW5jdGlvbiBpbml0aWFsaXNlUmVzaXplKGUpIHsNCiAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigibW91c2Vtb3ZlIiwgc3RhcnRSZXNpemluZywgZmFsc2UpOw0KICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJtb3VzZXVwIiwgc3RvcFJlc2l6aW5nLCBmYWxzZSk7DQogIH0NCg0KICBmdW5jdGlvbiBzdGFydFJlc2l6aW5nKGUpIHsNCiAgICBib3guc3R5bGUuaGVpZ2h0ID0gKGUuY2xpZW50WSAtIGJveC5vZmZzZXRUb3ApICsgInB4IjsNCiAgICAgIA0KICAgIHZhciBlbG0gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYWxsU3RyZWFtcyIpOw0KICAgIGlmIChlLmNsaWVudFkgPiAxMjApIHsNCiAgICAgIGVsbS5jbGFzc05hbWUgPSAidmlzaWJsZSI7IA0KICAgIH0gZWxzZSB7DQogICAgICBlbG0uY2xhc3NOYW1lID0gIm5vdFZpc2libGUiOyANCiAgICB9DQoNCiAgICBjYWxjdWxhdGVXcmFwcGVySGVpZ2h0KCk7DQoNCiAgfQ0KICBmdW5jdGlvbiBzdG9wUmVzaXppbmcoZSkgew0KICAgICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ21vdXNlbW92ZScsIHN0YXJ0UmVzaXppbmcsIGZhbHNlKTsNCiAgICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCdtb3VzZXVwJywgc3RvcFJlc2l6aW5nLCBmYWxzZSk7DQogICAgICBjYWxjdWxhdGVXcmFwcGVySGVpZ2h0KCk7DQogIH0NCg0KICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigicmVzaXplIiwgZnVuY3Rpb24oKXsNCiAgICBjYWxjdWxhdGVXcmFwcGVySGVpZ2h0KCk7DQogIH0sIHRydWUpOw0KfQ0KDQoNCmZ1bmN0aW9uIGdldE9iaktleXMob2JqKSB7DQogIHZhciBrZXlzID0gbmV3IEFycmF5KCk7DQoNCiAgZm9yICh2YXIgaSBpbiBvYmopIHsNCiAgICBpZiAob2JqLmhhc093blByb3BlcnR5KGkpKSB7DQogICAgICBrZXlzLnB1c2goaSk7DQogICAgfQ0KICB9DQoNCiAgcmV0dXJuIGtleXM7DQp9DQoNCg0KZnVuY3Rpb24gY3JlYXRlRWxlbWVudChpdGVtKSB7DQogIC8vY29uc29sZS5sb2coaXRlbSk7DQogIHZhciBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChpdGVtWyJfZWxlbWVudCJdKTsNCiAgaWYgKGl0ZW0uaGFzT3duUHJvcGVydHkoIl90ZXh0IikpIHsNCiAgICAvL2VsZW1lbnQuaW5uZXJIVE1MID0gIjxwPiIgKyBpdGVtWyJfdGV4dCJdICsgIjwvcD4iOw0KICAgIGVsZW1lbnQuaW5uZXJIVE1MID0gaXRlbVsiX3RleHQiXTsNCiAgfQ0KDQogIHZhciBrZXlzID0gZ2V0T2JqS2V5cyhpdGVtKTsNCiAgZm9yICh2YXIgaSA9IDA7IGkgPCBrZXlzLmxlbmd0aDsgaSsrKSB7DQogICAgaWYgKGtleXNbaV0uY2hhckF0KDApICE9ICJfIikgew0KICAgICAgLy9jb25zb2xlLmxvZyhrZXlzW2ldLCBpdGVtW2tleXNbaV1dKTsNCiAgICAgIGVsZW1lbnQuc2V0QXR0cmlidXRlKGtleXNbaV0sIGl0ZW1ba2V5c1tpXV0pOw0KICAgIH0NCiAgfQ0KDQogIC8vY29uc29sZS5sb2coZWxlbWVudCk7DQogIHJldHVybiBlbGVtZW50Ow0KfQ0KDQpmdW5jdGlvbiBtb2RpZnlPcHRpb24oaWQsIG9wdGlvbnMsIHZhbHVlcykgew0KICB2YXIgc2VsZWN0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpOw0KICBzZWxlY3QuaW5uZXJIVE1MID0gIiI7DQoNCiAgZm9yICh2YXIgaSA9IDA7IGkgPCBvcHRpb25zLmxlbmd0aDsgaSsrKSB7DQogIA0KICAgIHZhciBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiT1BUSU9OIikNCiAgDQogICAgZWxlbWVudC52YWx1ZSA9IHZhbHVlc1tpXTsNCiAgICBlbGVtZW50LmlubmVySFRNTCA9IG9wdGlvbnNbaV07DQoNCiAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkuYXBwZW5kQ2hpbGQoZWxlbWVudCk7DQogIA0KICB9DQoNCn0NCg0KDQpmdW5jdGlvbiBzdGFydFdlYlNvY2tldCgpIHsNCiAgaWYgKHdlYlNvY2tldHMgPT0gZmFsc2UpIHsNCiAgICByZXR1cm47DQogIH0NCg0KICAvL3dzLnNlbmQoJ3siY21kIjogImdldFNlcnZlckNvbmZpZzEifScpOw0KDQp9DQoNCmZ1bmN0aW9uIGNoZWNrRXJyKG9iaikgew0KICAvL2FsZXJ0KG9ialsiZXJyIl0pDQogIC8vc2NyZWVuTG9nKG9ialsiZXJyIl0sICJlcnJvciIpDQogIGNvbnNvbGUubG9nKG9iaik7DQogIHZhciBuZXdPYmogPSBuZXcgT2JqZWN0KCk7DQogIHZhciBuZXdFcnIgPSBuZXcgT2JqZWN0KCk7DQogIG5ld0Vyclsia2V5Il0gICA9ICJFcnJvciI7DQogIG5ld0VyclsidmFsdWUiXSA9IG9ialsiZXJyIl07DQogIG5ld0VyclsidHlwZSJdICA9ICJlcnJvciI7DQoNCiAgbmV3T2JqWzBdID0gbmV3RXJyDQogIHNob3dMb2cobmV3T2JqKTsNCiAgcmV0dXJuDQp9DQoNCmZ1bmN0aW9uIHNjcmVlbkxvZyhtc2csIG1zZ1R5cGUsIHNob3cpIHsNCiAgcmV0dXJuDQogIGNsZWFyVGltZW91dChjbG9zZUxvZykNCiAgdmFyIGRpdiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzY3JlZW5Mb2ciKTsNCiAgdmFyIG5ld01zZyA9IG5ldyBPYmplY3QoKTsNCiAgDQogIG5ld01zZ1siX2VsZW1lbnQiXSA9ICJQIjsNCiAgDQogIHN3aXRjaChtc2dUeXBlKSB7DQogICAgY2FzZSAiZXJyb3IiOiAgIG5ld01zZ1siY2xhc3MiXSA9ICJlcnJvck1zZyI7IGJyZWFrOw0KICAgIGNhc2UgIndhcm5pbmciOiBuZXdNc2dbImNsYXNzIl0gPSAid2FybmluZ01zZyI7IGJyZWFrOw0KICAgIC8vZGVmYXVsdDogICAgICBuZXdNc2dbImNsYXNzIl0gPSAiaW5mb01zZyINCiAgfQ0KDQogIG5ld01zZ1siX3RleHQiXSA9IG1zZzsNCg0KICBkaXYuYXBwZW5kQ2hpbGQoY3JlYXRlRWxlbWVudChuZXdNc2cpKTsNCg0KICBkaXYuc2Nyb2xsVG9wID0gZGl2LnNjcm9sbEhlaWdodDsNCg0KICBpZiAoc2hvdyA9PSBmYWxzZSkgew0KICAgIHJldHVybjsNCiAgfQ0KDQogIGRpdi5jbGFzc05hbWUgPSAiIg0KICBjbG9zZUxvZyA9IHNldFRpbWVvdXQoY2xvc2VTY3JlZW5Mb2csIDEwMDAwKTsNCn0NCg0KDQpmdW5jdGlvbiBjbG9zZVNjcmVlbkxvZygpIHsNCiAgdmFyIGRpdiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzY3JlZW5Mb2ciKTsNCiAgZGl2LmNsYXNzTmFtZSA9ICJzY3JlZW5Mb2dIaWRkZW4iDQp9DQoNCmZ1bmN0aW9uIHNob3dTY3JlZW5Mb2coKSB7DQogIGNsZWFyVGltZW91dChjbG9zZUxvZykNCiAgdmFyIGRpdiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzY3JlZW5Mb2ciKTsNCiAgdmFyIGN1cnJlbnRDbGFzcyA9IGRpdi5jbGFzc05hbWU7DQogIGRpdi5jbGFzc05hbWUgPSAic2NyZWVuTG9nSGlkZGVuIg0KDQogIHN3aXRjaChjdXJyZW50Q2xhc3MpIHsNCiAgICBjYXNlICJzY3JlZW5Mb2dIaWRkZW4iOiAgZGl2LmNsYXNzTmFtZSA9ICIiOyBicmVhazsgDQogICAgY2FzZSAiIjogZGl2LmNsYXNzTmFtZSA9ICJzY3JlZW5Mb2dIaWRkZW4iOyBicmVhazsNCiAgfQ0KfQ0KDQpmdW5jdGlvbiBzaG93TG9hZGluZ1NjcmVlbihlbG0pIHsNCiAgdmFyIGRpdiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJsb2FkaW5nIik7DQogIHN3aXRjaChlbG0pIHsNCiAgICBjYXNlIHRydWU6IGRpdi5jbGFzc05hbWUgPSAiYmxvY2siOyBicmVhazsNCiAgICBjYXNlIGZhbHNlOiBkaXYuY2xhc3NOYW1lID0gIm5vbmUiOyBicmVhazsNCg0KICAgIC8qDQogICAgY2FzZSB0cnVlOiBkaXYuc3R5bGUuZGlzcGxheSA9ICJibG9jayI7IGJyZWFrOw0KICAgIGNhc2UgZmFsc2U6IGRpdi5zdHlsZS5kaXNwbGF5ID0gIm5vbmUiOyBicmVhazsNCiAgICAqLw0KICB9DQp9DQoNCmZ1bmN0aW9uIGNyZWF0ZUNsaW50SW5mbyhvYmopIHsNCiAgLy9jb25zb2xlLmxvZyhvYmopOw0KICB2YXIga2V5cyA9IGdldE9iaktleXMob2JqKTsNCiAgZm9yICh2YXIgaSA9IDA7IGkgPCBrZXlzLmxlbmd0aDsgaSsrKSB7DQogICAgaWYoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoa2V5c1tpXSkpew0KICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoa2V5c1tpXSkuaW5uZXJIVE1MID0gb2JqW2tleXNbaV1dOw0KICAgIH0NCiAgfQ0KICAvL2RvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjbGllbnRJbmZvIikuY2xhc3NOYW1lID0gInZpc2libGUiOw0KfQ0KDQpmdW5jdGlvbiBzaG93RWxlbWVudChlbG1JRCwgdHlwZSkgew0KICBzd2l0Y2godHlwZSkgew0KICAgIGNhc2UgdHJ1ZTogIGNzc0NsYXNzID0gImJsb2NrIjsgYnJlYWs7DQogICAgY2FzZSBmYWxzZTogY3NzQ2xhc3MgPSAibm9uZSI7IGJyZWFrOw0KICB9DQoNCiAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoZWxtSUQpLmNsYXNzTmFtZSA9IGNzc0NsYXNzOw0KfSANCg0KZnVuY3Rpb24gc2hvd1BvcFVwRWxlbWVudChlbG0pIHsNCiAgdmFyIGFsbEVsZW1lbnRzID0gbmV3IEFycmF5KCJkZWxldGVVc2VyRGV0YWlsIiwgIm1hcHBpbmctZGV0YWlsIiwgInVzZXItZGV0YWlsIiwgImZpbGUtZGV0YWlsIik7DQoNCiAgZm9yICh2YXIgaSA9IDA7IGkgPCBhbGxFbGVtZW50cy5sZW5ndGg7IGkrKykgew0KICAgIHNob3dFbGVtZW50KGFsbEVsZW1lbnRzW2ldLCBmYWxzZSkNCiAgfQ0KDQogIHNob3dFbGVtZW50KGVsbSwgdHJ1ZSkNCg0KICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7IA0KICAgIHNob3dFbGVtZW50KCJwb3B1cCIsIHRydWUpOw0KICB9LCAxMCk7DQp9DQoNCiAgLy8gYm9keS4uLg0KDQpmdW5jdGlvbiBzaG93U3RyZWFtcyhmb3JjZSkgew0KDQogIHZhciBlbG1Cb3ggPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibXlTdHJlYW1zQm94Iik7DQogIHZhciBlbG0gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYWxsU3RyZWFtcyIpOw0KICAvL2NvbnNvbGUubG9nKGVsbSk7DQogIHNob3cgPSBlbG0uY2xhc3NOYW1lOw0KDQogIHN3aXRjaChmb3JjZSkgew0KICAgIGNhc2UgdHJ1ZTogc2hvdyA9ICJub3RWaXNpYmxlIjsgYnJlYWs7DQogICAgY2FzZSBmYWxzZTogc2hvdyA9ICJ2aXNpYmxlIjsgYnJlYWs7DQogIH0NCg0KICBzd2l0Y2goc2hvdykgew0KICAgIGNhc2UgIm5vdFZpc2libGUiOiANCiAgICAgIGVsbS5jbGFzc05hbWUgPSAidmlzaWJsZSI7IA0KICAgICAgZWxtQm94LnN0eWxlLmhlaWdodCA9ICIxMDBweCI7DQogICAgICBicmVhazsNCg0KICAgIGRlZmF1bHQ6IA0KICAgICAgZWxtLmNsYXNzTmFtZSA9ICJub3RWaXNpYmxlIjsgDQogICAgICBlbG1Cb3guc3R5bGUuaGVpZ2h0ID0gIjIwcHgiOw0KICAgICAgYnJlYWs7DQogIH0NCg0KICB2YXIgc2hvdyA9IGVsbS5zdHlsZS5kaXNwbGF5OyB7DQogICAgLy9jb25zb2xlLmxvZyhlbG0uc3R5bGUuZGlzcGxheSk7DQogIH0NCiAgDQogIGNhbGN1bGF0ZVdyYXBwZXJIZWlnaHQoKTsNCn0NCg0KZnVuY3Rpb24geHRldmVCYWNrdXAoKSB7DQogIGNvbnNvbGUubG9nKCJ4dGV2ZUJhY2t1cCIpOw0KICB2YXIgZGF0YSA9IG5ldyBPYmplY3QoKTsNCiAgZGF0YVsiY21kIl0gPSAieHRldmVCYWNrdXAiOw0KDQogIHhUZVZlKGRhdGEpOw0KfQ0KDQpmdW5jdGlvbiB4dGV2ZVJlc3RvcmUoZWxtKSB7DQogIHZhciByZXN0b3JlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiSU5QVVQiKTsNCiAgcmVzdG9yZS5zZXRBdHRyaWJ1dGUoInR5cGUiLCAiZmlsZSIpOw0KICByZXN0b3JlLnNldEF0dHJpYnV0ZSgiY2xhc3MiLCAibm90VmlzaWJsZSIpOw0KICByZXN0b3JlLnNldEF0dHJpYnV0ZSgibmFtZSIsICIiKTsNCiAgcmVzdG9yZS5pZCA9ICJ1cGxvYWQiOw0KDQogIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQocmVzdG9yZSk7DQogIHJlc3RvcmUuY2xpY2soKTsNCg0KICByZXN0b3JlLm9uY2hhbmdlID0gZnVuY3Rpb24oKSB7DQogICAgdmFyIGZpbGVuYW1lID0gcmVzdG9yZS5maWxlc1swXS5uYW1lDQogICAgLy9jb25zb2xlLmxvZyhyZXN0b3JlLnNyY0VsZW1lbnQuZmlsZXNbMF0pOw0KICAgIHZhciBjaGVjayA9IGNvbmZpcm0oIkZpbGU6ICIgKyBmaWxlbmFtZSArICJcbkFsbCBkYXRhIHdpbGwgYmUgcmVwbGFjZWQgd2l0aCB0aG9zZSBmcm9tIHRoZSBiYWNrdXAuXG5TaG91bGQgdGhlIGZpbGVzIGJlIHJlc3RvcmVkPyIpOyANCiAgICBpZiAoY2hlY2sgPT0gdHJ1ZSkgew0KICAgICAgdmFyIHJlYWRlciAgPSBuZXcgRmlsZVJlYWRlcigpOw0KICAgICAgdmFyIGZpbGUgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCdpbnB1dFt0eXBlPWZpbGVdJykuZmlsZXNbMF07DQogICAgICBpZiAoZmlsZSkgew0KICAgICAgICByZWFkZXIucmVhZEFzRGF0YVVSTChmaWxlKTsNCiAgICAgICAgcmVhZGVyLm9ubG9hZCA9IGZ1bmN0aW9uKCkgew0KICAgICAgICAgIGNvbnNvbGUubG9nKHJlYWRlci5yZXN1bHQpOw0KICAgICAgICAgIHZhciBkYXRhID0gbmV3IE9iamVjdCgpOw0KICAgICAgICAgIGRhdGFbImNtZCJdICAgICA9ICJ4dGV2ZVJlc3RvcmUiDQogICAgICAgICAgZGF0YVsiYmFzZTY0Il0gID0gcmVhZGVyLnJlc3VsdA0KDQogICAgICAgICAgeFRlVmUoZGF0YSk7DQogICAgICAgICAgcmV0dXJuDQogICAgICAgIH07DQogICAgICB9IGVsc2Ugew0KICAgICAgICBhbGVydCgiRmlsZSBjb3VsZCBub3QgYmUgbG9hZGVkIikNCiAgICAgIH0NCiAgICB9DQogIH07DQp9DQoNCmZ1bmN0aW9uIGdldEJhc2U2NChmaWxlKSB7DQogICB2YXIgcmVhZGVyID0gbmV3IEZpbGVSZWFkZXIoKTsNCiAgIHJlYWRlci5yZWFkQXNEYXRhVVJMKGZpbGUpOw0KICAgcmVhZGVyLm9ubG9hZCA9IGZ1bmN0aW9uKCkgew0KICAgICBjb25zb2xlLmxvZyhyZWFkZXIucmVzdWx0KTsNCiAgIH07DQogICByZWFkZXIub25lcnJvciA9IGZ1bmN0aW9uKGVycm9yKSB7DQogICAgIGNvbnNvbGUubG9nKCdFcnJvcjogJywgZXJyb3IpOw0KICAgfTsNCn0NCg0KZnVuY3Rpb24gbG9nb3V0KCkgew0KICBkb2N1bWVudC5jb29raWUuc3BsaXQoJzsnKS5mb3JFYWNoKGZ1bmN0aW9uKGMpIHsNCiAgICBkb2N1bWVudC5jb29raWUgPSBjLnRyaW0oKS5zcGxpdCgnPScpWzBdICsgJz07JyArICdleHBpcmVzPVRodSwgMDEgSmFuIDE5NzAgMDA6MDA6MDAgVVRDOyc7DQogIH0pOw0KICBsb2NhdGlvbi5yZWxvYWQoKTsNCn0NCg0KZnVuY3Rpb24gZ2V0Q29va2llKG5hbWUpIHsNCiAgdmFyIHZhbHVlID0gIjsgIiArIGRvY3VtZW50LmNvb2tpZTsNCiAgdmFyIHBhcnRzID0gdmFsdWUuc3BsaXQoIjsgIiArIG5hbWUgKyAiPSIpOw0KICBpZiAocGFydHMubGVuZ3RoID09IDIpIHJldHVybiBwYXJ0cy5wb3AoKS5zcGxpdCgiOyIpLnNoaWZ0KCk7DQp9DQoNCmZ1bmN0aW9uIHNldENvb2tpZSh0b2tlbikgew0KICAvL2NvbnNvbGUubG9nKHRva2VuKTsNCiAgZG9jdW1lbnQuY29va2llID0gIlRva2VuPSIgKyB0b2tlbg0KfQ0KDQo=" + webUI["html/js/files.js"] = "ZnVuY3Rpb24gb3BlbkZpbGVzKGVsbSwgZmlsZVR5cGUpIHsNCiAgLy9kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic2V0dGluZ3MiKS5pbm5lckhUTUwgPSAiVGVzdCI7DQogIA0KICBjb2x1bW5Ub1NvcnQgPSAwOyANCiAgdmFyIG5ld0RpdiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzZXR0aW5ncyIpOw0KICANCiAgdmFyIG5ld0VudHJ5ID0gbmV3IE9iamVjdCgpOw0KICBuZXdFbnRyeVsiX2VsZW1lbnQiXSAgPSAiSFIiOw0KICBuZXdEaXYuYXBwZW5kQ2hpbGQoY3JlYXRlRWxlbWVudChuZXdFbnRyeSkpOw0KDQogIHZhciBuZXdFbnRyeSA9IG5ldyBPYmplY3QoKTsNCiAgbmV3RW50cnlbIl9lbGVtZW50Il0gID0gIklOUFVUIjsNCiAgbmV3RW50cnlbInR5cGUiXSA9ICJidXR0b24iOw0KICBuZXdFbnRyeVsiY2xhc3MiXSA9ICJidXR0b24iOw0KICBuZXdFbnRyeVsidmFsdWUiXSA9ICJOZXciOw0KICBuZXdFbnRyeVsib25jbGljayJdID0gJ2ZpbGVEZXRhaWwoIi0iLCAiJyArIGZpbGVUeXBlICsgJyIpJzsNCiAgbmV3RGl2LmFwcGVuZENoaWxkKGNyZWF0ZUVsZW1lbnQobmV3RW50cnkpKTsNCg0KICB2YXIgbmV3RW50cnkgPSBuZXcgT2JqZWN0KCk7DQogIG5ld0VudHJ5WyJfZWxlbWVudCJdICA9ICJJTlBVVCI7DQogIG5ld0VudHJ5WyJ0eXBlIl0gPSAiYnV0dG9uIjsNCiAgbmV3RW50cnlbImNsYXNzIl0gPSAiYnV0dG9uIjsNCiAgbmV3RW50cnlbInZhbHVlIl0gPSAiVXBkYXRlIjsNCiAgbmV3RW50cnlbIm9uY2xpY2siXSA9ICJmaWxlRGV0YWlsKDApIjsNCiAgLy9uZXdEaXYuYXBwZW5kQ2hpbGQoY3JlYXRlRWxlbWVudChuZXdFbnRyeSkpOw0KDQogIHZhciBkaXYgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic2V0dGluZ3MiKTsNCg0KICAgLy8gQnVpbGQgdGFibGUNCiAgdmFyIG5ld1RhYmxlID0gbmV3IE9iamVjdCgpOw0KICBuZXdUYWJsZVsiX2VsZW1lbnQiXSAgPSAiVEFCTEUiOw0KICBuZXdUYWJsZVsiaWQiXSAgICAgICAgPSAiaWRfbWFwcGluZyI7DQogIG5ld1RhYmxlWyJjbGFzcyJdICAgICA9ICJ0YWJsZS1tYXBwaW5nIjsNCiAgZGl2LmFwcGVuZENoaWxkKGNyZWF0ZUVsZW1lbnQobmV3VGFibGUpKTsNCg0KICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7IA0KICAgIGNyZWF0ZUZpbGVzVGFibGUoZmlsZVR5cGUpOyANCiAgfSwgMTApOw0KDQp9DQoNCmZ1bmN0aW9uIGNyZWF0ZUZpbGVzVGFibGUoZmlsZVR5cGUpIHsNCiAgdmFyIHRhYmxlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImlkX21hcHBpbmciKTsNCiAgdmFyIGF2YWlsYWJsZUZpbGVUeXBlcyA9IG5ldyBBcnJheSgpOw0KICANCiAgdGFibGUuaW5uZXJIVE1MID0gIiI7DQogIHZhciBuZXdUUiA9IG5ldyBPYmplY3QoKTsNCiAgbmV3VFJbIl9lbGVtZW50Il0gPSAiVFIiOw0KICBuZXdUUlsiY2xhc3MiXSAgICA9ICJ0YWJsZS1tYXBwaW5nLWhlYWRlciI7DQogIHRhYmxlLmFwcGVuZENoaWxkKGNyZWF0ZUVsZW1lbnQobmV3VFIpKTsNCg0KICB2YXIgdHIgPSB0YWJsZS5sYXN0Q2hpbGQ7DQoNCiAgc3dpdGNoKGZpbGVUeXBlKSB7DQogICAgY2FzZSAieG1sdHYiOiANCiAgICAgIGF2YWlsYWJsZUZpbGVUeXBlcyA9IG5ldyBBcnJheSgieG1sdHYiKTsgDQogICAgICB2YXIgdHJIZWFkbGluZXMgPSBuZXcgQXJyYXkoIkd1aWRlIiwgIkxhc3QgVXBkYXRlIiwgIkF2YWlsYWJpbGl0eSAlIiwgIkNoYW5uZWxzIiwgIlByb2dyYW1zIikNCiAgICAgIHZhciBjb21wYXRpYmlsaXR5S2V5cyA9IG5ldyBBcnJheSgieG1sdHYuY2hhbm5lbHMiLCAieG1sdHYucHJvZ3JhbXMiKQ0KICAgICAgYnJlYWs7DQoNCiAgICBjYXNlICJtM3UiOg0KICAgICAgYXZhaWxhYmxlRmlsZVR5cGVzID0gbmV3IEFycmF5KCJtM3UiLCAiaGRociIpOyANCiAgICAgIHZhciB0ckhlYWRsaW5lcyA9IG5ldyBBcnJheSgiUGxheWxpc3QiLCAiTGFzdCBVcGRhdGUiLCAiQXZhaWxhYmlsaXR5ICUiLCAiVHlwZSIsICJTdHJlYW1zIiwgImdyb3VwLXRpdGxlICUiLCAidHZnLWlkICUiLCAiVW5pcXVlIElEICUiKTsNCiAgICAgIHZhciBjb21wYXRpYmlsaXR5S2V5cyA9IG5ldyBBcnJheSgic3RyZWFtcyIsICJncm91cC50aXRsZSIsICJ0dmcuaWQiLCAic3RyZWFtLmlkIik7DQogICAgICBicmVhazsNCiAgfQ0KDQogIGZvciAodmFyIGkgPSAwOyBpIDwgdHJIZWFkbGluZXMubGVuZ3RoOyBpKyspIHsNCiAgICB2YXIgbmV3VEQgPSBuZXcgT2JqZWN0KCk7DQogICAgbmV3VERbIl9lbGVtZW50Il0gPSAiVEQiOw0KICAgIG5ld1REWyJfdGV4dCJdICAgID0gdHJIZWFkbGluZXNbaV07DQogICAgdHIuYXBwZW5kQ2hpbGQoY3JlYXRlRWxlbWVudChuZXdURCkpOw0KICB9DQogIA0KICBmb3IgKHZhciBpID0gMDsgaSA8IGF2YWlsYWJsZUZpbGVUeXBlcy5sZW5ndGg7IGkrKykgew0KICAgIA0KICAgIHZhciBmaWxlVHlwZSA9IGF2YWlsYWJsZUZpbGVUeXBlc1tpXQ0KDQogICAgdmFyIGRhdGEgPSBjb25maWdbImZpbGVzIl1bZmlsZVR5cGVdOw0KICAgIA0KICAgIHZhciBhbGxGaWxlcyA9IGdldE9iaktleXMoZGF0YSkNCiAgDQogICAgZm9yICh2YXIgZiA9IDA7IGYgPCBhbGxGaWxlcy5sZW5ndGg7IGYrKykgew0KICAgICAgdmFyIGVsbSAgICAgICAgICAgPSBkYXRhW2FsbEZpbGVzW2ZdXTsNCiAgICAgIHZhciB0YWJsZSAgICAgICAgID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImlkX21hcHBpbmciKTsNCiAgICAgIHZhciBmaWxlSUQgICAgICAgID0gZWxtWyJpZC5wcm92aWRlciJdOw0KICAgICAgdmFyIG5hbWUgICAgICAgICAgPSBlbG1bIm5hbWUiXTsNCiAgICAgIHZhciBsYXN0VXBkYXRlICAgID0gZWxtWyJsYXN0LnVwZGF0ZSJdOw0KICAgICAgdmFyIGF2YWlsYWJpbGl0eSAgPSBlbG1bInByb3ZpZGVyLmF2YWlsYWJpbGl0eSJdOw0KICAgICAgdmFyIHR5cGUgICAgICAgICAgPSBlbG1bInR5cGUiXS50b1VwcGVyQ2FzZSgpOw0KICAgICAgdmFyIGNvbXBhdGliaWxpdHkgPSBlbG1bImNvbXBhdGliaWxpdHkiXTsNCg0KICAgICAgLy8gQ3JlYXRlIFRSDQogICAgICB2YXIgbmV3VFIgPSBuZXcgT2JqZWN0KCk7DQogICAgICBuZXdUUlsiX2VsZW1lbnQiXSAgICAgICA9ICJUUiI7DQogICAgICBuZXdUUlsiY2xhc3MiXSAgICAgICAgICA9ICIiOw0KICAgICAgbmV3VFJbImlkIl0gICAgICAgICAgICAgPSBmaWxlSUQ7DQogICAgICBuZXdUUlsib25jbGljayJdICAgICAgICA9ICdqYXZhc2NyaXB0OiBmaWxlRGV0YWlsKCInICsgZmlsZUlEICsgJyIsIicgKyBmaWxlVHlwZSArICciKTsnOw0KICAgICAgdGFibGUuYXBwZW5kQ2hpbGQoY3JlYXRlRWxlbWVudChuZXdUUikpOw0KDQogICAgICB2YXIgdHIgPSB0YWJsZS5sYXN0Q2hpbGQ7DQoNCiAgICAgIC8vIENyZWF0ZSBmaWxlIG5hbWUgVEQNCiAgICAgIHZhciBuZXdURCA9IG5ldyBPYmplY3QoKTsNCiAgICAgIG5ld1REWyJfZWxlbWVudCJdID0gIlAiOw0KICAgICAgbmV3VERbIl90ZXh0Il0gICAgPSBuYW1lOw0KICAgICAgY3JlYXRlTmV3VEQobmV3VEQsIHRyKTsNCg0KICAgICAgLy8gQ3JlYXRlIGxhc3QgdXBkYXRlIFREDQogICAgICB2YXIgbmV3VEQgPSBuZXcgT2JqZWN0KCk7DQogICAgICBuZXdURFsiX2VsZW1lbnQiXSA9ICJQIjsNCiAgICAgIG5ld1REWyJfdGV4dCJdICAgID0gbGFzdFVwZGF0ZTsNCiAgICAgIGNyZWF0ZU5ld1REKG5ld1RELCB0cik7DQoNCiAgICAgIC8vIENyZWF0ZSBhdmFpbGFiaWxpdHkgVEQNCiAgICAgIHZhciBuZXdURCA9IG5ldyBPYmplY3QoKTsNCiAgICAgIG5ld1REWyJfZWxlbWVudCJdID0gIlAiOw0KICAgICAgbmV3VERbIl90ZXh0Il0gICAgPSBhdmFpbGFiaWxpdHk7DQogICAgICBjcmVhdGVOZXdURChuZXdURCwgdHIpOw0KDQogICAgICBpZiAoZmlsZVR5cGUgPT0gIm0zdSIgfHwgZmlsZVR5cGUgPT0gImhkaHIiKSB7DQoNCiAgICAgICAgLy8gQ3JlYXRlIFR5cGUgVEQNCiAgICAgICAgdmFyIG5ld1REID0gbmV3IE9iamVjdCgpOw0KICAgICAgICBuZXdURFsiX2VsZW1lbnQiXSA9ICJQIjsNCiAgICAgICAgbmV3VERbIl90ZXh0Il0gICAgPSB0eXBlOw0KICAgICAgICBjcmVhdGVOZXdURChuZXdURCwgdHIpOw0KICANCiAgICAgIH0NCiAgICAgIA0KICAgICAgLy8gQ3JlYXRlIGFsbCBjb21wYXRpYmlsaXR5IFREcw0KDQogICAgICBmb3IgKHZhciBqID0gMDsgaiA8IGNvbXBhdGliaWxpdHlLZXlzLmxlbmd0aDsgaisrKSB7DQogICAgICAgIHZhciBuZXdURCA9IG5ldyBPYmplY3QoKTsNCiAgICAgICAgbmV3VERbIl9lbGVtZW50Il0gPSAiUCI7DQogICAgICAgIG5ld1REWyJfdGV4dCJdICAgID0gY29tcGF0aWJpbGl0eVtjb21wYXRpYmlsaXR5S2V5c1tqXV07DQogICAgICAgIGNyZWF0ZU5ld1REKG5ld1RELCB0cik7DQogICAgICB9DQoNCiAgICB9DQoNCiAgfQ0KICANCiAgDQogIHNvcnRUYWJsZSgwKQ0KDQogIC8vIHVzYWdlIEluZm8gIA0KICB2YXIgZGl2ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNldHRpbmdzIik7DQogIHN3aXRjaChtZW51W2FjdGl2ZU1lbnUuaWRdLmhhc093blByb3BlcnR5KCJfdXNhZ2UiKSkgew0KICAgIGNhc2UgdHJ1ZTogDQogICAgICB2YXIgdXNhZ2VJdGVtID0gbmV3IE9iamVjdCgpOw0KICAgICAgdXNhZ2VJdGVtWyJfZWxlbWVudCJdID0gIlBSRSINCiAgICAgIHVzYWdlSXRlbVsiX3RleHQiXSAgICA9IG1lbnVbYWN0aXZlTWVudS5pZF1bIl91c2FnZSJdOw0KDQogICAgICB2YXIgbmV3SFIgPSBuZXcgT2JqZWN0KCk7DQogICAgICBuZXdIUlsiX2VsZW1lbnQiXSA9ICJIUiINCiAgICAgIGRpdi5hcHBlbmRDaGlsZChjcmVhdGVFbGVtZW50KG5ld0hSKSk7DQogICAgICBkaXYuYXBwZW5kQ2hpbGQoY3JlYXRlRWxlbWVudCh1c2FnZUl0ZW0pKTsNCiAgICAgIGJyZWFrOw0KICB9DQoNCiAgY2FsY3VsYXRlV3JhcHBlckhlaWdodCgpOw0KICByZXR1cm47DQp9DQoNCg0KZnVuY3Rpb24gZmlsZURldGFpbChmaWxlSUQsIGZpbGVUeXBlKSB7DQoNCiAgb3B0aW9uc1RleHQgID0gbmV3IEFycmF5KCJNM1UiLCAiSERIb21lUnVuIC0gW0V4cGVyaW1lbnRhbF0iKQ0KICBvcHRpb25zVmFsdWUgPSBuZXcgQXJyYXkoIm0zdSIsICJoZGhyIikNCg0KICBzd2l0Y2ggKGZpbGVUeXBlKSB7DQogICAgDQogICAgY2FzZSAibTN1IjogDQogICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibmFtZSIpLnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAiUGxheWxpc3QgbmFtZSIpOyANCiAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJkZXNjcmlwdGlvbiIpLnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAiRGVzY3JpcHRpb24gb2YgdGhpcyBwbGF5bGlzdCIpOyANCiAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJmaWxlLWRldGFpbC1oZWFkbGluZSIpLmlubmVySFRNTCA9ICJNM1UgUGxheWxpc3QiOyANCiAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJmaWxlLXBhdGgiKS5pbm5lckhUTUwgPSAiTTNVIEZpbGU6IjsgDQogICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZmlsZS5zb3VyY2UiKS5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgIkxvY2FsIG9yIHJlbW90ZSIpOw0KICAgICAgYnJlYWs7DQoNCiAgICBjYXNlICJoZGhyIjogDQogICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibmFtZSIpLnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAiSERIb21lUnVuIG5hbWUiKTsgDQogICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZGVzY3JpcHRpb24iKS5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgIkRlc2NyaXB0aW9uIG9mIHRoaXMgSERIb21lUnVuIHR1bmVyIik7IA0KICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImZpbGUtZGV0YWlsLWhlYWRsaW5lIikuaW5uZXJIVE1MID0gIkhESG9tZVJ1biI7IA0KICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImZpbGUtcGF0aCIpLmlubmVySFRNTCA9ICJIREhvbWVSdW4gSVA6IjsgDQogICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZmlsZS5zb3VyY2UiKS5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgIklQIGFkZHJlc3MgYW5kIHBvcnQgb2YgdGhlIHR1bmVyICgxOTIuMTY4LjEuMTA6NTAwNCkiKTsNCiAgICAgIGJyZWFrOw0KICAgIA0KICAgIGNhc2UgInhtbHR2IjogDQogICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibmFtZSIpLnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAiWE1MVFYgbmFtZSIpOyANCiAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJkZXNjcmlwdGlvbiIpLnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAiRGVzY3JpcHRpb24gb2YgdGhpcyBYTUxUViBmaWxlIik7IA0KICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImZpbGUtZGV0YWlsLWhlYWRsaW5lIikuaW5uZXJIVE1MID0gIlhNTFRWIEZpbGUiOyANCiAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJmaWxlLXBhdGgiKS5pbm5lckhUTUwgPSAiWE1MVFYgRmlsZToiOw0KICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImZpbGUuc291cmNlIikuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJMb2NhbCBvciByZW1vdGUiKTsNCg0KICAgICAgb3B0aW9uc1RleHQgID0gbmV3IEFycmF5KCJYTUxUViIpDQogICAgICBvcHRpb25zVmFsdWUgPSBuZXcgQXJyYXkoInhtbHR2IikNCiAgICAgIGJyZWFrOw0KICB9DQoNCiAgbW9kaWZ5T3B0aW9uKCJ0eXBlIiwgb3B0aW9uc1RleHQsIG9wdGlvbnNWYWx1ZSkNCiAgDQogIHNob3dQb3BVcEVsZW1lbnQoJ2ZpbGUtZGV0YWlsJyk7DQoNCiAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNhdmVGaWxlRGV0YWlsIikuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IHNhdmVGaWxlRGV0YWlsKCInICsgZmlsZUlEICsgJyIsIicgKyBmaWxlVHlwZSArICciLCBmYWxzZSknKTsNCiAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInVwZGF0ZUZpbGVEZXRhaWwiKS5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogdXBkYXRlRmlsZSgiJyArIGZpbGVJRCArICciLCInICsgZmlsZVR5cGUgKyAnIiwgZmFsc2UpJyk7DQogIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJkZWxldGVGaWxlRGV0YWlsIikuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IHNhdmVGaWxlRGV0YWlsKCInICsgZmlsZUlEICsgJyIsIicgKyBmaWxlVHlwZSArICciLCB0cnVlKScpOw0KDQogIHZhciBkYXRhID0gbmV3IE9iamVjdCgpOw0KDQogIHN3aXRjaChmaWxlSUQpIHsNCg0KICAgIGNhc2UgIi0iOiAvLyBOZXcgZmlsZQ0KICAgICAgZGF0YVsibmFtZSJdICAgICAgICA9ICIiOw0KICAgICAgZGF0YVsiZGVzY3JpcHRpb24iXSA9ICIiOw0KICAgICAgZGF0YVsiZmlsZS5zb3VyY2UiXSA9ICIiOw0KICAgICAgZGF0YVsidHlwZSJdID0gZmlsZVR5cGU7DQogICAgICANCiAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJkZWxldGVGaWxlRGV0YWlsIikuY2xhc3NOYW1lID0gImRlbGV0ZSI7DQogICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidHlwZSIpLnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiY2hhbmdlRmlsZVR5cGUodGhpcyk7IikNCiAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0eXBlIikuc2V0QXR0cmlidXRlKCJkYXRhLWlkIiwgZmlsZUlEKQ0KICAgICAgDQogICAgICBzaG93RWxlbWVudCgiZGVsZXRlRmlsZURldGFpbCIsIGZhbHNlKTsNCiAgICAgIHNob3dFbGVtZW50KCJ1cGRhdGVGaWxlRGV0YWlsIiwgZmFsc2UpOw0KICAgICAgDQogICAgICBpZiAoZmlsZVR5cGUgPT0gInhtbHR2Iikgew0KICAgICAgICBzaG93RWxlbWVudCgidHlwZSIsIGZhbHNlKTsNCiAgICAgICAgc2hvd0VsZW1lbnQoImZpbGUtdHlwZSIsIGZhbHNlKTsNCiAgICAgIH0gZWxzZSB7DQogICAgICAgIHNob3dFbGVtZW50KCJ0eXBlIiwgdHJ1ZSk7DQogICAgICAgIHNob3dFbGVtZW50KCJmaWxlLXR5cGUiLCB0cnVlKTsNCiAgICAgIH0NCiAgICAgIA0KICAgICAgYnJlYWs7DQoNCiAgICBkZWZhdWx0OiANCiAgICAgIGRhdGEgPSBjb25maWdbImZpbGVzIl1bZmlsZVR5cGVdW2ZpbGVJRF07DQogICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZGVsZXRlRmlsZURldGFpbCIpLmNsYXNzTmFtZSA9ICJkZWxldGUiOw0KICAgICAgDQogICAgICBzaG93RWxlbWVudCgidXBkYXRlRmlsZURldGFpbCIsIHRydWUpOw0KICAgICAgc2hvd0VsZW1lbnQoInR5cGUiLCBmYWxzZSk7DQogICAgICBzaG93RWxlbWVudCgiZmlsZS10eXBlIiwgZmFsc2UpOw0KICAgICAgDQogICAgICBicmVhazsNCg0KICB9DQoNCiAgdmFyIGtleXMgPSBnZXRPYmpLZXlzKGRhdGEpOw0KICANCiAgZm9yICh2YXIgaSA9IDA7IGkgPCBrZXlzLmxlbmd0aDsgaSsrKSB7DQoNCiAgICBpZihkb2N1bWVudC5nZXRFbGVtZW50QnlJZChrZXlzW2ldKSl7DQogICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChrZXlzW2ldKS52YWx1ZSA9IGRhdGFba2V5c1tpXV07DQogICAgfSANCg0KDQogIH0NCg0KfQ0KDQpmdW5jdGlvbiBjaGFuZ2VGaWxlVHlwZShlbG0pIHsNCg0KICB2YXIgZmlsZUlEID0gZWxtLmdldEF0dHJpYnV0ZSgiZGF0YS1pZCIpOw0KICB2YXIgZmlsZVR5cGUgPSBlbG0ub3B0aW9uc1tlbG0uc2VsZWN0ZWRJbmRleF0udmFsdWU7DQogIA0KICBmaWxlRGV0YWlsKGZpbGVJRCwgZmlsZVR5cGUpDQoNCn0NCg0KDQpmdW5jdGlvbiBzYXZlRmlsZURldGFpbChmaWxlSUQsIGZpbGVUeXBlLCBkZWxldGVGaWxlKSB7DQoNCiAgaWYgKGZpbGVJRCA9PSB1bmRlZmluZWQpIHsNCiAgICBhbGVydCgiSUQgaXMgbWlzc2luZyEhISIpOw0KICAgIHJldHVybiANCiAgfQ0KDQogIHZhciBpbnB1dHMgICAgICA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJmaWxlLWRldGFpbCIpLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJJTlBVVCIpOw0KICB2YXIgc2VsZWN0cyAgICAgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZmlsZS1kZXRhaWwiKS5nZXRFbGVtZW50c0J5VGFnTmFtZSgiU0VMRUNUIik7DQogIHZhciBuZXdGaWxlRGF0YSA9IG5ldyBPYmplY3QoKTsNCiAgdmFyIGRhdGEgICAgICAgID0gbmV3IE9iamVjdCgpOw0KDQogIGZvciAodmFyIGkgPSAwOyBpIDwgaW5wdXRzLmxlbmd0aDsgaSsrKSB7DQogICAgc3dpdGNoKGlucHV0c1tpXS50eXBlKSB7DQogICAgICBjYXNlICJ0ZXh0IjogbmV3RmlsZURhdGFbaW5wdXRzW2ldLm5hbWVdID0gaW5wdXRzW2ldLnZhbHVlOyBicmVhazsNCiAgICB9DQogIH0NCg0KICBmb3IgKHZhciBpID0gMDsgaSA8IHNlbGVjdHMubGVuZ3RoOyBpKyspIHsNCiAgICBuZXdGaWxlRGF0YVtzZWxlY3RzW2ldLmlkXSA9IHNlbGVjdHNbaV0ub3B0aW9uc1tzZWxlY3RzW2ldLnNlbGVjdGVkSW5kZXhdLnZhbHVlOw0KICB9DQoNCiAgaWYgKGRlbGV0ZUZpbGUgPT0gdHJ1ZSkgew0KICAgIHN3aXRjaChmaWxlVHlwZSkgew0KICAgICAgY2FzZSAibTN1IjogICB2YXIgYWxlcnRUZXh0ID0gIkRlbGV0ZSB0aGlzIHBsYXlsaXN0PyI7IGJyZWFrOw0KICAgICAgY2FzZSAiaGRociI6IHZhciBhbGVydFRleHQgPSAiRGVsZXRlIHRoaXMgSERIb21lUnVuIHR1bmVyPyI7IGJyZWFrOw0KICAgICAgY2FzZSAieG1sdHYiOiB2YXIgYWxlcnRUZXh0ID0gIkRlbGV0ZSB0aGlzIFhNTFRWIGZpbGU/IjsgYnJlYWs7DQogICAgfQ0KDQogICAgaWYgKGNvbmZpcm0oYWxlcnRUZXh0KSkgew0KICAgICAgbmV3RmlsZURhdGFbImRlbGV0ZSJdID0gdHJ1ZQ0KICAgICAgZGF0YSA9IGJ1aWxkRmlsZXNPYmooZmlsZVR5cGUsIGZpbGVJRCwgbmV3RmlsZURhdGEpOw0KICAgICAgY29uc29sZS5sb2coZGF0YSk7DQogICAgICANCiAgICB9IGVsc2Ugew0KICAgICAgc2hvd0VsZW1lbnQoInBvcHVwIiwgZmFsc2UpOw0KICAgICAgcmV0dXJuDQogICAgDQogICAgfQ0KDQogIH0gZWxzZSB7DQogIA0KICAgIHN3aXRjaChjb25maWdbImZpbGVzIl1bZmlsZVR5cGVdLmhhc093blByb3BlcnR5KGZpbGVJRCkpIHsNCg0KICAgICAgY2FzZSB0cnVlOiANCiAgICAgICAgZGF0YSA9IGNvbmZpZ1siZmlsZXMiXVtmaWxlVHlwZV1bZmlsZUlEXTsgDQogICAgICAgIGlmIChkYXRhWyJmaWxlLnNvdXJjZSJdICE9IG5ld0ZpbGVEYXRhWyJmaWxlLnNvdXJjZSJdKSB7DQogICAgICAgICAgZGF0YVsidXBkYXRlIl0gPSB0cnVlDQogICAgICAgIH0gZWxzZSB7DQogICAgICAgICAgZGF0YVsidXBkYXRlUGxheWxpc3ROYW1lIl0gPSB0cnVlOw0KICAgICAgICB9DQogICAgICAgIGJyZWFrOw0KICAgICAgDQogICAgICBjYXNlIGZhbHNlOiANCiAgICAgICAgbmV3RmlsZURhdGFbIm5ldyJdID0gdHJ1ZTsNCiAgICAgICAgZGF0YSA9IGJ1aWxkRmlsZXNPYmooZmlsZVR5cGUsIGZpbGVJRCwgbmV3RmlsZURhdGEpOw0KICAgICAgICBicmVhaw0KDQogICAgfQ0KICANCiAgfSAgDQogIA0KICBzd2l0Y2goZmlsZVR5cGUpIHsNCg0KICAgIGNhc2UgIm0zdSI6ICAgZGF0YVsiY21kIl0gPSAic2F2ZUZpbGVzTTNVIjsgYnJlYWs7DQogICAgY2FzZSAiaGRociI6ICBkYXRhWyJjbWQiXSA9ICJzYXZlRmlsZXNIREhSIjsgYnJlYWs7DQogICAgY2FzZSAieG1sdHYiOiBkYXRhWyJjbWQiXSA9ICJzYXZlRmlsZXNYTUxUViI7IGJyZWFrOw0KDQogIH0NCiAgLy9jb25zb2xlLmxvZyhkYXRhKTsNCiAgeFRlVmUoZGF0YSk7DQogIHJldHVybg0KfQ0KDQpmdW5jdGlvbiB1cGRhdGVGaWxlKGZpbGVJRCwgZmlsZVR5cGUsIGFsbEZpbGVzKSB7DQogIA0KICBzd2l0Y2goY29uZmlnWyJmaWxlcyJdW2ZpbGVUeXBlXS5oYXNPd25Qcm9wZXJ0eShmaWxlSUQpKSB7DQoNCiAgICBjYXNlIHRydWU6IA0KICAgIA0KICAgICAgdmFyIGRhdGEgPSBuZXcgT2JqZWN0KCk7DQogICAgICB2YXIgZGF0YSA9IGJ1aWxkRmlsZXNPYmooZmlsZVR5cGUsIGZpbGVJRCwgY29uZmlnWyJmaWxlcyJdW2ZpbGVUeXBlXVtmaWxlSURdKQ0KICAgICAgZGF0YVsibmV3Il0gPSB0cnVlDQoNCiAgICAgIHN3aXRjaChmaWxlVHlwZSkgew0KDQogICAgICAgIGNhc2UgIm0zdSI6ICAgZGF0YVsiY21kIl0gPSAidXBkYXRlRmlsZU0zVSI7IGJyZWFrOw0KICAgICAgICBjYXNlICJoZGhyIjogIGRhdGFbImNtZCJdID0gInVwZGF0ZUZpbGVIREhSIjsgYnJlYWs7DQogICAgICAgIGNhc2UgInhtbHR2IjogZGF0YVsiY21kIl0gPSAidXBkYXRlRmlsZVhNTFRWIjsgYnJlYWs7DQoNCiAgICAgIH0NCiAgICAgIA0KICAgICAgeFRlVmUoZGF0YSk7DQogICAgICANCiAgICAgIGJyZWFrOw0KICB9DQoNCn0NCg0KZnVuY3Rpb24gYnVpbGRGaWxlc09iaihmaWxlVHlwZSwgZmlsZUlELCBvYmopIHsNCg0KICB2YXIgZGF0YSA9IG5ldyBPYmplY3QoKTsNCiAgZGF0YVsiZmlsZXMiXSA9IG5ldyBPYmplY3QoKTsNCiAgZGF0YVsiZmlsZXMiXVtmaWxlVHlwZV0gPSBuZXcgT2JqZWN0KCk7DQogIGRhdGFbImZpbGVzIl1bZmlsZVR5cGVdW2ZpbGVJRF0gPSBvYmoNCiAgcmV0dXJuIGRhdGENCg0KfQ==" + webUI["html/js/settings_ts.js"] = "Y2xhc3MgU2V0dGluZ3NDYXRlZ29yeSB7DQogICAgY29uc3RydWN0b3IoKSB7DQogICAgICAgIHRoaXMuRG9jdW1lbnRJRCA9ICJjb250ZW50X3NldHRpbmdzIjsNCiAgICB9DQogICAgY3JlYXRlQ2F0ZWdvcnlIZWFkbGluZSh2YWx1ZSkgew0KICAgICAgICB2YXIgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIkg0Iik7DQogICAgICAgIGVsZW1lbnQuaW5uZXJIVE1MID0gdmFsdWU7DQogICAgICAgIHJldHVybiBlbGVtZW50Ow0KICAgIH0NCiAgICBjcmVhdGVIUigpIHsNCiAgICAgICAgdmFyIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJIUiIpOw0KICAgICAgICByZXR1cm4gZWxlbWVudDsNCiAgICB9DQogICAgY3JlYXRlU2V0dGluZ3Moc2V0dGluZ3NLZXkpIHsNCiAgICAgICAgdmFyIHNldHRpbmcgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJUUiIpOw0KICAgICAgICB2YXIgY29udGVudCA9IG5ldyBQb3B1cENvbnRlbnQoKTsNCiAgICAgICAgdmFyIGRhdGEgPSBTRVJWRVJbInNldHRpbmdzIl1bc2V0dGluZ3NLZXldOw0KICAgICAgICBzd2l0Y2ggKHNldHRpbmdzS2V5KSB7DQogICAgICAgICAgICAvLyBUZXh0ZWluZ2FiZW4NCiAgICAgICAgICAgIGNhc2UgInVwZGF0ZSI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy51cGRhdGUudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCAidXBkYXRlIiwgZGF0YS50b1N0cmluZygpKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnNldHRpbmdzLnVwZGF0ZS5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiYmFja3VwLnBhdGgiOg0KICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MuYmFja3VwUGF0aC50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsICJiYWNrdXAucGF0aCIsIGRhdGEpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3suc2V0dGluZ3MuYmFja3VwUGF0aC5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAidGVtcC5wYXRoIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLnRlbXBQYXRoLnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgInRlbXAucGF0aCIsIGRhdGEpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3suc2V0dGluZ3MudG1wUGF0aC5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAidXNlci5hZ2VudCI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy51c2VyQWdlbnQudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCAidXNlci5hZ2VudCIsIGRhdGEpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3suc2V0dGluZ3MudXNlckFnZW50LnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJidWZmZXIudGltZW91dCI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5idWZmZXJUaW1lb3V0LnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgImJ1ZmZlci50aW1lb3V0IiwgZGF0YSk7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5zZXR0aW5ncy5idWZmZXJUaW1lb3V0LnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJmZm1wZWcucGF0aCI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5mZm1wZWdQYXRoLnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgImZmbXBlZy5wYXRoIiwgZGF0YSk7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5zZXR0aW5ncy5mZm1wZWdQYXRoLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJmZm1wZWcub3B0aW9ucyI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5mZm1wZWdPcHRpb25zLnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgImZmbXBlZy5vcHRpb25zIiwgZGF0YSk7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5zZXR0aW5ncy5mZm1wZWdPcHRpb25zLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ2bGMucGF0aCI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy52bGNQYXRoLnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgInZsYy5wYXRoIiwgZGF0YSk7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5zZXR0aW5ncy52bGNQYXRoLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ2bGMub3B0aW9ucyI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy52bGNPcHRpb25zLnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgInZsYy5vcHRpb25zIiwgZGF0YSk7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5zZXR0aW5ncy52bGNPcHRpb25zLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAvLyBDaGVja2JveGVuDQogICAgICAgICAgICBjYXNlICJhdXRoZW50aWNhdGlvbi53ZWIiOg0KICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MuYXV0aGVudGljYXRpb25XRUIudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goc2V0dGluZ3NLZXkpOw0KICAgICAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImF1dGhlbnRpY2F0aW9uLnBtcyI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5hdXRoZW50aWNhdGlvblBNUy50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChzZXR0aW5nc0tleSk7DQogICAgICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGE7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiYXV0aGVudGljYXRpb24ubTN1IjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmF1dGhlbnRpY2F0aW9uTTNVLnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KHNldHRpbmdzS2V5KTsNCiAgICAgICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJhdXRoZW50aWNhdGlvbi54bWwiOg0KICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MuYXV0aGVudGljYXRpb25YTUwudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goc2V0dGluZ3NLZXkpOw0KICAgICAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImF1dGhlbnRpY2F0aW9uLmFwaSI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5hdXRoZW50aWNhdGlvbkFQSS50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChzZXR0aW5nc0tleSk7DQogICAgICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGE7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiZmlsZXMudXBkYXRlIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmZpbGVzVXBkYXRlLnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KHNldHRpbmdzS2V5KTsNCiAgICAgICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJjYWNoZS5pbWFnZXMiOg0KICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MuY2FjaGVJbWFnZXMudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goc2V0dGluZ3NLZXkpOw0KICAgICAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInhlcGcucmVwbGFjZS5taXNzaW5nLmltYWdlcyI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5yZXBsYWNlRW1wdHlJbWFnZXMudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goc2V0dGluZ3NLZXkpOw0KICAgICAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInh0ZXZlQXV0b1VwZGF0ZSI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy54dGV2ZUF1dG9VcGRhdGUudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goc2V0dGluZ3NLZXkpOw0KICAgICAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImFwaSI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5hcGkudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goc2V0dGluZ3NLZXkpOw0KICAgICAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIC8vIFNlbGVjdA0KICAgICAgICAgICAgY2FzZSAidHVuZXIiOg0KICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MudHVuZXIudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciB0ZXh0ID0gbmV3IEFycmF5KCk7DQogICAgICAgICAgICAgICAgdmFyIHZhbHVlcyA9IG5ldyBBcnJheSgpOw0KICAgICAgICAgICAgICAgIGZvciAodmFyIGkgPSAxOyBpIDw9IDEwMDsgaSsrKSB7DQogICAgICAgICAgICAgICAgICAgIHRleHQucHVzaChpKTsNCiAgICAgICAgICAgICAgICAgICAgdmFsdWVzLnB1c2goaSk7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIHZhciBzZWxlY3QgPSBjb250ZW50LmNyZWF0ZVNlbGVjdCh0ZXh0LCB2YWx1ZXMsIGRhdGEsIHNldHRpbmdzS2V5KTsNCiAgICAgICAgICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQoc2VsZWN0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImVwZ1NvdXJjZSI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5lcGdTb3VyY2UudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciB0ZXh0ID0gWyJQTVMiLCAiWEVQRyJdOw0KICAgICAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBbIlBNUyIsICJYRVBHIl07DQogICAgICAgICAgICAgICAgdmFyIHNlbGVjdCA9IGNvbnRlbnQuY3JlYXRlU2VsZWN0KHRleHQsIHZhbHVlcywgZGF0YSwgc2V0dGluZ3NLZXkpOw0KICAgICAgICAgICAgICAgIHNlbGVjdC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChzZWxlY3QpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiYmFja3VwLmtlZXAiOg0KICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MuYmFja3VwS2VlcC50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIHRleHQgPSBbIjUiLCAiMTAiLCAiMjAiLCAiMzAiLCAiNDAiLCAiNTAiXTsNCiAgICAgICAgICAgICAgICB2YXIgdmFsdWVzID0gWyI1IiwgIjEwIiwgIjIwIiwgIjMwIiwgIjQwIiwgIjUwIl07DQogICAgICAgICAgICAgICAgdmFyIHNlbGVjdCA9IGNvbnRlbnQuY3JlYXRlU2VsZWN0KHRleHQsIHZhbHVlcywgZGF0YSwgc2V0dGluZ3NLZXkpOw0KICAgICAgICAgICAgICAgIHNlbGVjdC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChzZWxlY3QpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiYnVmZmVyLnNpemUua2IiOg0KICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MuYnVmZmVyU2l6ZS50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIHRleHQgPSBbIjAuNSBNQiIsICIxIE1CIiwgIjIgTUIiLCAiMyBNQiIsICI0IE1CIiwgIjUgTUIiLCAiNiBNQiIsICI3IE1CIiwgIjggTUIiXTsNCiAgICAgICAgICAgICAgICB2YXIgdmFsdWVzID0gWyI1MTIiLCAiMTAyNCIsICIyMDQ4IiwgIjMwNzIiLCAiNDA5NiIsICI1MTIwIiwgIjYxNDQiLCAiNzE2OCIsICI4MTkyIl07DQogICAgICAgICAgICAgICAgdmFyIHNlbGVjdCA9IGNvbnRlbnQuY3JlYXRlU2VsZWN0KHRleHQsIHZhbHVlcywgZGF0YSwgc2V0dGluZ3NLZXkpOw0KICAgICAgICAgICAgICAgIHNlbGVjdC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChzZWxlY3QpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiYnVmZmVyIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLnN0cmVhbUJ1ZmZlcmluZy50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIHRleHQgPSBbInt7LnNldHRpbmdzLnN0cmVhbUJ1ZmZlcmluZy5pbmZvX2ZhbHNlfX0iLCAieFRlVmU6ICh7ey5zZXR0aW5ncy5zdHJlYW1CdWZmZXJpbmcuaW5mb194dGV2ZX19KSIsICJGRm1wZWc6ICh7ey5zZXR0aW5ncy5zdHJlYW1CdWZmZXJpbmcuaW5mb19mZm1wZWd9fSkiLCAiVkxDOiAoe3suc2V0dGluZ3Muc3RyZWFtQnVmZmVyaW5nLmluZm9fdmxjfX0pIl07DQogICAgICAgICAgICAgICAgdmFyIHZhbHVlcyA9IFsiLSIsICJ4dGV2ZSIsICJmZm1wZWciLCAidmxjIl07DQogICAgICAgICAgICAgICAgdmFyIHNlbGVjdCA9IGNvbnRlbnQuY3JlYXRlU2VsZWN0KHRleHQsIHZhbHVlcywgZGF0YSwgc2V0dGluZ3NLZXkpOw0KICAgICAgICAgICAgICAgIHNlbGVjdC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChzZWxlY3QpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAidWRweHkiOg0KICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MudWRweHkudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCAidWRweHkiLCBkYXRhKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnNldHRpbmdzLnVkcHh5LnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIH0NCiAgICAgICAgcmV0dXJuIHNldHRpbmc7DQogICAgfQ0KICAgIGNyZWF0ZURlc2NyaXB0aW9uKHNldHRpbmdzS2V5KSB7DQogICAgICAgIHZhciBkZXNjcmlwdGlvbiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlRSIik7DQogICAgICAgIHZhciB0ZXh0Ow0KICAgICAgICBzd2l0Y2ggKHNldHRpbmdzS2V5KSB7DQogICAgICAgICAgICBjYXNlICJhdXRoZW50aWNhdGlvbi53ZWIiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MuYXV0aGVudGljYXRpb25XRUIuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJhdXRoZW50aWNhdGlvbi5tM3UiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MuYXV0aGVudGljYXRpb25NM1UuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJhdXRoZW50aWNhdGlvbi5wbXMiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MuYXV0aGVudGljYXRpb25QTVMuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJhdXRoZW50aWNhdGlvbi54bWwiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MuYXV0aGVudGljYXRpb25YTUwuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJhdXRoZW50aWNhdGlvbi5hcGkiOg0KICAgICAgICAgICAgICAgIGlmIChTRVJWRVJbInNldHRpbmdzIl1bImF1dGhlbnRpY2F0aW9uLndlYiJdID09IHRydWUpIHsNCiAgICAgICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5hdXRoZW50aWNhdGlvbkFQSS5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ4dGV2ZUF1dG9VcGRhdGUiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MueHRldmVBdXRvVXBkYXRlLmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiYmFja3VwLmtlZXAiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MuYmFja3VwS2VlcC5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImJhY2t1cC5wYXRoIjoNCiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLmJhY2t1cFBhdGguZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ0ZW1wLnBhdGgiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MudGVtcFBhdGguZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJidWZmZXIiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3Muc3RyZWFtQnVmZmVyaW5nLmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiYnVmZmVyLnNpemUua2IiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MuYnVmZmVyU2l6ZS5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImJ1ZmZlci50aW1lb3V0IjoNCiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLmJ1ZmZlclRpbWVvdXQuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ1c2VyLmFnZW50IjoNCiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLnVzZXJBZ2VudC5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImZmbXBlZy5wYXRoIjoNCiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLmZmbXBlZ1BhdGguZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJmZm1wZWcub3B0aW9ucyI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5mZm1wZWdPcHRpb25zLmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAidmxjLnBhdGgiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MudmxjUGF0aC5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInZsYy5vcHRpb25zIjoNCiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLnZsY09wdGlvbnMuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJlcGdTb3VyY2UiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MuZXBnU291cmNlLmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAidHVuZXIiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MudHVuZXIuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ1cGRhdGUiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MudXBkYXRlLmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiYXBpIjoNCiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLmFwaS5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImZpbGVzLnVwZGF0ZSI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5maWxlc1VwZGF0ZS5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImNhY2hlLmltYWdlcyI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5jYWNoZUltYWdlcy5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInhlcGcucmVwbGFjZS5taXNzaW5nLmltYWdlcyI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5yZXBsYWNlRW1wdHlJbWFnZXMuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ1ZHB4eSI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy51ZHB4eS5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICAgICAgdGV4dCA9ICIiOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICB9DQogICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gIiI7DQogICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgdmFyIHByZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlBSRSIpOw0KICAgICAgICBwcmUuaW5uZXJIVE1MID0gdGV4dDsNCiAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChwcmUpOw0KICAgICAgICBkZXNjcmlwdGlvbi5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICBkZXNjcmlwdGlvbi5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgcmV0dXJuIGRlc2NyaXB0aW9uOw0KICAgIH0NCn0NCmNsYXNzIFNldHRpbmdzQ2F0ZWdvcnlJdGVtIGV4dGVuZHMgU2V0dGluZ3NDYXRlZ29yeSB7DQogICAgY29uc3RydWN0b3IoaGVhZGxpbmUsIHNldHRpbmdzS2V5cykgew0KICAgICAgICBzdXBlcigpOw0KICAgICAgICB0aGlzLmhlYWRsaW5lID0gaGVhZGxpbmU7DQogICAgICAgIHRoaXMuc2V0dGluZ3NLZXlzID0gc2V0dGluZ3NLZXlzOw0KICAgIH0NCiAgICBjcmVhdGVDYXRlZ29yeSgpIHsNCiAgICAgICAgdmFyIGhlYWRsaW5lID0gdGhpcy5jcmVhdGVDYXRlZ29yeUhlYWRsaW5lKHRoaXMuaGVhZGxpbmUpOw0KICAgICAgICB2YXIgc2V0dGluZ3NLZXlzID0gdGhpcy5zZXR0aW5nc0tleXM7DQogICAgICAgIHZhciBkb2MgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCh0aGlzLkRvY3VtZW50SUQpOw0KICAgICAgICBkb2MuYXBwZW5kQ2hpbGQoaGVhZGxpbmUpOw0KICAgICAgICAvLyBUYWJlbGxlIGbDvHIgZGllIEthdGVnb3JpZSBlcnN0ZWxsZW4NCiAgICAgICAgdmFyIHRhYmxlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEFCTEUiKTsNCiAgICAgICAgdmFyIGtleXMgPSBzZXR0aW5nc0tleXMuc3BsaXQoIiwiKTsNCiAgICAgICAga2V5cy5mb3JFYWNoKHNldHRpbmdzS2V5ID0+IHsNCiAgICAgICAgICAgIHN3aXRjaCAoc2V0dGluZ3NLZXkpIHsNCiAgICAgICAgICAgICAgICBjYXNlICJhdXRoZW50aWNhdGlvbi5wbXMiOg0KICAgICAgICAgICAgICAgIGNhc2UgImF1dGhlbnRpY2F0aW9uLm0zdSI6DQogICAgICAgICAgICAgICAgY2FzZSAiYXV0aGVudGljYXRpb24ueG1sIjoNCiAgICAgICAgICAgICAgICBjYXNlICJhdXRoZW50aWNhdGlvbi5hcGkiOg0KICAgICAgICAgICAgICAgICAgICBpZiAoU0VSVkVSWyJzZXR0aW5ncyJdWyJhdXRoZW50aWNhdGlvbi53ZWIiXSA9PSBmYWxzZSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBkZWZhdWx0Og0KICAgICAgICAgICAgICAgICAgICB2YXIgaXRlbSA9IHRoaXMuY3JlYXRlU2V0dGluZ3Moc2V0dGluZ3NLZXkpOw0KICAgICAgICAgICAgICAgICAgICB2YXIgZGVzY3JpcHRpb24gPSB0aGlzLmNyZWF0ZURlc2NyaXB0aW9uKHNldHRpbmdzS2V5KTsNCiAgICAgICAgICAgICAgICAgICAgdGFibGUuYXBwZW5kQ2hpbGQoaXRlbSk7DQogICAgICAgICAgICAgICAgICAgIHRhYmxlLmFwcGVuZENoaWxkKGRlc2NyaXB0aW9uKTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICB9DQogICAgICAgIH0pOw0KICAgICAgICBkb2MuYXBwZW5kQ2hpbGQodGFibGUpOw0KICAgICAgICBkb2MuYXBwZW5kQ2hpbGQodGhpcy5jcmVhdGVIUigpKTsNCiAgICB9DQp9DQpmdW5jdGlvbiBzaG93U2V0dGluZ3MoKSB7DQogICAgY29uc29sZS5sb2coIlNFVFRJTkdTIik7DQogICAgZm9yIChsZXQgaSA9IDA7IGkgPCBzZXR0aW5nc0NhdGVnb3J5Lmxlbmd0aDsgaSsrKSB7DQogICAgICAgIHNldHRpbmdzQ2F0ZWdvcnlbaV0uY3JlYXRlQ2F0ZWdvcnkoKTsNCiAgICB9DQp9DQpmdW5jdGlvbiBzYXZlU2V0dGluZ3MoKSB7DQogICAgY29uc29sZS5sb2coIlNhdmUgU2V0dGluZ3MiKTsNCiAgICB2YXIgY21kID0gInNhdmVTZXR0aW5ncyI7DQogICAgdmFyIGRpdiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb250ZW50X3NldHRpbmdzIik7DQogICAgdmFyIHNldHRpbmdzID0gZGl2LmdldEVsZW1lbnRzQnlDbGFzc05hbWUoImNoYW5nZWQiKTsNCiAgICB2YXIgbmV3U2V0dGluZ3MgPSBuZXcgT2JqZWN0KCk7DQogICAgZm9yIChsZXQgaSA9IDA7IGkgPCBzZXR0aW5ncy5sZW5ndGg7IGkrKykgew0KICAgICAgICB2YXIgbmFtZTsNCiAgICAgICAgdmFyIHZhbHVlOw0KICAgICAgICBzd2l0Y2ggKHNldHRpbmdzW2ldLnRhZ05hbWUpIHsNCiAgICAgICAgICAgIGNhc2UgIklOUFVUIjoNCiAgICAgICAgICAgICAgICBzd2l0Y2ggKHNldHRpbmdzW2ldLnR5cGUpIHsNCiAgICAgICAgICAgICAgICAgICAgY2FzZSAiY2hlY2tib3giOg0KICAgICAgICAgICAgICAgICAgICAgICAgbmFtZSA9IHNldHRpbmdzW2ldLm5hbWU7DQogICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IHNldHRpbmdzW2ldLmNoZWNrZWQ7DQogICAgICAgICAgICAgICAgICAgICAgICBuZXdTZXR0aW5nc1tuYW1lXSA9IHZhbHVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgICAgIGNhc2UgInRleHQiOg0KICAgICAgICAgICAgICAgICAgICAgICAgbmFtZSA9IHNldHRpbmdzW2ldLm5hbWU7DQogICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IHNldHRpbmdzW2ldLnZhbHVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgc3dpdGNoIChuYW1lKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAidXBkYXRlIjoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSB2YWx1ZS5zcGxpdCgiLCIpOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IHZhbHVlLmZpbHRlcihmdW5jdGlvbiAoZSkgeyByZXR1cm4gZTsgfSk7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgImJ1ZmZlci50aW1lb3V0IjoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSBwYXJzZUZsb2F0KHZhbHVlKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgIG5ld1NldHRpbmdzW25hbWVdID0gdmFsdWU7DQogICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJTRUxFQ1QiOg0KICAgICAgICAgICAgICAgIG5hbWUgPSBzZXR0aW5nc1tpXS5uYW1lOw0KICAgICAgICAgICAgICAgIHZhbHVlID0gc2V0dGluZ3NbaV0udmFsdWU7DQogICAgICAgICAgICAgICAgLy8gV2VubiBkZXIgV2VydCBlaW5lIFphaGwgaXN0LCB3aXJkIGRpZXNlciBhbHMgWmFobCBnZXNwZWljaGVydA0KICAgICAgICAgICAgICAgIGlmIChpc05hTih2YWx1ZSkpIHsNCiAgICAgICAgICAgICAgICAgICAgbmV3U2V0dGluZ3NbbmFtZV0gPSB2YWx1ZTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgZWxzZSB7DQogICAgICAgICAgICAgICAgICAgIG5ld1NldHRpbmdzW25hbWVdID0gcGFyc2VJbnQodmFsdWUpOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgfQ0KICAgIH0NCiAgICB2YXIgZGF0YSA9IG5ldyBPYmplY3QoKTsNCiAgICBkYXRhWyJzZXR0aW5ncyJdID0gbmV3U2V0dGluZ3M7DQogICAgdmFyIHNlcnZlciA9IG5ldyBTZXJ2ZXIoY21kKTsNCiAgICBzZXJ2ZXIucmVxdWVzdChkYXRhKTsNCn0NCg==" + webUI["html/img/users.png"] = "iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAAAXNSR0IArs4c6QAAAAlwSFlzAAAsSwAALEsBpT2WqQAABCRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IlhNUCBDb3JlIDUuNC4wIj4KICAgPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIgogICAgICAgICAgICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgICAgICAgICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyI+CiAgICAgICAgIDx0aWZmOlJlc29sdXRpb25Vbml0PjI8L3RpZmY6UmVzb2x1dGlvblVuaXQ+CiAgICAgICAgIDx0aWZmOkNvbXByZXNzaW9uPjU8L3RpZmY6Q29tcHJlc3Npb24+CiAgICAgICAgIDx0aWZmOlhSZXNvbHV0aW9uPjI4ODwvdGlmZjpYUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6T3JpZW50YXRpb24+MTwvdGlmZjpPcmllbnRhdGlvbj4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+Mjg4PC90aWZmOllSZXNvbHV0aW9uPgogICAgICAgICA8ZXhpZjpQaXhlbFhEaW1lbnNpb24+NTA8L2V4aWY6UGl4ZWxYRGltZW5zaW9uPgogICAgICAgICA8ZXhpZjpDb2xvclNwYWNlPjE8L2V4aWY6Q29sb3JTcGFjZT4KICAgICAgICAgPGV4aWY6UGl4ZWxZRGltZW5zaW9uPjUwPC9leGlmOlBpeGVsWURpbWVuc2lvbj4KICAgICAgICAgPGRjOnN1YmplY3Q+CiAgICAgICAgICAgIDxyZGY6QmFnLz4KICAgICAgICAgPC9kYzpzdWJqZWN0PgogICAgICAgICA8eG1wOk1vZGlmeURhdGU+MjAxOC0wOC0zMFQxNzowODozODwveG1wOk1vZGlmeURhdGU+CiAgICAgICAgIDx4bXA6Q3JlYXRvclRvb2w+UGl4ZWxtYXRvciAzLjM8L3htcDpDcmVhdG9yVG9vbD4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgIDwvcmRmOlJERj4KPC94OnhtcG1ldGE+CjU01MMAAANJSURBVGgF1ZnLaxNRFMYz2rpoFbW+SCsihaJQRMT6rPhAXAq6c+HChSguRFd1oRtd+A/oWhQ3oiiWFB91UbqRqlXXgoIIQhFbQTTQao2/GzLDZEjIPefO7SQHPjJz55zzfd/MZCa5N8h5ilKptJvWp8FekAed4Bv4Cj6Dh2A4CIJZPpszMHEV2MQ0SZdB0DROENMHjoEzQBoFCpZnbgYR58E/qfpE/kv2F2dmBvJ94G9ClHb3SiZGUBuASa3qGnVzjG3RmFmkKYrVHGB7e2zfdbOdBhc1TVyNnNSQNqg5wVURf/FdjRxpIEpzuIOio9JCtRHO2hrINkgJLfPFt6vaCII2WYrSpPVJi1RGuBrmTbxeSibIX5j3CUauAfOo9BXzNH4nMJ5TXREI1gHzqPQVRtc2zCyxJdAaGbclcMj7zi/jOdt6rZFhCH7akijznknqVEY4U78heSAhUuTekNSojFQIChIiYe57TtZrSY2LkecQzUjIBLljglz3VJ4qg+AXSDNGabbWXZ2wA6Qjabqg136hhHK6y60V8o2EGyl8/qHHpKZPGkYeQzyvIa9RM86XvFhjvOGQsxGIp2B50ZDJLuG2XZqnLO5rM3viGh9o0OZJon1bRLxxdHLcns1jJiYOAu2U0D2P0uStMXJdcVU+UdMlZ/NYgaA28ERg5ge5/R4l6VsjrANMWJiZJWeXnqm60vnxW90ul6u8ByaS4zX2i+S+qjGuGkrdSEWFzT1vlhlSC19Gui0UtnNriSfi6vX1ZWRjPcLEeGrzYqkb4SyvQGxvQnC93cF6BzIfx8gpYBsfSdycuei4AAR1ggugCCRh1lbugIF4vwXbhtisjfSDc+ARSOOf4lv6mNWv1VIj1ouQNF9K851gDzArtWbV1uYxS5o4zB+sp+AuKPC+cVv5RXwPuATMmUpreY1Wopgh+ybYKj4dFHWB+8DMwTZTjCHmsJUhEgfAF9DMcQtx9V8dHMyDqWZ2ENM2FL8yVV92kkY56GM5Lc6Z1vY0jbp5EJQnuqPLg4kdLWTCnIxVIJoDi4wweNYcbbGIfuLEjRxqMRNGbvTvsmyE22oZg70taKQn1BxekXw40GKfK0O9oZHsJ8ZCRbLPaI3xP7YzeQoHxWckAAAAAElFTkSuQmCC" + webUI["html/js/configuration_ts.js"] = "Y2xhc3MgV2l6YXJkQ2F0ZWdvcnkgew0KICAgIGNvbnN0cnVjdG9yKCkgew0KICAgICAgICB0aGlzLkRvY3VtZW50SUQgPSAiY29udGVudCI7DQogICAgfQ0KICAgIGNyZWF0ZUNhdGVnb3J5SGVhZGxpbmUodmFsdWUpIHsNCiAgICAgICAgdmFyIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJINCIpOw0KICAgICAgICBlbGVtZW50LmlubmVySFRNTCA9IHZhbHVlOw0KICAgICAgICByZXR1cm4gZWxlbWVudDsNCiAgICB9DQp9DQpjbGFzcyBXaXphcmRJdGVtIGV4dGVuZHMgV2l6YXJkQ2F0ZWdvcnkgew0KICAgIGNvbnN0cnVjdG9yKGtleSwgaGVhZGxpbmUpIHsNCiAgICAgICAgc3VwZXIoKTsNCiAgICAgICAgdGhpcy5oZWFkbGluZSA9IGhlYWRsaW5lOw0KICAgICAgICB0aGlzLmtleSA9IGtleTsNCiAgICB9DQogICAgY3JlYXRlV2l6YXJkKCkgew0KICAgICAgICB2YXIgaGVhZGxpbmUgPSB0aGlzLmNyZWF0ZUNhdGVnb3J5SGVhZGxpbmUodGhpcy5oZWFkbGluZSk7DQogICAgICAgIHZhciBrZXkgPSB0aGlzLmtleTsNCiAgICAgICAgdmFyIGNvbnRlbnQgPSBuZXcgUG9wdXBDb250ZW50KCk7DQogICAgICAgIHZhciBkZXNjcmlwdGlvbjsNCiAgICAgICAgdmFyIGRvYyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHRoaXMuRG9jdW1lbnRJRCk7DQogICAgICAgIGRvYy5pbm5lckhUTUwgPSAiIjsNCiAgICAgICAgZG9jLmFwcGVuZENoaWxkKGhlYWRsaW5lKTsNCiAgICAgICAgc3dpdGNoIChrZXkpIHsNCiAgICAgICAgICAgIGNhc2UgInR1bmVyIjoNCiAgICAgICAgICAgICAgICB2YXIgdGV4dCA9IG5ldyBBcnJheSgpOw0KICAgICAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBuZXcgQXJyYXkoKTsNCiAgICAgICAgICAgICAgICBmb3IgKHZhciBpID0gMTsgaSA8PSAxMDA7IGkrKykgew0KICAgICAgICAgICAgICAgICAgICB0ZXh0LnB1c2goaSk7DQogICAgICAgICAgICAgICAgICAgIHZhbHVlcy5wdXNoKGkpOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCAiMSIsIGtleSk7DQogICAgICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgiY2xhc3MiLCAid2l6YXJkIik7DQogICAgICAgICAgICAgICAgc2VsZWN0LmlkID0ga2V5Ow0KICAgICAgICAgICAgICAgIGRvYy5hcHBlbmRDaGlsZChzZWxlY3QpOw0KICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uID0gInt7LndpemFyZC50dW5lci5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImVwZ1NvdXJjZSI6DQogICAgICAgICAgICAgICAgdmFyIHRleHQgPSBbIlBNUyIsICJYRVBHIl07DQogICAgICAgICAgICAgICAgdmFyIHZhbHVlcyA9IFsiUE1TIiwgIlhFUEciXTsNCiAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCAiWEVQRyIsIGtleSk7DQogICAgICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgiY2xhc3MiLCAid2l6YXJkIik7DQogICAgICAgICAgICAgICAgc2VsZWN0LmlkID0ga2V5Ow0KICAgICAgICAgICAgICAgIGRvYy5hcHBlbmRDaGlsZChzZWxlY3QpOw0KICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uID0gInt7LndpemFyZC5lcGdTb3VyY2UuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJtM3UiOg0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBrZXksICIiKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LndpemFyZC5tM3UucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgiY2xhc3MiLCAid2l6YXJkIik7DQogICAgICAgICAgICAgICAgaW5wdXQuaWQgPSBrZXk7DQogICAgICAgICAgICAgICAgZG9jLmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbiA9ICJ7ey53aXphcmQubTN1LmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAieG1sdHYiOg0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBrZXksICIiKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LndpemFyZC54bWx0di5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJjbGFzcyIsICJ3aXphcmQiKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5pZCA9IGtleTsNCiAgICAgICAgICAgICAgICBkb2MuYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uID0gInt7LndpemFyZC54bWx0di5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICAgICAgY29uc29sZS5sb2coa2V5KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgfQ0KICAgICAgICB2YXIgcHJlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiUFJFIik7DQogICAgICAgIHByZS5pbm5lckhUTUwgPSBkZXNjcmlwdGlvbjsNCiAgICAgICAgZG9jLmFwcGVuZENoaWxkKHByZSk7DQogICAgICAgIGNvbnNvbGUubG9nKGhlYWRsaW5lLCBrZXkpOw0KICAgIH0NCn0NCmZ1bmN0aW9uIHJlYWR5Rm9yQ29uZmlndXJhdGlvbih3aXphcmQpIHsNCiAgICB2YXIgc2VydmVyID0gbmV3IFNlcnZlcigiZ2V0U2VydmVyQ29uZmlnIik7DQogICAgc2VydmVyLnJlcXVlc3QobmV3IE9iamVjdCgpKTsNCiAgICBzaG93RWxlbWVudCgibG9hZGluZyIsIGZhbHNlKTsNCiAgICBjb25maWd1cmF0aW9uV2l6YXJkW3dpemFyZF0uY3JlYXRlV2l6YXJkKCk7DQp9DQpmdW5jdGlvbiBzYXZlV2l6YXJkKCkgew0KICAgIHZhciBjbWQgPSAic2F2ZVdpemFyZCI7DQogICAgdmFyIGRpdiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb250ZW50Iik7DQogICAgdmFyIGNvbmZpZyA9IGRpdi5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCJ3aXphcmQiKTsNCiAgICB2YXIgd2l6YXJkID0gbmV3IE9iamVjdCgpOw0KICAgIGZvciAodmFyIGkgPSAwOyBpIDwgY29uZmlnLmxlbmd0aDsgaSsrKSB7DQogICAgICAgIHZhciBuYW1lOw0KICAgICAgICB2YXIgdmFsdWU7DQogICAgICAgIHN3aXRjaCAoY29uZmlnW2ldLnRhZ05hbWUpIHsNCiAgICAgICAgICAgIGNhc2UgIlNFTEVDVCI6DQogICAgICAgICAgICAgICAgbmFtZSA9IGNvbmZpZ1tpXS5uYW1lOw0KICAgICAgICAgICAgICAgIHZhbHVlID0gY29uZmlnW2ldLnZhbHVlOw0KICAgICAgICAgICAgICAgIC8vIFdlbm4gZGVyIFdlcnQgZWluZSBaYWhsIGlzdCwgd2lyZCBkaWVzZXIgYWxzIFphaGwgZ2VzcGVpY2hlcnQNCiAgICAgICAgICAgICAgICBpZiAoaXNOYU4odmFsdWUpKSB7DQogICAgICAgICAgICAgICAgICAgIHdpemFyZFtuYW1lXSA9IHZhbHVlOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICAgICAgd2l6YXJkW25hbWVdID0gcGFyc2VJbnQodmFsdWUpOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgIklOUFVUIjoNCiAgICAgICAgICAgICAgICBzd2l0Y2ggKGNvbmZpZ1tpXS50eXBlKSB7DQogICAgICAgICAgICAgICAgICAgIGNhc2UgInRleHQiOg0KICAgICAgICAgICAgICAgICAgICAgICAgbmFtZSA9IGNvbmZpZ1tpXS5uYW1lOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSBjb25maWdbaV0udmFsdWU7DQogICAgICAgICAgICAgICAgICAgICAgICBpZiAodmFsdWUubGVuZ3RoID09IDApIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgbXNnID0gbmFtZS50b1VwcGVyQ2FzZSgpICsgIjogIiArICJ7ey5hbGVydC5taXNzaW5nSW5wdXR9fSI7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgYWxlcnQobXNnKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICB3aXphcmRbbmFtZV0gPSB2YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICAgICAgLy8gY29kZS4uLg0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICB9DQogICAgfQ0KICAgIHZhciBkYXRhID0gbmV3IE9iamVjdCgpOw0KICAgIGRhdGFbIndpemFyZCJdID0gd2l6YXJkOw0KICAgIHZhciBzZXJ2ZXIgPSBuZXcgU2VydmVyKGNtZCk7DQogICAgc2VydmVyLnJlcXVlc3QoZGF0YSk7DQogICAgY29uc29sZS5sb2coZGF0YSk7DQp9DQovLyBXaXphcmQNCnZhciBjb25maWd1cmF0aW9uV2l6YXJkID0gbmV3IEFycmF5KCk7DQpjb25maWd1cmF0aW9uV2l6YXJkLnB1c2gobmV3IFdpemFyZEl0ZW0oInR1bmVyIiwgInt7LndpemFyZC50dW5lci50aXRsZX19IikpOw0KY29uZmlndXJhdGlvbldpemFyZC5wdXNoKG5ldyBXaXphcmRJdGVtKCJlcGdTb3VyY2UiLCAie3sud2l6YXJkLmVwZ1NvdXJjZS50aXRsZX19IikpOw0KY29uZmlndXJhdGlvbldpemFyZC5wdXNoKG5ldyBXaXphcmRJdGVtKCJtM3UiLCAie3sud2l6YXJkLm0zdS50aXRsZX19IikpOw0KY29uZmlndXJhdGlvbldpemFyZC5wdXNoKG5ldyBXaXphcmRJdGVtKCJ4bWx0diIsICJ7ey53aXphcmQueG1sdHYudGl0bGV9fSIpKTsNCg==" webUI["html/js/data.js"] = "ZnVuY3Rpb24gc2hvd0NvbmZpZyhvYmopIHsNCiAgY29uZmlnID0gb2JqOw0KICAvL3NldE1lbnVJdGVtKCk7DQogIGNyZWF0ZU1lbnUoKTsNCiAgLy9kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicGFnZSIpLmNsYXNzTmFtZSA9ICIiOw0KfQ0KDQpzaG93TXlTdHJlYW1zDQoNCmZ1bmN0aW9uIHNob3dNeVN0cmVhbXMoYWxsU3RyZWFtc09iaikgew0KDQogIHZhciBzdHJlYW1UeXBlS2V5cyA9IGdldE9iaktleXMoYWxsU3RyZWFtc09iaikNCg0KICBmb3IgKHZhciBzID0gMDsgcyA8IHN0cmVhbVR5cGVLZXlzLmxlbmd0aDsgcysrKSB7DQogICAgdmFyIHN0cmVhbVR5cGUgPSBzdHJlYW1UeXBlS2V5c1tzXTsNCiAgICB2YXIgb2JqID0gbmV3IE9iamVjdCgpOw0KICAgIG9iaiA9IGFsbFN0cmVhbXNPYmpbc3RyZWFtVHlwZV07DQogICAgc3dpdGNoKHN0cmVhbVR5cGUpIHsNCiAgICAgIGNhc2UgImFjdGl2ZVN0cmVhbXMiOiBhY3RpdmVTdHJlYW1zICAgICA9IG9iajsgYnJlYWs7DQogICAgfQ0KDQogICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoc3RyZWFtVHlwZSkuaW5uZXJIVE1MID0gIiI7DQoNCiAgICB2YXIgc3RyZWFtc09iaiAgICA9IG5ldyBPYmplY3QoKTsNCiAgICB2YXIgc3RyZWFtc05hbWVzICA9IG5ldyBBcnJheSgpOw0KICAgIA0KICAgIHZhciBrZXlzID0gZ2V0T2JqS2V5cyhvYmopDQogICAgDQogICAgLy8gQ3JlYXRlIE9iamVjdCAoc3RyZWFtc09iaikgZm9yIHRoZSBzdHJlYW1zIGFuZCBzb3J0IGJ5IG5hbWUgKHN0cmVhbXNOYW1lcykNCiAgICBmb3IgKHZhciBpID0gMDsgaSA8IGtleXMubGVuZ3RoOyBpKyspIHsNCiAgICAgIHZhciBuYW1lICAgID0gb2JqW2tleXNbaV1dWyJuYW1lIl07DQogICAgICB2YXIgdG1wID0gbmV3IE9iamVjdCgpOw0KICAgICAgdmFyIHN0cmVhbUtleSA9IGdldE9iaktleXMob2JqW2tleXNbaV1dKTsNCg0KICAgICAgZm9yICh2YXIgaiA9IDA7IGogPCBzdHJlYW1LZXkubGVuZ3RoOyBqKyspIHsNCiAgICAgICAgdG1wW3N0cmVhbUtleVtqXV0gPSBvYmpba2V5c1tpXV1bc3RyZWFtS2V5W2pdXTsgICAgICANCiAgICAgIH0NCg0KICAgICAgc3RyZWFtc09ialtuYW1lXSA9IHRtcDsNCiAgICAgIHN0cmVhbXNOYW1lcy5wdXNoKG5hbWUpDQogICAgfQ0KDQogICAgc3RyZWFtc05hbWVzLnNvcnQoKTsNCiAgICANCiAgICAvLyBDcmVhdGUgVGFibGUgZm9yIGFjdGl2ZVN0cmVhbXMNCiAgICB2YXIgdGFibGUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChzdHJlYW1UeXBlKTsNCg0KICAgIGZvciAodmFyIGkgPSAwOyBpIDwgc3RyZWFtc05hbWVzLmxlbmd0aDsgaSsrKSB7DQogICAgICB2YXIgbmV3RW50cnkgPSBuZXcgT2JqZWN0KCk7DQogICAgICBuZXdFbnRyeVsiX2VsZW1lbnQiXSA9ICJUUiI7DQogICAgICB0YWJsZS5hcHBlbmRDaGlsZChjcmVhdGVFbGVtZW50KG5ld0VudHJ5KSk7DQogICAgICB2YXIgbGluZSA9IHRhYmxlLmxhc3RDaGlsZDsNCg0KICAgICAgdmFyIHRtcCA9IHN0cmVhbXNPYmpbc3RyZWFtc05hbWVzW2ldXQ0KICAgICAgdmFyIGtleXMgPSBnZXRPYmpLZXlzKHRtcCkNCg0KICAgICAgdmFyIG5ld0tleSA9IG5ldyBPYmplY3QoKQ0KICAgICAgbmV3S2V5WyJfZWxlbWVudCJdICA9ICJURCI7DQogICAgICAvL25ld0tleVsiX3RleHQiXSAgICAgPSBzdHJlYW1zTmFtZXNbaV07DQogICAgICBzd2l0Y2goc3RyZWFtVHlwZSkgew0KICAgICAgICBjYXNlICJhY3RpdmVTdHJlYW1zIjogbmV3S2V5WyJfdGV4dCJdICAgICA9ICJDaGFubmVsICgrKToiOyBicmVhazsNCiAgICAgICAgY2FzZSAiaW5hY3RpdmVTdHJlYW1zIjogbmV3S2V5WyJfdGV4dCJdICAgPSAiQ2hhbm5lbCAoLSk6IjsgYnJlYWs7DQogICAgICB9DQogICAgICANCiAgICAgIG5ld0tleVsiY2xhc3MiXSAgICAgPSAidGRLZXkiOw0KICAgICAgY29uc29sZS5sb2coKTsNCg0KDQogICAgICB2YXIgbmV3VmFsID0gbmV3IE9iamVjdCgpDQogICAgICBuZXdWYWxbIl9lbGVtZW50Il0gID0gIlREIjsNCiAgICAgIG5ld1ZhbFsiX3RleHQiXSAgICAgPSBzdHJlYW1zTmFtZXNbaV07DQogICAgICBuZXdWYWxbImNsYXNzIl0gICAgID0gInRkVmFsIjsNCiAgICAgIC8vbmV3VmFsWyJfdGV4dCJdICAgICA9IHZhbHVlOw0KICAgICAgDQogICAgICBsaW5lLmFwcGVuZENoaWxkKGNyZWF0ZUVsZW1lbnQobmV3S2V5KSk7DQogICAgICBsaW5lLmFwcGVuZENoaWxkKGNyZWF0ZUVsZW1lbnQobmV3VmFsKSk7DQogICAgICANCiAgICB9DQoNCiAgfQ0KDQogIHJldHVybg0KfQ0KDQpmdW5jdGlvbiBzaG93QWN0aXZlU3RyZWFtcyhvYmopIHsNCiAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImFjdGl2ZVN0cmVhbXMiKS5pbm5lckhUTUwgPSAiIjsNCiAgYWN0aXZlU3RyZWFtcyAgICAgPSBvYmo7DQogIHZhciBzdHJlYW1zT2JqICAgID0gbmV3IE9iamVjdCgpOw0KICB2YXIgc3RyZWFtc05hbWVzICA9IG5ldyBBcnJheSgpOw0KICANCiAgdmFyIGtleXMgPSBnZXRPYmpLZXlzKG9iaikNCiAgDQogIC8vIENyZWF0ZSBPYmplY3QgKHN0cmVhbXNPYmopIGZvciB0aGUgc3RyZWFtcyBhbmQgc29ydCBieSBuYW1lIChzdHJlYW1zTmFtZXMpDQogIGZvciAodmFyIGkgPSAwOyBpIDwga2V5cy5sZW5ndGg7IGkrKykgew0KICAgIHZhciBuYW1lICAgID0gb2JqW2tleXNbaV1dWyJuYW1lIl07DQogICAgdmFyIHRtcCA9IG5ldyBPYmplY3QoKTsNCiAgICB2YXIgc3RyZWFtS2V5ID0gZ2V0T2JqS2V5cyhvYmpba2V5c1tpXV0pOw0KDQogICAgZm9yICh2YXIgaiA9IDA7IGogPCBzdHJlYW1LZXkubGVuZ3RoOyBqKyspIHsNCiAgICAgIHRtcFtzdHJlYW1LZXlbal1dID0gb2JqW2tleXNbaV1dW3N0cmVhbUtleVtqXV07ICAgICAgDQogICAgfQ0KDQogICAgc3RyZWFtc09ialtuYW1lXSA9IHRtcDsNCiAgICBzdHJlYW1zTmFtZXMucHVzaChuYW1lKQ0KICB9DQoNCiAgc3RyZWFtc05hbWVzLnNvcnQoKTsNCiAgDQogIC8vIENyZWF0ZSBUYWJsZSBmb3IgYWN0aXZlU3RyZWFtcw0KICB2YXIgdGFibGUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYWN0aXZlU3RyZWFtcyIpOw0KDQogIGZvciAodmFyIGkgPSAwOyBpIDwgc3RyZWFtc05hbWVzLmxlbmd0aDsgaSsrKSB7DQogICAgdmFyIG5ld0VudHJ5ID0gbmV3IE9iamVjdCgpOw0KICAgIG5ld0VudHJ5WyJfZWxlbWVudCJdID0gIlRSIjsNCiAgICB0YWJsZS5hcHBlbmRDaGlsZChjcmVhdGVFbGVtZW50KG5ld0VudHJ5KSk7DQogICAgdmFyIGxpbmUgPSB0YWJsZS5sYXN0Q2hpbGQ7DQoNCiAgICB2YXIgdG1wID0gc3RyZWFtc09ialtzdHJlYW1zTmFtZXNbaV1dDQogICAgdmFyIGtleXMgPSBnZXRPYmpLZXlzKHRtcCkNCg0KICAgIHZhciBuZXdLZXkgPSBuZXcgT2JqZWN0KCkNCiAgICBuZXdLZXlbIl9lbGVtZW50Il0gID0gIlREIjsNCiAgICAvL25ld0tleVsiX3RleHQiXSAgICAgPSBzdHJlYW1zTmFtZXNbaV07DQogICAgbmV3S2V5WyJfdGV4dCJdICAgICA9ICJDaGFubmVsOiI7DQogICAgbmV3S2V5WyJjbGFzcyJdICAgICA9ICJ0ZEtleSI7DQogICAgY29uc29sZS5sb2coKTsNCg0KDQogICAgdmFyIG5ld1ZhbCA9IG5ldyBPYmplY3QoKQ0KICAgIG5ld1ZhbFsiX2VsZW1lbnQiXSAgPSAiVEQiOw0KICAgIG5ld1ZhbFsiX3RleHQiXSAgICAgPSBzdHJlYW1zTmFtZXNbaV07DQogICAgbmV3VmFsWyJjbGFzcyJdICAgICA9ICJ0ZFZhbCI7DQogICAgLy9uZXdWYWxbIl90ZXh0Il0gICAgID0gdmFsdWU7DQogICAgDQogICAgbGluZS5hcHBlbmRDaGlsZChjcmVhdGVFbGVtZW50KG5ld0tleSkpOw0KICAgIGxpbmUuYXBwZW5kQ2hpbGQoY3JlYXRlRWxlbWVudChuZXdWYWwpKTsNCiAgICANCiAgfQ0KDQp9DQoNCmZ1bmN0aW9uIHBhcnNlTG9ncyhvYmopIHsNCiAgbG9nID0gb2JqDQogIHZhciBrZXlzID0gZ2V0T2JqS2V5cyhvYmopDQoNCiAgdmFyIG1zZ1R5cGU7DQogIGZvciAodmFyIGkgPSAwOyBpIDwga2V5cy5sZW5ndGg7IGkrKykgew0KICAgIHN3aXRjaChrZXlzW2ldKSB7DQogICAgICBjYXNlICJ3YXJuaW5ncyI6ICBtc2dUeXBlID0gIndhcm5pbmdNc2ciOyBicmVhazsNCiAgICAgIGNhc2UgImVycm9ycyI6ICAgIG1zZ1R5cGUgPSAiZXJyb3JNc2ciOyBicmVhazsNCiAgICB9DQoNCiAgICBzd2l0Y2gob2JqW2tleXNbaV1dKSB7DQogICAgICBjYXNlIDA6IG1zZ1R5cGUgPSAidGRWYWwiOyBicmVhazsNCiAgICAgIGRlZmF1bHQ6IGJyZWFrOw0KICAgIH0NCg0KICAgIGlmKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGtleXNbaV0pKXsNCiAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGtleXNbaV0pLmNsYXNzTmFtZSA9IG1zZ1R5cGU7DQogICAgfQ0KICAgIA0KICAgIA0KICB9DQogIHJldHVybg0KfQ0KDQoNCmZ1bmN0aW9uIGNhbmNlbERhdGEoZWxlbWVudCkgew0KICBjcmVhdGVNZW51KCk7DQp9DQoNCmZ1bmN0aW9uIHNhdmVEYXRhKGVsZW1lbnQpIHsNCiAgdmFyIGRhdGEgPSBuZXcgT2JqZWN0KCk7DQogIHZhciBkaXYgPSBlbGVtZW50LnBhcmVudE5vZGUucGFyZW50Tm9kZTsNCiAgdmFyIGlucHV0cyA9IGRpdi5nZXRFbGVtZW50c0J5VGFnTmFtZSgiSU5QVVQiKTsNCiAgDQogIHZhciBjb25maWdLZXkgPSBkaXYuZ2V0QXR0cmlidXRlKCJkYXRhLWNvbmZpZ2tleSIpOw0KICB2YXIgbWVudVR5cGUgPSBkaXYuZ2V0QXR0cmlidXRlKCJkYXRhLW1lbnV0eXBlIik7DQogIHZhciB2YWx1ZTsNCiAgdmFyIHZhbHVlQXJyID0gbmV3IEFycmF5KCk7DQogIA0KICBmb3IgKHZhciBpID0gMDsgaSA8IGlucHV0cy5sZW5ndGg7IGkrKykgew0KICAgIGlmIChpbnB1dHNbaV0udHlwZSA9PSAidGV4dCIgJiYgaW5wdXRzW2ldLnZhbHVlICE9IHVuZGVmaW5lZCAmJiBpbnB1dHNbaV0udmFsdWUgIT0gIiIgKSB7DQogICAgICBjb25zb2xlLmxvZyhpbnB1dHNbaV0udmFsdWUsIG1lbnVUeXBlKQ0KICAgICAgc3dpdGNoKG1lbnVUeXBlKSB7DQogICAgICAgIGNhc2UgImlucHV0QXJyYXkiOiB2YWx1ZUFyci5wdXNoKGlucHV0c1tpXS52YWx1ZSk7IGJyZWFrOw0KICAgICAgICBjYXNlICJzaW5nbGVJbnB1dCI6IHZhbHVlID0gaW5wdXRzW2ldLnZhbHVlOyBicmVhazsNCiAgICAgIH0NCiAgICB9DQogIH0NCg0KICBzd2l0Y2gobWVudVR5cGUpIHsNCiAgICBjYXNlICJpbnB1dEFycmF5IjogIGRhdGFbY29uZmlnS2V5XSA9IHZhbHVlQXJyOyBicmVhazsNCiAgICBjYXNlICJzaW5nbGVJbnB1dCI6ICANCiAgICAgIGlmIChpc05hTih2YWx1ZSkgPT0gZmFsc2UpIHsNCiAgICAgICAgdmFsdWUgPSBwYXJzZUludCh2YWx1ZSk7DQogICAgICAgIGRhdGFbY29uZmlnS2V5XSA9IHZhbHVlOw0KICAgICAgICBicmVhazsNCiAgICAgIH0NCg0KICAgICAgaWYgKHZhbHVlID09IHVuZGVmaW5lZCkgew0KICAgICAgICBkYXRhWyJkZWxldGUiXSA9IGNvbmZpZ0tleTsgDQogICAgICB9IGVsc2Ugew0KICAgICAgICBkYXRhW2NvbmZpZ0tleV0gPSB2YWx1ZQ0KICAgICAgfQ0KDQogICAgICBicmVhazsNCiAgfQ0KDQogIGRhdGFbImNtZCJdID0gInNhdmVDb25maWciOw0KICBjb25zb2xlLmxvZyhkYXRhKTsNCiAgeFRlVmUoZGF0YSkNCn0NCg0KZnVuY3Rpb24geFRlVmUoZGF0YSkgew0KICBpZiAod2ViU29ja2V0cyA9PSBmYWxzZSkgew0KICAgIGFsZXJ0KCJZb3VyIGJyb3dzZXIgZG9lcyBub3Qgc3VwcG9ydCBXZWJTb2NrZXRzIik7DQogICAgcmV0dXJuOw0KICB9IGVsc2Ugew0KICAgIGlmIChkYXRhWyJjbWQiXSAhPSAiZ2V0TG9nIikgew0KICAgICAgc2hvd0xvYWRpbmdTY3JlZW4odHJ1ZSkNCiAgICB9DQogIH0NCiAgZGVsZXRlIHVuZG9bImVwZ01hcHBpbmciXTsNCiAgDQogIHZhciBwcm90b2NvbFdTDQogIHN3aXRjaCh3aW5kb3cubG9jYXRpb24ucHJvdG9jb2wpIHsNCiAgICBjYXNlICJodHRwOiI6ICAgcHJvdG9jb2xXUyA9ICJ3czovLyI7IGJyZWFrOw0KICAgIGNhc2UgImh0dHBzOiI6ICBwcm90b2NvbFdTID0gIndzczovLyI7IGJyZWFrOw0KICB9DQoNCg0KICB2YXIgd3MgPSBuZXcgV2ViU29ja2V0KHByb3RvY29sV1MgKyB3aW5kb3cubG9jYXRpb24uaG9zdG5hbWUgKyAiOiIgKyB3aW5kb3cubG9jYXRpb24ucG9ydCArICIvZGF0YS8iICsgIj9Ub2tlbj0iICsgZ2V0Q29va2llKCJUb2tlbiIpKTsNCiAgd3Mub25vcGVuID0gZnVuY3Rpb24oKSB7DQogICAgY29uc29sZS5sb2coZGF0YSkNCiAgICB3cy5zZW5kKEpTT04uc3RyaW5naWZ5KGRhdGEpKTsNCiAgfQ0KDQogIHdzLm9ubWVzc2FnZSA9IGZ1bmN0aW9uIChlKSB7DQogICAgdmFyIHJlc3BvbnNlID0gSlNPTi5wYXJzZShlLmRhdGEpOw0KICAgIGNvbnNvbGUubG9nKHJlc3BvbnNlKTsNCiAgICANCiAgICBpZiAocmVzcG9uc2UuaGFzT3duUHJvcGVydHkoImNsaWVudEluZm8iKSkgew0KICAgICAgY3JlYXRlQ2xpbnRJbmZvKHJlc3BvbnNlWyJjbGllbnRJbmZvIl0pOw0KICAgIH0NCg0KICAgIGlmIChyZXNwb25zZS5oYXNPd25Qcm9wZXJ0eSgibG9nIikpIHsNCiAgICAgIGNyZWF0ZUNsaW50SW5mbyhyZXNwb25zZVsibG9nIl0pOw0KICAgIH0NCg0KICAgIGlmIChyZXNwb25zZS5oYXNPd25Qcm9wZXJ0eSgic3RhdHVzIikpIHsNCiAgICAgIGlmIChyZXNwb25zZVsic3RhdHVzIl0gPT0gZmFsc2UpIHsNCiAgICAgICAgYWxlcnQocmVzcG9uc2VbImVyciJdKQ0KICAgICAgICBpZihyZXNwb25zZS5oYXNPd25Qcm9wZXJ0eSgicmVsb2FkIikpIHsNCiAgICAgICAgICBsb2NhdGlvbi5yZWxvYWQoKTsNCiAgICAgICAgfQ0KICAgICAgICAvL2NoZWNrRXJyKHJlc3BvbnNlKQ0KICAgICAgICBjb25zb2xlLmxvZyhyZXNwb25zZSk7DQogICAgICAgIHVwZGF0ZVh0ZXZlU3RhdHVzKHJlc3BvbnNlKTsNCiAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbigpeyBzaG93TG9hZGluZ1NjcmVlbihmYWxzZSk7IH0sIDMwMCk7DQogICAgICAgIA0KICAgICAgICByZXR1cm4NCiAgICAgIH0NCg0KICAgICAgdXBkYXRlWHRldmVTdGF0dXMocmVzcG9uc2UpDQoNCiAgICAgIC8vY29uc29sZS5sb2coZGF0YVsiY21kIl0pOw0KICAgICAgc3dpdGNoKGRhdGFbImNtZCJdKSB7DQogICAgICAgIGNhc2UgInNhdmVVc2VyRGF0YSI6ICAgIGNyZWF0ZU1lbnUoKTsgYnJlYWs7DQogICAgICAgIGNhc2UgInNhdmVOZXdVc2VyIjogICAgIGNyZWF0ZU1lbnUoKTsgYnJlYWs7DQogICAgICAgIGNhc2UgInNhdmVGaWxlc1hNTFRWIjogIC8vY3JlYXRlTWVudSgpOyBicmVhazsNCiAgICAgICAgY2FzZSAic2F2ZUZpbGVzTTNVIjogICAgLy9jcmVhdGVNZW51KCk7IHJldHVybjsgYnJlYWs7DQogICAgICAgIGNhc2UgInNhdmVDb25maWciOiAgICANCiAgICAgICAgICBkYXRhID0gbmV3IE9iamVjdCgpOw0KICAgICAgICAgIGRhdGFbImNtZCJdID0gImNoZWNrVG9rZW4iOw0KICAgICAgICAgIHhUZVZlKGRhdGEpOw0KICAgICAgICAgIGJyZWFrOw0KDQogICAgICAgIGNhc2UgImVtcHR5TG9nIjogd3JpdGVMb2dJbkRpdigpOyBicmVhazsNCiAgICAgICAgY2FzZSAiZ2V0TG9nIjogIHJldHVybjsgYnJlYWs7DQogICAgICB9DQoNCg0KICAgIH0NCg0KICAgIGlmIChjb25maWdbImZpbGVzIl0gPT0gdW5kZWZpbmVkIHx8IGNvbmZpZ1siZmlsZXMiXS5sZW5ndGggPT0gMCkgew0KICAgICAgY3JlYXRlTWVudSgpOw0KICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoMTApLmNsaWNrKCkNCiAgICB9DQoNCiAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7IHNob3dMb2FkaW5nU2NyZWVuKGZhbHNlKTsgfSwgMCk7DQogIH0NCiAgDQp9DQoNCmZ1bmN0aW9uIHVwZGF0ZVh0ZXZlU3RhdHVzKHJlc3BvbnNlKSB7DQogIHZhciBrZXlzID0gZ2V0T2JqS2V5cyhyZXNwb25zZSk7DQogIC8vY29uc29sZS5sb2coa2V5cyk7DQoNCiAgZm9yICh2YXIgaSA9IDA7IGkgPCBrZXlzLmxlbmd0aDsgaSsrKSB7DQogICAgc3dpdGNoKGtleXNbaV0pIHsNCiAgICAgIGNhc2UgImFsZXJ0IjogICAgICAgICBhbGVydChyZXNwb25zZVtrZXlzW2ldXSk7IGJyZWFrOw0KICAgICAgY2FzZSAiY29uZmlnIjogICAgICAgIHNob3dDb25maWcocmVzcG9uc2Vba2V5c1tpXV0pOyBicmVhazsNCiAgICAgIGNhc2UgImxvZyI6ICAgICAgICAgICBwYXJzZUxvZ3MocmVzcG9uc2Vba2V5c1tpXV0pOyBicmVhazsNCiAgICAgIGNhc2UgIm15U3RyZWFtcyI6ICAgICBzaG93TXlTdHJlYW1zKHJlc3BvbnNlW2tleXNbaV1dKTsgYnJlYWs7DQogICAgICBjYXNlICJ4RVBHIjogICAgICAgICAgeEVQRyA9IHJlc3BvbnNlW2tleXNbaV1dOyBicmVhazsNCiAgICAgIGNhc2UgInVzZXJzIjogICAgICAgICB1c2VycyA9IHJlc3BvbnNlW2tleXNbaV1dOyBicmVhazsNCiAgICAgIGNhc2UgInRva2VuIjogICAgICAgICBkb2N1bWVudC5jb29raWUgPSAiVG9rZW49IiArIHJlc3BvbnNlW2tleXNbaV1dOyBicmVhazsNCiAgICAgIGNhc2UgInJlbG9hZCI6ICAgICAgICBsb2NhdGlvbi5yZWxvYWQoKTsgYnJlYWs7DQogICAgICBjYXNlICJvcGVuTGluayI6ICAgICAgd2luZG93LmxvY2F0aW9uID0gcmVzcG9uc2VbIm9wZW5MaW5rIl07IGJyZWFrOw0KICAgICAgLy9jYXNlICJ2ZXJzaW9uIjogdmVyc2lvbiA9IHJlc3BvbnNlW2tleXNbaV1dOyBicmVhazsNCiAgICB9DQogIH0NCn0NCg0KZnVuY3Rpb24gZ2V0VmFsdWVGcm9tUHJvdmlkZXJGaWxlKHhYbWx0dkZpbGUsIGZpbGVUeXBlLCBrZXkpIHsNCg0KICB2YXIgZmlsZUlEID0geFhtbHR2RmlsZS5zdWJzdHJpbmcoMCwgeFhtbHR2RmlsZS5sYXN0SW5kZXhPZignLicpKQ0KDQogIGlmIChjb25maWdbImZpbGVzIl1bZmlsZVR5cGVdLmhhc093blByb3BlcnR5KGZpbGVJRCkgPT0gdHJ1ZSkgew0KICAgIHZhciBkYXRhID0gY29uZmlnWyJmaWxlcyJdW2ZpbGVUeXBlXVtmaWxlSURdOw0KICAgIHJldHVybiBkYXRhW2tleV0NCiAgfQ0KDQp9DQoNCg0KDQoNCg==" - webUI["html/js/menu_ts.js"] = "Y2xhc3MgTWFpbk1lbnUgew0KICAgIGNvbnN0cnVjdG9yKCkgew0KICAgICAgICB0aGlzLkRvY3VtZW50SUQgPSAibWFpbi1tZW51IjsNCiAgICAgICAgdGhpcy5IVE1MVGFnID0gIkxJIjsNCiAgICAgICAgdGhpcy5JbWFnZVBhdGggPSAiaW1nLyI7DQogICAgfQ0KICAgIGNyZWF0ZUlNRyhzcmMpIHsNCiAgICAgICAgbGV0IGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJJTUciKTsNCiAgICAgICAgZWxlbWVudC5zZXRBdHRyaWJ1dGUoInNyYyIsIHRoaXMuSW1hZ2VQYXRoICsgc3JjKTsNCiAgICAgICAgcmV0dXJuIGVsZW1lbnQ7DQogICAgfQ0KICAgIGNyZWF0ZVZhbHVlKHZhbHVlKSB7DQogICAgICAgIGxldCBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiUCIpOw0KICAgICAgICBlbGVtZW50LmlubmVySFRNTCA9IHZhbHVlOw0KICAgICAgICByZXR1cm4gZWxlbWVudDsNCiAgICB9DQp9DQpjbGFzcyBNYWluTWVudUl0ZW0gZXh0ZW5kcyBNYWluTWVudSB7DQogICAgY29uc3RydWN0b3IobWVudUtleSwgdmFsdWUsIGltYWdlLCBoZWFkbGluZSkgew0KICAgICAgICBzdXBlcigpOw0KICAgICAgICB0aGlzLm1lbnVLZXkgPSBtZW51S2V5Ow0KICAgICAgICB0aGlzLnZhbHVlID0gdmFsdWU7DQogICAgICAgIHRoaXMuaW1nU3JjID0gaW1hZ2U7DQogICAgICAgIHRoaXMuaGVhZGxpbmUgPSBoZWFkbGluZTsNCiAgICB9DQogICAgY3JlYXRlSXRlbSgpIHsNCiAgICAgICAgbGV0IGl0ZW0gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJMSSIpOw0KICAgICAgICBpdGVtLnNldEF0dHJpYnV0ZSgib25jbGljayIsICJqYXZhc2NyaXB0OiBvcGVuVGhpc01lbnUodGhpcykiKTsNCiAgICAgICAgaXRlbS5zZXRBdHRyaWJ1dGUoImlkIiwgdGhpcy5pZCk7DQogICAgICAgIGxldCBpbWcgPSB0aGlzLmNyZWF0ZUlNRyh0aGlzLmltZ1NyYyk7DQogICAgICAgIGxldCB2YWx1ZSA9IHRoaXMuY3JlYXRlVmFsdWUodGhpcy52YWx1ZSk7DQogICAgICAgIGl0ZW0uYXBwZW5kQ2hpbGQoaW1nKTsNCiAgICAgICAgaXRlbS5hcHBlbmRDaGlsZCh2YWx1ZSk7DQogICAgICAgIGxldCBkb2MgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCh0aGlzLkRvY3VtZW50SUQpOw0KICAgICAgICBkb2MuYXBwZW5kQ2hpbGQoaXRlbSk7DQogICAgICAgIHN3aXRjaCAodGhpcy5tZW51S2V5KSB7DQogICAgICAgICAgICBjYXNlICJwbGF5bGlzdCI6DQogICAgICAgICAgICAgICAgdGhpcy50YWJsZUhlYWRlciA9IFsie3sucGxheWxpc3QudGFibGUucGxheWxpc3R9fSIsICJ7ey5wbGF5bGlzdC50YWJsZS50dW5lcn19IiwgInt7LnBsYXlsaXN0LnRhYmxlLmxhc3RVcGRhdGV9fSIsICJ7ey5wbGF5bGlzdC50YWJsZS5hdmFpbGFiaWxpdHl9fSAlIiwgInt7LnBsYXlsaXN0LnRhYmxlLnR5cGV9fSIsICJ7ey5wbGF5bGlzdC50YWJsZS5zdHJlYW1zfX0iLCAie3sucGxheWxpc3QudGFibGUuZ3JvdXBUaXRsZX19ICUiLCAie3sucGxheWxpc3QudGFibGUudHZnSUR9fSAlIiwgInt7LnBsYXlsaXN0LnRhYmxlLnVuaXF1ZUlEfX0gJSJdOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAieG1sdHYiOg0KICAgICAgICAgICAgICAgIHRoaXMudGFibGVIZWFkZXIgPSBbInt7LnhtbHR2LnRhYmxlLmd1aWRlfX0iLCAie3sueG1sdHYudGFibGUubGFzdFVwZGF0ZX19IiwgInt7LnhtbHR2LnRhYmxlLmF2YWlsYWJpbGl0eX19ICUiLCAie3sueG1sdHYudGFibGUuY2hhbm5lbHN9fSIsICJ7ey54bWx0di50YWJsZS5wcm9ncmFtc319Il07DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJmaWx0ZXIiOg0KICAgICAgICAgICAgICAgIHRoaXMudGFibGVIZWFkZXIgPSBbInt7LmZpbHRlci50YWJsZS5uYW1lfX0iLCAie3suZmlsdGVyLnRhYmxlLnR5cGV9fSIsICJ7ey5maWx0ZXIudGFibGUuZmlsdGVyfX0iXTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInVzZXJzIjoNCiAgICAgICAgICAgICAgICB0aGlzLnRhYmxlSGVhZGVyID0gWyJ7ey51c2Vycy50YWJsZS51c2VybmFtZX19IiwgInt7LnVzZXJzLnRhYmxlLnBhc3N3b3JkfX0iLCAie3sudXNlcnMudGFibGUud2VifX0iLCAie3sudXNlcnMudGFibGUucG1zfX0iLCAie3sudXNlcnMudGFibGUubTN1fX0iLCAie3sudXNlcnMudGFibGUueG1sfX0iLCAie3sudXNlcnMudGFibGUuYXBpfX0iXTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgIm1hcHBpbmciOg0KICAgICAgICAgICAgICAgIHRoaXMudGFibGVIZWFkZXIgPSBbIkJVTEsiLCAie3subWFwcGluZy50YWJsZS5jaE5vfX0iLCAie3subWFwcGluZy50YWJsZS5sb2dvfX0iLCAie3subWFwcGluZy50YWJsZS5jaGFubmVsTmFtZX19IiwgInt7Lm1hcHBpbmcudGFibGUucGxheWxpc3R9fSIsICJ7ey5tYXBwaW5nLnRhYmxlLmdyb3VwVGl0bGV9fSIsICJ7ey5tYXBwaW5nLnRhYmxlLnhtbHR2RmlsZX19IiwgInt7Lm1hcHBpbmcudGFibGUueG1sdHZJRH19IiwgInt7Lm1hcHBpbmcudGFibGUudGltZXNoaWZ0fX0iXTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgfQ0KICAgICAgICAvL2NvbnNvbGUubG9nKHRoaXMubWVudUtleSwgdGhpcy50YWJsZUhlYWRlcik7DQogICAgfQ0KfQ0KY2xhc3MgQ29udGVudCB7DQogICAgY29uc3RydWN0b3IoKSB7DQogICAgICAgIHRoaXMuRG9jdW1lbnRJRCA9ICJjb250ZW50IjsNCiAgICAgICAgdGhpcy5UYWJsZUlEID0gImNvbnRlbnRfdGFibGUiOw0KICAgICAgICB0aGlzLmhlYWRlckNsYXNzID0gImNvbnRlbnRfdGFibGVfaGVhZGVyIjsNCiAgICAgICAgdGhpcy5pbnRlcmFjdGlvbklEID0gImNvbnRlbnQtaW50ZXJhY3Rpb24iOw0KICAgIH0NCiAgICBjcmVhdGVIZWFkbGluZSh2YWx1ZSkgew0KICAgICAgICBsZXQgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIkgzIik7DQogICAgICAgIGVsZW1lbnQuaW5uZXJIVE1MID0gdmFsdWU7DQogICAgICAgIHJldHVybiBlbGVtZW50Ow0KICAgIH0NCiAgICBjcmVhdGVIUigpIHsNCiAgICAgICAgcmV0dXJuIGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIkhSIik7DQogICAgfQ0KICAgIGNyZWF0ZUludGVyYWN0aW9uKCkgew0KICAgICAgICBsZXQgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIkRJViIpOw0KICAgICAgICBlbGVtZW50LnNldEF0dHJpYnV0ZSgiaWQiLCB0aGlzLmludGVyYWN0aW9uSUQpOw0KICAgICAgICByZXR1cm4gZWxlbWVudDsNCiAgICB9DQogICAgY3JlYXRlRElWKCkgew0KICAgICAgICBsZXQgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIkRJViIpOw0KICAgICAgICBlbGVtZW50LmlkID0gdGhpcy5EaXZJRDsNCiAgICAgICAgcmV0dXJuIGVsZW1lbnQ7DQogICAgfQ0KICAgIGNyZWF0ZVRBQkxFKCkgew0KICAgICAgICBsZXQgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlRBQkxFIik7DQogICAgICAgIGVsZW1lbnQuaWQgPSB0aGlzLlRhYmxlSUQ7DQogICAgICAgIHJldHVybiBlbGVtZW50Ow0KICAgIH0NCiAgICBjcmVhdGVUYWJsZVJvdygpIHsNCiAgICAgICAgbGV0IGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJUUiIpOw0KICAgICAgICBlbGVtZW50LmNsYXNzTmFtZSA9IHRoaXMuaGVhZGVyQ2xhc3M7DQogICAgICAgIHJldHVybiBlbGVtZW50Ow0KICAgIH0NCiAgICBjcmVhdGVUYWJsZUNvbnRlbnQobWVudUtleSkgew0KICAgICAgICBsZXQgZGF0YSA9IHt9Ow0KICAgICAgICBsZXQgcm93cyA9IFtdOw0KICAgICAgICBsZXQgZmlsZVR5cGVzID0gW107DQogICAgICAgIHN3aXRjaCAobWVudUtleSkgew0KICAgICAgICAgICAgY2FzZSAicGxheWxpc3QiOg0KICAgICAgICAgICAgICAgIGZpbGVUeXBlcyA9IFsibTN1IiwgImhkaHIiXTsNCiAgICAgICAgICAgICAgICBmaWxlVHlwZXMuZm9yRWFjaChmaWxlVHlwZSA9PiB7DQogICAgICAgICAgICAgICAgICAgIGRhdGEgPSBTRVJWRVJbInNldHRpbmdzIl1bImZpbGVzIl1bZmlsZVR5cGVdOw0KICAgICAgICAgICAgICAgICAgICB2YXIga2V5cyA9IGdldE9iaktleXMoZGF0YSk7DQogICAgICAgICAgICAgICAgICAgIGtleXMuZm9yRWFjaChrZXkgPT4gew0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVFIiKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmlkID0ga2V5Ow0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgiJyArIGZpbGVUeXBlICsgJyIsIHRoaXMpJyk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsibmFtZSJdOw0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChTRVJWRVJbInNldHRpbmdzIl1bImJ1ZmZlciJdICE9ICItIikgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bInR1bmVyIl07DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gIi0iOw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bImxhc3QudXBkYXRlIl07DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsicHJvdmlkZXIuYXZhaWxhYmlsaXR5Il07DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsidHlwZSJdLnRvVXBwZXJDYXNlKCk7DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsiY29tcGF0aWJpbGl0eSJdWyJzdHJlYW1zIl07DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsiY29tcGF0aWJpbGl0eSJdWyJncm91cC50aXRsZSJdOw0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bImNvbXBhdGliaWxpdHkiXVsidHZnLmlkIl07DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsiY29tcGF0aWJpbGl0eSJdWyJzdHJlYW0uaWQiXTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHJvd3MucHVzaCh0cik7DQogICAgICAgICAgICAgICAgICAgIH0pOw0KICAgICAgICAgICAgICAgIH0pOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiZmlsdGVyIjoNCiAgICAgICAgICAgICAgICBkZWxldGUgU0VSVkVSWyJzZXR0aW5ncyJdWyJmaWx0ZXIiXVstMV07DQogICAgICAgICAgICAgICAgZGF0YSA9IFNFUlZFUlsic2V0dGluZ3MiXVsiZmlsdGVyIl07DQogICAgICAgICAgICAgICAgdmFyIGtleXMgPSBnZXRPYmpLZXlzKGRhdGEpOw0KICAgICAgICAgICAgICAgIGtleXMuZm9yRWFjaChrZXkgPT4gew0KICAgICAgICAgICAgICAgICAgICB2YXIgdHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJUUiIpOw0KICAgICAgICAgICAgICAgICAgICB0ci5pZCA9IGtleTsNCiAgICAgICAgICAgICAgICAgICAgdHIuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgiJyArIGRhdGFba2V5XVsidHlwZSJdICsgJyIsIHRoaXMpJyk7DQogICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJuYW1lIl07DQogICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgIHN3aXRjaCAoZGF0YVtrZXldWyJ0eXBlIl0pIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgImN1c3RvbS1maWx0ZXIiOg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSAie3suZmlsdGVyLmN1c3RvbX19IjsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgImdyb3VwLXRpdGxlIjoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gInt7LmZpbHRlci5ncm91cH19IjsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsiZmlsdGVyIl07DQogICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgcm93cy5wdXNoKHRyKTsNCiAgICAgICAgICAgICAgICB9KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInhtbHR2IjoNCiAgICAgICAgICAgICAgICBmaWxlVHlwZXMgPSBuZXcgQXJyYXkoInhtbHR2Iik7DQogICAgICAgICAgICAgICAgZmlsZVR5cGVzLmZvckVhY2goZmlsZVR5cGUgPT4gew0KICAgICAgICAgICAgICAgICAgICBkYXRhID0gU0VSVkVSWyJzZXR0aW5ncyJdWyJmaWxlcyJdW2ZpbGVUeXBlXTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGtleXMgPSBnZXRPYmpLZXlzKGRhdGEpOw0KICAgICAgICAgICAgICAgICAgICBrZXlzLmZvckVhY2goa2V5ID0+IHsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciB0ciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlRSIik7DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5pZCA9IGtleTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoIicgKyBmaWxlVHlwZSArICciLCB0aGlzKScpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bIm5hbWUiXTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJsYXN0LnVwZGF0ZSJdOw0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bInByb3ZpZGVyLmF2YWlsYWJpbGl0eSJdOw0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bImNvbXBhdGliaWxpdHkiXVsieG1sdHYuY2hhbm5lbHMiXTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJjb21wYXRpYmlsaXR5Il1bInhtbHR2LnByb2dyYW1zIl07DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICByb3dzLnB1c2godHIpOw0KICAgICAgICAgICAgICAgICAgICB9KTsNCiAgICAgICAgICAgICAgICB9KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInVzZXJzIjoNCiAgICAgICAgICAgICAgICBmaWxlVHlwZXMgPSBuZXcgQXJyYXkoInVzZXJzIik7DQogICAgICAgICAgICAgICAgZmlsZVR5cGVzLmZvckVhY2goZmlsZVR5cGUgPT4gew0KICAgICAgICAgICAgICAgICAgICBkYXRhID0gU0VSVkVSW2ZpbGVUeXBlXTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGtleXMgPSBnZXRPYmpLZXlzKGRhdGEpOw0KICAgICAgICAgICAgICAgICAgICBrZXlzLmZvckVhY2goa2V5ID0+IHsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciB0ciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlRSIik7DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5pZCA9IGtleTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoIicgKyBmaWxlVHlwZSArICciLCB0aGlzKScpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bImRhdGEiXVsidXNlcm5hbWUiXTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gIioqKioqKiI7DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGRhdGFba2V5XVsiZGF0YSJdWyJhdXRoZW50aWNhdGlvbi53ZWIiXSA9PSB0cnVlKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9ICLinJMiOw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9ICItIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgICAgICBpZiAoZGF0YVtrZXldWyJkYXRhIl1bImF1dGhlbnRpY2F0aW9uLnBtcyJdID09IHRydWUpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gIuKckyI7DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gIi0iOw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChkYXRhW2tleV1bImRhdGEiXVsiYXV0aGVudGljYXRpb24ubTN1Il0gPT0gdHJ1ZSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSAi4pyTIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSAiLSI7DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGRhdGFba2V5XVsiZGF0YSJdWyJhdXRoZW50aWNhdGlvbi54bWwiXSA9PSB0cnVlKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9ICLinJMiOw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9ICItIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgICAgICBpZiAoZGF0YVtrZXldWyJkYXRhIl1bImF1dGhlbnRpY2F0aW9uLmFwaSJdID09IHRydWUpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gIuKckyI7DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gIi0iOw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgcm93cy5wdXNoKHRyKTsNCiAgICAgICAgICAgICAgICAgICAgfSk7DQogICAgICAgICAgICAgICAgfSk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJtYXBwaW5nIjoNCiAgICAgICAgICAgICAgICBCVUxLX0VESVQgPSBmYWxzZTsNCiAgICAgICAgICAgICAgICBjcmVhdGVTZWFyY2hPYmooKTsNCiAgICAgICAgICAgICAgICBjaGVja1VuZG8oImVwZ01hcHBpbmciKTsNCiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZygiTUFQUElORyIpOw0KICAgICAgICAgICAgICAgIGRhdGEgPSBTRVJWRVJbInhlcGciXVsiZXBnTWFwcGluZyJdOw0KICAgICAgICAgICAgICAgIHZhciBrZXlzID0gZ2V0T2JqS2V5cyhkYXRhKTsNCiAgICAgICAgICAgICAgICBrZXlzLmZvckVhY2goa2V5ID0+IHsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVFIiKTsNCiAgICAgICAgICAgICAgICAgICAgdHIuaWQgPSBrZXk7DQogICAgICAgICAgICAgICAgICAgIC8vdHIuc2V0QXR0cmlidXRlKCdvbmNvbnRleHRtZW51JywgJ2phdmFzY3JpcHQ6IHJpZ2h0Q2xpY2sodGhpcyknKQ0KICAgICAgICAgICAgICAgICAgICBzd2l0Y2ggKGRhdGFba2V5XVsieC1hY3RpdmUiXSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSB0cnVlOg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyLmNsYXNzTmFtZSA9ICJhY3RpdmVFUEciOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSBmYWxzZToNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ci5jbGFzc05hbWUgPSAibm90QWN0aXZlRVBHIjsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAvLyBCdWxrDQogICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIkJVTEsiOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZmFsc2U7DQogICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgLy8gS2FuYWxudW1tZXINCiAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiSU5QVVRDSEFOTkVMIjsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsieC1jaGFubmVsSUQiXTsNCiAgICAgICAgICAgICAgICAgICAgLy90ZC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogY2hhbmdlQ2hhbm5lbE51bWJlcigiJyArIGtleSArICciLCB0aGlzKScpDQogICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgLy8gTG9nbw0KICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJJTUciOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmltYWdlVVJMID0gZGF0YVtrZXldWyJ0dmctbG9nbyJdOw0KICAgICAgICAgICAgICAgICAgICB2YXIgdGQgPSBjZWxsLmNyZWF0ZUNlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgdGQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgibWFwcGluZyIsIHRoaXMpJyk7DQogICAgICAgICAgICAgICAgICAgIHRkLmlkID0ga2V5Ow0KICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZCh0ZCk7DQogICAgICAgICAgICAgICAgICAgIC8vIEthbmFsbmFtZQ0KICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jbGFzc05hbWUgPSBkYXRhW2tleV1bIngtY2F0ZWdvcnkiXTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsieC1uYW1lIl07DQogICAgICAgICAgICAgICAgICAgIHZhciB0ZCA9IGNlbGwuY3JlYXRlQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICB0ZC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJtYXBwaW5nIiwgdGhpcyknKTsNCiAgICAgICAgICAgICAgICAgICAgdGQuaWQgPSBrZXk7DQogICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKHRkKTsNCiAgICAgICAgICAgICAgICAgICAgLy8gUGxheWxpc3QNCiAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgIC8vY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsiX2ZpbGUubTN1Lm5hbWUiXSANCiAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGdldFZhbHVlRnJvbVByb3ZpZGVyRmlsZShkYXRhW2tleV1bIl9maWxlLm0zdS5pZCJdLCAibTN1IiwgIm5hbWUiKTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHRkID0gY2VsbC5jcmVhdGVDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgIHRkLnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoIm1hcHBpbmciLCB0aGlzKScpOw0KICAgICAgICAgICAgICAgICAgICB0ZC5pZCA9IGtleTsNCiAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQodGQpOw0KICAgICAgICAgICAgICAgICAgICAvLyBHcnVwcGUgKGdyb3VwLXRpdGxlKQ0KICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsieC1ncm91cC10aXRsZSJdOw0KICAgICAgICAgICAgICAgICAgICB2YXIgdGQgPSBjZWxsLmNyZWF0ZUNlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgdGQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgibWFwcGluZyIsIHRoaXMpJyk7DQogICAgICAgICAgICAgICAgICAgIHRkLmlkID0ga2V5Ow0KICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZCh0ZCk7DQogICAgICAgICAgICAgICAgICAgIC8vIFhNTFRWIERhdGVpDQogICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICBpZiAoZGF0YVtrZXldWyJ4LXhtbHR2LWZpbGUiXSAhPSAiLSIpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBnZXRWYWx1ZUZyb21Qcm92aWRlckZpbGUoZGF0YVtrZXldWyJ4LXhtbHR2LWZpbGUiXSwgInhtbHR2IiwgIm5hbWUiKTsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bIngteG1sdHYtZmlsZSJdOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIHZhciB0ZCA9IGNlbGwuY3JlYXRlQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICB0ZC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJtYXBwaW5nIiwgdGhpcyknKTsNCiAgICAgICAgICAgICAgICAgICAgdGQuaWQgPSBrZXk7DQogICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKHRkKTsNCiAgICAgICAgICAgICAgICAgICAgLy8gWE1MVFYgS2FuYWwNCiAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgIC8vdmFyIHZhbHVlID0gc3RyLnN1YnN0cmluZygxLCA0KTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHZhbHVlID0gZGF0YVtrZXldWyJ4LW1hcHBpbmciXTsNCiAgICAgICAgICAgICAgICAgICAgaWYgKHZhbHVlLmxlbmd0aCA+IDIwKSB7DQogICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IGRhdGFba2V5XVsieC1tYXBwaW5nIl0uc3Vic3RyaW5nKDAsIDIwKSArICIuLi4iOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSB2YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHRkID0gY2VsbC5jcmVhdGVDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgIHRkLnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoIm1hcHBpbmciLCB0aGlzKScpOw0KICAgICAgICAgICAgICAgICAgICB0ZC5pZCA9IGtleTsNCiAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQodGQpOw0KICAgICAgICAgICAgICAgICAgICAvLyBUaW1lU2hpZnQNCiAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bIngtdGltZXNoaWZ0Il07DQogICAgICAgICAgICAgICAgICAgIHZhciB0ZCA9IGNlbGwuY3JlYXRlQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICB0ZC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJtYXBwaW5nIiwgdGhpcyknKTsNCiAgICAgICAgICAgICAgICAgICAgdGQuaWQgPSBrZXk7DQogICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKHRkKTsNCiAgICAgICAgICAgICAgICAgICAgcm93cy5wdXNoKHRyKTsNCiAgICAgICAgICAgICAgICB9KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInNldHRpbmdzIjoNCiAgICAgICAgICAgICAgICBhbGVydCgpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZygiVGFibGUgY29udGVudCAobWVudUtleSk6IiwgbWVudUtleSk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIH0NCiAgICAgICAgcmV0dXJuIHJvd3M7DQogICAgfQ0KfQ0KY2xhc3MgQ2VsbCB7DQogICAgY3JlYXRlQ2VsbCgpIHsNCiAgICAgICAgbGV0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgaWYgKHRoaXMuY2hpbGQgPT0gdHJ1ZSkgew0KICAgICAgICAgICAgdmFyIGVsZW1lbnQ7DQogICAgICAgICAgICBzd2l0Y2ggKHRoaXMuY2hpbGRUeXBlKSB7DQogICAgICAgICAgICAgICAgY2FzZSAiUCI6DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KHRoaXMuY2hpbGRUeXBlKTsNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC5pbm5lckhUTUwgPSB0aGlzLnZhbHVlOw0KICAgICAgICAgICAgICAgICAgICBlbGVtZW50LmNsYXNzTmFtZSA9IHRoaXMuY2xhc3NOYW1lOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBjYXNlICJJTlBVVCI6DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KHRoaXMuY2hpbGRUeXBlKTsNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC52YWx1ZSA9IHRoaXMudmFsdWU7DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQudHlwZSA9ICJ0ZXh0IjsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAiSU5QVVRDSEFOTkVMIjoNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIklOUFVUIik7DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZzY3JpcHQ6IGNoYW5nZUNoYW5uZWxOdW1iZXIodGhpcykiKTsNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC52YWx1ZSA9IHRoaXMudmFsdWU7DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQudHlwZSA9ICJ0ZXh0IjsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAiQlVMSyI6DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJJTlBVVCIpOw0KICAgICAgICAgICAgICAgICAgICBlbGVtZW50LmNoZWNrZWQgPSB0aGlzLnZhbHVlOw0KICAgICAgICAgICAgICAgICAgICBlbGVtZW50LnR5cGUgPSAiY2hlY2tib3giOw0KICAgICAgICAgICAgICAgICAgICBlbGVtZW50LmNsYXNzTmFtZSA9ICJidWxrIGhpZGVCdWxrIjsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAiQlVMS19IRUFEIjoNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIklOUFVUIik7DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQuY2hlY2tlZCA9IHRoaXMudmFsdWU7DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQudHlwZSA9ICJjaGVja2JveCI7DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQuY2xhc3NOYW1lID0gImJ1bGsgaGlkZUJ1bGsiOw0KICAgICAgICAgICAgICAgICAgICBlbGVtZW50LnNldEF0dHJpYnV0ZSgib25jbGljayIsICJqYXZhc2NyaXB0OiBzZWxlY3RBbGxDaGFubmVscygpIik7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgIklNRyI6DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KHRoaXMuY2hpbGRUeXBlKTsNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC5zZXRBdHRyaWJ1dGUoInNyYyIsIHRoaXMuaW1hZ2VVUkwpOw0KICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5pbWFnZVVSTCAhPSAiIikgew0KICAgICAgICAgICAgICAgICAgICAgICAgZWxlbWVudC5zZXRBdHRyaWJ1dGUoIm9uZXJyb3IiLCAiamF2YXNjcmlwdDogdGhpcy5vbmVycm9yPW51bGw7dGhpcy5zcmM9JyciKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIC8vb25lcnJvcj0idGhpcy5vbmVycm9yPW51bGw7dGhpcy5zcmM9J21pc3NpbmcuZ2lmJzsiDQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIHRkLmFwcGVuZENoaWxkKGVsZW1lbnQpOw0KICAgICAgICB9DQogICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgdGQuaW5uZXJIVE1MID0gdGhpcy52YWx1ZTsNCiAgICAgICAgfQ0KICAgICAgICBpZiAodGhpcy5vbmNsaWNrID09IHRydWUpIHsNCiAgICAgICAgICAgIHRkLnNldEF0dHJpYnV0ZSgib25jbGljayIsIHRoaXMub25jbGlja0Z1bmt0aW9uKTsNCiAgICAgICAgICAgIHRkLmNsYXNzTmFtZSA9ICJwb2ludGVyIjsNCiAgICAgICAgfQ0KICAgICAgICBpZiAodGhpcy50ZENsYXNzTmFtZSAhPSB1bmRlZmluZWQpIHsNCiAgICAgICAgICAgIHRkLmNsYXNzTmFtZSA9IHRoaXMudGRDbGFzc05hbWU7DQogICAgICAgIH0NCiAgICAgICAgcmV0dXJuIHRkOw0KICAgIH0NCn0NCmNsYXNzIFNob3dDb250ZW50IGV4dGVuZHMgQ29udGVudCB7DQogICAgY29uc3RydWN0b3IobWVudUlEKSB7DQogICAgICAgIHN1cGVyKCk7DQogICAgICAgIHRoaXMubWVudUlEID0gbWVudUlEOw0KICAgIH0NCiAgICBjcmVhdGVJbnB1dCh0eXBlLCBuYW1lLCB2YWx1ZSkgew0KICAgICAgICBsZXQgaW5wdXQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJJTlBVVCIpOw0KICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInR5cGUiLCB0eXBlKTsNCiAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJuYW1lIiwgbmFtZSk7DQogICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgidmFsdWUiLCB2YWx1ZSk7DQogICAgICAgIHJldHVybiBpbnB1dDsNCiAgICB9DQogICAgc2hvdygpIHsNCiAgICAgICAgQ09MVU1OX1RPX1NPUlQgPSAtMTsNCiAgICAgICAgLy8gQWx0ZW4gSW5oYWx0IGzDtnNjaGVuDQogICAgICAgIGxldCBkb2MgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCh0aGlzLkRvY3VtZW50SUQpOw0KICAgICAgICBkb2MuaW5uZXJIVE1MID0gIiI7DQogICAgICAgIHNob3dQcmV2aWV3KGZhbHNlKTsNCiAgICAgICAgLy8gw5xiZXJzY2hyaWZ0DQogICAgICAgIGxldCBoZWFkbGluZSA9IG1lbnVJdGVtc1t0aGlzLm1lbnVJRF0uaGVhZGxpbmU7DQogICAgICAgIGxldCBtZW51S2V5ID0gbWVudUl0ZW1zW3RoaXMubWVudUlEXS5tZW51S2V5Ow0KICAgICAgICBsZXQgaCA9IHRoaXMuY3JlYXRlSGVhZGxpbmUoaGVhZGxpbmUpOw0KICAgICAgICBkb2MuYXBwZW5kQ2hpbGQoaCk7DQogICAgICAgIGxldCBociA9IHRoaXMuY3JlYXRlSFIoKTsNCiAgICAgICAgZG9jLmFwcGVuZENoaWxkKGhyKTsNCiAgICAgICAgLy8gSW50ZXJha3Rpb24NCiAgICAgICAgbGV0IGRpdiA9IHRoaXMuY3JlYXRlSW50ZXJhY3Rpb24oKTsNCiAgICAgICAgZG9jLmFwcGVuZENoaWxkKGRpdik7DQogICAgICAgIGxldCBpbnRlcmFjdGlvbiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHRoaXMuaW50ZXJhY3Rpb25JRCk7DQogICAgICAgIHN3aXRjaCAobWVudUtleSkgew0KICAgICAgICAgICAgY2FzZSAicGxheWxpc3QiOg0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IHRoaXMuY3JlYXRlSW5wdXQoImJ1dHRvbiIsIG1lbnVLZXksICJ7ey5idXR0b24ubmV3fX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoImlkIiwgIi0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJwbGF5bGlzdCIpJyk7DQogICAgICAgICAgICAgICAgaW50ZXJhY3Rpb24uYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiZmlsdGVyIjoNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSB0aGlzLmNyZWF0ZUlucHV0KCJidXR0b24iLCBtZW51S2V5LCAie3suYnV0dG9uLm5ld319Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJpZCIsIC0xKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJmaWx0ZXIiLCB0aGlzKScpOw0KICAgICAgICAgICAgICAgIGludGVyYWN0aW9uLmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInhtbHR2IjoNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSB0aGlzLmNyZWF0ZUlucHV0KCJidXR0b24iLCBtZW51S2V5LCAie3suYnV0dG9uLm5ld319Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJpZCIsICJ4bWx0diIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoInhtbHR2IiknKTsNCiAgICAgICAgICAgICAgICBpbnRlcmFjdGlvbi5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ1c2VycyI6DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gdGhpcy5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgbWVudUtleSwgInt7LmJ1dHRvbi5uZXd9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgiaWQiLCAidXNlcnMiKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJ1c2VycyIpJyk7DQogICAgICAgICAgICAgICAgaW50ZXJhY3Rpb24uYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAibWFwcGluZyI6DQogICAgICAgICAgICAgICAgc2hvd0VsZW1lbnQoImxvYWRpbmciLCB0cnVlKTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSB0aGlzLmNyZWF0ZUlucHV0KCJidXR0b24iLCBtZW51S2V5LCAie3suYnV0dG9uLnNhdmV9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBzYXZlUG9wdXBEYXRhKCJtYXBwaW5nIiwgIiIsICIiKScpOw0KICAgICAgICAgICAgICAgIGludGVyYWN0aW9uLmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSB0aGlzLmNyZWF0ZUlucHV0KCJidXR0b24iLCBtZW51S2V5LCAie3suYnV0dG9uLmJ1bGtFZGl0fX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogYnVsa0VkaXQoKScpOw0KICAgICAgICAgICAgICAgIGludGVyYWN0aW9uLmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSB0aGlzLmNyZWF0ZUlucHV0KCJzZWFyY2giLCAic2VhcmNoIiwgIiIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgiaWQiLCAic2VhcmNoTWFwcGluZyIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3suYnV0dG9uLnNlYXJjaH19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuY2xhc3NOYW1lID0gInNlYXJjaCI7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICdqYXZhc2NyaXB0OiBzZWFyY2hJbk1hcHBpbmcoKScpOw0KICAgICAgICAgICAgICAgIGludGVyYWN0aW9uLmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInNldHRpbmdzIjoNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSB0aGlzLmNyZWF0ZUlucHV0KCJidXR0b24iLCBtZW51S2V5LCAie3suYnV0dG9uLnNhdmV9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBzYXZlU2V0dGluZ3MoKTsnKTsNCiAgICAgICAgICAgICAgICBpbnRlcmFjdGlvbi5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gdGhpcy5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgbWVudUtleSwgInt7LmJ1dHRvbi5iYWNrdXB9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBiYWNrdXAoKTsnKTsNCiAgICAgICAgICAgICAgICBpbnRlcmFjdGlvbi5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gdGhpcy5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgbWVudUtleSwgInt7LmJ1dHRvbi5yZXN0b3JlfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogcmVzdG9yZSgpOycpOw0KICAgICAgICAgICAgICAgIGludGVyYWN0aW9uLmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICB2YXIgd3JhcHBlciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIkRJViIpOw0KICAgICAgICAgICAgICAgIHdyYXBwZXIuc2V0QXR0cmlidXRlKCJpZCIsICJib3gtd3JhcHBlciIpOw0KICAgICAgICAgICAgICAgIGRvYy5hcHBlbmRDaGlsZCh3cmFwcGVyKTsNCiAgICAgICAgICAgICAgICB0aGlzLkRpdklEID0gImNvbnRlbnRfc2V0dGluZ3MiOw0KICAgICAgICAgICAgICAgIHZhciBzZXR0aW5ncyA9IHRoaXMuY3JlYXRlRElWKCk7DQogICAgICAgICAgICAgICAgd3JhcHBlci5hcHBlbmRDaGlsZChzZXR0aW5ncyk7DQogICAgICAgICAgICAgICAgc2hvd1NldHRpbmdzKCk7DQogICAgICAgICAgICAgICAgcmV0dXJuOw0KICAgICAgICAgICAgY2FzZSAibG9nIjoNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSB0aGlzLmNyZWF0ZUlucHV0KCJidXR0b24iLCBtZW51S2V5LCAie3suYnV0dG9uLnJlc2V0TG9nc319Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IHJlc2V0TG9ncygpOycpOw0KICAgICAgICAgICAgICAgIGludGVyYWN0aW9uLmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICB2YXIgd3JhcHBlciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIkRJViIpOw0KICAgICAgICAgICAgICAgIHdyYXBwZXIuc2V0QXR0cmlidXRlKCJpZCIsICJib3gtd3JhcHBlciIpOw0KICAgICAgICAgICAgICAgIGRvYy5hcHBlbmRDaGlsZCh3cmFwcGVyKTsNCiAgICAgICAgICAgICAgICB0aGlzLkRpdklEID0gImNvbnRlbnRfbG9nIjsNCiAgICAgICAgICAgICAgICB2YXIgbG9ncyA9IHRoaXMuY3JlYXRlRElWKCk7DQogICAgICAgICAgICAgICAgd3JhcHBlci5hcHBlbmRDaGlsZChsb2dzKTsNCiAgICAgICAgICAgICAgICBzaG93TG9ncyh0cnVlKTsNCiAgICAgICAgICAgICAgICByZXR1cm47DQogICAgICAgICAgICBjYXNlICJsb2dvdXQiOg0KICAgICAgICAgICAgICAgIGxvY2F0aW9uLnJlbG9hZCgpOw0KICAgICAgICAgICAgICAgIGRvY3VtZW50LmNvb2tpZSA9ICJUb2tlbj0gOyBleHBpcmVzID0gVGh1LCAwMSBKYW4gMTk3MCAwMDowMDowMCBHTVQiOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZygiU2hvdyBjb250ZW50IChtZW51S2V5KToiLCBtZW51S2V5KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgfQ0KICAgICAgICAvLyBUYWJlbGxlIGVyc3RlbGxlbiAoZmFsbHMgYmVuw7Z0aWd0KQ0KICAgICAgICB2YXIgdGFibGVIZWFkZXIgPSBtZW51SXRlbXNbdGhpcy5tZW51SURdLnRhYmxlSGVhZGVyOw0KICAgICAgICBpZiAodGFibGVIZWFkZXIubGVuZ3RoID4gMCkgew0KICAgICAgICAgICAgdmFyIHdyYXBwZXIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJESVYiKTsNCiAgICAgICAgICAgIGRvYy5hcHBlbmRDaGlsZCh3cmFwcGVyKTsNCiAgICAgICAgICAgIHdyYXBwZXIuc2V0QXR0cmlidXRlKCJpZCIsICJib3gtd3JhcHBlciIpOw0KICAgICAgICAgICAgdmFyIHRhYmxlID0gdGhpcy5jcmVhdGVUQUJMRSgpOw0KICAgICAgICAgICAgd3JhcHBlci5hcHBlbmRDaGlsZCh0YWJsZSk7DQogICAgICAgICAgICB2YXIgaGVhZGVyID0gdGhpcy5jcmVhdGVUYWJsZVJvdygpOw0KICAgICAgICAgICAgdGFibGUuYXBwZW5kQ2hpbGQoaGVhZGVyKTsNCiAgICAgICAgICAgIC8vIEtvcGZ6ZWlsZSBkZXIgVGFibGxlDQogICAgICAgICAgICB0YWJsZUhlYWRlci5mb3JFYWNoKGVsZW1lbnQgPT4gew0KICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZWxlbWVudDsNCiAgICAgICAgICAgICAgICBpZiAoZWxlbWVudCA9PSAiQlVMSyIpIHsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiQlVMS19IRUFEIjsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGZhbHNlOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBpZiAobWVudUtleSA9PSAibWFwcGluZyIpIHsNCiAgICAgICAgICAgICAgICAgICAgaWYgKGVsZW1lbnQgPT0gInt7Lm1hcHBpbmcudGFibGUuY2hOb319Iikgew0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5vbmNsaWNrID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwub25jbGlja0Z1bmt0aW9uID0gImphdmFzY3JpcHQ6IHNvcnRUYWJsZSgxKTsiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC50ZENsYXNzTmFtZSA9ICJzb3J0VGhpcyI7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgaWYgKGVsZW1lbnQgPT0gInt7Lm1hcHBpbmcudGFibGUuY2hhbm5lbE5hbWV9fSIpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwub25jbGljayA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLm9uY2xpY2tGdW5rdGlvbiA9ICJqYXZhc2NyaXB0OiBzb3J0VGFibGUoMyk7IjsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBpZiAoZWxlbWVudCA9PSAie3subWFwcGluZy50YWJsZS5wbGF5bGlzdH19Iikgew0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5vbmNsaWNrID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwub25jbGlja0Z1bmt0aW9uID0gImphdmFzY3JpcHQ6IHNvcnRUYWJsZSg0KTsiOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIGlmIChlbGVtZW50ID09ICJ7ey5tYXBwaW5nLnRhYmxlLmdyb3VwVGl0bGV9fSIpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwub25jbGljayA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLm9uY2xpY2tGdW5rdGlvbiA9ICJqYXZhc2NyaXB0OiBzb3J0VGFibGUoNSk7IjsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBoZWFkZXIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgfSk7DQogICAgICAgICAgICB0YWJsZS5hcHBlbmRDaGlsZChoZWFkZXIpOw0KICAgICAgICAgICAgLy8gSW5oYWx0IGRlciBUYWJlbGxlDQogICAgICAgICAgICB2YXIgcm93cyA9IHRoaXMuY3JlYXRlVGFibGVDb250ZW50KG1lbnVLZXkpOw0KICAgICAgICAgICAgcm93cy5mb3JFYWNoKHRyID0+IHsNCiAgICAgICAgICAgICAgICB0YWJsZS5hcHBlbmRDaGlsZCh0cik7DQogICAgICAgICAgICB9KTsNCiAgICAgICAgfQ0KICAgICAgICBzd2l0Y2ggKG1lbnVLZXkpIHsNCiAgICAgICAgICAgIGNhc2UgIm1hcHBpbmciOg0KICAgICAgICAgICAgICAgIHNvcnRUYWJsZSgxKTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImZpbHRlciI6DQogICAgICAgICAgICAgICAgc2hvd1ByZXZpZXcodHJ1ZSk7DQogICAgICAgICAgICAgICAgc29ydFRhYmxlKDApOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgICAgICBDT0xVTU5fVE9fU09SVCA9IC0xOw0KICAgICAgICAgICAgICAgIHNvcnRUYWJsZSgwKTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgfQ0KICAgICAgICBzaG93RWxlbWVudCgibG9hZGluZyIsIGZhbHNlKTsNCiAgICB9DQp9DQpmdW5jdGlvbiBQYWdlUmVhZHkoKSB7DQogICAgbGV0IHNlcnZlciA9IG5ldyBTZXJ2ZXIoImdldFNlcnZlckNvbmZpZyIpOw0KICAgIHNlcnZlci5yZXF1ZXN0KHt9KTsNCiAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigicmVzaXplIiwgZnVuY3Rpb24gKCkgew0KICAgICAgICBjYWxjdWxhdGVXcmFwcGVySGVpZ2h0KCk7DQogICAgfSwgdHJ1ZSk7DQogICAgc2V0SW50ZXJ2YWwoZnVuY3Rpb24gKCkgew0KICAgICAgICB1cGRhdGVMb2coKTsNCiAgICB9LCAxMDAwMCk7DQogICAgcmV0dXJuOw0KfQ0KZnVuY3Rpb24gY3JlYXRlTGF5b3V0KCkgew0KICAgIC8vIENsaWVudCBJbmZvDQogICAgbGV0IG9iaiA9IFNFUlZFUlsiY2xpZW50SW5mbyJdOw0KICAgIGxldCBrZXlzID0gZ2V0T2JqS2V5cyhvYmopOw0KICAgIGZvciAodmFyIGkgPSAwOyBpIDwga2V5cy5sZW5ndGg7IGkrKykgew0KICAgICAgICBpZiAoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoa2V5c1tpXSkpIHsNCiAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGtleXNbaV0pLmlubmVySFRNTCA9IG9ialtrZXlzW2ldXTsNCiAgICAgICAgfQ0KICAgIH0NCiAgICBpZiAoIWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJtYWluLW1lbnUiKSkgew0KICAgICAgICByZXR1cm47DQogICAgfQ0KICAgIC8vIE1lbsO8IGVyc3RlbGxlbg0KICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJtYWluLW1lbnUiKS5pbm5lckhUTUwgPSAiIjsNCiAgICBmb3IgKGxldCBpID0gMDsgaSA8IG1lbnVJdGVtcy5sZW5ndGg7IGkrKykgew0KICAgICAgICBtZW51SXRlbXNbaV0uaWQgPSBpOw0KICAgICAgICBzd2l0Y2ggKG1lbnVJdGVtc1tpXVsibWVudUtleSJdKSB7DQogICAgICAgICAgICBjYXNlICJ1c2VycyI6DQogICAgICAgICAgICBjYXNlICJsb2dvdXQiOg0KICAgICAgICAgICAgICAgIGlmIChTRVJWRVJbInNldHRpbmdzIl1bImF1dGhlbnRpY2F0aW9uLndlYiJdID09IHRydWUpIHsNCiAgICAgICAgICAgICAgICAgICAgbWVudUl0ZW1zW2ldLmNyZWF0ZUl0ZW0oKTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJtYXBwaW5nIjoNCiAgICAgICAgICAgIGNhc2UgInhtbHR2IjoNCiAgICAgICAgICAgICAgICBpZiAoU0VSVkVSWyJjbGllbnRJbmZvIl1bImVwZ1NvdXJjZSJdID09ICJYRVBHIikgew0KICAgICAgICAgICAgICAgICAgICBtZW51SXRlbXNbaV0uY3JlYXRlSXRlbSgpOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICAgICAgbWVudUl0ZW1zW2ldLmNyZWF0ZUl0ZW0oKTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgfQ0KICAgIH0NCiAgICByZXR1cm47DQp9DQpmdW5jdGlvbiBvcGVuVGhpc01lbnUoZWxlbWVudCkgew0KICAgIGxldCBpZCA9IGVsZW1lbnQuaWQ7DQogICAgbGV0IGNvbnRlbnQgPSBuZXcgU2hvd0NvbnRlbnQoaWQpOw0KICAgIGNvbnRlbnQuc2hvdygpOw0KICAgIGNhbGN1bGF0ZVdyYXBwZXJIZWlnaHQoKTsNCiAgICByZXR1cm47DQp9DQpjbGFzcyBQb3B1cFdpbmRvdyB7DQogICAgY29uc3RydWN0b3IoKSB7DQogICAgICAgIHRoaXMuRG9jdW1lbnRJRCA9ICJwb3B1cC1jdXN0b20iOw0KICAgICAgICB0aGlzLkludGVyYWN0aW9uSUQgPSAiaW50ZXJhY3Rpb24iOw0KICAgICAgICB0aGlzLmRvYyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHRoaXMuRG9jdW1lbnRJRCk7DQogICAgfQ0KICAgIGNyZWF0ZVRpdGxlKHRpdGxlKSB7DQogICAgICAgIGxldCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgIHRkLmNsYXNzTmFtZSA9ICJsZWZ0IjsNCiAgICAgICAgdGQuaW5uZXJIVE1MID0gdGl0bGUgKyAiOiI7DQogICAgICAgIHJldHVybiB0ZDsNCiAgICB9DQogICAgY3JlYXRlQ29udGVudChlbGVtZW50KSB7DQogICAgICAgIGxldCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgIHRkLmFwcGVuZENoaWxkKGVsZW1lbnQpOw0KICAgICAgICByZXR1cm4gdGQ7DQogICAgfQ0KICAgIGNyZWF0ZUludGVyYWN0aW9uKCkgew0KICAgICAgICBsZXQgZGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7DQogICAgICAgIGRpdi5zZXRBdHRyaWJ1dGUoImlkIiwgInBvcHVwLWludGVyYWN0aW9uIik7DQogICAgICAgIGRpdi5jbGFzc05hbWUgPSAiaW50ZXJhY3Rpb24iOw0KICAgICAgICB0aGlzLmRvYy5hcHBlbmRDaGlsZChkaXYpOw0KICAgIH0NCn0NCmNsYXNzIFBvcHVwQ29udGVudCBleHRlbmRzIFBvcHVwV2luZG93IHsNCiAgICBjb25zdHJ1Y3RvcigpIHsNCiAgICAgICAgc3VwZXIoLi4uYXJndW1lbnRzKTsNCiAgICAgICAgdGhpcy50YWJsZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlRBQkxFIik7DQogICAgfQ0KICAgIGNyZWF0ZUhlYWRsaW5lKGhlYWRsaW5lKSB7DQogICAgICAgIHRoaXMuZG9jLmlubmVySFRNTCA9ICIiOw0KICAgICAgICB2YXIgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIkgzIik7DQogICAgICAgIGVsZW1lbnQuaW5uZXJIVE1MID0gaGVhZGxpbmUudG9VcHBlckNhc2UoKTsNCiAgICAgICAgdGhpcy5kb2MuYXBwZW5kQ2hpbGQoZWxlbWVudCk7DQogICAgICAgIC8vIFRhYmVsbGUgZXJzdGVsbGVuDQogICAgICAgIHRoaXMudGFibGUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJUQUJMRSIpOw0KICAgICAgICB0aGlzLmRvYy5hcHBlbmRDaGlsZCh0aGlzLnRhYmxlKTsNCiAgICB9DQogICAgYXBwZW5kUm93KHRpdGxlLCBlbGVtZW50KSB7DQogICAgICAgIGxldCB0ciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlRSIik7DQogICAgICAgIC8vIEJlemVpY2hudW5nDQogICAgICAgIGlmICh0aXRsZS5sZW5ndGggIT0gMCkgew0KICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQodGhpcy5jcmVhdGVUaXRsZSh0aXRsZSkpOw0KICAgICAgICB9DQogICAgICAgIC8vIENvbnRlbnQNCiAgICAgICAgdHIuYXBwZW5kQ2hpbGQodGhpcy5jcmVhdGVDb250ZW50KGVsZW1lbnQpKTsNCiAgICAgICAgdGhpcy50YWJsZS5hcHBlbmRDaGlsZCh0cik7DQogICAgfQ0KICAgIGNyZWF0ZUlucHV0KHR5cGUsIG5hbWUsIHZhbHVlKSB7DQogICAgICAgIGxldCBpbnB1dCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIklOUFVUIik7DQogICAgICAgIGlmICh2YWx1ZSA9PSB1bmRlZmluZWQpIHsNCiAgICAgICAgICAgIHZhbHVlID0gIiI7DQogICAgICAgIH0NCiAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJ0eXBlIiwgdHlwZSk7DQogICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgibmFtZSIsIG5hbWUpOw0KICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInZhbHVlIiwgdmFsdWUpOw0KICAgICAgICByZXR1cm4gaW5wdXQ7DQogICAgfQ0KICAgIGNyZWF0ZUNoZWNrYm94KG5hbWUpIHsNCiAgICAgICAgbGV0IGlucHV0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiSU5QVVQiKTsNCiAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJ0eXBlIiwgImNoZWNrYm94Iik7DQogICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgibmFtZSIsIG5hbWUpOw0KICAgICAgICByZXR1cm4gaW5wdXQ7DQogICAgfQ0KICAgIC8vIENyZWF0ZXMgYSBzZWxlY3Rpb24gb2YgbXVsdGlwbGUgb3B0aW9ucyB2YWx1ZXMgd2l0aCB0ZXh0IGRlc2NyaXB0aW9ucw0KICAgIGNyZWF0ZVNlbGVjdCh0ZXh0LCB2YWx1ZXMsIHNldCwgZGJLZXkpIHsNCiAgICAgICAgbGV0IHNlbGVjdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlNFTEVDVCIpOw0KICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJuYW1lIiwgZGJLZXkpOw0KICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRleHQubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgICAgIGxldCBvcHRpb24gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJPUFRJT04iKTsNCiAgICAgICAgICAgIG9wdGlvbi5zZXRBdHRyaWJ1dGUoInZhbHVlIiwgdmFsdWVzW2ldKTsNCiAgICAgICAgICAgIG9wdGlvbi5pbm5lclRleHQgPSB0ZXh0W2ldOw0KICAgICAgICAgICAgc2VsZWN0LmFwcGVuZENoaWxkKG9wdGlvbik7DQogICAgICAgIH0NCiAgICAgICAgaWYgKHNldCAhPSAiIikgew0KICAgICAgICAgICAgc2VsZWN0LnZhbHVlID0gc2V0Ow0KICAgICAgICB9DQogICAgICAgIGlmIChzZXQgPT0gdW5kZWZpbmVkKSB7DQogICAgICAgICAgICBzZWxlY3QudmFsdWUgPSB2YWx1ZXNbMF07DQogICAgICAgIH0NCiAgICAgICAgcmV0dXJuIHNlbGVjdDsNCiAgICB9DQogICAgc2VsZWN0T3B0aW9uKHNlbGVjdCwgdmFsdWUpIHsNCiAgICAgICAgLy9zZWxlY3Quc2VsZWN0ZWRPcHRpb25zID0gdmFsdWUNCiAgICAgICAgbGV0IHMgPSBzZWxlY3Q7DQogICAgICAgIHMub3B0aW9uc1tzLnNlbGVjdGVkSW5kZXhdLnZhbHVlID0gdmFsdWU7DQogICAgICAgIHJldHVybiBzZWxlY3Q7DQogICAgfQ0KICAgIGRlc2NyaXB0aW9uKHZhbHVlKSB7DQogICAgICAgIGxldCB0ciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlRSIik7DQogICAgICAgIGxldCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgIGxldCBzcGFuID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiUFJFIik7DQogICAgICAgIHNwYW4uaW5uZXJIVE1MID0gdmFsdWU7DQogICAgICAgIHRyLmFwcGVuZENoaWxkKHRkKTsNCiAgICAgICAgdHIuYXBwZW5kQ2hpbGQodGhpcy5jcmVhdGVDb250ZW50KHNwYW4pKTsNCiAgICAgICAgdGhpcy50YWJsZS5hcHBlbmRDaGlsZCh0cik7DQogICAgfQ0KICAgIC8vIEludGVyYWt0aW9uDQogICAgYWRkSW50ZXJhY3Rpb24oZWxlbWVudCkgew0KICAgICAgICBsZXQgaW50ZXJhY3Rpb24gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicG9wdXAtaW50ZXJhY3Rpb24iKTsNCiAgICAgICAgaW50ZXJhY3Rpb24uYXBwZW5kQ2hpbGQoZWxlbWVudCk7DQogICAgfQ0KfQ0KZnVuY3Rpb24gb3BlblBvcFVwKGRhdGFUeXBlLCBlbGVtZW50KSB7DQogICAgbGV0IGRhdGEgPSB7fTsNCiAgICBsZXQgaWQ7DQogICAgc3dpdGNoIChlbGVtZW50KSB7DQogICAgICAgIGNhc2UgdW5kZWZpbmVkOg0KICAgICAgICAgICAgc3dpdGNoIChkYXRhVHlwZSkgew0KICAgICAgICAgICAgICAgIGNhc2UgImdyb3VwLXRpdGxlIjoNCiAgICAgICAgICAgICAgICAgICAgaWYgKGlkID09IHVuZGVmaW5lZCkgew0KICAgICAgICAgICAgICAgICAgICAgICAgaWQgPSAtMTsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBkYXRhID0gZ2V0TG9jYWxEYXRhKCJmaWx0ZXIiLCBpZCk7DQogICAgICAgICAgICAgICAgICAgIGRhdGFbInR5cGUiXSA9ICJncm91cC10aXRsZSI7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgImN1c3RvbS1maWx0ZXIiOg0KICAgICAgICAgICAgICAgICAgICBpZiAoaWQgPT0gdW5kZWZpbmVkKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBpZCA9IC0xOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIGRhdGEgPSBnZXRMb2NhbERhdGEoImZpbHRlciIsIGlkKTsNCiAgICAgICAgICAgICAgICAgICAgZGF0YVsidHlwZSJdID0gImN1c3RvbS1maWx0ZXIiOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBkZWZhdWx0Og0KICAgICAgICAgICAgICAgICAgICBkYXRhWyJpZC5wcm92aWRlciJdID0gIi0iOw0KICAgICAgICAgICAgICAgICAgICBkYXRhWyJ0eXBlIl0gPSBkYXRhVHlwZTsNCiAgICAgICAgICAgICAgICAgICAgaWQgPSAiLSI7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICBpZCA9IGVsZW1lbnQuaWQ7DQogICAgICAgICAgICBkYXRhID0gZ2V0TG9jYWxEYXRhKGRhdGFUeXBlLCBpZCk7DQogICAgICAgICAgICBicmVhazsNCiAgICB9DQogICAgbGV0IGNvbnRlbnQgPSBuZXcgUG9wdXBDb250ZW50KCk7DQogICAgc3dpdGNoIChkYXRhVHlwZSkgew0KICAgICAgICBjYXNlICJwbGF5bGlzdCI6DQogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUhlYWRsaW5lKCJ7ey5wbGF5bGlzdC5wbGF5bGlzdFR5cGUudGl0bGV9fSIpOw0KICAgICAgICAgICAgLy8gVHlwZQ0KICAgICAgICAgICAgdmFyIHRleHQgPSBbIk0zVSIsICJIREhvbWVSdW4iXTsNCiAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBbImphdmFzY3JpcHQ6IG9wZW5Qb3BVcCgnbTN1JykiLCAiamF2YXNjcmlwdDogb3BlblBvcFVwKCdoZGhyJykiXTsNCiAgICAgICAgICAgIHZhciBzZWxlY3QgPSBjb250ZW50LmNyZWF0ZVNlbGVjdCh0ZXh0LCB2YWx1ZXMsICIiLCAidHlwZSIpOw0KICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgiaWQiLCAidHlwZSIpOw0KICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAnamF2YXNjcmlwdDogY2hhbmdlQnV0dG9uQWN0aW9uKHRoaXMsICJuZXh0IiwgIm9uY2xpY2siKScpOyAvLyBjaGFuZ2VCdXR0b25BY3Rpb24NCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5wbGF5bGlzdC50eXBlLnRpdGxlfX0iLCBzZWxlY3QpOw0KICAgICAgICAgICAgLy8gSW50ZXJha3Rpb24NCiAgICAgICAgICAgIGNvbnRlbnQuY3JlYXRlSW50ZXJhY3Rpb24oKTsNCiAgICAgICAgICAgIC8vIEFiYnJlY2hlbg0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImNhbmNlbCIsICJ7ey5idXR0b24uY2FuY2VsfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBzaG93RWxlbWVudCgicG9wdXAiLCBmYWxzZSk7Jyk7DQogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIC8vIFdlaXRlcg0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgIm5leHQiLCAie3suYnV0dG9uLm5leHR9fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgibTN1IiknKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgiaWQiLCAnbmV4dCcpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSAibTN1IjoNCiAgICAgICAgICAgIGNvbnRlbnQuY3JlYXRlSGVhZGxpbmUoZGF0YVR5cGUpOw0KICAgICAgICAgICAgLy8gTmFtZQ0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gIm5hbWUiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnBsYXlsaXN0Lm5hbWUucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnBsYXlsaXN0Lm5hbWUudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIEJlc2NocmVpYnVuZw0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gImRlc2NyaXB0aW9uIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5wbGF5bGlzdC5kZXNjcmlwdGlvbi5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sucGxheWxpc3QuZGVzY3JpcHRpb24udGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIFVSTA0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gImZpbGUuc291cmNlIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5wbGF5bGlzdC5maWxlTTNVLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5wbGF5bGlzdC5maWxlTTNVLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBUdW5lcg0KICAgICAgICAgICAgaWYgKFNFUlZFUlsic2V0dGluZ3MiXVsiYnVmZmVyIl0gIT0gIi0iKSB7DQogICAgICAgICAgICAgICAgdmFyIHRleHQgPSBbXTsNCiAgICAgICAgICAgICAgICB2YXIgdmFsdWVzID0gW107DQogICAgICAgICAgICAgICAgZm9yICh2YXIgaSA9IDE7IGkgPD0gMTAwOyBpKyspIHsNCiAgICAgICAgICAgICAgICAgICAgdGV4dC5wdXNoKGkudG9TdHJpbmcoKSk7DQogICAgICAgICAgICAgICAgICAgIHZhbHVlcy5wdXNoKGkudG9TdHJpbmcoKSk7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIHZhciBkYktleSA9ICJ0dW5lciI7DQogICAgICAgICAgICAgICAgdmFyIHNlbGVjdCA9IGNvbnRlbnQuY3JlYXRlU2VsZWN0KHRleHQsIHZhbHVlcywgZGF0YVtkYktleV0sIGRiS2V5KTsNCiAgICAgICAgICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJvbmZvY3VzIiwgImphdmFzY3JpcHQ6IHJldHVybjsiKTsNCiAgICAgICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sucGxheWxpc3QudHVuZXIudGl0bGV9fSIsIHNlbGVjdCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICB2YXIgZGJLZXkgPSAidHVuZXIiOw0KICAgICAgICAgICAgICAgIGlmIChkYXRhW2RiS2V5XSA9PSB1bmRlZmluZWQpIHsNCiAgICAgICAgICAgICAgICAgICAgZGF0YVtkYktleV0gPSAxOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInJlYWRvbmx5IiwgInRydWUiKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5jbGFzc05hbWUgPSAibm90QXZhaWxhYmxlIjsNCiAgICAgICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sucGxheWxpc3QudHVuZXIudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGNvbnRlbnQuZGVzY3JpcHRpb24oInt7LnBsYXlsaXN0LnR1bmVyLmRlc2NyaXB0aW9ufX0iKTsNCiAgICAgICAgICAgIC8vIEludGVyYWt0aW9uDQogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUludGVyYWN0aW9uKCk7DQogICAgICAgICAgICAvLyBMw7ZzY2hlbg0KICAgICAgICAgICAgaWYgKGRhdGFbImlkLnByb3ZpZGVyIl0gIT0gIi0iKSB7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImRlbGV0ZSIsICJ7ey5idXR0b24uZGVsZXRlfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5jbGFzc05hbWUgPSAiZGVsZXRlIjsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogc2F2ZVBvcHVwRGF0YSgibTN1IiwgIicgKyBpZCArICciLCB0cnVlLCAwKScpOw0KICAgICAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgZWxzZSB7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImJhY2siLCAie3suYnV0dG9uLmJhY2t9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoInBsYXlsaXN0IiknKTsNCiAgICAgICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIC8vIEFiYnJlY2hlbg0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImNhbmNlbCIsICJ7ey5idXR0b24uY2FuY2VsfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBzaG93RWxlbWVudCgicG9wdXAiLCBmYWxzZSk7Jyk7DQogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIC8vIEFrdHVhbGlzaWVyZW4NCiAgICAgICAgICAgIGlmIChkYXRhWyJpZC5wcm92aWRlciJdICE9ICItIikgew0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJ1cGRhdGUiLCAie3suYnV0dG9uLnVwZGF0ZX19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoIm0zdSIsICInICsgaWQgKyAnIiwgZmFsc2UsIDEpJyk7DQogICAgICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICAvLyBTcGVpY2hlcm4NCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJzYXZlIiwgInt7LmJ1dHRvbi5zYXZlfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBzYXZlUG9wdXBEYXRhKCJtM3UiLCAiJyArIGlkICsgJyIsIGZhbHNlLCAwKScpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSAiaGRociI6DQogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUhlYWRsaW5lKGRhdGFUeXBlKTsNCiAgICAgICAgICAgIC8vIE5hbWUNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJuYW1lIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5wbGF5bGlzdC5uYW1lLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5wbGF5bGlzdC5uYW1lLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBCZXNjaHJlaWJ1bmcNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJkZXNjcmlwdGlvbiI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3sucGxheWxpc3QuZGVzY3JpcHRpb24ucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnBsYXlsaXN0LmRlc2NyaXB0aW9uLnBsYWNlaG9sZGVyfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBVUkwNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJmaWxlLnNvdXJjZSI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3sucGxheWxpc3QuZmlsZUhESFIucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnBsYXlsaXN0LmZpbGVIREhSLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBUdW5lcg0KICAgICAgICAgICAgaWYgKFNFUlZFUlsic2V0dGluZ3MiXVsiYnVmZmVyIl0gIT0gIi0iKSB7DQogICAgICAgICAgICAgICAgdmFyIHRleHQgPSBbXTsNCiAgICAgICAgICAgICAgICB2YXIgdmFsdWVzID0gW107DQogICAgICAgICAgICAgICAgZm9yICh2YXIgaSA9IDE7IGkgPD0gMTAwOyBpKyspIHsNCiAgICAgICAgICAgICAgICAgICAgdGV4dC5wdXNoKGkudG9TdHJpbmcoKSk7DQogICAgICAgICAgICAgICAgICAgIHZhbHVlcy5wdXNoKGkudG9TdHJpbmcoKSk7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIHZhciBkYktleSA9ICJ0dW5lciI7DQogICAgICAgICAgICAgICAgdmFyIHNlbGVjdCA9IGNvbnRlbnQuY3JlYXRlU2VsZWN0KHRleHQsIHZhbHVlcywgZGF0YVtkYktleV0sIGRiS2V5KTsNCiAgICAgICAgICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJvbmZvY3VzIiwgImphdmFzY3JpcHQ6IHJldHVybjsiKTsNCiAgICAgICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sucGxheWxpc3QudHVuZXIudGl0bGV9fSIsIHNlbGVjdCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICB2YXIgZGJLZXkgPSAidHVuZXIiOw0KICAgICAgICAgICAgICAgIGlmIChkYXRhW2RiS2V5XSA9PSB1bmRlZmluZWQpIHsNCiAgICAgICAgICAgICAgICAgICAgZGF0YVtkYktleV0gPSAxOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInJlYWRvbmx5IiwgInRydWUiKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5jbGFzc05hbWUgPSAibm90QXZhaWxhYmxlIjsNCiAgICAgICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sucGxheWxpc3QudHVuZXIudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGNvbnRlbnQuZGVzY3JpcHRpb24oInt7LnBsYXlsaXN0LnR1bmVyLmRlc2NyaXB0aW9ufX0iKTsNCiAgICAgICAgICAgIC8vIEludGVyYWt0aW9uDQogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUludGVyYWN0aW9uKCk7DQogICAgICAgICAgICAvLyBMw7ZzY2hlbg0KICAgICAgICAgICAgaWYgKGRhdGFbImlkLnByb3ZpZGVyIl0gIT0gIi0iKSB7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImRlbGV0ZSIsICJ7ey5idXR0b24uZGVsZXRlfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogc2F2ZVBvcHVwRGF0YSgiaGRociIsICInICsgaWQgKyAnIiwgdHJ1ZSwgMCknKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5jbGFzc05hbWUgPSAiZGVsZXRlIjsNCiAgICAgICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJiYWNrIiwgInt7LmJ1dHRvbi5iYWNrfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJwbGF5bGlzdCIpJyk7DQogICAgICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICAvLyBBYmJyZWNoZW4NCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJjYW5jZWwiLCAie3suYnV0dG9uLmNhbmNlbH19Iik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogc2hvd0VsZW1lbnQoInBvcHVwIiwgZmFsc2UpOycpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICAvLyBBa3R1YWxpc2llcmVuDQogICAgICAgICAgICBpZiAoZGF0YVsiaWQucHJvdmlkZXIiXSAhPSAiLSIpIHsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAidXBkYXRlIiwgInt7LmJ1dHRvbi51cGRhdGV9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBzYXZlUG9wdXBEYXRhKCJoZGhyIiwgIicgKyBpZCArICciLCBmYWxzZSwgMSknKTsNCiAgICAgICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIC8vIFNwZWljaGVybg0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgInNhdmUiLCAie3suYnV0dG9uLnNhdmV9fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoImhkaHIiLCAiJyArIGlkICsgJyIsIGZhbHNlLCAwKScpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSAiZmlsdGVyIjoNCiAgICAgICAgICAgIGNvbnRlbnQuY3JlYXRlSGVhZGxpbmUoZGF0YVR5cGUpOw0KICAgICAgICAgICAgLy8gVHlwZQ0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gInR5cGUiOw0KICAgICAgICAgICAgdmFyIHRleHQgPSBbIk0zVTogIiArICJ7ey5maWx0ZXIudHlwZS5ncm91cFRpdGxlfX0iLCAieFRlVmU6ICIgKyAie3suZmlsdGVyLnR5cGUuY3VzdG9tRmlsdGVyfX0iXTsNCiAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBbImphdmFzY3JpcHQ6IG9wZW5Qb3BVcCgnZ3JvdXAtdGl0bGUnKSIsICJqYXZhc2NyaXB0OiBvcGVuUG9wVXAoJ2N1c3RvbS1maWx0ZXInKSJdOw0KICAgICAgICAgICAgdmFyIHNlbGVjdCA9IGNvbnRlbnQuY3JlYXRlU2VsZWN0KHRleHQsIHZhbHVlcywgImphdmFzY3JpcHQ6IG9wZW5Qb3BVcCgnZ3JvdXAtdGl0bGUnKSIsIGRiS2V5KTsNCiAgICAgICAgICAgIHNlbGVjdC5zZXRBdHRyaWJ1dGUoImlkIiwgaWQpOw0KICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAnamF2YXNjcmlwdDogY2hhbmdlQnV0dG9uQWN0aW9uKHRoaXMsICJuZXh0IiwgIm9uY2xpY2siKTsnKTsgLy8gY2hhbmdlQnV0dG9uQWN0aW9uDQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3suZmlsdGVyLnR5cGUudGl0bGV9fSIsIHNlbGVjdCk7DQogICAgICAgICAgICAvLyBJbnRlcmFrdGlvbg0KICAgICAgICAgICAgY29udGVudC5jcmVhdGVJbnRlcmFjdGlvbigpOw0KICAgICAgICAgICAgLy8gQWJicmVjaGVuDQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAiY2FuY2VsIiwgInt7LmJ1dHRvbi5jYW5jZWx9fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IHNob3dFbGVtZW50KCJwb3B1cCIsIGZhbHNlKTsnKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgLy8gV2VpdGVyDQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAibmV4dCIsICJ7ey5idXR0b24ubmV4dH19Iik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJncm91cC10aXRsZSIpJyk7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoImlkIiwgJ25leHQnKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGNhc2UgImN1c3RvbS1maWx0ZXIiOg0KICAgICAgICBjYXNlICJncm91cC10aXRsZSI6DQogICAgICAgICAgICBzd2l0Y2ggKGRhdGFUeXBlKSB7DQogICAgICAgICAgICAgICAgY2FzZSAiY3VzdG9tLWZpbHRlciI6DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuY3JlYXRlSGVhZGxpbmUoInt7LmZpbHRlci5jdXN0b219fSIgKyAiIEZpbHRlciIpOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBjYXNlICJncm91cC10aXRsZSI6DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuY3JlYXRlSGVhZGxpbmUoInt7LmZpbHRlci5ncm91cH19IiArICIgRmlsdGVyIik7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgLy8gTmFtZSAgICAgIA0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gIm5hbWUiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LmZpbHRlci5uYW1lLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5maWx0ZXIubmFtZS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgLy8gQmVzY2hyZWlidW5nDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAiZGVzY3JpcHRpb24iOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LmZpbHRlci5kZXNjcmlwdGlvbi5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3suZmlsdGVyLmRlc2NyaXB0aW9uLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBUeXANCiAgICAgICAgICAgIHZhciBkYktleSA9ICJ0eXBlIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImhpZGRlbiIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygiIiwgaW5wdXQpOw0KICAgICAgICAgICAgdmFyIGZpbHRlclR5cGUgPSBkYXRhW2RiS2V5XTsNCiAgICAgICAgICAgIHN3aXRjaCAoZmlsdGVyVHlwZSkgew0KICAgICAgICAgICAgICAgIGNhc2UgImN1c3RvbS1maWx0ZXIiOg0KICAgICAgICAgICAgICAgICAgICAvLyBHcm/Dny0gS2xlaW5zY2hyZWlidW5nIGJlYWNodGVuDQogICAgICAgICAgICAgICAgICAgIHZhciBkYktleSA9ICJjYXNlU2Vuc2l0aXZlIjsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChkYktleSk7DQogICAgICAgICAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhW2RiS2V5XTsNCiAgICAgICAgICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LmZpbHRlci5jYXNlU2Vuc2l0aXZlLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAgICAgICAgIC8vIEZpbHRlcnJlZ2VsIChCZW51dHplcmRlZmluaWVydCkNCiAgICAgICAgICAgICAgICAgICAgdmFyIGRiS2V5ID0gImZpbHRlciI7DQogICAgICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LmZpbHRlci5maWx0ZXJSdWxlLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LmZpbHRlci5maWx0ZXJSdWxlLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgImdyb3VwLXRpdGxlIjoNCiAgICAgICAgICAgICAgICAgICAgLy9hbGVydChkYktleSArICIgIiArIGZpbHRlclR5cGUpDQogICAgICAgICAgICAgICAgICAgIC8vIEZpbHRlciBiYXNpZXJlbmQgYXVmIGRlbiBHcnVwcGVuIGluIGRlciBNM1UNCiAgICAgICAgICAgICAgICAgICAgdmFyIGRiS2V5ID0gImZpbHRlciI7DQogICAgICAgICAgICAgICAgICAgIHZhciBncm91cHNNM1UgPSBnZXRMb2NhbERhdGEoIm0zdUdyb3VwcyIsICIiKTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHRleHQgPSBncm91cHNNM1VbInRleHQiXTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHZhbHVlcyA9IGdyb3Vwc00zVVsidmFsdWUiXTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHNlbGVjdCA9IGNvbnRlbnQuY3JlYXRlU2VsZWN0KHRleHQsIHZhbHVlcywgZGF0YVtkYktleV0sIGRiS2V5KTsNCiAgICAgICAgICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LmZpbHRlci5maWx0ZXJHcm91cC50aXRsZX19Iiwgc2VsZWN0KTsNCiAgICAgICAgICAgICAgICAgICAgY29udGVudC5kZXNjcmlwdGlvbigie3suZmlsdGVyLmZpbHRlckdyb3VwLmRlc2NyaXB0aW9ufX0iKTsNCiAgICAgICAgICAgICAgICAgICAgLy8gR3Jvw58tIEtsZWluc2NocmVpYnVuZyBiZWFjaHRlbg0KICAgICAgICAgICAgICAgICAgICB2YXIgZGJLZXkgPSAiY2FzZVNlbnNpdGl2ZSI7DQogICAgICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goZGJLZXkpOw0KICAgICAgICAgICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YVtkYktleV07DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5maWx0ZXIuY2FzZVNlbnNpdGl2ZS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgICAgICAgICB2YXIgZGJLZXkgPSAiaW5jbHVkZSI7DQogICAgICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LmZpbHRlci5pbmNsdWRlLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LmZpbHRlci5pbmNsdWRlLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuZGVzY3JpcHRpb24oInt7LmZpbHRlci5pbmNsdWRlLmRlc2NyaXB0aW9ufX0iKTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGRiS2V5ID0gImV4Y2x1ZGUiOw0KICAgICAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5maWx0ZXIuZXhjbHVkZS5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5maWx0ZXIuZXhjbHVkZS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgICAgICAgICBjb250ZW50LmRlc2NyaXB0aW9uKCJ7ey5maWx0ZXIuZXhjbHVkZS5kZXNjcmlwdGlvbn19Iik7DQogICAgICAgICAgICAgICAgICAgIC8vIFByZXNlcnZlIE0zVSBQbGF5bGlzdCBDaGFubmVsIE1hcHBpbmcNCiAgICAgICAgICAgICAgICAgICAgdmFyIGRiS2V5ID0gInByZXNlcnZlTWFwcGluZyI7DQogICAgICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goZGJLZXkpOw0KICAgICAgICAgICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YVtkYktleV07DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5maWx0ZXIucHJlc2VydmVNYXBwaW5nLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAgICAgICAgIC8vIFN0YXJ0aW5nIENoYW5uZWwgTnVtYmVyIE1hcHBpbmcNCiAgICAgICAgICAgICAgICAgICAgdmFyIGRiS2V5ID0gInN0YXJ0aW5nQ2hhbm5lbCI7DQogICAgICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LmZpbHRlci5zdGFydGluZ0NoYW5uZWwucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3suZmlsdGVyLnN0YXJ0aW5nQ2hhbm5lbC50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgICAgICAgICAvLyBGaWxsIE1pc3NpbmcgRVBHIERhdGENCiAgICAgICAgICAgICAgICAgICAgLy8gVGhlIGZvbGxvd2luZyBjb2RlIG9ubHkgd29ya3Mgd2hlbiB4VGVWZSBEdW1teSBhbHJlYWR5IGV4aXN0cw0KICAgICAgICAgICAgICAgICAgICAvLyB2YXIgZGJLZXk6c3RyaW5nID0gImRlZmF1bHRNaXNzaW5nRVBHIg0KICAgICAgICAgICAgICAgICAgICAvLyB2YXIgeG1sdHY6WE1MVFZGaWxlID0gbmV3IFhNTFRWRmlsZSgpDQogICAgICAgICAgICAgICAgICAgIC8vIHZhciBzZWxlY3QgPSB4bWx0di5nZXRQcm9ncmFtcygieFRlVmUgRHVtbXkiLCBkYXRhW2RiS2V5XSkNCiAgICAgICAgICAgICAgICAgICAgLy8gc2VsZWN0LnNldEF0dHJpYnV0ZSgibmFtZSIsIGRiS2V5KQ0KICAgICAgICAgICAgICAgICAgICAvLyBzZWxlY3Quc2V0QXR0cmlidXRlKCJpZCIsICJwb3B1cC1taXNzaW5nLWVwZyIpDQogICAgICAgICAgICAgICAgICAgIC8vIFRoZSB3b3JrYXJvdW5kIGlzIGN1cnJlbnRseSB0byBoYXJkIGNvZGUgdGhlIHhUZVZlIER1bW15IGRhdGENCiAgICAgICAgICAgICAgICAgICAgdmFyIGRiS2V5ID0gImRlZmF1bHRNaXNzaW5nRVBHIjsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGxpc3RPcHRpb25zID0geyAidGV4dCI6IFsiLSIsICIzMCBNaW51dGVzICgzMF9NaW51dGVzKSIsICI2MCBNaW51dGVzICg2MF9NaW51dGVzKSIsICI5MCBNaW51dGVzICg5MF9NaW51dGVzKSIsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgIjEyMCBNaW51dGVzICgxMjBfTWludXRlcykiLCAiMTgwIE1pbnV0ZXMgKDMwX01pbnV0ZXMpIiwgIjI0MCBNaW51dGVzICgzMF9NaW51dGVzKSIsICIzNjAgTWludXRlcyAoMzBfTWludXRlcykiXSwNCiAgICAgICAgICAgICAgICAgICAgICAgICJ2YWx1ZSI6IFsiLSIsICIzMF9NaW51dGVzIiwgIjYwX01pbnV0ZXMiLCAiOTBfTWludXRlcyIsICIxMjBfTWludXRlcyIsICIxODBfTWludXRlcyIsICIyNDBfTWludXRlcyIsICIzNjBfTWludXRlcyIsXSB9Ow0KICAgICAgICAgICAgICAgICAgICB2YXIgdGV4dCA9IGxpc3RPcHRpb25zWyJ0ZXh0Il07DQogICAgICAgICAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBsaXN0T3B0aW9uc1sidmFsdWUiXTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHNlbGVjdCA9IGNvbnRlbnQuY3JlYXRlU2VsZWN0KHRleHQsIHZhbHVlcywgZGF0YVtkYktleV0sIGRiS2V5KTsNCiAgICAgICAgICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LmZpbHRlci5kZWZhdWx0TWlzc2luZ0VQRy50aXRsZX19Iiwgc2VsZWN0KTsNCiAgICAgICAgICAgICAgICAgICAgY29udGVudC5kZXNjcmlwdGlvbigie3suZmlsdGVyLmRlZmF1bHRNaXNzaW5nRVBHLmRlc2NyaXB0aW9ufX0iKTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICB9DQogICAgICAgICAgICAvLyBJbnRlcmFrdGlvbg0KICAgICAgICAgICAgY29udGVudC5jcmVhdGVJbnRlcmFjdGlvbigpOw0KICAgICAgICAgICAgLy8gTMO2c2NoZW4NCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJkZWxldGUiLCAie3suYnV0dG9uLmRlbGV0ZX19Iik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogc2F2ZVBvcHVwRGF0YSgiZmlsdGVyIiwgIicgKyBpZCArICciLCB0cnVlLCAwKScpOw0KICAgICAgICAgICAgaW5wdXQuY2xhc3NOYW1lID0gImRlbGV0ZSI7DQogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIC8vIEFiYnJlY2hlbg0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImNhbmNlbCIsICJ7ey5idXR0b24uY2FuY2VsfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBzaG93RWxlbWVudCgicG9wdXAiLCBmYWxzZSk7Jyk7DQogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIC8vIFNwZWljaGVybg0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgInNhdmUiLCAie3suYnV0dG9uLnNhdmV9fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoImZpbHRlciIsICInICsgaWQgKyAnIiwgZmFsc2UsIDApJyk7DQogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJ4bWx0diI6DQogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUhlYWRsaW5lKGRhdGFUeXBlKTsNCiAgICAgICAgICAgIC8vIE5hbWUNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJuYW1lIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey54bWx0di5uYW1lLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey54bWx0di5uYW1lLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBCZXNjaHJlaWJ1bmcNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJkZXNjcmlwdGlvbiI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3sueG1sdHYuZGVzY3JpcHRpb24ucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnhtbHR2LmRlc2NyaXB0aW9uLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBVUkwNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJmaWxlLnNvdXJjZSI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3sueG1sdHYuZmlsZVhNTFRWLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey54bWx0di5maWxlWE1MVFYudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIEludGVyYWt0aW9uDQogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUludGVyYWN0aW9uKCk7DQogICAgICAgICAgICAvLyBMw7ZzY2hlbg0KICAgICAgICAgICAgaWYgKGRhdGFbImlkLnByb3ZpZGVyIl0gIT0gIi0iKSB7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImRlbGV0ZSIsICJ7ey5idXR0b24uZGVsZXRlfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogc2F2ZVBvcHVwRGF0YSgieG1sdHYiLCAiJyArIGlkICsgJyIsIHRydWUsIDApJyk7DQogICAgICAgICAgICAgICAgaW5wdXQuY2xhc3NOYW1lID0gImRlbGV0ZSI7DQogICAgICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICAvLyBBYmJyZWNoZW4NCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJjYW5jZWwiLCAie3suYnV0dG9uLmNhbmNlbH19Iik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogc2hvd0VsZW1lbnQoInBvcHVwIiwgZmFsc2UpOycpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICAvLyBBa3R1YWxpc2llcmVuDQogICAgICAgICAgICBpZiAoZGF0YVsiaWQucHJvdmlkZXIiXSAhPSAiLSIpIHsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAidXBkYXRlIiwgInt7LmJ1dHRvbi51cGRhdGV9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBzYXZlUG9wdXBEYXRhKCJ4bWx0diIsICInICsgaWQgKyAnIiwgZmFsc2UsIDEpJyk7DQogICAgICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICAvLyBTcGVpY2hlcm4NCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJzYXZlIiwgInt7LmJ1dHRvbi5zYXZlfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBzYXZlUG9wdXBEYXRhKCJ4bWx0diIsICInICsgaWQgKyAnIiwgZmFsc2UsIDApJyk7DQogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJ1c2VycyI6DQogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUhlYWRsaW5lKCJ7ey5tYWluTWVudS5pdGVtLnVzZXJzfX0iKTsNCiAgICAgICAgICAgIC8vIEJlbnV0emVybmFtZSANCiAgICAgICAgICAgIHZhciBkYktleSA9ICJ1c2VybmFtZSI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3sudXNlcnMudXNlcm5hbWUucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnVzZXJzLnVzZXJuYW1lLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBOZXVlcyBQYXNzd29ydCANCiAgICAgICAgICAgIHZhciBkYktleSA9ICJwYXNzd29yZCI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJwYXNzd29yZCIsIGRiS2V5LCAiIik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnVzZXJzLnBhc3N3b3JkLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey51c2Vycy5wYXNzd29yZC50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgLy8gQmVzdMOkdGlndW5nIA0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gImNvbmZpcm0iOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgicGFzc3dvcmQiLCBkYktleSwgIiIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey51c2Vycy5jb25maXJtLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey51c2Vycy5jb25maXJtLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBCZXJlY2h0aWd1bmcgV0VCDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAiYXV0aGVudGljYXRpb24ud2ViIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goZGJLZXkpOw0KICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGFbZGJLZXldOw0KICAgICAgICAgICAgaWYgKGRhdGFbImRlZmF1bHRVc2VyIl0gPT0gdHJ1ZSkgew0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICJqYXZhc2NyaXB0OiByZXR1cm4gZmFsc2UiKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey51c2Vycy53ZWIudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIEJlcmVjaHRpZ3VuZyBQTVMNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJhdXRoZW50aWNhdGlvbi5wbXMiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChkYktleSk7DQogICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YVtkYktleV07DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sudXNlcnMucG1zLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBCZXJlY2h0aWd1bmcgTTNVDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAiYXV0aGVudGljYXRpb24ubTN1IjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goZGJLZXkpOw0KICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGFbZGJLZXldOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnVzZXJzLm0zdS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgLy8gQmVyZWNodGlndW5nIFhNTA0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gImF1dGhlbnRpY2F0aW9uLnhtbCI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KGRiS2V5KTsNCiAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhW2RiS2V5XTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey51c2Vycy54bWwudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIEJlcmVjaHRpZ3VuZyBBUEkNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJhdXRoZW50aWNhdGlvbi5hcGkiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChkYktleSk7DQogICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YVtkYktleV07DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sudXNlcnMuYXBpLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBJbnRlcmFrdGlvbg0KICAgICAgICAgICAgY29udGVudC5jcmVhdGVJbnRlcmFjdGlvbigpOw0KICAgICAgICAgICAgLy8gTMO2c2NoZW4NCiAgICAgICAgICAgIGlmIChkYXRhWyJkZWZhdWx0VXNlciJdICE9IHRydWUgJiYgaWQgIT0gIi0iKSB7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImRlbGV0ZSIsICJ7ey5idXR0b24uZGVsZXRlfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5jbGFzc05hbWUgPSAiZGVsZXRlIjsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogc2F2ZVBvcHVwRGF0YSgiJyArIGRhdGFUeXBlICsgJyIsICInICsgaWQgKyAnIiwgdHJ1ZSwgMCknKTsNCiAgICAgICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIC8vIEFiYnJlY2hlbg0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImNhbmNlbCIsICJ7ey5idXR0b24uY2FuY2VsfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBzaG93RWxlbWVudCgicG9wdXAiLCBmYWxzZSk7Jyk7DQogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIC8vIFNwZWljaGVybg0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgInNhdmUiLCAie3suYnV0dG9uLnNhdmV9fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoIicgKyBkYXRhVHlwZSArICciLCAiJyArIGlkICsgJyIsICJmYWxzZSIpOycpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSAibWFwcGluZyI6DQogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUhlYWRsaW5lKCJ7ey5tYWluTWVudS5pdGVtLm1hcHBpbmd9fSIpOw0KICAgICAgICAgICAgLy8gQWt0aXYgDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAieC1hY3RpdmUiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChkYktleSk7DQogICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YVtkYktleV07DQogICAgICAgICAgICBpbnB1dC5pZCA9ICJhY3RpdmUiOw0KICAgICAgICAgICAgLy9pbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIikNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdG9nZ2xlQ2hhbm5lbFN0YXR1cygnIiArIGlkICsgIicsIHRoaXMpIik7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3subWFwcGluZy5hY3RpdmUudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIEthbmFsbmFtZSANCiAgICAgICAgICAgIHZhciBkYktleSA9ICJ4LW5hbWUiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICBpZiAoQlVMS19FRElUID09IHRydWUpIHsNCiAgICAgICAgICAgICAgICBpbnB1dC5zdHlsZS5ib3JkZXIgPSAic29saWQgMXB4IHJlZCI7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJyZWFkb25seSIsICJ0cnVlIik7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3subWFwcGluZy5jaGFubmVsTmFtZS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgY29udGVudC5kZXNjcmlwdGlvbihkYXRhWyJuYW1lIl0pOw0KICAgICAgICAgICAgLy8gQmVzY2hyZWlidW5nIA0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gIngtZGVzY3JpcHRpb24iOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7Lm1hcHBpbmcuZGVzY3JpcHRpb24ucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7Lm1hcHBpbmcuZGVzY3JpcHRpb24udGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIEFrdHVhbGlzaWVydW5nIGRlcyBLYW5hbG5hbWVucw0KICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoIl91dWlkLmtleSIpKSB7DQogICAgICAgICAgICAgICAgaWYgKGRhdGFbIl91dWlkLmtleSJdICE9ICIiKSB7DQogICAgICAgICAgICAgICAgICAgIHZhciBkYktleSA9ICJ4LXVwZGF0ZS1jaGFubmVsLW5hbWUiOw0KICAgICAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KGRiS2V5KTsNCiAgICAgICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YVtkYktleV07DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5tYXBwaW5nLnVwZGF0ZUNoYW5uZWxOYW1lLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgLy8gTG9nbyBVUkwgKEthbmFsKSANCiAgICAgICAgICAgIHZhciBkYktleSA9ICJ0dmctbG9nbyI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgiaWQiLCAiY2hhbm5lbC1pY29uIik7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3subWFwcGluZy5jaGFubmVsTG9nby50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgLy8gQWt0dWFsaXNpZXJ1bmcgZGVzIEthbmFsbG9nb3MNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJ4LXVwZGF0ZS1jaGFubmVsLWljb24iOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChkYktleSk7DQogICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YVtkYktleV07DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoImlkIiwgInVwZGF0ZS1pY29uIik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnOyBjaGFuZ2VDaGFubmVsTG9nbygnIiArIGlkICsgIicpOyIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7Lm1hcHBpbmcudXBkYXRlQ2hhbm5lbExvZ28udGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIEVyd2VpdGVybiBkZXIgRVBHIEthdGVnb3JpZQ0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gIngtY2F0ZWdvcnkiOw0KICAgICAgICAgICAgdmFyIHRleHQgPSBbIi0iLCAiS2lkcyAoRW1ieSBvbmx5KSIsICJOZXdzIiwgIk1vdmllIiwgIlNlcmllcyIsICJTcG9ydHMiXTsNCiAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBbIiIsICJLaWRzIiwgIk5ld3MiLCAiTW92aWUiLCAiU2VyaWVzIiwgIlNwb3J0cyJdOw0KICAgICAgICAgICAgdmFyIHNlbGVjdCA9IGNvbnRlbnQuY3JlYXRlU2VsZWN0KHRleHQsIHZhbHVlcywgZGF0YVtkYktleV0sIGRiS2V5KTsNCiAgICAgICAgICAgIHNlbGVjdC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3subWFwcGluZy5lcGdDYXRlZ29yeS50aXRsZX19Iiwgc2VsZWN0KTsNCiAgICAgICAgICAgIC8vIE0zVSBHcnVwcGVudGl0ZWwNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJ4LWdyb3VwLXRpdGxlIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7Lm1hcHBpbmcubTN1R3JvdXBUaXRsZS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgaWYgKGRhdGFbImdyb3VwLXRpdGxlIl0gIT0gdW5kZWZpbmVkKSB7DQogICAgICAgICAgICAgICAgY29udGVudC5kZXNjcmlwdGlvbihkYXRhWyJncm91cC10aXRsZSJdKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIC8vIFhNTFRWIERhdGVpDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAieC14bWx0di1maWxlIjsNCiAgICAgICAgICAgIHZhciB4bWxGaWxlID0gZGF0YVtkYktleV07DQogICAgICAgICAgICB2YXIgeG1sdHYgPSBuZXcgWE1MVFZGaWxlKCk7DQogICAgICAgICAgICB2YXIgc2VsZWN0ID0geG1sdHYuZ2V0RmlsZXMoZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgibmFtZSIsIGRiS2V5KTsNCiAgICAgICAgICAgIHNlbGVjdC5zZXRBdHRyaWJ1dGUoImlkIiwgInBvcHVwLXhtbHR2Iik7DQogICAgICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJzsgc2V0WG1sdHZDaGFubmVsKCciICsgaWQgKyAiJyx0aGlzKTsiKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5tYXBwaW5nLnhtbHR2RmlsZS50aXRsZX19Iiwgc2VsZWN0KTsNCiAgICAgICAgICAgIHZhciBmaWxlID0gZGF0YVtkYktleV07DQogICAgICAgICAgICAvLyBYTUxUViBNYXBwaW5nDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAieC1tYXBwaW5nIjsNCiAgICAgICAgICAgIHZhciB4bWx0diA9IG5ldyBYTUxUVkZpbGUoKTsNCiAgICAgICAgICAgIHZhciBzZWxlY3QgPSB4bWx0di5nZXRQcm9ncmFtcyhmaWxlLCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJuYW1lIiwgZGJLZXkpOw0KICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgiaWQiLCAicG9wdXAtbWFwcGluZyIpOw0KICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCc7IGNoZWNrWG1sdHZDaGFubmVsKCciICsgaWQgKyAiJyx0aGlzLCciICsgeG1sRmlsZSArICInKTsiKTsNCiAgICAgICAgICAgIHNvcnRTZWxlY3Qoc2VsZWN0KTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5tYXBwaW5nLnhtbHR2Q2hhbm5lbC50aXRsZX19Iiwgc2VsZWN0KTsNCiAgICAgICAgICAgIC8vIFRpbWVzaGlmdA0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gIngtdGltZXNoaWZ0IjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5tYXBwaW5nLnRpbWVzaGlmdC5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoImlkIiwgInRpbWVzaGlmdCIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7Lm1hcHBpbmcudGltZXNoaWZ0LnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBJbnRlcmFrdGlvbg0KICAgICAgICAgICAgY29udGVudC5jcmVhdGVJbnRlcmFjdGlvbigpOw0KICAgICAgICAgICAgLy8gTG9nbyBob2NobGFkZW4NCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJjYW5jZWwiLCAie3suYnV0dG9uLnVwbG9hZExvZ299fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IHVwbG9hZExvZ28oKTsnKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgLy8gQWJicmVjaGVuDQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAiY2FuY2VsIiwgInt7LmJ1dHRvbi5jYW5jZWx9fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IHNob3dFbGVtZW50KCJwb3B1cCIsIGZhbHNlKTsnKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgLy8gRmVydGlnDQogICAgICAgICAgICB2YXIgaWRzID0gW107DQogICAgICAgICAgICBpZHMgPSBnZXRBbGxTZWxlY3RlZENoYW5uZWxzKCk7DQogICAgICAgICAgICBpZiAoaWRzLmxlbmd0aCA9PSAwKSB7DQogICAgICAgICAgICAgICAgaWRzLnB1c2goaWQpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgInNhdmUiLCAie3suYnV0dG9uLmRvbmV9fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IGRvbmVQb3B1cERhdGEoIicgKyBkYXRhVHlwZSArICciLCAiJyArIGlkcyArICciLCAiZmFsc2UiKTsnKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICBicmVhazsNCiAgICB9DQogICAgc2hvd1BvcFVwRWxlbWVudCgncG9wdXAtY3VzdG9tJyk7DQp9DQpjbGFzcyBYTUxUVkZpbGUgew0KICAgIGdldEZpbGVzKHNldCkgew0KICAgICAgICBsZXQgZmlsZUlEcyA9IGdldE9iaktleXMoU0VSVkVSWyJ4ZXBnIl1bInhtbHR2TWFwIl0pOw0KICAgICAgICBsZXQgdmFsdWVzID0gbmV3IEFycmF5KCItIik7DQogICAgICAgIGxldCB0ZXh0ID0gbmV3IEFycmF5KCItIik7DQogICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgZmlsZUlEcy5sZW5ndGg7IGkrKykgew0KICAgICAgICAgICAgaWYgKGZpbGVJRHNbaV0gIT0gInhUZVZlIER1bW15Iikgew0KICAgICAgICAgICAgICAgIHZhbHVlcy5wdXNoKGdldFZhbHVlRnJvbVByb3ZpZGVyRmlsZShmaWxlSURzW2ldLCAieG1sdHYiLCAiZmlsZS54dGV2ZSIpKTsNCiAgICAgICAgICAgICAgICB0ZXh0LnB1c2goZ2V0VmFsdWVGcm9tUHJvdmlkZXJGaWxlKGZpbGVJRHNbaV0sICJ4bWx0diIsICJuYW1lIikpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgZWxzZSB7DQogICAgICAgICAgICAgICAgdmFsdWVzLnB1c2goZmlsZUlEc1tpXSk7DQogICAgICAgICAgICAgICAgdGV4dC5wdXNoKGZpbGVJRHNbaV0pOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQogICAgICAgIGxldCBzZWxlY3QgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJTRUxFQ1QiKTsNCiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0ZXh0Lmxlbmd0aDsgaSsrKSB7DQogICAgICAgICAgICB2YXIgb3B0aW9uID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiT1BUSU9OIik7DQogICAgICAgICAgICBvcHRpb24uc2V0QXR0cmlidXRlKCJ2YWx1ZSIsIHZhbHVlc1tpXSk7DQogICAgICAgICAgICBvcHRpb24uaW5uZXJUZXh0ID0gdGV4dFtpXTsNCiAgICAgICAgICAgIHNlbGVjdC5hcHBlbmRDaGlsZChvcHRpb24pOw0KICAgICAgICB9DQogICAgICAgIGlmIChzZXQgIT0gIiIpIHsNCiAgICAgICAgICAgIHNlbGVjdC52YWx1ZSA9IHNldDsNCiAgICAgICAgfQ0KICAgICAgICByZXR1cm4gc2VsZWN0Ow0KICAgIH0NCiAgICBnZXRQcm9ncmFtcyhmaWxlLCBzZXQpIHsNCiAgICAgICAgLy92YXIgZmlsZUlEczpzdHJpbmdbXSA9IGdldE9iaktleXMoU0VSVkVSWyJ4ZXBnIl1bInhtbHR2TWFwIl0pDQogICAgICAgIGxldCB2YWx1ZXMgPSBnZXRPYmpLZXlzKFNFUlZFUlsieGVwZyJdWyJ4bWx0dk1hcCJdW2ZpbGVdKTsNCiAgICAgICAgbGV0IHRleHQgPSBbXTsNCiAgICAgICAgbGV0IGRpc3BsYXlOYW1lOw0KICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHZhbHVlcy5sZW5ndGg7IGkrKykgew0KICAgICAgICAgICAgaWYgKFNFUlZFUlsieGVwZyJdWyJ4bWx0dk1hcCJdW2ZpbGVdW3ZhbHVlc1tpXV0uaGFzT3duUHJvcGVydHkoJ2Rpc3BsYXktbmFtZScpID09IHRydWUpIHsNCiAgICAgICAgICAgICAgICBkaXNwbGF5TmFtZSA9IFNFUlZFUlsieGVwZyJdWyJ4bWx0dk1hcCJdW2ZpbGVdW3ZhbHVlc1tpXV1bImRpc3BsYXktbmFtZSJdOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgZWxzZSB7DQogICAgICAgICAgICAgICAgZGlzcGxheU5hbWUgPSAiLSI7DQogICAgICAgICAgICB9DQogICAgICAgICAgICB0ZXh0W2ldID0gZGlzcGxheU5hbWUgKyAiICgiICsgdmFsdWVzW2ldICsgIikiOw0KICAgICAgICB9DQogICAgICAgIHRleHQudW5zaGlmdCgiLSIpOw0KICAgICAgICB2YWx1ZXMudW5zaGlmdCgiLSIpOw0KICAgICAgICBsZXQgc2VsZWN0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiU0VMRUNUIik7DQogICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGV4dC5sZW5ndGg7IGkrKykgew0KICAgICAgICAgICAgdmFyIG9wdGlvbiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIk9QVElPTiIpOw0KICAgICAgICAgICAgb3B0aW9uLnNldEF0dHJpYnV0ZSgidmFsdWUiLCB2YWx1ZXNbaV0pOw0KICAgICAgICAgICAgb3B0aW9uLmlubmVyVGV4dCA9IHRleHRbaV07DQogICAgICAgICAgICBzZWxlY3QuYXBwZW5kQ2hpbGQob3B0aW9uKTsNCiAgICAgICAgfQ0KICAgICAgICBpZiAoc2V0ICE9ICIiKSB7DQogICAgICAgICAgICBzZWxlY3QudmFsdWUgPSBzZXQ7DQogICAgICAgIH0NCiAgICAgICAgaWYgKHNlbGVjdC52YWx1ZSAhPSBzZXQpIHsNCiAgICAgICAgICAgIHNlbGVjdC52YWx1ZSA9ICItIjsNCiAgICAgICAgfQ0KICAgICAgICByZXR1cm4gc2VsZWN0Ow0KICAgIH0NCn0NCmZ1bmN0aW9uIGdldFZhbHVlRnJvbVByb3ZpZGVyRmlsZShmaWxlLCBmaWxlVHlwZSwga2V5KSB7DQogICAgaWYgKGZpbGUgPT0gInhUZVZlIER1bW15Iikgew0KICAgICAgICByZXR1cm4gZmlsZTsNCiAgICB9DQogICAgbGV0IGZpbGVJRDsNCiAgICBsZXQgaW5kaWNhdG9yID0gZmlsZS5jaGFyQXQoMCk7DQogICAgc3dpdGNoIChpbmRpY2F0b3IpIHsNCiAgICAgICAgY2FzZSAiTSI6DQogICAgICAgICAgICBmaWxlVHlwZSA9ICJtM3UiOw0KICAgICAgICAgICAgZmlsZUlEID0gZmlsZTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJIIjoNCiAgICAgICAgICAgIGZpbGVUeXBlID0gImhkaHIiOw0KICAgICAgICAgICAgZmlsZUlEID0gZmlsZTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJYIjoNCiAgICAgICAgICAgIGZpbGVUeXBlID0gInhtbHR2IjsNCiAgICAgICAgICAgIGZpbGVJRCA9IGZpbGUuc3Vic3RyaW5nKDAsIGZpbGUubGFzdEluZGV4T2YoJy4nKSk7DQogICAgICAgICAgICBicmVhazsNCiAgICB9DQogICAgaWYgKFNFUlZFUlsic2V0dGluZ3MiXVsiZmlsZXMiXVtmaWxlVHlwZV0uaGFzT3duUHJvcGVydHkoZmlsZUlEKSA9PSB0cnVlKSB7DQogICAgICAgIHZhciBkYXRhID0gU0VSVkVSWyJzZXR0aW5ncyJdWyJmaWxlcyJdW2ZpbGVUeXBlXVtmaWxlSURdOw0KICAgICAgICByZXR1cm4gZGF0YVtrZXldOw0KICAgIH0NCiAgICByZXR1cm47DQp9DQpmdW5jdGlvbiBzZXRYbWx0dkNoYW5uZWwoaWQsIGVsZW1lbnQpIHsNCiAgICBsZXQgeG1sdHYgPSBuZXcgWE1MVFZGaWxlKCk7DQogICAgbGV0IHhtbEZpbGUgPSBlbGVtZW50LnZhbHVlOw0KICAgIGxldCB0dmdJZCA9IFNFUlZFUlsieGVwZyJdWyJlcGdNYXBwaW5nIl1baWRdWyJ0dmctaWQiXTsNCiAgICBsZXQgdGQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicG9wdXAtbWFwcGluZyIpLnBhcmVudEVsZW1lbnQ7DQogICAgdGQuaW5uZXJIVE1MID0gIiI7DQogICAgbGV0IHNlbGVjdCA9IHhtbHR2LmdldFByb2dyYW1zKGVsZW1lbnQudmFsdWUsIHR2Z0lkKTsNCiAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJuYW1lIiwgIngtbWFwcGluZyIpOw0KICAgIHNlbGVjdC5zZXRBdHRyaWJ1dGUoImlkIiwgInBvcHVwLW1hcHBpbmciKTsNCiAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJzsgY2hlY2tYbWx0dkNoYW5uZWwoJyIgKyBpZCArICInLHRoaXMsJyIgKyB4bWxGaWxlICsgIicpOyIpOw0KICAgIHNlbGVjdC5jbGFzc05hbWUgPSAiY2hhbmdlZCI7DQogICAgc29ydFNlbGVjdChzZWxlY3QpOw0KICAgIHRkLmFwcGVuZENoaWxkKHNlbGVjdCk7DQogICAgY2hlY2tYbWx0dkNoYW5uZWwoaWQsIHNlbGVjdCwgeG1sRmlsZSk7DQp9DQpmdW5jdGlvbiBjaGVja1htbHR2Q2hhbm5lbChpZCwgZWxlbWVudCwgeG1sRmlsZSkgew0KICAgIGxldCB2YWx1ZSA9IGVsZW1lbnQudmFsdWU7DQogICAgbGV0IGJvb2w7DQogICAgbGV0IGNoZWNrYm94ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2FjdGl2ZScpOw0KICAgIGxldCBjaGFubmVsID0gU0VSVkVSWyJ4ZXBnIl1bImVwZ01hcHBpbmciXVtpZF07DQogICAgbGV0IHVwZGF0ZUxvZ287DQogICAgYm9vbCA9IHZhbHVlICE9ICItIjsNCiAgICBjaGVja2JveC5jaGVja2VkID0gYm9vbDsNCiAgICBjaGVja2JveC5jbGFzc05hbWUgPSAiY2hhbmdlZCI7DQogICAgY29uc29sZS5sb2coeG1sRmlsZSk7DQogICAgLy8gS2FuYWxsb2dvIGFrdHVhbGlzaWVyZW4NCiAgICAvKg0KICAgIHVwZGF0ZUxvZ28gPSAoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInVwZGF0ZS1pY29uIikgYXMgSFRNTElucHV0RWxlbWVudCkuY2hlY2tlZA0KICAgIGNvbnNvbGUubG9nKHVwZGF0ZUxvZ28pOw0KICAgICovDQogICAgaWYgKHhtbEZpbGUgIT0gInhUZVZlIER1bW15IiAmJiBib29sID09IHRydWUpIHsNCiAgICAgICAgLy8oZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInVwZGF0ZS1pY29uIikgYXMgSFRNTElucHV0RWxlbWVudCkuY2hlY2tlZCA9IHRydWU7DQogICAgICAgIC8vKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ1cGRhdGUtaWNvbiIpIGFzIEhUTUxJbnB1dEVsZW1lbnQpLmNsYXNzTmFtZSA9ICJjaGFuZ2VkIjsNCiAgICAgICAgY29uc29sZS5sb2coIklEIiwgaWQpOw0KICAgICAgICBjaGFuZ2VDaGFubmVsTG9nbyhpZCk7DQogICAgICAgIHJldHVybjsNCiAgICB9DQogICAgaWYgKHhtbEZpbGUgPT0gInhUZVZlIER1bW15Iikgew0KICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidXBkYXRlLWljb24iKS5jaGVja2VkID0gZmFsc2U7DQogICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ1cGRhdGUtaWNvbiIpLmNsYXNzTmFtZSA9ICJjaGFuZ2VkIjsNCiAgICB9DQogICAgcmV0dXJuOw0KfQ0KZnVuY3Rpb24gY2hhbmdlQ2hhbm5lbExvZ28oaWQpIHsNCiAgICBsZXQgdXBkYXRlTG9nbzsNCiAgICBsZXQgY2hhbm5lbCA9IFNFUlZFUlsieGVwZyJdWyJlcGdNYXBwaW5nIl1baWRdOw0KICAgIGxldCBmID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInBvcHVwLXhtbHR2Iik7DQogICAgbGV0IHhtbHR2RmlsZSA9IGYub3B0aW9uc1tmLnNlbGVjdGVkSW5kZXhdLnZhbHVlOw0KICAgIGxldCBtID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInBvcHVwLW1hcHBpbmciKTsNCiAgICBsZXQgeE1hcHBpbmcgPSBtLm9wdGlvbnNbbS5zZWxlY3RlZEluZGV4XS52YWx1ZTsNCiAgICBsZXQgeG1sdHZMb2dvID0gU0VSVkVSWyJ4ZXBnIl1bInhtbHR2TWFwIl1beG1sdHZGaWxlXVt4TWFwcGluZ11bImljb24iXTsNCiAgICB1cGRhdGVMb2dvID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInVwZGF0ZS1pY29uIikuY2hlY2tlZDsNCiAgICBpZiAodXBkYXRlTG9nbyA9PSB0cnVlICYmIHhtbHR2RmlsZSAhPSAieFRlVmUgRHVtbXkiKSB7DQogICAgICAgIGlmIChTRVJWRVJbInhlcGciXVsieG1sdHZNYXAiXVt4bWx0dkZpbGVdLmhhc093blByb3BlcnR5KHhNYXBwaW5nKSkgew0KICAgICAgICAgICAgdmFyIGxvZ28gPSB4bWx0dkxvZ287DQogICAgICAgIH0NCiAgICAgICAgZWxzZSB7DQogICAgICAgICAgICBsb2dvID0gY2hhbm5lbFsidHZnLWxvZ28iXTsNCiAgICAgICAgfQ0KICAgICAgICB2YXIgbG9nb0lucHV0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNoYW5uZWwtaWNvbiIpOw0KICAgICAgICBsb2dvSW5wdXQudmFsdWUgPSBsb2dvOw0KICAgICAgICBpZiAoQlVMS19FRElUID09IGZhbHNlKSB7DQogICAgICAgICAgICBsb2dvSW5wdXQuY2xhc3NOYW1lID0gImNoYW5nZWQiOw0KICAgICAgICB9DQogICAgfQ0KfQ0KZnVuY3Rpb24gc2F2ZVBvcHVwRGF0YShkYXRhVHlwZSwgaWQsIHJlbW92ZSwgb3B0aW9uKSB7DQogICAgaWYgKGRhdGFUeXBlID09ICJtYXBwaW5nIikgew0KICAgICAgICBsZXQgZGF0YSA9IHt9Ow0KICAgICAgICBjb25zb2xlLmxvZygiU2F2ZSBtYXBwaW5nIGRhdGEiKTsNCiAgICAgICAgbGV0IGNtZCA9ICJzYXZlRXBnTWFwcGluZyI7DQogICAgICAgIGRhdGFbImVwZ01hcHBpbmciXSA9IFNFUlZFUlsieGVwZyJdWyJlcGdNYXBwaW5nIl07DQogICAgICAgIGNvbnNvbGUubG9nKCJTRU5EIFRPIFNFUlZFUiIpOw0KICAgICAgICBsZXQgc2VydmVyID0gbmV3IFNlcnZlcihjbWQpOw0KICAgICAgICBzZXJ2ZXIucmVxdWVzdChkYXRhKTsNCiAgICAgICAgZGVsZXRlIFVORE9bImVwZ01hcHBpbmciXTsNCiAgICAgICAgcmV0dXJuOw0KICAgIH0NCiAgICBjb25zb2xlLmxvZygiU2F2ZSBwb3B1cCBkYXRhIik7DQogICAgbGV0IGRpdiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJwb3B1cC1jdXN0b20iKTsNCiAgICBsZXQgaW5wdXRzID0gZGl2LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJUQUJMRSIpWzBdLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJJTlBVVCIpOw0KICAgIGxldCBzZWxlY3RzID0gZGl2LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJUQUJMRSIpWzBdLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJTRUxFQ1QiKTsNCiAgICBsZXQgaW5wdXQgPSB7fTsNCiAgICBsZXQgY29uZmlybU1zZzsNCiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHNlbGVjdHMubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgdmFyIG5hbWU7DQogICAgICAgIG5hbWUgPSBzZWxlY3RzW2ldLm5hbWU7DQogICAgICAgIHZhciB2YWx1ZSA9IHNlbGVjdHNbaV0udmFsdWU7DQogICAgICAgIHN3aXRjaCAobmFtZSkgew0KICAgICAgICAgICAgY2FzZSAidHVuZXIiOg0KICAgICAgICAgICAgICAgIGlucHV0W25hbWVdID0gcGFyc2VJbnQodmFsdWUpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgICAgICBpbnB1dFtuYW1lXSA9IHZhbHVlOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICB9DQogICAgfQ0KICAgIGZvciAobGV0IGkgPSAwOyBpIDwgaW5wdXRzLmxlbmd0aDsgaSsrKSB7DQogICAgICAgIHN3aXRjaCAoaW5wdXRzW2ldLnR5cGUpIHsNCiAgICAgICAgICAgIGNhc2UgImNoZWNrYm94IjoNCiAgICAgICAgICAgICAgICBuYW1lID0gaW5wdXRzW2ldLm5hbWU7DQogICAgICAgICAgICAgICAgaW5wdXRbbmFtZV0gPSBpbnB1dHNbaV0uY2hlY2tlZDsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInRleHQiOg0KICAgICAgICAgICAgY2FzZSAiaGlkZGVuIjoNCiAgICAgICAgICAgIGNhc2UgInBhc3N3b3JkIjoNCiAgICAgICAgICAgICAgICBuYW1lID0gaW5wdXRzW2ldLm5hbWU7DQogICAgICAgICAgICAgICAgc3dpdGNoIChuYW1lKSB7DQogICAgICAgICAgICAgICAgICAgIGNhc2UgInR1bmVyIjoNCiAgICAgICAgICAgICAgICAgICAgICAgIGlucHV0W25hbWVdID0gcGFyc2VJbnQoaW5wdXRzW2ldLnZhbHVlKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgICAgICBkZWZhdWx0Og0KICAgICAgICAgICAgICAgICAgICAgICAgaW5wdXRbbmFtZV0gPSBpbnB1dHNbaV0udmFsdWU7DQogICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIH0NCiAgICB9DQogICAgbGV0IGRhdGEgPSB7fTsNCiAgICBsZXQgY21kOw0KICAgIGlmIChyZW1vdmUgPT0gdHJ1ZSkgew0KICAgICAgICBpbnB1dFsiZGVsZXRlIl0gPSB0cnVlOw0KICAgIH0NCiAgICBzd2l0Y2ggKGRhdGFUeXBlKSB7DQogICAgICAgIGNhc2UgInVzZXJzIjoNCiAgICAgICAgICAgIGNvbmZpcm1Nc2cgPSAiRGVsZXRlIHRoaXMgdXNlcj8iOw0KICAgICAgICAgICAgaWYgKGlkID09ICItIikgew0KICAgICAgICAgICAgICAgIGNtZCA9ICJzYXZlTmV3VXNlciI7DQogICAgICAgICAgICAgICAgZGF0YVsidXNlckRhdGEiXSA9IGlucHV0Ow0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgZWxzZSB7DQogICAgICAgICAgICAgICAgY21kID0gInNhdmVVc2VyRGF0YSI7DQogICAgICAgICAgICAgICAgbGV0IGQgPSB7fTsNCiAgICAgICAgICAgICAgICBkW2lkXSA9IGlucHV0Ow0KICAgICAgICAgICAgICAgIGRhdGFbInVzZXJEYXRhIl0gPSBkOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGNhc2UgIm0zdSI6DQogICAgICAgICAgICBjb25maXJtTXNnID0gIkRlbGV0ZSB0aGlzIHBsYXlsaXN0PyI7DQogICAgICAgICAgICBzd2l0Y2ggKG9wdGlvbikgew0KICAgICAgICAgICAgICAgIC8vIFBvcHVwOiBTYXZlDQogICAgICAgICAgICAgICAgY2FzZSAwOg0KICAgICAgICAgICAgICAgICAgICBjbWQgPSAic2F2ZUZpbGVzTTNVIjsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgLy8gUG9wdXA6IFVwZGF0ZQ0KICAgICAgICAgICAgICAgIGNhc2UgMToNCiAgICAgICAgICAgICAgICAgICAgY21kID0gInVwZGF0ZUZpbGVNM1UiOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGRhdGFbImZpbGVzIl0gPSB7fTsNCiAgICAgICAgICAgIGRhdGFbImZpbGVzIl1bZGF0YVR5cGVdID0ge307DQogICAgICAgICAgICBkYXRhWyJmaWxlcyJdW2RhdGFUeXBlXVtpZF0gPSBpbnB1dDsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJoZGhyIjoNCiAgICAgICAgICAgIGNvbmZpcm1Nc2cgPSAiRGVsZXRlIHRoaXMgSERIb21lUnVuIHR1bmVyPyI7DQogICAgICAgICAgICBzd2l0Y2ggKG9wdGlvbikgew0KICAgICAgICAgICAgICAgIC8vIFBvcHVwOiBTYXZlDQogICAgICAgICAgICAgICAgY2FzZSAwOg0KICAgICAgICAgICAgICAgICAgICBjbWQgPSAic2F2ZUZpbGVzSERIUiI7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIC8vIFBvcHVwOiBVcGRhdGUNCiAgICAgICAgICAgICAgICBjYXNlIDE6DQogICAgICAgICAgICAgICAgICAgIGNtZCA9ICJ1cGRhdGVGaWxlSERIUiI7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgZGF0YVsiZmlsZXMiXSA9IHt9Ow0KICAgICAgICAgICAgZGF0YVsiZmlsZXMiXVtkYXRhVHlwZV0gPSB7fTsNCiAgICAgICAgICAgIGRhdGFbImZpbGVzIl1bZGF0YVR5cGVdW2lkXSA9IGlucHV0Ow0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGNhc2UgInhtbHR2IjoNCiAgICAgICAgICAgIGNvbmZpcm1Nc2cgPSAiRGVsZXRlIHRoaXMgWE1MVFYgZmlsZT8iOw0KICAgICAgICAgICAgc3dpdGNoIChvcHRpb24pIHsNCiAgICAgICAgICAgICAgICAvLyBQb3B1cDogU2F2ZQ0KICAgICAgICAgICAgICAgIGNhc2UgMDoNCiAgICAgICAgICAgICAgICAgICAgY21kID0gInNhdmVGaWxlc1hNTFRWIjsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgLy8gUG9wdXA6IFVwZGF0ZQ0KICAgICAgICAgICAgICAgIGNhc2UgMToNCiAgICAgICAgICAgICAgICAgICAgY21kID0gInVwZGF0ZUZpbGVYTUxUViI7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgZGF0YVsiZmlsZXMiXSA9IHt9Ow0KICAgICAgICAgICAgZGF0YVsiZmlsZXMiXVtkYXRhVHlwZV0gPSB7fTsNCiAgICAgICAgICAgIGRhdGFbImZpbGVzIl1bZGF0YVR5cGVdW2lkXSA9IGlucHV0Ow0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGNhc2UgImZpbHRlciI6DQogICAgICAgICAgICBjb25maXJtTXNnID0gIkRlbGV0ZSB0aGlzIGZpbHRlcj8iOw0KICAgICAgICAgICAgY21kID0gInNhdmVGaWx0ZXIiOw0KICAgICAgICAgICAgZGF0YVsiZmlsdGVyIl0gPSB7fTsNCiAgICAgICAgICAgIGRhdGFbImZpbHRlciJdW2lkXSA9IGlucHV0Ow0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICBjb25zb2xlLmxvZyhkYXRhVHlwZSwgaWQpOw0KICAgICAgICAgICAgcmV0dXJuOw0KICAgIH0NCiAgICBpZiAocmVtb3ZlID09IHRydWUpIHsNCiAgICAgICAgaWYgKCFjb25maXJtKGNvbmZpcm1Nc2cpKSB7DQogICAgICAgICAgICBzaG93RWxlbWVudCgicG9wdXAiLCBmYWxzZSk7DQogICAgICAgICAgICByZXR1cm47DQogICAgICAgIH0NCiAgICB9DQogICAgY29uc29sZS5sb2coIlNFTkQgVE8gU0VSVkVSIik7DQogICAgY29uc29sZS5sb2coZGF0YSk7DQogICAgbGV0IHNlcnZlciA9IG5ldyBTZXJ2ZXIoY21kKTsNCiAgICBzZXJ2ZXIucmVxdWVzdChkYXRhKTsNCn0NCmZ1bmN0aW9uIGRvbmVQb3B1cERhdGEoZGF0YVR5cGUsIGlkc1N0cikgew0KICAgIGxldCBpZHMgPSBpZHNTdHIuc3BsaXQoJywnKTsNCiAgICBsZXQgZGl2ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInBvcHVwLWN1c3RvbSIpOw0KICAgIGxldCBpbnB1dHMgPSBkaXYuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSgiY2hhbmdlZCIpOw0KICAgIGlkcy5mb3JFYWNoKGlkID0+IHsNCiAgICAgICAgbGV0IGlucHV0Ow0KICAgICAgICBpbnB1dCA9IFNFUlZFUlsieGVwZyJdWyJlcGdNYXBwaW5nIl1baWRdOw0KICAgICAgICBjb25zb2xlLmxvZyhpbnB1dCk7DQogICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgaW5wdXRzLmxlbmd0aDsgaSsrKSB7DQogICAgICAgICAgICBsZXQgbmFtZTsNCiAgICAgICAgICAgIGxldCB2YWx1ZTsNCiAgICAgICAgICAgIHN3aXRjaCAoaW5wdXRzW2ldLnRhZ05hbWUpIHsNCiAgICAgICAgICAgICAgICBjYXNlICJJTlBVVCI6DQogICAgICAgICAgICAgICAgICAgIHN3aXRjaCAoaW5wdXRzW2ldLnR5cGUpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgImNoZWNrYm94IjoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lID0gaW5wdXRzW2ldLm5hbWU7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSBpbnB1dHNbaV0uY2hlY2tlZDsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnB1dFtuYW1lXSA9IHZhbHVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAidGV4dCI6DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZSA9IGlucHV0c1tpXS5uYW1lOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlID0gaW5wdXRzW2ldLnZhbHVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlucHV0W25hbWVdID0gdmFsdWU7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAiU0VMRUNUIjoNCiAgICAgICAgICAgICAgICAgICAgbmFtZSA9IGlucHV0c1tpXS5uYW1lOw0KICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IGlucHV0c1tpXS52YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgaW5wdXRbbmFtZV0gPSB2YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBzd2l0Y2ggKG5hbWUpIHsNCiAgICAgICAgICAgICAgICBjYXNlICJ0dmctbG9nbyI6DQogICAgICAgICAgICAgICAgICAgIC8vKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5jaGlsZE5vZGVzWzJdLmZpcnN0Q2hpbGQgYXMgSFRNTEVsZW1lbnQpLnNldEF0dHJpYnV0ZSgic3JjIiwgdmFsdWUpDQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgIngtbmFtZSI6DQogICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5jaGlsZE5vZGVzWzNdLmZpcnN0Q2hpbGQuaW5uZXJIVE1MID0gdmFsdWU7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgIngtY2F0ZWdvcnkiOg0KICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkuY2hpbGROb2Rlc1szXS5maXJzdENoaWxkLmNsYXNzTmFtZSA9IHZhbHVlOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBjYXNlICJ4LWdyb3VwLXRpdGxlIjoNCiAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpLmNoaWxkTm9kZXNbNV0uZmlyc3RDaGlsZC5pbm5lckhUTUwgPSB2YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAieC14bWx0di1maWxlIjoNCiAgICAgICAgICAgICAgICAgICAgaWYgKHZhbHVlICE9ICJ4VGVWZSBEdW1teSIgJiYgdmFsdWUgIT0gIi0iKSB7DQogICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IGdldFZhbHVlRnJvbVByb3ZpZGVyRmlsZSh2YWx1ZSwgInhtbHR2IiwgIm5hbWUiKTsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBpZiAodmFsdWUgPT0gIi0iKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBpbnB1dFsieC1hY3RpdmUiXSA9IGZhbHNlOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5jaGlsZE5vZGVzWzZdLmZpcnN0Q2hpbGQuaW5uZXJIVE1MID0gdmFsdWU7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgIngtbWFwcGluZyI6DQogICAgICAgICAgICAgICAgICAgIGlmICh2YWx1ZSA9PSAiLSIpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGlucHV0WyJ4LWFjdGl2ZSJdID0gZmFsc2U7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpLmNoaWxkTm9kZXNbN10uZmlyc3RDaGlsZC5pbm5lckhUTUwgPSB2YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGNyZWF0ZVNlYXJjaE9iaigpOw0KICAgICAgICAgICAgc2VhcmNoSW5NYXBwaW5nKCk7DQogICAgICAgIH0NCiAgICAgICAgaWYgKGlucHV0WyJ4LWFjdGl2ZSJdID09IGZhbHNlKSB7DQogICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkuY2xhc3NOYW1lID0gIm5vdEFjdGl2ZUVQRyI7DQogICAgICAgIH0NCiAgICAgICAgZWxzZSB7DQogICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkuY2xhc3NOYW1lID0gImFjdGl2ZUVQRyI7DQogICAgICAgIH0NCiAgICAgICAgY29uc29sZS5sb2coaW5wdXRbInR2Zy1sb2dvIl0pOw0KICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkuY2hpbGROb2Rlc1syXS5maXJzdENoaWxkLnNldEF0dHJpYnV0ZSgic3JjIiwgaW5wdXRbInR2Zy1sb2dvIl0pOw0KICAgIH0pOw0KICAgIHNob3dFbGVtZW50KCJwb3B1cCIsIGZhbHNlKTsNCiAgICByZXR1cm47DQp9DQpmdW5jdGlvbiBzaG93UHJldmlldyhlbGVtZW50KSB7DQogICAgbGV0IGRpdiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJteVN0cmVhbXNCb3giKTsNCiAgICBzd2l0Y2ggKGVsZW1lbnQpIHsNCiAgICAgICAgY2FzZSBmYWxzZToNCiAgICAgICAgICAgIGRpdi5jbGFzc05hbWUgPSAibm90VmlzaWJsZSI7DQogICAgICAgICAgICByZXR1cm47DQogICAgfQ0KICAgIGxldCBzdHJlYW1zID0gWyJhY3RpdmVTdHJlYW1zIiwgImluYWN0aXZlU3RyZWFtcyJdOw0KICAgIHN0cmVhbXMuZm9yRWFjaChwcmV2aWV3ID0+IHsNCiAgICAgICAgbGV0IHRhYmxlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQocHJldmlldyk7DQogICAgICAgIHRhYmxlLmlubmVySFRNTCA9ICIiOw0KICAgICAgICBsZXQgb2JqID0gU0VSVkVSWyJkYXRhIl1bIlN0cmVhbVByZXZpZXdVSSJdW3ByZXZpZXddOw0KICAgICAgICBvYmouZm9yRWFjaChjaGFubmVsID0+IHsNCiAgICAgICAgICAgIGxldCB0ciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlRSIik7DQogICAgICAgICAgICBsZXQgdGRLZXkgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgbGV0IHRkVmFsID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgIHRkS2V5LmNsYXNzTmFtZSA9ICJ0ZEtleSI7DQogICAgICAgICAgICB0ZFZhbC5jbGFzc05hbWUgPSAidGRWYWwiOw0KICAgICAgICAgICAgc3dpdGNoIChwcmV2aWV3KSB7DQogICAgICAgICAgICAgICAgY2FzZSAiYWN0aXZlU3RyZWFtcyI6DQogICAgICAgICAgICAgICAgICAgIHRkS2V5LmlubmVyVGV4dCA9ICJDaGFubmVsOiAoKykiOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBjYXNlICJpbmFjdGl2ZVN0cmVhbXMiOg0KICAgICAgICAgICAgICAgICAgICB0ZEtleS5pbm5lclRleHQgPSAiQ2hhbm5lbDogKC0pIjsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICB9DQogICAgICAgICAgICB0ZFZhbC5pbm5lclRleHQgPSBjaGFubmVsOw0KICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQodGRLZXkpOw0KICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQodGRWYWwpOw0KICAgICAgICAgICAgdGFibGUuYXBwZW5kQ2hpbGQodHIpOw0KICAgICAgICB9KTsNCiAgICB9KTsNCiAgICBzaG93RWxlbWVudCgibG9hZGluZyIsIGZhbHNlKTsNCiAgICBkaXYuY2xhc3NOYW1lID0gInZpc2libGUiOw0KICAgIHJldHVybjsNCn0NCg==" - webUI["html/video/stream-limit.ts"] = "R0AREABC8CUAAcEAAP8B/wAB/IAUSBIBBkZGbXBlZwlTZXJ2aWNlMDF3fEPK//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////9HQAAQAACwDQABwQAAAAHwACqxBLL//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////0dQABAAArASAAHBAADhAPAAG+EA8AAVvU1W////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////R0EAMAdQAAB7DH4AAAAB4AAAgMAKMQAJEKERAAfYYQAAAAEJ8AAAAAFnZAAorNlAeAIn5cBEAAADAAQAAAMAyDxgxlgAAAABaOvjyyLAAAABBgX//6rcRem95tlIt5Ys2CDZI+7veDI2NCAtIGNvcmUgMTUyIHIyODU0IGU5YTU5MDMgLSBILjI2NC9NUEVHLTQgQVZDIGNvZGVjIC0gQ29weWxlZnQgMjAwMy0yMDE3IC0gaHR0cDovL3dHAQARd3cudmlkZW9sYW4ub3JnL3gyNjQuaHRtbCAtIG9wdGlvbnM6IGNhYmFjPTEgcmVmPTMgZGVibG9jaz0xOjA6MCBhbmFseXNlPTB4MzoweDExMyBtZT1oZXggc3VibWU9NyBwc3k9MSBwc3lfcmQ9MS4wMDowLjAwIG1peGVkX3JlZj0xIG1lX3JhbmdlPTE2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ACqxBLL//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////0dQABEAArASAAHBAADhAPAAG+EA8AAVvU1W////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////RwEAGO10tGlFAwyE91Tzg8923ovJk1dv2xh1gVlYQFtWdZ6NSQ8vgHM7/tMfIZPsqgCU856rdBJJRMDaor/oWA7pkvSmC2aqaC5fd/mkWUPTuG8fRhGqOY1rKxLNSI3HtTQAcuVBxRM0NfMw0ky/JMJYZiCgXcNsxpxl+khr/9fKtO5Fg2VNBti92xcZimHUZDJMQTBOY6vSR9L1N2O/kJQCpdfuc9bkcUTMjH/es/lAySxvbiislkohqkpHAQAZVatwHI0t9eHCUfDyWUEtuCNyDwQFOVMtaYEQJrTrhQX0VduT86F0u0wN9ag0uPsrmX6Rid/x5S7KI1SkS+qP6cdmgSP57uiF4dG6IKsWNfGBLY09H/CFlrg73WINQkkp2diKkdEmtZetn8+ZAKzR5eXN5FebiKt6pIkNLuSofjosypEs2o6boKsfpmbtOV0idOeWDM9C8EIcn3aZwk1s2KBDvt1DlY+i2Cuvhk3XoKLT+pq/bOC5QkcBABolcOXneZXLoQw9W1PH1f/of92Ytjj8okrWijcQAKlE5l8XoTb9qrOiZnDOhqwcMlB9H9rorq041I89hChohYoSkJElcM8V+r8WYN5axD1BNyfwaHAOm4UN2/VEYOkNSfMjmx2S0WW/F2ha8Jj4fc4QgqcXr+TnnbwqLkLTValK4Qa1pcv7PIbDq6zCUfxe04guZ8xEhPQjp17/G6IB/6uq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wnibxQ/cXEblVnM47wbCN3iy4eHjYB5MoIICrSYmd8nt4V0toLs084KJlmnur5FbApYM4W79ff4oZkW88Cg8Fv8TnWhh1Hqc4UlhMbRKm2QxDgfBxar3U7BwNR6prrXXjqfR7ja3tPli+H7Jez/xcTg32QpHAQAdTa7pSSgBvmOqzz175NAFIhwE9p3d71F9jLvhaPv8q1iKopL0kizwzEWElnXWmNhfLkl/Au8KujnoKUaxVdTe+zAZm2dOkejnpNVtVj0Aw9wKcG3ZQ1iRZrUFRIoPKYlmR+oi0LrupuhYABtgPbdCbDtezGTr0nw9wVd/rZ6V+1wcoJ6+8VAVueIdwI3brqm6EoFHiI8L6lER+9SefB8fHo4NYgr/I8jSxaa/2PLX2K/DjrlY6bN8fEcBAB7DXsuh8DITF6CYWj2HTFvqfzlic3QHXnHtvsTFNpyVY1LY8y/fRK2mwALN6IB5W3OuyoKiA3K0lJdQUv2gYhHWvPTV218HYrD0rkbMxRH0SiEEkrHDeOt5T1HtWD13D2/QvMu535fsfZyeaFDjdCE9M0Xi8Lfc7Xj1ZNGend7Jo7/cEiczFkc1vB4z2JpFGZreV2EdquyEzC2STFJtfimyx8QlLngEuR1cxH+lWEcFX+mvBa/eqktIRwEAH6VazFLPNsnHZqsI66TVoArQuUUGFAzr8MT8GZ9V6qpZa5D0jA/4eGi6Kq0smUgRExnqIbSMLWqDf/Pk2YT3MpHTu9VE3Dn9blgB6KsVIkWnB98Y2n/6DrZDcF94Ndu0Ka4U/RZwdV5O5KcO+lU2ZiIOYTYZ6Ie0d+tApxYxJ+YmxaDoCyRNe6crw/yzR5SflT8ddi/E2BM+l+nwVDiKZ/714fmrBxFKWuqLiQNHV19o1cZ8Ubun+ZtHQAASAACwDQABwQAAAAHwACqxBLL//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////0dQABIAArASAAHBAADhAPAAG+EA8AAVvU1W////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////RwEAEH1s3BdtHdF1ln55B24wdACF/ggcRtPmB4IUB6cZJ+m32I4R48ZkdhAFBulgWcsv0wZwH0o1yi3i4qm3rJ98AUKdB9PsNyG9gURV0bTw4myAj6g5Dgodfv6w9bsbOxsGUWkvgAJ3rrR010BvZbIa6CMRCQRjxkCfRF77ansRJZT0JzhtYeSS/ZJob8Rr2jrng3W2rkmHtE+rdqlPiHxmwkRZvYGhBxwiJO2L6f+l/cABsfs09rA+A0pHAQAREZay3TBUIAfMWhApE+LaPgeyOYtaPFONA9aC0h4QrFkaLZfb86678MK+zLgqDBsDoj50eZHMVcczRjs4sYlv7RG8RIWKb5lB9Kn/8+CkxiiA11cHH1yzLX2SKCmhsak/+P/zYQ1EDvEj33bl9e3Jd62cTI+Qw99KrsWnUMN8hFNeXzoGHA3aec+Li4NFboF8sa6lCPR6Csxsvxw8DJaWCnER5Z0p+nKhXavF/eNHQ0DX47ohycc87UcBABKsYHCHXXe3vK1cFYDWO6rhwM6hxCdJ+/X+VB1akQejL6iBMdUPuadUqBnbprwJM0dWpSSn9uuZZeqe46iZOGIJUo69d8x+ZSvPcBH/dK1Y0LJnoWdgWH51SQg7eYqcwjQW3BOy7ZF02Hn1EhTuhsN7ms8zv3WIeEBDBq0T3Idl+Tmw9iJU9skVYiwygHG2+0XwrLa6y+uiQPwMzrnEr1kuf24XoAqrJTZQiVH3aQF4d94yDreWu2KPRwEAE2FsynHZaUcBXEFbeX0nSxZ7sRcRjJvc7RYOny6N8QFwKDVO7jpRWWYM55kuepBOyZ+7BFYeG+FU1kR+ZfmqyDNkD4D1IPwNh6u9JQxDymfN/aMcQC3WxdvCKquPsAut6dugpGkOFtIe+W3ayc4V/J978P+h1EDFMbFjxRPuXht0K2dBQZCJ0ybISUDqWzhPuep8CdxSU4MvMVfdXh7FLl/BqKJUTT+vM+Pz3XnqCQQmH5TjQ4CK55VHAQAUEtgfkBwIYgtwHkhjmtLw7HNTeJeMfTjATEKcyuKzItSeYxHBmGzQ/+G2otpPCOkVAXJ9mfx7LxrW4joZ0ttTRQJ/wqMUK1IN349LiJoo8y/+FwN4jPNDwIleJG697riqnmLOweFW8spHKLBfnHcyC1pG6EIxFpTqUQ0KHqXD/KXIHKioJNAOVwQ1Gfloxebo/Tdtd00dpHP3gcsAOnV75APCYOjVIlwm2X6ViDeZw6Btdb/Br/+yokcBABU3+eOESLlneGbR5SLiL8wPkoRaZ5X7xFlMTMvsv9yHk26bVdmsubSdbYS1Hy64n0+NnL7C1aLD7aJxOudMjVW5goZbfO2KxBQkCD4HFA284wbaB5vOL7mRilCn6YEs1kiwf22+fBLNUmXDb2p353wrD/ygTDhlki66USvUmd/ZAs9uzAddegEzy7Xn00YysWTu/hegYyZtWFC+X5dhLubWJ7n96y5wjrP7PAOXoQQtFUH9j/rBiP/7RwEAFnL/wYKYuj80mPGtimSbF/E9K7XwjwBz8yHZubmVMTCmwkZBM4h0FR1thnUGiSjqjJT6SfunWCZ/dZDQplrzS00UKcUP399SyM+nNG1br8Za0ZYwWch8nyLHYXSRuxdnrfUUespsOQo1cWSLGf0pV2HIcHoiAAEKwPU6irB5BSoFvB1qKVjgEk+QwAEYAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAABHAQA3pAD/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////AwAAAwAAAwAAAwAAAwAAAwBbwUdBABgAAAHgAACAwAoxAAmBIREAB/SBAAAAAQnwAAAAAUGaJGxDv/6plgAAAwAAAwAAAwAAAwAAAwAAAwAAAwAKCKB0AIhy1ftwLNISWucTFC7xeBcaIzP3oZjZo8uT9hqZVstWGnrPz+vjaA5FuCO+K2w7/o39LygDO7aL+0zSrN90LW7r133x8+f+PEKk8d7pd2fj4RYuMOXOYunzFzRX/4IvR1XsK5WJYwVkOca3yfo7DTvUBP9rgSiTRwEAGQD6CFK1PBC4qYCa+coLVnX+jgODNrau5YJXIekDI4+wUNV+5T5HE4e2t5EGAjn77+kC1Vghmvx8KqPnylVUvsaTofheggxHsPuxn1zQt6nA59UglrRUMn8b4pmrvfqTBSqU949+AcNAI6M/eAqz6r0RG5KNeBhx8R2f0x2kujwHU3pc3rlPb6ZrFM/2HiG97eEIezrvWFG7YAAAAwAAAwAE1KRo1VfbdZQ/tOpNGxFmTcQoFidyD2tHAQAapTTIErUKA2Rc9uIzGJu+oW0uNOxRyl6oJNUNJp5L9TIshNS1CmUKgdCaE3LkLwdE8iUkUnIGfWLiWpWmjzsINYC8dnDaSptB53yJkBu0SsR00oo1PZ0pl4ZzoXGSYQJTPaVCbj6FNqm5wcnUqKTB/rgHdPdnDj0K8asLABeo/n3XCXrDorI+LYSD1FBgmV9O7RZdjfL0NnXOQkiq/ZGirwVV0cUF1aHtZx1yHlAAZKuuu7TqB13CAUcBADuRAP///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////yj/IrOvAEoXDNGy+nrxWN0l8cmuqWYaUJpuM9XgAAADAAADAAKmR0EAPAcQAACJHH4AAAAB4AAAgMAKMQAJSOERAAkQoQAAAAEJ8AAAAAFBnkJ4hf8AAAMAAAMAAAMAAAMAAAMAAAMAAAMAC/BmhyuvLmkCgKTgACEXfOVvHRHdpBEEmTTz9pIZCa2FD0CXukzDCakOHekTpJQSdsfd7a/jjM1/5lBtKCAGQ6zOCSQ6DeKtyw+CugDuuglGipwmvQW+FIDjnZ6HRd0uaSOGy6VB3h9MI1o4nqaCqVwwIgubYZFHAQA9XgD////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////WcZrO6BEiqf8pCxYwlz2mkdUzY/ipM/TIHS4m5xQAAAMAAAMAAA5sVm90p14dlvWgBgY7XQ9KVOJKLtaMAN5KiffVQtNuzW5DfL+RewZpAAADAAADAAAQMUdBAB4AAAHgAACAgAUhAAkswQAAAAEJ8AAAAAEBnmF0Qr8AAAMAAAMAAAMAAAMAAAMAAAMAAAMAABJfBjP2+4+W7ZybyT130+Ma4WSqICfd/dS4YtjrLlmh5VBlfrtwJqdN1PBTYDkwGOOONqZQeFN6lLGJoDzvuh3kv1aDBLqug+JhvrSeu5ebnvcrtQzb2REwJL3h9mvtkr0WfDu4AAADAAADAAs32Y4C/6Ns79oCGj6oqLltY3T4I0/QRwEAP5wA//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////8BeoWLRnKQmVgO/RBoBfcK85AAAAMAAAMACFhHQQAwBxAAAJcsfgAAAAHgAACAwAoxAAllAREACUjhAAAAAQnwAAAAAQGeY2pCvwAAAwAAAwAAAwAAAwAAAwAAAwAAAwAAEmDKfLGXsvBBQPNYXlEd6WueJ4deApfcHESlG+7V6u0AiWQqJvNZYM+3Js3Lj9Ldc9yYIHqruVwfMtCYGlX3wMavI/DrhMuJw+RreIF8SKsJD8CMccAAAAMAAAMACrFZOBgEqaP/8EyWsAHV6CgcAgfyox/roEcBADGuAP//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////AAADAAADAHTBR0EAEgAAAeAAAIDACjEACfGhEQAJZQEAAAABCfAAAAABQZpoSahBaJlMCHf//qmWAAADAAADAAADAAADAAADAAADAAADAAALf8A2bry6lUyIAQGNFfVK2Cd7h4qDqmqpvmXfkfTwo2Ab79AHhajxJ4MPWIgAAA84xLRIx7I2CrWjWe96OvgkzgS9mtvhuxdzAgpuIOJI3DEY9mviDDZz8XSAAAADAAADAB7AZkj9AAHHGvk+Pzlku8UkWa5HAQAzogD//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////6HjAkbF/gsWuvw4QAAAAwAAAwAccUdBADQHEAAApTx+AAAAAeAAAIDACjEACblhEQAJgSEAAAABCfAAAAABQZ6GRREsL/8AAAMAAAMAAAMAAAMAAAMAAAMAAAMAAA3URJB/3lMHSmOd0GYZnfpoR80WdqxlyHzPX+V81VUMeXIGrRgq5agd+ACdjoGI036yQ/rmpGw0CmMBrKwpI+nwFo3SP0s1rI2yHBZaiPJjSUgw33rBkxXcq55kfLf2sAAAAwAAAwACBWolidWDnIeQAAADRwEANbEA//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////8AAAMADulHQQA2NAD///////////////////////////////////////////////////////////////////8AAAHgAACAgAUhAAmdQQAAAAEJ8AAAAAEBnqV0Qr8AAAMAAAMAAAMAAAMAAAMAAAMAAAMAABJXNihCnx11JUosH2hBE53O/YN+GPHqcnJiQBIf3maTAAj5iRt+7GYUKBAU9iCXTiouCjGYgAAAAwAAAwA9p4HQBg2cAAADAAADAADGgUdBADc4EAAAs0x+AP////////////////////////////////////////////////////////////////8AAAHgAACAwAoxAAnVgREACblhAAAAAQnwAAAAAQGep2pCvwAAAwAAAwAAAwAAAwAAAwAAAwAAAwAAAwBR6/L83y+ZevtMZ0FW4lp8qV7fVXQAhLAWlS6mDxvpaSUgChorvgTMXtxJEIAAAAMAAAMACqFCAAADAAADAAADAAz4R0EAOCsA////////////////////////////////////////////////////////AAAB4AAAgMAKMQALYiERAAnVgQAAAAEJ8AAAAAFBmqxJqEFsmUwId//+qZYAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAApQTq0hABLvkcWCYrAaRRPNDrECJGlF/11BYvG9+JJ9Y86nxnmQzPxtAAe1UgOsXAAADAAADAAADAAADAAADAAADAAADA/JHQQA5JhAAAMFcfgD/////////////////////////////////////////AAAB4AAAgMAKMQALKeERAAnxoQAAAAEJ8AAAAAFBnspFFSwv/wAAAwAAAwAAAwAAAwAAAwAAAwAAAwAADdRFmvrVE0KXDOGwWddlwYa1foib7tXZKmkua6R4APb4b8+tXwdSNNqgf2IVNwGTohgQAcMvp6SiQxpiQym4AAADAAADAANUNUAAAAMAAAMAAAMBN0dBADo8AP//////////////////////////////////////////////////////////////////////////////AAAB4AAAgIAFIQALDcEAAAABCfAAAAABAZ7pdEK/AAADAAADAAADAAADAAADAAADAAADAAADAFHTAfujIUaaLSuklb9y0/so9AEtQAqkAxOviALQZ5jNt/iOkABrCOZ4md0iUnFwAAADAAADAALwckAAAAMAAAMAAATcR0EAO0IQAADPbH4A//////////////////////////////////////////////////////////////////////////////8AAAHgAACAwAoxAAtGAREACynhAAAAAQnwAAAAAQGe62pCvwAAAwAAAwAAAwAAAwAAAwAAAwAAAwAAAwBR6/L83y+WryR9gmVKPGbIhJpkgAFgHCej3gB6rAHPgHHAAAADAAADAAAYIV0AAAMAAAMAAAMABnxHQQA8UQD//////////////////////////////////////////////////////////////////////////////////////////////////////////wAAAeAAAIDACjEAC9KhEQALRgEAAAABCfAAAAABQZrwSahBbJlMCG///qeEAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAAZ8UdBAD00EAAA3Xx+AP///////////////////////////////////////////////////////////wAAAeAAAIDACjEAC5phEQALYiEAAAABCfAAAAABQZ8ORRUsL/8AAAMAAAMAAAMAAAMAAAMAAAMAAAMAAA3URZr61RNClwzhI2ZXdRHYLZWc1yTgKRhTIXBNABHQKIIyYNyc+AaEn1jhATEAAAMAAAMAAAMAckkIAAADAAADAAADAEbBR0EAPkYA////////////////////////////////////////////////////////////////////////////////////////////AAAB4AAAgIAFIQALfkEAAAABCfAAAAABAZ8tdEK/AAADAAADAAADAAADAAADAAADAAADAAADAFHTAfujIUAYRtY0f/43cIs2OjxACR2hMR1QBGYX+34JGAAAAwAAAwAAAwKEJ6AAAAMAAAMAAAMA3oFHQQA/QhAAAOuMfgD//////////////////////////////////////////////////////////////////////////////wAAAeAAAIDACjEAC7aBEQALmmEAAAABCfAAAAABAZ8vakK/AAADAAADAAADAAADAAADAAADAAADAAADAFHr8vzfL5avJH2CZUo8ZsiEmmSAAWAcJ6PeAHqsAc+AccAAAAMAAAMAABghXQAAAwAAAwAAAwAGfEdBADBRAP//////////////////////////////////////////////////////////////////////////////////////////////////////////AAAB4AAAgMAKMQANQyERAAu2gQAAAAEJ8AAAAAFBmzRJqEFsmUwIZ//+nhAAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAGVAR0EAMTQQAAD5nH4A////////////////////////////////////////////////////////////AAAB4AAAgMAKMQANCuERAAvSoQAAAAEJ8AAAAAFBn1JFFSwv/wAAAwAAAwAAAwAAAwAAAwAAAwAAAwAADdRFmvrVE0KXDOEjZld1EdgtlZzXJOApGFMhcE0AEdAogjJg3Jz4BoSfWOEBMQAAAwAAAwAAAwBySQgAAAMAAAMAAAMARsFHQQAyRgD///////////////////////////////////////////////////////////////////////////////////////////8AAAHgAACAgAUhAAvuwQAAAAEJ8AAAAAEBn3F0Qr8AAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAUdMB+6MhQBhG1jR//jdwizY6PEAJHaExHVAEZhf7fgkYAAADAAADAAADAoQnoAAAAwAAAwAAAwDegEdBADNCEAABB6x+AP//////////////////////////////////////////////////////////////////////////////AAAB4AAAgMAKMQANJwERAA0K4QAAAAEJ8AAAAAEBn3NqQr8AAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAUevy/N8vlq8kfYJlSjxmyISaZIABYBwno94AeqwBz4BxwAAAAwAAAwAAGCFdAAADAAADAAADAAZ8R0EANFIA////////////////////////////////////////////////////////////////////////////////////////////////////////////AAAB4AAAgMAKMQANs6ERAA0nAQAAAAEJ8AAAAAFBm3hJqEFsmUwIV//+OEAAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAYtHQQA1NBAAARW8fgD///////////////////////////////////////////////////////////8AAAHgAACAwAoxAA17YREADUMhAAAAAQnwAAAAAUGflkUVLC//AAADAAADAAADAAADAAADAAADAAADAAAN1EWa+tUTQpcM4SNmV3UR2C2VnNck4CkYUyFwTQAR0CiCMmDcnPgGhJ9Y4QExAAADAAADAAADAHJJCAAAAwAAAwAAAwBGwEdBADZGAP///////////////////////////////////////////////////////////////////////////////////////////wAAAeAAAICABSEADV9BAAAAAQnwAAAAAQGftXRCvwAAAwAAAwAAAwAAAwAAAwAAAwAAAwAAAwBR0wH7oyFAGEbWNH/+N3CLNjo8QAkdoTEdUARmF/t+CRgAAAMAAAMAAAMChCegAAADAAADAAADAN6BR0EAN0IQAAEjzH4A//////////////////////////////////////////////////////////////////////////////8AAAHgAACAwAoxAA2XgREADXthAAAAAQnwAAAAAQGft2pCvwAAAwAAAwAAAwAAAwAAAwAAAwAAAwAAAwBR6/L83y+WryR9gmVKPGbIhJpkgAFgHCej3gB6rAHPgHHAAAADAAADAAAYIV0AAAMAAAMAAAMABn0=" - webUI["html/img/BC-QR.jpg"] = "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" + webUI["html/js/mapping-editor.js"] = "dmFyIG1hcHBpbmdFcnJvciAgPSBmYWxzZTsNCnZhciBidWxrICAgICAgICAgID0gZmFsc2U7DQp2YXIgYnVsa0VkaXRBbGwgICA9IGZhbHNlOyANCnZhciBzZWxlY3RPYmogICAgID0gbmV3IE9iamVjdCgpOw0KdmFyIHNlYXJjaE9iaiAgICAgPSBuZXcgT2JqZWN0KCk7DQoNCnZhciBidWxrSURzICAgICAgID0gbmV3IEFycmF5KCk7DQp2YXIgYnVsa0NoYW5nZU9iaiA9IG5ldyBPYmplY3QoKTsNCg0KZnVuY3Rpb24gY2hlY2tVbmRvKGtleSwgZWxtKSB7DQogIHZhciB0bXAgPSBuZXcgT2JqZWN0KCk7DQogIHRtcCA9IGVsbQ0KICBjb25zb2xlLmxvZygiLS0iKTsNCiAgaWYgKHVuZG8uaGFzT3duUHJvcGVydHkoImVwZ01hcHBpbmciKSkgew0KICAgIHhFUEdbImVwZ01hcHBpbmciXSA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkodW5kb1siZXBnTWFwcGluZyJdKSk7Ow0KICB9IGVsc2Ugew0KICAgIHVuZG9bImVwZ01hcHBpbmciXSA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkoZWxtKSk7DQogIH0NCn0NCg0KLy92YXIgcGxleENhdGVnb3JpZXMgPSBuZXcgQXJyYXkoIi0iLCAiQWN0aW9uIHNwb3J0cyIsICJBY3Rpb24iLCAiQWR1bHRzIG9ubHkiLCAiQWR2ZW50dXJlIiwgIkFlcm9iaWNzIiwgIkFuaW1hbHMiLCAiQW5pbWF0ZWQiLCAiQW5pbWUiLCAiQW50aG9sb2d5IiwgIkFyY2hlcnkiLCAiQXJ0IiwgIkFydHMvY3JhZnRzIiwgIkF1Y3Rpb24iLCAiQXV0byByYWNpbmciLCAiQXV0byIsICJBdmlhdGlvbiIsICJBd2FyZHMiLCAiQmFsbGV0IiwgIkJhc2ViYWxsIiwgIkJhc2tldGJhbGwiLCAiQmljeWNsZSByYWNpbmciLCAiQmljeWNsZSIsICJCaWxsaWFyZHMiLCAiQmlvZ3JhcGh5IiwgIkJvYXQgcmFjaW5nIiwgIkJvYXQiLCAiQm93bGluZyIsICJCb3hpbmciLCAiQnVzLi9maW5hbmNpYWwiLCAiQ2hpbGRyZW4iLCAiQ29sbGVjdGlibGVzIiwgIkNvbWVkeSBkcmFtYSIsICJDb21lZHkiLCAiQ29tbXVuaXR5IiwgIkNvbXB1dGVycyIsICJDb25zdW1lciIsICJDb29raW5nIiwgIkNyaW1lIGRyYW1hIiwgIkNyaW1lIiwgIkRhbmNlIiwgIkRhcmsgY29tZWR5IiwgIkRlYmF0ZSIsICJEaXZpbmciLCAiRG9jdWRyYW1hIiwgIkRvY3VtZW50YXJ5IiwgIkRyYW1hIiwgIkVkdWNhdGlvbmFsIiwgIkVudGVydGFpbm1lbnQiLCAiRW52aXJvbm1lbnQiLCAiRXF1ZXN0cmlhbiIsICJFcm90aWMiLCAiRXZlbnQiLCAiRmFudGFzeSIsICJGYXNoaW9uIiwgIkZlYXR1cmUgRmlsbSIsICJGaXNoaW5nIiwgIkZvb3RiYWxsIiwgIkdhbWUgc2hvdyIsICJHYW1pbmciLCAiR2F5L2xlc2JpYW4iLCAiR29sZiIsICJIYW5kYmFsbCIsICJIZWFsdGgiLCAiSGlzdG9yaWNhbCBkcmFtYSIsICJIaXN0b3J5IiwgIkhvY2tleSIsICJIb2xpZGF5IiwgIkhvbWUgaW1wcm92ZW1lbnQiLCAiSG9ycm9yIiwgIkhvcnNlIiwgIkhvdXNlL2dhcmRlbiIsICJIb3ctdG8iLCAiSW50ZXJ2aWV3IiwgIkludGwgc29jY2VyIiwgIkxhdyIsICJNYXJ0aWFsIGFydHMiLCAiTWVkaWNhbCIsICJNaWxpdGFyeSIsICJNaW5pc2VyaWVzIiwgIk1peGVkIG1hcnRpYWwgYXJ0cyIsICJNb3RvcmN5Y2xlIHJhY2luZyIsICJNb3RvcmN5Y2xlIiwgIk1vdG9yc3BvcnRzIiwgIk1vdW50YWluIGJpa2luZyIsICJNdXNpYyIsICJNdXNpY2FsIGNvbWVkeSIsICJNdXNpY2FsIiwgIk15c3RlcnkiLCAiTmF0dXJlIiwgIk5ld3MiLCAiTmV3c21hZ2F6aW5lIiwgIk9seW1waWNzIiwgIk9wZXJhIiwgIk91dGRvb3JzIiwgIlBhcmFkZSIsICJQYXJhbm9ybWFsIiwgIlBhcmVudGluZyIsICJQZXJmb3JtaW5nIGFydHMiLCAiUGxheW9mZiBzcG9ydHMiLCAiUG9rZXIiLCAiUG9saXRpY3MiLCAiUHJvIHdyZXN0bGluZyIsICJQdWJsaWMgYWZmYWlycyIsICJSZWFsaXR5IiwgIlJlbGlnaW91cyIsICJSb2RlbyIsICJSb2xsZXIgZGVyYnkiLCAiUm9tYW5jZSIsICJSb21hbnRpYyBjb21lZHkiLCAiUnVnYnkiLCAiUnVubmluZyIsICJTYWlsaW5nIiwgIlNjaWVuY2UgZmljdGlvbiIsICJTY2llbmNlIiwgIlNlbGYgaW1wcm92ZW1lbnQiLCAiU2VyaWVzIiwgIlNob290aW5nIiwgIlNob3BwaW5nIiwgIlNob3J0IEZpbG0iLCAiU2l0Y29tIiwgIlNraWluZyIsICJTbm9va2VyIiwgIlNvYXAiLCAiU29jY2VyIiwgIlNwZWNpYWwiLCAiU3BvcnRzIiwgInNwb3J0cyIsICJTcG9ydHMgZXZlbnQiLCAiU3BvcnRzIG5vbi1ldmVudCIsICJTcG9ydHMgdGFsayIsICJTdGFuZHVwIiwgIlN1cmZpbmciLCAiU3VzcGVuc2UiLCAiVFYgTW92aWUiLCAiVGFsayIsICJUZWNobm9sb2d5IiwgIlRlbm5pcyIsICJUaGVhdGVyIiwgIlRocmlsbGVyIiwgIlRyYWNrL2ZpZWxkIiwgIlRyYXZlbCIsICJUcmlhdGhsb24iLCAiVmFyaWV0eSIsICJWb2xsZXliYWxsIiwgIldhciIsICJXYXRlcnNwb3J0cyIsICJXZWF0aGVyIiwgIldlc3Rlcm4iLCAiV3Jlc3RsaW5nIiwgIllhY2h0IHJhY2luZyIsICJtb3ZpZSIsICJzZXJpZXMiLCAic3BvcnRzIiwgInR2c2hvdyIpOw0KdmFyIHBsZXhDYXRlZ29yaWVzVmFsdWVzID0gbmV3IEFycmF5KCItIiwgIktpZHMiLCAiTmV3cyIsICJNb3ZpZSIsICJTZXJpZXMiLCAiU3BvcnRzIikNCnZhciBwbGV4Q2F0ZWdvcmllc09wdGlvbiA9IG5ldyBBcnJheSgiLSIsICJLaWRzIChFbWJ5IG9ubHkpIiwgIk5ld3MiLCAiTW92aWUiLCAiU2VyaWVzIiwgIlNwb3J0cyIpDQoNCg0KZnVuY3Rpb24gb3Blbk1hcHBpbmdFZGl0b3IoZWxtKSB7DQogIHZhciBjb2x1bW5Ub1NvcnQgID0gMQ0KDQogIGNoZWNrVW5kbygiZXBnTWFwcGluZyIsIHhFUEdbImVwZ01hcHBpbmciXSkNCg0KICB2YXIgbmV3RGl2ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNldHRpbmdzIik7DQogIA0KICB2YXIgbmV3RW50cnkgPSBuZXcgT2JqZWN0KCk7DQogIG5ld0VudHJ5WyJfZWxlbWVudCJdICA9ICJIUiI7DQogIG5ld0Rpdi5hcHBlbmRDaGlsZChjcmVhdGVFbGVtZW50KG5ld0VudHJ5KSk7DQoNCiAgdmFyIG5ld0VudHJ5ID0gbmV3IE9iamVjdCgpOw0KICBuZXdFbnRyeVsiX2VsZW1lbnQiXSAgICA9ICJJTlBVVCI7DQogIG5ld0VudHJ5WyJ0eXBlIl0gICAgICAgID0gImJ1dHRvbiI7DQogIG5ld0VudHJ5WyJjbGFzcyJdICAgICAgID0gImJ1dHRvbiI7DQogIG5ld0VudHJ5WyJ2YWx1ZSJdICAgICAgID0gIlNhdmUiOw0KICBuZXdFbnRyeVsib25jbGljayJdICAgICA9ICJzYXZlWEVQRygpIjsNCiAgbmV3RGl2LmFwcGVuZENoaWxkKGNyZWF0ZUVsZW1lbnQobmV3RW50cnkpKTsNCg0KICB2YXIgbmV3RW50cnkgPSBuZXcgT2JqZWN0KCk7DQogIG5ld0VudHJ5WyJfZWxlbWVudCJdICAgID0gIklOUFVUIjsNCiAgbmV3RW50cnlbInR5cGUiXSAgICAgICAgPSAiYnV0dG9uIjsNCiAgbmV3RW50cnlbImNsYXNzIl0gICAgICAgPSAiYnV0dG9uIjsNCiAgbmV3RW50cnlbInZhbHVlIl0gICAgICAgPSAiQnVsayBFZGl0IjsNCiAgbmV3RW50cnlbIm9uY2xpY2siXSAgICAgPSAiYnVsa0VkaXQoKSI7DQogIG5ld0Rpdi5hcHBlbmRDaGlsZChjcmVhdGVFbGVtZW50KG5ld0VudHJ5KSk7DQoNCiAgdmFyIG5ld0VudHJ5ID0gbmV3IE9iamVjdCgpOw0KICBuZXdFbnRyeVsiX2VsZW1lbnQiXSAgICA9ICJJTlBVVCI7DQogIG5ld0VudHJ5WyJ0eXBlIl0gICAgICAgID0gImJ1dHRvbiI7DQogIG5ld0VudHJ5WyJjbGFzcyJdICAgICAgID0gImJ1dHRvbiI7DQogIG5ld0VudHJ5WyJ2YWx1ZSJdICAgICAgID0gIlNob3cgWEVQRyI7DQogIG5ld0VudHJ5WyJvbmNsaWNrIl0gICAgID0gInNob3dYRVBHKCkiOw0KICBuZXdEaXYuYXBwZW5kQ2hpbGQoY3JlYXRlRWxlbWVudChuZXdFbnRyeSkpOw0KDQogIHZhciBuZXdFbnRyeSA9IG5ldyBPYmplY3QoKTsNCiAgbmV3RW50cnlbIl9lbGVtZW50Il0gICAgPSAiSU5QVVQiOw0KICBuZXdFbnRyeVsiY2xhc3MiXSAgICAgICA9ICJzZWFyY2giOw0KICBuZXdFbnRyeVsiaWQiXSAgICAgICAgICA9ICJzZWFyY2hNYXBwaW5nIjsNCiAgbmV3RW50cnlbInR5cGUiXSAgICAgICAgPSAic2VhcmNoIjsNCiAgbmV3RW50cnlbInBsYWNlaG9sZGVyIl0gPSAiU2VhcmNoIjsNCiAgbmV3RW50cnlbIm9uY2hhbmdlIl0gICAgPSAic2VhcmNoSW5NYXBwaW5nKCkiOw0KICBuZXdEaXYuYXBwZW5kQ2hpbGQoY3JlYXRlRWxlbWVudChuZXdFbnRyeSkpOw0KDQogIHZhciBkaXYgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic2V0dGluZ3MiKTsNCiAgLy9zY3JlZW5Mb2coIkR1cGxpY2F0ZSBJRCIsICJlcnJvciIsIHRydWUpDQogIA0KDQogIC8vIEJ1aWxkIHRhYmxlDQoNCiAgdmFyIG5ld1dyYXBwZXIgPSBuZXcgT2JqZWN0KCk7DQogIG5ld1dyYXBwZXJbIl9lbGVtZW50Il0gID0gIkRJViI7DQogIG5ld1dyYXBwZXJbImlkIl0gICAgICAgID0gImJveC13cmFwcGVyIjsNCiAgZGl2LmFwcGVuZENoaWxkKGNyZWF0ZUVsZW1lbnQobmV3V3JhcHBlcikpOw0KDQoNCiAgdmFyIG5ld1RhYmxlID0gbmV3IE9iamVjdCgpOw0KICBuZXdUYWJsZVsiX2VsZW1lbnQiXSAgPSAiVEFCTEUiOw0KICBuZXdUYWJsZVsiaWQiXSAgICAgICAgPSAiaWRfbWFwcGluZyI7DQogIG5ld1RhYmxlWyJjbGFzcyJdICAgICA9ICJ0YWJsZS1tYXBwaW5nIjsNCiAgZGl2Lmxhc3RDaGlsZC5hcHBlbmRDaGlsZChjcmVhdGVFbGVtZW50KG5ld1RhYmxlKSk7DQogIHNob3dMb2FkaW5nU2NyZWVuKHRydWUpOw0KDQogIHNldFRpbWVvdXQoZnVuY3Rpb24oKXsgDQogICAgY3JlYXRlTWFwcGluZ1RhYmxlKCk7IA0KICB9LCAxMCk7DQoNCn0NCg0KZnVuY3Rpb24gY3JlYXRlU2VhcmNoT2JqKCkgew0KICBzZWFyY2hPYmogPSBuZXcgT2JqZWN0KCk7DQogIHZhciBJRHMgPSBnZXRPYmpLZXlzKHhFUEdbImVwZ01hcHBpbmciXSkNCiAgZm9yICh2YXIgaSA9IElEcy5sZW5ndGggLSAxOyBpID49IDA7IGktLSkgew0KICAgIHZhciBpdGVtID0geEVQR1siZXBnTWFwcGluZyJdW0lEc1tpXV07DQogICAgdmFyIHNlYXJjaElEID0gaXRlbVsieC1lcGciXTsNCiAgICB2YXIgc2VhcmNoVmFsdWUgPSAiIjsgDQogICAgc2VhcmNoVmFsdWUgPSBzZWFyY2hWYWx1ZSArIGl0ZW1bIngtY2hhbm5lbElEIl0gKyAiICI7DQogICAgc2VhcmNoVmFsdWUgPSBzZWFyY2hWYWx1ZSArIGl0ZW1bIngtY2F0ZWdvcnkiXSArICIgIjsNCiAgICBzZWFyY2hWYWx1ZSA9IHNlYXJjaFZhbHVlICsgaXRlbVsieC1uYW1lIl0gKyAiICI7DQogICAgc2VhcmNoVmFsdWUgPSBzZWFyY2hWYWx1ZSArIGl0ZW1bIngtZ3JvdXAtdGl0bGUiXSArICIgIjsNCiAgICBzZWFyY2hWYWx1ZSA9IHNlYXJjaFZhbHVlICsgaXRlbVsieC14bWx0di1maWxlIl0gKyAiICI7DQogICAgc2VhcmNoVmFsdWUgPSBzZWFyY2hWYWx1ZSArIGl0ZW1bIl9maWxlLm0zdS5uYW1lIl0gKyAiICI7DQoNCiAgICBzd2l0Y2goaXRlbVsieC1hY3RpdmUiXSkgew0KICAgICAgY2FzZSB0cnVlOiAgc2VhcmNoVmFsdWUgPSBzZWFyY2hWYWx1ZSArICJvbmxpbmUiOyBicmVhazsNCiAgICAgIGNhc2UgZmFsc2U6IHNlYXJjaFZhbHVlID0gc2VhcmNoVmFsdWUgKyAib2ZmbGluZSI7IGJyZWFrOw0KICAgIH0NCg0KICAgIHNlYXJjaE9ialtzZWFyY2hWYWx1ZV0gPSBzZWFyY2hJRDsNCg0KICB9DQp9DQoNCg0KZnVuY3Rpb24gY2FsY3VsYXRlV3JhcHBlckhlaWdodCgpIHsNCg0KICBpZiAoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImJveC13cmFwcGVyIikpew0KDQogICAgdmFyIGVsbSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJib3gtd3JhcHBlciIpOw0KICAgIA0KICAgIHZhciBkaXZzID0gbmV3IEFycmF5KCJteVN0cmVhbXNCb3giLCAiY2xpZW50SW5mbyIsICJzZXR0aW5ncyIpOw0KICAgIHZhciBlbGVtZW50c0hlaWdodCA9IDAgLSBlbG0ub2Zmc2V0SGVpZ2h0Ow0KICAgIGZvciAodmFyIGkgPSAwOyBpIDwgZGl2cy5sZW5ndGg7IGkrKykgew0KICAgICAgZWxlbWVudHNIZWlnaHQgPSBlbGVtZW50c0hlaWdodCArIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGRpdnNbaV0pLm9mZnNldEhlaWdodDsNCiAgICB9DQoNCiAgICBlbG0uc3R5bGUuaGVpZ2h0ID0gd2luZG93LmlubmVySGVpZ2h0IC0gZWxlbWVudHNIZWlnaHQgKyAicHgiOw0KDQogIH0NCg0KICBpZiAoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm1lbnUtd3JhcHBlciIpKXsNCg0KICAgIHZhciBlbG0gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibWVudS13cmFwcGVyIik7DQogICAgDQogICAgdmFyIG9mZmVzdCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzZXR0aW5ncyIpLm9mZnNldEhlaWdodCArIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJteVN0cmVhbXNCb3giKS5vZmZzZXRIZWlnaHQgKyBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY2xpZW50SW5mbyIpLm9mZnNldEhlaWdodDsNCiAgICANCiAgICBpZiAod2luZG93LmlubmVySGVpZ2h0ID4gb2ZmZXN0KSB7DQogICAgICBlbG0uc3R5bGUuaGVpZ2h0ID0gd2luZG93LmlubmVySGVpZ2h0ICsgInB4Ig0KICAgIH0gZWxzZSB7DQogICAgICBlbG0uc3R5bGUuaGVpZ2h0ID0gb2ZmZXN0ICsgInB4Ig0KICAgIH0NCiAgICANCg0KICB9DQoNCg0KfQ0KDQpmdW5jdGlvbiBjcmVhdGVNYXBwaW5nVGFibGUoKSB7DQogIGNvbHVtblRvU29ydCA9IDE7DQogIGNyZWF0ZVNlYXJjaE9iaigpOw0KDQogIC8vIENyZWF0ZSB0YWJsZSAoSGVhZGVyKQ0KICB2YXIgdGFibGUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiaWRfbWFwcGluZyIpOw0KICB0YWJsZS5pbm5lckhUTUwgPSAiIjsNCiAgdmFyIG5ld1RSID0gbmV3IE9iamVjdCgpOw0KICBuZXdUUlsiX2VsZW1lbnQiXSA9ICJUUiI7DQogIG5ld1RSWyJjbGFzcyJdICAgID0gInRhYmxlLW1hcHBpbmctaGVhZGVyIjsNCiAgdGFibGUuYXBwZW5kQ2hpbGQoY3JlYXRlRWxlbWVudChuZXdUUikpOw0KDQogIHZhciB0ciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJpZF9tYXBwaW5nIikubGFzdENoaWxkOw0KICB2YXIgdHJIZWFkbGluZXMgPSBuZXcgQXJyYXkoIkJ1bGsiLCAiQ2guIE5vLiIsICJMb2dvIiwgIkNoYW5uZWwgTmFtZSIsICJQbGF5bGlzdCIsICJHcm91cCBUaXRsZSIsICJYTUxUViBGaWxlIiwgIlhNTFRWIElEIiwgIlRpbWVzaGlmdCIpDQoNCiAgZm9yICh2YXIgaSA9IDA7IGkgPCB0ckhlYWRsaW5lcy5sZW5ndGg7IGkrKykgew0KICAgIHZhciBuZXdURCA9IG5ldyBPYmplY3QoKTsNCg0KICAgIG5ld1REWyJfZWxlbWVudCJdID0gIlREIjsNCiAgICBuZXdURFsiX3RleHQiXSAgICA9IHRySGVhZGxpbmVzW2ldOw0KDQogICAgDQoNCiAgICB2YXIgd2lkdGggPSAiIjsNCiAgICBzd2l0Y2godHJIZWFkbGluZXNbaV0pIHsNCg0KICAgICAgY2FzZSAiQnVsayI6ICANCiAgICAgICAgDQogICAgICAgIG1heFdpZHRoID0gIjMycHgiOyANCiAgICAgICAgbWluV2lkdGggPSAiMzJweCI7IA0KICAgIA0KICAgICAgICAvLyBDcmVhdGUgYnVsayBURA0KICAgICAgICB2YXIgbmV3Q2hlY2tib3ggPSBuZXcgT2JqZWN0KCk7DQogICAgICAgIG5ld0NoZWNrYm94WyJfZWxlbWVudCJdID0gIklOUFVUIjsNCiAgICAgICAgbmV3Q2hlY2tib3hbInR5cGUiXSAgICAgPSAiY2hlY2tib3giOw0KICAgICAgICBuZXdDaGVja2JveFsiY2xhc3MiXSAgICA9ICJidWxrIGhpZGVCdWxrIjsNCiAgICAgICAgbmV3Q2hlY2tib3hbIm9ubW91c2VvdXQiXSA9ICJqYXZhc2NyaXB0OiB0aGlzLmJsdXIoKSINCiAgICAgICAgbmV3Q2hlY2tib3hbIm9uY2xpY2siXSAgICA9ICJqYXZhc2NyaXB0OiBidWxrRWRpdEFsbENoYW5uZWxzKCkiDQoNCiAgICANCiAgICAgICAgLy9uZXdURC5hcHBlbmRDaGlsZChjcmVhdGVFbGVtZW50KG5ld0NoZWNrYm94KSk7DQoNCiAgICAgICAgYnJlYWs7DQoNCiAgICAgIGNhc2UgIkNoLiBOby4iOiANCiAgICAgICAgbWF4V2lkdGggPSAiODBweCI7IA0KICAgICAgICBtaW5XaWR0aCA9ICI3MHB4IjsgDQogICAgICAgIG5ld1REWyJvbmNsaWNrIl0gID0gImphdnNjcmlwdDogc29ydFRhYmxlKCIgKyBpICsgIik7IjsNCiAgICAgICAgbmV3VERbImNsYXNzIl0gICAgPSAicG9pbnRlciI7DQogICAgICAgIGJyZWFrOw0KICAgICAgDQogICAgICBjYXNlICJMb2dvIjogIG1heFdpZHRoID0gIjEyMHB4IjsgbWluV2lkdGggPSAiNjBweCI7IGJyZWFrOw0KICAgICAgDQogICAgICBjYXNlICJDaGFubmVsIE5hbWUiOiAgDQogICAgICAgIG1heFdpZHRoID0gIjUwJSI7IA0KICAgICAgICBtaW5XaWR0aCA9ICIyMDBweCI7IA0KICAgICAgICBuZXdURFsib25jbGljayJdICA9ICJqYXZzY3JpcHQ6IHNvcnRUYWJsZSgiICsgaSArICIpOyI7DQogICAgICAgIG5ld1REWyJjbGFzcyJdID0gInBvaW50ZXIiOw0KICAgICAgICBicmVhazsNCg0KICAgICAgY2FzZSAiUGxheWxpc3QiOiAgICAgIA0KICAgICAgICBtYXhXaWR0aCA9ICIxNTBweCI7IA0KICAgICAgICBtaW5XaWR0aCA9ICIxMDBweCI7IA0KICAgICAgICBuZXdURFsib25jbGljayJdICA9ICJqYXZzY3JpcHQ6IHNvcnRUYWJsZSgiICsgaSArICIpOyI7DQogICAgICAgIG5ld1REWyJjbGFzcyJdICAgID0gInBvaW50ZXIiOw0KICAgICAgICBicmVhazsNCiAgICAgIA0KICAgICAgY2FzZSAiR3JvdXAgVGl0bGUiOiAgIA0KICAgICAgICBtYXhXaWR0aCA9ICIxNTBweCI7IA0KICAgICAgICBtaW5XaWR0aCA9ICIxMDBweCI7IA0KICAgICAgICBuZXdURFsib25jbGljayJdICA9ICJqYXZzY3JpcHQ6IHNvcnRUYWJsZSgiICsgaSArICIpOyI7DQogICAgICAgIG5ld1REWyJjbGFzcyJdICAgID0gInBvaW50ZXIiOw0KICAgICAgICBicmVhazsNCiAgICAgIA0KICAgICAgY2FzZSAiWE1MVFYgRmlsZSI6ICAgIA0KICAgICAgICBtYXhXaWR0aCA9ICIxNTBweCI7IA0KICAgICAgICBtaW5XaWR0aCA9ICIxMDBweCI7IA0KICAgICAgICAvL25ld1REWyJvbmNsaWNrIl0gID0gImphdnNjcmlwdDogc29ydFRhYmxlKCIgKyBpICsgIik7IjsNCiAgICAgICAgbmV3VERbImNsYXNzIl0gICAgPSAiIjsNCiAgICAgICAgYnJlYWs7DQogICAgICANCg0KICAgICAgY2FzZSAiWE1MVFYgSUQiOiAgICAgIG1heFdpZHRoID0gIjE1MHB4IjsgbWluV2lkdGggPSAiMTAwcHgiOyBicmVhazsNCg0KICAgICAgY2FzZSAiVGltZXNoaWZ0IjogICAgICBtYXhXaWR0aCA9ICI1MHB4IjsgbWluV2lkdGggPSAiMjBweCI7IGJyZWFrOw0KDQogICAgICBkZWZhdWx0OiANCiAgICAgICAgbmV3VERbImNsYXNzIl0gICAgPSAiIjsNCiAgICAgICAgYnJlYWs7DQogICAgfQ0KDQogICAgdHIuYXBwZW5kQ2hpbGQoY3JlYXRlRWxlbWVudChuZXdURCkpOw0KICAgIGlmICh0ckhlYWRsaW5lc1tpXSA9PSAiQnVsayIpIHsNCiAgICAgIHRyLmxhc3RDaGlsZC5pbm5lckhUTUwgPSAiIjsNCiAgICAgIHRyLmxhc3RDaGlsZC5hcHBlbmRDaGlsZChjcmVhdGVFbGVtZW50KG5ld0NoZWNrYm94KSk7DQogICAgICANCiAgICB9DQogICAgDQogICAgdmFyIGVsbSA9IHRyLmxhc3RDaGlsZDsNCiAgICBlbG0uc3R5bGUud2lkdGggPSBtYXhXaWR0aDsNCiAgICBlbG0uc3R5bGUubWF4V2lkdGggPSBtYXhXaWR0aDsNCiAgICBlbG0uc3R5bGUubWluV2lkdGggPSBtaW5XaWR0aDsNCg0KICB9DQogIGNhbGN1bGF0ZVdyYXBwZXJIZWlnaHQoKTsNCiAgdmFyIElEcyA9IGdldE9iaktleXMoeEVQR1siZXBnTWFwcGluZyJdKQ0KDQogIHZhciBhbGxYbWx0dkZpbGVzID0gZ2V0T2JqS2V5cyh4RVBHWyJ4bWx0dk1hcCJdKTsNCg0KICBpZiAoYWxsWG1sdHZGaWxlcyA9PSAwKSB7DQogICAgc2hvd0xvYWRpbmdTY3JlZW4oZmFsc2UpOw0KICAgIHJldHVybjsNCiAgfQ0KDQogIC8vIFNvcnQgSURzDQogIHZhciBwb3NPYmogPSBuZXcgT2JqZWN0KCk7DQogIGZvciAodmFyIGkgPSAwOyBpIDwgSURzLmxlbmd0aDsgaSsrKSB7DQogICAgdmFyIGl0ZW0gID0geEVQR1siZXBnTWFwcGluZyJdW0lEc1tpXV07DQogICAgdmFyIHBvcw0KICAgIHN3aXRjaChpc05hTih4RVBHWyJlcGdNYXBwaW5nIl1bSURzW2ldXVsieC1jaGFubmVsSUQiXSkpIHsNCiAgICAgIGNhc2UgZmFsc2U6IHBvcyA9IHBhcnNlRmxvYXQoeEVQR1siZXBnTWFwcGluZyJdW0lEc1tpXV1bIngtY2hhbm5lbElEIl0pIDsgYnJlYWs7DQogICAgfQ0KICAgIHBvc09ialtwb3NdID0gaXRlbTsNCiAgfQ0KICBwb3NGbG9hdCA9IGdldE9iaktleXMocG9zT2JqKQ0KICBmdW5jdGlvbiBzb3J0RmxvYXQoYSxiKSB7IHJldHVybiBhIC0gYjsgfQ0KICBwb3NGbG9hdC5zb3J0KHNvcnRGbG9hdCkNCg0KICAvL2NvbnNvbGUubG9nKHBvc0Zsb2F0KTsNCg0KICAvLyAtLS0NCg0KICBpZiAoSURzLmxlbmd0aCA+IDIwMCkgew0KICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKXsgDQogICAgICBzaG93TG9hZGluZ1NjcmVlbih0cnVlKTsNCiAgICB9LCAxKTsNCg0KICB9DQoNCg0KICAvLyB0YWJsZSBmb3IgaW50IGNoYW5uZWwgSUQncw0KICBmb3IgKHZhciBpID0gMDsgaSA8IHBvc0Zsb2F0Lmxlbmd0aDsgaSsrKSB7DQoNCiAgICB2YXIgdGFibGUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiaWRfbWFwcGluZyIpOw0KICAgIHZhciBpdGVtICA9IHBvc09ialtwb3NGbG9hdFtpXV07DQogICAgLy92YXIgaXRlbSAgPSB4RVBHWyJlcGdNYXBwaW5nIl1bSURzW2ldXTsNCiAgICAvL2NvbnNvbGUubG9nKGl0ZW0pOw0KICAgIHZhciBuZXdUUiA9IG5ldyBPYmplY3QoKTsNCiAgICBuZXdUUlsiX2VsZW1lbnQiXSAgICAgICA9ICJUUiI7DQogICAgbmV3VFJbImNsYXNzIl0gICAgICAgICAgPSAiIjsNCiAgICBuZXdUUlsiaWQiXSAgICAgICAgICAgICA9IGl0ZW1bIngtZXBnIl07DQogICAgbmV3VFJbIm9uY29udGV4dG1lbnUiXSAgPSAnamF2YXNjcmlwdDogc3dpdGNoQ2hhbm5lbFN0YXR1cygiJyArIGl0ZW1bIngtZXBnIl0gKyAnIik7IHJldHVybiBmYWxzZTsnOw0KICAgIHRhYmxlLmFwcGVuZENoaWxkKGNyZWF0ZUVsZW1lbnQobmV3VFIpKTsNCg0KICAgIHZhciB0ciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJpZF9tYXBwaW5nIikubGFzdENoaWxkOw0KICAgIA0KICAgIC8vIENyZWF0ZSBidWxrIFREDQogICAgdmFyIG5ld1REID0gbmV3IE9iamVjdCgpOw0KICAgIG5ld1REWyJfZWxlbWVudCJdICAgPSAiSU5QVVQiOw0KICAgIG5ld1REWyJ0eXBlIl0gICAgICAgPSAiY2hlY2tib3giOw0KICAgIG5ld1REWyJjbGFzcyJdICAgICAgPSAiYnVsayBoaWRlQnVsayI7DQogICAgbmV3VERbIm9ubW91c2VvdXQiXSA9ICJqYXZhc2NyaXB0OiB0aGlzLmJsdXIoKSINCiAgICANCiAgICBjcmVhdGVOZXdURChuZXdURCwgdHIpOw0KICAgIA0KDQogICAgLy8gQ3JlYXRlIElEIFREDQogICAgdmFyIG5ld1REID0gbmV3IE9iamVjdCgpOw0KICAgIG5ld1REWyJfZWxlbWVudCJdID0gIklOUFVUIjsNCiAgICBuZXdURFsidHlwZSJdICAgICA9ICJ0ZXh0Ig0KICAgIG5ld1REWyJjbGFzcyJdICAgID0gInc0MHB4IjsNCiAgICBuZXdURFsidmFsdWUiXSAgICA9IGl0ZW1bIngtY2hhbm5lbElEIl07DQogICAgbmV3VERbIm9uZm9jdXNvdXQiXSA9ICJqYXZhc2NyaXB0OiBhcnJhbmdlVGFibGUodGhpcyk7Ig0KICAgIGNyZWF0ZU5ld1REKG5ld1RELCB0cik7DQoNCiAgICAvLyBDcmVhdGUgSU1HIFREDQogICAgdmFyIG5ld1REID0gbmV3IE9iamVjdCgpOw0KICAgIG5ld1REWyJfZWxlbWVudCJdID0gIklNRyI7DQogICAgbmV3VERbIm9uY2xpY2siXSAgPSAnamF2YXNjcmlwdDogbWFwcGluZ0RldGFpbCgiJyArIGl0ZW1bIngtZXBnIl0gKyAnIik7JzsNCiAgICBpZiAoaXRlbVsidHZnLWxvZ28iXSAhPSB1bmRlZmluZWQpIHsNCiAgICAgIG5ld1REWyJzcmMiXSAgICAgID0gaXRlbVsidHZnLWxvZ28iXTsNCiAgICB9IGVsc2Ugew0KICAgICAgaXRlbVsidHZnLWxvZ28iXSA9ICIiOw0KICAgICAgbmV3VERbInNyYyJdID0gIiI7DQogICAgfQ0KICAgIGNyZWF0ZU5ld1REKG5ld1RELCB0cik7DQogICAgdHIubGFzdENoaWxkLnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBtYXBwaW5nRGV0YWlsKCInICsgaXRlbVsieC1lcGciXSArICciKTsnKQ0KDQogICAgLy8gQ3JlYXRlIFAgVEQgKGNoYW5uZWwgbmFtZSkNCiAgICB2YXIgbmV3VEQgPSBuZXcgT2JqZWN0KCk7DQogICAgbmV3VERbIl9lbGVtZW50Il0gPSAiUCI7DQogICAgbmV3VERbIl90ZXh0Il0gICAgPSBpdGVtWyJ4LW5hbWUiXTsNCiAgICBuZXdURFsiY2xhc3MiXSAgICAgPSBpdGVtWyJ4LWNhdGVnb3J5Il07DQoNCiAgICBjcmVhdGVOZXdURChuZXdURCwgdHIpOw0KICAgIHRyLmxhc3RDaGlsZC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogbWFwcGluZ0RldGFpbCgiJyArIGl0ZW1bIngtZXBnIl0gKyAnIik7JykNCiAgICB0ci5sYXN0Q2hpbGQubGFzdENoaWxkLnN0eWxlLnBhZGRpbmcgPSAiNXB4IDEwcHgiOw0KDQogICAgLy8gQ3JlYXRlIFAgVEQgKFBsYXlsaXN0IE5hbWUpDQogICAgdmFyIG5ld1REID0gbmV3IE9iamVjdCgpOw0KICAgIG5ld1REWyJfZWxlbWVudCJdID0gIlAiOw0KICAgIG5ld1REWyJfdGV4dCJdICAgID0gaXRlbVsiX2ZpbGUubTN1Lm5hbWUiXTsNCiAgICBuZXdURFsiY2xhc3MiXSAgICAgPSBpdGVtWyJ0YWJsZUVsbGlwc2lzIl07DQogICAgDQogICAgY3JlYXRlTmV3VEQobmV3VEQsIHRyKTsNCiAgICB0ci5sYXN0Q2hpbGQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IG1hcHBpbmdEZXRhaWwoIicgKyBpdGVtWyJ4LWVwZyJdICsgJyIpOycpDQogICAgDQogICAgLy8gQ3JlYXRlIFAgVEQgKEdyb3VwIFRpdGxlKQ0KICAgIHZhciBuZXdURCA9IG5ldyBPYmplY3QoKTsNCiAgICBuZXdURFsiX2VsZW1lbnQiXSA9ICJQIjsNCiAgICBuZXdURFsiX3RleHQiXSAgICA9IGl0ZW1bIngtZ3JvdXAtdGl0bGUiXTsNCiAgICBuZXdURFsiY2xhc3MiXSAgICAgPSBpdGVtWyJ0YWJsZUVsbGlwc2lzIl07DQogICAgDQogICAgY3JlYXRlTmV3VEQobmV3VEQsIHRyKTsNCiAgICB0ci5sYXN0Q2hpbGQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IG1hcHBpbmdEZXRhaWwoIicgKyBpdGVtWyJ4LWVwZyJdICsgJyIpOycpDQoNCiAgICANCiAgICAvLyBDcmVhdGUgUCBURCAoWE1MVFYgZmlsZSkNCiAgICB2YXIgbmV3VEQgPSBuZXcgT2JqZWN0KCk7DQogICAgbmV3VERbIl9lbGVtZW50Il0gICAgICAgPSAiUCI7DQogICAgbmV3VERbImNsYXNzIl0gICAgPSAidGFibGVFbGxpcHNpcyI7DQogICAgbmV3VERbIl90ZXh0Il0gPSAiLSINCg0KICAgIGlmIChhbGxYbWx0dkZpbGVzLmluZGV4T2YoaXRlbVsieC14bWx0di1maWxlIl0pICE9IC0xKSB7DQogICAgICB2YXIgeFhtbHR2RmlsZSA9IGl0ZW1bIngteG1sdHYtZmlsZSJdOw0KICAgICAgc3dpdGNoKHhYbWx0dkZpbGUpIHsNCiAgICAgICAgY2FzZSAiLSI6ICAgICAgICAgICBuZXdURFsiX3RleHQiXSAgPSB4WG1sdHZGaWxlOyBicmVhazsNCiAgICAgICAgY2FzZSAieFRlVmUgRHVtbXkiOiBuZXdURFsiX3RleHQiXSAgPSB4WG1sdHZGaWxlOyBicmVhazsNCiAgICAgICAgZGVmYXVsdDogICAgICAgICAgICBuZXdURFsiX3RleHQiXSAgPSBnZXRWYWx1ZUZyb21Qcm92aWRlckZpbGUoeFhtbHR2RmlsZSwgInhtbHR2IiwgIm5hbWUiKTsgYnJlYWs7DQogICAgICAgIA0KICAgICAgfQ0KICAgICAgLy9jb25zb2xlLmxvZyhuZXdURCk7DQoNCiAgICAgIC8vbmV3VERbIl90ZXh0Il0gICAgPSBpdGVtWyJ4LXhtbHR2LWZpbGUiXTsNCiAgICB9IGVsc2Ugew0KICAgICAgLy9uZXdURFsiX3RleHQiXSA9ICItIg0KICAgIH0NCiAgICBjcmVhdGVOZXdURChuZXdURCwgdHIpOw0KICAgIHRyLmxhc3RDaGlsZC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogbWFwcGluZ0RldGFpbCgiJyArIGl0ZW1bIngtZXBnIl0gKyAnIik7JykNCg0KICAgIC8vIENyZWF0ciBQIFREIChYTUxUViBjaGFubmVsIElEKQ0KICAgIG5ld1REWyJfZWxlbWVudCJdID0gIlAiOw0KICAgIG5ld1REWyJjbGFzcyJdICAgID0gInRhYmxlRWxsaXBzaXMiOw0KDQogICAgaWYgKGl0ZW1bIngtbWFwcGluZyJdICE9IHVuZGVmaW5lZCkgew0KICAgICAgbmV3VERbIl90ZXh0Il0gICAgPSBpdGVtWyJ4LW1hcHBpbmciXTsNCiAgICB9DQogICAgDQogICAgY3JlYXRlTmV3VEQobmV3VEQsIHRyKTsNCiAgICB0ci5sYXN0Q2hpbGQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IG1hcHBpbmdEZXRhaWwoIicgKyBpdGVtWyJ4LWVwZyJdICsgJyIpOycpDQoNCg0KICAgIHZhciB4WG1sdHZGaWxlICA9IGl0ZW1bIngteG1sdHYtZmlsZSJdOw0KICAgIHZhciB4TWFwcGluZyAgICA9IGl0ZW1bIngtbWFwcGluZyJdOw0KICAgIHZhciB0dmdJRCAgICAgICA9IGl0ZW1bInR2Zy1pZCJdOw0KICAgIA0KICAgIC8vY29uc29sZS5sb2coaXRlbVsieC1lcGciXSk7DQogICAgLy9jb25zb2xlLmxvZyhpdGVtKTsNCg0KICAgIGlmIChpdGVtWyJ4LWFjdGl2ZSJdID09IHRydWUpIHsNCiAgICAgIHRyLmNsYXNzTmFtZSA9ICJhY3RpdmVFUEciOw0KICAgIH0gZWxzZSB7DQogICAgICB0ci5jbGFzc05hbWUgPSAibm90QWN0aXZlRVBHIjsNCiAgICB9DQogICAgDQogIH0NCg0KICBzb3J0VGFibGUoMSk7DQoNCiAgc2V0VGltZW91dChmdW5jdGlvbigpeyANCiAgICBzaG93TG9hZGluZ1NjcmVlbihmYWxzZSk7DQogIH0sIDUpOw0KfQ0KDQpmdW5jdGlvbiBzZWFyY2hJbk1hcHBpbmcoZWxtKSB7DQoNCiAgdmFyIHNlYXJjaCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzZWFyY2hNYXBwaW5nIikudmFsdWU7DQogIHZhciB2YWx1ZXMgPSBnZXRPYmpLZXlzKHNlYXJjaE9iaikNCiAgDQogIGZvciAodmFyIGkgPSB2YWx1ZXMubGVuZ3RoIC0gMTsgaSA+PSAwOyBpLS0pIHsNCiAgICB2YXIgaWQgPSBzZWFyY2hPYmpbdmFsdWVzW2ldXTsNCiAgICB2YXIgYm9vbCA9IHZhbHVlc1tpXS50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKHNlYXJjaC50b0xvd2VyQ2FzZSgpKTsNCiAgICBzd2l0Y2goYm9vbCkgew0KICAgICAgY2FzZSB0cnVlOiAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpLnN0eWxlLmRpc3BsYXkgPSAiIjsgYnJlYWs7DQogICAgICBjYXNlIGZhbHNlOiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkuc3R5bGUuZGlzcGxheSA9ICJub25lIjsgYnJlYWs7DQogICAgfQ0KICB9DQoNCn0NCg0KZnVuY3Rpb24gbWFwcGluZ0RldGFpbCh4ZXBnKSB7DQogIA0KICBidWxrSURzICAgPSBuZXcgQXJyYXkoKTsNCiAgdmFyIGFjdGl2ZUVsZW1lbnQgPSBkb2N1bWVudC5hY3RpdmVFbGVtZW50Ow0KICAvLyBJZiBpbnB1dCBpZCwgcmV0dXJuDQogIGlmIChhY3RpdmVFbGVtZW50LnRhZ05hbWUgPT0gIklOUFVUIikgew0KICAgIHJldHVybg0KICB9DQoNCiAgaWYgKGJ1bGsgPT0gdHJ1ZSkgew0KICAgIHZhciBlbG0gPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCJidWxrIik7DQogICAgZm9yICh2YXIgaSA9IDE7IGkgPCBlbG0ubGVuZ3RoOyBpKyspIHsNCiAgICAgIGlmIChlbG1baV0uY2hlY2tlZCA9PSB0cnVlKSB7DQogICAgICAgIHZhciBpZCA9IGVsbVtpXS5wYXJlbnRFbGVtZW50LnBhcmVudEVsZW1lbnQuaWQ7DQogICAgICAgIGJ1bGtJRHMucHVzaChpZCkNCiAgICAgIH0NCiAgICAgIA0KICAgIH0NCg0KICAgIGlmIChidWxrSURzLmxlbmd0aCA9PSAwKSB7DQogICAgICBzaG93RWxlbWVudCgncG9wdXAnLCBmYWxzZSkNCiAgICAgIGFsZXJ0KCJObyBjaGFubmVscyBzZWxlY3RlZCBmb3IgZWRpdGluZyIpDQogICAgICByZXR1cm4NCiAgICB9DQoNCiAgICB4ZXBnID0gYnVsa0lEc1swXQ0KICB9DQoNCg0KICBjcmVhdGVTZWFyY2hPYmooKTsNCiAgDQogIHNob3dQb3BVcEVsZW1lbnQoJ21hcHBpbmctZGV0YWlsJyk7DQoNCiAgdmFyIHRoaXNDaGFubmVsID0geEVQR1siZXBnTWFwcGluZyJdW3hlcGddOw0KICAvL2NvbnNvbGUubG9nKHRoaXNDaGFubmVsKTsNCiAgdmFyIHhYbWx0dkZpbGUgID0gdGhpc0NoYW5uZWxbIngteG1sdHYtZmlsZSJdOw0KICB2YXIgeE1hcHBpbmcgICAgPSB0aGlzQ2hhbm5lbFsieC1tYXBwaW5nIl07DQogIHZhciB4Q2F0ZWdvcnkgICA9IHRoaXNDaGFubmVsWyJ4LWNhdGVnb3J5Il07DQoNCiAgaWYgKHhYbWx0dkZpbGUgPT0gdW5kZWZpbmVkKSB7DQogICAgdGhpc0NoYW5uZWxbIngteG1sdHYtZmlsZSJdID0gIi0iOw0KICAgIHhYbWx0dkZpbGUgPSAiLSI7DQogIH0NCg0KICBpZiAoeE1hcHBpbmcgPT0gdW5kZWZpbmVkKSB7DQogICAgdGhpc0NoYW5uZWxbIngtbWFwcGluZyJdID0gIi0iOw0KICAgIHhNYXBwaW5nID0gIi0iOw0KICB9DQoNCiAgLyoNCiAgY29uc29sZS5sb2coIklEOiIsIHhlcGcpOw0KICBjb25zb2xlLmxvZygiWE1MVFYgRmlsZToiLCB4WG1sdHZGaWxlKTsNCiAgY29uc29sZS5sb2coIk1hcHBpbmc6IiwgeE1hcHBpbmcpOw0KICAqLw0KDQogIHZhciBrZXlzID0gZ2V0T2JqS2V5cyh0aGlzQ2hhbm5lbCk7DQogIGZvciAodmFyIGkgPSAwOyBpIDwga2V5cy5sZW5ndGg7IGkrKykgew0KICAgIGlmKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGtleXNbaV0pKXsNCiAgICAgIHZhciB0ZCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGtleXNbaV0pDQogICAgfSBlbHNlIHsNCiAgICAgIHZhciB0ZCA9IHVuZGVmaW5lZDsNCiAgICB9DQogICAgDQogICAgdmFyIG5ld0l0ZW0gPSBuZXcgT2JqZWN0KCk7DQogICAgdmFyIHZhbHVlcywgdGV4dCA9IG5ldyBBcnJheSgpOw0KICAgIHN3aXRjaChrZXlzW2ldKSB7DQogICAgICBjYXNlICJ4LXhtbHR2LWZpbGUiOiANCiAgICAgICAgdmFyIGZpbGVJRHMgPSBnZXRPYmpLZXlzKHhFUEdbInhtbHR2TWFwIl0pOw0KICAgICAgICB2YXIgdmFsdWUgPSBuZXcgQXJyYXkoIi0iKTsNCiAgICAgICAgdmFyIHRleHQgID0gbmV3IEFycmF5KCItIik7DQoNCiAgICAgICAgZm9yICh2YXIgaiA9IGZpbGVJRHMubGVuZ3RoIC0gMTsgaiA+PSAwOyBqLS0pIHsNCiAgICAgICAgICBpZiAoZmlsZUlEc1tqXSAhPSAieFRlVmUgRHVtbXkiKSB7DQogICAgICAgICAgICB2YWx1ZS5wdXNoKGdldFZhbHVlRnJvbVByb3ZpZGVyRmlsZShmaWxlSURzW2pdLCAieG1sdHYiLCAiZmlsZS54dGV2ZSIpKQ0KICAgICAgICAgICAgdGV4dC5wdXNoKGdldFZhbHVlRnJvbVByb3ZpZGVyRmlsZShmaWxlSURzW2pdLCAieG1sdHYiLCAibmFtZSIpKQ0KICAgICAgICAgIH0gZWxzZSB7DQogICAgICAgICAgICB2YWx1ZS5wdXNoKGZpbGVJRHNbal0pDQogICAgICAgICAgICB0ZXh0LnB1c2goZmlsZUlEc1tqXSkNCiAgICAgICAgICB9DQogICAgICAgICAgDQogICAgICAgIH0NCiAgICAgICAgDQogICAgICAgIG5ld0l0ZW1bIl9lbGVtZW50Il0gICAgICAgPSAiU0VMRUNUIjsNCiAgICAgICAgbmV3SXRlbVsiX29wdGlvblZhbHVlcyJdICA9IHZhbHVlOw0KICAgICAgICBuZXdJdGVtWyJfb3B0aW9uVGV4dCJdICAgID0gdGV4dA0KICAgICAgICBuZXdJdGVtWyJ2YWx1ZSJdICAgICAgICAgID0geFhtbHR2RmlsZTsNCiAgICAgICAgbmV3SXRlbVsib25jaGFuZ2UiXSAgICAgICA9ICdqYXZhc2NyaXB0OiBjaGFuZ2VYbWx0dkZpbGUoIicgKyB4ZXBnICsgJyIsdGhpcyk7JzsNCg0KICAgICAgICBicmVhazsNCg0KICAgICAgY2FzZSAieC1tYXBwaW5nIjogDQoNCiAgICAgICAgdmFyIHZhbHVlcyA9IGdldE9iaktleXMoeEVQR1sieG1sdHZNYXAiXVt4WG1sdHZGaWxlXSk7DQoNCiAgICAgICAgZm9yICh2YXIgaiA9IDA7IGogPCB2YWx1ZXMubGVuZ3RoOyBqKyspIHsNCiAgICAgICAgICANCiAgICAgICAgICBpZiAoeEVQR1sieG1sdHZNYXAiXVt4WG1sdHZGaWxlXVt2YWx1ZXNbal1dLmhhc093blByb3BlcnR5KCdkaXNwbGF5LW5hbWUnKSA9PSB0cnVlKSB7DQogICAgICAgICAgICB2YXIgZGlzcGxheU5hbWUgPSB4RVBHWyJ4bWx0dk1hcCJdW3hYbWx0dkZpbGVdW3ZhbHVlc1tqXV1bImRpc3BsYXktbmFtZSJdOw0KICAgICAgICAgIH0gZWxzZSB7DQogICAgICAgICAgICB2YXIgZGlzcGxheU5hbWUgPSAiLSINCiAgICAgICAgICB9DQogICAgICAgICAgDQogICAgICAgICAgLy90ZXh0W2pdID0gdmFsdWVzW2pdICsgIiAoIiArIGRpc3BsYXlOYW1lICsgIikiOw0KICAgICAgICAgIHRleHRbal0gPSBkaXNwbGF5TmFtZSArICIgKCIgKyB2YWx1ZXNbal0gICsgIikiOw0KICAgICAgICB9DQoNCiAgICAgICAgdGV4dC51bnNoaWZ0KCItIik7DQogICAgICAgIHZhbHVlcy51bnNoaWZ0KCItIik7DQogICAgICAgIG5ld0l0ZW1bIl9lbGVtZW50Il0gICAgICAgPSAiU0VMRUNUIjsNCiAgICAgICAgbmV3SXRlbVsiX29wdGlvblZhbHVlcyJdICA9IHZhbHVlczsNCiAgICAgICAgbmV3SXRlbVsiX29wdGlvblRleHQiXSAgICA9IHRleHQNCiAgICAgICAgbmV3SXRlbVsidmFsdWUiXSAgICAgICAgICA9IHhNYXBwaW5nOw0KICAgICAgICBuZXdJdGVtWyJvbmNoYW5nZSJdICAgICAgID0gJ2phdmFzY3JpcHQ6IG1hcHBpbmdDaGFubmVsKCInICsgeGVwZyArICciLHRoaXMpOyc7DQogICAgICAgIGJyZWFrOw0KDQogICAgICBjYXNlICJ4LWNhdGVnb3J5IjoNCiAgICAgICAgLy92YXIgdmFsdWVzID0gcGxleENhdGVnb3JpZXNWYWx1ZXMNCiAgICAgICAgbmV3SXRlbVsiX2VsZW1lbnQiXSAgICAgICA9ICJTRUxFQ1QiOw0KICAgICAgICBuZXdJdGVtWyJfb3B0aW9uVmFsdWVzIl0gID0gcGxleENhdGVnb3JpZXNWYWx1ZXM7DQogICAgICAgIG5ld0l0ZW1bIl9vcHRpb25UZXh0Il0gICAgPSBwbGV4Q2F0ZWdvcmllc09wdGlvbjsNCiAgICAgICAgbmV3SXRlbVsidmFsdWUiXSAgICAgICAgICA9IHhDYXRlZ29yeTsNCiAgICAgICAgbmV3SXRlbVsib25jaGFuZ2UiXSAgICAgICA9ICdzYXZlQ2F0ZWdvcnkoIicgKyB4ZXBnICsgJyIpJzsNCiAgICAgICAgYnJlYWs7DQoNCiAgICAgIGNhc2UgInR2Zy1sb2dvIjoNCiAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNoYW5uZWwtbG9nbyIpLnNldEF0dHJpYnV0ZSgic3JjIiwgdGhpc0NoYW5uZWxbInR2Zy1sb2dvIl0pOw0KICAgICAgICBuZXdJdGVtWyJfZWxlbWVudCJdICAgICAgID0gIklOUFVUIjsNCiAgICAgICAgbmV3SXRlbVsidHlwZSJdICAgICAgICAgICA9ICJ0ZXh0IjsNCiAgICAgICAgbmV3SXRlbVsidmFsdWUiXSAgICAgICAgICA9IHRoaXNDaGFubmVsWyJ0dmctbG9nbyJdOw0KICAgICAgICBuZXdJdGVtWyJvbmZvY3Vzb3V0Il0gICAgID0gJ3NhdmVDaGFubmVsTG9nbygiJyArIHhlcGcgKyAnIiknOw0KICAgICAgICBuZXdJdGVtWyJwbGFjZWhvbGRlciJdICAgID0gJ0ltYWdlIFVSTCc7DQogICAgICAgIGJyZWFrOw0KDQogICAgICBjYXNlICJ4LXVwZGF0ZS1jaGFubmVsLWljb24iOg0KICAgICAgICBuZXdJdGVtWyJfZWxlbWVudCJdICAgICAgID0gIklOUFVUIjsNCiAgICAgICAgbmV3SXRlbVsidHlwZSJdICAgICAgICAgICA9ICJjaGVja2JveCI7DQogICAgICAgIHN3aXRjaChKU09OLnBhcnNlKHRoaXNDaGFubmVsWyJ4LXVwZGF0ZS1jaGFubmVsLWljb24iXSkpIHsNCiAgICAgICAgICBjYXNlIHRydWU6IG5ld0l0ZW1bImNoZWNrZWQiXSAgICAgICAgPSB0aGlzQ2hhbm5lbFsieC11cGRhdGUtY2hhbm5lbC1pY29uIl07DQogICAgICAgICAgICBicmVhaw0KICAgICAgICB9DQogICAgICAgIG5ld0l0ZW1bIm9uY2hhbmdlIl0gICAgID0gJ3NhdmVDaGFubmVsSWNvblVwZGF0ZSgiJyArIHhlcGcgKyAnIiknOw0KICAgICAgICBicmVhazsNCg0KICAgICAgY2FzZSAieC1uYW1lIjoNCiAgICAgICAgbmV3SXRlbVsiX2VsZW1lbnQiXSAgICAgICA9ICJJTlBVVCI7DQogICAgICAgIG5ld0l0ZW1bInR5cGUiXSAgICAgICAgICAgPSAidGV4dCI7DQogICAgICAgIG5ld0l0ZW1bInZhbHVlIl0gICAgICAgICAgPSB0aGlzQ2hhbm5lbFsieC1uYW1lIl07DQogICAgICAgIG5ld0l0ZW1bIm9uZm9jdXNvdXQiXSAgICAgPSAnc2F2ZUNoYW5uZWxOYW1lKCInICsgeGVwZyArICciKSc7DQogICAgICAgIG5ld0l0ZW1bInBsYWNlaG9sZGVyIl0gICAgPSAnQ2hhbm5lbCBOYW1lJzsNCiAgICAgICAgYnJlYWs7DQoNCiAgICAgIGNhc2UgIngtdXBkYXRlLWNoYW5uZWwtbmFtZSI6DQogICAgICAgIGlmICh0aGlzQ2hhbm5lbC5oYXNPd25Qcm9wZXJ0eSgiX3V1aWQua2V5IikgPT0gdHJ1ZSkgew0KICAgICAgICAgIG5ld0l0ZW1bIl9lbGVtZW50Il0gICAgICAgPSAiSU5QVVQiOw0KICAgICAgICAgIG5ld0l0ZW1bInR5cGUiXSAgICAgICAgICAgPSAiY2hlY2tib3giOw0KICAgICAgICAgIHN3aXRjaChKU09OLnBhcnNlKHRoaXNDaGFubmVsWyJ4LXVwZGF0ZS1jaGFubmVsLW5hbWUiXSkpIHsNCiAgICAgICAgICAgIGNhc2UgdHJ1ZTogbmV3SXRlbVsiY2hlY2tlZCJdICAgICAgICA9IHRoaXNDaGFubmVsWyJ4LXVwZGF0ZS1jaGFubmVsLW5hbWUiXTsNCiAgICAgICAgICAgICAgYnJlYWsNCiAgICAgICAgICB9DQogICAgICAgICAgbmV3SXRlbVsib25jaGFuZ2UiXSAgICAgPSAnc2F2ZUNoYW5uZWxOYW1lVXBkYXRlKCInICsgeGVwZyArICciKSc7DQogICAgICAgICAgc2hvd0VsZW1lbnQoInN0cmVhbUhhc0NVSUQiLCB0cnVlKQ0KDQogICAgICAgICAgYnJlYWs7DQogICAgICAgIH0gZWxzZSB7DQogICAgICAgICAgLy9zdHJlYW1IYXNDVUlEDQogICAgICAgICAgc2hvd0VsZW1lbnQoInN0cmVhbUhhc0NVSUQiLCBmYWxzZSkNCiAgICAgICAgICBicmVhazsNCiAgICAgICAgfQ0KICAgICAgICANCiAgICAgIGNhc2UgIngtYWN0aXZlIjoNCiAgICAgICAgbmV3SXRlbVsiX2VsZW1lbnQiXSAgICAgICA9ICJJTlBVVCI7DQogICAgICAgIG5ld0l0ZW1bInR5cGUiXSAgICAgICAgICAgPSAiY2hlY2tib3giOw0KICAgICAgICBzd2l0Y2goSlNPTi5wYXJzZSh0aGlzQ2hhbm5lbFsieC1hY3RpdmUiXSkpIHsNCiAgICAgICAgICBjYXNlIHRydWU6IG5ld0l0ZW1bImNoZWNrZWQiXSAgICAgICAgPSB0aGlzQ2hhbm5lbFsieC1hY3RpdmUiXTsNCiAgICAgICAgICAgIGJyZWFrDQogICAgICAgIH0NCiAgICAgICAgbmV3SXRlbVsib25jaGFuZ2UiXSAgICAgPSAnc2F2ZUNoYW5uZWxTdGF0dXMoIicgKyB4ZXBnICsgJyIpJzsNCiAgICAgICAgYnJlYWs7DQoNCiAgICAgIGNhc2UgIngtZ3JvdXAtdGl0bGUiOg0KICAgICAgICBuZXdJdGVtWyJfZWxlbWVudCJdICAgICAgID0gIklOUFVUIjsNCiAgICAgICAgbmV3SXRlbVsidHlwZSJdICAgICAgICAgICA9ICJ0ZXh0IjsNCiAgICAgICAgbmV3SXRlbVsidmFsdWUiXSAgICAgICAgICA9IHRoaXNDaGFubmVsWyJ4LWdyb3VwLXRpdGxlIl07DQogICAgICAgIG5ld0l0ZW1bIm9uZm9jdXNvdXQiXSAgICAgPSAnc2F2ZUdyb3VwVGl0bGUoIicgKyB4ZXBnICsgJyIpJzsNCiAgICAgICAgbmV3SXRlbVsicGxhY2Vob2xkZXIiXSAgICA9ICdHcm91cCBUaXRsZSc7DQogICAgICAgIGJyZWFrOw0KDQogICAgICBkZWZhdWx0Og0KICAgICAgICBuZXdJdGVtWyJfZWxlbWVudCJdICAgICAgID0gIlAiOw0KICAgICAgICBuZXdJdGVtWyJfdGV4dCJdICAgICAgICAgID0gdGhpc0NoYW5uZWxba2V5c1tpXV07DQogICAgICAgIGJyZWFrOw0KICAgICAgDQogICAgfQ0KICAgIA0KICAgIGlmICh0ZCAhPSB1bmRlZmluZWQpIHsNCiAgICAgIHRkLmlubmVySFRNTCA9ICIiOw0KICAgICAgdmFyIGVsZW1lbnQgPSBjcmVhdGVOZXdFbGVtZW50KG5ld0l0ZW0pDQogICAgICAvL2NvbnNvbGUubG9nKGVsZW1lbnQpOw0KICAgICAgdGQuYXBwZW5kQ2hpbGQoZWxlbWVudCk7DQogICAgfQ0KDQogIH0NCg0KICBpZiAoYnVsayA9PSB0cnVlKSB7DQoNCiAgICB2YXIgZWxtID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSgibm9CdWxrIik7DQogICAgZm9yICh2YXIgaSA9IDA7IGkgPCBlbG0ubGVuZ3RoOyBpKyspIHsNCiAgICAgIGVsbVtpXS5sYXN0Q2hpbGQuc2V0QXR0cmlidXRlKCJyZWFkb25seSIsIHRydWUpDQogICAgICBlbG1baV0ubGFzdENoaWxkLnN0eWxlLmJvcmRlckNvbG9yID0gInJlZCI7DQogICAgfQ0KDQogICAgeGVwZyA9IGJ1bGtJRHNbMF0NCiAgfQ0KDQogIHNvcnRTZWxlY3QoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIngteG1sdHYtZmlsZSIpLmxhc3RDaGlsZCk7DQogIHNvcnRTZWxlY3QoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIngtbWFwcGluZyIpLmxhc3RDaGlsZCk7DQogIA0KfQ0KDQpmdW5jdGlvbiBzb3J0U2VsZWN0KGVsZW0pIHsNCg0KICB2YXIgdG1wQXJ5ID0gW107DQogIC8vIFJldGFpbiBzZWxlY3RlZCB2YWx1ZSBiZWZvcmUgc29ydGluZw0KICB2YXIgc2VsZWN0ZWRWYWx1ZSA9IGVsZW1bZWxlbS5zZWxlY3RlZEluZGV4XS52YWx1ZTsNCiAgLy8gR3JhYiBhbGwgZXhpc3RpbmcgZW50cmllcw0KICBmb3IgKHZhciBpPTA7aTxlbGVtLm9wdGlvbnMubGVuZ3RoO2krKykgdG1wQXJ5LnB1c2goZWxlbS5vcHRpb25zW2ldKTsNCiAgLy8gU29ydCBhcnJheSBieSB0ZXh0IGF0dHJpYnV0ZQ0KICB0bXBBcnkuc29ydChmdW5jdGlvbihhLGIpeyByZXR1cm4gKGEudGV4dCA8IGIudGV4dCk/LTE6MTsgfSk7DQogIC8vIFdpcGUgb3V0IGV4aXN0aW5nIGVsZW1lbnRzDQogIHdoaWxlIChlbGVtLm9wdGlvbnMubGVuZ3RoID4gMCkgZWxlbS5vcHRpb25zWzBdID0gbnVsbDsNCiAgLy8gUmVzdG9yZSBzb3J0ZWQgZWxlbWVudHMNCiAgdmFyIG5ld1NlbGVjdGVkSW5kZXggPSAwOw0KICBmb3IgKHZhciBpPTA7aTx0bXBBcnkubGVuZ3RoO2krKykgew0KICAgICAgZWxlbS5vcHRpb25zW2ldID0gdG1wQXJ5W2ldOw0KICAgICAgaWYoZWxlbS5vcHRpb25zW2ldLnZhbHVlID09IHNlbGVjdGVkVmFsdWUpIG5ld1NlbGVjdGVkSW5kZXggPSBpOw0KICB9DQogIGVsZW0uc2VsZWN0ZWRJbmRleCA9IG5ld1NlbGVjdGVkSW5kZXg7IC8vIFNldCBuZXcgc2VsZWN0ZWQgaW5kZXggYWZ0ZXIgc29ydGluZw0KICByZXR1cm47DQp9DQoNCg0KZnVuY3Rpb24gc3dpdGNoQ2hhbm5lbFN0YXR1cyh4ZXBnKSB7DQogIHZhciB0aGlzQ2hhbm5lbCA9IHhFUEdbImVwZ01hcHBpbmciXVt4ZXBnXTsNCiAgdmFyIHhYbWx0dkZpbGUgPSB0aGlzQ2hhbm5lbFsieC14bWx0di1maWxlIl07DQoNCiAgaWYgKHhFUEdbInhtbHR2TWFwIl0uaGFzT3duUHJvcGVydHkoeFhtbHR2RmlsZSkgPT0gdHJ1ZSkgew0KICAgIGlmICh0aGlzQ2hhbm5lbFsieC1tYXBwaW5nIl0gIT0gIi0iICYmIHRoaXNDaGFubmVsWyJ4LW1hcHBpbmciXSAhPSB1bmRlZmluZWQpIHsNCiAgICAgIHRoaXNDaGFubmVsWyJ4LWFjdGl2ZSJdID0gIXRoaXNDaGFubmVsWyJ4LWFjdGl2ZSJdOw0KICAgICAgdmFyIHRyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoeGVwZyk7DQogICAgICBzd2l0Y2godGhpc0NoYW5uZWxbIngtYWN0aXZlIl0pIHsNCiAgICAgICAgY2FzZSB0cnVlOiB0ci5jbGFzc05hbWUgPSAiYWN0aXZlRVBHIjsgYnJlYWs7DQogICAgICAgIGNhc2UgZmFsc2U6IHRyLmNsYXNzTmFtZSA9ICJub3RBY3RpdmVFUEciOyBicmVhazsNCiAgICAgIH0NCiAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJsb2dJbmZvIikuY2xhc3NOYW1lID0gIm5vdFZpc2libGUiOw0KDQogICAgfSBlbHNlIHsNCiAgICAgIHZhciBlcnIgPSAiWE1MVFYgQ2hhbm5lbCBpcyBub3Qgc2VsZWN0ZWQiDQogICAgICBhbGVydChlcnIpDQogICAgICAvKg0KICAgICAgdmFyIG5ld0Vycm9yID0gbmV3IE9iamVjdCgpOw0KICAgICAgbmV3RXJyb3JbImVyciJdID0gIkNoYW5uZWwgaXMgbm90IHNlbGVjdGVkIjsNCiAgICAgIGNoZWNrRXJyKG5ld0Vycm9yKTsNCiAgICAgICovDQogICAgfQ0KDQogIH0gZWxzZSB7DQogICAgdmFyIGVyciA9ICJYTUxUViBGaWxlIGlzIG5vdCBzZWxlY3RlZCINCiAgICBhbGVydChlcnIpDQogICAgLyoNCiAgICB2YXIgbmV3RXJyb3IgPSBuZXcgT2JqZWN0KCk7DQogICAgbmV3RXJyb3JbImVyciJdID0gIlhNTFRWIGZpbGUgaXMgbm90IHNlbGVjdGVkIjsNCiAgICBjaGVja0VycihuZXdFcnJvcik7DQogICAgKi8NCiAgfQ0KDQogIHNlYXJjaEluTWFwcGluZygpOw0KDQp9DQoNCmZ1bmN0aW9uIGNyZWF0ZU5ld0VsZW1lbnQobmV3SXRlbSkgew0KDQogIHZhciBlbGVtZW50ID0gY3JlYXRlRWxlbWVudChuZXdJdGVtKTsNCiAgDQogIHN3aXRjaChuZXdJdGVtWyJfZWxlbWVudCJdKSB7DQogICAgY2FzZSAiU0VMRUNUIjoNCiAgICAgIC8vZWxlbWVudFtdDQogICAgICB2YXIgdmFsdWVzICA9IG5ld0l0ZW1bIl9vcHRpb25WYWx1ZXMiXTsNCiAgICAgIHZhciB0ZXh0ICAgID0gbmV3SXRlbVsiX29wdGlvblRleHQiXTsNCg0KICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB2YWx1ZXMubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgLy9jb25zb2xlLmxvZyhpdGVtKTsNCiAgICAgICAgdmFyIG5ld0VudHJ5ID0gbmV3IE9iamVjdDsNCiAgICAgICAgbmV3RW50cnlbIl9lbGVtZW50Il0gID0gIk9QVElPTiI7DQogICAgICAgIG5ld0VudHJ5WyJfdGV4dCJdICAgICA9IHRleHRbaV07DQogICAgICAgIG5ld0VudHJ5WyJ2YWx1ZSJdICAgICA9IHZhbHVlc1tpXTsNCiAgICAgICAgZWxlbWVudC5hcHBlbmRDaGlsZChjcmVhdGVFbGVtZW50KG5ld0VudHJ5KSk7DQogICAgICB9DQogICAgICBlbGVtZW50LnZhbHVlID0gbmV3SXRlbVsidmFsdWUiXTsNCiAgICAgIGJyZWFrOw0KICAgIA0KICAgIGRlZmF1bHQ6IA0KICAgICAgDQogICAgICAvL2VsZW1lbnQuYXBwZW5kQ2hpbGQoY3JlYXRlRWxlbWVudChuZXdJdGVtKSk7DQogICAgICBicmVhazsNCiAgfQ0KICANCiAgcmV0dXJuIGVsZW1lbnQ7DQp9DQoNCmZ1bmN0aW9uIHNhdmVCdWxrKGtleSwgdmFsdWUpIHsNCiAgZm9yICh2YXIgaSA9IDA7IGkgPCBidWxrSURzLmxlbmd0aDsgaSsrKSB7DQogICAgdmFyIGlkID0gYnVsa0lEc1tpXQ0KICAgIHZhciB0aGlzQ2hhbm5lbCA9IHhFUEdbImVwZ01hcHBpbmciXVtpZF07DQogICAgdGhpc0NoYW5uZWxba2V5XSA9IHZhbHVlOw0KDQogICAgc3dpdGNoKGtleSkgew0KICAgICAgY2FzZSAidHZnLWxvZ28iOiAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5jaGlsZE5vZGVzWzJdLmxhc3RDaGlsZC5zZXRBdHRyaWJ1dGUoInNyYyIsIHZhbHVlKTsgYnJlYWs7DQogICAgICANCiAgICAgIGNhc2UgIngtY2F0ZWdvcnkiOiAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkuY2hpbGROb2Rlc1szXS5sYXN0Q2hpbGQuY2xhc3NOYW1lID0gdmFsdWU7IGJyZWFrOw0KDQogICAgICBjYXNlICJ4LXhtbHR2LWZpbGUiOg0KICAgICAgICB2YXIgZWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5jaGlsZE5vZGVzWzZdLmxhc3RDaGlsZDsNCiAgICAgICAgc3dpdGNoKHZhbHVlKSB7DQogICAgICAgICAgY2FzZSAiLSI6ICAgICAgICAgICBlbGVtZW50LmlubmVySFRNTCA9IHZhbHVlOyBicmVhazsNCiAgICAgICAgICBjYXNlICJ4VGVWZSBEdW1teSI6IGVsZW1lbnQuaW5uZXJIVE1MID0gdmFsdWU7IGJyZWFrOw0KICAgICAgICAgIGRlZmF1bHQ6ICAgICAgICAgICAgZWxlbWVudC5pbm5lckhUTUwgPSBnZXRWYWx1ZUZyb21Qcm92aWRlckZpbGUodmFsdWUsICJ4bWx0diIsICJuYW1lIik7IGJyZWFrOw0KICAgICAgICB9DQoNCg0KDQogICAgICAvL2RvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5jaGlsZE5vZGVzWzVdLmxhc3RDaGlsZC5pbm5lckhUTUwgPSB2YWx1ZS5yZXBsYWNlKC9eLipbXFxcL10vLCAnJyk7IGJyZWFrOw0KICAgICAgY2FzZSAieC1tYXBwaW5nIjogICANCiAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpLmNoaWxkTm9kZXNbN10ubGFzdENoaWxkLmlubmVySFRNTCA9IHZhbHVlOw0KICAgICAgICBpZiAodmFsdWUgPT0gIi0iKSB7DQogICAgICAgICAgdGhpc0NoYW5uZWxbIngtYWN0aXZlIl0gPSBmYWxzZTsNCiAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkuY2xhc3NOYW1lID0gIm5vdEFjdGl2ZUVQRyI7DQogICAgICAgIH0gZWxzZSB7DQogICAgICAgICAgdGhpc0NoYW5uZWxbIngtYWN0aXZlIl0gPSB0cnVlOw0KICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5jbGFzc05hbWUgPSAiYWN0aXZlRVBHIjsNCiAgICAgICAgfQ0KICAgICAgICBicmVhazsNCg0KICAgICAgY2FzZSAieC1ncm91cC10aXRsZSI6IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5jaGlsZE5vZGVzWzVdLmxhc3RDaGlsZC5pbm5lckhUTUwgPSB2YWx1ZTsgYnJlYWs7DQoNCiAgICAgIGNhc2UgIngtYWN0aXZlIjoNCiAgICAgICAgdmFyIHRyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpOw0KICAgICAgICANCiAgICAgICAgaWYgKHRoaXNDaGFubmVsLmhhc093blByb3BlcnR5KCJ4LXhtbHR2LWZpbGUiKSA9PSB0cnVlKSB7DQogICAgICAgICAgaWYgKHRoaXNDaGFubmVsWyJ4LW1hcHBpbmciXSAhPSAiLSIgJiYgdGhpc0NoYW5uZWxbIngtbWFwcGluZyJdICE9IHVuZGVmaW5lZCAmJiB0aGlzQ2hhbm5lbFsieC14bWx0di1maWxlIl0gIT0gIi0iICYmIHRoaXNDaGFubmVsWyJ4LXhtbHR2LWZpbGUiXSAhPSB1bmRlZmluZWQpIHsNCiAgICAgICAgICAgIHN3aXRjaCh0aGlzQ2hhbm5lbFsieC1hY3RpdmUiXSkgew0KICAgICAgICAgICAgICBjYXNlIHRydWU6IHRyLmNsYXNzTmFtZSA9ICJhY3RpdmVFUEciOyBicmVhazsNCiAgICAgICAgICAgICAgY2FzZSBmYWxzZTogdHIuY2xhc3NOYW1lID0gIm5vdEFjdGl2ZUVQRyI7IGJyZWFrOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgfQ0KICAgICAgICB9DQoNCiAgICB9DQoNCiAgICB1cGRhdGVDaGFubmVsTG9nbyhpZCkNCg0KICB9DQoNCn0NCg0KZnVuY3Rpb24gdXBkYXRlQ2hhbm5lbExvZ28oeGVwZykgew0KICB2YXIgdGhpc0NoYW5uZWwgPSB4RVBHWyJlcGdNYXBwaW5nIl1beGVwZ107DQogIGlmICh0aGlzQ2hhbm5lbFsieC11cGRhdGUtY2hhbm5lbC1pY29uIl0gPT0gdHJ1ZSkgew0KICAgIHZhciB4WG1sdHZGaWxlICA9IHRoaXNDaGFubmVsWyJ4LXhtbHR2LWZpbGUiXTsNCiAgICB2YXIgeE1hcHBpbmcgICAgPSB0aGlzQ2hhbm5lbFsieC1tYXBwaW5nIl07DQoNCiAgICBpZiAoeFhtbHR2RmlsZSAhPSAiLSIgJiYgeFhtbHR2RmlsZS5sZW5ndGggPiAwICYmIHhNYXBwaW5nICE9ICItIiAmJiB4TWFwcGluZy5sZW5ndGggPiAwKSB7DQogICAgICBpZiAoeEVQR1sieG1sdHZNYXAiXVt4WG1sdHZGaWxlXVt4TWFwcGluZ10uaGFzT3duUHJvcGVydHkoImljb24iKSkgew0KICAgICAgICB2YXIgbG9nb1VSTCA9IHhFUEdbInhtbHR2TWFwIl1beFhtbHR2RmlsZV1beE1hcHBpbmddWyJpY29uIl07DQogICAgICAgIHRoaXNDaGFubmVsWyJ0dmctbG9nbyJdID0gbG9nb1VSTDsNCiAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoeGVwZykuY2hpbGROb2Rlc1syXS5sYXN0Q2hpbGQuc2V0QXR0cmlidXRlKCJzcmMiLCBsb2dvVVJMKTsNCiAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNoYW5uZWwtbG9nbyIpLnNldEF0dHJpYnV0ZSgic3JjIiwgbG9nb1VSTCk7DQogICAgICB9IGVsc2Ugew0KICAgICAgICBhbGVydCgiTm8gbG9nbyBVUkwgaW4gdGhlIFhNTFRWIGZpbGUgYXZhaWxhYmxlIikNCiAgICAgIH0NCiAgICAgIA0KICAgIH0NCiAgICANCiAgICAvKg0KICAgIGlmICh4RVBHWyJ4bWx0dk1hcCJdW3hYbWx0dkZpbGVdW3hNYXBwaW5nXVsiaWNvbiJdICE9IHVuZGVmaW5lZCkgew0KDQogICAgICANCiAgICB9DQogICAgKi8NCiAgICANCiAgfQ0KfQ0KDQpmdW5jdGlvbiBzYXZlQ2hhbm5lbExvZ28oeGVwZykgew0KICBpZiAoYnVsayA9PSBmYWxzZSkgew0KICAgIHZhciB0aGlzQ2hhbm5lbCA9IHhFUEdbImVwZ01hcHBpbmciXVt4ZXBnXTsNCiAgICB0aGlzQ2hhbm5lbFsidHZnLWxvZ28iXSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0dmctbG9nbyIpLmxhc3RDaGlsZC52YWx1ZTsNCiAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCh4ZXBnKS5jaGlsZE5vZGVzWzJdLmxhc3RDaGlsZC5zZXRBdHRyaWJ1dGUoInNyYyIsIHRoaXNDaGFubmVsWyJ0dmctbG9nbyJdKTsNCiAgICBtYXBwaW5nRGV0YWlsKHhlcGcpOw0KICAgIHJldHVybg0KICB9DQoNCiAgaWYgKGJ1bGsgPT0gdHJ1ZSkgew0KICAgIHZhciBrZXkgICA9ICJ0dmctbG9nbyI7DQogICAgdmFyIHZhbHVlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInR2Zy1sb2dvIikubGFzdENoaWxkLnZhbHVlOw0KICAgIHNhdmVCdWxrKGtleSwgdmFsdWUpOw0KDQogICAgbWFwcGluZ0RldGFpbCh4ZXBnKTsNCiAgICByZXR1cm4NCiAgfQ0KfQ0KDQpmdW5jdGlvbiBzYXZlQ2hhbm5lbEljb25VcGRhdGUoeGVwZykgew0KDQogIHZhciBrZXkgICA9ICJ4LXVwZGF0ZS1jaGFubmVsLWljb24iOw0KICB2YXIgdmFsdWUgPSBKU09OLnBhcnNlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ4LXVwZGF0ZS1jaGFubmVsLWljb24iKS5sYXN0Q2hpbGQuY2hlY2tlZCk7DQogIGlmIChidWxrID09IGZhbHNlKSB7DQogICAgdmFyIHRoaXNDaGFubmVsID0geEVQR1siZXBnTWFwcGluZyJdW3hlcGddOw0KICAgIHRoaXNDaGFubmVsW2tleV0gPSB2YWx1ZQ0KICAgIHVwZGF0ZUNoYW5uZWxMb2dvKHhlcGcpDQogICAgDQogICAgbWFwcGluZ0RldGFpbCh4ZXBnKTsNCiAgICBzZWFyY2hJbk1hcHBpbmcoKTsNCiAgICByZXR1cm4NCiAgfQ0KDQogIGlmIChidWxrID09IHRydWUpIHsNCiAgICBzYXZlQnVsayhrZXksIHZhbHVlKTsNCiAgICBtYXBwaW5nRGV0YWlsKHhlcGcpOw0KICAgIHJldHVybg0KICB9DQogIA0KfQ0KDQpmdW5jdGlvbiBzYXZlQ2hhbm5lbE5hbWUoeGVwZykgew0KICBpZiAoYnVsayA9PSBmYWxzZSkgew0KICAgIHZhciB0aGlzQ2hhbm5lbCA9IHhFUEdbImVwZ01hcHBpbmciXVt4ZXBnXTsNCiAgICB0aGlzQ2hhbm5lbFsieC1uYW1lIl0gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgieC1uYW1lIikubGFzdENoaWxkLnZhbHVlOw0KICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHhlcGcpLmNoaWxkTm9kZXNbM10ubGFzdENoaWxkLmlubmVySFRNTCA9IHRoaXNDaGFubmVsWyJ4LW5hbWUiXTsNCiAgICBtYXBwaW5nRGV0YWlsKHhlcGcpOw0KICAgIHNlYXJjaEluTWFwcGluZygpOw0KICB9DQogIA0KfQ0KDQpmdW5jdGlvbiBzYXZlQ2hhbm5lbE5hbWVVcGRhdGUoeGVwZykgew0KICB2YXIga2V5ICAgPSAieC11cGRhdGUtY2hhbm5lbC1uYW1lIjsNCiAgdmFyIHZhbHVlID0gSlNPTi5wYXJzZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgieC11cGRhdGUtY2hhbm5lbC1uYW1lIikubGFzdENoaWxkLmNoZWNrZWQpOw0KDQogIGlmIChidWxrID09IGZhbHNlKSB7DQogICAgdmFyIHRoaXNDaGFubmVsID0geEVQR1siZXBnTWFwcGluZyJdW3hlcGddOw0KICAgIHRoaXNDaGFubmVsW2tleV0gPSB2YWx1ZQ0KICAgIG1hcHBpbmdEZXRhaWwoeGVwZyk7DQogICAgc2VhcmNoSW5NYXBwaW5nKCk7DQogICAgcmV0dXJuDQogIH0NCg0KICBpZiAoYnVsayA9PSB0cnVlKSB7DQogICAgc2F2ZUJ1bGsoa2V5LCB2YWx1ZSk7DQogICAgbWFwcGluZ0RldGFpbCh4ZXBnKTsNCiAgICByZXR1cm4NCiAgfQ0KDQp9DQoNCmZ1bmN0aW9uIHNhdmVDaGFubmVsU3RhdHVzKHhlcGcpIHsNCiAgdmFyIHRoaXNDaGFubmVsID0geEVQR1siZXBnTWFwcGluZyJdW3hlcGddOw0KICB2YXIgeFhtbHR2RmlsZSA9IHRoaXNDaGFubmVsWyJ4LXhtbHR2LWZpbGUiXTsNCg0KICB2YXIga2V5ICAgPSAieC1hY3RpdmUiOw0KICB2YXIgdmFsdWUgPSBKU09OLnBhcnNlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ4LWFjdGl2ZSIpLmxhc3RDaGlsZC5jaGVja2VkKTsNCg0KICBpZiAoeEVQR1sieG1sdHZNYXAiXS5oYXNPd25Qcm9wZXJ0eSh4WG1sdHZGaWxlKSA9PSB0cnVlKSB7DQogICAgaWYgKHRoaXNDaGFubmVsWyJ4LW1hcHBpbmciXSAhPSAiLSIgJiYgdGhpc0NoYW5uZWxbIngtbWFwcGluZyJdICE9IHVuZGVmaW5lZCkgew0KICAgICAgdGhpc0NoYW5uZWxbIngtYWN0aXZlIl0gPSAhdGhpc0NoYW5uZWxbIngtYWN0aXZlIl07DQogICAgICB2YXIgdHIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCh4ZXBnKTsNCiAgICAgIHN3aXRjaCh0aGlzQ2hhbm5lbFsieC1hY3RpdmUiXSkgew0KICAgICAgICBjYXNlIHRydWU6IHRyLmNsYXNzTmFtZSA9ICJhY3RpdmVFUEciOyBicmVhazsNCiAgICAgICAgY2FzZSBmYWxzZTogdHIuY2xhc3NOYW1lID0gIm5vdEFjdGl2ZUVQRyI7IGJyZWFrOw0KICAgICAgfQ0KICAgICAgDQogICAgfSBlbHNlIHsNCiAgICAgIHZhciBlcnIgPSAiWE1MVFYgQ2hhbm5lbCBpcyBub3Qgc2VsZWN0ZWQiDQogICAgICBhbGVydChlcnIpDQogICAgICB2YWx1ZSA9IGZhbHNlDQogICAgfQ0KDQogIH0gZWxzZSB7DQogICAgaWYgKHZhbHVlID09IHRydWUpIHsNCiAgICAgIHZhciBlcnIgPSAiWE1MVFYgRmlsZSBpcyBub3Qgc2VsZWN0ZSINCiAgICAgIGFsZXJ0KGVycikNCiAgICAgIHZhbHVlID0gZmFsc2UNCiAgICB9DQogIH0NCg0KICANCg0KICBpZiAoYnVsayA9PSBmYWxzZSkgew0KICAgIHZhciB0aGlzQ2hhbm5lbCA9IHhFUEdbImVwZ01hcHBpbmciXVt4ZXBnXTsNCiAgICB0aGlzQ2hhbm5lbFtrZXldID0gdmFsdWUNCiAgICBtYXBwaW5nRGV0YWlsKHhlcGcpOw0KICAgIHNlYXJjaEluTWFwcGluZygpOw0KDQogICAgdmFyIHRyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoeGVwZyk7DQogICAgc3dpdGNoKHRoaXNDaGFubmVsWyJ4LWFjdGl2ZSJdKSB7DQogICAgICBjYXNlIHRydWU6IHRyLmNsYXNzTmFtZSA9ICJhY3RpdmVFUEciOyBicmVhazsNCiAgICAgIGNhc2UgZmFsc2U6IHRyLmNsYXNzTmFtZSA9ICJub3RBY3RpdmVFUEciOyBicmVhazsNCiAgICB9DQoNCiAgICByZXR1cm4NCiAgfQ0KDQogIGlmIChidWxrID09IHRydWUpIHsNCiAgICBzYXZlQnVsayhrZXksIHZhbHVlKTsNCiAgICBtYXBwaW5nRGV0YWlsKHhlcGcpOw0KICAgIHJldHVybg0KICB9DQoNCn0NCg0KZnVuY3Rpb24gc2F2ZUdyb3VwVGl0bGUoeGVwZykgew0KICB2YXIga2V5ICAgPSAieC1ncm91cC10aXRsZSI7DQogIHZhciB2YWx1ZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ4LWdyb3VwLXRpdGxlIikubGFzdENoaWxkLnZhbHVlOw0KDQogIGlmIChidWxrID09IGZhbHNlKSB7DQogICAgdmFyIHRoaXNDaGFubmVsID0geEVQR1siZXBnTWFwcGluZyJdW3hlcGddOw0KICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHhlcGcpLmNoaWxkTm9kZXNbNV0ubGFzdENoaWxkLmlubmVySFRNTCA9IHZhbHVlOw0KICAgIHRoaXNDaGFubmVsW2tleV0gPSB2YWx1ZTsNCiAgICBtYXBwaW5nRGV0YWlsKHhlcGcpOw0KICAgIHNlYXJjaEluTWFwcGluZygpOw0KICB9DQoNCiAgaWYgKGJ1bGsgPT0gdHJ1ZSkgew0KICAgIHNhdmVCdWxrKGtleSwgdmFsdWUpOw0KICAgIG1hcHBpbmdEZXRhaWwoeGVwZyk7DQogICAgcmV0dXJuDQogIH0NCg0KfQ0KDQpmdW5jdGlvbiBzYXZlQ2F0ZWdvcnkoeGVwZykgew0KICB2YXIga2V5ICAgPSAieC1jYXRlZ29yeSI7DQogIHZhciB2YWx1ZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ4LWNhdGVnb3J5IikubGFzdENoaWxkLnZhbHVlOw0KDQogIGlmIChidWxrID09IGZhbHNlKSB7DQogICAgdmFyIHRoaXNDaGFubmVsID0geEVQR1siZXBnTWFwcGluZyJdW3hlcGddOw0KICAgIHRoaXNDaGFubmVsW2tleV0gPSB2YWx1ZQ0KICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHhlcGcpLmNoaWxkTm9kZXNbM10ubGFzdENoaWxkLmNsYXNzTmFtZSA9IHZhbHVlDQogICAgbWFwcGluZ0RldGFpbCh4ZXBnKTsNCiAgICBzZWFyY2hJbk1hcHBpbmcoKTsNCiAgfQ0KDQogIGlmIChidWxrID09IHRydWUpIHsNCiAgICBzYXZlQnVsayhrZXksIHZhbHVlKTsNCiAgICBtYXBwaW5nRGV0YWlsKHhlcGcpOw0KICAgIHJldHVybg0KICB9DQoNCn0NCg0KZnVuY3Rpb24gYXJyYW5nZVRhYmxlKGVsbSkgew0KICB2YXIgdHIgPSBlbG0ucGFyZW50RWxlbWVudC5wYXJlbnRFbGVtZW50Ow0KICB2YXIgbmV3UG9zaXRpb24gPSBlbG0udmFsdWU7DQogIHZhciB4X2NoYW5uZWxJRCA9IHRyLmlkOw0KDQogIHN3aXRjaChpc05hTihuZXdQb3NpdGlvbikpIHsNCiAgICBjYXNlIHRydWU6IA0KICAgICAgYWxlcnQoIkNoLiBOby4gbXVzdCBiZSBhIG51bWJlciIpOw0KICAgICAgbWFwcGluZ0Vycm9yID0gdHJ1ZTsNCiAgICAgIGJyZWFrOw0KICB9DQoNCg0KICAvL3ZhciBpdGVtID0geEVQR1siZXBnTWFwcGluZyJdW2lkXTsNCiAgdmFyIGtleXMgPSBnZXRPYmpLZXlzKHhFUEdbImVwZ01hcHBpbmciXSkNCiAgZm9yICh2YXIgaSA9IDA7IGkgPCBrZXlzLmxlbmd0aDsgaSsrKSB7DQogICAgdmFyIGl0ZW0gPSB4RVBHWyJlcGdNYXBwaW5nIl1ba2V5c1tpXV07DQogICAgaWYgKGl0ZW1bIngtZXBnIl0gPT0geF9jaGFubmVsSUQpIHsNCg0KICAgICAgLy8gQ2hlY2sgaWYgcG9zaXRpb24gZXhpc3QNCiAgICAgIHZhciBvbGRQb3NpdGlvbiA9IGl0ZW1bIngtY2hhbm5lbElEIl07DQoNCiAgICAgIGlmIChvbGRQb3NpdGlvbiAhPSBuZXdQb3NpdGlvbikgew0KDQogICAgICAgIGNvbnNvbGUubG9nKG5ld1Bvc2l0aW9uLCBuZXdQb3NpdGlvbi5sZW5ndGgpOw0KICAgICAgICBpZiAobmV3UG9zaXRpb24ubGVuZ3RoID09IDApIHsNCiAgICAgICAgICBtYXBwaW5nRXJyb3IgPSB0cnVlDQogICAgICAgICAgbmV3UG9zaXRpb24gPSBvbGRQb3NpdGlvbjsNCiAgICAgICAgICANCiAgICAgICAgfQ0KDQogICAgICAgIGlmIChtYXBwaW5nRXJyb3IgPT0gdHJ1ZSkgew0KICAgICAgICAgIGVsbS52YWx1ZSA9IG9sZFBvc2l0aW9uOw0KICAgICAgICAgIHJldHVybjsNCiAgICAgICAgfQ0KDQogICAgICAgIGZvciAodmFyIGogPSBrZXlzLmxlbmd0aCAtIDE7IGogPj0gMDsgai0tKSB7DQogICAgICAgICAgdmFyIGNoYW5uZWwgPSB4RVBHWyJlcGdNYXBwaW5nIl1ba2V5c1tqXV07DQogICAgICAgICAgaWYgKGtleXNbal0gIT0geF9jaGFubmVsSUQpIHsNCiAgICAgICAgICAgIGlmIChuZXdQb3NpdGlvbiA9PSBjaGFubmVsWyJ4LWNoYW5uZWxJRCJdKSB7IC8vIElmIHBvc2l0aW9uIGV4aXN0LCBzZXQgbmV4dCBmcmVlIHBvc2l0aW9uLg0KICAgICAgICAgICAgICBuZXdQb3NpdGlvbisrOw0KICAgICAgICAgICAgICBlbG0udmFsdWUgPSBuZXdQb3NpdGlvbjsNCiAgICAgICAgICAgICAgYXJyYW5nZVRhYmxlKGVsbSk7DQogICAgICAgICAgICAgIHJldHVybjsNCiAgICAgICAgICAgICAgLyoNCiAgICAgICAgICAgICAgdmFyIG5ld0Vycm9yID0gbmV3IE9iamVjdCgpOw0KICAgICAgICAgICAgICBuZXdFcnJvclsiZXJyIl0gPSAiRHVwbGljYXRlIElEIjsNCiAgICAgICAgICAgICAgY2hlY2tFcnIobmV3RXJyb3IpOw0KICAgICAgICAgICAgICBzb3J0VGFibGUoKTsNCiAgICAgICAgICAgICAgbWFwcGluZ0Vycm9yID0gdHJ1ZTsNCiAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoeF9jaGFubmVsSUQpLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJJTlBVVCIpWzBdLmZvY3VzKCk7DQogICAgICAgICAgICAgIHJldHVybjsNCiAgICAgICAgICAgICAgKi8NCiAgICAgICAgICAgIH0NCiAgICAgICAgICB9DQogICAgICAgIH0NCg0KICAgICAgfQ0KDQogICAgICAvL2NvbnNvbGUubG9nKG9sZFBvc2l0aW9uLCBuZXdQb3NpdGlvbik7DQogICAgICBpZiAoa2V5c1tpXSA9PSB4X2NoYW5uZWxJRCAmJiBvbGRQb3NpdGlvbiAhPSBuZXdQb3NpdGlvbikgeyAgDQogICAgICAgIGl0ZW1bIngtY2hhbm5lbElEIl0gPSBuZXdQb3NpdGlvbjsNCiAgICAgIH0gDQoNCiAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJsb2dJbmZvIikuY2xhc3NOYW1lID0gIm5vdFZpc2libGUiOw0KICAgICAgaWYgKGNvbHVtblRvU29ydCA9PSAxKSB7DQogICAgICAgIHNvcnRUYWJsZShjb2x1bW5Ub1NvcnQpOw0KICAgICAgfQ0KICAgICAgbWFwcGluZ0Vycm9yID0gZmFsc2U7DQoNCiAgICB9DQogIH0NCn0NCg0KZnVuY3Rpb24gY2hhbmdlWG1sdHZGaWxlKHhlcGcsIGVsbSkgew0KDQogIHZhciB0aGlzQ2hhbm5lbCA9IHhFUEdbImVwZ01hcHBpbmciXVt4ZXBnXTsNCiAgDQogIHZhciB4WG1sdHZGaWxlICAgID0gZWxtLnZhbHVlOw0KICB2YXIgY2hhbm5lbElEICAgICA9IHRoaXNDaGFubmVsWyJ0dmctaWQiXTsNCiAgdGhpc0NoYW5uZWxbIngteG1sdHYtZmlsZSJdID0geFhtbHR2RmlsZTsNCg0KICBpZiAoYnVsayA9PSBmYWxzZSkgew0KDQogICAgc2V0VGltZW91dChmdW5jdGlvbigpeyANCg0KICAgICAgdmFyIHhNYXBwaW5nID0gIi0iDQoNCiAgICAgIC8vIEF1dG9tYXANCiAgICAgIGlmICh4WG1sdHZGaWxlICE9ICItIikgew0KICAgICAgICBpZiAoeEVQR1sieG1sdHZNYXAiXVt4WG1sdHZGaWxlXS5oYXNPd25Qcm9wZXJ0eShjaGFubmVsSUQpID09IHRydWUpIHsNCiAgICAgICAgICB0aGlzQ2hhbm5lbFsieC1tYXBwaW5nIl0gPSBjaGFubmVsSUQ7DQogICAgICAgICAgeE1hcHBpbmcgPSBjaGFubmVsSUQNCiAgICAgICAgfSBlbHNlIHsNCiAgICAgICAgICB0aGlzQ2hhbm5lbFsieC1tYXBwaW5nIl0gPSB4TWFwcGluZw0KICAgICAgICB9DQogICAgICB9IGVsc2Ugew0KICAgICAgICB0aGlzQ2hhbm5lbFsieC1tYXBwaW5nIl0gPSB4TWFwcGluZw0KDQogICAgICB9DQogICAgICANCiAgICAgIHZhciB0ciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHhlcGcpOw0KDQogICAgICBpZiAoeE1hcHBpbmcgPT0gIi0iKSB7DQogICAgICAgIHRoaXNDaGFubmVsWyJ4LWFjdGl2ZSJdID0gZmFsc2U7DQogICAgICAgIHRyLmNsYXNzTmFtZSA9ICJub3RBY3RpdmVFUEciDQogICAgICB9IGVsc2Ugew0KICAgICAgICB0aGlzQ2hhbm5lbFsieC1hY3RpdmUiXSAgPSB0cnVlOw0KICAgICAgICB0ci5jbGFzc05hbWUgPSAiYWN0aXZlRVBHIg0KICAgICAgfQ0KDQogICAgICAvLyBTaG93IGRhdGEgaW4gdGFibGUNCiAgICAgIHZhciB0ZCA9IHRyLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJURCIpOw0KICAgICAgdmFyIGRhdGFGaWxlID0gdGRbdGQubGVuZ3RoIC0gMl0ubGFzdENoaWxkOw0KICAgICAgc3dpdGNoKHhYbWx0dkZpbGUpIHsNCiAgICAgICAgY2FzZSAiLSI6ICAgICAgICAgICBkYXRhRmlsZS5pbm5lckhUTUwgPSB4WG1sdHZGaWxlOyBicmVhazsNCiAgICAgICAgY2FzZSAieFRlVmUgRHVtbXkiOiBkYXRhRmlsZS5pbm5lckhUTUwgPSB4WG1sdHZGaWxlOyBicmVhazsNCiAgICAgICAgZGVmYXVsdDogICAgICAgICAgICBkYXRhRmlsZS5pbm5lckhUTUwgPSBnZXRWYWx1ZUZyb21Qcm92aWRlckZpbGUoeFhtbHR2RmlsZSwgInhtbHR2IiwgIm5hbWUiKTsgYnJlYWs7DQogICAgICB9DQoNCiAgICAgIC8veFhtbHR2RmlsZS5yZXBsYWNlKC9eLipbXFxcL10vLCAnJyk7DQoNCiAgICAgIHZhciBkYXRhWG1sdHZJRCA9IHRkW3RkLmxlbmd0aCAtIDFdLmxhc3RDaGlsZDsNCiAgICAgIGRhdGFYbWx0dklELmlubmVySFRNTCA9IHhNYXBwaW5nOw0KICAgICAgDQogICAgICBtYXBwaW5nRGV0YWlsKHhlcGcpOw0KDQogICAgfSwgMTApOw0KICB9DQoNCiAgaWYgKGJ1bGsgPT0gdHJ1ZSkgew0KICAgIHZhciBrZXkgPSAieC14bWx0di1maWxlIg0KICAgIHZhciB2YWx1ZSA9IHhYbWx0dkZpbGUNCiAgICBzYXZlQnVsayhrZXksIHZhbHVlKTsNCg0KICAgIHZhciBrZXkgPSAieC1tYXBwaW5nIg0KICAgIHZhciB2YWx1ZSA9ICItIg0KICAgIHNhdmVCdWxrKGtleSwgdmFsdWUpOw0KICAgIG1hcHBpbmdEZXRhaWwoeGVwZyk7DQogICAgcmV0dXJuDQogIH0NCg0KICByZXR1cm4NCn0NCg0KZnVuY3Rpb24gbWFwcGluZ0NoYW5uZWwoeGVwZywgZWxtKSB7DQogIHZhciB0aGlzQ2hhbm5lbCA9IHhFUEdbImVwZ01hcHBpbmciXVt4ZXBnXTsNCiAgLy92YXIgeE1hcHBpbmcgICAgICA9IGVsbS52YWx1ZTsNCiAgdmFyIHhNYXBwaW5nICAgICAgPSBlbG0ub3B0aW9uc1tlbG0uc2VsZWN0ZWRJbmRleF0udmFsdWUNCiAgDQogIGlmIChidWxrID09IGZhbHNlKSB7DQogICAgDQogICAgdGhpc0NoYW5uZWxbIngtbWFwcGluZyJdID0geE1hcHBpbmc7DQoNCiAgICB2YXIgdHIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCh4ZXBnKTsNCg0KICAgIGlmICh4TWFwcGluZyA9PSAiLSIpIHsNCiAgICAgIHRoaXNDaGFubmVsWyJ4LWFjdGl2ZSJdID0gZmFsc2U7DQogICAgICB0ci5jbGFzc05hbWUgPSAibm90QWN0aXZlRVBHIg0KICAgIH0gZWxzZSB7DQogICAgICB0aGlzQ2hhbm5lbFsieC1hY3RpdmUiXSAgPSB0cnVlOw0KICAgICAgdHIuY2xhc3NOYW1lID0gImFjdGl2ZUVQRyINCiAgICB9DQoNCiAgICAvLyBTaG93IGRhdGEgaW4gdGFibGUNCiAgICB2YXIgdGQgPSB0ci5nZXRFbGVtZW50c0J5VGFnTmFtZSgiVEQiKTsNCiAgICB2YXIgZGF0YVhtbHR2SUQgPSB0ZFt0ZC5sZW5ndGggLSAxXS5sYXN0Q2hpbGQ7DQogICAgZGF0YVhtbHR2SUQuaW5uZXJIVE1MID0geE1hcHBpbmc7DQogICAgLy9jb25zb2xlLmxvZyh0ZFt0ZC5sZW5ndGggLSAxXSk7DQogICAgLy9jb25zb2xlLmxvZyh4TWFwcGluZywgZWxtKTsNCg0KICAgIGNyZWF0ZVNlYXJjaE9iaigpOw0KICAgIHNlYXJjaEluTWFwcGluZygpOw0KICAgIHVwZGF0ZUNoYW5uZWxMb2dvKHhlcGcpDQogICAgbWFwcGluZ0RldGFpbCh4ZXBnKTsNCiAgICByZXR1cm4NCiAgfQ0KDQogIGlmIChidWxrID09IHRydWUpIHsNCg0KICAgIHZhciBrZXkgPSAieC1tYXBwaW5nIg0KICAgIHZhciB2YWx1ZSA9IHhNYXBwaW5nDQogICAgc2F2ZUJ1bGsoa2V5LCB2YWx1ZSk7DQoNCiAgICBtYXBwaW5nRGV0YWlsKHhlcGcpOw0KICAgIHJldHVybg0KICB9DQoNCiAgcmV0dXJuDQp9DQoNCg0KZnVuY3Rpb24gY3JlYXRlTmV3VEQobmV3SXRlbSwgZWxtKSB7DQogIHZhciBuZXdURCA9IG5ldyBPYmplY3QoKTsNCiAgbmV3VERbIl9lbGVtZW50Il0gPSAiVEQiOw0KICANCiAgZWxtLmFwcGVuZENoaWxkKGNyZWF0ZUVsZW1lbnQobmV3VEQpKTsNCiAgdmFyIHRkID0gZWxtLmxhc3RDaGlsZDsgDQogIA0KICBzd2l0Y2gobmV3SXRlbVsiX2VsZW1lbnQiXSkgew0KICAgIGNhc2UgIlNFTEVDVCI6DQogICAgICB0ZC5hcHBlbmRDaGlsZChjcmVhdGVFbGVtZW50KG5ld0l0ZW0pKTsNCiAgICAgIHZhciB0ZCA9IGVsbS5sYXN0Q2hpbGQubGFzdENoaWxkOyANCiAgICAgIHZhciB2YWx1ZXMgPSBuZXdJdGVtWyJfb3B0aW9uVmFsdWVzIl07DQogICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHZhbHVlcy5sZW5ndGg7IGkrKykgew0KICAgICAgICAvL2NvbnNvbGUubG9nKGl0ZW0pOw0KICAgICAgICB2YXIgbmV3RW50cnkgPSBuZXcgT2JqZWN0Ow0KICAgICAgICBuZXdFbnRyeVsiX2VsZW1lbnQiXSAgPSAiT1BUSU9OIjsNCiAgICAgICAgbmV3RW50cnlbIl90ZXh0Il0gICAgID0gdmFsdWVzW2ldOw0KICAgICAgICBuZXdFbnRyeVsidmFsdWUiXSAgICAgPSB2YWx1ZXNbaV07DQogICAgICAgIHRkLmFwcGVuZENoaWxkKGNyZWF0ZUVsZW1lbnQobmV3RW50cnkpKTsNCiAgICAgIH0NCiAgICAgIHRkLnZhbHVlID0gbmV3SXRlbVsidmFsdWUiXTsNCg0KICAgICAgYnJlYWs7DQogICAgDQogICAgZGVmYXVsdDogDQogICAgICANCiAgICAgIHRkLmFwcGVuZENoaWxkKGNyZWF0ZUVsZW1lbnQobmV3SXRlbSkpOw0KICAgICAgYnJlYWs7DQogIH0NCiAgDQp9DQoNCmZ1bmN0aW9uIHNhdmVYRVBHKCkgew0KICBpZiAobWFwcGluZ0Vycm9yID09IHRydWUpIHsNCiAgICBhbGVydCgiRGF0YSBjb3VsZCBub3QgYmUgc2F2ZWQsIGVycm9ycyBpbiB0aGUgWEVQRyBkYXRhLiIpOw0KICAgIHJldHVybjsNCiAgfQ0KICBzaG93TG9hZGluZ1NjcmVlbih0cnVlKTsNCg0KICB2YXIgZGF0YSA9IG5ldyBPYmplY3QoKTsNCiAgZGF0YVsiZXBnTWFwcGluZyJdID0geEVQR1siZXBnTWFwcGluZyJdOw0KICBkYXRhWyJjbWQiXSA9ICJzYXZlRXBnTWFwcGluZyI7DQogIC8vY29uc29sZS5sb2coZGF0YSk7DQogIHhUZVZlKGRhdGEpOw0KfQ0KDQpmdW5jdGlvbiBidWxrRWRpdCgpIHsNCiAgYnVsayA9ICFidWxrOw0KICB2YXIgY2xhc3NOYW1lOw0KDQogIHZhciBlbG0gPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCJidWxrIik7DQoNCiAgc3dpdGNoKGJ1bGspIHsNCiAgICBjYXNlIHRydWU6IA0KICAgICAgY2xhc3NOYW1lID0gImJ1bGsgc2hvd0J1bGsiOw0KICAgICAgYnJlYWs7DQoNCiAgICBjYXNlIGZhbHNlOiANCiAgICAgIGNsYXNzTmFtZSA9ICJidWxrIGhpZGVCdWxrIjsNCiAgICAgIGJ1bGtFZGl0QWxsID0gZmFsc2U7DQogICAgICBicmVhazsNCiAgfQ0KDQogIGZvciAodmFyIGkgPSAwOyBpIDwgZWxtLmxlbmd0aDsgaSsrKSB7DQogICAgZWxtW2ldLmNsYXNzTmFtZSA9IGNsYXNzTmFtZTsNCiAgICBlbG1baV0uY2hlY2tlZCA9IGZhbHNlOw0KICB9DQoNCn0NCg0KZnVuY3Rpb24gYnVsa0VkaXRBbGxDaGFubmVscygpIHsNCg0KICB2YXIgYWxsVFIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiaWRfbWFwcGluZyIpLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJUUiIpOw0KDQogIGZvciAodmFyIGkgPSAxOyBpIDwgYWxsVFIubGVuZ3RoOyBpKyspIHsNCiAgICBpZiAoYWxsVFJbaV0uc3R5bGUuZGlzcGxheSAhPSAibm9uZSIpIHsNCiAgICAgIHN3aXRjaChidWxrRWRpdEFsbCkgew0KICAgICAgICBjYXNlIGZhbHNlOiBhbGxUUltpXS5maXJzdENoaWxkLmZpcnN0Q2hpbGQuY2hlY2tlZCA9IHRydWU7IGJyZWFrOw0KICAgICAgICBjYXNlIHRydWU6IGFsbFRSW2ldLmZpcnN0Q2hpbGQuZmlyc3RDaGlsZC5jaGVja2VkID0gZmFsc2U7IGJyZWFrOyANCiAgICAgIH0NCg0KICAgIH0NCiAgICANCiAgfQ0KDQogIGJ1bGtFZGl0QWxsID0gIWJ1bGtFZGl0QWxsOw0KfQ0KDQpmdW5jdGlvbiBzb3J0VGFibGUoY29sdW1tKSB7DQogIC8vY29uc29sZS5sb2coY29sdW1tKTsNCiAgaWYgKGNvbHVtbSA9PSBjb2x1bW5Ub1NvcnQpIHsNCiAgICAvL3JldHVybjsNCiAgfQ0KDQogIHZhciB0YWJsZSAgICAgICA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJpZF9tYXBwaW5nIik7DQogIHZhciB0YWJsZUhlYWQgICA9IHRhYmxlLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJUUiIpWzBdOw0KICB2YXIgdGFibGVJdGVtcyAgPSB0YWJsZUhlYWQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlREIik7DQogIA0KICB2YXIgc29ydE9iaiA9IG5ldyBPYmplY3QoKTsNCiAgdmFyIHgsIHhWYWx1ZTsNCiAgdmFyIHRhYmxlSGVhZGVyDQogIHZhciBzb3J0QnlTdHJpbmcgPSBmYWxzZQ0KDQogIGlmIChjb2x1bW0gPiAwICYmIGNvbHVtblRvU29ydCA+IDApICB7DQogICAgdGFibGVJdGVtc1tjb2x1bW5Ub1NvcnRdLmNsYXNzTmFtZSA9ICJwb2ludGVyIjsNCiAgICB0YWJsZUl0ZW1zW2NvbHVtbV0uY2xhc3NOYW1lID0gInNvcnRUaGlzIjsNCiAgfQ0KDQogIGNvbHVtblRvU29ydCA9IGNvbHVtbTsNCg0KICB2YXIgcm93cyA9IHRhYmxlLnJvd3M7DQoNCiAgaWYgKHJvd3NbMV0gIT0gdW5kZWZpbmVkKSB7DQogICAgdGFibGVIZWFkZXIgPSByb3dzWzBdDQoNCiAgICB4ID0gcm93c1sxXS5nZXRFbGVtZW50c0J5VGFnTmFtZSgiVEQiKVtjb2x1bW1dOw0KICAgIA0KICAgIGZvciAoaSA9IDE7IGkgPCByb3dzLmxlbmd0aDsgaSsrKSB7DQoNCiAgICAgIHggPSByb3dzW2ldLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJURCIpW2NvbHVtbV07DQoNCiAgICAgIHN3aXRjaCh4LmNoaWxkTm9kZXNbMF0udGFnTmFtZS50b0xvd2VyQ2FzZSgpKSB7DQogICAgICAgIGNhc2UgImlucHV0IjoNCiAgICAgICAgICB4VmFsdWUgPSB4LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJJTlBVVCIpWzBdLnZhbHVlLnRvTG93ZXJDYXNlKCk7DQogICAgICAgICAgYnJlYWs7DQoNCiAgICAgICAgY2FzZSAicCI6DQogICAgICAgICAgeFZhbHVlID0geC5nZXRFbGVtZW50c0J5VGFnTmFtZSgiUCIpWzBdLmlubmVyVGV4dC50b0xvd2VyQ2FzZSgpOw0KICAgICAgICAgIGJyZWFrOw0KICAgICAgICANCiAgICAgICAgZGVmYXVsdDogY29uc29sZS5sb2coeC5jaGlsZE5vZGVzWzBdLnRhZ05hbWUpOw0KICAgICAgfQ0KDQogICAgICBpZiAoeFZhbHVlID09ICIiIHx8IHhWYWx1ZSA9PSBOYU4pIHsNCiAgICAgICAgeFZhbHVlID0gaQ0KICAgICAgICBzb3J0T2JqW2ldID0gcm93c1tpXTsNCiAgICAgIA0KICAgICAgfSBlbHNlIHsNCg0KICAgICAgICBzd2l0Y2goaXNOYU4oeFZhbHVlKSkgew0KICAgICAgICAgIGNhc2UgZmFsc2U6IA0KDQogICAgICAgICAgICB4VmFsdWUgPSBwYXJzZUZsb2F0KHhWYWx1ZSk7DQogICAgICAgICAgICBzb3J0T2JqW3hWYWx1ZV0gPSByb3dzW2ldDQogICAgICAgICAgICBicmVhazsNCg0KICAgICAgICAgIGNhc2UgdHJ1ZToNCg0KICAgICAgICAgICAgc29ydEJ5U3RyaW5nID0gdHJ1ZQ0KICAgICAgICAgICAgc29ydE9ialt4VmFsdWUudG9Mb3dlckNhc2UoKSArIGldID0gcm93c1tpXQ0KICAgICAgICAgICAgYnJlYWs7DQoNCiAgICAgICAgfQ0KDQogICAgICB9DQogICAgDQogICAgfQ0KDQogICAgd2hpbGUgKHRhYmxlLmZpcnN0Q2hpbGQpIHsNCiAgICAgIHRhYmxlLnJlbW92ZUNoaWxkKHRhYmxlLmZpcnN0Q2hpbGQpOw0KICAgIH0NCiAgICANCiAgICB2YXIgc29ydFZhbHVlcyA9IGdldE9iaktleXMoc29ydE9iaikNCiAgICBpZiAoc29ydEJ5U3RyaW5nID09IHRydWUpIHsNCiAgICAgIHNvcnRWYWx1ZXMuc29ydCgpDQogICAgfSBlbHNlIHsNCiAgICAgIGZ1bmN0aW9uIHNvcnRGbG9hdChhLCBiKSB7IA0KICAgICAgICByZXR1cm4gYSAtIGI7IA0KICAgICAgfQ0KICAgICAgc29ydFZhbHVlcy5zb3J0KHNvcnRGbG9hdCk7DQogICAgfQ0KDQogICAgdGFibGUuYXBwZW5kQ2hpbGQodGFibGVIZWFkZXIpDQogICAgDQogICAgZm9yICh2YXIgaSA9IDA7IGkgPCBzb3J0VmFsdWVzLmxlbmd0aDsgaSsrKSB7DQogICAgIA0KICAgICAgdGFibGUuYXBwZW5kQ2hpbGQoc29ydE9ialtzb3J0VmFsdWVzW2ldXSkNCg0KICAgIH0NCiAgICANCiAgfQ0KDQp9DQoNCg0KZnVuY3Rpb24gc29ydFRhYmxlX29sZChjb2x1bW0pIHsNCiAgc2hvd0xvYWRpbmdTY3JlZW4odHJ1ZSk7DQogIA0KICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7IA0KDQogICAgdmFyIHRhYmxlLCByb3dzLCBzd2l0Y2hpbmcsIGksIHgsIHksIHNob3VsZFN3aXRjaDsNCiAgICB0YWJsZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJpZF9tYXBwaW5nIik7DQoNCiAgICB2YXIgdGFibGVIZWFkID0gdGFibGUuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlRSIilbMF07DQogICAgdmFyIHRhYmxlSXRlbXMgPSB0YWJsZUhlYWQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlREIik7DQoNCiAgICBpZiAoY29sdW1tID4gMCkgIHsNCiAgICAgIHRhYmxlSXRlbXNbY29sdW1uVG9Tb3J0XS5jbGFzc05hbWUgPSAicG9pbnRlciI7DQogICAgICB0YWJsZUl0ZW1zW2NvbHVtbV0uY2xhc3NOYW1lID0gInNvcnRUaGlzIjsNCiAgICB9DQogICAgDQogICAgY29sdW1uVG9Tb3J0ID0gY29sdW1tOw0KDQogICAgLyoNCiAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRhYmxlSXRlbXMubGVuZ3RoOyBpKyspIHsNCiAgICAgIGlmICh0YWJsZUl0ZW1zW2ldLmNsYXNzTmFtZSAhPSB1bmRlZmluZWQpIHsNCiAgICAgICAgdGFibGVJdGVtc1tpXS5jbGFzc05hbWUgPSAicG9pbnRlciINCiAgICAgIH0NCg0KICAgIH0NCiAgICAqLw0KDQogICAgDQoNCiAgICBjb25zb2xlLmxvZyh0YWJsZUl0ZW1zKTsgDQoNCiAgICBzd2l0Y2hpbmcgPSB0cnVlOw0KICAgIHdoaWxlIChzd2l0Y2hpbmcpIHsNCiAgICAgIHN3aXRjaGluZyA9IGZhbHNlOw0KICAgICAgcm93cyA9IHRhYmxlLnJvd3M7DQogICAgICBmb3IgKGkgPSAxOyBpIDwgKHJvd3MubGVuZ3RoIC0gMSk7IGkrKykgew0KICAgICAgICBzaG91bGRTd2l0Y2ggPSBmYWxzZTsNCg0KICAgICAgICB4ID0gcm93c1tpXS5nZXRFbGVtZW50c0J5VGFnTmFtZSgiVEQiKVtjb2x1bW1dOw0KICAgICAgICB5ID0gcm93c1tpICsgMV0uZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlREIilbY29sdW1tXTsNCg0KICAgICAgICBzd2l0Y2goeC5jaGlsZE5vZGVzWzBdLnRhZ05hbWUudG9Mb3dlckNhc2UoKSkgew0KICAgICAgICAgIGNhc2UgImlucHV0IjoNCiAgICAgICAgICAgIHhWYWx1ZSA9IHguZ2V0RWxlbWVudHNCeVRhZ05hbWUoIklOUFVUIilbMF0udmFsdWUudG9Mb3dlckNhc2UoKTsNCiAgICAgICAgICAgIHlWYWx1ZSA9IHkuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIklOUFVUIilbMF0udmFsdWUudG9Mb3dlckNhc2UoKTsNCiAgICAgICAgICAgIGJyZWFrOw0KDQogICAgICAgICAgY2FzZSAicCI6DQogICAgICAgICAgICB4VmFsdWUgPSB4LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJQIilbMF0uaW5uZXJUZXh0LnRvTG93ZXJDYXNlKCk7DQogICAgICAgICAgICB5VmFsdWUgPSB5LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJQIilbMF0uaW5uZXJUZXh0LnRvTG93ZXJDYXNlKCk7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgICANCiAgICAgICAgICBkZWZhdWx0OiBjb25zb2xlLmxvZyh4LmNoaWxkTm9kZXNbMF0udGFnTmFtZSk7DQogICAgICAgIH0NCg0KICAgICAgICANCiAgICAgICAgc3dpdGNoKGlzTmFOKHhWYWx1ZSkpIHsNCiAgICAgICAgICBjYXNlIGZhbHNlOiB4VmFsdWUgPSBwYXJzZUZsb2F0KHhWYWx1ZSkgOyBicmVhazsNCiAgICAgICAgfQ0KDQogICAgICAgIHN3aXRjaChpc05hTih5VmFsdWUpKSB7DQogICAgICAgICAgY2FzZSBmYWxzZTogeVZhbHVlID0gcGFyc2VGbG9hdCh5VmFsdWUpIDsgYnJlYWs7DQogICAgICAgIH0NCiAgICAgICAgDQoNCiAgICAgICAgaWYgKHhWYWx1ZSA+IHlWYWx1ZSkgew0KICAgICAgICAgIHNob3VsZFN3aXRjaCA9IHRydWU7DQogICAgICAgICAgYnJlYWs7DQogICAgICAgIH0NCg0KICAgICAgfQ0KICAgICAgaWYgKHNob3VsZFN3aXRjaCkgew0KICAgICAgICByb3dzW2ldLnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKHJvd3NbaSArIDFdLCByb3dzW2ldKTsNCiAgICAgICAgc3dpdGNoaW5nID0gdHJ1ZTsNCiAgICAgIH0NCiAgICB9DQogICAgY3JlYXRlU2VhcmNoT2JqKCkNCiAgICANCiAgICBzaG93TG9hZGluZ1NjcmVlbihmYWxzZSk7DQogIH0sIDIwKTsNCg0KfQ0KDQpmdW5jdGlvbiBzaG93WEVQRygpIHsNCiAgdmFyIHVybCA9IGxvY2F0aW9uLnByb3RvY29sICsgIi8vIiArIGxvY2F0aW9uLmhvc3RuYW1lICsgIjoiICsgbG9jYXRpb24ucG9ydCArICIveG1sdHYveHRldmUueG1sIg0KICB2YXIgd2luID0gd2luZG93Lm9wZW4odXJsLCAnX2JsYW5rJyk7DQogIHdpbi5mb2N1cygpOw0KfQ==" + webUI["html/js/classes_ts.js"] = "dmFyIF9fZXh0ZW5kcyA9ICh0aGlzICYmIHRoaXMuX19leHRlbmRzKSB8fCAoZnVuY3Rpb24gKCkgew0KICAgIHZhciBleHRlbmRTdGF0aWNzID0gZnVuY3Rpb24gKGQsIGIpIHsNCiAgICAgICAgZXh0ZW5kU3RhdGljcyA9IE9iamVjdC5zZXRQcm90b3R5cGVPZiB8fA0KICAgICAgICAgICAgKHsgX19wcm90b19fOiBbXSB9IGluc3RhbmNlb2YgQXJyYXkgJiYgZnVuY3Rpb24gKGQsIGIpIHsgZC5fX3Byb3RvX18gPSBiOyB9KSB8fA0KICAgICAgICAgICAgZnVuY3Rpb24gKGQsIGIpIHsgZm9yICh2YXIgcCBpbiBiKSBpZiAoYi5oYXNPd25Qcm9wZXJ0eShwKSkgZFtwXSA9IGJbcF07IH07DQogICAgICAgIHJldHVybiBleHRlbmRTdGF0aWNzKGQsIGIpOw0KICAgIH07DQogICAgcmV0dXJuIGZ1bmN0aW9uIChkLCBiKSB7DQogICAgICAgIGV4dGVuZFN0YXRpY3MoZCwgYik7DQogICAgICAgIGZ1bmN0aW9uIF9fKCkgeyB0aGlzLmNvbnN0cnVjdG9yID0gZDsgfQ0KICAgICAgICBkLnByb3RvdHlwZSA9IGIgPT09IG51bGwgPyBPYmplY3QuY3JlYXRlKGIpIDogKF9fLnByb3RvdHlwZSA9IGIucHJvdG90eXBlLCBuZXcgX18oKSk7DQogICAgfTsNCn0pKCk7DQp2YXIgTWFpbk1lbnUgPSAvKiogQGNsYXNzICovIChmdW5jdGlvbiAoKSB7DQogICAgZnVuY3Rpb24gTWFpbk1lbnUoKSB7DQogICAgICAgIHRoaXMuRG9jdW1lbnRJRCA9ICJtYWluLW1lbnUiOw0KICAgICAgICB0aGlzLkhUTUxUYWcgPSAiTEkiOw0KICAgIH0NCiAgICBNYWluTWVudS5wcm90b3R5cGUuY3JlYXRlID0gZnVuY3Rpb24gKCkgew0KICAgICAgICBjb25zb2xlLmxvZyh0aGlzLkRvY3VtZW50SUQpOw0KICAgIH07DQogICAgcmV0dXJuIE1haW5NZW51Ow0KfSgpKTsNCnZhciBNYWluTWVudUl0ZW0gPSAvKiogQGNsYXNzICovIChmdW5jdGlvbiAoX3N1cGVyKSB7DQogICAgX19leHRlbmRzKE1haW5NZW51SXRlbSwgX3N1cGVyKTsNCiAgICBmdW5jdGlvbiBNYWluTWVudUl0ZW0oKSB7DQogICAgICAgIHJldHVybiBfc3VwZXIgIT09IG51bGwgJiYgX3N1cGVyLmFwcGx5KHRoaXMsIGFyZ3VtZW50cykgfHwgdGhpczsNCiAgICB9DQogICAgTWFpbk1lbnVJdGVtLnByb3RvdHlwZS5jcmVhdGUyID0gZnVuY3Rpb24gKCkgew0KICAgICAgICB2YXIgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQodGhpcy5IVE1MVGFnKTsNCiAgICAgICAgZWxlbWVudC5pbm5lclRleHQgPSB0aGlzLlZhbHVlOw0KICAgICAgICBjb25zb2xlLmxvZyhlbGVtZW50KTsNCiAgICB9Ow0KICAgIHJldHVybiBNYWluTWVudUl0ZW07DQp9KE1haW5NZW51KSk7DQpmdW5jdGlvbiBwYWdlUmVhZHkoKSB7DQogICAgdmFyIGl0ZW0gPSBuZXcgTWFpbk1lbnVJdGVtKCk7DQogICAgaXRlbS5WYWx1ZSA9ICJUZXN0IjsNCiAgICBpdGVtLmNyZWF0ZTIoKTsNCn0NCg==" } diff --git a/src/xepg.go b/src/xepg.go index 1cbbcee..61aaa17 100644 --- a/src/xepg.go +++ b/src/xepg.go @@ -555,19 +555,13 @@ func mapping() (err error) { if xepgChannel.XActive == false { // Values can be "-", therefore len <1 - if len(xepgChannel.XmltvFile) < 1 && len(xepgChannel.XmltvFile) < 1 { + if len(xepgChannel.XmltvFile) < 1 && len(xepgChannel.XMapping) < 1 { var tvgID = xepgChannel.TvgID // Set default for new Channel - if len(xepgChannel.DefaultMissingEPG) > 1 { - xepgChannel.XmltvFile = "xTeVe Dummy" - xepgChannel.XMapping = xepgChannel.DefaultMissingEPG - xepgChannel.XActive = true - } else { - xepgChannel.XmltvFile = "-" - xepgChannel.XMapping = "-" - } + xepgChannel.XmltvFile = "-" + xepgChannel.XMapping = "-" Data.XEPG.Channels[xepg] = xepgChannel @@ -652,6 +646,12 @@ func mapping() (err error) { xepgChannel.XActive = false } + if len(xepgChannel.DefaultMissingEPG) > 1 && xepgChannel.XActive == false { + xepgChannel.XmltvFile = "xTeVe Dummy" + xepgChannel.XMapping = xepgChannel.DefaultMissingEPG + xepgChannel.XActive = true + } + Data.XEPG.Channels[xepg] = xepgChannel } From e5042fbc65ec387728207b0ac00326fbaed79ae1 Mon Sep 17 00:00:00 2001 From: winguru Date: Wed, 23 Jun 2021 17:18:14 -0400 Subject: [PATCH 014/189] Fixed xTeVe Dummy mapping & Sorted HomeRunnerHD lineup.json channels --- src/hdhr.go | 12 ++++++++++- src/webUI.go | 56 ++++++++++++++++++++++++++-------------------------- src/xepg.go | 16 +++++++++++---- 3 files changed, 51 insertions(+), 33 deletions(-) diff --git a/src/hdhr.go b/src/hdhr.go index 830401a..8afb02e 100644 --- a/src/hdhr.go +++ b/src/hdhr.go @@ -5,6 +5,8 @@ import ( "encoding/json" "encoding/xml" "fmt" + "sort" + "strconv" ) func makeInteraceFromHDHR(content []byte, playlistName, id string) (channels []interface{}, err error) { @@ -169,9 +171,17 @@ func getLineup() (jsonContent []byte, err error) { } } - } + // Sort the lineup + // Have to use type assertions (https://golang.org/ref/spec#Type_assertions) to cast generic interface{} into LineupStream + sort.Slice(lineup, func(i, j int) bool { + var chanA, chanB float64 + chanA, _ = strconv.ParseFloat(lineup[i].(LineupStream).GuideNumber, 64) + chanB, _ = strconv.ParseFloat(lineup[j].(LineupStream).GuideNumber, 64) + return chanA < chanB + }) + jsonContent, err = json.MarshalIndent(lineup, "", " ") Data.Cache.PMS = nil diff --git a/src/webUI.go b/src/webUI.go index 3f90a30..216596d 100644 --- a/src/webUI.go +++ b/src/webUI.go @@ -4,46 +4,46 @@ var webUI = make(map[string]interface{}) func loadHTMLMap() { - webUI["html/img/filter.png"] = "iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAAAXNSR0IArs4c6QAAAAlwSFlzAAAsSwAALEsBpT2WqQAABCRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IlhNUCBDb3JlIDUuNC4wIj4KICAgPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIgogICAgICAgICAgICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgICAgICAgICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyI+CiAgICAgICAgIDx0aWZmOlJlc29sdXRpb25Vbml0PjI8L3RpZmY6UmVzb2x1dGlvblVuaXQ+CiAgICAgICAgIDx0aWZmOkNvbXByZXNzaW9uPjU8L3RpZmY6Q29tcHJlc3Npb24+CiAgICAgICAgIDx0aWZmOlhSZXNvbHV0aW9uPjI4ODwvdGlmZjpYUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6T3JpZW50YXRpb24+MTwvdGlmZjpPcmllbnRhdGlvbj4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+Mjg4PC90aWZmOllSZXNvbHV0aW9uPgogICAgICAgICA8ZXhpZjpQaXhlbFhEaW1lbnNpb24+NTA8L2V4aWY6UGl4ZWxYRGltZW5zaW9uPgogICAgICAgICA8ZXhpZjpDb2xvclNwYWNlPjE8L2V4aWY6Q29sb3JTcGFjZT4KICAgICAgICAgPGV4aWY6UGl4ZWxZRGltZW5zaW9uPjUwPC9leGlmOlBpeGVsWURpbWVuc2lvbj4KICAgICAgICAgPGRjOnN1YmplY3Q+CiAgICAgICAgICAgIDxyZGY6QmFnLz4KICAgICAgICAgPC9kYzpzdWJqZWN0PgogICAgICAgICA8eG1wOk1vZGlmeURhdGU+MjAxOC0wNy0yOFQxOTowNzo2OTwveG1wOk1vZGlmeURhdGU+CiAgICAgICAgIDx4bXA6Q3JlYXRvclRvb2w+UGl4ZWxtYXRvciAzLjM8L3htcDpDcmVhdG9yVG9vbD4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgIDwvcmRmOlJERj4KPC94OnhtcG1ldGE+Cs038OQAAAOISURBVGgF5ZpLSBVRGMfvvfmqCKKiKCqKtE3SQ8haJJm1ctPCZYHrFhXtohcUBLVsU1BRBJKLXpsSKs1aCL1oUUhvMgIloodZKmLZ72+OzNVx7jzOXGfqg/89Z875zv/7f35n7px7vanUP2JptzyGhoYKmK8GW0EZmA/mgW7wHrwDN0BTOp0epPVtxBBnLdgIVoE5YBboBR2gDTTA/5DWn0FeDPaBz8CLdeF0EBR5jYRvKbgABoAXa8Opwit/CudK8NoLs4PPM8ZyBsNnB/jpsD7X0C8cjgDXnaQkqkEPCGMSuGWivxxzx8OQj6xtpHWuPhPloHfEMWzTD0HN2GQY2xuW2Lb+/Fh+VaIQPLE5meh+gmSxFYz+BjBogtjGscfiH26Z2GmbNNltVQAIpwDdP6ZNO2iRYqTpZGhfgWUaiMC2w1kCzkbALcqLvDVvUyK6MW9HFES0b8BvsFwXEZi4F+iBtykCcjtlqf0igr52VJ1eqiIgzzdlrRIZfWfJd3SD8ZbqHvkB4XSDpJNB9V0VcX/cT4Ys/zEzSuSj/3WxW9GpRD7ETpZ/QcOJ6LyfdHugitxNehbob9G7lo4PXWBmQhPqQ/fsDOeUfjqNCU1Csi+TQ5+2luzc3yaRr6elevQZwhZr4bomYam0U41yabYqov5hvSTMjlp6RyuiAarSTLPZmox5246+lVREx/isiuh6NxhUJwF2yEpCWu1bK8WEsjyRgCSa0XrVrjNra2mC7TWD5ilYAuJoA4jSlnppF5dVEU3g0ENTD4b3nsZiZsfGJuGqj8qY+CINGqP2GLZCJ+HjtpblxAJ9k3cPrLfGJrnVUaSCarxw0jFua1lOLNBerANx+byya6IkLM2uLZWpAl6/Mcc1EjvjKtLrJNLqI5HnjfQ+bsVeteb0g2y/t7hGvd7CNjenOL8OkJ40KtOdTF+Cl/nV6Mkf4gxocI9vZPYLLKs9iQrqRIACcM2IXGeSboYrg+rztY5ARaDJWUeo0W+sXudLTFhnApaAW6FkZy/+yuXasLoCrSfwVHAnW0+gK93YawKJMLUIAdNAKwhqnSxcYUpPKB6EBE2mg7VR///EX24jybTQerXnOC70FyVP3gjTPXPTQyaP8NFPNeJrCNTPP667JKOq6VNo/A2hes5ccUjmEmPmDoD5+FMgWCcA+3FG57QJP//kQ1PgGBIOToEDgUn+t4V/AJeGknwARIKLAAAAAElFTkSuQmCC" - webUI["html/img/log.png"] = "iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAAAXNSR0IArs4c6QAAAAlwSFlzAAAsSwAALEsBpT2WqQAABCRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IlhNUCBDb3JlIDUuNC4wIj4KICAgPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIgogICAgICAgICAgICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgICAgICAgICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyI+CiAgICAgICAgIDx0aWZmOlJlc29sdXRpb25Vbml0PjI8L3RpZmY6UmVzb2x1dGlvblVuaXQ+CiAgICAgICAgIDx0aWZmOkNvbXByZXNzaW9uPjU8L3RpZmY6Q29tcHJlc3Npb24+CiAgICAgICAgIDx0aWZmOlhSZXNvbHV0aW9uPjI4ODwvdGlmZjpYUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6T3JpZW50YXRpb24+MTwvdGlmZjpPcmllbnRhdGlvbj4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+Mjg4PC90aWZmOllSZXNvbHV0aW9uPgogICAgICAgICA8ZXhpZjpQaXhlbFhEaW1lbnNpb24+NTA8L2V4aWY6UGl4ZWxYRGltZW5zaW9uPgogICAgICAgICA8ZXhpZjpDb2xvclNwYWNlPjE8L2V4aWY6Q29sb3JTcGFjZT4KICAgICAgICAgPGV4aWY6UGl4ZWxZRGltZW5zaW9uPjUwPC9leGlmOlBpeGVsWURpbWVuc2lvbj4KICAgICAgICAgPGRjOnN1YmplY3Q+CiAgICAgICAgICAgIDxyZGY6QmFnLz4KICAgICAgICAgPC9kYzpzdWJqZWN0PgogICAgICAgICA8eG1wOk1vZGlmeURhdGU+MjAxOC0xMC0xNFQxMToxMDo0MjwveG1wOk1vZGlmeURhdGU+CiAgICAgICAgIDx4bXA6Q3JlYXRvclRvb2w+UGl4ZWxtYXRvciAzLjM8L3htcDpDcmVhdG9yVG9vbD4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgIDwvcmRmOlJERj4KPC94OnhtcG1ldGE+CkP32mEAAANASURBVGgF7ZlPiE1RHMffw1AYhiL5k1HEijJiYaFZiHoyFspW2RFRkkSZGgtFWJIwi9FYmo0VOywkKTbKgjSlWcifRCPX51dv6s2d33md77vvXjfmV9859/7u93x/v98959x73p1KRbAkSargAhgDH0E/qIYkuHYEvAPGvwbmNOEerXM/0Q6BRSFuZj/ix0DaDnvCkGppIucDAe4OhzvkcUO+GaELAf8ux7/b8Zlrr+Pvc3zm6nX8NccXdKmFLHaUPJ/Ruhyu5zNap8Nd6PiCLrUQTyi0Rjy/5/M0Zd+smB7M32XwtgBr07aC6yfSTs7XO77OALfH4VbgHsD/HLytVquJx4nyIdQFBsHftscksK5Z0sGhpuN8Or4Aa5sJFHjtO7G2MjKvvZjN1sglOpSlCMt9LrDZ4S4Hd0Qg24vrK+gAZbPtjMqTdFKhEdkIsYxFWP720JlioUK6pzDL41jtpRIqxOOWxecuB3fhRGT8E85YBK8VygI6GSRTCxlH3TaJgyw4O2678aCxO94LbNPovYDdmOrUukIBN/MqwjJEOwGPOHR31W4VONVCLEBR9lAJpBbSrYhn5K5R+quFnGUOr1ICtMIlxjz6XVb6qot9JeKvCPSAdlQJJHDtd8hOIN0wtRDLxx6Ntr0ulalTq1TJNyYzXUjj3SjD8X87Iva7uR8s5+2bi6FtX1oOgi8g2tSn1g2yPx+t3gIR/c90s1+C1vuO/YkxdWrdjxFtE2dE0VELWaqIZ+QuUfqrhZxmyKUvgEoyE1xizOR4YOI8plXXyAZEbYsyTJvXFsUW+x6wGUSbWogJ237rZHSEgojq1CooLT3MdCH6Pcu3xz8zIq0s9lvc2+sgz6dWH/rnQPB/jlybZGoh99hCHJqk0P6TD0jaI/4b7dVYeXVq2bemokyKpRZiHwWKMimWWshxhryjoEpOKXHUNbIN8WcUc5s2r8Vue7l9oAaiTS3EhDeB6EUYnUlGojq1MobLr3uokB/5hcys7OYWKuRl5nD5Cbi5uYXw0ntPHoay2S8Seuol5RZSJ0r/n/DEc/BdrN9kTZrH7BkwDspgwyQxW6uggU3nHnAXvAG/QZE2SrARsL8hJffwDxM0mNDPvT8IAAAAAElFTkSuQmCC" - webUI["html/js/base_ts.js"] = "dmFyIFNFUlZFUiA9IG5ldyBPYmplY3QoKTsNCnZhciBCVUxLX0VESVQgPSBmYWxzZTsNCnZhciBDT0xVTU5fVE9fU09SVDsNCnZhciBTRUFSQ0hfTUFQUElORyA9IG5ldyBPYmplY3QoKTsNCnZhciBVTkRPID0gbmV3IE9iamVjdCgpOw0KdmFyIFNFUlZFUl9DT05ORUNUSU9OID0gZmFsc2U7DQp2YXIgV1NfQVZBSUxBQkxFID0gZmFsc2U7DQovLyBNZW7DvA0KdmFyIG1lbnVJdGVtcyA9IG5ldyBBcnJheSgpOw0KbWVudUl0ZW1zLnB1c2gobmV3IE1haW5NZW51SXRlbSgicGxheWxpc3QiLCAie3subWFpbk1lbnUuaXRlbS5wbGF5bGlzdH19IiwgIm0zdS5wbmciLCAie3subWFpbk1lbnUuaGVhZGxpbmUucGxheWxpc3R9fSIpKTsNCi8vbWVudUl0ZW1zLnB1c2gobmV3IE1haW5NZW51SXRlbSgicG1zSUQiLCAie3subWFpbk1lbnUuaXRlbS5wbXNJRH19IiwgIm51bWJlci5wbmciLCAie3subWFpbk1lbnUuaGVhZGxpbmUucG1zSUR9fSIpKQ0KbWVudUl0ZW1zLnB1c2gobmV3IE1haW5NZW51SXRlbSgiZmlsdGVyIiwgInt7Lm1haW5NZW51Lml0ZW0uZmlsdGVyfX0iLCAiZmlsdGVyLnBuZyIsICJ7ey5tYWluTWVudS5oZWFkbGluZS5maWx0ZXJ9fSIpKTsNCm1lbnVJdGVtcy5wdXNoKG5ldyBNYWluTWVudUl0ZW0oInhtbHR2IiwgInt7Lm1haW5NZW51Lml0ZW0ueG1sdHZ9fSIsICJ4bWx0di5wbmciLCAie3subWFpbk1lbnUuaGVhZGxpbmUueG1sdHZ9fSIpKTsNCm1lbnVJdGVtcy5wdXNoKG5ldyBNYWluTWVudUl0ZW0oIm1hcHBpbmciLCAie3subWFpbk1lbnUuaXRlbS5tYXBwaW5nfX0iLCAibWFwcGluZy5wbmciLCAie3subWFpbk1lbnUuaGVhZGxpbmUubWFwcGluZ319IikpOw0KbWVudUl0ZW1zLnB1c2gobmV3IE1haW5NZW51SXRlbSgidXNlcnMiLCAie3subWFpbk1lbnUuaXRlbS51c2Vyc319IiwgInVzZXJzLnBuZyIsICJ7ey5tYWluTWVudS5oZWFkbGluZS51c2Vyc319IikpOw0KbWVudUl0ZW1zLnB1c2gobmV3IE1haW5NZW51SXRlbSgic2V0dGluZ3MiLCAie3subWFpbk1lbnUuaXRlbS5zZXR0aW5nc319IiwgInNldHRpbmdzLnBuZyIsICJ7ey5tYWluTWVudS5oZWFkbGluZS5zZXR0aW5nc319IikpOw0KbWVudUl0ZW1zLnB1c2gobmV3IE1haW5NZW51SXRlbSgibG9nIiwgInt7Lm1haW5NZW51Lml0ZW0ubG9nfX0iLCAibG9nLnBuZyIsICJ7ey5tYWluTWVudS5oZWFkbGluZS5sb2d9fSIpKTsNCm1lbnVJdGVtcy5wdXNoKG5ldyBNYWluTWVudUl0ZW0oImxvZ291dCIsICJ7ey5tYWluTWVudS5pdGVtLmxvZ291dH19IiwgImxvZ291dC5wbmciLCAie3subWFpbk1lbnUuaGVhZGxpbmUubG9nb3V0fX0iKSk7DQovLyBLYXRlZ29yaWVuIGbDvHIgZGllIEVpbnN0ZWxsdW5nZW4NCnZhciBzZXR0aW5nc0NhdGVnb3J5ID0gbmV3IEFycmF5KCk7DQpzZXR0aW5nc0NhdGVnb3J5LnB1c2gobmV3IFNldHRpbmdzQ2F0ZWdvcnlJdGVtKCJ7ey5zZXR0aW5ncy5jYXRlZ29yeS5nZW5lcmFsfX0iLCAieHRldmVBdXRvVXBkYXRlLHR1bmVyLGVwZ1NvdXJjZSxhcGkiKSk7DQpzZXR0aW5nc0NhdGVnb3J5LnB1c2gobmV3IFNldHRpbmdzQ2F0ZWdvcnlJdGVtKCJ7ey5zZXR0aW5ncy5jYXRlZ29yeS5maWxlc319IiwgInVwZGF0ZSxmaWxlcy51cGRhdGUsdGVtcC5wYXRoLGNhY2hlLmltYWdlcyx4ZXBnLnJlcGxhY2UubWlzc2luZy5pbWFnZXMiKSk7DQpzZXR0aW5nc0NhdGVnb3J5LnB1c2gobmV3IFNldHRpbmdzQ2F0ZWdvcnlJdGVtKCJ7ey5zZXR0aW5ncy5jYXRlZ29yeS5zdHJlYW1pbmd9fSIsICJidWZmZXIsdWRweHksYnVmZmVyLnNpemUua2IsYnVmZmVyLnRpbWVvdXQsdXNlci5hZ2VudCxmZm1wZWcucGF0aCxmZm1wZWcub3B0aW9ucyx2bGMucGF0aCx2bGMub3B0aW9ucyIpKTsNCnNldHRpbmdzQ2F0ZWdvcnkucHVzaChuZXcgU2V0dGluZ3NDYXRlZ29yeUl0ZW0oInt7LnNldHRpbmdzLmNhdGVnb3J5LmJhY2t1cH19IiwgImJhY2t1cC5wYXRoLGJhY2t1cC5rZWVwIikpOw0Kc2V0dGluZ3NDYXRlZ29yeS5wdXNoKG5ldyBTZXR0aW5nc0NhdGVnb3J5SXRlbSgie3suc2V0dGluZ3MuY2F0ZWdvcnkuYXV0aGVudGljYXRpb259fSIsICJhdXRoZW50aWNhdGlvbi53ZWIsYXV0aGVudGljYXRpb24ucG1zLGF1dGhlbnRpY2F0aW9uLm0zdSxhdXRoZW50aWNhdGlvbi54bWwsYXV0aGVudGljYXRpb24uYXBpIikpOw0KZnVuY3Rpb24gc2hvd1BvcFVwRWxlbWVudChlbG0pIHsNCiAgICB2YXIgYWxsRWxlbWVudHMgPSBuZXcgQXJyYXkoInBvcHVwLWN1c3RvbSIpOw0KICAgIGZvciAodmFyIGkgPSAwOyBpIDwgYWxsRWxlbWVudHMubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgc2hvd0VsZW1lbnQoYWxsRWxlbWVudHNbaV0sIGZhbHNlKTsNCiAgICB9DQogICAgc2hvd0VsZW1lbnQoZWxtLCB0cnVlKTsNCiAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsNCiAgICAgICAgc2hvd0VsZW1lbnQoInBvcHVwIiwgdHJ1ZSk7DQogICAgfSwgMTApOw0KICAgIHJldHVybjsNCn0NCmZ1bmN0aW9uIHNob3dFbGVtZW50KGVsbUlELCB0eXBlKSB7DQogICAgdmFyIGNzc0NsYXNzOw0KICAgIHN3aXRjaCAodHlwZSkgew0KICAgICAgICBjYXNlIHRydWU6DQogICAgICAgICAgICBjc3NDbGFzcyA9ICJibG9jayI7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSBmYWxzZToNCiAgICAgICAgICAgIGNzc0NsYXNzID0gIm5vbmUiOw0KICAgICAgICAgICAgYnJlYWs7DQogICAgfQ0KICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGVsbUlEKS5jbGFzc05hbWUgPSBjc3NDbGFzczsNCn0NCmZ1bmN0aW9uIGNoYW5nZUJ1dHRvbkFjdGlvbihlbGVtZW50LCBidXR0b25JRCwgYXR0cmlidXRlKSB7DQogICAgdmFyIHZhbHVlID0gZWxlbWVudC5vcHRpb25zW2VsZW1lbnQuc2VsZWN0ZWRJbmRleF0udmFsdWU7DQogICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoYnV0dG9uSUQpLnNldEF0dHJpYnV0ZShhdHRyaWJ1dGUsIHZhbHVlKTsNCn0NCmZ1bmN0aW9uIGdldExvY2FsRGF0YShkYXRhVHlwZSwgaWQpIHsNCiAgICBsZXQgZGF0YSA9IHt9Ow0KICAgIHN3aXRjaCAoZGF0YVR5cGUpIHsNCiAgICAgICAgY2FzZSAibTN1IjoNCiAgICAgICAgICAgIGRhdGEgPSBTRVJWRVJbInNldHRpbmdzIl1bImZpbGVzIl1bZGF0YVR5cGVdW2lkXTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJoZGhyIjoNCiAgICAgICAgICAgIGRhdGEgPSBTRVJWRVJbInNldHRpbmdzIl1bImZpbGVzIl1bZGF0YVR5cGVdW2lkXTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJmaWx0ZXIiOg0KICAgICAgICBjYXNlICJjdXN0b20tZmlsdGVyIjoNCiAgICAgICAgY2FzZSAiZ3JvdXAtdGl0bGUiOg0KICAgICAgICAgICAgaWYgKGlkID09IC0xKSB7DQogICAgICAgICAgICAgICAgZGF0YVsiYWN0aXZlIl0gPSB0cnVlOw0KICAgICAgICAgICAgICAgIGRhdGFbImNhc2VTZW5zaXRpdmUiXSA9IGZhbHNlOw0KICAgICAgICAgICAgICAgIGRhdGFbImRlc2NyaXB0aW9uIl0gPSAiIjsNCiAgICAgICAgICAgICAgICBkYXRhWyJleGNsdWRlIl0gPSAiIjsNCiAgICAgICAgICAgICAgICBkYXRhWyJmaWx0ZXIiXSA9ICIiOw0KICAgICAgICAgICAgICAgIGRhdGFbImluY2x1ZGUiXSA9ICIiOw0KICAgICAgICAgICAgICAgIGRhdGFbIm5hbWUiXSA9ICIiOw0KICAgICAgICAgICAgICAgIGRhdGFbInR5cGUiXSA9ICJncm91cC10aXRsZSI7DQogICAgICAgICAgICAgICAgZGF0YVsicHJlc2VydmVNYXBwaW5nIl0gPSB0cnVlOw0KICAgICAgICAgICAgICAgIGRhdGFbInN0YXJ0aW5nQ2hhbm5lbCJdID0gU0VSVkVSWyJzZXR0aW5ncyJdWyJtYXBwaW5nLmZpcnN0LmNoYW5uZWwiXTsNCiAgICAgICAgICAgICAgICBkYXRhWyJkZWZhdWx0TWlzc2luZ0VQRyJdID0gIi0iOw0KICAgICAgICAgICAgICAgIFNFUlZFUlsic2V0dGluZ3MiXVsiZmlsdGVyIl1baWRdID0gZGF0YTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGRhdGEgPSBTRVJWRVJbInNldHRpbmdzIl1bImZpbHRlciJdW2lkXTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJ4bWx0diI6DQogICAgICAgICAgICBkYXRhID0gU0VSVkVSWyJzZXR0aW5ncyJdWyJmaWxlcyJdW2RhdGFUeXBlXVtpZF07DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSAidXNlcnMiOg0KICAgICAgICAgICAgZGF0YSA9IFNFUlZFUlsidXNlcnMiXVtpZF1bImRhdGEiXTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJtYXBwaW5nIjoNCiAgICAgICAgICAgIGRhdGEgPSBTRVJWRVJbInhlcGciXVsiZXBnTWFwcGluZyJdW2lkXTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJtM3VHcm91cHMiOg0KICAgICAgICAgICAgZGF0YSA9IFNFUlZFUlsiZGF0YSJdWyJwbGF5bGlzdCJdWyJtM3UiXVsiZ3JvdXBzIl07DQogICAgICAgICAgICBicmVhazsNCiAgICB9DQogICAgcmV0dXJuIGRhdGE7DQp9DQpmdW5jdGlvbiBnZXRPYmpLZXlzKG9iaikgew0KICAgIHZhciBrZXlzID0gbmV3IEFycmF5KCk7DQogICAgZm9yICh2YXIgaSBpbiBvYmopIHsNCiAgICAgICAgaWYgKG9iai5oYXNPd25Qcm9wZXJ0eShpKSkgew0KICAgICAgICAgICAga2V5cy5wdXNoKGkpOw0KICAgICAgICB9DQogICAgfQ0KICAgIHJldHVybiBrZXlzOw0KfQ0KZnVuY3Rpb24gZ2V0QWxsU2VsZWN0ZWRDaGFubmVscygpIHsNCiAgICB2YXIgY2hhbm5lbHMgPSBuZXcgQXJyYXkoKTsNCiAgICBpZiAoQlVMS19FRElUID09IGZhbHNlKSB7DQogICAgICAgIHJldHVybiBjaGFubmVsczsNCiAgICB9DQogICAgdmFyIHRycyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb250ZW50X3RhYmxlIikuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlRSIik7DQogICAgZm9yICh2YXIgaSA9IDE7IGkgPCB0cnMubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgaWYgKHRyc1tpXS5zdHlsZS5kaXNwbGF5ICE9ICJub25lIikgew0KICAgICAgICAgICAgaWYgKHRyc1tpXS5maXJzdENoaWxkLmZpcnN0Q2hpbGQuY2hlY2tlZCA9PSB0cnVlKSB7DQogICAgICAgICAgICAgICAgY2hhbm5lbHMucHVzaCh0cnNbaV0uaWQpOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQogICAgfQ0KICAgIHJldHVybiBjaGFubmVsczsNCn0NCmZ1bmN0aW9uIHNlbGVjdEFsbENoYW5uZWxzKCkgew0KICAgIHZhciBidWxrID0gZmFsc2U7DQogICAgdmFyIHRycyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb250ZW50X3RhYmxlIikuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlRSIik7DQogICAgaWYgKHRyc1swXS5maXJzdENoaWxkLmZpcnN0Q2hpbGQuY2hlY2tlZCA9PSB0cnVlKSB7DQogICAgICAgIGJ1bGsgPSB0cnVlOw0KICAgIH0NCiAgICBmb3IgKHZhciBpID0gMTsgaSA8IHRycy5sZW5ndGg7IGkrKykgew0KICAgICAgICBpZiAodHJzW2ldLnN0eWxlLmRpc3BsYXkgIT0gIm5vbmUiKSB7DQogICAgICAgICAgICBzd2l0Y2ggKGJ1bGspIHsNCiAgICAgICAgICAgICAgICBjYXNlIHRydWU6DQogICAgICAgICAgICAgICAgICAgIHRyc1tpXS5maXJzdENoaWxkLmZpcnN0Q2hpbGQuY2hlY2tlZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgZmFsc2U6DQogICAgICAgICAgICAgICAgICAgIHRyc1tpXS5maXJzdENoaWxkLmZpcnN0Q2hpbGQuY2hlY2tlZCA9IGZhbHNlOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KICAgIH0NCiAgICByZXR1cm47DQp9DQpmdW5jdGlvbiBidWxrRWRpdCgpIHsNCiAgICBCVUxLX0VESVQgPSAhQlVMS19FRElUOw0KICAgIHZhciBjbGFzc05hbWU7DQogICAgdmFyIHJvd3MgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCJidWxrIik7DQogICAgc3dpdGNoIChCVUxLX0VESVQpIHsNCiAgICAgICAgY2FzZSB0cnVlOg0KICAgICAgICAgICAgY2xhc3NOYW1lID0gImJ1bGsgc2hvd0J1bGsiOw0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGNhc2UgZmFsc2U6DQogICAgICAgICAgICBjbGFzc05hbWUgPSAiYnVsayBoaWRlQnVsayI7DQogICAgICAgICAgICBicmVhazsNCiAgICB9DQogICAgZm9yICh2YXIgaSA9IDA7IGkgPCByb3dzLmxlbmd0aDsgaSsrKSB7DQogICAgICAgIHJvd3NbaV0uY2xhc3NOYW1lID0gY2xhc3NOYW1lOw0KICAgICAgICByb3dzW2ldLmNoZWNrZWQgPSBmYWxzZTsNCiAgICB9DQogICAgcmV0dXJuOw0KfQ0KZnVuY3Rpb24gc29ydFRhYmxlKGNvbHVtbikgew0KICAgIC8vY29uc29sZS5sb2coY29sdW1tKTsNCiAgICBpZiAoY29sdW1uID09IENPTFVNTl9UT19TT1JUKSB7DQogICAgICAgIHJldHVybjsNCiAgICB9DQogICAgdmFyIHRhYmxlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnRlbnRfdGFibGUiKTsNCiAgICB2YXIgdGFibGVIZWFkID0gdGFibGUuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlRSIilbMF07DQogICAgdmFyIHRhYmxlSXRlbXMgPSB0YWJsZUhlYWQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlREIik7DQogICAgdmFyIHNvcnRPYmogPSBuZXcgT2JqZWN0KCk7DQogICAgdmFyIHgsIHhWYWx1ZTsNCiAgICB2YXIgdGFibGVIZWFkZXI7DQogICAgdmFyIHNvcnRCeVN0cmluZyA9IGZhbHNlOw0KICAgIGlmIChjb2x1bW4gPiAwICYmIENPTFVNTl9UT19TT1JUID4gMCkgew0KICAgICAgICB0YWJsZUl0ZW1zW0NPTFVNTl9UT19TT1JUXS5jbGFzc05hbWUgPSAicG9pbnRlciI7DQogICAgICAgIHRhYmxlSXRlbXNbY29sdW1uXS5jbGFzc05hbWUgPSAic29ydFRoaXMiOw0KICAgIH0NCiAgICBDT0xVTU5fVE9fU09SVCA9IGNvbHVtbjsNCiAgICB2YXIgcm93cyA9IHRhYmxlLnJvd3M7DQogICAgaWYgKHJvd3NbMV0gIT0gdW5kZWZpbmVkKSB7DQogICAgICAgIHRhYmxlSGVhZGVyID0gcm93c1swXTsNCiAgICAgICAgeCA9IHJvd3NbMV0uZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlREIilbY29sdW1uXTsNCiAgICAgICAgZm9yIChpID0gMTsgaSA8IHJvd3MubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgICAgIHggPSByb3dzW2ldLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJURCIpW2NvbHVtbl07DQogICAgICAgICAgICBzd2l0Y2ggKHguY2hpbGROb2Rlc1swXS50YWdOYW1lLnRvTG93ZXJDYXNlKCkpIHsNCiAgICAgICAgICAgICAgICBjYXNlICJpbnB1dCI6DQogICAgICAgICAgICAgICAgICAgIHhWYWx1ZSA9IHguZ2V0RWxlbWVudHNCeVRhZ05hbWUoIklOUFVUIilbMF0udmFsdWUudG9Mb3dlckNhc2UoKTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAicCI6DQogICAgICAgICAgICAgICAgICAgIHhWYWx1ZSA9IHguZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlAiKVswXS5pbm5lclRleHQudG9Mb3dlckNhc2UoKTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgZGVmYXVsdDogY29uc29sZS5sb2coeC5jaGlsZE5vZGVzWzBdLnRhZ05hbWUpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgaWYgKHhWYWx1ZSA9PSAiIiB8fCB4VmFsdWUgPT0gTmFOKSB7DQogICAgICAgICAgICAgICAgeFZhbHVlID0gaTsNCiAgICAgICAgICAgICAgICBzb3J0T2JqW2ldID0gcm93c1tpXTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgICAgIHN3aXRjaCAoaXNOYU4oeFZhbHVlKSkgew0KICAgICAgICAgICAgICAgICAgICBjYXNlIGZhbHNlOg0KICAgICAgICAgICAgICAgICAgICAgICAgeFZhbHVlID0gcGFyc2VGbG9hdCh4VmFsdWUpOw0KICAgICAgICAgICAgICAgICAgICAgICAgc29ydE9ialt4VmFsdWVdID0gcm93c1tpXTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgICAgICBjYXNlIHRydWU6DQogICAgICAgICAgICAgICAgICAgICAgICBzb3J0QnlTdHJpbmcgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgc29ydE9ialt4VmFsdWUudG9Mb3dlckNhc2UoKSArIGldID0gcm93c1tpXTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KICAgICAgICB3aGlsZSAodGFibGUuZmlyc3RDaGlsZCkgew0KICAgICAgICAgICAgdGFibGUucmVtb3ZlQ2hpbGQodGFibGUuZmlyc3RDaGlsZCk7DQogICAgICAgIH0NCiAgICAgICAgdmFyIHNvcnRWYWx1ZXMgPSBnZXRPYmpLZXlzKHNvcnRPYmopOw0KICAgICAgICBpZiAoc29ydEJ5U3RyaW5nID09IHRydWUpIHsNCiAgICAgICAgICAgIHNvcnRWYWx1ZXMuc29ydCgpOw0KICAgICAgICAgICAgY29uc29sZS5sb2coc29ydFZhbHVlcyk7DQogICAgICAgIH0NCiAgICAgICAgZWxzZSB7DQogICAgICAgICAgICBmdW5jdGlvbiBzb3J0RmxvYXQoYSwgYikgew0KICAgICAgICAgICAgICAgIHJldHVybiBhIC0gYjsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIHNvcnRWYWx1ZXMuc29ydChzb3J0RmxvYXQpOw0KICAgICAgICB9DQogICAgICAgIHRhYmxlLmFwcGVuZENoaWxkKHRhYmxlSGVhZGVyKTsNCiAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBzb3J0VmFsdWVzLmxlbmd0aDsgaSsrKSB7DQogICAgICAgICAgICB0YWJsZS5hcHBlbmRDaGlsZChzb3J0T2JqW3NvcnRWYWx1ZXNbaV1dKTsNCiAgICAgICAgfQ0KICAgIH0NCiAgICByZXR1cm47DQp9DQpmdW5jdGlvbiBjcmVhdGVTZWFyY2hPYmooKSB7DQogICAgU0VBUkNIX01BUFBJTkcgPSBuZXcgT2JqZWN0KCk7DQogICAgdmFyIGRhdGEgPSBTRVJWRVJbInhlcGciXVsiZXBnTWFwcGluZyJdOw0KICAgIHZhciBjaGFubmVscyA9IGdldE9iaktleXMoZGF0YSk7DQogICAgdmFyIGNoYW5uZWxLZXlzID0gWyJ4LWFjdGl2ZSIsICJ4LWNoYW5uZWxJRCIsICJ4LW5hbWUiLCAiX2ZpbGUubTN1Lm5hbWUiLCAieC1ncm91cC10aXRsZSIsICJ4LXhtbHR2LWZpbGUiXTsNCiAgICBjaGFubmVscy5mb3JFYWNoKGlkID0+IHsNCiAgICAgICAgY2hhbm5lbEtleXMuZm9yRWFjaChrZXkgPT4gew0KICAgICAgICAgICAgaWYgKGtleSA9PSAieC1hY3RpdmUiKSB7DQogICAgICAgICAgICAgICAgc3dpdGNoIChkYXRhW2lkXVtrZXldKSB7DQogICAgICAgICAgICAgICAgICAgIGNhc2UgdHJ1ZToNCiAgICAgICAgICAgICAgICAgICAgICAgIFNFQVJDSF9NQVBQSU5HW2lkXSA9ICJvbmxpbmUgIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgICAgICBjYXNlIGZhbHNlOg0KICAgICAgICAgICAgICAgICAgICAgICAgU0VBUkNIX01BUFBJTkdbaWRdID0gIm9mZmxpbmUgIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgICAgIGlmIChrZXkgPT0gIngteG1sdHYtZmlsZSIpIHsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHhtbHR2RmlsZSA9IGdldFZhbHVlRnJvbVByb3ZpZGVyRmlsZShkYXRhW2lkXVtrZXldLCAieG1sdHYiLCAibmFtZSIpOw0KICAgICAgICAgICAgICAgICAgICBpZiAoeG1sdHZGaWxlICE9IHVuZGVmaW5lZCkgew0KICAgICAgICAgICAgICAgICAgICAgICAgU0VBUkNIX01BUFBJTkdbaWRdID0gU0VBUkNIX01BUFBJTkdbaWRdICsgeG1sdHZGaWxlICsgIiAiOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgICAgICAgICBTRUFSQ0hfTUFQUElOR1tpZF0gPSBTRUFSQ0hfTUFQUElOR1tpZF0gKyBkYXRhW2lkXVtrZXldICsgIiAiOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0NCiAgICAgICAgfSk7DQogICAgfSk7DQogICAgcmV0dXJuOw0KfQ0KZnVuY3Rpb24gc2VhcmNoSW5NYXBwaW5nKCkgew0KICAgIHZhciBzZWFyY2hWYWx1ZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzZWFyY2hNYXBwaW5nIikudmFsdWU7DQogICAgdmFyIHRycyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb250ZW50X3RhYmxlIikuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlRSIik7DQogICAgZm9yICh2YXIgaSA9IDE7IGkgPCB0cnMubGVuZ3RoOyArK2kpIHsNCiAgICAgICAgdmFyIGlkID0gdHJzW2ldLmdldEF0dHJpYnV0ZSgiaWQiKTsNCiAgICAgICAgdmFyIGVsZW1lbnQgPSBTRUFSQ0hfTUFQUElOR1tpZF07DQogICAgICAgIHN3aXRjaCAoZWxlbWVudC50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKHNlYXJjaFZhbHVlLnRvTG93ZXJDYXNlKCkpKSB7DQogICAgICAgICAgICBjYXNlIHRydWU6DQogICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpLnN0eWxlLmRpc3BsYXkgPSAiIjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgZmFsc2U6DQogICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpLnN0eWxlLmRpc3BsYXkgPSAibm9uZSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIH0NCiAgICB9DQogICAgcmV0dXJuOw0KfQ0KZnVuY3Rpb24gY2FsY3VsYXRlV3JhcHBlckhlaWdodCgpIHsNCiAgICBpZiAoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImJveC13cmFwcGVyIikpIHsNCiAgICAgICAgdmFyIGVsbSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJib3gtd3JhcHBlciIpOw0KICAgICAgICB2YXIgZGl2cyA9IG5ldyBBcnJheSgibXlTdHJlYW1zQm94IiwgImNsaWVudEluZm8iLCAiY29udGVudCIpOw0KICAgICAgICB2YXIgZWxlbWVudHNIZWlnaHQgPSAwIC0gZWxtLm9mZnNldEhlaWdodDsNCiAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBkaXZzLmxlbmd0aDsgaSsrKSB7DQogICAgICAgICAgICBlbGVtZW50c0hlaWdodCA9IGVsZW1lbnRzSGVpZ2h0ICsgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoZGl2c1tpXSkub2Zmc2V0SGVpZ2h0Ow0KICAgICAgICB9DQogICAgICAgIGVsbS5zdHlsZS5oZWlnaHQgPSB3aW5kb3cuaW5uZXJIZWlnaHQgLSBlbGVtZW50c0hlaWdodCArICJweCI7DQogICAgfQ0KICAgIHJldHVybjsNCn0NCmZ1bmN0aW9uIGNoYW5nZUNoYW5uZWxOdW1iZXIoZWxlbWVudCkgew0KICAgIHZhciBkYklEID0gZWxlbWVudC5wYXJlbnROb2RlLnBhcmVudE5vZGUuaWQ7DQogICAgdmFyIG5ld051bWJlciA9IHBhcnNlRmxvYXQoZWxlbWVudC52YWx1ZSk7DQogICAgdmFyIGNoYW5uZWxOdW1iZXJzID0gW107DQogICAgdmFyIGRhdGEgPSBTRVJWRVJbInhlcGciXVsiZXBnTWFwcGluZyJdOw0KICAgIHZhciBjaGFubmVscyA9IGdldE9iaktleXMoZGF0YSk7DQogICAgaWYgKGlzTmFOKG5ld051bWJlcikpIHsNCiAgICAgICAgYWxlcnQoInt7LmFsZXJ0LmludmFsaWRDaGFubmVsTnVtYmVyfX0iKTsNCiAgICAgICAgcmV0dXJuOw0KICAgIH0NCiAgICBjaGFubmVscy5mb3JFYWNoKGlkID0+IHsNCiAgICAgICAgdmFyIGNoYW5uZWxOdW1iZXIgPSBwYXJzZUZsb2F0KGRhdGFbaWRdWyJ4LWNoYW5uZWxJRCJdKTsNCiAgICAgICAgY2hhbm5lbE51bWJlcnMucHVzaChjaGFubmVsTnVtYmVyKTsNCiAgICB9KTsNCiAgICBmb3IgKHZhciBpID0gMDsgaSA8IGNoYW5uZWxOdW1iZXJzLmxlbmd0aDsgaSsrKSB7DQogICAgICAgIGlmIChjaGFubmVsTnVtYmVycy5pbmRleE9mKG5ld051bWJlcikgPT0gLTEpIHsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICB9DQogICAgICAgIGlmIChNYXRoLmZsb29yKG5ld051bWJlcikgPT0gbmV3TnVtYmVyKSB7DQogICAgICAgICAgICBuZXdOdW1iZXIgPSBuZXdOdW1iZXIgKyAxOw0KICAgICAgICB9DQogICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgbmV3TnVtYmVyID0gbmV3TnVtYmVyICsgMC4xOw0KICAgICAgICAgICAgbmV3TnVtYmVyLnRvRml4ZWQoMSk7DQogICAgICAgICAgICBuZXdOdW1iZXIgPSBNYXRoLnJvdW5kKG5ld051bWJlciAqIDEwKSAvIDEwOw0KICAgICAgICB9DQogICAgfQ0KICAgIGRhdGFbZGJJRF1bIngtY2hhbm5lbElEIl0gPSBuZXdOdW1iZXIudG9TdHJpbmcoKTsNCiAgICBlbGVtZW50LnZhbHVlID0gbmV3TnVtYmVyOw0KICAgIGNvbnNvbGUubG9nKGRhdGFbZGJJRF1bIngtY2hhbm5lbElEIl0pOw0KICAgIGlmIChDT0xVTU5fVE9fU09SVCA9PSAxKSB7DQogICAgICAgIENPTFVNTl9UT19TT1JUID0gLTE7DQogICAgICAgIHNvcnRUYWJsZSgxKTsNCiAgICB9DQogICAgcmV0dXJuOw0KfQ0KZnVuY3Rpb24gYmFja3VwKCkgew0KICAgIHZhciBkYXRhID0gbmV3IE9iamVjdCgpOw0KICAgIGNvbnNvbGUubG9nKCJCYWNrdXAgZGF0YSIpOw0KICAgIHZhciBjbWQgPSAieHRldmVCYWNrdXAiOw0KICAgIGNvbnNvbGUubG9nKCJTRU5EIFRPIFNFUlZFUiIpOw0KICAgIGNvbnNvbGUubG9nKGRhdGEpOw0KICAgIHZhciBzZXJ2ZXIgPSBuZXcgU2VydmVyKGNtZCk7DQogICAgc2VydmVyLnJlcXVlc3QoZGF0YSk7DQogICAgcmV0dXJuOw0KfQ0KZnVuY3Rpb24gdG9nZ2xlQ2hhbm5lbFN0YXR1cyhpZCkgew0KICAgIHZhciBlbGVtZW50Ow0KICAgIHZhciBzdGF0dXM7DQogICAgaWYgKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJhY3RpdmUiKSkgew0KICAgICAgICB2YXIgY2hlY2tib3ggPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYWN0aXZlIik7DQogICAgICAgIHN0YXR1cyA9IChjaGVja2JveCkuY2hlY2tlZDsNCiAgICB9DQogICAgdmFyIGlkcyA9IGdldEFsbFNlbGVjdGVkQ2hhbm5lbHMoKTsNCiAgICBpZiAoaWRzLmxlbmd0aCA9PSAwKSB7DQogICAgICAgIGlkcy5wdXNoKGlkKTsNCiAgICB9DQogICAgaWRzLmZvckVhY2goaWQgPT4gew0KICAgICAgICB2YXIgY2hhbm5lbCA9IFNFUlZFUlsieGVwZyJdWyJlcGdNYXBwaW5nIl1baWRdOw0KICAgICAgICBjaGFubmVsWyJ4LWFjdGl2ZSJdID0gc3RhdHVzOw0KICAgICAgICBzd2l0Y2ggKGNoYW5uZWxbIngtYWN0aXZlIl0pIHsNCiAgICAgICAgICAgIGNhc2UgdHJ1ZToNCiAgICAgICAgICAgICAgICBpZiAoY2hhbm5lbFsieC14bWx0di1maWxlIl0gPT0gIi0iIHx8IGNoYW5uZWxbIngtbWFwcGluZyJdID09ICItIikgew0KICAgICAgICAgICAgICAgICAgICBpZiAoQlVMS19FRElUID09IGZhbHNlKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBhbGVydChjaGFubmVsWyJ4LW5hbWUiXSArICI6IE1pc3NpbmcgWE1MVFYgZmlsZSAvIGNoYW5uZWwiKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNoZWNrYm94LmNoZWNrZWQgPSBmYWxzZTsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBjaGFubmVsWyJ4LWFjdGl2ZSJdID0gZmFsc2U7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSBmYWxzZToNCiAgICAgICAgICAgICAgICAvLyBjb2RlLi4uDQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIH0NCiAgICAgICAgaWYgKGNoYW5uZWxbIngtYWN0aXZlIl0gPT0gZmFsc2UpIHsNCiAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5jbGFzc05hbWUgPSAibm90QWN0aXZlRVBHIjsNCiAgICAgICAgfQ0KICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5jbGFzc05hbWUgPSAiYWN0aXZlRVBHIjsNCiAgICAgICAgfQ0KICAgIH0pOw0KfQ0KZnVuY3Rpb24gcmVzdG9yZSgpIHsNCiAgICBpZiAoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3VwbG9hZCcpKSB7DQogICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd1cGxvYWQnKS5yZW1vdmUoKTsNCiAgICB9DQogICAgdmFyIHJlc3RvcmUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJJTlBVVCIpOw0KICAgIHJlc3RvcmUuc2V0QXR0cmlidXRlKCJ0eXBlIiwgImZpbGUiKTsNCiAgICByZXN0b3JlLnNldEF0dHJpYnV0ZSgiY2xhc3MiLCAibm90VmlzaWJsZSIpOw0KICAgIHJlc3RvcmUuc2V0QXR0cmlidXRlKCJuYW1lIiwgIiIpOw0KICAgIHJlc3RvcmUuaWQgPSAidXBsb2FkIjsNCiAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHJlc3RvcmUpOw0KICAgIHJlc3RvcmUuY2xpY2soKTsNCiAgICByZXN0b3JlLm9uY2hhbmdlID0gZnVuY3Rpb24gKCkgew0KICAgICAgICB2YXIgZmlsZW5hbWUgPSByZXN0b3JlLmZpbGVzWzBdLm5hbWU7DQogICAgICAgIHZhciBjaGVjayA9IGNvbmZpcm0oIkZpbGU6ICIgKyBmaWxlbmFtZSArICJcbnt7LmNvbmZpcm0ucmVzdG9yZX19Iik7DQogICAgICAgIGlmIChjaGVjayA9PSB0cnVlKSB7DQogICAgICAgICAgICB2YXIgcmVhZGVyID0gbmV3IEZpbGVSZWFkZXIoKTsNCiAgICAgICAgICAgIHZhciBmaWxlID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignaW5wdXRbdHlwZT1maWxlXScpLmZpbGVzWzBdOw0KICAgICAgICAgICAgaWYgKGZpbGUpIHsNCiAgICAgICAgICAgICAgICByZWFkZXIucmVhZEFzRGF0YVVSTChmaWxlKTsNCiAgICAgICAgICAgICAgICByZWFkZXIub25sb2FkID0gZnVuY3Rpb24gKCkgew0KICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhyZWFkZXIucmVzdWx0KTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGRhdGEgPSBuZXcgT2JqZWN0KCk7DQogICAgICAgICAgICAgICAgICAgIHZhciBjbWQgPSAieHRldmVSZXN0b3JlIjsNCiAgICAgICAgICAgICAgICAgICAgZGF0YVsiYmFzZTY0Il0gPSByZWFkZXIucmVzdWx0Ow0KICAgICAgICAgICAgICAgICAgICB2YXIgc2VydmVyID0gbmV3IFNlcnZlcihjbWQpOw0KICAgICAgICAgICAgICAgICAgICBzZXJ2ZXIucmVxdWVzdChkYXRhKTsNCiAgICAgICAgICAgICAgICB9Ow0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgZWxzZSB7DQogICAgICAgICAgICAgICAgYWxlcnQoIkZpbGUgY291bGQgbm90IGJlIGxvYWRlZCIpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgcmVzdG9yZS5yZW1vdmUoKTsNCiAgICAgICAgICAgIHJldHVybjsNCiAgICAgICAgfQ0KICAgIH07DQogICAgcmV0dXJuOw0KfQ0KZnVuY3Rpb24gdXBsb2FkTG9nbygpIHsNCiAgICBpZiAoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3VwbG9hZCcpKSB7DQogICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd1cGxvYWQnKS5yZW1vdmUoKTsNCiAgICB9DQogICAgdmFyIHVwbG9hZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIklOUFVUIik7DQogICAgdXBsb2FkLnNldEF0dHJpYnV0ZSgidHlwZSIsICJmaWxlIik7DQogICAgdXBsb2FkLnNldEF0dHJpYnV0ZSgiY2xhc3MiLCAibm90VmlzaWJsZSIpOw0KICAgIHVwbG9hZC5zZXRBdHRyaWJ1dGUoIm5hbWUiLCAiIik7DQogICAgdXBsb2FkLmlkID0gInVwbG9hZCI7DQogICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZCh1cGxvYWQpOw0KICAgIHVwbG9hZC5jbGljaygpOw0KICAgIHVwbG9hZC5vbmJsdXIgPSBmdW5jdGlvbiAoKSB7DQogICAgICAgIGFsZXJ0KCk7DQogICAgfTsNCiAgICB1cGxvYWQub25jaGFuZ2UgPSBmdW5jdGlvbiAoKSB7DQogICAgICAgIHZhciBmaWxlbmFtZSA9IHVwbG9hZC5maWxlc1swXS5uYW1lOw0KICAgICAgICB2YXIgcmVhZGVyID0gbmV3IEZpbGVSZWFkZXIoKTsNCiAgICAgICAgdmFyIGZpbGUgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCdpbnB1dFt0eXBlPWZpbGVdJykuZmlsZXNbMF07DQogICAgICAgIGlmIChmaWxlKSB7DQogICAgICAgICAgICByZWFkZXIucmVhZEFzRGF0YVVSTChmaWxlKTsNCiAgICAgICAgICAgIHJlYWRlci5vbmxvYWQgPSBmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICAgICAgY29uc29sZS5sb2cocmVhZGVyLnJlc3VsdCk7DQogICAgICAgICAgICAgICAgdmFyIGRhdGEgPSBuZXcgT2JqZWN0KCk7DQogICAgICAgICAgICAgICAgdmFyIGNtZCA9ICJ1cGxvYWRMb2dvIjsNCiAgICAgICAgICAgICAgICBkYXRhWyJiYXNlNjQiXSA9IHJlYWRlci5yZXN1bHQ7DQogICAgICAgICAgICAgICAgZGF0YVsiZmlsZW5hbWUiXSA9IGZpbGUubmFtZTsNCiAgICAgICAgICAgICAgICB2YXIgc2VydmVyID0gbmV3IFNlcnZlcihjbWQpOw0KICAgICAgICAgICAgICAgIHNlcnZlci5yZXF1ZXN0KGRhdGEpOw0KICAgICAgICAgICAgICAgIHZhciB1cGRhdGVMb2dvID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3VwZGF0ZS1pY29uJyk7DQogICAgICAgICAgICAgICAgdXBkYXRlTG9nby5jaGVja2VkID0gZmFsc2U7DQogICAgICAgICAgICAgICAgdXBkYXRlTG9nby5jbGFzc05hbWUgPSAiY2hhbmdlZCI7DQogICAgICAgICAgICB9Ow0KICAgICAgICB9DQogICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgYWxlcnQoIkZpbGUgY291bGQgbm90IGJlIGxvYWRlZCIpOw0KICAgICAgICB9DQogICAgICAgIHVwbG9hZC5yZW1vdmUoKTsNCiAgICAgICAgcmV0dXJuOw0KICAgIH07DQp9DQpmdW5jdGlvbiBjaGVja1VuZG8oa2V5KSB7DQogICAgc3dpdGNoIChrZXkpIHsNCiAgICAgICAgY2FzZSAiZXBnTWFwcGluZyI6DQogICAgICAgICAgICBpZiAoVU5ETy5oYXNPd25Qcm9wZXJ0eShrZXkpKSB7DQogICAgICAgICAgICAgICAgU0VSVkVSWyJ4ZXBnIl1ba2V5XSA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkoVU5ET1trZXldKSk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICBVTkRPW2tleV0gPSBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KFNFUlZFUlsieGVwZyJdW2tleV0pKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBkZWZhdWx0Og0KICAgICAgICAgICAgYnJlYWs7DQogICAgfQ0KICAgIHJldHVybjsNCn0NCmZ1bmN0aW9uIHNvcnRTZWxlY3QoZWxlbSkgew0KICAgIHZhciB0bXBBcnkgPSBbXTsNCiAgICB2YXIgc2VsZWN0ZWRWYWx1ZSA9IGVsZW1bZWxlbS5zZWxlY3RlZEluZGV4XS52YWx1ZTsNCiAgICBmb3IgKHZhciBpID0gMDsgaSA8IGVsZW0ub3B0aW9ucy5sZW5ndGg7IGkrKykNCiAgICAgICAgdG1wQXJ5LnB1c2goZWxlbS5vcHRpb25zW2ldKTsNCiAgICB0bXBBcnkuc29ydChmdW5jdGlvbiAoYSwgYikgeyByZXR1cm4gKGEudGV4dCA8IGIudGV4dCkgPyAtMSA6IDE7IH0pOw0KICAgIHdoaWxlIChlbGVtLm9wdGlvbnMubGVuZ3RoID4gMCkNCiAgICAgICAgZWxlbS5vcHRpb25zWzBdID0gbnVsbDsNCiAgICB2YXIgbmV3U2VsZWN0ZWRJbmRleCA9IDA7DQogICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0bXBBcnkubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgZWxlbS5vcHRpb25zW2ldID0gdG1wQXJ5W2ldOw0KICAgICAgICBpZiAoZWxlbS5vcHRpb25zW2ldLnZhbHVlID09IHNlbGVjdGVkVmFsdWUpDQogICAgICAgICAgICBuZXdTZWxlY3RlZEluZGV4ID0gaTsNCiAgICB9DQogICAgZWxlbS5zZWxlY3RlZEluZGV4ID0gbmV3U2VsZWN0ZWRJbmRleDsgLy8gU2V0IG5ldyBzZWxlY3RlZCBpbmRleCBhZnRlciBzb3J0aW5nDQogICAgcmV0dXJuOw0KfQ0KZnVuY3Rpb24gdXBkYXRlTG9nKCkgew0KICAgIGNvbnNvbGUubG9nKCJUT0tFTiIpOw0KICAgIHZhciBzZXJ2ZXIgPSBuZXcgU2VydmVyKCJ1cGRhdGVMb2ciKTsNCiAgICBzZXJ2ZXIucmVxdWVzdChuZXcgT2JqZWN0KCkpOw0KfQ0K" - webUI["html/configuration.html"] = "PCFkb2N0eXBlIGh0bWw+DQo8aHRtbD4NCiAgPGhlYWQ+DQogICAgPG1ldGEgY2hhcnNldD0idXRmLTgiPg0KICAgIDxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgsIGluaXRpYWwtc2NhbGU9MS4wIiAvPiANCiAgICA8dGl0bGU+eFRlVmU8L3RpdGxlPg0KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iY3NzL3NjcmVlbi5jc3MiIHR5cGU9InRleHQvY3NzIj4NCiAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9ImNzcy9iYXNlLmNzcyIgdHlwZT0idGV4dC9jc3MiPg0KICAgIDxzY3JpcHQgbGFuZ3VhZ2U9ImphdmFzY3JpcHQiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJqcy9jb25maWd1cmF0aW9uX3RzLmpzIj48L3NjcmlwdD4NCiAgICA8c2NyaXB0IGxhbmd1YWdlPSJqYXZhc2NyaXB0IiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ianMvbmV0d29ya190cy5qcyI+PC9zY3JpcHQ+DQogICAgPHNjcmlwdCBsYW5ndWFnZT0iamF2YXNjcmlwdCIgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9ImpzL21lbnVfdHMuanMiPjwvc2NyaXB0Pg0KICAgIDxzY3JpcHQgbGFuZ3VhZ2U9ImphdmFzY3JpcHQiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJqcy9zZXR0aW5nc190cy5qcyI+PC9zY3JpcHQ+DQogICAgPHNjcmlwdCBsYW5ndWFnZT0iamF2YXNjcmlwdCIgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9ImpzL2Jhc2VfdHMuanMiPjwvc2NyaXB0Pg0KICA8L2hlYWQ+DQoNCiAgICA8Ym9keSBvbmxvYWQ9ImphdmFzY3JpcHQ6IHJlYWR5Rm9yQ29uZmlndXJhdGlvbigwKTsiPg0KICAgICAgICAgIA0KICAgICAgPGRpdiBpZD0ibG9hZGluZyIgY2xhc3M9ImJsb2NrIj4NCiAgICAgICAgPGRpdiBjbGFzcz0ibG9hZGVyIj48L2Rpdj4NCiAgICAgIDwvZGl2Pg0KDQogICAgICA8ZGl2IGlkPSJoZWFkZXIiIGNsYXNzPSJpbWdDZW50ZXIiPjwvZGl2Pg0KICAgICAgPGRpdiBpZD0iYm94Ij4NCiAgICAgICAgDQogICAgICAgIDx0YWJsZSBpZD0iY2xpZW50SW5mbyIgY2xhc3M9InZpc2libGUiPg0KICAgICAgICAgIDx0cj4NCiAgICAgICAgICAgIDx0ZCBjbGFzcz0idGRLZXkiPlZlcnNpb246PC90ZD4NCiAgICAgICAgICAgIDx0ZCBpZD0idmVyc2lvbiIgY2xhc3M9InRkVmFsIj4mbmJzcDs8L3RkPg0KICAgICAgICAgICAgPHRkIGNsYXNzPSJ0ZEtleSI+T1M6PC90ZD4NCiAgICAgICAgICAgIDx0ZCBpZD0ib3MiIGNsYXNzPSJ0ZFZhbCI+Jm5ic3A7PC90ZD4NCiAgICAgICAgICA8L3RyPg0KICAgICAgICAgIDx0cj4NCiAgICAgICAgICAgIDx0ZCBjbGFzcz0idGRLZXkiPlVVSUQ6PC90ZD4NCiAgICAgICAgICAgIDx0ZCBpZD0idXVpZCIgY2xhc3M9InRkVmFsIj4mbmJzcDs8L3RkPg0KICAgICAgICAgICAgPHRkIGNsYXNzPSJ0ZEtleSI+QXJjaDo8L3RkPg0KICAgICAgICAgICAgPHRkIGlkPSJhcmNoIiBjbGFzcz0idGRWYWwiPiZuYnNwOzwvdGQ+DQogICAgICAgICAgPC90cj4NCiAgICAgICAgICA8dHI+DQogICAgICAgICAgICA8dGQgY2xhc3M9InRkS2V5Ij5TdHJlYW1zOjwvdGQ+DQogICAgICAgICAgICA8dGQgaWQ9InN0cmVhbXMiIGNsYXNzPSJ0ZFZhbCI+Jm5ic3A7PC90ZD4NCiAgICAgICAgICAgIDx0ZCBjbGFzcz0idGRLZXkiPkRWUjo8L3RkPg0KICAgICAgICAgICAgPHRkIGlkPSJEVlIiIGNsYXNzPSJ0ZFZhbCI+Jm5ic3A7PC90ZD4NCiAgICAgICAgICA8L3RyPg0KICAgICAgICA8L3RhYmxlPg0KICAgICAgICANCiAgICAgICAgPGRpdiBpZD0iaGVhZGxpbmUiPg0KICAgICAgICAgIDxoMSBpZD0iaGVhZC10ZXh0IiBjbGFzcz0iY2VudGVyIj5Db25maWd1cmF0aW9uPC9oMT4gICAgICANCiAgICAgICAgPC9kaXY+DQogICAgICAgIDxwIGlkPSJlcnIiIGNsYXNzPSJlcnJvck1zZyBjZW50ZXIiPjwvcD4gICANCiAgICAgICAgPGRpdiBpZD0iY29udGVudCI+DQogICAgICAgICAgICANCiAgICAgICAgPC9kaXY+DQogICAgICAgIDxkaXYgaWQ9ImJveC1mb290ZXIiPg0KICAgICAgICAgIDxpbnB1dCBpZD0ibmV4dCIgY2xhc3M9IiIgdHlwZT0iYnV0dG9uIiBuYW1lPSJuZXh0IiB2YWx1ZT0iTmV4dCIgb25jbGljaz0iamF2YXNjcmlwdDogc2F2ZVdpemFyZCgpOyI+DQogICAgICAgIDwvZGl2Pg0KICAgICAgPC9kaXY+DQogICAgPC9ib2R5Pg0KPC9odG1sPg==" + webUI["html/css/base.css"] = "KiB7DQogIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTsNCiAgLW1vei1hcHBlYXJhbmNlOiBub25lOw0KICAtbXMtYXBwZWFyYW5jZTogbm9uZTsNCiAgZm9udC1mYW1pbHk6ICJBcmlhbCIsIHNhbnMtc2VyaWY7DQogIGxldHRlci1zcGFjaW5nOiAycHg7IA0KfQ0KDQovKg0KOjotd2Via2l0LXNjcm9sbGJhciB7IA0KICAgIGRpc3BsYXk6IG5vbmU7IA0KfQ0KKi8NCg0KOjotd2Via2l0LXNjcm9sbGJhciB7DQogIHdpZHRoOiAxMnB4Ow0KICBoZWlnaHQ6IDEycHg7DQp9DQoNCiANCjo6LXdlYmtpdC1zY3JvbGxiYXItdHJhY2sgew0KICAtd2Via2l0LWJveC1zaGFkb3c6IGluc2V0IDAgMCA2cHggcmdiYSgwLDAsMCwwLjMpOyANCiAgYm9yZGVyLXJhZGl1czogNXB4Ow0KICAgIA0KfQ0KIA0KOjotd2Via2l0LXNjcm9sbGJhci10aHVtYiB7DQogIGJvcmRlci1yYWRpdXM6IDVweDsNCiAgLXdlYmtpdC1ib3gtc2hhZG93OiBpbnNldCAwIDAgNnB4IHJnYmEoMCwgMCwgMCwwLjYpOyANCiAgYmFja2dyb3VuZC1jb2xvcjogIzQ0NDsNCn0NCg0KOjotd2Via2l0LXNjcm9sbGJhci10aHVtYjpob3ZlciB7DQogIGJhY2tncm91bmQ6ICMzMzM7IA0KfQ0KDQo6Oi13ZWJraXQtc2Nyb2xsYmFyLWNvcm5lciB7IA0KICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsgDQp9DQoNCmEgew0KICBjb2xvcjogIzAwRTZGRjsNCn0NCg0KaHRtbCwgYm9keSB7DQogIGNvbG9yOiAjZmZmOw0KICBtYXJnaW46IDBweCBhdXRvOw0KICBoZWlnaHQ6IDEwMCU7DQogIGZvbnQtc2l6ZTogMTRweDsNCn0NCg0KaDIgew0KICBmb250LXNpemU6IDI0cHg7DQogIGxldHRlci1zcGFjaW5nOiAycHg7DQp9DQoNCmgzIHsNCiAgZm9udC1zaXplOiAyMnB4Ow0KICBsZXR0ZXItc3BhY2luZzogMXB4Ow0KfQ0KDQpoNCB7DQogIGZvbnQtc2l6ZTogMjBweDsNCiAgbGV0dGVyLXNwYWNpbmc6IDFweDsNCiAgbGluZS1oZWlnaHQ6IDEuNWVtOw0KDQp9DQoNCmg1IHsNCiAgZm9udC1zaXplOiAxNnB4Ow0KICBsZXR0ZXItc3BhY2luZzogMXB4Ow0KICBsaW5lLWhlaWdodDogMS4yZW07DQogIG1hcmdpbjogMjVweCAwcHggMTBweCAwcHg7DQp9DQoNCmhyIHsNCiAgYm9yZGVyOiAwOw0KICBoZWlnaHQ6IDFweDsNCiAgYmFja2dyb3VuZDogIzMzMzsNCiAgbWFyZ2luOiAxMHB4IDBweDsNCn0NCg0KcCB7DQogIG1hcmdpbjogMnB4Ow0KICBwYWRkaW5nOiAycHggNXB4Ow0KfQ0KDQpwcmUgew0KICBtYXJnaW46IDBweCAwcHggNXB4IDBweDsNCiAgZm9udC1zaXplOiAxMnB4Ow0KICBjb2xvcjogI2RkZDsNCiAgbGV0dGVyLXNwYWNpbmc6IDFweDsNCiAgd2hpdGUtc3BhY2U6IHByZS13cmFwOw0KICBmb250LWZhbWlseTogbW9ub3NwYWNlOyANCiAgZm9udC1zaXplOiAxMnB4OyANCiAgZm9udC1zdHlsZTogbm9ybWFsOyANCiAgZm9udC12YXJpYW50OiBub3JtYWw7IA0KICBsaW5lLWhlaWdodDogMS42ZW07IA0KfQ0KDQpsYWJlbCB7DQogIG1hcmdpbi1ib3R0b206IDIwcHg7DQogIGRpc3BsYXk6IGJsb2NrOw0KfQ0KDQpsaSB7DQogIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTsNCiAgYmFja2dyb3VuZC1jb2xvcjogIzExMTsNCiAgcGFkZGluZzogMTBweCAyMHB4Ow0KICBjdXJzb3I6IHBvaW50ZXI7DQogIGJvcmRlci1sZWZ0OiBzb2xpZCAycHggIzExMTsNCiAgdHJhbnNpdGlvbjogYWxsIDAuMzsNCn0NCg0KbGk6aG92ZXIgew0KICBib3JkZXItY29sb3I6ICMwMEU2RkYNCn0NCg0Kc2VsZWN0IHsNCiAgY3Vyc29yOiBwb2ludGVyOw0KICB3aWR0aDogY2FsYygxMDAlICsgMnB4KTsNCiAgYm9yZGVyOiBzb2xpZCAwcHggIzAwRTZGRjsNCiAgYm9yZGVyLXJhZGl1czogMHB4Ow0KICBvdXRsaW5lOiBub25lOw0KICBjb2xvcjogI2ZmZjsNCiAgcGFkZGluZzogOXB4IDEwcHg7DQogIGRpc3BsYXk6YmxvY2s7DQogIGJhY2tncm91bmQtY29sb3I6ICMzMzM7DQogIGZvbnQtc2l6ZTogMTRweDsNCiAgbWFyZ2luOiA1cHggMHB4IDVweCAwcHg7DQp9DQoNCnNlbGVjdDpmb2N1cyB7DQogIG91dGxpbmU6IG5vbmU7DQp9DQoNCmlucHV0IHsNCiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lOw0KICBtYXJnaW46IDVweCAwcHg7DQogIHBhZGRpbmc6IDIuNXB4IDEwcHg7DQogIG91dGxpbmU6IG5vbmU7DQogIGZvbnQtc2l6ZTogMTRweDsNCn0NCg0KaW5wdXRbdHlwZT1idXR0b25dLCBpbnB1dFt0eXBlPXN1Ym1pdF0gew0KICBjdXJzb3I6IHBvaW50ZXI7DQogIGJhY2tncm91bmQtY29sb3I6ICMwMDA7DQogIG1hcmdpbjogMTBweCAxMHB4Ow0KICBwYWRkaW5nOiAxMHB4IDI1cHg7DQogIGJvcmRlcjogc29saWQgMHB4Ow0KICBib3JkZXItY29sb3I6ICMwMDA7DQogIGJvcmRlci1yYWRpdXM6IDNweDsNCiAgb3V0bGluZTogbm9uZTsNCiAgY29sb3I6ICNmZmY7DQp9DQoNCmlucHV0W3R5cGU9YnV0dG9uXTpmb2N1cyB7IA0KICAgb3V0bGluZTogbm9uZTsNCn0NCg0KaW5wdXRbdHlwZT1idXR0b25dOmhvdmVyIHsNCiAgYmFja2dyb3VuZC1jb2xvcjogIzAwRTZGRjsNCiAgY29sb3I6ICMwMDA7DQp9DQoNCmlucHV0W3R5cGU9YnV0dG9uXTpob3Zlci5kZWxldGUgIHsNCiAgYmFja2dyb3VuZC1jb2xvcjogcmVkOw0KICBjb2xvcjogI2ZmZjsNCn0NCg0KaW5wdXRbdHlwZT10ZXh0XSwgaW5wdXRbdHlwZT1zZWFyY2hdLCBpbnB1dFt0eXBlPXBhc3N3b3JkXSB7DQogIGNvbG9yOiAjZmZmOw0KICB3aWR0aDogLXdlYmtpdC1jYWxjKDEwMCUgLSAwcHgpOw0KICB3aWR0aDogLW1vei1jYWxjKDEwMCUgLSAwcHgpOw0KICB3aWR0aDogY2FsYygxMDAlIC0gMHB4KTsNCiAgb3V0bGluZTogbm9uZTsNCiAgYm9yZGVyOiBzb2xpZCAxcHggdHJhbnNwYXJlbnQ7DQogIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50Ow0KICBib3JkZXItYm90dG9tLWNvbG9yOiAjNTU1Ow0KICBib3JkZXItcmFkaXVzOiAwcHg7DQogIHBhZGRpbmc6IDhweCAxMHB4Ow0KfQ0KDQppbnB1dFt0eXBlPSJjaGVja2JveCJdIHsNCiAgYm9yZGVyOiBzb2xpZCAxcHggIzAwRTZGRjsNCiAgYmFja2dyb3VuZC1jb2xvcjogIzMzMzsNCiAgaGVpZ2h0OiAyNXB4Ow0KICB3aWR0aDogMjVweDsNCiAgY3Vyc29yOiBwb2ludGVyOw0KICAvKg0KICAtd2Via2l0LWFwcGVhcmFuY2U6IGNoZWNrYm94Ow0KICAqLw0KfQ0KDQppbnB1dFt0eXBlPSJjaGVja2JveCJdOmNoZWNrZWQgew0KICBjb2xvcjogI2ZmZjsNCiAgYmFja2dyb3VuZC1jb2xvcjogIzAwRTZGRjsNCiAgLypkaXNwbGF5OiBpbmxpbmUtYmxvY2s7Ki8NCn0NCg0KaW5wdXRbdHlwZT0iY2hlY2tib3giXTpiZWZvcmUgew0KICBwb3NpdGlvbjogaW5pdGlhbDsNCiAgbGVmdDogMHB4Ow0KICBtYXJnaW4tbGVmdDogLTRweDsNCiAgY29udGVudDogIiAiOw0KfQ0KDQppbnB1dFt0eXBlPSJjaGVja2JveCJdOmNoZWNrZWQ6YmVmb3JlIHsNCiAgcG9zaXRpb246IGluaXRpYWw7DQogIGxlZnQ6IDBweDsNCiAgbWFyZ2luLWxlZnQ6IC0zcHg7DQogIGNvbnRlbnQ6ICLinJMiOw0KICBjb2xvcjogIzAwMDsNCn0NCg0KDQppbnB1dFt0eXBlPWJ1dHRvbl0uY2FuY2VsIHsNCiAgDQogIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50Ow0KICBib3JkZXItY29sb3I6IHJlZDsNCn0NCg0KaW5wdXRbdHlwZT1idXR0b25dLnNhdmV7DQogIGJhY2tncm91bmQtY29sb3I6ICMxMTE7DQogIGZsb2F0OiByaWdodDsNCn0NCg0KDQppbnB1dFt0eXBlPWJ1dHRvbl0uYmxhY2ssIGlucHV0W3R5cGU9c3VibWl0XS5ibGFja3sNCiAgYmFja2dyb3VuZC1jb2xvcjogIzAwMDsNCiAgYm9yZGVyLWNvbG9yOiAjMDAwOw0KfQ0KDQppbnB1dFt0eXBlPWJ1dHRvbl0uY2VudGVyew0KICBtYXJnaW4tcmlnaHQ6IGF1dG87DQogIG1hcmdpbi1sZWZ0OiBhdXRvOw0KICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDAwOw0KICBib3JkZXItY29sb3I6ICMwMDA7DQp9DQoNCi5wb2ludGVyIHsNCiAgY3Vyc29yOiBwb2ludGVyOw0KfQ0KDQoucG9pbnRlcjpob3ZlciB7DQogIGNvbG9yOiAjMDBFNkZGOw0KICBjdXJzb3I6IHBvaW50ZXI7DQp9DQoNCi5zb3J0VGhpcyB7DQogIGNvbG9yOiAjMDBFNkZGOw0KfQ0KDQoudzQwcHggew0KICBtYXgtd2lkdGg6IDQwcHg7DQp9DQoNCi53NTBweCB7DQogIG1heC13aWR0aDogNTBweDsNCn0NCg0KLnc4MHB4IHsNCiAgbWF4LXdpZHRoOiA4MHB4Ow0KfQ0KDQoudzE1MHB4IHsNCiAgbWF4LXdpZHRoOiAxNTBweDsNCn0NCg0KLncyMDBweCB7DQogIG1heC13aWR0aDogMjAwcHg7DQogIG1pbi13aWR0aDogMTAwcHg7DQogIHdpZHRoOiAyMDBweDsNCiAgb3ZlcmZsb3cteDogaGlkZGVuOw0KICB3aGl0ZS1zcGFjZTogbm93cmFwOw0KICBvdmVyZmxvdzogaGlkZGVuOw0KICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsNCn0NCg0KLnczMDBweCB7DQogIG1heC13aWR0aDogMzAwcHg7DQp9DQoNCi53MjIwcHggew0KICBtYXgtd2lkdGg6IDIyMHB4Ow0KICBjdXJzb3I6IGFsaWFzOw0KfQ0KDQouZm9vdGVyIHsNCiAgZm9udC1zaXplOiAxMHB4Ow0KfQ0KDQouY2VudGVyIHsNCiAgdGV4dC1hbGlnbjogY2VudGVyOw0KfQ0KDQouc2NyZWVuTG9nSGlkZGVuIHsNCiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMHB4LCAtMTEwcHgpOw0KfQ0KDQouYm9yZGVyU3BhY2Ugew0KICBtYXJnaW4tYm90dG9tOiAzMHB4Ow0KfQ0KDQouYmxvY2sgew0KDQp9DQoNCi5ub25lIHsNCiAgZGlzcGxheTogbm9uZTsNCn0NCg0KDQoubm90VmlzaWJsZSB7DQogIGhlaWdodDogMHB4Ow0KICBkaXNwbGF5OiBub25lOw0KICBvcGFjaXR5OiAwOw0KICBib3JkZXItYm90dG9tOiAjMDAwIHNvbGlkIDBweDsNCiAgDQp9DQoNCi52aXNpYmxlIHsNCiAgb3BhY2l0eTogMTsNCiAgZGlzcGxheTogYmxvY2s7DQogIGJvcmRlci1ib3R0b206ICM0NDQgc29saWQgMXB4OyANCiAgcGFkZGluZzogMTBweDsNCn0NCg0KLmZsb2F0UmlnaHQgew0KICBmbG9hdDogcmlnaHQ7DQp9DQoNCi5mbG9hdExlZnQgew0KICBmbG9hdDogbGVmdDsNCn0NCg0KLm1lbnUtYWN0aXZlIHsNCiAgYmFja2dyb3VuZC1jb2xvcjogIzAwRTZGRjsNCn0NCg0KLm1lbnUtbm90QWN0aXZlIHsNCiAgDQp9DQoNCiNicmFuY2ggew0KICBkaXNwbGF5OiB0YWJsZTsNCiAgbWFyZ2luOiBhdXRvOw0KICBjb2xvcjogcmVkOw0KfQ0KDQojaW50ZXJhY3Rpb24gew0KICBtYXJnaW4tYm90dG9tOiAxMDBweDsNCiAgdGV4dC1hbGlnbjogY2VudGVyOw0KICBib3JkZXItYm90dG9tOiBzb2xpZCAwcHggIzc3NzsNCn0NCg0KDQouaGFsZiB7DQogIGRpc3BsYXk6IGJsb2NrOw0KICB3aWR0aDogNDUlOw0KfQ0KDQoubWVudSB7DQogIGJvcmRlcjogc29saWQgMXB4ICMwMEU2RkY7DQp9DQoNCi5pbmZvTXNnIHsNCiAgY29sb3I6ICNhYWE7DQp9DQoNCi5lcnJvck1zZyB7DQogIGNvbG9yOiByZWQ7DQp9DQoNCi53YXJuaW5nTXNnIHsNCiAgY29sb3I6IHllbGxvdzsNCn0NCg0KLmRlYnVnTXNnIHsNCiAgY29sb3I6IG1hZ2VudGE7DQp9DQoNCi5OZXdzLCAuTW92aWUsIC5TZXJpZXMsIC5TcG9ydHMsIC5LaWRzIHsNCiAgYm9yZGVyLWxlZnQ6IHNvbGlkIDJweA0KfQ0KDQouTmV3cyB7DQogIGJvcmRlci1jb2xvcjogdG9tYXRvDQp9DQoNCi5Nb3ZpZSB7DQogIGJvcmRlci1jb2xvcjogcm95YWxibHVlOw0KfQ0KDQouU2VyaWVzIHsNCiAgYm9yZGVyLWNvbG9yOiBnb2xkOw0KfQ0KDQouU3BvcnRzIHsNCiAgYm9yZGVyLWNvbG9yOiB5ZWxsb3dncmVlbjsNCn0NCg0KLktpZHMgew0KICBib3JkZXItY29sb3I6IG1lZGl1bXB1cnBsZTsNCn0NCg0KLyogTG9hZGluZyAqLw0KI2xvYWRpbmcgew0KICBsZWZ0OiAwcHg7DQogIHRvcDogMHB4Ow0KICB6LWluZGV4OiAxMDAwMDsNCiAgcG9zaXRpb246IGFic29sdXRlOw0KICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsMCwwLCAwLjgpOw0KICBtYXJnaW46IGF1dG87DQogIHdpZHRoOiAxMDAlOw0KICBoZWlnaHQ6IDEwMCU7DQp9DQoNCg0KLmxvYWRlciB7DQogIGJvcmRlcjogNXB4IHNvbGlkIHRyYW5zcGFyZW50Ow0KICBib3JkZXItcmFkaXVzOiA1MCU7DQogIGJvcmRlci10b3A6IDVweCBzb2xpZCAjMDBFNkZGOw0KICBib3JkZXItYm90dG9tOiA1cHggc29saWQgIzAwRTZGRjsNCiAgd2lkdGg6IDUwcHg7DQogIGhlaWdodDogNTBweDsNCiAgLXdlYmtpdC1hbmltYXRpb246IHNwaW4gMS4ycyBsaW5lYXIgaW5maW5pdGU7DQogIGFuaW1hdGlvbjogc3BpbiAxLjJzIGxpbmVhciBpbmZpbml0ZTsNCg0KICBwb3NpdGlvbjogZml4ZWQ7DQogIG1hcmdpbjogYXV0bzsNCg0KICB0b3A6IDA7DQogIHJpZ2h0OiAwOw0KICBib3R0b206IDA7DQogIGxlZnQ6IDA7DQogIA0KfQ0KDQpALXdlYmtpdC1rZXlmcmFtZXMgc3BpbiB7DQogIDAlIHsgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTsgfQ0KICAxMDAlIHsgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpOyB9DQp9DQoNCkBrZXlmcmFtZXMgc3BpbiB7DQogIDAlIHsgdHJhbnNmb3JtOiByb3RhdGUoMGRlZyk7IH0NCiAgMTAwJSB7IHRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7IH0NCn0NCg==" + webUI["html/img/BC-QR.jpg"] = "/9j/4AAQSkZJRgABAQAASABIAAD/4QBYRXhpZgAATU0AKgAAAAgAAgESAAMAAAABAAEAAIdpAAQAAAABAAAAJgAAAAAAA6ABAAMAAAABAAEAAKACAAQAAAABAAAAuqADAAQAAAABAAAAugAAAAD/7QA4UGhvdG9zaG9wIDMuMAA4QklNBAQAAAAAAAA4QklNBCUAAAAAABDUHYzZjwCyBOmACZjs+EJ+/8AAEQgAugC6AwERAAIRAQMRAf/EAB8AAAEFAQEBAQEBAAAAAAAAAAABAgMEBQYHCAkKC//EALUQAAIBAwMCBAMFBQQEAAABfQECAwAEEQUSITFBBhNRYQcicRQygZGhCCNCscEVUtHwJDNicoIJChYXGBkaJSYnKCkqNDU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6g4SFhoeIiYqSk5SVlpeYmZqio6Slpqeoqaqys7S1tre4ubrCw8TFxsfIycrS09TV1tfY2drh4uPk5ebn6Onq8fLz9PX29/j5+v/EAB8BAAMBAQEBAQEBAQEAAAAAAAABAgMEBQYHCAkKC//EALURAAIBAgQEAwQHBQQEAAECdwABAgMRBAUhMQYSQVEHYXETIjKBCBRCkaGxwQkjM1LwFWJy0QoWJDThJfEXGBkaJicoKSo1Njc4OTpDREVGR0hJSlNUVVZXWFlaY2RlZmdoaWpzdHV2d3h5eoKDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uLj5OXm5+jp6vLz9PX29/j5+v/bAEMAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAf/bAEMBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAf/dAAQAGP/aAAwDAQACEQMRAD8A/v4oAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgD/0P7+KAP5/wD/AILmf8FzP+HL/wDwy8B+y9/w0mP2k/8AhdmB/wALsPwe/wCEL/4U8fhLn5j8Jfih/b//AAkH/C0fTRP7F/sL/mIjUQtkAfgH/wARzn/WLz/zdb/8k2gA/wCI5z/rF5/5ut/+SbQAf8Rzn/WLz/zdb/8AJNoAP+I5z/rF5/5ut/8Akm0Af08/8EWP+CrP/D4H9lrx9+0uPgMf2ef+EI+Pvin4GjwSPiofi1/aX/CN/Dn4W+Pj4n/4SH/hXXww+xm8PxOGkf2J/Yl19k/sU3/9sv8A2h9isAD3/wD4KiftzH/gmz+wt8cv21B8Lv8Ahc4+C5+Ghb4a/wDCbD4cf8JJ/wALG+MPgD4TjHjFfB/jwaSdJPjv/hISD4X1L7f/AGadNLWH24ahaAHwH/wQz/4Lmf8AD6D/AIahB/Ze/wCGbB+zZ/wpPI/4XYfjD/wmn/C4T8WsfMPhL8L/AOwP+Ef/AOFXemt/21/bv/MOGnFb0A/oAoAKAP5Af+Cov/B1h/w7Z/bq+OX7FZ/YOHxpPwWHwyP/AAsr/hqA/Dk+Iz8Rvg94B+LH/Inf8M7ePf7J/sr/AITv/hHcjxPqAvTp/wDaObEX32GyAPgH/iOc/wCsXn/m63/5JtAH9PP/AARY/wCCrP8Aw+B/Za8fftLj4DH9nn/hCPj74p+Bo8Ej4qH4tf2l/wAI38Ofhb4+Pif/AISH/hXXww+xm8PxOGkf2J/Yl19k/sU3/wDbL/2h9isAD3//AIKiftzH/gmz+wt8cv21B8Lv+Fzj4Ln4aFvhr/wmw+HH/CSf8LG+MPgD4TjHjFfB/jwaSdJPjv8A4SEg+F9S+3/2adNLWH24ahaAH8g//Ec5/wBYvP8Azdb/APJNoA/r7/4bm/41af8ADy3/AIVf/wA2B/8ADc3/AApb/hNTt/5N1/4X/wD8Kv8A+Fj/APCH4zj/AIpH/hOP+EEx/wAx7/hE8/8AEjoA/kE/4jnP+sXn/m63/wCSbQAf8Rzn/WLz/wA3W/8AyTaAD/iOc/6xef8Am63/AOSbQAf8Rzn/AFi8/wDN1v8A8k2gD7+/4Jdf8HWH/Dyb9ur4G/sVj9g4fBY/GkfE0/8ACyv+GoD8Rj4cPw5+D3j74sf8id/wzt4C/tb+1f8AhBP+EdyfE+niyOof2jm+Fj9hvQD+v6gAoA//0f7+KAP4A/8Ag+c/5xef93rf++lUAfv3/wAE9v8Agnx/wS0/4da/sP8Ax0+Of7D/AOwE279gL9mr4s/GL4x/Fn9mn9nb5f8AjHbwZ4w+IHxI+JPxB8YeC1AAA1fxN4x8Y+JtXJ/4/wDXNdv2zeXtAC/8csn/AFgD/wDOd1AB/wAcsn/WAP8A853UAfjF/wAHcn7Ef7GP7Nv/AATc+Cnjn9nX9kb9l74A+NtU/bd+HHhPVPGPwX+APwp+FfinU/C158CP2ldX1DwxfeIPA3g/Q9Vu9Bu9V0PQ9XutGurttOvNR0TTb5rU3lhYlQD6h/4Mqv8AlFj8e/8As/74p/8ArO37K1AH8of/AAWp/wCHzv8Aw0H/AMFGf+Fwf8PPP+HfH/DX3xy/sf8A4WX/AMNXf8Mcf8Ks/wCGltU/4Ub/AGf/AMJR/wAWS/4QH+0v+EB/4VV9n/4kP2//AIRH/hEv9M/sOgD9Pf8Agzc/aw/Za/Zg/wCHjQ/aX/aU+AX7Pf8AwnH/AAx+fBP/AAvL4yfDn4Snxd/wjK/tP/8ACQ/8IuPH/iXQRr39g/2/4dXWxo7Xv9jHXNG+3G1/tCydgD8Zf23P+Cmn/BSHx7/wUi/a68D/ALKf/BQT9t3xl4K8Zftu/H7wn+zd4N/Z6/at+PHiLwt4t8LeI/jx4o0f4PeGPgf4f+G/ju80rXdC13Sbvw5pXw20jwJZ3enalYXmhWHhSyezewRwDd/46m/+s/n/AJ0RoA/u3/4I1f8ABPj4W/HH/gm5+zf8Uf8Agp3+xB8PvjB+3J4n/wCFv/8AC7/iL+3p+zX4d+IP7VviI6N8d/ihoHw3X4reLv2hfBmq/GLVRpXwe0vwHofgX/hML+6+wfDjT/CGn6AI/CtjoaUAf5V/wV/Z++Pf7SXirUPAv7OfwO+L/wAf/G2l+HrzxXqng74L/DXxl8U/FWneFrO/0vSL/wAU3/h/wNouu6raaFZ6tr+jaTdaxd2f9n2eoa1pli12t5f2SsAf6eX/AAaN/s+fH39m3/gm98avA37RXwP+LvwA8bar+298RvFel+DfjT8NvGXwr8Vap4Vu/gP+zVo9j4nsfD/jnRNC1W70G91XQ9a0q11m2szp13qOi6jYpeC8sL1VAP248WftA/8ABN/9qbxX4k/Yk8c/HL9iH9ovxtrXiDV/CfjL9kTxZ8SvgP8AF7xXrPir4Tahc+KfEPhjxP8AALWNb8QarqOv/DfVvA194m1jRtV8Itf+C9Q8I3euX1lp15oD3lgAY/8Aw6e/4JZ/9I1P2Av/ABDr9nb/AOdvQBzP/BTTwn4X8B/8EjP+CgngTwN4a0LwX4I8Gf8ABOX9q7wl4O8HeE9H07w14V8K+FfDf7M/jzRfDvhjwx4f0a0tdK0Lw9oel2tnpGi6NpNnZ2FhYWVnY2NnFZRolAH+eX/waN/s+fAL9pL/AIKRfGrwN+0V8D/hF8fvBOlfsQ/EXxXpfg340/Dbwb8VPCul+KrT48fs1aPY+J7Hw/450TXdJtNes9K1zWtKtdZtrMajZ6drWo2KXhs7+9VgD+5b4o/Cf/g2++B/jnXPhb8avht/wRE+EPxN8LjTR4n+HfxR8IfsIeAPHfhsa1pGm+IdF/t7wj4q03SvEGk/2poGq6PrWlC/sLQXuj6lp2o2O+yvrN2AOC/45ZP+sAf/AJzuoA+nPgr+xF/wQ5/aT8K6h46/Zz/ZH/4JSfH/AME6X4gvfCepeMfgv8A/2Qfin4V0zxVZ6fpOr33he+8Q+BvCGvaVZ69aaVruj6vd6PdXYv7Sw1vTL6SzFnfWTMAfwm/8EqvCfhPwB/wd6eIfA3gbw34f8F+CfBf7b3/BUbwn4O8HeEtGsPDvhXwp4W8OfDj9r3SfD/hjwzoGj21ppWgaFoOlWdnpGkaNpNnZ2Gn6daWdhY2UVmqKoB/qLUAFAH//0v7+KAP4A/8Ag+c/5xef93rf++lUAfv5/wA6sn/eAP8A+B3UAf5A9ABQB/p+f8Hqv/KLH4Cf9n/fCz/1nb9qmgA/4Mqv+UWPx7/7P++Kf/rO37K1AH5Bf8F9P+Dj4ftEfDz/AIKDf8Elj+xt/wAIePD3x/1f4F/8L/P7Q518Xn/DL/7U+g6z/wAJSfhUPghof2b/AITo/CT7J/Y3/CxpP+EX/t8v/bXiAabsvwD8gP8Aghn/AMEM/wDh9B/w1CT+1D/wzYf2bP8AhSfP/Ckx8Yf+E0/4XCPizj5R8Wfhf/YH/CPj4Xeut/21/bv/ADDjpxa/APA/2TvgYP2X/wDgvh+zT+zSPFX/AAnA/Z4/4K+fBz4Gf8Jt/Yn/AAjf/CXn4S/tneH/AAAPFH/COnU9e/sA6/8A2AdX/sca5rv9jm8Ww/trUDF9tlAP9nSgD+QH/gqL/wAHWH/Dtn9ur45fsVn9g4fGk/BYfDI/8LK/4agPw5PiM/Eb4PeAfix/yJ3/AAzt49/sn+yv+E7/AOEdyPE+oC9On/2jmxF99hsgD+Ij/gix/wAFWf8Ahz9+1L4+/aXHwG/4aG/4Tf4BeKfgaPBI+Kg+Ev8AZv8AwknxG+Fvj4+J/wDhIf8AhXXxP+2fYx8MRpH9if2Ja/a/7aN//bKf2f8AYr8A/p5/4jnP+sXn/m63/wCSbQAf8MNf8O8v+OtP/haH/C4P+Fgf8Zy/8MA/8IV/wr/+x/8Ah57/AMUd/wAKv/4ap/4S3xp9r/4Ul/w1n/a3/Ccf8M22X/Cx/wDhXn2L/hFPAf8Awln23w8AH/Ec5/1i8/8AN1v/AMk2gD+nj9rH45n9qD/ggf8AtLftLHwr/wAIOf2h/wDgkH8Y/jmPBP8Abf8Awkh8ID4tfsZeIPH58L/8JGNM0H+3/wCwP7fGkf2w2h6F/bAs2vzouniUWUQB/ET/AMGVP/KUz49/9mA/FT/1on9lSgD4A/4Oj/8AlOt+3J9P2Zv/AFj39n6gD8AKAP8AT8/4Mqv+UWPx7/7P++Kf/rO37K1AH4A/8E1P+VyT4i/9n/f8FYv/AFB/2yaAP9PqgAoA/9P+/igD+AP/AIPnP+cXn/d63/vpVAH7+f8AOrJ/3gD/APgd1AH+QPQAUAf6fn/B6r/yix+An/Z/3ws/9Z2/apoAP+DKr/lFj8e/+z/vin/6zt+ytQB+nXxY/wCDcj/gjN8cPit8SfjT8Uf2OB4n+Jvxf8f+Mvij8RfEg/aC/ap0f/hIfHfxA8Q6l4v8X6+dG8PfG7S/D2l/2p4g1W/v/wCytH0rTdFsPtf2LTtOs7BbSzQA/nF/4Ll/8c2P/DL3/DlX/jDD/hs7/hdf/DSu7/jIn/hZP/DOv/Cpf+FN/wDJ2H/C+P8AhDv+EN/4Xt8VMf8ACBf8Ip/b/wDwlX/FV/27/YXh7+wwD9AP+HXX7Cv/AA61/wCH1P8Awo0f8PM/+GAv+Hof/DS3/CzfjBj/AIbp/wCGd/8Ahq//AIXn/wAKf/4WF/woDH/DQP8AxXv/AArX/hVn/Cntv/FJ/wDCAf8ACC/8U9QB8ff8Gwv/AAWV/wCCkf8AwUQ/b5+LfwX/AGxP2jz8YPhl4Z/ZD8efFHQPDf8Awp74D+ADY+O9G+M/7P8A4Q03Xv7Y+Fvwu8F6/c/ZfD/jXxLZnSrvVbrQ5DqH22809r+w0+9sgD+cP/g6P/5TrftyfT9mb/1j39n6gD9v/wDg56/4I1f8E3P+Cd/7A3wk+NH7Hf7OA+D/AMTfE37XngP4Xa/4k/4XD8ePH4vvAms/Bj9oDxfqWg/2P8Uvij400C2+1eIPBXhq8Gq2mlWuuRjT/sVnqC2F/qFlegB/wbC/8Eav+Cbn/BRD9gb4t/Gj9sT9nAfGD4m+Gf2vPHnwu0DxJ/wuH48eABY+BNG+DH7P/i/TdB/sf4W/FHwXoFz9l8QeNfEt4dVu9KutckGofYrzUGsLDT7KyAP7dfiT+wZ+yl8YP2ONM/4J/fEb4UHxD+yPo/gD4TfC+w+Ew8d/EbSVt/AnwOvvBuo/C/Qv+E90PxjpnxOn/wCEXu/AfhG4XVbnxlJrOtnRseIL7UlvtRF+Af55X/B1h/wS6/YU/wCCbX/DB3/DFXwNHwW/4XQP2oT8Ss/E34wfEb/hJP8AhXX/AAzr/wAIcD/wtj4h+OxpJ0f/AIT3xZk+HRpx1D+0f+JkL37BY/YgD+vr/nVk/wC8Af8A8DuoA/kF/wCDKn/lKZ8e/wDswH4qf+tE/sqUAfAH/B0f/wAp1v25Pp+zN/6x7+z9QB+AFAH+n5/wZVf8osfj3/2f98U//Wdv2VqAPwB/4Jqf8rknxF/7P+/4Kxf+oP8Atk0Af6fVABQB/9T+/igD+AP/AIPnP+cXn/d63/vpVAHsH7Ef/B3J/wAE3f2bv2MP2Rv2dfHHwV/be1Txr8Af2XvgD8FvGWp+FPhz8B7vwrqfin4V/Crwp4G8QX/he+1j9pTQ9VvNBu9V0O8utGutV0XRdRu9Paze+06xvWawQA+oP+I1X/glj/0QX9v7/wANX+zt/wDRVUAH/Ear/wAEsf8Aogv7f3/hq/2dv/oqqAPwh/4OEf8Ag4S/Yx/4KzfsY/DP9nX9nT4Z/tOeCvGngz9p3wX8atV1T41+C/hR4a8LT+FvDXwn+Nfgi+0/Tr7wN8bPiNqtx4gk1X4j6LdWdnc6NZWDWNpqTPqSXaWdnfgH7vf8GVX/ACix+Pf/AGf98U//AFnb9lagD8Af+Can/K5J8Rf+z/v+CsX/AKg/7ZNAH39/wfOf84vP+71v/fSqAP6mP2IvjV4V/Zs/4IdfskftF+OrDxDqvgn4Af8ABKP4B/GjxjpnhOz0+88Uan4V+Ff7IXhTx14gsfC9hrOqaFpN5rt5pOhXlro1pq+saJYXd+1nHf6np9mTfIAeAf8ABML/AIOFf2Mf+Csnx88Xfs7fs6fDH9p/wZ418G/CLXPjPqeqfGfwV8KvDvhifwt4d8ZeAfA19Y2N74G+NfxH1SfXDqvxH0a7trW60ay0/wDs+01J21Jb2Oysr8A8h/bz/wCDnv8AYI/4J4ftYfFf9jz41fCL9r7xL8Tvg+PA/wDwkeu/C/wF8GNY8C3o8f8Aw28IfFLRhoGo+Lf2gPA3iC6FtoHjLSbPVPt3hqwC61a39nZ/bbJbK/uwD8Bv2K/2K/in/wAGnXxS1z/gon/wUS174ffGX4K/GfwDqn7FXhnwx+xZqviH4jfFSw+KXxH1/wAL/HHRtf1/R/jp4W/Zv8HWngC08L/s5eN7HV9WsvG+s6/aa/qHhWxtPCl9p19rOt6GAf2Mf8Ewv+CnnwE/4KxfAbxf+0V+zp4R+Lvg7wR4M+LmufBjU9M+NGh+DPDviq48V+HfBvgLxxqF7Y2Hgb4g/EbSZtBbSviNolraXV1rVlqH9o2epo2mLZR2N7dgH8E//BNT/lck+Iv/AGf9/wAFYv8A1B/2yaAPv7/g+c/5xef93rf++lUAfv5/zqyf94A//gd1AH+fV/wb1f8ABT34Bf8ABJ79s34nftF/tF+E/i94x8FeMf2YPG3wX0rTPgxoXgzxD4pi8U+I/ir8FPHNjqGoWPjr4hfDnS4NCXSvhzq9rdXVprN5qA1C90yNNNlsmvb2wAP7Gf8AiNV/4JY/9EF/b+/8NX+zt/8ARVUAH/Ear/wSx/6IL+39/wCGr/Z2/wDoqqAD/iNV/wCCWP8A0QX9v7/w1f7O3/0VVAH80f8AwRR+NfhX9pT/AIOoPC/7RfgWw17SvBPx8/af/wCCifxr8HaV4stNOsfFeneFfip8Ev2qfG2gaf4msNH1PX9KtdftNK16zttZtdJ1vW9Osr5L0WF/qFiiXrAH+qxQAUAf/9X+/igD8ff+CrH/AARY/Zb/AOCwH/Chv+GlvHnx98D/APDPB+KY8E/8KN8VfDrw1/aQ+LR+HY8Rf8JP/wAJ/wDCX4nm7Nl/wrLw8dFOkf2J9j+2619v/tASWQsgD8hf+IKr/glj/wBF6/b+/wDDqfs7f/Qq0AH/ABBVf8Esf+i9ft/f+HU/Z2/+hVoAP+IKr/glj/0Xr9v7/wAOp+zt/wDQq0AH/EFV/wAEsf8AovX7f3/h1P2dv/oVaAP3a/4Jhf8ABMP4Cf8ABJ34DeL/ANnX9nTxd8XfGPgjxn8XNc+M+p6n8aNc8GeIvFVv4r8ReDfAXgfULKxv/A3w++HOkw6CulfDnRLq0tbrRb3UP7RvNTdtTayksbK0APj74H/8G937GPwB/wCClmt/8FTPBvxN/ad1L9oPXvi/+0H8abvwd4j8Z/Ci7+DkXir9pPSPibo/jjT7fQNM+CuieNU0DS7b4o+Im8J2x+Ib6hY3VloR1vU9dWzvk1AA9h/4Ksf8EWP2W/8AgsB/wob/AIaW8efH3wP/AMM8H4pjwT/wo3xV8OvDX9pD4tH4djxF/wAJP/wn/wAJfiebs2X/AArLw8dFOkf2J9j+2619v/tASWQsgDe/bd+CvhX9mz/gh1+1v+zp4Fv/ABDqvgn4Af8ABKP4+fBfwdqfiy80+88Uan4V+Ff7IXivwL4fvvFF/o2l6FpN5rt5pOhWd1rN3pGj6JYXd+15JYaZp9mRYoAfw0/8GVP/AClM+Pf/AGYD8VP/AFon9lSgD+rn9vP/AINhP2CP+Ch/7WHxX/bD+NXxd/a+8NfE74wDwP8A8JHoXwv8e/BjR/AtkPAHw28IfC3RjoGneLf2f/HPiC1FzoHg3SbzVPt3iW/Da1dX95Z/YrJrKwtAD+Cv/gp7/wAHCv7Z3/BWT4B+Ef2dv2i/hj+zB4M8FeDfi7ofxn0zVPgx4K+Kvh3xPP4p8O+DfH3gaxsb698c/Gv4j6XPoZ0r4j6zd3Nra6NZah/aFpprrqS2Ud7ZX4B/Yz/wZVf8osfj3/2f98U//Wdv2VqAP0Z+B/8Awb3fsY/AH/gpZrf/AAVM8G/E39p3Uv2g9e+L/wC0H8abvwd4j8Z/Ci7+DkXir9pPSPibo/jjT7fQNM+CuieNU0DS7b4o+Im8J2x+Ib6hY3VloR1vU9dWzvk1AA/nm/4PnP8AnF5/3et/76VQB/Ux+xF8FfCv7Sf/AAQ6/ZI/Z08dX/iHSvBPx/8A+CUfwD+C/jHU/Cd5p9n4o0zwr8VP2QvCngXxBfeF7/WdL13SbPXbPSddvLrRrvV9H1uwtL9bOS/0zULMGxcA/Gf/AIgqv+CWP/Rev2/v/Dqfs7f/AEKtAB/xBVf8Esf+i9ft/f8Ah1P2dv8A6FWgA/4gqv8Aglj/ANF6/b+/8Op+zt/9CrQAf8QVX/BLH/ovX7f3/h1P2dv/AKFWgD67/YM/4NhP2CP+CeH7WHwo/bD+Cvxd/a+8S/E74Pjxx/wjmhfFDx78GNY8C3o8f/Dbxf8AC3WTr+neEv2f/A3iC6FtoHjLVrzS/sPiWwC61a2F5efbbJb2wuwD+kGgAoA//9b+/igD+IL/AIPIv2sP2pf2YP8Ah3KP2aP2lPj7+z2fHB/bA/4Tb/hRvxk+I3wkHi7/AIRlv2YP+Ed/4Sj/AIQDxLoP9vf2D/b3iJdE/tg3v9jDXNZ+w/Zf7QvWYA/jJ+FP/BQ7/gsL8cfin8Nfgp8Lv+Chn7fvif4n/F34geD/AIX/AA68ND9tj43aN/wknjv4g+IdM8I+ENB/trxB8V9J0LShq2u6tZWf9ra3rOn6LYm8+16jfWNmt1eoAfXn7c2t/wDBxp/wTX/4Ve37av7XH7fnwWb40Hxufhp/xsS8UfEf/hI/+Fcf8IefGH/JJ/2iPHY0kaT/AMJ34TX/AIqFtO/tAaj/AMS3+0BY6ibIA/P/AP4ex/8ABUz/AKSWft//APiYv7RP/wA8igD/AFFf+DhH4Hf8FK/j9+xn8MfB3/BLLW/i/oX7QemftPeDPEnjG8+C37QWkfs2+Kpfg3a/Cn41aV4gttR8c6z8SfhbbanoB8aa58O2ufCS+Ir27vr9dM1oaJdLoLX1gAf51n7avxs/4L9f8E8PinoXwW/bG/bU/b9+EPxM8TeANK+J+h+GR+3/APEDx/8AbPAus+IPFPhHT9fGsfC347eNNAtzda94L8S2f9lXur2utp/Zwvr3T1sL2xu70A+gPiV4J/4Ob/g/+xzpv/BQD4i/tN/t/eHP2RtZ8AfCf4n6f8Wm/wCCk2o6v5/gX443/g+x+Fuv/wDCBeH/ANpbVPibbjxRd+PfCFodLuvBya3ov9s7tf0/TEsdQayAPPf2Gdb/AODjT/gpR/wtBv2Kv2uP2/PjS3wXPgg/Ev8A42JeKPhx/wAI5/wsf/hMD4P/AOSsftEeBBqw1b/hBPFi/wDFPNqP9njTv+Jl/Z4vtON6Af6SXi34EftQeP8A/ghx4j/Zk8daZ4g8aftneM/+CUus/Anxlo3iz4gaB4k8U+LP2nvEf7IV18PvEGmeJ/ihrPie68L67r2vfFa6u7TWvH2reM7zQtR1G8vPEV74qbTnfWWAP5p/+DYX/gjV/wAFI/8Agnf+3z8W/jR+2J+zgfg/8MvE37Ifjz4XaB4k/wCFw/Afx+b7x3rPxn/Z/wDF+m6D/Y/wt+KPjTX7b7V4f8FeJbw6rd6Va6HGdP8AsV5qC39/p9legH5Cf8HG/wDwUI/b3+B//BZj9sn4X/Bb9uH9r74P/DPwx/wz5/wjXw6+F37Svxn+H/gTw+NZ/ZY+COv6x/wj/hDwj400rQNKOqa/qmr6zq32GxtPt+t6jqGpXxa9vbt6APyD/bU/4I1f8FJP+Cd3wt0L40/th/s4f8Kf+GPiXx9pvwv0LxI3xf8AgN8Qje+Oda8PeKPFumaD/Y/ww+KPjbX7b7RoHgvxHfnVrrSLPRY/7P8AsV1fJfX2nWV6AfMfwW/bZ/bO/Zq8LXvgb9nX9rv9p74B+CdW1668Xap4N+Cfx9+K/wALPCuo+Kb3TtM0bUPE2oeHvA/i7QdKuvEF3pWhaHpV7rN1aPqF3YaLp1g121pp9kigH+zT/wAEy/Fvivx9/wAE3v8Agn3468deJfEHjPxr4z/Yh/ZR8XeMvGXi7WtQ8R+KvFfinxF8B/AWr6/4n8T6/q91eatr+ua/q15eavrGsare3eoajqF3eX19ePeOzOAfx1f8Hzn/ADi8/wC71v8A30qgD+cX/gk9/wAFB/2+f+G+P+CavwL/AOG3/wBrz/hSf/DXv7HPwo/4U5/w0r8Zx8LR8LP+Fz/Dnwh/wrf/AIV9/wAJn/wh/wDwgf8Awiv/ABTP/CHf2P8A2D/YP/Ej/s/7AfsdAH9y/wDwdyftB/H39m3/AIJvfBXxz+zr8cPi78APG2q/tvfDnwpqnjL4LfEnxl8K/FWqeFbv4D/tK6xfeGL7xB4G1vQtVu9BvdV0PRdVutGubw6dd6jounXz2YvLCyZQD5g/4I1f8HH3/BPP4Pf8E3P2bvh1/wAFAf29fiBq/wC114eHxf8A+Fs6j8T/AIf/ALWvxy8dzrrPx2+KHiDwCdf+KFh8LfHtr4oNv8MtU8HWulfZfGGsjRNGXT9Ac2T6Y+n2AB4B/wAEav2IP+Dlb4Pf8FJP2b/iN/wUC8Z/te6t+yP4fPxe/wCFtWHxP/4KDeFfjj4GuDrHwI+KGgeAF1/4Yaf+0v49uvFIt/ibqXg270n7J4R1n+xNb/s/XyNPTTG1GwAPmH/g7k/bc/bO/Zt/4KR/BTwN+zr+1z+1D8AfBOqfsRfDjxZqng74L/H74rfCvwtqfim8+O/7Sukah4nvvD/gbxhoelXevXelaHoekXWs3Vo2o3mnaJpti10bOwsQoB/Rx/wSD/4LifsC/tN/CT9gz9jq0/ay8QfFf9u3Xv2X/hX4b+IPhfxZ8Of2ibvxT4k+Mvww/Z6svFHxxuPE3xe8a/DeDwZ4h8QWtz4O8eazq/i688e6haeK7+xvbzT9d1y/1Sy/tIA/ojoAKAP/1/7+KAP4A/8Ag+c/5xef93rf++lUAfxFfsofHRf2X/2o/wBmn9pU+Fv+E4/4Z4+PvwY+Of8AwhP9u/8ACNjxg3wl+Ivh/wAfnwv/AG+NK18+Hzr/APYH9kf20dF1saP9ta/Oi6jsFkwB+vP/AAXM/wCC5n/D6D/hl4D9l7/hmw/s2f8AC7OP+F2D4w/8Jp/wuEfCbPzH4TfC/wDsD/hHx8LvTW/7a/t3/mHHTgt+Aff/APwS7/4NTx/wUm/YV+Bv7ag/by/4UuPjQfiaP+Faj9mD/hYo8Nj4dfGHx/8ACb/kcP8AhonwH/ax1X/hBP8AhIsf8I1YfYv7RGm/6d9h/tC9AP7dv+C0/wDwVZ/4c/fsteAf2lz8Bj+0N/wm/wAffC3wNPgk/FQ/CX+zf+Ek+HPxS8fDxP8A8JD/AMK6+J/2w2Z+GJ0j+xP7Etftf9tC/wD7ZT+z/sV+Af5hv/Baf/gqz/w+B/al8A/tLn4Df8M8/wDCEfALwt8DT4JPxUHxa/tL/hG/iN8UvHw8T/8ACQ/8K6+GH2P7YPicdI/sT+xLr7J/Yov/AO2X/tD7FYAH39+0p/wcfD9of/gjh4a/4JKn9jb/AIRAeHvgF+yf8C/+F/n9of8At77Z/wAMv698G9Z/4Sn/AIVSPgjoP2YeOf8AhUv2X+xT8R3/AOEXGvbv7c8Qf2aUvwD9e/8Agxj/AOcof/dlP/v2tAH0B+1f/wAHkf8AwzB+1L+0t+zX/wAO5j45/wCGd/j98ZPgX/wmo/a+PhoeMP8AhUvxG8QeAf8AhJz4f/4Zg1/+wT4g/sD+1/7G/tvXDov2wWH9tajtN64B8/8A/Ec5/wBYvP8Azdb/APJNoA/kJ/4Ki/tzD/gpN+3V8cf21R8Lj8GD8aB8NC3w2PjZviP/AMI1/wAK5+D/AIB+E4/4rFfB/gP+1v7XHgT/AISIg+F9O/s86h/ZxOofYRf3YB+vf/Baj/g4+/4fAfss+Av2av8AhjUfs8/8IP8AH3wt8cx41/4aIHxaOqf8I38Ovij4C/4Rj/hHh8EPhitm10fif/bH9sjW7w2f9if2edEf7d9vsgA/4Ir/APBuD/w+A/ZZ8e/tK/8ADZQ/Z5/4Qf4++KfgYfBX/DO4+LR1T/hG/h18LvHv/CT/APCQn43/AAxWza6PxP8A7H/sY6JeGz/sT+0Brb/bvsFkAf08/wDBLv8A4LlnR/26fgf/AMG/w/ZgFz/wyz/wsz9hr/hrI/GryP8AhOv+GBfhB4+8M/8ACzz8B/8AhU7jwv8A8LY/4UL9s/4QYfGPX/8AhBz4t+yf8Jb4uGhG814A+/v+C5n/AAQz/wCH0H/DLxH7UP8AwzYP2bP+F2YP/Ckz8Yf+E0/4XCfhLn5T8Wvhf/YH/CP/APCrvXW/7a/t3/mHDTg16Af5xf7J3wMH7L//AAXw/Zp/ZpHir/hOB+zx/wAFfPg58DP+E2/sT/hG/wDhLz8Jf2zvD/gAeKP+EdOp69/YB1/+wDq/9jjXNd/sc3i2H9tagYvtsoB/bx/weq/8osfgJ/2f98LP/Wdv2qaAP8wOgD+/z/iOc/6xef8Am63/AOSbQAf8MN/8RgX/ABss/wCFo/8ADvH/AIUj/wAYNf8AClv+EJ/4az/4Sn/hWf8Axf7/AIWh/wALG/4S/wDZq/sT+3P+Gmf+ER/4Qf8A4QPW/wCzv+EH/t3/AISu/wD+Eg/sXQAD7+/4Jdf8Gp//AA7Z/bq+Bv7ag/bxHxpPwWHxNH/Ctf8Ahl8/Dk+Iz8Rvg94++E//ACOP/DRPj3+yf7K/4Tv/AISLB8MagL06f/Z2LEX326yAP6/qACgD/9D+/igD+IL/AIPIv2T/ANqX9p//AIdyn9mj9mv4+/tCHwOf2wP+E2/4Ub8G/iN8Wx4R/wCEmb9mD/hHf+Eo/wCEA8Na9/YP9vf2D4ibRP7YFl/bI0PWfsP2r+z71VAP4a/Fv/BMv/gpD4B8KeJfHXjv/gn3+294M8FeDPD+teLvGXjLxd+yj8ePDvhbwp4V8Oafdav4g8T+J9f1fwBZ6ToGh6BpNpeatrGr6teWmn6dp9neX19epZq7oAfDFAH+vz/wa4f8oKf2G/r+0z/62F+0DQB+nX7an/DAn/CrtD/4eK/8Mg/8KT/4WBpP/CM/8Nq/8KZ/4VX/AMLT/wCEe8V/2L/wj/8AwvL/AIpT/hPv+EU/4Tr+yvsP/FQf2B/wlf2H/iXf2zQB/nV/8HCP7EfhT9pX9s/4ZeOf+CMH7JGgfHz9lzS/2YvBXhLx54x/4Jg/APTfin8A9O+Plj8VfjbrHinw14u1/wDZR8I658O7X4wWfw7134V6t4i0bWLxfG9p4J1vwHfahY/2FqHh53APvv8A4KFeEv8AgkZ4D/4N0rDwJ4X8Of8ABOTwX/wU78GfswfsJeE/iN4N0LRf2ZvDf7eHhT4++GvHv7OWjftLeGPG+gafbWf7QGhfGHQDafErSPjdo2t2dn43sDaeO7Lx5ar5WvIgB/JR+wz/AMPTP+Lof8O0v+G/f+ZK/wCF0/8ADDP/AA0V1x4w/wCFcf8AC0P+FA89f+E8/wCEG/4S7v8A8Jb/AGD8v9tUAdH+xH4T8VePP+Cuf7I3gb9q3w1r3jTxv40/4KN/ALwn+0l4O/aG0fUPEninxT4p8RftM+FNH+L/AIY+N/h/4j29zquu+Ide1S68R6P8StF8eWN7fX9/e63Y+K7R7yS/RgD/AFbvjV+xF/wQ5/Zs8K6f46/aM/ZH/wCCUnwA8E6p4gsvCem+MfjR8A/2QfhZ4V1PxVeafq2r2Phex8Q+OfCGg6Vea9d6VoWsavaaPa3Zv7uw0TU76OzNnY3rKAf5dv8AwXo/4ZY/4ew/tV/8MVf8KB/4Zn/4sb/wrT/hl3/hXf8AwojH/DN3we/4TH/hB/8AhU//ABQWP+E+/wCEt/4ST/hHuf8AhLv7d/tH/idf2lQB+cnwV/Z++Pf7SXirUPAv7OfwO+L/AMf/ABtpfh688V6p4O+C/wANfGXxT8Vad4Ws7/S9Iv8AxTf+H/A2i67qtpoVnq2v6NpN1rF3Z/2fZ6hrWmWLXa3l/ZKwB/p5f8Gjf7Pnx9/Zt/4JvfGrwN+0V8D/AIu/ADxtqv7b3xG8V6X4N+NPw28ZfCvxVqnhW7+A/wCzVo9j4nsfD/jnRNC1W70G91XQ9a0q11m2szp13qOi6jYpeC8sL1VAP4iv+Cmn7Pv/AAUh/Za/4KQf8FBf22vBHwN/be/Z08FaL+29+1f4t8Hftd+FPhr8dvhD4V0fwv8AFn48ePPC3h/xN4Y+PujaHoGk6boXxI0rxzZeGdI1nSvFq2HjTT/F1rodjeahZ+IEs78A8f8AgX+1h/wXx/agHik/s0ftL/8ABXr9of8A4QYaIfG3/CjPjH+2b8Wh4QPiT+1v+Ee/4Sf/AIQDxJrx0Ftf/sHWzorasLP+2W0PWvsH2r+zr7YAf6Gf/Dvb4Xf8OYv+F6f8MQ/D/wD4ejf8Owv+Fs/8Lj/4Zr8O/wDDfX/DfP8Awyf/AMJb/wALH/4WB/whX/DQn/DXn/DQn/FUf8Jh/a//AAub/hcv/E9/tD/hOv8ATaAPwk/4N7v2e/8AgpD+0r+2d8TfAv8AwWf+B37b/wAfP2XdK/Zh8Z+LPAng7/gp98Nfjt8U/gJpvx9sfit8E9H8L+JvCOgftXaHrvw6tPjBa/DvXfinpPh3WdItF8a2vgnWvHun6feroWoeIY5QD+x3/h09/wAEs/8ApGp+wF/4h1+zt/8AO3oA/wA0f/gjV/wT4+KXwO/4KR/s3/FH/gp3+xB8Qfg/+w34Y/4W/wD8Lv8AiL+3p+zX4i+H37KXh0az8CPihoHw3X4reLv2hfBmlfB3Sjqvxh1TwHofgX/hML+1+3/EfUPCGn6AJPFV9oaUAfp7/wAFqP8AhqX/AIak8Bf8Q6v/AAvz/hiX/hQXhb/hZ/8Aw5Y/4WN/wyx/w1P/AMLG+KP/AAm3/Cff8MMf8Wm/4aB/4VP/AMKS/wCEm/4SL/i4v/Cuf+FUf2j/AMU9/wAIjQB/dr/wT3/4Wl/wwL+xB/wvT/hYP/C7P+GQ/wBmv/hcX/C2f+Eh/wCFpf8AC1P+FMeDP+Fg/wDCx/8AhMP+Kq/4Tz/hK/7Y/wCEw/4Sb/ioP+Eg/tD+3P8AiYfbaAPsWgAoA//R/v4oAKAP4wf+CsP/AAc+/sEf8Kr/AOClf/BOo/Cb9rw/Gz/hAf2xv2KT4oHgD4Lj4WH4pDw98Rvgede/tn/hoH/hMB4CPir/AE3+2f8AhBf7fGg/6afCLaiP7HoA/jH/AOCU/wDwRY/ak/4LAf8AC+f+GafHnwC8D/8ADPH/AAqweNv+F5eKviL4a/tI/FofEQeHf+EY/wCEA+EvxPF2LL/hWXiE60dX/sT7H9t0X7B/aBkvRZAH9fH7Lv8AwWn/AGXP+DeD4F+Bv+CO/wC2p4C+PvxN/aX/AGQT4k/4WX44/Zc8LfDjxp8CtcHx+8Ya7+1B4O/4QfxR8V/ix8EvHuqf2d4B+NnhPSPEo8Q/DHwqbHxZY69p+nHXdDstP8Qa0Afs3/wcK/8ABML4+/8ABWH9jL4Yfs6fs6eLfhD4O8a+Dv2n/BPxo1XU/jPrvjPw94Vl8LeHPhV8a/A19p+n33gX4ffEbVJ9dfVPiNo91bWt3o1np50+y1KR9SjvVsrK9AD/AIN6v+CYXx9/4JPfsZfE/wDZ0/aL8W/CHxj418Y/tP8Ajb40aVqfwY13xn4h8KxeFvEfwq+Cngax0/UL7x18PvhzqkGupqnw51i6ubW00a808afe6bImpSXrXtlZAH8ZX/Bc/wD4N7/2zfgHr/8AwUO/4KneM/ib+zDqX7Puv/tPfEP41Wng7w340+Kt38ZIvC37Sn7TyaP4G0648P6r8FdD8GDXtMufin4ebxbbr8RGsLC1stdOjajrzWlgl+AeP/8ABuD/AMFqP2Wf+CQH/DZQ/aU8A/H3xuf2hv8Ahnf/AIQv/hRvhb4c+Jv7N/4VJ/wvT/hIR4mHj74r/C77Gbz/AIWb4fGjf2R/bgvPsetf2gdP2WJvwD79/wCHLP7U3/DUn/ERX/wn3wB/4Yl/4X9/w+n/AOFYf8JR8RP+GqP+GWf+Fj/8Nzf8IF/whX/CqP8AhU//AA0B/wAKm/4p3/hGf+F3f8K6/wCFh/8AEl/4Wv8A8It/xVdAHkH/AAcI/wDBwl+xj/wVm/Yx+Gf7Ov7Onwz/AGnPBXjTwZ+074L+NWq6p8a/Bfwo8NeFp/C3hr4T/GvwRfafp194G+NnxG1W48QSar8R9FurOzudGsrBrG01Jn1JLtLOzvwD4i/YM/4NhP29/wDgof8Asn/Cj9sP4K/F39kHw18MfjAfHH/COaF8UPHvxn0fx1ZHwB8SfF/wt1k6/p3hL9n/AMc+H7U3Ov8Ag3VrzS/sPiW/LaLdWF5efYr1r2wtADyH/g3q/wCCnvwC/wCCT37ZvxO/aL/aL8J/F7xj4K8Y/sweNvgvpWmfBjQvBniHxTF4p8R/FX4KeObHUNQsfHXxC+HOlwaEulfDnV7W6urTWbzUBqF7pkaabLZNe3tgAf2M/wDEar/wSx/6IL+39/4av9nb/wCiqoA+ff2ov+C0/wCy5/wcP/Avxz/wR3/Yr8BfH34ZftL/ALXx8N/8K08cftR+Fvhx4L+BWhj4A+MNC/ag8Y/8Jx4o+FHxY+Nvj3S/7R8A/BPxZpHhoeHvhj4qN94svtB0/UToWh3uoeINFAPAf2G/+OP7/haP/Dyv/i93/Dw3/hCP+FMf8MNf8XM/4Rf/AIZL/wCEv/4WR/ws/wD4X9/wzJ/YX9uf8NK+BP8AhBf+ER/4Tj+0f7G8Wf29/wAI/wD2fon9vAH6Af8AEar/AMEsf+iC/t/f+Gr/AGdv/oqqAD/iNV/4JY/9EF/b+/8ADV/s7f8A0VVAB/xGq/8ABLH/AKIL+39/4av9nb/6KqgD8wP+Cy//AAc9fsD/APBRD/gm5+0f+x38FvhJ+154X+JvxgX4Qf8ACN6/8UfAfwY0bwJZDwB8dvhb8U9YGval4R/aA8c+ILX7ToPg3VrLSvsXhq+Da3dadZ3v2Gxa91G0AP0//wCDKr/lFj8e/wDs/wC+Kf8A6zt+ytQB+jPwP/4OEf2Mfj9/wUs1v/gln4N+GX7Tum/tB6D8X/2g/gtd+MfEfgz4UWnwcl8Vfs2aR8TdY8cahb6/pnxq1vxq+gapbfC7xEvhO5Pw8TUL66vdCGt6ZoS3l8+ngH7x0AFAH//S/v4oAKAP8cr4r/CzwL8cP+DkH4k/Bb4o6D/wlPwy+MH/AAW88Y/Cz4i+HP7T1bRf+Ej8B/ED9vDUfCHi7QTrHh7U9M1/SjqugapfWP8Aa2i6pputWBvBfafqNnfraXagH+pj+wz/AMEvP2FP+CbB+J//AAxV8Df+FLj40/8ACEf8LKH/AAs34v8AxGPiM/Dn/hMG8HAj4sfELx4dJOkjx14tH/FPHTvt/wDaWdTF8bHTTZAH+YV/wdH/APKdb9uT6fszf+se/s/UAf3cf8HPf7eP7V//AATw/YI+Efxq/Y7+Kw+EHxO8TftfeAvhfr3iT/hBfht8QPtngXWPgx+0B4t1HQBo/wAUvB/jPw/ai68QeC/DV7/alnpVprajT/slpqC2V9fWV2AH/BsJ+3j+1f8A8FD/ANgj4ufGr9sT4rD4v/E7wz+1949+F+g+JP8AhBfht8P/ALH4F0f4Mfs/+LdO0A6P8LfB/gzw/dC18QeNPEt7/al5pV3rbDUPsl3qDWVjY2VoAfxE/wDBan/gst/wUk+L/wC0J/wUY/4J/wDxG/aOHiH9kfR/2vfjf8L7D4SH4QfAjSfI8DfA79pfVdQ+F+gDx9oPwv0z4m3K+F7vwH4Quzqt34yfW9b/ALFA1/UdTW+1BL8A+vf+DU//AIJdfsKf8FJf+G8f+G1fgaPjT/wpcfsvH4a4+Jvxg+HP/CN/8LF/4aK/4TED/hU/xD8CDVjrH/CBeE8HxENROn/2d/xLRZfb777aAf6Ov/DLvwK/4Zb/AOGK/wDhB/8AjGb/AIUF/wAMtf8ACtP+Ek8Y/wDJCv8AhXH/AAqn/hB/+Ey/t/8A4T7P/CBf8U7/AMJL/wAJZ/wleP8AiY/2/wD27/p9AH5Df8QuX/BCn/oxv/zZb9sD/wCiCoA/kF/4Kif8FRP26/8AgjD+3V8cv+Caf/BNL43/APDNv7E37Np+GR+CvwVPw0+D/wAYf+EM/wCFwfB/wD8fviP/AMXG+Pvw8+KPxb1//hIPiz8UfHfi/wD4q/x5rw0ca5/YmhLp3hbTtF0PTQD5A/4NhP2Dv2UP+Ch/7e/xc+Cv7Ynwpb4v/DHwz+yF49+KGg+G/wDhOviT8P8A7H460f4z/s/+EtO186x8LfGHgzxBdG18P+NPEtl/Zd5qt3ojHUPtd3p7XtjY3toAH/Bz3+wd+yh/wTw/b3+EfwV/Y7+FLfCD4Y+Jv2QvAXxQ17w3/wAJ18SfiB9s8dax8Z/2gPCWo6+NY+KXjDxn4gtTdeH/AAX4asv7Ls9VtNEU6f8Aa7TT1vb6+vbsA89/4NcP+U637Df0/aZ/9Y9/aBoA/wBPX9ub/gl5+wp/wUnPww/4bV+Bv/C6B8Fv+E3/AOFaj/hZvxf+HJ8OH4jf8Ie3jEAfCf4heAzqx1YeBfCQ/wCKhOo/YP7NzpgsTfakb0A+Bf8AiFy/4IU/9GN/+bLftgf/AEQVAH84f/Bz1/wRq/4Juf8ABO/9gb4SfGj9jv8AZwHwf+Jvib9rzwH8Ltf8Sf8AC4fjx4/F94E1n4MftAeL9S0H+x/il8UfGmgW32rxB4K8NXg1W00q11yMaf8AYrPUFsL/AFCyvQD+EGgAoA/0/P8Agyq/5RY/Hv8A7P8Avin/AOs7fsrUAftx8Nf+CNP/AATd+EH7Y+pf8FAPh1+zgfDv7XOsfED4s/E/Ufi0vxg+O+ribx18cbDxhp/xR8Qf8IF4g+KGqfDO2bxRa+PPF9oNKtfBq6Lon9s7tB07TWsdOeyAP1EoAKAP/9P+/igD+X//AIOPv+CK/wC1N/wV/wD+GNT+zX4++AXggfs8/wDDRH/Caf8AC8vFPxG8M/2l/wALb/4UX/wjx8MnwD8KPij9sFn/AMKy8QHWf7X/ALDNn9s0X+zxqG++FgAfyT/tB/8ABo3/AMFIv2bfgF8cP2ivHPxq/Yh1TwR8AfhF8TPjT4y0vwp8Rvjxd+KdU8LfCzwZrnjnxBYeGLDV/wBmrQ9LvNeu9K0O9tdGtdV1rRdNu9RNnHfalY2Re9QA/Vz/AIMY/wDnKH/3ZT/79rQB+3f7ef8Awc9/sEf8E8P2sPiv+x58avhF+194l+J3wfHgf/hI9d+F/gL4Max4FvR4/wDht4Q+KWjDQNR8W/tAeBvEF0LbQPGWk2eqfbvDVgF1q1v7Oz+22S2V/dgH6P8A/BT3/gp58BP+CTvwG8IftFftF+Efi74x8EeM/i5ofwY0zTPgvofgzxF4qt/FfiLwb498cafe31h45+IPw50mHQV0r4c63a3d1a61e6h/aN5piLpjWUl9e2gAf8Ewv+CnnwE/4KxfAbxf+0V+zp4R+Lvg7wR4M+LmufBjU9M+NGh+DPDviq48V+HfBvgLxxqF7Y2Hgb4g/EbSZtBbSviNolraXV1rVlqH9o2epo2mLZR2N7dgH8o3jr/gmF8e/wDgjn/wVD/aB/4OEf2mvF3wi8dfsZ/D39p/9qL40a38NPgPrvjDxN+0/deFP20fEvxN+C3wu0/TPBXxA+H3ww+FFx4g0PxR+0X4FvvH1rd/Gex0/TdC07xXe+HtT8WX9louna4AfjF/wcff8FqP2Wf+Cv8A/wAMaj9mvwD8ffBB/Z5/4aI/4TT/AIXl4W+HPhn+0v8Ahbf/AAov/hHh4ZHgH4r/ABR+2Gz/AOFZeIBrP9r/ANhiz+2aL/Z51DffGwAP7eP+dWT/ALwB/wDwO6gD/Pq/4N6v+CnvwC/4JPftm/E79ov9ovwn8XvGPgrxj+zB42+C+laZ8GNC8GeIfFMXinxH8Vfgp45sdQ1Cx8dfEL4c6XBoS6V8OdXtbq6tNZvNQGoXumRppstk17e2AB8w/wDBZX9tT4Wf8FEf+Ckn7R/7YfwW0Lx/4Y+GHxgHwgbw3oPxQ03w9o3jqy/4V78Bfhh8MNY/t3TPCfijxzoFsbnXvBWsXOk/YfEmob9HutPur37FfPe6faAH92//ABGq/wDBLH/ogv7f3/hq/wBnb/6KqgD92v8AgmF/wU8+An/BWL4DeL/2iv2dPCPxd8HeCPBnxc1z4Manpnxo0PwZ4d8VXHivw74N8BeONQvbGw8DfEH4jaTNoLaV8RtEtbS6utastQ/tGz1NG0xbKOxvbsA5z/gsr+xX8U/+CiP/AATb/aP/AGPPgtrvgDwz8T/jAfhAvhvXvihqXiHRvAtl/wAK9+PXww+J2sHXdT8J+F/HOv2wutB8Faxa6T9h8N6hv1i5061vfsVi97qFoAfwlf8AEFT/AMFTP+i9/sA/+HV/aJ/+hRoA/ob/AGI/+DhH9jH9mrxX+yN/wRg8c/DP9p7VP2ovgHr/AMA/+CYHjHx34T8F/Cm++AWo/Hz4Wal4V/ZR1/xd4Z8Uax8bNB+Il38H7r4iaFeaxo3iHVfhZovja68EtY3+oeA7DXWfw+gB+3v/AAU9/wCCnnwE/wCCTvwG8IftFftF+Efi74x8EeM/i5ofwY0zTPgvofgzxF4qt/FfiLwb498cafe31h45+IPw50mHQV0r4c63a3d1a61e6h/aN5piLpjWUl9e2gB/FP8AtRf8EWP2o/8Ag4f+Onjn/gsR+xX4++AXwy/Zo/a+/wCEb/4Vp4H/AGo/FPxG8F/HXQj8AfB+hfsv+MR448L/AAo+FHxt8B6X/aPj74J+K9X8Nf8ACPfE7xSL7wnfaDqGo/2Hrl7qHh/QwA/Zd/4IsftR/wDBvB8dPA3/AAWI/bU8ffAL4m/s0fsg/wDCSf8ACy/A/wCy54p+I3jT4666fj94P139l/wcPA/hf4r/AAo+CXgPVP7O8ffGzwpq/iX/AISH4neFhY+E7HXtQ07+3NcstP8AD+uAH6/f8Rqv/BLH/ogv7f3/AIav9nb/AOiqoA+u/wBgz/g57/YI/wCCh/7WHwo/Y8+Cvwi/a+8NfE74wDxx/wAI5rvxQ8BfBjR/AtkPAHw28X/FLWRr+o+Ev2gPHPiC1FzoHg3VrPS/sPhq/Da1dWFnefYrJr2/tAD+kGgAoA//1P7+KAP5f/8Ag4+/4LUftTf8EgP+GNR+zX4B+AXjcftDf8NEf8Jp/wALy8LfEbxN/Zv/AAqT/hRf/CPDwyPAPxX+F32MXn/CzfEA1n+1/wC3DefY9F/s86fsvjfgH6+fCYH/AIKTf8EtfhoPjmD4VH7fX7APg7/hcR+Ev/EiXw1/w1P+zvprfED/AIVqPF58dHSTpH/Ceax/wh3/AAk//CajT/smn/263iHZeregHgP/AASn/wCCLH7Lf/BH/wD4Xz/wzT48+Pvjj/hoc/CweNv+F5eKvh14l/s0fCU/EQeHf+EY/wCEA+EvwwNob3/hZviE60dX/tv7Z9i0X7B/Z4jvRegHyB+3n/wbCfsEf8FD/wBrD4r/ALYfxq+Lv7X3hr4nfGAeB/8AhI9C+F/j34MaP4Fsh4A+G3hD4W6MdA07xb+z/wCOfEFqLnQPBuk3mqfbvEt+G1q6v7yz+xWTWVhaAH4DfsV/tqfFP/g7F+KWuf8ABOz/AIKJaD8Pvg18Ffgx4B1T9tXwz4n/AGLNK8Q/Dn4qX/xS+HGv+F/gdo2ga/rHx08U/tIeDrvwBd+F/wBo3xvfavpNl4I0bX7vX9P8K31p4rsdOsdZ0TXAD+xj/gmF/wAEw/gJ/wAEnfgN4v8A2df2dPF3xd8Y+CPGfxc1z4z6nqfxo1zwZ4i8VW/ivxF4N8BeB9QsrG/8DfD74c6TDoK6V8OdEurS1utFvdQ/tG81N21NrKSxsrQA+Iv+Do//AJQU/tyfX9mb/wBbC/Z+oA/yBqAP9pT9iL4K+Ff2k/8Agh1+yR+zp46v/EOleCfj/wD8Eo/gH8F/GOp+E7zT7PxRpnhX4qfsheFPAviC+8L3+s6Xruk2eu2ek67eXWjXer6PrdhaX62cl/pmoWYNi4B+M/8AxBVf8Esf+i9ft/f+HU/Z2/8AoVaAD/iCq/4JY/8ARev2/v8Aw6n7O3/0KtAB/wAQVX/BLH/ovX7f3/h1P2dv/oVaAP3a/wCCYX/BMP4Cf8EnfgN4v/Z1/Z08XfF3xj4I8Z/FzXPjPqep/GjXPBniLxVb+K/EXg3wF4H1Cysb/wADfD74c6TDoK6V8OdEurS1utFvdQ/tG81N21NrKSxsrQA/jG/bc/4O5P8AgpF+zd+2d+1z+zr4G+Cv7EOqeCfgD+1D8ffgt4O1TxX8Ofjxd+KdT8LfCv4q+K/A3h+/8UX2j/tKaJpV5r15pOh2d1rN1pWjaJp13qBvHsdNsbJlsUAPmD/iNW/4Kmf9EE/YB/8ADVftE/8A0V1AH6+/8OWf2Wf+GW/+Iiv/AIT74/f8Ntf8KB/4fT/8Kw/4Sj4d/wDDK/8Aw1N/wrj/AIbm/wCEC/4Qr/hVH/C2P+Gf/wDhbP8AxTv/AAjP/C7v+Fi/8K8/4kv/AAtf/hKf+KroA+Qv2K/21Pin/wAHYvxS1z/gnZ/wUS0H4ffBr4K/BjwDqn7avhnxP+xZpXiH4c/FS/8Ail8ONf8AC/wO0bQNf1j46eKf2kPB134Au/C/7Rvje+1fSbLwRo2v3ev6f4VvrTxXY6dY6zomuAHn/wC1F/wWn/aj/wCDeD46eOf+CO/7FfgH4BfE39mj9kH/AIRv/hWnjj9qPwt8RvGnx110/H7wfoX7UHjE+OPFHwo+K/wS8B6p/Z3j742eK9I8Nf8ACPfDHwsLHwnY6Dp+o/25rllqHiDXAD+nv/g6P/5QU/tyfX9mb/1sL9n6gD/IGoA/f/8A4NcP+U637Df0/aZ/9Y9/aBoA/wBfmgAoA//V/v4oA/gD/wCD5z/nF5/3et/76VQB/Qz4T8WeK/AP/Bsp4b8c+BfEniHwZ418F/8ABCfR/Fvg7xj4S1m/8O+KvCnirw7/AME/7bV9A8T+Gdf0e6tNV0HXfD+rWdpq+j6xpF7aX+n6hZ2l/YXq3iqyAH8tH/BuD/wX0+Hf7PA/bJP/AAVq/wCCg/x+8RDxf/wzwf2f/wDheesftS/tP/Y/7B/4XoPisfC40fQPi0fA/wBo/tz4c/20bz+wf+En2aJ5f9pf2A/2AA9B/bx8B/8ABeH/AIKX/tYfFf8Abb/4I0/G39r3xn/wTa+Nh8Cj9m7xH8Lv24Zf2XvAup/8K5+G3g/4TfF/+wfgZ8UPjv8ABLx74E+x/HjwF8U7LVV1n4aeGP8AhJ9bs7/xfp39uaLr9h4h1QA/KH4K/wDBvz/wcnfs1+K7/wAc/s5/A34v/AHxtqugXfhLU/GPwX/bi/Zy+FninUvC97qGlaxf+F7/AMQ+Bf2m9D1W70G81bQ9G1a70i7vTp11f6LpmoSWhvNOsigB/Tx/wTC/4KTT/wDBHP4CeLv2ZP8Ag4R/an+L3w9/bO8dfF7Xfjr8NNF+NXiX4z/to+Kbv9mHxL4P8B/D7wdqth8UPgxB+0T4X0DQLj4sfDH40Wlp4BvfGmm67YX1lqfiG+8KWNh4s03XNfAPIP8AgvP/AMF6P+CUH7aP/BKD9qr9mr9mn9qofEj41/EgfA5vBXgk/A79o/weNZ/4Q/8AaP8Ag74+8Q58Q+Pfg74W8Iab/Zvhbwt4g1bGr+IbD7Z9g+w2H26/vbLT7oA+Av8Agzc/ZP8A2Wv2n/8Ah40f2l/2a/gF+0J/wg//AAx+PBP/AAvL4N/Dn4tHwj/wky/tP/8ACQ/8IufH/hrXhoP9vf2B4dbWzo62X9snQ9G+3C6/s+yRQD8hf2sP2tv+CmNp/wAFSv2k/wBiL9jv9sP9r7wD4ft/2/vjH+yv+y1+zv8ACf8Aan+J3wf+FvgnR4v2h/EHwm+CHwX+Gvhiw+I3g/4Y/C/wF4Zsx4Z8DeD/AA7Zjwr4F8EaDZadp9kdD0HT0FkAf1sf8G937I3/AAXx+Af7Z/xN8Y/8FTfFf7T2v/s+6j+zF4z8N+DrP41ftueHv2k/CsPxjvPit8FdV8P3Gn+B9I+PPxRudK18eCtE+IgtfFz+HbOzsbB9S0P+3LZ9dWxvwD+eT/g43/4KEft7/A//AILMftk/C/4Lftw/tffB/wCGfhj/AIZ8/wCEa+HXwu/aV+M/w/8AAnh8az+yx8Edf1j/AIR/wh4R8aaVoGlHVNf1TV9Z1b7DY2n2/W9R1DUr4te3t29AHQf8G93/AAXQ1/4Bftm/E7xj/wAFTf8Agof+07r37P2pfsw+NPDfg6z+NXxD/af/AGk/CsXxku/it8FdU0C5sPAujJ8U7jS9fHgzSfiItt4uk8O2FtZWDaloo121bXlsdQAP09/4Ke+Ov+Cof/BYz4+eEf2m/wDg3u/aB/af+If7GHgb4Q6F8CviXrPwV/ah8T/sXeFbX9p/w34x8efEHxjpeofC74z/ABN/Z18Ua9r9v8KPih8F7u78f2fgzUND1GwvtM8P2XivUL/wnqWjaGAfgN/wRL+AOpeP/wDg4V+FP7P/AO3n8P8AQPjV42j+L/7aHhr9pzwJ8fYfC3x80/xT8ZfBPwK/aLvvG1z8QLrxDdeOvC/xJ1/TvizoFz4ifxfc3via11HxRYW3iux1vUbw2mpMAf6av/Dp7/gln/0jU/YC/wDEOv2dv/nb0AfHf/D5D/gib/wtP/h1x/wt7wB/wln/AAsH/hgb/hlH/hl343/8Kt/4SX/hIv8Ahnf/AIZ6/s//AIUZ/wAKQ/4QH+0/+Lc/Yv7V/wCFVf2B+7+3/wDCJ/6ZQB8gf8Fp/wDglt8XtJ/Zc8Azf8EKP2XPh/8AsyftdS/HzwrD8RPHv7Fc/wAEf2Gvinq/7OP/AArn4ot4v8I6/wDFnw/r/wAEbvX/AAHefE9fhBq+r/Dl/F1/aa1ruheFPER0G+k8JpqOigHwH+y5+0r/AMEcP2QfgV4E/Z4/4OAPDvwC8Xf8FcPh9/wkx/a01/8Aai/ZQ1/9uH476ifFXjHX/G/wHHjn9qDw38G/2gtE+J4tv2afEvwYsfDQsvi74qPgvwlZ+H/hzd/2FeeE7vwvooB+A/8AwQa/aw/ak/bg/wCCr/7Kv7L37an7Svx8/bA/Zm+Jw+OK/Ev9nf8Aai+MfxH+P/wJ+IX/AAhX7OHxh+IPg8eOfhD8WPEfi/wF4r/4RTx/4Q8J+OvDX/CR+HL/APsLxb4X0HxVposdb0TTb60AP7NP20/G3/Bsh/wTu+KOh/Bb9sP9mX9gL4QfE3xN4A034n6H4ZP/AATasPiF9t8C614h8U+EtM1v+2Phh+zV400C2+1a94L8S2J0m61e01lBp/22709LG+0+9vQA/YM/bf8A+Daj4v8A7V3wp+HX/BP/AMGfshaV+1v4gbxyfhLffC7/AIJ8eJ/gd47g/sn4b+MNd8fHQPifqX7NXgC08LG4+Gem+MbTVvtfi/RjrmiNqGgKdQk1NdNvwD+kKgAoA//W/v4oA/gD/wCD5z/nF5/3et/76VQB+/n/ADqyf94A/wD4HdQB/kD0Af1//wDBLv8A4OsB/wAE2f2Ffgb+xWP2Df8AhdA+C5+Jp/4WUP2n/wDhXQ8SD4i/GHx/8Wf+RP8A+GdvHn9knSv+E7/4R3P/AAkt/wDbf7OGpf6D9u/s+yAPv3/iOc/6xef+brf/AJJtAB/ww3/xGBf8bLP+Fo/8O8f+FI/8YNf8KW/4Qn/hrP8A4Sn/AIVn/wAX+/4Wh/wsb/hL/wBmr+xP7c/4aZ/4RH/hB/8AhA9b/s7/AIQf+3f+Erv/APhIP7F0AAP+IGP/AKyh/wDmlP8A+VlQAf8AKl7/ANZJv+Hkv/dnX/CmP+GOP/EpP+Fif8LH/wCGpv8AqR/+EU/4Qb/mav8AhKv+JAAfzD/snfHMftQf8F8P2af2lh4V/wCEHH7Q/wDwV8+Dnxz/AOEJ/tv/AIST/hED8Wv2zvD/AI/Hhf8A4SI6ZoP9vnQP7fOkf2wND0L+2DZrf/2Lp5l+xRAH+zpQB/ID/wAFRf8Ag1P/AOHk37dXxy/bUP7eI+Cx+NI+GQ/4Vr/wy+fiMfDh+HPwe8A/Cf8A5HH/AIaJ8Bf2t/av/CCf8JFgeGNPFkdQ/s7F8LH7degH8RH/AARY/wCCU3/D4H9qXx9+zQPjz/wzz/whHwC8U/HIeNh8Kx8Wv7S/4Rv4jfC3wCfDH/CPf8LF+GH2P7YPicNX/tv+27r7J/YpsP7Gf+0PttgAf08/8Nyf8Qfv/GtP/hV3/Dw7/hd3/Gcv/C6f+E2/4ZM/4Rb/AIWZ/wAWB/4Vf/wrn/hEP2lf7b/sP/hmb/hLv+E4/wCE80T+0f8AhOP7C/4RSw/4R/8AtrXwD7+/4Jd/8ENDrH7dPwP/AODgEftPi2/4am/4WZ+3L/wyafgr5/8Awgv/AA318IPH3ib/AIVgfjx/wthB4o/4VP8A8L6+x/8ACcj4OaB/wnB8Jfa/+ES8IjXTZ6CAff3/AAXM/wCC5n/Dl/8A4ZeA/Ze/4aTH7Sf/AAuzA/4XYfg9/wAIX/wp4/CXPzH4S/FD+3/+Eg/4Wj6aJ/Yv9hf8xEaiFsgD/MK/4bl/42l/8PLf+FX/APN/v/Dcv/Cl/wDhNR1/4aJ/4X//AMKv/wCFjf8ACH5/6lH/AITn/hBP+o9/wieP+JHQB/Xz/wARzn/WLz/zdb/8k2gD+Qn/AIKi/tzD/gpN+3V8cf21R8Lj8GD8aB8NC3w2PjZviP8A8I1/wrn4P+AfhOP+KxXwf4D/ALW/tceBP+EiIPhfTv7POof2cTqH2EX92Af17f8ADjT/AIhsP+N1H/DUP/DZ/wDwxnz/AMM1/wDCkv8AhnX/AIWR/wANFf8AGJ//ACWH/hbnx2/4Q3/hDf8Ahe3/AAnn/JKvFX9v/wDCL/8ACK/8SP8Atz+39NAP5hv+C0//AAVZ/wCHwP7UvgH9pc/Ab/hnn/hCPgF4W+Bp8En4qD4tf2l/wjfxG+KXj4eJ/wDhIf8AhXXww+x/bB8TjpH9if2JdfZP7FF//bL/ANofYrAA/r3/AOCBf/BuCf2d/iH/AME+f+CtI/bJ/wCEwPiH4AaR8dP+FAj9ngaAbP8A4ag/ZY13Rv8AhFh8Vj8btc+0f8IL/wALb+1/2yPhzH/wlH9gBP7F0A6j5mngH9v1ABQB/9f+/igD8/v25f8Ah1n/AMWv/wCHlv8AwwF/zO3/AApb/hub/hnXp/xSH/Cx/wDhV/8Awv7jOP8AhA/+E5/4RLn/AJFH+3uf7FoA89/4eDf8EYP+FWf8KM/4bf8A+CYf/Ckv+EA/4VR/wpv/AIaX/ZS/4VZ/wqz/AIR//hD/APhWv/Cv/wDhMf8AhFv+EB/4RX/imv8AhD/7I/sH+wf+JJ/Z/wDZ3+hUAfIX/HLJ/wBYA/8AzndQAf8AHLJ/1gD/APOd1AB/xyyf9YA//Od1AH6d/sV/8MCf8Ku1z/h3V/wyD/wpP/hYGrf8JN/wxV/wpn/hVf8AwtP/AIR7wp/bX/CQf8KN/wCKU/4T7/hFP+EF/tX7d/xUH9gf8Ip9u/4l39jUAf5d/wC3H+23/wAFcfGn/BVv9uj9nX9lv9rn/go14r1i1/be/bB8JfCn4D/AP4+ftMa/qNn4W8BfGD4n3Nv4a+H3ww+H/i66urfQvB3gvw9eXMejeG9GFh4e8LaJdSLZ2Wiac5QA+YPjp+yf/wAF8f2oB4WH7S/7NH/BXr9of/hBhrY8E/8AC8/g5+2b8Wh4QPiT+yf+Eh/4Rj/hP/DevHQW1/8AsHRBrS6SbP8AtltD0X7f9q/s6x2AH+gl4T/4JlfAPwF/wQ58NeOfAv8AwT8+EPg3/god4L/4JSaN4t8HeMfCP7KXgnw7+2h4W/bQ8Ofsg22r+H/EvhnX9H8B2fxv0H9p3QPjfZ2er6PrOj3tp8VdP+KlnZ39jep4tRHoA/gN+NX7Qv8AwcL/ALNfhax8dftF/G3/AILOfAPwTquu2nhHSvGPxr+JH7b/AMLPC2oeKr7TdU1ix8M6d4g8ca7oOlXPiC60vQda1az0e1vGv7yw0TUL5LI2en3rqAf3qf8ABBj/AIKwfsuD/gk/+yt/w2r/AMFKvgF/w0x/xfP/AIWV/wANRftjfDcfHf8A5OP+MP8Awh3/AAm//C2fiN/wnp/4oI+Eh4aPiLn/AIRP+wjp+dDOmrQB+Uf/AAcI/tCf8E3v2av2Mfhl46/4IwfHH9iD4B/tRar+0/4M8J+O/GP/AATB+JXwJ+Fnx71L4BX3wp+NmseKPDPi7X/2Udc0L4i3fwfuviJoXws1bxFo2r3beCrrxtovgLUNQsm13T/D0kQAf8G937Qn/BN79pX9jH4m+Ov+Cz/xx/Yg+Pn7UWlftP8AjPwn4E8Y/wDBT74lfAn4p/HvTfgFY/Cn4J6x4X8M+Edf/au1zXfiLafB+1+Imu/FPVvDujaRdr4KtfG2tePdQ0+yXXdQ8QySgH84/wC0T+25/wAFH/Gn/BQr9p/9nP8A4J0/tc/tveLfhTZ/tP8A7R/hT9kj4FfsV/Hz48a78PLT4BeA/Hvjqf4beGf2cvhf8DfGFx4Zg+D3g34OaBZ3XgXSPhton/CFaB8N9BsToFnZeFNNR4gD4e/bm/4emf8AFr/+Hlv/AA37/wAzr/wpb/hub/horrjwf/wsf/hV/wDwv7nr/wAIH/wnP/CI9/8AhEv7e+X+xaAP9PT/AIJ7f8E+P+CWn/DrX9h/46fHP9h/9gJt37AX7NXxZ+MXxj+LP7NP7O3y/wDGO3gzxh8QPiR8SfiD4w8FqAABq/ibxj4x8TauT/x/65rt+2by9oA9d+Cv7PX/AAb0ftKeKb/wL+zp8Ev+CMnx88baVoV34u1Xwd8FPhv+xB8U/FOn+FbHUtL0e+8Taj4f8D6Fr2q23h+11TXtF0m81i6s1sLO/wBb06xe9F5qFkjAH+bZ/wAHG3wo+FXwP/4LMftkfC/4L/DX4f8Awf8Ahl4Z/wCGff8AhGvh18LvBvh74f8AgPw9/bH7LHwQ17WR4f8ACHhHTdK0DSjquv6pq2tar9gsLT7dreoajqV6Wvr67ZgDgf2pP+H+P/Ci/HP/AA2p/wAPfP8Ahmf/AIpr/hZf/DUX/DaH/CiP+Rw0D/hD/wDhOf8AhbP/ABQX/I9/8In/AMIz/wAJD/zN39g/2b/xPP7OoA+JPgt+xN+2d+0r4WvfHP7Ov7In7T3x88E6Tr114R1Txl8E/gF8V/in4V07xTZadpms6h4Z1DxD4H8I69pVr4gtNK13Q9VvdGurtNQtLDWtOv2tFtNQsnYA/q3/AODe3wj/AMFxvAP/AAU0/Yu8C/tN+G/+CrXgz9i/wZoHxY8J6z4M+O2jftfeHf2YPCnhbw5+y/8AFnRvhf4Z1Pw/4/gtPhToOgaD4otPBeleAdFvLSz03T9es/C1l4etItRTR41AP9JmgAoA/9D+/igD+AP/AIPnP+cXn/d63/vpVAH5R/s+f8Gjf/BSL9pL4BfA/wDaK8DfGr9iHS/BHx++EXwz+NPg3S/FfxG+PFp4p0vwt8U/Bmh+OfD9h4nsNI/Zq1zS7PXrTStcsrXWbXSta1rTbTUReR2OpX1kEvXAPXv+IKn/AIKmf9F7/YB/8Or+0T/9CjQAf8QVP/BUz/ovf7AP/h1f2if/AKFGgD85P+Cnv/BvV+2d/wAEm/gH4R/aJ/aL+J37MHjPwV4y+Luh/BjTNL+DHjX4q+IvE8HinxF4N8feObG+vrLxz8FPhxpcGhjSvhxrNpc3VrrN7qH9oXemoumtZSXt7YAH9jP/AAZVf8osfj3/ANn/AHxT/wDWdv2VqAPiDx1/wTC+Pf8AwRz/AOCof7QP/Bwj+014u+EXjr9jP4e/tP8A7UXxo1v4afAfXfGHib9p+68Kfto+Jfib8Fvhdp+meCviB8Pvhh8KLjxBofij9ovwLfePrW7+M9jp+m6Fp3iu98Pan4sv7LRdO1wA+3/+I1X/AIJY/wDRBf2/v/DV/s7f/RVUAf0b/wDDavwv/wCGBv8Ah4n/AGD8Qf8AhSf/AAyF/wANr/8ACM/2T4d/4Wl/wqv/AIUz/wALx/4R/wDsb/hK/wDhDv8AhP8A/hE/9A/sn/hPP7A/t/8A0P8A4Sr+zv8AidUAf59X/Bwj/wAHCX7GP/BWb9jH4Z/s6/s6fDP9pzwV408GftO+C/jVquqfGvwX8KPDXhafwt4a+E/xr8EX2n6dfeBvjZ8RtVuPEEmq/EfRbqzs7nRrKwaxtNSZ9SS7Szs78A+Iv2DP+DYT9vf/AIKH/sn/AAo/bD+Cvxd/ZB8NfDH4wHxx/wAI5oXxQ8e/GfR/HVkfAHxJ8X/C3WTr+neEv2f/ABz4ftTc6/4N1a80v7D4lvy2i3VheXn2K9a9sLQA/OH/AIJhf8Ew/j3/AMFYvjz4v/Z1/Z08XfCLwd438GfCPXPjPqep/GjXPGfh3wrceFPDvjLwF4H1Cysb/wADfD74jatNrzar8RtEurS1utFstP8A7Os9TdtTW9jsbK7AP3b/AOIKn/gqZ/0Xv9gH/wAOr+0T/wDQo0AflL/wTu+NPhb/AIIt/wDBaHw946/aistf8e6T+xJ8Xf2qfgv8VbX4BWth4o1LXfFWmfDn42fs7T33gC3+IupfCm11TQT4z1u01VLvxLd+FL9vCq3d82nJrSroTgH25/wcff8ABaj9ln/gr/8A8Maj9mvwD8ffBB/Z5/4aI/4TT/heXhb4c+Gf7S/4W3/wov8A4R4eGR4B+K/xR+2Gz/4Vl4gGs/2v/YYs/tmi/wBnnUN98bAA/vV/Z6+Cviv9pX/g3n+CX7OngW/0LSvG3x8/4Ix/DT4KeDdV8XXWo2HhXTvFPxT/AGIND8D+H9Q8S32j6Zr2q2vh+11TXrK51m80nQ9b1C0sFvHsbHULxUs3APyE/wCDe7/g3t/bO/4JM/tnfEz9or9ov4mfsx+NfBfjP9mLxn8FdK0v4KeM/it4k8UQeKfEnxY+Cfjex1DUbHxx8E/hzpVvoEek/DjWrW8vbbWb3UFv7vTgumvaSXd5YAH8kn/B0f8A8p1v25Pp+zN/6x7+z9QB/paf8Flf2K/in/wUR/4Jt/tH/sefBbXfAHhn4n/GA/CBfDevfFDUvEOjeBbL/hXvx6+GHxO1g67qfhPwv451+2F1oPgrWLXSfsPhvUN+sXOnWt79isXvdQtAD5h/4N6v+CYXx9/4JPfsZfE/9nT9ovxb8IfGPjXxj+0/42+NGlan8GNd8Z+IfCsXhbxH8Kvgp4GsdP1C+8dfD74c6pBrqap8OdYurm1tNGvNPGn3umyJqUl617ZWQB+8dABQAUAf/9H+/igD+AP/AIPnP+cXn/d63/vpVAH9HPwo+Kfjv4H/APBt98NvjT8Lde/4Rf4m/B//AIIieDvin8OvEf8AZuk61/wjvjz4f/sIad4v8Ia6NH8Q6Xqnh/VRpWv6VY339k61pWpaLf8A2M2Oo6deWD3Vm4B/nk/8RRn/AAXX/wCj4z/4jR+x/wD/AEPtAB/xFGf8F1/+j4z/AOI0fsf/AP0PtAH9fv8Aweq/8osfgJ/2f98LP/Wdv2qaAD/gyq/5RY/Hv/s/74p/+s7fsrUAfyif8Fqf+Cy3/BST4v8A7Qn/AAUY/wCCf/xG/aOHiH9kfR/2vfjf8L7D4SH4QfAjSfI8DfA79pfVdQ+F+gDx9oPwv0z4m3K+F7vwH4Quzqt34yfW9b/sUDX9R1Nb7UEvwD69/wCDU/8A4JdfsKf8FJf+G8f+G1fgaPjT/wAKXH7Lx+GuPib8YPhz/wAI3/wsX/hor/hMQP8AhU/xD8CDVjrH/CBeE8HxENROn/2d/wAS0WX2+++2gH92/wDwUI+F/gb4Gf8ABGT9t/4KfC7Qv+EY+GXwg/4JhftLfDD4c+Gv7U1rWv8AhHPAnw+/ZS8ZeEvB+gHWfEOo6truqjSdA0mxsTqutavf6zf/AGUXepX1/eveXrgH+cX/AMGwn7B37KH/AAUP/b3+LnwV/bE+FLfF/wCGPhn9kLx78UNB8N/8J18Sfh/9j8daP8Z/2f8Awlp2vnWPhb4w8GeILo2vh/xp4lsv7LvNVu9EY6h9ru9Pa9sbG9tAD6//AOCon/BUT9uv/gjD+3V8cv8Agmn/AME0vjf/AMM2/sTfs2n4ZH4K/BU/DT4P/GH/AIQz/hcHwf8AAPx++I//ABcb4+/Dz4o/FvX/APhIPiz8UfHfi/8A4q/x5rw0ca5/YmhLp3hbTtF0PTQD+cX9ir9vL9q//gnh8U9e+NP7HXxX/wCFQfEzxN8P9U+GOueI28DfDbx/9t8C6z4h8LeL9Q0E6R8UfB3jPQbc3Wv+DfDN4dWs9Itdaj/s82VjqAsb6/tL8A/08f8Ag2E/bx/av/4KH/sEfFz41ftifFYfF/4neGf2vvHvwv0HxJ/wgvw2+H/2PwLo/wAGP2f/ABbp2gHR/hb4P8GeH7oWviDxp4lvf7UvNKu9bYah9ku9QaysbGytAD3/AOLH/BuR/wAEZvjh8VviT8afij+xwPE/xN+L/j/xl8UfiL4kH7QX7VOj/wDCQ+O/iB4h1Lxf4v186N4e+N2l+HtL/tTxBqt/f/2Vo+laboth9r+xadp1nYLaWaAH8Y//AAdYf8Euv2FP+CbX/DB3/DFXwNHwW/4XQP2oT8Ss/E34wfEb/hJP+Fdf8M6/8IcD/wALY+IfjsaSdH/4T3xZk+HRpx1D+0f+JkL37BY/YgD8w/hP/wAHG/8AwWZ+B/wp+G3wW+F37Y58MfDL4QeAPBvwu+HXhs/s+/srax/wj3gT4f8Ah7TfCHhDQBrPiH4I6p4h1T+y/D+lWFh/ausarqWtX/2T7bqOo3l+13eOAd7/AMRRn/Bdf/o+M/8AiNH7H/8A9D7QB+RH7Uf7Ufx1/bR+Ovjn9pX9pjxwPiV8bPiQPDI8beNx4b8IeEBrA8H+D9B8AeHj/wAI98P/AA/4W8IaX/ZvhXwv4e0j/iT+HbD7d9hF/ffbNQvL29vQD9d/+Ioz/guv/wBHxn/xGj9j/wD+h9oAP+Ioz/guv/0fGf8AxGj9j/8A+h9oA/X/AP4IMf8ABej/AIKv/to/8FX/ANlX9mr9pb9qo/Ej4KfEg/HFvGvgkfA79nDwedZ/4Q/9nD4xePvD2PEPgL4O+FvF+m/2b4p8LeH9WxpHiGw+2fYPsN/9usL290+6AP8AR6oAKAP/0v7+KAP4A/8Ag+c/5xef93rf++lUAfv5/wA6sn/eAP8A+B3UAf5A9ABQB/p+f8Hqv/KLH4Cf9n/fCz/1nb9qmgA/4Mqv+UWPx7/7P++Kf/rO37K1AH8wn7PH7UXwK/Yv/wCDqn9oD9pX9pfx1/wrb4KfDf8Ab9/4Kdf8Jv41Hhvxh4vOijxjB+1P4A8PAeHfh/oHirxdqX9peK/FPh7SP+JR4ev/ALF9ua/vfsWn2V7fWoB77/wdYf8ABUX9hT/gpL/wwd/wxV8ch8af+FLj9qEfErPwy+MHw5/4Rv8A4WL/AMM6/wDCHE/8LY+HngQasdY/4QLxZkeHTqJ0/wDs7/iZGy+32P20A/o5/wCCe3/Bxv8A8EZvgf8AsE/sO/BX4pftj/8ACMfE74P/ALIH7Nfwu+Inhv8A4Z9/ao1j/hHvHfw/+DHgrwj4v0A6x4e+COqeH9U/srX9Kv7D+1dH1TUtFvzZ/btO1G7sHs7pgD9ff2K/+Cyv/BNv/goj8Utd+C37Hn7R5+MHxN8NeAdS+KOu+Gx8IPjz8PRZeBtE8Q+F/Cep67/bHxP+F3gnQLk2+v8AjPw3YDSbXV7zWpP7Q+22ti9jY6je2QB+olAH+Gb+xV+wb+1f/wAFD/inr3wW/Y6+FH/C3/iZ4Z+H+qfE7XPDjeOfht4A+xeBdG8Q+FvCGoa8dX+KPjHwZoNwbXX/ABl4ZszpNnq91rUn9oG9sdPNjY393YAH92n/AARY/ag+BP8AwbwfsteP/wBiz/gsR45/4ZB/aX+J/wAffFH7Ufgf4ajw14u+P39u/Anxp8Ofhb8KPDHjkeMP2XNA+NvgPTP7U8efBP4oeHv+EZ1bxZY+LbAeFhqeo6BZ6Hrvh7UdaAP7N/hT8UfAnxx+Fvw1+Nnwu10+J/hj8Xvh94Q+KHw68SDTNa0Y+JPAnxB8PaX4u8Ia9/Y3iDTtI17S/wC1tA1Wxvf7J1vR7HWrEXQtNRsdPvVurNAD+Er/AIPnP+cXn/d63/vpVAH6+f8ABJ//AILz/wDBJ8fst/8ABNX9ir/hqn/jJj/hQX7HH7Lv/Ctf+FG/tH/8l3Hw3+HPwn/4Qj/hMT8HT4C/5H3/AIp0eJT4u/4RL/mIf28dE/4mVAH7dftq/t5fsof8E8PhZoPxp/bF+K//AAqD4Z+JviBpfwx0PxGvgb4k+P8A7b471nw94p8X6doP9kfC7wb4y163+1aD4N8TXg1W80m10VP7PWyvtQF9fWFnegH5j/8AEUb/AMEKf+j5P/Naf2wP/ofaAE/4Oj/+UFP7cn1/Zm/9bC/Z+oA/yBqAP7Pv+DcH/gjV/wAFI/g9/wAFDP2Cv+CgPxF/ZuPh/wDZF1f4f/ED4n6f8WT8X/gTrLT+BPjj+yV8UdP+F+vjwD4f+KGqfE23/wCEouvHvhC1GlXXg0azon9shtf0/TUstQfTwD/S6oAKAP/T/v4oA/gD/wCD5z/nF5/3et/76VQB/Ux+xF8FfCv7Sf8AwQ6/ZI/Z08dX/iHSvBPx/wD+CUfwD+C/jHU/Cd5p9n4o0zwr8VP2QvCngXxBfeF7/WdL13SbPXbPSddvLrRrvV9H1uwtL9bOS/0zULMGxcA/Gf8A4gqv+CWP/Rev2/v/AA6n7O3/ANCrQAf8QVX/AASx/wCi9ft/f+HU/Z2/+hVoAP8Ag9V/5RY/AT/s/wC+Fn/rO37VNAB/wZVf8osfj3/2f98U/wD1nb9lagD+AT/grH/ylM/4KWf9n/8A7Y3/AK0R8R6AP1//AODcH/giv+yz/wAFf/8Ahso/tKePvj74IP7PP/DO/wDwhf8Awo3xT8OfDP8AaX/C2/8Ahen/AAkJ8THx98KPij9sNn/wrLw+dG/sj+wxZ/bNa/tAahvsRYAH5h/8MWfCr/h89/w7p/t7x/8A8KU/4ee/8MVf8JT/AGj4e/4Wp/wq3/hqv/hR39vf23/wi/8AwiH/AAnv/CL/AOm/2v8A8IL/AMI//b/+nf8ACIf2d/xJKAP9NH/gmF/wb1fsY/8ABJv4+eLv2if2dPid+0/4z8a+MvhFrnwY1PS/jP41+FXiLwxB4W8ReMvAPjm+vrGy8DfBT4capBrg1X4caNaW11daze6f/Z93qSNprXslle2AB+Ev/BZf/g56/b4/4J3/APBSP9o/9jv4LfCT9kPxR8Mvg+3wg/4RvX/ij4D+M+s+O70+P/gT8LfinrA17UvCP7QHgbw/dfZte8ZatZaV9i8NWJXRLXTrO9+3Xy3uo3YB+7X/AATC/wCDer9jH/gk38fPF37RP7OnxO/af8Z+NfGXwi1z4Manpfxn8a/CrxF4Yg8LeIvGXgHxzfX1jZeBvgp8ONUg1war8ONGtLa6utZvdP8A7Pu9SRtNa9ksr2wAD/gp7/wb1fsY/wDBWT4+eEf2if2i/id+0/4M8a+DfhFofwY0zS/gx41+FXh3wxP4W8O+MvH3jmxvr6y8c/BT4j6pPrh1X4j6zaXN1a6zZaf/AGfaaai6at7He3t+Afr5+z98FPC37NvwE+B37OfgXUPEOq+CfgD8Ifhl8F/B2qeK7zT7zxTqXhX4V+DdD8C+H9Q8UX2j6XoOk3mu3Wk6DZ3esXWlaPothe6gbxrHS9PsytkgB+cn/BVj/gix+y3/AMFgP+FDf8NLePPj74H/AOGeD8Ux4J/4Ub4q+HXhr+0h8Wj8Ox4i/wCEn/4T/wCEvxPN2bL/AIVl4eOinSP7E+x/bda+3/2gJLIWQB/mWfs9fBXwr+zV/wAHDHwS/Z18C3+u6r4J+Af/AAWc+GvwU8G6r4uutNv/ABVqPhb4Wftv6F4H8P6h4lvtI0zQdKuvEF1pWg2dzrF5pGiaJp95fvePYWGn2ZSzQA/tZ/4PVf8AlFj8BP8As/74Wf8ArO37VNAH+YHQB/uZft5fsVfCv/gof+yh8Vv2OvjVr3xA8M/DL4wf8IMfEmufDDVPD+jeO7H/AIQD4k+D/ijo50DUPF3hbxvoNsLjxB4N0qz1Q3nhi/3aJd31lZfYr9rW/sgD/Kw/4OFf+CYXwC/4JPftm/DH9nT9nTxZ8XvGPgrxj+zB4J+NGq6n8Z9d8GeIfFMXinxH8VfjX4GvtP0++8C/D34c6XBoS6V8OdIurW1u9GvNQGoXupyPqUtk1lZWAB/qLf8ABJ3/AJRZ/wDBNX/swL9jn/1nf4c0Aff9ABQB/9T+/igD+QL/AIOsP+CXP7dn/BSX/hg7/hir4Gn40f8ACl2/ahPxKB+Jnwe+HP8Awjn/AAsX/hnT/hDgf+FsfEPwIdX/ALX/AOED8WZ/4R3+0Bp407/iZfYhfWP20A/nl8J/8Eqv+DvTwB4T8N+BvA3iH9t7wX4K8F+H9G8JeDvB3hP/AIKjfDfw54W8KeFfDlhbaPoHhnwzoGkftfWelaDoWg6VaWekaNpGkWVpp2nWFnZ2On2aWaBEAN3/AIdqf8Hkf/RRf2/v/Fsfgj/6MegA/wCHan/B5H/0UX9v7/xbH4I/+jHoA8i+Nf8AwRR/4OoP2lPCth4F/aL8L/tP/HzwTpWvWnizSfB3xr/4KJ/BL4qeFdP8V2On6no9h4m0/QPG37VWv6Vaa/a6Vr+taTa6zbWaX1lp2t6hYi8Syvr1HAP7Fv8Ag2E/YO/av/4J4fsEfFz4K/tifCkfCD4neJv2vvHvxQ0Hw3/wnXw2+IH2zwLrHwY/Z/8ACWna+dY+FvjDxn4ftRdeIPBfiWy/su81W01tRp/2u709bK+sb27AP5Cf+ChP/BuR/wAFmfjh+3t+3F8afhb+xwfE/wAMfi/+1/8AtKfFH4d+JD+0F+yvo/8AwkPgT4g/Gfxr4v8ACOvjR/EPxu0vxBpf9q6Bqthf/wBlaxpem61YC8+xajp9pfpd2qgH9HX/AAan/wDBLn9uz/gm1/w3j/w2r8DT8F/+F0N+y8fhqB8TPg98Rv8AhI/+Fdf8NF/8JiB/wqf4h+OzpH9kf8J54Tx/wkX9njUBqP8AxLftosb77EAfkF/w4Z/4Kwf8P7/+G1v+GVf+MZ/+Hvf/AA1H/wALK/4Xj+zd/wAkH/4bR/4Wx/wnH/CHf8Li/wCE9z/wgP8AxUP/AAjX/CIf8Jb/AMw/+wP7b/4ltAH+j1QB8cfFD/gn1+wP8c/HWu/FL40fsP8A7IHxg+Jvic6cPEnxF+KH7NfwY+IHjrxD/Yuk6b4e0b+3/F/i/wAFatr+rf2VoGlaRo2lfb7+6Fjoun6fptiqWNjZpQB/nmf8O1P+DyP/AKKL+39/4tj8Ef8A0Y9AB/w7U/4PI/8Aoov7f3/i2PwR/wDRj0AH/DtT/g8j/wCii/t/f+LY/BH/ANGPQB/Tz/wbg/s1/wDBY/8AZ3P7ZI/4K1eJPj94i/4S/wD4Z4/4Z/8A+F5ftXaF+1B9j/sL/heh+K3/AAizaN8ZfiwPAxuRrvw4/tr7Z/YJ8T7NE8v+0v7CcaeAfo3+21/wTT/Zs8Z/AP8Aa7+If7O37FH7MFl+3b4s+EPx88ZfAn42+FPgp8EfAfx+s/2udd8G+KtZ+GPxT8M/Hq50Pw94l8G/GK3+Mlzovi/Rvi9c+OdB1vQPGws/F7eLNOv7NtbQA/np/wCCLP8AwTA/4K7at+1N48tf+C7Hw9+IH7TX7JCfALxVP8OvAP7af7SHwq/bm+FekftGj4jfC1fCPi7QfhP4g+MXxus9A8e2fwwb4vaPpPxFXwlYXmjaFr3ivw6Ndso/Fsmn60AfmD/wWV/4Nwf+Chnxh/4KR/tI/EX/AIJ/fsFfD/SP2RfEJ+EB+E2nfDD4gfslfA3wJA2jfAn4X+H/AB8NA+F+ofFLwFdeF/tHxN0vxjdaqLrwfo39t6y2oa+gvk1NNRvQDz//AIdqf8Hkf/RRf2/v/Fsfgj/6MegD+nj/AIIsf8Etvi9q37Lnj6b/AILr/sufD/8Aab/a6i+PniqH4d+Pf21J/gj+3L8U9I/Zx/4Vz8Lm8IeEdA+LPiDX/jdd6B4Ds/ie3xf1fSPhyni6wtNF13XfFfiIaDYyeLH1HWgD+lrwn4U8LeAfC/hvwN4G8NaF4L8D+C9C0fwn4O8HeE9I07w34V8KeFfDWnWuj+HvDPhnw9o9pa6Xofh7Q9LtbPSdG0fSbOysNPsLKzsbGyjs0RaAOooAKAP/1f7+KACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoA/9b+/igAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKAP/Z" webUI["html/img/m3u.png"] = "iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAAAXNSR0IArs4c6QAAAAlwSFlzAAAsSwAALEsBpT2WqQAABCRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IlhNUCBDb3JlIDUuNC4wIj4KICAgPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIgogICAgICAgICAgICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgICAgICAgICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyI+CiAgICAgICAgIDx0aWZmOlJlc29sdXRpb25Vbml0PjI8L3RpZmY6UmVzb2x1dGlvblVuaXQ+CiAgICAgICAgIDx0aWZmOkNvbXByZXNzaW9uPjU8L3RpZmY6Q29tcHJlc3Npb24+CiAgICAgICAgIDx0aWZmOlhSZXNvbHV0aW9uPjI4ODwvdGlmZjpYUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6T3JpZW50YXRpb24+MTwvdGlmZjpPcmllbnRhdGlvbj4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+Mjg4PC90aWZmOllSZXNvbHV0aW9uPgogICAgICAgICA8ZXhpZjpQaXhlbFhEaW1lbnNpb24+NTA8L2V4aWY6UGl4ZWxYRGltZW5zaW9uPgogICAgICAgICA8ZXhpZjpDb2xvclNwYWNlPjE8L2V4aWY6Q29sb3JTcGFjZT4KICAgICAgICAgPGV4aWY6UGl4ZWxZRGltZW5zaW9uPjUwPC9leGlmOlBpeGVsWURpbWVuc2lvbj4KICAgICAgICAgPGRjOnN1YmplY3Q+CiAgICAgICAgICAgIDxyZGY6QmFnLz4KICAgICAgICAgPC9kYzpzdWJqZWN0PgogICAgICAgICA8eG1wOk1vZGlmeURhdGU+MjAxOC0wNy0yOFQxOTowNzozMTwveG1wOk1vZGlmeURhdGU+CiAgICAgICAgIDx4bXA6Q3JlYXRvclRvb2w+UGl4ZWxtYXRvciAzLjM8L3htcDpDcmVhdG9yVG9vbD4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgIDwvcmRmOlJERj4KPC94OnhtcG1ldGE+CumjVbcAAAGWSURBVGgF7VoxTgJRFGTFaGKBFnbEcABjb0fiBego7D2ABYmn8ARKRWFNQ6gx4QRQGWJJoY2VhXGdl7Dkh7Dsx3ns3yXvJ5P97L6d92bmhwYqlcWK43gK5L2enP51NP8F7pN721wPnOITZx9qG6HxI8QIZO+9XCHeL+VQKKm8QMyxb6+iCpH528AQYs58xIQWknV8mhDxCjEXWWJCC8maT55fAmOIudpUXAYhMn8dGEHMTZqYsgiR+U+BAcTcrhNTJiEy/xHQg5jOqpjD1RsBP3+id8u3P8TUoij6SuoLIwRDfWOofjLYtteyHa1UfcvvcUT1jqpGauVuHnyAdragjv/TAkley3uhj9Y5ZhDQa2+Olgmhz4IygSWibChNZ4nQFioTWCLKhtJ0lghtoTKBJaJsKE1nidAWKhNYIsqG0nSWCG2hMoElomwoTWeJ0BYqE1giyobSdJYIbaEygSWibChNZ4nQFioTWCLKhtJ0biJzmi1/guXMrpDn/OegO3bXMuAH0TtgAvwARV3y57Q34AGoJkL+AErKZ9cqbH7AAAAAAElFTkSuQmCC" - webUI["html/js/menu.js"] = "DQpmdW5jdGlvbiBzZXRNZW51SXRlbSgpIHsNCg0KICBtZW51ID0gbmV3IE9iamVjdCgpOw0KICBzdWJNZW51ID0gbmV3IE9iamVjdCgpOw0KDQogIHZhciBtZW51X20zdSA9IG5ldyBPYmplY3QoKTsNCiAgbWVudV9tM3VbIl9tZW51VHlwZSJdICAgICAgID0gImlucHV0QXJyYXkiOw0KICBtZW51X20zdVsiX2VsZW1lbnQiXSAgICAgICAgPSAiTEkiOw0KICBtZW51X20zdVsiX2NvbmZpZ0tleSJdICAgICAgPSAiZmlsZXMubTN1IjsNCiAgbWVudV9tM3VbIl90ZXh0Il0gICAgICAgICAgID0gIlBsYXlsaXN0IjsNCiAgbWVudV9tM3VbIl9pY29uIl0gICAgICAgICAgID0gImltZy9tM3UucG5nIjsNCiAgbWVudV9tM3VbIl9oZWFkbGluZSJdICAgICAgID0gIlBsYXlsaXN0czogTG9jYWwgb3IgcmVtb3RlIjsNCiAgbWVudV9tM3VbIl91c2FnZSJdICAgICAgICAgID0gIjxiPkluZm88L2I+PGJyPkF2YWlsYWJpbGl0eTogRmlsZSBhdmFpbGFiaWxpdHkgaW4gcGVyY2VudDxicj5TdHJlYW1zOiAgICAgIE51bWJlciBvZiBzdHJlYW1zIGluIHRoZSBmaWxlLjxicj5ncm91cC10aXRsZTogIFN0cmVhbXMgdGhhdCBhcmUgYXNzaWduZWQgdG8gYSBncm91cC4gU2ltcGxpZmllcyBmaWx0ZXJpbmcgc3RyZWFtczxicj50dmctaWQ6ICAgICAgIFRoaXMgSUQgaXMgdXNlZCBmb3IgYXV0b21hdGljIG1hcHBpbmcsIG11c3QgbWF0Y2ggd2l0aCB0aGUgY2hhbm5lbCBJRCBpbiB0aGUgWE1MVFYgZmlsZS48YnI+VW5pcXVlIElEOiAgICBTdHJlYW1zIHdpdGggYSB1bmlxdWUgSUQgdG8gaWRlbnRpZnkgdGhlbS4gQWxsb3dzIGNoYW5uZWwgbmFtZSBjaGFuZ2VzIGluIHRoZSBNM1Ugd2l0aG91dCBsb3NpbmcgdGhlIFhNTFRWIG1hcHBpbmcgKFBQViAvIGxpdmUgZXZlbnRzKS48YnI+PGJyPjxiPlVzYWdlIE0zVTo8L2I+PGJyPlJlbW90ZSBwbGF5bGlzdDogaHR0cDovL3lvdXIuaXB0di5wcm92aWRlci5jb20vZmlsZS5tM3U8YnI+TG9jYWwgIHBsYXlsaXN0OiAvcGF0aC90by9maWxlLm0zdTxicj48YnI+PGI+VXNhZ2UgSERIb21lUnVuOjwvYj48YnI+SVA6IDE5Mi4xNjguMS4xMDo1MDA0PGJyPiINCiAgbWVudV9tM3VbIm5hbWUiXSAgICAgICAgICAgID0gImZpbGUiOw0KICBtZW51X20zdVsiaWQiXSAgICAgICAgICAgICAgPSAiZmlsZSI7DQogIG1lbnVfbTN1WyJ2YWx1ZSJdICAgICAgICAgICA9IG1lbnVfbTN1WyJuYW1lIl07DQogIG1lbnVfbTN1WyJwbGFjZWhvbGRlciJdICAgICA9ICJQbGF5bGlzdDogbG9jYWwgb3IgcmVtb3RlIjsNCiAgbWVudV9tM3VbIm9uY2xpY2siXSAgICAgICAgID0gImphdmFzY3JpcHQ6IHRvZ2dsZU1lbnUodGhpcyk7IjsNCiAgbWVudV9tM3VbImNsYXNzIl0gICAgICAgICAgID0gIm1lbnUtbm90QWN0aXZlIjsNCg0KDQogIHZhciBtZW51X2ZpbHRlciA9IG5ldyBPYmplY3QoKTsNCiAgbWVudV9maWx0ZXJbIl9tZW51VHlwZSJdICAgID0gImlucHV0QXJyYXkiOw0KICBtZW51X2ZpbHRlclsiX2VsZW1lbnQiXSAgICAgPSAiTEkiOw0KICBtZW51X2ZpbHRlclsiX2NvbmZpZ0tleSJdICAgPSAiZmlsdGVyIjsNCiAgbWVudV9maWx0ZXJbIl90ZXh0Il0gICAgICAgID0gIkZpbHRlciI7DQogIG1lbnVfZmlsdGVyWyJfaWNvbiJdICAgICAgICA9ICJpbWcvZmlsdGVyLnBuZyI7DQogIG1lbnVfZmlsdGVyWyJfaGVhZGxpbmUiXSAgICA9ICJGaWx0ZXIgYnkgTTNVIHBhcmFtZXRlcnMsIGUuZy4gZ3JvdXAtdGl0bGUiOw0KICBtZW51X2ZpbHRlclsiX3VzYWdlIl0gICAgICAgPSAiPGI+VXNhZ2U6PC9iPjxicj5TcG9ydCAtIEFsbCBzcG9ydHMgY2hhbm5lbHM8YnI+U3BvcnQge0hEfSAtIEFsbCBIRCBzcG9ydHMgY2hhbm5lbHM8YnI+U3BvcnQge0hEfSAhe0VTLERFfSAtIEFsbCBIRCBzcG9ydHMgY2hhbm5lbHMsIGJ1dCBubyBTcGFuaXNoIGFuZCBHZXJtYW48YnI+PGJyPlRvIGZpbHRlciB0aGUgc3RyZWFtcyBvZiBhIEhESG9tZVJ1biwgdGhlIHBsYXlsaXN0IG5hbWUgY2FuIGJlIGVudGVyZWQ6PGJyPk15IHR1bmVyIHtIRH0iDQogIC8vbWVudV9maWx0ZXJbIl91c2FnZSJdICAgICAgID0gIjxiPlVzYWdlOjwvYj48YnI+QWxsIHNwb3J0cyBjaGFubmVsczogU3BvcnQ8YnI+QWxsIEhEIHNwb3J0cyBjaGFubmVsczogU3BvcnQge0hEfTxicj5BbGwgSEQgc3BvcnRzIGNoYW5uZWxzLCBidXQgbm8gU3BhbmlzaCBhbmQgR2VybWFuOiBTcG9ydCB7SER9ICF7RVMsREV9Ig0KICBtZW51X2ZpbHRlclsibmFtZSJdICAgICAgICAgPSAiZmlsdGVyIjsNCiAgbWVudV9maWx0ZXJbImlkIl0gICAgICAgICAgID0gIk0zVSI7DQogIG1lbnVfZmlsdGVyWyJ2YWx1ZSJdICAgICAgICA9IG1lbnVfZmlsdGVyWyJuYW1lIl07DQogIG1lbnVfZmlsdGVyWyJwbGFjZWhvbGRlciJdICA9ICJGaWx0ZXIgc3RyZWFtczogU3BvcnQiOw0KICBtZW51X2ZpbHRlclsib25jbGljayJdICAgICAgPSAiamF2YXNjcmlwdDogdG9nZ2xlTWVudSh0aGlzKTsiOw0KICBtZW51X2ZpbHRlclsiY2xhc3MiXSAgICAgICAgPSAibWVudS1ub3RBY3RpdmUiOw0KDQogIHZhciBtZW51X2lkID0gbmV3IE9iamVjdCgpOw0KICBtZW51X2lkWyJfbWVudVR5cGUiXSAgICAgICAgPSAiaW5wdXRBcnJheSI7DQogIG1lbnVfaWRbIl9lbGVtZW50Il0gICAgICAgICA9ICJMSSI7DQogIG1lbnVfaWRbIl9jb25maWdLZXkiXSAgICAgICA9ICJpZCI7DQogIG1lbnVfaWRbIl90ZXh0Il0gICAgICAgICAgICA9ICJQTVMgSUQiOw0KICBtZW51X2lkWyJfaWNvbiJdICAgICAgICAgICAgPSAiaW1nL251bWJlci5wbmciOw0KICBtZW51X2lkWyJfaGVhZGxpbmUiXSAgICAgICAgPSAiU2V0dXAgUE1TIGd1aWRlIG51bWJlciI7DQogIG1lbnVfaWRbIl91c2FnZSJdICAgICAgICAgICA9ICdTb21lIHBsYXlsaXN0cyBoYXZlIHVuaXF1ZSBjaGFubmVsIElEcy48YnI+RW50ZXIgdGhlIGtleXdvcmQgb2YgdGhlIElELiBUaGUgY2hhbm5lbCBhc3NpZ25tZW50IGluIFBNUyB3aWxsIGNoYW5nZSBhcyBhIHJlc3VsdC48YnI+PGJyPmUuZy4gY2hhbm5lbElEPGJyPiNFWFRJTkY6MCB0eXBlPSJzdHJlYW0iIDxiPmNoYW5uZWxJZDwvYj49IjgxIiwgTXkgU3RyZWFtaW5nIENoYW5uZWwgSEQ8YnI+PGJyPk9ubHkgZW50ZXIgaGVyZSBpZiB5b3Uga25vdyB3aGF0IHlvdSBhcmUgZG9pbmchJw0KICBtZW51X2lkWyJuYW1lIl0gICAgICAgICAgICAgPSAiaWQiOw0KICBtZW51X2lkWyJpZCJdICAgICAgICAgICAgICAgPSAiaWQiOw0KICBtZW51X2lkWyJ2YWx1ZSJdICAgICAgICAgICAgPSBtZW51X2lkWyJuYW1lIl07DQogIG1lbnVfaWRbInBsYWNlaG9sZGVyIl0gICAgICA9ICJVbmlxdWUgSUQgZnJvbSB0aGUgTTNVIGZpbGUiOw0KICBtZW51X2lkWyJvbmNsaWNrIl0gICAgICAgICAgPSAiamF2YXNjcmlwdDogdG9nZ2xlTWVudSh0aGlzKTsiOw0KICBtZW51X2lkWyJjbGFzcyJdICAgICAgICAgICAgPSAibWVudS1ub3RBY3RpdmUiOw0KDQoNCiAgdmFyIG1lbnVfeG1sdHYgPSBuZXcgT2JqZWN0KCk7DQogIG1lbnVfeG1sdHZbIl9tZW51VHlwZSJdICAgICA9ICJpbnB1dEFycmF5IjsNCiAgbWVudV94bWx0dlsiX2VsZW1lbnQiXSAgICAgID0gIkxJIjsNCiAgbWVudV94bWx0dlsiX2NvbmZpZ0tleSJdICAgID0gImZpbGVzLnhtbHR2IjsNCiAgbWVudV94bWx0dlsiX3RleHQiXSAgICAgICAgID0gIlhNTFRWIjsNCiAgbWVudV94bWx0dlsiX2ljb24iXSAgICAgICAgID0gImltZy94bWx0di5wbmciOw0KICBtZW51X3htbHR2WyJfaGVhZGxpbmUiXSAgICAgPSAiWE1MVFYgZmlsZXM6IExvY2FsIG9yIHJlbW90ZSI7DQogIG1lbnVfeG1sdHZbIl91c2FnZSJdICAgICAgICA9ICI8Yj5JbmZvOjwvYj48YnI+QXZhaWxhYmlsaXR5OiBGaWxlIGF2YWlsYWJpbGl0eSBpbiBwZXJjZW50PGJyPkNoYW5uZWxzOiAgICAgTnVtYmVyIG9mIGNoYW5uZWxzIGluIHRoZSBmaWxlPGJyPlByb2dyYW1zOiAgICAgTnVtYmVyIG9mIEVQRyBkYXRhPGJyPjxicj48Yj5Vc2FnZTo8L2I+PGJyPlJlbW90ZSBYTUxUViBmaWxlOiBodHRwOi8veW91ci5lcGcucHJvdmlkZXIuY29tL2d1aWRlLnhtbDxicj5Mb2NhbCAgWE1MVFYgZmlsZTogL3BhdGgvdG8vZ3VpZGUueG1sIg0KICBtZW51X3htbHR2WyJuYW1lIl0gICAgICAgICAgPSAieG1sdHYiOw0KICBtZW51X3htbHR2WyJpZCJdICAgICAgICAgICAgPSAieG1sdHYiOw0KICBtZW51X3htbHR2WyJ2YWx1ZSJdICAgICAgICAgPSBtZW51X3htbHR2WyJuYW1lIl07DQogIG1lbnVfeG1sdHZbInBsYWNlaG9sZGVyIl0gICA9ICJYTUxUViBGaWxlOiBsb2NhbCBvciByZW1vdGUiOw0KICBtZW51X3htbHR2WyJvbmNsaWNrIl0gICAgICAgPSAiamF2YXNjcmlwdDogdG9nZ2xlTWVudSh0aGlzKTsiOw0KICBtZW51X3htbHR2WyJjbGFzcyJdICAgICAgICAgPSAibWVudS1ub3RBY3RpdmUiOw0KDQogIG1lbnVfbWFwcGluZyA9IG5ldyBPYmplY3QoKTsNCiAgbWVudV9tYXBwaW5nWyJfZWxlbWVudCJdICAgPSAiTEkiOw0KICBtZW51X21hcHBpbmdbIl90ZXh0Il0gICAgICA9ICJNYXBwaW5nIjsNCiAgbWVudV9tYXBwaW5nWyJfaWNvbiJdICAgICAgPSAiaW1nL21hcHBpbmcucG5nIjsNCiAgbWVudV9tYXBwaW5nWyJfY29uZmlnS2V5Il0gPSAibWFwcGluZyI7DQogIG1lbnVfbWFwcGluZ1siX2hlYWRsaW5lIl0gID0gIlhNTFRWIGFzc2lnbm1lbnQgYW5kIHNvcnRpbmcgb2YgY2hhbm5lbHMiOw0KICBtZW51X21hcHBpbmdbImlkIl0gICAgICAgICA9ICJtYXBwaW5nIjsNCiAgbWVudV9tYXBwaW5nWyJvbmNsaWNrIl0gICAgPSAiamF2YXNjcmlwdDogdG9nZ2xlTWVudSh0aGlzKTsiOw0KICBtZW51X21hcHBpbmdbImNsYXNzIl0gICAgICA9ICJtZW51LW5vdEFjdGl2ZSBwaG9uZSI7DQoNCiAgbWVudV91c2VycyA9IG5ldyBPYmplY3QoKTsNCiAgbWVudV91c2Vyc1siX2VsZW1lbnQiXSAgID0gIkxJIjsNCiAgbWVudV91c2Vyc1siX3RleHQiXSAgICAgID0gIlVzZXJzIjsNCiAgbWVudV91c2Vyc1siX2ljb24iXSAgICAgID0gImltZy91c2Vycy5wbmciOw0KICBtZW51X3VzZXJzWyJfY29uZmlnS2V5Il0gPSAidXNlcnMiOw0KICBtZW51X3VzZXJzWyJfaGVhZGxpbmUiXSAgPSAiQWRtaW5pc3RyYXRpb24gb2YgdXNlcnMgYW5kIHBlcm1pc3Npb25zIjsNCiAgbWVudV91c2Vyc1siaWQiXSAgICAgICAgID0gInVzZXJzIjsNCiAgbWVudV91c2Vyc1sib25jbGljayJdICAgID0gImphdmFzY3JpcHQ6IHRvZ2dsZU1lbnUodGhpcyk7IjsNCiAgbWVudV91c2Vyc1siY2xhc3MiXSAgICAgID0gIm1lbnUtbm90QWN0aXZlIjsNCiAgbWVudV91c2Vyc1siX3VzYWdlIl0gICAgID0gIjxiPkF1dGhvcml6YXRpb24gZ3JvdXBzOjwvYj48YnI+V0VCOiBVc2VycyBjYW4gbG9nIGluIHRvIHRoZSB3ZWIgaW50ZXJmYWNlPGJyPlBNUzogUHJvZ3JhbXMgbGlrZSBQbGV4IGNhbiBhY2Nlc3MgdGhlIGNoYW5uZWwgbGlzdC4gTG9naW4gdmlhIERWUiBJUDogdXNlcm5hbWU6cGFzc3dvcmRAeHRldmUuaXA6cG9ydDxicj5NM1U6IEFsbG93cyBjbGllbnRzIHRvIGRvd25sb2FkIHRoZSBNM1UgcGxheWxpc3QuPGJyPlhNTDogQWxsb3dzIGNsaWVudHMgdG8gZG93bmxvYWQgdGhlIFhNTFRWIGZpbGUuPGJyPkFQSTogQWxsb3dzIGNsaWVudHMgdG8gdXNlIHRoZSBBUEkgaW50ZXJmYWNlLjxicj48YnI+ISEhIEZvciBQTVMgYXV0aGVudGljYXRpb24sIG9ubHkgdGhlIGZvbGxvd2luZyBzcGVjaWFsIGNoYXJhY3RlcnMgYXJlIHZhbGlkOiAhJCgpPS4sLTo7PGJyPjxicj5UaGUgaW5kaXZpZHVhbCBhdXRoZW50aWNhdGlvbiBncm91cHMgY2FuIGJlIGFjdGl2YXRlZCAvIGRlYWN0aXZhdGVkIGluIHRoZSBzZXR0aW5ncyBtZW51LiINCiAgDQogIG1lbnVfc2V0dGluZ3MgPSBuZXcgT2JqZWN0KCk7DQogIG1lbnVfc2V0dGluZ3NbIl9lbGVtZW50Il0gICA9ICJMSSI7DQogIG1lbnVfc2V0dGluZ3NbIl90ZXh0Il0gICAgICA9ICJTZXR0aW5ncyI7DQogIG1lbnVfc2V0dGluZ3NbIl9pY29uIl0gICAgICA9ICJpbWcvc2V0dGluZ3MucG5nIjsNCiAgbWVudV9zZXR0aW5nc1siX2NvbmZpZ0tleSJdID0gInNldHRpbmdzIjsNCiAgbWVudV9zZXR0aW5nc1siX2hlYWRsaW5lIl0gID0gIlNldHRpbmdzIjsNCiAgbWVudV9zZXR0aW5nc1siX3N1Yk1lbnUiXSAgID0gIjcwMSw3MDIsNzAzLDcwNCw3MDUsNzA2LDcwNyw3MDgsNzk5LDcxMCw3MTEsNzEyLDcxMyw3MTQiOw0KICBtZW51X3NldHRpbmdzWyJpZCJdICAgICAgICAgPSAic2V0dGluZ3MiOw0KICBtZW51X3NldHRpbmdzWyJvbmNsaWNrIl0gICAgPSAiamF2YXNjcmlwdDogdG9nZ2xlTWVudSh0aGlzKTsiOw0KICBtZW51X3NldHRpbmdzWyJjbGFzcyJdICAgICAgPSAibWVudS1ub3RBY3RpdmUiOw0KDQogIG1lbnVfbG9nID0gbmV3IE9iamVjdCgpOw0KICBtZW51X2xvZ1siX2VsZW1lbnQiXSAgICAgICAgPSAiTEkiOw0KICBtZW51X2xvZ1siX3RleHQiXSAgICAgICAgICAgPSAiTG9nIjsNCiAgbWVudV9sb2dbIl9pY29uIl0gICAgICAgICAgID0gImltZy9sb2cucG5nIjsNCiAgbWVudV9sb2dbIl9oZWFkbGluZSJdICAgICAgID0gIkxvZyI7DQogIG1lbnVfbG9nWyJfY29uZmlnS2V5Il0gICAgICA9ICJsb2ciOw0KICBtZW51X2xvZ1siaWQiXSAgICAgICAgICAgICAgPSAibG9nIjsNCiAgbWVudV9sb2dbIm9uY2xpY2siXSAgICAgICAgID0gImphdmFzY3JpcHQ6IHRvZ2dsZU1lbnUodGhpcyk7IjsNCiAgbWVudV9sb2dbImNsYXNzIl0gICAgICAgICAgID0gIm1lbnUtbm90QWN0aXZlIjsNCg0KICBtZW51X2xvZ291dCA9IG5ldyBPYmplY3QoKTsNCiAgbWVudV9sb2dvdXRbIl9lbGVtZW50Il0gICA9ICJMSSI7DQogIG1lbnVfbG9nb3V0WyJfdGV4dCJdICAgICAgPSAiTG9nb3V0IjsNCiAgbWVudV9sb2dvdXRbIl9pY29uIl0gICAgICA9ICJpbWcvbG9nb3V0LnBuZyI7DQogIG1lbnVfbG9nb3V0WyJpZCJdICAgICAgICAgPSAibG9nb3V0IjsNCiAgbWVudV9sb2dvdXRbIm9uY2xpY2siXSAgICA9ICJqYXZhc2NyaXB0OiBsb2dvdXQoKTsiOw0KICBtZW51X2xvZ291dFsiY2xhc3MiXSAgICAgID0gIm1lbnUtbm90QWN0aXZlIjsNCg0KICB2YXIgbWVudV9zY2hlZHVsZSA9IG5ldyBPYmplY3QoKTsNCiAgbWVudV9zY2hlZHVsZVsiX21lbnVUeXBlIl0gID0gImlucHV0QXJyYXkiOw0KICBtZW51X3NjaGVkdWxlWyJfZWxlbWVudCJdICAgPSAiTEkiOw0KICBtZW51X3NjaGVkdWxlWyJfY29uZmlnS2V5Il0gPSAidXBkYXRlIjsNCiAgbWVudV9zY2hlZHVsZVsiX3RleHQiXSAgICAgID0gIlNjaGVkdWxlIjsNCiAgbWVudV9zY2hlZHVsZVsiX2ljb24iXSAgICAgID0gImltZy9zY2hlZHVsZS5wbmciOw0KICBtZW51X3NjaGVkdWxlWyJfaGVhZGxpbmUiXSAgPSAiU2NoZWR1bGUgZm9yIHVwZGF0aW5nIE0zVSwgWE1MVFYgZmlsZXMgYW5kIGNyZWF0aW5nIGEgbG9jYWwgYmFja3VwIjsNCiAgbWVudV9zY2hlZHVsZVsiX3VzYWdlIl0gICAgID0gIjxiPlVzYWdlOjwvYj48YnI+MDgxNSA9IDg6MTUgYW08YnI+MTkzMCA9IDc6MzAgcG0iDQogIG1lbnVfc2NoZWR1bGVbIm5hbWUiXSAgICAgICA9ICJ1cGRhdGUiOw0KICBtZW51X3NjaGVkdWxlWyJpZCJdICAgICAgICAgPSAidXBkYXRlIjsNCiAgbWVudV9zY2hlZHVsZVsidmFsdWUiXSAgICAgID0gbWVudV9pZFsibmFtZSJdOw0KICBtZW51X3NjaGVkdWxlWyJwbGFjZWhvbGRlciJdPSAidGltZSBvZiBkYXkgKDI0LWhvdXIgY2xvY2spIjsNCiAgbWVudV9zY2hlZHVsZVsib25jbGljayJdICAgID0gImphdmFzY3JpcHQ6IHRvZ2dsZU1lbnUodGhpcyk7IjsNCiAgbWVudV9zY2hlZHVsZVsiY2xhc3MiXSAgICAgID0gIm1lbnUtbm90QWN0aXZlIjsNCg0KICB2YXIgbWVudV9maWxlc1VwZGF0ZSA9IG5ldyBPYmplY3QoKTsNCiAgbWVudV9maWxlc1VwZGF0ZVsiX2VsZW1lbnQiXSA9ICJMSSI7DQogIG1lbnVfZmlsZXNVcGRhdGVbIl9tZW51VHlwZSJdICAgICA9ICJjaGVja2JveCI7DQogIG1lbnVfZmlsZXNVcGRhdGVbIl9jb25maWdLZXkiXSAgICA9ICJmaWxlcy51cGRhdGUiOw0KICBtZW51X2ZpbGVzVXBkYXRlWyJfbGFiZWwiXSAgICAgICAgPSAiVXBkYXRlIHRoZSBwcm92aWRlciBmaWxlcyBhdCBzeXN0ZW0gc3RhcnR1cCI7DQogIG1lbnVfZmlsZXNVcGRhdGVbIl9oZWFkbGluZSJdICAgICA9ICJVcGRhdGUgdGhlIHByb3ZpZGVyIGZpbGVzIGF0IHN5c3RlbSBzdGFydHVwIjsNCiAgbWVudV9maWxlc1VwZGF0ZVsiX3VzYWdlIl0gICAgICAgID0gIlBsYXlsaXN0cyBhbmQgWE1MVFYgZmlsZXMgYXJlIHVwZGF0ZWQgYnkgeFRlVmUgYXQgc3lzdGVtIHN0YXJ0dXAuIg0KICBtZW51X2ZpbGVzVXBkYXRlWyJuYW1lIl0gICAgICAgICAgPSAiZmlsZXMudXBkYXRlIjsNCiAgbWVudV9maWxlc1VwZGF0ZVsiaWQiXSAgICAgICAgICAgID0gImZpbGVzLnVwZGF0ZSI7DQogIG1lbnVfZmlsZXNVcGRhdGVbInZhbHVlIl0gICAgICAgICA9IG1lbnVfZmlsZXNVcGRhdGVbIm5hbWUiXTsNCiAgbWVudV9maWxlc1VwZGF0ZVsib25jbGljayJdICAgICAgID0gImphdmFzY3JpcHQ6IHRvZ2dsZU1lbnUodGhpcyk7IjsNCiAgbWVudV9maWxlc1VwZGF0ZVsiY2xhc3MiXSAgICAgICAgID0gIm1lbnUtbm90QWN0aXZlIjsNCiAgDQogIHZhciBtZW51X3R1bmVyID0gbmV3IE9iamVjdCgpOw0KICBtZW51X3R1bmVyWyJfZWxlbWVudCJdICAgICAgPSAiTEkiOw0KICBtZW51X3R1bmVyWyJfbWVudVR5cGUiXSAgICAgPSAic2VsZWN0IjsNCiAgbWVudV90dW5lclsiX2NvbmZpZ0tleSJdICAgID0gInR1bmVyIjsNCiAgbWVudV90dW5lclsiX2xhYmVsIl0gICAgICAgID0gIkF2YWlsYWJsZSB0dW5lcnMiOw0KICBtZW51X3R1bmVyWyJfdGV4dCJdICAgICAgICAgPSAiVHVuZXIiOw0KICBtZW51X3R1bmVyWyJfaWNvbiJdICAgICAgICAgPSAiaW1nL3R1bmVyLnBuZyI7DQogIG1lbnVfdHVuZXJbIl9oZWFkbGluZSJdICAgICA9ICJOdW1iZXIgb2YgdHVuZXJzIjsNCiAgbWVudV90dW5lclsiX3VzYWdlIl0gICAgICAgID0gIlRoaXMgc2V0dGluZyBpcyBvbmx5IHVzZWQgYnkgUGxleCBhbmQgRW1ieS48YnI+VGhlIG51bWJlciBvZiBjb25jdXJyZW50IHN0cmVhbXMgYWxsb3dlZCBieSB0aGUgSVBUViBwcm92aWRlci48YnI+QWZ0ZXIgYSBjaGFuZ2UsIHhUZVZlIG11c3QgYmUgZGVsZXRlIGluIHRoZSBQTVMgRFZSIHNldHRpbmdzIGFuZCBzZXQgdXAgYWdhaW4uIg0KICBtZW51X3R1bmVyWyJuYW1lIl0gICAgICAgICAgPSAidHVuZXIiOw0KICBtZW51X3R1bmVyWyJpZCJdICAgICAgICAgICAgPSAidHVuZXIiOw0KICBtZW51X3R1bmVyWyJ2YWx1ZSJdICAgICAgICAgPSBtZW51X3R1bmVyWyJuYW1lIl07DQogIG1lbnVfdHVuZXJbInBsYWNlaG9sZGVyIl0gICA9ICJOdW1iZXIgb2YgdHVuZXJzIjsNCiAgbWVudV90dW5lclsib25jbGljayJdICAgICAgID0gImphdmFzY3JpcHQ6IHRvZ2dsZU1lbnUodGhpcyk7IjsNCiAgbWVudV90dW5lclsiY2xhc3MiXSAgICAgICAgID0gIm1lbnUtbm90QWN0aXZlIjsNCg0KICB2YXIgb3B0aW9uVmFsdWVzID0gbmV3IEFycmF5KCk7DQogIGZvciAodmFyIGkgPSAxOyBpIDw9IDEwMDsgaSsrKSB7DQogICAgb3B0aW9uVmFsdWVzLnB1c2goaSkNCiAgfQ0KICBtZW51X3R1bmVyWyJfb3B0aW9uVmFsdWVzIl0gPSBvcHRpb25WYWx1ZXM7DQogIA0KICB2YXIgbWVudV9lcGcgPSBuZXcgT2JqZWN0KCk7DQogIG1lbnVfZXBnWyJfZWxlbWVudCJdID0gIkxJIjsNCiAgbWVudV9lcGdbIl9tZW51VHlwZSJdICAgICA9ICJzZWxlY3QiOw0KICBtZW51X2VwZ1siX2NvbmZpZ0tleSJdICAgID0gImVwZ1NvdXJjZSI7DQogIG1lbnVfZXBnWyJfbGFiZWwiXSAgICAgICAgPSAiU2VsZWN0aW9uIG9mIHRoZSBFUEcgc291cmNlIjsNCiAgbWVudV9lcGdbIl90ZXh0Il0gICAgICAgICA9ICJFUEcgc291cmNlIjsNCiAgbWVudV9lcGdbIl9oZWFkbGluZSJdICAgICA9ICJTZWxlY3Rpb24gb2YgdGhlIEVQRyBzb3VyY2UiOw0KICBtZW51X2VwZ1siX3VzYWdlIl0gICAgICAgID0gIlBNUzogICBVc2UgRVBHIGRhdGEgZnJvbSBQbGV4IG9yIEVtYnkuPGJyPlhFUEc6ICBVc2Ugb2YgZXh0ZXJuYWwgRVBHIGRhdGEgKFhNTFRWKS48YnI+ICAgICAgIFNldmVyYWwgWE1MVFYgc291cmNlcyBwb3NzaWJsZS48YnI+ICAgICAgIEFsbG93cyBlZGl0aW5nIGFuZCBvcmRlciBjaGFubmVscy48YnI+ICAgICAgIE0zVSAvIFhNTFRWIGV4cG9ydCAoSFRUUCBsaW5rIGZvciBJUFRWIGFwcHMpLiINCiAgbWVudV9lcGdbIm5hbWUiXSAgICAgICAgICA9ICJlcGdTb3VyY2UiOw0KICBtZW51X2VwZ1siaWQiXSAgICAgICAgICAgID0gImVwZ1NvdXJjZSI7DQogIG1lbnVfZXBnWyJ2YWx1ZSJdICAgICAgICAgPSBtZW51X2VwZ1sibmFtZSJdOw0KICBtZW51X2VwZ1sicGxhY2Vob2xkZXIiXSAgID0gIkVQRyBzb3VyY2UiOw0KICBtZW51X2VwZ1sib25jbGljayJdICAgICAgID0gImphdmFzY3JpcHQ6IHRvZ2dsZU1lbnUodGhpcyk7IjsNCiAgbWVudV9lcGdbImNsYXNzIl0gICAgICAgICA9ICJtZW51LW5vdEFjdGl2ZSI7DQogIG1lbnVfZXBnWyJfb3B0aW9uVmFsdWVzIl0gPSBuZXcgQXJyYXkoIlBNUyIsICJYRVBHIik7DQoNCiAgdmFyIG1lbnVfeGVwZyA9IG5ldyBPYmplY3QoKTsNCiAgbWVudV94ZXBnWyJfZWxlbWVudCJdID0gIkxJIjsNCiAgbWVudV94ZXBnWyJfbWVudVR5cGUiXSAgICAgPSAiY2hlY2tib3giOw0KICBtZW51X3hlcGdbIl9jb25maWdLZXkiXSAgICA9ICJ4dGV2ZUF1dG9VcGRhdGUiOw0KICBtZW51X3hlcGdbIl9sYWJlbCJdICAgICAgICA9ICJBdXRvbWF0aWMgdXBkYXRlIG9mIHhUZVZlIjsNCiAgbWVudV94ZXBnWyJfaGVhZGxpbmUiXSAgICAgPSAiQXV0b21hdGljIHVwZGF0ZSBvZiB4VGVWZSI7DQogIG1lbnVfeGVwZ1siX3VzYWdlIl0gICAgICAgID0gIklmIGEgbmV3IHZlcnNpb24gb2YgeFRlVmUgaXMgYXZhaWxhYmxlLCBpdCB3aWxsIGJlIGF1dG9tYXRpY2FsbHkgaW5zdGFsbGVkLiINCiAgbWVudV94ZXBnWyJuYW1lIl0gICAgICAgICAgPSAieHRldmVBdXRvVXBkYXRlIjsNCiAgbWVudV94ZXBnWyJpZCJdICAgICAgICAgICAgPSAieHRldmVBdXRvVXBkYXRlIjsNCiAgbWVudV94ZXBnWyJ2YWx1ZSJdICAgICAgICAgPSBtZW51X3hlcGdbIm5hbWUiXTsNCiAgbWVudV94ZXBnWyJvbmNsaWNrIl0gICAgICAgPSAiamF2YXNjcmlwdDogdG9nZ2xlTWVudSh0aGlzKTsiOw0KICBtZW51X3hlcGdbImNsYXNzIl0gICAgICAgICA9ICJtZW51LW5vdEFjdGl2ZSI7DQoNCiAgdmFyIG1lbnVfYXV0b0JhY2t1cFBhdGggPSBuZXcgT2JqZWN0KCk7DQogIG1lbnVfYXV0b0JhY2t1cFBhdGhbIl9lbGVtZW50Il0gICA9ICJMSSI7DQogIG1lbnVfYXV0b0JhY2t1cFBhdGhbIl9tZW51VHlwZSJdICA9ICJzaW5nbGVJbnB1dCI7DQogIG1lbnVfYXV0b0JhY2t1cFBhdGhbIl9jb25maWdLZXkiXSA9ICJiYWNrdXAucGF0aCI7DQogIG1lbnVfYXV0b0JhY2t1cFBhdGhbIl9sYWJlbCJdICAgICA9ICJMb2NhdGlvbiBmb3IgYXV0b21hdGljIGJhY2t1cHMiOw0KICBtZW51X2F1dG9CYWNrdXBQYXRoWyJfaGVhZGxpbmUiXSAgPSAiTG9jYXRpb24gZm9yIGF1dG9tYXRpYyBiYWNrdXBzIjsNCiAgbWVudV9hdXRvQmFja3VwUGF0aFsiX3VzYWdlIl0gICAgID0gIkJlZm9yZSBhbnkgdXBkYXRlIG9mIHRoZSBwcm92aWRlciBkYXRhIGJ5IHRoZSBzY2hlZHVsZSwgeFRlVmUgY3JlYXRlcyBhIGJhY2t1cC4gVGhlIHBhdGggZm9yIHRoZSBhdXRvbWF0aWMgYmFja3VwcyBjYW4gYmUgY2hhbmdlZC4geFRlVmUgcmVxdWlyZXMgd3JpdGUgcGVybWlzc2lvbiBmb3IgdGhpcyBmb2xkZXIuIg0KICBtZW51X2F1dG9CYWNrdXBQYXRoWyJuYW1lIl0gICAgICAgPSAiYmFja3VwLnBhdGgiOw0KICBtZW51X2F1dG9CYWNrdXBQYXRoWyJpZCJdICAgICAgICAgPSAiYmFja3VwLnBhdGgiOw0KICBtZW51X2F1dG9CYWNrdXBQYXRoWyJ2YWx1ZSJdICAgICAgPSBtZW51X2F1dG9CYWNrdXBQYXRoWyJuYW1lIl07DQogIG1lbnVfYXV0b0JhY2t1cFBhdGhbIm9uY2xpY2siXSAgICA9ICJqYXZhc2NyaXB0OiB0b2dnbGVNZW51KHRoaXMpOyI7DQogIG1lbnVfYXV0b0JhY2t1cFBhdGhbImNsYXNzIl0gICAgICA9ICJtZW51LW5vdEFjdGl2ZSI7DQoNCiAgdmFyIG1lbnVfYXV0b0JhY2t1cEtlZXAgPSBuZXcgT2JqZWN0KCk7DQogIG1lbnVfYXV0b0JhY2t1cEtlZXBbIl9lbGVtZW50Il0gICA9ICJMSSI7DQogIG1lbnVfYXV0b0JhY2t1cEtlZXBbIl9tZW51VHlwZSJdICA9ICJzZWxlY3QiOw0KICBtZW51X2F1dG9CYWNrdXBLZWVwWyJfY29uZmlnS2V5Il0gPSAiYmFja3VwLmtlZXAiOw0KICBtZW51X2F1dG9CYWNrdXBLZWVwWyJfdGV4dCJdICAgICAgPSAiS2VlcCI7DQogIG1lbnVfYXV0b0JhY2t1cEtlZXBbIl9sYWJlbCJdICAgICA9ICJOdW1iZXIgb2YgYmFja3VwcyB0byBrZWVwIjsNCiAgbWVudV9hdXRvQmFja3VwS2VlcFsiX2hlYWRsaW5lIl0gID0gIk51bWJlciBvZiBiYWNrdXBzIHRvIGtlZXAiOw0KICBtZW51X2F1dG9CYWNrdXBLZWVwWyJfdXNhZ2UiXSAgICAgPSAiIg0KICBtZW51X2F1dG9CYWNrdXBLZWVwWyJuYW1lIl0gICAgICAgPSAiYmFja3VwLmtlZXAiOw0KICBtZW51X2F1dG9CYWNrdXBLZWVwWyJpZCJdICAgICAgICAgPSAiYmFja3VwLmtlZXAiOw0KICBtZW51X2F1dG9CYWNrdXBLZWVwWyJ2YWx1ZSJdICAgICAgPSBtZW51X2F1dG9CYWNrdXBLZWVwWyJuYW1lIl07DQogIG1lbnVfYXV0b0JhY2t1cEtlZXBbIm9uY2xpY2siXSAgICA9ICJqYXZhc2NyaXB0OiB0b2dnbGVNZW51KHRoaXMpOyI7DQogIG1lbnVfYXV0b0JhY2t1cEtlZXBbImNsYXNzIl0gICAgICA9ICJtZW51LW5vdEFjdGl2ZSI7DQoNCiAgdmFyIG9wdGlvblZhbHVlcyA9IG5ldyBBcnJheSg1LCAxMCwgMjAsIDMwLCA0MCwgNTApOw0KICBtZW51X2F1dG9CYWNrdXBLZWVwWyJfb3B0aW9uVmFsdWVzIl0gPSBvcHRpb25WYWx1ZXM7DQoNCg0KICB2YXIgbWVudV9idWZmZXIgPSBuZXcgT2JqZWN0KCk7DQogIG1lbnVfYnVmZmVyWyJfZWxlbWVudCJdID0gIkxJIjsNCiAgbWVudV9idWZmZXJbIl9tZW51VHlwZSJdICAgICA9ICJjaGVja2JveCI7DQogIG1lbnVfYnVmZmVyWyJfY29uZmlnS2V5Il0gICAgPSAiYnVmZmVyIjsNCiAgbWVudV9idWZmZXJbIl9sYWJlbCJdICAgICAgICA9ICJTdHJlYW0gYnVmZmVyaW5nIFtFeHBlcmltZW50YWxdIjsNCiAgbWVudV9idWZmZXJbIl9oZWFkbGluZSJdICAgICA9ICJTdHJlYW0gYnVmZmVyaW5nIFtFeHBlcmltZW50YWxdIjsNCiAgbWVudV9idWZmZXJbIl91c2FnZSJdICAgICAgICA9ICJXaXRoIGFjdGl2YXRlZCBidWZmZXIsIHN0cmVhbXMgY2FuIGJlIHBsYXllZCBhbmQgcmVjb3JkZWQgbW9yZSBmbHVlbnRseS48YnI+VGhlIHN0cmVhbSBpcyBwYXNzZWQgZnJvbSB4VGVWZSB0byBQbGV4IC8gRW1ieSINCiAgbWVudV9idWZmZXJbIm5hbWUiXSAgICAgICAgICA9ICJidWZmZXIiOw0KICBtZW51X2J1ZmZlclsiaWQiXSAgICAgICAgICAgID0gImJ1ZmZlciI7DQogIG1lbnVfYnVmZmVyWyJ2YWx1ZSJdICAgICAgICAgPSBtZW51X2J1ZmZlclsibmFtZSJdOw0KICBtZW51X2J1ZmZlclsib25jbGljayJdICAgICAgID0gImphdmFzY3JpcHQ6IHRvZ2dsZU1lbnUodGhpcyk7IjsNCiAgbWVudV9idWZmZXJbImNsYXNzIl0gICAgICAgICA9ICJtZW51LW5vdEFjdGl2ZSI7DQoNCiAgdmFyIG1lbnVfYXBpID0gbmV3IE9iamVjdCgpOw0KICBtZW51X2FwaVsiX2VsZW1lbnQiXSA9ICJMSSI7DQogIG1lbnVfYXBpWyJfbWVudVR5cGUiXSAgICAgPSAiY2hlY2tib3giOw0KICBtZW51X2FwaVsiX2NvbmZpZ0tleSJdICAgID0gImFwaSI7DQogIG1lbnVfYXBpWyJfbGFiZWwiXSAgICAgICAgPSAiQVBJIGludGVyZmFjZSI7DQogIG1lbnVfYXBpWyJfaGVhZGxpbmUiXSAgICAgPSAiQVBJIGludGVyZmFjZSI7DQogIG1lbnVfYXBpWyJfdXNhZ2UiXSAgICAgICAgPSAnVmlhIEFQSSBpbnRlcmZhY2UgaXQgaXMgcG9zc2libGUgdG8gc2VuZCBjb21tYW5kcyB0byB4VGVWZS4gQVBJIGRvY3VtZW50YXRpb24gaXMgYXZhaWxhYmxlIDxhIGhyZWY9Imh0dHBzOi8veHRldmUuZGU/c2Nyb2xsPWFwaSI+aGVyZTwvYT4gJw0KICAvL21lbnVfYXBpWyJfdXNhZ2UiXSAgICAgICAgPSAnVmlhIEFQSSBpbnRlcmZhY2UgaXQgaXMgcG9zc2libGUgdG8gc2VuZCBjb21tYW5kcyB0byB4VGVWZS4gQVBJIGRvY3VtZW50YXRpb24gaXMgYXZhaWxhYmxlIDxhIGhyZWY9Imh0dHA6Ly9sb2NhbGhvc3Q6MTMxMz9zY3JvbGw9YXBpIj5oZXJlPC9hPiAnDQogIG1lbnVfYXBpWyJuYW1lIl0gICAgICAgICAgPSAiYXBpIjsNCiAgbWVudV9hcGlbImlkIl0gICAgICAgICAgICA9ICJhcGkiOw0KICBtZW51X2FwaVsidmFsdWUiXSAgICAgICAgID0gbWVudV9hcGlbIm5hbWUiXTsNCiAgbWVudV9hcGlbIm9uY2xpY2siXSAgICAgICA9ICJqYXZhc2NyaXB0OiB0b2dnbGVNZW51KHRoaXMpOyI7DQogIG1lbnVfYXBpWyJjbGFzcyJdICAgICAgICAgPSAibWVudS1ub3RBY3RpdmUiOw0KDQogIHZhciBtZW51X2F1dGhlbnRpY2F0aW9uV2ViID0gbmV3IE9iamVjdCgpOw0KICBtZW51X2F1dGhlbnRpY2F0aW9uV2ViWyJfZWxlbWVudCJdID0gIkxJIjsNCiAgbWVudV9hdXRoZW50aWNhdGlvbldlYlsiX21lbnVUeXBlIl0gICAgID0gImNoZWNrYm94IjsNCiAgbWVudV9hdXRoZW50aWNhdGlvbldlYlsiX2NvbmZpZ0tleSJdICAgID0gImF1dGhlbnRpY2F0aW9uLndlYiI7DQogIG1lbnVfYXV0aGVudGljYXRpb25XZWJbIl9sYWJlbCJdICAgICAgICA9ICJVc2VyIGF1dGhlbnRpY2F0aW9uIjsNCiAgbWVudV9hdXRoZW50aWNhdGlvbldlYlsiX2hlYWRsaW5lIl0gICAgID0gIlVzZXIgYXV0aGVudGljYXRpb24iOw0KICBtZW51X2F1dGhlbnRpY2F0aW9uV2ViWyJfdXNhZ2UiXSAgICAgICAgPSAiQWNjZXNzIHRvIHhUZVZlIHJlcXVpcmVzIGF1dGhlbnRpY2F0aW9uLiINCiAgbWVudV9hdXRoZW50aWNhdGlvbldlYlsibmFtZSJdICAgICAgICAgID0gImF1dGhlbnRpY2F0aW9uLndlYiI7DQogIG1lbnVfYXV0aGVudGljYXRpb25XZWJbImlkIl0gICAgICAgICAgICA9ICJhdXRoZW50aWNhdGlvbi53ZWIiOw0KICBtZW51X2F1dGhlbnRpY2F0aW9uV2ViWyJ2YWx1ZSJdICAgICAgICAgPSBtZW51X2F1dGhlbnRpY2F0aW9uV2ViWyJuYW1lIl07DQogIG1lbnVfYXV0aGVudGljYXRpb25XZWJbIm9uY2xpY2siXSAgICAgICA9ICJqYXZhc2NyaXB0OiB0b2dnbGVNZW51KHRoaXMpOyI7DQogIG1lbnVfYXV0aGVudGljYXRpb25XZWJbImNsYXNzIl0gICAgICAgICA9ICJtZW51LW5vdEFjdGl2ZSI7DQogIA0KICB2YXIgbWVudV9hdXRoZW50aWNhdGlvblBtcyA9IG5ldyBPYmplY3QoKTsNCiAgbWVudV9hdXRoZW50aWNhdGlvblBtc1siX2VsZW1lbnQiXSA9ICJMSSI7DQogIG1lbnVfYXV0aGVudGljYXRpb25QbXNbIl9tZW51VHlwZSJdICAgICA9ICJjaGVja2JveCI7DQogIG1lbnVfYXV0aGVudGljYXRpb25QbXNbIl9jb25maWdLZXkiXSAgICA9ICJhdXRoZW50aWNhdGlvbi5wbXMiOw0KICBtZW51X2F1dGhlbnRpY2F0aW9uUG1zWyJfbGFiZWwiXSAgICAgICAgPSAiUGxleCBhdXRoZW50aWNhdGlvbi4iOw0KICBtZW51X2F1dGhlbnRpY2F0aW9uUG1zWyJfaGVhZGxpbmUiXSAgICAgPSAiUGxleCBhdXRoZW50aWNhdGlvbi4iOw0KICBtZW51X2F1dGhlbnRpY2F0aW9uUG1zWyJfdXNhZ2UiXSAgICAgICAgPSAiUGxleCByZXF1ZXN0cyBhcmUgb25seSBwb3NzaWJsZSB3aXRoIGF1dGhlbnRpY2F0aW9uLjxicj5XYXJuaW5nISEhIEFmdGVyIGFjdGl2YXRpbmcgdGhpcyBmdW5jdGlvbiB4VGVWZSBtdXN0IGJlIGRlbGV0ZSBpbiB0aGUgUE1TIERWUiBzZXR0aW5ncyBhbmQgc2V0IHVwIGFnYWluLiINCiAgbWVudV9hdXRoZW50aWNhdGlvblBtc1sibmFtZSJdICAgICAgICAgID0gImF1dGhlbnRpY2F0aW9uLnBtcyI7DQogIG1lbnVfYXV0aGVudGljYXRpb25QbXNbImlkIl0gICAgICAgICAgICA9ICJhdXRoZW50aWNhdGlvbi5wbXMiOw0KICBtZW51X2F1dGhlbnRpY2F0aW9uUG1zWyJ2YWx1ZSJdICAgICAgICAgPSBtZW51X2F1dGhlbnRpY2F0aW9uUG1zWyJuYW1lIl07DQogIG1lbnVfYXV0aGVudGljYXRpb25QbXNbIm9uY2xpY2siXSAgICAgICA9ICJqYXZhc2NyaXB0OiB0b2dnbGVNZW51KHRoaXMpOyI7DQogIG1lbnVfYXV0aGVudGljYXRpb25QbXNbImNsYXNzIl0gICAgICAgICA9ICJtZW51LW5vdEFjdGl2ZSI7DQogIA0KICB2YXIgbWVudV9hdXRoZW50aWNhdGlvbk0zdSA9IG5ldyBPYmplY3QoKTsNCiAgbWVudV9hdXRoZW50aWNhdGlvbk0zdVsiX2VsZW1lbnQiXSA9ICJMSSI7DQogIG1lbnVfYXV0aGVudGljYXRpb25NM3VbIl9tZW51VHlwZSJdICAgICA9ICJjaGVja2JveCI7DQogIG1lbnVfYXV0aGVudGljYXRpb25NM3VbIl9jb25maWdLZXkiXSAgICA9ICJhdXRoZW50aWNhdGlvbi5tM3UiOw0KICBtZW51X2F1dGhlbnRpY2F0aW9uTTN1WyJfbGFiZWwiXSAgICAgICAgPSAiTTNVIGF1dGhlbnRpY2F0aW9uLiI7DQogIG1lbnVfYXV0aGVudGljYXRpb25NM3VbIl9oZWFkbGluZSJdICAgICA9ICJNM1UgYXV0aGVudGljYXRpb24uIjsNCiAgbWVudV9hdXRoZW50aWNhdGlvbk0zdVsiX3VzYWdlIl0gICAgICAgID0gIkRvd25sb2FkaW5nIHRoZSBNM1UgZmlsZSB2aWEgYW4gSFRUUCByZXF1ZXN0IGlzIG9ubHkgcG9zc2libGUgd2l0aCBhdXRoZW50aWNhdGlvbi4iDQogIG1lbnVfYXV0aGVudGljYXRpb25NM3VbIm5hbWUiXSAgICAgICAgICA9ICJhdXRoZW50aWNhdGlvbi5tM3UiOw0KICBtZW51X2F1dGhlbnRpY2F0aW9uTTN1WyJpZCJdICAgICAgICAgICAgPSAiYXV0aGVudGljYXRpb24ubTN1IjsNCiAgbWVudV9hdXRoZW50aWNhdGlvbk0zdVsidmFsdWUiXSAgICAgICAgID0gbWVudV9hdXRoZW50aWNhdGlvbk0zdVsibmFtZSJdOw0KICBtZW51X2F1dGhlbnRpY2F0aW9uTTN1WyJvbmNsaWNrIl0gICAgICAgPSAiamF2YXNjcmlwdDogdG9nZ2xlTWVudSh0aGlzKTsiOw0KICBtZW51X2F1dGhlbnRpY2F0aW9uTTN1WyJjbGFzcyJdICAgICAgICAgPSAibWVudS1ub3RBY3RpdmUiOw0KICANCg0KICB2YXIgbWVudV9hdXRoZW50aWNhdGlvblhtbCA9IG5ldyBPYmplY3QoKTsNCiAgbWVudV9hdXRoZW50aWNhdGlvblhtbFsiX2VsZW1lbnQiXSA9ICJMSSI7DQogIG1lbnVfYXV0aGVudGljYXRpb25YbWxbIl9tZW51VHlwZSJdICAgICA9ICJjaGVja2JveCI7DQogIG1lbnVfYXV0aGVudGljYXRpb25YbWxbIl9jb25maWdLZXkiXSAgICA9ICJhdXRoZW50aWNhdGlvbi54bWwiOw0KICBtZW51X2F1dGhlbnRpY2F0aW9uWG1sWyJfbGFiZWwiXSAgICAgICAgPSAiWEVQRyBhdXRoZW50aWNhdGlvbiI7DQogIG1lbnVfYXV0aGVudGljYXRpb25YbWxbIl9oZWFkbGluZSJdICAgICA9ICJYRVBHIGF1dGhlbnRpY2F0aW9uIjsNCiAgbWVudV9hdXRoZW50aWNhdGlvblhtbFsiX3VzYWdlIl0gICAgICAgID0gIkRvd25sb2FkaW5nIHRoZSBYRVBHIChYTUxUVikgZmlsZSB2aWEgYW4gSFRUUCByZXF1ZXN0IGlzIG9ubHkgcG9zc2libGUgd2l0aCBhdXRoZW50aWNhdGlvbi4iDQogIG1lbnVfYXV0aGVudGljYXRpb25YbWxbIm5hbWUiXSAgICAgICAgICA9ICJhdXRoZW50aWNhdGlvbi54bWwiOw0KICBtZW51X2F1dGhlbnRpY2F0aW9uWG1sWyJpZCJdICAgICAgICAgICAgPSAiYXV0aGVudGljYXRpb24ueG1sIjsNCiAgbWVudV9hdXRoZW50aWNhdGlvblhtbFsidmFsdWUiXSAgICAgICAgID0gbWVudV9hdXRoZW50aWNhdGlvblhtbFsibmFtZSJdOw0KICBtZW51X2F1dGhlbnRpY2F0aW9uWG1sWyJvbmNsaWNrIl0gICAgICAgPSAiamF2YXNjcmlwdDogdG9nZ2xlTWVudSh0aGlzKTsiOw0KICBtZW51X2F1dGhlbnRpY2F0aW9uWG1sWyJjbGFzcyJdICAgICAgICAgPSAibWVudS1ub3RBY3RpdmUiOw0KDQogIHZhciBtZW51X2F1dGhlbnRpY2F0aW9uQXBpID0gbmV3IE9iamVjdCgpOw0KICBtZW51X2F1dGhlbnRpY2F0aW9uQXBpWyJfZWxlbWVudCJdID0gIkxJIjsNCiAgbWVudV9hdXRoZW50aWNhdGlvbkFwaVsiX21lbnVUeXBlIl0gICAgID0gImNoZWNrYm94IjsNCiAgbWVudV9hdXRoZW50aWNhdGlvbkFwaVsiX2NvbmZpZ0tleSJdICAgID0gImF1dGhlbnRpY2F0aW9uLmFwaSI7DQogIG1lbnVfYXV0aGVudGljYXRpb25BcGlbIl9sYWJlbCJdICAgICAgICA9ICJBUEkgYXV0aGVudGljYXRpb24iOw0KICBtZW51X2F1dGhlbnRpY2F0aW9uQXBpWyJfaGVhZGxpbmUiXSAgICAgPSAiQVBJIGF1dGhlbnRpY2F0aW9uIjsNCiAgbWVudV9hdXRoZW50aWNhdGlvbkFwaVsiX3VzYWdlIl0gICAgICAgID0gIkFjY2VzcyB0byB0aGUgQVBJIGludGVyZmFjZSBpcyBvbmx5IHBvc3NpYmxlIHdpdGggYXV0aGVudGljYXRpb24uIg0KICBtZW51X2F1dGhlbnRpY2F0aW9uQXBpWyJuYW1lIl0gICAgICAgICAgPSAiYXV0aGVudGljYXRpb24uYXBpIjsNCiAgbWVudV9hdXRoZW50aWNhdGlvbkFwaVsiaWQiXSAgICAgICAgICAgID0gImF1dGhlbnRpY2F0aW9uLmFwaSI7DQogIG1lbnVfYXV0aGVudGljYXRpb25BcGlbInZhbHVlIl0gICAgICAgICA9IG1lbnVfYXV0aGVudGljYXRpb25BcGlbIm5hbWUiXTsNCiAgbWVudV9hdXRoZW50aWNhdGlvbkFwaVsib25jbGljayJdICAgICAgID0gImphdmFzY3JpcHQ6IHRvZ2dsZU1lbnUodGhpcyk7IjsNCiAgbWVudV9hdXRoZW50aWNhdGlvbkFwaVsiY2xhc3MiXSAgICAgICAgID0gIm1lbnUtbm90QWN0aXZlIjsNCiAgDQogIA0KICAvLyBNYWluIG1lbnUNCiAgbWVudVsxMF0gPSBtZW51X20zdTsNCg0KICBzd2l0Y2goY29uZmlnWyJlcGdTb3VyY2UiXSkgew0KICAgIGNhc2UgIlBNUyI6DQogICAgICBtZW51WzIwXSA9IG1lbnVfaWQ7DQogICAgICBicmVhazsNCiAgICANCiAgICBjYXNlICJYTUxUViI6DQogICAgICBtZW51WzQwXSA9IG1lbnVfeG1sdHY7DQogICAgICBicmVhazsNCg0KICAgIGNhc2UgIlhFUEciOg0KICAgICAgbWVudVs0MF0gPSBtZW51X3htbHR2Ow0KICAgICAgbWVudVs1MF0gPSBtZW51X21hcHBpbmc7DQogICAgICBicmVhazsNCiAgfQ0KICANCiAgbWVudVszMF0gPSBtZW51X2ZpbHRlcjsNCiAgDQogIGlmIChjb25maWdbImF1dGhlbnRpY2F0aW9uLndlYiJdID09IHRydWUpIHsNCiAgICBtZW51WzYwXSA9IG1lbnVfdXNlcnM7DQogIH0NCg0KICBtZW51WzcwXSA9IG1lbnVfc2V0dGluZ3M7DQogIG1lbnVbODBdID0gbWVudV9sb2c7DQogIGlmIChjb25maWdbImF1dGhlbnRpY2F0aW9uLndlYiJdID09IHRydWUpIHsNCiAgICBtZW51WzEwMF0gPSBtZW51X2xvZ291dDsNCiAgfSANCiAgDQoNCiAgLy8gU3ViLU1lbnUNCg0KICBzdWJNZW51WzcwMV0gPSBtZW51X3NjaGVkdWxlOw0KICBzdWJNZW51WzcwMl0gPSBtZW51X2ZpbGVzVXBkYXRlOw0KICBzdWJNZW51WzcwM10gPSBtZW51X3R1bmVyOw0KICBzdWJNZW51WzcwNF0gPSBtZW51X2VwZzsNCiAgc3ViTWVudVs3MDVdID0gbWVudV94ZXBnOw0KICBzdWJNZW51WzcwNl0gPSBtZW51X2F1dG9CYWNrdXBQYXRoOw0KICBzdWJNZW51WzcwN10gPSBtZW51X2F1dG9CYWNrdXBLZWVwOw0KICBzdWJNZW51WzcwOF0gPSBtZW51X2J1ZmZlcjsNCiAgDQogIHN1Yk1lbnVbNzEwXSA9IG1lbnVfYXV0aGVudGljYXRpb25XZWI7DQogIA0KICBpZiAoY29uZmlnWyJhdXRoZW50aWNhdGlvbi53ZWIiXSA9PSB0cnVlKSB7DQogICAgc3ViTWVudVs3MTFdID0gbWVudV9hdXRoZW50aWNhdGlvblBtczsNCiAgICBzdWJNZW51WzcxMl0gPSBtZW51X2F1dGhlbnRpY2F0aW9uTTN1Ow0KICAgIHN1Yk1lbnVbNzEzXSA9IG1lbnVfYXV0aGVudGljYXRpb25YbWw7DQogICAgc3ViTWVudVs3MTRdID0gbWVudV9hdXRoZW50aWNhdGlvbkFwaTsNCiAgfQ0KDQogIHN1Yk1lbnVbNzk5XSA9IG1lbnVfYXBpOw0KDQogIA0KDQogIHJldHVybg0KfQ0KDQpmdW5jdGlvbiBjcmVhdGVNZW51KCkgew0KDQogIHNob3dFbGVtZW50KCJwb3B1cCIsIGZhbHNlKTsNCg0KICAvL2NvbnNvbGUubG9nKGNvbmZpZyk7DQogIHNldE1lbnVJdGVtKCk7DQogIHZhciBtZW51SXRlbXMgPSBnZXRPYmpLZXlzKG1lbnUpDQogIHZhciBuYXYgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgiTkFWIilbMF07DQogIG5hdi5pbm5lckhUTUwgPSAiIjsNCiAgdmFyIG5ld0l0ZW0gPSBuZXcgT2JqZWN0KCk7DQoNCiAgZm9yICh2YXIgaSA9IDA7IGkgPCBtZW51SXRlbXMubGVuZ3RoOyBpKyspIHsNCg0KICAgIA0KICAgIHZhciBuZXdJdGVtID0gbWVudVttZW51SXRlbXNbaV1dOw0KICAgIG5ld0l0ZW1bImlkIl0gPSBtZW51SXRlbXNbaV07DQoNCiAgICANCiAgICBzd2l0Y2gobmV3SXRlbS5oYXNPd25Qcm9wZXJ0eSgiX2ljb24iKSkgew0KICAgICAgY2FzZSB0cnVlOiANCiAgICAgICAgdmFyIGl0ZW1UZXh0ID0gbmV3SXRlbVsiX3RleHQiXTsNCiAgICAgICAgZGVsZXRlIG5ld0l0ZW1bIl90ZXh0Il0NCiAgICAgICAgbmF2LmFwcGVuZENoaWxkKGNyZWF0ZUVsZW1lbnQobmV3SXRlbSkpOw0KICAgICAgICBuZXdJdGVtWyJfdGV4dCJdID0gaXRlbVRleHQ7DQogICAgICAgIHZhciBuZXdJY29uID0gbmV3IE9iamVjdCgpOw0KICAgICAgICBuZXdJY29uWyJfZWxlbWVudCJdID0gIklNRyI7DQogICAgICAgIG5ld0ljb25bInNyYyJdID0gbmV3SXRlbVsiX2ljb24iXTsNCg0KICAgICAgICB2YXIgY3VycmVudEVsZW1lbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChtZW51SXRlbXNbaV0pOw0KICAgICAgICBjdXJyZW50RWxlbWVudC5hcHBlbmRDaGlsZChjcmVhdGVFbGVtZW50KG5ld0ljb24pKTsNCg0KDQogICAgICAgIHZhciB0ZXh0ID0gbmV3IE9iamVjdCgpOw0KICAgICAgICB0ZXh0WyJfZWxlbWVudCJdID0gIlAiDQogICAgICAgIHRleHRbIl90ZXh0Il0gPSBpdGVtVGV4dDsNCiAgICAgICAgdGV4dFsiY2xhc3MiXSA9ICJuYXYtdGV4dCINCiAgICAgICAgY3VycmVudEVsZW1lbnQuYXBwZW5kQ2hpbGQoY3JlYXRlRWxlbWVudCh0ZXh0KSk7DQogICAgICAgIGJyZWFrOw0KDQogICAgICBkZWZhdWx0Og0KICAgICAgICBuYXYuYXBwZW5kQ2hpbGQoY3JlYXRlRWxlbWVudChuZXdJY29uKSk7DQogICAgICAgIGJyZWFrOw0KICAgIH0NCg0KICB9DQogIGlmIChhY3RpdmVNZW51ICE9IHVuZGVmaW5lZCkgew0KICAgIC8vY29uc29sZS5sb2coYWN0aXZlTWVudSk7DQogICAgdG9nZ2xlTWVudShhY3RpdmVNZW51KTsNCiAgfQ0KDQogIHJldHVybg0KfQ0KDQpmdW5jdGlvbiB0b2dnbGVNZW51KGVsbSkgew0KICAvL3Nob3dTdHJlYW1zKGZhbHNlKTsNCiAgY2xlYXJJbnRlcnZhbChsb2dJbnRlcnZhbCkNCiAgYWN0aXZlTWVudSA9IGVsbTsNCiAgdmFyIGl0ZW0gPSBtZW51W2VsbS5pZF0NCiAgdmFyIGRpdiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzZXR0aW5ncyIpOw0KICBkaXYuaW5uZXJIVE1MID0gIiI7DQogIA0KICAvLyBTZXQgSGVhZGxpbmUNCiAgdmFyIGhlYWRsaW5lID0gbmV3IE9iamVjdCgpOw0KICBoZWFkbGluZVsiX2VsZW1lbnQiXSA9ICJINCI7DQogIGhlYWRsaW5lWyJfdGV4dCJdID0gaXRlbVsiX2hlYWRsaW5lIl07DQogIGRpdi5hcHBlbmRDaGlsZChjcmVhdGVFbGVtZW50KGhlYWRsaW5lKSk7DQoNCiAgLy8gU3ViLU1lbnUNCiAgaWYgKGl0ZW0uaGFzT3duUHJvcGVydHkoIl9zdWJNZW51IikgPT0gdHJ1ZSkgew0KICAgIG9wZW5TdWJNZW51KGl0ZW0pOw0KICAgIHJldHVybg0KICB9DQoNCiAgLy8gTWFwcGluZywgVXNlcnMsIExvZywgRmlsZXMNCiAgc3dpdGNoKGl0ZW1bIl9jb25maWdLZXkiXSkgew0KICAgIGNhc2UgIm1hcHBpbmciOiAgICAgb3Blbk1hcHBpbmdFZGl0b3IoaXRlbSk7IHJldHVybjsgYnJlYWs7DQogICAgY2FzZSAidXNlcnMiOiAgICAgICBvcGVuVXNlcnMoaXRlbSk7IHJldHVybjsgYnJlYWs7DQogICAgY2FzZSAibG9nIjogICAgICAgICBzaG93TG9nKGl0ZW0pOyByZXR1cm47IGJyZWFrOw0KICAgIGNhc2UgImZpbGVzLm0zdSI6ICAgb3BlbkZpbGVzKGl0ZW0sICJtM3UiKTsgcmV0dXJuOyBicmVhazsNCiAgICBjYXNlICJmaWxlcy54bWx0diI6IG9wZW5GaWxlcyhpdGVtLCAieG1sdHYiKTsgcmV0dXJuOyBicmVhazsNCg0KICAgIGNhc2UgImZpbHRlciI6ICAgICAgc2hvd1N0cmVhbXModHJ1ZSk7IGJyZWFrOw0KICB9DQoNCiANCg0KICB2YXIgbmV3SFIgPSBuZXcgT2JqZWN0KCk7DQogIG5ld0hSWyJfZWxlbWVudCJdID0gIkhSIg0KICBkaXYuYXBwZW5kQ2hpbGQoY3JlYXRlRWxlbWVudChuZXdIUikpOw0KICANCiAgdmFyIG5ld0VudHJ5ID0gbmV3IE9iamVjdCgpOw0KICBuZXdFbnRyeVsiX2VsZW1lbnQiXSAgPSAiSU5QVVQiOw0KICBuZXdFbnRyeVsidHlwZSJdID0gImJ1dHRvbiI7DQogIC8vbmV3RW50cnlbImNsYXNzIl0gPSAic2F2ZSI7DQogIG5ld0VudHJ5WyJ2YWx1ZSJdID0gIlNhdmUiOw0KICBuZXdFbnRyeVsib25jbGljayJdID0gInNhdmVEYXRhMignc2V0dGluZ3MnKSINCiAgZGl2LmFwcGVuZENoaWxkKGNyZWF0ZUVsZW1lbnQobmV3RW50cnkpKTsNCg0KDQogIHZhciBuZXdXcmFwcGVyID0gbmV3IE9iamVjdCgpOw0KICBuZXdXcmFwcGVyWyJfZWxlbWVudCJdICA9ICJESVYiOw0KICBuZXdXcmFwcGVyWyJpZCJdICAgICAgICA9ICJib3gtd3JhcHBlciI7DQogIGRpdi5hcHBlbmRDaGlsZChjcmVhdGVFbGVtZW50KG5ld1dyYXBwZXIpKTsNCg0KICBkaXYgPSBkaXYubGFzdENoaWxkOw0KICANCiAgZGl2LmFwcGVuZENoaWxkKGNyZWF0ZU1lbnVJdGVtKGl0ZW0pKQ0KDQogIC8vIHVzYWdlIEluZm8gIA0KICBzd2l0Y2gobWVudVthY3RpdmVNZW51LmlkXS5oYXNPd25Qcm9wZXJ0eSgiX3VzYWdlIikpIHsNCiAgICBjYXNlIHRydWU6IA0KICAgICAgdmFyIHVzYWdlSXRlbSA9IG5ldyBPYmplY3QoKTsNCiAgICAgIHVzYWdlSXRlbVsiX2VsZW1lbnQiXSA9ICJQUkUiDQogICAgICB1c2FnZUl0ZW1bIl90ZXh0Il0gICAgPSBtZW51W2FjdGl2ZU1lbnUuaWRdWyJfdXNhZ2UiXTsNCiAgICAgIGRpdi5hcHBlbmRDaGlsZChjcmVhdGVFbGVtZW50KHVzYWdlSXRlbSkpOw0KICB9DQogIA0KICBjYWxjdWxhdGVXcmFwcGVySGVpZ2h0KCk7DQoNCn0NCg0KZnVuY3Rpb24gY3JlYXRlTWVudUl0ZW0oaXRlbSkgew0KICB2YXIgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIkRJViIpOw0KICBzd2l0Y2goaXRlbVsiX21lbnVUeXBlIl0pIHsNCiAgICBjYXNlICJpbnB1dEFycmF5IjoNCiAgICAgIGlmIChjb25maWcuaGFzT3duUHJvcGVydHkoaXRlbVsiX2NvbmZpZ0tleSJdKSA9PSB0cnVlKSB7DQogICAgICAgIHZhciB2YWx1ZSA9IGNvbmZpZ1tpdGVtWyJfY29uZmlnS2V5Il1dOw0KICAgICAgfSBlbHNlIHsNCiAgICAgICAgdmFyIHZhbHVlID0gbmV3IEFycmF5KCk7DQogICAgICB9DQogICAgICANCiAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdmFsdWUubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgdmFyIG5ld0VudHJ5ID0gbmV3IE9iamVjdCgpOw0KICAgICAgICBuZXdFbnRyeSA9IGl0ZW0NCiAgICAgICAgZGVsZXRlIG5ld0VudHJ5WyJvbmNsaWNrIl07DQogICAgICAgIG5ld0VudHJ5WyJfZWxlbWVudCJdICA9ICJJTlBVVCI7DQogICAgICAgIG5ld0VudHJ5WyJ2YWx1ZSJdICAgICA9IHZhbHVlW2ldOw0KICAgICAgICBuZXdFbnRyeVsidHlwZSJdICAgICAgPSAic2VhcmNoIjsNCiAgICAgICAgbmV3RW50cnlbImRhdGEtbWVudXR5cGUiXSA9IGl0ZW1bIl9tZW51VHlwZSJdOw0KICAgICAgICBuZXdFbnRyeVsiZGF0YS1tZW51a2V5Il0gPSBpdGVtWyJfY29uZmlnS2V5Il07DQogICAgICAgIGVsZW1lbnQuYXBwZW5kQ2hpbGQoY3JlYXRlRWxlbWVudChuZXdFbnRyeSkpOw0KDQogICAgICB9DQogICAgICAvLyBOZXcgZW50cnkgZm9yIGFycmF5DQogICAgICB2YXIgbmV3RW50cnkgPSBuZXcgT2JqZWN0KCk7DQogICAgICBuZXdFbnRyeVsiX2VsZW1lbnQiXSAgICAgID0gIklOUFVUIjsNCiAgICAgIG5ld0VudHJ5WyJ0eXBlIl0gICAgICAgICAgPSAic2VhcmNoIjsNCiAgICAgIG5ld0VudHJ5WyJuYW1lIl0gICAgICAgICAgPSBpdGVtWyJuYW1lIl07DQogICAgICBuZXdFbnRyeVsicGxhY2Vob2xkZXIiXSAgID0gaXRlbVsicGxhY2Vob2xkZXIiXTsNCiAgICAgIG5ld0VudHJ5WyJ2YWx1ZSJdICAgICAgICAgPSAiIjsNCiAgICAgIG5ld0VudHJ5WyJkYXRhLW1lbnV0eXBlIl0gPSBpdGVtWyJfbWVudVR5cGUiXTsNCiAgICAgIG5ld0VudHJ5WyJkYXRhLW1lbnVrZXkiXSAgPSBpdGVtWyJfY29uZmlnS2V5Il07DQogICAgICBlbGVtZW50LmFwcGVuZENoaWxkKGNyZWF0ZUVsZW1lbnQobmV3RW50cnkpKTsNCiAgICAgIGJyZWFrOw0KICANCiAgICBjYXNlICJzaW5nbGVJbnB1dCI6DQogICAgICB2YXIgdmFsdWUgPSBjb25maWdbaXRlbVsiX2NvbmZpZ0tleSJdXTsNCiAgICAgIGlmICh2YWx1ZSA9PSB1bmRlZmluZWQpIHsNCiAgICAgICAgdmFsdWUgPSAiIjsNCiAgICAgIH0NCiAgICAgIHZhciBuZXdFbnRyeSA9IG5ldyBPYmplY3QoKTsNCiAgICAgIG5ld0VudHJ5ID0gaXRlbTsNCiAgICAgIGRlbGV0ZSBuZXdFbnRyeVsib25jbGljayJdOw0KICAgICAgbmV3RW50cnlbIl9lbGVtZW50Il0gID0gIklOUFVUIjsNCiAgICAgIG5ld0VudHJ5WyJ2YWx1ZSJdICAgICA9IHZhbHVlOw0KICAgICAgbmV3RW50cnlbInR5cGUiXSAgICAgID0gInNlYXJjaCI7DQogICAgICBuZXdFbnRyeVsiZGF0YS1tZW51dHlwZSJdID0gaXRlbVsiX21lbnVUeXBlIl07DQogICAgICBuZXdFbnRyeVsiZGF0YS1tZW51a2V5Il0gPSBpdGVtWyJfY29uZmlnS2V5Il07DQogICAgICBlbGVtZW50LmFwcGVuZENoaWxkKGNyZWF0ZUVsZW1lbnQobmV3RW50cnkpKTsNCiAgICAgIGJyZWFrOw0KDQogICAgY2FzZSAiY2hlY2tib3giOg0KICAgICAgdmFyIHZhbHVlID0gY29uZmlnW2l0ZW1bIl9jb25maWdLZXkiXV07DQogICAgICBpZiAodmFsdWUgPT0gdW5kZWZpbmVkKSB7DQogICAgICAgIHZhbHVlID0gZmFsc2U7DQogICAgICB9DQogICAgICB2YXIgbmV3RW50cnkgPSBuZXcgT2JqZWN0KCk7DQogICAgICBuZXdFbnRyeSA9IGl0ZW07DQogICAgICBkZWxldGUgbmV3RW50cnlbIm9uY2xpY2siXTsNCiAgICAgIG5ld0VudHJ5WyJfZWxlbWVudCJdICA9ICJJTlBVVCI7DQogICAgICBuZXdFbnRyeVsidmFsdWUiXSAgICAgPSB2YWx1ZTsNCiAgICAgIG5ld0VudHJ5WyJ0eXBlIl0gICAgICA9ICJjaGVja2JveCI7DQogICAgICBuZXdFbnRyeVsiZGF0YS1tZW51dHlwZSJdID0gaXRlbVsiX21lbnVUeXBlIl07DQogICAgICBuZXdFbnRyeVsiZGF0YS1tZW51a2V5Il0gPSBpdGVtWyJfY29uZmlnS2V5Il07DQogICAgICBlbGVtZW50LmFwcGVuZENoaWxkKGNyZWF0ZUVsZW1lbnQobmV3RW50cnkpKTsNCiAgICAgIGVsZW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIklOUFVUIilbMF0uY2hlY2tlZCA9IHZhbHVlOw0KICAgICAgYnJlYWs7DQogICAgDQogICAgY2FzZSAic2VsZWN0IjoNCiAgICAgIHZhciB2YWx1ZSA9IGNvbmZpZ1tpdGVtWyJfY29uZmlnS2V5Il1dOw0KICAgICAgdmFyIG5ld0VudHJ5ID0gbmV3IE9iamVjdCgpOw0KICAgICAgbmV3RW50cnkgPSBpdGVtOw0KICAgICAgZGVsZXRlIG5ld0VudHJ5WyJvbmNsaWNrIl0NCiAgICAgIG5ld0VudHJ5WyJfZWxlbWVudCJdICA9ICJTRUxFQ1QiOw0KICAgICAgZWxlbWVudC5hcHBlbmRDaGlsZChjcmVhdGVFbGVtZW50KG5ld0VudHJ5KSk7DQogICAgICB2YXIgc2VsZWN0RWxlbWVudCA9IGVsZW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlNFTEVDVCIpWzBdOw0KICAgICAgdmFyIHZhbHVlcyA9IGl0ZW1bIl9vcHRpb25WYWx1ZXMiXTsNCiAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdmFsdWVzLmxlbmd0aDsgaSsrKSB7DQogICAgICAgIHZhciBuZXdFbnRyeSA9IG5ldyBPYmplY3Q7DQogICAgICAgIG5ld0VudHJ5WyJfZWxlbWVudCJdICA9ICJPUFRJT04iOw0KICAgICAgICBuZXdFbnRyeVsiX3RleHQiXSAgICAgPSBpdGVtWyJfdGV4dCJdICsgIjogIiArIHZhbHVlc1tpXTsNCiAgICAgICAgbmV3RW50cnlbInZhbHVlIl0gICAgID0gdmFsdWVzW2ldOw0KICAgICAgICBzZWxlY3RFbGVtZW50LmFwcGVuZENoaWxkKGNyZWF0ZUVsZW1lbnQobmV3RW50cnkpKTsNCiAgICAgIH0NCiAgICAgIHNlbGVjdEVsZW1lbnQudmFsdWUgPSB2YWx1ZTsNCiAgICAgIGJyZWFrOw0KICAgIA0KICB9DQogIHJldHVybiBlbGVtZW50Ow0KfQ0KDQpmdW5jdGlvbiBvcGVuU3ViTWVudShpdGVtKSB7DQogIHZhciBlbnRyeXMgPSBpdGVtWyJfc3ViTWVudSJdLnNwbGl0KCIsIik7DQogIHZhciBkaXYgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic2V0dGluZ3MiKTsNCg0KICB2YXIgbmV3SFIgPSBuZXcgT2JqZWN0KCk7DQogIG5ld0hSWyJfZWxlbWVudCJdID0gIkhSIg0KICBkaXYuYXBwZW5kQ2hpbGQoY3JlYXRlRWxlbWVudChuZXdIUikpOw0KICANCiAgdmFyIG5ld0VudHJ5ID0gbmV3IE9iamVjdCgpOw0KICBuZXdFbnRyeVsiX2VsZW1lbnQiXSAgPSAiSU5QVVQiOw0KICBuZXdFbnRyeVsidHlwZSJdID0gImJ1dHRvbiI7DQogIC8vbmV3RW50cnlbImNsYXNzIl0gPSAic2F2ZSI7DQogIG5ld0VudHJ5WyJ2YWx1ZSJdID0gIlNhdmUiOw0KICBuZXdFbnRyeVsib25jbGljayJdID0gInNhdmVEYXRhMignc2V0dGluZ3MnKSINCiAgZGl2LmFwcGVuZENoaWxkKGNyZWF0ZUVsZW1lbnQobmV3RW50cnkpKTsNCg0KICBpZiAoaXRlbVsiX2NvbmZpZ0tleSJdID09ICJzZXR0aW5ncyIpIHsNCiAgICB2YXIgbmV3RW50cnkgPSBuZXcgT2JqZWN0KCk7DQogICAgbmV3RW50cnlbIl9lbGVtZW50Il0gID0gIklOUFVUIjsNCiAgICBuZXdFbnRyeVsidHlwZSJdID0gImJ1dHRvbiI7DQogICAgLy9uZXdFbnRyeVsiY2xhc3MiXSA9ICJzYXZlIjsNCiAgICBuZXdFbnRyeVsidmFsdWUiXSA9ICJCYWNrdXAiOw0KICAgIG5ld0VudHJ5WyJvbmNsaWNrIl0gPSAieHRldmVCYWNrdXAoKSINCiAgICBkaXYuYXBwZW5kQ2hpbGQoY3JlYXRlRWxlbWVudChuZXdFbnRyeSkpOw0KICB9DQoNCiAgaWYgKGl0ZW1bIl9jb25maWdLZXkiXSA9PSAic2V0dGluZ3MiKSB7DQogICAgdmFyIG5ld0VudHJ5ID0gbmV3IE9iamVjdCgpOw0KICAgIG5ld0VudHJ5WyJfZWxlbWVudCJdICA9ICJJTlBVVCI7DQogICAgbmV3RW50cnlbInR5cGUiXSA9ICJidXR0b24iOw0KICAgIC8vbmV3RW50cnlbImNsYXNzIl0gPSAic2F2ZSI7DQogICAgbmV3RW50cnlbInZhbHVlIl0gPSAiUmVzdG9yZSI7DQogICAgbmV3RW50cnlbIm9uY2xpY2siXSA9ICJ4dGV2ZVJlc3RvcmUodGhpcykiDQogICAgZGl2LmFwcGVuZENoaWxkKGNyZWF0ZUVsZW1lbnQobmV3RW50cnkpKTsNCiAgfQ0KDQoNCiAgdmFyIG5ld1dyYXBwZXIgPSBuZXcgT2JqZWN0KCk7DQogIG5ld1dyYXBwZXJbIl9lbGVtZW50Il0gID0gIkRJViI7DQogIG5ld1dyYXBwZXJbImlkIl0gICAgICAgID0gImJveC13cmFwcGVyIjsNCiAgZGl2LmFwcGVuZENoaWxkKGNyZWF0ZUVsZW1lbnQobmV3V3JhcHBlcikpOw0KICANCiAgZGl2ID0gZGl2Lmxhc3RDaGlsZDsNCiAgDQoNCiAgZm9yICh2YXIgaSA9IDA7IGkgPCBlbnRyeXMubGVuZ3RoOyBpKyspIHsNCiAgICB2YXIgaXRlbSA9IHN1Yk1lbnVbZW50cnlzW2ldXTsNCiAgICBpZiAoaXRlbSA9PSB1bmRlZmluZWQpIHsNCiAgICAgIGJyZWFrOw0KICAgIH0NCiAgICANCiAgICB2YXIgY29udGFpbmVyID0gbmV3IE9iamVjdCgpOw0KICAgIGNvbnRhaW5lclsiX2VsZW1lbnQiXSA9ICJESVYiOw0KICAgIGRpdi5hcHBlbmRDaGlsZChjcmVhdGVFbGVtZW50KGNvbnRhaW5lcikpOw0KDQogICAgdmFyIGRpdkNvbnRhaW5lciA9IGRpdi5sYXN0Q2hpbGQ7DQogICAgDQogICAgdmFyIGhlYWRsaW5lID0gbmV3IE9iamVjdCgpOw0KICAgIGhlYWRsaW5lWyJfZWxlbWVudCJdID0gIkg1IjsNCiAgICBoZWFkbGluZVsiX3RleHQiXSA9IGl0ZW1bIl9oZWFkbGluZSJdOw0KICAgIGRpdkNvbnRhaW5lci5hcHBlbmRDaGlsZChjcmVhdGVFbGVtZW50KGhlYWRsaW5lKSk7DQoNCiAgICBkaXZDb250YWluZXIuYXBwZW5kQ2hpbGQoY3JlYXRlTWVudUl0ZW0oaXRlbSkpDQoNCiAgICBzd2l0Y2goaXRlbS5oYXNPd25Qcm9wZXJ0eSgiX3VzYWdlIikpIHsNCiAgICAgIGNhc2UgdHJ1ZTogDQogICAgICAgIHZhciB1c2FnZUl0ZW0gPSBuZXcgT2JqZWN0KCk7DQogICAgICAgIHVzYWdlSXRlbVsiX2VsZW1lbnQiXSA9ICJQUkUiDQogICAgICAgIHVzYWdlSXRlbVsiX3RleHQiXSAgICA9IGl0ZW1bIl91c2FnZSJdOw0KICAgICAgICBkaXZDb250YWluZXIuYXBwZW5kQ2hpbGQoY3JlYXRlRWxlbWVudCh1c2FnZUl0ZW0pKTsNCiAgICB9DQoNCiAgICB2YXIgaHIgPSBuZXcgT2JqZWN0KCk7DQogICAgaHJbIl9lbGVtZW50Il0gPSAiSFIiOw0KICAgIGRpdkNvbnRhaW5lci5hcHBlbmRDaGlsZChjcmVhdGVFbGVtZW50KGhyKSk7DQogIA0KICB9DQoNCiAgY2FsY3VsYXRlV3JhcHBlckhlaWdodCgpOw0KICByZXR1cm4NCn0NCg0KZnVuY3Rpb24gc2F2ZURhdGEyKGVsbSkgew0KICB2YXIgZGl2ICAgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChlbG0pOw0KICB2YXIgaW5wdXRzID0gZGl2LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJJTlBVVCIpOw0KICB2YXIgc2VsZWN0cyA9IGRpdi5nZXRFbGVtZW50c0J5VGFnTmFtZSgiU0VMRUNUIik7DQogIHZhciB2YWx1ZSwgY29uZmlnS2V5Ow0KICB2YXIgZGF0YSA9IG5ldyBPYmplY3QoKTsNCiAgdmFyIHZhbHVlQXJyID0gbmV3IEFycmF5KCk7DQogIHZhciBuZXdEYXRhID0gZmFsc2U7DQogIA0KICBmb3IgKHZhciBpID0gMDsgaSA8IGlucHV0cy5sZW5ndGg7IGkrKykgew0KICAgIGlmIChpbnB1dHNbaV0udHlwZSAhPSAiYnV0dG9uIikgew0KICAgICAgdmFyIG1lbnVUeXBlID0gaW5wdXRzW2ldLmdldEF0dHJpYnV0ZSgiZGF0YS1tZW51dHlwZSIpOw0KICAgICAgDQogICAgICAvL2NvbnNvbGUubG9nKG1lbnVUeXBlKTsNCiAgICAgIHN3aXRjaChtZW51VHlwZSkgew0KICAgICAgICBjYXNlICJzaW5nbGVJbnB1dCI6DQogICAgICAgICAgdmFsdWUgPSBpbnB1dHNbaV0udmFsdWU7DQogICAgICAgICAgaWYgKHZhbHVlID09ICIiIHx8IHZhbHVlID09IHVuZGVmaW5lZCkgew0KICAgICAgICAgICAgZGF0YSA9IG5ldyBPYmplY3QoKTsNCiAgICAgICAgICAgIGRhdGFbImRlbGV0ZSJdID0gaW5wdXRzW2ldLm5hbWUNCiAgICAgICAgICAgIG5ld0RhdGEgPSB0cnVlOw0KICAgICAgICAgIH0gZWxzZSB7DQogICAgICAgICAgICBuZXdEYXRhID0gdHJ1ZTsNCiAgICAgICAgICAgIGRhdGFbaW5wdXRzW2ldLm5hbWVdID0gdmFsdWU7DQogICAgICAgICAgICBjb25zb2xlLmxvZyhkYXRhKTsNCiAgICAgICAgICB9DQogICAgICAgICAgYnJlYWs7DQogICAgICAgIGNhc2UgImlucHV0QXJyYXkiOiANCiAgICAgICAgICB2YWx1ZSA9IGlucHV0c1tpXS52YWx1ZTsNCiAgICAgICAgICBpZiAodmFsdWUgIT0gIiIgJiYgdmFsdWUgIT0gdW5kZWZpbmVkKSB7DQogICAgICAgICAgICBuZXdEYXRhID0gdHJ1ZTsNCiAgICAgICAgICAgIHZhbHVlQXJyLnB1c2godmFsdWUpDQogICAgICAgICAgICBkYXRhW2lucHV0c1tpXS5uYW1lXSA9IHZhbHVlQXJyOw0KICAgICAgICAgICAgY29uZmlnS2V5ID0gaW5wdXRzW2ldLm5hbWU7DQogICAgICAgICAgfSANCiAgICAgICAgICANCiAgICAgICAgICBicmVhazsNCg0KICAgICAgICBjYXNlICJjaGVja2JveCI6DQogICAgICAgICAgdmFsdWUgPSBpbnB1dHNbaV0uY2hlY2tlZA0KICAgICAgICAgIGRhdGFbaW5wdXRzW2ldLm5hbWVdID0gdmFsdWU7DQogICAgICB9DQogICAgICANCiAgICB9DQogICAgDQogIH0NCg0KDQogIC8vIERlbGV0ZSBjb25maWcga2V5DQogIGlmICh2YWx1ZUFyci5sZW5ndGggPT0gMCAmJiBuZXdEYXRhID09IGZhbHNlKSB7DQogICAgbmV3RGF0YSA9IHRydWU7DQogICAgZGF0YSA9IG5ldyBPYmplY3QoKTsNCiAgICBkYXRhWyJkZWxldGUiXSA9IGNvbmZpZ0tleTsNCiAgfSANCg0KDQogIGZvciAodmFyIGkgPSAwOyBpIDwgc2VsZWN0cy5sZW5ndGg7IGkrKykgew0KICAgIHZhciB2YWx1ZSA9IHNlbGVjdHNbaV0ub3B0aW9uc1tzZWxlY3RzW2ldLnNlbGVjdGVkSW5kZXhdLnZhbHVlOw0KICAgIHN3aXRjaChpc05hTih2YWx1ZSkpIHsNCiAgICAgIGNhc2UgZmFsc2U6IHZhbHVlID0gcGFyc2VJbnQodmFsdWUpOyBicmVhazsNCiAgICB9DQoNCiAgICBkYXRhW3NlbGVjdHNbaV0ubmFtZV0gPSB2YWx1ZTsNCiAgICBuZXdEYXRhID0gdHJ1ZTsNCiAgfQ0KDQogIC8vY29uc29sZS5sb2coZGF0YSwgbmV3RGF0YSk7DQoNCiAgaWYgKG5ld0RhdGEgPT0gdHJ1ZSkgew0KICAgIGRhdGFbImNtZCJdID0gInNhdmVDb25maWciOw0KICAgIGlmICghZGF0YS5oYXNPd25Qcm9wZXJ0eSgnZmlsdGVyJykpIHsNCiAgICAgIGRhdGFbImZpbHRlciJdID0gY29uZmlnWyJmaWx0ZXIiXQ0KICAgIH0NCiAgICB2YXIgc2V0dGluZ3MgPSBuZXcgT2JqZWN0KCk7DQogICAgc2V0dGluZ3NbImNtZCJdID0gZGF0YVsiY21kIl07DQogICAgc2V0dGluZ3NbInNldHRpbmdzIl0gPSBkYXRhOw0KICAgIGNvbnNvbGUubG9nKHNldHRpbmdzKTsNCiAgICB4VGVWZShzZXR0aW5ncyk7DQogIH0NCn0NCg==" - webUI["html/lang/en.json"] = "ew0KICAibWFpbk1lbnUiOg0KICB7DQogICAgIml0ZW0iOg0KICAgIHsNCiAgICAgICJwbGF5bGlzdCI6ICJQbGF5bGlzdCIsDQogICAgICAicG1zSUQiOiAiUE1TIElEIiwNCiAgICAgICJmaWx0ZXIiOiAiRmlsdGVyIiwNCiAgICAgICJ4bWx0diI6ICJYTUxUViIsDQogICAgICAibWFwcGluZyI6ICJNYXBwaW5nIiwNCiAgICAgICJ1c2VycyI6ICJVc2VycyIsDQogICAgICAic2V0dGluZ3MiOiAiU2V0dGluZ3MiLA0KICAgICAgImxvZyI6ICJMb2ciLA0KICAgICAgImxvZ291dCI6ICJMb2dvdXQiDQogICAgfSwNCiAgICAiaGVhZGxpbmUiOg0KICAgIHsNCiAgICAgICJwbGF5bGlzdCI6ICJMb2NhbCBvciByZW1vdGUgcGxheWxpc3RzIiwNCiAgICAgICJmaWx0ZXIiOiAiRmlsdGVyIHBsYXlsaXN0IiwNCiAgICAgICJ4bWx0diI6ICJMb2NhbCBvciByZW1vdGUgWE1MVFYgZmlsZXMiLA0KICAgICAgIm1hcHBpbmciOiAiTWFwIHBsYXlsaXN0IGNoYW5uZWxzIHRvIEVQRyBjaGFubmVscyIsDQogICAgICAidXNlcnMiOiAiVXNlciBtYW5hZ2VtZW50IiwNCiAgICAgICJzZXR0aW5ncyI6ICJTZXR0aW5ncyIsDQogICAgICAibG9nIjogIkxvZyIsDQogICAgICAibG9nb3V0IjogIkxvZ291dCINCiAgICB9DQogIH0sDQogICJjb25maXJtIjoNCiAgew0KICAgICJyZXN0b3JlIjogIkFsbCBkYXRhIHdpbGwgYmUgcmVwbGFjZWQgd2l0aCB0aG9zZSBmcm9tIHRoZSBiYWNrdXAuIFNob3VsZCB0aGUgZmlsZXMgYmUgcmVzdG9yZWQ/Ig0KICB9LA0KICAiYWxlcnQiOg0KICB7DQogICAgImZpbGVMb2FkaW5nRXJyb3IiOiAiRmlsZSBjb3VsZG4ndCBiZSBsb2FkZWQiLA0KICAgICJpbnZhbGlkQ2hhbm5lbE51bWJlciI6ICJJbnZhbGlkIGNoYW5uZWwgbnVtYmVyIiwNCiAgICAibWlzc2luZ0lucHV0IjogIk1pc3NpbmcgaW5wdXQiDQogIH0sDQogICJidXR0b24iOg0KICB7DQogICAgImJhY2siOiAiQmFjayIsDQogICAgImJhY2t1cCI6ICJCYWNrdXAiLA0KICAgICJidWxrRWRpdCI6ICJCdWxrIEVkaXQiLA0KICAgICJjYW5jZWwiOiAiQ2FuY2VsIiwNCiAgICAiZGVsZXRlIjogIkRlbGV0ZSIsDQogICAgImRvbmUiOiAiRG9uZSIsDQogICAgImxvZ2luIjogIkxvZ2luIiwNCiAgICAibmV3IjogIk5ldyIsDQogICAgIm5leHQiOiAiTmV4dCIsDQogICAgInJlc3RvcmUiOiAiUmVzdG9yZSIsDQogICAgInNhdmUiOiAiU2F2ZSIsDQogICAgInNlYXJjaCI6ICJTZWFyY2giLA0KICAgICJ1cGRhdGUiOiAiVXBkYXRlIiwNCiAgICAiY3JhZXRlQWNjb3VudCI6ICJDcmVhdGUgQWNjb3VudCIsDQogICAgInJlc2V0TG9ncyI6ICJSZXNldCBMb2dzIiwNCiAgICAidXBsb2FkTG9nbyI6ICJVcGxvYWQgTG9nbyINCiAgfSwNCiAgImZpbHRlciI6DQogIHsNCiAgICAidGFibGUiOg0KICAgIHsNCiAgICAgICJuYW1lIjogIkZpbHRlciBOYW1lIiwNCiAgICAgICJ0eXBlIjogIkZpbHRlciBUeXBlIiwNCiAgICAgICJmaWx0ZXIiOiAiRmlsdGVyIg0KICAgIH0sDQogICAgImN1c3RvbSI6ICJDdXN0b20iLA0KICAgICJncm91cCI6ICJNM1UgR3JvdXAiLA0KICAgICJuYW1lIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiRmlsdGVyIE5hbWUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIkZpbHRlciBuYW1lIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAiZGVzY3JpcHRpb24iOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJEZXNjcmlwdGlvbiIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiRGVzY3JpcHRpb24iLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJ0eXBlIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiVHlwZSIsDQogICAgICAiZ3JvdXBUaXRsZSI6ICJHcm91cCBUaXRsZSIsDQogICAgICAiY3VzdG9tRmlsdGVyIjogIkN1c3RvbSBGaWx0ZXIiDQogICAgfSwNCiAgICAiY2FzZVNlbnNpdGl2ZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIkNhc2UgU2Vuc2l0aXZlIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJmaWx0ZXJSdWxlIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiRmlsdGVyIFJ1bGUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIlNwb3J0IHtIRH0gIXtFUyxJVH0iLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJmaWx0ZXJHcm91cCI6DQogICAgew0KICAgICAgInRpdGxlIjogIkdyb3VwIFRpdGxlIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIlNlbGVjdCBhIE0zVSBncm91cC4gKENvdW50ZXIpPGJyPkNoYW5naW5nIHRoZSBncm91cCB0aXRsZSBpbiB0aGUgTTNVIGludmFsaWRhdGVzIHRoZSBmaWx0ZXIuIg0KICAgIH0sDQogICAgImluY2x1ZGUiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJJbmNsdWRlIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJGSEQsVUhEIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJDaGFubmVsIG5hbWUgbXVzdCBpbmNsdWRlLjxicj4oQ29tbWEgc2VwYXJhdGVkKSBDb21tYSBtZWFucyBvciINCiAgICB9LA0KICAgICJleGNsdWRlIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiRXhjbHVkZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiRVMsSVQiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIkNoYW5uZWwgbmFtZSBtdXN0IG5vdCBjb250YWluLjxicj4oQ29tbWEgc2VwYXJhdGVkKSBDb21tYSBtZWFucyBvciINCiAgICB9LA0KICAgICJwcmVzZXJ2ZU1hcHBpbmciOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJQcmVzZXJ2ZSBFeGlzdGluZyBNM1U8YnI+Q2hhbm5lbCBOdW1iZXJzIiwNCiAgICAgICJwYWxjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIlByZXNlcnZlIGV4aXN0aW5nIE0zVSBwbGF5bGlzdCBjaGFubmVsIG51bWJlcnM/Ig0KICAgIH0sDQogICAgInN0YXJ0aW5nQ2hhbm5lbCI6DQogICAgew0KICAgICAgInRpdGxlIjogIlN0YXJ0aW5nIENoYW5uZWwgTnVtYmVyIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJkZWZhdWx0TWlzc2luZ0VQRyI6DQogICAgew0KICAgICAgInRpdGxlIjogIkZpbGwgTWlzc2luZyBFUEcgRGF0YSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJXaGVuIHRoZXJlIGlzIG5vIG1hdGNoaW5nIEVQRyBkYXRhIGZvciBjaGFubmVsLCA8YnI+YXV0b2ZpbGwgd2l0aCB4VGVWZSBkdW1teSBFUEcgZGF0YT8iDQogICAgfQ0KDQogIH0sDQogICJwbGF5bGlzdCI6DQogIHsNCiAgICAidGFibGUiOg0KICAgIHsNCiAgICAgICJwbGF5bGlzdCI6ICJQbGF5bGlzdCIsDQogICAgICAidHVuZXIiOiAiVHVuZXIiLA0KICAgICAgImxhc3RVcGRhdGUiOiAiTGFzdCBVcGRhdGUiLA0KICAgICAgImF2YWlsYWJpbGl0eSI6ICJBdmFpbGFiaWxpdHkiLA0KICAgICAgInR5cGUiOiAiVHlwZSIsDQogICAgICAic3RyZWFtcyI6ICJTdHJlYW1zIiwNCiAgICAgICJncm91cFRpdGxlIjogImdyb3VwLXRpdGxlIiwNCiAgICAgICJ0dmdJRCI6ICJ0dmctaWQiLA0KICAgICAgInVuaXF1ZUlEIjogIlVuaXF1ZSBJRCINCiAgICB9LA0KICAgICJwbGF5bGlzdFR5cGUiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJQbGF5bGlzdCB0eXBlIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJ0eXBlIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiVHlwZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAibmFtZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIk5hbWUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIlBsYXlsaXN0IG5hbWUiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJkZXNjcmlwdGlvbiI6DQogICAgew0KICAgICAgInRpdGxlIjogIkRlc2NyaXB0aW9uIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJEZXNjcmlwdGlvbiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgImZpbGVNM1UiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJNM1UgRmlsZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiRmlsZSBwYXRoIG9yIFVSTCBvZiB0aGUgTTNVIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAiZmlsZUhESFIiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJIREhvbWVSdW4gSVAiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIklQIGFkZHJlc3MgYW5kIHBvcnQgKDE5Mi4xNjguMS4xMDo1MDA0KSIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgInR1bmVyIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiVHVuZXIgLyBTdHJlYW1zIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIk51bWJlciBvZiBwYXJhbGxlbCBjb25uZWN0aW9ucyB0aGF0IGNhbiBiZSBlc3RhYmxpc2hlZCB0byB0aGUgcHJvdmlkZXIuIDxicj5Pbmx5IGF2YWlsYWJsZSB3aXRoIGFjdGl2YXRlZCBidWZmZXIuPGJyPk5ldyBzZXR0aW5ncyB3aWxsIG9ubHkgYmUgYXBwbGllZCBhZnRlciBxdWl0dGluZyBhbGwgc3RyZWFtcy4iDQogICAgfQ0KICB9LA0KICAieG1sdHYiOg0KICB7DQogICAgInRhYmxlIjoNCiAgICB7DQogICAgICAiZ3VpZGUiOiAiR3VpZGUiLA0KICAgICAgImxhc3RVcGRhdGUiOiAiTGFzdCBVcGRhdGUiLA0KICAgICAgImF2YWlsYWJpbGl0eSI6ICJBdmFpbGFiaWxpdHkiLA0KICAgICAgImNoYW5uZWxzIjogIkNoYW5uZWxzIiwNCiAgICAgICJwcm9ncmFtcyI6ICJQcm9ncmFtcyINCiAgICB9LA0KICAgICJuYW1lIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiTmFtZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiR3VpZGUgbmFtZSIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgImRlc2NyaXB0aW9uIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiRGVzY3JpcHRpb24iLA0KICAgICAgInBsYWNlaG9sZGVyIjogIkRlc2NyaXB0aW9uIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAiZmlsZVhNTFRWIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiWE1MVFYgRmlsZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiRmlsZSBwYXRoIG9yIFVSTCBvZiB0aGUgWE1MVFYiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9DQogIH0sDQogICJtYXBwaW5nIjoNCiAgew0KICAgICJ0YWJsZSI6DQogICAgew0KICAgICAgImNoTm8iOiAiQ2guIE5vLiIsDQogICAgICAibG9nbyI6ICJMb2dvIiwNCiAgICAgICJjaGFubmVsTmFtZSI6ICJDaGFubmVsIE5hbWUiLA0KICAgICAgInBsYXlsaXN0IjogIlBsYXlsaXN0IiwNCiAgICAgICJncm91cFRpdGxlIjogIkdyb3VwIFRpdGxlIiwNCiAgICAgICJ4bWx0dkZpbGUiOiAiWE1MVFYgRmlsZSIsDQogICAgICAieG1sdHZJRCI6ICJYTUxUViBJRCIsDQogICAgICAidGltZXNoaWZ0IjogIlRpbWVzaGlmdCINCiAgICB9LA0KICAgICJhY3RpdmUiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJBY3RpdmUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgImNoYW5uZWxOYW1lIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiQ2hhbm5lbCBOYW1lIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJkZXNjcmlwdGlvbiI6DQogICAgew0KICAgICAgInRpdGxlIjogIkNoYW5uZWwgRGVzY3JpcHRpb24iLA0KICAgICAgInBsYWNlaG9sZGVyIjogIlVzZWQgYnkgdGhlIER1bW15IGFzIGFuIFhNTCBkZXNjcmlwdGlvbiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgInVwZGF0ZUNoYW5uZWxOYW1lIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiVXBkYXRlIENoYW5uZWwgTmFtZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAiY2hhbm5lbExvZ28iOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJMb2dvIFVSTCIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAidXBkYXRlQ2hhbm5lbExvZ28iOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJVcGRhdGUgQ2hhbm5lbCBMb2dvIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJlcGdDYXRlZ29yeSI6DQogICAgew0KICAgICAgInRpdGxlIjogIkVQRyBDYXRlZ29yeSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAibTN1R3JvdXBUaXRsZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIkdyb3VwIFRpdGxlICh4dGV2ZS5tM3UpIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJ4bWx0dkZpbGUiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJYTUxUViBGaWxlIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJ4bWx0dkNoYW5uZWwiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJYTUxUViBDaGFubmVsIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJ0aW1lc2hpZnQiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJUaW1lc2hpZnQiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIjAiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9DQogIH0sDQogICJ1c2VycyI6DQogIHsNCiAgICAidGFibGUiOg0KICAgIHsNCiAgICAgICJ1c2VybmFtZSI6ICJVc2VybmFtZSIsDQogICAgICAicGFzc3dvcmQiOiAiUGFzc3dvcmQiLA0KICAgICAgIndlYiI6ICJXRUIiLA0KICAgICAgInBtcyI6ICJQTVMiLA0KICAgICAgIm0zdSI6ICJNM1UiLA0KICAgICAgInhtbCI6ICJYTUwiLA0KICAgICAgImFwaSI6ICJBUEkiDQogICAgfSwNCiAgICAidXNlcm5hbWUiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJVc2VybmFtZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiVXNlcm5hbWUiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJwYXNzd29yZCI6DQogICAgew0KICAgICAgInRpdGxlIjogIlBhc3N3b3JkIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJQYXNzd29yZCIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgImNvbmZpcm0iOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJDb25maXJtIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJQYXNzd29yZCBjb25maXJtIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAid2ViIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiV2ViIEFjY2VzcyIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAicG1zIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiUE1TIEFjY2VzcyIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAibTN1IjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiTTNVIEFjY2VzcyIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAieG1sIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiWE1MIEFjY2VzcyIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAiYXBpIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiQVBJIEFjY2VzcyIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfQ0KICB9LA0KICAic2V0dGluZ3MiOg0KICB7DQogICAgImNhdGVnb3J5IjoNCiAgICB7DQogICAgICAiZ2VuZXJhbCI6ICJHZW5lcmFsIiwNCiAgICAgICJmaWxlcyI6ICJGaWxlcyIsDQogICAgICAic3RyZWFtaW5nIjogIlN0cmVhbWluZyIsDQogICAgICAiYmFja3VwIjogIkJhY2t1cCIsDQogICAgICAiYXV0aGVudGljYXRpb24iOiAiQXV0aGVudGljYXRpb24iDQogICAgfSwNCiAgICAidXBkYXRlIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiU2NoZWR1bGUgZm9yIHVwZGF0aW5nIChQbGF5bGlzdCwgWE1MVFYsIEJhY2t1cCkiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIjAwMDAsMTAwMCwyMDAwIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJUaW1lIGluIDI0IGhvdXIgZm9ybWF0ICgwODAwID0gODowMCBhbSkuIE1vcmUgdGltZXMgY2FuIGJlIGVudGVyZWQgY29tbWEgc2VwYXJhdGVkLiBMZWF2ZSB0aGlzIGZpZWxkIGVtcHR5IGlmIG5vIHVwZGF0ZXMgYXJlIHRvIGJlIGNhcnJpZWQgb3V0LiINCiAgICB9LA0KICAgICJhcGkiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJBUEkgSW50ZXJmYWNlIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJWaWEgQVBJIGludGVyZmFjZSBpdCBpcyBwb3NzaWJsZSB0byBzZW5kIGNvbW1hbmRzIHRvIHhUZVZlLiBBUEkgZG9jdW1lbnRhdGlvbiBpcyA8YSBocmVmPSdodHRwczovL2dpdGh1Yi5jb20veHRldmUtcHJvamVjdC94VGVWZS1Eb2N1bWVudGF0aW9uL2Jsb2IvbWFzdGVyL2VuL2NvbmZpZ3VyYXRpb24ubWQjYXBpJz5oZXJlPC9hPiINCiAgICB9LA0KICAgICJlcGdTb3VyY2UiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJFUEcgU291cmNlIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJQTVM6PGJyPi0gVXNlIEVQRyBkYXRhIGZyb20gUGxleCBvciBFbWJ5IDxicj48YnI+WEVQRzo8YnI+LSBVc2Ugb2Ygb25lIG9yIG1vcmUgWE1MVFYgZmlsZXM8YnI+LSBDaGFubmVsIG1hbmFnZW1lbnQ8YnI+LSBNM1UgLyBYTUxUViBleHBvcnQgKEhUVFAgbGluayBmb3IgSVBUViBhcHBzKSINCiAgICB9LA0KICAgICJ0dW5lciI6DQogICAgew0KICAgICAgInRpdGxlIjogIk51bWJlciBvZiBUdW5lcnMiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIk51bWJlciBvZiBwYXJhbGxlbCBjb25uZWN0aW9ucyB0aGF0IGNhbiBiZSBlc3RhYmxpc2hlZCB0byB0aGUgcHJvdmlkZXIuPGJyPkF2YWlsYWJsZSBmb3I6IFBsZXgsIEVtYnkgKEhESFIpLCBNM1UgKHdpdGggYWN0aXZlIGJ1ZmZlcikuPGJyPkFmdGVyIGEgY2hhbmdlLCB4VGVWZSBtdXN0IGJlIGRlbGV0ZSBpbiB0aGUgUGxleCAvIEVtYnkgRFZSIHNldHRpbmdzIGFuZCBzZXQgdXAgYWdhaW4uIg0KICAgIH0sDQogICAgImZpbGVzVXBkYXRlIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiVXBkYXRlcyBhbGwgZmlsZXMgYXQgc3RhcnR1cCIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiVXBkYXRlcyBhbGwgcGxheWxpc3RzLCB0dW5lciBhbmQgWE1MVFYgZmlsZXMgYXQgc3RhcnR1cC4iDQogICAgfSwNCiAgICAiY2FjaGVJbWFnZXMiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJJbWFnZSBDYWNoaW5nIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJBbGwgaW1hZ2VzIGZyb20gdGhlIFhNTFRWIGZpbGUgYXJlIGNhY2hlZCwgYWxsb3dpbmcgZmFzdGVyIHJlbmRlcmluZyBvZiB0aGUgZ3JpZCBpbiB0aGUgY2xpZW50Ljxicj5Eb3dubG9hZGluZyB0aGUgaW1hZ2VzIG1heSB0YWtlIGEgd2hpbGUgYW5kIHdpbGwgYmUgZG9uZSBpbiB0aGUgYmFja2dyb3VuZC4iDQogICAgfSwNCiAgICAicmVwbGFjZUVtcHR5SW1hZ2VzIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiUmVwbGFjZSBtaXNzaW5nIHByb2dyYW0gaW1hZ2VzIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJJZiB0aGUgcG9zdGVyIGluIHRoZSBYTUxUViBwcm9ncmFtIGlzIG1pc3NpbmcsIHRoZSBjaGFubmVsIGxvZ28gd2lsbCBiZSB1c2VkLiINCiAgICB9LA0KICAgICJ4dGV2ZUF1dG9VcGRhdGUiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJBdXRvbWF0aWMgdXBkYXRlIG9mIHhUZVZlIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJJZiBhIG5ldyB2ZXJzaW9uIG9mIHhUZVZlIGlzIGF2YWlsYWJsZSwgaXQgd2lsbCBiZSBhdXRvbWF0aWNhbGx5IGluc3RhbGxlZC4gVGhlIHVwZGF0ZXMgYXJlIGRvd25sb2FkZWQgZnJvbSBHaXRIdWIuIg0KICAgIH0sDQogICAgInN0cmVhbUJ1ZmZlcmluZyI6DQogICAgew0KICAgICAgInRpdGxlIjogIlN0cmVhbSBCdWZmZXIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIkZ1bmN0aW9ucyBvZiB0aGUgYnVmZmVyOjxicj4tIFRoZSBzdHJlYW0gaXMgcGFzc2VkIGZyb20geFRlVmUsIEZGbXBlZyBvciBWTEMgdG8gUGxleCwgRW1ieSBvciBNM1UgUGxheWVyPGJyPi0gU21hbGwgamVya2luZyBvZiB0aGUgc3RyZWFtcyBjYW4gYmUgY29tcGVuc2F0ZWQ8YnI+LSBITFMgLyBNM1U4IHN1cHBvcnQ8YnI+LSBSVFAgLyBSVFBTIHN1cHBvcnQgKG9ubHkgRkZtcGVnIG9yIFZMQyk8YnI+LSBSZS1zdHJlYW1pbmc8YnI+LSBTZXBhcmF0ZSB0dW5lciBsaW1pdCBmb3IgZWFjaCBwbGF5bGlzdCIsDQogICAgICAiaW5mb19mYWxzZSI6ICJObyBCdWZmZXIgKENsaWVudCBjb25uZWN0cyB0byB0aGUgc3RyZWFtaW5nIHNlcnZlcikiLA0KICAgICAgImluZm9feHRldmUiOiAieFRlVmUgY29ubmVjdHMgdG8gdGhlIHN0cmVhbWluZyBzZXJ2ZXIiLA0KICAgICAgImluZm9fZmZtcGVnIjogIkZGbXBlZyBjb25uZWN0cyB0byB0aGUgc3RyZWFtaW5nIHNlcnZlciIsDQogICAgICAiaW5mb192bGMiOiAiVkxDIGNvbm5lY3RzIHRvIHRoZSBzdHJlYW1pbmcgc2VydmVyIg0KDQogICAgfSwNCiAgICAidWRweHkiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJVRFB4eSBhZGRyZXNzIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJUaGUgYWRkcmVzcyBvZiB5b3VyIFVEUHh5IHNlcnZlci4gSWYgc2V0LCBhbmQgdGhlIGNoYW5uZWwgVVJMcyBpbiB0aGUgbTN1IGlzIG11bHRpY2FzdCwgeFRlVmUgd2lsbCByZXdyaXRlIGl0IHNvIHRoYXQgaXQgaXMgYWNjZXNzZWQgdmlhIHRoZSBVRFB4eSBzZXJ2aWNlLiIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiaG9zdDpwb3J0Ig0KICAgIH0sDQogICAgImZmbXBlZ1BhdGgiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJGRm1wZWcgQmluYXJ5IFBhdGgiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIlBhdGggdG8gRkZtcGVnIGJpbmFyeS4iLA0KICAgICAgInBsYWNlaG9sZGVyIjogIi9wYXRoL3RvL2ZmbXBlZyINCiAgICB9LA0KICAgICJmZm1wZWdPcHRpb25zIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiRkZtcGVnIE9wdGlvbnMiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIkZGbXBlZyBvcHRpb25zLjxicj5Pbmx5IGNoYW5nZSBpZiB5b3Uga25vdyB3aGF0IHlvdSBhcmUgZG9pbmcuPGJyPkxlYXZlIGJsYW5rIHRvIHNldCBkZWZhdWx0IHNldHRpbmdzLiIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiTGVhdmUgYmxhbmsgdG8gc2V0IGRlZmF1bHQgc2V0dGluZ3MiDQogICAgfSwNCiAgICAidmxjUGF0aCI6DQogICAgew0KICAgICAgInRpdGxlIjogIlZMQyAvIENWTEMgQmluYXJ5IFBhdGgiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIlBhdGggdG8gVkxDIC8gQ1ZMQyBiaW5hcnkuIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIvcGF0aC90by9jdmxjIg0KICAgIH0sDQogICAgInZsY09wdGlvbnMiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJWTEMgLyBDVkxDIE9wdGlvbnMiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIlZMQyAvIENWTEMgb3B0aW9ucy48YnI+T25seSBjaGFuZ2UgaWYgeW91IGtub3cgd2hhdCB5b3UgYXJlIGRvaW5nLjxicj5MZWF2ZSBibGFuayB0byBzZXQgZGVmYXVsdCBzZXR0aW5ncy4iLA0KICAgICAgInBsYWNlaG9sZGVyIjogIkxlYXZlIGJsYW5rIHRvIHNldCBkZWZhdWx0IHNldHRpbmdzIg0KICAgIH0sDQogICAgImJ1ZmZlclNpemUiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJCdWZmZXIgU2l6ZSIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiQnVmZmVyIHNpemUgaW4gTUIuPGJyPk0zVTg6IElmIHRoZSBUUyBzZWdtZW50IHNtYWxsZXIgdGhlbiB0aGUgYnVmZmVyIHNpemUsIHRoZSBmaWxlIHNpemUgb2YgdGhlIHNlZ21lbnQgaXMgdXNlZC4iDQogICAgfSwNCiAgICAiYnVmZmVyVGltZW91dCI6DQogICAgew0KICAgICAgInRpdGxlIjogIlRpbWVvdXQgZm9yIG5ldyBjbGllbnQgY29ubmVjdGlvbnMiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIlRoZSB4VGVWZSBidWZmZXIgd2FpdHMgdW50aWwgbmV3IGNsaWVudCBjb25uZWN0aW9ucyBhcmUgZXN0YWJsaXNoZWQuIEhlbHBmdWwgZm9yIGZhc3QgY2hhbm5lbCBzd2l0Y2hpbmcuIFZhbHVlIGluIG1pbGxpc2Vjb25kcy4iLA0KICAgICAgInBsYWNlaG9sZGVyIjogIjEwMCINCiAgICB9LA0KICAgICJ1c2VyQWdlbnQiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJVc2VyIEFnZW50IiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJVc2VyIEFnZW50IGZvciBIVFRQIHJlcXVlc3RzLiBGb3IgZXZlcnkgSFRUUCBjb25uZWN0aW9uLCB0aGlzIHZhbHVlIGlzIHVzZWQgZm9yIHRoZSB1c2VyIGFnZW50LiBTaG91bGQgb25seSBiZSBjaGFuZ2VkIGlmIHhUZVZlIGlzIGJsb2NrZWQuIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJ4VGVWZSINCiAgICB9LA0KICAgICJiYWNrdXBQYXRoIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiTG9jYXRpb24gZm9yIGF1dG9tYXRpYyBiYWNrdXBzIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIvbW50L2RhdGEvYmFja3VwL3h0ZXZlLyIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiQmVmb3JlIGFueSB1cGRhdGUgb2YgdGhlIHByb3ZpZGVyIGRhdGEgYnkgdGhlIHNjaGVkdWxlLCB4VGVWZSBjcmVhdGVzIGEgYmFja3VwLiBUaGUgcGF0aCBmb3IgdGhlIGF1dG9tYXRpYyBiYWNrdXBzIGNhbiBiZSBjaGFuZ2VkLiB4VGVWZSByZXF1aXJlcyB3cml0ZSBwZXJtaXNzaW9uIGZvciB0aGlzIGZvbGRlci4iDQogICAgfSwNCiAgICAidGVtcFBhdGgiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJMb2NhdGlvbiBmb3IgdGhlIHRlbXBvcmFyeSBmaWxlcyIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiL3RtcC94dGV2ZS8iLA0KICAgICAgImRlc2NyaXB0aW9uIjogIkxvY2F0aW9uIGZvciB0aGUgYnVmZmVyIGZpbGVzLiINCiAgICB9LA0KICAgICJiYWNrdXBLZWVwIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiTnVtYmVyIG9mIGJhY2t1cHMgdG8ga2VlcCIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiTnVtYmVyIG9mIGJhY2t1cHMgdG8ga2VlcC4gT2xkZXIgYmFja3VwcyBhcmUgYXV0b21hdGljYWxseSBkZWxldGVkLiINCiAgICB9LA0KICAgICJhdXRoZW50aWNhdGlvbldFQiI6DQogICAgew0KICAgICAgInRpdGxlIjogIldFQiBBdXRoZW50aWNhdGlvbiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiQWNjZXNzIHRvIHRoZSB3ZWIgaW50ZXJmYWNlIG9ubHkgcG9zc2libGUgd2l0aCBjcmVkZW50aWFscy4iDQogICAgfSwNCiAgICAiYXV0aGVudGljYXRpb25QTVMiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJQTVMgQXV0aGVudGljYXRpb24iLA0KICAgICAgImRlc2NyaXB0aW9uIjogIlBsZXggcmVxdWVzdHMgYXJlIG9ubHkgcG9zc2libGUgd2l0aCBhdXRoZW50aWNhdGlvbi4gPGJyPjxiPldhcm5pbmchISE8L2I+IEFmdGVyIGFjdGl2YXRpbmcgdGhpcyBmdW5jdGlvbiB4VGVWZSBtdXN0IGJlIGRlbGV0ZSBpbiB0aGUgUE1TIERWUiBzZXR0aW5ncyBhbmQgc2V0IHVwIGFnYWluLiINCiAgICB9LA0KICAgICJhdXRoZW50aWNhdGlvbk0zVSI6DQogICAgew0KICAgICAgInRpdGxlIjogIk0zVSBBdXRoZW50aWNhdGlvbiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiRG93bmxvYWRpbmcgdGhlIHh0ZXZlLm0zdSBmaWxlIHZpYSBhbiBIVFRQIHJlcXVlc3QgaXMgb25seSBwb3NzaWJsZSB3aXRoIGF1dGhlbnRpY2F0aW9uLiINCiAgICB9LA0KICAgICJhdXRoZW50aWNhdGlvblhNTCI6DQogICAgew0KICAgICAgInRpdGxlIjogIlhNTCBBdXRoZW50aWNhdGlvbiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiRG93bmxvYWRpbmcgdGhlIHh0ZXZlLnhtbCBmaWxlIHZpYSBhbiBIVFRQIHJlcXVlc3QgaXMgb25seSBwb3NzaWJsZSB3aXRoIGF1dGhlbnRpY2F0aW9uIg0KICAgIH0sDQogICAgImF1dGhlbnRpY2F0aW9uQVBJIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiQVBJIEF1dGhlbnRpY2F0aW9uIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJBY2Nlc3MgdG8gdGhlIEFQSSBpbnRlcmZhY2UgaXMgb25seSBwb3NzaWJsZSB3aXRoIGF1dGhlbnRpY2F0aW9uLiINCiAgICB9DQogIH0sDQogICJ3aXphcmQiOg0KICB7DQogICAgImVwZ1NvdXJjZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIkVQRyBTb3VyY2UiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIlBNUzo8YnI+LSBVc2UgRVBHIGRhdGEgZnJvbSBQbGV4IG9yIEVtYnkgPGJyPjxicj5YRVBHOjxicj4tIFVzZSBvZiBvbmUgb3IgbW9yZSBYTUxUViBmaWxlczxicj4tIENoYW5uZWwgbWFuYWdlbWVudDxicj4tIE0zVSAvIFhNTFRWIGV4cG9ydCAoSFRUUCBsaW5rIGZvciBJUFRWIGFwcHMpIg0KICAgIH0sDQogICAgInR1bmVyIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiTnVtYmVyIG9mIHR1bmVycyIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiTnVtYmVyIG9mIHBhcmFsbGVsIGNvbm5lY3Rpb25zIHRoYXQgY2FuIGJlIGVzdGFibGlzaGVkIHRvIHRoZSBwcm92aWRlci48YnI+QXZhaWxhYmxlIGZvcjogUGxleCwgRW1ieSAoSERIUiksIE0zVSAod2l0aCBhY3RpdmUgYnVmZmVyKS48YnI+QWZ0ZXIgYSBjaGFuZ2UsIHhUZVZlIG11c3QgYmUgZGVsZXRlIGluIHRoZSBQbGV4IC8gRW1ieSBEVlIgc2V0dGluZ3MgYW5kIHNldCB1cCBhZ2Fpbi4iDQogICAgfSwNCiAgICAibTN1IjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiTTNVIFBsYXlsaXN0IiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJGaWxlIHBhdGggb3IgVVJMIG9mIHRoZSBNM1UiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIkxvY2FsIG9yIHJlbW90ZSBwbGF5bGlzdHMiDQogICAgfSwNCiAgICAieG1sdHYiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJYTUxUViBGaWxlIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJGaWxlIHBhdGggb3IgVVJMIG9mIHRoZSBYTUxUViIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiTG9jYWwgb3IgcmVtb3RlIFhNTFRWIGZpbGUiDQogICAgfQ0KICB9LA0KICAibG9naW4iOg0KICB7DQogICAgImZhaWxlZCI6ICJVc2VyIGF1dGhlbnRpY2F0aW9uIGZhaWxlZCIsDQogICAgImhlYWRsaW5lIjogIkxvZ2luIiwNCiAgICAidXNlcm5hbWUiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJVc2VybmFtZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiVXNlcm5hbWUiDQogICAgfSwNCiAgICAicGFzc3dvcmQiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJQYXNzd29yZCIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiUGFzc3dvcmQiDQogICAgfQ0KICB9LA0KICAiYWNjb3VudCI6DQogIHsNCiAgICAiZmFpbGVkIjogIlBhc3N3b3JkIGRvZXMgbm90IG1hdGNoIiwNCiAgICAiaGVhZGxpbmUiOiAiQ3JlYXRlIHVzZXIgYWNjb3VudCIsDQogICAgInVzZXJuYW1lIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiVXNlcm5hbWUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIlVzZXJuYW1lIg0KICAgIH0sDQogICAgInBhc3N3b3JkIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiUGFzc3dvcmQiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIlBhc3N3b3JkIg0KICAgIH0sDQogICAgImNvbmZpcm0iOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJDb25maXJtIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJDb25maXJtIg0KICAgIH0NCiAgfQ0KfQ==" - webUI["html/img/logo_b_880x200.jpg"] = "/9j/4AAQSkZJRgABAQABLAEsAAD/4QDIRXhpZgAATU0AKgAAAAgABwESAAMAAAABAAEAAAEaAAUAAAABAAAAYgEbAAUAAAABAAAAagEoAAMAAAABAAIAAAExAAIAAAAPAAAAcgEyAAIAAAAUAAAAgodpAAQAAAABAAAAlgAAAAAAAAEsAAAAAQAAASwAAAABUGl4ZWxtYXRvciAzLjMAADIwMTk6MDg6MDIgMjA6MDg6MTQAAAOgAQADAAAAAQABAACgAgAEAAAAAQAAA3CgAwAEAAAAAQAAAMgAAAAA/+EJkGh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8APD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iWE1QIENvcmUgNS40LjAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcDpDcmVhdG9yVG9vbD0iUGl4ZWxtYXRvciAzLjMiIHhtcDpNb2RpZnlEYXRlPSIyMDE5LTA4LTAyVDIwOjA4OjE0Ii8+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPD94cGFja2V0IGVuZD0idyI/PgD/7QA4UGhvdG9zaG9wIDMuMAA4QklNBAQAAAAAAAA4QklNBCUAAAAAABDUHYzZjwCyBOmACZjs+EJ+/8AAEQgAyANwAwERAAIRAQMRAf/EAB8AAAEFAQEBAQEBAAAAAAAAAAABAgMEBQYHCAkKC//EALUQAAIBAwMCBAMFBQQEAAABfQECAwAEEQUSITFBBhNRYQcicRQygZGhCCNCscEVUtHwJDNicoIJChYXGBkaJSYnKCkqNDU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6g4SFhoeIiYqSk5SVlpeYmZqio6Slpqeoqaqys7S1tre4ubrCw8TFxsfIycrS09TV1tfY2drh4uPk5ebn6Onq8fLz9PX29/j5+v/EAB8BAAMBAQEBAQEBAQEAAAAAAAABAgMEBQYHCAkKC//EALURAAIBAgQEAwQHBQQEAAECdwABAgMRBAUhMQYSQVEHYXETIjKBCBRCkaGxwQkjM1LwFWJy0QoWJDThJfEXGBkaJicoKSo1Njc4OTpDREVGR0hJSlNUVVZXWFlaY2RlZmdoaWpzdHV2d3h5eoKDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uLj5OXm5+jp6vLz9PX29/j5+v/bAEMAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAf/bAEMBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAf/dAAQAbv/aAAwDAQACEQMRAD8A/iHoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKAP/9D+IegAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoA//0f4h6ACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgD//S/iHoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKAP/9P+IegAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoA//1P4h6ACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgDvPDXws+J3jPT31bwf8OfHnivSo7mSyfU/DXhDxBrunpeQpFLNaPe6Xp11bLcxRzwSSQNL5saTROyhZUNAHQf8M//AB4/6In8XP8Aw23jL/5TUAH/AAz/APHj/oifxc/8Nt4y/wDl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f/E3xn4o+IPjnxDLaafp8mveMPGet33iPxNrMlhpNpYaVZPqmtale3z2mmWNlp9s05hsrS2tkjhQA4ygAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgD//S/iHoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAczu+N7M2BgbmLYHoM9BnJxx1/FgBtABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAOLuwVWZiq/dUsSFz12joM4HQduc4FADaACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgD//0/4h6ACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgD//U/iHoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKAP/9X+IegAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoA//1v4h6ACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgD//X/iHoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKAP/9k=" - webUI["html/js/authentication.js"] = "ZnVuY3Rpb24gY3JlYXRlRmlyc3RBY2NvdW50KGVsbSkgew0KICB2YXIgZXJyID0gZmFsc2U7DQogIHZhciBkaXYgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChlbG0pOw0KICBjb25zb2xlLmxvZyhkaXYpOw0KDQogIHZhciBmb3JtID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2F1dGhlbnRpY2F0aW9uJyk7DQogIA0KICBjb25zdCB1c2VybmFtZSAgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndXNlcm5hbWUnKTsNCiAgY29uc3QgcGFzc3dvcmQgID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Bhc3N3b3JkJyk7DQogIGNvbnN0IGNvbmZpcm0gICA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjb25maXJtJyk7DQoNCiAgdmFyIGlucHV0cyA9IGRpdi5nZXRFbGVtZW50c0J5VGFnTmFtZSgnSU5QVVQnKQ0KICBjb25zb2xlLmxvZyhjb25maXJtKTsNCg0KICBzd2l0Y2goY29uZmlybSkgew0KICAgIGNhc2UgbnVsbDogYnJlYWs7DQogICAgDQogICAgZGVmYXVsdDogDQogICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGlucHV0cy5sZW5ndGg7IGkrKykgew0KICAgICAgICBpZiAoaW5wdXRzW2ldLnZhbHVlLmxlbmd0aCA9PSAwKSB7DQogICAgICAgICAgaW5wdXRzW2ldLnN0eWxlLmJvcmRlckNvbG9yID0gJ3JlZCc7DQogICAgICAgICAgZXJyID0gdHJ1ZQ0KICAgICAgICB9DQogICAgICB9DQoNCiAgICAgIHN3aXRjaChlcnIpIHsNCiAgICAgICAgY2FzZSB0cnVlOiByZXR1cm47IGJyZWFrOw0KICAgICAgICBjYXNlIGZhbHNlOiANCiAgICAgICAgICBpZiAocGFzc3dvcmQudmFsdWUgIT0gY29uZmlybS52YWx1ZSkgew0KICAgICAgICAgICAgY29uZmlybS5zdHlsZS5ib3JkZXJDb2xvciA9ICdyZWQnOw0KICAgICAgICAgICAgcmV0dXJuOw0KICAgICAgICAgIH0NCiAgICAgICAgICBicmVhazsNCiAgICAgIH0NCiAgfQ0KDQoNCiAgDQoNCiAgZm9ybS5zdWJtaXQoKTsNCiAgcmV0dXJuOw0KfQ==" + webUI["html/img/users.png"] = "iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAAAXNSR0IArs4c6QAAAAlwSFlzAAAsSwAALEsBpT2WqQAABCRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IlhNUCBDb3JlIDUuNC4wIj4KICAgPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIgogICAgICAgICAgICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgICAgICAgICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyI+CiAgICAgICAgIDx0aWZmOlJlc29sdXRpb25Vbml0PjI8L3RpZmY6UmVzb2x1dGlvblVuaXQ+CiAgICAgICAgIDx0aWZmOkNvbXByZXNzaW9uPjU8L3RpZmY6Q29tcHJlc3Npb24+CiAgICAgICAgIDx0aWZmOlhSZXNvbHV0aW9uPjI4ODwvdGlmZjpYUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6T3JpZW50YXRpb24+MTwvdGlmZjpPcmllbnRhdGlvbj4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+Mjg4PC90aWZmOllSZXNvbHV0aW9uPgogICAgICAgICA8ZXhpZjpQaXhlbFhEaW1lbnNpb24+NTA8L2V4aWY6UGl4ZWxYRGltZW5zaW9uPgogICAgICAgICA8ZXhpZjpDb2xvclNwYWNlPjE8L2V4aWY6Q29sb3JTcGFjZT4KICAgICAgICAgPGV4aWY6UGl4ZWxZRGltZW5zaW9uPjUwPC9leGlmOlBpeGVsWURpbWVuc2lvbj4KICAgICAgICAgPGRjOnN1YmplY3Q+CiAgICAgICAgICAgIDxyZGY6QmFnLz4KICAgICAgICAgPC9kYzpzdWJqZWN0PgogICAgICAgICA8eG1wOk1vZGlmeURhdGU+MjAxOC0wOC0zMFQxNzowODozODwveG1wOk1vZGlmeURhdGU+CiAgICAgICAgIDx4bXA6Q3JlYXRvclRvb2w+UGl4ZWxtYXRvciAzLjM8L3htcDpDcmVhdG9yVG9vbD4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgIDwvcmRmOlJERj4KPC94OnhtcG1ldGE+CjU01MMAAANJSURBVGgF1ZnLaxNRFMYz2rpoFbW+SCsihaJQRMT6rPhAXAq6c+HChSguRFd1oRtd+A/oWhQ3oiiWFB91UbqRqlXXgoIIQhFbQTTQao2/GzLDZEjIPefO7SQHPjJz55zzfd/MZCa5N8h5ilKptJvWp8FekAed4Bv4Cj6Dh2A4CIJZPpszMHEV2MQ0SZdB0DROENMHjoEzQBoFCpZnbgYR58E/qfpE/kv2F2dmBvJ94G9ClHb3SiZGUBuASa3qGnVzjG3RmFmkKYrVHGB7e2zfdbOdBhc1TVyNnNSQNqg5wVURf/FdjRxpIEpzuIOio9JCtRHO2hrINkgJLfPFt6vaCII2WYrSpPVJi1RGuBrmTbxeSibIX5j3CUauAfOo9BXzNH4nMJ5TXREI1gHzqPQVRtc2zCyxJdAaGbclcMj7zi/jOdt6rZFhCH7akijznknqVEY4U78heSAhUuTekNSojFQIChIiYe57TtZrSY2LkecQzUjIBLljglz3VJ4qg+AXSDNGabbWXZ2wA6Qjabqg136hhHK6y60V8o2EGyl8/qHHpKZPGkYeQzyvIa9RM86XvFhjvOGQsxGIp2B50ZDJLuG2XZqnLO5rM3viGh9o0OZJon1bRLxxdHLcns1jJiYOAu2U0D2P0uStMXJdcVU+UdMlZ/NYgaA28ERg5ge5/R4l6VsjrANMWJiZJWeXnqm60vnxW90ul6u8ByaS4zX2i+S+qjGuGkrdSEWFzT1vlhlSC19Gui0UtnNriSfi6vX1ZWRjPcLEeGrzYqkb4SyvQGxvQnC93cF6BzIfx8gpYBsfSdycuei4AAR1ggugCCRh1lbugIF4vwXbhtisjfSDc+ARSOOf4lv6mNWv1VIj1ouQNF9K851gDzArtWbV1uYxS5o4zB+sp+AuKPC+cVv5RXwPuATMmUpreY1Wopgh+ybYKj4dFHWB+8DMwTZTjCHmsJUhEgfAF9DMcQtx9V8dHMyDqWZ2ENM2FL8yVV92kkY56GM5Lc6Z1vY0jbp5EJQnuqPLg4kdLWTCnIxVIJoDi4wweNYcbbGIfuLEjRxqMRNGbvTvsmyE22oZg70taKQn1BxekXw40GKfK0O9oZHsJ8ZCRbLPaI3xP7YzeQoHxWckAAAAAElFTkSuQmCC" + webUI["html/index.html"] = "PCFkb2N0eXBlIGh0bWw+DQo8aHRtbD4NCiAgPGhlYWQ+DQogICAgPG1ldGEgY2hhcnNldD0idXRmLTgiPg0KICAgIDwhLS0tDQogICAgPG1ldGEgbmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9IndpZHRoPWRldmljZS13aWR0aCwgaW5pdGlhbC1zY2FsZT0xLjAiIC8+IA0KICAgIC0tPg0KICAgIDx0aXRsZT54VGVWZTwvdGl0bGU+DQogICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJjc3Mvc2NyZWVuLmNzcyIgdHlwZT0idGV4dC9jc3MiPg0KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iY3NzL2Jhc2UuY3NzIiB0eXBlPSJ0ZXh0L2NzcyI+DQoNCiAgICA8c2NyaXB0IGxhbmd1YWdlPSJqYXZhc2NyaXB0IiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ianMvbmV0d29ya190cy5qcyI+PC9zY3JpcHQ+DQogICAgPHNjcmlwdCBsYW5ndWFnZT0iamF2YXNjcmlwdCIgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9ImpzL21lbnVfdHMuanMiPjwvc2NyaXB0Pg0KICAgIDxzY3JpcHQgbGFuZ3VhZ2U9ImphdmFzY3JpcHQiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJqcy9zZXR0aW5nc190cy5qcyI+PC9zY3JpcHQ+DQogICAgPHNjcmlwdCBsYW5ndWFnZT0iamF2YXNjcmlwdCIgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9ImpzL2xvZ3NfdHMuanMiPjwvc2NyaXB0Pg0KICAgIDxzY3JpcHQgbGFuZ3VhZ2U9ImphdmFzY3JpcHQiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJqcy9iYXNlX3RzLmpzIj48L3NjcmlwdD4NCg0KICA8L2hlYWQ+DQoNCiAgICA8Ym9keSBvbmxvYWQ9ImphdmFzY3JpcHQ6IFBhZ2VSZWFkeSgpOyI+DQoNCiAgICAgIDxkaXYgaWQ9ImxvYWRpbmciIGNsYXNzPSJub25lIj4NCiAgICAgICAgPGRpdiBjbGFzcz0ibG9hZGVyIj48L2Rpdj4NCiAgICAgIDwvZGl2Pg0KDQogICAgICA8ZGl2IGlkPSJwb3B1cCIgY2xhc3M9Im5vbmUiPg0KICAgICAgICA8ZGl2IGlkPSJwb3B1cC1jdXN0b20iPjwvZGl2Pg0KICAgICAgPC9kaXY+DQoNCiAgICAgIDxkaXYgaWQ9ImxheW91dCI+DQoNCiAgICAgICAgPCEtLQ0KICAgICAgICA8ZGl2IGlkPSJub3RpZmljYXRpb24iPg0KICAgICAgICAgIDxkaXYgY2xhc3M9ImVsZW1lbnQiPg0KICAgICAgICAgICAgPGg1PlhFUEc8L2g1Pg0KICAgICAgICAgICAgPHByZT4xMS4wNS4yMDE5IC0gMjA6MjE8L3ByZT4NCiAgICAgICAgICAgIDxocj4NCiAgICAgICAgICAgIDxwPkhhbGxvIGRhcyBpc3QgZWluIFRlc3QuIFVuZCBub2NoIG1laHIgVGV4dC48L3A+DQogICAgICAgICAgPC9kaXY+DQogICAgICAgIDwvZGl2Pg0KICAgICAgLS0+DQoNCiAgICAgICAgPGRpdiBpZD0ibWVudS13cmFwcGVyIiBjbGFzcz0ibGF5b3V0LWxlZnQiPg0KICAgICAgICAgIDxkaXYgaWQ9ICJicmFuY2giPjwvZGl2Pg0KICAgICAgICAgIDxkaXYgaWQ9ImxvZ28iPjwvZGl2Pg0KICAgICAgICAgIDxuYXYgaWQ9Im1haW4tbWVudSI+PC9uYXY+DQogICAgICAgIDwvZGl2Pg0KDQogICAgICAgIDxkaXYgY2xhc3M9ImxheW91dC1yaWdodCI+DQoNCiAgICAgICAgICA8dGFibGUgaWQ9ImNsaWVudEluZm8iIGNsYXNzPSIiPg0KDQogICAgICAgICAgICA8dHI+DQogICAgICAgICAgICAgIDx0ZCBjbGFzcz0idGRLZXkiPnhUZVZlOjwvdGQ+DQogICAgICAgICAgICAgIDx0ZCBpZD0idmVyc2lvbiIgY2xhc3M9InRkVmFsIj4mbmJzcDs8L3RkPg0KICAgICAgICAgICAgICA8dGQgY2xhc3M9InRkS2V5Ij5PUzo8L3RkPg0KICAgICAgICAgICAgICA8dGQgaWQ9Im9zIiBjbGFzcz0idGRWYWwiPiZuYnNwOzwvdGQ+DQogICAgICAgICAgICAgIDx0ZCBjbGFzcz0idGRLZXkgcGhvbmUiPkRWUiBJUDo8L3RkPg0KICAgICAgICAgICAgICA8dGQgaWQ9IkRWUiIgY2xhc3M9InRkVmFsIHBob25lIj4mbmJzcDs8L3RkPg0KICAgICAgICAgICAgPC90cj4NCg0KICAgICAgICAgICAgPHRyPg0KICAgICAgICAgICAgICA8dGQgY2xhc3M9InRkS2V5Ij5VVUlEOjwvdGQ+DQogICAgICAgICAgICAgIDx0ZCBpZD0idXVpZCIgY2xhc3M9InRkVmFsIj4mbmJzcDs8L3RkPg0KICAgICAgICAgICAgICA8dGQgY2xhc3M9InRkS2V5Ij5BcmNoOjwvdGQ+DQogICAgICAgICAgICAgIDx0ZCBpZD0iYXJjaCIgY2xhc3M9InRkVmFsIj4mbmJzcDs8L3RkPg0KICAgICAgICAgICAgICA8dGQgY2xhc3M9InRkS2V5IHBob25lIj5NM1UgVVJMOjwvdGQ+DQogICAgICAgICAgICAgIDx0ZCBpZD0ibTN1LXVybCIgY2xhc3M9InRkVmFsIHBob25lIj4mbmJzcDs8L3RkPg0KICAgICAgICAgICAgPC90cj4NCg0KICAgICAgICAgICAgPHRyPg0KICAgICAgICAgICAgICA8dGQgY2xhc3M9InRkS2V5Ij5BdmFpbGFibGUgU3RyZWFtczo8L3RkPg0KICAgICAgICAgICAgICA8dGQgaWQ9InN0cmVhbXMiIGNsYXNzPSJ0ZFZhbCI+Jm5ic3A7PC90ZD4NCiAgICAgICAgICAgICAgPHRkIGNsYXNzPSJ0ZEtleSI+RVBHIFNvdXJjZTo8L3RkPg0KICAgICAgICAgICAgICA8dGQgaWQ9ImVwZ1NvdXJjZSIgY2xhc3M9InRkVmFsIj4mbmJzcDs8L3RkPg0KICAgICAgICAgICAgICA8dGQgY2xhc3M9InRkS2V5IHBob25lIj5YRVBHIFVSTDo8L3RkPg0KICAgICAgICAgICAgICA8dGQgaWQ9InhlcGctdXJsIiBjbGFzcz0idGRWYWwgcGhvbmUiPiZuYnNwOzwvdGQ+DQogICAgICAgICAgICA8L3RyPg0KDQogICAgICAgICAgICA8dHI+DQogICAgICAgICAgICAgIDx0ZCBjbGFzcz0idGRLZXkiPlhFUEcgQ2hhbm5lbHM6PC90ZD4NCiAgICAgICAgICAgICAgPHRkIGlkPSJ4ZXBnIiBjbGFzcz0idGRWYWwiPiZuYnNwOzwvdGQ+DQogICAgICAgICAgICAgIDx0ZCBjbGFzcz0idGRLZXkiPkVycm9yczo8L3RkPg0KICAgICAgICAgICAgICA8dGQgaWQ9ImVycm9ycyIgY2xhc3M9InRkVmFsIj4mbmJzcDs8L3RkPg0KICAgICAgICAgICAgICA8dGQgY2xhc3M9InRkS2V5Ij5XYXJuaW5nczo8L3RkPg0KICAgICAgICAgICAgICA8dGQgaWQ9Indhcm5pbmdzIiBjbGFzcz0idGRWYWwiPiZuYnNwOzwvdGQ+DQogICAgICAgICAgICA8L3RyPg0KDQogICAgICAgICAgPC90YWJsZT4NCiAgICAgICAgIA0KICAgICAgICAgIDxkaXYgaWQ9Im15U3RyZWFtc0JveCIgY2xhc3M9Im5vdFZpc2libGUiPg0KDQogICAgICAgICAgICA8ZGl2IGlkPSJhbGxTdHJlYW1zIj4NCiAgICAgICAgICAgICAgPHRhYmxlIGlkPSJhY3RpdmVTdHJlYW1zIj48L3RhYmxlPg0KICAgICAgICAgICAgICA8dGFibGUgaWQ9ImluYWN0aXZlU3RyZWFtcyI+PC90YWJsZT4NCiAgICAgICAgICAgIDwvZGl2Pg0KDQogICAgICAgICAgPC9kaXY+DQogICAgICAgICAgDQogICAgICAgICAgPGRpdiBpZD0iY29udGVudCIgY2xhc3M9IiI+PC9kaXY+DQogICAgICAgICAgICANCiAgICAgICAgPC9kaXY+DQoNCiAgICAgIDwvZGl2Pg0KICAgICAgDQogICAgPC9ib2R5Pg0KICAgIA0KPC9odG1sPg==" + webUI["html/login.html"] = "PCFkb2N0eXBlIGh0bWw+DQo8aHRtbD4NCiAgPGhlYWQ+DQogICAgPG1ldGEgY2hhcnNldD0idXRmLTgiPg0KICAgIDxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgsIGluaXRpYWwtc2NhbGU9MS4wIiAvPiANCiAgICA8dGl0bGU+eFRlVmU8L3RpdGxlPg0KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iY3NzL3NjcmVlbi5jc3MiIHR5cGU9InRleHQvY3NzIj4NCiAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9ImNzcy9iYXNlLmNzcyIgdHlwZT0idGV4dC9jc3MiPg0KICAgIDxzY3JpcHQgbGFuZ3VhZ2U9ImphdmFzY3JpcHQiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJqcy9uZXR3b3JrX3RzLmpzIj48L3NjcmlwdD4NCiAgICA8c2NyaXB0IGxhbmd1YWdlPSJqYXZhc2NyaXB0IiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ianMvYXV0aGVudGljYXRpb25fdHMuanMiPjwvc2NyaXB0Pg0KICA8L2hlYWQ+DQoNCiAgICA8Ym9keT4NCiAgICAgICAgICANCiAgICAgIDxkaXYgaWQ9ImhlYWRlciIgY2xhc3M9ImltZ0NlbnRlciI+PC9kaXY+DQoNCiAgICAgIDxkaXYgaWQ9ImJveCI+DQoNCiAgICAgICAgPGRpdiBpZD0iaGVhZGxpbmUiPg0KICAgICAgICAgIDxoMSBpZD0iaGVhZC10ZXh0IiBjbGFzcz0iY2VudGVyIj57ey5sb2dpbi5oZWFkbGluZX19PC9oMT4NCiAgICAgICAgPC9kaXY+DQoNCiAgICAgICAgPHAgaWQ9ImVyciIgY2xhc3M9ImVycm9yTXNnIGNlbnRlciI+e3suYXV0aGVudGljYXRpb25FcnJ9fTwvcD4NCg0KICAgICAgICA8ZGl2IGlkPSJjb250ZW50Ij4NCg0KICAgICAgICAgICAgPGZvcm0gaWQ9ImF1dGhlbnRpY2F0aW9uIiBhY3Rpb249IiIgbWV0aG9kPSJwb3N0Ij4NCg0KICAgICAgICAgICAgICA8aDU+e3subG9naW4udXNlcm5hbWUudGl0bGV9fTo8L2g1Pg0KICAgICAgICAgICAgICA8aW5wdXQgaWQ9InVzZXJuYW1lIiB0eXBlPSJ0ZXh0IiBuYW1lPSJ1c2VybmFtZSIgcGxhY2Vob2xkZXI9IlVzZXJuYW1lIiB2YWx1ZT0iIj4NCiAgICAgICAgICAgICAgPGg1Pnt7LmxvZ2luLnBhc3N3b3JkLnRpdGxlfX06PC9oNT4NCiAgICAgICAgICAgICAgPGlucHV0IGlkPSJwYXNzd29yZCIgdHlwZT0icGFzc3dvcmQiIG5hbWU9InBhc3N3b3JkIiBwbGFjZWhvbGRlcj0iUGFzc3dvcmQiIHZhbHVlPSIiPg0KDQogICAgICAgICAgICA8L2Zvcm0+DQoNCiAgICAgICAgPC9kaXY+DQoNCiAgICAgICAgPGRpdiBpZD0iYm94LWZvb3RlciI+DQogICAgICAgICAgPGlucHV0IGlkPSJzdWJtaXQiIGNsYXNzPSIiIHR5cGU9ImJ1dHRvbiIgdmFsdWU9Int7LmJ1dHRvbi5sb2dpbn19IiBvbmNsaWNrPSJqYXZhc2NyaXB0OiBsb2dpbigpOyI+DQogICAgICAgIDwvZGl2Pg0KICAgICAgICANCiAgICAgIDwvZGl2Pg0KDQogICAgPC9ib2R5Pg0KICAgIA0KPC9odG1sPg==" + webUI["html/img/stream-limit.jpg"] = "/9j/4AAQSkZJRgABAQAAAQABAAD/4gJoSUNDX1BST0ZJTEUAAQEAAAJYbGNtcwQwAABtbnRyUkdCIFhZWiAH4wAFABcAFgAuAAphY3NwQVBQTAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA9tYAAQAAAADTLWxjbXMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAtkZXNjAAABCAAAAEBjcHJ0AAABSAAAAE53dHB0AAABmAAAABRjaGFkAAABrAAAACxyWFlaAAAB2AAAABRiWFlaAAAB7AAAABRnWFlaAAACAAAAABRyVFJDAAACFAAAACBnVFJDAAACFAAAACBiVFJDAAACFAAAACBjaHJtAAACNAAAACRtbHVjAAAAAAAAAAEAAAAMZW5VUwAAACQAAAAcAHMAUgBHAEIAIABJAEUAQwA2ADEAOQA2ADYALQAyAC4AMQAAbWx1YwAAAAAAAAABAAAADGVuVVMAAAAyAAAAHABOAG8AIABjAG8AcAB5AHIAaQBnAGgAdAAsACAAdQBzAGUAIABmAHIAZQBlAGwAeQAAAABYWVogAAAAAAAA9tYAAQAAAADTLXNmMzIAAAAAAAEMSgAABeP///MqAAAHmwAA/Yf///ui///9owAAA9gAAMCUWFlaIAAAAAAAAG+UAAA47gAAA5BYWVogAAAAAAAAJJ0AAA+DAAC2vlhZWiAAAAAAAABipQAAt5AAABjecGFyYQAAAAAAAwAAAAJmZgAA8qcAAA1ZAAAT0AAACltjaHJtAAAAAAADAAAAAKPXAABUewAATM0AAJmaAAAmZgAAD1z/2wBDAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQH/2wBDAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQH/wAARCAQ4B4ADASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD/AD/6KKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigD9PvBf/AARa/wCCrXxF8HeE/iD4G/YM/aL8UeCfHfhrQvGXg/xNpHgia50nxF4W8T6Xa634f13TLkTgXGn6vpN9aahZTgAS21xFIAN1dL/w4o/4LB/9I7/2m/8AwgZ//kiv9b3/AIJp/wDKOX9gH/syf9lX/wBUV4Dr7YoA/wAWr/hxR/wWD/6R3/tN/wDhAz//ACRR/wAOKP8AgsH/ANI7/wBpv/wgZ/8A5Ir/AGlaKAP8Wr/hxR/wWD/6R3/tN/8AhAz/APyRR/w4o/4LB/8ASO/9pv8A8IGf/wCSK/2laKAP8Wr/AIcUf8Fg/wDpHf8AtN/+EDP/APJFH/Dij/gsH/0jv/ab/wDCBn/+SK/2laKAP8Wr/hxR/wAFg/8ApHf+03/4QM//AMkUf8OKP+Cwf/SO/wDab/8ACBn/APkiv9pWigD/ABav+HFH/BYP/pHf+03/AOEDP/8AJFH/AA4o/wCCwf8A0jv/AGm//CBn/wDkiv8AaVooA/xav+HFH/BYP/pHf+03/wCEDP8A/JFH/Dij/gsH/wBI7/2m/wDwgZ//AJIr/aVooA/xav8AhxR/wWD/AOkd/wC03/4QM/8A8kUf8OKP+Cwf/SO/9pv/AMIGf/5Ir/aVooA/xav+HFH/AAWD/wCkd/7Tf/hAz/8AyRR/w4o/4LB/9I7/ANpv/wAIGf8A+SK/2laKAP8AFq/4cUf8Fg/+kd/7Tf8A4QM//wAkUf8ADij/AILB/wDSO/8Aab/8IGf/AOSK/wBpWigD/Fq/4cUf8Fg/+kd/7Tf/AIQM/wD8kUf8OKP+Cwf/AEjv/ab/APCBn/8Akiv9pWigD/Fq/wCHFH/BYP8A6R3/ALTf/hAz/wDyRR/w4o/4LB/9I7/2m/8AwgZ//kiv9pWigD/E88f/APBGT/gqj8K/AnjT4nfEX9hL9ofwf8P/AIdeFPEPjnxz4t1zwTNaaL4X8IeE9Ju9d8SeIdXujORbaZo2j2F5qN9OQRDa20shB24r8yq/28f+Ctf/ACit/wCClX/ZhH7Xv/rP/wAQK/xDqACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooA+j/ANmj9kL9pr9snxbrvgL9lr4K+Ovjn408M+HH8X6/4Y+H2ljWdZ0vwvFqen6NLr1zYrNHMNMh1XVtL0+a7RWihu9RsoZSj3MIf7U/4cUf8Fg/+kd/7Tf/AIQM/wD8kV2v/BAD9sj/AIYi/wCCrf7K/wATNW1X+yvh98QPFw+AHxWklm+z6f8A8IJ8aWg8HjU9Xl3Ls0rwd4wufCPxAuz82B4RQlJACjf7MFAH+LV/w4o/4LB/9I7/ANpv/wAIGf8A+SKP+HFH/BYP/pHf+03/AOEDP/8AJFf7StFAH+LV/wAOKP8AgsH/ANI7/wBpv/wgZ/8A5Io/4cUf8Fg/+kd/7Tf/AIQM/wD8kV/tK0UAf4tX/Dij/gsH/wBI7/2m/wDwgZ//AJIo/wCHFH/BYP8A6R3/ALTf/hAz/wDyRX+0rRQB/gx/HT4CfGb9mT4n+Ivgt+0B8NfFnwj+K3hJNHl8SeA/G2lzaP4i0iLxBomneI9Emu7KbJWLU9C1bTtTs5UZ45rW7idWySB5HX9yX/B69+yL/wAIr8eP2V/22/D2meXpfxb8Da18BfiPd2sOy3i8afDG9k8U+BdR1OXbiXVPFHg/xZrukWzB2P8AZnw0jjZIxEjS/wANtABRRRQAUUUUAFFFFABRRRQAUUUUAPRHldIokeSSR1SONFLu7uQqIiKCzOzEKqqCWJAAJNfq8n/BCv8A4LBSIki/8E7/ANp3a6q67vh/dI21gGG5HnV0bB5V1VlPDAEEVv8A/BBj9kX/AIbU/wCCrf7Ivwo1PTP7T8DeGPiFb/Gz4nRTQ+fpzeAvgpE3xDv9L1hQrEaZ4w1nRdD8BSkAFp/FdvH5kO/zo/8AZ4oA/wAWr/hxR/wWD/6R3/tN/wDhAz//ACRR/wAOKP8AgsH/ANI7/wBpv/wgZ/8A5Ir/AGlaKAP8Wr/hxR/wWD/6R3/tN/8AhAz/APyRR/w4o/4LB/8ASO/9pv8A8IGf/wCSK/2laKAP8Wr/AIcUf8Fg/wDpHf8AtN/+EDP/APJFH/Dij/gsH/0jv/ab/wDCBn/+SK/2laKAP8Kz9p39iX9rL9i7UfCOkftV/AT4ifAfVPHtlq+o+DtO+IejjRb3xDp+gz2Ntq97p1s00k0lrY3GpWUEs7IkbSz+XGztHKI/lqv6F/8Ag5+/bI/4a5/4K2/HDTNF1X+0fh7+y5aaZ+y74KEU261GofDq61K8+KVz5UbG3N0fi9r3jnSTexl5bzSdE0USybLeCGD+eigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigD/cg/4Jp/8o5f2Af+zJ/2Vf8A1RXgOvtivif/AIJp/wDKOX9gH/syf9lX/wBUV4Dr7YoAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigD8+P8AgrX/AMorf+ClX/ZhH7Xv/rP/AMQK/wAQ6v8Abx/4K1/8orf+ClX/AGYR+17/AOs//ECv8Q6gAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAHI7xOkkbtHJGyvHIjFHR0IZXRlIZWVgGVlIIIBBBFf7Z//BIH9sRP28f+Cbv7J37St5qS6n4x8VfC/TPDXxTmMqvc/wDC3PhxNcfD/wCJdxdQ5Mtp/bPi7w3qfiLT7e4zK2jazplyHnhuIrib/Eur/QW/4Mm/2yPteh/tZfsE+JNV3T6PeaT+1D8KNPml3yNp2pDRvht8YrW381t0NrYahB8JtRtLK33Rtda5r980cUjzyzgH98VFFFABRRRQAUUUUAfhR/wcifsif8Ngf8Eif2ndD0vTP7T8dfAvSbH9p74ehYvPuINW+DCXur+MUs4FUzXF/qvwjvfiRoFhb25E819q9skazn/R5v8AHer/AH6NW0rTdd0rU9D1mxtdU0fWdPvNK1bTL6FLmy1HTdRtpLS+sby3kDRz2t3azS29xDIrJLFI6OCrEV/hv/8ABQv9lrUv2J/23/2ov2V9Riuo4Pgv8Y/GHhbwzPe7/tWqeAJdQbWfhrr83mfPu8R/D7VPDOvjcWO3Uh88n32APjeiiigAooooAKKKKACiiigAooooA/0D/wDgyU/ZE+z6T+19+3Xr+mYl1G70D9lz4Y6lJFtdbSwTSfif8YfKaRd0lvd3Vz8HreC4g2xifS9VtneSRHSD++mvyl/4Ih/sif8ADEf/AAS3/ZB+B2o6X/ZXjV/hhYfE/wCKEEsPlahH8S/jDNN8SfFmmaq21WnvfCl14ki8EpKw+Ww8M2MCExQxmv1aoAKKKKACiiigAr5A/b+/ao0X9iP9iv8AaZ/as1xrRk+Cfwi8V+LdCsr5gtrrfjk2R0j4c+GZWLKF/wCEq8f6n4a8NodwxJqqdeh+v6/ib/4PTP2yP+EA/Za/Z5/Yk8N6r5WvftCfEG7+LPxGtLWb98nww+Dogh8OaVqtvuA+weKviT4g03W9Nk2uWvvhfdrujEZEoB/nB+IfEGteLPEGueKvEup3eteIvE2san4g1/WL+Uz32ra1rN7PqOq6nezNzNd399cz3VzKeZJpXc8mseiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigD/cg/4Jp/8AKOX9gH/syf8AZV/9UV4Dr7Yr4n/4Jp/8o5f2Af8Asyf9lX/1RXgOvtigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAPz4/4K1/8orf+ClX/AGYR+17/AOs//ECv8Q6v9vH/AIK1/wDKK3/gpV/2YR+17/6z/wDECv8AEOoAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAr9V/+CJP7ZH/DCn/BT39k348anqv9leA2+Itp8Mvi1NNN5Onp8LPi3FJ8P/F+qaou5RPaeEbfXYPHcMLMB/aXhXT5R80Sg/lRRQB/v8UV+TP/AAQ5/bI/4bo/4JdfsnfG7VNV/tXx9p/w+tfhN8WpZZvO1Fvid8IJG8A+JNV1f5m8u/8AGUWi6d8QFjDECx8W2TgRh/LT9ZqACiiigAooooAK/wA07/g9I/ZE/wCFcftj/AD9sXQNM8jQP2lfhZdfD7xtd28O5H+KPwOnsbO31HUp1A8q41z4a+KvBmkaXDN808HgPUnhZ1tplh/0sa/nd/4Oi/2RP+Gq/wDgkT8cNZ0fS/7R8dfsuapoP7T/AITMUO64TS/ACahpXxSVp0Bnjsbf4ReJvHOuz26hoLi+0HS2nQG3iuLcA/yKaKKKACiiigAooooAKKKKACv02/4I3fsi/wDDcf8AwUy/ZC/Z3vtM/tXwfr3xX0nxh8TrWSLfaS/Cr4XQ3PxJ+IlleyMGhto9d8L+FtQ8NWk04MbaprWn2yxzz3EUEv5k1/eL/wAGTH7In9reP/2uf259f0zdZ+D9A0H9mf4Z6hND5sEmveK7jTviL8VprV3Gy21LQ9E0b4YWSTwlp207xnqVsWhgnkS5AP8AQzooooAKKKKACiiigAr/AB3f+DkD9sj/AIbN/wCCtf7SWvaRqv8Aanw9+BGpWv7MPw1aOf7RaJovwcudR0zxfd2E6MYLnT9d+LV/8RfEWm3dsPJuNM1axZJJ1VbiX/Ux/wCCnv7XVn+wl+wF+1T+1TLdW1trXws+E2vXHgJbsRtBe/FTxOYPBnwo02aKQMJbe/8AiN4h8MW16qxysti9zN5UixMp/wAQK+vr3U7281LUru5v9R1C6uL6/vryaS5u729u5XuLq7uriZnlnubieR5p5pXaSWV2d2ZmJIBVooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooA/sa/Z9/4PGv2mv2ffgJ8EPgJo37HXwJ8QaP8EPhD8NfhDpOv6n43+IFtqWt6b8NfBmi+DLHV9Qt7QfZbe+1K10WK9u4bb/R4riaSOH92q169/xG8ftWf9GRfs9/+F98R/8ACv4h6KAP7eP+I3j9qz/oyL9nv/wvviP/AIUf8RvH7Vn/AEZF+z3/AOF98R/8K/iHooA/t4/4jeP2rP8AoyL9nv8A8L74j/4Uf8RvH7Vn/RkX7Pf/AIX3xH/wr+IeigD+3j/iN4/as/6Mi/Z7/wDC++I/+FH/ABG8ftWf9GRfs9/+F98R/wDCv4h6KAP9GT/gmX/wdhftE/t2/t3fs3/skeLv2T/gt4E8N/G/xpf+F9W8XeHPGPjnUNb0O3tPCviHxCt1p9lqY+wXEzzaNFbslz8gimkYfOq1/cpX+NT/AMG73/KaX9gD/srmtf8AqtPHVf7K1ABRRRQAUUUUAFFFFAH8KH/BRT/g7X/aN/Yq/bf/AGl/2U/C37JXwT8a+HvgV8T9X8BaR4r8QeM/HVhrWu2emwWkqX+o2enD7Db3MhuWDx237oBRjqa+Lv8AiN4/as/6Mi/Z7/8AC++I/wDhX8/P/Ben/lMX/wAFDP8As4zxT/6R6XX5G0Af28f8RvH7Vn/RkX7Pf/hffEf/AAo/4jeP2rP+jIv2e/8AwvviP/hX8Q9FAH9vH/Ebx+1Z/wBGRfs9/wDhffEf/Cj/AIjeP2rP+jIv2e//AAvviP8A4V/EPRQB/bx/xG8ftWf9GRfs9/8AhffEf/Cj/iN4/as/6Mi/Z7/8L74j/wCFfxD0UAf2DftPf8Hgv7S37T37Nn7QX7Nmv/sf/AzwxoX7QXwU+KXwU1nxLpHjbx9d6t4f0r4peCNc8D6hremWt6PsdzqGl2muS31nBdf6NNcQRxz/ALtmr+PmiigAooooAKKKKACiiigAoor6X/Zy/Yz/AGsv2vNdbw7+zD+zn8Y/jpqMM6W1/J8NvAHiLxLo+iO4Uq/iPxHY2L+HvDNth03XniDVNNtFMkYacGRAwB80UV/Tx8Bf+DRn/gsL8YPsVz488E/BT9mvS7ny5nn+Mvxh0fVdSS0bDmRND+Ctl8W72K8aP/V6fqx0iZZiIb1rE+Y8f6wfDn/gx18YXIt7j4t/8FEfDejMoRrvSfhz+zpqniYSk48yK38Q+Jvi54SMAXnZPJ4Yud2But0yQAD+Ceiv9Krw1/wZJ/sN2trAnjD9rz9q7Xb1QPtNx4as/hD4UtZTxkwWeqeBfGctuDzgSX10RkcnHPqdh/wZXf8ABLa3iK33x2/bx1Cdl2mT/hZ3wDtIkb+/FDF+zOzBh6TTTr0yvqAf5gVFf6b+qf8ABlF/wTWm3f2L+0l+3Hp5Odv9p+MvgLq4X6i1/Z80QsB9VPv3r5n+IH/Bjz8Hb/z2+Ff/AAUF+JfhP7zW0PxA+A3hb4hdOUjnuvDnxH+GX3uFaeO0+TO8W748sgH+dxRX9kPxx/4MsP8AgoJ4LW6vvgV+0L+zP8ctOt1Yxabr9145+D/jK/OCUW00q/8ADvjTwgrHGH+3/ECxVCybWkUuyfhV+1T/AMET/wDgqb+xnFfal8df2L/i/Y+FNOje4vPH/wAPtLsfjH8PbOyUFlvtW8Z/CW/8Z6F4dgkT5lTxNd6Ndof3U1tFMrRqAflnRSkEEggggkEEYII4IIPIIPUUlABRRRQAUUUUAFFFFAH96v8AwZN/tkf2d4q/aw/YK8SarttfEmnaT+098KbCefy4V1rQzo/w5+L9rbLI2241DVtHu/hXqNva2+2ZbHwrrl40c0UUslt/oR1/iRf8Ej/2w5f2Dv8Ago1+yf8AtNXOoyad4S8F/FLStE+J8qu3lP8ACP4gw3HgD4oPNBnyrt9P8FeJNZ1nToJx5a6xpmm3KtDNbxTxf7bUUsU8Uc0MiTQzIksUsTrJFLFIoeOSORCVdHUhkdSVZSCCQQaAH0UUUAFFFFABXN+M/CHh34g+D/FfgLxhpdvrfhLxv4b13wh4o0W7Ba11fw74l0u60bW9LuVBBa31DTL25tJgCCY5WAIrpKKAP8Jn9sX9nPxF+yJ+1X+0P+zF4q+0Sax8C/jB48+GpvrmPym1vTPDPiG+sNA8SxJtQfY/FGgR6Z4i09wiCWx1O3lCIH2j5tr+vz/g8o/ZF/4U7/wUL+G37U2h6Z9m8LftefCSzOu3scOyO4+LfwOTSvA3iYFowIl8z4c3/wAIpV34muLsanM2/az1/IHQAUUUUAFFFFABRRRQAV/sp/8ABvh+yL/wxn/wSW/ZO8A6npf9meOviT4OP7QvxLWSH7PfP4t+NzR+NLGy1aEgGLVfC/gW78G+CLyNxvjfwuEkO9Wr/Kd/4Jgfsm3H7cn/AAUC/ZO/ZaFnPe6J8VPjD4btvHaWwcz2/wALfDDzeNPixfRFMFZrD4beHPFN3blnjQ3EMStLGG3j/cBtra3sre3s7O3htLS0hitrW1too4Le2t4I1igt7eCJVihhhiVY4oo1WOONVRFCgCgCaiiigAooooAKKKKAP4Wv+D139sj/AIRr4P8A7Lf7CXhvVfL1T4n+KNT/AGiPijZW83l3EfgvwEl74O+Gmn38Qb/SNJ8UeMNZ8Y6uiMu1NU+GtlNu3RgV/nWV+y3/AAX9/bI/4bd/4Kt/tU/E3SdV/tX4feAfF5+AXwokhm+0af8A8IH8FjP4O/tTR5SzFtK8ZeL7Xxb8QbQnbn/hLnIjjBEa/jTQAUUUUAFFFFABRRRQAUUUUAFFdf4F+H3j34o+J9N8E/DPwR4v+IvjPWZfJ0jwj4F8Naz4u8T6rNkDytN0Hw/Zahqt9LllHl2tpK2SBjkV+4X7P/8AwbKf8Fm/2gItO1K3/ZMvvg74c1FIXHiD9oDxr4N+Fktks4DKNR8D6nrF38VLV0Qlpoz4BaSEqYpVSfERAPwOor+4D4Uf8GQ/7UGtWdnL8b/24fgR8OLyXa17Z/DD4bePvjFHaK2CViu/FGpfBEXUqAkOvkQRbxhJpEw5++PAn/BkL+y7p9uq/Ez9uP4+eLroKoebwJ8OPh58Ordn43Mtt4gvPijIqnnahu3K5GXbHIB/nD0V/p16V/wZTf8ABMm32nWf2h/26dTdcZWx8e/APSYXPcMkn7OeqTBT6JcK3+3VrU/+DKr/AIJf3IZtL+P37d2mSHOFm+I3wD1G2X0xG37NlrcH33XZz6igD/MKor/SG8cf8GRP7JeoQMvw1/bY/aK8J3JUhJfHHgj4afEKBX52s1voNv8ADGR1HGUFyhPOHXPHwP8AF/8A4Mg/2jtFs7ib4C/t0/BX4kXy72t7D4s/Cvxx8GYJABlI31Lwjr3x0ZZCcpv/ALNVCcMQgYhAD+HGiv3x/aP/AODZf/gsl+zfY6hrl3+ytd/Gvwxp3mebrv7OXizw98W7y4EYZt1j8P8ASrqz+LV4ropdWg+HzKOEkKSssbfhr4x8E+M/h34j1Lwf8QPCPifwL4t0aY22seFvGOg6r4Z8R6VcDrBqWia3aWOp2Mw7xXVrE4/u0AcxRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABWlo2r6l4f1fSte0a7ksNX0TUrHV9KvoQhlstS025ivLG7iEivGZLe5himQOjoWQBlZcg5tFOMnGSlFuMotSjKLalGUWpRlFpppxlGMk0000mmmk1FWnTrU6lGtThVo1qdSjWpVYRqUqtKtTnSq0qlOalCpTq0qtWnUhOMoTp1KkJRlGcov8A0IP+CXP7Sn7PP7fP7PGn+Kr34VfCLTfjV4AXT/DHxr8J2ngPwlCtt4ga3k/s/wAYaTZDS/Mi8L+OILW41LTF2mPTdTt9b8OrNdHRDeXX6V/8KU+DX/RJPhl/4QfhX/5VV/m+/sI/tl+Pv2GP2h/Cnxr8GG41LR42Gg/EjwWLk29n48+H+oXNu+t6BOxJih1GHyINW8OajIki6X4h0/TruWK5s1u7K6/0hvg98W/APx4+GHgj4w/C/XbfxJ4C+IOgWfiLw5q1vhWktLoMs1pe2+5nsdW0q8judK1rS7jbd6Vq1le6ddpHdWsqL/dvg/xvl/G2R/UswoYD/WTJqVKlmEZYTBKeYYXSlh82px+qrmdXlVHHqKtSxsXUtGnjKdv+Tz9o/wDRZ4t+i94qPiXg7NeKv+IKeJeOx2YcH1aXEHEtTD8IZ63PHZz4fYus8+qeyp4BVqmZcKVK9TnxvDNVYNTr4vhvFe0j/wCFKfBr/oknwy/8IPwr/wDKqj/hSnwa/wCiSfDL/wAIPwr/APKqvTaK/YfqWC/6AsH/AOEeE/8AmU/zg/1n4m/6KXiT/wASLiD/AOfx5l/wpT4Nf9Ek+GX/AIQfhX/5VUf8KU+DX/RJPhl/4QfhX/5VV6bRR9SwX/QFg/8Awjwn/wAyh/rPxN/0UvEn/iRcQf8Az+PMv+FKfBr/AKJJ8Mv/AAg/Cv8A8qqRvgl8GXVlb4R/DFlYFWVvAPhUqykYKsDpJBBBwQeCODXp1FH1HBf9AWC/8I8J/wDMg/8AWfidaribiRNapriPiFNNdV/wvH+fD/wWL/4J8z/sQftF3Gs+B9Jli/Z7+M9zqnif4XzwRu1l4S1JZkn8T/DKebB8pvDVxdxXfhwTEtd+Er/TIxcXuoaXrUkP5C1/pyftu/skeBv22f2dPHPwI8bCGzn1i2Gr+BvFLW4uLrwP8QdJhuG8MeKrNRiVo7aeebT9ZtYJIZNU8OalrOkCeEX5lT/Nh+Lvwo8dfAz4m+OPhB8S9En8PeO/h74i1Dwz4k0qbLLFfWEu1bmzn2ql7pepWzQalo+pQBrXVNKu7PUbR5LW6ikb+FvGfw+/1Oz95jl1Dk4ez6rWr4NQjall+Ou6uMyx2XLCmnN4rARdk8LUnQhf6mkv+rT9mZ9MFfSS8Io8F8Z5osR4x+E+By/KuI54qspY7jDhRRhgOHOOY88/a4rGTjh6eQ8V1YqpOOf4PC5nXcVxHKpPzmiiivxk/wBMAooooAK+hv2Vv2a/iF+1z8ePh/8AAT4aWu/X/G2rJBe6tNDJLpnhTw3Zj7V4k8X62YypTSvD2lR3F9MgdJr+dLbSrES6lf2dvN88gZ4HJPAA71/er/wRD/4J4f8ADIfwH/4XB8S9D+yftB/HjSdP1LWLe+twmpfD34cSmLUvDXgPbKv2ix1bUj9n8S+Nbci3lXVG0jQb62Nx4TjuJv0Pwz4Gr8d8S4fL5RqQyjBcmNzvFQvH2WChUSWGp1LWjiswqR+q4ez5oReJxNrYdN/xx9OL6VWU/RP8Ec24upVMHivEPib61wz4XZDiHCr9e4nxGEnKpneMwjmp1ci4QwdZZ7mzcVRxNenkuTOoqmc1Iw/SP4Jfscfs7fAf4T+A/hD4S+Fvgm/0PwH4es9Dt9V8QeE/Dura/rl1GGn1TxBrupXWmyS3ms69qk15q+pygpB9svZktYbe1SG3i9T/AOFKfBr/AKJJ8Mv/AAg/Cv8A8qq9Nor/AEHoZXlmGoUcNh8uwFKhh6VKhQpQweEUKdGjThSpU4p4aT5YU6cIq8pOyvKUpOUpf8eGa8d8b55mmZZ1m/GPFWYZtnGYY3Nczx+J4kz+WIxuY5li8Rjsdi68o53Sg6uJxeLxFafJSpU06nJTo0aVOlRo+Zf8KU+DX/RJPhl/4QfhX/5VUf8AClPg1/0ST4Zf+EH4V/8AlVXptFa/UsF/0BYP/wAI8J/8ynB/rPxN/wBFLxJ/4kXEH/z+PMv+FKfBr/oknwy/8IPwr/8AKqj/AIUp8Gv+iSfDL/wg/Cv/AMqq9Noo+pYL/oCwf/hHhP8A5lD/AFn4m/6KXiT/AMSLiD/5/HmX/ClPg1/0ST4Zf+EH4V/+VVfGf7ePxk/Zb/YW/Z58U/Gnxl8JvhVqeuBW0D4aeCT4L8KQXvjzx/f2076NocJXSvNg0y2EM2reJNSRXOmaBYX9xDHc35sbG8+9PGXjHwv8PfCfiTx3421zT/DPg/wfomp+JPE3iHVpxb6bo2h6PaS3+pajeTEErBa2kEsrhFeR9uyJHkZUb/Op/wCCnP7ffij9vv8AaF1Hxor6hpPwe8ENf+Gfgr4Nu2MZ0vwwblDd+JtWtEdoE8WeNZra31TXHQytZWsOj+HVury10C2upvyvxX41yzgTIZLC4XL58Q5rCrh8nw7weCn7Cy5K+aV6bwrvQwXOvYxmuXEY2VCj70KeIt/fH7Pz6MHG/wBLDxapPPs84vw3g7wBiMBm/iPm9PiLibDrNXKosRlXAeV4yOextmvEzw03mNbD1HXyfhilmmZ3o4rGZM5fDPxK+IXiX4sePvF/xK8YT2c/ibxtr+o+IdYbTrC10nTIbrUJ2m+x6VpNjHDZaVpNhEY7HStMs4o7XT9Pt7azt0WGFFHEUUV/A9WrUrVKlatOVSrWqTq1ak3zTqVKk5VKk5ye8pznOUnZXcm7LRL/AK48DgsHlmCweW5fhqGCy/LsJhcBgMFhqapYbB4LBYehhMHhcPSi2qdDDYXDYehRgnLlp0YLmk1KcyiiioOoKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigD9ov8Ag3e/5TS/sAf9lc1r/wBVp46r/ZWr/Gp/4N3v+U0v7AH/AGVzWv8A1Wnjqv8AZWoAKKKKACiiigAooooA/wAXn/gvT/ymL/4KGf8AZxnin/0j0uvyNr9cv+C9P/KYv/goZ/2cZ4p/9I9Lr8jaACiiigAooooAKKKKACiiigAooooAKKK9k/Z//Z7+NP7U/wAXPBnwH/Z7+HPiT4q/Fr4gakNL8K+DPC9otxqF9Ksb3F3eXdxcSW+naNomk2UU+pa74h1q80/QtB0q2utV1nUbHT7W4uYwDxuv37/4Jjf8G43/AAUF/wCClFro/wAQ7Xwzbfs1/s4amsF3b/HT416Xq+nx+K9MmKH7V8Kfh9DHb+KPiIkkTmaz1st4c8A3nlXFsnjlL+E2h/sd/wCCMv8Away/s/fsW2Xhv49ftyad4M/aa/amMVpquk+B76wj8QfAb4I337ueCPR9F1i1W3+JnjrTpBvl8ZeJtOGg6PfCI+D/AA5Bf6Xb+MNU/reVVRVRFVERQqIoCqqqMKqqMBVUAAAAAAYHFAH82v7Bv/BrJ/wS9/Y4t9K8RfErwDcftn/Fu1jhku/GH7RNjpur+ALa9UL5/wDwjXwNtVk8AW+myukc0MPjqP4j61ZSq/2XxEkUrxV/Rd4X8K+F/BGgaZ4V8F+G9B8IeF9Etls9G8N+F9H07QNA0izQkpaaZo+lW9pp1hbISSsFrbxRKSSFGTW9RQAUUUUAFFFFABRRRQAUUUUAfk7+3Z/wRG/4Jr/8FEINU1H4+/s5+GtM+Jmoxy7Pjn8JVg+GHxjt7uRSqahqHirw9arZeNprZWcWln8StF8baPbl2ePTBJtdf4Pf+Cof/Bph+2N+yJH4g+Kn7G17qv7Z/wABrBbnUbnw3o2jxWf7R/gnTYg0jrqfgDTd9n8T7W1QxxDVvhoJfEN9J591P8ONE063e6P+pJRQB/gHXNtc2VzcWd5bz2l5aTy211a3MUkFzbXMEjRT29xBKqSwzwyo0csUirJHIrI6hgQIK/1hP+C23/Btz+z3/wAFItF8Y/Hr9nzT/D3wG/bhWyu9Vj8UWFumk/Dj48apBGZk0f4x6RYWzpa+JNSKm0svito9sPEFtLPGfF1r4w0yz0620r/LP+N3wQ+LP7N/xW8cfA/45+AvEPwy+K/w41y48O+M/BXiizNnq2j6lbhJEOVaW1v9O1C0lt9S0XWtMuLzRtd0e7sdZ0a/vtLvrS7mAPK6KKKACiiigAr/AGUv+DfH9sj/AIba/wCCT/7LfxC1bVf7U+IPwy8MN+zv8VZJJvtF8PGnwWjtfC1nqOrTlmaXVvFvgJfBPjy/dtrNN4rJKjv/AI1tf3Kf8GU37ZH/AAifxy/ae/YX8S6r5WkfF3whpvx9+GFndTbLePx58N5Lfwx8QdL02Hd++1XxX4I13w/rVwCh26X8Lp3EibCkoB/oyUUUUAFFFFABRRRQB/Ml/wAHZX7In/DSf/BJ7xp8TdE0v7d46/ZE8eeF/jvpMlvCZNRm8ETSS+AvijpqSYIj0u18M+K08eauCU3J8P7Zw5aIRS/5Olf72/xb+GPhP42fCr4mfBrx7Y/2p4G+LXgDxj8NPGWm/J/p/hXx14d1Hwv4gswZEkQNc6Tql3CrMjqrOCVbGK/wrP2ifgl4s/Zr+Pnxp/Z68dxGLxl8Efin48+FXiUiJ4YrjV/AfibUvDV3fWquW3WGoyacb/T5leSK4sbm3uIZZYZUkYA8booooAKKKKACiiigD+3r/gyn/ZF/4TP9pL9p39tTxDpfm6P8Efh3pPwW+Ht3dQ5gfx/8XL0614q1TSpgPl1Lwv4F8IJot8C6hdO+JiARymXfB/o/V+CH/BtH+yL/AMMjf8Eh/wBm+01XS/7N8dftDW+p/tR+Ow0XlTT3HxejsLnwD56Momimtfg5pHw2srqCc+ZDf294NkW4xr+99ABRRRQAUUUUAFfmr/wWB/bFX9g7/gm5+1j+0pZakumeMvC/ww1Pwx8K5hKEuf8AhbnxImt/h/8ADW5tYciW7/sXxZ4k03xJqFvb4lGjaLqdyZIIbeW4i/Sqv4Gv+D2X9sj7Lo37Jv7BPhvVcTardat+1F8V9Phm2OLDTxrPw2+DttP5Tbpba9vp/i1qN3ZXO2NbnRtAvljlkSCWAA/z7nd5HeSR2kkkZnd3Ys7uxLM7sxLMzMSWYkkkkk5ptFFABRRRQAUUUUAFFKASQACSSAABkkngAAckk9BX9qf/AARP/wCDUj4g/tFxeDv2nf8AgpLYeI/hL8CL5NP8ReC/2b7ee68P/F74s6bKsd5ZXvxFvIjFqfwm8C6lGYgdGhNt8TtespLrZ/wgEX9la5qgB/Mx+wp/wTW/bO/4KQfEP/hXv7JnwX8Q+PhY3dtB4u8fXif8I/8ACr4eQXOHF546+IeqLF4f0Vxa+beWuhxXF74q1uC3nTw54f1m7QWzf3b/ALAn/Bmf+zB8Kf7F8b/t+/FnWv2m/GcH2e7ufhH8M59a+GnwPsbldrTafqviSGWz+Knj+3jlRZLfULK9+FcEsbyW2oeHryP5m/sH+D3wX+En7Pnw88OfCX4G/DbwX8Jvhn4StFsvDvgfwB4d0zwx4c0uLgyyQ6bpVvbQSXt5KDc6lqVws2oapeyTX2o3V1eTzTv6bQB4L8A/2Wf2a/2V/DC+DP2bfgN8JPgZ4aMUMVzpfwt8A+GvBaambcYS51u50PTrO917UGOZJ9T1q5v9QuZmee5upZnd296oooAKKKKACiiigAooooAK+Y/2n/2L/wBlH9tLwXJ4A/ap+AHwx+OPhowzQ2KeOfDNnfa54fM4YS3fhDxdbra+LfBeplXdRq3hLXNF1RFklVLtVkcN9OUUAfwRf8FJf+DM3w5daZrfxK/4Jh/E/UdL1yAXWoP+zT8dvECX+iamgDSppfw1+MD2kWpaLcosa2um6P8AE+LXbbULq487VfiVodtD8/8ACh+0H+zh8eP2Ufijr3wW/aP+FHjX4NfFHw0ynVfB3jrRbjSNR+yTPKlpq+mTOHsNe8Pal5Msuj+JNCu9S0DWbdPtWlaleWxWU/7xlfnp/wAFFv8Agl/+yJ/wVA+EEvwp/af+H8WpajpcF8/w6+LPhr7Jo/xZ+FGr3qKJNU8EeLHtLt4rS4ljt5NY8Lazbat4Q8Qm2tG1vQr2ey0+e0AP8RKiv1d/4K0/8Eif2kP+CSvx5l+G/wAWLOXxh8JPF11qV58Dfj7oul3Fr4O+KHh20kVmtbiMyXaeF/iDoVvNbR+MPAt7e3F3pU8sWoaXea54Y1HRvEGpflFQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABX9Bv/BCz/gpP/wAM1fE+P9l/4w6/9n+BPxh16EeE9Z1S522Hwv8AijqRhs7S6e4lby7Dwl44dbbSdf34stJ1tdI8QO+n2T+Jru5/nyor6DhfiTMuEs8wGfZXU5cTgqt50pOSo4vC1LRxWCxCi7yoYqjzU5aOVOfsq9O1WhTb/IfHfwU4K+kL4V8WeE/HmE9vknE2BcMNj6NOlPMeHc9wqqV8i4nyapVi1RzXI8ydHGUHzQp4vDvMMrxbngc1xcI/6zFFfgF/wQz/AOCk3/DUHwrT9mv4v6/9o+Pvwa0GBdB1bU7nfqHxS+F+n+RY2OrvPKxkv/Ffg0SWmi+JzJuu9T019G8RyS397ceIp7P9/a/0a4Y4jy3izI8Bn2VVOfC42kpSpycXWwmJhaOKwWIjFtRxGFrc1KaslOPsq1O9KvTZ/wAXHjp4Lca/R88UuLPCfj3B/V894Yx8qVHG0qdaOXcQZLiXUr5HxNk1StGLr5TnuW+xxuFlzTqYar9ey3FuGPyrGUwooor3j8kCiiigAr+a3/g4A/4J4/8AC2vh4P2z/hRoXm/Ej4T6Kll8YtL022zc+MPhXYB3g8WNFCpa61r4cB5JL+d0M1x4Hlu3uboW/hHTLR/6Uqr3dpa39rc2N9bW95ZXlvNaXlndwx3Frd2txG0NxbXNvMrxT288TvFNDKjRyxsyOrKxB+b4u4Yy/jDIMwyHMYpUsXSvh8QoqVTBY2kpTweNo3s/aYetZyipRVWhPEUJPlre7+2fR48dOLvo4eL3CHi3wbVlPHcO45U83yidepQwXE/C+PlRw/EXDGZOHMnhM3y1VIUa0qdWWX5phsozWjD2+XWrf5N9FfrV/wAFf/8Agn3dfsNftHXV14O0y4X9n/4wz6p4q+E14qySWvhudZ45fEvw0ubh8kXPhC6vIH0UzPLLeeE9Q0SWS6utSt9X+z/krX+cOe5LmHDub5hkmaUXRx2XYmeHrR15JqLvSr0ZNL2mHxNGVLEYeoladKrF6SjUjD/tT8KvE7hHxm8OuEPFDgTMY5nwtxnk2FzjLazdNYnDSqx9njsqzKjTqVFhM3yXMaWOyjNsHKXNhswy+vFc9GrhK2IKKK+g/wBln9m34hftbfHf4f8AwE+Gdr5niHxxq6W91qs0MsumeFfDtopu/Efi7W2iwY9J8O6TFc6hcKHWa9ljt9LsRNqV/Z283DhMJicfisNgsHRqYnF4yvRw2Gw9KLnVrV69SFKlShFbynOcUr2SXNKUowhOUfquIM/yXhTIc64o4kzPB5Lw9w7lWYZ5nmb5hWjh8DlmU5Vg6+PzDHYqtLSFHDYXDVakrKdScvZUaNKtiMRh6Ff9c/8AghN/wTw/4ab+NJ/aO+KOhfavgX8B9cs59JsdRtvM034ifFu1W31PRdCaKVfJvdD8GRS2XijxNE5eG5vJfDOi3Nte6dq2rR2/90VeJ/s6fAL4e/sv/BX4f/Ar4X6b/Z/g/wCH2hQaTaSSLH/aGs6g7Pd634l1mWJES41zxJrE97rWrzoiRNfXsy20UFqkEEXtlf6JeG/BGG4E4aw2WJU6mZ4nlxmdYuCT+sZhUpxTpQnZSeFwMH9Uwq0TjCtX5VPEu3/Gf9Nb6UmdfSv8bc645qSxmD4HyT2/DXhjw9iZSh/ZHCOExdWdPH4rDKpKlTz3ijFQfEOfTXNOnWxWXZUq08PkcFMooor74/kYKKKKACiivxP/AOCz/wDwUmh/Ys+DP/Cr/hhrUcf7Snxl0i9tvC8lpMjXnw08FTNNp2r/ABJuUUl7fVJJVudH8BrKI0n12O/1pTcweFrywu/F4hz/AC3hjJsfnma1vY4LAUXUmk4+1r1XeOHwuHjJr2mJxVZwoUKa3lNzly0qVWcP03wc8I+NfHXxK4T8K/D/AC55jxNxbmVPBYdzVVYHK8DT5a+bZ/nFelTqPB5JkOWxxOZ5pipK8KFCnh6Cq43H5fh8R+RX/BfH/gpZ/wALI8Tah+xD8FNf3+APBOrxP8ePEelXWYPGHjrSLlZrX4d288DbJ9A8DX8SXXiNWd0v/GtvBYtDB/wiXm6l/MZUs001zNLcXEstxcXEsk0880jyzTTSuXllllcs8ksjszySOzO7sWYkkmoq/wA5+L+Ksy4yz7G57mcrVMRPkw2GjKUqOAwNJyWFwVC9vco03ec+WMq+IqV8RNc9VKH/AGhfR08A+Cvo1eEvDHhRwRQUsJk2H+tZ5ndWhSo5lxZxTjadCefcT5q6fM3isyxdNxwuGdWrSyvKMLlOT4WXsMBOeKKKKK+ZP3EKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooA/aL/g3e/5TS/sAf8AZXNa/wDVaeOq/wBlav8AGp/4N3v+U0v7AH/ZXNa/9Vp46r/ZWoAKKKKACiiigAooooA/xef+C9P/ACmL/wCChn/Zxnin/wBI9Lr8ja/XL/gvT/ymL/4KGf8AZxnin/0j0uvyNoAKKKKACiiigAooooAKKKKACiir2l6Xqeuanp2i6Lp19q+savfWml6TpOmWk9/qWp6nqFxHaWGnafY2sct1e317dSxW1paW0Uk9xcSxwwxvI6qQD3H9lz9mH41ftlfHn4cfs2/s9+Db3x18Vvihr0Oh+HdGtcxWlpGFe51XxD4g1Eo9vofhXw1pcN3rniXXr3bZaPo1jeX1wxWIK3+ut/wRr/4Iq/s9f8Ejfg3/AGf4bjsPiT+01490iyj+N37QeoaYsGqa5IrQ3j+B/ANvcebc+EfhfpN/HHLaaPFKNR8TX9rbeIPFlxeXlvo9joXzv/wbyf8ABFbwp/wS5/Zt0/4kfFLw7YX37bnx48M6bqPxj8Q3K219dfC3w1fNBq+lfAnwreIJIrKz0J0sbv4iXunTSp4q8dWrl7/U/D/hrwh9i/oroAKKKKACiiigAooqveXlpp9pc39/dW9jY2UEt1eXl5PFbWlpbQI0s9zc3EzJDBBDErSSzSukcaKzuwUE0AWKK/PXx/8A8Fav+CXvwuvr/SfHP/BQf9jnRdZ0qaS21TQY/wBof4Xav4g025iOJLW/0DQ/EupaxZ3SHhra4sY5h/zz5FeaeHP+C4//AASD8VXLWumf8FFP2V7WVZTCW8R/FDRvB1sXVtpK3ni5tDtHiz0nSdoWX5lkK80AfqrRXknwh+P3wI/aD0B/FXwE+NXwl+N3hiNlSTxH8IviP4P+JOhRu+4Ikmr+DdZ1mwR2KOAjXAYlGAGVOPW6ACiiigAooooAK/nF/wCDhb/gh/4Z/wCCpvwHf4ofB3R9F0P9uD4JaDe3Hww19haaWnxg8KWvnahffBHxnq0nkw4vpmuL34ca7q0wtfCviy4ls7i70vw54o8S3sX9HVFAH+A94g8P654T17W/C3ifR9S8PeJfDWr6l4f8Q6BrNlcabrGh65o17Np2raPqunXccV1Yalpl/bXFlfWVzFHcWt1BLBNGkkbKMiv7f/8Ag7+/4JO6b8HviToP/BTb4JaAlj4I+OXia08D/tMaDpdmI7LQPjLcafcT+F/iikNqnlWtj8UNL0q80vxdcPFbW6ePdIstWurq/wBc+Iswj/iAoAKKKKACvuT/AIJpftbah+wr+3n+yz+1ZaXF1Dpnwk+Lfh7UvG0Vl5hutR+GGvNN4S+K2j26x5Z7jWfhvr/ijTLYFJVW5uoZDDLs8tvhuigD/fr03UtP1nTrDV9JvbXUtK1WytdS0zUbGeO6sr/T76CO6s72zuYWeG4tbq2ljnt54naOWKRJEZlYE3a/Bn/g2v8A2yP+GyP+CSX7Ompaxqv9p/EL9ny0vf2XfiKZJvOuk1D4Q22m2fga6upXJuLi61b4Q6p8OtVv724HmXWrXepFpZ3R5n/eagAooooAKKKKACv8rj/g77/ZF/4UF/wU/tvj1oel/Y/Bf7Yvwt8P/EJrmGEQWH/C0Ph3Ba/DX4iadbIoEbXL6RpXw/8AGGqzL81xqXja4uJgZpZJJP8AVHr+Uf8A4O//ANkT/hff/BMSx+P+h6Z9s8Z/sc/FTQPHstzDF596Phb8SprP4bfEPT7aNVMogXXdS+HPizU5kJW20zwZd3E6eTE8sIB/lf0UUUAFFFFABX1r+wZ+zDq/7aH7Z37Mv7LGjLdB/jd8Y/BXgnWryyDNcaL4Nu9Whu/HviRQqs2zwv4Is/EHiKbarMINLkIBIAr5Kr+y/wD4MwP2RP8AhZ/7b/xv/a917TPP8O/st/CdfCfhC9mi2iH4r/HZ9S0KC9sJ3UrM+mfDDw78SNM1OGD95br4u0qSeSKO5ijugD/S00HQtH8L6Ho3hrw9p1ro+geHdK07QtD0mxiENlpej6TZw2GmadZwr8sVrZWVvBbW8Q4jhiRBwK1aKKACiiigAooooAK/xXP+C2n7ZH/Ddn/BTz9rL49aZqv9q+A/+Fi3nw0+Es8U3nae/wAK/hLFH8P/AAfqelruZYLXxba6FN46nhViP7T8U6hKTulav9Tv/guT+2R/wwv/AMEuf2sfjbpeq/2V4+1L4f3Pwk+EssU3k6ivxO+MEi+AfDuq6R8y+Zf+DYNZ1L4gGMsAbHwjeuVkCeU/+LfQAUUUUAFFFFABSgEkAAkk4AHJJPQAdyaSv7av+DUz/giFo/7RHiWz/wCClH7Vfg3+1fgz8NvFDW37MHgDxBZB9G+KPxN8MXzx6r8UtbsbqMx6t4I+GWs2y6b4ZtNk2n+IfiLZ6jJeyLa+BLrTNdAPvf8A4Nxv+DbjQ/hfo/w6/wCCgX/BQDwUmrfFvU4dN8afs9/s4+LNMVtN+FFnL5d94d+J3xU0W+Rl1D4n3MX2fVvCHgzUbf7J8N4pLTWdetrj4hNaWPw//uXoooAKKKKACiiigAoor5T+NX7dn7E37N2qNoX7QX7Xn7M3wU8QrGZR4b+KXxz+GfgbxLKihSzW/hzxH4l07W7nAdSRb2EpwynGCKAPqyivydf/AILrf8EfI9WGit/wUQ/ZjN4c/vk8f28uk8Nt51+O3fQhz0zqQyvzDKgmvq34K/t8/sOftIavH4e+AH7Yf7Mfxn8Syqrr4W+Gfxz+GnjLxWFfOxpPDGheJb3X4Q+1tvnacm4qwGSpwAfWtFFFABRRRQAUUUUAfKX7a/7GPwI/b9/Zw+If7MH7RPhaLxJ8P/H2mskF9AltH4l8D+KbSOVvDnxA8DarcW9ydD8Y+Fb6X7bpV+sUtvcxNeaNrFpqfh/VdX0q+/xsf+Cl3/BO742/8Ewv2rvHH7L/AMardb99KC+JPhr8QrG0ltPD3xY+F2rXl7B4X8faDHLJObUXv2C80zX9Ga5upvDfinS9b0Ca6vP7OS+uv9vuv59v+Di//gk/pf8AwU0/Yh17WfAehRz/ALVf7M+m+JPib8BtQs7QS6v4wtLfTlvPHXwVkKI0t1B8R9L0q2PhuAmP7L8QdG8JytdWmlXGupeAH+QhRTmVkZkdWV1YqysCrKynDKynBDAgggjIPBptABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAeofBb4xfED9n74qeB/jL8LNdm8O+PPh9r1rr/h/U4tzRGaDdFdadqNuHjW/0bWbCW60jXNLmb7PqmkX17p9yGguZAf8ASJ/Yb/bE+H/7cX7PXhH43+BnhsL+7j/sT4g+DjcrcX3gP4gadb27a/4au2+WSW1DTw6noGoSRxHVvDuoaXqLw209xPaW/wDmTV+nH/BK/wD4KCa9+wP+0NZa/qtxqGofA34iyab4Z+NPhi1824YaMlxINL8caRZKSJfEvgea7ub60iVDJqujXOuaArQS6rBe2f7F4O+IsuCs8+o5jWl/q3nVWlSx6k24Zdi3alh81px15Y0+aNDMFFXqYNqq1Kpg43/zb/aRfQyo/Sf8LXxXwZl1J+NnhngMdj+E50adOnieMuH4qpj848P8VVtB1q+KdKrmnCM61TlwnElOWAjOjhOJa/s/9GCisXw34j0Hxh4e0LxZ4W1fT/EHhnxNpGm6/wCHtd0m5ivdL1nRNYs4dQ0vVNOvIWaG6sr+yuILq1uImZJYZUdSQwrar+9YyjOMZwlGcJxjOE4SUoThOMZwnGUXKMoyjKMoyjKUZRlGUZOMk3/yUV6FbDVq2GxNGrh8Thq1bD4jD4ilUoV8PiMPVq0K9CvQrU6VajXoV6FahWo1qVKrRrUatKrTp1aVSnAooopmQUUUUAfH/wC3T+yB4I/bf/Zx8bfAzxf9msNS1CEa58PfFssHnz+B/iJpMFz/AMI34kgCqZmtA9xcaTr9rAUl1Hw1qmsadFLBNdR3EP8AmzfFT4YeN/gt8R/Gvwn+JGh3Phzx18P/ABFqXhjxNo9yMta6lpk7QyPBMB5d5p95GI73S9Rty9pqem3NrqFnLLa3MMr/AOqzX8zf/BwL/wAE8f8AhZvgX/htn4T6H5vj74ZaPBp3xu0vTrfNx4q+GenrssPG5hgXfc6v8PFbyNZuGSSWfwNJ9pubmCy8F20Ev8++O/h9/b+U/wCteVUObOMjw8lj6dKF6mYZNT5qlR2iuapiMrvUxFLSUp4KWLoq/sacV/sJ+yc+mF/xCTxC/wCJf+Pc19j4beKeb0nwljcdiOXCcH+JeM9jhMJT9pWqKlhMm47UMJk+O96lQw/E1Lh3MZ8rzLGVZfxl1/eh/wAEQf8Agnh/wyL8Cf8AhcvxM0P7H+0F8eNI0/UdUtr+38vUvh58NpTDqfhvwLsmUXFhq+qt9m8TeNbci3lXUjo2g31sLnwos8/4Qf8ABCn/AIJ4f8NP/Gs/tFfFHQ/tXwK+A+uWdxptjqNt5mm/ET4s2qwanonh9o5V8m90PwfHLZeKPFELl4bm5l8NaJc215p+saolv/dPXzH0f/D7lj/r3m1D3pKrh+G6NWG0XzUcXnHLJbz/AHmDwE7fCsbiYP3qUj90/a+/TD9tU/4lP8PM1/dUZYDNvGrM8BX0qV17DMeH/Dn21GprGhfB8S8W0Odp15cNZJiYfucdQRRRRX9Un+A4UUUUAFFFZutazpHhzR9W8Q6/qdjouhaFpt9rOtazql1DY6ZpOk6Zay3uo6nqN7cvHb2djY2cE11d3U8iQ29vFJLK6ojMFKUYxlKUlGMYuUpSajGMYpylKUpNRjGMYylKUmoxjGUm0k2rpUqterSoUadStWrVKdGjRo051a1atWqU6NGjRpUoVKtWrVq1aVKlSpU6lSrVq06dOnUqVKdOfzp+2F+1Z8N/2MfgH40+PHxLuQ+n+HrYWXhvw5DcxW+reOfGmoRTjw54N0TzFkJvtWuYXkurlYJ00jRrTVdeu4jYaVdsv+bh+0X+0B8SP2ovjN46+OfxX1c6t4y8d6xJqN0sZlXTdF06JVttF8NaFbSyStZaB4d0uK10nSbUySSpaWqSXU1zeS3FzN93/wDBWj/gonq/7efx7mXwteX1l+z38LLnUtC+EWgyia2GuF5Fg1n4lazZyBJBrHi17aJtMtrmKOXQvDMGl6Y1vDqcmuXF/wDlJX8IeMniPLjPOf7Lyuu3w1ktapDCuEmoZpjo81Kvmc1pz0UlPD5cpJqOH9piUlPGRcf+sj9mp9Cyl9Gfw1/1846yynHxt8TMtweJz2GIpQlieBOFavscflfAuHm1N4fMqkp4fNuM6lGcZVc5eDyOU6mF4bqRrFFFFfi5/pqFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFAH7Rf8G73/KaX9gD/ALK5rX/qtPHVf7K1f41P/Bu9/wAppf2AP+yua1/6rTx1X+ytQAUUUUAFFFFABRRRQB/i8/8ABen/AJTF/wDBQz/s4zxT/wCkel1+Rtfrl/wXp/5TF/8ABQz/ALOM8U/+kel1+RtABRRRQAUUUUAFFFFABRRRQAV/aj/waDf8EqdO+Pnxt8T/APBRn41+FU1P4Y/s269F4W/Z907WLXzNN8TftBm1tdT1HxvHbzo8N9bfBzQL3T7jSZJIjFH488U6FrOm3cereBriOP8Ajt+FHwx8afGz4ofDn4OfDjR5vEPxB+K3jnwp8OfBGhW+fO1fxZ401yx8O+H9OQhW2fa9V1G1haUqViV2kf5EJr/cI/YY/ZH+Hv7CX7JPwI/ZP+GVtbJ4b+DXgLSvDl3qkFuLaXxZ4umD6r478c6hHyRqnjjxnf674q1Bc7IbnVntrdIrWGCGMA+saKKKACiiigAoor+Z3/g5e/4LG6p/wTN/Zg0j4Q/A3VvsX7XH7UumeJdF8Ba7azx/avg58OtNS207xj8WxEjNcReJmm1OLw58MfNSG3/4SNtX8TrPdDwNc6PqYB5J/wAFuf8Ag52+Ef8AwTw1rWf2bf2StL8GftFftcabJc6f43vNVv7u++DnwGvY0dG0zxlP4evrG+8a/EOC42RXXw/0LW9Ij8OEXH/CXeINN1W0TwxqH+dT+2L/AMFKP25P29/FeqeKf2qP2kPiT8S4NQuRPa+BpNcn0D4VeHoo5DJbWnhj4W+HTpfgTQ4rYbF+02ehLqd60SXWq39/fGS6f4hurq5vrm4vb24nvLy8nmuru7uppLi5urm4kaWe4uJ5WeWeeeV3lmmldpJJGZ3ZmYkwUAFFFFAHYeBPiF4++F3iXT/Gnwy8ceMPh14x0mQS6V4s8C+Jda8I+JdMlDK4k0/XdAvdP1SzcOiOHt7qNgyK2cqCP7Nv+CPf/B2z8cvhb4y8E/Ab/gpvrX/C4PgbqMlt4dtv2mItGdvjP8MnlMVrpur/ABEh0SNbf4reDbHaia9qKaKvxPtrea88QS6v46vreLQLz+JmigD/AH1PB3jHwn8QvCfhvx34D8S6H4y8FeMdD0vxN4T8WeGNUstb8O+JPDut2cOoaRrmh6xp01xYanpWp2NxBd2N9Zzy29zbyxyxSMjAnpK/gf8A+DOX/gqX4i8Rx+Mf+CWvxf1ttRtfCvh3xF8Xv2WdX1O9Zrux0e31S2uvih8HbYSljdWltcazN8TPCVrGBJp9qvxGSeZ7CHRbSx/vgoAKKKKACiiigD5h/bQ/ZU+HP7b/AOyv8cv2UvirbrJ4L+NngHVvCNzfi3jurvw1rbCPUfCHjXSoZWWJ9b8DeLrDQ/F+iCU+T/a2i2YnV4TIjf4d3xk+FHjT4D/Fz4n/AAR+I+mNo3xA+EPxA8YfDPxrpTbz9g8U+B9f1Dw3rttGzpG0sMepabci3n2Ks8HlzINki1/vX1/lef8AB39+yLYfAD/gp3p3x08MaV/Z/hP9sL4TaH8RtRkhhWCwb4r+A52+HfxCt7OJFEfm3Wh6X8PfFurTA+Zd634v1G7nXzZ2llAP5SqKKKACiiigD+1T/gy3/bI/4V1+1r8fv2KfEmq+T4f/AGkPh1b/ABM+HtnczZjHxT+CwvJtY0zS7csAl34l+GWv+I9a1WZQxktfhrpyNgRKa/0pK/wuv2EP2ote/Yq/bJ/Zr/aq8PG6kufgh8XfCHjXVbCyfy7jXvB9tqMdl498LB98ZWLxb4IvfEPhm4IkQ/Z9Wlw6n5h/uU+F/E2g+NPDXh3xj4V1S01zwx4s0PSfE3hzW7CTzbHWNB16wt9U0fVLKXA8y01DT7q3u7eTA3wzI2BnFAG5RRRQAUUUUAFeMftG/BDwn+0v+z/8a/2ePHUYfwf8cPhX48+FXiJ/JSeW10vx34Z1Lw3cajaI5ULqGmDURqOnTK8cttf2ttcQSxTRRyL7PRQB/gjfFf4aeLPgv8UviT8HfHtg2leOfhR4+8YfDbxlpjb86d4q8DeIdR8MeIbE70jc/ZdW0u7gyyIxCZKqTiuAr+mf/g7F/ZE/4Zq/4Kx+OfiToml/YfAv7XXgbwv8e9He2h2afD40Mc3gT4paesuB5mq3nizwo/jzVlJcofH1o4YLMscf8zFABRRRQAV/rff8Gr/7In/DLf8AwSO+EPirWdL/ALP8dftW+IfEX7S3iVpodt3/AMI/4rFl4b+FcCXDASy6ZefC7wr4V8WWUHywW934s1N4VZrmaef/ACw/2T/2ffE37V/7TfwC/Zo8HCVPEXx0+LngL4X2N3FF5w0mPxf4j0/R9Q1+5TBAsPDumXN5rupSv+7g0/TrmeQiONjX+6T4B8D+GPhj4E8FfDXwTpkOieDfh74S8OeB/CWjW/8AqNI8MeE9Hs9B0HTIOB+5sNK0+0tY+B8kS8UAdbRRRQAUUUUAFFFRyyxQRSzzyxwwQxvLNNK6xxRRRqXkllkchI440BZ3YhVUFmIAJoA/z3v+D2P9sj+0vFv7J/7BXhvVd1p4Z0zVv2nvitp8E/mQvreutq/w6+EFrcrG2231DSNGs/inqVxa3G6Z7DxZol4qQxSxSXP8Flfoz/wVt/bCl/bx/wCCjH7WH7TlvqEmo+E/G/xT1bRvhjIzt5afCPwBFb+Afhc0UGfLtJL/AMEeG9F1fUYIAI21jUtSuWaWa4lnl/OagAooooAKKKKAP0e/4JO/8E+/GH/BTT9uf4NfsseHhqVh4U1vVT4t+M/i7Togz+BPgp4Tntb3x94jEzxTW9tqd1aS2vhXwo13G1nc+NvEvhmwudsN27r/ALTfwq+Fvw/+CHw08B/B74UeFtL8EfDX4ZeFND8EeBvCWiwmHTPD/hnw5p8GmaTptsrs80vkWlvGJrq5lmvLycy3d7cXF3PNNJ/K1/waD/8ABPmx/Zy/YP1f9sbxp4eS2+L/AO2ZrMuoeHr++t9up6J+z74I1C70fwPplssymWxi8a+J4PE/j27mtXjt/EPh+7+H9zcRSHR7KQf1yUAFFFFABRRRQAV+XH/BU3/grd+yv/wSf+Cz/Ef46a5/wkXxH8S2d/H8HPgF4Y1CzX4i/FbW7VdmbWGUTr4Z8FabcvD/AMJV4/1i2bR9DgcWtlb674mvNF8M6v8AT37bn7Xfwv8A2Dv2VvjT+1n8YZZz4H+DXhC48QT6TYzW8GreK9fu7m20bwf4I0KS6It11zxp4s1LRvDGlSXBFrb3mqR3V40dnBcSp/i4ft3/ALbfxu/4KG/tQfEv9qj4+az9v8ZeP9TK6VoNnNcN4b+HvgrT3li8J/DrwbaXDsbHwx4U01xaWoP+l6rfyaj4i1ma98Qa1q2oXYB+jn/BRL/g4q/4KVf8FCtU1HR9T+LWpfs5/BKWeYab8D/2eNY1zwLotxYNujji8eeM7O/j8c/Ee5lt/JOoWuvazH4Pe+i+36P4N0J3MS/hRNNNczS3FxLLcXE8jzTzzSPLNNNKxeSWWVyzySSOxd3dizsSzEkk1FRQAU+OSSGSOWKR4pYnWSKWNmSSORGDJJG6kMjowDKykMrAEEEUyigD97P+CbP/AAcYf8FF/wDgnXq2keH4/iTqH7Sn7P8AFeW/9r/Av4865rPim0stMDqtzH8NvH13cXnjL4a3y25n/s600681PwPHfTtqGreBdbmGD/qO/wDBO/8A4KL/ALNH/BTb9nrQ/wBoT9mzxV/aGnyG30rx94B1lrW1+IHwl8aG1S4vfBnjzRIJ5/sV/CC82l6rayXOheJdNEer6BqF9YyF0/w9q/an/gg7/wAFRfE//BLr9urwP481DVZ/+GePjFqGgfCr9pnw1LcyJpsngDVdYjisPiJFAd8A8SfCTUr2TxZpNz5X2q60T/hKvCkN1Y2viy+ukAP9k+io4ZoriKKeCWOeCeNJoZoXWSKaKRQ8csUiFkkjkRg6OhKupDKSCDUlABRRRQAUUUUAf5En/Bzf/wAE/dN/YR/4Kc+P9Q8BaJ/Y/wAFv2qNLb9ov4dWlrbiHSdB1vxRrGpWXxV8GaeYkjtYItE+INnqmu6bpFpDDBoXhPxd4U02KPyoo5H/AJ4q/wBSf/g8Q/ZGsPjb/wAE0tA/aV0zSvtHjj9jz4raBr76nFEJbqL4V/GHUNJ+GvjrS1RVMxgm8YXPwr1+5mVilpaeGrqaVBC000P+WxQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQB/VX/AMEAf+Ck39i6hYfsI/GnX8aTq91dXP7OfiTVrnCabrN1JLe6p8Jbi5mbatrrdw9zrHgVZGQx61JqnhuKS4k1nw3p9t/XbX+Tppupajo2o6frGkX95peraVe2upaXqenXM1lqGnajYzx3Vlf2N5bvHcWl5Z3MUVxbXMEkc0E0aSxOrqrD/Qf/AOCRH/BRTTv27fgJFp3jLULOD9on4S2mm6H8VdLHk20niezaM2+h/E7SrOMJGbHxMtu8WvwWkccOjeKoL+3FrZaXqGgfa/7A8BfEf+0MNDgjOsRfHYGjKXD+JrT97F4ClFyqZZKcneWIwEL1MIm3KrgOeiuaWCgn/wA4n7Wr6Ff+p+eYr6UnhnlHJwrxRmFKl4u5Ll2HtR4d4sx9WNHCcc0cPQp8tDJ+LcQ6eE4hlGnChgOLHh8yqOlQ4nrzX62UUUV/TB/h0FFFFABVW+sbLU7K803UrO11DTtQtbixv7C+t4ruyvrK7ieC6s7u1nSSC5tbmCSSG4t5keKaJ3jkRkYg2qKTSaaaTTTTTSaaaaaaaaaabTTTTTaaabTqE505wqU5yhUpyjOE4SlCcJwlGcJwnCUJwnCcIThOE4ThOEJwnGcYyj5Z8Fvgp8MP2efhv4e+Enwd8Jaf4J+H/hdb7+x9A00zyRQy6pqN1q2pXU9zdy3F5eXl9qN7c3VzdXc800jy7d4jSNE9ToorOhQo4ajSw2Go0sPh6FOFGhQoU4UqNGjTioU6VKlTjGFOnCKUYQhGMYxSSXftzXNczzzM8wzrOsxx2b5xm2NxOZZrmuZ4vEY/MsyzDG1p4jGY7H47F1a+KxeLxVepOtiMRiK1WtWqSc5zbtYooorU4AooooAK/kq/4L9/8FLPtEmpfsIfBLX8wwSW0v7R/ijSLniWeMxXmm/CC0vIWxst3Fvq3xAEDEm4XTPCc06GDxZpUn61f8Fc/wDgovpn7CHwHk0/wdf2V1+0V8WLPUtF+FWkOIbp/DFoqC21r4naxZSB4/7P8NCdI9BtryOSHXPFMtlam1vdK0/xAbP/AD4dV1XU9d1TUtc1vUL3V9Z1m/vNV1fVdSupr3UdT1PUbiS7v9Qv725eS4u729uppbm6up5JJrieWSWV2d2Y/wA0+PHiR/ZuGqcE5LiLZhjqKef4mjP3sFgK0VKGWxnF3hicwptTxVmp0cA40nyzx0kv9wP2TX0J/wDXXPMH9KLxPyfn4Q4WzGpHwkyTMcPejxNxbl1aVLEcbV8PXp8uIyPhDFRlh8gc6c8PmXFsKuPh7bC8LUpzoUUUV/Hp/wBIAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFAH7Rf8G73/ACml/YA/7K5rX/qtPHVf7K1f41P/AAbvf8ppf2AP+yua1/6rTx1X+ytQAUUUUAFFFFABRRRQB/i8/wDBen/lMX/wUM/7OM8U/wDpHpdfkbX65f8ABen/AJTF/wDBQz/s4zxT/wCkel1+RtABRRRQAUUUUAFFFFABRRRQB/WP/wAGfX7HFj+0D/wUn8RftD+KtGGp+Df2NfhfeeNtLlnhFxYxfGL4lzXXgb4cR3cUimEyWnhpfid4p0qZiZrPXfCulX1sgmtlng/1Ma/k1/4M6f2arH4S/wDBLrXPj1c6f5fib9qz45+N/Ew1R4hHLc+AvhPcN8J/C+lq2A01tpvi/QviZqEMrE/vdeuo1AVAW/rKoAKKKKACiiigAr/F9/4Lp/tq65+3d/wU/wD2ovi1Prh1jwF4M8e618DvgrHBK0ml2Pwi+EWs6p4X8N3OjqzyGK18Y6jDrnxGvE3kNrXjPVJEWKJ44Iv9db9u74t33wD/AGI/2wfjhpV++l6x8If2YPjz8SdD1CJwk9rrvgv4XeKPEGhyWzNx9rOrWFmlovJe5aJACWAr/C1Zmdmd2ZnZizMxLMzMcszMcksSSSSck8mgBtFFFABRRRQAUUUUAfaX/BOf9pzWP2NP26/2Uv2mtI1abRovhL8bfA+ueJ7mFzH9r+Hl/q0Ph/4n6JOwIIs/Efw61fxRoF9ghvsepTlSGwR/uSKyuqujK6OoZHUhlZWGVZWGQysCCCCQQcjiv8Amv9zv/gn149u/in+wV+xJ8Tb+8k1HUPiH+yP+zf431C+mk82e71DxT8HfBut309w5yWuJLu+ma43fOJi4cBgRQB9e0UUUAFFFFABX8dH/AAejfs+2Xj3/AIJ6/Ar9oO1sPP8AEv7Pf7R1joU19sB+wfD741eFNX0jxKpcAsn2vxv4O+FkYBIjbYd2ZBEK/sXr8Yv+Dhn4UWnxj/4Iyft8eGrmDzpPDnweg+K9lIsYea1u/gt4y8L/ABZ8+FvvRbrbwbc21zIhBNjcXUT5ikkVgD/GkooooAKKKKACv9dH/g1z/bI/4a0/4JKfBnQNc1X+0fiF+ypqeq/sw+L1mn3Xf9ieBbfT9U+E90sDs066fH8Jtf8AB3hyC6cvDd6n4Z1lYXDW01vb/wCRdX9in/Bmj+2R/wAKg/bx+Kv7IniHVfs3hX9rf4YS6r4Us5pv3b/GH4HQ6v4s0mC2SVhHb/2p8MtU+KDX0kJE19daJoFs6TiGAwAH+nJRRRQAUUUUAFFFFAH8fv8AweV/si/8Lg/4J8/DL9qnQ9MNz4n/AGRfi3axeIL2OHc9t8JPjm2leCPETSPGDI/k/EnTfhGYRJmG3trjVJcxl2L/AOYTX+7F+2V+zj4e/a+/ZQ/aJ/Zg8UfZo9K+Onwf8d/Ddb+6jMseh6x4j8P3tn4b8TRoFc/a/C3iJtK8R2DCOTy77S7eTy5Nuxv8L/xh4T8Q+AvFvijwL4u0u50TxX4L8Ra34T8T6LeKEu9I8Q+HNTudH1rS7pQSFubDUrO5tJ1BIEsTAE4oA52iiigD+uX/AIM5P2RP+F1/8FHfGv7TOuaZ9r8JfsefCXU9W0u8kh863g+LXxoi1T4e+DIJVkHk5HgSP4t6rbyEtNa6jpOnXECLIqzwf6idfy9f8Gkf7In/AAzp/wAEqdA+L2uaX9i8cftgfEXxR8Zr2W4h8rUYfh/oc3/Cuvhjpcx2gSabc6d4Z1nx7o7ZkLW3xBeQyDzBDD/ULQAUUUUAFFFFABX4r/8ABwj+2R/wxN/wSe/aj+IGk6r/AGX8Qfif4YX9nb4VyRzfZ74+M/jTHd+F77UNKnDK0WreE/AJ8b+O7CRNzrP4VBVcjI/aiv8AOZ/4PWf2yP8AhLfjp+zF+wv4a1XzdI+EHg/Uvj58T7O1m328nj34kyT+Gfh/pepw5/dar4U8D6Fr2tWwCDdpnxRhcu+8JEAfw20UUUAFFFFABX0V+yL+z14h/ay/ak/Z7/Zm8LGePWvjr8Yfh/8ADCG9t4/NbR7Pxb4l0/SdX8QyqVdVs/Dmj3F/r1/KyMkNjp1xM6lI2FfOtf1e/wDBnh+zVY/GP/gqdq3xm1yw+1aR+yt8BvHPj/RriSITW0XxE8f3GmfCbw3BOjgxiT/hFPF3xD1aylbMlvf6JbTwKJo0mhAP9Qf4b/D3wh8JPh54D+FXw+0a28OeA/hp4N8MeAPBXh+zBFpofhPwdotl4e8O6RbA8+Rp2kadZ2cW4likILEkk12lFFABRRRQAUUUUAf593/B67+2rri6/wDsu/8ABP7wtrZtvD40G7/ad+MGm2kp3atqN5qmu+APg/puoyQuuyDR4tH+JWt3OkXPmJdT6r4Z1eSCN9P02d/4GK/cf/g5E+Lt/wDGL/gtF+27qlzqMt9p3gbxx4W+EWg27Sb4NJsPhb8PPCXg/UdOtF6RRv4o03xDqdzGDzqWpX0pw0hA/DigAooooAKKKKACiiigD/ZW/wCDez9p7Vf2sv8AgkL+xx8Q/E+svrfjfwh4H1P4I+NLy4k87UH1X4JeJNX+G+jXOrTkl7rVdZ8E6B4U8RX15Mz3N5NrJu7p3uZpWP7RV/Gj/wAGUPj261j/AIJ9ftOfDq5vJLiPwN+1zqHiDT7aV9/2Cw8d/CP4awmCAHmK2m1LwfqV2IlxH9quLyYASTSlv7LqACiiigAooooA+WP24/gBp/7VP7G37UX7OOo2a3y/Gj4D/FD4f6dGyqz23iLxB4Q1W08LapbbwUW+0XxK2k6xp8jqyR31jbyOjqpU/wCFg6PG7xyI0ckbMjo6lXR1JVkdWAZWVgQykAgggjNf7+1f4bn/AAUk+FFn8C/+ChH7cHwe0yD7Novw5/aw+P8A4V8PQ7BEB4Y0v4o+J4fDDiIfLGJfD/8AZswjUlUDhVZlAYgHxVRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABX0z+yD+1R8R/2NPj34J+PPw0uS2p+Grv7L4g8PTXEtvpPjfwbqEkKeJPBuueWsgaw1i0jUwXDQzyaTq9tpmu2cf9o6VZyJ8zUV04LGYrLsXhcfga9TC4zBV6WKwuIoycatGvQnGpSqQkusZRV004yi5wnGcKk4T8TibhvIeMuHc94S4pyrBZ7w3xLlOYZFn2TZjRjXwOZ5TmmFq4PHYPE0pWvCtQrPlnCVOtQrU8PicPWoYrC4XEYf/Ut/Z1+P/wAOP2ofgz4D+Ofwp1Yar4N8e6NFqVoshiXUdG1CNmtta8Na5bxSSrZ694c1WG70fV7VZJIkvLSR7aa4tJLe5m9rr+Cb/gip/wAFI3/Y3+Mx+EXxT1x4P2b/AI06xZW2uXN7ORYfDPx9OsOnaN8QovNbyrTRb6NbXQ/HZUwj+yI9M1+aWT/hFo7O8/vWjkSVElidJI5EWSOSNg6SI4DI6OpKsjKQyspIYEEEg1/ob4a8d4Xjzh2jj06dLNsH7PCZ3goNL2GMUE1iKUG3JYPHxi8RhpaqDdfCyk54Zc//ABvfTb+ihn30S/GTMeEpxxuYeHvEjxfEHhfxPiIyn/anDc8VKNTJ8fiY04UXxJwpXr08mzukvZzxNOOVZ5SoxwudtYd9FFFfoR/HYUUUUAFFFFABRRRQAV4V+0p+0R8Nv2VPgr46+OvxW1T+zvCXgfSnvGtoWiOq+IdYnIt9D8K6BbyvGt5r3iLU5LfTNNgLpDHJM13fTWunWt5dwe3XNzbWVtcXl5cQWlnaQS3N1dXMscFtbW0EbSz3FxPKyRQwQxI0kssjLHHGrO7BQSP4Df8Agsr/AMFI7n9tv41f8K9+G2sTn9mv4N6tfWXgpYJJIrX4ieLYxLp+sfE+9gG0TWk0Zn0rwPHchpbHw29xqSx2N74o1axi/O/Ezj3C8BcPVcanTrZxjlUwuSYKbT9riuT38XWgmpfU8BGca+Ieiq1Pq+EjLnxEuT+zPoPfRLz36WvjDgeGZRxuXeG/C0sHn3ihxPh4yp/UMgWJSw+QZbiZU5UlxLxZWw9XKspgvaTwOE/tfP6tF4fKKCxX56ftb/tSfEn9sf48eNvjx8T7vOseKLzyNE0G3nlm0jwV4RsXlTw74N0FZQvl6ZolnIVeby45tV1OfUdcvxJqeqXs0vzXRRX+emMxmKzDF4nH42vUxWMxlericViK0nOrXr15yqVak5PdylJ6JKMYqEIRhCEIQ/7GeG+HMi4P4eyPhPhfKsFkXDfDeU4DI8iybLqMcPgcsynLMLSweBwWFox+GnRoUYpynKpVrVZ4jE4itXxWKxWIxBRRRXMe2FFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQB+0X/AAbvf8ppf2AP+yua1/6rTx1X+ytX+NT/AMG73/KaX9gD/srmtf8AqtPHVf7K1ABRRRQAUUUUAFFFFAH+Lz/wXp/5TF/8FDP+zjPFP/pHpdfkbX65f8F6f+Uxf/BQz/s4zxT/AOkel1+RtABRRRQAUUUUAFFFFABRRW/4T8Oah4x8U+GvCOkJ5mq+Kdf0bw5pkeCd+oa5qNtplkmByd1zdRrgcnOBzQB/tif8Ei/gnbfs7/8ABML9g/4SQwLbXegfsw/CbWPEEKJ5aL4y8deF7Lx/45KKQrFZPGPijXZA7qskgfzJFWR2UforWH4Z8P6d4T8N+H/CukR+TpPhnQ9J8P6ZDgDytO0awt9Oso8KABstraJcAADHAxW5QAUUUUAFFFFAHjX7Q/wF+HP7UXwQ+J/7PHxesNT1X4YfGDwjqngbx1pej61qPh3UtR8NazGIdTsbbW9InttS043cAaCSeznilMMkkYba7V+C3/EJn/wRT/6IR8UP/Eg/i3/80lf0nUUAfzY/8Qmf/BFP/ohHxQ/8SD+Lf/zSUf8AEJn/AMEU/wDohHxQ/wDEg/i3/wDNJX9J1FAH82P/ABCZ/wDBFP8A6IR8UP8AxIP4t/8AzSUf8Qmf/BFP/ohHxQ/8SD+Lf/zSV/SdRQB/Nj/xCZ/8EU/+iEfFD/xIP4t//NJR/wAQmf8AwRT/AOiEfFD/AMSD+Lf/AM0lf0nUUAfzY/8AEJn/AMEU/wDohHxQ/wDEg/i3/wDNJX76/Af4KeAf2bvgv8LPgB8KrDUNL+Gnwb8CeGvhv4D0zVNWv9e1DTfCXhHS7bRdBsLrWdUmuNR1KWz060t7f7VeTy3EqxqZHY816zRQAUUUUAFFFFABXyT+374Kh+JP7CX7anw8uFVofHf7Jn7Rfg9w4yAPEnwg8YaPu6EgobwOrAblZQy/MBX1tXmPxt0z+2vgz8XNG27/AO1vhj490zZjO77f4V1a12477vNxj3oA/wAFWiiigAooooAK+iP2R/2ivFX7I/7UHwB/ac8FGV/EfwL+LPgf4l2dlFMbddatfC+vWeoav4bupAR/xLvE+jRah4d1SMkLNp2p3ULHbIa+d6KAP98b4dePvCvxW+H3gX4o+BdUi1zwR8SfBvhjx94O1qDHkav4V8Y6JY+IvD2qQ4LDytQ0jUbO7jwSNkw5PWuyr+Zj/g0+/bI/4af/AOCUvgr4Y69qv274g/se+L9b+Aesx3E3mahP4DAj8Y/CPVGi3MIdKtPCOvn4faSRs3/8K7vAY8xmSX+megAooooAKKKKACv8iP8A4Ohv2Rf+GU/+Cu/x01XSNL/s7wL+1Dp+h/tQ+ETHFtgk1H4iPqGm/FANMiiFryb4v+G/HmsS26hZrex1nTGmQieKef8A13K/iy/4PS/2Rf8AhYn7H/7Pn7Y+gaZ52vfs3/FG8+HPje7t4cSL8Mfjfb2cNlqWp3CjMlroPxI8KeE9H0uGQ4hufiBfvEQbiYOAf5qler/Af4O+Lf2hvjd8IPgL4Bt/tXjb40/E3wN8LPCcJjeSM+IPHvibTPC+lSTrH8wtYLzU4p7uTKrDbRyyyOiIzr5RX9TX/Bop+yL/AMNC/wDBUyy+NeuaZ9s8E/sefDPxL8VppriHztPk+JHi+GX4b/DbS5xtIS/hXxB4s8c6RIxQRXvgFZgxeNEcA/1Efgr8JvCXwF+Dvwp+B3gG0+weB/g78OPBPwu8H2ZVFe38M+AvDem+FtDjk8tVQzDTdLtvOcAeZKXc8sTXptFFABRRRQAUUUUAUtT1LT9G07UNY1e9tdM0rSrK71LU9Rvp47Wy0/T7GCS6vb28uZmSG3tbS2iknuJ5XWOKKN5HZVUkf4e//BSv9rbUP26v28v2pv2rLy4uptN+Lnxb8Ran4KivfMF1p3ww0JofCXwp0a4WTDLPovw30DwtpdwAkStcWksghi3+Wv8AqW/8HKX7ZH/DG/8AwSS/aK1HR9V/sz4hftC2tl+y78OjHL5N09/8XbXUrXx3c2sqMLi2udK+EGlfEXU7C9twJLXV7XTCssDyRzJ/j30AFFFFABRRRQAV/o4/8GRHwTt9H/Zn/bb/AGjJIEa8+Inxz8BfBa1uHTMkNn8HPAR8b3kdu7D5Iry4+OVmboRkCeTTrXzdxtotv+cdX+sV/wAGjPw8/wCEK/4Iy/DbxJ5Hlf8AC3fjj8eviH5m3H2n+zPGC/Cfz8/x7f8AhWH2bd2+z7f4aAP6bqKKKACiiigAooooA/AH42/8Gyv/AASQ/aG+MfxV+PPxT+DvxK1z4lfGf4h+Mfij491e2+OvxQ0u01Dxd461+/8AEviC5stLsPEENhpdjJqepXJstMsYYbLT7XybO0ijt4Y0Xy//AIhM/wDgin/0Qj4of+JB/Fv/AOaSv6TqKAP5sf8AiEz/AOCKf/RCPih/4kH8W/8A5pKP+ITP/gin/wBEI+KH/iQfxb/+aSv6TqKAP5sf+ITP/gin/wBEI+KH/iQfxb/+aSj/AIhM/wDgin/0Qj4of+JB/Fv/AOaSv6TqKAP5sf8AiEz/AOCKf/RCPih/4kH8W/8A5pKP+ITP/gin/wBEI+KH/iQfxb/+aSv6TqKAPzx/4J9/8EuP2Pf+CYfh74leFv2Q/BnijwZonxZ1nw9r/jS08SeP/Ffjv7Zqnhix1LTtKuLKTxRqOoPpuy01W6iuUs2iS6xA04Y28RX9DqKKACiiigAooooAK/xw/wDg4/8ABUPgH/gtn+3xocCqqX/xC8BeNSEGAZviT8E/hj8Rbhug+Z7jxTKznu5Y5Ocn/Y8r/Iq/4OqtM+wf8Fw/2s7rbt/trw1+zhqecff8r9mz4UaNu98f2Tsz/s47UAfzuUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFf2k/8EEv+Ck3/AAuPwRafsZfGXX/O+Knw00NpPg7r2qXObrx78NdHgHmeE5Jp23Xfib4d2UaiyRWNxqfgiOKVbct4U1i/uv4tq/os/wCCB3/BPTX/AIzfGHS/2xvHker6F8KPgh4jWb4eC2uLzS7j4h/FPT0DRi3uLaSC4m8I+C1mS68QMkq2WuazLYeGZRqOnxeK7CD9U8Gsw4iwPHmVUuH6UsV9fn9WzfCSnKGFqZOpRqYzEYqaUo0fqEbYvDV5Rco4qNKhBS+uTpv+Bf2lnB3g3xT9E7xAx/jBmFHIlwph/wC2/DviGjh6OJz3BeJEqNXCcNZRkeGnUoVswfFldy4fzrK6daFGvkNbH5piZUFw1h8XT/tsooor/QQ/4+QooooAKKKKACiiigD+Xv8A4L7f8FKz4E0DUf2Gvgpr5j8ZeLdLgk/aB8R6Vc7ZvDPg7VbZLqx+GNtcQMJItZ8ZWE0GoeLAHj+y+Dri00d1u08V3yab/HXX9nv/AAXw/wCCbH/C2vBt5+2p8GNAMvxN+HWixx/GvQNLts3Pjj4caPb7YPGsUMCbrnxJ8PbKPZqrurTaj4GiJa4T/hENPsr3+MKv4I8cY8SR48xzz982GlSg+HnS9osF/YilajHDqd0sRGv7VZmm/aPHNyl+5lhLf9b/AOytreCtX6JvC8PCOHss7o47ER8YqeYSwkuJn4nuknmFbOJYdRlLKK2VLL5cEOMVg4cKxhRopZjR4icyiiivx4/0hCiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAP2i/wCDd7/lNL+wB/2VzWv/AFWnjqv9lav8an/g3e/5TS/sAf8AZXNa/wDVaeOq/wBlagAooooAKKKKACiiigD/ABef+C9P/KYv/goZ/wBnGeKf/SPS6/I2v1y/4L0/8pi/+Chn/Zxnin/0j0uvyNoAKKKKACiiigAooooAK+mf2K9J/t79sf8AZM0Pbv8A7Z/aZ+A+k7MZ3/2j8U/Ctntxznd52MY5zXzNX11/wT8v4dK/b0/Yk1S4VXt9N/a6/Ztv51f7jQ2fxl8GXEqv/slI2DexNAH+59RRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAVyHxB/wCRC8b/APYoeJf/AEzXtdfXIfEH/kQvG/8A2KHiX/0zXtAH+BtRRRQAUUUUAFFFFAH9af8AwZ5/tkf8KG/4KQ+Jf2aPEGq/Y/BP7Znwy1Dw1Y200/kWZ+L/AMJINW8f/D+8uJJG8gPP4SPxS8M2MJCTXuseJdJtYJGlaO3uP9SWv8Gr9nj43eMP2avj18Gf2hfh9P8AZ/G3wS+J/gb4p+GC0rxQz6x4G8R6d4jtLG8KAmTTtRk0/wDs/UrdlkiutPubm2nilhlkjb/dI+Cvxa8HfHz4O/Cr45fD2+/tLwH8Yvh14L+J/g2+JQvc+GfHfhzTvE+iSyiNnRLg6dqduLiIMTDOJIm+ZCKAPTaKKKACiiigAr4z/wCCiP7LGnfttfsOftSfsrX8NrLdfGf4OeL/AAz4WlvTGLXTfiHbWJ134Za7OZf3fl+HfiJpHhfXTuZB/wAS7iWI4kT7MooA/wABXVNM1HRNT1HRtYsrrTNW0i+u9M1TTb2F7a90/UbC4ktL2yu7eULJBdWlzFLBcQyKrxSxujgMpFf6jf8AwZ4fsi/8KM/4Jp+JP2jdc0v7J4w/bG+LGseKbO7ki8i6l+FHwjm1H4ceA7O4jdfO2f8ACXRfFXxBYTOVjutL8TWNzbxmGRLi4/jc/wCC+v7Afir4Mf8ABbn4xfAr4Y+GpJo/2vPid4K+LfwL0eCE20Wt6j+05ryQXuk6bbxRtHb2Vp8b7jx34S02C1V4YbPSrZYoogPs0X+r7+zB8BfCv7Lf7OPwK/Zv8Eqn/CK/Az4T+AvhZo9wsK28mo2/gnw1p2gyazdxqTu1HXLmym1jU5nZ5bnUL66uJpJJpXdgD3WiiigAooooAKKKwvFHibQPBXhnxF4y8VapaaH4X8JaFq/ibxJrd+/lWOj6BoOn3Gq6xql5Jg+Xaafp1pcXdw+DshhdsHGKAP8AN2/4PR/2yP8AhY37XHwD/Yq8N6r53h/9m34dT/Er4g2dtNiP/hanxqFlcaTpmqW4Yh7rw38MdB8M6zpUzhWitviTqKICJmJ/itr6y/bt/ah179tX9sf9pP8Aaq8RG6juvjh8XfF/jbS7C9fzLjQfCN1qUln4D8LF98m6Lwl4IsvD/hm2Jkc/ZtJiBdj8x+TaACiiigAooooAK/2Hv+DZvSf7G/4Id/sIWe3Z53hv40atjGM/29+0r8Ztc3f8D/tHfnvuzzmv8eGv9kD/AINw7+HUv+CJ37A1xAqqkfw58c2DBOhm0r40fEvTLhj/ALb3FnKz/wC2WoA/biiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAr/JJ/4Ow/+U2X7Q//AGTv9nj/ANUr4Nr/AFtq/wAkn/g7D/5TZftD/wDZO/2eP/VK+DaAP5vaKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKK6vwJ4G8W/E3xn4X+HngLQdQ8UeNPGmu6b4a8L+HtLi86/1fWtXuo7OwsrdCVRTLPKoeaZ47e3iD3FzLFBFJIt06dSrUhSpQnUq1Zwp06dOMp1KlSpOMKdOEIKUpznOcIQhGMpSlKMYpuST58Xi8LgMJisfjsTh8FgcDhsRjcbjcXXpYXCYPB4OhWxWLxeKxOIqUaGHw2Fw2GxGIxGIr1aVGhQoVq1WpTp0pzj9Y/sAfsT+O/27/wBofw38HvC32vSfCtqY/EXxU8cx2/nWvgfwDZ3MMep6gDIpgm13VHkTR/C2myZ+361dwPcCLSrTVL2z/wBHr4T/AAs8CfBD4beC/hL8MtAtPDHgPwBoNl4c8NaJZj5LWwskOZriZv3t7qV/cvPqOr6ndNJe6rqt3eal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gAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAr+z7/ggp/wTT/4VH4Psf20vjV4f8r4n/ELRXX4K+HtVtsXPgT4d6zbFJvGk8E6brXxN8QbCXZpbIqz6X4Hn/17P4t1GysPyI/4Ip/8E13/AGxfjB/wuX4r6G837N3wa1q0m1S1voD9h+KPxAtlg1HSvAMXmL5V3oOmRyWmt+O8ear6bNpfh14h/wAJK95p/wDedHGkSJFEiRxxoscccahEjRAFRERQFVFUBVVQAoAAAAr+o/AXw29vUpcdZ3h/3FGclw3ha0NK1eDlTq5zOE1rTw8lOjlzaaniFXxkbxw+Hkf4Nfta/psf2Tg8d9FLwvzi2aZlh6E/GrPctxHv5dleIhRxeC8NsPiKFS8Mbm1KWFzPjSMKkZ4bKJZTw5VUKub5vRT6KKK/rU/55AooooAKKKr3d3a2Frc319c29lY2VvNd3l5dzR21raWttG01xc3NxMyQwW8EKPLNNK6RxRozuyqpIG0k22kkm220kkk2222kkkm220kk22km04xlOUYQjKc5yjCEIRlOc5zlGMIQhGMpSnKUoxjGMZSlKUYxjKUoxlYoqlpuo6frGn2Gr6TfWeqaVqlla6jpmp6fcw3un6jp99AlzZX1jeWzyW93Z3dtLHcW1zBJJDPDIksTsjqxu0k1JKUWnFpNNNNNNJppptNNNNNNpppptNNucJ0pzp1ITp1Kc506lOpCdOpTqU5zp1KdSnUjCpTqU6lOdOpTqQhOE4ThOEJwnCBRRRTJCiiigD8if+Cvv/BOiw/bq+A0ms+CNNtIv2i/hFZalrXwv1HENtN4u00p9q1z4X6pdvsRrXxCIRc+Gp7yRIdI8Vw2j/arDS9W8QPcf59Ooaff6Tf32larZXem6npl5c6fqWnX9vNZ31hf2Uz215ZXtpcJHPa3drcRyQXNvPGk0E0bxSIrqyj/AFjK/kJ/4L+/8E2P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/DSP/BUjUvgr4f1X7d4A/Y18AaL8IbSK3m87TpviZ4mSHx78VtVhBYmPULa61fw18PtYjCoEvPh1sCsVMsoB/LfRRRQAUUUUAFFFFABRRRQAUUUUAFf6lH/BsR/wW/h/bw+Ddn+xj+0n4qib9sH4C+E7ePwt4i1m7Vb/APaF+D2gQwWFp4kW4nYPqXxM8BWv2TS/H9u5k1LxFpA03x8kmp3U3jWXRP8ALXr0j4P/ABg+J3wA+J/gf4z/AAY8b6/8OPil8N/EFl4o8E+NvDF61jrWg61YMTFcW8oDxT288TzWWpabew3OmavplzeaVqtneabeXVrMAf72FFfzsf8ABCH/AIL2fCb/AIKr/DKw+GXxPvvDPwy/bk8CaKg8e/DJbqLTdK+K+nadbZuvil8HrW8nM9/pc8cL3fi7wbBJeav4DvTKZvtnhqfStbu/6J6ACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooA+HP8Agp3/AMo1v+Chf/Zjn7WX/qhPH9f4dVf7iv8AwU7/AOUa3/BQv/sxz9rL/wBUJ4/r/DqoAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKtWNje6ne2em6bZ3WoajqF1b2NhYWNvLd3t9e3cqQWtnaWsCST3N1czyRw29vCjyzSukcaM7AFpNtJJttpJJNtttJJJJtttpJJNttJJtpOZzhThKpUlGEIRlOc5yjCEIQjKc5znOUIQhCEJznOc4QhCE5znGMZSj7x+y5+zX8Sf2t/jj4G+BHwr0/7V4l8ZaksdzqVxHK2keFPDtpifxB4v8AEM0SsbbRPD+nCW8uiM3F5MLbStOjudV1CxtLj/SQ/ZX/AGZ/ht+yJ8DPA/wH+Flh9n8O+D9PAvtWniiTV/F3iW8CzeIfGHiGWIYuNZ1+/wB9zMNxgsLUWej6ctvpWm2FrB+fv/BHj/gnDZfs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FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF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FFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFAH//Z" + webUI["html/js/files.js"] = "ZnVuY3Rpb24gb3BlbkZpbGVzKGVsbSwgZmlsZVR5cGUpIHsNCiAgLy9kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic2V0dGluZ3MiKS5pbm5lckhUTUwgPSAiVGVzdCI7DQogIA0KICBjb2x1bW5Ub1NvcnQgPSAwOyANCiAgdmFyIG5ld0RpdiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzZXR0aW5ncyIpOw0KICANCiAgdmFyIG5ld0VudHJ5ID0gbmV3IE9iamVjdCgpOw0KICBuZXdFbnRyeVsiX2VsZW1lbnQiXSAgPSAiSFIiOw0KICBuZXdEaXYuYXBwZW5kQ2hpbGQoY3JlYXRlRWxlbWVudChuZXdFbnRyeSkpOw0KDQogIHZhciBuZXdFbnRyeSA9IG5ldyBPYmplY3QoKTsNCiAgbmV3RW50cnlbIl9lbGVtZW50Il0gID0gIklOUFVUIjsNCiAgbmV3RW50cnlbInR5cGUiXSA9ICJidXR0b24iOw0KICBuZXdFbnRyeVsiY2xhc3MiXSA9ICJidXR0b24iOw0KICBuZXdFbnRyeVsidmFsdWUiXSA9ICJOZXciOw0KICBuZXdFbnRyeVsib25jbGljayJdID0gJ2ZpbGVEZXRhaWwoIi0iLCAiJyArIGZpbGVUeXBlICsgJyIpJzsNCiAgbmV3RGl2LmFwcGVuZENoaWxkKGNyZWF0ZUVsZW1lbnQobmV3RW50cnkpKTsNCg0KICB2YXIgbmV3RW50cnkgPSBuZXcgT2JqZWN0KCk7DQogIG5ld0VudHJ5WyJfZWxlbWVudCJdICA9ICJJTlBVVCI7DQogIG5ld0VudHJ5WyJ0eXBlIl0gPSAiYnV0dG9uIjsNCiAgbmV3RW50cnlbImNsYXNzIl0gPSAiYnV0dG9uIjsNCiAgbmV3RW50cnlbInZhbHVlIl0gPSAiVXBkYXRlIjsNCiAgbmV3RW50cnlbIm9uY2xpY2siXSA9ICJmaWxlRGV0YWlsKDApIjsNCiAgLy9uZXdEaXYuYXBwZW5kQ2hpbGQoY3JlYXRlRWxlbWVudChuZXdFbnRyeSkpOw0KDQogIHZhciBkaXYgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic2V0dGluZ3MiKTsNCg0KICAgLy8gQnVpbGQgdGFibGUNCiAgdmFyIG5ld1RhYmxlID0gbmV3IE9iamVjdCgpOw0KICBuZXdUYWJsZVsiX2VsZW1lbnQiXSAgPSAiVEFCTEUiOw0KICBuZXdUYWJsZVsiaWQiXSAgICAgICAgPSAiaWRfbWFwcGluZyI7DQogIG5ld1RhYmxlWyJjbGFzcyJdICAgICA9ICJ0YWJsZS1tYXBwaW5nIjsNCiAgZGl2LmFwcGVuZENoaWxkKGNyZWF0ZUVsZW1lbnQobmV3VGFibGUpKTsNCg0KICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7IA0KICAgIGNyZWF0ZUZpbGVzVGFibGUoZmlsZVR5cGUpOyANCiAgfSwgMTApOw0KDQp9DQoNCmZ1bmN0aW9uIGNyZWF0ZUZpbGVzVGFibGUoZmlsZVR5cGUpIHsNCiAgdmFyIHRhYmxlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImlkX21hcHBpbmciKTsNCiAgdmFyIGF2YWlsYWJsZUZpbGVUeXBlcyA9IG5ldyBBcnJheSgpOw0KICANCiAgdGFibGUuaW5uZXJIVE1MID0gIiI7DQogIHZhciBuZXdUUiA9IG5ldyBPYmplY3QoKTsNCiAgbmV3VFJbIl9lbGVtZW50Il0gPSAiVFIiOw0KICBuZXdUUlsiY2xhc3MiXSAgICA9ICJ0YWJsZS1tYXBwaW5nLWhlYWRlciI7DQogIHRhYmxlLmFwcGVuZENoaWxkKGNyZWF0ZUVsZW1lbnQobmV3VFIpKTsNCg0KICB2YXIgdHIgPSB0YWJsZS5sYXN0Q2hpbGQ7DQoNCiAgc3dpdGNoKGZpbGVUeXBlKSB7DQogICAgY2FzZSAieG1sdHYiOiANCiAgICAgIGF2YWlsYWJsZUZpbGVUeXBlcyA9IG5ldyBBcnJheSgieG1sdHYiKTsgDQogICAgICB2YXIgdHJIZWFkbGluZXMgPSBuZXcgQXJyYXkoIkd1aWRlIiwgIkxhc3QgVXBkYXRlIiwgIkF2YWlsYWJpbGl0eSAlIiwgIkNoYW5uZWxzIiwgIlByb2dyYW1zIikNCiAgICAgIHZhciBjb21wYXRpYmlsaXR5S2V5cyA9IG5ldyBBcnJheSgieG1sdHYuY2hhbm5lbHMiLCAieG1sdHYucHJvZ3JhbXMiKQ0KICAgICAgYnJlYWs7DQoNCiAgICBjYXNlICJtM3UiOg0KICAgICAgYXZhaWxhYmxlRmlsZVR5cGVzID0gbmV3IEFycmF5KCJtM3UiLCAiaGRociIpOyANCiAgICAgIHZhciB0ckhlYWRsaW5lcyA9IG5ldyBBcnJheSgiUGxheWxpc3QiLCAiTGFzdCBVcGRhdGUiLCAiQXZhaWxhYmlsaXR5ICUiLCAiVHlwZSIsICJTdHJlYW1zIiwgImdyb3VwLXRpdGxlICUiLCAidHZnLWlkICUiLCAiVW5pcXVlIElEICUiKTsNCiAgICAgIHZhciBjb21wYXRpYmlsaXR5S2V5cyA9IG5ldyBBcnJheSgic3RyZWFtcyIsICJncm91cC50aXRsZSIsICJ0dmcuaWQiLCAic3RyZWFtLmlkIik7DQogICAgICBicmVhazsNCiAgfQ0KDQogIGZvciAodmFyIGkgPSAwOyBpIDwgdHJIZWFkbGluZXMubGVuZ3RoOyBpKyspIHsNCiAgICB2YXIgbmV3VEQgPSBuZXcgT2JqZWN0KCk7DQogICAgbmV3VERbIl9lbGVtZW50Il0gPSAiVEQiOw0KICAgIG5ld1REWyJfdGV4dCJdICAgID0gdHJIZWFkbGluZXNbaV07DQogICAgdHIuYXBwZW5kQ2hpbGQoY3JlYXRlRWxlbWVudChuZXdURCkpOw0KICB9DQogIA0KICBmb3IgKHZhciBpID0gMDsgaSA8IGF2YWlsYWJsZUZpbGVUeXBlcy5sZW5ndGg7IGkrKykgew0KICAgIA0KICAgIHZhciBmaWxlVHlwZSA9IGF2YWlsYWJsZUZpbGVUeXBlc1tpXQ0KDQogICAgdmFyIGRhdGEgPSBjb25maWdbImZpbGVzIl1bZmlsZVR5cGVdOw0KICAgIA0KICAgIHZhciBhbGxGaWxlcyA9IGdldE9iaktleXMoZGF0YSkNCiAgDQogICAgZm9yICh2YXIgZiA9IDA7IGYgPCBhbGxGaWxlcy5sZW5ndGg7IGYrKykgew0KICAgICAgdmFyIGVsbSAgICAgICAgICAgPSBkYXRhW2FsbEZpbGVzW2ZdXTsNCiAgICAgIHZhciB0YWJsZSAgICAgICAgID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImlkX21hcHBpbmciKTsNCiAgICAgIHZhciBmaWxlSUQgICAgICAgID0gZWxtWyJpZC5wcm92aWRlciJdOw0KICAgICAgdmFyIG5hbWUgICAgICAgICAgPSBlbG1bIm5hbWUiXTsNCiAgICAgIHZhciBsYXN0VXBkYXRlICAgID0gZWxtWyJsYXN0LnVwZGF0ZSJdOw0KICAgICAgdmFyIGF2YWlsYWJpbGl0eSAgPSBlbG1bInByb3ZpZGVyLmF2YWlsYWJpbGl0eSJdOw0KICAgICAgdmFyIHR5cGUgICAgICAgICAgPSBlbG1bInR5cGUiXS50b1VwcGVyQ2FzZSgpOw0KICAgICAgdmFyIGNvbXBhdGliaWxpdHkgPSBlbG1bImNvbXBhdGliaWxpdHkiXTsNCg0KICAgICAgLy8gQ3JlYXRlIFRSDQogICAgICB2YXIgbmV3VFIgPSBuZXcgT2JqZWN0KCk7DQogICAgICBuZXdUUlsiX2VsZW1lbnQiXSAgICAgICA9ICJUUiI7DQogICAgICBuZXdUUlsiY2xhc3MiXSAgICAgICAgICA9ICIiOw0KICAgICAgbmV3VFJbImlkIl0gICAgICAgICAgICAgPSBmaWxlSUQ7DQogICAgICBuZXdUUlsib25jbGljayJdICAgICAgICA9ICdqYXZhc2NyaXB0OiBmaWxlRGV0YWlsKCInICsgZmlsZUlEICsgJyIsIicgKyBmaWxlVHlwZSArICciKTsnOw0KICAgICAgdGFibGUuYXBwZW5kQ2hpbGQoY3JlYXRlRWxlbWVudChuZXdUUikpOw0KDQogICAgICB2YXIgdHIgPSB0YWJsZS5sYXN0Q2hpbGQ7DQoNCiAgICAgIC8vIENyZWF0ZSBmaWxlIG5hbWUgVEQNCiAgICAgIHZhciBuZXdURCA9IG5ldyBPYmplY3QoKTsNCiAgICAgIG5ld1REWyJfZWxlbWVudCJdID0gIlAiOw0KICAgICAgbmV3VERbIl90ZXh0Il0gICAgPSBuYW1lOw0KICAgICAgY3JlYXRlTmV3VEQobmV3VEQsIHRyKTsNCg0KICAgICAgLy8gQ3JlYXRlIGxhc3QgdXBkYXRlIFREDQogICAgICB2YXIgbmV3VEQgPSBuZXcgT2JqZWN0KCk7DQogICAgICBuZXdURFsiX2VsZW1lbnQiXSA9ICJQIjsNCiAgICAgIG5ld1REWyJfdGV4dCJdICAgID0gbGFzdFVwZGF0ZTsNCiAgICAgIGNyZWF0ZU5ld1REKG5ld1RELCB0cik7DQoNCiAgICAgIC8vIENyZWF0ZSBhdmFpbGFiaWxpdHkgVEQNCiAgICAgIHZhciBuZXdURCA9IG5ldyBPYmplY3QoKTsNCiAgICAgIG5ld1REWyJfZWxlbWVudCJdID0gIlAiOw0KICAgICAgbmV3VERbIl90ZXh0Il0gICAgPSBhdmFpbGFiaWxpdHk7DQogICAgICBjcmVhdGVOZXdURChuZXdURCwgdHIpOw0KDQogICAgICBpZiAoZmlsZVR5cGUgPT0gIm0zdSIgfHwgZmlsZVR5cGUgPT0gImhkaHIiKSB7DQoNCiAgICAgICAgLy8gQ3JlYXRlIFR5cGUgVEQNCiAgICAgICAgdmFyIG5ld1REID0gbmV3IE9iamVjdCgpOw0KICAgICAgICBuZXdURFsiX2VsZW1lbnQiXSA9ICJQIjsNCiAgICAgICAgbmV3VERbIl90ZXh0Il0gICAgPSB0eXBlOw0KICAgICAgICBjcmVhdGVOZXdURChuZXdURCwgdHIpOw0KICANCiAgICAgIH0NCiAgICAgIA0KICAgICAgLy8gQ3JlYXRlIGFsbCBjb21wYXRpYmlsaXR5IFREcw0KDQogICAgICBmb3IgKHZhciBqID0gMDsgaiA8IGNvbXBhdGliaWxpdHlLZXlzLmxlbmd0aDsgaisrKSB7DQogICAgICAgIHZhciBuZXdURCA9IG5ldyBPYmplY3QoKTsNCiAgICAgICAgbmV3VERbIl9lbGVtZW50Il0gPSAiUCI7DQogICAgICAgIG5ld1REWyJfdGV4dCJdICAgID0gY29tcGF0aWJpbGl0eVtjb21wYXRpYmlsaXR5S2V5c1tqXV07DQogICAgICAgIGNyZWF0ZU5ld1REKG5ld1RELCB0cik7DQogICAgICB9DQoNCiAgICB9DQoNCiAgfQ0KICANCiAgDQogIHNvcnRUYWJsZSgwKQ0KDQogIC8vIHVzYWdlIEluZm8gIA0KICB2YXIgZGl2ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNldHRpbmdzIik7DQogIHN3aXRjaChtZW51W2FjdGl2ZU1lbnUuaWRdLmhhc093blByb3BlcnR5KCJfdXNhZ2UiKSkgew0KICAgIGNhc2UgdHJ1ZTogDQogICAgICB2YXIgdXNhZ2VJdGVtID0gbmV3IE9iamVjdCgpOw0KICAgICAgdXNhZ2VJdGVtWyJfZWxlbWVudCJdID0gIlBSRSINCiAgICAgIHVzYWdlSXRlbVsiX3RleHQiXSAgICA9IG1lbnVbYWN0aXZlTWVudS5pZF1bIl91c2FnZSJdOw0KDQogICAgICB2YXIgbmV3SFIgPSBuZXcgT2JqZWN0KCk7DQogICAgICBuZXdIUlsiX2VsZW1lbnQiXSA9ICJIUiINCiAgICAgIGRpdi5hcHBlbmRDaGlsZChjcmVhdGVFbGVtZW50KG5ld0hSKSk7DQogICAgICBkaXYuYXBwZW5kQ2hpbGQoY3JlYXRlRWxlbWVudCh1c2FnZUl0ZW0pKTsNCiAgICAgIGJyZWFrOw0KICB9DQoNCiAgY2FsY3VsYXRlV3JhcHBlckhlaWdodCgpOw0KICByZXR1cm47DQp9DQoNCg0KZnVuY3Rpb24gZmlsZURldGFpbChmaWxlSUQsIGZpbGVUeXBlKSB7DQoNCiAgb3B0aW9uc1RleHQgID0gbmV3IEFycmF5KCJNM1UiLCAiSERIb21lUnVuIC0gW0V4cGVyaW1lbnRhbF0iKQ0KICBvcHRpb25zVmFsdWUgPSBuZXcgQXJyYXkoIm0zdSIsICJoZGhyIikNCg0KICBzd2l0Y2ggKGZpbGVUeXBlKSB7DQogICAgDQogICAgY2FzZSAibTN1IjogDQogICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibmFtZSIpLnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAiUGxheWxpc3QgbmFtZSIpOyANCiAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJkZXNjcmlwdGlvbiIpLnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAiRGVzY3JpcHRpb24gb2YgdGhpcyBwbGF5bGlzdCIpOyANCiAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJmaWxlLWRldGFpbC1oZWFkbGluZSIpLmlubmVySFRNTCA9ICJNM1UgUGxheWxpc3QiOyANCiAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJmaWxlLXBhdGgiKS5pbm5lckhUTUwgPSAiTTNVIEZpbGU6IjsgDQogICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZmlsZS5zb3VyY2UiKS5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgIkxvY2FsIG9yIHJlbW90ZSIpOw0KICAgICAgYnJlYWs7DQoNCiAgICBjYXNlICJoZGhyIjogDQogICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibmFtZSIpLnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAiSERIb21lUnVuIG5hbWUiKTsgDQogICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZGVzY3JpcHRpb24iKS5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgIkRlc2NyaXB0aW9uIG9mIHRoaXMgSERIb21lUnVuIHR1bmVyIik7IA0KICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImZpbGUtZGV0YWlsLWhlYWRsaW5lIikuaW5uZXJIVE1MID0gIkhESG9tZVJ1biI7IA0KICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImZpbGUtcGF0aCIpLmlubmVySFRNTCA9ICJIREhvbWVSdW4gSVA6IjsgDQogICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZmlsZS5zb3VyY2UiKS5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgIklQIGFkZHJlc3MgYW5kIHBvcnQgb2YgdGhlIHR1bmVyICgxOTIuMTY4LjEuMTA6NTAwNCkiKTsNCiAgICAgIGJyZWFrOw0KICAgIA0KICAgIGNhc2UgInhtbHR2IjogDQogICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibmFtZSIpLnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAiWE1MVFYgbmFtZSIpOyANCiAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJkZXNjcmlwdGlvbiIpLnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAiRGVzY3JpcHRpb24gb2YgdGhpcyBYTUxUViBmaWxlIik7IA0KICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImZpbGUtZGV0YWlsLWhlYWRsaW5lIikuaW5uZXJIVE1MID0gIlhNTFRWIEZpbGUiOyANCiAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJmaWxlLXBhdGgiKS5pbm5lckhUTUwgPSAiWE1MVFYgRmlsZToiOw0KICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImZpbGUuc291cmNlIikuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJMb2NhbCBvciByZW1vdGUiKTsNCg0KICAgICAgb3B0aW9uc1RleHQgID0gbmV3IEFycmF5KCJYTUxUViIpDQogICAgICBvcHRpb25zVmFsdWUgPSBuZXcgQXJyYXkoInhtbHR2IikNCiAgICAgIGJyZWFrOw0KICB9DQoNCiAgbW9kaWZ5T3B0aW9uKCJ0eXBlIiwgb3B0aW9uc1RleHQsIG9wdGlvbnNWYWx1ZSkNCiAgDQogIHNob3dQb3BVcEVsZW1lbnQoJ2ZpbGUtZGV0YWlsJyk7DQoNCiAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNhdmVGaWxlRGV0YWlsIikuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IHNhdmVGaWxlRGV0YWlsKCInICsgZmlsZUlEICsgJyIsIicgKyBmaWxlVHlwZSArICciLCBmYWxzZSknKTsNCiAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInVwZGF0ZUZpbGVEZXRhaWwiKS5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogdXBkYXRlRmlsZSgiJyArIGZpbGVJRCArICciLCInICsgZmlsZVR5cGUgKyAnIiwgZmFsc2UpJyk7DQogIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJkZWxldGVGaWxlRGV0YWlsIikuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IHNhdmVGaWxlRGV0YWlsKCInICsgZmlsZUlEICsgJyIsIicgKyBmaWxlVHlwZSArICciLCB0cnVlKScpOw0KDQogIHZhciBkYXRhID0gbmV3IE9iamVjdCgpOw0KDQogIHN3aXRjaChmaWxlSUQpIHsNCg0KICAgIGNhc2UgIi0iOiAvLyBOZXcgZmlsZQ0KICAgICAgZGF0YVsibmFtZSJdICAgICAgICA9ICIiOw0KICAgICAgZGF0YVsiZGVzY3JpcHRpb24iXSA9ICIiOw0KICAgICAgZGF0YVsiZmlsZS5zb3VyY2UiXSA9ICIiOw0KICAgICAgZGF0YVsidHlwZSJdID0gZmlsZVR5cGU7DQogICAgICANCiAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJkZWxldGVGaWxlRGV0YWlsIikuY2xhc3NOYW1lID0gImRlbGV0ZSI7DQogICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidHlwZSIpLnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiY2hhbmdlRmlsZVR5cGUodGhpcyk7IikNCiAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0eXBlIikuc2V0QXR0cmlidXRlKCJkYXRhLWlkIiwgZmlsZUlEKQ0KICAgICAgDQogICAgICBzaG93RWxlbWVudCgiZGVsZXRlRmlsZURldGFpbCIsIGZhbHNlKTsNCiAgICAgIHNob3dFbGVtZW50KCJ1cGRhdGVGaWxlRGV0YWlsIiwgZmFsc2UpOw0KICAgICAgDQogICAgICBpZiAoZmlsZVR5cGUgPT0gInhtbHR2Iikgew0KICAgICAgICBzaG93RWxlbWVudCgidHlwZSIsIGZhbHNlKTsNCiAgICAgICAgc2hvd0VsZW1lbnQoImZpbGUtdHlwZSIsIGZhbHNlKTsNCiAgICAgIH0gZWxzZSB7DQogICAgICAgIHNob3dFbGVtZW50KCJ0eXBlIiwgdHJ1ZSk7DQogICAgICAgIHNob3dFbGVtZW50KCJmaWxlLXR5cGUiLCB0cnVlKTsNCiAgICAgIH0NCiAgICAgIA0KICAgICAgYnJlYWs7DQoNCiAgICBkZWZhdWx0OiANCiAgICAgIGRhdGEgPSBjb25maWdbImZpbGVzIl1bZmlsZVR5cGVdW2ZpbGVJRF07DQogICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZGVsZXRlRmlsZURldGFpbCIpLmNsYXNzTmFtZSA9ICJkZWxldGUiOw0KICAgICAgDQogICAgICBzaG93RWxlbWVudCgidXBkYXRlRmlsZURldGFpbCIsIHRydWUpOw0KICAgICAgc2hvd0VsZW1lbnQoInR5cGUiLCBmYWxzZSk7DQogICAgICBzaG93RWxlbWVudCgiZmlsZS10eXBlIiwgZmFsc2UpOw0KICAgICAgDQogICAgICBicmVhazsNCg0KICB9DQoNCiAgdmFyIGtleXMgPSBnZXRPYmpLZXlzKGRhdGEpOw0KICANCiAgZm9yICh2YXIgaSA9IDA7IGkgPCBrZXlzLmxlbmd0aDsgaSsrKSB7DQoNCiAgICBpZihkb2N1bWVudC5nZXRFbGVtZW50QnlJZChrZXlzW2ldKSl7DQogICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChrZXlzW2ldKS52YWx1ZSA9IGRhdGFba2V5c1tpXV07DQogICAgfSANCg0KDQogIH0NCg0KfQ0KDQpmdW5jdGlvbiBjaGFuZ2VGaWxlVHlwZShlbG0pIHsNCg0KICB2YXIgZmlsZUlEID0gZWxtLmdldEF0dHJpYnV0ZSgiZGF0YS1pZCIpOw0KICB2YXIgZmlsZVR5cGUgPSBlbG0ub3B0aW9uc1tlbG0uc2VsZWN0ZWRJbmRleF0udmFsdWU7DQogIA0KICBmaWxlRGV0YWlsKGZpbGVJRCwgZmlsZVR5cGUpDQoNCn0NCg0KDQpmdW5jdGlvbiBzYXZlRmlsZURldGFpbChmaWxlSUQsIGZpbGVUeXBlLCBkZWxldGVGaWxlKSB7DQoNCiAgaWYgKGZpbGVJRCA9PSB1bmRlZmluZWQpIHsNCiAgICBhbGVydCgiSUQgaXMgbWlzc2luZyEhISIpOw0KICAgIHJldHVybiANCiAgfQ0KDQogIHZhciBpbnB1dHMgICAgICA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJmaWxlLWRldGFpbCIpLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJJTlBVVCIpOw0KICB2YXIgc2VsZWN0cyAgICAgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZmlsZS1kZXRhaWwiKS5nZXRFbGVtZW50c0J5VGFnTmFtZSgiU0VMRUNUIik7DQogIHZhciBuZXdGaWxlRGF0YSA9IG5ldyBPYmplY3QoKTsNCiAgdmFyIGRhdGEgICAgICAgID0gbmV3IE9iamVjdCgpOw0KDQogIGZvciAodmFyIGkgPSAwOyBpIDwgaW5wdXRzLmxlbmd0aDsgaSsrKSB7DQogICAgc3dpdGNoKGlucHV0c1tpXS50eXBlKSB7DQogICAgICBjYXNlICJ0ZXh0IjogbmV3RmlsZURhdGFbaW5wdXRzW2ldLm5hbWVdID0gaW5wdXRzW2ldLnZhbHVlOyBicmVhazsNCiAgICB9DQogIH0NCg0KICBmb3IgKHZhciBpID0gMDsgaSA8IHNlbGVjdHMubGVuZ3RoOyBpKyspIHsNCiAgICBuZXdGaWxlRGF0YVtzZWxlY3RzW2ldLmlkXSA9IHNlbGVjdHNbaV0ub3B0aW9uc1tzZWxlY3RzW2ldLnNlbGVjdGVkSW5kZXhdLnZhbHVlOw0KICB9DQoNCiAgaWYgKGRlbGV0ZUZpbGUgPT0gdHJ1ZSkgew0KICAgIHN3aXRjaChmaWxlVHlwZSkgew0KICAgICAgY2FzZSAibTN1IjogICB2YXIgYWxlcnRUZXh0ID0gIkRlbGV0ZSB0aGlzIHBsYXlsaXN0PyI7IGJyZWFrOw0KICAgICAgY2FzZSAiaGRociI6IHZhciBhbGVydFRleHQgPSAiRGVsZXRlIHRoaXMgSERIb21lUnVuIHR1bmVyPyI7IGJyZWFrOw0KICAgICAgY2FzZSAieG1sdHYiOiB2YXIgYWxlcnRUZXh0ID0gIkRlbGV0ZSB0aGlzIFhNTFRWIGZpbGU/IjsgYnJlYWs7DQogICAgfQ0KDQogICAgaWYgKGNvbmZpcm0oYWxlcnRUZXh0KSkgew0KICAgICAgbmV3RmlsZURhdGFbImRlbGV0ZSJdID0gdHJ1ZQ0KICAgICAgZGF0YSA9IGJ1aWxkRmlsZXNPYmooZmlsZVR5cGUsIGZpbGVJRCwgbmV3RmlsZURhdGEpOw0KICAgICAgY29uc29sZS5sb2coZGF0YSk7DQogICAgICANCiAgICB9IGVsc2Ugew0KICAgICAgc2hvd0VsZW1lbnQoInBvcHVwIiwgZmFsc2UpOw0KICAgICAgcmV0dXJuDQogICAgDQogICAgfQ0KDQogIH0gZWxzZSB7DQogIA0KICAgIHN3aXRjaChjb25maWdbImZpbGVzIl1bZmlsZVR5cGVdLmhhc093blByb3BlcnR5KGZpbGVJRCkpIHsNCg0KICAgICAgY2FzZSB0cnVlOiANCiAgICAgICAgZGF0YSA9IGNvbmZpZ1siZmlsZXMiXVtmaWxlVHlwZV1bZmlsZUlEXTsgDQogICAgICAgIGlmIChkYXRhWyJmaWxlLnNvdXJjZSJdICE9IG5ld0ZpbGVEYXRhWyJmaWxlLnNvdXJjZSJdKSB7DQogICAgICAgICAgZGF0YVsidXBkYXRlIl0gPSB0cnVlDQogICAgICAgIH0gZWxzZSB7DQogICAgICAgICAgZGF0YVsidXBkYXRlUGxheWxpc3ROYW1lIl0gPSB0cnVlOw0KICAgICAgICB9DQogICAgICAgIGJyZWFrOw0KICAgICAgDQogICAgICBjYXNlIGZhbHNlOiANCiAgICAgICAgbmV3RmlsZURhdGFbIm5ldyJdID0gdHJ1ZTsNCiAgICAgICAgZGF0YSA9IGJ1aWxkRmlsZXNPYmooZmlsZVR5cGUsIGZpbGVJRCwgbmV3RmlsZURhdGEpOw0KICAgICAgICBicmVhaw0KDQogICAgfQ0KICANCiAgfSAgDQogIA0KICBzd2l0Y2goZmlsZVR5cGUpIHsNCg0KICAgIGNhc2UgIm0zdSI6ICAgZGF0YVsiY21kIl0gPSAic2F2ZUZpbGVzTTNVIjsgYnJlYWs7DQogICAgY2FzZSAiaGRociI6ICBkYXRhWyJjbWQiXSA9ICJzYXZlRmlsZXNIREhSIjsgYnJlYWs7DQogICAgY2FzZSAieG1sdHYiOiBkYXRhWyJjbWQiXSA9ICJzYXZlRmlsZXNYTUxUViI7IGJyZWFrOw0KDQogIH0NCiAgLy9jb25zb2xlLmxvZyhkYXRhKTsNCiAgeFRlVmUoZGF0YSk7DQogIHJldHVybg0KfQ0KDQpmdW5jdGlvbiB1cGRhdGVGaWxlKGZpbGVJRCwgZmlsZVR5cGUsIGFsbEZpbGVzKSB7DQogIA0KICBzd2l0Y2goY29uZmlnWyJmaWxlcyJdW2ZpbGVUeXBlXS5oYXNPd25Qcm9wZXJ0eShmaWxlSUQpKSB7DQoNCiAgICBjYXNlIHRydWU6IA0KICAgIA0KICAgICAgdmFyIGRhdGEgPSBuZXcgT2JqZWN0KCk7DQogICAgICB2YXIgZGF0YSA9IGJ1aWxkRmlsZXNPYmooZmlsZVR5cGUsIGZpbGVJRCwgY29uZmlnWyJmaWxlcyJdW2ZpbGVUeXBlXVtmaWxlSURdKQ0KICAgICAgZGF0YVsibmV3Il0gPSB0cnVlDQoNCiAgICAgIHN3aXRjaChmaWxlVHlwZSkgew0KDQogICAgICAgIGNhc2UgIm0zdSI6ICAgZGF0YVsiY21kIl0gPSAidXBkYXRlRmlsZU0zVSI7IGJyZWFrOw0KICAgICAgICBjYXNlICJoZGhyIjogIGRhdGFbImNtZCJdID0gInVwZGF0ZUZpbGVIREhSIjsgYnJlYWs7DQogICAgICAgIGNhc2UgInhtbHR2IjogZGF0YVsiY21kIl0gPSAidXBkYXRlRmlsZVhNTFRWIjsgYnJlYWs7DQoNCiAgICAgIH0NCiAgICAgIA0KICAgICAgeFRlVmUoZGF0YSk7DQogICAgICANCiAgICAgIGJyZWFrOw0KICB9DQoNCn0NCg0KZnVuY3Rpb24gYnVpbGRGaWxlc09iaihmaWxlVHlwZSwgZmlsZUlELCBvYmopIHsNCg0KICB2YXIgZGF0YSA9IG5ldyBPYmplY3QoKTsNCiAgZGF0YVsiZmlsZXMiXSA9IG5ldyBPYmplY3QoKTsNCiAgZGF0YVsiZmlsZXMiXVtmaWxlVHlwZV0gPSBuZXcgT2JqZWN0KCk7DQogIGRhdGFbImZpbGVzIl1bZmlsZVR5cGVdW2ZpbGVJRF0gPSBvYmoNCiAgcmV0dXJuIGRhdGENCg0KfQ==" webUI["html/js/logs_ts.js"] = "Y2xhc3MgTG9nIHsNCiAgICBjcmVhdGVMb2coZW50cnkpIHsNCiAgICAgICAgdmFyIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJQUkUiKTsNCiAgICAgICAgaWYgKGVudHJ5LmluZGV4T2YoIldBUk5JTkciKSAhPSAtMSkgew0KICAgICAgICAgICAgZWxlbWVudC5jbGFzc05hbWUgPSAid2FybmluZ01zZyI7DQogICAgICAgIH0NCiAgICAgICAgaWYgKGVudHJ5LmluZGV4T2YoIkVSUk9SIikgIT0gLTEpIHsNCiAgICAgICAgICAgIGVsZW1lbnQuY2xhc3NOYW1lID0gImVycm9yTXNnIjsNCiAgICAgICAgfQ0KICAgICAgICBpZiAoZW50cnkuaW5kZXhPZigiREVCVUciKSAhPSAtMSkgew0KICAgICAgICAgICAgZWxlbWVudC5jbGFzc05hbWUgPSAiZGVidWdNc2ciOw0KICAgICAgICB9DQogICAgICAgIGVsZW1lbnQuaW5uZXJIVE1MID0gZW50cnk7DQogICAgICAgIHJldHVybiBlbGVtZW50Ow0KICAgIH0NCn0NCmZ1bmN0aW9uIHNob3dMb2dzKGJvdHRvbSkgew0KICAgIHZhciBsb2cgPSBuZXcgTG9nKCk7DQogICAgdmFyIGxvZ3MgPSBTRVJWRVJbImxvZyJdWyJsb2ciXTsNCiAgICB2YXIgZGl2ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnRlbnRfbG9nIik7DQogICAgZGl2LmlubmVySFRNTCA9ICIiOw0KICAgIHZhciBrZXlzID0gZ2V0T2JqS2V5cyhsb2dzKTsNCiAgICBrZXlzLmZvckVhY2gobG9nSUQgPT4gew0KICAgICAgICB2YXIgZW50cnkgPSBsb2cuY3JlYXRlTG9nKGxvZ3NbbG9nSURdKTsNCiAgICAgICAgZGl2LmFwcGVuZChlbnRyeSk7DQogICAgfSk7DQogICAgc2V0VGltZW91dChmdW5jdGlvbiAoKSB7DQogICAgICAgIGlmIChib3R0b20gPT0gdHJ1ZSkgew0KICAgICAgICAgICAgdmFyIHdyYXBwZXIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYm94LXdyYXBwZXIiKTsNCiAgICAgICAgICAgIHdyYXBwZXIuc2Nyb2xsVG9wID0gd3JhcHBlci5zY3JvbGxIZWlnaHQ7DQogICAgICAgIH0NCiAgICB9LCAxMCk7DQp9DQpmdW5jdGlvbiByZXNldExvZ3MoKSB7DQogICAgdmFyIGNtZCA9ICJyZXNldExvZ3MiOw0KICAgIHZhciBkYXRhID0gbmV3IE9iamVjdCgpOw0KICAgIHZhciBzZXJ2ZXIgPSBuZXcgU2VydmVyKGNtZCk7DQogICAgc2VydmVyLnJlcXVlc3QoZGF0YSk7DQp9DQo=" - webUI["html/js/users.js"] = "ZnVuY3Rpb24gb3BlblVzZXJzKGVsbSkgew0KICBjb2xvbW5Tb3J0ID0gMDsNCg0KICB2YXIgbmV3RGl2ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNldHRpbmdzIik7DQogIA0KICB2YXIgbmV3RW50cnkgPSBuZXcgT2JqZWN0KCk7DQogIG5ld0VudHJ5WyJfZWxlbWVudCJdICA9ICJIUiI7DQogIG5ld0Rpdi5hcHBlbmRDaGlsZChjcmVhdGVFbGVtZW50KG5ld0VudHJ5KSk7DQoNCiAgdmFyIG5ld0VudHJ5ID0gbmV3IE9iamVjdCgpOw0KICBuZXdFbnRyeVsiX2VsZW1lbnQiXSAgPSAiSU5QVVQiOw0KICBuZXdFbnRyeVsidHlwZSJdID0gImJ1dHRvbiI7DQogIG5ld0VudHJ5WyJjbGFzcyJdID0gImJ1dHRvbiI7DQogIG5ld0VudHJ5WyJ2YWx1ZSJdID0gIk5ldyI7DQogIG5ld0VudHJ5WyJvbmNsaWNrIl0gPSAidXNlckRldGFpbCgwKSI7DQogIG5ld0Rpdi5hcHBlbmRDaGlsZChjcmVhdGVFbGVtZW50KG5ld0VudHJ5KSk7DQoNCiAgdmFyIGRpdiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzZXR0aW5ncyIpOw0KDQogICAvLyBCdWlsZCB0YWJsZQ0KICB2YXIgbmV3VGFibGUgPSBuZXcgT2JqZWN0KCk7DQogIG5ld1RhYmxlWyJfZWxlbWVudCJdICA9ICJUQUJMRSI7DQogIG5ld1RhYmxlWyJpZCJdICAgICAgICA9ICJpZF9tYXBwaW5nIjsNCiAgbmV3VGFibGVbImNsYXNzIl0gICAgID0gInRhYmxlLW1hcHBpbmciOw0KICBkaXYuYXBwZW5kQ2hpbGQoY3JlYXRlRWxlbWVudChuZXdUYWJsZSkpOw0KDQogIHNldFRpbWVvdXQoZnVuY3Rpb24oKXsgDQogICAgY3JlYXRlVXNlcnNUYWJsZSgpOyANCiAgfSwgMTApOw0KfQ0KDQpmdW5jdGlvbiBjcmVhdGVVc2Vyc1RhYmxlKCkgew0KICB2YXIgdGFibGUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiaWRfbWFwcGluZyIpOw0KICB0YWJsZS5pbm5lckhUTUwgPSAiIjsNCiAgdmFyIG5ld1RSID0gbmV3IE9iamVjdCgpOw0KICBuZXdUUlsiX2VsZW1lbnQiXSA9ICJUUiI7DQogIG5ld1RSWyJjbGFzcyJdICAgID0gInRhYmxlLW1hcHBpbmctaGVhZGVyIjsNCiAgdGFibGUuYXBwZW5kQ2hpbGQoY3JlYXRlRWxlbWVudChuZXdUUikpOw0KDQogIHZhciB0ciA9IHRhYmxlLmxhc3RDaGlsZDsNCiAgdmFyIHRySGVhZGxpbmVzID0gbmV3IEFycmF5KCJVc2VybmFtZSIsICJQYXNzd29yZCIsICJXRUIiLCAiUE1TIiwgIk0zVSIsICJYTUwiLCAiQVBJIikNCg0KICBmb3IgKHZhciBpID0gMDsgaSA8IHRySGVhZGxpbmVzLmxlbmd0aDsgaSsrKSB7DQogICAgdmFyIG5ld1REID0gbmV3IE9iamVjdCgpOw0KICAgIG5ld1REWyJfZWxlbWVudCJdID0gIlREIjsNCiAgICBuZXdURFsiX3RleHQiXSAgICA9IHRySGVhZGxpbmVzW2ldOw0KICAgIHRyLmFwcGVuZENoaWxkKGNyZWF0ZUVsZW1lbnQobmV3VEQpKTsNCiAgfQ0KDQoNCiAgLy8gU29ydCB1c2Vycw0KICB2YXIgdXNlcklkcyA9IGdldE9iaktleXModXNlcnMpOw0KDQogIHZhciB1c2VyT2JqID0gbmV3IE9iamVjdCgpOw0KDQogIGZvciAodmFyIGkgPSAwOyBpIDwgdXNlcklkcy5sZW5ndGg7IGkrKykgew0KICAgIHZhciB1c2VybmFtZSA9IHVzZXJzW3VzZXJJZHNbaV1dWyJkYXRhIl1bInVzZXJuYW1lIl07DQogICAgdXNlck9ialt1c2VybmFtZV0gPSB1c2VySWRzW2ldOw0KICB9DQoNCiAgdmFyIGFsbFVzZXJzID0gZ2V0T2JqS2V5cyh1c2VyT2JqKTsNCiAgYWxsVXNlcnMuc29ydCgpOw0KICAvLyAtLQ0KDQogIGZvciAodmFyIGkgPSAwOyBpIDwgYWxsVXNlcnMubGVuZ3RoOyBpKyspIHsNCiAgICB2YXIgdGFibGUgICAgID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImlkX21hcHBpbmciKTsNCiAgICB2YXIgdXNlcklEICAgID0gdXNlck9ialthbGxVc2Vyc1tpXV07DQogICAgdmFyIHVzZXJuYW1lICA9IGFsbFVzZXJzW2ldOw0KICAgIHZhciBpdGVtICAgICAgPSB1c2Vyc1t1c2VySURdWyJkYXRhIl07DQoNCiAgICAvLyBDcmVhdGUgVFINCiAgICB2YXIgbmV3VFIgPSBuZXcgT2JqZWN0KCk7DQogICAgbmV3VFJbIl9lbGVtZW50Il0gICAgICAgPSAiVFIiOw0KICAgIG5ld1RSWyJjbGFzcyJdICAgICAgICAgID0gIiI7DQogICAgbmV3VFJbImlkIl0gICAgICAgICAgICAgPSB1c2VySUQ7DQogICAgbmV3VFJbIm9uY2xpY2siXSAgICAgICAgPSAnamF2YXNjcmlwdDogdXNlckRldGFpbCgiJyArIHVzZXJJRCArICciKTsnOw0KICAgIHRhYmxlLmFwcGVuZENoaWxkKGNyZWF0ZUVsZW1lbnQobmV3VFIpKTsNCg0KICAgIHZhciB0ciA9IHRhYmxlLmxhc3RDaGlsZDsNCg0KICAgIC8vIENyZWF0ZSB1c2VybmFtZSBURA0KICAgIHZhciBuZXdURCA9IG5ldyBPYmplY3QoKTsNCiAgICBuZXdURFsiX2VsZW1lbnQiXSA9ICJQIjsNCiAgICBuZXdURFsiX3RleHQiXSAgICA9IHVzZXJuYW1lOw0KICAgIGNyZWF0ZU5ld1REKG5ld1RELCB0cik7DQoNCiAgICAvLyBDcmVhdGUgcGFzc3dvcmQgVEQNCiAgICB2YXIgbmV3VEQgPSBuZXcgT2JqZWN0KCk7DQogICAgbmV3VERbIl9lbGVtZW50Il0gPSAiUCI7DQogICAgbmV3VERbIl90ZXh0Il0gICAgPSAiLi4uLi4iOw0KICAgIGNyZWF0ZU5ld1REKG5ld1RELCB0cik7DQoNCiAgICAvLyBDcmVhdGUgd2ViIGFjY2Vzcw0KICAgIHZhciBuZXdURCA9IG5ldyBPYmplY3QoKTsNCiAgICBuZXdURFsiX2VsZW1lbnQiXSA9ICJQIjsNCiAgICBzd2l0Y2goaXRlbVsiYXV0aGVudGljYXRpb24ud2ViIl0pew0KICAgICAgY2FzZSB0cnVlOiBuZXdURFsiX3RleHQiXSAgICA9ICLinJMiOyBicmVhazsNCiAgICAgIGRlZmF1bHQ6ICAgbmV3VERbIl90ZXh0Il0gICAgPSAiLSI7IGJyZWFrOw0KICAgIH0NCiAgICBjcmVhdGVOZXdURChuZXdURCwgdHIpOw0KDQogICAgLy8gQ3JlYXRlIFBNUyBhY2Nlc3MNCiAgICB2YXIgbmV3VEQgPSBuZXcgT2JqZWN0KCk7DQogICAgbmV3VERbIl9lbGVtZW50Il0gPSAiUCI7DQogICAgc3dpdGNoKGl0ZW1bImF1dGhlbnRpY2F0aW9uLnBtcyJdKXsNCiAgICAgIGNhc2UgdHJ1ZTogbmV3VERbIl90ZXh0Il0gICAgPSAi4pyTIjsgYnJlYWs7DQogICAgICBkZWZhdWx0OiAgIG5ld1REWyJfdGV4dCJdICAgID0gIi0iOyBicmVhazsNCiAgICB9DQogICAgY3JlYXRlTmV3VEQobmV3VEQsIHRyKTsNCg0KICAgIC8vIENyZWF0ZSBNM1UgYWNjZXNzDQogICAgdmFyIG5ld1REID0gbmV3IE9iamVjdCgpOw0KICAgIG5ld1REWyJfZWxlbWVudCJdID0gIlAiOw0KICAgIHN3aXRjaChpdGVtWyJhdXRoZW50aWNhdGlvbi5tM3UiXSl7DQogICAgICBjYXNlIHRydWU6IG5ld1REWyJfdGV4dCJdICAgID0gIuKckyI7IGJyZWFrOw0KICAgICAgZGVmYXVsdDogICBuZXdURFsiX3RleHQiXSAgICA9ICItIjsgYnJlYWs7DQogICAgfQ0KICAgIGNyZWF0ZU5ld1REKG5ld1RELCB0cik7DQoNCiAgICAvLyBDcmVhdGUgWE1MVFYgYWNjZXNzDQogICAgdmFyIG5ld1REID0gbmV3IE9iamVjdCgpOw0KICAgIG5ld1REWyJfZWxlbWVudCJdID0gIlAiOw0KICAgIHN3aXRjaChpdGVtWyJhdXRoZW50aWNhdGlvbi54bWwiXSl7DQogICAgICBjYXNlIHRydWU6IG5ld1REWyJfdGV4dCJdICAgID0gIuKckyI7IGJyZWFrOw0KICAgICAgZGVmYXVsdDogICBuZXdURFsiX3RleHQiXSAgICA9ICItIjsgYnJlYWs7DQogICAgfQ0KICAgIGNyZWF0ZU5ld1REKG5ld1RELCB0cik7DQoNCiAgICAvLyBDcmVhdGUgQVBJIGFjY2Vzcw0KICAgIHZhciBuZXdURCA9IG5ldyBPYmplY3QoKTsNCiAgICBuZXdURFsiX2VsZW1lbnQiXSA9ICJQIjsNCg0KICAgIHN3aXRjaChpdGVtWyJhdXRoZW50aWNhdGlvbi5hcGkiXSl7DQogICAgICBjYXNlIHRydWU6IG5ld1REWyJfdGV4dCJdICAgID0gIuKckyI7IGJyZWFrOw0KICAgICAgZGVmYXVsdDogICBuZXdURFsiX3RleHQiXSAgICA9ICItIjsgYnJlYWs7DQogICAgfQ0KICAgIGNyZWF0ZU5ld1REKG5ld1RELCB0cik7DQoNCiAgfQ0KDQogIC8vIHVzYWdlIEluZm8gIA0KICB2YXIgZGl2ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNldHRpbmdzIik7DQogIHN3aXRjaChtZW51W2FjdGl2ZU1lbnUuaWRdLmhhc093blByb3BlcnR5KCJfdXNhZ2UiKSkgew0KICAgIGNhc2UgdHJ1ZTogDQogICAgICB2YXIgdXNhZ2VJdGVtID0gbmV3IE9iamVjdCgpOw0KICAgICAgdXNhZ2VJdGVtWyJfZWxlbWVudCJdID0gIlBSRSINCiAgICAgIHVzYWdlSXRlbVsiX3RleHQiXSAgICA9IG1lbnVbYWN0aXZlTWVudS5pZF1bIl91c2FnZSJdOw0KDQogICAgICB2YXIgbmV3SFIgPSBuZXcgT2JqZWN0KCk7DQogICAgICBuZXdIUlsiX2VsZW1lbnQiXSA9ICJIUiINCiAgICAgIGRpdi5hcHBlbmRDaGlsZChjcmVhdGVFbGVtZW50KG5ld0hSKSk7DQogICAgICBkaXYuYXBwZW5kQ2hpbGQoY3JlYXRlRWxlbWVudCh1c2FnZUl0ZW0pKTsNCiAgfQ0KDQogIHNvcnRUYWJsZSgwKTsNCn0NCg0KZnVuY3Rpb24gdXNlckRldGFpbCh1c2VySUQpIHsNCiAgc2hvd1BvcFVwRWxlbWVudCgndXNlci1kZXRhaWwnKTsNCiAgc2V0VGltZW91dChmdW5jdGlvbigpeyANCiAgICBzaG93RWxlbWVudCgicG9wdXAiLCB0cnVlKTsNCiAgfSwgMTApOw0KICB2YXIgZGVmYXVsdFVzZXI7DQoNCiAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNhdmVVc2VyRGV0YWlsIikuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IHNhdmVVc2VyRGV0YWlsKCInICsgdXNlcklEICsgJyIsIGZhbHNlKScpOw0KICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZGVsZXRlVXNlckRldGFpbCIpLnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBzYXZlVXNlckRldGFpbCgiJyArIHVzZXJJRCArICciLCB0cnVlKScpOw0KDQogIHZhciBkYXRhID0gbmV3IE9iamVjdCgpOw0KICANCiAgc3dpdGNoKHVzZXJJRCkgew0KICAgIGNhc2UgMDogICAvLyBOZXcgVXNlcg0KICAgICAgZGF0YVsidXNlcm5hbWUiXSA9ICIiOw0KICAgICAgZGF0YVsiYXV0aGVudGljYXRpb24ud2ViIl0gPSBmYWxzZTsNCiAgICAgIGRhdGFbImF1dGhlbnRpY2F0aW9uLnBtcyJdID0gdHJ1ZTsNCiAgICAgIGRhdGFbImF1dGhlbnRpY2F0aW9uLnhtbCJdID0gdHJ1ZTsNCiAgICAgIGRhdGFbImF1dGhlbnRpY2F0aW9uLm0zdSJdID0gZmFsc2U7DQogICAgICBkYXRhWyJhdXRoZW50aWNhdGlvbi5hcGkiXSA9IGZhbHNlOw0KICAgICAgZGF0YVsiZGVmYXVsdFVzZXIiXSAgICAgICAgPSBmYWxzZTsNCiAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKXsgDQogICAgICAgIHNob3dFbGVtZW50KCJkZWxldGVVc2VyRGV0YWlsIiwgZmFsc2UpDQogICAgICB9LCAxKTsNCg0KICAgICAgYnJlYWs7IA0KICAgIA0KICAgIGRlZmF1bHQ6IA0KICAgICAgZGF0YSA9IHVzZXJzW3VzZXJJRF1bImRhdGEiXTsgDQogICAgICBzaG93RWxlbWVudCgiZGVsZXRlVXNlckRldGFpbCIsIHRydWUpICAgDQogICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZGVsZXRlVXNlckRldGFpbCIpLmNsYXNzTmFtZSA9ICJkZWxldGUiOw0KICAgDQogICAgICBicmVhaw0KICB9DQogIA0KDQogIHZhciB1c2VybmFtZSA9IGRhdGFbInVzZXJuYW1lIl07DQogIGRhdGFbInBhc3N3b3JkIl0gPSAiIjsNCiAgZGF0YVsiY29uZmlybSJdID0gIiI7DQoNCiAgdmFyIGtleXMgPSBnZXRPYmpLZXlzKGRhdGEpOw0KICBkZWZhdWx0VXNlciA9IGRhdGFbImRlZmF1bHRVc2VyIl07DQogIGlmIChkYXRhLmhhc093blByb3BlcnR5KCJkZWZhdWx0VXNlciIpKSB7DQogICAgZGVmYXVsdFVzZXIgPSBKU09OLnBhcnNlKGRhdGFbImRlZmF1bHRVc2VyIl0pOw0KICB9DQoNCiAgZm9yICh2YXIgaSA9IDA7IGkgPCBrZXlzLmxlbmd0aDsgaSsrKSB7DQoNCiAgICBpZihkb2N1bWVudC5nZXRFbGVtZW50QnlJZChrZXlzW2ldKSl7DQogICAgICB2YXIgdGQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChrZXlzW2ldKQ0KICAgIH0gZWxzZSB7DQogICAgICB2YXIgdGQgPSB1bmRlZmluZWQ7DQogICAgfQ0KDQogICAgdmFyIG5ld0l0ZW0gPSBuZXcgT2JqZWN0KCk7DQoNCiAgICBuZXdJdGVtWyJfZWxlbWVudCJdID0gIklOUFVUIjsNCiAgICANCiAgICBuZXdJdGVtWyJ2YWx1ZSJdICAgID0gZGF0YVtrZXlzW2ldXTsNCiAgICBuZXdJdGVtWyJuYW1lIl0gICAgID0ga2V5c1tpXTsNCg0KDQoNCg0KDQogICAgc3dpdGNoKGtleXNbaV0uaW5kZXhPZigiYXV0aGVudGljYXRpb24iKSkgew0KICAgICAgY2FzZSAtMTogDQogICAgICAgIGlmIChrZXlzW2ldID09ICJwYXNzd29yZCIgfHwga2V5c1tpXSA9PSAiY29uZmlybSIpIHsNCiAgICAgICAgICBuZXdJdGVtWyJ0eXBlIl0gICAgID0gInBhc3N3b3JkIjsNCiAgICAgICAgfSBlbHNlIHsNCiAgICAgICAgICBuZXdJdGVtWyJ0eXBlIl0gICAgID0gInRleHQiOw0KICAgICAgICB9DQogICAgICAgIGJyZWFrOw0KDQogICAgICBkZWZhdWx0OiANCiAgICAgICAgbmV3SXRlbVsidHlwZSJdICAgICA9ICJjaGVja2JveCI7DQogICAgICAgIA0KICAgICAgICBpZiAoa2V5c1tpXSA9PSAiYXV0aGVudGljYXRpb24ud2ViIiAmJiBkZWZhdWx0VXNlciA9PSB0cnVlKSB7DQogICAgICAgICAgbmV3SXRlbVsib25jbGljayJdID0gInJldHVybiBmYWxzZSI7IA0KICAgICAgICB9DQogICAgICAgIA0KICAgICAgICBpZiAoZGF0YVtrZXlzW2ldXSA9PSB0cnVlKSB7ICAgICAgICAgIA0KICAgICAgICAgIG5ld0l0ZW1bImNoZWNrZWQiXSAgPSBkYXRhW2tleXNbaV1dOyAgDQogICAgICAgIH0NCiAgICAgICAgDQogICAgICAgIGJyZWFrOw0KICAgIH0NCg0KICAgIHN3aXRjaChrZXlzW2ldKSB7DQogICAgICBjYXNlICJkZWZhdWx0VXNlciI6IA0KICAgICAgICAvL2lmIChkYXRhW2tleXNbaV1dID09IHRydWUpIHsNCiAgICAgICAgbmV3SXRlbVsidHlwZSJdICAgICA9ICJoaWRkZW4iOw0KICAgICAgICAvL30NCiAgICB9DQoNCg0KICAgIGlmICh0ZCAhPSB1bmRlZmluZWQpIHsNCiAgICAgIHRkLmlubmVySFRNTCA9ICIiOw0KICAgICAgdmFyIGVsZW1lbnQgPSBjcmVhdGVOZXdFbGVtZW50KG5ld0l0ZW0pDQogICAgICAvL2NvbnNvbGUubG9nKGVsZW1lbnQpOw0KICAgICAgdGQuYXBwZW5kQ2hpbGQoZWxlbWVudCk7DQogICAgfQ0KDQoNCiAgfQ0KDQoNCiAgaWYgKGRlZmF1bHRVc2VyID09IHRydWUpIHsNCiAgICBzaG93RWxlbWVudCgiZGVsZXRlVXNlckRldGFpbCIsIGZhbHNlKQ0KICB9IGVsc2Ugew0KICAgIHNob3dFbGVtZW50KCJkZWxldGVVc2VyRGV0YWlsIiwgdHJ1ZSkNCiAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZGVsZXRlVXNlckRldGFpbCIpLmNsYXNzTmFtZSA9ICJkZWxldGUiOw0KICB9DQoNCn0NCg0KZnVuY3Rpb24gc2F2ZVVzZXJEZXRhaWwodXNlcklELCBkZWxldGVVc2VyKSB7DQoNCiAgdmFyIGlucHV0cyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ1c2VyLWRldGFpbC10YWJsZSIpLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJJTlBVVCIpOw0KDQogIHZhciBuZXdVc2VyRGF0YSA9IG5ldyBPYmplY3QoKTsNCiAgZm9yICh2YXIgaSA9IDA7IGkgPCBpbnB1dHMubGVuZ3RoOyBpKyspIHsNCiAgICBzd2l0Y2goaW5wdXRzW2ldLnR5cGUpIHsNCiAgICAgIGNhc2UgImNoZWNrYm94IjogIG5ld1VzZXJEYXRhW2lucHV0c1tpXS5uYW1lXSA9IGlucHV0c1tpXS5jaGVja2VkOyBicmVhazsNCiAgICAgIGRlZmF1bHQ6ICAgICAgICAgIG5ld1VzZXJEYXRhW2lucHV0c1tpXS5uYW1lXSA9IGlucHV0c1tpXS52YWx1ZTsgYnJlYWs7DQogICAgfQ0KICAgIA0KICAgIGlmIChpbnB1dHNbInVzZXJuYW1lIl0udmFsdWUubGVuZ3RoID09IDApIHsNCiAgICAgIGlucHV0c1sidXNlcm5hbWUiXS5zdHlsZS5ib3JkZXIgPSAic29saWQgMXB4IHJlZCI7DQogICAgICByZXR1cm47DQogICAgfQ0KDQogICAgc3dpdGNoKHVzZXJJRCkgew0KICAgICAgY2FzZSAiMCI6IA0KICAgICAgICBpZiAoaW5wdXRzWyJwYXNzd29yZCJdLnZhbHVlLmxlbmd0aCA9PSAwKSB7DQogICAgICAgICAgY29uc29sZS5sb2coaW5wdXRzWyJwYXNzd29yZCJdLnZhbHVlLmxlbmd0aCk7DQogICAgICAgICAgaW5wdXRzWyJwYXNzd29yZCJdLnN0eWxlLmJvcmRlciA9ICJzb2xpZCAxcHggcmVkIjsNCiAgICAgICAgICByZXR1cm4NCiAgICAgICAgfQ0KICAgICAgICBicmVhazsNCiAgICB9DQoNCiAgICBpZiAoaW5wdXRzWyJwYXNzd29yZCJdLnZhbHVlLmxlbmd0aCA+IDApIHsNCiAgICAgIGlmIChpbnB1dHNbInBhc3N3b3JkIl0udmFsdWUgIT0gaW5wdXRzWyJjb25maXJtIl0udmFsdWUpIHsNCiAgICAgICAgaW5wdXRzWyJwYXNzd29yZCJdLnN0eWxlLmJvcmRlciA9ICJzb2xpZCAxcHggcmVkIjsNCiAgICAgICAgaW5wdXRzWyJjb25maXJtIl0uc3R5bGUuYm9yZGVyID0gInNvbGlkIDFweCByZWQiOw0KICAgICAgICByZXR1cm47DQogICAgICB9DQogICAgfQ0KICAgIA0KICB9DQoNCiAgdmFyIGRhdGEgPSBuZXcgT2JqZWN0KCk7DQogIA0KICBzd2l0Y2godXNlcklEKSB7DQogICAgY2FzZSAiMCI6DQogICAgICAvL2RhdGEgPSBuZXdVc2VyRGF0YQ0KICAgICAgZGF0YVsidXNlckRhdGEiXSAgPSBuZXdVc2VyRGF0YQ0KICAgICAgZGF0YVsiY21kIl0gICAgICAgPSAic2F2ZU5ld1VzZXIiOyBicmVhazsNCiAgICANCiAgICBkZWZhdWx0OiAgDQogICAgICB2YXIgdGhpc1VzZXIgICAgICA9IG5ldyBPYmplY3QoKTsNCiAgICAgIA0KICAgICAgaWYgKGRlbGV0ZVVzZXIgPT0gdHJ1ZSkgew0KICAgICAgICBpZiAoY29uZmlybSgnRGVsZXRlIHRoZSBzZWxlY3RlZCB1c2VyPycpKSB7DQogICAgICAgICAgZGF0YVsiZGVsZXRlVXNlciJdID0gdHJ1ZTsNCiAgICAgICAgfSBlbHNlIHsNCiAgICAgICAgICBzaG93RWxlbWVudCgicG9wdXAiLCBmYWxzZSk7DQogICAgICAgICAgcmV0dXJuDQogICAgICAgIH0NCiAgICAgIH0NCiAgICAgIA0KICAgICAgdGhpc1VzZXJbdXNlcklEXSAgPSBuZXdVc2VyRGF0YTsNCg0KICAgICAgZGF0YVsidXNlckRhdGEiXSA9IHRoaXNVc2VyOw0KICAgICAgZGF0YVsiY21kIl0gPSAic2F2ZVVzZXJEYXRhIjsgYnJlYWs7DQogIH0NCiAgDQogIHhUZVZlKGRhdGEpOw0KICAvL2NyZWF0ZVVzZXJzVGFibGUoKQ0KICBzaG93RWxlbWVudCgicG9wdXAiLCBmYWxzZSk7DQp9DQoNCg0K" - webUI["html/img/x_black.png"] = "iVBORw0KGgoAAAANSUhEUgAAAQAAAAEACAIAAADTED8xAAAAAXNSR0IArs4c6QAAAAlwSFlzAAAWJQAAFiUBSVIk8AAAA6ppVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IlhNUCBDb3JlIDUuNC4wIj4KICAgPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIgogICAgICAgICAgICB4bWxuczp0aWZmPSJodHRwOi8vbnMuYWRvYmUuY29tL3RpZmYvMS4wLyIKICAgICAgICAgICAgeG1sbnM6ZXhpZj0iaHR0cDovL25zLmFkb2JlLmNvbS9leGlmLzEuMC8iPgogICAgICAgICA8eG1wOk1vZGlmeURhdGU+MjAxOC0xMS0xNVQxNzoxMTozNzwveG1wOk1vZGlmeURhdGU+CiAgICAgICAgIDx4bXA6Q3JlYXRvclRvb2w+UGl4ZWxtYXRvciAzLjM8L3htcDpDcmVhdG9yVG9vbD4KICAgICAgICAgPHRpZmY6T3JpZW50YXRpb24+MTwvdGlmZjpPcmllbnRhdGlvbj4KICAgICAgICAgPHRpZmY6Q29tcHJlc3Npb24+NTwvdGlmZjpDb21wcmVzc2lvbj4KICAgICAgICAgPHRpZmY6UmVzb2x1dGlvblVuaXQ+MjwvdGlmZjpSZXNvbHV0aW9uVW5pdD4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+MTQ0PC90aWZmOllSZXNvbHV0aW9uPgogICAgICAgICA8dGlmZjpYUmVzb2x1dGlvbj4xNDQ8L3RpZmY6WFJlc29sdXRpb24+CiAgICAgICAgIDxleGlmOlBpeGVsWERpbWVuc2lvbj4yNTY8L2V4aWY6UGl4ZWxYRGltZW5zaW9uPgogICAgICAgICA8ZXhpZjpDb2xvclNwYWNlPjE8L2V4aWY6Q29sb3JTcGFj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a1jSekqmtA1rrGsx7JYkDuvrVahwRdgVXD1xcwri6mmYRULLe4CuPc2wfrGo4U+7Y/3S9ZHD+GcflbnfiCJbr77whoaS6ucCXVkVkuLKgORQwNJFygRDJnqwb9i3b0HxkqjT0L4erGy5Rh1IRnhXrpaZq6GZCyRLf6cvhoTY6V9koX8bGdEUlyWVm6W5q1GuostihNm97L/dpm5k+QHCbDna0zRzgSS/lRHWL7iHPOa+9YsYkpttoCwSMcQRkrWioz5Qsc7aFJ1coHY3QyJ9jSjfJEOCfTUpWzehVBnUbqCJOCHEkB1xsmXDwq9DnObUz9q4QOUqYPaPKFzUKcVj6Eeu461q67Vhlqy6+Xo11G52JhRZNNW1FRbN00FWPVwguSa+8YEZ1i+D9vQjelm/iHTwAB69Vwd7CkuGLOcWtxfR4o+dHhNg4DNmhDvJ8M6ehknvhTXMDp8kQQgT33W4z+i7k/2gho+Jvrp1NTVwgW5opV76yl8F/cufe9CyJiRllZ6lYCHMXWPAXmNp9CRb8Pi30r658sHtCSCPsZNXQDYdMaLIek/No13V/rBfGMFSCXnsKNo1dDelnKt/dyUH8uvjjLH+zyfpbv1iUl/NVBt4mVJy58HoDyFZLt0rrj4G7TfIjARvMjy7d6JnR/UXS/+yeD5kLYkETxpRZL2jZJVzb7cl9yZA/cYqh4z+20AEzOj+BKxbZYRFqXQssvLs5gQzpBUp616rNsX55WdXBHbPBRrwlBm5v2VYJo1FsjmOtQg8ezo+fd8Ve4qy04HPRlmR1UiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABGwg8D8UnyVeZFwGAQAAAABJRU5ErkJggg==" webUI["html/css/screen.css"] = "bmF2IGltZyB7DQogIGRpc3BsYXk6IGJsb2NrOw0KICBtYXgtaGVpZ2h0OiAyMHB4Ow0KICBtYXgtd2lkdGg6IDIwcHg7DQogIGZsb2F0OiBsZWZ0Ow0KfQ0KDQpuYXYgcCB7DQogIHRleHQtYWxpZ246IGxlZnQ7DQogIHBhZGRpbmc6IDBweCAzMHB4Ow0KfQ0KDQojbGF5b3V0IHsNCiAgZGlzcGxheTogYmxvY2s7DQogIGhlaWdodDogMTAwJTsNCn0NCg0KDQoubGF5b3V0LWxlZnQgew0KICBkaXNwbGF5OiBibG9jazsNCiAgbWluLXdpZHRoOiAxNTBweDsNCiAgbWF4LXdpZHRoOiAyMCU7DQogIGJhY2tncm91bmQtY29sb3I6ICMxMTE7DQogIGhlaWdodDogaW5oZXJpdDsNCiAgZmxvYXQ6IGxlZnQ7DQp9DQoNCi5sYXlvdXQtcmlnaHQgew0KICBkaXNwbGF5OiBibG9jazsNCiAgYmFja2dyb3VuZC1jb2xvcjogIzQ0NDsNCn0NCg0KI21lbnUtd3JhcHBlciB7DQogIGhlaWdodDogMTAwJTsNCn0NCg0KDQojbG9nbyB7DQogIGRpc3BsYXk6IGJsb2NrOw0KICBtaW4td2lkdGg6IDE4MHB4Ow0KICB3aWR0aDogMTAwJTsNCiAgaGVpZ2h0OiAxMDBweDsNCiAgYmFja2dyb3VuZDogdXJsKCIuLi9pbWcvbG9nb193XzYwMHgyMDAucG5nIik7DQogIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7DQogIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjsgDQogIGJhY2tncm91bmQtc2l6ZTogMTAwJTsNCn0NCg0KDQojcGFnZSB7DQogIG1heC13aWR0aDogOTUwcHg7DQogIG1hcmdpbjogYXV0bzsNCiAgYmFja2dyb3VuZC1jb2xvcjogIzQ0NDsNCg0KICAvKg0KICBoZWlnaHQ6IC13ZWJraXQtY2FsYygxMDAlIC0gMTMwcHgpOw0KICBoZWlnaHQ6IC1tb3otY2FsYygxMDAlIC0gMTMwcHgpOw0KICBoZWlnaHQ6IGNhbGMoMTAwJSAtIDEzMHB4KTsNCiAgKi8NCiAgDQogIG1pbi1oZWlnaHQ6IC13ZWJraXQtY2FsYygxMDAlIC0gMTIwcHgpOw0KICBtaW4taGVpZ2h0OiAtbW96LWNhbGMoMTAwJSAtIDEyMHB4KTsNCiAgbWluLWhlaWdodDogY2FsYygxMDAlIC0gMTIwcHgpOw0KICANCiAgDQogIGJveC1zaGFkb3c6IDBweCA1cHggNXB4ICMyMjI7DQogIA0KfQ0KDQojdWlTZXR0aW5nIHsNCiAgZmxvYXQ6IHJpZ2h0Ow0KICBtYXJnaW4tcmlnaHQ6IDI1cHg7DQp9DQoNCiNib3ggaW5wdXRbdHlwZT10ZXh0XSwgI2JveCBpbnB1dFt0eXBlPXBhc3N3b3JkXSB7DQogIHdpZHRoOiAtd2Via2l0LWNhbGMoMTAwJSAtIDIwcHgpOw0KICB3aWR0aDogLW1vei1jYWxjKDEwMCUgLSAyMHB4KTsNCiAgd2lkdGg6IGNhbGMoMTAwJSAtIDIwcHgpOw0KfQ0KDQojYm94IGlucHV0W3R5cGU9c3VibWl0XXsNCiAgbWFyZ2luOiA1MHB4IGF1dG87DQp9DQoNCiNzZXR0aW5ncyB7DQogIGRpc3BsYXk6IGJsb2NrOw0KICBwYWRkaW5nOiAxMHB4IDEwcHg7DQp9DQoNCiNzZXR0aW5ncyBoNSB7DQogIG1hcmdpbjogNTBweCAwcHggMTBweCAwcHg7DQp9DQoNCiNjb250ZW50LWludGVyYWN0aW9uIC5zZWFyY2ggew0KICB3aWR0aDogMjAwcHg7DQogIGJvcmRlcjogMXB4IHNvbGlkICMwMDA7DQogIHBhZGRpbmc6IDlweDsNCiAgYmFja2dyb3VuZC1jb2xvcjogIzMzMzsNCiAgbWFyZ2luOiAxMHB4Ow0KICBmbG9hdDogcmlnaHQ7DQogIGJvcmRlci1yYWRpdXM6IDNweDsNCg0KfQ0KDQojbXlTdHJlYW1zIHsNCiAgcG9zaXRpb246IGZpeGVkOw0KICBib3R0b206IDBweDsNCiAgYmFja2dyb3VuZC1jb2xvcjogIzExMTsNCiAgd2lkdGg6IDEwMCU7DQogIG1heC13aWR0aDogOTUwcHg7DQoNCiAgLyoNCiAgbWF4LWhlaWdodDogMTAwcHg7DQogICovDQogIG1hcmdpbi1ib3R0b206IDBweDsNCn0NCg0KI215U3RyZWFtcyBpbWcgew0KICB3aWR0aDogNCU7DQogIHBhZGRpbmc6IDJweCA1cHg7DQogIGN1cnNvcjogcG9pbnRlcjsNCiAgZmxvYXQ6IHJpZ2h0Ow0KfQ0KDQojc2V0dGluZ3MtZm9vdGVyIHsNCg0KfQ0KDQoNCi8qIFdpemFyZCovDQojYm94IHsNCiAgYmFja2dyb3VuZC1jb2xvcjogIzQ0NDsNCiAgbWluLWhlaWdodDogNDAwcHg7DQogIA0KICBkaXNwbGF5OiBmbGV4Ow0KICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOw0KICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47DQp9DQoNCiNib3ggcHsNCiAgcGFkZGluZzogMTBweCAwcHg7DQp9DQoNCiNib3gtZm9vdGVyIHsNCiAgbWFyZ2luLXRvcDogYXV0bzsNCn0NCg0KI2JveC1mb290ZXIgew0KICBtYXJnaW46IGF1dG87DQogIHBhZGRpbmc6IDEwcHg7DQp9DQoNCiNoZWFkbGluZSB7DQogIGJhY2tncm91bmQtY29sb3I6ICMyMjI7DQogIGJvcmRlci1ib3R0b206IHNvbGlkIDJweCAjMjIyOw0KICB0cmFuc2l0aW9uOiBhbGwgMC41czsNCiAgcGFkZGluZzogMTBweCAwcHg7DQogIGRpc3BsYXk6IGJsb2NrOw0KfQ0KDQojY29udGVudCB7DQogIGRpc3BsYXk6IGJsb2NrOw0KICBvdmVyZmxvdzogYXV0bzsNCiAgcGFkZGluZzogMTBweDsNCn0NCg0KLyogLS0tICovDQoNCg0KI2NsaWVudEluZm8sICNhY3RpdmVTdHJlYW1zLCAjaW5hY3RpdmVTdHJlYW1zIHsNCiAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZTsNCiAgZGlzcGxheTogYmxvY2s7DQogIGZvbnQtc2l6ZTogOXB4Ow0KICBiYWNrZ3JvdW5kLWNvbG9yOiAjMTExOw0KICBjb2xvcjogIzAwRTZGRjsNCiAgYm9yZGVyLWJvdHRvbTogc29saWQgMHB4OzsNCiAgcGFkZGluZzogMHB4Ow0KICBsZXR0ZXItc3BhY2luZzogMXB4Ow0KICBvdmVyZmxvdy14OiBoaWRkZW47DQogIGJvcmRlci1zcGFjaW5nOiA0cHggNHB4Ow0KICBib3JkZXItYm90dG9tOiBzb2xpZCAxcHggIzQ0NDsNCn0NCg0KI215U3RyZWFtc0JveCB7DQogIHBvc2l0aW9uOiByZWxhdGl2ZTsNCiAgcGFkZGluZzogMHB4Ow0KICAvKmhlaWdodDogMTAwcHg7Ki8NCiAgbWF4LWhlaWdodDogMTUwcHg7DQogIGJhY2tncm91bmQtY29sb3I6ICMxMTE7DQogIGNvbG9yOiB3aGl0ZTsNCiAgZGlzcGxheTpmbGV4Ow0KICBqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyOw0KICBhbGlnbi1pdGVtczpjZW50ZXI7DQp9DQoNCiNvcGVuU3RyZWFtcyB7DQogIHdpZHRoOiAyMHB4Ow0KICBoZWlnaHQ6IDIwcHg7DQogIGN1cnNvcjogcG9pbnRlcjsNCiAgZmxvYXQ6IHJpZ2h0Ow0KICBwb3NpdGlvbjogYWJzb2x1dGU7DQogIHJpZ2h0OiAwcHg7DQogIGJvdHRvbTogMHB4Ow0KICBiYWNrZ3JvdW5kOiB1cmwoIi4uL2ltZy90b3VjaC5wbmciKTsNCiAgYmFja2dyb3VuZC1jb2xvcjogIzExMTsNCiAgDQogIGJhY2tncm91bmQtcG9zaXRpb246IGJvdHRvbSByaWdodDsgIA0KfQ0KDQojYWxsU3RyZWFtcyB7DQogIHdpZHRoOiAxMDAlOw0KICBoZWlnaHQ6IDEwMCU7DQogIHBhZGRpbmc6IDJweDsgICAgIA0KfQ0KDQojYWN0aXZlU3RyZWFtcywgI2luYWN0aXZlU3RyZWFtcyB7DQogIG92ZXJmbG93LXk6IHNjcm9sbDsNCiAgd2lkdGg6IDUwJTsNCiAgbWF4LWhlaWdodDogMTAwcHg7DQogIGZsb2F0OiBsZWZ0Ow0KfQ0KDQojYWN0aXZlU3RyZWFtcyAudGRLZXksICNpbmFjdGl2ZVN0cmVhbXMgLnRkS2V5IHsNCiAgd2lkdGg6IDc1cHg7DQp9DQoNCg0KDQoNCiNpbmFjdGl2ZVN0cmVhbXMgLnRkS2V5IHsNCiAgY29sb3I6IHJlZDsNCn0NCg0KI2NsaWVudEluZm8gLnRkVmFsLCAjbG9nSW5mbyAudGRWYWwsICNhY3RpdmVTdHJlYW1zIC50ZFZhbCwgI2luYWN0aXZlU3RyZWFtcyAudGRWYWwsICNtYXBwaW5nSW5mbyAudGRWYWx7DQogIGNvbG9yOiAjYWFhOw0KICB3aGl0ZS1zcGFjZTogaW5oZXJpdDsNCn0NCg0KI2JveC13cmFwcGVyIHsNCiAgZGlzcGxheTogaW5saW5lLWJsb2NrOw0KICB3aWR0aDogMTAwJTsNCiAgDQogIG92ZXJmbG93LXk6IHNjcm9sbDsNCn0NCg0KI2NvbnRlbnRfdGFibGUsICNtYXBwaW5nLWRldGFpbC10YWJsZSwgI2NvbnRlbnRfdGFibGUgew0KICBkaXNwbGF5OiB0YWJsZTsNCiAgDQogIGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7DQogIG92ZXJmbG93LXk6IHNjcm9sbDsNCiAgd2lkdGg6IDEwMCU7DQp9DQoNCg0KI2NvbnRlbnRfdGFibGUgLmNvbnRlbnRfdGFibGVfaGVhZGVyIHsNCiAgYmFja2dyb3VuZC1jb2xvcjogIzMzMzsNCiAgaGVpZ2h0OiA1MHB4Ow0KICBib3JkZXItYm90dG9tOiBzb2xpZCAxcHggIzExMTsNCiAgYm9yZGVyLWxlZnQ6IHNvbGlkIDNweCAjMzMzOw0KICBjdXJzb3I6IGF1dG87DQoNCn0NCg0KDQp0Ym9keSB7DQogIHdpZHRoOiAxMDAlOw0KfQ0KDQoNCi50YWJsZUVsbGlwc2lzIHsNCiAgd2lkdGg6IDE1MHB4Ow0KICBvdmVyZmxvdzogaGlkZGVuOw0KICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsNCiAgd2hpdGUtc3BhY2U6IG5vd3JhcDsNCn0NCg0KI2NvbnRlbnRfdGFibGUgaW1nIHsNCiAgZGlzcGxheTogYmxvY2s7DQogIG1heC1oZWlnaHQ6IDI4cHg7DQogIG1hcmdpbi1sZWZ0OiBhdXRvOw0KICBtYXJnaW4tcmlnaHQ6IGF1dG87DQogIG1heC13aWR0aDogMzBweDsNCn0NCg0KI2NvbnRlbnRfdGFibGUgdHJ7DQogIGJvcmRlci1sZWZ0OiBzb2xpZCAzcHggNDQ0Ow0KICBib3JkZXItYm90dG9tOiBzb2xpZCAxcHggIzMzMzsNCiAgY3Vyc29yOiBwb2ludGVyOw0KfQ0KDQojY29udGVudF90YWJsZSB0cjpob3ZlciB7DQogIGJhY2tncm91bmQtY29sb3I6ICMzMzM7DQp9DQoNCiNjb250ZW50X3RhYmxlIHRkIHsNCg0KICBwYWRkaW5nOiAwcHggMnB4Ow0KfQ0KDQojY29udGVudF90YWJsZSBpbnB1dFt0eXBlPXRleHRdew0KICB3aWR0aDogODAlOw0KICBtaW4td2lkdGg6IDM1cHg7DQogIG1heC13aWR0aDogNjBweDsNCiAgYm9yZGVyOiAwcHg7DQogIGJhY2tncm91bmQtY29sb3I6ICMzMzM7DQogIG1hcmdpbi1sZWZ0OiA1cHg7DQogIHRleHQtYWxpZ246IGxlZnQ7DQp9DQoNCiNjb250ZW50X3RhYmxlIGlucHV0W3R5cGU9Y2hlY2tib3hdew0KICBtYXgtd2lkdGg6IDI1cHg7DQogIG1hcmdpbjogYXV0bzsNCn0NCg0KDQouc2hvd0J1bGsgew0KICBkaXNwbGF5OiBibG9jazsNCn0NCg0KLmhpZGVCdWxrIHsNCiAgZGlzcGxheTogbm9uZTsNCn0NCg0KLm5vQnVsayB7DQoNCn0NCg0KI2NvbnRlbnRfdGFibGUgdHIuYWN0aXZlRVBHew0KICBib3JkZXItbGVmdDogc29saWQgM3B4IGxhd25ncmVlbjsNCn0NCg0KI2NvbnRlbnRfdGFibGUgdHIubm90QWN0aXZlRVBHew0KICBib3JkZXItbGVmdDogc29saWQgM3B4IHJlZDsNCn0NCg0KDQojbG9nU2NyZWVuIHB7DQogIHdoaXRlLXNwYWNlOiBwcmU7DQogIGZvbnQtc2l6ZTogMTBweDsNCiAgLyoNCiAgbGluZS1oZWlnaHQ6IDEuNmVtOw0KICBmb250LWZhbWlseTogIkFyaWFsIiwgc2Fucy1zZXJpZjsNCiAgKi8NCiAgbGV0dGVyLXNwYWNpbmc6IDFweDsNCiAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZTsgDQogIGZvbnQtc2l6ZTogMTJweDsgDQogIGZvbnQtc3R5bGU6IG5vcm1hbDsgDQogIGZvbnQtdmFyaWFudDogbm9ybWFsOyANCiAgbGluZS1oZWlnaHQ6IDEuNmVtOyANCn0NCg0KI3BvcHVwIHsNCiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjQpOw0KICBwb3NpdGlvbjogZml4ZWQ7DQogIGxlZnQ6IDBweDsNCiAgd2lkdGg6IDEwMCU7DQogIHotaW5kZXg6IDEwMDsNCiAgaGVpZ2h0OiAxMDAlOw0KfQ0KDQojbWFwcGluZy1kZXRhaWwsICN1c2VyLWRldGFpbCwgI2ZpbGUtZGV0YWlsLCAjcG9wdXAtY3VzdG9tIHsNCiAgYm94LXNoYWRvdzogMHB4IDVweCA0MHB4ICMwMDA7DQogIG1hcmdpbi10b3A6IDIwcHg7DQogIG1hcmdpbi1sZWZ0OiBhdXRvOw0KICBtYXJnaW4tcmlnaHQ6IGF1dG87DQogIA0KICBtYXgtd2lkdGg6IDYwMHB4Ow0KICBiYWNrZ3JvdW5kLWNvbG9yOiAjMjIyOw0KICBwYWRkaW5nOiAxMHB4Ow0KICBvdmVyZmxvdzphdXRvOw0KfQ0KDQojcG9wdXAtY3VzdG9tIGgzIHsNCiAgdGV4dC1hbGlnbjogY2VudGVyOw0KfQ0KDQojZmlsZS1kZXRhaWwgaW5wdXRbdHlwZT10ZXh0XSB7DQogIHdpZHRoOiAtd2Via2l0LWNhbGMoMTAwJSAtIDIwcHgpOw0KICB3aWR0aDogLW1vei1jYWxjKDEwMCUgLSAyMHB4KTsNCiAgd2lkdGg6IGNhbGMoMTAwJSAtIDIwcHgpOw0KfQ0KDQojbWFwcGluZy1kZXRhaWwgaW1nIHsNCiAgZGlzcGxheTogYmxvY2s7DQogIG1heC1oZWlnaHQ6IDMwcHg7DQogIG1hcmdpbi1ib3R0b206IDIwcHg7DQogIG1hcmdpbi1sZWZ0OiBhdXRvOw0KICBtYXJnaW4tcmlnaHQ6IGF1dG87DQp9DQoNCiNwb3B1cC1jdXN0b20gaW5wdXRbdHlwZT10ZXh0XSwgI3BvcHVwLWN1c3RvbSBpbnB1dFt0eXBlPXBhc3N3b3JkXSwgI21hcHBpbmctZGV0YWlsIGlucHV0W3R5cGU9dGV4dF0sICNjb250ZW50X3NldHRpbmdzIGlucHV0W3R5cGU9dGV4dF0sICNjb250ZW50X3NldHRpbmdzIGlucHV0W3R5cGU9cGFzc3dvcmRdew0KICBib3JkZXI6IHNvbGlkIDFweDsNCiAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDsNCiAgYmFja2dyb3VuZC1jb2xvcjogIzMzMzsNCiAgdGV4dC1hbGlnbjogbGVmdDsNCiAgd2lkdGg6IC13ZWJraXQtY2FsYygxMDAlIC0gMjBweCk7DQogIHdpZHRoOiAgICAtbW96LWNhbGMoMTAwJSAtIDIwcHgpOw0KICB3aWR0aDogICAgICAgICBjYWxjKDEwMCUgLSAyMHB4KTsNCn0NCg0KI3BvcHVwLWN1c3RvbSBpbnB1dFt0eXBlPXRleHRdLm5vdEF2YWlsYWJsZSB7DQogIGJvcmRlci1jb2xvcjogcmVkOw0KICBjb2xvcjogIzY2NjsNCiAgY3Vyc29yOiBub3QtYWxsb3dlZDsNCn0NCg0KI21hcHBpbmctZGV0YWlsLXRhYmxlLCAjdXNlci1kZXRhaWwtdGFibGUgew0KICBkaXNwbGF5OiBpbmxpbmUtdGFibGU7DQogIHdpZHRoOiAxMDAlOw0KfQ0KDQojcG9wdXAtY3VzdG9tIHRhYmxlLCAjY29udGVudF9zZXR0aW5ncyB0YWJsZSB7DQogIGRpc3BsYXk6IGlubGluZS10YWJsZTsNCiAgdGFibGUtbGF5b3V0OiBmaXhlZDsNCiAgd2lkdGg6IDEwMCU7DQp9DQoNCg0KI21hcHBpbmctZGV0YWlsLXRhYmxlIHRkLCAjdXNlci1kZXRhaWwtdGFibGUgdGQgew0KICBwYWRkaW5nOiAxMHB4IDBweDsNCg0KfQ0KDQojbWFwcGluZy1kZXRhaWwtdGFibGUgdGQubGVmdCwgI3VzZXItZGV0YWlsLXRhYmxlIHRkLmxlZnQsICNwb3B1cC1jdXN0b20gdGQubGVmdCB7DQogIHdpZHRoOiAzOCU7DQp9DQoNCi5pbnRlcmFjdGlvbiwgI2ludGVyYWN0aW9uIHsNCiAgbWFyZ2luLXRvcDogMjBweDsNCiAgZGlzcGxheTogaW5saW5lLWZsZXg7DQogIGZsb2F0OiByaWdodDsNCn0NCg0KLmludGVyYWN0aW9uIGlucHV0W3R5cGU9YnV0dG9uXSwgLmludGVyYWN0aW9uIGlucHV0W3R5cGU9c3VibWl0XSB7DQogIGJhY2tncm91bmQtY29sb3I6ICMwMDA7DQogIG1pbi13aWR0aDogMTAwcHg7DQogIG1hcmdpbjogMHB4IDEwcHg7DQogIHRleHQtYWxpZ246IGNlbnRlcjsNCn0NCg0KI25vdGlmaWNhdGlvbiB7DQogIGRpc3BsYXk6IGJsb2NrOw0KICBwb3NpdGlvbjogZml4ZWQ7DQogIHJpZ2h0OiAwcHg7DQogIGhlaWdodDogMTAwJTsNCiAgd2lkdGg6IDI1MHB4Ow0KICANCiAgYmFja2dyb3VuZC1jb2xvcjogIzIyMjsNCiAgYm94LXNoYWRvdzogMHB4IDBweCAyMHB4ICMwMDA7DQp9DQoNCiNub3RpZmljYXRpb24gaDUgew0KICBiYWNrZ3JvdW5kLWNvbG9yOiAjMTIxMjEyOw0KICBwYWRkaW5nOiA1cHggMTBweCA1cHggMTBweDsNCn0NCg0KI25vdGlmaWNhdGlvbiBwcmUgew0KICBwYWRkaW5nOiAwcHggMTBweCAwcHggMTBweDsNCn0NCg0KI25vdGlmaWNhdGlvbiBwIHsNCiAgZm9udC1zaXplOiAxMCBweDsNCiAgbWFyZ2luOiAwcHg7DQogIHBhZGRpbmc6IDBweCAxMHB4IDVweCAxMHB4Ow0KfQ0KDQojbm90aWZpY2F0aW9uIC5lbGVtZW50IHsNCiAgLypwYWRkaW5nOiAwcHggNXB4OyovDQogIG1hcmdpbjogNXB4IDVweDsNCiAgYm9yZGVyLXJhZGl1czogNXB4Ow0KICBiYWNrZ3JvdW5kLWNvbG9yOiAjMTgxODE4Ow0KICBib3JkZXItbGVmdDogMTBweCBzb2xpZCBncmVlbjsNCn0NCg0KDQpAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDYyMHB4KXsNCiAgYm9keSB7DQogICAgd2lkdGg6IDEwMCU7DQogICAgYmFja2dyb3VuZC1jb2xvcjogIzQ0NDsNCiAgfQ0KDQogIGgxIHsNCiAgICBmb250LXNpemU6IDI2cHg7DQogICAgbGV0dGVyLXNwYWNpbmc6IDNweDsNCiAgfQ0KDQogIG5hdiBwIHsNCiAgICBkaXNwbGF5OiBibG9jazsNCiAgfQ0KDQoNCg0KICAjaGVhZGVyX2NvbmZpZyB7DQogICAgZGlzcGxheTogYmxvY2s7DQogICAgaGVpZ2h0OiAxMDBweDsNCiAgICBiYWNrZ3JvdW5kOiB1cmwoIi4uL2ltZy9sb2dvX3dfNjAweDIwMC5wbmciKTsNCiAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0Ow0KICAgIA0KICAgIGJhY2tncm91bmQtc2l6ZTogMzAwcHggMTAwcHg7DQogIH0NCg0KICAjc2NyZWVuTG9nIHsNCiAgICBtYXJnaW4tbGVmdDogMzAwcHg7DQoNCiAgICB0cmFuc2l0aW9uOiBub25lOw0KICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50Ow0KICAgIGJvcmRlci1ib3R0b206IHNvbGlkIDFweCB0cmFuc3BhcmVudDsNCiAgICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAjMjIyOw0KICB9DQoNCiAgI3NldHRpbmdzIHsNCiAgICAvKg0KICAgIGhlaWdodDogLXdlYmtpdC1jYWxjKDEwMCUgLSAxMDBweCk7DQogICAgaGVpZ2h0OiAtbW96LWNhbGMoMTAwJSAtIDEwMHB4KTsNCiAgICBoZWlnaHQ6IGNhbGMoMTAwJSAtIDEwMHB4KTsNCiAgICAqLw0KICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsNCiAgICBvdmVyZmxvdzogYXV0bzsNCiAgfQ0KDQoNCiAgLnNjcmVlbkxvZ0hpZGRlbiB7DQogICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMHB4LCAwcHgpOw0KICB9DQoNCg0KICAjYm94IHsNCiAgICBkaXNwbGF5OiBibG9jazsNCiAgICBtaW4taGVpZ2h0OiA1MDBweDsNCiAgICBtYXgtd2lkdGg6IDUwMHB4Ow0KICAgIG1hcmdpbjogMTBweCBhdXRvOw0KICAgIGJhY2tncm91bmQtY29sb3I6ICM0NDQ7DQogICAgYm94LXNoYWRvdzogMHB4IDVweCA1cHggIzIyMjsNCg0KICAgIGRpc3BsYXk6IGZsZXg7DQogICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsNCiAgfQ0KDQogICNzZXR0aW5ncywgI3NldHRpbmdzLWZvb3RlciB7DQogICAgDQogIH0NCn0NCg==" - webUI["html/img/logout.png"] = "iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAAAXNSR0IArs4c6QAAAAlwSFlzAAAsSwAALEsBpT2WqQAABCRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IlhNUCBDb3JlIDUuNC4wIj4KICAgPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIgogICAgICAgICAgICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgICAgICAgICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyI+CiAgICAgICAgIDx0aWZmOlJlc29sdXRpb25Vbml0PjI8L3RpZmY6UmVzb2x1dGlvblVuaXQ+CiAgICAgICAgIDx0aWZmOkNvbXByZXNzaW9uPjU8L3RpZmY6Q29tcHJlc3Npb24+CiAgICAgICAgIDx0aWZmOlhSZXNvbHV0aW9uPjI4ODwvdGlmZjpYUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6T3JpZW50YXRpb24+MTwvdGlmZjpPcmllbnRhdGlvbj4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+Mjg4PC90aWZmOllSZXNvbHV0aW9uPgogICAgICAgICA8ZXhpZjpQaXhlbFhEaW1lbnNpb24+NTA8L2V4aWY6UGl4ZWxYRGltZW5zaW9uPgogICAgICAgICA8ZXhpZjpDb2xvclNwYWNlPjE8L2V4aWY6Q29sb3JTcGFjZT4KICAgICAgICAgPGV4aWY6UGl4ZWxZRGltZW5zaW9uPjUwPC9leGlmOlBpeGVsWURpbWVuc2lvbj4KICAgICAgICAgPGRjOnN1YmplY3Q+CiAgICAgICAgICAgIDxyZGY6QmFnLz4KICAgICAgICAgPC9kYzpzdWJqZWN0PgogICAgICAgICA8eG1wOk1vZGlmeURhdGU+MjAxOC0xMC0xM1QxMToxMDoxODwveG1wOk1vZGlmeURhdGU+CiAgICAgICAgIDx4bXA6Q3JlYXRvclRvb2w+UGl4ZWxtYXRvciAzLjM8L3htcDpDcmVhdG9yVG9vbD4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgIDwvcmRmOlJERj4KPC94OnhtcG1ldGE+Cg27QeEAAANQSURBVGgF7Zk9aBRBGIZzSRSN8YdoCpEkghCCqK1o4g9IsBCCNmIniCAiWAhqI8G02qiIoqCCWggSEcFKEFPYpVAU8QdFUyiKRpRokBjP55OdZDLZvZnZ7N3Ngh887M7sN/O9797t7c5eTc3/8D8DxWKxGS5Ai//oAEYgvB4OwleQaAtAlp8ERG+Bp6Jei/wYQfRy6NfE67vhG0FtA/TBqK7c2A/bCGJ3wpAhOq4ZphGUroEHcYoT+sIygsgmOAu/EwQndYdhBHV1sB8+Jym19Lf6/faVIRuBG+GRRajtcPWMoKwFbtgUOh6vvBGEzYFj8MNRpEtaZY2gaAe8cVHmmXOc/K3QXIZv/+SUFFgJ96AS8ZwiZ6Ab6iZVzGCPiRbCKRiDasQHip6EdD/PDKyFvfAJQgg5kVfB/VoieT0MQojxE1G9UG/7otWS0A7pPkrb7DM/Ppcp+mAAM/bFGEmL4RL8gVDjI8JWOZ0bEjvhSahO0CXXsLMZWZYegREIMV4jaoHTJyNJJLfC7RCdoOm6sxGVyKAeeBegoU6l0XmLiXlwAqp1o4w7j3d1AwW9YdtnNrnQzkOXLddyfAPHv8Ey6ABpd8N88In2QqHwymfARC5mCrAH0i6qGDr9jk3fbNgFz8A1DkwIS7tDpSVwGdLcexIfPZhPHpf2wS+wRX9a/dPGUakLzBdwNgGJRlQBJtgMw5aJ3qr8TLYUmwVHwXXxZTUiwphvHYxDUnzPxIA5CdXa4E5SVa3fyUhkRtYqpSKbNYxpJiq+ncpDJar7GGlknvcl5mqM05BZH4Xl3iOLpLh7j7OR6MScSzAykplg20QIWA0PDSG+RuTdQVy8sNXP9DgK5N4jK9AvkRpfI4sYF/c2836mQl0nQ4zce66AfZFkTMqYl2DGaSMt/CYOHpsuaPco5bLUzUuMGkLHaQ+ovjwZUZrVdpAHRnnw/Bd5MrJCiY62t4x2+E2uBfkfRg95TdSkK8/LJ7JWF83+Nb5Ww0Zf+E3OviwXVMgT8dLwVRsKEd0A+uP8biMlH01MHAYVF/Oh2lCJenkDqpbUN9nPyzU91QnCRbyEPEXn1sQhxMv7tG1T7cW3rK/r44eVtxfxm6gwBh38zJqPJuUtXu3Z/wLwuBaBLgMkKwAAAABJRU5ErkJggg==" webUI["html/img/x_ transparent.png"] = "iVBORw0KGgoAAAANSUhEUgAAAQAAAAEACAYAAABccqhmAAAAAXNSR0IArs4c6QAAAAlwSFlzAAAWJQAAFiUBSVIk8AAAA6ppVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IlhNUCBDb3JlIDUuNC4wIj4KICAgPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIgogICAgICAgICAgICB4bWxuczp0aWZmPSJodHRwOi8vbnMuYWRvYmUuY29tL3RpZmYvMS4wLyIKICAgICAgICAgICAgeG1sbnM6ZXhpZj0iaHR0cDovL25zLmFkb2JlLmNvbS9leGlmLzEuMC8iPgogICAgICAgICA8eG1wOk1vZGlmeURhdGU+MjAxOC0xMS0xNVQxNzoxMTo3NjwveG1wOk1vZGlmeURhdGU+CiAgICAgICAgIDx4bXA6Q3JlYXRvclRvb2w+UGl4ZWxtYXRvciAzLjM8L3htcDpDcmVhdG9yVG9vbD4KICAgICAgICAgPHRpZmY6T3JpZW50YXRpb24+MTwvdGlmZjpPcmllbnRhdGlvbj4KICAgICAgICAgPHRpZmY6Q29tcHJlc3Npb24+NTwvdGlmZjpDb21wcmVzc2lvbj4KICAgICAgICAgPHRpZmY6UmVzb2x1dGlvblVuaXQ+MjwvdGlmZjpSZXNvbHV0aW9uVW5pdD4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+MTQ0PC90aWZmOllSZXNvbHV0aW9uPgogICAgICAgICA8dGlmZjpYUmVzb2x1dGlvbj4xNDQ8L3RpZmY6WFJlc29sdXRpb24+CiAgICAgICAgIDxleGlmOlBpeGVsWERpbWVuc2lvbj4yNTY8L2V4aWY6UGl4ZWxYRGltZW5zaW9uPgogICAgICAgICA8ZXhpZjpDb2xvclNwYWNlPjE8L2V4aWY6Q29sb3JTcGFjZT4KICAgICAgICAgPGV4aWY6UGl4ZWxZRGltZW5zaW9uPjI1NjwvZXhpZjpQaXhlbFlEaW1lbnNpb24+CiAgICAgIDwvcmRmOkRlc2NyaXB0aW9uPgogICA8L3JkZjpSREY+CjwveDp4bXBtZXRhPgoeXQb1AAAaJElEQVR4Ae2dCZhcVZXHz+1KSFiGkISkqyIoOgI68EkgOBNkEcQRlIFRZDGABAQEhInGbxw+RUZRNhWRLawDYR0GHAaHUVkGvwGURUcgwIiAOGxjV3UHAslHQrbuM/9TlQ6d7qruWt527/u/7+uuqvvucu7vvnveuffde54IDxIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARLwiIDzQtayHi0q23shaydCOnlISu7nnWThRdrFOkPWyCleyNqJkF1yjhTd8k6yiDvtuLgLiCR/lVnIZ14keWU7k2Xyuu4oU92r2RazQ+nWypXI4W86zCXbyZ28KBvJ97MtpEhX1gWsyleS08TJU17I2omQKpvLarmqkywyn7ZHPw9rLvTOvwbX6xEyxS3Nenv4oQCcWwmQc/D3dtaBdiyfyv5S1mM7zieLGSzWEsS6KIuiRSzTGTD9H404z1iy80MBWNVL7hn8nx8LhaxlqnKBvKbvyppYHctTM/0nd5xPljNwcrcUs2/6DyL0RwGYxDOcjR3vGBQ+4M8tMElmdQ3n6NGjYPofGE6F6tTESRmm/1xxTuuczWSQH08BhqJbqlNkuTyJoK2GBgf53S6mkrvB+7qZ6b9Gfod6hHv3dzKAGbX9pNvd51N7+WUBGNlJbgm07FH4G/AJdFuyqlwotXFzW8kzk2itXAFZwu38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" - webUI["html/index.html"] = "PCFkb2N0eXBlIGh0bWw+DQo8aHRtbD4NCiAgPGhlYWQ+DQogICAgPG1ldGEgY2hhcnNldD0idXRmLTgiPg0KICAgIDwhLS0tDQogICAgPG1ldGEgbmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9IndpZHRoPWRldmljZS13aWR0aCwgaW5pdGlhbC1zY2FsZT0xLjAiIC8+IA0KICAgIC0tPg0KICAgIDx0aXRsZT54VGVWZTwvdGl0bGU+DQogICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJjc3Mvc2NyZWVuLmNzcyIgdHlwZT0idGV4dC9jc3MiPg0KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iY3NzL2Jhc2UuY3NzIiB0eXBlPSJ0ZXh0L2NzcyI+DQoNCiAgICA8c2NyaXB0IGxhbmd1YWdlPSJqYXZhc2NyaXB0IiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ianMvbmV0d29ya190cy5qcyI+PC9zY3JpcHQ+DQogICAgPHNjcmlwdCBsYW5ndWFnZT0iamF2YXNjcmlwdCIgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9ImpzL21lbnVfdHMuanMiPjwvc2NyaXB0Pg0KICAgIDxzY3JpcHQgbGFuZ3VhZ2U9ImphdmFzY3JpcHQiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJqcy9zZXR0aW5nc190cy5qcyI+PC9zY3JpcHQ+DQogICAgPHNjcmlwdCBsYW5ndWFnZT0iamF2YXNjcmlwdCIgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9ImpzL2xvZ3NfdHMuanMiPjwvc2NyaXB0Pg0KICAgIDxzY3JpcHQgbGFuZ3VhZ2U9ImphdmFzY3JpcHQiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJqcy9iYXNlX3RzLmpzIj48L3NjcmlwdD4NCg0KICA8L2hlYWQ+DQoNCiAgICA8Ym9keSBvbmxvYWQ9ImphdmFzY3JpcHQ6IFBhZ2VSZWFkeSgpOyI+DQoNCiAgICAgIDxkaXYgaWQ9ImxvYWRpbmciIGNsYXNzPSJub25lIj4NCiAgICAgICAgPGRpdiBjbGFzcz0ibG9hZGVyIj48L2Rpdj4NCiAgICAgIDwvZGl2Pg0KDQogICAgICA8ZGl2IGlkPSJwb3B1cCIgY2xhc3M9Im5vbmUiPg0KICAgICAgICA8ZGl2IGlkPSJwb3B1cC1jdXN0b20iPjwvZGl2Pg0KICAgICAgPC9kaXY+DQoNCiAgICAgIDxkaXYgaWQ9ImxheW91dCI+DQoNCiAgICAgICAgPCEtLQ0KICAgICAgICA8ZGl2IGlkPSJub3RpZmljYXRpb24iPg0KICAgICAgICAgIDxkaXYgY2xhc3M9ImVsZW1lbnQiPg0KICAgICAgICAgICAgPGg1PlhFUEc8L2g1Pg0KICAgICAgICAgICAgPHByZT4xMS4wNS4yMDE5IC0gMjA6MjE8L3ByZT4NCiAgICAgICAgICAgIDxocj4NCiAgICAgICAgICAgIDxwPkhhbGxvIGRhcyBpc3QgZWluIFRlc3QuIFVuZCBub2NoIG1laHIgVGV4dC48L3A+DQogICAgICAgICAgPC9kaXY+DQogICAgICAgIDwvZGl2Pg0KICAgICAgLS0+DQoNCiAgICAgICAgPGRpdiBpZD0ibWVudS13cmFwcGVyIiBjbGFzcz0ibGF5b3V0LWxlZnQiPg0KICAgICAgICAgIDxkaXYgaWQ9ICJicmFuY2giPjwvZGl2Pg0KICAgICAgICAgIDxkaXYgaWQ9ImxvZ28iPjwvZGl2Pg0KICAgICAgICAgIDxuYXYgaWQ9Im1haW4tbWVudSI+PC9uYXY+DQogICAgICAgIDwvZGl2Pg0KDQogICAgICAgIDxkaXYgY2xhc3M9ImxheW91dC1yaWdodCI+DQoNCiAgICAgICAgICA8dGFibGUgaWQ9ImNsaWVudEluZm8iIGNsYXNzPSIiPg0KDQogICAgICAgICAgICA8dHI+DQogICAgICAgICAgICAgIDx0ZCBjbGFzcz0idGRLZXkiPnhUZVZlOjwvdGQ+DQogICAgICAgICAgICAgIDx0ZCBpZD0idmVyc2lvbiIgY2xhc3M9InRkVmFsIj4mbmJzcDs8L3RkPg0KICAgICAgICAgICAgICA8dGQgY2xhc3M9InRkS2V5Ij5PUzo8L3RkPg0KICAgICAgICAgICAgICA8dGQgaWQ9Im9zIiBjbGFzcz0idGRWYWwiPiZuYnNwOzwvdGQ+DQogICAgICAgICAgICAgIDx0ZCBjbGFzcz0idGRLZXkgcGhvbmUiPkRWUiBJUDo8L3RkPg0KICAgICAgICAgICAgICA8dGQgaWQ9IkRWUiIgY2xhc3M9InRkVmFsIHBob25lIj4mbmJzcDs8L3RkPg0KICAgICAgICAgICAgPC90cj4NCg0KICAgICAgICAgICAgPHRyPg0KICAgICAgICAgICAgICA8dGQgY2xhc3M9InRkS2V5Ij5VVUlEOjwvdGQ+DQogICAgICAgICAgICAgIDx0ZCBpZD0idXVpZCIgY2xhc3M9InRkVmFsIj4mbmJzcDs8L3RkPg0KICAgICAgICAgICAgICA8dGQgY2xhc3M9InRkS2V5Ij5BcmNoOjwvdGQ+DQogICAgICAgICAgICAgIDx0ZCBpZD0iYXJjaCIgY2xhc3M9InRkVmFsIj4mbmJzcDs8L3RkPg0KICAgICAgICAgICAgICA8dGQgY2xhc3M9InRkS2V5IHBob25lIj5NM1UgVVJMOjwvdGQ+DQogICAgICAgICAgICAgIDx0ZCBpZD0ibTN1LXVybCIgY2xhc3M9InRkVmFsIHBob25lIj4mbmJzcDs8L3RkPg0KICAgICAgICAgICAgPC90cj4NCg0KICAgICAgICAgICAgPHRyPg0KICAgICAgICAgICAgICA8dGQgY2xhc3M9InRkS2V5Ij5BdmFpbGFibGUgU3RyZWFtczo8L3RkPg0KICAgICAgICAgICAgICA8dGQgaWQ9InN0cmVhbXMiIGNsYXNzPSJ0ZFZhbCI+Jm5ic3A7PC90ZD4NCiAgICAgICAgICAgICAgPHRkIGNsYXNzPSJ0ZEtleSI+RVBHIFNvdXJjZTo8L3RkPg0KICAgICAgICAgICAgICA8dGQgaWQ9ImVwZ1NvdXJjZSIgY2xhc3M9InRkVmFsIj4mbmJzcDs8L3RkPg0KICAgICAgICAgICAgICA8dGQgY2xhc3M9InRkS2V5IHBob25lIj5YRVBHIFVSTDo8L3RkPg0KICAgICAgICAgICAgICA8dGQgaWQ9InhlcGctdXJsIiBjbGFzcz0idGRWYWwgcGhvbmUiPiZuYnNwOzwvdGQ+DQogICAgICAgICAgICA8L3RyPg0KDQogICAgICAgICAgICA8dHI+DQogICAgICAgICAgICAgIDx0ZCBjbGFzcz0idGRLZXkiPlhFUEcgQ2hhbm5lbHM6PC90ZD4NCiAgICAgICAgICAgICAgPHRkIGlkPSJ4ZXBnIiBjbGFzcz0idGRWYWwiPiZuYnNwOzwvdGQ+DQogICAgICAgICAgICAgIDx0ZCBjbGFzcz0idGRLZXkiPkVycm9yczo8L3RkPg0KICAgICAgICAgICAgICA8dGQgaWQ9ImVycm9ycyIgY2xhc3M9InRkVmFsIj4mbmJzcDs8L3RkPg0KICAgICAgICAgICAgICA8dGQgY2xhc3M9InRkS2V5Ij5XYXJuaW5nczo8L3RkPg0KICAgICAgICAgICAgICA8dGQgaWQ9Indhcm5pbmdzIiBjbGFzcz0idGRWYWwiPiZuYnNwOzwvdGQ+DQogICAgICAgICAgICA8L3RyPg0KDQogICAgICAgICAgPC90YWJsZT4NCiAgICAgICAgIA0KICAgICAgICAgIDxkaXYgaWQ9Im15U3RyZWFtc0JveCIgY2xhc3M9Im5vdFZpc2libGUiPg0KDQogICAgICAgICAgICA8ZGl2IGlkPSJhbGxTdHJlYW1zIj4NCiAgICAgICAgICAgICAgPHRhYmxlIGlkPSJhY3RpdmVTdHJlYW1zIj48L3RhYmxlPg0KICAgICAgICAgICAgICA8dGFibGUgaWQ9ImluYWN0aXZlU3RyZWFtcyI+PC90YWJsZT4NCiAgICAgICAgICAgIDwvZGl2Pg0KDQogICAgICAgICAgPC9kaXY+DQogICAgICAgICAgDQogICAgICAgICAgPGRpdiBpZD0iY29udGVudCIgY2xhc3M9IiI+PC9kaXY+DQogICAgICAgICAgICANCiAgICAgICAgPC9kaXY+DQoNCiAgICAgIDwvZGl2Pg0KICAgICAgDQogICAgPC9ib2R5Pg0KICAgIA0KPC9odG1sPg==" - webUI["html/js/configuaration.js"] = "dmFyIGNvbmZpZ01lbnUgPSBuZXcgT2JqZWN0KCk7DQp2YXIgd2l6YXJkID0gbmV3IEFycmF5KCJrZXkiLCAidHVuZXIiLCAiZXBnU291cmNlIiwgIm0zdSIsICJjb21wbGV0ZSIpOw0KdmFyIGFjdGl2ZVdpemFyZDsNCnZhciBkdnJJUA0KDQp2YXIgY29uZmlnTWVudV90dW5lciA9IG5ldyBPYmplY3QoKTsNCmNvbmZpZ01lbnVfdHVuZXJbIl9lbGVtZW50Il0gICAgICA9ICJTRUxFQ1QiOw0KY29uZmlnTWVudV90dW5lclsiX21lbnVUeXBlIl0gICAgID0gInNpbmdsZUlucHV0IjsNCmNvbmZpZ01lbnVfdHVuZXJbIl9jb25maWdLZXkiXSAgICA9ICJ0dW5lciI7DQpjb25maWdNZW51X3R1bmVyWyJfbGFiZWwiXSAgICAgICAgPSAiQXZhaWxhYmxlIHR1bmVycyI7DQpjb25maWdNZW51X3R1bmVyWyJuYW1lIl0gICAgICAgICAgPSAidHVuZXIiOw0KY29uZmlnTWVudV90dW5lclsiaWQiXSAgICAgICAgICAgID0gIlR1bmVyIjsNCmNvbmZpZ01lbnVfdHVuZXJbInBsYWNlaG9sZGVyIl0gICA9ICJUdW5lciI7DQpjb25maWdNZW51X3R1bmVyWyJfdXNhZ2UiXSAgICAgICAgPSAiVGhpcyBzZXR0aW5nIGlzIG9ubHkgdXNlZCBieSBQbGV4IGFuZCBFbWJ5Ljxicj5UaGUgbnVtYmVyIG9mIGNvbmN1cnJlbnQgc3RyZWFtcyBhbGxvd2VkIGJ5IHRoZSBJUFRWIHByb3ZpZGVyLiINCg0KDQp2YXIgb3B0aW9uVmFsdWVzID0gbmV3IEFycmF5KCk7DQpmb3IgKHZhciBpID0gMTsgaSA8PSAxMDA7IGkrKykgew0KICBvcHRpb25WYWx1ZXMucHVzaChpKQ0KfQ0KY29uZmlnTWVudV90dW5lclsiX29wdGlvblZhbHVlcyJdID0gb3B0aW9uVmFsdWVzOw0KDQp2YXIgY29uZmlnTWVudV9lcGcgPSBuZXcgT2JqZWN0KCk7DQpjb25maWdNZW51X2VwZ1siX2VsZW1lbnQiXSAgICAgID0gIlNFTEVDVCI7DQpjb25maWdNZW51X2VwZ1siX21lbnVUeXBlIl0gICAgID0gInNpbmdsZUlucHV0IjsNCmNvbmZpZ01lbnVfZXBnWyJfY29uZmlnS2V5Il0gICAgPSAiZXBnU291cmNlIjsNCmNvbmZpZ01lbnVfZXBnWyJfbGFiZWwiXSAgICAgICAgPSAiU2VsZWN0aW9uIG9mIHRoZSBFUEcgc291cmNlIjsNCmNvbmZpZ01lbnVfZXBnWyJuYW1lIl0gICAgICAgICAgPSAiZXBnU291cmNlIjsNCmNvbmZpZ01lbnVfZXBnWyJpZCJdICAgICAgICAgICAgPSAiRVBHIHNvdXJjZSI7DQpjb25maWdNZW51X2VwZ1sicGxhY2Vob2xkZXIiXSAgID0gIkVQRyBzb3VyY2UiOw0KY29uZmlnTWVudV9lcGdbIl9vcHRpb25WYWx1ZXMiXSA9IG5ldyBBcnJheSgiUE1TIiwgIlhFUEciKTsNCmNvbmZpZ01lbnVfZXBnWyJfdXNhZ2UiXSAgICAgICAgPSAiUE1TOiAgIFVzZSBFUEcgZGF0YSBmcm9tIFBsZXggb3IgRW1ieTxicj5YRVBHOiAgVXNlIG9mIGV4dGVybmFsIEVQRyBkYXRhIChYTUxUVik8YnI+ICAgICAgIFNldmVyYWwgWE1MVFYgc291cmNlcyBwb3NzaWJsZTxicj4gICAgICAgQWxsb3dzIGVkaXRpbmcgYW5kIG9yZGVyIGNoYW5uZWxzPGJyPiAgICAgICBNM1UgLyBYTUxUViBleHBvcnQgKEhUVFAgbGluayBmb3IgSVBUViBhcHBzKSINCg0KdmFyIGNvbmZpZ01lbnVfbTN1ID0gbmV3IE9iamVjdCgpOw0KY29uZmlnTWVudV9tM3VbIl9lbGVtZW50Il0gICAgICAgID0gIklOUFVUIjsNCmNvbmZpZ01lbnVfbTN1WyJfbWVudVR5cGUiXSAgICAgICA9ICJpbnB1dEFycmF5IjsNCmNvbmZpZ01lbnVfbTN1WyJfY29uZmlnS2V5Il0gICAgICA9ICJmaWxlIjsNCmNvbmZpZ01lbnVfbTN1WyJfbGFiZWwiXSAgICAgICAgICA9ICJNM1UgRmlsZTogbG9jYWwgb3IgcmVtb3RlIjsNCmNvbmZpZ01lbnVfbTN1WyJuYW1lIl0gICAgICAgICAgICA9ICJmaWxlIjsNCmNvbmZpZ01lbnVfbTN1WyJpZCJdICAgICAgICAgICAgICA9ICJtM3UiOw0KY29uZmlnTWVudV9tM3VbInR5cGUiXSAgICAgICAgICAgID0gInRleHQiOw0KY29uZmlnTWVudV9tM3VbInBsYWNlaG9sZGVyIl0gICAgID0gIk0zVSBGaWxlIjsNCmNvbmZpZ01lbnVfbTN1WyJfdXNhZ2UiXSAgICAgICAgICA9ICJSZW1vdGUgcGxheWxpc3Q6IGh0dHA6Ly95b3VyLnByb3ZpZGVyLmNvbS9maWxlLm0zdTxicj5Mb2NhbCAgcGxheWxpc3Q6IC9wYXRoL3RvL2ZpbGUubTN1Ig0KDQoNCmNvbmZpZ01lbnVfbTN1WyJ2YWx1ZSJdICAgICAgICAgICA9ICJodHRwOi8vd2Vic3J2LmxvY2FsOjgwODAva2FiZWwubTN1IjsNCg0KdmFyIGNvbmZpZ01lbnVfY29tcGxldGUgPSBuZXcgT2JqZWN0KCk7DQpjb25maWdNZW51X2NvbXBsZXRlWyJfZWxlbWVudCJdICAgICAgICA9ICJIMiI7DQpjb25maWdNZW51X2NvbXBsZXRlWyJfbWVudVR5cGUiXSAgICAgICA9ICJpbnB1dEFycmF5IjsNCmNvbmZpZ01lbnVfY29tcGxldGVbIl9jb25maWdLZXkiXSAgICAgID0gImZpbGUiOw0KY29uZmlnTWVudV9jb21wbGV0ZVsiX3RleHQiXSAgICAgICAgICAgPSAieFRlVmUgd2FzIHN1Y2Nlc3NmdWxseSBzZXQgdXAiOw0KY29uZmlnTWVudV9jb21wbGV0ZVsibmFtZSJdICAgICAgICAgICAgPSAiY29tcGxldGUiOw0KY29uZmlnTWVudV9jb21wbGV0ZVsiaWQiXSAgICAgICAgICAgICAgPSAiY29tcGxldGUiOw0KY29uZmlnTWVudV9jb21wbGV0ZVsidHlwZSJdICAgICAgICAgICAgPSAidGV4dCI7DQpjb25maWdNZW51X2NvbXBsZXRlWyJjbGFzcyJdICAgICAgICAgICA9ICJjZW50ZXIiOw0KDQpjb25maWdNZW51WyJ0dW5lciJdICAgICA9IGNvbmZpZ01lbnVfdHVuZXI7DQpjb25maWdNZW51WyJlcGdTb3VyY2UiXSA9IGNvbmZpZ01lbnVfZXBnOw0KY29uZmlnTWVudVsibTN1Il0gICAgICAgPSBjb25maWdNZW51X20zdTsNCmNvbmZpZ01lbnVbImNvbXBsZXRlIl0gID0gY29uZmlnTWVudV9jb21wbGV0ZTsNCg0KZnVuY3Rpb24gcmVhZHlGb3JDb25maWd1cmF0aW9uKCkgew0KICB2YXIgZGF0YSA9IG5ldyBPYmplY3QoKTsNCiAgZGF0YVsiY21kIl0gPSAiZ2V0U2VydmVyQ29uZmlnIjsNCiAgeFRlVmUoZGF0YSk7DQogIHNob3dMb2FkaW5nU2NyZWVuKGZhbHNlKTsNCn0NCg0KZnVuY3Rpb24gY3JlYXRlQ29uZmlndXJhdGlvbihlbG0pIHsNCg0KICBhY3RpdmVXaXphcmQgPSBlbG07DQogIHZhciBpdGVtICA9IGNvbmZpZ01lbnVbZWxtXTsNCg0KICB2YXIgZGl2ICAgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29udGVudCIpOw0KICBkaXYuaW5uZXJIVE1MID0gIiI7DQogIGRpdi5zZXRBdHRyaWJ1dGUoImRhdGEtY29uZmlnS2V5IiwgaXRlbVsiX2NvbmZpZ0tleSJdKTsNCiAgZGl2LnNldEF0dHJpYnV0ZSgiZGF0YS1tZW51VHlwZSIsIGl0ZW1bIl9tZW51VHlwZSJdKTsNCiAgDQogIHN3aXRjaChpdGVtLmhhc093blByb3BlcnR5KCJfbGFiZWwiKSkgew0KICAgIGNhc2UgdHJ1ZToNCiAgICAgIHZhciBuZXdJdGVtID0gbmV3IE9iamVjdCgpOw0KICAgICAgbmV3SXRlbVsiX2VsZW1lbnQiXSA9ICJMQUJFTCI7DQogICAgICBuZXdJdGVtWyJfdGV4dCJdICAgID0gaXRlbVsiX2xhYmVsIl07IA0KICAgICAgbmV3SXRlbVsiZm9yIl0gICAgICA9IGl0ZW1bImlkIl07DQogICAgICBkaXYuYXBwZW5kQ2hpbGQoY3JlYXRlRWxlbWVudChuZXdJdGVtKSk7DQogICAgICBicmVhaw0KICB9DQoNCiAgc3dpdGNoKGl0ZW1bIl9lbGVtZW50Il0pIHsNCiAgICBjYXNlICJTRUxFQ1QiOg0KICAgICAgZGl2LmFwcGVuZENoaWxkKGNyZWF0ZUVsZW1lbnQoaXRlbSkpOw0KICAgICAgdmFyIHNlbGVjdEVsZW1lbnQgPSBkaXYuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlNFTEVDVCIpWzBdOw0KICAgICAgdmFyIHZhbHVlcyA9IGl0ZW1bIl9vcHRpb25WYWx1ZXMiXTsNCiAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdmFsdWVzLmxlbmd0aDsgaSsrKSB7DQogICAgICAgIHZhciBuZXdFbnRyeSA9IG5ldyBPYmplY3Q7DQogICAgICAgIG5ld0VudHJ5WyJfZWxlbWVudCJdICA9ICJPUFRJT04iOw0KICAgICAgICBuZXdFbnRyeVsiX3RleHQiXSAgICAgPSBpdGVtWyJpZCJdICsgIjogIiArIHZhbHVlc1tpXTsNCiAgICAgICAgbmV3RW50cnlbInZhbHVlIl0gICAgID0gdmFsdWVzW2ldOw0KICAgICAgICBzZWxlY3RFbGVtZW50LmFwcGVuZENoaWxkKGNyZWF0ZUVsZW1lbnQobmV3RW50cnkpKTsNCiAgICAgIH0NCiAgICAgIC8vcmV0dXJuDQogICAgICBicmVhazsNCg0KICAgIGRlZmF1bHQ6IA0KICAgICAgZGl2LmFwcGVuZENoaWxkKGNyZWF0ZUVsZW1lbnQoaXRlbSkpOw0KICAgICAgYnJlYWs7DQoNCg0KICB9DQogIC8vYWxlcnQoKQ0KDQogIHN3aXRjaChpdGVtLmhhc093blByb3BlcnR5KCJfdXNhZ2UiKSkgew0KICAgIGNhc2UgdHJ1ZTogDQogICAgICB2YXIgdXNhZ2VJdGVtID0gbmV3IE9iamVjdCgpOw0KICAgICAgdXNhZ2VJdGVtWyJfZWxlbWVudCJdID0gIlBSRSINCiAgICAgIHVzYWdlSXRlbVsiX3RleHQiXSAgICA9IGl0ZW1bIl91c2FnZSJdOw0KICAgICAgZGl2LmFwcGVuZENoaWxkKGNyZWF0ZUVsZW1lbnQodXNhZ2VJdGVtKSk7DQogIH0NCg0KICBpZiAoYWN0aXZlV2l6YXJkID09ICJjb21wbGV0ZSIpIHsNCiAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibmV4dCIpLnZhbHVlID0gIkZpbmlzaGVkIg0KICAgIC8vZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm5leHQiKS5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAiamF2YXNjcmlwdDogbG9jYXRpb24ucmVsb2FkKCk7IikNCiAgfQ0KDQogIC8vZGl2LmFwcGVuZENoaWxkKGNyZWF0ZUVsZW1lbnQoaXRlbSkpOw0KfQ0KDQpmdW5jdGlvbiBzYXZlRGF0YSgpIHsNCg0KICB2YXIgZGl2ICAgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29udGVudCIpOw0KICB2YXIgaW5wdXRzID0gZGl2LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJJTlBVVCIpOw0KICB2YXIgc2VsZWN0cyA9IGRpdi5nZXRFbGVtZW50c0J5VGFnTmFtZSgiU0VMRUNUIik7DQogIHZhciB2YWx1ZTsNCiAgdmFyIGRhdGEgPSBuZXcgT2JqZWN0KCk7DQogIHZhciB2YWx1ZUFyciA9IG5ldyBBcnJheSgpOw0KICB2YXIgbmV3RGF0YSA9IGZhbHNlOw0KDQogIGlmIChhY3RpdmVXaXphcmQgPT0gImNvbXBsZXRlIikgew0KICAgIGRhdGFbImNtZCJdID0gIndpemFyZENvbXBsZXRlZCI7DQogICAgc2hvd0xvYWRpbmdTY3JlZW4odHJ1ZSkNCiAgICB4VGVWZShkYXRhKTsNCiAgICByZXR1cm4NCiAgfQ0KICANCiAgZm9yICh2YXIgaSA9IDA7IGkgPCBpbnB1dHMubGVuZ3RoOyBpKyspIHsNCiAgICB2YXIgbWVudVR5cGUgPSBpbnB1dHNbaV0ucGFyZW50RWxlbWVudC5nZXRBdHRyaWJ1dGUoImRhdGEtbWVudXR5cGUiKTsNCiAgICBpZiAoaW5wdXRzW2ldLnZhbHVlICE9IHVuZGVmaW5lZCAmJiBpbnB1dHNbaV0udmFsdWUgIT0gIiIgKSB7DQogICAgICBuZXdEYXRhID0gdHJ1ZTsNCg0KICAgICAgY29uc29sZS5sb2coaW5wdXRzW2ldLmlkKQ0KICAgICAgc3dpdGNoKGlucHV0c1tpXS5pZCkgew0KICAgICAgICBjYXNlICJtM3UiOiANCiAgICAgICAgICB2YXIgbmV3UGxheWxpc3QgPSBuZXcgT2JqZWN0KCk7DQogICAgICAgICAgbmV3UGxheWxpc3RbImZpbGUuc291cmNlIl0gPSBpbnB1dHNbaV0udmFsdWU7DQogICAgICAgICAgLy9uZXdQbGF5bGlzdFsibmFtZSJdID0gaW5wdXRzW2ldLnZhbHVlOw0KICAgICAgICAgIG5ld1BsYXlsaXN0WyJ0eXBlIl0gPSAibTN1IjsNCiAgICAgICAgICBuZXdQbGF5bGlzdFsibmV3Il0gPSB0cnVlOw0KDQogICAgICAgICAgZGF0YVsiZmlsZXMiXSA9IG5ldyBPYmplY3QoKTsNCiAgICAgICAgICBkYXRhWyJmaWxlcyJdWyJtM3UiXSA9IG5ldyBPYmplY3QoKTsNCiAgICAgICAgICBkYXRhWyJmaWxlcyJdWyJtM3UiXVsiLSJdID0gbmV3UGxheWxpc3Q7DQogICAgICAgICAgDQogICAgICAgICAgZGF0YVsiY21kIl0gPSAic2F2ZUZpbGVzTTNVIjsNCiAgICAgICAgICB4VGVWZShkYXRhKQ0KICAgICAgICAgIHJldHVybg0KICAgICAgfQ0KICAgICAgLyoNCiAgICAgIHN3aXRjaChtZW51VHlwZSkgew0KICAgICAgICBjYXNlICJzaW5nbGVJbnB1dCI6DQogICAgICAgICAgZGF0YVtpbnB1dHNbaV0ubmFtZV0gPSBpbnB1dHNbaV0udmFsdWU7IGJyZWFrOw0KICAgICAgICBjYXNlICJpbnB1dEFycmF5IjogDQogICAgICAgICAgdmFsdWVBcnIucHVzaChpbnB1dHNbaV0udmFsdWUpOw0KICAgICAgICAgIGRhdGFbaW5wdXRzW2ldLm5hbWVdID0gdmFsdWVBcnI7IGJyZWFrDQoNCiAgICAgIH0NCiAgICAgICovDQogICAgfSBlbHNlIHsNCiAgICAgIGlucHV0c1tpXS5zdHlsZS5ib3JkZXJCb3R0b21Db2xvciA9ICJyZWQiOw0KICAgICAgcmV0dXJuOw0KICAgIH0NCiAgfQ0KDQoNCiAgZm9yICh2YXIgaSA9IDA7IGkgPCBzZWxlY3RzLmxlbmd0aDsgaSsrKSB7DQogICAgdmFyIHZhbHVlID0gc2VsZWN0c1tpXS5vcHRpb25zW3NlbGVjdHNbaV0uc2VsZWN0ZWRJbmRleF0udmFsdWU7DQogICAgaWYgKGlzTmFOKHZhbHVlKSA9PSBmYWxzZSkgew0KICAgICAgdmFsdWUgPSBwYXJzZUludCh2YWx1ZSk7DQogICAgICBkYXRhW3NlbGVjdHNbaV0ubmFtZV0gPSB2YWx1ZTsNCiAgICAgIG5ld0RhdGEgPSB0cnVlOw0KICAgICAgYnJlYWs7DQogICAgfQ0KICAgIGRhdGFbc2VsZWN0c1tpXS5uYW1lXSA9IHZhbHVlOw0KICAgIG5ld0RhdGEgPSB0cnVlOw0KICB9DQoNCg0KICAvL2NvbnNvbGUubG9nKGRhdGEsIG5ld0RhdGEpOw0KICBpZiAobmV3RGF0YSA9PSB0cnVlKSB7DQogICAgY29uZmlnID0gZGF0YQ0KICAgIGRhdGFbImNtZCJdID0gInNhdmVDb25maWciOw0KICAgIHhUZVZlKGRhdGEpOw0KICB9DQp9DQoNCmZ1bmN0aW9uIHhUZVZlKGRhdGEpIHsNCg0KICBpZiAod2ViU29ja2V0cyA9PSBmYWxzZSkgew0KICAgIGFsZXJ0KCJZb3VyIGJyb3dzZXIgZG9lcyBub3Qgc3VwcG9ydCBXZWJTb2NrZXRzIik7DQogICAgcmV0dXJuOw0KICB9DQoNCiAgaWYgKGFjdGl2ZVdpemFyZCA9PSAibTN1IiB8fCBhY3RpdmVXaXphcmQgPT0gImVwZ1NvdXJjZSIpIHsNCiAgICBzaG93TG9hZGluZ1NjcmVlbih0cnVlKTsNCiAgfQ0KDQogIHZhciBwcm90b2NvbFdTDQogIHN3aXRjaCh3aW5kb3cubG9jYXRpb24ucHJvdG9jb2wpIHsNCiAgICBjYXNlICJodHRwOiI6ICAgcHJvdG9jb2xXUyA9ICJ3czovLyI7IGJyZWFrOw0KICAgIGNhc2UgImh0dHBzOiI6ICBwcm90b2NvbFdTID0gIndzczovLyI7IGJyZWFrOw0KICB9DQoNCiAgdmFyIHdzID0gbmV3IFdlYlNvY2tldChwcm90b2NvbFdTICsgd2luZG93LmxvY2F0aW9uLmhvc3RuYW1lICsgIjoiICsgd2luZG93LmxvY2F0aW9uLnBvcnQgKyAiL2RhdGEvIiArICI/VG9rZW49IiArIGdldENvb2tpZSgiVG9rZW4iKSk7DQogIA0KICB3cy5vbm9wZW4gPSBmdW5jdGlvbigpIHsNCiAgICB3cy5zZW5kKEpTT04uc3RyaW5naWZ5KGRhdGEpKTsNCiAgfQ0KDQogIHdzLm9ubWVzc2FnZSA9IGZ1bmN0aW9uIChlKSB7DQogICAgDQogICAgdmFyIHJlc3BvbnNlID0gSlNPTi5wYXJzZShlLmRhdGEpOw0KICAgIA0KICAgIGlmIChyZXNwb25zZS5oYXNPd25Qcm9wZXJ0eSgiY2xpZW50SW5mbyIpKSB7DQogICAgICBjcmVhdGVDbGludEluZm8ocmVzcG9uc2VbImNsaWVudEluZm8iXSk7DQogICAgfQ0KDQogICAgaWYgKHJlc3BvbnNlLmhhc093blByb3BlcnR5KCJzdGF0dXMiKSkgew0KICAgICAgaWYgKHJlc3BvbnNlWyJzdGF0dXMiXSA9PSBmYWxzZSkgew0KICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiaGVhZGxpbmUiKS5zdHlsZS5ib3JkZXJDb2xvciA9ICJyZWQiOw0KICAgICAgICBzaG93RXJyKHJlc3BvbnNlWyJlcnIiXSk7DQogICAgICAgIHNob3dMb2FkaW5nU2NyZWVuKGZhbHNlKQ0KICAgICAgICByZXR1cm4NCiAgICAgIH0gZWxzZSB7DQogICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJlcnIiKS5pbm5lckhUTUwgPSAiIjsNCiAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImhlYWRsaW5lIikuc3R5bGUuYm9yZGVyQ29sb3IgPSAibGF3bmdyZWVuIjsNCiAgICAgIH0NCg0KICAgICAgZHZySVAgPSByZXNwb25zZVsiRFZSIl0NCiAgICAgIHN3aXRjaChyZXNwb25zZVsiY29uZmlndXJhdGlvbldpemFyZCJdKSB7DQogICAgICAgIGNhc2UgdHJ1ZTogDQogICAgICAgICAgaWYgKGFjdGl2ZVdpemFyZCA9PSB1bmRlZmluZWQpIHsNCiAgICAgICAgICAgIGFjdGl2ZVdpemFyZCA9IHdpemFyZFswXQ0KICAgICAgICAgIH0NCiAgICAgICAgICB2YXIgbiA9IHdpemFyZC5pbmRleE9mKGFjdGl2ZVdpemFyZCk7DQogICAgICAgICAgbisrOw0KICAgICAgICAgIGFjdGl2ZVdpemFyZCA9IHdpemFyZFtuXQ0KDQogICAgICAgICAgaWYgKGFjdGl2ZVdpemFyZCA9PSB1bmRlZmluZWQpIHsNCiAgICAgICAgICAgIGRhdGFbImNtZCJdID0gIndpemFyZENvbXBsZXRlZCI7DQogICAgICAgICAgICB4VGVWZShkYXRhKQ0KICAgICAgICAgIH0gZWxzZSB7DQogICAgICAgICAgICAvL2NvbnNvbGUubG9nKGFjdGl2ZVdpemFyZCk7DQogICAgICAgICAgICBjcmVhdGVDb25maWd1cmF0aW9uKGFjdGl2ZVdpemFyZCk7IA0KICAgICAgICAgIH0NCiAgICAgICAgICANCiAgICAgICAgYnJlYWs7DQogICAgICB9DQoNCiAgICAgIHN3aXRjaChyZXNwb25zZVsicmVsb2FkIl0pIHsNCiAgICAgICAgDQogICAgICAgIA0KICAgICAgICBjYXNlIHRydWU6IA0KICAgIA0KICAgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKXsgDQogICAgICAgICAgICBsb2NhdGlvbi5yZWxvYWQoKTsNCiAgICAgICAgICB9LCAxMDApOw0KICAgICAgICAgIA0KICAgICAgICAgIC8vbG9jYXRpb24ucmVsb2FkKCk7DQogICAgICAgICAgDQogICAgICAgICAgYnJlYWs7DQogICAgICAgIA0KICAgICAgfQ0KDQogICAgICANCiAgICB9DQoNCiAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7IHNob3dMb2FkaW5nU2NyZWVuKGZhbHNlKTsgfSwgMzAwKTsNCiAgfQ0KICANCn0NCg0KZnVuY3Rpb24gc2hvd0VycihlbG0pIHsNCiAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImVyciIpLmlubmVySFRNTCA9IGVsbTsNCn0=" - webUI["html/js/menu_ts.js"] = "Y2xhc3MgTWFpbk1lbnUgew0KICAgIGNvbnN0cnVjdG9yKCkgew0KICAgICAgICB0aGlzLkRvY3VtZW50SUQgPSAibWFpbi1tZW51IjsNCiAgICAgICAgdGhpcy5IVE1MVGFnID0gIkxJIjsNCiAgICAgICAgdGhpcy5JbWFnZVBhdGggPSAiaW1nLyI7DQogICAgfQ0KICAgIGNyZWF0ZUlNRyhzcmMpIHsNCiAgICAgICAgbGV0IGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJJTUciKTsNCiAgICAgICAgZWxlbWVudC5zZXRBdHRyaWJ1dGUoInNyYyIsIHRoaXMuSW1hZ2VQYXRoICsgc3JjKTsNCiAgICAgICAgcmV0dXJuIGVsZW1lbnQ7DQogICAgfQ0KICAgIGNyZWF0ZVZhbHVlKHZhbHVlKSB7DQogICAgICAgIGxldCBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiUCIpOw0KICAgICAgICBlbGVtZW50LmlubmVySFRNTCA9IHZhbHVlOw0KICAgICAgICByZXR1cm4gZWxlbWVudDsNCiAgICB9DQp9DQpjbGFzcyBNYWluTWVudUl0ZW0gZXh0ZW5kcyBNYWluTWVudSB7DQogICAgY29uc3RydWN0b3IobWVudUtleSwgdmFsdWUsIGltYWdlLCBoZWFkbGluZSkgew0KICAgICAgICBzdXBlcigpOw0KICAgICAgICB0aGlzLm1lbnVLZXkgPSBtZW51S2V5Ow0KICAgICAgICB0aGlzLnZhbHVlID0gdmFsdWU7DQogICAgICAgIHRoaXMuaW1nU3JjID0gaW1hZ2U7DQogICAgICAgIHRoaXMuaGVhZGxpbmUgPSBoZWFkbGluZTsNCiAgICB9DQogICAgY3JlYXRlSXRlbSgpIHsNCiAgICAgICAgbGV0IGl0ZW0gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJMSSIpOw0KICAgICAgICBpdGVtLnNldEF0dHJpYnV0ZSgib25jbGljayIsICJqYXZhc2NyaXB0OiBvcGVuVGhpc01lbnUodGhpcykiKTsNCiAgICAgICAgaXRlbS5zZXRBdHRyaWJ1dGUoImlkIiwgdGhpcy5pZCk7DQogICAgICAgIGxldCBpbWcgPSB0aGlzLmNyZWF0ZUlNRyh0aGlzLmltZ1NyYyk7DQogICAgICAgIGxldCB2YWx1ZSA9IHRoaXMuY3JlYXRlVmFsdWUodGhpcy52YWx1ZSk7DQogICAgICAgIGl0ZW0uYXBwZW5kQ2hpbGQoaW1nKTsNCiAgICAgICAgaXRlbS5hcHBlbmRDaGlsZCh2YWx1ZSk7DQogICAgICAgIGxldCBkb2MgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCh0aGlzLkRvY3VtZW50SUQpOw0KICAgICAgICBkb2MuYXBwZW5kQ2hpbGQoaXRlbSk7DQogICAgICAgIHN3aXRjaCAodGhpcy5tZW51S2V5KSB7DQogICAgICAgICAgICBjYXNlICJwbGF5bGlzdCI6DQogICAgICAgICAgICAgICAgdGhpcy50YWJsZUhlYWRlciA9IFsie3sucGxheWxpc3QudGFibGUucGxheWxpc3R9fSIsICJ7ey5wbGF5bGlzdC50YWJsZS50dW5lcn19IiwgInt7LnBsYXlsaXN0LnRhYmxlLmxhc3RVcGRhdGV9fSIsICJ7ey5wbGF5bGlzdC50YWJsZS5hdmFpbGFiaWxpdHl9fSAlIiwgInt7LnBsYXlsaXN0LnRhYmxlLnR5cGV9fSIsICJ7ey5wbGF5bGlzdC50YWJsZS5zdHJlYW1zfX0iLCAie3sucGxheWxpc3QudGFibGUuZ3JvdXBUaXRsZX19ICUiLCAie3sucGxheWxpc3QudGFibGUudHZnSUR9fSAlIiwgInt7LnBsYXlsaXN0LnRhYmxlLnVuaXF1ZUlEfX0gJSJdOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAieG1sdHYiOg0KICAgICAgICAgICAgICAgIHRoaXMudGFibGVIZWFkZXIgPSBbInt7LnhtbHR2LnRhYmxlLmd1aWRlfX0iLCAie3sueG1sdHYudGFibGUubGFzdFVwZGF0ZX19IiwgInt7LnhtbHR2LnRhYmxlLmF2YWlsYWJpbGl0eX19ICUiLCAie3sueG1sdHYudGFibGUuY2hhbm5lbHN9fSIsICJ7ey54bWx0di50YWJsZS5wcm9ncmFtc319Il07DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJmaWx0ZXIiOg0KICAgICAgICAgICAgICAgIHRoaXMudGFibGVIZWFkZXIgPSBbInt7LmZpbHRlci50YWJsZS5uYW1lfX0iLCAie3suZmlsdGVyLnRhYmxlLnR5cGV9fSIsICJ7ey5maWx0ZXIudGFibGUuZmlsdGVyfX0iXTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInVzZXJzIjoNCiAgICAgICAgICAgICAgICB0aGlzLnRhYmxlSGVhZGVyID0gWyJ7ey51c2Vycy50YWJsZS51c2VybmFtZX19IiwgInt7LnVzZXJzLnRhYmxlLnBhc3N3b3JkfX0iLCAie3sudXNlcnMudGFibGUud2VifX0iLCAie3sudXNlcnMudGFibGUucG1zfX0iLCAie3sudXNlcnMudGFibGUubTN1fX0iLCAie3sudXNlcnMudGFibGUueG1sfX0iLCAie3sudXNlcnMudGFibGUuYXBpfX0iXTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgIm1hcHBpbmciOg0KICAgICAgICAgICAgICAgIHRoaXMudGFibGVIZWFkZXIgPSBbIkJVTEsiLCAie3subWFwcGluZy50YWJsZS5jaE5vfX0iLCAie3subWFwcGluZy50YWJsZS5sb2dvfX0iLCAie3subWFwcGluZy50YWJsZS5jaGFubmVsTmFtZX19IiwgInt7Lm1hcHBpbmcudGFibGUucGxheWxpc3R9fSIsICJ7ey5tYXBwaW5nLnRhYmxlLmdyb3VwVGl0bGV9fSIsICJ7ey5tYXBwaW5nLnRhYmxlLnhtbHR2RmlsZX19IiwgInt7Lm1hcHBpbmcudGFibGUueG1sdHZJRH19IiwgInt7Lm1hcHBpbmcudGFibGUudGltZXNoaWZ0fX0iXTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgfQ0KICAgICAgICAvL2NvbnNvbGUubG9nKHRoaXMubWVudUtleSwgdGhpcy50YWJsZUhlYWRlcik7DQogICAgfQ0KfQ0KY2xhc3MgQ29udGVudCB7DQogICAgY29uc3RydWN0b3IoKSB7DQogICAgICAgIHRoaXMuRG9jdW1lbnRJRCA9ICJjb250ZW50IjsNCiAgICAgICAgdGhpcy5UYWJsZUlEID0gImNvbnRlbnRfdGFibGUiOw0KICAgICAgICB0aGlzLmhlYWRlckNsYXNzID0gImNvbnRlbnRfdGFibGVfaGVhZGVyIjsNCiAgICAgICAgdGhpcy5pbnRlcmFjdGlvbklEID0gImNvbnRlbnQtaW50ZXJhY3Rpb24iOw0KICAgIH0NCiAgICBjcmVhdGVIZWFkbGluZSh2YWx1ZSkgew0KICAgICAgICBsZXQgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIkgzIik7DQogICAgICAgIGVsZW1lbnQuaW5uZXJIVE1MID0gdmFsdWU7DQogICAgICAgIHJldHVybiBlbGVtZW50Ow0KICAgIH0NCiAgICBjcmVhdGVIUigpIHsNCiAgICAgICAgcmV0dXJuIGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIkhSIik7DQogICAgfQ0KICAgIGNyZWF0ZUludGVyYWN0aW9uKCkgew0KICAgICAgICBsZXQgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIkRJViIpOw0KICAgICAgICBlbGVtZW50LnNldEF0dHJpYnV0ZSgiaWQiLCB0aGlzLmludGVyYWN0aW9uSUQpOw0KICAgICAgICByZXR1cm4gZWxlbWVudDsNCiAgICB9DQogICAgY3JlYXRlRElWKCkgew0KICAgICAgICBsZXQgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIkRJViIpOw0KICAgICAgICBlbGVtZW50LmlkID0gdGhpcy5EaXZJRDsNCiAgICAgICAgcmV0dXJuIGVsZW1lbnQ7DQogICAgfQ0KICAgIGNyZWF0ZVRBQkxFKCkgew0KICAgICAgICBsZXQgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlRBQkxFIik7DQogICAgICAgIGVsZW1lbnQuaWQgPSB0aGlzLlRhYmxlSUQ7DQogICAgICAgIHJldHVybiBlbGVtZW50Ow0KICAgIH0NCiAgICBjcmVhdGVUYWJsZVJvdygpIHsNCiAgICAgICAgbGV0IGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJUUiIpOw0KICAgICAgICBlbGVtZW50LmNsYXNzTmFtZSA9IHRoaXMuaGVhZGVyQ2xhc3M7DQogICAgICAgIHJldHVybiBlbGVtZW50Ow0KICAgIH0NCiAgICBjcmVhdGVUYWJsZUNvbnRlbnQobWVudUtleSkgew0KICAgICAgICBsZXQgZGF0YSA9IHt9Ow0KICAgICAgICBsZXQgcm93cyA9IFtdOw0KICAgICAgICBsZXQgZmlsZVR5cGVzID0gW107DQogICAgICAgIHN3aXRjaCAobWVudUtleSkgew0KICAgICAgICAgICAgY2FzZSAicGxheWxpc3QiOg0KICAgICAgICAgICAgICAgIGZpbGVUeXBlcyA9IFsibTN1IiwgImhkaHIiXTsNCiAgICAgICAgICAgICAgICBmaWxlVHlwZXMuZm9yRWFjaChmaWxlVHlwZSA9PiB7DQogICAgICAgICAgICAgICAgICAgIGRhdGEgPSBTRVJWRVJbInNldHRpbmdzIl1bImZpbGVzIl1bZmlsZVR5cGVdOw0KICAgICAgICAgICAgICAgICAgICB2YXIga2V5cyA9IGdldE9iaktleXMoZGF0YSk7DQogICAgICAgICAgICAgICAgICAgIGtleXMuZm9yRWFjaChrZXkgPT4gew0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVFIiKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmlkID0ga2V5Ow0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgiJyArIGZpbGVUeXBlICsgJyIsIHRoaXMpJyk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsibmFtZSJdOw0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChTRVJWRVJbInNldHRpbmdzIl1bImJ1ZmZlciJdICE9ICItIikgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bInR1bmVyIl07DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gIi0iOw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bImxhc3QudXBkYXRlIl07DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsicHJvdmlkZXIuYXZhaWxhYmlsaXR5Il07DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsidHlwZSJdLnRvVXBwZXJDYXNlKCk7DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsiY29tcGF0aWJpbGl0eSJdWyJzdHJlYW1zIl07DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsiY29tcGF0aWJpbGl0eSJdWyJncm91cC50aXRsZSJdOw0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bImNvbXBhdGliaWxpdHkiXVsidHZnLmlkIl07DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsiY29tcGF0aWJpbGl0eSJdWyJzdHJlYW0uaWQiXTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHJvd3MucHVzaCh0cik7DQogICAgICAgICAgICAgICAgICAgIH0pOw0KICAgICAgICAgICAgICAgIH0pOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiZmlsdGVyIjoNCiAgICAgICAgICAgICAgICBkZWxldGUgU0VSVkVSWyJzZXR0aW5ncyJdWyJmaWx0ZXIiXVstMV07DQogICAgICAgICAgICAgICAgZGF0YSA9IFNFUlZFUlsic2V0dGluZ3MiXVsiZmlsdGVyIl07DQogICAgICAgICAgICAgICAgdmFyIGtleXMgPSBnZXRPYmpLZXlzKGRhdGEpOw0KICAgICAgICAgICAgICAgIGtleXMuZm9yRWFjaChrZXkgPT4gew0KICAgICAgICAgICAgICAgICAgICB2YXIgdHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJUUiIpOw0KICAgICAgICAgICAgICAgICAgICB0ci5pZCA9IGtleTsNCiAgICAgICAgICAgICAgICAgICAgdHIuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgiJyArIGRhdGFba2V5XVsidHlwZSJdICsgJyIsIHRoaXMpJyk7DQogICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJuYW1lIl07DQogICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgIHN3aXRjaCAoZGF0YVtrZXldWyJ0eXBlIl0pIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgImN1c3RvbS1maWx0ZXIiOg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSAie3suZmlsdGVyLmN1c3RvbX19IjsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgImdyb3VwLXRpdGxlIjoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gInt7LmZpbHRlci5ncm91cH19IjsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsiZmlsdGVyIl07DQogICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgcm93cy5wdXNoKHRyKTsNCiAgICAgICAgICAgICAgICB9KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInhtbHR2IjoNCiAgICAgICAgICAgICAgICBmaWxlVHlwZXMgPSBuZXcgQXJyYXkoInhtbHR2Iik7DQogICAgICAgICAgICAgICAgZmlsZVR5cGVzLmZvckVhY2goZmlsZVR5cGUgPT4gew0KICAgICAgICAgICAgICAgICAgICBkYXRhID0gU0VSVkVSWyJzZXR0aW5ncyJdWyJmaWxlcyJdW2ZpbGVUeXBlXTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGtleXMgPSBnZXRPYmpLZXlzKGRhdGEpOw0KICAgICAgICAgICAgICAgICAgICBrZXlzLmZvckVhY2goa2V5ID0+IHsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciB0ciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlRSIik7DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5pZCA9IGtleTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoIicgKyBmaWxlVHlwZSArICciLCB0aGlzKScpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bIm5hbWUiXTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJsYXN0LnVwZGF0ZSJdOw0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bInByb3ZpZGVyLmF2YWlsYWJpbGl0eSJdOw0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bImNvbXBhdGliaWxpdHkiXVsieG1sdHYuY2hhbm5lbHMiXTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJjb21wYXRpYmlsaXR5Il1bInhtbHR2LnByb2dyYW1zIl07DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICByb3dzLnB1c2godHIpOw0KICAgICAgICAgICAgICAgICAgICB9KTsNCiAgICAgICAgICAgICAgICB9KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInVzZXJzIjoNCiAgICAgICAgICAgICAgICBmaWxlVHlwZXMgPSBuZXcgQXJyYXkoInVzZXJzIik7DQogICAgICAgICAgICAgICAgZmlsZVR5cGVzLmZvckVhY2goZmlsZVR5cGUgPT4gew0KICAgICAgICAgICAgICAgICAgICBkYXRhID0gU0VSVkVSW2ZpbGVUeXBlXTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGtleXMgPSBnZXRPYmpLZXlzKGRhdGEpOw0KICAgICAgICAgICAgICAgICAgICBrZXlzLmZvckVhY2goa2V5ID0+IHsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciB0ciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlRSIik7DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5pZCA9IGtleTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoIicgKyBmaWxlVHlwZSArICciLCB0aGlzKScpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bImRhdGEiXVsidXNlcm5hbWUiXTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gIioqKioqKiI7DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGRhdGFba2V5XVsiZGF0YSJdWyJhdXRoZW50aWNhdGlvbi53ZWIiXSA9PSB0cnVlKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9ICLinJMiOw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9ICItIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgICAgICBpZiAoZGF0YVtrZXldWyJkYXRhIl1bImF1dGhlbnRpY2F0aW9uLnBtcyJdID09IHRydWUpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gIuKckyI7DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gIi0iOw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChkYXRhW2tleV1bImRhdGEiXVsiYXV0aGVudGljYXRpb24ubTN1Il0gPT0gdHJ1ZSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSAi4pyTIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSAiLSI7DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGRhdGFba2V5XVsiZGF0YSJdWyJhdXRoZW50aWNhdGlvbi54bWwiXSA9PSB0cnVlKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9ICLinJMiOw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9ICItIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgICAgICBpZiAoZGF0YVtrZXldWyJkYXRhIl1bImF1dGhlbnRpY2F0aW9uLmFwaSJdID09IHRydWUpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gIuKckyI7DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gIi0iOw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgcm93cy5wdXNoKHRyKTsNCiAgICAgICAgICAgICAgICAgICAgfSk7DQogICAgICAgICAgICAgICAgfSk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJtYXBwaW5nIjoNCiAgICAgICAgICAgICAgICBCVUxLX0VESVQgPSBmYWxzZTsNCiAgICAgICAgICAgICAgICBjcmVhdGVTZWFyY2hPYmooKTsNCiAgICAgICAgICAgICAgICBjaGVja1VuZG8oImVwZ01hcHBpbmciKTsNCiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZygiTUFQUElORyIpOw0KICAgICAgICAgICAgICAgIGRhdGEgPSBTRVJWRVJbInhlcGciXVsiZXBnTWFwcGluZyJdOw0KICAgICAgICAgICAgICAgIHZhciBrZXlzID0gZ2V0T2JqS2V5cyhkYXRhKTsNCiAgICAgICAgICAgICAgICBrZXlzLmZvckVhY2goa2V5ID0+IHsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVFIiKTsNCiAgICAgICAgICAgICAgICAgICAgdHIuaWQgPSBrZXk7DQogICAgICAgICAgICAgICAgICAgIC8vdHIuc2V0QXR0cmlidXRlKCdvbmNvbnRleHRtZW51JywgJ2phdmFzY3JpcHQ6IHJpZ2h0Q2xpY2sodGhpcyknKQ0KICAgICAgICAgICAgICAgICAgICBzd2l0Y2ggKGRhdGFba2V5XVsieC1hY3RpdmUiXSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSB0cnVlOg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyLmNsYXNzTmFtZSA9ICJhY3RpdmVFUEciOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSBmYWxzZToNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ci5jbGFzc05hbWUgPSAibm90QWN0aXZlRVBHIjsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAvLyBCdWxrDQogICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIkJVTEsiOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZmFsc2U7DQogICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgLy8gS2FuYWxudW1tZXINCiAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiSU5QVVRDSEFOTkVMIjsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsieC1jaGFubmVsSUQiXTsNCiAgICAgICAgICAgICAgICAgICAgLy90ZC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogY2hhbmdlQ2hhbm5lbE51bWJlcigiJyArIGtleSArICciLCB0aGlzKScpDQogICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgLy8gTG9nbw0KICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJJTUciOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmltYWdlVVJMID0gZGF0YVtrZXldWyJ0dmctbG9nbyJdOw0KICAgICAgICAgICAgICAgICAgICB2YXIgdGQgPSBjZWxsLmNyZWF0ZUNlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgdGQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgibWFwcGluZyIsIHRoaXMpJyk7DQogICAgICAgICAgICAgICAgICAgIHRkLmlkID0ga2V5Ow0KICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZCh0ZCk7DQogICAgICAgICAgICAgICAgICAgIC8vIEthbmFsbmFtZQ0KICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jbGFzc05hbWUgPSBkYXRhW2tleV1bIngtY2F0ZWdvcnkiXTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsieC1uYW1lIl07DQogICAgICAgICAgICAgICAgICAgIHZhciB0ZCA9IGNlbGwuY3JlYXRlQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICB0ZC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJtYXBwaW5nIiwgdGhpcyknKTsNCiAgICAgICAgICAgICAgICAgICAgdGQuaWQgPSBrZXk7DQogICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKHRkKTsNCiAgICAgICAgICAgICAgICAgICAgLy8gUGxheWxpc3QNCiAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgIC8vY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsiX2ZpbGUubTN1Lm5hbWUiXSANCiAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGdldFZhbHVlRnJvbVByb3ZpZGVyRmlsZShkYXRhW2tleV1bIl9maWxlLm0zdS5pZCJdLCAibTN1IiwgIm5hbWUiKTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHRkID0gY2VsbC5jcmVhdGVDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgIHRkLnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoIm1hcHBpbmciLCB0aGlzKScpOw0KICAgICAgICAgICAgICAgICAgICB0ZC5pZCA9IGtleTsNCiAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQodGQpOw0KICAgICAgICAgICAgICAgICAgICAvLyBHcnVwcGUgKGdyb3VwLXRpdGxlKQ0KICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsieC1ncm91cC10aXRsZSJdOw0KICAgICAgICAgICAgICAgICAgICB2YXIgdGQgPSBjZWxsLmNyZWF0ZUNlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgdGQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgibWFwcGluZyIsIHRoaXMpJyk7DQogICAgICAgICAgICAgICAgICAgIHRkLmlkID0ga2V5Ow0KICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZCh0ZCk7DQogICAgICAgICAgICAgICAgICAgIC8vIFhNTFRWIERhdGVpDQogICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICBpZiAoZGF0YVtrZXldWyJ4LXhtbHR2LWZpbGUiXSAhPSAiLSIpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBnZXRWYWx1ZUZyb21Qcm92aWRlckZpbGUoZGF0YVtrZXldWyJ4LXhtbHR2LWZpbGUiXSwgInhtbHR2IiwgIm5hbWUiKTsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bIngteG1sdHYtZmlsZSJdOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIHZhciB0ZCA9IGNlbGwuY3JlYXRlQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICB0ZC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJtYXBwaW5nIiwgdGhpcyknKTsNCiAgICAgICAgICAgICAgICAgICAgdGQuaWQgPSBrZXk7DQogICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKHRkKTsNCiAgICAgICAgICAgICAgICAgICAgLy8gWE1MVFYgS2FuYWwNCiAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgIC8vdmFyIHZhbHVlID0gc3RyLnN1YnN0cmluZygxLCA0KTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHZhbHVlID0gZGF0YVtrZXldWyJ4LW1hcHBpbmciXTsNCiAgICAgICAgICAgICAgICAgICAgaWYgKHZhbHVlLmxlbmd0aCA+IDIwKSB7DQogICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IGRhdGFba2V5XVsieC1tYXBwaW5nIl0uc3Vic3RyaW5nKDAsIDIwKSArICIuLi4iOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSB2YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHRkID0gY2VsbC5jcmVhdGVDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgIHRkLnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoIm1hcHBpbmciLCB0aGlzKScpOw0KICAgICAgICAgICAgICAgICAgICB0ZC5pZCA9IGtleTsNCiAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQodGQpOw0KICAgICAgICAgICAgICAgICAgICAvLyBUaW1lU2hpZnQNCiAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bIngtdGltZXNoaWZ0Il07DQogICAgICAgICAgICAgICAgICAgIHZhciB0ZCA9IGNlbGwuY3JlYXRlQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICB0ZC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJtYXBwaW5nIiwgdGhpcyknKTsNCiAgICAgICAgICAgICAgICAgICAgdGQuaWQgPSBrZXk7DQogICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKHRkKTsNCiAgICAgICAgICAgICAgICAgICAgcm93cy5wdXNoKHRyKTsNCiAgICAgICAgICAgICAgICB9KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInNldHRpbmdzIjoNCiAgICAgICAgICAgICAgICBhbGVydCgpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZygiVGFibGUgY29udGVudCAobWVudUtleSk6IiwgbWVudUtleSk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIH0NCiAgICAgICAgcmV0dXJuIHJvd3M7DQogICAgfQ0KfQ0KY2xhc3MgQ2VsbCB7DQogICAgY3JlYXRlQ2VsbCgpIHsNCiAgICAgICAgbGV0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgaWYgKHRoaXMuY2hpbGQgPT0gdHJ1ZSkgew0KICAgICAgICAgICAgdmFyIGVsZW1lbnQ7DQogICAgICAgICAgICBzd2l0Y2ggKHRoaXMuY2hpbGRUeXBlKSB7DQogICAgICAgICAgICAgICAgY2FzZSAiUCI6DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KHRoaXMuY2hpbGRUeXBlKTsNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC5pbm5lckhUTUwgPSB0aGlzLnZhbHVlOw0KICAgICAgICAgICAgICAgICAgICBlbGVtZW50LmNsYXNzTmFtZSA9IHRoaXMuY2xhc3NOYW1lOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBjYXNlICJJTlBVVCI6DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KHRoaXMuY2hpbGRUeXBlKTsNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC52YWx1ZSA9IHRoaXMudmFsdWU7DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQudHlwZSA9ICJ0ZXh0IjsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAiSU5QVVRDSEFOTkVMIjoNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIklOUFVUIik7DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZzY3JpcHQ6IGNoYW5nZUNoYW5uZWxOdW1iZXIodGhpcykiKTsNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC52YWx1ZSA9IHRoaXMudmFsdWU7DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQudHlwZSA9ICJ0ZXh0IjsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAiQlVMSyI6DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJJTlBVVCIpOw0KICAgICAgICAgICAgICAgICAgICBlbGVtZW50LmNoZWNrZWQgPSB0aGlzLnZhbHVlOw0KICAgICAgICAgICAgICAgICAgICBlbGVtZW50LnR5cGUgPSAiY2hlY2tib3giOw0KICAgICAgICAgICAgICAgICAgICBlbGVtZW50LmNsYXNzTmFtZSA9ICJidWxrIGhpZGVCdWxrIjsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAiQlVMS19IRUFEIjoNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIklOUFVUIik7DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQuY2hlY2tlZCA9IHRoaXMudmFsdWU7DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQudHlwZSA9ICJjaGVja2JveCI7DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQuY2xhc3NOYW1lID0gImJ1bGsgaGlkZUJ1bGsiOw0KICAgICAgICAgICAgICAgICAgICBlbGVtZW50LnNldEF0dHJpYnV0ZSgib25jbGljayIsICJqYXZhc2NyaXB0OiBzZWxlY3RBbGxDaGFubmVscygpIik7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgIklNRyI6DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KHRoaXMuY2hpbGRUeXBlKTsNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC5zZXRBdHRyaWJ1dGUoInNyYyIsIHRoaXMuaW1hZ2VVUkwpOw0KICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5pbWFnZVVSTCAhPSAiIikgew0KICAgICAgICAgICAgICAgICAgICAgICAgZWxlbWVudC5zZXRBdHRyaWJ1dGUoIm9uZXJyb3IiLCAiamF2YXNjcmlwdDogdGhpcy5vbmVycm9yPW51bGw7dGhpcy5zcmM9JyciKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIC8vb25lcnJvcj0idGhpcy5vbmVycm9yPW51bGw7dGhpcy5zcmM9J21pc3NpbmcuZ2lmJzsiDQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIHRkLmFwcGVuZENoaWxkKGVsZW1lbnQpOw0KICAgICAgICB9DQogICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgdGQuaW5uZXJIVE1MID0gdGhpcy52YWx1ZTsNCiAgICAgICAgfQ0KICAgICAgICBpZiAodGhpcy5vbmNsaWNrID09IHRydWUpIHsNCiAgICAgICAgICAgIHRkLnNldEF0dHJpYnV0ZSgib25jbGljayIsIHRoaXMub25jbGlja0Z1bmt0aW9uKTsNCiAgICAgICAgICAgIHRkLmNsYXNzTmFtZSA9ICJwb2ludGVyIjsNCiAgICAgICAgfQ0KICAgICAgICBpZiAodGhpcy50ZENsYXNzTmFtZSAhPSB1bmRlZmluZWQpIHsNCiAgICAgICAgICAgIHRkLmNsYXNzTmFtZSA9IHRoaXMudGRDbGFzc05hbWU7DQogICAgICAgIH0NCiAgICAgICAgcmV0dXJuIHRkOw0KICAgIH0NCn0NCmNsYXNzIFNob3dDb250ZW50IGV4dGVuZHMgQ29udGVudCB7DQogICAgY29uc3RydWN0b3IobWVudUlEKSB7DQogICAgICAgIHN1cGVyKCk7DQogICAgICAgIHRoaXMubWVudUlEID0gbWVudUlEOw0KICAgIH0NCiAgICBjcmVhdGVJbnB1dCh0eXBlLCBuYW1lLCB2YWx1ZSkgew0KICAgICAgICBsZXQgaW5wdXQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJJTlBVVCIpOw0KICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInR5cGUiLCB0eXBlKTsNCiAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJuYW1lIiwgbmFtZSk7DQogICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgidmFsdWUiLCB2YWx1ZSk7DQogICAgICAgIHJldHVybiBpbnB1dDsNCiAgICB9DQogICAgc2hvdygpIHsNCiAgICAgICAgQ09MVU1OX1RPX1NPUlQgPSAtMTsNCiAgICAgICAgLy8gQWx0ZW4gSW5oYWx0IGzDtnNjaGVuDQogICAgICAgIGxldCBkb2MgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCh0aGlzLkRvY3VtZW50SUQpOw0KICAgICAgICBkb2MuaW5uZXJIVE1MID0gIiI7DQogICAgICAgIHNob3dQcmV2aWV3KGZhbHNlKTsNCiAgICAgICAgLy8gw5xiZXJzY2hyaWZ0DQogICAgICAgIGxldCBoZWFkbGluZSA9IG1lbnVJdGVtc1t0aGlzLm1lbnVJRF0uaGVhZGxpbmU7DQogICAgICAgIGxldCBtZW51S2V5ID0gbWVudUl0ZW1zW3RoaXMubWVudUlEXS5tZW51S2V5Ow0KICAgICAgICBsZXQgaCA9IHRoaXMuY3JlYXRlSGVhZGxpbmUoaGVhZGxpbmUpOw0KICAgICAgICBkb2MuYXBwZW5kQ2hpbGQoaCk7DQogICAgICAgIGxldCBociA9IHRoaXMuY3JlYXRlSFIoKTsNCiAgICAgICAgZG9jLmFwcGVuZENoaWxkKGhyKTsNCiAgICAgICAgLy8gSW50ZXJha3Rpb24NCiAgICAgICAgbGV0IGRpdiA9IHRoaXMuY3JlYXRlSW50ZXJhY3Rpb24oKTsNCiAgICAgICAgZG9jLmFwcGVuZENoaWxkKGRpdik7DQogICAgICAgIGxldCBpbnRlcmFjdGlvbiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHRoaXMuaW50ZXJhY3Rpb25JRCk7DQogICAgICAgIHN3aXRjaCAobWVudUtleSkgew0KICAgICAgICAgICAgY2FzZSAicGxheWxpc3QiOg0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IHRoaXMuY3JlYXRlSW5wdXQoImJ1dHRvbiIsIG1lbnVLZXksICJ7ey5idXR0b24ubmV3fX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoImlkIiwgIi0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJwbGF5bGlzdCIpJyk7DQogICAgICAgICAgICAgICAgaW50ZXJhY3Rpb24uYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiZmlsdGVyIjoNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSB0aGlzLmNyZWF0ZUlucHV0KCJidXR0b24iLCBtZW51S2V5LCAie3suYnV0dG9uLm5ld319Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJpZCIsIC0xKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJmaWx0ZXIiLCB0aGlzKScpOw0KICAgICAgICAgICAgICAgIGludGVyYWN0aW9uLmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInhtbHR2IjoNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSB0aGlzLmNyZWF0ZUlucHV0KCJidXR0b24iLCBtZW51S2V5LCAie3suYnV0dG9uLm5ld319Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJpZCIsICJ4bWx0diIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoInhtbHR2IiknKTsNCiAgICAgICAgICAgICAgICBpbnRlcmFjdGlvbi5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ1c2VycyI6DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gdGhpcy5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgbWVudUtleSwgInt7LmJ1dHRvbi5uZXd9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgiaWQiLCAidXNlcnMiKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJ1c2VycyIpJyk7DQogICAgICAgICAgICAgICAgaW50ZXJhY3Rpb24uYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAibWFwcGluZyI6DQogICAgICAgICAgICAgICAgc2hvd0VsZW1lbnQoImxvYWRpbmciLCB0cnVlKTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSB0aGlzLmNyZWF0ZUlucHV0KCJidXR0b24iLCBtZW51S2V5LCAie3suYnV0dG9uLnNhdmV9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBzYXZlUG9wdXBEYXRhKCJtYXBwaW5nIiwgIiIsICIiKScpOw0KICAgICAgICAgICAgICAgIGludGVyYWN0aW9uLmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSB0aGlzLmNyZWF0ZUlucHV0KCJidXR0b24iLCBtZW51S2V5LCAie3suYnV0dG9uLmJ1bGtFZGl0fX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogYnVsa0VkaXQoKScpOw0KICAgICAgICAgICAgICAgIGludGVyYWN0aW9uLmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSB0aGlzLmNyZWF0ZUlucHV0KCJzZWFyY2giLCAic2VhcmNoIiwgIiIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgiaWQiLCAic2VhcmNoTWFwcGluZyIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3suYnV0dG9uLnNlYXJjaH19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuY2xhc3NOYW1lID0gInNlYXJjaCI7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICdqYXZhc2NyaXB0OiBzZWFyY2hJbk1hcHBpbmcoKScpOw0KICAgICAgICAgICAgICAgIGludGVyYWN0aW9uLmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInNldHRpbmdzIjoNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSB0aGlzLmNyZWF0ZUlucHV0KCJidXR0b24iLCBtZW51S2V5LCAie3suYnV0dG9uLnNhdmV9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBzYXZlU2V0dGluZ3MoKTsnKTsNCiAgICAgICAgICAgICAgICBpbnRlcmFjdGlvbi5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gdGhpcy5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgbWVudUtleSwgInt7LmJ1dHRvbi5iYWNrdXB9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBiYWNrdXAoKTsnKTsNCiAgICAgICAgICAgICAgICBpbnRlcmFjdGlvbi5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gdGhpcy5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgbWVudUtleSwgInt7LmJ1dHRvbi5yZXN0b3JlfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogcmVzdG9yZSgpOycpOw0KICAgICAgICAgICAgICAgIGludGVyYWN0aW9uLmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICB2YXIgd3JhcHBlciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIkRJViIpOw0KICAgICAgICAgICAgICAgIHdyYXBwZXIuc2V0QXR0cmlidXRlKCJpZCIsICJib3gtd3JhcHBlciIpOw0KICAgICAgICAgICAgICAgIGRvYy5hcHBlbmRDaGlsZCh3cmFwcGVyKTsNCiAgICAgICAgICAgICAgICB0aGlzLkRpdklEID0gImNvbnRlbnRfc2V0dGluZ3MiOw0KICAgICAgICAgICAgICAgIHZhciBzZXR0aW5ncyA9IHRoaXMuY3JlYXRlRElWKCk7DQogICAgICAgICAgICAgICAgd3JhcHBlci5hcHBlbmRDaGlsZChzZXR0aW5ncyk7DQogICAgICAgICAgICAgICAgc2hvd1NldHRpbmdzKCk7DQogICAgICAgICAgICAgICAgcmV0dXJuOw0KICAgICAgICAgICAgY2FzZSAibG9nIjoNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSB0aGlzLmNyZWF0ZUlucHV0KCJidXR0b24iLCBtZW51S2V5LCAie3suYnV0dG9uLnJlc2V0TG9nc319Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IHJlc2V0TG9ncygpOycpOw0KICAgICAgICAgICAgICAgIGludGVyYWN0aW9uLmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICB2YXIgd3JhcHBlciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIkRJViIpOw0KICAgICAgICAgICAgICAgIHdyYXBwZXIuc2V0QXR0cmlidXRlKCJpZCIsICJib3gtd3JhcHBlciIpOw0KICAgICAgICAgICAgICAgIGRvYy5hcHBlbmRDaGlsZCh3cmFwcGVyKTsNCiAgICAgICAgICAgICAgICB0aGlzLkRpdklEID0gImNvbnRlbnRfbG9nIjsNCiAgICAgICAgICAgICAgICB2YXIgbG9ncyA9IHRoaXMuY3JlYXRlRElWKCk7DQogICAgICAgICAgICAgICAgd3JhcHBlci5hcHBlbmRDaGlsZChsb2dzKTsNCiAgICAgICAgICAgICAgICBzaG93TG9ncyh0cnVlKTsNCiAgICAgICAgICAgICAgICByZXR1cm47DQogICAgICAgICAgICBjYXNlICJsb2dvdXQiOg0KICAgICAgICAgICAgICAgIGxvY2F0aW9uLnJlbG9hZCgpOw0KICAgICAgICAgICAgICAgIGRvY3VtZW50LmNvb2tpZSA9ICJUb2tlbj0gOyBleHBpcmVzID0gVGh1LCAwMSBKYW4gMTk3MCAwMDowMDowMCBHTVQiOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZygiU2hvdyBjb250ZW50IChtZW51S2V5KToiLCBtZW51S2V5KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgfQ0KICAgICAgICAvLyBUYWJlbGxlIGVyc3RlbGxlbiAoZmFsbHMgYmVuw7Z0aWd0KQ0KICAgICAgICB2YXIgdGFibGVIZWFkZXIgPSBtZW51SXRlbXNbdGhpcy5tZW51SURdLnRhYmxlSGVhZGVyOw0KICAgICAgICBpZiAodGFibGVIZWFkZXIubGVuZ3RoID4gMCkgew0KICAgICAgICAgICAgdmFyIHdyYXBwZXIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJESVYiKTsNCiAgICAgICAgICAgIGRvYy5hcHBlbmRDaGlsZCh3cmFwcGVyKTsNCiAgICAgICAgICAgIHdyYXBwZXIuc2V0QXR0cmlidXRlKCJpZCIsICJib3gtd3JhcHBlciIpOw0KICAgICAgICAgICAgdmFyIHRhYmxlID0gdGhpcy5jcmVhdGVUQUJMRSgpOw0KICAgICAgICAgICAgd3JhcHBlci5hcHBlbmRDaGlsZCh0YWJsZSk7DQogICAgICAgICAgICB2YXIgaGVhZGVyID0gdGhpcy5jcmVhdGVUYWJsZVJvdygpOw0KICAgICAgICAgICAgdGFibGUuYXBwZW5kQ2hpbGQoaGVhZGVyKTsNCiAgICAgICAgICAgIC8vIEtvcGZ6ZWlsZSBkZXIgVGFibGxlDQogICAgICAgICAgICB0YWJsZUhlYWRlci5mb3JFYWNoKGVsZW1lbnQgPT4gew0KICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZWxlbWVudDsNCiAgICAgICAgICAgICAgICBpZiAoZWxlbWVudCA9PSAiQlVMSyIpIHsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiQlVMS19IRUFEIjsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGZhbHNlOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBpZiAobWVudUtleSA9PSAibWFwcGluZyIpIHsNCiAgICAgICAgICAgICAgICAgICAgaWYgKGVsZW1lbnQgPT0gInt7Lm1hcHBpbmcudGFibGUuY2hOb319Iikgew0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5vbmNsaWNrID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwub25jbGlja0Z1bmt0aW9uID0gImphdmFzY3JpcHQ6IHNvcnRUYWJsZSgxKTsiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC50ZENsYXNzTmFtZSA9ICJzb3J0VGhpcyI7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgaWYgKGVsZW1lbnQgPT0gInt7Lm1hcHBpbmcudGFibGUuY2hhbm5lbE5hbWV9fSIpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwub25jbGljayA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLm9uY2xpY2tGdW5rdGlvbiA9ICJqYXZhc2NyaXB0OiBzb3J0VGFibGUoMyk7IjsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBpZiAoZWxlbWVudCA9PSAie3subWFwcGluZy50YWJsZS5wbGF5bGlzdH19Iikgew0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5vbmNsaWNrID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwub25jbGlja0Z1bmt0aW9uID0gImphdmFzY3JpcHQ6IHNvcnRUYWJsZSg0KTsiOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIGlmIChlbGVtZW50ID09ICJ7ey5tYXBwaW5nLnRhYmxlLmdyb3VwVGl0bGV9fSIpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwub25jbGljayA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLm9uY2xpY2tGdW5rdGlvbiA9ICJqYXZhc2NyaXB0OiBzb3J0VGFibGUoNSk7IjsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBoZWFkZXIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgfSk7DQogICAgICAgICAgICB0YWJsZS5hcHBlbmRDaGlsZChoZWFkZXIpOw0KICAgICAgICAgICAgLy8gSW5oYWx0IGRlciBUYWJlbGxlDQogICAgICAgICAgICB2YXIgcm93cyA9IHRoaXMuY3JlYXRlVGFibGVDb250ZW50KG1lbnVLZXkpOw0KICAgICAgICAgICAgcm93cy5mb3JFYWNoKHRyID0+IHsNCiAgICAgICAgICAgICAgICB0YWJsZS5hcHBlbmRDaGlsZCh0cik7DQogICAgICAgICAgICB9KTsNCiAgICAgICAgfQ0KICAgICAgICBzd2l0Y2ggKG1lbnVLZXkpIHsNCiAgICAgICAgICAgIGNhc2UgIm1hcHBpbmciOg0KICAgICAgICAgICAgICAgIHNvcnRUYWJsZSgxKTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImZpbHRlciI6DQogICAgICAgICAgICAgICAgc2hvd1ByZXZpZXcodHJ1ZSk7DQogICAgICAgICAgICAgICAgc29ydFRhYmxlKDApOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgICAgICBDT0xVTU5fVE9fU09SVCA9IC0xOw0KICAgICAgICAgICAgICAgIHNvcnRUYWJsZSgwKTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgfQ0KICAgICAgICBzaG93RWxlbWVudCgibG9hZGluZyIsIGZhbHNlKTsNCiAgICB9DQp9DQpmdW5jdGlvbiBQYWdlUmVhZHkoKSB7DQogICAgbGV0IHNlcnZlciA9IG5ldyBTZXJ2ZXIoImdldFNlcnZlckNvbmZpZyIpOw0KICAgIHNlcnZlci5yZXF1ZXN0KHt9KTsNCiAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigicmVzaXplIiwgZnVuY3Rpb24gKCkgew0KICAgICAgICBjYWxjdWxhdGVXcmFwcGVySGVpZ2h0KCk7DQogICAgfSwgdHJ1ZSk7DQogICAgc2V0SW50ZXJ2YWwoZnVuY3Rpb24gKCkgew0KICAgICAgICB1cGRhdGVMb2coKTsNCiAgICB9LCAxMDAwMCk7DQogICAgcmV0dXJuOw0KfQ0KZnVuY3Rpb24gY3JlYXRlTGF5b3V0KCkgew0KICAgIC8vIENsaWVudCBJbmZvDQogICAgbGV0IG9iaiA9IFNFUlZFUlsiY2xpZW50SW5mbyJdOw0KICAgIGxldCBrZXlzID0gZ2V0T2JqS2V5cyhvYmopOw0KICAgIGZvciAodmFyIGkgPSAwOyBpIDwga2V5cy5sZW5ndGg7IGkrKykgew0KICAgICAgICBpZiAoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoa2V5c1tpXSkpIHsNCiAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGtleXNbaV0pLmlubmVySFRNTCA9IG9ialtrZXlzW2ldXTsNCiAgICAgICAgfQ0KICAgIH0NCiAgICBpZiAoIWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJtYWluLW1lbnUiKSkgew0KICAgICAgICByZXR1cm47DQogICAgfQ0KICAgIC8vIE1lbsO8IGVyc3RlbGxlbg0KICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJtYWluLW1lbnUiKS5pbm5lckhUTUwgPSAiIjsNCiAgICBmb3IgKGxldCBpID0gMDsgaSA8IG1lbnVJdGVtcy5sZW5ndGg7IGkrKykgew0KICAgICAgICBtZW51SXRlbXNbaV0uaWQgPSBpOw0KICAgICAgICBzd2l0Y2ggKG1lbnVJdGVtc1tpXVsibWVudUtleSJdKSB7DQogICAgICAgICAgICBjYXNlICJ1c2VycyI6DQogICAgICAgICAgICBjYXNlICJsb2dvdXQiOg0KICAgICAgICAgICAgICAgIGlmIChTRVJWRVJbInNldHRpbmdzIl1bImF1dGhlbnRpY2F0aW9uLndlYiJdID09IHRydWUpIHsNCiAgICAgICAgICAgICAgICAgICAgbWVudUl0ZW1zW2ldLmNyZWF0ZUl0ZW0oKTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJtYXBwaW5nIjoNCiAgICAgICAgICAgIGNhc2UgInhtbHR2IjoNCiAgICAgICAgICAgICAgICBpZiAoU0VSVkVSWyJjbGllbnRJbmZvIl1bImVwZ1NvdXJjZSJdID09ICJYRVBHIikgew0KICAgICAgICAgICAgICAgICAgICBtZW51SXRlbXNbaV0uY3JlYXRlSXRlbSgpOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICAgICAgbWVudUl0ZW1zW2ldLmNyZWF0ZUl0ZW0oKTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgfQ0KICAgIH0NCiAgICByZXR1cm47DQp9DQpmdW5jdGlvbiBvcGVuVGhpc01lbnUoZWxlbWVudCkgew0KICAgIGxldCBpZCA9IGVsZW1lbnQuaWQ7DQogICAgbGV0IGNvbnRlbnQgPSBuZXcgU2hvd0NvbnRlbnQoaWQpOw0KICAgIGNvbnRlbnQuc2hvdygpOw0KICAgIGNhbGN1bGF0ZVdyYXBwZXJIZWlnaHQoKTsNCiAgICByZXR1cm47DQp9DQpjbGFzcyBQb3B1cFdpbmRvdyB7DQogICAgY29uc3RydWN0b3IoKSB7DQogICAgICAgIHRoaXMuRG9jdW1lbnRJRCA9ICJwb3B1cC1jdXN0b20iOw0KICAgICAgICB0aGlzLkludGVyYWN0aW9uSUQgPSAiaW50ZXJhY3Rpb24iOw0KICAgICAgICB0aGlzLmRvYyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHRoaXMuRG9jdW1lbnRJRCk7DQogICAgfQ0KICAgIGNyZWF0ZVRpdGxlKHRpdGxlKSB7DQogICAgICAgIGxldCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgIHRkLmNsYXNzTmFtZSA9ICJsZWZ0IjsNCiAgICAgICAgdGQuaW5uZXJIVE1MID0gdGl0bGUgKyAiOiI7DQogICAgICAgIHJldHVybiB0ZDsNCiAgICB9DQogICAgY3JlYXRlQ29udGVudChlbGVtZW50KSB7DQogICAgICAgIGxldCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgIHRkLmFwcGVuZENoaWxkKGVsZW1lbnQpOw0KICAgICAgICByZXR1cm4gdGQ7DQogICAgfQ0KICAgIGNyZWF0ZUludGVyYWN0aW9uKCkgew0KICAgICAgICBsZXQgZGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7DQogICAgICAgIGRpdi5zZXRBdHRyaWJ1dGUoImlkIiwgInBvcHVwLWludGVyYWN0aW9uIik7DQogICAgICAgIGRpdi5jbGFzc05hbWUgPSAiaW50ZXJhY3Rpb24iOw0KICAgICAgICB0aGlzLmRvYy5hcHBlbmRDaGlsZChkaXYpOw0KICAgIH0NCn0NCmNsYXNzIFBvcHVwQ29udGVudCBleHRlbmRzIFBvcHVwV2luZG93IHsNCiAgICBjb25zdHJ1Y3RvcigpIHsNCiAgICAgICAgc3VwZXIoLi4uYXJndW1lbnRzKTsNCiAgICAgICAgdGhpcy50YWJsZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlRBQkxFIik7DQogICAgfQ0KICAgIGNyZWF0ZUhlYWRsaW5lKGhlYWRsaW5lKSB7DQogICAgICAgIHRoaXMuZG9jLmlubmVySFRNTCA9ICIiOw0KICAgICAgICB2YXIgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIkgzIik7DQogICAgICAgIGVsZW1lbnQuaW5uZXJIVE1MID0gaGVhZGxpbmUudG9VcHBlckNhc2UoKTsNCiAgICAgICAgdGhpcy5kb2MuYXBwZW5kQ2hpbGQoZWxlbWVudCk7DQogICAgICAgIC8vIFRhYmVsbGUgZXJzdGVsbGVuDQogICAgICAgIHRoaXMudGFibGUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJUQUJMRSIpOw0KICAgICAgICB0aGlzLmRvYy5hcHBlbmRDaGlsZCh0aGlzLnRhYmxlKTsNCiAgICB9DQogICAgYXBwZW5kUm93KHRpdGxlLCBlbGVtZW50KSB7DQogICAgICAgIGxldCB0ciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlRSIik7DQogICAgICAgIC8vIEJlemVpY2hudW5nDQogICAgICAgIGlmICh0aXRsZS5sZW5ndGggIT0gMCkgew0KICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQodGhpcy5jcmVhdGVUaXRsZSh0aXRsZSkpOw0KICAgICAgICB9DQogICAgICAgIC8vIENvbnRlbnQNCiAgICAgICAgdHIuYXBwZW5kQ2hpbGQodGhpcy5jcmVhdGVDb250ZW50KGVsZW1lbnQpKTsNCiAgICAgICAgdGhpcy50YWJsZS5hcHBlbmRDaGlsZCh0cik7DQogICAgfQ0KICAgIGNyZWF0ZUlucHV0KHR5cGUsIG5hbWUsIHZhbHVlKSB7DQogICAgICAgIGxldCBpbnB1dCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIklOUFVUIik7DQogICAgICAgIGlmICh2YWx1ZSA9PSB1bmRlZmluZWQpIHsNCiAgICAgICAgICAgIHZhbHVlID0gIiI7DQogICAgICAgIH0NCiAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJ0eXBlIiwgdHlwZSk7DQogICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgibmFtZSIsIG5hbWUpOw0KICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInZhbHVlIiwgdmFsdWUpOw0KICAgICAgICByZXR1cm4gaW5wdXQ7DQogICAgfQ0KICAgIGNyZWF0ZUNoZWNrYm94KG5hbWUpIHsNCiAgICAgICAgbGV0IGlucHV0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiSU5QVVQiKTsNCiAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJ0eXBlIiwgImNoZWNrYm94Iik7DQogICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgibmFtZSIsIG5hbWUpOw0KICAgICAgICByZXR1cm4gaW5wdXQ7DQogICAgfQ0KICAgIC8vIENyZWF0ZXMgYSBzZWxlY3Rpb24gb2YgbXVsdGlwbGUgb3B0aW9ucyB2YWx1ZXMgd2l0aCB0ZXh0IGRlc2NyaXB0aW9ucw0KICAgIGNyZWF0ZVNlbGVjdCh0ZXh0LCB2YWx1ZXMsIHNldCwgZGJLZXkpIHsNCiAgICAgICAgbGV0IHNlbGVjdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlNFTEVDVCIpOw0KICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJuYW1lIiwgZGJLZXkpOw0KICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRleHQubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgICAgIGxldCBvcHRpb24gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJPUFRJT04iKTsNCiAgICAgICAgICAgIG9wdGlvbi5zZXRBdHRyaWJ1dGUoInZhbHVlIiwgdmFsdWVzW2ldKTsNCiAgICAgICAgICAgIG9wdGlvbi5pbm5lclRleHQgPSB0ZXh0W2ldOw0KICAgICAgICAgICAgc2VsZWN0LmFwcGVuZENoaWxkKG9wdGlvbik7DQogICAgICAgIH0NCiAgICAgICAgaWYgKHNldCAhPSAiIikgew0KICAgICAgICAgICAgc2VsZWN0LnZhbHVlID0gc2V0Ow0KICAgICAgICB9DQogICAgICAgIGlmIChzZXQgPT0gdW5kZWZpbmVkKSB7DQogICAgICAgICAgICBzZWxlY3QudmFsdWUgPSB2YWx1ZXNbMF07DQogICAgICAgIH0NCiAgICAgICAgcmV0dXJuIHNlbGVjdDsNCiAgICB9DQogICAgc2VsZWN0T3B0aW9uKHNlbGVjdCwgdmFsdWUpIHsNCiAgICAgICAgLy9zZWxlY3Quc2VsZWN0ZWRPcHRpb25zID0gdmFsdWUNCiAgICAgICAgbGV0IHMgPSBzZWxlY3Q7DQogICAgICAgIHMub3B0aW9uc1tzLnNlbGVjdGVkSW5kZXhdLnZhbHVlID0gdmFsdWU7DQogICAgICAgIHJldHVybiBzZWxlY3Q7DQogICAgfQ0KICAgIGRlc2NyaXB0aW9uKHZhbHVlKSB7DQogICAgICAgIGxldCB0ciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlRSIik7DQogICAgICAgIGxldCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgIGxldCBzcGFuID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiUFJFIik7DQogICAgICAgIHNwYW4uaW5uZXJIVE1MID0gdmFsdWU7DQogICAgICAgIHRyLmFwcGVuZENoaWxkKHRkKTsNCiAgICAgICAgdHIuYXBwZW5kQ2hpbGQodGhpcy5jcmVhdGVDb250ZW50KHNwYW4pKTsNCiAgICAgICAgdGhpcy50YWJsZS5hcHBlbmRDaGlsZCh0cik7DQogICAgfQ0KICAgIC8vIEludGVyYWt0aW9uDQogICAgYWRkSW50ZXJhY3Rpb24oZWxlbWVudCkgew0KICAgICAgICBsZXQgaW50ZXJhY3Rpb24gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicG9wdXAtaW50ZXJhY3Rpb24iKTsNCiAgICAgICAgaW50ZXJhY3Rpb24uYXBwZW5kQ2hpbGQoZWxlbWVudCk7DQogICAgfQ0KfQ0KZnVuY3Rpb24gb3BlblBvcFVwKGRhdGFUeXBlLCBlbGVtZW50KSB7DQogICAgbGV0IGRhdGEgPSB7fTsNCiAgICBsZXQgaWQ7DQogICAgc3dpdGNoIChlbGVtZW50KSB7DQogICAgICAgIGNhc2UgdW5kZWZpbmVkOg0KICAgICAgICAgICAgc3dpdGNoIChkYXRhVHlwZSkgew0KICAgICAgICAgICAgICAgIGNhc2UgImdyb3VwLXRpdGxlIjoNCiAgICAgICAgICAgICAgICAgICAgaWYgKGlkID09IHVuZGVmaW5lZCkgew0KICAgICAgICAgICAgICAgICAgICAgICAgaWQgPSAtMTsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBkYXRhID0gZ2V0TG9jYWxEYXRhKCJmaWx0ZXIiLCBpZCk7DQogICAgICAgICAgICAgICAgICAgIGRhdGFbInR5cGUiXSA9ICJncm91cC10aXRsZSI7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgImN1c3RvbS1maWx0ZXIiOg0KICAgICAgICAgICAgICAgICAgICBpZiAoaWQgPT0gdW5kZWZpbmVkKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBpZCA9IC0xOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIGRhdGEgPSBnZXRMb2NhbERhdGEoImZpbHRlciIsIGlkKTsNCiAgICAgICAgICAgICAgICAgICAgZGF0YVsidHlwZSJdID0gImN1c3RvbS1maWx0ZXIiOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBkZWZhdWx0Og0KICAgICAgICAgICAgICAgICAgICBkYXRhWyJpZC5wcm92aWRlciJdID0gIi0iOw0KICAgICAgICAgICAgICAgICAgICBkYXRhWyJ0eXBlIl0gPSBkYXRhVHlwZTsNCiAgICAgICAgICAgICAgICAgICAgaWQgPSAiLSI7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICBpZCA9IGVsZW1lbnQuaWQ7DQogICAgICAgICAgICBkYXRhID0gZ2V0TG9jYWxEYXRhKGRhdGFUeXBlLCBpZCk7DQogICAgICAgICAgICBicmVhazsNCiAgICB9DQogICAgbGV0IGNvbnRlbnQgPSBuZXcgUG9wdXBDb250ZW50KCk7DQogICAgc3dpdGNoIChkYXRhVHlwZSkgew0KICAgICAgICBjYXNlICJwbGF5bGlzdCI6DQogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUhlYWRsaW5lKCJ7ey5wbGF5bGlzdC5wbGF5bGlzdFR5cGUudGl0bGV9fSIpOw0KICAgICAgICAgICAgLy8gVHlwZQ0KICAgICAgICAgICAgdmFyIHRleHQgPSBbIk0zVSIsICJIREhvbWVSdW4iXTsNCiAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBbImphdmFzY3JpcHQ6IG9wZW5Qb3BVcCgnbTN1JykiLCAiamF2YXNjcmlwdDogb3BlblBvcFVwKCdoZGhyJykiXTsNCiAgICAgICAgICAgIHZhciBzZWxlY3QgPSBjb250ZW50LmNyZWF0ZVNlbGVjdCh0ZXh0LCB2YWx1ZXMsICIiLCAidHlwZSIpOw0KICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgiaWQiLCAidHlwZSIpOw0KICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAnamF2YXNjcmlwdDogY2hhbmdlQnV0dG9uQWN0aW9uKHRoaXMsICJuZXh0IiwgIm9uY2xpY2siKScpOyAvLyBjaGFuZ2VCdXR0b25BY3Rpb24NCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5wbGF5bGlzdC50eXBlLnRpdGxlfX0iLCBzZWxlY3QpOw0KICAgICAgICAgICAgLy8gSW50ZXJha3Rpb24NCiAgICAgICAgICAgIGNvbnRlbnQuY3JlYXRlSW50ZXJhY3Rpb24oKTsNCiAgICAgICAgICAgIC8vIEFiYnJlY2hlbg0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImNhbmNlbCIsICJ7ey5idXR0b24uY2FuY2VsfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBzaG93RWxlbWVudCgicG9wdXAiLCBmYWxzZSk7Jyk7DQogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIC8vIFdlaXRlcg0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgIm5leHQiLCAie3suYnV0dG9uLm5leHR9fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgibTN1IiknKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgiaWQiLCAnbmV4dCcpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSAibTN1IjoNCiAgICAgICAgICAgIGNvbnRlbnQuY3JlYXRlSGVhZGxpbmUoZGF0YVR5cGUpOw0KICAgICAgICAgICAgLy8gTmFtZQ0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gIm5hbWUiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnBsYXlsaXN0Lm5hbWUucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnBsYXlsaXN0Lm5hbWUudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIEJlc2NocmVpYnVuZw0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gImRlc2NyaXB0aW9uIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5wbGF5bGlzdC5kZXNjcmlwdGlvbi5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sucGxheWxpc3QuZGVzY3JpcHRpb24udGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIFVSTA0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gImZpbGUuc291cmNlIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5wbGF5bGlzdC5maWxlTTNVLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5wbGF5bGlzdC5maWxlTTNVLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBUdW5lcg0KICAgICAgICAgICAgaWYgKFNFUlZFUlsic2V0dGluZ3MiXVsiYnVmZmVyIl0gIT0gIi0iKSB7DQogICAgICAgICAgICAgICAgdmFyIHRleHQgPSBbXTsNCiAgICAgICAgICAgICAgICB2YXIgdmFsdWVzID0gW107DQogICAgICAgICAgICAgICAgZm9yICh2YXIgaSA9IDE7IGkgPD0gMTAwOyBpKyspIHsNCiAgICAgICAgICAgICAgICAgICAgdGV4dC5wdXNoKGkudG9TdHJpbmcoKSk7DQogICAgICAgICAgICAgICAgICAgIHZhbHVlcy5wdXNoKGkudG9TdHJpbmcoKSk7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIHZhciBkYktleSA9ICJ0dW5lciI7DQogICAgICAgICAgICAgICAgdmFyIHNlbGVjdCA9IGNvbnRlbnQuY3JlYXRlU2VsZWN0KHRleHQsIHZhbHVlcywgZGF0YVtkYktleV0sIGRiS2V5KTsNCiAgICAgICAgICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJvbmZvY3VzIiwgImphdmFzY3JpcHQ6IHJldHVybjsiKTsNCiAgICAgICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sucGxheWxpc3QudHVuZXIudGl0bGV9fSIsIHNlbGVjdCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICB2YXIgZGJLZXkgPSAidHVuZXIiOw0KICAgICAgICAgICAgICAgIGlmIChkYXRhW2RiS2V5XSA9PSB1bmRlZmluZWQpIHsNCiAgICAgICAgICAgICAgICAgICAgZGF0YVtkYktleV0gPSAxOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInJlYWRvbmx5IiwgInRydWUiKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5jbGFzc05hbWUgPSAibm90QXZhaWxhYmxlIjsNCiAgICAgICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sucGxheWxpc3QudHVuZXIudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGNvbnRlbnQuZGVzY3JpcHRpb24oInt7LnBsYXlsaXN0LnR1bmVyLmRlc2NyaXB0aW9ufX0iKTsNCiAgICAgICAgICAgIC8vIEludGVyYWt0aW9uDQogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUludGVyYWN0aW9uKCk7DQogICAgICAgICAgICAvLyBMw7ZzY2hlbg0KICAgICAgICAgICAgaWYgKGRhdGFbImlkLnByb3ZpZGVyIl0gIT0gIi0iKSB7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImRlbGV0ZSIsICJ7ey5idXR0b24uZGVsZXRlfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5jbGFzc05hbWUgPSAiZGVsZXRlIjsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogc2F2ZVBvcHVwRGF0YSgibTN1IiwgIicgKyBpZCArICciLCB0cnVlLCAwKScpOw0KICAgICAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgZWxzZSB7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImJhY2siLCAie3suYnV0dG9uLmJhY2t9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoInBsYXlsaXN0IiknKTsNCiAgICAgICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIC8vIEFiYnJlY2hlbg0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImNhbmNlbCIsICJ7ey5idXR0b24uY2FuY2VsfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBzaG93RWxlbWVudCgicG9wdXAiLCBmYWxzZSk7Jyk7DQogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIC8vIEFrdHVhbGlzaWVyZW4NCiAgICAgICAgICAgIGlmIChkYXRhWyJpZC5wcm92aWRlciJdICE9ICItIikgew0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJ1cGRhdGUiLCAie3suYnV0dG9uLnVwZGF0ZX19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoIm0zdSIsICInICsgaWQgKyAnIiwgZmFsc2UsIDEpJyk7DQogICAgICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICAvLyBTcGVpY2hlcm4NCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJzYXZlIiwgInt7LmJ1dHRvbi5zYXZlfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBzYXZlUG9wdXBEYXRhKCJtM3UiLCAiJyArIGlkICsgJyIsIGZhbHNlLCAwKScpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSAiaGRociI6DQogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUhlYWRsaW5lKGRhdGFUeXBlKTsNCiAgICAgICAgICAgIC8vIE5hbWUNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJuYW1lIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5wbGF5bGlzdC5uYW1lLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5wbGF5bGlzdC5uYW1lLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBCZXNjaHJlaWJ1bmcNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJkZXNjcmlwdGlvbiI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3sucGxheWxpc3QuZGVzY3JpcHRpb24ucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnBsYXlsaXN0LmRlc2NyaXB0aW9uLnBsYWNlaG9sZGVyfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBVUkwNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJmaWxlLnNvdXJjZSI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3sucGxheWxpc3QuZmlsZUhESFIucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnBsYXlsaXN0LmZpbGVIREhSLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBUdW5lcg0KICAgICAgICAgICAgaWYgKFNFUlZFUlsic2V0dGluZ3MiXVsiYnVmZmVyIl0gIT0gIi0iKSB7DQogICAgICAgICAgICAgICAgdmFyIHRleHQgPSBbXTsNCiAgICAgICAgICAgICAgICB2YXIgdmFsdWVzID0gW107DQogICAgICAgICAgICAgICAgZm9yICh2YXIgaSA9IDE7IGkgPD0gMTAwOyBpKyspIHsNCiAgICAgICAgICAgICAgICAgICAgdGV4dC5wdXNoKGkudG9TdHJpbmcoKSk7DQogICAgICAgICAgICAgICAgICAgIHZhbHVlcy5wdXNoKGkudG9TdHJpbmcoKSk7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIHZhciBkYktleSA9ICJ0dW5lciI7DQogICAgICAgICAgICAgICAgdmFyIHNlbGVjdCA9IGNvbnRlbnQuY3JlYXRlU2VsZWN0KHRleHQsIHZhbHVlcywgZGF0YVtkYktleV0sIGRiS2V5KTsNCiAgICAgICAgICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJvbmZvY3VzIiwgImphdmFzY3JpcHQ6IHJldHVybjsiKTsNCiAgICAgICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sucGxheWxpc3QudHVuZXIudGl0bGV9fSIsIHNlbGVjdCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICB2YXIgZGJLZXkgPSAidHVuZXIiOw0KICAgICAgICAgICAgICAgIGlmIChkYXRhW2RiS2V5XSA9PSB1bmRlZmluZWQpIHsNCiAgICAgICAgICAgICAgICAgICAgZGF0YVtkYktleV0gPSAxOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInJlYWRvbmx5IiwgInRydWUiKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5jbGFzc05hbWUgPSAibm90QXZhaWxhYmxlIjsNCiAgICAgICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sucGxheWxpc3QudHVuZXIudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGNvbnRlbnQuZGVzY3JpcHRpb24oInt7LnBsYXlsaXN0LnR1bmVyLmRlc2NyaXB0aW9ufX0iKTsNCiAgICAgICAgICAgIC8vIEludGVyYWt0aW9uDQogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUludGVyYWN0aW9uKCk7DQogICAgICAgICAgICAvLyBMw7ZzY2hlbg0KICAgICAgICAgICAgaWYgKGRhdGFbImlkLnByb3ZpZGVyIl0gIT0gIi0iKSB7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImRlbGV0ZSIsICJ7ey5idXR0b24uZGVsZXRlfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogc2F2ZVBvcHVwRGF0YSgiaGRociIsICInICsgaWQgKyAnIiwgdHJ1ZSwgMCknKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5jbGFzc05hbWUgPSAiZGVsZXRlIjsNCiAgICAgICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJiYWNrIiwgInt7LmJ1dHRvbi5iYWNrfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJwbGF5bGlzdCIpJyk7DQogICAgICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICAvLyBBYmJyZWNoZW4NCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJjYW5jZWwiLCAie3suYnV0dG9uLmNhbmNlbH19Iik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogc2hvd0VsZW1lbnQoInBvcHVwIiwgZmFsc2UpOycpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICAvLyBBa3R1YWxpc2llcmVuDQogICAgICAgICAgICBpZiAoZGF0YVsiaWQucHJvdmlkZXIiXSAhPSAiLSIpIHsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAidXBkYXRlIiwgInt7LmJ1dHRvbi51cGRhdGV9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBzYXZlUG9wdXBEYXRhKCJoZGhyIiwgIicgKyBpZCArICciLCBmYWxzZSwgMSknKTsNCiAgICAgICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIC8vIFNwZWljaGVybg0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgInNhdmUiLCAie3suYnV0dG9uLnNhdmV9fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoImhkaHIiLCAiJyArIGlkICsgJyIsIGZhbHNlLCAwKScpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSAiZmlsdGVyIjoNCiAgICAgICAgICAgIGNvbnRlbnQuY3JlYXRlSGVhZGxpbmUoZGF0YVR5cGUpOw0KICAgICAgICAgICAgLy8gVHlwZQ0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gInR5cGUiOw0KICAgICAgICAgICAgdmFyIHRleHQgPSBbIk0zVTogIiArICJ7ey5maWx0ZXIudHlwZS5ncm91cFRpdGxlfX0iLCAieFRlVmU6ICIgKyAie3suZmlsdGVyLnR5cGUuY3VzdG9tRmlsdGVyfX0iXTsNCiAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBbImphdmFzY3JpcHQ6IG9wZW5Qb3BVcCgnZ3JvdXAtdGl0bGUnKSIsICJqYXZhc2NyaXB0OiBvcGVuUG9wVXAoJ2N1c3RvbS1maWx0ZXInKSJdOw0KICAgICAgICAgICAgdmFyIHNlbGVjdCA9IGNvbnRlbnQuY3JlYXRlU2VsZWN0KHRleHQsIHZhbHVlcywgImphdmFzY3JpcHQ6IG9wZW5Qb3BVcCgnZ3JvdXAtdGl0bGUnKSIsIGRiS2V5KTsNCiAgICAgICAgICAgIHNlbGVjdC5zZXRBdHRyaWJ1dGUoImlkIiwgaWQpOw0KICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAnamF2YXNjcmlwdDogY2hhbmdlQnV0dG9uQWN0aW9uKHRoaXMsICJuZXh0IiwgIm9uY2xpY2siKTsnKTsgLy8gY2hhbmdlQnV0dG9uQWN0aW9uDQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3suZmlsdGVyLnR5cGUudGl0bGV9fSIsIHNlbGVjdCk7DQogICAgICAgICAgICAvLyBJbnRlcmFrdGlvbg0KICAgICAgICAgICAgY29udGVudC5jcmVhdGVJbnRlcmFjdGlvbigpOw0KICAgICAgICAgICAgLy8gQWJicmVjaGVuDQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAiY2FuY2VsIiwgInt7LmJ1dHRvbi5jYW5jZWx9fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IHNob3dFbGVtZW50KCJwb3B1cCIsIGZhbHNlKTsnKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgLy8gV2VpdGVyDQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAibmV4dCIsICJ7ey5idXR0b24ubmV4dH19Iik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJncm91cC10aXRsZSIpJyk7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoImlkIiwgJ25leHQnKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGNhc2UgImN1c3RvbS1maWx0ZXIiOg0KICAgICAgICBjYXNlICJncm91cC10aXRsZSI6DQogICAgICAgICAgICBzd2l0Y2ggKGRhdGFUeXBlKSB7DQogICAgICAgICAgICAgICAgY2FzZSAiY3VzdG9tLWZpbHRlciI6DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuY3JlYXRlSGVhZGxpbmUoInt7LmZpbHRlci5jdXN0b219fSIgKyAiIEZpbHRlciIpOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBjYXNlICJncm91cC10aXRsZSI6DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuY3JlYXRlSGVhZGxpbmUoInt7LmZpbHRlci5ncm91cH19IiArICIgRmlsdGVyIik7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgLy8gTmFtZSAgICAgIA0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gIm5hbWUiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LmZpbHRlci5uYW1lLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5maWx0ZXIubmFtZS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgLy8gQmVzY2hyZWlidW5nDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAiZGVzY3JpcHRpb24iOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LmZpbHRlci5kZXNjcmlwdGlvbi5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3suZmlsdGVyLmRlc2NyaXB0aW9uLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBUeXANCiAgICAgICAgICAgIHZhciBkYktleSA9ICJ0eXBlIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImhpZGRlbiIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygiIiwgaW5wdXQpOw0KICAgICAgICAgICAgdmFyIGZpbHRlclR5cGUgPSBkYXRhW2RiS2V5XTsNCiAgICAgICAgICAgIHN3aXRjaCAoZmlsdGVyVHlwZSkgew0KICAgICAgICAgICAgICAgIGNhc2UgImN1c3RvbS1maWx0ZXIiOg0KICAgICAgICAgICAgICAgICAgICAvLyBHcm/Dny0gS2xlaW5zY2hyZWlidW5nIGJlYWNodGVuDQogICAgICAgICAgICAgICAgICAgIHZhciBkYktleSA9ICJjYXNlU2Vuc2l0aXZlIjsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChkYktleSk7DQogICAgICAgICAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhW2RiS2V5XTsNCiAgICAgICAgICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LmZpbHRlci5jYXNlU2Vuc2l0aXZlLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAgICAgICAgIC8vIEZpbHRlcnJlZ2VsIChCZW51dHplcmRlZmluaWVydCkNCiAgICAgICAgICAgICAgICAgICAgdmFyIGRiS2V5ID0gImZpbHRlciI7DQogICAgICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LmZpbHRlci5maWx0ZXJSdWxlLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LmZpbHRlci5maWx0ZXJSdWxlLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgImdyb3VwLXRpdGxlIjoNCiAgICAgICAgICAgICAgICAgICAgLy9hbGVydChkYktleSArICIgIiArIGZpbHRlclR5cGUpDQogICAgICAgICAgICAgICAgICAgIC8vIEZpbHRlciBiYXNpZXJlbmQgYXVmIGRlbiBHcnVwcGVuIGluIGRlciBNM1UNCiAgICAgICAgICAgICAgICAgICAgdmFyIGRiS2V5ID0gImZpbHRlciI7DQogICAgICAgICAgICAgICAgICAgIHZhciBncm91cHNNM1UgPSBnZXRMb2NhbERhdGEoIm0zdUdyb3VwcyIsICIiKTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHRleHQgPSBncm91cHNNM1VbInRleHQiXTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHZhbHVlcyA9IGdyb3Vwc00zVVsidmFsdWUiXTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHNlbGVjdCA9IGNvbnRlbnQuY3JlYXRlU2VsZWN0KHRleHQsIHZhbHVlcywgZGF0YVtkYktleV0sIGRiS2V5KTsNCiAgICAgICAgICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LmZpbHRlci5maWx0ZXJHcm91cC50aXRsZX19Iiwgc2VsZWN0KTsNCiAgICAgICAgICAgICAgICAgICAgY29udGVudC5kZXNjcmlwdGlvbigie3suZmlsdGVyLmZpbHRlckdyb3VwLmRlc2NyaXB0aW9ufX0iKTsNCiAgICAgICAgICAgICAgICAgICAgLy8gR3Jvw58tIEtsZWluc2NocmVpYnVuZyBiZWFjaHRlbg0KICAgICAgICAgICAgICAgICAgICB2YXIgZGJLZXkgPSAiY2FzZVNlbnNpdGl2ZSI7DQogICAgICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goZGJLZXkpOw0KICAgICAgICAgICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YVtkYktleV07DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5maWx0ZXIuY2FzZVNlbnNpdGl2ZS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgICAgICAgICB2YXIgZGJLZXkgPSAiaW5jbHVkZSI7DQogICAgICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LmZpbHRlci5pbmNsdWRlLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LmZpbHRlci5pbmNsdWRlLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuZGVzY3JpcHRpb24oInt7LmZpbHRlci5pbmNsdWRlLmRlc2NyaXB0aW9ufX0iKTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGRiS2V5ID0gImV4Y2x1ZGUiOw0KICAgICAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5maWx0ZXIuZXhjbHVkZS5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5maWx0ZXIuZXhjbHVkZS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgICAgICAgICBjb250ZW50LmRlc2NyaXB0aW9uKCJ7ey5maWx0ZXIuZXhjbHVkZS5kZXNjcmlwdGlvbn19Iik7DQogICAgICAgICAgICAgICAgICAgIC8vIFByZXNlcnZlIE0zVSBQbGF5bGlzdCBDaGFubmVsIE1hcHBpbmcNCiAgICAgICAgICAgICAgICAgICAgdmFyIGRiS2V5ID0gInByZXNlcnZlTWFwcGluZyI7DQogICAgICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goZGJLZXkpOw0KICAgICAgICAgICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YVtkYktleV07DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5maWx0ZXIucHJlc2VydmVNYXBwaW5nLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAgICAgICAgIC8vIFN0YXJ0aW5nIENoYW5uZWwgTnVtYmVyIE1hcHBpbmcNCiAgICAgICAgICAgICAgICAgICAgdmFyIGRiS2V5ID0gInN0YXJ0aW5nQ2hhbm5lbCI7DQogICAgICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LmZpbHRlci5zdGFydGluZ0NoYW5uZWwucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3suZmlsdGVyLnN0YXJ0aW5nQ2hhbm5lbC50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgICAgICAgICAvLyBGaWxsIE1pc3NpbmcgRVBHIERhdGENCiAgICAgICAgICAgICAgICAgICAgLy8gVGhlIGZvbGxvd2luZyBjb2RlIG9ubHkgd29ya3Mgd2hlbiB4VGVWZSBEdW1teSBhbHJlYWR5IGV4aXN0cw0KICAgICAgICAgICAgICAgICAgICAvLyB2YXIgZGJLZXk6c3RyaW5nID0gImRlZmF1bHRNaXNzaW5nRVBHIg0KICAgICAgICAgICAgICAgICAgICAvLyB2YXIgeG1sdHY6WE1MVFZGaWxlID0gbmV3IFhNTFRWRmlsZSgpDQogICAgICAgICAgICAgICAgICAgIC8vIHZhciBzZWxlY3QgPSB4bWx0di5nZXRQcm9ncmFtcygieFRlVmUgRHVtbXkiLCBkYXRhW2RiS2V5XSkNCiAgICAgICAgICAgICAgICAgICAgLy8gc2VsZWN0LnNldEF0dHJpYnV0ZSgibmFtZSIsIGRiS2V5KQ0KICAgICAgICAgICAgICAgICAgICAvLyBzZWxlY3Quc2V0QXR0cmlidXRlKCJpZCIsICJwb3B1cC1taXNzaW5nLWVwZyIpDQogICAgICAgICAgICAgICAgICAgIC8vIFRoZSB3b3JrYXJvdW5kIGlzIGN1cnJlbnRseSB0byBoYXJkIGNvZGUgdGhlIHhUZVZlIER1bW15IGRhdGENCiAgICAgICAgICAgICAgICAgICAgdmFyIGRiS2V5ID0gImRlZmF1bHRNaXNzaW5nRVBHIjsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGxpc3RPcHRpb25zID0geyAidGV4dCI6IFsiLSIsICIzMCBNaW51dGVzICgzMF9NaW51dGVzKSIsICI2MCBNaW51dGVzICg2MF9NaW51dGVzKSIsICI5MCBNaW51dGVzICg5MF9NaW51dGVzKSIsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgIjEyMCBNaW51dGVzICgxMjBfTWludXRlcykiLCAiMTgwIE1pbnV0ZXMgKDMwX01pbnV0ZXMpIiwgIjI0MCBNaW51dGVzICgzMF9NaW51dGVzKSIsICIzNjAgTWludXRlcyAoMzBfTWludXRlcykiXSwNCiAgICAgICAgICAgICAgICAgICAgICAgICJ2YWx1ZSI6IFsiLSIsICIzMF9NaW51dGVzIiwgIjYwX01pbnV0ZXMiLCAiOTBfTWludXRlcyIsICIxMjBfTWludXRlcyIsICIxODBfTWludXRlcyIsICIyNDBfTWludXRlcyIsICIzNjBfTWludXRlcyIsXSB9Ow0KICAgICAgICAgICAgICAgICAgICB2YXIgdGV4dCA9IGxpc3RPcHRpb25zWyJ0ZXh0Il07DQogICAgICAgICAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBsaXN0T3B0aW9uc1sidmFsdWUiXTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHNlbGVjdCA9IGNvbnRlbnQuY3JlYXRlU2VsZWN0KHRleHQsIHZhbHVlcywgZGF0YVtkYktleV0sIGRiS2V5KTsNCiAgICAgICAgICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LmZpbHRlci5kZWZhdWx0TWlzc2luZ0VQRy50aXRsZX19Iiwgc2VsZWN0KTsNCiAgICAgICAgICAgICAgICAgICAgY29udGVudC5kZXNjcmlwdGlvbigie3suZmlsdGVyLmRlZmF1bHRNaXNzaW5nRVBHLmRlc2NyaXB0aW9ufX0iKTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICB9DQogICAgICAgICAgICAvLyBJbnRlcmFrdGlvbg0KICAgICAgICAgICAgY29udGVudC5jcmVhdGVJbnRlcmFjdGlvbigpOw0KICAgICAgICAgICAgLy8gTMO2c2NoZW4NCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJkZWxldGUiLCAie3suYnV0dG9uLmRlbGV0ZX19Iik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogc2F2ZVBvcHVwRGF0YSgiZmlsdGVyIiwgIicgKyBpZCArICciLCB0cnVlLCAwKScpOw0KICAgICAgICAgICAgaW5wdXQuY2xhc3NOYW1lID0gImRlbGV0ZSI7DQogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIC8vIEFiYnJlY2hlbg0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImNhbmNlbCIsICJ7ey5idXR0b24uY2FuY2VsfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBzaG93RWxlbWVudCgicG9wdXAiLCBmYWxzZSk7Jyk7DQogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIC8vIFNwZWljaGVybg0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgInNhdmUiLCAie3suYnV0dG9uLnNhdmV9fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoImZpbHRlciIsICInICsgaWQgKyAnIiwgZmFsc2UsIDApJyk7DQogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJ4bWx0diI6DQogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUhlYWRsaW5lKGRhdGFUeXBlKTsNCiAgICAgICAgICAgIC8vIE5hbWUNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJuYW1lIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey54bWx0di5uYW1lLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey54bWx0di5uYW1lLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBCZXNjaHJlaWJ1bmcNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJkZXNjcmlwdGlvbiI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3sueG1sdHYuZGVzY3JpcHRpb24ucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnhtbHR2LmRlc2NyaXB0aW9uLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBVUkwNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJmaWxlLnNvdXJjZSI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3sueG1sdHYuZmlsZVhNTFRWLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey54bWx0di5maWxlWE1MVFYudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIEludGVyYWt0aW9uDQogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUludGVyYWN0aW9uKCk7DQogICAgICAgICAgICAvLyBMw7ZzY2hlbg0KICAgICAgICAgICAgaWYgKGRhdGFbImlkLnByb3ZpZGVyIl0gIT0gIi0iKSB7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImRlbGV0ZSIsICJ7ey5idXR0b24uZGVsZXRlfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogc2F2ZVBvcHVwRGF0YSgieG1sdHYiLCAiJyArIGlkICsgJyIsIHRydWUsIDApJyk7DQogICAgICAgICAgICAgICAgaW5wdXQuY2xhc3NOYW1lID0gImRlbGV0ZSI7DQogICAgICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICAvLyBBYmJyZWNoZW4NCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJjYW5jZWwiLCAie3suYnV0dG9uLmNhbmNlbH19Iik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogc2hvd0VsZW1lbnQoInBvcHVwIiwgZmFsc2UpOycpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICAvLyBBa3R1YWxpc2llcmVuDQogICAgICAgICAgICBpZiAoZGF0YVsiaWQucHJvdmlkZXIiXSAhPSAiLSIpIHsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAidXBkYXRlIiwgInt7LmJ1dHRvbi51cGRhdGV9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBzYXZlUG9wdXBEYXRhKCJ4bWx0diIsICInICsgaWQgKyAnIiwgZmFsc2UsIDEpJyk7DQogICAgICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICAvLyBTcGVpY2hlcm4NCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJzYXZlIiwgInt7LmJ1dHRvbi5zYXZlfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBzYXZlUG9wdXBEYXRhKCJ4bWx0diIsICInICsgaWQgKyAnIiwgZmFsc2UsIDApJyk7DQogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJ1c2VycyI6DQogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUhlYWRsaW5lKCJ7ey5tYWluTWVudS5pdGVtLnVzZXJzfX0iKTsNCiAgICAgICAgICAgIC8vIEJlbnV0emVybmFtZSANCiAgICAgICAgICAgIHZhciBkYktleSA9ICJ1c2VybmFtZSI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3sudXNlcnMudXNlcm5hbWUucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnVzZXJzLnVzZXJuYW1lLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBOZXVlcyBQYXNzd29ydCANCiAgICAgICAgICAgIHZhciBkYktleSA9ICJwYXNzd29yZCI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJwYXNzd29yZCIsIGRiS2V5LCAiIik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnVzZXJzLnBhc3N3b3JkLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey51c2Vycy5wYXNzd29yZC50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgLy8gQmVzdMOkdGlndW5nIA0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gImNvbmZpcm0iOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgicGFzc3dvcmQiLCBkYktleSwgIiIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey51c2Vycy5jb25maXJtLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey51c2Vycy5jb25maXJtLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBCZXJlY2h0aWd1bmcgV0VCDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAiYXV0aGVudGljYXRpb24ud2ViIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goZGJLZXkpOw0KICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGFbZGJLZXldOw0KICAgICAgICAgICAgaWYgKGRhdGFbImRlZmF1bHRVc2VyIl0gPT0gdHJ1ZSkgew0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICJqYXZhc2NyaXB0OiByZXR1cm4gZmFsc2UiKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey51c2Vycy53ZWIudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIEJlcmVjaHRpZ3VuZyBQTVMNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJhdXRoZW50aWNhdGlvbi5wbXMiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChkYktleSk7DQogICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YVtkYktleV07DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sudXNlcnMucG1zLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBCZXJlY2h0aWd1bmcgTTNVDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAiYXV0aGVudGljYXRpb24ubTN1IjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goZGJLZXkpOw0KICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGFbZGJLZXldOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnVzZXJzLm0zdS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgLy8gQmVyZWNodGlndW5nIFhNTA0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gImF1dGhlbnRpY2F0aW9uLnhtbCI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KGRiS2V5KTsNCiAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhW2RiS2V5XTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey51c2Vycy54bWwudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIEJlcmVjaHRpZ3VuZyBBUEkNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJhdXRoZW50aWNhdGlvbi5hcGkiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChkYktleSk7DQogICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YVtkYktleV07DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sudXNlcnMuYXBpLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBJbnRlcmFrdGlvbg0KICAgICAgICAgICAgY29udGVudC5jcmVhdGVJbnRlcmFjdGlvbigpOw0KICAgICAgICAgICAgLy8gTMO2c2NoZW4NCiAgICAgICAgICAgIGlmIChkYXRhWyJkZWZhdWx0VXNlciJdICE9IHRydWUgJiYgaWQgIT0gIi0iKSB7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImRlbGV0ZSIsICJ7ey5idXR0b24uZGVsZXRlfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5jbGFzc05hbWUgPSAiZGVsZXRlIjsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogc2F2ZVBvcHVwRGF0YSgiJyArIGRhdGFUeXBlICsgJyIsICInICsgaWQgKyAnIiwgdHJ1ZSwgMCknKTsNCiAgICAgICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIC8vIEFiYnJlY2hlbg0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImNhbmNlbCIsICJ7ey5idXR0b24uY2FuY2VsfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBzaG93RWxlbWVudCgicG9wdXAiLCBmYWxzZSk7Jyk7DQogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIC8vIFNwZWljaGVybg0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgInNhdmUiLCAie3suYnV0dG9uLnNhdmV9fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoIicgKyBkYXRhVHlwZSArICciLCAiJyArIGlkICsgJyIsICJmYWxzZSIpOycpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSAibWFwcGluZyI6DQogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUhlYWRsaW5lKCJ7ey5tYWluTWVudS5pdGVtLm1hcHBpbmd9fSIpOw0KICAgICAgICAgICAgLy8gQWt0aXYgDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAieC1hY3RpdmUiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChkYktleSk7DQogICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YVtkYktleV07DQogICAgICAgICAgICBpbnB1dC5pZCA9ICJhY3RpdmUiOw0KICAgICAgICAgICAgLy9pbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIikNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdG9nZ2xlQ2hhbm5lbFN0YXR1cygnIiArIGlkICsgIicsIHRoaXMpIik7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3subWFwcGluZy5hY3RpdmUudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIEthbmFsbmFtZSANCiAgICAgICAgICAgIHZhciBkYktleSA9ICJ4LW5hbWUiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICBpZiAoQlVMS19FRElUID09IHRydWUpIHsNCiAgICAgICAgICAgICAgICBpbnB1dC5zdHlsZS5ib3JkZXIgPSAic29saWQgMXB4IHJlZCI7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJyZWFkb25seSIsICJ0cnVlIik7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3subWFwcGluZy5jaGFubmVsTmFtZS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgY29udGVudC5kZXNjcmlwdGlvbihkYXRhWyJuYW1lIl0pOw0KICAgICAgICAgICAgLy8gQmVzY2hyZWlidW5nIA0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gIngtZGVzY3JpcHRpb24iOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7Lm1hcHBpbmcuZGVzY3JpcHRpb24ucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7Lm1hcHBpbmcuZGVzY3JpcHRpb24udGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIEFrdHVhbGlzaWVydW5nIGRlcyBLYW5hbG5hbWVucw0KICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoIl91dWlkLmtleSIpKSB7DQogICAgICAgICAgICAgICAgaWYgKGRhdGFbIl91dWlkLmtleSJdICE9ICIiKSB7DQogICAgICAgICAgICAgICAgICAgIHZhciBkYktleSA9ICJ4LXVwZGF0ZS1jaGFubmVsLW5hbWUiOw0KICAgICAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KGRiS2V5KTsNCiAgICAgICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YVtkYktleV07DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5tYXBwaW5nLnVwZGF0ZUNoYW5uZWxOYW1lLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgLy8gTG9nbyBVUkwgKEthbmFsKSANCiAgICAgICAgICAgIHZhciBkYktleSA9ICJ0dmctbG9nbyI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgiaWQiLCAiY2hhbm5lbC1pY29uIik7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3subWFwcGluZy5jaGFubmVsTG9nby50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgLy8gQWt0dWFsaXNpZXJ1bmcgZGVzIEthbmFsbG9nb3MNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJ4LXVwZGF0ZS1jaGFubmVsLWljb24iOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChkYktleSk7DQogICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YVtkYktleV07DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoImlkIiwgInVwZGF0ZS1pY29uIik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnOyBjaGFuZ2VDaGFubmVsTG9nbygnIiArIGlkICsgIicpOyIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7Lm1hcHBpbmcudXBkYXRlQ2hhbm5lbExvZ28udGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIEVyd2VpdGVybiBkZXIgRVBHIEthdGVnb3JpZQ0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gIngtY2F0ZWdvcnkiOw0KICAgICAgICAgICAgdmFyIHRleHQgPSBbIi0iLCAiS2lkcyAoRW1ieSBvbmx5KSIsICJOZXdzIiwgIk1vdmllIiwgIlNlcmllcyIsICJTcG9ydHMiXTsNCiAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBbIiIsICJLaWRzIiwgIk5ld3MiLCAiTW92aWUiLCAiU2VyaWVzIiwgIlNwb3J0cyJdOw0KICAgICAgICAgICAgdmFyIHNlbGVjdCA9IGNvbnRlbnQuY3JlYXRlU2VsZWN0KHRleHQsIHZhbHVlcywgZGF0YVtkYktleV0sIGRiS2V5KTsNCiAgICAgICAgICAgIHNlbGVjdC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3subWFwcGluZy5lcGdDYXRlZ29yeS50aXRsZX19Iiwgc2VsZWN0KTsNCiAgICAgICAgICAgIC8vIE0zVSBHcnVwcGVudGl0ZWwNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJ4LWdyb3VwLXRpdGxlIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7Lm1hcHBpbmcubTN1R3JvdXBUaXRsZS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgaWYgKGRhdGFbImdyb3VwLXRpdGxlIl0gIT0gdW5kZWZpbmVkKSB7DQogICAgICAgICAgICAgICAgY29udGVudC5kZXNjcmlwdGlvbihkYXRhWyJncm91cC10aXRsZSJdKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIC8vIFhNTFRWIERhdGVpDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAieC14bWx0di1maWxlIjsNCiAgICAgICAgICAgIHZhciB4bWxGaWxlID0gZGF0YVtkYktleV07DQogICAgICAgICAgICB2YXIgeG1sdHYgPSBuZXcgWE1MVFZGaWxlKCk7DQogICAgICAgICAgICB2YXIgc2VsZWN0ID0geG1sdHYuZ2V0RmlsZXMoZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgibmFtZSIsIGRiS2V5KTsNCiAgICAgICAgICAgIHNlbGVjdC5zZXRBdHRyaWJ1dGUoImlkIiwgInBvcHVwLXhtbHR2Iik7DQogICAgICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJzsgc2V0WG1sdHZDaGFubmVsKCciICsgaWQgKyAiJyx0aGlzKTsiKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5tYXBwaW5nLnhtbHR2RmlsZS50aXRsZX19Iiwgc2VsZWN0KTsNCiAgICAgICAgICAgIHZhciBmaWxlID0gZGF0YVtkYktleV07DQogICAgICAgICAgICAvLyBYTUxUViBNYXBwaW5nDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAieC1tYXBwaW5nIjsNCiAgICAgICAgICAgIHZhciB4bWx0diA9IG5ldyBYTUxUVkZpbGUoKTsNCiAgICAgICAgICAgIHZhciBzZWxlY3QgPSB4bWx0di5nZXRQcm9ncmFtcyhmaWxlLCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJuYW1lIiwgZGJLZXkpOw0KICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgiaWQiLCAicG9wdXAtbWFwcGluZyIpOw0KICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCc7IGNoZWNrWG1sdHZDaGFubmVsKCciICsgaWQgKyAiJyx0aGlzLCciICsgeG1sRmlsZSArICInKTsiKTsNCiAgICAgICAgICAgIHNvcnRTZWxlY3Qoc2VsZWN0KTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5tYXBwaW5nLnhtbHR2Q2hhbm5lbC50aXRsZX19Iiwgc2VsZWN0KTsNCiAgICAgICAgICAgIC8vIFRpbWVzaGlmdA0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gIngtdGltZXNoaWZ0IjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5tYXBwaW5nLnRpbWVzaGlmdC5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoImlkIiwgInRpbWVzaGlmdCIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7Lm1hcHBpbmcudGltZXNoaWZ0LnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBJbnRlcmFrdGlvbg0KICAgICAgICAgICAgY29udGVudC5jcmVhdGVJbnRlcmFjdGlvbigpOw0KICAgICAgICAgICAgLy8gTG9nbyBob2NobGFkZW4NCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJjYW5jZWwiLCAie3suYnV0dG9uLnVwbG9hZExvZ299fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IHVwbG9hZExvZ28oKTsnKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgLy8gQWJicmVjaGVuDQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAiY2FuY2VsIiwgInt7LmJ1dHRvbi5jYW5jZWx9fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IHNob3dFbGVtZW50KCJwb3B1cCIsIGZhbHNlKTsnKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgLy8gRmVydGlnDQogICAgICAgICAgICB2YXIgaWRzID0gW107DQogICAgICAgICAgICBpZHMgPSBnZXRBbGxTZWxlY3RlZENoYW5uZWxzKCk7DQogICAgICAgICAgICBpZiAoaWRzLmxlbmd0aCA9PSAwKSB7DQogICAgICAgICAgICAgICAgaWRzLnB1c2goaWQpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgInNhdmUiLCAie3suYnV0dG9uLmRvbmV9fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IGRvbmVQb3B1cERhdGEoIicgKyBkYXRhVHlwZSArICciLCAiJyArIGlkcyArICciLCAiZmFsc2UiKTsnKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICBicmVhazsNCiAgICB9DQogICAgc2hvd1BvcFVwRWxlbWVudCgncG9wdXAtY3VzdG9tJyk7DQp9DQpjbGFzcyBYTUxUVkZpbGUgew0KICAgIGdldEZpbGVzKHNldCkgew0KICAgICAgICBsZXQgZmlsZUlEcyA9IGdldE9iaktleXMoU0VSVkVSWyJ4ZXBnIl1bInhtbHR2TWFwIl0pOw0KICAgICAgICBsZXQgdmFsdWVzID0gbmV3IEFycmF5KCItIik7DQogICAgICAgIGxldCB0ZXh0ID0gbmV3IEFycmF5KCItIik7DQogICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgZmlsZUlEcy5sZW5ndGg7IGkrKykgew0KICAgICAgICAgICAgaWYgKGZpbGVJRHNbaV0gIT0gInhUZVZlIER1bW15Iikgew0KICAgICAgICAgICAgICAgIHZhbHVlcy5wdXNoKGdldFZhbHVlRnJvbVByb3ZpZGVyRmlsZShmaWxlSURzW2ldLCAieG1sdHYiLCAiZmlsZS54dGV2ZSIpKTsNCiAgICAgICAgICAgICAgICB0ZXh0LnB1c2goZ2V0VmFsdWVGcm9tUHJvdmlkZXJGaWxlKGZpbGVJRHNbaV0sICJ4bWx0diIsICJuYW1lIikpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgZWxzZSB7DQogICAgICAgICAgICAgICAgdmFsdWVzLnB1c2goZmlsZUlEc1tpXSk7DQogICAgICAgICAgICAgICAgdGV4dC5wdXNoKGZpbGVJRHNbaV0pOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQogICAgICAgIGxldCBzZWxlY3QgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJTRUxFQ1QiKTsNCiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0ZXh0Lmxlbmd0aDsgaSsrKSB7DQogICAgICAgICAgICB2YXIgb3B0aW9uID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiT1BUSU9OIik7DQogICAgICAgICAgICBvcHRpb24uc2V0QXR0cmlidXRlKCJ2YWx1ZSIsIHZhbHVlc1tpXSk7DQogICAgICAgICAgICBvcHRpb24uaW5uZXJUZXh0ID0gdGV4dFtpXTsNCiAgICAgICAgICAgIHNlbGVjdC5hcHBlbmRDaGlsZChvcHRpb24pOw0KICAgICAgICB9DQogICAgICAgIGlmIChzZXQgIT0gIiIpIHsNCiAgICAgICAgICAgIHNlbGVjdC52YWx1ZSA9IHNldDsNCiAgICAgICAgfQ0KICAgICAgICByZXR1cm4gc2VsZWN0Ow0KICAgIH0NCiAgICBnZXRQcm9ncmFtcyhmaWxlLCBzZXQpIHsNCiAgICAgICAgLy92YXIgZmlsZUlEczpzdHJpbmdbXSA9IGdldE9iaktleXMoU0VSVkVSWyJ4ZXBnIl1bInhtbHR2TWFwIl0pDQogICAgICAgIGxldCB2YWx1ZXMgPSBnZXRPYmpLZXlzKFNFUlZFUlsieGVwZyJdWyJ4bWx0dk1hcCJdW2ZpbGVdKTsNCiAgICAgICAgbGV0IHRleHQgPSBbXTsNCiAgICAgICAgbGV0IGRpc3BsYXlOYW1lOw0KICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHZhbHVlcy5sZW5ndGg7IGkrKykgew0KICAgICAgICAgICAgaWYgKFNFUlZFUlsieGVwZyJdWyJ4bWx0dk1hcCJdW2ZpbGVdW3ZhbHVlc1tpXV0uaGFzT3duUHJvcGVydHkoJ2Rpc3BsYXktbmFtZScpID09IHRydWUpIHsNCiAgICAgICAgICAgICAgICBkaXNwbGF5TmFtZSA9IFNFUlZFUlsieGVwZyJdWyJ4bWx0dk1hcCJdW2ZpbGVdW3ZhbHVlc1tpXV1bImRpc3BsYXktbmFtZSJdOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgZWxzZSB7DQogICAgICAgICAgICAgICAgZGlzcGxheU5hbWUgPSAiLSI7DQogICAgICAgICAgICB9DQogICAgICAgICAgICB0ZXh0W2ldID0gZGlzcGxheU5hbWUgKyAiICgiICsgdmFsdWVzW2ldICsgIikiOw0KICAgICAgICB9DQogICAgICAgIHRleHQudW5zaGlmdCgiLSIpOw0KICAgICAgICB2YWx1ZXMudW5zaGlmdCgiLSIpOw0KICAgICAgICBsZXQgc2VsZWN0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiU0VMRUNUIik7DQogICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGV4dC5sZW5ndGg7IGkrKykgew0KICAgICAgICAgICAgdmFyIG9wdGlvbiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIk9QVElPTiIpOw0KICAgICAgICAgICAgb3B0aW9uLnNldEF0dHJpYnV0ZSgidmFsdWUiLCB2YWx1ZXNbaV0pOw0KICAgICAgICAgICAgb3B0aW9uLmlubmVyVGV4dCA9IHRleHRbaV07DQogICAgICAgICAgICBzZWxlY3QuYXBwZW5kQ2hpbGQob3B0aW9uKTsNCiAgICAgICAgfQ0KICAgICAgICBpZiAoc2V0ICE9ICIiKSB7DQogICAgICAgICAgICBzZWxlY3QudmFsdWUgPSBzZXQ7DQogICAgICAgIH0NCiAgICAgICAgaWYgKHNlbGVjdC52YWx1ZSAhPSBzZXQpIHsNCiAgICAgICAgICAgIHNlbGVjdC52YWx1ZSA9ICItIjsNCiAgICAgICAgfQ0KICAgICAgICByZXR1cm4gc2VsZWN0Ow0KICAgIH0NCn0NCmZ1bmN0aW9uIGdldFZhbHVlRnJvbVByb3ZpZGVyRmlsZShmaWxlLCBmaWxlVHlwZSwga2V5KSB7DQogICAgaWYgKGZpbGUgPT0gInhUZVZlIER1bW15Iikgew0KICAgICAgICByZXR1cm4gZmlsZTsNCiAgICB9DQogICAgbGV0IGZpbGVJRDsNCiAgICBsZXQgaW5kaWNhdG9yID0gZmlsZS5jaGFyQXQoMCk7DQogICAgc3dpdGNoIChpbmRpY2F0b3IpIHsNCiAgICAgICAgY2FzZSAiTSI6DQogICAgICAgICAgICBmaWxlVHlwZSA9ICJtM3UiOw0KICAgICAgICAgICAgZmlsZUlEID0gZmlsZTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJIIjoNCiAgICAgICAgICAgIGZpbGVUeXBlID0gImhkaHIiOw0KICAgICAgICAgICAgZmlsZUlEID0gZmlsZTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJYIjoNCiAgICAgICAgICAgIGZpbGVUeXBlID0gInhtbHR2IjsNCiAgICAgICAgICAgIGZpbGVJRCA9IGZpbGUuc3Vic3RyaW5nKDAsIGZpbGUubGFzdEluZGV4T2YoJy4nKSk7DQogICAgICAgICAgICBicmVhazsNCiAgICB9DQogICAgaWYgKFNFUlZFUlsic2V0dGluZ3MiXVsiZmlsZXMiXVtmaWxlVHlwZV0uaGFzT3duUHJvcGVydHkoZmlsZUlEKSA9PSB0cnVlKSB7DQogICAgICAgIHZhciBkYXRhID0gU0VSVkVSWyJzZXR0aW5ncyJdWyJmaWxlcyJdW2ZpbGVUeXBlXVtmaWxlSURdOw0KICAgICAgICByZXR1cm4gZGF0YVtrZXldOw0KICAgIH0NCiAgICByZXR1cm47DQp9DQpmdW5jdGlvbiBzZXRYbWx0dkNoYW5uZWwoaWQsIGVsZW1lbnQpIHsNCiAgICBsZXQgeG1sdHYgPSBuZXcgWE1MVFZGaWxlKCk7DQogICAgbGV0IHhtbEZpbGUgPSBlbGVtZW50LnZhbHVlOw0KICAgIGxldCB0dmdJZCA9IFNFUlZFUlsieGVwZyJdWyJlcGdNYXBwaW5nIl1baWRdWyJ0dmctaWQiXTsNCiAgICBsZXQgdGQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicG9wdXAtbWFwcGluZyIpLnBhcmVudEVsZW1lbnQ7DQogICAgdGQuaW5uZXJIVE1MID0gIiI7DQogICAgbGV0IHNlbGVjdCA9IHhtbHR2LmdldFByb2dyYW1zKGVsZW1lbnQudmFsdWUsIHR2Z0lkKTsNCiAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJuYW1lIiwgIngtbWFwcGluZyIpOw0KICAgIHNlbGVjdC5zZXRBdHRyaWJ1dGUoImlkIiwgInBvcHVwLW1hcHBpbmciKTsNCiAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJzsgY2hlY2tYbWx0dkNoYW5uZWwoJyIgKyBpZCArICInLHRoaXMsJyIgKyB4bWxGaWxlICsgIicpOyIpOw0KICAgIHNlbGVjdC5jbGFzc05hbWUgPSAiY2hhbmdlZCI7DQogICAgc29ydFNlbGVjdChzZWxlY3QpOw0KICAgIHRkLmFwcGVuZENoaWxkKHNlbGVjdCk7DQogICAgY2hlY2tYbWx0dkNoYW5uZWwoaWQsIHNlbGVjdCwgeG1sRmlsZSk7DQp9DQpmdW5jdGlvbiBjaGVja1htbHR2Q2hhbm5lbChpZCwgZWxlbWVudCwgeG1sRmlsZSkgew0KICAgIGxldCB2YWx1ZSA9IGVsZW1lbnQudmFsdWU7DQogICAgbGV0IGJvb2w7DQogICAgbGV0IGNoZWNrYm94ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2FjdGl2ZScpOw0KICAgIGxldCBjaGFubmVsID0gU0VSVkVSWyJ4ZXBnIl1bImVwZ01hcHBpbmciXVtpZF07DQogICAgbGV0IHVwZGF0ZUxvZ287DQogICAgYm9vbCA9IHZhbHVlICE9ICItIjsNCiAgICBjaGVja2JveC5jaGVja2VkID0gYm9vbDsNCiAgICBjaGVja2JveC5jbGFzc05hbWUgPSAiY2hhbmdlZCI7DQogICAgY29uc29sZS5sb2coeG1sRmlsZSk7DQogICAgLy8gS2FuYWxsb2dvIGFrdHVhbGlzaWVyZW4NCiAgICAvKg0KICAgIHVwZGF0ZUxvZ28gPSAoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInVwZGF0ZS1pY29uIikgYXMgSFRNTElucHV0RWxlbWVudCkuY2hlY2tlZA0KICAgIGNvbnNvbGUubG9nKHVwZGF0ZUxvZ28pOw0KICAgICovDQogICAgaWYgKHhtbEZpbGUgIT0gInhUZVZlIER1bW15IiAmJiBib29sID09IHRydWUpIHsNCiAgICAgICAgLy8oZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInVwZGF0ZS1pY29uIikgYXMgSFRNTElucHV0RWxlbWVudCkuY2hlY2tlZCA9IHRydWU7DQogICAgICAgIC8vKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ1cGRhdGUtaWNvbiIpIGFzIEhUTUxJbnB1dEVsZW1lbnQpLmNsYXNzTmFtZSA9ICJjaGFuZ2VkIjsNCiAgICAgICAgY29uc29sZS5sb2coIklEIiwgaWQpOw0KICAgICAgICBjaGFuZ2VDaGFubmVsTG9nbyhpZCk7DQogICAgICAgIHJldHVybjsNCiAgICB9DQogICAgaWYgKHhtbEZpbGUgPT0gInhUZVZlIER1bW15Iikgew0KICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidXBkYXRlLWljb24iKS5jaGVja2VkID0gZmFsc2U7DQogICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ1cGRhdGUtaWNvbiIpLmNsYXNzTmFtZSA9ICJjaGFuZ2VkIjsNCiAgICB9DQogICAgcmV0dXJuOw0KfQ0KZnVuY3Rpb24gY2hhbmdlQ2hhbm5lbExvZ28oaWQpIHsNCiAgICBsZXQgdXBkYXRlTG9nbzsNCiAgICBsZXQgY2hhbm5lbCA9IFNFUlZFUlsieGVwZyJdWyJlcGdNYXBwaW5nIl1baWRdOw0KICAgIGxldCBmID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInBvcHVwLXhtbHR2Iik7DQogICAgbGV0IHhtbHR2RmlsZSA9IGYub3B0aW9uc1tmLnNlbGVjdGVkSW5kZXhdLnZhbHVlOw0KICAgIGxldCBtID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInBvcHVwLW1hcHBpbmciKTsNCiAgICBsZXQgeE1hcHBpbmcgPSBtLm9wdGlvbnNbbS5zZWxlY3RlZEluZGV4XS52YWx1ZTsNCiAgICBsZXQgeG1sdHZMb2dvID0gU0VSVkVSWyJ4ZXBnIl1bInhtbHR2TWFwIl1beG1sdHZGaWxlXVt4TWFwcGluZ11bImljb24iXTsNCiAgICB1cGRhdGVMb2dvID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInVwZGF0ZS1pY29uIikuY2hlY2tlZDsNCiAgICBpZiAodXBkYXRlTG9nbyA9PSB0cnVlICYmIHhtbHR2RmlsZSAhPSAieFRlVmUgRHVtbXkiKSB7DQogICAgICAgIGlmIChTRVJWRVJbInhlcGciXVsieG1sdHZNYXAiXVt4bWx0dkZpbGVdLmhhc093blByb3BlcnR5KHhNYXBwaW5nKSkgew0KICAgICAgICAgICAgdmFyIGxvZ28gPSB4bWx0dkxvZ287DQogICAgICAgIH0NCiAgICAgICAgZWxzZSB7DQogICAgICAgICAgICBsb2dvID0gY2hhbm5lbFsidHZnLWxvZ28iXTsNCiAgICAgICAgfQ0KICAgICAgICB2YXIgbG9nb0lucHV0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNoYW5uZWwtaWNvbiIpOw0KICAgICAgICBsb2dvSW5wdXQudmFsdWUgPSBsb2dvOw0KICAgICAgICBpZiAoQlVMS19FRElUID09IGZhbHNlKSB7DQogICAgICAgICAgICBsb2dvSW5wdXQuY2xhc3NOYW1lID0gImNoYW5nZWQiOw0KICAgICAgICB9DQogICAgfQ0KfQ0KZnVuY3Rpb24gc2F2ZVBvcHVwRGF0YShkYXRhVHlwZSwgaWQsIHJlbW92ZSwgb3B0aW9uKSB7DQogICAgaWYgKGRhdGFUeXBlID09ICJtYXBwaW5nIikgew0KICAgICAgICBsZXQgZGF0YSA9IHt9Ow0KICAgICAgICBjb25zb2xlLmxvZygiU2F2ZSBtYXBwaW5nIGRhdGEiKTsNCiAgICAgICAgbGV0IGNtZCA9ICJzYXZlRXBnTWFwcGluZyI7DQogICAgICAgIGRhdGFbImVwZ01hcHBpbmciXSA9IFNFUlZFUlsieGVwZyJdWyJlcGdNYXBwaW5nIl07DQogICAgICAgIGNvbnNvbGUubG9nKCJTRU5EIFRPIFNFUlZFUiIpOw0KICAgICAgICBsZXQgc2VydmVyID0gbmV3IFNlcnZlcihjbWQpOw0KICAgICAgICBzZXJ2ZXIucmVxdWVzdChkYXRhKTsNCiAgICAgICAgZGVsZXRlIFVORE9bImVwZ01hcHBpbmciXTsNCiAgICAgICAgcmV0dXJuOw0KICAgIH0NCiAgICBjb25zb2xlLmxvZygiU2F2ZSBwb3B1cCBkYXRhIik7DQogICAgbGV0IGRpdiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJwb3B1cC1jdXN0b20iKTsNCiAgICBsZXQgaW5wdXRzID0gZGl2LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJUQUJMRSIpWzBdLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJJTlBVVCIpOw0KICAgIGxldCBzZWxlY3RzID0gZGl2LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJUQUJMRSIpWzBdLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJTRUxFQ1QiKTsNCiAgICBsZXQgaW5wdXQgPSB7fTsNCiAgICBsZXQgY29uZmlybU1zZzsNCiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHNlbGVjdHMubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgdmFyIG5hbWU7DQogICAgICAgIG5hbWUgPSBzZWxlY3RzW2ldLm5hbWU7DQogICAgICAgIHZhciB2YWx1ZSA9IHNlbGVjdHNbaV0udmFsdWU7DQogICAgICAgIHN3aXRjaCAobmFtZSkgew0KICAgICAgICAgICAgY2FzZSAidHVuZXIiOg0KICAgICAgICAgICAgICAgIGlucHV0W25hbWVdID0gcGFyc2VJbnQodmFsdWUpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgICAgICBpbnB1dFtuYW1lXSA9IHZhbHVlOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICB9DQogICAgfQ0KICAgIGZvciAobGV0IGkgPSAwOyBpIDwgaW5wdXRzLmxlbmd0aDsgaSsrKSB7DQogICAgICAgIHN3aXRjaCAoaW5wdXRzW2ldLnR5cGUpIHsNCiAgICAgICAgICAgIGNhc2UgImNoZWNrYm94IjoNCiAgICAgICAgICAgICAgICBuYW1lID0gaW5wdXRzW2ldLm5hbWU7DQogICAgICAgICAgICAgICAgaW5wdXRbbmFtZV0gPSBpbnB1dHNbaV0uY2hlY2tlZDsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInRleHQiOg0KICAgICAgICAgICAgY2FzZSAiaGlkZGVuIjoNCiAgICAgICAgICAgIGNhc2UgInBhc3N3b3JkIjoNCiAgICAgICAgICAgICAgICBuYW1lID0gaW5wdXRzW2ldLm5hbWU7DQogICAgICAgICAgICAgICAgc3dpdGNoIChuYW1lKSB7DQogICAgICAgICAgICAgICAgICAgIGNhc2UgInR1bmVyIjoNCiAgICAgICAgICAgICAgICAgICAgICAgIGlucHV0W25hbWVdID0gcGFyc2VJbnQoaW5wdXRzW2ldLnZhbHVlKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgICAgICBkZWZhdWx0Og0KICAgICAgICAgICAgICAgICAgICAgICAgaW5wdXRbbmFtZV0gPSBpbnB1dHNbaV0udmFsdWU7DQogICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIH0NCiAgICB9DQogICAgbGV0IGRhdGEgPSB7fTsNCiAgICBsZXQgY21kOw0KICAgIGlmIChyZW1vdmUgPT0gdHJ1ZSkgew0KICAgICAgICBpbnB1dFsiZGVsZXRlIl0gPSB0cnVlOw0KICAgIH0NCiAgICBzd2l0Y2ggKGRhdGFUeXBlKSB7DQogICAgICAgIGNhc2UgInVzZXJzIjoNCiAgICAgICAgICAgIGNvbmZpcm1Nc2cgPSAiRGVsZXRlIHRoaXMgdXNlcj8iOw0KICAgICAgICAgICAgaWYgKGlkID09ICItIikgew0KICAgICAgICAgICAgICAgIGNtZCA9ICJzYXZlTmV3VXNlciI7DQogICAgICAgICAgICAgICAgZGF0YVsidXNlckRhdGEiXSA9IGlucHV0Ow0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgZWxzZSB7DQogICAgICAgICAgICAgICAgY21kID0gInNhdmVVc2VyRGF0YSI7DQogICAgICAgICAgICAgICAgbGV0IGQgPSB7fTsNCiAgICAgICAgICAgICAgICBkW2lkXSA9IGlucHV0Ow0KICAgICAgICAgICAgICAgIGRhdGFbInVzZXJEYXRhIl0gPSBkOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGNhc2UgIm0zdSI6DQogICAgICAgICAgICBjb25maXJtTXNnID0gIkRlbGV0ZSB0aGlzIHBsYXlsaXN0PyI7DQogICAgICAgICAgICBzd2l0Y2ggKG9wdGlvbikgew0KICAgICAgICAgICAgICAgIC8vIFBvcHVwOiBTYXZlDQogICAgICAgICAgICAgICAgY2FzZSAwOg0KICAgICAgICAgICAgICAgICAgICBjbWQgPSAic2F2ZUZpbGVzTTNVIjsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgLy8gUG9wdXA6IFVwZGF0ZQ0KICAgICAgICAgICAgICAgIGNhc2UgMToNCiAgICAgICAgICAgICAgICAgICAgY21kID0gInVwZGF0ZUZpbGVNM1UiOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGRhdGFbImZpbGVzIl0gPSB7fTsNCiAgICAgICAgICAgIGRhdGFbImZpbGVzIl1bZGF0YVR5cGVdID0ge307DQogICAgICAgICAgICBkYXRhWyJmaWxlcyJdW2RhdGFUeXBlXVtpZF0gPSBpbnB1dDsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJoZGhyIjoNCiAgICAgICAgICAgIGNvbmZpcm1Nc2cgPSAiRGVsZXRlIHRoaXMgSERIb21lUnVuIHR1bmVyPyI7DQogICAgICAgICAgICBzd2l0Y2ggKG9wdGlvbikgew0KICAgICAgICAgICAgICAgIC8vIFBvcHVwOiBTYXZlDQogICAgICAgICAgICAgICAgY2FzZSAwOg0KICAgICAgICAgICAgICAgICAgICBjbWQgPSAic2F2ZUZpbGVzSERIUiI7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIC8vIFBvcHVwOiBVcGRhdGUNCiAgICAgICAgICAgICAgICBjYXNlIDE6DQogICAgICAgICAgICAgICAgICAgIGNtZCA9ICJ1cGRhdGVGaWxlSERIUiI7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgZGF0YVsiZmlsZXMiXSA9IHt9Ow0KICAgICAgICAgICAgZGF0YVsiZmlsZXMiXVtkYXRhVHlwZV0gPSB7fTsNCiAgICAgICAgICAgIGRhdGFbImZpbGVzIl1bZGF0YVR5cGVdW2lkXSA9IGlucHV0Ow0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGNhc2UgInhtbHR2IjoNCiAgICAgICAgICAgIGNvbmZpcm1Nc2cgPSAiRGVsZXRlIHRoaXMgWE1MVFYgZmlsZT8iOw0KICAgICAgICAgICAgc3dpdGNoIChvcHRpb24pIHsNCiAgICAgICAgICAgICAgICAvLyBQb3B1cDogU2F2ZQ0KICAgICAgICAgICAgICAgIGNhc2UgMDoNCiAgICAgICAgICAgICAgICAgICAgY21kID0gInNhdmVGaWxlc1hNTFRWIjsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgLy8gUG9wdXA6IFVwZGF0ZQ0KICAgICAgICAgICAgICAgIGNhc2UgMToNCiAgICAgICAgICAgICAgICAgICAgY21kID0gInVwZGF0ZUZpbGVYTUxUViI7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgZGF0YVsiZmlsZXMiXSA9IHt9Ow0KICAgICAgICAgICAgZGF0YVsiZmlsZXMiXVtkYXRhVHlwZV0gPSB7fTsNCiAgICAgICAgICAgIGRhdGFbImZpbGVzIl1bZGF0YVR5cGVdW2lkXSA9IGlucHV0Ow0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGNhc2UgImZpbHRlciI6DQogICAgICAgICAgICBjb25maXJtTXNnID0gIkRlbGV0ZSB0aGlzIGZpbHRlcj8iOw0KICAgICAgICAgICAgY21kID0gInNhdmVGaWx0ZXIiOw0KICAgICAgICAgICAgZGF0YVsiZmlsdGVyIl0gPSB7fTsNCiAgICAgICAgICAgIGRhdGFbImZpbHRlciJdW2lkXSA9IGlucHV0Ow0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICBjb25zb2xlLmxvZyhkYXRhVHlwZSwgaWQpOw0KICAgICAgICAgICAgcmV0dXJuOw0KICAgIH0NCiAgICBpZiAocmVtb3ZlID09IHRydWUpIHsNCiAgICAgICAgaWYgKCFjb25maXJtKGNvbmZpcm1Nc2cpKSB7DQogICAgICAgICAgICBzaG93RWxlbWVudCgicG9wdXAiLCBmYWxzZSk7DQogICAgICAgICAgICByZXR1cm47DQogICAgICAgIH0NCiAgICB9DQogICAgY29uc29sZS5sb2coIlNFTkQgVE8gU0VSVkVSIik7DQogICAgY29uc29sZS5sb2coZGF0YSk7DQogICAgbGV0IHNlcnZlciA9IG5ldyBTZXJ2ZXIoY21kKTsNCiAgICBzZXJ2ZXIucmVxdWVzdChkYXRhKTsNCn0NCmZ1bmN0aW9uIGRvbmVQb3B1cERhdGEoZGF0YVR5cGUsIGlkc1N0cikgew0KICAgIGxldCBpZHMgPSBpZHNTdHIuc3BsaXQoJywnKTsNCiAgICBsZXQgZGl2ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInBvcHVwLWN1c3RvbSIpOw0KICAgIGxldCBpbnB1dHMgPSBkaXYuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSgiY2hhbmdlZCIpOw0KICAgIGlkcy5mb3JFYWNoKGlkID0+IHsNCiAgICAgICAgbGV0IGlucHV0Ow0KICAgICAgICBpbnB1dCA9IFNFUlZFUlsieGVwZyJdWyJlcGdNYXBwaW5nIl1baWRdOw0KICAgICAgICBjb25zb2xlLmxvZyhpbnB1dCk7DQogICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgaW5wdXRzLmxlbmd0aDsgaSsrKSB7DQogICAgICAgICAgICBsZXQgbmFtZTsNCiAgICAgICAgICAgIGxldCB2YWx1ZTsNCiAgICAgICAgICAgIHN3aXRjaCAoaW5wdXRzW2ldLnRhZ05hbWUpIHsNCiAgICAgICAgICAgICAgICBjYXNlICJJTlBVVCI6DQogICAgICAgICAgICAgICAgICAgIHN3aXRjaCAoaW5wdXRzW2ldLnR5cGUpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgImNoZWNrYm94IjoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lID0gaW5wdXRzW2ldLm5hbWU7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSBpbnB1dHNbaV0uY2hlY2tlZDsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnB1dFtuYW1lXSA9IHZhbHVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAidGV4dCI6DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZSA9IGlucHV0c1tpXS5uYW1lOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlID0gaW5wdXRzW2ldLnZhbHVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlucHV0W25hbWVdID0gdmFsdWU7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAiU0VMRUNUIjoNCiAgICAgICAgICAgICAgICAgICAgbmFtZSA9IGlucHV0c1tpXS5uYW1lOw0KICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IGlucHV0c1tpXS52YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgaW5wdXRbbmFtZV0gPSB2YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBzd2l0Y2ggKG5hbWUpIHsNCiAgICAgICAgICAgICAgICBjYXNlICJ0dmctbG9nbyI6DQogICAgICAgICAgICAgICAgICAgIC8vKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5jaGlsZE5vZGVzWzJdLmZpcnN0Q2hpbGQgYXMgSFRNTEVsZW1lbnQpLnNldEF0dHJpYnV0ZSgic3JjIiwgdmFsdWUpDQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgIngtbmFtZSI6DQogICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5jaGlsZE5vZGVzWzNdLmZpcnN0Q2hpbGQuaW5uZXJIVE1MID0gdmFsdWU7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgIngtY2F0ZWdvcnkiOg0KICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkuY2hpbGROb2Rlc1szXS5maXJzdENoaWxkLmNsYXNzTmFtZSA9IHZhbHVlOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBjYXNlICJ4LWdyb3VwLXRpdGxlIjoNCiAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpLmNoaWxkTm9kZXNbNV0uZmlyc3RDaGlsZC5pbm5lckhUTUwgPSB2YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAieC14bWx0di1maWxlIjoNCiAgICAgICAgICAgICAgICAgICAgaWYgKHZhbHVlICE9ICJ4VGVWZSBEdW1teSIgJiYgdmFsdWUgIT0gIi0iKSB7DQogICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IGdldFZhbHVlRnJvbVByb3ZpZGVyRmlsZSh2YWx1ZSwgInhtbHR2IiwgIm5hbWUiKTsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBpZiAodmFsdWUgPT0gIi0iKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBpbnB1dFsieC1hY3RpdmUiXSA9IGZhbHNlOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5jaGlsZE5vZGVzWzZdLmZpcnN0Q2hpbGQuaW5uZXJIVE1MID0gdmFsdWU7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgIngtbWFwcGluZyI6DQogICAgICAgICAgICAgICAgICAgIGlmICh2YWx1ZSA9PSAiLSIpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGlucHV0WyJ4LWFjdGl2ZSJdID0gZmFsc2U7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpLmNoaWxkTm9kZXNbN10uZmlyc3RDaGlsZC5pbm5lckhUTUwgPSB2YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGNyZWF0ZVNlYXJjaE9iaigpOw0KICAgICAgICAgICAgc2VhcmNoSW5NYXBwaW5nKCk7DQogICAgICAgIH0NCiAgICAgICAgaWYgKGlucHV0WyJ4LWFjdGl2ZSJdID09IGZhbHNlKSB7DQogICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkuY2xhc3NOYW1lID0gIm5vdEFjdGl2ZUVQRyI7DQogICAgICAgIH0NCiAgICAgICAgZWxzZSB7DQogICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkuY2xhc3NOYW1lID0gImFjdGl2ZUVQRyI7DQogICAgICAgIH0NCiAgICAgICAgY29uc29sZS5sb2coaW5wdXRbInR2Zy1sb2dvIl0pOw0KICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkuY2hpbGROb2Rlc1syXS5maXJzdENoaWxkLnNldEF0dHJpYnV0ZSgic3JjIiwgaW5wdXRbInR2Zy1sb2dvIl0pOw0KICAgIH0pOw0KICAgIHNob3dFbGVtZW50KCJwb3B1cCIsIGZhbHNlKTsNCiAgICByZXR1cm47DQp9DQpmdW5jdGlvbiBzaG93UHJldmlldyhlbGVtZW50KSB7DQogICAgbGV0IGRpdiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJteVN0cmVhbXNCb3giKTsNCiAgICBzd2l0Y2ggKGVsZW1lbnQpIHsNCiAgICAgICAgY2FzZSBmYWxzZToNCiAgICAgICAgICAgIGRpdi5jbGFzc05hbWUgPSAibm90VmlzaWJsZSI7DQogICAgICAgICAgICByZXR1cm47DQogICAgfQ0KICAgIGxldCBzdHJlYW1zID0gWyJhY3RpdmVTdHJlYW1zIiwgImluYWN0aXZlU3RyZWFtcyJdOw0KICAgIHN0cmVhbXMuZm9yRWFjaChwcmV2aWV3ID0+IHsNCiAgICAgICAgbGV0IHRhYmxlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQocHJldmlldyk7DQogICAgICAgIHRhYmxlLmlubmVySFRNTCA9ICIiOw0KICAgICAgICBsZXQgb2JqID0gU0VSVkVSWyJkYXRhIl1bIlN0cmVhbVByZXZpZXdVSSJdW3ByZXZpZXddOw0KICAgICAgICBvYmouZm9yRWFjaChjaGFubmVsID0+IHsNCiAgICAgICAgICAgIGxldCB0ciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlRSIik7DQogICAgICAgICAgICBsZXQgdGRLZXkgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgbGV0IHRkVmFsID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgIHRkS2V5LmNsYXNzTmFtZSA9ICJ0ZEtleSI7DQogICAgICAgICAgICB0ZFZhbC5jbGFzc05hbWUgPSAidGRWYWwiOw0KICAgICAgICAgICAgc3dpdGNoIChwcmV2aWV3KSB7DQogICAgICAgICAgICAgICAgY2FzZSAiYWN0aXZlU3RyZWFtcyI6DQogICAgICAgICAgICAgICAgICAgIHRkS2V5LmlubmVyVGV4dCA9ICJDaGFubmVsOiAoKykiOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBjYXNlICJpbmFjdGl2ZVN0cmVhbXMiOg0KICAgICAgICAgICAgICAgICAgICB0ZEtleS5pbm5lclRleHQgPSAiQ2hhbm5lbDogKC0pIjsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICB9DQogICAgICAgICAgICB0ZFZhbC5pbm5lclRleHQgPSBjaGFubmVsOw0KICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQodGRLZXkpOw0KICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQodGRWYWwpOw0KICAgICAgICAgICAgdGFibGUuYXBwZW5kQ2hpbGQodHIpOw0KICAgICAgICB9KTsNCiAgICB9KTsNCiAgICBzaG93RWxlbWVudCgibG9hZGluZyIsIGZhbHNlKTsNCiAgICBkaXYuY2xhc3NOYW1lID0gInZpc2libGUiOw0KICAgIHJldHVybjsNCn0NCg==" - webUI["html/create-first-user.html"] = "PCFkb2N0eXBlIGh0bWw+DQo8aHRtbD4NCiAgPGhlYWQ+DQogICAgPG1ldGEgY2hhcnNldD0idXRmLTgiPg0KICAgIDxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgsIGluaXRpYWwtc2NhbGU9MS4wIiAvPiANCiAgICA8dGl0bGU+eFRlVmU8L3RpdGxlPg0KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iY3NzL3NjcmVlbi5jc3MiIHR5cGU9InRleHQvY3NzIj4NCiAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9ImNzcy9iYXNlLmNzcyIgdHlwZT0idGV4dC9jc3MiPg0KICAgIDxzY3JpcHQgbGFuZ3VhZ2U9ImphdmFzY3JpcHQiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJqcy9uZXR3b3JrX3RzLmpzIj48L3NjcmlwdD4NCiAgICA8c2NyaXB0IGxhbmd1YWdlPSJqYXZhc2NyaXB0IiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ianMvYXV0aGVudGljYXRpb25fdHMuanMiPjwvc2NyaXB0Pg0KICA8L2hlYWQ+DQoNCiAgICA8Ym9keT4NCiAgICAgICAgICANCiAgICAgIDxkaXYgaWQ9ImhlYWRlciIgY2xhc3M9ImltZ0NlbnRlciI+PC9kaXY+DQoNCiAgICAgIDxkaXYgaWQ9ImJveCI+DQoNCiAgICAgICAgPGRpdiBpZD0iaGVhZGxpbmUiPg0KICAgICAgICAgIDxoMSBpZD0iaGVhZC10ZXh0IiBjbGFzcz0iY2VudGVyIj57ey5hY2NvdW50LmhlYWRsaW5lfX08L2gxPg0KICAgICAgICA8L2Rpdj4NCg0KICAgICAgICA8cCBpZD0iZXJyIiBjbGFzcz0iZXJyb3JNc2cgY2VudGVyIj48L3A+DQoNCiAgICAgICAgPGRpdiBpZD0iY29udGVudCI+DQoNCiAgICAgICAgICAgIDxmb3JtIGlkPSJhdXRoZW50aWNhdGlvbiIgYWN0aW9uPSIiIG1ldGhvZD0icG9zdCI+DQoNCiAgICAgICAgICAgICAgPGg1Pnt7LmFjY291bnQudXNlcm5hbWUudGl0bGV9fTo8L2g1Pg0KICAgICAgICAgICAgICA8aW5wdXQgaWQ9InVzZXJuYW1lIiB0eXBlPSJ0ZXh0IiBuYW1lPSJ1c2VybmFtZSIgcGxhY2Vob2xkZXI9IlVzZXJuYW1lIiB2YWx1ZT0iIj4NCiAgICAgICAgICAgICAgPGg1Pnt7LmFjY291bnQucGFzc3dvcmQudGl0bGV9fTo8L2g1Pg0KICAgICAgICAgICAgICA8aW5wdXQgaWQ9InBhc3N3b3JkIiB0eXBlPSJwYXNzd29yZCIgbmFtZT0icGFzc3dvcmQiIHBsYWNlaG9sZGVyPSJQYXNzd29yZCIgdmFsdWU9IiI+DQogICAgICAgICAgICAgIDxoNT57ey5hY2NvdW50LmNvbmZpcm0udGl0bGV9fTo8L2g1Pg0KICAgICAgICAgICAgICA8aW5wdXQgaWQ9ImNvbmZpcm0iICB0eXBlPSJwYXNzd29yZCIgbmFtZT0iY29uZmlybSIgIHBsYWNlaG9sZGVyPSJDb25maXJtIiB2YWx1ZT0iIj4NCiAgICAgICAgICAgICAgDQogICAgICAgICAgICA8L2Zvcm0+DQoNCiAgICAgICAgPC9kaXY+DQogICAgICAgIA0KICAgICAgICA8ZGl2IGlkPSJib3gtZm9vdGVyIj4NCiAgICAgICAgICA8aW5wdXQgaWQ9InN1Ym1pdCIgY2xhc3M9IiIgdHlwZT0iYnV0dG9uIiB2YWx1ZT0ie3suYnV0dG9uLmNyYWV0ZUFjY291bnR9fSIgb25jbGljaz0iamF2YXNjcmlwdDogbG9naW4oKTsiPg0KICAgICAgICA8L2Rpdj4NCiAgICAgIA0KICAgICAgICANCiAgICAgIDwvZGl2Pg0KICAgIDwvYm9keT4NCjwvaHRtbD4=" + webUI["html/img/x_white.png"] = "iVBORw0KGgoAAAANSUhEUgAAAQAAAAEACAIAAADTED8xAAAAAXNSR0IArs4c6QAAAAlwSFlzAAAWJQAAFiUBSVIk8AAAA6ppVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IlhNUCBDb3JlIDUuNC4wIj4KICAgPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIgogICAgICAgICAgICB4bWxuczp0aWZmPSJodHRwOi8vbnMuYWRvYmUuY29tL3RpZmYvMS4wLyIKICAgICAgICAgICAgeG1sbnM6ZXhpZj0iaHR0cDovL25zLmFkb2JlLmNvbS9leGlmLzEuMC8iPgogICAgICAgICA8eG1wOk1vZGlmeURhdGU+MjAxOC0xMS0xNVQxNzoxMToyNTwveG1wOk1vZGlmeURhdGU+CiAgICAgICAgIDx4bXA6Q3JlYXRvclRvb2w+UGl4ZWxtYXRvciAzLjM8L3htcDpDcmVhdG9yVG9vbD4KICAgICAgICAgPHRpZmY6T3JpZW50YXRpb24+MTwvdGlmZjpPcmllbnRhdGlvbj4KICAgICAgICAgPHRpZmY6Q29tcHJlc3Npb24+NTwvdGlmZjpDb21wcmVzc2lvbj4KICAgICAgICAgPHRpZmY6UmVzb2x1dGlvblVuaXQ+MjwvdGlmZjpSZXNvbHV0aW9uVW5pdD4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+MTQ0PC90aWZmOllSZXNvbHV0aW9uPgogICAgICAgICA8dGlmZjpYUmVzb2x1dGlvbj4xNDQ8L3RpZmY6WFJlc29sdXRpb24+CiAgICAgICAgIDxleGlmOlBpeGVsWERpbWVuc2lvbj4yNTY8L2V4aWY6UGl4ZWxYRGltZW5zaW9uPgogICAgICAgICA8ZXhpZjpDb2xvclNwYWNlPjE8L2V4aWY6Q29sb3JTcGFj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" + webUI["html/js/log.js"] = "dmFyIGxvZ0ludGVydmFsDQoNCg0KZnVuY3Rpb24gdXBkYXRlTG9nKCkgew0KICB2YXIgZGF0YSA9IG5ldyBPYmplY3QoKTsNCiAgZGF0YVsiY21kIl0gPSAiZ2V0TG9nIjsNCiAgeFRlVmUoZGF0YSk7DQogIHdyaXRlTG9nSW5EaXYoKTsNCiAgcmV0dXJuDQp9DQoNCmZ1bmN0aW9uIHdyaXRlTG9nSW5EaXYoKSB7DQogIHZhciBsb2dzID0gbG9nWyJsb2ciXTsNCiAgdmFyIGRpdiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzZXR0aW5ncyIpLmxhc3RDaGlsZC5sYXN0Q2hpbGQ7DQogIGRpdi5pbm5lckhUTUwgPSAiIjsNCg0KICB2YXIgbWF4ID0gNTA7DQogIA0KICANCiAgZm9yICh2YXIgaSA9IDA7IGkgPCBsb2dzLmxlbmd0aDsgaSsrKSB7DQogICAgdmFyIG5ld0VudHJ5ID0gbmV3IE9iamVjdCgpOw0KICAgIG5ld0VudHJ5WyJfZWxlbWVudCJdICA9ICJQIjsNCg0KICAgIGlmIChsb2dzW2ldLmluY2x1ZGVzKCJFUlJPUiIpKSB7DQovLyAgICAgIGNhc2UgIndhcm5pbmdzIjogIG1zZ1R5cGUgPSAid2FybmluZ01zZyI7IGJyZWFrOw0KICAgICAgbmV3RW50cnlbImNsYXNzIl0gICA9ICJlcnJvck1zZyI7DQogICAgfQ0KDQogICAgaWYgKGxvZ3NbaV0uaW5jbHVkZXMoIldBUk5JTkciKSkgew0KLy8gICAgICBjYXNlICJ3YXJuaW5ncyI6ICBtc2dUeXBlID0gIndhcm5pbmdNc2ciOyBicmVhazsNCiAgICAgIG5ld0VudHJ5WyJjbGFzcyJdICAgPSAid2FybmluZ01zZyI7DQogICAgfQ0KDQogICAgbmV3RW50cnlbIl90ZXh0Il0gICAgID0gbG9nc1tpXTsNCiAgICANCiAgICBkaXYuYXBwZW5kQ2hpbGQoY3JlYXRlRWxlbWVudChuZXdFbnRyeSkpOw0KICB9DQoNCiAgY2FsY3VsYXRlV3JhcHBlckhlaWdodCgpOw0KICB2YXIgc2Nyb2xsRGl2ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImJveC13cmFwcGVyIik7DQogIHNjcm9sbERpdi5zY3JvbGxUb3AgPSBzY3JvbGxEaXYuc2Nyb2xsSGVpZ2h0Ow0KfQ0KDQpmdW5jdGlvbiBzaG93TG9nKG9iaikgew0KICAvL2xvZ0ludGVydmFsID0gc2V0SW50ZXJ2YWwodXBkYXRlTG9nLCA1MDAwKTsNCg0KICB2YXIgbG9ncyA9IGxvZ1sibG9nIl07DQoNCiAgdmFyIGRpdiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzZXR0aW5ncyIpOw0KDQogIHZhciBuZXdFbnRyeSA9IG5ldyBPYmplY3QoKTsNCiAgbmV3RW50cnlbIl9lbGVtZW50Il0gID0gIkhSIjsNCiAgZGl2LmFwcGVuZENoaWxkKGNyZWF0ZUVsZW1lbnQobmV3RW50cnkpKTsNCiAgLy9kaXYgPSBkaXYubGFzdENoaWxkOw0KDQogIHZhciBuZXdFbnRyeSA9IG5ldyBPYmplY3QoKTsNCiAgbmV3RW50cnlbIl9lbGVtZW50Il0gICAgPSAiSU5QVVQiOw0KICBuZXdFbnRyeVsidHlwZSJdICAgICAgICA9ICJidXR0b24iOw0KICBuZXdFbnRyeVsiY2xhc3MiXSAgICAgICA9ICJidXR0b24iOw0KICBuZXdFbnRyeVsidmFsdWUiXSAgICAgICA9ICJFbXB0eSBMb2ciOw0KICBuZXdFbnRyeVsib25jbGljayJdICAgICA9ICJlbXB0eUxvZygpIjsNCiAgZGl2LmFwcGVuZENoaWxkKGNyZWF0ZUVsZW1lbnQobmV3RW50cnkpKTsNCg0KICB2YXIgbmV3RW50cnkgPSBuZXcgT2JqZWN0KCk7DQogIG5ld0VudHJ5WyJfZWxlbWVudCJdICAgID0gImNvZGUiOw0KICBuZXdFbnRyeVsiX3RleHQiXSAgICAgICAgPSAiVXBkYXRlIExvZzogIjsNCiAgZGl2LmFwcGVuZENoaWxkKGNyZWF0ZUVsZW1lbnQobmV3RW50cnkpKTsNCg0KICB2YXIgbmV3RW50cnkgPSBuZXcgT2JqZWN0KCk7DQogIG5ld0VudHJ5WyJfZWxlbWVudCJdICAgID0gIklOUFVUIjsNCiAgbmV3RW50cnlbInR5cGUiXSAgICAgICAgPSAiY2hlY2tib3giOw0KICAvL25ld0VudHJ5WyJjaGVja2VkIl0gICAgID0gImNoZWNrYm94IjsNCiAgbmV3RW50cnlbIm9uY2xpY2siXSAgICAgPSAibG9nVXBkYXRlcyh0aGlzKSI7DQogIGRpdi5hcHBlbmRDaGlsZChjcmVhdGVFbGVtZW50KG5ld0VudHJ5KSk7DQoNCiAgdmFyIG5ld0VudHJ5ID0gbmV3IE9iamVjdCgpOw0KICBuZXdFbnRyeVsiX2VsZW1lbnQiXSAgPSAiSFIiOw0KICBkaXYuYXBwZW5kQ2hpbGQoY3JlYXRlRWxlbWVudChuZXdFbnRyeSkpOw0KDQogIA0KDQoNCiAgDQogIHZhciBuZXdXcmFwcGVyID0gbmV3IE9iamVjdCgpOw0KICBuZXdXcmFwcGVyWyJfZWxlbWVudCJdICA9ICJESVYiOw0KICBuZXdXcmFwcGVyWyJpZCJdICAgICAgICA9ICJib3gtd3JhcHBlciI7DQogIGRpdi5hcHBlbmRDaGlsZChjcmVhdGVFbGVtZW50KG5ld1dyYXBwZXIpKTsNCiAgZGl2ID0gZGl2Lmxhc3RDaGlsZDsNCg0KICB2YXIgbmV3UHJlID0gbmV3IE9iamVjdCgpOw0KICBuZXdQcmVbIl9lbGVtZW50Il0gID0gIlBSRSI7DQogIG5ld1ByZVsiaWQiXSAgICAgICAgPSAibG9nU2NyZWVuIjsNCiAgZGl2LmFwcGVuZENoaWxkKGNyZWF0ZUVsZW1lbnQobmV3UHJlKSk7DQoNCiAgZGl2ID0gZGl2Lmxhc3RDaGlsZDsNCg0KICB3cml0ZUxvZ0luRGl2KCkNCiAgcmV0dXJuDQp9DQoNCmZ1bmN0aW9uIGVtcHR5TG9nKCkgew0KICB2YXIgZGF0YSA9IG5ldyBPYmplY3QoKTsNCiAgZGF0YVsiY21kIl0gPSAiZW1wdHlMb2ciOw0KICB4VGVWZShkYXRhKTsNCiAgcmV0dXJuDQp9DQoNCmZ1bmN0aW9uIGxvZ1VwZGF0ZXMoZWxtKSB7DQogIHN3aXRjaChlbG0uY2hlY2tlZCkgew0KICAgIGNhc2UgZmFsc2U6IGNsZWFySW50ZXJ2YWwobG9nSW50ZXJ2YWwpOyBicmVhazsNCiAgICBjYXNlIHRydWU6IGxvZ0ludGVydmFsID0gc2V0SW50ZXJ2YWwodXBkYXRlTG9nLCA1MDAwKTsgYnJlYWs7DQogICAgDQogIH0NCn0=" webUI["html/js/network_ts.js"] = "Y2xhc3MgU2VydmVyIHsNCiAgICBjb25zdHJ1Y3RvcihjbWQpIHsNCiAgICAgICAgdGhpcy5jbWQgPSBjbWQ7DQogICAgfQ0KICAgIHJlcXVlc3QoZGF0YSkgew0KICAgICAgICBpZiAoU0VSVkVSX0NPTk5FQ1RJT04gPT0gdHJ1ZSkgew0KICAgICAgICAgICAgcmV0dXJuOw0KICAgICAgICB9DQogICAgICAgIFNFUlZFUl9DT05ORUNUSU9OID0gdHJ1ZTsNCiAgICAgICAgY29uc29sZS5sb2coZGF0YSk7DQogICAgICAgIGlmICh0aGlzLmNtZCAhPSAidXBkYXRlTG9nIikgew0KICAgICAgICAgICAgc2hvd0VsZW1lbnQoImxvYWRpbmciLCB0cnVlKTsNCiAgICAgICAgICAgIFVORE8gPSBuZXcgT2JqZWN0KCk7DQogICAgICAgIH0NCiAgICAgICAgc3dpdGNoICh3aW5kb3cubG9jYXRpb24ucHJvdG9jb2wpIHsNCiAgICAgICAgICAgIGNhc2UgImh0dHA6IjoNCiAgICAgICAgICAgICAgICB0aGlzLnByb3RvY29sID0gIndzOi8vIjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImh0dHBzOiI6DQogICAgICAgICAgICAgICAgdGhpcy5wcm90b2NvbCA9ICJ3c3M6Ly8iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICB9DQogICAgICAgIHZhciB1cmwgPSB0aGlzLnByb3RvY29sICsgd2luZG93LmxvY2F0aW9uLmhvc3RuYW1lICsgIjoiICsgd2luZG93LmxvY2F0aW9uLnBvcnQgKyAiL2RhdGEvIiArICI/VG9rZW49IiArIGdldENvb2tpZSgiVG9rZW4iKTsNCiAgICAgICAgZGF0YVsiY21kIl0gPSB0aGlzLmNtZDsNCiAgICAgICAgdmFyIHdzID0gbmV3IFdlYlNvY2tldCh1cmwpOw0KICAgICAgICB3cy5vbm9wZW4gPSBmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICBXU19BVkFJTEFCTEUgPSB0cnVlOw0KICAgICAgICAgICAgY29uc29sZS5sb2coIlJFUVVFU1QgKEpTKToiKTsNCiAgICAgICAgICAgIGNvbnNvbGUubG9nKGRhdGEpOw0KICAgICAgICAgICAgY29uc29sZS5sb2coIlJFUVVFU1Q6IChKU09OKSIpOw0KICAgICAgICAgICAgY29uc29sZS5sb2coSlNPTi5zdHJpbmdpZnkoZGF0YSkpOw0KICAgICAgICAgICAgdGhpcy5zZW5kKEpTT04uc3RyaW5naWZ5KGRhdGEpKTsNCiAgICAgICAgfTsNCiAgICAgICAgd3Mub25lcnJvciA9IGZ1bmN0aW9uIChlKSB7DQogICAgICAgICAgICBjb25zb2xlLmxvZygiTm8gd2Vic29ja2V0IGNvbm5lY3Rpb24gdG8geFRlVmUgY291bGQgYmUgZXN0YWJsaXNoZWQuIENoZWNrIHlvdXIgbmV0d29yayBjb25maWd1cmF0aW9uLiIpOw0KICAgICAgICAgICAgU0VSVkVSX0NPTk5FQ1RJT04gPSBmYWxzZTsNCiAgICAgICAgICAgIGlmIChXU19BVkFJTEFCTEUgPT0gZmFsc2UpIHsNCiAgICAgICAgICAgICAgICBhbGVydCgiTm8gd2Vic29ja2V0IGNvbm5lY3Rpb24gdG8geFRlVmUgY291bGQgYmUgZXN0YWJsaXNoZWQuIENoZWNrIHlvdXIgbmV0d29yayBjb25maWd1cmF0aW9uLiIpOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9Ow0KICAgICAgICB3cy5vbm1lc3NhZ2UgPSBmdW5jdGlvbiAoZSkgew0KICAgICAgICAgICAgU0VSVkVSX0NPTk5FQ1RJT04gPSBmYWxzZTsNCiAgICAgICAgICAgIHNob3dFbGVtZW50KCJsb2FkaW5nIiwgZmFsc2UpOw0KICAgICAgICAgICAgY29uc29sZS5sb2coIlJFU1BPTlNFOiIpOw0KICAgICAgICAgICAgdmFyIHJlc3BvbnNlID0gSlNPTi5wYXJzZShlLmRhdGEpOw0KICAgICAgICAgICAgY29uc29sZS5sb2cocmVzcG9uc2UpOw0KICAgICAgICAgICAgaWYgKHJlc3BvbnNlLmhhc093blByb3BlcnR5KCJ0b2tlbiIpKSB7DQogICAgICAgICAgICAgICAgZG9jdW1lbnQuY29va2llID0gIlRva2VuPSIgKyByZXNwb25zZVsidG9rZW4iXTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGlmIChyZXNwb25zZVsic3RhdHVzIl0gPT0gZmFsc2UpIHsNCiAgICAgICAgICAgICAgICBhbGVydChyZXNwb25zZVsiZXJyIl0pOw0KICAgICAgICAgICAgICAgIGlmIChyZXNwb25zZS5oYXNPd25Qcm9wZXJ0eSgicmVsb2FkIikpIHsNCiAgICAgICAgICAgICAgICAgICAgbG9jYXRpb24ucmVsb2FkKCk7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIHJldHVybjsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGlmIChyZXNwb25zZS5oYXNPd25Qcm9wZXJ0eSgibG9nb1VSTCIpKSB7DQogICAgICAgICAgICAgICAgdmFyIGRpdiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjaGFubmVsLWljb24iKTsNCiAgICAgICAgICAgICAgICBkaXYudmFsdWUgPSByZXNwb25zZVsibG9nb1VSTCJdOw0KICAgICAgICAgICAgICAgIGRpdi5jbGFzc05hbWUgPSAiY2hhbmdlZCI7DQogICAgICAgICAgICAgICAgcmV0dXJuOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgc3dpdGNoIChkYXRhWyJjbWQiXSkgew0KICAgICAgICAgICAgICAgIGNhc2UgInVwZGF0ZUxvZyI6DQogICAgICAgICAgICAgICAgICAgIFNFUlZFUlsibG9nIl0gPSByZXNwb25zZVsibG9nIl07DQogICAgICAgICAgICAgICAgICAgIGlmIChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29udGVudF9sb2ciKSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgc2hvd0xvZ3MoZmFsc2UpOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIHJldHVybjsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgICAgICAgICAgU0VSVkVSID0gbmV3IE9iamVjdCgpOw0KICAgICAgICAgICAgICAgICAgICBTRVJWRVIgPSByZXNwb25zZTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBpZiAocmVzcG9uc2UuaGFzT3duUHJvcGVydHkoIm9wZW5NZW51IikpIHsNCiAgICAgICAgICAgICAgICB2YXIgbWVudSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHJlc3BvbnNlWyJvcGVuTWVudSJdKTsNCiAgICAgICAgICAgICAgICBtZW51LmNsaWNrKCk7DQogICAgICAgICAgICAgICAgc2hvd0VsZW1lbnQoInBvcHVwIiwgZmFsc2UpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgaWYgKHJlc3BvbnNlLmhhc093blByb3BlcnR5KCJvcGVuTGluayIpKSB7DQogICAgICAgICAgICAgICAgd2luZG93LmxvY2F0aW9uID0gcmVzcG9uc2VbIm9wZW5MaW5rIl07DQogICAgICAgICAgICB9DQogICAgICAgICAgICBpZiAocmVzcG9uc2UuaGFzT3duUHJvcGVydHkoImFsZXJ0IikpIHsNCiAgICAgICAgICAgICAgICBhbGVydChyZXNwb25zZVsiYWxlcnQiXSk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBpZiAocmVzcG9uc2UuaGFzT3duUHJvcGVydHkoInJlbG9hZCIpKSB7DQogICAgICAgICAgICAgICAgbG9jYXRpb24ucmVsb2FkKCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBpZiAocmVzcG9uc2UuaGFzT3duUHJvcGVydHkoIndpemFyZCIpKSB7DQogICAgICAgICAgICAgICAgY3JlYXRlTGF5b3V0KCk7DQogICAgICAgICAgICAgICAgY29uZmlndXJhdGlvbldpemFyZFtyZXNwb25zZVsid2l6YXJkIl1dLmNyZWF0ZVdpemFyZCgpOw0KICAgICAgICAgICAgICAgIHJldHVybjsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGNyZWF0ZUxheW91dCgpOw0KICAgICAgICB9Ow0KICAgIH0NCn0NCmZ1bmN0aW9uIGdldENvb2tpZShuYW1lKSB7DQogICAgdmFyIHZhbHVlID0gIjsgIiArIGRvY3VtZW50LmNvb2tpZTsNCiAgICB2YXIgcGFydHMgPSB2YWx1ZS5zcGxpdCgiOyAiICsgbmFtZSArICI9Iik7DQogICAgaWYgKHBhcnRzLmxlbmd0aCA9PSAyKQ0KICAgICAgICByZXR1cm4gcGFydHMucG9wKCkuc3BsaXQoIjsiKS5zaGlmdCgpOw0KfQ0K" + webUI["html/js/base_ts.js"] = "dmFyIFNFUlZFUiA9IG5ldyBPYmplY3QoKTsNCnZhciBCVUxLX0VESVQgPSBmYWxzZTsNCnZhciBDT0xVTU5fVE9fU09SVDsNCnZhciBTRUFSQ0hfTUFQUElORyA9IG5ldyBPYmplY3QoKTsNCnZhciBVTkRPID0gbmV3IE9iamVjdCgpOw0KdmFyIFNFUlZFUl9DT05ORUNUSU9OID0gZmFsc2U7DQp2YXIgV1NfQVZBSUxBQkxFID0gZmFsc2U7DQovLyBNZW7DvA0KdmFyIG1lbnVJdGVtcyA9IG5ldyBBcnJheSgpOw0KbWVudUl0ZW1zLnB1c2gobmV3IE1haW5NZW51SXRlbSgicGxheWxpc3QiLCAie3subWFpbk1lbnUuaXRlbS5wbGF5bGlzdH19IiwgIm0zdS5wbmciLCAie3subWFpbk1lbnUuaGVhZGxpbmUucGxheWxpc3R9fSIpKTsNCi8vbWVudUl0ZW1zLnB1c2gobmV3IE1haW5NZW51SXRlbSgicG1zSUQiLCAie3subWFpbk1lbnUuaXRlbS5wbXNJRH19IiwgIm51bWJlci5wbmciLCAie3subWFpbk1lbnUuaGVhZGxpbmUucG1zSUR9fSIpKQ0KbWVudUl0ZW1zLnB1c2gobmV3IE1haW5NZW51SXRlbSgiZmlsdGVyIiwgInt7Lm1haW5NZW51Lml0ZW0uZmlsdGVyfX0iLCAiZmlsdGVyLnBuZyIsICJ7ey5tYWluTWVudS5oZWFkbGluZS5maWx0ZXJ9fSIpKTsNCm1lbnVJdGVtcy5wdXNoKG5ldyBNYWluTWVudUl0ZW0oInhtbHR2IiwgInt7Lm1haW5NZW51Lml0ZW0ueG1sdHZ9fSIsICJ4bWx0di5wbmciLCAie3subWFpbk1lbnUuaGVhZGxpbmUueG1sdHZ9fSIpKTsNCm1lbnVJdGVtcy5wdXNoKG5ldyBNYWluTWVudUl0ZW0oIm1hcHBpbmciLCAie3subWFpbk1lbnUuaXRlbS5tYXBwaW5nfX0iLCAibWFwcGluZy5wbmciLCAie3subWFpbk1lbnUuaGVhZGxpbmUubWFwcGluZ319IikpOw0KbWVudUl0ZW1zLnB1c2gobmV3IE1haW5NZW51SXRlbSgidXNlcnMiLCAie3subWFpbk1lbnUuaXRlbS51c2Vyc319IiwgInVzZXJzLnBuZyIsICJ7ey5tYWluTWVudS5oZWFkbGluZS51c2Vyc319IikpOw0KbWVudUl0ZW1zLnB1c2gobmV3IE1haW5NZW51SXRlbSgic2V0dGluZ3MiLCAie3subWFpbk1lbnUuaXRlbS5zZXR0aW5nc319IiwgInNldHRpbmdzLnBuZyIsICJ7ey5tYWluTWVudS5oZWFkbGluZS5zZXR0aW5nc319IikpOw0KbWVudUl0ZW1zLnB1c2gobmV3IE1haW5NZW51SXRlbSgibG9nIiwgInt7Lm1haW5NZW51Lml0ZW0ubG9nfX0iLCAibG9nLnBuZyIsICJ7ey5tYWluTWVudS5oZWFkbGluZS5sb2d9fSIpKTsNCm1lbnVJdGVtcy5wdXNoKG5ldyBNYWluTWVudUl0ZW0oImxvZ291dCIsICJ7ey5tYWluTWVudS5pdGVtLmxvZ291dH19IiwgImxvZ291dC5wbmciLCAie3subWFpbk1lbnUuaGVhZGxpbmUubG9nb3V0fX0iKSk7DQovLyBLYXRlZ29yaWVuIGbDvHIgZGllIEVpbnN0ZWxsdW5nZW4NCnZhciBzZXR0aW5nc0NhdGVnb3J5ID0gbmV3IEFycmF5KCk7DQpzZXR0aW5nc0NhdGVnb3J5LnB1c2gobmV3IFNldHRpbmdzQ2F0ZWdvcnlJdGVtKCJ7ey5zZXR0aW5ncy5jYXRlZ29yeS5nZW5lcmFsfX0iLCAieHRldmVBdXRvVXBkYXRlLHR1bmVyLGVwZ1NvdXJjZSxhcGkiKSk7DQpzZXR0aW5nc0NhdGVnb3J5LnB1c2gobmV3IFNldHRpbmdzQ2F0ZWdvcnlJdGVtKCJ7ey5zZXR0aW5ncy5jYXRlZ29yeS5maWxlc319IiwgInVwZGF0ZSxmaWxlcy51cGRhdGUsdGVtcC5wYXRoLGNhY2hlLmltYWdlcyx4ZXBnLnJlcGxhY2UubWlzc2luZy5pbWFnZXMiKSk7DQpzZXR0aW5nc0NhdGVnb3J5LnB1c2gobmV3IFNldHRpbmdzQ2F0ZWdvcnlJdGVtKCJ7ey5zZXR0aW5ncy5jYXRlZ29yeS5zdHJlYW1pbmd9fSIsICJidWZmZXIsdWRweHksYnVmZmVyLnNpemUua2IsYnVmZmVyLnRpbWVvdXQsdXNlci5hZ2VudCxmZm1wZWcucGF0aCxmZm1wZWcub3B0aW9ucyx2bGMucGF0aCx2bGMub3B0aW9ucyIpKTsNCnNldHRpbmdzQ2F0ZWdvcnkucHVzaChuZXcgU2V0dGluZ3NDYXRlZ29yeUl0ZW0oInt7LnNldHRpbmdzLmNhdGVnb3J5LmJhY2t1cH19IiwgImJhY2t1cC5wYXRoLGJhY2t1cC5rZWVwIikpOw0Kc2V0dGluZ3NDYXRlZ29yeS5wdXNoKG5ldyBTZXR0aW5nc0NhdGVnb3J5SXRlbSgie3suc2V0dGluZ3MuY2F0ZWdvcnkuYXV0aGVudGljYXRpb259fSIsICJhdXRoZW50aWNhdGlvbi53ZWIsYXV0aGVudGljYXRpb24ucG1zLGF1dGhlbnRpY2F0aW9uLm0zdSxhdXRoZW50aWNhdGlvbi54bWwsYXV0aGVudGljYXRpb24uYXBpIikpOw0KZnVuY3Rpb24gc2hvd1BvcFVwRWxlbWVudChlbG0pIHsNCiAgICB2YXIgYWxsRWxlbWVudHMgPSBuZXcgQXJyYXkoInBvcHVwLWN1c3RvbSIpOw0KICAgIGZvciAodmFyIGkgPSAwOyBpIDwgYWxsRWxlbWVudHMubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgc2hvd0VsZW1lbnQoYWxsRWxlbWVudHNbaV0sIGZhbHNlKTsNCiAgICB9DQogICAgc2hvd0VsZW1lbnQoZWxtLCB0cnVlKTsNCiAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsNCiAgICAgICAgc2hvd0VsZW1lbnQoInBvcHVwIiwgdHJ1ZSk7DQogICAgfSwgMTApOw0KICAgIHJldHVybjsNCn0NCmZ1bmN0aW9uIHNob3dFbGVtZW50KGVsbUlELCB0eXBlKSB7DQogICAgdmFyIGNzc0NsYXNzOw0KICAgIHN3aXRjaCAodHlwZSkgew0KICAgICAgICBjYXNlIHRydWU6DQogICAgICAgICAgICBjc3NDbGFzcyA9ICJibG9jayI7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSBmYWxzZToNCiAgICAgICAgICAgIGNzc0NsYXNzID0gIm5vbmUiOw0KICAgICAgICAgICAgYnJlYWs7DQogICAgfQ0KICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGVsbUlEKS5jbGFzc05hbWUgPSBjc3NDbGFzczsNCn0NCmZ1bmN0aW9uIGNoYW5nZUJ1dHRvbkFjdGlvbihlbGVtZW50LCBidXR0b25JRCwgYXR0cmlidXRlKSB7DQogICAgdmFyIHZhbHVlID0gZWxlbWVudC5vcHRpb25zW2VsZW1lbnQuc2VsZWN0ZWRJbmRleF0udmFsdWU7DQogICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoYnV0dG9uSUQpLnNldEF0dHJpYnV0ZShhdHRyaWJ1dGUsIHZhbHVlKTsNCn0NCmZ1bmN0aW9uIGdldExvY2FsRGF0YShkYXRhVHlwZSwgaWQpIHsNCiAgICBsZXQgZGF0YSA9IHt9Ow0KICAgIHN3aXRjaCAoZGF0YVR5cGUpIHsNCiAgICAgICAgY2FzZSAibTN1IjoNCiAgICAgICAgICAgIGRhdGEgPSBTRVJWRVJbInNldHRpbmdzIl1bImZpbGVzIl1bZGF0YVR5cGVdW2lkXTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJoZGhyIjoNCiAgICAgICAgICAgIGRhdGEgPSBTRVJWRVJbInNldHRpbmdzIl1bImZpbGVzIl1bZGF0YVR5cGVdW2lkXTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJmaWx0ZXIiOg0KICAgICAgICBjYXNlICJjdXN0b20tZmlsdGVyIjoNCiAgICAgICAgY2FzZSAiZ3JvdXAtdGl0bGUiOg0KICAgICAgICAgICAgaWYgKGlkID09IC0xKSB7DQogICAgICAgICAgICAgICAgZGF0YVsiYWN0aXZlIl0gPSB0cnVlOw0KICAgICAgICAgICAgICAgIGRhdGFbImNhc2VTZW5zaXRpdmUiXSA9IGZhbHNlOw0KICAgICAgICAgICAgICAgIGRhdGFbImRlc2NyaXB0aW9uIl0gPSAiIjsNCiAgICAgICAgICAgICAgICBkYXRhWyJleGNsdWRlIl0gPSAiIjsNCiAgICAgICAgICAgICAgICBkYXRhWyJmaWx0ZXIiXSA9ICIiOw0KICAgICAgICAgICAgICAgIGRhdGFbImluY2x1ZGUiXSA9ICIiOw0KICAgICAgICAgICAgICAgIGRhdGFbIm5hbWUiXSA9ICIiOw0KICAgICAgICAgICAgICAgIGRhdGFbInR5cGUiXSA9ICJncm91cC10aXRsZSI7DQogICAgICAgICAgICAgICAgZGF0YVsicHJlc2VydmVNYXBwaW5nIl0gPSB0cnVlOw0KICAgICAgICAgICAgICAgIGRhdGFbInN0YXJ0aW5nQ2hhbm5lbCJdID0gU0VSVkVSWyJzZXR0aW5ncyJdWyJtYXBwaW5nLmZpcnN0LmNoYW5uZWwiXTsNCiAgICAgICAgICAgICAgICBkYXRhWyJkZWZhdWx0TWlzc2luZ0VQRyJdID0gIi0iOw0KICAgICAgICAgICAgICAgIFNFUlZFUlsic2V0dGluZ3MiXVsiZmlsdGVyIl1baWRdID0gZGF0YTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGRhdGEgPSBTRVJWRVJbInNldHRpbmdzIl1bImZpbHRlciJdW2lkXTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJ4bWx0diI6DQogICAgICAgICAgICBkYXRhID0gU0VSVkVSWyJzZXR0aW5ncyJdWyJmaWxlcyJdW2RhdGFUeXBlXVtpZF07DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSAidXNlcnMiOg0KICAgICAgICAgICAgZGF0YSA9IFNFUlZFUlsidXNlcnMiXVtpZF1bImRhdGEiXTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJtYXBwaW5nIjoNCiAgICAgICAgICAgIGRhdGEgPSBTRVJWRVJbInhlcGciXVsiZXBnTWFwcGluZyJdW2lkXTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJtM3VHcm91cHMiOg0KICAgICAgICAgICAgZGF0YSA9IFNFUlZFUlsiZGF0YSJdWyJwbGF5bGlzdCJdWyJtM3UiXVsiZ3JvdXBzIl07DQogICAgICAgICAgICBicmVhazsNCiAgICB9DQogICAgcmV0dXJuIGRhdGE7DQp9DQpmdW5jdGlvbiBnZXRPYmpLZXlzKG9iaikgew0KICAgIHZhciBrZXlzID0gbmV3IEFycmF5KCk7DQogICAgZm9yICh2YXIgaSBpbiBvYmopIHsNCiAgICAgICAgaWYgKG9iai5oYXNPd25Qcm9wZXJ0eShpKSkgew0KICAgICAgICAgICAga2V5cy5wdXNoKGkpOw0KICAgICAgICB9DQogICAgfQ0KICAgIHJldHVybiBrZXlzOw0KfQ0KZnVuY3Rpb24gZ2V0QWxsU2VsZWN0ZWRDaGFubmVscygpIHsNCiAgICB2YXIgY2hhbm5lbHMgPSBuZXcgQXJyYXkoKTsNCiAgICBpZiAoQlVMS19FRElUID09IGZhbHNlKSB7DQogICAgICAgIHJldHVybiBjaGFubmVsczsNCiAgICB9DQogICAgdmFyIHRycyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb250ZW50X3RhYmxlIikuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlRSIik7DQogICAgZm9yICh2YXIgaSA9IDE7IGkgPCB0cnMubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgaWYgKHRyc1tpXS5zdHlsZS5kaXNwbGF5ICE9ICJub25lIikgew0KICAgICAgICAgICAgaWYgKHRyc1tpXS5maXJzdENoaWxkLmZpcnN0Q2hpbGQuY2hlY2tlZCA9PSB0cnVlKSB7DQogICAgICAgICAgICAgICAgY2hhbm5lbHMucHVzaCh0cnNbaV0uaWQpOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQogICAgfQ0KICAgIHJldHVybiBjaGFubmVsczsNCn0NCmZ1bmN0aW9uIHNlbGVjdEFsbENoYW5uZWxzKCkgew0KICAgIHZhciBidWxrID0gZmFsc2U7DQogICAgdmFyIHRycyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb250ZW50X3RhYmxlIikuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlRSIik7DQogICAgaWYgKHRyc1swXS5maXJzdENoaWxkLmZpcnN0Q2hpbGQuY2hlY2tlZCA9PSB0cnVlKSB7DQogICAgICAgIGJ1bGsgPSB0cnVlOw0KICAgIH0NCiAgICBmb3IgKHZhciBpID0gMTsgaSA8IHRycy5sZW5ndGg7IGkrKykgew0KICAgICAgICBpZiAodHJzW2ldLnN0eWxlLmRpc3BsYXkgIT0gIm5vbmUiKSB7DQogICAgICAgICAgICBzd2l0Y2ggKGJ1bGspIHsNCiAgICAgICAgICAgICAgICBjYXNlIHRydWU6DQogICAgICAgICAgICAgICAgICAgIHRyc1tpXS5maXJzdENoaWxkLmZpcnN0Q2hpbGQuY2hlY2tlZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgZmFsc2U6DQogICAgICAgICAgICAgICAgICAgIHRyc1tpXS5maXJzdENoaWxkLmZpcnN0Q2hpbGQuY2hlY2tlZCA9IGZhbHNlOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KICAgIH0NCiAgICByZXR1cm47DQp9DQpmdW5jdGlvbiBidWxrRWRpdCgpIHsNCiAgICBCVUxLX0VESVQgPSAhQlVMS19FRElUOw0KICAgIHZhciBjbGFzc05hbWU7DQogICAgdmFyIHJvd3MgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCJidWxrIik7DQogICAgc3dpdGNoIChCVUxLX0VESVQpIHsNCiAgICAgICAgY2FzZSB0cnVlOg0KICAgICAgICAgICAgY2xhc3NOYW1lID0gImJ1bGsgc2hvd0J1bGsiOw0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGNhc2UgZmFsc2U6DQogICAgICAgICAgICBjbGFzc05hbWUgPSAiYnVsayBoaWRlQnVsayI7DQogICAgICAgICAgICBicmVhazsNCiAgICB9DQogICAgZm9yICh2YXIgaSA9IDA7IGkgPCByb3dzLmxlbmd0aDsgaSsrKSB7DQogICAgICAgIHJvd3NbaV0uY2xhc3NOYW1lID0gY2xhc3NOYW1lOw0KICAgICAgICByb3dzW2ldLmNoZWNrZWQgPSBmYWxzZTsNCiAgICB9DQogICAgcmV0dXJuOw0KfQ0KZnVuY3Rpb24gc29ydFRhYmxlKGNvbHVtbikgew0KICAgIC8vY29uc29sZS5sb2coY29sdW1tKTsNCiAgICBpZiAoY29sdW1uID09IENPTFVNTl9UT19TT1JUKSB7DQogICAgICAgIHJldHVybjsNCiAgICB9DQogICAgdmFyIHRhYmxlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnRlbnRfdGFibGUiKTsNCiAgICB2YXIgdGFibGVIZWFkID0gdGFibGUuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlRSIilbMF07DQogICAgdmFyIHRhYmxlSXRlbXMgPSB0YWJsZUhlYWQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlREIik7DQogICAgdmFyIHNvcnRPYmogPSBuZXcgT2JqZWN0KCk7DQogICAgdmFyIHgsIHhWYWx1ZTsNCiAgICB2YXIgdGFibGVIZWFkZXI7DQogICAgdmFyIHNvcnRCeVN0cmluZyA9IGZhbHNlOw0KICAgIGlmIChjb2x1bW4gPiAwICYmIENPTFVNTl9UT19TT1JUID4gMCkgew0KICAgICAgICB0YWJsZUl0ZW1zW0NPTFVNTl9UT19TT1JUXS5jbGFzc05hbWUgPSAicG9pbnRlciI7DQogICAgICAgIHRhYmxlSXRlbXNbY29sdW1uXS5jbGFzc05hbWUgPSAic29ydFRoaXMiOw0KICAgIH0NCiAgICBDT0xVTU5fVE9fU09SVCA9IGNvbHVtbjsNCiAgICB2YXIgcm93cyA9IHRhYmxlLnJvd3M7DQogICAgaWYgKHJvd3NbMV0gIT0gdW5kZWZpbmVkKSB7DQogICAgICAgIHRhYmxlSGVhZGVyID0gcm93c1swXTsNCiAgICAgICAgeCA9IHJvd3NbMV0uZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlREIilbY29sdW1uXTsNCiAgICAgICAgZm9yIChpID0gMTsgaSA8IHJvd3MubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgICAgIHggPSByb3dzW2ldLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJURCIpW2NvbHVtbl07DQogICAgICAgICAgICBzd2l0Y2ggKHguY2hpbGROb2Rlc1swXS50YWdOYW1lLnRvTG93ZXJDYXNlKCkpIHsNCiAgICAgICAgICAgICAgICBjYXNlICJpbnB1dCI6DQogICAgICAgICAgICAgICAgICAgIHhWYWx1ZSA9IHguZ2V0RWxlbWVudHNCeVRhZ05hbWUoIklOUFVUIilbMF0udmFsdWUudG9Mb3dlckNhc2UoKTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAicCI6DQogICAgICAgICAgICAgICAgICAgIHhWYWx1ZSA9IHguZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlAiKVswXS5pbm5lclRleHQudG9Mb3dlckNhc2UoKTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgZGVmYXVsdDogY29uc29sZS5sb2coeC5jaGlsZE5vZGVzWzBdLnRhZ05hbWUpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgaWYgKHhWYWx1ZSA9PSAiIiB8fCB4VmFsdWUgPT0gTmFOKSB7DQogICAgICAgICAgICAgICAgeFZhbHVlID0gaTsNCiAgICAgICAgICAgICAgICBzb3J0T2JqW2ldID0gcm93c1tpXTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgICAgIHN3aXRjaCAoaXNOYU4oeFZhbHVlKSkgew0KICAgICAgICAgICAgICAgICAgICBjYXNlIGZhbHNlOg0KICAgICAgICAgICAgICAgICAgICAgICAgeFZhbHVlID0gcGFyc2VGbG9hdCh4VmFsdWUpOw0KICAgICAgICAgICAgICAgICAgICAgICAgc29ydE9ialt4VmFsdWVdID0gcm93c1tpXTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgICAgICBjYXNlIHRydWU6DQogICAgICAgICAgICAgICAgICAgICAgICBzb3J0QnlTdHJpbmcgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgc29ydE9ialt4VmFsdWUudG9Mb3dlckNhc2UoKSArIGldID0gcm93c1tpXTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KICAgICAgICB3aGlsZSAodGFibGUuZmlyc3RDaGlsZCkgew0KICAgICAgICAgICAgdGFibGUucmVtb3ZlQ2hpbGQodGFibGUuZmlyc3RDaGlsZCk7DQogICAgICAgIH0NCiAgICAgICAgdmFyIHNvcnRWYWx1ZXMgPSBnZXRPYmpLZXlzKHNvcnRPYmopOw0KICAgICAgICBpZiAoc29ydEJ5U3RyaW5nID09IHRydWUpIHsNCiAgICAgICAgICAgIHNvcnRWYWx1ZXMuc29ydCgpOw0KICAgICAgICAgICAgY29uc29sZS5sb2coc29ydFZhbHVlcyk7DQogICAgICAgIH0NCiAgICAgICAgZWxzZSB7DQogICAgICAgICAgICBmdW5jdGlvbiBzb3J0RmxvYXQoYSwgYikgew0KICAgICAgICAgICAgICAgIHJldHVybiBhIC0gYjsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIHNvcnRWYWx1ZXMuc29ydChzb3J0RmxvYXQpOw0KICAgICAgICB9DQogICAgICAgIHRhYmxlLmFwcGVuZENoaWxkKHRhYmxlSGVhZGVyKTsNCiAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBzb3J0VmFsdWVzLmxlbmd0aDsgaSsrKSB7DQogICAgICAgICAgICB0YWJsZS5hcHBlbmRDaGlsZChzb3J0T2JqW3NvcnRWYWx1ZXNbaV1dKTsNCiAgICAgICAgfQ0KICAgIH0NCiAgICByZXR1cm47DQp9DQpmdW5jdGlvbiBjcmVhdGVTZWFyY2hPYmooKSB7DQogICAgU0VBUkNIX01BUFBJTkcgPSBuZXcgT2JqZWN0KCk7DQogICAgdmFyIGRhdGEgPSBTRVJWRVJbInhlcGciXVsiZXBnTWFwcGluZyJdOw0KICAgIHZhciBjaGFubmVscyA9IGdldE9iaktleXMoZGF0YSk7DQogICAgdmFyIGNoYW5uZWxLZXlzID0gWyJ4LWFjdGl2ZSIsICJ4LWNoYW5uZWxJRCIsICJ4LW5hbWUiLCAiX2ZpbGUubTN1Lm5hbWUiLCAieC1ncm91cC10aXRsZSIsICJ4LXhtbHR2LWZpbGUiXTsNCiAgICBjaGFubmVscy5mb3JFYWNoKGlkID0+IHsNCiAgICAgICAgY2hhbm5lbEtleXMuZm9yRWFjaChrZXkgPT4gew0KICAgICAgICAgICAgaWYgKGtleSA9PSAieC1hY3RpdmUiKSB7DQogICAgICAgICAgICAgICAgc3dpdGNoIChkYXRhW2lkXVtrZXldKSB7DQogICAgICAgICAgICAgICAgICAgIGNhc2UgdHJ1ZToNCiAgICAgICAgICAgICAgICAgICAgICAgIFNFQVJDSF9NQVBQSU5HW2lkXSA9ICJvbmxpbmUgIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgICAgICBjYXNlIGZhbHNlOg0KICAgICAgICAgICAgICAgICAgICAgICAgU0VBUkNIX01BUFBJTkdbaWRdID0gIm9mZmxpbmUgIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgICAgIGlmIChrZXkgPT0gIngteG1sdHYtZmlsZSIpIHsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHhtbHR2RmlsZSA9IGdldFZhbHVlRnJvbVByb3ZpZGVyRmlsZShkYXRhW2lkXVtrZXldLCAieG1sdHYiLCAibmFtZSIpOw0KICAgICAgICAgICAgICAgICAgICBpZiAoeG1sdHZGaWxlICE9IHVuZGVmaW5lZCkgew0KICAgICAgICAgICAgICAgICAgICAgICAgU0VBUkNIX01BUFBJTkdbaWRdID0gU0VBUkNIX01BUFBJTkdbaWRdICsgeG1sdHZGaWxlICsgIiAiOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgICAgICAgICBTRUFSQ0hfTUFQUElOR1tpZF0gPSBTRUFSQ0hfTUFQUElOR1tpZF0gKyBkYXRhW2lkXVtrZXldICsgIiAiOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0NCiAgICAgICAgfSk7DQogICAgfSk7DQogICAgcmV0dXJuOw0KfQ0KZnVuY3Rpb24gc2VhcmNoSW5NYXBwaW5nKCkgew0KICAgIHZhciBzZWFyY2hWYWx1ZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzZWFyY2hNYXBwaW5nIikudmFsdWU7DQogICAgdmFyIHRycyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb250ZW50X3RhYmxlIikuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlRSIik7DQogICAgZm9yICh2YXIgaSA9IDE7IGkgPCB0cnMubGVuZ3RoOyArK2kpIHsNCiAgICAgICAgdmFyIGlkID0gdHJzW2ldLmdldEF0dHJpYnV0ZSgiaWQiKTsNCiAgICAgICAgdmFyIGVsZW1lbnQgPSBTRUFSQ0hfTUFQUElOR1tpZF07DQogICAgICAgIHN3aXRjaCAoZWxlbWVudC50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKHNlYXJjaFZhbHVlLnRvTG93ZXJDYXNlKCkpKSB7DQogICAgICAgICAgICBjYXNlIHRydWU6DQogICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpLnN0eWxlLmRpc3BsYXkgPSAiIjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgZmFsc2U6DQogICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpLnN0eWxlLmRpc3BsYXkgPSAibm9uZSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIH0NCiAgICB9DQogICAgcmV0dXJuOw0KfQ0KZnVuY3Rpb24gY2FsY3VsYXRlV3JhcHBlckhlaWdodCgpIHsNCiAgICBpZiAoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImJveC13cmFwcGVyIikpIHsNCiAgICAgICAgdmFyIGVsbSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJib3gtd3JhcHBlciIpOw0KICAgICAgICB2YXIgZGl2cyA9IG5ldyBBcnJheSgibXlTdHJlYW1zQm94IiwgImNsaWVudEluZm8iLCAiY29udGVudCIpOw0KICAgICAgICB2YXIgZWxlbWVudHNIZWlnaHQgPSAwIC0gZWxtLm9mZnNldEhlaWdodDsNCiAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBkaXZzLmxlbmd0aDsgaSsrKSB7DQogICAgICAgICAgICBlbGVtZW50c0hlaWdodCA9IGVsZW1lbnRzSGVpZ2h0ICsgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoZGl2c1tpXSkub2Zmc2V0SGVpZ2h0Ow0KICAgICAgICB9DQogICAgICAgIGVsbS5zdHlsZS5oZWlnaHQgPSB3aW5kb3cuaW5uZXJIZWlnaHQgLSBlbGVtZW50c0hlaWdodCArICJweCI7DQogICAgfQ0KICAgIHJldHVybjsNCn0NCmZ1bmN0aW9uIGNoYW5nZUNoYW5uZWxOdW1iZXIoZWxlbWVudCkgew0KICAgIHZhciBkYklEID0gZWxlbWVudC5wYXJlbnROb2RlLnBhcmVudE5vZGUuaWQ7DQogICAgdmFyIG5ld051bWJlciA9IHBhcnNlRmxvYXQoZWxlbWVudC52YWx1ZSk7DQogICAgdmFyIGNoYW5uZWxOdW1iZXJzID0gW107DQogICAgdmFyIGRhdGEgPSBTRVJWRVJbInhlcGciXVsiZXBnTWFwcGluZyJdOw0KICAgIHZhciBjaGFubmVscyA9IGdldE9iaktleXMoZGF0YSk7DQogICAgaWYgKGlzTmFOKG5ld051bWJlcikpIHsNCiAgICAgICAgYWxlcnQoInt7LmFsZXJ0LmludmFsaWRDaGFubmVsTnVtYmVyfX0iKTsNCiAgICAgICAgcmV0dXJuOw0KICAgIH0NCiAgICBjaGFubmVscy5mb3JFYWNoKGlkID0+IHsNCiAgICAgICAgdmFyIGNoYW5uZWxOdW1iZXIgPSBwYXJzZUZsb2F0KGRhdGFbaWRdWyJ4LWNoYW5uZWxJRCJdKTsNCiAgICAgICAgY2hhbm5lbE51bWJlcnMucHVzaChjaGFubmVsTnVtYmVyKTsNCiAgICB9KTsNCiAgICBmb3IgKHZhciBpID0gMDsgaSA8IGNoYW5uZWxOdW1iZXJzLmxlbmd0aDsgaSsrKSB7DQogICAgICAgIGlmIChjaGFubmVsTnVtYmVycy5pbmRleE9mKG5ld051bWJlcikgPT0gLTEpIHsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICB9DQogICAgICAgIGlmIChNYXRoLmZsb29yKG5ld051bWJlcikgPT0gbmV3TnVtYmVyKSB7DQogICAgICAgICAgICBuZXdOdW1iZXIgPSBuZXdOdW1iZXIgKyAxOw0KICAgICAgICB9DQogICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgbmV3TnVtYmVyID0gbmV3TnVtYmVyICsgMC4xOw0KICAgICAgICAgICAgbmV3TnVtYmVyLnRvRml4ZWQoMSk7DQogICAgICAgICAgICBuZXdOdW1iZXIgPSBNYXRoLnJvdW5kKG5ld051bWJlciAqIDEwKSAvIDEwOw0KICAgICAgICB9DQogICAgfQ0KICAgIGRhdGFbZGJJRF1bIngtY2hhbm5lbElEIl0gPSBuZXdOdW1iZXIudG9TdHJpbmcoKTsNCiAgICBlbGVtZW50LnZhbHVlID0gbmV3TnVtYmVyOw0KICAgIGNvbnNvbGUubG9nKGRhdGFbZGJJRF1bIngtY2hhbm5lbElEIl0pOw0KICAgIGlmIChDT0xVTU5fVE9fU09SVCA9PSAxKSB7DQogICAgICAgIENPTFVNTl9UT19TT1JUID0gLTE7DQogICAgICAgIHNvcnRUYWJsZSgxKTsNCiAgICB9DQogICAgcmV0dXJuOw0KfQ0KZnVuY3Rpb24gYmFja3VwKCkgew0KICAgIHZhciBkYXRhID0gbmV3IE9iamVjdCgpOw0KICAgIGNvbnNvbGUubG9nKCJCYWNrdXAgZGF0YSIpOw0KICAgIHZhciBjbWQgPSAieHRldmVCYWNrdXAiOw0KICAgIGNvbnNvbGUubG9nKCJTRU5EIFRPIFNFUlZFUiIpOw0KICAgIGNvbnNvbGUubG9nKGRhdGEpOw0KICAgIHZhciBzZXJ2ZXIgPSBuZXcgU2VydmVyKGNtZCk7DQogICAgc2VydmVyLnJlcXVlc3QoZGF0YSk7DQogICAgcmV0dXJuOw0KfQ0KZnVuY3Rpb24gdG9nZ2xlQ2hhbm5lbFN0YXR1cyhpZCkgew0KICAgIHZhciBlbGVtZW50Ow0KICAgIHZhciBzdGF0dXM7DQogICAgaWYgKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJhY3RpdmUiKSkgew0KICAgICAgICB2YXIgY2hlY2tib3ggPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYWN0aXZlIik7DQogICAgICAgIHN0YXR1cyA9IChjaGVja2JveCkuY2hlY2tlZDsNCiAgICB9DQogICAgdmFyIGlkcyA9IGdldEFsbFNlbGVjdGVkQ2hhbm5lbHMoKTsNCiAgICBpZiAoaWRzLmxlbmd0aCA9PSAwKSB7DQogICAgICAgIGlkcy5wdXNoKGlkKTsNCiAgICB9DQogICAgaWRzLmZvckVhY2goaWQgPT4gew0KICAgICAgICB2YXIgY2hhbm5lbCA9IFNFUlZFUlsieGVwZyJdWyJlcGdNYXBwaW5nIl1baWRdOw0KICAgICAgICBjaGFubmVsWyJ4LWFjdGl2ZSJdID0gc3RhdHVzOw0KICAgICAgICBzd2l0Y2ggKGNoYW5uZWxbIngtYWN0aXZlIl0pIHsNCiAgICAgICAgICAgIGNhc2UgdHJ1ZToNCiAgICAgICAgICAgICAgICBpZiAoY2hhbm5lbFsieC14bWx0di1maWxlIl0gPT0gIi0iIHx8IGNoYW5uZWxbIngtbWFwcGluZyJdID09ICItIikgew0KICAgICAgICAgICAgICAgICAgICBpZiAoQlVMS19FRElUID09IGZhbHNlKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBhbGVydChjaGFubmVsWyJ4LW5hbWUiXSArICI6IE1pc3NpbmcgWE1MVFYgZmlsZSAvIGNoYW5uZWwiKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNoZWNrYm94LmNoZWNrZWQgPSBmYWxzZTsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBjaGFubmVsWyJ4LWFjdGl2ZSJdID0gZmFsc2U7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSBmYWxzZToNCiAgICAgICAgICAgICAgICAvLyBjb2RlLi4uDQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIH0NCiAgICAgICAgaWYgKGNoYW5uZWxbIngtYWN0aXZlIl0gPT0gZmFsc2UpIHsNCiAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5jbGFzc05hbWUgPSAibm90QWN0aXZlRVBHIjsNCiAgICAgICAgfQ0KICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5jbGFzc05hbWUgPSAiYWN0aXZlRVBHIjsNCiAgICAgICAgfQ0KICAgIH0pOw0KfQ0KZnVuY3Rpb24gcmVzdG9yZSgpIHsNCiAgICBpZiAoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3VwbG9hZCcpKSB7DQogICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd1cGxvYWQnKS5yZW1vdmUoKTsNCiAgICB9DQogICAgdmFyIHJlc3RvcmUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJJTlBVVCIpOw0KICAgIHJlc3RvcmUuc2V0QXR0cmlidXRlKCJ0eXBlIiwgImZpbGUiKTsNCiAgICByZXN0b3JlLnNldEF0dHJpYnV0ZSgiY2xhc3MiLCAibm90VmlzaWJsZSIpOw0KICAgIHJlc3RvcmUuc2V0QXR0cmlidXRlKCJuYW1lIiwgIiIpOw0KICAgIHJlc3RvcmUuaWQgPSAidXBsb2FkIjsNCiAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHJlc3RvcmUpOw0KICAgIHJlc3RvcmUuY2xpY2soKTsNCiAgICByZXN0b3JlLm9uY2hhbmdlID0gZnVuY3Rpb24gKCkgew0KICAgICAgICB2YXIgZmlsZW5hbWUgPSByZXN0b3JlLmZpbGVzWzBdLm5hbWU7DQogICAgICAgIHZhciBjaGVjayA9IGNvbmZpcm0oIkZpbGU6ICIgKyBmaWxlbmFtZSArICJcbnt7LmNvbmZpcm0ucmVzdG9yZX19Iik7DQogICAgICAgIGlmIChjaGVjayA9PSB0cnVlKSB7DQogICAgICAgICAgICB2YXIgcmVhZGVyID0gbmV3IEZpbGVSZWFkZXIoKTsNCiAgICAgICAgICAgIHZhciBmaWxlID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignaW5wdXRbdHlwZT1maWxlXScpLmZpbGVzWzBdOw0KICAgICAgICAgICAgaWYgKGZpbGUpIHsNCiAgICAgICAgICAgICAgICByZWFkZXIucmVhZEFzRGF0YVVSTChmaWxlKTsNCiAgICAgICAgICAgICAgICByZWFkZXIub25sb2FkID0gZnVuY3Rpb24gKCkgew0KICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhyZWFkZXIucmVzdWx0KTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGRhdGEgPSBuZXcgT2JqZWN0KCk7DQogICAgICAgICAgICAgICAgICAgIHZhciBjbWQgPSAieHRldmVSZXN0b3JlIjsNCiAgICAgICAgICAgICAgICAgICAgZGF0YVsiYmFzZTY0Il0gPSByZWFkZXIucmVzdWx0Ow0KICAgICAgICAgICAgICAgICAgICB2YXIgc2VydmVyID0gbmV3IFNlcnZlcihjbWQpOw0KICAgICAgICAgICAgICAgICAgICBzZXJ2ZXIucmVxdWVzdChkYXRhKTsNCiAgICAgICAgICAgICAgICB9Ow0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgZWxzZSB7DQogICAgICAgICAgICAgICAgYWxlcnQoIkZpbGUgY291bGQgbm90IGJlIGxvYWRlZCIpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgcmVzdG9yZS5yZW1vdmUoKTsNCiAgICAgICAgICAgIHJldHVybjsNCiAgICAgICAgfQ0KICAgIH07DQogICAgcmV0dXJuOw0KfQ0KZnVuY3Rpb24gdXBsb2FkTG9nbygpIHsNCiAgICBpZiAoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3VwbG9hZCcpKSB7DQogICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd1cGxvYWQnKS5yZW1vdmUoKTsNCiAgICB9DQogICAgdmFyIHVwbG9hZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIklOUFVUIik7DQogICAgdXBsb2FkLnNldEF0dHJpYnV0ZSgidHlwZSIsICJmaWxlIik7DQogICAgdXBsb2FkLnNldEF0dHJpYnV0ZSgiY2xhc3MiLCAibm90VmlzaWJsZSIpOw0KICAgIHVwbG9hZC5zZXRBdHRyaWJ1dGUoIm5hbWUiLCAiIik7DQogICAgdXBsb2FkLmlkID0gInVwbG9hZCI7DQogICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZCh1cGxvYWQpOw0KICAgIHVwbG9hZC5jbGljaygpOw0KICAgIHVwbG9hZC5vbmJsdXIgPSBmdW5jdGlvbiAoKSB7DQogICAgICAgIGFsZXJ0KCk7DQogICAgfTsNCiAgICB1cGxvYWQub25jaGFuZ2UgPSBmdW5jdGlvbiAoKSB7DQogICAgICAgIHZhciBmaWxlbmFtZSA9IHVwbG9hZC5maWxlc1swXS5uYW1lOw0KICAgICAgICB2YXIgcmVhZGVyID0gbmV3IEZpbGVSZWFkZXIoKTsNCiAgICAgICAgdmFyIGZpbGUgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCdpbnB1dFt0eXBlPWZpbGVdJykuZmlsZXNbMF07DQogICAgICAgIGlmIChmaWxlKSB7DQogICAgICAgICAgICByZWFkZXIucmVhZEFzRGF0YVVSTChmaWxlKTsNCiAgICAgICAgICAgIHJlYWRlci5vbmxvYWQgPSBmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICAgICAgY29uc29sZS5sb2cocmVhZGVyLnJlc3VsdCk7DQogICAgICAgICAgICAgICAgdmFyIGRhdGEgPSBuZXcgT2JqZWN0KCk7DQogICAgICAgICAgICAgICAgdmFyIGNtZCA9ICJ1cGxvYWRMb2dvIjsNCiAgICAgICAgICAgICAgICBkYXRhWyJiYXNlNjQiXSA9IHJlYWRlci5yZXN1bHQ7DQogICAgICAgICAgICAgICAgZGF0YVsiZmlsZW5hbWUiXSA9IGZpbGUubmFtZTsNCiAgICAgICAgICAgICAgICB2YXIgc2VydmVyID0gbmV3IFNlcnZlcihjbWQpOw0KICAgICAgICAgICAgICAgIHNlcnZlci5yZXF1ZXN0KGRhdGEpOw0KICAgICAgICAgICAgICAgIHZhciB1cGRhdGVMb2dvID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3VwZGF0ZS1pY29uJyk7DQogICAgICAgICAgICAgICAgdXBkYXRlTG9nby5jaGVja2VkID0gZmFsc2U7DQogICAgICAgICAgICAgICAgdXBkYXRlTG9nby5jbGFzc05hbWUgPSAiY2hhbmdlZCI7DQogICAgICAgICAgICB9Ow0KICAgICAgICB9DQogICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgYWxlcnQoIkZpbGUgY291bGQgbm90IGJlIGxvYWRlZCIpOw0KICAgICAgICB9DQogICAgICAgIHVwbG9hZC5yZW1vdmUoKTsNCiAgICAgICAgcmV0dXJuOw0KICAgIH07DQp9DQpmdW5jdGlvbiBjaGVja1VuZG8oa2V5KSB7DQogICAgc3dpdGNoIChrZXkpIHsNCiAgICAgICAgY2FzZSAiZXBnTWFwcGluZyI6DQogICAgICAgICAgICBpZiAoVU5ETy5oYXNPd25Qcm9wZXJ0eShrZXkpKSB7DQogICAgICAgICAgICAgICAgU0VSVkVSWyJ4ZXBnIl1ba2V5XSA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkoVU5ET1trZXldKSk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICBVTkRPW2tleV0gPSBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KFNFUlZFUlsieGVwZyJdW2tleV0pKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBkZWZhdWx0Og0KICAgICAgICAgICAgYnJlYWs7DQogICAgfQ0KICAgIHJldHVybjsNCn0NCmZ1bmN0aW9uIHNvcnRTZWxlY3QoZWxlbSkgew0KICAgIHZhciB0bXBBcnkgPSBbXTsNCiAgICB2YXIgc2VsZWN0ZWRWYWx1ZSA9IGVsZW1bZWxlbS5zZWxlY3RlZEluZGV4XS52YWx1ZTsNCiAgICBmb3IgKHZhciBpID0gMDsgaSA8IGVsZW0ub3B0aW9ucy5sZW5ndGg7IGkrKykNCiAgICAgICAgdG1wQXJ5LnB1c2goZWxlbS5vcHRpb25zW2ldKTsNCiAgICB0bXBBcnkuc29ydChmdW5jdGlvbiAoYSwgYikgeyByZXR1cm4gKGEudGV4dCA8IGIudGV4dCkgPyAtMSA6IDE7IH0pOw0KICAgIHdoaWxlIChlbGVtLm9wdGlvbnMubGVuZ3RoID4gMCkNCiAgICAgICAgZWxlbS5vcHRpb25zWzBdID0gbnVsbDsNCiAgICB2YXIgbmV3U2VsZWN0ZWRJbmRleCA9IDA7DQogICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0bXBBcnkubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgZWxlbS5vcHRpb25zW2ldID0gdG1wQXJ5W2ldOw0KICAgICAgICBpZiAoZWxlbS5vcHRpb25zW2ldLnZhbHVlID09IHNlbGVjdGVkVmFsdWUpDQogICAgICAgICAgICBuZXdTZWxlY3RlZEluZGV4ID0gaTsNCiAgICB9DQogICAgZWxlbS5zZWxlY3RlZEluZGV4ID0gbmV3U2VsZWN0ZWRJbmRleDsgLy8gU2V0IG5ldyBzZWxlY3RlZCBpbmRleCBhZnRlciBzb3J0aW5nDQogICAgcmV0dXJuOw0KfQ0KZnVuY3Rpb24gdXBkYXRlTG9nKCkgew0KICAgIGNvbnNvbGUubG9nKCJUT0tFTiIpOw0KICAgIHZhciBzZXJ2ZXIgPSBuZXcgU2VydmVyKCJ1cGRhdGVMb2ciKTsNCiAgICBzZXJ2ZXIucmVxdWVzdChuZXcgT2JqZWN0KCkpOw0KfQ0K" + webUI["html/js/menu_ts.js"] = "Y2xhc3MgTWFpbk1lbnUgew0KICAgIGNvbnN0cnVjdG9yKCkgew0KICAgICAgICB0aGlzLkRvY3VtZW50SUQgPSAibWFpbi1tZW51IjsNCiAgICAgICAgdGhpcy5IVE1MVGFnID0gIkxJIjsNCiAgICAgICAgdGhpcy5JbWFnZVBhdGggPSAiaW1nLyI7DQogICAgfQ0KICAgIGNyZWF0ZUlNRyhzcmMpIHsNCiAgICAgICAgbGV0IGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJJTUciKTsNCiAgICAgICAgZWxlbWVudC5zZXRBdHRyaWJ1dGUoInNyYyIsIHRoaXMuSW1hZ2VQYXRoICsgc3JjKTsNCiAgICAgICAgcmV0dXJuIGVsZW1lbnQ7DQogICAgfQ0KICAgIGNyZWF0ZVZhbHVlKHZhbHVlKSB7DQogICAgICAgIGxldCBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiUCIpOw0KICAgICAgICBlbGVtZW50LmlubmVySFRNTCA9IHZhbHVlOw0KICAgICAgICByZXR1cm4gZWxlbWVudDsNCiAgICB9DQp9DQpjbGFzcyBNYWluTWVudUl0ZW0gZXh0ZW5kcyBNYWluTWVudSB7DQogICAgY29uc3RydWN0b3IobWVudUtleSwgdmFsdWUsIGltYWdlLCBoZWFkbGluZSkgew0KICAgICAgICBzdXBlcigpOw0KICAgICAgICB0aGlzLm1lbnVLZXkgPSBtZW51S2V5Ow0KICAgICAgICB0aGlzLnZhbHVlID0gdmFsdWU7DQogICAgICAgIHRoaXMuaW1nU3JjID0gaW1hZ2U7DQogICAgICAgIHRoaXMuaGVhZGxpbmUgPSBoZWFkbGluZTsNCiAgICB9DQogICAgY3JlYXRlSXRlbSgpIHsNCiAgICAgICAgbGV0IGl0ZW0gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJMSSIpOw0KICAgICAgICBpdGVtLnNldEF0dHJpYnV0ZSgib25jbGljayIsICJqYXZhc2NyaXB0OiBvcGVuVGhpc01lbnUodGhpcykiKTsNCiAgICAgICAgaXRlbS5zZXRBdHRyaWJ1dGUoImlkIiwgdGhpcy5pZCk7DQogICAgICAgIGxldCBpbWcgPSB0aGlzLmNyZWF0ZUlNRyh0aGlzLmltZ1NyYyk7DQogICAgICAgIGxldCB2YWx1ZSA9IHRoaXMuY3JlYXRlVmFsdWUodGhpcy52YWx1ZSk7DQogICAgICAgIGl0ZW0uYXBwZW5kQ2hpbGQoaW1nKTsNCiAgICAgICAgaXRlbS5hcHBlbmRDaGlsZCh2YWx1ZSk7DQogICAgICAgIGxldCBkb2MgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCh0aGlzLkRvY3VtZW50SUQpOw0KICAgICAgICBkb2MuYXBwZW5kQ2hpbGQoaXRlbSk7DQogICAgICAgIHN3aXRjaCAodGhpcy5tZW51S2V5KSB7DQogICAgICAgICAgICBjYXNlICJwbGF5bGlzdCI6DQogICAgICAgICAgICAgICAgdGhpcy50YWJsZUhlYWRlciA9IFsie3sucGxheWxpc3QudGFibGUucGxheWxpc3R9fSIsICJ7ey5wbGF5bGlzdC50YWJsZS50dW5lcn19IiwgInt7LnBsYXlsaXN0LnRhYmxlLmxhc3RVcGRhdGV9fSIsICJ7ey5wbGF5bGlzdC50YWJsZS5hdmFpbGFiaWxpdHl9fSAlIiwgInt7LnBsYXlsaXN0LnRhYmxlLnR5cGV9fSIsICJ7ey5wbGF5bGlzdC50YWJsZS5zdHJlYW1zfX0iLCAie3sucGxheWxpc3QudGFibGUuZ3JvdXBUaXRsZX19ICUiLCAie3sucGxheWxpc3QudGFibGUudHZnSUR9fSAlIiwgInt7LnBsYXlsaXN0LnRhYmxlLnVuaXF1ZUlEfX0gJSJdOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAieG1sdHYiOg0KICAgICAgICAgICAgICAgIHRoaXMudGFibGVIZWFkZXIgPSBbInt7LnhtbHR2LnRhYmxlLmd1aWRlfX0iLCAie3sueG1sdHYudGFibGUubGFzdFVwZGF0ZX19IiwgInt7LnhtbHR2LnRhYmxlLmF2YWlsYWJpbGl0eX19ICUiLCAie3sueG1sdHYudGFibGUuY2hhbm5lbHN9fSIsICJ7ey54bWx0di50YWJsZS5wcm9ncmFtc319Il07DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJmaWx0ZXIiOg0KICAgICAgICAgICAgICAgIHRoaXMudGFibGVIZWFkZXIgPSBbInt7LmZpbHRlci50YWJsZS5uYW1lfX0iLCAie3suZmlsdGVyLnRhYmxlLnR5cGV9fSIsICJ7ey5maWx0ZXIudGFibGUuZmlsdGVyfX0iXTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInVzZXJzIjoNCiAgICAgICAgICAgICAgICB0aGlzLnRhYmxlSGVhZGVyID0gWyJ7ey51c2Vycy50YWJsZS51c2VybmFtZX19IiwgInt7LnVzZXJzLnRhYmxlLnBhc3N3b3JkfX0iLCAie3sudXNlcnMudGFibGUud2VifX0iLCAie3sudXNlcnMudGFibGUucG1zfX0iLCAie3sudXNlcnMudGFibGUubTN1fX0iLCAie3sudXNlcnMudGFibGUueG1sfX0iLCAie3sudXNlcnMudGFibGUuYXBpfX0iXTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgIm1hcHBpbmciOg0KICAgICAgICAgICAgICAgIHRoaXMudGFibGVIZWFkZXIgPSBbIkJVTEsiLCAie3subWFwcGluZy50YWJsZS5jaE5vfX0iLCAie3subWFwcGluZy50YWJsZS5sb2dvfX0iLCAie3subWFwcGluZy50YWJsZS5jaGFubmVsTmFtZX19IiwgInt7Lm1hcHBpbmcudGFibGUucGxheWxpc3R9fSIsICJ7ey5tYXBwaW5nLnRhYmxlLmdyb3VwVGl0bGV9fSIsICJ7ey5tYXBwaW5nLnRhYmxlLnhtbHR2RmlsZX19IiwgInt7Lm1hcHBpbmcudGFibGUueG1sdHZJRH19IiwgInt7Lm1hcHBpbmcudGFibGUudGltZXNoaWZ0fX0iXTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgfQ0KICAgICAgICAvL2NvbnNvbGUubG9nKHRoaXMubWVudUtleSwgdGhpcy50YWJsZUhlYWRlcik7DQogICAgfQ0KfQ0KY2xhc3MgQ29udGVudCB7DQogICAgY29uc3RydWN0b3IoKSB7DQogICAgICAgIHRoaXMuRG9jdW1lbnRJRCA9ICJjb250ZW50IjsNCiAgICAgICAgdGhpcy5UYWJsZUlEID0gImNvbnRlbnRfdGFibGUiOw0KICAgICAgICB0aGlzLmhlYWRlckNsYXNzID0gImNvbnRlbnRfdGFibGVfaGVhZGVyIjsNCiAgICAgICAgdGhpcy5pbnRlcmFjdGlvbklEID0gImNvbnRlbnQtaW50ZXJhY3Rpb24iOw0KICAgIH0NCiAgICBjcmVhdGVIZWFkbGluZSh2YWx1ZSkgew0KICAgICAgICBsZXQgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIkgzIik7DQogICAgICAgIGVsZW1lbnQuaW5uZXJIVE1MID0gdmFsdWU7DQogICAgICAgIHJldHVybiBlbGVtZW50Ow0KICAgIH0NCiAgICBjcmVhdGVIUigpIHsNCiAgICAgICAgcmV0dXJuIGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIkhSIik7DQogICAgfQ0KICAgIGNyZWF0ZUludGVyYWN0aW9uKCkgew0KICAgICAgICBsZXQgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIkRJViIpOw0KICAgICAgICBlbGVtZW50LnNldEF0dHJpYnV0ZSgiaWQiLCB0aGlzLmludGVyYWN0aW9uSUQpOw0KICAgICAgICByZXR1cm4gZWxlbWVudDsNCiAgICB9DQogICAgY3JlYXRlRElWKCkgew0KICAgICAgICBsZXQgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIkRJViIpOw0KICAgICAgICBlbGVtZW50LmlkID0gdGhpcy5EaXZJRDsNCiAgICAgICAgcmV0dXJuIGVsZW1lbnQ7DQogICAgfQ0KICAgIGNyZWF0ZVRBQkxFKCkgew0KICAgICAgICBsZXQgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlRBQkxFIik7DQogICAgICAgIGVsZW1lbnQuaWQgPSB0aGlzLlRhYmxlSUQ7DQogICAgICAgIHJldHVybiBlbGVtZW50Ow0KICAgIH0NCiAgICBjcmVhdGVUYWJsZVJvdygpIHsNCiAgICAgICAgbGV0IGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJUUiIpOw0KICAgICAgICBlbGVtZW50LmNsYXNzTmFtZSA9IHRoaXMuaGVhZGVyQ2xhc3M7DQogICAgICAgIHJldHVybiBlbGVtZW50Ow0KICAgIH0NCiAgICBjcmVhdGVUYWJsZUNvbnRlbnQobWVudUtleSkgew0KICAgICAgICBsZXQgZGF0YSA9IHt9Ow0KICAgICAgICBsZXQgcm93cyA9IFtdOw0KICAgICAgICBsZXQgZmlsZVR5cGVzID0gW107DQogICAgICAgIHN3aXRjaCAobWVudUtleSkgew0KICAgICAgICAgICAgY2FzZSAicGxheWxpc3QiOg0KICAgICAgICAgICAgICAgIGZpbGVUeXBlcyA9IFsibTN1IiwgImhkaHIiXTsNCiAgICAgICAgICAgICAgICBmaWxlVHlwZXMuZm9yRWFjaChmaWxlVHlwZSA9PiB7DQogICAgICAgICAgICAgICAgICAgIGRhdGEgPSBTRVJWRVJbInNldHRpbmdzIl1bImZpbGVzIl1bZmlsZVR5cGVdOw0KICAgICAgICAgICAgICAgICAgICB2YXIga2V5cyA9IGdldE9iaktleXMoZGF0YSk7DQogICAgICAgICAgICAgICAgICAgIGtleXMuZm9yRWFjaChrZXkgPT4gew0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVFIiKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmlkID0ga2V5Ow0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgiJyArIGZpbGVUeXBlICsgJyIsIHRoaXMpJyk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsibmFtZSJdOw0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChTRVJWRVJbInNldHRpbmdzIl1bImJ1ZmZlciJdICE9ICItIikgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bInR1bmVyIl07DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gIi0iOw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bImxhc3QudXBkYXRlIl07DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsicHJvdmlkZXIuYXZhaWxhYmlsaXR5Il07DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsidHlwZSJdLnRvVXBwZXJDYXNlKCk7DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsiY29tcGF0aWJpbGl0eSJdWyJzdHJlYW1zIl07DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsiY29tcGF0aWJpbGl0eSJdWyJncm91cC50aXRsZSJdOw0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bImNvbXBhdGliaWxpdHkiXVsidHZnLmlkIl07DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsiY29tcGF0aWJpbGl0eSJdWyJzdHJlYW0uaWQiXTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHJvd3MucHVzaCh0cik7DQogICAgICAgICAgICAgICAgICAgIH0pOw0KICAgICAgICAgICAgICAgIH0pOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiZmlsdGVyIjoNCiAgICAgICAgICAgICAgICBkZWxldGUgU0VSVkVSWyJzZXR0aW5ncyJdWyJmaWx0ZXIiXVstMV07DQogICAgICAgICAgICAgICAgZGF0YSA9IFNFUlZFUlsic2V0dGluZ3MiXVsiZmlsdGVyIl07DQogICAgICAgICAgICAgICAgdmFyIGtleXMgPSBnZXRPYmpLZXlzKGRhdGEpOw0KICAgICAgICAgICAgICAgIGtleXMuZm9yRWFjaChrZXkgPT4gew0KICAgICAgICAgICAgICAgICAgICB2YXIgdHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJUUiIpOw0KICAgICAgICAgICAgICAgICAgICB0ci5pZCA9IGtleTsNCiAgICAgICAgICAgICAgICAgICAgdHIuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgiJyArIGRhdGFba2V5XVsidHlwZSJdICsgJyIsIHRoaXMpJyk7DQogICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJuYW1lIl07DQogICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgIHN3aXRjaCAoZGF0YVtrZXldWyJ0eXBlIl0pIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgImN1c3RvbS1maWx0ZXIiOg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSAie3suZmlsdGVyLmN1c3RvbX19IjsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgImdyb3VwLXRpdGxlIjoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gInt7LmZpbHRlci5ncm91cH19IjsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsiZmlsdGVyIl07DQogICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgcm93cy5wdXNoKHRyKTsNCiAgICAgICAgICAgICAgICB9KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInhtbHR2IjoNCiAgICAgICAgICAgICAgICBmaWxlVHlwZXMgPSBuZXcgQXJyYXkoInhtbHR2Iik7DQogICAgICAgICAgICAgICAgZmlsZVR5cGVzLmZvckVhY2goZmlsZVR5cGUgPT4gew0KICAgICAgICAgICAgICAgICAgICBkYXRhID0gU0VSVkVSWyJzZXR0aW5ncyJdWyJmaWxlcyJdW2ZpbGVUeXBlXTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGtleXMgPSBnZXRPYmpLZXlzKGRhdGEpOw0KICAgICAgICAgICAgICAgICAgICBrZXlzLmZvckVhY2goa2V5ID0+IHsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciB0ciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlRSIik7DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5pZCA9IGtleTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoIicgKyBmaWxlVHlwZSArICciLCB0aGlzKScpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bIm5hbWUiXTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJsYXN0LnVwZGF0ZSJdOw0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bInByb3ZpZGVyLmF2YWlsYWJpbGl0eSJdOw0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bImNvbXBhdGliaWxpdHkiXVsieG1sdHYuY2hhbm5lbHMiXTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJjb21wYXRpYmlsaXR5Il1bInhtbHR2LnByb2dyYW1zIl07DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICByb3dzLnB1c2godHIpOw0KICAgICAgICAgICAgICAgICAgICB9KTsNCiAgICAgICAgICAgICAgICB9KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInVzZXJzIjoNCiAgICAgICAgICAgICAgICBmaWxlVHlwZXMgPSBuZXcgQXJyYXkoInVzZXJzIik7DQogICAgICAgICAgICAgICAgZmlsZVR5cGVzLmZvckVhY2goZmlsZVR5cGUgPT4gew0KICAgICAgICAgICAgICAgICAgICBkYXRhID0gU0VSVkVSW2ZpbGVUeXBlXTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGtleXMgPSBnZXRPYmpLZXlzKGRhdGEpOw0KICAgICAgICAgICAgICAgICAgICBrZXlzLmZvckVhY2goa2V5ID0+IHsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciB0ciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlRSIik7DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5pZCA9IGtleTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoIicgKyBmaWxlVHlwZSArICciLCB0aGlzKScpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bImRhdGEiXVsidXNlcm5hbWUiXTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gIioqKioqKiI7DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGRhdGFba2V5XVsiZGF0YSJdWyJhdXRoZW50aWNhdGlvbi53ZWIiXSA9PSB0cnVlKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9ICLinJMiOw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9ICItIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgICAgICBpZiAoZGF0YVtrZXldWyJkYXRhIl1bImF1dGhlbnRpY2F0aW9uLnBtcyJdID09IHRydWUpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gIuKckyI7DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gIi0iOw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChkYXRhW2tleV1bImRhdGEiXVsiYXV0aGVudGljYXRpb24ubTN1Il0gPT0gdHJ1ZSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSAi4pyTIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSAiLSI7DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGRhdGFba2V5XVsiZGF0YSJdWyJhdXRoZW50aWNhdGlvbi54bWwiXSA9PSB0cnVlKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9ICLinJMiOw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9ICItIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgICAgICBpZiAoZGF0YVtrZXldWyJkYXRhIl1bImF1dGhlbnRpY2F0aW9uLmFwaSJdID09IHRydWUpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gIuKckyI7DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gIi0iOw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgcm93cy5wdXNoKHRyKTsNCiAgICAgICAgICAgICAgICAgICAgfSk7DQogICAgICAgICAgICAgICAgfSk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJtYXBwaW5nIjoNCiAgICAgICAgICAgICAgICBCVUxLX0VESVQgPSBmYWxzZTsNCiAgICAgICAgICAgICAgICBjcmVhdGVTZWFyY2hPYmooKTsNCiAgICAgICAgICAgICAgICBjaGVja1VuZG8oImVwZ01hcHBpbmciKTsNCiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZygiTUFQUElORyIpOw0KICAgICAgICAgICAgICAgIGRhdGEgPSBTRVJWRVJbInhlcGciXVsiZXBnTWFwcGluZyJdOw0KICAgICAgICAgICAgICAgIHZhciBrZXlzID0gZ2V0T2JqS2V5cyhkYXRhKTsNCiAgICAgICAgICAgICAgICBrZXlzLmZvckVhY2goa2V5ID0+IHsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVFIiKTsNCiAgICAgICAgICAgICAgICAgICAgdHIuaWQgPSBrZXk7DQogICAgICAgICAgICAgICAgICAgIC8vdHIuc2V0QXR0cmlidXRlKCdvbmNvbnRleHRtZW51JywgJ2phdmFzY3JpcHQ6IHJpZ2h0Q2xpY2sodGhpcyknKQ0KICAgICAgICAgICAgICAgICAgICBzd2l0Y2ggKGRhdGFba2V5XVsieC1hY3RpdmUiXSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSB0cnVlOg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyLmNsYXNzTmFtZSA9ICJhY3RpdmVFUEciOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSBmYWxzZToNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ci5jbGFzc05hbWUgPSAibm90QWN0aXZlRVBHIjsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAvLyBCdWxrDQogICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIkJVTEsiOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZmFsc2U7DQogICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgLy8gS2FuYWxudW1tZXINCiAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiSU5QVVRDSEFOTkVMIjsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsieC1jaGFubmVsSUQiXTsNCiAgICAgICAgICAgICAgICAgICAgLy90ZC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogY2hhbmdlQ2hhbm5lbE51bWJlcigiJyArIGtleSArICciLCB0aGlzKScpDQogICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgLy8gTG9nbw0KICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJJTUciOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmltYWdlVVJMID0gZGF0YVtrZXldWyJ0dmctbG9nbyJdOw0KICAgICAgICAgICAgICAgICAgICB2YXIgdGQgPSBjZWxsLmNyZWF0ZUNlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgdGQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgibWFwcGluZyIsIHRoaXMpJyk7DQogICAgICAgICAgICAgICAgICAgIHRkLmlkID0ga2V5Ow0KICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZCh0ZCk7DQogICAgICAgICAgICAgICAgICAgIC8vIEthbmFsbmFtZQ0KICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jbGFzc05hbWUgPSBkYXRhW2tleV1bIngtY2F0ZWdvcnkiXTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsieC1uYW1lIl07DQogICAgICAgICAgICAgICAgICAgIHZhciB0ZCA9IGNlbGwuY3JlYXRlQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICB0ZC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJtYXBwaW5nIiwgdGhpcyknKTsNCiAgICAgICAgICAgICAgICAgICAgdGQuaWQgPSBrZXk7DQogICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKHRkKTsNCiAgICAgICAgICAgICAgICAgICAgLy8gUGxheWxpc3QNCiAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgIC8vY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsiX2ZpbGUubTN1Lm5hbWUiXSANCiAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGdldFZhbHVlRnJvbVByb3ZpZGVyRmlsZShkYXRhW2tleV1bIl9maWxlLm0zdS5pZCJdLCAibTN1IiwgIm5hbWUiKTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHRkID0gY2VsbC5jcmVhdGVDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgIHRkLnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoIm1hcHBpbmciLCB0aGlzKScpOw0KICAgICAgICAgICAgICAgICAgICB0ZC5pZCA9IGtleTsNCiAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQodGQpOw0KICAgICAgICAgICAgICAgICAgICAvLyBHcnVwcGUgKGdyb3VwLXRpdGxlKQ0KICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsieC1ncm91cC10aXRsZSJdOw0KICAgICAgICAgICAgICAgICAgICB2YXIgdGQgPSBjZWxsLmNyZWF0ZUNlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgdGQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgibWFwcGluZyIsIHRoaXMpJyk7DQogICAgICAgICAgICAgICAgICAgIHRkLmlkID0ga2V5Ow0KICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZCh0ZCk7DQogICAgICAgICAgICAgICAgICAgIC8vIFhNTFRWIERhdGVpDQogICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICBpZiAoZGF0YVtrZXldWyJ4LXhtbHR2LWZpbGUiXSAhPSAiLSIpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBnZXRWYWx1ZUZyb21Qcm92aWRlckZpbGUoZGF0YVtrZXldWyJ4LXhtbHR2LWZpbGUiXSwgInhtbHR2IiwgIm5hbWUiKTsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bIngteG1sdHYtZmlsZSJdOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIHZhciB0ZCA9IGNlbGwuY3JlYXRlQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICB0ZC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJtYXBwaW5nIiwgdGhpcyknKTsNCiAgICAgICAgICAgICAgICAgICAgdGQuaWQgPSBrZXk7DQogICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKHRkKTsNCiAgICAgICAgICAgICAgICAgICAgLy8gWE1MVFYgS2FuYWwNCiAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgIC8vdmFyIHZhbHVlID0gc3RyLnN1YnN0cmluZygxLCA0KTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHZhbHVlID0gZGF0YVtrZXldWyJ4LW1hcHBpbmciXTsNCiAgICAgICAgICAgICAgICAgICAgaWYgKHZhbHVlLmxlbmd0aCA+IDIwKSB7DQogICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IGRhdGFba2V5XVsieC1tYXBwaW5nIl0uc3Vic3RyaW5nKDAsIDIwKSArICIuLi4iOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSB2YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHRkID0gY2VsbC5jcmVhdGVDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgIHRkLnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoIm1hcHBpbmciLCB0aGlzKScpOw0KICAgICAgICAgICAgICAgICAgICB0ZC5pZCA9IGtleTsNCiAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQodGQpOw0KICAgICAgICAgICAgICAgICAgICAvLyBUaW1lU2hpZnQNCiAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bIngtdGltZXNoaWZ0Il07DQogICAgICAgICAgICAgICAgICAgIHZhciB0ZCA9IGNlbGwuY3JlYXRlQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICB0ZC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJtYXBwaW5nIiwgdGhpcyknKTsNCiAgICAgICAgICAgICAgICAgICAgdGQuaWQgPSBrZXk7DQogICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKHRkKTsNCiAgICAgICAgICAgICAgICAgICAgcm93cy5wdXNoKHRyKTsNCiAgICAgICAgICAgICAgICB9KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInNldHRpbmdzIjoNCiAgICAgICAgICAgICAgICBhbGVydCgpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZygiVGFibGUgY29udGVudCAobWVudUtleSk6IiwgbWVudUtleSk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIH0NCiAgICAgICAgcmV0dXJuIHJvd3M7DQogICAgfQ0KfQ0KY2xhc3MgQ2VsbCB7DQogICAgY3JlYXRlQ2VsbCgpIHsNCiAgICAgICAgbGV0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgaWYgKHRoaXMuY2hpbGQgPT0gdHJ1ZSkgew0KICAgICAgICAgICAgdmFyIGVsZW1lbnQ7DQogICAgICAgICAgICBzd2l0Y2ggKHRoaXMuY2hpbGRUeXBlKSB7DQogICAgICAgICAgICAgICAgY2FzZSAiUCI6DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KHRoaXMuY2hpbGRUeXBlKTsNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC5pbm5lckhUTUwgPSB0aGlzLnZhbHVlOw0KICAgICAgICAgICAgICAgICAgICBlbGVtZW50LmNsYXNzTmFtZSA9IHRoaXMuY2xhc3NOYW1lOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBjYXNlICJJTlBVVCI6DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KHRoaXMuY2hpbGRUeXBlKTsNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC52YWx1ZSA9IHRoaXMudmFsdWU7DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQudHlwZSA9ICJ0ZXh0IjsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAiSU5QVVRDSEFOTkVMIjoNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIklOUFVUIik7DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZzY3JpcHQ6IGNoYW5nZUNoYW5uZWxOdW1iZXIodGhpcykiKTsNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC52YWx1ZSA9IHRoaXMudmFsdWU7DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQudHlwZSA9ICJ0ZXh0IjsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAiQlVMSyI6DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJJTlBVVCIpOw0KICAgICAgICAgICAgICAgICAgICBlbGVtZW50LmNoZWNrZWQgPSB0aGlzLnZhbHVlOw0KICAgICAgICAgICAgICAgICAgICBlbGVtZW50LnR5cGUgPSAiY2hlY2tib3giOw0KICAgICAgICAgICAgICAgICAgICBlbGVtZW50LmNsYXNzTmFtZSA9ICJidWxrIGhpZGVCdWxrIjsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAiQlVMS19IRUFEIjoNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIklOUFVUIik7DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQuY2hlY2tlZCA9IHRoaXMudmFsdWU7DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQudHlwZSA9ICJjaGVja2JveCI7DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQuY2xhc3NOYW1lID0gImJ1bGsgaGlkZUJ1bGsiOw0KICAgICAgICAgICAgICAgICAgICBlbGVtZW50LnNldEF0dHJpYnV0ZSgib25jbGljayIsICJqYXZhc2NyaXB0OiBzZWxlY3RBbGxDaGFubmVscygpIik7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgIklNRyI6DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KHRoaXMuY2hpbGRUeXBlKTsNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC5zZXRBdHRyaWJ1dGUoInNyYyIsIHRoaXMuaW1hZ2VVUkwpOw0KICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5pbWFnZVVSTCAhPSAiIikgew0KICAgICAgICAgICAgICAgICAgICAgICAgZWxlbWVudC5zZXRBdHRyaWJ1dGUoIm9uZXJyb3IiLCAiamF2YXNjcmlwdDogdGhpcy5vbmVycm9yPW51bGw7dGhpcy5zcmM9JyciKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIC8vb25lcnJvcj0idGhpcy5vbmVycm9yPW51bGw7dGhpcy5zcmM9J21pc3NpbmcuZ2lmJzsiDQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIHRkLmFwcGVuZENoaWxkKGVsZW1lbnQpOw0KICAgICAgICB9DQogICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgdGQuaW5uZXJIVE1MID0gdGhpcy52YWx1ZTsNCiAgICAgICAgfQ0KICAgICAgICBpZiAodGhpcy5vbmNsaWNrID09IHRydWUpIHsNCiAgICAgICAgICAgIHRkLnNldEF0dHJpYnV0ZSgib25jbGljayIsIHRoaXMub25jbGlja0Z1bmt0aW9uKTsNCiAgICAgICAgICAgIHRkLmNsYXNzTmFtZSA9ICJwb2ludGVyIjsNCiAgICAgICAgfQ0KICAgICAgICBpZiAodGhpcy50ZENsYXNzTmFtZSAhPSB1bmRlZmluZWQpIHsNCiAgICAgICAgICAgIHRkLmNsYXNzTmFtZSA9IHRoaXMudGRDbGFzc05hbWU7DQogICAgICAgIH0NCiAgICAgICAgcmV0dXJuIHRkOw0KICAgIH0NCn0NCmNsYXNzIFNob3dDb250ZW50IGV4dGVuZHMgQ29udGVudCB7DQogICAgY29uc3RydWN0b3IobWVudUlEKSB7DQogICAgICAgIHN1cGVyKCk7DQogICAgICAgIHRoaXMubWVudUlEID0gbWVudUlEOw0KICAgIH0NCiAgICBjcmVhdGVJbnB1dCh0eXBlLCBuYW1lLCB2YWx1ZSkgew0KICAgICAgICBsZXQgaW5wdXQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJJTlBVVCIpOw0KICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInR5cGUiLCB0eXBlKTsNCiAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJuYW1lIiwgbmFtZSk7DQogICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgidmFsdWUiLCB2YWx1ZSk7DQogICAgICAgIHJldHVybiBpbnB1dDsNCiAgICB9DQogICAgc2hvdygpIHsNCiAgICAgICAgQ09MVU1OX1RPX1NPUlQgPSAtMTsNCiAgICAgICAgLy8gQWx0ZW4gSW5oYWx0IGzDtnNjaGVuDQogICAgICAgIGxldCBkb2MgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCh0aGlzLkRvY3VtZW50SUQpOw0KICAgICAgICBkb2MuaW5uZXJIVE1MID0gIiI7DQogICAgICAgIHNob3dQcmV2aWV3KGZhbHNlKTsNCiAgICAgICAgLy8gw5xiZXJzY2hyaWZ0DQogICAgICAgIGxldCBoZWFkbGluZSA9IG1lbnVJdGVtc1t0aGlzLm1lbnVJRF0uaGVhZGxpbmU7DQogICAgICAgIGxldCBtZW51S2V5ID0gbWVudUl0ZW1zW3RoaXMubWVudUlEXS5tZW51S2V5Ow0KICAgICAgICBsZXQgaCA9IHRoaXMuY3JlYXRlSGVhZGxpbmUoaGVhZGxpbmUpOw0KICAgICAgICBkb2MuYXBwZW5kQ2hpbGQoaCk7DQogICAgICAgIGxldCBociA9IHRoaXMuY3JlYXRlSFIoKTsNCiAgICAgICAgZG9jLmFwcGVuZENoaWxkKGhyKTsNCiAgICAgICAgLy8gSW50ZXJha3Rpb24NCiAgICAgICAgbGV0IGRpdiA9IHRoaXMuY3JlYXRlSW50ZXJhY3Rpb24oKTsNCiAgICAgICAgZG9jLmFwcGVuZENoaWxkKGRpdik7DQogICAgICAgIGxldCBpbnRlcmFjdGlvbiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHRoaXMuaW50ZXJhY3Rpb25JRCk7DQogICAgICAgIHN3aXRjaCAobWVudUtleSkgew0KICAgICAgICAgICAgY2FzZSAicGxheWxpc3QiOg0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IHRoaXMuY3JlYXRlSW5wdXQoImJ1dHRvbiIsIG1lbnVLZXksICJ7ey5idXR0b24ubmV3fX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoImlkIiwgIi0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJwbGF5bGlzdCIpJyk7DQogICAgICAgICAgICAgICAgaW50ZXJhY3Rpb24uYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiZmlsdGVyIjoNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSB0aGlzLmNyZWF0ZUlucHV0KCJidXR0b24iLCBtZW51S2V5LCAie3suYnV0dG9uLm5ld319Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJpZCIsIC0xKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJmaWx0ZXIiLCB0aGlzKScpOw0KICAgICAgICAgICAgICAgIGludGVyYWN0aW9uLmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInhtbHR2IjoNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSB0aGlzLmNyZWF0ZUlucHV0KCJidXR0b24iLCBtZW51S2V5LCAie3suYnV0dG9uLm5ld319Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJpZCIsICJ4bWx0diIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoInhtbHR2IiknKTsNCiAgICAgICAgICAgICAgICBpbnRlcmFjdGlvbi5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ1c2VycyI6DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gdGhpcy5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgbWVudUtleSwgInt7LmJ1dHRvbi5uZXd9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgiaWQiLCAidXNlcnMiKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJ1c2VycyIpJyk7DQogICAgICAgICAgICAgICAgaW50ZXJhY3Rpb24uYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAibWFwcGluZyI6DQogICAgICAgICAgICAgICAgc2hvd0VsZW1lbnQoImxvYWRpbmciLCB0cnVlKTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSB0aGlzLmNyZWF0ZUlucHV0KCJidXR0b24iLCBtZW51S2V5LCAie3suYnV0dG9uLnNhdmV9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBzYXZlUG9wdXBEYXRhKCJtYXBwaW5nIiwgIiIsICIiKScpOw0KICAgICAgICAgICAgICAgIGludGVyYWN0aW9uLmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSB0aGlzLmNyZWF0ZUlucHV0KCJidXR0b24iLCBtZW51S2V5LCAie3suYnV0dG9uLmJ1bGtFZGl0fX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogYnVsa0VkaXQoKScpOw0KICAgICAgICAgICAgICAgIGludGVyYWN0aW9uLmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSB0aGlzLmNyZWF0ZUlucHV0KCJzZWFyY2giLCAic2VhcmNoIiwgIiIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgiaWQiLCAic2VhcmNoTWFwcGluZyIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3suYnV0dG9uLnNlYXJjaH19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuY2xhc3NOYW1lID0gInNlYXJjaCI7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICdqYXZhc2NyaXB0OiBzZWFyY2hJbk1hcHBpbmcoKScpOw0KICAgICAgICAgICAgICAgIGludGVyYWN0aW9uLmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInNldHRpbmdzIjoNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSB0aGlzLmNyZWF0ZUlucHV0KCJidXR0b24iLCBtZW51S2V5LCAie3suYnV0dG9uLnNhdmV9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBzYXZlU2V0dGluZ3MoKTsnKTsNCiAgICAgICAgICAgICAgICBpbnRlcmFjdGlvbi5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gdGhpcy5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgbWVudUtleSwgInt7LmJ1dHRvbi5iYWNrdXB9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBiYWNrdXAoKTsnKTsNCiAgICAgICAgICAgICAgICBpbnRlcmFjdGlvbi5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gdGhpcy5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgbWVudUtleSwgInt7LmJ1dHRvbi5yZXN0b3JlfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogcmVzdG9yZSgpOycpOw0KICAgICAgICAgICAgICAgIGludGVyYWN0aW9uLmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICB2YXIgd3JhcHBlciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIkRJViIpOw0KICAgICAgICAgICAgICAgIHdyYXBwZXIuc2V0QXR0cmlidXRlKCJpZCIsICJib3gtd3JhcHBlciIpOw0KICAgICAgICAgICAgICAgIGRvYy5hcHBlbmRDaGlsZCh3cmFwcGVyKTsNCiAgICAgICAgICAgICAgICB0aGlzLkRpdklEID0gImNvbnRlbnRfc2V0dGluZ3MiOw0KICAgICAgICAgICAgICAgIHZhciBzZXR0aW5ncyA9IHRoaXMuY3JlYXRlRElWKCk7DQogICAgICAgICAgICAgICAgd3JhcHBlci5hcHBlbmRDaGlsZChzZXR0aW5ncyk7DQogICAgICAgICAgICAgICAgc2hvd1NldHRpbmdzKCk7DQogICAgICAgICAgICAgICAgcmV0dXJuOw0KICAgICAgICAgICAgY2FzZSAibG9nIjoNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSB0aGlzLmNyZWF0ZUlucHV0KCJidXR0b24iLCBtZW51S2V5LCAie3suYnV0dG9uLnJlc2V0TG9nc319Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IHJlc2V0TG9ncygpOycpOw0KICAgICAgICAgICAgICAgIGludGVyYWN0aW9uLmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICB2YXIgd3JhcHBlciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIkRJViIpOw0KICAgICAgICAgICAgICAgIHdyYXBwZXIuc2V0QXR0cmlidXRlKCJpZCIsICJib3gtd3JhcHBlciIpOw0KICAgICAgICAgICAgICAgIGRvYy5hcHBlbmRDaGlsZCh3cmFwcGVyKTsNCiAgICAgICAgICAgICAgICB0aGlzLkRpdklEID0gImNvbnRlbnRfbG9nIjsNCiAgICAgICAgICAgICAgICB2YXIgbG9ncyA9IHRoaXMuY3JlYXRlRElWKCk7DQogICAgICAgICAgICAgICAgd3JhcHBlci5hcHBlbmRDaGlsZChsb2dzKTsNCiAgICAgICAgICAgICAgICBzaG93TG9ncyh0cnVlKTsNCiAgICAgICAgICAgICAgICByZXR1cm47DQogICAgICAgICAgICBjYXNlICJsb2dvdXQiOg0KICAgICAgICAgICAgICAgIGxvY2F0aW9uLnJlbG9hZCgpOw0KICAgICAgICAgICAgICAgIGRvY3VtZW50LmNvb2tpZSA9ICJUb2tlbj0gOyBleHBpcmVzID0gVGh1LCAwMSBKYW4gMTk3MCAwMDowMDowMCBHTVQiOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZygiU2hvdyBjb250ZW50IChtZW51S2V5KToiLCBtZW51S2V5KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgfQ0KICAgICAgICAvLyBUYWJlbGxlIGVyc3RlbGxlbiAoZmFsbHMgYmVuw7Z0aWd0KQ0KICAgICAgICB2YXIgdGFibGVIZWFkZXIgPSBtZW51SXRlbXNbdGhpcy5tZW51SURdLnRhYmxlSGVhZGVyOw0KICAgICAgICBpZiAodGFibGVIZWFkZXIubGVuZ3RoID4gMCkgew0KICAgICAgICAgICAgdmFyIHdyYXBwZXIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJESVYiKTsNCiAgICAgICAgICAgIGRvYy5hcHBlbmRDaGlsZCh3cmFwcGVyKTsNCiAgICAgICAgICAgIHdyYXBwZXIuc2V0QXR0cmlidXRlKCJpZCIsICJib3gtd3JhcHBlciIpOw0KICAgICAgICAgICAgdmFyIHRhYmxlID0gdGhpcy5jcmVhdGVUQUJMRSgpOw0KICAgICAgICAgICAgd3JhcHBlci5hcHBlbmRDaGlsZCh0YWJsZSk7DQogICAgICAgICAgICB2YXIgaGVhZGVyID0gdGhpcy5jcmVhdGVUYWJsZVJvdygpOw0KICAgICAgICAgICAgdGFibGUuYXBwZW5kQ2hpbGQoaGVhZGVyKTsNCiAgICAgICAgICAgIC8vIEtvcGZ6ZWlsZSBkZXIgVGFibGxlDQogICAgICAgICAgICB0YWJsZUhlYWRlci5mb3JFYWNoKGVsZW1lbnQgPT4gew0KICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZWxlbWVudDsNCiAgICAgICAgICAgICAgICBpZiAoZWxlbWVudCA9PSAiQlVMSyIpIHsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiQlVMS19IRUFEIjsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGZhbHNlOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBpZiAobWVudUtleSA9PSAibWFwcGluZyIpIHsNCiAgICAgICAgICAgICAgICAgICAgaWYgKGVsZW1lbnQgPT0gInt7Lm1hcHBpbmcudGFibGUuY2hOb319Iikgew0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5vbmNsaWNrID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwub25jbGlja0Z1bmt0aW9uID0gImphdmFzY3JpcHQ6IHNvcnRUYWJsZSgxKTsiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC50ZENsYXNzTmFtZSA9ICJzb3J0VGhpcyI7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgaWYgKGVsZW1lbnQgPT0gInt7Lm1hcHBpbmcudGFibGUuY2hhbm5lbE5hbWV9fSIpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwub25jbGljayA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLm9uY2xpY2tGdW5rdGlvbiA9ICJqYXZhc2NyaXB0OiBzb3J0VGFibGUoMyk7IjsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBpZiAoZWxlbWVudCA9PSAie3subWFwcGluZy50YWJsZS5wbGF5bGlzdH19Iikgew0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5vbmNsaWNrID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwub25jbGlja0Z1bmt0aW9uID0gImphdmFzY3JpcHQ6IHNvcnRUYWJsZSg0KTsiOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIGlmIChlbGVtZW50ID09ICJ7ey5tYXBwaW5nLnRhYmxlLmdyb3VwVGl0bGV9fSIpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwub25jbGljayA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLm9uY2xpY2tGdW5rdGlvbiA9ICJqYXZhc2NyaXB0OiBzb3J0VGFibGUoNSk7IjsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBoZWFkZXIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgfSk7DQogICAgICAgICAgICB0YWJsZS5hcHBlbmRDaGlsZChoZWFkZXIpOw0KICAgICAgICAgICAgLy8gSW5oYWx0IGRlciBUYWJlbGxlDQogICAgICAgICAgICB2YXIgcm93cyA9IHRoaXMuY3JlYXRlVGFibGVDb250ZW50KG1lbnVLZXkpOw0KICAgICAgICAgICAgcm93cy5mb3JFYWNoKHRyID0+IHsNCiAgICAgICAgICAgICAgICB0YWJsZS5hcHBlbmRDaGlsZCh0cik7DQogICAgICAgICAgICB9KTsNCiAgICAgICAgfQ0KICAgICAgICBzd2l0Y2ggKG1lbnVLZXkpIHsNCiAgICAgICAgICAgIGNhc2UgIm1hcHBpbmciOg0KICAgICAgICAgICAgICAgIHNvcnRUYWJsZSgxKTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImZpbHRlciI6DQogICAgICAgICAgICAgICAgc2hvd1ByZXZpZXcodHJ1ZSk7DQogICAgICAgICAgICAgICAgc29ydFRhYmxlKDApOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgICAgICBDT0xVTU5fVE9fU09SVCA9IC0xOw0KICAgICAgICAgICAgICAgIHNvcnRUYWJsZSgwKTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgfQ0KICAgICAgICBzaG93RWxlbWVudCgibG9hZGluZyIsIGZhbHNlKTsNCiAgICB9DQp9DQpmdW5jdGlvbiBQYWdlUmVhZHkoKSB7DQogICAgbGV0IHNlcnZlciA9IG5ldyBTZXJ2ZXIoImdldFNlcnZlckNvbmZpZyIpOw0KICAgIHNlcnZlci5yZXF1ZXN0KHt9KTsNCiAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigicmVzaXplIiwgZnVuY3Rpb24gKCkgew0KICAgICAgICBjYWxjdWxhdGVXcmFwcGVySGVpZ2h0KCk7DQogICAgfSwgdHJ1ZSk7DQogICAgc2V0SW50ZXJ2YWwoZnVuY3Rpb24gKCkgew0KICAgICAgICB1cGRhdGVMb2coKTsNCiAgICB9LCAxMDAwMCk7DQogICAgcmV0dXJuOw0KfQ0KZnVuY3Rpb24gY3JlYXRlTGF5b3V0KCkgew0KICAgIC8vIENsaWVudCBJbmZvDQogICAgbGV0IG9iaiA9IFNFUlZFUlsiY2xpZW50SW5mbyJdOw0KICAgIGxldCBrZXlzID0gZ2V0T2JqS2V5cyhvYmopOw0KICAgIGZvciAodmFyIGkgPSAwOyBpIDwga2V5cy5sZW5ndGg7IGkrKykgew0KICAgICAgICBpZiAoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoa2V5c1tpXSkpIHsNCiAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGtleXNbaV0pLmlubmVySFRNTCA9IG9ialtrZXlzW2ldXTsNCiAgICAgICAgfQ0KICAgIH0NCiAgICBpZiAoIWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJtYWluLW1lbnUiKSkgew0KICAgICAgICByZXR1cm47DQogICAgfQ0KICAgIC8vIE1lbsO8IGVyc3RlbGxlbg0KICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJtYWluLW1lbnUiKS5pbm5lckhUTUwgPSAiIjsNCiAgICBmb3IgKGxldCBpID0gMDsgaSA8IG1lbnVJdGVtcy5sZW5ndGg7IGkrKykgew0KICAgICAgICBtZW51SXRlbXNbaV0uaWQgPSBpOw0KICAgICAgICBzd2l0Y2ggKG1lbnVJdGVtc1tpXVsibWVudUtleSJdKSB7DQogICAgICAgICAgICBjYXNlICJ1c2VycyI6DQogICAgICAgICAgICBjYXNlICJsb2dvdXQiOg0KICAgICAgICAgICAgICAgIGlmIChTRVJWRVJbInNldHRpbmdzIl1bImF1dGhlbnRpY2F0aW9uLndlYiJdID09IHRydWUpIHsNCiAgICAgICAgICAgICAgICAgICAgbWVudUl0ZW1zW2ldLmNyZWF0ZUl0ZW0oKTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJtYXBwaW5nIjoNCiAgICAgICAgICAgIGNhc2UgInhtbHR2IjoNCiAgICAgICAgICAgICAgICBpZiAoU0VSVkVSWyJjbGllbnRJbmZvIl1bImVwZ1NvdXJjZSJdID09ICJYRVBHIikgew0KICAgICAgICAgICAgICAgICAgICBtZW51SXRlbXNbaV0uY3JlYXRlSXRlbSgpOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICAgICAgbWVudUl0ZW1zW2ldLmNyZWF0ZUl0ZW0oKTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgfQ0KICAgIH0NCiAgICByZXR1cm47DQp9DQpmdW5jdGlvbiBvcGVuVGhpc01lbnUoZWxlbWVudCkgew0KICAgIGxldCBpZCA9IGVsZW1lbnQuaWQ7DQogICAgbGV0IGNvbnRlbnQgPSBuZXcgU2hvd0NvbnRlbnQoaWQpOw0KICAgIGNvbnRlbnQuc2hvdygpOw0KICAgIGNhbGN1bGF0ZVdyYXBwZXJIZWlnaHQoKTsNCiAgICByZXR1cm47DQp9DQpjbGFzcyBQb3B1cFdpbmRvdyB7DQogICAgY29uc3RydWN0b3IoKSB7DQogICAgICAgIHRoaXMuRG9jdW1lbnRJRCA9ICJwb3B1cC1jdXN0b20iOw0KICAgICAgICB0aGlzLkludGVyYWN0aW9uSUQgPSAiaW50ZXJhY3Rpb24iOw0KICAgICAgICB0aGlzLmRvYyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHRoaXMuRG9jdW1lbnRJRCk7DQogICAgfQ0KICAgIGNyZWF0ZVRpdGxlKHRpdGxlKSB7DQogICAgICAgIGxldCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgIHRkLmNsYXNzTmFtZSA9ICJsZWZ0IjsNCiAgICAgICAgdGQuaW5uZXJIVE1MID0gdGl0bGUgKyAiOiI7DQogICAgICAgIHJldHVybiB0ZDsNCiAgICB9DQogICAgY3JlYXRlQ29udGVudChlbGVtZW50KSB7DQogICAgICAgIGxldCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgIHRkLmFwcGVuZENoaWxkKGVsZW1lbnQpOw0KICAgICAgICByZXR1cm4gdGQ7DQogICAgfQ0KICAgIGNyZWF0ZUludGVyYWN0aW9uKCkgew0KICAgICAgICBsZXQgZGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7DQogICAgICAgIGRpdi5zZXRBdHRyaWJ1dGUoImlkIiwgInBvcHVwLWludGVyYWN0aW9uIik7DQogICAgICAgIGRpdi5jbGFzc05hbWUgPSAiaW50ZXJhY3Rpb24iOw0KICAgICAgICB0aGlzLmRvYy5hcHBlbmRDaGlsZChkaXYpOw0KICAgIH0NCn0NCmNsYXNzIFBvcHVwQ29udGVudCBleHRlbmRzIFBvcHVwV2luZG93IHsNCiAgICBjb25zdHJ1Y3RvcigpIHsNCiAgICAgICAgc3VwZXIoLi4uYXJndW1lbnRzKTsNCiAgICAgICAgdGhpcy50YWJsZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlRBQkxFIik7DQogICAgfQ0KICAgIGNyZWF0ZUhlYWRsaW5lKGhlYWRsaW5lKSB7DQogICAgICAgIHRoaXMuZG9jLmlubmVySFRNTCA9ICIiOw0KICAgICAgICB2YXIgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIkgzIik7DQogICAgICAgIGVsZW1lbnQuaW5uZXJIVE1MID0gaGVhZGxpbmUudG9VcHBlckNhc2UoKTsNCiAgICAgICAgdGhpcy5kb2MuYXBwZW5kQ2hpbGQoZWxlbWVudCk7DQogICAgICAgIC8vIFRhYmVsbGUgZXJzdGVsbGVuDQogICAgICAgIHRoaXMudGFibGUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJUQUJMRSIpOw0KICAgICAgICB0aGlzLmRvYy5hcHBlbmRDaGlsZCh0aGlzLnRhYmxlKTsNCiAgICB9DQogICAgYXBwZW5kUm93KHRpdGxlLCBlbGVtZW50KSB7DQogICAgICAgIGxldCB0ciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlRSIik7DQogICAgICAgIC8vIEJlemVpY2hudW5nDQogICAgICAgIGlmICh0aXRsZS5sZW5ndGggIT0gMCkgew0KICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQodGhpcy5jcmVhdGVUaXRsZSh0aXRsZSkpOw0KICAgICAgICB9DQogICAgICAgIC8vIENvbnRlbnQNCiAgICAgICAgdHIuYXBwZW5kQ2hpbGQodGhpcy5jcmVhdGVDb250ZW50KGVsZW1lbnQpKTsNCiAgICAgICAgdGhpcy50YWJsZS5hcHBlbmRDaGlsZCh0cik7DQogICAgfQ0KICAgIGNyZWF0ZUlucHV0KHR5cGUsIG5hbWUsIHZhbHVlKSB7DQogICAgICAgIGxldCBpbnB1dCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIklOUFVUIik7DQogICAgICAgIGlmICh2YWx1ZSA9PSB1bmRlZmluZWQpIHsNCiAgICAgICAgICAgIHZhbHVlID0gIiI7DQogICAgICAgIH0NCiAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJ0eXBlIiwgdHlwZSk7DQogICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgibmFtZSIsIG5hbWUpOw0KICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInZhbHVlIiwgdmFsdWUpOw0KICAgICAgICByZXR1cm4gaW5wdXQ7DQogICAgfQ0KICAgIGNyZWF0ZUNoZWNrYm94KG5hbWUpIHsNCiAgICAgICAgbGV0IGlucHV0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiSU5QVVQiKTsNCiAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJ0eXBlIiwgImNoZWNrYm94Iik7DQogICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgibmFtZSIsIG5hbWUpOw0KICAgICAgICByZXR1cm4gaW5wdXQ7DQogICAgfQ0KICAgIC8vIENyZWF0ZXMgYSBzZWxlY3Rpb24gb2YgbXVsdGlwbGUgb3B0aW9ucyB2YWx1ZXMgd2l0aCB0ZXh0IGRlc2NyaXB0aW9ucw0KICAgIGNyZWF0ZVNlbGVjdCh0ZXh0LCB2YWx1ZXMsIHNldCwgZGJLZXkpIHsNCiAgICAgICAgbGV0IHNlbGVjdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlNFTEVDVCIpOw0KICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJuYW1lIiwgZGJLZXkpOw0KICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRleHQubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgICAgIGxldCBvcHRpb24gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJPUFRJT04iKTsNCiAgICAgICAgICAgIG9wdGlvbi5zZXRBdHRyaWJ1dGUoInZhbHVlIiwgdmFsdWVzW2ldKTsNCiAgICAgICAgICAgIG9wdGlvbi5pbm5lclRleHQgPSB0ZXh0W2ldOw0KICAgICAgICAgICAgc2VsZWN0LmFwcGVuZENoaWxkKG9wdGlvbik7DQogICAgICAgIH0NCiAgICAgICAgaWYgKHNldCAhPSAiIikgew0KICAgICAgICAgICAgc2VsZWN0LnZhbHVlID0gc2V0Ow0KICAgICAgICB9DQogICAgICAgIGlmIChzZXQgPT0gdW5kZWZpbmVkKSB7DQogICAgICAgICAgICBzZWxlY3QudmFsdWUgPSB2YWx1ZXNbMF07DQogICAgICAgIH0NCiAgICAgICAgcmV0dXJuIHNlbGVjdDsNCiAgICB9DQogICAgc2VsZWN0T3B0aW9uKHNlbGVjdCwgdmFsdWUpIHsNCiAgICAgICAgLy9zZWxlY3Quc2VsZWN0ZWRPcHRpb25zID0gdmFsdWUNCiAgICAgICAgbGV0IHMgPSBzZWxlY3Q7DQogICAgICAgIHMub3B0aW9uc1tzLnNlbGVjdGVkSW5kZXhdLnZhbHVlID0gdmFsdWU7DQogICAgICAgIHJldHVybiBzZWxlY3Q7DQogICAgfQ0KICAgIGRlc2NyaXB0aW9uKHZhbHVlKSB7DQogICAgICAgIGxldCB0ciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlRSIik7DQogICAgICAgIGxldCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgIGxldCBzcGFuID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiUFJFIik7DQogICAgICAgIHNwYW4uaW5uZXJIVE1MID0gdmFsdWU7DQogICAgICAgIHRyLmFwcGVuZENoaWxkKHRkKTsNCiAgICAgICAgdHIuYXBwZW5kQ2hpbGQodGhpcy5jcmVhdGVDb250ZW50KHNwYW4pKTsNCiAgICAgICAgdGhpcy50YWJsZS5hcHBlbmRDaGlsZCh0cik7DQogICAgfQ0KICAgIC8vIEludGVyYWt0aW9uDQogICAgYWRkSW50ZXJhY3Rpb24oZWxlbWVudCkgew0KICAgICAgICBsZXQgaW50ZXJhY3Rpb24gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicG9wdXAtaW50ZXJhY3Rpb24iKTsNCiAgICAgICAgaW50ZXJhY3Rpb24uYXBwZW5kQ2hpbGQoZWxlbWVudCk7DQogICAgfQ0KfQ0KZnVuY3Rpb24gb3BlblBvcFVwKGRhdGFUeXBlLCBlbGVtZW50KSB7DQogICAgbGV0IGRhdGEgPSB7fTsNCiAgICBsZXQgaWQ7DQogICAgc3dpdGNoIChlbGVtZW50KSB7DQogICAgICAgIGNhc2UgdW5kZWZpbmVkOg0KICAgICAgICAgICAgc3dpdGNoIChkYXRhVHlwZSkgew0KICAgICAgICAgICAgICAgIGNhc2UgImdyb3VwLXRpdGxlIjoNCiAgICAgICAgICAgICAgICAgICAgaWYgKGlkID09IHVuZGVmaW5lZCkgew0KICAgICAgICAgICAgICAgICAgICAgICAgaWQgPSAtMTsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBkYXRhID0gZ2V0TG9jYWxEYXRhKCJmaWx0ZXIiLCBpZCk7DQogICAgICAgICAgICAgICAgICAgIGRhdGFbInR5cGUiXSA9ICJncm91cC10aXRsZSI7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgImN1c3RvbS1maWx0ZXIiOg0KICAgICAgICAgICAgICAgICAgICBpZiAoaWQgPT0gdW5kZWZpbmVkKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBpZCA9IC0xOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIGRhdGEgPSBnZXRMb2NhbERhdGEoImZpbHRlciIsIGlkKTsNCiAgICAgICAgICAgICAgICAgICAgZGF0YVsidHlwZSJdID0gImN1c3RvbS1maWx0ZXIiOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBkZWZhdWx0Og0KICAgICAgICAgICAgICAgICAgICBkYXRhWyJpZC5wcm92aWRlciJdID0gIi0iOw0KICAgICAgICAgICAgICAgICAgICBkYXRhWyJ0eXBlIl0gPSBkYXRhVHlwZTsNCiAgICAgICAgICAgICAgICAgICAgaWQgPSAiLSI7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICBpZCA9IGVsZW1lbnQuaWQ7DQogICAgICAgICAgICBkYXRhID0gZ2V0TG9jYWxEYXRhKGRhdGFUeXBlLCBpZCk7DQogICAgICAgICAgICBicmVhazsNCiAgICB9DQogICAgbGV0IGNvbnRlbnQgPSBuZXcgUG9wdXBDb250ZW50KCk7DQogICAgc3dpdGNoIChkYXRhVHlwZSkgew0KICAgICAgICBjYXNlICJwbGF5bGlzdCI6DQogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUhlYWRsaW5lKCJ7ey5wbGF5bGlzdC5wbGF5bGlzdFR5cGUudGl0bGV9fSIpOw0KICAgICAgICAgICAgLy8gVHlwZQ0KICAgICAgICAgICAgdmFyIHRleHQgPSBbIk0zVSIsICJIREhvbWVSdW4iXTsNCiAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBbImphdmFzY3JpcHQ6IG9wZW5Qb3BVcCgnbTN1JykiLCAiamF2YXNjcmlwdDogb3BlblBvcFVwKCdoZGhyJykiXTsNCiAgICAgICAgICAgIHZhciBzZWxlY3QgPSBjb250ZW50LmNyZWF0ZVNlbGVjdCh0ZXh0LCB2YWx1ZXMsICIiLCAidHlwZSIpOw0KICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgiaWQiLCAidHlwZSIpOw0KICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAnamF2YXNjcmlwdDogY2hhbmdlQnV0dG9uQWN0aW9uKHRoaXMsICJuZXh0IiwgIm9uY2xpY2siKScpOyAvLyBjaGFuZ2VCdXR0b25BY3Rpb24NCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5wbGF5bGlzdC50eXBlLnRpdGxlfX0iLCBzZWxlY3QpOw0KICAgICAgICAgICAgLy8gSW50ZXJha3Rpb24NCiAgICAgICAgICAgIGNvbnRlbnQuY3JlYXRlSW50ZXJhY3Rpb24oKTsNCiAgICAgICAgICAgIC8vIEFiYnJlY2hlbg0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImNhbmNlbCIsICJ7ey5idXR0b24uY2FuY2VsfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBzaG93RWxlbWVudCgicG9wdXAiLCBmYWxzZSk7Jyk7DQogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIC8vIFdlaXRlcg0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgIm5leHQiLCAie3suYnV0dG9uLm5leHR9fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgibTN1IiknKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgiaWQiLCAnbmV4dCcpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSAibTN1IjoNCiAgICAgICAgICAgIGNvbnRlbnQuY3JlYXRlSGVhZGxpbmUoZGF0YVR5cGUpOw0KICAgICAgICAgICAgLy8gTmFtZQ0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gIm5hbWUiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnBsYXlsaXN0Lm5hbWUucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnBsYXlsaXN0Lm5hbWUudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIEJlc2NocmVpYnVuZw0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gImRlc2NyaXB0aW9uIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5wbGF5bGlzdC5kZXNjcmlwdGlvbi5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sucGxheWxpc3QuZGVzY3JpcHRpb24udGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIFVSTA0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gImZpbGUuc291cmNlIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5wbGF5bGlzdC5maWxlTTNVLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5wbGF5bGlzdC5maWxlTTNVLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBUdW5lcg0KICAgICAgICAgICAgaWYgKFNFUlZFUlsic2V0dGluZ3MiXVsiYnVmZmVyIl0gIT0gIi0iKSB7DQogICAgICAgICAgICAgICAgdmFyIHRleHQgPSBbXTsNCiAgICAgICAgICAgICAgICB2YXIgdmFsdWVzID0gW107DQogICAgICAgICAgICAgICAgZm9yICh2YXIgaSA9IDE7IGkgPD0gMTAwOyBpKyspIHsNCiAgICAgICAgICAgICAgICAgICAgdGV4dC5wdXNoKGkudG9TdHJpbmcoKSk7DQogICAgICAgICAgICAgICAgICAgIHZhbHVlcy5wdXNoKGkudG9TdHJpbmcoKSk7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIHZhciBkYktleSA9ICJ0dW5lciI7DQogICAgICAgICAgICAgICAgdmFyIHNlbGVjdCA9IGNvbnRlbnQuY3JlYXRlU2VsZWN0KHRleHQsIHZhbHVlcywgZGF0YVtkYktleV0sIGRiS2V5KTsNCiAgICAgICAgICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJvbmZvY3VzIiwgImphdmFzY3JpcHQ6IHJldHVybjsiKTsNCiAgICAgICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sucGxheWxpc3QudHVuZXIudGl0bGV9fSIsIHNlbGVjdCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICB2YXIgZGJLZXkgPSAidHVuZXIiOw0KICAgICAgICAgICAgICAgIGlmIChkYXRhW2RiS2V5XSA9PSB1bmRlZmluZWQpIHsNCiAgICAgICAgICAgICAgICAgICAgZGF0YVtkYktleV0gPSAxOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInJlYWRvbmx5IiwgInRydWUiKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5jbGFzc05hbWUgPSAibm90QXZhaWxhYmxlIjsNCiAgICAgICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sucGxheWxpc3QudHVuZXIudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGNvbnRlbnQuZGVzY3JpcHRpb24oInt7LnBsYXlsaXN0LnR1bmVyLmRlc2NyaXB0aW9ufX0iKTsNCiAgICAgICAgICAgIC8vIEludGVyYWt0aW9uDQogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUludGVyYWN0aW9uKCk7DQogICAgICAgICAgICAvLyBMw7ZzY2hlbg0KICAgICAgICAgICAgaWYgKGRhdGFbImlkLnByb3ZpZGVyIl0gIT0gIi0iKSB7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImRlbGV0ZSIsICJ7ey5idXR0b24uZGVsZXRlfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5jbGFzc05hbWUgPSAiZGVsZXRlIjsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogc2F2ZVBvcHVwRGF0YSgibTN1IiwgIicgKyBpZCArICciLCB0cnVlLCAwKScpOw0KICAgICAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgZWxzZSB7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImJhY2siLCAie3suYnV0dG9uLmJhY2t9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoInBsYXlsaXN0IiknKTsNCiAgICAgICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIC8vIEFiYnJlY2hlbg0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImNhbmNlbCIsICJ7ey5idXR0b24uY2FuY2VsfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBzaG93RWxlbWVudCgicG9wdXAiLCBmYWxzZSk7Jyk7DQogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIC8vIEFrdHVhbGlzaWVyZW4NCiAgICAgICAgICAgIGlmIChkYXRhWyJpZC5wcm92aWRlciJdICE9ICItIikgew0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJ1cGRhdGUiLCAie3suYnV0dG9uLnVwZGF0ZX19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoIm0zdSIsICInICsgaWQgKyAnIiwgZmFsc2UsIDEpJyk7DQogICAgICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICAvLyBTcGVpY2hlcm4NCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJzYXZlIiwgInt7LmJ1dHRvbi5zYXZlfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBzYXZlUG9wdXBEYXRhKCJtM3UiLCAiJyArIGlkICsgJyIsIGZhbHNlLCAwKScpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSAiaGRociI6DQogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUhlYWRsaW5lKGRhdGFUeXBlKTsNCiAgICAgICAgICAgIC8vIE5hbWUNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJuYW1lIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5wbGF5bGlzdC5uYW1lLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5wbGF5bGlzdC5uYW1lLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBCZXNjaHJlaWJ1bmcNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJkZXNjcmlwdGlvbiI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3sucGxheWxpc3QuZGVzY3JpcHRpb24ucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnBsYXlsaXN0LmRlc2NyaXB0aW9uLnBsYWNlaG9sZGVyfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBVUkwNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJmaWxlLnNvdXJjZSI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3sucGxheWxpc3QuZmlsZUhESFIucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnBsYXlsaXN0LmZpbGVIREhSLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBUdW5lcg0KICAgICAgICAgICAgaWYgKFNFUlZFUlsic2V0dGluZ3MiXVsiYnVmZmVyIl0gIT0gIi0iKSB7DQogICAgICAgICAgICAgICAgdmFyIHRleHQgPSBbXTsNCiAgICAgICAgICAgICAgICB2YXIgdmFsdWVzID0gW107DQogICAgICAgICAgICAgICAgZm9yICh2YXIgaSA9IDE7IGkgPD0gMTAwOyBpKyspIHsNCiAgICAgICAgICAgICAgICAgICAgdGV4dC5wdXNoKGkudG9TdHJpbmcoKSk7DQogICAgICAgICAgICAgICAgICAgIHZhbHVlcy5wdXNoKGkudG9TdHJpbmcoKSk7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIHZhciBkYktleSA9ICJ0dW5lciI7DQogICAgICAgICAgICAgICAgdmFyIHNlbGVjdCA9IGNvbnRlbnQuY3JlYXRlU2VsZWN0KHRleHQsIHZhbHVlcywgZGF0YVtkYktleV0sIGRiS2V5KTsNCiAgICAgICAgICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJvbmZvY3VzIiwgImphdmFzY3JpcHQ6IHJldHVybjsiKTsNCiAgICAgICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sucGxheWxpc3QudHVuZXIudGl0bGV9fSIsIHNlbGVjdCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICB2YXIgZGJLZXkgPSAidHVuZXIiOw0KICAgICAgICAgICAgICAgIGlmIChkYXRhW2RiS2V5XSA9PSB1bmRlZmluZWQpIHsNCiAgICAgICAgICAgICAgICAgICAgZGF0YVtkYktleV0gPSAxOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInJlYWRvbmx5IiwgInRydWUiKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5jbGFzc05hbWUgPSAibm90QXZhaWxhYmxlIjsNCiAgICAgICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sucGxheWxpc3QudHVuZXIudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGNvbnRlbnQuZGVzY3JpcHRpb24oInt7LnBsYXlsaXN0LnR1bmVyLmRlc2NyaXB0aW9ufX0iKTsNCiAgICAgICAgICAgIC8vIEludGVyYWt0aW9uDQogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUludGVyYWN0aW9uKCk7DQogICAgICAgICAgICAvLyBMw7ZzY2hlbg0KICAgICAgICAgICAgaWYgKGRhdGFbImlkLnByb3ZpZGVyIl0gIT0gIi0iKSB7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImRlbGV0ZSIsICJ7ey5idXR0b24uZGVsZXRlfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogc2F2ZVBvcHVwRGF0YSgiaGRociIsICInICsgaWQgKyAnIiwgdHJ1ZSwgMCknKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5jbGFzc05hbWUgPSAiZGVsZXRlIjsNCiAgICAgICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJiYWNrIiwgInt7LmJ1dHRvbi5iYWNrfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJwbGF5bGlzdCIpJyk7DQogICAgICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICAvLyBBYmJyZWNoZW4NCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJjYW5jZWwiLCAie3suYnV0dG9uLmNhbmNlbH19Iik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogc2hvd0VsZW1lbnQoInBvcHVwIiwgZmFsc2UpOycpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICAvLyBBa3R1YWxpc2llcmVuDQogICAgICAgICAgICBpZiAoZGF0YVsiaWQucHJvdmlkZXIiXSAhPSAiLSIpIHsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAidXBkYXRlIiwgInt7LmJ1dHRvbi51cGRhdGV9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBzYXZlUG9wdXBEYXRhKCJoZGhyIiwgIicgKyBpZCArICciLCBmYWxzZSwgMSknKTsNCiAgICAgICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIC8vIFNwZWljaGVybg0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgInNhdmUiLCAie3suYnV0dG9uLnNhdmV9fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoImhkaHIiLCAiJyArIGlkICsgJyIsIGZhbHNlLCAwKScpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSAiZmlsdGVyIjoNCiAgICAgICAgICAgIGNvbnRlbnQuY3JlYXRlSGVhZGxpbmUoZGF0YVR5cGUpOw0KICAgICAgICAgICAgLy8gVHlwZQ0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gInR5cGUiOw0KICAgICAgICAgICAgdmFyIHRleHQgPSBbIk0zVTogIiArICJ7ey5maWx0ZXIudHlwZS5ncm91cFRpdGxlfX0iLCAieFRlVmU6ICIgKyAie3suZmlsdGVyLnR5cGUuY3VzdG9tRmlsdGVyfX0iXTsNCiAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBbImphdmFzY3JpcHQ6IG9wZW5Qb3BVcCgnZ3JvdXAtdGl0bGUnKSIsICJqYXZhc2NyaXB0OiBvcGVuUG9wVXAoJ2N1c3RvbS1maWx0ZXInKSJdOw0KICAgICAgICAgICAgdmFyIHNlbGVjdCA9IGNvbnRlbnQuY3JlYXRlU2VsZWN0KHRleHQsIHZhbHVlcywgImphdmFzY3JpcHQ6IG9wZW5Qb3BVcCgnZ3JvdXAtdGl0bGUnKSIsIGRiS2V5KTsNCiAgICAgICAgICAgIHNlbGVjdC5zZXRBdHRyaWJ1dGUoImlkIiwgaWQpOw0KICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAnamF2YXNjcmlwdDogY2hhbmdlQnV0dG9uQWN0aW9uKHRoaXMsICJuZXh0IiwgIm9uY2xpY2siKTsnKTsgLy8gY2hhbmdlQnV0dG9uQWN0aW9uDQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3suZmlsdGVyLnR5cGUudGl0bGV9fSIsIHNlbGVjdCk7DQogICAgICAgICAgICAvLyBJbnRlcmFrdGlvbg0KICAgICAgICAgICAgY29udGVudC5jcmVhdGVJbnRlcmFjdGlvbigpOw0KICAgICAgICAgICAgLy8gQWJicmVjaGVuDQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAiY2FuY2VsIiwgInt7LmJ1dHRvbi5jYW5jZWx9fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IHNob3dFbGVtZW50KCJwb3B1cCIsIGZhbHNlKTsnKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgLy8gV2VpdGVyDQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAibmV4dCIsICJ7ey5idXR0b24ubmV4dH19Iik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJncm91cC10aXRsZSIpJyk7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoImlkIiwgJ25leHQnKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGNhc2UgImN1c3RvbS1maWx0ZXIiOg0KICAgICAgICBjYXNlICJncm91cC10aXRsZSI6DQogICAgICAgICAgICBzd2l0Y2ggKGRhdGFUeXBlKSB7DQogICAgICAgICAgICAgICAgY2FzZSAiY3VzdG9tLWZpbHRlciI6DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuY3JlYXRlSGVhZGxpbmUoInt7LmZpbHRlci5jdXN0b219fSIgKyAiIEZpbHRlciIpOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBjYXNlICJncm91cC10aXRsZSI6DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuY3JlYXRlSGVhZGxpbmUoInt7LmZpbHRlci5ncm91cH19IiArICIgRmlsdGVyIik7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgLy8gTmFtZSAgICAgIA0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gIm5hbWUiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LmZpbHRlci5uYW1lLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5maWx0ZXIubmFtZS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgLy8gQmVzY2hyZWlidW5nDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAiZGVzY3JpcHRpb24iOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LmZpbHRlci5kZXNjcmlwdGlvbi5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3suZmlsdGVyLmRlc2NyaXB0aW9uLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBUeXANCiAgICAgICAgICAgIHZhciBkYktleSA9ICJ0eXBlIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImhpZGRlbiIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygiIiwgaW5wdXQpOw0KICAgICAgICAgICAgdmFyIGZpbHRlclR5cGUgPSBkYXRhW2RiS2V5XTsNCiAgICAgICAgICAgIHN3aXRjaCAoZmlsdGVyVHlwZSkgew0KICAgICAgICAgICAgICAgIGNhc2UgImN1c3RvbS1maWx0ZXIiOg0KICAgICAgICAgICAgICAgICAgICAvLyBHcm/Dny0gS2xlaW5zY2hyZWlidW5nIGJlYWNodGVuDQogICAgICAgICAgICAgICAgICAgIHZhciBkYktleSA9ICJjYXNlU2Vuc2l0aXZlIjsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChkYktleSk7DQogICAgICAgICAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhW2RiS2V5XTsNCiAgICAgICAgICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LmZpbHRlci5jYXNlU2Vuc2l0aXZlLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAgICAgICAgIC8vIEZpbHRlcnJlZ2VsIChCZW51dHplcmRlZmluaWVydCkNCiAgICAgICAgICAgICAgICAgICAgdmFyIGRiS2V5ID0gImZpbHRlciI7DQogICAgICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LmZpbHRlci5maWx0ZXJSdWxlLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LmZpbHRlci5maWx0ZXJSdWxlLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgImdyb3VwLXRpdGxlIjoNCiAgICAgICAgICAgICAgICAgICAgLy9hbGVydChkYktleSArICIgIiArIGZpbHRlclR5cGUpDQogICAgICAgICAgICAgICAgICAgIC8vIEZpbHRlciBiYXNpZXJlbmQgYXVmIGRlbiBHcnVwcGVuIGluIGRlciBNM1UNCiAgICAgICAgICAgICAgICAgICAgdmFyIGRiS2V5ID0gImZpbHRlciI7DQogICAgICAgICAgICAgICAgICAgIHZhciBncm91cHNNM1UgPSBnZXRMb2NhbERhdGEoIm0zdUdyb3VwcyIsICIiKTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHRleHQgPSBncm91cHNNM1VbInRleHQiXTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHZhbHVlcyA9IGdyb3Vwc00zVVsidmFsdWUiXTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHNlbGVjdCA9IGNvbnRlbnQuY3JlYXRlU2VsZWN0KHRleHQsIHZhbHVlcywgZGF0YVtkYktleV0sIGRiS2V5KTsNCiAgICAgICAgICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LmZpbHRlci5maWx0ZXJHcm91cC50aXRsZX19Iiwgc2VsZWN0KTsNCiAgICAgICAgICAgICAgICAgICAgY29udGVudC5kZXNjcmlwdGlvbigie3suZmlsdGVyLmZpbHRlckdyb3VwLmRlc2NyaXB0aW9ufX0iKTsNCiAgICAgICAgICAgICAgICAgICAgLy8gR3Jvw58tIEtsZWluc2NocmVpYnVuZyBiZWFjaHRlbg0KICAgICAgICAgICAgICAgICAgICB2YXIgZGJLZXkgPSAiY2FzZVNlbnNpdGl2ZSI7DQogICAgICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goZGJLZXkpOw0KICAgICAgICAgICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YVtkYktleV07DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5maWx0ZXIuY2FzZVNlbnNpdGl2ZS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgICAgICAgICB2YXIgZGJLZXkgPSAiaW5jbHVkZSI7DQogICAgICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LmZpbHRlci5pbmNsdWRlLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LmZpbHRlci5pbmNsdWRlLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuZGVzY3JpcHRpb24oInt7LmZpbHRlci5pbmNsdWRlLmRlc2NyaXB0aW9ufX0iKTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGRiS2V5ID0gImV4Y2x1ZGUiOw0KICAgICAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5maWx0ZXIuZXhjbHVkZS5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5maWx0ZXIuZXhjbHVkZS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgICAgICAgICBjb250ZW50LmRlc2NyaXB0aW9uKCJ7ey5maWx0ZXIuZXhjbHVkZS5kZXNjcmlwdGlvbn19Iik7DQogICAgICAgICAgICAgICAgICAgIC8vIFByZXNlcnZlIE0zVSBQbGF5bGlzdCBDaGFubmVsIE1hcHBpbmcNCiAgICAgICAgICAgICAgICAgICAgdmFyIGRiS2V5ID0gInByZXNlcnZlTWFwcGluZyI7DQogICAgICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goZGJLZXkpOw0KICAgICAgICAgICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YVtkYktleV07DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5maWx0ZXIucHJlc2VydmVNYXBwaW5nLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAgICAgICAgIC8vIFN0YXJ0aW5nIENoYW5uZWwgTnVtYmVyIE1hcHBpbmcNCiAgICAgICAgICAgICAgICAgICAgdmFyIGRiS2V5ID0gInN0YXJ0aW5nQ2hhbm5lbCI7DQogICAgICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LmZpbHRlci5zdGFydGluZ0NoYW5uZWwucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3suZmlsdGVyLnN0YXJ0aW5nQ2hhbm5lbC50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgICAgICAgICAvLyBGaWxsIE1pc3NpbmcgRVBHIERhdGENCiAgICAgICAgICAgICAgICAgICAgLy8gVGhlIGZvbGxvd2luZyBjb2RlIG9ubHkgd29ya3Mgd2hlbiB4VGVWZSBEdW1teSBhbHJlYWR5IGV4aXN0cw0KICAgICAgICAgICAgICAgICAgICAvLyB2YXIgZGJLZXk6c3RyaW5nID0gImRlZmF1bHRNaXNzaW5nRVBHIg0KICAgICAgICAgICAgICAgICAgICAvLyB2YXIgeG1sdHY6WE1MVFZGaWxlID0gbmV3IFhNTFRWRmlsZSgpDQogICAgICAgICAgICAgICAgICAgIC8vIHZhciBzZWxlY3QgPSB4bWx0di5nZXRQcm9ncmFtcygieFRlVmUgRHVtbXkiLCBkYXRhW2RiS2V5XSkNCiAgICAgICAgICAgICAgICAgICAgLy8gc2VsZWN0LnNldEF0dHJpYnV0ZSgibmFtZSIsIGRiS2V5KQ0KICAgICAgICAgICAgICAgICAgICAvLyBzZWxlY3Quc2V0QXR0cmlidXRlKCJpZCIsICJwb3B1cC1taXNzaW5nLWVwZyIpDQogICAgICAgICAgICAgICAgICAgIC8vIFRoZSB3b3JrYXJvdW5kIGlzIGN1cnJlbnRseSB0byBoYXJkIGNvZGUgdGhlIHhUZVZlIER1bW15IGRhdGENCiAgICAgICAgICAgICAgICAgICAgdmFyIGRiS2V5ID0gImRlZmF1bHRNaXNzaW5nRVBHIjsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGxpc3RPcHRpb25zID0geyAidGV4dCI6IFsiLSIsICIzMCBNaW51dGVzICgzMF9NaW51dGVzKSIsICI2MCBNaW51dGVzICg2MF9NaW51dGVzKSIsICI5MCBNaW51dGVzICg5MF9NaW51dGVzKSIsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgIjEyMCBNaW51dGVzICgxMjBfTWludXRlcykiLCAiMTgwIE1pbnV0ZXMgKDMwX01pbnV0ZXMpIiwgIjI0MCBNaW51dGVzICgzMF9NaW51dGVzKSIsICIzNjAgTWludXRlcyAoMzBfTWludXRlcykiXSwNCiAgICAgICAgICAgICAgICAgICAgICAgICJ2YWx1ZSI6IFsiLSIsICIzMF9NaW51dGVzIiwgIjYwX01pbnV0ZXMiLCAiOTBfTWludXRlcyIsICIxMjBfTWludXRlcyIsICIxODBfTWludXRlcyIsICIyNDBfTWludXRlcyIsICIzNjBfTWludXRlcyIsXSB9Ow0KICAgICAgICAgICAgICAgICAgICB2YXIgdGV4dCA9IGxpc3RPcHRpb25zWyJ0ZXh0Il07DQogICAgICAgICAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBsaXN0T3B0aW9uc1sidmFsdWUiXTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHNlbGVjdCA9IGNvbnRlbnQuY3JlYXRlU2VsZWN0KHRleHQsIHZhbHVlcywgZGF0YVtkYktleV0sIGRiS2V5KTsNCiAgICAgICAgICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LmZpbHRlci5kZWZhdWx0TWlzc2luZ0VQRy50aXRsZX19Iiwgc2VsZWN0KTsNCiAgICAgICAgICAgICAgICAgICAgY29udGVudC5kZXNjcmlwdGlvbigie3suZmlsdGVyLmRlZmF1bHRNaXNzaW5nRVBHLmRlc2NyaXB0aW9ufX0iKTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICB9DQogICAgICAgICAgICAvLyBJbnRlcmFrdGlvbg0KICAgICAgICAgICAgY29udGVudC5jcmVhdGVJbnRlcmFjdGlvbigpOw0KICAgICAgICAgICAgLy8gTMO2c2NoZW4NCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJkZWxldGUiLCAie3suYnV0dG9uLmRlbGV0ZX19Iik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogc2F2ZVBvcHVwRGF0YSgiZmlsdGVyIiwgIicgKyBpZCArICciLCB0cnVlLCAwKScpOw0KICAgICAgICAgICAgaW5wdXQuY2xhc3NOYW1lID0gImRlbGV0ZSI7DQogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIC8vIEFiYnJlY2hlbg0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImNhbmNlbCIsICJ7ey5idXR0b24uY2FuY2VsfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBzaG93RWxlbWVudCgicG9wdXAiLCBmYWxzZSk7Jyk7DQogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIC8vIFNwZWljaGVybg0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgInNhdmUiLCAie3suYnV0dG9uLnNhdmV9fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoImZpbHRlciIsICInICsgaWQgKyAnIiwgZmFsc2UsIDApJyk7DQogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJ4bWx0diI6DQogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUhlYWRsaW5lKGRhdGFUeXBlKTsNCiAgICAgICAgICAgIC8vIE5hbWUNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJuYW1lIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey54bWx0di5uYW1lLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey54bWx0di5uYW1lLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBCZXNjaHJlaWJ1bmcNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJkZXNjcmlwdGlvbiI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3sueG1sdHYuZGVzY3JpcHRpb24ucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnhtbHR2LmRlc2NyaXB0aW9uLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBVUkwNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJmaWxlLnNvdXJjZSI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3sueG1sdHYuZmlsZVhNTFRWLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey54bWx0di5maWxlWE1MVFYudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIEludGVyYWt0aW9uDQogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUludGVyYWN0aW9uKCk7DQogICAgICAgICAgICAvLyBMw7ZzY2hlbg0KICAgICAgICAgICAgaWYgKGRhdGFbImlkLnByb3ZpZGVyIl0gIT0gIi0iKSB7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImRlbGV0ZSIsICJ7ey5idXR0b24uZGVsZXRlfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogc2F2ZVBvcHVwRGF0YSgieG1sdHYiLCAiJyArIGlkICsgJyIsIHRydWUsIDApJyk7DQogICAgICAgICAgICAgICAgaW5wdXQuY2xhc3NOYW1lID0gImRlbGV0ZSI7DQogICAgICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICAvLyBBYmJyZWNoZW4NCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJjYW5jZWwiLCAie3suYnV0dG9uLmNhbmNlbH19Iik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogc2hvd0VsZW1lbnQoInBvcHVwIiwgZmFsc2UpOycpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICAvLyBBa3R1YWxpc2llcmVuDQogICAgICAgICAgICBpZiAoZGF0YVsiaWQucHJvdmlkZXIiXSAhPSAiLSIpIHsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAidXBkYXRlIiwgInt7LmJ1dHRvbi51cGRhdGV9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBzYXZlUG9wdXBEYXRhKCJ4bWx0diIsICInICsgaWQgKyAnIiwgZmFsc2UsIDEpJyk7DQogICAgICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICAvLyBTcGVpY2hlcm4NCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJzYXZlIiwgInt7LmJ1dHRvbi5zYXZlfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBzYXZlUG9wdXBEYXRhKCJ4bWx0diIsICInICsgaWQgKyAnIiwgZmFsc2UsIDApJyk7DQogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJ1c2VycyI6DQogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUhlYWRsaW5lKCJ7ey5tYWluTWVudS5pdGVtLnVzZXJzfX0iKTsNCiAgICAgICAgICAgIC8vIEJlbnV0emVybmFtZSANCiAgICAgICAgICAgIHZhciBkYktleSA9ICJ1c2VybmFtZSI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3sudXNlcnMudXNlcm5hbWUucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnVzZXJzLnVzZXJuYW1lLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBOZXVlcyBQYXNzd29ydCANCiAgICAgICAgICAgIHZhciBkYktleSA9ICJwYXNzd29yZCI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJwYXNzd29yZCIsIGRiS2V5LCAiIik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnVzZXJzLnBhc3N3b3JkLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey51c2Vycy5wYXNzd29yZC50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgLy8gQmVzdMOkdGlndW5nIA0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gImNvbmZpcm0iOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgicGFzc3dvcmQiLCBkYktleSwgIiIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey51c2Vycy5jb25maXJtLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey51c2Vycy5jb25maXJtLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBCZXJlY2h0aWd1bmcgV0VCDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAiYXV0aGVudGljYXRpb24ud2ViIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goZGJLZXkpOw0KICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGFbZGJLZXldOw0KICAgICAgICAgICAgaWYgKGRhdGFbImRlZmF1bHRVc2VyIl0gPT0gdHJ1ZSkgew0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICJqYXZhc2NyaXB0OiByZXR1cm4gZmFsc2UiKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey51c2Vycy53ZWIudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIEJlcmVjaHRpZ3VuZyBQTVMNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJhdXRoZW50aWNhdGlvbi5wbXMiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChkYktleSk7DQogICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YVtkYktleV07DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sudXNlcnMucG1zLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBCZXJlY2h0aWd1bmcgTTNVDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAiYXV0aGVudGljYXRpb24ubTN1IjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goZGJLZXkpOw0KICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGFbZGJLZXldOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnVzZXJzLm0zdS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgLy8gQmVyZWNodGlndW5nIFhNTA0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gImF1dGhlbnRpY2F0aW9uLnhtbCI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KGRiS2V5KTsNCiAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhW2RiS2V5XTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey51c2Vycy54bWwudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIEJlcmVjaHRpZ3VuZyBBUEkNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJhdXRoZW50aWNhdGlvbi5hcGkiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChkYktleSk7DQogICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YVtkYktleV07DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sudXNlcnMuYXBpLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBJbnRlcmFrdGlvbg0KICAgICAgICAgICAgY29udGVudC5jcmVhdGVJbnRlcmFjdGlvbigpOw0KICAgICAgICAgICAgLy8gTMO2c2NoZW4NCiAgICAgICAgICAgIGlmIChkYXRhWyJkZWZhdWx0VXNlciJdICE9IHRydWUgJiYgaWQgIT0gIi0iKSB7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImRlbGV0ZSIsICJ7ey5idXR0b24uZGVsZXRlfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5jbGFzc05hbWUgPSAiZGVsZXRlIjsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogc2F2ZVBvcHVwRGF0YSgiJyArIGRhdGFUeXBlICsgJyIsICInICsgaWQgKyAnIiwgdHJ1ZSwgMCknKTsNCiAgICAgICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIC8vIEFiYnJlY2hlbg0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImNhbmNlbCIsICJ7ey5idXR0b24uY2FuY2VsfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBzaG93RWxlbWVudCgicG9wdXAiLCBmYWxzZSk7Jyk7DQogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIC8vIFNwZWljaGVybg0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgInNhdmUiLCAie3suYnV0dG9uLnNhdmV9fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoIicgKyBkYXRhVHlwZSArICciLCAiJyArIGlkICsgJyIsICJmYWxzZSIpOycpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSAibWFwcGluZyI6DQogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUhlYWRsaW5lKCJ7ey5tYWluTWVudS5pdGVtLm1hcHBpbmd9fSIpOw0KICAgICAgICAgICAgLy8gQWt0aXYgDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAieC1hY3RpdmUiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChkYktleSk7DQogICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YVtkYktleV07DQogICAgICAgICAgICBpbnB1dC5pZCA9ICJhY3RpdmUiOw0KICAgICAgICAgICAgLy9pbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIikNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdG9nZ2xlQ2hhbm5lbFN0YXR1cygnIiArIGlkICsgIicsIHRoaXMpIik7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3subWFwcGluZy5hY3RpdmUudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIEthbmFsbmFtZSANCiAgICAgICAgICAgIHZhciBkYktleSA9ICJ4LW5hbWUiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICBpZiAoQlVMS19FRElUID09IHRydWUpIHsNCiAgICAgICAgICAgICAgICBpbnB1dC5zdHlsZS5ib3JkZXIgPSAic29saWQgMXB4IHJlZCI7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJyZWFkb25seSIsICJ0cnVlIik7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3subWFwcGluZy5jaGFubmVsTmFtZS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgY29udGVudC5kZXNjcmlwdGlvbihkYXRhWyJuYW1lIl0pOw0KICAgICAgICAgICAgLy8gQmVzY2hyZWlidW5nIA0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gIngtZGVzY3JpcHRpb24iOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7Lm1hcHBpbmcuZGVzY3JpcHRpb24ucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7Lm1hcHBpbmcuZGVzY3JpcHRpb24udGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIEFrdHVhbGlzaWVydW5nIGRlcyBLYW5hbG5hbWVucw0KICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoIl91dWlkLmtleSIpKSB7DQogICAgICAgICAgICAgICAgaWYgKGRhdGFbIl91dWlkLmtleSJdICE9ICIiKSB7DQogICAgICAgICAgICAgICAgICAgIHZhciBkYktleSA9ICJ4LXVwZGF0ZS1jaGFubmVsLW5hbWUiOw0KICAgICAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KGRiS2V5KTsNCiAgICAgICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YVtkYktleV07DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5tYXBwaW5nLnVwZGF0ZUNoYW5uZWxOYW1lLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgLy8gTG9nbyBVUkwgKEthbmFsKSANCiAgICAgICAgICAgIHZhciBkYktleSA9ICJ0dmctbG9nbyI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgiaWQiLCAiY2hhbm5lbC1pY29uIik7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3subWFwcGluZy5jaGFubmVsTG9nby50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgLy8gQWt0dWFsaXNpZXJ1bmcgZGVzIEthbmFsbG9nb3MNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJ4LXVwZGF0ZS1jaGFubmVsLWljb24iOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChkYktleSk7DQogICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YVtkYktleV07DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoImlkIiwgInVwZGF0ZS1pY29uIik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnOyBjaGFuZ2VDaGFubmVsTG9nbygnIiArIGlkICsgIicpOyIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7Lm1hcHBpbmcudXBkYXRlQ2hhbm5lbExvZ28udGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIEVyd2VpdGVybiBkZXIgRVBHIEthdGVnb3JpZQ0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gIngtY2F0ZWdvcnkiOw0KICAgICAgICAgICAgdmFyIHRleHQgPSBbIi0iLCAiS2lkcyAoRW1ieSBvbmx5KSIsICJOZXdzIiwgIk1vdmllIiwgIlNlcmllcyIsICJTcG9ydHMiXTsNCiAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBbIiIsICJLaWRzIiwgIk5ld3MiLCAiTW92aWUiLCAiU2VyaWVzIiwgIlNwb3J0cyJdOw0KICAgICAgICAgICAgdmFyIHNlbGVjdCA9IGNvbnRlbnQuY3JlYXRlU2VsZWN0KHRleHQsIHZhbHVlcywgZGF0YVtkYktleV0sIGRiS2V5KTsNCiAgICAgICAgICAgIHNlbGVjdC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3subWFwcGluZy5lcGdDYXRlZ29yeS50aXRsZX19Iiwgc2VsZWN0KTsNCiAgICAgICAgICAgIC8vIE0zVSBHcnVwcGVudGl0ZWwNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJ4LWdyb3VwLXRpdGxlIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7Lm1hcHBpbmcubTN1R3JvdXBUaXRsZS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgaWYgKGRhdGFbImdyb3VwLXRpdGxlIl0gIT0gdW5kZWZpbmVkKSB7DQogICAgICAgICAgICAgICAgY29udGVudC5kZXNjcmlwdGlvbihkYXRhWyJncm91cC10aXRsZSJdKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIC8vIFhNTFRWIERhdGVpDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAieC14bWx0di1maWxlIjsNCiAgICAgICAgICAgIHZhciB4bWxGaWxlID0gZGF0YVtkYktleV07DQogICAgICAgICAgICB2YXIgeG1sdHYgPSBuZXcgWE1MVFZGaWxlKCk7DQogICAgICAgICAgICB2YXIgc2VsZWN0ID0geG1sdHYuZ2V0RmlsZXMoZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgibmFtZSIsIGRiS2V5KTsNCiAgICAgICAgICAgIHNlbGVjdC5zZXRBdHRyaWJ1dGUoImlkIiwgInBvcHVwLXhtbHR2Iik7DQogICAgICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJzsgc2V0WG1sdHZDaGFubmVsKCciICsgaWQgKyAiJyx0aGlzKTsiKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5tYXBwaW5nLnhtbHR2RmlsZS50aXRsZX19Iiwgc2VsZWN0KTsNCiAgICAgICAgICAgIHZhciBmaWxlID0gZGF0YVtkYktleV07DQogICAgICAgICAgICAvLyBYTUxUViBNYXBwaW5nDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAieC1tYXBwaW5nIjsNCiAgICAgICAgICAgIHZhciB4bWx0diA9IG5ldyBYTUxUVkZpbGUoKTsNCiAgICAgICAgICAgIHZhciBzZWxlY3QgPSB4bWx0di5nZXRQcm9ncmFtcyhmaWxlLCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJuYW1lIiwgZGJLZXkpOw0KICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgiaWQiLCAicG9wdXAtbWFwcGluZyIpOw0KICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCc7IGNoZWNrWG1sdHZDaGFubmVsKCciICsgaWQgKyAiJyx0aGlzLCciICsgeG1sRmlsZSArICInKTsiKTsNCiAgICAgICAgICAgIHNvcnRTZWxlY3Qoc2VsZWN0KTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5tYXBwaW5nLnhtbHR2Q2hhbm5lbC50aXRsZX19Iiwgc2VsZWN0KTsNCiAgICAgICAgICAgIC8vIFRpbWVzaGlmdA0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gIngtdGltZXNoaWZ0IjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5tYXBwaW5nLnRpbWVzaGlmdC5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoImlkIiwgInRpbWVzaGlmdCIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7Lm1hcHBpbmcudGltZXNoaWZ0LnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBJbnRlcmFrdGlvbg0KICAgICAgICAgICAgY29udGVudC5jcmVhdGVJbnRlcmFjdGlvbigpOw0KICAgICAgICAgICAgLy8gTG9nbyBob2NobGFkZW4NCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJjYW5jZWwiLCAie3suYnV0dG9uLnVwbG9hZExvZ299fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IHVwbG9hZExvZ28oKTsnKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgLy8gQWJicmVjaGVuDQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAiY2FuY2VsIiwgInt7LmJ1dHRvbi5jYW5jZWx9fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IHNob3dFbGVtZW50KCJwb3B1cCIsIGZhbHNlKTsnKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgLy8gRmVydGlnDQogICAgICAgICAgICB2YXIgaWRzID0gW107DQogICAgICAgICAgICBpZHMgPSBnZXRBbGxTZWxlY3RlZENoYW5uZWxzKCk7DQogICAgICAgICAgICBpZiAoaWRzLmxlbmd0aCA9PSAwKSB7DQogICAgICAgICAgICAgICAgaWRzLnB1c2goaWQpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgInNhdmUiLCAie3suYnV0dG9uLmRvbmV9fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IGRvbmVQb3B1cERhdGEoIicgKyBkYXRhVHlwZSArICciLCAiJyArIGlkcyArICciLCAiZmFsc2UiKTsnKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICBicmVhazsNCiAgICB9DQogICAgc2hvd1BvcFVwRWxlbWVudCgncG9wdXAtY3VzdG9tJyk7DQp9DQpjbGFzcyBYTUxUVkZpbGUgew0KICAgIGdldEZpbGVzKHNldCkgew0KICAgICAgICBsZXQgZmlsZUlEcyA9IGdldE9iaktleXMoU0VSVkVSWyJ4ZXBnIl1bInhtbHR2TWFwIl0pOw0KICAgICAgICBsZXQgdmFsdWVzID0gbmV3IEFycmF5KCItIik7DQogICAgICAgIGxldCB0ZXh0ID0gbmV3IEFycmF5KCItIik7DQogICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgZmlsZUlEcy5sZW5ndGg7IGkrKykgew0KICAgICAgICAgICAgaWYgKGZpbGVJRHNbaV0gIT0gInhUZVZlIER1bW15Iikgew0KICAgICAgICAgICAgICAgIHZhbHVlcy5wdXNoKGdldFZhbHVlRnJvbVByb3ZpZGVyRmlsZShmaWxlSURzW2ldLCAieG1sdHYiLCAiZmlsZS54dGV2ZSIpKTsNCiAgICAgICAgICAgICAgICB0ZXh0LnB1c2goZ2V0VmFsdWVGcm9tUHJvdmlkZXJGaWxlKGZpbGVJRHNbaV0sICJ4bWx0diIsICJuYW1lIikpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgZWxzZSB7DQogICAgICAgICAgICAgICAgdmFsdWVzLnB1c2goZmlsZUlEc1tpXSk7DQogICAgICAgICAgICAgICAgdGV4dC5wdXNoKGZpbGVJRHNbaV0pOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQogICAgICAgIGxldCBzZWxlY3QgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJTRUxFQ1QiKTsNCiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0ZXh0Lmxlbmd0aDsgaSsrKSB7DQogICAgICAgICAgICB2YXIgb3B0aW9uID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiT1BUSU9OIik7DQogICAgICAgICAgICBvcHRpb24uc2V0QXR0cmlidXRlKCJ2YWx1ZSIsIHZhbHVlc1tpXSk7DQogICAgICAgICAgICBvcHRpb24uaW5uZXJUZXh0ID0gdGV4dFtpXTsNCiAgICAgICAgICAgIHNlbGVjdC5hcHBlbmRDaGlsZChvcHRpb24pOw0KICAgICAgICB9DQogICAgICAgIGlmIChzZXQgIT0gIiIpIHsNCiAgICAgICAgICAgIHNlbGVjdC52YWx1ZSA9IHNldDsNCiAgICAgICAgfQ0KICAgICAgICByZXR1cm4gc2VsZWN0Ow0KICAgIH0NCiAgICBnZXRQcm9ncmFtcyhmaWxlLCBzZXQpIHsNCiAgICAgICAgLy92YXIgZmlsZUlEczpzdHJpbmdbXSA9IGdldE9iaktleXMoU0VSVkVSWyJ4ZXBnIl1bInhtbHR2TWFwIl0pDQogICAgICAgIGxldCB2YWx1ZXMgPSBnZXRPYmpLZXlzKFNFUlZFUlsieGVwZyJdWyJ4bWx0dk1hcCJdW2ZpbGVdKTsNCiAgICAgICAgbGV0IHRleHQgPSBbXTsNCiAgICAgICAgbGV0IGRpc3BsYXlOYW1lOw0KICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHZhbHVlcy5sZW5ndGg7IGkrKykgew0KICAgICAgICAgICAgaWYgKFNFUlZFUlsieGVwZyJdWyJ4bWx0dk1hcCJdW2ZpbGVdW3ZhbHVlc1tpXV0uaGFzT3duUHJvcGVydHkoJ2Rpc3BsYXktbmFtZScpID09IHRydWUpIHsNCiAgICAgICAgICAgICAgICBkaXNwbGF5TmFtZSA9IFNFUlZFUlsieGVwZyJdWyJ4bWx0dk1hcCJdW2ZpbGVdW3ZhbHVlc1tpXV1bImRpc3BsYXktbmFtZSJdOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgZWxzZSB7DQogICAgICAgICAgICAgICAgZGlzcGxheU5hbWUgPSAiLSI7DQogICAgICAgICAgICB9DQogICAgICAgICAgICB0ZXh0W2ldID0gZGlzcGxheU5hbWUgKyAiICgiICsgdmFsdWVzW2ldICsgIikiOw0KICAgICAgICB9DQogICAgICAgIHRleHQudW5zaGlmdCgiLSIpOw0KICAgICAgICB2YWx1ZXMudW5zaGlmdCgiLSIpOw0KICAgICAgICBsZXQgc2VsZWN0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiU0VMRUNUIik7DQogICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGV4dC5sZW5ndGg7IGkrKykgew0KICAgICAgICAgICAgdmFyIG9wdGlvbiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIk9QVElPTiIpOw0KICAgICAgICAgICAgb3B0aW9uLnNldEF0dHJpYnV0ZSgidmFsdWUiLCB2YWx1ZXNbaV0pOw0KICAgICAgICAgICAgb3B0aW9uLmlubmVyVGV4dCA9IHRleHRbaV07DQogICAgICAgICAgICBzZWxlY3QuYXBwZW5kQ2hpbGQob3B0aW9uKTsNCiAgICAgICAgfQ0KICAgICAgICBpZiAoc2V0ICE9ICIiKSB7DQogICAgICAgICAgICBzZWxlY3QudmFsdWUgPSBzZXQ7DQogICAgICAgIH0NCiAgICAgICAgaWYgKHNlbGVjdC52YWx1ZSAhPSBzZXQpIHsNCiAgICAgICAgICAgIHNlbGVjdC52YWx1ZSA9ICItIjsNCiAgICAgICAgfQ0KICAgICAgICByZXR1cm4gc2VsZWN0Ow0KICAgIH0NCn0NCmZ1bmN0aW9uIGdldFZhbHVlRnJvbVByb3ZpZGVyRmlsZShmaWxlLCBmaWxlVHlwZSwga2V5KSB7DQogICAgaWYgKGZpbGUgPT0gInhUZVZlIER1bW15Iikgew0KICAgICAgICByZXR1cm4gZmlsZTsNCiAgICB9DQogICAgbGV0IGZpbGVJRDsNCiAgICBsZXQgaW5kaWNhdG9yID0gZmlsZS5jaGFyQXQoMCk7DQogICAgc3dpdGNoIChpbmRpY2F0b3IpIHsNCiAgICAgICAgY2FzZSAiTSI6DQogICAgICAgICAgICBmaWxlVHlwZSA9ICJtM3UiOw0KICAgICAgICAgICAgZmlsZUlEID0gZmlsZTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJIIjoNCiAgICAgICAgICAgIGZpbGVUeXBlID0gImhkaHIiOw0KICAgICAgICAgICAgZmlsZUlEID0gZmlsZTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJYIjoNCiAgICAgICAgICAgIGZpbGVUeXBlID0gInhtbHR2IjsNCiAgICAgICAgICAgIGZpbGVJRCA9IGZpbGUuc3Vic3RyaW5nKDAsIGZpbGUubGFzdEluZGV4T2YoJy4nKSk7DQogICAgICAgICAgICBicmVhazsNCiAgICB9DQogICAgaWYgKFNFUlZFUlsic2V0dGluZ3MiXVsiZmlsZXMiXVtmaWxlVHlwZV0uaGFzT3duUHJvcGVydHkoZmlsZUlEKSA9PSB0cnVlKSB7DQogICAgICAgIHZhciBkYXRhID0gU0VSVkVSWyJzZXR0aW5ncyJdWyJmaWxlcyJdW2ZpbGVUeXBlXVtmaWxlSURdOw0KICAgICAgICByZXR1cm4gZGF0YVtrZXldOw0KICAgIH0NCiAgICByZXR1cm47DQp9DQpmdW5jdGlvbiBzZXRYbWx0dkNoYW5uZWwoaWQsIGVsZW1lbnQpIHsNCiAgICBsZXQgeG1sdHYgPSBuZXcgWE1MVFZGaWxlKCk7DQogICAgbGV0IHhtbEZpbGUgPSBlbGVtZW50LnZhbHVlOw0KICAgIGxldCB0dmdJZCA9IFNFUlZFUlsieGVwZyJdWyJlcGdNYXBwaW5nIl1baWRdWyJ0dmctaWQiXTsNCiAgICBsZXQgdGQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicG9wdXAtbWFwcGluZyIpLnBhcmVudEVsZW1lbnQ7DQogICAgdGQuaW5uZXJIVE1MID0gIiI7DQogICAgbGV0IHNlbGVjdCA9IHhtbHR2LmdldFByb2dyYW1zKGVsZW1lbnQudmFsdWUsIHR2Z0lkKTsNCiAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJuYW1lIiwgIngtbWFwcGluZyIpOw0KICAgIHNlbGVjdC5zZXRBdHRyaWJ1dGUoImlkIiwgInBvcHVwLW1hcHBpbmciKTsNCiAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJzsgY2hlY2tYbWx0dkNoYW5uZWwoJyIgKyBpZCArICInLHRoaXMsJyIgKyB4bWxGaWxlICsgIicpOyIpOw0KICAgIHNlbGVjdC5jbGFzc05hbWUgPSAiY2hhbmdlZCI7DQogICAgc29ydFNlbGVjdChzZWxlY3QpOw0KICAgIHRkLmFwcGVuZENoaWxkKHNlbGVjdCk7DQogICAgY2hlY2tYbWx0dkNoYW5uZWwoaWQsIHNlbGVjdCwgeG1sRmlsZSk7DQp9DQpmdW5jdGlvbiBjaGVja1htbHR2Q2hhbm5lbChpZCwgZWxlbWVudCwgeG1sRmlsZSkgew0KICAgIGxldCB2YWx1ZSA9IGVsZW1lbnQudmFsdWU7DQogICAgbGV0IGJvb2w7DQogICAgbGV0IGNoZWNrYm94ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2FjdGl2ZScpOw0KICAgIGxldCBjaGFubmVsID0gU0VSVkVSWyJ4ZXBnIl1bImVwZ01hcHBpbmciXVtpZF07DQogICAgbGV0IHVwZGF0ZUxvZ287DQogICAgYm9vbCA9IHZhbHVlICE9ICItIjsNCiAgICBjaGVja2JveC5jaGVja2VkID0gYm9vbDsNCiAgICBjaGVja2JveC5jbGFzc05hbWUgPSAiY2hhbmdlZCI7DQogICAgY29uc29sZS5sb2coeG1sRmlsZSk7DQogICAgLy8gS2FuYWxsb2dvIGFrdHVhbGlzaWVyZW4NCiAgICAvKg0KICAgIHVwZGF0ZUxvZ28gPSAoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInVwZGF0ZS1pY29uIikgYXMgSFRNTElucHV0RWxlbWVudCkuY2hlY2tlZA0KICAgIGNvbnNvbGUubG9nKHVwZGF0ZUxvZ28pOw0KICAgICovDQogICAgaWYgKHhtbEZpbGUgIT0gInhUZVZlIER1bW15IiAmJiBib29sID09IHRydWUpIHsNCiAgICAgICAgLy8oZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInVwZGF0ZS1pY29uIikgYXMgSFRNTElucHV0RWxlbWVudCkuY2hlY2tlZCA9IHRydWU7DQogICAgICAgIC8vKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ1cGRhdGUtaWNvbiIpIGFzIEhUTUxJbnB1dEVsZW1lbnQpLmNsYXNzTmFtZSA9ICJjaGFuZ2VkIjsNCiAgICAgICAgY29uc29sZS5sb2coIklEIiwgaWQpOw0KICAgICAgICBjaGFuZ2VDaGFubmVsTG9nbyhpZCk7DQogICAgICAgIHJldHVybjsNCiAgICB9DQogICAgaWYgKHhtbEZpbGUgPT0gInhUZVZlIER1bW15Iikgew0KICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidXBkYXRlLWljb24iKS5jaGVja2VkID0gZmFsc2U7DQogICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ1cGRhdGUtaWNvbiIpLmNsYXNzTmFtZSA9ICJjaGFuZ2VkIjsNCiAgICB9DQogICAgcmV0dXJuOw0KfQ0KZnVuY3Rpb24gY2hhbmdlQ2hhbm5lbExvZ28oaWQpIHsNCiAgICBsZXQgdXBkYXRlTG9nbzsNCiAgICBsZXQgY2hhbm5lbCA9IFNFUlZFUlsieGVwZyJdWyJlcGdNYXBwaW5nIl1baWRdOw0KICAgIGxldCBmID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInBvcHVwLXhtbHR2Iik7DQogICAgbGV0IHhtbHR2RmlsZSA9IGYub3B0aW9uc1tmLnNlbGVjdGVkSW5kZXhdLnZhbHVlOw0KICAgIGxldCBtID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInBvcHVwLW1hcHBpbmciKTsNCiAgICBsZXQgeE1hcHBpbmcgPSBtLm9wdGlvbnNbbS5zZWxlY3RlZEluZGV4XS52YWx1ZTsNCiAgICBsZXQgeG1sdHZMb2dvID0gU0VSVkVSWyJ4ZXBnIl1bInhtbHR2TWFwIl1beG1sdHZGaWxlXVt4TWFwcGluZ11bImljb24iXTsNCiAgICB1cGRhdGVMb2dvID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInVwZGF0ZS1pY29uIikuY2hlY2tlZDsNCiAgICBpZiAodXBkYXRlTG9nbyA9PSB0cnVlICYmIHhtbHR2RmlsZSAhPSAieFRlVmUgRHVtbXkiKSB7DQogICAgICAgIGlmIChTRVJWRVJbInhlcGciXVsieG1sdHZNYXAiXVt4bWx0dkZpbGVdLmhhc093blByb3BlcnR5KHhNYXBwaW5nKSkgew0KICAgICAgICAgICAgdmFyIGxvZ28gPSB4bWx0dkxvZ287DQogICAgICAgIH0NCiAgICAgICAgZWxzZSB7DQogICAgICAgICAgICBsb2dvID0gY2hhbm5lbFsidHZnLWxvZ28iXTsNCiAgICAgICAgfQ0KICAgICAgICB2YXIgbG9nb0lucHV0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNoYW5uZWwtaWNvbiIpOw0KICAgICAgICBsb2dvSW5wdXQudmFsdWUgPSBsb2dvOw0KICAgICAgICBpZiAoQlVMS19FRElUID09IGZhbHNlKSB7DQogICAgICAgICAgICBsb2dvSW5wdXQuY2xhc3NOYW1lID0gImNoYW5nZWQiOw0KICAgICAgICB9DQogICAgfQ0KfQ0KZnVuY3Rpb24gc2F2ZVBvcHVwRGF0YShkYXRhVHlwZSwgaWQsIHJlbW92ZSwgb3B0aW9uKSB7DQogICAgaWYgKGRhdGFUeXBlID09ICJtYXBwaW5nIikgew0KICAgICAgICBsZXQgZGF0YSA9IHt9Ow0KICAgICAgICBjb25zb2xlLmxvZygiU2F2ZSBtYXBwaW5nIGRhdGEiKTsNCiAgICAgICAgbGV0IGNtZCA9ICJzYXZlRXBnTWFwcGluZyI7DQogICAgICAgIGRhdGFbImVwZ01hcHBpbmciXSA9IFNFUlZFUlsieGVwZyJdWyJlcGdNYXBwaW5nIl07DQogICAgICAgIGNvbnNvbGUubG9nKCJTRU5EIFRPIFNFUlZFUiIpOw0KICAgICAgICBsZXQgc2VydmVyID0gbmV3IFNlcnZlcihjbWQpOw0KICAgICAgICBzZXJ2ZXIucmVxdWVzdChkYXRhKTsNCiAgICAgICAgZGVsZXRlIFVORE9bImVwZ01hcHBpbmciXTsNCiAgICAgICAgcmV0dXJuOw0KICAgIH0NCiAgICBjb25zb2xlLmxvZygiU2F2ZSBwb3B1cCBkYXRhIik7DQogICAgbGV0IGRpdiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJwb3B1cC1jdXN0b20iKTsNCiAgICBsZXQgaW5wdXRzID0gZGl2LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJUQUJMRSIpWzBdLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJJTlBVVCIpOw0KICAgIGxldCBzZWxlY3RzID0gZGl2LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJUQUJMRSIpWzBdLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJTRUxFQ1QiKTsNCiAgICBsZXQgaW5wdXQgPSB7fTsNCiAgICBsZXQgY29uZmlybU1zZzsNCiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHNlbGVjdHMubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgdmFyIG5hbWU7DQogICAgICAgIG5hbWUgPSBzZWxlY3RzW2ldLm5hbWU7DQogICAgICAgIHZhciB2YWx1ZSA9IHNlbGVjdHNbaV0udmFsdWU7DQogICAgICAgIHN3aXRjaCAobmFtZSkgew0KICAgICAgICAgICAgY2FzZSAidHVuZXIiOg0KICAgICAgICAgICAgICAgIGlucHV0W25hbWVdID0gcGFyc2VJbnQodmFsdWUpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgICAgICBpbnB1dFtuYW1lXSA9IHZhbHVlOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICB9DQogICAgfQ0KICAgIGZvciAobGV0IGkgPSAwOyBpIDwgaW5wdXRzLmxlbmd0aDsgaSsrKSB7DQogICAgICAgIHN3aXRjaCAoaW5wdXRzW2ldLnR5cGUpIHsNCiAgICAgICAgICAgIGNhc2UgImNoZWNrYm94IjoNCiAgICAgICAgICAgICAgICBuYW1lID0gaW5wdXRzW2ldLm5hbWU7DQogICAgICAgICAgICAgICAgaW5wdXRbbmFtZV0gPSBpbnB1dHNbaV0uY2hlY2tlZDsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInRleHQiOg0KICAgICAgICAgICAgY2FzZSAiaGlkZGVuIjoNCiAgICAgICAgICAgIGNhc2UgInBhc3N3b3JkIjoNCiAgICAgICAgICAgICAgICBuYW1lID0gaW5wdXRzW2ldLm5hbWU7DQogICAgICAgICAgICAgICAgc3dpdGNoIChuYW1lKSB7DQogICAgICAgICAgICAgICAgICAgIGNhc2UgInR1bmVyIjoNCiAgICAgICAgICAgICAgICAgICAgICAgIGlucHV0W25hbWVdID0gcGFyc2VJbnQoaW5wdXRzW2ldLnZhbHVlKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgICAgICBkZWZhdWx0Og0KICAgICAgICAgICAgICAgICAgICAgICAgaW5wdXRbbmFtZV0gPSBpbnB1dHNbaV0udmFsdWU7DQogICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIH0NCiAgICB9DQogICAgbGV0IGRhdGEgPSB7fTsNCiAgICBsZXQgY21kOw0KICAgIGlmIChyZW1vdmUgPT0gdHJ1ZSkgew0KICAgICAgICBpbnB1dFsiZGVsZXRlIl0gPSB0cnVlOw0KICAgIH0NCiAgICBzd2l0Y2ggKGRhdGFUeXBlKSB7DQogICAgICAgIGNhc2UgInVzZXJzIjoNCiAgICAgICAgICAgIGNvbmZpcm1Nc2cgPSAiRGVsZXRlIHRoaXMgdXNlcj8iOw0KICAgICAgICAgICAgaWYgKGlkID09ICItIikgew0KICAgICAgICAgICAgICAgIGNtZCA9ICJzYXZlTmV3VXNlciI7DQogICAgICAgICAgICAgICAgZGF0YVsidXNlckRhdGEiXSA9IGlucHV0Ow0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgZWxzZSB7DQogICAgICAgICAgICAgICAgY21kID0gInNhdmVVc2VyRGF0YSI7DQogICAgICAgICAgICAgICAgbGV0IGQgPSB7fTsNCiAgICAgICAgICAgICAgICBkW2lkXSA9IGlucHV0Ow0KICAgICAgICAgICAgICAgIGRhdGFbInVzZXJEYXRhIl0gPSBkOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGNhc2UgIm0zdSI6DQogICAgICAgICAgICBjb25maXJtTXNnID0gIkRlbGV0ZSB0aGlzIHBsYXlsaXN0PyI7DQogICAgICAgICAgICBzd2l0Y2ggKG9wdGlvbikgew0KICAgICAgICAgICAgICAgIC8vIFBvcHVwOiBTYXZlDQogICAgICAgICAgICAgICAgY2FzZSAwOg0KICAgICAgICAgICAgICAgICAgICBjbWQgPSAic2F2ZUZpbGVzTTNVIjsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgLy8gUG9wdXA6IFVwZGF0ZQ0KICAgICAgICAgICAgICAgIGNhc2UgMToNCiAgICAgICAgICAgICAgICAgICAgY21kID0gInVwZGF0ZUZpbGVNM1UiOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGRhdGFbImZpbGVzIl0gPSB7fTsNCiAgICAgICAgICAgIGRhdGFbImZpbGVzIl1bZGF0YVR5cGVdID0ge307DQogICAgICAgICAgICBkYXRhWyJmaWxlcyJdW2RhdGFUeXBlXVtpZF0gPSBpbnB1dDsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJoZGhyIjoNCiAgICAgICAgICAgIGNvbmZpcm1Nc2cgPSAiRGVsZXRlIHRoaXMgSERIb21lUnVuIHR1bmVyPyI7DQogICAgICAgICAgICBzd2l0Y2ggKG9wdGlvbikgew0KICAgICAgICAgICAgICAgIC8vIFBvcHVwOiBTYXZlDQogICAgICAgICAgICAgICAgY2FzZSAwOg0KICAgICAgICAgICAgICAgICAgICBjbWQgPSAic2F2ZUZpbGVzSERIUiI7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIC8vIFBvcHVwOiBVcGRhdGUNCiAgICAgICAgICAgICAgICBjYXNlIDE6DQogICAgICAgICAgICAgICAgICAgIGNtZCA9ICJ1cGRhdGVGaWxlSERIUiI7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgZGF0YVsiZmlsZXMiXSA9IHt9Ow0KICAgICAgICAgICAgZGF0YVsiZmlsZXMiXVtkYXRhVHlwZV0gPSB7fTsNCiAgICAgICAgICAgIGRhdGFbImZpbGVzIl1bZGF0YVR5cGVdW2lkXSA9IGlucHV0Ow0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGNhc2UgInhtbHR2IjoNCiAgICAgICAgICAgIGNvbmZpcm1Nc2cgPSAiRGVsZXRlIHRoaXMgWE1MVFYgZmlsZT8iOw0KICAgICAgICAgICAgc3dpdGNoIChvcHRpb24pIHsNCiAgICAgICAgICAgICAgICAvLyBQb3B1cDogU2F2ZQ0KICAgICAgICAgICAgICAgIGNhc2UgMDoNCiAgICAgICAgICAgICAgICAgICAgY21kID0gInNhdmVGaWxlc1hNTFRWIjsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgLy8gUG9wdXA6IFVwZGF0ZQ0KICAgICAgICAgICAgICAgIGNhc2UgMToNCiAgICAgICAgICAgICAgICAgICAgY21kID0gInVwZGF0ZUZpbGVYTUxUViI7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgZGF0YVsiZmlsZXMiXSA9IHt9Ow0KICAgICAgICAgICAgZGF0YVsiZmlsZXMiXVtkYXRhVHlwZV0gPSB7fTsNCiAgICAgICAgICAgIGRhdGFbImZpbGVzIl1bZGF0YVR5cGVdW2lkXSA9IGlucHV0Ow0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGNhc2UgImZpbHRlciI6DQogICAgICAgICAgICBjb25maXJtTXNnID0gIkRlbGV0ZSB0aGlzIGZpbHRlcj8iOw0KICAgICAgICAgICAgY21kID0gInNhdmVGaWx0ZXIiOw0KICAgICAgICAgICAgZGF0YVsiZmlsdGVyIl0gPSB7fTsNCiAgICAgICAgICAgIGRhdGFbImZpbHRlciJdW2lkXSA9IGlucHV0Ow0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICBjb25zb2xlLmxvZyhkYXRhVHlwZSwgaWQpOw0KICAgICAgICAgICAgcmV0dXJuOw0KICAgIH0NCiAgICBpZiAocmVtb3ZlID09IHRydWUpIHsNCiAgICAgICAgaWYgKCFjb25maXJtKGNvbmZpcm1Nc2cpKSB7DQogICAgICAgICAgICBzaG93RWxlbWVudCgicG9wdXAiLCBmYWxzZSk7DQogICAgICAgICAgICByZXR1cm47DQogICAgICAgIH0NCiAgICB9DQogICAgY29uc29sZS5sb2coIlNFTkQgVE8gU0VSVkVSIik7DQogICAgY29uc29sZS5sb2coZGF0YSk7DQogICAgbGV0IHNlcnZlciA9IG5ldyBTZXJ2ZXIoY21kKTsNCiAgICBzZXJ2ZXIucmVxdWVzdChkYXRhKTsNCn0NCmZ1bmN0aW9uIGRvbmVQb3B1cERhdGEoZGF0YVR5cGUsIGlkc1N0cikgew0KICAgIGxldCBpZHMgPSBpZHNTdHIuc3BsaXQoJywnKTsNCiAgICBsZXQgZGl2ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInBvcHVwLWN1c3RvbSIpOw0KICAgIGxldCBpbnB1dHMgPSBkaXYuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSgiY2hhbmdlZCIpOw0KICAgIGlkcy5mb3JFYWNoKGlkID0+IHsNCiAgICAgICAgbGV0IGlucHV0Ow0KICAgICAgICBpbnB1dCA9IFNFUlZFUlsieGVwZyJdWyJlcGdNYXBwaW5nIl1baWRdOw0KICAgICAgICBjb25zb2xlLmxvZyhpbnB1dCk7DQogICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgaW5wdXRzLmxlbmd0aDsgaSsrKSB7DQogICAgICAgICAgICBsZXQgbmFtZTsNCiAgICAgICAgICAgIGxldCB2YWx1ZTsNCiAgICAgICAgICAgIHN3aXRjaCAoaW5wdXRzW2ldLnRhZ05hbWUpIHsNCiAgICAgICAgICAgICAgICBjYXNlICJJTlBVVCI6DQogICAgICAgICAgICAgICAgICAgIHN3aXRjaCAoaW5wdXRzW2ldLnR5cGUpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgImNoZWNrYm94IjoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lID0gaW5wdXRzW2ldLm5hbWU7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSBpbnB1dHNbaV0uY2hlY2tlZDsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnB1dFtuYW1lXSA9IHZhbHVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAidGV4dCI6DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZSA9IGlucHV0c1tpXS5uYW1lOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlID0gaW5wdXRzW2ldLnZhbHVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlucHV0W25hbWVdID0gdmFsdWU7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAiU0VMRUNUIjoNCiAgICAgICAgICAgICAgICAgICAgbmFtZSA9IGlucHV0c1tpXS5uYW1lOw0KICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IGlucHV0c1tpXS52YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgaW5wdXRbbmFtZV0gPSB2YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBzd2l0Y2ggKG5hbWUpIHsNCiAgICAgICAgICAgICAgICBjYXNlICJ0dmctbG9nbyI6DQogICAgICAgICAgICAgICAgICAgIC8vKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5jaGlsZE5vZGVzWzJdLmZpcnN0Q2hpbGQgYXMgSFRNTEVsZW1lbnQpLnNldEF0dHJpYnV0ZSgic3JjIiwgdmFsdWUpDQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgIngtbmFtZSI6DQogICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5jaGlsZE5vZGVzWzNdLmZpcnN0Q2hpbGQuaW5uZXJIVE1MID0gdmFsdWU7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgIngtY2F0ZWdvcnkiOg0KICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkuY2hpbGROb2Rlc1szXS5maXJzdENoaWxkLmNsYXNzTmFtZSA9IHZhbHVlOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBjYXNlICJ4LWdyb3VwLXRpdGxlIjoNCiAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpLmNoaWxkTm9kZXNbNV0uZmlyc3RDaGlsZC5pbm5lckhUTUwgPSB2YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAieC14bWx0di1maWxlIjoNCiAgICAgICAgICAgICAgICAgICAgaWYgKHZhbHVlICE9ICJ4VGVWZSBEdW1teSIgJiYgdmFsdWUgIT0gIi0iKSB7DQogICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IGdldFZhbHVlRnJvbVByb3ZpZGVyRmlsZSh2YWx1ZSwgInhtbHR2IiwgIm5hbWUiKTsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBpZiAodmFsdWUgPT0gIi0iKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBpbnB1dFsieC1hY3RpdmUiXSA9IGZhbHNlOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5jaGlsZE5vZGVzWzZdLmZpcnN0Q2hpbGQuaW5uZXJIVE1MID0gdmFsdWU7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgIngtbWFwcGluZyI6DQogICAgICAgICAgICAgICAgICAgIGlmICh2YWx1ZSA9PSAiLSIpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGlucHV0WyJ4LWFjdGl2ZSJdID0gZmFsc2U7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpLmNoaWxkTm9kZXNbN10uZmlyc3RDaGlsZC5pbm5lckhUTUwgPSB2YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGNyZWF0ZVNlYXJjaE9iaigpOw0KICAgICAgICAgICAgc2VhcmNoSW5NYXBwaW5nKCk7DQogICAgICAgIH0NCiAgICAgICAgaWYgKGlucHV0WyJ4LWFjdGl2ZSJdID09IGZhbHNlKSB7DQogICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkuY2xhc3NOYW1lID0gIm5vdEFjdGl2ZUVQRyI7DQogICAgICAgIH0NCiAgICAgICAgZWxzZSB7DQogICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkuY2xhc3NOYW1lID0gImFjdGl2ZUVQRyI7DQogICAgICAgIH0NCiAgICAgICAgY29uc29sZS5sb2coaW5wdXRbInR2Zy1sb2dvIl0pOw0KICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkuY2hpbGROb2Rlc1syXS5maXJzdENoaWxkLnNldEF0dHJpYnV0ZSgic3JjIiwgaW5wdXRbInR2Zy1sb2dvIl0pOw0KICAgIH0pOw0KICAgIHNob3dFbGVtZW50KCJwb3B1cCIsIGZhbHNlKTsNCiAgICByZXR1cm47DQp9DQpmdW5jdGlvbiBzaG93UHJldmlldyhlbGVtZW50KSB7DQogICAgbGV0IGRpdiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJteVN0cmVhbXNCb3giKTsNCiAgICBzd2l0Y2ggKGVsZW1lbnQpIHsNCiAgICAgICAgY2FzZSBmYWxzZToNCiAgICAgICAgICAgIGRpdi5jbGFzc05hbWUgPSAibm90VmlzaWJsZSI7DQogICAgICAgICAgICByZXR1cm47DQogICAgfQ0KICAgIGxldCBzdHJlYW1zID0gWyJhY3RpdmVTdHJlYW1zIiwgImluYWN0aXZlU3RyZWFtcyJdOw0KICAgIHN0cmVhbXMuZm9yRWFjaChwcmV2aWV3ID0+IHsNCiAgICAgICAgbGV0IHRhYmxlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQocHJldmlldyk7DQogICAgICAgIHRhYmxlLmlubmVySFRNTCA9ICIiOw0KICAgICAgICBsZXQgb2JqID0gU0VSVkVSWyJkYXRhIl1bIlN0cmVhbVByZXZpZXdVSSJdW3ByZXZpZXddOw0KICAgICAgICBvYmouZm9yRWFjaChjaGFubmVsID0+IHsNCiAgICAgICAgICAgIGxldCB0ciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlRSIik7DQogICAgICAgICAgICBsZXQgdGRLZXkgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgbGV0IHRkVmFsID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgIHRkS2V5LmNsYXNzTmFtZSA9ICJ0ZEtleSI7DQogICAgICAgICAgICB0ZFZhbC5jbGFzc05hbWUgPSAidGRWYWwiOw0KICAgICAgICAgICAgc3dpdGNoIChwcmV2aWV3KSB7DQogICAgICAgICAgICAgICAgY2FzZSAiYWN0aXZlU3RyZWFtcyI6DQogICAgICAgICAgICAgICAgICAgIHRkS2V5LmlubmVyVGV4dCA9ICJDaGFubmVsOiAoKykiOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBjYXNlICJpbmFjdGl2ZVN0cmVhbXMiOg0KICAgICAgICAgICAgICAgICAgICB0ZEtleS5pbm5lclRleHQgPSAiQ2hhbm5lbDogKC0pIjsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICB9DQogICAgICAgICAgICB0ZFZhbC5pbm5lclRleHQgPSBjaGFubmVsOw0KICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQodGRLZXkpOw0KICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQodGRWYWwpOw0KICAgICAgICAgICAgdGFibGUuYXBwZW5kQ2hpbGQodHIpOw0KICAgICAgICB9KTsNCiAgICB9KTsNCiAgICBzaG93RWxlbWVudCgibG9hZGluZyIsIGZhbHNlKTsNCiAgICBkaXYuY2xhc3NOYW1lID0gInZpc2libGUiOw0KICAgIHJldHVybjsNCn0NCg==" webUI["html/maintenance.html"] = "PCFkb2N0eXBlIGh0bWw+DQo8aHRtbD4NCiAgPGhlYWQ+DQogICAgPG1ldGEgY2hhcnNldD0idXRmLTgiPg0KICAgIDxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgsIGluaXRpYWwtc2NhbGU9MS4wIiAvPiANCiAgICA8dGl0bGU+eFRlVmU8L3RpdGxlPg0KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iY3NzL3NjcmVlbi5jc3MiIHR5cGU9InRleHQvY3NzIj4NCiAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9ImNzcy9iYXNlLmNzcyIgdHlwZT0idGV4dC9jc3MiPg0KICA8L2hlYWQ+DQoNCiAgICA8Ym9keT4NCiAgICAgICAgICANCiAgICAgIDxkaXYgaWQ9ImhlYWRlciIgY2xhc3M9ImltZ0NlbnRlciI+PC9kaXY+DQoNCiAgICAgIDxkaXYgaWQ9ImJveCI+DQoNCiAgICAgICAgPGRpdiBpZD0iaGVhZGxpbmUiPg0KICAgICAgICAgIDxoMSBpZD0iaGVhZC10ZXh0IiBjbGFzcz0iY2VudGVyIj5NYWludGVuYW5jZTwvaDE+ICAgICAgDQogICAgICAgIDwvZGl2PiAgDQoNCiAgICAgICAgPGRpdiBpZD0iY29udGVudCI+DQogICAgICAgICAgeFRlVmUgaXMgdXBkYXRpbmcgdGhlIGRhdGFiYXNlLCBwbGVhc2UgdHJ5IGFnYWluIGxhdGVyLg0KICAgICAgICA8L2Rpdj4NCg0KICAgICAgICA8ZGl2IGlkPSJib3gtZm9vdGVyIj48L2Rpdj4NCiAgICAgICAgDQogICAgICA8L2Rpdj4NCg0KICAgIDwvYm9keT4NCjwvaHRtbD4=" - webUI["html/video/stream-limit.ts"] = "R0AREABC8CUAAcEAAP8B/wAB/IAUSBIBBkZGbXBlZwlTZXJ2aWNlMDF3fEPK//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////9HQAAQAACwDQABwQAAAAHwACqxBLL//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////0dQABAAArASAAHBAADhAPAAG+EA8AAVvU1W////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////R0EAMAdQAAB7DH4AAAAB4AAAgMAKMQAJEKERAAfYYQAAAAEJ8AAAAAFnZAAorNlAeAIn5cBEAAADAAQAAAMAyDxgxlgAAAABaOvjyyLAAAABBgX//6rcRem95tlIt5Ys2CDZI+7veDI2NCAtIGNvcmUgMTUyIHIyODU0IGU5YTU5MDMgLSBILjI2NC9NUEVHLTQgQVZDIGNvZGVjIC0gQ29weWxlZnQgMjAwMy0yMDE3IC0gaHR0cDovL3dHAQARd3cudmlkZW9sYW4ub3JnL3gyNjQuaHRtbCAtIG9wdGlvbnM6IGNhYmFjPTEgcmVmPTMgZGVibG9jaz0xOjA6MCBhbmFseXNlPTB4MzoweDExMyBtZT1oZXggc3VibWU9NyBwc3k9MSBwc3lfcmQ9MS4wMDowLjAwIG1peGVkX3JlZj0xIG1lX3JhbmdlPTE2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ACqxBLL//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////0dQABEAArASAAHBAADhAPAAG+EA8AAVvU1W////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////RwEAGO10tGlFAwyE91Tzg8923ovJk1dv2xh1gVlYQFtWdZ6NSQ8vgHM7/tMfIZPsqgCU856rdBJJRMDaor/oWA7pkvSmC2aqaC5fd/mkWUPTuG8fRhGqOY1rKxLNSI3HtTQAcuVBxRM0NfMw0ky/JMJYZiCgXcNsxpxl+khr/9fKtO5Fg2VNBti92xcZimHUZDJMQTBOY6vSR9L1N2O/kJQCpdfuc9bkcUTMjH/es/lAySxvbiislkohqkpHAQAZVatwHI0t9eHCUfDyWUEtuCNyDwQFOVMtaYEQJrTrhQX0VduT86F0u0wN9ag0uPsrmX6Rid/x5S7KI1SkS+qP6cdmgSP57uiF4dG6IKsWNfGBLY09H/CFlrg73WINQkkp2diKkdEmtZetn8+ZAKzR5eXN5FebiKt6pIkNLuSofjosypEs2o6boKsfpmbtOV0idOeWDM9C8EIcn3aZwk1s2KBDvt1DlY+i2Cuvhk3XoKLT+pq/bOC5QkcBABolcOXneZXLoQw9W1PH1f/of92Ytjj8okrWijcQAKlE5l8XoTb9qrOiZnDOhqwcMlB9H9rorq041I89hChohYoSkJElcM8V+r8WYN5axD1BNyfwaHAOm4UN2/VEYOkNSfMjmx2S0WW/F2ha8Jj4fc4QgqcXr+TnnbwqLkLTValK4Qa1pcv7PIbDq6zCUfxe04guZ8xEhPQjp17/G6IB/6uq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wnibxQ/cXEblVnM47wbCN3iy4eHjYB5MoIICrSYmd8nt4V0toLs084KJlmnur5FbApYM4W79ff4oZkW88Cg8Fv8TnWhh1Hqc4UlhMbRKm2QxDgfBxar3U7BwNR6prrXXjqfR7ja3tPli+H7Jez/xcTg32QpHAQAdTa7pSSgBvmOqzz175NAFIhwE9p3d71F9jLvhaPv8q1iKopL0kizwzEWElnXWmNhfLkl/Au8KujnoKUaxVdTe+zAZm2dOkejnpNVtVj0Aw9wKcG3ZQ1iRZrUFRIoPKYlmR+oi0LrupuhYABtgPbdCbDtezGTr0nw9wVd/rZ6V+1wcoJ6+8VAVueIdwI3brqm6EoFHiI8L6lER+9SefB8fHo4NYgr/I8jSxaa/2PLX2K/DjrlY6bN8fEcBAB7DXsuh8DITF6CYWj2HTFvqfzlic3QHXnHtvsTFNpyVY1LY8y/fRK2mwALN6IB5W3OuyoKiA3K0lJdQUv2gYhHWvPTV218HYrD0rkbMxRH0SiEEkrHDeOt5T1HtWD13D2/QvMu535fsfZyeaFDjdCE9M0Xi8Lfc7Xj1ZNGend7Jo7/cEiczFkc1vB4z2JpFGZreV2EdquyEzC2STFJtfimyx8QlLngEuR1cxH+lWEcFX+mvBa/eqktIRwEAH6VazFLPNsnHZqsI66TVoArQuUUGFAzr8MT8GZ9V6qpZa5D0jA/4eGi6Kq0smUgRExnqIbSMLWqDf/Pk2YT3MpHTu9VE3Dn9blgB6KsVIkWnB98Y2n/6DrZDcF94Ndu0Ka4U/RZwdV5O5KcO+lU2ZiIOYTYZ6Ie0d+tApxYxJ+YmxaDoCyRNe6crw/yzR5SflT8ddi/E2BM+l+nwVDiKZ/714fmrBxFKWuqLiQNHV19o1cZ8Ubun+ZtHQAASAACwDQABwQAAAAHwACqxBLL//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////0dQABIAArASAAHBAADhAPAAG+EA8AAVvU1W////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////RwEAEH1s3BdtHdF1ln55B24wdACF/ggcRtPmB4IUB6cZJ+m32I4R48ZkdhAFBulgWcsv0wZwH0o1yi3i4qm3rJ98AUKdB9PsNyG9gURV0bTw4myAj6g5Dgodfv6w9bsbOxsGUWkvgAJ3rrR010BvZbIa6CMRCQRjxkCfRF77ansRJZT0JzhtYeSS/ZJob8Rr2jrng3W2rkmHtE+rdqlPiHxmwkRZvYGhBxwiJO2L6f+l/cABsfs09rA+A0pHAQAREZay3TBUIAfMWhApE+LaPgeyOYtaPFONA9aC0h4QrFkaLZfb86678MK+zLgqDBsDoj50eZHMVcczRjs4sYlv7RG8RIWKb5lB9Kn/8+CkxiiA11cHH1yzLX2SKCmhsak/+P/zYQ1EDvEj33bl9e3Jd62cTI+Qw99KrsWnUMN8hFNeXzoGHA3aec+Li4NFboF8sa6lCPR6Csxsvxw8DJaWCnER5Z0p+nKhXavF/eNHQ0DX47ohycc87UcBABKsYHCHXXe3vK1cFYDWO6rhwM6hxCdJ+/X+VB1akQejL6iBMdUPuadUqBnbprwJM0dWpSSn9uuZZeqe46iZOGIJUo69d8x+ZSvPcBH/dK1Y0LJnoWdgWH51SQg7eYqcwjQW3BOy7ZF02Hn1EhTuhsN7ms8zv3WIeEBDBq0T3Idl+Tmw9iJU9skVYiwygHG2+0XwrLa6y+uiQPwMzrnEr1kuf24XoAqrJTZQiVH3aQF4d94yDreWu2KPRwEAE2FsynHZaUcBXEFbeX0nSxZ7sRcRjJvc7RYOny6N8QFwKDVO7jpRWWYM55kuepBOyZ+7BFYeG+FU1kR+ZfmqyDNkD4D1IPwNh6u9JQxDymfN/aMcQC3WxdvCKquPsAut6dugpGkOFtIe+W3ayc4V/J978P+h1EDFMbFjxRPuXht0K2dBQZCJ0ybISUDqWzhPuep8CdxSU4MvMVfdXh7FLl/BqKJUTT+vM+Pz3XnqCQQmH5TjQ4CK55VHAQAUEtgfkBwIYgtwHkhjmtLw7HNTeJeMfTjATEKcyuKzItSeYxHBmGzQ/+G2otpPCOkVAXJ9mfx7LxrW4joZ0ttTRQJ/wqMUK1IN349LiJoo8y/+FwN4jPNDwIleJG697riqnmLOweFW8spHKLBfnHcyC1pG6EIxFpTqUQ0KHqXD/KXIHKioJNAOVwQ1Gfloxebo/Tdtd00dpHP3gcsAOnV75APCYOjVIlwm2X6ViDeZw6Btdb/Br/+yokcBABU3+eOESLlneGbR5SLiL8wPkoRaZ5X7xFlMTMvsv9yHk26bVdmsubSdbYS1Hy64n0+NnL7C1aLD7aJxOudMjVW5goZbfO2KxBQkCD4HFA284wbaB5vOL7mRilCn6YEs1kiwf22+fBLNUmXDb2p353wrD/ygTDhlki66USvUmd/ZAs9uzAddegEzy7Xn00YysWTu/hegYyZtWFC+X5dhLubWJ7n96y5wjrP7PAOXoQQtFUH9j/rBiP/7RwEAFnL/wYKYuj80mPGtimSbF/E9K7XwjwBz8yHZubmVMTCmwkZBM4h0FR1thnUGiSjqjJT6SfunWCZ/dZDQplrzS00UKcUP399SyM+nNG1br8Za0ZYwWch8nyLHYXSRuxdnrfUUespsOQo1cWSLGf0pV2HIcHoiAAEKwPU6irB5BSoFvB1qKVjgEk+QwAEYAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAABHAQA3pAD/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////AwAAAwAAAwAAAwAAAwAAAwBbwUdBABgAAAHgAACAwAoxAAmBIREAB/SBAAAAAQnwAAAAAUGaJGxDv/6plgAAAwAAAwAAAwAAAwAAAwAAAwAAAwAKCKB0AIhy1ftwLNISWucTFC7xeBcaIzP3oZjZo8uT9hqZVstWGnrPz+vjaA5FuCO+K2w7/o39LygDO7aL+0zSrN90LW7r133x8+f+PEKk8d7pd2fj4RYuMOXOYunzFzRX/4IvR1XsK5WJYwVkOca3yfo7DTvUBP9rgSiTRwEAGQD6CFK1PBC4qYCa+coLVnX+jgODNrau5YJXIekDI4+wUNV+5T5HE4e2t5EGAjn77+kC1Vghmvx8KqPnylVUvsaTofheggxHsPuxn1zQt6nA59UglrRUMn8b4pmrvfqTBSqU949+AcNAI6M/eAqz6r0RG5KNeBhx8R2f0x2kujwHU3pc3rlPb6ZrFM/2HiG97eEIezrvWFG7YAAAAwAAAwAE1KRo1VfbdZQ/tOpNGxFmTcQoFidyD2tHAQAapTTIErUKA2Rc9uIzGJu+oW0uNOxRyl6oJNUNJp5L9TIshNS1CmUKgdCaE3LkLwdE8iUkUnIGfWLiWpWmjzsINYC8dnDaSptB53yJkBu0SsR00oo1PZ0pl4ZzoXGSYQJTPaVCbj6FNqm5wcnUqKTB/rgHdPdnDj0K8asLABeo/n3XCXrDorI+LYSD1FBgmV9O7RZdjfL0NnXOQkiq/ZGirwVV0cUF1aHtZx1yHlAAZKuuu7TqB13CAUcBADuRAP///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////yj/IrOvAEoXDNGy+nrxWN0l8cmuqWYaUJpuM9XgAAADAAADAAKmR0EAPAcQAACJHH4AAAAB4AAAgMAKMQAJSOERAAkQoQAAAAEJ8AAAAAFBnkJ4hf8AAAMAAAMAAAMAAAMAAAMAAAMAAAMAC/BmhyuvLmkCgKTgACEXfOVvHRHdpBEEmTTz9pIZCa2FD0CXukzDCakOHekTpJQSdsfd7a/jjM1/5lBtKCAGQ6zOCSQ6DeKtyw+CugDuuglGipwmvQW+FIDjnZ6HRd0uaSOGy6VB3h9MI1o4nqaCqVwwIgubYZFHAQA9XgD////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////WcZrO6BEiqf8pCxYwlz2mkdUzY/ipM/TIHS4m5xQAAAMAAAMAAA5sVm90p14dlvWgBgY7XQ9KVOJKLtaMAN5KiffVQtNuzW5DfL+RewZpAAADAAADAAAQMUdBAB4AAAHgAACAgAUhAAkswQAAAAEJ8AAAAAEBnmF0Qr8AAAMAAAMAAAMAAAMAAAMAAAMAAAMAABJfBjP2+4+W7ZybyT130+Ma4WSqICfd/dS4YtjrLlmh5VBlfrtwJqdN1PBTYDkwGOOONqZQeFN6lLGJoDzvuh3kv1aDBLqug+JhvrSeu5ebnvcrtQzb2REwJL3h9mvtkr0WfDu4AAADAAADAAs32Y4C/6Ns79oCGj6oqLltY3T4I0/QRwEAP5wA//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////8BeoWLRnKQmVgO/RBoBfcK85AAAAMAAAMACFhHQQAwBxAAAJcsfgAAAAHgAACAwAoxAAllAREACUjhAAAAAQnwAAAAAQGeY2pCvwAAAwAAAwAAAwAAAwAAAwAAAwAAAwAAEmDKfLGXsvBBQPNYXlEd6WueJ4deApfcHESlG+7V6u0AiWQqJvNZYM+3Js3Lj9Ldc9yYIHqruVwfMtCYGlX3wMavI/DrhMuJw+RreIF8SKsJD8CMccAAAAMAAAMACrFZOBgEqaP/8EyWsAHV6CgcAgfyox/roEcBADGuAP//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////AAADAAADAHTBR0EAEgAAAeAAAIDACjEACfGhEQAJZQEAAAABCfAAAAABQZpoSahBaJlMCHf//qmWAAADAAADAAADAAADAAADAAADAAADAAALf8A2bry6lUyIAQGNFfVK2Cd7h4qDqmqpvmXfkfTwo2Ab79AHhajxJ4MPWIgAAA84xLRIx7I2CrWjWe96OvgkzgS9mtvhuxdzAgpuIOJI3DEY9mviDDZz8XSAAAADAAADAB7AZkj9AAHHGvk+Pzlku8UkWa5HAQAzogD//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////6HjAkbF/gsWuvw4QAAAAwAAAwAccUdBADQHEAAApTx+AAAAAeAAAIDACjEACblhEQAJgSEAAAABCfAAAAABQZ6GRREsL/8AAAMAAAMAAAMAAAMAAAMAAAMAAAMAAA3URJB/3lMHSmOd0GYZnfpoR80WdqxlyHzPX+V81VUMeXIGrRgq5agd+ACdjoGI036yQ/rmpGw0CmMBrKwpI+nwFo3SP0s1rI2yHBZaiPJjSUgw33rBkxXcq55kfLf2sAAAAwAAAwACBWolidWDnIeQAAADRwEANbEA//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////8AAAMADulHQQA2NAD///////////////////////////////////////////////////////////////////8AAAHgAACAgAUhAAmdQQAAAAEJ8AAAAAEBnqV0Qr8AAAMAAAMAAAMAAAMAAAMAAAMAAAMAABJXNihCnx11JUosH2hBE53O/YN+GPHqcnJiQBIf3maTAAj5iRt+7GYUKBAU9iCXTiouCjGYgAAAAwAAAwA9p4HQBg2cAAADAAADAADGgUdBADc4EAAAs0x+AP////////////////////////////////////////////////////////////////8AAAHgAACAwAoxAAnVgREACblhAAAAAQnwAAAAAQGep2pCvwAAAwAAAwAAAwAAAwAAAwAAAwAAAwAAAwBR6/L83y+ZevtMZ0FW4lp8qV7fVXQAhLAWlS6mDxvpaSUgChorvgTMXtxJEIAAAAMAAAMACqFCAAADAAADAAADAAz4R0EAOCsA////////////////////////////////////////////////////////AAAB4AAAgMAKMQALYiERAAnVgQAAAAEJ8AAAAAFBmqxJqEFsmUwId//+qZYAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAApQTq0hABLvkcWCYrAaRRPNDrECJGlF/11BYvG9+JJ9Y86nxnmQzPxtAAe1UgOsXAAADAAADAAADAAADAAADAAADAAADA/JHQQA5JhAAAMFcfgD/////////////////////////////////////////AAAB4AAAgMAKMQALKeERAAnxoQAAAAEJ8AAAAAFBnspFFSwv/wAAAwAAAwAAAwAAAwAAAwAAAwAAAwAADdRFmvrVE0KXDOGwWddlwYa1foib7tXZKmkua6R4APb4b8+tXwdSNNqgf2IVNwGTohgQAcMvp6SiQxpiQym4AAADAAADAANUNUAAAAMAAAMAAAMBN0dBADo8AP//////////////////////////////////////////////////////////////////////////////AAAB4AAAgIAFIQALDcEAAAABCfAAAAABAZ7pdEK/AAADAAADAAADAAADAAADAAADAAADAAADAFHTAfujIUaaLSuklb9y0/so9AEtQAqkAxOviALQZ5jNt/iOkABrCOZ4md0iUnFwAAADAAADAALwckAAAAMAAAMAAATcR0EAO0IQAADPbH4A//////////////////////////////////////////////////////////////////////////////8AAAHgAACAwAoxAAtGAREACynhAAAAAQnwAAAAAQGe62pCvwAAAwAAAwAAAwAAAwAAAwAAAwAAAwAAAwBR6/L83y+WryR9gmVKPGbIhJpkgAFgHCej3gB6rAHPgHHAAAADAAADAAAYIV0AAAMAAAMAAAMABnxHQQA8UQD//////////////////////////////////////////////////////////////////////////////////////////////////////////wAAAeAAAIDACjEAC9KhEQALRgEAAAABCfAAAAABQZrwSahBbJlMCG///qeEAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAAZ8UdBAD00EAAA3Xx+AP///////////////////////////////////////////////////////////wAAAeAAAIDACjEAC5phEQALYiEAAAABCfAAAAABQZ8ORRUsL/8AAAMAAAMAAAMAAAMAAAMAAAMAAAMAAA3URZr61RNClwzhI2ZXdRHYLZWc1yTgKRhTIXBNABHQKIIyYNyc+AaEn1jhATEAAAMAAAMAAAMAckkIAAADAAADAAADAEbBR0EAPkYA////////////////////////////////////////////////////////////////////////////////////////////AAAB4AAAgIAFIQALfkEAAAABCfAAAAABAZ8tdEK/AAADAAADAAADAAADAAADAAADAAADAAADAFHTAfujIUAYRtY0f/43cIs2OjxACR2hMR1QBGYX+34JGAAAAwAAAwAAAwKEJ6AAAAMAAAMAAAMA3oFHQQA/QhAAAOuMfgD//////////////////////////////////////////////////////////////////////////////wAAAeAAAIDACjEAC7aBEQALmmEAAAABCfAAAAABAZ8vakK/AAADAAADAAADAAADAAADAAADAAADAAADAFHr8vzfL5avJH2CZUo8ZsiEmmSAAWAcJ6PeAHqsAc+AccAAAAMAAAMAABghXQAAAwAAAwAAAwAGfEdBADBRAP//////////////////////////////////////////////////////////////////////////////////////////////////////////AAAB4AAAgMAKMQANQyERAAu2gQAAAAEJ8AAAAAFBmzRJqEFsmUwIZ//+nhAAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAGVAR0EAMTQQAAD5nH4A////////////////////////////////////////////////////////////AAAB4AAAgMAKMQANCuERAAvSoQAAAAEJ8AAAAAFBn1JFFSwv/wAAAwAAAwAAAwAAAwAAAwAAAwAAAwAADdRFmvrVE0KXDOEjZld1EdgtlZzXJOApGFMhcE0AEdAogjJg3Jz4BoSfWOEBMQAAAwAAAwAAAwBySQgAAAMAAAMAAAMARsFHQQAyRgD///////////////////////////////////////////////////////////////////////////////////////////8AAAHgAACAgAUhAAvuwQAAAAEJ8AAAAAEBn3F0Qr8AAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAUdMB+6MhQBhG1jR//jdwizY6PEAJHaExHVAEZhf7fgkYAAADAAADAAADAoQnoAAAAwAAAwAAAwDegEdBADNCEAABB6x+AP//////////////////////////////////////////////////////////////////////////////AAAB4AAAgMAKMQANJwERAA0K4QAAAAEJ8AAAAAEBn3NqQr8AAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAUevy/N8vlq8kfYJlSjxmyISaZIABYBwno94AeqwBz4BxwAAAAwAAAwAAGCFdAAADAAADAAADAAZ8R0EANFIA////////////////////////////////////////////////////////////////////////////////////////////////////////////AAAB4AAAgMAKMQANs6ERAA0nAQAAAAEJ8AAAAAFBm3hJqEFsmUwIV//+OEAAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAYtHQQA1NBAAARW8fgD///////////////////////////////////////////////////////////8AAAHgAACAwAoxAA17YREADUMhAAAAAQnwAAAAAUGflkUVLC//AAADAAADAAADAAADAAADAAADAAADAAAN1EWa+tUTQpcM4SNmV3UR2C2VnNck4CkYUyFwTQAR0CiCMmDcnPgGhJ9Y4QExAAADAAADAAADAHJJCAAAAwAAAwAAAwBGwEdBADZGAP///////////////////////////////////////////////////////////////////////////////////////////wAAAeAAAICABSEADV9BAAAAAQnwAAAAAQGftXRCvwAAAwAAAwAAAwAAAwAAAwAAAwAAAwAAAwBR0wH7oyFAGEbWNH/+N3CLNjo8QAkdoTEdUARmF/t+CRgAAAMAAAMAAAMChCegAAADAAADAAADAN6BR0EAN0IQAAEjzH4A//////////////////////////////////////////////////////////////////////////////8AAAHgAACAwAoxAA2XgREADXthAAAAAQnwAAAAAQGft2pCvwAAAwAAAwAAAwAAAwAAAwAAAwAAAwAAAwBR6/L83y+WryR9gmVKPGbIhJpkgAFgHCej3gB6rAHPgHHAAAADAAADAAAYIV0AAAMAAAMAAAMABn0=" + webUI["html/create-first-user.html"] = "PCFkb2N0eXBlIGh0bWw+DQo8aHRtbD4NCiAgPGhlYWQ+DQogICAgPG1ldGEgY2hhcnNldD0idXRmLTgiPg0KICAgIDxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgsIGluaXRpYWwtc2NhbGU9MS4wIiAvPiANCiAgICA8dGl0bGU+eFRlVmU8L3RpdGxlPg0KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iY3NzL3NjcmVlbi5jc3MiIHR5cGU9InRleHQvY3NzIj4NCiAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9ImNzcy9iYXNlLmNzcyIgdHlwZT0idGV4dC9jc3MiPg0KICAgIDxzY3JpcHQgbGFuZ3VhZ2U9ImphdmFzY3JpcHQiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJqcy9uZXR3b3JrX3RzLmpzIj48L3NjcmlwdD4NCiAgICA8c2NyaXB0IGxhbmd1YWdlPSJqYXZhc2NyaXB0IiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ianMvYXV0aGVudGljYXRpb25fdHMuanMiPjwvc2NyaXB0Pg0KICA8L2hlYWQ+DQoNCiAgICA8Ym9keT4NCiAgICAgICAgICANCiAgICAgIDxkaXYgaWQ9ImhlYWRlciIgY2xhc3M9ImltZ0NlbnRlciI+PC9kaXY+DQoNCiAgICAgIDxkaXYgaWQ9ImJveCI+DQoNCiAgICAgICAgPGRpdiBpZD0iaGVhZGxpbmUiPg0KICAgICAgICAgIDxoMSBpZD0iaGVhZC10ZXh0IiBjbGFzcz0iY2VudGVyIj57ey5hY2NvdW50LmhlYWRsaW5lfX08L2gxPg0KICAgICAgICA8L2Rpdj4NCg0KICAgICAgICA8cCBpZD0iZXJyIiBjbGFzcz0iZXJyb3JNc2cgY2VudGVyIj48L3A+DQoNCiAgICAgICAgPGRpdiBpZD0iY29udGVudCI+DQoNCiAgICAgICAgICAgIDxmb3JtIGlkPSJhdXRoZW50aWNhdGlvbiIgYWN0aW9uPSIiIG1ldGhvZD0icG9zdCI+DQoNCiAgICAgICAgICAgICAgPGg1Pnt7LmFjY291bnQudXNlcm5hbWUudGl0bGV9fTo8L2g1Pg0KICAgICAgICAgICAgICA8aW5wdXQgaWQ9InVzZXJuYW1lIiB0eXBlPSJ0ZXh0IiBuYW1lPSJ1c2VybmFtZSIgcGxhY2Vob2xkZXI9IlVzZXJuYW1lIiB2YWx1ZT0iIj4NCiAgICAgICAgICAgICAgPGg1Pnt7LmFjY291bnQucGFzc3dvcmQudGl0bGV9fTo8L2g1Pg0KICAgICAgICAgICAgICA8aW5wdXQgaWQ9InBhc3N3b3JkIiB0eXBlPSJwYXNzd29yZCIgbmFtZT0icGFzc3dvcmQiIHBsYWNlaG9sZGVyPSJQYXNzd29yZCIgdmFsdWU9IiI+DQogICAgICAgICAgICAgIDxoNT57ey5hY2NvdW50LmNvbmZpcm0udGl0bGV9fTo8L2g1Pg0KICAgICAgICAgICAgICA8aW5wdXQgaWQ9ImNvbmZpcm0iICB0eXBlPSJwYXNzd29yZCIgbmFtZT0iY29uZmlybSIgIHBsYWNlaG9sZGVyPSJDb25maXJtIiB2YWx1ZT0iIj4NCiAgICAgICAgICAgICAgDQogICAgICAgICAgICA8L2Zvcm0+DQoNCiAgICAgICAgPC9kaXY+DQogICAgICAgIA0KICAgICAgICA8ZGl2IGlkPSJib3gtZm9vdGVyIj4NCiAgICAgICAgICA8aW5wdXQgaWQ9InN1Ym1pdCIgY2xhc3M9IiIgdHlwZT0iYnV0dG9uIiB2YWx1ZT0ie3suYnV0dG9uLmNyYWV0ZUFjY291bnR9fSIgb25jbGljaz0iamF2YXNjcmlwdDogbG9naW4oKTsiPg0KICAgICAgICA8L2Rpdj4NCiAgICAgIA0KICAgICAgICANCiAgICAgIDwvZGl2Pg0KICAgIDwvYm9keT4NCjwvaHRtbD4=" + webUI["html/img/logout.png"] = "iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAAAXNSR0IArs4c6QAAAAlwSFlzAAAsSwAALEsBpT2WqQAABCRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IlhNUCBDb3JlIDUuNC4wIj4KICAgPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIgogICAgICAgICAgICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgICAgICAgICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyI+CiAgICAgICAgIDx0aWZmOlJlc29sdXRpb25Vbml0PjI8L3RpZmY6UmVzb2x1dGlvblVuaXQ+CiAgICAgICAgIDx0aWZmOkNvbXByZXNzaW9uPjU8L3RpZmY6Q29tcHJlc3Npb24+CiAgICAgICAgIDx0aWZmOlhSZXNvbHV0aW9uPjI4ODwvdGlmZjpYUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6T3JpZW50YXRpb24+MTwvdGlmZjpPcmllbnRhdGlvbj4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+Mjg4PC90aWZmOllSZXNvbHV0aW9uPgogICAgICAgICA8ZXhpZjpQaXhlbFhEaW1lbnNpb24+NTA8L2V4aWY6UGl4ZWxYRGltZW5zaW9uPgogICAgICAgICA8ZXhpZjpDb2xvclNwYWNlPjE8L2V4aWY6Q29sb3JTcGFjZT4KICAgICAgICAgPGV4aWY6UGl4ZWxZRGltZW5zaW9uPjUwPC9leGlmOlBpeGVsWURpbWVuc2lvbj4KICAgICAgICAgPGRjOnN1YmplY3Q+CiAgICAgICAgICAgIDxyZGY6QmFnLz4KICAgICAgICAgPC9kYzpzdWJqZWN0PgogICAgICAgICA8eG1wOk1vZGlmeURhdGU+MjAxOC0xMC0xM1QxMToxMDoxODwveG1wOk1vZGlmeURhdGU+CiAgICAgICAgIDx4bXA6Q3JlYXRvclRvb2w+UGl4ZWxtYXRvciAzLjM8L3htcDpDcmVhdG9yVG9vbD4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgIDwvcmRmOlJERj4KPC94OnhtcG1ldGE+Cg27QeEAAANQSURBVGgF7Zk9aBRBGIZzSRSN8YdoCpEkghCCqK1o4g9IsBCCNmIniCAiWAhqI8G02qiIoqCCWggSEcFKEFPYpVAU8QdFUyiKRpRokBjP55OdZDLZvZnZ7N3Ngh887M7sN/O9797t7c5eTc3/8D8DxWKxGS5Ai//oAEYgvB4OwleQaAtAlp8ERG+Bp6Jei/wYQfRy6NfE67vhG0FtA/TBqK7c2A/bCGJ3wpAhOq4ZphGUroEHcYoT+sIygsgmOAu/EwQndYdhBHV1sB8+Jym19Lf6/faVIRuBG+GRRajtcPWMoKwFbtgUOh6vvBGEzYFj8MNRpEtaZY2gaAe8cVHmmXOc/K3QXIZv/+SUFFgJ96AS8ZwiZ6Ab6iZVzGCPiRbCKRiDasQHip6EdD/PDKyFvfAJQgg5kVfB/VoieT0MQojxE1G9UG/7otWS0A7pPkrb7DM/Ppcp+mAAM/bFGEmL4RL8gVDjI8JWOZ0bEjvhSahO0CXXsLMZWZYegREIMV4jaoHTJyNJJLfC7RCdoOm6sxGVyKAeeBegoU6l0XmLiXlwAqp1o4w7j3d1AwW9YdtnNrnQzkOXLddyfAPHv8Ey6ABpd8N88In2QqHwymfARC5mCrAH0i6qGDr9jk3fbNgFz8A1DkwIS7tDpSVwGdLcexIfPZhPHpf2wS+wRX9a/dPGUakLzBdwNgGJRlQBJtgMw5aJ3qr8TLYUmwVHwXXxZTUiwphvHYxDUnzPxIA5CdXa4E5SVa3fyUhkRtYqpSKbNYxpJiq+ncpDJar7GGlknvcl5mqM05BZH4Xl3iOLpLh7j7OR6MScSzAykplg20QIWA0PDSG+RuTdQVy8sNXP9DgK5N4jK9AvkRpfI4sYF/c2836mQl0nQ4zce66AfZFkTMqYl2DGaSMt/CYOHpsuaPco5bLUzUuMGkLHaQ+ovjwZUZrVdpAHRnnw/Bd5MrJCiY62t4x2+E2uBfkfRg95TdSkK8/LJ7JWF83+Nb5Ww0Zf+E3OviwXVMgT8dLwVRsKEd0A+uP8biMlH01MHAYVF/Oh2lCJenkDqpbUN9nPyzU91QnCRbyEPEXn1sQhxMv7tG1T7cW3rK/r44eVtxfxm6gwBh38zJqPJuUtXu3Z/wLwuBaBLgMkKwAAAABJRU5ErkJggg==" + webUI["html/js/configuaration.js"] = "dmFyIGNvbmZpZ01lbnUgPSBuZXcgT2JqZWN0KCk7DQp2YXIgd2l6YXJkID0gbmV3IEFycmF5KCJrZXkiLCAidHVuZXIiLCAiZXBnU291cmNlIiwgIm0zdSIsICJjb21wbGV0ZSIpOw0KdmFyIGFjdGl2ZVdpemFyZDsNCnZhciBkdnJJUA0KDQp2YXIgY29uZmlnTWVudV90dW5lciA9IG5ldyBPYmplY3QoKTsNCmNvbmZpZ01lbnVfdHVuZXJbIl9lbGVtZW50Il0gICAgICA9ICJTRUxFQ1QiOw0KY29uZmlnTWVudV90dW5lclsiX21lbnVUeXBlIl0gICAgID0gInNpbmdsZUlucHV0IjsNCmNvbmZpZ01lbnVfdHVuZXJbIl9jb25maWdLZXkiXSAgICA9ICJ0dW5lciI7DQpjb25maWdNZW51X3R1bmVyWyJfbGFiZWwiXSAgICAgICAgPSAiQXZhaWxhYmxlIHR1bmVycyI7DQpjb25maWdNZW51X3R1bmVyWyJuYW1lIl0gICAgICAgICAgPSAidHVuZXIiOw0KY29uZmlnTWVudV90dW5lclsiaWQiXSAgICAgICAgICAgID0gIlR1bmVyIjsNCmNvbmZpZ01lbnVfdHVuZXJbInBsYWNlaG9sZGVyIl0gICA9ICJUdW5lciI7DQpjb25maWdNZW51X3R1bmVyWyJfdXNhZ2UiXSAgICAgICAgPSAiVGhpcyBzZXR0aW5nIGlzIG9ubHkgdXNlZCBieSBQbGV4IGFuZCBFbWJ5Ljxicj5UaGUgbnVtYmVyIG9mIGNvbmN1cnJlbnQgc3RyZWFtcyBhbGxvd2VkIGJ5IHRoZSBJUFRWIHByb3ZpZGVyLiINCg0KDQp2YXIgb3B0aW9uVmFsdWVzID0gbmV3IEFycmF5KCk7DQpmb3IgKHZhciBpID0gMTsgaSA8PSAxMDA7IGkrKykgew0KICBvcHRpb25WYWx1ZXMucHVzaChpKQ0KfQ0KY29uZmlnTWVudV90dW5lclsiX29wdGlvblZhbHVlcyJdID0gb3B0aW9uVmFsdWVzOw0KDQp2YXIgY29uZmlnTWVudV9lcGcgPSBuZXcgT2JqZWN0KCk7DQpjb25maWdNZW51X2VwZ1siX2VsZW1lbnQiXSAgICAgID0gIlNFTEVDVCI7DQpjb25maWdNZW51X2VwZ1siX21lbnVUeXBlIl0gICAgID0gInNpbmdsZUlucHV0IjsNCmNvbmZpZ01lbnVfZXBnWyJfY29uZmlnS2V5Il0gICAgPSAiZXBnU291cmNlIjsNCmNvbmZpZ01lbnVfZXBnWyJfbGFiZWwiXSAgICAgICAgPSAiU2VsZWN0aW9uIG9mIHRoZSBFUEcgc291cmNlIjsNCmNvbmZpZ01lbnVfZXBnWyJuYW1lIl0gICAgICAgICAgPSAiZXBnU291cmNlIjsNCmNvbmZpZ01lbnVfZXBnWyJpZCJdICAgICAgICAgICAgPSAiRVBHIHNvdXJjZSI7DQpjb25maWdNZW51X2VwZ1sicGxhY2Vob2xkZXIiXSAgID0gIkVQRyBzb3VyY2UiOw0KY29uZmlnTWVudV9lcGdbIl9vcHRpb25WYWx1ZXMiXSA9IG5ldyBBcnJheSgiUE1TIiwgIlhFUEciKTsNCmNvbmZpZ01lbnVfZXBnWyJfdXNhZ2UiXSAgICAgICAgPSAiUE1TOiAgIFVzZSBFUEcgZGF0YSBmcm9tIFBsZXggb3IgRW1ieTxicj5YRVBHOiAgVXNlIG9mIGV4dGVybmFsIEVQRyBkYXRhIChYTUxUVik8YnI+ICAgICAgIFNldmVyYWwgWE1MVFYgc291cmNlcyBwb3NzaWJsZTxicj4gICAgICAgQWxsb3dzIGVkaXRpbmcgYW5kIG9yZGVyIGNoYW5uZWxzPGJyPiAgICAgICBNM1UgLyBYTUxUViBleHBvcnQgKEhUVFAgbGluayBmb3IgSVBUViBhcHBzKSINCg0KdmFyIGNvbmZpZ01lbnVfbTN1ID0gbmV3IE9iamVjdCgpOw0KY29uZmlnTWVudV9tM3VbIl9lbGVtZW50Il0gICAgICAgID0gIklOUFVUIjsNCmNvbmZpZ01lbnVfbTN1WyJfbWVudVR5cGUiXSAgICAgICA9ICJpbnB1dEFycmF5IjsNCmNvbmZpZ01lbnVfbTN1WyJfY29uZmlnS2V5Il0gICAgICA9ICJmaWxlIjsNCmNvbmZpZ01lbnVfbTN1WyJfbGFiZWwiXSAgICAgICAgICA9ICJNM1UgRmlsZTogbG9jYWwgb3IgcmVtb3RlIjsNCmNvbmZpZ01lbnVfbTN1WyJuYW1lIl0gICAgICAgICAgICA9ICJmaWxlIjsNCmNvbmZpZ01lbnVfbTN1WyJpZCJdICAgICAgICAgICAgICA9ICJtM3UiOw0KY29uZmlnTWVudV9tM3VbInR5cGUiXSAgICAgICAgICAgID0gInRleHQiOw0KY29uZmlnTWVudV9tM3VbInBsYWNlaG9sZGVyIl0gICAgID0gIk0zVSBGaWxlIjsNCmNvbmZpZ01lbnVfbTN1WyJfdXNhZ2UiXSAgICAgICAgICA9ICJSZW1vdGUgcGxheWxpc3Q6IGh0dHA6Ly95b3VyLnByb3ZpZGVyLmNvbS9maWxlLm0zdTxicj5Mb2NhbCAgcGxheWxpc3Q6IC9wYXRoL3RvL2ZpbGUubTN1Ig0KDQoNCmNvbmZpZ01lbnVfbTN1WyJ2YWx1ZSJdICAgICAgICAgICA9ICJodHRwOi8vd2Vic3J2LmxvY2FsOjgwODAva2FiZWwubTN1IjsNCg0KdmFyIGNvbmZpZ01lbnVfY29tcGxldGUgPSBuZXcgT2JqZWN0KCk7DQpjb25maWdNZW51X2NvbXBsZXRlWyJfZWxlbWVudCJdICAgICAgICA9ICJIMiI7DQpjb25maWdNZW51X2NvbXBsZXRlWyJfbWVudVR5cGUiXSAgICAgICA9ICJpbnB1dEFycmF5IjsNCmNvbmZpZ01lbnVfY29tcGxldGVbIl9jb25maWdLZXkiXSAgICAgID0gImZpbGUiOw0KY29uZmlnTWVudV9jb21wbGV0ZVsiX3RleHQiXSAgICAgICAgICAgPSAieFRlVmUgd2FzIHN1Y2Nlc3NmdWxseSBzZXQgdXAiOw0KY29uZmlnTWVudV9jb21wbGV0ZVsibmFtZSJdICAgICAgICAgICAgPSAiY29tcGxldGUiOw0KY29uZmlnTWVudV9jb21wbGV0ZVsiaWQiXSAgICAgICAgICAgICAgPSAiY29tcGxldGUiOw0KY29uZmlnTWVudV9jb21wbGV0ZVsidHlwZSJdICAgICAgICAgICAgPSAidGV4dCI7DQpjb25maWdNZW51X2NvbXBsZXRlWyJjbGFzcyJdICAgICAgICAgICA9ICJjZW50ZXIiOw0KDQpjb25maWdNZW51WyJ0dW5lciJdICAgICA9IGNvbmZpZ01lbnVfdHVuZXI7DQpjb25maWdNZW51WyJlcGdTb3VyY2UiXSA9IGNvbmZpZ01lbnVfZXBnOw0KY29uZmlnTWVudVsibTN1Il0gICAgICAgPSBjb25maWdNZW51X20zdTsNCmNvbmZpZ01lbnVbImNvbXBsZXRlIl0gID0gY29uZmlnTWVudV9jb21wbGV0ZTsNCg0KZnVuY3Rpb24gcmVhZHlGb3JDb25maWd1cmF0aW9uKCkgew0KICB2YXIgZGF0YSA9IG5ldyBPYmplY3QoKTsNCiAgZGF0YVsiY21kIl0gPSAiZ2V0U2VydmVyQ29uZmlnIjsNCiAgeFRlVmUoZGF0YSk7DQogIHNob3dMb2FkaW5nU2NyZWVuKGZhbHNlKTsNCn0NCg0KZnVuY3Rpb24gY3JlYXRlQ29uZmlndXJhdGlvbihlbG0pIHsNCg0KICBhY3RpdmVXaXphcmQgPSBlbG07DQogIHZhciBpdGVtICA9IGNvbmZpZ01lbnVbZWxtXTsNCg0KICB2YXIgZGl2ICAgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29udGVudCIpOw0KICBkaXYuaW5uZXJIVE1MID0gIiI7DQogIGRpdi5zZXRBdHRyaWJ1dGUoImRhdGEtY29uZmlnS2V5IiwgaXRlbVsiX2NvbmZpZ0tleSJdKTsNCiAgZGl2LnNldEF0dHJpYnV0ZSgiZGF0YS1tZW51VHlwZSIsIGl0ZW1bIl9tZW51VHlwZSJdKTsNCiAgDQogIHN3aXRjaChpdGVtLmhhc093blByb3BlcnR5KCJfbGFiZWwiKSkgew0KICAgIGNhc2UgdHJ1ZToNCiAgICAgIHZhciBuZXdJdGVtID0gbmV3IE9iamVjdCgpOw0KICAgICAgbmV3SXRlbVsiX2VsZW1lbnQiXSA9ICJMQUJFTCI7DQogICAgICBuZXdJdGVtWyJfdGV4dCJdICAgID0gaXRlbVsiX2xhYmVsIl07IA0KICAgICAgbmV3SXRlbVsiZm9yIl0gICAgICA9IGl0ZW1bImlkIl07DQogICAgICBkaXYuYXBwZW5kQ2hpbGQoY3JlYXRlRWxlbWVudChuZXdJdGVtKSk7DQogICAgICBicmVhaw0KICB9DQoNCiAgc3dpdGNoKGl0ZW1bIl9lbGVtZW50Il0pIHsNCiAgICBjYXNlICJTRUxFQ1QiOg0KICAgICAgZGl2LmFwcGVuZENoaWxkKGNyZWF0ZUVsZW1lbnQoaXRlbSkpOw0KICAgICAgdmFyIHNlbGVjdEVsZW1lbnQgPSBkaXYuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlNFTEVDVCIpWzBdOw0KICAgICAgdmFyIHZhbHVlcyA9IGl0ZW1bIl9vcHRpb25WYWx1ZXMiXTsNCiAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdmFsdWVzLmxlbmd0aDsgaSsrKSB7DQogICAgICAgIHZhciBuZXdFbnRyeSA9IG5ldyBPYmplY3Q7DQogICAgICAgIG5ld0VudHJ5WyJfZWxlbWVudCJdICA9ICJPUFRJT04iOw0KICAgICAgICBuZXdFbnRyeVsiX3RleHQiXSAgICAgPSBpdGVtWyJpZCJdICsgIjogIiArIHZhbHVlc1tpXTsNCiAgICAgICAgbmV3RW50cnlbInZhbHVlIl0gICAgID0gdmFsdWVzW2ldOw0KICAgICAgICBzZWxlY3RFbGVtZW50LmFwcGVuZENoaWxkKGNyZWF0ZUVsZW1lbnQobmV3RW50cnkpKTsNCiAgICAgIH0NCiAgICAgIC8vcmV0dXJuDQogICAgICBicmVhazsNCg0KICAgIGRlZmF1bHQ6IA0KICAgICAgZGl2LmFwcGVuZENoaWxkKGNyZWF0ZUVsZW1lbnQoaXRlbSkpOw0KICAgICAgYnJlYWs7DQoNCg0KICB9DQogIC8vYWxlcnQoKQ0KDQogIHN3aXRjaChpdGVtLmhhc093blByb3BlcnR5KCJfdXNhZ2UiKSkgew0KICAgIGNhc2UgdHJ1ZTogDQogICAgICB2YXIgdXNhZ2VJdGVtID0gbmV3IE9iamVjdCgpOw0KICAgICAgdXNhZ2VJdGVtWyJfZWxlbWVudCJdID0gIlBSRSINCiAgICAgIHVzYWdlSXRlbVsiX3RleHQiXSAgICA9IGl0ZW1bIl91c2FnZSJdOw0KICAgICAgZGl2LmFwcGVuZENoaWxkKGNyZWF0ZUVsZW1lbnQodXNhZ2VJdGVtKSk7DQogIH0NCg0KICBpZiAoYWN0aXZlV2l6YXJkID09ICJjb21wbGV0ZSIpIHsNCiAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibmV4dCIpLnZhbHVlID0gIkZpbmlzaGVkIg0KICAgIC8vZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm5leHQiKS5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAiamF2YXNjcmlwdDogbG9jYXRpb24ucmVsb2FkKCk7IikNCiAgfQ0KDQogIC8vZGl2LmFwcGVuZENoaWxkKGNyZWF0ZUVsZW1lbnQoaXRlbSkpOw0KfQ0KDQpmdW5jdGlvbiBzYXZlRGF0YSgpIHsNCg0KICB2YXIgZGl2ICAgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29udGVudCIpOw0KICB2YXIgaW5wdXRzID0gZGl2LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJJTlBVVCIpOw0KICB2YXIgc2VsZWN0cyA9IGRpdi5nZXRFbGVtZW50c0J5VGFnTmFtZSgiU0VMRUNUIik7DQogIHZhciB2YWx1ZTsNCiAgdmFyIGRhdGEgPSBuZXcgT2JqZWN0KCk7DQogIHZhciB2YWx1ZUFyciA9IG5ldyBBcnJheSgpOw0KICB2YXIgbmV3RGF0YSA9IGZhbHNlOw0KDQogIGlmIChhY3RpdmVXaXphcmQgPT0gImNvbXBsZXRlIikgew0KICAgIGRhdGFbImNtZCJdID0gIndpemFyZENvbXBsZXRlZCI7DQogICAgc2hvd0xvYWRpbmdTY3JlZW4odHJ1ZSkNCiAgICB4VGVWZShkYXRhKTsNCiAgICByZXR1cm4NCiAgfQ0KICANCiAgZm9yICh2YXIgaSA9IDA7IGkgPCBpbnB1dHMubGVuZ3RoOyBpKyspIHsNCiAgICB2YXIgbWVudVR5cGUgPSBpbnB1dHNbaV0ucGFyZW50RWxlbWVudC5nZXRBdHRyaWJ1dGUoImRhdGEtbWVudXR5cGUiKTsNCiAgICBpZiAoaW5wdXRzW2ldLnZhbHVlICE9IHVuZGVmaW5lZCAmJiBpbnB1dHNbaV0udmFsdWUgIT0gIiIgKSB7DQogICAgICBuZXdEYXRhID0gdHJ1ZTsNCg0KICAgICAgY29uc29sZS5sb2coaW5wdXRzW2ldLmlkKQ0KICAgICAgc3dpdGNoKGlucHV0c1tpXS5pZCkgew0KICAgICAgICBjYXNlICJtM3UiOiANCiAgICAgICAgICB2YXIgbmV3UGxheWxpc3QgPSBuZXcgT2JqZWN0KCk7DQogICAgICAgICAgbmV3UGxheWxpc3RbImZpbGUuc291cmNlIl0gPSBpbnB1dHNbaV0udmFsdWU7DQogICAgICAgICAgLy9uZXdQbGF5bGlzdFsibmFtZSJdID0gaW5wdXRzW2ldLnZhbHVlOw0KICAgICAgICAgIG5ld1BsYXlsaXN0WyJ0eXBlIl0gPSAibTN1IjsNCiAgICAgICAgICBuZXdQbGF5bGlzdFsibmV3Il0gPSB0cnVlOw0KDQogICAgICAgICAgZGF0YVsiZmlsZXMiXSA9IG5ldyBPYmplY3QoKTsNCiAgICAgICAgICBkYXRhWyJmaWxlcyJdWyJtM3UiXSA9IG5ldyBPYmplY3QoKTsNCiAgICAgICAgICBkYXRhWyJmaWxlcyJdWyJtM3UiXVsiLSJdID0gbmV3UGxheWxpc3Q7DQogICAgICAgICAgDQogICAgICAgICAgZGF0YVsiY21kIl0gPSAic2F2ZUZpbGVzTTNVIjsNCiAgICAgICAgICB4VGVWZShkYXRhKQ0KICAgICAgICAgIHJldHVybg0KICAgICAgfQ0KICAgICAgLyoNCiAgICAgIHN3aXRjaChtZW51VHlwZSkgew0KICAgICAgICBjYXNlICJzaW5nbGVJbnB1dCI6DQogICAgICAgICAgZGF0YVtpbnB1dHNbaV0ubmFtZV0gPSBpbnB1dHNbaV0udmFsdWU7IGJyZWFrOw0KICAgICAgICBjYXNlICJpbnB1dEFycmF5IjogDQogICAgICAgICAgdmFsdWVBcnIucHVzaChpbnB1dHNbaV0udmFsdWUpOw0KICAgICAgICAgIGRhdGFbaW5wdXRzW2ldLm5hbWVdID0gdmFsdWVBcnI7IGJyZWFrDQoNCiAgICAgIH0NCiAgICAgICovDQogICAgfSBlbHNlIHsNCiAgICAgIGlucHV0c1tpXS5zdHlsZS5ib3JkZXJCb3R0b21Db2xvciA9ICJyZWQiOw0KICAgICAgcmV0dXJuOw0KICAgIH0NCiAgfQ0KDQoNCiAgZm9yICh2YXIgaSA9IDA7IGkgPCBzZWxlY3RzLmxlbmd0aDsgaSsrKSB7DQogICAgdmFyIHZhbHVlID0gc2VsZWN0c1tpXS5vcHRpb25zW3NlbGVjdHNbaV0uc2VsZWN0ZWRJbmRleF0udmFsdWU7DQogICAgaWYgKGlzTmFOKHZhbHVlKSA9PSBmYWxzZSkgew0KICAgICAgdmFsdWUgPSBwYXJzZUludCh2YWx1ZSk7DQogICAgICBkYXRhW3NlbGVjdHNbaV0ubmFtZV0gPSB2YWx1ZTsNCiAgICAgIG5ld0RhdGEgPSB0cnVlOw0KICAgICAgYnJlYWs7DQogICAgfQ0KICAgIGRhdGFbc2VsZWN0c1tpXS5uYW1lXSA9IHZhbHVlOw0KICAgIG5ld0RhdGEgPSB0cnVlOw0KICB9DQoNCg0KICAvL2NvbnNvbGUubG9nKGRhdGEsIG5ld0RhdGEpOw0KICBpZiAobmV3RGF0YSA9PSB0cnVlKSB7DQogICAgY29uZmlnID0gZGF0YQ0KICAgIGRhdGFbImNtZCJdID0gInNhdmVDb25maWciOw0KICAgIHhUZVZlKGRhdGEpOw0KICB9DQp9DQoNCmZ1bmN0aW9uIHhUZVZlKGRhdGEpIHsNCg0KICBpZiAod2ViU29ja2V0cyA9PSBmYWxzZSkgew0KICAgIGFsZXJ0KCJZb3VyIGJyb3dzZXIgZG9lcyBub3Qgc3VwcG9ydCBXZWJTb2NrZXRzIik7DQogICAgcmV0dXJuOw0KICB9DQoNCiAgaWYgKGFjdGl2ZVdpemFyZCA9PSAibTN1IiB8fCBhY3RpdmVXaXphcmQgPT0gImVwZ1NvdXJjZSIpIHsNCiAgICBzaG93TG9hZGluZ1NjcmVlbih0cnVlKTsNCiAgfQ0KDQogIHZhciBwcm90b2NvbFdTDQogIHN3aXRjaCh3aW5kb3cubG9jYXRpb24ucHJvdG9jb2wpIHsNCiAgICBjYXNlICJodHRwOiI6ICAgcHJvdG9jb2xXUyA9ICJ3czovLyI7IGJyZWFrOw0KICAgIGNhc2UgImh0dHBzOiI6ICBwcm90b2NvbFdTID0gIndzczovLyI7IGJyZWFrOw0KICB9DQoNCiAgdmFyIHdzID0gbmV3IFdlYlNvY2tldChwcm90b2NvbFdTICsgd2luZG93LmxvY2F0aW9uLmhvc3RuYW1lICsgIjoiICsgd2luZG93LmxvY2F0aW9uLnBvcnQgKyAiL2RhdGEvIiArICI/VG9rZW49IiArIGdldENvb2tpZSgiVG9rZW4iKSk7DQogIA0KICB3cy5vbm9wZW4gPSBmdW5jdGlvbigpIHsNCiAgICB3cy5zZW5kKEpTT04uc3RyaW5naWZ5KGRhdGEpKTsNCiAgfQ0KDQogIHdzLm9ubWVzc2FnZSA9IGZ1bmN0aW9uIChlKSB7DQogICAgDQogICAgdmFyIHJlc3BvbnNlID0gSlNPTi5wYXJzZShlLmRhdGEpOw0KICAgIA0KICAgIGlmIChyZXNwb25zZS5oYXNPd25Qcm9wZXJ0eSgiY2xpZW50SW5mbyIpKSB7DQogICAgICBjcmVhdGVDbGludEluZm8ocmVzcG9uc2VbImNsaWVudEluZm8iXSk7DQogICAgfQ0KDQogICAgaWYgKHJlc3BvbnNlLmhhc093blByb3BlcnR5KCJzdGF0dXMiKSkgew0KICAgICAgaWYgKHJlc3BvbnNlWyJzdGF0dXMiXSA9PSBmYWxzZSkgew0KICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiaGVhZGxpbmUiKS5zdHlsZS5ib3JkZXJDb2xvciA9ICJyZWQiOw0KICAgICAgICBzaG93RXJyKHJlc3BvbnNlWyJlcnIiXSk7DQogICAgICAgIHNob3dMb2FkaW5nU2NyZWVuKGZhbHNlKQ0KICAgICAgICByZXR1cm4NCiAgICAgIH0gZWxzZSB7DQogICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJlcnIiKS5pbm5lckhUTUwgPSAiIjsNCiAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImhlYWRsaW5lIikuc3R5bGUuYm9yZGVyQ29sb3IgPSAibGF3bmdyZWVuIjsNCiAgICAgIH0NCg0KICAgICAgZHZySVAgPSByZXNwb25zZVsiRFZSIl0NCiAgICAgIHN3aXRjaChyZXNwb25zZVsiY29uZmlndXJhdGlvbldpemFyZCJdKSB7DQogICAgICAgIGNhc2UgdHJ1ZTogDQogICAgICAgICAgaWYgKGFjdGl2ZVdpemFyZCA9PSB1bmRlZmluZWQpIHsNCiAgICAgICAgICAgIGFjdGl2ZVdpemFyZCA9IHdpemFyZFswXQ0KICAgICAgICAgIH0NCiAgICAgICAgICB2YXIgbiA9IHdpemFyZC5pbmRleE9mKGFjdGl2ZVdpemFyZCk7DQogICAgICAgICAgbisrOw0KICAgICAgICAgIGFjdGl2ZVdpemFyZCA9IHdpemFyZFtuXQ0KDQogICAgICAgICAgaWYgKGFjdGl2ZVdpemFyZCA9PSB1bmRlZmluZWQpIHsNCiAgICAgICAgICAgIGRhdGFbImNtZCJdID0gIndpemFyZENvbXBsZXRlZCI7DQogICAgICAgICAgICB4VGVWZShkYXRhKQ0KICAgICAgICAgIH0gZWxzZSB7DQogICAgICAgICAgICAvL2NvbnNvbGUubG9nKGFjdGl2ZVdpemFyZCk7DQogICAgICAgICAgICBjcmVhdGVDb25maWd1cmF0aW9uKGFjdGl2ZVdpemFyZCk7IA0KICAgICAgICAgIH0NCiAgICAgICAgICANCiAgICAgICAgYnJlYWs7DQogICAgICB9DQoNCiAgICAgIHN3aXRjaChyZXNwb25zZVsicmVsb2FkIl0pIHsNCiAgICAgICAgDQogICAgICAgIA0KICAgICAgICBjYXNlIHRydWU6IA0KICAgIA0KICAgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKXsgDQogICAgICAgICAgICBsb2NhdGlvbi5yZWxvYWQoKTsNCiAgICAgICAgICB9LCAxMDApOw0KICAgICAgICAgIA0KICAgICAgICAgIC8vbG9jYXRpb24ucmVsb2FkKCk7DQogICAgICAgICAgDQogICAgICAgICAgYnJlYWs7DQogICAgICAgIA0KICAgICAgfQ0KDQogICAgICANCiAgICB9DQoNCiAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7IHNob3dMb2FkaW5nU2NyZWVuKGZhbHNlKTsgfSwgMzAwKTsNCiAgfQ0KICANCn0NCg0KZnVuY3Rpb24gc2hvd0VycihlbG0pIHsNCiAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImVyciIpLmlubmVySFRNTCA9IGVsbTsNCn0=" + webUI["html/js/settings_ts.js"] = "Y2xhc3MgU2V0dGluZ3NDYXRlZ29yeSB7DQogICAgY29uc3RydWN0b3IoKSB7DQogICAgICAgIHRoaXMuRG9jdW1lbnRJRCA9ICJjb250ZW50X3NldHRpbmdzIjsNCiAgICB9DQogICAgY3JlYXRlQ2F0ZWdvcnlIZWFkbGluZSh2YWx1ZSkgew0KICAgICAgICB2YXIgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIkg0Iik7DQogICAgICAgIGVsZW1lbnQuaW5uZXJIVE1MID0gdmFsdWU7DQogICAgICAgIHJldHVybiBlbGVtZW50Ow0KICAgIH0NCiAgICBjcmVhdGVIUigpIHsNCiAgICAgICAgdmFyIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJIUiIpOw0KICAgICAgICByZXR1cm4gZWxlbWVudDsNCiAgICB9DQogICAgY3JlYXRlU2V0dGluZ3Moc2V0dGluZ3NLZXkpIHsNCiAgICAgICAgdmFyIHNldHRpbmcgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJUUiIpOw0KICAgICAgICB2YXIgY29udGVudCA9IG5ldyBQb3B1cENvbnRlbnQoKTsNCiAgICAgICAgdmFyIGRhdGEgPSBTRVJWRVJbInNldHRpbmdzIl1bc2V0dGluZ3NLZXldOw0KICAgICAgICBzd2l0Y2ggKHNldHRpbmdzS2V5KSB7DQogICAgICAgICAgICAvLyBUZXh0ZWluZ2FiZW4NCiAgICAgICAgICAgIGNhc2UgInVwZGF0ZSI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy51cGRhdGUudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCAidXBkYXRlIiwgZGF0YS50b1N0cmluZygpKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnNldHRpbmdzLnVwZGF0ZS5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiYmFja3VwLnBhdGgiOg0KICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MuYmFja3VwUGF0aC50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsICJiYWNrdXAucGF0aCIsIGRhdGEpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3suc2V0dGluZ3MuYmFja3VwUGF0aC5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAidGVtcC5wYXRoIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLnRlbXBQYXRoLnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgInRlbXAucGF0aCIsIGRhdGEpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3suc2V0dGluZ3MudG1wUGF0aC5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAidXNlci5hZ2VudCI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy51c2VyQWdlbnQudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCAidXNlci5hZ2VudCIsIGRhdGEpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3suc2V0dGluZ3MudXNlckFnZW50LnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJidWZmZXIudGltZW91dCI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5idWZmZXJUaW1lb3V0LnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgImJ1ZmZlci50aW1lb3V0IiwgZGF0YSk7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5zZXR0aW5ncy5idWZmZXJUaW1lb3V0LnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJmZm1wZWcucGF0aCI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5mZm1wZWdQYXRoLnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgImZmbXBlZy5wYXRoIiwgZGF0YSk7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5zZXR0aW5ncy5mZm1wZWdQYXRoLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJmZm1wZWcub3B0aW9ucyI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5mZm1wZWdPcHRpb25zLnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgImZmbXBlZy5vcHRpb25zIiwgZGF0YSk7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5zZXR0aW5ncy5mZm1wZWdPcHRpb25zLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ2bGMucGF0aCI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy52bGNQYXRoLnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgInZsYy5wYXRoIiwgZGF0YSk7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5zZXR0aW5ncy52bGNQYXRoLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ2bGMub3B0aW9ucyI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy52bGNPcHRpb25zLnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgInZsYy5vcHRpb25zIiwgZGF0YSk7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5zZXR0aW5ncy52bGNPcHRpb25zLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAvLyBDaGVja2JveGVuDQogICAgICAgICAgICBjYXNlICJhdXRoZW50aWNhdGlvbi53ZWIiOg0KICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MuYXV0aGVudGljYXRpb25XRUIudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goc2V0dGluZ3NLZXkpOw0KICAgICAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImF1dGhlbnRpY2F0aW9uLnBtcyI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5hdXRoZW50aWNhdGlvblBNUy50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChzZXR0aW5nc0tleSk7DQogICAgICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGE7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiYXV0aGVudGljYXRpb24ubTN1IjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmF1dGhlbnRpY2F0aW9uTTNVLnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KHNldHRpbmdzS2V5KTsNCiAgICAgICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJhdXRoZW50aWNhdGlvbi54bWwiOg0KICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MuYXV0aGVudGljYXRpb25YTUwudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goc2V0dGluZ3NLZXkpOw0KICAgICAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImF1dGhlbnRpY2F0aW9uLmFwaSI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5hdXRoZW50aWNhdGlvbkFQSS50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChzZXR0aW5nc0tleSk7DQogICAgICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGE7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiZmlsZXMudXBkYXRlIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmZpbGVzVXBkYXRlLnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KHNldHRpbmdzS2V5KTsNCiAgICAgICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJjYWNoZS5pbWFnZXMiOg0KICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MuY2FjaGVJbWFnZXMudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goc2V0dGluZ3NLZXkpOw0KICAgICAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInhlcGcucmVwbGFjZS5taXNzaW5nLmltYWdlcyI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5yZXBsYWNlRW1wdHlJbWFnZXMudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goc2V0dGluZ3NLZXkpOw0KICAgICAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInh0ZXZlQXV0b1VwZGF0ZSI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy54dGV2ZUF1dG9VcGRhdGUudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goc2V0dGluZ3NLZXkpOw0KICAgICAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImFwaSI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5hcGkudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goc2V0dGluZ3NLZXkpOw0KICAgICAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIC8vIFNlbGVjdA0KICAgICAgICAgICAgY2FzZSAidHVuZXIiOg0KICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MudHVuZXIudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciB0ZXh0ID0gbmV3IEFycmF5KCk7DQogICAgICAgICAgICAgICAgdmFyIHZhbHVlcyA9IG5ldyBBcnJheSgpOw0KICAgICAgICAgICAgICAgIGZvciAodmFyIGkgPSAxOyBpIDw9IDEwMDsgaSsrKSB7DQogICAgICAgICAgICAgICAgICAgIHRleHQucHVzaChpKTsNCiAgICAgICAgICAgICAgICAgICAgdmFsdWVzLnB1c2goaSk7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIHZhciBzZWxlY3QgPSBjb250ZW50LmNyZWF0ZVNlbGVjdCh0ZXh0LCB2YWx1ZXMsIGRhdGEsIHNldHRpbmdzS2V5KTsNCiAgICAgICAgICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQoc2VsZWN0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImVwZ1NvdXJjZSI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5lcGdTb3VyY2UudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciB0ZXh0ID0gWyJQTVMiLCAiWEVQRyJdOw0KICAgICAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBbIlBNUyIsICJYRVBHIl07DQogICAgICAgICAgICAgICAgdmFyIHNlbGVjdCA9IGNvbnRlbnQuY3JlYXRlU2VsZWN0KHRleHQsIHZhbHVlcywgZGF0YSwgc2V0dGluZ3NLZXkpOw0KICAgICAgICAgICAgICAgIHNlbGVjdC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChzZWxlY3QpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiYmFja3VwLmtlZXAiOg0KICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MuYmFja3VwS2VlcC50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIHRleHQgPSBbIjUiLCAiMTAiLCAiMjAiLCAiMzAiLCAiNDAiLCAiNTAiXTsNCiAgICAgICAgICAgICAgICB2YXIgdmFsdWVzID0gWyI1IiwgIjEwIiwgIjIwIiwgIjMwIiwgIjQwIiwgIjUwIl07DQogICAgICAgICAgICAgICAgdmFyIHNlbGVjdCA9IGNvbnRlbnQuY3JlYXRlU2VsZWN0KHRleHQsIHZhbHVlcywgZGF0YSwgc2V0dGluZ3NLZXkpOw0KICAgICAgICAgICAgICAgIHNlbGVjdC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChzZWxlY3QpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiYnVmZmVyLnNpemUua2IiOg0KICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MuYnVmZmVyU2l6ZS50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIHRleHQgPSBbIjAuNSBNQiIsICIxIE1CIiwgIjIgTUIiLCAiMyBNQiIsICI0IE1CIiwgIjUgTUIiLCAiNiBNQiIsICI3IE1CIiwgIjggTUIiXTsNCiAgICAgICAgICAgICAgICB2YXIgdmFsdWVzID0gWyI1MTIiLCAiMTAyNCIsICIyMDQ4IiwgIjMwNzIiLCAiNDA5NiIsICI1MTIwIiwgIjYxNDQiLCAiNzE2OCIsICI4MTkyIl07DQogICAgICAgICAgICAgICAgdmFyIHNlbGVjdCA9IGNvbnRlbnQuY3JlYXRlU2VsZWN0KHRleHQsIHZhbHVlcywgZGF0YSwgc2V0dGluZ3NLZXkpOw0KICAgICAgICAgICAgICAgIHNlbGVjdC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChzZWxlY3QpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiYnVmZmVyIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLnN0cmVhbUJ1ZmZlcmluZy50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIHRleHQgPSBbInt7LnNldHRpbmdzLnN0cmVhbUJ1ZmZlcmluZy5pbmZvX2ZhbHNlfX0iLCAieFRlVmU6ICh7ey5zZXR0aW5ncy5zdHJlYW1CdWZmZXJpbmcuaW5mb194dGV2ZX19KSIsICJGRm1wZWc6ICh7ey5zZXR0aW5ncy5zdHJlYW1CdWZmZXJpbmcuaW5mb19mZm1wZWd9fSkiLCAiVkxDOiAoe3suc2V0dGluZ3Muc3RyZWFtQnVmZmVyaW5nLmluZm9fdmxjfX0pIl07DQogICAgICAgICAgICAgICAgdmFyIHZhbHVlcyA9IFsiLSIsICJ4dGV2ZSIsICJmZm1wZWciLCAidmxjIl07DQogICAgICAgICAgICAgICAgdmFyIHNlbGVjdCA9IGNvbnRlbnQuY3JlYXRlU2VsZWN0KHRleHQsIHZhbHVlcywgZGF0YSwgc2V0dGluZ3NLZXkpOw0KICAgICAgICAgICAgICAgIHNlbGVjdC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChzZWxlY3QpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAidWRweHkiOg0KICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MudWRweHkudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCAidWRweHkiLCBkYXRhKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnNldHRpbmdzLnVkcHh5LnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIH0NCiAgICAgICAgcmV0dXJuIHNldHRpbmc7DQogICAgfQ0KICAgIGNyZWF0ZURlc2NyaXB0aW9uKHNldHRpbmdzS2V5KSB7DQogICAgICAgIHZhciBkZXNjcmlwdGlvbiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlRSIik7DQogICAgICAgIHZhciB0ZXh0Ow0KICAgICAgICBzd2l0Y2ggKHNldHRpbmdzS2V5KSB7DQogICAgICAgICAgICBjYXNlICJhdXRoZW50aWNhdGlvbi53ZWIiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MuYXV0aGVudGljYXRpb25XRUIuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJhdXRoZW50aWNhdGlvbi5tM3UiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MuYXV0aGVudGljYXRpb25NM1UuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJhdXRoZW50aWNhdGlvbi5wbXMiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MuYXV0aGVudGljYXRpb25QTVMuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJhdXRoZW50aWNhdGlvbi54bWwiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MuYXV0aGVudGljYXRpb25YTUwuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJhdXRoZW50aWNhdGlvbi5hcGkiOg0KICAgICAgICAgICAgICAgIGlmIChTRVJWRVJbInNldHRpbmdzIl1bImF1dGhlbnRpY2F0aW9uLndlYiJdID09IHRydWUpIHsNCiAgICAgICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5hdXRoZW50aWNhdGlvbkFQSS5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ4dGV2ZUF1dG9VcGRhdGUiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MueHRldmVBdXRvVXBkYXRlLmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiYmFja3VwLmtlZXAiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MuYmFja3VwS2VlcC5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImJhY2t1cC5wYXRoIjoNCiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLmJhY2t1cFBhdGguZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ0ZW1wLnBhdGgiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MudGVtcFBhdGguZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJidWZmZXIiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3Muc3RyZWFtQnVmZmVyaW5nLmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiYnVmZmVyLnNpemUua2IiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MuYnVmZmVyU2l6ZS5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImJ1ZmZlci50aW1lb3V0IjoNCiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLmJ1ZmZlclRpbWVvdXQuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ1c2VyLmFnZW50IjoNCiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLnVzZXJBZ2VudC5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImZmbXBlZy5wYXRoIjoNCiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLmZmbXBlZ1BhdGguZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJmZm1wZWcub3B0aW9ucyI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5mZm1wZWdPcHRpb25zLmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAidmxjLnBhdGgiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MudmxjUGF0aC5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInZsYy5vcHRpb25zIjoNCiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLnZsY09wdGlvbnMuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJlcGdTb3VyY2UiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MuZXBnU291cmNlLmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAidHVuZXIiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MudHVuZXIuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ1cGRhdGUiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MudXBkYXRlLmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiYXBpIjoNCiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLmFwaS5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImZpbGVzLnVwZGF0ZSI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5maWxlc1VwZGF0ZS5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImNhY2hlLmltYWdlcyI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5jYWNoZUltYWdlcy5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInhlcGcucmVwbGFjZS5taXNzaW5nLmltYWdlcyI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5yZXBsYWNlRW1wdHlJbWFnZXMuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ1ZHB4eSI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy51ZHB4eS5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICAgICAgdGV4dCA9ICIiOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICB9DQogICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gIiI7DQogICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgdmFyIHByZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlBSRSIpOw0KICAgICAgICBwcmUuaW5uZXJIVE1MID0gdGV4dDsNCiAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChwcmUpOw0KICAgICAgICBkZXNjcmlwdGlvbi5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICBkZXNjcmlwdGlvbi5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgcmV0dXJuIGRlc2NyaXB0aW9uOw0KICAgIH0NCn0NCmNsYXNzIFNldHRpbmdzQ2F0ZWdvcnlJdGVtIGV4dGVuZHMgU2V0dGluZ3NDYXRlZ29yeSB7DQogICAgY29uc3RydWN0b3IoaGVhZGxpbmUsIHNldHRpbmdzS2V5cykgew0KICAgICAgICBzdXBlcigpOw0KICAgICAgICB0aGlzLmhlYWRsaW5lID0gaGVhZGxpbmU7DQogICAgICAgIHRoaXMuc2V0dGluZ3NLZXlzID0gc2V0dGluZ3NLZXlzOw0KICAgIH0NCiAgICBjcmVhdGVDYXRlZ29yeSgpIHsNCiAgICAgICAgdmFyIGhlYWRsaW5lID0gdGhpcy5jcmVhdGVDYXRlZ29yeUhlYWRsaW5lKHRoaXMuaGVhZGxpbmUpOw0KICAgICAgICB2YXIgc2V0dGluZ3NLZXlzID0gdGhpcy5zZXR0aW5nc0tleXM7DQogICAgICAgIHZhciBkb2MgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCh0aGlzLkRvY3VtZW50SUQpOw0KICAgICAgICBkb2MuYXBwZW5kQ2hpbGQoaGVhZGxpbmUpOw0KICAgICAgICAvLyBUYWJlbGxlIGbDvHIgZGllIEthdGVnb3JpZSBlcnN0ZWxsZW4NCiAgICAgICAgdmFyIHRhYmxlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEFCTEUiKTsNCiAgICAgICAgdmFyIGtleXMgPSBzZXR0aW5nc0tleXMuc3BsaXQoIiwiKTsNCiAgICAgICAga2V5cy5mb3JFYWNoKHNldHRpbmdzS2V5ID0+IHsNCiAgICAgICAgICAgIHN3aXRjaCAoc2V0dGluZ3NLZXkpIHsNCiAgICAgICAgICAgICAgICBjYXNlICJhdXRoZW50aWNhdGlvbi5wbXMiOg0KICAgICAgICAgICAgICAgIGNhc2UgImF1dGhlbnRpY2F0aW9uLm0zdSI6DQogICAgICAgICAgICAgICAgY2FzZSAiYXV0aGVudGljYXRpb24ueG1sIjoNCiAgICAgICAgICAgICAgICBjYXNlICJhdXRoZW50aWNhdGlvbi5hcGkiOg0KICAgICAgICAgICAgICAgICAgICBpZiAoU0VSVkVSWyJzZXR0aW5ncyJdWyJhdXRoZW50aWNhdGlvbi53ZWIiXSA9PSBmYWxzZSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBkZWZhdWx0Og0KICAgICAgICAgICAgICAgICAgICB2YXIgaXRlbSA9IHRoaXMuY3JlYXRlU2V0dGluZ3Moc2V0dGluZ3NLZXkpOw0KICAgICAgICAgICAgICAgICAgICB2YXIgZGVzY3JpcHRpb24gPSB0aGlzLmNyZWF0ZURlc2NyaXB0aW9uKHNldHRpbmdzS2V5KTsNCiAgICAgICAgICAgICAgICAgICAgdGFibGUuYXBwZW5kQ2hpbGQoaXRlbSk7DQogICAgICAgICAgICAgICAgICAgIHRhYmxlLmFwcGVuZENoaWxkKGRlc2NyaXB0aW9uKTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICB9DQogICAgICAgIH0pOw0KICAgICAgICBkb2MuYXBwZW5kQ2hpbGQodGFibGUpOw0KICAgICAgICBkb2MuYXBwZW5kQ2hpbGQodGhpcy5jcmVhdGVIUigpKTsNCiAgICB9DQp9DQpmdW5jdGlvbiBzaG93U2V0dGluZ3MoKSB7DQogICAgY29uc29sZS5sb2coIlNFVFRJTkdTIik7DQogICAgZm9yIChsZXQgaSA9IDA7IGkgPCBzZXR0aW5nc0NhdGVnb3J5Lmxlbmd0aDsgaSsrKSB7DQogICAgICAgIHNldHRpbmdzQ2F0ZWdvcnlbaV0uY3JlYXRlQ2F0ZWdvcnkoKTsNCiAgICB9DQp9DQpmdW5jdGlvbiBzYXZlU2V0dGluZ3MoKSB7DQogICAgY29uc29sZS5sb2coIlNhdmUgU2V0dGluZ3MiKTsNCiAgICB2YXIgY21kID0gInNhdmVTZXR0aW5ncyI7DQogICAgdmFyIGRpdiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb250ZW50X3NldHRpbmdzIik7DQogICAgdmFyIHNldHRpbmdzID0gZGl2LmdldEVsZW1lbnRzQnlDbGFzc05hbWUoImNoYW5nZWQiKTsNCiAgICB2YXIgbmV3U2V0dGluZ3MgPSBuZXcgT2JqZWN0KCk7DQogICAgZm9yIChsZXQgaSA9IDA7IGkgPCBzZXR0aW5ncy5sZW5ndGg7IGkrKykgew0KICAgICAgICB2YXIgbmFtZTsNCiAgICAgICAgdmFyIHZhbHVlOw0KICAgICAgICBzd2l0Y2ggKHNldHRpbmdzW2ldLnRhZ05hbWUpIHsNCiAgICAgICAgICAgIGNhc2UgIklOUFVUIjoNCiAgICAgICAgICAgICAgICBzd2l0Y2ggKHNldHRpbmdzW2ldLnR5cGUpIHsNCiAgICAgICAgICAgICAgICAgICAgY2FzZSAiY2hlY2tib3giOg0KICAgICAgICAgICAgICAgICAgICAgICAgbmFtZSA9IHNldHRpbmdzW2ldLm5hbWU7DQogICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IHNldHRpbmdzW2ldLmNoZWNrZWQ7DQogICAgICAgICAgICAgICAgICAgICAgICBuZXdTZXR0aW5nc1tuYW1lXSA9IHZhbHVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgICAgIGNhc2UgInRleHQiOg0KICAgICAgICAgICAgICAgICAgICAgICAgbmFtZSA9IHNldHRpbmdzW2ldLm5hbWU7DQogICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IHNldHRpbmdzW2ldLnZhbHVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgc3dpdGNoIChuYW1lKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAidXBkYXRlIjoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSB2YWx1ZS5zcGxpdCgiLCIpOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IHZhbHVlLmZpbHRlcihmdW5jdGlvbiAoZSkgeyByZXR1cm4gZTsgfSk7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgImJ1ZmZlci50aW1lb3V0IjoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSBwYXJzZUZsb2F0KHZhbHVlKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgIG5ld1NldHRpbmdzW25hbWVdID0gdmFsdWU7DQogICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJTRUxFQ1QiOg0KICAgICAgICAgICAgICAgIG5hbWUgPSBzZXR0aW5nc1tpXS5uYW1lOw0KICAgICAgICAgICAgICAgIHZhbHVlID0gc2V0dGluZ3NbaV0udmFsdWU7DQogICAgICAgICAgICAgICAgLy8gV2VubiBkZXIgV2VydCBlaW5lIFphaGwgaXN0LCB3aXJkIGRpZXNlciBhbHMgWmFobCBnZXNwZWljaGVydA0KICAgICAgICAgICAgICAgIGlmIChpc05hTih2YWx1ZSkpIHsNCiAgICAgICAgICAgICAgICAgICAgbmV3U2V0dGluZ3NbbmFtZV0gPSB2YWx1ZTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgZWxzZSB7DQogICAgICAgICAgICAgICAgICAgIG5ld1NldHRpbmdzW25hbWVdID0gcGFyc2VJbnQodmFsdWUpOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgfQ0KICAgIH0NCiAgICB2YXIgZGF0YSA9IG5ldyBPYmplY3QoKTsNCiAgICBkYXRhWyJzZXR0aW5ncyJdID0gbmV3U2V0dGluZ3M7DQogICAgdmFyIHNlcnZlciA9IG5ldyBTZXJ2ZXIoY21kKTsNCiAgICBzZXJ2ZXIucmVxdWVzdChkYXRhKTsNCn0NCg==" + webUI["html/img/filter.png"] = "iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAAAXNSR0IArs4c6QAAAAlwSFlzAAAsSwAALEsBpT2WqQAABCRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IlhNUCBDb3JlIDUuNC4wIj4KICAgPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIgogICAgICAgICAgICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgICAgICAgICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyI+CiAgICAgICAgIDx0aWZmOlJlc29sdXRpb25Vbml0PjI8L3RpZmY6UmVzb2x1dGlvblVuaXQ+CiAgICAgICAgIDx0aWZmOkNvbXByZXNzaW9uPjU8L3RpZmY6Q29tcHJlc3Npb24+CiAgICAgICAgIDx0aWZmOlhSZXNvbHV0aW9uPjI4ODwvdGlmZjpYUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6T3JpZW50YXRpb24+MTwvdGlmZjpPcmllbnRhdGlvbj4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+Mjg4PC90aWZmOllSZXNvbHV0aW9uPgogICAgICAgICA8ZXhpZjpQaXhlbFhEaW1lbnNpb24+NTA8L2V4aWY6UGl4ZWxYRGltZW5zaW9uPgogICAgICAgICA8ZXhpZjpDb2xvclNwYWNlPjE8L2V4aWY6Q29sb3JTcGFjZT4KICAgICAgICAgPGV4aWY6UGl4ZWxZRGltZW5zaW9uPjUwPC9leGlmOlBpeGVsWURpbWVuc2lvbj4KICAgICAgICAgPGRjOnN1YmplY3Q+CiAgICAgICAgICAgIDxyZGY6QmFnLz4KICAgICAgICAgPC9kYzpzdWJqZWN0PgogICAgICAgICA8eG1wOk1vZGlmeURhdGU+MjAxOC0wNy0yOFQxOTowNzo2OTwveG1wOk1vZGlmeURhdGU+CiAgICAgICAgIDx4bXA6Q3JlYXRvclRvb2w+UGl4ZWxtYXRvciAzLjM8L3htcDpDcmVhdG9yVG9vbD4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgIDwvcmRmOlJERj4KPC94OnhtcG1ldGE+Cs038OQAAAOISURBVGgF5ZpLSBVRGMfvvfmqCKKiKCqKtE3SQ8haJJm1ctPCZYHrFhXtohcUBLVsU1BRBJKLXpsSKs1aCL1oUUhvMgIloodZKmLZ72+OzNVx7jzOXGfqg/89Z875zv/7f35n7px7vanUP2JptzyGhoYKmK8GW0EZmA/mgW7wHrwDN0BTOp0epPVtxBBnLdgIVoE5YBboBR2gDTTA/5DWn0FeDPaBz8CLdeF0EBR5jYRvKbgABoAXa8Opwit/CudK8NoLs4PPM8ZyBsNnB/jpsD7X0C8cjgDXnaQkqkEPCGMSuGWivxxzx8OQj6xtpHWuPhPloHfEMWzTD0HN2GQY2xuW2Lb+/Fh+VaIQPLE5meh+gmSxFYz+BjBogtjGscfiH26Z2GmbNNltVQAIpwDdP6ZNO2iRYqTpZGhfgWUaiMC2w1kCzkbALcqLvDVvUyK6MW9HFES0b8BvsFwXEZi4F+iBtykCcjtlqf0igr52VJ1eqiIgzzdlrRIZfWfJd3SD8ZbqHvkB4XSDpJNB9V0VcX/cT4Ys/zEzSuSj/3WxW9GpRD7ETpZ/QcOJ6LyfdHugitxNehbob9G7lo4PXWBmQhPqQ/fsDOeUfjqNCU1Csi+TQ5+2luzc3yaRr6elevQZwhZr4bomYam0U41yabYqov5hvSTMjlp6RyuiAarSTLPZmox5246+lVREx/isiuh6NxhUJwF2yEpCWu1bK8WEsjyRgCSa0XrVrjNra2mC7TWD5ilYAuJoA4jSlnppF5dVEU3g0ENTD4b3nsZiZsfGJuGqj8qY+CINGqP2GLZCJ+HjtpblxAJ9k3cPrLfGJrnVUaSCarxw0jFua1lOLNBerANx+byya6IkLM2uLZWpAl6/Mcc1EjvjKtLrJNLqI5HnjfQ+bsVeteb0g2y/t7hGvd7CNjenOL8OkJ40KtOdTF+Cl/nV6Mkf4gxocI9vZPYLLKs9iQrqRIACcM2IXGeSboYrg+rztY5ARaDJWUeo0W+sXudLTFhnApaAW6FkZy/+yuXasLoCrSfwVHAnW0+gK93YawKJMLUIAdNAKwhqnSxcYUpPKB6EBE2mg7VR///EX24jybTQerXnOC70FyVP3gjTPXPTQyaP8NFPNeJrCNTPP667JKOq6VNo/A2hes5ccUjmEmPmDoD5+FMgWCcA+3FG57QJP//kQ1PgGBIOToEDgUn+t4V/AJeGknwARIKLAAAAAElFTkSuQmCC" webUI["html/img/logo_w_600x200.png"] = "iVBORw0KGgoAAAANSUhEUgAAAlgAAADICAYAAAA0n5+2AAAAAXNSR0IArs4c6QAAAAlwSFlzAAAuIwAALiMBeKU/dgAABCZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IlhNUCBDb3JlIDUuNC4wIj4KICAgPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIgogICAgICAgICAgICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgICAgICAgICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyI+CiAgICAgICAgIDx0aWZmOlJlc29sdXRpb25Vbml0PjI8L3RpZmY6UmVzb2x1dGlvblVuaXQ+CiAgICAgICAgIDx0aWZmOkNvbXByZXNzaW9uPjU8L3RpZmY6Q29tcHJlc3Npb24+CiAgICAgICAgIDx0aWZmOlhSZXNvbHV0aW9uPjMwMDwvdGlmZjpYUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6T3JpZW50YXRpb24+MTwvdGlmZjpPcmllbnRhdGlvbj4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+MzAwPC90aWZmOllSZXNvbHV0aW9uPgogICAgICAgICA8ZXhpZjpQaXhlbFhEaW1lbnNpb24+NjAwPC9leGlmOlBpeGVsWERpbWVuc2lvbj4KICAgICAgICAgPGV4aWY6Q29sb3JTcGFjZT4xPC9leGlmOkNvbG9yU3BhY2U+CiAgICAgICAgIDxleGlmOlBpeGVsWURpbWVuc2lvbj4yMDA8L2V4aWY6UGl4ZWxZRGltZW5zaW9uPgogICAg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" - webUI["html/img/BC-QR.jpg"] = "/9j/4AAQSkZJRgABAQAASABIAAD/4QBYRXhpZgAATU0AKgAAAAgAAgESAAMAAAABAAEAAIdpAAQAAAABAAAAJgAAAAAAA6ABAAMAAAABAAEAAKACAAQAAAABAAAAuqADAAQAAAABAAAAugAAAAD/7QA4UGhvdG9zaG9wIDMuMAA4QklNBAQAAAAAAAA4QklNBCUAAAAAABDUHYzZjwCyBOmACZjs+EJ+/8AAEQgAugC6AwERAAIRAQMRAf/EAB8AAAEFAQEBAQEBAAAAAAAAAAABAgMEBQYHCAkKC//EALUQAAIBAwMCBAMFBQQEAAABfQECAwAEEQUSITFBBhNRYQcicRQygZGhCCNCscEVUtHwJDNicoIJChYXGBkaJSYnKCkqNDU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6g4SFhoeIiYqSk5SVlpeYmZqio6Slpqeoqaqys7S1tre4ubrCw8TFxsfIycrS09TV1tfY2drh4uPk5ebn6Onq8fLz9PX29/j5+v/EAB8BAAMBAQEBAQEBAQEAAAAAAAABAgMEBQYHCAkKC//EALURAAIBAgQEAwQHBQQEAAECdwABAgMRBAUhMQYSQVEHYXETIjKBCBRCkaGxwQkjM1LwFWJy0QoWJDThJfEXGBkaJicoKSo1Njc4OTpDREVGR0hJSlNUVVZXWFlaY2RlZmdoaWpzdHV2d3h5eoKDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uLj5OXm5+jp6vLz9PX29/j5+v/bAEMAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAf/bAEMBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAf/dAAQAGP/aAAwDAQACEQMRAD8A/v4oAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgD/0P7+KAP5/wD/AILmf8FzP+HL/wDwy8B+y9/w0mP2k/8AhdmB/wALsPwe/wCEL/4U8fhLn5j8Jfih/b//AAkH/C0fTRP7F/sL/mIjUQtkAfgH/wARzn/WLz/zdb/8k2gA/wCI5z/rF5/5ut/+SbQAf8Rzn/WLz/zdb/8AJNoAP+I5z/rF5/5ut/8Akm0Af08/8EWP+CrP/D4H9lrx9+0uPgMf2ef+EI+Pvin4GjwSPiofi1/aX/CN/Dn4W+Pj4n/4SH/hXXww+xm8PxOGkf2J/Yl19k/sU3/9sv8A2h9isAD3/wD4KiftzH/gmz+wt8cv21B8Lv8Ahc4+C5+Ghb4a/wDCbD4cf8JJ/wALG+MPgD4TjHjFfB/jwaSdJPjv/hISD4X1L7f/AGadNLWH24ahaAHwH/wQz/4Lmf8AD6D/AIahB/Ze/wCGbB+zZ/wpPI/4XYfjD/wmn/C4T8WsfMPhL8L/AOwP+Ef/AOFXemt/21/bv/MOGnFb0A/oAoAKAP5Af+Cov/B1h/w7Z/bq+OX7FZ/YOHxpPwWHwyP/AAsr/hqA/Dk+Iz8Rvg94B+LH/Inf8M7ePf7J/sr/AITv/hHcjxPqAvTp/wDaObEX32GyAPgH/iOc/wCsXn/m63/5JtAH9PP/AARY/wCCrP8Aw+B/Za8fftLj4DH9nn/hCPj74p+Bo8Ej4qH4tf2l/wAI38Ofhb4+Pif/AISH/hXXww+xm8PxOGkf2J/Yl19k/sU3/wDbL/2h9isAD3//AIKiftzH/gmz+wt8cv21B8Lv+Fzj4Ln4aFvhr/wmw+HH/CSf8LG+MPgD4TjHjFfB/jwaSdJPjv8A4SEg+F9S+3/2adNLWH24ahaAH8g//Ec5/wBYvP8Azdb/APJNoA/r7/4bm/41af8ADy3/AIVf/wA2B/8ADc3/AApb/hNTt/5N1/4X/wD8Kv8A+Fj/APCH4zj/AIpH/hOP+EEx/wAx7/hE8/8AEjoA/kE/4jnP+sXn/m63/wCSbQAf8Rzn/WLz/wA3W/8AyTaAD/iOc/6xef8Am63/AOSbQAf8Rzn/AFi8/wDN1v8A8k2gD7+/4Jdf8HWH/Dyb9ur4G/sVj9g4fBY/GkfE0/8ACyv+GoD8Rj4cPw5+D3j74sf8id/wzt4C/tb+1f8AhBP+EdyfE+niyOof2jm+Fj9hvQD+v6gAoA//0f7+KAP4A/8Ag+c/5xef93rf++lUAfv3/wAE9v8Agnx/wS0/4da/sP8Ax0+Of7D/AOwE279gL9mr4s/GL4x/Fn9mn9nb5f8AjHbwZ4w+IHxI+JPxB8YeC1AAA1fxN4x8Y+JtXJ/4/wDXNdv2zeXtAC/8csn/AFgD/wDOd1AB/wAcsn/WAP8A853UAfjF/wAHcn7Ef7GP7Nv/AATc+Cnjn9nX9kb9l74A+NtU/bd+HHhPVPGPwX+APwp+FfinU/C158CP2ldX1DwxfeIPA3g/Q9Vu9Bu9V0PQ9XutGurttOvNR0TTb5rU3lhYlQD6h/4Mqv8AlFj8e/8As/74p/8ArO37K1AH8of/AAWp/wCHzv8Aw0H/AMFGf+Fwf8PPP+HfH/DX3xy/sf8A4WX/AMNXf8Mcf8Ks/wCGltU/4Ub/AGf/AMJR/wAWS/4QH+0v+EB/4VV9n/4kP2//AIRH/hEv9M/sOgD9Pf8Agzc/aw/Za/Zg/wCHjQ/aX/aU+AX7Pf8AwnH/AAx+fBP/AAvL4yfDn4Snxd/wjK/tP/8ACQ/8IuPH/iXQRr39g/2/4dXWxo7Xv9jHXNG+3G1/tCydgD8Zf23P+Cmn/BSHx7/wUi/a68D/ALKf/BQT9t3xl4K8Zftu/H7wn+zd4N/Z6/at+PHiLwt4t8LeI/jx4o0f4PeGPgf4f+G/ju80rXdC13Sbvw5pXw20jwJZ3enalYXmhWHhSyezewRwDd/46m/+s/n/AJ0RoA/u3/4I1f8ABPj4W/HH/gm5+zf8Uf8Agp3+xB8PvjB+3J4n/wCFv/8AC7/iL+3p+zX4d+IP7VviI6N8d/ihoHw3X4reLv2hfBmq/GLVRpXwe0vwHofgX/hML+6+wfDjT/CGn6AI/CtjoaUAf5V/wV/Z++Pf7SXirUPAv7OfwO+L/wAf/G2l+HrzxXqng74L/DXxl8U/FWneFrO/0vSL/wAU3/h/wNouu6raaFZ6tr+jaTdaxd2f9n2eoa1pli12t5f2SsAf6eX/AAaN/s+fH39m3/gm98avA37RXwP+LvwA8bar+298RvFel+DfjT8NvGXwr8Vap4Vu/gP+zVo9j4nsfD/jnRNC1W70G91XQ9a0q11m2szp13qOi6jYpeC8sL1VAP248WftA/8ABN/9qbxX4k/Yk8c/HL9iH9ovxtrXiDV/CfjL9kTxZ8SvgP8AF7xXrPir4Tahc+KfEPhjxP8AALWNb8QarqOv/DfVvA194m1jRtV8Itf+C9Q8I3euX1lp15oD3lgAY/8Aw6e/4JZ/9I1P2Av/ABDr9nb/AOdvQBzP/BTTwn4X8B/8EjP+CgngTwN4a0LwX4I8Gf8ABOX9q7wl4O8HeE9H07w14V8K+FfDf7M/jzRfDvhjwx4f0a0tdK0Lw9oel2tnpGi6NpNnZ2FhYWVnY2NnFZRolAH+eX/waN/s+fAL9pL/AIKRfGrwN+0V8D/hF8fvBOlfsQ/EXxXpfg340/Dbwb8VPCul+KrT48fs1aPY+J7Hw/450TXdJtNes9K1zWtKtdZtrMajZ6drWo2KXhs7+9VgD+5b4o/Cf/g2++B/jnXPhb8avht/wRE+EPxN8LjTR4n+HfxR8IfsIeAPHfhsa1pGm+IdF/t7wj4q03SvEGk/2poGq6PrWlC/sLQXuj6lp2o2O+yvrN2AOC/45ZP+sAf/AJzuoA+nPgr+xF/wQ5/aT8K6h46/Zz/ZH/4JSfH/AME6X4gvfCepeMfgv8A/2Qfin4V0zxVZ6fpOr33he+8Q+BvCGvaVZ69aaVruj6vd6PdXYv7Sw1vTL6SzFnfWTMAfwm/8EqvCfhPwB/wd6eIfA3gbw34f8F+CfBf7b3/BUbwn4O8HeEtGsPDvhXwp4W8OfDj9r3SfD/hjwzoGj21ppWgaFoOlWdnpGkaNpNnZ2Gn6daWdhY2UVmqKoB/qLUAFAH//0v7+KAP4A/8Ag+c/5xef93rf++lUAfv5/wA6sn/eAP8A+B3UAf5A9ABQB/p+f8Hqv/KLH4Cf9n/fCz/1nb9qmgA/4Mqv+UWPx7/7P++Kf/rO37K1AH5Bf8F9P+Dj4ftEfDz/AIKDf8Elj+xt/wAIePD3x/1f4F/8L/P7Q518Xn/DL/7U+g6z/wAJSfhUPghof2b/AITo/CT7J/Y3/CxpP+EX/t8v/bXiAabsvwD8gP8Aghn/AMEM/wDh9B/w1CT+1D/wzYf2bP8AhSfP/Ckx8Yf+E0/4XCPizj5R8Wfhf/YH/CPj4Xeut/21/bv/ADDjpxa/APA/2TvgYP2X/wDgvh+zT+zSPFX/AAnA/Z4/4K+fBz4Gf8Jt/Yn/AAjf/CXn4S/tneH/AAAPFH/COnU9e/sA6/8A2AdX/sca5rv9jm8Ww/trUDF9tlAP9nSgD+QH/gqL/wAHWH/Dtn9ur45fsVn9g4fGk/BYfDI/8LK/4agPw5PiM/Eb4PeAfix/yJ3/AAzt49/sn+yv+E7/AOEdyPE+oC9On/2jmxF99hsgD+Ij/gix/wAFWf8Ahz9+1L4+/aXHwG/4aG/4Tf4BeKfgaPBI+Kg+Ev8AZv8AwknxG+Fvj4+J/wDhIf8AhXXxP+2fYx8MRpH9if2Ja/a/7aN//bKf2f8AYr8A/p5/4jnP+sXn/m63/wCSbQAf8MNf8O8v+OtP/haH/C4P+Fgf8Zy/8MA/8IV/wr/+x/8Ah57/AMUd/wAKv/4ap/4S3xp9r/4Ul/w1n/a3/Ccf8M22X/Cx/wDhXn2L/hFPAf8Awln23w8AH/Ec5/1i8/8AN1v/AMk2gD+nj9rH45n9qD/ggf8AtLftLHwr/wAIOf2h/wDgkH8Y/jmPBP8Abf8Awkh8ID4tfsZeIPH58L/8JGNM0H+3/wCwP7fGkf2w2h6F/bAs2vzouniUWUQB/ET/AMGVP/KUz49/9mA/FT/1on9lSgD4A/4Oj/8AlOt+3J9P2Zv/AFj39n6gD8AKAP8AT8/4Mqv+UWPx7/7P++Kf/rO37K1AH4A/8E1P+VyT4i/9n/f8FYv/AFB/2yaAP9PqgAoA/9P+/igD+AP/AIPnP+cXn/d63/vpVAH7+f8AOrJ/3gD/APgd1AH+QPQAUAf6fn/B6r/yix+An/Z/3ws/9Z2/apoAP+DKr/lFj8e/+z/vin/6zt+ytQB+nXxY/wCDcj/gjN8cPit8SfjT8Uf2OB4n+Jvxf8f+Mvij8RfEg/aC/ap0f/hIfHfxA8Q6l4v8X6+dG8PfG7S/D2l/2p4g1W/v/wCytH0rTdFsPtf2LTtOs7BbSzQA/nF/4Ll/8c2P/DL3/DlX/jDD/hs7/hdf/DSu7/jIn/hZP/DOv/Cpf+FN/wDJ2H/C+P8AhDv+EN/4Xt8VMf8ACBf8Ip/b/wDwlX/FV/27/YXh7+wwD9AP+HXX7Cv/AA61/wCH1P8Awo0f8PM/+GAv+Hof/DS3/CzfjBj/AIbp/wCGd/8Ahq//AIXn/wAKf/4WF/woDH/DQP8AxXv/AArX/hVn/Cntv/FJ/wDCAf8ACC/8U9QB8ff8Gwv/AAWV/wCCkf8AwUQ/b5+LfwX/AGxP2jz8YPhl4Z/ZD8efFHQPDf8Awp74D+ADY+O9G+M/7P8A4Q03Xv7Y+Fvwu8F6/c/ZfD/jXxLZnSrvVbrQ5DqH22809r+w0+9sgD+cP/g6P/5TrftyfT9mb/1j39n6gD9v/wDg56/4I1f8E3P+Cd/7A3wk+NH7Hf7OA+D/AMTfE37XngP4Xa/4k/4XD8ePH4vvAms/Bj9oDxfqWg/2P8Uvij400C2+1eIPBXhq8Gq2mlWuuRjT/sVnqC2F/qFlegB/wbC/8Eav+Cbn/BRD9gb4t/Gj9sT9nAfGD4m+Gf2vPHnwu0DxJ/wuH48eABY+BNG+DH7P/i/TdB/sf4W/FHwXoFz9l8QeNfEt4dVu9KutckGofYrzUGsLDT7KyAP7dfiT+wZ+yl8YP2ONM/4J/fEb4UHxD+yPo/gD4TfC+w+Ew8d/EbSVt/AnwOvvBuo/C/Qv+E90PxjpnxOn/wCEXu/AfhG4XVbnxlJrOtnRseIL7UlvtRF+Af55X/B1h/wS6/YU/wCCbX/DB3/DFXwNHwW/4XQP2oT8Ss/E34wfEb/hJP8AhXX/AAzr/wAIcD/wtj4h+OxpJ0f/AIT3xZk+HRpx1D+0f+JkL37BY/YgD+vr/nVk/wC8Af8A8DuoA/kF/wCDKn/lKZ8e/wDswH4qf+tE/sqUAfAH/B0f/wAp1v25Pp+zN/6x7+z9QB+AFAH+n5/wZVf8osfj3/2f98U//Wdv2VqAPwB/4Jqf8rknxF/7P+/4Kxf+oP8Atk0Af6fVABQB/9T+/igD+AP/AIPnP+cXn/d63/vpVAHsH7Ef/B3J/wAE3f2bv2MP2Rv2dfHHwV/be1Txr8Af2XvgD8FvGWp+FPhz8B7vwrqfin4V/Crwp4G8QX/he+1j9pTQ9VvNBu9V0O8utGutV0XRdRu9Paze+06xvWawQA+oP+I1X/glj/0QX9v7/wANX+zt/wDRVUAH/Ear/wAEsf8Aogv7f3/hq/2dv/oqqAPwh/4OEf8Ag4S/Yx/4KzfsY/DP9nX9nT4Z/tOeCvGngz9p3wX8atV1T41+C/hR4a8LT+FvDXwn+Nfgi+0/Tr7wN8bPiNqtx4gk1X4j6LdWdnc6NZWDWNpqTPqSXaWdnfgH7vf8GVX/ACix+Pf/AGf98U//AFnb9lagD8Af+Can/K5J8Rf+z/v+CsX/AKg/7ZNAH39/wfOf84vP+71v/fSqAP6mP2IvjV4V/Zs/4IdfskftF+OrDxDqvgn4Af8ABKP4B/GjxjpnhOz0+88Uan4V+Ff7IXhTx14gsfC9hrOqaFpN5rt5pOhXlro1pq+saJYXd+1nHf6np9mTfIAeAf8ABML/AIOFf2Mf+Csnx88Xfs7fs6fDH9p/wZ418G/CLXPjPqeqfGfwV8KvDvhifwt4d8ZeAfA19Y2N74G+NfxH1SfXDqvxH0a7trW60ay0/wDs+01J21Jb2Oysr8A8h/bz/wCDnv8AYI/4J4ftYfFf9jz41fCL9r7xL8Tvg+PA/wDwkeu/C/wF8GNY8C3o8f8Aw28IfFLRhoGo+Lf2gPA3iC6FtoHjLSbPVPt3hqwC61a39nZ/bbJbK/uwD8Bv2K/2K/in/wAGnXxS1z/gon/wUS174ffGX4K/GfwDqn7FXhnwx+xZqviH4jfFSw+KXxH1/wAL/HHRtf1/R/jp4W/Zv8HWngC08L/s5eN7HV9WsvG+s6/aa/qHhWxtPCl9p19rOt6GAf2Mf8Ewv+CnnwE/4KxfAbxf+0V+zp4R+Lvg7wR4M+LmufBjU9M+NGh+DPDviq48V+HfBvgLxxqF7Y2Hgb4g/EbSZtBbSviNolraXV1rVlqH9o2epo2mLZR2N7dgH8E//BNT/lck+Iv/AGf9/wAFYv8A1B/2yaAPv7/g+c/5xef93rf++lUAfv5/zqyf94A//gd1AH+fV/wb1f8ABT34Bf8ABJ79s34nftF/tF+E/i94x8FeMf2YPG3wX0rTPgxoXgzxD4pi8U+I/ir8FPHNjqGoWPjr4hfDnS4NCXSvhzq9rdXVprN5qA1C90yNNNlsmvb2wAP7Gf8AiNV/4JY/9EF/b+/8NX+zt/8ARVUAH/Ear/wSx/6IL+39/wCGr/Z2/wDoqqAD/iNV/wCCWP8A0QX9v7/w1f7O3/0VVAH80f8AwRR+NfhX9pT/AIOoPC/7RfgWw17SvBPx8/af/wCCifxr8HaV4stNOsfFeneFfip8Ev2qfG2gaf4msNH1PX9KtdftNK16zttZtdJ1vW9Osr5L0WF/qFiiXrAH+qxQAUAf/9X+/igD8ff+CrH/AARY/Zb/AOCwH/Chv+GlvHnx98D/APDPB+KY8E/8KN8VfDrw1/aQ+LR+HY8Rf8JP/wAJ/wDCX4nm7Nl/wrLw8dFOkf2J9j+2619v/tASWQsgD8hf+IKr/glj/wBF6/b+/wDDqfs7f/Qq0AH/ABBVf8Esf+i9ft/f+HU/Z2/+hVoAP+IKr/glj/0Xr9v7/wAOp+zt/wDQq0AH/EFV/wAEsf8AovX7f3/h1P2dv/oVaAP3a/4Jhf8ABMP4Cf8ABJ34DeL/ANnX9nTxd8XfGPgjxn8XNc+M+p6n8aNc8GeIvFVv4r8ReDfAXgfULKxv/A3w++HOkw6CulfDnRLq0tbrRb3UP7RvNTdtTayksbK0APj74H/8G937GPwB/wCClmt/8FTPBvxN/ad1L9oPXvi/+0H8abvwd4j8Z/Ci7+DkXir9pPSPibo/jjT7fQNM+CuieNU0DS7b4o+Im8J2x+Ib6hY3VloR1vU9dWzvk1AA9h/4Ksf8EWP2W/8AgsB/wob/AIaW8efH3wP/AMM8H4pjwT/wo3xV8OvDX9pD4tH4djxF/wAJP/wn/wAJfiebs2X/AArLw8dFOkf2J9j+2619v/tASWQsgDe/bd+CvhX9mz/gh1+1v+zp4Fv/ABDqvgn4Af8ABKP4+fBfwdqfiy80+88Uan4V+Ff7IXivwL4fvvFF/o2l6FpN5rt5pOhWd1rN3pGj6JYXd+15JYaZp9mRYoAfw0/8GVP/AClM+Pf/AGYD8VP/AFon9lSgD+rn9vP/AINhP2CP+Ch/7WHxX/bD+NXxd/a+8NfE74wDwP8A8JHoXwv8e/BjR/AtkPAHw28IfC3RjoGneLf2f/HPiC1FzoHg3SbzVPt3iW/Da1dX95Z/YrJrKwtAD+Cv/gp7/wAHCv7Z3/BWT4B+Ef2dv2i/hj+zB4M8FeDfi7ofxn0zVPgx4K+Kvh3xPP4p8O+DfH3gaxsb698c/Gv4j6XPoZ0r4j6zd3Nra6NZah/aFpprrqS2Ud7ZX4B/Yz/wZVf8osfj3/2f98U//Wdv2VqAP0Z+B/8Awb3fsY/AH/gpZrf/AAVM8G/E39p3Uv2g9e+L/wC0H8abvwd4j8Z/Ci7+DkXir9pPSPibo/jjT7fQNM+CuieNU0DS7b4o+Im8J2x+Ib6hY3VloR1vU9dWzvk1AA/nm/4PnP8AnF5/3et/76VQB/Ux+xF8FfCv7Sf/AAQ6/ZI/Z08dX/iHSvBPx/8A+CUfwD+C/jHU/Cd5p9n4o0zwr8VP2QvCngXxBfeF7/WdL13SbPXbPSddvLrRrvV9H1uwtL9bOS/0zULMGxcA/Gf/AIgqv+CWP/Rev2/v/Dqfs7f/AEKtAB/xBVf8Esf+i9ft/f8Ah1P2dv8A6FWgA/4gqv8Aglj/ANF6/b+/8Op+zt/9CrQAf8QVX/BLH/ovX7f3/h1P2dv/AKFWgD67/YM/4NhP2CP+CeH7WHwo/bD+Cvxd/a+8S/E74Pjxx/wjmhfFDx78GNY8C3o8f/Dbxf8AC3WTr+neEv2f/A3iC6FtoHjLVrzS/sPiWwC61a2F5efbbJb2wuwD+kGgAoA//9b+/igD+IL/AIPIv2sP2pf2YP8Ah3KP2aP2lPj7+z2fHB/bA/4Tb/hRvxk+I3wkHi7/AIRlv2YP+Ed/4Sj/AIQDxLoP9vf2D/b3iJdE/tg3v9jDXNZ+w/Zf7QvWYA/jJ+FP/BQ7/gsL8cfin8Nfgp8Lv+Chn7fvif4n/F34geD/AIX/AA68ND9tj43aN/wknjv4g+IdM8I+ENB/trxB8V9J0LShq2u6tZWf9ra3rOn6LYm8+16jfWNmt1eoAfXn7c2t/wDBxp/wTX/4Ve37av7XH7fnwWb40Hxufhp/xsS8UfEf/hI/+Fcf8IefGH/JJ/2iPHY0kaT/AMJ34TX/AIqFtO/tAaj/AMS3+0BY6ibIA/P/AP4ex/8ABUz/AKSWft//APiYv7RP/wA8igD/AFFf+DhH4Hf8FK/j9+xn8MfB3/BLLW/i/oX7QemftPeDPEnjG8+C37QWkfs2+Kpfg3a/Cn41aV4gttR8c6z8SfhbbanoB8aa58O2ufCS+Ir27vr9dM1oaJdLoLX1gAf51n7avxs/4L9f8E8PinoXwW/bG/bU/b9+EPxM8TeANK+J+h+GR+3/APEDx/8AbPAus+IPFPhHT9fGsfC347eNNAtzda94L8S2f9lXur2utp/Zwvr3T1sL2xu70A+gPiV4J/4Ob/g/+xzpv/BQD4i/tN/t/eHP2RtZ8AfCf4n6f8Wm/wCCk2o6v5/gX443/g+x+Fuv/wDCBeH/ANpbVPibbjxRd+PfCFodLuvBya3ov9s7tf0/TEsdQayAPPf2Gdb/AODjT/gpR/wtBv2Kv2uP2/PjS3wXPgg/Ev8A42JeKPhx/wAI5/wsf/hMD4P/AOSsftEeBBqw1b/hBPFi/wDFPNqP9njTv+Jl/Z4vtON6Af6SXi34EftQeP8A/ghx4j/Zk8daZ4g8aftneM/+CUus/Anxlo3iz4gaB4k8U+LP2nvEf7IV18PvEGmeJ/ihrPie68L67r2vfFa6u7TWvH2reM7zQtR1G8vPEV74qbTnfWWAP5p/+DYX/gjV/wAFI/8Agnf+3z8W/jR+2J+zgfg/8MvE37Ifjz4XaB4k/wCFw/Afx+b7x3rPxn/Z/wDF+m6D/Y/wt+KPjTX7b7V4f8FeJbw6rd6Va6HGdP8AsV5qC39/p9legH5Cf8HG/wDwUI/b3+B//BZj9sn4X/Bb9uH9r74P/DPwx/wz5/wjXw6+F37Svxn+H/gTw+NZ/ZY+COv6x/wj/hDwj400rQNKOqa/qmr6zq32GxtPt+t6jqGpXxa9vbt6APyD/bU/4I1f8FJP+Cd3wt0L40/th/s4f8Kf+GPiXx9pvwv0LxI3xf8AgN8Qje+Oda8PeKPFumaD/Y/ww+KPjbX7b7RoHgvxHfnVrrSLPRY/7P8AsV1fJfX2nWV6AfMfwW/bZ/bO/Zq8LXvgb9nX9rv9p74B+CdW1668Xap4N+Cfx9+K/wALPCuo+Kb3TtM0bUPE2oeHvA/i7QdKuvEF3pWhaHpV7rN1aPqF3YaLp1g121pp9kigH+zT/wAEy/Fvivx9/wAE3v8Agn3468deJfEHjPxr4z/Yh/ZR8XeMvGXi7WtQ8R+KvFfinxF8B/AWr6/4n8T6/q91eatr+ua/q15eavrGsare3eoajqF3eX19ePeOzOAfx1f8Hzn/ADi8/wC71v8A30qgD+cX/gk9/wAFB/2+f+G+P+CavwL/AOG3/wBrz/hSf/DXv7HPwo/4U5/w0r8Zx8LR8LP+Fz/Dnwh/wrf/AIV9/wAJn/wh/wDwgf8Awiv/ABTP/CHf2P8A2D/YP/Ej/s/7AfsdAH9y/wDwdyftB/H39m3/AIJvfBXxz+zr8cPi78APG2q/tvfDnwpqnjL4LfEnxl8K/FWqeFbv4D/tK6xfeGL7xB4G1vQtVu9BvdV0PRdVutGubw6dd6jounXz2YvLCyZQD5g/4I1f8HH3/BPP4Pf8E3P2bvh1/wAFAf29fiBq/wC114eHxf8A+Fs6j8T/AIf/ALWvxy8dzrrPx2+KHiDwCdf+KFh8LfHtr4oNv8MtU8HWulfZfGGsjRNGXT9Ac2T6Y+n2AB4B/wAEav2IP+Dlb4Pf8FJP2b/iN/wUC8Z/te6t+yP4fPxe/wCFtWHxP/4KDeFfjj4GuDrHwI+KGgeAF1/4Yaf+0v49uvFIt/ibqXg270n7J4R1n+xNb/s/XyNPTTG1GwAPmH/g7k/bc/bO/Zt/4KR/BTwN+zr+1z+1D8AfBOqfsRfDjxZqng74L/H74rfCvwtqfim8+O/7Sukah4nvvD/gbxhoelXevXelaHoekXWs3Vo2o3mnaJpti10bOwsQoB/Rx/wSD/4LifsC/tN/CT9gz9jq0/ay8QfFf9u3Xv2X/hX4b+IPhfxZ8Of2ibvxT4k+Mvww/Z6svFHxxuPE3xe8a/DeDwZ4h8QWtz4O8eazq/i688e6haeK7+xvbzT9d1y/1Sy/tIA/ojoAKAP/1/7+KAP4A/8Ag+c/5xef93rf++lUAfxFfsofHRf2X/2o/wBmn9pU+Fv+E4/4Z4+PvwY+Of8AwhP9u/8ACNjxg3wl+Ivh/wAfnwv/AG+NK18+Hzr/APYH9kf20dF1saP9ta/Oi6jsFkwB+vP/AAXM/wCC5n/D6D/hl4D9l7/hmw/s2f8AC7OP+F2D4w/8Jp/wuEfCbPzH4TfC/wDsD/hHx8LvTW/7a/t3/mHHTgt+Aff/APwS7/4NTx/wUm/YV+Bv7ag/by/4UuPjQfiaP+Faj9mD/hYo8Nj4dfGHx/8ACb/kcP8AhonwH/ax1X/hBP8AhIsf8I1YfYv7RGm/6d9h/tC9AP7dv+C0/wDwVZ/4c/fsteAf2lz8Bj+0N/wm/wAffC3wNPgk/FQ/CX+zf+Ek+HPxS8fDxP8A8JD/AMK6+J/2w2Z+GJ0j+xP7Etftf9tC/wD7ZT+z/sV+Af5hv/Baf/gqz/w+B/al8A/tLn4Df8M8/wDCEfALwt8DT4JPxUHxa/tL/hG/iN8UvHw8T/8ACQ/8K6+GH2P7YPicdI/sT+xLr7J/Yov/AO2X/tD7FYAH39+0p/wcfD9of/gjh4a/4JKn9jb/AIRAeHvgF+yf8C/+F/n9of8At77Z/wAMv698G9Z/4Sn/AIVSPgjoP2YeOf8AhUv2X+xT8R3/AOEXGvbv7c8Qf2aUvwD9e/8Agxj/AOcof/dlP/v2tAH0B+1f/wAHkf8AwzB+1L+0t+zX/wAO5j45/wCGd/j98ZPgX/wmo/a+PhoeMP8AhUvxG8QeAf8AhJz4f/4Zg1/+wT4g/sD+1/7G/tvXDov2wWH9tajtN64B8/8A/Ec5/wBYvP8Azdb/APJNoA/kJ/4Ki/tzD/gpN+3V8cf21R8Lj8GD8aB8NC3w2PjZviP/AMI1/wAK5+D/AIB+E4/4rFfB/gP+1v7XHgT/AISIg+F9O/s86h/ZxOofYRf3YB+vf/Baj/g4+/4fAfss+Av2av8AhjUfs8/8IP8AH3wt8cx41/4aIHxaOqf8I38Ovij4C/4Rj/hHh8EPhitm10fif/bH9sjW7w2f9if2edEf7d9vsgA/4Ir/APBuD/w+A/ZZ8e/tK/8ADZQ/Z5/4Qf4++KfgYfBX/DO4+LR1T/hG/h18LvHv/CT/APCQn43/AAxWza6PxP8A7H/sY6JeGz/sT+0Brb/bvsFkAf08/wDBLv8A4LlnR/26fgf/AMG/w/ZgFz/wyz/wsz9hr/hrI/GryP8AhOv+GBfhB4+8M/8ACzz8B/8AhU7jwv8A8LY/4UL9s/4QYfGPX/8AhBz4t+yf8Jb4uGhG814A+/v+C5n/AAQz/wCH0H/DLxH7UP8AwzYP2bP+F2YP/Ckz8Yf+E0/4XCfhLn5T8Wvhf/YH/CP/APCrvXW/7a/t3/mHDTg16Af5xf7J3wMH7L//AAXw/Zp/ZpHir/hOB+zx/wAFfPg58DP+E2/sT/hG/wDhLz8Jf2zvD/gAeKP+EdOp69/YB1/+wDq/9jjXNd/sc3i2H9tagYvtsoB/bx/weq/8osfgJ/2f98LP/Wdv2qaAP8wOgD+/z/iOc/6xef8Am63/AOSbQAf8MN/8RgX/ABss/wCFo/8ADvH/AIUj/wAYNf8AClv+EJ/4az/4Sn/hWf8Axf7/AIWh/wALG/4S/wDZq/sT+3P+Gmf+ER/4Qf8A4QPW/wCzv+EH/t3/AISu/wD+Eg/sXQAD7+/4Jdf8Gp//AA7Z/bq+Bv7ag/bxHxpPwWHxNH/Ctf8Ahl8/Dk+Iz8Rvg94++E//ACOP/DRPj3+yf7K/4Tv/AISLB8MagL06f/Z2LEX326yAP6/qACgD/9D+/igD+IL/AIPIv2T/ANqX9p//AIdyn9mj9mv4+/tCHwOf2wP+E2/4Ub8G/iN8Wx4R/wCEmb9mD/hHf+Eo/wCEA8Na9/YP9vf2D4ibRP7YFl/bI0PWfsP2r+z71VAP4a/Fv/BMv/gpD4B8KeJfHXjv/gn3+294M8FeDPD+teLvGXjLxd+yj8ePDvhbwp4V8Oafdav4g8T+J9f1fwBZ6ToGh6BpNpeatrGr6teWmn6dp9neX19epZq7oAfDFAH+vz/wa4f8oKf2G/r+0z/62F+0DQB+nX7an/DAn/CrtD/4eK/8Mg/8KT/4WBpP/CM/8Nq/8KZ/4VX/AMLT/wCEe8V/2L/wj/8AwvL/AIpT/hPv+EU/4Tr+yvsP/FQf2B/wlf2H/iXf2zQB/nV/8HCP7EfhT9pX9s/4ZeOf+CMH7JGgfHz9lzS/2YvBXhLx54x/4Jg/APTfin8A9O+Plj8VfjbrHinw14u1/wDZR8I658O7X4wWfw7134V6t4i0bWLxfG9p4J1vwHfahY/2FqHh53APvv8A4KFeEv8AgkZ4D/4N0rDwJ4X8Of8ABOTwX/wU78GfswfsJeE/iN4N0LRf2ZvDf7eHhT4++GvHv7OWjftLeGPG+gafbWf7QGhfGHQDafErSPjdo2t2dn43sDaeO7Lx5ar5WvIgB/JR+wz/AMPTP+Lof8O0v+G/f+ZK/wCF0/8ADDP/AA0V1x4w/wCFcf8AC0P+FA89f+E8/wCEG/4S7v8A8Jb/AGD8v9tUAdH+xH4T8VePP+Cuf7I3gb9q3w1r3jTxv40/4KN/ALwn+0l4O/aG0fUPEninxT4p8RftM+FNH+L/AIY+N/h/4j29zquu+Ide1S68R6P8StF8eWN7fX9/e63Y+K7R7yS/RgD/AFbvjV+xF/wQ5/Zs8K6f46/aM/ZH/wCCUnwA8E6p4gsvCem+MfjR8A/2QfhZ4V1PxVeafq2r2Phex8Q+OfCGg6Vea9d6VoWsavaaPa3Zv7uw0TU76OzNnY3rKAf5dv8AwXo/4ZY/4ew/tV/8MVf8KB/4Zn/4sb/wrT/hl3/hXf8AwojH/DN3we/4TH/hB/8AhU//ABQWP+E+/wCEt/4ST/hHuf8AhLv7d/tH/idf2lQB+cnwV/Z++Pf7SXirUPAv7OfwO+L/AMf/ABtpfh688V6p4O+C/wANfGXxT8Vad4Ws7/S9Iv8AxTf+H/A2i67qtpoVnq2v6NpN1rF3Z/2fZ6hrWmWLXa3l/ZKwB/p5f8Gjf7Pnx9/Zt/4JvfGrwN+0V8D/AIu/ADxtqv7b3xG8V6X4N+NPw28ZfCvxVqnhW7+A/wCzVo9j4nsfD/jnRNC1W70G91XQ9a0q11m2szp13qOi6jYpeC8sL1VAP4iv+Cmn7Pv/AAUh/Za/4KQf8FBf22vBHwN/be/Z08FaL+29+1f4t8Hftd+FPhr8dvhD4V0fwv8AFn48ePPC3h/xN4Y+PujaHoGk6boXxI0rxzZeGdI1nSvFq2HjTT/F1rodjeahZ+IEs78A8f8AgX+1h/wXx/agHik/s0ftL/8ABXr9of8A4QYaIfG3/CjPjH+2b8Wh4QPiT+1v+Ee/4Sf/AIQDxJrx0Ftf/sHWzorasLP+2W0PWvsH2r+zr7YAf6Gf/Dvb4Xf8OYv+F6f8MQ/D/wD4ejf8Owv+Fs/8Lj/4Zr8O/wDDfX/DfP8Awyf/AMJb/wALH/4WB/whX/DQn/DXn/DQn/FUf8Jh/a//AAub/hcv/E9/tD/hOv8ATaAPwk/4N7v2e/8AgpD+0r+2d8TfAv8AwWf+B37b/wAfP2XdK/Zh8Z+LPAng7/gp98Nfjt8U/gJpvx9sfit8E9H8L+JvCOgftXaHrvw6tPjBa/DvXfinpPh3WdItF8a2vgnWvHun6feroWoeIY5QD+x3/h09/wAEs/8ApGp+wF/4h1+zt/8AO3oA/wA0f/gjV/wT4+KXwO/4KR/s3/FH/gp3+xB8Qfg/+w34Y/4W/wD8Lv8AiL+3p+zX4i+H37KXh0az8CPihoHw3X4reLv2hfBmlfB3Sjqvxh1TwHofgX/hML+1+3/EfUPCGn6AJPFV9oaUAfp7/wAFqP8AhqX/AIak8Bf8Q6v/AAvz/hiX/hQXhb/hZ/8Aw5Y/4WN/wyx/w1P/AMLG+KP/AAm3/Cff8MMf8Wm/4aB/4VP/AMKS/wCEm/4SL/i4v/Cuf+FUf2j/AMU9/wAIjQB/dr/wT3/4Wl/wwL+xB/wvT/hYP/C7P+GQ/wBmv/hcX/C2f+Eh/wCFpf8AC1P+FMeDP+Fg/wDCx/8AhMP+Kq/4Tz/hK/7Y/wCEw/4Sb/ioP+Eg/tD+3P8AiYfbaAPsWgAoA//R/v4oAKAP4wf+CsP/AAc+/sEf8Kr/AOClf/BOo/Cb9rw/Gz/hAf2xv2KT4oHgD4Lj4WH4pDw98Rvgede/tn/hoH/hMB4CPir/AE3+2f8AhBf7fGg/6afCLaiP7HoA/jH/AOCU/wDwRY/ak/4LAf8AC+f+GafHnwC8D/8ADPH/AAqweNv+F5eKviL4a/tI/FofEQeHf+EY/wCEA+EvxPF2LL/hWXiE60dX/sT7H9t0X7B/aBkvRZAH9fH7Lv8AwWn/AGXP+DeD4F+Bv+CO/wC2p4C+PvxN/aX/AGQT4k/4WX44/Zc8LfDjxp8CtcHx+8Ya7+1B4O/4QfxR8V/ix8EvHuqf2d4B+NnhPSPEo8Q/DHwqbHxZY69p+nHXdDstP8Qa0Afs3/wcK/8ABML4+/8ABWH9jL4Yfs6fs6eLfhD4O8a+Dv2n/BPxo1XU/jPrvjPw94Vl8LeHPhV8a/A19p+n33gX4ffEbVJ9dfVPiNo91bWt3o1np50+y1KR9SjvVsrK9AD/AIN6v+CYXx9/4JPfsZfE/wDZ0/aL8W/CHxj418Y/tP8Ajb40aVqfwY13xn4h8KxeFvEfwq+Cngax0/UL7x18PvhzqkGupqnw51i6ubW00a808afe6bImpSXrXtlZAH8ZX/Bc/wD4N7/2zfgHr/8AwUO/4KneM/ib+zDqX7Puv/tPfEP41Wng7w340+Kt38ZIvC37Sn7TyaP4G0648P6r8FdD8GDXtMufin4ebxbbr8RGsLC1stdOjajrzWlgl+AeP/8ABuD/AMFqP2Wf+CQH/DZQ/aU8A/H3xuf2hv8Ahnf/AIQv/hRvhb4c+Jv7N/4VJ/wvT/hIR4mHj74r/C77Gbz/AIWb4fGjf2R/bgvPsetf2gdP2WJvwD79/wCHLP7U3/DUn/ERX/wn3wB/4Yl/4X9/w+n/AOFYf8JR8RP+GqP+GWf+Fj/8Nzf8IF/whX/CqP8AhU//AA0B/wAKm/4p3/hGf+F3f8K6/wCFh/8AEl/4Wv8A8It/xVdAHkH/AAcI/wDBwl+xj/wVm/Yx+Gf7Ov7Onwz/AGnPBXjTwZ+074L+NWq6p8a/Bfwo8NeFp/C3hr4T/GvwRfafp194G+NnxG1W48QSar8R9FurOzudGsrBrG01Jn1JLtLOzvwD4i/YM/4NhP29/wDgof8Asn/Cj9sP4K/F39kHw18MfjAfHH/COaF8UPHvxn0fx1ZHwB8SfF/wt1k6/p3hL9n/AMc+H7U3Ov8Ag3VrzS/sPiW/LaLdWF5efYr1r2wtADyH/g3q/wCCnvwC/wCCT37ZvxO/aL/aL8J/F7xj4K8Y/sweNvgvpWmfBjQvBniHxTF4p8R/FX4KeObHUNQsfHXxC+HOlwaEulfDnV7W6urTWbzUBqF7pkaabLZNe3tgAf2M/wDEar/wSx/6IL+39/4av9nb/wCiqoA+ff2ov+C0/wCy5/wcP/Avxz/wR3/Yr8BfH34ZftL/ALXx8N/8K08cftR+Fvhx4L+BWhj4A+MNC/ag8Y/8Jx4o+FHxY+Nvj3S/7R8A/BPxZpHhoeHvhj4qN94svtB0/UToWh3uoeINFAPAf2G/+OP7/haP/Dyv/i93/Dw3/hCP+FMf8MNf8XM/4Rf/AIZL/wCEv/4WR/ws/wD4X9/wzJ/YX9uf8NK+BP8AhBf+ER/4Tj+0f7G8Wf29/wAI/wD2fon9vAH6Af8AEar/AMEsf+iC/t/f+Gr/AGdv/oqqAD/iNV/4JY/9EF/b+/8ADV/s7f8A0VVAB/xGq/8ABLH/AKIL+39/4av9nb/6KqgD8wP+Cy//AAc9fsD/APBRD/gm5+0f+x38FvhJ+154X+JvxgX4Qf8ACN6/8UfAfwY0bwJZDwB8dvhb8U9YGval4R/aA8c+ILX7ToPg3VrLSvsXhq+Da3dadZ3v2Gxa91G0AP0//wCDKr/lFj8e/wDs/wC+Kf8A6zt+ytQB+jPwP/4OEf2Mfj9/wUs1v/gln4N+GX7Tum/tB6D8X/2g/gtd+MfEfgz4UWnwcl8Vfs2aR8TdY8cahb6/pnxq1vxq+gapbfC7xEvhO5Pw8TUL66vdCGt6ZoS3l8+ngH7x0AFAH//S/v4oAKAP8cr4r/CzwL8cP+DkH4k/Bb4o6D/wlPwy+MH/AAW88Y/Cz4i+HP7T1bRf+Ej8B/ED9vDUfCHi7QTrHh7U9M1/SjqugapfWP8Aa2i6pputWBvBfafqNnfraXagH+pj+wz/AMEvP2FP+CbB+J//AAxV8Df+FLj40/8ACEf8LKH/AAs34v8AxGPiM/Dn/hMG8HAj4sfELx4dJOkjx14tH/FPHTvt/wDaWdTF8bHTTZAH+YV/wdH/APKdb9uT6fszf+se/s/UAf3cf8HPf7eP7V//AATw/YI+Efxq/Y7+Kw+EHxO8TftfeAvhfr3iT/hBfht8QPtngXWPgx+0B4t1HQBo/wAUvB/jPw/ai68QeC/DV7/alnpVprajT/slpqC2V9fWV2AH/BsJ+3j+1f8A8FD/ANgj4ufGr9sT4rD4v/E7wz+1949+F+g+JP8AhBfht8P/ALH4F0f4Mfs/+LdO0A6P8LfB/gzw/dC18QeNPEt7/al5pV3rbDUPsl3qDWVjY2VoAfxE/wDBan/gst/wUk+L/wC0J/wUY/4J/wDxG/aOHiH9kfR/2vfjf8L7D4SH4QfAjSfI8DfA79pfVdQ+F+gDx9oPwv0z4m3K+F7vwH4Quzqt34yfW9b/ALFA1/UdTW+1BL8A+vf+DU//AIJdfsKf8FJf+G8f+G1fgaPjT/wpcfsvH4a4+Jvxg+HP/CN/8LF/4aK/4TED/hU/xD8CDVjrH/CBeE8HxENROn/2d/xLRZfb777aAf6Ov/DLvwK/4Zb/AOGK/wDhB/8AjGb/AIUF/wAMtf8ACtP+Ek8Y/wDJCv8AhXH/AAqn/hB/+Ey/t/8A4T7P/CBf8U7/AMJL/wAJZ/wleP8AiY/2/wD27/p9AH5Df8QuX/BCn/oxv/zZb9sD/wCiCoA/kF/4Kif8FRP26/8AgjD+3V8cv+Caf/BNL43/APDNv7E37Np+GR+CvwVPw0+D/wAYf+EM/wCFwfB/wD8fviP/AMXG+Pvw8+KPxb1//hIPiz8UfHfi/wD4q/x5rw0ca5/YmhLp3hbTtF0PTQD5A/4NhP2Dv2UP+Ch/7e/xc+Cv7Ynwpb4v/DHwz+yF49+KGg+G/wDhOviT8P8A7H460f4z/s/+EtO186x8LfGHgzxBdG18P+NPEtl/Zd5qt3ojHUPtd3p7XtjY3toAH/Bz3+wd+yh/wTw/b3+EfwV/Y7+FLfCD4Y+Jv2QvAXxQ17w3/wAJ18SfiB9s8dax8Z/2gPCWo6+NY+KXjDxn4gtTdeH/AAX4asv7Ls9VtNEU6f8Aa7TT1vb6+vbsA89/4NcP+U637Df0/aZ/9Y9/aBoA/wBPX9ub/gl5+wp/wUnPww/4bV+Bv/C6B8Fv+E3/AOFaj/hZvxf+HJ8OH4jf8Ie3jEAfCf4heAzqx1YeBfCQ/wCKhOo/YP7NzpgsTfakb0A+Bf8AiFy/4IU/9GN/+bLftgf/AEQVAH84f/Bz1/wRq/4Juf8ABO/9gb4SfGj9jv8AZwHwf+Jvib9rzwH8Ltf8Sf8AC4fjx4/F94E1n4MftAeL9S0H+x/il8UfGmgW32rxB4K8NXg1W00q11yMaf8AYrPUFsL/AFCyvQD+EGgAoA/0/P8Agyq/5RY/Hv8A7P8Avin/AOs7fsrUAftx8Nf+CNP/AATd+EH7Y+pf8FAPh1+zgfDv7XOsfED4s/E/Ufi0vxg+O+ribx18cbDxhp/xR8Qf8IF4g+KGqfDO2bxRa+PPF9oNKtfBq6Lon9s7tB07TWsdOeyAP1EoAKAP/9P+/igD+X//AIOPv+CK/wC1N/wV/wD+GNT+zX4++AXggfs8/wDDRH/Caf8AC8vFPxG8M/2l/wALb/4UX/wjx8MnwD8KPij9sFn/AMKy8QHWf7X/ALDNn9s0X+zxqG++FgAfyT/tB/8ABo3/AMFIv2bfgF8cP2ivHPxq/Yh1TwR8AfhF8TPjT4y0vwp8Rvjxd+KdU8LfCzwZrnjnxBYeGLDV/wBmrQ9LvNeu9K0O9tdGtdV1rRdNu9RNnHfalY2Re9QA/Vz/AIMY/wDnKH/3ZT/79rQB+3f7ef8Awc9/sEf8E8P2sPiv+x58avhF+194l+J3wfHgf/hI9d+F/gL4Max4FvR4/wDht4Q+KWjDQNR8W/tAeBvEF0LbQPGWk2eqfbvDVgF1q1v7Oz+22S2V/dgH6P8A/BT3/gp58BP+CTvwG8IftFftF+Efi74x8EeM/i5ofwY0zTPgvofgzxF4qt/FfiLwb498cafe31h45+IPw50mHQV0r4c63a3d1a61e6h/aN5piLpjWUl9e2gAf8Ewv+CnnwE/4KxfAbxf+0V+zp4R+Lvg7wR4M+LmufBjU9M+NGh+DPDviq48V+HfBvgLxxqF7Y2Hgb4g/EbSZtBbSviNolraXV1rVlqH9o2epo2mLZR2N7dgH8o3jr/gmF8e/wDgjn/wVD/aB/4OEf2mvF3wi8dfsZ/D39p/9qL40a38NPgPrvjDxN+0/deFP20fEvxN+C3wu0/TPBXxA+H3ww+FFx4g0PxR+0X4FvvH1rd/Gex0/TdC07xXe+HtT8WX9louna4AfjF/wcff8FqP2Wf+Cv8A/wAMaj9mvwD8ffBB/Z5/4aI/4TT/AIXl4W+HPhn+0v8Ahbf/AAov/hHh4ZHgH4r/ABR+2Gz/AOFZeIBrP9r/ANhiz+2aL/Z51DffGwAP7eP+dWT/ALwB/wDwO6gD/Pq/4N6v+CnvwC/4JPftm/E79ov9ovwn8XvGPgrxj+zB42+C+laZ8GNC8GeIfFMXinxH8Vfgp45sdQ1Cx8dfEL4c6XBoS6V8OdXtbq6tNZvNQGoXumRppstk17e2AB8w/wDBZX9tT4Wf8FEf+Ckn7R/7YfwW0Lx/4Y+GHxgHwgbw3oPxQ03w9o3jqy/4V78Bfhh8MNY/t3TPCfijxzoFsbnXvBWsXOk/YfEmob9HutPur37FfPe6faAH92//ABGq/wDBLH/ogv7f3/hq/wBnb/6KqgD92v8AgmF/wU8+An/BWL4DeL/2iv2dPCPxd8HeCPBnxc1z4Manpnxo0PwZ4d8VXHivw74N8BeONQvbGw8DfEH4jaTNoLaV8RtEtbS6utastQ/tGz1NG0xbKOxvbsA5z/gsr+xX8U/+CiP/AATb/aP/AGPPgtrvgDwz8T/jAfhAvhvXvihqXiHRvAtl/wAK9+PXww+J2sHXdT8J+F/HOv2wutB8Faxa6T9h8N6hv1i5061vfsVi97qFoAfwlf8AEFT/AMFTP+i9/sA/+HV/aJ/+hRoA/ob/AGI/+DhH9jH9mrxX+yN/wRg8c/DP9p7VP2ovgHr/AMA/+CYHjHx34T8F/Cm++AWo/Hz4Wal4V/ZR1/xd4Z8Uax8bNB+Il38H7r4iaFeaxo3iHVfhZovja68EtY3+oeA7DXWfw+gB+3v/AAU9/wCCnnwE/wCCTvwG8IftFftF+Efi74x8EeM/i5ofwY0zTPgvofgzxF4qt/FfiLwb498cafe31h45+IPw50mHQV0r4c63a3d1a61e6h/aN5piLpjWUl9e2gB/FP8AtRf8EWP2o/8Ag4f+Onjn/gsR+xX4++AXwy/Zo/a+/wCEb/4Vp4H/AGo/FPxG8F/HXQj8AfB+hfsv+MR448L/AAo+FHxt8B6X/aPj74J+K9X8Nf8ACPfE7xSL7wnfaDqGo/2Hrl7qHh/QwA/Zd/4IsftR/wDBvB8dPA3/AAWI/bU8ffAL4m/s0fsg/wDCSf8ACy/A/wCy54p+I3jT4666fj94P139l/wcPA/hf4r/AAo+CXgPVP7O8ffGzwpq/iX/AISH4neFhY+E7HXtQ07+3NcstP8AD+uAH6/f8Rqv/BLH/ogv7f3/AIav9nb/AOiqoA+u/wBgz/g57/YI/wCCh/7WHwo/Y8+Cvwi/a+8NfE74wDxx/wAI5rvxQ8BfBjR/AtkPAHw28X/FLWRr+o+Ev2gPHPiC1FzoHg3VrPS/sPhq/Da1dWFnefYrJr2/tAD+kGgAoA//1P7+KAP5f/8Ag4+/4LUftTf8EgP+GNR+zX4B+AXjcftDf8NEf8Jp/wALy8LfEbxN/Zv/AAqT/hRf/CPDwyPAPxX+F32MXn/CzfEA1n+1/wC3DefY9F/s86fsvjfgH6+fCYH/AIKTf8EtfhoPjmD4VH7fX7APg7/hcR+Ev/EiXw1/w1P+zvprfED/AIVqPF58dHSTpH/Ceax/wh3/AAk//CajT/smn/263iHZeregHgP/AASn/wCCLH7Lf/BH/wD4Xz/wzT48+Pvjj/hoc/CweNv+F5eKvh14l/s0fCU/EQeHf+EY/wCEA+EvwwNob3/hZviE60dX/tv7Z9i0X7B/Z4jvRegHyB+3n/wbCfsEf8FD/wBrD4r/ALYfxq+Lv7X3hr4nfGAeB/8AhI9C+F/j34MaP4Fsh4A+G3hD4W6MdA07xb+z/wCOfEFqLnQPBuk3mqfbvEt+G1q6v7yz+xWTWVhaAH4DfsV/tqfFP/g7F+KWuf8ABOz/AIKJaD8Pvg18Ffgx4B1T9tXwz4n/AGLNK8Q/Dn4qX/xS+HGv+F/gdo2ga/rHx08U/tIeDrvwBd+F/wBo3xvfavpNl4I0bX7vX9P8K31p4rsdOsdZ0TXAD+xj/gmF/wAEw/gJ/wAEnfgN4v8A2df2dPF3xd8Y+CPGfxc1z4z6nqfxo1zwZ4i8VW/ivxF4N8BeB9QsrG/8DfD74c6TDoK6V8OdEurS1utFvdQ/tG81N21NrKSxsrQA+Iv+Do//AJQU/tyfX9mb/wBbC/Z+oA/yBqAP9pT9iL4K+Ff2k/8Agh1+yR+zp46v/EOleCfj/wD8Eo/gH8F/GOp+E7zT7PxRpnhX4qfsheFPAviC+8L3+s6Xruk2eu2ek67eXWjXer6PrdhaX62cl/pmoWYNi4B+M/8AxBVf8Esf+i9ft/f+HU/Z2/8AoVaAD/iCq/4JY/8ARev2/v8Aw6n7O3/0KtAB/wAQVX/BLH/ovX7f3/h1P2dv/oVaAP3a/wCCYX/BMP4Cf8EnfgN4v/Z1/Z08XfF3xj4I8Z/FzXPjPqep/GjXPBniLxVb+K/EXg3wF4H1Cysb/wADfD74c6TDoK6V8OdEurS1utFvdQ/tG81N21NrKSxsrQA/jG/bc/4O5P8AgpF+zd+2d+1z+zr4G+Cv7EOqeCfgD+1D8ffgt4O1TxX8Ofjxd+KdT8LfCv4q+K/A3h+/8UX2j/tKaJpV5r15pOh2d1rN1pWjaJp13qBvHsdNsbJlsUAPmD/iNW/4Kmf9EE/YB/8ADVftE/8A0V1AH6+/8OWf2Wf+GW/+Iiv/AIT74/f8Ntf8KB/4fT/8Kw/4Sj4d/wDDK/8Aw1N/wrj/AIbm/wCEC/4Qr/hVH/C2P+Gf/wDhbP8AxTv/AAjP/C7v+Fi/8K8/4kv/AAtf/hKf+KroA+Qv2K/21Pin/wAHYvxS1z/gnZ/wUS0H4ffBr4K/BjwDqn7avhnxP+xZpXiH4c/FS/8Ail8ONf8AC/wO0bQNf1j46eKf2kPB134Au/C/7Rvje+1fSbLwRo2v3ev6f4VvrTxXY6dY6zomuAHn/wC1F/wWn/aj/wCDeD46eOf+CO/7FfgH4BfE39mj9kH/AIRv/hWnjj9qPwt8RvGnx110/H7wfoX7UHjE+OPFHwo+K/wS8B6p/Z3j742eK9I8Nf8ACPfDHwsLHwnY6Dp+o/25rllqHiDXAD+nv/g6P/5QU/tyfX9mb/1sL9n6gD/IGoA/f/8A4NcP+U637Df0/aZ/9Y9/aBoA/wBfmgAoA//V/v4oA/gD/wCD5z/nF5/3et/76VQB/Qz4T8WeK/AP/Bsp4b8c+BfEniHwZ418F/8ABCfR/Fvg7xj4S1m/8O+KvCnirw7/AME/7bV9A8T+Gdf0e6tNV0HXfD+rWdpq+j6xpF7aX+n6hZ2l/YXq3iqyAH8tH/BuD/wX0+Hf7PA/bJP/AAVq/wCCg/x+8RDxf/wzwf2f/wDheesftS/tP/Y/7B/4XoPisfC40fQPi0fA/wBo/tz4c/20bz+wf+En2aJ5f9pf2A/2AA9B/bx8B/8ABeH/AIKX/tYfFf8Abb/4I0/G39r3xn/wTa+Nh8Cj9m7xH8Lv24Zf2XvAup/8K5+G3g/4TfF/+wfgZ8UPjv8ABLx74E+x/HjwF8U7LVV1n4aeGP8AhJ9bs7/xfp39uaLr9h4h1QA/KH4K/wDBvz/wcnfs1+K7/wAc/s5/A34v/AHxtqugXfhLU/GPwX/bi/Zy+FninUvC97qGlaxf+F7/AMQ+Bf2m9D1W70G81bQ9G1a70i7vTp11f6LpmoSWhvNOsigB/Tx/wTC/4KTT/wDBHP4CeLv2ZP8Ag4R/an+L3w9/bO8dfF7Xfjr8NNF+NXiX4z/to+Kbv9mHxL4P8B/D7wdqth8UPgxB+0T4X0DQLj4sfDH40Wlp4BvfGmm67YX1lqfiG+8KWNh4s03XNfAPIP8AgvP/AMF6P+CUH7aP/BKD9qr9mr9mn9qofEj41/EgfA5vBXgk/A79o/weNZ/4Q/8AaP8Ag74+8Q58Q+Pfg74W8Iab/Zvhbwt4g1bGr+IbD7Z9g+w2H26/vbLT7oA+Av8Agzc/ZP8A2Wv2n/8Ah40f2l/2a/gF+0J/wg//AAx+PBP/AAvL4N/Dn4tHwj/wky/tP/8ACQ/8IufH/hrXhoP9vf2B4dbWzo62X9snQ9G+3C6/s+yRQD8hf2sP2tv+CmNp/wAFSv2k/wBiL9jv9sP9r7wD4ft/2/vjH+yv+y1+zv8ACf8Aan+J3wf+FvgnR4v2h/EHwm+CHwX+Gvhiw+I3g/4Y/C/wF4Zsx4Z8DeD/AA7Zjwr4F8EaDZadp9kdD0HT0FkAf1sf8G937I3/AAXx+Af7Z/xN8Y/8FTfFf7T2v/s+6j+zF4z8N+DrP41ftueHv2k/CsPxjvPit8FdV8P3Gn+B9I+PPxRudK18eCtE+IgtfFz+HbOzsbB9S0P+3LZ9dWxvwD+eT/g43/4KEft7/A//AILMftk/C/4Lftw/tffB/wCGfhj/AIZ8/wCEa+HXwu/aV+M/w/8AAnh8az+yx8Edf1j/AIR/wh4R8aaVoGlHVNf1TV9Z1b7DY2n2/W9R1DUr4te3t29AHQf8G93/AAXQ1/4Bftm/E7xj/wAFTf8Agof+07r37P2pfsw+NPDfg6z+NXxD/af/AGk/CsXxku/it8FdU0C5sPAujJ8U7jS9fHgzSfiItt4uk8O2FtZWDaloo121bXlsdQAP09/4Ke+Ov+Cof/BYz4+eEf2m/wDg3u/aB/af+If7GHgb4Q6F8CviXrPwV/ah8T/sXeFbX9p/w34x8efEHxjpeofC74z/ABN/Z18Ua9r9v8KPih8F7u78f2fgzUND1GwvtM8P2XivUL/wnqWjaGAfgN/wRL+AOpeP/wDg4V+FP7P/AO3n8P8AQPjV42j+L/7aHhr9pzwJ8fYfC3x80/xT8ZfBPwK/aLvvG1z8QLrxDdeOvC/xJ1/TvizoFz4ifxfc3via11HxRYW3iux1vUbw2mpMAf6av/Dp7/gln/0jU/YC/wDEOv2dv/nb0AfHf/D5D/gib/wtP/h1x/wt7wB/wln/AAsH/hgb/hlH/hl343/8Kt/4SX/hIv8Ahnf/AIZ6/s//AIUZ/wAKQ/4QH+0/+Lc/Yv7V/wCFVf2B+7+3/wDCJ/6ZQB8gf8Fp/wDglt8XtJ/Zc8Azf8EKP2XPh/8AsyftdS/HzwrD8RPHv7Fc/wAEf2Gvinq/7OP/AArn4ot4v8I6/wDFnw/r/wAEbvX/AAHefE9fhBq+r/Dl/F1/aa1ruheFPER0G+k8JpqOigHwH+y5+0r/AMEcP2QfgV4E/Z4/4OAPDvwC8Xf8FcPh9/wkx/a01/8Aai/ZQ1/9uH476ifFXjHX/G/wHHjn9qDw38G/2gtE+J4tv2afEvwYsfDQsvi74qPgvwlZ+H/hzd/2FeeE7vwvooB+A/8AwQa/aw/ak/bg/wCCr/7Kv7L37an7Svx8/bA/Zm+Jw+OK/Ev9nf8Aai+MfxH+P/wJ+IX/AAhX7OHxh+IPg8eOfhD8WPEfi/wF4r/4RTx/4Q8J+OvDX/CR+HL/APsLxb4X0HxVposdb0TTb60AP7NP20/G3/Bsh/wTu+KOh/Bb9sP9mX9gL4QfE3xN4A034n6H4ZP/AATasPiF9t8C614h8U+EtM1v+2Phh+zV400C2+1a94L8S2J0m61e01lBp/22709LG+0+9vQA/YM/bf8A+Daj4v8A7V3wp+HX/BP/AMGfshaV+1v4gbxyfhLffC7/AIJ8eJ/gd47g/sn4b+MNd8fHQPifqX7NXgC08LG4+Gem+MbTVvtfi/RjrmiNqGgKdQk1NdNvwD+kKgAoA//W/v4oA/gD/wCD5z/nF5/3et/76VQB+/n/ADqyf94A/wD4HdQB/kD0Af1//wDBLv8A4OsB/wAE2f2Ffgb+xWP2Df8AhdA+C5+Jp/4WUP2n/wDhXQ8SD4i/GHx/8Wf+RP8A+GdvHn9knSv+E7/4R3P/AAkt/wDbf7OGpf6D9u/s+yAPv3/iOc/6xef+brf/AJJtAB/ww3/xGBf8bLP+Fo/8O8f+FI/8YNf8KW/4Qn/hrP8A4Sn/AIVn/wAX+/4Wh/wsb/hL/wBmr+xP7c/4aZ/4RH/hB/8AhA9b/s7/AIQf+3f+Erv/APhIP7F0AAP+IGP/AKyh/wDmlP8A+VlQAf8AKl7/ANZJv+Hkv/dnX/CmP+GOP/EpP+Fif8LH/wCGpv8AqR/+EU/4Qb/mav8AhKv+JAAfzD/snfHMftQf8F8P2af2lh4V/wCEHH7Q/wDwV8+Dnxz/AOEJ/tv/AIST/hED8Wv2zvD/AI/Hhf8A4SI6ZoP9vnQP7fOkf2wND0L+2DZrf/2Lp5l+xRAH+zpQB/ID/wAFRf8Ag1P/AOHk37dXxy/bUP7eI+Cx+NI+GQ/4Vr/wy+fiMfDh+HPwe8A/Cf8A5HH/AIaJ8Bf2t/av/CCf8JFgeGNPFkdQ/s7F8LH7degH8RH/AARY/wCCU3/D4H9qXx9+zQPjz/wzz/whHwC8U/HIeNh8Kx8Wv7S/4Rv4jfC3wCfDH/CPf8LF+GH2P7YPicNX/tv+27r7J/YpsP7Gf+0PttgAf08/8Nyf8Qfv/GtP/hV3/Dw7/hd3/Gcv/C6f+E2/4ZM/4Rb/AIWZ/wAWB/4Vf/wrn/hEP2lf7b/sP/hmb/hLv+E4/wCE80T+0f8AhOP7C/4RSw/4R/8AtrXwD7+/4Jd/8ENDrH7dPwP/AODgEftPi2/4am/4WZ+3L/wyafgr5/8Awgv/AA318IPH3ib/AIVgfjx/wthB4o/4VP8A8L6+x/8ACcj4OaB/wnB8Jfa/+ES8IjXTZ6CAff3/AAXM/wCC5n/Dl/8A4ZeA/Ze/4aTH7Sf/AAuzA/4XYfg9/wAIX/wp4/CXPzH4S/FD+3/+Eg/4Wj6aJ/Yv9hf8xEaiFsgD/MK/4bl/42l/8PLf+FX/APN/v/Dcv/Cl/wDhNR1/4aJ/4X//AMKv/wCFjf8ACH5/6lH/AITn/hBP+o9/wieP+JHQB/Xz/wARzn/WLz/zdb/8k2gD+Qn/AIKi/tzD/gpN+3V8cf21R8Lj8GD8aB8NC3w2PjZviP8A8I1/wrn4P+AfhOP+KxXwf4D/ALW/tceBP+EiIPhfTv7POof2cTqH2EX92Af17f8ADjT/AIhsP+N1H/DUP/DZ/wDwxnz/AMM1/wDCkv8AhnX/AIWR/wANFf8AGJ//ACWH/hbnx2/4Q3/hDf8Ahe3/AAnn/JKvFX9v/wDCL/8ACK/8SP8Atz+39NAP5hv+C0//AAVZ/wCHwP7UvgH9pc/Ab/hnn/hCPgF4W+Bp8En4qD4tf2l/wjfxG+KXj4eJ/wDhIf8AhXXww+x/bB8TjpH9if2JdfZP7FF//bL/ANofYrAA/r3/AOCBf/BuCf2d/iH/AME+f+CtI/bJ/wCEwPiH4AaR8dP+FAj9ngaAbP8A4ag/ZY13Rv8AhFh8Vj8btc+0f8IL/wALb+1/2yPhzH/wlH9gBP7F0A6j5mngH9v1ABQB/9f+/igD8/v25f8Ah1n/AMWv/wCHlv8AwwF/zO3/AApb/hub/hnXp/xSH/Cx/wDhV/8Awv7jOP8AhA/+E5/4RLn/AJFH+3uf7FoA89/4eDf8EYP+FWf8KM/4bf8A+CYf/Ckv+EA/4VR/wpv/AIaX/ZS/4VZ/wqz/AIR//hD/APhWv/Cv/wDhMf8AhFv+EB/4RX/imv8AhD/7I/sH+wf+JJ/Z/wDZ3+hUAfIX/HLJ/wBYA/8AzndQAf8AHLJ/1gD/APOd1AB/xyyf9YA//Od1AH6d/sV/8MCf8Ku1z/h3V/wyD/wpP/hYGrf8JN/wxV/wpn/hVf8AwtP/AIR7wp/bX/CQf8KN/wCKU/4T7/hFP+EF/tX7d/xUH9gf8Ip9u/4l39jUAf5d/wC3H+23/wAFcfGn/BVv9uj9nX9lv9rn/go14r1i1/be/bB8JfCn4D/AP4+ftMa/qNn4W8BfGD4n3Nv4a+H3ww+H/i66urfQvB3gvw9eXMejeG9GFh4e8LaJdSLZ2Wiac5QA+YPjp+yf/wAF8f2oB4WH7S/7NH/BXr9of/hBhrY8E/8AC8/g5+2b8Wh4QPiT+yf+Eh/4Rj/hP/DevHQW1/8AsHRBrS6SbP8AtltD0X7f9q/s6x2AH+gl4T/4JlfAPwF/wQ58NeOfAv8AwT8+EPg3/god4L/4JSaN4t8HeMfCP7KXgnw7+2h4W/bQ8Ofsg22r+H/EvhnX9H8B2fxv0H9p3QPjfZ2er6PrOj3tp8VdP+KlnZ39jep4tRHoA/gN+NX7Qv8AwcL/ALNfhax8dftF/G3/AILOfAPwTquu2nhHSvGPxr+JH7b/AMLPC2oeKr7TdU1ix8M6d4g8ca7oOlXPiC60vQda1az0e1vGv7yw0TUL5LI2en3rqAf3qf8ABBj/AIKwfsuD/gk/+yt/w2r/AMFKvgF/w0x/xfP/AIWV/wANRftjfDcfHf8A5OP+MP8Awh3/AAm//C2fiN/wnp/4oI+Eh4aPiLn/AIRP+wjp+dDOmrQB+Uf/AAcI/tCf8E3v2av2Mfhl46/4IwfHH9iD4B/tRar+0/4M8J+O/GP/AATB+JXwJ+Fnx71L4BX3wp+NmseKPDPi7X/2Udc0L4i3fwfuviJoXws1bxFo2r3beCrrxtovgLUNQsm13T/D0kQAf8G937Qn/BN79pX9jH4m+Ov+Cz/xx/Yg+Pn7UWlftP8AjPwn4E8Y/wDBT74lfAn4p/HvTfgFY/Cn4J6x4X8M+Edf/au1zXfiLafB+1+Imu/FPVvDujaRdr4KtfG2tePdQ0+yXXdQ8QySgH84/wC0T+25/wAFH/Gn/BQr9p/9nP8A4J0/tc/tveLfhTZ/tP8A7R/hT9kj4FfsV/Hz48a78PLT4BeA/Hvjqf4beGf2cvhf8DfGFx4Zg+D3g34OaBZ3XgXSPhton/CFaB8N9BsToFnZeFNNR4gD4e/bm/4emf8AFr/+Hlv/AA37/wAzr/wpb/hub/horrjwf/wsf/hV/wDwv7nr/wAIH/wnP/CI9/8AhEv7e+X+xaAP9PT/AIJ7f8E+P+CWn/DrX9h/46fHP9h/9gJt37AX7NXxZ+MXxj+LP7NP7O3y/wDGO3gzxh8QPiR8SfiD4w8FqAABq/ibxj4x8TauT/x/65rt+2by9oA9d+Cv7PX/AAb0ftKeKb/wL+zp8Ev+CMnx88baVoV34u1Xwd8FPhv+xB8U/FOn+FbHUtL0e+8Taj4f8D6Fr2q23h+11TXtF0m81i6s1sLO/wBb06xe9F5qFkjAH+bZ/wAHG3wo+FXwP/4LMftkfC/4L/DX4f8Awf8Ahl4Z/wCGff8AhGvh18LvBvh74f8AgPw9/bH7LHwQ17WR4f8ACHhHTdK0DSjquv6pq2tar9gsLT7dreoajqV6Wvr67ZgDgf2pP+H+P/Ci/HP/AA2p/wAPfP8Ahmf/AIpr/hZf/DUX/DaH/CiP+Rw0D/hD/wDhOf8AhbP/ABQX/I9/8In/AMIz/wAJD/zN39g/2b/xPP7OoA+JPgt+xN+2d+0r4WvfHP7Ov7In7T3x88E6Tr114R1Txl8E/gF8V/in4V07xTZadpms6h4Z1DxD4H8I69pVr4gtNK13Q9VvdGurtNQtLDWtOv2tFtNQsnYA/q3/AODe3wj/AMFxvAP/AAU0/Yu8C/tN+G/+CrXgz9i/wZoHxY8J6z4M+O2jftfeHf2YPCnhbw5+y/8AFnRvhf4Z1Pw/4/gtPhToOgaD4otPBeleAdFvLSz03T9es/C1l4etItRTR41AP9JmgAoA/9D+/igD+AP/AIPnP+cXn/d63/vpVAH5R/s+f8Gjf/BSL9pL4BfA/wDaK8DfGr9iHS/BHx++EXwz+NPg3S/FfxG+PFp4p0vwt8U/Bmh+OfD9h4nsNI/Zq1zS7PXrTStcsrXWbXSta1rTbTUReR2OpX1kEvXAPXv+IKn/AIKmf9F7/YB/8Or+0T/9CjQAf8QVP/BUz/ovf7AP/h1f2if/AKFGgD85P+Cnv/BvV+2d/wAEm/gH4R/aJ/aL+J37MHjPwV4y+Luh/BjTNL+DHjX4q+IvE8HinxF4N8feObG+vrLxz8FPhxpcGhjSvhxrNpc3VrrN7qH9oXemoumtZSXt7YAH9jP/AAZVf8osfj3/ANn/AHxT/wDWdv2VqAPiDx1/wTC+Pf8AwRz/AOCof7QP/Bwj+014u+EXjr9jP4e/tP8A7UXxo1v4afAfXfGHib9p+68Kfto+Jfib8Fvhdp+meCviB8Pvhh8KLjxBofij9ovwLfePrW7+M9jp+m6Fp3iu98Pan4sv7LRdO1wA+3/+I1X/AIJY/wDRBf2/v/DV/s7f/RVUAf0b/wDDavwv/wCGBv8Ah4n/AGD8Qf8AhSf/AAyF/wANr/8ACM/2T4d/4Wl/wqv/AIUz/wALx/4R/wDsb/hK/wDhDv8AhP8A/hE/9A/sn/hPP7A/t/8A0P8A4Sr+zv8AidUAf59X/Bwj/wAHCX7GP/BWb9jH4Z/s6/s6fDP9pzwV408GftO+C/jVquqfGvwX8KPDXhafwt4a+E/xr8EX2n6dfeBvjZ8RtVuPEEmq/EfRbqzs7nRrKwaxtNSZ9SS7Szs78A+Iv2DP+DYT9vf/AIKH/sn/AAo/bD+Cvxd/ZB8NfDH4wHxx/wAI5oXxQ8e/GfR/HVkfAHxJ8X/C3WTr+neEv2f/ABz4ftTc6/4N1a80v7D4lvy2i3VheXn2K9a9sLQA/OH/AIJhf8Ew/j3/AMFYvjz4v/Z1/Z08XfCLwd438GfCPXPjPqep/GjXPGfh3wrceFPDvjLwF4H1Cysb/wADfD74jatNrzar8RtEurS1utFstP8A7Os9TdtTW9jsbK7AP3b/AOIKn/gqZ/0Xv9gH/wAOr+0T/wDQo0AflL/wTu+NPhb/AIIt/wDBaHw946/aistf8e6T+xJ8Xf2qfgv8VbX4BWth4o1LXfFWmfDn42fs7T33gC3+IupfCm11TQT4z1u01VLvxLd+FL9vCq3d82nJrSroTgH25/wcff8ABaj9ln/gr/8A8Maj9mvwD8ffBB/Z5/4aI/4TT/heXhb4c+Gf7S/4W3/wov8A4R4eGR4B+K/xR+2Gz/4Vl4gGs/2v/YYs/tmi/wBnnUN98bAA/vV/Z6+Cviv9pX/g3n+CX7OngW/0LSvG3x8/4Ix/DT4KeDdV8XXWo2HhXTvFPxT/AGIND8D+H9Q8S32j6Zr2q2vh+11TXrK51m80nQ9b1C0sFvHsbHULxUs3APyE/wCDe7/g3t/bO/4JM/tnfEz9or9ov4mfsx+NfBfjP9mLxn8FdK0v4KeM/it4k8UQeKfEnxY+Cfjex1DUbHxx8E/hzpVvoEek/DjWrW8vbbWb3UFv7vTgumvaSXd5YAH8kn/B0f8A8p1v25Pp+zN/6x7+z9QB/paf8Flf2K/in/wUR/4Jt/tH/sefBbXfAHhn4n/GA/CBfDevfFDUvEOjeBbL/hXvx6+GHxO1g67qfhPwv451+2F1oPgrWLXSfsPhvUN+sXOnWt79isXvdQtAD5h/4N6v+CYXx9/4JPfsZfE/9nT9ovxb8IfGPjXxj+0/42+NGlan8GNd8Z+IfCsXhbxH8Kvgp4GsdP1C+8dfD74c6pBrqap8OdYurm1tNGvNPGn3umyJqUl617ZWQB+8dABQAUAf/9H+/igD+AP/AIPnP+cXn/d63/vpVAH9HPwo+Kfjv4H/APBt98NvjT8Lde/4Rf4m/B//AIIieDvin8OvEf8AZuk61/wjvjz4f/sIad4v8Ia6NH8Q6Xqnh/VRpWv6VY339k61pWpaLf8A2M2Oo6deWD3Vm4B/nk/8RRn/AAXX/wCj4z/4jR+x/wD/AEPtAB/xFGf8F1/+j4z/AOI0fsf/AP0PtAH9fv8Aweq/8osfgJ/2f98LP/Wdv2qaAD/gyq/5RY/Hv/s/74p/+s7fsrUAfyif8Fqf+Cy3/BST4v8A7Qn/AAUY/wCCf/xG/aOHiH9kfR/2vfjf8L7D4SH4QfAjSfI8DfA79pfVdQ+F+gDx9oPwv0z4m3K+F7vwH4Quzqt34yfW9b/sUDX9R1Nb7UEvwD69/wCDU/8A4JdfsKf8FJf+G8f+G1fgaPjT/wAKXH7Lx+GuPib8YPhz/wAI3/wsX/hor/hMQP8AhU/xD8CDVjrH/CBeE8HxENROn/2d/wAS0WX2+++2gH92/wDwUI+F/gb4Gf8ABGT9t/4KfC7Qv+EY+GXwg/4JhftLfDD4c+Gv7U1rWv8AhHPAnw+/ZS8ZeEvB+gHWfEOo6truqjSdA0mxsTqutavf6zf/AGUXepX1/eveXrgH+cX/AMGwn7B37KH/AAUP/b3+LnwV/bE+FLfF/wCGPhn9kLx78UNB8N/8J18Sfh/9j8daP8Z/2f8Awlp2vnWPhb4w8GeILo2vh/xp4lsv7LvNVu9EY6h9ru9Pa9sbG9tAD6//AOCon/BUT9uv/gjD+3V8cv8Agmn/AME0vjf/AMM2/sTfs2n4ZH4K/BU/DT4P/GH/AIQz/hcHwf8AAPx++I//ABcb4+/Dz4o/FvX/APhIPiz8UfHfi/8A4q/x5rw0ca5/YmhLp3hbTtF0PTQD+cX9ir9vL9q//gnh8U9e+NP7HXxX/wCFQfEzxN8P9U+GOueI28DfDbx/9t8C6z4h8LeL9Q0E6R8UfB3jPQbc3Wv+DfDN4dWs9Itdaj/s82VjqAsb6/tL8A/08f8Ag2E/bx/av/4KH/sEfFz41ftifFYfF/4neGf2vvHvwv0HxJ/wgvw2+H/2PwLo/wAGP2f/ABbp2gHR/hb4P8GeH7oWviDxp4lvf7UvNKu9bYah9ku9QaysbGytAD3/AOLH/BuR/wAEZvjh8VviT8afij+xwPE/xN+L/j/xl8UfiL4kH7QX7VOj/wDCQ+O/iB4h1Lxf4v186N4e+N2l+HtL/tTxBqt/f/2Vo+laboth9r+xadp1nYLaWaAH8Y//AAdYf8Euv2FP+CbX/DB3/DFXwNHwW/4XQP2oT8Ss/E34wfEb/hJP+Fdf8M6/8IcD/wALY+IfjsaSdH/4T3xZk+HRpx1D+0f+JkL37BY/YgD8w/hP/wAHG/8AwWZ+B/wp+G3wW+F37Y58MfDL4QeAPBvwu+HXhs/s+/srax/wj3gT4f8Ah7TfCHhDQBrPiH4I6p4h1T+y/D+lWFh/ausarqWtX/2T7bqOo3l+13eOAd7/AMRRn/Bdf/o+M/8AiNH7H/8A9D7QB+RH7Uf7Ufx1/bR+Ovjn9pX9pjxwPiV8bPiQPDI8beNx4b8IeEBrA8H+D9B8AeHj/wAI98P/AA/4W8IaX/ZvhXwv4e0j/iT+HbD7d9hF/ffbNQvL29vQD9d/+Ioz/guv/wBHxn/xGj9j/wD+h9oAP+Ioz/guv/0fGf8AxGj9j/8A+h9oA/X/AP4IMf8ABej/AIKv/to/8FX/ANlX9mr9pb9qo/Ej4KfEg/HFvGvgkfA79nDwedZ/4Q/9nD4xePvD2PEPgL4O+FvF+m/2b4p8LeH9WxpHiGw+2fYPsN/9usL290+6AP8AR6oAKAP/0v7+KAP4A/8Ag+c/5xef93rf++lUAfv5/wA6sn/eAP8A+B3UAf5A9ABQB/p+f8Hqv/KLH4Cf9n/fCz/1nb9qmgA/4Mqv+UWPx7/7P++Kf/rO37K1AH8wn7PH7UXwK/Yv/wCDqn9oD9pX9pfx1/wrb4KfDf8Ab9/4Kdf8Jv41Hhvxh4vOijxjB+1P4A8PAeHfh/oHirxdqX9peK/FPh7SP+JR4ev/ALF9ua/vfsWn2V7fWoB77/wdYf8ABUX9hT/gpL/wwd/wxV8ch8af+FLj9qEfErPwy+MHw5/4Rv8A4WL/AMM6/wDCHE/8LY+HngQasdY/4QLxZkeHTqJ0/wDs7/iZGy+32P20A/o5/wCCe3/Bxv8A8EZvgf8AsE/sO/BX4pftj/8ACMfE74P/ALIH7Nfwu+Inhv8A4Z9/ao1j/hHvHfw/+DHgrwj4v0A6x4e+COqeH9U/srX9Kv7D+1dH1TUtFvzZ/btO1G7sHs7pgD9ff2K/+Cyv/BNv/goj8Utd+C37Hn7R5+MHxN8NeAdS+KOu+Gx8IPjz8PRZeBtE8Q+F/Cep67/bHxP+F3gnQLk2+v8AjPw3YDSbXV7zWpP7Q+22ti9jY6je2QB+olAH+Gb+xV+wb+1f/wAFD/inr3wW/Y6+FH/C3/iZ4Z+H+qfE7XPDjeOfht4A+xeBdG8Q+FvCGoa8dX+KPjHwZoNwbXX/ABl4ZszpNnq91rUn9oG9sdPNjY393YAH92n/AARY/ag+BP8AwbwfsteP/wBiz/gsR45/4ZB/aX+J/wAffFH7Ufgf4ajw14u+P39u/Anxp8Ofhb8KPDHjkeMP2XNA+NvgPTP7U8efBP4oeHv+EZ1bxZY+LbAeFhqeo6BZ6Hrvh7UdaAP7N/hT8UfAnxx+Fvw1+Nnwu10+J/hj8Xvh94Q+KHw68SDTNa0Y+JPAnxB8PaX4u8Ia9/Y3iDTtI17S/wC1tA1Wxvf7J1vR7HWrEXQtNRsdPvVurNAD+Er/AIPnP+cXn/d63/vpVAH6+f8ABJ//AILz/wDBJ8fst/8ABNX9ir/hqn/jJj/hQX7HH7Lv/Ctf+FG/tH/8l3Hw3+HPwn/4Qj/hMT8HT4C/5H3/AIp0eJT4u/4RL/mIf28dE/4mVAH7dftq/t5fsof8E8PhZoPxp/bF+K//AAqD4Z+JviBpfwx0PxGvgb4k+P8A7b471nw94p8X6doP9kfC7wb4y163+1aD4N8TXg1W80m10VP7PWyvtQF9fWFnegH5j/8AEUb/AMEKf+j5P/Naf2wP/ofaAE/4Oj/+UFP7cn1/Zm/9bC/Z+oA/yBqAP7Pv+DcH/gjV/wAFI/g9/wAFDP2Cv+CgPxF/ZuPh/wDZF1f4f/ED4n6f8WT8X/gTrLT+BPjj+yV8UdP+F+vjwD4f+KGqfE23/wCEouvHvhC1GlXXg0azon9shtf0/TUstQfTwD/S6oAKAP/T/v4oA/gD/wCD5z/nF5/3et/76VQB/Ux+xF8FfCv7Sf8AwQ6/ZI/Z08dX/iHSvBPx/wD+CUfwD+C/jHU/Cd5p9n4o0zwr8VP2QvCngXxBfeF7/WdL13SbPXbPSddvLrRrvV9H1uwtL9bOS/0zULMGxcA/Gf8A4gqv+CWP/Rev2/v/AA6n7O3/ANCrQAf8QVX/AASx/wCi9ft/f+HU/Z2/+hVoAP8Ag9V/5RY/AT/s/wC+Fn/rO37VNAB/wZVf8osfj3/2f98U/wD1nb9lagD+AT/grH/ylM/4KWf9n/8A7Y3/AK0R8R6AP1//AODcH/giv+yz/wAFf/8Ahso/tKePvj74IP7PP/DO/wDwhf8Awo3xT8OfDP8AaX/C2/8Ahen/AAkJ8THx98KPij9sNn/wrLw+dG/sj+wxZ/bNa/tAahvsRYAH5h/8MWfCr/h89/w7p/t7x/8A8KU/4ee/8MVf8JT/AGj4e/4Wp/wq3/hqv/hR39vf23/wi/8AwiH/AAnv/CL/AOm/2v8A8IL/AMI//b/+nf8ACIf2d/xJKAP9NH/gmF/wb1fsY/8ABJv4+eLv2if2dPid+0/4z8a+MvhFrnwY1PS/jP41+FXiLwxB4W8ReMvAPjm+vrGy8DfBT4capBrg1X4caNaW11daze6f/Z93qSNprXslle2AB+Ev/BZf/g56/b4/4J3/APBSP9o/9jv4LfCT9kPxR8Mvg+3wg/4RvX/ij4D+M+s+O70+P/gT8LfinrA17UvCP7QHgbw/dfZte8ZatZaV9i8NWJXRLXTrO9+3Xy3uo3YB+7X/AATC/wCDer9jH/gk38fPF37RP7OnxO/af8Z+NfGXwi1z4Manpfxn8a/CrxF4Yg8LeIvGXgHxzfX1jZeBvgp8ONUg1war8ONGtLa6utZvdP8A7Pu9SRtNa9ksr2wAD/gp7/wb1fsY/wDBWT4+eEf2if2i/id+0/4M8a+DfhFofwY0zS/gx41+FXh3wxP4W8O+MvH3jmxvr6y8c/BT4j6pPrh1X4j6zaXN1a6zZaf/AGfaaai6at7He3t+Afr5+z98FPC37NvwE+B37OfgXUPEOq+CfgD8Ifhl8F/B2qeK7zT7zxTqXhX4V+DdD8C+H9Q8UX2j6XoOk3mu3Wk6DZ3esXWlaPothe6gbxrHS9PsytkgB+cn/BVj/gix+y3/AMFgP+FDf8NLePPj74H/AOGeD8Ux4J/4Ub4q+HXhr+0h8Wj8Ox4i/wCEn/4T/wCEvxPN2bL/AIVl4eOinSP7E+x/bda+3/2gJLIWQB/mWfs9fBXwr+zV/wAHDHwS/Z18C3+u6r4J+Af/AAWc+GvwU8G6r4uutNv/ABVqPhb4Wftv6F4H8P6h4lvtI0zQdKuvEF1pWg2dzrF5pGiaJp95fvePYWGn2ZSzQA/tZ/4PVf8AlFj8BP8As/74Wf8ArO37VNAH+YHQB/uZft5fsVfCv/gof+yh8Vv2OvjVr3xA8M/DL4wf8IMfEmufDDVPD+jeO7H/AIQD4k+D/ijo50DUPF3hbxvoNsLjxB4N0qz1Q3nhi/3aJd31lZfYr9rW/sgD/Kw/4OFf+CYXwC/4JPftm/DH9nT9nTxZ8XvGPgrxj+zB4J+NGq6n8Z9d8GeIfFMXinxH8VfjX4GvtP0++8C/D34c6XBoS6V8OdIurW1u9GvNQGoXupyPqUtk1lZWAB/qLf8ABJ3/AJRZ/wDBNX/swL9jn/1nf4c0Aff9ABQB/9T+/igD+QL/AIOsP+CXP7dn/BSX/hg7/hir4Gn40f8ACl2/ahPxKB+Jnwe+HP8Awjn/AAsX/hnT/hDgf+FsfEPwIdX/ALX/AOED8WZ/4R3+0Bp407/iZfYhfWP20A/nl8J/8Eqv+DvTwB4T8N+BvA3iH9t7wX4K8F+H9G8JeDvB3hP/AIKjfDfw54W8KeFfDlhbaPoHhnwzoGkftfWelaDoWg6VaWekaNpGkWVpp2nWFnZ2On2aWaBEAN3/AIdqf8Hkf/RRf2/v/Fsfgj/6MegA/wCHan/B5H/0UX9v7/xbH4I/+jHoA8i+Nf8AwRR/4OoP2lPCth4F/aL8L/tP/HzwTpWvWnizSfB3xr/4KJ/BL4qeFdP8V2On6no9h4m0/QPG37VWv6Vaa/a6Vr+taTa6zbWaX1lp2t6hYi8Syvr1HAP7Fv8Ag2E/YO/av/4J4fsEfFz4K/tifCkfCD4neJv2vvHvxQ0Hw3/wnXw2+IH2zwLrHwY/Z/8ACWna+dY+FvjDxn4ftRdeIPBfiWy/su81W01tRp/2u709bK+sb27AP5Cf+ChP/BuR/wAFmfjh+3t+3F8afhb+xwfE/wAMfi/+1/8AtKfFH4d+JD+0F+yvo/8AwkPgT4g/Gfxr4v8ACOvjR/EPxu0vxBpf9q6Bqthf/wBlaxpem61YC8+xajp9pfpd2qgH9HX/AAan/wDBLn9uz/gm1/w3j/w2r8DT8F/+F0N+y8fhqB8TPg98Rv8AhI/+Fdf8NF/8JiB/wqf4h+OzpH9kf8J54Tx/wkX9njUBqP8AxLftosb77EAfkF/w4Z/4Kwf8P7/+G1v+GVf+MZ/+Hvf/AA1H/wALK/4Xj+zd/wAkH/4bR/4Wx/wnH/CHf8Li/wCE9z/wgP8AxUP/AAjX/CIf8Jb/AMw/+wP7b/4ltAH+j1QB8cfFD/gn1+wP8c/HWu/FL40fsP8A7IHxg+Jvic6cPEnxF+KH7NfwY+IHjrxD/Yuk6b4e0b+3/F/i/wAFatr+rf2VoGlaRo2lfb7+6Fjoun6fptiqWNjZpQB/nmf8O1P+DyP/AKKL+39/4tj8Ef8A0Y9AB/w7U/4PI/8Aoov7f3/i2PwR/wDRj0AH/DtT/g8j/wCii/t/f+LY/BH/ANGPQB/Tz/wbg/s1/wDBY/8AZ3P7ZI/4K1eJPj94i/4S/wD4Z4/4Z/8A+F5ftXaF+1B9j/sL/heh+K3/AAizaN8ZfiwPAxuRrvw4/tr7Z/YJ8T7NE8v+0v7CcaeAfo3+21/wTT/Zs8Z/AP8Aa7+If7O37FH7MFl+3b4s+EPx88ZfAn42+FPgp8EfAfx+s/2udd8G+KtZ+GPxT8M/Hq50Pw94l8G/GK3+Mlzovi/Rvi9c+OdB1vQPGws/F7eLNOv7NtbQA/np/wCCLP8AwTA/4K7at+1N48tf+C7Hw9+IH7TX7JCfALxVP8OvAP7af7SHwq/bm+FekftGj4jfC1fCPi7QfhP4g+MXxus9A8e2fwwb4vaPpPxFXwlYXmjaFr3ivw6Ndso/Fsmn60AfmD/wWV/4Nwf+Chnxh/4KR/tI/EX/AIJ/fsFfD/SP2RfEJ+EB+E2nfDD4gfslfA3wJA2jfAn4X+H/AB8NA+F+ofFLwFdeF/tHxN0vxjdaqLrwfo39t6y2oa+gvk1NNRvQDz//AIdqf8Hkf/RRf2/v/Fsfgj/6MegD+nj/AIIsf8Etvi9q37Lnj6b/AILr/sufD/8Aab/a6i+PniqH4d+Pf21J/gj+3L8U9I/Zx/4Vz8Lm8IeEdA+LPiDX/jdd6B4Ds/ie3xf1fSPhyni6wtNF13XfFfiIaDYyeLH1HWgD+lrwn4U8LeAfC/hvwN4G8NaF4L8D+C9C0fwn4O8HeE9I07w34V8KeFfDWnWuj+HvDPhnw9o9pa6Xofh7Q9LtbPSdG0fSbOysNPsLKzsbGyjs0RaAOooAKAP/1f7+KACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoA/9b+/igAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKAP/Z" webUI["html/img/mapping.png"] = "iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAAAXNSR0IArs4c6QAAAAlwSFlzAAAsSwAALEsBpT2WqQAABCRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IlhNUCBDb3JlIDUuNC4wIj4KICAgPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIgogICAgICAgICAgICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgICAgICAgICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyI+CiAgICAgICAgIDx0aWZmOlJlc29sdXRpb25Vbml0PjI8L3RpZmY6UmVzb2x1dGlvblVuaXQ+CiAgICAgICAgIDx0aWZmOkNvbXByZXNzaW9uPjU8L3RpZmY6Q29tcHJlc3Npb24+CiAgICAgICAgIDx0aWZmOlhSZXNvbHV0aW9uPjI4ODwvdGlmZjpYUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6T3JpZW50YXRpb24+MTwvdGlmZjpPcmllbnRhdGlvbj4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+Mjg4PC90aWZmOllSZXNvbHV0aW9uPgogICAgICAgICA8ZXhpZjpQaXhlbFhEaW1lbnNpb24+NTA8L2V4aWY6UGl4ZWxYRGltZW5zaW9uPgogICAgICAgICA8ZXhpZjpDb2xvclNwYWNlPjE8L2V4aWY6Q29sb3JTcGFjZT4KICAgICAgICAgPGV4aWY6UGl4ZWxZRGltZW5zaW9uPjUwPC9leGlmOlBpeGVsWURpbWVuc2lvbj4KICAgICAgICAgPGRjOnN1YmplY3Q+CiAgICAgICAgICAgIDxyZGY6QmFnLz4KICAgICAgICAgPC9kYzpzdWJqZWN0PgogICAgICAgICA8eG1wOk1vZGlmeURhdGU+MjAxOC0wOC0wMlQxMjowODo5NzwveG1wOk1vZGlmeURhdGU+CiAgICAgICAgIDx4bXA6Q3JlYXRvclRvb2w+UGl4ZWxtYXRvciAzLjM8L3htcDpDcmVhdG9yVG9vbD4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgIDwvcmRmOlJERj4KPC94OnhtcG1ldGE+CpRxQsEAAAJLSURBVGgF7VoxTgMxEMwBHWlAaeABVCEtBcoD+EBewCdCyQsQtLyAPCBvCBSRIBUPCF1ogqBJjlkrezGr6HTrO98lhy1Z9trr2VmvnbMNjUadUhzHLeQB8hw5LS3QOUbubvIf7X3kKXIZibgS51bCZdWgMT6D8nECgArkngagQN0B8dhbkblalVmLIyheCGUthhjuLBq77MihA0xTjHHBEBBOorHLjjghbNOg4Mg2RYO4hIiEiHiaAV5aSwf8hRgjZdHtTTTc2ZFXpZkY+hMx5k3IZYlr7jgudJHp2JElLaF0K1mirYn8nAWgQB3ibM59ERNCA52d6Nghv9isQiUtn0kURe92I9eBcYA6YZxym8dyDuwRuMw82gjQYQbsPdLDdNCROO0US3uEfp3usTZpjf5J2CNtNFwjl7FHvmBnCB5PCQkQoJudJtGvE23sJEFuI39rQArS7dskXK6nlwkAKiB1VxAxLcyUePAH8cQmlbEul4+UM8LkVjPc2ZHcaFUDBEeqjoC0HyIiZ6RqOUSk6ghI+xyRD9mRQTYfIktPylaX16rhzo48KE29QH8kxjxC/hFtZYiGe70OjWVMW7Dx32bA3iO7//iAC8DOPweZFQhH6O+CmkRvW2f28oV8owEoUHdMPPg70rFJZajTkqT7uZ3ObaHEuuHOjnCpsb8vlKUsur2JhruLA94Y5QEOjuSZPR9jQ0R8zGoezNpFhN5RtUm+/bpgaG1u0jd2OSLDTRopbZ/okxcrLUYKvKprbRfHhXr8m5PK/y1V/gWRKLfiNSmxEAAAAABJRU5ErkJggg==" + webUI["html/js/authentication.js"] = "ZnVuY3Rpb24gY3JlYXRlRmlyc3RBY2NvdW50KGVsbSkgew0KICB2YXIgZXJyID0gZmFsc2U7DQogIHZhciBkaXYgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChlbG0pOw0KICBjb25zb2xlLmxvZyhkaXYpOw0KDQogIHZhciBmb3JtID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2F1dGhlbnRpY2F0aW9uJyk7DQogIA0KICBjb25zdCB1c2VybmFtZSAgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndXNlcm5hbWUnKTsNCiAgY29uc3QgcGFzc3dvcmQgID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Bhc3N3b3JkJyk7DQogIGNvbnN0IGNvbmZpcm0gICA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjb25maXJtJyk7DQoNCiAgdmFyIGlucHV0cyA9IGRpdi5nZXRFbGVtZW50c0J5VGFnTmFtZSgnSU5QVVQnKQ0KICBjb25zb2xlLmxvZyhjb25maXJtKTsNCg0KICBzd2l0Y2goY29uZmlybSkgew0KICAgIGNhc2UgbnVsbDogYnJlYWs7DQogICAgDQogICAgZGVmYXVsdDogDQogICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGlucHV0cy5sZW5ndGg7IGkrKykgew0KICAgICAgICBpZiAoaW5wdXRzW2ldLnZhbHVlLmxlbmd0aCA9PSAwKSB7DQogICAgICAgICAgaW5wdXRzW2ldLnN0eWxlLmJvcmRlckNvbG9yID0gJ3JlZCc7DQogICAgICAgICAgZXJyID0gdHJ1ZQ0KICAgICAgICB9DQogICAgICB9DQoNCiAgICAgIHN3aXRjaChlcnIpIHsNCiAgICAgICAgY2FzZSB0cnVlOiByZXR1cm47IGJyZWFrOw0KICAgICAgICBjYXNlIGZhbHNlOiANCiAgICAgICAgICBpZiAocGFzc3dvcmQudmFsdWUgIT0gY29uZmlybS52YWx1ZSkgew0KICAgICAgICAgICAgY29uZmlybS5zdHlsZS5ib3JkZXJDb2xvciA9ICdyZWQnOw0KICAgICAgICAgICAgcmV0dXJuOw0KICAgICAgICAgIH0NCiAgICAgICAgICBicmVhazsNCiAgICAgIH0NCiAgfQ0KDQoNCiAgDQoNCiAgZm9ybS5zdWJtaXQoKTsNCiAgcmV0dXJuOw0KfQ==" + webUI["html/js/base.js"] = "dmFyIGNvbmZpZyAgICAgICAgPSBuZXcgT2JqZWN0KCk7DQp2YXIgbWVudSAgICAgICAgICA9IG5ldyBPYmplY3QoKTsNCnZhciBzdWJNZW51ICAgICAgID0gbmV3IE9iamVjdCgpOw0KdmFyIGFjdGl2ZVN0cmVhbXMgPSBuZXcgT2JqZWN0KCk7DQp2YXIgeEVQRyAgICAgICAgICA9IG5ldyBPYmplY3QoKTsNCnZhciB1c2VycyAgICAgICAgID0gbmV3IE9iamVjdCgpOw0KdmFyIGxvZyAgICAgICAgICAgPSBuZXcgT2JqZWN0KCk7DQp2YXIgdW5kbyAgICAgICAgICA9IG5ldyBPYmplY3QoKTsNCnZhciB3ZWJTb2NrZXRzICAgID0gdHJ1ZTsNCnZhciBjbG9zZUxvZywgdmVyc2lvbiwgYWN0aXZlTWVudTsNCnZhciBjb2x1bW5Ub1NvcnQgID0gMA0KDQoNCmlmICh3aW5kb3cuV2ViU29ja2V0ID09PSB1bmRlZmluZWQpIHsNCiAgYWxlcnQoIllvdXIgYnJvd3NlciBkb2VzIG5vdCBzdXBwb3J0IFdlYlNvY2tldHMiKTsNCiAgd2ViU29ja2V0cyA9IGZhbHNlOw0KfSANCg0KZnVuY3Rpb24gcGFnZVJlYWR5KCkgew0KICB2YXIgZGF0YSA9IG5ldyBPYmplY3QoKTsNCiAgZGF0YVsiY21kIl0gPSAiZ2V0U2VydmVyQ29uZmlnIjsNCiAgeFRlVmUoZGF0YSk7DQogIC8vc2hvd0xvYWRpbmdTY3JlZW4oZmFsc2UpOw0KDQogIHZhciByZXNpemVIYW5kbGUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgib3BlblN0cmVhbXMiKTsNCiAgdmFyIGJveCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJteVN0cmVhbXNCb3giKTsNCiAgcmVzaXplSGFuZGxlLmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlZG93biIsIGluaXRpYWxpc2VSZXNpemUsIGZhbHNlKTsNCg0KICBmdW5jdGlvbiBpbml0aWFsaXNlUmVzaXplKGUpIHsNCiAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigibW91c2Vtb3ZlIiwgc3RhcnRSZXNpemluZywgZmFsc2UpOw0KICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJtb3VzZXVwIiwgc3RvcFJlc2l6aW5nLCBmYWxzZSk7DQogIH0NCg0KICBmdW5jdGlvbiBzdGFydFJlc2l6aW5nKGUpIHsNCiAgICBib3guc3R5bGUuaGVpZ2h0ID0gKGUuY2xpZW50WSAtIGJveC5vZmZzZXRUb3ApICsgInB4IjsNCiAgICAgIA0KICAgIHZhciBlbG0gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYWxsU3RyZWFtcyIpOw0KICAgIGlmIChlLmNsaWVudFkgPiAxMjApIHsNCiAgICAgIGVsbS5jbGFzc05hbWUgPSAidmlzaWJsZSI7IA0KICAgIH0gZWxzZSB7DQogICAgICBlbG0uY2xhc3NOYW1lID0gIm5vdFZpc2libGUiOyANCiAgICB9DQoNCiAgICBjYWxjdWxhdGVXcmFwcGVySGVpZ2h0KCk7DQoNCiAgfQ0KICBmdW5jdGlvbiBzdG9wUmVzaXppbmcoZSkgew0KICAgICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ21vdXNlbW92ZScsIHN0YXJ0UmVzaXppbmcsIGZhbHNlKTsNCiAgICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCdtb3VzZXVwJywgc3RvcFJlc2l6aW5nLCBmYWxzZSk7DQogICAgICBjYWxjdWxhdGVXcmFwcGVySGVpZ2h0KCk7DQogIH0NCg0KICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigicmVzaXplIiwgZnVuY3Rpb24oKXsNCiAgICBjYWxjdWxhdGVXcmFwcGVySGVpZ2h0KCk7DQogIH0sIHRydWUpOw0KfQ0KDQoNCmZ1bmN0aW9uIGdldE9iaktleXMob2JqKSB7DQogIHZhciBrZXlzID0gbmV3IEFycmF5KCk7DQoNCiAgZm9yICh2YXIgaSBpbiBvYmopIHsNCiAgICBpZiAob2JqLmhhc093blByb3BlcnR5KGkpKSB7DQogICAgICBrZXlzLnB1c2goaSk7DQogICAgfQ0KICB9DQoNCiAgcmV0dXJuIGtleXM7DQp9DQoNCg0KZnVuY3Rpb24gY3JlYXRlRWxlbWVudChpdGVtKSB7DQogIC8vY29uc29sZS5sb2coaXRlbSk7DQogIHZhciBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChpdGVtWyJfZWxlbWVudCJdKTsNCiAgaWYgKGl0ZW0uaGFzT3duUHJvcGVydHkoIl90ZXh0IikpIHsNCiAgICAvL2VsZW1lbnQuaW5uZXJIVE1MID0gIjxwPiIgKyBpdGVtWyJfdGV4dCJdICsgIjwvcD4iOw0KICAgIGVsZW1lbnQuaW5uZXJIVE1MID0gaXRlbVsiX3RleHQiXTsNCiAgfQ0KDQogIHZhciBrZXlzID0gZ2V0T2JqS2V5cyhpdGVtKTsNCiAgZm9yICh2YXIgaSA9IDA7IGkgPCBrZXlzLmxlbmd0aDsgaSsrKSB7DQogICAgaWYgKGtleXNbaV0uY2hhckF0KDApICE9ICJfIikgew0KICAgICAgLy9jb25zb2xlLmxvZyhrZXlzW2ldLCBpdGVtW2tleXNbaV1dKTsNCiAgICAgIGVsZW1lbnQuc2V0QXR0cmlidXRlKGtleXNbaV0sIGl0ZW1ba2V5c1tpXV0pOw0KICAgIH0NCiAgfQ0KDQogIC8vY29uc29sZS5sb2coZWxlbWVudCk7DQogIHJldHVybiBlbGVtZW50Ow0KfQ0KDQpmdW5jdGlvbiBtb2RpZnlPcHRpb24oaWQsIG9wdGlvbnMsIHZhbHVlcykgew0KICB2YXIgc2VsZWN0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpOw0KICBzZWxlY3QuaW5uZXJIVE1MID0gIiI7DQoNCiAgZm9yICh2YXIgaSA9IDA7IGkgPCBvcHRpb25zLmxlbmd0aDsgaSsrKSB7DQogIA0KICAgIHZhciBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiT1BUSU9OIikNCiAgDQogICAgZWxlbWVudC52YWx1ZSA9IHZhbHVlc1tpXTsNCiAgICBlbGVtZW50LmlubmVySFRNTCA9IG9wdGlvbnNbaV07DQoNCiAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkuYXBwZW5kQ2hpbGQoZWxlbWVudCk7DQogIA0KICB9DQoNCn0NCg0KDQpmdW5jdGlvbiBzdGFydFdlYlNvY2tldCgpIHsNCiAgaWYgKHdlYlNvY2tldHMgPT0gZmFsc2UpIHsNCiAgICByZXR1cm47DQogIH0NCg0KICAvL3dzLnNlbmQoJ3siY21kIjogImdldFNlcnZlckNvbmZpZzEifScpOw0KDQp9DQoNCmZ1bmN0aW9uIGNoZWNrRXJyKG9iaikgew0KICAvL2FsZXJ0KG9ialsiZXJyIl0pDQogIC8vc2NyZWVuTG9nKG9ialsiZXJyIl0sICJlcnJvciIpDQogIGNvbnNvbGUubG9nKG9iaik7DQogIHZhciBuZXdPYmogPSBuZXcgT2JqZWN0KCk7DQogIHZhciBuZXdFcnIgPSBuZXcgT2JqZWN0KCk7DQogIG5ld0Vyclsia2V5Il0gICA9ICJFcnJvciI7DQogIG5ld0VyclsidmFsdWUiXSA9IG9ialsiZXJyIl07DQogIG5ld0VyclsidHlwZSJdICA9ICJlcnJvciI7DQoNCiAgbmV3T2JqWzBdID0gbmV3RXJyDQogIHNob3dMb2cobmV3T2JqKTsNCiAgcmV0dXJuDQp9DQoNCmZ1bmN0aW9uIHNjcmVlbkxvZyhtc2csIG1zZ1R5cGUsIHNob3cpIHsNCiAgcmV0dXJuDQogIGNsZWFyVGltZW91dChjbG9zZUxvZykNCiAgdmFyIGRpdiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzY3JlZW5Mb2ciKTsNCiAgdmFyIG5ld01zZyA9IG5ldyBPYmplY3QoKTsNCiAgDQogIG5ld01zZ1siX2VsZW1lbnQiXSA9ICJQIjsNCiAgDQogIHN3aXRjaChtc2dUeXBlKSB7DQogICAgY2FzZSAiZXJyb3IiOiAgIG5ld01zZ1siY2xhc3MiXSA9ICJlcnJvck1zZyI7IGJyZWFrOw0KICAgIGNhc2UgIndhcm5pbmciOiBuZXdNc2dbImNsYXNzIl0gPSAid2FybmluZ01zZyI7IGJyZWFrOw0KICAgIC8vZGVmYXVsdDogICAgICBuZXdNc2dbImNsYXNzIl0gPSAiaW5mb01zZyINCiAgfQ0KDQogIG5ld01zZ1siX3RleHQiXSA9IG1zZzsNCg0KICBkaXYuYXBwZW5kQ2hpbGQoY3JlYXRlRWxlbWVudChuZXdNc2cpKTsNCg0KICBkaXYuc2Nyb2xsVG9wID0gZGl2LnNjcm9sbEhlaWdodDsNCg0KICBpZiAoc2hvdyA9PSBmYWxzZSkgew0KICAgIHJldHVybjsNCiAgfQ0KDQogIGRpdi5jbGFzc05hbWUgPSAiIg0KICBjbG9zZUxvZyA9IHNldFRpbWVvdXQoY2xvc2VTY3JlZW5Mb2csIDEwMDAwKTsNCn0NCg0KDQpmdW5jdGlvbiBjbG9zZVNjcmVlbkxvZygpIHsNCiAgdmFyIGRpdiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzY3JlZW5Mb2ciKTsNCiAgZGl2LmNsYXNzTmFtZSA9ICJzY3JlZW5Mb2dIaWRkZW4iDQp9DQoNCmZ1bmN0aW9uIHNob3dTY3JlZW5Mb2coKSB7DQogIGNsZWFyVGltZW91dChjbG9zZUxvZykNCiAgdmFyIGRpdiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzY3JlZW5Mb2ciKTsNCiAgdmFyIGN1cnJlbnRDbGFzcyA9IGRpdi5jbGFzc05hbWU7DQogIGRpdi5jbGFzc05hbWUgPSAic2NyZWVuTG9nSGlkZGVuIg0KDQogIHN3aXRjaChjdXJyZW50Q2xhc3MpIHsNCiAgICBjYXNlICJzY3JlZW5Mb2dIaWRkZW4iOiAgZGl2LmNsYXNzTmFtZSA9ICIiOyBicmVhazsgDQogICAgY2FzZSAiIjogZGl2LmNsYXNzTmFtZSA9ICJzY3JlZW5Mb2dIaWRkZW4iOyBicmVhazsNCiAgfQ0KfQ0KDQpmdW5jdGlvbiBzaG93TG9hZGluZ1NjcmVlbihlbG0pIHsNCiAgdmFyIGRpdiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJsb2FkaW5nIik7DQogIHN3aXRjaChlbG0pIHsNCiAgICBjYXNlIHRydWU6IGRpdi5jbGFzc05hbWUgPSAiYmxvY2siOyBicmVhazsNCiAgICBjYXNlIGZhbHNlOiBkaXYuY2xhc3NOYW1lID0gIm5vbmUiOyBicmVhazsNCg0KICAgIC8qDQogICAgY2FzZSB0cnVlOiBkaXYuc3R5bGUuZGlzcGxheSA9ICJibG9jayI7IGJyZWFrOw0KICAgIGNhc2UgZmFsc2U6IGRpdi5zdHlsZS5kaXNwbGF5ID0gIm5vbmUiOyBicmVhazsNCiAgICAqLw0KICB9DQp9DQoNCmZ1bmN0aW9uIGNyZWF0ZUNsaW50SW5mbyhvYmopIHsNCiAgLy9jb25zb2xlLmxvZyhvYmopOw0KICB2YXIga2V5cyA9IGdldE9iaktleXMob2JqKTsNCiAgZm9yICh2YXIgaSA9IDA7IGkgPCBrZXlzLmxlbmd0aDsgaSsrKSB7DQogICAgaWYoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoa2V5c1tpXSkpew0KICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoa2V5c1tpXSkuaW5uZXJIVE1MID0gb2JqW2tleXNbaV1dOw0KICAgIH0NCiAgfQ0KICAvL2RvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjbGllbnRJbmZvIikuY2xhc3NOYW1lID0gInZpc2libGUiOw0KfQ0KDQpmdW5jdGlvbiBzaG93RWxlbWVudChlbG1JRCwgdHlwZSkgew0KICBzd2l0Y2godHlwZSkgew0KICAgIGNhc2UgdHJ1ZTogIGNzc0NsYXNzID0gImJsb2NrIjsgYnJlYWs7DQogICAgY2FzZSBmYWxzZTogY3NzQ2xhc3MgPSAibm9uZSI7IGJyZWFrOw0KICB9DQoNCiAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoZWxtSUQpLmNsYXNzTmFtZSA9IGNzc0NsYXNzOw0KfSANCg0KZnVuY3Rpb24gc2hvd1BvcFVwRWxlbWVudChlbG0pIHsNCiAgdmFyIGFsbEVsZW1lbnRzID0gbmV3IEFycmF5KCJkZWxldGVVc2VyRGV0YWlsIiwgIm1hcHBpbmctZGV0YWlsIiwgInVzZXItZGV0YWlsIiwgImZpbGUtZGV0YWlsIik7DQoNCiAgZm9yICh2YXIgaSA9IDA7IGkgPCBhbGxFbGVtZW50cy5sZW5ndGg7IGkrKykgew0KICAgIHNob3dFbGVtZW50KGFsbEVsZW1lbnRzW2ldLCBmYWxzZSkNCiAgfQ0KDQogIHNob3dFbGVtZW50KGVsbSwgdHJ1ZSkNCg0KICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7IA0KICAgIHNob3dFbGVtZW50KCJwb3B1cCIsIHRydWUpOw0KICB9LCAxMCk7DQp9DQoNCiAgLy8gYm9keS4uLg0KDQpmdW5jdGlvbiBzaG93U3RyZWFtcyhmb3JjZSkgew0KDQogIHZhciBlbG1Cb3ggPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibXlTdHJlYW1zQm94Iik7DQogIHZhciBlbG0gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYWxsU3RyZWFtcyIpOw0KICAvL2NvbnNvbGUubG9nKGVsbSk7DQogIHNob3cgPSBlbG0uY2xhc3NOYW1lOw0KDQogIHN3aXRjaChmb3JjZSkgew0KICAgIGNhc2UgdHJ1ZTogc2hvdyA9ICJub3RWaXNpYmxlIjsgYnJlYWs7DQogICAgY2FzZSBmYWxzZTogc2hvdyA9ICJ2aXNpYmxlIjsgYnJlYWs7DQogIH0NCg0KICBzd2l0Y2goc2hvdykgew0KICAgIGNhc2UgIm5vdFZpc2libGUiOiANCiAgICAgIGVsbS5jbGFzc05hbWUgPSAidmlzaWJsZSI7IA0KICAgICAgZWxtQm94LnN0eWxlLmhlaWdodCA9ICIxMDBweCI7DQogICAgICBicmVhazsNCg0KICAgIGRlZmF1bHQ6IA0KICAgICAgZWxtLmNsYXNzTmFtZSA9ICJub3RWaXNpYmxlIjsgDQogICAgICBlbG1Cb3guc3R5bGUuaGVpZ2h0ID0gIjIwcHgiOw0KICAgICAgYnJlYWs7DQogIH0NCg0KICB2YXIgc2hvdyA9IGVsbS5zdHlsZS5kaXNwbGF5OyB7DQogICAgLy9jb25zb2xlLmxvZyhlbG0uc3R5bGUuZGlzcGxheSk7DQogIH0NCiAgDQogIGNhbGN1bGF0ZVdyYXBwZXJIZWlnaHQoKTsNCn0NCg0KZnVuY3Rpb24geHRldmVCYWNrdXAoKSB7DQogIGNvbnNvbGUubG9nKCJ4dGV2ZUJhY2t1cCIpOw0KICB2YXIgZGF0YSA9IG5ldyBPYmplY3QoKTsNCiAgZGF0YVsiY21kIl0gPSAieHRldmVCYWNrdXAiOw0KDQogIHhUZVZlKGRhdGEpOw0KfQ0KDQpmdW5jdGlvbiB4dGV2ZVJlc3RvcmUoZWxtKSB7DQogIHZhciByZXN0b3JlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiSU5QVVQiKTsNCiAgcmVzdG9yZS5zZXRBdHRyaWJ1dGUoInR5cGUiLCAiZmlsZSIpOw0KICByZXN0b3JlLnNldEF0dHJpYnV0ZSgiY2xhc3MiLCAibm90VmlzaWJsZSIpOw0KICByZXN0b3JlLnNldEF0dHJpYnV0ZSgibmFtZSIsICIiKTsNCiAgcmVzdG9yZS5pZCA9ICJ1cGxvYWQiOw0KDQogIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQocmVzdG9yZSk7DQogIHJlc3RvcmUuY2xpY2soKTsNCg0KICByZXN0b3JlLm9uY2hhbmdlID0gZnVuY3Rpb24oKSB7DQogICAgdmFyIGZpbGVuYW1lID0gcmVzdG9yZS5maWxlc1swXS5uYW1lDQogICAgLy9jb25zb2xlLmxvZyhyZXN0b3JlLnNyY0VsZW1lbnQuZmlsZXNbMF0pOw0KICAgIHZhciBjaGVjayA9IGNvbmZpcm0oIkZpbGU6ICIgKyBmaWxlbmFtZSArICJcbkFsbCBkYXRhIHdpbGwgYmUgcmVwbGFjZWQgd2l0aCB0aG9zZSBmcm9tIHRoZSBiYWNrdXAuXG5TaG91bGQgdGhlIGZpbGVzIGJlIHJlc3RvcmVkPyIpOyANCiAgICBpZiAoY2hlY2sgPT0gdHJ1ZSkgew0KICAgICAgdmFyIHJlYWRlciAgPSBuZXcgRmlsZVJlYWRlcigpOw0KICAgICAgdmFyIGZpbGUgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCdpbnB1dFt0eXBlPWZpbGVdJykuZmlsZXNbMF07DQogICAgICBpZiAoZmlsZSkgew0KICAgICAgICByZWFkZXIucmVhZEFzRGF0YVVSTChmaWxlKTsNCiAgICAgICAgcmVhZGVyLm9ubG9hZCA9IGZ1bmN0aW9uKCkgew0KICAgICAgICAgIGNvbnNvbGUubG9nKHJlYWRlci5yZXN1bHQpOw0KICAgICAgICAgIHZhciBkYXRhID0gbmV3IE9iamVjdCgpOw0KICAgICAgICAgIGRhdGFbImNtZCJdICAgICA9ICJ4dGV2ZVJlc3RvcmUiDQogICAgICAgICAgZGF0YVsiYmFzZTY0Il0gID0gcmVhZGVyLnJlc3VsdA0KDQogICAgICAgICAgeFRlVmUoZGF0YSk7DQogICAgICAgICAgcmV0dXJuDQogICAgICAgIH07DQogICAgICB9IGVsc2Ugew0KICAgICAgICBhbGVydCgiRmlsZSBjb3VsZCBub3QgYmUgbG9hZGVkIikNCiAgICAgIH0NCiAgICB9DQogIH07DQp9DQoNCmZ1bmN0aW9uIGdldEJhc2U2NChmaWxlKSB7DQogICB2YXIgcmVhZGVyID0gbmV3IEZpbGVSZWFkZXIoKTsNCiAgIHJlYWRlci5yZWFkQXNEYXRhVVJMKGZpbGUpOw0KICAgcmVhZGVyLm9ubG9hZCA9IGZ1bmN0aW9uKCkgew0KICAgICBjb25zb2xlLmxvZyhyZWFkZXIucmVzdWx0KTsNCiAgIH07DQogICByZWFkZXIub25lcnJvciA9IGZ1bmN0aW9uKGVycm9yKSB7DQogICAgIGNvbnNvbGUubG9nKCdFcnJvcjogJywgZXJyb3IpOw0KICAgfTsNCn0NCg0KZnVuY3Rpb24gbG9nb3V0KCkgew0KICBkb2N1bWVudC5jb29raWUuc3BsaXQoJzsnKS5mb3JFYWNoKGZ1bmN0aW9uKGMpIHsNCiAgICBkb2N1bWVudC5jb29raWUgPSBjLnRyaW0oKS5zcGxpdCgnPScpWzBdICsgJz07JyArICdleHBpcmVzPVRodSwgMDEgSmFuIDE5NzAgMDA6MDA6MDAgVVRDOyc7DQogIH0pOw0KICBsb2NhdGlvbi5yZWxvYWQoKTsNCn0NCg0KZnVuY3Rpb24gZ2V0Q29va2llKG5hbWUpIHsNCiAgdmFyIHZhbHVlID0gIjsgIiArIGRvY3VtZW50LmNvb2tpZTsNCiAgdmFyIHBhcnRzID0gdmFsdWUuc3BsaXQoIjsgIiArIG5hbWUgKyAiPSIpOw0KICBpZiAocGFydHMubGVuZ3RoID09IDIpIHJldHVybiBwYXJ0cy5wb3AoKS5zcGxpdCgiOyIpLnNoaWZ0KCk7DQp9DQoNCmZ1bmN0aW9uIHNldENvb2tpZSh0b2tlbikgew0KICAvL2NvbnNvbGUubG9nKHRva2VuKTsNCiAgZG9jdW1lbnQuY29va2llID0gIlRva2VuPSIgKyB0b2tlbg0KfQ0KDQo=" + webUI["html/js/classes_ts.js"] = "dmFyIF9fZXh0ZW5kcyA9ICh0aGlzICYmIHRoaXMuX19leHRlbmRzKSB8fCAoZnVuY3Rpb24gKCkgew0KICAgIHZhciBleHRlbmRTdGF0aWNzID0gZnVuY3Rpb24gKGQsIGIpIHsNCiAgICAgICAgZXh0ZW5kU3RhdGljcyA9IE9iamVjdC5zZXRQcm90b3R5cGVPZiB8fA0KICAgICAgICAgICAgKHsgX19wcm90b19fOiBbXSB9IGluc3RhbmNlb2YgQXJyYXkgJiYgZnVuY3Rpb24gKGQsIGIpIHsgZC5fX3Byb3RvX18gPSBiOyB9KSB8fA0KICAgICAgICAgICAgZnVuY3Rpb24gKGQsIGIpIHsgZm9yICh2YXIgcCBpbiBiKSBpZiAoYi5oYXNPd25Qcm9wZXJ0eShwKSkgZFtwXSA9IGJbcF07IH07DQogICAgICAgIHJldHVybiBleHRlbmRTdGF0aWNzKGQsIGIpOw0KICAgIH07DQogICAgcmV0dXJuIGZ1bmN0aW9uIChkLCBiKSB7DQogICAgICAgIGV4dGVuZFN0YXRpY3MoZCwgYik7DQogICAgICAgIGZ1bmN0aW9uIF9fKCkgeyB0aGlzLmNvbnN0cnVjdG9yID0gZDsgfQ0KICAgICAgICBkLnByb3RvdHlwZSA9IGIgPT09IG51bGwgPyBPYmplY3QuY3JlYXRlKGIpIDogKF9fLnByb3RvdHlwZSA9IGIucHJvdG90eXBlLCBuZXcgX18oKSk7DQogICAgfTsNCn0pKCk7DQp2YXIgTWFpbk1lbnUgPSAvKiogQGNsYXNzICovIChmdW5jdGlvbiAoKSB7DQogICAgZnVuY3Rpb24gTWFpbk1lbnUoKSB7DQogICAgICAgIHRoaXMuRG9jdW1lbnRJRCA9ICJtYWluLW1lbnUiOw0KICAgICAgICB0aGlzLkhUTUxUYWcgPSAiTEkiOw0KICAgIH0NCiAgICBNYWluTWVudS5wcm90b3R5cGUuY3JlYXRlID0gZnVuY3Rpb24gKCkgew0KICAgICAgICBjb25zb2xlLmxvZyh0aGlzLkRvY3VtZW50SUQpOw0KICAgIH07DQogICAgcmV0dXJuIE1haW5NZW51Ow0KfSgpKTsNCnZhciBNYWluTWVudUl0ZW0gPSAvKiogQGNsYXNzICovIChmdW5jdGlvbiAoX3N1cGVyKSB7DQogICAgX19leHRlbmRzKE1haW5NZW51SXRlbSwgX3N1cGVyKTsNCiAgICBmdW5jdGlvbiBNYWluTWVudUl0ZW0oKSB7DQogICAgICAgIHJldHVybiBfc3VwZXIgIT09IG51bGwgJiYgX3N1cGVyLmFwcGx5KHRoaXMsIGFyZ3VtZW50cykgfHwgdGhpczsNCiAgICB9DQogICAgTWFpbk1lbnVJdGVtLnByb3RvdHlwZS5jcmVhdGUyID0gZnVuY3Rpb24gKCkgew0KICAgICAgICB2YXIgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQodGhpcy5IVE1MVGFnKTsNCiAgICAgICAgZWxlbWVudC5pbm5lclRleHQgPSB0aGlzLlZhbHVlOw0KICAgICAgICBjb25zb2xlLmxvZyhlbGVtZW50KTsNCiAgICB9Ow0KICAgIHJldHVybiBNYWluTWVudUl0ZW07DQp9KE1haW5NZW51KSk7DQpmdW5jdGlvbiBwYWdlUmVhZHkoKSB7DQogICAgdmFyIGl0ZW0gPSBuZXcgTWFpbk1lbnVJdGVtKCk7DQogICAgaXRlbS5WYWx1ZSA9ICJUZXN0IjsNCiAgICBpdGVtLmNyZWF0ZTIoKTsNCn0NCg==" + webUI["html/js/menu.js"] = "DQpmdW5jdGlvbiBzZXRNZW51SXRlbSgpIHsNCg0KICBtZW51ID0gbmV3IE9iamVjdCgpOw0KICBzdWJNZW51ID0gbmV3IE9iamVjdCgpOw0KDQogIHZhciBtZW51X20zdSA9IG5ldyBPYmplY3QoKTsNCiAgbWVudV9tM3VbIl9tZW51VHlwZSJdICAgICAgID0gImlucHV0QXJyYXkiOw0KICBtZW51X20zdVsiX2VsZW1lbnQiXSAgICAgICAgPSAiTEkiOw0KICBtZW51X20zdVsiX2NvbmZpZ0tleSJdICAgICAgPSAiZmlsZXMubTN1IjsNCiAgbWVudV9tM3VbIl90ZXh0Il0gICAgICAgICAgID0gIlBsYXlsaXN0IjsNCiAgbWVudV9tM3VbIl9pY29uIl0gICAgICAgICAgID0gImltZy9tM3UucG5nIjsNCiAgbWVudV9tM3VbIl9oZWFkbGluZSJdICAgICAgID0gIlBsYXlsaXN0czogTG9jYWwgb3IgcmVtb3RlIjsNCiAgbWVudV9tM3VbIl91c2FnZSJdICAgICAgICAgID0gIjxiPkluZm88L2I+PGJyPkF2YWlsYWJpbGl0eTogRmlsZSBhdmFpbGFiaWxpdHkgaW4gcGVyY2VudDxicj5TdHJlYW1zOiAgICAgIE51bWJlciBvZiBzdHJlYW1zIGluIHRoZSBmaWxlLjxicj5ncm91cC10aXRsZTogIFN0cmVhbXMgdGhhdCBhcmUgYXNzaWduZWQgdG8gYSBncm91cC4gU2ltcGxpZmllcyBmaWx0ZXJpbmcgc3RyZWFtczxicj50dmctaWQ6ICAgICAgIFRoaXMgSUQgaXMgdXNlZCBmb3IgYXV0b21hdGljIG1hcHBpbmcsIG11c3QgbWF0Y2ggd2l0aCB0aGUgY2hhbm5lbCBJRCBpbiB0aGUgWE1MVFYgZmlsZS48YnI+VW5pcXVlIElEOiAgICBTdHJlYW1zIHdpdGggYSB1bmlxdWUgSUQgdG8gaWRlbnRpZnkgdGhlbS4gQWxsb3dzIGNoYW5uZWwgbmFtZSBjaGFuZ2VzIGluIHRoZSBNM1Ugd2l0aG91dCBsb3NpbmcgdGhlIFhNTFRWIG1hcHBpbmcgKFBQViAvIGxpdmUgZXZlbnRzKS48YnI+PGJyPjxiPlVzYWdlIE0zVTo8L2I+PGJyPlJlbW90ZSBwbGF5bGlzdDogaHR0cDovL3lvdXIuaXB0di5wcm92aWRlci5jb20vZmlsZS5tM3U8YnI+TG9jYWwgIHBsYXlsaXN0OiAvcGF0aC90by9maWxlLm0zdTxicj48YnI+PGI+VXNhZ2UgSERIb21lUnVuOjwvYj48YnI+SVA6IDE5Mi4xNjguMS4xMDo1MDA0PGJyPiINCiAgbWVudV9tM3VbIm5hbWUiXSAgICAgICAgICAgID0gImZpbGUiOw0KICBtZW51X20zdVsiaWQiXSAgICAgICAgICAgICAgPSAiZmlsZSI7DQogIG1lbnVfbTN1WyJ2YWx1ZSJdICAgICAgICAgICA9IG1lbnVfbTN1WyJuYW1lIl07DQogIG1lbnVfbTN1WyJwbGFjZWhvbGRlciJdICAgICA9ICJQbGF5bGlzdDogbG9jYWwgb3IgcmVtb3RlIjsNCiAgbWVudV9tM3VbIm9uY2xpY2siXSAgICAgICAgID0gImphdmFzY3JpcHQ6IHRvZ2dsZU1lbnUodGhpcyk7IjsNCiAgbWVudV9tM3VbImNsYXNzIl0gICAgICAgICAgID0gIm1lbnUtbm90QWN0aXZlIjsNCg0KDQogIHZhciBtZW51X2ZpbHRlciA9IG5ldyBPYmplY3QoKTsNCiAgbWVudV9maWx0ZXJbIl9tZW51VHlwZSJdICAgID0gImlucHV0QXJyYXkiOw0KICBtZW51X2ZpbHRlclsiX2VsZW1lbnQiXSAgICAgPSAiTEkiOw0KICBtZW51X2ZpbHRlclsiX2NvbmZpZ0tleSJdICAgPSAiZmlsdGVyIjsNCiAgbWVudV9maWx0ZXJbIl90ZXh0Il0gICAgICAgID0gIkZpbHRlciI7DQogIG1lbnVfZmlsdGVyWyJfaWNvbiJdICAgICAgICA9ICJpbWcvZmlsdGVyLnBuZyI7DQogIG1lbnVfZmlsdGVyWyJfaGVhZGxpbmUiXSAgICA9ICJGaWx0ZXIgYnkgTTNVIHBhcmFtZXRlcnMsIGUuZy4gZ3JvdXAtdGl0bGUiOw0KICBtZW51X2ZpbHRlclsiX3VzYWdlIl0gICAgICAgPSAiPGI+VXNhZ2U6PC9iPjxicj5TcG9ydCAtIEFsbCBzcG9ydHMgY2hhbm5lbHM8YnI+U3BvcnQge0hEfSAtIEFsbCBIRCBzcG9ydHMgY2hhbm5lbHM8YnI+U3BvcnQge0hEfSAhe0VTLERFfSAtIEFsbCBIRCBzcG9ydHMgY2hhbm5lbHMsIGJ1dCBubyBTcGFuaXNoIGFuZCBHZXJtYW48YnI+PGJyPlRvIGZpbHRlciB0aGUgc3RyZWFtcyBvZiBhIEhESG9tZVJ1biwgdGhlIHBsYXlsaXN0IG5hbWUgY2FuIGJlIGVudGVyZWQ6PGJyPk15IHR1bmVyIHtIRH0iDQogIC8vbWVudV9maWx0ZXJbIl91c2FnZSJdICAgICAgID0gIjxiPlVzYWdlOjwvYj48YnI+QWxsIHNwb3J0cyBjaGFubmVsczogU3BvcnQ8YnI+QWxsIEhEIHNwb3J0cyBjaGFubmVsczogU3BvcnQge0hEfTxicj5BbGwgSEQgc3BvcnRzIGNoYW5uZWxzLCBidXQgbm8gU3BhbmlzaCBhbmQgR2VybWFuOiBTcG9ydCB7SER9ICF7RVMsREV9Ig0KICBtZW51X2ZpbHRlclsibmFtZSJdICAgICAgICAgPSAiZmlsdGVyIjsNCiAgbWVudV9maWx0ZXJbImlkIl0gICAgICAgICAgID0gIk0zVSI7DQogIG1lbnVfZmlsdGVyWyJ2YWx1ZSJdICAgICAgICA9IG1lbnVfZmlsdGVyWyJuYW1lIl07DQogIG1lbnVfZmlsdGVyWyJwbGFjZWhvbGRlciJdICA9ICJGaWx0ZXIgc3RyZWFtczogU3BvcnQiOw0KICBtZW51X2ZpbHRlclsib25jbGljayJdICAgICAgPSAiamF2YXNjcmlwdDogdG9nZ2xlTWVudSh0aGlzKTsiOw0KICBtZW51X2ZpbHRlclsiY2xhc3MiXSAgICAgICAgPSAibWVudS1ub3RBY3RpdmUiOw0KDQogIHZhciBtZW51X2lkID0gbmV3IE9iamVjdCgpOw0KICBtZW51X2lkWyJfbWVudVR5cGUiXSAgICAgICAgPSAiaW5wdXRBcnJheSI7DQogIG1lbnVfaWRbIl9lbGVtZW50Il0gICAgICAgICA9ICJMSSI7DQogIG1lbnVfaWRbIl9jb25maWdLZXkiXSAgICAgICA9ICJpZCI7DQogIG1lbnVfaWRbIl90ZXh0Il0gICAgICAgICAgICA9ICJQTVMgSUQiOw0KICBtZW51X2lkWyJfaWNvbiJdICAgICAgICAgICAgPSAiaW1nL251bWJlci5wbmciOw0KICBtZW51X2lkWyJfaGVhZGxpbmUiXSAgICAgICAgPSAiU2V0dXAgUE1TIGd1aWRlIG51bWJlciI7DQogIG1lbnVfaWRbIl91c2FnZSJdICAgICAgICAgICA9ICdTb21lIHBsYXlsaXN0cyBoYXZlIHVuaXF1ZSBjaGFubmVsIElEcy48YnI+RW50ZXIgdGhlIGtleXdvcmQgb2YgdGhlIElELiBUaGUgY2hhbm5lbCBhc3NpZ25tZW50IGluIFBNUyB3aWxsIGNoYW5nZSBhcyBhIHJlc3VsdC48YnI+PGJyPmUuZy4gY2hhbm5lbElEPGJyPiNFWFRJTkY6MCB0eXBlPSJzdHJlYW0iIDxiPmNoYW5uZWxJZDwvYj49IjgxIiwgTXkgU3RyZWFtaW5nIENoYW5uZWwgSEQ8YnI+PGJyPk9ubHkgZW50ZXIgaGVyZSBpZiB5b3Uga25vdyB3aGF0IHlvdSBhcmUgZG9pbmchJw0KICBtZW51X2lkWyJuYW1lIl0gICAgICAgICAgICAgPSAiaWQiOw0KICBtZW51X2lkWyJpZCJdICAgICAgICAgICAgICAgPSAiaWQiOw0KICBtZW51X2lkWyJ2YWx1ZSJdICAgICAgICAgICAgPSBtZW51X2lkWyJuYW1lIl07DQogIG1lbnVfaWRbInBsYWNlaG9sZGVyIl0gICAgICA9ICJVbmlxdWUgSUQgZnJvbSB0aGUgTTNVIGZpbGUiOw0KICBtZW51X2lkWyJvbmNsaWNrIl0gICAgICAgICAgPSAiamF2YXNjcmlwdDogdG9nZ2xlTWVudSh0aGlzKTsiOw0KICBtZW51X2lkWyJjbGFzcyJdICAgICAgICAgICAgPSAibWVudS1ub3RBY3RpdmUiOw0KDQoNCiAgdmFyIG1lbnVfeG1sdHYgPSBuZXcgT2JqZWN0KCk7DQogIG1lbnVfeG1sdHZbIl9tZW51VHlwZSJdICAgICA9ICJpbnB1dEFycmF5IjsNCiAgbWVudV94bWx0dlsiX2VsZW1lbnQiXSAgICAgID0gIkxJIjsNCiAgbWVudV94bWx0dlsiX2NvbmZpZ0tleSJdICAgID0gImZpbGVzLnhtbHR2IjsNCiAgbWVudV94bWx0dlsiX3RleHQiXSAgICAgICAgID0gIlhNTFRWIjsNCiAgbWVudV94bWx0dlsiX2ljb24iXSAgICAgICAgID0gImltZy94bWx0di5wbmciOw0KICBtZW51X3htbHR2WyJfaGVhZGxpbmUiXSAgICAgPSAiWE1MVFYgZmlsZXM6IExvY2FsIG9yIHJlbW90ZSI7DQogIG1lbnVfeG1sdHZbIl91c2FnZSJdICAgICAgICA9ICI8Yj5JbmZvOjwvYj48YnI+QXZhaWxhYmlsaXR5OiBGaWxlIGF2YWlsYWJpbGl0eSBpbiBwZXJjZW50PGJyPkNoYW5uZWxzOiAgICAgTnVtYmVyIG9mIGNoYW5uZWxzIGluIHRoZSBmaWxlPGJyPlByb2dyYW1zOiAgICAgTnVtYmVyIG9mIEVQRyBkYXRhPGJyPjxicj48Yj5Vc2FnZTo8L2I+PGJyPlJlbW90ZSBYTUxUViBmaWxlOiBodHRwOi8veW91ci5lcGcucHJvdmlkZXIuY29tL2d1aWRlLnhtbDxicj5Mb2NhbCAgWE1MVFYgZmlsZTogL3BhdGgvdG8vZ3VpZGUueG1sIg0KICBtZW51X3htbHR2WyJuYW1lIl0gICAgICAgICAgPSAieG1sdHYiOw0KICBtZW51X3htbHR2WyJpZCJdICAgICAgICAgICAgPSAieG1sdHYiOw0KICBtZW51X3htbHR2WyJ2YWx1ZSJdICAgICAgICAgPSBtZW51X3htbHR2WyJuYW1lIl07DQogIG1lbnVfeG1sdHZbInBsYWNlaG9sZGVyIl0gICA9ICJYTUxUViBGaWxlOiBsb2NhbCBvciByZW1vdGUiOw0KICBtZW51X3htbHR2WyJvbmNsaWNrIl0gICAgICAgPSAiamF2YXNjcmlwdDogdG9nZ2xlTWVudSh0aGlzKTsiOw0KICBtZW51X3htbHR2WyJjbGFzcyJdICAgICAgICAgPSAibWVudS1ub3RBY3RpdmUiOw0KDQogIG1lbnVfbWFwcGluZyA9IG5ldyBPYmplY3QoKTsNCiAgbWVudV9tYXBwaW5nWyJfZWxlbWVudCJdICAgPSAiTEkiOw0KICBtZW51X21hcHBpbmdbIl90ZXh0Il0gICAgICA9ICJNYXBwaW5nIjsNCiAgbWVudV9tYXBwaW5nWyJfaWNvbiJdICAgICAgPSAiaW1nL21hcHBpbmcucG5nIjsNCiAgbWVudV9tYXBwaW5nWyJfY29uZmlnS2V5Il0gPSAibWFwcGluZyI7DQogIG1lbnVfbWFwcGluZ1siX2hlYWRsaW5lIl0gID0gIlhNTFRWIGFzc2lnbm1lbnQgYW5kIHNvcnRpbmcgb2YgY2hhbm5lbHMiOw0KICBtZW51X21hcHBpbmdbImlkIl0gICAgICAgICA9ICJtYXBwaW5nIjsNCiAgbWVudV9tYXBwaW5nWyJvbmNsaWNrIl0gICAgPSAiamF2YXNjcmlwdDogdG9nZ2xlTWVudSh0aGlzKTsiOw0KICBtZW51X21hcHBpbmdbImNsYXNzIl0gICAgICA9ICJtZW51LW5vdEFjdGl2ZSBwaG9uZSI7DQoNCiAgbWVudV91c2VycyA9IG5ldyBPYmplY3QoKTsNCiAgbWVudV91c2Vyc1siX2VsZW1lbnQiXSAgID0gIkxJIjsNCiAgbWVudV91c2Vyc1siX3RleHQiXSAgICAgID0gIlVzZXJzIjsNCiAgbWVudV91c2Vyc1siX2ljb24iXSAgICAgID0gImltZy91c2Vycy5wbmciOw0KICBtZW51X3VzZXJzWyJfY29uZmlnS2V5Il0gPSAidXNlcnMiOw0KICBtZW51X3VzZXJzWyJfaGVhZGxpbmUiXSAgPSAiQWRtaW5pc3RyYXRpb24gb2YgdXNlcnMgYW5kIHBlcm1pc3Npb25zIjsNCiAgbWVudV91c2Vyc1siaWQiXSAgICAgICAgID0gInVzZXJzIjsNCiAgbWVudV91c2Vyc1sib25jbGljayJdICAgID0gImphdmFzY3JpcHQ6IHRvZ2dsZU1lbnUodGhpcyk7IjsNCiAgbWVudV91c2Vyc1siY2xhc3MiXSAgICAgID0gIm1lbnUtbm90QWN0aXZlIjsNCiAgbWVudV91c2Vyc1siX3VzYWdlIl0gICAgID0gIjxiPkF1dGhvcml6YXRpb24gZ3JvdXBzOjwvYj48YnI+V0VCOiBVc2VycyBjYW4gbG9nIGluIHRvIHRoZSB3ZWIgaW50ZXJmYWNlPGJyPlBNUzogUHJvZ3JhbXMgbGlrZSBQbGV4IGNhbiBhY2Nlc3MgdGhlIGNoYW5uZWwgbGlzdC4gTG9naW4gdmlhIERWUiBJUDogdXNlcm5hbWU6cGFzc3dvcmRAeHRldmUuaXA6cG9ydDxicj5NM1U6IEFsbG93cyBjbGllbnRzIHRvIGRvd25sb2FkIHRoZSBNM1UgcGxheWxpc3QuPGJyPlhNTDogQWxsb3dzIGNsaWVudHMgdG8gZG93bmxvYWQgdGhlIFhNTFRWIGZpbGUuPGJyPkFQSTogQWxsb3dzIGNsaWVudHMgdG8gdXNlIHRoZSBBUEkgaW50ZXJmYWNlLjxicj48YnI+ISEhIEZvciBQTVMgYXV0aGVudGljYXRpb24sIG9ubHkgdGhlIGZvbGxvd2luZyBzcGVjaWFsIGNoYXJhY3RlcnMgYXJlIHZhbGlkOiAhJCgpPS4sLTo7PGJyPjxicj5UaGUgaW5kaXZpZHVhbCBhdXRoZW50aWNhdGlvbiBncm91cHMgY2FuIGJlIGFjdGl2YXRlZCAvIGRlYWN0aXZhdGVkIGluIHRoZSBzZXR0aW5ncyBtZW51LiINCiAgDQogIG1lbnVfc2V0dGluZ3MgPSBuZXcgT2JqZWN0KCk7DQogIG1lbnVfc2V0dGluZ3NbIl9lbGVtZW50Il0gICA9ICJMSSI7DQogIG1lbnVfc2V0dGluZ3NbIl90ZXh0Il0gICAgICA9ICJTZXR0aW5ncyI7DQogIG1lbnVfc2V0dGluZ3NbIl9pY29uIl0gICAgICA9ICJpbWcvc2V0dGluZ3MucG5nIjsNCiAgbWVudV9zZXR0aW5nc1siX2NvbmZpZ0tleSJdID0gInNldHRpbmdzIjsNCiAgbWVudV9zZXR0aW5nc1siX2hlYWRsaW5lIl0gID0gIlNldHRpbmdzIjsNCiAgbWVudV9zZXR0aW5nc1siX3N1Yk1lbnUiXSAgID0gIjcwMSw3MDIsNzAzLDcwNCw3MDUsNzA2LDcwNyw3MDgsNzk5LDcxMCw3MTEsNzEyLDcxMyw3MTQiOw0KICBtZW51X3NldHRpbmdzWyJpZCJdICAgICAgICAgPSAic2V0dGluZ3MiOw0KICBtZW51X3NldHRpbmdzWyJvbmNsaWNrIl0gICAgPSAiamF2YXNjcmlwdDogdG9nZ2xlTWVudSh0aGlzKTsiOw0KICBtZW51X3NldHRpbmdzWyJjbGFzcyJdICAgICAgPSAibWVudS1ub3RBY3RpdmUiOw0KDQogIG1lbnVfbG9nID0gbmV3IE9iamVjdCgpOw0KICBtZW51X2xvZ1siX2VsZW1lbnQiXSAgICAgICAgPSAiTEkiOw0KICBtZW51X2xvZ1siX3RleHQiXSAgICAgICAgICAgPSAiTG9nIjsNCiAgbWVudV9sb2dbIl9pY29uIl0gICAgICAgICAgID0gImltZy9sb2cucG5nIjsNCiAgbWVudV9sb2dbIl9oZWFkbGluZSJdICAgICAgID0gIkxvZyI7DQogIG1lbnVfbG9nWyJfY29uZmlnS2V5Il0gICAgICA9ICJsb2ciOw0KICBtZW51X2xvZ1siaWQiXSAgICAgICAgICAgICAgPSAibG9nIjsNCiAgbWVudV9sb2dbIm9uY2xpY2siXSAgICAgICAgID0gImphdmFzY3JpcHQ6IHRvZ2dsZU1lbnUodGhpcyk7IjsNCiAgbWVudV9sb2dbImNsYXNzIl0gICAgICAgICAgID0gIm1lbnUtbm90QWN0aXZlIjsNCg0KICBtZW51X2xvZ291dCA9IG5ldyBPYmplY3QoKTsNCiAgbWVudV9sb2dvdXRbIl9lbGVtZW50Il0gICA9ICJMSSI7DQogIG1lbnVfbG9nb3V0WyJfdGV4dCJdICAgICAgPSAiTG9nb3V0IjsNCiAgbWVudV9sb2dvdXRbIl9pY29uIl0gICAgICA9ICJpbWcvbG9nb3V0LnBuZyI7DQogIG1lbnVfbG9nb3V0WyJpZCJdICAgICAgICAgPSAibG9nb3V0IjsNCiAgbWVudV9sb2dvdXRbIm9uY2xpY2siXSAgICA9ICJqYXZhc2NyaXB0OiBsb2dvdXQoKTsiOw0KICBtZW51X2xvZ291dFsiY2xhc3MiXSAgICAgID0gIm1lbnUtbm90QWN0aXZlIjsNCg0KICB2YXIgbWVudV9zY2hlZHVsZSA9IG5ldyBPYmplY3QoKTsNCiAgbWVudV9zY2hlZHVsZVsiX21lbnVUeXBlIl0gID0gImlucHV0QXJyYXkiOw0KICBtZW51X3NjaGVkdWxlWyJfZWxlbWVudCJdICAgPSAiTEkiOw0KICBtZW51X3NjaGVkdWxlWyJfY29uZmlnS2V5Il0gPSAidXBkYXRlIjsNCiAgbWVudV9zY2hlZHVsZVsiX3RleHQiXSAgICAgID0gIlNjaGVkdWxlIjsNCiAgbWVudV9zY2hlZHVsZVsiX2ljb24iXSAgICAgID0gImltZy9zY2hlZHVsZS5wbmciOw0KICBtZW51X3NjaGVkdWxlWyJfaGVhZGxpbmUiXSAgPSAiU2NoZWR1bGUgZm9yIHVwZGF0aW5nIE0zVSwgWE1MVFYgZmlsZXMgYW5kIGNyZWF0aW5nIGEgbG9jYWwgYmFja3VwIjsNCiAgbWVudV9zY2hlZHVsZVsiX3VzYWdlIl0gICAgID0gIjxiPlVzYWdlOjwvYj48YnI+MDgxNSA9IDg6MTUgYW08YnI+MTkzMCA9IDc6MzAgcG0iDQogIG1lbnVfc2NoZWR1bGVbIm5hbWUiXSAgICAgICA9ICJ1cGRhdGUiOw0KICBtZW51X3NjaGVkdWxlWyJpZCJdICAgICAgICAgPSAidXBkYXRlIjsNCiAgbWVudV9zY2hlZHVsZVsidmFsdWUiXSAgICAgID0gbWVudV9pZFsibmFtZSJdOw0KICBtZW51X3NjaGVkdWxlWyJwbGFjZWhvbGRlciJdPSAidGltZSBvZiBkYXkgKDI0LWhvdXIgY2xvY2spIjsNCiAgbWVudV9zY2hlZHVsZVsib25jbGljayJdICAgID0gImphdmFzY3JpcHQ6IHRvZ2dsZU1lbnUodGhpcyk7IjsNCiAgbWVudV9zY2hlZHVsZVsiY2xhc3MiXSAgICAgID0gIm1lbnUtbm90QWN0aXZlIjsNCg0KICB2YXIgbWVudV9maWxlc1VwZGF0ZSA9IG5ldyBPYmplY3QoKTsNCiAgbWVudV9maWxlc1VwZGF0ZVsiX2VsZW1lbnQiXSA9ICJMSSI7DQogIG1lbnVfZmlsZXNVcGRhdGVbIl9tZW51VHlwZSJdICAgICA9ICJjaGVja2JveCI7DQogIG1lbnVfZmlsZXNVcGRhdGVbIl9jb25maWdLZXkiXSAgICA9ICJmaWxlcy51cGRhdGUiOw0KICBtZW51X2ZpbGVzVXBkYXRlWyJfbGFiZWwiXSAgICAgICAgPSAiVXBkYXRlIHRoZSBwcm92aWRlciBmaWxlcyBhdCBzeXN0ZW0gc3RhcnR1cCI7DQogIG1lbnVfZmlsZXNVcGRhdGVbIl9oZWFkbGluZSJdICAgICA9ICJVcGRhdGUgdGhlIHByb3ZpZGVyIGZpbGVzIGF0IHN5c3RlbSBzdGFydHVwIjsNCiAgbWVudV9maWxlc1VwZGF0ZVsiX3VzYWdlIl0gICAgICAgID0gIlBsYXlsaXN0cyBhbmQgWE1MVFYgZmlsZXMgYXJlIHVwZGF0ZWQgYnkgeFRlVmUgYXQgc3lzdGVtIHN0YXJ0dXAuIg0KICBtZW51X2ZpbGVzVXBkYXRlWyJuYW1lIl0gICAgICAgICAgPSAiZmlsZXMudXBkYXRlIjsNCiAgbWVudV9maWxlc1VwZGF0ZVsiaWQiXSAgICAgICAgICAgID0gImZpbGVzLnVwZGF0ZSI7DQogIG1lbnVfZmlsZXNVcGRhdGVbInZhbHVlIl0gICAgICAgICA9IG1lbnVfZmlsZXNVcGRhdGVbIm5hbWUiXTsNCiAgbWVudV9maWxlc1VwZGF0ZVsib25jbGljayJdICAgICAgID0gImphdmFzY3JpcHQ6IHRvZ2dsZU1lbnUodGhpcyk7IjsNCiAgbWVudV9maWxlc1VwZGF0ZVsiY2xhc3MiXSAgICAgICAgID0gIm1lbnUtbm90QWN0aXZlIjsNCiAgDQogIHZhciBtZW51X3R1bmVyID0gbmV3IE9iamVjdCgpOw0KICBtZW51X3R1bmVyWyJfZWxlbWVudCJdICAgICAgPSAiTEkiOw0KICBtZW51X3R1bmVyWyJfbWVudVR5cGUiXSAgICAgPSAic2VsZWN0IjsNCiAgbWVudV90dW5lclsiX2NvbmZpZ0tleSJdICAgID0gInR1bmVyIjsNCiAgbWVudV90dW5lclsiX2xhYmVsIl0gICAgICAgID0gIkF2YWlsYWJsZSB0dW5lcnMiOw0KICBtZW51X3R1bmVyWyJfdGV4dCJdICAgICAgICAgPSAiVHVuZXIiOw0KICBtZW51X3R1bmVyWyJfaWNvbiJdICAgICAgICAgPSAiaW1nL3R1bmVyLnBuZyI7DQogIG1lbnVfdHVuZXJbIl9oZWFkbGluZSJdICAgICA9ICJOdW1iZXIgb2YgdHVuZXJzIjsNCiAgbWVudV90dW5lclsiX3VzYWdlIl0gICAgICAgID0gIlRoaXMgc2V0dGluZyBpcyBvbmx5IHVzZWQgYnkgUGxleCBhbmQgRW1ieS48YnI+VGhlIG51bWJlciBvZiBjb25jdXJyZW50IHN0cmVhbXMgYWxsb3dlZCBieSB0aGUgSVBUViBwcm92aWRlci48YnI+QWZ0ZXIgYSBjaGFuZ2UsIHhUZVZlIG11c3QgYmUgZGVsZXRlIGluIHRoZSBQTVMgRFZSIHNldHRpbmdzIGFuZCBzZXQgdXAgYWdhaW4uIg0KICBtZW51X3R1bmVyWyJuYW1lIl0gICAgICAgICAgPSAidHVuZXIiOw0KICBtZW51X3R1bmVyWyJpZCJdICAgICAgICAgICAgPSAidHVuZXIiOw0KICBtZW51X3R1bmVyWyJ2YWx1ZSJdICAgICAgICAgPSBtZW51X3R1bmVyWyJuYW1lIl07DQogIG1lbnVfdHVuZXJbInBsYWNlaG9sZGVyIl0gICA9ICJOdW1iZXIgb2YgdHVuZXJzIjsNCiAgbWVudV90dW5lclsib25jbGljayJdICAgICAgID0gImphdmFzY3JpcHQ6IHRvZ2dsZU1lbnUodGhpcyk7IjsNCiAgbWVudV90dW5lclsiY2xhc3MiXSAgICAgICAgID0gIm1lbnUtbm90QWN0aXZlIjsNCg0KICB2YXIgb3B0aW9uVmFsdWVzID0gbmV3IEFycmF5KCk7DQogIGZvciAodmFyIGkgPSAxOyBpIDw9IDEwMDsgaSsrKSB7DQogICAgb3B0aW9uVmFsdWVzLnB1c2goaSkNCiAgfQ0KICBtZW51X3R1bmVyWyJfb3B0aW9uVmFsdWVzIl0gPSBvcHRpb25WYWx1ZXM7DQogIA0KICB2YXIgbWVudV9lcGcgPSBuZXcgT2JqZWN0KCk7DQogIG1lbnVfZXBnWyJfZWxlbWVudCJdID0gIkxJIjsNCiAgbWVudV9lcGdbIl9tZW51VHlwZSJdICAgICA9ICJzZWxlY3QiOw0KICBtZW51X2VwZ1siX2NvbmZpZ0tleSJdICAgID0gImVwZ1NvdXJjZSI7DQogIG1lbnVfZXBnWyJfbGFiZWwiXSAgICAgICAgPSAiU2VsZWN0aW9uIG9mIHRoZSBFUEcgc291cmNlIjsNCiAgbWVudV9lcGdbIl90ZXh0Il0gICAgICAgICA9ICJFUEcgc291cmNlIjsNCiAgbWVudV9lcGdbIl9oZWFkbGluZSJdICAgICA9ICJTZWxlY3Rpb24gb2YgdGhlIEVQRyBzb3VyY2UiOw0KICBtZW51X2VwZ1siX3VzYWdlIl0gICAgICAgID0gIlBNUzogICBVc2UgRVBHIGRhdGEgZnJvbSBQbGV4IG9yIEVtYnkuPGJyPlhFUEc6ICBVc2Ugb2YgZXh0ZXJuYWwgRVBHIGRhdGEgKFhNTFRWKS48YnI+ICAgICAgIFNldmVyYWwgWE1MVFYgc291cmNlcyBwb3NzaWJsZS48YnI+ICAgICAgIEFsbG93cyBlZGl0aW5nIGFuZCBvcmRlciBjaGFubmVscy48YnI+ICAgICAgIE0zVSAvIFhNTFRWIGV4cG9ydCAoSFRUUCBsaW5rIGZvciBJUFRWIGFwcHMpLiINCiAgbWVudV9lcGdbIm5hbWUiXSAgICAgICAgICA9ICJlcGdTb3VyY2UiOw0KICBtZW51X2VwZ1siaWQiXSAgICAgICAgICAgID0gImVwZ1NvdXJjZSI7DQogIG1lbnVfZXBnWyJ2YWx1ZSJdICAgICAgICAgPSBtZW51X2VwZ1sibmFtZSJdOw0KICBtZW51X2VwZ1sicGxhY2Vob2xkZXIiXSAgID0gIkVQRyBzb3VyY2UiOw0KICBtZW51X2VwZ1sib25jbGljayJdICAgICAgID0gImphdmFzY3JpcHQ6IHRvZ2dsZU1lbnUodGhpcyk7IjsNCiAgbWVudV9lcGdbImNsYXNzIl0gICAgICAgICA9ICJtZW51LW5vdEFjdGl2ZSI7DQogIG1lbnVfZXBnWyJfb3B0aW9uVmFsdWVzIl0gPSBuZXcgQXJyYXkoIlBNUyIsICJYRVBHIik7DQoNCiAgdmFyIG1lbnVfeGVwZyA9IG5ldyBPYmplY3QoKTsNCiAgbWVudV94ZXBnWyJfZWxlbWVudCJdID0gIkxJIjsNCiAgbWVudV94ZXBnWyJfbWVudVR5cGUiXSAgICAgPSAiY2hlY2tib3giOw0KICBtZW51X3hlcGdbIl9jb25maWdLZXkiXSAgICA9ICJ4dGV2ZUF1dG9VcGRhdGUiOw0KICBtZW51X3hlcGdbIl9sYWJlbCJdICAgICAgICA9ICJBdXRvbWF0aWMgdXBkYXRlIG9mIHhUZVZlIjsNCiAgbWVudV94ZXBnWyJfaGVhZGxpbmUiXSAgICAgPSAiQXV0b21hdGljIHVwZGF0ZSBvZiB4VGVWZSI7DQogIG1lbnVfeGVwZ1siX3VzYWdlIl0gICAgICAgID0gIklmIGEgbmV3IHZlcnNpb24gb2YgeFRlVmUgaXMgYXZhaWxhYmxlLCBpdCB3aWxsIGJlIGF1dG9tYXRpY2FsbHkgaW5zdGFsbGVkLiINCiAgbWVudV94ZXBnWyJuYW1lIl0gICAgICAgICAgPSAieHRldmVBdXRvVXBkYXRlIjsNCiAgbWVudV94ZXBnWyJpZCJdICAgICAgICAgICAgPSAieHRldmVBdXRvVXBkYXRlIjsNCiAgbWVudV94ZXBnWyJ2YWx1ZSJdICAgICAgICAgPSBtZW51X3hlcGdbIm5hbWUiXTsNCiAgbWVudV94ZXBnWyJvbmNsaWNrIl0gICAgICAgPSAiamF2YXNjcmlwdDogdG9nZ2xlTWVudSh0aGlzKTsiOw0KICBtZW51X3hlcGdbImNsYXNzIl0gICAgICAgICA9ICJtZW51LW5vdEFjdGl2ZSI7DQoNCiAgdmFyIG1lbnVfYXV0b0JhY2t1cFBhdGggPSBuZXcgT2JqZWN0KCk7DQogIG1lbnVfYXV0b0JhY2t1cFBhdGhbIl9lbGVtZW50Il0gICA9ICJMSSI7DQogIG1lbnVfYXV0b0JhY2t1cFBhdGhbIl9tZW51VHlwZSJdICA9ICJzaW5nbGVJbnB1dCI7DQogIG1lbnVfYXV0b0JhY2t1cFBhdGhbIl9jb25maWdLZXkiXSA9ICJiYWNrdXAucGF0aCI7DQogIG1lbnVfYXV0b0JhY2t1cFBhdGhbIl9sYWJlbCJdICAgICA9ICJMb2NhdGlvbiBmb3IgYXV0b21hdGljIGJhY2t1cHMiOw0KICBtZW51X2F1dG9CYWNrdXBQYXRoWyJfaGVhZGxpbmUiXSAgPSAiTG9jYXRpb24gZm9yIGF1dG9tYXRpYyBiYWNrdXBzIjsNCiAgbWVudV9hdXRvQmFja3VwUGF0aFsiX3VzYWdlIl0gICAgID0gIkJlZm9yZSBhbnkgdXBkYXRlIG9mIHRoZSBwcm92aWRlciBkYXRhIGJ5IHRoZSBzY2hlZHVsZSwgeFRlVmUgY3JlYXRlcyBhIGJhY2t1cC4gVGhlIHBhdGggZm9yIHRoZSBhdXRvbWF0aWMgYmFja3VwcyBjYW4gYmUgY2hhbmdlZC4geFRlVmUgcmVxdWlyZXMgd3JpdGUgcGVybWlzc2lvbiBmb3IgdGhpcyBmb2xkZXIuIg0KICBtZW51X2F1dG9CYWNrdXBQYXRoWyJuYW1lIl0gICAgICAgPSAiYmFja3VwLnBhdGgiOw0KICBtZW51X2F1dG9CYWNrdXBQYXRoWyJpZCJdICAgICAgICAgPSAiYmFja3VwLnBhdGgiOw0KICBtZW51X2F1dG9CYWNrdXBQYXRoWyJ2YWx1ZSJdICAgICAgPSBtZW51X2F1dG9CYWNrdXBQYXRoWyJuYW1lIl07DQogIG1lbnVfYXV0b0JhY2t1cFBhdGhbIm9uY2xpY2siXSAgICA9ICJqYXZhc2NyaXB0OiB0b2dnbGVNZW51KHRoaXMpOyI7DQogIG1lbnVfYXV0b0JhY2t1cFBhdGhbImNsYXNzIl0gICAgICA9ICJtZW51LW5vdEFjdGl2ZSI7DQoNCiAgdmFyIG1lbnVfYXV0b0JhY2t1cEtlZXAgPSBuZXcgT2JqZWN0KCk7DQogIG1lbnVfYXV0b0JhY2t1cEtlZXBbIl9lbGVtZW50Il0gICA9ICJMSSI7DQogIG1lbnVfYXV0b0JhY2t1cEtlZXBbIl9tZW51VHlwZSJdICA9ICJzZWxlY3QiOw0KICBtZW51X2F1dG9CYWNrdXBLZWVwWyJfY29uZmlnS2V5Il0gPSAiYmFja3VwLmtlZXAiOw0KICBtZW51X2F1dG9CYWNrdXBLZWVwWyJfdGV4dCJdICAgICAgPSAiS2VlcCI7DQogIG1lbnVfYXV0b0JhY2t1cEtlZXBbIl9sYWJlbCJdICAgICA9ICJOdW1iZXIgb2YgYmFja3VwcyB0byBrZWVwIjsNCiAgbWVudV9hdXRvQmFja3VwS2VlcFsiX2hlYWRsaW5lIl0gID0gIk51bWJlciBvZiBiYWNrdXBzIHRvIGtlZXAiOw0KICBtZW51X2F1dG9CYWNrdXBLZWVwWyJfdXNhZ2UiXSAgICAgPSAiIg0KICBtZW51X2F1dG9CYWNrdXBLZWVwWyJuYW1lIl0gICAgICAgPSAiYmFja3VwLmtlZXAiOw0KICBtZW51X2F1dG9CYWNrdXBLZWVwWyJpZCJdICAgICAgICAgPSAiYmFja3VwLmtlZXAiOw0KICBtZW51X2F1dG9CYWNrdXBLZWVwWyJ2YWx1ZSJdICAgICAgPSBtZW51X2F1dG9CYWNrdXBLZWVwWyJuYW1lIl07DQogIG1lbnVfYXV0b0JhY2t1cEtlZXBbIm9uY2xpY2siXSAgICA9ICJqYXZhc2NyaXB0OiB0b2dnbGVNZW51KHRoaXMpOyI7DQogIG1lbnVfYXV0b0JhY2t1cEtlZXBbImNsYXNzIl0gICAgICA9ICJtZW51LW5vdEFjdGl2ZSI7DQoNCiAgdmFyIG9wdGlvblZhbHVlcyA9IG5ldyBBcnJheSg1LCAxMCwgMjAsIDMwLCA0MCwgNTApOw0KICBtZW51X2F1dG9CYWNrdXBLZWVwWyJfb3B0aW9uVmFsdWVzIl0gPSBvcHRpb25WYWx1ZXM7DQoNCg0KICB2YXIgbWVudV9idWZmZXIgPSBuZXcgT2JqZWN0KCk7DQogIG1lbnVfYnVmZmVyWyJfZWxlbWVudCJdID0gIkxJIjsNCiAgbWVudV9idWZmZXJbIl9tZW51VHlwZSJdICAgICA9ICJjaGVja2JveCI7DQogIG1lbnVfYnVmZmVyWyJfY29uZmlnS2V5Il0gICAgPSAiYnVmZmVyIjsNCiAgbWVudV9idWZmZXJbIl9sYWJlbCJdICAgICAgICA9ICJTdHJlYW0gYnVmZmVyaW5nIFtFeHBlcmltZW50YWxdIjsNCiAgbWVudV9idWZmZXJbIl9oZWFkbGluZSJdICAgICA9ICJTdHJlYW0gYnVmZmVyaW5nIFtFeHBlcmltZW50YWxdIjsNCiAgbWVudV9idWZmZXJbIl91c2FnZSJdICAgICAgICA9ICJXaXRoIGFjdGl2YXRlZCBidWZmZXIsIHN0cmVhbXMgY2FuIGJlIHBsYXllZCBhbmQgcmVjb3JkZWQgbW9yZSBmbHVlbnRseS48YnI+VGhlIHN0cmVhbSBpcyBwYXNzZWQgZnJvbSB4VGVWZSB0byBQbGV4IC8gRW1ieSINCiAgbWVudV9idWZmZXJbIm5hbWUiXSAgICAgICAgICA9ICJidWZmZXIiOw0KICBtZW51X2J1ZmZlclsiaWQiXSAgICAgICAgICAgID0gImJ1ZmZlciI7DQogIG1lbnVfYnVmZmVyWyJ2YWx1ZSJdICAgICAgICAgPSBtZW51X2J1ZmZlclsibmFtZSJdOw0KICBtZW51X2J1ZmZlclsib25jbGljayJdICAgICAgID0gImphdmFzY3JpcHQ6IHRvZ2dsZU1lbnUodGhpcyk7IjsNCiAgbWVudV9idWZmZXJbImNsYXNzIl0gICAgICAgICA9ICJtZW51LW5vdEFjdGl2ZSI7DQoNCiAgdmFyIG1lbnVfYXBpID0gbmV3IE9iamVjdCgpOw0KICBtZW51X2FwaVsiX2VsZW1lbnQiXSA9ICJMSSI7DQogIG1lbnVfYXBpWyJfbWVudVR5cGUiXSAgICAgPSAiY2hlY2tib3giOw0KICBtZW51X2FwaVsiX2NvbmZpZ0tleSJdICAgID0gImFwaSI7DQogIG1lbnVfYXBpWyJfbGFiZWwiXSAgICAgICAgPSAiQVBJIGludGVyZmFjZSI7DQogIG1lbnVfYXBpWyJfaGVhZGxpbmUiXSAgICAgPSAiQVBJIGludGVyZmFjZSI7DQogIG1lbnVfYXBpWyJfdXNhZ2UiXSAgICAgICAgPSAnVmlhIEFQSSBpbnRlcmZhY2UgaXQgaXMgcG9zc2libGUgdG8gc2VuZCBjb21tYW5kcyB0byB4VGVWZS4gQVBJIGRvY3VtZW50YXRpb24gaXMgYXZhaWxhYmxlIDxhIGhyZWY9Imh0dHBzOi8veHRldmUuZGU/c2Nyb2xsPWFwaSI+aGVyZTwvYT4gJw0KICAvL21lbnVfYXBpWyJfdXNhZ2UiXSAgICAgICAgPSAnVmlhIEFQSSBpbnRlcmZhY2UgaXQgaXMgcG9zc2libGUgdG8gc2VuZCBjb21tYW5kcyB0byB4VGVWZS4gQVBJIGRvY3VtZW50YXRpb24gaXMgYXZhaWxhYmxlIDxhIGhyZWY9Imh0dHA6Ly9sb2NhbGhvc3Q6MTMxMz9zY3JvbGw9YXBpIj5oZXJlPC9hPiAnDQogIG1lbnVfYXBpWyJuYW1lIl0gICAgICAgICAgPSAiYXBpIjsNCiAgbWVudV9hcGlbImlkIl0gICAgICAgICAgICA9ICJhcGkiOw0KICBtZW51X2FwaVsidmFsdWUiXSAgICAgICAgID0gbWVudV9hcGlbIm5hbWUiXTsNCiAgbWVudV9hcGlbIm9uY2xpY2siXSAgICAgICA9ICJqYXZhc2NyaXB0OiB0b2dnbGVNZW51KHRoaXMpOyI7DQogIG1lbnVfYXBpWyJjbGFzcyJdICAgICAgICAgPSAibWVudS1ub3RBY3RpdmUiOw0KDQogIHZhciBtZW51X2F1dGhlbnRpY2F0aW9uV2ViID0gbmV3IE9iamVjdCgpOw0KICBtZW51X2F1dGhlbnRpY2F0aW9uV2ViWyJfZWxlbWVudCJdID0gIkxJIjsNCiAgbWVudV9hdXRoZW50aWNhdGlvbldlYlsiX21lbnVUeXBlIl0gICAgID0gImNoZWNrYm94IjsNCiAgbWVudV9hdXRoZW50aWNhdGlvbldlYlsiX2NvbmZpZ0tleSJdICAgID0gImF1dGhlbnRpY2F0aW9uLndlYiI7DQogIG1lbnVfYXV0aGVudGljYXRpb25XZWJbIl9sYWJlbCJdICAgICAgICA9ICJVc2VyIGF1dGhlbnRpY2F0aW9uIjsNCiAgbWVudV9hdXRoZW50aWNhdGlvbldlYlsiX2hlYWRsaW5lIl0gICAgID0gIlVzZXIgYXV0aGVudGljYXRpb24iOw0KICBtZW51X2F1dGhlbnRpY2F0aW9uV2ViWyJfdXNhZ2UiXSAgICAgICAgPSAiQWNjZXNzIHRvIHhUZVZlIHJlcXVpcmVzIGF1dGhlbnRpY2F0aW9uLiINCiAgbWVudV9hdXRoZW50aWNhdGlvbldlYlsibmFtZSJdICAgICAgICAgID0gImF1dGhlbnRpY2F0aW9uLndlYiI7DQogIG1lbnVfYXV0aGVudGljYXRpb25XZWJbImlkIl0gICAgICAgICAgICA9ICJhdXRoZW50aWNhdGlvbi53ZWIiOw0KICBtZW51X2F1dGhlbnRpY2F0aW9uV2ViWyJ2YWx1ZSJdICAgICAgICAgPSBtZW51X2F1dGhlbnRpY2F0aW9uV2ViWyJuYW1lIl07DQogIG1lbnVfYXV0aGVudGljYXRpb25XZWJbIm9uY2xpY2siXSAgICAgICA9ICJqYXZhc2NyaXB0OiB0b2dnbGVNZW51KHRoaXMpOyI7DQogIG1lbnVfYXV0aGVudGljYXRpb25XZWJbImNsYXNzIl0gICAgICAgICA9ICJtZW51LW5vdEFjdGl2ZSI7DQogIA0KICB2YXIgbWVudV9hdXRoZW50aWNhdGlvblBtcyA9IG5ldyBPYmplY3QoKTsNCiAgbWVudV9hdXRoZW50aWNhdGlvblBtc1siX2VsZW1lbnQiXSA9ICJMSSI7DQogIG1lbnVfYXV0aGVudGljYXRpb25QbXNbIl9tZW51VHlwZSJdICAgICA9ICJjaGVja2JveCI7DQogIG1lbnVfYXV0aGVudGljYXRpb25QbXNbIl9jb25maWdLZXkiXSAgICA9ICJhdXRoZW50aWNhdGlvbi5wbXMiOw0KICBtZW51X2F1dGhlbnRpY2F0aW9uUG1zWyJfbGFiZWwiXSAgICAgICAgPSAiUGxleCBhdXRoZW50aWNhdGlvbi4iOw0KICBtZW51X2F1dGhlbnRpY2F0aW9uUG1zWyJfaGVhZGxpbmUiXSAgICAgPSAiUGxleCBhdXRoZW50aWNhdGlvbi4iOw0KICBtZW51X2F1dGhlbnRpY2F0aW9uUG1zWyJfdXNhZ2UiXSAgICAgICAgPSAiUGxleCByZXF1ZXN0cyBhcmUgb25seSBwb3NzaWJsZSB3aXRoIGF1dGhlbnRpY2F0aW9uLjxicj5XYXJuaW5nISEhIEFmdGVyIGFjdGl2YXRpbmcgdGhpcyBmdW5jdGlvbiB4VGVWZSBtdXN0IGJlIGRlbGV0ZSBpbiB0aGUgUE1TIERWUiBzZXR0aW5ncyBhbmQgc2V0IHVwIGFnYWluLiINCiAgbWVudV9hdXRoZW50aWNhdGlvblBtc1sibmFtZSJdICAgICAgICAgID0gImF1dGhlbnRpY2F0aW9uLnBtcyI7DQogIG1lbnVfYXV0aGVudGljYXRpb25QbXNbImlkIl0gICAgICAgICAgICA9ICJhdXRoZW50aWNhdGlvbi5wbXMiOw0KICBtZW51X2F1dGhlbnRpY2F0aW9uUG1zWyJ2YWx1ZSJdICAgICAgICAgPSBtZW51X2F1dGhlbnRpY2F0aW9uUG1zWyJuYW1lIl07DQogIG1lbnVfYXV0aGVudGljYXRpb25QbXNbIm9uY2xpY2siXSAgICAgICA9ICJqYXZhc2NyaXB0OiB0b2dnbGVNZW51KHRoaXMpOyI7DQogIG1lbnVfYXV0aGVudGljYXRpb25QbXNbImNsYXNzIl0gICAgICAgICA9ICJtZW51LW5vdEFjdGl2ZSI7DQogIA0KICB2YXIgbWVudV9hdXRoZW50aWNhdGlvbk0zdSA9IG5ldyBPYmplY3QoKTsNCiAgbWVudV9hdXRoZW50aWNhdGlvbk0zdVsiX2VsZW1lbnQiXSA9ICJMSSI7DQogIG1lbnVfYXV0aGVudGljYXRpb25NM3VbIl9tZW51VHlwZSJdICAgICA9ICJjaGVja2JveCI7DQogIG1lbnVfYXV0aGVudGljYXRpb25NM3VbIl9jb25maWdLZXkiXSAgICA9ICJhdXRoZW50aWNhdGlvbi5tM3UiOw0KICBtZW51X2F1dGhlbnRpY2F0aW9uTTN1WyJfbGFiZWwiXSAgICAgICAgPSAiTTNVIGF1dGhlbnRpY2F0aW9uLiI7DQogIG1lbnVfYXV0aGVudGljYXRpb25NM3VbIl9oZWFkbGluZSJdICAgICA9ICJNM1UgYXV0aGVudGljYXRpb24uIjsNCiAgbWVudV9hdXRoZW50aWNhdGlvbk0zdVsiX3VzYWdlIl0gICAgICAgID0gIkRvd25sb2FkaW5nIHRoZSBNM1UgZmlsZSB2aWEgYW4gSFRUUCByZXF1ZXN0IGlzIG9ubHkgcG9zc2libGUgd2l0aCBhdXRoZW50aWNhdGlvbi4iDQogIG1lbnVfYXV0aGVudGljYXRpb25NM3VbIm5hbWUiXSAgICAgICAgICA9ICJhdXRoZW50aWNhdGlvbi5tM3UiOw0KICBtZW51X2F1dGhlbnRpY2F0aW9uTTN1WyJpZCJdICAgICAgICAgICAgPSAiYXV0aGVudGljYXRpb24ubTN1IjsNCiAgbWVudV9hdXRoZW50aWNhdGlvbk0zdVsidmFsdWUiXSAgICAgICAgID0gbWVudV9hdXRoZW50aWNhdGlvbk0zdVsibmFtZSJdOw0KICBtZW51X2F1dGhlbnRpY2F0aW9uTTN1WyJvbmNsaWNrIl0gICAgICAgPSAiamF2YXNjcmlwdDogdG9nZ2xlTWVudSh0aGlzKTsiOw0KICBtZW51X2F1dGhlbnRpY2F0aW9uTTN1WyJjbGFzcyJdICAgICAgICAgPSAibWVudS1ub3RBY3RpdmUiOw0KICANCg0KICB2YXIgbWVudV9hdXRoZW50aWNhdGlvblhtbCA9IG5ldyBPYmplY3QoKTsNCiAgbWVudV9hdXRoZW50aWNhdGlvblhtbFsiX2VsZW1lbnQiXSA9ICJMSSI7DQogIG1lbnVfYXV0aGVudGljYXRpb25YbWxbIl9tZW51VHlwZSJdICAgICA9ICJjaGVja2JveCI7DQogIG1lbnVfYXV0aGVudGljYXRpb25YbWxbIl9jb25maWdLZXkiXSAgICA9ICJhdXRoZW50aWNhdGlvbi54bWwiOw0KICBtZW51X2F1dGhlbnRpY2F0aW9uWG1sWyJfbGFiZWwiXSAgICAgICAgPSAiWEVQRyBhdXRoZW50aWNhdGlvbiI7DQogIG1lbnVfYXV0aGVudGljYXRpb25YbWxbIl9oZWFkbGluZSJdICAgICA9ICJYRVBHIGF1dGhlbnRpY2F0aW9uIjsNCiAgbWVudV9hdXRoZW50aWNhdGlvblhtbFsiX3VzYWdlIl0gICAgICAgID0gIkRvd25sb2FkaW5nIHRoZSBYRVBHIChYTUxUVikgZmlsZSB2aWEgYW4gSFRUUCByZXF1ZXN0IGlzIG9ubHkgcG9zc2libGUgd2l0aCBhdXRoZW50aWNhdGlvbi4iDQogIG1lbnVfYXV0aGVudGljYXRpb25YbWxbIm5hbWUiXSAgICAgICAgICA9ICJhdXRoZW50aWNhdGlvbi54bWwiOw0KICBtZW51X2F1dGhlbnRpY2F0aW9uWG1sWyJpZCJdICAgICAgICAgICAgPSAiYXV0aGVudGljYXRpb24ueG1sIjsNCiAgbWVudV9hdXRoZW50aWNhdGlvblhtbFsidmFsdWUiXSAgICAgICAgID0gbWVudV9hdXRoZW50aWNhdGlvblhtbFsibmFtZSJdOw0KICBtZW51X2F1dGhlbnRpY2F0aW9uWG1sWyJvbmNsaWNrIl0gICAgICAgPSAiamF2YXNjcmlwdDogdG9nZ2xlTWVudSh0aGlzKTsiOw0KICBtZW51X2F1dGhlbnRpY2F0aW9uWG1sWyJjbGFzcyJdICAgICAgICAgPSAibWVudS1ub3RBY3RpdmUiOw0KDQogIHZhciBtZW51X2F1dGhlbnRpY2F0aW9uQXBpID0gbmV3IE9iamVjdCgpOw0KICBtZW51X2F1dGhlbnRpY2F0aW9uQXBpWyJfZWxlbWVudCJdID0gIkxJIjsNCiAgbWVudV9hdXRoZW50aWNhdGlvbkFwaVsiX21lbnVUeXBlIl0gICAgID0gImNoZWNrYm94IjsNCiAgbWVudV9hdXRoZW50aWNhdGlvbkFwaVsiX2NvbmZpZ0tleSJdICAgID0gImF1dGhlbnRpY2F0aW9uLmFwaSI7DQogIG1lbnVfYXV0aGVudGljYXRpb25BcGlbIl9sYWJlbCJdICAgICAgICA9ICJBUEkgYXV0aGVudGljYXRpb24iOw0KICBtZW51X2F1dGhlbnRpY2F0aW9uQXBpWyJfaGVhZGxpbmUiXSAgICAgPSAiQVBJIGF1dGhlbnRpY2F0aW9uIjsNCiAgbWVudV9hdXRoZW50aWNhdGlvbkFwaVsiX3VzYWdlIl0gICAgICAgID0gIkFjY2VzcyB0byB0aGUgQVBJIGludGVyZmFjZSBpcyBvbmx5IHBvc3NpYmxlIHdpdGggYXV0aGVudGljYXRpb24uIg0KICBtZW51X2F1dGhlbnRpY2F0aW9uQXBpWyJuYW1lIl0gICAgICAgICAgPSAiYXV0aGVudGljYXRpb24uYXBpIjsNCiAgbWVudV9hdXRoZW50aWNhdGlvbkFwaVsiaWQiXSAgICAgICAgICAgID0gImF1dGhlbnRpY2F0aW9uLmFwaSI7DQogIG1lbnVfYXV0aGVudGljYXRpb25BcGlbInZhbHVlIl0gICAgICAgICA9IG1lbnVfYXV0aGVudGljYXRpb25BcGlbIm5hbWUiXTsNCiAgbWVudV9hdXRoZW50aWNhdGlvbkFwaVsib25jbGljayJdICAgICAgID0gImphdmFzY3JpcHQ6IHRvZ2dsZU1lbnUodGhpcyk7IjsNCiAgbWVudV9hdXRoZW50aWNhdGlvbkFwaVsiY2xhc3MiXSAgICAgICAgID0gIm1lbnUtbm90QWN0aXZlIjsNCiAgDQogIA0KICAvLyBNYWluIG1lbnUNCiAgbWVudVsxMF0gPSBtZW51X20zdTsNCg0KICBzd2l0Y2goY29uZmlnWyJlcGdTb3VyY2UiXSkgew0KICAgIGNhc2UgIlBNUyI6DQogICAgICBtZW51WzIwXSA9IG1lbnVfaWQ7DQogICAgICBicmVhazsNCiAgICANCiAgICBjYXNlICJYTUxUViI6DQogICAgICBtZW51WzQwXSA9IG1lbnVfeG1sdHY7DQogICAgICBicmVhazsNCg0KICAgIGNhc2UgIlhFUEciOg0KICAgICAgbWVudVs0MF0gPSBtZW51X3htbHR2Ow0KICAgICAgbWVudVs1MF0gPSBtZW51X21hcHBpbmc7DQogICAgICBicmVhazsNCiAgfQ0KICANCiAgbWVudVszMF0gPSBtZW51X2ZpbHRlcjsNCiAgDQogIGlmIChjb25maWdbImF1dGhlbnRpY2F0aW9uLndlYiJdID09IHRydWUpIHsNCiAgICBtZW51WzYwXSA9IG1lbnVfdXNlcnM7DQogIH0NCg0KICBtZW51WzcwXSA9IG1lbnVfc2V0dGluZ3M7DQogIG1lbnVbODBdID0gbWVudV9sb2c7DQogIGlmIChjb25maWdbImF1dGhlbnRpY2F0aW9uLndlYiJdID09IHRydWUpIHsNCiAgICBtZW51WzEwMF0gPSBtZW51X2xvZ291dDsNCiAgfSANCiAgDQoNCiAgLy8gU3ViLU1lbnUNCg0KICBzdWJNZW51WzcwMV0gPSBtZW51X3NjaGVkdWxlOw0KICBzdWJNZW51WzcwMl0gPSBtZW51X2ZpbGVzVXBkYXRlOw0KICBzdWJNZW51WzcwM10gPSBtZW51X3R1bmVyOw0KICBzdWJNZW51WzcwNF0gPSBtZW51X2VwZzsNCiAgc3ViTWVudVs3MDVdID0gbWVudV94ZXBnOw0KICBzdWJNZW51WzcwNl0gPSBtZW51X2F1dG9CYWNrdXBQYXRoOw0KICBzdWJNZW51WzcwN10gPSBtZW51X2F1dG9CYWNrdXBLZWVwOw0KICBzdWJNZW51WzcwOF0gPSBtZW51X2J1ZmZlcjsNCiAgDQogIHN1Yk1lbnVbNzEwXSA9IG1lbnVfYXV0aGVudGljYXRpb25XZWI7DQogIA0KICBpZiAoY29uZmlnWyJhdXRoZW50aWNhdGlvbi53ZWIiXSA9PSB0cnVlKSB7DQogICAgc3ViTWVudVs3MTFdID0gbWVudV9hdXRoZW50aWNhdGlvblBtczsNCiAgICBzdWJNZW51WzcxMl0gPSBtZW51X2F1dGhlbnRpY2F0aW9uTTN1Ow0KICAgIHN1Yk1lbnVbNzEzXSA9IG1lbnVfYXV0aGVudGljYXRpb25YbWw7DQogICAgc3ViTWVudVs3MTRdID0gbWVudV9hdXRoZW50aWNhdGlvbkFwaTsNCiAgfQ0KDQogIHN1Yk1lbnVbNzk5XSA9IG1lbnVfYXBpOw0KDQogIA0KDQogIHJldHVybg0KfQ0KDQpmdW5jdGlvbiBjcmVhdGVNZW51KCkgew0KDQogIHNob3dFbGVtZW50KCJwb3B1cCIsIGZhbHNlKTsNCg0KICAvL2NvbnNvbGUubG9nKGNvbmZpZyk7DQogIHNldE1lbnVJdGVtKCk7DQogIHZhciBtZW51SXRlbXMgPSBnZXRPYmpLZXlzKG1lbnUpDQogIHZhciBuYXYgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgiTkFWIilbMF07DQogIG5hdi5pbm5lckhUTUwgPSAiIjsNCiAgdmFyIG5ld0l0ZW0gPSBuZXcgT2JqZWN0KCk7DQoNCiAgZm9yICh2YXIgaSA9IDA7IGkgPCBtZW51SXRlbXMubGVuZ3RoOyBpKyspIHsNCg0KICAgIA0KICAgIHZhciBuZXdJdGVtID0gbWVudVttZW51SXRlbXNbaV1dOw0KICAgIG5ld0l0ZW1bImlkIl0gPSBtZW51SXRlbXNbaV07DQoNCiAgICANCiAgICBzd2l0Y2gobmV3SXRlbS5oYXNPd25Qcm9wZXJ0eSgiX2ljb24iKSkgew0KICAgICAgY2FzZSB0cnVlOiANCiAgICAgICAgdmFyIGl0ZW1UZXh0ID0gbmV3SXRlbVsiX3RleHQiXTsNCiAgICAgICAgZGVsZXRlIG5ld0l0ZW1bIl90ZXh0Il0NCiAgICAgICAgbmF2LmFwcGVuZENoaWxkKGNyZWF0ZUVsZW1lbnQobmV3SXRlbSkpOw0KICAgICAgICBuZXdJdGVtWyJfdGV4dCJdID0gaXRlbVRleHQ7DQogICAgICAgIHZhciBuZXdJY29uID0gbmV3IE9iamVjdCgpOw0KICAgICAgICBuZXdJY29uWyJfZWxlbWVudCJdID0gIklNRyI7DQogICAgICAgIG5ld0ljb25bInNyYyJdID0gbmV3SXRlbVsiX2ljb24iXTsNCg0KICAgICAgICB2YXIgY3VycmVudEVsZW1lbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChtZW51SXRlbXNbaV0pOw0KICAgICAgICBjdXJyZW50RWxlbWVudC5hcHBlbmRDaGlsZChjcmVhdGVFbGVtZW50KG5ld0ljb24pKTsNCg0KDQogICAgICAgIHZhciB0ZXh0ID0gbmV3IE9iamVjdCgpOw0KICAgICAgICB0ZXh0WyJfZWxlbWVudCJdID0gIlAiDQogICAgICAgIHRleHRbIl90ZXh0Il0gPSBpdGVtVGV4dDsNCiAgICAgICAgdGV4dFsiY2xhc3MiXSA9ICJuYXYtdGV4dCINCiAgICAgICAgY3VycmVudEVsZW1lbnQuYXBwZW5kQ2hpbGQoY3JlYXRlRWxlbWVudCh0ZXh0KSk7DQogICAgICAgIGJyZWFrOw0KDQogICAgICBkZWZhdWx0Og0KICAgICAgICBuYXYuYXBwZW5kQ2hpbGQoY3JlYXRlRWxlbWVudChuZXdJY29uKSk7DQogICAgICAgIGJyZWFrOw0KICAgIH0NCg0KICB9DQogIGlmIChhY3RpdmVNZW51ICE9IHVuZGVmaW5lZCkgew0KICAgIC8vY29uc29sZS5sb2coYWN0aXZlTWVudSk7DQogICAgdG9nZ2xlTWVudShhY3RpdmVNZW51KTsNCiAgfQ0KDQogIHJldHVybg0KfQ0KDQpmdW5jdGlvbiB0b2dnbGVNZW51KGVsbSkgew0KICAvL3Nob3dTdHJlYW1zKGZhbHNlKTsNCiAgY2xlYXJJbnRlcnZhbChsb2dJbnRlcnZhbCkNCiAgYWN0aXZlTWVudSA9IGVsbTsNCiAgdmFyIGl0ZW0gPSBtZW51W2VsbS5pZF0NCiAgdmFyIGRpdiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzZXR0aW5ncyIpOw0KICBkaXYuaW5uZXJIVE1MID0gIiI7DQogIA0KICAvLyBTZXQgSGVhZGxpbmUNCiAgdmFyIGhlYWRsaW5lID0gbmV3IE9iamVjdCgpOw0KICBoZWFkbGluZVsiX2VsZW1lbnQiXSA9ICJINCI7DQogIGhlYWRsaW5lWyJfdGV4dCJdID0gaXRlbVsiX2hlYWRsaW5lIl07DQogIGRpdi5hcHBlbmRDaGlsZChjcmVhdGVFbGVtZW50KGhlYWRsaW5lKSk7DQoNCiAgLy8gU3ViLU1lbnUNCiAgaWYgKGl0ZW0uaGFzT3duUHJvcGVydHkoIl9zdWJNZW51IikgPT0gdHJ1ZSkgew0KICAgIG9wZW5TdWJNZW51KGl0ZW0pOw0KICAgIHJldHVybg0KICB9DQoNCiAgLy8gTWFwcGluZywgVXNlcnMsIExvZywgRmlsZXMNCiAgc3dpdGNoKGl0ZW1bIl9jb25maWdLZXkiXSkgew0KICAgIGNhc2UgIm1hcHBpbmciOiAgICAgb3Blbk1hcHBpbmdFZGl0b3IoaXRlbSk7IHJldHVybjsgYnJlYWs7DQogICAgY2FzZSAidXNlcnMiOiAgICAgICBvcGVuVXNlcnMoaXRlbSk7IHJldHVybjsgYnJlYWs7DQogICAgY2FzZSAibG9nIjogICAgICAgICBzaG93TG9nKGl0ZW0pOyByZXR1cm47IGJyZWFrOw0KICAgIGNhc2UgImZpbGVzLm0zdSI6ICAgb3BlbkZpbGVzKGl0ZW0sICJtM3UiKTsgcmV0dXJuOyBicmVhazsNCiAgICBjYXNlICJmaWxlcy54bWx0diI6IG9wZW5GaWxlcyhpdGVtLCAieG1sdHYiKTsgcmV0dXJuOyBicmVhazsNCg0KICAgIGNhc2UgImZpbHRlciI6ICAgICAgc2hvd1N0cmVhbXModHJ1ZSk7IGJyZWFrOw0KICB9DQoNCiANCg0KICB2YXIgbmV3SFIgPSBuZXcgT2JqZWN0KCk7DQogIG5ld0hSWyJfZWxlbWVudCJdID0gIkhSIg0KICBkaXYuYXBwZW5kQ2hpbGQoY3JlYXRlRWxlbWVudChuZXdIUikpOw0KICANCiAgdmFyIG5ld0VudHJ5ID0gbmV3IE9iamVjdCgpOw0KICBuZXdFbnRyeVsiX2VsZW1lbnQiXSAgPSAiSU5QVVQiOw0KICBuZXdFbnRyeVsidHlwZSJdID0gImJ1dHRvbiI7DQogIC8vbmV3RW50cnlbImNsYXNzIl0gPSAic2F2ZSI7DQogIG5ld0VudHJ5WyJ2YWx1ZSJdID0gIlNhdmUiOw0KICBuZXdFbnRyeVsib25jbGljayJdID0gInNhdmVEYXRhMignc2V0dGluZ3MnKSINCiAgZGl2LmFwcGVuZENoaWxkKGNyZWF0ZUVsZW1lbnQobmV3RW50cnkpKTsNCg0KDQogIHZhciBuZXdXcmFwcGVyID0gbmV3IE9iamVjdCgpOw0KICBuZXdXcmFwcGVyWyJfZWxlbWVudCJdICA9ICJESVYiOw0KICBuZXdXcmFwcGVyWyJpZCJdICAgICAgICA9ICJib3gtd3JhcHBlciI7DQogIGRpdi5hcHBlbmRDaGlsZChjcmVhdGVFbGVtZW50KG5ld1dyYXBwZXIpKTsNCg0KICBkaXYgPSBkaXYubGFzdENoaWxkOw0KICANCiAgZGl2LmFwcGVuZENoaWxkKGNyZWF0ZU1lbnVJdGVtKGl0ZW0pKQ0KDQogIC8vIHVzYWdlIEluZm8gIA0KICBzd2l0Y2gobWVudVthY3RpdmVNZW51LmlkXS5oYXNPd25Qcm9wZXJ0eSgiX3VzYWdlIikpIHsNCiAgICBjYXNlIHRydWU6IA0KICAgICAgdmFyIHVzYWdlSXRlbSA9IG5ldyBPYmplY3QoKTsNCiAgICAgIHVzYWdlSXRlbVsiX2VsZW1lbnQiXSA9ICJQUkUiDQogICAgICB1c2FnZUl0ZW1bIl90ZXh0Il0gICAgPSBtZW51W2FjdGl2ZU1lbnUuaWRdWyJfdXNhZ2UiXTsNCiAgICAgIGRpdi5hcHBlbmRDaGlsZChjcmVhdGVFbGVtZW50KHVzYWdlSXRlbSkpOw0KICB9DQogIA0KICBjYWxjdWxhdGVXcmFwcGVySGVpZ2h0KCk7DQoNCn0NCg0KZnVuY3Rpb24gY3JlYXRlTWVudUl0ZW0oaXRlbSkgew0KICB2YXIgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIkRJViIpOw0KICBzd2l0Y2goaXRlbVsiX21lbnVUeXBlIl0pIHsNCiAgICBjYXNlICJpbnB1dEFycmF5IjoNCiAgICAgIGlmIChjb25maWcuaGFzT3duUHJvcGVydHkoaXRlbVsiX2NvbmZpZ0tleSJdKSA9PSB0cnVlKSB7DQogICAgICAgIHZhciB2YWx1ZSA9IGNvbmZpZ1tpdGVtWyJfY29uZmlnS2V5Il1dOw0KICAgICAgfSBlbHNlIHsNCiAgICAgICAgdmFyIHZhbHVlID0gbmV3IEFycmF5KCk7DQogICAgICB9DQogICAgICANCiAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdmFsdWUubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgdmFyIG5ld0VudHJ5ID0gbmV3IE9iamVjdCgpOw0KICAgICAgICBuZXdFbnRyeSA9IGl0ZW0NCiAgICAgICAgZGVsZXRlIG5ld0VudHJ5WyJvbmNsaWNrIl07DQogICAgICAgIG5ld0VudHJ5WyJfZWxlbWVudCJdICA9ICJJTlBVVCI7DQogICAgICAgIG5ld0VudHJ5WyJ2YWx1ZSJdICAgICA9IHZhbHVlW2ldOw0KICAgICAgICBuZXdFbnRyeVsidHlwZSJdICAgICAgPSAic2VhcmNoIjsNCiAgICAgICAgbmV3RW50cnlbImRhdGEtbWVudXR5cGUiXSA9IGl0ZW1bIl9tZW51VHlwZSJdOw0KICAgICAgICBuZXdFbnRyeVsiZGF0YS1tZW51a2V5Il0gPSBpdGVtWyJfY29uZmlnS2V5Il07DQogICAgICAgIGVsZW1lbnQuYXBwZW5kQ2hpbGQoY3JlYXRlRWxlbWVudChuZXdFbnRyeSkpOw0KDQogICAgICB9DQogICAgICAvLyBOZXcgZW50cnkgZm9yIGFycmF5DQogICAgICB2YXIgbmV3RW50cnkgPSBuZXcgT2JqZWN0KCk7DQogICAgICBuZXdFbnRyeVsiX2VsZW1lbnQiXSAgICAgID0gIklOUFVUIjsNCiAgICAgIG5ld0VudHJ5WyJ0eXBlIl0gICAgICAgICAgPSAic2VhcmNoIjsNCiAgICAgIG5ld0VudHJ5WyJuYW1lIl0gICAgICAgICAgPSBpdGVtWyJuYW1lIl07DQogICAgICBuZXdFbnRyeVsicGxhY2Vob2xkZXIiXSAgID0gaXRlbVsicGxhY2Vob2xkZXIiXTsNCiAgICAgIG5ld0VudHJ5WyJ2YWx1ZSJdICAgICAgICAgPSAiIjsNCiAgICAgIG5ld0VudHJ5WyJkYXRhLW1lbnV0eXBlIl0gPSBpdGVtWyJfbWVudVR5cGUiXTsNCiAgICAgIG5ld0VudHJ5WyJkYXRhLW1lbnVrZXkiXSAgPSBpdGVtWyJfY29uZmlnS2V5Il07DQogICAgICBlbGVtZW50LmFwcGVuZENoaWxkKGNyZWF0ZUVsZW1lbnQobmV3RW50cnkpKTsNCiAgICAgIGJyZWFrOw0KICANCiAgICBjYXNlICJzaW5nbGVJbnB1dCI6DQogICAgICB2YXIgdmFsdWUgPSBjb25maWdbaXRlbVsiX2NvbmZpZ0tleSJdXTsNCiAgICAgIGlmICh2YWx1ZSA9PSB1bmRlZmluZWQpIHsNCiAgICAgICAgdmFsdWUgPSAiIjsNCiAgICAgIH0NCiAgICAgIHZhciBuZXdFbnRyeSA9IG5ldyBPYmplY3QoKTsNCiAgICAgIG5ld0VudHJ5ID0gaXRlbTsNCiAgICAgIGRlbGV0ZSBuZXdFbnRyeVsib25jbGljayJdOw0KICAgICAgbmV3RW50cnlbIl9lbGVtZW50Il0gID0gIklOUFVUIjsNCiAgICAgIG5ld0VudHJ5WyJ2YWx1ZSJdICAgICA9IHZhbHVlOw0KICAgICAgbmV3RW50cnlbInR5cGUiXSAgICAgID0gInNlYXJjaCI7DQogICAgICBuZXdFbnRyeVsiZGF0YS1tZW51dHlwZSJdID0gaXRlbVsiX21lbnVUeXBlIl07DQogICAgICBuZXdFbnRyeVsiZGF0YS1tZW51a2V5Il0gPSBpdGVtWyJfY29uZmlnS2V5Il07DQogICAgICBlbGVtZW50LmFwcGVuZENoaWxkKGNyZWF0ZUVsZW1lbnQobmV3RW50cnkpKTsNCiAgICAgIGJyZWFrOw0KDQogICAgY2FzZSAiY2hlY2tib3giOg0KICAgICAgdmFyIHZhbHVlID0gY29uZmlnW2l0ZW1bIl9jb25maWdLZXkiXV07DQogICAgICBpZiAodmFsdWUgPT0gdW5kZWZpbmVkKSB7DQogICAgICAgIHZhbHVlID0gZmFsc2U7DQogICAgICB9DQogICAgICB2YXIgbmV3RW50cnkgPSBuZXcgT2JqZWN0KCk7DQogICAgICBuZXdFbnRyeSA9IGl0ZW07DQogICAgICBkZWxldGUgbmV3RW50cnlbIm9uY2xpY2siXTsNCiAgICAgIG5ld0VudHJ5WyJfZWxlbWVudCJdICA9ICJJTlBVVCI7DQogICAgICBuZXdFbnRyeVsidmFsdWUiXSAgICAgPSB2YWx1ZTsNCiAgICAgIG5ld0VudHJ5WyJ0eXBlIl0gICAgICA9ICJjaGVja2JveCI7DQogICAgICBuZXdFbnRyeVsiZGF0YS1tZW51dHlwZSJdID0gaXRlbVsiX21lbnVUeXBlIl07DQogICAgICBuZXdFbnRyeVsiZGF0YS1tZW51a2V5Il0gPSBpdGVtWyJfY29uZmlnS2V5Il07DQogICAgICBlbGVtZW50LmFwcGVuZENoaWxkKGNyZWF0ZUVsZW1lbnQobmV3RW50cnkpKTsNCiAgICAgIGVsZW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIklOUFVUIilbMF0uY2hlY2tlZCA9IHZhbHVlOw0KICAgICAgYnJlYWs7DQogICAgDQogICAgY2FzZSAic2VsZWN0IjoNCiAgICAgIHZhciB2YWx1ZSA9IGNvbmZpZ1tpdGVtWyJfY29uZmlnS2V5Il1dOw0KICAgICAgdmFyIG5ld0VudHJ5ID0gbmV3IE9iamVjdCgpOw0KICAgICAgbmV3RW50cnkgPSBpdGVtOw0KICAgICAgZGVsZXRlIG5ld0VudHJ5WyJvbmNsaWNrIl0NCiAgICAgIG5ld0VudHJ5WyJfZWxlbWVudCJdICA9ICJTRUxFQ1QiOw0KICAgICAgZWxlbWVudC5hcHBlbmRDaGlsZChjcmVhdGVFbGVtZW50KG5ld0VudHJ5KSk7DQogICAgICB2YXIgc2VsZWN0RWxlbWVudCA9IGVsZW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlNFTEVDVCIpWzBdOw0KICAgICAgdmFyIHZhbHVlcyA9IGl0ZW1bIl9vcHRpb25WYWx1ZXMiXTsNCiAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdmFsdWVzLmxlbmd0aDsgaSsrKSB7DQogICAgICAgIHZhciBuZXdFbnRyeSA9IG5ldyBPYmplY3Q7DQogICAgICAgIG5ld0VudHJ5WyJfZWxlbWVudCJdICA9ICJPUFRJT04iOw0KICAgICAgICBuZXdFbnRyeVsiX3RleHQiXSAgICAgPSBpdGVtWyJfdGV4dCJdICsgIjogIiArIHZhbHVlc1tpXTsNCiAgICAgICAgbmV3RW50cnlbInZhbHVlIl0gICAgID0gdmFsdWVzW2ldOw0KICAgICAgICBzZWxlY3RFbGVtZW50LmFwcGVuZENoaWxkKGNyZWF0ZUVsZW1lbnQobmV3RW50cnkpKTsNCiAgICAgIH0NCiAgICAgIHNlbGVjdEVsZW1lbnQudmFsdWUgPSB2YWx1ZTsNCiAgICAgIGJyZWFrOw0KICAgIA0KICB9DQogIHJldHVybiBlbGVtZW50Ow0KfQ0KDQpmdW5jdGlvbiBvcGVuU3ViTWVudShpdGVtKSB7DQogIHZhciBlbnRyeXMgPSBpdGVtWyJfc3ViTWVudSJdLnNwbGl0KCIsIik7DQogIHZhciBkaXYgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic2V0dGluZ3MiKTsNCg0KICB2YXIgbmV3SFIgPSBuZXcgT2JqZWN0KCk7DQogIG5ld0hSWyJfZWxlbWVudCJdID0gIkhSIg0KICBkaXYuYXBwZW5kQ2hpbGQoY3JlYXRlRWxlbWVudChuZXdIUikpOw0KICANCiAgdmFyIG5ld0VudHJ5ID0gbmV3IE9iamVjdCgpOw0KICBuZXdFbnRyeVsiX2VsZW1lbnQiXSAgPSAiSU5QVVQiOw0KICBuZXdFbnRyeVsidHlwZSJdID0gImJ1dHRvbiI7DQogIC8vbmV3RW50cnlbImNsYXNzIl0gPSAic2F2ZSI7DQogIG5ld0VudHJ5WyJ2YWx1ZSJdID0gIlNhdmUiOw0KICBuZXdFbnRyeVsib25jbGljayJdID0gInNhdmVEYXRhMignc2V0dGluZ3MnKSINCiAgZGl2LmFwcGVuZENoaWxkKGNyZWF0ZUVsZW1lbnQobmV3RW50cnkpKTsNCg0KICBpZiAoaXRlbVsiX2NvbmZpZ0tleSJdID09ICJzZXR0aW5ncyIpIHsNCiAgICB2YXIgbmV3RW50cnkgPSBuZXcgT2JqZWN0KCk7DQogICAgbmV3RW50cnlbIl9lbGVtZW50Il0gID0gIklOUFVUIjsNCiAgICBuZXdFbnRyeVsidHlwZSJdID0gImJ1dHRvbiI7DQogICAgLy9uZXdFbnRyeVsiY2xhc3MiXSA9ICJzYXZlIjsNCiAgICBuZXdFbnRyeVsidmFsdWUiXSA9ICJCYWNrdXAiOw0KICAgIG5ld0VudHJ5WyJvbmNsaWNrIl0gPSAieHRldmVCYWNrdXAoKSINCiAgICBkaXYuYXBwZW5kQ2hpbGQoY3JlYXRlRWxlbWVudChuZXdFbnRyeSkpOw0KICB9DQoNCiAgaWYgKGl0ZW1bIl9jb25maWdLZXkiXSA9PSAic2V0dGluZ3MiKSB7DQogICAgdmFyIG5ld0VudHJ5ID0gbmV3IE9iamVjdCgpOw0KICAgIG5ld0VudHJ5WyJfZWxlbWVudCJdICA9ICJJTlBVVCI7DQogICAgbmV3RW50cnlbInR5cGUiXSA9ICJidXR0b24iOw0KICAgIC8vbmV3RW50cnlbImNsYXNzIl0gPSAic2F2ZSI7DQogICAgbmV3RW50cnlbInZhbHVlIl0gPSAiUmVzdG9yZSI7DQogICAgbmV3RW50cnlbIm9uY2xpY2siXSA9ICJ4dGV2ZVJlc3RvcmUodGhpcykiDQogICAgZGl2LmFwcGVuZENoaWxkKGNyZWF0ZUVsZW1lbnQobmV3RW50cnkpKTsNCiAgfQ0KDQoNCiAgdmFyIG5ld1dyYXBwZXIgPSBuZXcgT2JqZWN0KCk7DQogIG5ld1dyYXBwZXJbIl9lbGVtZW50Il0gID0gIkRJViI7DQogIG5ld1dyYXBwZXJbImlkIl0gICAgICAgID0gImJveC13cmFwcGVyIjsNCiAgZGl2LmFwcGVuZENoaWxkKGNyZWF0ZUVsZW1lbnQobmV3V3JhcHBlcikpOw0KICANCiAgZGl2ID0gZGl2Lmxhc3RDaGlsZDsNCiAgDQoNCiAgZm9yICh2YXIgaSA9IDA7IGkgPCBlbnRyeXMubGVuZ3RoOyBpKyspIHsNCiAgICB2YXIgaXRlbSA9IHN1Yk1lbnVbZW50cnlzW2ldXTsNCiAgICBpZiAoaXRlbSA9PSB1bmRlZmluZWQpIHsNCiAgICAgIGJyZWFrOw0KICAgIH0NCiAgICANCiAgICB2YXIgY29udGFpbmVyID0gbmV3IE9iamVjdCgpOw0KICAgIGNvbnRhaW5lclsiX2VsZW1lbnQiXSA9ICJESVYiOw0KICAgIGRpdi5hcHBlbmRDaGlsZChjcmVhdGVFbGVtZW50KGNvbnRhaW5lcikpOw0KDQogICAgdmFyIGRpdkNvbnRhaW5lciA9IGRpdi5sYXN0Q2hpbGQ7DQogICAgDQogICAgdmFyIGhlYWRsaW5lID0gbmV3IE9iamVjdCgpOw0KICAgIGhlYWRsaW5lWyJfZWxlbWVudCJdID0gIkg1IjsNCiAgICBoZWFkbGluZVsiX3RleHQiXSA9IGl0ZW1bIl9oZWFkbGluZSJdOw0KICAgIGRpdkNvbnRhaW5lci5hcHBlbmRDaGlsZChjcmVhdGVFbGVtZW50KGhlYWRsaW5lKSk7DQoNCiAgICBkaXZDb250YWluZXIuYXBwZW5kQ2hpbGQoY3JlYXRlTWVudUl0ZW0oaXRlbSkpDQoNCiAgICBzd2l0Y2goaXRlbS5oYXNPd25Qcm9wZXJ0eSgiX3VzYWdlIikpIHsNCiAgICAgIGNhc2UgdHJ1ZTogDQogICAgICAgIHZhciB1c2FnZUl0ZW0gPSBuZXcgT2JqZWN0KCk7DQogICAgICAgIHVzYWdlSXRlbVsiX2VsZW1lbnQiXSA9ICJQUkUiDQogICAgICAgIHVzYWdlSXRlbVsiX3RleHQiXSAgICA9IGl0ZW1bIl91c2FnZSJdOw0KICAgICAgICBkaXZDb250YWluZXIuYXBwZW5kQ2hpbGQoY3JlYXRlRWxlbWVudCh1c2FnZUl0ZW0pKTsNCiAgICB9DQoNCiAgICB2YXIgaHIgPSBuZXcgT2JqZWN0KCk7DQogICAgaHJbIl9lbGVtZW50Il0gPSAiSFIiOw0KICAgIGRpdkNvbnRhaW5lci5hcHBlbmRDaGlsZChjcmVhdGVFbGVtZW50KGhyKSk7DQogIA0KICB9DQoNCiAgY2FsY3VsYXRlV3JhcHBlckhlaWdodCgpOw0KICByZXR1cm4NCn0NCg0KZnVuY3Rpb24gc2F2ZURhdGEyKGVsbSkgew0KICB2YXIgZGl2ICAgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChlbG0pOw0KICB2YXIgaW5wdXRzID0gZGl2LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJJTlBVVCIpOw0KICB2YXIgc2VsZWN0cyA9IGRpdi5nZXRFbGVtZW50c0J5VGFnTmFtZSgiU0VMRUNUIik7DQogIHZhciB2YWx1ZSwgY29uZmlnS2V5Ow0KICB2YXIgZGF0YSA9IG5ldyBPYmplY3QoKTsNCiAgdmFyIHZhbHVlQXJyID0gbmV3IEFycmF5KCk7DQogIHZhciBuZXdEYXRhID0gZmFsc2U7DQogIA0KICBmb3IgKHZhciBpID0gMDsgaSA8IGlucHV0cy5sZW5ndGg7IGkrKykgew0KICAgIGlmIChpbnB1dHNbaV0udHlwZSAhPSAiYnV0dG9uIikgew0KICAgICAgdmFyIG1lbnVUeXBlID0gaW5wdXRzW2ldLmdldEF0dHJpYnV0ZSgiZGF0YS1tZW51dHlwZSIpOw0KICAgICAgDQogICAgICAvL2NvbnNvbGUubG9nKG1lbnVUeXBlKTsNCiAgICAgIHN3aXRjaChtZW51VHlwZSkgew0KICAgICAgICBjYXNlICJzaW5nbGVJbnB1dCI6DQogICAgICAgICAgdmFsdWUgPSBpbnB1dHNbaV0udmFsdWU7DQogICAgICAgICAgaWYgKHZhbHVlID09ICIiIHx8IHZhbHVlID09IHVuZGVmaW5lZCkgew0KICAgICAgICAgICAgZGF0YSA9IG5ldyBPYmplY3QoKTsNCiAgICAgICAgICAgIGRhdGFbImRlbGV0ZSJdID0gaW5wdXRzW2ldLm5hbWUNCiAgICAgICAgICAgIG5ld0RhdGEgPSB0cnVlOw0KICAgICAgICAgIH0gZWxzZSB7DQogICAgICAgICAgICBuZXdEYXRhID0gdHJ1ZTsNCiAgICAgICAgICAgIGRhdGFbaW5wdXRzW2ldLm5hbWVdID0gdmFsdWU7DQogICAgICAgICAgICBjb25zb2xlLmxvZyhkYXRhKTsNCiAgICAgICAgICB9DQogICAgICAgICAgYnJlYWs7DQogICAgICAgIGNhc2UgImlucHV0QXJyYXkiOiANCiAgICAgICAgICB2YWx1ZSA9IGlucHV0c1tpXS52YWx1ZTsNCiAgICAgICAgICBpZiAodmFsdWUgIT0gIiIgJiYgdmFsdWUgIT0gdW5kZWZpbmVkKSB7DQogICAgICAgICAgICBuZXdEYXRhID0gdHJ1ZTsNCiAgICAgICAgICAgIHZhbHVlQXJyLnB1c2godmFsdWUpDQogICAgICAgICAgICBkYXRhW2lucHV0c1tpXS5uYW1lXSA9IHZhbHVlQXJyOw0KICAgICAgICAgICAgY29uZmlnS2V5ID0gaW5wdXRzW2ldLm5hbWU7DQogICAgICAgICAgfSANCiAgICAgICAgICANCiAgICAgICAgICBicmVhazsNCg0KICAgICAgICBjYXNlICJjaGVja2JveCI6DQogICAgICAgICAgdmFsdWUgPSBpbnB1dHNbaV0uY2hlY2tlZA0KICAgICAgICAgIGRhdGFbaW5wdXRzW2ldLm5hbWVdID0gdmFsdWU7DQogICAgICB9DQogICAgICANCiAgICB9DQogICAgDQogIH0NCg0KDQogIC8vIERlbGV0ZSBjb25maWcga2V5DQogIGlmICh2YWx1ZUFyci5sZW5ndGggPT0gMCAmJiBuZXdEYXRhID09IGZhbHNlKSB7DQogICAgbmV3RGF0YSA9IHRydWU7DQogICAgZGF0YSA9IG5ldyBPYmplY3QoKTsNCiAgICBkYXRhWyJkZWxldGUiXSA9IGNvbmZpZ0tleTsNCiAgfSANCg0KDQogIGZvciAodmFyIGkgPSAwOyBpIDwgc2VsZWN0cy5sZW5ndGg7IGkrKykgew0KICAgIHZhciB2YWx1ZSA9IHNlbGVjdHNbaV0ub3B0aW9uc1tzZWxlY3RzW2ldLnNlbGVjdGVkSW5kZXhdLnZhbHVlOw0KICAgIHN3aXRjaChpc05hTih2YWx1ZSkpIHsNCiAgICAgIGNhc2UgZmFsc2U6IHZhbHVlID0gcGFyc2VJbnQodmFsdWUpOyBicmVhazsNCiAgICB9DQoNCiAgICBkYXRhW3NlbGVjdHNbaV0ubmFtZV0gPSB2YWx1ZTsNCiAgICBuZXdEYXRhID0gdHJ1ZTsNCiAgfQ0KDQogIC8vY29uc29sZS5sb2coZGF0YSwgbmV3RGF0YSk7DQoNCiAgaWYgKG5ld0RhdGEgPT0gdHJ1ZSkgew0KICAgIGRhdGFbImNtZCJdID0gInNhdmVDb25maWciOw0KICAgIGlmICghZGF0YS5oYXNPd25Qcm9wZXJ0eSgnZmlsdGVyJykpIHsNCiAgICAgIGRhdGFbImZpbHRlciJdID0gY29uZmlnWyJmaWx0ZXIiXQ0KICAgIH0NCiAgICB2YXIgc2V0dGluZ3MgPSBuZXcgT2JqZWN0KCk7DQogICAgc2V0dGluZ3NbImNtZCJdID0gZGF0YVsiY21kIl07DQogICAgc2V0dGluZ3NbInNldHRpbmdzIl0gPSBkYXRhOw0KICAgIGNvbnNvbGUubG9nKHNldHRpbmdzKTsNCiAgICB4VGVWZShzZXR0aW5ncyk7DQogIH0NCn0NCg==" + webUI["html/lang/en.json"] = "ew0KICAibWFpbk1lbnUiOg0KICB7DQogICAgIml0ZW0iOg0KICAgIHsNCiAgICAgICJwbGF5bGlzdCI6ICJQbGF5bGlzdCIsDQogICAgICAicG1zSUQiOiAiUE1TIElEIiwNCiAgICAgICJmaWx0ZXIiOiAiRmlsdGVyIiwNCiAgICAgICJ4bWx0diI6ICJYTUxUViIsDQogICAgICAibWFwcGluZyI6ICJNYXBwaW5nIiwNCiAgICAgICJ1c2VycyI6ICJVc2VycyIsDQogICAgICAic2V0dGluZ3MiOiAiU2V0dGluZ3MiLA0KICAgICAgImxvZyI6ICJMb2ciLA0KICAgICAgImxvZ291dCI6ICJMb2dvdXQiDQogICAgfSwNCiAgICAiaGVhZGxpbmUiOg0KICAgIHsNCiAgICAgICJwbGF5bGlzdCI6ICJMb2NhbCBvciByZW1vdGUgcGxheWxpc3RzIiwNCiAgICAgICJmaWx0ZXIiOiAiRmlsdGVyIHBsYXlsaXN0IiwNCiAgICAgICJ4bWx0diI6ICJMb2NhbCBvciByZW1vdGUgWE1MVFYgZmlsZXMiLA0KICAgICAgIm1hcHBpbmciOiAiTWFwIHBsYXlsaXN0IGNoYW5uZWxzIHRvIEVQRyBjaGFubmVscyIsDQogICAgICAidXNlcnMiOiAiVXNlciBtYW5hZ2VtZW50IiwNCiAgICAgICJzZXR0aW5ncyI6ICJTZXR0aW5ncyIsDQogICAgICAibG9nIjogIkxvZyIsDQogICAgICAibG9nb3V0IjogIkxvZ291dCINCiAgICB9DQogIH0sDQogICJjb25maXJtIjoNCiAgew0KICAgICJyZXN0b3JlIjogIkFsbCBkYXRhIHdpbGwgYmUgcmVwbGFjZWQgd2l0aCB0aG9zZSBmcm9tIHRoZSBiYWNrdXAuIFNob3VsZCB0aGUgZmlsZXMgYmUgcmVzdG9yZWQ/Ig0KICB9LA0KICAiYWxlcnQiOg0KICB7DQogICAgImZpbGVMb2FkaW5nRXJyb3IiOiAiRmlsZSBjb3VsZG4ndCBiZSBsb2FkZWQiLA0KICAgICJpbnZhbGlkQ2hhbm5lbE51bWJlciI6ICJJbnZhbGlkIGNoYW5uZWwgbnVtYmVyIiwNCiAgICAibWlzc2luZ0lucHV0IjogIk1pc3NpbmcgaW5wdXQiDQogIH0sDQogICJidXR0b24iOg0KICB7DQogICAgImJhY2siOiAiQmFjayIsDQogICAgImJhY2t1cCI6ICJCYWNrdXAiLA0KICAgICJidWxrRWRpdCI6ICJCdWxrIEVkaXQiLA0KICAgICJjYW5jZWwiOiAiQ2FuY2VsIiwNCiAgICAiZGVsZXRlIjogIkRlbGV0ZSIsDQogICAgImRvbmUiOiAiRG9uZSIsDQogICAgImxvZ2luIjogIkxvZ2luIiwNCiAgICAibmV3IjogIk5ldyIsDQogICAgIm5leHQiOiAiTmV4dCIsDQogICAgInJlc3RvcmUiOiAiUmVzdG9yZSIsDQogICAgInNhdmUiOiAiU2F2ZSIsDQogICAgInNlYXJjaCI6ICJTZWFyY2giLA0KICAgICJ1cGRhdGUiOiAiVXBkYXRlIiwNCiAgICAiY3JhZXRlQWNjb3VudCI6ICJDcmVhdGUgQWNjb3VudCIsDQogICAgInJlc2V0TG9ncyI6ICJSZXNldCBMb2dzIiwNCiAgICAidXBsb2FkTG9nbyI6ICJVcGxvYWQgTG9nbyINCiAgfSwNCiAgImZpbHRlciI6DQogIHsNCiAgICAidGFibGUiOg0KICAgIHsNCiAgICAgICJuYW1lIjogIkZpbHRlciBOYW1lIiwNCiAgICAgICJ0eXBlIjogIkZpbHRlciBUeXBlIiwNCiAgICAgICJmaWx0ZXIiOiAiRmlsdGVyIg0KICAgIH0sDQogICAgImN1c3RvbSI6ICJDdXN0b20iLA0KICAgICJncm91cCI6ICJNM1UgR3JvdXAiLA0KICAgICJuYW1lIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiRmlsdGVyIE5hbWUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIkZpbHRlciBuYW1lIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAiZGVzY3JpcHRpb24iOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJEZXNjcmlwdGlvbiIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiRGVzY3JpcHRpb24iLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJ0eXBlIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiVHlwZSIsDQogICAgICAiZ3JvdXBUaXRsZSI6ICJHcm91cCBUaXRsZSIsDQogICAgICAiY3VzdG9tRmlsdGVyIjogIkN1c3RvbSBGaWx0ZXIiDQogICAgfSwNCiAgICAiY2FzZVNlbnNpdGl2ZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIkNhc2UgU2Vuc2l0aXZlIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJmaWx0ZXJSdWxlIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiRmlsdGVyIFJ1bGUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIlNwb3J0IHtIRH0gIXtFUyxJVH0iLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJmaWx0ZXJHcm91cCI6DQogICAgew0KICAgICAgInRpdGxlIjogIkdyb3VwIFRpdGxlIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIlNlbGVjdCBhIE0zVSBncm91cC4gKENvdW50ZXIpPGJyPkNoYW5naW5nIHRoZSBncm91cCB0aXRsZSBpbiB0aGUgTTNVIGludmFsaWRhdGVzIHRoZSBmaWx0ZXIuIg0KICAgIH0sDQogICAgImluY2x1ZGUiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJJbmNsdWRlIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJGSEQsVUhEIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJDaGFubmVsIG5hbWUgbXVzdCBpbmNsdWRlLjxicj4oQ29tbWEgc2VwYXJhdGVkKSBDb21tYSBtZWFucyBvciINCiAgICB9LA0KICAgICJleGNsdWRlIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiRXhjbHVkZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiRVMsSVQiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIkNoYW5uZWwgbmFtZSBtdXN0IG5vdCBjb250YWluLjxicj4oQ29tbWEgc2VwYXJhdGVkKSBDb21tYSBtZWFucyBvciINCiAgICB9LA0KICAgICJwcmVzZXJ2ZU1hcHBpbmciOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJQcmVzZXJ2ZSBFeGlzdGluZyBNM1U8YnI+Q2hhbm5lbCBOdW1iZXJzIiwNCiAgICAgICJwYWxjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIlByZXNlcnZlIGV4aXN0aW5nIE0zVSBwbGF5bGlzdCBjaGFubmVsIG51bWJlcnM/Ig0KICAgIH0sDQogICAgInN0YXJ0aW5nQ2hhbm5lbCI6DQogICAgew0KICAgICAgInRpdGxlIjogIlN0YXJ0aW5nIENoYW5uZWwgTnVtYmVyIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJkZWZhdWx0TWlzc2luZ0VQRyI6DQogICAgew0KICAgICAgInRpdGxlIjogIkZpbGwgTWlzc2luZyBFUEcgRGF0YSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJXaGVuIHRoZXJlIGlzIG5vIG1hdGNoaW5nIEVQRyBkYXRhIGZvciBjaGFubmVsLCA8YnI+YXV0b2ZpbGwgd2l0aCB4VGVWZSBkdW1teSBFUEcgZGF0YT8iDQogICAgfQ0KDQogIH0sDQogICJwbGF5bGlzdCI6DQogIHsNCiAgICAidGFibGUiOg0KICAgIHsNCiAgICAgICJwbGF5bGlzdCI6ICJQbGF5bGlzdCIsDQogICAgICAidHVuZXIiOiAiVHVuZXIiLA0KICAgICAgImxhc3RVcGRhdGUiOiAiTGFzdCBVcGRhdGUiLA0KICAgICAgImF2YWlsYWJpbGl0eSI6ICJBdmFpbGFiaWxpdHkiLA0KICAgICAgInR5cGUiOiAiVHlwZSIsDQogICAgICAic3RyZWFtcyI6ICJTdHJlYW1zIiwNCiAgICAgICJncm91cFRpdGxlIjogImdyb3VwLXRpdGxlIiwNCiAgICAgICJ0dmdJRCI6ICJ0dmctaWQiLA0KICAgICAgInVuaXF1ZUlEIjogIlVuaXF1ZSBJRCINCiAgICB9LA0KICAgICJwbGF5bGlzdFR5cGUiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJQbGF5bGlzdCB0eXBlIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJ0eXBlIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiVHlwZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAibmFtZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIk5hbWUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIlBsYXlsaXN0IG5hbWUiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJkZXNjcmlwdGlvbiI6DQogICAgew0KICAgICAgInRpdGxlIjogIkRlc2NyaXB0aW9uIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJEZXNjcmlwdGlvbiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgImZpbGVNM1UiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJNM1UgRmlsZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiRmlsZSBwYXRoIG9yIFVSTCBvZiB0aGUgTTNVIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAiZmlsZUhESFIiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJIREhvbWVSdW4gSVAiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIklQIGFkZHJlc3MgYW5kIHBvcnQgKDE5Mi4xNjguMS4xMDo1MDA0KSIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgInR1bmVyIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiVHVuZXIgLyBTdHJlYW1zIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIk51bWJlciBvZiBwYXJhbGxlbCBjb25uZWN0aW9ucyB0aGF0IGNhbiBiZSBlc3RhYmxpc2hlZCB0byB0aGUgcHJvdmlkZXIuIDxicj5Pbmx5IGF2YWlsYWJsZSB3aXRoIGFjdGl2YXRlZCBidWZmZXIuPGJyPk5ldyBzZXR0aW5ncyB3aWxsIG9ubHkgYmUgYXBwbGllZCBhZnRlciBxdWl0dGluZyBhbGwgc3RyZWFtcy4iDQogICAgfQ0KICB9LA0KICAieG1sdHYiOg0KICB7DQogICAgInRhYmxlIjoNCiAgICB7DQogICAgICAiZ3VpZGUiOiAiR3VpZGUiLA0KICAgICAgImxhc3RVcGRhdGUiOiAiTGFzdCBVcGRhdGUiLA0KICAgICAgImF2YWlsYWJpbGl0eSI6ICJBdmFpbGFiaWxpdHkiLA0KICAgICAgImNoYW5uZWxzIjogIkNoYW5uZWxzIiwNCiAgICAgICJwcm9ncmFtcyI6ICJQcm9ncmFtcyINCiAgICB9LA0KICAgICJuYW1lIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiTmFtZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiR3VpZGUgbmFtZSIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgImRlc2NyaXB0aW9uIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiRGVzY3JpcHRpb24iLA0KICAgICAgInBsYWNlaG9sZGVyIjogIkRlc2NyaXB0aW9uIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAiZmlsZVhNTFRWIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiWE1MVFYgRmlsZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiRmlsZSBwYXRoIG9yIFVSTCBvZiB0aGUgWE1MVFYiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9DQogIH0sDQogICJtYXBwaW5nIjoNCiAgew0KICAgICJ0YWJsZSI6DQogICAgew0KICAgICAgImNoTm8iOiAiQ2guIE5vLiIsDQogICAgICAibG9nbyI6ICJMb2dvIiwNCiAgICAgICJjaGFubmVsTmFtZSI6ICJDaGFubmVsIE5hbWUiLA0KICAgICAgInBsYXlsaXN0IjogIlBsYXlsaXN0IiwNCiAgICAgICJncm91cFRpdGxlIjogIkdyb3VwIFRpdGxlIiwNCiAgICAgICJ4bWx0dkZpbGUiOiAiWE1MVFYgRmlsZSIsDQogICAgICAieG1sdHZJRCI6ICJYTUxUViBJRCIsDQogICAgICAidGltZXNoaWZ0IjogIlRpbWVzaGlmdCINCiAgICB9LA0KICAgICJhY3RpdmUiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJBY3RpdmUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgImNoYW5uZWxOYW1lIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiQ2hhbm5lbCBOYW1lIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJkZXNjcmlwdGlvbiI6DQogICAgew0KICAgICAgInRpdGxlIjogIkNoYW5uZWwgRGVzY3JpcHRpb24iLA0KICAgICAgInBsYWNlaG9sZGVyIjogIlVzZWQgYnkgdGhlIER1bW15IGFzIGFuIFhNTCBkZXNjcmlwdGlvbiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgInVwZGF0ZUNoYW5uZWxOYW1lIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiVXBkYXRlIENoYW5uZWwgTmFtZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAiY2hhbm5lbExvZ28iOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJMb2dvIFVSTCIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAidXBkYXRlQ2hhbm5lbExvZ28iOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJVcGRhdGUgQ2hhbm5lbCBMb2dvIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJlcGdDYXRlZ29yeSI6DQogICAgew0KICAgICAgInRpdGxlIjogIkVQRyBDYXRlZ29yeSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAibTN1R3JvdXBUaXRsZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIkdyb3VwIFRpdGxlICh4dGV2ZS5tM3UpIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJ4bWx0dkZpbGUiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJYTUxUViBGaWxlIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJ4bWx0dkNoYW5uZWwiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJYTUxUViBDaGFubmVsIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJ0aW1lc2hpZnQiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJUaW1lc2hpZnQiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIjAiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9DQogIH0sDQogICJ1c2VycyI6DQogIHsNCiAgICAidGFibGUiOg0KICAgIHsNCiAgICAgICJ1c2VybmFtZSI6ICJVc2VybmFtZSIsDQogICAgICAicGFzc3dvcmQiOiAiUGFzc3dvcmQiLA0KICAgICAgIndlYiI6ICJXRUIiLA0KICAgICAgInBtcyI6ICJQTVMiLA0KICAgICAgIm0zdSI6ICJNM1UiLA0KICAgICAgInhtbCI6ICJYTUwiLA0KICAgICAgImFwaSI6ICJBUEkiDQogICAgfSwNCiAgICAidXNlcm5hbWUiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJVc2VybmFtZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiVXNlcm5hbWUiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJwYXNzd29yZCI6DQogICAgew0KICAgICAgInRpdGxlIjogIlBhc3N3b3JkIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJQYXNzd29yZCIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgImNvbmZpcm0iOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJDb25maXJtIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJQYXNzd29yZCBjb25maXJtIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAid2ViIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiV2ViIEFjY2VzcyIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAicG1zIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiUE1TIEFjY2VzcyIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAibTN1IjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiTTNVIEFjY2VzcyIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAieG1sIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiWE1MIEFjY2VzcyIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAiYXBpIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiQVBJIEFjY2VzcyIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfQ0KICB9LA0KICAic2V0dGluZ3MiOg0KICB7DQogICAgImNhdGVnb3J5IjoNCiAgICB7DQogICAgICAiZ2VuZXJhbCI6ICJHZW5lcmFsIiwNCiAgICAgICJmaWxlcyI6ICJGaWxlcyIsDQogICAgICAic3RyZWFtaW5nIjogIlN0cmVhbWluZyIsDQogICAgICAiYmFja3VwIjogIkJhY2t1cCIsDQogICAgICAiYXV0aGVudGljYXRpb24iOiAiQXV0aGVudGljYXRpb24iDQogICAgfSwNCiAgICAidXBkYXRlIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiU2NoZWR1bGUgZm9yIHVwZGF0aW5nIChQbGF5bGlzdCwgWE1MVFYsIEJhY2t1cCkiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIjAwMDAsMTAwMCwyMDAwIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJUaW1lIGluIDI0IGhvdXIgZm9ybWF0ICgwODAwID0gODowMCBhbSkuIE1vcmUgdGltZXMgY2FuIGJlIGVudGVyZWQgY29tbWEgc2VwYXJhdGVkLiBMZWF2ZSB0aGlzIGZpZWxkIGVtcHR5IGlmIG5vIHVwZGF0ZXMgYXJlIHRvIGJlIGNhcnJpZWQgb3V0LiINCiAgICB9LA0KICAgICJhcGkiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJBUEkgSW50ZXJmYWNlIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJWaWEgQVBJIGludGVyZmFjZSBpdCBpcyBwb3NzaWJsZSB0byBzZW5kIGNvbW1hbmRzIHRvIHhUZVZlLiBBUEkgZG9jdW1lbnRhdGlvbiBpcyA8YSBocmVmPSdodHRwczovL2dpdGh1Yi5jb20veHRldmUtcHJvamVjdC94VGVWZS1Eb2N1bWVudGF0aW9uL2Jsb2IvbWFzdGVyL2VuL2NvbmZpZ3VyYXRpb24ubWQjYXBpJz5oZXJlPC9hPiINCiAgICB9LA0KICAgICJlcGdTb3VyY2UiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJFUEcgU291cmNlIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJQTVM6PGJyPi0gVXNlIEVQRyBkYXRhIGZyb20gUGxleCBvciBFbWJ5IDxicj48YnI+WEVQRzo8YnI+LSBVc2Ugb2Ygb25lIG9yIG1vcmUgWE1MVFYgZmlsZXM8YnI+LSBDaGFubmVsIG1hbmFnZW1lbnQ8YnI+LSBNM1UgLyBYTUxUViBleHBvcnQgKEhUVFAgbGluayBmb3IgSVBUViBhcHBzKSINCiAgICB9LA0KICAgICJ0dW5lciI6DQogICAgew0KICAgICAgInRpdGxlIjogIk51bWJlciBvZiBUdW5lcnMiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIk51bWJlciBvZiBwYXJhbGxlbCBjb25uZWN0aW9ucyB0aGF0IGNhbiBiZSBlc3RhYmxpc2hlZCB0byB0aGUgcHJvdmlkZXIuPGJyPkF2YWlsYWJsZSBmb3I6IFBsZXgsIEVtYnkgKEhESFIpLCBNM1UgKHdpdGggYWN0aXZlIGJ1ZmZlcikuPGJyPkFmdGVyIGEgY2hhbmdlLCB4VGVWZSBtdXN0IGJlIGRlbGV0ZSBpbiB0aGUgUGxleCAvIEVtYnkgRFZSIHNldHRpbmdzIGFuZCBzZXQgdXAgYWdhaW4uIg0KICAgIH0sDQogICAgImZpbGVzVXBkYXRlIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiVXBkYXRlcyBhbGwgZmlsZXMgYXQgc3RhcnR1cCIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiVXBkYXRlcyBhbGwgcGxheWxpc3RzLCB0dW5lciBhbmQgWE1MVFYgZmlsZXMgYXQgc3RhcnR1cC4iDQogICAgfSwNCiAgICAiY2FjaGVJbWFnZXMiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJJbWFnZSBDYWNoaW5nIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJBbGwgaW1hZ2VzIGZyb20gdGhlIFhNTFRWIGZpbGUgYXJlIGNhY2hlZCwgYWxsb3dpbmcgZmFzdGVyIHJlbmRlcmluZyBvZiB0aGUgZ3JpZCBpbiB0aGUgY2xpZW50Ljxicj5Eb3dubG9hZGluZyB0aGUgaW1hZ2VzIG1heSB0YWtlIGEgd2hpbGUgYW5kIHdpbGwgYmUgZG9uZSBpbiB0aGUgYmFja2dyb3VuZC4iDQogICAgfSwNCiAgICAicmVwbGFjZUVtcHR5SW1hZ2VzIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiUmVwbGFjZSBtaXNzaW5nIHByb2dyYW0gaW1hZ2VzIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJJZiB0aGUgcG9zdGVyIGluIHRoZSBYTUxUViBwcm9ncmFtIGlzIG1pc3NpbmcsIHRoZSBjaGFubmVsIGxvZ28gd2lsbCBiZSB1c2VkLiINCiAgICB9LA0KICAgICJ4dGV2ZUF1dG9VcGRhdGUiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJBdXRvbWF0aWMgdXBkYXRlIG9mIHhUZVZlIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJJZiBhIG5ldyB2ZXJzaW9uIG9mIHhUZVZlIGlzIGF2YWlsYWJsZSwgaXQgd2lsbCBiZSBhdXRvbWF0aWNhbGx5IGluc3RhbGxlZC4gVGhlIHVwZGF0ZXMgYXJlIGRvd25sb2FkZWQgZnJvbSBHaXRIdWIuIg0KICAgIH0sDQogICAgInN0cmVhbUJ1ZmZlcmluZyI6DQogICAgew0KICAgICAgInRpdGxlIjogIlN0cmVhbSBCdWZmZXIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIkZ1bmN0aW9ucyBvZiB0aGUgYnVmZmVyOjxicj4tIFRoZSBzdHJlYW0gaXMgcGFzc2VkIGZyb20geFRlVmUsIEZGbXBlZyBvciBWTEMgdG8gUGxleCwgRW1ieSBvciBNM1UgUGxheWVyPGJyPi0gU21hbGwgamVya2luZyBvZiB0aGUgc3RyZWFtcyBjYW4gYmUgY29tcGVuc2F0ZWQ8YnI+LSBITFMgLyBNM1U4IHN1cHBvcnQ8YnI+LSBSVFAgLyBSVFBTIHN1cHBvcnQgKG9ubHkgRkZtcGVnIG9yIFZMQyk8YnI+LSBSZS1zdHJlYW1pbmc8YnI+LSBTZXBhcmF0ZSB0dW5lciBsaW1pdCBmb3IgZWFjaCBwbGF5bGlzdCIsDQogICAgICAiaW5mb19mYWxzZSI6ICJObyBCdWZmZXIgKENsaWVudCBjb25uZWN0cyB0byB0aGUgc3RyZWFtaW5nIHNlcnZlcikiLA0KICAgICAgImluZm9feHRldmUiOiAieFRlVmUgY29ubmVjdHMgdG8gdGhlIHN0cmVhbWluZyBzZXJ2ZXIiLA0KICAgICAgImluZm9fZmZtcGVnIjogIkZGbXBlZyBjb25uZWN0cyB0byB0aGUgc3RyZWFtaW5nIHNlcnZlciIsDQogICAgICAiaW5mb192bGMiOiAiVkxDIGNvbm5lY3RzIHRvIHRoZSBzdHJlYW1pbmcgc2VydmVyIg0KDQogICAgfSwNCiAgICAidWRweHkiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJVRFB4eSBhZGRyZXNzIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJUaGUgYWRkcmVzcyBvZiB5b3VyIFVEUHh5IHNlcnZlci4gSWYgc2V0LCBhbmQgdGhlIGNoYW5uZWwgVVJMcyBpbiB0aGUgbTN1IGlzIG11bHRpY2FzdCwgeFRlVmUgd2lsbCByZXdyaXRlIGl0IHNvIHRoYXQgaXQgaXMgYWNjZXNzZWQgdmlhIHRoZSBVRFB4eSBzZXJ2aWNlLiIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiaG9zdDpwb3J0Ig0KICAgIH0sDQogICAgImZmbXBlZ1BhdGgiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJGRm1wZWcgQmluYXJ5IFBhdGgiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIlBhdGggdG8gRkZtcGVnIGJpbmFyeS4iLA0KICAgICAgInBsYWNlaG9sZGVyIjogIi9wYXRoL3RvL2ZmbXBlZyINCiAgICB9LA0KICAgICJmZm1wZWdPcHRpb25zIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiRkZtcGVnIE9wdGlvbnMiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIkZGbXBlZyBvcHRpb25zLjxicj5Pbmx5IGNoYW5nZSBpZiB5b3Uga25vdyB3aGF0IHlvdSBhcmUgZG9pbmcuPGJyPkxlYXZlIGJsYW5rIHRvIHNldCBkZWZhdWx0IHNldHRpbmdzLiIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiTGVhdmUgYmxhbmsgdG8gc2V0IGRlZmF1bHQgc2V0dGluZ3MiDQogICAgfSwNCiAgICAidmxjUGF0aCI6DQogICAgew0KICAgICAgInRpdGxlIjogIlZMQyAvIENWTEMgQmluYXJ5IFBhdGgiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIlBhdGggdG8gVkxDIC8gQ1ZMQyBiaW5hcnkuIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIvcGF0aC90by9jdmxjIg0KICAgIH0sDQogICAgInZsY09wdGlvbnMiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJWTEMgLyBDVkxDIE9wdGlvbnMiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIlZMQyAvIENWTEMgb3B0aW9ucy48YnI+T25seSBjaGFuZ2UgaWYgeW91IGtub3cgd2hhdCB5b3UgYXJlIGRvaW5nLjxicj5MZWF2ZSBibGFuayB0byBzZXQgZGVmYXVsdCBzZXR0aW5ncy4iLA0KICAgICAgInBsYWNlaG9sZGVyIjogIkxlYXZlIGJsYW5rIHRvIHNldCBkZWZhdWx0IHNldHRpbmdzIg0KICAgIH0sDQogICAgImJ1ZmZlclNpemUiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJCdWZmZXIgU2l6ZSIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiQnVmZmVyIHNpemUgaW4gTUIuPGJyPk0zVTg6IElmIHRoZSBUUyBzZWdtZW50IHNtYWxsZXIgdGhlbiB0aGUgYnVmZmVyIHNpemUsIHRoZSBmaWxlIHNpemUgb2YgdGhlIHNlZ21lbnQgaXMgdXNlZC4iDQogICAgfSwNCiAgICAiYnVmZmVyVGltZW91dCI6DQogICAgew0KICAgICAgInRpdGxlIjogIlRpbWVvdXQgZm9yIG5ldyBjbGllbnQgY29ubmVjdGlvbnMiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIlRoZSB4VGVWZSBidWZmZXIgd2FpdHMgdW50aWwgbmV3IGNsaWVudCBjb25uZWN0aW9ucyBhcmUgZXN0YWJsaXNoZWQuIEhlbHBmdWwgZm9yIGZhc3QgY2hhbm5lbCBzd2l0Y2hpbmcuIFZhbHVlIGluIG1pbGxpc2Vjb25kcy4iLA0KICAgICAgInBsYWNlaG9sZGVyIjogIjEwMCINCiAgICB9LA0KICAgICJ1c2VyQWdlbnQiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJVc2VyIEFnZW50IiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJVc2VyIEFnZW50IGZvciBIVFRQIHJlcXVlc3RzLiBGb3IgZXZlcnkgSFRUUCBjb25uZWN0aW9uLCB0aGlzIHZhbHVlIGlzIHVzZWQgZm9yIHRoZSB1c2VyIGFnZW50LiBTaG91bGQgb25seSBiZSBjaGFuZ2VkIGlmIHhUZVZlIGlzIGJsb2NrZWQuIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJ4VGVWZSINCiAgICB9LA0KICAgICJiYWNrdXBQYXRoIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiTG9jYXRpb24gZm9yIGF1dG9tYXRpYyBiYWNrdXBzIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIvbW50L2RhdGEvYmFja3VwL3h0ZXZlLyIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiQmVmb3JlIGFueSB1cGRhdGUgb2YgdGhlIHByb3ZpZGVyIGRhdGEgYnkgdGhlIHNjaGVkdWxlLCB4VGVWZSBjcmVhdGVzIGEgYmFja3VwLiBUaGUgcGF0aCBmb3IgdGhlIGF1dG9tYXRpYyBiYWNrdXBzIGNhbiBiZSBjaGFuZ2VkLiB4VGVWZSByZXF1aXJlcyB3cml0ZSBwZXJtaXNzaW9uIGZvciB0aGlzIGZvbGRlci4iDQogICAgfSwNCiAgICAidGVtcFBhdGgiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJMb2NhdGlvbiBmb3IgdGhlIHRlbXBvcmFyeSBmaWxlcyIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiL3RtcC94dGV2ZS8iLA0KICAgICAgImRlc2NyaXB0aW9uIjogIkxvY2F0aW9uIGZvciB0aGUgYnVmZmVyIGZpbGVzLiINCiAgICB9LA0KICAgICJiYWNrdXBLZWVwIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiTnVtYmVyIG9mIGJhY2t1cHMgdG8ga2VlcCIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiTnVtYmVyIG9mIGJhY2t1cHMgdG8ga2VlcC4gT2xkZXIgYmFja3VwcyBhcmUgYXV0b21hdGljYWxseSBkZWxldGVkLiINCiAgICB9LA0KICAgICJhdXRoZW50aWNhdGlvbldFQiI6DQogICAgew0KICAgICAgInRpdGxlIjogIldFQiBBdXRoZW50aWNhdGlvbiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiQWNjZXNzIHRvIHRoZSB3ZWIgaW50ZXJmYWNlIG9ubHkgcG9zc2libGUgd2l0aCBjcmVkZW50aWFscy4iDQogICAgfSwNCiAgICAiYXV0aGVudGljYXRpb25QTVMiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJQTVMgQXV0aGVudGljYXRpb24iLA0KICAgICAgImRlc2NyaXB0aW9uIjogIlBsZXggcmVxdWVzdHMgYXJlIG9ubHkgcG9zc2libGUgd2l0aCBhdXRoZW50aWNhdGlvbi4gPGJyPjxiPldhcm5pbmchISE8L2I+IEFmdGVyIGFjdGl2YXRpbmcgdGhpcyBmdW5jdGlvbiB4VGVWZSBtdXN0IGJlIGRlbGV0ZSBpbiB0aGUgUE1TIERWUiBzZXR0aW5ncyBhbmQgc2V0IHVwIGFnYWluLiINCiAgICB9LA0KICAgICJhdXRoZW50aWNhdGlvbk0zVSI6DQogICAgew0KICAgICAgInRpdGxlIjogIk0zVSBBdXRoZW50aWNhdGlvbiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiRG93bmxvYWRpbmcgdGhlIHh0ZXZlLm0zdSBmaWxlIHZpYSBhbiBIVFRQIHJlcXVlc3QgaXMgb25seSBwb3NzaWJsZSB3aXRoIGF1dGhlbnRpY2F0aW9uLiINCiAgICB9LA0KICAgICJhdXRoZW50aWNhdGlvblhNTCI6DQogICAgew0KICAgICAgInRpdGxlIjogIlhNTCBBdXRoZW50aWNhdGlvbiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiRG93bmxvYWRpbmcgdGhlIHh0ZXZlLnhtbCBmaWxlIHZpYSBhbiBIVFRQIHJlcXVlc3QgaXMgb25seSBwb3NzaWJsZSB3aXRoIGF1dGhlbnRpY2F0aW9uIg0KICAgIH0sDQogICAgImF1dGhlbnRpY2F0aW9uQVBJIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiQVBJIEF1dGhlbnRpY2F0aW9uIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJBY2Nlc3MgdG8gdGhlIEFQSSBpbnRlcmZhY2UgaXMgb25seSBwb3NzaWJsZSB3aXRoIGF1dGhlbnRpY2F0aW9uLiINCiAgICB9DQogIH0sDQogICJ3aXphcmQiOg0KICB7DQogICAgImVwZ1NvdXJjZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIkVQRyBTb3VyY2UiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIlBNUzo8YnI+LSBVc2UgRVBHIGRhdGEgZnJvbSBQbGV4IG9yIEVtYnkgPGJyPjxicj5YRVBHOjxicj4tIFVzZSBvZiBvbmUgb3IgbW9yZSBYTUxUViBmaWxlczxicj4tIENoYW5uZWwgbWFuYWdlbWVudDxicj4tIE0zVSAvIFhNTFRWIGV4cG9ydCAoSFRUUCBsaW5rIGZvciBJUFRWIGFwcHMpIg0KICAgIH0sDQogICAgInR1bmVyIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiTnVtYmVyIG9mIHR1bmVycyIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiTnVtYmVyIG9mIHBhcmFsbGVsIGNvbm5lY3Rpb25zIHRoYXQgY2FuIGJlIGVzdGFibGlzaGVkIHRvIHRoZSBwcm92aWRlci48YnI+QXZhaWxhYmxlIGZvcjogUGxleCwgRW1ieSAoSERIUiksIE0zVSAod2l0aCBhY3RpdmUgYnVmZmVyKS48YnI+QWZ0ZXIgYSBjaGFuZ2UsIHhUZVZlIG11c3QgYmUgZGVsZXRlIGluIHRoZSBQbGV4IC8gRW1ieSBEVlIgc2V0dGluZ3MgYW5kIHNldCB1cCBhZ2Fpbi4iDQogICAgfSwNCiAgICAibTN1IjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiTTNVIFBsYXlsaXN0IiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJGaWxlIHBhdGggb3IgVVJMIG9mIHRoZSBNM1UiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIkxvY2FsIG9yIHJlbW90ZSBwbGF5bGlzdHMiDQogICAgfSwNCiAgICAieG1sdHYiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJYTUxUViBGaWxlIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJGaWxlIHBhdGggb3IgVVJMIG9mIHRoZSBYTUxUViIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiTG9jYWwgb3IgcmVtb3RlIFhNTFRWIGZpbGUiDQogICAgfQ0KICB9LA0KICAibG9naW4iOg0KICB7DQogICAgImZhaWxlZCI6ICJVc2VyIGF1dGhlbnRpY2F0aW9uIGZhaWxlZCIsDQogICAgImhlYWRsaW5lIjogIkxvZ2luIiwNCiAgICAidXNlcm5hbWUiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJVc2VybmFtZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiVXNlcm5hbWUiDQogICAgfSwNCiAgICAicGFzc3dvcmQiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJQYXNzd29yZCIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiUGFzc3dvcmQiDQogICAgfQ0KICB9LA0KICAiYWNjb3VudCI6DQogIHsNCiAgICAiZmFpbGVkIjogIlBhc3N3b3JkIGRvZXMgbm90IG1hdGNoIiwNCiAgICAiaGVhZGxpbmUiOiAiQ3JlYXRlIHVzZXIgYWNjb3VudCIsDQogICAgInVzZXJuYW1lIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiVXNlcm5hbWUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIlVzZXJuYW1lIg0KICAgIH0sDQogICAgInBhc3N3b3JkIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiUGFzc3dvcmQiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIlBhc3N3b3JkIg0KICAgIH0sDQogICAgImNvbmZpcm0iOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJDb25maXJtIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJDb25maXJtIg0KICAgIH0NCiAgfQ0KfQ==" + webUI["html/configuration.html"] = "PCFkb2N0eXBlIGh0bWw+DQo8aHRtbD4NCiAgPGhlYWQ+DQogICAgPG1ldGEgY2hhcnNldD0idXRmLTgiPg0KICAgIDxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgsIGluaXRpYWwtc2NhbGU9MS4wIiAvPiANCiAgICA8dGl0bGU+eFRlVmU8L3RpdGxlPg0KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iY3NzL3NjcmVlbi5jc3MiIHR5cGU9InRleHQvY3NzIj4NCiAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9ImNzcy9iYXNlLmNzcyIgdHlwZT0idGV4dC9jc3MiPg0KICAgIDxzY3JpcHQgbGFuZ3VhZ2U9ImphdmFzY3JpcHQiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJqcy9jb25maWd1cmF0aW9uX3RzLmpzIj48L3NjcmlwdD4NCiAgICA8c2NyaXB0IGxhbmd1YWdlPSJqYXZhc2NyaXB0IiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ianMvbmV0d29ya190cy5qcyI+PC9zY3JpcHQ+DQogICAgPHNjcmlwdCBsYW5ndWFnZT0iamF2YXNjcmlwdCIgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9ImpzL21lbnVfdHMuanMiPjwvc2NyaXB0Pg0KICAgIDxzY3JpcHQgbGFuZ3VhZ2U9ImphdmFzY3JpcHQiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJqcy9zZXR0aW5nc190cy5qcyI+PC9zY3JpcHQ+DQogICAgPHNjcmlwdCBsYW5ndWFnZT0iamF2YXNjcmlwdCIgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9ImpzL2Jhc2VfdHMuanMiPjwvc2NyaXB0Pg0KICA8L2hlYWQ+DQoNCiAgICA8Ym9keSBvbmxvYWQ9ImphdmFzY3JpcHQ6IHJlYWR5Rm9yQ29uZmlndXJhdGlvbigwKTsiPg0KICAgICAgICAgIA0KICAgICAgPGRpdiBpZD0ibG9hZGluZyIgY2xhc3M9ImJsb2NrIj4NCiAgICAgICAgPGRpdiBjbGFzcz0ibG9hZGVyIj48L2Rpdj4NCiAgICAgIDwvZGl2Pg0KDQogICAgICA8ZGl2IGlkPSJoZWFkZXIiIGNsYXNzPSJpbWdDZW50ZXIiPjwvZGl2Pg0KICAgICAgPGRpdiBpZD0iYm94Ij4NCiAgICAgICAgDQogICAgICAgIDx0YWJsZSBpZD0iY2xpZW50SW5mbyIgY2xhc3M9InZpc2libGUiPg0KICAgICAgICAgIDx0cj4NCiAgICAgICAgICAgIDx0ZCBjbGFzcz0idGRLZXkiPlZlcnNpb246PC90ZD4NCiAgICAgICAgICAgIDx0ZCBpZD0idmVyc2lvbiIgY2xhc3M9InRkVmFsIj4mbmJzcDs8L3RkPg0KICAgICAgICAgICAgPHRkIGNsYXNzPSJ0ZEtleSI+T1M6PC90ZD4NCiAgICAgICAgICAgIDx0ZCBpZD0ib3MiIGNsYXNzPSJ0ZFZhbCI+Jm5ic3A7PC90ZD4NCiAgICAgICAgICA8L3RyPg0KICAgICAgICAgIDx0cj4NCiAgICAgICAgICAgIDx0ZCBjbGFzcz0idGRLZXkiPlVVSUQ6PC90ZD4NCiAgICAgICAgICAgIDx0ZCBpZD0idXVpZCIgY2xhc3M9InRkVmFsIj4mbmJzcDs8L3RkPg0KICAgICAgICAgICAgPHRkIGNsYXNzPSJ0ZEtleSI+QXJjaDo8L3RkPg0KICAgICAgICAgICAgPHRkIGlkPSJhcmNoIiBjbGFzcz0idGRWYWwiPiZuYnNwOzwvdGQ+DQogICAgICAgICAgPC90cj4NCiAgICAgICAgICA8dHI+DQogICAgICAgICAgICA8dGQgY2xhc3M9InRkS2V5Ij5TdHJlYW1zOjwvdGQ+DQogICAgICAgICAgICA8dGQgaWQ9InN0cmVhbXMiIGNsYXNzPSJ0ZFZhbCI+Jm5ic3A7PC90ZD4NCiAgICAgICAgICAgIDx0ZCBjbGFzcz0idGRLZXkiPkRWUjo8L3RkPg0KICAgICAgICAgICAgPHRkIGlkPSJEVlIiIGNsYXNzPSJ0ZFZhbCI+Jm5ic3A7PC90ZD4NCiAgICAgICAgICA8L3RyPg0KICAgICAgICA8L3RhYmxlPg0KICAgICAgICANCiAgICAgICAgPGRpdiBpZD0iaGVhZGxpbmUiPg0KICAgICAgICAgIDxoMSBpZD0iaGVhZC10ZXh0IiBjbGFzcz0iY2VudGVyIj5Db25maWd1cmF0aW9uPC9oMT4gICAgICANCiAgICAgICAgPC9kaXY+DQogICAgICAgIDxwIGlkPSJlcnIiIGNsYXNzPSJlcnJvck1zZyBjZW50ZXIiPjwvcD4gICANCiAgICAgICAgPGRpdiBpZD0iY29udGVudCI+DQogICAgICAgICAgICANCiAgICAgICAgPC9kaXY+DQogICAgICAgIDxkaXYgaWQ9ImJveC1mb290ZXIiPg0KICAgICAgICAgIDxpbnB1dCBpZD0ibmV4dCIgY2xhc3M9IiIgdHlwZT0iYnV0dG9uIiBuYW1lPSJuZXh0IiB2YWx1ZT0iTmV4dCIgb25jbGljaz0iamF2YXNjcmlwdDogc2F2ZVdpemFyZCgpOyI+DQogICAgICAgIDwvZGl2Pg0KICAgICAgPC9kaXY+DQogICAgPC9ib2R5Pg0KPC9odG1sPg==" + webUI["html/img/logo_b_880x200.jpg"] = "/9j/4AAQSkZJRgABAQABLAEsAAD/4QDIRXhpZgAATU0AKgAAAAgABwESAAMAAAABAAEAAAEaAAUAAAABAAAAYgEbAAUAAAABAAAAagEoAAMAAAABAAIAAAExAAIAAAAPAAAAcgEyAAIAAAAUAAAAgodpAAQAAAABAAAAlgAAAAAAAAEsAAAAAQAAASwAAAABUGl4ZWxtYXRvciAzLjMAADIwMTk6MDg6MDIgMjA6MDg6MTQAAAOgAQADAAAAAQABAACgAgAEAAAAAQAAA3CgAwAEAAAAAQAAAMgAAAAA/+EJkGh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8APD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iWE1QIENvcmUgNS40LjAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcDpDcmVhdG9yVG9vbD0iUGl4ZWxtYXRvciAzLjMiIHhtcDpNb2RpZnlEYXRlPSIyMDE5LTA4LTAyVDIwOjA4OjE0Ii8+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPD94cGFja2V0IGVuZD0idyI/PgD/7QA4UGhvdG9zaG9wIDMuMAA4QklNBAQAAAAAAAA4QklNBCUAAAAAABDUHYzZjwCyBOmACZjs+EJ+/8AAEQgAyANwAwERAAIRAQMRAf/EAB8AAAEFAQEBAQEBAAAAAAAAAAABAgMEBQYHCAkKC//EALUQAAIBAwMCBAMFBQQEAAABfQECAwAEEQUSITFBBhNRYQcicRQygZGhCCNCscEVUtHwJDNicoIJChYXGBkaJSYnKCkqNDU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6g4SFhoeIiYqSk5SVlpeYmZqio6Slpqeoqaqys7S1tre4ubrCw8TFxsfIycrS09TV1tfY2drh4uPk5ebn6Onq8fLz9PX29/j5+v/EAB8BAAMBAQEBAQEBAQEAAAAAAAABAgMEBQYHCAkKC//EALURAAIBAgQEAwQHBQQEAAECdwABAgMRBAUhMQYSQVEHYXETIjKBCBRCkaGxwQkjM1LwFWJy0QoWJDThJfEXGBkaJicoKSo1Njc4OTpDREVGR0hJSlNUVVZXWFlaY2RlZmdoaWpzdHV2d3h5eoKDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uLj5OXm5+jp6vLz9PX29/j5+v/bAEMAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAf/bAEMBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAf/dAAQAbv/aAAwDAQACEQMRAD8A/iHoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKAP/9D+IegAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoA//0f4h6ACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgD//S/iHoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKAP/9P+IegAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoA//1P4h6ACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgDvPDXws+J3jPT31bwf8OfHnivSo7mSyfU/DXhDxBrunpeQpFLNaPe6Xp11bLcxRzwSSQNL5saTROyhZUNAHQf8M//AB4/6In8XP8Aw23jL/5TUAH/AAz/APHj/oifxc/8Nt4y/wDl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f/E3xn4o+IPjnxDLaafp8mveMPGet33iPxNrMlhpNpYaVZPqmtale3z2mmWNlp9s05hsrS2tkjhQA4ygAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgD//S/iHoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAczu+N7M2BgbmLYHoM9BnJxx1/FgBtABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAOLuwVWZiq/dUsSFz12joM4HQduc4FADaACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgD//0/4h6ACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgD//U/iHoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKAP/9X+IegAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoA//1v4h6ACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgD//X/iHoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKAP/9k=" webUI["html/img/settings.png"] = "iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAAAXNSR0IArs4c6QAAAAlwSFlzAAAsSwAALEsBpT2WqQAABCRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IlhNUCBDb3JlIDUuNC4wIj4KICAgPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIgogICAgICAgICAgICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgICAgICAgICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyI+CiAgICAgICAgIDx0aWZmOlJlc29sdXRpb25Vbml0PjI8L3RpZmY6UmVzb2x1dGlvblVuaXQ+CiAgICAgICAgIDx0aWZmOkNvbXByZXNzaW9uPjU8L3RpZmY6Q29tcHJlc3Npb24+CiAgICAgICAgIDx0aWZmOlhSZXNvbHV0aW9uPjI4ODwvdGlmZjpYUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6T3JpZW50YXRpb24+MTwvdGlmZjpPcmllbnRhdGlvbj4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+Mjg4PC90aWZmOllSZXNvbHV0aW9uPgogICAgICAgICA8ZXhpZjpQaXhlbFhEaW1lbnNpb24+NTA8L2V4aWY6UGl4ZWxYRGltZW5zaW9uPgogICAgICAgICA8ZXhpZjpDb2xvclNwYWNlPjE8L2V4aWY6Q29sb3JTcGFjZT4KICAgICAgICAgPGV4aWY6UGl4ZWxZRGltZW5zaW9uPjUwPC9leGlmOlBpeGVsWURpbWVuc2lvbj4KICAgICAgICAgPGRjOnN1YmplY3Q+CiAgICAgICAgICAgIDxyZGY6QmFnLz4KICAgICAgICAgPC9kYzpzdWJqZWN0PgogICAgICAgICA8eG1wOk1vZGlmeURhdGU+MjAxOC0wOC0xMFQxODowODo4OTwveG1wOk1vZGlmeURhdGU+CiAgICAgICAgIDx4bXA6Q3JlYXRvclRvb2w+UGl4ZWxtYXRvciAzLjM8L3htcDpDcmVhdG9yVG9vbD4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgIDwvcmRmOlJERj4KPC94OnhtcG1ldGE+Ckxt87EAAAS7SURBVGgFzZpdiFVVGIbn5N+IMgVhaRLqWI7mQIJoIVRgOhQZNDAhWcbcVuPV3BRE6I14440iQQSaN0p6kz8zI0k5inUhZSSaYOVYODMo5eiMOOPf+LzH2cPMPmvttdbe53jOBy9rr2+938/ae51vr733qaoqgQwPD68B/wDJfXAP3AE94JMShCy+SxJ9CvSDJFlU7MiPFdsh/hrBdIffBsd48HApJjLPI4tnPThBlFJMZI5HBuWZCIt9AmgEzeAJR6JzHeMadnKI8wbYCz4Fkz18JlNwMgf8BCL5j4O3bVaMdUfEhPZqgv1U7HbEbDvoT7HZOPUYNwAlHheV09a4A3RTgMqtj9QY7JdgeM5i3I4+fDIYrQeq/UnyNYOTlBDtS+BwEjk2doz+KyO2OY5bwVCME+/qylTHT4C1D3k+uB33Yul3ov/eMuajlu1RH+II5wtT4hNNSnQ6U/kzbRkfq351bCfF8apAm7kmvq38njWRK0S305SHcSK5XO4U5O9MBmXWbSe3E6YccialdKzH2TTnQEF10XgZ5DdivsxEhkyxjVdERAwu03xmMiqD7hYx19km4cyHq6KyeHKkWpSz+ciVrHVpRYZk/wLHp0H2bULkNKzt4Eq86TKxLq3IECf6nXwV9QPbAfjHQSfoD7SN6L63gYhvbrkiTwKf/dPYpbdPVxKMnigdg0VAG8FQye8AzBl6aIk2A+wPiNoHd63LNZx3wbUAvz/CfTzJb/43AmkGpLfAi0DPE/NALQgtve+xFPdi5xRiNkHa5ySOJ/TR7RrBJdqL4AAxL+p+8ToYAFklNCnF3pM1KPba2L6v8vons5oPsko9ZyZoa0PsOoKezxoY+y5N5DYHWSvDTXzUMJH7IUkRW0tbyyV0CcfDDKmqDMe1KfqnQyehGNgo9q8p4hWYFGsiBY4fsSK/BRkkaPgj5PhMy720BnVFesfnlKo3Das0bw8XYJf196GEuzWRLSDoRypLg2w06FyqTS6Cx7iK1eeqGqrnugmuBgvB8+A5UAuqQYiU+oZ4h2T+BV3gAlDp/pai0U1rFpVGMAv8AHzFd4vShMOQLcoB+DNB/sSbM3ZoMV4BQsW0adSJSbNp1Hu1mY40/YZxpPdJaUSfFzrBMXAjjQNsdvll6cHCWVvKJIphdhcny11pqmolCk5aIDif0BKdZBucgPlO8kh/r8O4HtwClSCbk86HtQqQuUrvKVCf5OARjt0lll4H/WKKmbS0tmJQKZNQ7nq9+w0n2LhTN04E8jKMPpZ1hcli8tGTZYEYJwJrZQGzchTGz3a2ifwdkHc73LYAfpx6DcWXQK1LeiDsdpFGx7UOwUGQJKpmGyIjjvWh50iSQWzsZ/ofgvx+jnYp+B/YpJcB7QXDBKPJ4JDF6+/oCwoBuhoL36R+Jp4RJH16u2IgaxJpHhMehsBY3wTjV2YbOuuumLHrwCW6msbSj74O/DHGgV4Ohl8Jw1nSMmsB+tL6Wnw83odzBrhEr2GtgvFE8A74ADxtJZZygMC25cjQqBwqdg62qpUlziUP45Cq6OGuqqoUE/FJ8i+v7MpJYvEsHl1A5gNty2vLmaN3bBLdAvqB3svqXxLRvyEuc9zs7SiA+ACpw05pJx8SoAAAAABJRU5ErkJggg==" - webUI["html/img/stream-limit.jpg"] = "/9j/4AAQSkZJRgABAQAAAQABAAD/4gJoSUNDX1BST0ZJTEUAAQEAAAJYbGNtcwQwAABtbnRyUkdCIFhZWiAH4wAFABcAFgAuAAphY3NwQVBQTAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA9tYAAQAAAADTLWxjbXMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAtkZXNjAAABCAAAAEBjcHJ0AAABSAAAAE53dHB0AAABmAAAABRjaGFkAAABrAAAACxyWFlaAAAB2AAAABRiWFlaAAAB7AAAABRnWFlaAAACAAAAABRyVFJDAAACFAAAACBnVFJDAAACFAAAACBiVFJDAAACFAAAACBjaHJtAAACNAAAACRtbHVjAAAAAAAAAAEAAAAMZW5VUwAAACQAAAAcAHMAUgBHAEIAIABJAEUAQwA2ADEAOQA2ADYALQAyAC4AMQAAbWx1YwAAAAAAAAABAAAADGVuVVMAAAAyAAAAHABOAG8AIABjAG8AcAB5AHIAaQBnAGgAdAAsACAAdQBzAGUAIABmAHIAZQBlAGwAeQAAAABYWVogAAAAAAAA9tYAAQAAAADTLXNmMzIAAAAAAAEMSgAABeP///MqAAAHmwAA/Yf///ui///9owAAA9gAAMCUWFlaIAAAAAAAAG+UAAA47gAAA5BYWVogAAAAAAAAJJ0AAA+DAAC2vlhZWiAAAAAAAABipQAAt5AAABjecGFyYQAAAAAAAwAAAAJmZgAA8qcAAA1ZAAAT0AAACltjaHJtAAAAAAADAAAAAKPXAABUewAATM0AAJmaAAAmZgAAD1z/2wBDAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQH/2wBDAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQH/wAARCAQ4B4ADASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD/AD/6KKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigD9PvBf/AARa/wCCrXxF8HeE/iD4G/YM/aL8UeCfHfhrQvGXg/xNpHgia50nxF4W8T6Xa634f13TLkTgXGn6vpN9aahZTgAS21xFIAN1dL/w4o/4LB/9I7/2m/8AwgZ//kiv9b3/AIJp/wDKOX9gH/syf9lX/wBUV4Dr7YoA/wAWr/hxR/wWD/6R3/tN/wDhAz//ACRR/wAOKP8AgsH/ANI7/wBpv/wgZ/8A5Ir/AGlaKAP8Wr/hxR/wWD/6R3/tN/8AhAz/APyRR/w4o/4LB/8ASO/9pv8A8IGf/wCSK/2laKAP8Wr/AIcUf8Fg/wDpHf8AtN/+EDP/APJFH/Dij/gsH/0jv/ab/wDCBn/+SK/2laKAP8Wr/hxR/wAFg/8ApHf+03/4QM//AMkUf8OKP+Cwf/SO/wDab/8ACBn/APkiv9pWigD/ABav+HFH/BYP/pHf+03/AOEDP/8AJFH/AA4o/wCCwf8A0jv/AGm//CBn/wDkiv8AaVooA/xav+HFH/BYP/pHf+03/wCEDP8A/JFH/Dij/gsH/wBI7/2m/wDwgZ//AJIr/aVooA/xav8AhxR/wWD/AOkd/wC03/4QM/8A8kUf8OKP+Cwf/SO/9pv/AMIGf/5Ir/aVooA/xav+HFH/AAWD/wCkd/7Tf/hAz/8AyRR/w4o/4LB/9I7/ANpv/wAIGf8A+SK/2laKAP8AFq/4cUf8Fg/+kd/7Tf8A4QM//wAkUf8ADij/AILB/wDSO/8Aab/8IGf/AOSK/wBpWigD/Fq/4cUf8Fg/+kd/7Tf/AIQM/wD8kUf8OKP+Cwf/AEjv/ab/APCBn/8Akiv9pWigD/Fq/wCHFH/BYP8A6R3/ALTf/hAz/wDyRR/w4o/4LB/9I7/2m/8AwgZ//kiv9pWigD/E88f/APBGT/gqj8K/AnjT4nfEX9hL9ofwf8P/AIdeFPEPjnxz4t1zwTNaaL4X8IeE9Ju9d8SeIdXujORbaZo2j2F5qN9OQRDa20shB24r8yq/28f+Ctf/ACit/wCClX/ZhH7Xv/rP/wAQK/xDqACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooA+j/ANmj9kL9pr9snxbrvgL9lr4K+Ovjn408M+HH8X6/4Y+H2ljWdZ0vwvFqen6NLr1zYrNHMNMh1XVtL0+a7RWihu9RsoZSj3MIf7U/4cUf8Fg/+kd/7Tf/AIQM/wD8kV2v/BAD9sj/AIYi/wCCrf7K/wATNW1X+yvh98QPFw+AHxWklm+z6f8A8IJ8aWg8HjU9Xl3Ls0rwd4wufCPxAuz82B4RQlJACjf7MFAH+LV/w4o/4LB/9I7/ANpv/wAIGf8A+SKP+HFH/BYP/pHf+03/AOEDP/8AJFf7StFAH+LV/wAOKP8AgsH/ANI7/wBpv/wgZ/8A5Io/4cUf8Fg/+kd/7Tf/AIQM/wD8kV/tK0UAf4tX/Dij/gsH/wBI7/2m/wDwgZ//AJIo/wCHFH/BYP8A6R3/ALTf/hAz/wDyRX+0rRQB/gx/HT4CfGb9mT4n+Ivgt+0B8NfFnwj+K3hJNHl8SeA/G2lzaP4i0iLxBomneI9Emu7KbJWLU9C1bTtTs5UZ45rW7idWySB5HX9yX/B69+yL/wAIr8eP2V/22/D2meXpfxb8Da18BfiPd2sOy3i8afDG9k8U+BdR1OXbiXVPFHg/xZrukWzB2P8AZnw0jjZIxEjS/wANtABRRRQAUUUUAFFFFABRRRQAUUUUAPRHldIokeSSR1SONFLu7uQqIiKCzOzEKqqCWJAAJNfq8n/BCv8A4LBSIki/8E7/ANp3a6q67vh/dI21gGG5HnV0bB5V1VlPDAEEVv8A/BBj9kX/AIbU/wCCrf7Ivwo1PTP7T8DeGPiFb/Gz4nRTQ+fpzeAvgpE3xDv9L1hQrEaZ4w1nRdD8BSkAFp/FdvH5kO/zo/8AZ4oA/wAWr/hxR/wWD/6R3/tN/wDhAz//ACRR/wAOKP8AgsH/ANI7/wBpv/wgZ/8A5Ir/AGlaKAP8Wr/hxR/wWD/6R3/tN/8AhAz/APyRR/w4o/4LB/8ASO/9pv8A8IGf/wCSK/2laKAP8Wr/AIcUf8Fg/wDpHf8AtN/+EDP/APJFH/Dij/gsH/0jv/ab/wDCBn/+SK/2laKAP8Kz9p39iX9rL9i7UfCOkftV/AT4ifAfVPHtlq+o+DtO+IejjRb3xDp+gz2Ntq97p1s00k0lrY3GpWUEs7IkbSz+XGztHKI/lqv6F/8Ag5+/bI/4a5/4K2/HDTNF1X+0fh7+y5aaZ+y74KEU261GofDq61K8+KVz5UbG3N0fi9r3jnSTexl5bzSdE0USybLeCGD+eigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigD/cg/4Jp/8o5f2Af+zJ/2Vf8A1RXgOvtivif/AIJp/wDKOX9gH/syf9lX/wBUV4Dr7YoAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigD8+P8AgrX/AMorf+ClX/ZhH7Xv/rP/AMQK/wAQ6v8Abx/4K1/8orf+ClX/AGYR+17/AOs//ECv8Q6gAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAHI7xOkkbtHJGyvHIjFHR0IZXRlIZWVgGVlIIIBBBFf7Z//BIH9sRP28f+Cbv7J37St5qS6n4x8VfC/TPDXxTmMqvc/wDC3PhxNcfD/wCJdxdQ5Mtp/bPi7w3qfiLT7e4zK2jazplyHnhuIrib/Eur/QW/4Mm/2yPteh/tZfsE+JNV3T6PeaT+1D8KNPml3yNp2pDRvht8YrW381t0NrYahB8JtRtLK33Rtda5r980cUjzyzgH98VFFFABRRRQAUUUUAfhR/wcifsif8Ngf8Eif2ndD0vTP7T8dfAvSbH9p74ehYvPuINW+DCXur+MUs4FUzXF/qvwjvfiRoFhb25E819q9skazn/R5v8AHer/AH6NW0rTdd0rU9D1mxtdU0fWdPvNK1bTL6FLmy1HTdRtpLS+sby3kDRz2t3azS29xDIrJLFI6OCrEV/hv/8ABQv9lrUv2J/23/2ov2V9Riuo4Pgv8Y/GHhbwzPe7/tWqeAJdQbWfhrr83mfPu8R/D7VPDOvjcWO3Uh88n32APjeiiigAooooAKKKKACiiigAooooA/0D/wDgyU/ZE+z6T+19+3Xr+mYl1G70D9lz4Y6lJFtdbSwTSfif8YfKaRd0lvd3Vz8HreC4g2xifS9VtneSRHSD++mvyl/4Ih/sif8ADEf/AAS3/ZB+B2o6X/ZXjV/hhYfE/wCKEEsPlahH8S/jDNN8SfFmmaq21WnvfCl14ki8EpKw+Ww8M2MCExQxmv1aoAKKKKACiiigAr5A/b+/ao0X9iP9iv8AaZ/as1xrRk+Cfwi8V+LdCsr5gtrrfjk2R0j4c+GZWLKF/wCEq8f6n4a8NodwxJqqdeh+v6/ib/4PTP2yP+EA/Za/Z5/Yk8N6r5WvftCfEG7+LPxGtLWb98nww+Dogh8OaVqtvuA+weKviT4g03W9Nk2uWvvhfdrujEZEoB/nB+IfEGteLPEGueKvEup3eteIvE2san4g1/WL+Uz32ra1rN7PqOq6nezNzNd399cz3VzKeZJpXc8mseiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigD/cg/4Jp/8AKOX9gH/syf8AZV/9UV4Dr7Yr4n/4Jp/8o5f2Af8Asyf9lX/1RXgOvtigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAPz4/4K1/8orf+ClX/AGYR+17/AOs//ECv8Q6v9vH/AIK1/wDKK3/gpV/2YR+17/6z/wDECv8AEOoAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAr9V/+CJP7ZH/DCn/BT39k348anqv9leA2+Itp8Mvi1NNN5Onp8LPi3FJ8P/F+qaou5RPaeEbfXYPHcMLMB/aXhXT5R80Sg/lRRQB/v8UV+TP/AAQ5/bI/4bo/4JdfsnfG7VNV/tXx9p/w+tfhN8WpZZvO1Fvid8IJG8A+JNV1f5m8u/8AGUWi6d8QFjDECx8W2TgRh/LT9ZqACiiigAooooAK/wA07/g9I/ZE/wCFcftj/AD9sXQNM8jQP2lfhZdfD7xtd28O5H+KPwOnsbO31HUp1A8q41z4a+KvBmkaXDN808HgPUnhZ1tplh/0sa/nd/4Oi/2RP+Gq/wDgkT8cNZ0fS/7R8dfsuapoP7T/AITMUO64TS/ACahpXxSVp0Bnjsbf4ReJvHOuz26hoLi+0HS2nQG3iuLcA/yKaKKKACiiigAooooAKKKKACv02/4I3fsi/wDDcf8AwUy/ZC/Z3vtM/tXwfr3xX0nxh8TrWSLfaS/Cr4XQ3PxJ+IlleyMGhto9d8L+FtQ8NWk04MbaprWn2yxzz3EUEv5k1/eL/wAGTH7In9reP/2uf259f0zdZ+D9A0H9mf4Z6hND5sEmveK7jTviL8VprV3Gy21LQ9E0b4YWSTwlp207xnqVsWhgnkS5AP8AQzooooAKKKKACiiigAr/AB3f+DkD9sj/AIbN/wCCtf7SWvaRqv8Aanw9+BGpWv7MPw1aOf7RaJovwcudR0zxfd2E6MYLnT9d+LV/8RfEWm3dsPJuNM1axZJJ1VbiX/Ux/wCCnv7XVn+wl+wF+1T+1TLdW1trXws+E2vXHgJbsRtBe/FTxOYPBnwo02aKQMJbe/8AiN4h8MW16qxysti9zN5UixMp/wAQK+vr3U7281LUru5v9R1C6uL6/vryaS5u729u5XuLq7uriZnlnubieR5p5pXaSWV2d2ZmJIBVooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooA/sa/Z9/4PGv2mv2ffgJ8EPgJo37HXwJ8QaP8EPhD8NfhDpOv6n43+IFtqWt6b8NfBmi+DLHV9Qt7QfZbe+1K10WK9u4bb/R4riaSOH92q169/xG8ftWf9GRfs9/+F98R/8ACv4h6KAP7eP+I3j9qz/oyL9nv/wvviP/AIUf8RvH7Vn/AEZF+z3/AOF98R/8K/iHooA/t4/4jeP2rP8AoyL9nv8A8L74j/4Uf8RvH7Vn/RkX7Pf/AIX3xH/wr+IeigD+3j/iN4/as/6Mi/Z7/wDC++I/+FH/ABG8ftWf9GRfs9/+F98R/wDCv4h6KAP9GT/gmX/wdhftE/t2/t3fs3/skeLv2T/gt4E8N/G/xpf+F9W8XeHPGPjnUNb0O3tPCviHxCt1p9lqY+wXEzzaNFbslz8gimkYfOq1/cpX+NT/AMG73/KaX9gD/srmtf8AqtPHVf7K1ABRRRQAUUUUAFFFFAH8KH/BRT/g7X/aN/Yq/bf/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WOj6BoOn3Gq6xql5Jg+Xaafp1pcXdw+DshhdsHGKAP8AN2/4PR/2yP8AhY37XHwD/Yq8N6r53h/9m34dT/Er4g2dtNiP/hanxqFlcaTpmqW4Yh7rw38MdB8M6zpUzhWitviTqKICJmJ/itr6y/bt/ah179tX9sf9pP8Aaq8RG6juvjh8XfF/jbS7C9fzLjQfCN1qUln4D8LF98m6Lwl4IsvD/hm2Jkc/ZtJiBdj8x+TaACiiigAooooAK/2Hv+DZvSf7G/4Id/sIWe3Z53hv40atjGM/29+0r8Ztc3f8D/tHfnvuzzmv8eGv9kD/AINw7+HUv+CJ37A1xAqqkfw58c2DBOhm0r40fEvTLhj/ALb3FnKz/wC2WoA/biiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAr/JJ/4Ow/+U2X7Q//AGTv9nj/ANUr4Nr/AFtq/wAkn/g7D/5TZftD/wDZO/2eP/VK+DaAP5vaKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKK6vwJ4G8W/E3xn4X+HngLQdQ8UeNPGmu6b4a8L+HtLi86/1fWtXuo7OwsrdCVRTLPKoeaZ47e3iD3FzLFBFJIt06dSrUhSpQnUq1Zwp06dOMp1KlSpOMKdOEIKUpznOcIQhGMpSlKMYpuST58Xi8LgMJisfjsTh8FgcDhsRjcbjcXXpYXCYPB4OhWxWLxeKxOIqUaGHw2Fw2GxGIxGIr1aVGhQoVq1WpTp0pzj9Y/sAfsT+O/27/wBofw38HvC32vSfCtqY/EXxU8cx2/nWvgfwDZ3MMep6gDIpgm13VHkTR/C2myZ+361dwPcCLSrTVL2z/wBHr4T/AAs8CfBD4beC/hL8MtAtPDHgPwBoNl4c8NaJZj5LWwskOZriZv3t7qV/cvPqOr6ndNJe6rqt3eal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gAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAr+z7/ggp/wTT/4VH4Psf20vjV4f8r4n/ELRXX4K+HtVtsXPgT4d6zbFJvGk8E6brXxN8QbCXZpbIqz6X4Hn/17P4t1GysPyI/4Ip/8E13/AGxfjB/wuX4r6G837N3wa1q0m1S1voD9h+KPxAtlg1HSvAMXmL5V3oOmRyWmt+O8ear6bNpfh14h/wAJK95p/wDedHGkSJFEiRxxoscccahEjRAFRERQFVFUBVVQAoAAAAr+o/AXw29vUpcdZ3h/3FGclw3ha0NK1eDlTq5zOE1rTw8lOjlzaaniFXxkbxw+Hkf4Nfta/psf2Tg8d9FLwvzi2aZlh6E/GrPctxHv5dleIhRxeC8NsPiKFS8Mbm1KWFzPjSMKkZ4bKJZTw5VUKub5vRT6KKK/rU/55AooooAKKKr3d3a2Frc319c29lY2VvNd3l5dzR21raWttG01xc3NxMyQwW8EKPLNNK6RxRozuyqpIG0k22kkm220kkk2222kkkm220kk22km04xlOUYQjKc5yjCEIRlOc5zlGMIQhGMpSnKUoxjGMZSlKUYxjKUoxlYoqlpuo6frGn2Gr6TfWeqaVqlla6jpmp6fcw3un6jp99AlzZX1jeWzyW93Z3dtLHcW1zBJJDPDIksTsjqxu0k1JKUWnFpNNNNNNJppptNNNNNNpppptNNucJ0pzp1ITp1Kc506lOpCdOpTqU5zp1KdSnUjCpTqU6lOdOpTqQhOE4ThOEJwnCBRRRTJCiiigD8if+Cvv/BOiw/bq+A0ms+CNNtIv2i/hFZalrXwv1HENtN4u00p9q1z4X6pdvsRrXxCIRc+Gp7yRIdI8Vw2j/arDS9W8QPcf59Ooaff6Tf32larZXem6npl5c6fqWnX9vNZ31hf2Uz215ZXtpcJHPa3drcRyQXNvPGk0E0bxSIrqyj/AFjK/kJ/4L+/8E2P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/DSP/BUjUvgr4f1X7d4A/Y18AaL8IbSK3m87TpviZ4mSHx78VtVhBYmPULa61fw18PtYjCoEvPh1sCsVMsoB/LfRRRQAUUUUAFFFFABRRRQAUUUUAFf6lH/BsR/wW/h/bw+Ddn+xj+0n4qib9sH4C+E7ePwt4i1m7Vb/APaF+D2gQwWFp4kW4nYPqXxM8BWv2TS/H9u5k1LxFpA03x8kmp3U3jWXRP8ALXr0j4P/ABg+J3wA+J/gf4z/AAY8b6/8OPil8N/EFl4o8E+NvDF61jrWg61YMTFcW8oDxT288TzWWpabew3OmavplzeaVqtneabeXVrMAf72FFfzsf8ABCH/AIL2fCb/AIKr/DKw+GXxPvvDPwy/bk8CaKg8e/DJbqLTdK+K+nadbZuvil8HrW8nM9/pc8cL3fi7wbBJeav4DvTKZvtnhqfStbu/6J6ACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooA+HP8Agp3/AMo1v+Chf/Zjn7WX/qhPH9f4dVf7iv8AwU7/AOUa3/BQv/sxz9rL/wBUJ4/r/DqoAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKtWNje6ne2em6bZ3WoajqF1b2NhYWNvLd3t9e3cqQWtnaWsCST3N1czyRw29vCjyzSukcaM7AFpNtJJttpJJNtttJJJJtttpJJNttJJtpOZzhThKpUlGEIRlOc5yjCEIQjKc5znOUIQhCEJznOc4QhCE5znGMZSj7x+y5+zX8Sf2t/jj4G+BHwr0/7V4l8ZaksdzqVxHK2keFPDtpifxB4v8AEM0SsbbRPD+nCW8uiM3F5MLbStOjudV1CxtLj/SQ/ZX/AGZ/ht+yJ8DPA/wH+Flh9n8O+D9PAvtWniiTV/F3iW8CzeIfGHiGWIYuNZ1+/wB9zMNxgsLUWej6ctvpWm2FrB+fv/BHj/gnDZfsNfA4eLPH+l2r/tI/GDTtP1P4iXbrFcT+BtAOy90X4W6bdruVF0tjHqHjCa0bydV8UkwG41HTPD2gXK/sRX90+C/huuD8o/tnNaCjxJnVCEqkKkV7TKcuny1aOXxum6eJrfu8RmLVpKp7HBt8uFqxl/ykftNfpqz+kd4i/wDEM/D/ADWVTwU8M81xNHBYnB1pfVPEDjPDe3wGY8YVHCUYYrJMtti8o4MjNTpTwf8AafEkIqtnuAq0iiiiv24/y4CiiigAoorn/Fnirw54F8L+IvGvjDWbDw54U8JaJqniPxLr+qzrbabouhaLZTahqup31w3EVrY2VvNcTvgkRxtgE4Bmc4U4TqVJRhTpxlOc5yjCEIQjKc5znJxjGEIQlOUpSjGMYylKSjFtbYfD4jF4jD4TCUK2KxWKr0MLhcLhqVXEYnE4nE1qWHw2Gw9CjTq1q+IxGIxFChQoUaVWtWr16NGlTqVatOnP4g/4KSfty+F/2DP2bfEXxPumsNT+JPiH7R4T+DXg+7fcfEXjq8tZGhv721R0nfwz4Ttydf8AE0yvAkltb22ixXlvqmuaWJf84vxn4x8UfEPxb4m8eeNtbv8AxL4w8Y67qniXxP4g1SYz6hrOu61eTahqeo3cuAGnu7ueWZwipGm7ZEiRqqD7q/4KZft2eI/29f2ktd+Ihkv9P+FXhL7X4S+C3hO7Zo/7G8GW90XbW7+zVjFF4n8Z3Ua674gfMs1srab4f+13Vh4f0+QfnhX8BeLviBPjjiGVLBVZf6vZNOthsqgnJQxdTm5MVms4u15YuVNQwvNHmpYCnRSUZYmqj/rw/Z0/Q/w/0WvB2lj+J8BRXjH4lYfLs84/xMo06mI4fwSp/Wch4Aw1ePPy0eHqWLlis99jV9ljuLMZmM3KvRybATZRRRX5Mf6FBRRRQB3/AMK/if43+C3xH8FfFj4b65c+HPHXw/8AEWm+J/DOs2py1pqemTrNGk8J/dXlhdxiSy1PTrgPZ6nptzdafexTWlzNE/8ApM/sLftf+CP23/2cfBPxz8IfZrDUtQhOh/ELwlFP58/gf4iaTBbDxJ4bnLM0zWge4t9W0C6nCTaj4a1TR9RljgmupbeH/Mnr9af+CQP/AAUDuv2Gv2jrS28Y6ncL+z/8YZ9L8K/FmzZpJLXw5Os8kXhr4mW1um5hc+ELq8nXWRCkkt74T1DW4Y7a61KDSPs/7J4M+IL4N4gWAzGu48PZ7Uo4fHOcn7PAY26pYPNFd2hCDmsNjmkk8HUjWld4O6/zV/aX/Q/j9JXwglxdwblka/jJ4UYLMc34XjhqMXjeLuGeWWO4j4Ek4RVTE4nEQw0874Vpyc3T4jwVXL6KjHiNwn/oX0VXtLu1v7W2vrG5t72yvbeG7s7y0mjuLW7tbiNZre5triFnint54nSWGaJ3jljdXRmVgTYr+9E00mmmmk000000mmmm0000002mmmm003/yVSjKEpQnGUJwlKE4TjKM4TjKUZRlGUYyjKMoyjKMoxlGUZRlGMoyjEooooEFFFFAHmfxk+EPgD4+fC7xx8HPijoUHiPwF8QdBu/D3iLSpsLI1tchXt76wuCrvYaxpN9Fa6tomqQAXOl6vZWWo2rJcW0Tj/N4/bq/Y38f/sNftDeLPgl41WfUdKgc678OvGZtmtrLx58P9RuLhND8Q2y8xxXyeRPpPiHT43lXS/EWnanYxTXNrFbXlz/pp1+Z/wDwVJ/4J/eH/wBvn9nm/wDDOnw6fp3xt+Hyaj4m+Cniq68uBYtda3j/ALR8GavesA0XhjxxBaW2nag5fy9L1W30TxC0dyNGeyu/x7xh8Oo8bZH9dy6jH/WTJaVWrl7ioqeYYXWriMpqS05pVOWVbAOTtTxq9mnGnjJ2/wBIf2b/ANM2v9F/xTXDHGWY1l4J+JmPwOA4vp1Z1KmH4Pz5ungcm8QMJRXP7KlglWp5ZxZChT5sbwzU+uuFbF8N4b2n+cvRW54n8M+IPBfiPXvCHizR9Q8PeKPC2sal4e8RaDq1tJZ6po2t6PeTafqml6haTBZba8sb23mtrmFwGjljZT0rDr+CpRlCUoTjKE4SlCcJxlGcJwlKE4TjJRlGUJxlGUZRjKMoyjKKlFpf9bVCvQxVChisLWo4nDYmjRxOGxOHq06+HxGGxFGliMPiMPXo1KtGvQr0K9CvQrUatWlWo1qNWlUqUqtOpMoooqTUKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigD9ov8Ag3e/5TS/sAf9lc1r/wBVp46r/ZWr/Gp/4N3v+U0v7AH/AGVzWv8A1Wnjqv8AZWoAKKKKACiiigAooooA/wAXn/gvT/ymL/4KGf8AZxnin/0j0uvyNr9cv+C9P/KYv/goZ/2cZ4p/9I9Lr8jaACiiigAooooAKKKKACiiigAooooAK+6P+Cf/APwUY/ap/wCCaPxw0745/sueP5/DmpubOz8ceBdXFzqnw1+K3hm2naZ/CnxF8KJdWsGtaawluRp+pW09h4k8N3NzLqXhfW9F1Mi8HwvRQB/sB/8ABJz/AIOHP2Jf+CoVh4f+H/8AbcH7PX7WFxaQxap+z38R9Zs4m8U6qkKtdy/BfxpMthpXxMsGImlh0SODR/iBa21veXN94OTSrVdYuv31r/AQs7y7067tdQ0+6ubG/sbmC8sr2znltruzu7aVZra6tbmFkmt7m3mRJYJ4nSWKVFkjZXUEf1K/8E5P+DsX/goD+x6ugfD/APaReH9tz4I6aLWwEPxI1mbR/jr4d0uELEP7A+M0Nnqd54laBC9xJb/FDRfGuoX3lQafZ+JPD9qPNjAP9Vqivwu/Ym/4ONf+CUX7bsei6N4e/aJ0v4E/E/Vkt42+FH7S6Wnwk19dQuFVY9N0rxbql/dfC3xTe3FyXt7DT/DHjzVNZu2WPdpVu9xDE/7mQTwXUEN1azRXNtcxRz29xBIk0E8EyCSGaGaMtHLFLGyvHIjMjowZSVINAEtFFFABRRRQAUUUUAFFFFABRRRQAUVXu7y00+1ub+/urexsbOCW6vLy7nitrW0toEaWe4ubiZkhgghjVpJZpXWONFZ3YKCa/GH9sb/g4O/4JPfsUR6lp3j/APan8KfFDx7p6Sj/AIVb+zqYfjZ40ku4c+Zpd/eeFLuTwH4T1RMDNl488beFJPnTswoA/aav4qv+D24/8YS/sejv/wANT6qcfT4S+L8/lkfmK/Ln9un/AIPPP2oPiZ/bHhD9gv4K+GP2bPC03n2tp8V/iommfFb4x3EB3C31PSfC0kH/AAqrwVdlWCz6Zq+n/FiJWjWS31aMsVX+R/8AaH/ao/aR/a18cTfEf9pn44fE744+NJTOINb+JHi/WPEzaVb3Egkk07w9Y39zJpnhnR1ZV8jRPD1lpmkWyoiW1lEiKoAPAqKKKACiiigAooooAKKKKACtfw/r2s+Fde0TxR4c1K70bxD4b1fTde0HWLCVoL7StZ0e8h1DS9Ssp1+aG7sb63guraVfmjmiRxyKyKKAP9zb/gn5+1To37bv7FH7Mn7VuivaAfGv4ReFfFXiCzsSDa6L47itP7F+JHhqEqzAjwt8QdK8TeHGOeX0tiQp+UfYVfxLf8GWP7ZH/Ce/sv8A7RP7EfiTVfN179n/AMf2fxd+HFpdTZmf4ZfGBZrbxNpWlQbiP7P8K/Efw9e63qUhVCL/AOKVsN0ocCH+2mgAooooAKKKKACiiigDxD9pj48eEP2Xf2ePjf8AtHePpAng/wCB3ws8c/FLX4vPS3mv7LwV4d1DXv7IsncMG1PWprKLSNKgVJJbrUr21toIpZpo42/wufi58UPF/wAbvit8TPjP8QdRbV/Hnxa8f+MPiX401Rt+dQ8VeOfEOoeJvEF4A7yOq3Gq6ndSojOxRGVNxxmv9Mv/AIPGf2yP+FH/APBO7wR+y34f1X7J4y/bH+J9np2s2sM3l3LfB74MT6P478ZSo8befF9r8d3Hwo0eRDshv9J1DXLSV5IhNBL/AJeNABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFAHVeB/HPjT4ZeMPDXxC+HXivxF4F8d+DdZsPEXhLxj4S1i/8P+JvDWvaXOl1p2saHrelz2uoaZqNlcIktvd2lxFNE65VxzX+h5/wRs/4O2/hz8RNI8I/s7/8FR9TtPhv8T4PsmheH/2tLLTYbT4YeORtjtbJvjLo+kwqPhr4onl2Le+M9H09vhzfmWbUdctvh7aWUlxqH+czRQB/vw+H/EGg+LND0jxP4W1vSPEvhrxBptnrOgeIfD+pWWs6Hrekajbx3en6rpGradNc2Gpabf2ssVzZ31lcTWt1byRzQSvG6sdev8Xf/gnP/wAFvP8AgoV/wTGurHR/2f8A4vSeIfg5HqMmoap+zx8WLe58cfBzUGuZ/tGoNpOjS31jrngK91GbM99qnw48QeEr7UbkJJq0upRK0D/3d/sF/wDB3p/wT1/aN07RPDH7WFj4j/Ys+LFx5Fne3XiKDU/iF8D9Wv3CRLPpHxG8MaOda8OQ3UoluLiLx94P8P6PocLxW8ni7Vysl4QD+s2ivO/hb8XvhR8cfB2m/ET4L/EzwB8W/AOsLu0rxr8NPGHh/wAc+FNRwiOy2ev+GdQ1PS55EWSMyxx3TSRb1EiqTivRKACiiigAooooAKKKKACiiigAooooAKK+Hf2rP+Cln7BP7EWnXt9+1H+1Z8HPhPf2MZlbwdqXiq2134mXaKnmE6V8KvCa6/8AEjWQF27m0rwteJGZIhIyGWPd/J3+3D/wepfCTwxDqvhP/gn1+zlrvxQ15RPbWvxf/aKM3gvwBb3CbhFf6N8L/C2qy+OPFunTqUdD4g8VfC/UIHV1m0uZCpIB/WH/AMFO/wDlGt/wUL/7Mc/az/8AVCeP6/w6q/S79t7/AILAf8FFP+Chl3fwftNftMeOfEPga8uDNB8HfCNzH8Pfg1YxpJ5lnCfhz4PXStB12bTx+7s9a8XQ+I/EioWM+tTySSu/5o0AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFd98Lfif42+DHxB8K/FL4carbaF478EapHrfhbW7rQvD/iRNH1iCORLTVINJ8U6VrWiS39g0n2rTbq602ebTdQittSsHt9QtLW5h4GitKVWrQq0q9CpOjWo1IVaNWlJwqUqtKcalOpTnG0oVKc4RnCcWpRnGMotSimuTMMBgc1wGNyvNMHhcxyzMsHisvzHL8bQp4rBY/AY3D1sLjMFjMNVTpYnCYvC4ivhsTh6sZUq9CvWo1Yyp1akJ/qb/AMPrf+Cnv/R1Gs/+G2+C/wD87ej/AIfW/wDBT3/o6jWf/DbfBf8A+dvX5ZUV9J/rvxp/0V3E3/h9zT/5rPxP/iVr6Mv/AEjv4Hf+Kn4D/wDoeP1N/wCH1v8AwU9/6Oo1n/w23wX/APnb0f8AD63/AIKe/wDR1Gs/+G2+C/8A87evyyoo/wBd+NP+iu4m/wDD7mn/AM1h/wAStfRl/wCkd/A7/wAVPwH/APQ8fqb/AMPrf+Cnv/R1Gs/+G2+C/wD87ej/AIfW/wDBT3/o6jWf/DbfBf8A+dvX5ZUUf678af8ARXcTf+H3NP8A5rD/AIla+jL/ANI7+B3/AIqfgP8A+h4/U3/h9b/wU9/6Oo1n/wANt8F//nb15X8af+CoX7eX7Q3w5134S/F/9ofxB4s+Hnic2H/CQ+G4vC/w98NQ6xHpt/b6nZ219feEvCGharPZJf2ltcy2DX32O5kgiF1BMqKo+BqKyr8YcW4qjVw2J4o4ixGHr050a9CtnWZVaNalUi4VKVWnPFuFSnUi3GcJJxlFuMk02n35V9G/6POR5nl+dZL4EeDeUZxlONw2Y5XmuWeGPBOBzHLcwwdWNfB47AY3D5BDEYTGYWvCFfDYmhOnWoVoQq0qlOpCE4FFFFfOH7QFFFFABRRRQAUUUUAfov8ADf8A4K0/8FD/AISeA/Cnwz8A/tLeItG8E+B9Fs/DnhbR7rwh8M/EEmkaHpyeTp2lx6t4l8FaxrVxaafbBLOwivNRuRZWMNvY2xis7a3gj7b/AIfW/wDBT3/o6jWf/DbfBf8A+dvX5ZUV9LS4z4wo06dGjxVxHSo0acKVKlTzvM4U6dKnCNOnTpwji+WEKcIQhCMbRjCMYpJRSX4ljfo0fRyzLG4zMsx8AfBbH5hmGLxOPx+OxnhbwNiMXjcdjcRWxeMxmLxFXh51cRisVisTiMTia9RupWr161apKVSrUlP9Tf8Ah9b/AMFPf+jqNZ/8Nt8F/wD529H/AA+t/wCCnv8A0dRrP/htvgv/APO3r8sqKv8A1340/wCiu4m/8Puaf/NZy/8AErX0Zf8ApHfwO/8AFT8B/wD0PH6m/wDD63/gp7/0dRrP/htvgv8A/O3o/wCH1v8AwU9/6Oo1n/w23wX/APnb1+WVFH+u/Gn/AEV3E3/h9zT/AOaw/wCJWvoy/wDSO/gd/wCKn4D/APoeP1N/4fW/8FPf+jqNZ/8ADbfBf/529H/D63/gp7/0dRrP/htvgv8A/O3r8sqKP9d+NP8AoruJv/D7mn/zWH/ErX0Zf+kd/A7/AMVPwH/9Dx6p8afjX8S/2hviLrvxZ+L/AIgg8V/ELxOLH/hIPEkXh7wx4am1iXTrGDTbS6v7Hwlo2g6VPfLY2ttby37WP226SCI3U8zIrDyuiivnK9etiq1XE4mtVxGIr1J1q9etOVWtWq1JOdSrVqTbnUqVJNynOTcpSblJttt/tGVZVlmR5Zl+S5Ll2CyjJ8pweGy7K8qy3C0cFl2W5fg6UaGEwOAwWHjDD4TB4WhCFHDYahCFGhRhClSp06cIQgUUUVkd4UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFAHsPwA+Pvxd/Zc+MXgT4/fAbxjP8P/AIu/DPVZtc8D+MbXStB1yfQdUuNOvdJmu49K8UaVregXrPp2o3tt5Wp6VewATmRYhKkcifrz/wARMf8AwXE/6Pv8Sf8AhmP2a/8A5zNfhLRQB+7X/ETH/wAFxP8Ao+/xJ/4Zj9mv/wCczR/xEx/8FxP+j7/En/hmP2a//nM1+EtFAH7tf8RMf/BcT/o+/wASf+GY/Zr/APnM0f8AETH/AMFxP+j7/En/AIZj9mv/AOczX4S0UAfu1/xEx/8ABcT/AKPv8Sf+GY/Zr/8AnM0f8RMf/BcT/o+/xJ/4Zj9mv/5zNfhLRQB6t8cvjf8AFL9pP4uePvjt8bPFc/jn4sfFDxDc+KvHfi650zRNGn1/X7xIo7nUJdL8N6bo+hWLypDGDBpml2Vqu3KQKSSfKaKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAr7w/Zg/4Kgf8ABQr9jFNPs/2Zv2wPjn8LfD2luJLLwLYeNb/X/hjHIHMm9/hZ4v8A+Eg+HNw5Ytua58LzMyu6MSjurfB9FAH9fv7PX/B5x/wUg+G9nZ6T8efhN+zt+0lZW3lef4gl0HXfhD4/1DaAs32nU/A+pXHgGPzAAyfYvhhaeVKzk+ZGUhj/AGC+DX/B7r+yvrgtY/2gP2KPj58NJHCpdXHwk8d/D/40WsbnCmZY/FqfAy58jd87IommijyqC5dRv/zgKKAP9YnwL/wdz/8ABGXxb5P9v/Ej44/C/wA3bv8A+E6+Avi/UPs+cZ87/hWj/ETds/i+z+fnB27uM/Veh/8AByT/AMESPEMENxYft6+BbeOcBkXXPhv8dvDM6g9prbxJ8K9KubdvVZ4oyOuMV/jl0UAf7PWnf8F9/wDgjbqgBtv+ChP7P8QIz/xMdZ1zSDgDPI1bQrIg+xGSeAM1Wv8A/g4C/wCCNGm7vtH/AAUG+BEm3r9gvPFGq5/3f7L8N3m//gOc9q/xjqKAP9ifxL/wcsf8ERPCts9zf/t3eEr8LuCQeGvhT+0B4suZXAyESHw18J9UK7zhVkmMUAJy8qKGYfJHjz/g76/4I5+EI7l/D/ib9or4ptArtFF4D+Bl/p8l4VBKpbH4neIPhzErSYwhvJbVASPMeMZI/wAo+igD/RE+Mf8AwfAfCDTvtdv+z9+wV8SPF+/eljrHxj+MPhj4cfZ/+edxd+G/BXhT4p/bP9uzh8V2PXK33y4b8Yv2hv8Ag8E/4Ky/Fz7dY/CaT4C/sv6PN5kVnP8ADb4Yw+NvF0VrJkYv9f8AjNqPxD0S4vQjFBfaT4Q0DYAkkFvDcL5x/lYooA+uf2kP2+v22P2vrqef9pr9qj46fGq1mn+0J4e8cfEbxJqXgywlD+YDo3gRL6DwZoSCQCQQ6LoNhCJBvEe7mvkaiigAooooAKKKKACiiigAooooAKKKKACiiigD6r/Y/wD23f2p/wBgf4oal8Zv2Rfi7q/wZ+JOs+DtT8Aat4k0rRPCfiP+0vB2s6pomtajoV9o/jbw/wCJtAubWfVvDmh6ikk2lPc213pttNazwurFv0v/AOImP/guJ/0ff4k/8Mx+zX/85mvwlooA/dr/AIiY/wDguJ/0ff4k/wDDMfs1/wDzmaP+ImP/AILif9H3+JP/AAzH7Nf/AM5mvwlooA/dr/iJj/4Lif8AR9/iT/wzH7Nf/wA5mj/iJj/4Lif9H3+JP/DMfs1//OZr8JaKAP3a/wCImP8A4Lif9H3+JP8AwzH7Nf8A85mj/iJj/wCC4n/R9/iT/wAMx+zX/wDOZr8JaKAPsj9s3/goH+2F/wAFCPGHhHx7+2J8bNZ+NPinwF4an8IeEL/UvD3gnwrbaF4futUuNZu7O00fwD4Z8KaK095qNy815qVxp02qXccVna3F7JaafYQW3xvRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFAHtnwP8A2lP2h/2ZvEreMf2dfjn8W/gZ4pl8lbnXfhL8Q/Ffw/1G/it2Z47XU5/C+q6YdUscs6vYaiLqymjkkimgeOSRG/fz9mj/AIO0f+CvfwEWw03x54/+Fv7UvhuzWO3GnfHb4bafHrsdkoAZYfGvwqu/hr4lvdQ+88ep+KrvxTMJGBuI7qJVhH8y9FAH+gl8Gv8Ag+D0KX7JZftC/sA6tYbdn27xN8GvjfZ6v5mcCQ2ngbxv4F0TyNmCyLN8Q7jzNwRmj2mR/wBNfAP/AAeMf8EjPF0dsfE2n/tV/CyaVE+0r4z+DegatDayEDzB53w4+I3juSeJGzskS2EkiAMYI3JjX/K4ooA/2DPCP/Bzp/wRA8YW6yQftt6b4fudqmWw8XfBX9onw3cQFsYRrnUPhMmlTsM/MbLUbpV5LMAK9c03/g4M/wCCMeq7fsv/AAUE+CMW7GP7SHjTRuv97+1/Cdjt992Md8V/jL0UAf7QF7/wXw/4I4WCh5/+ChX7PMgKhsWXiDVdSbBGeU07Rrpw3qpXcDwRniuG1X/g4z/4IpaPHLLd/t9/DKZYVZnGleEfi9rshCjJEUOifDrUJp2P8KQRyO54VSeK/wAbiigD/Wv8b/8AB2R/wRS8J+cND+PnxL+JbRbgq+CP2fPi9Z+cV7Qv8RPDHgGM5PCtI8aHru2/NX5/fGL/AIPZf2IfDYuYPgZ+yd+0x8V7yAOsU/xA1P4b/BvQ72UZ2tb3uk698XdZS1f5f3t34btblfmzZfKN3+ajRQB/Zn+0B/weqft2+OYrvT/2d/2bf2efgDp90six6r4tuvF/xx8aafnPlSafqlxdfDjwb5qAjedT+H2qQyEfLDGCRX4P/tKf8Fu/+Crn7WcV/YfGX9uH43T+HdSEsV74N+HWuWfwW8FXlnJwNP1Pwp8HdP8AA2i65ZRptVY9etNUdyqzTyTXO6ZvysooAlnnmuZpbi5mluLieV5p555HlmmmlYvLLLLIWeSWR2Z3kdizsSzEkk1FRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF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FFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFAH//Z" webUI["html/img/xmltv.png"] = "iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAAAXNSR0IArs4c6QAAAAlwSFlzAAAsSwAALEsBpT2WqQAABCRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IlhNUCBDb3JlIDUuNC4wIj4KICAgPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIgogICAgICAgICAgICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgICAgICAgICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyI+CiAgICAgICAgIDx0aWZmOlJlc29sdXRpb25Vbml0PjI8L3RpZmY6UmVzb2x1dGlvblVuaXQ+CiAgICAgICAgIDx0aWZmOkNvbXByZXNzaW9uPjU8L3RpZmY6Q29tcHJlc3Npb24+CiAgICAgICAgIDx0aWZmOlhSZXNvbHV0aW9uPjI4ODwvdGlmZjpYUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6T3JpZW50YXRpb24+MTwvdGlmZjpPcmllbnRhdGlvbj4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+Mjg4PC90aWZmOllSZXNvbHV0aW9uPgogICAgICAgICA8ZXhpZjpQaXhlbFhEaW1lbnNpb24+NTA8L2V4aWY6UGl4ZWxYRGltZW5zaW9uPgogICAgICAgICA8ZXhpZjpDb2xvclNwYWNlPjE8L2V4aWY6Q29sb3JTcGFjZT4KICAgICAgICAgPGV4aWY6UGl4ZWxZRGltZW5zaW9uPjUwPC9leGlmOlBpeGVsWURpbWVuc2lvbj4KICAgICAgICAgPGRjOnN1YmplY3Q+CiAgICAgICAgICAgIDxyZGY6QmFnLz4KICAgICAgICAgPC9kYzpzdWJqZWN0PgogICAgICAgICA8eG1wOk1vZGlmeURhdGU+MjAxOC0wNy0yOFQyMDowNzozMzwveG1wOk1vZGlmeURhdGU+CiAgICAgICAgIDx4bXA6Q3JlYXRvclRvb2w+UGl4ZWxtYXRvciAzLjM8L3htcDpDcmVhdG9yVG9vbD4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgIDwvcmRmOlJERj4KPC94OnhtcG1ldGE+Co6j9bsAAAGgSURBVGgF7VqxTsNADL0gYGEon8DOwsbAAH8BYmJn6cYIn8DC3h0+oixISFRiYYCJL0AwMMBAeK5w2rpV6uikxHfYknW98+vds18TK21DWGBlWR7CH+BfcEv2AzLP8HP42gLqkyUATuEp2PWEdQjF9ATs1zF/g29Mrxt+vVcUxR3xWxEktzFPJQmivsv8ZSI9DiQyVnxlIonwn6fpiczXpNuVVXH8O+a3Ys3y9NUyuf/NTTbEHZTjUlGSRzSiPhroUIENwB4AS/vS/susDwDhTpYBER9g7wHh5DWyibV9CiitCZbIafDEYUuJHQI3Nr/9ciWsjK6IFSWYhyvClbAyZqOIlYJG84jq7E1Ot97Zm+TinV1TrWwudk9EI3ebGFekzWprzspGEU2ySWCiOrs/s9dr7M/s9fVJJJrNXcsTsfaJc0WsKZINH+/sf1Jqvl1n1f2ZnStRN/pdq646XcSkIh9dkIg4s+IrE3nCpp8RG7f91ns+cCYR/LD4jcAZB42PN+A7/mcQ8ZxJhBYQvMJwBB/BKTFLVoLMC/wCfgyv7BesTKUC2LKM3wAAAABJRU5ErkJggg==" - webUI["html/js/base.js"] = "dmFyIGNvbmZpZyAgICAgICAgPSBuZXcgT2JqZWN0KCk7DQp2YXIgbWVudSAgICAgICAgICA9IG5ldyBPYmplY3QoKTsNCnZhciBzdWJNZW51ICAgICAgID0gbmV3IE9iamVjdCgpOw0KdmFyIGFjdGl2ZVN0cmVhbXMgPSBuZXcgT2JqZWN0KCk7DQp2YXIgeEVQRyAgICAgICAgICA9IG5ldyBPYmplY3QoKTsNCnZhciB1c2VycyAgICAgICAgID0gbmV3IE9iamVjdCgpOw0KdmFyIGxvZyAgICAgICAgICAgPSBuZXcgT2JqZWN0KCk7DQp2YXIgdW5kbyAgICAgICAgICA9IG5ldyBPYmplY3QoKTsNCnZhciB3ZWJTb2NrZXRzICAgID0gdHJ1ZTsNCnZhciBjbG9zZUxvZywgdmVyc2lvbiwgYWN0aXZlTWVudTsNCnZhciBjb2x1bW5Ub1NvcnQgID0gMA0KDQoNCmlmICh3aW5kb3cuV2ViU29ja2V0ID09PSB1bmRlZmluZWQpIHsNCiAgYWxlcnQoIllvdXIgYnJvd3NlciBkb2VzIG5vdCBzdXBwb3J0IFdlYlNvY2tldHMiKTsNCiAgd2ViU29ja2V0cyA9IGZhbHNlOw0KfSANCg0KZnVuY3Rpb24gcGFnZVJlYWR5KCkgew0KICB2YXIgZGF0YSA9IG5ldyBPYmplY3QoKTsNCiAgZGF0YVsiY21kIl0gPSAiZ2V0U2VydmVyQ29uZmlnIjsNCiAgeFRlVmUoZGF0YSk7DQogIC8vc2hvd0xvYWRpbmdTY3JlZW4oZmFsc2UpOw0KDQogIHZhciByZXNpemVIYW5kbGUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgib3BlblN0cmVhbXMiKTsNCiAgdmFyIGJveCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJteVN0cmVhbXNCb3giKTsNCiAgcmVzaXplSGFuZGxlLmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlZG93biIsIGluaXRpYWxpc2VSZXNpemUsIGZhbHNlKTsNCg0KICBmdW5jdGlvbiBpbml0aWFsaXNlUmVzaXplKGUpIHsNCiAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigibW91c2Vtb3ZlIiwgc3RhcnRSZXNpemluZywgZmFsc2UpOw0KICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJtb3VzZXVwIiwgc3RvcFJlc2l6aW5nLCBmYWxzZSk7DQogIH0NCg0KICBmdW5jdGlvbiBzdGFydFJlc2l6aW5nKGUpIHsNCiAgICBib3guc3R5bGUuaGVpZ2h0ID0gKGUuY2xpZW50WSAtIGJveC5vZmZzZXRUb3ApICsgInB4IjsNCiAgICAgIA0KICAgIHZhciBlbG0gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYWxsU3RyZWFtcyIpOw0KICAgIGlmIChlLmNsaWVudFkgPiAxMjApIHsNCiAgICAgIGVsbS5jbGFzc05hbWUgPSAidmlzaWJsZSI7IA0KICAgIH0gZWxzZSB7DQogICAgICBlbG0uY2xhc3NOYW1lID0gIm5vdFZpc2libGUiOyANCiAgICB9DQoNCiAgICBjYWxjdWxhdGVXcmFwcGVySGVpZ2h0KCk7DQoNCiAgfQ0KICBmdW5jdGlvbiBzdG9wUmVzaXppbmcoZSkgew0KICAgICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ21vdXNlbW92ZScsIHN0YXJ0UmVzaXppbmcsIGZhbHNlKTsNCiAgICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCdtb3VzZXVwJywgc3RvcFJlc2l6aW5nLCBmYWxzZSk7DQogICAgICBjYWxjdWxhdGVXcmFwcGVySGVpZ2h0KCk7DQogIH0NCg0KICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigicmVzaXplIiwgZnVuY3Rpb24oKXsNCiAgICBjYWxjdWxhdGVXcmFwcGVySGVpZ2h0KCk7DQogIH0sIHRydWUpOw0KfQ0KDQoNCmZ1bmN0aW9uIGdldE9iaktleXMob2JqKSB7DQogIHZhciBrZXlzID0gbmV3IEFycmF5KCk7DQoNCiAgZm9yICh2YXIgaSBpbiBvYmopIHsNCiAgICBpZiAob2JqLmhhc093blByb3BlcnR5KGkpKSB7DQogICAgICBrZXlzLnB1c2goaSk7DQogICAgfQ0KICB9DQoNCiAgcmV0dXJuIGtleXM7DQp9DQoNCg0KZnVuY3Rpb24gY3JlYXRlRWxlbWVudChpdGVtKSB7DQogIC8vY29uc29sZS5sb2coaXRlbSk7DQogIHZhciBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChpdGVtWyJfZWxlbWVudCJdKTsNCiAgaWYgKGl0ZW0uaGFzT3duUHJvcGVydHkoIl90ZXh0IikpIHsNCiAgICAvL2VsZW1lbnQuaW5uZXJIVE1MID0gIjxwPiIgKyBpdGVtWyJfdGV4dCJdICsgIjwvcD4iOw0KICAgIGVsZW1lbnQuaW5uZXJIVE1MID0gaXRlbVsiX3RleHQiXTsNCiAgfQ0KDQogIHZhciBrZXlzID0gZ2V0T2JqS2V5cyhpdGVtKTsNCiAgZm9yICh2YXIgaSA9IDA7IGkgPCBrZXlzLmxlbmd0aDsgaSsrKSB7DQogICAgaWYgKGtleXNbaV0uY2hhckF0KDApICE9ICJfIikgew0KICAgICAgLy9jb25zb2xlLmxvZyhrZXlzW2ldLCBpdGVtW2tleXNbaV1dKTsNCiAgICAgIGVsZW1lbnQuc2V0QXR0cmlidXRlKGtleXNbaV0sIGl0ZW1ba2V5c1tpXV0pOw0KICAgIH0NCiAgfQ0KDQogIC8vY29uc29sZS5sb2coZWxlbWVudCk7DQogIHJldHVybiBlbGVtZW50Ow0KfQ0KDQpmdW5jdGlvbiBtb2RpZnlPcHRpb24oaWQsIG9wdGlvbnMsIHZhbHVlcykgew0KICB2YXIgc2VsZWN0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpOw0KICBzZWxlY3QuaW5uZXJIVE1MID0gIiI7DQoNCiAgZm9yICh2YXIgaSA9IDA7IGkgPCBvcHRpb25zLmxlbmd0aDsgaSsrKSB7DQogIA0KICAgIHZhciBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiT1BUSU9OIikNCiAgDQogICAgZWxlbWVudC52YWx1ZSA9IHZhbHVlc1tpXTsNCiAgICBlbGVtZW50LmlubmVySFRNTCA9IG9wdGlvbnNbaV07DQoNCiAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkuYXBwZW5kQ2hpbGQoZWxlbWVudCk7DQogIA0KICB9DQoNCn0NCg0KDQpmdW5jdGlvbiBzdGFydFdlYlNvY2tldCgpIHsNCiAgaWYgKHdlYlNvY2tldHMgPT0gZmFsc2UpIHsNCiAgICByZXR1cm47DQogIH0NCg0KICAvL3dzLnNlbmQoJ3siY21kIjogImdldFNlcnZlckNvbmZpZzEifScpOw0KDQp9DQoNCmZ1bmN0aW9uIGNoZWNrRXJyKG9iaikgew0KICAvL2FsZXJ0KG9ialsiZXJyIl0pDQogIC8vc2NyZWVuTG9nKG9ialsiZXJyIl0sICJlcnJvciIpDQogIGNvbnNvbGUubG9nKG9iaik7DQogIHZhciBuZXdPYmogPSBuZXcgT2JqZWN0KCk7DQogIHZhciBuZXdFcnIgPSBuZXcgT2JqZWN0KCk7DQogIG5ld0Vyclsia2V5Il0gICA9ICJFcnJvciI7DQogIG5ld0VyclsidmFsdWUiXSA9IG9ialsiZXJyIl07DQogIG5ld0VyclsidHlwZSJdICA9ICJlcnJvciI7DQoNCiAgbmV3T2JqWzBdID0gbmV3RXJyDQogIHNob3dMb2cobmV3T2JqKTsNCiAgcmV0dXJuDQp9DQoNCmZ1bmN0aW9uIHNjcmVlbkxvZyhtc2csIG1zZ1R5cGUsIHNob3cpIHsNCiAgcmV0dXJuDQogIGNsZWFyVGltZW91dChjbG9zZUxvZykNCiAgdmFyIGRpdiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzY3JlZW5Mb2ciKTsNCiAgdmFyIG5ld01zZyA9IG5ldyBPYmplY3QoKTsNCiAgDQogIG5ld01zZ1siX2VsZW1lbnQiXSA9ICJQIjsNCiAgDQogIHN3aXRjaChtc2dUeXBlKSB7DQogICAgY2FzZSAiZXJyb3IiOiAgIG5ld01zZ1siY2xhc3MiXSA9ICJlcnJvck1zZyI7IGJyZWFrOw0KICAgIGNhc2UgIndhcm5pbmciOiBuZXdNc2dbImNsYXNzIl0gPSAid2FybmluZ01zZyI7IGJyZWFrOw0KICAgIC8vZGVmYXVsdDogICAgICBuZXdNc2dbImNsYXNzIl0gPSAiaW5mb01zZyINCiAgfQ0KDQogIG5ld01zZ1siX3RleHQiXSA9IG1zZzsNCg0KICBkaXYuYXBwZW5kQ2hpbGQoY3JlYXRlRWxlbWVudChuZXdNc2cpKTsNCg0KICBkaXYuc2Nyb2xsVG9wID0gZGl2LnNjcm9sbEhlaWdodDsNCg0KICBpZiAoc2hvdyA9PSBmYWxzZSkgew0KICAgIHJldHVybjsNCiAgfQ0KDQogIGRpdi5jbGFzc05hbWUgPSAiIg0KICBjbG9zZUxvZyA9IHNldFRpbWVvdXQoY2xvc2VTY3JlZW5Mb2csIDEwMDAwKTsNCn0NCg0KDQpmdW5jdGlvbiBjbG9zZVNjcmVlbkxvZygpIHsNCiAgdmFyIGRpdiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzY3JlZW5Mb2ciKTsNCiAgZGl2LmNsYXNzTmFtZSA9ICJzY3JlZW5Mb2dIaWRkZW4iDQp9DQoNCmZ1bmN0aW9uIHNob3dTY3JlZW5Mb2coKSB7DQogIGNsZWFyVGltZW91dChjbG9zZUxvZykNCiAgdmFyIGRpdiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzY3JlZW5Mb2ciKTsNCiAgdmFyIGN1cnJlbnRDbGFzcyA9IGRpdi5jbGFzc05hbWU7DQogIGRpdi5jbGFzc05hbWUgPSAic2NyZWVuTG9nSGlkZGVuIg0KDQogIHN3aXRjaChjdXJyZW50Q2xhc3MpIHsNCiAgICBjYXNlICJzY3JlZW5Mb2dIaWRkZW4iOiAgZGl2LmNsYXNzTmFtZSA9ICIiOyBicmVhazsgDQogICAgY2FzZSAiIjogZGl2LmNsYXNzTmFtZSA9ICJzY3JlZW5Mb2dIaWRkZW4iOyBicmVhazsNCiAgfQ0KfQ0KDQpmdW5jdGlvbiBzaG93TG9hZGluZ1NjcmVlbihlbG0pIHsNCiAgdmFyIGRpdiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJsb2FkaW5nIik7DQogIHN3aXRjaChlbG0pIHsNCiAgICBjYXNlIHRydWU6IGRpdi5jbGFzc05hbWUgPSAiYmxvY2siOyBicmVhazsNCiAgICBjYXNlIGZhbHNlOiBkaXYuY2xhc3NOYW1lID0gIm5vbmUiOyBicmVhazsNCg0KICAgIC8qDQogICAgY2FzZSB0cnVlOiBkaXYuc3R5bGUuZGlzcGxheSA9ICJibG9jayI7IGJyZWFrOw0KICAgIGNhc2UgZmFsc2U6IGRpdi5zdHlsZS5kaXNwbGF5ID0gIm5vbmUiOyBicmVhazsNCiAgICAqLw0KICB9DQp9DQoNCmZ1bmN0aW9uIGNyZWF0ZUNsaW50SW5mbyhvYmopIHsNCiAgLy9jb25zb2xlLmxvZyhvYmopOw0KICB2YXIga2V5cyA9IGdldE9iaktleXMob2JqKTsNCiAgZm9yICh2YXIgaSA9IDA7IGkgPCBrZXlzLmxlbmd0aDsgaSsrKSB7DQogICAgaWYoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoa2V5c1tpXSkpew0KICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoa2V5c1tpXSkuaW5uZXJIVE1MID0gb2JqW2tleXNbaV1dOw0KICAgIH0NCiAgfQ0KICAvL2RvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjbGllbnRJbmZvIikuY2xhc3NOYW1lID0gInZpc2libGUiOw0KfQ0KDQpmdW5jdGlvbiBzaG93RWxlbWVudChlbG1JRCwgdHlwZSkgew0KICBzd2l0Y2godHlwZSkgew0KICAgIGNhc2UgdHJ1ZTogIGNzc0NsYXNzID0gImJsb2NrIjsgYnJlYWs7DQogICAgY2FzZSBmYWxzZTogY3NzQ2xhc3MgPSAibm9uZSI7IGJyZWFrOw0KICB9DQoNCiAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoZWxtSUQpLmNsYXNzTmFtZSA9IGNzc0NsYXNzOw0KfSANCg0KZnVuY3Rpb24gc2hvd1BvcFVwRWxlbWVudChlbG0pIHsNCiAgdmFyIGFsbEVsZW1lbnRzID0gbmV3IEFycmF5KCJkZWxldGVVc2VyRGV0YWlsIiwgIm1hcHBpbmctZGV0YWlsIiwgInVzZXItZGV0YWlsIiwgImZpbGUtZGV0YWlsIik7DQoNCiAgZm9yICh2YXIgaSA9IDA7IGkgPCBhbGxFbGVtZW50cy5sZW5ndGg7IGkrKykgew0KICAgIHNob3dFbGVtZW50KGFsbEVsZW1lbnRzW2ldLCBmYWxzZSkNCiAgfQ0KDQogIHNob3dFbGVtZW50KGVsbSwgdHJ1ZSkNCg0KICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7IA0KICAgIHNob3dFbGVtZW50KCJwb3B1cCIsIHRydWUpOw0KICB9LCAxMCk7DQp9DQoNCiAgLy8gYm9keS4uLg0KDQpmdW5jdGlvbiBzaG93U3RyZWFtcyhmb3JjZSkgew0KDQogIHZhciBlbG1Cb3ggPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibXlTdHJlYW1zQm94Iik7DQogIHZhciBlbG0gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYWxsU3RyZWFtcyIpOw0KICAvL2NvbnNvbGUubG9nKGVsbSk7DQogIHNob3cgPSBlbG0uY2xhc3NOYW1lOw0KDQogIHN3aXRjaChmb3JjZSkgew0KICAgIGNhc2UgdHJ1ZTogc2hvdyA9ICJub3RWaXNpYmxlIjsgYnJlYWs7DQogICAgY2FzZSBmYWxzZTogc2hvdyA9ICJ2aXNpYmxlIjsgYnJlYWs7DQogIH0NCg0KICBzd2l0Y2goc2hvdykgew0KICAgIGNhc2UgIm5vdFZpc2libGUiOiANCiAgICAgIGVsbS5jbGFzc05hbWUgPSAidmlzaWJsZSI7IA0KICAgICAgZWxtQm94LnN0eWxlLmhlaWdodCA9ICIxMDBweCI7DQogICAgICBicmVhazsNCg0KICAgIGRlZmF1bHQ6IA0KICAgICAgZWxtLmNsYXNzTmFtZSA9ICJub3RWaXNpYmxlIjsgDQogICAgICBlbG1Cb3guc3R5bGUuaGVpZ2h0ID0gIjIwcHgiOw0KICAgICAgYnJlYWs7DQogIH0NCg0KICB2YXIgc2hvdyA9IGVsbS5zdHlsZS5kaXNwbGF5OyB7DQogICAgLy9jb25zb2xlLmxvZyhlbG0uc3R5bGUuZGlzcGxheSk7DQogIH0NCiAgDQogIGNhbGN1bGF0ZVdyYXBwZXJIZWlnaHQoKTsNCn0NCg0KZnVuY3Rpb24geHRldmVCYWNrdXAoKSB7DQogIGNvbnNvbGUubG9nKCJ4dGV2ZUJhY2t1cCIpOw0KICB2YXIgZGF0YSA9IG5ldyBPYmplY3QoKTsNCiAgZGF0YVsiY21kIl0gPSAieHRldmVCYWNrdXAiOw0KDQogIHhUZVZlKGRhdGEpOw0KfQ0KDQpmdW5jdGlvbiB4dGV2ZVJlc3RvcmUoZWxtKSB7DQogIHZhciByZXN0b3JlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiSU5QVVQiKTsNCiAgcmVzdG9yZS5zZXRBdHRyaWJ1dGUoInR5cGUiLCAiZmlsZSIpOw0KICByZXN0b3JlLnNldEF0dHJpYnV0ZSgiY2xhc3MiLCAibm90VmlzaWJsZSIpOw0KICByZXN0b3JlLnNldEF0dHJpYnV0ZSgibmFtZSIsICIiKTsNCiAgcmVzdG9yZS5pZCA9ICJ1cGxvYWQiOw0KDQogIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQocmVzdG9yZSk7DQogIHJlc3RvcmUuY2xpY2soKTsNCg0KICByZXN0b3JlLm9uY2hhbmdlID0gZnVuY3Rpb24oKSB7DQogICAgdmFyIGZpbGVuYW1lID0gcmVzdG9yZS5maWxlc1swXS5uYW1lDQogICAgLy9jb25zb2xlLmxvZyhyZXN0b3JlLnNyY0VsZW1lbnQuZmlsZXNbMF0pOw0KICAgIHZhciBjaGVjayA9IGNvbmZpcm0oIkZpbGU6ICIgKyBmaWxlbmFtZSArICJcbkFsbCBkYXRhIHdpbGwgYmUgcmVwbGFjZWQgd2l0aCB0aG9zZSBmcm9tIHRoZSBiYWNrdXAuXG5TaG91bGQgdGhlIGZpbGVzIGJlIHJlc3RvcmVkPyIpOyANCiAgICBpZiAoY2hlY2sgPT0gdHJ1ZSkgew0KICAgICAgdmFyIHJlYWRlciAgPSBuZXcgRmlsZVJlYWRlcigpOw0KICAgICAgdmFyIGZpbGUgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCdpbnB1dFt0eXBlPWZpbGVdJykuZmlsZXNbMF07DQogICAgICBpZiAoZmlsZSkgew0KICAgICAgICByZWFkZXIucmVhZEFzRGF0YVVSTChmaWxlKTsNCiAgICAgICAgcmVhZGVyLm9ubG9hZCA9IGZ1bmN0aW9uKCkgew0KICAgICAgICAgIGNvbnNvbGUubG9nKHJlYWRlci5yZXN1bHQpOw0KICAgICAgICAgIHZhciBkYXRhID0gbmV3IE9iamVjdCgpOw0KICAgICAgICAgIGRhdGFbImNtZCJdICAgICA9ICJ4dGV2ZVJlc3RvcmUiDQogICAgICAgICAgZGF0YVsiYmFzZTY0Il0gID0gcmVhZGVyLnJlc3VsdA0KDQogICAgICAgICAgeFRlVmUoZGF0YSk7DQogICAgICAgICAgcmV0dXJuDQogICAgICAgIH07DQogICAgICB9IGVsc2Ugew0KICAgICAgICBhbGVydCgiRmlsZSBjb3VsZCBub3QgYmUgbG9hZGVkIikNCiAgICAgIH0NCiAgICB9DQogIH07DQp9DQoNCmZ1bmN0aW9uIGdldEJhc2U2NChmaWxlKSB7DQogICB2YXIgcmVhZGVyID0gbmV3IEZpbGVSZWFkZXIoKTsNCiAgIHJlYWRlci5yZWFkQXNEYXRhVVJMKGZpbGUpOw0KICAgcmVhZGVyLm9ubG9hZCA9IGZ1bmN0aW9uKCkgew0KICAgICBjb25zb2xlLmxvZyhyZWFkZXIucmVzdWx0KTsNCiAgIH07DQogICByZWFkZXIub25lcnJvciA9IGZ1bmN0aW9uKGVycm9yKSB7DQogICAgIGNvbnNvbGUubG9nKCdFcnJvcjogJywgZXJyb3IpOw0KICAgfTsNCn0NCg0KZnVuY3Rpb24gbG9nb3V0KCkgew0KICBkb2N1bWVudC5jb29raWUuc3BsaXQoJzsnKS5mb3JFYWNoKGZ1bmN0aW9uKGMpIHsNCiAgICBkb2N1bWVudC5jb29raWUgPSBjLnRyaW0oKS5zcGxpdCgnPScpWzBdICsgJz07JyArICdleHBpcmVzPVRodSwgMDEgSmFuIDE5NzAgMDA6MDA6MDAgVVRDOyc7DQogIH0pOw0KICBsb2NhdGlvbi5yZWxvYWQoKTsNCn0NCg0KZnVuY3Rpb24gZ2V0Q29va2llKG5hbWUpIHsNCiAgdmFyIHZhbHVlID0gIjsgIiArIGRvY3VtZW50LmNvb2tpZTsNCiAgdmFyIHBhcnRzID0gdmFsdWUuc3BsaXQoIjsgIiArIG5hbWUgKyAiPSIpOw0KICBpZiAocGFydHMubGVuZ3RoID09IDIpIHJldHVybiBwYXJ0cy5wb3AoKS5zcGxpdCgiOyIpLnNoaWZ0KCk7DQp9DQoNCmZ1bmN0aW9uIHNldENvb2tpZSh0b2tlbikgew0KICAvL2NvbnNvbGUubG9nKHRva2VuKTsNCiAgZG9jdW1lbnQuY29va2llID0gIlRva2VuPSIgKyB0b2tlbg0KfQ0KDQo=" - webUI["html/js/log.js"] = "dmFyIGxvZ0ludGVydmFsDQoNCg0KZnVuY3Rpb24gdXBkYXRlTG9nKCkgew0KICB2YXIgZGF0YSA9IG5ldyBPYmplY3QoKTsNCiAgZGF0YVsiY21kIl0gPSAiZ2V0TG9nIjsNCiAgeFRlVmUoZGF0YSk7DQogIHdyaXRlTG9nSW5EaXYoKTsNCiAgcmV0dXJuDQp9DQoNCmZ1bmN0aW9uIHdyaXRlTG9nSW5EaXYoKSB7DQogIHZhciBsb2dzID0gbG9nWyJsb2ciXTsNCiAgdmFyIGRpdiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzZXR0aW5ncyIpLmxhc3RDaGlsZC5sYXN0Q2hpbGQ7DQogIGRpdi5pbm5lckhUTUwgPSAiIjsNCg0KICB2YXIgbWF4ID0gNTA7DQogIA0KICANCiAgZm9yICh2YXIgaSA9IDA7IGkgPCBsb2dzLmxlbmd0aDsgaSsrKSB7DQogICAgdmFyIG5ld0VudHJ5ID0gbmV3IE9iamVjdCgpOw0KICAgIG5ld0VudHJ5WyJfZWxlbWVudCJdICA9ICJQIjsNCg0KICAgIGlmIChsb2dzW2ldLmluY2x1ZGVzKCJFUlJPUiIpKSB7DQovLyAgICAgIGNhc2UgIndhcm5pbmdzIjogIG1zZ1R5cGUgPSAid2FybmluZ01zZyI7IGJyZWFrOw0KICAgICAgbmV3RW50cnlbImNsYXNzIl0gICA9ICJlcnJvck1zZyI7DQogICAgfQ0KDQogICAgaWYgKGxvZ3NbaV0uaW5jbHVkZXMoIldBUk5JTkciKSkgew0KLy8gICAgICBjYXNlICJ3YXJuaW5ncyI6ICBtc2dUeXBlID0gIndhcm5pbmdNc2ciOyBicmVhazsNCiAgICAgIG5ld0VudHJ5WyJjbGFzcyJdICAgPSAid2FybmluZ01zZyI7DQogICAgfQ0KDQogICAgbmV3RW50cnlbIl90ZXh0Il0gICAgID0gbG9nc1tpXTsNCiAgICANCiAgICBkaXYuYXBwZW5kQ2hpbGQoY3JlYXRlRWxlbWVudChuZXdFbnRyeSkpOw0KICB9DQoNCiAgY2FsY3VsYXRlV3JhcHBlckhlaWdodCgpOw0KICB2YXIgc2Nyb2xsRGl2ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImJveC13cmFwcGVyIik7DQogIHNjcm9sbERpdi5zY3JvbGxUb3AgPSBzY3JvbGxEaXYuc2Nyb2xsSGVpZ2h0Ow0KfQ0KDQpmdW5jdGlvbiBzaG93TG9nKG9iaikgew0KICAvL2xvZ0ludGVydmFsID0gc2V0SW50ZXJ2YWwodXBkYXRlTG9nLCA1MDAwKTsNCg0KICB2YXIgbG9ncyA9IGxvZ1sibG9nIl07DQoNCiAgdmFyIGRpdiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzZXR0aW5ncyIpOw0KDQogIHZhciBuZXdFbnRyeSA9IG5ldyBPYmplY3QoKTsNCiAgbmV3RW50cnlbIl9lbGVtZW50Il0gID0gIkhSIjsNCiAgZGl2LmFwcGVuZENoaWxkKGNyZWF0ZUVsZW1lbnQobmV3RW50cnkpKTsNCiAgLy9kaXYgPSBkaXYubGFzdENoaWxkOw0KDQogIHZhciBuZXdFbnRyeSA9IG5ldyBPYmplY3QoKTsNCiAgbmV3RW50cnlbIl9lbGVtZW50Il0gICAgPSAiSU5QVVQiOw0KICBuZXdFbnRyeVsidHlwZSJdICAgICAgICA9ICJidXR0b24iOw0KICBuZXdFbnRyeVsiY2xhc3MiXSAgICAgICA9ICJidXR0b24iOw0KICBuZXdFbnRyeVsidmFsdWUiXSAgICAgICA9ICJFbXB0eSBMb2ciOw0KICBuZXdFbnRyeVsib25jbGljayJdICAgICA9ICJlbXB0eUxvZygpIjsNCiAgZGl2LmFwcGVuZENoaWxkKGNyZWF0ZUVsZW1lbnQobmV3RW50cnkpKTsNCg0KICB2YXIgbmV3RW50cnkgPSBuZXcgT2JqZWN0KCk7DQogIG5ld0VudHJ5WyJfZWxlbWVudCJdICAgID0gImNvZGUiOw0KICBuZXdFbnRyeVsiX3RleHQiXSAgICAgICAgPSAiVXBkYXRlIExvZzogIjsNCiAgZGl2LmFwcGVuZENoaWxkKGNyZWF0ZUVsZW1lbnQobmV3RW50cnkpKTsNCg0KICB2YXIgbmV3RW50cnkgPSBuZXcgT2JqZWN0KCk7DQogIG5ld0VudHJ5WyJfZWxlbWVudCJdICAgID0gIklOUFVUIjsNCiAgbmV3RW50cnlbInR5cGUiXSAgICAgICAgPSAiY2hlY2tib3giOw0KICAvL25ld0VudHJ5WyJjaGVja2VkIl0gICAgID0gImNoZWNrYm94IjsNCiAgbmV3RW50cnlbIm9uY2xpY2siXSAgICAgPSAibG9nVXBkYXRlcyh0aGlzKSI7DQogIGRpdi5hcHBlbmRDaGlsZChjcmVhdGVFbGVtZW50KG5ld0VudHJ5KSk7DQoNCiAgdmFyIG5ld0VudHJ5ID0gbmV3IE9iamVjdCgpOw0KICBuZXdFbnRyeVsiX2VsZW1lbnQiXSAgPSAiSFIiOw0KICBkaXYuYXBwZW5kQ2hpbGQoY3JlYXRlRWxlbWVudChuZXdFbnRyeSkpOw0KDQogIA0KDQoNCiAgDQogIHZhciBuZXdXcmFwcGVyID0gbmV3IE9iamVjdCgpOw0KICBuZXdXcmFwcGVyWyJfZWxlbWVudCJdICA9ICJESVYiOw0KICBuZXdXcmFwcGVyWyJpZCJdICAgICAgICA9ICJib3gtd3JhcHBlciI7DQogIGRpdi5hcHBlbmRDaGlsZChjcmVhdGVFbGVtZW50KG5ld1dyYXBwZXIpKTsNCiAgZGl2ID0gZGl2Lmxhc3RDaGlsZDsNCg0KICB2YXIgbmV3UHJlID0gbmV3IE9iamVjdCgpOw0KICBuZXdQcmVbIl9lbGVtZW50Il0gID0gIlBSRSI7DQogIG5ld1ByZVsiaWQiXSAgICAgICAgPSAibG9nU2NyZWVuIjsNCiAgZGl2LmFwcGVuZENoaWxkKGNyZWF0ZUVsZW1lbnQobmV3UHJlKSk7DQoNCiAgZGl2ID0gZGl2Lmxhc3RDaGlsZDsNCg0KICB3cml0ZUxvZ0luRGl2KCkNCiAgcmV0dXJuDQp9DQoNCmZ1bmN0aW9uIGVtcHR5TG9nKCkgew0KICB2YXIgZGF0YSA9IG5ldyBPYmplY3QoKTsNCiAgZGF0YVsiY21kIl0gPSAiZW1wdHlMb2ciOw0KICB4VGVWZShkYXRhKTsNCiAgcmV0dXJuDQp9DQoNCmZ1bmN0aW9uIGxvZ1VwZGF0ZXMoZWxtKSB7DQogIHN3aXRjaChlbG0uY2hlY2tlZCkgew0KICAgIGNhc2UgZmFsc2U6IGNsZWFySW50ZXJ2YWwobG9nSW50ZXJ2YWwpOyBicmVhazsNCiAgICBjYXNlIHRydWU6IGxvZ0ludGVydmFsID0gc2V0SW50ZXJ2YWwodXBkYXRlTG9nLCA1MDAwKTsgYnJlYWs7DQogICAgDQogIH0NCn0=" - webUI["html/css/base.css"] = "KiB7DQogIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTsNCiAgLW1vei1hcHBlYXJhbmNlOiBub25lOw0KICAtbXMtYXBwZWFyYW5jZTogbm9uZTsNCiAgZm9udC1mYW1pbHk6ICJBcmlhbCIsIHNhbnMtc2VyaWY7DQogIGxldHRlci1zcGFjaW5nOiAycHg7IA0KfQ0KDQovKg0KOjotd2Via2l0LXNjcm9sbGJhciB7IA0KICAgIGRpc3BsYXk6IG5vbmU7IA0KfQ0KKi8NCg0KOjotd2Via2l0LXNjcm9sbGJhciB7DQogIHdpZHRoOiAxMnB4Ow0KICBoZWlnaHQ6IDEycHg7DQp9DQoNCiANCjo6LXdlYmtpdC1zY3JvbGxiYXItdHJhY2sgew0KICAtd2Via2l0LWJveC1zaGFkb3c6IGluc2V0IDAgMCA2cHggcmdiYSgwLDAsMCwwLjMpOyANCiAgYm9yZGVyLXJhZGl1czogNXB4Ow0KICAgIA0KfQ0KIA0KOjotd2Via2l0LXNjcm9sbGJhci10aHVtYiB7DQogIGJvcmRlci1yYWRpdXM6IDVweDsNCiAgLXdlYmtpdC1ib3gtc2hhZG93OiBpbnNldCAwIDAgNnB4IHJnYmEoMCwgMCwgMCwwLjYpOyANCiAgYmFja2dyb3VuZC1jb2xvcjogIzQ0NDsNCn0NCg0KOjotd2Via2l0LXNjcm9sbGJhci10aHVtYjpob3ZlciB7DQogIGJhY2tncm91bmQ6ICMzMzM7IA0KfQ0KDQo6Oi13ZWJraXQtc2Nyb2xsYmFyLWNvcm5lciB7IA0KICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsgDQp9DQoNCmEgew0KICBjb2xvcjogIzAwRTZGRjsNCn0NCg0KaHRtbCwgYm9keSB7DQogIGNvbG9yOiAjZmZmOw0KICBtYXJnaW46IDBweCBhdXRvOw0KICBoZWlnaHQ6IDEwMCU7DQogIGZvbnQtc2l6ZTogMTRweDsNCn0NCg0KaDIgew0KICBmb250LXNpemU6IDI0cHg7DQogIGxldHRlci1zcGFjaW5nOiAycHg7DQp9DQoNCmgzIHsNCiAgZm9udC1zaXplOiAyMnB4Ow0KICBsZXR0ZXItc3BhY2luZzogMXB4Ow0KfQ0KDQpoNCB7DQogIGZvbnQtc2l6ZTogMjBweDsNCiAgbGV0dGVyLXNwYWNpbmc6IDFweDsNCiAgbGluZS1oZWlnaHQ6IDEuNWVtOw0KDQp9DQoNCmg1IHsNCiAgZm9udC1zaXplOiAxNnB4Ow0KICBsZXR0ZXItc3BhY2luZzogMXB4Ow0KICBsaW5lLWhlaWdodDogMS4yZW07DQogIG1hcmdpbjogMjVweCAwcHggMTBweCAwcHg7DQp9DQoNCmhyIHsNCiAgYm9yZGVyOiAwOw0KICBoZWlnaHQ6IDFweDsNCiAgYmFja2dyb3VuZDogIzMzMzsNCiAgbWFyZ2luOiAxMHB4IDBweDsNCn0NCg0KcCB7DQogIG1hcmdpbjogMnB4Ow0KICBwYWRkaW5nOiAycHggNXB4Ow0KfQ0KDQpwcmUgew0KICBtYXJnaW46IDBweCAwcHggNXB4IDBweDsNCiAgZm9udC1zaXplOiAxMnB4Ow0KICBjb2xvcjogI2RkZDsNCiAgbGV0dGVyLXNwYWNpbmc6IDFweDsNCiAgd2hpdGUtc3BhY2U6IHByZS13cmFwOw0KICBmb250LWZhbWlseTogbW9ub3NwYWNlOyANCiAgZm9udC1zaXplOiAxMnB4OyANCiAgZm9udC1zdHlsZTogbm9ybWFsOyANCiAgZm9udC12YXJpYW50OiBub3JtYWw7IA0KICBsaW5lLWhlaWdodDogMS42ZW07IA0KfQ0KDQpsYWJlbCB7DQogIG1hcmdpbi1ib3R0b206IDIwcHg7DQogIGRpc3BsYXk6IGJsb2NrOw0KfQ0KDQpsaSB7DQogIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTsNCiAgYmFja2dyb3VuZC1jb2xvcjogIzExMTsNCiAgcGFkZGluZzogMTBweCAyMHB4Ow0KICBjdXJzb3I6IHBvaW50ZXI7DQogIGJvcmRlci1sZWZ0OiBzb2xpZCAycHggIzExMTsNCiAgdHJhbnNpdGlvbjogYWxsIDAuMzsNCn0NCg0KbGk6aG92ZXIgew0KICBib3JkZXItY29sb3I6ICMwMEU2RkYNCn0NCg0Kc2VsZWN0IHsNCiAgY3Vyc29yOiBwb2ludGVyOw0KICB3aWR0aDogY2FsYygxMDAlICsgMnB4KTsNCiAgYm9yZGVyOiBzb2xpZCAwcHggIzAwRTZGRjsNCiAgYm9yZGVyLXJhZGl1czogMHB4Ow0KICBvdXRsaW5lOiBub25lOw0KICBjb2xvcjogI2ZmZjsNCiAgcGFkZGluZzogOXB4IDEwcHg7DQogIGRpc3BsYXk6YmxvY2s7DQogIGJhY2tncm91bmQtY29sb3I6ICMzMzM7DQogIGZvbnQtc2l6ZTogMTRweDsNCiAgbWFyZ2luOiA1cHggMHB4IDVweCAwcHg7DQp9DQoNCnNlbGVjdDpmb2N1cyB7DQogIG91dGxpbmU6IG5vbmU7DQp9DQoNCmlucHV0IHsNCiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lOw0KICBtYXJnaW46IDVweCAwcHg7DQogIHBhZGRpbmc6IDIuNXB4IDEwcHg7DQogIG91dGxpbmU6IG5vbmU7DQogIGZvbnQtc2l6ZTogMTRweDsNCn0NCg0KaW5wdXRbdHlwZT1idXR0b25dLCBpbnB1dFt0eXBlPXN1Ym1pdF0gew0KICBjdXJzb3I6IHBvaW50ZXI7DQogIGJhY2tncm91bmQtY29sb3I6ICMwMDA7DQogIG1hcmdpbjogMTBweCAxMHB4Ow0KICBwYWRkaW5nOiAxMHB4IDI1cHg7DQogIGJvcmRlcjogc29saWQgMHB4Ow0KICBib3JkZXItY29sb3I6ICMwMDA7DQogIGJvcmRlci1yYWRpdXM6IDNweDsNCiAgb3V0bGluZTogbm9uZTsNCiAgY29sb3I6ICNmZmY7DQp9DQoNCmlucHV0W3R5cGU9YnV0dG9uXTpmb2N1cyB7IA0KICAgb3V0bGluZTogbm9uZTsNCn0NCg0KaW5wdXRbdHlwZT1idXR0b25dOmhvdmVyIHsNCiAgYmFja2dyb3VuZC1jb2xvcjogIzAwRTZGRjsNCiAgY29sb3I6ICMwMDA7DQp9DQoNCmlucHV0W3R5cGU9YnV0dG9uXTpob3Zlci5kZWxldGUgIHsNCiAgYmFja2dyb3VuZC1jb2xvcjogcmVkOw0KICBjb2xvcjogI2ZmZjsNCn0NCg0KaW5wdXRbdHlwZT10ZXh0XSwgaW5wdXRbdHlwZT1zZWFyY2hdLCBpbnB1dFt0eXBlPXBhc3N3b3JkXSB7DQogIGNvbG9yOiAjZmZmOw0KICB3aWR0aDogLXdlYmtpdC1jYWxjKDEwMCUgLSAwcHgpOw0KICB3aWR0aDogLW1vei1jYWxjKDEwMCUgLSAwcHgpOw0KICB3aWR0aDogY2FsYygxMDAlIC0gMHB4KTsNCiAgb3V0bGluZTogbm9uZTsNCiAgYm9yZGVyOiBzb2xpZCAxcHggdHJhbnNwYXJlbnQ7DQogIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50Ow0KICBib3JkZXItYm90dG9tLWNvbG9yOiAjNTU1Ow0KICBib3JkZXItcmFkaXVzOiAwcHg7DQogIHBhZGRpbmc6IDhweCAxMHB4Ow0KfQ0KDQppbnB1dFt0eXBlPSJjaGVja2JveCJdIHsNCiAgYm9yZGVyOiBzb2xpZCAxcHggIzAwRTZGRjsNCiAgYmFja2dyb3VuZC1jb2xvcjogIzMzMzsNCiAgaGVpZ2h0OiAyNXB4Ow0KICB3aWR0aDogMjVweDsNCiAgY3Vyc29yOiBwb2ludGVyOw0KICAvKg0KICAtd2Via2l0LWFwcGVhcmFuY2U6IGNoZWNrYm94Ow0KICAqLw0KfQ0KDQppbnB1dFt0eXBlPSJjaGVja2JveCJdOmNoZWNrZWQgew0KICBjb2xvcjogI2ZmZjsNCiAgYmFja2dyb3VuZC1jb2xvcjogIzAwRTZGRjsNCiAgLypkaXNwbGF5OiBpbmxpbmUtYmxvY2s7Ki8NCn0NCg0KaW5wdXRbdHlwZT0iY2hlY2tib3giXTpiZWZvcmUgew0KICBwb3NpdGlvbjogaW5pdGlhbDsNCiAgbGVmdDogMHB4Ow0KICBtYXJnaW4tbGVmdDogLTRweDsNCiAgY29udGVudDogIiAiOw0KfQ0KDQppbnB1dFt0eXBlPSJjaGVja2JveCJdOmNoZWNrZWQ6YmVmb3JlIHsNCiAgcG9zaXRpb246IGluaXRpYWw7DQogIGxlZnQ6IDBweDsNCiAgbWFyZ2luLWxlZnQ6IC0zcHg7DQogIGNvbnRlbnQ6ICLinJMiOw0KICBjb2xvcjogIzAwMDsNCn0NCg0KDQppbnB1dFt0eXBlPWJ1dHRvbl0uY2FuY2VsIHsNCiAgDQogIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50Ow0KICBib3JkZXItY29sb3I6IHJlZDsNCn0NCg0KaW5wdXRbdHlwZT1idXR0b25dLnNhdmV7DQogIGJhY2tncm91bmQtY29sb3I6ICMxMTE7DQogIGZsb2F0OiByaWdodDsNCn0NCg0KDQppbnB1dFt0eXBlPWJ1dHRvbl0uYmxhY2ssIGlucHV0W3R5cGU9c3VibWl0XS5ibGFja3sNCiAgYmFja2dyb3VuZC1jb2xvcjogIzAwMDsNCiAgYm9yZGVyLWNvbG9yOiAjMDAwOw0KfQ0KDQppbnB1dFt0eXBlPWJ1dHRvbl0uY2VudGVyew0KICBtYXJnaW4tcmlnaHQ6IGF1dG87DQogIG1hcmdpbi1sZWZ0OiBhdXRvOw0KICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDAwOw0KICBib3JkZXItY29sb3I6ICMwMDA7DQp9DQoNCi5wb2ludGVyIHsNCiAgY3Vyc29yOiBwb2ludGVyOw0KfQ0KDQoucG9pbnRlcjpob3ZlciB7DQogIGNvbG9yOiAjMDBFNkZGOw0KICBjdXJzb3I6IHBvaW50ZXI7DQp9DQoNCi5zb3J0VGhpcyB7DQogIGNvbG9yOiAjMDBFNkZGOw0KfQ0KDQoudzQwcHggew0KICBtYXgtd2lkdGg6IDQwcHg7DQp9DQoNCi53NTBweCB7DQogIG1heC13aWR0aDogNTBweDsNCn0NCg0KLnc4MHB4IHsNCiAgbWF4LXdpZHRoOiA4MHB4Ow0KfQ0KDQoudzE1MHB4IHsNCiAgbWF4LXdpZHRoOiAxNTBweDsNCn0NCg0KLncyMDBweCB7DQogIG1heC13aWR0aDogMjAwcHg7DQogIG1pbi13aWR0aDogMTAwcHg7DQogIHdpZHRoOiAyMDBweDsNCiAgb3ZlcmZsb3cteDogaGlkZGVuOw0KICB3aGl0ZS1zcGFjZTogbm93cmFwOw0KICBvdmVyZmxvdzogaGlkZGVuOw0KICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsNCn0NCg0KLnczMDBweCB7DQogIG1heC13aWR0aDogMzAwcHg7DQp9DQoNCi53MjIwcHggew0KICBtYXgtd2lkdGg6IDIyMHB4Ow0KICBjdXJzb3I6IGFsaWFzOw0KfQ0KDQouZm9vdGVyIHsNCiAgZm9udC1zaXplOiAxMHB4Ow0KfQ0KDQouY2VudGVyIHsNCiAgdGV4dC1hbGlnbjogY2VudGVyOw0KfQ0KDQouc2NyZWVuTG9nSGlkZGVuIHsNCiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMHB4LCAtMTEwcHgpOw0KfQ0KDQouYm9yZGVyU3BhY2Ugew0KICBtYXJnaW4tYm90dG9tOiAzMHB4Ow0KfQ0KDQouYmxvY2sgew0KDQp9DQoNCi5ub25lIHsNCiAgZGlzcGxheTogbm9uZTsNCn0NCg0KDQoubm90VmlzaWJsZSB7DQogIGhlaWdodDogMHB4Ow0KICBkaXNwbGF5OiBub25lOw0KICBvcGFjaXR5OiAwOw0KICBib3JkZXItYm90dG9tOiAjMDAwIHNvbGlkIDBweDsNCiAgDQp9DQoNCi52aXNpYmxlIHsNCiAgb3BhY2l0eTogMTsNCiAgZGlzcGxheTogYmxvY2s7DQogIGJvcmRlci1ib3R0b206ICM0NDQgc29saWQgMXB4OyANCiAgcGFkZGluZzogMTBweDsNCn0NCg0KLmZsb2F0UmlnaHQgew0KICBmbG9hdDogcmlnaHQ7DQp9DQoNCi5mbG9hdExlZnQgew0KICBmbG9hdDogbGVmdDsNCn0NCg0KLm1lbnUtYWN0aXZlIHsNCiAgYmFja2dyb3VuZC1jb2xvcjogIzAwRTZGRjsNCn0NCg0KLm1lbnUtbm90QWN0aXZlIHsNCiAgDQp9DQoNCiNicmFuY2ggew0KICBkaXNwbGF5OiB0YWJsZTsNCiAgbWFyZ2luOiBhdXRvOw0KICBjb2xvcjogcmVkOw0KfQ0KDQojaW50ZXJhY3Rpb24gew0KICBtYXJnaW4tYm90dG9tOiAxMDBweDsNCiAgdGV4dC1hbGlnbjogY2VudGVyOw0KICBib3JkZXItYm90dG9tOiBzb2xpZCAwcHggIzc3NzsNCn0NCg0KDQouaGFsZiB7DQogIGRpc3BsYXk6IGJsb2NrOw0KICB3aWR0aDogNDUlOw0KfQ0KDQoubWVudSB7DQogIGJvcmRlcjogc29saWQgMXB4ICMwMEU2RkY7DQp9DQoNCi5pbmZvTXNnIHsNCiAgY29sb3I6ICNhYWE7DQp9DQoNCi5lcnJvck1zZyB7DQogIGNvbG9yOiByZWQ7DQp9DQoNCi53YXJuaW5nTXNnIHsNCiAgY29sb3I6IHllbGxvdzsNCn0NCg0KLmRlYnVnTXNnIHsNCiAgY29sb3I6IG1hZ2VudGE7DQp9DQoNCi5OZXdzLCAuTW92aWUsIC5TZXJpZXMsIC5TcG9ydHMsIC5LaWRzIHsNCiAgYm9yZGVyLWxlZnQ6IHNvbGlkIDJweA0KfQ0KDQouTmV3cyB7DQogIGJvcmRlci1jb2xvcjogdG9tYXRvDQp9DQoNCi5Nb3ZpZSB7DQogIGJvcmRlci1jb2xvcjogcm95YWxibHVlOw0KfQ0KDQouU2VyaWVzIHsNCiAgYm9yZGVyLWNvbG9yOiBnb2xkOw0KfQ0KDQouU3BvcnRzIHsNCiAgYm9yZGVyLWNvbG9yOiB5ZWxsb3dncmVlbjsNCn0NCg0KLktpZHMgew0KICBib3JkZXItY29sb3I6IG1lZGl1bXB1cnBsZTsNCn0NCg0KLyogTG9hZGluZyAqLw0KI2xvYWRpbmcgew0KICBsZWZ0OiAwcHg7DQogIHRvcDogMHB4Ow0KICB6LWluZGV4OiAxMDAwMDsNCiAgcG9zaXRpb246IGFic29sdXRlOw0KICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsMCwwLCAwLjgpOw0KICBtYXJnaW46IGF1dG87DQogIHdpZHRoOiAxMDAlOw0KICBoZWlnaHQ6IDEwMCU7DQp9DQoNCg0KLmxvYWRlciB7DQogIGJvcmRlcjogNXB4IHNvbGlkIHRyYW5zcGFyZW50Ow0KICBib3JkZXItcmFkaXVzOiA1MCU7DQogIGJvcmRlci10b3A6IDVweCBzb2xpZCAjMDBFNkZGOw0KICBib3JkZXItYm90dG9tOiA1cHggc29saWQgIzAwRTZGRjsNCiAgd2lkdGg6IDUwcHg7DQogIGhlaWdodDogNTBweDsNCiAgLXdlYmtpdC1hbmltYXRpb246IHNwaW4gMS4ycyBsaW5lYXIgaW5maW5pdGU7DQogIGFuaW1hdGlvbjogc3BpbiAxLjJzIGxpbmVhciBpbmZpbml0ZTsNCg0KICBwb3NpdGlvbjogZml4ZWQ7DQogIG1hcmdpbjogYXV0bzsNCg0KICB0b3A6IDA7DQogIHJpZ2h0OiAwOw0KICBib3R0b206IDA7DQogIGxlZnQ6IDA7DQogIA0KfQ0KDQpALXdlYmtpdC1rZXlmcmFtZXMgc3BpbiB7DQogIDAlIHsgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTsgfQ0KICAxMDAlIHsgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpOyB9DQp9DQoNCkBrZXlmcmFtZXMgc3BpbiB7DQogIDAlIHsgdHJhbnNmb3JtOiByb3RhdGUoMGRlZyk7IH0NCiAgMTAwJSB7IHRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7IH0NCn0NCg==" - webUI["html/login.html"] = "PCFkb2N0eXBlIGh0bWw+DQo8aHRtbD4NCiAgPGhlYWQ+DQogICAgPG1ldGEgY2hhcnNldD0idXRmLTgiPg0KICAgIDxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgsIGluaXRpYWwtc2NhbGU9MS4wIiAvPiANCiAgICA8dGl0bGU+eFRlVmU8L3RpdGxlPg0KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iY3NzL3NjcmVlbi5jc3MiIHR5cGU9InRleHQvY3NzIj4NCiAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9ImNzcy9iYXNlLmNzcyIgdHlwZT0idGV4dC9jc3MiPg0KICAgIDxzY3JpcHQgbGFuZ3VhZ2U9ImphdmFzY3JpcHQiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJqcy9uZXR3b3JrX3RzLmpzIj48L3NjcmlwdD4NCiAgICA8c2NyaXB0IGxhbmd1YWdlPSJqYXZhc2NyaXB0IiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ianMvYXV0aGVudGljYXRpb25fdHMuanMiPjwvc2NyaXB0Pg0KICA8L2hlYWQ+DQoNCiAgICA8Ym9keT4NCiAgICAgICAgICANCiAgICAgIDxkaXYgaWQ9ImhlYWRlciIgY2xhc3M9ImltZ0NlbnRlciI+PC9kaXY+DQoNCiAgICAgIDxkaXYgaWQ9ImJveCI+DQoNCiAgICAgICAgPGRpdiBpZD0iaGVhZGxpbmUiPg0KICAgICAgICAgIDxoMSBpZD0iaGVhZC10ZXh0IiBjbGFzcz0iY2VudGVyIj57ey5sb2dpbi5oZWFkbGluZX19PC9oMT4NCiAgICAgICAgPC9kaXY+DQoNCiAgICAgICAgPHAgaWQ9ImVyciIgY2xhc3M9ImVycm9yTXNnIGNlbnRlciI+e3suYXV0aGVudGljYXRpb25FcnJ9fTwvcD4NCg0KICAgICAgICA8ZGl2IGlkPSJjb250ZW50Ij4NCg0KICAgICAgICAgICAgPGZvcm0gaWQ9ImF1dGhlbnRpY2F0aW9uIiBhY3Rpb249IiIgbWV0aG9kPSJwb3N0Ij4NCg0KICAgICAgICAgICAgICA8aDU+e3subG9naW4udXNlcm5hbWUudGl0bGV9fTo8L2g1Pg0KICAgICAgICAgICAgICA8aW5wdXQgaWQ9InVzZXJuYW1lIiB0eXBlPSJ0ZXh0IiBuYW1lPSJ1c2VybmFtZSIgcGxhY2Vob2xkZXI9IlVzZXJuYW1lIiB2YWx1ZT0iIj4NCiAgICAgICAgICAgICAgPGg1Pnt7LmxvZ2luLnBhc3N3b3JkLnRpdGxlfX06PC9oNT4NCiAgICAgICAgICAgICAgPGlucHV0IGlkPSJwYXNzd29yZCIgdHlwZT0icGFzc3dvcmQiIG5hbWU9InBhc3N3b3JkIiBwbGFjZWhvbGRlcj0iUGFzc3dvcmQiIHZhbHVlPSIiPg0KDQogICAgICAgICAgICA8L2Zvcm0+DQoNCiAgICAgICAgPC9kaXY+DQoNCiAgICAgICAgPGRpdiBpZD0iYm94LWZvb3RlciI+DQogICAgICAgICAgPGlucHV0IGlkPSJzdWJtaXQiIGNsYXNzPSIiIHR5cGU9ImJ1dHRvbiIgdmFsdWU9Int7LmJ1dHRvbi5sb2dpbn19IiBvbmNsaWNrPSJqYXZhc2NyaXB0OiBsb2dpbigpOyI+DQogICAgICAgIDwvZGl2Pg0KICAgICAgICANCiAgICAgIDwvZGl2Pg0KDQogICAgPC9ib2R5Pg0KICAgIA0KPC9odG1sPg==" - webUI["html/img/x_white.png"] = "iVBORw0KGgoAAAANSUhEUgAAAQAAAAEACAIAAADTED8xAAAAAXNSR0IArs4c6QAAAAlwSFlzAAAWJQAAFiUBSVIk8AAAA6ppVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IlhNUCBDb3JlIDUuNC4wIj4KICAgPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIgogICAgICAgICAgICB4bWxuczp0aWZmPSJodHRwOi8vbnMuYWRvYmUuY29tL3RpZmYvMS4wLyIKICAgICAgICAgICAgeG1sbnM6ZXhpZj0iaHR0cDovL25zLmFkb2JlLmNvbS9leGlmLzEuMC8iPgogICAgICAgICA8eG1wOk1vZGlmeURhdGU+MjAxOC0xMS0xNVQxNzoxMToyNTwveG1wOk1vZGlmeURhdGU+CiAgICAgICAgIDx4bXA6Q3JlYXRvclRvb2w+UGl4ZWxtYXRvciAzLjM8L3htcDpDcmVhdG9yVG9vbD4KICAgICAgICAgPHRpZmY6T3JpZW50YXRpb24+MTwvdGlmZjpPcmllbnRhdGlvbj4KICAgICAgICAgPHRpZmY6Q29tcHJlc3Npb24+NTwvdGlmZjpDb21wcmVzc2lvbj4KICAgICAgICAgPHRpZmY6UmVzb2x1dGlvblVuaXQ+MjwvdGlmZjpSZXNvbHV0aW9uVW5pdD4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+MTQ0PC90aWZmOllSZXNvbHV0aW9uPgogICAgICAgICA8dGlmZjpYUmVzb2x1dGlvbj4xNDQ8L3RpZmY6WFJlc29sdXRpb24+CiAgICAgICAgIDxleGlmOlBpeGVsWERpbWVuc2lvbj4yNTY8L2V4aWY6UGl4ZWxYRGltZW5zaW9uPgogICAgICAgICA8ZXhpZjpDb2xvclNwYWNlPjE8L2V4aWY6Q29sb3JTcGFj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" webUI["html/js/authentication_ts.js"] = "ZnVuY3Rpb24gbG9naW4oKSB7DQogICAgdmFyIGVyciA9IGZhbHNlOw0KICAgIHZhciBkYXRhID0gbmV3IE9iamVjdCgpOw0KICAgIHZhciBkaXYgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29udGVudCIpOw0KICAgIHZhciBmb3JtID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImF1dGhlbnRpY2F0aW9uIik7DQogICAgdmFyIGlucHV0cyA9IGRpdi5nZXRFbGVtZW50c0J5VGFnTmFtZSgiSU5QVVQiKTsNCiAgICBjb25zb2xlLmxvZyhpbnB1dHMpOw0KICAgIGZvciAodmFyIGkgPSBpbnB1dHMubGVuZ3RoIC0gMTsgaSA+PSAwOyBpLS0pIHsNCiAgICAgICAgdmFyIGtleSA9IGlucHV0c1tpXS5uYW1lOw0KICAgICAgICB2YXIgdmFsdWUgPSBpbnB1dHNbaV0udmFsdWU7DQogICAgICAgIGlmICh2YWx1ZS5sZW5ndGggPT0gMCkgew0KICAgICAgICAgICAgaW5wdXRzW2ldLnN0eWxlLmJvcmRlckNvbG9yID0gInJlZCI7DQogICAgICAgICAgICBlcnIgPSB0cnVlOw0KICAgICAgICB9DQogICAgICAgIGRhdGFba2V5XSA9IHZhbHVlOw0KICAgIH0NCiAgICBpZiAoZXJyID09IHRydWUpIHsNCiAgICAgICAgZGF0YSA9IG5ldyBPYmplY3QoKTsNCiAgICAgICAgcmV0dXJuOw0KICAgIH0NCiAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgiY29uZmlybSIpKSB7DQogICAgICAgIGlmIChkYXRhWyJjb25maXJtIl0gIT0gZGF0YVsicGFzc3dvcmQiXSkgew0KICAgICAgICAgICAgYWxlcnQoInNkYWZzZCIpOw0KICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Bhc3N3b3JkJykuc3R5bGUuYm9yZGVyQ29sb3IgPSAicmVkIjsNCiAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjb25maXJtJykuc3R5bGUuYm9yZGVyQ29sb3IgPSAicmVkIjsNCiAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJlcnIiKS5pbm5lckhUTUwgPSAie3suYWNjb3VudC5mYWlsZWR9fSI7DQogICAgICAgICAgICByZXR1cm47DQogICAgICAgIH0NCiAgICB9DQogICAgY29uc29sZS5sb2coZGF0YSk7DQogICAgZm9ybS5zdWJtaXQoKTsNCn0NCg==" - webUI["html/js/files.js"] = "ZnVuY3Rpb24gb3BlbkZpbGVzKGVsbSwgZmlsZVR5cGUpIHsNCiAgLy9kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic2V0dGluZ3MiKS5pbm5lckhUTUwgPSAiVGVzdCI7DQogIA0KICBjb2x1bW5Ub1NvcnQgPSAwOyANCiAgdmFyIG5ld0RpdiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzZXR0aW5ncyIpOw0KICANCiAgdmFyIG5ld0VudHJ5ID0gbmV3IE9iamVjdCgpOw0KICBuZXdFbnRyeVsiX2VsZW1lbnQiXSAgPSAiSFIiOw0KICBuZXdEaXYuYXBwZW5kQ2hpbGQoY3JlYXRlRWxlbWVudChuZXdFbnRyeSkpOw0KDQogIHZhciBuZXdFbnRyeSA9IG5ldyBPYmplY3QoKTsNCiAgbmV3RW50cnlbIl9lbGVtZW50Il0gID0gIklOUFVUIjsNCiAgbmV3RW50cnlbInR5cGUiXSA9ICJidXR0b24iOw0KICBuZXdFbnRyeVsiY2xhc3MiXSA9ICJidXR0b24iOw0KICBuZXdFbnRyeVsidmFsdWUiXSA9ICJOZXciOw0KICBuZXdFbnRyeVsib25jbGljayJdID0gJ2ZpbGVEZXRhaWwoIi0iLCAiJyArIGZpbGVUeXBlICsgJyIpJzsNCiAgbmV3RGl2LmFwcGVuZENoaWxkKGNyZWF0ZUVsZW1lbnQobmV3RW50cnkpKTsNCg0KICB2YXIgbmV3RW50cnkgPSBuZXcgT2JqZWN0KCk7DQogIG5ld0VudHJ5WyJfZWxlbWVudCJdICA9ICJJTlBVVCI7DQogIG5ld0VudHJ5WyJ0eXBlIl0gPSAiYnV0dG9uIjsNCiAgbmV3RW50cnlbImNsYXNzIl0gPSAiYnV0dG9uIjsNCiAgbmV3RW50cnlbInZhbHVlIl0gPSAiVXBkYXRlIjsNCiAgbmV3RW50cnlbIm9uY2xpY2siXSA9ICJmaWxlRGV0YWlsKDApIjsNCiAgLy9uZXdEaXYuYXBwZW5kQ2hpbGQoY3JlYXRlRWxlbWVudChuZXdFbnRyeSkpOw0KDQogIHZhciBkaXYgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic2V0dGluZ3MiKTsNCg0KICAgLy8gQnVpbGQgdGFibGUNCiAgdmFyIG5ld1RhYmxlID0gbmV3IE9iamVjdCgpOw0KICBuZXdUYWJsZVsiX2VsZW1lbnQiXSAgPSAiVEFCTEUiOw0KICBuZXdUYWJsZVsiaWQiXSAgICAgICAgPSAiaWRfbWFwcGluZyI7DQogIG5ld1RhYmxlWyJjbGFzcyJdICAgICA9ICJ0YWJsZS1tYXBwaW5nIjsNCiAgZGl2LmFwcGVuZENoaWxkKGNyZWF0ZUVsZW1lbnQobmV3VGFibGUpKTsNCg0KICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7IA0KICAgIGNyZWF0ZUZpbGVzVGFibGUoZmlsZVR5cGUpOyANCiAgfSwgMTApOw0KDQp9DQoNCmZ1bmN0aW9uIGNyZWF0ZUZpbGVzVGFibGUoZmlsZVR5cGUpIHsNCiAgdmFyIHRhYmxlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImlkX21hcHBpbmciKTsNCiAgdmFyIGF2YWlsYWJsZUZpbGVUeXBlcyA9IG5ldyBBcnJheSgpOw0KICANCiAgdGFibGUuaW5uZXJIVE1MID0gIiI7DQogIHZhciBuZXdUUiA9IG5ldyBPYmplY3QoKTsNCiAgbmV3VFJbIl9lbGVtZW50Il0gPSAiVFIiOw0KICBuZXdUUlsiY2xhc3MiXSAgICA9ICJ0YWJsZS1tYXBwaW5nLWhlYWRlciI7DQogIHRhYmxlLmFwcGVuZENoaWxkKGNyZWF0ZUVsZW1lbnQobmV3VFIpKTsNCg0KICB2YXIgdHIgPSB0YWJsZS5sYXN0Q2hpbGQ7DQoNCiAgc3dpdGNoKGZpbGVUeXBlKSB7DQogICAgY2FzZSAieG1sdHYiOiANCiAgICAgIGF2YWlsYWJsZUZpbGVUeXBlcyA9IG5ldyBBcnJheSgieG1sdHYiKTsgDQogICAgICB2YXIgdHJIZWFkbGluZXMgPSBuZXcgQXJyYXkoIkd1aWRlIiwgIkxhc3QgVXBkYXRlIiwgIkF2YWlsYWJpbGl0eSAlIiwgIkNoYW5uZWxzIiwgIlByb2dyYW1zIikNCiAgICAgIHZhciBjb21wYXRpYmlsaXR5S2V5cyA9IG5ldyBBcnJheSgieG1sdHYuY2hhbm5lbHMiLCAieG1sdHYucHJvZ3JhbXMiKQ0KICAgICAgYnJlYWs7DQoNCiAgICBjYXNlICJtM3UiOg0KICAgICAgYXZhaWxhYmxlRmlsZVR5cGVzID0gbmV3IEFycmF5KCJtM3UiLCAiaGRociIpOyANCiAgICAgIHZhciB0ckhlYWRsaW5lcyA9IG5ldyBBcnJheSgiUGxheWxpc3QiLCAiTGFzdCBVcGRhdGUiLCAiQXZhaWxhYmlsaXR5ICUiLCAiVHlwZSIsICJTdHJlYW1zIiwgImdyb3VwLXRpdGxlICUiLCAidHZnLWlkICUiLCAiVW5pcXVlIElEICUiKTsNCiAgICAgIHZhciBjb21wYXRpYmlsaXR5S2V5cyA9IG5ldyBBcnJheSgic3RyZWFtcyIsICJncm91cC50aXRsZSIsICJ0dmcuaWQiLCAic3RyZWFtLmlkIik7DQogICAgICBicmVhazsNCiAgfQ0KDQogIGZvciAodmFyIGkgPSAwOyBpIDwgdHJIZWFkbGluZXMubGVuZ3RoOyBpKyspIHsNCiAgICB2YXIgbmV3VEQgPSBuZXcgT2JqZWN0KCk7DQogICAgbmV3VERbIl9lbGVtZW50Il0gPSAiVEQiOw0KICAgIG5ld1REWyJfdGV4dCJdICAgID0gdHJIZWFkbGluZXNbaV07DQogICAgdHIuYXBwZW5kQ2hpbGQoY3JlYXRlRWxlbWVudChuZXdURCkpOw0KICB9DQogIA0KICBmb3IgKHZhciBpID0gMDsgaSA8IGF2YWlsYWJsZUZpbGVUeXBlcy5sZW5ndGg7IGkrKykgew0KICAgIA0KICAgIHZhciBmaWxlVHlwZSA9IGF2YWlsYWJsZUZpbGVUeXBlc1tpXQ0KDQogICAgdmFyIGRhdGEgPSBjb25maWdbImZpbGVzIl1bZmlsZVR5cGVdOw0KICAgIA0KICAgIHZhciBhbGxGaWxlcyA9IGdldE9iaktleXMoZGF0YSkNCiAgDQogICAgZm9yICh2YXIgZiA9IDA7IGYgPCBhbGxGaWxlcy5sZW5ndGg7IGYrKykgew0KICAgICAgdmFyIGVsbSAgICAgICAgICAgPSBkYXRhW2FsbEZpbGVzW2ZdXTsNCiAgICAgIHZhciB0YWJsZSAgICAgICAgID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImlkX21hcHBpbmciKTsNCiAgICAgIHZhciBmaWxlSUQgICAgICAgID0gZWxtWyJpZC5wcm92aWRlciJdOw0KICAgICAgdmFyIG5hbWUgICAgICAgICAgPSBlbG1bIm5hbWUiXTsNCiAgICAgIHZhciBsYXN0VXBkYXRlICAgID0gZWxtWyJsYXN0LnVwZGF0ZSJdOw0KICAgICAgdmFyIGF2YWlsYWJpbGl0eSAgPSBlbG1bInByb3ZpZGVyLmF2YWlsYWJpbGl0eSJdOw0KICAgICAgdmFyIHR5cGUgICAgICAgICAgPSBlbG1bInR5cGUiXS50b1VwcGVyQ2FzZSgpOw0KICAgICAgdmFyIGNvbXBhdGliaWxpdHkgPSBlbG1bImNvbXBhdGliaWxpdHkiXTsNCg0KICAgICAgLy8gQ3JlYXRlIFRSDQogICAgICB2YXIgbmV3VFIgPSBuZXcgT2JqZWN0KCk7DQogICAgICBuZXdUUlsiX2VsZW1lbnQiXSAgICAgICA9ICJUUiI7DQogICAgICBuZXdUUlsiY2xhc3MiXSAgICAgICAgICA9ICIiOw0KICAgICAgbmV3VFJbImlkIl0gICAgICAgICAgICAgPSBmaWxlSUQ7DQogICAgICBuZXdUUlsib25jbGljayJdICAgICAgICA9ICdqYXZhc2NyaXB0OiBmaWxlRGV0YWlsKCInICsgZmlsZUlEICsgJyIsIicgKyBmaWxlVHlwZSArICciKTsnOw0KICAgICAgdGFibGUuYXBwZW5kQ2hpbGQoY3JlYXRlRWxlbWVudChuZXdUUikpOw0KDQogICAgICB2YXIgdHIgPSB0YWJsZS5sYXN0Q2hpbGQ7DQoNCiAgICAgIC8vIENyZWF0ZSBmaWxlIG5hbWUgVEQNCiAgICAgIHZhciBuZXdURCA9IG5ldyBPYmplY3QoKTsNCiAgICAgIG5ld1REWyJfZWxlbWVudCJdID0gIlAiOw0KICAgICAgbmV3VERbIl90ZXh0Il0gICAgPSBuYW1lOw0KICAgICAgY3JlYXRlTmV3VEQobmV3VEQsIHRyKTsNCg0KICAgICAgLy8gQ3JlYXRlIGxhc3QgdXBkYXRlIFREDQogICAgICB2YXIgbmV3VEQgPSBuZXcgT2JqZWN0KCk7DQogICAgICBuZXdURFsiX2VsZW1lbnQiXSA9ICJQIjsNCiAgICAgIG5ld1REWyJfdGV4dCJdICAgID0gbGFzdFVwZGF0ZTsNCiAgICAgIGNyZWF0ZU5ld1REKG5ld1RELCB0cik7DQoNCiAgICAgIC8vIENyZWF0ZSBhdmFpbGFiaWxpdHkgVEQNCiAgICAgIHZhciBuZXdURCA9IG5ldyBPYmplY3QoKTsNCiAgICAgIG5ld1REWyJfZWxlbWVudCJdID0gIlAiOw0KICAgICAgbmV3VERbIl90ZXh0Il0gICAgPSBhdmFpbGFiaWxpdHk7DQogICAgICBjcmVhdGVOZXdURChuZXdURCwgdHIpOw0KDQogICAgICBpZiAoZmlsZVR5cGUgPT0gIm0zdSIgfHwgZmlsZVR5cGUgPT0gImhkaHIiKSB7DQoNCiAgICAgICAgLy8gQ3JlYXRlIFR5cGUgVEQNCiAgICAgICAgdmFyIG5ld1REID0gbmV3IE9iamVjdCgpOw0KICAgICAgICBuZXdURFsiX2VsZW1lbnQiXSA9ICJQIjsNCiAgICAgICAgbmV3VERbIl90ZXh0Il0gICAgPSB0eXBlOw0KICAgICAgICBjcmVhdGVOZXdURChuZXdURCwgdHIpOw0KICANCiAgICAgIH0NCiAgICAgIA0KICAgICAgLy8gQ3JlYXRlIGFsbCBjb21wYXRpYmlsaXR5IFREcw0KDQogICAgICBmb3IgKHZhciBqID0gMDsgaiA8IGNvbXBhdGliaWxpdHlLZXlzLmxlbmd0aDsgaisrKSB7DQogICAgICAgIHZhciBuZXdURCA9IG5ldyBPYmplY3QoKTsNCiAgICAgICAgbmV3VERbIl9lbGVtZW50Il0gPSAiUCI7DQogICAgICAgIG5ld1REWyJfdGV4dCJdICAgID0gY29tcGF0aWJpbGl0eVtjb21wYXRpYmlsaXR5S2V5c1tqXV07DQogICAgICAgIGNyZWF0ZU5ld1REKG5ld1RELCB0cik7DQogICAgICB9DQoNCiAgICB9DQoNCiAgfQ0KICANCiAgDQogIHNvcnRUYWJsZSgwKQ0KDQogIC8vIHVzYWdlIEluZm8gIA0KICB2YXIgZGl2ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNldHRpbmdzIik7DQogIHN3aXRjaChtZW51W2FjdGl2ZU1lbnUuaWRdLmhhc093blByb3BlcnR5KCJfdXNhZ2UiKSkgew0KICAgIGNhc2UgdHJ1ZTogDQogICAgICB2YXIgdXNhZ2VJdGVtID0gbmV3IE9iamVjdCgpOw0KICAgICAgdXNhZ2VJdGVtWyJfZWxlbWVudCJdID0gIlBSRSINCiAgICAgIHVzYWdlSXRlbVsiX3RleHQiXSAgICA9IG1lbnVbYWN0aXZlTWVudS5pZF1bIl91c2FnZSJdOw0KDQogICAgICB2YXIgbmV3SFIgPSBuZXcgT2JqZWN0KCk7DQogICAgICBuZXdIUlsiX2VsZW1lbnQiXSA9ICJIUiINCiAgICAgIGRpdi5hcHBlbmRDaGlsZChjcmVhdGVFbGVtZW50KG5ld0hSKSk7DQogICAgICBkaXYuYXBwZW5kQ2hpbGQoY3JlYXRlRWxlbWVudCh1c2FnZUl0ZW0pKTsNCiAgICAgIGJyZWFrOw0KICB9DQoNCiAgY2FsY3VsYXRlV3JhcHBlckhlaWdodCgpOw0KICByZXR1cm47DQp9DQoNCg0KZnVuY3Rpb24gZmlsZURldGFpbChmaWxlSUQsIGZpbGVUeXBlKSB7DQoNCiAgb3B0aW9uc1RleHQgID0gbmV3IEFycmF5KCJNM1UiLCAiSERIb21lUnVuIC0gW0V4cGVyaW1lbnRhbF0iKQ0KICBvcHRpb25zVmFsdWUgPSBuZXcgQXJyYXkoIm0zdSIsICJoZGhyIikNCg0KICBzd2l0Y2ggKGZpbGVUeXBlKSB7DQogICAgDQogICAgY2FzZSAibTN1IjogDQogICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibmFtZSIpLnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAiUGxheWxpc3QgbmFtZSIpOyANCiAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJkZXNjcmlwdGlvbiIpLnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAiRGVzY3JpcHRpb24gb2YgdGhpcyBwbGF5bGlzdCIpOyANCiAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJmaWxlLWRldGFpbC1oZWFkbGluZSIpLmlubmVySFRNTCA9ICJNM1UgUGxheWxpc3QiOyANCiAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJmaWxlLXBhdGgiKS5pbm5lckhUTUwgPSAiTTNVIEZpbGU6IjsgDQogICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZmlsZS5zb3VyY2UiKS5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgIkxvY2FsIG9yIHJlbW90ZSIpOw0KICAgICAgYnJlYWs7DQoNCiAgICBjYXNlICJoZGhyIjogDQogICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibmFtZSIpLnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAiSERIb21lUnVuIG5hbWUiKTsgDQogICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZGVzY3JpcHRpb24iKS5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgIkRlc2NyaXB0aW9uIG9mIHRoaXMgSERIb21lUnVuIHR1bmVyIik7IA0KICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImZpbGUtZGV0YWlsLWhlYWRsaW5lIikuaW5uZXJIVE1MID0gIkhESG9tZVJ1biI7IA0KICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImZpbGUtcGF0aCIpLmlubmVySFRNTCA9ICJIREhvbWVSdW4gSVA6IjsgDQogICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZmlsZS5zb3VyY2UiKS5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgIklQIGFkZHJlc3MgYW5kIHBvcnQgb2YgdGhlIHR1bmVyICgxOTIuMTY4LjEuMTA6NTAwNCkiKTsNCiAgICAgIGJyZWFrOw0KICAgIA0KICAgIGNhc2UgInhtbHR2IjogDQogICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibmFtZSIpLnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAiWE1MVFYgbmFtZSIpOyANCiAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJkZXNjcmlwdGlvbiIpLnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAiRGVzY3JpcHRpb24gb2YgdGhpcyBYTUxUViBmaWxlIik7IA0KICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImZpbGUtZGV0YWlsLWhlYWRsaW5lIikuaW5uZXJIVE1MID0gIlhNTFRWIEZpbGUiOyANCiAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJmaWxlLXBhdGgiKS5pbm5lckhUTUwgPSAiWE1MVFYgRmlsZToiOw0KICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImZpbGUuc291cmNlIikuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJMb2NhbCBvciByZW1vdGUiKTsNCg0KICAgICAgb3B0aW9uc1RleHQgID0gbmV3IEFycmF5KCJYTUxUViIpDQogICAgICBvcHRpb25zVmFsdWUgPSBuZXcgQXJyYXkoInhtbHR2IikNCiAgICAgIGJyZWFrOw0KICB9DQoNCiAgbW9kaWZ5T3B0aW9uKCJ0eXBlIiwgb3B0aW9uc1RleHQsIG9wdGlvbnNWYWx1ZSkNCiAgDQogIHNob3dQb3BVcEVsZW1lbnQoJ2ZpbGUtZGV0YWlsJyk7DQoNCiAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNhdmVGaWxlRGV0YWlsIikuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IHNhdmVGaWxlRGV0YWlsKCInICsgZmlsZUlEICsgJyIsIicgKyBmaWxlVHlwZSArICciLCBmYWxzZSknKTsNCiAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInVwZGF0ZUZpbGVEZXRhaWwiKS5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogdXBkYXRlRmlsZSgiJyArIGZpbGVJRCArICciLCInICsgZmlsZVR5cGUgKyAnIiwgZmFsc2UpJyk7DQogIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJkZWxldGVGaWxlRGV0YWlsIikuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IHNhdmVGaWxlRGV0YWlsKCInICsgZmlsZUlEICsgJyIsIicgKyBmaWxlVHlwZSArICciLCB0cnVlKScpOw0KDQogIHZhciBkYXRhID0gbmV3IE9iamVjdCgpOw0KDQogIHN3aXRjaChmaWxlSUQpIHsNCg0KICAgIGNhc2UgIi0iOiAvLyBOZXcgZmlsZQ0KICAgICAgZGF0YVsibmFtZSJdICAgICAgICA9ICIiOw0KICAgICAgZGF0YVsiZGVzY3JpcHRpb24iXSA9ICIiOw0KICAgICAgZGF0YVsiZmlsZS5zb3VyY2UiXSA9ICIiOw0KICAgICAgZGF0YVsidHlwZSJdID0gZmlsZVR5cGU7DQogICAgICANCiAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJkZWxldGVGaWxlRGV0YWlsIikuY2xhc3NOYW1lID0gImRlbGV0ZSI7DQogICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidHlwZSIpLnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiY2hhbmdlRmlsZVR5cGUodGhpcyk7IikNCiAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0eXBlIikuc2V0QXR0cmlidXRlKCJkYXRhLWlkIiwgZmlsZUlEKQ0KICAgICAgDQogICAgICBzaG93RWxlbWVudCgiZGVsZXRlRmlsZURldGFpbCIsIGZhbHNlKTsNCiAgICAgIHNob3dFbGVtZW50KCJ1cGRhdGVGaWxlRGV0YWlsIiwgZmFsc2UpOw0KICAgICAgDQogICAgICBpZiAoZmlsZVR5cGUgPT0gInhtbHR2Iikgew0KICAgICAgICBzaG93RWxlbWVudCgidHlwZSIsIGZhbHNlKTsNCiAgICAgICAgc2hvd0VsZW1lbnQoImZpbGUtdHlwZSIsIGZhbHNlKTsNCiAgICAgIH0gZWxzZSB7DQogICAgICAgIHNob3dFbGVtZW50KCJ0eXBlIiwgdHJ1ZSk7DQogICAgICAgIHNob3dFbGVtZW50KCJmaWxlLXR5cGUiLCB0cnVlKTsNCiAgICAgIH0NCiAgICAgIA0KICAgICAgYnJlYWs7DQoNCiAgICBkZWZhdWx0OiANCiAgICAgIGRhdGEgPSBjb25maWdbImZpbGVzIl1bZmlsZVR5cGVdW2ZpbGVJRF07DQogICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZGVsZXRlRmlsZURldGFpbCIpLmNsYXNzTmFtZSA9ICJkZWxldGUiOw0KICAgICAgDQogICAgICBzaG93RWxlbWVudCgidXBkYXRlRmlsZURldGFpbCIsIHRydWUpOw0KICAgICAgc2hvd0VsZW1lbnQoInR5cGUiLCBmYWxzZSk7DQogICAgICBzaG93RWxlbWVudCgiZmlsZS10eXBlIiwgZmFsc2UpOw0KICAgICAgDQogICAgICBicmVhazsNCg0KICB9DQoNCiAgdmFyIGtleXMgPSBnZXRPYmpLZXlzKGRhdGEpOw0KICANCiAgZm9yICh2YXIgaSA9IDA7IGkgPCBrZXlzLmxlbmd0aDsgaSsrKSB7DQoNCiAgICBpZihkb2N1bWVudC5nZXRFbGVtZW50QnlJZChrZXlzW2ldKSl7DQogICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChrZXlzW2ldKS52YWx1ZSA9IGRhdGFba2V5c1tpXV07DQogICAgfSANCg0KDQogIH0NCg0KfQ0KDQpmdW5jdGlvbiBjaGFuZ2VGaWxlVHlwZShlbG0pIHsNCg0KICB2YXIgZmlsZUlEID0gZWxtLmdldEF0dHJpYnV0ZSgiZGF0YS1pZCIpOw0KICB2YXIgZmlsZVR5cGUgPSBlbG0ub3B0aW9uc1tlbG0uc2VsZWN0ZWRJbmRleF0udmFsdWU7DQogIA0KICBmaWxlRGV0YWlsKGZpbGVJRCwgZmlsZVR5cGUpDQoNCn0NCg0KDQpmdW5jdGlvbiBzYXZlRmlsZURldGFpbChmaWxlSUQsIGZpbGVUeXBlLCBkZWxldGVGaWxlKSB7DQoNCiAgaWYgKGZpbGVJRCA9PSB1bmRlZmluZWQpIHsNCiAgICBhbGVydCgiSUQgaXMgbWlzc2luZyEhISIpOw0KICAgIHJldHVybiANCiAgfQ0KDQogIHZhciBpbnB1dHMgICAgICA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJmaWxlLWRldGFpbCIpLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJJTlBVVCIpOw0KICB2YXIgc2VsZWN0cyAgICAgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZmlsZS1kZXRhaWwiKS5nZXRFbGVtZW50c0J5VGFnTmFtZSgiU0VMRUNUIik7DQogIHZhciBuZXdGaWxlRGF0YSA9IG5ldyBPYmplY3QoKTsNCiAgdmFyIGRhdGEgICAgICAgID0gbmV3IE9iamVjdCgpOw0KDQogIGZvciAodmFyIGkgPSAwOyBpIDwgaW5wdXRzLmxlbmd0aDsgaSsrKSB7DQogICAgc3dpdGNoKGlucHV0c1tpXS50eXBlKSB7DQogICAgICBjYXNlICJ0ZXh0IjogbmV3RmlsZURhdGFbaW5wdXRzW2ldLm5hbWVdID0gaW5wdXRzW2ldLnZhbHVlOyBicmVhazsNCiAgICB9DQogIH0NCg0KICBmb3IgKHZhciBpID0gMDsgaSA8IHNlbGVjdHMubGVuZ3RoOyBpKyspIHsNCiAgICBuZXdGaWxlRGF0YVtzZWxlY3RzW2ldLmlkXSA9IHNlbGVjdHNbaV0ub3B0aW9uc1tzZWxlY3RzW2ldLnNlbGVjdGVkSW5kZXhdLnZhbHVlOw0KICB9DQoNCiAgaWYgKGRlbGV0ZUZpbGUgPT0gdHJ1ZSkgew0KICAgIHN3aXRjaChmaWxlVHlwZSkgew0KICAgICAgY2FzZSAibTN1IjogICB2YXIgYWxlcnRUZXh0ID0gIkRlbGV0ZSB0aGlzIHBsYXlsaXN0PyI7IGJyZWFrOw0KICAgICAgY2FzZSAiaGRociI6IHZhciBhbGVydFRleHQgPSAiRGVsZXRlIHRoaXMgSERIb21lUnVuIHR1bmVyPyI7IGJyZWFrOw0KICAgICAgY2FzZSAieG1sdHYiOiB2YXIgYWxlcnRUZXh0ID0gIkRlbGV0ZSB0aGlzIFhNTFRWIGZpbGU/IjsgYnJlYWs7DQogICAgfQ0KDQogICAgaWYgKGNvbmZpcm0oYWxlcnRUZXh0KSkgew0KICAgICAgbmV3RmlsZURhdGFbImRlbGV0ZSJdID0gdHJ1ZQ0KICAgICAgZGF0YSA9IGJ1aWxkRmlsZXNPYmooZmlsZVR5cGUsIGZpbGVJRCwgbmV3RmlsZURhdGEpOw0KICAgICAgY29uc29sZS5sb2coZGF0YSk7DQogICAgICANCiAgICB9IGVsc2Ugew0KICAgICAgc2hvd0VsZW1lbnQoInBvcHVwIiwgZmFsc2UpOw0KICAgICAgcmV0dXJuDQogICAgDQogICAgfQ0KDQogIH0gZWxzZSB7DQogIA0KICAgIHN3aXRjaChjb25maWdbImZpbGVzIl1bZmlsZVR5cGVdLmhhc093blByb3BlcnR5KGZpbGVJRCkpIHsNCg0KICAgICAgY2FzZSB0cnVlOiANCiAgICAgICAgZGF0YSA9IGNvbmZpZ1siZmlsZXMiXVtmaWxlVHlwZV1bZmlsZUlEXTsgDQogICAgICAgIGlmIChkYXRhWyJmaWxlLnNvdXJjZSJdICE9IG5ld0ZpbGVEYXRhWyJmaWxlLnNvdXJjZSJdKSB7DQogICAgICAgICAgZGF0YVsidXBkYXRlIl0gPSB0cnVlDQogICAgICAgIH0gZWxzZSB7DQogICAgICAgICAgZGF0YVsidXBkYXRlUGxheWxpc3ROYW1lIl0gPSB0cnVlOw0KICAgICAgICB9DQogICAgICAgIGJyZWFrOw0KICAgICAgDQogICAgICBjYXNlIGZhbHNlOiANCiAgICAgICAgbmV3RmlsZURhdGFbIm5ldyJdID0gdHJ1ZTsNCiAgICAgICAgZGF0YSA9IGJ1aWxkRmlsZXNPYmooZmlsZVR5cGUsIGZpbGVJRCwgbmV3RmlsZURhdGEpOw0KICAgICAgICBicmVhaw0KDQogICAgfQ0KICANCiAgfSAgDQogIA0KICBzd2l0Y2goZmlsZVR5cGUpIHsNCg0KICAgIGNhc2UgIm0zdSI6ICAgZGF0YVsiY21kIl0gPSAic2F2ZUZpbGVzTTNVIjsgYnJlYWs7DQogICAgY2FzZSAiaGRociI6ICBkYXRhWyJjbWQiXSA9ICJzYXZlRmlsZXNIREhSIjsgYnJlYWs7DQogICAgY2FzZSAieG1sdHYiOiBkYXRhWyJjbWQiXSA9ICJzYXZlRmlsZXNYTUxUViI7IGJyZWFrOw0KDQogIH0NCiAgLy9jb25zb2xlLmxvZyhkYXRhKTsNCiAgeFRlVmUoZGF0YSk7DQogIHJldHVybg0KfQ0KDQpmdW5jdGlvbiB1cGRhdGVGaWxlKGZpbGVJRCwgZmlsZVR5cGUsIGFsbEZpbGVzKSB7DQogIA0KICBzd2l0Y2goY29uZmlnWyJmaWxlcyJdW2ZpbGVUeXBlXS5oYXNPd25Qcm9wZXJ0eShmaWxlSUQpKSB7DQoNCiAgICBjYXNlIHRydWU6IA0KICAgIA0KICAgICAgdmFyIGRhdGEgPSBuZXcgT2JqZWN0KCk7DQogICAgICB2YXIgZGF0YSA9IGJ1aWxkRmlsZXNPYmooZmlsZVR5cGUsIGZpbGVJRCwgY29uZmlnWyJmaWxlcyJdW2ZpbGVUeXBlXVtmaWxlSURdKQ0KICAgICAgZGF0YVsibmV3Il0gPSB0cnVlDQoNCiAgICAgIHN3aXRjaChmaWxlVHlwZSkgew0KDQogICAgICAgIGNhc2UgIm0zdSI6ICAgZGF0YVsiY21kIl0gPSAidXBkYXRlRmlsZU0zVSI7IGJyZWFrOw0KICAgICAgICBjYXNlICJoZGhyIjogIGRhdGFbImNtZCJdID0gInVwZGF0ZUZpbGVIREhSIjsgYnJlYWs7DQogICAgICAgIGNhc2UgInhtbHR2IjogZGF0YVsiY21kIl0gPSAidXBkYXRlRmlsZVhNTFRWIjsgYnJlYWs7DQoNCiAgICAgIH0NCiAgICAgIA0KICAgICAgeFRlVmUoZGF0YSk7DQogICAgICANCiAgICAgIGJyZWFrOw0KICB9DQoNCn0NCg0KZnVuY3Rpb24gYnVpbGRGaWxlc09iaihmaWxlVHlwZSwgZmlsZUlELCBvYmopIHsNCg0KICB2YXIgZGF0YSA9IG5ldyBPYmplY3QoKTsNCiAgZGF0YVsiZmlsZXMiXSA9IG5ldyBPYmplY3QoKTsNCiAgZGF0YVsiZmlsZXMiXVtmaWxlVHlwZV0gPSBuZXcgT2JqZWN0KCk7DQogIGRhdGFbImZpbGVzIl1bZmlsZVR5cGVdW2ZpbGVJRF0gPSBvYmoNCiAgcmV0dXJuIGRhdGENCg0KfQ==" - webUI["html/js/settings_ts.js"] = "Y2xhc3MgU2V0dGluZ3NDYXRlZ29yeSB7DQogICAgY29uc3RydWN0b3IoKSB7DQogICAgICAgIHRoaXMuRG9jdW1lbnRJRCA9ICJjb250ZW50X3NldHRpbmdzIjsNCiAgICB9DQogICAgY3JlYXRlQ2F0ZWdvcnlIZWFkbGluZSh2YWx1ZSkgew0KICAgICAgICB2YXIgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIkg0Iik7DQogICAgICAgIGVsZW1lbnQuaW5uZXJIVE1MID0gdmFsdWU7DQogICAgICAgIHJldHVybiBlbGVtZW50Ow0KICAgIH0NCiAgICBjcmVhdGVIUigpIHsNCiAgICAgICAgdmFyIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJIUiIpOw0KICAgICAgICByZXR1cm4gZWxlbWVudDsNCiAgICB9DQogICAgY3JlYXRlU2V0dGluZ3Moc2V0dGluZ3NLZXkpIHsNCiAgICAgICAgdmFyIHNldHRpbmcgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJUUiIpOw0KICAgICAgICB2YXIgY29udGVudCA9IG5ldyBQb3B1cENvbnRlbnQoKTsNCiAgICAgICAgdmFyIGRhdGEgPSBTRVJWRVJbInNldHRpbmdzIl1bc2V0dGluZ3NLZXldOw0KICAgICAgICBzd2l0Y2ggKHNldHRpbmdzS2V5KSB7DQogICAgICAgICAgICAvLyBUZXh0ZWluZ2FiZW4NCiAgICAgICAgICAgIGNhc2UgInVwZGF0ZSI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy51cGRhdGUudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCAidXBkYXRlIiwgZGF0YS50b1N0cmluZygpKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnNldHRpbmdzLnVwZGF0ZS5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiYmFja3VwLnBhdGgiOg0KICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MuYmFja3VwUGF0aC50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsICJiYWNrdXAucGF0aCIsIGRhdGEpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3suc2V0dGluZ3MuYmFja3VwUGF0aC5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAidGVtcC5wYXRoIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLnRlbXBQYXRoLnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgInRlbXAucGF0aCIsIGRhdGEpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3suc2V0dGluZ3MudG1wUGF0aC5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAidXNlci5hZ2VudCI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy51c2VyQWdlbnQudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCAidXNlci5hZ2VudCIsIGRhdGEpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3suc2V0dGluZ3MudXNlckFnZW50LnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJidWZmZXIudGltZW91dCI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5idWZmZXJUaW1lb3V0LnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgImJ1ZmZlci50aW1lb3V0IiwgZGF0YSk7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5zZXR0aW5ncy5idWZmZXJUaW1lb3V0LnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJmZm1wZWcucGF0aCI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5mZm1wZWdQYXRoLnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgImZmbXBlZy5wYXRoIiwgZGF0YSk7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5zZXR0aW5ncy5mZm1wZWdQYXRoLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJmZm1wZWcub3B0aW9ucyI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5mZm1wZWdPcHRpb25zLnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgImZmbXBlZy5vcHRpb25zIiwgZGF0YSk7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5zZXR0aW5ncy5mZm1wZWdPcHRpb25zLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ2bGMucGF0aCI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy52bGNQYXRoLnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgInZsYy5wYXRoIiwgZGF0YSk7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5zZXR0aW5ncy52bGNQYXRoLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ2bGMub3B0aW9ucyI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy52bGNPcHRpb25zLnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgInZsYy5vcHRpb25zIiwgZGF0YSk7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5zZXR0aW5ncy52bGNPcHRpb25zLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAvLyBDaGVja2JveGVuDQogICAgICAgICAgICBjYXNlICJhdXRoZW50aWNhdGlvbi53ZWIiOg0KICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MuYXV0aGVudGljYXRpb25XRUIudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goc2V0dGluZ3NLZXkpOw0KICAgICAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImF1dGhlbnRpY2F0aW9uLnBtcyI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5hdXRoZW50aWNhdGlvblBNUy50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChzZXR0aW5nc0tleSk7DQogICAgICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGE7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiYXV0aGVudGljYXRpb24ubTN1IjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmF1dGhlbnRpY2F0aW9uTTNVLnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KHNldHRpbmdzS2V5KTsNCiAgICAgICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJhdXRoZW50aWNhdGlvbi54bWwiOg0KICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MuYXV0aGVudGljYXRpb25YTUwudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goc2V0dGluZ3NLZXkpOw0KICAgICAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImF1dGhlbnRpY2F0aW9uLmFwaSI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5hdXRoZW50aWNhdGlvbkFQSS50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChzZXR0aW5nc0tleSk7DQogICAgICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGE7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiZmlsZXMudXBkYXRlIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmZpbGVzVXBkYXRlLnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KHNldHRpbmdzS2V5KTsNCiAgICAgICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJjYWNoZS5pbWFnZXMiOg0KICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MuY2FjaGVJbWFnZXMudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goc2V0dGluZ3NLZXkpOw0KICAgICAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInhlcGcucmVwbGFjZS5taXNzaW5nLmltYWdlcyI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5yZXBsYWNlRW1wdHlJbWFnZXMudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goc2V0dGluZ3NLZXkpOw0KICAgICAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInh0ZXZlQXV0b1VwZGF0ZSI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy54dGV2ZUF1dG9VcGRhdGUudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goc2V0dGluZ3NLZXkpOw0KICAgICAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImFwaSI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5hcGkudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goc2V0dGluZ3NLZXkpOw0KICAgICAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIC8vIFNlbGVjdA0KICAgICAgICAgICAgY2FzZSAidHVuZXIiOg0KICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MudHVuZXIudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciB0ZXh0ID0gbmV3IEFycmF5KCk7DQogICAgICAgICAgICAgICAgdmFyIHZhbHVlcyA9IG5ldyBBcnJheSgpOw0KICAgICAgICAgICAgICAgIGZvciAodmFyIGkgPSAxOyBpIDw9IDEwMDsgaSsrKSB7DQogICAgICAgICAgICAgICAgICAgIHRleHQucHVzaChpKTsNCiAgICAgICAgICAgICAgICAgICAgdmFsdWVzLnB1c2goaSk7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIHZhciBzZWxlY3QgPSBjb250ZW50LmNyZWF0ZVNlbGVjdCh0ZXh0LCB2YWx1ZXMsIGRhdGEsIHNldHRpbmdzS2V5KTsNCiAgICAgICAgICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQoc2VsZWN0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImVwZ1NvdXJjZSI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5lcGdTb3VyY2UudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciB0ZXh0ID0gWyJQTVMiLCAiWEVQRyJdOw0KICAgICAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBbIlBNUyIsICJYRVBHIl07DQogICAgICAgICAgICAgICAgdmFyIHNlbGVjdCA9IGNvbnRlbnQuY3JlYXRlU2VsZWN0KHRleHQsIHZhbHVlcywgZGF0YSwgc2V0dGluZ3NLZXkpOw0KICAgICAgICAgICAgICAgIHNlbGVjdC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChzZWxlY3QpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiYmFja3VwLmtlZXAiOg0KICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MuYmFja3VwS2VlcC50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIHRleHQgPSBbIjUiLCAiMTAiLCAiMjAiLCAiMzAiLCAiNDAiLCAiNTAiXTsNCiAgICAgICAgICAgICAgICB2YXIgdmFsdWVzID0gWyI1IiwgIjEwIiwgIjIwIiwgIjMwIiwgIjQwIiwgIjUwIl07DQogICAgICAgICAgICAgICAgdmFyIHNlbGVjdCA9IGNvbnRlbnQuY3JlYXRlU2VsZWN0KHRleHQsIHZhbHVlcywgZGF0YSwgc2V0dGluZ3NLZXkpOw0KICAgICAgICAgICAgICAgIHNlbGVjdC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChzZWxlY3QpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiYnVmZmVyLnNpemUua2IiOg0KICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MuYnVmZmVyU2l6ZS50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIHRleHQgPSBbIjAuNSBNQiIsICIxIE1CIiwgIjIgTUIiLCAiMyBNQiIsICI0IE1CIiwgIjUgTUIiLCAiNiBNQiIsICI3IE1CIiwgIjggTUIiXTsNCiAgICAgICAgICAgICAgICB2YXIgdmFsdWVzID0gWyI1MTIiLCAiMTAyNCIsICIyMDQ4IiwgIjMwNzIiLCAiNDA5NiIsICI1MTIwIiwgIjYxNDQiLCAiNzE2OCIsICI4MTkyIl07DQogICAgICAgICAgICAgICAgdmFyIHNlbGVjdCA9IGNvbnRlbnQuY3JlYXRlU2VsZWN0KHRleHQsIHZhbHVlcywgZGF0YSwgc2V0dGluZ3NLZXkpOw0KICAgICAgICAgICAgICAgIHNlbGVjdC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChzZWxlY3QpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiYnVmZmVyIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLnN0cmVhbUJ1ZmZlcmluZy50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIHRleHQgPSBbInt7LnNldHRpbmdzLnN0cmVhbUJ1ZmZlcmluZy5pbmZvX2ZhbHNlfX0iLCAieFRlVmU6ICh7ey5zZXR0aW5ncy5zdHJlYW1CdWZmZXJpbmcuaW5mb194dGV2ZX19KSIsICJGRm1wZWc6ICh7ey5zZXR0aW5ncy5zdHJlYW1CdWZmZXJpbmcuaW5mb19mZm1wZWd9fSkiLCAiVkxDOiAoe3suc2V0dGluZ3Muc3RyZWFtQnVmZmVyaW5nLmluZm9fdmxjfX0pIl07DQogICAgICAgICAgICAgICAgdmFyIHZhbHVlcyA9IFsiLSIsICJ4dGV2ZSIsICJmZm1wZWciLCAidmxjIl07DQogICAgICAgICAgICAgICAgdmFyIHNlbGVjdCA9IGNvbnRlbnQuY3JlYXRlU2VsZWN0KHRleHQsIHZhbHVlcywgZGF0YSwgc2V0dGluZ3NLZXkpOw0KICAgICAgICAgICAgICAgIHNlbGVjdC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChzZWxlY3QpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAidWRweHkiOg0KICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MudWRweHkudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCAidWRweHkiLCBkYXRhKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnNldHRpbmdzLnVkcHh5LnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIH0NCiAgICAgICAgcmV0dXJuIHNldHRpbmc7DQogICAgfQ0KICAgIGNyZWF0ZURlc2NyaXB0aW9uKHNldHRpbmdzS2V5KSB7DQogICAgICAgIHZhciBkZXNjcmlwdGlvbiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlRSIik7DQogICAgICAgIHZhciB0ZXh0Ow0KICAgICAgICBzd2l0Y2ggKHNldHRpbmdzS2V5KSB7DQogICAgICAgICAgICBjYXNlICJhdXRoZW50aWNhdGlvbi53ZWIiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MuYXV0aGVudGljYXRpb25XRUIuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJhdXRoZW50aWNhdGlvbi5tM3UiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MuYXV0aGVudGljYXRpb25NM1UuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJhdXRoZW50aWNhdGlvbi5wbXMiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MuYXV0aGVudGljYXRpb25QTVMuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJhdXRoZW50aWNhdGlvbi54bWwiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MuYXV0aGVudGljYXRpb25YTUwuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJhdXRoZW50aWNhdGlvbi5hcGkiOg0KICAgICAgICAgICAgICAgIGlmIChTRVJWRVJbInNldHRpbmdzIl1bImF1dGhlbnRpY2F0aW9uLndlYiJdID09IHRydWUpIHsNCiAgICAgICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5hdXRoZW50aWNhdGlvbkFQSS5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ4dGV2ZUF1dG9VcGRhdGUiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MueHRldmVBdXRvVXBkYXRlLmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiYmFja3VwLmtlZXAiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MuYmFja3VwS2VlcC5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImJhY2t1cC5wYXRoIjoNCiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLmJhY2t1cFBhdGguZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ0ZW1wLnBhdGgiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MudGVtcFBhdGguZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJidWZmZXIiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3Muc3RyZWFtQnVmZmVyaW5nLmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiYnVmZmVyLnNpemUua2IiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MuYnVmZmVyU2l6ZS5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImJ1ZmZlci50aW1lb3V0IjoNCiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLmJ1ZmZlclRpbWVvdXQuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ1c2VyLmFnZW50IjoNCiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLnVzZXJBZ2VudC5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImZmbXBlZy5wYXRoIjoNCiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLmZmbXBlZ1BhdGguZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJmZm1wZWcub3B0aW9ucyI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5mZm1wZWdPcHRpb25zLmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAidmxjLnBhdGgiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MudmxjUGF0aC5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInZsYy5vcHRpb25zIjoNCiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLnZsY09wdGlvbnMuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJlcGdTb3VyY2UiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MuZXBnU291cmNlLmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAidHVuZXIiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MudHVuZXIuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ1cGRhdGUiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MudXBkYXRlLmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiYXBpIjoNCiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLmFwaS5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImZpbGVzLnVwZGF0ZSI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5maWxlc1VwZGF0ZS5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImNhY2hlLmltYWdlcyI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5jYWNoZUltYWdlcy5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInhlcGcucmVwbGFjZS5taXNzaW5nLmltYWdlcyI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5yZXBsYWNlRW1wdHlJbWFnZXMuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ1ZHB4eSI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy51ZHB4eS5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICAgICAgdGV4dCA9ICIiOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICB9DQogICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gIiI7DQogICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgdmFyIHByZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlBSRSIpOw0KICAgICAgICBwcmUuaW5uZXJIVE1MID0gdGV4dDsNCiAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChwcmUpOw0KICAgICAgICBkZXNjcmlwdGlvbi5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICBkZXNjcmlwdGlvbi5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgcmV0dXJuIGRlc2NyaXB0aW9uOw0KICAgIH0NCn0NCmNsYXNzIFNldHRpbmdzQ2F0ZWdvcnlJdGVtIGV4dGVuZHMgU2V0dGluZ3NDYXRlZ29yeSB7DQogICAgY29uc3RydWN0b3IoaGVhZGxpbmUsIHNldHRpbmdzS2V5cykgew0KICAgICAgICBzdXBlcigpOw0KICAgICAgICB0aGlzLmhlYWRsaW5lID0gaGVhZGxpbmU7DQogICAgICAgIHRoaXMuc2V0dGluZ3NLZXlzID0gc2V0dGluZ3NLZXlzOw0KICAgIH0NCiAgICBjcmVhdGVDYXRlZ29yeSgpIHsNCiAgICAgICAgdmFyIGhlYWRsaW5lID0gdGhpcy5jcmVhdGVDYXRlZ29yeUhlYWRsaW5lKHRoaXMuaGVhZGxpbmUpOw0KICAgICAgICB2YXIgc2V0dGluZ3NLZXlzID0gdGhpcy5zZXR0aW5nc0tleXM7DQogICAgICAgIHZhciBkb2MgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCh0aGlzLkRvY3VtZW50SUQpOw0KICAgICAgICBkb2MuYXBwZW5kQ2hpbGQoaGVhZGxpbmUpOw0KICAgICAgICAvLyBUYWJlbGxlIGbDvHIgZGllIEthdGVnb3JpZSBlcnN0ZWxsZW4NCiAgICAgICAgdmFyIHRhYmxlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEFCTEUiKTsNCiAgICAgICAgdmFyIGtleXMgPSBzZXR0aW5nc0tleXMuc3BsaXQoIiwiKTsNCiAgICAgICAga2V5cy5mb3JFYWNoKHNldHRpbmdzS2V5ID0+IHsNCiAgICAgICAgICAgIHN3aXRjaCAoc2V0dGluZ3NLZXkpIHsNCiAgICAgICAgICAgICAgICBjYXNlICJhdXRoZW50aWNhdGlvbi5wbXMiOg0KICAgICAgICAgICAgICAgIGNhc2UgImF1dGhlbnRpY2F0aW9uLm0zdSI6DQogICAgICAgICAgICAgICAgY2FzZSAiYXV0aGVudGljYXRpb24ueG1sIjoNCiAgICAgICAgICAgICAgICBjYXNlICJhdXRoZW50aWNhdGlvbi5hcGkiOg0KICAgICAgICAgICAgICAgICAgICBpZiAoU0VSVkVSWyJzZXR0aW5ncyJdWyJhdXRoZW50aWNhdGlvbi53ZWIiXSA9PSBmYWxzZSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBkZWZhdWx0Og0KICAgICAgICAgICAgICAgICAgICB2YXIgaXRlbSA9IHRoaXMuY3JlYXRlU2V0dGluZ3Moc2V0dGluZ3NLZXkpOw0KICAgICAgICAgICAgICAgICAgICB2YXIgZGVzY3JpcHRpb24gPSB0aGlzLmNyZWF0ZURlc2NyaXB0aW9uKHNldHRpbmdzS2V5KTsNCiAgICAgICAgICAgICAgICAgICAgdGFibGUuYXBwZW5kQ2hpbGQoaXRlbSk7DQogICAgICAgICAgICAgICAgICAgIHRhYmxlLmFwcGVuZENoaWxkKGRlc2NyaXB0aW9uKTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICB9DQogICAgICAgIH0pOw0KICAgICAgICBkb2MuYXBwZW5kQ2hpbGQodGFibGUpOw0KICAgICAgICBkb2MuYXBwZW5kQ2hpbGQodGhpcy5jcmVhdGVIUigpKTsNCiAgICB9DQp9DQpmdW5jdGlvbiBzaG93U2V0dGluZ3MoKSB7DQogICAgY29uc29sZS5sb2coIlNFVFRJTkdTIik7DQogICAgZm9yIChsZXQgaSA9IDA7IGkgPCBzZXR0aW5nc0NhdGVnb3J5Lmxlbmd0aDsgaSsrKSB7DQogICAgICAgIHNldHRpbmdzQ2F0ZWdvcnlbaV0uY3JlYXRlQ2F0ZWdvcnkoKTsNCiAgICB9DQp9DQpmdW5jdGlvbiBzYXZlU2V0dGluZ3MoKSB7DQogICAgY29uc29sZS5sb2coIlNhdmUgU2V0dGluZ3MiKTsNCiAgICB2YXIgY21kID0gInNhdmVTZXR0aW5ncyI7DQogICAgdmFyIGRpdiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb250ZW50X3NldHRpbmdzIik7DQogICAgdmFyIHNldHRpbmdzID0gZGl2LmdldEVsZW1lbnRzQnlDbGFzc05hbWUoImNoYW5nZWQiKTsNCiAgICB2YXIgbmV3U2V0dGluZ3MgPSBuZXcgT2JqZWN0KCk7DQogICAgZm9yIChsZXQgaSA9IDA7IGkgPCBzZXR0aW5ncy5sZW5ndGg7IGkrKykgew0KICAgICAgICB2YXIgbmFtZTsNCiAgICAgICAgdmFyIHZhbHVlOw0KICAgICAgICBzd2l0Y2ggKHNldHRpbmdzW2ldLnRhZ05hbWUpIHsNCiAgICAgICAgICAgIGNhc2UgIklOUFVUIjoNCiAgICAgICAgICAgICAgICBzd2l0Y2ggKHNldHRpbmdzW2ldLnR5cGUpIHsNCiAgICAgICAgICAgICAgICAgICAgY2FzZSAiY2hlY2tib3giOg0KICAgICAgICAgICAgICAgICAgICAgICAgbmFtZSA9IHNldHRpbmdzW2ldLm5hbWU7DQogICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IHNldHRpbmdzW2ldLmNoZWNrZWQ7DQogICAgICAgICAgICAgICAgICAgICAgICBuZXdTZXR0aW5nc1tuYW1lXSA9IHZhbHVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgICAgIGNhc2UgInRleHQiOg0KICAgICAgICAgICAgICAgICAgICAgICAgbmFtZSA9IHNldHRpbmdzW2ldLm5hbWU7DQogICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IHNldHRpbmdzW2ldLnZhbHVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgc3dpdGNoIChuYW1lKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAidXBkYXRlIjoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSB2YWx1ZS5zcGxpdCgiLCIpOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IHZhbHVlLmZpbHRlcihmdW5jdGlvbiAoZSkgeyByZXR1cm4gZTsgfSk7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgImJ1ZmZlci50aW1lb3V0IjoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSBwYXJzZUZsb2F0KHZhbHVlKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgIG5ld1NldHRpbmdzW25hbWVdID0gdmFsdWU7DQogICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJTRUxFQ1QiOg0KICAgICAgICAgICAgICAgIG5hbWUgPSBzZXR0aW5nc1tpXS5uYW1lOw0KICAgICAgICAgICAgICAgIHZhbHVlID0gc2V0dGluZ3NbaV0udmFsdWU7DQogICAgICAgICAgICAgICAgLy8gV2VubiBkZXIgV2VydCBlaW5lIFphaGwgaXN0LCB3aXJkIGRpZXNlciBhbHMgWmFobCBnZXNwZWljaGVydA0KICAgICAgICAgICAgICAgIGlmIChpc05hTih2YWx1ZSkpIHsNCiAgICAgICAgICAgICAgICAgICAgbmV3U2V0dGluZ3NbbmFtZV0gPSB2YWx1ZTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgZWxzZSB7DQogICAgICAgICAgICAgICAgICAgIG5ld1NldHRpbmdzW25hbWVdID0gcGFyc2VJbnQodmFsdWUpOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgfQ0KICAgIH0NCiAgICB2YXIgZGF0YSA9IG5ldyBPYmplY3QoKTsNCiAgICBkYXRhWyJzZXR0aW5ncyJdID0gbmV3U2V0dGluZ3M7DQogICAgdmFyIHNlcnZlciA9IG5ldyBTZXJ2ZXIoY21kKTsNCiAgICBzZXJ2ZXIucmVxdWVzdChkYXRhKTsNCn0NCg==" - webUI["html/img/users.png"] = "iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAAAXNSR0IArs4c6QAAAAlwSFlzAAAsSwAALEsBpT2WqQAABCRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IlhNUCBDb3JlIDUuNC4wIj4KICAgPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIgogICAgICAgICAgICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgICAgICAgICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyI+CiAgICAgICAgIDx0aWZmOlJlc29sdXRpb25Vbml0PjI8L3RpZmY6UmVzb2x1dGlvblVuaXQ+CiAgICAgICAgIDx0aWZmOkNvbXByZXNzaW9uPjU8L3RpZmY6Q29tcHJlc3Npb24+CiAgICAgICAgIDx0aWZmOlhSZXNvbHV0aW9uPjI4ODwvdGlmZjpYUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6T3JpZW50YXRpb24+MTwvdGlmZjpPcmllbnRhdGlvbj4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+Mjg4PC90aWZmOllSZXNvbHV0aW9uPgogICAgICAgICA8ZXhpZjpQaXhlbFhEaW1lbnNpb24+NTA8L2V4aWY6UGl4ZWxYRGltZW5zaW9uPgogICAgICAgICA8ZXhpZjpDb2xvclNwYWNlPjE8L2V4aWY6Q29sb3JTcGFjZT4KICAgICAgICAgPGV4aWY6UGl4ZWxZRGltZW5zaW9uPjUwPC9leGlmOlBpeGVsWURpbWVuc2lvbj4KICAgICAgICAgPGRjOnN1YmplY3Q+CiAgICAgICAgICAgIDxyZGY6QmFnLz4KICAgICAgICAgPC9kYzpzdWJqZWN0PgogICAgICAgICA8eG1wOk1vZGlmeURhdGU+MjAxOC0wOC0zMFQxNzowODozODwveG1wOk1vZGlmeURhdGU+CiAgICAgICAgIDx4bXA6Q3JlYXRvclRvb2w+UGl4ZWxtYXRvciAzLjM8L3htcDpDcmVhdG9yVG9vbD4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgIDwvcmRmOlJERj4KPC94OnhtcG1ldGE+CjU01MMAAANJSURBVGgF1ZnLaxNRFMYz2rpoFbW+SCsihaJQRMT6rPhAXAq6c+HChSguRFd1oRtd+A/oWhQ3oiiWFB91UbqRqlXXgoIIQhFbQTTQao2/GzLDZEjIPefO7SQHPjJz55zzfd/MZCa5N8h5ilKptJvWp8FekAed4Bv4Cj6Dh2A4CIJZPpszMHEV2MQ0SZdB0DROENMHjoEzQBoFCpZnbgYR58E/qfpE/kv2F2dmBvJ94G9ClHb3SiZGUBuASa3qGnVzjG3RmFmkKYrVHGB7e2zfdbOdBhc1TVyNnNSQNqg5wVURf/FdjRxpIEpzuIOio9JCtRHO2hrINkgJLfPFt6vaCII2WYrSpPVJi1RGuBrmTbxeSibIX5j3CUauAfOo9BXzNH4nMJ5TXREI1gHzqPQVRtc2zCyxJdAaGbclcMj7zi/jOdt6rZFhCH7akijznknqVEY4U78heSAhUuTekNSojFQIChIiYe57TtZrSY2LkecQzUjIBLljglz3VJ4qg+AXSDNGabbWXZ2wA6Qjabqg136hhHK6y60V8o2EGyl8/qHHpKZPGkYeQzyvIa9RM86XvFhjvOGQsxGIp2B50ZDJLuG2XZqnLO5rM3viGh9o0OZJon1bRLxxdHLcns1jJiYOAu2U0D2P0uStMXJdcVU+UdMlZ/NYgaA28ERg5ge5/R4l6VsjrANMWJiZJWeXnqm60vnxW90ul6u8ByaS4zX2i+S+qjGuGkrdSEWFzT1vlhlSC19Gui0UtnNriSfi6vX1ZWRjPcLEeGrzYqkb4SyvQGxvQnC93cF6BzIfx8gpYBsfSdycuei4AAR1ggugCCRh1lbugIF4vwXbhtisjfSDc+ARSOOf4lv6mNWv1VIj1ouQNF9K851gDzArtWbV1uYxS5o4zB+sp+AuKPC+cVv5RXwPuATMmUpreY1Wopgh+ybYKj4dFHWB+8DMwTZTjCHmsJUhEgfAF9DMcQtx9V8dHMyDqWZ2ENM2FL8yVV92kkY56GM5Lc6Z1vY0jbp5EJQnuqPLg4kdLWTCnIxVIJoDi4wweNYcbbGIfuLEjRxqMRNGbvTvsmyE22oZg70taKQn1BxekXw40GKfK0O9oZHsJ8ZCRbLPaI3xP7YzeQoHxWckAAAAAElFTkSuQmCC" - webUI["html/js/configuration_ts.js"] = "Y2xhc3MgV2l6YXJkQ2F0ZWdvcnkgew0KICAgIGNvbnN0cnVjdG9yKCkgew0KICAgICAgICB0aGlzLkRvY3VtZW50SUQgPSAiY29udGVudCI7DQogICAgfQ0KICAgIGNyZWF0ZUNhdGVnb3J5SGVhZGxpbmUodmFsdWUpIHsNCiAgICAgICAgdmFyIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJINCIpOw0KICAgICAgICBlbGVtZW50LmlubmVySFRNTCA9IHZhbHVlOw0KICAgICAgICByZXR1cm4gZWxlbWVudDsNCiAgICB9DQp9DQpjbGFzcyBXaXphcmRJdGVtIGV4dGVuZHMgV2l6YXJkQ2F0ZWdvcnkgew0KICAgIGNvbnN0cnVjdG9yKGtleSwgaGVhZGxpbmUpIHsNCiAgICAgICAgc3VwZXIoKTsNCiAgICAgICAgdGhpcy5oZWFkbGluZSA9IGhlYWRsaW5lOw0KICAgICAgICB0aGlzLmtleSA9IGtleTsNCiAgICB9DQogICAgY3JlYXRlV2l6YXJkKCkgew0KICAgICAgICB2YXIgaGVhZGxpbmUgPSB0aGlzLmNyZWF0ZUNhdGVnb3J5SGVhZGxpbmUodGhpcy5oZWFkbGluZSk7DQogICAgICAgIHZhciBrZXkgPSB0aGlzLmtleTsNCiAgICAgICAgdmFyIGNvbnRlbnQgPSBuZXcgUG9wdXBDb250ZW50KCk7DQogICAgICAgIHZhciBkZXNjcmlwdGlvbjsNCiAgICAgICAgdmFyIGRvYyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHRoaXMuRG9jdW1lbnRJRCk7DQogICAgICAgIGRvYy5pbm5lckhUTUwgPSAiIjsNCiAgICAgICAgZG9jLmFwcGVuZENoaWxkKGhlYWRsaW5lKTsNCiAgICAgICAgc3dpdGNoIChrZXkpIHsNCiAgICAgICAgICAgIGNhc2UgInR1bmVyIjoNCiAgICAgICAgICAgICAgICB2YXIgdGV4dCA9IG5ldyBBcnJheSgpOw0KICAgICAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBuZXcgQXJyYXkoKTsNCiAgICAgICAgICAgICAgICBmb3IgKHZhciBpID0gMTsgaSA8PSAxMDA7IGkrKykgew0KICAgICAgICAgICAgICAgICAgICB0ZXh0LnB1c2goaSk7DQogICAgICAgICAgICAgICAgICAgIHZhbHVlcy5wdXNoKGkpOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCAiMSIsIGtleSk7DQogICAgICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgiY2xhc3MiLCAid2l6YXJkIik7DQogICAgICAgICAgICAgICAgc2VsZWN0LmlkID0ga2V5Ow0KICAgICAgICAgICAgICAgIGRvYy5hcHBlbmRDaGlsZChzZWxlY3QpOw0KICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uID0gInt7LndpemFyZC50dW5lci5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImVwZ1NvdXJjZSI6DQogICAgICAgICAgICAgICAgdmFyIHRleHQgPSBbIlBNUyIsICJYRVBHIl07DQogICAgICAgICAgICAgICAgdmFyIHZhbHVlcyA9IFsiUE1TIiwgIlhFUEciXTsNCiAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCAiWEVQRyIsIGtleSk7DQogICAgICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgiY2xhc3MiLCAid2l6YXJkIik7DQogICAgICAgICAgICAgICAgc2VsZWN0LmlkID0ga2V5Ow0KICAgICAgICAgICAgICAgIGRvYy5hcHBlbmRDaGlsZChzZWxlY3QpOw0KICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uID0gInt7LndpemFyZC5lcGdTb3VyY2UuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJtM3UiOg0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBrZXksICIiKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LndpemFyZC5tM3UucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgiY2xhc3MiLCAid2l6YXJkIik7DQogICAgICAgICAgICAgICAgaW5wdXQuaWQgPSBrZXk7DQogICAgICAgICAgICAgICAgZG9jLmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbiA9ICJ7ey53aXphcmQubTN1LmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAieG1sdHYiOg0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBrZXksICIiKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LndpemFyZC54bWx0di5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJjbGFzcyIsICJ3aXphcmQiKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5pZCA9IGtleTsNCiAgICAgICAgICAgICAgICBkb2MuYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uID0gInt7LndpemFyZC54bWx0di5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICAgICAgY29uc29sZS5sb2coa2V5KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgfQ0KICAgICAgICB2YXIgcHJlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiUFJFIik7DQogICAgICAgIHByZS5pbm5lckhUTUwgPSBkZXNjcmlwdGlvbjsNCiAgICAgICAgZG9jLmFwcGVuZENoaWxkKHByZSk7DQogICAgICAgIGNvbnNvbGUubG9nKGhlYWRsaW5lLCBrZXkpOw0KICAgIH0NCn0NCmZ1bmN0aW9uIHJlYWR5Rm9yQ29uZmlndXJhdGlvbih3aXphcmQpIHsNCiAgICB2YXIgc2VydmVyID0gbmV3IFNlcnZlcigiZ2V0U2VydmVyQ29uZmlnIik7DQogICAgc2VydmVyLnJlcXVlc3QobmV3IE9iamVjdCgpKTsNCiAgICBzaG93RWxlbWVudCgibG9hZGluZyIsIGZhbHNlKTsNCiAgICBjb25maWd1cmF0aW9uV2l6YXJkW3dpemFyZF0uY3JlYXRlV2l6YXJkKCk7DQp9DQpmdW5jdGlvbiBzYXZlV2l6YXJkKCkgew0KICAgIHZhciBjbWQgPSAic2F2ZVdpemFyZCI7DQogICAgdmFyIGRpdiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb250ZW50Iik7DQogICAgdmFyIGNvbmZpZyA9IGRpdi5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCJ3aXphcmQiKTsNCiAgICB2YXIgd2l6YXJkID0gbmV3IE9iamVjdCgpOw0KICAgIGZvciAodmFyIGkgPSAwOyBpIDwgY29uZmlnLmxlbmd0aDsgaSsrKSB7DQogICAgICAgIHZhciBuYW1lOw0KICAgICAgICB2YXIgdmFsdWU7DQogICAgICAgIHN3aXRjaCAoY29uZmlnW2ldLnRhZ05hbWUpIHsNCiAgICAgICAgICAgIGNhc2UgIlNFTEVDVCI6DQogICAgICAgICAgICAgICAgbmFtZSA9IGNvbmZpZ1tpXS5uYW1lOw0KICAgICAgICAgICAgICAgIHZhbHVlID0gY29uZmlnW2ldLnZhbHVlOw0KICAgICAgICAgICAgICAgIC8vIFdlbm4gZGVyIFdlcnQgZWluZSBaYWhsIGlzdCwgd2lyZCBkaWVzZXIgYWxzIFphaGwgZ2VzcGVpY2hlcnQNCiAgICAgICAgICAgICAgICBpZiAoaXNOYU4odmFsdWUpKSB7DQogICAgICAgICAgICAgICAgICAgIHdpemFyZFtuYW1lXSA9IHZhbHVlOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICAgICAgd2l6YXJkW25hbWVdID0gcGFyc2VJbnQodmFsdWUpOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgIklOUFVUIjoNCiAgICAgICAgICAgICAgICBzd2l0Y2ggKGNvbmZpZ1tpXS50eXBlKSB7DQogICAgICAgICAgICAgICAgICAgIGNhc2UgInRleHQiOg0KICAgICAgICAgICAgICAgICAgICAgICAgbmFtZSA9IGNvbmZpZ1tpXS5uYW1lOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSBjb25maWdbaV0udmFsdWU7DQogICAgICAgICAgICAgICAgICAgICAgICBpZiAodmFsdWUubGVuZ3RoID09IDApIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgbXNnID0gbmFtZS50b1VwcGVyQ2FzZSgpICsgIjogIiArICJ7ey5hbGVydC5taXNzaW5nSW5wdXR9fSI7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgYWxlcnQobXNnKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICB3aXphcmRbbmFtZV0gPSB2YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICAgICAgLy8gY29kZS4uLg0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICB9DQogICAgfQ0KICAgIHZhciBkYXRhID0gbmV3IE9iamVjdCgpOw0KICAgIGRhdGFbIndpemFyZCJdID0gd2l6YXJkOw0KICAgIHZhciBzZXJ2ZXIgPSBuZXcgU2VydmVyKGNtZCk7DQogICAgc2VydmVyLnJlcXVlc3QoZGF0YSk7DQogICAgY29uc29sZS5sb2coZGF0YSk7DQp9DQovLyBXaXphcmQNCnZhciBjb25maWd1cmF0aW9uV2l6YXJkID0gbmV3IEFycmF5KCk7DQpjb25maWd1cmF0aW9uV2l6YXJkLnB1c2gobmV3IFdpemFyZEl0ZW0oInR1bmVyIiwgInt7LndpemFyZC50dW5lci50aXRsZX19IikpOw0KY29uZmlndXJhdGlvbldpemFyZC5wdXNoKG5ldyBXaXphcmRJdGVtKCJlcGdTb3VyY2UiLCAie3sud2l6YXJkLmVwZ1NvdXJjZS50aXRsZX19IikpOw0KY29uZmlndXJhdGlvbldpemFyZC5wdXNoKG5ldyBXaXphcmRJdGVtKCJtM3UiLCAie3sud2l6YXJkLm0zdS50aXRsZX19IikpOw0KY29uZmlndXJhdGlvbldpemFyZC5wdXNoKG5ldyBXaXphcmRJdGVtKCJ4bWx0diIsICJ7ey53aXphcmQueG1sdHYudGl0bGV9fSIpKTsNCg==" webUI["html/js/data.js"] = "ZnVuY3Rpb24gc2hvd0NvbmZpZyhvYmopIHsNCiAgY29uZmlnID0gb2JqOw0KICAvL3NldE1lbnVJdGVtKCk7DQogIGNyZWF0ZU1lbnUoKTsNCiAgLy9kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicGFnZSIpLmNsYXNzTmFtZSA9ICIiOw0KfQ0KDQpzaG93TXlTdHJlYW1zDQoNCmZ1bmN0aW9uIHNob3dNeVN0cmVhbXMoYWxsU3RyZWFtc09iaikgew0KDQogIHZhciBzdHJlYW1UeXBlS2V5cyA9IGdldE9iaktleXMoYWxsU3RyZWFtc09iaikNCg0KICBmb3IgKHZhciBzID0gMDsgcyA8IHN0cmVhbVR5cGVLZXlzLmxlbmd0aDsgcysrKSB7DQogICAgdmFyIHN0cmVhbVR5cGUgPSBzdHJlYW1UeXBlS2V5c1tzXTsNCiAgICB2YXIgb2JqID0gbmV3IE9iamVjdCgpOw0KICAgIG9iaiA9IGFsbFN0cmVhbXNPYmpbc3RyZWFtVHlwZV07DQogICAgc3dpdGNoKHN0cmVhbVR5cGUpIHsNCiAgICAgIGNhc2UgImFjdGl2ZVN0cmVhbXMiOiBhY3RpdmVTdHJlYW1zICAgICA9IG9iajsgYnJlYWs7DQogICAgfQ0KDQogICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoc3RyZWFtVHlwZSkuaW5uZXJIVE1MID0gIiI7DQoNCiAgICB2YXIgc3RyZWFtc09iaiAgICA9IG5ldyBPYmplY3QoKTsNCiAgICB2YXIgc3RyZWFtc05hbWVzICA9IG5ldyBBcnJheSgpOw0KICAgIA0KICAgIHZhciBrZXlzID0gZ2V0T2JqS2V5cyhvYmopDQogICAgDQogICAgLy8gQ3JlYXRlIE9iamVjdCAoc3RyZWFtc09iaikgZm9yIHRoZSBzdHJlYW1zIGFuZCBzb3J0IGJ5IG5hbWUgKHN0cmVhbXNOYW1lcykNCiAgICBmb3IgKHZhciBpID0gMDsgaSA8IGtleXMubGVuZ3RoOyBpKyspIHsNCiAgICAgIHZhciBuYW1lICAgID0gb2JqW2tleXNbaV1dWyJuYW1lIl07DQogICAgICB2YXIgdG1wID0gbmV3IE9iamVjdCgpOw0KICAgICAgdmFyIHN0cmVhbUtleSA9IGdldE9iaktleXMob2JqW2tleXNbaV1dKTsNCg0KICAgICAgZm9yICh2YXIgaiA9IDA7IGogPCBzdHJlYW1LZXkubGVuZ3RoOyBqKyspIHsNCiAgICAgICAgdG1wW3N0cmVhbUtleVtqXV0gPSBvYmpba2V5c1tpXV1bc3RyZWFtS2V5W2pdXTsgICAgICANCiAgICAgIH0NCg0KICAgICAgc3RyZWFtc09ialtuYW1lXSA9IHRtcDsNCiAgICAgIHN0cmVhbXNOYW1lcy5wdXNoKG5hbWUpDQogICAgfQ0KDQogICAgc3RyZWFtc05hbWVzLnNvcnQoKTsNCiAgICANCiAgICAvLyBDcmVhdGUgVGFibGUgZm9yIGFjdGl2ZVN0cmVhbXMNCiAgICB2YXIgdGFibGUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChzdHJlYW1UeXBlKTsNCg0KICAgIGZvciAodmFyIGkgPSAwOyBpIDwgc3RyZWFtc05hbWVzLmxlbmd0aDsgaSsrKSB7DQogICAgICB2YXIgbmV3RW50cnkgPSBuZXcgT2JqZWN0KCk7DQogICAgICBuZXdFbnRyeVsiX2VsZW1lbnQiXSA9ICJUUiI7DQogICAgICB0YWJsZS5hcHBlbmRDaGlsZChjcmVhdGVFbGVtZW50KG5ld0VudHJ5KSk7DQogICAgICB2YXIgbGluZSA9IHRhYmxlLmxhc3RDaGlsZDsNCg0KICAgICAgdmFyIHRtcCA9IHN0cmVhbXNPYmpbc3RyZWFtc05hbWVzW2ldXQ0KICAgICAgdmFyIGtleXMgPSBnZXRPYmpLZXlzKHRtcCkNCg0KICAgICAgdmFyIG5ld0tleSA9IG5ldyBPYmplY3QoKQ0KICAgICAgbmV3S2V5WyJfZWxlbWVudCJdICA9ICJURCI7DQogICAgICAvL25ld0tleVsiX3RleHQiXSAgICAgPSBzdHJlYW1zTmFtZXNbaV07DQogICAgICBzd2l0Y2goc3RyZWFtVHlwZSkgew0KICAgICAgICBjYXNlICJhY3RpdmVTdHJlYW1zIjogbmV3S2V5WyJfdGV4dCJdICAgICA9ICJDaGFubmVsICgrKToiOyBicmVhazsNCiAgICAgICAgY2FzZSAiaW5hY3RpdmVTdHJlYW1zIjogbmV3S2V5WyJfdGV4dCJdICAgPSAiQ2hhbm5lbCAoLSk6IjsgYnJlYWs7DQogICAgICB9DQogICAgICANCiAgICAgIG5ld0tleVsiY2xhc3MiXSAgICAgPSAidGRLZXkiOw0KICAgICAgY29uc29sZS5sb2coKTsNCg0KDQogICAgICB2YXIgbmV3VmFsID0gbmV3IE9iamVjdCgpDQogICAgICBuZXdWYWxbIl9lbGVtZW50Il0gID0gIlREIjsNCiAgICAgIG5ld1ZhbFsiX3RleHQiXSAgICAgPSBzdHJlYW1zTmFtZXNbaV07DQogICAgICBuZXdWYWxbImNsYXNzIl0gICAgID0gInRkVmFsIjsNCiAgICAgIC8vbmV3VmFsWyJfdGV4dCJdICAgICA9IHZhbHVlOw0KICAgICAgDQogICAgICBsaW5lLmFwcGVuZENoaWxkKGNyZWF0ZUVsZW1lbnQobmV3S2V5KSk7DQogICAgICBsaW5lLmFwcGVuZENoaWxkKGNyZWF0ZUVsZW1lbnQobmV3VmFsKSk7DQogICAgICANCiAgICB9DQoNCiAgfQ0KDQogIHJldHVybg0KfQ0KDQpmdW5jdGlvbiBzaG93QWN0aXZlU3RyZWFtcyhvYmopIHsNCiAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImFjdGl2ZVN0cmVhbXMiKS5pbm5lckhUTUwgPSAiIjsNCiAgYWN0aXZlU3RyZWFtcyAgICAgPSBvYmo7DQogIHZhciBzdHJlYW1zT2JqICAgID0gbmV3IE9iamVjdCgpOw0KICB2YXIgc3RyZWFtc05hbWVzICA9IG5ldyBBcnJheSgpOw0KICANCiAgdmFyIGtleXMgPSBnZXRPYmpLZXlzKG9iaikNCiAgDQogIC8vIENyZWF0ZSBPYmplY3QgKHN0cmVhbXNPYmopIGZvciB0aGUgc3RyZWFtcyBhbmQgc29ydCBieSBuYW1lIChzdHJlYW1zTmFtZXMpDQogIGZvciAodmFyIGkgPSAwOyBpIDwga2V5cy5sZW5ndGg7IGkrKykgew0KICAgIHZhciBuYW1lICAgID0gb2JqW2tleXNbaV1dWyJuYW1lIl07DQogICAgdmFyIHRtcCA9IG5ldyBPYmplY3QoKTsNCiAgICB2YXIgc3RyZWFtS2V5ID0gZ2V0T2JqS2V5cyhvYmpba2V5c1tpXV0pOw0KDQogICAgZm9yICh2YXIgaiA9IDA7IGogPCBzdHJlYW1LZXkubGVuZ3RoOyBqKyspIHsNCiAgICAgIHRtcFtzdHJlYW1LZXlbal1dID0gb2JqW2tleXNbaV1dW3N0cmVhbUtleVtqXV07ICAgICAgDQogICAgfQ0KDQogICAgc3RyZWFtc09ialtuYW1lXSA9IHRtcDsNCiAgICBzdHJlYW1zTmFtZXMucHVzaChuYW1lKQ0KICB9DQoNCiAgc3RyZWFtc05hbWVzLnNvcnQoKTsNCiAgDQogIC8vIENyZWF0ZSBUYWJsZSBmb3IgYWN0aXZlU3RyZWFtcw0KICB2YXIgdGFibGUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYWN0aXZlU3RyZWFtcyIpOw0KDQogIGZvciAodmFyIGkgPSAwOyBpIDwgc3RyZWFtc05hbWVzLmxlbmd0aDsgaSsrKSB7DQogICAgdmFyIG5ld0VudHJ5ID0gbmV3IE9iamVjdCgpOw0KICAgIG5ld0VudHJ5WyJfZWxlbWVudCJdID0gIlRSIjsNCiAgICB0YWJsZS5hcHBlbmRDaGlsZChjcmVhdGVFbGVtZW50KG5ld0VudHJ5KSk7DQogICAgdmFyIGxpbmUgPSB0YWJsZS5sYXN0Q2hpbGQ7DQoNCiAgICB2YXIgdG1wID0gc3RyZWFtc09ialtzdHJlYW1zTmFtZXNbaV1dDQogICAgdmFyIGtleXMgPSBnZXRPYmpLZXlzKHRtcCkNCg0KICAgIHZhciBuZXdLZXkgPSBuZXcgT2JqZWN0KCkNCiAgICBuZXdLZXlbIl9lbGVtZW50Il0gID0gIlREIjsNCiAgICAvL25ld0tleVsiX3RleHQiXSAgICAgPSBzdHJlYW1zTmFtZXNbaV07DQogICAgbmV3S2V5WyJfdGV4dCJdICAgICA9ICJDaGFubmVsOiI7DQogICAgbmV3S2V5WyJjbGFzcyJdICAgICA9ICJ0ZEtleSI7DQogICAgY29uc29sZS5sb2coKTsNCg0KDQogICAgdmFyIG5ld1ZhbCA9IG5ldyBPYmplY3QoKQ0KICAgIG5ld1ZhbFsiX2VsZW1lbnQiXSAgPSAiVEQiOw0KICAgIG5ld1ZhbFsiX3RleHQiXSAgICAgPSBzdHJlYW1zTmFtZXNbaV07DQogICAgbmV3VmFsWyJjbGFzcyJdICAgICA9ICJ0ZFZhbCI7DQogICAgLy9uZXdWYWxbIl90ZXh0Il0gICAgID0gdmFsdWU7DQogICAgDQogICAgbGluZS5hcHBlbmRDaGlsZChjcmVhdGVFbGVtZW50KG5ld0tleSkpOw0KICAgIGxpbmUuYXBwZW5kQ2hpbGQoY3JlYXRlRWxlbWVudChuZXdWYWwpKTsNCiAgICANCiAgfQ0KDQp9DQoNCmZ1bmN0aW9uIHBhcnNlTG9ncyhvYmopIHsNCiAgbG9nID0gb2JqDQogIHZhciBrZXlzID0gZ2V0T2JqS2V5cyhvYmopDQoNCiAgdmFyIG1zZ1R5cGU7DQogIGZvciAodmFyIGkgPSAwOyBpIDwga2V5cy5sZW5ndGg7IGkrKykgew0KICAgIHN3aXRjaChrZXlzW2ldKSB7DQogICAgICBjYXNlICJ3YXJuaW5ncyI6ICBtc2dUeXBlID0gIndhcm5pbmdNc2ciOyBicmVhazsNCiAgICAgIGNhc2UgImVycm9ycyI6ICAgIG1zZ1R5cGUgPSAiZXJyb3JNc2ciOyBicmVhazsNCiAgICB9DQoNCiAgICBzd2l0Y2gob2JqW2tleXNbaV1dKSB7DQogICAgICBjYXNlIDA6IG1zZ1R5cGUgPSAidGRWYWwiOyBicmVhazsNCiAgICAgIGRlZmF1bHQ6IGJyZWFrOw0KICAgIH0NCg0KICAgIGlmKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGtleXNbaV0pKXsNCiAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGtleXNbaV0pLmNsYXNzTmFtZSA9IG1zZ1R5cGU7DQogICAgfQ0KICAgIA0KICAgIA0KICB9DQogIHJldHVybg0KfQ0KDQoNCmZ1bmN0aW9uIGNhbmNlbERhdGEoZWxlbWVudCkgew0KICBjcmVhdGVNZW51KCk7DQp9DQoNCmZ1bmN0aW9uIHNhdmVEYXRhKGVsZW1lbnQpIHsNCiAgdmFyIGRhdGEgPSBuZXcgT2JqZWN0KCk7DQogIHZhciBkaXYgPSBlbGVtZW50LnBhcmVudE5vZGUucGFyZW50Tm9kZTsNCiAgdmFyIGlucHV0cyA9IGRpdi5nZXRFbGVtZW50c0J5VGFnTmFtZSgiSU5QVVQiKTsNCiAgDQogIHZhciBjb25maWdLZXkgPSBkaXYuZ2V0QXR0cmlidXRlKCJkYXRhLWNvbmZpZ2tleSIpOw0KICB2YXIgbWVudVR5cGUgPSBkaXYuZ2V0QXR0cmlidXRlKCJkYXRhLW1lbnV0eXBlIik7DQogIHZhciB2YWx1ZTsNCiAgdmFyIHZhbHVlQXJyID0gbmV3IEFycmF5KCk7DQogIA0KICBmb3IgKHZhciBpID0gMDsgaSA8IGlucHV0cy5sZW5ndGg7IGkrKykgew0KICAgIGlmIChpbnB1dHNbaV0udHlwZSA9PSAidGV4dCIgJiYgaW5wdXRzW2ldLnZhbHVlICE9IHVuZGVmaW5lZCAmJiBpbnB1dHNbaV0udmFsdWUgIT0gIiIgKSB7DQogICAgICBjb25zb2xlLmxvZyhpbnB1dHNbaV0udmFsdWUsIG1lbnVUeXBlKQ0KICAgICAgc3dpdGNoKG1lbnVUeXBlKSB7DQogICAgICAgIGNhc2UgImlucHV0QXJyYXkiOiB2YWx1ZUFyci5wdXNoKGlucHV0c1tpXS52YWx1ZSk7IGJyZWFrOw0KICAgICAgICBjYXNlICJzaW5nbGVJbnB1dCI6IHZhbHVlID0gaW5wdXRzW2ldLnZhbHVlOyBicmVhazsNCiAgICAgIH0NCiAgICB9DQogIH0NCg0KICBzd2l0Y2gobWVudVR5cGUpIHsNCiAgICBjYXNlICJpbnB1dEFycmF5IjogIGRhdGFbY29uZmlnS2V5XSA9IHZhbHVlQXJyOyBicmVhazsNCiAgICBjYXNlICJzaW5nbGVJbnB1dCI6ICANCiAgICAgIGlmIChpc05hTih2YWx1ZSkgPT0gZmFsc2UpIHsNCiAgICAgICAgdmFsdWUgPSBwYXJzZUludCh2YWx1ZSk7DQogICAgICAgIGRhdGFbY29uZmlnS2V5XSA9IHZhbHVlOw0KICAgICAgICBicmVhazsNCiAgICAgIH0NCg0KICAgICAgaWYgKHZhbHVlID09IHVuZGVmaW5lZCkgew0KICAgICAgICBkYXRhWyJkZWxldGUiXSA9IGNvbmZpZ0tleTsgDQogICAgICB9IGVsc2Ugew0KICAgICAgICBkYXRhW2NvbmZpZ0tleV0gPSB2YWx1ZQ0KICAgICAgfQ0KDQogICAgICBicmVhazsNCiAgfQ0KDQogIGRhdGFbImNtZCJdID0gInNhdmVDb25maWciOw0KICBjb25zb2xlLmxvZyhkYXRhKTsNCiAgeFRlVmUoZGF0YSkNCn0NCg0KZnVuY3Rpb24geFRlVmUoZGF0YSkgew0KICBpZiAod2ViU29ja2V0cyA9PSBmYWxzZSkgew0KICAgIGFsZXJ0KCJZb3VyIGJyb3dzZXIgZG9lcyBub3Qgc3VwcG9ydCBXZWJTb2NrZXRzIik7DQogICAgcmV0dXJuOw0KICB9IGVsc2Ugew0KICAgIGlmIChkYXRhWyJjbWQiXSAhPSAiZ2V0TG9nIikgew0KICAgICAgc2hvd0xvYWRpbmdTY3JlZW4odHJ1ZSkNCiAgICB9DQogIH0NCiAgZGVsZXRlIHVuZG9bImVwZ01hcHBpbmciXTsNCiAgDQogIHZhciBwcm90b2NvbFdTDQogIHN3aXRjaCh3aW5kb3cubG9jYXRpb24ucHJvdG9jb2wpIHsNCiAgICBjYXNlICJodHRwOiI6ICAgcHJvdG9jb2xXUyA9ICJ3czovLyI7IGJyZWFrOw0KICAgIGNhc2UgImh0dHBzOiI6ICBwcm90b2NvbFdTID0gIndzczovLyI7IGJyZWFrOw0KICB9DQoNCg0KICB2YXIgd3MgPSBuZXcgV2ViU29ja2V0KHByb3RvY29sV1MgKyB3aW5kb3cubG9jYXRpb24uaG9zdG5hbWUgKyAiOiIgKyB3aW5kb3cubG9jYXRpb24ucG9ydCArICIvZGF0YS8iICsgIj9Ub2tlbj0iICsgZ2V0Q29va2llKCJUb2tlbiIpKTsNCiAgd3Mub25vcGVuID0gZnVuY3Rpb24oKSB7DQogICAgY29uc29sZS5sb2coZGF0YSkNCiAgICB3cy5zZW5kKEpTT04uc3RyaW5naWZ5KGRhdGEpKTsNCiAgfQ0KDQogIHdzLm9ubWVzc2FnZSA9IGZ1bmN0aW9uIChlKSB7DQogICAgdmFyIHJlc3BvbnNlID0gSlNPTi5wYXJzZShlLmRhdGEpOw0KICAgIGNvbnNvbGUubG9nKHJlc3BvbnNlKTsNCiAgICANCiAgICBpZiAocmVzcG9uc2UuaGFzT3duUHJvcGVydHkoImNsaWVudEluZm8iKSkgew0KICAgICAgY3JlYXRlQ2xpbnRJbmZvKHJlc3BvbnNlWyJjbGllbnRJbmZvIl0pOw0KICAgIH0NCg0KICAgIGlmIChyZXNwb25zZS5oYXNPd25Qcm9wZXJ0eSgibG9nIikpIHsNCiAgICAgIGNyZWF0ZUNsaW50SW5mbyhyZXNwb25zZVsibG9nIl0pOw0KICAgIH0NCg0KICAgIGlmIChyZXNwb25zZS5oYXNPd25Qcm9wZXJ0eSgic3RhdHVzIikpIHsNCiAgICAgIGlmIChyZXNwb25zZVsic3RhdHVzIl0gPT0gZmFsc2UpIHsNCiAgICAgICAgYWxlcnQocmVzcG9uc2VbImVyciJdKQ0KICAgICAgICBpZihyZXNwb25zZS5oYXNPd25Qcm9wZXJ0eSgicmVsb2FkIikpIHsNCiAgICAgICAgICBsb2NhdGlvbi5yZWxvYWQoKTsNCiAgICAgICAgfQ0KICAgICAgICAvL2NoZWNrRXJyKHJlc3BvbnNlKQ0KICAgICAgICBjb25zb2xlLmxvZyhyZXNwb25zZSk7DQogICAgICAgIHVwZGF0ZVh0ZXZlU3RhdHVzKHJlc3BvbnNlKTsNCiAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbigpeyBzaG93TG9hZGluZ1NjcmVlbihmYWxzZSk7IH0sIDMwMCk7DQogICAgICAgIA0KICAgICAgICByZXR1cm4NCiAgICAgIH0NCg0KICAgICAgdXBkYXRlWHRldmVTdGF0dXMocmVzcG9uc2UpDQoNCiAgICAgIC8vY29uc29sZS5sb2coZGF0YVsiY21kIl0pOw0KICAgICAgc3dpdGNoKGRhdGFbImNtZCJdKSB7DQogICAgICAgIGNhc2UgInNhdmVVc2VyRGF0YSI6ICAgIGNyZWF0ZU1lbnUoKTsgYnJlYWs7DQogICAgICAgIGNhc2UgInNhdmVOZXdVc2VyIjogICAgIGNyZWF0ZU1lbnUoKTsgYnJlYWs7DQogICAgICAgIGNhc2UgInNhdmVGaWxlc1hNTFRWIjogIC8vY3JlYXRlTWVudSgpOyBicmVhazsNCiAgICAgICAgY2FzZSAic2F2ZUZpbGVzTTNVIjogICAgLy9jcmVhdGVNZW51KCk7IHJldHVybjsgYnJlYWs7DQogICAgICAgIGNhc2UgInNhdmVDb25maWciOiAgICANCiAgICAgICAgICBkYXRhID0gbmV3IE9iamVjdCgpOw0KICAgICAgICAgIGRhdGFbImNtZCJdID0gImNoZWNrVG9rZW4iOw0KICAgICAgICAgIHhUZVZlKGRhdGEpOw0KICAgICAgICAgIGJyZWFrOw0KDQogICAgICAgIGNhc2UgImVtcHR5TG9nIjogd3JpdGVMb2dJbkRpdigpOyBicmVhazsNCiAgICAgICAgY2FzZSAiZ2V0TG9nIjogIHJldHVybjsgYnJlYWs7DQogICAgICB9DQoNCg0KICAgIH0NCg0KICAgIGlmIChjb25maWdbImZpbGVzIl0gPT0gdW5kZWZpbmVkIHx8IGNvbmZpZ1siZmlsZXMiXS5sZW5ndGggPT0gMCkgew0KICAgICAgY3JlYXRlTWVudSgpOw0KICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoMTApLmNsaWNrKCkNCiAgICB9DQoNCiAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7IHNob3dMb2FkaW5nU2NyZWVuKGZhbHNlKTsgfSwgMCk7DQogIH0NCiAgDQp9DQoNCmZ1bmN0aW9uIHVwZGF0ZVh0ZXZlU3RhdHVzKHJlc3BvbnNlKSB7DQogIHZhciBrZXlzID0gZ2V0T2JqS2V5cyhyZXNwb25zZSk7DQogIC8vY29uc29sZS5sb2coa2V5cyk7DQoNCiAgZm9yICh2YXIgaSA9IDA7IGkgPCBrZXlzLmxlbmd0aDsgaSsrKSB7DQogICAgc3dpdGNoKGtleXNbaV0pIHsNCiAgICAgIGNhc2UgImFsZXJ0IjogICAgICAgICBhbGVydChyZXNwb25zZVtrZXlzW2ldXSk7IGJyZWFrOw0KICAgICAgY2FzZSAiY29uZmlnIjogICAgICAgIHNob3dDb25maWcocmVzcG9uc2Vba2V5c1tpXV0pOyBicmVhazsNCiAgICAgIGNhc2UgImxvZyI6ICAgICAgICAgICBwYXJzZUxvZ3MocmVzcG9uc2Vba2V5c1tpXV0pOyBicmVhazsNCiAgICAgIGNhc2UgIm15U3RyZWFtcyI6ICAgICBzaG93TXlTdHJlYW1zKHJlc3BvbnNlW2tleXNbaV1dKTsgYnJlYWs7DQogICAgICBjYXNlICJ4RVBHIjogICAgICAgICAgeEVQRyA9IHJlc3BvbnNlW2tleXNbaV1dOyBicmVhazsNCiAgICAgIGNhc2UgInVzZXJzIjogICAgICAgICB1c2VycyA9IHJlc3BvbnNlW2tleXNbaV1dOyBicmVhazsNCiAgICAgIGNhc2UgInRva2VuIjogICAgICAgICBkb2N1bWVudC5jb29raWUgPSAiVG9rZW49IiArIHJlc3BvbnNlW2tleXNbaV1dOyBicmVhazsNCiAgICAgIGNhc2UgInJlbG9hZCI6ICAgICAgICBsb2NhdGlvbi5yZWxvYWQoKTsgYnJlYWs7DQogICAgICBjYXNlICJvcGVuTGluayI6ICAgICAgd2luZG93LmxvY2F0aW9uID0gcmVzcG9uc2VbIm9wZW5MaW5rIl07IGJyZWFrOw0KICAgICAgLy9jYXNlICJ2ZXJzaW9uIjogdmVyc2lvbiA9IHJlc3BvbnNlW2tleXNbaV1dOyBicmVhazsNCiAgICB9DQogIH0NCn0NCg0KZnVuY3Rpb24gZ2V0VmFsdWVGcm9tUHJvdmlkZXJGaWxlKHhYbWx0dkZpbGUsIGZpbGVUeXBlLCBrZXkpIHsNCg0KICB2YXIgZmlsZUlEID0geFhtbHR2RmlsZS5zdWJzdHJpbmcoMCwgeFhtbHR2RmlsZS5sYXN0SW5kZXhPZignLicpKQ0KDQogIGlmIChjb25maWdbImZpbGVzIl1bZmlsZVR5cGVdLmhhc093blByb3BlcnR5KGZpbGVJRCkgPT0gdHJ1ZSkgew0KICAgIHZhciBkYXRhID0gY29uZmlnWyJmaWxlcyJdW2ZpbGVUeXBlXVtmaWxlSURdOw0KICAgIHJldHVybiBkYXRhW2tleV0NCiAgfQ0KDQp9DQoNCg0KDQoNCg==" + webUI["html/js/users.js"] = "ZnVuY3Rpb24gb3BlblVzZXJzKGVsbSkgew0KICBjb2xvbW5Tb3J0ID0gMDsNCg0KICB2YXIgbmV3RGl2ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNldHRpbmdzIik7DQogIA0KICB2YXIgbmV3RW50cnkgPSBuZXcgT2JqZWN0KCk7DQogIG5ld0VudHJ5WyJfZWxlbWVudCJdICA9ICJIUiI7DQogIG5ld0Rpdi5hcHBlbmRDaGlsZChjcmVhdGVFbGVtZW50KG5ld0VudHJ5KSk7DQoNCiAgdmFyIG5ld0VudHJ5ID0gbmV3IE9iamVjdCgpOw0KICBuZXdFbnRyeVsiX2VsZW1lbnQiXSAgPSAiSU5QVVQiOw0KICBuZXdFbnRyeVsidHlwZSJdID0gImJ1dHRvbiI7DQogIG5ld0VudHJ5WyJjbGFzcyJdID0gImJ1dHRvbiI7DQogIG5ld0VudHJ5WyJ2YWx1ZSJdID0gIk5ldyI7DQogIG5ld0VudHJ5WyJvbmNsaWNrIl0gPSAidXNlckRldGFpbCgwKSI7DQogIG5ld0Rpdi5hcHBlbmRDaGlsZChjcmVhdGVFbGVtZW50KG5ld0VudHJ5KSk7DQoNCiAgdmFyIGRpdiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzZXR0aW5ncyIpOw0KDQogICAvLyBCdWlsZCB0YWJsZQ0KICB2YXIgbmV3VGFibGUgPSBuZXcgT2JqZWN0KCk7DQogIG5ld1RhYmxlWyJfZWxlbWVudCJdICA9ICJUQUJMRSI7DQogIG5ld1RhYmxlWyJpZCJdICAgICAgICA9ICJpZF9tYXBwaW5nIjsNCiAgbmV3VGFibGVbImNsYXNzIl0gICAgID0gInRhYmxlLW1hcHBpbmciOw0KICBkaXYuYXBwZW5kQ2hpbGQoY3JlYXRlRWxlbWVudChuZXdUYWJsZSkpOw0KDQogIHNldFRpbWVvdXQoZnVuY3Rpb24oKXsgDQogICAgY3JlYXRlVXNlcnNUYWJsZSgpOyANCiAgfSwgMTApOw0KfQ0KDQpmdW5jdGlvbiBjcmVhdGVVc2Vyc1RhYmxlKCkgew0KICB2YXIgdGFibGUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiaWRfbWFwcGluZyIpOw0KICB0YWJsZS5pbm5lckhUTUwgPSAiIjsNCiAgdmFyIG5ld1RSID0gbmV3IE9iamVjdCgpOw0KICBuZXdUUlsiX2VsZW1lbnQiXSA9ICJUUiI7DQogIG5ld1RSWyJjbGFzcyJdICAgID0gInRhYmxlLW1hcHBpbmctaGVhZGVyIjsNCiAgdGFibGUuYXBwZW5kQ2hpbGQoY3JlYXRlRWxlbWVudChuZXdUUikpOw0KDQogIHZhciB0ciA9IHRhYmxlLmxhc3RDaGlsZDsNCiAgdmFyIHRySGVhZGxpbmVzID0gbmV3IEFycmF5KCJVc2VybmFtZSIsICJQYXNzd29yZCIsICJXRUIiLCAiUE1TIiwgIk0zVSIsICJYTUwiLCAiQVBJIikNCg0KICBmb3IgKHZhciBpID0gMDsgaSA8IHRySGVhZGxpbmVzLmxlbmd0aDsgaSsrKSB7DQogICAgdmFyIG5ld1REID0gbmV3IE9iamVjdCgpOw0KICAgIG5ld1REWyJfZWxlbWVudCJdID0gIlREIjsNCiAgICBuZXdURFsiX3RleHQiXSAgICA9IHRySGVhZGxpbmVzW2ldOw0KICAgIHRyLmFwcGVuZENoaWxkKGNyZWF0ZUVsZW1lbnQobmV3VEQpKTsNCiAgfQ0KDQoNCiAgLy8gU29ydCB1c2Vycw0KICB2YXIgdXNlcklkcyA9IGdldE9iaktleXModXNlcnMpOw0KDQogIHZhciB1c2VyT2JqID0gbmV3IE9iamVjdCgpOw0KDQogIGZvciAodmFyIGkgPSAwOyBpIDwgdXNlcklkcy5sZW5ndGg7IGkrKykgew0KICAgIHZhciB1c2VybmFtZSA9IHVzZXJzW3VzZXJJZHNbaV1dWyJkYXRhIl1bInVzZXJuYW1lIl07DQogICAgdXNlck9ialt1c2VybmFtZV0gPSB1c2VySWRzW2ldOw0KICB9DQoNCiAgdmFyIGFsbFVzZXJzID0gZ2V0T2JqS2V5cyh1c2VyT2JqKTsNCiAgYWxsVXNlcnMuc29ydCgpOw0KICAvLyAtLQ0KDQogIGZvciAodmFyIGkgPSAwOyBpIDwgYWxsVXNlcnMubGVuZ3RoOyBpKyspIHsNCiAgICB2YXIgdGFibGUgICAgID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImlkX21hcHBpbmciKTsNCiAgICB2YXIgdXNlcklEICAgID0gdXNlck9ialthbGxVc2Vyc1tpXV07DQogICAgdmFyIHVzZXJuYW1lICA9IGFsbFVzZXJzW2ldOw0KICAgIHZhciBpdGVtICAgICAgPSB1c2Vyc1t1c2VySURdWyJkYXRhIl07DQoNCiAgICAvLyBDcmVhdGUgVFINCiAgICB2YXIgbmV3VFIgPSBuZXcgT2JqZWN0KCk7DQogICAgbmV3VFJbIl9lbGVtZW50Il0gICAgICAgPSAiVFIiOw0KICAgIG5ld1RSWyJjbGFzcyJdICAgICAgICAgID0gIiI7DQogICAgbmV3VFJbImlkIl0gICAgICAgICAgICAgPSB1c2VySUQ7DQogICAgbmV3VFJbIm9uY2xpY2siXSAgICAgICAgPSAnamF2YXNjcmlwdDogdXNlckRldGFpbCgiJyArIHVzZXJJRCArICciKTsnOw0KICAgIHRhYmxlLmFwcGVuZENoaWxkKGNyZWF0ZUVsZW1lbnQobmV3VFIpKTsNCg0KICAgIHZhciB0ciA9IHRhYmxlLmxhc3RDaGlsZDsNCg0KICAgIC8vIENyZWF0ZSB1c2VybmFtZSBURA0KICAgIHZhciBuZXdURCA9IG5ldyBPYmplY3QoKTsNCiAgICBuZXdURFsiX2VsZW1lbnQiXSA9ICJQIjsNCiAgICBuZXdURFsiX3RleHQiXSAgICA9IHVzZXJuYW1lOw0KICAgIGNyZWF0ZU5ld1REKG5ld1RELCB0cik7DQoNCiAgICAvLyBDcmVhdGUgcGFzc3dvcmQgVEQNCiAgICB2YXIgbmV3VEQgPSBuZXcgT2JqZWN0KCk7DQogICAgbmV3VERbIl9lbGVtZW50Il0gPSAiUCI7DQogICAgbmV3VERbIl90ZXh0Il0gICAgPSAiLi4uLi4iOw0KICAgIGNyZWF0ZU5ld1REKG5ld1RELCB0cik7DQoNCiAgICAvLyBDcmVhdGUgd2ViIGFjY2Vzcw0KICAgIHZhciBuZXdURCA9IG5ldyBPYmplY3QoKTsNCiAgICBuZXdURFsiX2VsZW1lbnQiXSA9ICJQIjsNCiAgICBzd2l0Y2goaXRlbVsiYXV0aGVudGljYXRpb24ud2ViIl0pew0KICAgICAgY2FzZSB0cnVlOiBuZXdURFsiX3RleHQiXSAgICA9ICLinJMiOyBicmVhazsNCiAgICAgIGRlZmF1bHQ6ICAgbmV3VERbIl90ZXh0Il0gICAgPSAiLSI7IGJyZWFrOw0KICAgIH0NCiAgICBjcmVhdGVOZXdURChuZXdURCwgdHIpOw0KDQogICAgLy8gQ3JlYXRlIFBNUyBhY2Nlc3MNCiAgICB2YXIgbmV3VEQgPSBuZXcgT2JqZWN0KCk7DQogICAgbmV3VERbIl9lbGVtZW50Il0gPSAiUCI7DQogICAgc3dpdGNoKGl0ZW1bImF1dGhlbnRpY2F0aW9uLnBtcyJdKXsNCiAgICAgIGNhc2UgdHJ1ZTogbmV3VERbIl90ZXh0Il0gICAgPSAi4pyTIjsgYnJlYWs7DQogICAgICBkZWZhdWx0OiAgIG5ld1REWyJfdGV4dCJdICAgID0gIi0iOyBicmVhazsNCiAgICB9DQogICAgY3JlYXRlTmV3VEQobmV3VEQsIHRyKTsNCg0KICAgIC8vIENyZWF0ZSBNM1UgYWNjZXNzDQogICAgdmFyIG5ld1REID0gbmV3IE9iamVjdCgpOw0KICAgIG5ld1REWyJfZWxlbWVudCJdID0gIlAiOw0KICAgIHN3aXRjaChpdGVtWyJhdXRoZW50aWNhdGlvbi5tM3UiXSl7DQogICAgICBjYXNlIHRydWU6IG5ld1REWyJfdGV4dCJdICAgID0gIuKckyI7IGJyZWFrOw0KICAgICAgZGVmYXVsdDogICBuZXdURFsiX3RleHQiXSAgICA9ICItIjsgYnJlYWs7DQogICAgfQ0KICAgIGNyZWF0ZU5ld1REKG5ld1RELCB0cik7DQoNCiAgICAvLyBDcmVhdGUgWE1MVFYgYWNjZXNzDQogICAgdmFyIG5ld1REID0gbmV3IE9iamVjdCgpOw0KICAgIG5ld1REWyJfZWxlbWVudCJdID0gIlAiOw0KICAgIHN3aXRjaChpdGVtWyJhdXRoZW50aWNhdGlvbi54bWwiXSl7DQogICAgICBjYXNlIHRydWU6IG5ld1REWyJfdGV4dCJdICAgID0gIuKckyI7IGJyZWFrOw0KICAgICAgZGVmYXVsdDogICBuZXdURFsiX3RleHQiXSAgICA9ICItIjsgYnJlYWs7DQogICAgfQ0KICAgIGNyZWF0ZU5ld1REKG5ld1RELCB0cik7DQoNCiAgICAvLyBDcmVhdGUgQVBJIGFjY2Vzcw0KICAgIHZhciBuZXdURCA9IG5ldyBPYmplY3QoKTsNCiAgICBuZXdURFsiX2VsZW1lbnQiXSA9ICJQIjsNCg0KICAgIHN3aXRjaChpdGVtWyJhdXRoZW50aWNhdGlvbi5hcGkiXSl7DQogICAgICBjYXNlIHRydWU6IG5ld1REWyJfdGV4dCJdICAgID0gIuKckyI7IGJyZWFrOw0KICAgICAgZGVmYXVsdDogICBuZXdURFsiX3RleHQiXSAgICA9ICItIjsgYnJlYWs7DQogICAgfQ0KICAgIGNyZWF0ZU5ld1REKG5ld1RELCB0cik7DQoNCiAgfQ0KDQogIC8vIHVzYWdlIEluZm8gIA0KICB2YXIgZGl2ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNldHRpbmdzIik7DQogIHN3aXRjaChtZW51W2FjdGl2ZU1lbnUuaWRdLmhhc093blByb3BlcnR5KCJfdXNhZ2UiKSkgew0KICAgIGNhc2UgdHJ1ZTogDQogICAgICB2YXIgdXNhZ2VJdGVtID0gbmV3IE9iamVjdCgpOw0KICAgICAgdXNhZ2VJdGVtWyJfZWxlbWVudCJdID0gIlBSRSINCiAgICAgIHVzYWdlSXRlbVsiX3RleHQiXSAgICA9IG1lbnVbYWN0aXZlTWVudS5pZF1bIl91c2FnZSJdOw0KDQogICAgICB2YXIgbmV3SFIgPSBuZXcgT2JqZWN0KCk7DQogICAgICBuZXdIUlsiX2VsZW1lbnQiXSA9ICJIUiINCiAgICAgIGRpdi5hcHBlbmRDaGlsZChjcmVhdGVFbGVtZW50KG5ld0hSKSk7DQogICAgICBkaXYuYXBwZW5kQ2hpbGQoY3JlYXRlRWxlbWVudCh1c2FnZUl0ZW0pKTsNCiAgfQ0KDQogIHNvcnRUYWJsZSgwKTsNCn0NCg0KZnVuY3Rpb24gdXNlckRldGFpbCh1c2VySUQpIHsNCiAgc2hvd1BvcFVwRWxlbWVudCgndXNlci1kZXRhaWwnKTsNCiAgc2V0VGltZW91dChmdW5jdGlvbigpeyANCiAgICBzaG93RWxlbWVudCgicG9wdXAiLCB0cnVlKTsNCiAgfSwgMTApOw0KICB2YXIgZGVmYXVsdFVzZXI7DQoNCiAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNhdmVVc2VyRGV0YWlsIikuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IHNhdmVVc2VyRGV0YWlsKCInICsgdXNlcklEICsgJyIsIGZhbHNlKScpOw0KICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZGVsZXRlVXNlckRldGFpbCIpLnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBzYXZlVXNlckRldGFpbCgiJyArIHVzZXJJRCArICciLCB0cnVlKScpOw0KDQogIHZhciBkYXRhID0gbmV3IE9iamVjdCgpOw0KICANCiAgc3dpdGNoKHVzZXJJRCkgew0KICAgIGNhc2UgMDogICAvLyBOZXcgVXNlcg0KICAgICAgZGF0YVsidXNlcm5hbWUiXSA9ICIiOw0KICAgICAgZGF0YVsiYXV0aGVudGljYXRpb24ud2ViIl0gPSBmYWxzZTsNCiAgICAgIGRhdGFbImF1dGhlbnRpY2F0aW9uLnBtcyJdID0gdHJ1ZTsNCiAgICAgIGRhdGFbImF1dGhlbnRpY2F0aW9uLnhtbCJdID0gdHJ1ZTsNCiAgICAgIGRhdGFbImF1dGhlbnRpY2F0aW9uLm0zdSJdID0gZmFsc2U7DQogICAgICBkYXRhWyJhdXRoZW50aWNhdGlvbi5hcGkiXSA9IGZhbHNlOw0KICAgICAgZGF0YVsiZGVmYXVsdFVzZXIiXSAgICAgICAgPSBmYWxzZTsNCiAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKXsgDQogICAgICAgIHNob3dFbGVtZW50KCJkZWxldGVVc2VyRGV0YWlsIiwgZmFsc2UpDQogICAgICB9LCAxKTsNCg0KICAgICAgYnJlYWs7IA0KICAgIA0KICAgIGRlZmF1bHQ6IA0KICAgICAgZGF0YSA9IHVzZXJzW3VzZXJJRF1bImRhdGEiXTsgDQogICAgICBzaG93RWxlbWVudCgiZGVsZXRlVXNlckRldGFpbCIsIHRydWUpICAgDQogICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZGVsZXRlVXNlckRldGFpbCIpLmNsYXNzTmFtZSA9ICJkZWxldGUiOw0KICAgDQogICAgICBicmVhaw0KICB9DQogIA0KDQogIHZhciB1c2VybmFtZSA9IGRhdGFbInVzZXJuYW1lIl07DQogIGRhdGFbInBhc3N3b3JkIl0gPSAiIjsNCiAgZGF0YVsiY29uZmlybSJdID0gIiI7DQoNCiAgdmFyIGtleXMgPSBnZXRPYmpLZXlzKGRhdGEpOw0KICBkZWZhdWx0VXNlciA9IGRhdGFbImRlZmF1bHRVc2VyIl07DQogIGlmIChkYXRhLmhhc093blByb3BlcnR5KCJkZWZhdWx0VXNlciIpKSB7DQogICAgZGVmYXVsdFVzZXIgPSBKU09OLnBhcnNlKGRhdGFbImRlZmF1bHRVc2VyIl0pOw0KICB9DQoNCiAgZm9yICh2YXIgaSA9IDA7IGkgPCBrZXlzLmxlbmd0aDsgaSsrKSB7DQoNCiAgICBpZihkb2N1bWVudC5nZXRFbGVtZW50QnlJZChrZXlzW2ldKSl7DQogICAgICB2YXIgdGQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChrZXlzW2ldKQ0KICAgIH0gZWxzZSB7DQogICAgICB2YXIgdGQgPSB1bmRlZmluZWQ7DQogICAgfQ0KDQogICAgdmFyIG5ld0l0ZW0gPSBuZXcgT2JqZWN0KCk7DQoNCiAgICBuZXdJdGVtWyJfZWxlbWVudCJdID0gIklOUFVUIjsNCiAgICANCiAgICBuZXdJdGVtWyJ2YWx1ZSJdICAgID0gZGF0YVtrZXlzW2ldXTsNCiAgICBuZXdJdGVtWyJuYW1lIl0gICAgID0ga2V5c1tpXTsNCg0KDQoNCg0KDQogICAgc3dpdGNoKGtleXNbaV0uaW5kZXhPZigiYXV0aGVudGljYXRpb24iKSkgew0KICAgICAgY2FzZSAtMTogDQogICAgICAgIGlmIChrZXlzW2ldID09ICJwYXNzd29yZCIgfHwga2V5c1tpXSA9PSAiY29uZmlybSIpIHsNCiAgICAgICAgICBuZXdJdGVtWyJ0eXBlIl0gICAgID0gInBhc3N3b3JkIjsNCiAgICAgICAgfSBlbHNlIHsNCiAgICAgICAgICBuZXdJdGVtWyJ0eXBlIl0gICAgID0gInRleHQiOw0KICAgICAgICB9DQogICAgICAgIGJyZWFrOw0KDQogICAgICBkZWZhdWx0OiANCiAgICAgICAgbmV3SXRlbVsidHlwZSJdICAgICA9ICJjaGVja2JveCI7DQogICAgICAgIA0KICAgICAgICBpZiAoa2V5c1tpXSA9PSAiYXV0aGVudGljYXRpb24ud2ViIiAmJiBkZWZhdWx0VXNlciA9PSB0cnVlKSB7DQogICAgICAgICAgbmV3SXRlbVsib25jbGljayJdID0gInJldHVybiBmYWxzZSI7IA0KICAgICAgICB9DQogICAgICAgIA0KICAgICAgICBpZiAoZGF0YVtrZXlzW2ldXSA9PSB0cnVlKSB7ICAgICAgICAgIA0KICAgICAgICAgIG5ld0l0ZW1bImNoZWNrZWQiXSAgPSBkYXRhW2tleXNbaV1dOyAgDQogICAgICAgIH0NCiAgICAgICAgDQogICAgICAgIGJyZWFrOw0KICAgIH0NCg0KICAgIHN3aXRjaChrZXlzW2ldKSB7DQogICAgICBjYXNlICJkZWZhdWx0VXNlciI6IA0KICAgICAgICAvL2lmIChkYXRhW2tleXNbaV1dID09IHRydWUpIHsNCiAgICAgICAgbmV3SXRlbVsidHlwZSJdICAgICA9ICJoaWRkZW4iOw0KICAgICAgICAvL30NCiAgICB9DQoNCg0KICAgIGlmICh0ZCAhPSB1bmRlZmluZWQpIHsNCiAgICAgIHRkLmlubmVySFRNTCA9ICIiOw0KICAgICAgdmFyIGVsZW1lbnQgPSBjcmVhdGVOZXdFbGVtZW50KG5ld0l0ZW0pDQogICAgICAvL2NvbnNvbGUubG9nKGVsZW1lbnQpOw0KICAgICAgdGQuYXBwZW5kQ2hpbGQoZWxlbWVudCk7DQogICAgfQ0KDQoNCiAgfQ0KDQoNCiAgaWYgKGRlZmF1bHRVc2VyID09IHRydWUpIHsNCiAgICBzaG93RWxlbWVudCgiZGVsZXRlVXNlckRldGFpbCIsIGZhbHNlKQ0KICB9IGVsc2Ugew0KICAgIHNob3dFbGVtZW50KCJkZWxldGVVc2VyRGV0YWlsIiwgdHJ1ZSkNCiAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZGVsZXRlVXNlckRldGFpbCIpLmNsYXNzTmFtZSA9ICJkZWxldGUiOw0KICB9DQoNCn0NCg0KZnVuY3Rpb24gc2F2ZVVzZXJEZXRhaWwodXNlcklELCBkZWxldGVVc2VyKSB7DQoNCiAgdmFyIGlucHV0cyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ1c2VyLWRldGFpbC10YWJsZSIpLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJJTlBVVCIpOw0KDQogIHZhciBuZXdVc2VyRGF0YSA9IG5ldyBPYmplY3QoKTsNCiAgZm9yICh2YXIgaSA9IDA7IGkgPCBpbnB1dHMubGVuZ3RoOyBpKyspIHsNCiAgICBzd2l0Y2goaW5wdXRzW2ldLnR5cGUpIHsNCiAgICAgIGNhc2UgImNoZWNrYm94IjogIG5ld1VzZXJEYXRhW2lucHV0c1tpXS5uYW1lXSA9IGlucHV0c1tpXS5jaGVja2VkOyBicmVhazsNCiAgICAgIGRlZmF1bHQ6ICAgICAgICAgIG5ld1VzZXJEYXRhW2lucHV0c1tpXS5uYW1lXSA9IGlucHV0c1tpXS52YWx1ZTsgYnJlYWs7DQogICAgfQ0KICAgIA0KICAgIGlmIChpbnB1dHNbInVzZXJuYW1lIl0udmFsdWUubGVuZ3RoID09IDApIHsNCiAgICAgIGlucHV0c1sidXNlcm5hbWUiXS5zdHlsZS5ib3JkZXIgPSAic29saWQgMXB4IHJlZCI7DQogICAgICByZXR1cm47DQogICAgfQ0KDQogICAgc3dpdGNoKHVzZXJJRCkgew0KICAgICAgY2FzZSAiMCI6IA0KICAgICAgICBpZiAoaW5wdXRzWyJwYXNzd29yZCJdLnZhbHVlLmxlbmd0aCA9PSAwKSB7DQogICAgICAgICAgY29uc29sZS5sb2coaW5wdXRzWyJwYXNzd29yZCJdLnZhbHVlLmxlbmd0aCk7DQogICAgICAgICAgaW5wdXRzWyJwYXNzd29yZCJdLnN0eWxlLmJvcmRlciA9ICJzb2xpZCAxcHggcmVkIjsNCiAgICAgICAgICByZXR1cm4NCiAgICAgICAgfQ0KICAgICAgICBicmVhazsNCiAgICB9DQoNCiAgICBpZiAoaW5wdXRzWyJwYXNzd29yZCJdLnZhbHVlLmxlbmd0aCA+IDApIHsNCiAgICAgIGlmIChpbnB1dHNbInBhc3N3b3JkIl0udmFsdWUgIT0gaW5wdXRzWyJjb25maXJtIl0udmFsdWUpIHsNCiAgICAgICAgaW5wdXRzWyJwYXNzd29yZCJdLnN0eWxlLmJvcmRlciA9ICJzb2xpZCAxcHggcmVkIjsNCiAgICAgICAgaW5wdXRzWyJjb25maXJtIl0uc3R5bGUuYm9yZGVyID0gInNvbGlkIDFweCByZWQiOw0KICAgICAgICByZXR1cm47DQogICAgICB9DQogICAgfQ0KICAgIA0KICB9DQoNCiAgdmFyIGRhdGEgPSBuZXcgT2JqZWN0KCk7DQogIA0KICBzd2l0Y2godXNlcklEKSB7DQogICAgY2FzZSAiMCI6DQogICAgICAvL2RhdGEgPSBuZXdVc2VyRGF0YQ0KICAgICAgZGF0YVsidXNlckRhdGEiXSAgPSBuZXdVc2VyRGF0YQ0KICAgICAgZGF0YVsiY21kIl0gICAgICAgPSAic2F2ZU5ld1VzZXIiOyBicmVhazsNCiAgICANCiAgICBkZWZhdWx0OiAgDQogICAgICB2YXIgdGhpc1VzZXIgICAgICA9IG5ldyBPYmplY3QoKTsNCiAgICAgIA0KICAgICAgaWYgKGRlbGV0ZVVzZXIgPT0gdHJ1ZSkgew0KICAgICAgICBpZiAoY29uZmlybSgnRGVsZXRlIHRoZSBzZWxlY3RlZCB1c2VyPycpKSB7DQogICAgICAgICAgZGF0YVsiZGVsZXRlVXNlciJdID0gdHJ1ZTsNCiAgICAgICAgfSBlbHNlIHsNCiAgICAgICAgICBzaG93RWxlbWVudCgicG9wdXAiLCBmYWxzZSk7DQogICAgICAgICAgcmV0dXJuDQogICAgICAgIH0NCiAgICAgIH0NCiAgICAgIA0KICAgICAgdGhpc1VzZXJbdXNlcklEXSAgPSBuZXdVc2VyRGF0YTsNCg0KICAgICAgZGF0YVsidXNlckRhdGEiXSA9IHRoaXNVc2VyOw0KICAgICAgZGF0YVsiY21kIl0gPSAic2F2ZVVzZXJEYXRhIjsgYnJlYWs7DQogIH0NCiAgDQogIHhUZVZlKGRhdGEpOw0KICAvL2NyZWF0ZVVzZXJzVGFibGUoKQ0KICBzaG93RWxlbWVudCgicG9wdXAiLCBmYWxzZSk7DQp9DQoNCg0K" + webUI["html/img/log.png"] = "iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAAAXNSR0IArs4c6QAAAAlwSFlzAAAsSwAALEsBpT2WqQAABCRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IlhNUCBDb3JlIDUuNC4wIj4KICAgPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIgogICAgICAgICAgICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgICAgICAgICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyI+CiAgICAgICAgIDx0aWZmOlJlc29sdXRpb25Vbml0PjI8L3RpZmY6UmVzb2x1dGlvblVuaXQ+CiAgICAgICAgIDx0aWZmOkNvbXByZXNzaW9uPjU8L3RpZmY6Q29tcHJlc3Npb24+CiAgICAgICAgIDx0aWZmOlhSZXNvbHV0aW9uPjI4ODwvdGlmZjpYUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6T3JpZW50YXRpb24+MTwvdGlmZjpPcmllbnRhdGlvbj4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+Mjg4PC90aWZmOllSZXNvbHV0aW9uPgogICAgICAgICA8ZXhpZjpQaXhlbFhEaW1lbnNpb24+NTA8L2V4aWY6UGl4ZWxYRGltZW5zaW9uPgogICAgICAgICA8ZXhpZjpDb2xvclNwYWNlPjE8L2V4aWY6Q29sb3JTcGFjZT4KICAgICAgICAgPGV4aWY6UGl4ZWxZRGltZW5zaW9uPjUwPC9leGlmOlBpeGVsWURpbWVuc2lvbj4KICAgICAgICAgPGRjOnN1YmplY3Q+CiAgICAgICAgICAgIDxyZGY6QmFnLz4KICAgICAgICAgPC9kYzpzdWJqZWN0PgogICAgICAgICA8eG1wOk1vZGlmeURhdGU+MjAxOC0xMC0xNFQxMToxMDo0MjwveG1wOk1vZGlmeURhdGU+CiAgICAgICAgIDx4bXA6Q3JlYXRvclRvb2w+UGl4ZWxtYXRvciAzLjM8L3htcDpDcmVhdG9yVG9vbD4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgIDwvcmRmOlJERj4KPC94OnhtcG1ldGE+CkP32mEAAANASURBVGgF7ZlPiE1RHMffw1AYhiL5k1HEijJiYaFZiHoyFspW2RFRkkSZGgtFWJIwi9FYmo0VOywkKTbKgjSlWcifRCPX51dv6s2d33md77vvXjfmV9859/7u93x/v98959x73p1KRbAkSargAhgDH0E/qIYkuHYEvAPGvwbmNOEerXM/0Q6BRSFuZj/ix0DaDnvCkGppIucDAe4OhzvkcUO+GaELAf8ux7/b8Zlrr+Pvc3zm6nX8NccXdKmFLHaUPJ/Ruhyu5zNap8Nd6PiCLrUQTyi0Rjy/5/M0Zd+smB7M32XwtgBr07aC6yfSTs7XO77OALfH4VbgHsD/HLytVquJx4nyIdQFBsHftscksK5Z0sGhpuN8Or4Aa5sJFHjtO7G2MjKvvZjN1sglOpSlCMt9LrDZ4S4Hd0Qg24vrK+gAZbPtjMqTdFKhEdkIsYxFWP720JlioUK6pzDL41jtpRIqxOOWxecuB3fhRGT8E85YBK8VygI6GSRTCxlH3TaJgyw4O2678aCxO94LbNPovYDdmOrUukIBN/MqwjJEOwGPOHR31W4VONVCLEBR9lAJpBbSrYhn5K5R+quFnGUOr1ICtMIlxjz6XVb6qot9JeKvCPSAdlQJJHDtd8hOIN0wtRDLxx6Ntr0ulalTq1TJNyYzXUjj3SjD8X87Iva7uR8s5+2bi6FtX1oOgi8g2tSn1g2yPx+t3gIR/c90s1+C1vuO/YkxdWrdjxFtE2dE0VELWaqIZ+QuUfqrhZxmyKUvgEoyE1xizOR4YOI8plXXyAZEbYsyTJvXFsUW+x6wGUSbWogJ237rZHSEgojq1CooLT3MdCH6Pcu3xz8zIq0s9lvc2+sgz6dWH/rnQPB/jlybZGoh99hCHJqk0P6TD0jaI/4b7dVYeXVq2bemokyKpRZiHwWKMimWWshxhryjoEpOKXHUNbIN8WcUc5s2r8Vue7l9oAaiTS3EhDeB6EUYnUlGojq1MobLr3uokB/5hcys7OYWKuRl5nD5Cbi5uYXw0ntPHoay2S8Seuol5RZSJ0r/n/DEc/BdrN9kTZrH7BkwDspgwyQxW6uggU3nHnAXvAG/QZE2SrARsL8hJffwDxM0mNDPvT8IAAAAAElFTkSuQmCC" + webUI["html/img/x_black.png"] = "iVBORw0KGgoAAAANSUhEUgAAAQAAAAEACAIAAADTED8xAAAAAXNSR0IArs4c6QAAAAlwSFlzAAAWJQAAFiUBSVIk8AAAA6ppVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IlhNUCBDb3JlIDUuNC4wIj4KICAgPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIgogICAgICAgICAgICB4bWxuczp0aWZmPSJodHRwOi8vbnMuYWRvYmUuY29tL3RpZmYvMS4wLyIKICAgICAgICAgICAgeG1sbnM6ZXhpZj0iaHR0cDovL25zLmFkb2JlLmNvbS9leGlmLzEuMC8iPgogICAgICAgICA8eG1wOk1vZGlmeURhdGU+MjAxOC0xMS0xNVQxNzoxMTozNzwveG1wOk1vZGlmeURhdGU+CiAgICAgICAgIDx4bXA6Q3JlYXRvclRvb2w+UGl4ZWxtYXRvciAzLjM8L3htcDpDcmVhdG9yVG9vbD4KICAgICAgICAgPHRpZmY6T3JpZW50YXRpb24+MTwvdGlmZjpPcmllbnRhdGlvbj4KICAgICAgICAgPHRpZmY6Q29tcHJlc3Npb24+NTwvdGlmZjpDb21wcmVzc2lvbj4KICAgICAgICAgPHRpZmY6UmVzb2x1dGlvblVuaXQ+MjwvdGlmZjpSZXNvbHV0aW9uVW5pdD4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+MTQ0PC90aWZmOllSZXNvbHV0aW9uPgogICAgICAgICA8dGlmZjpYUmVzb2x1dGlvbj4xNDQ8L3RpZmY6WFJlc29sdXRpb24+CiAgICAgICAgIDxleGlmOlBpeGVsWERpbWVuc2lvbj4yNTY8L2V4aWY6UGl4ZWxYRGltZW5zaW9uPgogICAgICAgICA8ZXhpZjpDb2xvclNwYWNlPjE8L2V4aWY6Q29sb3JTcGFj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a1jSekqmtA1rrGsx7JYkDuvrVahwRdgVXD1xcwri6mmYRULLe4CuPc2wfrGo4U+7Y/3S9ZHD+GcflbnfiCJbr77whoaS6ucCXVkVkuLKgORQwNJFygRDJnqwb9i3b0HxkqjT0L4erGy5Rh1IRnhXrpaZq6GZCyRLf6cvhoTY6V9koX8bGdEUlyWVm6W5q1GuostihNm97L/dpm5k+QHCbDna0zRzgSS/lRHWL7iHPOa+9YsYkpttoCwSMcQRkrWioz5Qsc7aFJ1coHY3QyJ9jSjfJEOCfTUpWzehVBnUbqCJOCHEkB1xsmXDwq9DnObUz9q4QOUqYPaPKFzUKcVj6Eeu461q67Vhlqy6+Xo11G52JhRZNNW1FRbN00FWPVwguSa+8YEZ1i+D9vQjelm/iHTwAB69Vwd7CkuGLOcWtxfR4o+dHhNg4DNmhDvJ8M6ehknvhTXMDp8kQQgT33W4z+i7k/2gho+Jvrp1NTVwgW5opV76yl8F/cufe9CyJiRllZ6lYCHMXWPAXmNp9CRb8Pi30r658sHtCSCPsZNXQDYdMaLIek/No13V/rBfGMFSCXnsKNo1dDelnKt/dyUH8uvjjLH+zyfpbv1iUl/NVBt4mVJy58HoDyFZLt0rrj4G7TfIjARvMjy7d6JnR/UXS/+yeD5kLYkETxpRZL2jZJVzb7cl9yZA/cYqh4z+20AEzOj+BKxbZYRFqXQssvLs5gQzpBUp616rNsX55WdXBHbPBRrwlBm5v2VYJo1FsjmOtQg8ezo+fd8Ve4qy04HPRlmR1UiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABGwg8D8UnyVeZFwGAQAAAABJRU5ErkJggg==" + webUI["html/js/configuration_ts.js"] = "Y2xhc3MgV2l6YXJkQ2F0ZWdvcnkgew0KICAgIGNvbnN0cnVjdG9yKCkgew0KICAgICAgICB0aGlzLkRvY3VtZW50SUQgPSAiY29udGVudCI7DQogICAgfQ0KICAgIGNyZWF0ZUNhdGVnb3J5SGVhZGxpbmUodmFsdWUpIHsNCiAgICAgICAgdmFyIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJINCIpOw0KICAgICAgICBlbGVtZW50LmlubmVySFRNTCA9IHZhbHVlOw0KICAgICAgICByZXR1cm4gZWxlbWVudDsNCiAgICB9DQp9DQpjbGFzcyBXaXphcmRJdGVtIGV4dGVuZHMgV2l6YXJkQ2F0ZWdvcnkgew0KICAgIGNvbnN0cnVjdG9yKGtleSwgaGVhZGxpbmUpIHsNCiAgICAgICAgc3VwZXIoKTsNCiAgICAgICAgdGhpcy5oZWFkbGluZSA9IGhlYWRsaW5lOw0KICAgICAgICB0aGlzLmtleSA9IGtleTsNCiAgICB9DQogICAgY3JlYXRlV2l6YXJkKCkgew0KICAgICAgICB2YXIgaGVhZGxpbmUgPSB0aGlzLmNyZWF0ZUNhdGVnb3J5SGVhZGxpbmUodGhpcy5oZWFkbGluZSk7DQogICAgICAgIHZhciBrZXkgPSB0aGlzLmtleTsNCiAgICAgICAgdmFyIGNvbnRlbnQgPSBuZXcgUG9wdXBDb250ZW50KCk7DQogICAgICAgIHZhciBkZXNjcmlwdGlvbjsNCiAgICAgICAgdmFyIGRvYyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHRoaXMuRG9jdW1lbnRJRCk7DQogICAgICAgIGRvYy5pbm5lckhUTUwgPSAiIjsNCiAgICAgICAgZG9jLmFwcGVuZENoaWxkKGhlYWRsaW5lKTsNCiAgICAgICAgc3dpdGNoIChrZXkpIHsNCiAgICAgICAgICAgIGNhc2UgInR1bmVyIjoNCiAgICAgICAgICAgICAgICB2YXIgdGV4dCA9IG5ldyBBcnJheSgpOw0KICAgICAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBuZXcgQXJyYXkoKTsNCiAgICAgICAgICAgICAgICBmb3IgKHZhciBpID0gMTsgaSA8PSAxMDA7IGkrKykgew0KICAgICAgICAgICAgICAgICAgICB0ZXh0LnB1c2goaSk7DQogICAgICAgICAgICAgICAgICAgIHZhbHVlcy5wdXNoKGkpOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCAiMSIsIGtleSk7DQogICAgICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgiY2xhc3MiLCAid2l6YXJkIik7DQogICAgICAgICAgICAgICAgc2VsZWN0LmlkID0ga2V5Ow0KICAgICAgICAgICAgICAgIGRvYy5hcHBlbmRDaGlsZChzZWxlY3QpOw0KICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uID0gInt7LndpemFyZC50dW5lci5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImVwZ1NvdXJjZSI6DQogICAgICAgICAgICAgICAgdmFyIHRleHQgPSBbIlBNUyIsICJYRVBHIl07DQogICAgICAgICAgICAgICAgdmFyIHZhbHVlcyA9IFsiUE1TIiwgIlhFUEciXTsNCiAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCAiWEVQRyIsIGtleSk7DQogICAgICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgiY2xhc3MiLCAid2l6YXJkIik7DQogICAgICAgICAgICAgICAgc2VsZWN0LmlkID0ga2V5Ow0KICAgICAgICAgICAgICAgIGRvYy5hcHBlbmRDaGlsZChzZWxlY3QpOw0KICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uID0gInt7LndpemFyZC5lcGdTb3VyY2UuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJtM3UiOg0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBrZXksICIiKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LndpemFyZC5tM3UucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgiY2xhc3MiLCAid2l6YXJkIik7DQogICAgICAgICAgICAgICAgaW5wdXQuaWQgPSBrZXk7DQogICAgICAgICAgICAgICAgZG9jLmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbiA9ICJ7ey53aXphcmQubTN1LmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAieG1sdHYiOg0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBrZXksICIiKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LndpemFyZC54bWx0di5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJjbGFzcyIsICJ3aXphcmQiKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5pZCA9IGtleTsNCiAgICAgICAgICAgICAgICBkb2MuYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uID0gInt7LndpemFyZC54bWx0di5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICAgICAgY29uc29sZS5sb2coa2V5KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgfQ0KICAgICAgICB2YXIgcHJlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiUFJFIik7DQogICAgICAgIHByZS5pbm5lckhUTUwgPSBkZXNjcmlwdGlvbjsNCiAgICAgICAgZG9jLmFwcGVuZENoaWxkKHByZSk7DQogICAgICAgIGNvbnNvbGUubG9nKGhlYWRsaW5lLCBrZXkpOw0KICAgIH0NCn0NCmZ1bmN0aW9uIHJlYWR5Rm9yQ29uZmlndXJhdGlvbih3aXphcmQpIHsNCiAgICB2YXIgc2VydmVyID0gbmV3IFNlcnZlcigiZ2V0U2VydmVyQ29uZmlnIik7DQogICAgc2VydmVyLnJlcXVlc3QobmV3IE9iamVjdCgpKTsNCiAgICBzaG93RWxlbWVudCgibG9hZGluZyIsIGZhbHNlKTsNCiAgICBjb25maWd1cmF0aW9uV2l6YXJkW3dpemFyZF0uY3JlYXRlV2l6YXJkKCk7DQp9DQpmdW5jdGlvbiBzYXZlV2l6YXJkKCkgew0KICAgIHZhciBjbWQgPSAic2F2ZVdpemFyZCI7DQogICAgdmFyIGRpdiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb250ZW50Iik7DQogICAgdmFyIGNvbmZpZyA9IGRpdi5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCJ3aXphcmQiKTsNCiAgICB2YXIgd2l6YXJkID0gbmV3IE9iamVjdCgpOw0KICAgIGZvciAodmFyIGkgPSAwOyBpIDwgY29uZmlnLmxlbmd0aDsgaSsrKSB7DQogICAgICAgIHZhciBuYW1lOw0KICAgICAgICB2YXIgdmFsdWU7DQogICAgICAgIHN3aXRjaCAoY29uZmlnW2ldLnRhZ05hbWUpIHsNCiAgICAgICAgICAgIGNhc2UgIlNFTEVDVCI6DQogICAgICAgICAgICAgICAgbmFtZSA9IGNvbmZpZ1tpXS5uYW1lOw0KICAgICAgICAgICAgICAgIHZhbHVlID0gY29uZmlnW2ldLnZhbHVlOw0KICAgICAgICAgICAgICAgIC8vIFdlbm4gZGVyIFdlcnQgZWluZSBaYWhsIGlzdCwgd2lyZCBkaWVzZXIgYWxzIFphaGwgZ2VzcGVpY2hlcnQNCiAgICAgICAgICAgICAgICBpZiAoaXNOYU4odmFsdWUpKSB7DQogICAgICAgICAgICAgICAgICAgIHdpemFyZFtuYW1lXSA9IHZhbHVlOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICAgICAgd2l6YXJkW25hbWVdID0gcGFyc2VJbnQodmFsdWUpOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgIklOUFVUIjoNCiAgICAgICAgICAgICAgICBzd2l0Y2ggKGNvbmZpZ1tpXS50eXBlKSB7DQogICAgICAgICAgICAgICAgICAgIGNhc2UgInRleHQiOg0KICAgICAgICAgICAgICAgICAgICAgICAgbmFtZSA9IGNvbmZpZ1tpXS5uYW1lOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSBjb25maWdbaV0udmFsdWU7DQogICAgICAgICAgICAgICAgICAgICAgICBpZiAodmFsdWUubGVuZ3RoID09IDApIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgbXNnID0gbmFtZS50b1VwcGVyQ2FzZSgpICsgIjogIiArICJ7ey5hbGVydC5taXNzaW5nSW5wdXR9fSI7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgYWxlcnQobXNnKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICB3aXphcmRbbmFtZV0gPSB2YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICAgICAgLy8gY29kZS4uLg0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICB9DQogICAgfQ0KICAgIHZhciBkYXRhID0gbmV3IE9iamVjdCgpOw0KICAgIGRhdGFbIndpemFyZCJdID0gd2l6YXJkOw0KICAgIHZhciBzZXJ2ZXIgPSBuZXcgU2VydmVyKGNtZCk7DQogICAgc2VydmVyLnJlcXVlc3QoZGF0YSk7DQogICAgY29uc29sZS5sb2coZGF0YSk7DQp9DQovLyBXaXphcmQNCnZhciBjb25maWd1cmF0aW9uV2l6YXJkID0gbmV3IEFycmF5KCk7DQpjb25maWd1cmF0aW9uV2l6YXJkLnB1c2gobmV3IFdpemFyZEl0ZW0oInR1bmVyIiwgInt7LndpemFyZC50dW5lci50aXRsZX19IikpOw0KY29uZmlndXJhdGlvbldpemFyZC5wdXNoKG5ldyBXaXphcmRJdGVtKCJlcGdTb3VyY2UiLCAie3sud2l6YXJkLmVwZ1NvdXJjZS50aXRsZX19IikpOw0KY29uZmlndXJhdGlvbldpemFyZC5wdXNoKG5ldyBXaXphcmRJdGVtKCJtM3UiLCAie3sud2l6YXJkLm0zdS50aXRsZX19IikpOw0KY29uZmlndXJhdGlvbldpemFyZC5wdXNoKG5ldyBXaXphcmRJdGVtKCJ4bWx0diIsICJ7ey53aXphcmQueG1sdHYudGl0bGV9fSIpKTsNCg==" webUI["html/js/mapping-editor.js"] = "dmFyIG1hcHBpbmdFcnJvciAgPSBmYWxzZTsNCnZhciBidWxrICAgICAgICAgID0gZmFsc2U7DQp2YXIgYnVsa0VkaXRBbGwgICA9IGZhbHNlOyANCnZhciBzZWxlY3RPYmogICAgID0gbmV3IE9iamVjdCgpOw0KdmFyIHNlYXJjaE9iaiAgICAgPSBuZXcgT2JqZWN0KCk7DQoNCnZhciBidWxrSURzICAgICAgID0gbmV3IEFycmF5KCk7DQp2YXIgYnVsa0NoYW5nZU9iaiA9IG5ldyBPYmplY3QoKTsNCg0KZnVuY3Rpb24gY2hlY2tVbmRvKGtleSwgZWxtKSB7DQogIHZhciB0bXAgPSBuZXcgT2JqZWN0KCk7DQogIHRtcCA9IGVsbQ0KICBjb25zb2xlLmxvZygiLS0iKTsNCiAgaWYgKHVuZG8uaGFzT3duUHJvcGVydHkoImVwZ01hcHBpbmciKSkgew0KICAgIHhFUEdbImVwZ01hcHBpbmciXSA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkodW5kb1siZXBnTWFwcGluZyJdKSk7Ow0KICB9IGVsc2Ugew0KICAgIHVuZG9bImVwZ01hcHBpbmciXSA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkoZWxtKSk7DQogIH0NCn0NCg0KLy92YXIgcGxleENhdGVnb3JpZXMgPSBuZXcgQXJyYXkoIi0iLCAiQWN0aW9uIHNwb3J0cyIsICJBY3Rpb24iLCAiQWR1bHRzIG9ubHkiLCAiQWR2ZW50dXJlIiwgIkFlcm9iaWNzIiwgIkFuaW1hbHMiLCAiQW5pbWF0ZWQiLCAiQW5pbWUiLCAiQW50aG9sb2d5IiwgIkFyY2hlcnkiLCAiQXJ0IiwgIkFydHMvY3JhZnRzIiwgIkF1Y3Rpb24iLCAiQXV0byByYWNpbmciLCAiQXV0byIsICJBdmlhdGlvbiIsICJBd2FyZHMiLCAiQmFsbGV0IiwgIkJhc2ViYWxsIiwgIkJhc2tldGJhbGwiLCAiQmljeWNsZSByYWNpbmciLCAiQmljeWNsZSIsICJCaWxsaWFyZHMiLCAiQmlvZ3JhcGh5IiwgIkJvYXQgcmFjaW5nIiwgIkJvYXQiLCAiQm93bGluZyIsICJCb3hpbmciLCAiQnVzLi9maW5hbmNpYWwiLCAiQ2hpbGRyZW4iLCAiQ29sbGVjdGlibGVzIiwgIkNvbWVkeSBkcmFtYSIsICJDb21lZHkiLCAiQ29tbXVuaXR5IiwgIkNvbXB1dGVycyIsICJDb25zdW1lciIsICJDb29raW5nIiwgIkNyaW1lIGRyYW1hIiwgIkNyaW1lIiwgIkRhbmNlIiwgIkRhcmsgY29tZWR5IiwgIkRlYmF0ZSIsICJEaXZpbmciLCAiRG9jdWRyYW1hIiwgIkRvY3VtZW50YXJ5IiwgIkRyYW1hIiwgIkVkdWNhdGlvbmFsIiwgIkVudGVydGFpbm1lbnQiLCAiRW52aXJvbm1lbnQiLCAiRXF1ZXN0cmlhbiIsICJFcm90aWMiLCAiRXZlbnQiLCAiRmFudGFzeSIsICJGYXNoaW9uIiwgIkZlYXR1cmUgRmlsbSIsICJGaXNoaW5nIiwgIkZvb3RiYWxsIiwgIkdhbWUgc2hvdyIsICJHYW1pbmciLCAiR2F5L2xlc2JpYW4iLCAiR29sZiIsICJIYW5kYmFsbCIsICJIZWFsdGgiLCAiSGlzdG9yaWNhbCBkcmFtYSIsICJIaXN0b3J5IiwgIkhvY2tleSIsICJIb2xpZGF5IiwgIkhvbWUgaW1wcm92ZW1lbnQiLCAiSG9ycm9yIiwgIkhvcnNlIiwgIkhvdXNlL2dhcmRlbiIsICJIb3ctdG8iLCAiSW50ZXJ2aWV3IiwgIkludGwgc29jY2VyIiwgIkxhdyIsICJNYXJ0aWFsIGFydHMiLCAiTWVkaWNhbCIsICJNaWxpdGFyeSIsICJNaW5pc2VyaWVzIiwgIk1peGVkIG1hcnRpYWwgYXJ0cyIsICJNb3RvcmN5Y2xlIHJhY2luZyIsICJNb3RvcmN5Y2xlIiwgIk1vdG9yc3BvcnRzIiwgIk1vdW50YWluIGJpa2luZyIsICJNdXNpYyIsICJNdXNpY2FsIGNvbWVkeSIsICJNdXNpY2FsIiwgIk15c3RlcnkiLCAiTmF0dXJlIiwgIk5ld3MiLCAiTmV3c21hZ2F6aW5lIiwgIk9seW1waWNzIiwgIk9wZXJhIiwgIk91dGRvb3JzIiwgIlBhcmFkZSIsICJQYXJhbm9ybWFsIiwgIlBhcmVudGluZyIsICJQZXJmb3JtaW5nIGFydHMiLCAiUGxheW9mZiBzcG9ydHMiLCAiUG9rZXIiLCAiUG9saXRpY3MiLCAiUHJvIHdyZXN0bGluZyIsICJQdWJsaWMgYWZmYWlycyIsICJSZWFsaXR5IiwgIlJlbGlnaW91cyIsICJSb2RlbyIsICJSb2xsZXIgZGVyYnkiLCAiUm9tYW5jZSIsICJSb21hbnRpYyBjb21lZHkiLCAiUnVnYnkiLCAiUnVubmluZyIsICJTYWlsaW5nIiwgIlNjaWVuY2UgZmljdGlvbiIsICJTY2llbmNlIiwgIlNlbGYgaW1wcm92ZW1lbnQiLCAiU2VyaWVzIiwgIlNob290aW5nIiwgIlNob3BwaW5nIiwgIlNob3J0IEZpbG0iLCAiU2l0Y29tIiwgIlNraWluZyIsICJTbm9va2VyIiwgIlNvYXAiLCAiU29jY2VyIiwgIlNwZWNpYWwiLCAiU3BvcnRzIiwgInNwb3J0cyIsICJTcG9ydHMgZXZlbnQiLCAiU3BvcnRzIG5vbi1ldmVudCIsICJTcG9ydHMgdGFsayIsICJTdGFuZHVwIiwgIlN1cmZpbmciLCAiU3VzcGVuc2UiLCAiVFYgTW92aWUiLCAiVGFsayIsICJUZWNobm9sb2d5IiwgIlRlbm5pcyIsICJUaGVhdGVyIiwgIlRocmlsbGVyIiwgIlRyYWNrL2ZpZWxkIiwgIlRyYXZlbCIsICJUcmlhdGhsb24iLCAiVmFyaWV0eSIsICJWb2xsZXliYWxsIiwgIldhciIsICJXYXRlcnNwb3J0cyIsICJXZWF0aGVyIiwgIldlc3Rlcm4iLCAiV3Jlc3RsaW5nIiwgIllhY2h0IHJhY2luZyIsICJtb3ZpZSIsICJzZXJpZXMiLCAic3BvcnRzIiwgInR2c2hvdyIpOw0KdmFyIHBsZXhDYXRlZ29yaWVzVmFsdWVzID0gbmV3IEFycmF5KCItIiwgIktpZHMiLCAiTmV3cyIsICJNb3ZpZSIsICJTZXJpZXMiLCAiU3BvcnRzIikNCnZhciBwbGV4Q2F0ZWdvcmllc09wdGlvbiA9IG5ldyBBcnJheSgiLSIsICJLaWRzIChFbWJ5IG9ubHkpIiwgIk5ld3MiLCAiTW92aWUiLCAiU2VyaWVzIiwgIlNwb3J0cyIpDQoNCg0KZnVuY3Rpb24gb3Blbk1hcHBpbmdFZGl0b3IoZWxtKSB7DQogIHZhciBjb2x1bW5Ub1NvcnQgID0gMQ0KDQogIGNoZWNrVW5kbygiZXBnTWFwcGluZyIsIHhFUEdbImVwZ01hcHBpbmciXSkNCg0KICB2YXIgbmV3RGl2ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNldHRpbmdzIik7DQogIA0KICB2YXIgbmV3RW50cnkgPSBuZXcgT2JqZWN0KCk7DQogIG5ld0VudHJ5WyJfZWxlbWVudCJdICA9ICJIUiI7DQogIG5ld0Rpdi5hcHBlbmRDaGlsZChjcmVhdGVFbGVtZW50KG5ld0VudHJ5KSk7DQoNCiAgdmFyIG5ld0VudHJ5ID0gbmV3IE9iamVjdCgpOw0KICBuZXdFbnRyeVsiX2VsZW1lbnQiXSAgICA9ICJJTlBVVCI7DQogIG5ld0VudHJ5WyJ0eXBlIl0gICAgICAgID0gImJ1dHRvbiI7DQogIG5ld0VudHJ5WyJjbGFzcyJdICAgICAgID0gImJ1dHRvbiI7DQogIG5ld0VudHJ5WyJ2YWx1ZSJdICAgICAgID0gIlNhdmUiOw0KICBuZXdFbnRyeVsib25jbGljayJdICAgICA9ICJzYXZlWEVQRygpIjsNCiAgbmV3RGl2LmFwcGVuZENoaWxkKGNyZWF0ZUVsZW1lbnQobmV3RW50cnkpKTsNCg0KICB2YXIgbmV3RW50cnkgPSBuZXcgT2JqZWN0KCk7DQogIG5ld0VudHJ5WyJfZWxlbWVudCJdICAgID0gIklOUFVUIjsNCiAgbmV3RW50cnlbInR5cGUiXSAgICAgICAgPSAiYnV0dG9uIjsNCiAgbmV3RW50cnlbImNsYXNzIl0gICAgICAgPSAiYnV0dG9uIjsNCiAgbmV3RW50cnlbInZhbHVlIl0gICAgICAgPSAiQnVsayBFZGl0IjsNCiAgbmV3RW50cnlbIm9uY2xpY2siXSAgICAgPSAiYnVsa0VkaXQoKSI7DQogIG5ld0Rpdi5hcHBlbmRDaGlsZChjcmVhdGVFbGVtZW50KG5ld0VudHJ5KSk7DQoNCiAgdmFyIG5ld0VudHJ5ID0gbmV3IE9iamVjdCgpOw0KICBuZXdFbnRyeVsiX2VsZW1lbnQiXSAgICA9ICJJTlBVVCI7DQogIG5ld0VudHJ5WyJ0eXBlIl0gICAgICAgID0gImJ1dHRvbiI7DQogIG5ld0VudHJ5WyJjbGFzcyJdICAgICAgID0gImJ1dHRvbiI7DQogIG5ld0VudHJ5WyJ2YWx1ZSJdICAgICAgID0gIlNob3cgWEVQRyI7DQogIG5ld0VudHJ5WyJvbmNsaWNrIl0gICAgID0gInNob3dYRVBHKCkiOw0KICBuZXdEaXYuYXBwZW5kQ2hpbGQoY3JlYXRlRWxlbWVudChuZXdFbnRyeSkpOw0KDQogIHZhciBuZXdFbnRyeSA9IG5ldyBPYmplY3QoKTsNCiAgbmV3RW50cnlbIl9lbGVtZW50Il0gICAgPSAiSU5QVVQiOw0KICBuZXdFbnRyeVsiY2xhc3MiXSAgICAgICA9ICJzZWFyY2giOw0KICBuZXdFbnRyeVsiaWQiXSAgICAgICAgICA9ICJzZWFyY2hNYXBwaW5nIjsNCiAgbmV3RW50cnlbInR5cGUiXSAgICAgICAgPSAic2VhcmNoIjsNCiAgbmV3RW50cnlbInBsYWNlaG9sZGVyIl0gPSAiU2VhcmNoIjsNCiAgbmV3RW50cnlbIm9uY2hhbmdlIl0gICAgPSAic2VhcmNoSW5NYXBwaW5nKCkiOw0KICBuZXdEaXYuYXBwZW5kQ2hpbGQoY3JlYXRlRWxlbWVudChuZXdFbnRyeSkpOw0KDQogIHZhciBkaXYgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic2V0dGluZ3MiKTsNCiAgLy9zY3JlZW5Mb2coIkR1cGxpY2F0ZSBJRCIsICJlcnJvciIsIHRydWUpDQogIA0KDQogIC8vIEJ1aWxkIHRhYmxlDQoNCiAgdmFyIG5ld1dyYXBwZXIgPSBuZXcgT2JqZWN0KCk7DQogIG5ld1dyYXBwZXJbIl9lbGVtZW50Il0gID0gIkRJViI7DQogIG5ld1dyYXBwZXJbImlkIl0gICAgICAgID0gImJveC13cmFwcGVyIjsNCiAgZGl2LmFwcGVuZENoaWxkKGNyZWF0ZUVsZW1lbnQobmV3V3JhcHBlcikpOw0KDQoNCiAgdmFyIG5ld1RhYmxlID0gbmV3IE9iamVjdCgpOw0KICBuZXdUYWJsZVsiX2VsZW1lbnQiXSAgPSAiVEFCTEUiOw0KICBuZXdUYWJsZVsiaWQiXSAgICAgICAgPSAiaWRfbWFwcGluZyI7DQogIG5ld1RhYmxlWyJjbGFzcyJdICAgICA9ICJ0YWJsZS1tYXBwaW5nIjsNCiAgZGl2Lmxhc3RDaGlsZC5hcHBlbmRDaGlsZChjcmVhdGVFbGVtZW50KG5ld1RhYmxlKSk7DQogIHNob3dMb2FkaW5nU2NyZWVuKHRydWUpOw0KDQogIHNldFRpbWVvdXQoZnVuY3Rpb24oKXsgDQogICAgY3JlYXRlTWFwcGluZ1RhYmxlKCk7IA0KICB9LCAxMCk7DQoNCn0NCg0KZnVuY3Rpb24gY3JlYXRlU2VhcmNoT2JqKCkgew0KICBzZWFyY2hPYmogPSBuZXcgT2JqZWN0KCk7DQogIHZhciBJRHMgPSBnZXRPYmpLZXlzKHhFUEdbImVwZ01hcHBpbmciXSkNCiAgZm9yICh2YXIgaSA9IElEcy5sZW5ndGggLSAxOyBpID49IDA7IGktLSkgew0KICAgIHZhciBpdGVtID0geEVQR1siZXBnTWFwcGluZyJdW0lEc1tpXV07DQogICAgdmFyIHNlYXJjaElEID0gaXRlbVsieC1lcGciXTsNCiAgICB2YXIgc2VhcmNoVmFsdWUgPSAiIjsgDQogICAgc2VhcmNoVmFsdWUgPSBzZWFyY2hWYWx1ZSArIGl0ZW1bIngtY2hhbm5lbElEIl0gKyAiICI7DQogICAgc2VhcmNoVmFsdWUgPSBzZWFyY2hWYWx1ZSArIGl0ZW1bIngtY2F0ZWdvcnkiXSArICIgIjsNCiAgICBzZWFyY2hWYWx1ZSA9IHNlYXJjaFZhbHVlICsgaXRlbVsieC1uYW1lIl0gKyAiICI7DQogICAgc2VhcmNoVmFsdWUgPSBzZWFyY2hWYWx1ZSArIGl0ZW1bIngtZ3JvdXAtdGl0bGUiXSArICIgIjsNCiAgICBzZWFyY2hWYWx1ZSA9IHNlYXJjaFZhbHVlICsgaXRlbVsieC14bWx0di1maWxlIl0gKyAiICI7DQogICAgc2VhcmNoVmFsdWUgPSBzZWFyY2hWYWx1ZSArIGl0ZW1bIl9maWxlLm0zdS5uYW1lIl0gKyAiICI7DQoNCiAgICBzd2l0Y2goaXRlbVsieC1hY3RpdmUiXSkgew0KICAgICAgY2FzZSB0cnVlOiAgc2VhcmNoVmFsdWUgPSBzZWFyY2hWYWx1ZSArICJvbmxpbmUiOyBicmVhazsNCiAgICAgIGNhc2UgZmFsc2U6IHNlYXJjaFZhbHVlID0gc2VhcmNoVmFsdWUgKyAib2ZmbGluZSI7IGJyZWFrOw0KICAgIH0NCg0KICAgIHNlYXJjaE9ialtzZWFyY2hWYWx1ZV0gPSBzZWFyY2hJRDsNCg0KICB9DQp9DQoNCg0KZnVuY3Rpb24gY2FsY3VsYXRlV3JhcHBlckhlaWdodCgpIHsNCg0KICBpZiAoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImJveC13cmFwcGVyIikpew0KDQogICAgdmFyIGVsbSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJib3gtd3JhcHBlciIpOw0KICAgIA0KICAgIHZhciBkaXZzID0gbmV3IEFycmF5KCJteVN0cmVhbXNCb3giLCAiY2xpZW50SW5mbyIsICJzZXR0aW5ncyIpOw0KICAgIHZhciBlbGVtZW50c0hlaWdodCA9IDAgLSBlbG0ub2Zmc2V0SGVpZ2h0Ow0KICAgIGZvciAodmFyIGkgPSAwOyBpIDwgZGl2cy5sZW5ndGg7IGkrKykgew0KICAgICAgZWxlbWVudHNIZWlnaHQgPSBlbGVtZW50c0hlaWdodCArIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGRpdnNbaV0pLm9mZnNldEhlaWdodDsNCiAgICB9DQoNCiAgICBlbG0uc3R5bGUuaGVpZ2h0ID0gd2luZG93LmlubmVySGVpZ2h0IC0gZWxlbWVudHNIZWlnaHQgKyAicHgiOw0KDQogIH0NCg0KICBpZiAoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm1lbnUtd3JhcHBlciIpKXsNCg0KICAgIHZhciBlbG0gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibWVudS13cmFwcGVyIik7DQogICAgDQogICAgdmFyIG9mZmVzdCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzZXR0aW5ncyIpLm9mZnNldEhlaWdodCArIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJteVN0cmVhbXNCb3giKS5vZmZzZXRIZWlnaHQgKyBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY2xpZW50SW5mbyIpLm9mZnNldEhlaWdodDsNCiAgICANCiAgICBpZiAod2luZG93LmlubmVySGVpZ2h0ID4gb2ZmZXN0KSB7DQogICAgICBlbG0uc3R5bGUuaGVpZ2h0ID0gd2luZG93LmlubmVySGVpZ2h0ICsgInB4Ig0KICAgIH0gZWxzZSB7DQogICAgICBlbG0uc3R5bGUuaGVpZ2h0ID0gb2ZmZXN0ICsgInB4Ig0KICAgIH0NCiAgICANCg0KICB9DQoNCg0KfQ0KDQpmdW5jdGlvbiBjcmVhdGVNYXBwaW5nVGFibGUoKSB7DQogIGNvbHVtblRvU29ydCA9IDE7DQogIGNyZWF0ZVNlYXJjaE9iaigpOw0KDQogIC8vIENyZWF0ZSB0YWJsZSAoSGVhZGVyKQ0KICB2YXIgdGFibGUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiaWRfbWFwcGluZyIpOw0KICB0YWJsZS5pbm5lckhUTUwgPSAiIjsNCiAgdmFyIG5ld1RSID0gbmV3IE9iamVjdCgpOw0KICBuZXdUUlsiX2VsZW1lbnQiXSA9ICJUUiI7DQogIG5ld1RSWyJjbGFzcyJdICAgID0gInRhYmxlLW1hcHBpbmctaGVhZGVyIjsNCiAgdGFibGUuYXBwZW5kQ2hpbGQoY3JlYXRlRWxlbWVudChuZXdUUikpOw0KDQogIHZhciB0ciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJpZF9tYXBwaW5nIikubGFzdENoaWxkOw0KICB2YXIgdHJIZWFkbGluZXMgPSBuZXcgQXJyYXkoIkJ1bGsiLCAiQ2guIE5vLiIsICJMb2dvIiwgIkNoYW5uZWwgTmFtZSIsICJQbGF5bGlzdCIsICJHcm91cCBUaXRsZSIsICJYTUxUViBGaWxlIiwgIlhNTFRWIElEIiwgIlRpbWVzaGlmdCIpDQoNCiAgZm9yICh2YXIgaSA9IDA7IGkgPCB0ckhlYWRsaW5lcy5sZW5ndGg7IGkrKykgew0KICAgIHZhciBuZXdURCA9IG5ldyBPYmplY3QoKTsNCg0KICAgIG5ld1REWyJfZWxlbWVudCJdID0gIlREIjsNCiAgICBuZXdURFsiX3RleHQiXSAgICA9IHRySGVhZGxpbmVzW2ldOw0KDQogICAgDQoNCiAgICB2YXIgd2lkdGggPSAiIjsNCiAgICBzd2l0Y2godHJIZWFkbGluZXNbaV0pIHsNCg0KICAgICAgY2FzZSAiQnVsayI6ICANCiAgICAgICAgDQogICAgICAgIG1heFdpZHRoID0gIjMycHgiOyANCiAgICAgICAgbWluV2lkdGggPSAiMzJweCI7IA0KICAgIA0KICAgICAgICAvLyBDcmVhdGUgYnVsayBURA0KICAgICAgICB2YXIgbmV3Q2hlY2tib3ggPSBuZXcgT2JqZWN0KCk7DQogICAgICAgIG5ld0NoZWNrYm94WyJfZWxlbWVudCJdID0gIklOUFVUIjsNCiAgICAgICAgbmV3Q2hlY2tib3hbInR5cGUiXSAgICAgPSAiY2hlY2tib3giOw0KICAgICAgICBuZXdDaGVja2JveFsiY2xhc3MiXSAgICA9ICJidWxrIGhpZGVCdWxrIjsNCiAgICAgICAgbmV3Q2hlY2tib3hbIm9ubW91c2VvdXQiXSA9ICJqYXZhc2NyaXB0OiB0aGlzLmJsdXIoKSINCiAgICAgICAgbmV3Q2hlY2tib3hbIm9uY2xpY2siXSAgICA9ICJqYXZhc2NyaXB0OiBidWxrRWRpdEFsbENoYW5uZWxzKCkiDQoNCiAgICANCiAgICAgICAgLy9uZXdURC5hcHBlbmRDaGlsZChjcmVhdGVFbGVtZW50KG5ld0NoZWNrYm94KSk7DQoNCiAgICAgICAgYnJlYWs7DQoNCiAgICAgIGNhc2UgIkNoLiBOby4iOiANCiAgICAgICAgbWF4V2lkdGggPSAiODBweCI7IA0KICAgICAgICBtaW5XaWR0aCA9ICI3MHB4IjsgDQogICAgICAgIG5ld1REWyJvbmNsaWNrIl0gID0gImphdnNjcmlwdDogc29ydFRhYmxlKCIgKyBpICsgIik7IjsNCiAgICAgICAgbmV3VERbImNsYXNzIl0gICAgPSAicG9pbnRlciI7DQogICAgICAgIGJyZWFrOw0KICAgICAgDQogICAgICBjYXNlICJMb2dvIjogIG1heFdpZHRoID0gIjEyMHB4IjsgbWluV2lkdGggPSAiNjBweCI7IGJyZWFrOw0KICAgICAgDQogICAgICBjYXNlICJDaGFubmVsIE5hbWUiOiAgDQogICAgICAgIG1heFdpZHRoID0gIjUwJSI7IA0KICAgICAgICBtaW5XaWR0aCA9ICIyMDBweCI7IA0KICAgICAgICBuZXdURFsib25jbGljayJdICA9ICJqYXZzY3JpcHQ6IHNvcnRUYWJsZSgiICsgaSArICIpOyI7DQogICAgICAgIG5ld1REWyJjbGFzcyJdID0gInBvaW50ZXIiOw0KICAgICAgICBicmVhazsNCg0KICAgICAgY2FzZSAiUGxheWxpc3QiOiAgICAgIA0KICAgICAgICBtYXhXaWR0aCA9ICIxNTBweCI7IA0KICAgICAgICBtaW5XaWR0aCA9ICIxMDBweCI7IA0KICAgICAgICBuZXdURFsib25jbGljayJdICA9ICJqYXZzY3JpcHQ6IHNvcnRUYWJsZSgiICsgaSArICIpOyI7DQogICAgICAgIG5ld1REWyJjbGFzcyJdICAgID0gInBvaW50ZXIiOw0KICAgICAgICBicmVhazsNCiAgICAgIA0KICAgICAgY2FzZSAiR3JvdXAgVGl0bGUiOiAgIA0KICAgICAgICBtYXhXaWR0aCA9ICIxNTBweCI7IA0KICAgICAgICBtaW5XaWR0aCA9ICIxMDBweCI7IA0KICAgICAgICBuZXdURFsib25jbGljayJdICA9ICJqYXZzY3JpcHQ6IHNvcnRUYWJsZSgiICsgaSArICIpOyI7DQogICAgICAgIG5ld1REWyJjbGFzcyJdICAgID0gInBvaW50ZXIiOw0KICAgICAgICBicmVhazsNCiAgICAgIA0KICAgICAgY2FzZSAiWE1MVFYgRmlsZSI6ICAgIA0KICAgICAgICBtYXhXaWR0aCA9ICIxNTBweCI7IA0KICAgICAgICBtaW5XaWR0aCA9ICIxMDBweCI7IA0KICAgICAgICAvL25ld1REWyJvbmNsaWNrIl0gID0gImphdnNjcmlwdDogc29ydFRhYmxlKCIgKyBpICsgIik7IjsNCiAgICAgICAgbmV3VERbImNsYXNzIl0gICAgPSAiIjsNCiAgICAgICAgYnJlYWs7DQogICAgICANCg0KICAgICAgY2FzZSAiWE1MVFYgSUQiOiAgICAgIG1heFdpZHRoID0gIjE1MHB4IjsgbWluV2lkdGggPSAiMTAwcHgiOyBicmVhazsNCg0KICAgICAgY2FzZSAiVGltZXNoaWZ0IjogICAgICBtYXhXaWR0aCA9ICI1MHB4IjsgbWluV2lkdGggPSAiMjBweCI7IGJyZWFrOw0KDQogICAgICBkZWZhdWx0OiANCiAgICAgICAgbmV3VERbImNsYXNzIl0gICAgPSAiIjsNCiAgICAgICAgYnJlYWs7DQogICAgfQ0KDQogICAgdHIuYXBwZW5kQ2hpbGQoY3JlYXRlRWxlbWVudChuZXdURCkpOw0KICAgIGlmICh0ckhlYWRsaW5lc1tpXSA9PSAiQnVsayIpIHsNCiAgICAgIHRyLmxhc3RDaGlsZC5pbm5lckhUTUwgPSAiIjsNCiAgICAgIHRyLmxhc3RDaGlsZC5hcHBlbmRDaGlsZChjcmVhdGVFbGVtZW50KG5ld0NoZWNrYm94KSk7DQogICAgICANCiAgICB9DQogICAgDQogICAgdmFyIGVsbSA9IHRyLmxhc3RDaGlsZDsNCiAgICBlbG0uc3R5bGUud2lkdGggPSBtYXhXaWR0aDsNCiAgICBlbG0uc3R5bGUubWF4V2lkdGggPSBtYXhXaWR0aDsNCiAgICBlbG0uc3R5bGUubWluV2lkdGggPSBtaW5XaWR0aDsNCg0KICB9DQogIGNhbGN1bGF0ZVdyYXBwZXJIZWlnaHQoKTsNCiAgdmFyIElEcyA9IGdldE9iaktleXMoeEVQR1siZXBnTWFwcGluZyJdKQ0KDQogIHZhciBhbGxYbWx0dkZpbGVzID0gZ2V0T2JqS2V5cyh4RVBHWyJ4bWx0dk1hcCJdKTsNCg0KICBpZiAoYWxsWG1sdHZGaWxlcyA9PSAwKSB7DQogICAgc2hvd0xvYWRpbmdTY3JlZW4oZmFsc2UpOw0KICAgIHJldHVybjsNCiAgfQ0KDQogIC8vIFNvcnQgSURzDQogIHZhciBwb3NPYmogPSBuZXcgT2JqZWN0KCk7DQogIGZvciAodmFyIGkgPSAwOyBpIDwgSURzLmxlbmd0aDsgaSsrKSB7DQogICAgdmFyIGl0ZW0gID0geEVQR1siZXBnTWFwcGluZyJdW0lEc1tpXV07DQogICAgdmFyIHBvcw0KICAgIHN3aXRjaChpc05hTih4RVBHWyJlcGdNYXBwaW5nIl1bSURzW2ldXVsieC1jaGFubmVsSUQiXSkpIHsNCiAgICAgIGNhc2UgZmFsc2U6IHBvcyA9IHBhcnNlRmxvYXQoeEVQR1siZXBnTWFwcGluZyJdW0lEc1tpXV1bIngtY2hhbm5lbElEIl0pIDsgYnJlYWs7DQogICAgfQ0KICAgIHBvc09ialtwb3NdID0gaXRlbTsNCiAgfQ0KICBwb3NGbG9hdCA9IGdldE9iaktleXMocG9zT2JqKQ0KICBmdW5jdGlvbiBzb3J0RmxvYXQoYSxiKSB7IHJldHVybiBhIC0gYjsgfQ0KICBwb3NGbG9hdC5zb3J0KHNvcnRGbG9hdCkNCg0KICAvL2NvbnNvbGUubG9nKHBvc0Zsb2F0KTsNCg0KICAvLyAtLS0NCg0KICBpZiAoSURzLmxlbmd0aCA+IDIwMCkgew0KICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKXsgDQogICAgICBzaG93TG9hZGluZ1NjcmVlbih0cnVlKTsNCiAgICB9LCAxKTsNCg0KICB9DQoNCg0KICAvLyB0YWJsZSBmb3IgaW50IGNoYW5uZWwgSUQncw0KICBmb3IgKHZhciBpID0gMDsgaSA8IHBvc0Zsb2F0Lmxlbmd0aDsgaSsrKSB7DQoNCiAgICB2YXIgdGFibGUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiaWRfbWFwcGluZyIpOw0KICAgIHZhciBpdGVtICA9IHBvc09ialtwb3NGbG9hdFtpXV07DQogICAgLy92YXIgaXRlbSAgPSB4RVBHWyJlcGdNYXBwaW5nIl1bSURzW2ldXTsNCiAgICAvL2NvbnNvbGUubG9nKGl0ZW0pOw0KICAgIHZhciBuZXdUUiA9IG5ldyBPYmplY3QoKTsNCiAgICBuZXdUUlsiX2VsZW1lbnQiXSAgICAgICA9ICJUUiI7DQogICAgbmV3VFJbImNsYXNzIl0gICAgICAgICAgPSAiIjsNCiAgICBuZXdUUlsiaWQiXSAgICAgICAgICAgICA9IGl0ZW1bIngtZXBnIl07DQogICAgbmV3VFJbIm9uY29udGV4dG1lbnUiXSAgPSAnamF2YXNjcmlwdDogc3dpdGNoQ2hhbm5lbFN0YXR1cygiJyArIGl0ZW1bIngtZXBnIl0gKyAnIik7IHJldHVybiBmYWxzZTsnOw0KICAgIHRhYmxlLmFwcGVuZENoaWxkKGNyZWF0ZUVsZW1lbnQobmV3VFIpKTsNCg0KICAgIHZhciB0ciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJpZF9tYXBwaW5nIikubGFzdENoaWxkOw0KICAgIA0KICAgIC8vIENyZWF0ZSBidWxrIFREDQogICAgdmFyIG5ld1REID0gbmV3IE9iamVjdCgpOw0KICAgIG5ld1REWyJfZWxlbWVudCJdICAgPSAiSU5QVVQiOw0KICAgIG5ld1REWyJ0eXBlIl0gICAgICAgPSAiY2hlY2tib3giOw0KICAgIG5ld1REWyJjbGFzcyJdICAgICAgPSAiYnVsayBoaWRlQnVsayI7DQogICAgbmV3VERbIm9ubW91c2VvdXQiXSA9ICJqYXZhc2NyaXB0OiB0aGlzLmJsdXIoKSINCiAgICANCiAgICBjcmVhdGVOZXdURChuZXdURCwgdHIpOw0KICAgIA0KDQogICAgLy8gQ3JlYXRlIElEIFREDQogICAgdmFyIG5ld1REID0gbmV3IE9iamVjdCgpOw0KICAgIG5ld1REWyJfZWxlbWVudCJdID0gIklOUFVUIjsNCiAgICBuZXdURFsidHlwZSJdICAgICA9ICJ0ZXh0Ig0KICAgIG5ld1REWyJjbGFzcyJdICAgID0gInc0MHB4IjsNCiAgICBuZXdURFsidmFsdWUiXSAgICA9IGl0ZW1bIngtY2hhbm5lbElEIl07DQogICAgbmV3VERbIm9uZm9jdXNvdXQiXSA9ICJqYXZhc2NyaXB0OiBhcnJhbmdlVGFibGUodGhpcyk7Ig0KICAgIGNyZWF0ZU5ld1REKG5ld1RELCB0cik7DQoNCiAgICAvLyBDcmVhdGUgSU1HIFREDQogICAgdmFyIG5ld1REID0gbmV3IE9iamVjdCgpOw0KICAgIG5ld1REWyJfZWxlbWVudCJdID0gIklNRyI7DQogICAgbmV3VERbIm9uY2xpY2siXSAgPSAnamF2YXNjcmlwdDogbWFwcGluZ0RldGFpbCgiJyArIGl0ZW1bIngtZXBnIl0gKyAnIik7JzsNCiAgICBpZiAoaXRlbVsidHZnLWxvZ28iXSAhPSB1bmRlZmluZWQpIHsNCiAgICAgIG5ld1REWyJzcmMiXSAgICAgID0gaXRlbVsidHZnLWxvZ28iXTsNCiAgICB9IGVsc2Ugew0KICAgICAgaXRlbVsidHZnLWxvZ28iXSA9ICIiOw0KICAgICAgbmV3VERbInNyYyJdID0gIiI7DQogICAgfQ0KICAgIGNyZWF0ZU5ld1REKG5ld1RELCB0cik7DQogICAgdHIubGFzdENoaWxkLnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBtYXBwaW5nRGV0YWlsKCInICsgaXRlbVsieC1lcGciXSArICciKTsnKQ0KDQogICAgLy8gQ3JlYXRlIFAgVEQgKGNoYW5uZWwgbmFtZSkNCiAgICB2YXIgbmV3VEQgPSBuZXcgT2JqZWN0KCk7DQogICAgbmV3VERbIl9lbGVtZW50Il0gPSAiUCI7DQogICAgbmV3VERbIl90ZXh0Il0gICAgPSBpdGVtWyJ4LW5hbWUiXTsNCiAgICBuZXdURFsiY2xhc3MiXSAgICAgPSBpdGVtWyJ4LWNhdGVnb3J5Il07DQoNCiAgICBjcmVhdGVOZXdURChuZXdURCwgdHIpOw0KICAgIHRyLmxhc3RDaGlsZC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogbWFwcGluZ0RldGFpbCgiJyArIGl0ZW1bIngtZXBnIl0gKyAnIik7JykNCiAgICB0ci5sYXN0Q2hpbGQubGFzdENoaWxkLnN0eWxlLnBhZGRpbmcgPSAiNXB4IDEwcHgiOw0KDQogICAgLy8gQ3JlYXRlIFAgVEQgKFBsYXlsaXN0IE5hbWUpDQogICAgdmFyIG5ld1REID0gbmV3IE9iamVjdCgpOw0KICAgIG5ld1REWyJfZWxlbWVudCJdID0gIlAiOw0KICAgIG5ld1REWyJfdGV4dCJdICAgID0gaXRlbVsiX2ZpbGUubTN1Lm5hbWUiXTsNCiAgICBuZXdURFsiY2xhc3MiXSAgICAgPSBpdGVtWyJ0YWJsZUVsbGlwc2lzIl07DQogICAgDQogICAgY3JlYXRlTmV3VEQobmV3VEQsIHRyKTsNCiAgICB0ci5sYXN0Q2hpbGQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IG1hcHBpbmdEZXRhaWwoIicgKyBpdGVtWyJ4LWVwZyJdICsgJyIpOycpDQogICAgDQogICAgLy8gQ3JlYXRlIFAgVEQgKEdyb3VwIFRpdGxlKQ0KICAgIHZhciBuZXdURCA9IG5ldyBPYmplY3QoKTsNCiAgICBuZXdURFsiX2VsZW1lbnQiXSA9ICJQIjsNCiAgICBuZXdURFsiX3RleHQiXSAgICA9IGl0ZW1bIngtZ3JvdXAtdGl0bGUiXTsNCiAgICBuZXdURFsiY2xhc3MiXSAgICAgPSBpdGVtWyJ0YWJsZUVsbGlwc2lzIl07DQogICAgDQogICAgY3JlYXRlTmV3VEQobmV3VEQsIHRyKTsNCiAgICB0ci5sYXN0Q2hpbGQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IG1hcHBpbmdEZXRhaWwoIicgKyBpdGVtWyJ4LWVwZyJdICsgJyIpOycpDQoNCiAgICANCiAgICAvLyBDcmVhdGUgUCBURCAoWE1MVFYgZmlsZSkNCiAgICB2YXIgbmV3VEQgPSBuZXcgT2JqZWN0KCk7DQogICAgbmV3VERbIl9lbGVtZW50Il0gICAgICAgPSAiUCI7DQogICAgbmV3VERbImNsYXNzIl0gICAgPSAidGFibGVFbGxpcHNpcyI7DQogICAgbmV3VERbIl90ZXh0Il0gPSAiLSINCg0KICAgIGlmIChhbGxYbWx0dkZpbGVzLmluZGV4T2YoaXRlbVsieC14bWx0di1maWxlIl0pICE9IC0xKSB7DQogICAgICB2YXIgeFhtbHR2RmlsZSA9IGl0ZW1bIngteG1sdHYtZmlsZSJdOw0KICAgICAgc3dpdGNoKHhYbWx0dkZpbGUpIHsNCiAgICAgICAgY2FzZSAiLSI6ICAgICAgICAgICBuZXdURFsiX3RleHQiXSAgPSB4WG1sdHZGaWxlOyBicmVhazsNCiAgICAgICAgY2FzZSAieFRlVmUgRHVtbXkiOiBuZXdURFsiX3RleHQiXSAgPSB4WG1sdHZGaWxlOyBicmVhazsNCiAgICAgICAgZGVmYXVsdDogICAgICAgICAgICBuZXdURFsiX3RleHQiXSAgPSBnZXRWYWx1ZUZyb21Qcm92aWRlckZpbGUoeFhtbHR2RmlsZSwgInhtbHR2IiwgIm5hbWUiKTsgYnJlYWs7DQogICAgICAgIA0KICAgICAgfQ0KICAgICAgLy9jb25zb2xlLmxvZyhuZXdURCk7DQoNCiAgICAgIC8vbmV3VERbIl90ZXh0Il0gICAgPSBpdGVtWyJ4LXhtbHR2LWZpbGUiXTsNCiAgICB9IGVsc2Ugew0KICAgICAgLy9uZXdURFsiX3RleHQiXSA9ICItIg0KICAgIH0NCiAgICBjcmVhdGVOZXdURChuZXdURCwgdHIpOw0KICAgIHRyLmxhc3RDaGlsZC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogbWFwcGluZ0RldGFpbCgiJyArIGl0ZW1bIngtZXBnIl0gKyAnIik7JykNCg0KICAgIC8vIENyZWF0ciBQIFREIChYTUxUViBjaGFubmVsIElEKQ0KICAgIG5ld1REWyJfZWxlbWVudCJdID0gIlAiOw0KICAgIG5ld1REWyJjbGFzcyJdICAgID0gInRhYmxlRWxsaXBzaXMiOw0KDQogICAgaWYgKGl0ZW1bIngtbWFwcGluZyJdICE9IHVuZGVmaW5lZCkgew0KICAgICAgbmV3VERbIl90ZXh0Il0gICAgPSBpdGVtWyJ4LW1hcHBpbmciXTsNCiAgICB9DQogICAgDQogICAgY3JlYXRlTmV3VEQobmV3VEQsIHRyKTsNCiAgICB0ci5sYXN0Q2hpbGQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IG1hcHBpbmdEZXRhaWwoIicgKyBpdGVtWyJ4LWVwZyJdICsgJyIpOycpDQoNCg0KICAgIHZhciB4WG1sdHZGaWxlICA9IGl0ZW1bIngteG1sdHYtZmlsZSJdOw0KICAgIHZhciB4TWFwcGluZyAgICA9IGl0ZW1bIngtbWFwcGluZyJdOw0KICAgIHZhciB0dmdJRCAgICAgICA9IGl0ZW1bInR2Zy1pZCJdOw0KICAgIA0KICAgIC8vY29uc29sZS5sb2coaXRlbVsieC1lcGciXSk7DQogICAgLy9jb25zb2xlLmxvZyhpdGVtKTsNCg0KICAgIGlmIChpdGVtWyJ4LWFjdGl2ZSJdID09IHRydWUpIHsNCiAgICAgIHRyLmNsYXNzTmFtZSA9ICJhY3RpdmVFUEciOw0KICAgIH0gZWxzZSB7DQogICAgICB0ci5jbGFzc05hbWUgPSAibm90QWN0aXZlRVBHIjsNCiAgICB9DQogICAgDQogIH0NCg0KICBzb3J0VGFibGUoMSk7DQoNCiAgc2V0VGltZW91dChmdW5jdGlvbigpeyANCiAgICBzaG93TG9hZGluZ1NjcmVlbihmYWxzZSk7DQogIH0sIDUpOw0KfQ0KDQpmdW5jdGlvbiBzZWFyY2hJbk1hcHBpbmcoZWxtKSB7DQoNCiAgdmFyIHNlYXJjaCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzZWFyY2hNYXBwaW5nIikudmFsdWU7DQogIHZhciB2YWx1ZXMgPSBnZXRPYmpLZXlzKHNlYXJjaE9iaikNCiAgDQogIGZvciAodmFyIGkgPSB2YWx1ZXMubGVuZ3RoIC0gMTsgaSA+PSAwOyBpLS0pIHsNCiAgICB2YXIgaWQgPSBzZWFyY2hPYmpbdmFsdWVzW2ldXTsNCiAgICB2YXIgYm9vbCA9IHZhbHVlc1tpXS50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKHNlYXJjaC50b0xvd2VyQ2FzZSgpKTsNCiAgICBzd2l0Y2goYm9vbCkgew0KICAgICAgY2FzZSB0cnVlOiAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpLnN0eWxlLmRpc3BsYXkgPSAiIjsgYnJlYWs7DQogICAgICBjYXNlIGZhbHNlOiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkuc3R5bGUuZGlzcGxheSA9ICJub25lIjsgYnJlYWs7DQogICAgfQ0KICB9DQoNCn0NCg0KZnVuY3Rpb24gbWFwcGluZ0RldGFpbCh4ZXBnKSB7DQogIA0KICBidWxrSURzICAgPSBuZXcgQXJyYXkoKTsNCiAgdmFyIGFjdGl2ZUVsZW1lbnQgPSBkb2N1bWVudC5hY3RpdmVFbGVtZW50Ow0KICAvLyBJZiBpbnB1dCBpZCwgcmV0dXJuDQogIGlmIChhY3RpdmVFbGVtZW50LnRhZ05hbWUgPT0gIklOUFVUIikgew0KICAgIHJldHVybg0KICB9DQoNCiAgaWYgKGJ1bGsgPT0gdHJ1ZSkgew0KICAgIHZhciBlbG0gPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCJidWxrIik7DQogICAgZm9yICh2YXIgaSA9IDE7IGkgPCBlbG0ubGVuZ3RoOyBpKyspIHsNCiAgICAgIGlmIChlbG1baV0uY2hlY2tlZCA9PSB0cnVlKSB7DQogICAgICAgIHZhciBpZCA9IGVsbVtpXS5wYXJlbnRFbGVtZW50LnBhcmVudEVsZW1lbnQuaWQ7DQogICAgICAgIGJ1bGtJRHMucHVzaChpZCkNCiAgICAgIH0NCiAgICAgIA0KICAgIH0NCg0KICAgIGlmIChidWxrSURzLmxlbmd0aCA9PSAwKSB7DQogICAgICBzaG93RWxlbWVudCgncG9wdXAnLCBmYWxzZSkNCiAgICAgIGFsZXJ0KCJObyBjaGFubmVscyBzZWxlY3RlZCBmb3IgZWRpdGluZyIpDQogICAgICByZXR1cm4NCiAgICB9DQoNCiAgICB4ZXBnID0gYnVsa0lEc1swXQ0KICB9DQoNCg0KICBjcmVhdGVTZWFyY2hPYmooKTsNCiAgDQogIHNob3dQb3BVcEVsZW1lbnQoJ21hcHBpbmctZGV0YWlsJyk7DQoNCiAgdmFyIHRoaXNDaGFubmVsID0geEVQR1siZXBnTWFwcGluZyJdW3hlcGddOw0KICAvL2NvbnNvbGUubG9nKHRoaXNDaGFubmVsKTsNCiAgdmFyIHhYbWx0dkZpbGUgID0gdGhpc0NoYW5uZWxbIngteG1sdHYtZmlsZSJdOw0KICB2YXIgeE1hcHBpbmcgICAgPSB0aGlzQ2hhbm5lbFsieC1tYXBwaW5nIl07DQogIHZhciB4Q2F0ZWdvcnkgICA9IHRoaXNDaGFubmVsWyJ4LWNhdGVnb3J5Il07DQoNCiAgaWYgKHhYbWx0dkZpbGUgPT0gdW5kZWZpbmVkKSB7DQogICAgdGhpc0NoYW5uZWxbIngteG1sdHYtZmlsZSJdID0gIi0iOw0KICAgIHhYbWx0dkZpbGUgPSAiLSI7DQogIH0NCg0KICBpZiAoeE1hcHBpbmcgPT0gdW5kZWZpbmVkKSB7DQogICAgdGhpc0NoYW5uZWxbIngtbWFwcGluZyJdID0gIi0iOw0KICAgIHhNYXBwaW5nID0gIi0iOw0KICB9DQoNCiAgLyoNCiAgY29uc29sZS5sb2coIklEOiIsIHhlcGcpOw0KICBjb25zb2xlLmxvZygiWE1MVFYgRmlsZToiLCB4WG1sdHZGaWxlKTsNCiAgY29uc29sZS5sb2coIk1hcHBpbmc6IiwgeE1hcHBpbmcpOw0KICAqLw0KDQogIHZhciBrZXlzID0gZ2V0T2JqS2V5cyh0aGlzQ2hhbm5lbCk7DQogIGZvciAodmFyIGkgPSAwOyBpIDwga2V5cy5sZW5ndGg7IGkrKykgew0KICAgIGlmKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGtleXNbaV0pKXsNCiAgICAgIHZhciB0ZCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGtleXNbaV0pDQogICAgfSBlbHNlIHsNCiAgICAgIHZhciB0ZCA9IHVuZGVmaW5lZDsNCiAgICB9DQogICAgDQogICAgdmFyIG5ld0l0ZW0gPSBuZXcgT2JqZWN0KCk7DQogICAgdmFyIHZhbHVlcywgdGV4dCA9IG5ldyBBcnJheSgpOw0KICAgIHN3aXRjaChrZXlzW2ldKSB7DQogICAgICBjYXNlICJ4LXhtbHR2LWZpbGUiOiANCiAgICAgICAgdmFyIGZpbGVJRHMgPSBnZXRPYmpLZXlzKHhFUEdbInhtbHR2TWFwIl0pOw0KICAgICAgICB2YXIgdmFsdWUgPSBuZXcgQXJyYXkoIi0iKTsNCiAgICAgICAgdmFyIHRleHQgID0gbmV3IEFycmF5KCItIik7DQoNCiAgICAgICAgZm9yICh2YXIgaiA9IGZpbGVJRHMubGVuZ3RoIC0gMTsgaiA+PSAwOyBqLS0pIHsNCiAgICAgICAgICBpZiAoZmlsZUlEc1tqXSAhPSAieFRlVmUgRHVtbXkiKSB7DQogICAgICAgICAgICB2YWx1ZS5wdXNoKGdldFZhbHVlRnJvbVByb3ZpZGVyRmlsZShmaWxlSURzW2pdLCAieG1sdHYiLCAiZmlsZS54dGV2ZSIpKQ0KICAgICAgICAgICAgdGV4dC5wdXNoKGdldFZhbHVlRnJvbVByb3ZpZGVyRmlsZShmaWxlSURzW2pdLCAieG1sdHYiLCAibmFtZSIpKQ0KICAgICAgICAgIH0gZWxzZSB7DQogICAgICAgICAgICB2YWx1ZS5wdXNoKGZpbGVJRHNbal0pDQogICAgICAgICAgICB0ZXh0LnB1c2goZmlsZUlEc1tqXSkNCiAgICAgICAgICB9DQogICAgICAgICAgDQogICAgICAgIH0NCiAgICAgICAgDQogICAgICAgIG5ld0l0ZW1bIl9lbGVtZW50Il0gICAgICAgPSAiU0VMRUNUIjsNCiAgICAgICAgbmV3SXRlbVsiX29wdGlvblZhbHVlcyJdICA9IHZhbHVlOw0KICAgICAgICBuZXdJdGVtWyJfb3B0aW9uVGV4dCJdICAgID0gdGV4dA0KICAgICAgICBuZXdJdGVtWyJ2YWx1ZSJdICAgICAgICAgID0geFhtbHR2RmlsZTsNCiAgICAgICAgbmV3SXRlbVsib25jaGFuZ2UiXSAgICAgICA9ICdqYXZhc2NyaXB0OiBjaGFuZ2VYbWx0dkZpbGUoIicgKyB4ZXBnICsgJyIsdGhpcyk7JzsNCg0KICAgICAgICBicmVhazsNCg0KICAgICAgY2FzZSAieC1tYXBwaW5nIjogDQoNCiAgICAgICAgdmFyIHZhbHVlcyA9IGdldE9iaktleXMoeEVQR1sieG1sdHZNYXAiXVt4WG1sdHZGaWxlXSk7DQoNCiAgICAgICAgZm9yICh2YXIgaiA9IDA7IGogPCB2YWx1ZXMubGVuZ3RoOyBqKyspIHsNCiAgICAgICAgICANCiAgICAgICAgICBpZiAoeEVQR1sieG1sdHZNYXAiXVt4WG1sdHZGaWxlXVt2YWx1ZXNbal1dLmhhc093blByb3BlcnR5KCdkaXNwbGF5LW5hbWUnKSA9PSB0cnVlKSB7DQogICAgICAgICAgICB2YXIgZGlzcGxheU5hbWUgPSB4RVBHWyJ4bWx0dk1hcCJdW3hYbWx0dkZpbGVdW3ZhbHVlc1tqXV1bImRpc3BsYXktbmFtZSJdOw0KICAgICAgICAgIH0gZWxzZSB7DQogICAgICAgICAgICB2YXIgZGlzcGxheU5hbWUgPSAiLSINCiAgICAgICAgICB9DQogICAgICAgICAgDQogICAgICAgICAgLy90ZXh0W2pdID0gdmFsdWVzW2pdICsgIiAoIiArIGRpc3BsYXlOYW1lICsgIikiOw0KICAgICAgICAgIHRleHRbal0gPSBkaXNwbGF5TmFtZSArICIgKCIgKyB2YWx1ZXNbal0gICsgIikiOw0KICAgICAgICB9DQoNCiAgICAgICAgdGV4dC51bnNoaWZ0KCItIik7DQogICAgICAgIHZhbHVlcy51bnNoaWZ0KCItIik7DQogICAgICAgIG5ld0l0ZW1bIl9lbGVtZW50Il0gICAgICAgPSAiU0VMRUNUIjsNCiAgICAgICAgbmV3SXRlbVsiX29wdGlvblZhbHVlcyJdICA9IHZhbHVlczsNCiAgICAgICAgbmV3SXRlbVsiX29wdGlvblRleHQiXSAgICA9IHRleHQNCiAgICAgICAgbmV3SXRlbVsidmFsdWUiXSAgICAgICAgICA9IHhNYXBwaW5nOw0KICAgICAgICBuZXdJdGVtWyJvbmNoYW5nZSJdICAgICAgID0gJ2phdmFzY3JpcHQ6IG1hcHBpbmdDaGFubmVsKCInICsgeGVwZyArICciLHRoaXMpOyc7DQogICAgICAgIGJyZWFrOw0KDQogICAgICBjYXNlICJ4LWNhdGVnb3J5IjoNCiAgICAgICAgLy92YXIgdmFsdWVzID0gcGxleENhdGVnb3JpZXNWYWx1ZXMNCiAgICAgICAgbmV3SXRlbVsiX2VsZW1lbnQiXSAgICAgICA9ICJTRUxFQ1QiOw0KICAgICAgICBuZXdJdGVtWyJfb3B0aW9uVmFsdWVzIl0gID0gcGxleENhdGVnb3JpZXNWYWx1ZXM7DQogICAgICAgIG5ld0l0ZW1bIl9vcHRpb25UZXh0Il0gICAgPSBwbGV4Q2F0ZWdvcmllc09wdGlvbjsNCiAgICAgICAgbmV3SXRlbVsidmFsdWUiXSAgICAgICAgICA9IHhDYXRlZ29yeTsNCiAgICAgICAgbmV3SXRlbVsib25jaGFuZ2UiXSAgICAgICA9ICdzYXZlQ2F0ZWdvcnkoIicgKyB4ZXBnICsgJyIpJzsNCiAgICAgICAgYnJlYWs7DQoNCiAgICAgIGNhc2UgInR2Zy1sb2dvIjoNCiAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNoYW5uZWwtbG9nbyIpLnNldEF0dHJpYnV0ZSgic3JjIiwgdGhpc0NoYW5uZWxbInR2Zy1sb2dvIl0pOw0KICAgICAgICBuZXdJdGVtWyJfZWxlbWVudCJdICAgICAgID0gIklOUFVUIjsNCiAgICAgICAgbmV3SXRlbVsidHlwZSJdICAgICAgICAgICA9ICJ0ZXh0IjsNCiAgICAgICAgbmV3SXRlbVsidmFsdWUiXSAgICAgICAgICA9IHRoaXNDaGFubmVsWyJ0dmctbG9nbyJdOw0KICAgICAgICBuZXdJdGVtWyJvbmZvY3Vzb3V0Il0gICAgID0gJ3NhdmVDaGFubmVsTG9nbygiJyArIHhlcGcgKyAnIiknOw0KICAgICAgICBuZXdJdGVtWyJwbGFjZWhvbGRlciJdICAgID0gJ0ltYWdlIFVSTCc7DQogICAgICAgIGJyZWFrOw0KDQogICAgICBjYXNlICJ4LXVwZGF0ZS1jaGFubmVsLWljb24iOg0KICAgICAgICBuZXdJdGVtWyJfZWxlbWVudCJdICAgICAgID0gIklOUFVUIjsNCiAgICAgICAgbmV3SXRlbVsidHlwZSJdICAgICAgICAgICA9ICJjaGVja2JveCI7DQogICAgICAgIHN3aXRjaChKU09OLnBhcnNlKHRoaXNDaGFubmVsWyJ4LXVwZGF0ZS1jaGFubmVsLWljb24iXSkpIHsNCiAgICAgICAgICBjYXNlIHRydWU6IG5ld0l0ZW1bImNoZWNrZWQiXSAgICAgICAgPSB0aGlzQ2hhbm5lbFsieC11cGRhdGUtY2hhbm5lbC1pY29uIl07DQogICAgICAgICAgICBicmVhaw0KICAgICAgICB9DQogICAgICAgIG5ld0l0ZW1bIm9uY2hhbmdlIl0gICAgID0gJ3NhdmVDaGFubmVsSWNvblVwZGF0ZSgiJyArIHhlcGcgKyAnIiknOw0KICAgICAgICBicmVhazsNCg0KICAgICAgY2FzZSAieC1uYW1lIjoNCiAgICAgICAgbmV3SXRlbVsiX2VsZW1lbnQiXSAgICAgICA9ICJJTlBVVCI7DQogICAgICAgIG5ld0l0ZW1bInR5cGUiXSAgICAgICAgICAgPSAidGV4dCI7DQogICAgICAgIG5ld0l0ZW1bInZhbHVlIl0gICAgICAgICAgPSB0aGlzQ2hhbm5lbFsieC1uYW1lIl07DQogICAgICAgIG5ld0l0ZW1bIm9uZm9jdXNvdXQiXSAgICAgPSAnc2F2ZUNoYW5uZWxOYW1lKCInICsgeGVwZyArICciKSc7DQogICAgICAgIG5ld0l0ZW1bInBsYWNlaG9sZGVyIl0gICAgPSAnQ2hhbm5lbCBOYW1lJzsNCiAgICAgICAgYnJlYWs7DQoNCiAgICAgIGNhc2UgIngtdXBkYXRlLWNoYW5uZWwtbmFtZSI6DQogICAgICAgIGlmICh0aGlzQ2hhbm5lbC5oYXNPd25Qcm9wZXJ0eSgiX3V1aWQua2V5IikgPT0gdHJ1ZSkgew0KICAgICAgICAgIG5ld0l0ZW1bIl9lbGVtZW50Il0gICAgICAgPSAiSU5QVVQiOw0KICAgICAgICAgIG5ld0l0ZW1bInR5cGUiXSAgICAgICAgICAgPSAiY2hlY2tib3giOw0KICAgICAgICAgIHN3aXRjaChKU09OLnBhcnNlKHRoaXNDaGFubmVsWyJ4LXVwZGF0ZS1jaGFubmVsLW5hbWUiXSkpIHsNCiAgICAgICAgICAgIGNhc2UgdHJ1ZTogbmV3SXRlbVsiY2hlY2tlZCJdICAgICAgICA9IHRoaXNDaGFubmVsWyJ4LXVwZGF0ZS1jaGFubmVsLW5hbWUiXTsNCiAgICAgICAgICAgICAgYnJlYWsNCiAgICAgICAgICB9DQogICAgICAgICAgbmV3SXRlbVsib25jaGFuZ2UiXSAgICAgPSAnc2F2ZUNoYW5uZWxOYW1lVXBkYXRlKCInICsgeGVwZyArICciKSc7DQogICAgICAgICAgc2hvd0VsZW1lbnQoInN0cmVhbUhhc0NVSUQiLCB0cnVlKQ0KDQogICAgICAgICAgYnJlYWs7DQogICAgICAgIH0gZWxzZSB7DQogICAgICAgICAgLy9zdHJlYW1IYXNDVUlEDQogICAgICAgICAgc2hvd0VsZW1lbnQoInN0cmVhbUhhc0NVSUQiLCBmYWxzZSkNCiAgICAgICAgICBicmVhazsNCiAgICAgICAgfQ0KICAgICAgICANCiAgICAgIGNhc2UgIngtYWN0aXZlIjoNCiAgICAgICAgbmV3SXRlbVsiX2VsZW1lbnQiXSAgICAgICA9ICJJTlBVVCI7DQogICAgICAgIG5ld0l0ZW1bInR5cGUiXSAgICAgICAgICAgPSAiY2hlY2tib3giOw0KICAgICAgICBzd2l0Y2goSlNPTi5wYXJzZSh0aGlzQ2hhbm5lbFsieC1hY3RpdmUiXSkpIHsNCiAgICAgICAgICBjYXNlIHRydWU6IG5ld0l0ZW1bImNoZWNrZWQiXSAgICAgICAgPSB0aGlzQ2hhbm5lbFsieC1hY3RpdmUiXTsNCiAgICAgICAgICAgIGJyZWFrDQogICAgICAgIH0NCiAgICAgICAgbmV3SXRlbVsib25jaGFuZ2UiXSAgICAgPSAnc2F2ZUNoYW5uZWxTdGF0dXMoIicgKyB4ZXBnICsgJyIpJzsNCiAgICAgICAgYnJlYWs7DQoNCiAgICAgIGNhc2UgIngtZ3JvdXAtdGl0bGUiOg0KICAgICAgICBuZXdJdGVtWyJfZWxlbWVudCJdICAgICAgID0gIklOUFVUIjsNCiAgICAgICAgbmV3SXRlbVsidHlwZSJdICAgICAgICAgICA9ICJ0ZXh0IjsNCiAgICAgICAgbmV3SXRlbVsidmFsdWUiXSAgICAgICAgICA9IHRoaXNDaGFubmVsWyJ4LWdyb3VwLXRpdGxlIl07DQogICAgICAgIG5ld0l0ZW1bIm9uZm9jdXNvdXQiXSAgICAgPSAnc2F2ZUdyb3VwVGl0bGUoIicgKyB4ZXBnICsgJyIpJzsNCiAgICAgICAgbmV3SXRlbVsicGxhY2Vob2xkZXIiXSAgICA9ICdHcm91cCBUaXRsZSc7DQogICAgICAgIGJyZWFrOw0KDQogICAgICBkZWZhdWx0Og0KICAgICAgICBuZXdJdGVtWyJfZWxlbWVudCJdICAgICAgID0gIlAiOw0KICAgICAgICBuZXdJdGVtWyJfdGV4dCJdICAgICAgICAgID0gdGhpc0NoYW5uZWxba2V5c1tpXV07DQogICAgICAgIGJyZWFrOw0KICAgICAgDQogICAgfQ0KICAgIA0KICAgIGlmICh0ZCAhPSB1bmRlZmluZWQpIHsNCiAgICAgIHRkLmlubmVySFRNTCA9ICIiOw0KICAgICAgdmFyIGVsZW1lbnQgPSBjcmVhdGVOZXdFbGVtZW50KG5ld0l0ZW0pDQogICAgICAvL2NvbnNvbGUubG9nKGVsZW1lbnQpOw0KICAgICAgdGQuYXBwZW5kQ2hpbGQoZWxlbWVudCk7DQogICAgfQ0KDQogIH0NCg0KICBpZiAoYnVsayA9PSB0cnVlKSB7DQoNCiAgICB2YXIgZWxtID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSgibm9CdWxrIik7DQogICAgZm9yICh2YXIgaSA9IDA7IGkgPCBlbG0ubGVuZ3RoOyBpKyspIHsNCiAgICAgIGVsbVtpXS5sYXN0Q2hpbGQuc2V0QXR0cmlidXRlKCJyZWFkb25seSIsIHRydWUpDQogICAgICBlbG1baV0ubGFzdENoaWxkLnN0eWxlLmJvcmRlckNvbG9yID0gInJlZCI7DQogICAgfQ0KDQogICAgeGVwZyA9IGJ1bGtJRHNbMF0NCiAgfQ0KDQogIHNvcnRTZWxlY3QoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIngteG1sdHYtZmlsZSIpLmxhc3RDaGlsZCk7DQogIHNvcnRTZWxlY3QoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIngtbWFwcGluZyIpLmxhc3RDaGlsZCk7DQogIA0KfQ0KDQpmdW5jdGlvbiBzb3J0U2VsZWN0KGVsZW0pIHsNCg0KICB2YXIgdG1wQXJ5ID0gW107DQogIC8vIFJldGFpbiBzZWxlY3RlZCB2YWx1ZSBiZWZvcmUgc29ydGluZw0KICB2YXIgc2VsZWN0ZWRWYWx1ZSA9IGVsZW1bZWxlbS5zZWxlY3RlZEluZGV4XS52YWx1ZTsNCiAgLy8gR3JhYiBhbGwgZXhpc3RpbmcgZW50cmllcw0KICBmb3IgKHZhciBpPTA7aTxlbGVtLm9wdGlvbnMubGVuZ3RoO2krKykgdG1wQXJ5LnB1c2goZWxlbS5vcHRpb25zW2ldKTsNCiAgLy8gU29ydCBhcnJheSBieSB0ZXh0IGF0dHJpYnV0ZQ0KICB0bXBBcnkuc29ydChmdW5jdGlvbihhLGIpeyByZXR1cm4gKGEudGV4dCA8IGIudGV4dCk/LTE6MTsgfSk7DQogIC8vIFdpcGUgb3V0IGV4aXN0aW5nIGVsZW1lbnRzDQogIHdoaWxlIChlbGVtLm9wdGlvbnMubGVuZ3RoID4gMCkgZWxlbS5vcHRpb25zWzBdID0gbnVsbDsNCiAgLy8gUmVzdG9yZSBzb3J0ZWQgZWxlbWVudHMNCiAgdmFyIG5ld1NlbGVjdGVkSW5kZXggPSAwOw0KICBmb3IgKHZhciBpPTA7aTx0bXBBcnkubGVuZ3RoO2krKykgew0KICAgICAgZWxlbS5vcHRpb25zW2ldID0gdG1wQXJ5W2ldOw0KICAgICAgaWYoZWxlbS5vcHRpb25zW2ldLnZhbHVlID09IHNlbGVjdGVkVmFsdWUpIG5ld1NlbGVjdGVkSW5kZXggPSBpOw0KICB9DQogIGVsZW0uc2VsZWN0ZWRJbmRleCA9IG5ld1NlbGVjdGVkSW5kZXg7IC8vIFNldCBuZXcgc2VsZWN0ZWQgaW5kZXggYWZ0ZXIgc29ydGluZw0KICByZXR1cm47DQp9DQoNCg0KZnVuY3Rpb24gc3dpdGNoQ2hhbm5lbFN0YXR1cyh4ZXBnKSB7DQogIHZhciB0aGlzQ2hhbm5lbCA9IHhFUEdbImVwZ01hcHBpbmciXVt4ZXBnXTsNCiAgdmFyIHhYbWx0dkZpbGUgPSB0aGlzQ2hhbm5lbFsieC14bWx0di1maWxlIl07DQoNCiAgaWYgKHhFUEdbInhtbHR2TWFwIl0uaGFzT3duUHJvcGVydHkoeFhtbHR2RmlsZSkgPT0gdHJ1ZSkgew0KICAgIGlmICh0aGlzQ2hhbm5lbFsieC1tYXBwaW5nIl0gIT0gIi0iICYmIHRoaXNDaGFubmVsWyJ4LW1hcHBpbmciXSAhPSB1bmRlZmluZWQpIHsNCiAgICAgIHRoaXNDaGFubmVsWyJ4LWFjdGl2ZSJdID0gIXRoaXNDaGFubmVsWyJ4LWFjdGl2ZSJdOw0KICAgICAgdmFyIHRyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoeGVwZyk7DQogICAgICBzd2l0Y2godGhpc0NoYW5uZWxbIngtYWN0aXZlIl0pIHsNCiAgICAgICAgY2FzZSB0cnVlOiB0ci5jbGFzc05hbWUgPSAiYWN0aXZlRVBHIjsgYnJlYWs7DQogICAgICAgIGNhc2UgZmFsc2U6IHRyLmNsYXNzTmFtZSA9ICJub3RBY3RpdmVFUEciOyBicmVhazsNCiAgICAgIH0NCiAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJsb2dJbmZvIikuY2xhc3NOYW1lID0gIm5vdFZpc2libGUiOw0KDQogICAgfSBlbHNlIHsNCiAgICAgIHZhciBlcnIgPSAiWE1MVFYgQ2hhbm5lbCBpcyBub3Qgc2VsZWN0ZWQiDQogICAgICBhbGVydChlcnIpDQogICAgICAvKg0KICAgICAgdmFyIG5ld0Vycm9yID0gbmV3IE9iamVjdCgpOw0KICAgICAgbmV3RXJyb3JbImVyciJdID0gIkNoYW5uZWwgaXMgbm90IHNlbGVjdGVkIjsNCiAgICAgIGNoZWNrRXJyKG5ld0Vycm9yKTsNCiAgICAgICovDQogICAgfQ0KDQogIH0gZWxzZSB7DQogICAgdmFyIGVyciA9ICJYTUxUViBGaWxlIGlzIG5vdCBzZWxlY3RlZCINCiAgICBhbGVydChlcnIpDQogICAgLyoNCiAgICB2YXIgbmV3RXJyb3IgPSBuZXcgT2JqZWN0KCk7DQogICAgbmV3RXJyb3JbImVyciJdID0gIlhNTFRWIGZpbGUgaXMgbm90IHNlbGVjdGVkIjsNCiAgICBjaGVja0VycihuZXdFcnJvcik7DQogICAgKi8NCiAgfQ0KDQogIHNlYXJjaEluTWFwcGluZygpOw0KDQp9DQoNCmZ1bmN0aW9uIGNyZWF0ZU5ld0VsZW1lbnQobmV3SXRlbSkgew0KDQogIHZhciBlbGVtZW50ID0gY3JlYXRlRWxlbWVudChuZXdJdGVtKTsNCiAgDQogIHN3aXRjaChuZXdJdGVtWyJfZWxlbWVudCJdKSB7DQogICAgY2FzZSAiU0VMRUNUIjoNCiAgICAgIC8vZWxlbWVudFtdDQogICAgICB2YXIgdmFsdWVzICA9IG5ld0l0ZW1bIl9vcHRpb25WYWx1ZXMiXTsNCiAgICAgIHZhciB0ZXh0ICAgID0gbmV3SXRlbVsiX29wdGlvblRleHQiXTsNCg0KICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB2YWx1ZXMubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgLy9jb25zb2xlLmxvZyhpdGVtKTsNCiAgICAgICAgdmFyIG5ld0VudHJ5ID0gbmV3IE9iamVjdDsNCiAgICAgICAgbmV3RW50cnlbIl9lbGVtZW50Il0gID0gIk9QVElPTiI7DQogICAgICAgIG5ld0VudHJ5WyJfdGV4dCJdICAgICA9IHRleHRbaV07DQogICAgICAgIG5ld0VudHJ5WyJ2YWx1ZSJdICAgICA9IHZhbHVlc1tpXTsNCiAgICAgICAgZWxlbWVudC5hcHBlbmRDaGlsZChjcmVhdGVFbGVtZW50KG5ld0VudHJ5KSk7DQogICAgICB9DQogICAgICBlbGVtZW50LnZhbHVlID0gbmV3SXRlbVsidmFsdWUiXTsNCiAgICAgIGJyZWFrOw0KICAgIA0KICAgIGRlZmF1bHQ6IA0KICAgICAgDQogICAgICAvL2VsZW1lbnQuYXBwZW5kQ2hpbGQoY3JlYXRlRWxlbWVudChuZXdJdGVtKSk7DQogICAgICBicmVhazsNCiAgfQ0KICANCiAgcmV0dXJuIGVsZW1lbnQ7DQp9DQoNCmZ1bmN0aW9uIHNhdmVCdWxrKGtleSwgdmFsdWUpIHsNCiAgZm9yICh2YXIgaSA9IDA7IGkgPCBidWxrSURzLmxlbmd0aDsgaSsrKSB7DQogICAgdmFyIGlkID0gYnVsa0lEc1tpXQ0KICAgIHZhciB0aGlzQ2hhbm5lbCA9IHhFUEdbImVwZ01hcHBpbmciXVtpZF07DQogICAgdGhpc0NoYW5uZWxba2V5XSA9IHZhbHVlOw0KDQogICAgc3dpdGNoKGtleSkgew0KICAgICAgY2FzZSAidHZnLWxvZ28iOiAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5jaGlsZE5vZGVzWzJdLmxhc3RDaGlsZC5zZXRBdHRyaWJ1dGUoInNyYyIsIHZhbHVlKTsgYnJlYWs7DQogICAgICANCiAgICAgIGNhc2UgIngtY2F0ZWdvcnkiOiAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkuY2hpbGROb2Rlc1szXS5sYXN0Q2hpbGQuY2xhc3NOYW1lID0gdmFsdWU7IGJyZWFrOw0KDQogICAgICBjYXNlICJ4LXhtbHR2LWZpbGUiOg0KICAgICAgICB2YXIgZWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5jaGlsZE5vZGVzWzZdLmxhc3RDaGlsZDsNCiAgICAgICAgc3dpdGNoKHZhbHVlKSB7DQogICAgICAgICAgY2FzZSAiLSI6ICAgICAgICAgICBlbGVtZW50LmlubmVySFRNTCA9IHZhbHVlOyBicmVhazsNCiAgICAgICAgICBjYXNlICJ4VGVWZSBEdW1teSI6IGVsZW1lbnQuaW5uZXJIVE1MID0gdmFsdWU7IGJyZWFrOw0KICAgICAgICAgIGRlZmF1bHQ6ICAgICAgICAgICAgZWxlbWVudC5pbm5lckhUTUwgPSBnZXRWYWx1ZUZyb21Qcm92aWRlckZpbGUodmFsdWUsICJ4bWx0diIsICJuYW1lIik7IGJyZWFrOw0KICAgICAgICB9DQoNCg0KDQogICAgICAvL2RvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5jaGlsZE5vZGVzWzVdLmxhc3RDaGlsZC5pbm5lckhUTUwgPSB2YWx1ZS5yZXBsYWNlKC9eLipbXFxcL10vLCAnJyk7IGJyZWFrOw0KICAgICAgY2FzZSAieC1tYXBwaW5nIjogICANCiAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpLmNoaWxkTm9kZXNbN10ubGFzdENoaWxkLmlubmVySFRNTCA9IHZhbHVlOw0KICAgICAgICBpZiAodmFsdWUgPT0gIi0iKSB7DQogICAgICAgICAgdGhpc0NoYW5uZWxbIngtYWN0aXZlIl0gPSBmYWxzZTsNCiAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkuY2xhc3NOYW1lID0gIm5vdEFjdGl2ZUVQRyI7DQogICAgICAgIH0gZWxzZSB7DQogICAgICAgICAgdGhpc0NoYW5uZWxbIngtYWN0aXZlIl0gPSB0cnVlOw0KICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5jbGFzc05hbWUgPSAiYWN0aXZlRVBHIjsNCiAgICAgICAgfQ0KICAgICAgICBicmVhazsNCg0KICAgICAgY2FzZSAieC1ncm91cC10aXRsZSI6IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5jaGlsZE5vZGVzWzVdLmxhc3RDaGlsZC5pbm5lckhUTUwgPSB2YWx1ZTsgYnJlYWs7DQoNCiAgICAgIGNhc2UgIngtYWN0aXZlIjoNCiAgICAgICAgdmFyIHRyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpOw0KICAgICAgICANCiAgICAgICAgaWYgKHRoaXNDaGFubmVsLmhhc093blByb3BlcnR5KCJ4LXhtbHR2LWZpbGUiKSA9PSB0cnVlKSB7DQogICAgICAgICAgaWYgKHRoaXNDaGFubmVsWyJ4LW1hcHBpbmciXSAhPSAiLSIgJiYgdGhpc0NoYW5uZWxbIngtbWFwcGluZyJdICE9IHVuZGVmaW5lZCAmJiB0aGlzQ2hhbm5lbFsieC14bWx0di1maWxlIl0gIT0gIi0iICYmIHRoaXNDaGFubmVsWyJ4LXhtbHR2LWZpbGUiXSAhPSB1bmRlZmluZWQpIHsNCiAgICAgICAgICAgIHN3aXRjaCh0aGlzQ2hhbm5lbFsieC1hY3RpdmUiXSkgew0KICAgICAgICAgICAgICBjYXNlIHRydWU6IHRyLmNsYXNzTmFtZSA9ICJhY3RpdmVFUEciOyBicmVhazsNCiAgICAgICAgICAgICAgY2FzZSBmYWxzZTogdHIuY2xhc3NOYW1lID0gIm5vdEFjdGl2ZUVQRyI7IGJyZWFrOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgfQ0KICAgICAgICB9DQoNCiAgICB9DQoNCiAgICB1cGRhdGVDaGFubmVsTG9nbyhpZCkNCg0KICB9DQoNCn0NCg0KZnVuY3Rpb24gdXBkYXRlQ2hhbm5lbExvZ28oeGVwZykgew0KICB2YXIgdGhpc0NoYW5uZWwgPSB4RVBHWyJlcGdNYXBwaW5nIl1beGVwZ107DQogIGlmICh0aGlzQ2hhbm5lbFsieC11cGRhdGUtY2hhbm5lbC1pY29uIl0gPT0gdHJ1ZSkgew0KICAgIHZhciB4WG1sdHZGaWxlICA9IHRoaXNDaGFubmVsWyJ4LXhtbHR2LWZpbGUiXTsNCiAgICB2YXIgeE1hcHBpbmcgICAgPSB0aGlzQ2hhbm5lbFsieC1tYXBwaW5nIl07DQoNCiAgICBpZiAoeFhtbHR2RmlsZSAhPSAiLSIgJiYgeFhtbHR2RmlsZS5sZW5ndGggPiAwICYmIHhNYXBwaW5nICE9ICItIiAmJiB4TWFwcGluZy5sZW5ndGggPiAwKSB7DQogICAgICBpZiAoeEVQR1sieG1sdHZNYXAiXVt4WG1sdHZGaWxlXVt4TWFwcGluZ10uaGFzT3duUHJvcGVydHkoImljb24iKSkgew0KICAgICAgICB2YXIgbG9nb1VSTCA9IHhFUEdbInhtbHR2TWFwIl1beFhtbHR2RmlsZV1beE1hcHBpbmddWyJpY29uIl07DQogICAgICAgIHRoaXNDaGFubmVsWyJ0dmctbG9nbyJdID0gbG9nb1VSTDsNCiAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoeGVwZykuY2hpbGROb2Rlc1syXS5sYXN0Q2hpbGQuc2V0QXR0cmlidXRlKCJzcmMiLCBsb2dvVVJMKTsNCiAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNoYW5uZWwtbG9nbyIpLnNldEF0dHJpYnV0ZSgic3JjIiwgbG9nb1VSTCk7DQogICAgICB9IGVsc2Ugew0KICAgICAgICBhbGVydCgiTm8gbG9nbyBVUkwgaW4gdGhlIFhNTFRWIGZpbGUgYXZhaWxhYmxlIikNCiAgICAgIH0NCiAgICAgIA0KICAgIH0NCiAgICANCiAgICAvKg0KICAgIGlmICh4RVBHWyJ4bWx0dk1hcCJdW3hYbWx0dkZpbGVdW3hNYXBwaW5nXVsiaWNvbiJdICE9IHVuZGVmaW5lZCkgew0KDQogICAgICANCiAgICB9DQogICAgKi8NCiAgICANCiAgfQ0KfQ0KDQpmdW5jdGlvbiBzYXZlQ2hhbm5lbExvZ28oeGVwZykgew0KICBpZiAoYnVsayA9PSBmYWxzZSkgew0KICAgIHZhciB0aGlzQ2hhbm5lbCA9IHhFUEdbImVwZ01hcHBpbmciXVt4ZXBnXTsNCiAgICB0aGlzQ2hhbm5lbFsidHZnLWxvZ28iXSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0dmctbG9nbyIpLmxhc3RDaGlsZC52YWx1ZTsNCiAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCh4ZXBnKS5jaGlsZE5vZGVzWzJdLmxhc3RDaGlsZC5zZXRBdHRyaWJ1dGUoInNyYyIsIHRoaXNDaGFubmVsWyJ0dmctbG9nbyJdKTsNCiAgICBtYXBwaW5nRGV0YWlsKHhlcGcpOw0KICAgIHJldHVybg0KICB9DQoNCiAgaWYgKGJ1bGsgPT0gdHJ1ZSkgew0KICAgIHZhciBrZXkgICA9ICJ0dmctbG9nbyI7DQogICAgdmFyIHZhbHVlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInR2Zy1sb2dvIikubGFzdENoaWxkLnZhbHVlOw0KICAgIHNhdmVCdWxrKGtleSwgdmFsdWUpOw0KDQogICAgbWFwcGluZ0RldGFpbCh4ZXBnKTsNCiAgICByZXR1cm4NCiAgfQ0KfQ0KDQpmdW5jdGlvbiBzYXZlQ2hhbm5lbEljb25VcGRhdGUoeGVwZykgew0KDQogIHZhciBrZXkgICA9ICJ4LXVwZGF0ZS1jaGFubmVsLWljb24iOw0KICB2YXIgdmFsdWUgPSBKU09OLnBhcnNlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ4LXVwZGF0ZS1jaGFubmVsLWljb24iKS5sYXN0Q2hpbGQuY2hlY2tlZCk7DQogIGlmIChidWxrID09IGZhbHNlKSB7DQogICAgdmFyIHRoaXNDaGFubmVsID0geEVQR1siZXBnTWFwcGluZyJdW3hlcGddOw0KICAgIHRoaXNDaGFubmVsW2tleV0gPSB2YWx1ZQ0KICAgIHVwZGF0ZUNoYW5uZWxMb2dvKHhlcGcpDQogICAgDQogICAgbWFwcGluZ0RldGFpbCh4ZXBnKTsNCiAgICBzZWFyY2hJbk1hcHBpbmcoKTsNCiAgICByZXR1cm4NCiAgfQ0KDQogIGlmIChidWxrID09IHRydWUpIHsNCiAgICBzYXZlQnVsayhrZXksIHZhbHVlKTsNCiAgICBtYXBwaW5nRGV0YWlsKHhlcGcpOw0KICAgIHJldHVybg0KICB9DQogIA0KfQ0KDQpmdW5jdGlvbiBzYXZlQ2hhbm5lbE5hbWUoeGVwZykgew0KICBpZiAoYnVsayA9PSBmYWxzZSkgew0KICAgIHZhciB0aGlzQ2hhbm5lbCA9IHhFUEdbImVwZ01hcHBpbmciXVt4ZXBnXTsNCiAgICB0aGlzQ2hhbm5lbFsieC1uYW1lIl0gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgieC1uYW1lIikubGFzdENoaWxkLnZhbHVlOw0KICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHhlcGcpLmNoaWxkTm9kZXNbM10ubGFzdENoaWxkLmlubmVySFRNTCA9IHRoaXNDaGFubmVsWyJ4LW5hbWUiXTsNCiAgICBtYXBwaW5nRGV0YWlsKHhlcGcpOw0KICAgIHNlYXJjaEluTWFwcGluZygpOw0KICB9DQogIA0KfQ0KDQpmdW5jdGlvbiBzYXZlQ2hhbm5lbE5hbWVVcGRhdGUoeGVwZykgew0KICB2YXIga2V5ICAgPSAieC11cGRhdGUtY2hhbm5lbC1uYW1lIjsNCiAgdmFyIHZhbHVlID0gSlNPTi5wYXJzZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgieC11cGRhdGUtY2hhbm5lbC1uYW1lIikubGFzdENoaWxkLmNoZWNrZWQpOw0KDQogIGlmIChidWxrID09IGZhbHNlKSB7DQogICAgdmFyIHRoaXNDaGFubmVsID0geEVQR1siZXBnTWFwcGluZyJdW3hlcGddOw0KICAgIHRoaXNDaGFubmVsW2tleV0gPSB2YWx1ZQ0KICAgIG1hcHBpbmdEZXRhaWwoeGVwZyk7DQogICAgc2VhcmNoSW5NYXBwaW5nKCk7DQogICAgcmV0dXJuDQogIH0NCg0KICBpZiAoYnVsayA9PSB0cnVlKSB7DQogICAgc2F2ZUJ1bGsoa2V5LCB2YWx1ZSk7DQogICAgbWFwcGluZ0RldGFpbCh4ZXBnKTsNCiAgICByZXR1cm4NCiAgfQ0KDQp9DQoNCmZ1bmN0aW9uIHNhdmVDaGFubmVsU3RhdHVzKHhlcGcpIHsNCiAgdmFyIHRoaXNDaGFubmVsID0geEVQR1siZXBnTWFwcGluZyJdW3hlcGddOw0KICB2YXIgeFhtbHR2RmlsZSA9IHRoaXNDaGFubmVsWyJ4LXhtbHR2LWZpbGUiXTsNCg0KICB2YXIga2V5ICAgPSAieC1hY3RpdmUiOw0KICB2YXIgdmFsdWUgPSBKU09OLnBhcnNlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ4LWFjdGl2ZSIpLmxhc3RDaGlsZC5jaGVja2VkKTsNCg0KICBpZiAoeEVQR1sieG1sdHZNYXAiXS5oYXNPd25Qcm9wZXJ0eSh4WG1sdHZGaWxlKSA9PSB0cnVlKSB7DQogICAgaWYgKHRoaXNDaGFubmVsWyJ4LW1hcHBpbmciXSAhPSAiLSIgJiYgdGhpc0NoYW5uZWxbIngtbWFwcGluZyJdICE9IHVuZGVmaW5lZCkgew0KICAgICAgdGhpc0NoYW5uZWxbIngtYWN0aXZlIl0gPSAhdGhpc0NoYW5uZWxbIngtYWN0aXZlIl07DQogICAgICB2YXIgdHIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCh4ZXBnKTsNCiAgICAgIHN3aXRjaCh0aGlzQ2hhbm5lbFsieC1hY3RpdmUiXSkgew0KICAgICAgICBjYXNlIHRydWU6IHRyLmNsYXNzTmFtZSA9ICJhY3RpdmVFUEciOyBicmVhazsNCiAgICAgICAgY2FzZSBmYWxzZTogdHIuY2xhc3NOYW1lID0gIm5vdEFjdGl2ZUVQRyI7IGJyZWFrOw0KICAgICAgfQ0KICAgICAgDQogICAgfSBlbHNlIHsNCiAgICAgIHZhciBlcnIgPSAiWE1MVFYgQ2hhbm5lbCBpcyBub3Qgc2VsZWN0ZWQiDQogICAgICBhbGVydChlcnIpDQogICAgICB2YWx1ZSA9IGZhbHNlDQogICAgfQ0KDQogIH0gZWxzZSB7DQogICAgaWYgKHZhbHVlID09IHRydWUpIHsNCiAgICAgIHZhciBlcnIgPSAiWE1MVFYgRmlsZSBpcyBub3Qgc2VsZWN0ZSINCiAgICAgIGFsZXJ0KGVycikNCiAgICAgIHZhbHVlID0gZmFsc2UNCiAgICB9DQogIH0NCg0KICANCg0KICBpZiAoYnVsayA9PSBmYWxzZSkgew0KICAgIHZhciB0aGlzQ2hhbm5lbCA9IHhFUEdbImVwZ01hcHBpbmciXVt4ZXBnXTsNCiAgICB0aGlzQ2hhbm5lbFtrZXldID0gdmFsdWUNCiAgICBtYXBwaW5nRGV0YWlsKHhlcGcpOw0KICAgIHNlYXJjaEluTWFwcGluZygpOw0KDQogICAgdmFyIHRyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoeGVwZyk7DQogICAgc3dpdGNoKHRoaXNDaGFubmVsWyJ4LWFjdGl2ZSJdKSB7DQogICAgICBjYXNlIHRydWU6IHRyLmNsYXNzTmFtZSA9ICJhY3RpdmVFUEciOyBicmVhazsNCiAgICAgIGNhc2UgZmFsc2U6IHRyLmNsYXNzTmFtZSA9ICJub3RBY3RpdmVFUEciOyBicmVhazsNCiAgICB9DQoNCiAgICByZXR1cm4NCiAgfQ0KDQogIGlmIChidWxrID09IHRydWUpIHsNCiAgICBzYXZlQnVsayhrZXksIHZhbHVlKTsNCiAgICBtYXBwaW5nRGV0YWlsKHhlcGcpOw0KICAgIHJldHVybg0KICB9DQoNCn0NCg0KZnVuY3Rpb24gc2F2ZUdyb3VwVGl0bGUoeGVwZykgew0KICB2YXIga2V5ICAgPSAieC1ncm91cC10aXRsZSI7DQogIHZhciB2YWx1ZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ4LWdyb3VwLXRpdGxlIikubGFzdENoaWxkLnZhbHVlOw0KDQogIGlmIChidWxrID09IGZhbHNlKSB7DQogICAgdmFyIHRoaXNDaGFubmVsID0geEVQR1siZXBnTWFwcGluZyJdW3hlcGddOw0KICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHhlcGcpLmNoaWxkTm9kZXNbNV0ubGFzdENoaWxkLmlubmVySFRNTCA9IHZhbHVlOw0KICAgIHRoaXNDaGFubmVsW2tleV0gPSB2YWx1ZTsNCiAgICBtYXBwaW5nRGV0YWlsKHhlcGcpOw0KICAgIHNlYXJjaEluTWFwcGluZygpOw0KICB9DQoNCiAgaWYgKGJ1bGsgPT0gdHJ1ZSkgew0KICAgIHNhdmVCdWxrKGtleSwgdmFsdWUpOw0KICAgIG1hcHBpbmdEZXRhaWwoeGVwZyk7DQogICAgcmV0dXJuDQogIH0NCg0KfQ0KDQpmdW5jdGlvbiBzYXZlQ2F0ZWdvcnkoeGVwZykgew0KICB2YXIga2V5ICAgPSAieC1jYXRlZ29yeSI7DQogIHZhciB2YWx1ZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ4LWNhdGVnb3J5IikubGFzdENoaWxkLnZhbHVlOw0KDQogIGlmIChidWxrID09IGZhbHNlKSB7DQogICAgdmFyIHRoaXNDaGFubmVsID0geEVQR1siZXBnTWFwcGluZyJdW3hlcGddOw0KICAgIHRoaXNDaGFubmVsW2tleV0gPSB2YWx1ZQ0KICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHhlcGcpLmNoaWxkTm9kZXNbM10ubGFzdENoaWxkLmNsYXNzTmFtZSA9IHZhbHVlDQogICAgbWFwcGluZ0RldGFpbCh4ZXBnKTsNCiAgICBzZWFyY2hJbk1hcHBpbmcoKTsNCiAgfQ0KDQogIGlmIChidWxrID09IHRydWUpIHsNCiAgICBzYXZlQnVsayhrZXksIHZhbHVlKTsNCiAgICBtYXBwaW5nRGV0YWlsKHhlcGcpOw0KICAgIHJldHVybg0KICB9DQoNCn0NCg0KZnVuY3Rpb24gYXJyYW5nZVRhYmxlKGVsbSkgew0KICB2YXIgdHIgPSBlbG0ucGFyZW50RWxlbWVudC5wYXJlbnRFbGVtZW50Ow0KICB2YXIgbmV3UG9zaXRpb24gPSBlbG0udmFsdWU7DQogIHZhciB4X2NoYW5uZWxJRCA9IHRyLmlkOw0KDQogIHN3aXRjaChpc05hTihuZXdQb3NpdGlvbikpIHsNCiAgICBjYXNlIHRydWU6IA0KICAgICAgYWxlcnQoIkNoLiBOby4gbXVzdCBiZSBhIG51bWJlciIpOw0KICAgICAgbWFwcGluZ0Vycm9yID0gdHJ1ZTsNCiAgICAgIGJyZWFrOw0KICB9DQoNCg0KICAvL3ZhciBpdGVtID0geEVQR1siZXBnTWFwcGluZyJdW2lkXTsNCiAgdmFyIGtleXMgPSBnZXRPYmpLZXlzKHhFUEdbImVwZ01hcHBpbmciXSkNCiAgZm9yICh2YXIgaSA9IDA7IGkgPCBrZXlzLmxlbmd0aDsgaSsrKSB7DQogICAgdmFyIGl0ZW0gPSB4RVBHWyJlcGdNYXBwaW5nIl1ba2V5c1tpXV07DQogICAgaWYgKGl0ZW1bIngtZXBnIl0gPT0geF9jaGFubmVsSUQpIHsNCg0KICAgICAgLy8gQ2hlY2sgaWYgcG9zaXRpb24gZXhpc3QNCiAgICAgIHZhciBvbGRQb3NpdGlvbiA9IGl0ZW1bIngtY2hhbm5lbElEIl07DQoNCiAgICAgIGlmIChvbGRQb3NpdGlvbiAhPSBuZXdQb3NpdGlvbikgew0KDQogICAgICAgIGNvbnNvbGUubG9nKG5ld1Bvc2l0aW9uLCBuZXdQb3NpdGlvbi5sZW5ndGgpOw0KICAgICAgICBpZiAobmV3UG9zaXRpb24ubGVuZ3RoID09IDApIHsNCiAgICAgICAgICBtYXBwaW5nRXJyb3IgPSB0cnVlDQogICAgICAgICAgbmV3UG9zaXRpb24gPSBvbGRQb3NpdGlvbjsNCiAgICAgICAgICANCiAgICAgICAgfQ0KDQogICAgICAgIGlmIChtYXBwaW5nRXJyb3IgPT0gdHJ1ZSkgew0KICAgICAgICAgIGVsbS52YWx1ZSA9IG9sZFBvc2l0aW9uOw0KICAgICAgICAgIHJldHVybjsNCiAgICAgICAgfQ0KDQogICAgICAgIGZvciAodmFyIGogPSBrZXlzLmxlbmd0aCAtIDE7IGogPj0gMDsgai0tKSB7DQogICAgICAgICAgdmFyIGNoYW5uZWwgPSB4RVBHWyJlcGdNYXBwaW5nIl1ba2V5c1tqXV07DQogICAgICAgICAgaWYgKGtleXNbal0gIT0geF9jaGFubmVsSUQpIHsNCiAgICAgICAgICAgIGlmIChuZXdQb3NpdGlvbiA9PSBjaGFubmVsWyJ4LWNoYW5uZWxJRCJdKSB7IC8vIElmIHBvc2l0aW9uIGV4aXN0LCBzZXQgbmV4dCBmcmVlIHBvc2l0aW9uLg0KICAgICAgICAgICAgICBuZXdQb3NpdGlvbisrOw0KICAgICAgICAgICAgICBlbG0udmFsdWUgPSBuZXdQb3NpdGlvbjsNCiAgICAgICAgICAgICAgYXJyYW5nZVRhYmxlKGVsbSk7DQogICAgICAgICAgICAgIHJldHVybjsNCiAgICAgICAgICAgICAgLyoNCiAgICAgICAgICAgICAgdmFyIG5ld0Vycm9yID0gbmV3IE9iamVjdCgpOw0KICAgICAgICAgICAgICBuZXdFcnJvclsiZXJyIl0gPSAiRHVwbGljYXRlIElEIjsNCiAgICAgICAgICAgICAgY2hlY2tFcnIobmV3RXJyb3IpOw0KICAgICAgICAgICAgICBzb3J0VGFibGUoKTsNCiAgICAgICAgICAgICAgbWFwcGluZ0Vycm9yID0gdHJ1ZTsNCiAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoeF9jaGFubmVsSUQpLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJJTlBVVCIpWzBdLmZvY3VzKCk7DQogICAgICAgICAgICAgIHJldHVybjsNCiAgICAgICAgICAgICAgKi8NCiAgICAgICAgICAgIH0NCiAgICAgICAgICB9DQogICAgICAgIH0NCg0KICAgICAgfQ0KDQogICAgICAvL2NvbnNvbGUubG9nKG9sZFBvc2l0aW9uLCBuZXdQb3NpdGlvbik7DQogICAgICBpZiAoa2V5c1tpXSA9PSB4X2NoYW5uZWxJRCAmJiBvbGRQb3NpdGlvbiAhPSBuZXdQb3NpdGlvbikgeyAgDQogICAgICAgIGl0ZW1bIngtY2hhbm5lbElEIl0gPSBuZXdQb3NpdGlvbjsNCiAgICAgIH0gDQoNCiAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJsb2dJbmZvIikuY2xhc3NOYW1lID0gIm5vdFZpc2libGUiOw0KICAgICAgaWYgKGNvbHVtblRvU29ydCA9PSAxKSB7DQogICAgICAgIHNvcnRUYWJsZShjb2x1bW5Ub1NvcnQpOw0KICAgICAgfQ0KICAgICAgbWFwcGluZ0Vycm9yID0gZmFsc2U7DQoNCiAgICB9DQogIH0NCn0NCg0KZnVuY3Rpb24gY2hhbmdlWG1sdHZGaWxlKHhlcGcsIGVsbSkgew0KDQogIHZhciB0aGlzQ2hhbm5lbCA9IHhFUEdbImVwZ01hcHBpbmciXVt4ZXBnXTsNCiAgDQogIHZhciB4WG1sdHZGaWxlICAgID0gZWxtLnZhbHVlOw0KICB2YXIgY2hhbm5lbElEICAgICA9IHRoaXNDaGFubmVsWyJ0dmctaWQiXTsNCiAgdGhpc0NoYW5uZWxbIngteG1sdHYtZmlsZSJdID0geFhtbHR2RmlsZTsNCg0KICBpZiAoYnVsayA9PSBmYWxzZSkgew0KDQogICAgc2V0VGltZW91dChmdW5jdGlvbigpeyANCg0KICAgICAgdmFyIHhNYXBwaW5nID0gIi0iDQoNCiAgICAgIC8vIEF1dG9tYXANCiAgICAgIGlmICh4WG1sdHZGaWxlICE9ICItIikgew0KICAgICAgICBpZiAoeEVQR1sieG1sdHZNYXAiXVt4WG1sdHZGaWxlXS5oYXNPd25Qcm9wZXJ0eShjaGFubmVsSUQpID09IHRydWUpIHsNCiAgICAgICAgICB0aGlzQ2hhbm5lbFsieC1tYXBwaW5nIl0gPSBjaGFubmVsSUQ7DQogICAgICAgICAgeE1hcHBpbmcgPSBjaGFubmVsSUQNCiAgICAgICAgfSBlbHNlIHsNCiAgICAgICAgICB0aGlzQ2hhbm5lbFsieC1tYXBwaW5nIl0gPSB4TWFwcGluZw0KICAgICAgICB9DQogICAgICB9IGVsc2Ugew0KICAgICAgICB0aGlzQ2hhbm5lbFsieC1tYXBwaW5nIl0gPSB4TWFwcGluZw0KDQogICAgICB9DQogICAgICANCiAgICAgIHZhciB0ciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHhlcGcpOw0KDQogICAgICBpZiAoeE1hcHBpbmcgPT0gIi0iKSB7DQogICAgICAgIHRoaXNDaGFubmVsWyJ4LWFjdGl2ZSJdID0gZmFsc2U7DQogICAgICAgIHRyLmNsYXNzTmFtZSA9ICJub3RBY3RpdmVFUEciDQogICAgICB9IGVsc2Ugew0KICAgICAgICB0aGlzQ2hhbm5lbFsieC1hY3RpdmUiXSAgPSB0cnVlOw0KICAgICAgICB0ci5jbGFzc05hbWUgPSAiYWN0aXZlRVBHIg0KICAgICAgfQ0KDQogICAgICAvLyBTaG93IGRhdGEgaW4gdGFibGUNCiAgICAgIHZhciB0ZCA9IHRyLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJURCIpOw0KICAgICAgdmFyIGRhdGFGaWxlID0gdGRbdGQubGVuZ3RoIC0gMl0ubGFzdENoaWxkOw0KICAgICAgc3dpdGNoKHhYbWx0dkZpbGUpIHsNCiAgICAgICAgY2FzZSAiLSI6ICAgICAgICAgICBkYXRhRmlsZS5pbm5lckhUTUwgPSB4WG1sdHZGaWxlOyBicmVhazsNCiAgICAgICAgY2FzZSAieFRlVmUgRHVtbXkiOiBkYXRhRmlsZS5pbm5lckhUTUwgPSB4WG1sdHZGaWxlOyBicmVhazsNCiAgICAgICAgZGVmYXVsdDogICAgICAgICAgICBkYXRhRmlsZS5pbm5lckhUTUwgPSBnZXRWYWx1ZUZyb21Qcm92aWRlckZpbGUoeFhtbHR2RmlsZSwgInhtbHR2IiwgIm5hbWUiKTsgYnJlYWs7DQogICAgICB9DQoNCiAgICAgIC8veFhtbHR2RmlsZS5yZXBsYWNlKC9eLipbXFxcL10vLCAnJyk7DQoNCiAgICAgIHZhciBkYXRhWG1sdHZJRCA9IHRkW3RkLmxlbmd0aCAtIDFdLmxhc3RDaGlsZDsNCiAgICAgIGRhdGFYbWx0dklELmlubmVySFRNTCA9IHhNYXBwaW5nOw0KICAgICAgDQogICAgICBtYXBwaW5nRGV0YWlsKHhlcGcpOw0KDQogICAgfSwgMTApOw0KICB9DQoNCiAgaWYgKGJ1bGsgPT0gdHJ1ZSkgew0KICAgIHZhciBrZXkgPSAieC14bWx0di1maWxlIg0KICAgIHZhciB2YWx1ZSA9IHhYbWx0dkZpbGUNCiAgICBzYXZlQnVsayhrZXksIHZhbHVlKTsNCg0KICAgIHZhciBrZXkgPSAieC1tYXBwaW5nIg0KICAgIHZhciB2YWx1ZSA9ICItIg0KICAgIHNhdmVCdWxrKGtleSwgdmFsdWUpOw0KICAgIG1hcHBpbmdEZXRhaWwoeGVwZyk7DQogICAgcmV0dXJuDQogIH0NCg0KICByZXR1cm4NCn0NCg0KZnVuY3Rpb24gbWFwcGluZ0NoYW5uZWwoeGVwZywgZWxtKSB7DQogIHZhciB0aGlzQ2hhbm5lbCA9IHhFUEdbImVwZ01hcHBpbmciXVt4ZXBnXTsNCiAgLy92YXIgeE1hcHBpbmcgICAgICA9IGVsbS52YWx1ZTsNCiAgdmFyIHhNYXBwaW5nICAgICAgPSBlbG0ub3B0aW9uc1tlbG0uc2VsZWN0ZWRJbmRleF0udmFsdWUNCiAgDQogIGlmIChidWxrID09IGZhbHNlKSB7DQogICAgDQogICAgdGhpc0NoYW5uZWxbIngtbWFwcGluZyJdID0geE1hcHBpbmc7DQoNCiAgICB2YXIgdHIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCh4ZXBnKTsNCg0KICAgIGlmICh4TWFwcGluZyA9PSAiLSIpIHsNCiAgICAgIHRoaXNDaGFubmVsWyJ4LWFjdGl2ZSJdID0gZmFsc2U7DQogICAgICB0ci5jbGFzc05hbWUgPSAibm90QWN0aXZlRVBHIg0KICAgIH0gZWxzZSB7DQogICAgICB0aGlzQ2hhbm5lbFsieC1hY3RpdmUiXSAgPSB0cnVlOw0KICAgICAgdHIuY2xhc3NOYW1lID0gImFjdGl2ZUVQRyINCiAgICB9DQoNCiAgICAvLyBTaG93IGRhdGEgaW4gdGFibGUNCiAgICB2YXIgdGQgPSB0ci5nZXRFbGVtZW50c0J5VGFnTmFtZSgiVEQiKTsNCiAgICB2YXIgZGF0YVhtbHR2SUQgPSB0ZFt0ZC5sZW5ndGggLSAxXS5sYXN0Q2hpbGQ7DQogICAgZGF0YVhtbHR2SUQuaW5uZXJIVE1MID0geE1hcHBpbmc7DQogICAgLy9jb25zb2xlLmxvZyh0ZFt0ZC5sZW5ndGggLSAxXSk7DQogICAgLy9jb25zb2xlLmxvZyh4TWFwcGluZywgZWxtKTsNCg0KICAgIGNyZWF0ZVNlYXJjaE9iaigpOw0KICAgIHNlYXJjaEluTWFwcGluZygpOw0KICAgIHVwZGF0ZUNoYW5uZWxMb2dvKHhlcGcpDQogICAgbWFwcGluZ0RldGFpbCh4ZXBnKTsNCiAgICByZXR1cm4NCiAgfQ0KDQogIGlmIChidWxrID09IHRydWUpIHsNCg0KICAgIHZhciBrZXkgPSAieC1tYXBwaW5nIg0KICAgIHZhciB2YWx1ZSA9IHhNYXBwaW5nDQogICAgc2F2ZUJ1bGsoa2V5LCB2YWx1ZSk7DQoNCiAgICBtYXBwaW5nRGV0YWlsKHhlcGcpOw0KICAgIHJldHVybg0KICB9DQoNCiAgcmV0dXJuDQp9DQoNCg0KZnVuY3Rpb24gY3JlYXRlTmV3VEQobmV3SXRlbSwgZWxtKSB7DQogIHZhciBuZXdURCA9IG5ldyBPYmplY3QoKTsNCiAgbmV3VERbIl9lbGVtZW50Il0gPSAiVEQiOw0KICANCiAgZWxtLmFwcGVuZENoaWxkKGNyZWF0ZUVsZW1lbnQobmV3VEQpKTsNCiAgdmFyIHRkID0gZWxtLmxhc3RDaGlsZDsgDQogIA0KICBzd2l0Y2gobmV3SXRlbVsiX2VsZW1lbnQiXSkgew0KICAgIGNhc2UgIlNFTEVDVCI6DQogICAgICB0ZC5hcHBlbmRDaGlsZChjcmVhdGVFbGVtZW50KG5ld0l0ZW0pKTsNCiAgICAgIHZhciB0ZCA9IGVsbS5sYXN0Q2hpbGQubGFzdENoaWxkOyANCiAgICAgIHZhciB2YWx1ZXMgPSBuZXdJdGVtWyJfb3B0aW9uVmFsdWVzIl07DQogICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHZhbHVlcy5sZW5ndGg7IGkrKykgew0KICAgICAgICAvL2NvbnNvbGUubG9nKGl0ZW0pOw0KICAgICAgICB2YXIgbmV3RW50cnkgPSBuZXcgT2JqZWN0Ow0KICAgICAgICBuZXdFbnRyeVsiX2VsZW1lbnQiXSAgPSAiT1BUSU9OIjsNCiAgICAgICAgbmV3RW50cnlbIl90ZXh0Il0gICAgID0gdmFsdWVzW2ldOw0KICAgICAgICBuZXdFbnRyeVsidmFsdWUiXSAgICAgPSB2YWx1ZXNbaV07DQogICAgICAgIHRkLmFwcGVuZENoaWxkKGNyZWF0ZUVsZW1lbnQobmV3RW50cnkpKTsNCiAgICAgIH0NCiAgICAgIHRkLnZhbHVlID0gbmV3SXRlbVsidmFsdWUiXTsNCg0KICAgICAgYnJlYWs7DQogICAgDQogICAgZGVmYXVsdDogDQogICAgICANCiAgICAgIHRkLmFwcGVuZENoaWxkKGNyZWF0ZUVsZW1lbnQobmV3SXRlbSkpOw0KICAgICAgYnJlYWs7DQogIH0NCiAgDQp9DQoNCmZ1bmN0aW9uIHNhdmVYRVBHKCkgew0KICBpZiAobWFwcGluZ0Vycm9yID09IHRydWUpIHsNCiAgICBhbGVydCgiRGF0YSBjb3VsZCBub3QgYmUgc2F2ZWQsIGVycm9ycyBpbiB0aGUgWEVQRyBkYXRhLiIpOw0KICAgIHJldHVybjsNCiAgfQ0KICBzaG93TG9hZGluZ1NjcmVlbih0cnVlKTsNCg0KICB2YXIgZGF0YSA9IG5ldyBPYmplY3QoKTsNCiAgZGF0YVsiZXBnTWFwcGluZyJdID0geEVQR1siZXBnTWFwcGluZyJdOw0KICBkYXRhWyJjbWQiXSA9ICJzYXZlRXBnTWFwcGluZyI7DQogIC8vY29uc29sZS5sb2coZGF0YSk7DQogIHhUZVZlKGRhdGEpOw0KfQ0KDQpmdW5jdGlvbiBidWxrRWRpdCgpIHsNCiAgYnVsayA9ICFidWxrOw0KICB2YXIgY2xhc3NOYW1lOw0KDQogIHZhciBlbG0gPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCJidWxrIik7DQoNCiAgc3dpdGNoKGJ1bGspIHsNCiAgICBjYXNlIHRydWU6IA0KICAgICAgY2xhc3NOYW1lID0gImJ1bGsgc2hvd0J1bGsiOw0KICAgICAgYnJlYWs7DQoNCiAgICBjYXNlIGZhbHNlOiANCiAgICAgIGNsYXNzTmFtZSA9ICJidWxrIGhpZGVCdWxrIjsNCiAgICAgIGJ1bGtFZGl0QWxsID0gZmFsc2U7DQogICAgICBicmVhazsNCiAgfQ0KDQogIGZvciAodmFyIGkgPSAwOyBpIDwgZWxtLmxlbmd0aDsgaSsrKSB7DQogICAgZWxtW2ldLmNsYXNzTmFtZSA9IGNsYXNzTmFtZTsNCiAgICBlbG1baV0uY2hlY2tlZCA9IGZhbHNlOw0KICB9DQoNCn0NCg0KZnVuY3Rpb24gYnVsa0VkaXRBbGxDaGFubmVscygpIHsNCg0KICB2YXIgYWxsVFIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiaWRfbWFwcGluZyIpLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJUUiIpOw0KDQogIGZvciAodmFyIGkgPSAxOyBpIDwgYWxsVFIubGVuZ3RoOyBpKyspIHsNCiAgICBpZiAoYWxsVFJbaV0uc3R5bGUuZGlzcGxheSAhPSAibm9uZSIpIHsNCiAgICAgIHN3aXRjaChidWxrRWRpdEFsbCkgew0KICAgICAgICBjYXNlIGZhbHNlOiBhbGxUUltpXS5maXJzdENoaWxkLmZpcnN0Q2hpbGQuY2hlY2tlZCA9IHRydWU7IGJyZWFrOw0KICAgICAgICBjYXNlIHRydWU6IGFsbFRSW2ldLmZpcnN0Q2hpbGQuZmlyc3RDaGlsZC5jaGVja2VkID0gZmFsc2U7IGJyZWFrOyANCiAgICAgIH0NCg0KICAgIH0NCiAgICANCiAgfQ0KDQogIGJ1bGtFZGl0QWxsID0gIWJ1bGtFZGl0QWxsOw0KfQ0KDQpmdW5jdGlvbiBzb3J0VGFibGUoY29sdW1tKSB7DQogIC8vY29uc29sZS5sb2coY29sdW1tKTsNCiAgaWYgKGNvbHVtbSA9PSBjb2x1bW5Ub1NvcnQpIHsNCiAgICAvL3JldHVybjsNCiAgfQ0KDQogIHZhciB0YWJsZSAgICAgICA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJpZF9tYXBwaW5nIik7DQogIHZhciB0YWJsZUhlYWQgICA9IHRhYmxlLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJUUiIpWzBdOw0KICB2YXIgdGFibGVJdGVtcyAgPSB0YWJsZUhlYWQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlREIik7DQogIA0KICB2YXIgc29ydE9iaiA9IG5ldyBPYmplY3QoKTsNCiAgdmFyIHgsIHhWYWx1ZTsNCiAgdmFyIHRhYmxlSGVhZGVyDQogIHZhciBzb3J0QnlTdHJpbmcgPSBmYWxzZQ0KDQogIGlmIChjb2x1bW0gPiAwICYmIGNvbHVtblRvU29ydCA+IDApICB7DQogICAgdGFibGVJdGVtc1tjb2x1bW5Ub1NvcnRdLmNsYXNzTmFtZSA9ICJwb2ludGVyIjsNCiAgICB0YWJsZUl0ZW1zW2NvbHVtbV0uY2xhc3NOYW1lID0gInNvcnRUaGlzIjsNCiAgfQ0KDQogIGNvbHVtblRvU29ydCA9IGNvbHVtbTsNCg0KICB2YXIgcm93cyA9IHRhYmxlLnJvd3M7DQoNCiAgaWYgKHJvd3NbMV0gIT0gdW5kZWZpbmVkKSB7DQogICAgdGFibGVIZWFkZXIgPSByb3dzWzBdDQoNCiAgICB4ID0gcm93c1sxXS5nZXRFbGVtZW50c0J5VGFnTmFtZSgiVEQiKVtjb2x1bW1dOw0KICAgIA0KICAgIGZvciAoaSA9IDE7IGkgPCByb3dzLmxlbmd0aDsgaSsrKSB7DQoNCiAgICAgIHggPSByb3dzW2ldLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJURCIpW2NvbHVtbV07DQoNCiAgICAgIHN3aXRjaCh4LmNoaWxkTm9kZXNbMF0udGFnTmFtZS50b0xvd2VyQ2FzZSgpKSB7DQogICAgICAgIGNhc2UgImlucHV0IjoNCiAgICAgICAgICB4VmFsdWUgPSB4LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJJTlBVVCIpWzBdLnZhbHVlLnRvTG93ZXJDYXNlKCk7DQogICAgICAgICAgYnJlYWs7DQoNCiAgICAgICAgY2FzZSAicCI6DQogICAgICAgICAgeFZhbHVlID0geC5nZXRFbGVtZW50c0J5VGFnTmFtZSgiUCIpWzBdLmlubmVyVGV4dC50b0xvd2VyQ2FzZSgpOw0KICAgICAgICAgIGJyZWFrOw0KICAgICAgICANCiAgICAgICAgZGVmYXVsdDogY29uc29sZS5sb2coeC5jaGlsZE5vZGVzWzBdLnRhZ05hbWUpOw0KICAgICAgfQ0KDQogICAgICBpZiAoeFZhbHVlID09ICIiIHx8IHhWYWx1ZSA9PSBOYU4pIHsNCiAgICAgICAgeFZhbHVlID0gaQ0KICAgICAgICBzb3J0T2JqW2ldID0gcm93c1tpXTsNCiAgICAgIA0KICAgICAgfSBlbHNlIHsNCg0KICAgICAgICBzd2l0Y2goaXNOYU4oeFZhbHVlKSkgew0KICAgICAgICAgIGNhc2UgZmFsc2U6IA0KDQogICAgICAgICAgICB4VmFsdWUgPSBwYXJzZUZsb2F0KHhWYWx1ZSk7DQogICAgICAgICAgICBzb3J0T2JqW3hWYWx1ZV0gPSByb3dzW2ldDQogICAgICAgICAgICBicmVhazsNCg0KICAgICAgICAgIGNhc2UgdHJ1ZToNCg0KICAgICAgICAgICAgc29ydEJ5U3RyaW5nID0gdHJ1ZQ0KICAgICAgICAgICAgc29ydE9ialt4VmFsdWUudG9Mb3dlckNhc2UoKSArIGldID0gcm93c1tpXQ0KICAgICAgICAgICAgYnJlYWs7DQoNCiAgICAgICAgfQ0KDQogICAgICB9DQogICAgDQogICAgfQ0KDQogICAgd2hpbGUgKHRhYmxlLmZpcnN0Q2hpbGQpIHsNCiAgICAgIHRhYmxlLnJlbW92ZUNoaWxkKHRhYmxlLmZpcnN0Q2hpbGQpOw0KICAgIH0NCiAgICANCiAgICB2YXIgc29ydFZhbHVlcyA9IGdldE9iaktleXMoc29ydE9iaikNCiAgICBpZiAoc29ydEJ5U3RyaW5nID09IHRydWUpIHsNCiAgICAgIHNvcnRWYWx1ZXMuc29ydCgpDQogICAgfSBlbHNlIHsNCiAgICAgIGZ1bmN0aW9uIHNvcnRGbG9hdChhLCBiKSB7IA0KICAgICAgICByZXR1cm4gYSAtIGI7IA0KICAgICAgfQ0KICAgICAgc29ydFZhbHVlcy5zb3J0KHNvcnRGbG9hdCk7DQogICAgfQ0KDQogICAgdGFibGUuYXBwZW5kQ2hpbGQodGFibGVIZWFkZXIpDQogICAgDQogICAgZm9yICh2YXIgaSA9IDA7IGkgPCBzb3J0VmFsdWVzLmxlbmd0aDsgaSsrKSB7DQogICAgIA0KICAgICAgdGFibGUuYXBwZW5kQ2hpbGQoc29ydE9ialtzb3J0VmFsdWVzW2ldXSkNCg0KICAgIH0NCiAgICANCiAgfQ0KDQp9DQoNCg0KZnVuY3Rpb24gc29ydFRhYmxlX29sZChjb2x1bW0pIHsNCiAgc2hvd0xvYWRpbmdTY3JlZW4odHJ1ZSk7DQogIA0KICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7IA0KDQogICAgdmFyIHRhYmxlLCByb3dzLCBzd2l0Y2hpbmcsIGksIHgsIHksIHNob3VsZFN3aXRjaDsNCiAgICB0YWJsZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJpZF9tYXBwaW5nIik7DQoNCiAgICB2YXIgdGFibGVIZWFkID0gdGFibGUuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlRSIilbMF07DQogICAgdmFyIHRhYmxlSXRlbXMgPSB0YWJsZUhlYWQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlREIik7DQoNCiAgICBpZiAoY29sdW1tID4gMCkgIHsNCiAgICAgIHRhYmxlSXRlbXNbY29sdW1uVG9Tb3J0XS5jbGFzc05hbWUgPSAicG9pbnRlciI7DQogICAgICB0YWJsZUl0ZW1zW2NvbHVtbV0uY2xhc3NOYW1lID0gInNvcnRUaGlzIjsNCiAgICB9DQogICAgDQogICAgY29sdW1uVG9Tb3J0ID0gY29sdW1tOw0KDQogICAgLyoNCiAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRhYmxlSXRlbXMubGVuZ3RoOyBpKyspIHsNCiAgICAgIGlmICh0YWJsZUl0ZW1zW2ldLmNsYXNzTmFtZSAhPSB1bmRlZmluZWQpIHsNCiAgICAgICAgdGFibGVJdGVtc1tpXS5jbGFzc05hbWUgPSAicG9pbnRlciINCiAgICAgIH0NCg0KICAgIH0NCiAgICAqLw0KDQogICAgDQoNCiAgICBjb25zb2xlLmxvZyh0YWJsZUl0ZW1zKTsgDQoNCiAgICBzd2l0Y2hpbmcgPSB0cnVlOw0KICAgIHdoaWxlIChzd2l0Y2hpbmcpIHsNCiAgICAgIHN3aXRjaGluZyA9IGZhbHNlOw0KICAgICAgcm93cyA9IHRhYmxlLnJvd3M7DQogICAgICBmb3IgKGkgPSAxOyBpIDwgKHJvd3MubGVuZ3RoIC0gMSk7IGkrKykgew0KICAgICAgICBzaG91bGRTd2l0Y2ggPSBmYWxzZTsNCg0KICAgICAgICB4ID0gcm93c1tpXS5nZXRFbGVtZW50c0J5VGFnTmFtZSgiVEQiKVtjb2x1bW1dOw0KICAgICAgICB5ID0gcm93c1tpICsgMV0uZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlREIilbY29sdW1tXTsNCg0KICAgICAgICBzd2l0Y2goeC5jaGlsZE5vZGVzWzBdLnRhZ05hbWUudG9Mb3dlckNhc2UoKSkgew0KICAgICAgICAgIGNhc2UgImlucHV0IjoNCiAgICAgICAgICAgIHhWYWx1ZSA9IHguZ2V0RWxlbWVudHNCeVRhZ05hbWUoIklOUFVUIilbMF0udmFsdWUudG9Mb3dlckNhc2UoKTsNCiAgICAgICAgICAgIHlWYWx1ZSA9IHkuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIklOUFVUIilbMF0udmFsdWUudG9Mb3dlckNhc2UoKTsNCiAgICAgICAgICAgIGJyZWFrOw0KDQogICAgICAgICAgY2FzZSAicCI6DQogICAgICAgICAgICB4VmFsdWUgPSB4LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJQIilbMF0uaW5uZXJUZXh0LnRvTG93ZXJDYXNlKCk7DQogICAgICAgICAgICB5VmFsdWUgPSB5LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJQIilbMF0uaW5uZXJUZXh0LnRvTG93ZXJDYXNlKCk7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgICANCiAgICAgICAgICBkZWZhdWx0OiBjb25zb2xlLmxvZyh4LmNoaWxkTm9kZXNbMF0udGFnTmFtZSk7DQogICAgICAgIH0NCg0KICAgICAgICANCiAgICAgICAgc3dpdGNoKGlzTmFOKHhWYWx1ZSkpIHsNCiAgICAgICAgICBjYXNlIGZhbHNlOiB4VmFsdWUgPSBwYXJzZUZsb2F0KHhWYWx1ZSkgOyBicmVhazsNCiAgICAgICAgfQ0KDQogICAgICAgIHN3aXRjaChpc05hTih5VmFsdWUpKSB7DQogICAgICAgICAgY2FzZSBmYWxzZTogeVZhbHVlID0gcGFyc2VGbG9hdCh5VmFsdWUpIDsgYnJlYWs7DQogICAgICAgIH0NCiAgICAgICAgDQoNCiAgICAgICAgaWYgKHhWYWx1ZSA+IHlWYWx1ZSkgew0KICAgICAgICAgIHNob3VsZFN3aXRjaCA9IHRydWU7DQogICAgICAgICAgYnJlYWs7DQogICAgICAgIH0NCg0KICAgICAgfQ0KICAgICAgaWYgKHNob3VsZFN3aXRjaCkgew0KICAgICAgICByb3dzW2ldLnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKHJvd3NbaSArIDFdLCByb3dzW2ldKTsNCiAgICAgICAgc3dpdGNoaW5nID0gdHJ1ZTsNCiAgICAgIH0NCiAgICB9DQogICAgY3JlYXRlU2VhcmNoT2JqKCkNCiAgICANCiAgICBzaG93TG9hZGluZ1NjcmVlbihmYWxzZSk7DQogIH0sIDIwKTsNCg0KfQ0KDQpmdW5jdGlvbiBzaG93WEVQRygpIHsNCiAgdmFyIHVybCA9IGxvY2F0aW9uLnByb3RvY29sICsgIi8vIiArIGxvY2F0aW9uLmhvc3RuYW1lICsgIjoiICsgbG9jYXRpb24ucG9ydCArICIveG1sdHYveHRldmUueG1sIg0KICB2YXIgd2luID0gd2luZG93Lm9wZW4odXJsLCAnX2JsYW5rJyk7DQogIHdpbi5mb2N1cygpOw0KfQ==" - webUI["html/js/classes_ts.js"] = "dmFyIF9fZXh0ZW5kcyA9ICh0aGlzICYmIHRoaXMuX19leHRlbmRzKSB8fCAoZnVuY3Rpb24gKCkgew0KICAgIHZhciBleHRlbmRTdGF0aWNzID0gZnVuY3Rpb24gKGQsIGIpIHsNCiAgICAgICAgZXh0ZW5kU3RhdGljcyA9IE9iamVjdC5zZXRQcm90b3R5cGVPZiB8fA0KICAgICAgICAgICAgKHsgX19wcm90b19fOiBbXSB9IGluc3RhbmNlb2YgQXJyYXkgJiYgZnVuY3Rpb24gKGQsIGIpIHsgZC5fX3Byb3RvX18gPSBiOyB9KSB8fA0KICAgICAgICAgICAgZnVuY3Rpb24gKGQsIGIpIHsgZm9yICh2YXIgcCBpbiBiKSBpZiAoYi5oYXNPd25Qcm9wZXJ0eShwKSkgZFtwXSA9IGJbcF07IH07DQogICAgICAgIHJldHVybiBleHRlbmRTdGF0aWNzKGQsIGIpOw0KICAgIH07DQogICAgcmV0dXJuIGZ1bmN0aW9uIChkLCBiKSB7DQogICAgICAgIGV4dGVuZFN0YXRpY3MoZCwgYik7DQogICAgICAgIGZ1bmN0aW9uIF9fKCkgeyB0aGlzLmNvbnN0cnVjdG9yID0gZDsgfQ0KICAgICAgICBkLnByb3RvdHlwZSA9IGIgPT09IG51bGwgPyBPYmplY3QuY3JlYXRlKGIpIDogKF9fLnByb3RvdHlwZSA9IGIucHJvdG90eXBlLCBuZXcgX18oKSk7DQogICAgfTsNCn0pKCk7DQp2YXIgTWFpbk1lbnUgPSAvKiogQGNsYXNzICovIChmdW5jdGlvbiAoKSB7DQogICAgZnVuY3Rpb24gTWFpbk1lbnUoKSB7DQogICAgICAgIHRoaXMuRG9jdW1lbnRJRCA9ICJtYWluLW1lbnUiOw0KICAgICAgICB0aGlzLkhUTUxUYWcgPSAiTEkiOw0KICAgIH0NCiAgICBNYWluTWVudS5wcm90b3R5cGUuY3JlYXRlID0gZnVuY3Rpb24gKCkgew0KICAgICAgICBjb25zb2xlLmxvZyh0aGlzLkRvY3VtZW50SUQpOw0KICAgIH07DQogICAgcmV0dXJuIE1haW5NZW51Ow0KfSgpKTsNCnZhciBNYWluTWVudUl0ZW0gPSAvKiogQGNsYXNzICovIChmdW5jdGlvbiAoX3N1cGVyKSB7DQogICAgX19leHRlbmRzKE1haW5NZW51SXRlbSwgX3N1cGVyKTsNCiAgICBmdW5jdGlvbiBNYWluTWVudUl0ZW0oKSB7DQogICAgICAgIHJldHVybiBfc3VwZXIgIT09IG51bGwgJiYgX3N1cGVyLmFwcGx5KHRoaXMsIGFyZ3VtZW50cykgfHwgdGhpczsNCiAgICB9DQogICAgTWFpbk1lbnVJdGVtLnByb3RvdHlwZS5jcmVhdGUyID0gZnVuY3Rpb24gKCkgew0KICAgICAgICB2YXIgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQodGhpcy5IVE1MVGFnKTsNCiAgICAgICAgZWxlbWVudC5pbm5lclRleHQgPSB0aGlzLlZhbHVlOw0KICAgICAgICBjb25zb2xlLmxvZyhlbGVtZW50KTsNCiAgICB9Ow0KICAgIHJldHVybiBNYWluTWVudUl0ZW07DQp9KE1haW5NZW51KSk7DQpmdW5jdGlvbiBwYWdlUmVhZHkoKSB7DQogICAgdmFyIGl0ZW0gPSBuZXcgTWFpbk1lbnVJdGVtKCk7DQogICAgaXRlbS5WYWx1ZSA9ICJUZXN0IjsNCiAgICBpdGVtLmNyZWF0ZTIoKTsNCn0NCg==" + webUI["html/video/stream-limit.ts"] = "R0AREABC8CUAAcEAAP8B/wAB/IAUSBIBBkZGbXBlZwlTZXJ2aWNlMDF3fEPK//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////9HQAAQAACwDQABwQAAAAHwACqxBLL//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////0dQABAAArASAAHBAADhAPAAG+EA8AAVvU1W////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////R0EAMAdQAAB7DH4AAAAB4AAAgMAKMQAJEKERAAfYYQAAAAEJ8AAAAAFnZAAorNlAeAIn5cBEAAADAAQAAAMAyDxgxlgAAAABaOvjyyLAAAABBgX//6rcRem95tlIt5Ys2CDZI+7veDI2NCAtIGNvcmUgMTUyIHIyODU0IGU5YTU5MDMgLSBILjI2NC9NUEVHLTQgQVZDIGNvZGVjIC0gQ29weWxlZnQgMjAwMy0yMDE3IC0gaHR0cDovL3dHAQARd3cudmlkZW9sYW4ub3JnL3gyNjQuaHRtbCAtIG9wdGlvbnM6IGNhYmFjPTEgcmVmPTMgZGVibG9jaz0xOjA6MCBhbmFseXNlPTB4MzoweDExMyBtZT1oZXggc3VibWU9NyBwc3k9MSBwc3lfcmQ9MS4wMDowLjAwIG1peGVkX3JlZj0xIG1lX3JhbmdlPTE2IGNocm9tYV9tZT0xIHRyZWxsaXM9MSA4eDhkY3Q9MSBjcW09MCBkZUcBABJhZHpvbmU9MjEsMTEgZmFzdF9wc2tpcD0xIGNocm9tYV9xcF9vZmZzZXQ9LTIgdGhyZWFkcz02IGxvb2thaGVhZF90aHJlYWRzPTEgc2xpY2VkX3RocmVhZHM9MCBucj0wIGRlY2ltYXRlPTEgaW50ZXJsYWNlZD0wIGJsdXJheV9jb21wYXQ9MCBjb25zdHJhaW5lZF9pbnRyYT0wIGJmcmFtZXM9MyBiX3B5cmFtaWQ9MiBiX2FkRwEAE2FwdD0xIGJfYmlhcz0wIGRpcmVjdD0xIHdlaWdodGI9MSBvcGVuX2dvcD0wIHdlaWdodHA9MiBrZXlpbnQ9MjUwIGtleWludF9taW49MjUgc2NlbmVjdXQ9NDAgaW50cmFfcmVmcmVzaD0wIHJjX2xvb2thaGVhZD00MCByYz1jcmYgbWJ0cmVlPTEgY3JmPTIzLjAgcWNvbXA9MC42MCBxcG1pbj0wIHFwbWF4PTY5IHFwc3RlcD1HAQAUNCBpcF9yYXRpbz0xLjQwIGFxPTE6MS4wMACAAAABZYiEADv//vdOvwKbVMIqA5JXCvbKpCZZuVJrAfKmAAADAAADAAADAAADAAADAq7aiiFafTJvTQAAAwAAAwAAF1AAAAVUAAADAiYAAAMBNwAAAwDUAAADAMkAAAMA4gAAAwD+AAADATIAAAMCGgAABAQAAAYoAAAOwAAAAwAAAwAAAwAAAwAAAwAAAwAAAwAAAwAAAwAAAwAAA0cBABUAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAA2F55UwH3zADgCn7Xsg5urkZA62Mq62dWKwprJak9U0cjT1Yh9J7WRISuxmagZEf3SG5hJ5glLK+m1DQRdCFD2mN6YZGjkCTKwYyDxKlNHkaW8fuatJR0sAtCoVfOjRr2/NS+bw85zMQI7VFu7+JhD/Go1Q5RgMv5bIq0gpxJKRnF31ojI62CwCRiJ1dHa6nIwcU00zURwEAFhyu6/UdOQ6gXR/Fn3SkmUwkQsjmQF0XEAAAAwAAQkN8C3guxx7g23xd3I1uQvL9Dh+C+fpNfOmVma2q7DiUF3VD8o51I57iYniPq7fe7f2YnPwRwynt2WAsZSjTMgHnGbk5zsyy+rXIMy1p3notBIJkpSBHSuogn9FDL99PItYMLSYCXzbB1ngJo9jnaTgI0b904RmkSjuZtpKyt0ofkYfxNRrztwDGURi3JRPkpuouCWX8KWcxn8NHAQAXWrAsVbXQ0f+vby6QN9oHh0jRsBw7+79AAAsCUlIAAAMAAIGTVQt7SJOBNtpTiAsB1/AzhYzJ8lMVgRENWBT0VBkiPo9+OyjWfg6dlrISORs+GKnEy5aUKA1M9uXDtedogUi7S7uVd54Gj1Qb5NTw4Jix5w1Ejl/de0xvxERyv4b3rmZdsU72FOcfnbK1K8lG4wnxVzYPGiElBGSrNsWNXskCT++8dTbAQv4ejltKQDN2z2xpw5g1CkcBABjFGRM3p9Rp9BGLQ/gaCYSE37IZAAADAFsvgUK7rSLf56T0ZOVulX2oYo74ASEKbonCVfRcGAke05L38QhPtmJ8xRmebFR5/801CbQAWvnAOc2AWgY1coPTdBTZIfsBwU94Gu+qjaoR4dfBX9u8RZXmrbLBCqJ8wTgvf9kJu7/27gcTx8SsJfq40cjhNaRNiof2e8CF4imWObVdvBDpPRxSiR1tsORfA0r+gqjURLyvIwDsE+O9NkeiRwEAGZMG5kW8doFnKjj4QW/OIpFfzF+53Eb4LrnRmrkHqYA/RnqVvBWNpUSFdATxWKzy0MBYRpY4IoUCpCeWwgQ/9Ny0Yi1iQ++wmh1ay/SnYR5B8k+FpDYbWDODuSuCMmrTDKXjicAStFseuB4peB1Ufu7fitj0L0uZzCgGY5zkzbBp3bfXJQEGCnSwEtW+TY50gbhenVCesUfJKjvG6PshP5ScKPdVkZltrS4wx1CntFR+srvN3MjP6p1HAQAaM8+T4dTA6o28g/ki3+J9b5WD8oY+fVgTsb1jfV2GWWd2Hh8JK00uloyX94k2QHGzhbuiS1YKiEdCLz9Pt3RuxuTNm9XSlLwQvyRvfY6sKD8KIinvSq3XP//Kx5Ni82QOXvrn5eEmFlTGuT36Yax5OR4BI3UhdWSGGa0YoqeD7zcvWv64AAANbhz0PNupTjTGu6vxaQq6PcgarV8F7NT0zHSQCZ8KuEFdideJmx4581/BCMYXuJt5cEcBABufpZ3Gzdy5JLw0J2eg1hz70uf/nD82aqNxy/HUvEd6+w5woyIYb7nzl1eo/+ACzPidfiSKydCNxKh9e7tKjNNTJYRX+1f5A398n+2wKJPX7dRmPk4C0j/auaYtAMF+Ft5g6ZqxQuA071fEmj4uiYMR7F+JbZ7CjA98DObmNy/ZWoJQvMrvR3ep5XAmNFkqs1Ma20JWsiikVsr/jblTK0PBVnLul36knafsXUW38/19lMQo0HUcMvrmRwEAHI2OaNsvRTodm5RGcpDEKfXIqXsLfH53r0F3K+sfRvbk3u2ilZd/c5zH95TBbceTvFEt5mD6oPEhxHX3gId6ZBsNNUKUnWDxoX7MaYE38/ELMyIVzRxDCIEkf+q7aY6tcZEMrPBa352hxE6SJ+2y/zlDc8X4jSYerSPRgLBiUm/TSHdm/sHP7d/kl2fmIUNKBbeaghigfwmfDnaZ3wPkRi3oXIp3YypbLYpeup62X805+oYMAgynQd1HAQAdHLgV5nC45givqz8G4AAB0pcgXQpZhwRtJ0wE/aFEPMXugXV9NeZnpzJeXaijTBtaFonT4e+hZZXjLHhxTugKb085RNFOoT0GAB6b2twqc++PKcb796IKMKtNpGaUWjoFvBDGh4HrRguoZWCbLy2RFxUX8SmNUb7qfDXwIi4nY4i89/TcrSc0q64NPWA3SPmQ5D5/ZFbRzBtFuMVVmbEF0cxv9RoqLyW/VGkp+bBAmoMhAw82eI9VskcBAB7bidwIeUDbJvHb2Z8Ep/avJccAh157ZUytHDDW9DhmdbdBzT1TpsJFsFWe8FOQfaNpJVfj2nGqShY4+DhxRYxOpzXw2VF7hQpp6PqFUtyi4ib3VHETkSuHz+2uom/bMRbhw+hQ05xdXOHcFVpih+k58QKrhN+txmOmV3ULdeiVLUplf35jQJTUIZltXjTCZhljRc0sdqOZHDZjy58Sc6hmq8D6lztRR5jN6ifzzKdZbHOpMvK28A4ZRwEAHwyCdGDG4LksEyABPYPnzVuaVJHpUiKgtb3006VleBPo2EZenL5/vyGrjLMas0C6R0iyXZjr0xqvCfaFfxVO/+DQUMKaj0XLNNIrLqXxwzxzy2ENSUjNNySzfvDkpjuJVywa0uwsg60r6EURKgU15gAtbm3Kx4tjb3pRMM8SZHnsN075ztW98+aTrdbRryY9XR74p76dkImiqWIVRQAAAwAAerbiggDgwfd5iHYwqlkEXOqApTuXEhFHAQAQ1PUugOrA4HsFQsLzVf2RjOkhWvlC/kwNqqDXkwlUM6egLoIdgXAyBFgSXuM59iSh6DSi4LwFa/FhyGMrxPV0UF8QD9dGgSeXBUvExQHAGOHz98Mbwm3lBdIzxkzeGLDhi0wZ5SurQPpWomKoDW7t0a+GpQkmCEgVO7iBc/JrOFIt8BBRW1E3EOMv6Wpc5Bw9M2A1XVVaNSFyVkr4bJmsPdNLXAJ4UeKO9R1lUBhl+OhrxoG4RKVHp0cBABF4Om4vKIyHfOkDd6zL8NOXPLL7gS3TIX2EFGJwyyOzsp3WEnvyFp3pujaaLMn/lubQO3uY99+DKi2Io2lBhymLAR6LDBeQ7AhVrgnfiNz91OxGGiYYLcV2yR4f5zrcwMQZNJDrBZZB5gHIDL20vdPnM5RCWlhx/pWX/VbNt2slYDgCwcQp6S/f+sYDWW8d6kKnv4kberk4wmAhuvG6Y9SNfBDQ5l9qn/Obo+/QByc1yiGJRu8Gf6MCRwEAEoe8DYkkVe/6Ixqln5QQ/EQgnqBdcH9XhmfrybwZkozmwKLLqqVJH8KoMeYLCfFbfUaJbcR1M2fwEHGq8BQXjRJFgtHh3lCD2NBLo+9F2kwxA+U6o3SQoAiESygbnYzTRsRmJbxNCRKSLcIhfuhjjCaAi0Icfv4rxjBMuDTA3ZANJ/jmVtzwWUFolUII47bYNLfdylQl/XdlhiHX3vln9Ji8cLEbSL8BMxJ2EI8GBsnrIBeQBPJc+UNHAQATIY6b3+HKasi+GNJ2c21SbezgAtkzMWLCJOnux4sNbrOiNHjom7p+U1hZN9Nr5wuzsM8+1NBBB2pfg3/QKiCYs6b9pduydYs2HEo8FbJJO9uH/yhvTL9d6RHrHf9srnZkSZKhJ7J7mApu4eNNCFusU8sNmfV7H97V1FOBXT/6JShgEQxdnwWdgxDvO8PxjkwuGrYPamKBNG/zRiG5AbW+ikv3OBftfBdhuifSSqoWx0W/XRtyk55S8kcBABTW3x1rkDAHFUfqPG8dZSQWAtnA0fS2fwfdqEGWrbQvYFwWWVcRma+zWJHw2/lVzPD/mSdMieWiX8i5DWTg51gGKy0ftdjOBgAAAwAC/KwTiIpM5clRTlEEi87aAOb87wCHqn1gnPnLGPfQQiw2QYxiClSodV7wEhhJw6ToIwyUjyxYDwVnF2+7eRq7fijw2kLyk5C88BvU1OTdlPGHyBmiT3UXo3I7308/Mn49t3tnXLB8MdaOaVwaRwEAFbiVrH5lksx9oY9DCw61tAqU07scxCL86wtgcyZCmy2ZZ/2W79DRKs2QCu0op9Lw2QYj/OgOj6apaZTOtksj8+VKlTlQQnkV9sFudGr7gpsQoaxBjmrhVk1adbYaFkKCEUYRbDRJpZQDbv1RIRFlY/KmWweiUOZDX+3fplGzJs5LvbvgiM7THIlybfPIXTjS2SPmFm+rQ6T4X9BQocVCjzQvz6g2kp58j9jXT5sBBuu9tC7iTFfMEzZHAQAW0QFraUkCV6gEC2C8wvr2E+hXgJwCskVL+063JAWE9yhGOTyWD/fLQiiuxJ/88Zes8sHmBC+quRzE8SHNO8OIMMptzSvx1i2D8aBb0ksDLYEqwCXN8Lsz+71HkS8SdC0nDGQZqAm7DYd3/uBgR/J4FAOc0jvOUci0tSUbSVn2z+H03GNfHcZ+XgduswjjsUodtsUtRn4nXpryhElgMI3kr2OyFXf92YxZPgbhGubgcNlo+sZ4Z/ApNUcBABeS+kT7jvDiaynYNz51Kc4yccGFoXKWRhGdSRtXJFDck0iJWKT4opQng0gcHiUFaL9bf4jSqm56kxLcQ5YAgHkDZ0UGYh6QEEPPAfCpoDLCF9mL+/OEuHWZ9NOnW7TcJlKbhJOZEKkoE4KW3fDydJ3a3l4IOByTPx5LJAjAZoV1BtKInfF7g5OQU0G5EXJGhFWUsr8Sf48Q9LVjnWvDuawWdWPiS+BcWfUZoGIkK6NoPQR/qL1AIJhcRwEAGAOEUaznr61uMAnNb33549uKjSRk1nM/fUR2BA7+39FhNrmR3taY6qgM804qoHgCSbYS+YIKj8U9vxfATvknbWEZv4JF5hoFJaAN0bNc36f9VcnxAkGsb3r74Yko3jVackXvVrdcN76rT9izohLnH2yQem0zb5wOq7EtjPnGn2t4t4/9JDKIfVb2QikijBu8gHlSjvgVRWSYDIRCi2Zle5MtFyXOaIGwCRAv6PFD6mmJBUT2XimID7tHAQAZOkCES5EDxQ08m+f8cpxKkoyHem8Ex4m8xZ2DA4d39JDH02xtTRRfSfDrC/TqpIjzCtcVv/zzgSflzEbq/UKFH/Z7CbtsrVS2+ll2/CGSNsmOHGi5yrhPM/JSClEmt6IRtyk0FZ3r5cdREJwAKoXP4tNLpfjWSZbATEIGmr+OxqYxQMlzf/93+QrgM/g1HvmPFBPard2U8aKbHTEH3r/kFdkNmlE0EQi5b8TOCYIa/mpuWq/yMn7by0cBABrkhq6Rldw6p3qQyVsZsBpoW3OLgDe/7/pMx+iijZdk9jE9T0fcFh77YVfpjYex2//dcNszIlWr2vl65Z1+0cQQShk/R5GP20mU4dc78l3iyti4DcDCi6PdIU4nzdwZIpGFX9xIuPAHaNfyP4Nyr1K0j9h5STEAHsYX21+iN6CKiuWoWOm3ev+GGzt1NNmtc1W0OYicTiPoIVr1TGzQC+1Nd7izII3tPWn1PEtqM9+fXo32ibSZUvGsRwEAG28xtoQMOBX+QWzc6MLY+xdighCBxpzLcNRK09DBzvBjyt59TqRxzLpeKgJMb4hkrGZnI7ZB7k4WSdssIdlyXiqQOLW68TKxOi/m2l4eAg3OCdiWnrmhOdRSMVLPALUNPDXtBJE5hOD/rtb0FHxtGQKnmP64bBNEEEJCWqJO6W+Gy5Bj/1OPVO5Lb/mGT6SfZVe2RtKnX3ZVDyDZb1jHV0Y6RKS8+Ww1Ya57NIcyPDo3g06Ef4Vi2RpHAQAcWH+V9i+eiLHkvPKkSHT97ZZGFxrcu9T++hegAGupHOjZYoxGWV+zfmemcnV4Qc0p0Sb+bCBN/WYAmY2PsHr+MIroPJIqRxQacYxgv0Eh/ahn4Y8AHjDPnPRprvdugL71ZtfrhmqiLml/RA0I8xMa/JZ4jrmIOqM+Z+fLjB67UYM71w0xjsBG/PgXRORM5Qqkfa6vscWkOW3l2RaUeeyDnUES4bdGUahzOYND5CZ11DaxBi7FZpSS2kcBAB1UDuNag/7CUCi13BGNTDCy03A2H45ho7AAABa85YSo2ddxRWSmP/8M1+fhrnv2TvJk7zHcA5z9BfW6MKcG/ehOV8RoJWUXPPQvUS5U0mqa69CuPBPy9cA1FwAI3ipau/UmVf9WS+R7+XREZCdpkNc5acRUaY6VieEi58Gy3p/q3E9lT4f4oYx563YFbu2Mjwq/dN/ncWug4Nun06Ap71zELPDKDaexmC+kEhaf6dReVEeK+uZfg42ZRwEAHq4bLzMgvrZQb5Neabro0F+gcFiL7UdLm0y8LR7TPvIQ+Kevu6d1BghMMTKxPVSrBVH6F6mATlcYYyhZ6fc7mnHFrpCznzCepMqz3ro5tOUnl9iNq+BQQPFZZlKIVl/GEtg5jzNU88j4KpNvVAoa6Cb/P9X3gWXF7KWmnzgUsZM5mR4GvWJWIcg+IDfe/2FtphXajgL5wfiIK1jzzOr3tQ5xYrVpBvuyKmtdCfIrHoFt4i/42TRgGMJHAQAfCTLHw8EYKGd4hzY41zaYLjR4E4nuBnCtxuCX9FhYm/YnBE6exCJDSBtf1sfFAv5pgAOcF+CZrALrM4tRCUKQs0t0o0+8+ZU1dyyuCLBTtC+vJydoSGmMBg+XNyIPtNEtN7qGS9WWA81qcbxxzsc40CIJf78S26nBKAJuyPu+iX9ANPAyMrgOAVc95U6bJlSjLkP6CXXR2dJRvUv3raWkoAAOjJ71lTFvacoQwhCErx3cbavuczBzJ0cBABB+z7EDY6atdC4NZwX22iBmtZsaHUa3NaBIO7aD08FA7Kd0ugfbomTYomPBMuWwk/b3KMR0uhkyeHKC1RjYo4d/mMo97xS4ix+t+38cwQHmkYQH5Cm1BO6ezuTSevjTojq1hlXD39LxF8a/93o4Tojo+ZmPPJix6BuKlBIwjtpZb0M+nOEX8jPyyd96ytD4eWjOAt/heOiSF9hvmiN50BmkUiITCBF39iClDPO2k/Fag4BqTBbtubcLRwEAEUNMr0m0/lLKJ5ks1W5j+cRzJ3kSK0mRkjrPrr0eWASIwI6LNyATeQMrpq3uWQlAQ+9SdeWmTu5uHTgt+d8sFZe8JXcU+1JnZRSZ9yaoEC0i+bOkGfWyMpA85qtvAlKTBMOm6ub/5NMaKU/VAW9lEvkA9PprSonQVMnG4+BlH2JOh8TsTKkBZPVgILxDM8mFjQXm0TBsezlo4ABKvPWcftdHUaGyF7gP1XbV0exXEHfsSASfYRd0OZZHAQASC+/t5TafeJT36YiEZXYeQH2+IoK6ZxRnFgTmKOGcCCYd3KzwxTJp8XFrSbvg7LzTDnvjGYOaazdnbZt4/Jn3krhhlSRWjhWRqAyxMNVF8n18FXqTzJB1PKNbd7ax8R0AjZfFVC/ycdg6wATRrdRJSofJHpjwYHGQO+L2neTkvCrH/gUPD1U+SjdMlUvLS6vMXop0yzDX/L7HQcLXjKsR2lGDYBlM1UB2WHnq/qPBycWFFtPYyTlN90cBABPvVe8f0oNTNwJhtM/kLJBEZI3ZwCEWYk/wv9hIIWr3A4qkehY4+ptgTX/1///4JZ6dscO9HKuG6puRV3lR4ETvMwdKnHPSHjJF2aQeuvoGeA7yVT+AaeDi7V8ZlVYMc4uVncx1liUQapUssjXpK+2MxWQ7Cb5GU97Drj7W/oPo2Ptldofr3uIe6fvheMu/6aViZagqUWfdOTc0YXVHZzPFok9FEQJUWdUPZiJlfllKLIy/6aAyw8HuRwEAFKEU8CS7kA5ZslGAnKoBbCTNOXl4p9BBgCPqieSBknZibS3PcR/LjWgGifTDu5u2Wj+eAMmSM7P3HMAAAC+T9jKtui2s4cFmXoWX8va4/qVAzxWGs3w547v+Tmac4FyXAqNj0/rFe9k3Egw/P9Q1LxzxwDOEbknnvYdCGAAp8Ivp0KW4t+inn46uKR4RHHa3/VSY8znvIUPdudc1/K0jIEI/Q3pEL9pzjQZxtgqbGfHOMo5yI2dWIDlHAQAV/YbUhbsIYEjAICdYv/AE36OWoooY0Nf/2lmJx7BftLoE1dLDfZKeiAdmrhnpvihEEfTo0MaKnEoSfryZ2OAN9yMb5+fcL8FTpHFFCfvfivNdZyTFOvrxIc3hv+2TavaVMjhtrDqlErqEd/XPoVqKmAeHo/ORSn73CZ/cWNXX0JQ1pRuP8VvL2QwfnG2vq9nTXfiQrMzEeEpNIaeqZS29MfFP8+VCiKyM9p1vNhZC1NItrJ+gsFzJsEcBABbEKpgjE+ovbWLdj0EXyH8KO2Jmn2vTLCKigPqQhq3uaL/6o+uZWDa8dvkxNep66qHmLO7/821Audrn3I6tmZZWSE51J3/XYBVjpW9Fw0Bkr6GpAeDT7ybMGYdKJsd7/WZPZV+Db7zD1ZmulDiRnfN9EmSFStYYD0lEfqrCbP+xQuwtYvfYJsqIvl31t7RBZk/QV2ENWfDLEpMHt5tlrAv5w+3dl1lg2WcrFP2A/7e4sIIyRJo4HsLGRwEAFz/AGCMZq1GUNbPZoNkM+R2je+8sB+Gh/lgSXtAQZK4CwsR8tHn5hyV9QoAAAGJ3xJ/ZGmyBFBfvFt3Yyf/NFoecJXk49dlUxZvTtB0WRCewg6hn1yl3AH406dFPGEk44wMT7vPKyYJW4OT7kiDQvBsdpaU9TmUUKyup1MsILviQKXWAv+kecpWRTY51BniLudSBH3vmnE2l4hUOm7AVWQ3O8V048//RRvDBX7tSPIiWu+MxSSGZfLdHQAARAACwDQABwQAAAAHwACqxBLL//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////0dQABEAArASAAHBAADhAPAAG+EA8AAVvU1W////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////RwEAGO10tGlFAwyE91Tzg8923ovJk1dv2xh1gVlYQFtWdZ6NSQ8vgHM7/tMfIZPsqgCU856rdBJJRMDaor/oWA7pkvSmC2aqaC5fd/mkWUPTuG8fRhGqOY1rKxLNSI3HtTQAcuVBxRM0NfMw0ky/JMJYZiCgXcNsxpxl+khr/9fKtO5Fg2VNBti92xcZimHUZDJMQTBOY6vSR9L1N2O/kJQCpdfuc9bkcUTMjH/es/lAySxvbiislkohqkpHAQAZVatwHI0t9eHCUfDyWUEtuCNyDwQFOVMtaYEQJrTrhQX0VduT86F0u0wN9ag0uPsrmX6Rid/x5S7KI1SkS+qP6cdmgSP57uiF4dG6IKsWNfGBLY09H/CFlrg73WINQkkp2diKkdEmtZetn8+ZAKzR5eXN5FebiKt6pIkNLuSofjosypEs2o6boKsfpmbtOV0idOeWDM9C8EIcn3aZwk1s2KBDvt1DlY+i2Cuvhk3XoKLT+pq/bOC5QkcBABolcOXneZXLoQw9W1PH1f/of92Ytjj8okrWijcQAKlE5l8XoTb9qrOiZnDOhqwcMlB9H9rorq041I89hChohYoSkJElcM8V+r8WYN5axD1BNyfwaHAOm4UN2/VEYOkNSfMjmx2S0WW/F2ha8Jj4fc4QgqcXr+TnnbwqLkLTValK4Qa1pcv7PIbDq6zCUfxe04guZ8xEhPQjp17/G6IB/6uqIuo7pzuN2ILWNmJBMsawAinQy0KHE7HQRwEAGz1R+tt0cmQSjo1isoOsDDDIp3Tmizsn67P/OcHe/0kDfOxZ64ySuxIIL/dIIzhjEvRAf7spa1ZKukufXffNiEUgf2Dh1+Svgx4pc4AR8v3Kp5DA2FPhKaNALz2OOqAZkq4APojoxUc4cQJzOVMx3nKPN7LUwaZe9h5UYz/rr+O7LMCCGQBmZv+T+vfZ7MH+hgR0RuIm2WDgK0xWnYsjYgpdhPkOFmR9ypsthtXh18/3M3tIcz9yoZVHAQAcD8cm9dXbHuN4+yGebTg8JOyIFoRImB2o8d5inS5OiJXyBrySVrU4Fa1MzjPYLNulucjXgAAIoPdc/bfDnuKIc/a9sheUEUfQrQ448VMZ//WQwDCe5igCPqKczFJKJlDdha+0Q5QIimmwUxYyfbvp26689j/qAOiUFcqTfas3Q+SvP/xhToXvE9eJPwsbS6RH7k01YATeMm0rydZVwAxxrLS9pyCenFWkXN1PaPL/Poy9IQyFK00RNkcBAB3yQSzlj6PoCoBh32QZwW5Q1kSeVBOU7Do3dvkhOL5NnUI4ttFWYv1PMol7ZoW+Yj/GGQY5BB31FcMnl+YPTIJxJrh4ZXzrdaRUJAdJZ4Zfu/UuKVp597MBazkkqo6VZ+kaIa55znw1YrruHcZmImU3xw2gtDjOORIJditem0geEQwoVrxrKPS/+4ODbBhxPi0X10lBjIPGs3x+M84+ebMH1YsfbnxbPnYFG1YKifvd0N91ocx+DK3FRwEAHuKZ7ozvu2wsrpTRpTlKdI+uDOb1ROwsQ/sPFlaMgNtRfOmWhxG26B7kHd5ZLZe0cuEdA1sE5tjAIhqFLLNQCJkvcZ4vsFUG7Sd/21dRP1RxoEMqYzoAmHx7P8/1oFhPG3LyqmFm4Yg/8On9yygdzEcENDcwT0pW3gQgwMtqy0pNWA/iwHhUtT8pAZ0J9MIn0L86JkKL7IEsUy3h4MTqYfiCnE+E63xb1o0ig06TZr6WWPr/aVBCa9BHAQAfu9S4KEn/4HBrNuHU6wD5ScTeQ5t1rKcrO3OIA8IBCnH24QceeDn376IBFsMWypXDR/z6EAAAAwAAFhs+36OpsPrZqefoW5lZtwn5uW02DNDJn0WzXKHvi3VeD2ArLGEmY4UT5EykLlpp+24W4mnq0/b0DpKJGeP9/gmXd8dzAqzG/rAzwnD9R7efBvEg8vhF9rv1T4ak45NvSySq1WefGcipvYXEldjS7JUY1mWc9acYUQg0ONaQ30cBABAwN2JhmEe1e59DNT+kVr8blx2elmAQT6EbQ4aJAw3xeVjTHRFb1LHG4B7ggA9XA1ul3JePxANqg1S6yIpH3Pk+JGGaBgrgqC6+c1B8NDAnG/HE1v29xLaIF9kt/+XaLnfua/FzVNXtV5+ABnuVcJ8w1ARgdiewIev1oAkHX50VncMg23r2UgeqhxhYRWUdJW3xKXRzwBwW6fD6JB1E+e+tksyeQua9Mo9l+MjL+YOsS78h6Pto1PEpRwEAEY912w+d5D8ZhXzwlBcjKTsJgplzEsdxYDppRR3rwhgmZEEhxKYSAbR82MVWL6LRj1W5G/m/im/3mWc7OSyaTZDGJPilsghWdgIPUNP8yU7b2HiApE4goxjc/XdUAJo+LAMHEn8ZYHRJQ2fwVxf1ZbBsOqEcglft1bdl4weUIQvU7TRRBdd66RlcPo7or5OkhTlvG6fwWv2v6zPg38hAkGcANEb27RFoj3LmLgoqWA4OoSA4CIGnCl9HAQASFZYomwyHjvRRnlD0n6T1BYm652Lp0fAaojKnPakdQd++WlJsnPu5fjEzRo6Zg+EwLTvnHjKNQw5cExyWfk8hJqp3LsegNx/7u+Ezd/6MNodhmzPoF+LTb6BCFbCPwHgJ4bUp1YUWr7tyb4xYdEojhhTJ140OyFMrCkStDb+PEL/WJqFTw56zpU1aQWK/0cNp69jvTcJtgsskEkL0EMJeakI3/xQFHjmKzi/Rr9Cjd/nnx3mAedwYCkcBABMdbTIM6Kwho8RL8QYLZJwgeneAEc+qJ6nhLMzzHdDzXQSgQ6+KioMAhQLKbChryo1vOBWhCRT1e/6z1L6ApYgZAtuQDXWsKPfOrNSkf0JFonpGE4omnNnaQ6eUvsVoGnne+AAAAwAACOn9aEgzsgB6/iB10jVeKJi6jpoN2IlhkaPjUXiO/7/MTfMgvYkifLFmIi0qbyzxMv/f+9XFf5k4RflW2Qu0ZutzUKznuY7Ml8Ma0LIJR5x4RwEAFIJhwbdbbmXWxS4/Vj6rtX1NX60Ar+fetTN6P+mshdJt0rv/Pv+R/N5ZgUp/8e9tYrxYZz5b+4C3VXaruuHouUR5YKRlA4RNmcacgaxGDz6Ca+00EE1rXyGy/03udWMQPPkWEJmXU3g7bzSrIFytreC+EZNfVkgMuPYLTgxkvKA+e7H9PmmwLojNZdgTQi7Nala/tVnLQGAthQztBYI0y9H/uXju0axwnmopNvjdtPwMvhjMckg7EPFHAQAVTtct+JOyBmPENfuD3Y5En8dkZH+5jhAWPYgWv4INxpckQWu/979vIi/wJWGJFGJDMP//cfilLsEkQwH7CA3+wYURzLAu61mtmR/VG1qnqt0F92iYVULqF7CH1YVu0GcGsvnYLtWRfiKV47jT2HUCgtJUeL5QanujI43Kxdf8eiakEZkWiAQy4Nfvgw5zROnWOatZImIJHSL7RNmC3XNLFVvnrY6xKQNoReMVpcH8Sj7xTe/R0yy570cBABbh7k1iSoUoMqQYxOJodbHu9zS3msCs25Nqb3ZDhCtdWOsqvKvtrPZQ4XcOI+a6ihG/Ycmd+asxHg3VrQ6JG/pzFphe9c8TRV5yfWJYQgpoboaMniM5ppcybB53KlDIcab7dSYrttrbaYJBYUACFIyck+sfCXgCdAAAVAAAAwAAAwDDQAAAAwAEeAAAAwAAEiAAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMARwEAFwADAAADAAADASlycnNTmxnyBLcXsWz8h6WF0kYTGhHP8asasyLeBzDJ9gp5mHMGnpKbAjmdyZKkqLM/GPx32j5xbE1B/4BVb1CqOUh708D4c8SgbK4l8oH+7ntXSn+1ucd/8/mpMXAZkli7GqwRswPkf3iy73pwD0Lj1jtsvFV5Ya9pbK5XPJvnr5kAh5B2olRuayQficqQun3BaA+TLwI4Pet5fRsuu/NlLyByr9A+ZDEAkVGe729HAQAY7VmiGx1Ogtz4HMMQQAAAAwAQxL11ZI096au1I6RJP/y/sIb/M3lrvj7OsbbcGYu6AFxP7TCvVbqcDnZvz4Jvg3J9UCcXOZAawA8hwlkNrWHVOW4QQUMqCRS0hmubAxYpievo+EKMZFclBcpqmos+6tIq4yYuMm2mU7SHT2YXfi/smSQKGiQ5rOUPvaDibyW27+4HGz/LOV8On1IosaigeYiM2kPhtAMzDBMgFmkypIjkGoaWQ2xfZUcBABkLYUBb/feXPFLHLSkevtM5lBKWRqKPo2s10TOMa1i1iUxgwMr46RICL6ewK5XDbHNlzaD0EO+haLSR8mJrKjyktTxR1qF8CF8YpGNK3b4rtbZ68pn1Cycf8FMjDYTuNUCw6TyJQxAu6CFGaFgpS2pApj2wxHhN9xe7Bk8+zHQy+mNy9AV5Dn+ckwd78CNrtfT4JPGDeXq/oqpr2VwJCtXI2pz1d/eGU5RWvauNYDbJumMcZmoDLRQLRwEAGksa3WjicuJEvpE/WKZapUatBGpvl3Y/7YU/cd3HnppRvayufhAU+rp5PXdQB48ZjNRSQF0OzYiZ40gXb5wwhN+lDw86ULPV/R5FF8e7rR0Ncne5CJseKGSSKJdN7N6mE0WowZrVoslYamlOFF9EepFYXcul3MWr/8sHaW2ivgv6USTm9wmys9O5TTRogkLCkV51bMO5Nf26bSlsf8MHa5paD9RLq5PZ/O54+rQB8nL2NAZQyde1/5ZHAQAbjTU3beuNZI6wglFkDNfNBPhH6uv/MazQ4XfWwNSQ7aHrfORMZYpwCo9uHR9org13ueb/HwHvVsHHOjq6Ea6iIBWC5NjSHZ886ZqJ2f5UVzQqITMsQAvWPR/1H++IharnM3V/3vhl4qsEQGidY7vhk+jd0aVI+WqwGVjgIryjo2P+lo7eyR62jVTUHGrz8woJESAwviQcjk6RS12hH/rH/kokr884wXkNeMUbMMD1quFOgtZwYFTb6EcBABx/76VVTABvZ66Tpl7FFNKuyvTB22cx75z6QLpBGOkovrN/3stJ60KRDgSxKEQlBpm4sH3bkDmzy56AHBkdGIv/1abQQKuGoFTBBYl5+j7zE00Nj/AHdteq0oArBYZzAEvcDju230uEMV+YOfMQQiSojTVSR+4kHCTT3LvzU53EVHzD7ZmsKhyhCSrAH6um+HcPHESNZCknCIVwNRUHYWmUBQvBqQ6eFSSw3OBH8cfI92IzgTHchjeWRwEAHQ67+e5mho6aJfJ1DSfvRz6nm4wQlWUxmY3WoxgY7eSZSWnyDk5zUtxutuhTnLRwngGI2GAYptHV4/JE6hvICCrOVyXSO54J25RuUE+XqT0E9zKiKiHCd7McqAW/LG7aqUfRoGXO4+FzLs/4HJ/GEdYZb2/8tksmvDRED1XjzrAkTXnrsD+Y66hYBscvgm2D2IUm5DIirxrSHCtrDTo/P653/JPhOwcwB1ARpihyfMYpIRU/NNX2P/dHAQAe47PibRpj44bY8wv6RkvLrZAAFzeK7wAreuY1mQfzgAJ+NKZDvAL6cXghTWYbwl0vQvkUV/UXT2k+v6FWRYjSTd+EBVjBgFS6GqEzMEbQl6r/jGarqdgKOqVSDAch/A3JGSxAXRCY0U+TJ0Jss6CoiyEcz6VlcHWgVGLM715+t87wkNGc2PRJIv/m5YJ1Z5EpDjoDHEAW4ytyc7jm0Nm3P5fradcJlYNs7NA2RDK4UqyhjculF8vWWUcBAB9AptBsY/CA7o70Ymq7D+51DrpBVnhghBCERYgwY2AgCGIXmb0FP8mOi4SztMegdVsu3nYsu3wedsR4n7C3fBxFoXOtXR7jb9y2tdxaN+vE9U29rqeo09jeoE0DohbRndPDtqleKZ0M9JX1mITUVKc1h5Uyk2n4LUiu6y9FqRYqMhgnmJFyb4n0l1r0w2vEp5hZqQ6s+pincvbzhqo0cM0Eze+tLhKI5DSLp3ts9IKBsGkjflGPHcoFRwEAEK0Kf+WapwtI+Tbh9IF8OTLreFFPrGaD9iButWKDb8FZybOe1xnsUaFcof4ttxETtD5CzFPVFPrbKWQ+4i3OaCl/v3ehqlrEJFBXy6TUrtcE8imbhjou6Yp5ckgTS5NMhToX+FQ/SnHv3lG+B/oFkVnC59jZb2KObyb0IwwM3VOQwt65xyAHoBFD/3xsvJhC0UJcudSdXreuoOHVVJvvLCIDY9zLcG7Z+T1LtHLfRrJrK22yTCH+p4NHAQAR2MUOxiSRh77FN4Xq89SijTT1QcFcwJWgi7qxRPm0cvNXlOO3eKu8LzhxW+1r9oTUKe++y09Ar7D+jK7PtfcU51RJ6u9hxLL03qcNLM5F37FlVL7Ii6HRZtudEV617L76N7+dw+vfjJgAFFYNoCFVSGaWcim0NG7JY35/r6TYlg788HQMS5JTnU+fQW7OKewui/OE6wVhD5DwqIRtpx5QlRU5Du1ffsnT+4G09pqTfRhtOdkT1Jr/e0cBABJXIpvsDPvnr5cnvs8/o9CAe+0EIPMIFdgBJKfQx0TfNITZDVrus+nyfopE6lgvfrd1luEc5kas65cuQdwjHYTVCyzLN+wgmZnBOwrtSZuT00SpBvDJyiSSg9Okl8GB8uShlQ1IKC0UfSZ9E9kEbe3hBOJYk7FZrR0x179tvGBjXBx+LHlUNSKUkNm2wE0+3MB4X5VtpEfRxZXn1KxgzVENBVidWkXspbp+2vajsCIWsJ6QtRGG12dARwEAEwXVDuILuHUHe0YVozn5MeSxkHHLW6A/FhIOmBUlwa15+6I3sLvEfs/lvt3dg9qyV3WDyefrnnP8R7K1oUJffNqTYpk2x3tf1eP1lw1jCVs8Md6RfBp636Ao//6M2CJJr07dqQZ7JS2dJ4ekIlNKa6yvuzZDYgAdTjGmv4y8nUpwdH4blHePi4WE4zR9xDKjl7WopKtgXgFiw0Qygdqa0p8KMwBF4ei1J/NythnX82KmGtQh8RkVMidHAQAUkckmc83sODwEv5QRD+/8XbUZjc7OyVHeFDNLwdTrxZwbjM0oKaEYr9A9jVt2YyuIEvM4S0jx9t041mJeU4zNAAADAAD+wJN/aSH3oQjomrrvvYbLAY892upvZRpRdxKJhcO9kRE3HqOJo+dhziRHjYVsjnrEWxhlLrbQttswOzATqSgqofqVDqyptVyt+hRwQjP2Vp8jL+etFOL+4/yYP7izg3eH+ehTkGuhcXM/pL7KkZjDcM6m6EcBABV3+EtJpjSjvrKOei4iwHF3ie2AqHGbkkhaM/ciyuODy8Qubl2GxT/JLw6k3pqcQj0sjL1Eee3yEeqIFLLqgDbbBsu+x6/AxrcsalU1VpUVujcfRBm82qyIgD2l9tl96oF701i/7a3Y2ZQFsEuz3MmJWOJ8i3iAcDmtxbLyYKJQvFQB7GChv1hdsiOF8RgLQaRdOL4qjfRAOY8AIBfdooc5IgOsdbncGRZmSPD0mgjNJUKIb++krWDmRwEAFvb9EAAkNWIlXOFqNjYHpGUrwAKWtVTG32tuzoX1rF4kt6exM8j4BfAUCD9PR/47qqTLR8qo9BwTYMWR19SjX/sYsA4ADaB79JCYDTg+o/1WSVkjkATYEmjVZlaZgvwIRCEq6wRTeH9Xmt1ymBnu8BmSzdVWEdpBXybOA8Q2Hn/0qYhhfQIvJu0GJEZTY5WXUqQjT4YattfDV/vUg5h51OVXjtbE7JZfHnCjmytxSBOMbL688/hpm41HAQAXLSpU5jydyJaS3J5S2u70zpQFYtEgdjodrabpk+sY5bDt0SCAWVo3bKtWDTLQUfu1ryRljAxn9RKmG/PxLkez6l4+iAYuV78qyuuYf/r9S/VP1VPGnsRam6C37TPn0GK5RiVfAkcoBlWITztAAjwqpfifBkFp75i2Uhw1dovkWVuCWdl0JF9S6heMPqXuvZnqLty1sWwLmsjTK0RvoY+JS3OBTbQLu6RwXG54Qt/2KJBAVEDS/2HouEcBABhCnS4sa3Kf28wcXVk7uLQ/tgWCQOltgo0+fadM0nOV6Ct7HmQgh1/c+Hx+aTHqdCFmHf4U+LzI1irsvE0iygXVwq3gaxQfOpGVuNhKx40xYOJCv7GeiOHxGv1/TVcHeTggQQub0Ce7OJETW3zL2ijEvFr/90IpEJjGVcuGXlHT4YGT+sEgiww7LXPLhV+mRVs+dQCZLqkhFOOqXHIMSc1f2pjxQ/0AnMD4G19aAr6aSux4Un6zJV6eRwEAGWmqjXInxpYxmhZUgnGD4hHccy8iX7PXAzN2X5vepIyAo2Pt/3eM6VfzczMJdlQBT7OB78fa1XJvQguJXp0/IeoQXzyyq6IKbsJY/Fq8YIV8Nb7x3CLandnKjBSu5tpcBORjKSwfGB80kyqJy8MIdtD88MT5Vk2BE4Mx+qxPj1uGsNcqJokvDLyGUziFTI8XALCj6SL+RZNb5+8ejK2PZrv/JJcoL0RVzKxJ4CQ1DwiDGRZesmCcIslHAQAatdKwVX6Xfcep1RT38EuHBV7fg3RJ/PYvSJqMCFZd5lOXJh9YpTZQ0TyWNegCEGlA353UkXS0g9RdUFOMrVsBzvBlQlavBQK/tT0MV7YEiCmtKxXwz+D6E5K2HkXSztUb0L3XMYLhs4ZfWOEZ/vn5FL/6uxSlrW6irjtnM1J+bBTHmrgO5Zvx56BO7cpe7+SSYTa+P3HPNTDvnhth6RZHkIAMc+fwXod00HcrfYaEUP5vUjNisffDVEcBABtwZ7eaZH715QL+vN2lkyrfofshaE8HQ9UllaoJe4PSvUzzid3X95s8WbJv6A76JYODVx21aCqpi2ourmt/o4H9IXsSp5JsNnYOpGwb7Ju0oL/WeSNKWGSWkQug3XLox83iBBARgNDJUMkoCJQPrL9KSebkr0T6WVp2FggtoeiPsDjrsz1VlfsFkOOIIQpJmpzeLVzCsuefvxwqdnJflpQSMY6XFBVJSMRLtrQLQFOm1Y8A4UXo/gB0RwEAHEdgReRhgFYhRCwRO4hsBkniGCbjjOxpUyPGiHd8zz8D9mRud+NCP9OU30S6fwtaFSfKHhmut9b6HDHkdeFLYRj4PCRzwnibxQ/cXEblVnM47wbCN3iy4eHjYB5MoIICrSYmd8nt4V0toLs084KJlmnur5FbApYM4W79ff4oZkW88Cg8Fv8TnWhh1Hqc4UlhMbRKm2QxDgfBxar3U7BwNR6prrXXjqfR7ja3tPli+H7Jez/xcTg32QpHAQAdTa7pSSgBvmOqzz175NAFIhwE9p3d71F9jLvhaPv8q1iKopL0kizwzEWElnXWmNhfLkl/Au8KujnoKUaxVdTe+zAZm2dOkejnpNVtVj0Aw9wKcG3ZQ1iRZrUFRIoPKYlmR+oi0LrupuhYABtgPbdCbDtezGTr0nw9wVd/rZ6V+1wcoJ6+8VAVueIdwI3brqm6EoFHiI8L6lER+9SefB8fHo4NYgr/I8jSxaa/2PLX2K/DjrlY6bN8fEcBAB7DXsuh8DITF6CYWj2HTFvqfzlic3QHXnHtvsTFNpyVY1LY8y/fRK2mwALN6IB5W3OuyoKiA3K0lJdQUv2gYhHWvPTV218HYrD0rkbMxRH0SiEEkrHDeOt5T1HtWD13D2/QvMu535fsfZyeaFDjdCE9M0Xi8Lfc7Xj1ZNGend7Jo7/cEiczFkc1vB4z2JpFGZreV2EdquyEzC2STFJtfimyx8QlLngEuR1cxH+lWEcFX+mvBa/eqktIRwEAH6VazFLPNsnHZqsI66TVoArQuUUGFAzr8MT8GZ9V6qpZa5D0jA/4eGi6Kq0smUgRExnqIbSMLWqDf/Pk2YT3MpHTu9VE3Dn9blgB6KsVIkWnB98Y2n/6DrZDcF94Ndu0Ka4U/RZwdV5O5KcO+lU2ZiIOYTYZ6Ie0d+tApxYxJ+YmxaDoCyRNe6crw/yzR5SflT8ddi/E2BM+l+nwVDiKZ/714fmrBxFKWuqLiQNHV19o1cZ8Ubun+ZtHQAASAACwDQABwQAAAAHwACqxBLL//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////0dQABIAArASAAHBAADhAPAAG+EA8AAVvU1W////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////RwEAEH1s3BdtHdF1ln55B24wdACF/ggcRtPmB4IUB6cZJ+m32I4R48ZkdhAFBulgWcsv0wZwH0o1yi3i4qm3rJ98AUKdB9PsNyG9gURV0bTw4myAj6g5Dgodfv6w9bsbOxsGUWkvgAJ3rrR010BvZbIa6CMRCQRjxkCfRF77ansRJZT0JzhtYeSS/ZJob8Rr2jrng3W2rkmHtE+rdqlPiHxmwkRZvYGhBxwiJO2L6f+l/cABsfs09rA+A0pHAQAREZay3TBUIAfMWhApE+LaPgeyOYtaPFONA9aC0h4QrFkaLZfb86678MK+zLgqDBsDoj50eZHMVcczRjs4sYlv7RG8RIWKb5lB9Kn/8+CkxiiA11cHH1yzLX2SKCmhsak/+P/zYQ1EDvEj33bl9e3Jd62cTI+Qw99KrsWnUMN8hFNeXzoGHA3aec+Li4NFboF8sa6lCPR6Csxsvxw8DJaWCnER5Z0p+nKhXavF/eNHQ0DX47ohycc87UcBABKsYHCHXXe3vK1cFYDWO6rhwM6hxCdJ+/X+VB1akQejL6iBMdUPuadUqBnbprwJM0dWpSSn9uuZZeqe46iZOGIJUo69d8x+ZSvPcBH/dK1Y0LJnoWdgWH51SQg7eYqcwjQW3BOy7ZF02Hn1EhTuhsN7ms8zv3WIeEBDBq0T3Idl+Tmw9iJU9skVYiwygHG2+0XwrLa6y+uiQPwMzrnEr1kuf24XoAqrJTZQiVH3aQF4d94yDreWu2KPRwEAE2FsynHZaUcBXEFbeX0nSxZ7sRcRjJvc7RYOny6N8QFwKDVO7jpRWWYM55kuepBOyZ+7BFYeG+FU1kR+ZfmqyDNkD4D1IPwNh6u9JQxDymfN/aMcQC3WxdvCKquPsAut6dugpGkOFtIe+W3ayc4V/J978P+h1EDFMbFjxRPuXht0K2dBQZCJ0ybISUDqWzhPuep8CdxSU4MvMVfdXh7FLl/BqKJUTT+vM+Pz3XnqCQQmH5TjQ4CK55VHAQAUEtgfkBwIYgtwHkhjmtLw7HNTeJeMfTjATEKcyuKzItSeYxHBmGzQ/+G2otpPCOkVAXJ9mfx7LxrW4joZ0ttTRQJ/wqMUK1IN349LiJoo8y/+FwN4jPNDwIleJG697riqnmLOweFW8spHKLBfnHcyC1pG6EIxFpTqUQ0KHqXD/KXIHKioJNAOVwQ1Gfloxebo/Tdtd00dpHP3gcsAOnV75APCYOjVIlwm2X6ViDeZw6Btdb/Br/+yokcBABU3+eOESLlneGbR5SLiL8wPkoRaZ5X7xFlMTMvsv9yHk26bVdmsubSdbYS1Hy64n0+NnL7C1aLD7aJxOudMjVW5goZbfO2KxBQkCD4HFA284wbaB5vOL7mRilCn6YEs1kiwf22+fBLNUmXDb2p353wrD/ygTDhlki66USvUmd/ZAs9uzAddegEzy7Xn00YysWTu/hegYyZtWFC+X5dhLubWJ7n96y5wjrP7PAOXoQQtFUH9j/rBiP/7RwEAFnL/wYKYuj80mPGtimSbF/E9K7XwjwBz8yHZubmVMTCmwkZBM4h0FR1thnUGiSjqjJT6SfunWCZ/dZDQplrzS00UKcUP399SyM+nNG1br8Za0ZYwWch8nyLHYXSRuxdnrfUUespsOQo1cWSLGf0pV2HIcHoiAAEKwPU6irB5BSoFvB1qKVjgEk+QwAEYAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAABHAQA3pAD/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////AwAAAwAAAwAAAwAAAwAAAwBbwUdBABgAAAHgAACAwAoxAAmBIREAB/SBAAAAAQnwAAAAAUGaJGxDv/6plgAAAwAAAwAAAwAAAwAAAwAAAwAAAwAKCKB0AIhy1ftwLNISWucTFC7xeBcaIzP3oZjZo8uT9hqZVstWGnrPz+vjaA5FuCO+K2w7/o39LygDO7aL+0zSrN90LW7r133x8+f+PEKk8d7pd2fj4RYuMOXOYunzFzRX/4IvR1XsK5WJYwVkOca3yfo7DTvUBP9rgSiTRwEAGQD6CFK1PBC4qYCa+coLVnX+jgODNrau5YJXIekDI4+wUNV+5T5HE4e2t5EGAjn77+kC1Vghmvx8KqPnylVUvsaTofheggxHsPuxn1zQt6nA59UglrRUMn8b4pmrvfqTBSqU949+AcNAI6M/eAqz6r0RG5KNeBhx8R2f0x2kujwHU3pc3rlPb6ZrFM/2HiG97eEIezrvWFG7YAAAAwAAAwAE1KRo1VfbdZQ/tOpNGxFmTcQoFidyD2tHAQAapTTIErUKA2Rc9uIzGJu+oW0uNOxRyl6oJNUNJp5L9TIshNS1CmUKgdCaE3LkLwdE8iUkUnIGfWLiWpWmjzsINYC8dnDaSptB53yJkBu0SsR00oo1PZ0pl4ZzoXGSYQJTPaVCbj6FNqm5wcnUqKTB/rgHdPdnDj0K8asLABeo/n3XCXrDorI+LYSD1FBgmV9O7RZdjfL0NnXOQkiq/ZGirwVV0cUF1aHtZx1yHlAAZKuuu7TqB13CAUcBADuRAP///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////yj/IrOvAEoXDNGy+nrxWN0l8cmuqWYaUJpuM9XgAAADAAADAAKmR0EAPAcQAACJHH4AAAAB4AAAgMAKMQAJSOERAAkQoQAAAAEJ8AAAAAFBnkJ4hf8AAAMAAAMAAAMAAAMAAAMAAAMAAAMAC/BmhyuvLmkCgKTgACEXfOVvHRHdpBEEmTTz9pIZCa2FD0CXukzDCakOHekTpJQSdsfd7a/jjM1/5lBtKCAGQ6zOCSQ6DeKtyw+CugDuuglGipwmvQW+FIDjnZ6HRd0uaSOGy6VB3h9MI1o4nqaCqVwwIgubYZFHAQA9XgD////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////WcZrO6BEiqf8pCxYwlz2mkdUzY/ipM/TIHS4m5xQAAAMAAAMAAA5sVm90p14dlvWgBgY7XQ9KVOJKLtaMAN5KiffVQtNuzW5DfL+RewZpAAADAAADAAAQMUdBAB4AAAHgAACAgAUhAAkswQAAAAEJ8AAAAAEBnmF0Qr8AAAMAAAMAAAMAAAMAAAMAAAMAAAMAABJfBjP2+4+W7ZybyT130+Ma4WSqICfd/dS4YtjrLlmh5VBlfrtwJqdN1PBTYDkwGOOONqZQeFN6lLGJoDzvuh3kv1aDBLqug+JhvrSeu5ebnvcrtQzb2REwJL3h9mvtkr0WfDu4AAADAAADAAs32Y4C/6Ns79oCGj6oqLltY3T4I0/QRwEAP5wA//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////8BeoWLRnKQmVgO/RBoBfcK85AAAAMAAAMACFhHQQAwBxAAAJcsfgAAAAHgAACAwAoxAAllAREACUjhAAAAAQnwAAAAAQGeY2pCvwAAAwAAAwAAAwAAAwAAAwAAAwAAAwAAEmDKfLGXsvBBQPNYXlEd6WueJ4deApfcHESlG+7V6u0AiWQqJvNZYM+3Js3Lj9Ldc9yYIHqruVwfMtCYGlX3wMavI/DrhMuJw+RreIF8SKsJD8CMccAAAAMAAAMACrFZOBgEqaP/8EyWsAHV6CgcAgfyox/roEcBADGuAP//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////AAADAAADAHTBR0EAEgAAAeAAAIDACjEACfGhEQAJZQEAAAABCfAAAAABQZpoSahBaJlMCHf//qmWAAADAAADAAADAAADAAADAAADAAADAAALf8A2bry6lUyIAQGNFfVK2Cd7h4qDqmqpvmXfkfTwo2Ab79AHhajxJ4MPWIgAAA84xLRIx7I2CrWjWe96OvgkzgS9mtvhuxdzAgpuIOJI3DEY9mviDDZz8XSAAAADAAADAB7AZkj9AAHHGvk+Pzlku8UkWa5HAQAzogD//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////6HjAkbF/gsWuvw4QAAAAwAAAwAccUdBADQHEAAApTx+AAAAAeAAAIDACjEACblhEQAJgSEAAAABCfAAAAABQZ6GRREsL/8AAAMAAAMAAAMAAAMAAAMAAAMAAAMAAA3URJB/3lMHSmOd0GYZnfpoR80WdqxlyHzPX+V81VUMeXIGrRgq5agd+ACdjoGI036yQ/rmpGw0CmMBrKwpI+nwFo3SP0s1rI2yHBZaiPJjSUgw33rBkxXcq55kfLf2sAAAAwAAAwACBWolidWDnIeQAAADRwEANbEA//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////8AAAMADulHQQA2NAD///////////////////////////////////////////////////////////////////8AAAHgAACAgAUhAAmdQQAAAAEJ8AAAAAEBnqV0Qr8AAAMAAAMAAAMAAAMAAAMAAAMAAAMAABJXNihCnx11JUosH2hBE53O/YN+GPHqcnJiQBIf3maTAAj5iRt+7GYUKBAU9iCXTiouCjGYgAAAAwAAAwA9p4HQBg2cAAADAAADAADGgUdBADc4EAAAs0x+AP////////////////////////////////////////////////////////////////8AAAHgAACAwAoxAAnVgREACblhAAAAAQnwAAAAAQGep2pCvwAAAwAAAwAAAwAAAwAAAwAAAwAAAwAAAwBR6/L83y+ZevtMZ0FW4lp8qV7fVXQAhLAWlS6mDxvpaSUgChorvgTMXtxJEIAAAAMAAAMACqFCAAADAAADAAADAAz4R0EAOCsA////////////////////////////////////////////////////////AAAB4AAAgMAKMQALYiERAAnVgQAAAAEJ8AAAAAFBmqxJqEFsmUwId//+qZYAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAApQTq0hABLvkcWCYrAaRRPNDrECJGlF/11BYvG9+JJ9Y86nxnmQzPxtAAe1UgOsXAAADAAADAAADAAADAAADAAADAAADA/JHQQA5JhAAAMFcfgD/////////////////////////////////////////AAAB4AAAgMAKMQALKeERAAnxoQAAAAEJ8AAAAAFBnspFFSwv/wAAAwAAAwAAAwAAAwAAAwAAAwAAAwAADdRFmvrVE0KXDOGwWddlwYa1foib7tXZKmkua6R4APb4b8+tXwdSNNqgf2IVNwGTohgQAcMvp6SiQxpiQym4AAADAAADAANUNUAAAAMAAAMAAAMBN0dBADo8AP//////////////////////////////////////////////////////////////////////////////AAAB4AAAgIAFIQALDcEAAAABCfAAAAABAZ7pdEK/AAADAAADAAADAAADAAADAAADAAADAAADAFHTAfujIUaaLSuklb9y0/so9AEtQAqkAxOviALQZ5jNt/iOkABrCOZ4md0iUnFwAAADAAADAALwckAAAAMAAAMAAATcR0EAO0IQAADPbH4A//////////////////////////////////////////////////////////////////////////////8AAAHgAACAwAoxAAtGAREACynhAAAAAQnwAAAAAQGe62pCvwAAAwAAAwAAAwAAAwAAAwAAAwAAAwAAAwBR6/L83y+WryR9gmVKPGbIhJpkgAFgHCej3gB6rAHPgHHAAAADAAADAAAYIV0AAAMAAAMAAAMABnxHQQA8UQD//////////////////////////////////////////////////////////////////////////////////////////////////////////wAAAeAAAIDACjEAC9KhEQALRgEAAAABCfAAAAABQZrwSahBbJlMCG///qeEAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAAZ8UdBAD00EAAA3Xx+AP///////////////////////////////////////////////////////////wAAAeAAAIDACjEAC5phEQALYiEAAAABCfAAAAABQZ8ORRUsL/8AAAMAAAMAAAMAAAMAAAMAAAMAAAMAAA3URZr61RNClwzhI2ZXdRHYLZWc1yTgKRhTIXBNABHQKIIyYNyc+AaEn1jhATEAAAMAAAMAAAMAckkIAAADAAADAAADAEbBR0EAPkYA////////////////////////////////////////////////////////////////////////////////////////////AAAB4AAAgIAFIQALfkEAAAABCfAAAAABAZ8tdEK/AAADAAADAAADAAADAAADAAADAAADAAADAFHTAfujIUAYRtY0f/43cIs2OjxACR2hMR1QBGYX+34JGAAAAwAAAwAAAwKEJ6AAAAMAAAMAAAMA3oFHQQA/QhAAAOuMfgD//////////////////////////////////////////////////////////////////////////////wAAAeAAAIDACjEAC7aBEQALmmEAAAABCfAAAAABAZ8vakK/AAADAAADAAADAAADAAADAAADAAADAAADAFHr8vzfL5avJH2CZUo8ZsiEmmSAAWAcJ6PeAHqsAc+AccAAAAMAAAMAABghXQAAAwAAAwAAAwAGfEdBADBRAP//////////////////////////////////////////////////////////////////////////////////////////////////////////AAAB4AAAgMAKMQANQyERAAu2gQAAAAEJ8AAAAAFBmzRJqEFsmUwIZ//+nhAAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAGVAR0EAMTQQAAD5nH4A////////////////////////////////////////////////////////////AAAB4AAAgMAKMQANCuERAAvSoQAAAAEJ8AAAAAFBn1JFFSwv/wAAAwAAAwAAAwAAAwAAAwAAAwAAAwAADdRFmvrVE0KXDOEjZld1EdgtlZzXJOApGFMhcE0AEdAogjJg3Jz4BoSfWOEBMQAAAwAAAwAAAwBySQgAAAMAAAMAAAMARsFHQQAyRgD///////////////////////////////////////////////////////////////////////////////////////////8AAAHgAACAgAUhAAvuwQAAAAEJ8AAAAAEBn3F0Qr8AAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAUdMB+6MhQBhG1jR//jdwizY6PEAJHaExHVAEZhf7fgkYAAADAAADAAADAoQnoAAAAwAAAwAAAwDegEdBADNCEAABB6x+AP//////////////////////////////////////////////////////////////////////////////AAAB4AAAgMAKMQANJwERAA0K4QAAAAEJ8AAAAAEBn3NqQr8AAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAUevy/N8vlq8kfYJlSjxmyISaZIABYBwno94AeqwBz4BxwAAAAwAAAwAAGCFdAAADAAADAAADAAZ8R0EANFIA////////////////////////////////////////////////////////////////////////////////////////////////////////////AAAB4AAAgMAKMQANs6ERAA0nAQAAAAEJ8AAAAAFBm3hJqEFsmUwIV//+OEAAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAYtHQQA1NBAAARW8fgD///////////////////////////////////////////////////////////8AAAHgAACAwAoxAA17YREADUMhAAAAAQnwAAAAAUGflkUVLC//AAADAAADAAADAAADAAADAAADAAADAAAN1EWa+tUTQpcM4SNmV3UR2C2VnNck4CkYUyFwTQAR0CiCMmDcnPgGhJ9Y4QExAAADAAADAAADAHJJCAAAAwAAAwAAAwBGwEdBADZGAP///////////////////////////////////////////////////////////////////////////////////////////wAAAeAAAICABSEADV9BAAAAAQnwAAAAAQGftXRCvwAAAwAAAwAAAwAAAwAAAwAAAwAAAwAAAwBR0wH7oyFAGEbWNH/+N3CLNjo8QAkdoTEdUARmF/t+CRgAAAMAAAMAAAMChCegAAADAAADAAADAN6BR0EAN0IQAAEjzH4A//////////////////////////////////////////////////////////////////////////////8AAAHgAACAwAoxAA2XgREADXthAAAAAQnwAAAAAQGft2pCvwAAAwAAAwAAAwAAAwAAAwAAAwAAAwAAAwBR6/L83y+WryR9gmVKPGbIhJpkgAFgHCej3gB6rAHPgHHAAAADAAADAAAYIV0AAAMAAAMAAAMABn0=" } diff --git a/src/xepg.go b/src/xepg.go index 61aaa17..d521e38 100644 --- a/src/xepg.go +++ b/src/xepg.go @@ -554,14 +554,22 @@ func mapping() (err error) { // Automatic mapping for new Channels. Is only executed if the Channel is deactivated and no XMLTV file and no XMLTV Channel is assigned. if xepgChannel.XActive == false { - // Values can be "-", therefore len <1 - if len(xepgChannel.XmltvFile) < 1 && len(xepgChannel.XMapping) < 1 { + // Values can be "-", therefore len <= 1 + // If either XmltvFile (XMLTV file / EPG source) or XMapping (XMLTV Channel / EPG program) is "-" or null, then look for a matching EPG program. + // If nothing matches, look for DefaultMissingEPG (a default Dummy xTeVe preference) and set it + if len(xepgChannel.XmltvFile) <= 1 || len(xepgChannel.XMapping) <= 1 { var tvgID = xepgChannel.TvgID // Set default for new Channel - xepgChannel.XmltvFile = "-" - xepgChannel.XMapping = "-" + if len(xepgChannel.DefaultMissingEPG) > 1 { + xepgChannel.XmltvFile = "xTeVe Dummy" + xepgChannel.XMapping = xepgChannel.DefaultMissingEPG + xepgChannel.XActive = true + } else { + xepgChannel.XmltvFile = "-" + xepgChannel.XMapping = "-" + } Data.XEPG.Channels[xepg] = xepgChannel From 73c812de93fa56886a613077231bae60662cb838 Mon Sep 17 00:00:00 2001 From: winguru Date: Thu, 24 Jun 2021 10:26:22 -0400 Subject: [PATCH 015/189] Updated Docker README.md --- docker/README.md | 33 +++++++++++++++++++++------------ 1 file changed, 21 insertions(+), 12 deletions(-) diff --git a/docker/README.md b/docker/README.md index 7f6eb7a..8afce29 100644 --- a/docker/README.md +++ b/docker/README.md @@ -1,18 +1,22 @@ Docker Cloud Automated build  Docker Cloud Build Status -

xTeVe Docker Experimental Edition

- +

xTeVe Docker Experimental Edition

-Image Maintainer: winguru\ +Image Maintainer: winguru
-For issues, questions, comments, or suggestions regarding this experminal xTeVe build, click below to join my Discord server: - -Discord - - + + + + + + + + + +
For issues, questions, comments, or suggestions regarding this experminal xTeVe build, click below to join my Discord server:For general xTeVe docker questions or issues, click below to join the official xTeVe docker Discord server.
DiscordDiscord
Many thanks to all the contributors to xTeVe, including LeeD <hostmaster@dnsforge.com>, whom most of this docker build is based on.
@@ -39,11 +43,16 @@ xTeVe is a M3U proxy server for Plex, Emby and any client and provider which sup

Experimental Features

    -
  • Support for Tvg-shift in M3U files (timezone shifting)
  • -
  • Planned support for different channel number mapping options
  • -
  • Planned support for automatic xTeVe dummy EPG data for channels with no EPG source
  • +
  • Per-channel support for "Tvg-shift" field in M3U files (timezone shifting)
  • +
  • Per-filter support for setting the starting channel for automatic channel number mapping/li> +
  • Per-filter support for optionally preserving the M3U channel number mappings/li> +
  • Per-filter support for automatic xTeVe dummy EPG data for channels with no matching EPG source
  • +
+ +

Bugfixes

+
    +
  • Ensured HDHomeRunner lineup.json file is always sorted by channel number
-

Docker 'run' Configuration & container mappings

From df5e063a972e5146ea5fb7c32ee37d643d7258a5 Mon Sep 17 00:00:00 2001 From: winguru Date: Thu, 24 Jun 2021 10:31:48 -0400 Subject: [PATCH 016/189] Updated Docker README.md --- docker/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docker/README.md b/docker/README.md index 8afce29..73b01a6 100644 --- a/docker/README.md +++ b/docker/README.md @@ -1,7 +1,7 @@ Docker Cloud Automated build  Docker Cloud Build Status -

xTeVe Docker Experimental Edition

+

xTeVe Docker Experimental Edition

Image Maintainer: winguru From c38d47edcf37f0f5f37cb1143247b4398eb7a0de Mon Sep 17 00:00:00 2001 From: Ted Gould Date: Mon, 23 Aug 2021 15:29:10 +0000 Subject: [PATCH 017/189] Add Snapcraft configuration file --- snap/snapcraft.yaml | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100644 snap/snapcraft.yaml diff --git a/snap/snapcraft.yaml b/snap/snapcraft.yaml new file mode 100644 index 0000000..1ee202b --- /dev/null +++ b/snap/snapcraft.yaml @@ -0,0 +1,22 @@ +name: xteve +base: core20 # the base snap is the execution environment for this snap +version: '0.1' +summary: M3U Proxy for Plex DVR and Emby Live TV. +description: | + Summary says it all + +grade: stable +confinement: strict + +parts: + xteve: + plugin: go + source: . + +apps: + xteve: + daemon: simple + command: bin/xteve -port 8080 -config $SNAP_COMMON/config + plugs: + - network + - network-bind From 707719b35e0ee79b836972b60d3ed0bb1c334a19 Mon Sep 17 00:00:00 2001 From: Ted Gould Date: Wed, 25 Aug 2021 14:46:33 +0000 Subject: [PATCH 018/189] Generate unique names for channels --- src/internal/m3u-parser/xteve_m3uParser.go | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/src/internal/m3u-parser/xteve_m3uParser.go b/src/internal/m3u-parser/xteve_m3uParser.go index 79641b3..314f47a 100755 --- a/src/internal/m3u-parser/xteve_m3uParser.go +++ b/src/internal/m3u-parser/xteve_m3uParser.go @@ -11,7 +11,7 @@ import ( // MakeInterfaceFromM3U : func MakeInterfaceFromM3U(byteStream []byte) (allChannels []interface{}, err error) { - + var usedNames = map[string]struct{}{} var content = string(byteStream) var channelName string var uuids []string @@ -105,6 +105,15 @@ func MakeInterfaceFromM3U(byteStream []byte) (allChannels []interface{}, err err return } + // Ensure channel name is unique + baseChannelName := channelName + _, found := usedNames[channelName] + for i:=0; found; i++ { + channelName = fmt.Sprintf("%s %d", baseChannelName, i) + _, found = usedNames[channelName] + } + usedNames[channelName] = struct{}{} + stream["name"] = channelName value = value + channelName From c99474b001b4e4ba78b0c2ba5c64a18a13102c14 Mon Sep 17 00:00:00 2001 From: Ted Gould Date: Wed, 25 Aug 2021 16:36:31 +0000 Subject: [PATCH 019/189] Lots of info to logs --- snap/snapcraft.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/snap/snapcraft.yaml b/snap/snapcraft.yaml index 1ee202b..8c3e01d 100644 --- a/snap/snapcraft.yaml +++ b/snap/snapcraft.yaml @@ -16,7 +16,7 @@ parts: apps: xteve: daemon: simple - command: bin/xteve -port 8080 -config $SNAP_COMMON/config + command: bin/xteve -port 8080 -config $SNAP_COMMON/config -debug 3 plugs: - network - network-bind From 221b9c10cc19f1196bf9c545b86061fb421f3278 Mon Sep 17 00:00:00 2001 From: Ted Gould Date: Thu, 26 Aug 2021 19:08:38 +0000 Subject: [PATCH 020/189] Support asking for just the version --- src/info.go | 5 +++++ xteve.go | 7 ++++++- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/src/info.go b/src/info.go index 26c5605..20c8ab7 100644 --- a/src/info.go +++ b/src/info.go @@ -5,6 +5,11 @@ import ( "strings" ) +// ShowSystemVersion basic version info +func ShowSystemVersion() { + fmt.Println(fmt.Sprintf("%s.%s", System.Version, System.Build)) +} + // ShowSystemInfo : Systeminformationen anzeigen func ShowSystemInfo() { diff --git a/xteve.go b/xteve.go index 36a9546..4315ed4 100644 --- a/xteve.go +++ b/xteve.go @@ -58,6 +58,7 @@ var restore = flag.String("restore", "", ": Restore from backup ["+sampleRestor var gitBranch = flag.String("branch", "", ": Git Branch [master|beta] (default: master)") var debug = flag.Int("debug", 0, ": Debug level [0 - 3] (default: 0)") var info = flag.Bool("info", false, ": Show system info") +var version = flag.Bool("version", false, ": Show system version") var h = flag.Bool("h", false, ": Show help") // Aktiviert den Entwicklungsmodus. Für den Webserver werden dann die lokalen Dateien verwendet. @@ -123,9 +124,13 @@ func main() { system.Dev = *dev + if *version { + src.ShowSystemVersion() + return + } + // Systeminformationen anzeigen if *info { - system.Flag.Info = true err := src.Init() From 91e391208385c9e5ffa17b984594a4a9e5efe078 Mon Sep 17 00:00:00 2001 From: Ted Gould Date: Thu, 26 Aug 2021 19:13:38 +0000 Subject: [PATCH 021/189] Set package version properly from binary --- snap/snapcraft.yaml | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/snap/snapcraft.yaml b/snap/snapcraft.yaml index 8c3e01d..cd773e0 100644 --- a/snap/snapcraft.yaml +++ b/snap/snapcraft.yaml @@ -1,9 +1,12 @@ name: xteve base: core20 # the base snap is the execution environment for this snap -version: '0.1' summary: M3U Proxy for Plex DVR and Emby Live TV. +adopt-info: xteve description: | - Summary says it all + xTeVe emulates a DVR tuner for Plex and Emby. It takes an M3U files and + emulates a network tuner that can be discovered by those services. Provides + multiple tuners and caching proxy of streams. Can also take XMLTV files an + handle them internally for program guides. grade: stable confinement: strict @@ -12,11 +15,14 @@ parts: xteve: plugin: go source: . + override-stage: | + snapcraftctl stage + snapcraftctl set-version `$SNAPCRAFT_STAGE/bin/xteve -version` apps: xteve: daemon: simple - command: bin/xteve -port 8080 -config $SNAP_COMMON/config -debug 3 + command: bin/xteve -port 8080 -config $SNAP_COMMON/config plugs: - network - network-bind From a5754e9f821ffc266a2016892925481e091c8d83 Mon Sep 17 00:00:00 2001 From: Ted Gould Date: Fri, 27 Aug 2021 15:24:12 +0000 Subject: [PATCH 022/189] Ensure we don't try to update a read-only file system --- snap/snapcraft.yaml | 2 +- xteve.go | 6 ++++++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/snap/snapcraft.yaml b/snap/snapcraft.yaml index cd773e0..ea28043 100644 --- a/snap/snapcraft.yaml +++ b/snap/snapcraft.yaml @@ -22,7 +22,7 @@ parts: apps: xteve: daemon: simple - command: bin/xteve -port 8080 -config $SNAP_COMMON/config + command: bin/xteve -port 8080 -config $SNAP_COMMON/config -no-updates plugs: - network - network-bind diff --git a/xteve.go b/xteve.go index 4315ed4..98c8fe3 100644 --- a/xteve.go +++ b/xteve.go @@ -56,6 +56,7 @@ var port = flag.String("port", "", ": Server port [34400] (default: 344 var restore = flag.String("restore", "", ": Restore from backup ["+sampleRestore+"xteve_backup.zip]") var gitBranch = flag.String("branch", "", ": Git Branch [master|beta] (default: master)") +var noUpdates = flag.Bool("no-updates", false, ": Disable updates") var debug = flag.Int("debug", 0, ": Debug level [0 - 3] (default: 0)") var info = flag.Bool("info", false, ": Show system info") var version = flag.Bool("version", false, ": Show system version") @@ -155,6 +156,11 @@ func main() { fmt.Println("Git Branch is now:", system.Flag.Branch) } + // Updates + if noUpdates != nil { + system.GitHub.Update = false + } + // Debug Level system.Flag.Debug = *debug if system.Flag.Debug > 3 { From d6da5513f2425f62c33efaadc657d47d5b208489 Mon Sep 17 00:00:00 2001 From: Ted Gould Date: Fri, 27 Aug 2021 15:25:36 +0000 Subject: [PATCH 023/189] Start with 1 --- src/internal/m3u-parser/xteve_m3uParser.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/internal/m3u-parser/xteve_m3uParser.go b/src/internal/m3u-parser/xteve_m3uParser.go index 314f47a..99f1a23 100755 --- a/src/internal/m3u-parser/xteve_m3uParser.go +++ b/src/internal/m3u-parser/xteve_m3uParser.go @@ -108,7 +108,7 @@ func MakeInterfaceFromM3U(byteStream []byte) (allChannels []interface{}, err err // Ensure channel name is unique baseChannelName := channelName _, found := usedNames[channelName] - for i:=0; found; i++ { + for i:=1; found; i++ { channelName = fmt.Sprintf("%s %d", baseChannelName, i) _, found = usedNames[channelName] } From 9f950ed18455cf13dce322e0802c6e9133deed43 Mon Sep 17 00:00:00 2001 From: Ted Gould Date: Fri, 27 Aug 2021 18:08:02 +0000 Subject: [PATCH 024/189] Adding a small script to make it so that the snap doesn't upgrade if there are active streams --- cmd/xteve-inactive/main.go | 61 ++++++++++++++++++++++++++++++++++++++ snap/hooks/pre-refresh | 3 ++ snap/snapcraft.yaml | 9 ++++++ src/struct-webserver.go | 2 ++ src/webserver.go | 7 +++++ 5 files changed, 82 insertions(+) create mode 100644 cmd/xteve-inactive/main.go create mode 100755 snap/hooks/pre-refresh diff --git a/cmd/xteve-inactive/main.go b/cmd/xteve-inactive/main.go new file mode 100644 index 0000000..68107b5 --- /dev/null +++ b/cmd/xteve-inactive/main.go @@ -0,0 +1,61 @@ +package main + +import ( + "bytes" + "encoding/json" + "flag" + "fmt" + "io/ioutil" + "net/http" + "os" + "strconv" + + xteve "xteve/src" +) + +var port = flag.String("port", "", ": Server port [34400] (default: 34400)") + +func main() { + flag.Parse() + + portNum := 34400 + if port != nil { + var err error + portNum, err = strconv.Atoi(*port) + if err != nil { + fmt.Fprintf(os.Stderr, "Unable parse port: %v", err) + os.Exit(-1) + } + } + + requestBody, err := json.Marshal(&xteve.APIRequestStruct{ + Cmd: "status", + }) + if err != nil { + fmt.Fprintf(os.Stderr, "Unable to marshall request: %v", err) + os.Exit(-1) + } + + resp, err := http.Post(fmt.Sprintf("http://localhost:%d/api", portNum), "application/json", bytes.NewBuffer(requestBody)) + if err != nil { + fmt.Fprintf(os.Stderr, "Unable to get API: %v", err) + os.Exit(-1) + } + + defer resp.Body.Close() + + respStr, err := ioutil.ReadAll(resp.Body) + if err != nil { + fmt.Fprintf(os.Stderr, "Unable read response: %v", err) + os.Exit(-1) + } + + var apiresp xteve.APIResponseStruct + err = json.Unmarshal(respStr, &apiresp) + if err != nil { + fmt.Fprintf(os.Stderr, "Unable parse response: %v", err) + os.Exit(-1) + } + + os.Exit(int(apiresp.TunerActive)) +} diff --git a/snap/hooks/pre-refresh b/snap/hooks/pre-refresh new file mode 100755 index 0000000..c795c4a --- /dev/null +++ b/snap/hooks/pre-refresh @@ -0,0 +1,3 @@ +#!/bin/bash + +exec $SNAP/bin/xteve-inactive -port 8080 diff --git a/snap/snapcraft.yaml b/snap/snapcraft.yaml index ea28043..7a6eac8 100644 --- a/snap/snapcraft.yaml +++ b/snap/snapcraft.yaml @@ -26,3 +26,12 @@ apps: plugs: - network - network-bind + inactive: + command: bin/xteve-inactive -port 8080 + plugs: + - network + +hooks: + pre-refresh: + plugs: + - network diff --git a/src/struct-webserver.go b/src/struct-webserver.go index e87abcb..09971fd 100644 --- a/src/struct-webserver.go +++ b/src/struct-webserver.go @@ -137,6 +137,8 @@ type APIResponseStruct struct { StreamsAll int64 `json:"streams.all,omitempty"` StreamsXepg int64 `json:"streams.xepg,omitempty"` Token string `json:"token,omitempty"` + TunerActive int64 `json:"tuners.active,omitempty"` + TunerAll int64 `json:"tuners.all,omitempty"` URLDvr string `json:"url.dvr,omitempty"` URLM3U string `json:"url.m3u,omitempty"` URLXepg string `json:"url.xepg,omitempty"` diff --git a/src/webserver.go b/src/webserver.go index 9e519cb..c544741 100644 --- a/src/webserver.go +++ b/src/webserver.go @@ -926,6 +926,13 @@ func API(w http.ResponseWriter, r *http.Request) { response.URLM3U = System.ServerProtocol.M3U + "://" + System.Domain + "/m3u/xteve.m3u" response.URLXepg = System.ServerProtocol.XML + "://" + System.Domain + "/xmltv/xteve.xml" + BufferInformation.Range(func(k, v interface{}) bool { + playlist := v.(Playlist) + response.TunerActive += int64(len(playlist.Streams)) + response.TunerAll += int64(playlist.Tuner) + return true + }) + case "update.m3u": err = getProviderData("m3u", "") if err != nil { From fd680c4c781de21ecfa149d44621cd5d3da7aaef Mon Sep 17 00:00:00 2001 From: Ted Gould Date: Fri, 27 Aug 2021 19:16:31 +0000 Subject: [PATCH 025/189] Fix URL and make error messages better --- cmd/xteve-inactive/main.go | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/cmd/xteve-inactive/main.go b/cmd/xteve-inactive/main.go index 68107b5..255ddc6 100644 --- a/cmd/xteve-inactive/main.go +++ b/cmd/xteve-inactive/main.go @@ -23,7 +23,7 @@ func main() { var err error portNum, err = strconv.Atoi(*port) if err != nil { - fmt.Fprintf(os.Stderr, "Unable parse port: %v", err) + fmt.Fprintf(os.Stderr, "Unable parse port: %v\n", err) os.Exit(-1) } } @@ -32,13 +32,13 @@ func main() { Cmd: "status", }) if err != nil { - fmt.Fprintf(os.Stderr, "Unable to marshall request: %v", err) + fmt.Fprintf(os.Stderr, "Unable to marshall request: %v\n", err) os.Exit(-1) } - resp, err := http.Post(fmt.Sprintf("http://localhost:%d/api", portNum), "application/json", bytes.NewBuffer(requestBody)) + resp, err := http.Post(fmt.Sprintf("http://localhost:%d/api/", portNum), "application/json", bytes.NewBuffer(requestBody)) if err != nil { - fmt.Fprintf(os.Stderr, "Unable to get API: %v", err) + fmt.Fprintf(os.Stderr, "Unable to get API: %v\n", err) os.Exit(-1) } @@ -46,14 +46,15 @@ func main() { respStr, err := ioutil.ReadAll(resp.Body) if err != nil { - fmt.Fprintf(os.Stderr, "Unable read response: %v", err) + fmt.Fprintf(os.Stderr, "Unable read response: %v\n", err) os.Exit(-1) } var apiresp xteve.APIResponseStruct err = json.Unmarshal(respStr, &apiresp) if err != nil { - fmt.Fprintf(os.Stderr, "Unable parse response: %v", err) + fmt.Fprintf(os.Stderr, "Unable parse response: %v\n", err) + fmt.Fprintf(os.Stderr, "%s\n", respStr) os.Exit(-1) } From 9321c37264196f32dc66c95bbf24c5c72c341ad1 Mon Sep 17 00:00:00 2001 From: Ted Gould Date: Fri, 27 Aug 2021 19:19:31 +0000 Subject: [PATCH 026/189] Allow specifying the host --- cmd/xteve-inactive/main.go | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/cmd/xteve-inactive/main.go b/cmd/xteve-inactive/main.go index 255ddc6..12dc8c6 100644 --- a/cmd/xteve-inactive/main.go +++ b/cmd/xteve-inactive/main.go @@ -14,6 +14,7 @@ import ( ) var port = flag.String("port", "", ": Server port [34400] (default: 34400)") +var host = flag.String("host", "", ": Server host (default: localhost)") func main() { flag.Parse() @@ -28,6 +29,11 @@ func main() { } } + hostname := "localhost" + if host != nil { + hostname = *host + } + requestBody, err := json.Marshal(&xteve.APIRequestStruct{ Cmd: "status", }) @@ -36,7 +42,7 @@ func main() { os.Exit(-1) } - resp, err := http.Post(fmt.Sprintf("http://localhost:%d/api/", portNum), "application/json", bytes.NewBuffer(requestBody)) + resp, err := http.Post(fmt.Sprintf("http://%s:%d/api/", hostname, portNum), "application/json", bytes.NewBuffer(requestBody)) if err != nil { fmt.Fprintf(os.Stderr, "Unable to get API: %v\n", err) os.Exit(-1) From 9530f145866fdbadcf957fc48da21a21d85524ed Mon Sep 17 00:00:00 2001 From: Ted Gould Date: Fri, 27 Aug 2021 22:27:47 +0000 Subject: [PATCH 027/189] Ensure the service is running before hitting the API --- snap/hooks/pre-refresh | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/snap/hooks/pre-refresh b/snap/hooks/pre-refresh index c795c4a..bd6da56 100755 --- a/snap/hooks/pre-refresh +++ b/snap/hooks/pre-refresh @@ -1,3 +1,12 @@ #!/bin/bash +set -ex + +# Check to see if the service is running +SERVICE_STATUS=`snapctl services xteve.xteve | tail -1 | cut -d " " -f 5` +if [ "$SERVICE_STATUS" != "active" ]; then + exit 0 +fi + +# Check to see if it is doing anything exec $SNAP/bin/xteve-inactive -port 8080 From cf5bc2f290ac5c3a7bf766c5eb601c146c717245 Mon Sep 17 00:00:00 2001 From: Ted Gould Date: Fri, 27 Aug 2021 22:58:25 +0000 Subject: [PATCH 028/189] A little utility to print out the status of the xTeVe service to the command line --- cmd/xteve-inactive/main.go | 4 +- cmd/xteve-status/main.go | 83 ++++++++++++++++++++++++++++++++++++++ snap/snapcraft.yaml | 4 ++ 3 files changed, 89 insertions(+), 2 deletions(-) create mode 100644 cmd/xteve-status/main.go diff --git a/cmd/xteve-inactive/main.go b/cmd/xteve-inactive/main.go index 12dc8c6..324a828 100644 --- a/cmd/xteve-inactive/main.go +++ b/cmd/xteve-inactive/main.go @@ -20,7 +20,7 @@ func main() { flag.Parse() portNum := 34400 - if port != nil { + if port != nil && *port != "" { var err error portNum, err = strconv.Atoi(*port) if err != nil { @@ -30,7 +30,7 @@ func main() { } hostname := "localhost" - if host != nil { + if host != nil && *host != "" { hostname = *host } diff --git a/cmd/xteve-status/main.go b/cmd/xteve-status/main.go new file mode 100644 index 0000000..9e4f012 --- /dev/null +++ b/cmd/xteve-status/main.go @@ -0,0 +1,83 @@ +package main + +import ( + "bytes" + "encoding/json" + "flag" + "fmt" + "io/ioutil" + "net/http" + "os" + "strconv" + + xteve "xteve/src" +) + +var port = flag.String("port", "", ": Server port [34400] (default: 34400)") +var host = flag.String("host", "", ": Server host (default: localhost)") + +func main() { + flag.Parse() + + portNum := 34400 + if port != nil && *port != "" { + var err error + portNum, err = strconv.Atoi(*port) + if err != nil { + fmt.Fprintf(os.Stderr, "Unable parse port: %v\n", err) + os.Exit(-1) + } + } + + hostname := "localhost" + if host != nil && *host != "" { + hostname = *host + } + + requestBody, err := json.Marshal(&xteve.APIRequestStruct{ + Cmd: "status", + }) + if err != nil { + fmt.Fprintf(os.Stderr, "Unable to marshall request: %v\n", err) + os.Exit(-1) + } + + resp, err := http.Post(fmt.Sprintf("http://%s:%d/api/", hostname, portNum), "application/json", bytes.NewBuffer(requestBody)) + if err != nil { + fmt.Fprintf(os.Stderr, "Unable to get API: %v\n", err) + os.Exit(-1) + } + + defer resp.Body.Close() + + respStr, err := ioutil.ReadAll(resp.Body) + if err != nil { + fmt.Fprintf(os.Stderr, "Unable read response: %v\n", err) + os.Exit(-1) + } + + var apiresp xteve.APIResponseStruct + err = json.Unmarshal(respStr, &apiresp) + if err != nil { + fmt.Fprintf(os.Stderr, "Unable parse response: %v\n", err) + fmt.Fprintf(os.Stderr, "%s\n", respStr) + os.Exit(-1) + } + + fmt.Printf("xTeVe status:\n") + fmt.Printf("EPG Source: %v\n", apiresp.EpgSource) + fmt.Printf("Error: %v\n", apiresp.Error) + fmt.Printf("Status: %v\n", apiresp.Status) + fmt.Printf("Streams Active: %v\n", apiresp.StreamsActive) + fmt.Printf("Streams Total: %v\n", apiresp.StreamsAll) + fmt.Printf("Streams XEPG: %v\n", apiresp.StreamsXepg) + fmt.Printf("Tuners Active: %v\n", apiresp.TunerActive) + fmt.Printf("Tuners Available: %v\n", apiresp.TunerAll) + fmt.Printf("URL for DVR: %v\n", apiresp.URLDvr) + fmt.Printf("URL for M3U: %v\n", apiresp.URLM3U) + fmt.Printf("URL for XEPG: %v\n", apiresp.URLXepg) + fmt.Printf("API Version: %v\n", apiresp.VersionAPI) + fmt.Printf("xTeVe Version: %v\n", apiresp.VersionXteve) + + os.Exit(0) +} diff --git a/snap/snapcraft.yaml b/snap/snapcraft.yaml index 7a6eac8..71a81fd 100644 --- a/snap/snapcraft.yaml +++ b/snap/snapcraft.yaml @@ -30,6 +30,10 @@ apps: command: bin/xteve-inactive -port 8080 plugs: - network + status: + command: bin/xteve-status -port 8080 + plugs: + - network hooks: pre-refresh: From 6b854ed97426ac80589545502a3ba69e55fcd747 Mon Sep 17 00:00:00 2001 From: Ted Gould Date: Wed, 8 Sep 2021 22:32:35 +0000 Subject: [PATCH 029/189] Restart the service hourly if not running, fight a memory leak --- snap/local/scripts/restart-if-inactive | 3 +++ snap/snapcraft.yaml | 9 +++++++++ 2 files changed, 12 insertions(+) create mode 100755 snap/local/scripts/restart-if-inactive diff --git a/snap/local/scripts/restart-if-inactive b/snap/local/scripts/restart-if-inactive new file mode 100755 index 0000000..ee8d4f4 --- /dev/null +++ b/snap/local/scripts/restart-if-inactive @@ -0,0 +1,3 @@ +#!/bin/sh + +${SNAP}/bin/xteve-inactive -port 8080 && snapctl restart xteve.xteve diff --git a/snap/snapcraft.yaml b/snap/snapcraft.yaml index 71a81fd..75fd911 100644 --- a/snap/snapcraft.yaml +++ b/snap/snapcraft.yaml @@ -18,6 +18,11 @@ parts: override-stage: | snapcraftctl stage snapcraftctl set-version `$SNAPCRAFT_STAGE/bin/xteve -version` + snap-scripts: + plugin: dump + source: snap/local/scripts + organize: + '*': bin/ apps: xteve: @@ -26,6 +31,10 @@ apps: plugs: - network - network-bind + restart: + daemon: oneshot + command: bin/restart-if-inactive + timer: 00:00-24:00/24 inactive: command: bin/xteve-inactive -port 8080 plugs: From eb8a4f205e8ad4731cf0e3d3c983a0198b82a5bb Mon Sep 17 00:00:00 2001 From: Ted Gould Date: Wed, 8 Sep 2021 23:17:13 +0000 Subject: [PATCH 030/189] Add network plug --- snap/snapcraft.yaml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/snap/snapcraft.yaml b/snap/snapcraft.yaml index 75fd911..05411a8 100644 --- a/snap/snapcraft.yaml +++ b/snap/snapcraft.yaml @@ -34,7 +34,9 @@ apps: restart: daemon: oneshot command: bin/restart-if-inactive - timer: 00:00-24:00/24 + timer: 00:10-23:10/24 + plugs: + - network inactive: command: bin/xteve-inactive -port 8080 plugs: From 6c225611152003e54ce436b77c035ae153482c1c Mon Sep 17 00:00:00 2001 From: Ted Gould Date: Sun, 12 Sep 2021 19:57:59 +0000 Subject: [PATCH 031/189] Add VLC to package --- snap/snapcraft.yaml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/snap/snapcraft.yaml b/snap/snapcraft.yaml index 05411a8..6fd2a58 100644 --- a/snap/snapcraft.yaml +++ b/snap/snapcraft.yaml @@ -23,6 +23,9 @@ parts: source: snap/local/scripts organize: '*': bin/ + vlc: + plugin: nil + stage-packages: [ "vlc-bin" ] apps: xteve: From 7d266c0aed4ae332a5787691dfc2d4f7fcd3f992 Mon Sep 17 00:00:00 2001 From: Ted Gould Date: Sun, 12 Sep 2021 21:41:54 +0000 Subject: [PATCH 032/189] Switch to FFMPEG --- snap/snapcraft.yaml | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/snap/snapcraft.yaml b/snap/snapcraft.yaml index 6fd2a58..d3cd503 100644 --- a/snap/snapcraft.yaml +++ b/snap/snapcraft.yaml @@ -23,9 +23,12 @@ parts: source: snap/local/scripts organize: '*': bin/ - vlc: +# vlc: +# plugin: nil +# stage-packages: [ "vlc-bin" ] + ffmpeg: plugin: nil - stage-packages: [ "vlc-bin" ] + stage-packages: [ "ffmpeg" ] apps: xteve: From c527f8a3c581a80ccd76b2644d81d73a6243d507 Mon Sep 17 00:00:00 2001 From: Ted Gould Date: Mon, 13 Sep 2021 02:26:37 +0000 Subject: [PATCH 033/189] Add the pulseaudio library path to loadable libraries --- snap/snapcraft.yaml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/snap/snapcraft.yaml b/snap/snapcraft.yaml index d3cd503..9e023c2 100644 --- a/snap/snapcraft.yaml +++ b/snap/snapcraft.yaml @@ -34,6 +34,8 @@ apps: xteve: daemon: simple command: bin/xteve -port 8080 -config $SNAP_COMMON/config -no-updates + environment: + LD_LIBRARY_PATH: ${SNAP}/usr/lib/arm-linux-gnueabihf/pulseaudio/ plugs: - network - network-bind From 3c669b2003af8b8d677be904cb85d26683bc5ffe Mon Sep 17 00:00:00 2001 From: SCP002 Date: Sun, 20 Feb 2022 12:39:57 +0300 Subject: [PATCH 034/189] Update github account and verison number --- xteve.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/xteve.go b/xteve.go index 44f54bd..9694e47 100644 --- a/xteve.go +++ b/xteve.go @@ -26,7 +26,7 @@ type GitHubStruct struct { // GitHub : GitHub Account // If you want to fork this project, enter your Github account here. This prevents a newer version of xTeVe from updating your version. -var GitHub = GitHubStruct{Branch: "experimental", User: "winguru", Repo: "xTeVe-Downloads", Update: false} +var GitHub = GitHubStruct{Branch: "master", User: "SCP002", Repo: "xTeVe", Update: false} /* Branch: GitHub Branch @@ -39,7 +39,7 @@ var GitHub = GitHubStruct{Branch: "experimental", User: "winguru", Repo: "xTeVe- const Name = "xTeVe" // Version : Version, the Build Number is parsed in the main func -const Version = "2.2.1.0200" +const Version = "2.2.2.0000" // DBVersion : Database Version const DBVersion = "2.1.1" From b1718ae81c55d3f3053bee0c6eee908019e2d1f4 Mon Sep 17 00:00:00 2001 From: SCP002 Date: Mon, 21 Feb 2022 15:43:41 +0300 Subject: [PATCH 035/189] Update README.md --- README.md | 54 +++++------------------------------------------------- 1 file changed, 5 insertions(+), 49 deletions(-) diff --git a/README.md b/README.md index 51dec72..b262a9a 100644 --- a/README.md +++ b/README.md @@ -4,7 +4,7 @@
# xTeVe -## M3U Proxy for Plex DVR and Emby Live TV. +## M3U Proxy and EPG aggregator for Plex DVR and Emby Live TV. Documentation for setup and configuration is [here](https://github.com/xteve-project/xTeVe-Documentation/blob/master/en/configuration.md). @@ -12,17 +12,6 @@ Documentation for setup and configuration is [here](https://github.com/xteve-pro * **Bitcoin:** 1c1iCe4CJPfNUXtqxKBbW2Qd2EtqRPWme ![Bitcoin](html/img/BC-QR.jpg "Bitcoin - xTeVe") -## Requirements -### Plex -* Plex Media Server (1.11.1.4730 or newer) -* Plex Client with DVR support -* Plex Pass - -### Emby -* Emby Server (3.5.3.0 or newer) -* Emby Client with Live-TV support -* Emby Premiere - --- ## Features @@ -35,6 +24,7 @@ Documentation for setup and configuration is [here](https://github.com/xteve-pro #### Channel management * Filtering streams +* Teleguide timeshift * Channel mapping * Channel order * Channel logos @@ -48,38 +38,8 @@ Documentation for setup and configuration is [here](https://github.com/xteve-pro --- -## Downloads v2 | 64 Bit only -#### 64 Bit Intel / AMD - -* [Windows](https://github.com/xteve-project/xTeVe-Downloads/blob/master/xteve_windows_amd64.zip?raw=true) -* [OS X](https://github.com/xteve-project/xTeVe-Downloads/blob/master/xteve_darwin_amd64.zip?raw=true) -* [Linux](https://github.com/xteve-project/xTeVe-Downloads/blob/master/xteve_linux_amd64.zip?raw=true) -* [FreeBSD](https://github.com/xteve-project/xTeVe-Downloads/blob/master/xteve_freebsd_amd64.zip?raw=true) - -#### 64 Bit ARM -* [Linux](https://github.com/xteve-project/xTeVe-Downloads/blob/master/xteve_linux_arm64.zip?raw=true) - -#### Recommended Docker Image (Linux 64 Bit) -Thanks to @alturismo and @LeeD for creating the Docker Images. - -**Created by alturismo:** -[xTeVe](https://hub.docker.com/r/alturismo/xteve) -[xTeVe / Guide2go](https://hub.docker.com/r/alturismo/xteve_guide2go) -[xTeVe / Guide2go / owi2plex](https://hub.docker.com/r/alturismo/xteve_g2g_owi) - -Including: -- Guide2go: XMLTV grabber for Schedules Direct -- owi2plex: XMLTV file grabber for Enigma receivers - -**Created by LeeD:** -[xTeVe / Guide2go / Zap2XML](https://hub.docker.com/r/dnsforge/xteve) - -Including: -- Guide2go: XMLTV grabber for Schedules Direct -- Zap2XML: Perl based zap2it XMLTV grabber -- Bash: A Unix / Linux shell -- Crond: Daemon to execute scheduled commands -- Perl: Programming language +## Downloads +* See [releases page](https://github.com/SCP002/xTeVe/releases) --- @@ -128,9 +88,7 @@ When the branch is changed, an update is only performed if there is a new versio 1. Download source code 2. Install dependencies ``` -go get github.com/koron/go-ssdp -go get github.com/gorilla/websocket -go get github.com/kardianos/osext +go mod tidy ``` 3. Build xTeVe ``` @@ -155,5 +113,3 @@ var GitHub = GitHubStruct{Branch: "master", User: "xteve-project", Repo: "xTeVe- */ ``` - - From cd5a38931474f6da63e215f6f34851dc5d08436a Mon Sep 17 00:00:00 2001 From: SCP002 Date: Sat, 26 Mar 2022 08:25:18 +0300 Subject: [PATCH 036/189] Fix EPG mapping does not reflect changes in playlist. Closes #4 --- src/xepg.go | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/xepg.go b/src/xepg.go index d521e38..29e1a83 100644 --- a/src/xepg.go +++ b/src/xepg.go @@ -356,8 +356,8 @@ func createXEPGDatabase() (err error) { return } - var generateHashForChannel = func(m3uID string, groupTitle string, tvgID string, tvgName string, uuidKey string, uuidValue string) string { - hash := md5.Sum([]byte(m3uID + groupTitle + tvgID + tvgName + uuidKey + uuidValue)) + var generateHashForChannel = func(m3uID string, name string, groupTitle string, tvgID string, tvgName string, uuidKey string, uuidValue string) string { + hash := md5.Sum([]byte(m3uID + name + groupTitle + tvgID + tvgName + uuidKey + uuidValue)) return hex.EncodeToString(hash[:]) } @@ -390,7 +390,7 @@ func createXEPGDatabase() (err error) { if err != nil { return } - channelHash := generateHashForChannel(channel.FileM3UID, channel.GroupTitle, channel.TvgID, channel.TvgName, channel.UUIDKey, channel.UUIDValue) + channelHash := generateHashForChannel(channel.FileM3UID, channel.Name, channel.GroupTitle, channel.TvgID, channel.TvgName, channel.UUIDKey, channel.UUIDValue) xepgChannelsValuesMap[channelHash] = channel } @@ -410,7 +410,7 @@ func createXEPGDatabase() (err error) { Data.Cache.Streams.Active = append(Data.Cache.Streams.Active, m3uChannel.Name+m3uChannel.FileM3UID) // Try to find the channel based on matching all known values. If that fails, then move to full channel scan - m3uChannelHash := generateHashForChannel(m3uChannel.FileM3UID, m3uChannel.GroupTitle, m3uChannel.TvgID, m3uChannel.TvgName, m3uChannel.UUIDKey, m3uChannel.UUIDValue) + m3uChannelHash := generateHashForChannel(m3uChannel.FileM3UID, m3uChannel.Name, m3uChannel.GroupTitle, m3uChannel.TvgID, m3uChannel.TvgName, m3uChannel.UUIDKey, m3uChannel.UUIDValue) if val, ok := xepgChannelsValuesMap[m3uChannelHash]; ok { channelExists = true currentXEPGID = val.XEPG From 419210cba0cae0ae96f003e786f7d1f033602759 Mon Sep 17 00:00:00 2001 From: SCP002 Date: Sun, 27 Mar 2022 20:27:52 +0300 Subject: [PATCH 037/189] Create compileJS.cmd --- ts/compileJS.cmd | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 ts/compileJS.cmd diff --git a/ts/compileJS.cmd b/ts/compileJS.cmd new file mode 100644 index 0000000..789b448 --- /dev/null +++ b/ts/compileJS.cmd @@ -0,0 +1,4 @@ +@Echo Off +ChCp 65001 + +tsc -p tsconfig.json From 70475ed95789a7e9684413e0e54d6294166bdd09 Mon Sep 17 00:00:00 2001 From: SCP002 Date: Sun, 27 Mar 2022 20:28:23 +0300 Subject: [PATCH 038/189] Make compileJS.sh use tsconfig.json file --- ts/compileJS.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ts/compileJS.sh b/ts/compileJS.sh index 1b6f1f5..b99ed6c 100755 --- a/ts/compileJS.sh +++ b/ts/compileJS.sh @@ -1,3 +1,3 @@ #!/bin/bash -tsc *.ts --outDir ../html/js/ +tsc -p tsconfig.json From 5bf47630af7041ad5a28dff1658c74147d725444 Mon Sep 17 00:00:00 2001 From: SCP002 Date: Sun, 27 Mar 2022 22:35:04 +0300 Subject: [PATCH 039/189] Create .vscode task to build typescript files --- .vscode/tasks.json | 14 ++++++++++++++ 1 file changed, 14 insertions(+) create mode 100644 .vscode/tasks.json diff --git a/.vscode/tasks.json b/.vscode/tasks.json new file mode 100644 index 0000000..34128c9 --- /dev/null +++ b/.vscode/tasks.json @@ -0,0 +1,14 @@ +{ + "version": "2.0.0", + "tasks": [ + { + "type": "typescript", + "tsconfig": "ts/tsconfig.json", + "problemMatcher": [ + "$tsc" + ], + "group": "build", + "label": "tsc build" + } + ] +} \ No newline at end of file From 3768506e31b32999d625ac03d38a065c18328032 Mon Sep 17 00:00:00 2001 From: SCP002 Date: Sun, 27 Mar 2022 22:36:16 +0300 Subject: [PATCH 040/189] Create .vscode launch configuration to build typescript files and run program in developement mode --- .vscode/launch.json | 14 ++++++++++++++ 1 file changed, 14 insertions(+) create mode 100644 .vscode/launch.json diff --git a/.vscode/launch.json b/.vscode/launch.json new file mode 100644 index 0000000..a91453b --- /dev/null +++ b/.vscode/launch.json @@ -0,0 +1,14 @@ +{ + "version": "0.2.0", + "configurations": [ + { + "preLaunchTask": "tsc build", + "name": "Launch Package", + "type": "go", + "request": "launch", + "mode": "auto", + "program": "${fileDirname}", + "args": ["-dev"] + } + ] +} \ No newline at end of file From 836498c914eba47cd705d80d7ac2c8d48ae4adbc Mon Sep 17 00:00:00 2001 From: SCP002 Date: Sun, 27 Mar 2022 22:37:09 +0300 Subject: [PATCH 041/189] Increase program version to "2.2.2.0100" --- xteve.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/xteve.go b/xteve.go index 9694e47..81c3552 100644 --- a/xteve.go +++ b/xteve.go @@ -39,7 +39,7 @@ var GitHub = GitHubStruct{Branch: "master", User: "SCP002", Repo: "xTeVe", Updat const Name = "xTeVe" // Version : Version, the Build Number is parsed in the main func -const Version = "2.2.2.0000" +const Version = "2.2.2.0100" // DBVersion : Database Version const DBVersion = "2.1.1" From 187450da72fa26871f56a64923931ca6c7d5f8a0 Mon Sep 17 00:00:00 2001 From: SCP002 Date: Sun, 27 Mar 2022 22:48:25 +0300 Subject: [PATCH 042/189] Fix changes in timeshift not shown on the mapping page. Closes #3 --- html/js/menu_ts.js | 3 ++ src/webUI.go | 83 +++++++++++++++++++++++----------------------- ts/menu_ts.ts | 4 +++ 3 files changed, 49 insertions(+), 41 deletions(-) diff --git a/html/js/menu_ts.js b/html/js/menu_ts.js index 3efde66..05e8315 100644 --- a/html/js/menu_ts.js +++ b/html/js/menu_ts.js @@ -1707,6 +1707,9 @@ function donePopupData(dataType, idsStr) { } document.getElementById(id).childNodes[7].firstChild.innerHTML = value; break; + case "x-timeshift": + document.getElementById(id).childNodes[8].firstChild.innerHTML = value; + break; default: } createSearchObj(); diff --git a/src/webUI.go b/src/webUI.go index 216596d..c161b0b 100644 --- a/src/webUI.go +++ b/src/webUI.go @@ -4,46 +4,47 @@ var webUI = make(map[string]interface{}) func loadHTMLMap() { - webUI["html/css/base.css"] = "KiB7DQogIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTsNCiAgLW1vei1hcHBlYXJhbmNlOiBub25lOw0KICAtbXMtYXBwZWFyYW5jZTogbm9uZTsNCiAgZm9udC1mYW1pbHk6ICJBcmlhbCIsIHNhbnMtc2VyaWY7DQogIGxldHRlci1zcGFjaW5nOiAycHg7IA0KfQ0KDQovKg0KOjotd2Via2l0LXNjcm9sbGJhciB7IA0KICAgIGRpc3BsYXk6IG5vbmU7IA0KfQ0KKi8NCg0KOjotd2Via2l0LXNjcm9sbGJhciB7DQogIHdpZHRoOiAxMnB4Ow0KICBoZWlnaHQ6IDEycHg7DQp9DQoNCiANCjo6LXdlYmtpdC1zY3JvbGxiYXItdHJhY2sgew0KICAtd2Via2l0LWJveC1zaGFkb3c6IGluc2V0IDAgMCA2cHggcmdiYSgwLDAsMCwwLjMpOyANCiAgYm9yZGVyLXJhZGl1czogNXB4Ow0KICAgIA0KfQ0KIA0KOjotd2Via2l0LXNjcm9sbGJhci10aHVtYiB7DQogIGJvcmRlci1yYWRpdXM6IDVweDsNCiAgLXdlYmtpdC1ib3gtc2hhZG93OiBpbnNldCAwIDAgNnB4IHJnYmEoMCwgMCwgMCwwLjYpOyANCiAgYmFja2dyb3VuZC1jb2xvcjogIzQ0NDsNCn0NCg0KOjotd2Via2l0LXNjcm9sbGJhci10aHVtYjpob3ZlciB7DQogIGJhY2tncm91bmQ6ICMzMzM7IA0KfQ0KDQo6Oi13ZWJraXQtc2Nyb2xsYmFyLWNvcm5lciB7IA0KICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsgDQp9DQoNCmEgew0KICBjb2xvcjogIzAwRTZGRjsNCn0NCg0KaHRtbCwgYm9keSB7DQogIGNvbG9yOiAjZmZmOw0KICBtYXJnaW46IDBweCBhdXRvOw0KICBoZWlnaHQ6IDEwMCU7DQogIGZvbnQtc2l6ZTogMTRweDsNCn0NCg0KaDIgew0KICBmb250LXNpemU6IDI0cHg7DQogIGxldHRlci1zcGFjaW5nOiAycHg7DQp9DQoNCmgzIHsNCiAgZm9udC1zaXplOiAyMnB4Ow0KICBsZXR0ZXItc3BhY2luZzogMXB4Ow0KfQ0KDQpoNCB7DQogIGZvbnQtc2l6ZTogMjBweDsNCiAgbGV0dGVyLXNwYWNpbmc6IDFweDsNCiAgbGluZS1oZWlnaHQ6IDEuNWVtOw0KDQp9DQoNCmg1IHsNCiAgZm9udC1zaXplOiAxNnB4Ow0KICBsZXR0ZXItc3BhY2luZzogMXB4Ow0KICBsaW5lLWhlaWdodDogMS4yZW07DQogIG1hcmdpbjogMjVweCAwcHggMTBweCAwcHg7DQp9DQoNCmhyIHsNCiAgYm9yZGVyOiAwOw0KICBoZWlnaHQ6IDFweDsNCiAgYmFja2dyb3VuZDogIzMzMzsNCiAgbWFyZ2luOiAxMHB4IDBweDsNCn0NCg0KcCB7DQogIG1hcmdpbjogMnB4Ow0KICBwYWRkaW5nOiAycHggNXB4Ow0KfQ0KDQpwcmUgew0KICBtYXJnaW46IDBweCAwcHggNXB4IDBweDsNCiAgZm9udC1zaXplOiAxMnB4Ow0KICBjb2xvcjogI2RkZDsNCiAgbGV0dGVyLXNwYWNpbmc6IDFweDsNCiAgd2hpdGUtc3BhY2U6IHByZS13cmFwOw0KICBmb250LWZhbWlseTogbW9ub3NwYWNlOyANCiAgZm9udC1zaXplOiAxMnB4OyANCiAgZm9udC1zdHlsZTogbm9ybWFsOyANCiAgZm9udC12YXJpYW50OiBub3JtYWw7IA0KICBsaW5lLWhlaWdodDogMS42ZW07IA0KfQ0KDQpsYWJlbCB7DQogIG1hcmdpbi1ib3R0b206IDIwcHg7DQogIGRpc3BsYXk6IGJsb2NrOw0KfQ0KDQpsaSB7DQogIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTsNCiAgYmFja2dyb3VuZC1jb2xvcjogIzExMTsNCiAgcGFkZGluZzogMTBweCAyMHB4Ow0KICBjdXJzb3I6IHBvaW50ZXI7DQogIGJvcmRlci1sZWZ0OiBzb2xpZCAycHggIzExMTsNCiAgdHJhbnNpdGlvbjogYWxsIDAuMzsNCn0NCg0KbGk6aG92ZXIgew0KICBib3JkZXItY29sb3I6ICMwMEU2RkYNCn0NCg0Kc2VsZWN0IHsNCiAgY3Vyc29yOiBwb2ludGVyOw0KICB3aWR0aDogY2FsYygxMDAlICsgMnB4KTsNCiAgYm9yZGVyOiBzb2xpZCAwcHggIzAwRTZGRjsNCiAgYm9yZGVyLXJhZGl1czogMHB4Ow0KICBvdXRsaW5lOiBub25lOw0KICBjb2xvcjogI2ZmZjsNCiAgcGFkZGluZzogOXB4IDEwcHg7DQogIGRpc3BsYXk6YmxvY2s7DQogIGJhY2tncm91bmQtY29sb3I6ICMzMzM7DQogIGZvbnQtc2l6ZTogMTRweDsNCiAgbWFyZ2luOiA1cHggMHB4IDVweCAwcHg7DQp9DQoNCnNlbGVjdDpmb2N1cyB7DQogIG91dGxpbmU6IG5vbmU7DQp9DQoNCmlucHV0IHsNCiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lOw0KICBtYXJnaW46IDVweCAwcHg7DQogIHBhZGRpbmc6IDIuNXB4IDEwcHg7DQogIG91dGxpbmU6IG5vbmU7DQogIGZvbnQtc2l6ZTogMTRweDsNCn0NCg0KaW5wdXRbdHlwZT1idXR0b25dLCBpbnB1dFt0eXBlPXN1Ym1pdF0gew0KICBjdXJzb3I6IHBvaW50ZXI7DQogIGJhY2tncm91bmQtY29sb3I6ICMwMDA7DQogIG1hcmdpbjogMTBweCAxMHB4Ow0KICBwYWRkaW5nOiAxMHB4IDI1cHg7DQogIGJvcmRlcjogc29saWQgMHB4Ow0KICBib3JkZXItY29sb3I6ICMwMDA7DQogIGJvcmRlci1yYWRpdXM6IDNweDsNCiAgb3V0bGluZTogbm9uZTsNCiAgY29sb3I6ICNmZmY7DQp9DQoNCmlucHV0W3R5cGU9YnV0dG9uXTpmb2N1cyB7IA0KICAgb3V0bGluZTogbm9uZTsNCn0NCg0KaW5wdXRbdHlwZT1idXR0b25dOmhvdmVyIHsNCiAgYmFja2dyb3VuZC1jb2xvcjogIzAwRTZGRjsNCiAgY29sb3I6ICMwMDA7DQp9DQoNCmlucHV0W3R5cGU9YnV0dG9uXTpob3Zlci5kZWxldGUgIHsNCiAgYmFja2dyb3VuZC1jb2xvcjogcmVkOw0KICBjb2xvcjogI2ZmZjsNCn0NCg0KaW5wdXRbdHlwZT10ZXh0XSwgaW5wdXRbdHlwZT1zZWFyY2hdLCBpbnB1dFt0eXBlPXBhc3N3b3JkXSB7DQogIGNvbG9yOiAjZmZmOw0KICB3aWR0aDogLXdlYmtpdC1jYWxjKDEwMCUgLSAwcHgpOw0KICB3aWR0aDogLW1vei1jYWxjKDEwMCUgLSAwcHgpOw0KICB3aWR0aDogY2FsYygxMDAlIC0gMHB4KTsNCiAgb3V0bGluZTogbm9uZTsNCiAgYm9yZGVyOiBzb2xpZCAxcHggdHJhbnNwYXJlbnQ7DQogIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50Ow0KICBib3JkZXItYm90dG9tLWNvbG9yOiAjNTU1Ow0KICBib3JkZXItcmFkaXVzOiAwcHg7DQogIHBhZGRpbmc6IDhweCAxMHB4Ow0KfQ0KDQppbnB1dFt0eXBlPSJjaGVja2JveCJdIHsNCiAgYm9yZGVyOiBzb2xpZCAxcHggIzAwRTZGRjsNCiAgYmFja2dyb3VuZC1jb2xvcjogIzMzMzsNCiAgaGVpZ2h0OiAyNXB4Ow0KICB3aWR0aDogMjVweDsNCiAgY3Vyc29yOiBwb2ludGVyOw0KICAvKg0KICAtd2Via2l0LWFwcGVhcmFuY2U6IGNoZWNrYm94Ow0KICAqLw0KfQ0KDQppbnB1dFt0eXBlPSJjaGVja2JveCJdOmNoZWNrZWQgew0KICBjb2xvcjogI2ZmZjsNCiAgYmFja2dyb3VuZC1jb2xvcjogIzAwRTZGRjsNCiAgLypkaXNwbGF5OiBpbmxpbmUtYmxvY2s7Ki8NCn0NCg0KaW5wdXRbdHlwZT0iY2hlY2tib3giXTpiZWZvcmUgew0KICBwb3NpdGlvbjogaW5pdGlhbDsNCiAgbGVmdDogMHB4Ow0KICBtYXJnaW4tbGVmdDogLTRweDsNCiAgY29udGVudDogIiAiOw0KfQ0KDQppbnB1dFt0eXBlPSJjaGVja2JveCJdOmNoZWNrZWQ6YmVmb3JlIHsNCiAgcG9zaXRpb246IGluaXRpYWw7DQogIGxlZnQ6IDBweDsNCiAgbWFyZ2luLWxlZnQ6IC0zcHg7DQogIGNvbnRlbnQ6ICLinJMiOw0KICBjb2xvcjogIzAwMDsNCn0NCg0KDQppbnB1dFt0eXBlPWJ1dHRvbl0uY2FuY2VsIHsNCiAgDQogIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50Ow0KICBib3JkZXItY29sb3I6IHJlZDsNCn0NCg0KaW5wdXRbdHlwZT1idXR0b25dLnNhdmV7DQogIGJhY2tncm91bmQtY29sb3I6ICMxMTE7DQogIGZsb2F0OiByaWdodDsNCn0NCg0KDQppbnB1dFt0eXBlPWJ1dHRvbl0uYmxhY2ssIGlucHV0W3R5cGU9c3VibWl0XS5ibGFja3sNCiAgYmFja2dyb3VuZC1jb2xvcjogIzAwMDsNCiAgYm9yZGVyLWNvbG9yOiAjMDAwOw0KfQ0KDQppbnB1dFt0eXBlPWJ1dHRvbl0uY2VudGVyew0KICBtYXJnaW4tcmlnaHQ6IGF1dG87DQogIG1hcmdpbi1sZWZ0OiBhdXRvOw0KICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDAwOw0KICBib3JkZXItY29sb3I6ICMwMDA7DQp9DQoNCi5wb2ludGVyIHsNCiAgY3Vyc29yOiBwb2ludGVyOw0KfQ0KDQoucG9pbnRlcjpob3ZlciB7DQogIGNvbG9yOiAjMDBFNkZGOw0KICBjdXJzb3I6IHBvaW50ZXI7DQp9DQoNCi5zb3J0VGhpcyB7DQogIGNvbG9yOiAjMDBFNkZGOw0KfQ0KDQoudzQwcHggew0KICBtYXgtd2lkdGg6IDQwcHg7DQp9DQoNCi53NTBweCB7DQogIG1heC13aWR0aDogNTBweDsNCn0NCg0KLnc4MHB4IHsNCiAgbWF4LXdpZHRoOiA4MHB4Ow0KfQ0KDQoudzE1MHB4IHsNCiAgbWF4LXdpZHRoOiAxNTBweDsNCn0NCg0KLncyMDBweCB7DQogIG1heC13aWR0aDogMjAwcHg7DQogIG1pbi13aWR0aDogMTAwcHg7DQogIHdpZHRoOiAyMDBweDsNCiAgb3ZlcmZsb3cteDogaGlkZGVuOw0KICB3aGl0ZS1zcGFjZTogbm93cmFwOw0KICBvdmVyZmxvdzogaGlkZGVuOw0KICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsNCn0NCg0KLnczMDBweCB7DQogIG1heC13aWR0aDogMzAwcHg7DQp9DQoNCi53MjIwcHggew0KICBtYXgtd2lkdGg6IDIyMHB4Ow0KICBjdXJzb3I6IGFsaWFzOw0KfQ0KDQouZm9vdGVyIHsNCiAgZm9udC1zaXplOiAxMHB4Ow0KfQ0KDQouY2VudGVyIHsNCiAgdGV4dC1hbGlnbjogY2VudGVyOw0KfQ0KDQouc2NyZWVuTG9nSGlkZGVuIHsNCiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMHB4LCAtMTEwcHgpOw0KfQ0KDQouYm9yZGVyU3BhY2Ugew0KICBtYXJnaW4tYm90dG9tOiAzMHB4Ow0KfQ0KDQouYmxvY2sgew0KDQp9DQoNCi5ub25lIHsNCiAgZGlzcGxheTogbm9uZTsNCn0NCg0KDQoubm90VmlzaWJsZSB7DQogIGhlaWdodDogMHB4Ow0KICBkaXNwbGF5OiBub25lOw0KICBvcGFjaXR5OiAwOw0KICBib3JkZXItYm90dG9tOiAjMDAwIHNvbGlkIDBweDsNCiAgDQp9DQoNCi52aXNpYmxlIHsNCiAgb3BhY2l0eTogMTsNCiAgZGlzcGxheTogYmxvY2s7DQogIGJvcmRlci1ib3R0b206ICM0NDQgc29saWQgMXB4OyANCiAgcGFkZGluZzogMTBweDsNCn0NCg0KLmZsb2F0UmlnaHQgew0KICBmbG9hdDogcmlnaHQ7DQp9DQoNCi5mbG9hdExlZnQgew0KICBmbG9hdDogbGVmdDsNCn0NCg0KLm1lbnUtYWN0aXZlIHsNCiAgYmFja2dyb3VuZC1jb2xvcjogIzAwRTZGRjsNCn0NCg0KLm1lbnUtbm90QWN0aXZlIHsNCiAgDQp9DQoNCiNicmFuY2ggew0KICBkaXNwbGF5OiB0YWJsZTsNCiAgbWFyZ2luOiBhdXRvOw0KICBjb2xvcjogcmVkOw0KfQ0KDQojaW50ZXJhY3Rpb24gew0KICBtYXJnaW4tYm90dG9tOiAxMDBweDsNCiAgdGV4dC1hbGlnbjogY2VudGVyOw0KICBib3JkZXItYm90dG9tOiBzb2xpZCAwcHggIzc3NzsNCn0NCg0KDQouaGFsZiB7DQogIGRpc3BsYXk6IGJsb2NrOw0KICB3aWR0aDogNDUlOw0KfQ0KDQoubWVudSB7DQogIGJvcmRlcjogc29saWQgMXB4ICMwMEU2RkY7DQp9DQoNCi5pbmZvTXNnIHsNCiAgY29sb3I6ICNhYWE7DQp9DQoNCi5lcnJvck1zZyB7DQogIGNvbG9yOiByZWQ7DQp9DQoNCi53YXJuaW5nTXNnIHsNCiAgY29sb3I6IHllbGxvdzsNCn0NCg0KLmRlYnVnTXNnIHsNCiAgY29sb3I6IG1hZ2VudGE7DQp9DQoNCi5OZXdzLCAuTW92aWUsIC5TZXJpZXMsIC5TcG9ydHMsIC5LaWRzIHsNCiAgYm9yZGVyLWxlZnQ6IHNvbGlkIDJweA0KfQ0KDQouTmV3cyB7DQogIGJvcmRlci1jb2xvcjogdG9tYXRvDQp9DQoNCi5Nb3ZpZSB7DQogIGJvcmRlci1jb2xvcjogcm95YWxibHVlOw0KfQ0KDQouU2VyaWVzIHsNCiAgYm9yZGVyLWNvbG9yOiBnb2xkOw0KfQ0KDQouU3BvcnRzIHsNCiAgYm9yZGVyLWNvbG9yOiB5ZWxsb3dncmVlbjsNCn0NCg0KLktpZHMgew0KICBib3JkZXItY29sb3I6IG1lZGl1bXB1cnBsZTsNCn0NCg0KLyogTG9hZGluZyAqLw0KI2xvYWRpbmcgew0KICBsZWZ0OiAwcHg7DQogIHRvcDogMHB4Ow0KICB6LWluZGV4OiAxMDAwMDsNCiAgcG9zaXRpb246IGFic29sdXRlOw0KICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsMCwwLCAwLjgpOw0KICBtYXJnaW46IGF1dG87DQogIHdpZHRoOiAxMDAlOw0KICBoZWlnaHQ6IDEwMCU7DQp9DQoNCg0KLmxvYWRlciB7DQogIGJvcmRlcjogNXB4IHNvbGlkIHRyYW5zcGFyZW50Ow0KICBib3JkZXItcmFkaXVzOiA1MCU7DQogIGJvcmRlci10b3A6IDVweCBzb2xpZCAjMDBFNkZGOw0KICBib3JkZXItYm90dG9tOiA1cHggc29saWQgIzAwRTZGRjsNCiAgd2lkdGg6IDUwcHg7DQogIGhlaWdodDogNTBweDsNCiAgLXdlYmtpdC1hbmltYXRpb246IHNwaW4gMS4ycyBsaW5lYXIgaW5maW5pdGU7DQogIGFuaW1hdGlvbjogc3BpbiAxLjJzIGxpbmVhciBpbmZpbml0ZTsNCg0KICBwb3NpdGlvbjogZml4ZWQ7DQogIG1hcmdpbjogYXV0bzsNCg0KICB0b3A6IDA7DQogIHJpZ2h0OiAwOw0KICBib3R0b206IDA7DQogIGxlZnQ6IDA7DQogIA0KfQ0KDQpALXdlYmtpdC1rZXlmcmFtZXMgc3BpbiB7DQogIDAlIHsgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTsgfQ0KICAxMDAlIHsgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpOyB9DQp9DQoNCkBrZXlmcmFtZXMgc3BpbiB7DQogIDAlIHsgdHJhbnNmb3JtOiByb3RhdGUoMGRlZyk7IH0NCiAgMTAwJSB7IHRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7IH0NCn0NCg==" - webUI["html/img/BC-QR.jpg"] = "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" - webUI["html/img/m3u.png"] = "iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAAAXNSR0IArs4c6QAAAAlwSFlzAAAsSwAALEsBpT2WqQAABCRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IlhNUCBDb3JlIDUuNC4wIj4KICAgPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIgogICAgICAgICAgICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgICAgICAgICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyI+CiAgICAgICAgIDx0aWZmOlJlc29sdXRpb25Vbml0PjI8L3RpZmY6UmVzb2x1dGlvblVuaXQ+CiAgICAgICAgIDx0aWZmOkNvbXByZXNzaW9uPjU8L3RpZmY6Q29tcHJlc3Npb24+CiAgICAgICAgIDx0aWZmOlhSZXNvbHV0aW9uPjI4ODwvdGlmZjpYUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6T3JpZW50YXRpb24+MTwvdGlmZjpPcmllbnRhdGlvbj4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+Mjg4PC90aWZmOllSZXNvbHV0aW9uPgogICAgICAgICA8ZXhpZjpQaXhlbFhEaW1lbnNpb24+NTA8L2V4aWY6UGl4ZWxYRGltZW5zaW9uPgogICAgICAgICA8ZXhpZjpDb2xvclNwYWNlPjE8L2V4aWY6Q29sb3JTcGFjZT4KICAgICAgICAgPGV4aWY6UGl4ZWxZRGltZW5zaW9uPjUwPC9leGlmOlBpeGVsWURpbWVuc2lvbj4KICAgICAgICAgPGRjOnN1YmplY3Q+CiAgICAgICAgICAgIDxyZGY6QmFnLz4KICAgICAgICAgPC9kYzpzdWJqZWN0PgogICAgICAgICA8eG1wOk1vZGlmeURhdGU+MjAxOC0wNy0yOFQxOTowNzozMTwveG1wOk1vZGlmeURhdGU+CiAgICAgICAgIDx4bXA6Q3JlYXRvclRvb2w+UGl4ZWxtYXRvciAzLjM8L3htcDpDcmVhdG9yVG9vbD4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgIDwvcmRmOlJERj4KPC94OnhtcG1ldGE+CumjVbcAAAGWSURBVGgF7VoxTgJRFGTFaGKBFnbEcABjb0fiBego7D2ABYmn8ARKRWFNQ6gx4QRQGWJJoY2VhXGdl7Dkh7Dsx3ns3yXvJ5P97L6d92bmhwYqlcWK43gK5L2enP51NP8F7pN721wPnOITZx9qG6HxI8QIZO+9XCHeL+VQKKm8QMyxb6+iCpH528AQYs58xIQWknV8mhDxCjEXWWJCC8maT55fAmOIudpUXAYhMn8dGEHMTZqYsgiR+U+BAcTcrhNTJiEy/xHQg5jOqpjD1RsBP3+id8u3P8TUoij6SuoLIwRDfWOofjLYtteyHa1UfcvvcUT1jqpGauVuHnyAdragjv/TAkley3uhj9Y5ZhDQa2+Olgmhz4IygSWibChNZ4nQFioTWCLKhtJ0lghtoTKBJaJsKE1nidAWKhNYIsqG0nSWCG2hMoElomwoTWeJ0BYqE1giyobSdJYIbaEygSWibChNZ4nQFioTWCLKhtJ0biJzmi1/guXMrpDn/OegO3bXMuAH0TtgAvwARV3y57Q34AGoJkL+AErKZ9cqbH7AAAAAAElFTkSuQmCC" - webUI["html/img/users.png"] = "iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAAAXNSR0IArs4c6QAAAAlwSFlzAAAsSwAALEsBpT2WqQAABCRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IlhNUCBDb3JlIDUuNC4wIj4KICAgPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIgogICAgICAgICAgICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgICAgICAgICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyI+CiAgICAgICAgIDx0aWZmOlJlc29sdXRpb25Vbml0PjI8L3RpZmY6UmVzb2x1dGlvblVuaXQ+CiAgICAgICAgIDx0aWZmOkNvbXByZXNzaW9uPjU8L3RpZmY6Q29tcHJlc3Npb24+CiAgICAgICAgIDx0aWZmOlhSZXNvbHV0aW9uPjI4ODwvdGlmZjpYUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6T3JpZW50YXRpb24+MTwvdGlmZjpPcmllbnRhdGlvbj4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+Mjg4PC90aWZmOllSZXNvbHV0aW9uPgogICAgICAgICA8ZXhpZjpQaXhlbFhEaW1lbnNpb24+NTA8L2V4aWY6UGl4ZWxYRGltZW5zaW9uPgogICAgICAgICA8ZXhpZjpDb2xvclNwYWNlPjE8L2V4aWY6Q29sb3JTcGFjZT4KICAgICAgICAgPGV4aWY6UGl4ZWxZRGltZW5zaW9uPjUwPC9leGlmOlBpeGVsWURpbWVuc2lvbj4KICAgICAgICAgPGRjOnN1YmplY3Q+CiAgICAgICAgICAgIDxyZGY6QmFnLz4KICAgICAgICAgPC9kYzpzdWJqZWN0PgogICAgICAgICA8eG1wOk1vZGlmeURhdGU+MjAxOC0wOC0zMFQxNzowODozODwveG1wOk1vZGlmeURhdGU+CiAgICAgICAgIDx4bXA6Q3JlYXRvclRvb2w+UGl4ZWxtYXRvciAzLjM8L3htcDpDcmVhdG9yVG9vbD4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgIDwvcmRmOlJERj4KPC94OnhtcG1ldGE+CjU01MMAAANJSURBVGgF1ZnLaxNRFMYz2rpoFbW+SCsihaJQRMT6rPhAXAq6c+HChSguRFd1oRtd+A/oWhQ3oiiWFB91UbqRqlXXgoIIQhFbQTTQao2/GzLDZEjIPefO7SQHPjJz55zzfd/MZCa5N8h5ilKptJvWp8FekAed4Bv4Cj6Dh2A4CIJZPpszMHEV2MQ0SZdB0DROENMHjoEzQBoFCpZnbgYR58E/qfpE/kv2F2dmBvJ94G9ClHb3SiZGUBuASa3qGnVzjG3RmFmkKYrVHGB7e2zfdbOdBhc1TVyNnNSQNqg5wVURf/FdjRxpIEpzuIOio9JCtRHO2hrINkgJLfPFt6vaCII2WYrSpPVJi1RGuBrmTbxeSibIX5j3CUauAfOo9BXzNH4nMJ5TXREI1gHzqPQVRtc2zCyxJdAaGbclcMj7zi/jOdt6rZFhCH7akijznknqVEY4U78heSAhUuTekNSojFQIChIiYe57TtZrSY2LkecQzUjIBLljglz3VJ4qg+AXSDNGabbWXZ2wA6Qjabqg136hhHK6y60V8o2EGyl8/qHHpKZPGkYeQzyvIa9RM86XvFhjvOGQsxGIp2B50ZDJLuG2XZqnLO5rM3viGh9o0OZJon1bRLxxdHLcns1jJiYOAu2U0D2P0uStMXJdcVU+UdMlZ/NYgaA28ERg5ge5/R4l6VsjrANMWJiZJWeXnqm60vnxW90ul6u8ByaS4zX2i+S+qjGuGkrdSEWFzT1vlhlSC19Gui0UtnNriSfi6vX1ZWRjPcLEeGrzYqkb4SyvQGxvQnC93cF6BzIfx8gpYBsfSdycuei4AAR1ggugCCRh1lbugIF4vwXbhtisjfSDc+ARSOOf4lv6mNWv1VIj1ouQNF9K851gDzArtWbV1uYxS5o4zB+sp+AuKPC+cVv5RXwPuATMmUpreY1Wopgh+ybYKj4dFHWB+8DMwTZTjCHmsJUhEgfAF9DMcQtx9V8dHMyDqWZ2ENM2FL8yVV92kkY56GM5Lc6Z1vY0jbp5EJQnuqPLg4kdLWTCnIxVIJoDi4wweNYcbbGIfuLEjRxqMRNGbvTvsmyE22oZg70taKQn1BxekXw40GKfK0O9oZHsJ8ZCRbLPaI3xP7YzeQoHxWckAAAAAElFTkSuQmCC" - webUI["html/index.html"] = "PCFkb2N0eXBlIGh0bWw+DQo8aHRtbD4NCiAgPGhlYWQ+DQogICAgPG1ldGEgY2hhcnNldD0idXRmLTgiPg0KICAgIDwhLS0tDQogICAgPG1ldGEgbmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9IndpZHRoPWRldmljZS13aWR0aCwgaW5pdGlhbC1zY2FsZT0xLjAiIC8+IA0KICAgIC0tPg0KICAgIDx0aXRsZT54VGVWZTwvdGl0bGU+DQogICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJjc3Mvc2NyZWVuLmNzcyIgdHlwZT0idGV4dC9jc3MiPg0KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iY3NzL2Jhc2UuY3NzIiB0eXBlPSJ0ZXh0L2NzcyI+DQoNCiAgICA8c2NyaXB0IGxhbmd1YWdlPSJqYXZhc2NyaXB0IiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ianMvbmV0d29ya190cy5qcyI+PC9zY3JpcHQ+DQogICAgPHNjcmlwdCBsYW5ndWFnZT0iamF2YXNjcmlwdCIgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9ImpzL21lbnVfdHMuanMiPjwvc2NyaXB0Pg0KICAgIDxzY3JpcHQgbGFuZ3VhZ2U9ImphdmFzY3JpcHQiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJqcy9zZXR0aW5nc190cy5qcyI+PC9zY3JpcHQ+DQogICAgPHNjcmlwdCBsYW5ndWFnZT0iamF2YXNjcmlwdCIgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9ImpzL2xvZ3NfdHMuanMiPjwvc2NyaXB0Pg0KICAgIDxzY3JpcHQgbGFuZ3VhZ2U9ImphdmFzY3JpcHQiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJqcy9iYXNlX3RzLmpzIj48L3NjcmlwdD4NCg0KICA8L2hlYWQ+DQoNCiAgICA8Ym9keSBvbmxvYWQ9ImphdmFzY3JpcHQ6IFBhZ2VSZWFkeSgpOyI+DQoNCiAgICAgIDxkaXYgaWQ9ImxvYWRpbmciIGNsYXNzPSJub25lIj4NCiAgICAgICAgPGRpdiBjbGFzcz0ibG9hZGVyIj48L2Rpdj4NCiAgICAgIDwvZGl2Pg0KDQogICAgICA8ZGl2IGlkPSJwb3B1cCIgY2xhc3M9Im5vbmUiPg0KICAgICAgICA8ZGl2IGlkPSJwb3B1cC1jdXN0b20iPjwvZGl2Pg0KICAgICAgPC9kaXY+DQoNCiAgICAgIDxkaXYgaWQ9ImxheW91dCI+DQoNCiAgICAgICAgPCEtLQ0KICAgICAgICA8ZGl2IGlkPSJub3RpZmljYXRpb24iPg0KICAgICAgICAgIDxkaXYgY2xhc3M9ImVsZW1lbnQiPg0KICAgICAgICAgICAgPGg1PlhFUEc8L2g1Pg0KICAgICAgICAgICAgPHByZT4xMS4wNS4yMDE5IC0gMjA6MjE8L3ByZT4NCiAgICAgICAgICAgIDxocj4NCiAgICAgICAgICAgIDxwPkhhbGxvIGRhcyBpc3QgZWluIFRlc3QuIFVuZCBub2NoIG1laHIgVGV4dC48L3A+DQogICAgICAgICAgPC9kaXY+DQogICAgICAgIDwvZGl2Pg0KICAgICAgLS0+DQoNCiAgICAgICAgPGRpdiBpZD0ibWVudS13cmFwcGVyIiBjbGFzcz0ibGF5b3V0LWxlZnQiPg0KICAgICAgICAgIDxkaXYgaWQ9ICJicmFuY2giPjwvZGl2Pg0KICAgICAgICAgIDxkaXYgaWQ9ImxvZ28iPjwvZGl2Pg0KICAgICAgICAgIDxuYXYgaWQ9Im1haW4tbWVudSI+PC9uYXY+DQogICAgICAgIDwvZGl2Pg0KDQogICAgICAgIDxkaXYgY2xhc3M9ImxheW91dC1yaWdodCI+DQoNCiAgICAgICAgICA8dGFibGUgaWQ9ImNsaWVudEluZm8iIGNsYXNzPSIiPg0KDQogICAgICAgICAgICA8dHI+DQogICAgICAgICAgICAgIDx0ZCBjbGFzcz0idGRLZXkiPnhUZVZlOjwvdGQ+DQogICAgICAgICAgICAgIDx0ZCBpZD0idmVyc2lvbiIgY2xhc3M9InRkVmFsIj4mbmJzcDs8L3RkPg0KICAgICAgICAgICAgICA8dGQgY2xhc3M9InRkS2V5Ij5PUzo8L3RkPg0KICAgICAgICAgICAgICA8dGQgaWQ9Im9zIiBjbGFzcz0idGRWYWwiPiZuYnNwOzwvdGQ+DQogICAgICAgICAgICAgIDx0ZCBjbGFzcz0idGRLZXkgcGhvbmUiPkRWUiBJUDo8L3RkPg0KICAgICAgICAgICAgICA8dGQgaWQ9IkRWUiIgY2xhc3M9InRkVmFsIHBob25lIj4mbmJzcDs8L3RkPg0KICAgICAgICAgICAgPC90cj4NCg0KICAgICAgICAgICAgPHRyPg0KICAgICAgICAgICAgICA8dGQgY2xhc3M9InRkS2V5Ij5VVUlEOjwvdGQ+DQogICAgICAgICAgICAgIDx0ZCBpZD0idXVpZCIgY2xhc3M9InRkVmFsIj4mbmJzcDs8L3RkPg0KICAgICAgICAgICAgICA8dGQgY2xhc3M9InRkS2V5Ij5BcmNoOjwvdGQ+DQogICAgICAgICAgICAgIDx0ZCBpZD0iYXJjaCIgY2xhc3M9InRkVmFsIj4mbmJzcDs8L3RkPg0KICAgICAgICAgICAgICA8dGQgY2xhc3M9InRkS2V5IHBob25lIj5NM1UgVVJMOjwvdGQ+DQogICAgICAgICAgICAgIDx0ZCBpZD0ibTN1LXVybCIgY2xhc3M9InRkVmFsIHBob25lIj4mbmJzcDs8L3RkPg0KICAgICAgICAgICAgPC90cj4NCg0KICAgICAgICAgICAgPHRyPg0KICAgICAgICAgICAgICA8dGQgY2xhc3M9InRkS2V5Ij5BdmFpbGFibGUgU3RyZWFtczo8L3RkPg0KICAgICAgICAgICAgICA8dGQgaWQ9InN0cmVhbXMiIGNsYXNzPSJ0ZFZhbCI+Jm5ic3A7PC90ZD4NCiAgICAgICAgICAgICAgPHRkIGNsYXNzPSJ0ZEtleSI+RVBHIFNvdXJjZTo8L3RkPg0KICAgICAgICAgICAgICA8dGQgaWQ9ImVwZ1NvdXJjZSIgY2xhc3M9InRkVmFsIj4mbmJzcDs8L3RkPg0KICAgICAgICAgICAgICA8dGQgY2xhc3M9InRkS2V5IHBob25lIj5YRVBHIFVSTDo8L3RkPg0KICAgICAgICAgICAgICA8dGQgaWQ9InhlcGctdXJsIiBjbGFzcz0idGRWYWwgcGhvbmUiPiZuYnNwOzwvdGQ+DQogICAgICAgICAgICA8L3RyPg0KDQogICAgICAgICAgICA8dHI+DQogICAgICAgICAgICAgIDx0ZCBjbGFzcz0idGRLZXkiPlhFUEcgQ2hhbm5lbHM6PC90ZD4NCiAgICAgICAgICAgICAgPHRkIGlkPSJ4ZXBnIiBjbGFzcz0idGRWYWwiPiZuYnNwOzwvdGQ+DQogICAgICAgICAgICAgIDx0ZCBjbGFzcz0idGRLZXkiPkVycm9yczo8L3RkPg0KICAgICAgICAgICAgICA8dGQgaWQ9ImVycm9ycyIgY2xhc3M9InRkVmFsIj4mbmJzcDs8L3RkPg0KICAgICAgICAgICAgICA8dGQgY2xhc3M9InRkS2V5Ij5XYXJuaW5nczo8L3RkPg0KICAgICAgICAgICAgICA8dGQgaWQ9Indhcm5pbmdzIiBjbGFzcz0idGRWYWwiPiZuYnNwOzwvdGQ+DQogICAgICAgICAgICA8L3RyPg0KDQogICAgICAgICAgPC90YWJsZT4NCiAgICAgICAgIA0KICAgICAgICAgIDxkaXYgaWQ9Im15U3RyZWFtc0JveCIgY2xhc3M9Im5vdFZpc2libGUiPg0KDQogICAgICAgICAgICA8ZGl2IGlkPSJhbGxTdHJlYW1zIj4NCiAgICAgICAgICAgICAgPHRhYmxlIGlkPSJhY3RpdmVTdHJlYW1zIj48L3RhYmxlPg0KICAgICAgICAgICAgICA8dGFibGUgaWQ9ImluYWN0aXZlU3RyZWFtcyI+PC90YWJsZT4NCiAgICAgICAgICAgIDwvZGl2Pg0KDQogICAgICAgICAgPC9kaXY+DQogICAgICAgICAgDQogICAgICAgICAgPGRpdiBpZD0iY29udGVudCIgY2xhc3M9IiI+PC9kaXY+DQogICAgICAgICAgICANCiAgICAgICAgPC9kaXY+DQoNCiAgICAgIDwvZGl2Pg0KICAgICAgDQogICAgPC9ib2R5Pg0KICAgIA0KPC9odG1sPg==" - webUI["html/login.html"] = "PCFkb2N0eXBlIGh0bWw+DQo8aHRtbD4NCiAgPGhlYWQ+DQogICAgPG1ldGEgY2hhcnNldD0idXRmLTgiPg0KICAgIDxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgsIGluaXRpYWwtc2NhbGU9MS4wIiAvPiANCiAgICA8dGl0bGU+eFRlVmU8L3RpdGxlPg0KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iY3NzL3NjcmVlbi5jc3MiIHR5cGU9InRleHQvY3NzIj4NCiAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9ImNzcy9iYXNlLmNzcyIgdHlwZT0idGV4dC9jc3MiPg0KICAgIDxzY3JpcHQgbGFuZ3VhZ2U9ImphdmFzY3JpcHQiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJqcy9uZXR3b3JrX3RzLmpzIj48L3NjcmlwdD4NCiAgICA8c2NyaXB0IGxhbmd1YWdlPSJqYXZhc2NyaXB0IiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ianMvYXV0aGVudGljYXRpb25fdHMuanMiPjwvc2NyaXB0Pg0KICA8L2hlYWQ+DQoNCiAgICA8Ym9keT4NCiAgICAgICAgICANCiAgICAgIDxkaXYgaWQ9ImhlYWRlciIgY2xhc3M9ImltZ0NlbnRlciI+PC9kaXY+DQoNCiAgICAgIDxkaXYgaWQ9ImJveCI+DQoNCiAgICAgICAgPGRpdiBpZD0iaGVhZGxpbmUiPg0KICAgICAgICAgIDxoMSBpZD0iaGVhZC10ZXh0IiBjbGFzcz0iY2VudGVyIj57ey5sb2dpbi5oZWFkbGluZX19PC9oMT4NCiAgICAgICAgPC9kaXY+DQoNCiAgICAgICAgPHAgaWQ9ImVyciIgY2xhc3M9ImVycm9yTXNnIGNlbnRlciI+e3suYXV0aGVudGljYXRpb25FcnJ9fTwvcD4NCg0KICAgICAgICA8ZGl2IGlkPSJjb250ZW50Ij4NCg0KICAgICAgICAgICAgPGZvcm0gaWQ9ImF1dGhlbnRpY2F0aW9uIiBhY3Rpb249IiIgbWV0aG9kPSJwb3N0Ij4NCg0KICAgICAgICAgICAgICA8aDU+e3subG9naW4udXNlcm5hbWUudGl0bGV9fTo8L2g1Pg0KICAgICAgICAgICAgICA8aW5wdXQgaWQ9InVzZXJuYW1lIiB0eXBlPSJ0ZXh0IiBuYW1lPSJ1c2VybmFtZSIgcGxhY2Vob2xkZXI9IlVzZXJuYW1lIiB2YWx1ZT0iIj4NCiAgICAgICAgICAgICAgPGg1Pnt7LmxvZ2luLnBhc3N3b3JkLnRpdGxlfX06PC9oNT4NCiAgICAgICAgICAgICAgPGlucHV0IGlkPSJwYXNzd29yZCIgdHlwZT0icGFzc3dvcmQiIG5hbWU9InBhc3N3b3JkIiBwbGFjZWhvbGRlcj0iUGFzc3dvcmQiIHZhbHVlPSIiPg0KDQogICAgICAgICAgICA8L2Zvcm0+DQoNCiAgICAgICAgPC9kaXY+DQoNCiAgICAgICAgPGRpdiBpZD0iYm94LWZvb3RlciI+DQogICAgICAgICAgPGlucHV0IGlkPSJzdWJtaXQiIGNsYXNzPSIiIHR5cGU9ImJ1dHRvbiIgdmFsdWU9Int7LmJ1dHRvbi5sb2dpbn19IiBvbmNsaWNrPSJqYXZhc2NyaXB0OiBsb2dpbigpOyI+DQogICAgICAgIDwvZGl2Pg0KICAgICAgICANCiAgICAgIDwvZGl2Pg0KDQogICAgPC9ib2R5Pg0KICAgIA0KPC9odG1sPg==" - webUI["html/img/stream-limit.jpg"] = "/9j/4AAQSkZJRgABAQAAAQABAAD/4gJoSUNDX1BST0ZJTEUAAQEAAAJYbGNtcwQwAABtbnRyUkdCIFhZWiAH4wAFABcAFgAuAAphY3NwQVBQTAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA9tYAAQAAAADTLWxjbXMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAtkZXNjAAABCAAAAEBjcHJ0AAABSAAAAE53dHB0AAABmAAAABRjaGFkAAABrAAAACxyWFlaAAAB2AAAABRiWFlaAAAB7AAAABRnWFlaAAACAAAAABRyVFJDAAACFAAAACBnVFJDAAACFAAAACBiVFJDAAACFAAAACBjaHJtAAACNAAAACRtbHVjAAAAAAAAAAEAAAAMZW5VUwAAACQAAAAcAHMAUgBHAEIAIABJAEUAQwA2ADEAOQA2ADYALQAyAC4AMQAAbWx1YwAAAAAAAAABAAAADGVuVVMAAAAyAAAAHABOAG8AIABjAG8AcAB5AHIAaQBnAGgAdAAsACAAdQBzAGUAIABmAHIAZQBlAGwAeQAAAABYWVogAAAAAAAA9tYAAQAAAADTLXNmMzIAAAAAAAEMSgAABeP///MqAAAHmwAA/Yf///ui///9owAAA9gAAMCUWFlaIAAAAAAAAG+UAAA47gAAA5BYWVogAAAAAAAAJJ0AAA+DAAC2vlhZWiAAAAAAAABipQAAt5AAABjecGFyYQAAAAAAAwAAAAJmZgAA8qcAAA1ZAAAT0AAACltjaHJtAAAAAAADAAAAAKPXAABUewAATM0AAJmaAAAmZgAAD1z/2wBDAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQH/2wBDAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQH/wAARCAQ4B4ADASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD/AD/6KKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigD9PvBf/AARa/wCCrXxF8HeE/iD4G/YM/aL8UeCfHfhrQvGXg/xNpHgia50nxF4W8T6Xa634f13TLkTgXGn6vpN9aahZTgAS21xFIAN1dL/w4o/4LB/9I7/2m/8AwgZ//kiv9b3/AIJp/wDKOX9gH/syf9lX/wBUV4Dr7YoA/wAWr/hxR/wWD/6R3/tN/wDhAz//ACRR/wAOKP8AgsH/ANI7/wBpv/wgZ/8A5Ir/AGlaKAP8Wr/hxR/wWD/6R3/tN/8AhAz/APyRR/w4o/4LB/8ASO/9pv8A8IGf/wCSK/2laKAP8Wr/AIcUf8Fg/wDpHf8AtN/+EDP/APJFH/Dij/gsH/0jv/ab/wDCBn/+SK/2laKAP8Wr/hxR/wAFg/8ApHf+03/4QM//AMkUf8OKP+Cwf/SO/wDab/8ACBn/APkiv9pWigD/ABav+HFH/BYP/pHf+03/AOEDP/8AJFH/AA4o/wCCwf8A0jv/AGm//CBn/wDkiv8AaVooA/xav+HFH/BYP/pHf+03/wCEDP8A/JFH/Dij/gsH/wBI7/2m/wDwgZ//AJIr/aVooA/xav8AhxR/wWD/AOkd/wC03/4QM/8A8kUf8OKP+Cwf/SO/9pv/AMIGf/5Ir/aVooA/xav+HFH/AAWD/wCkd/7Tf/hAz/8AyRR/w4o/4LB/9I7/ANpv/wAIGf8A+SK/2laKAP8AFq/4cUf8Fg/+kd/7Tf8A4QM//wAkUf8ADij/AILB/wDSO/8Aab/8IGf/AOSK/wBpWigD/Fq/4cUf8Fg/+kd/7Tf/AIQM/wD8kUf8OKP+Cwf/AEjv/ab/APCBn/8Akiv9pWigD/Fq/wCHFH/BYP8A6R3/ALTf/hAz/wDyRR/w4o/4LB/9I7/2m/8AwgZ//kiv9pWigD/E88f/APBGT/gqj8K/AnjT4nfEX9hL9ofwf8P/AIdeFPEPjnxz4t1zwTNaaL4X8IeE9Ju9d8SeIdXujORbaZo2j2F5qN9OQRDa20shB24r8yq/28f+Ctf/ACit/wCClX/ZhH7Xv/rP/wAQK/xDqACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooA+j/ANmj9kL9pr9snxbrvgL9lr4K+Ovjn408M+HH8X6/4Y+H2ljWdZ0vwvFqen6NLr1zYrNHMNMh1XVtL0+a7RWihu9RsoZSj3MIf7U/4cUf8Fg/+kd/7Tf/AIQM/wD8kV2v/BAD9sj/AIYi/wCCrf7K/wATNW1X+yvh98QPFw+AHxWklm+z6f8A8IJ8aWg8HjU9Xl3Ls0rwd4wufCPxAuz82B4RQlJACjf7MFAH+LV/w4o/4LB/9I7/ANpv/wAIGf8A+SKP+HFH/BYP/pHf+03/AOEDP/8AJFf7StFAH+LV/wAOKP8AgsH/ANI7/wBpv/wgZ/8A5Io/4cUf8Fg/+kd/7Tf/AIQM/wD8kV/tK0UAf4tX/Dij/gsH/wBI7/2m/wDwgZ//AJIo/wCHFH/BYP8A6R3/ALTf/hAz/wDyRX+0rRQB/gx/HT4CfGb9mT4n+Ivgt+0B8NfFnwj+K3hJNHl8SeA/G2lzaP4i0iLxBomneI9Emu7KbJWLU9C1bTtTs5UZ45rW7idWySB5HX9yX/B69+yL/wAIr8eP2V/22/D2meXpfxb8Da18BfiPd2sOy3i8afDG9k8U+BdR1OXbiXVPFHg/xZrukWzB2P8AZnw0jjZIxEjS/wANtABRRRQAUUUUAFFFFABRRRQAUUUUAPRHldIokeSSR1SONFLu7uQqIiKCzOzEKqqCWJAAJNfq8n/BCv8A4LBSIki/8E7/ANp3a6q67vh/dI21gGG5HnV0bB5V1VlPDAEEVv8A/BBj9kX/AIbU/wCCrf7Ivwo1PTP7T8DeGPiFb/Gz4nRTQ+fpzeAvgpE3xDv9L1hQrEaZ4w1nRdD8BSkAFp/FdvH5kO/zo/8AZ4oA/wAWr/hxR/wWD/6R3/tN/wDhAz//ACRR/wAOKP8AgsH/ANI7/wBpv/wgZ/8A5Ir/AGlaKAP8Wr/hxR/wWD/6R3/tN/8AhAz/APyRR/w4o/4LB/8ASO/9pv8A8IGf/wCSK/2laKAP8Wr/AIcUf8Fg/wDpHf8AtN/+EDP/APJFH/Dij/gsH/0jv/ab/wDCBn/+SK/2laKAP8Kz9p39iX9rL9i7UfCOkftV/AT4ifAfVPHtlq+o+DtO+IejjRb3xDp+gz2Ntq97p1s00k0lrY3GpWUEs7IkbSz+XGztHKI/lqv6F/8Ag5+/bI/4a5/4K2/HDTNF1X+0fh7+y5aaZ+y74KEU261GofDq61K8+KVz5UbG3N0fi9r3jnSTexl5bzSdE0USybLeCGD+eigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigD/cg/4Jp/8o5f2Af+zJ/2Vf8A1RXgOvtivif/AIJp/wDKOX9gH/syf9lX/wBUV4Dr7YoAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigD8+P8AgrX/AMorf+ClX/ZhH7Xv/rP/AMQK/wAQ6v8Abx/4K1/8orf+ClX/AGYR+17/AOs//ECv8Q6gAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAHI7xOkkbtHJGyvHIjFHR0IZXRlIZWVgGVlIIIBBBFf7Z//BIH9sRP28f+Cbv7J37St5qS6n4x8VfC/TPDXxTmMqvc/wDC3PhxNcfD/wCJdxdQ5Mtp/bPi7w3qfiLT7e4zK2jazplyHnhuIrib/Eur/QW/4Mm/2yPteh/tZfsE+JNV3T6PeaT+1D8KNPml3yNp2pDRvht8YrW381t0NrYahB8JtRtLK33Rtda5r980cUjzyzgH98VFFFABRRRQAUUUUAfhR/wcifsif8Ngf8Eif2ndD0vTP7T8dfAvSbH9p74ehYvPuINW+DCXur+MUs4FUzXF/qvwjvfiRoFhb25E819q9skazn/R5v8AHer/AH6NW0rTdd0rU9D1mxtdU0fWdPvNK1bTL6FLmy1HTdRtpLS+sby3kDRz2t3azS29xDIrJLFI6OCrEV/hv/8ABQv9lrUv2J/23/2ov2V9Riuo4Pgv8Y/GHhbwzPe7/tWqeAJdQbWfhrr83mfPu8R/D7VPDOvjcWO3Uh88n32APjeiiigAooooAKKKKACiiigAooooA/0D/wDgyU/ZE+z6T+19+3Xr+mYl1G70D9lz4Y6lJFtdbSwTSfif8YfKaRd0lvd3Vz8HreC4g2xifS9VtneSRHSD++mvyl/4Ih/sif8ADEf/AAS3/ZB+B2o6X/ZXjV/hhYfE/wCKEEsPlahH8S/jDNN8SfFmmaq21WnvfCl14ki8EpKw+Ww8M2MCExQxmv1aoAKKKKACiiigAr5A/b+/ao0X9iP9iv8AaZ/as1xrRk+Cfwi8V+LdCsr5gtrrfjk2R0j4c+GZWLKF/wCEq8f6n4a8NodwxJqqdeh+v6/ib/4PTP2yP+EA/Za/Z5/Yk8N6r5WvftCfEG7+LPxGtLWb98nww+Dogh8OaVqtvuA+weKviT4g03W9Nk2uWvvhfdrujEZEoB/nB+IfEGteLPEGueKvEup3eteIvE2san4g1/WL+Uz32ra1rN7PqOq6nezNzNd399cz3VzKeZJpXc8mseiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigD/cg/4Jp/8AKOX9gH/syf8AZV/9UV4Dr7Yr4n/4Jp/8o5f2Af8Asyf9lX/1RXgOvtigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAPz4/4K1/8orf+ClX/AGYR+17/AOs//ECv8Q6v9vH/AIK1/wDKK3/gpV/2YR+17/6z/wDECv8AEOoAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAr9V/+CJP7ZH/DCn/BT39k348anqv9leA2+Itp8Mvi1NNN5Onp8LPi3FJ8P/F+qaou5RPaeEbfXYPHcMLMB/aXhXT5R80Sg/lRRQB/v8UV+TP/AAQ5/bI/4bo/4JdfsnfG7VNV/tXx9p/w+tfhN8WpZZvO1Fvid8IJG8A+JNV1f5m8u/8AGUWi6d8QFjDECx8W2TgRh/LT9ZqACiiigAooooAK/wA07/g9I/ZE/wCFcftj/AD9sXQNM8jQP2lfhZdfD7xtd28O5H+KPwOnsbO31HUp1A8q41z4a+KvBmkaXDN808HgPUnhZ1tplh/0sa/nd/4Oi/2RP+Gq/wDgkT8cNZ0fS/7R8dfsuapoP7T/AITMUO64TS/ACahpXxSVp0Bnjsbf4ReJvHOuz26hoLi+0HS2nQG3iuLcA/yKaKKKACiiigAooooAKKKKACv02/4I3fsi/wDDcf8AwUy/ZC/Z3vtM/tXwfr3xX0nxh8TrWSLfaS/Cr4XQ3PxJ+IlleyMGhto9d8L+FtQ8NWk04MbaprWn2yxzz3EUEv5k1/eL/wAGTH7In9reP/2uf259f0zdZ+D9A0H9mf4Z6hND5sEmveK7jTviL8VprV3Gy21LQ9E0b4YWSTwlp207xnqVsWhgnkS5AP8AQzooooAKKKKACiiigAr/AB3f+DkD9sj/AIbN/wCCtf7SWvaRqv8Aanw9+BGpWv7MPw1aOf7RaJovwcudR0zxfd2E6MYLnT9d+LV/8RfEWm3dsPJuNM1axZJJ1VbiX/Ux/wCCnv7XVn+wl+wF+1T+1TLdW1trXws+E2vXHgJbsRtBe/FTxOYPBnwo02aKQMJbe/8AiN4h8MW16qxysti9zN5UixMp/wAQK+vr3U7281LUru5v9R1C6uL6/vryaS5u729u5XuLq7uriZnlnubieR5p5pXaSWV2d2ZmJIBVooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooA/sa/Z9/4PGv2mv2ffgJ8EPgJo37HXwJ8QaP8EPhD8NfhDpOv6n43+IFtqWt6b8NfBmi+DLHV9Qt7QfZbe+1K10WK9u4bb/R4riaSOH92q169/xG8ftWf9GRfs9/+F98R/8ACv4h6KAP7eP+I3j9qz/oyL9nv/wvviP/AIUf8RvH7Vn/AEZF+z3/AOF98R/8K/iHooA/t4/4jeP2rP8AoyL9nv8A8L74j/4Uf8RvH7Vn/RkX7Pf/AIX3xH/wr+IeigD+3j/iN4/as/6Mi/Z7/wDC++I/+FH/ABG8ftWf9GRfs9/+F98R/wDCv4h6KAP9GT/gmX/wdhftE/t2/t3fs3/skeLv2T/gt4E8N/G/xpf+F9W8XeHPGPjnUNb0O3tPCviHxCt1p9lqY+wXEzzaNFbslz8gimkYfOq1/cpX+NT/AMG73/KaX9gD/srmtf8AqtPHVf7K1ABRRRQAUUUUAFFFFAH8KH/BRT/g7X/aN/Yq/bf/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WOj6BoOn3Gq6xql5Jg+Xaafp1pcXdw+DshhdsHGKAP8AN2/4PR/2yP8AhY37XHwD/Yq8N6r53h/9m34dT/Er4g2dtNiP/hanxqFlcaTpmqW4Yh7rw38MdB8M6zpUzhWitviTqKICJmJ/itr6y/bt/ah179tX9sf9pP8Aaq8RG6juvjh8XfF/jbS7C9fzLjQfCN1qUln4D8LF98m6Lwl4IsvD/hm2Jkc/ZtJiBdj8x+TaACiiigAooooAK/2Hv+DZvSf7G/4Id/sIWe3Z53hv40atjGM/29+0r8Ztc3f8D/tHfnvuzzmv8eGv9kD/AINw7+HUv+CJ37A1xAqqkfw58c2DBOhm0r40fEvTLhj/ALb3FnKz/wC2WoA/biiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAr/JJ/4Ow/+U2X7Q//AGTv9nj/ANUr4Nr/AFtq/wAkn/g7D/5TZftD/wDZO/2eP/VK+DaAP5vaKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKK6vwJ4G8W/E3xn4X+HngLQdQ8UeNPGmu6b4a8L+HtLi86/1fWtXuo7OwsrdCVRTLPKoeaZ47e3iD3FzLFBFJIt06dSrUhSpQnUq1Zwp06dOMp1KlSpOMKdOEIKUpznOcIQhGMpSlKMYpuST58Xi8LgMJisfjsTh8FgcDhsRjcbjcXXpYXCYPB4OhWxWLxeKxOIqUaGHw2Fw2GxGIxGIr1aVGhQoVq1WpTp0pzj9Y/sAfsT+O/27/wBofw38HvC32vSfCtqY/EXxU8cx2/nWvgfwDZ3MMep6gDIpgm13VHkTR/C2myZ+361dwPcCLSrTVL2z/wBHr4T/AAs8CfBD4beC/hL8MtAtPDHgPwBoNl4c8NaJZj5LWwskOZriZv3t7qV/cvPqOr6ndNJe6rqt3ealfTTXl1PM/wAbf8E1f2DPCX7Av7PGk/D61Gn6v8U/Fn2LxP8AGjxtaR5PiDxe1qVj0fTbmVEuT4T8HQzzaP4at5FgWbdqWvyWVpqXiDUoq/Quv748IfDqHA+R/WcfSg+JM4p0quZ1GoylgaGlTD5TSmr2VByVXGyhLlrY5yV50sJRv/yN/tFvpm4r6U/im8j4Sx2Ih4KeHGNx2X8EYWMqtGlxVm154LN/ELH4eXs3KebRoywPDNHEUvaZZwvToVPZ0MdxBmKplFFFfrp/nWFFFFABRRRQAUUUUAMliinikhmjSaGZHililRZIpYpFKSRyRuCro6kq6MCrKSCCCRX8Dv8AwWl/4Juy/sYfGn/hafww0SSH9m340ave3fhqK0hY2Pw18czLNqOtfDedkBjtdKmjW51vwJ5vlGXQk1DRIluJPCl3fXX98teH/tH/ALPnw4/am+C3jv4F/FbSv7T8H+O9IksJ5ohENT0LVIWFzonifQbiVJFs9e8O6pFa6rpdwySQm4thb3kNzYz3VrP+eeJXAmF494dq4G1Olm+C9pi8kxs0l7HGKDUsNVmk5LB4+MY4fErVU5Ohioxc8M+f+x/oQ/Sxz36JfjJl/Faljcw8O+JnhOH/ABQ4Zw8pT/tLhyeKUqOd5fhpVIUnxJwnXr1c4yap+7ni6Mc3yKrWjhs6pvDf5a9FfSn7W/7LnxH/AGOfjz44+A3xOtSNY8LXvnaJr0FvLBpPjXwhfvLJ4c8Z6E0hffpmt2Sb3hEssulanDqOh37Jqel3sMXzXX+eeMweKy/F4nAY2hUwuMwderhcVh60XCrQr0Jyp1ac4vaUZxeqbjKLhOEpQnCc/wDsf4b4jyLjDh7I+K+F81wWe8N8S5Tl+eZFnOXVo4jA5nlOaYWljMDjcNVj8VOtQrRbjONOrRqwr4bEUaGJwuKw+HKKKK5j2gooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAP2i/4N3v+U0v7AH/AGVzWv8A1Wnjqv8AZWr/ABqf+Dd7/lNL+wB/2VzWv/VaeOq/2VqACiiigAooooAKKKKAP8Xn/gvT/wApi/8AgoZ/2cZ4p/8ASPS6/I2v1y/4L0/8pi/+Chn/AGcZ4p/9I9Lr8jaACiiigAooooAKKKKACvZP2dfE1r4K/aC+BXjK+nFrY+EvjJ8MfE15cscLbWug+NtE1W4nJyMCGG0eQnIwF6143RQB/v8AFFeD/ssfEkfGb9mL9nL4wLci8X4rfAf4Q/ElbsOJBdDx18PvD3igXIkBIkE41TzQ4JDBtwJzXvFABRRRQAUUUUAfMf7avx28Rfsu/sg/tOftK+FPCVh481/9n/4E/FH4z2Pg3U9SudHsPEi/DPwdq/jK80m61Sztb66sY7qw0e6T7RBZ3MkZwVhc8V/CP/xHCfHP/owD4T/+Hx8Yf/MDX9//AMdvhdp3xw+CHxk+CusSLFpHxf8AhV8Q/hdqkrhmSPTviB4R1fwnfSOFBYqltq0rMFBYgEAE1/g6+I/D+seEvEOveFfENjPpev8AhnWdU8P65plypS507WNGvp9O1OxuEPKT2l7bT28qnlZI2B6UAf3F/wDEcJ8c/wDowD4T/wDh8fGH/wAwNH/EcJ8c/wDowD4T/wDh8fGH/wAwNfwt0UAf3Sf8Rwnxz/6MA+E//h8fGH/zA0f8Rwnxz/6MA+E//h8fGH/zA1/C3RQB/dJ/xHCfHP8A6MA+E/8A4fHxh/8AMDR/xHCfHP8A6MA+E/8A4fHxh/8AMDX8LdFAH90n/EcJ8c/+jAPhP/4fHxh/8wNH/EcJ8c/+jAPhP/4fHxh/8wNfwt0UAf3Sf8Rwnxz/AOjAPhP/AOHx8Yf/ADA0f8Rwnxz/AOjAPhP/AOHx8Yf/ADA1/C3RQB/dJ/xHCfHP/owD4T/+Hx8Yf/MDR/xHCfHP/owD4T/+Hx8Yf/MDX8LdFAH90n/EcJ8c/wDowD4T/wDh8fGH/wAwNZWvf8Ht/wAcNd0PWdEk/YF+FNumsaVqOlPcJ8b/ABfI8CahZzWjTKjeA1DtEJi6oWUMVAJAOa/hwooAKKKKACiiigAooooAK/1Uf+DQ/wDbI/4aJ/4Jhn4C6/qv23x5+xl8RdX+GjwTzefqEnwr8eS3vxA+F+p3LFiyWsF3feOfA2kQlVEGmeAbeJCyoMf5V1f1J/8ABo7+2R/wzf8A8FR9P+CfiDVfsPgH9sr4f618JLqK4m8nTofib4WSfx98KtVnwR5moXNxpPij4f6PHtcPe/EUIVUsJYwD/VlooooAKKKKACiiigD8jf2xP+CYHhL9qb/go9/wTa/bm1KHSs/sZX3xcm8aWFyE+3eLY77w8usfAxoWdWJ/4Vr8Wftvi21WMqwl1S4LAr88f65UUUAFFFFABRRRQAV/Ot/wdHftkf8ADJf/AASU+Mnh7Q9V/s74hftWappX7MXhFYZ9t2ND8c2+oar8WLtoEZZ30+T4T+H/ABh4bnukKQ2mp+KNGWZy1zDb3H9FNf5jP/B5b+2R/wALg/by+Fn7Ivh7VftPhT9kf4YRan4qs4Zv3afGH44w6R4t1iG5SJjFcf2X8M9M+FxspJi01jdazr9siQedOZwD+O2iiigAooooAKKKKACv9er/AINaPE1p4i/4Ic/sc2sM4mvPCuoftD+GdVUHJt7uH9pn4v6xZwNySCND1rSJQD/DKpAwRX+QrX+od/wZifElfFf/AAS5+KngK4uQ9/8ACv8Aa9+Ien29pvDNb+HPF3w5+E/ivTp9ud0aXWv3vi1FG0KzWsjKzMXCAH9dVFFFABRRRQAUUUUAfwxft6f8Hc/xy/Yu/bN/aX/ZUj/Yh+Gfi6z+A/xe8X/DvSvFWo/GDxVpF/4l0PRdRddB1+90u38FXlvp91rGjSWOoT2kF3cwwSXDRxTyxqrn5I/4jhPjn/0YB8J//D4+MP8A5ga/JL/g6w+Bs/wa/wCCzvx811LSW00X49+CPg/8cNAV0ZY5otT8C6f8PPEl1BIwAmS68efDjxbcOy5WOaWW3z+5xX85FAH90n/EcJ8c/wDowD4T/wDh8fGH/wAwNH/EcJ8c/wDowD4T/wDh8fGH/wAwNfwt0UAf3Sf8Rwnxz/6MA+E//h8fGH/zA0f8Rwnxz/6MA+E//h8fGH/zA1/C3RQB/dJ/xHCfHP8A6MA+E/8A4fHxh/8AMDR/xHCfHP8A6MA+E/8A4fHxh/8AMDX8LdFAH90n/EcJ8c/+jAPhP/4fHxh/8wNH/EcJ8c/+jAPhP/4fHxh/8wNfwt0UAf3Sf8Rwnxz/AOjAPhP/AOHx8Yf/ADA0f8Rwnxz/AOjAPhP/AOHx8Yf/ADA1/C3RQB/dJ/xHCfHP/owD4T/+Hx8Yf/MDR/xHCfHP/owD4T/+Hx8Yf/MDX8LdFAH90n/EcJ8c/wDowD4T/wDh8fGH/wAwNfyx/wDBUP8Ab/8AEP8AwU4/bG8fftgeKPhvo3wm1nx5oHgLQbjwToPiC98T6Zp0fgTwfpHhC3uYdY1DTdKup31GHSUvZo3so1glmaFGkRA5/PeigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAr+z7/ggp/wTT/4VH4Psf20vjV4f8r4n/ELRXX4K+HtVtsXPgT4d6zbFJvGk8E6brXxN8QbCXZpbIqz6X4Hn/17P4t1GysPyI/4Ip/8E13/AGxfjB/wuX4r6G837N3wa1q0m1S1voD9h+KPxAtlg1HSvAMXmL5V3oOmRyWmt+O8ear6bNpfh14h/wAJK95p/wDedHGkSJFEiRxxoscccahEjRAFRERQFVFUBVVQAoAAAAr+o/AXw29vUpcdZ3h/3FGclw3ha0NK1eDlTq5zOE1rTw8lOjlzaaniFXxkbxw+Hkf4Nfta/psf2Tg8d9FLwvzi2aZlh6E/GrPctxHv5dleIhRxeC8NsPiKFS8Mbm1KWFzPjSMKkZ4bKJZTw5VUKub5vRT6KKK/rU/55AooooAKKKr3d3a2Frc319c29lY2VvNd3l5dzR21raWttG01xc3NxMyQwW8EKPLNNK6RxRozuyqpIG0k22kkm220kkk2222kkkm220kk22km04xlOUYQjKc5yjCEIRlOc5zlGMIQhGMpSnKUoxjGMZSlKUYxjKUoxlYoqlpuo6frGn2Gr6TfWeqaVqlla6jpmp6fcw3un6jp99AlzZX1jeWzyW93Z3dtLHcW1zBJJDPDIksTsjqxu0k1JKUWnFpNNNNNNJppptNNNNNNpppptNNucJ0pzp1ITp1Kc506lOpCdOpTqU5zp1KdSnUjCpTqU6lOdOpTqQhOE4ThOEJwnCBRRRTJCiiigD8if+Cvv/BOiw/bq+A0ms+CNNtIv2i/hFZalrXwv1HENtN4u00p9q1z4X6pdvsRrXxCIRc+Gp7yRIdI8Vw2j/arDS9W8QPcf59Ooaff6Tf32larZXem6npl5c6fqWnX9vNZ31hf2Uz215ZXtpcJHPa3drcRyQXNvPGk0E0bxSIrqyj/AFjK/kJ/4L+/8E2P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/DSP/BUjUvgr4f1X7d4A/Y18AaL8IbSK3m87TpviZ4mSHx78VtVhBYmPULa61fw18PtYjCoEvPh1sCsVMsoB/LfRRRQAUUUUAFFFFABRRRQAUUUUAFf6lH/BsR/wW/h/bw+Ddn+xj+0n4qib9sH4C+E7ePwt4i1m7Vb/APaF+D2gQwWFp4kW4nYPqXxM8BWv2TS/H9u5k1LxFpA03x8kmp3U3jWXRP8ALXr0j4P/ABg+J3wA+J/gf4z/AAY8b6/8OPil8N/EFl4o8E+NvDF61jrWg61YMTFcW8oDxT288TzWWpabew3OmavplzeaVqtneabeXVrMAf72FFfzsf8ABCH/AIL2fCb/AIKr/DKw+GXxPvvDPwy/bk8CaKg8e/DJbqLTdK+K+nadbZuvil8HrW8nM9/pc8cL3fi7wbBJeav4DvTKZvtnhqfStbu/6J6ACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooA+HP8Agp3/AMo1v+Chf/Zjn7WX/qhPH9f4dVf7iv8AwU7/AOUa3/BQv/sxz9rL/wBUJ4/r/DqoAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKtWNje6ne2em6bZ3WoajqF1b2NhYWNvLd3t9e3cqQWtnaWsCST3N1czyRw29vCjyzSukcaM7AFpNtJJttpJJNtttJJJJtttpJJNttJJtpOZzhThKpUlGEIRlOc5yjCEIQjKc5znOUIQhCEJznOc4QhCE5znGMZSj7x+y5+zX8Sf2t/jj4G+BHwr0/7V4l8ZaksdzqVxHK2keFPDtpifxB4v8AEM0SsbbRPD+nCW8uiM3F5MLbStOjudV1CxtLj/SQ/ZX/AGZ/ht+yJ8DPA/wH+Flh9n8O+D9PAvtWniiTV/F3iW8CzeIfGHiGWIYuNZ1+/wB9zMNxgsLUWej6ctvpWm2FrB+fv/BHj/gnDZfs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FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF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FFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFAH//Z" - webUI["html/js/files.js"] = "ZnVuY3Rpb24gb3BlbkZpbGVzKGVsbSwgZmlsZVR5cGUpIHsNCiAgLy9kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic2V0dGluZ3MiKS5pbm5lckhUTUwgPSAiVGVzdCI7DQogIA0KICBjb2x1bW5Ub1NvcnQgPSAwOyANCiAgdmFyIG5ld0RpdiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzZXR0aW5ncyIpOw0KICANCiAgdmFyIG5ld0VudHJ5ID0gbmV3IE9iamVjdCgpOw0KICBuZXdFbnRyeVsiX2VsZW1lbnQiXSAgPSAiSFIiOw0KICBuZXdEaXYuYXBwZW5kQ2hpbGQoY3JlYXRlRWxlbWVudChuZXdFbnRyeSkpOw0KDQogIHZhciBuZXdFbnRyeSA9IG5ldyBPYmplY3QoKTsNCiAgbmV3RW50cnlbIl9lbGVtZW50Il0gID0gIklOUFVUIjsNCiAgbmV3RW50cnlbInR5cGUiXSA9ICJidXR0b24iOw0KICBuZXdFbnRyeVsiY2xhc3MiXSA9ICJidXR0b24iOw0KICBuZXdFbnRyeVsidmFsdWUiXSA9ICJOZXciOw0KICBuZXdFbnRyeVsib25jbGljayJdID0gJ2ZpbGVEZXRhaWwoIi0iLCAiJyArIGZpbGVUeXBlICsgJyIpJzsNCiAgbmV3RGl2LmFwcGVuZENoaWxkKGNyZWF0ZUVsZW1lbnQobmV3RW50cnkpKTsNCg0KICB2YXIgbmV3RW50cnkgPSBuZXcgT2JqZWN0KCk7DQogIG5ld0VudHJ5WyJfZWxlbWVudCJdICA9ICJJTlBVVCI7DQogIG5ld0VudHJ5WyJ0eXBlIl0gPSAiYnV0dG9uIjsNCiAgbmV3RW50cnlbImNsYXNzIl0gPSAiYnV0dG9uIjsNCiAgbmV3RW50cnlbInZhbHVlIl0gPSAiVXBkYXRlIjsNCiAgbmV3RW50cnlbIm9uY2xpY2siXSA9ICJmaWxlRGV0YWlsKDApIjsNCiAgLy9uZXdEaXYuYXBwZW5kQ2hpbGQoY3JlYXRlRWxlbWVudChuZXdFbnRyeSkpOw0KDQogIHZhciBkaXYgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic2V0dGluZ3MiKTsNCg0KICAgLy8gQnVpbGQgdGFibGUNCiAgdmFyIG5ld1RhYmxlID0gbmV3IE9iamVjdCgpOw0KICBuZXdUYWJsZVsiX2VsZW1lbnQiXSAgPSAiVEFCTEUiOw0KICBuZXdUYWJsZVsiaWQiXSAgICAgICAgPSAiaWRfbWFwcGluZyI7DQogIG5ld1RhYmxlWyJjbGFzcyJdICAgICA9ICJ0YWJsZS1tYXBwaW5nIjsNCiAgZGl2LmFwcGVuZENoaWxkKGNyZWF0ZUVsZW1lbnQobmV3VGFibGUpKTsNCg0KICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7IA0KICAgIGNyZWF0ZUZpbGVzVGFibGUoZmlsZVR5cGUpOyANCiAgfSwgMTApOw0KDQp9DQoNCmZ1bmN0aW9uIGNyZWF0ZUZpbGVzVGFibGUoZmlsZVR5cGUpIHsNCiAgdmFyIHRhYmxlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImlkX21hcHBpbmciKTsNCiAgdmFyIGF2YWlsYWJsZUZpbGVUeXBlcyA9IG5ldyBBcnJheSgpOw0KICANCiAgdGFibGUuaW5uZXJIVE1MID0gIiI7DQogIHZhciBuZXdUUiA9IG5ldyBPYmplY3QoKTsNCiAgbmV3VFJbIl9lbGVtZW50Il0gPSAiVFIiOw0KICBuZXdUUlsiY2xhc3MiXSAgICA9ICJ0YWJsZS1tYXBwaW5nLWhlYWRlciI7DQogIHRhYmxlLmFwcGVuZENoaWxkKGNyZWF0ZUVsZW1lbnQobmV3VFIpKTsNCg0KICB2YXIgdHIgPSB0YWJsZS5sYXN0Q2hpbGQ7DQoNCiAgc3dpdGNoKGZpbGVUeXBlKSB7DQogICAgY2FzZSAieG1sdHYiOiANCiAgICAgIGF2YWlsYWJsZUZpbGVUeXBlcyA9IG5ldyBBcnJheSgieG1sdHYiKTsgDQogICAgICB2YXIgdHJIZWFkbGluZXMgPSBuZXcgQXJyYXkoIkd1aWRlIiwgIkxhc3QgVXBkYXRlIiwgIkF2YWlsYWJpbGl0eSAlIiwgIkNoYW5uZWxzIiwgIlByb2dyYW1zIikNCiAgICAgIHZhciBjb21wYXRpYmlsaXR5S2V5cyA9IG5ldyBBcnJheSgieG1sdHYuY2hhbm5lbHMiLCAieG1sdHYucHJvZ3JhbXMiKQ0KICAgICAgYnJlYWs7DQoNCiAgICBjYXNlICJtM3UiOg0KICAgICAgYXZhaWxhYmxlRmlsZVR5cGVzID0gbmV3IEFycmF5KCJtM3UiLCAiaGRociIpOyANCiAgICAgIHZhciB0ckhlYWRsaW5lcyA9IG5ldyBBcnJheSgiUGxheWxpc3QiLCAiTGFzdCBVcGRhdGUiLCAiQXZhaWxhYmlsaXR5ICUiLCAiVHlwZSIsICJTdHJlYW1zIiwgImdyb3VwLXRpdGxlICUiLCAidHZnLWlkICUiLCAiVW5pcXVlIElEICUiKTsNCiAgICAgIHZhciBjb21wYXRpYmlsaXR5S2V5cyA9IG5ldyBBcnJheSgic3RyZWFtcyIsICJncm91cC50aXRsZSIsICJ0dmcuaWQiLCAic3RyZWFtLmlkIik7DQogICAgICBicmVhazsNCiAgfQ0KDQogIGZvciAodmFyIGkgPSAwOyBpIDwgdHJIZWFkbGluZXMubGVuZ3RoOyBpKyspIHsNCiAgICB2YXIgbmV3VEQgPSBuZXcgT2JqZWN0KCk7DQogICAgbmV3VERbIl9lbGVtZW50Il0gPSAiVEQiOw0KICAgIG5ld1REWyJfdGV4dCJdICAgID0gdHJIZWFkbGluZXNbaV07DQogICAgdHIuYXBwZW5kQ2hpbGQoY3JlYXRlRWxlbWVudChuZXdURCkpOw0KICB9DQogIA0KICBmb3IgKHZhciBpID0gMDsgaSA8IGF2YWlsYWJsZUZpbGVUeXBlcy5sZW5ndGg7IGkrKykgew0KICAgIA0KICAgIHZhciBmaWxlVHlwZSA9IGF2YWlsYWJsZUZpbGVUeXBlc1tpXQ0KDQogICAgdmFyIGRhdGEgPSBjb25maWdbImZpbGVzIl1bZmlsZVR5cGVdOw0KICAgIA0KICAgIHZhciBhbGxGaWxlcyA9IGdldE9iaktleXMoZGF0YSkNCiAgDQogICAgZm9yICh2YXIgZiA9IDA7IGYgPCBhbGxGaWxlcy5sZW5ndGg7IGYrKykgew0KICAgICAgdmFyIGVsbSAgICAgICAgICAgPSBkYXRhW2FsbEZpbGVzW2ZdXTsNCiAgICAgIHZhciB0YWJsZSAgICAgICAgID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImlkX21hcHBpbmciKTsNCiAgICAgIHZhciBmaWxlSUQgICAgICAgID0gZWxtWyJpZC5wcm92aWRlciJdOw0KICAgICAgdmFyIG5hbWUgICAgICAgICAgPSBlbG1bIm5hbWUiXTsNCiAgICAgIHZhciBsYXN0VXBkYXRlICAgID0gZWxtWyJsYXN0LnVwZGF0ZSJdOw0KICAgICAgdmFyIGF2YWlsYWJpbGl0eSAgPSBlbG1bInByb3ZpZGVyLmF2YWlsYWJpbGl0eSJdOw0KICAgICAgdmFyIHR5cGUgICAgICAgICAgPSBlbG1bInR5cGUiXS50b1VwcGVyQ2FzZSgpOw0KICAgICAgdmFyIGNvbXBhdGliaWxpdHkgPSBlbG1bImNvbXBhdGliaWxpdHkiXTsNCg0KICAgICAgLy8gQ3JlYXRlIFRSDQogICAgICB2YXIgbmV3VFIgPSBuZXcgT2JqZWN0KCk7DQogICAgICBuZXdUUlsiX2VsZW1lbnQiXSAgICAgICA9ICJUUiI7DQogICAgICBuZXdUUlsiY2xhc3MiXSAgICAgICAgICA9ICIiOw0KICAgICAgbmV3VFJbImlkIl0gICAgICAgICAgICAgPSBmaWxlSUQ7DQogICAgICBuZXdUUlsib25jbGljayJdICAgICAgICA9ICdqYXZhc2NyaXB0OiBmaWxlRGV0YWlsKCInICsgZmlsZUlEICsgJyIsIicgKyBmaWxlVHlwZSArICciKTsnOw0KICAgICAgdGFibGUuYXBwZW5kQ2hpbGQoY3JlYXRlRWxlbWVudChuZXdUUikpOw0KDQogICAgICB2YXIgdHIgPSB0YWJsZS5sYXN0Q2hpbGQ7DQoNCiAgICAgIC8vIENyZWF0ZSBmaWxlIG5hbWUgVEQNCiAgICAgIHZhciBuZXdURCA9IG5ldyBPYmplY3QoKTsNCiAgICAgIG5ld1REWyJfZWxlbWVudCJdID0gIlAiOw0KICAgICAgbmV3VERbIl90ZXh0Il0gICAgPSBuYW1lOw0KICAgICAgY3JlYXRlTmV3VEQobmV3VEQsIHRyKTsNCg0KICAgICAgLy8gQ3JlYXRlIGxhc3QgdXBkYXRlIFREDQogICAgICB2YXIgbmV3VEQgPSBuZXcgT2JqZWN0KCk7DQogICAgICBuZXdURFsiX2VsZW1lbnQiXSA9ICJQIjsNCiAgICAgIG5ld1REWyJfdGV4dCJdICAgID0gbGFzdFVwZGF0ZTsNCiAgICAgIGNyZWF0ZU5ld1REKG5ld1RELCB0cik7DQoNCiAgICAgIC8vIENyZWF0ZSBhdmFpbGFiaWxpdHkgVEQNCiAgICAgIHZhciBuZXdURCA9IG5ldyBPYmplY3QoKTsNCiAgICAgIG5ld1REWyJfZWxlbWVudCJdID0gIlAiOw0KICAgICAgbmV3VERbIl90ZXh0Il0gICAgPSBhdmFpbGFiaWxpdHk7DQogICAgICBjcmVhdGVOZXdURChuZXdURCwgdHIpOw0KDQogICAgICBpZiAoZmlsZVR5cGUgPT0gIm0zdSIgfHwgZmlsZVR5cGUgPT0gImhkaHIiKSB7DQoNCiAgICAgICAgLy8gQ3JlYXRlIFR5cGUgVEQNCiAgICAgICAgdmFyIG5ld1REID0gbmV3IE9iamVjdCgpOw0KICAgICAgICBuZXdURFsiX2VsZW1lbnQiXSA9ICJQIjsNCiAgICAgICAgbmV3VERbIl90ZXh0Il0gICAgPSB0eXBlOw0KICAgICAgICBjcmVhdGVOZXdURChuZXdURCwgdHIpOw0KICANCiAgICAgIH0NCiAgICAgIA0KICAgICAgLy8gQ3JlYXRlIGFsbCBjb21wYXRpYmlsaXR5IFREcw0KDQogICAgICBmb3IgKHZhciBqID0gMDsgaiA8IGNvbXBhdGliaWxpdHlLZXlzLmxlbmd0aDsgaisrKSB7DQogICAgICAgIHZhciBuZXdURCA9IG5ldyBPYmplY3QoKTsNCiAgICAgICAgbmV3VERbIl9lbGVtZW50Il0gPSAiUCI7DQogICAgICAgIG5ld1REWyJfdGV4dCJdICAgID0gY29tcGF0aWJpbGl0eVtjb21wYXRpYmlsaXR5S2V5c1tqXV07DQogICAgICAgIGNyZWF0ZU5ld1REKG5ld1RELCB0cik7DQogICAgICB9DQoNCiAgICB9DQoNCiAgfQ0KICANCiAgDQogIHNvcnRUYWJsZSgwKQ0KDQogIC8vIHVzYWdlIEluZm8gIA0KICB2YXIgZGl2ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNldHRpbmdzIik7DQogIHN3aXRjaChtZW51W2FjdGl2ZU1lbnUuaWRdLmhhc093blByb3BlcnR5KCJfdXNhZ2UiKSkgew0KICAgIGNhc2UgdHJ1ZTogDQogICAgICB2YXIgdXNhZ2VJdGVtID0gbmV3IE9iamVjdCgpOw0KICAgICAgdXNhZ2VJdGVtWyJfZWxlbWVudCJdID0gIlBSRSINCiAgICAgIHVzYWdlSXRlbVsiX3RleHQiXSAgICA9IG1lbnVbYWN0aXZlTWVudS5pZF1bIl91c2FnZSJdOw0KDQogICAgICB2YXIgbmV3SFIgPSBuZXcgT2JqZWN0KCk7DQogICAgICBuZXdIUlsiX2VsZW1lbnQiXSA9ICJIUiINCiAgICAgIGRpdi5hcHBlbmRDaGlsZChjcmVhdGVFbGVtZW50KG5ld0hSKSk7DQogICAgICBkaXYuYXBwZW5kQ2hpbGQoY3JlYXRlRWxlbWVudCh1c2FnZUl0ZW0pKTsNCiAgICAgIGJyZWFrOw0KICB9DQoNCiAgY2FsY3VsYXRlV3JhcHBlckhlaWdodCgpOw0KICByZXR1cm47DQp9DQoNCg0KZnVuY3Rpb24gZmlsZURldGFpbChmaWxlSUQsIGZpbGVUeXBlKSB7DQoNCiAgb3B0aW9uc1RleHQgID0gbmV3IEFycmF5KCJNM1UiLCAiSERIb21lUnVuIC0gW0V4cGVyaW1lbnRhbF0iKQ0KICBvcHRpb25zVmFsdWUgPSBuZXcgQXJyYXkoIm0zdSIsICJoZGhyIikNCg0KICBzd2l0Y2ggKGZpbGVUeXBlKSB7DQogICAgDQogICAgY2FzZSAibTN1IjogDQogICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibmFtZSIpLnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAiUGxheWxpc3QgbmFtZSIpOyANCiAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJkZXNjcmlwdGlvbiIpLnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAiRGVzY3JpcHRpb24gb2YgdGhpcyBwbGF5bGlzdCIpOyANCiAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJmaWxlLWRldGFpbC1oZWFkbGluZSIpLmlubmVySFRNTCA9ICJNM1UgUGxheWxpc3QiOyANCiAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJmaWxlLXBhdGgiKS5pbm5lckhUTUwgPSAiTTNVIEZpbGU6IjsgDQogICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZmlsZS5zb3VyY2UiKS5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgIkxvY2FsIG9yIHJlbW90ZSIpOw0KICAgICAgYnJlYWs7DQoNCiAgICBjYXNlICJoZGhyIjogDQogICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibmFtZSIpLnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAiSERIb21lUnVuIG5hbWUiKTsgDQogICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZGVzY3JpcHRpb24iKS5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgIkRlc2NyaXB0aW9uIG9mIHRoaXMgSERIb21lUnVuIHR1bmVyIik7IA0KICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImZpbGUtZGV0YWlsLWhlYWRsaW5lIikuaW5uZXJIVE1MID0gIkhESG9tZVJ1biI7IA0KICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImZpbGUtcGF0aCIpLmlubmVySFRNTCA9ICJIREhvbWVSdW4gSVA6IjsgDQogICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZmlsZS5zb3VyY2UiKS5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgIklQIGFkZHJlc3MgYW5kIHBvcnQgb2YgdGhlIHR1bmVyICgxOTIuMTY4LjEuMTA6NTAwNCkiKTsNCiAgICAgIGJyZWFrOw0KICAgIA0KICAgIGNhc2UgInhtbHR2IjogDQogICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibmFtZSIpLnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAiWE1MVFYgbmFtZSIpOyANCiAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJkZXNjcmlwdGlvbiIpLnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAiRGVzY3JpcHRpb24gb2YgdGhpcyBYTUxUViBmaWxlIik7IA0KICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImZpbGUtZGV0YWlsLWhlYWRsaW5lIikuaW5uZXJIVE1MID0gIlhNTFRWIEZpbGUiOyANCiAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJmaWxlLXBhdGgiKS5pbm5lckhUTUwgPSAiWE1MVFYgRmlsZToiOw0KICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImZpbGUuc291cmNlIikuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJMb2NhbCBvciByZW1vdGUiKTsNCg0KICAgICAgb3B0aW9uc1RleHQgID0gbmV3IEFycmF5KCJYTUxUViIpDQogICAgICBvcHRpb25zVmFsdWUgPSBuZXcgQXJyYXkoInhtbHR2IikNCiAgICAgIGJyZWFrOw0KICB9DQoNCiAgbW9kaWZ5T3B0aW9uKCJ0eXBlIiwgb3B0aW9uc1RleHQsIG9wdGlvbnNWYWx1ZSkNCiAgDQogIHNob3dQb3BVcEVsZW1lbnQoJ2ZpbGUtZGV0YWlsJyk7DQoNCiAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNhdmVGaWxlRGV0YWlsIikuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IHNhdmVGaWxlRGV0YWlsKCInICsgZmlsZUlEICsgJyIsIicgKyBmaWxlVHlwZSArICciLCBmYWxzZSknKTsNCiAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInVwZGF0ZUZpbGVEZXRhaWwiKS5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogdXBkYXRlRmlsZSgiJyArIGZpbGVJRCArICciLCInICsgZmlsZVR5cGUgKyAnIiwgZmFsc2UpJyk7DQogIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJkZWxldGVGaWxlRGV0YWlsIikuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IHNhdmVGaWxlRGV0YWlsKCInICsgZmlsZUlEICsgJyIsIicgKyBmaWxlVHlwZSArICciLCB0cnVlKScpOw0KDQogIHZhciBkYXRhID0gbmV3IE9iamVjdCgpOw0KDQogIHN3aXRjaChmaWxlSUQpIHsNCg0KICAgIGNhc2UgIi0iOiAvLyBOZXcgZmlsZQ0KICAgICAgZGF0YVsibmFtZSJdICAgICAgICA9ICIiOw0KICAgICAgZGF0YVsiZGVzY3JpcHRpb24iXSA9ICIiOw0KICAgICAgZGF0YVsiZmlsZS5zb3VyY2UiXSA9ICIiOw0KICAgICAgZGF0YVsidHlwZSJdID0gZmlsZVR5cGU7DQogICAgICANCiAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJkZWxldGVGaWxlRGV0YWlsIikuY2xhc3NOYW1lID0gImRlbGV0ZSI7DQogICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidHlwZSIpLnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiY2hhbmdlRmlsZVR5cGUodGhpcyk7IikNCiAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0eXBlIikuc2V0QXR0cmlidXRlKCJkYXRhLWlkIiwgZmlsZUlEKQ0KICAgICAgDQogICAgICBzaG93RWxlbWVudCgiZGVsZXRlRmlsZURldGFpbCIsIGZhbHNlKTsNCiAgICAgIHNob3dFbGVtZW50KCJ1cGRhdGVGaWxlRGV0YWlsIiwgZmFsc2UpOw0KICAgICAgDQogICAgICBpZiAoZmlsZVR5cGUgPT0gInhtbHR2Iikgew0KICAgICAgICBzaG93RWxlbWVudCgidHlwZSIsIGZhbHNlKTsNCiAgICAgICAgc2hvd0VsZW1lbnQoImZpbGUtdHlwZSIsIGZhbHNlKTsNCiAgICAgIH0gZWxzZSB7DQogICAgICAgIHNob3dFbGVtZW50KCJ0eXBlIiwgdHJ1ZSk7DQogICAgICAgIHNob3dFbGVtZW50KCJmaWxlLXR5cGUiLCB0cnVlKTsNCiAgICAgIH0NCiAgICAgIA0KICAgICAgYnJlYWs7DQoNCiAgICBkZWZhdWx0OiANCiAgICAgIGRhdGEgPSBjb25maWdbImZpbGVzIl1bZmlsZVR5cGVdW2ZpbGVJRF07DQogICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZGVsZXRlRmlsZURldGFpbCIpLmNsYXNzTmFtZSA9ICJkZWxldGUiOw0KICAgICAgDQogICAgICBzaG93RWxlbWVudCgidXBkYXRlRmlsZURldGFpbCIsIHRydWUpOw0KICAgICAgc2hvd0VsZW1lbnQoInR5cGUiLCBmYWxzZSk7DQogICAgICBzaG93RWxlbWVudCgiZmlsZS10eXBlIiwgZmFsc2UpOw0KICAgICAgDQogICAgICBicmVhazsNCg0KICB9DQoNCiAgdmFyIGtleXMgPSBnZXRPYmpLZXlzKGRhdGEpOw0KICANCiAgZm9yICh2YXIgaSA9IDA7IGkgPCBrZXlzLmxlbmd0aDsgaSsrKSB7DQoNCiAgICBpZihkb2N1bWVudC5nZXRFbGVtZW50QnlJZChrZXlzW2ldKSl7DQogICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChrZXlzW2ldKS52YWx1ZSA9IGRhdGFba2V5c1tpXV07DQogICAgfSANCg0KDQogIH0NCg0KfQ0KDQpmdW5jdGlvbiBjaGFuZ2VGaWxlVHlwZShlbG0pIHsNCg0KICB2YXIgZmlsZUlEID0gZWxtLmdldEF0dHJpYnV0ZSgiZGF0YS1pZCIpOw0KICB2YXIgZmlsZVR5cGUgPSBlbG0ub3B0aW9uc1tlbG0uc2VsZWN0ZWRJbmRleF0udmFsdWU7DQogIA0KICBmaWxlRGV0YWlsKGZpbGVJRCwgZmlsZVR5cGUpDQoNCn0NCg0KDQpmdW5jdGlvbiBzYXZlRmlsZURldGFpbChmaWxlSUQsIGZpbGVUeXBlLCBkZWxldGVGaWxlKSB7DQoNCiAgaWYgKGZpbGVJRCA9PSB1bmRlZmluZWQpIHsNCiAgICBhbGVydCgiSUQgaXMgbWlzc2luZyEhISIpOw0KICAgIHJldHVybiANCiAgfQ0KDQogIHZhciBpbnB1dHMgICAgICA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJmaWxlLWRldGFpbCIpLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJJTlBVVCIpOw0KICB2YXIgc2VsZWN0cyAgICAgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZmlsZS1kZXRhaWwiKS5nZXRFbGVtZW50c0J5VGFnTmFtZSgiU0VMRUNUIik7DQogIHZhciBuZXdGaWxlRGF0YSA9IG5ldyBPYmplY3QoKTsNCiAgdmFyIGRhdGEgICAgICAgID0gbmV3IE9iamVjdCgpOw0KDQogIGZvciAodmFyIGkgPSAwOyBpIDwgaW5wdXRzLmxlbmd0aDsgaSsrKSB7DQogICAgc3dpdGNoKGlucHV0c1tpXS50eXBlKSB7DQogICAgICBjYXNlICJ0ZXh0IjogbmV3RmlsZURhdGFbaW5wdXRzW2ldLm5hbWVdID0gaW5wdXRzW2ldLnZhbHVlOyBicmVhazsNCiAgICB9DQogIH0NCg0KICBmb3IgKHZhciBpID0gMDsgaSA8IHNlbGVjdHMubGVuZ3RoOyBpKyspIHsNCiAgICBuZXdGaWxlRGF0YVtzZWxlY3RzW2ldLmlkXSA9IHNlbGVjdHNbaV0ub3B0aW9uc1tzZWxlY3RzW2ldLnNlbGVjdGVkSW5kZXhdLnZhbHVlOw0KICB9DQoNCiAgaWYgKGRlbGV0ZUZpbGUgPT0gdHJ1ZSkgew0KICAgIHN3aXRjaChmaWxlVHlwZSkgew0KICAgICAgY2FzZSAibTN1IjogICB2YXIgYWxlcnRUZXh0ID0gIkRlbGV0ZSB0aGlzIHBsYXlsaXN0PyI7IGJyZWFrOw0KICAgICAgY2FzZSAiaGRociI6IHZhciBhbGVydFRleHQgPSAiRGVsZXRlIHRoaXMgSERIb21lUnVuIHR1bmVyPyI7IGJyZWFrOw0KICAgICAgY2FzZSAieG1sdHYiOiB2YXIgYWxlcnRUZXh0ID0gIkRlbGV0ZSB0aGlzIFhNTFRWIGZpbGU/IjsgYnJlYWs7DQogICAgfQ0KDQogICAgaWYgKGNvbmZpcm0oYWxlcnRUZXh0KSkgew0KICAgICAgbmV3RmlsZURhdGFbImRlbGV0ZSJdID0gdHJ1ZQ0KICAgICAgZGF0YSA9IGJ1aWxkRmlsZXNPYmooZmlsZVR5cGUsIGZpbGVJRCwgbmV3RmlsZURhdGEpOw0KICAgICAgY29uc29sZS5sb2coZGF0YSk7DQogICAgICANCiAgICB9IGVsc2Ugew0KICAgICAgc2hvd0VsZW1lbnQoInBvcHVwIiwgZmFsc2UpOw0KICAgICAgcmV0dXJuDQogICAgDQogICAgfQ0KDQogIH0gZWxzZSB7DQogIA0KICAgIHN3aXRjaChjb25maWdbImZpbGVzIl1bZmlsZVR5cGVdLmhhc093blByb3BlcnR5KGZpbGVJRCkpIHsNCg0KICAgICAgY2FzZSB0cnVlOiANCiAgICAgICAgZGF0YSA9IGNvbmZpZ1siZmlsZXMiXVtmaWxlVHlwZV1bZmlsZUlEXTsgDQogICAgICAgIGlmIChkYXRhWyJmaWxlLnNvdXJjZSJdICE9IG5ld0ZpbGVEYXRhWyJmaWxlLnNvdXJjZSJdKSB7DQogICAgICAgICAgZGF0YVsidXBkYXRlIl0gPSB0cnVlDQogICAgICAgIH0gZWxzZSB7DQogICAgICAgICAgZGF0YVsidXBkYXRlUGxheWxpc3ROYW1lIl0gPSB0cnVlOw0KICAgICAgICB9DQogICAgICAgIGJyZWFrOw0KICAgICAgDQogICAgICBjYXNlIGZhbHNlOiANCiAgICAgICAgbmV3RmlsZURhdGFbIm5ldyJdID0gdHJ1ZTsNCiAgICAgICAgZGF0YSA9IGJ1aWxkRmlsZXNPYmooZmlsZVR5cGUsIGZpbGVJRCwgbmV3RmlsZURhdGEpOw0KICAgICAgICBicmVhaw0KDQogICAgfQ0KICANCiAgfSAgDQogIA0KICBzd2l0Y2goZmlsZVR5cGUpIHsNCg0KICAgIGNhc2UgIm0zdSI6ICAgZGF0YVsiY21kIl0gPSAic2F2ZUZpbGVzTTNVIjsgYnJlYWs7DQogICAgY2FzZSAiaGRociI6ICBkYXRhWyJjbWQiXSA9ICJzYXZlRmlsZXNIREhSIjsgYnJlYWs7DQogICAgY2FzZSAieG1sdHYiOiBkYXRhWyJjbWQiXSA9ICJzYXZlRmlsZXNYTUxUViI7IGJyZWFrOw0KDQogIH0NCiAgLy9jb25zb2xlLmxvZyhkYXRhKTsNCiAgeFRlVmUoZGF0YSk7DQogIHJldHVybg0KfQ0KDQpmdW5jdGlvbiB1cGRhdGVGaWxlKGZpbGVJRCwgZmlsZVR5cGUsIGFsbEZpbGVzKSB7DQogIA0KICBzd2l0Y2goY29uZmlnWyJmaWxlcyJdW2ZpbGVUeXBlXS5oYXNPd25Qcm9wZXJ0eShmaWxlSUQpKSB7DQoNCiAgICBjYXNlIHRydWU6IA0KICAgIA0KICAgICAgdmFyIGRhdGEgPSBuZXcgT2JqZWN0KCk7DQogICAgICB2YXIgZGF0YSA9IGJ1aWxkRmlsZXNPYmooZmlsZVR5cGUsIGZpbGVJRCwgY29uZmlnWyJmaWxlcyJdW2ZpbGVUeXBlXVtmaWxlSURdKQ0KICAgICAgZGF0YVsibmV3Il0gPSB0cnVlDQoNCiAgICAgIHN3aXRjaChmaWxlVHlwZSkgew0KDQogICAgICAgIGNhc2UgIm0zdSI6ICAgZGF0YVsiY21kIl0gPSAidXBkYXRlRmlsZU0zVSI7IGJyZWFrOw0KICAgICAgICBjYXNlICJoZGhyIjogIGRhdGFbImNtZCJdID0gInVwZGF0ZUZpbGVIREhSIjsgYnJlYWs7DQogICAgICAgIGNhc2UgInhtbHR2IjogZGF0YVsiY21kIl0gPSAidXBkYXRlRmlsZVhNTFRWIjsgYnJlYWs7DQoNCiAgICAgIH0NCiAgICAgIA0KICAgICAgeFRlVmUoZGF0YSk7DQogICAgICANCiAgICAgIGJyZWFrOw0KICB9DQoNCn0NCg0KZnVuY3Rpb24gYnVpbGRGaWxlc09iaihmaWxlVHlwZSwgZmlsZUlELCBvYmopIHsNCg0KICB2YXIgZGF0YSA9IG5ldyBPYmplY3QoKTsNCiAgZGF0YVsiZmlsZXMiXSA9IG5ldyBPYmplY3QoKTsNCiAgZGF0YVsiZmlsZXMiXVtmaWxlVHlwZV0gPSBuZXcgT2JqZWN0KCk7DQogIGRhdGFbImZpbGVzIl1bZmlsZVR5cGVdW2ZpbGVJRF0gPSBvYmoNCiAgcmV0dXJuIGRhdGENCg0KfQ==" - webUI["html/js/logs_ts.js"] = "Y2xhc3MgTG9nIHsNCiAgICBjcmVhdGVMb2coZW50cnkpIHsNCiAgICAgICAgdmFyIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJQUkUiKTsNCiAgICAgICAgaWYgKGVudHJ5LmluZGV4T2YoIldBUk5JTkciKSAhPSAtMSkgew0KICAgICAgICAgICAgZWxlbWVudC5jbGFzc05hbWUgPSAid2FybmluZ01zZyI7DQogICAgICAgIH0NCiAgICAgICAgaWYgKGVudHJ5LmluZGV4T2YoIkVSUk9SIikgIT0gLTEpIHsNCiAgICAgICAgICAgIGVsZW1lbnQuY2xhc3NOYW1lID0gImVycm9yTXNnIjsNCiAgICAgICAgfQ0KICAgICAgICBpZiAoZW50cnkuaW5kZXhPZigiREVCVUciKSAhPSAtMSkgew0KICAgICAgICAgICAgZWxlbWVudC5jbGFzc05hbWUgPSAiZGVidWdNc2ciOw0KICAgICAgICB9DQogICAgICAgIGVsZW1lbnQuaW5uZXJIVE1MID0gZW50cnk7DQogICAgICAgIHJldHVybiBlbGVtZW50Ow0KICAgIH0NCn0NCmZ1bmN0aW9uIHNob3dMb2dzKGJvdHRvbSkgew0KICAgIHZhciBsb2cgPSBuZXcgTG9nKCk7DQogICAgdmFyIGxvZ3MgPSBTRVJWRVJbImxvZyJdWyJsb2ciXTsNCiAgICB2YXIgZGl2ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnRlbnRfbG9nIik7DQogICAgZGl2LmlubmVySFRNTCA9ICIiOw0KICAgIHZhciBrZXlzID0gZ2V0T2JqS2V5cyhsb2dzKTsNCiAgICBrZXlzLmZvckVhY2gobG9nSUQgPT4gew0KICAgICAgICB2YXIgZW50cnkgPSBsb2cuY3JlYXRlTG9nKGxvZ3NbbG9nSURdKTsNCiAgICAgICAgZGl2LmFwcGVuZChlbnRyeSk7DQogICAgfSk7DQogICAgc2V0VGltZW91dChmdW5jdGlvbiAoKSB7DQogICAgICAgIGlmIChib3R0b20gPT0gdHJ1ZSkgew0KICAgICAgICAgICAgdmFyIHdyYXBwZXIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYm94LXdyYXBwZXIiKTsNCiAgICAgICAgICAgIHdyYXBwZXIuc2Nyb2xsVG9wID0gd3JhcHBlci5zY3JvbGxIZWlnaHQ7DQogICAgICAgIH0NCiAgICB9LCAxMCk7DQp9DQpmdW5jdGlvbiByZXNldExvZ3MoKSB7DQogICAgdmFyIGNtZCA9ICJyZXNldExvZ3MiOw0KICAgIHZhciBkYXRhID0gbmV3IE9iamVjdCgpOw0KICAgIHZhciBzZXJ2ZXIgPSBuZXcgU2VydmVyKGNtZCk7DQogICAgc2VydmVyLnJlcXVlc3QoZGF0YSk7DQp9DQo=" - webUI["html/css/screen.css"] = "bmF2IGltZyB7DQogIGRpc3BsYXk6IGJsb2NrOw0KICBtYXgtaGVpZ2h0OiAyMHB4Ow0KICBtYXgtd2lkdGg6IDIwcHg7DQogIGZsb2F0OiBsZWZ0Ow0KfQ0KDQpuYXYgcCB7DQogIHRleHQtYWxpZ246IGxlZnQ7DQogIHBhZGRpbmc6IDBweCAzMHB4Ow0KfQ0KDQojbGF5b3V0IHsNCiAgZGlzcGxheTogYmxvY2s7DQogIGhlaWdodDogMTAwJTsNCn0NCg0KDQoubGF5b3V0LWxlZnQgew0KICBkaXNwbGF5OiBibG9jazsNCiAgbWluLXdpZHRoOiAxNTBweDsNCiAgbWF4LXdpZHRoOiAyMCU7DQogIGJhY2tncm91bmQtY29sb3I6ICMxMTE7DQogIGhlaWdodDogaW5oZXJpdDsNCiAgZmxvYXQ6IGxlZnQ7DQp9DQoNCi5sYXlvdXQtcmlnaHQgew0KICBkaXNwbGF5OiBibG9jazsNCiAgYmFja2dyb3VuZC1jb2xvcjogIzQ0NDsNCn0NCg0KI21lbnUtd3JhcHBlciB7DQogIGhlaWdodDogMTAwJTsNCn0NCg0KDQojbG9nbyB7DQogIGRpc3BsYXk6IGJsb2NrOw0KICBtaW4td2lkdGg6IDE4MHB4Ow0KICB3aWR0aDogMTAwJTsNCiAgaGVpZ2h0OiAxMDBweDsNCiAgYmFja2dyb3VuZDogdXJsKCIuLi9pbWcvbG9nb193XzYwMHgyMDAucG5nIik7DQogIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7DQogIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjsgDQogIGJhY2tncm91bmQtc2l6ZTogMTAwJTsNCn0NCg0KDQojcGFnZSB7DQogIG1heC13aWR0aDogOTUwcHg7DQogIG1hcmdpbjogYXV0bzsNCiAgYmFja2dyb3VuZC1jb2xvcjogIzQ0NDsNCg0KICAvKg0KICBoZWlnaHQ6IC13ZWJraXQtY2FsYygxMDAlIC0gMTMwcHgpOw0KICBoZWlnaHQ6IC1tb3otY2FsYygxMDAlIC0gMTMwcHgpOw0KICBoZWlnaHQ6IGNhbGMoMTAwJSAtIDEzMHB4KTsNCiAgKi8NCiAgDQogIG1pbi1oZWlnaHQ6IC13ZWJraXQtY2FsYygxMDAlIC0gMTIwcHgpOw0KICBtaW4taGVpZ2h0OiAtbW96LWNhbGMoMTAwJSAtIDEyMHB4KTsNCiAgbWluLWhlaWdodDogY2FsYygxMDAlIC0gMTIwcHgpOw0KICANCiAgDQogIGJveC1zaGFkb3c6IDBweCA1cHggNXB4ICMyMjI7DQogIA0KfQ0KDQojdWlTZXR0aW5nIHsNCiAgZmxvYXQ6IHJpZ2h0Ow0KICBtYXJnaW4tcmlnaHQ6IDI1cHg7DQp9DQoNCiNib3ggaW5wdXRbdHlwZT10ZXh0XSwgI2JveCBpbnB1dFt0eXBlPXBhc3N3b3JkXSB7DQogIHdpZHRoOiAtd2Via2l0LWNhbGMoMTAwJSAtIDIwcHgpOw0KICB3aWR0aDogLW1vei1jYWxjKDEwMCUgLSAyMHB4KTsNCiAgd2lkdGg6IGNhbGMoMTAwJSAtIDIwcHgpOw0KfQ0KDQojYm94IGlucHV0W3R5cGU9c3VibWl0XXsNCiAgbWFyZ2luOiA1MHB4IGF1dG87DQp9DQoNCiNzZXR0aW5ncyB7DQogIGRpc3BsYXk6IGJsb2NrOw0KICBwYWRkaW5nOiAxMHB4IDEwcHg7DQp9DQoNCiNzZXR0aW5ncyBoNSB7DQogIG1hcmdpbjogNTBweCAwcHggMTBweCAwcHg7DQp9DQoNCiNjb250ZW50LWludGVyYWN0aW9uIC5zZWFyY2ggew0KICB3aWR0aDogMjAwcHg7DQogIGJvcmRlcjogMXB4IHNvbGlkICMwMDA7DQogIHBhZGRpbmc6IDlweDsNCiAgYmFja2dyb3VuZC1jb2xvcjogIzMzMzsNCiAgbWFyZ2luOiAxMHB4Ow0KICBmbG9hdDogcmlnaHQ7DQogIGJvcmRlci1yYWRpdXM6IDNweDsNCg0KfQ0KDQojbXlTdHJlYW1zIHsNCiAgcG9zaXRpb246IGZpeGVkOw0KICBib3R0b206IDBweDsNCiAgYmFja2dyb3VuZC1jb2xvcjogIzExMTsNCiAgd2lkdGg6IDEwMCU7DQogIG1heC13aWR0aDogOTUwcHg7DQoNCiAgLyoNCiAgbWF4LWhlaWdodDogMTAwcHg7DQogICovDQogIG1hcmdpbi1ib3R0b206IDBweDsNCn0NCg0KI215U3RyZWFtcyBpbWcgew0KICB3aWR0aDogNCU7DQogIHBhZGRpbmc6IDJweCA1cHg7DQogIGN1cnNvcjogcG9pbnRlcjsNCiAgZmxvYXQ6IHJpZ2h0Ow0KfQ0KDQojc2V0dGluZ3MtZm9vdGVyIHsNCg0KfQ0KDQoNCi8qIFdpemFyZCovDQojYm94IHsNCiAgYmFja2dyb3VuZC1jb2xvcjogIzQ0NDsNCiAgbWluLWhlaWdodDogNDAwcHg7DQogIA0KICBkaXNwbGF5OiBmbGV4Ow0KICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOw0KICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47DQp9DQoNCiNib3ggcHsNCiAgcGFkZGluZzogMTBweCAwcHg7DQp9DQoNCiNib3gtZm9vdGVyIHsNCiAgbWFyZ2luLXRvcDogYXV0bzsNCn0NCg0KI2JveC1mb290ZXIgew0KICBtYXJnaW46IGF1dG87DQogIHBhZGRpbmc6IDEwcHg7DQp9DQoNCiNoZWFkbGluZSB7DQogIGJhY2tncm91bmQtY29sb3I6ICMyMjI7DQogIGJvcmRlci1ib3R0b206IHNvbGlkIDJweCAjMjIyOw0KICB0cmFuc2l0aW9uOiBhbGwgMC41czsNCiAgcGFkZGluZzogMTBweCAwcHg7DQogIGRpc3BsYXk6IGJsb2NrOw0KfQ0KDQojY29udGVudCB7DQogIGRpc3BsYXk6IGJsb2NrOw0KICBvdmVyZmxvdzogYXV0bzsNCiAgcGFkZGluZzogMTBweDsNCn0NCg0KLyogLS0tICovDQoNCg0KI2NsaWVudEluZm8sICNhY3RpdmVTdHJlYW1zLCAjaW5hY3RpdmVTdHJlYW1zIHsNCiAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZTsNCiAgZGlzcGxheTogYmxvY2s7DQogIGZvbnQtc2l6ZTogOXB4Ow0KICBiYWNrZ3JvdW5kLWNvbG9yOiAjMTExOw0KICBjb2xvcjogIzAwRTZGRjsNCiAgYm9yZGVyLWJvdHRvbTogc29saWQgMHB4OzsNCiAgcGFkZGluZzogMHB4Ow0KICBsZXR0ZXItc3BhY2luZzogMXB4Ow0KICBvdmVyZmxvdy14OiBoaWRkZW47DQogIGJvcmRlci1zcGFjaW5nOiA0cHggNHB4Ow0KICBib3JkZXItYm90dG9tOiBzb2xpZCAxcHggIzQ0NDsNCn0NCg0KI215U3RyZWFtc0JveCB7DQogIHBvc2l0aW9uOiByZWxhdGl2ZTsNCiAgcGFkZGluZzogMHB4Ow0KICAvKmhlaWdodDogMTAwcHg7Ki8NCiAgbWF4LWhlaWdodDogMTUwcHg7DQogIGJhY2tncm91bmQtY29sb3I6ICMxMTE7DQogIGNvbG9yOiB3aGl0ZTsNCiAgZGlzcGxheTpmbGV4Ow0KICBqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyOw0KICBhbGlnbi1pdGVtczpjZW50ZXI7DQp9DQoNCiNvcGVuU3RyZWFtcyB7DQogIHdpZHRoOiAyMHB4Ow0KICBoZWlnaHQ6IDIwcHg7DQogIGN1cnNvcjogcG9pbnRlcjsNCiAgZmxvYXQ6IHJpZ2h0Ow0KICBwb3NpdGlvbjogYWJzb2x1dGU7DQogIHJpZ2h0OiAwcHg7DQogIGJvdHRvbTogMHB4Ow0KICBiYWNrZ3JvdW5kOiB1cmwoIi4uL2ltZy90b3VjaC5wbmciKTsNCiAgYmFja2dyb3VuZC1jb2xvcjogIzExMTsNCiAgDQogIGJhY2tncm91bmQtcG9zaXRpb246IGJvdHRvbSByaWdodDsgIA0KfQ0KDQojYWxsU3RyZWFtcyB7DQogIHdpZHRoOiAxMDAlOw0KICBoZWlnaHQ6IDEwMCU7DQogIHBhZGRpbmc6IDJweDsgICAgIA0KfQ0KDQojYWN0aXZlU3RyZWFtcywgI2luYWN0aXZlU3RyZWFtcyB7DQogIG92ZXJmbG93LXk6IHNjcm9sbDsNCiAgd2lkdGg6IDUwJTsNCiAgbWF4LWhlaWdodDogMTAwcHg7DQogIGZsb2F0OiBsZWZ0Ow0KfQ0KDQojYWN0aXZlU3RyZWFtcyAudGRLZXksICNpbmFjdGl2ZVN0cmVhbXMgLnRkS2V5IHsNCiAgd2lkdGg6IDc1cHg7DQp9DQoNCg0KDQoNCiNpbmFjdGl2ZVN0cmVhbXMgLnRkS2V5IHsNCiAgY29sb3I6IHJlZDsNCn0NCg0KI2NsaWVudEluZm8gLnRkVmFsLCAjbG9nSW5mbyAudGRWYWwsICNhY3RpdmVTdHJlYW1zIC50ZFZhbCwgI2luYWN0aXZlU3RyZWFtcyAudGRWYWwsICNtYXBwaW5nSW5mbyAudGRWYWx7DQogIGNvbG9yOiAjYWFhOw0KICB3aGl0ZS1zcGFjZTogaW5oZXJpdDsNCn0NCg0KI2JveC13cmFwcGVyIHsNCiAgZGlzcGxheTogaW5saW5lLWJsb2NrOw0KICB3aWR0aDogMTAwJTsNCiAgDQogIG92ZXJmbG93LXk6IHNjcm9sbDsNCn0NCg0KI2NvbnRlbnRfdGFibGUsICNtYXBwaW5nLWRldGFpbC10YWJsZSwgI2NvbnRlbnRfdGFibGUgew0KICBkaXNwbGF5OiB0YWJsZTsNCiAgDQogIGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7DQogIG92ZXJmbG93LXk6IHNjcm9sbDsNCiAgd2lkdGg6IDEwMCU7DQp9DQoNCg0KI2NvbnRlbnRfdGFibGUgLmNvbnRlbnRfdGFibGVfaGVhZGVyIHsNCiAgYmFja2dyb3VuZC1jb2xvcjogIzMzMzsNCiAgaGVpZ2h0OiA1MHB4Ow0KICBib3JkZXItYm90dG9tOiBzb2xpZCAxcHggIzExMTsNCiAgYm9yZGVyLWxlZnQ6IHNvbGlkIDNweCAjMzMzOw0KICBjdXJzb3I6IGF1dG87DQoNCn0NCg0KDQp0Ym9keSB7DQogIHdpZHRoOiAxMDAlOw0KfQ0KDQoNCi50YWJsZUVsbGlwc2lzIHsNCiAgd2lkdGg6IDE1MHB4Ow0KICBvdmVyZmxvdzogaGlkZGVuOw0KICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsNCiAgd2hpdGUtc3BhY2U6IG5vd3JhcDsNCn0NCg0KI2NvbnRlbnRfdGFibGUgaW1nIHsNCiAgZGlzcGxheTogYmxvY2s7DQogIG1heC1oZWlnaHQ6IDI4cHg7DQogIG1hcmdpbi1sZWZ0OiBhdXRvOw0KICBtYXJnaW4tcmlnaHQ6IGF1dG87DQogIG1heC13aWR0aDogMzBweDsNCn0NCg0KI2NvbnRlbnRfdGFibGUgdHJ7DQogIGJvcmRlci1sZWZ0OiBzb2xpZCAzcHggNDQ0Ow0KICBib3JkZXItYm90dG9tOiBzb2xpZCAxcHggIzMzMzsNCiAgY3Vyc29yOiBwb2ludGVyOw0KfQ0KDQojY29udGVudF90YWJsZSB0cjpob3ZlciB7DQogIGJhY2tncm91bmQtY29sb3I6ICMzMzM7DQp9DQoNCiNjb250ZW50X3RhYmxlIHRkIHsNCg0KICBwYWRkaW5nOiAwcHggMnB4Ow0KfQ0KDQojY29udGVudF90YWJsZSBpbnB1dFt0eXBlPXRleHRdew0KICB3aWR0aDogODAlOw0KICBtaW4td2lkdGg6IDM1cHg7DQogIG1heC13aWR0aDogNjBweDsNCiAgYm9yZGVyOiAwcHg7DQogIGJhY2tncm91bmQtY29sb3I6ICMzMzM7DQogIG1hcmdpbi1sZWZ0OiA1cHg7DQogIHRleHQtYWxpZ246IGxlZnQ7DQp9DQoNCiNjb250ZW50X3RhYmxlIGlucHV0W3R5cGU9Y2hlY2tib3hdew0KICBtYXgtd2lkdGg6IDI1cHg7DQogIG1hcmdpbjogYXV0bzsNCn0NCg0KDQouc2hvd0J1bGsgew0KICBkaXNwbGF5OiBibG9jazsNCn0NCg0KLmhpZGVCdWxrIHsNCiAgZGlzcGxheTogbm9uZTsNCn0NCg0KLm5vQnVsayB7DQoNCn0NCg0KI2NvbnRlbnRfdGFibGUgdHIuYWN0aXZlRVBHew0KICBib3JkZXItbGVmdDogc29saWQgM3B4IGxhd25ncmVlbjsNCn0NCg0KI2NvbnRlbnRfdGFibGUgdHIubm90QWN0aXZlRVBHew0KICBib3JkZXItbGVmdDogc29saWQgM3B4IHJlZDsNCn0NCg0KDQojbG9nU2NyZWVuIHB7DQogIHdoaXRlLXNwYWNlOiBwcmU7DQogIGZvbnQtc2l6ZTogMTBweDsNCiAgLyoNCiAgbGluZS1oZWlnaHQ6IDEuNmVtOw0KICBmb250LWZhbWlseTogIkFyaWFsIiwgc2Fucy1zZXJpZjsNCiAgKi8NCiAgbGV0dGVyLXNwYWNpbmc6IDFweDsNCiAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZTsgDQogIGZvbnQtc2l6ZTogMTJweDsgDQogIGZvbnQtc3R5bGU6IG5vcm1hbDsgDQogIGZvbnQtdmFyaWFudDogbm9ybWFsOyANCiAgbGluZS1oZWlnaHQ6IDEuNmVtOyANCn0NCg0KI3BvcHVwIHsNCiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjQpOw0KICBwb3NpdGlvbjogZml4ZWQ7DQogIGxlZnQ6IDBweDsNCiAgd2lkdGg6IDEwMCU7DQogIHotaW5kZXg6IDEwMDsNCiAgaGVpZ2h0OiAxMDAlOw0KfQ0KDQojbWFwcGluZy1kZXRhaWwsICN1c2VyLWRldGFpbCwgI2ZpbGUtZGV0YWlsLCAjcG9wdXAtY3VzdG9tIHsNCiAgYm94LXNoYWRvdzogMHB4IDVweCA0MHB4ICMwMDA7DQogIG1hcmdpbi10b3A6IDIwcHg7DQogIG1hcmdpbi1sZWZ0OiBhdXRvOw0KICBtYXJnaW4tcmlnaHQ6IGF1dG87DQogIA0KICBtYXgtd2lkdGg6IDYwMHB4Ow0KICBiYWNrZ3JvdW5kLWNvbG9yOiAjMjIyOw0KICBwYWRkaW5nOiAxMHB4Ow0KICBvdmVyZmxvdzphdXRvOw0KfQ0KDQojcG9wdXAtY3VzdG9tIGgzIHsNCiAgdGV4dC1hbGlnbjogY2VudGVyOw0KfQ0KDQojZmlsZS1kZXRhaWwgaW5wdXRbdHlwZT10ZXh0XSB7DQogIHdpZHRoOiAtd2Via2l0LWNhbGMoMTAwJSAtIDIwcHgpOw0KICB3aWR0aDogLW1vei1jYWxjKDEwMCUgLSAyMHB4KTsNCiAgd2lkdGg6IGNhbGMoMTAwJSAtIDIwcHgpOw0KfQ0KDQojbWFwcGluZy1kZXRhaWwgaW1nIHsNCiAgZGlzcGxheTogYmxvY2s7DQogIG1heC1oZWlnaHQ6IDMwcHg7DQogIG1hcmdpbi1ib3R0b206IDIwcHg7DQogIG1hcmdpbi1sZWZ0OiBhdXRvOw0KICBtYXJnaW4tcmlnaHQ6IGF1dG87DQp9DQoNCiNwb3B1cC1jdXN0b20gaW5wdXRbdHlwZT10ZXh0XSwgI3BvcHVwLWN1c3RvbSBpbnB1dFt0eXBlPXBhc3N3b3JkXSwgI21hcHBpbmctZGV0YWlsIGlucHV0W3R5cGU9dGV4dF0sICNjb250ZW50X3NldHRpbmdzIGlucHV0W3R5cGU9dGV4dF0sICNjb250ZW50X3NldHRpbmdzIGlucHV0W3R5cGU9cGFzc3dvcmRdew0KICBib3JkZXI6IHNvbGlkIDFweDsNCiAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDsNCiAgYmFja2dyb3VuZC1jb2xvcjogIzMzMzsNCiAgdGV4dC1hbGlnbjogbGVmdDsNCiAgd2lkdGg6IC13ZWJraXQtY2FsYygxMDAlIC0gMjBweCk7DQogIHdpZHRoOiAgICAtbW96LWNhbGMoMTAwJSAtIDIwcHgpOw0KICB3aWR0aDogICAgICAgICBjYWxjKDEwMCUgLSAyMHB4KTsNCn0NCg0KI3BvcHVwLWN1c3RvbSBpbnB1dFt0eXBlPXRleHRdLm5vdEF2YWlsYWJsZSB7DQogIGJvcmRlci1jb2xvcjogcmVkOw0KICBjb2xvcjogIzY2NjsNCiAgY3Vyc29yOiBub3QtYWxsb3dlZDsNCn0NCg0KI21hcHBpbmctZGV0YWlsLXRhYmxlLCAjdXNlci1kZXRhaWwtdGFibGUgew0KICBkaXNwbGF5OiBpbmxpbmUtdGFibGU7DQogIHdpZHRoOiAxMDAlOw0KfQ0KDQojcG9wdXAtY3VzdG9tIHRhYmxlLCAjY29udGVudF9zZXR0aW5ncyB0YWJsZSB7DQogIGRpc3BsYXk6IGlubGluZS10YWJsZTsNCiAgdGFibGUtbGF5b3V0OiBmaXhlZDsNCiAgd2lkdGg6IDEwMCU7DQp9DQoNCg0KI21hcHBpbmctZGV0YWlsLXRhYmxlIHRkLCAjdXNlci1kZXRhaWwtdGFibGUgdGQgew0KICBwYWRkaW5nOiAxMHB4IDBweDsNCg0KfQ0KDQojbWFwcGluZy1kZXRhaWwtdGFibGUgdGQubGVmdCwgI3VzZXItZGV0YWlsLXRhYmxlIHRkLmxlZnQsICNwb3B1cC1jdXN0b20gdGQubGVmdCB7DQogIHdpZHRoOiAzOCU7DQp9DQoNCi5pbnRlcmFjdGlvbiwgI2ludGVyYWN0aW9uIHsNCiAgbWFyZ2luLXRvcDogMjBweDsNCiAgZGlzcGxheTogaW5saW5lLWZsZXg7DQogIGZsb2F0OiByaWdodDsNCn0NCg0KLmludGVyYWN0aW9uIGlucHV0W3R5cGU9YnV0dG9uXSwgLmludGVyYWN0aW9uIGlucHV0W3R5cGU9c3VibWl0XSB7DQogIGJhY2tncm91bmQtY29sb3I6ICMwMDA7DQogIG1pbi13aWR0aDogMTAwcHg7DQogIG1hcmdpbjogMHB4IDEwcHg7DQogIHRleHQtYWxpZ246IGNlbnRlcjsNCn0NCg0KI25vdGlmaWNhdGlvbiB7DQogIGRpc3BsYXk6IGJsb2NrOw0KICBwb3NpdGlvbjogZml4ZWQ7DQogIHJpZ2h0OiAwcHg7DQogIGhlaWdodDogMTAwJTsNCiAgd2lkdGg6IDI1MHB4Ow0KICANCiAgYmFja2dyb3VuZC1jb2xvcjogIzIyMjsNCiAgYm94LXNoYWRvdzogMHB4IDBweCAyMHB4ICMwMDA7DQp9DQoNCiNub3RpZmljYXRpb24gaDUgew0KICBiYWNrZ3JvdW5kLWNvbG9yOiAjMTIxMjEyOw0KICBwYWRkaW5nOiA1cHggMTBweCA1cHggMTBweDsNCn0NCg0KI25vdGlmaWNhdGlvbiBwcmUgew0KICBwYWRkaW5nOiAwcHggMTBweCAwcHggMTBweDsNCn0NCg0KI25vdGlmaWNhdGlvbiBwIHsNCiAgZm9udC1zaXplOiAxMCBweDsNCiAgbWFyZ2luOiAwcHg7DQogIHBhZGRpbmc6IDBweCAxMHB4IDVweCAxMHB4Ow0KfQ0KDQojbm90aWZpY2F0aW9uIC5lbGVtZW50IHsNCiAgLypwYWRkaW5nOiAwcHggNXB4OyovDQogIG1hcmdpbjogNXB4IDVweDsNCiAgYm9yZGVyLXJhZGl1czogNXB4Ow0KICBiYWNrZ3JvdW5kLWNvbG9yOiAjMTgxODE4Ow0KICBib3JkZXItbGVmdDogMTBweCBzb2xpZCBncmVlbjsNCn0NCg0KDQpAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDYyMHB4KXsNCiAgYm9keSB7DQogICAgd2lkdGg6IDEwMCU7DQogICAgYmFja2dyb3VuZC1jb2xvcjogIzQ0NDsNCiAgfQ0KDQogIGgxIHsNCiAgICBmb250LXNpemU6IDI2cHg7DQogICAgbGV0dGVyLXNwYWNpbmc6IDNweDsNCiAgfQ0KDQogIG5hdiBwIHsNCiAgICBkaXNwbGF5OiBibG9jazsNCiAgfQ0KDQoNCg0KICAjaGVhZGVyX2NvbmZpZyB7DQogICAgZGlzcGxheTogYmxvY2s7DQogICAgaGVpZ2h0OiAxMDBweDsNCiAgICBiYWNrZ3JvdW5kOiB1cmwoIi4uL2ltZy9sb2dvX3dfNjAweDIwMC5wbmciKTsNCiAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0Ow0KICAgIA0KICAgIGJhY2tncm91bmQtc2l6ZTogMzAwcHggMTAwcHg7DQogIH0NCg0KICAjc2NyZWVuTG9nIHsNCiAgICBtYXJnaW4tbGVmdDogMzAwcHg7DQoNCiAgICB0cmFuc2l0aW9uOiBub25lOw0KICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50Ow0KICAgIGJvcmRlci1ib3R0b206IHNvbGlkIDFweCB0cmFuc3BhcmVudDsNCiAgICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAjMjIyOw0KICB9DQoNCiAgI3NldHRpbmdzIHsNCiAgICAvKg0KICAgIGhlaWdodDogLXdlYmtpdC1jYWxjKDEwMCUgLSAxMDBweCk7DQogICAgaGVpZ2h0OiAtbW96LWNhbGMoMTAwJSAtIDEwMHB4KTsNCiAgICBoZWlnaHQ6IGNhbGMoMTAwJSAtIDEwMHB4KTsNCiAgICAqLw0KICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsNCiAgICBvdmVyZmxvdzogYXV0bzsNCiAgfQ0KDQoNCiAgLnNjcmVlbkxvZ0hpZGRlbiB7DQogICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMHB4LCAwcHgpOw0KICB9DQoNCg0KICAjYm94IHsNCiAgICBkaXNwbGF5OiBibG9jazsNCiAgICBtaW4taGVpZ2h0OiA1MDBweDsNCiAgICBtYXgtd2lkdGg6IDUwMHB4Ow0KICAgIG1hcmdpbjogMTBweCBhdXRvOw0KICAgIGJhY2tncm91bmQtY29sb3I6ICM0NDQ7DQogICAgYm94LXNoYWRvdzogMHB4IDVweCA1cHggIzIyMjsNCg0KICAgIGRpc3BsYXk6IGZsZXg7DQogICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsNCiAgfQ0KDQogICNzZXR0aW5ncywgI3NldHRpbmdzLWZvb3RlciB7DQogICAgDQogIH0NCn0NCg==" - webUI["html/img/x_ transparent.png"] = "iVBORw0KGgoAAAANSUhEUgAAAQAAAAEACAYAAABccqhmAAAAAXNSR0IArs4c6QAAAAlwSFlzAAAWJQAAFiUBSVIk8AAAA6ppVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IlhNUCBDb3JlIDUuNC4wIj4KICAgPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIgogICAgICAgICAgICB4bWxuczp0aWZmPSJodHRwOi8vbnMuYWRvYmUuY29tL3RpZmYvMS4wLyIKICAgICAgICAgICAgeG1sbnM6ZXhpZj0iaHR0cDovL25zLmFkb2JlLmNvbS9leGlmLzEuMC8iPgogICAgICAgICA8eG1wOk1vZGlmeURhdGU+MjAxOC0xMS0xNVQxNzoxMTo3NjwveG1wOk1vZGlmeURhdGU+CiAgICAgICAgIDx4bXA6Q3JlYXRvclRvb2w+UGl4ZWxtYXRvciAzLjM8L3htcDpDcmVhdG9yVG9vbD4KICAgICAgICAgPHRpZmY6T3JpZW50YXRpb24+MTwvdGlmZjpPcmllbnRhdGlvbj4KICAgICAgICAgPHRpZmY6Q29tcHJlc3Npb24+NTwvdGlmZjpDb21wcmVzc2lvbj4KICAgICAgICAgPHRpZmY6UmVzb2x1dGlvblVuaXQ+MjwvdGlmZjpSZXNvbHV0aW9uVW5pdD4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+MTQ0PC90aWZmOllSZXNvbHV0aW9uPgogICAgICAgICA8dGlmZjpYUmVzb2x1dGlvbj4xNDQ8L3RpZmY6WFJlc29sdXRpb24+CiAgICAgICAgIDxleGlmOlBpeGVsWERpbWVuc2lvbj4yNTY8L2V4aWY6UGl4ZWxYRGltZW5zaW9uPgogICAgICAgICA8ZXhpZjpDb2xvclNwYWNlPjE8L2V4aWY6Q29sb3JTcGFjZT4KICAgICAgICAgPGV4aWY6UGl4ZWxZRGltZW5zaW9uPjI1NjwvZXhpZjpQaXhlbFlEaW1lbnNpb24+CiAgICAgIDwvcmRmOkRlc2NyaXB0aW9uPgogICA8L3JkZjpSREY+CjwveDp4bXBtZXRhPgoeXQb1AAAaJElEQVR4Ae2dCZhcVZXHz+1KSFiGkISkqyIoOgI68EkgOBNkEcQRlIFRZDGABAQEhInGbxw+RUZRNhWRLawDYR0GHAaHUVkGvwGURUcgwIiAOGxjV3UHAslHQrbuM/9TlQ6d7qruWt527/u/7+uuqvvucu7vvnveuffde54IDxIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARLwiIDzQtayHi0q23shaydCOnlISu7nnWThRdrFOkPWyCleyNqJkF1yjhTd8k6yiDvtuLgLiCR/lVnIZ14keWU7k2Xyuu4oU92r2RazQ+nWypXI4W86zCXbyZ28KBvJ97MtpEhX1gWsyleS08TJU17I2omQKpvLarmqkywyn7ZHPw9rLvTOvwbX6xEyxS3Nenv4oQCcWwmQc/D3dtaBdiyfyv5S1mM7zieLGSzWEsS6KIuiRSzTGTD9H404z1iy80MBWNVL7hn8nx8LhaxlqnKBvKbvyppYHctTM/0nd5xPljNwcrcUs2/6DyL0RwGYxDOcjR3vGBQ+4M8tMElmdQ3n6NGjYPofGE6F6tTESRmm/1xxTuuczWSQH08BhqJbqlNkuTyJoK2GBgf53S6mkrvB+7qZ6b9Gfod6hHv3dzKAGbX9pNvd51N7+WUBGNlJbgm07FH4G/AJdFuyqlwotXFzW8kzk2itXAFZwu38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" - webUI["html/img/x_white.png"] = "iVBORw0KGgoAAAANSUhEUgAAAQAAAAEACAIAAADTED8xAAAAAXNSR0IArs4c6QAAAAlwSFlzAAAWJQAAFiUBSVIk8AAAA6ppVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IlhNUCBDb3JlIDUuNC4wIj4KICAgPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIgogICAgICAgICAgICB4bWxuczp0aWZmPSJodHRwOi8vbnMuYWRvYmUuY29tL3RpZmYvMS4wLyIKICAgICAgICAgICAgeG1sbnM6ZXhpZj0iaHR0cDovL25zLmFkb2JlLmNvbS9leGlmLzEuMC8iPgogICAgICAgICA8eG1wOk1vZGlmeURhdGU+MjAxOC0xMS0xNVQxNzoxMToyNTwveG1wOk1vZGlmeURhdGU+CiAgICAgICAgIDx4bXA6Q3JlYXRvclRvb2w+UGl4ZWxtYXRvciAzLjM8L3htcDpDcmVhdG9yVG9vbD4KICAgICAgICAgPHRpZmY6T3JpZW50YXRpb24+MTwvdGlmZjpPcmllbnRhdGlvbj4KICAgICAgICAgPHRpZmY6Q29tcHJlc3Npb24+NTwvdGlmZjpDb21wcmVzc2lvbj4KICAgICAgICAgPHRpZmY6UmVzb2x1dGlvblVuaXQ+MjwvdGlmZjpSZXNvbHV0aW9uVW5pdD4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+MTQ0PC90aWZmOllSZXNvbHV0aW9uPgogICAgICAgICA8dGlmZjpYUmVzb2x1dGlvbj4xNDQ8L3RpZmY6WFJlc29sdXRpb24+CiAgICAgICAgIDxleGlmOlBpeGVsWERpbWVuc2lvbj4yNTY8L2V4aWY6UGl4ZWxYRGltZW5zaW9uPgogICAgICAgICA8ZXhpZjpDb2xvclNwYWNlPjE8L2V4aWY6Q29sb3JTcGFj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" - webUI["html/js/log.js"] = "dmFyIGxvZ0ludGVydmFsDQoNCg0KZnVuY3Rpb24gdXBkYXRlTG9nKCkgew0KICB2YXIgZGF0YSA9IG5ldyBPYmplY3QoKTsNCiAgZGF0YVsiY21kIl0gPSAiZ2V0TG9nIjsNCiAgeFRlVmUoZGF0YSk7DQogIHdyaXRlTG9nSW5EaXYoKTsNCiAgcmV0dXJuDQp9DQoNCmZ1bmN0aW9uIHdyaXRlTG9nSW5EaXYoKSB7DQogIHZhciBsb2dzID0gbG9nWyJsb2ciXTsNCiAgdmFyIGRpdiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzZXR0aW5ncyIpLmxhc3RDaGlsZC5sYXN0Q2hpbGQ7DQogIGRpdi5pbm5lckhUTUwgPSAiIjsNCg0KICB2YXIgbWF4ID0gNTA7DQogIA0KICANCiAgZm9yICh2YXIgaSA9IDA7IGkgPCBsb2dzLmxlbmd0aDsgaSsrKSB7DQogICAgdmFyIG5ld0VudHJ5ID0gbmV3IE9iamVjdCgpOw0KICAgIG5ld0VudHJ5WyJfZWxlbWVudCJdICA9ICJQIjsNCg0KICAgIGlmIChsb2dzW2ldLmluY2x1ZGVzKCJFUlJPUiIpKSB7DQovLyAgICAgIGNhc2UgIndhcm5pbmdzIjogIG1zZ1R5cGUgPSAid2FybmluZ01zZyI7IGJyZWFrOw0KICAgICAgbmV3RW50cnlbImNsYXNzIl0gICA9ICJlcnJvck1zZyI7DQogICAgfQ0KDQogICAgaWYgKGxvZ3NbaV0uaW5jbHVkZXMoIldBUk5JTkciKSkgew0KLy8gICAgICBjYXNlICJ3YXJuaW5ncyI6ICBtc2dUeXBlID0gIndhcm5pbmdNc2ciOyBicmVhazsNCiAgICAgIG5ld0VudHJ5WyJjbGFzcyJdICAgPSAid2FybmluZ01zZyI7DQogICAgfQ0KDQogICAgbmV3RW50cnlbIl90ZXh0Il0gICAgID0gbG9nc1tpXTsNCiAgICANCiAgICBkaXYuYXBwZW5kQ2hpbGQoY3JlYXRlRWxlbWVudChuZXdFbnRyeSkpOw0KICB9DQoNCiAgY2FsY3VsYXRlV3JhcHBlckhlaWdodCgpOw0KICB2YXIgc2Nyb2xsRGl2ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImJveC13cmFwcGVyIik7DQogIHNjcm9sbERpdi5zY3JvbGxUb3AgPSBzY3JvbGxEaXYuc2Nyb2xsSGVpZ2h0Ow0KfQ0KDQpmdW5jdGlvbiBzaG93TG9nKG9iaikgew0KICAvL2xvZ0ludGVydmFsID0gc2V0SW50ZXJ2YWwodXBkYXRlTG9nLCA1MDAwKTsNCg0KICB2YXIgbG9ncyA9IGxvZ1sibG9nIl07DQoNCiAgdmFyIGRpdiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzZXR0aW5ncyIpOw0KDQogIHZhciBuZXdFbnRyeSA9IG5ldyBPYmplY3QoKTsNCiAgbmV3RW50cnlbIl9lbGVtZW50Il0gID0gIkhSIjsNCiAgZGl2LmFwcGVuZENoaWxkKGNyZWF0ZUVsZW1lbnQobmV3RW50cnkpKTsNCiAgLy9kaXYgPSBkaXYubGFzdENoaWxkOw0KDQogIHZhciBuZXdFbnRyeSA9IG5ldyBPYmplY3QoKTsNCiAgbmV3RW50cnlbIl9lbGVtZW50Il0gICAgPSAiSU5QVVQiOw0KICBuZXdFbnRyeVsidHlwZSJdICAgICAgICA9ICJidXR0b24iOw0KICBuZXdFbnRyeVsiY2xhc3MiXSAgICAgICA9ICJidXR0b24iOw0KICBuZXdFbnRyeVsidmFsdWUiXSAgICAgICA9ICJFbXB0eSBMb2ciOw0KICBuZXdFbnRyeVsib25jbGljayJdICAgICA9ICJlbXB0eUxvZygpIjsNCiAgZGl2LmFwcGVuZENoaWxkKGNyZWF0ZUVsZW1lbnQobmV3RW50cnkpKTsNCg0KICB2YXIgbmV3RW50cnkgPSBuZXcgT2JqZWN0KCk7DQogIG5ld0VudHJ5WyJfZWxlbWVudCJdICAgID0gImNvZGUiOw0KICBuZXdFbnRyeVsiX3RleHQiXSAgICAgICAgPSAiVXBkYXRlIExvZzogIjsNCiAgZGl2LmFwcGVuZENoaWxkKGNyZWF0ZUVsZW1lbnQobmV3RW50cnkpKTsNCg0KICB2YXIgbmV3RW50cnkgPSBuZXcgT2JqZWN0KCk7DQogIG5ld0VudHJ5WyJfZWxlbWVudCJdICAgID0gIklOUFVUIjsNCiAgbmV3RW50cnlbInR5cGUiXSAgICAgICAgPSAiY2hlY2tib3giOw0KICAvL25ld0VudHJ5WyJjaGVja2VkIl0gICAgID0gImNoZWNrYm94IjsNCiAgbmV3RW50cnlbIm9uY2xpY2siXSAgICAgPSAibG9nVXBkYXRlcyh0aGlzKSI7DQogIGRpdi5hcHBlbmRDaGlsZChjcmVhdGVFbGVtZW50KG5ld0VudHJ5KSk7DQoNCiAgdmFyIG5ld0VudHJ5ID0gbmV3IE9iamVjdCgpOw0KICBuZXdFbnRyeVsiX2VsZW1lbnQiXSAgPSAiSFIiOw0KICBkaXYuYXBwZW5kQ2hpbGQoY3JlYXRlRWxlbWVudChuZXdFbnRyeSkpOw0KDQogIA0KDQoNCiAgDQogIHZhciBuZXdXcmFwcGVyID0gbmV3IE9iamVjdCgpOw0KICBuZXdXcmFwcGVyWyJfZWxlbWVudCJdICA9ICJESVYiOw0KICBuZXdXcmFwcGVyWyJpZCJdICAgICAgICA9ICJib3gtd3JhcHBlciI7DQogIGRpdi5hcHBlbmRDaGlsZChjcmVhdGVFbGVtZW50KG5ld1dyYXBwZXIpKTsNCiAgZGl2ID0gZGl2Lmxhc3RDaGlsZDsNCg0KICB2YXIgbmV3UHJlID0gbmV3IE9iamVjdCgpOw0KICBuZXdQcmVbIl9lbGVtZW50Il0gID0gIlBSRSI7DQogIG5ld1ByZVsiaWQiXSAgICAgICAgPSAibG9nU2NyZWVuIjsNCiAgZGl2LmFwcGVuZENoaWxkKGNyZWF0ZUVsZW1lbnQobmV3UHJlKSk7DQoNCiAgZGl2ID0gZGl2Lmxhc3RDaGlsZDsNCg0KICB3cml0ZUxvZ0luRGl2KCkNCiAgcmV0dXJuDQp9DQoNCmZ1bmN0aW9uIGVtcHR5TG9nKCkgew0KICB2YXIgZGF0YSA9IG5ldyBPYmplY3QoKTsNCiAgZGF0YVsiY21kIl0gPSAiZW1wdHlMb2ciOw0KICB4VGVWZShkYXRhKTsNCiAgcmV0dXJuDQp9DQoNCmZ1bmN0aW9uIGxvZ1VwZGF0ZXMoZWxtKSB7DQogIHN3aXRjaChlbG0uY2hlY2tlZCkgew0KICAgIGNhc2UgZmFsc2U6IGNsZWFySW50ZXJ2YWwobG9nSW50ZXJ2YWwpOyBicmVhazsNCiAgICBjYXNlIHRydWU6IGxvZ0ludGVydmFsID0gc2V0SW50ZXJ2YWwodXBkYXRlTG9nLCA1MDAwKTsgYnJlYWs7DQogICAgDQogIH0NCn0=" - webUI["html/js/network_ts.js"] = "Y2xhc3MgU2VydmVyIHsNCiAgICBjb25zdHJ1Y3RvcihjbWQpIHsNCiAgICAgICAgdGhpcy5jbWQgPSBjbWQ7DQogICAgfQ0KICAgIHJlcXVlc3QoZGF0YSkgew0KICAgICAgICBpZiAoU0VSVkVSX0NPTk5FQ1RJT04gPT0gdHJ1ZSkgew0KICAgICAgICAgICAgcmV0dXJuOw0KICAgICAgICB9DQogICAgICAgIFNFUlZFUl9DT05ORUNUSU9OID0gdHJ1ZTsNCiAgICAgICAgY29uc29sZS5sb2coZGF0YSk7DQogICAgICAgIGlmICh0aGlzLmNtZCAhPSAidXBkYXRlTG9nIikgew0KICAgICAgICAgICAgc2hvd0VsZW1lbnQoImxvYWRpbmciLCB0cnVlKTsNCiAgICAgICAgICAgIFVORE8gPSBuZXcgT2JqZWN0KCk7DQogICAgICAgIH0NCiAgICAgICAgc3dpdGNoICh3aW5kb3cubG9jYXRpb24ucHJvdG9jb2wpIHsNCiAgICAgICAgICAgIGNhc2UgImh0dHA6IjoNCiAgICAgICAgICAgICAgICB0aGlzLnByb3RvY29sID0gIndzOi8vIjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImh0dHBzOiI6DQogICAgICAgICAgICAgICAgdGhpcy5wcm90b2NvbCA9ICJ3c3M6Ly8iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICB9DQogICAgICAgIHZhciB1cmwgPSB0aGlzLnByb3RvY29sICsgd2luZG93LmxvY2F0aW9uLmhvc3RuYW1lICsgIjoiICsgd2luZG93LmxvY2F0aW9uLnBvcnQgKyAiL2RhdGEvIiArICI/VG9rZW49IiArIGdldENvb2tpZSgiVG9rZW4iKTsNCiAgICAgICAgZGF0YVsiY21kIl0gPSB0aGlzLmNtZDsNCiAgICAgICAgdmFyIHdzID0gbmV3IFdlYlNvY2tldCh1cmwpOw0KICAgICAgICB3cy5vbm9wZW4gPSBmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICBXU19BVkFJTEFCTEUgPSB0cnVlOw0KICAgICAgICAgICAgY29uc29sZS5sb2coIlJFUVVFU1QgKEpTKToiKTsNCiAgICAgICAgICAgIGNvbnNvbGUubG9nKGRhdGEpOw0KICAgICAgICAgICAgY29uc29sZS5sb2coIlJFUVVFU1Q6IChKU09OKSIpOw0KICAgICAgICAgICAgY29uc29sZS5sb2coSlNPTi5zdHJpbmdpZnkoZGF0YSkpOw0KICAgICAgICAgICAgdGhpcy5zZW5kKEpTT04uc3RyaW5naWZ5KGRhdGEpKTsNCiAgICAgICAgfTsNCiAgICAgICAgd3Mub25lcnJvciA9IGZ1bmN0aW9uIChlKSB7DQogICAgICAgICAgICBjb25zb2xlLmxvZygiTm8gd2Vic29ja2V0IGNvbm5lY3Rpb24gdG8geFRlVmUgY291bGQgYmUgZXN0YWJsaXNoZWQuIENoZWNrIHlvdXIgbmV0d29yayBjb25maWd1cmF0aW9uLiIpOw0KICAgICAgICAgICAgU0VSVkVSX0NPTk5FQ1RJT04gPSBmYWxzZTsNCiAgICAgICAgICAgIGlmIChXU19BVkFJTEFCTEUgPT0gZmFsc2UpIHsNCiAgICAgICAgICAgICAgICBhbGVydCgiTm8gd2Vic29ja2V0IGNvbm5lY3Rpb24gdG8geFRlVmUgY291bGQgYmUgZXN0YWJsaXNoZWQuIENoZWNrIHlvdXIgbmV0d29yayBjb25maWd1cmF0aW9uLiIpOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9Ow0KICAgICAgICB3cy5vbm1lc3NhZ2UgPSBmdW5jdGlvbiAoZSkgew0KICAgICAgICAgICAgU0VSVkVSX0NPTk5FQ1RJT04gPSBmYWxzZTsNCiAgICAgICAgICAgIHNob3dFbGVtZW50KCJsb2FkaW5nIiwgZmFsc2UpOw0KICAgICAgICAgICAgY29uc29sZS5sb2coIlJFU1BPTlNFOiIpOw0KICAgICAgICAgICAgdmFyIHJlc3BvbnNlID0gSlNPTi5wYXJzZShlLmRhdGEpOw0KICAgICAgICAgICAgY29uc29sZS5sb2cocmVzcG9uc2UpOw0KICAgICAgICAgICAgaWYgKHJlc3BvbnNlLmhhc093blByb3BlcnR5KCJ0b2tlbiIpKSB7DQogICAgICAgICAgICAgICAgZG9jdW1lbnQuY29va2llID0gIlRva2VuPSIgKyByZXNwb25zZVsidG9rZW4iXTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGlmIChyZXNwb25zZVsic3RhdHVzIl0gPT0gZmFsc2UpIHsNCiAgICAgICAgICAgICAgICBhbGVydChyZXNwb25zZVsiZXJyIl0pOw0KICAgICAgICAgICAgICAgIGlmIChyZXNwb25zZS5oYXNPd25Qcm9wZXJ0eSgicmVsb2FkIikpIHsNCiAgICAgICAgICAgICAgICAgICAgbG9jYXRpb24ucmVsb2FkKCk7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIHJldHVybjsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGlmIChyZXNwb25zZS5oYXNPd25Qcm9wZXJ0eSgibG9nb1VSTCIpKSB7DQogICAgICAgICAgICAgICAgdmFyIGRpdiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjaGFubmVsLWljb24iKTsNCiAgICAgICAgICAgICAgICBkaXYudmFsdWUgPSByZXNwb25zZVsibG9nb1VSTCJdOw0KICAgICAgICAgICAgICAgIGRpdi5jbGFzc05hbWUgPSAiY2hhbmdlZCI7DQogICAgICAgICAgICAgICAgcmV0dXJuOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgc3dpdGNoIChkYXRhWyJjbWQiXSkgew0KICAgICAgICAgICAgICAgIGNhc2UgInVwZGF0ZUxvZyI6DQogICAgICAgICAgICAgICAgICAgIFNFUlZFUlsibG9nIl0gPSByZXNwb25zZVsibG9nIl07DQogICAgICAgICAgICAgICAgICAgIGlmIChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29udGVudF9sb2ciKSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgc2hvd0xvZ3MoZmFsc2UpOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIHJldHVybjsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgICAgICAgICAgU0VSVkVSID0gbmV3IE9iamVjdCgpOw0KICAgICAgICAgICAgICAgICAgICBTRVJWRVIgPSByZXNwb25zZTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBpZiAocmVzcG9uc2UuaGFzT3duUHJvcGVydHkoIm9wZW5NZW51IikpIHsNCiAgICAgICAgICAgICAgICB2YXIgbWVudSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHJlc3BvbnNlWyJvcGVuTWVudSJdKTsNCiAgICAgICAgICAgICAgICBtZW51LmNsaWNrKCk7DQogICAgICAgICAgICAgICAgc2hvd0VsZW1lbnQoInBvcHVwIiwgZmFsc2UpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgaWYgKHJlc3BvbnNlLmhhc093blByb3BlcnR5KCJvcGVuTGluayIpKSB7DQogICAgICAgICAgICAgICAgd2luZG93LmxvY2F0aW9uID0gcmVzcG9uc2VbIm9wZW5MaW5rIl07DQogICAgICAgICAgICB9DQogICAgICAgICAgICBpZiAocmVzcG9uc2UuaGFzT3duUHJvcGVydHkoImFsZXJ0IikpIHsNCiAgICAgICAgICAgICAgICBhbGVydChyZXNwb25zZVsiYWxlcnQiXSk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBpZiAocmVzcG9uc2UuaGFzT3duUHJvcGVydHkoInJlbG9hZCIpKSB7DQogICAgICAgICAgICAgICAgbG9jYXRpb24ucmVsb2FkKCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBpZiAocmVzcG9uc2UuaGFzT3duUHJvcGVydHkoIndpemFyZCIpKSB7DQogICAgICAgICAgICAgICAgY3JlYXRlTGF5b3V0KCk7DQogICAgICAgICAgICAgICAgY29uZmlndXJhdGlvbldpemFyZFtyZXNwb25zZVsid2l6YXJkIl1dLmNyZWF0ZVdpemFyZCgpOw0KICAgICAgICAgICAgICAgIHJldHVybjsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGNyZWF0ZUxheW91dCgpOw0KICAgICAgICB9Ow0KICAgIH0NCn0NCmZ1bmN0aW9uIGdldENvb2tpZShuYW1lKSB7DQogICAgdmFyIHZhbHVlID0gIjsgIiArIGRvY3VtZW50LmNvb2tpZTsNCiAgICB2YXIgcGFydHMgPSB2YWx1ZS5zcGxpdCgiOyAiICsgbmFtZSArICI9Iik7DQogICAgaWYgKHBhcnRzLmxlbmd0aCA9PSAyKQ0KICAgICAgICByZXR1cm4gcGFydHMucG9wKCkuc3BsaXQoIjsiKS5zaGlmdCgpOw0KfQ0K" - webUI["html/js/base_ts.js"] = "dmFyIFNFUlZFUiA9IG5ldyBPYmplY3QoKTsNCnZhciBCVUxLX0VESVQgPSBmYWxzZTsNCnZhciBDT0xVTU5fVE9fU09SVDsNCnZhciBTRUFSQ0hfTUFQUElORyA9IG5ldyBPYmplY3QoKTsNCnZhciBVTkRPID0gbmV3IE9iamVjdCgpOw0KdmFyIFNFUlZFUl9DT05ORUNUSU9OID0gZmFsc2U7DQp2YXIgV1NfQVZBSUxBQkxFID0gZmFsc2U7DQovLyBNZW7DvA0KdmFyIG1lbnVJdGVtcyA9IG5ldyBBcnJheSgpOw0KbWVudUl0ZW1zLnB1c2gobmV3IE1haW5NZW51SXRlbSgicGxheWxpc3QiLCAie3subWFpbk1lbnUuaXRlbS5wbGF5bGlzdH19IiwgIm0zdS5wbmciLCAie3subWFpbk1lbnUuaGVhZGxpbmUucGxheWxpc3R9fSIpKTsNCi8vbWVudUl0ZW1zLnB1c2gobmV3IE1haW5NZW51SXRlbSgicG1zSUQiLCAie3subWFpbk1lbnUuaXRlbS5wbXNJRH19IiwgIm51bWJlci5wbmciLCAie3subWFpbk1lbnUuaGVhZGxpbmUucG1zSUR9fSIpKQ0KbWVudUl0ZW1zLnB1c2gobmV3IE1haW5NZW51SXRlbSgiZmlsdGVyIiwgInt7Lm1haW5NZW51Lml0ZW0uZmlsdGVyfX0iLCAiZmlsdGVyLnBuZyIsICJ7ey5tYWluTWVudS5oZWFkbGluZS5maWx0ZXJ9fSIpKTsNCm1lbnVJdGVtcy5wdXNoKG5ldyBNYWluTWVudUl0ZW0oInhtbHR2IiwgInt7Lm1haW5NZW51Lml0ZW0ueG1sdHZ9fSIsICJ4bWx0di5wbmciLCAie3subWFpbk1lbnUuaGVhZGxpbmUueG1sdHZ9fSIpKTsNCm1lbnVJdGVtcy5wdXNoKG5ldyBNYWluTWVudUl0ZW0oIm1hcHBpbmciLCAie3subWFpbk1lbnUuaXRlbS5tYXBwaW5nfX0iLCAibWFwcGluZy5wbmciLCAie3subWFpbk1lbnUuaGVhZGxpbmUubWFwcGluZ319IikpOw0KbWVudUl0ZW1zLnB1c2gobmV3IE1haW5NZW51SXRlbSgidXNlcnMiLCAie3subWFpbk1lbnUuaXRlbS51c2Vyc319IiwgInVzZXJzLnBuZyIsICJ7ey5tYWluTWVudS5oZWFkbGluZS51c2Vyc319IikpOw0KbWVudUl0ZW1zLnB1c2gobmV3IE1haW5NZW51SXRlbSgic2V0dGluZ3MiLCAie3subWFpbk1lbnUuaXRlbS5zZXR0aW5nc319IiwgInNldHRpbmdzLnBuZyIsICJ7ey5tYWluTWVudS5oZWFkbGluZS5zZXR0aW5nc319IikpOw0KbWVudUl0ZW1zLnB1c2gobmV3IE1haW5NZW51SXRlbSgibG9nIiwgInt7Lm1haW5NZW51Lml0ZW0ubG9nfX0iLCAibG9nLnBuZyIsICJ7ey5tYWluTWVudS5oZWFkbGluZS5sb2d9fSIpKTsNCm1lbnVJdGVtcy5wdXNoKG5ldyBNYWluTWVudUl0ZW0oImxvZ291dCIsICJ7ey5tYWluTWVudS5pdGVtLmxvZ291dH19IiwgImxvZ291dC5wbmciLCAie3subWFpbk1lbnUuaGVhZGxpbmUubG9nb3V0fX0iKSk7DQovLyBLYXRlZ29yaWVuIGbDvHIgZGllIEVpbnN0ZWxsdW5nZW4NCnZhciBzZXR0aW5nc0NhdGVnb3J5ID0gbmV3IEFycmF5KCk7DQpzZXR0aW5nc0NhdGVnb3J5LnB1c2gobmV3IFNldHRpbmdzQ2F0ZWdvcnlJdGVtKCJ7ey5zZXR0aW5ncy5jYXRlZ29yeS5nZW5lcmFsfX0iLCAieHRldmVBdXRvVXBkYXRlLHR1bmVyLGVwZ1NvdXJjZSxhcGkiKSk7DQpzZXR0aW5nc0NhdGVnb3J5LnB1c2gobmV3IFNldHRpbmdzQ2F0ZWdvcnlJdGVtKCJ7ey5zZXR0aW5ncy5jYXRlZ29yeS5maWxlc319IiwgInVwZGF0ZSxmaWxlcy51cGRhdGUsdGVtcC5wYXRoLGNhY2hlLmltYWdlcyx4ZXBnLnJlcGxhY2UubWlzc2luZy5pbWFnZXMiKSk7DQpzZXR0aW5nc0NhdGVnb3J5LnB1c2gobmV3IFNldHRpbmdzQ2F0ZWdvcnlJdGVtKCJ7ey5zZXR0aW5ncy5jYXRlZ29yeS5zdHJlYW1pbmd9fSIsICJidWZmZXIsdWRweHksYnVmZmVyLnNpemUua2IsYnVmZmVyLnRpbWVvdXQsdXNlci5hZ2VudCxmZm1wZWcucGF0aCxmZm1wZWcub3B0aW9ucyx2bGMucGF0aCx2bGMub3B0aW9ucyIpKTsNCnNldHRpbmdzQ2F0ZWdvcnkucHVzaChuZXcgU2V0dGluZ3NDYXRlZ29yeUl0ZW0oInt7LnNldHRpbmdzLmNhdGVnb3J5LmJhY2t1cH19IiwgImJhY2t1cC5wYXRoLGJhY2t1cC5rZWVwIikpOw0Kc2V0dGluZ3NDYXRlZ29yeS5wdXNoKG5ldyBTZXR0aW5nc0NhdGVnb3J5SXRlbSgie3suc2V0dGluZ3MuY2F0ZWdvcnkuYXV0aGVudGljYXRpb259fSIsICJhdXRoZW50aWNhdGlvbi53ZWIsYXV0aGVudGljYXRpb24ucG1zLGF1dGhlbnRpY2F0aW9uLm0zdSxhdXRoZW50aWNhdGlvbi54bWwsYXV0aGVudGljYXRpb24uYXBpIikpOw0KZnVuY3Rpb24gc2hvd1BvcFVwRWxlbWVudChlbG0pIHsNCiAgICB2YXIgYWxsRWxlbWVudHMgPSBuZXcgQXJyYXkoInBvcHVwLWN1c3RvbSIpOw0KICAgIGZvciAodmFyIGkgPSAwOyBpIDwgYWxsRWxlbWVudHMubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgc2hvd0VsZW1lbnQoYWxsRWxlbWVudHNbaV0sIGZhbHNlKTsNCiAgICB9DQogICAgc2hvd0VsZW1lbnQoZWxtLCB0cnVlKTsNCiAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsNCiAgICAgICAgc2hvd0VsZW1lbnQoInBvcHVwIiwgdHJ1ZSk7DQogICAgfSwgMTApOw0KICAgIHJldHVybjsNCn0NCmZ1bmN0aW9uIHNob3dFbGVtZW50KGVsbUlELCB0eXBlKSB7DQogICAgdmFyIGNzc0NsYXNzOw0KICAgIHN3aXRjaCAodHlwZSkgew0KICAgICAgICBjYXNlIHRydWU6DQogICAgICAgICAgICBjc3NDbGFzcyA9ICJibG9jayI7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSBmYWxzZToNCiAgICAgICAgICAgIGNzc0NsYXNzID0gIm5vbmUiOw0KICAgICAgICAgICAgYnJlYWs7DQogICAgfQ0KICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGVsbUlEKS5jbGFzc05hbWUgPSBjc3NDbGFzczsNCn0NCmZ1bmN0aW9uIGNoYW5nZUJ1dHRvbkFjdGlvbihlbGVtZW50LCBidXR0b25JRCwgYXR0cmlidXRlKSB7DQogICAgdmFyIHZhbHVlID0gZWxlbWVudC5vcHRpb25zW2VsZW1lbnQuc2VsZWN0ZWRJbmRleF0udmFsdWU7DQogICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoYnV0dG9uSUQpLnNldEF0dHJpYnV0ZShhdHRyaWJ1dGUsIHZhbHVlKTsNCn0NCmZ1bmN0aW9uIGdldExvY2FsRGF0YShkYXRhVHlwZSwgaWQpIHsNCiAgICBsZXQgZGF0YSA9IHt9Ow0KICAgIHN3aXRjaCAoZGF0YVR5cGUpIHsNCiAgICAgICAgY2FzZSAibTN1IjoNCiAgICAgICAgICAgIGRhdGEgPSBTRVJWRVJbInNldHRpbmdzIl1bImZpbGVzIl1bZGF0YVR5cGVdW2lkXTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJoZGhyIjoNCiAgICAgICAgICAgIGRhdGEgPSBTRVJWRVJbInNldHRpbmdzIl1bImZpbGVzIl1bZGF0YVR5cGVdW2lkXTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJmaWx0ZXIiOg0KICAgICAgICBjYXNlICJjdXN0b20tZmlsdGVyIjoNCiAgICAgICAgY2FzZSAiZ3JvdXAtdGl0bGUiOg0KICAgICAgICAgICAgaWYgKGlkID09IC0xKSB7DQogICAgICAgICAgICAgICAgZGF0YVsiYWN0aXZlIl0gPSB0cnVlOw0KICAgICAgICAgICAgICAgIGRhdGFbImNhc2VTZW5zaXRpdmUiXSA9IGZhbHNlOw0KICAgICAgICAgICAgICAgIGRhdGFbImRlc2NyaXB0aW9uIl0gPSAiIjsNCiAgICAgICAgICAgICAgICBkYXRhWyJleGNsdWRlIl0gPSAiIjsNCiAgICAgICAgICAgICAgICBkYXRhWyJmaWx0ZXIiXSA9ICIiOw0KICAgICAgICAgICAgICAgIGRhdGFbImluY2x1ZGUiXSA9ICIiOw0KICAgICAgICAgICAgICAgIGRhdGFbIm5hbWUiXSA9ICIiOw0KICAgICAgICAgICAgICAgIGRhdGFbInR5cGUiXSA9ICJncm91cC10aXRsZSI7DQogICAgICAgICAgICAgICAgZGF0YVsicHJlc2VydmVNYXBwaW5nIl0gPSB0cnVlOw0KICAgICAgICAgICAgICAgIGRhdGFbInN0YXJ0aW5nQ2hhbm5lbCJdID0gU0VSVkVSWyJzZXR0aW5ncyJdWyJtYXBwaW5nLmZpcnN0LmNoYW5uZWwiXTsNCiAgICAgICAgICAgICAgICBkYXRhWyJkZWZhdWx0TWlzc2luZ0VQRyJdID0gIi0iOw0KICAgICAgICAgICAgICAgIFNFUlZFUlsic2V0dGluZ3MiXVsiZmlsdGVyIl1baWRdID0gZGF0YTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGRhdGEgPSBTRVJWRVJbInNldHRpbmdzIl1bImZpbHRlciJdW2lkXTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJ4bWx0diI6DQogICAgICAgICAgICBkYXRhID0gU0VSVkVSWyJzZXR0aW5ncyJdWyJmaWxlcyJdW2RhdGFUeXBlXVtpZF07DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSAidXNlcnMiOg0KICAgICAgICAgICAgZGF0YSA9IFNFUlZFUlsidXNlcnMiXVtpZF1bImRhdGEiXTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJtYXBwaW5nIjoNCiAgICAgICAgICAgIGRhdGEgPSBTRVJWRVJbInhlcGciXVsiZXBnTWFwcGluZyJdW2lkXTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJtM3VHcm91cHMiOg0KICAgICAgICAgICAgZGF0YSA9IFNFUlZFUlsiZGF0YSJdWyJwbGF5bGlzdCJdWyJtM3UiXVsiZ3JvdXBzIl07DQogICAgICAgICAgICBicmVhazsNCiAgICB9DQogICAgcmV0dXJuIGRhdGE7DQp9DQpmdW5jdGlvbiBnZXRPYmpLZXlzKG9iaikgew0KICAgIHZhciBrZXlzID0gbmV3IEFycmF5KCk7DQogICAgZm9yICh2YXIgaSBpbiBvYmopIHsNCiAgICAgICAgaWYgKG9iai5oYXNPd25Qcm9wZXJ0eShpKSkgew0KICAgICAgICAgICAga2V5cy5wdXNoKGkpOw0KICAgICAgICB9DQogICAgfQ0KICAgIHJldHVybiBrZXlzOw0KfQ0KZnVuY3Rpb24gZ2V0QWxsU2VsZWN0ZWRDaGFubmVscygpIHsNCiAgICB2YXIgY2hhbm5lbHMgPSBuZXcgQXJyYXkoKTsNCiAgICBpZiAoQlVMS19FRElUID09IGZhbHNlKSB7DQogICAgICAgIHJldHVybiBjaGFubmVsczsNCiAgICB9DQogICAgdmFyIHRycyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb250ZW50X3RhYmxlIikuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlRSIik7DQogICAgZm9yICh2YXIgaSA9IDE7IGkgPCB0cnMubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgaWYgKHRyc1tpXS5zdHlsZS5kaXNwbGF5ICE9ICJub25lIikgew0KICAgICAgICAgICAgaWYgKHRyc1tpXS5maXJzdENoaWxkLmZpcnN0Q2hpbGQuY2hlY2tlZCA9PSB0cnVlKSB7DQogICAgICAgICAgICAgICAgY2hhbm5lbHMucHVzaCh0cnNbaV0uaWQpOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQogICAgfQ0KICAgIHJldHVybiBjaGFubmVsczsNCn0NCmZ1bmN0aW9uIHNlbGVjdEFsbENoYW5uZWxzKCkgew0KICAgIHZhciBidWxrID0gZmFsc2U7DQogICAgdmFyIHRycyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb250ZW50X3RhYmxlIikuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlRSIik7DQogICAgaWYgKHRyc1swXS5maXJzdENoaWxkLmZpcnN0Q2hpbGQuY2hlY2tlZCA9PSB0cnVlKSB7DQogICAgICAgIGJ1bGsgPSB0cnVlOw0KICAgIH0NCiAgICBmb3IgKHZhciBpID0gMTsgaSA8IHRycy5sZW5ndGg7IGkrKykgew0KICAgICAgICBpZiAodHJzW2ldLnN0eWxlLmRpc3BsYXkgIT0gIm5vbmUiKSB7DQogICAgICAgICAgICBzd2l0Y2ggKGJ1bGspIHsNCiAgICAgICAgICAgICAgICBjYXNlIHRydWU6DQogICAgICAgICAgICAgICAgICAgIHRyc1tpXS5maXJzdENoaWxkLmZpcnN0Q2hpbGQuY2hlY2tlZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgZmFsc2U6DQogICAgICAgICAgICAgICAgICAgIHRyc1tpXS5maXJzdENoaWxkLmZpcnN0Q2hpbGQuY2hlY2tlZCA9IGZhbHNlOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KICAgIH0NCiAgICByZXR1cm47DQp9DQpmdW5jdGlvbiBidWxrRWRpdCgpIHsNCiAgICBCVUxLX0VESVQgPSAhQlVMS19FRElUOw0KICAgIHZhciBjbGFzc05hbWU7DQogICAgdmFyIHJvd3MgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCJidWxrIik7DQogICAgc3dpdGNoIChCVUxLX0VESVQpIHsNCiAgICAgICAgY2FzZSB0cnVlOg0KICAgICAgICAgICAgY2xhc3NOYW1lID0gImJ1bGsgc2hvd0J1bGsiOw0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGNhc2UgZmFsc2U6DQogICAgICAgICAgICBjbGFzc05hbWUgPSAiYnVsayBoaWRlQnVsayI7DQogICAgICAgICAgICBicmVhazsNCiAgICB9DQogICAgZm9yICh2YXIgaSA9IDA7IGkgPCByb3dzLmxlbmd0aDsgaSsrKSB7DQogICAgICAgIHJvd3NbaV0uY2xhc3NOYW1lID0gY2xhc3NOYW1lOw0KICAgICAgICByb3dzW2ldLmNoZWNrZWQgPSBmYWxzZTsNCiAgICB9DQogICAgcmV0dXJuOw0KfQ0KZnVuY3Rpb24gc29ydFRhYmxlKGNvbHVtbikgew0KICAgIC8vY29uc29sZS5sb2coY29sdW1tKTsNCiAgICBpZiAoY29sdW1uID09IENPTFVNTl9UT19TT1JUKSB7DQogICAgICAgIHJldHVybjsNCiAgICB9DQogICAgdmFyIHRhYmxlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnRlbnRfdGFibGUiKTsNCiAgICB2YXIgdGFibGVIZWFkID0gdGFibGUuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlRSIilbMF07DQogICAgdmFyIHRhYmxlSXRlbXMgPSB0YWJsZUhlYWQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlREIik7DQogICAgdmFyIHNvcnRPYmogPSBuZXcgT2JqZWN0KCk7DQogICAgdmFyIHgsIHhWYWx1ZTsNCiAgICB2YXIgdGFibGVIZWFkZXI7DQogICAgdmFyIHNvcnRCeVN0cmluZyA9IGZhbHNlOw0KICAgIGlmIChjb2x1bW4gPiAwICYmIENPTFVNTl9UT19TT1JUID4gMCkgew0KICAgICAgICB0YWJsZUl0ZW1zW0NPTFVNTl9UT19TT1JUXS5jbGFzc05hbWUgPSAicG9pbnRlciI7DQogICAgICAgIHRhYmxlSXRlbXNbY29sdW1uXS5jbGFzc05hbWUgPSAic29ydFRoaXMiOw0KICAgIH0NCiAgICBDT0xVTU5fVE9fU09SVCA9IGNvbHVtbjsNCiAgICB2YXIgcm93cyA9IHRhYmxlLnJvd3M7DQogICAgaWYgKHJvd3NbMV0gIT0gdW5kZWZpbmVkKSB7DQogICAgICAgIHRhYmxlSGVhZGVyID0gcm93c1swXTsNCiAgICAgICAgeCA9IHJvd3NbMV0uZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlREIilbY29sdW1uXTsNCiAgICAgICAgZm9yIChpID0gMTsgaSA8IHJvd3MubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgICAgIHggPSByb3dzW2ldLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJURCIpW2NvbHVtbl07DQogICAgICAgICAgICBzd2l0Y2ggKHguY2hpbGROb2Rlc1swXS50YWdOYW1lLnRvTG93ZXJDYXNlKCkpIHsNCiAgICAgICAgICAgICAgICBjYXNlICJpbnB1dCI6DQogICAgICAgICAgICAgICAgICAgIHhWYWx1ZSA9IHguZ2V0RWxlbWVudHNCeVRhZ05hbWUoIklOUFVUIilbMF0udmFsdWUudG9Mb3dlckNhc2UoKTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAicCI6DQogICAgICAgICAgICAgICAgICAgIHhWYWx1ZSA9IHguZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlAiKVswXS5pbm5lclRleHQudG9Mb3dlckNhc2UoKTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgZGVmYXVsdDogY29uc29sZS5sb2coeC5jaGlsZE5vZGVzWzBdLnRhZ05hbWUpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgaWYgKHhWYWx1ZSA9PSAiIiB8fCB4VmFsdWUgPT0gTmFOKSB7DQogICAgICAgICAgICAgICAgeFZhbHVlID0gaTsNCiAgICAgICAgICAgICAgICBzb3J0T2JqW2ldID0gcm93c1tpXTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgICAgIHN3aXRjaCAoaXNOYU4oeFZhbHVlKSkgew0KICAgICAgICAgICAgICAgICAgICBjYXNlIGZhbHNlOg0KICAgICAgICAgICAgICAgICAgICAgICAgeFZhbHVlID0gcGFyc2VGbG9hdCh4VmFsdWUpOw0KICAgICAgICAgICAgICAgICAgICAgICAgc29ydE9ialt4VmFsdWVdID0gcm93c1tpXTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgICAgICBjYXNlIHRydWU6DQogICAgICAgICAgICAgICAgICAgICAgICBzb3J0QnlTdHJpbmcgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgc29ydE9ialt4VmFsdWUudG9Mb3dlckNhc2UoKSArIGldID0gcm93c1tpXTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KICAgICAgICB3aGlsZSAodGFibGUuZmlyc3RDaGlsZCkgew0KICAgICAgICAgICAgdGFibGUucmVtb3ZlQ2hpbGQodGFibGUuZmlyc3RDaGlsZCk7DQogICAgICAgIH0NCiAgICAgICAgdmFyIHNvcnRWYWx1ZXMgPSBnZXRPYmpLZXlzKHNvcnRPYmopOw0KICAgICAgICBpZiAoc29ydEJ5U3RyaW5nID09IHRydWUpIHsNCiAgICAgICAgICAgIHNvcnRWYWx1ZXMuc29ydCgpOw0KICAgICAgICAgICAgY29uc29sZS5sb2coc29ydFZhbHVlcyk7DQogICAgICAgIH0NCiAgICAgICAgZWxzZSB7DQogICAgICAgICAgICBmdW5jdGlvbiBzb3J0RmxvYXQoYSwgYikgew0KICAgICAgICAgICAgICAgIHJldHVybiBhIC0gYjsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIHNvcnRWYWx1ZXMuc29ydChzb3J0RmxvYXQpOw0KICAgICAgICB9DQogICAgICAgIHRhYmxlLmFwcGVuZENoaWxkKHRhYmxlSGVhZGVyKTsNCiAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBzb3J0VmFsdWVzLmxlbmd0aDsgaSsrKSB7DQogICAgICAgICAgICB0YWJsZS5hcHBlbmRDaGlsZChzb3J0T2JqW3NvcnRWYWx1ZXNbaV1dKTsNCiAgICAgICAgfQ0KICAgIH0NCiAgICByZXR1cm47DQp9DQpmdW5jdGlvbiBjcmVhdGVTZWFyY2hPYmooKSB7DQogICAgU0VBUkNIX01BUFBJTkcgPSBuZXcgT2JqZWN0KCk7DQogICAgdmFyIGRhdGEgPSBTRVJWRVJbInhlcGciXVsiZXBnTWFwcGluZyJdOw0KICAgIHZhciBjaGFubmVscyA9IGdldE9iaktleXMoZGF0YSk7DQogICAgdmFyIGNoYW5uZWxLZXlzID0gWyJ4LWFjdGl2ZSIsICJ4LWNoYW5uZWxJRCIsICJ4LW5hbWUiLCAiX2ZpbGUubTN1Lm5hbWUiLCAieC1ncm91cC10aXRsZSIsICJ4LXhtbHR2LWZpbGUiXTsNCiAgICBjaGFubmVscy5mb3JFYWNoKGlkID0+IHsNCiAgICAgICAgY2hhbm5lbEtleXMuZm9yRWFjaChrZXkgPT4gew0KICAgICAgICAgICAgaWYgKGtleSA9PSAieC1hY3RpdmUiKSB7DQogICAgICAgICAgICAgICAgc3dpdGNoIChkYXRhW2lkXVtrZXldKSB7DQogICAgICAgICAgICAgICAgICAgIGNhc2UgdHJ1ZToNCiAgICAgICAgICAgICAgICAgICAgICAgIFNFQVJDSF9NQVBQSU5HW2lkXSA9ICJvbmxpbmUgIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgICAgICBjYXNlIGZhbHNlOg0KICAgICAgICAgICAgICAgICAgICAgICAgU0VBUkNIX01BUFBJTkdbaWRdID0gIm9mZmxpbmUgIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgICAgIGlmIChrZXkgPT0gIngteG1sdHYtZmlsZSIpIHsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHhtbHR2RmlsZSA9IGdldFZhbHVlRnJvbVByb3ZpZGVyRmlsZShkYXRhW2lkXVtrZXldLCAieG1sdHYiLCAibmFtZSIpOw0KICAgICAgICAgICAgICAgICAgICBpZiAoeG1sdHZGaWxlICE9IHVuZGVmaW5lZCkgew0KICAgICAgICAgICAgICAgICAgICAgICAgU0VBUkNIX01BUFBJTkdbaWRdID0gU0VBUkNIX01BUFBJTkdbaWRdICsgeG1sdHZGaWxlICsgIiAiOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgICAgICAgICBTRUFSQ0hfTUFQUElOR1tpZF0gPSBTRUFSQ0hfTUFQUElOR1tpZF0gKyBkYXRhW2lkXVtrZXldICsgIiAiOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0NCiAgICAgICAgfSk7DQogICAgfSk7DQogICAgcmV0dXJuOw0KfQ0KZnVuY3Rpb24gc2VhcmNoSW5NYXBwaW5nKCkgew0KICAgIHZhciBzZWFyY2hWYWx1ZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzZWFyY2hNYXBwaW5nIikudmFsdWU7DQogICAgdmFyIHRycyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb250ZW50X3RhYmxlIikuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlRSIik7DQogICAgZm9yICh2YXIgaSA9IDE7IGkgPCB0cnMubGVuZ3RoOyArK2kpIHsNCiAgICAgICAgdmFyIGlkID0gdHJzW2ldLmdldEF0dHJpYnV0ZSgiaWQiKTsNCiAgICAgICAgdmFyIGVsZW1lbnQgPSBTRUFSQ0hfTUFQUElOR1tpZF07DQogICAgICAgIHN3aXRjaCAoZWxlbWVudC50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKHNlYXJjaFZhbHVlLnRvTG93ZXJDYXNlKCkpKSB7DQogICAgICAgICAgICBjYXNlIHRydWU6DQogICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpLnN0eWxlLmRpc3BsYXkgPSAiIjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgZmFsc2U6DQogICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpLnN0eWxlLmRpc3BsYXkgPSAibm9uZSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIH0NCiAgICB9DQogICAgcmV0dXJuOw0KfQ0KZnVuY3Rpb24gY2FsY3VsYXRlV3JhcHBlckhlaWdodCgpIHsNCiAgICBpZiAoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImJveC13cmFwcGVyIikpIHsNCiAgICAgICAgdmFyIGVsbSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJib3gtd3JhcHBlciIpOw0KICAgICAgICB2YXIgZGl2cyA9IG5ldyBBcnJheSgibXlTdHJlYW1zQm94IiwgImNsaWVudEluZm8iLCAiY29udGVudCIpOw0KICAgICAgICB2YXIgZWxlbWVudHNIZWlnaHQgPSAwIC0gZWxtLm9mZnNldEhlaWdodDsNCiAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBkaXZzLmxlbmd0aDsgaSsrKSB7DQogICAgICAgICAgICBlbGVtZW50c0hlaWdodCA9IGVsZW1lbnRzSGVpZ2h0ICsgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoZGl2c1tpXSkub2Zmc2V0SGVpZ2h0Ow0KICAgICAgICB9DQogICAgICAgIGVsbS5zdHlsZS5oZWlnaHQgPSB3aW5kb3cuaW5uZXJIZWlnaHQgLSBlbGVtZW50c0hlaWdodCArICJweCI7DQogICAgfQ0KICAgIHJldHVybjsNCn0NCmZ1bmN0aW9uIGNoYW5nZUNoYW5uZWxOdW1iZXIoZWxlbWVudCkgew0KICAgIHZhciBkYklEID0gZWxlbWVudC5wYXJlbnROb2RlLnBhcmVudE5vZGUuaWQ7DQogICAgdmFyIG5ld051bWJlciA9IHBhcnNlRmxvYXQoZWxlbWVudC52YWx1ZSk7DQogICAgdmFyIGNoYW5uZWxOdW1iZXJzID0gW107DQogICAgdmFyIGRhdGEgPSBTRVJWRVJbInhlcGciXVsiZXBnTWFwcGluZyJdOw0KICAgIHZhciBjaGFubmVscyA9IGdldE9iaktleXMoZGF0YSk7DQogICAgaWYgKGlzTmFOKG5ld051bWJlcikpIHsNCiAgICAgICAgYWxlcnQoInt7LmFsZXJ0LmludmFsaWRDaGFubmVsTnVtYmVyfX0iKTsNCiAgICAgICAgcmV0dXJuOw0KICAgIH0NCiAgICBjaGFubmVscy5mb3JFYWNoKGlkID0+IHsNCiAgICAgICAgdmFyIGNoYW5uZWxOdW1iZXIgPSBwYXJzZUZsb2F0KGRhdGFbaWRdWyJ4LWNoYW5uZWxJRCJdKTsNCiAgICAgICAgY2hhbm5lbE51bWJlcnMucHVzaChjaGFubmVsTnVtYmVyKTsNCiAgICB9KTsNCiAgICBmb3IgKHZhciBpID0gMDsgaSA8IGNoYW5uZWxOdW1iZXJzLmxlbmd0aDsgaSsrKSB7DQogICAgICAgIGlmIChjaGFubmVsTnVtYmVycy5pbmRleE9mKG5ld051bWJlcikgPT0gLTEpIHsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICB9DQogICAgICAgIGlmIChNYXRoLmZsb29yKG5ld051bWJlcikgPT0gbmV3TnVtYmVyKSB7DQogICAgICAgICAgICBuZXdOdW1iZXIgPSBuZXdOdW1iZXIgKyAxOw0KICAgICAgICB9DQogICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgbmV3TnVtYmVyID0gbmV3TnVtYmVyICsgMC4xOw0KICAgICAgICAgICAgbmV3TnVtYmVyLnRvRml4ZWQoMSk7DQogICAgICAgICAgICBuZXdOdW1iZXIgPSBNYXRoLnJvdW5kKG5ld051bWJlciAqIDEwKSAvIDEwOw0KICAgICAgICB9DQogICAgfQ0KICAgIGRhdGFbZGJJRF1bIngtY2hhbm5lbElEIl0gPSBuZXdOdW1iZXIudG9TdHJpbmcoKTsNCiAgICBlbGVtZW50LnZhbHVlID0gbmV3TnVtYmVyOw0KICAgIGNvbnNvbGUubG9nKGRhdGFbZGJJRF1bIngtY2hhbm5lbElEIl0pOw0KICAgIGlmIChDT0xVTU5fVE9fU09SVCA9PSAxKSB7DQogICAgICAgIENPTFVNTl9UT19TT1JUID0gLTE7DQogICAgICAgIHNvcnRUYWJsZSgxKTsNCiAgICB9DQogICAgcmV0dXJuOw0KfQ0KZnVuY3Rpb24gYmFja3VwKCkgew0KICAgIHZhciBkYXRhID0gbmV3IE9iamVjdCgpOw0KICAgIGNvbnNvbGUubG9nKCJCYWNrdXAgZGF0YSIpOw0KICAgIHZhciBjbWQgPSAieHRldmVCYWNrdXAiOw0KICAgIGNvbnNvbGUubG9nKCJTRU5EIFRPIFNFUlZFUiIpOw0KICAgIGNvbnNvbGUubG9nKGRhdGEpOw0KICAgIHZhciBzZXJ2ZXIgPSBuZXcgU2VydmVyKGNtZCk7DQogICAgc2VydmVyLnJlcXVlc3QoZGF0YSk7DQogICAgcmV0dXJuOw0KfQ0KZnVuY3Rpb24gdG9nZ2xlQ2hhbm5lbFN0YXR1cyhpZCkgew0KICAgIHZhciBlbGVtZW50Ow0KICAgIHZhciBzdGF0dXM7DQogICAgaWYgKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJhY3RpdmUiKSkgew0KICAgICAgICB2YXIgY2hlY2tib3ggPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYWN0aXZlIik7DQogICAgICAgIHN0YXR1cyA9IChjaGVja2JveCkuY2hlY2tlZDsNCiAgICB9DQogICAgdmFyIGlkcyA9IGdldEFsbFNlbGVjdGVkQ2hhbm5lbHMoKTsNCiAgICBpZiAoaWRzLmxlbmd0aCA9PSAwKSB7DQogICAgICAgIGlkcy5wdXNoKGlkKTsNCiAgICB9DQogICAgaWRzLmZvckVhY2goaWQgPT4gew0KICAgICAgICB2YXIgY2hhbm5lbCA9IFNFUlZFUlsieGVwZyJdWyJlcGdNYXBwaW5nIl1baWRdOw0KICAgICAgICBjaGFubmVsWyJ4LWFjdGl2ZSJdID0gc3RhdHVzOw0KICAgICAgICBzd2l0Y2ggKGNoYW5uZWxbIngtYWN0aXZlIl0pIHsNCiAgICAgICAgICAgIGNhc2UgdHJ1ZToNCiAgICAgICAgICAgICAgICBpZiAoY2hhbm5lbFsieC14bWx0di1maWxlIl0gPT0gIi0iIHx8IGNoYW5uZWxbIngtbWFwcGluZyJdID09ICItIikgew0KICAgICAgICAgICAgICAgICAgICBpZiAoQlVMS19FRElUID09IGZhbHNlKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBhbGVydChjaGFubmVsWyJ4LW5hbWUiXSArICI6IE1pc3NpbmcgWE1MVFYgZmlsZSAvIGNoYW5uZWwiKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNoZWNrYm94LmNoZWNrZWQgPSBmYWxzZTsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBjaGFubmVsWyJ4LWFjdGl2ZSJdID0gZmFsc2U7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSBmYWxzZToNCiAgICAgICAgICAgICAgICAvLyBjb2RlLi4uDQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIH0NCiAgICAgICAgaWYgKGNoYW5uZWxbIngtYWN0aXZlIl0gPT0gZmFsc2UpIHsNCiAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5jbGFzc05hbWUgPSAibm90QWN0aXZlRVBHIjsNCiAgICAgICAgfQ0KICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5jbGFzc05hbWUgPSAiYWN0aXZlRVBHIjsNCiAgICAgICAgfQ0KICAgIH0pOw0KfQ0KZnVuY3Rpb24gcmVzdG9yZSgpIHsNCiAgICBpZiAoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3VwbG9hZCcpKSB7DQogICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd1cGxvYWQnKS5yZW1vdmUoKTsNCiAgICB9DQogICAgdmFyIHJlc3RvcmUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJJTlBVVCIpOw0KICAgIHJlc3RvcmUuc2V0QXR0cmlidXRlKCJ0eXBlIiwgImZpbGUiKTsNCiAgICByZXN0b3JlLnNldEF0dHJpYnV0ZSgiY2xhc3MiLCAibm90VmlzaWJsZSIpOw0KICAgIHJlc3RvcmUuc2V0QXR0cmlidXRlKCJuYW1lIiwgIiIpOw0KICAgIHJlc3RvcmUuaWQgPSAidXBsb2FkIjsNCiAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHJlc3RvcmUpOw0KICAgIHJlc3RvcmUuY2xpY2soKTsNCiAgICByZXN0b3JlLm9uY2hhbmdlID0gZnVuY3Rpb24gKCkgew0KICAgICAgICB2YXIgZmlsZW5hbWUgPSByZXN0b3JlLmZpbGVzWzBdLm5hbWU7DQogICAgICAgIHZhciBjaGVjayA9IGNvbmZpcm0oIkZpbGU6ICIgKyBmaWxlbmFtZSArICJcbnt7LmNvbmZpcm0ucmVzdG9yZX19Iik7DQogICAgICAgIGlmIChjaGVjayA9PSB0cnVlKSB7DQogICAgICAgICAgICB2YXIgcmVhZGVyID0gbmV3IEZpbGVSZWFkZXIoKTsNCiAgICAgICAgICAgIHZhciBmaWxlID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignaW5wdXRbdHlwZT1maWxlXScpLmZpbGVzWzBdOw0KICAgICAgICAgICAgaWYgKGZpbGUpIHsNCiAgICAgICAgICAgICAgICByZWFkZXIucmVhZEFzRGF0YVVSTChmaWxlKTsNCiAgICAgICAgICAgICAgICByZWFkZXIub25sb2FkID0gZnVuY3Rpb24gKCkgew0KICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhyZWFkZXIucmVzdWx0KTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGRhdGEgPSBuZXcgT2JqZWN0KCk7DQogICAgICAgICAgICAgICAgICAgIHZhciBjbWQgPSAieHRldmVSZXN0b3JlIjsNCiAgICAgICAgICAgICAgICAgICAgZGF0YVsiYmFzZTY0Il0gPSByZWFkZXIucmVzdWx0Ow0KICAgICAgICAgICAgICAgICAgICB2YXIgc2VydmVyID0gbmV3IFNlcnZlcihjbWQpOw0KICAgICAgICAgICAgICAgICAgICBzZXJ2ZXIucmVxdWVzdChkYXRhKTsNCiAgICAgICAgICAgICAgICB9Ow0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgZWxzZSB7DQogICAgICAgICAgICAgICAgYWxlcnQoIkZpbGUgY291bGQgbm90IGJlIGxvYWRlZCIpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgcmVzdG9yZS5yZW1vdmUoKTsNCiAgICAgICAgICAgIHJldHVybjsNCiAgICAgICAgfQ0KICAgIH07DQogICAgcmV0dXJuOw0KfQ0KZnVuY3Rpb24gdXBsb2FkTG9nbygpIHsNCiAgICBpZiAoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3VwbG9hZCcpKSB7DQogICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd1cGxvYWQnKS5yZW1vdmUoKTsNCiAgICB9DQogICAgdmFyIHVwbG9hZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIklOUFVUIik7DQogICAgdXBsb2FkLnNldEF0dHJpYnV0ZSgidHlwZSIsICJmaWxlIik7DQogICAgdXBsb2FkLnNldEF0dHJpYnV0ZSgiY2xhc3MiLCAibm90VmlzaWJsZSIpOw0KICAgIHVwbG9hZC5zZXRBdHRyaWJ1dGUoIm5hbWUiLCAiIik7DQogICAgdXBsb2FkLmlkID0gInVwbG9hZCI7DQogICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZCh1cGxvYWQpOw0KICAgIHVwbG9hZC5jbGljaygpOw0KICAgIHVwbG9hZC5vbmJsdXIgPSBmdW5jdGlvbiAoKSB7DQogICAgICAgIGFsZXJ0KCk7DQogICAgfTsNCiAgICB1cGxvYWQub25jaGFuZ2UgPSBmdW5jdGlvbiAoKSB7DQogICAgICAgIHZhciBmaWxlbmFtZSA9IHVwbG9hZC5maWxlc1swXS5uYW1lOw0KICAgICAgICB2YXIgcmVhZGVyID0gbmV3IEZpbGVSZWFkZXIoKTsNCiAgICAgICAgdmFyIGZpbGUgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCdpbnB1dFt0eXBlPWZpbGVdJykuZmlsZXNbMF07DQogICAgICAgIGlmIChmaWxlKSB7DQogICAgICAgICAgICByZWFkZXIucmVhZEFzRGF0YVVSTChmaWxlKTsNCiAgICAgICAgICAgIHJlYWRlci5vbmxvYWQgPSBmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICAgICAgY29uc29sZS5sb2cocmVhZGVyLnJlc3VsdCk7DQogICAgICAgICAgICAgICAgdmFyIGRhdGEgPSBuZXcgT2JqZWN0KCk7DQogICAgICAgICAgICAgICAgdmFyIGNtZCA9ICJ1cGxvYWRMb2dvIjsNCiAgICAgICAgICAgICAgICBkYXRhWyJiYXNlNjQiXSA9IHJlYWRlci5yZXN1bHQ7DQogICAgICAgICAgICAgICAgZGF0YVsiZmlsZW5hbWUiXSA9IGZpbGUubmFtZTsNCiAgICAgICAgICAgICAgICB2YXIgc2VydmVyID0gbmV3IFNlcnZlcihjbWQpOw0KICAgICAgICAgICAgICAgIHNlcnZlci5yZXF1ZXN0KGRhdGEpOw0KICAgICAgICAgICAgICAgIHZhciB1cGRhdGVMb2dvID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3VwZGF0ZS1pY29uJyk7DQogICAgICAgICAgICAgICAgdXBkYXRlTG9nby5jaGVja2VkID0gZmFsc2U7DQogICAgICAgICAgICAgICAgdXBkYXRlTG9nby5jbGFzc05hbWUgPSAiY2hhbmdlZCI7DQogICAgICAgICAgICB9Ow0KICAgICAgICB9DQogICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgYWxlcnQoIkZpbGUgY291bGQgbm90IGJlIGxvYWRlZCIpOw0KICAgICAgICB9DQogICAgICAgIHVwbG9hZC5yZW1vdmUoKTsNCiAgICAgICAgcmV0dXJuOw0KICAgIH07DQp9DQpmdW5jdGlvbiBjaGVja1VuZG8oa2V5KSB7DQogICAgc3dpdGNoIChrZXkpIHsNCiAgICAgICAgY2FzZSAiZXBnTWFwcGluZyI6DQogICAgICAgICAgICBpZiAoVU5ETy5oYXNPd25Qcm9wZXJ0eShrZXkpKSB7DQogICAgICAgICAgICAgICAgU0VSVkVSWyJ4ZXBnIl1ba2V5XSA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkoVU5ET1trZXldKSk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICBVTkRPW2tleV0gPSBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KFNFUlZFUlsieGVwZyJdW2tleV0pKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBkZWZhdWx0Og0KICAgICAgICAgICAgYnJlYWs7DQogICAgfQ0KICAgIHJldHVybjsNCn0NCmZ1bmN0aW9uIHNvcnRTZWxlY3QoZWxlbSkgew0KICAgIHZhciB0bXBBcnkgPSBbXTsNCiAgICB2YXIgc2VsZWN0ZWRWYWx1ZSA9IGVsZW1bZWxlbS5zZWxlY3RlZEluZGV4XS52YWx1ZTsNCiAgICBmb3IgKHZhciBpID0gMDsgaSA8IGVsZW0ub3B0aW9ucy5sZW5ndGg7IGkrKykNCiAgICAgICAgdG1wQXJ5LnB1c2goZWxlbS5vcHRpb25zW2ldKTsNCiAgICB0bXBBcnkuc29ydChmdW5jdGlvbiAoYSwgYikgeyByZXR1cm4gKGEudGV4dCA8IGIudGV4dCkgPyAtMSA6IDE7IH0pOw0KICAgIHdoaWxlIChlbGVtLm9wdGlvbnMubGVuZ3RoID4gMCkNCiAgICAgICAgZWxlbS5vcHRpb25zWzBdID0gbnVsbDsNCiAgICB2YXIgbmV3U2VsZWN0ZWRJbmRleCA9IDA7DQogICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0bXBBcnkubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgZWxlbS5vcHRpb25zW2ldID0gdG1wQXJ5W2ldOw0KICAgICAgICBpZiAoZWxlbS5vcHRpb25zW2ldLnZhbHVlID09IHNlbGVjdGVkVmFsdWUpDQogICAgICAgICAgICBuZXdTZWxlY3RlZEluZGV4ID0gaTsNCiAgICB9DQogICAgZWxlbS5zZWxlY3RlZEluZGV4ID0gbmV3U2VsZWN0ZWRJbmRleDsgLy8gU2V0IG5ldyBzZWxlY3RlZCBpbmRleCBhZnRlciBzb3J0aW5nDQogICAgcmV0dXJuOw0KfQ0KZnVuY3Rpb24gdXBkYXRlTG9nKCkgew0KICAgIGNvbnNvbGUubG9nKCJUT0tFTiIpOw0KICAgIHZhciBzZXJ2ZXIgPSBuZXcgU2VydmVyKCJ1cGRhdGVMb2ciKTsNCiAgICBzZXJ2ZXIucmVxdWVzdChuZXcgT2JqZWN0KCkpOw0KfQ0K" - webUI["html/js/menu_ts.js"] = "Y2xhc3MgTWFpbk1lbnUgew0KICAgIGNvbnN0cnVjdG9yKCkgew0KICAgICAgICB0aGlzLkRvY3VtZW50SUQgPSAibWFpbi1tZW51IjsNCiAgICAgICAgdGhpcy5IVE1MVGFnID0gIkxJIjsNCiAgICAgICAgdGhpcy5JbWFnZVBhdGggPSAiaW1nLyI7DQogICAgfQ0KICAgIGNyZWF0ZUlNRyhzcmMpIHsNCiAgICAgICAgbGV0IGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJJTUciKTsNCiAgICAgICAgZWxlbWVudC5zZXRBdHRyaWJ1dGUoInNyYyIsIHRoaXMuSW1hZ2VQYXRoICsgc3JjKTsNCiAgICAgICAgcmV0dXJuIGVsZW1lbnQ7DQogICAgfQ0KICAgIGNyZWF0ZVZhbHVlKHZhbHVlKSB7DQogICAgICAgIGxldCBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiUCIpOw0KICAgICAgICBlbGVtZW50LmlubmVySFRNTCA9IHZhbHVlOw0KICAgICAgICByZXR1cm4gZWxlbWVudDsNCiAgICB9DQp9DQpjbGFzcyBNYWluTWVudUl0ZW0gZXh0ZW5kcyBNYWluTWVudSB7DQogICAgY29uc3RydWN0b3IobWVudUtleSwgdmFsdWUsIGltYWdlLCBoZWFkbGluZSkgew0KICAgICAgICBzdXBlcigpOw0KICAgICAgICB0aGlzLm1lbnVLZXkgPSBtZW51S2V5Ow0KICAgICAgICB0aGlzLnZhbHVlID0gdmFsdWU7DQogICAgICAgIHRoaXMuaW1nU3JjID0gaW1hZ2U7DQogICAgICAgIHRoaXMuaGVhZGxpbmUgPSBoZWFkbGluZTsNCiAgICB9DQogICAgY3JlYXRlSXRlbSgpIHsNCiAgICAgICAgbGV0IGl0ZW0gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJMSSIpOw0KICAgICAgICBpdGVtLnNldEF0dHJpYnV0ZSgib25jbGljayIsICJqYXZhc2NyaXB0OiBvcGVuVGhpc01lbnUodGhpcykiKTsNCiAgICAgICAgaXRlbS5zZXRBdHRyaWJ1dGUoImlkIiwgdGhpcy5pZCk7DQogICAgICAgIGxldCBpbWcgPSB0aGlzLmNyZWF0ZUlNRyh0aGlzLmltZ1NyYyk7DQogICAgICAgIGxldCB2YWx1ZSA9IHRoaXMuY3JlYXRlVmFsdWUodGhpcy52YWx1ZSk7DQogICAgICAgIGl0ZW0uYXBwZW5kQ2hpbGQoaW1nKTsNCiAgICAgICAgaXRlbS5hcHBlbmRDaGlsZCh2YWx1ZSk7DQogICAgICAgIGxldCBkb2MgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCh0aGlzLkRvY3VtZW50SUQpOw0KICAgICAgICBkb2MuYXBwZW5kQ2hpbGQoaXRlbSk7DQogICAgICAgIHN3aXRjaCAodGhpcy5tZW51S2V5KSB7DQogICAgICAgICAgICBjYXNlICJwbGF5bGlzdCI6DQogICAgICAgICAgICAgICAgdGhpcy50YWJsZUhlYWRlciA9IFsie3sucGxheWxpc3QudGFibGUucGxheWxpc3R9fSIsICJ7ey5wbGF5bGlzdC50YWJsZS50dW5lcn19IiwgInt7LnBsYXlsaXN0LnRhYmxlLmxhc3RVcGRhdGV9fSIsICJ7ey5wbGF5bGlzdC50YWJsZS5hdmFpbGFiaWxpdHl9fSAlIiwgInt7LnBsYXlsaXN0LnRhYmxlLnR5cGV9fSIsICJ7ey5wbGF5bGlzdC50YWJsZS5zdHJlYW1zfX0iLCAie3sucGxheWxpc3QudGFibGUuZ3JvdXBUaXRsZX19ICUiLCAie3sucGxheWxpc3QudGFibGUudHZnSUR9fSAlIiwgInt7LnBsYXlsaXN0LnRhYmxlLnVuaXF1ZUlEfX0gJSJdOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAieG1sdHYiOg0KICAgICAgICAgICAgICAgIHRoaXMudGFibGVIZWFkZXIgPSBbInt7LnhtbHR2LnRhYmxlLmd1aWRlfX0iLCAie3sueG1sdHYudGFibGUubGFzdFVwZGF0ZX19IiwgInt7LnhtbHR2LnRhYmxlLmF2YWlsYWJpbGl0eX19ICUiLCAie3sueG1sdHYudGFibGUuY2hhbm5lbHN9fSIsICJ7ey54bWx0di50YWJsZS5wcm9ncmFtc319Il07DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJmaWx0ZXIiOg0KICAgICAgICAgICAgICAgIHRoaXMudGFibGVIZWFkZXIgPSBbInt7LmZpbHRlci50YWJsZS5uYW1lfX0iLCAie3suZmlsdGVyLnRhYmxlLnR5cGV9fSIsICJ7ey5maWx0ZXIudGFibGUuZmlsdGVyfX0iXTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInVzZXJzIjoNCiAgICAgICAgICAgICAgICB0aGlzLnRhYmxlSGVhZGVyID0gWyJ7ey51c2Vycy50YWJsZS51c2VybmFtZX19IiwgInt7LnVzZXJzLnRhYmxlLnBhc3N3b3JkfX0iLCAie3sudXNlcnMudGFibGUud2VifX0iLCAie3sudXNlcnMudGFibGUucG1zfX0iLCAie3sudXNlcnMudGFibGUubTN1fX0iLCAie3sudXNlcnMudGFibGUueG1sfX0iLCAie3sudXNlcnMudGFibGUuYXBpfX0iXTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgIm1hcHBpbmciOg0KICAgICAgICAgICAgICAgIHRoaXMudGFibGVIZWFkZXIgPSBbIkJVTEsiLCAie3subWFwcGluZy50YWJsZS5jaE5vfX0iLCAie3subWFwcGluZy50YWJsZS5sb2dvfX0iLCAie3subWFwcGluZy50YWJsZS5jaGFubmVsTmFtZX19IiwgInt7Lm1hcHBpbmcudGFibGUucGxheWxpc3R9fSIsICJ7ey5tYXBwaW5nLnRhYmxlLmdyb3VwVGl0bGV9fSIsICJ7ey5tYXBwaW5nLnRhYmxlLnhtbHR2RmlsZX19IiwgInt7Lm1hcHBpbmcudGFibGUueG1sdHZJRH19IiwgInt7Lm1hcHBpbmcudGFibGUudGltZXNoaWZ0fX0iXTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgfQ0KICAgICAgICAvL2NvbnNvbGUubG9nKHRoaXMubWVudUtleSwgdGhpcy50YWJsZUhlYWRlcik7DQogICAgfQ0KfQ0KY2xhc3MgQ29udGVudCB7DQogICAgY29uc3RydWN0b3IoKSB7DQogICAgICAgIHRoaXMuRG9jdW1lbnRJRCA9ICJjb250ZW50IjsNCiAgICAgICAgdGhpcy5UYWJsZUlEID0gImNvbnRlbnRfdGFibGUiOw0KICAgICAgICB0aGlzLmhlYWRlckNsYXNzID0gImNvbnRlbnRfdGFibGVfaGVhZGVyIjsNCiAgICAgICAgdGhpcy5pbnRlcmFjdGlvbklEID0gImNvbnRlbnQtaW50ZXJhY3Rpb24iOw0KICAgIH0NCiAgICBjcmVhdGVIZWFkbGluZSh2YWx1ZSkgew0KICAgICAgICBsZXQgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIkgzIik7DQogICAgICAgIGVsZW1lbnQuaW5uZXJIVE1MID0gdmFsdWU7DQogICAgICAgIHJldHVybiBlbGVtZW50Ow0KICAgIH0NCiAgICBjcmVhdGVIUigpIHsNCiAgICAgICAgcmV0dXJuIGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIkhSIik7DQogICAgfQ0KICAgIGNyZWF0ZUludGVyYWN0aW9uKCkgew0KICAgICAgICBsZXQgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIkRJViIpOw0KICAgICAgICBlbGVtZW50LnNldEF0dHJpYnV0ZSgiaWQiLCB0aGlzLmludGVyYWN0aW9uSUQpOw0KICAgICAgICByZXR1cm4gZWxlbWVudDsNCiAgICB9DQogICAgY3JlYXRlRElWKCkgew0KICAgICAgICBsZXQgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIkRJViIpOw0KICAgICAgICBlbGVtZW50LmlkID0gdGhpcy5EaXZJRDsNCiAgICAgICAgcmV0dXJuIGVsZW1lbnQ7DQogICAgfQ0KICAgIGNyZWF0ZVRBQkxFKCkgew0KICAgICAgICBsZXQgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlRBQkxFIik7DQogICAgICAgIGVsZW1lbnQuaWQgPSB0aGlzLlRhYmxlSUQ7DQogICAgICAgIHJldHVybiBlbGVtZW50Ow0KICAgIH0NCiAgICBjcmVhdGVUYWJsZVJvdygpIHsNCiAgICAgICAgbGV0IGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJUUiIpOw0KICAgICAgICBlbGVtZW50LmNsYXNzTmFtZSA9IHRoaXMuaGVhZGVyQ2xhc3M7DQogICAgICAgIHJldHVybiBlbGVtZW50Ow0KICAgIH0NCiAgICBjcmVhdGVUYWJsZUNvbnRlbnQobWVudUtleSkgew0KICAgICAgICBsZXQgZGF0YSA9IHt9Ow0KICAgICAgICBsZXQgcm93cyA9IFtdOw0KICAgICAgICBsZXQgZmlsZVR5cGVzID0gW107DQogICAgICAgIHN3aXRjaCAobWVudUtleSkgew0KICAgICAgICAgICAgY2FzZSAicGxheWxpc3QiOg0KICAgICAgICAgICAgICAgIGZpbGVUeXBlcyA9IFsibTN1IiwgImhkaHIiXTsNCiAgICAgICAgICAgICAgICBmaWxlVHlwZXMuZm9yRWFjaChmaWxlVHlwZSA9PiB7DQogICAgICAgICAgICAgICAgICAgIGRhdGEgPSBTRVJWRVJbInNldHRpbmdzIl1bImZpbGVzIl1bZmlsZVR5cGVdOw0KICAgICAgICAgICAgICAgICAgICB2YXIga2V5cyA9IGdldE9iaktleXMoZGF0YSk7DQogICAgICAgICAgICAgICAgICAgIGtleXMuZm9yRWFjaChrZXkgPT4gew0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVFIiKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmlkID0ga2V5Ow0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgiJyArIGZpbGVUeXBlICsgJyIsIHRoaXMpJyk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsibmFtZSJdOw0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChTRVJWRVJbInNldHRpbmdzIl1bImJ1ZmZlciJdICE9ICItIikgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bInR1bmVyIl07DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gIi0iOw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bImxhc3QudXBkYXRlIl07DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsicHJvdmlkZXIuYXZhaWxhYmlsaXR5Il07DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsidHlwZSJdLnRvVXBwZXJDYXNlKCk7DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsiY29tcGF0aWJpbGl0eSJdWyJzdHJlYW1zIl07DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsiY29tcGF0aWJpbGl0eSJdWyJncm91cC50aXRsZSJdOw0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bImNvbXBhdGliaWxpdHkiXVsidHZnLmlkIl07DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsiY29tcGF0aWJpbGl0eSJdWyJzdHJlYW0uaWQiXTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHJvd3MucHVzaCh0cik7DQogICAgICAgICAgICAgICAgICAgIH0pOw0KICAgICAgICAgICAgICAgIH0pOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiZmlsdGVyIjoNCiAgICAgICAgICAgICAgICBkZWxldGUgU0VSVkVSWyJzZXR0aW5ncyJdWyJmaWx0ZXIiXVstMV07DQogICAgICAgICAgICAgICAgZGF0YSA9IFNFUlZFUlsic2V0dGluZ3MiXVsiZmlsdGVyIl07DQogICAgICAgICAgICAgICAgdmFyIGtleXMgPSBnZXRPYmpLZXlzKGRhdGEpOw0KICAgICAgICAgICAgICAgIGtleXMuZm9yRWFjaChrZXkgPT4gew0KICAgICAgICAgICAgICAgICAgICB2YXIgdHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJUUiIpOw0KICAgICAgICAgICAgICAgICAgICB0ci5pZCA9IGtleTsNCiAgICAgICAgICAgICAgICAgICAgdHIuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgiJyArIGRhdGFba2V5XVsidHlwZSJdICsgJyIsIHRoaXMpJyk7DQogICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJuYW1lIl07DQogICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgIHN3aXRjaCAoZGF0YVtrZXldWyJ0eXBlIl0pIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgImN1c3RvbS1maWx0ZXIiOg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSAie3suZmlsdGVyLmN1c3RvbX19IjsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgImdyb3VwLXRpdGxlIjoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gInt7LmZpbHRlci5ncm91cH19IjsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsiZmlsdGVyIl07DQogICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgcm93cy5wdXNoKHRyKTsNCiAgICAgICAgICAgICAgICB9KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInhtbHR2IjoNCiAgICAgICAgICAgICAgICBmaWxlVHlwZXMgPSBuZXcgQXJyYXkoInhtbHR2Iik7DQogICAgICAgICAgICAgICAgZmlsZVR5cGVzLmZvckVhY2goZmlsZVR5cGUgPT4gew0KICAgICAgICAgICAgICAgICAgICBkYXRhID0gU0VSVkVSWyJzZXR0aW5ncyJdWyJmaWxlcyJdW2ZpbGVUeXBlXTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGtleXMgPSBnZXRPYmpLZXlzKGRhdGEpOw0KICAgICAgICAgICAgICAgICAgICBrZXlzLmZvckVhY2goa2V5ID0+IHsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciB0ciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlRSIik7DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5pZCA9IGtleTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoIicgKyBmaWxlVHlwZSArICciLCB0aGlzKScpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bIm5hbWUiXTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJsYXN0LnVwZGF0ZSJdOw0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bInByb3ZpZGVyLmF2YWlsYWJpbGl0eSJdOw0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bImNvbXBhdGliaWxpdHkiXVsieG1sdHYuY2hhbm5lbHMiXTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJjb21wYXRpYmlsaXR5Il1bInhtbHR2LnByb2dyYW1zIl07DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICByb3dzLnB1c2godHIpOw0KICAgICAgICAgICAgICAgICAgICB9KTsNCiAgICAgICAgICAgICAgICB9KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInVzZXJzIjoNCiAgICAgICAgICAgICAgICBmaWxlVHlwZXMgPSBuZXcgQXJyYXkoInVzZXJzIik7DQogICAgICAgICAgICAgICAgZmlsZVR5cGVzLmZvckVhY2goZmlsZVR5cGUgPT4gew0KICAgICAgICAgICAgICAgICAgICBkYXRhID0gU0VSVkVSW2ZpbGVUeXBlXTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGtleXMgPSBnZXRPYmpLZXlzKGRhdGEpOw0KICAgICAgICAgICAgICAgICAgICBrZXlzLmZvckVhY2goa2V5ID0+IHsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciB0ciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlRSIik7DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5pZCA9IGtleTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoIicgKyBmaWxlVHlwZSArICciLCB0aGlzKScpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bImRhdGEiXVsidXNlcm5hbWUiXTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gIioqKioqKiI7DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGRhdGFba2V5XVsiZGF0YSJdWyJhdXRoZW50aWNhdGlvbi53ZWIiXSA9PSB0cnVlKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9ICLinJMiOw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9ICItIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgICAgICBpZiAoZGF0YVtrZXldWyJkYXRhIl1bImF1dGhlbnRpY2F0aW9uLnBtcyJdID09IHRydWUpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gIuKckyI7DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gIi0iOw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChkYXRhW2tleV1bImRhdGEiXVsiYXV0aGVudGljYXRpb24ubTN1Il0gPT0gdHJ1ZSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSAi4pyTIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSAiLSI7DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGRhdGFba2V5XVsiZGF0YSJdWyJhdXRoZW50aWNhdGlvbi54bWwiXSA9PSB0cnVlKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9ICLinJMiOw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9ICItIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgICAgICBpZiAoZGF0YVtrZXldWyJkYXRhIl1bImF1dGhlbnRpY2F0aW9uLmFwaSJdID09IHRydWUpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gIuKckyI7DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gIi0iOw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgcm93cy5wdXNoKHRyKTsNCiAgICAgICAgICAgICAgICAgICAgfSk7DQogICAgICAgICAgICAgICAgfSk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJtYXBwaW5nIjoNCiAgICAgICAgICAgICAgICBCVUxLX0VESVQgPSBmYWxzZTsNCiAgICAgICAgICAgICAgICBjcmVhdGVTZWFyY2hPYmooKTsNCiAgICAgICAgICAgICAgICBjaGVja1VuZG8oImVwZ01hcHBpbmciKTsNCiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZygiTUFQUElORyIpOw0KICAgICAgICAgICAgICAgIGRhdGEgPSBTRVJWRVJbInhlcGciXVsiZXBnTWFwcGluZyJdOw0KICAgICAgICAgICAgICAgIHZhciBrZXlzID0gZ2V0T2JqS2V5cyhkYXRhKTsNCiAgICAgICAgICAgICAgICBrZXlzLmZvckVhY2goa2V5ID0+IHsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVFIiKTsNCiAgICAgICAgICAgICAgICAgICAgdHIuaWQgPSBrZXk7DQogICAgICAgICAgICAgICAgICAgIC8vdHIuc2V0QXR0cmlidXRlKCdvbmNvbnRleHRtZW51JywgJ2phdmFzY3JpcHQ6IHJpZ2h0Q2xpY2sodGhpcyknKQ0KICAgICAgICAgICAgICAgICAgICBzd2l0Y2ggKGRhdGFba2V5XVsieC1hY3RpdmUiXSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSB0cnVlOg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyLmNsYXNzTmFtZSA9ICJhY3RpdmVFUEciOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSBmYWxzZToNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ci5jbGFzc05hbWUgPSAibm90QWN0aXZlRVBHIjsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAvLyBCdWxrDQogICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIkJVTEsiOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZmFsc2U7DQogICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgLy8gS2FuYWxudW1tZXINCiAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiSU5QVVRDSEFOTkVMIjsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsieC1jaGFubmVsSUQiXTsNCiAgICAgICAgICAgICAgICAgICAgLy90ZC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogY2hhbmdlQ2hhbm5lbE51bWJlcigiJyArIGtleSArICciLCB0aGlzKScpDQogICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgLy8gTG9nbw0KICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJJTUciOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmltYWdlVVJMID0gZGF0YVtrZXldWyJ0dmctbG9nbyJdOw0KICAgICAgICAgICAgICAgICAgICB2YXIgdGQgPSBjZWxsLmNyZWF0ZUNlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgdGQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgibWFwcGluZyIsIHRoaXMpJyk7DQogICAgICAgICAgICAgICAgICAgIHRkLmlkID0ga2V5Ow0KICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZCh0ZCk7DQogICAgICAgICAgICAgICAgICAgIC8vIEthbmFsbmFtZQ0KICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jbGFzc05hbWUgPSBkYXRhW2tleV1bIngtY2F0ZWdvcnkiXTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsieC1uYW1lIl07DQogICAgICAgICAgICAgICAgICAgIHZhciB0ZCA9IGNlbGwuY3JlYXRlQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICB0ZC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJtYXBwaW5nIiwgdGhpcyknKTsNCiAgICAgICAgICAgICAgICAgICAgdGQuaWQgPSBrZXk7DQogICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKHRkKTsNCiAgICAgICAgICAgICAgICAgICAgLy8gUGxheWxpc3QNCiAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgIC8vY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsiX2ZpbGUubTN1Lm5hbWUiXSANCiAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGdldFZhbHVlRnJvbVByb3ZpZGVyRmlsZShkYXRhW2tleV1bIl9maWxlLm0zdS5pZCJdLCAibTN1IiwgIm5hbWUiKTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHRkID0gY2VsbC5jcmVhdGVDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgIHRkLnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoIm1hcHBpbmciLCB0aGlzKScpOw0KICAgICAgICAgICAgICAgICAgICB0ZC5pZCA9IGtleTsNCiAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQodGQpOw0KICAgICAgICAgICAgICAgICAgICAvLyBHcnVwcGUgKGdyb3VwLXRpdGxlKQ0KICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsieC1ncm91cC10aXRsZSJdOw0KICAgICAgICAgICAgICAgICAgICB2YXIgdGQgPSBjZWxsLmNyZWF0ZUNlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgdGQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgibWFwcGluZyIsIHRoaXMpJyk7DQogICAgICAgICAgICAgICAgICAgIHRkLmlkID0ga2V5Ow0KICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZCh0ZCk7DQogICAgICAgICAgICAgICAgICAgIC8vIFhNTFRWIERhdGVpDQogICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICBpZiAoZGF0YVtrZXldWyJ4LXhtbHR2LWZpbGUiXSAhPSAiLSIpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBnZXRWYWx1ZUZyb21Qcm92aWRlckZpbGUoZGF0YVtrZXldWyJ4LXhtbHR2LWZpbGUiXSwgInhtbHR2IiwgIm5hbWUiKTsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bIngteG1sdHYtZmlsZSJdOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIHZhciB0ZCA9IGNlbGwuY3JlYXRlQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICB0ZC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJtYXBwaW5nIiwgdGhpcyknKTsNCiAgICAgICAgICAgICAgICAgICAgdGQuaWQgPSBrZXk7DQogICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKHRkKTsNCiAgICAgICAgICAgICAgICAgICAgLy8gWE1MVFYgS2FuYWwNCiAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgIC8vdmFyIHZhbHVlID0gc3RyLnN1YnN0cmluZygxLCA0KTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHZhbHVlID0gZGF0YVtrZXldWyJ4LW1hcHBpbmciXTsNCiAgICAgICAgICAgICAgICAgICAgaWYgKHZhbHVlLmxlbmd0aCA+IDIwKSB7DQogICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IGRhdGFba2V5XVsieC1tYXBwaW5nIl0uc3Vic3RyaW5nKDAsIDIwKSArICIuLi4iOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSB2YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHRkID0gY2VsbC5jcmVhdGVDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgIHRkLnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoIm1hcHBpbmciLCB0aGlzKScpOw0KICAgICAgICAgICAgICAgICAgICB0ZC5pZCA9IGtleTsNCiAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQodGQpOw0KICAgICAgICAgICAgICAgICAgICAvLyBUaW1lU2hpZnQNCiAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bIngtdGltZXNoaWZ0Il07DQogICAgICAgICAgICAgICAgICAgIHZhciB0ZCA9IGNlbGwuY3JlYXRlQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICB0ZC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJtYXBwaW5nIiwgdGhpcyknKTsNCiAgICAgICAgICAgICAgICAgICAgdGQuaWQgPSBrZXk7DQogICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKHRkKTsNCiAgICAgICAgICAgICAgICAgICAgcm93cy5wdXNoKHRyKTsNCiAgICAgICAgICAgICAgICB9KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInNldHRpbmdzIjoNCiAgICAgICAgICAgICAgICBhbGVydCgpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZygiVGFibGUgY29udGVudCAobWVudUtleSk6IiwgbWVudUtleSk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIH0NCiAgICAgICAgcmV0dXJuIHJvd3M7DQogICAgfQ0KfQ0KY2xhc3MgQ2VsbCB7DQogICAgY3JlYXRlQ2VsbCgpIHsNCiAgICAgICAgbGV0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgaWYgKHRoaXMuY2hpbGQgPT0gdHJ1ZSkgew0KICAgICAgICAgICAgdmFyIGVsZW1lbnQ7DQogICAgICAgICAgICBzd2l0Y2ggKHRoaXMuY2hpbGRUeXBlKSB7DQogICAgICAgICAgICAgICAgY2FzZSAiUCI6DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KHRoaXMuY2hpbGRUeXBlKTsNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC5pbm5lckhUTUwgPSB0aGlzLnZhbHVlOw0KICAgICAgICAgICAgICAgICAgICBlbGVtZW50LmNsYXNzTmFtZSA9IHRoaXMuY2xhc3NOYW1lOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBjYXNlICJJTlBVVCI6DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KHRoaXMuY2hpbGRUeXBlKTsNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC52YWx1ZSA9IHRoaXMudmFsdWU7DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQudHlwZSA9ICJ0ZXh0IjsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAiSU5QVVRDSEFOTkVMIjoNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIklOUFVUIik7DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZzY3JpcHQ6IGNoYW5nZUNoYW5uZWxOdW1iZXIodGhpcykiKTsNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC52YWx1ZSA9IHRoaXMudmFsdWU7DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQudHlwZSA9ICJ0ZXh0IjsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAiQlVMSyI6DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJJTlBVVCIpOw0KICAgICAgICAgICAgICAgICAgICBlbGVtZW50LmNoZWNrZWQgPSB0aGlzLnZhbHVlOw0KICAgICAgICAgICAgICAgICAgICBlbGVtZW50LnR5cGUgPSAiY2hlY2tib3giOw0KICAgICAgICAgICAgICAgICAgICBlbGVtZW50LmNsYXNzTmFtZSA9ICJidWxrIGhpZGVCdWxrIjsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAiQlVMS19IRUFEIjoNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIklOUFVUIik7DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQuY2hlY2tlZCA9IHRoaXMudmFsdWU7DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQudHlwZSA9ICJjaGVja2JveCI7DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQuY2xhc3NOYW1lID0gImJ1bGsgaGlkZUJ1bGsiOw0KICAgICAgICAgICAgICAgICAgICBlbGVtZW50LnNldEF0dHJpYnV0ZSgib25jbGljayIsICJqYXZhc2NyaXB0OiBzZWxlY3RBbGxDaGFubmVscygpIik7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgIklNRyI6DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KHRoaXMuY2hpbGRUeXBlKTsNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC5zZXRBdHRyaWJ1dGUoInNyYyIsIHRoaXMuaW1hZ2VVUkwpOw0KICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5pbWFnZVVSTCAhPSAiIikgew0KICAgICAgICAgICAgICAgICAgICAgICAgZWxlbWVudC5zZXRBdHRyaWJ1dGUoIm9uZXJyb3IiLCAiamF2YXNjcmlwdDogdGhpcy5vbmVycm9yPW51bGw7dGhpcy5zcmM9JyciKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIC8vb25lcnJvcj0idGhpcy5vbmVycm9yPW51bGw7dGhpcy5zcmM9J21pc3NpbmcuZ2lmJzsiDQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIHRkLmFwcGVuZENoaWxkKGVsZW1lbnQpOw0KICAgICAgICB9DQogICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgdGQuaW5uZXJIVE1MID0gdGhpcy52YWx1ZTsNCiAgICAgICAgfQ0KICAgICAgICBpZiAodGhpcy5vbmNsaWNrID09IHRydWUpIHsNCiAgICAgICAgICAgIHRkLnNldEF0dHJpYnV0ZSgib25jbGljayIsIHRoaXMub25jbGlja0Z1bmt0aW9uKTsNCiAgICAgICAgICAgIHRkLmNsYXNzTmFtZSA9ICJwb2ludGVyIjsNCiAgICAgICAgfQ0KICAgICAgICBpZiAodGhpcy50ZENsYXNzTmFtZSAhPSB1bmRlZmluZWQpIHsNCiAgICAgICAgICAgIHRkLmNsYXNzTmFtZSA9IHRoaXMudGRDbGFzc05hbWU7DQogICAgICAgIH0NCiAgICAgICAgcmV0dXJuIHRkOw0KICAgIH0NCn0NCmNsYXNzIFNob3dDb250ZW50IGV4dGVuZHMgQ29udGVudCB7DQogICAgY29uc3RydWN0b3IobWVudUlEKSB7DQogICAgICAgIHN1cGVyKCk7DQogICAgICAgIHRoaXMubWVudUlEID0gbWVudUlEOw0KICAgIH0NCiAgICBjcmVhdGVJbnB1dCh0eXBlLCBuYW1lLCB2YWx1ZSkgew0KICAgICAgICBsZXQgaW5wdXQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJJTlBVVCIpOw0KICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInR5cGUiLCB0eXBlKTsNCiAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJuYW1lIiwgbmFtZSk7DQogICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgidmFsdWUiLCB2YWx1ZSk7DQogICAgICAgIHJldHVybiBpbnB1dDsNCiAgICB9DQogICAgc2hvdygpIHsNCiAgICAgICAgQ09MVU1OX1RPX1NPUlQgPSAtMTsNCiAgICAgICAgLy8gQWx0ZW4gSW5oYWx0IGzDtnNjaGVuDQogICAgICAgIGxldCBkb2MgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCh0aGlzLkRvY3VtZW50SUQpOw0KICAgICAgICBkb2MuaW5uZXJIVE1MID0gIiI7DQogICAgICAgIHNob3dQcmV2aWV3KGZhbHNlKTsNCiAgICAgICAgLy8gw5xiZXJzY2hyaWZ0DQogICAgICAgIGxldCBoZWFkbGluZSA9IG1lbnVJdGVtc1t0aGlzLm1lbnVJRF0uaGVhZGxpbmU7DQogICAgICAgIGxldCBtZW51S2V5ID0gbWVudUl0ZW1zW3RoaXMubWVudUlEXS5tZW51S2V5Ow0KICAgICAgICBsZXQgaCA9IHRoaXMuY3JlYXRlSGVhZGxpbmUoaGVhZGxpbmUpOw0KICAgICAgICBkb2MuYXBwZW5kQ2hpbGQoaCk7DQogICAgICAgIGxldCBociA9IHRoaXMuY3JlYXRlSFIoKTsNCiAgICAgICAgZG9jLmFwcGVuZENoaWxkKGhyKTsNCiAgICAgICAgLy8gSW50ZXJha3Rpb24NCiAgICAgICAgbGV0IGRpdiA9IHRoaXMuY3JlYXRlSW50ZXJhY3Rpb24oKTsNCiAgICAgICAgZG9jLmFwcGVuZENoaWxkKGRpdik7DQogICAgICAgIGxldCBpbnRlcmFjdGlvbiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHRoaXMuaW50ZXJhY3Rpb25JRCk7DQogICAgICAgIHN3aXRjaCAobWVudUtleSkgew0KICAgICAgICAgICAgY2FzZSAicGxheWxpc3QiOg0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IHRoaXMuY3JlYXRlSW5wdXQoImJ1dHRvbiIsIG1lbnVLZXksICJ7ey5idXR0b24ubmV3fX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoImlkIiwgIi0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJwbGF5bGlzdCIpJyk7DQogICAgICAgICAgICAgICAgaW50ZXJhY3Rpb24uYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiZmlsdGVyIjoNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSB0aGlzLmNyZWF0ZUlucHV0KCJidXR0b24iLCBtZW51S2V5LCAie3suYnV0dG9uLm5ld319Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJpZCIsIC0xKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJmaWx0ZXIiLCB0aGlzKScpOw0KICAgICAgICAgICAgICAgIGludGVyYWN0aW9uLmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInhtbHR2IjoNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSB0aGlzLmNyZWF0ZUlucHV0KCJidXR0b24iLCBtZW51S2V5LCAie3suYnV0dG9uLm5ld319Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJpZCIsICJ4bWx0diIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoInhtbHR2IiknKTsNCiAgICAgICAgICAgICAgICBpbnRlcmFjdGlvbi5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ1c2VycyI6DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gdGhpcy5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgbWVudUtleSwgInt7LmJ1dHRvbi5uZXd9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgiaWQiLCAidXNlcnMiKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJ1c2VycyIpJyk7DQogICAgICAgICAgICAgICAgaW50ZXJhY3Rpb24uYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAibWFwcGluZyI6DQogICAgICAgICAgICAgICAgc2hvd0VsZW1lbnQoImxvYWRpbmciLCB0cnVlKTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSB0aGlzLmNyZWF0ZUlucHV0KCJidXR0b24iLCBtZW51S2V5LCAie3suYnV0dG9uLnNhdmV9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBzYXZlUG9wdXBEYXRhKCJtYXBwaW5nIiwgIiIsICIiKScpOw0KICAgICAgICAgICAgICAgIGludGVyYWN0aW9uLmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSB0aGlzLmNyZWF0ZUlucHV0KCJidXR0b24iLCBtZW51S2V5LCAie3suYnV0dG9uLmJ1bGtFZGl0fX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogYnVsa0VkaXQoKScpOw0KICAgICAgICAgICAgICAgIGludGVyYWN0aW9uLmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSB0aGlzLmNyZWF0ZUlucHV0KCJzZWFyY2giLCAic2VhcmNoIiwgIiIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgiaWQiLCAic2VhcmNoTWFwcGluZyIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3suYnV0dG9uLnNlYXJjaH19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuY2xhc3NOYW1lID0gInNlYXJjaCI7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICdqYXZhc2NyaXB0OiBzZWFyY2hJbk1hcHBpbmcoKScpOw0KICAgICAgICAgICAgICAgIGludGVyYWN0aW9uLmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInNldHRpbmdzIjoNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSB0aGlzLmNyZWF0ZUlucHV0KCJidXR0b24iLCBtZW51S2V5LCAie3suYnV0dG9uLnNhdmV9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBzYXZlU2V0dGluZ3MoKTsnKTsNCiAgICAgICAgICAgICAgICBpbnRlcmFjdGlvbi5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gdGhpcy5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgbWVudUtleSwgInt7LmJ1dHRvbi5iYWNrdXB9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBiYWNrdXAoKTsnKTsNCiAgICAgICAgICAgICAgICBpbnRlcmFjdGlvbi5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gdGhpcy5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgbWVudUtleSwgInt7LmJ1dHRvbi5yZXN0b3JlfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogcmVzdG9yZSgpOycpOw0KICAgICAgICAgICAgICAgIGludGVyYWN0aW9uLmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICB2YXIgd3JhcHBlciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIkRJViIpOw0KICAgICAgICAgICAgICAgIHdyYXBwZXIuc2V0QXR0cmlidXRlKCJpZCIsICJib3gtd3JhcHBlciIpOw0KICAgICAgICAgICAgICAgIGRvYy5hcHBlbmRDaGlsZCh3cmFwcGVyKTsNCiAgICAgICAgICAgICAgICB0aGlzLkRpdklEID0gImNvbnRlbnRfc2V0dGluZ3MiOw0KICAgICAgICAgICAgICAgIHZhciBzZXR0aW5ncyA9IHRoaXMuY3JlYXRlRElWKCk7DQogICAgICAgICAgICAgICAgd3JhcHBlci5hcHBlbmRDaGlsZChzZXR0aW5ncyk7DQogICAgICAgICAgICAgICAgc2hvd1NldHRpbmdzKCk7DQogICAgICAgICAgICAgICAgcmV0dXJuOw0KICAgICAgICAgICAgY2FzZSAibG9nIjoNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSB0aGlzLmNyZWF0ZUlucHV0KCJidXR0b24iLCBtZW51S2V5LCAie3suYnV0dG9uLnJlc2V0TG9nc319Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IHJlc2V0TG9ncygpOycpOw0KICAgICAgICAgICAgICAgIGludGVyYWN0aW9uLmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICB2YXIgd3JhcHBlciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIkRJViIpOw0KICAgICAgICAgICAgICAgIHdyYXBwZXIuc2V0QXR0cmlidXRlKCJpZCIsICJib3gtd3JhcHBlciIpOw0KICAgICAgICAgICAgICAgIGRvYy5hcHBlbmRDaGlsZCh3cmFwcGVyKTsNCiAgICAgICAgICAgICAgICB0aGlzLkRpdklEID0gImNvbnRlbnRfbG9nIjsNCiAgICAgICAgICAgICAgICB2YXIgbG9ncyA9IHRoaXMuY3JlYXRlRElWKCk7DQogICAgICAgICAgICAgICAgd3JhcHBlci5hcHBlbmRDaGlsZChsb2dzKTsNCiAgICAgICAgICAgICAgICBzaG93TG9ncyh0cnVlKTsNCiAgICAgICAgICAgICAgICByZXR1cm47DQogICAgICAgICAgICBjYXNlICJsb2dvdXQiOg0KICAgICAgICAgICAgICAgIGxvY2F0aW9uLnJlbG9hZCgpOw0KICAgICAgICAgICAgICAgIGRvY3VtZW50LmNvb2tpZSA9ICJUb2tlbj0gOyBleHBpcmVzID0gVGh1LCAwMSBKYW4gMTk3MCAwMDowMDowMCBHTVQiOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZygiU2hvdyBjb250ZW50IChtZW51S2V5KToiLCBtZW51S2V5KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgfQ0KICAgICAgICAvLyBUYWJlbGxlIGVyc3RlbGxlbiAoZmFsbHMgYmVuw7Z0aWd0KQ0KICAgICAgICB2YXIgdGFibGVIZWFkZXIgPSBtZW51SXRlbXNbdGhpcy5tZW51SURdLnRhYmxlSGVhZGVyOw0KICAgICAgICBpZiAodGFibGVIZWFkZXIubGVuZ3RoID4gMCkgew0KICAgICAgICAgICAgdmFyIHdyYXBwZXIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJESVYiKTsNCiAgICAgICAgICAgIGRvYy5hcHBlbmRDaGlsZCh3cmFwcGVyKTsNCiAgICAgICAgICAgIHdyYXBwZXIuc2V0QXR0cmlidXRlKCJpZCIsICJib3gtd3JhcHBlciIpOw0KICAgICAgICAgICAgdmFyIHRhYmxlID0gdGhpcy5jcmVhdGVUQUJMRSgpOw0KICAgICAgICAgICAgd3JhcHBlci5hcHBlbmRDaGlsZCh0YWJsZSk7DQogICAgICAgICAgICB2YXIgaGVhZGVyID0gdGhpcy5jcmVhdGVUYWJsZVJvdygpOw0KICAgICAgICAgICAgdGFibGUuYXBwZW5kQ2hpbGQoaGVhZGVyKTsNCiAgICAgICAgICAgIC8vIEtvcGZ6ZWlsZSBkZXIgVGFibGxlDQogICAgICAgICAgICB0YWJsZUhlYWRlci5mb3JFYWNoKGVsZW1lbnQgPT4gew0KICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZWxlbWVudDsNCiAgICAgICAgICAgICAgICBpZiAoZWxlbWVudCA9PSAiQlVMSyIpIHsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiQlVMS19IRUFEIjsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGZhbHNlOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBpZiAobWVudUtleSA9PSAibWFwcGluZyIpIHsNCiAgICAgICAgICAgICAgICAgICAgaWYgKGVsZW1lbnQgPT0gInt7Lm1hcHBpbmcudGFibGUuY2hOb319Iikgew0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5vbmNsaWNrID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwub25jbGlja0Z1bmt0aW9uID0gImphdmFzY3JpcHQ6IHNvcnRUYWJsZSgxKTsiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC50ZENsYXNzTmFtZSA9ICJzb3J0VGhpcyI7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgaWYgKGVsZW1lbnQgPT0gInt7Lm1hcHBpbmcudGFibGUuY2hhbm5lbE5hbWV9fSIpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwub25jbGljayA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLm9uY2xpY2tGdW5rdGlvbiA9ICJqYXZhc2NyaXB0OiBzb3J0VGFibGUoMyk7IjsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBpZiAoZWxlbWVudCA9PSAie3subWFwcGluZy50YWJsZS5wbGF5bGlzdH19Iikgew0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5vbmNsaWNrID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwub25jbGlja0Z1bmt0aW9uID0gImphdmFzY3JpcHQ6IHNvcnRUYWJsZSg0KTsiOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIGlmIChlbGVtZW50ID09ICJ7ey5tYXBwaW5nLnRhYmxlLmdyb3VwVGl0bGV9fSIpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwub25jbGljayA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLm9uY2xpY2tGdW5rdGlvbiA9ICJqYXZhc2NyaXB0OiBzb3J0VGFibGUoNSk7IjsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBoZWFkZXIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgfSk7DQogICAgICAgICAgICB0YWJsZS5hcHBlbmRDaGlsZChoZWFkZXIpOw0KICAgICAgICAgICAgLy8gSW5oYWx0IGRlciBUYWJlbGxlDQogICAgICAgICAgICB2YXIgcm93cyA9IHRoaXMuY3JlYXRlVGFibGVDb250ZW50KG1lbnVLZXkpOw0KICAgICAgICAgICAgcm93cy5mb3JFYWNoKHRyID0+IHsNCiAgICAgICAgICAgICAgICB0YWJsZS5hcHBlbmRDaGlsZCh0cik7DQogICAgICAgICAgICB9KTsNCiAgICAgICAgfQ0KICAgICAgICBzd2l0Y2ggKG1lbnVLZXkpIHsNCiAgICAgICAgICAgIGNhc2UgIm1hcHBpbmciOg0KICAgICAgICAgICAgICAgIHNvcnRUYWJsZSgxKTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImZpbHRlciI6DQogICAgICAgICAgICAgICAgc2hvd1ByZXZpZXcodHJ1ZSk7DQogICAgICAgICAgICAgICAgc29ydFRhYmxlKDApOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgICAgICBDT0xVTU5fVE9fU09SVCA9IC0xOw0KICAgICAgICAgICAgICAgIHNvcnRUYWJsZSgwKTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgfQ0KICAgICAgICBzaG93RWxlbWVudCgibG9hZGluZyIsIGZhbHNlKTsNCiAgICB9DQp9DQpmdW5jdGlvbiBQYWdlUmVhZHkoKSB7DQogICAgbGV0IHNlcnZlciA9IG5ldyBTZXJ2ZXIoImdldFNlcnZlckNvbmZpZyIpOw0KICAgIHNlcnZlci5yZXF1ZXN0KHt9KTsNCiAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigicmVzaXplIiwgZnVuY3Rpb24gKCkgew0KICAgICAgICBjYWxjdWxhdGVXcmFwcGVySGVpZ2h0KCk7DQogICAgfSwgdHJ1ZSk7DQogICAgc2V0SW50ZXJ2YWwoZnVuY3Rpb24gKCkgew0KICAgICAgICB1cGRhdGVMb2coKTsNCiAgICB9LCAxMDAwMCk7DQogICAgcmV0dXJuOw0KfQ0KZnVuY3Rpb24gY3JlYXRlTGF5b3V0KCkgew0KICAgIC8vIENsaWVudCBJbmZvDQogICAgbGV0IG9iaiA9IFNFUlZFUlsiY2xpZW50SW5mbyJdOw0KICAgIGxldCBrZXlzID0gZ2V0T2JqS2V5cyhvYmopOw0KICAgIGZvciAodmFyIGkgPSAwOyBpIDwga2V5cy5sZW5ndGg7IGkrKykgew0KICAgICAgICBpZiAoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoa2V5c1tpXSkpIHsNCiAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGtleXNbaV0pLmlubmVySFRNTCA9IG9ialtrZXlzW2ldXTsNCiAgICAgICAgfQ0KICAgIH0NCiAgICBpZiAoIWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJtYWluLW1lbnUiKSkgew0KICAgICAgICByZXR1cm47DQogICAgfQ0KICAgIC8vIE1lbsO8IGVyc3RlbGxlbg0KICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJtYWluLW1lbnUiKS5pbm5lckhUTUwgPSAiIjsNCiAgICBmb3IgKGxldCBpID0gMDsgaSA8IG1lbnVJdGVtcy5sZW5ndGg7IGkrKykgew0KICAgICAgICBtZW51SXRlbXNbaV0uaWQgPSBpOw0KICAgICAgICBzd2l0Y2ggKG1lbnVJdGVtc1tpXVsibWVudUtleSJdKSB7DQogICAgICAgICAgICBjYXNlICJ1c2VycyI6DQogICAgICAgICAgICBjYXNlICJsb2dvdXQiOg0KICAgICAgICAgICAgICAgIGlmIChTRVJWRVJbInNldHRpbmdzIl1bImF1dGhlbnRpY2F0aW9uLndlYiJdID09IHRydWUpIHsNCiAgICAgICAgICAgICAgICAgICAgbWVudUl0ZW1zW2ldLmNyZWF0ZUl0ZW0oKTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJtYXBwaW5nIjoNCiAgICAgICAgICAgIGNhc2UgInhtbHR2IjoNCiAgICAgICAgICAgICAgICBpZiAoU0VSVkVSWyJjbGllbnRJbmZvIl1bImVwZ1NvdXJjZSJdID09ICJYRVBHIikgew0KICAgICAgICAgICAgICAgICAgICBtZW51SXRlbXNbaV0uY3JlYXRlSXRlbSgpOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICAgICAgbWVudUl0ZW1zW2ldLmNyZWF0ZUl0ZW0oKTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgfQ0KICAgIH0NCiAgICByZXR1cm47DQp9DQpmdW5jdGlvbiBvcGVuVGhpc01lbnUoZWxlbWVudCkgew0KICAgIGxldCBpZCA9IGVsZW1lbnQuaWQ7DQogICAgbGV0IGNvbnRlbnQgPSBuZXcgU2hvd0NvbnRlbnQoaWQpOw0KICAgIGNvbnRlbnQuc2hvdygpOw0KICAgIGNhbGN1bGF0ZVdyYXBwZXJIZWlnaHQoKTsNCiAgICByZXR1cm47DQp9DQpjbGFzcyBQb3B1cFdpbmRvdyB7DQogICAgY29uc3RydWN0b3IoKSB7DQogICAgICAgIHRoaXMuRG9jdW1lbnRJRCA9ICJwb3B1cC1jdXN0b20iOw0KICAgICAgICB0aGlzLkludGVyYWN0aW9uSUQgPSAiaW50ZXJhY3Rpb24iOw0KICAgICAgICB0aGlzLmRvYyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHRoaXMuRG9jdW1lbnRJRCk7DQogICAgfQ0KICAgIGNyZWF0ZVRpdGxlKHRpdGxlKSB7DQogICAgICAgIGxldCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgIHRkLmNsYXNzTmFtZSA9ICJsZWZ0IjsNCiAgICAgICAgdGQuaW5uZXJIVE1MID0gdGl0bGUgKyAiOiI7DQogICAgICAgIHJldHVybiB0ZDsNCiAgICB9DQogICAgY3JlYXRlQ29udGVudChlbGVtZW50KSB7DQogICAgICAgIGxldCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgIHRkLmFwcGVuZENoaWxkKGVsZW1lbnQpOw0KICAgICAgICByZXR1cm4gdGQ7DQogICAgfQ0KICAgIGNyZWF0ZUludGVyYWN0aW9uKCkgew0KICAgICAgICBsZXQgZGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7DQogICAgICAgIGRpdi5zZXRBdHRyaWJ1dGUoImlkIiwgInBvcHVwLWludGVyYWN0aW9uIik7DQogICAgICAgIGRpdi5jbGFzc05hbWUgPSAiaW50ZXJhY3Rpb24iOw0KICAgICAgICB0aGlzLmRvYy5hcHBlbmRDaGlsZChkaXYpOw0KICAgIH0NCn0NCmNsYXNzIFBvcHVwQ29udGVudCBleHRlbmRzIFBvcHVwV2luZG93IHsNCiAgICBjb25zdHJ1Y3RvcigpIHsNCiAgICAgICAgc3VwZXIoLi4uYXJndW1lbnRzKTsNCiAgICAgICAgdGhpcy50YWJsZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlRBQkxFIik7DQogICAgfQ0KICAgIGNyZWF0ZUhlYWRsaW5lKGhlYWRsaW5lKSB7DQogICAgICAgIHRoaXMuZG9jLmlubmVySFRNTCA9ICIiOw0KICAgICAgICB2YXIgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIkgzIik7DQogICAgICAgIGVsZW1lbnQuaW5uZXJIVE1MID0gaGVhZGxpbmUudG9VcHBlckNhc2UoKTsNCiAgICAgICAgdGhpcy5kb2MuYXBwZW5kQ2hpbGQoZWxlbWVudCk7DQogICAgICAgIC8vIFRhYmVsbGUgZXJzdGVsbGVuDQogICAgICAgIHRoaXMudGFibGUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJUQUJMRSIpOw0KICAgICAgICB0aGlzLmRvYy5hcHBlbmRDaGlsZCh0aGlzLnRhYmxlKTsNCiAgICB9DQogICAgYXBwZW5kUm93KHRpdGxlLCBlbGVtZW50KSB7DQogICAgICAgIGxldCB0ciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlRSIik7DQogICAgICAgIC8vIEJlemVpY2hudW5nDQogICAgICAgIGlmICh0aXRsZS5sZW5ndGggIT0gMCkgew0KICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQodGhpcy5jcmVhdGVUaXRsZSh0aXRsZSkpOw0KICAgICAgICB9DQogICAgICAgIC8vIENvbnRlbnQNCiAgICAgICAgdHIuYXBwZW5kQ2hpbGQodGhpcy5jcmVhdGVDb250ZW50KGVsZW1lbnQpKTsNCiAgICAgICAgdGhpcy50YWJsZS5hcHBlbmRDaGlsZCh0cik7DQogICAgfQ0KICAgIGNyZWF0ZUlucHV0KHR5cGUsIG5hbWUsIHZhbHVlKSB7DQogICAgICAgIGxldCBpbnB1dCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIklOUFVUIik7DQogICAgICAgIGlmICh2YWx1ZSA9PSB1bmRlZmluZWQpIHsNCiAgICAgICAgICAgIHZhbHVlID0gIiI7DQogICAgICAgIH0NCiAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJ0eXBlIiwgdHlwZSk7DQogICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgibmFtZSIsIG5hbWUpOw0KICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInZhbHVlIiwgdmFsdWUpOw0KICAgICAgICByZXR1cm4gaW5wdXQ7DQogICAgfQ0KICAgIGNyZWF0ZUNoZWNrYm94KG5hbWUpIHsNCiAgICAgICAgbGV0IGlucHV0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiSU5QVVQiKTsNCiAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJ0eXBlIiwgImNoZWNrYm94Iik7DQogICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgibmFtZSIsIG5hbWUpOw0KICAgICAgICByZXR1cm4gaW5wdXQ7DQogICAgfQ0KICAgIC8vIENyZWF0ZXMgYSBzZWxlY3Rpb24gb2YgbXVsdGlwbGUgb3B0aW9ucyB2YWx1ZXMgd2l0aCB0ZXh0IGRlc2NyaXB0aW9ucw0KICAgIGNyZWF0ZVNlbGVjdCh0ZXh0LCB2YWx1ZXMsIHNldCwgZGJLZXkpIHsNCiAgICAgICAgbGV0IHNlbGVjdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlNFTEVDVCIpOw0KICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJuYW1lIiwgZGJLZXkpOw0KICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRleHQubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgICAgIGxldCBvcHRpb24gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJPUFRJT04iKTsNCiAgICAgICAgICAgIG9wdGlvbi5zZXRBdHRyaWJ1dGUoInZhbHVlIiwgdmFsdWVzW2ldKTsNCiAgICAgICAgICAgIG9wdGlvbi5pbm5lclRleHQgPSB0ZXh0W2ldOw0KICAgICAgICAgICAgc2VsZWN0LmFwcGVuZENoaWxkKG9wdGlvbik7DQogICAgICAgIH0NCiAgICAgICAgaWYgKHNldCAhPSAiIikgew0KICAgICAgICAgICAgc2VsZWN0LnZhbHVlID0gc2V0Ow0KICAgICAgICB9DQogICAgICAgIGlmIChzZXQgPT0gdW5kZWZpbmVkKSB7DQogICAgICAgICAgICBzZWxlY3QudmFsdWUgPSB2YWx1ZXNbMF07DQogICAgICAgIH0NCiAgICAgICAgcmV0dXJuIHNlbGVjdDsNCiAgICB9DQogICAgc2VsZWN0T3B0aW9uKHNlbGVjdCwgdmFsdWUpIHsNCiAgICAgICAgLy9zZWxlY3Quc2VsZWN0ZWRPcHRpb25zID0gdmFsdWUNCiAgICAgICAgbGV0IHMgPSBzZWxlY3Q7DQogICAgICAgIHMub3B0aW9uc1tzLnNlbGVjdGVkSW5kZXhdLnZhbHVlID0gdmFsdWU7DQogICAgICAgIHJldHVybiBzZWxlY3Q7DQogICAgfQ0KICAgIGRlc2NyaXB0aW9uKHZhbHVlKSB7DQogICAgICAgIGxldCB0ciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlRSIik7DQogICAgICAgIGxldCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgIGxldCBzcGFuID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiUFJFIik7DQogICAgICAgIHNwYW4uaW5uZXJIVE1MID0gdmFsdWU7DQogICAgICAgIHRyLmFwcGVuZENoaWxkKHRkKTsNCiAgICAgICAgdHIuYXBwZW5kQ2hpbGQodGhpcy5jcmVhdGVDb250ZW50KHNwYW4pKTsNCiAgICAgICAgdGhpcy50YWJsZS5hcHBlbmRDaGlsZCh0cik7DQogICAgfQ0KICAgIC8vIEludGVyYWt0aW9uDQogICAgYWRkSW50ZXJhY3Rpb24oZWxlbWVudCkgew0KICAgICAgICBsZXQgaW50ZXJhY3Rpb24gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicG9wdXAtaW50ZXJhY3Rpb24iKTsNCiAgICAgICAgaW50ZXJhY3Rpb24uYXBwZW5kQ2hpbGQoZWxlbWVudCk7DQogICAgfQ0KfQ0KZnVuY3Rpb24gb3BlblBvcFVwKGRhdGFUeXBlLCBlbGVtZW50KSB7DQogICAgbGV0IGRhdGEgPSB7fTsNCiAgICBsZXQgaWQ7DQogICAgc3dpdGNoIChlbGVtZW50KSB7DQogICAgICAgIGNhc2UgdW5kZWZpbmVkOg0KICAgICAgICAgICAgc3dpdGNoIChkYXRhVHlwZSkgew0KICAgICAgICAgICAgICAgIGNhc2UgImdyb3VwLXRpdGxlIjoNCiAgICAgICAgICAgICAgICAgICAgaWYgKGlkID09IHVuZGVmaW5lZCkgew0KICAgICAgICAgICAgICAgICAgICAgICAgaWQgPSAtMTsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBkYXRhID0gZ2V0TG9jYWxEYXRhKCJmaWx0ZXIiLCBpZCk7DQogICAgICAgICAgICAgICAgICAgIGRhdGFbInR5cGUiXSA9ICJncm91cC10aXRsZSI7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgImN1c3RvbS1maWx0ZXIiOg0KICAgICAgICAgICAgICAgICAgICBpZiAoaWQgPT0gdW5kZWZpbmVkKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBpZCA9IC0xOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIGRhdGEgPSBnZXRMb2NhbERhdGEoImZpbHRlciIsIGlkKTsNCiAgICAgICAgICAgICAgICAgICAgZGF0YVsidHlwZSJdID0gImN1c3RvbS1maWx0ZXIiOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBkZWZhdWx0Og0KICAgICAgICAgICAgICAgICAgICBkYXRhWyJpZC5wcm92aWRlciJdID0gIi0iOw0KICAgICAgICAgICAgICAgICAgICBkYXRhWyJ0eXBlIl0gPSBkYXRhVHlwZTsNCiAgICAgICAgICAgICAgICAgICAgaWQgPSAiLSI7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICBpZCA9IGVsZW1lbnQuaWQ7DQogICAgICAgICAgICBkYXRhID0gZ2V0TG9jYWxEYXRhKGRhdGFUeXBlLCBpZCk7DQogICAgICAgICAgICBicmVhazsNCiAgICB9DQogICAgbGV0IGNvbnRlbnQgPSBuZXcgUG9wdXBDb250ZW50KCk7DQogICAgc3dpdGNoIChkYXRhVHlwZSkgew0KICAgICAgICBjYXNlICJwbGF5bGlzdCI6DQogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUhlYWRsaW5lKCJ7ey5wbGF5bGlzdC5wbGF5bGlzdFR5cGUudGl0bGV9fSIpOw0KICAgICAgICAgICAgLy8gVHlwZQ0KICAgICAgICAgICAgdmFyIHRleHQgPSBbIk0zVSIsICJIREhvbWVSdW4iXTsNCiAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBbImphdmFzY3JpcHQ6IG9wZW5Qb3BVcCgnbTN1JykiLCAiamF2YXNjcmlwdDogb3BlblBvcFVwKCdoZGhyJykiXTsNCiAgICAgICAgICAgIHZhciBzZWxlY3QgPSBjb250ZW50LmNyZWF0ZVNlbGVjdCh0ZXh0LCB2YWx1ZXMsICIiLCAidHlwZSIpOw0KICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgiaWQiLCAidHlwZSIpOw0KICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAnamF2YXNjcmlwdDogY2hhbmdlQnV0dG9uQWN0aW9uKHRoaXMsICJuZXh0IiwgIm9uY2xpY2siKScpOyAvLyBjaGFuZ2VCdXR0b25BY3Rpb24NCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5wbGF5bGlzdC50eXBlLnRpdGxlfX0iLCBzZWxlY3QpOw0KICAgICAgICAgICAgLy8gSW50ZXJha3Rpb24NCiAgICAgICAgICAgIGNvbnRlbnQuY3JlYXRlSW50ZXJhY3Rpb24oKTsNCiAgICAgICAgICAgIC8vIEFiYnJlY2hlbg0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImNhbmNlbCIsICJ7ey5idXR0b24uY2FuY2VsfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBzaG93RWxlbWVudCgicG9wdXAiLCBmYWxzZSk7Jyk7DQogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIC8vIFdlaXRlcg0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgIm5leHQiLCAie3suYnV0dG9uLm5leHR9fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgibTN1IiknKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgiaWQiLCAnbmV4dCcpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSAibTN1IjoNCiAgICAgICAgICAgIGNvbnRlbnQuY3JlYXRlSGVhZGxpbmUoZGF0YVR5cGUpOw0KICAgICAgICAgICAgLy8gTmFtZQ0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gIm5hbWUiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnBsYXlsaXN0Lm5hbWUucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnBsYXlsaXN0Lm5hbWUudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIEJlc2NocmVpYnVuZw0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gImRlc2NyaXB0aW9uIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5wbGF5bGlzdC5kZXNjcmlwdGlvbi5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sucGxheWxpc3QuZGVzY3JpcHRpb24udGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIFVSTA0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gImZpbGUuc291cmNlIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5wbGF5bGlzdC5maWxlTTNVLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5wbGF5bGlzdC5maWxlTTNVLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBUdW5lcg0KICAgICAgICAgICAgaWYgKFNFUlZFUlsic2V0dGluZ3MiXVsiYnVmZmVyIl0gIT0gIi0iKSB7DQogICAgICAgICAgICAgICAgdmFyIHRleHQgPSBbXTsNCiAgICAgICAgICAgICAgICB2YXIgdmFsdWVzID0gW107DQogICAgICAgICAgICAgICAgZm9yICh2YXIgaSA9IDE7IGkgPD0gMTAwOyBpKyspIHsNCiAgICAgICAgICAgICAgICAgICAgdGV4dC5wdXNoKGkudG9TdHJpbmcoKSk7DQogICAgICAgICAgICAgICAgICAgIHZhbHVlcy5wdXNoKGkudG9TdHJpbmcoKSk7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIHZhciBkYktleSA9ICJ0dW5lciI7DQogICAgICAgICAgICAgICAgdmFyIHNlbGVjdCA9IGNvbnRlbnQuY3JlYXRlU2VsZWN0KHRleHQsIHZhbHVlcywgZGF0YVtkYktleV0sIGRiS2V5KTsNCiAgICAgICAgICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJvbmZvY3VzIiwgImphdmFzY3JpcHQ6IHJldHVybjsiKTsNCiAgICAgICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sucGxheWxpc3QudHVuZXIudGl0bGV9fSIsIHNlbGVjdCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICB2YXIgZGJLZXkgPSAidHVuZXIiOw0KICAgICAgICAgICAgICAgIGlmIChkYXRhW2RiS2V5XSA9PSB1bmRlZmluZWQpIHsNCiAgICAgICAgICAgICAgICAgICAgZGF0YVtkYktleV0gPSAxOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInJlYWRvbmx5IiwgInRydWUiKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5jbGFzc05hbWUgPSAibm90QXZhaWxhYmxlIjsNCiAgICAgICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sucGxheWxpc3QudHVuZXIudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGNvbnRlbnQuZGVzY3JpcHRpb24oInt7LnBsYXlsaXN0LnR1bmVyLmRlc2NyaXB0aW9ufX0iKTsNCiAgICAgICAgICAgIC8vIEludGVyYWt0aW9uDQogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUludGVyYWN0aW9uKCk7DQogICAgICAgICAgICAvLyBMw7ZzY2hlbg0KICAgICAgICAgICAgaWYgKGRhdGFbImlkLnByb3ZpZGVyIl0gIT0gIi0iKSB7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImRlbGV0ZSIsICJ7ey5idXR0b24uZGVsZXRlfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5jbGFzc05hbWUgPSAiZGVsZXRlIjsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogc2F2ZVBvcHVwRGF0YSgibTN1IiwgIicgKyBpZCArICciLCB0cnVlLCAwKScpOw0KICAgICAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgZWxzZSB7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImJhY2siLCAie3suYnV0dG9uLmJhY2t9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoInBsYXlsaXN0IiknKTsNCiAgICAgICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIC8vIEFiYnJlY2hlbg0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImNhbmNlbCIsICJ7ey5idXR0b24uY2FuY2VsfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBzaG93RWxlbWVudCgicG9wdXAiLCBmYWxzZSk7Jyk7DQogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIC8vIEFrdHVhbGlzaWVyZW4NCiAgICAgICAgICAgIGlmIChkYXRhWyJpZC5wcm92aWRlciJdICE9ICItIikgew0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJ1cGRhdGUiLCAie3suYnV0dG9uLnVwZGF0ZX19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoIm0zdSIsICInICsgaWQgKyAnIiwgZmFsc2UsIDEpJyk7DQogICAgICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICAvLyBTcGVpY2hlcm4NCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJzYXZlIiwgInt7LmJ1dHRvbi5zYXZlfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBzYXZlUG9wdXBEYXRhKCJtM3UiLCAiJyArIGlkICsgJyIsIGZhbHNlLCAwKScpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSAiaGRociI6DQogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUhlYWRsaW5lKGRhdGFUeXBlKTsNCiAgICAgICAgICAgIC8vIE5hbWUNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJuYW1lIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5wbGF5bGlzdC5uYW1lLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5wbGF5bGlzdC5uYW1lLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBCZXNjaHJlaWJ1bmcNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJkZXNjcmlwdGlvbiI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3sucGxheWxpc3QuZGVzY3JpcHRpb24ucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnBsYXlsaXN0LmRlc2NyaXB0aW9uLnBsYWNlaG9sZGVyfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBVUkwNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJmaWxlLnNvdXJjZSI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3sucGxheWxpc3QuZmlsZUhESFIucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnBsYXlsaXN0LmZpbGVIREhSLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBUdW5lcg0KICAgICAgICAgICAgaWYgKFNFUlZFUlsic2V0dGluZ3MiXVsiYnVmZmVyIl0gIT0gIi0iKSB7DQogICAgICAgICAgICAgICAgdmFyIHRleHQgPSBbXTsNCiAgICAgICAgICAgICAgICB2YXIgdmFsdWVzID0gW107DQogICAgICAgICAgICAgICAgZm9yICh2YXIgaSA9IDE7IGkgPD0gMTAwOyBpKyspIHsNCiAgICAgICAgICAgICAgICAgICAgdGV4dC5wdXNoKGkudG9TdHJpbmcoKSk7DQogICAgICAgICAgICAgICAgICAgIHZhbHVlcy5wdXNoKGkudG9TdHJpbmcoKSk7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIHZhciBkYktleSA9ICJ0dW5lciI7DQogICAgICAgICAgICAgICAgdmFyIHNlbGVjdCA9IGNvbnRlbnQuY3JlYXRlU2VsZWN0KHRleHQsIHZhbHVlcywgZGF0YVtkYktleV0sIGRiS2V5KTsNCiAgICAgICAgICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJvbmZvY3VzIiwgImphdmFzY3JpcHQ6IHJldHVybjsiKTsNCiAgICAgICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sucGxheWxpc3QudHVuZXIudGl0bGV9fSIsIHNlbGVjdCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICB2YXIgZGJLZXkgPSAidHVuZXIiOw0KICAgICAgICAgICAgICAgIGlmIChkYXRhW2RiS2V5XSA9PSB1bmRlZmluZWQpIHsNCiAgICAgICAgICAgICAgICAgICAgZGF0YVtkYktleV0gPSAxOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInJlYWRvbmx5IiwgInRydWUiKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5jbGFzc05hbWUgPSAibm90QXZhaWxhYmxlIjsNCiAgICAgICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sucGxheWxpc3QudHVuZXIudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGNvbnRlbnQuZGVzY3JpcHRpb24oInt7LnBsYXlsaXN0LnR1bmVyLmRlc2NyaXB0aW9ufX0iKTsNCiAgICAgICAgICAgIC8vIEludGVyYWt0aW9uDQogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUludGVyYWN0aW9uKCk7DQogICAgICAgICAgICAvLyBMw7ZzY2hlbg0KICAgICAgICAgICAgaWYgKGRhdGFbImlkLnByb3ZpZGVyIl0gIT0gIi0iKSB7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImRlbGV0ZSIsICJ7ey5idXR0b24uZGVsZXRlfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogc2F2ZVBvcHVwRGF0YSgiaGRociIsICInICsgaWQgKyAnIiwgdHJ1ZSwgMCknKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5jbGFzc05hbWUgPSAiZGVsZXRlIjsNCiAgICAgICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJiYWNrIiwgInt7LmJ1dHRvbi5iYWNrfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJwbGF5bGlzdCIpJyk7DQogICAgICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICAvLyBBYmJyZWNoZW4NCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJjYW5jZWwiLCAie3suYnV0dG9uLmNhbmNlbH19Iik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogc2hvd0VsZW1lbnQoInBvcHVwIiwgZmFsc2UpOycpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICAvLyBBa3R1YWxpc2llcmVuDQogICAgICAgICAgICBpZiAoZGF0YVsiaWQucHJvdmlkZXIiXSAhPSAiLSIpIHsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAidXBkYXRlIiwgInt7LmJ1dHRvbi51cGRhdGV9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBzYXZlUG9wdXBEYXRhKCJoZGhyIiwgIicgKyBpZCArICciLCBmYWxzZSwgMSknKTsNCiAgICAgICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIC8vIFNwZWljaGVybg0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgInNhdmUiLCAie3suYnV0dG9uLnNhdmV9fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoImhkaHIiLCAiJyArIGlkICsgJyIsIGZhbHNlLCAwKScpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSAiZmlsdGVyIjoNCiAgICAgICAgICAgIGNvbnRlbnQuY3JlYXRlSGVhZGxpbmUoZGF0YVR5cGUpOw0KICAgICAgICAgICAgLy8gVHlwZQ0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gInR5cGUiOw0KICAgICAgICAgICAgdmFyIHRleHQgPSBbIk0zVTogIiArICJ7ey5maWx0ZXIudHlwZS5ncm91cFRpdGxlfX0iLCAieFRlVmU6ICIgKyAie3suZmlsdGVyLnR5cGUuY3VzdG9tRmlsdGVyfX0iXTsNCiAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBbImphdmFzY3JpcHQ6IG9wZW5Qb3BVcCgnZ3JvdXAtdGl0bGUnKSIsICJqYXZhc2NyaXB0OiBvcGVuUG9wVXAoJ2N1c3RvbS1maWx0ZXInKSJdOw0KICAgICAgICAgICAgdmFyIHNlbGVjdCA9IGNvbnRlbnQuY3JlYXRlU2VsZWN0KHRleHQsIHZhbHVlcywgImphdmFzY3JpcHQ6IG9wZW5Qb3BVcCgnZ3JvdXAtdGl0bGUnKSIsIGRiS2V5KTsNCiAgICAgICAgICAgIHNlbGVjdC5zZXRBdHRyaWJ1dGUoImlkIiwgaWQpOw0KICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAnamF2YXNjcmlwdDogY2hhbmdlQnV0dG9uQWN0aW9uKHRoaXMsICJuZXh0IiwgIm9uY2xpY2siKTsnKTsgLy8gY2hhbmdlQnV0dG9uQWN0aW9uDQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3suZmlsdGVyLnR5cGUudGl0bGV9fSIsIHNlbGVjdCk7DQogICAgICAgICAgICAvLyBJbnRlcmFrdGlvbg0KICAgICAgICAgICAgY29udGVudC5jcmVhdGVJbnRlcmFjdGlvbigpOw0KICAgICAgICAgICAgLy8gQWJicmVjaGVuDQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAiY2FuY2VsIiwgInt7LmJ1dHRvbi5jYW5jZWx9fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IHNob3dFbGVtZW50KCJwb3B1cCIsIGZhbHNlKTsnKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgLy8gV2VpdGVyDQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAibmV4dCIsICJ7ey5idXR0b24ubmV4dH19Iik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJncm91cC10aXRsZSIpJyk7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoImlkIiwgJ25leHQnKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGNhc2UgImN1c3RvbS1maWx0ZXIiOg0KICAgICAgICBjYXNlICJncm91cC10aXRsZSI6DQogICAgICAgICAgICBzd2l0Y2ggKGRhdGFUeXBlKSB7DQogICAgICAgICAgICAgICAgY2FzZSAiY3VzdG9tLWZpbHRlciI6DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuY3JlYXRlSGVhZGxpbmUoInt7LmZpbHRlci5jdXN0b219fSIgKyAiIEZpbHRlciIpOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBjYXNlICJncm91cC10aXRsZSI6DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuY3JlYXRlSGVhZGxpbmUoInt7LmZpbHRlci5ncm91cH19IiArICIgRmlsdGVyIik7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgLy8gTmFtZSAgICAgIA0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gIm5hbWUiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LmZpbHRlci5uYW1lLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5maWx0ZXIubmFtZS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgLy8gQmVzY2hyZWlidW5nDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAiZGVzY3JpcHRpb24iOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LmZpbHRlci5kZXNjcmlwdGlvbi5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3suZmlsdGVyLmRlc2NyaXB0aW9uLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBUeXANCiAgICAgICAgICAgIHZhciBkYktleSA9ICJ0eXBlIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImhpZGRlbiIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygiIiwgaW5wdXQpOw0KICAgICAgICAgICAgdmFyIGZpbHRlclR5cGUgPSBkYXRhW2RiS2V5XTsNCiAgICAgICAgICAgIHN3aXRjaCAoZmlsdGVyVHlwZSkgew0KICAgICAgICAgICAgICAgIGNhc2UgImN1c3RvbS1maWx0ZXIiOg0KICAgICAgICAgICAgICAgICAgICAvLyBHcm/Dny0gS2xlaW5zY2hyZWlidW5nIGJlYWNodGVuDQogICAgICAgICAgICAgICAgICAgIHZhciBkYktleSA9ICJjYXNlU2Vuc2l0aXZlIjsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChkYktleSk7DQogICAgICAgICAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhW2RiS2V5XTsNCiAgICAgICAgICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LmZpbHRlci5jYXNlU2Vuc2l0aXZlLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAgICAgICAgIC8vIEZpbHRlcnJlZ2VsIChCZW51dHplcmRlZmluaWVydCkNCiAgICAgICAgICAgICAgICAgICAgdmFyIGRiS2V5ID0gImZpbHRlciI7DQogICAgICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LmZpbHRlci5maWx0ZXJSdWxlLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LmZpbHRlci5maWx0ZXJSdWxlLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgImdyb3VwLXRpdGxlIjoNCiAgICAgICAgICAgICAgICAgICAgLy9hbGVydChkYktleSArICIgIiArIGZpbHRlclR5cGUpDQogICAgICAgICAgICAgICAgICAgIC8vIEZpbHRlciBiYXNpZXJlbmQgYXVmIGRlbiBHcnVwcGVuIGluIGRlciBNM1UNCiAgICAgICAgICAgICAgICAgICAgdmFyIGRiS2V5ID0gImZpbHRlciI7DQogICAgICAgICAgICAgICAgICAgIHZhciBncm91cHNNM1UgPSBnZXRMb2NhbERhdGEoIm0zdUdyb3VwcyIsICIiKTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHRleHQgPSBncm91cHNNM1VbInRleHQiXTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHZhbHVlcyA9IGdyb3Vwc00zVVsidmFsdWUiXTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHNlbGVjdCA9IGNvbnRlbnQuY3JlYXRlU2VsZWN0KHRleHQsIHZhbHVlcywgZGF0YVtkYktleV0sIGRiS2V5KTsNCiAgICAgICAgICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LmZpbHRlci5maWx0ZXJHcm91cC50aXRsZX19Iiwgc2VsZWN0KTsNCiAgICAgICAgICAgICAgICAgICAgY29udGVudC5kZXNjcmlwdGlvbigie3suZmlsdGVyLmZpbHRlckdyb3VwLmRlc2NyaXB0aW9ufX0iKTsNCiAgICAgICAgICAgICAgICAgICAgLy8gR3Jvw58tIEtsZWluc2NocmVpYnVuZyBiZWFjaHRlbg0KICAgICAgICAgICAgICAgICAgICB2YXIgZGJLZXkgPSAiY2FzZVNlbnNpdGl2ZSI7DQogICAgICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goZGJLZXkpOw0KICAgICAgICAgICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YVtkYktleV07DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5maWx0ZXIuY2FzZVNlbnNpdGl2ZS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgICAgICAgICB2YXIgZGJLZXkgPSAiaW5jbHVkZSI7DQogICAgICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LmZpbHRlci5pbmNsdWRlLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LmZpbHRlci5pbmNsdWRlLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuZGVzY3JpcHRpb24oInt7LmZpbHRlci5pbmNsdWRlLmRlc2NyaXB0aW9ufX0iKTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGRiS2V5ID0gImV4Y2x1ZGUiOw0KICAgICAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5maWx0ZXIuZXhjbHVkZS5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5maWx0ZXIuZXhjbHVkZS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgICAgICAgICBjb250ZW50LmRlc2NyaXB0aW9uKCJ7ey5maWx0ZXIuZXhjbHVkZS5kZXNjcmlwdGlvbn19Iik7DQogICAgICAgICAgICAgICAgICAgIC8vIFByZXNlcnZlIE0zVSBQbGF5bGlzdCBDaGFubmVsIE1hcHBpbmcNCiAgICAgICAgICAgICAgICAgICAgdmFyIGRiS2V5ID0gInByZXNlcnZlTWFwcGluZyI7DQogICAgICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goZGJLZXkpOw0KICAgICAgICAgICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YVtkYktleV07DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5maWx0ZXIucHJlc2VydmVNYXBwaW5nLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAgICAgICAgIC8vIFN0YXJ0aW5nIENoYW5uZWwgTnVtYmVyIE1hcHBpbmcNCiAgICAgICAgICAgICAgICAgICAgdmFyIGRiS2V5ID0gInN0YXJ0aW5nQ2hhbm5lbCI7DQogICAgICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LmZpbHRlci5zdGFydGluZ0NoYW5uZWwucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3suZmlsdGVyLnN0YXJ0aW5nQ2hhbm5lbC50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgICAgICAgICAvLyBGaWxsIE1pc3NpbmcgRVBHIERhdGENCiAgICAgICAgICAgICAgICAgICAgLy8gVGhlIGZvbGxvd2luZyBjb2RlIG9ubHkgd29ya3Mgd2hlbiB4VGVWZSBEdW1teSBhbHJlYWR5IGV4aXN0cw0KICAgICAgICAgICAgICAgICAgICAvLyB2YXIgZGJLZXk6c3RyaW5nID0gImRlZmF1bHRNaXNzaW5nRVBHIg0KICAgICAgICAgICAgICAgICAgICAvLyB2YXIgeG1sdHY6WE1MVFZGaWxlID0gbmV3IFhNTFRWRmlsZSgpDQogICAgICAgICAgICAgICAgICAgIC8vIHZhciBzZWxlY3QgPSB4bWx0di5nZXRQcm9ncmFtcygieFRlVmUgRHVtbXkiLCBkYXRhW2RiS2V5XSkNCiAgICAgICAgICAgICAgICAgICAgLy8gc2VsZWN0LnNldEF0dHJpYnV0ZSgibmFtZSIsIGRiS2V5KQ0KICAgICAgICAgICAgICAgICAgICAvLyBzZWxlY3Quc2V0QXR0cmlidXRlKCJpZCIsICJwb3B1cC1taXNzaW5nLWVwZyIpDQogICAgICAgICAgICAgICAgICAgIC8vIFRoZSB3b3JrYXJvdW5kIGlzIGN1cnJlbnRseSB0byBoYXJkIGNvZGUgdGhlIHhUZVZlIER1bW15IGRhdGENCiAgICAgICAgICAgICAgICAgICAgdmFyIGRiS2V5ID0gImRlZmF1bHRNaXNzaW5nRVBHIjsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGxpc3RPcHRpb25zID0geyAidGV4dCI6IFsiLSIsICIzMCBNaW51dGVzICgzMF9NaW51dGVzKSIsICI2MCBNaW51dGVzICg2MF9NaW51dGVzKSIsICI5MCBNaW51dGVzICg5MF9NaW51dGVzKSIsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgIjEyMCBNaW51dGVzICgxMjBfTWludXRlcykiLCAiMTgwIE1pbnV0ZXMgKDMwX01pbnV0ZXMpIiwgIjI0MCBNaW51dGVzICgzMF9NaW51dGVzKSIsICIzNjAgTWludXRlcyAoMzBfTWludXRlcykiXSwNCiAgICAgICAgICAgICAgICAgICAgICAgICJ2YWx1ZSI6IFsiLSIsICIzMF9NaW51dGVzIiwgIjYwX01pbnV0ZXMiLCAiOTBfTWludXRlcyIsICIxMjBfTWludXRlcyIsICIxODBfTWludXRlcyIsICIyNDBfTWludXRlcyIsICIzNjBfTWludXRlcyIsXSB9Ow0KICAgICAgICAgICAgICAgICAgICB2YXIgdGV4dCA9IGxpc3RPcHRpb25zWyJ0ZXh0Il07DQogICAgICAgICAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBsaXN0T3B0aW9uc1sidmFsdWUiXTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHNlbGVjdCA9IGNvbnRlbnQuY3JlYXRlU2VsZWN0KHRleHQsIHZhbHVlcywgZGF0YVtkYktleV0sIGRiS2V5KTsNCiAgICAgICAgICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LmZpbHRlci5kZWZhdWx0TWlzc2luZ0VQRy50aXRsZX19Iiwgc2VsZWN0KTsNCiAgICAgICAgICAgICAgICAgICAgY29udGVudC5kZXNjcmlwdGlvbigie3suZmlsdGVyLmRlZmF1bHRNaXNzaW5nRVBHLmRlc2NyaXB0aW9ufX0iKTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICB9DQogICAgICAgICAgICAvLyBJbnRlcmFrdGlvbg0KICAgICAgICAgICAgY29udGVudC5jcmVhdGVJbnRlcmFjdGlvbigpOw0KICAgICAgICAgICAgLy8gTMO2c2NoZW4NCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJkZWxldGUiLCAie3suYnV0dG9uLmRlbGV0ZX19Iik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogc2F2ZVBvcHVwRGF0YSgiZmlsdGVyIiwgIicgKyBpZCArICciLCB0cnVlLCAwKScpOw0KICAgICAgICAgICAgaW5wdXQuY2xhc3NOYW1lID0gImRlbGV0ZSI7DQogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIC8vIEFiYnJlY2hlbg0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImNhbmNlbCIsICJ7ey5idXR0b24uY2FuY2VsfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBzaG93RWxlbWVudCgicG9wdXAiLCBmYWxzZSk7Jyk7DQogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIC8vIFNwZWljaGVybg0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgInNhdmUiLCAie3suYnV0dG9uLnNhdmV9fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoImZpbHRlciIsICInICsgaWQgKyAnIiwgZmFsc2UsIDApJyk7DQogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJ4bWx0diI6DQogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUhlYWRsaW5lKGRhdGFUeXBlKTsNCiAgICAgICAgICAgIC8vIE5hbWUNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJuYW1lIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey54bWx0di5uYW1lLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey54bWx0di5uYW1lLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBCZXNjaHJlaWJ1bmcNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJkZXNjcmlwdGlvbiI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3sueG1sdHYuZGVzY3JpcHRpb24ucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnhtbHR2LmRlc2NyaXB0aW9uLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBVUkwNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJmaWxlLnNvdXJjZSI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3sueG1sdHYuZmlsZVhNTFRWLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey54bWx0di5maWxlWE1MVFYudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIEludGVyYWt0aW9uDQogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUludGVyYWN0aW9uKCk7DQogICAgICAgICAgICAvLyBMw7ZzY2hlbg0KICAgICAgICAgICAgaWYgKGRhdGFbImlkLnByb3ZpZGVyIl0gIT0gIi0iKSB7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImRlbGV0ZSIsICJ7ey5idXR0b24uZGVsZXRlfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogc2F2ZVBvcHVwRGF0YSgieG1sdHYiLCAiJyArIGlkICsgJyIsIHRydWUsIDApJyk7DQogICAgICAgICAgICAgICAgaW5wdXQuY2xhc3NOYW1lID0gImRlbGV0ZSI7DQogICAgICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICAvLyBBYmJyZWNoZW4NCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJjYW5jZWwiLCAie3suYnV0dG9uLmNhbmNlbH19Iik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogc2hvd0VsZW1lbnQoInBvcHVwIiwgZmFsc2UpOycpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICAvLyBBa3R1YWxpc2llcmVuDQogICAgICAgICAgICBpZiAoZGF0YVsiaWQucHJvdmlkZXIiXSAhPSAiLSIpIHsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAidXBkYXRlIiwgInt7LmJ1dHRvbi51cGRhdGV9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBzYXZlUG9wdXBEYXRhKCJ4bWx0diIsICInICsgaWQgKyAnIiwgZmFsc2UsIDEpJyk7DQogICAgICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICAvLyBTcGVpY2hlcm4NCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJzYXZlIiwgInt7LmJ1dHRvbi5zYXZlfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBzYXZlUG9wdXBEYXRhKCJ4bWx0diIsICInICsgaWQgKyAnIiwgZmFsc2UsIDApJyk7DQogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJ1c2VycyI6DQogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUhlYWRsaW5lKCJ7ey5tYWluTWVudS5pdGVtLnVzZXJzfX0iKTsNCiAgICAgICAgICAgIC8vIEJlbnV0emVybmFtZSANCiAgICAgICAgICAgIHZhciBkYktleSA9ICJ1c2VybmFtZSI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3sudXNlcnMudXNlcm5hbWUucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnVzZXJzLnVzZXJuYW1lLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBOZXVlcyBQYXNzd29ydCANCiAgICAgICAgICAgIHZhciBkYktleSA9ICJwYXNzd29yZCI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJwYXNzd29yZCIsIGRiS2V5LCAiIik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnVzZXJzLnBhc3N3b3JkLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey51c2Vycy5wYXNzd29yZC50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgLy8gQmVzdMOkdGlndW5nIA0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gImNvbmZpcm0iOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgicGFzc3dvcmQiLCBkYktleSwgIiIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey51c2Vycy5jb25maXJtLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey51c2Vycy5jb25maXJtLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBCZXJlY2h0aWd1bmcgV0VCDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAiYXV0aGVudGljYXRpb24ud2ViIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goZGJLZXkpOw0KICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGFbZGJLZXldOw0KICAgICAgICAgICAgaWYgKGRhdGFbImRlZmF1bHRVc2VyIl0gPT0gdHJ1ZSkgew0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICJqYXZhc2NyaXB0OiByZXR1cm4gZmFsc2UiKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey51c2Vycy53ZWIudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIEJlcmVjaHRpZ3VuZyBQTVMNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJhdXRoZW50aWNhdGlvbi5wbXMiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChkYktleSk7DQogICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YVtkYktleV07DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sudXNlcnMucG1zLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBCZXJlY2h0aWd1bmcgTTNVDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAiYXV0aGVudGljYXRpb24ubTN1IjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goZGJLZXkpOw0KICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGFbZGJLZXldOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnVzZXJzLm0zdS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgLy8gQmVyZWNodGlndW5nIFhNTA0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gImF1dGhlbnRpY2F0aW9uLnhtbCI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KGRiS2V5KTsNCiAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhW2RiS2V5XTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey51c2Vycy54bWwudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIEJlcmVjaHRpZ3VuZyBBUEkNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJhdXRoZW50aWNhdGlvbi5hcGkiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChkYktleSk7DQogICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YVtkYktleV07DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sudXNlcnMuYXBpLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBJbnRlcmFrdGlvbg0KICAgICAgICAgICAgY29udGVudC5jcmVhdGVJbnRlcmFjdGlvbigpOw0KICAgICAgICAgICAgLy8gTMO2c2NoZW4NCiAgICAgICAgICAgIGlmIChkYXRhWyJkZWZhdWx0VXNlciJdICE9IHRydWUgJiYgaWQgIT0gIi0iKSB7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImRlbGV0ZSIsICJ7ey5idXR0b24uZGVsZXRlfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5jbGFzc05hbWUgPSAiZGVsZXRlIjsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogc2F2ZVBvcHVwRGF0YSgiJyArIGRhdGFUeXBlICsgJyIsICInICsgaWQgKyAnIiwgdHJ1ZSwgMCknKTsNCiAgICAgICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIC8vIEFiYnJlY2hlbg0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImNhbmNlbCIsICJ7ey5idXR0b24uY2FuY2VsfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBzaG93RWxlbWVudCgicG9wdXAiLCBmYWxzZSk7Jyk7DQogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIC8vIFNwZWljaGVybg0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgInNhdmUiLCAie3suYnV0dG9uLnNhdmV9fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoIicgKyBkYXRhVHlwZSArICciLCAiJyArIGlkICsgJyIsICJmYWxzZSIpOycpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSAibWFwcGluZyI6DQogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUhlYWRsaW5lKCJ7ey5tYWluTWVudS5pdGVtLm1hcHBpbmd9fSIpOw0KICAgICAgICAgICAgLy8gQWt0aXYgDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAieC1hY3RpdmUiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChkYktleSk7DQogICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YVtkYktleV07DQogICAgICAgICAgICBpbnB1dC5pZCA9ICJhY3RpdmUiOw0KICAgICAgICAgICAgLy9pbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIikNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdG9nZ2xlQ2hhbm5lbFN0YXR1cygnIiArIGlkICsgIicsIHRoaXMpIik7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3subWFwcGluZy5hY3RpdmUudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIEthbmFsbmFtZSANCiAgICAgICAgICAgIHZhciBkYktleSA9ICJ4LW5hbWUiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICBpZiAoQlVMS19FRElUID09IHRydWUpIHsNCiAgICAgICAgICAgICAgICBpbnB1dC5zdHlsZS5ib3JkZXIgPSAic29saWQgMXB4IHJlZCI7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJyZWFkb25seSIsICJ0cnVlIik7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3subWFwcGluZy5jaGFubmVsTmFtZS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgY29udGVudC5kZXNjcmlwdGlvbihkYXRhWyJuYW1lIl0pOw0KICAgICAgICAgICAgLy8gQmVzY2hyZWlidW5nIA0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gIngtZGVzY3JpcHRpb24iOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7Lm1hcHBpbmcuZGVzY3JpcHRpb24ucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7Lm1hcHBpbmcuZGVzY3JpcHRpb24udGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIEFrdHVhbGlzaWVydW5nIGRlcyBLYW5hbG5hbWVucw0KICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoIl91dWlkLmtleSIpKSB7DQogICAgICAgICAgICAgICAgaWYgKGRhdGFbIl91dWlkLmtleSJdICE9ICIiKSB7DQogICAgICAgICAgICAgICAgICAgIHZhciBkYktleSA9ICJ4LXVwZGF0ZS1jaGFubmVsLW5hbWUiOw0KICAgICAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KGRiS2V5KTsNCiAgICAgICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YVtkYktleV07DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5tYXBwaW5nLnVwZGF0ZUNoYW5uZWxOYW1lLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgLy8gTG9nbyBVUkwgKEthbmFsKSANCiAgICAgICAgICAgIHZhciBkYktleSA9ICJ0dmctbG9nbyI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgiaWQiLCAiY2hhbm5lbC1pY29uIik7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3subWFwcGluZy5jaGFubmVsTG9nby50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgLy8gQWt0dWFsaXNpZXJ1bmcgZGVzIEthbmFsbG9nb3MNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJ4LXVwZGF0ZS1jaGFubmVsLWljb24iOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChkYktleSk7DQogICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YVtkYktleV07DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoImlkIiwgInVwZGF0ZS1pY29uIik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnOyBjaGFuZ2VDaGFubmVsTG9nbygnIiArIGlkICsgIicpOyIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7Lm1hcHBpbmcudXBkYXRlQ2hhbm5lbExvZ28udGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIEVyd2VpdGVybiBkZXIgRVBHIEthdGVnb3JpZQ0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gIngtY2F0ZWdvcnkiOw0KICAgICAgICAgICAgdmFyIHRleHQgPSBbIi0iLCAiS2lkcyAoRW1ieSBvbmx5KSIsICJOZXdzIiwgIk1vdmllIiwgIlNlcmllcyIsICJTcG9ydHMiXTsNCiAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBbIiIsICJLaWRzIiwgIk5ld3MiLCAiTW92aWUiLCAiU2VyaWVzIiwgIlNwb3J0cyJdOw0KICAgICAgICAgICAgdmFyIHNlbGVjdCA9IGNvbnRlbnQuY3JlYXRlU2VsZWN0KHRleHQsIHZhbHVlcywgZGF0YVtkYktleV0sIGRiS2V5KTsNCiAgICAgICAgICAgIHNlbGVjdC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3subWFwcGluZy5lcGdDYXRlZ29yeS50aXRsZX19Iiwgc2VsZWN0KTsNCiAgICAgICAgICAgIC8vIE0zVSBHcnVwcGVudGl0ZWwNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJ4LWdyb3VwLXRpdGxlIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7Lm1hcHBpbmcubTN1R3JvdXBUaXRsZS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgaWYgKGRhdGFbImdyb3VwLXRpdGxlIl0gIT0gdW5kZWZpbmVkKSB7DQogICAgICAgICAgICAgICAgY29udGVudC5kZXNjcmlwdGlvbihkYXRhWyJncm91cC10aXRsZSJdKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIC8vIFhNTFRWIERhdGVpDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAieC14bWx0di1maWxlIjsNCiAgICAgICAgICAgIHZhciB4bWxGaWxlID0gZGF0YVtkYktleV07DQogICAgICAgICAgICB2YXIgeG1sdHYgPSBuZXcgWE1MVFZGaWxlKCk7DQogICAgICAgICAgICB2YXIgc2VsZWN0ID0geG1sdHYuZ2V0RmlsZXMoZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgibmFtZSIsIGRiS2V5KTsNCiAgICAgICAgICAgIHNlbGVjdC5zZXRBdHRyaWJ1dGUoImlkIiwgInBvcHVwLXhtbHR2Iik7DQogICAgICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJzsgc2V0WG1sdHZDaGFubmVsKCciICsgaWQgKyAiJyx0aGlzKTsiKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5tYXBwaW5nLnhtbHR2RmlsZS50aXRsZX19Iiwgc2VsZWN0KTsNCiAgICAgICAgICAgIHZhciBmaWxlID0gZGF0YVtkYktleV07DQogICAgICAgICAgICAvLyBYTUxUViBNYXBwaW5nDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAieC1tYXBwaW5nIjsNCiAgICAgICAgICAgIHZhciB4bWx0diA9IG5ldyBYTUxUVkZpbGUoKTsNCiAgICAgICAgICAgIHZhciBzZWxlY3QgPSB4bWx0di5nZXRQcm9ncmFtcyhmaWxlLCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJuYW1lIiwgZGJLZXkpOw0KICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgiaWQiLCAicG9wdXAtbWFwcGluZyIpOw0KICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCc7IGNoZWNrWG1sdHZDaGFubmVsKCciICsgaWQgKyAiJyx0aGlzLCciICsgeG1sRmlsZSArICInKTsiKTsNCiAgICAgICAgICAgIHNvcnRTZWxlY3Qoc2VsZWN0KTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5tYXBwaW5nLnhtbHR2Q2hhbm5lbC50aXRsZX19Iiwgc2VsZWN0KTsNCiAgICAgICAgICAgIC8vIFRpbWVzaGlmdA0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gIngtdGltZXNoaWZ0IjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5tYXBwaW5nLnRpbWVzaGlmdC5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoImlkIiwgInRpbWVzaGlmdCIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7Lm1hcHBpbmcudGltZXNoaWZ0LnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBJbnRlcmFrdGlvbg0KICAgICAgICAgICAgY29udGVudC5jcmVhdGVJbnRlcmFjdGlvbigpOw0KICAgICAgICAgICAgLy8gTG9nbyBob2NobGFkZW4NCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJjYW5jZWwiLCAie3suYnV0dG9uLnVwbG9hZExvZ299fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IHVwbG9hZExvZ28oKTsnKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgLy8gQWJicmVjaGVuDQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAiY2FuY2VsIiwgInt7LmJ1dHRvbi5jYW5jZWx9fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IHNob3dFbGVtZW50KCJwb3B1cCIsIGZhbHNlKTsnKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgLy8gRmVydGlnDQogICAgICAgICAgICB2YXIgaWRzID0gW107DQogICAgICAgICAgICBpZHMgPSBnZXRBbGxTZWxlY3RlZENoYW5uZWxzKCk7DQogICAgICAgICAgICBpZiAoaWRzLmxlbmd0aCA9PSAwKSB7DQogICAgICAgICAgICAgICAgaWRzLnB1c2goaWQpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgInNhdmUiLCAie3suYnV0dG9uLmRvbmV9fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IGRvbmVQb3B1cERhdGEoIicgKyBkYXRhVHlwZSArICciLCAiJyArIGlkcyArICciLCAiZmFsc2UiKTsnKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICBicmVhazsNCiAgICB9DQogICAgc2hvd1BvcFVwRWxlbWVudCgncG9wdXAtY3VzdG9tJyk7DQp9DQpjbGFzcyBYTUxUVkZpbGUgew0KICAgIGdldEZpbGVzKHNldCkgew0KICAgICAgICBsZXQgZmlsZUlEcyA9IGdldE9iaktleXMoU0VSVkVSWyJ4ZXBnIl1bInhtbHR2TWFwIl0pOw0KICAgICAgICBsZXQgdmFsdWVzID0gbmV3IEFycmF5KCItIik7DQogICAgICAgIGxldCB0ZXh0ID0gbmV3IEFycmF5KCItIik7DQogICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgZmlsZUlEcy5sZW5ndGg7IGkrKykgew0KICAgICAgICAgICAgaWYgKGZpbGVJRHNbaV0gIT0gInhUZVZlIER1bW15Iikgew0KICAgICAgICAgICAgICAgIHZhbHVlcy5wdXNoKGdldFZhbHVlRnJvbVByb3ZpZGVyRmlsZShmaWxlSURzW2ldLCAieG1sdHYiLCAiZmlsZS54dGV2ZSIpKTsNCiAgICAgICAgICAgICAgICB0ZXh0LnB1c2goZ2V0VmFsdWVGcm9tUHJvdmlkZXJGaWxlKGZpbGVJRHNbaV0sICJ4bWx0diIsICJuYW1lIikpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgZWxzZSB7DQogICAgICAgICAgICAgICAgdmFsdWVzLnB1c2goZmlsZUlEc1tpXSk7DQogICAgICAgICAgICAgICAgdGV4dC5wdXNoKGZpbGVJRHNbaV0pOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQogICAgICAgIGxldCBzZWxlY3QgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJTRUxFQ1QiKTsNCiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0ZXh0Lmxlbmd0aDsgaSsrKSB7DQogICAgICAgICAgICB2YXIgb3B0aW9uID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiT1BUSU9OIik7DQogICAgICAgICAgICBvcHRpb24uc2V0QXR0cmlidXRlKCJ2YWx1ZSIsIHZhbHVlc1tpXSk7DQogICAgICAgICAgICBvcHRpb24uaW5uZXJUZXh0ID0gdGV4dFtpXTsNCiAgICAgICAgICAgIHNlbGVjdC5hcHBlbmRDaGlsZChvcHRpb24pOw0KICAgICAgICB9DQogICAgICAgIGlmIChzZXQgIT0gIiIpIHsNCiAgICAgICAgICAgIHNlbGVjdC52YWx1ZSA9IHNldDsNCiAgICAgICAgfQ0KICAgICAgICByZXR1cm4gc2VsZWN0Ow0KICAgIH0NCiAgICBnZXRQcm9ncmFtcyhmaWxlLCBzZXQpIHsNCiAgICAgICAgLy92YXIgZmlsZUlEczpzdHJpbmdbXSA9IGdldE9iaktleXMoU0VSVkVSWyJ4ZXBnIl1bInhtbHR2TWFwIl0pDQogICAgICAgIGxldCB2YWx1ZXMgPSBnZXRPYmpLZXlzKFNFUlZFUlsieGVwZyJdWyJ4bWx0dk1hcCJdW2ZpbGVdKTsNCiAgICAgICAgbGV0IHRleHQgPSBbXTsNCiAgICAgICAgbGV0IGRpc3BsYXlOYW1lOw0KICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHZhbHVlcy5sZW5ndGg7IGkrKykgew0KICAgICAgICAgICAgaWYgKFNFUlZFUlsieGVwZyJdWyJ4bWx0dk1hcCJdW2ZpbGVdW3ZhbHVlc1tpXV0uaGFzT3duUHJvcGVydHkoJ2Rpc3BsYXktbmFtZScpID09IHRydWUpIHsNCiAgICAgICAgICAgICAgICBkaXNwbGF5TmFtZSA9IFNFUlZFUlsieGVwZyJdWyJ4bWx0dk1hcCJdW2ZpbGVdW3ZhbHVlc1tpXV1bImRpc3BsYXktbmFtZSJdOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgZWxzZSB7DQogICAgICAgICAgICAgICAgZGlzcGxheU5hbWUgPSAiLSI7DQogICAgICAgICAgICB9DQogICAgICAgICAgICB0ZXh0W2ldID0gZGlzcGxheU5hbWUgKyAiICgiICsgdmFsdWVzW2ldICsgIikiOw0KICAgICAgICB9DQogICAgICAgIHRleHQudW5zaGlmdCgiLSIpOw0KICAgICAgICB2YWx1ZXMudW5zaGlmdCgiLSIpOw0KICAgICAgICBsZXQgc2VsZWN0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiU0VMRUNUIik7DQogICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGV4dC5sZW5ndGg7IGkrKykgew0KICAgICAgICAgICAgdmFyIG9wdGlvbiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIk9QVElPTiIpOw0KICAgICAgICAgICAgb3B0aW9uLnNldEF0dHJpYnV0ZSgidmFsdWUiLCB2YWx1ZXNbaV0pOw0KICAgICAgICAgICAgb3B0aW9uLmlubmVyVGV4dCA9IHRleHRbaV07DQogICAgICAgICAgICBzZWxlY3QuYXBwZW5kQ2hpbGQob3B0aW9uKTsNCiAgICAgICAgfQ0KICAgICAgICBpZiAoc2V0ICE9ICIiKSB7DQogICAgICAgICAgICBzZWxlY3QudmFsdWUgPSBzZXQ7DQogICAgICAgIH0NCiAgICAgICAgaWYgKHNlbGVjdC52YWx1ZSAhPSBzZXQpIHsNCiAgICAgICAgICAgIHNlbGVjdC52YWx1ZSA9ICItIjsNCiAgICAgICAgfQ0KICAgICAgICByZXR1cm4gc2VsZWN0Ow0KICAgIH0NCn0NCmZ1bmN0aW9uIGdldFZhbHVlRnJvbVByb3ZpZGVyRmlsZShmaWxlLCBmaWxlVHlwZSwga2V5KSB7DQogICAgaWYgKGZpbGUgPT0gInhUZVZlIER1bW15Iikgew0KICAgICAgICByZXR1cm4gZmlsZTsNCiAgICB9DQogICAgbGV0IGZpbGVJRDsNCiAgICBsZXQgaW5kaWNhdG9yID0gZmlsZS5jaGFyQXQoMCk7DQogICAgc3dpdGNoIChpbmRpY2F0b3IpIHsNCiAgICAgICAgY2FzZSAiTSI6DQogICAgICAgICAgICBmaWxlVHlwZSA9ICJtM3UiOw0KICAgICAgICAgICAgZmlsZUlEID0gZmlsZTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJIIjoNCiAgICAgICAgICAgIGZpbGVUeXBlID0gImhkaHIiOw0KICAgICAgICAgICAgZmlsZUlEID0gZmlsZTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJYIjoNCiAgICAgICAgICAgIGZpbGVUeXBlID0gInhtbHR2IjsNCiAgICAgICAgICAgIGZpbGVJRCA9IGZpbGUuc3Vic3RyaW5nKDAsIGZpbGUubGFzdEluZGV4T2YoJy4nKSk7DQogICAgICAgICAgICBicmVhazsNCiAgICB9DQogICAgaWYgKFNFUlZFUlsic2V0dGluZ3MiXVsiZmlsZXMiXVtmaWxlVHlwZV0uaGFzT3duUHJvcGVydHkoZmlsZUlEKSA9PSB0cnVlKSB7DQogICAgICAgIHZhciBkYXRhID0gU0VSVkVSWyJzZXR0aW5ncyJdWyJmaWxlcyJdW2ZpbGVUeXBlXVtmaWxlSURdOw0KICAgICAgICByZXR1cm4gZGF0YVtrZXldOw0KICAgIH0NCiAgICByZXR1cm47DQp9DQpmdW5jdGlvbiBzZXRYbWx0dkNoYW5uZWwoaWQsIGVsZW1lbnQpIHsNCiAgICBsZXQgeG1sdHYgPSBuZXcgWE1MVFZGaWxlKCk7DQogICAgbGV0IHhtbEZpbGUgPSBlbGVtZW50LnZhbHVlOw0KICAgIGxldCB0dmdJZCA9IFNFUlZFUlsieGVwZyJdWyJlcGdNYXBwaW5nIl1baWRdWyJ0dmctaWQiXTsNCiAgICBsZXQgdGQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicG9wdXAtbWFwcGluZyIpLnBhcmVudEVsZW1lbnQ7DQogICAgdGQuaW5uZXJIVE1MID0gIiI7DQogICAgbGV0IHNlbGVjdCA9IHhtbHR2LmdldFByb2dyYW1zKGVsZW1lbnQudmFsdWUsIHR2Z0lkKTsNCiAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJuYW1lIiwgIngtbWFwcGluZyIpOw0KICAgIHNlbGVjdC5zZXRBdHRyaWJ1dGUoImlkIiwgInBvcHVwLW1hcHBpbmciKTsNCiAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJzsgY2hlY2tYbWx0dkNoYW5uZWwoJyIgKyBpZCArICInLHRoaXMsJyIgKyB4bWxGaWxlICsgIicpOyIpOw0KICAgIHNlbGVjdC5jbGFzc05hbWUgPSAiY2hhbmdlZCI7DQogICAgc29ydFNlbGVjdChzZWxlY3QpOw0KICAgIHRkLmFwcGVuZENoaWxkKHNlbGVjdCk7DQogICAgY2hlY2tYbWx0dkNoYW5uZWwoaWQsIHNlbGVjdCwgeG1sRmlsZSk7DQp9DQpmdW5jdGlvbiBjaGVja1htbHR2Q2hhbm5lbChpZCwgZWxlbWVudCwgeG1sRmlsZSkgew0KICAgIGxldCB2YWx1ZSA9IGVsZW1lbnQudmFsdWU7DQogICAgbGV0IGJvb2w7DQogICAgbGV0IGNoZWNrYm94ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2FjdGl2ZScpOw0KICAgIGxldCBjaGFubmVsID0gU0VSVkVSWyJ4ZXBnIl1bImVwZ01hcHBpbmciXVtpZF07DQogICAgbGV0IHVwZGF0ZUxvZ287DQogICAgYm9vbCA9IHZhbHVlICE9ICItIjsNCiAgICBjaGVja2JveC5jaGVja2VkID0gYm9vbDsNCiAgICBjaGVja2JveC5jbGFzc05hbWUgPSAiY2hhbmdlZCI7DQogICAgY29uc29sZS5sb2coeG1sRmlsZSk7DQogICAgLy8gS2FuYWxsb2dvIGFrdHVhbGlzaWVyZW4NCiAgICAvKg0KICAgIHVwZGF0ZUxvZ28gPSAoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInVwZGF0ZS1pY29uIikgYXMgSFRNTElucHV0RWxlbWVudCkuY2hlY2tlZA0KICAgIGNvbnNvbGUubG9nKHVwZGF0ZUxvZ28pOw0KICAgICovDQogICAgaWYgKHhtbEZpbGUgIT0gInhUZVZlIER1bW15IiAmJiBib29sID09IHRydWUpIHsNCiAgICAgICAgLy8oZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInVwZGF0ZS1pY29uIikgYXMgSFRNTElucHV0RWxlbWVudCkuY2hlY2tlZCA9IHRydWU7DQogICAgICAgIC8vKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ1cGRhdGUtaWNvbiIpIGFzIEhUTUxJbnB1dEVsZW1lbnQpLmNsYXNzTmFtZSA9ICJjaGFuZ2VkIjsNCiAgICAgICAgY29uc29sZS5sb2coIklEIiwgaWQpOw0KICAgICAgICBjaGFuZ2VDaGFubmVsTG9nbyhpZCk7DQogICAgICAgIHJldHVybjsNCiAgICB9DQogICAgaWYgKHhtbEZpbGUgPT0gInhUZVZlIER1bW15Iikgew0KICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidXBkYXRlLWljb24iKS5jaGVja2VkID0gZmFsc2U7DQogICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ1cGRhdGUtaWNvbiIpLmNsYXNzTmFtZSA9ICJjaGFuZ2VkIjsNCiAgICB9DQogICAgcmV0dXJuOw0KfQ0KZnVuY3Rpb24gY2hhbmdlQ2hhbm5lbExvZ28oaWQpIHsNCiAgICBsZXQgdXBkYXRlTG9nbzsNCiAgICBsZXQgY2hhbm5lbCA9IFNFUlZFUlsieGVwZyJdWyJlcGdNYXBwaW5nIl1baWRdOw0KICAgIGxldCBmID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInBvcHVwLXhtbHR2Iik7DQogICAgbGV0IHhtbHR2RmlsZSA9IGYub3B0aW9uc1tmLnNlbGVjdGVkSW5kZXhdLnZhbHVlOw0KICAgIGxldCBtID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInBvcHVwLW1hcHBpbmciKTsNCiAgICBsZXQgeE1hcHBpbmcgPSBtLm9wdGlvbnNbbS5zZWxlY3RlZEluZGV4XS52YWx1ZTsNCiAgICBsZXQgeG1sdHZMb2dvID0gU0VSVkVSWyJ4ZXBnIl1bInhtbHR2TWFwIl1beG1sdHZGaWxlXVt4TWFwcGluZ11bImljb24iXTsNCiAgICB1cGRhdGVMb2dvID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInVwZGF0ZS1pY29uIikuY2hlY2tlZDsNCiAgICBpZiAodXBkYXRlTG9nbyA9PSB0cnVlICYmIHhtbHR2RmlsZSAhPSAieFRlVmUgRHVtbXkiKSB7DQogICAgICAgIGlmIChTRVJWRVJbInhlcGciXVsieG1sdHZNYXAiXVt4bWx0dkZpbGVdLmhhc093blByb3BlcnR5KHhNYXBwaW5nKSkgew0KICAgICAgICAgICAgdmFyIGxvZ28gPSB4bWx0dkxvZ287DQogICAgICAgIH0NCiAgICAgICAgZWxzZSB7DQogICAgICAgICAgICBsb2dvID0gY2hhbm5lbFsidHZnLWxvZ28iXTsNCiAgICAgICAgfQ0KICAgICAgICB2YXIgbG9nb0lucHV0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNoYW5uZWwtaWNvbiIpOw0KICAgICAgICBsb2dvSW5wdXQudmFsdWUgPSBsb2dvOw0KICAgICAgICBpZiAoQlVMS19FRElUID09IGZhbHNlKSB7DQogICAgICAgICAgICBsb2dvSW5wdXQuY2xhc3NOYW1lID0gImNoYW5nZWQiOw0KICAgICAgICB9DQogICAgfQ0KfQ0KZnVuY3Rpb24gc2F2ZVBvcHVwRGF0YShkYXRhVHlwZSwgaWQsIHJlbW92ZSwgb3B0aW9uKSB7DQogICAgaWYgKGRhdGFUeXBlID09ICJtYXBwaW5nIikgew0KICAgICAgICBsZXQgZGF0YSA9IHt9Ow0KICAgICAgICBjb25zb2xlLmxvZygiU2F2ZSBtYXBwaW5nIGRhdGEiKTsNCiAgICAgICAgbGV0IGNtZCA9ICJzYXZlRXBnTWFwcGluZyI7DQogICAgICAgIGRhdGFbImVwZ01hcHBpbmciXSA9IFNFUlZFUlsieGVwZyJdWyJlcGdNYXBwaW5nIl07DQogICAgICAgIGNvbnNvbGUubG9nKCJTRU5EIFRPIFNFUlZFUiIpOw0KICAgICAgICBsZXQgc2VydmVyID0gbmV3IFNlcnZlcihjbWQpOw0KICAgICAgICBzZXJ2ZXIucmVxdWVzdChkYXRhKTsNCiAgICAgICAgZGVsZXRlIFVORE9bImVwZ01hcHBpbmciXTsNCiAgICAgICAgcmV0dXJuOw0KICAgIH0NCiAgICBjb25zb2xlLmxvZygiU2F2ZSBwb3B1cCBkYXRhIik7DQogICAgbGV0IGRpdiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJwb3B1cC1jdXN0b20iKTsNCiAgICBsZXQgaW5wdXRzID0gZGl2LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJUQUJMRSIpWzBdLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJJTlBVVCIpOw0KICAgIGxldCBzZWxlY3RzID0gZGl2LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJUQUJMRSIpWzBdLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJTRUxFQ1QiKTsNCiAgICBsZXQgaW5wdXQgPSB7fTsNCiAgICBsZXQgY29uZmlybU1zZzsNCiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHNlbGVjdHMubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgdmFyIG5hbWU7DQogICAgICAgIG5hbWUgPSBzZWxlY3RzW2ldLm5hbWU7DQogICAgICAgIHZhciB2YWx1ZSA9IHNlbGVjdHNbaV0udmFsdWU7DQogICAgICAgIHN3aXRjaCAobmFtZSkgew0KICAgICAgICAgICAgY2FzZSAidHVuZXIiOg0KICAgICAgICAgICAgICAgIGlucHV0W25hbWVdID0gcGFyc2VJbnQodmFsdWUpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgICAgICBpbnB1dFtuYW1lXSA9IHZhbHVlOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICB9DQogICAgfQ0KICAgIGZvciAobGV0IGkgPSAwOyBpIDwgaW5wdXRzLmxlbmd0aDsgaSsrKSB7DQogICAgICAgIHN3aXRjaCAoaW5wdXRzW2ldLnR5cGUpIHsNCiAgICAgICAgICAgIGNhc2UgImNoZWNrYm94IjoNCiAgICAgICAgICAgICAgICBuYW1lID0gaW5wdXRzW2ldLm5hbWU7DQogICAgICAgICAgICAgICAgaW5wdXRbbmFtZV0gPSBpbnB1dHNbaV0uY2hlY2tlZDsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInRleHQiOg0KICAgICAgICAgICAgY2FzZSAiaGlkZGVuIjoNCiAgICAgICAgICAgIGNhc2UgInBhc3N3b3JkIjoNCiAgICAgICAgICAgICAgICBuYW1lID0gaW5wdXRzW2ldLm5hbWU7DQogICAgICAgICAgICAgICAgc3dpdGNoIChuYW1lKSB7DQogICAgICAgICAgICAgICAgICAgIGNhc2UgInR1bmVyIjoNCiAgICAgICAgICAgICAgICAgICAgICAgIGlucHV0W25hbWVdID0gcGFyc2VJbnQoaW5wdXRzW2ldLnZhbHVlKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgICAgICBkZWZhdWx0Og0KICAgICAgICAgICAgICAgICAgICAgICAgaW5wdXRbbmFtZV0gPSBpbnB1dHNbaV0udmFsdWU7DQogICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIH0NCiAgICB9DQogICAgbGV0IGRhdGEgPSB7fTsNCiAgICBsZXQgY21kOw0KICAgIGlmIChyZW1vdmUgPT0gdHJ1ZSkgew0KICAgICAgICBpbnB1dFsiZGVsZXRlIl0gPSB0cnVlOw0KICAgIH0NCiAgICBzd2l0Y2ggKGRhdGFUeXBlKSB7DQogICAgICAgIGNhc2UgInVzZXJzIjoNCiAgICAgICAgICAgIGNvbmZpcm1Nc2cgPSAiRGVsZXRlIHRoaXMgdXNlcj8iOw0KICAgICAgICAgICAgaWYgKGlkID09ICItIikgew0KICAgICAgICAgICAgICAgIGNtZCA9ICJzYXZlTmV3VXNlciI7DQogICAgICAgICAgICAgICAgZGF0YVsidXNlckRhdGEiXSA9IGlucHV0Ow0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgZWxzZSB7DQogICAgICAgICAgICAgICAgY21kID0gInNhdmVVc2VyRGF0YSI7DQogICAgICAgICAgICAgICAgbGV0IGQgPSB7fTsNCiAgICAgICAgICAgICAgICBkW2lkXSA9IGlucHV0Ow0KICAgICAgICAgICAgICAgIGRhdGFbInVzZXJEYXRhIl0gPSBkOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGNhc2UgIm0zdSI6DQogICAgICAgICAgICBjb25maXJtTXNnID0gIkRlbGV0ZSB0aGlzIHBsYXlsaXN0PyI7DQogICAgICAgICAgICBzd2l0Y2ggKG9wdGlvbikgew0KICAgICAgICAgICAgICAgIC8vIFBvcHVwOiBTYXZlDQogICAgICAgICAgICAgICAgY2FzZSAwOg0KICAgICAgICAgICAgICAgICAgICBjbWQgPSAic2F2ZUZpbGVzTTNVIjsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgLy8gUG9wdXA6IFVwZGF0ZQ0KICAgICAgICAgICAgICAgIGNhc2UgMToNCiAgICAgICAgICAgICAgICAgICAgY21kID0gInVwZGF0ZUZpbGVNM1UiOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGRhdGFbImZpbGVzIl0gPSB7fTsNCiAgICAgICAgICAgIGRhdGFbImZpbGVzIl1bZGF0YVR5cGVdID0ge307DQogICAgICAgICAgICBkYXRhWyJmaWxlcyJdW2RhdGFUeXBlXVtpZF0gPSBpbnB1dDsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJoZGhyIjoNCiAgICAgICAgICAgIGNvbmZpcm1Nc2cgPSAiRGVsZXRlIHRoaXMgSERIb21lUnVuIHR1bmVyPyI7DQogICAgICAgICAgICBzd2l0Y2ggKG9wdGlvbikgew0KICAgICAgICAgICAgICAgIC8vIFBvcHVwOiBTYXZlDQogICAgICAgICAgICAgICAgY2FzZSAwOg0KICAgICAgICAgICAgICAgICAgICBjbWQgPSAic2F2ZUZpbGVzSERIUiI7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIC8vIFBvcHVwOiBVcGRhdGUNCiAgICAgICAgICAgICAgICBjYXNlIDE6DQogICAgICAgICAgICAgICAgICAgIGNtZCA9ICJ1cGRhdGVGaWxlSERIUiI7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgZGF0YVsiZmlsZXMiXSA9IHt9Ow0KICAgICAgICAgICAgZGF0YVsiZmlsZXMiXVtkYXRhVHlwZV0gPSB7fTsNCiAgICAgICAgICAgIGRhdGFbImZpbGVzIl1bZGF0YVR5cGVdW2lkXSA9IGlucHV0Ow0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGNhc2UgInhtbHR2IjoNCiAgICAgICAgICAgIGNvbmZpcm1Nc2cgPSAiRGVsZXRlIHRoaXMgWE1MVFYgZmlsZT8iOw0KICAgICAgICAgICAgc3dpdGNoIChvcHRpb24pIHsNCiAgICAgICAgICAgICAgICAvLyBQb3B1cDogU2F2ZQ0KICAgICAgICAgICAgICAgIGNhc2UgMDoNCiAgICAgICAgICAgICAgICAgICAgY21kID0gInNhdmVGaWxlc1hNTFRWIjsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgLy8gUG9wdXA6IFVwZGF0ZQ0KICAgICAgICAgICAgICAgIGNhc2UgMToNCiAgICAgICAgICAgICAgICAgICAgY21kID0gInVwZGF0ZUZpbGVYTUxUViI7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgZGF0YVsiZmlsZXMiXSA9IHt9Ow0KICAgICAgICAgICAgZGF0YVsiZmlsZXMiXVtkYXRhVHlwZV0gPSB7fTsNCiAgICAgICAgICAgIGRhdGFbImZpbGVzIl1bZGF0YVR5cGVdW2lkXSA9IGlucHV0Ow0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGNhc2UgImZpbHRlciI6DQogICAgICAgICAgICBjb25maXJtTXNnID0gIkRlbGV0ZSB0aGlzIGZpbHRlcj8iOw0KICAgICAgICAgICAgY21kID0gInNhdmVGaWx0ZXIiOw0KICAgICAgICAgICAgZGF0YVsiZmlsdGVyIl0gPSB7fTsNCiAgICAgICAgICAgIGRhdGFbImZpbHRlciJdW2lkXSA9IGlucHV0Ow0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICBjb25zb2xlLmxvZyhkYXRhVHlwZSwgaWQpOw0KICAgICAgICAgICAgcmV0dXJuOw0KICAgIH0NCiAgICBpZiAocmVtb3ZlID09IHRydWUpIHsNCiAgICAgICAgaWYgKCFjb25maXJtKGNvbmZpcm1Nc2cpKSB7DQogICAgICAgICAgICBzaG93RWxlbWVudCgicG9wdXAiLCBmYWxzZSk7DQogICAgICAgICAgICByZXR1cm47DQogICAgICAgIH0NCiAgICB9DQogICAgY29uc29sZS5sb2coIlNFTkQgVE8gU0VSVkVSIik7DQogICAgY29uc29sZS5sb2coZGF0YSk7DQogICAgbGV0IHNlcnZlciA9IG5ldyBTZXJ2ZXIoY21kKTsNCiAgICBzZXJ2ZXIucmVxdWVzdChkYXRhKTsNCn0NCmZ1bmN0aW9uIGRvbmVQb3B1cERhdGEoZGF0YVR5cGUsIGlkc1N0cikgew0KICAgIGxldCBpZHMgPSBpZHNTdHIuc3BsaXQoJywnKTsNCiAgICBsZXQgZGl2ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInBvcHVwLWN1c3RvbSIpOw0KICAgIGxldCBpbnB1dHMgPSBkaXYuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSgiY2hhbmdlZCIpOw0KICAgIGlkcy5mb3JFYWNoKGlkID0+IHsNCiAgICAgICAgbGV0IGlucHV0Ow0KICAgICAgICBpbnB1dCA9IFNFUlZFUlsieGVwZyJdWyJlcGdNYXBwaW5nIl1baWRdOw0KICAgICAgICBjb25zb2xlLmxvZyhpbnB1dCk7DQogICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgaW5wdXRzLmxlbmd0aDsgaSsrKSB7DQogICAgICAgICAgICBsZXQgbmFtZTsNCiAgICAgICAgICAgIGxldCB2YWx1ZTsNCiAgICAgICAgICAgIHN3aXRjaCAoaW5wdXRzW2ldLnRhZ05hbWUpIHsNCiAgICAgICAgICAgICAgICBjYXNlICJJTlBVVCI6DQogICAgICAgICAgICAgICAgICAgIHN3aXRjaCAoaW5wdXRzW2ldLnR5cGUpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgImNoZWNrYm94IjoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lID0gaW5wdXRzW2ldLm5hbWU7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSBpbnB1dHNbaV0uY2hlY2tlZDsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnB1dFtuYW1lXSA9IHZhbHVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAidGV4dCI6DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZSA9IGlucHV0c1tpXS5uYW1lOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlID0gaW5wdXRzW2ldLnZhbHVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlucHV0W25hbWVdID0gdmFsdWU7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAiU0VMRUNUIjoNCiAgICAgICAgICAgICAgICAgICAgbmFtZSA9IGlucHV0c1tpXS5uYW1lOw0KICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IGlucHV0c1tpXS52YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgaW5wdXRbbmFtZV0gPSB2YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBzd2l0Y2ggKG5hbWUpIHsNCiAgICAgICAgICAgICAgICBjYXNlICJ0dmctbG9nbyI6DQogICAgICAgICAgICAgICAgICAgIC8vKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5jaGlsZE5vZGVzWzJdLmZpcnN0Q2hpbGQgYXMgSFRNTEVsZW1lbnQpLnNldEF0dHJpYnV0ZSgic3JjIiwgdmFsdWUpDQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgIngtbmFtZSI6DQogICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5jaGlsZE5vZGVzWzNdLmZpcnN0Q2hpbGQuaW5uZXJIVE1MID0gdmFsdWU7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgIngtY2F0ZWdvcnkiOg0KICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkuY2hpbGROb2Rlc1szXS5maXJzdENoaWxkLmNsYXNzTmFtZSA9IHZhbHVlOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBjYXNlICJ4LWdyb3VwLXRpdGxlIjoNCiAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpLmNoaWxkTm9kZXNbNV0uZmlyc3RDaGlsZC5pbm5lckhUTUwgPSB2YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAieC14bWx0di1maWxlIjoNCiAgICAgICAgICAgICAgICAgICAgaWYgKHZhbHVlICE9ICJ4VGVWZSBEdW1teSIgJiYgdmFsdWUgIT0gIi0iKSB7DQogICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IGdldFZhbHVlRnJvbVByb3ZpZGVyRmlsZSh2YWx1ZSwgInhtbHR2IiwgIm5hbWUiKTsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBpZiAodmFsdWUgPT0gIi0iKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBpbnB1dFsieC1hY3RpdmUiXSA9IGZhbHNlOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5jaGlsZE5vZGVzWzZdLmZpcnN0Q2hpbGQuaW5uZXJIVE1MID0gdmFsdWU7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgIngtbWFwcGluZyI6DQogICAgICAgICAgICAgICAgICAgIGlmICh2YWx1ZSA9PSAiLSIpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGlucHV0WyJ4LWFjdGl2ZSJdID0gZmFsc2U7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpLmNoaWxkTm9kZXNbN10uZmlyc3RDaGlsZC5pbm5lckhUTUwgPSB2YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGNyZWF0ZVNlYXJjaE9iaigpOw0KICAgICAgICAgICAgc2VhcmNoSW5NYXBwaW5nKCk7DQogICAgICAgIH0NCiAgICAgICAgaWYgKGlucHV0WyJ4LWFjdGl2ZSJdID09IGZhbHNlKSB7DQogICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkuY2xhc3NOYW1lID0gIm5vdEFjdGl2ZUVQRyI7DQogICAgICAgIH0NCiAgICAgICAgZWxzZSB7DQogICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkuY2xhc3NOYW1lID0gImFjdGl2ZUVQRyI7DQogICAgICAgIH0NCiAgICAgICAgY29uc29sZS5sb2coaW5wdXRbInR2Zy1sb2dvIl0pOw0KICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkuY2hpbGROb2Rlc1syXS5maXJzdENoaWxkLnNldEF0dHJpYnV0ZSgic3JjIiwgaW5wdXRbInR2Zy1sb2dvIl0pOw0KICAgIH0pOw0KICAgIHNob3dFbGVtZW50KCJwb3B1cCIsIGZhbHNlKTsNCiAgICByZXR1cm47DQp9DQpmdW5jdGlvbiBzaG93UHJldmlldyhlbGVtZW50KSB7DQogICAgbGV0IGRpdiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJteVN0cmVhbXNCb3giKTsNCiAgICBzd2l0Y2ggKGVsZW1lbnQpIHsNCiAgICAgICAgY2FzZSBmYWxzZToNCiAgICAgICAgICAgIGRpdi5jbGFzc05hbWUgPSAibm90VmlzaWJsZSI7DQogICAgICAgICAgICByZXR1cm47DQogICAgfQ0KICAgIGxldCBzdHJlYW1zID0gWyJhY3RpdmVTdHJlYW1zIiwgImluYWN0aXZlU3RyZWFtcyJdOw0KICAgIHN0cmVhbXMuZm9yRWFjaChwcmV2aWV3ID0+IHsNCiAgICAgICAgbGV0IHRhYmxlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQocHJldmlldyk7DQogICAgICAgIHRhYmxlLmlubmVySFRNTCA9ICIiOw0KICAgICAgICBsZXQgb2JqID0gU0VSVkVSWyJkYXRhIl1bIlN0cmVhbVByZXZpZXdVSSJdW3ByZXZpZXddOw0KICAgICAgICBvYmouZm9yRWFjaChjaGFubmVsID0+IHsNCiAgICAgICAgICAgIGxldCB0ciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlRSIik7DQogICAgICAgICAgICBsZXQgdGRLZXkgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgbGV0IHRkVmFsID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgIHRkS2V5LmNsYXNzTmFtZSA9ICJ0ZEtleSI7DQogICAgICAgICAgICB0ZFZhbC5jbGFzc05hbWUgPSAidGRWYWwiOw0KICAgICAgICAgICAgc3dpdGNoIChwcmV2aWV3KSB7DQogICAgICAgICAgICAgICAgY2FzZSAiYWN0aXZlU3RyZWFtcyI6DQogICAgICAgICAgICAgICAgICAgIHRkS2V5LmlubmVyVGV4dCA9ICJDaGFubmVsOiAoKykiOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBjYXNlICJpbmFjdGl2ZVN0cmVhbXMiOg0KICAgICAgICAgICAgICAgICAgICB0ZEtleS5pbm5lclRleHQgPSAiQ2hhbm5lbDogKC0pIjsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICB9DQogICAgICAgICAgICB0ZFZhbC5pbm5lclRleHQgPSBjaGFubmVsOw0KICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQodGRLZXkpOw0KICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQodGRWYWwpOw0KICAgICAgICAgICAgdGFibGUuYXBwZW5kQ2hpbGQodHIpOw0KICAgICAgICB9KTsNCiAgICB9KTsNCiAgICBzaG93RWxlbWVudCgibG9hZGluZyIsIGZhbHNlKTsNCiAgICBkaXYuY2xhc3NOYW1lID0gInZpc2libGUiOw0KICAgIHJldHVybjsNCn0NCg==" - webUI["html/maintenance.html"] = "PCFkb2N0eXBlIGh0bWw+DQo8aHRtbD4NCiAgPGhlYWQ+DQogICAgPG1ldGEgY2hhcnNldD0idXRmLTgiPg0KICAgIDxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgsIGluaXRpYWwtc2NhbGU9MS4wIiAvPiANCiAgICA8dGl0bGU+eFRlVmU8L3RpdGxlPg0KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iY3NzL3NjcmVlbi5jc3MiIHR5cGU9InRleHQvY3NzIj4NCiAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9ImNzcy9iYXNlLmNzcyIgdHlwZT0idGV4dC9jc3MiPg0KICA8L2hlYWQ+DQoNCiAgICA8Ym9keT4NCiAgICAgICAgICANCiAgICAgIDxkaXYgaWQ9ImhlYWRlciIgY2xhc3M9ImltZ0NlbnRlciI+PC9kaXY+DQoNCiAgICAgIDxkaXYgaWQ9ImJveCI+DQoNCiAgICAgICAgPGRpdiBpZD0iaGVhZGxpbmUiPg0KICAgICAgICAgIDxoMSBpZD0iaGVhZC10ZXh0IiBjbGFzcz0iY2VudGVyIj5NYWludGVuYW5jZTwvaDE+ICAgICAgDQogICAgICAgIDwvZGl2PiAgDQoNCiAgICAgICAgPGRpdiBpZD0iY29udGVudCI+DQogICAgICAgICAgeFRlVmUgaXMgdXBkYXRpbmcgdGhlIGRhdGFiYXNlLCBwbGVhc2UgdHJ5IGFnYWluIGxhdGVyLg0KICAgICAgICA8L2Rpdj4NCg0KICAgICAgICA8ZGl2IGlkPSJib3gtZm9vdGVyIj48L2Rpdj4NCiAgICAgICAgDQogICAgICA8L2Rpdj4NCg0KICAgIDwvYm9keT4NCjwvaHRtbD4=" - webUI["html/create-first-user.html"] = "PCFkb2N0eXBlIGh0bWw+DQo8aHRtbD4NCiAgPGhlYWQ+DQogICAgPG1ldGEgY2hhcnNldD0idXRmLTgiPg0KICAgIDxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgsIGluaXRpYWwtc2NhbGU9MS4wIiAvPiANCiAgICA8dGl0bGU+eFRlVmU8L3RpdGxlPg0KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iY3NzL3NjcmVlbi5jc3MiIHR5cGU9InRleHQvY3NzIj4NCiAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9ImNzcy9iYXNlLmNzcyIgdHlwZT0idGV4dC9jc3MiPg0KICAgIDxzY3JpcHQgbGFuZ3VhZ2U9ImphdmFzY3JpcHQiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJqcy9uZXR3b3JrX3RzLmpzIj48L3NjcmlwdD4NCiAgICA8c2NyaXB0IGxhbmd1YWdlPSJqYXZhc2NyaXB0IiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ianMvYXV0aGVudGljYXRpb25fdHMuanMiPjwvc2NyaXB0Pg0KICA8L2hlYWQ+DQoNCiAgICA8Ym9keT4NCiAgICAgICAgICANCiAgICAgIDxkaXYgaWQ9ImhlYWRlciIgY2xhc3M9ImltZ0NlbnRlciI+PC9kaXY+DQoNCiAgICAgIDxkaXYgaWQ9ImJveCI+DQoNCiAgICAgICAgPGRpdiBpZD0iaGVhZGxpbmUiPg0KICAgICAgICAgIDxoMSBpZD0iaGVhZC10ZXh0IiBjbGFzcz0iY2VudGVyIj57ey5hY2NvdW50LmhlYWRsaW5lfX08L2gxPg0KICAgICAgICA8L2Rpdj4NCg0KICAgICAgICA8cCBpZD0iZXJyIiBjbGFzcz0iZXJyb3JNc2cgY2VudGVyIj48L3A+DQoNCiAgICAgICAgPGRpdiBpZD0iY29udGVudCI+DQoNCiAgICAgICAgICAgIDxmb3JtIGlkPSJhdXRoZW50aWNhdGlvbiIgYWN0aW9uPSIiIG1ldGhvZD0icG9zdCI+DQoNCiAgICAgICAgICAgICAgPGg1Pnt7LmFjY291bnQudXNlcm5hbWUudGl0bGV9fTo8L2g1Pg0KICAgICAgICAgICAgICA8aW5wdXQgaWQ9InVzZXJuYW1lIiB0eXBlPSJ0ZXh0IiBuYW1lPSJ1c2VybmFtZSIgcGxhY2Vob2xkZXI9IlVzZXJuYW1lIiB2YWx1ZT0iIj4NCiAgICAgICAgICAgICAgPGg1Pnt7LmFjY291bnQucGFzc3dvcmQudGl0bGV9fTo8L2g1Pg0KICAgICAgICAgICAgICA8aW5wdXQgaWQ9InBhc3N3b3JkIiB0eXBlPSJwYXNzd29yZCIgbmFtZT0icGFzc3dvcmQiIHBsYWNlaG9sZGVyPSJQYXNzd29yZCIgdmFsdWU9IiI+DQogICAgICAgICAgICAgIDxoNT57ey5hY2NvdW50LmNvbmZpcm0udGl0bGV9fTo8L2g1Pg0KICAgICAgICAgICAgICA8aW5wdXQgaWQ9ImNvbmZpcm0iICB0eXBlPSJwYXNzd29yZCIgbmFtZT0iY29uZmlybSIgIHBsYWNlaG9sZGVyPSJDb25maXJtIiB2YWx1ZT0iIj4NCiAgICAgICAgICAgICAgDQogICAgICAgICAgICA8L2Zvcm0+DQoNCiAgICAgICAgPC9kaXY+DQogICAgICAgIA0KICAgICAgICA8ZGl2IGlkPSJib3gtZm9vdGVyIj4NCiAgICAgICAgICA8aW5wdXQgaWQ9InN1Ym1pdCIgY2xhc3M9IiIgdHlwZT0iYnV0dG9uIiB2YWx1ZT0ie3suYnV0dG9uLmNyYWV0ZUFjY291bnR9fSIgb25jbGljaz0iamF2YXNjcmlwdDogbG9naW4oKTsiPg0KICAgICAgICA8L2Rpdj4NCiAgICAgIA0KICAgICAgICANCiAgICAgIDwvZGl2Pg0KICAgIDwvYm9keT4NCjwvaHRtbD4=" - webUI["html/img/logout.png"] = "iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAAAXNSR0IArs4c6QAAAAlwSFlzAAAsSwAALEsBpT2WqQAABCRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IlhNUCBDb3JlIDUuNC4wIj4KICAgPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIgogICAgICAgICAgICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgICAgICAgICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyI+CiAgICAgICAgIDx0aWZmOlJlc29sdXRpb25Vbml0PjI8L3RpZmY6UmVzb2x1dGlvblVuaXQ+CiAgICAgICAgIDx0aWZmOkNvbXByZXNzaW9uPjU8L3RpZmY6Q29tcHJlc3Npb24+CiAgICAgICAgIDx0aWZmOlhSZXNvbHV0aW9uPjI4ODwvdGlmZjpYUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6T3JpZW50YXRpb24+MTwvdGlmZjpPcmllbnRhdGlvbj4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+Mjg4PC90aWZmOllSZXNvbHV0aW9uPgogICAgICAgICA8ZXhpZjpQaXhlbFhEaW1lbnNpb24+NTA8L2V4aWY6UGl4ZWxYRGltZW5zaW9uPgogICAgICAgICA8ZXhpZjpDb2xvclNwYWNlPjE8L2V4aWY6Q29sb3JTcGFjZT4KICAgICAgICAgPGV4aWY6UGl4ZWxZRGltZW5zaW9uPjUwPC9leGlmOlBpeGVsWURpbWVuc2lvbj4KICAgICAgICAgPGRjOnN1YmplY3Q+CiAgICAgICAgICAgIDxyZGY6QmFnLz4KICAgICAgICAgPC9kYzpzdWJqZWN0PgogICAgICAgICA8eG1wOk1vZGlmeURhdGU+MjAxOC0xMC0xM1QxMToxMDoxODwveG1wOk1vZGlmeURhdGU+CiAgICAgICAgIDx4bXA6Q3JlYXRvclRvb2w+UGl4ZWxtYXRvciAzLjM8L3htcDpDcmVhdG9yVG9vbD4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgIDwvcmRmOlJERj4KPC94OnhtcG1ldGE+Cg27QeEAAANQSURBVGgF7Zk9aBRBGIZzSRSN8YdoCpEkghCCqK1o4g9IsBCCNmIniCAiWAhqI8G02qiIoqCCWggSEcFKEFPYpVAU8QdFUyiKRpRokBjP55OdZDLZvZnZ7N3Ngh887M7sN/O9797t7c5eTc3/8D8DxWKxGS5Ai//oAEYgvB4OwleQaAtAlp8ERG+Bp6Jei/wYQfRy6NfE67vhG0FtA/TBqK7c2A/bCGJ3wpAhOq4ZphGUroEHcYoT+sIygsgmOAu/EwQndYdhBHV1sB8+Jym19Lf6/faVIRuBG+GRRajtcPWMoKwFbtgUOh6vvBGEzYFj8MNRpEtaZY2gaAe8cVHmmXOc/K3QXIZv/+SUFFgJ96AS8ZwiZ6Ab6iZVzGCPiRbCKRiDasQHip6EdD/PDKyFvfAJQgg5kVfB/VoieT0MQojxE1G9UG/7otWS0A7pPkrb7DM/Ppcp+mAAM/bFGEmL4RL8gVDjI8JWOZ0bEjvhSahO0CXXsLMZWZYegREIMV4jaoHTJyNJJLfC7RCdoOm6sxGVyKAeeBegoU6l0XmLiXlwAqp1o4w7j3d1AwW9YdtnNrnQzkOXLddyfAPHv8Ey6ABpd8N88In2QqHwymfARC5mCrAH0i6qGDr9jk3fbNgFz8A1DkwIS7tDpSVwGdLcexIfPZhPHpf2wS+wRX9a/dPGUakLzBdwNgGJRlQBJtgMw5aJ3qr8TLYUmwVHwXXxZTUiwphvHYxDUnzPxIA5CdXa4E5SVa3fyUhkRtYqpSKbNYxpJiq+ncpDJar7GGlknvcl5mqM05BZH4Xl3iOLpLh7j7OR6MScSzAykplg20QIWA0PDSG+RuTdQVy8sNXP9DgK5N4jK9AvkRpfI4sYF/c2836mQl0nQ4zce66AfZFkTMqYl2DGaSMt/CYOHpsuaPco5bLUzUuMGkLHaQ+ovjwZUZrVdpAHRnnw/Bd5MrJCiY62t4x2+E2uBfkfRg95TdSkK8/LJ7JWF83+Nb5Ww0Zf+E3OviwXVMgT8dLwVRsKEd0A+uP8biMlH01MHAYVF/Oh2lCJenkDqpbUN9nPyzU91QnCRbyEPEXn1sQhxMv7tG1T7cW3rK/r44eVtxfxm6gwBh38zJqPJuUtXu3Z/wLwuBaBLgMkKwAAAABJRU5ErkJggg==" - webUI["html/js/configuaration.js"] = "dmFyIGNvbmZpZ01lbnUgPSBuZXcgT2JqZWN0KCk7DQp2YXIgd2l6YXJkID0gbmV3IEFycmF5KCJrZXkiLCAidHVuZXIiLCAiZXBnU291cmNlIiwgIm0zdSIsICJjb21wbGV0ZSIpOw0KdmFyIGFjdGl2ZVdpemFyZDsNCnZhciBkdnJJUA0KDQp2YXIgY29uZmlnTWVudV90dW5lciA9IG5ldyBPYmplY3QoKTsNCmNvbmZpZ01lbnVfdHVuZXJbIl9lbGVtZW50Il0gICAgICA9ICJTRUxFQ1QiOw0KY29uZmlnTWVudV90dW5lclsiX21lbnVUeXBlIl0gICAgID0gInNpbmdsZUlucHV0IjsNCmNvbmZpZ01lbnVfdHVuZXJbIl9jb25maWdLZXkiXSAgICA9ICJ0dW5lciI7DQpjb25maWdNZW51X3R1bmVyWyJfbGFiZWwiXSAgICAgICAgPSAiQXZhaWxhYmxlIHR1bmVycyI7DQpjb25maWdNZW51X3R1bmVyWyJuYW1lIl0gICAgICAgICAgPSAidHVuZXIiOw0KY29uZmlnTWVudV90dW5lclsiaWQiXSAgICAgICAgICAgID0gIlR1bmVyIjsNCmNvbmZpZ01lbnVfdHVuZXJbInBsYWNlaG9sZGVyIl0gICA9ICJUdW5lciI7DQpjb25maWdNZW51X3R1bmVyWyJfdXNhZ2UiXSAgICAgICAgPSAiVGhpcyBzZXR0aW5nIGlzIG9ubHkgdXNlZCBieSBQbGV4IGFuZCBFbWJ5Ljxicj5UaGUgbnVtYmVyIG9mIGNvbmN1cnJlbnQgc3RyZWFtcyBhbGxvd2VkIGJ5IHRoZSBJUFRWIHByb3ZpZGVyLiINCg0KDQp2YXIgb3B0aW9uVmFsdWVzID0gbmV3IEFycmF5KCk7DQpmb3IgKHZhciBpID0gMTsgaSA8PSAxMDA7IGkrKykgew0KICBvcHRpb25WYWx1ZXMucHVzaChpKQ0KfQ0KY29uZmlnTWVudV90dW5lclsiX29wdGlvblZhbHVlcyJdID0gb3B0aW9uVmFsdWVzOw0KDQp2YXIgY29uZmlnTWVudV9lcGcgPSBuZXcgT2JqZWN0KCk7DQpjb25maWdNZW51X2VwZ1siX2VsZW1lbnQiXSAgICAgID0gIlNFTEVDVCI7DQpjb25maWdNZW51X2VwZ1siX21lbnVUeXBlIl0gICAgID0gInNpbmdsZUlucHV0IjsNCmNvbmZpZ01lbnVfZXBnWyJfY29uZmlnS2V5Il0gICAgPSAiZXBnU291cmNlIjsNCmNvbmZpZ01lbnVfZXBnWyJfbGFiZWwiXSAgICAgICAgPSAiU2VsZWN0aW9uIG9mIHRoZSBFUEcgc291cmNlIjsNCmNvbmZpZ01lbnVfZXBnWyJuYW1lIl0gICAgICAgICAgPSAiZXBnU291cmNlIjsNCmNvbmZpZ01lbnVfZXBnWyJpZCJdICAgICAgICAgICAgPSAiRVBHIHNvdXJjZSI7DQpjb25maWdNZW51X2VwZ1sicGxhY2Vob2xkZXIiXSAgID0gIkVQRyBzb3VyY2UiOw0KY29uZmlnTWVudV9lcGdbIl9vcHRpb25WYWx1ZXMiXSA9IG5ldyBBcnJheSgiUE1TIiwgIlhFUEciKTsNCmNvbmZpZ01lbnVfZXBnWyJfdXNhZ2UiXSAgICAgICAgPSAiUE1TOiAgIFVzZSBFUEcgZGF0YSBmcm9tIFBsZXggb3IgRW1ieTxicj5YRVBHOiAgVXNlIG9mIGV4dGVybmFsIEVQRyBkYXRhIChYTUxUVik8YnI+ICAgICAgIFNldmVyYWwgWE1MVFYgc291cmNlcyBwb3NzaWJsZTxicj4gICAgICAgQWxsb3dzIGVkaXRpbmcgYW5kIG9yZGVyIGNoYW5uZWxzPGJyPiAgICAgICBNM1UgLyBYTUxUViBleHBvcnQgKEhUVFAgbGluayBmb3IgSVBUViBhcHBzKSINCg0KdmFyIGNvbmZpZ01lbnVfbTN1ID0gbmV3IE9iamVjdCgpOw0KY29uZmlnTWVudV9tM3VbIl9lbGVtZW50Il0gICAgICAgID0gIklOUFVUIjsNCmNvbmZpZ01lbnVfbTN1WyJfbWVudVR5cGUiXSAgICAgICA9ICJpbnB1dEFycmF5IjsNCmNvbmZpZ01lbnVfbTN1WyJfY29uZmlnS2V5Il0gICAgICA9ICJmaWxlIjsNCmNvbmZpZ01lbnVfbTN1WyJfbGFiZWwiXSAgICAgICAgICA9ICJNM1UgRmlsZTogbG9jYWwgb3IgcmVtb3RlIjsNCmNvbmZpZ01lbnVfbTN1WyJuYW1lIl0gICAgICAgICAgICA9ICJmaWxlIjsNCmNvbmZpZ01lbnVfbTN1WyJpZCJdICAgICAgICAgICAgICA9ICJtM3UiOw0KY29uZmlnTWVudV9tM3VbInR5cGUiXSAgICAgICAgICAgID0gInRleHQiOw0KY29uZmlnTWVudV9tM3VbInBsYWNlaG9sZGVyIl0gICAgID0gIk0zVSBGaWxlIjsNCmNvbmZpZ01lbnVfbTN1WyJfdXNhZ2UiXSAgICAgICAgICA9ICJSZW1vdGUgcGxheWxpc3Q6IGh0dHA6Ly95b3VyLnByb3ZpZGVyLmNvbS9maWxlLm0zdTxicj5Mb2NhbCAgcGxheWxpc3Q6IC9wYXRoL3RvL2ZpbGUubTN1Ig0KDQoNCmNvbmZpZ01lbnVfbTN1WyJ2YWx1ZSJdICAgICAgICAgICA9ICJodHRwOi8vd2Vic3J2LmxvY2FsOjgwODAva2FiZWwubTN1IjsNCg0KdmFyIGNvbmZpZ01lbnVfY29tcGxldGUgPSBuZXcgT2JqZWN0KCk7DQpjb25maWdNZW51X2NvbXBsZXRlWyJfZWxlbWVudCJdICAgICAgICA9ICJIMiI7DQpjb25maWdNZW51X2NvbXBsZXRlWyJfbWVudVR5cGUiXSAgICAgICA9ICJpbnB1dEFycmF5IjsNCmNvbmZpZ01lbnVfY29tcGxldGVbIl9jb25maWdLZXkiXSAgICAgID0gImZpbGUiOw0KY29uZmlnTWVudV9jb21wbGV0ZVsiX3RleHQiXSAgICAgICAgICAgPSAieFRlVmUgd2FzIHN1Y2Nlc3NmdWxseSBzZXQgdXAiOw0KY29uZmlnTWVudV9jb21wbGV0ZVsibmFtZSJdICAgICAgICAgICAgPSAiY29tcGxldGUiOw0KY29uZmlnTWVudV9jb21wbGV0ZVsiaWQiXSAgICAgICAgICAgICAgPSAiY29tcGxldGUiOw0KY29uZmlnTWVudV9jb21wbGV0ZVsidHlwZSJdICAgICAgICAgICAgPSAidGV4dCI7DQpjb25maWdNZW51X2NvbXBsZXRlWyJjbGFzcyJdICAgICAgICAgICA9ICJjZW50ZXIiOw0KDQpjb25maWdNZW51WyJ0dW5lciJdICAgICA9IGNvbmZpZ01lbnVfdHVuZXI7DQpjb25maWdNZW51WyJlcGdTb3VyY2UiXSA9IGNvbmZpZ01lbnVfZXBnOw0KY29uZmlnTWVudVsibTN1Il0gICAgICAgPSBjb25maWdNZW51X20zdTsNCmNvbmZpZ01lbnVbImNvbXBsZXRlIl0gID0gY29uZmlnTWVudV9jb21wbGV0ZTsNCg0KZnVuY3Rpb24gcmVhZHlGb3JDb25maWd1cmF0aW9uKCkgew0KICB2YXIgZGF0YSA9IG5ldyBPYmplY3QoKTsNCiAgZGF0YVsiY21kIl0gPSAiZ2V0U2VydmVyQ29uZmlnIjsNCiAgeFRlVmUoZGF0YSk7DQogIHNob3dMb2FkaW5nU2NyZWVuKGZhbHNlKTsNCn0NCg0KZnVuY3Rpb24gY3JlYXRlQ29uZmlndXJhdGlvbihlbG0pIHsNCg0KICBhY3RpdmVXaXphcmQgPSBlbG07DQogIHZhciBpdGVtICA9IGNvbmZpZ01lbnVbZWxtXTsNCg0KICB2YXIgZGl2ICAgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29udGVudCIpOw0KICBkaXYuaW5uZXJIVE1MID0gIiI7DQogIGRpdi5zZXRBdHRyaWJ1dGUoImRhdGEtY29uZmlnS2V5IiwgaXRlbVsiX2NvbmZpZ0tleSJdKTsNCiAgZGl2LnNldEF0dHJpYnV0ZSgiZGF0YS1tZW51VHlwZSIsIGl0ZW1bIl9tZW51VHlwZSJdKTsNCiAgDQogIHN3aXRjaChpdGVtLmhhc093blByb3BlcnR5KCJfbGFiZWwiKSkgew0KICAgIGNhc2UgdHJ1ZToNCiAgICAgIHZhciBuZXdJdGVtID0gbmV3IE9iamVjdCgpOw0KICAgICAgbmV3SXRlbVsiX2VsZW1lbnQiXSA9ICJMQUJFTCI7DQogICAgICBuZXdJdGVtWyJfdGV4dCJdICAgID0gaXRlbVsiX2xhYmVsIl07IA0KICAgICAgbmV3SXRlbVsiZm9yIl0gICAgICA9IGl0ZW1bImlkIl07DQogICAgICBkaXYuYXBwZW5kQ2hpbGQoY3JlYXRlRWxlbWVudChuZXdJdGVtKSk7DQogICAgICBicmVhaw0KICB9DQoNCiAgc3dpdGNoKGl0ZW1bIl9lbGVtZW50Il0pIHsNCiAgICBjYXNlICJTRUxFQ1QiOg0KICAgICAgZGl2LmFwcGVuZENoaWxkKGNyZWF0ZUVsZW1lbnQoaXRlbSkpOw0KICAgICAgdmFyIHNlbGVjdEVsZW1lbnQgPSBkaXYuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlNFTEVDVCIpWzBdOw0KICAgICAgdmFyIHZhbHVlcyA9IGl0ZW1bIl9vcHRpb25WYWx1ZXMiXTsNCiAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdmFsdWVzLmxlbmd0aDsgaSsrKSB7DQogICAgICAgIHZhciBuZXdFbnRyeSA9IG5ldyBPYmplY3Q7DQogICAgICAgIG5ld0VudHJ5WyJfZWxlbWVudCJdICA9ICJPUFRJT04iOw0KICAgICAgICBuZXdFbnRyeVsiX3RleHQiXSAgICAgPSBpdGVtWyJpZCJdICsgIjogIiArIHZhbHVlc1tpXTsNCiAgICAgICAgbmV3RW50cnlbInZhbHVlIl0gICAgID0gdmFsdWVzW2ldOw0KICAgICAgICBzZWxlY3RFbGVtZW50LmFwcGVuZENoaWxkKGNyZWF0ZUVsZW1lbnQobmV3RW50cnkpKTsNCiAgICAgIH0NCiAgICAgIC8vcmV0dXJuDQogICAgICBicmVhazsNCg0KICAgIGRlZmF1bHQ6IA0KICAgICAgZGl2LmFwcGVuZENoaWxkKGNyZWF0ZUVsZW1lbnQoaXRlbSkpOw0KICAgICAgYnJlYWs7DQoNCg0KICB9DQogIC8vYWxlcnQoKQ0KDQogIHN3aXRjaChpdGVtLmhhc093blByb3BlcnR5KCJfdXNhZ2UiKSkgew0KICAgIGNhc2UgdHJ1ZTogDQogICAgICB2YXIgdXNhZ2VJdGVtID0gbmV3IE9iamVjdCgpOw0KICAgICAgdXNhZ2VJdGVtWyJfZWxlbWVudCJdID0gIlBSRSINCiAgICAgIHVzYWdlSXRlbVsiX3RleHQiXSAgICA9IGl0ZW1bIl91c2FnZSJdOw0KICAgICAgZGl2LmFwcGVuZENoaWxkKGNyZWF0ZUVsZW1lbnQodXNhZ2VJdGVtKSk7DQogIH0NCg0KICBpZiAoYWN0aXZlV2l6YXJkID09ICJjb21wbGV0ZSIpIHsNCiAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibmV4dCIpLnZhbHVlID0gIkZpbmlzaGVkIg0KICAgIC8vZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm5leHQiKS5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAiamF2YXNjcmlwdDogbG9jYXRpb24ucmVsb2FkKCk7IikNCiAgfQ0KDQogIC8vZGl2LmFwcGVuZENoaWxkKGNyZWF0ZUVsZW1lbnQoaXRlbSkpOw0KfQ0KDQpmdW5jdGlvbiBzYXZlRGF0YSgpIHsNCg0KICB2YXIgZGl2ICAgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29udGVudCIpOw0KICB2YXIgaW5wdXRzID0gZGl2LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJJTlBVVCIpOw0KICB2YXIgc2VsZWN0cyA9IGRpdi5nZXRFbGVtZW50c0J5VGFnTmFtZSgiU0VMRUNUIik7DQogIHZhciB2YWx1ZTsNCiAgdmFyIGRhdGEgPSBuZXcgT2JqZWN0KCk7DQogIHZhciB2YWx1ZUFyciA9IG5ldyBBcnJheSgpOw0KICB2YXIgbmV3RGF0YSA9IGZhbHNlOw0KDQogIGlmIChhY3RpdmVXaXphcmQgPT0gImNvbXBsZXRlIikgew0KICAgIGRhdGFbImNtZCJdID0gIndpemFyZENvbXBsZXRlZCI7DQogICAgc2hvd0xvYWRpbmdTY3JlZW4odHJ1ZSkNCiAgICB4VGVWZShkYXRhKTsNCiAgICByZXR1cm4NCiAgfQ0KICANCiAgZm9yICh2YXIgaSA9IDA7IGkgPCBpbnB1dHMubGVuZ3RoOyBpKyspIHsNCiAgICB2YXIgbWVudVR5cGUgPSBpbnB1dHNbaV0ucGFyZW50RWxlbWVudC5nZXRBdHRyaWJ1dGUoImRhdGEtbWVudXR5cGUiKTsNCiAgICBpZiAoaW5wdXRzW2ldLnZhbHVlICE9IHVuZGVmaW5lZCAmJiBpbnB1dHNbaV0udmFsdWUgIT0gIiIgKSB7DQogICAgICBuZXdEYXRhID0gdHJ1ZTsNCg0KICAgICAgY29uc29sZS5sb2coaW5wdXRzW2ldLmlkKQ0KICAgICAgc3dpdGNoKGlucHV0c1tpXS5pZCkgew0KICAgICAgICBjYXNlICJtM3UiOiANCiAgICAgICAgICB2YXIgbmV3UGxheWxpc3QgPSBuZXcgT2JqZWN0KCk7DQogICAgICAgICAgbmV3UGxheWxpc3RbImZpbGUuc291cmNlIl0gPSBpbnB1dHNbaV0udmFsdWU7DQogICAgICAgICAgLy9uZXdQbGF5bGlzdFsibmFtZSJdID0gaW5wdXRzW2ldLnZhbHVlOw0KICAgICAgICAgIG5ld1BsYXlsaXN0WyJ0eXBlIl0gPSAibTN1IjsNCiAgICAgICAgICBuZXdQbGF5bGlzdFsibmV3Il0gPSB0cnVlOw0KDQogICAgICAgICAgZGF0YVsiZmlsZXMiXSA9IG5ldyBPYmplY3QoKTsNCiAgICAgICAgICBkYXRhWyJmaWxlcyJdWyJtM3UiXSA9IG5ldyBPYmplY3QoKTsNCiAgICAgICAgICBkYXRhWyJmaWxlcyJdWyJtM3UiXVsiLSJdID0gbmV3UGxheWxpc3Q7DQogICAgICAgICAgDQogICAgICAgICAgZGF0YVsiY21kIl0gPSAic2F2ZUZpbGVzTTNVIjsNCiAgICAgICAgICB4VGVWZShkYXRhKQ0KICAgICAgICAgIHJldHVybg0KICAgICAgfQ0KICAgICAgLyoNCiAgICAgIHN3aXRjaChtZW51VHlwZSkgew0KICAgICAgICBjYXNlICJzaW5nbGVJbnB1dCI6DQogICAgICAgICAgZGF0YVtpbnB1dHNbaV0ubmFtZV0gPSBpbnB1dHNbaV0udmFsdWU7IGJyZWFrOw0KICAgICAgICBjYXNlICJpbnB1dEFycmF5IjogDQogICAgICAgICAgdmFsdWVBcnIucHVzaChpbnB1dHNbaV0udmFsdWUpOw0KICAgICAgICAgIGRhdGFbaW5wdXRzW2ldLm5hbWVdID0gdmFsdWVBcnI7IGJyZWFrDQoNCiAgICAgIH0NCiAgICAgICovDQogICAgfSBlbHNlIHsNCiAgICAgIGlucHV0c1tpXS5zdHlsZS5ib3JkZXJCb3R0b21Db2xvciA9ICJyZWQiOw0KICAgICAgcmV0dXJuOw0KICAgIH0NCiAgfQ0KDQoNCiAgZm9yICh2YXIgaSA9IDA7IGkgPCBzZWxlY3RzLmxlbmd0aDsgaSsrKSB7DQogICAgdmFyIHZhbHVlID0gc2VsZWN0c1tpXS5vcHRpb25zW3NlbGVjdHNbaV0uc2VsZWN0ZWRJbmRleF0udmFsdWU7DQogICAgaWYgKGlzTmFOKHZhbHVlKSA9PSBmYWxzZSkgew0KICAgICAgdmFsdWUgPSBwYXJzZUludCh2YWx1ZSk7DQogICAgICBkYXRhW3NlbGVjdHNbaV0ubmFtZV0gPSB2YWx1ZTsNCiAgICAgIG5ld0RhdGEgPSB0cnVlOw0KICAgICAgYnJlYWs7DQogICAgfQ0KICAgIGRhdGFbc2VsZWN0c1tpXS5uYW1lXSA9IHZhbHVlOw0KICAgIG5ld0RhdGEgPSB0cnVlOw0KICB9DQoNCg0KICAvL2NvbnNvbGUubG9nKGRhdGEsIG5ld0RhdGEpOw0KICBpZiAobmV3RGF0YSA9PSB0cnVlKSB7DQogICAgY29uZmlnID0gZGF0YQ0KICAgIGRhdGFbImNtZCJdID0gInNhdmVDb25maWciOw0KICAgIHhUZVZlKGRhdGEpOw0KICB9DQp9DQoNCmZ1bmN0aW9uIHhUZVZlKGRhdGEpIHsNCg0KICBpZiAod2ViU29ja2V0cyA9PSBmYWxzZSkgew0KICAgIGFsZXJ0KCJZb3VyIGJyb3dzZXIgZG9lcyBub3Qgc3VwcG9ydCBXZWJTb2NrZXRzIik7DQogICAgcmV0dXJuOw0KICB9DQoNCiAgaWYgKGFjdGl2ZVdpemFyZCA9PSAibTN1IiB8fCBhY3RpdmVXaXphcmQgPT0gImVwZ1NvdXJjZSIpIHsNCiAgICBzaG93TG9hZGluZ1NjcmVlbih0cnVlKTsNCiAgfQ0KDQogIHZhciBwcm90b2NvbFdTDQogIHN3aXRjaCh3aW5kb3cubG9jYXRpb24ucHJvdG9jb2wpIHsNCiAgICBjYXNlICJodHRwOiI6ICAgcHJvdG9jb2xXUyA9ICJ3czovLyI7IGJyZWFrOw0KICAgIGNhc2UgImh0dHBzOiI6ICBwcm90b2NvbFdTID0gIndzczovLyI7IGJyZWFrOw0KICB9DQoNCiAgdmFyIHdzID0gbmV3IFdlYlNvY2tldChwcm90b2NvbFdTICsgd2luZG93LmxvY2F0aW9uLmhvc3RuYW1lICsgIjoiICsgd2luZG93LmxvY2F0aW9uLnBvcnQgKyAiL2RhdGEvIiArICI/VG9rZW49IiArIGdldENvb2tpZSgiVG9rZW4iKSk7DQogIA0KICB3cy5vbm9wZW4gPSBmdW5jdGlvbigpIHsNCiAgICB3cy5zZW5kKEpTT04uc3RyaW5naWZ5KGRhdGEpKTsNCiAgfQ0KDQogIHdzLm9ubWVzc2FnZSA9IGZ1bmN0aW9uIChlKSB7DQogICAgDQogICAgdmFyIHJlc3BvbnNlID0gSlNPTi5wYXJzZShlLmRhdGEpOw0KICAgIA0KICAgIGlmIChyZXNwb25zZS5oYXNPd25Qcm9wZXJ0eSgiY2xpZW50SW5mbyIpKSB7DQogICAgICBjcmVhdGVDbGludEluZm8ocmVzcG9uc2VbImNsaWVudEluZm8iXSk7DQogICAgfQ0KDQogICAgaWYgKHJlc3BvbnNlLmhhc093blByb3BlcnR5KCJzdGF0dXMiKSkgew0KICAgICAgaWYgKHJlc3BvbnNlWyJzdGF0dXMiXSA9PSBmYWxzZSkgew0KICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiaGVhZGxpbmUiKS5zdHlsZS5ib3JkZXJDb2xvciA9ICJyZWQiOw0KICAgICAgICBzaG93RXJyKHJlc3BvbnNlWyJlcnIiXSk7DQogICAgICAgIHNob3dMb2FkaW5nU2NyZWVuKGZhbHNlKQ0KICAgICAgICByZXR1cm4NCiAgICAgIH0gZWxzZSB7DQogICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJlcnIiKS5pbm5lckhUTUwgPSAiIjsNCiAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImhlYWRsaW5lIikuc3R5bGUuYm9yZGVyQ29sb3IgPSAibGF3bmdyZWVuIjsNCiAgICAgIH0NCg0KICAgICAgZHZySVAgPSByZXNwb25zZVsiRFZSIl0NCiAgICAgIHN3aXRjaChyZXNwb25zZVsiY29uZmlndXJhdGlvbldpemFyZCJdKSB7DQogICAgICAgIGNhc2UgdHJ1ZTogDQogICAgICAgICAgaWYgKGFjdGl2ZVdpemFyZCA9PSB1bmRlZmluZWQpIHsNCiAgICAgICAgICAgIGFjdGl2ZVdpemFyZCA9IHdpemFyZFswXQ0KICAgICAgICAgIH0NCiAgICAgICAgICB2YXIgbiA9IHdpemFyZC5pbmRleE9mKGFjdGl2ZVdpemFyZCk7DQogICAgICAgICAgbisrOw0KICAgICAgICAgIGFjdGl2ZVdpemFyZCA9IHdpemFyZFtuXQ0KDQogICAgICAgICAgaWYgKGFjdGl2ZVdpemFyZCA9PSB1bmRlZmluZWQpIHsNCiAgICAgICAgICAgIGRhdGFbImNtZCJdID0gIndpemFyZENvbXBsZXRlZCI7DQogICAgICAgICAgICB4VGVWZShkYXRhKQ0KICAgICAgICAgIH0gZWxzZSB7DQogICAgICAgICAgICAvL2NvbnNvbGUubG9nKGFjdGl2ZVdpemFyZCk7DQogICAgICAgICAgICBjcmVhdGVDb25maWd1cmF0aW9uKGFjdGl2ZVdpemFyZCk7IA0KICAgICAgICAgIH0NCiAgICAgICAgICANCiAgICAgICAgYnJlYWs7DQogICAgICB9DQoNCiAgICAgIHN3aXRjaChyZXNwb25zZVsicmVsb2FkIl0pIHsNCiAgICAgICAgDQogICAgICAgIA0KICAgICAgICBjYXNlIHRydWU6IA0KICAgIA0KICAgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKXsgDQogICAgICAgICAgICBsb2NhdGlvbi5yZWxvYWQoKTsNCiAgICAgICAgICB9LCAxMDApOw0KICAgICAgICAgIA0KICAgICAgICAgIC8vbG9jYXRpb24ucmVsb2FkKCk7DQogICAgICAgICAgDQogICAgICAgICAgYnJlYWs7DQogICAgICAgIA0KICAgICAgfQ0KDQogICAgICANCiAgICB9DQoNCiAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7IHNob3dMb2FkaW5nU2NyZWVuKGZhbHNlKTsgfSwgMzAwKTsNCiAgfQ0KICANCn0NCg0KZnVuY3Rpb24gc2hvd0VycihlbG0pIHsNCiAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImVyciIpLmlubmVySFRNTCA9IGVsbTsNCn0=" - webUI["html/js/settings_ts.js"] = "Y2xhc3MgU2V0dGluZ3NDYXRlZ29yeSB7DQogICAgY29uc3RydWN0b3IoKSB7DQogICAgICAgIHRoaXMuRG9jdW1lbnRJRCA9ICJjb250ZW50X3NldHRpbmdzIjsNCiAgICB9DQogICAgY3JlYXRlQ2F0ZWdvcnlIZWFkbGluZSh2YWx1ZSkgew0KICAgICAgICB2YXIgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIkg0Iik7DQogICAgICAgIGVsZW1lbnQuaW5uZXJIVE1MID0gdmFsdWU7DQogICAgICAgIHJldHVybiBlbGVtZW50Ow0KICAgIH0NCiAgICBjcmVhdGVIUigpIHsNCiAgICAgICAgdmFyIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJIUiIpOw0KICAgICAgICByZXR1cm4gZWxlbWVudDsNCiAgICB9DQogICAgY3JlYXRlU2V0dGluZ3Moc2V0dGluZ3NLZXkpIHsNCiAgICAgICAgdmFyIHNldHRpbmcgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJUUiIpOw0KICAgICAgICB2YXIgY29udGVudCA9IG5ldyBQb3B1cENvbnRlbnQoKTsNCiAgICAgICAgdmFyIGRhdGEgPSBTRVJWRVJbInNldHRpbmdzIl1bc2V0dGluZ3NLZXldOw0KICAgICAgICBzd2l0Y2ggKHNldHRpbmdzS2V5KSB7DQogICAgICAgICAgICAvLyBUZXh0ZWluZ2FiZW4NCiAgICAgICAgICAgIGNhc2UgInVwZGF0ZSI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy51cGRhdGUudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCAidXBkYXRlIiwgZGF0YS50b1N0cmluZygpKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnNldHRpbmdzLnVwZGF0ZS5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiYmFja3VwLnBhdGgiOg0KICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MuYmFja3VwUGF0aC50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsICJiYWNrdXAucGF0aCIsIGRhdGEpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3suc2V0dGluZ3MuYmFja3VwUGF0aC5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAidGVtcC5wYXRoIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLnRlbXBQYXRoLnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgInRlbXAucGF0aCIsIGRhdGEpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3suc2V0dGluZ3MudG1wUGF0aC5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAidXNlci5hZ2VudCI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy51c2VyQWdlbnQudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCAidXNlci5hZ2VudCIsIGRhdGEpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3suc2V0dGluZ3MudXNlckFnZW50LnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJidWZmZXIudGltZW91dCI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5idWZmZXJUaW1lb3V0LnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgImJ1ZmZlci50aW1lb3V0IiwgZGF0YSk7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5zZXR0aW5ncy5idWZmZXJUaW1lb3V0LnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJmZm1wZWcucGF0aCI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5mZm1wZWdQYXRoLnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgImZmbXBlZy5wYXRoIiwgZGF0YSk7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5zZXR0aW5ncy5mZm1wZWdQYXRoLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJmZm1wZWcub3B0aW9ucyI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5mZm1wZWdPcHRpb25zLnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgImZmbXBlZy5vcHRpb25zIiwgZGF0YSk7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5zZXR0aW5ncy5mZm1wZWdPcHRpb25zLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ2bGMucGF0aCI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy52bGNQYXRoLnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgInZsYy5wYXRoIiwgZGF0YSk7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5zZXR0aW5ncy52bGNQYXRoLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ2bGMub3B0aW9ucyI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy52bGNPcHRpb25zLnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgInZsYy5vcHRpb25zIiwgZGF0YSk7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5zZXR0aW5ncy52bGNPcHRpb25zLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAvLyBDaGVja2JveGVuDQogICAgICAgICAgICBjYXNlICJhdXRoZW50aWNhdGlvbi53ZWIiOg0KICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MuYXV0aGVudGljYXRpb25XRUIudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goc2V0dGluZ3NLZXkpOw0KICAgICAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImF1dGhlbnRpY2F0aW9uLnBtcyI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5hdXRoZW50aWNhdGlvblBNUy50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChzZXR0aW5nc0tleSk7DQogICAgICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGE7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiYXV0aGVudGljYXRpb24ubTN1IjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmF1dGhlbnRpY2F0aW9uTTNVLnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KHNldHRpbmdzS2V5KTsNCiAgICAgICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJhdXRoZW50aWNhdGlvbi54bWwiOg0KICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MuYXV0aGVudGljYXRpb25YTUwudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goc2V0dGluZ3NLZXkpOw0KICAgICAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImF1dGhlbnRpY2F0aW9uLmFwaSI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5hdXRoZW50aWNhdGlvbkFQSS50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChzZXR0aW5nc0tleSk7DQogICAgICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGE7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiZmlsZXMudXBkYXRlIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmZpbGVzVXBkYXRlLnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KHNldHRpbmdzS2V5KTsNCiAgICAgICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJjYWNoZS5pbWFnZXMiOg0KICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MuY2FjaGVJbWFnZXMudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goc2V0dGluZ3NLZXkpOw0KICAgICAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInhlcGcucmVwbGFjZS5taXNzaW5nLmltYWdlcyI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5yZXBsYWNlRW1wdHlJbWFnZXMudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goc2V0dGluZ3NLZXkpOw0KICAgICAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInh0ZXZlQXV0b1VwZGF0ZSI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy54dGV2ZUF1dG9VcGRhdGUudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goc2V0dGluZ3NLZXkpOw0KICAgICAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImFwaSI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5hcGkudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goc2V0dGluZ3NLZXkpOw0KICAgICAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIC8vIFNlbGVjdA0KICAgICAgICAgICAgY2FzZSAidHVuZXIiOg0KICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MudHVuZXIudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciB0ZXh0ID0gbmV3IEFycmF5KCk7DQogICAgICAgICAgICAgICAgdmFyIHZhbHVlcyA9IG5ldyBBcnJheSgpOw0KICAgICAgICAgICAgICAgIGZvciAodmFyIGkgPSAxOyBpIDw9IDEwMDsgaSsrKSB7DQogICAgICAgICAgICAgICAgICAgIHRleHQucHVzaChpKTsNCiAgICAgICAgICAgICAgICAgICAgdmFsdWVzLnB1c2goaSk7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIHZhciBzZWxlY3QgPSBjb250ZW50LmNyZWF0ZVNlbGVjdCh0ZXh0LCB2YWx1ZXMsIGRhdGEsIHNldHRpbmdzS2V5KTsNCiAgICAgICAgICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQoc2VsZWN0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImVwZ1NvdXJjZSI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5lcGdTb3VyY2UudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciB0ZXh0ID0gWyJQTVMiLCAiWEVQRyJdOw0KICAgICAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBbIlBNUyIsICJYRVBHIl07DQogICAgICAgICAgICAgICAgdmFyIHNlbGVjdCA9IGNvbnRlbnQuY3JlYXRlU2VsZWN0KHRleHQsIHZhbHVlcywgZGF0YSwgc2V0dGluZ3NLZXkpOw0KICAgICAgICAgICAgICAgIHNlbGVjdC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChzZWxlY3QpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiYmFja3VwLmtlZXAiOg0KICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MuYmFja3VwS2VlcC50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIHRleHQgPSBbIjUiLCAiMTAiLCAiMjAiLCAiMzAiLCAiNDAiLCAiNTAiXTsNCiAgICAgICAgICAgICAgICB2YXIgdmFsdWVzID0gWyI1IiwgIjEwIiwgIjIwIiwgIjMwIiwgIjQwIiwgIjUwIl07DQogICAgICAgICAgICAgICAgdmFyIHNlbGVjdCA9IGNvbnRlbnQuY3JlYXRlU2VsZWN0KHRleHQsIHZhbHVlcywgZGF0YSwgc2V0dGluZ3NLZXkpOw0KICAgICAgICAgICAgICAgIHNlbGVjdC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChzZWxlY3QpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiYnVmZmVyLnNpemUua2IiOg0KICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MuYnVmZmVyU2l6ZS50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIHRleHQgPSBbIjAuNSBNQiIsICIxIE1CIiwgIjIgTUIiLCAiMyBNQiIsICI0IE1CIiwgIjUgTUIiLCAiNiBNQiIsICI3IE1CIiwgIjggTUIiXTsNCiAgICAgICAgICAgICAgICB2YXIgdmFsdWVzID0gWyI1MTIiLCAiMTAyNCIsICIyMDQ4IiwgIjMwNzIiLCAiNDA5NiIsICI1MTIwIiwgIjYxNDQiLCAiNzE2OCIsICI4MTkyIl07DQogICAgICAgICAgICAgICAgdmFyIHNlbGVjdCA9IGNvbnRlbnQuY3JlYXRlU2VsZWN0KHRleHQsIHZhbHVlcywgZGF0YSwgc2V0dGluZ3NLZXkpOw0KICAgICAgICAgICAgICAgIHNlbGVjdC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChzZWxlY3QpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiYnVmZmVyIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLnN0cmVhbUJ1ZmZlcmluZy50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIHRleHQgPSBbInt7LnNldHRpbmdzLnN0cmVhbUJ1ZmZlcmluZy5pbmZvX2ZhbHNlfX0iLCAieFRlVmU6ICh7ey5zZXR0aW5ncy5zdHJlYW1CdWZmZXJpbmcuaW5mb194dGV2ZX19KSIsICJGRm1wZWc6ICh7ey5zZXR0aW5ncy5zdHJlYW1CdWZmZXJpbmcuaW5mb19mZm1wZWd9fSkiLCAiVkxDOiAoe3suc2V0dGluZ3Muc3RyZWFtQnVmZmVyaW5nLmluZm9fdmxjfX0pIl07DQogICAgICAgICAgICAgICAgdmFyIHZhbHVlcyA9IFsiLSIsICJ4dGV2ZSIsICJmZm1wZWciLCAidmxjIl07DQogICAgICAgICAgICAgICAgdmFyIHNlbGVjdCA9IGNvbnRlbnQuY3JlYXRlU2VsZWN0KHRleHQsIHZhbHVlcywgZGF0YSwgc2V0dGluZ3NLZXkpOw0KICAgICAgICAgICAgICAgIHNlbGVjdC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChzZWxlY3QpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAidWRweHkiOg0KICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MudWRweHkudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCAidWRweHkiLCBkYXRhKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnNldHRpbmdzLnVkcHh5LnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIH0NCiAgICAgICAgcmV0dXJuIHNldHRpbmc7DQogICAgfQ0KICAgIGNyZWF0ZURlc2NyaXB0aW9uKHNldHRpbmdzS2V5KSB7DQogICAgICAgIHZhciBkZXNjcmlwdGlvbiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlRSIik7DQogICAgICAgIHZhciB0ZXh0Ow0KICAgICAgICBzd2l0Y2ggKHNldHRpbmdzS2V5KSB7DQogICAgICAgICAgICBjYXNlICJhdXRoZW50aWNhdGlvbi53ZWIiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MuYXV0aGVudGljYXRpb25XRUIuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJhdXRoZW50aWNhdGlvbi5tM3UiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MuYXV0aGVudGljYXRpb25NM1UuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJhdXRoZW50aWNhdGlvbi5wbXMiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MuYXV0aGVudGljYXRpb25QTVMuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJhdXRoZW50aWNhdGlvbi54bWwiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MuYXV0aGVudGljYXRpb25YTUwuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJhdXRoZW50aWNhdGlvbi5hcGkiOg0KICAgICAgICAgICAgICAgIGlmIChTRVJWRVJbInNldHRpbmdzIl1bImF1dGhlbnRpY2F0aW9uLndlYiJdID09IHRydWUpIHsNCiAgICAgICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5hdXRoZW50aWNhdGlvbkFQSS5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ4dGV2ZUF1dG9VcGRhdGUiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MueHRldmVBdXRvVXBkYXRlLmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiYmFja3VwLmtlZXAiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MuYmFja3VwS2VlcC5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImJhY2t1cC5wYXRoIjoNCiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLmJhY2t1cFBhdGguZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ0ZW1wLnBhdGgiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MudGVtcFBhdGguZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJidWZmZXIiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3Muc3RyZWFtQnVmZmVyaW5nLmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiYnVmZmVyLnNpemUua2IiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MuYnVmZmVyU2l6ZS5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImJ1ZmZlci50aW1lb3V0IjoNCiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLmJ1ZmZlclRpbWVvdXQuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ1c2VyLmFnZW50IjoNCiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLnVzZXJBZ2VudC5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImZmbXBlZy5wYXRoIjoNCiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLmZmbXBlZ1BhdGguZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJmZm1wZWcub3B0aW9ucyI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5mZm1wZWdPcHRpb25zLmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAidmxjLnBhdGgiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MudmxjUGF0aC5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInZsYy5vcHRpb25zIjoNCiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLnZsY09wdGlvbnMuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJlcGdTb3VyY2UiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MuZXBnU291cmNlLmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAidHVuZXIiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MudHVuZXIuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ1cGRhdGUiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MudXBkYXRlLmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiYXBpIjoNCiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLmFwaS5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImZpbGVzLnVwZGF0ZSI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5maWxlc1VwZGF0ZS5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImNhY2hlLmltYWdlcyI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5jYWNoZUltYWdlcy5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInhlcGcucmVwbGFjZS5taXNzaW5nLmltYWdlcyI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5yZXBsYWNlRW1wdHlJbWFnZXMuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ1ZHB4eSI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy51ZHB4eS5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICAgICAgdGV4dCA9ICIiOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICB9DQogICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gIiI7DQogICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgdmFyIHByZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlBSRSIpOw0KICAgICAgICBwcmUuaW5uZXJIVE1MID0gdGV4dDsNCiAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChwcmUpOw0KICAgICAgICBkZXNjcmlwdGlvbi5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICBkZXNjcmlwdGlvbi5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgcmV0dXJuIGRlc2NyaXB0aW9uOw0KICAgIH0NCn0NCmNsYXNzIFNldHRpbmdzQ2F0ZWdvcnlJdGVtIGV4dGVuZHMgU2V0dGluZ3NDYXRlZ29yeSB7DQogICAgY29uc3RydWN0b3IoaGVhZGxpbmUsIHNldHRpbmdzS2V5cykgew0KICAgICAgICBzdXBlcigpOw0KICAgICAgICB0aGlzLmhlYWRsaW5lID0gaGVhZGxpbmU7DQogICAgICAgIHRoaXMuc2V0dGluZ3NLZXlzID0gc2V0dGluZ3NLZXlzOw0KICAgIH0NCiAgICBjcmVhdGVDYXRlZ29yeSgpIHsNCiAgICAgICAgdmFyIGhlYWRsaW5lID0gdGhpcy5jcmVhdGVDYXRlZ29yeUhlYWRsaW5lKHRoaXMuaGVhZGxpbmUpOw0KICAgICAgICB2YXIgc2V0dGluZ3NLZXlzID0gdGhpcy5zZXR0aW5nc0tleXM7DQogICAgICAgIHZhciBkb2MgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCh0aGlzLkRvY3VtZW50SUQpOw0KICAgICAgICBkb2MuYXBwZW5kQ2hpbGQoaGVhZGxpbmUpOw0KICAgICAgICAvLyBUYWJlbGxlIGbDvHIgZGllIEthdGVnb3JpZSBlcnN0ZWxsZW4NCiAgICAgICAgdmFyIHRhYmxlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEFCTEUiKTsNCiAgICAgICAgdmFyIGtleXMgPSBzZXR0aW5nc0tleXMuc3BsaXQoIiwiKTsNCiAgICAgICAga2V5cy5mb3JFYWNoKHNldHRpbmdzS2V5ID0+IHsNCiAgICAgICAgICAgIHN3aXRjaCAoc2V0dGluZ3NLZXkpIHsNCiAgICAgICAgICAgICAgICBjYXNlICJhdXRoZW50aWNhdGlvbi5wbXMiOg0KICAgICAgICAgICAgICAgIGNhc2UgImF1dGhlbnRpY2F0aW9uLm0zdSI6DQogICAgICAgICAgICAgICAgY2FzZSAiYXV0aGVudGljYXRpb24ueG1sIjoNCiAgICAgICAgICAgICAgICBjYXNlICJhdXRoZW50aWNhdGlvbi5hcGkiOg0KICAgICAgICAgICAgICAgICAgICBpZiAoU0VSVkVSWyJzZXR0aW5ncyJdWyJhdXRoZW50aWNhdGlvbi53ZWIiXSA9PSBmYWxzZSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBkZWZhdWx0Og0KICAgICAgICAgICAgICAgICAgICB2YXIgaXRlbSA9IHRoaXMuY3JlYXRlU2V0dGluZ3Moc2V0dGluZ3NLZXkpOw0KICAgICAgICAgICAgICAgICAgICB2YXIgZGVzY3JpcHRpb24gPSB0aGlzLmNyZWF0ZURlc2NyaXB0aW9uKHNldHRpbmdzS2V5KTsNCiAgICAgICAgICAgICAgICAgICAgdGFibGUuYXBwZW5kQ2hpbGQoaXRlbSk7DQogICAgICAgICAgICAgICAgICAgIHRhYmxlLmFwcGVuZENoaWxkKGRlc2NyaXB0aW9uKTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICB9DQogICAgICAgIH0pOw0KICAgICAgICBkb2MuYXBwZW5kQ2hpbGQodGFibGUpOw0KICAgICAgICBkb2MuYXBwZW5kQ2hpbGQodGhpcy5jcmVhdGVIUigpKTsNCiAgICB9DQp9DQpmdW5jdGlvbiBzaG93U2V0dGluZ3MoKSB7DQogICAgY29uc29sZS5sb2coIlNFVFRJTkdTIik7DQogICAgZm9yIChsZXQgaSA9IDA7IGkgPCBzZXR0aW5nc0NhdGVnb3J5Lmxlbmd0aDsgaSsrKSB7DQogICAgICAgIHNldHRpbmdzQ2F0ZWdvcnlbaV0uY3JlYXRlQ2F0ZWdvcnkoKTsNCiAgICB9DQp9DQpmdW5jdGlvbiBzYXZlU2V0dGluZ3MoKSB7DQogICAgY29uc29sZS5sb2coIlNhdmUgU2V0dGluZ3MiKTsNCiAgICB2YXIgY21kID0gInNhdmVTZXR0aW5ncyI7DQogICAgdmFyIGRpdiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb250ZW50X3NldHRpbmdzIik7DQogICAgdmFyIHNldHRpbmdzID0gZGl2LmdldEVsZW1lbnRzQnlDbGFzc05hbWUoImNoYW5nZWQiKTsNCiAgICB2YXIgbmV3U2V0dGluZ3MgPSBuZXcgT2JqZWN0KCk7DQogICAgZm9yIChsZXQgaSA9IDA7IGkgPCBzZXR0aW5ncy5sZW5ndGg7IGkrKykgew0KICAgICAgICB2YXIgbmFtZTsNCiAgICAgICAgdmFyIHZhbHVlOw0KICAgICAgICBzd2l0Y2ggKHNldHRpbmdzW2ldLnRhZ05hbWUpIHsNCiAgICAgICAgICAgIGNhc2UgIklOUFVUIjoNCiAgICAgICAgICAgICAgICBzd2l0Y2ggKHNldHRpbmdzW2ldLnR5cGUpIHsNCiAgICAgICAgICAgICAgICAgICAgY2FzZSAiY2hlY2tib3giOg0KICAgICAgICAgICAgICAgICAgICAgICAgbmFtZSA9IHNldHRpbmdzW2ldLm5hbWU7DQogICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IHNldHRpbmdzW2ldLmNoZWNrZWQ7DQogICAgICAgICAgICAgICAgICAgICAgICBuZXdTZXR0aW5nc1tuYW1lXSA9IHZhbHVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgICAgIGNhc2UgInRleHQiOg0KICAgICAgICAgICAgICAgICAgICAgICAgbmFtZSA9IHNldHRpbmdzW2ldLm5hbWU7DQogICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IHNldHRpbmdzW2ldLnZhbHVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgc3dpdGNoIChuYW1lKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAidXBkYXRlIjoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSB2YWx1ZS5zcGxpdCgiLCIpOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IHZhbHVlLmZpbHRlcihmdW5jdGlvbiAoZSkgeyByZXR1cm4gZTsgfSk7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgImJ1ZmZlci50aW1lb3V0IjoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSBwYXJzZUZsb2F0KHZhbHVlKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgIG5ld1NldHRpbmdzW25hbWVdID0gdmFsdWU7DQogICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJTRUxFQ1QiOg0KICAgICAgICAgICAgICAgIG5hbWUgPSBzZXR0aW5nc1tpXS5uYW1lOw0KICAgICAgICAgICAgICAgIHZhbHVlID0gc2V0dGluZ3NbaV0udmFsdWU7DQogICAgICAgICAgICAgICAgLy8gV2VubiBkZXIgV2VydCBlaW5lIFphaGwgaXN0LCB3aXJkIGRpZXNlciBhbHMgWmFobCBnZXNwZWljaGVydA0KICAgICAgICAgICAgICAgIGlmIChpc05hTih2YWx1ZSkpIHsNCiAgICAgICAgICAgICAgICAgICAgbmV3U2V0dGluZ3NbbmFtZV0gPSB2YWx1ZTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgZWxzZSB7DQogICAgICAgICAgICAgICAgICAgIG5ld1NldHRpbmdzW25hbWVdID0gcGFyc2VJbnQodmFsdWUpOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgfQ0KICAgIH0NCiAgICB2YXIgZGF0YSA9IG5ldyBPYmplY3QoKTsNCiAgICBkYXRhWyJzZXR0aW5ncyJdID0gbmV3U2V0dGluZ3M7DQogICAgdmFyIHNlcnZlciA9IG5ldyBTZXJ2ZXIoY21kKTsNCiAgICBzZXJ2ZXIucmVxdWVzdChkYXRhKTsNCn0NCg==" - webUI["html/img/filter.png"] = "iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAAAXNSR0IArs4c6QAAAAlwSFlzAAAsSwAALEsBpT2WqQAABCRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IlhNUCBDb3JlIDUuNC4wIj4KICAgPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIgogICAgICAgICAgICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgICAgICAgICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyI+CiAgICAgICAgIDx0aWZmOlJlc29sdXRpb25Vbml0PjI8L3RpZmY6UmVzb2x1dGlvblVuaXQ+CiAgICAgICAgIDx0aWZmOkNvbXByZXNzaW9uPjU8L3RpZmY6Q29tcHJlc3Npb24+CiAgICAgICAgIDx0aWZmOlhSZXNvbHV0aW9uPjI4ODwvdGlmZjpYUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6T3JpZW50YXRpb24+MTwvdGlmZjpPcmllbnRhdGlvbj4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+Mjg4PC90aWZmOllSZXNvbHV0aW9uPgogICAgICAgICA8ZXhpZjpQaXhlbFhEaW1lbnNpb24+NTA8L2V4aWY6UGl4ZWxYRGltZW5zaW9uPgogICAgICAgICA8ZXhpZjpDb2xvclNwYWNlPjE8L2V4aWY6Q29sb3JTcGFjZT4KICAgICAgICAgPGV4aWY6UGl4ZWxZRGltZW5zaW9uPjUwPC9leGlmOlBpeGVsWURpbWVuc2lvbj4KICAgICAgICAgPGRjOnN1YmplY3Q+CiAgICAgICAgICAgIDxyZGY6QmFnLz4KICAgICAgICAgPC9kYzpzdWJqZWN0PgogICAgICAgICA8eG1wOk1vZGlmeURhdGU+MjAxOC0wNy0yOFQxOTowNzo2OTwveG1wOk1vZGlmeURhdGU+CiAgICAgICAgIDx4bXA6Q3JlYXRvclRvb2w+UGl4ZWxtYXRvciAzLjM8L3htcDpDcmVhdG9yVG9vbD4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgIDwvcmRmOlJERj4KPC94OnhtcG1ldGE+Cs038OQAAAOISURBVGgF5ZpLSBVRGMfvvfmqCKKiKCqKtE3SQ8haJJm1ctPCZYHrFhXtohcUBLVsU1BRBJKLXpsSKs1aCL1oUUhvMgIloodZKmLZ72+OzNVx7jzOXGfqg/89Z875zv/7f35n7px7vanUP2JptzyGhoYKmK8GW0EZmA/mgW7wHrwDN0BTOp0epPVtxBBnLdgIVoE5YBboBR2gDTTA/5DWn0FeDPaBz8CLdeF0EBR5jYRvKbgABoAXa8Opwit/CudK8NoLs4PPM8ZyBsNnB/jpsD7X0C8cjgDXnaQkqkEPCGMSuGWivxxzx8OQj6xtpHWuPhPloHfEMWzTD0HN2GQY2xuW2Lb+/Fh+VaIQPLE5meh+gmSxFYz+BjBogtjGscfiH26Z2GmbNNltVQAIpwDdP6ZNO2iRYqTpZGhfgWUaiMC2w1kCzkbALcqLvDVvUyK6MW9HFES0b8BvsFwXEZi4F+iBtykCcjtlqf0igr52VJ1eqiIgzzdlrRIZfWfJd3SD8ZbqHvkB4XSDpJNB9V0VcX/cT4Ys/zEzSuSj/3WxW9GpRD7ETpZ/QcOJ6LyfdHugitxNehbob9G7lo4PXWBmQhPqQ/fsDOeUfjqNCU1Csi+TQ5+2luzc3yaRr6elevQZwhZr4bomYam0U41yabYqov5hvSTMjlp6RyuiAarSTLPZmox5246+lVREx/isiuh6NxhUJwF2yEpCWu1bK8WEsjyRgCSa0XrVrjNra2mC7TWD5ilYAuJoA4jSlnppF5dVEU3g0ENTD4b3nsZiZsfGJuGqj8qY+CINGqP2GLZCJ+HjtpblxAJ9k3cPrLfGJrnVUaSCarxw0jFua1lOLNBerANx+byya6IkLM2uLZWpAl6/Mcc1EjvjKtLrJNLqI5HnjfQ+bsVeteb0g2y/t7hGvd7CNjenOL8OkJ40KtOdTF+Cl/nV6Mkf4gxocI9vZPYLLKs9iQrqRIACcM2IXGeSboYrg+rztY5ARaDJWUeo0W+sXudLTFhnApaAW6FkZy/+yuXasLoCrSfwVHAnW0+gK93YawKJMLUIAdNAKwhqnSxcYUpPKB6EBE2mg7VR///EX24jybTQerXnOC70FyVP3gjTPXPTQyaP8NFPNeJrCNTPP667JKOq6VNo/A2hes5ccUjmEmPmDoD5+FMgWCcA+3FG57QJP//kQ1PgGBIOToEDgUn+t4V/AJeGknwARIKLAAAAAElFTkSuQmCC" - webUI["html/img/logo_w_600x200.png"] = "iVBORw0KGgoAAAANSUhEUgAAAlgAAADICAYAAAA0n5+2AAAAAXNSR0IArs4c6QAAAAlwSFlzAAAuIwAALiMBeKU/dgAABCZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IlhNUCBDb3JlIDUuNC4wIj4KICAgPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIgogICAgICAgICAgICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgICAgICAgICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyI+CiAgICAgICAgIDx0aWZmOlJlc29sdXRpb25Vbml0PjI8L3RpZmY6UmVzb2x1dGlvblVuaXQ+CiAgICAgICAgIDx0aWZmOkNvbXByZXNzaW9uPjU8L3RpZmY6Q29tcHJlc3Npb24+CiAgICAgICAgIDx0aWZmOlhSZXNvbHV0aW9uPjMwMDwvdGlmZjpYUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6T3JpZW50YXRpb24+MTwvdGlmZjpPcmllbnRhdGlvbj4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+MzAwPC90aWZmOllSZXNvbHV0aW9uPgogICAgICAgICA8ZXhpZjpQaXhlbFhEaW1lbnNpb24+NjAwPC9leGlmOlBpeGVsWERpbWVuc2lvbj4KICAgICAgICAgPGV4aWY6Q29sb3JTcGFjZT4xPC9leGlmOkNvbG9yU3BhY2U+CiAgICAgICAgIDxleGlmOlBpeGVsWURpbWVuc2lvbj4yMDA8L2V4aWY6UGl4ZWxZRGltZW5zaW9uPgogICAg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" - webUI["html/img/mapping.png"] = "iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAAAXNSR0IArs4c6QAAAAlwSFlzAAAsSwAALEsBpT2WqQAABCRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IlhNUCBDb3JlIDUuNC4wIj4KICAgPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIgogICAgICAgICAgICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgICAgICAgICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyI+CiAgICAgICAgIDx0aWZmOlJlc29sdXRpb25Vbml0PjI8L3RpZmY6UmVzb2x1dGlvblVuaXQ+CiAgICAgICAgIDx0aWZmOkNvbXByZXNzaW9uPjU8L3RpZmY6Q29tcHJlc3Npb24+CiAgICAgICAgIDx0aWZmOlhSZXNvbHV0aW9uPjI4ODwvdGlmZjpYUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6T3JpZW50YXRpb24+MTwvdGlmZjpPcmllbnRhdGlvbj4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+Mjg4PC90aWZmOllSZXNvbHV0aW9uPgogICAgICAgICA8ZXhpZjpQaXhlbFhEaW1lbnNpb24+NTA8L2V4aWY6UGl4ZWxYRGltZW5zaW9uPgogICAgICAgICA8ZXhpZjpDb2xvclNwYWNlPjE8L2V4aWY6Q29sb3JTcGFjZT4KICAgICAgICAgPGV4aWY6UGl4ZWxZRGltZW5zaW9uPjUwPC9leGlmOlBpeGVsWURpbWVuc2lvbj4KICAgICAgICAgPGRjOnN1YmplY3Q+CiAgICAgICAgICAgIDxyZGY6QmFnLz4KICAgICAgICAgPC9kYzpzdWJqZWN0PgogICAgICAgICA8eG1wOk1vZGlmeURhdGU+MjAxOC0wOC0wMlQxMjowODo5NzwveG1wOk1vZGlmeURhdGU+CiAgICAgICAgIDx4bXA6Q3JlYXRvclRvb2w+UGl4ZWxtYXRvciAzLjM8L3htcDpDcmVhdG9yVG9vbD4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgIDwvcmRmOlJERj4KPC94OnhtcG1ldGE+CpRxQsEAAAJLSURBVGgF7VoxTgMxEMwBHWlAaeABVCEtBcoD+EBewCdCyQsQtLyAPCBvCBSRIBUPCF1ogqBJjlkrezGr6HTrO98lhy1Z9trr2VmvnbMNjUadUhzHLeQB8hw5LS3QOUbubvIf7X3kKXIZibgS51bCZdWgMT6D8nECgArkngagQN0B8dhbkblalVmLIyheCGUthhjuLBq77MihA0xTjHHBEBBOorHLjjghbNOg4Mg2RYO4hIiEiHiaAV5aSwf8hRgjZdHtTTTc2ZFXpZkY+hMx5k3IZYlr7jgudJHp2JElLaF0K1mirYn8nAWgQB3ibM59ERNCA52d6Nghv9isQiUtn0kURe92I9eBcYA6YZxym8dyDuwRuMw82gjQYQbsPdLDdNCROO0US3uEfp3usTZpjf5J2CNtNFwjl7FHvmBnCB5PCQkQoJudJtGvE23sJEFuI39rQArS7dskXK6nlwkAKiB1VxAxLcyUePAH8cQmlbEul4+UM8LkVjPc2ZHcaFUDBEeqjoC0HyIiZ6RqOUSk6ghI+xyRD9mRQTYfIktPylaX16rhzo48KE29QH8kxjxC/hFtZYiGe70OjWVMW7Dx32bA3iO7//iAC8DOPweZFQhH6O+CmkRvW2f28oV8owEoUHdMPPg70rFJZajTkqT7uZ3ObaHEuuHOjnCpsb8vlKUsur2JhruLA94Y5QEOjuSZPR9jQ0R8zGoezNpFhN5RtUm+/bpgaG1u0jd2OSLDTRopbZ/okxcrLUYKvKprbRfHhXr8m5PK/y1V/gWRKLfiNSmxEAAAAABJRU5ErkJggg==" - webUI["html/js/authentication.js"] = "ZnVuY3Rpb24gY3JlYXRlRmlyc3RBY2NvdW50KGVsbSkgew0KICB2YXIgZXJyID0gZmFsc2U7DQogIHZhciBkaXYgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChlbG0pOw0KICBjb25zb2xlLmxvZyhkaXYpOw0KDQogIHZhciBmb3JtID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2F1dGhlbnRpY2F0aW9uJyk7DQogIA0KICBjb25zdCB1c2VybmFtZSAgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndXNlcm5hbWUnKTsNCiAgY29uc3QgcGFzc3dvcmQgID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Bhc3N3b3JkJyk7DQogIGNvbnN0IGNvbmZpcm0gICA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjb25maXJtJyk7DQoNCiAgdmFyIGlucHV0cyA9IGRpdi5nZXRFbGVtZW50c0J5VGFnTmFtZSgnSU5QVVQnKQ0KICBjb25zb2xlLmxvZyhjb25maXJtKTsNCg0KICBzd2l0Y2goY29uZmlybSkgew0KICAgIGNhc2UgbnVsbDogYnJlYWs7DQogICAgDQogICAgZGVmYXVsdDogDQogICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGlucHV0cy5sZW5ndGg7IGkrKykgew0KICAgICAgICBpZiAoaW5wdXRzW2ldLnZhbHVlLmxlbmd0aCA9PSAwKSB7DQogICAgICAgICAgaW5wdXRzW2ldLnN0eWxlLmJvcmRlckNvbG9yID0gJ3JlZCc7DQogICAgICAgICAgZXJyID0gdHJ1ZQ0KICAgICAgICB9DQogICAgICB9DQoNCiAgICAgIHN3aXRjaChlcnIpIHsNCiAgICAgICAgY2FzZSB0cnVlOiByZXR1cm47IGJyZWFrOw0KICAgICAgICBjYXNlIGZhbHNlOiANCiAgICAgICAgICBpZiAocGFzc3dvcmQudmFsdWUgIT0gY29uZmlybS52YWx1ZSkgew0KICAgICAgICAgICAgY29uZmlybS5zdHlsZS5ib3JkZXJDb2xvciA9ICdyZWQnOw0KICAgICAgICAgICAgcmV0dXJuOw0KICAgICAgICAgIH0NCiAgICAgICAgICBicmVhazsNCiAgICAgIH0NCiAgfQ0KDQoNCiAgDQoNCiAgZm9ybS5zdWJtaXQoKTsNCiAgcmV0dXJuOw0KfQ==" - webUI["html/js/base.js"] = "dmFyIGNvbmZpZyAgICAgICAgPSBuZXcgT2JqZWN0KCk7DQp2YXIgbWVudSAgICAgICAgICA9IG5ldyBPYmplY3QoKTsNCnZhciBzdWJNZW51ICAgICAgID0gbmV3IE9iamVjdCgpOw0KdmFyIGFjdGl2ZVN0cmVhbXMgPSBuZXcgT2JqZWN0KCk7DQp2YXIgeEVQRyAgICAgICAgICA9IG5ldyBPYmplY3QoKTsNCnZhciB1c2VycyAgICAgICAgID0gbmV3IE9iamVjdCgpOw0KdmFyIGxvZyAgICAgICAgICAgPSBuZXcgT2JqZWN0KCk7DQp2YXIgdW5kbyAgICAgICAgICA9IG5ldyBPYmplY3QoKTsNCnZhciB3ZWJTb2NrZXRzICAgID0gdHJ1ZTsNCnZhciBjbG9zZUxvZywgdmVyc2lvbiwgYWN0aXZlTWVudTsNCnZhciBjb2x1bW5Ub1NvcnQgID0gMA0KDQoNCmlmICh3aW5kb3cuV2ViU29ja2V0ID09PSB1bmRlZmluZWQpIHsNCiAgYWxlcnQoIllvdXIgYnJvd3NlciBkb2VzIG5vdCBzdXBwb3J0IFdlYlNvY2tldHMiKTsNCiAgd2ViU29ja2V0cyA9IGZhbHNlOw0KfSANCg0KZnVuY3Rpb24gcGFnZVJlYWR5KCkgew0KICB2YXIgZGF0YSA9IG5ldyBPYmplY3QoKTsNCiAgZGF0YVsiY21kIl0gPSAiZ2V0U2VydmVyQ29uZmlnIjsNCiAgeFRlVmUoZGF0YSk7DQogIC8vc2hvd0xvYWRpbmdTY3JlZW4oZmFsc2UpOw0KDQogIHZhciByZXNpemVIYW5kbGUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgib3BlblN0cmVhbXMiKTsNCiAgdmFyIGJveCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJteVN0cmVhbXNCb3giKTsNCiAgcmVzaXplSGFuZGxlLmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlZG93biIsIGluaXRpYWxpc2VSZXNpemUsIGZhbHNlKTsNCg0KICBmdW5jdGlvbiBpbml0aWFsaXNlUmVzaXplKGUpIHsNCiAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigibW91c2Vtb3ZlIiwgc3RhcnRSZXNpemluZywgZmFsc2UpOw0KICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJtb3VzZXVwIiwgc3RvcFJlc2l6aW5nLCBmYWxzZSk7DQogIH0NCg0KICBmdW5jdGlvbiBzdGFydFJlc2l6aW5nKGUpIHsNCiAgICBib3guc3R5bGUuaGVpZ2h0ID0gKGUuY2xpZW50WSAtIGJveC5vZmZzZXRUb3ApICsgInB4IjsNCiAgICAgIA0KICAgIHZhciBlbG0gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYWxsU3RyZWFtcyIpOw0KICAgIGlmIChlLmNsaWVudFkgPiAxMjApIHsNCiAgICAgIGVsbS5jbGFzc05hbWUgPSAidmlzaWJsZSI7IA0KICAgIH0gZWxzZSB7DQogICAgICBlbG0uY2xhc3NOYW1lID0gIm5vdFZpc2libGUiOyANCiAgICB9DQoNCiAgICBjYWxjdWxhdGVXcmFwcGVySGVpZ2h0KCk7DQoNCiAgfQ0KICBmdW5jdGlvbiBzdG9wUmVzaXppbmcoZSkgew0KICAgICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ21vdXNlbW92ZScsIHN0YXJ0UmVzaXppbmcsIGZhbHNlKTsNCiAgICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCdtb3VzZXVwJywgc3RvcFJlc2l6aW5nLCBmYWxzZSk7DQogICAgICBjYWxjdWxhdGVXcmFwcGVySGVpZ2h0KCk7DQogIH0NCg0KICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigicmVzaXplIiwgZnVuY3Rpb24oKXsNCiAgICBjYWxjdWxhdGVXcmFwcGVySGVpZ2h0KCk7DQogIH0sIHRydWUpOw0KfQ0KDQoNCmZ1bmN0aW9uIGdldE9iaktleXMob2JqKSB7DQogIHZhciBrZXlzID0gbmV3IEFycmF5KCk7DQoNCiAgZm9yICh2YXIgaSBpbiBvYmopIHsNCiAgICBpZiAob2JqLmhhc093blByb3BlcnR5KGkpKSB7DQogICAgICBrZXlzLnB1c2goaSk7DQogICAgfQ0KICB9DQoNCiAgcmV0dXJuIGtleXM7DQp9DQoNCg0KZnVuY3Rpb24gY3JlYXRlRWxlbWVudChpdGVtKSB7DQogIC8vY29uc29sZS5sb2coaXRlbSk7DQogIHZhciBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChpdGVtWyJfZWxlbWVudCJdKTsNCiAgaWYgKGl0ZW0uaGFzT3duUHJvcGVydHkoIl90ZXh0IikpIHsNCiAgICAvL2VsZW1lbnQuaW5uZXJIVE1MID0gIjxwPiIgKyBpdGVtWyJfdGV4dCJdICsgIjwvcD4iOw0KICAgIGVsZW1lbnQuaW5uZXJIVE1MID0gaXRlbVsiX3RleHQiXTsNCiAgfQ0KDQogIHZhciBrZXlzID0gZ2V0T2JqS2V5cyhpdGVtKTsNCiAgZm9yICh2YXIgaSA9IDA7IGkgPCBrZXlzLmxlbmd0aDsgaSsrKSB7DQogICAgaWYgKGtleXNbaV0uY2hhckF0KDApICE9ICJfIikgew0KICAgICAgLy9jb25zb2xlLmxvZyhrZXlzW2ldLCBpdGVtW2tleXNbaV1dKTsNCiAgICAgIGVsZW1lbnQuc2V0QXR0cmlidXRlKGtleXNbaV0sIGl0ZW1ba2V5c1tpXV0pOw0KICAgIH0NCiAgfQ0KDQogIC8vY29uc29sZS5sb2coZWxlbWVudCk7DQogIHJldHVybiBlbGVtZW50Ow0KfQ0KDQpmdW5jdGlvbiBtb2RpZnlPcHRpb24oaWQsIG9wdGlvbnMsIHZhbHVlcykgew0KICB2YXIgc2VsZWN0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpOw0KICBzZWxlY3QuaW5uZXJIVE1MID0gIiI7DQoNCiAgZm9yICh2YXIgaSA9IDA7IGkgPCBvcHRpb25zLmxlbmd0aDsgaSsrKSB7DQogIA0KICAgIHZhciBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiT1BUSU9OIikNCiAgDQogICAgZWxlbWVudC52YWx1ZSA9IHZhbHVlc1tpXTsNCiAgICBlbGVtZW50LmlubmVySFRNTCA9IG9wdGlvbnNbaV07DQoNCiAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkuYXBwZW5kQ2hpbGQoZWxlbWVudCk7DQogIA0KICB9DQoNCn0NCg0KDQpmdW5jdGlvbiBzdGFydFdlYlNvY2tldCgpIHsNCiAgaWYgKHdlYlNvY2tldHMgPT0gZmFsc2UpIHsNCiAgICByZXR1cm47DQogIH0NCg0KICAvL3dzLnNlbmQoJ3siY21kIjogImdldFNlcnZlckNvbmZpZzEifScpOw0KDQp9DQoNCmZ1bmN0aW9uIGNoZWNrRXJyKG9iaikgew0KICAvL2FsZXJ0KG9ialsiZXJyIl0pDQogIC8vc2NyZWVuTG9nKG9ialsiZXJyIl0sICJlcnJvciIpDQogIGNvbnNvbGUubG9nKG9iaik7DQogIHZhciBuZXdPYmogPSBuZXcgT2JqZWN0KCk7DQogIHZhciBuZXdFcnIgPSBuZXcgT2JqZWN0KCk7DQogIG5ld0Vyclsia2V5Il0gICA9ICJFcnJvciI7DQogIG5ld0VyclsidmFsdWUiXSA9IG9ialsiZXJyIl07DQogIG5ld0VyclsidHlwZSJdICA9ICJlcnJvciI7DQoNCiAgbmV3T2JqWzBdID0gbmV3RXJyDQogIHNob3dMb2cobmV3T2JqKTsNCiAgcmV0dXJuDQp9DQoNCmZ1bmN0aW9uIHNjcmVlbkxvZyhtc2csIG1zZ1R5cGUsIHNob3cpIHsNCiAgcmV0dXJuDQogIGNsZWFyVGltZW91dChjbG9zZUxvZykNCiAgdmFyIGRpdiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzY3JlZW5Mb2ciKTsNCiAgdmFyIG5ld01zZyA9IG5ldyBPYmplY3QoKTsNCiAgDQogIG5ld01zZ1siX2VsZW1lbnQiXSA9ICJQIjsNCiAgDQogIHN3aXRjaChtc2dUeXBlKSB7DQogICAgY2FzZSAiZXJyb3IiOiAgIG5ld01zZ1siY2xhc3MiXSA9ICJlcnJvck1zZyI7IGJyZWFrOw0KICAgIGNhc2UgIndhcm5pbmciOiBuZXdNc2dbImNsYXNzIl0gPSAid2FybmluZ01zZyI7IGJyZWFrOw0KICAgIC8vZGVmYXVsdDogICAgICBuZXdNc2dbImNsYXNzIl0gPSAiaW5mb01zZyINCiAgfQ0KDQogIG5ld01zZ1siX3RleHQiXSA9IG1zZzsNCg0KICBkaXYuYXBwZW5kQ2hpbGQoY3JlYXRlRWxlbWVudChuZXdNc2cpKTsNCg0KICBkaXYuc2Nyb2xsVG9wID0gZGl2LnNjcm9sbEhlaWdodDsNCg0KICBpZiAoc2hvdyA9PSBmYWxzZSkgew0KICAgIHJldHVybjsNCiAgfQ0KDQogIGRpdi5jbGFzc05hbWUgPSAiIg0KICBjbG9zZUxvZyA9IHNldFRpbWVvdXQoY2xvc2VTY3JlZW5Mb2csIDEwMDAwKTsNCn0NCg0KDQpmdW5jdGlvbiBjbG9zZVNjcmVlbkxvZygpIHsNCiAgdmFyIGRpdiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzY3JlZW5Mb2ciKTsNCiAgZGl2LmNsYXNzTmFtZSA9ICJzY3JlZW5Mb2dIaWRkZW4iDQp9DQoNCmZ1bmN0aW9uIHNob3dTY3JlZW5Mb2coKSB7DQogIGNsZWFyVGltZW91dChjbG9zZUxvZykNCiAgdmFyIGRpdiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzY3JlZW5Mb2ciKTsNCiAgdmFyIGN1cnJlbnRDbGFzcyA9IGRpdi5jbGFzc05hbWU7DQogIGRpdi5jbGFzc05hbWUgPSAic2NyZWVuTG9nSGlkZGVuIg0KDQogIHN3aXRjaChjdXJyZW50Q2xhc3MpIHsNCiAgICBjYXNlICJzY3JlZW5Mb2dIaWRkZW4iOiAgZGl2LmNsYXNzTmFtZSA9ICIiOyBicmVhazsgDQogICAgY2FzZSAiIjogZGl2LmNsYXNzTmFtZSA9ICJzY3JlZW5Mb2dIaWRkZW4iOyBicmVhazsNCiAgfQ0KfQ0KDQpmdW5jdGlvbiBzaG93TG9hZGluZ1NjcmVlbihlbG0pIHsNCiAgdmFyIGRpdiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJsb2FkaW5nIik7DQogIHN3aXRjaChlbG0pIHsNCiAgICBjYXNlIHRydWU6IGRpdi5jbGFzc05hbWUgPSAiYmxvY2siOyBicmVhazsNCiAgICBjYXNlIGZhbHNlOiBkaXYuY2xhc3NOYW1lID0gIm5vbmUiOyBicmVhazsNCg0KICAgIC8qDQogICAgY2FzZSB0cnVlOiBkaXYuc3R5bGUuZGlzcGxheSA9ICJibG9jayI7IGJyZWFrOw0KICAgIGNhc2UgZmFsc2U6IGRpdi5zdHlsZS5kaXNwbGF5ID0gIm5vbmUiOyBicmVhazsNCiAgICAqLw0KICB9DQp9DQoNCmZ1bmN0aW9uIGNyZWF0ZUNsaW50SW5mbyhvYmopIHsNCiAgLy9jb25zb2xlLmxvZyhvYmopOw0KICB2YXIga2V5cyA9IGdldE9iaktleXMob2JqKTsNCiAgZm9yICh2YXIgaSA9IDA7IGkgPCBrZXlzLmxlbmd0aDsgaSsrKSB7DQogICAgaWYoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoa2V5c1tpXSkpew0KICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoa2V5c1tpXSkuaW5uZXJIVE1MID0gb2JqW2tleXNbaV1dOw0KICAgIH0NCiAgfQ0KICAvL2RvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjbGllbnRJbmZvIikuY2xhc3NOYW1lID0gInZpc2libGUiOw0KfQ0KDQpmdW5jdGlvbiBzaG93RWxlbWVudChlbG1JRCwgdHlwZSkgew0KICBzd2l0Y2godHlwZSkgew0KICAgIGNhc2UgdHJ1ZTogIGNzc0NsYXNzID0gImJsb2NrIjsgYnJlYWs7DQogICAgY2FzZSBmYWxzZTogY3NzQ2xhc3MgPSAibm9uZSI7IGJyZWFrOw0KICB9DQoNCiAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoZWxtSUQpLmNsYXNzTmFtZSA9IGNzc0NsYXNzOw0KfSANCg0KZnVuY3Rpb24gc2hvd1BvcFVwRWxlbWVudChlbG0pIHsNCiAgdmFyIGFsbEVsZW1lbnRzID0gbmV3IEFycmF5KCJkZWxldGVVc2VyRGV0YWlsIiwgIm1hcHBpbmctZGV0YWlsIiwgInVzZXItZGV0YWlsIiwgImZpbGUtZGV0YWlsIik7DQoNCiAgZm9yICh2YXIgaSA9IDA7IGkgPCBhbGxFbGVtZW50cy5sZW5ndGg7IGkrKykgew0KICAgIHNob3dFbGVtZW50KGFsbEVsZW1lbnRzW2ldLCBmYWxzZSkNCiAgfQ0KDQogIHNob3dFbGVtZW50KGVsbSwgdHJ1ZSkNCg0KICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7IA0KICAgIHNob3dFbGVtZW50KCJwb3B1cCIsIHRydWUpOw0KICB9LCAxMCk7DQp9DQoNCiAgLy8gYm9keS4uLg0KDQpmdW5jdGlvbiBzaG93U3RyZWFtcyhmb3JjZSkgew0KDQogIHZhciBlbG1Cb3ggPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibXlTdHJlYW1zQm94Iik7DQogIHZhciBlbG0gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYWxsU3RyZWFtcyIpOw0KICAvL2NvbnNvbGUubG9nKGVsbSk7DQogIHNob3cgPSBlbG0uY2xhc3NOYW1lOw0KDQogIHN3aXRjaChmb3JjZSkgew0KICAgIGNhc2UgdHJ1ZTogc2hvdyA9ICJub3RWaXNpYmxlIjsgYnJlYWs7DQogICAgY2FzZSBmYWxzZTogc2hvdyA9ICJ2aXNpYmxlIjsgYnJlYWs7DQogIH0NCg0KICBzd2l0Y2goc2hvdykgew0KICAgIGNhc2UgIm5vdFZpc2libGUiOiANCiAgICAgIGVsbS5jbGFzc05hbWUgPSAidmlzaWJsZSI7IA0KICAgICAgZWxtQm94LnN0eWxlLmhlaWdodCA9ICIxMDBweCI7DQogICAgICBicmVhazsNCg0KICAgIGRlZmF1bHQ6IA0KICAgICAgZWxtLmNsYXNzTmFtZSA9ICJub3RWaXNpYmxlIjsgDQogICAgICBlbG1Cb3guc3R5bGUuaGVpZ2h0ID0gIjIwcHgiOw0KICAgICAgYnJlYWs7DQogIH0NCg0KICB2YXIgc2hvdyA9IGVsbS5zdHlsZS5kaXNwbGF5OyB7DQogICAgLy9jb25zb2xlLmxvZyhlbG0uc3R5bGUuZGlzcGxheSk7DQogIH0NCiAgDQogIGNhbGN1bGF0ZVdyYXBwZXJIZWlnaHQoKTsNCn0NCg0KZnVuY3Rpb24geHRldmVCYWNrdXAoKSB7DQogIGNvbnNvbGUubG9nKCJ4dGV2ZUJhY2t1cCIpOw0KICB2YXIgZGF0YSA9IG5ldyBPYmplY3QoKTsNCiAgZGF0YVsiY21kIl0gPSAieHRldmVCYWNrdXAiOw0KDQogIHhUZVZlKGRhdGEpOw0KfQ0KDQpmdW5jdGlvbiB4dGV2ZVJlc3RvcmUoZWxtKSB7DQogIHZhciByZXN0b3JlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiSU5QVVQiKTsNCiAgcmVzdG9yZS5zZXRBdHRyaWJ1dGUoInR5cGUiLCAiZmlsZSIpOw0KICByZXN0b3JlLnNldEF0dHJpYnV0ZSgiY2xhc3MiLCAibm90VmlzaWJsZSIpOw0KICByZXN0b3JlLnNldEF0dHJpYnV0ZSgibmFtZSIsICIiKTsNCiAgcmVzdG9yZS5pZCA9ICJ1cGxvYWQiOw0KDQogIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQocmVzdG9yZSk7DQogIHJlc3RvcmUuY2xpY2soKTsNCg0KICByZXN0b3JlLm9uY2hhbmdlID0gZnVuY3Rpb24oKSB7DQogICAgdmFyIGZpbGVuYW1lID0gcmVzdG9yZS5maWxlc1swXS5uYW1lDQogICAgLy9jb25zb2xlLmxvZyhyZXN0b3JlLnNyY0VsZW1lbnQuZmlsZXNbMF0pOw0KICAgIHZhciBjaGVjayA9IGNvbmZpcm0oIkZpbGU6ICIgKyBmaWxlbmFtZSArICJcbkFsbCBkYXRhIHdpbGwgYmUgcmVwbGFjZWQgd2l0aCB0aG9zZSBmcm9tIHRoZSBiYWNrdXAuXG5TaG91bGQgdGhlIGZpbGVzIGJlIHJlc3RvcmVkPyIpOyANCiAgICBpZiAoY2hlY2sgPT0gdHJ1ZSkgew0KICAgICAgdmFyIHJlYWRlciAgPSBuZXcgRmlsZVJlYWRlcigpOw0KICAgICAgdmFyIGZpbGUgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCdpbnB1dFt0eXBlPWZpbGVdJykuZmlsZXNbMF07DQogICAgICBpZiAoZmlsZSkgew0KICAgICAgICByZWFkZXIucmVhZEFzRGF0YVVSTChmaWxlKTsNCiAgICAgICAgcmVhZGVyLm9ubG9hZCA9IGZ1bmN0aW9uKCkgew0KICAgICAgICAgIGNvbnNvbGUubG9nKHJlYWRlci5yZXN1bHQpOw0KICAgICAgICAgIHZhciBkYXRhID0gbmV3IE9iamVjdCgpOw0KICAgICAgICAgIGRhdGFbImNtZCJdICAgICA9ICJ4dGV2ZVJlc3RvcmUiDQogICAgICAgICAgZGF0YVsiYmFzZTY0Il0gID0gcmVhZGVyLnJlc3VsdA0KDQogICAgICAgICAgeFRlVmUoZGF0YSk7DQogICAgICAgICAgcmV0dXJuDQogICAgICAgIH07DQogICAgICB9IGVsc2Ugew0KICAgICAgICBhbGVydCgiRmlsZSBjb3VsZCBub3QgYmUgbG9hZGVkIikNCiAgICAgIH0NCiAgICB9DQogIH07DQp9DQoNCmZ1bmN0aW9uIGdldEJhc2U2NChmaWxlKSB7DQogICB2YXIgcmVhZGVyID0gbmV3IEZpbGVSZWFkZXIoKTsNCiAgIHJlYWRlci5yZWFkQXNEYXRhVVJMKGZpbGUpOw0KICAgcmVhZGVyLm9ubG9hZCA9IGZ1bmN0aW9uKCkgew0KICAgICBjb25zb2xlLmxvZyhyZWFkZXIucmVzdWx0KTsNCiAgIH07DQogICByZWFkZXIub25lcnJvciA9IGZ1bmN0aW9uKGVycm9yKSB7DQogICAgIGNvbnNvbGUubG9nKCdFcnJvcjogJywgZXJyb3IpOw0KICAgfTsNCn0NCg0KZnVuY3Rpb24gbG9nb3V0KCkgew0KICBkb2N1bWVudC5jb29raWUuc3BsaXQoJzsnKS5mb3JFYWNoKGZ1bmN0aW9uKGMpIHsNCiAgICBkb2N1bWVudC5jb29raWUgPSBjLnRyaW0oKS5zcGxpdCgnPScpWzBdICsgJz07JyArICdleHBpcmVzPVRodSwgMDEgSmFuIDE5NzAgMDA6MDA6MDAgVVRDOyc7DQogIH0pOw0KICBsb2NhdGlvbi5yZWxvYWQoKTsNCn0NCg0KZnVuY3Rpb24gZ2V0Q29va2llKG5hbWUpIHsNCiAgdmFyIHZhbHVlID0gIjsgIiArIGRvY3VtZW50LmNvb2tpZTsNCiAgdmFyIHBhcnRzID0gdmFsdWUuc3BsaXQoIjsgIiArIG5hbWUgKyAiPSIpOw0KICBpZiAocGFydHMubGVuZ3RoID09IDIpIHJldHVybiBwYXJ0cy5wb3AoKS5zcGxpdCgiOyIpLnNoaWZ0KCk7DQp9DQoNCmZ1bmN0aW9uIHNldENvb2tpZSh0b2tlbikgew0KICAvL2NvbnNvbGUubG9nKHRva2VuKTsNCiAgZG9jdW1lbnQuY29va2llID0gIlRva2VuPSIgKyB0b2tlbg0KfQ0KDQo=" - webUI["html/js/classes_ts.js"] = "dmFyIF9fZXh0ZW5kcyA9ICh0aGlzICYmIHRoaXMuX19leHRlbmRzKSB8fCAoZnVuY3Rpb24gKCkgew0KICAgIHZhciBleHRlbmRTdGF0aWNzID0gZnVuY3Rpb24gKGQsIGIpIHsNCiAgICAgICAgZXh0ZW5kU3RhdGljcyA9IE9iamVjdC5zZXRQcm90b3R5cGVPZiB8fA0KICAgICAgICAgICAgKHsgX19wcm90b19fOiBbXSB9IGluc3RhbmNlb2YgQXJyYXkgJiYgZnVuY3Rpb24gKGQsIGIpIHsgZC5fX3Byb3RvX18gPSBiOyB9KSB8fA0KICAgICAgICAgICAgZnVuY3Rpb24gKGQsIGIpIHsgZm9yICh2YXIgcCBpbiBiKSBpZiAoYi5oYXNPd25Qcm9wZXJ0eShwKSkgZFtwXSA9IGJbcF07IH07DQogICAgICAgIHJldHVybiBleHRlbmRTdGF0aWNzKGQsIGIpOw0KICAgIH07DQogICAgcmV0dXJuIGZ1bmN0aW9uIChkLCBiKSB7DQogICAgICAgIGV4dGVuZFN0YXRpY3MoZCwgYik7DQogICAgICAgIGZ1bmN0aW9uIF9fKCkgeyB0aGlzLmNvbnN0cnVjdG9yID0gZDsgfQ0KICAgICAgICBkLnByb3RvdHlwZSA9IGIgPT09IG51bGwgPyBPYmplY3QuY3JlYXRlKGIpIDogKF9fLnByb3RvdHlwZSA9IGIucHJvdG90eXBlLCBuZXcgX18oKSk7DQogICAgfTsNCn0pKCk7DQp2YXIgTWFpbk1lbnUgPSAvKiogQGNsYXNzICovIChmdW5jdGlvbiAoKSB7DQogICAgZnVuY3Rpb24gTWFpbk1lbnUoKSB7DQogICAgICAgIHRoaXMuRG9jdW1lbnRJRCA9ICJtYWluLW1lbnUiOw0KICAgICAgICB0aGlzLkhUTUxUYWcgPSAiTEkiOw0KICAgIH0NCiAgICBNYWluTWVudS5wcm90b3R5cGUuY3JlYXRlID0gZnVuY3Rpb24gKCkgew0KICAgICAgICBjb25zb2xlLmxvZyh0aGlzLkRvY3VtZW50SUQpOw0KICAgIH07DQogICAgcmV0dXJuIE1haW5NZW51Ow0KfSgpKTsNCnZhciBNYWluTWVudUl0ZW0gPSAvKiogQGNsYXNzICovIChmdW5jdGlvbiAoX3N1cGVyKSB7DQogICAgX19leHRlbmRzKE1haW5NZW51SXRlbSwgX3N1cGVyKTsNCiAgICBmdW5jdGlvbiBNYWluTWVudUl0ZW0oKSB7DQogICAgICAgIHJldHVybiBfc3VwZXIgIT09IG51bGwgJiYgX3N1cGVyLmFwcGx5KHRoaXMsIGFyZ3VtZW50cykgfHwgdGhpczsNCiAgICB9DQogICAgTWFpbk1lbnVJdGVtLnByb3RvdHlwZS5jcmVhdGUyID0gZnVuY3Rpb24gKCkgew0KICAgICAgICB2YXIgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQodGhpcy5IVE1MVGFnKTsNCiAgICAgICAgZWxlbWVudC5pbm5lclRleHQgPSB0aGlzLlZhbHVlOw0KICAgICAgICBjb25zb2xlLmxvZyhlbGVtZW50KTsNCiAgICB9Ow0KICAgIHJldHVybiBNYWluTWVudUl0ZW07DQp9KE1haW5NZW51KSk7DQpmdW5jdGlvbiBwYWdlUmVhZHkoKSB7DQogICAgdmFyIGl0ZW0gPSBuZXcgTWFpbk1lbnVJdGVtKCk7DQogICAgaXRlbS5WYWx1ZSA9ICJUZXN0IjsNCiAgICBpdGVtLmNyZWF0ZTIoKTsNCn0NCg==" - webUI["html/js/menu.js"] = "DQpmdW5jdGlvbiBzZXRNZW51SXRlbSgpIHsNCg0KICBtZW51ID0gbmV3IE9iamVjdCgpOw0KICBzdWJNZW51ID0gbmV3IE9iamVjdCgpOw0KDQogIHZhciBtZW51X20zdSA9IG5ldyBPYmplY3QoKTsNCiAgbWVudV9tM3VbIl9tZW51VHlwZSJdICAgICAgID0gImlucHV0QXJyYXkiOw0KICBtZW51X20zdVsiX2VsZW1lbnQiXSAgICAgICAgPSAiTEkiOw0KICBtZW51X20zdVsiX2NvbmZpZ0tleSJdICAgICAgPSAiZmlsZXMubTN1IjsNCiAgbWVudV9tM3VbIl90ZXh0Il0gICAgICAgICAgID0gIlBsYXlsaXN0IjsNCiAgbWVudV9tM3VbIl9pY29uIl0gICAgICAgICAgID0gImltZy9tM3UucG5nIjsNCiAgbWVudV9tM3VbIl9oZWFkbGluZSJdICAgICAgID0gIlBsYXlsaXN0czogTG9jYWwgb3IgcmVtb3RlIjsNCiAgbWVudV9tM3VbIl91c2FnZSJdICAgICAgICAgID0gIjxiPkluZm88L2I+PGJyPkF2YWlsYWJpbGl0eTogRmlsZSBhdmFpbGFiaWxpdHkgaW4gcGVyY2VudDxicj5TdHJlYW1zOiAgICAgIE51bWJlciBvZiBzdHJlYW1zIGluIHRoZSBmaWxlLjxicj5ncm91cC10aXRsZTogIFN0cmVhbXMgdGhhdCBhcmUgYXNzaWduZWQgdG8gYSBncm91cC4gU2ltcGxpZmllcyBmaWx0ZXJpbmcgc3RyZWFtczxicj50dmctaWQ6ICAgICAgIFRoaXMgSUQgaXMgdXNlZCBmb3IgYXV0b21hdGljIG1hcHBpbmcsIG11c3QgbWF0Y2ggd2l0aCB0aGUgY2hhbm5lbCBJRCBpbiB0aGUgWE1MVFYgZmlsZS48YnI+VW5pcXVlIElEOiAgICBTdHJlYW1zIHdpdGggYSB1bmlxdWUgSUQgdG8gaWRlbnRpZnkgdGhlbS4gQWxsb3dzIGNoYW5uZWwgbmFtZSBjaGFuZ2VzIGluIHRoZSBNM1Ugd2l0aG91dCBsb3NpbmcgdGhlIFhNTFRWIG1hcHBpbmcgKFBQViAvIGxpdmUgZXZlbnRzKS48YnI+PGJyPjxiPlVzYWdlIE0zVTo8L2I+PGJyPlJlbW90ZSBwbGF5bGlzdDogaHR0cDovL3lvdXIuaXB0di5wcm92aWRlci5jb20vZmlsZS5tM3U8YnI+TG9jYWwgIHBsYXlsaXN0OiAvcGF0aC90by9maWxlLm0zdTxicj48YnI+PGI+VXNhZ2UgSERIb21lUnVuOjwvYj48YnI+SVA6IDE5Mi4xNjguMS4xMDo1MDA0PGJyPiINCiAgbWVudV9tM3VbIm5hbWUiXSAgICAgICAgICAgID0gImZpbGUiOw0KICBtZW51X20zdVsiaWQiXSAgICAgICAgICAgICAgPSAiZmlsZSI7DQogIG1lbnVfbTN1WyJ2YWx1ZSJdICAgICAgICAgICA9IG1lbnVfbTN1WyJuYW1lIl07DQogIG1lbnVfbTN1WyJwbGFjZWhvbGRlciJdICAgICA9ICJQbGF5bGlzdDogbG9jYWwgb3IgcmVtb3RlIjsNCiAgbWVudV9tM3VbIm9uY2xpY2siXSAgICAgICAgID0gImphdmFzY3JpcHQ6IHRvZ2dsZU1lbnUodGhpcyk7IjsNCiAgbWVudV9tM3VbImNsYXNzIl0gICAgICAgICAgID0gIm1lbnUtbm90QWN0aXZlIjsNCg0KDQogIHZhciBtZW51X2ZpbHRlciA9IG5ldyBPYmplY3QoKTsNCiAgbWVudV9maWx0ZXJbIl9tZW51VHlwZSJdICAgID0gImlucHV0QXJyYXkiOw0KICBtZW51X2ZpbHRlclsiX2VsZW1lbnQiXSAgICAgPSAiTEkiOw0KICBtZW51X2ZpbHRlclsiX2NvbmZpZ0tleSJdICAgPSAiZmlsdGVyIjsNCiAgbWVudV9maWx0ZXJbIl90ZXh0Il0gICAgICAgID0gIkZpbHRlciI7DQogIG1lbnVfZmlsdGVyWyJfaWNvbiJdICAgICAgICA9ICJpbWcvZmlsdGVyLnBuZyI7DQogIG1lbnVfZmlsdGVyWyJfaGVhZGxpbmUiXSAgICA9ICJGaWx0ZXIgYnkgTTNVIHBhcmFtZXRlcnMsIGUuZy4gZ3JvdXAtdGl0bGUiOw0KICBtZW51X2ZpbHRlclsiX3VzYWdlIl0gICAgICAgPSAiPGI+VXNhZ2U6PC9iPjxicj5TcG9ydCAtIEFsbCBzcG9ydHMgY2hhbm5lbHM8YnI+U3BvcnQge0hEfSAtIEFsbCBIRCBzcG9ydHMgY2hhbm5lbHM8YnI+U3BvcnQge0hEfSAhe0VTLERFfSAtIEFsbCBIRCBzcG9ydHMgY2hhbm5lbHMsIGJ1dCBubyBTcGFuaXNoIGFuZCBHZXJtYW48YnI+PGJyPlRvIGZpbHRlciB0aGUgc3RyZWFtcyBvZiBhIEhESG9tZVJ1biwgdGhlIHBsYXlsaXN0IG5hbWUgY2FuIGJlIGVudGVyZWQ6PGJyPk15IHR1bmVyIHtIRH0iDQogIC8vbWVudV9maWx0ZXJbIl91c2FnZSJdICAgICAgID0gIjxiPlVzYWdlOjwvYj48YnI+QWxsIHNwb3J0cyBjaGFubmVsczogU3BvcnQ8YnI+QWxsIEhEIHNwb3J0cyBjaGFubmVsczogU3BvcnQge0hEfTxicj5BbGwgSEQgc3BvcnRzIGNoYW5uZWxzLCBidXQgbm8gU3BhbmlzaCBhbmQgR2VybWFuOiBTcG9ydCB7SER9ICF7RVMsREV9Ig0KICBtZW51X2ZpbHRlclsibmFtZSJdICAgICAgICAgPSAiZmlsdGVyIjsNCiAgbWVudV9maWx0ZXJbImlkIl0gICAgICAgICAgID0gIk0zVSI7DQogIG1lbnVfZmlsdGVyWyJ2YWx1ZSJdICAgICAgICA9IG1lbnVfZmlsdGVyWyJuYW1lIl07DQogIG1lbnVfZmlsdGVyWyJwbGFjZWhvbGRlciJdICA9ICJGaWx0ZXIgc3RyZWFtczogU3BvcnQiOw0KICBtZW51X2ZpbHRlclsib25jbGljayJdICAgICAgPSAiamF2YXNjcmlwdDogdG9nZ2xlTWVudSh0aGlzKTsiOw0KICBtZW51X2ZpbHRlclsiY2xhc3MiXSAgICAgICAgPSAibWVudS1ub3RBY3RpdmUiOw0KDQogIHZhciBtZW51X2lkID0gbmV3IE9iamVjdCgpOw0KICBtZW51X2lkWyJfbWVudVR5cGUiXSAgICAgICAgPSAiaW5wdXRBcnJheSI7DQogIG1lbnVfaWRbIl9lbGVtZW50Il0gICAgICAgICA9ICJMSSI7DQogIG1lbnVfaWRbIl9jb25maWdLZXkiXSAgICAgICA9ICJpZCI7DQogIG1lbnVfaWRbIl90ZXh0Il0gICAgICAgICAgICA9ICJQTVMgSUQiOw0KICBtZW51X2lkWyJfaWNvbiJdICAgICAgICAgICAgPSAiaW1nL251bWJlci5wbmciOw0KICBtZW51X2lkWyJfaGVhZGxpbmUiXSAgICAgICAgPSAiU2V0dXAgUE1TIGd1aWRlIG51bWJlciI7DQogIG1lbnVfaWRbIl91c2FnZSJdICAgICAgICAgICA9ICdTb21lIHBsYXlsaXN0cyBoYXZlIHVuaXF1ZSBjaGFubmVsIElEcy48YnI+RW50ZXIgdGhlIGtleXdvcmQgb2YgdGhlIElELiBUaGUgY2hhbm5lbCBhc3NpZ25tZW50IGluIFBNUyB3aWxsIGNoYW5nZSBhcyBhIHJlc3VsdC48YnI+PGJyPmUuZy4gY2hhbm5lbElEPGJyPiNFWFRJTkY6MCB0eXBlPSJzdHJlYW0iIDxiPmNoYW5uZWxJZDwvYj49IjgxIiwgTXkgU3RyZWFtaW5nIENoYW5uZWwgSEQ8YnI+PGJyPk9ubHkgZW50ZXIgaGVyZSBpZiB5b3Uga25vdyB3aGF0IHlvdSBhcmUgZG9pbmchJw0KICBtZW51X2lkWyJuYW1lIl0gICAgICAgICAgICAgPSAiaWQiOw0KICBtZW51X2lkWyJpZCJdICAgICAgICAgICAgICAgPSAiaWQiOw0KICBtZW51X2lkWyJ2YWx1ZSJdICAgICAgICAgICAgPSBtZW51X2lkWyJuYW1lIl07DQogIG1lbnVfaWRbInBsYWNlaG9sZGVyIl0gICAgICA9ICJVbmlxdWUgSUQgZnJvbSB0aGUgTTNVIGZpbGUiOw0KICBtZW51X2lkWyJvbmNsaWNrIl0gICAgICAgICAgPSAiamF2YXNjcmlwdDogdG9nZ2xlTWVudSh0aGlzKTsiOw0KICBtZW51X2lkWyJjbGFzcyJdICAgICAgICAgICAgPSAibWVudS1ub3RBY3RpdmUiOw0KDQoNCiAgdmFyIG1lbnVfeG1sdHYgPSBuZXcgT2JqZWN0KCk7DQogIG1lbnVfeG1sdHZbIl9tZW51VHlwZSJdICAgICA9ICJpbnB1dEFycmF5IjsNCiAgbWVudV94bWx0dlsiX2VsZW1lbnQiXSAgICAgID0gIkxJIjsNCiAgbWVudV94bWx0dlsiX2NvbmZpZ0tleSJdICAgID0gImZpbGVzLnhtbHR2IjsNCiAgbWVudV94bWx0dlsiX3RleHQiXSAgICAgICAgID0gIlhNTFRWIjsNCiAgbWVudV94bWx0dlsiX2ljb24iXSAgICAgICAgID0gImltZy94bWx0di5wbmciOw0KICBtZW51X3htbHR2WyJfaGVhZGxpbmUiXSAgICAgPSAiWE1MVFYgZmlsZXM6IExvY2FsIG9yIHJlbW90ZSI7DQogIG1lbnVfeG1sdHZbIl91c2FnZSJdICAgICAgICA9ICI8Yj5JbmZvOjwvYj48YnI+QXZhaWxhYmlsaXR5OiBGaWxlIGF2YWlsYWJpbGl0eSBpbiBwZXJjZW50PGJyPkNoYW5uZWxzOiAgICAgTnVtYmVyIG9mIGNoYW5uZWxzIGluIHRoZSBmaWxlPGJyPlByb2dyYW1zOiAgICAgTnVtYmVyIG9mIEVQRyBkYXRhPGJyPjxicj48Yj5Vc2FnZTo8L2I+PGJyPlJlbW90ZSBYTUxUViBmaWxlOiBodHRwOi8veW91ci5lcGcucHJvdmlkZXIuY29tL2d1aWRlLnhtbDxicj5Mb2NhbCAgWE1MVFYgZmlsZTogL3BhdGgvdG8vZ3VpZGUueG1sIg0KICBtZW51X3htbHR2WyJuYW1lIl0gICAgICAgICAgPSAieG1sdHYiOw0KICBtZW51X3htbHR2WyJpZCJdICAgICAgICAgICAgPSAieG1sdHYiOw0KICBtZW51X3htbHR2WyJ2YWx1ZSJdICAgICAgICAgPSBtZW51X3htbHR2WyJuYW1lIl07DQogIG1lbnVfeG1sdHZbInBsYWNlaG9sZGVyIl0gICA9ICJYTUxUViBGaWxlOiBsb2NhbCBvciByZW1vdGUiOw0KICBtZW51X3htbHR2WyJvbmNsaWNrIl0gICAgICAgPSAiamF2YXNjcmlwdDogdG9nZ2xlTWVudSh0aGlzKTsiOw0KICBtZW51X3htbHR2WyJjbGFzcyJdICAgICAgICAgPSAibWVudS1ub3RBY3RpdmUiOw0KDQogIG1lbnVfbWFwcGluZyA9IG5ldyBPYmplY3QoKTsNCiAgbWVudV9tYXBwaW5nWyJfZWxlbWVudCJdICAgPSAiTEkiOw0KICBtZW51X21hcHBpbmdbIl90ZXh0Il0gICAgICA9ICJNYXBwaW5nIjsNCiAgbWVudV9tYXBwaW5nWyJfaWNvbiJdICAgICAgPSAiaW1nL21hcHBpbmcucG5nIjsNCiAgbWVudV9tYXBwaW5nWyJfY29uZmlnS2V5Il0gPSAibWFwcGluZyI7DQogIG1lbnVfbWFwcGluZ1siX2hlYWRsaW5lIl0gID0gIlhNTFRWIGFzc2lnbm1lbnQgYW5kIHNvcnRpbmcgb2YgY2hhbm5lbHMiOw0KICBtZW51X21hcHBpbmdbImlkIl0gICAgICAgICA9ICJtYXBwaW5nIjsNCiAgbWVudV9tYXBwaW5nWyJvbmNsaWNrIl0gICAgPSAiamF2YXNjcmlwdDogdG9nZ2xlTWVudSh0aGlzKTsiOw0KICBtZW51X21hcHBpbmdbImNsYXNzIl0gICAgICA9ICJtZW51LW5vdEFjdGl2ZSBwaG9uZSI7DQoNCiAgbWVudV91c2VycyA9IG5ldyBPYmplY3QoKTsNCiAgbWVudV91c2Vyc1siX2VsZW1lbnQiXSAgID0gIkxJIjsNCiAgbWVudV91c2Vyc1siX3RleHQiXSAgICAgID0gIlVzZXJzIjsNCiAgbWVudV91c2Vyc1siX2ljb24iXSAgICAgID0gImltZy91c2Vycy5wbmciOw0KICBtZW51X3VzZXJzWyJfY29uZmlnS2V5Il0gPSAidXNlcnMiOw0KICBtZW51X3VzZXJzWyJfaGVhZGxpbmUiXSAgPSAiQWRtaW5pc3RyYXRpb24gb2YgdXNlcnMgYW5kIHBlcm1pc3Npb25zIjsNCiAgbWVudV91c2Vyc1siaWQiXSAgICAgICAgID0gInVzZXJzIjsNCiAgbWVudV91c2Vyc1sib25jbGljayJdICAgID0gImphdmFzY3JpcHQ6IHRvZ2dsZU1lbnUodGhpcyk7IjsNCiAgbWVudV91c2Vyc1siY2xhc3MiXSAgICAgID0gIm1lbnUtbm90QWN0aXZlIjsNCiAgbWVudV91c2Vyc1siX3VzYWdlIl0gICAgID0gIjxiPkF1dGhvcml6YXRpb24gZ3JvdXBzOjwvYj48YnI+V0VCOiBVc2VycyBjYW4gbG9nIGluIHRvIHRoZSB3ZWIgaW50ZXJmYWNlPGJyPlBNUzogUHJvZ3JhbXMgbGlrZSBQbGV4IGNhbiBhY2Nlc3MgdGhlIGNoYW5uZWwgbGlzdC4gTG9naW4gdmlhIERWUiBJUDogdXNlcm5hbWU6cGFzc3dvcmRAeHRldmUuaXA6cG9ydDxicj5NM1U6IEFsbG93cyBjbGllbnRzIHRvIGRvd25sb2FkIHRoZSBNM1UgcGxheWxpc3QuPGJyPlhNTDogQWxsb3dzIGNsaWVudHMgdG8gZG93bmxvYWQgdGhlIFhNTFRWIGZpbGUuPGJyPkFQSTogQWxsb3dzIGNsaWVudHMgdG8gdXNlIHRoZSBBUEkgaW50ZXJmYWNlLjxicj48YnI+ISEhIEZvciBQTVMgYXV0aGVudGljYXRpb24sIG9ubHkgdGhlIGZvbGxvd2luZyBzcGVjaWFsIGNoYXJhY3RlcnMgYXJlIHZhbGlkOiAhJCgpPS4sLTo7PGJyPjxicj5UaGUgaW5kaXZpZHVhbCBhdXRoZW50aWNhdGlvbiBncm91cHMgY2FuIGJlIGFjdGl2YXRlZCAvIGRlYWN0aXZhdGVkIGluIHRoZSBzZXR0aW5ncyBtZW51LiINCiAgDQogIG1lbnVfc2V0dGluZ3MgPSBuZXcgT2JqZWN0KCk7DQogIG1lbnVfc2V0dGluZ3NbIl9lbGVtZW50Il0gICA9ICJMSSI7DQogIG1lbnVfc2V0dGluZ3NbIl90ZXh0Il0gICAgICA9ICJTZXR0aW5ncyI7DQogIG1lbnVfc2V0dGluZ3NbIl9pY29uIl0gICAgICA9ICJpbWcvc2V0dGluZ3MucG5nIjsNCiAgbWVudV9zZXR0aW5nc1siX2NvbmZpZ0tleSJdID0gInNldHRpbmdzIjsNCiAgbWVudV9zZXR0aW5nc1siX2hlYWRsaW5lIl0gID0gIlNldHRpbmdzIjsNCiAgbWVudV9zZXR0aW5nc1siX3N1Yk1lbnUiXSAgID0gIjcwMSw3MDIsNzAzLDcwNCw3MDUsNzA2LDcwNyw3MDgsNzk5LDcxMCw3MTEsNzEyLDcxMyw3MTQiOw0KICBtZW51X3NldHRpbmdzWyJpZCJdICAgICAgICAgPSAic2V0dGluZ3MiOw0KICBtZW51X3NldHRpbmdzWyJvbmNsaWNrIl0gICAgPSAiamF2YXNjcmlwdDogdG9nZ2xlTWVudSh0aGlzKTsiOw0KICBtZW51X3NldHRpbmdzWyJjbGFzcyJdICAgICAgPSAibWVudS1ub3RBY3RpdmUiOw0KDQogIG1lbnVfbG9nID0gbmV3IE9iamVjdCgpOw0KICBtZW51X2xvZ1siX2VsZW1lbnQiXSAgICAgICAgPSAiTEkiOw0KICBtZW51X2xvZ1siX3RleHQiXSAgICAgICAgICAgPSAiTG9nIjsNCiAgbWVudV9sb2dbIl9pY29uIl0gICAgICAgICAgID0gImltZy9sb2cucG5nIjsNCiAgbWVudV9sb2dbIl9oZWFkbGluZSJdICAgICAgID0gIkxvZyI7DQogIG1lbnVfbG9nWyJfY29uZmlnS2V5Il0gICAgICA9ICJsb2ciOw0KICBtZW51X2xvZ1siaWQiXSAgICAgICAgICAgICAgPSAibG9nIjsNCiAgbWVudV9sb2dbIm9uY2xpY2siXSAgICAgICAgID0gImphdmFzY3JpcHQ6IHRvZ2dsZU1lbnUodGhpcyk7IjsNCiAgbWVudV9sb2dbImNsYXNzIl0gICAgICAgICAgID0gIm1lbnUtbm90QWN0aXZlIjsNCg0KICBtZW51X2xvZ291dCA9IG5ldyBPYmplY3QoKTsNCiAgbWVudV9sb2dvdXRbIl9lbGVtZW50Il0gICA9ICJMSSI7DQogIG1lbnVfbG9nb3V0WyJfdGV4dCJdICAgICAgPSAiTG9nb3V0IjsNCiAgbWVudV9sb2dvdXRbIl9pY29uIl0gICAgICA9ICJpbWcvbG9nb3V0LnBuZyI7DQogIG1lbnVfbG9nb3V0WyJpZCJdICAgICAgICAgPSAibG9nb3V0IjsNCiAgbWVudV9sb2dvdXRbIm9uY2xpY2siXSAgICA9ICJqYXZhc2NyaXB0OiBsb2dvdXQoKTsiOw0KICBtZW51X2xvZ291dFsiY2xhc3MiXSAgICAgID0gIm1lbnUtbm90QWN0aXZlIjsNCg0KICB2YXIgbWVudV9zY2hlZHVsZSA9IG5ldyBPYmplY3QoKTsNCiAgbWVudV9zY2hlZHVsZVsiX21lbnVUeXBlIl0gID0gImlucHV0QXJyYXkiOw0KICBtZW51X3NjaGVkdWxlWyJfZWxlbWVudCJdICAgPSAiTEkiOw0KICBtZW51X3NjaGVkdWxlWyJfY29uZmlnS2V5Il0gPSAidXBkYXRlIjsNCiAgbWVudV9zY2hlZHVsZVsiX3RleHQiXSAgICAgID0gIlNjaGVkdWxlIjsNCiAgbWVudV9zY2hlZHVsZVsiX2ljb24iXSAgICAgID0gImltZy9zY2hlZHVsZS5wbmciOw0KICBtZW51X3NjaGVkdWxlWyJfaGVhZGxpbmUiXSAgPSAiU2NoZWR1bGUgZm9yIHVwZGF0aW5nIE0zVSwgWE1MVFYgZmlsZXMgYW5kIGNyZWF0aW5nIGEgbG9jYWwgYmFja3VwIjsNCiAgbWVudV9zY2hlZHVsZVsiX3VzYWdlIl0gICAgID0gIjxiPlVzYWdlOjwvYj48YnI+MDgxNSA9IDg6MTUgYW08YnI+MTkzMCA9IDc6MzAgcG0iDQogIG1lbnVfc2NoZWR1bGVbIm5hbWUiXSAgICAgICA9ICJ1cGRhdGUiOw0KICBtZW51X3NjaGVkdWxlWyJpZCJdICAgICAgICAgPSAidXBkYXRlIjsNCiAgbWVudV9zY2hlZHVsZVsidmFsdWUiXSAgICAgID0gbWVudV9pZFsibmFtZSJdOw0KICBtZW51X3NjaGVkdWxlWyJwbGFjZWhvbGRlciJdPSAidGltZSBvZiBkYXkgKDI0LWhvdXIgY2xvY2spIjsNCiAgbWVudV9zY2hlZHVsZVsib25jbGljayJdICAgID0gImphdmFzY3JpcHQ6IHRvZ2dsZU1lbnUodGhpcyk7IjsNCiAgbWVudV9zY2hlZHVsZVsiY2xhc3MiXSAgICAgID0gIm1lbnUtbm90QWN0aXZlIjsNCg0KICB2YXIgbWVudV9maWxlc1VwZGF0ZSA9IG5ldyBPYmplY3QoKTsNCiAgbWVudV9maWxlc1VwZGF0ZVsiX2VsZW1lbnQiXSA9ICJMSSI7DQogIG1lbnVfZmlsZXNVcGRhdGVbIl9tZW51VHlwZSJdICAgICA9ICJjaGVja2JveCI7DQogIG1lbnVfZmlsZXNVcGRhdGVbIl9jb25maWdLZXkiXSAgICA9ICJmaWxlcy51cGRhdGUiOw0KICBtZW51X2ZpbGVzVXBkYXRlWyJfbGFiZWwiXSAgICAgICAgPSAiVXBkYXRlIHRoZSBwcm92aWRlciBmaWxlcyBhdCBzeXN0ZW0gc3RhcnR1cCI7DQogIG1lbnVfZmlsZXNVcGRhdGVbIl9oZWFkbGluZSJdICAgICA9ICJVcGRhdGUgdGhlIHByb3ZpZGVyIGZpbGVzIGF0IHN5c3RlbSBzdGFydHVwIjsNCiAgbWVudV9maWxlc1VwZGF0ZVsiX3VzYWdlIl0gICAgICAgID0gIlBsYXlsaXN0cyBhbmQgWE1MVFYgZmlsZXMgYXJlIHVwZGF0ZWQgYnkgeFRlVmUgYXQgc3lzdGVtIHN0YXJ0dXAuIg0KICBtZW51X2ZpbGVzVXBkYXRlWyJuYW1lIl0gICAgICAgICAgPSAiZmlsZXMudXBkYXRlIjsNCiAgbWVudV9maWxlc1VwZGF0ZVsiaWQiXSAgICAgICAgICAgID0gImZpbGVzLnVwZGF0ZSI7DQogIG1lbnVfZmlsZXNVcGRhdGVbInZhbHVlIl0gICAgICAgICA9IG1lbnVfZmlsZXNVcGRhdGVbIm5hbWUiXTsNCiAgbWVudV9maWxlc1VwZGF0ZVsib25jbGljayJdICAgICAgID0gImphdmFzY3JpcHQ6IHRvZ2dsZU1lbnUodGhpcyk7IjsNCiAgbWVudV9maWxlc1VwZGF0ZVsiY2xhc3MiXSAgICAgICAgID0gIm1lbnUtbm90QWN0aXZlIjsNCiAgDQogIHZhciBtZW51X3R1bmVyID0gbmV3IE9iamVjdCgpOw0KICBtZW51X3R1bmVyWyJfZWxlbWVudCJdICAgICAgPSAiTEkiOw0KICBtZW51X3R1bmVyWyJfbWVudVR5cGUiXSAgICAgPSAic2VsZWN0IjsNCiAgbWVudV90dW5lclsiX2NvbmZpZ0tleSJdICAgID0gInR1bmVyIjsNCiAgbWVudV90dW5lclsiX2xhYmVsIl0gICAgICAgID0gIkF2YWlsYWJsZSB0dW5lcnMiOw0KICBtZW51X3R1bmVyWyJfdGV4dCJdICAgICAgICAgPSAiVHVuZXIiOw0KICBtZW51X3R1bmVyWyJfaWNvbiJdICAgICAgICAgPSAiaW1nL3R1bmVyLnBuZyI7DQogIG1lbnVfdHVuZXJbIl9oZWFkbGluZSJdICAgICA9ICJOdW1iZXIgb2YgdHVuZXJzIjsNCiAgbWVudV90dW5lclsiX3VzYWdlIl0gICAgICAgID0gIlRoaXMgc2V0dGluZyBpcyBvbmx5IHVzZWQgYnkgUGxleCBhbmQgRW1ieS48YnI+VGhlIG51bWJlciBvZiBjb25jdXJyZW50IHN0cmVhbXMgYWxsb3dlZCBieSB0aGUgSVBUViBwcm92aWRlci48YnI+QWZ0ZXIgYSBjaGFuZ2UsIHhUZVZlIG11c3QgYmUgZGVsZXRlIGluIHRoZSBQTVMgRFZSIHNldHRpbmdzIGFuZCBzZXQgdXAgYWdhaW4uIg0KICBtZW51X3R1bmVyWyJuYW1lIl0gICAgICAgICAgPSAidHVuZXIiOw0KICBtZW51X3R1bmVyWyJpZCJdICAgICAgICAgICAgPSAidHVuZXIiOw0KICBtZW51X3R1bmVyWyJ2YWx1ZSJdICAgICAgICAgPSBtZW51X3R1bmVyWyJuYW1lIl07DQogIG1lbnVfdHVuZXJbInBsYWNlaG9sZGVyIl0gICA9ICJOdW1iZXIgb2YgdHVuZXJzIjsNCiAgbWVudV90dW5lclsib25jbGljayJdICAgICAgID0gImphdmFzY3JpcHQ6IHRvZ2dsZU1lbnUodGhpcyk7IjsNCiAgbWVudV90dW5lclsiY2xhc3MiXSAgICAgICAgID0gIm1lbnUtbm90QWN0aXZlIjsNCg0KICB2YXIgb3B0aW9uVmFsdWVzID0gbmV3IEFycmF5KCk7DQogIGZvciAodmFyIGkgPSAxOyBpIDw9IDEwMDsgaSsrKSB7DQogICAgb3B0aW9uVmFsdWVzLnB1c2goaSkNCiAgfQ0KICBtZW51X3R1bmVyWyJfb3B0aW9uVmFsdWVzIl0gPSBvcHRpb25WYWx1ZXM7DQogIA0KICB2YXIgbWVudV9lcGcgPSBuZXcgT2JqZWN0KCk7DQogIG1lbnVfZXBnWyJfZWxlbWVudCJdID0gIkxJIjsNCiAgbWVudV9lcGdbIl9tZW51VHlwZSJdICAgICA9ICJzZWxlY3QiOw0KICBtZW51X2VwZ1siX2NvbmZpZ0tleSJdICAgID0gImVwZ1NvdXJjZSI7DQogIG1lbnVfZXBnWyJfbGFiZWwiXSAgICAgICAgPSAiU2VsZWN0aW9uIG9mIHRoZSBFUEcgc291cmNlIjsNCiAgbWVudV9lcGdbIl90ZXh0Il0gICAgICAgICA9ICJFUEcgc291cmNlIjsNCiAgbWVudV9lcGdbIl9oZWFkbGluZSJdICAgICA9ICJTZWxlY3Rpb24gb2YgdGhlIEVQRyBzb3VyY2UiOw0KICBtZW51X2VwZ1siX3VzYWdlIl0gICAgICAgID0gIlBNUzogICBVc2UgRVBHIGRhdGEgZnJvbSBQbGV4IG9yIEVtYnkuPGJyPlhFUEc6ICBVc2Ugb2YgZXh0ZXJuYWwgRVBHIGRhdGEgKFhNTFRWKS48YnI+ICAgICAgIFNldmVyYWwgWE1MVFYgc291cmNlcyBwb3NzaWJsZS48YnI+ICAgICAgIEFsbG93cyBlZGl0aW5nIGFuZCBvcmRlciBjaGFubmVscy48YnI+ICAgICAgIE0zVSAvIFhNTFRWIGV4cG9ydCAoSFRUUCBsaW5rIGZvciBJUFRWIGFwcHMpLiINCiAgbWVudV9lcGdbIm5hbWUiXSAgICAgICAgICA9ICJlcGdTb3VyY2UiOw0KICBtZW51X2VwZ1siaWQiXSAgICAgICAgICAgID0gImVwZ1NvdXJjZSI7DQogIG1lbnVfZXBnWyJ2YWx1ZSJdICAgICAgICAgPSBtZW51X2VwZ1sibmFtZSJdOw0KICBtZW51X2VwZ1sicGxhY2Vob2xkZXIiXSAgID0gIkVQRyBzb3VyY2UiOw0KICBtZW51X2VwZ1sib25jbGljayJdICAgICAgID0gImphdmFzY3JpcHQ6IHRvZ2dsZU1lbnUodGhpcyk7IjsNCiAgbWVudV9lcGdbImNsYXNzIl0gICAgICAgICA9ICJtZW51LW5vdEFjdGl2ZSI7DQogIG1lbnVfZXBnWyJfb3B0aW9uVmFsdWVzIl0gPSBuZXcgQXJyYXkoIlBNUyIsICJYRVBHIik7DQoNCiAgdmFyIG1lbnVfeGVwZyA9IG5ldyBPYmplY3QoKTsNCiAgbWVudV94ZXBnWyJfZWxlbWVudCJdID0gIkxJIjsNCiAgbWVudV94ZXBnWyJfbWVudVR5cGUiXSAgICAgPSAiY2hlY2tib3giOw0KICBtZW51X3hlcGdbIl9jb25maWdLZXkiXSAgICA9ICJ4dGV2ZUF1dG9VcGRhdGUiOw0KICBtZW51X3hlcGdbIl9sYWJlbCJdICAgICAgICA9ICJBdXRvbWF0aWMgdXBkYXRlIG9mIHhUZVZlIjsNCiAgbWVudV94ZXBnWyJfaGVhZGxpbmUiXSAgICAgPSAiQXV0b21hdGljIHVwZGF0ZSBvZiB4VGVWZSI7DQogIG1lbnVfeGVwZ1siX3VzYWdlIl0gICAgICAgID0gIklmIGEgbmV3IHZlcnNpb24gb2YgeFRlVmUgaXMgYXZhaWxhYmxlLCBpdCB3aWxsIGJlIGF1dG9tYXRpY2FsbHkgaW5zdGFsbGVkLiINCiAgbWVudV94ZXBnWyJuYW1lIl0gICAgICAgICAgPSAieHRldmVBdXRvVXBkYXRlIjsNCiAgbWVudV94ZXBnWyJpZCJdICAgICAgICAgICAgPSAieHRldmVBdXRvVXBkYXRlIjsNCiAgbWVudV94ZXBnWyJ2YWx1ZSJdICAgICAgICAgPSBtZW51X3hlcGdbIm5hbWUiXTsNCiAgbWVudV94ZXBnWyJvbmNsaWNrIl0gICAgICAgPSAiamF2YXNjcmlwdDogdG9nZ2xlTWVudSh0aGlzKTsiOw0KICBtZW51X3hlcGdbImNsYXNzIl0gICAgICAgICA9ICJtZW51LW5vdEFjdGl2ZSI7DQoNCiAgdmFyIG1lbnVfYXV0b0JhY2t1cFBhdGggPSBuZXcgT2JqZWN0KCk7DQogIG1lbnVfYXV0b0JhY2t1cFBhdGhbIl9lbGVtZW50Il0gICA9ICJMSSI7DQogIG1lbnVfYXV0b0JhY2t1cFBhdGhbIl9tZW51VHlwZSJdICA9ICJzaW5nbGVJbnB1dCI7DQogIG1lbnVfYXV0b0JhY2t1cFBhdGhbIl9jb25maWdLZXkiXSA9ICJiYWNrdXAucGF0aCI7DQogIG1lbnVfYXV0b0JhY2t1cFBhdGhbIl9sYWJlbCJdICAgICA9ICJMb2NhdGlvbiBmb3IgYXV0b21hdGljIGJhY2t1cHMiOw0KICBtZW51X2F1dG9CYWNrdXBQYXRoWyJfaGVhZGxpbmUiXSAgPSAiTG9jYXRpb24gZm9yIGF1dG9tYXRpYyBiYWNrdXBzIjsNCiAgbWVudV9hdXRvQmFja3VwUGF0aFsiX3VzYWdlIl0gICAgID0gIkJlZm9yZSBhbnkgdXBkYXRlIG9mIHRoZSBwcm92aWRlciBkYXRhIGJ5IHRoZSBzY2hlZHVsZSwgeFRlVmUgY3JlYXRlcyBhIGJhY2t1cC4gVGhlIHBhdGggZm9yIHRoZSBhdXRvbWF0aWMgYmFja3VwcyBjYW4gYmUgY2hhbmdlZC4geFRlVmUgcmVxdWlyZXMgd3JpdGUgcGVybWlzc2lvbiBmb3IgdGhpcyBmb2xkZXIuIg0KICBtZW51X2F1dG9CYWNrdXBQYXRoWyJuYW1lIl0gICAgICAgPSAiYmFja3VwLnBhdGgiOw0KICBtZW51X2F1dG9CYWNrdXBQYXRoWyJpZCJdICAgICAgICAgPSAiYmFja3VwLnBhdGgiOw0KICBtZW51X2F1dG9CYWNrdXBQYXRoWyJ2YWx1ZSJdICAgICAgPSBtZW51X2F1dG9CYWNrdXBQYXRoWyJuYW1lIl07DQogIG1lbnVfYXV0b0JhY2t1cFBhdGhbIm9uY2xpY2siXSAgICA9ICJqYXZhc2NyaXB0OiB0b2dnbGVNZW51KHRoaXMpOyI7DQogIG1lbnVfYXV0b0JhY2t1cFBhdGhbImNsYXNzIl0gICAgICA9ICJtZW51LW5vdEFjdGl2ZSI7DQoNCiAgdmFyIG1lbnVfYXV0b0JhY2t1cEtlZXAgPSBuZXcgT2JqZWN0KCk7DQogIG1lbnVfYXV0b0JhY2t1cEtlZXBbIl9lbGVtZW50Il0gICA9ICJMSSI7DQogIG1lbnVfYXV0b0JhY2t1cEtlZXBbIl9tZW51VHlwZSJdICA9ICJzZWxlY3QiOw0KICBtZW51X2F1dG9CYWNrdXBLZWVwWyJfY29uZmlnS2V5Il0gPSAiYmFja3VwLmtlZXAiOw0KICBtZW51X2F1dG9CYWNrdXBLZWVwWyJfdGV4dCJdICAgICAgPSAiS2VlcCI7DQogIG1lbnVfYXV0b0JhY2t1cEtlZXBbIl9sYWJlbCJdICAgICA9ICJOdW1iZXIgb2YgYmFja3VwcyB0byBrZWVwIjsNCiAgbWVudV9hdXRvQmFja3VwS2VlcFsiX2hlYWRsaW5lIl0gID0gIk51bWJlciBvZiBiYWNrdXBzIHRvIGtlZXAiOw0KICBtZW51X2F1dG9CYWNrdXBLZWVwWyJfdXNhZ2UiXSAgICAgPSAiIg0KICBtZW51X2F1dG9CYWNrdXBLZWVwWyJuYW1lIl0gICAgICAgPSAiYmFja3VwLmtlZXAiOw0KICBtZW51X2F1dG9CYWNrdXBLZWVwWyJpZCJdICAgICAgICAgPSAiYmFja3VwLmtlZXAiOw0KICBtZW51X2F1dG9CYWNrdXBLZWVwWyJ2YWx1ZSJdICAgICAgPSBtZW51X2F1dG9CYWNrdXBLZWVwWyJuYW1lIl07DQogIG1lbnVfYXV0b0JhY2t1cEtlZXBbIm9uY2xpY2siXSAgICA9ICJqYXZhc2NyaXB0OiB0b2dnbGVNZW51KHRoaXMpOyI7DQogIG1lbnVfYXV0b0JhY2t1cEtlZXBbImNsYXNzIl0gICAgICA9ICJtZW51LW5vdEFjdGl2ZSI7DQoNCiAgdmFyIG9wdGlvblZhbHVlcyA9IG5ldyBBcnJheSg1LCAxMCwgMjAsIDMwLCA0MCwgNTApOw0KICBtZW51X2F1dG9CYWNrdXBLZWVwWyJfb3B0aW9uVmFsdWVzIl0gPSBvcHRpb25WYWx1ZXM7DQoNCg0KICB2YXIgbWVudV9idWZmZXIgPSBuZXcgT2JqZWN0KCk7DQogIG1lbnVfYnVmZmVyWyJfZWxlbWVudCJdID0gIkxJIjsNCiAgbWVudV9idWZmZXJbIl9tZW51VHlwZSJdICAgICA9ICJjaGVja2JveCI7DQogIG1lbnVfYnVmZmVyWyJfY29uZmlnS2V5Il0gICAgPSAiYnVmZmVyIjsNCiAgbWVudV9idWZmZXJbIl9sYWJlbCJdICAgICAgICA9ICJTdHJlYW0gYnVmZmVyaW5nIFtFeHBlcmltZW50YWxdIjsNCiAgbWVudV9idWZmZXJbIl9oZWFkbGluZSJdICAgICA9ICJTdHJlYW0gYnVmZmVyaW5nIFtFeHBlcmltZW50YWxdIjsNCiAgbWVudV9idWZmZXJbIl91c2FnZSJdICAgICAgICA9ICJXaXRoIGFjdGl2YXRlZCBidWZmZXIsIHN0cmVhbXMgY2FuIGJlIHBsYXllZCBhbmQgcmVjb3JkZWQgbW9yZSBmbHVlbnRseS48YnI+VGhlIHN0cmVhbSBpcyBwYXNzZWQgZnJvbSB4VGVWZSB0byBQbGV4IC8gRW1ieSINCiAgbWVudV9idWZmZXJbIm5hbWUiXSAgICAgICAgICA9ICJidWZmZXIiOw0KICBtZW51X2J1ZmZlclsiaWQiXSAgICAgICAgICAgID0gImJ1ZmZlciI7DQogIG1lbnVfYnVmZmVyWyJ2YWx1ZSJdICAgICAgICAgPSBtZW51X2J1ZmZlclsibmFtZSJdOw0KICBtZW51X2J1ZmZlclsib25jbGljayJdICAgICAgID0gImphdmFzY3JpcHQ6IHRvZ2dsZU1lbnUodGhpcyk7IjsNCiAgbWVudV9idWZmZXJbImNsYXNzIl0gICAgICAgICA9ICJtZW51LW5vdEFjdGl2ZSI7DQoNCiAgdmFyIG1lbnVfYXBpID0gbmV3IE9iamVjdCgpOw0KICBtZW51X2FwaVsiX2VsZW1lbnQiXSA9ICJMSSI7DQogIG1lbnVfYXBpWyJfbWVudVR5cGUiXSAgICAgPSAiY2hlY2tib3giOw0KICBtZW51X2FwaVsiX2NvbmZpZ0tleSJdICAgID0gImFwaSI7DQogIG1lbnVfYXBpWyJfbGFiZWwiXSAgICAgICAgPSAiQVBJIGludGVyZmFjZSI7DQogIG1lbnVfYXBpWyJfaGVhZGxpbmUiXSAgICAgPSAiQVBJIGludGVyZmFjZSI7DQogIG1lbnVfYXBpWyJfdXNhZ2UiXSAgICAgICAgPSAnVmlhIEFQSSBpbnRlcmZhY2UgaXQgaXMgcG9zc2libGUgdG8gc2VuZCBjb21tYW5kcyB0byB4VGVWZS4gQVBJIGRvY3VtZW50YXRpb24gaXMgYXZhaWxhYmxlIDxhIGhyZWY9Imh0dHBzOi8veHRldmUuZGU/c2Nyb2xsPWFwaSI+aGVyZTwvYT4gJw0KICAvL21lbnVfYXBpWyJfdXNhZ2UiXSAgICAgICAgPSAnVmlhIEFQSSBpbnRlcmZhY2UgaXQgaXMgcG9zc2libGUgdG8gc2VuZCBjb21tYW5kcyB0byB4VGVWZS4gQVBJIGRvY3VtZW50YXRpb24gaXMgYXZhaWxhYmxlIDxhIGhyZWY9Imh0dHA6Ly9sb2NhbGhvc3Q6MTMxMz9zY3JvbGw9YXBpIj5oZXJlPC9hPiAnDQogIG1lbnVfYXBpWyJuYW1lIl0gICAgICAgICAgPSAiYXBpIjsNCiAgbWVudV9hcGlbImlkIl0gICAgICAgICAgICA9ICJhcGkiOw0KICBtZW51X2FwaVsidmFsdWUiXSAgICAgICAgID0gbWVudV9hcGlbIm5hbWUiXTsNCiAgbWVudV9hcGlbIm9uY2xpY2siXSAgICAgICA9ICJqYXZhc2NyaXB0OiB0b2dnbGVNZW51KHRoaXMpOyI7DQogIG1lbnVfYXBpWyJjbGFzcyJdICAgICAgICAgPSAibWVudS1ub3RBY3RpdmUiOw0KDQogIHZhciBtZW51X2F1dGhlbnRpY2F0aW9uV2ViID0gbmV3IE9iamVjdCgpOw0KICBtZW51X2F1dGhlbnRpY2F0aW9uV2ViWyJfZWxlbWVudCJdID0gIkxJIjsNCiAgbWVudV9hdXRoZW50aWNhdGlvbldlYlsiX21lbnVUeXBlIl0gICAgID0gImNoZWNrYm94IjsNCiAgbWVudV9hdXRoZW50aWNhdGlvbldlYlsiX2NvbmZpZ0tleSJdICAgID0gImF1dGhlbnRpY2F0aW9uLndlYiI7DQogIG1lbnVfYXV0aGVudGljYXRpb25XZWJbIl9sYWJlbCJdICAgICAgICA9ICJVc2VyIGF1dGhlbnRpY2F0aW9uIjsNCiAgbWVudV9hdXRoZW50aWNhdGlvbldlYlsiX2hlYWRsaW5lIl0gICAgID0gIlVzZXIgYXV0aGVudGljYXRpb24iOw0KICBtZW51X2F1dGhlbnRpY2F0aW9uV2ViWyJfdXNhZ2UiXSAgICAgICAgPSAiQWNjZXNzIHRvIHhUZVZlIHJlcXVpcmVzIGF1dGhlbnRpY2F0aW9uLiINCiAgbWVudV9hdXRoZW50aWNhdGlvbldlYlsibmFtZSJdICAgICAgICAgID0gImF1dGhlbnRpY2F0aW9uLndlYiI7DQogIG1lbnVfYXV0aGVudGljYXRpb25XZWJbImlkIl0gICAgICAgICAgICA9ICJhdXRoZW50aWNhdGlvbi53ZWIiOw0KICBtZW51X2F1dGhlbnRpY2F0aW9uV2ViWyJ2YWx1ZSJdICAgICAgICAgPSBtZW51X2F1dGhlbnRpY2F0aW9uV2ViWyJuYW1lIl07DQogIG1lbnVfYXV0aGVudGljYXRpb25XZWJbIm9uY2xpY2siXSAgICAgICA9ICJqYXZhc2NyaXB0OiB0b2dnbGVNZW51KHRoaXMpOyI7DQogIG1lbnVfYXV0aGVudGljYXRpb25XZWJbImNsYXNzIl0gICAgICAgICA9ICJtZW51LW5vdEFjdGl2ZSI7DQogIA0KICB2YXIgbWVudV9hdXRoZW50aWNhdGlvblBtcyA9IG5ldyBPYmplY3QoKTsNCiAgbWVudV9hdXRoZW50aWNhdGlvblBtc1siX2VsZW1lbnQiXSA9ICJMSSI7DQogIG1lbnVfYXV0aGVudGljYXRpb25QbXNbIl9tZW51VHlwZSJdICAgICA9ICJjaGVja2JveCI7DQogIG1lbnVfYXV0aGVudGljYXRpb25QbXNbIl9jb25maWdLZXkiXSAgICA9ICJhdXRoZW50aWNhdGlvbi5wbXMiOw0KICBtZW51X2F1dGhlbnRpY2F0aW9uUG1zWyJfbGFiZWwiXSAgICAgICAgPSAiUGxleCBhdXRoZW50aWNhdGlvbi4iOw0KICBtZW51X2F1dGhlbnRpY2F0aW9uUG1zWyJfaGVhZGxpbmUiXSAgICAgPSAiUGxleCBhdXRoZW50aWNhdGlvbi4iOw0KICBtZW51X2F1dGhlbnRpY2F0aW9uUG1zWyJfdXNhZ2UiXSAgICAgICAgPSAiUGxleCByZXF1ZXN0cyBhcmUgb25seSBwb3NzaWJsZSB3aXRoIGF1dGhlbnRpY2F0aW9uLjxicj5XYXJuaW5nISEhIEFmdGVyIGFjdGl2YXRpbmcgdGhpcyBmdW5jdGlvbiB4VGVWZSBtdXN0IGJlIGRlbGV0ZSBpbiB0aGUgUE1TIERWUiBzZXR0aW5ncyBhbmQgc2V0IHVwIGFnYWluLiINCiAgbWVudV9hdXRoZW50aWNhdGlvblBtc1sibmFtZSJdICAgICAgICAgID0gImF1dGhlbnRpY2F0aW9uLnBtcyI7DQogIG1lbnVfYXV0aGVudGljYXRpb25QbXNbImlkIl0gICAgICAgICAgICA9ICJhdXRoZW50aWNhdGlvbi5wbXMiOw0KICBtZW51X2F1dGhlbnRpY2F0aW9uUG1zWyJ2YWx1ZSJdICAgICAgICAgPSBtZW51X2F1dGhlbnRpY2F0aW9uUG1zWyJuYW1lIl07DQogIG1lbnVfYXV0aGVudGljYXRpb25QbXNbIm9uY2xpY2siXSAgICAgICA9ICJqYXZhc2NyaXB0OiB0b2dnbGVNZW51KHRoaXMpOyI7DQogIG1lbnVfYXV0aGVudGljYXRpb25QbXNbImNsYXNzIl0gICAgICAgICA9ICJtZW51LW5vdEFjdGl2ZSI7DQogIA0KICB2YXIgbWVudV9hdXRoZW50aWNhdGlvbk0zdSA9IG5ldyBPYmplY3QoKTsNCiAgbWVudV9hdXRoZW50aWNhdGlvbk0zdVsiX2VsZW1lbnQiXSA9ICJMSSI7DQogIG1lbnVfYXV0aGVudGljYXRpb25NM3VbIl9tZW51VHlwZSJdICAgICA9ICJjaGVja2JveCI7DQogIG1lbnVfYXV0aGVudGljYXRpb25NM3VbIl9jb25maWdLZXkiXSAgICA9ICJhdXRoZW50aWNhdGlvbi5tM3UiOw0KICBtZW51X2F1dGhlbnRpY2F0aW9uTTN1WyJfbGFiZWwiXSAgICAgICAgPSAiTTNVIGF1dGhlbnRpY2F0aW9uLiI7DQogIG1lbnVfYXV0aGVudGljYXRpb25NM3VbIl9oZWFkbGluZSJdICAgICA9ICJNM1UgYXV0aGVudGljYXRpb24uIjsNCiAgbWVudV9hdXRoZW50aWNhdGlvbk0zdVsiX3VzYWdlIl0gICAgICAgID0gIkRvd25sb2FkaW5nIHRoZSBNM1UgZmlsZSB2aWEgYW4gSFRUUCByZXF1ZXN0IGlzIG9ubHkgcG9zc2libGUgd2l0aCBhdXRoZW50aWNhdGlvbi4iDQogIG1lbnVfYXV0aGVudGljYXRpb25NM3VbIm5hbWUiXSAgICAgICAgICA9ICJhdXRoZW50aWNhdGlvbi5tM3UiOw0KICBtZW51X2F1dGhlbnRpY2F0aW9uTTN1WyJpZCJdICAgICAgICAgICAgPSAiYXV0aGVudGljYXRpb24ubTN1IjsNCiAgbWVudV9hdXRoZW50aWNhdGlvbk0zdVsidmFsdWUiXSAgICAgICAgID0gbWVudV9hdXRoZW50aWNhdGlvbk0zdVsibmFtZSJdOw0KICBtZW51X2F1dGhlbnRpY2F0aW9uTTN1WyJvbmNsaWNrIl0gICAgICAgPSAiamF2YXNjcmlwdDogdG9nZ2xlTWVudSh0aGlzKTsiOw0KICBtZW51X2F1dGhlbnRpY2F0aW9uTTN1WyJjbGFzcyJdICAgICAgICAgPSAibWVudS1ub3RBY3RpdmUiOw0KICANCg0KICB2YXIgbWVudV9hdXRoZW50aWNhdGlvblhtbCA9IG5ldyBPYmplY3QoKTsNCiAgbWVudV9hdXRoZW50aWNhdGlvblhtbFsiX2VsZW1lbnQiXSA9ICJMSSI7DQogIG1lbnVfYXV0aGVudGljYXRpb25YbWxbIl9tZW51VHlwZSJdICAgICA9ICJjaGVja2JveCI7DQogIG1lbnVfYXV0aGVudGljYXRpb25YbWxbIl9jb25maWdLZXkiXSAgICA9ICJhdXRoZW50aWNhdGlvbi54bWwiOw0KICBtZW51X2F1dGhlbnRpY2F0aW9uWG1sWyJfbGFiZWwiXSAgICAgICAgPSAiWEVQRyBhdXRoZW50aWNhdGlvbiI7DQogIG1lbnVfYXV0aGVudGljYXRpb25YbWxbIl9oZWFkbGluZSJdICAgICA9ICJYRVBHIGF1dGhlbnRpY2F0aW9uIjsNCiAgbWVudV9hdXRoZW50aWNhdGlvblhtbFsiX3VzYWdlIl0gICAgICAgID0gIkRvd25sb2FkaW5nIHRoZSBYRVBHIChYTUxUVikgZmlsZSB2aWEgYW4gSFRUUCByZXF1ZXN0IGlzIG9ubHkgcG9zc2libGUgd2l0aCBhdXRoZW50aWNhdGlvbi4iDQogIG1lbnVfYXV0aGVudGljYXRpb25YbWxbIm5hbWUiXSAgICAgICAgICA9ICJhdXRoZW50aWNhdGlvbi54bWwiOw0KICBtZW51X2F1dGhlbnRpY2F0aW9uWG1sWyJpZCJdICAgICAgICAgICAgPSAiYXV0aGVudGljYXRpb24ueG1sIjsNCiAgbWVudV9hdXRoZW50aWNhdGlvblhtbFsidmFsdWUiXSAgICAgICAgID0gbWVudV9hdXRoZW50aWNhdGlvblhtbFsibmFtZSJdOw0KICBtZW51X2F1dGhlbnRpY2F0aW9uWG1sWyJvbmNsaWNrIl0gICAgICAgPSAiamF2YXNjcmlwdDogdG9nZ2xlTWVudSh0aGlzKTsiOw0KICBtZW51X2F1dGhlbnRpY2F0aW9uWG1sWyJjbGFzcyJdICAgICAgICAgPSAibWVudS1ub3RBY3RpdmUiOw0KDQogIHZhciBtZW51X2F1dGhlbnRpY2F0aW9uQXBpID0gbmV3IE9iamVjdCgpOw0KICBtZW51X2F1dGhlbnRpY2F0aW9uQXBpWyJfZWxlbWVudCJdID0gIkxJIjsNCiAgbWVudV9hdXRoZW50aWNhdGlvbkFwaVsiX21lbnVUeXBlIl0gICAgID0gImNoZWNrYm94IjsNCiAgbWVudV9hdXRoZW50aWNhdGlvbkFwaVsiX2NvbmZpZ0tleSJdICAgID0gImF1dGhlbnRpY2F0aW9uLmFwaSI7DQogIG1lbnVfYXV0aGVudGljYXRpb25BcGlbIl9sYWJlbCJdICAgICAgICA9ICJBUEkgYXV0aGVudGljYXRpb24iOw0KICBtZW51X2F1dGhlbnRpY2F0aW9uQXBpWyJfaGVhZGxpbmUiXSAgICAgPSAiQVBJIGF1dGhlbnRpY2F0aW9uIjsNCiAgbWVudV9hdXRoZW50aWNhdGlvbkFwaVsiX3VzYWdlIl0gICAgICAgID0gIkFjY2VzcyB0byB0aGUgQVBJIGludGVyZmFjZSBpcyBvbmx5IHBvc3NpYmxlIHdpdGggYXV0aGVudGljYXRpb24uIg0KICBtZW51X2F1dGhlbnRpY2F0aW9uQXBpWyJuYW1lIl0gICAgICAgICAgPSAiYXV0aGVudGljYXRpb24uYXBpIjsNCiAgbWVudV9hdXRoZW50aWNhdGlvbkFwaVsiaWQiXSAgICAgICAgICAgID0gImF1dGhlbnRpY2F0aW9uLmFwaSI7DQogIG1lbnVfYXV0aGVudGljYXRpb25BcGlbInZhbHVlIl0gICAgICAgICA9IG1lbnVfYXV0aGVudGljYXRpb25BcGlbIm5hbWUiXTsNCiAgbWVudV9hdXRoZW50aWNhdGlvbkFwaVsib25jbGljayJdICAgICAgID0gImphdmFzY3JpcHQ6IHRvZ2dsZU1lbnUodGhpcyk7IjsNCiAgbWVudV9hdXRoZW50aWNhdGlvbkFwaVsiY2xhc3MiXSAgICAgICAgID0gIm1lbnUtbm90QWN0aXZlIjsNCiAgDQogIA0KICAvLyBNYWluIG1lbnUNCiAgbWVudVsxMF0gPSBtZW51X20zdTsNCg0KICBzd2l0Y2goY29uZmlnWyJlcGdTb3VyY2UiXSkgew0KICAgIGNhc2UgIlBNUyI6DQogICAgICBtZW51WzIwXSA9IG1lbnVfaWQ7DQogICAgICBicmVhazsNCiAgICANCiAgICBjYXNlICJYTUxUViI6DQogICAgICBtZW51WzQwXSA9IG1lbnVfeG1sdHY7DQogICAgICBicmVhazsNCg0KICAgIGNhc2UgIlhFUEciOg0KICAgICAgbWVudVs0MF0gPSBtZW51X3htbHR2Ow0KICAgICAgbWVudVs1MF0gPSBtZW51X21hcHBpbmc7DQogICAgICBicmVhazsNCiAgfQ0KICANCiAgbWVudVszMF0gPSBtZW51X2ZpbHRlcjsNCiAgDQogIGlmIChjb25maWdbImF1dGhlbnRpY2F0aW9uLndlYiJdID09IHRydWUpIHsNCiAgICBtZW51WzYwXSA9IG1lbnVfdXNlcnM7DQogIH0NCg0KICBtZW51WzcwXSA9IG1lbnVfc2V0dGluZ3M7DQogIG1lbnVbODBdID0gbWVudV9sb2c7DQogIGlmIChjb25maWdbImF1dGhlbnRpY2F0aW9uLndlYiJdID09IHRydWUpIHsNCiAgICBtZW51WzEwMF0gPSBtZW51X2xvZ291dDsNCiAgfSANCiAgDQoNCiAgLy8gU3ViLU1lbnUNCg0KICBzdWJNZW51WzcwMV0gPSBtZW51X3NjaGVkdWxlOw0KICBzdWJNZW51WzcwMl0gPSBtZW51X2ZpbGVzVXBkYXRlOw0KICBzdWJNZW51WzcwM10gPSBtZW51X3R1bmVyOw0KICBzdWJNZW51WzcwNF0gPSBtZW51X2VwZzsNCiAgc3ViTWVudVs3MDVdID0gbWVudV94ZXBnOw0KICBzdWJNZW51WzcwNl0gPSBtZW51X2F1dG9CYWNrdXBQYXRoOw0KICBzdWJNZW51WzcwN10gPSBtZW51X2F1dG9CYWNrdXBLZWVwOw0KICBzdWJNZW51WzcwOF0gPSBtZW51X2J1ZmZlcjsNCiAgDQogIHN1Yk1lbnVbNzEwXSA9IG1lbnVfYXV0aGVudGljYXRpb25XZWI7DQogIA0KICBpZiAoY29uZmlnWyJhdXRoZW50aWNhdGlvbi53ZWIiXSA9PSB0cnVlKSB7DQogICAgc3ViTWVudVs3MTFdID0gbWVudV9hdXRoZW50aWNhdGlvblBtczsNCiAgICBzdWJNZW51WzcxMl0gPSBtZW51X2F1dGhlbnRpY2F0aW9uTTN1Ow0KICAgIHN1Yk1lbnVbNzEzXSA9IG1lbnVfYXV0aGVudGljYXRpb25YbWw7DQogICAgc3ViTWVudVs3MTRdID0gbWVudV9hdXRoZW50aWNhdGlvbkFwaTsNCiAgfQ0KDQogIHN1Yk1lbnVbNzk5XSA9IG1lbnVfYXBpOw0KDQogIA0KDQogIHJldHVybg0KfQ0KDQpmdW5jdGlvbiBjcmVhdGVNZW51KCkgew0KDQogIHNob3dFbGVtZW50KCJwb3B1cCIsIGZhbHNlKTsNCg0KICAvL2NvbnNvbGUubG9nKGNvbmZpZyk7DQogIHNldE1lbnVJdGVtKCk7DQogIHZhciBtZW51SXRlbXMgPSBnZXRPYmpLZXlzKG1lbnUpDQogIHZhciBuYXYgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgiTkFWIilbMF07DQogIG5hdi5pbm5lckhUTUwgPSAiIjsNCiAgdmFyIG5ld0l0ZW0gPSBuZXcgT2JqZWN0KCk7DQoNCiAgZm9yICh2YXIgaSA9IDA7IGkgPCBtZW51SXRlbXMubGVuZ3RoOyBpKyspIHsNCg0KICAgIA0KICAgIHZhciBuZXdJdGVtID0gbWVudVttZW51SXRlbXNbaV1dOw0KICAgIG5ld0l0ZW1bImlkIl0gPSBtZW51SXRlbXNbaV07DQoNCiAgICANCiAgICBzd2l0Y2gobmV3SXRlbS5oYXNPd25Qcm9wZXJ0eSgiX2ljb24iKSkgew0KICAgICAgY2FzZSB0cnVlOiANCiAgICAgICAgdmFyIGl0ZW1UZXh0ID0gbmV3SXRlbVsiX3RleHQiXTsNCiAgICAgICAgZGVsZXRlIG5ld0l0ZW1bIl90ZXh0Il0NCiAgICAgICAgbmF2LmFwcGVuZENoaWxkKGNyZWF0ZUVsZW1lbnQobmV3SXRlbSkpOw0KICAgICAgICBuZXdJdGVtWyJfdGV4dCJdID0gaXRlbVRleHQ7DQogICAgICAgIHZhciBuZXdJY29uID0gbmV3IE9iamVjdCgpOw0KICAgICAgICBuZXdJY29uWyJfZWxlbWVudCJdID0gIklNRyI7DQogICAgICAgIG5ld0ljb25bInNyYyJdID0gbmV3SXRlbVsiX2ljb24iXTsNCg0KICAgICAgICB2YXIgY3VycmVudEVsZW1lbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChtZW51SXRlbXNbaV0pOw0KICAgICAgICBjdXJyZW50RWxlbWVudC5hcHBlbmRDaGlsZChjcmVhdGVFbGVtZW50KG5ld0ljb24pKTsNCg0KDQogICAgICAgIHZhciB0ZXh0ID0gbmV3IE9iamVjdCgpOw0KICAgICAgICB0ZXh0WyJfZWxlbWVudCJdID0gIlAiDQogICAgICAgIHRleHRbIl90ZXh0Il0gPSBpdGVtVGV4dDsNCiAgICAgICAgdGV4dFsiY2xhc3MiXSA9ICJuYXYtdGV4dCINCiAgICAgICAgY3VycmVudEVsZW1lbnQuYXBwZW5kQ2hpbGQoY3JlYXRlRWxlbWVudCh0ZXh0KSk7DQogICAgICAgIGJyZWFrOw0KDQogICAgICBkZWZhdWx0Og0KICAgICAgICBuYXYuYXBwZW5kQ2hpbGQoY3JlYXRlRWxlbWVudChuZXdJY29uKSk7DQogICAgICAgIGJyZWFrOw0KICAgIH0NCg0KICB9DQogIGlmIChhY3RpdmVNZW51ICE9IHVuZGVmaW5lZCkgew0KICAgIC8vY29uc29sZS5sb2coYWN0aXZlTWVudSk7DQogICAgdG9nZ2xlTWVudShhY3RpdmVNZW51KTsNCiAgfQ0KDQogIHJldHVybg0KfQ0KDQpmdW5jdGlvbiB0b2dnbGVNZW51KGVsbSkgew0KICAvL3Nob3dTdHJlYW1zKGZhbHNlKTsNCiAgY2xlYXJJbnRlcnZhbChsb2dJbnRlcnZhbCkNCiAgYWN0aXZlTWVudSA9IGVsbTsNCiAgdmFyIGl0ZW0gPSBtZW51W2VsbS5pZF0NCiAgdmFyIGRpdiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzZXR0aW5ncyIpOw0KICBkaXYuaW5uZXJIVE1MID0gIiI7DQogIA0KICAvLyBTZXQgSGVhZGxpbmUNCiAgdmFyIGhlYWRsaW5lID0gbmV3IE9iamVjdCgpOw0KICBoZWFkbGluZVsiX2VsZW1lbnQiXSA9ICJINCI7DQogIGhlYWRsaW5lWyJfdGV4dCJdID0gaXRlbVsiX2hlYWRsaW5lIl07DQogIGRpdi5hcHBlbmRDaGlsZChjcmVhdGVFbGVtZW50KGhlYWRsaW5lKSk7DQoNCiAgLy8gU3ViLU1lbnUNCiAgaWYgKGl0ZW0uaGFzT3duUHJvcGVydHkoIl9zdWJNZW51IikgPT0gdHJ1ZSkgew0KICAgIG9wZW5TdWJNZW51KGl0ZW0pOw0KICAgIHJldHVybg0KICB9DQoNCiAgLy8gTWFwcGluZywgVXNlcnMsIExvZywgRmlsZXMNCiAgc3dpdGNoKGl0ZW1bIl9jb25maWdLZXkiXSkgew0KICAgIGNhc2UgIm1hcHBpbmciOiAgICAgb3Blbk1hcHBpbmdFZGl0b3IoaXRlbSk7IHJldHVybjsgYnJlYWs7DQogICAgY2FzZSAidXNlcnMiOiAgICAgICBvcGVuVXNlcnMoaXRlbSk7IHJldHVybjsgYnJlYWs7DQogICAgY2FzZSAibG9nIjogICAgICAgICBzaG93TG9nKGl0ZW0pOyByZXR1cm47IGJyZWFrOw0KICAgIGNhc2UgImZpbGVzLm0zdSI6ICAgb3BlbkZpbGVzKGl0ZW0sICJtM3UiKTsgcmV0dXJuOyBicmVhazsNCiAgICBjYXNlICJmaWxlcy54bWx0diI6IG9wZW5GaWxlcyhpdGVtLCAieG1sdHYiKTsgcmV0dXJuOyBicmVhazsNCg0KICAgIGNhc2UgImZpbHRlciI6ICAgICAgc2hvd1N0cmVhbXModHJ1ZSk7IGJyZWFrOw0KICB9DQoNCiANCg0KICB2YXIgbmV3SFIgPSBuZXcgT2JqZWN0KCk7DQogIG5ld0hSWyJfZWxlbWVudCJdID0gIkhSIg0KICBkaXYuYXBwZW5kQ2hpbGQoY3JlYXRlRWxlbWVudChuZXdIUikpOw0KICANCiAgdmFyIG5ld0VudHJ5ID0gbmV3IE9iamVjdCgpOw0KICBuZXdFbnRyeVsiX2VsZW1lbnQiXSAgPSAiSU5QVVQiOw0KICBuZXdFbnRyeVsidHlwZSJdID0gImJ1dHRvbiI7DQogIC8vbmV3RW50cnlbImNsYXNzIl0gPSAic2F2ZSI7DQogIG5ld0VudHJ5WyJ2YWx1ZSJdID0gIlNhdmUiOw0KICBuZXdFbnRyeVsib25jbGljayJdID0gInNhdmVEYXRhMignc2V0dGluZ3MnKSINCiAgZGl2LmFwcGVuZENoaWxkKGNyZWF0ZUVsZW1lbnQobmV3RW50cnkpKTsNCg0KDQogIHZhciBuZXdXcmFwcGVyID0gbmV3IE9iamVjdCgpOw0KICBuZXdXcmFwcGVyWyJfZWxlbWVudCJdICA9ICJESVYiOw0KICBuZXdXcmFwcGVyWyJpZCJdICAgICAgICA9ICJib3gtd3JhcHBlciI7DQogIGRpdi5hcHBlbmRDaGlsZChjcmVhdGVFbGVtZW50KG5ld1dyYXBwZXIpKTsNCg0KICBkaXYgPSBkaXYubGFzdENoaWxkOw0KICANCiAgZGl2LmFwcGVuZENoaWxkKGNyZWF0ZU1lbnVJdGVtKGl0ZW0pKQ0KDQogIC8vIHVzYWdlIEluZm8gIA0KICBzd2l0Y2gobWVudVthY3RpdmVNZW51LmlkXS5oYXNPd25Qcm9wZXJ0eSgiX3VzYWdlIikpIHsNCiAgICBjYXNlIHRydWU6IA0KICAgICAgdmFyIHVzYWdlSXRlbSA9IG5ldyBPYmplY3QoKTsNCiAgICAgIHVzYWdlSXRlbVsiX2VsZW1lbnQiXSA9ICJQUkUiDQogICAgICB1c2FnZUl0ZW1bIl90ZXh0Il0gICAgPSBtZW51W2FjdGl2ZU1lbnUuaWRdWyJfdXNhZ2UiXTsNCiAgICAgIGRpdi5hcHBlbmRDaGlsZChjcmVhdGVFbGVtZW50KHVzYWdlSXRlbSkpOw0KICB9DQogIA0KICBjYWxjdWxhdGVXcmFwcGVySGVpZ2h0KCk7DQoNCn0NCg0KZnVuY3Rpb24gY3JlYXRlTWVudUl0ZW0oaXRlbSkgew0KICB2YXIgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIkRJViIpOw0KICBzd2l0Y2goaXRlbVsiX21lbnVUeXBlIl0pIHsNCiAgICBjYXNlICJpbnB1dEFycmF5IjoNCiAgICAgIGlmIChjb25maWcuaGFzT3duUHJvcGVydHkoaXRlbVsiX2NvbmZpZ0tleSJdKSA9PSB0cnVlKSB7DQogICAgICAgIHZhciB2YWx1ZSA9IGNvbmZpZ1tpdGVtWyJfY29uZmlnS2V5Il1dOw0KICAgICAgfSBlbHNlIHsNCiAgICAgICAgdmFyIHZhbHVlID0gbmV3IEFycmF5KCk7DQogICAgICB9DQogICAgICANCiAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdmFsdWUubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgdmFyIG5ld0VudHJ5ID0gbmV3IE9iamVjdCgpOw0KICAgICAgICBuZXdFbnRyeSA9IGl0ZW0NCiAgICAgICAgZGVsZXRlIG5ld0VudHJ5WyJvbmNsaWNrIl07DQogICAgICAgIG5ld0VudHJ5WyJfZWxlbWVudCJdICA9ICJJTlBVVCI7DQogICAgICAgIG5ld0VudHJ5WyJ2YWx1ZSJdICAgICA9IHZhbHVlW2ldOw0KICAgICAgICBuZXdFbnRyeVsidHlwZSJdICAgICAgPSAic2VhcmNoIjsNCiAgICAgICAgbmV3RW50cnlbImRhdGEtbWVudXR5cGUiXSA9IGl0ZW1bIl9tZW51VHlwZSJdOw0KICAgICAgICBuZXdFbnRyeVsiZGF0YS1tZW51a2V5Il0gPSBpdGVtWyJfY29uZmlnS2V5Il07DQogICAgICAgIGVsZW1lbnQuYXBwZW5kQ2hpbGQoY3JlYXRlRWxlbWVudChuZXdFbnRyeSkpOw0KDQogICAgICB9DQogICAgICAvLyBOZXcgZW50cnkgZm9yIGFycmF5DQogICAgICB2YXIgbmV3RW50cnkgPSBuZXcgT2JqZWN0KCk7DQogICAgICBuZXdFbnRyeVsiX2VsZW1lbnQiXSAgICAgID0gIklOUFVUIjsNCiAgICAgIG5ld0VudHJ5WyJ0eXBlIl0gICAgICAgICAgPSAic2VhcmNoIjsNCiAgICAgIG5ld0VudHJ5WyJuYW1lIl0gICAgICAgICAgPSBpdGVtWyJuYW1lIl07DQogICAgICBuZXdFbnRyeVsicGxhY2Vob2xkZXIiXSAgID0gaXRlbVsicGxhY2Vob2xkZXIiXTsNCiAgICAgIG5ld0VudHJ5WyJ2YWx1ZSJdICAgICAgICAgPSAiIjsNCiAgICAgIG5ld0VudHJ5WyJkYXRhLW1lbnV0eXBlIl0gPSBpdGVtWyJfbWVudVR5cGUiXTsNCiAgICAgIG5ld0VudHJ5WyJkYXRhLW1lbnVrZXkiXSAgPSBpdGVtWyJfY29uZmlnS2V5Il07DQogICAgICBlbGVtZW50LmFwcGVuZENoaWxkKGNyZWF0ZUVsZW1lbnQobmV3RW50cnkpKTsNCiAgICAgIGJyZWFrOw0KICANCiAgICBjYXNlICJzaW5nbGVJbnB1dCI6DQogICAgICB2YXIgdmFsdWUgPSBjb25maWdbaXRlbVsiX2NvbmZpZ0tleSJdXTsNCiAgICAgIGlmICh2YWx1ZSA9PSB1bmRlZmluZWQpIHsNCiAgICAgICAgdmFsdWUgPSAiIjsNCiAgICAgIH0NCiAgICAgIHZhciBuZXdFbnRyeSA9IG5ldyBPYmplY3QoKTsNCiAgICAgIG5ld0VudHJ5ID0gaXRlbTsNCiAgICAgIGRlbGV0ZSBuZXdFbnRyeVsib25jbGljayJdOw0KICAgICAgbmV3RW50cnlbIl9lbGVtZW50Il0gID0gIklOUFVUIjsNCiAgICAgIG5ld0VudHJ5WyJ2YWx1ZSJdICAgICA9IHZhbHVlOw0KICAgICAgbmV3RW50cnlbInR5cGUiXSAgICAgID0gInNlYXJjaCI7DQogICAgICBuZXdFbnRyeVsiZGF0YS1tZW51dHlwZSJdID0gaXRlbVsiX21lbnVUeXBlIl07DQogICAgICBuZXdFbnRyeVsiZGF0YS1tZW51a2V5Il0gPSBpdGVtWyJfY29uZmlnS2V5Il07DQogICAgICBlbGVtZW50LmFwcGVuZENoaWxkKGNyZWF0ZUVsZW1lbnQobmV3RW50cnkpKTsNCiAgICAgIGJyZWFrOw0KDQogICAgY2FzZSAiY2hlY2tib3giOg0KICAgICAgdmFyIHZhbHVlID0gY29uZmlnW2l0ZW1bIl9jb25maWdLZXkiXV07DQogICAgICBpZiAodmFsdWUgPT0gdW5kZWZpbmVkKSB7DQogICAgICAgIHZhbHVlID0gZmFsc2U7DQogICAgICB9DQogICAgICB2YXIgbmV3RW50cnkgPSBuZXcgT2JqZWN0KCk7DQogICAgICBuZXdFbnRyeSA9IGl0ZW07DQogICAgICBkZWxldGUgbmV3RW50cnlbIm9uY2xpY2siXTsNCiAgICAgIG5ld0VudHJ5WyJfZWxlbWVudCJdICA9ICJJTlBVVCI7DQogICAgICBuZXdFbnRyeVsidmFsdWUiXSAgICAgPSB2YWx1ZTsNCiAgICAgIG5ld0VudHJ5WyJ0eXBlIl0gICAgICA9ICJjaGVja2JveCI7DQogICAgICBuZXdFbnRyeVsiZGF0YS1tZW51dHlwZSJdID0gaXRlbVsiX21lbnVUeXBlIl07DQogICAgICBuZXdFbnRyeVsiZGF0YS1tZW51a2V5Il0gPSBpdGVtWyJfY29uZmlnS2V5Il07DQogICAgICBlbGVtZW50LmFwcGVuZENoaWxkKGNyZWF0ZUVsZW1lbnQobmV3RW50cnkpKTsNCiAgICAgIGVsZW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIklOUFVUIilbMF0uY2hlY2tlZCA9IHZhbHVlOw0KICAgICAgYnJlYWs7DQogICAgDQogICAgY2FzZSAic2VsZWN0IjoNCiAgICAgIHZhciB2YWx1ZSA9IGNvbmZpZ1tpdGVtWyJfY29uZmlnS2V5Il1dOw0KICAgICAgdmFyIG5ld0VudHJ5ID0gbmV3IE9iamVjdCgpOw0KICAgICAgbmV3RW50cnkgPSBpdGVtOw0KICAgICAgZGVsZXRlIG5ld0VudHJ5WyJvbmNsaWNrIl0NCiAgICAgIG5ld0VudHJ5WyJfZWxlbWVudCJdICA9ICJTRUxFQ1QiOw0KICAgICAgZWxlbWVudC5hcHBlbmRDaGlsZChjcmVhdGVFbGVtZW50KG5ld0VudHJ5KSk7DQogICAgICB2YXIgc2VsZWN0RWxlbWVudCA9IGVsZW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlNFTEVDVCIpWzBdOw0KICAgICAgdmFyIHZhbHVlcyA9IGl0ZW1bIl9vcHRpb25WYWx1ZXMiXTsNCiAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdmFsdWVzLmxlbmd0aDsgaSsrKSB7DQogICAgICAgIHZhciBuZXdFbnRyeSA9IG5ldyBPYmplY3Q7DQogICAgICAgIG5ld0VudHJ5WyJfZWxlbWVudCJdICA9ICJPUFRJT04iOw0KICAgICAgICBuZXdFbnRyeVsiX3RleHQiXSAgICAgPSBpdGVtWyJfdGV4dCJdICsgIjogIiArIHZhbHVlc1tpXTsNCiAgICAgICAgbmV3RW50cnlbInZhbHVlIl0gICAgID0gdmFsdWVzW2ldOw0KICAgICAgICBzZWxlY3RFbGVtZW50LmFwcGVuZENoaWxkKGNyZWF0ZUVsZW1lbnQobmV3RW50cnkpKTsNCiAgICAgIH0NCiAgICAgIHNlbGVjdEVsZW1lbnQudmFsdWUgPSB2YWx1ZTsNCiAgICAgIGJyZWFrOw0KICAgIA0KICB9DQogIHJldHVybiBlbGVtZW50Ow0KfQ0KDQpmdW5jdGlvbiBvcGVuU3ViTWVudShpdGVtKSB7DQogIHZhciBlbnRyeXMgPSBpdGVtWyJfc3ViTWVudSJdLnNwbGl0KCIsIik7DQogIHZhciBkaXYgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic2V0dGluZ3MiKTsNCg0KICB2YXIgbmV3SFIgPSBuZXcgT2JqZWN0KCk7DQogIG5ld0hSWyJfZWxlbWVudCJdID0gIkhSIg0KICBkaXYuYXBwZW5kQ2hpbGQoY3JlYXRlRWxlbWVudChuZXdIUikpOw0KICANCiAgdmFyIG5ld0VudHJ5ID0gbmV3IE9iamVjdCgpOw0KICBuZXdFbnRyeVsiX2VsZW1lbnQiXSAgPSAiSU5QVVQiOw0KICBuZXdFbnRyeVsidHlwZSJdID0gImJ1dHRvbiI7DQogIC8vbmV3RW50cnlbImNsYXNzIl0gPSAic2F2ZSI7DQogIG5ld0VudHJ5WyJ2YWx1ZSJdID0gIlNhdmUiOw0KICBuZXdFbnRyeVsib25jbGljayJdID0gInNhdmVEYXRhMignc2V0dGluZ3MnKSINCiAgZGl2LmFwcGVuZENoaWxkKGNyZWF0ZUVsZW1lbnQobmV3RW50cnkpKTsNCg0KICBpZiAoaXRlbVsiX2NvbmZpZ0tleSJdID09ICJzZXR0aW5ncyIpIHsNCiAgICB2YXIgbmV3RW50cnkgPSBuZXcgT2JqZWN0KCk7DQogICAgbmV3RW50cnlbIl9lbGVtZW50Il0gID0gIklOUFVUIjsNCiAgICBuZXdFbnRyeVsidHlwZSJdID0gImJ1dHRvbiI7DQogICAgLy9uZXdFbnRyeVsiY2xhc3MiXSA9ICJzYXZlIjsNCiAgICBuZXdFbnRyeVsidmFsdWUiXSA9ICJCYWNrdXAiOw0KICAgIG5ld0VudHJ5WyJvbmNsaWNrIl0gPSAieHRldmVCYWNrdXAoKSINCiAgICBkaXYuYXBwZW5kQ2hpbGQoY3JlYXRlRWxlbWVudChuZXdFbnRyeSkpOw0KICB9DQoNCiAgaWYgKGl0ZW1bIl9jb25maWdLZXkiXSA9PSAic2V0dGluZ3MiKSB7DQogICAgdmFyIG5ld0VudHJ5ID0gbmV3IE9iamVjdCgpOw0KICAgIG5ld0VudHJ5WyJfZWxlbWVudCJdICA9ICJJTlBVVCI7DQogICAgbmV3RW50cnlbInR5cGUiXSA9ICJidXR0b24iOw0KICAgIC8vbmV3RW50cnlbImNsYXNzIl0gPSAic2F2ZSI7DQogICAgbmV3RW50cnlbInZhbHVlIl0gPSAiUmVzdG9yZSI7DQogICAgbmV3RW50cnlbIm9uY2xpY2siXSA9ICJ4dGV2ZVJlc3RvcmUodGhpcykiDQogICAgZGl2LmFwcGVuZENoaWxkKGNyZWF0ZUVsZW1lbnQobmV3RW50cnkpKTsNCiAgfQ0KDQoNCiAgdmFyIG5ld1dyYXBwZXIgPSBuZXcgT2JqZWN0KCk7DQogIG5ld1dyYXBwZXJbIl9lbGVtZW50Il0gID0gIkRJViI7DQogIG5ld1dyYXBwZXJbImlkIl0gICAgICAgID0gImJveC13cmFwcGVyIjsNCiAgZGl2LmFwcGVuZENoaWxkKGNyZWF0ZUVsZW1lbnQobmV3V3JhcHBlcikpOw0KICANCiAgZGl2ID0gZGl2Lmxhc3RDaGlsZDsNCiAgDQoNCiAgZm9yICh2YXIgaSA9IDA7IGkgPCBlbnRyeXMubGVuZ3RoOyBpKyspIHsNCiAgICB2YXIgaXRlbSA9IHN1Yk1lbnVbZW50cnlzW2ldXTsNCiAgICBpZiAoaXRlbSA9PSB1bmRlZmluZWQpIHsNCiAgICAgIGJyZWFrOw0KICAgIH0NCiAgICANCiAgICB2YXIgY29udGFpbmVyID0gbmV3IE9iamVjdCgpOw0KICAgIGNvbnRhaW5lclsiX2VsZW1lbnQiXSA9ICJESVYiOw0KICAgIGRpdi5hcHBlbmRDaGlsZChjcmVhdGVFbGVtZW50KGNvbnRhaW5lcikpOw0KDQogICAgdmFyIGRpdkNvbnRhaW5lciA9IGRpdi5sYXN0Q2hpbGQ7DQogICAgDQogICAgdmFyIGhlYWRsaW5lID0gbmV3IE9iamVjdCgpOw0KICAgIGhlYWRsaW5lWyJfZWxlbWVudCJdID0gIkg1IjsNCiAgICBoZWFkbGluZVsiX3RleHQiXSA9IGl0ZW1bIl9oZWFkbGluZSJdOw0KICAgIGRpdkNvbnRhaW5lci5hcHBlbmRDaGlsZChjcmVhdGVFbGVtZW50KGhlYWRsaW5lKSk7DQoNCiAgICBkaXZDb250YWluZXIuYXBwZW5kQ2hpbGQoY3JlYXRlTWVudUl0ZW0oaXRlbSkpDQoNCiAgICBzd2l0Y2goaXRlbS5oYXNPd25Qcm9wZXJ0eSgiX3VzYWdlIikpIHsNCiAgICAgIGNhc2UgdHJ1ZTogDQogICAgICAgIHZhciB1c2FnZUl0ZW0gPSBuZXcgT2JqZWN0KCk7DQogICAgICAgIHVzYWdlSXRlbVsiX2VsZW1lbnQiXSA9ICJQUkUiDQogICAgICAgIHVzYWdlSXRlbVsiX3RleHQiXSAgICA9IGl0ZW1bIl91c2FnZSJdOw0KICAgICAgICBkaXZDb250YWluZXIuYXBwZW5kQ2hpbGQoY3JlYXRlRWxlbWVudCh1c2FnZUl0ZW0pKTsNCiAgICB9DQoNCiAgICB2YXIgaHIgPSBuZXcgT2JqZWN0KCk7DQogICAgaHJbIl9lbGVtZW50Il0gPSAiSFIiOw0KICAgIGRpdkNvbnRhaW5lci5hcHBlbmRDaGlsZChjcmVhdGVFbGVtZW50KGhyKSk7DQogIA0KICB9DQoNCiAgY2FsY3VsYXRlV3JhcHBlckhlaWdodCgpOw0KICByZXR1cm4NCn0NCg0KZnVuY3Rpb24gc2F2ZURhdGEyKGVsbSkgew0KICB2YXIgZGl2ICAgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChlbG0pOw0KICB2YXIgaW5wdXRzID0gZGl2LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJJTlBVVCIpOw0KICB2YXIgc2VsZWN0cyA9IGRpdi5nZXRFbGVtZW50c0J5VGFnTmFtZSgiU0VMRUNUIik7DQogIHZhciB2YWx1ZSwgY29uZmlnS2V5Ow0KICB2YXIgZGF0YSA9IG5ldyBPYmplY3QoKTsNCiAgdmFyIHZhbHVlQXJyID0gbmV3IEFycmF5KCk7DQogIHZhciBuZXdEYXRhID0gZmFsc2U7DQogIA0KICBmb3IgKHZhciBpID0gMDsgaSA8IGlucHV0cy5sZW5ndGg7IGkrKykgew0KICAgIGlmIChpbnB1dHNbaV0udHlwZSAhPSAiYnV0dG9uIikgew0KICAgICAgdmFyIG1lbnVUeXBlID0gaW5wdXRzW2ldLmdldEF0dHJpYnV0ZSgiZGF0YS1tZW51dHlwZSIpOw0KICAgICAgDQogICAgICAvL2NvbnNvbGUubG9nKG1lbnVUeXBlKTsNCiAgICAgIHN3aXRjaChtZW51VHlwZSkgew0KICAgICAgICBjYXNlICJzaW5nbGVJbnB1dCI6DQogICAgICAgICAgdmFsdWUgPSBpbnB1dHNbaV0udmFsdWU7DQogICAgICAgICAgaWYgKHZhbHVlID09ICIiIHx8IHZhbHVlID09IHVuZGVmaW5lZCkgew0KICAgICAgICAgICAgZGF0YSA9IG5ldyBPYmplY3QoKTsNCiAgICAgICAgICAgIGRhdGFbImRlbGV0ZSJdID0gaW5wdXRzW2ldLm5hbWUNCiAgICAgICAgICAgIG5ld0RhdGEgPSB0cnVlOw0KICAgICAgICAgIH0gZWxzZSB7DQogICAgICAgICAgICBuZXdEYXRhID0gdHJ1ZTsNCiAgICAgICAgICAgIGRhdGFbaW5wdXRzW2ldLm5hbWVdID0gdmFsdWU7DQogICAgICAgICAgICBjb25zb2xlLmxvZyhkYXRhKTsNCiAgICAgICAgICB9DQogICAgICAgICAgYnJlYWs7DQogICAgICAgIGNhc2UgImlucHV0QXJyYXkiOiANCiAgICAgICAgICB2YWx1ZSA9IGlucHV0c1tpXS52YWx1ZTsNCiAgICAgICAgICBpZiAodmFsdWUgIT0gIiIgJiYgdmFsdWUgIT0gdW5kZWZpbmVkKSB7DQogICAgICAgICAgICBuZXdEYXRhID0gdHJ1ZTsNCiAgICAgICAgICAgIHZhbHVlQXJyLnB1c2godmFsdWUpDQogICAgICAgICAgICBkYXRhW2lucHV0c1tpXS5uYW1lXSA9IHZhbHVlQXJyOw0KICAgICAgICAgICAgY29uZmlnS2V5ID0gaW5wdXRzW2ldLm5hbWU7DQogICAgICAgICAgfSANCiAgICAgICAgICANCiAgICAgICAgICBicmVhazsNCg0KICAgICAgICBjYXNlICJjaGVja2JveCI6DQogICAgICAgICAgdmFsdWUgPSBpbnB1dHNbaV0uY2hlY2tlZA0KICAgICAgICAgIGRhdGFbaW5wdXRzW2ldLm5hbWVdID0gdmFsdWU7DQogICAgICB9DQogICAgICANCiAgICB9DQogICAgDQogIH0NCg0KDQogIC8vIERlbGV0ZSBjb25maWcga2V5DQogIGlmICh2YWx1ZUFyci5sZW5ndGggPT0gMCAmJiBuZXdEYXRhID09IGZhbHNlKSB7DQogICAgbmV3RGF0YSA9IHRydWU7DQogICAgZGF0YSA9IG5ldyBPYmplY3QoKTsNCiAgICBkYXRhWyJkZWxldGUiXSA9IGNvbmZpZ0tleTsNCiAgfSANCg0KDQogIGZvciAodmFyIGkgPSAwOyBpIDwgc2VsZWN0cy5sZW5ndGg7IGkrKykgew0KICAgIHZhciB2YWx1ZSA9IHNlbGVjdHNbaV0ub3B0aW9uc1tzZWxlY3RzW2ldLnNlbGVjdGVkSW5kZXhdLnZhbHVlOw0KICAgIHN3aXRjaChpc05hTih2YWx1ZSkpIHsNCiAgICAgIGNhc2UgZmFsc2U6IHZhbHVlID0gcGFyc2VJbnQodmFsdWUpOyBicmVhazsNCiAgICB9DQoNCiAgICBkYXRhW3NlbGVjdHNbaV0ubmFtZV0gPSB2YWx1ZTsNCiAgICBuZXdEYXRhID0gdHJ1ZTsNCiAgfQ0KDQogIC8vY29uc29sZS5sb2coZGF0YSwgbmV3RGF0YSk7DQoNCiAgaWYgKG5ld0RhdGEgPT0gdHJ1ZSkgew0KICAgIGRhdGFbImNtZCJdID0gInNhdmVDb25maWciOw0KICAgIGlmICghZGF0YS5oYXNPd25Qcm9wZXJ0eSgnZmlsdGVyJykpIHsNCiAgICAgIGRhdGFbImZpbHRlciJdID0gY29uZmlnWyJmaWx0ZXIiXQ0KICAgIH0NCiAgICB2YXIgc2V0dGluZ3MgPSBuZXcgT2JqZWN0KCk7DQogICAgc2V0dGluZ3NbImNtZCJdID0gZGF0YVsiY21kIl07DQogICAgc2V0dGluZ3NbInNldHRpbmdzIl0gPSBkYXRhOw0KICAgIGNvbnNvbGUubG9nKHNldHRpbmdzKTsNCiAgICB4VGVWZShzZXR0aW5ncyk7DQogIH0NCn0NCg==" - webUI["html/lang/en.json"] = "ew0KICAibWFpbk1lbnUiOg0KICB7DQogICAgIml0ZW0iOg0KICAgIHsNCiAgICAgICJwbGF5bGlzdCI6ICJQbGF5bGlzdCIsDQogICAgICAicG1zSUQiOiAiUE1TIElEIiwNCiAgICAgICJmaWx0ZXIiOiAiRmlsdGVyIiwNCiAgICAgICJ4bWx0diI6ICJYTUxUViIsDQogICAgICAibWFwcGluZyI6ICJNYXBwaW5nIiwNCiAgICAgICJ1c2VycyI6ICJVc2VycyIsDQogICAgICAic2V0dGluZ3MiOiAiU2V0dGluZ3MiLA0KICAgICAgImxvZyI6ICJMb2ciLA0KICAgICAgImxvZ291dCI6ICJMb2dvdXQiDQogICAgfSwNCiAgICAiaGVhZGxpbmUiOg0KICAgIHsNCiAgICAgICJwbGF5bGlzdCI6ICJMb2NhbCBvciByZW1vdGUgcGxheWxpc3RzIiwNCiAgICAgICJmaWx0ZXIiOiAiRmlsdGVyIHBsYXlsaXN0IiwNCiAgICAgICJ4bWx0diI6ICJMb2NhbCBvciByZW1vdGUgWE1MVFYgZmlsZXMiLA0KICAgICAgIm1hcHBpbmciOiAiTWFwIHBsYXlsaXN0IGNoYW5uZWxzIHRvIEVQRyBjaGFubmVscyIsDQogICAgICAidXNlcnMiOiAiVXNlciBtYW5hZ2VtZW50IiwNCiAgICAgICJzZXR0aW5ncyI6ICJTZXR0aW5ncyIsDQogICAgICAibG9nIjogIkxvZyIsDQogICAgICAibG9nb3V0IjogIkxvZ291dCINCiAgICB9DQogIH0sDQogICJjb25maXJtIjoNCiAgew0KICAgICJyZXN0b3JlIjogIkFsbCBkYXRhIHdpbGwgYmUgcmVwbGFjZWQgd2l0aCB0aG9zZSBmcm9tIHRoZSBiYWNrdXAuIFNob3VsZCB0aGUgZmlsZXMgYmUgcmVzdG9yZWQ/Ig0KICB9LA0KICAiYWxlcnQiOg0KICB7DQogICAgImZpbGVMb2FkaW5nRXJyb3IiOiAiRmlsZSBjb3VsZG4ndCBiZSBsb2FkZWQiLA0KICAgICJpbnZhbGlkQ2hhbm5lbE51bWJlciI6ICJJbnZhbGlkIGNoYW5uZWwgbnVtYmVyIiwNCiAgICAibWlzc2luZ0lucHV0IjogIk1pc3NpbmcgaW5wdXQiDQogIH0sDQogICJidXR0b24iOg0KICB7DQogICAgImJhY2siOiAiQmFjayIsDQogICAgImJhY2t1cCI6ICJCYWNrdXAiLA0KICAgICJidWxrRWRpdCI6ICJCdWxrIEVkaXQiLA0KICAgICJjYW5jZWwiOiAiQ2FuY2VsIiwNCiAgICAiZGVsZXRlIjogIkRlbGV0ZSIsDQogICAgImRvbmUiOiAiRG9uZSIsDQogICAgImxvZ2luIjogIkxvZ2luIiwNCiAgICAibmV3IjogIk5ldyIsDQogICAgIm5leHQiOiAiTmV4dCIsDQogICAgInJlc3RvcmUiOiAiUmVzdG9yZSIsDQogICAgInNhdmUiOiAiU2F2ZSIsDQogICAgInNlYXJjaCI6ICJTZWFyY2giLA0KICAgICJ1cGRhdGUiOiAiVXBkYXRlIiwNCiAgICAiY3JhZXRlQWNjb3VudCI6ICJDcmVhdGUgQWNjb3VudCIsDQogICAgInJlc2V0TG9ncyI6ICJSZXNldCBMb2dzIiwNCiAgICAidXBsb2FkTG9nbyI6ICJVcGxvYWQgTG9nbyINCiAgfSwNCiAgImZpbHRlciI6DQogIHsNCiAgICAidGFibGUiOg0KICAgIHsNCiAgICAgICJuYW1lIjogIkZpbHRlciBOYW1lIiwNCiAgICAgICJ0eXBlIjogIkZpbHRlciBUeXBlIiwNCiAgICAgICJmaWx0ZXIiOiAiRmlsdGVyIg0KICAgIH0sDQogICAgImN1c3RvbSI6ICJDdXN0b20iLA0KICAgICJncm91cCI6ICJNM1UgR3JvdXAiLA0KICAgICJuYW1lIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiRmlsdGVyIE5hbWUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIkZpbHRlciBuYW1lIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAiZGVzY3JpcHRpb24iOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJEZXNjcmlwdGlvbiIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiRGVzY3JpcHRpb24iLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJ0eXBlIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiVHlwZSIsDQogICAgICAiZ3JvdXBUaXRsZSI6ICJHcm91cCBUaXRsZSIsDQogICAgICAiY3VzdG9tRmlsdGVyIjogIkN1c3RvbSBGaWx0ZXIiDQogICAgfSwNCiAgICAiY2FzZVNlbnNpdGl2ZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIkNhc2UgU2Vuc2l0aXZlIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJmaWx0ZXJSdWxlIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiRmlsdGVyIFJ1bGUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIlNwb3J0IHtIRH0gIXtFUyxJVH0iLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJmaWx0ZXJHcm91cCI6DQogICAgew0KICAgICAgInRpdGxlIjogIkdyb3VwIFRpdGxlIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIlNlbGVjdCBhIE0zVSBncm91cC4gKENvdW50ZXIpPGJyPkNoYW5naW5nIHRoZSBncm91cCB0aXRsZSBpbiB0aGUgTTNVIGludmFsaWRhdGVzIHRoZSBmaWx0ZXIuIg0KICAgIH0sDQogICAgImluY2x1ZGUiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJJbmNsdWRlIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJGSEQsVUhEIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJDaGFubmVsIG5hbWUgbXVzdCBpbmNsdWRlLjxicj4oQ29tbWEgc2VwYXJhdGVkKSBDb21tYSBtZWFucyBvciINCiAgICB9LA0KICAgICJleGNsdWRlIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiRXhjbHVkZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiRVMsSVQiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIkNoYW5uZWwgbmFtZSBtdXN0IG5vdCBjb250YWluLjxicj4oQ29tbWEgc2VwYXJhdGVkKSBDb21tYSBtZWFucyBvciINCiAgICB9LA0KICAgICJwcmVzZXJ2ZU1hcHBpbmciOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJQcmVzZXJ2ZSBFeGlzdGluZyBNM1U8YnI+Q2hhbm5lbCBOdW1iZXJzIiwNCiAgICAgICJwYWxjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIlByZXNlcnZlIGV4aXN0aW5nIE0zVSBwbGF5bGlzdCBjaGFubmVsIG51bWJlcnM/Ig0KICAgIH0sDQogICAgInN0YXJ0aW5nQ2hhbm5lbCI6DQogICAgew0KICAgICAgInRpdGxlIjogIlN0YXJ0aW5nIENoYW5uZWwgTnVtYmVyIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJkZWZhdWx0TWlzc2luZ0VQRyI6DQogICAgew0KICAgICAgInRpdGxlIjogIkZpbGwgTWlzc2luZyBFUEcgRGF0YSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJXaGVuIHRoZXJlIGlzIG5vIG1hdGNoaW5nIEVQRyBkYXRhIGZvciBjaGFubmVsLCA8YnI+YXV0b2ZpbGwgd2l0aCB4VGVWZSBkdW1teSBFUEcgZGF0YT8iDQogICAgfQ0KDQogIH0sDQogICJwbGF5bGlzdCI6DQogIHsNCiAgICAidGFibGUiOg0KICAgIHsNCiAgICAgICJwbGF5bGlzdCI6ICJQbGF5bGlzdCIsDQogICAgICAidHVuZXIiOiAiVHVuZXIiLA0KICAgICAgImxhc3RVcGRhdGUiOiAiTGFzdCBVcGRhdGUiLA0KICAgICAgImF2YWlsYWJpbGl0eSI6ICJBdmFpbGFiaWxpdHkiLA0KICAgICAgInR5cGUiOiAiVHlwZSIsDQogICAgICAic3RyZWFtcyI6ICJTdHJlYW1zIiwNCiAgICAgICJncm91cFRpdGxlIjogImdyb3VwLXRpdGxlIiwNCiAgICAgICJ0dmdJRCI6ICJ0dmctaWQiLA0KICAgICAgInVuaXF1ZUlEIjogIlVuaXF1ZSBJRCINCiAgICB9LA0KICAgICJwbGF5bGlzdFR5cGUiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJQbGF5bGlzdCB0eXBlIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJ0eXBlIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiVHlwZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAibmFtZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIk5hbWUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIlBsYXlsaXN0IG5hbWUiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJkZXNjcmlwdGlvbiI6DQogICAgew0KICAgICAgInRpdGxlIjogIkRlc2NyaXB0aW9uIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJEZXNjcmlwdGlvbiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgImZpbGVNM1UiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJNM1UgRmlsZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiRmlsZSBwYXRoIG9yIFVSTCBvZiB0aGUgTTNVIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAiZmlsZUhESFIiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJIREhvbWVSdW4gSVAiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIklQIGFkZHJlc3MgYW5kIHBvcnQgKDE5Mi4xNjguMS4xMDo1MDA0KSIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgInR1bmVyIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiVHVuZXIgLyBTdHJlYW1zIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIk51bWJlciBvZiBwYXJhbGxlbCBjb25uZWN0aW9ucyB0aGF0IGNhbiBiZSBlc3RhYmxpc2hlZCB0byB0aGUgcHJvdmlkZXIuIDxicj5Pbmx5IGF2YWlsYWJsZSB3aXRoIGFjdGl2YXRlZCBidWZmZXIuPGJyPk5ldyBzZXR0aW5ncyB3aWxsIG9ubHkgYmUgYXBwbGllZCBhZnRlciBxdWl0dGluZyBhbGwgc3RyZWFtcy4iDQogICAgfQ0KICB9LA0KICAieG1sdHYiOg0KICB7DQogICAgInRhYmxlIjoNCiAgICB7DQogICAgICAiZ3VpZGUiOiAiR3VpZGUiLA0KICAgICAgImxhc3RVcGRhdGUiOiAiTGFzdCBVcGRhdGUiLA0KICAgICAgImF2YWlsYWJpbGl0eSI6ICJBdmFpbGFiaWxpdHkiLA0KICAgICAgImNoYW5uZWxzIjogIkNoYW5uZWxzIiwNCiAgICAgICJwcm9ncmFtcyI6ICJQcm9ncmFtcyINCiAgICB9LA0KICAgICJuYW1lIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiTmFtZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiR3VpZGUgbmFtZSIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgImRlc2NyaXB0aW9uIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiRGVzY3JpcHRpb24iLA0KICAgICAgInBsYWNlaG9sZGVyIjogIkRlc2NyaXB0aW9uIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAiZmlsZVhNTFRWIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiWE1MVFYgRmlsZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiRmlsZSBwYXRoIG9yIFVSTCBvZiB0aGUgWE1MVFYiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9DQogIH0sDQogICJtYXBwaW5nIjoNCiAgew0KICAgICJ0YWJsZSI6DQogICAgew0KICAgICAgImNoTm8iOiAiQ2guIE5vLiIsDQogICAgICAibG9nbyI6ICJMb2dvIiwNCiAgICAgICJjaGFubmVsTmFtZSI6ICJDaGFubmVsIE5hbWUiLA0KICAgICAgInBsYXlsaXN0IjogIlBsYXlsaXN0IiwNCiAgICAgICJncm91cFRpdGxlIjogIkdyb3VwIFRpdGxlIiwNCiAgICAgICJ4bWx0dkZpbGUiOiAiWE1MVFYgRmlsZSIsDQogICAgICAieG1sdHZJRCI6ICJYTUxUViBJRCIsDQogICAgICAidGltZXNoaWZ0IjogIlRpbWVzaGlmdCINCiAgICB9LA0KICAgICJhY3RpdmUiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJBY3RpdmUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgImNoYW5uZWxOYW1lIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiQ2hhbm5lbCBOYW1lIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJkZXNjcmlwdGlvbiI6DQogICAgew0KICAgICAgInRpdGxlIjogIkNoYW5uZWwgRGVzY3JpcHRpb24iLA0KICAgICAgInBsYWNlaG9sZGVyIjogIlVzZWQgYnkgdGhlIER1bW15IGFzIGFuIFhNTCBkZXNjcmlwdGlvbiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgInVwZGF0ZUNoYW5uZWxOYW1lIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiVXBkYXRlIENoYW5uZWwgTmFtZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAiY2hhbm5lbExvZ28iOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJMb2dvIFVSTCIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAidXBkYXRlQ2hhbm5lbExvZ28iOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJVcGRhdGUgQ2hhbm5lbCBMb2dvIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJlcGdDYXRlZ29yeSI6DQogICAgew0KICAgICAgInRpdGxlIjogIkVQRyBDYXRlZ29yeSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAibTN1R3JvdXBUaXRsZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIkdyb3VwIFRpdGxlICh4dGV2ZS5tM3UpIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJ4bWx0dkZpbGUiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJYTUxUViBGaWxlIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJ4bWx0dkNoYW5uZWwiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJYTUxUViBDaGFubmVsIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJ0aW1lc2hpZnQiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJUaW1lc2hpZnQiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIjAiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9DQogIH0sDQogICJ1c2VycyI6DQogIHsNCiAgICAidGFibGUiOg0KICAgIHsNCiAgICAgICJ1c2VybmFtZSI6ICJVc2VybmFtZSIsDQogICAgICAicGFzc3dvcmQiOiAiUGFzc3dvcmQiLA0KICAgICAgIndlYiI6ICJXRUIiLA0KICAgICAgInBtcyI6ICJQTVMiLA0KICAgICAgIm0zdSI6ICJNM1UiLA0KICAgICAgInhtbCI6ICJYTUwiLA0KICAgICAgImFwaSI6ICJBUEkiDQogICAgfSwNCiAgICAidXNlcm5hbWUiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJVc2VybmFtZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiVXNlcm5hbWUiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJwYXNzd29yZCI6DQogICAgew0KICAgICAgInRpdGxlIjogIlBhc3N3b3JkIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJQYXNzd29yZCIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgImNvbmZpcm0iOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJDb25maXJtIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJQYXNzd29yZCBjb25maXJtIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAid2ViIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiV2ViIEFjY2VzcyIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAicG1zIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiUE1TIEFjY2VzcyIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAibTN1IjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiTTNVIEFjY2VzcyIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAieG1sIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiWE1MIEFjY2VzcyIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAiYXBpIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiQVBJIEFjY2VzcyIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfQ0KICB9LA0KICAic2V0dGluZ3MiOg0KICB7DQogICAgImNhdGVnb3J5IjoNCiAgICB7DQogICAgICAiZ2VuZXJhbCI6ICJHZW5lcmFsIiwNCiAgICAgICJmaWxlcyI6ICJGaWxlcyIsDQogICAgICAic3RyZWFtaW5nIjogIlN0cmVhbWluZyIsDQogICAgICAiYmFja3VwIjogIkJhY2t1cCIsDQogICAgICAiYXV0aGVudGljYXRpb24iOiAiQXV0aGVudGljYXRpb24iDQogICAgfSwNCiAgICAidXBkYXRlIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiU2NoZWR1bGUgZm9yIHVwZGF0aW5nIChQbGF5bGlzdCwgWE1MVFYsIEJhY2t1cCkiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIjAwMDAsMTAwMCwyMDAwIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJUaW1lIGluIDI0IGhvdXIgZm9ybWF0ICgwODAwID0gODowMCBhbSkuIE1vcmUgdGltZXMgY2FuIGJlIGVudGVyZWQgY29tbWEgc2VwYXJhdGVkLiBMZWF2ZSB0aGlzIGZpZWxkIGVtcHR5IGlmIG5vIHVwZGF0ZXMgYXJlIHRvIGJlIGNhcnJpZWQgb3V0LiINCiAgICB9LA0KICAgICJhcGkiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJBUEkgSW50ZXJmYWNlIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJWaWEgQVBJIGludGVyZmFjZSBpdCBpcyBwb3NzaWJsZSB0byBzZW5kIGNvbW1hbmRzIHRvIHhUZVZlLiBBUEkgZG9jdW1lbnRhdGlvbiBpcyA8YSBocmVmPSdodHRwczovL2dpdGh1Yi5jb20veHRldmUtcHJvamVjdC94VGVWZS1Eb2N1bWVudGF0aW9uL2Jsb2IvbWFzdGVyL2VuL2NvbmZpZ3VyYXRpb24ubWQjYXBpJz5oZXJlPC9hPiINCiAgICB9LA0KICAgICJlcGdTb3VyY2UiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJFUEcgU291cmNlIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJQTVM6PGJyPi0gVXNlIEVQRyBkYXRhIGZyb20gUGxleCBvciBFbWJ5IDxicj48YnI+WEVQRzo8YnI+LSBVc2Ugb2Ygb25lIG9yIG1vcmUgWE1MVFYgZmlsZXM8YnI+LSBDaGFubmVsIG1hbmFnZW1lbnQ8YnI+LSBNM1UgLyBYTUxUViBleHBvcnQgKEhUVFAgbGluayBmb3IgSVBUViBhcHBzKSINCiAgICB9LA0KICAgICJ0dW5lciI6DQogICAgew0KICAgICAgInRpdGxlIjogIk51bWJlciBvZiBUdW5lcnMiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIk51bWJlciBvZiBwYXJhbGxlbCBjb25uZWN0aW9ucyB0aGF0IGNhbiBiZSBlc3RhYmxpc2hlZCB0byB0aGUgcHJvdmlkZXIuPGJyPkF2YWlsYWJsZSBmb3I6IFBsZXgsIEVtYnkgKEhESFIpLCBNM1UgKHdpdGggYWN0aXZlIGJ1ZmZlcikuPGJyPkFmdGVyIGEgY2hhbmdlLCB4VGVWZSBtdXN0IGJlIGRlbGV0ZSBpbiB0aGUgUGxleCAvIEVtYnkgRFZSIHNldHRpbmdzIGFuZCBzZXQgdXAgYWdhaW4uIg0KICAgIH0sDQogICAgImZpbGVzVXBkYXRlIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiVXBkYXRlcyBhbGwgZmlsZXMgYXQgc3RhcnR1cCIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiVXBkYXRlcyBhbGwgcGxheWxpc3RzLCB0dW5lciBhbmQgWE1MVFYgZmlsZXMgYXQgc3RhcnR1cC4iDQogICAgfSwNCiAgICAiY2FjaGVJbWFnZXMiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJJbWFnZSBDYWNoaW5nIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJBbGwgaW1hZ2VzIGZyb20gdGhlIFhNTFRWIGZpbGUgYXJlIGNhY2hlZCwgYWxsb3dpbmcgZmFzdGVyIHJlbmRlcmluZyBvZiB0aGUgZ3JpZCBpbiB0aGUgY2xpZW50Ljxicj5Eb3dubG9hZGluZyB0aGUgaW1hZ2VzIG1heSB0YWtlIGEgd2hpbGUgYW5kIHdpbGwgYmUgZG9uZSBpbiB0aGUgYmFja2dyb3VuZC4iDQogICAgfSwNCiAgICAicmVwbGFjZUVtcHR5SW1hZ2VzIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiUmVwbGFjZSBtaXNzaW5nIHByb2dyYW0gaW1hZ2VzIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJJZiB0aGUgcG9zdGVyIGluIHRoZSBYTUxUViBwcm9ncmFtIGlzIG1pc3NpbmcsIHRoZSBjaGFubmVsIGxvZ28gd2lsbCBiZSB1c2VkLiINCiAgICB9LA0KICAgICJ4dGV2ZUF1dG9VcGRhdGUiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJBdXRvbWF0aWMgdXBkYXRlIG9mIHhUZVZlIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJJZiBhIG5ldyB2ZXJzaW9uIG9mIHhUZVZlIGlzIGF2YWlsYWJsZSwgaXQgd2lsbCBiZSBhdXRvbWF0aWNhbGx5IGluc3RhbGxlZC4gVGhlIHVwZGF0ZXMgYXJlIGRvd25sb2FkZWQgZnJvbSBHaXRIdWIuIg0KICAgIH0sDQogICAgInN0cmVhbUJ1ZmZlcmluZyI6DQogICAgew0KICAgICAgInRpdGxlIjogIlN0cmVhbSBCdWZmZXIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIkZ1bmN0aW9ucyBvZiB0aGUgYnVmZmVyOjxicj4tIFRoZSBzdHJlYW0gaXMgcGFzc2VkIGZyb20geFRlVmUsIEZGbXBlZyBvciBWTEMgdG8gUGxleCwgRW1ieSBvciBNM1UgUGxheWVyPGJyPi0gU21hbGwgamVya2luZyBvZiB0aGUgc3RyZWFtcyBjYW4gYmUgY29tcGVuc2F0ZWQ8YnI+LSBITFMgLyBNM1U4IHN1cHBvcnQ8YnI+LSBSVFAgLyBSVFBTIHN1cHBvcnQgKG9ubHkgRkZtcGVnIG9yIFZMQyk8YnI+LSBSZS1zdHJlYW1pbmc8YnI+LSBTZXBhcmF0ZSB0dW5lciBsaW1pdCBmb3IgZWFjaCBwbGF5bGlzdCIsDQogICAgICAiaW5mb19mYWxzZSI6ICJObyBCdWZmZXIgKENsaWVudCBjb25uZWN0cyB0byB0aGUgc3RyZWFtaW5nIHNlcnZlcikiLA0KICAgICAgImluZm9feHRldmUiOiAieFRlVmUgY29ubmVjdHMgdG8gdGhlIHN0cmVhbWluZyBzZXJ2ZXIiLA0KICAgICAgImluZm9fZmZtcGVnIjogIkZGbXBlZyBjb25uZWN0cyB0byB0aGUgc3RyZWFtaW5nIHNlcnZlciIsDQogICAgICAiaW5mb192bGMiOiAiVkxDIGNvbm5lY3RzIHRvIHRoZSBzdHJlYW1pbmcgc2VydmVyIg0KDQogICAgfSwNCiAgICAidWRweHkiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJVRFB4eSBhZGRyZXNzIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJUaGUgYWRkcmVzcyBvZiB5b3VyIFVEUHh5IHNlcnZlci4gSWYgc2V0LCBhbmQgdGhlIGNoYW5uZWwgVVJMcyBpbiB0aGUgbTN1IGlzIG11bHRpY2FzdCwgeFRlVmUgd2lsbCByZXdyaXRlIGl0IHNvIHRoYXQgaXQgaXMgYWNjZXNzZWQgdmlhIHRoZSBVRFB4eSBzZXJ2aWNlLiIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiaG9zdDpwb3J0Ig0KICAgIH0sDQogICAgImZmbXBlZ1BhdGgiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJGRm1wZWcgQmluYXJ5IFBhdGgiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIlBhdGggdG8gRkZtcGVnIGJpbmFyeS4iLA0KICAgICAgInBsYWNlaG9sZGVyIjogIi9wYXRoL3RvL2ZmbXBlZyINCiAgICB9LA0KICAgICJmZm1wZWdPcHRpb25zIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiRkZtcGVnIE9wdGlvbnMiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIkZGbXBlZyBvcHRpb25zLjxicj5Pbmx5IGNoYW5nZSBpZiB5b3Uga25vdyB3aGF0IHlvdSBhcmUgZG9pbmcuPGJyPkxlYXZlIGJsYW5rIHRvIHNldCBkZWZhdWx0IHNldHRpbmdzLiIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiTGVhdmUgYmxhbmsgdG8gc2V0IGRlZmF1bHQgc2V0dGluZ3MiDQogICAgfSwNCiAgICAidmxjUGF0aCI6DQogICAgew0KICAgICAgInRpdGxlIjogIlZMQyAvIENWTEMgQmluYXJ5IFBhdGgiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIlBhdGggdG8gVkxDIC8gQ1ZMQyBiaW5hcnkuIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIvcGF0aC90by9jdmxjIg0KICAgIH0sDQogICAgInZsY09wdGlvbnMiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJWTEMgLyBDVkxDIE9wdGlvbnMiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIlZMQyAvIENWTEMgb3B0aW9ucy48YnI+T25seSBjaGFuZ2UgaWYgeW91IGtub3cgd2hhdCB5b3UgYXJlIGRvaW5nLjxicj5MZWF2ZSBibGFuayB0byBzZXQgZGVmYXVsdCBzZXR0aW5ncy4iLA0KICAgICAgInBsYWNlaG9sZGVyIjogIkxlYXZlIGJsYW5rIHRvIHNldCBkZWZhdWx0IHNldHRpbmdzIg0KICAgIH0sDQogICAgImJ1ZmZlclNpemUiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJCdWZmZXIgU2l6ZSIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiQnVmZmVyIHNpemUgaW4gTUIuPGJyPk0zVTg6IElmIHRoZSBUUyBzZWdtZW50IHNtYWxsZXIgdGhlbiB0aGUgYnVmZmVyIHNpemUsIHRoZSBmaWxlIHNpemUgb2YgdGhlIHNlZ21lbnQgaXMgdXNlZC4iDQogICAgfSwNCiAgICAiYnVmZmVyVGltZW91dCI6DQogICAgew0KICAgICAgInRpdGxlIjogIlRpbWVvdXQgZm9yIG5ldyBjbGllbnQgY29ubmVjdGlvbnMiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIlRoZSB4VGVWZSBidWZmZXIgd2FpdHMgdW50aWwgbmV3IGNsaWVudCBjb25uZWN0aW9ucyBhcmUgZXN0YWJsaXNoZWQuIEhlbHBmdWwgZm9yIGZhc3QgY2hhbm5lbCBzd2l0Y2hpbmcuIFZhbHVlIGluIG1pbGxpc2Vjb25kcy4iLA0KICAgICAgInBsYWNlaG9sZGVyIjogIjEwMCINCiAgICB9LA0KICAgICJ1c2VyQWdlbnQiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJVc2VyIEFnZW50IiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJVc2VyIEFnZW50IGZvciBIVFRQIHJlcXVlc3RzLiBGb3IgZXZlcnkgSFRUUCBjb25uZWN0aW9uLCB0aGlzIHZhbHVlIGlzIHVzZWQgZm9yIHRoZSB1c2VyIGFnZW50LiBTaG91bGQgb25seSBiZSBjaGFuZ2VkIGlmIHhUZVZlIGlzIGJsb2NrZWQuIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJ4VGVWZSINCiAgICB9LA0KICAgICJiYWNrdXBQYXRoIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiTG9jYXRpb24gZm9yIGF1dG9tYXRpYyBiYWNrdXBzIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIvbW50L2RhdGEvYmFja3VwL3h0ZXZlLyIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiQmVmb3JlIGFueSB1cGRhdGUgb2YgdGhlIHByb3ZpZGVyIGRhdGEgYnkgdGhlIHNjaGVkdWxlLCB4VGVWZSBjcmVhdGVzIGEgYmFja3VwLiBUaGUgcGF0aCBmb3IgdGhlIGF1dG9tYXRpYyBiYWNrdXBzIGNhbiBiZSBjaGFuZ2VkLiB4VGVWZSByZXF1aXJlcyB3cml0ZSBwZXJtaXNzaW9uIGZvciB0aGlzIGZvbGRlci4iDQogICAgfSwNCiAgICAidGVtcFBhdGgiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJMb2NhdGlvbiBmb3IgdGhlIHRlbXBvcmFyeSBmaWxlcyIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiL3RtcC94dGV2ZS8iLA0KICAgICAgImRlc2NyaXB0aW9uIjogIkxvY2F0aW9uIGZvciB0aGUgYnVmZmVyIGZpbGVzLiINCiAgICB9LA0KICAgICJiYWNrdXBLZWVwIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiTnVtYmVyIG9mIGJhY2t1cHMgdG8ga2VlcCIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiTnVtYmVyIG9mIGJhY2t1cHMgdG8ga2VlcC4gT2xkZXIgYmFja3VwcyBhcmUgYXV0b21hdGljYWxseSBkZWxldGVkLiINCiAgICB9LA0KICAgICJhdXRoZW50aWNhdGlvbldFQiI6DQogICAgew0KICAgICAgInRpdGxlIjogIldFQiBBdXRoZW50aWNhdGlvbiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiQWNjZXNzIHRvIHRoZSB3ZWIgaW50ZXJmYWNlIG9ubHkgcG9zc2libGUgd2l0aCBjcmVkZW50aWFscy4iDQogICAgfSwNCiAgICAiYXV0aGVudGljYXRpb25QTVMiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJQTVMgQXV0aGVudGljYXRpb24iLA0KICAgICAgImRlc2NyaXB0aW9uIjogIlBsZXggcmVxdWVzdHMgYXJlIG9ubHkgcG9zc2libGUgd2l0aCBhdXRoZW50aWNhdGlvbi4gPGJyPjxiPldhcm5pbmchISE8L2I+IEFmdGVyIGFjdGl2YXRpbmcgdGhpcyBmdW5jdGlvbiB4VGVWZSBtdXN0IGJlIGRlbGV0ZSBpbiB0aGUgUE1TIERWUiBzZXR0aW5ncyBhbmQgc2V0IHVwIGFnYWluLiINCiAgICB9LA0KICAgICJhdXRoZW50aWNhdGlvbk0zVSI6DQogICAgew0KICAgICAgInRpdGxlIjogIk0zVSBBdXRoZW50aWNhdGlvbiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiRG93bmxvYWRpbmcgdGhlIHh0ZXZlLm0zdSBmaWxlIHZpYSBhbiBIVFRQIHJlcXVlc3QgaXMgb25seSBwb3NzaWJsZSB3aXRoIGF1dGhlbnRpY2F0aW9uLiINCiAgICB9LA0KICAgICJhdXRoZW50aWNhdGlvblhNTCI6DQogICAgew0KICAgICAgInRpdGxlIjogIlhNTCBBdXRoZW50aWNhdGlvbiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiRG93bmxvYWRpbmcgdGhlIHh0ZXZlLnhtbCBmaWxlIHZpYSBhbiBIVFRQIHJlcXVlc3QgaXMgb25seSBwb3NzaWJsZSB3aXRoIGF1dGhlbnRpY2F0aW9uIg0KICAgIH0sDQogICAgImF1dGhlbnRpY2F0aW9uQVBJIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiQVBJIEF1dGhlbnRpY2F0aW9uIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJBY2Nlc3MgdG8gdGhlIEFQSSBpbnRlcmZhY2UgaXMgb25seSBwb3NzaWJsZSB3aXRoIGF1dGhlbnRpY2F0aW9uLiINCiAgICB9DQogIH0sDQogICJ3aXphcmQiOg0KICB7DQogICAgImVwZ1NvdXJjZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIkVQRyBTb3VyY2UiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIlBNUzo8YnI+LSBVc2UgRVBHIGRhdGEgZnJvbSBQbGV4IG9yIEVtYnkgPGJyPjxicj5YRVBHOjxicj4tIFVzZSBvZiBvbmUgb3IgbW9yZSBYTUxUViBmaWxlczxicj4tIENoYW5uZWwgbWFuYWdlbWVudDxicj4tIE0zVSAvIFhNTFRWIGV4cG9ydCAoSFRUUCBsaW5rIGZvciBJUFRWIGFwcHMpIg0KICAgIH0sDQogICAgInR1bmVyIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiTnVtYmVyIG9mIHR1bmVycyIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiTnVtYmVyIG9mIHBhcmFsbGVsIGNvbm5lY3Rpb25zIHRoYXQgY2FuIGJlIGVzdGFibGlzaGVkIHRvIHRoZSBwcm92aWRlci48YnI+QXZhaWxhYmxlIGZvcjogUGxleCwgRW1ieSAoSERIUiksIE0zVSAod2l0aCBhY3RpdmUgYnVmZmVyKS48YnI+QWZ0ZXIgYSBjaGFuZ2UsIHhUZVZlIG11c3QgYmUgZGVsZXRlIGluIHRoZSBQbGV4IC8gRW1ieSBEVlIgc2V0dGluZ3MgYW5kIHNldCB1cCBhZ2Fpbi4iDQogICAgfSwNCiAgICAibTN1IjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiTTNVIFBsYXlsaXN0IiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJGaWxlIHBhdGggb3IgVVJMIG9mIHRoZSBNM1UiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIkxvY2FsIG9yIHJlbW90ZSBwbGF5bGlzdHMiDQogICAgfSwNCiAgICAieG1sdHYiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJYTUxUViBGaWxlIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJGaWxlIHBhdGggb3IgVVJMIG9mIHRoZSBYTUxUViIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiTG9jYWwgb3IgcmVtb3RlIFhNTFRWIGZpbGUiDQogICAgfQ0KICB9LA0KICAibG9naW4iOg0KICB7DQogICAgImZhaWxlZCI6ICJVc2VyIGF1dGhlbnRpY2F0aW9uIGZhaWxlZCIsDQogICAgImhlYWRsaW5lIjogIkxvZ2luIiwNCiAgICAidXNlcm5hbWUiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJVc2VybmFtZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiVXNlcm5hbWUiDQogICAgfSwNCiAgICAicGFzc3dvcmQiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJQYXNzd29yZCIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiUGFzc3dvcmQiDQogICAgfQ0KICB9LA0KICAiYWNjb3VudCI6DQogIHsNCiAgICAiZmFpbGVkIjogIlBhc3N3b3JkIGRvZXMgbm90IG1hdGNoIiwNCiAgICAiaGVhZGxpbmUiOiAiQ3JlYXRlIHVzZXIgYWNjb3VudCIsDQogICAgInVzZXJuYW1lIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiVXNlcm5hbWUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIlVzZXJuYW1lIg0KICAgIH0sDQogICAgInBhc3N3b3JkIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiUGFzc3dvcmQiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIlBhc3N3b3JkIg0KICAgIH0sDQogICAgImNvbmZpcm0iOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJDb25maXJtIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJDb25maXJtIg0KICAgIH0NCiAgfQ0KfQ==" - webUI["html/configuration.html"] = "PCFkb2N0eXBlIGh0bWw+DQo8aHRtbD4NCiAgPGhlYWQ+DQogICAgPG1ldGEgY2hhcnNldD0idXRmLTgiPg0KICAgIDxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgsIGluaXRpYWwtc2NhbGU9MS4wIiAvPiANCiAgICA8dGl0bGU+eFRlVmU8L3RpdGxlPg0KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iY3NzL3NjcmVlbi5jc3MiIHR5cGU9InRleHQvY3NzIj4NCiAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9ImNzcy9iYXNlLmNzcyIgdHlwZT0idGV4dC9jc3MiPg0KICAgIDxzY3JpcHQgbGFuZ3VhZ2U9ImphdmFzY3JpcHQiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJqcy9jb25maWd1cmF0aW9uX3RzLmpzIj48L3NjcmlwdD4NCiAgICA8c2NyaXB0IGxhbmd1YWdlPSJqYXZhc2NyaXB0IiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ianMvbmV0d29ya190cy5qcyI+PC9zY3JpcHQ+DQogICAgPHNjcmlwdCBsYW5ndWFnZT0iamF2YXNjcmlwdCIgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9ImpzL21lbnVfdHMuanMiPjwvc2NyaXB0Pg0KICAgIDxzY3JpcHQgbGFuZ3VhZ2U9ImphdmFzY3JpcHQiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJqcy9zZXR0aW5nc190cy5qcyI+PC9zY3JpcHQ+DQogICAgPHNjcmlwdCBsYW5ndWFnZT0iamF2YXNjcmlwdCIgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9ImpzL2Jhc2VfdHMuanMiPjwvc2NyaXB0Pg0KICA8L2hlYWQ+DQoNCiAgICA8Ym9keSBvbmxvYWQ9ImphdmFzY3JpcHQ6IHJlYWR5Rm9yQ29uZmlndXJhdGlvbigwKTsiPg0KICAgICAgICAgIA0KICAgICAgPGRpdiBpZD0ibG9hZGluZyIgY2xhc3M9ImJsb2NrIj4NCiAgICAgICAgPGRpdiBjbGFzcz0ibG9hZGVyIj48L2Rpdj4NCiAgICAgIDwvZGl2Pg0KDQogICAgICA8ZGl2IGlkPSJoZWFkZXIiIGNsYXNzPSJpbWdDZW50ZXIiPjwvZGl2Pg0KICAgICAgPGRpdiBpZD0iYm94Ij4NCiAgICAgICAgDQogICAgICAgIDx0YWJsZSBpZD0iY2xpZW50SW5mbyIgY2xhc3M9InZpc2libGUiPg0KICAgICAgICAgIDx0cj4NCiAgICAgICAgICAgIDx0ZCBjbGFzcz0idGRLZXkiPlZlcnNpb246PC90ZD4NCiAgICAgICAgICAgIDx0ZCBpZD0idmVyc2lvbiIgY2xhc3M9InRkVmFsIj4mbmJzcDs8L3RkPg0KICAgICAgICAgICAgPHRkIGNsYXNzPSJ0ZEtleSI+T1M6PC90ZD4NCiAgICAgICAgICAgIDx0ZCBpZD0ib3MiIGNsYXNzPSJ0ZFZhbCI+Jm5ic3A7PC90ZD4NCiAgICAgICAgICA8L3RyPg0KICAgICAgICAgIDx0cj4NCiAgICAgICAgICAgIDx0ZCBjbGFzcz0idGRLZXkiPlVVSUQ6PC90ZD4NCiAgICAgICAgICAgIDx0ZCBpZD0idXVpZCIgY2xhc3M9InRkVmFsIj4mbmJzcDs8L3RkPg0KICAgICAgICAgICAgPHRkIGNsYXNzPSJ0ZEtleSI+QXJjaDo8L3RkPg0KICAgICAgICAgICAgPHRkIGlkPSJhcmNoIiBjbGFzcz0idGRWYWwiPiZuYnNwOzwvdGQ+DQogICAgICAgICAgPC90cj4NCiAgICAgICAgICA8dHI+DQogICAgICAgICAgICA8dGQgY2xhc3M9InRkS2V5Ij5TdHJlYW1zOjwvdGQ+DQogICAgICAgICAgICA8dGQgaWQ9InN0cmVhbXMiIGNsYXNzPSJ0ZFZhbCI+Jm5ic3A7PC90ZD4NCiAgICAgICAgICAgIDx0ZCBjbGFzcz0idGRLZXkiPkRWUjo8L3RkPg0KICAgICAgICAgICAgPHRkIGlkPSJEVlIiIGNsYXNzPSJ0ZFZhbCI+Jm5ic3A7PC90ZD4NCiAgICAgICAgICA8L3RyPg0KICAgICAgICA8L3RhYmxlPg0KICAgICAgICANCiAgICAgICAgPGRpdiBpZD0iaGVhZGxpbmUiPg0KICAgICAgICAgIDxoMSBpZD0iaGVhZC10ZXh0IiBjbGFzcz0iY2VudGVyIj5Db25maWd1cmF0aW9uPC9oMT4gICAgICANCiAgICAgICAgPC9kaXY+DQogICAgICAgIDxwIGlkPSJlcnIiIGNsYXNzPSJlcnJvck1zZyBjZW50ZXIiPjwvcD4gICANCiAgICAgICAgPGRpdiBpZD0iY29udGVudCI+DQogICAgICAgICAgICANCiAgICAgICAgPC9kaXY+DQogICAgICAgIDxkaXYgaWQ9ImJveC1mb290ZXIiPg0KICAgICAgICAgIDxpbnB1dCBpZD0ibmV4dCIgY2xhc3M9IiIgdHlwZT0iYnV0dG9uIiBuYW1lPSJuZXh0IiB2YWx1ZT0iTmV4dCIgb25jbGljaz0iamF2YXNjcmlwdDogc2F2ZVdpemFyZCgpOyI+DQogICAgICAgIDwvZGl2Pg0KICAgICAgPC9kaXY+DQogICAgPC9ib2R5Pg0KPC9odG1sPg==" - webUI["html/img/logo_b_880x200.jpg"] = "/9j/4AAQSkZJRgABAQABLAEsAAD/4QDIRXhpZgAATU0AKgAAAAgABwESAAMAAAABAAEAAAEaAAUAAAABAAAAYgEbAAUAAAABAAAAagEoAAMAAAABAAIAAAExAAIAAAAPAAAAcgEyAAIAAAAUAAAAgodpAAQAAAABAAAAlgAAAAAAAAEsAAAAAQAAASwAAAABUGl4ZWxtYXRvciAzLjMAADIwMTk6MDg6MDIgMjA6MDg6MTQAAAOgAQADAAAAAQABAACgAgAEAAAAAQAAA3CgAwAEAAAAAQAAAMgAAAAA/+EJkGh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8APD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iWE1QIENvcmUgNS40LjAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcDpDcmVhdG9yVG9vbD0iUGl4ZWxtYXRvciAzLjMiIHhtcDpNb2RpZnlEYXRlPSIyMDE5LTA4LTAyVDIwOjA4OjE0Ii8+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPD94cGFja2V0IGVuZD0idyI/PgD/7QA4UGhvdG9zaG9wIDMuMAA4QklNBAQAAAAAAAA4QklNBCUAAAAAABDUHYzZjwCyBOmACZjs+EJ+/8AAEQgAyANwAwERAAIRAQMRAf/EAB8AAAEFAQEBAQEBAAAAAAAAAAABAgMEBQYHCAkKC//EALUQAAIBAwMCBAMFBQQEAAABfQECAwAEEQUSITFBBhNRYQcicRQygZGhCCNCscEVUtHwJDNicoIJChYXGBkaJSYnKCkqNDU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6g4SFhoeIiYqSk5SVlpeYmZqio6Slpqeoqaqys7S1tre4ubrCw8TFxsfIycrS09TV1tfY2drh4uPk5ebn6Onq8fLz9PX29/j5+v/EAB8BAAMBAQEBAQEBAQEAAAAAAAABAgMEBQYHCAkKC//EALURAAIBAgQEAwQHBQQEAAECdwABAgMRBAUhMQYSQVEHYXETIjKBCBRCkaGxwQkjM1LwFWJy0QoWJDThJfEXGBkaJicoKSo1Njc4OTpDREVGR0hJSlNUVVZXWFlaY2RlZmdoaWpzdHV2d3h5eoKDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uLj5OXm5+jp6vLz9PX29/j5+v/bAEMAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAf/bAEMBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAf/dAAQAbv/aAAwDAQACEQMRAD8A/iHoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKAP/9D+IegAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoA//0f4h6ACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgD//S/iHoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKAP/9P+IegAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoA//1P4h6ACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgDvPDXws+J3jPT31bwf8OfHnivSo7mSyfU/DXhDxBrunpeQpFLNaPe6Xp11bLcxRzwSSQNL5saTROyhZUNAHQf8M//AB4/6In8XP8Aw23jL/5TUAH/AAz/APHj/oifxc/8Nt4y/wDl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f/E3xn4o+IPjnxDLaafp8mveMPGet33iPxNrMlhpNpYaVZPqmtale3z2mmWNlp9s05hsrS2tkjhQA4ygAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgD//S/iHoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAczu+N7M2BgbmLYHoM9BnJxx1/FgBtABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAOLuwVWZiq/dUsSFz12joM4HQduc4FADaACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgD//0/4h6ACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgD//U/iHoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKAP/9X+IegAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoA//1v4h6ACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgD//X/iHoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKAP/9k=" - webUI["html/img/settings.png"] = "iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAAAXNSR0IArs4c6QAAAAlwSFlzAAAsSwAALEsBpT2WqQAABCRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IlhNUCBDb3JlIDUuNC4wIj4KICAgPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIgogICAgICAgICAgICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgICAgICAgICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyI+CiAgICAgICAgIDx0aWZmOlJlc29sdXRpb25Vbml0PjI8L3RpZmY6UmVzb2x1dGlvblVuaXQ+CiAgICAgICAgIDx0aWZmOkNvbXByZXNzaW9uPjU8L3RpZmY6Q29tcHJlc3Npb24+CiAgICAgICAgIDx0aWZmOlhSZXNvbHV0aW9uPjI4ODwvdGlmZjpYUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6T3JpZW50YXRpb24+MTwvdGlmZjpPcmllbnRhdGlvbj4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+Mjg4PC90aWZmOllSZXNvbHV0aW9uPgogICAgICAgICA8ZXhpZjpQaXhlbFhEaW1lbnNpb24+NTA8L2V4aWY6UGl4ZWxYRGltZW5zaW9uPgogICAgICAgICA8ZXhpZjpDb2xvclNwYWNlPjE8L2V4aWY6Q29sb3JTcGFjZT4KICAgICAgICAgPGV4aWY6UGl4ZWxZRGltZW5zaW9uPjUwPC9leGlmOlBpeGVsWURpbWVuc2lvbj4KICAgICAgICAgPGRjOnN1YmplY3Q+CiAgICAgICAgICAgIDxyZGY6QmFnLz4KICAgICAgICAgPC9kYzpzdWJqZWN0PgogICAgICAgICA8eG1wOk1vZGlmeURhdGU+MjAxOC0wOC0xMFQxODowODo4OTwveG1wOk1vZGlmeURhdGU+CiAgICAgICAgIDx4bXA6Q3JlYXRvclRvb2w+UGl4ZWxtYXRvciAzLjM8L3htcDpDcmVhdG9yVG9vbD4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgIDwvcmRmOlJERj4KPC94OnhtcG1ldGE+Ckxt87EAAAS7SURBVGgFzZpdiFVVGIbn5N+IMgVhaRLqWI7mQIJoIVRgOhQZNDAhWcbcVuPV3BRE6I14440iQQSaN0p6kz8zI0k5inUhZSSaYOVYODMo5eiMOOPf+LzH2cPMPmvttdbe53jOBy9rr2+938/ae51vr733qaoqgQwPD68B/wDJfXAP3AE94JMShCy+SxJ9CvSDJFlU7MiPFdsh/hrBdIffBsd48HApJjLPI4tnPThBlFJMZI5HBuWZCIt9AmgEzeAJR6JzHeMadnKI8wbYCz4Fkz18JlNwMgf8BCL5j4O3bVaMdUfEhPZqgv1U7HbEbDvoT7HZOPUYNwAlHheV09a4A3RTgMqtj9QY7JdgeM5i3I4+fDIYrQeq/UnyNYOTlBDtS+BwEjk2doz+KyO2OY5bwVCME+/qylTHT4C1D3k+uB33Yul3ov/eMuajlu1RH+II5wtT4hNNSnQ6U/kzbRkfq351bCfF8apAm7kmvq38njWRK0S305SHcSK5XO4U5O9MBmXWbSe3E6YccialdKzH2TTnQEF10XgZ5DdivsxEhkyxjVdERAwu03xmMiqD7hYx19km4cyHq6KyeHKkWpSz+ciVrHVpRYZk/wLHp0H2bULkNKzt4Eq86TKxLq3IECf6nXwV9QPbAfjHQSfoD7SN6L63gYhvbrkiTwKf/dPYpbdPVxKMnigdg0VAG8FQye8AzBl6aIk2A+wPiNoHd63LNZx3wbUAvz/CfTzJb/43AmkGpLfAi0DPE/NALQgtve+xFPdi5xRiNkHa5ySOJ/TR7RrBJdqL4AAxL+p+8ToYAFklNCnF3pM1KPba2L6v8vons5oPsko9ZyZoa0PsOoKezxoY+y5N5DYHWSvDTXzUMJH7IUkRW0tbyyV0CcfDDKmqDMe1KfqnQyehGNgo9q8p4hWYFGsiBY4fsSK/BRkkaPgj5PhMy720BnVFesfnlKo3Das0bw8XYJf196GEuzWRLSDoRypLg2w06FyqTS6Cx7iK1eeqGqrnugmuBgvB8+A5UAuqQYiU+oZ4h2T+BV3gAlDp/pai0U1rFpVGMAv8AHzFd4vShMOQLcoB+DNB/sSbM3ZoMV4BQsW0adSJSbNp1Hu1mY40/YZxpPdJaUSfFzrBMXAjjQNsdvll6cHCWVvKJIphdhcny11pqmolCk5aIDif0BKdZBucgPlO8kh/r8O4HtwClSCbk86HtQqQuUrvKVCf5OARjt0lll4H/WKKmbS0tmJQKZNQ7nq9+w0n2LhTN04E8jKMPpZ1hcli8tGTZYEYJwJrZQGzchTGz3a2ifwdkHc73LYAfpx6DcWXQK1LeiDsdpFGx7UOwUGQJKpmGyIjjvWh50iSQWzsZ/ofgvx+jnYp+B/YpJcB7QXDBKPJ4JDF6+/oCwoBuhoL36R+Jp4RJH16u2IgaxJpHhMehsBY3wTjV2YbOuuumLHrwCW6msbSj74O/DHGgV4Ohl8Jw1nSMmsB+tL6Wnw83odzBrhEr2GtgvFE8A74ADxtJZZygMC25cjQqBwqdg62qpUlziUP45Cq6OGuqqoUE/FJ8i+v7MpJYvEsHl1A5gNty2vLmaN3bBLdAvqB3svqXxLRvyEuc9zs7SiA+ACpw05pJx8SoAAAAABJRU5ErkJggg==" - webUI["html/img/xmltv.png"] = "iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAAAXNSR0IArs4c6QAAAAlwSFlzAAAsSwAALEsBpT2WqQAABCRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IlhNUCBDb3JlIDUuNC4wIj4KICAgPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIgogICAgICAgICAgICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgICAgICAgICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyI+CiAgICAgICAgIDx0aWZmOlJlc29sdXRpb25Vbml0PjI8L3RpZmY6UmVzb2x1dGlvblVuaXQ+CiAgICAgICAgIDx0aWZmOkNvbXByZXNzaW9uPjU8L3RpZmY6Q29tcHJlc3Npb24+CiAgICAgICAgIDx0aWZmOlhSZXNvbHV0aW9uPjI4ODwvdGlmZjpYUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6T3JpZW50YXRpb24+MTwvdGlmZjpPcmllbnRhdGlvbj4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+Mjg4PC90aWZmOllSZXNvbHV0aW9uPgogICAgICAgICA8ZXhpZjpQaXhlbFhEaW1lbnNpb24+NTA8L2V4aWY6UGl4ZWxYRGltZW5zaW9uPgogICAgICAgICA8ZXhpZjpDb2xvclNwYWNlPjE8L2V4aWY6Q29sb3JTcGFjZT4KICAgICAgICAgPGV4aWY6UGl4ZWxZRGltZW5zaW9uPjUwPC9leGlmOlBpeGVsWURpbWVuc2lvbj4KICAgICAgICAgPGRjOnN1YmplY3Q+CiAgICAgICAgICAgIDxyZGY6QmFnLz4KICAgICAgICAgPC9kYzpzdWJqZWN0PgogICAgICAgICA8eG1wOk1vZGlmeURhdGU+MjAxOC0wNy0yOFQyMDowNzozMzwveG1wOk1vZGlmeURhdGU+CiAgICAgICAgIDx4bXA6Q3JlYXRvclRvb2w+UGl4ZWxtYXRvciAzLjM8L3htcDpDcmVhdG9yVG9vbD4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgIDwvcmRmOlJERj4KPC94OnhtcG1ldGE+Co6j9bsAAAGgSURBVGgF7VqxTsNADL0gYGEon8DOwsbAAH8BYmJn6cYIn8DC3h0+oixISFRiYYCJL0AwMMBAeK5w2rpV6uikxHfYknW98+vds18TK21DWGBlWR7CH+BfcEv2AzLP8HP42gLqkyUATuEp2PWEdQjF9ATs1zF/g29Mrxt+vVcUxR3xWxEktzFPJQmivsv8ZSI9DiQyVnxlIonwn6fpiczXpNuVVXH8O+a3Ys3y9NUyuf/NTTbEHZTjUlGSRzSiPhroUIENwB4AS/vS/susDwDhTpYBER9g7wHh5DWyibV9CiitCZbIafDEYUuJHQI3Nr/9ciWsjK6IFSWYhyvClbAyZqOIlYJG84jq7E1Ot97Zm+TinV1TrWwudk9EI3ebGFekzWprzspGEU2ySWCiOrs/s9dr7M/s9fVJJJrNXcsTsfaJc0WsKZINH+/sf1Jqvl1n1f2ZnStRN/pdq646XcSkIh9dkIg4s+IrE3nCpp8RG7f91ns+cCYR/LD4jcAZB42PN+A7/mcQ8ZxJhBYQvMJwBB/BKTFLVoLMC/wCfgyv7BesTKUC2LKM3wAAAABJRU5ErkJggg==" - webUI["html/js/authentication_ts.js"] = "ZnVuY3Rpb24gbG9naW4oKSB7DQogICAgdmFyIGVyciA9IGZhbHNlOw0KICAgIHZhciBkYXRhID0gbmV3IE9iamVjdCgpOw0KICAgIHZhciBkaXYgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29udGVudCIpOw0KICAgIHZhciBmb3JtID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImF1dGhlbnRpY2F0aW9uIik7DQogICAgdmFyIGlucHV0cyA9IGRpdi5nZXRFbGVtZW50c0J5VGFnTmFtZSgiSU5QVVQiKTsNCiAgICBjb25zb2xlLmxvZyhpbnB1dHMpOw0KICAgIGZvciAodmFyIGkgPSBpbnB1dHMubGVuZ3RoIC0gMTsgaSA+PSAwOyBpLS0pIHsNCiAgICAgICAgdmFyIGtleSA9IGlucHV0c1tpXS5uYW1lOw0KICAgICAgICB2YXIgdmFsdWUgPSBpbnB1dHNbaV0udmFsdWU7DQogICAgICAgIGlmICh2YWx1ZS5sZW5ndGggPT0gMCkgew0KICAgICAgICAgICAgaW5wdXRzW2ldLnN0eWxlLmJvcmRlckNvbG9yID0gInJlZCI7DQogICAgICAgICAgICBlcnIgPSB0cnVlOw0KICAgICAgICB9DQogICAgICAgIGRhdGFba2V5XSA9IHZhbHVlOw0KICAgIH0NCiAgICBpZiAoZXJyID09IHRydWUpIHsNCiAgICAgICAgZGF0YSA9IG5ldyBPYmplY3QoKTsNCiAgICAgICAgcmV0dXJuOw0KICAgIH0NCiAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgiY29uZmlybSIpKSB7DQogICAgICAgIGlmIChkYXRhWyJjb25maXJtIl0gIT0gZGF0YVsicGFzc3dvcmQiXSkgew0KICAgICAgICAgICAgYWxlcnQoInNkYWZzZCIpOw0KICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Bhc3N3b3JkJykuc3R5bGUuYm9yZGVyQ29sb3IgPSAicmVkIjsNCiAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjb25maXJtJykuc3R5bGUuYm9yZGVyQ29sb3IgPSAicmVkIjsNCiAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJlcnIiKS5pbm5lckhUTUwgPSAie3suYWNjb3VudC5mYWlsZWR9fSI7DQogICAgICAgICAgICByZXR1cm47DQogICAgICAgIH0NCiAgICB9DQogICAgY29uc29sZS5sb2coZGF0YSk7DQogICAgZm9ybS5zdWJtaXQoKTsNCn0NCg==" - webUI["html/js/data.js"] = "ZnVuY3Rpb24gc2hvd0NvbmZpZyhvYmopIHsNCiAgY29uZmlnID0gb2JqOw0KICAvL3NldE1lbnVJdGVtKCk7DQogIGNyZWF0ZU1lbnUoKTsNCiAgLy9kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicGFnZSIpLmNsYXNzTmFtZSA9ICIiOw0KfQ0KDQpzaG93TXlTdHJlYW1zDQoNCmZ1bmN0aW9uIHNob3dNeVN0cmVhbXMoYWxsU3RyZWFtc09iaikgew0KDQogIHZhciBzdHJlYW1UeXBlS2V5cyA9IGdldE9iaktleXMoYWxsU3RyZWFtc09iaikNCg0KICBmb3IgKHZhciBzID0gMDsgcyA8IHN0cmVhbVR5cGVLZXlzLmxlbmd0aDsgcysrKSB7DQogICAgdmFyIHN0cmVhbVR5cGUgPSBzdHJlYW1UeXBlS2V5c1tzXTsNCiAgICB2YXIgb2JqID0gbmV3IE9iamVjdCgpOw0KICAgIG9iaiA9IGFsbFN0cmVhbXNPYmpbc3RyZWFtVHlwZV07DQogICAgc3dpdGNoKHN0cmVhbVR5cGUpIHsNCiAgICAgIGNhc2UgImFjdGl2ZVN0cmVhbXMiOiBhY3RpdmVTdHJlYW1zICAgICA9IG9iajsgYnJlYWs7DQogICAgfQ0KDQogICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoc3RyZWFtVHlwZSkuaW5uZXJIVE1MID0gIiI7DQoNCiAgICB2YXIgc3RyZWFtc09iaiAgICA9IG5ldyBPYmplY3QoKTsNCiAgICB2YXIgc3RyZWFtc05hbWVzICA9IG5ldyBBcnJheSgpOw0KICAgIA0KICAgIHZhciBrZXlzID0gZ2V0T2JqS2V5cyhvYmopDQogICAgDQogICAgLy8gQ3JlYXRlIE9iamVjdCAoc3RyZWFtc09iaikgZm9yIHRoZSBzdHJlYW1zIGFuZCBzb3J0IGJ5IG5hbWUgKHN0cmVhbXNOYW1lcykNCiAgICBmb3IgKHZhciBpID0gMDsgaSA8IGtleXMubGVuZ3RoOyBpKyspIHsNCiAgICAgIHZhciBuYW1lICAgID0gb2JqW2tleXNbaV1dWyJuYW1lIl07DQogICAgICB2YXIgdG1wID0gbmV3IE9iamVjdCgpOw0KICAgICAgdmFyIHN0cmVhbUtleSA9IGdldE9iaktleXMob2JqW2tleXNbaV1dKTsNCg0KICAgICAgZm9yICh2YXIgaiA9IDA7IGogPCBzdHJlYW1LZXkubGVuZ3RoOyBqKyspIHsNCiAgICAgICAgdG1wW3N0cmVhbUtleVtqXV0gPSBvYmpba2V5c1tpXV1bc3RyZWFtS2V5W2pdXTsgICAgICANCiAgICAgIH0NCg0KICAgICAgc3RyZWFtc09ialtuYW1lXSA9IHRtcDsNCiAgICAgIHN0cmVhbXNOYW1lcy5wdXNoKG5hbWUpDQogICAgfQ0KDQogICAgc3RyZWFtc05hbWVzLnNvcnQoKTsNCiAgICANCiAgICAvLyBDcmVhdGUgVGFibGUgZm9yIGFjdGl2ZVN0cmVhbXMNCiAgICB2YXIgdGFibGUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChzdHJlYW1UeXBlKTsNCg0KICAgIGZvciAodmFyIGkgPSAwOyBpIDwgc3RyZWFtc05hbWVzLmxlbmd0aDsgaSsrKSB7DQogICAgICB2YXIgbmV3RW50cnkgPSBuZXcgT2JqZWN0KCk7DQogICAgICBuZXdFbnRyeVsiX2VsZW1lbnQiXSA9ICJUUiI7DQogICAgICB0YWJsZS5hcHBlbmRDaGlsZChjcmVhdGVFbGVtZW50KG5ld0VudHJ5KSk7DQogICAgICB2YXIgbGluZSA9IHRhYmxlLmxhc3RDaGlsZDsNCg0KICAgICAgdmFyIHRtcCA9IHN0cmVhbXNPYmpbc3RyZWFtc05hbWVzW2ldXQ0KICAgICAgdmFyIGtleXMgPSBnZXRPYmpLZXlzKHRtcCkNCg0KICAgICAgdmFyIG5ld0tleSA9IG5ldyBPYmplY3QoKQ0KICAgICAgbmV3S2V5WyJfZWxlbWVudCJdICA9ICJURCI7DQogICAgICAvL25ld0tleVsiX3RleHQiXSAgICAgPSBzdHJlYW1zTmFtZXNbaV07DQogICAgICBzd2l0Y2goc3RyZWFtVHlwZSkgew0KICAgICAgICBjYXNlICJhY3RpdmVTdHJlYW1zIjogbmV3S2V5WyJfdGV4dCJdICAgICA9ICJDaGFubmVsICgrKToiOyBicmVhazsNCiAgICAgICAgY2FzZSAiaW5hY3RpdmVTdHJlYW1zIjogbmV3S2V5WyJfdGV4dCJdICAgPSAiQ2hhbm5lbCAoLSk6IjsgYnJlYWs7DQogICAgICB9DQogICAgICANCiAgICAgIG5ld0tleVsiY2xhc3MiXSAgICAgPSAidGRLZXkiOw0KICAgICAgY29uc29sZS5sb2coKTsNCg0KDQogICAgICB2YXIgbmV3VmFsID0gbmV3IE9iamVjdCgpDQogICAgICBuZXdWYWxbIl9lbGVtZW50Il0gID0gIlREIjsNCiAgICAgIG5ld1ZhbFsiX3RleHQiXSAgICAgPSBzdHJlYW1zTmFtZXNbaV07DQogICAgICBuZXdWYWxbImNsYXNzIl0gICAgID0gInRkVmFsIjsNCiAgICAgIC8vbmV3VmFsWyJfdGV4dCJdICAgICA9IHZhbHVlOw0KICAgICAgDQogICAgICBsaW5lLmFwcGVuZENoaWxkKGNyZWF0ZUVsZW1lbnQobmV3S2V5KSk7DQogICAgICBsaW5lLmFwcGVuZENoaWxkKGNyZWF0ZUVsZW1lbnQobmV3VmFsKSk7DQogICAgICANCiAgICB9DQoNCiAgfQ0KDQogIHJldHVybg0KfQ0KDQpmdW5jdGlvbiBzaG93QWN0aXZlU3RyZWFtcyhvYmopIHsNCiAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImFjdGl2ZVN0cmVhbXMiKS5pbm5lckhUTUwgPSAiIjsNCiAgYWN0aXZlU3RyZWFtcyAgICAgPSBvYmo7DQogIHZhciBzdHJlYW1zT2JqICAgID0gbmV3IE9iamVjdCgpOw0KICB2YXIgc3RyZWFtc05hbWVzICA9IG5ldyBBcnJheSgpOw0KICANCiAgdmFyIGtleXMgPSBnZXRPYmpLZXlzKG9iaikNCiAgDQogIC8vIENyZWF0ZSBPYmplY3QgKHN0cmVhbXNPYmopIGZvciB0aGUgc3RyZWFtcyBhbmQgc29ydCBieSBuYW1lIChzdHJlYW1zTmFtZXMpDQogIGZvciAodmFyIGkgPSAwOyBpIDwga2V5cy5sZW5ndGg7IGkrKykgew0KICAgIHZhciBuYW1lICAgID0gb2JqW2tleXNbaV1dWyJuYW1lIl07DQogICAgdmFyIHRtcCA9IG5ldyBPYmplY3QoKTsNCiAgICB2YXIgc3RyZWFtS2V5ID0gZ2V0T2JqS2V5cyhvYmpba2V5c1tpXV0pOw0KDQogICAgZm9yICh2YXIgaiA9IDA7IGogPCBzdHJlYW1LZXkubGVuZ3RoOyBqKyspIHsNCiAgICAgIHRtcFtzdHJlYW1LZXlbal1dID0gb2JqW2tleXNbaV1dW3N0cmVhbUtleVtqXV07ICAgICAgDQogICAgfQ0KDQogICAgc3RyZWFtc09ialtuYW1lXSA9IHRtcDsNCiAgICBzdHJlYW1zTmFtZXMucHVzaChuYW1lKQ0KICB9DQoNCiAgc3RyZWFtc05hbWVzLnNvcnQoKTsNCiAgDQogIC8vIENyZWF0ZSBUYWJsZSBmb3IgYWN0aXZlU3RyZWFtcw0KICB2YXIgdGFibGUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYWN0aXZlU3RyZWFtcyIpOw0KDQogIGZvciAodmFyIGkgPSAwOyBpIDwgc3RyZWFtc05hbWVzLmxlbmd0aDsgaSsrKSB7DQogICAgdmFyIG5ld0VudHJ5ID0gbmV3IE9iamVjdCgpOw0KICAgIG5ld0VudHJ5WyJfZWxlbWVudCJdID0gIlRSIjsNCiAgICB0YWJsZS5hcHBlbmRDaGlsZChjcmVhdGVFbGVtZW50KG5ld0VudHJ5KSk7DQogICAgdmFyIGxpbmUgPSB0YWJsZS5sYXN0Q2hpbGQ7DQoNCiAgICB2YXIgdG1wID0gc3RyZWFtc09ialtzdHJlYW1zTmFtZXNbaV1dDQogICAgdmFyIGtleXMgPSBnZXRPYmpLZXlzKHRtcCkNCg0KICAgIHZhciBuZXdLZXkgPSBuZXcgT2JqZWN0KCkNCiAgICBuZXdLZXlbIl9lbGVtZW50Il0gID0gIlREIjsNCiAgICAvL25ld0tleVsiX3RleHQiXSAgICAgPSBzdHJlYW1zTmFtZXNbaV07DQogICAgbmV3S2V5WyJfdGV4dCJdICAgICA9ICJDaGFubmVsOiI7DQogICAgbmV3S2V5WyJjbGFzcyJdICAgICA9ICJ0ZEtleSI7DQogICAgY29uc29sZS5sb2coKTsNCg0KDQogICAgdmFyIG5ld1ZhbCA9IG5ldyBPYmplY3QoKQ0KICAgIG5ld1ZhbFsiX2VsZW1lbnQiXSAgPSAiVEQiOw0KICAgIG5ld1ZhbFsiX3RleHQiXSAgICAgPSBzdHJlYW1zTmFtZXNbaV07DQogICAgbmV3VmFsWyJjbGFzcyJdICAgICA9ICJ0ZFZhbCI7DQogICAgLy9uZXdWYWxbIl90ZXh0Il0gICAgID0gdmFsdWU7DQogICAgDQogICAgbGluZS5hcHBlbmRDaGlsZChjcmVhdGVFbGVtZW50KG5ld0tleSkpOw0KICAgIGxpbmUuYXBwZW5kQ2hpbGQoY3JlYXRlRWxlbWVudChuZXdWYWwpKTsNCiAgICANCiAgfQ0KDQp9DQoNCmZ1bmN0aW9uIHBhcnNlTG9ncyhvYmopIHsNCiAgbG9nID0gb2JqDQogIHZhciBrZXlzID0gZ2V0T2JqS2V5cyhvYmopDQoNCiAgdmFyIG1zZ1R5cGU7DQogIGZvciAodmFyIGkgPSAwOyBpIDwga2V5cy5sZW5ndGg7IGkrKykgew0KICAgIHN3aXRjaChrZXlzW2ldKSB7DQogICAgICBjYXNlICJ3YXJuaW5ncyI6ICBtc2dUeXBlID0gIndhcm5pbmdNc2ciOyBicmVhazsNCiAgICAgIGNhc2UgImVycm9ycyI6ICAgIG1zZ1R5cGUgPSAiZXJyb3JNc2ciOyBicmVhazsNCiAgICB9DQoNCiAgICBzd2l0Y2gob2JqW2tleXNbaV1dKSB7DQogICAgICBjYXNlIDA6IG1zZ1R5cGUgPSAidGRWYWwiOyBicmVhazsNCiAgICAgIGRlZmF1bHQ6IGJyZWFrOw0KICAgIH0NCg0KICAgIGlmKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGtleXNbaV0pKXsNCiAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGtleXNbaV0pLmNsYXNzTmFtZSA9IG1zZ1R5cGU7DQogICAgfQ0KICAgIA0KICAgIA0KICB9DQogIHJldHVybg0KfQ0KDQoNCmZ1bmN0aW9uIGNhbmNlbERhdGEoZWxlbWVudCkgew0KICBjcmVhdGVNZW51KCk7DQp9DQoNCmZ1bmN0aW9uIHNhdmVEYXRhKGVsZW1lbnQpIHsNCiAgdmFyIGRhdGEgPSBuZXcgT2JqZWN0KCk7DQogIHZhciBkaXYgPSBlbGVtZW50LnBhcmVudE5vZGUucGFyZW50Tm9kZTsNCiAgdmFyIGlucHV0cyA9IGRpdi5nZXRFbGVtZW50c0J5VGFnTmFtZSgiSU5QVVQiKTsNCiAgDQogIHZhciBjb25maWdLZXkgPSBkaXYuZ2V0QXR0cmlidXRlKCJkYXRhLWNvbmZpZ2tleSIpOw0KICB2YXIgbWVudVR5cGUgPSBkaXYuZ2V0QXR0cmlidXRlKCJkYXRhLW1lbnV0eXBlIik7DQogIHZhciB2YWx1ZTsNCiAgdmFyIHZhbHVlQXJyID0gbmV3IEFycmF5KCk7DQogIA0KICBmb3IgKHZhciBpID0gMDsgaSA8IGlucHV0cy5sZW5ndGg7IGkrKykgew0KICAgIGlmIChpbnB1dHNbaV0udHlwZSA9PSAidGV4dCIgJiYgaW5wdXRzW2ldLnZhbHVlICE9IHVuZGVmaW5lZCAmJiBpbnB1dHNbaV0udmFsdWUgIT0gIiIgKSB7DQogICAgICBjb25zb2xlLmxvZyhpbnB1dHNbaV0udmFsdWUsIG1lbnVUeXBlKQ0KICAgICAgc3dpdGNoKG1lbnVUeXBlKSB7DQogICAgICAgIGNhc2UgImlucHV0QXJyYXkiOiB2YWx1ZUFyci5wdXNoKGlucHV0c1tpXS52YWx1ZSk7IGJyZWFrOw0KICAgICAgICBjYXNlICJzaW5nbGVJbnB1dCI6IHZhbHVlID0gaW5wdXRzW2ldLnZhbHVlOyBicmVhazsNCiAgICAgIH0NCiAgICB9DQogIH0NCg0KICBzd2l0Y2gobWVudVR5cGUpIHsNCiAgICBjYXNlICJpbnB1dEFycmF5IjogIGRhdGFbY29uZmlnS2V5XSA9IHZhbHVlQXJyOyBicmVhazsNCiAgICBjYXNlICJzaW5nbGVJbnB1dCI6ICANCiAgICAgIGlmIChpc05hTih2YWx1ZSkgPT0gZmFsc2UpIHsNCiAgICAgICAgdmFsdWUgPSBwYXJzZUludCh2YWx1ZSk7DQogICAgICAgIGRhdGFbY29uZmlnS2V5XSA9IHZhbHVlOw0KICAgICAgICBicmVhazsNCiAgICAgIH0NCg0KICAgICAgaWYgKHZhbHVlID09IHVuZGVmaW5lZCkgew0KICAgICAgICBkYXRhWyJkZWxldGUiXSA9IGNvbmZpZ0tleTsgDQogICAgICB9IGVsc2Ugew0KICAgICAgICBkYXRhW2NvbmZpZ0tleV0gPSB2YWx1ZQ0KICAgICAgfQ0KDQogICAgICBicmVhazsNCiAgfQ0KDQogIGRhdGFbImNtZCJdID0gInNhdmVDb25maWciOw0KICBjb25zb2xlLmxvZyhkYXRhKTsNCiAgeFRlVmUoZGF0YSkNCn0NCg0KZnVuY3Rpb24geFRlVmUoZGF0YSkgew0KICBpZiAod2ViU29ja2V0cyA9PSBmYWxzZSkgew0KICAgIGFsZXJ0KCJZb3VyIGJyb3dzZXIgZG9lcyBub3Qgc3VwcG9ydCBXZWJTb2NrZXRzIik7DQogICAgcmV0dXJuOw0KICB9IGVsc2Ugew0KICAgIGlmIChkYXRhWyJjbWQiXSAhPSAiZ2V0TG9nIikgew0KICAgICAgc2hvd0xvYWRpbmdTY3JlZW4odHJ1ZSkNCiAgICB9DQogIH0NCiAgZGVsZXRlIHVuZG9bImVwZ01hcHBpbmciXTsNCiAgDQogIHZhciBwcm90b2NvbFdTDQogIHN3aXRjaCh3aW5kb3cubG9jYXRpb24ucHJvdG9jb2wpIHsNCiAgICBjYXNlICJodHRwOiI6ICAgcHJvdG9jb2xXUyA9ICJ3czovLyI7IGJyZWFrOw0KICAgIGNhc2UgImh0dHBzOiI6ICBwcm90b2NvbFdTID0gIndzczovLyI7IGJyZWFrOw0KICB9DQoNCg0KICB2YXIgd3MgPSBuZXcgV2ViU29ja2V0KHByb3RvY29sV1MgKyB3aW5kb3cubG9jYXRpb24uaG9zdG5hbWUgKyAiOiIgKyB3aW5kb3cubG9jYXRpb24ucG9ydCArICIvZGF0YS8iICsgIj9Ub2tlbj0iICsgZ2V0Q29va2llKCJUb2tlbiIpKTsNCiAgd3Mub25vcGVuID0gZnVuY3Rpb24oKSB7DQogICAgY29uc29sZS5sb2coZGF0YSkNCiAgICB3cy5zZW5kKEpTT04uc3RyaW5naWZ5KGRhdGEpKTsNCiAgfQ0KDQogIHdzLm9ubWVzc2FnZSA9IGZ1bmN0aW9uIChlKSB7DQogICAgdmFyIHJlc3BvbnNlID0gSlNPTi5wYXJzZShlLmRhdGEpOw0KICAgIGNvbnNvbGUubG9nKHJlc3BvbnNlKTsNCiAgICANCiAgICBpZiAocmVzcG9uc2UuaGFzT3duUHJvcGVydHkoImNsaWVudEluZm8iKSkgew0KICAgICAgY3JlYXRlQ2xpbnRJbmZvKHJlc3BvbnNlWyJjbGllbnRJbmZvIl0pOw0KICAgIH0NCg0KICAgIGlmIChyZXNwb25zZS5oYXNPd25Qcm9wZXJ0eSgibG9nIikpIHsNCiAgICAgIGNyZWF0ZUNsaW50SW5mbyhyZXNwb25zZVsibG9nIl0pOw0KICAgIH0NCg0KICAgIGlmIChyZXNwb25zZS5oYXNPd25Qcm9wZXJ0eSgic3RhdHVzIikpIHsNCiAgICAgIGlmIChyZXNwb25zZVsic3RhdHVzIl0gPT0gZmFsc2UpIHsNCiAgICAgICAgYWxlcnQocmVzcG9uc2VbImVyciJdKQ0KICAgICAgICBpZihyZXNwb25zZS5oYXNPd25Qcm9wZXJ0eSgicmVsb2FkIikpIHsNCiAgICAgICAgICBsb2NhdGlvbi5yZWxvYWQoKTsNCiAgICAgICAgfQ0KICAgICAgICAvL2NoZWNrRXJyKHJlc3BvbnNlKQ0KICAgICAgICBjb25zb2xlLmxvZyhyZXNwb25zZSk7DQogICAgICAgIHVwZGF0ZVh0ZXZlU3RhdHVzKHJlc3BvbnNlKTsNCiAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbigpeyBzaG93TG9hZGluZ1NjcmVlbihmYWxzZSk7IH0sIDMwMCk7DQogICAgICAgIA0KICAgICAgICByZXR1cm4NCiAgICAgIH0NCg0KICAgICAgdXBkYXRlWHRldmVTdGF0dXMocmVzcG9uc2UpDQoNCiAgICAgIC8vY29uc29sZS5sb2coZGF0YVsiY21kIl0pOw0KICAgICAgc3dpdGNoKGRhdGFbImNtZCJdKSB7DQogICAgICAgIGNhc2UgInNhdmVVc2VyRGF0YSI6ICAgIGNyZWF0ZU1lbnUoKTsgYnJlYWs7DQogICAgICAgIGNhc2UgInNhdmVOZXdVc2VyIjogICAgIGNyZWF0ZU1lbnUoKTsgYnJlYWs7DQogICAgICAgIGNhc2UgInNhdmVGaWxlc1hNTFRWIjogIC8vY3JlYXRlTWVudSgpOyBicmVhazsNCiAgICAgICAgY2FzZSAic2F2ZUZpbGVzTTNVIjogICAgLy9jcmVhdGVNZW51KCk7IHJldHVybjsgYnJlYWs7DQogICAgICAgIGNhc2UgInNhdmVDb25maWciOiAgICANCiAgICAgICAgICBkYXRhID0gbmV3IE9iamVjdCgpOw0KICAgICAgICAgIGRhdGFbImNtZCJdID0gImNoZWNrVG9rZW4iOw0KICAgICAgICAgIHhUZVZlKGRhdGEpOw0KICAgICAgICAgIGJyZWFrOw0KDQogICAgICAgIGNhc2UgImVtcHR5TG9nIjogd3JpdGVMb2dJbkRpdigpOyBicmVhazsNCiAgICAgICAgY2FzZSAiZ2V0TG9nIjogIHJldHVybjsgYnJlYWs7DQogICAgICB9DQoNCg0KICAgIH0NCg0KICAgIGlmIChjb25maWdbImZpbGVzIl0gPT0gdW5kZWZpbmVkIHx8IGNvbmZpZ1siZmlsZXMiXS5sZW5ndGggPT0gMCkgew0KICAgICAgY3JlYXRlTWVudSgpOw0KICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoMTApLmNsaWNrKCkNCiAgICB9DQoNCiAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7IHNob3dMb2FkaW5nU2NyZWVuKGZhbHNlKTsgfSwgMCk7DQogIH0NCiAgDQp9DQoNCmZ1bmN0aW9uIHVwZGF0ZVh0ZXZlU3RhdHVzKHJlc3BvbnNlKSB7DQogIHZhciBrZXlzID0gZ2V0T2JqS2V5cyhyZXNwb25zZSk7DQogIC8vY29uc29sZS5sb2coa2V5cyk7DQoNCiAgZm9yICh2YXIgaSA9IDA7IGkgPCBrZXlzLmxlbmd0aDsgaSsrKSB7DQogICAgc3dpdGNoKGtleXNbaV0pIHsNCiAgICAgIGNhc2UgImFsZXJ0IjogICAgICAgICBhbGVydChyZXNwb25zZVtrZXlzW2ldXSk7IGJyZWFrOw0KICAgICAgY2FzZSAiY29uZmlnIjogICAgICAgIHNob3dDb25maWcocmVzcG9uc2Vba2V5c1tpXV0pOyBicmVhazsNCiAgICAgIGNhc2UgImxvZyI6ICAgICAgICAgICBwYXJzZUxvZ3MocmVzcG9uc2Vba2V5c1tpXV0pOyBicmVhazsNCiAgICAgIGNhc2UgIm15U3RyZWFtcyI6ICAgICBzaG93TXlTdHJlYW1zKHJlc3BvbnNlW2tleXNbaV1dKTsgYnJlYWs7DQogICAgICBjYXNlICJ4RVBHIjogICAgICAgICAgeEVQRyA9IHJlc3BvbnNlW2tleXNbaV1dOyBicmVhazsNCiAgICAgIGNhc2UgInVzZXJzIjogICAgICAgICB1c2VycyA9IHJlc3BvbnNlW2tleXNbaV1dOyBicmVhazsNCiAgICAgIGNhc2UgInRva2VuIjogICAgICAgICBkb2N1bWVudC5jb29raWUgPSAiVG9rZW49IiArIHJlc3BvbnNlW2tleXNbaV1dOyBicmVhazsNCiAgICAgIGNhc2UgInJlbG9hZCI6ICAgICAgICBsb2NhdGlvbi5yZWxvYWQoKTsgYnJlYWs7DQogICAgICBjYXNlICJvcGVuTGluayI6ICAgICAgd2luZG93LmxvY2F0aW9uID0gcmVzcG9uc2VbIm9wZW5MaW5rIl07IGJyZWFrOw0KICAgICAgLy9jYXNlICJ2ZXJzaW9uIjogdmVyc2lvbiA9IHJlc3BvbnNlW2tleXNbaV1dOyBicmVhazsNCiAgICB9DQogIH0NCn0NCg0KZnVuY3Rpb24gZ2V0VmFsdWVGcm9tUHJvdmlkZXJGaWxlKHhYbWx0dkZpbGUsIGZpbGVUeXBlLCBrZXkpIHsNCg0KICB2YXIgZmlsZUlEID0geFhtbHR2RmlsZS5zdWJzdHJpbmcoMCwgeFhtbHR2RmlsZS5sYXN0SW5kZXhPZignLicpKQ0KDQogIGlmIChjb25maWdbImZpbGVzIl1bZmlsZVR5cGVdLmhhc093blByb3BlcnR5KGZpbGVJRCkgPT0gdHJ1ZSkgew0KICAgIHZhciBkYXRhID0gY29uZmlnWyJmaWxlcyJdW2ZpbGVUeXBlXVtmaWxlSURdOw0KICAgIHJldHVybiBkYXRhW2tleV0NCiAgfQ0KDQp9DQoNCg0KDQoNCg==" - webUI["html/js/users.js"] = "ZnVuY3Rpb24gb3BlblVzZXJzKGVsbSkgew0KICBjb2xvbW5Tb3J0ID0gMDsNCg0KICB2YXIgbmV3RGl2ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNldHRpbmdzIik7DQogIA0KICB2YXIgbmV3RW50cnkgPSBuZXcgT2JqZWN0KCk7DQogIG5ld0VudHJ5WyJfZWxlbWVudCJdICA9ICJIUiI7DQogIG5ld0Rpdi5hcHBlbmRDaGlsZChjcmVhdGVFbGVtZW50KG5ld0VudHJ5KSk7DQoNCiAgdmFyIG5ld0VudHJ5ID0gbmV3IE9iamVjdCgpOw0KICBuZXdFbnRyeVsiX2VsZW1lbnQiXSAgPSAiSU5QVVQiOw0KICBuZXdFbnRyeVsidHlwZSJdID0gImJ1dHRvbiI7DQogIG5ld0VudHJ5WyJjbGFzcyJdID0gImJ1dHRvbiI7DQogIG5ld0VudHJ5WyJ2YWx1ZSJdID0gIk5ldyI7DQogIG5ld0VudHJ5WyJvbmNsaWNrIl0gPSAidXNlckRldGFpbCgwKSI7DQogIG5ld0Rpdi5hcHBlbmRDaGlsZChjcmVhdGVFbGVtZW50KG5ld0VudHJ5KSk7DQoNCiAgdmFyIGRpdiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzZXR0aW5ncyIpOw0KDQogICAvLyBCdWlsZCB0YWJsZQ0KICB2YXIgbmV3VGFibGUgPSBuZXcgT2JqZWN0KCk7DQogIG5ld1RhYmxlWyJfZWxlbWVudCJdICA9ICJUQUJMRSI7DQogIG5ld1RhYmxlWyJpZCJdICAgICAgICA9ICJpZF9tYXBwaW5nIjsNCiAgbmV3VGFibGVbImNsYXNzIl0gICAgID0gInRhYmxlLW1hcHBpbmciOw0KICBkaXYuYXBwZW5kQ2hpbGQoY3JlYXRlRWxlbWVudChuZXdUYWJsZSkpOw0KDQogIHNldFRpbWVvdXQoZnVuY3Rpb24oKXsgDQogICAgY3JlYXRlVXNlcnNUYWJsZSgpOyANCiAgfSwgMTApOw0KfQ0KDQpmdW5jdGlvbiBjcmVhdGVVc2Vyc1RhYmxlKCkgew0KICB2YXIgdGFibGUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiaWRfbWFwcGluZyIpOw0KICB0YWJsZS5pbm5lckhUTUwgPSAiIjsNCiAgdmFyIG5ld1RSID0gbmV3IE9iamVjdCgpOw0KICBuZXdUUlsiX2VsZW1lbnQiXSA9ICJUUiI7DQogIG5ld1RSWyJjbGFzcyJdICAgID0gInRhYmxlLW1hcHBpbmctaGVhZGVyIjsNCiAgdGFibGUuYXBwZW5kQ2hpbGQoY3JlYXRlRWxlbWVudChuZXdUUikpOw0KDQogIHZhciB0ciA9IHRhYmxlLmxhc3RDaGlsZDsNCiAgdmFyIHRySGVhZGxpbmVzID0gbmV3IEFycmF5KCJVc2VybmFtZSIsICJQYXNzd29yZCIsICJXRUIiLCAiUE1TIiwgIk0zVSIsICJYTUwiLCAiQVBJIikNCg0KICBmb3IgKHZhciBpID0gMDsgaSA8IHRySGVhZGxpbmVzLmxlbmd0aDsgaSsrKSB7DQogICAgdmFyIG5ld1REID0gbmV3IE9iamVjdCgpOw0KICAgIG5ld1REWyJfZWxlbWVudCJdID0gIlREIjsNCiAgICBuZXdURFsiX3RleHQiXSAgICA9IHRySGVhZGxpbmVzW2ldOw0KICAgIHRyLmFwcGVuZENoaWxkKGNyZWF0ZUVsZW1lbnQobmV3VEQpKTsNCiAgfQ0KDQoNCiAgLy8gU29ydCB1c2Vycw0KICB2YXIgdXNlcklkcyA9IGdldE9iaktleXModXNlcnMpOw0KDQogIHZhciB1c2VyT2JqID0gbmV3IE9iamVjdCgpOw0KDQogIGZvciAodmFyIGkgPSAwOyBpIDwgdXNlcklkcy5sZW5ndGg7IGkrKykgew0KICAgIHZhciB1c2VybmFtZSA9IHVzZXJzW3VzZXJJZHNbaV1dWyJkYXRhIl1bInVzZXJuYW1lIl07DQogICAgdXNlck9ialt1c2VybmFtZV0gPSB1c2VySWRzW2ldOw0KICB9DQoNCiAgdmFyIGFsbFVzZXJzID0gZ2V0T2JqS2V5cyh1c2VyT2JqKTsNCiAgYWxsVXNlcnMuc29ydCgpOw0KICAvLyAtLQ0KDQogIGZvciAodmFyIGkgPSAwOyBpIDwgYWxsVXNlcnMubGVuZ3RoOyBpKyspIHsNCiAgICB2YXIgdGFibGUgICAgID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImlkX21hcHBpbmciKTsNCiAgICB2YXIgdXNlcklEICAgID0gdXNlck9ialthbGxVc2Vyc1tpXV07DQogICAgdmFyIHVzZXJuYW1lICA9IGFsbFVzZXJzW2ldOw0KICAgIHZhciBpdGVtICAgICAgPSB1c2Vyc1t1c2VySURdWyJkYXRhIl07DQoNCiAgICAvLyBDcmVhdGUgVFINCiAgICB2YXIgbmV3VFIgPSBuZXcgT2JqZWN0KCk7DQogICAgbmV3VFJbIl9lbGVtZW50Il0gICAgICAgPSAiVFIiOw0KICAgIG5ld1RSWyJjbGFzcyJdICAgICAgICAgID0gIiI7DQogICAgbmV3VFJbImlkIl0gICAgICAgICAgICAgPSB1c2VySUQ7DQogICAgbmV3VFJbIm9uY2xpY2siXSAgICAgICAgPSAnamF2YXNjcmlwdDogdXNlckRldGFpbCgiJyArIHVzZXJJRCArICciKTsnOw0KICAgIHRhYmxlLmFwcGVuZENoaWxkKGNyZWF0ZUVsZW1lbnQobmV3VFIpKTsNCg0KICAgIHZhciB0ciA9IHRhYmxlLmxhc3RDaGlsZDsNCg0KICAgIC8vIENyZWF0ZSB1c2VybmFtZSBURA0KICAgIHZhciBuZXdURCA9IG5ldyBPYmplY3QoKTsNCiAgICBuZXdURFsiX2VsZW1lbnQiXSA9ICJQIjsNCiAgICBuZXdURFsiX3RleHQiXSAgICA9IHVzZXJuYW1lOw0KICAgIGNyZWF0ZU5ld1REKG5ld1RELCB0cik7DQoNCiAgICAvLyBDcmVhdGUgcGFzc3dvcmQgVEQNCiAgICB2YXIgbmV3VEQgPSBuZXcgT2JqZWN0KCk7DQogICAgbmV3VERbIl9lbGVtZW50Il0gPSAiUCI7DQogICAgbmV3VERbIl90ZXh0Il0gICAgPSAiLi4uLi4iOw0KICAgIGNyZWF0ZU5ld1REKG5ld1RELCB0cik7DQoNCiAgICAvLyBDcmVhdGUgd2ViIGFjY2Vzcw0KICAgIHZhciBuZXdURCA9IG5ldyBPYmplY3QoKTsNCiAgICBuZXdURFsiX2VsZW1lbnQiXSA9ICJQIjsNCiAgICBzd2l0Y2goaXRlbVsiYXV0aGVudGljYXRpb24ud2ViIl0pew0KICAgICAgY2FzZSB0cnVlOiBuZXdURFsiX3RleHQiXSAgICA9ICLinJMiOyBicmVhazsNCiAgICAgIGRlZmF1bHQ6ICAgbmV3VERbIl90ZXh0Il0gICAgPSAiLSI7IGJyZWFrOw0KICAgIH0NCiAgICBjcmVhdGVOZXdURChuZXdURCwgdHIpOw0KDQogICAgLy8gQ3JlYXRlIFBNUyBhY2Nlc3MNCiAgICB2YXIgbmV3VEQgPSBuZXcgT2JqZWN0KCk7DQogICAgbmV3VERbIl9lbGVtZW50Il0gPSAiUCI7DQogICAgc3dpdGNoKGl0ZW1bImF1dGhlbnRpY2F0aW9uLnBtcyJdKXsNCiAgICAgIGNhc2UgdHJ1ZTogbmV3VERbIl90ZXh0Il0gICAgPSAi4pyTIjsgYnJlYWs7DQogICAgICBkZWZhdWx0OiAgIG5ld1REWyJfdGV4dCJdICAgID0gIi0iOyBicmVhazsNCiAgICB9DQogICAgY3JlYXRlTmV3VEQobmV3VEQsIHRyKTsNCg0KICAgIC8vIENyZWF0ZSBNM1UgYWNjZXNzDQogICAgdmFyIG5ld1REID0gbmV3IE9iamVjdCgpOw0KICAgIG5ld1REWyJfZWxlbWVudCJdID0gIlAiOw0KICAgIHN3aXRjaChpdGVtWyJhdXRoZW50aWNhdGlvbi5tM3UiXSl7DQogICAgICBjYXNlIHRydWU6IG5ld1REWyJfdGV4dCJdICAgID0gIuKckyI7IGJyZWFrOw0KICAgICAgZGVmYXVsdDogICBuZXdURFsiX3RleHQiXSAgICA9ICItIjsgYnJlYWs7DQogICAgfQ0KICAgIGNyZWF0ZU5ld1REKG5ld1RELCB0cik7DQoNCiAgICAvLyBDcmVhdGUgWE1MVFYgYWNjZXNzDQogICAgdmFyIG5ld1REID0gbmV3IE9iamVjdCgpOw0KICAgIG5ld1REWyJfZWxlbWVudCJdID0gIlAiOw0KICAgIHN3aXRjaChpdGVtWyJhdXRoZW50aWNhdGlvbi54bWwiXSl7DQogICAgICBjYXNlIHRydWU6IG5ld1REWyJfdGV4dCJdICAgID0gIuKckyI7IGJyZWFrOw0KICAgICAgZGVmYXVsdDogICBuZXdURFsiX3RleHQiXSAgICA9ICItIjsgYnJlYWs7DQogICAgfQ0KICAgIGNyZWF0ZU5ld1REKG5ld1RELCB0cik7DQoNCiAgICAvLyBDcmVhdGUgQVBJIGFjY2Vzcw0KICAgIHZhciBuZXdURCA9IG5ldyBPYmplY3QoKTsNCiAgICBuZXdURFsiX2VsZW1lbnQiXSA9ICJQIjsNCg0KICAgIHN3aXRjaChpdGVtWyJhdXRoZW50aWNhdGlvbi5hcGkiXSl7DQogICAgICBjYXNlIHRydWU6IG5ld1REWyJfdGV4dCJdICAgID0gIuKckyI7IGJyZWFrOw0KICAgICAgZGVmYXVsdDogICBuZXdURFsiX3RleHQiXSAgICA9ICItIjsgYnJlYWs7DQogICAgfQ0KICAgIGNyZWF0ZU5ld1REKG5ld1RELCB0cik7DQoNCiAgfQ0KDQogIC8vIHVzYWdlIEluZm8gIA0KICB2YXIgZGl2ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNldHRpbmdzIik7DQogIHN3aXRjaChtZW51W2FjdGl2ZU1lbnUuaWRdLmhhc093blByb3BlcnR5KCJfdXNhZ2UiKSkgew0KICAgIGNhc2UgdHJ1ZTogDQogICAgICB2YXIgdXNhZ2VJdGVtID0gbmV3IE9iamVjdCgpOw0KICAgICAgdXNhZ2VJdGVtWyJfZWxlbWVudCJdID0gIlBSRSINCiAgICAgIHVzYWdlSXRlbVsiX3RleHQiXSAgICA9IG1lbnVbYWN0aXZlTWVudS5pZF1bIl91c2FnZSJdOw0KDQogICAgICB2YXIgbmV3SFIgPSBuZXcgT2JqZWN0KCk7DQogICAgICBuZXdIUlsiX2VsZW1lbnQiXSA9ICJIUiINCiAgICAgIGRpdi5hcHBlbmRDaGlsZChjcmVhdGVFbGVtZW50KG5ld0hSKSk7DQogICAgICBkaXYuYXBwZW5kQ2hpbGQoY3JlYXRlRWxlbWVudCh1c2FnZUl0ZW0pKTsNCiAgfQ0KDQogIHNvcnRUYWJsZSgwKTsNCn0NCg0KZnVuY3Rpb24gdXNlckRldGFpbCh1c2VySUQpIHsNCiAgc2hvd1BvcFVwRWxlbWVudCgndXNlci1kZXRhaWwnKTsNCiAgc2V0VGltZW91dChmdW5jdGlvbigpeyANCiAgICBzaG93RWxlbWVudCgicG9wdXAiLCB0cnVlKTsNCiAgfSwgMTApOw0KICB2YXIgZGVmYXVsdFVzZXI7DQoNCiAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNhdmVVc2VyRGV0YWlsIikuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IHNhdmVVc2VyRGV0YWlsKCInICsgdXNlcklEICsgJyIsIGZhbHNlKScpOw0KICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZGVsZXRlVXNlckRldGFpbCIpLnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBzYXZlVXNlckRldGFpbCgiJyArIHVzZXJJRCArICciLCB0cnVlKScpOw0KDQogIHZhciBkYXRhID0gbmV3IE9iamVjdCgpOw0KICANCiAgc3dpdGNoKHVzZXJJRCkgew0KICAgIGNhc2UgMDogICAvLyBOZXcgVXNlcg0KICAgICAgZGF0YVsidXNlcm5hbWUiXSA9ICIiOw0KICAgICAgZGF0YVsiYXV0aGVudGljYXRpb24ud2ViIl0gPSBmYWxzZTsNCiAgICAgIGRhdGFbImF1dGhlbnRpY2F0aW9uLnBtcyJdID0gdHJ1ZTsNCiAgICAgIGRhdGFbImF1dGhlbnRpY2F0aW9uLnhtbCJdID0gdHJ1ZTsNCiAgICAgIGRhdGFbImF1dGhlbnRpY2F0aW9uLm0zdSJdID0gZmFsc2U7DQogICAgICBkYXRhWyJhdXRoZW50aWNhdGlvbi5hcGkiXSA9IGZhbHNlOw0KICAgICAgZGF0YVsiZGVmYXVsdFVzZXIiXSAgICAgICAgPSBmYWxzZTsNCiAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKXsgDQogICAgICAgIHNob3dFbGVtZW50KCJkZWxldGVVc2VyRGV0YWlsIiwgZmFsc2UpDQogICAgICB9LCAxKTsNCg0KICAgICAgYnJlYWs7IA0KICAgIA0KICAgIGRlZmF1bHQ6IA0KICAgICAgZGF0YSA9IHVzZXJzW3VzZXJJRF1bImRhdGEiXTsgDQogICAgICBzaG93RWxlbWVudCgiZGVsZXRlVXNlckRldGFpbCIsIHRydWUpICAgDQogICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZGVsZXRlVXNlckRldGFpbCIpLmNsYXNzTmFtZSA9ICJkZWxldGUiOw0KICAgDQogICAgICBicmVhaw0KICB9DQogIA0KDQogIHZhciB1c2VybmFtZSA9IGRhdGFbInVzZXJuYW1lIl07DQogIGRhdGFbInBhc3N3b3JkIl0gPSAiIjsNCiAgZGF0YVsiY29uZmlybSJdID0gIiI7DQoNCiAgdmFyIGtleXMgPSBnZXRPYmpLZXlzKGRhdGEpOw0KICBkZWZhdWx0VXNlciA9IGRhdGFbImRlZmF1bHRVc2VyIl07DQogIGlmIChkYXRhLmhhc093blByb3BlcnR5KCJkZWZhdWx0VXNlciIpKSB7DQogICAgZGVmYXVsdFVzZXIgPSBKU09OLnBhcnNlKGRhdGFbImRlZmF1bHRVc2VyIl0pOw0KICB9DQoNCiAgZm9yICh2YXIgaSA9IDA7IGkgPCBrZXlzLmxlbmd0aDsgaSsrKSB7DQoNCiAgICBpZihkb2N1bWVudC5nZXRFbGVtZW50QnlJZChrZXlzW2ldKSl7DQogICAgICB2YXIgdGQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChrZXlzW2ldKQ0KICAgIH0gZWxzZSB7DQogICAgICB2YXIgdGQgPSB1bmRlZmluZWQ7DQogICAgfQ0KDQogICAgdmFyIG5ld0l0ZW0gPSBuZXcgT2JqZWN0KCk7DQoNCiAgICBuZXdJdGVtWyJfZWxlbWVudCJdID0gIklOUFVUIjsNCiAgICANCiAgICBuZXdJdGVtWyJ2YWx1ZSJdICAgID0gZGF0YVtrZXlzW2ldXTsNCiAgICBuZXdJdGVtWyJuYW1lIl0gICAgID0ga2V5c1tpXTsNCg0KDQoNCg0KDQogICAgc3dpdGNoKGtleXNbaV0uaW5kZXhPZigiYXV0aGVudGljYXRpb24iKSkgew0KICAgICAgY2FzZSAtMTogDQogICAgICAgIGlmIChrZXlzW2ldID09ICJwYXNzd29yZCIgfHwga2V5c1tpXSA9PSAiY29uZmlybSIpIHsNCiAgICAgICAgICBuZXdJdGVtWyJ0eXBlIl0gICAgID0gInBhc3N3b3JkIjsNCiAgICAgICAgfSBlbHNlIHsNCiAgICAgICAgICBuZXdJdGVtWyJ0eXBlIl0gICAgID0gInRleHQiOw0KICAgICAgICB9DQogICAgICAgIGJyZWFrOw0KDQogICAgICBkZWZhdWx0OiANCiAgICAgICAgbmV3SXRlbVsidHlwZSJdICAgICA9ICJjaGVja2JveCI7DQogICAgICAgIA0KICAgICAgICBpZiAoa2V5c1tpXSA9PSAiYXV0aGVudGljYXRpb24ud2ViIiAmJiBkZWZhdWx0VXNlciA9PSB0cnVlKSB7DQogICAgICAgICAgbmV3SXRlbVsib25jbGljayJdID0gInJldHVybiBmYWxzZSI7IA0KICAgICAgICB9DQogICAgICAgIA0KICAgICAgICBpZiAoZGF0YVtrZXlzW2ldXSA9PSB0cnVlKSB7ICAgICAgICAgIA0KICAgICAgICAgIG5ld0l0ZW1bImNoZWNrZWQiXSAgPSBkYXRhW2tleXNbaV1dOyAgDQogICAgICAgIH0NCiAgICAgICAgDQogICAgICAgIGJyZWFrOw0KICAgIH0NCg0KICAgIHN3aXRjaChrZXlzW2ldKSB7DQogICAgICBjYXNlICJkZWZhdWx0VXNlciI6IA0KICAgICAgICAvL2lmIChkYXRhW2tleXNbaV1dID09IHRydWUpIHsNCiAgICAgICAgbmV3SXRlbVsidHlwZSJdICAgICA9ICJoaWRkZW4iOw0KICAgICAgICAvL30NCiAgICB9DQoNCg0KICAgIGlmICh0ZCAhPSB1bmRlZmluZWQpIHsNCiAgICAgIHRkLmlubmVySFRNTCA9ICIiOw0KICAgICAgdmFyIGVsZW1lbnQgPSBjcmVhdGVOZXdFbGVtZW50KG5ld0l0ZW0pDQogICAgICAvL2NvbnNvbGUubG9nKGVsZW1lbnQpOw0KICAgICAgdGQuYXBwZW5kQ2hpbGQoZWxlbWVudCk7DQogICAgfQ0KDQoNCiAgfQ0KDQoNCiAgaWYgKGRlZmF1bHRVc2VyID09IHRydWUpIHsNCiAgICBzaG93RWxlbWVudCgiZGVsZXRlVXNlckRldGFpbCIsIGZhbHNlKQ0KICB9IGVsc2Ugew0KICAgIHNob3dFbGVtZW50KCJkZWxldGVVc2VyRGV0YWlsIiwgdHJ1ZSkNCiAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZGVsZXRlVXNlckRldGFpbCIpLmNsYXNzTmFtZSA9ICJkZWxldGUiOw0KICB9DQoNCn0NCg0KZnVuY3Rpb24gc2F2ZVVzZXJEZXRhaWwodXNlcklELCBkZWxldGVVc2VyKSB7DQoNCiAgdmFyIGlucHV0cyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ1c2VyLWRldGFpbC10YWJsZSIpLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJJTlBVVCIpOw0KDQogIHZhciBuZXdVc2VyRGF0YSA9IG5ldyBPYmplY3QoKTsNCiAgZm9yICh2YXIgaSA9IDA7IGkgPCBpbnB1dHMubGVuZ3RoOyBpKyspIHsNCiAgICBzd2l0Y2goaW5wdXRzW2ldLnR5cGUpIHsNCiAgICAgIGNhc2UgImNoZWNrYm94IjogIG5ld1VzZXJEYXRhW2lucHV0c1tpXS5uYW1lXSA9IGlucHV0c1tpXS5jaGVja2VkOyBicmVhazsNCiAgICAgIGRlZmF1bHQ6ICAgICAgICAgIG5ld1VzZXJEYXRhW2lucHV0c1tpXS5uYW1lXSA9IGlucHV0c1tpXS52YWx1ZTsgYnJlYWs7DQogICAgfQ0KICAgIA0KICAgIGlmIChpbnB1dHNbInVzZXJuYW1lIl0udmFsdWUubGVuZ3RoID09IDApIHsNCiAgICAgIGlucHV0c1sidXNlcm5hbWUiXS5zdHlsZS5ib3JkZXIgPSAic29saWQgMXB4IHJlZCI7DQogICAgICByZXR1cm47DQogICAgfQ0KDQogICAgc3dpdGNoKHVzZXJJRCkgew0KICAgICAgY2FzZSAiMCI6IA0KICAgICAgICBpZiAoaW5wdXRzWyJwYXNzd29yZCJdLnZhbHVlLmxlbmd0aCA9PSAwKSB7DQogICAgICAgICAgY29uc29sZS5sb2coaW5wdXRzWyJwYXNzd29yZCJdLnZhbHVlLmxlbmd0aCk7DQogICAgICAgICAgaW5wdXRzWyJwYXNzd29yZCJdLnN0eWxlLmJvcmRlciA9ICJzb2xpZCAxcHggcmVkIjsNCiAgICAgICAgICByZXR1cm4NCiAgICAgICAgfQ0KICAgICAgICBicmVhazsNCiAgICB9DQoNCiAgICBpZiAoaW5wdXRzWyJwYXNzd29yZCJdLnZhbHVlLmxlbmd0aCA+IDApIHsNCiAgICAgIGlmIChpbnB1dHNbInBhc3N3b3JkIl0udmFsdWUgIT0gaW5wdXRzWyJjb25maXJtIl0udmFsdWUpIHsNCiAgICAgICAgaW5wdXRzWyJwYXNzd29yZCJdLnN0eWxlLmJvcmRlciA9ICJzb2xpZCAxcHggcmVkIjsNCiAgICAgICAgaW5wdXRzWyJjb25maXJtIl0uc3R5bGUuYm9yZGVyID0gInNvbGlkIDFweCByZWQiOw0KICAgICAgICByZXR1cm47DQogICAgICB9DQogICAgfQ0KICAgIA0KICB9DQoNCiAgdmFyIGRhdGEgPSBuZXcgT2JqZWN0KCk7DQogIA0KICBzd2l0Y2godXNlcklEKSB7DQogICAgY2FzZSAiMCI6DQogICAgICAvL2RhdGEgPSBuZXdVc2VyRGF0YQ0KICAgICAgZGF0YVsidXNlckRhdGEiXSAgPSBuZXdVc2VyRGF0YQ0KICAgICAgZGF0YVsiY21kIl0gICAgICAgPSAic2F2ZU5ld1VzZXIiOyBicmVhazsNCiAgICANCiAgICBkZWZhdWx0OiAgDQogICAgICB2YXIgdGhpc1VzZXIgICAgICA9IG5ldyBPYmplY3QoKTsNCiAgICAgIA0KICAgICAgaWYgKGRlbGV0ZVVzZXIgPT0gdHJ1ZSkgew0KICAgICAgICBpZiAoY29uZmlybSgnRGVsZXRlIHRoZSBzZWxlY3RlZCB1c2VyPycpKSB7DQogICAgICAgICAgZGF0YVsiZGVsZXRlVXNlciJdID0gdHJ1ZTsNCiAgICAgICAgfSBlbHNlIHsNCiAgICAgICAgICBzaG93RWxlbWVudCgicG9wdXAiLCBmYWxzZSk7DQogICAgICAgICAgcmV0dXJuDQogICAgICAgIH0NCiAgICAgIH0NCiAgICAgIA0KICAgICAgdGhpc1VzZXJbdXNlcklEXSAgPSBuZXdVc2VyRGF0YTsNCg0KICAgICAgZGF0YVsidXNlckRhdGEiXSA9IHRoaXNVc2VyOw0KICAgICAgZGF0YVsiY21kIl0gPSAic2F2ZVVzZXJEYXRhIjsgYnJlYWs7DQogIH0NCiAgDQogIHhUZVZlKGRhdGEpOw0KICAvL2NyZWF0ZVVzZXJzVGFibGUoKQ0KICBzaG93RWxlbWVudCgicG9wdXAiLCBmYWxzZSk7DQp9DQoNCg0K" - webUI["html/img/log.png"] = "iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAAAXNSR0IArs4c6QAAAAlwSFlzAAAsSwAALEsBpT2WqQAABCRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IlhNUCBDb3JlIDUuNC4wIj4KICAgPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIgogICAgICAgICAgICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgICAgICAgICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyI+CiAgICAgICAgIDx0aWZmOlJlc29sdXRpb25Vbml0PjI8L3RpZmY6UmVzb2x1dGlvblVuaXQ+CiAgICAgICAgIDx0aWZmOkNvbXByZXNzaW9uPjU8L3RpZmY6Q29tcHJlc3Npb24+CiAgICAgICAgIDx0aWZmOlhSZXNvbHV0aW9uPjI4ODwvdGlmZjpYUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6T3JpZW50YXRpb24+MTwvdGlmZjpPcmllbnRhdGlvbj4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+Mjg4PC90aWZmOllSZXNvbHV0aW9uPgogICAgICAgICA8ZXhpZjpQaXhlbFhEaW1lbnNpb24+NTA8L2V4aWY6UGl4ZWxYRGltZW5zaW9uPgogICAgICAgICA8ZXhpZjpDb2xvclNwYWNlPjE8L2V4aWY6Q29sb3JTcGFjZT4KICAgICAgICAgPGV4aWY6UGl4ZWxZRGltZW5zaW9uPjUwPC9leGlmOlBpeGVsWURpbWVuc2lvbj4KICAgICAgICAgPGRjOnN1YmplY3Q+CiAgICAgICAgICAgIDxyZGY6QmFnLz4KICAgICAgICAgPC9kYzpzdWJqZWN0PgogICAgICAgICA8eG1wOk1vZGlmeURhdGU+MjAxOC0xMC0xNFQxMToxMDo0MjwveG1wOk1vZGlmeURhdGU+CiAgICAgICAgIDx4bXA6Q3JlYXRvclRvb2w+UGl4ZWxtYXRvciAzLjM8L3htcDpDcmVhdG9yVG9vbD4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgIDwvcmRmOlJERj4KPC94OnhtcG1ldGE+CkP32mEAAANASURBVGgF7ZlPiE1RHMffw1AYhiL5k1HEijJiYaFZiHoyFspW2RFRkkSZGgtFWJIwi9FYmo0VOywkKTbKgjSlWcifRCPX51dv6s2d33md77vvXjfmV9859/7u93x/v98959x73p1KRbAkSargAhgDH0E/qIYkuHYEvAPGvwbmNOEerXM/0Q6BRSFuZj/ix0DaDnvCkGppIucDAe4OhzvkcUO+GaELAf8ux7/b8Zlrr+Pvc3zm6nX8NccXdKmFLHaUPJ/Ruhyu5zNap8Nd6PiCLrUQTyi0Rjy/5/M0Zd+smB7M32XwtgBr07aC6yfSTs7XO77OALfH4VbgHsD/HLytVquJx4nyIdQFBsHftscksK5Z0sGhpuN8Or4Aa5sJFHjtO7G2MjKvvZjN1sglOpSlCMt9LrDZ4S4Hd0Qg24vrK+gAZbPtjMqTdFKhEdkIsYxFWP720JlioUK6pzDL41jtpRIqxOOWxecuB3fhRGT8E85YBK8VygI6GSRTCxlH3TaJgyw4O2678aCxO94LbNPovYDdmOrUukIBN/MqwjJEOwGPOHR31W4VONVCLEBR9lAJpBbSrYhn5K5R+quFnGUOr1ICtMIlxjz6XVb6qot9JeKvCPSAdlQJJHDtd8hOIN0wtRDLxx6Ntr0ulalTq1TJNyYzXUjj3SjD8X87Iva7uR8s5+2bi6FtX1oOgi8g2tSn1g2yPx+t3gIR/c90s1+C1vuO/YkxdWrdjxFtE2dE0VELWaqIZ+QuUfqrhZxmyKUvgEoyE1xizOR4YOI8plXXyAZEbYsyTJvXFsUW+x6wGUSbWogJ237rZHSEgojq1CooLT3MdCH6Pcu3xz8zIq0s9lvc2+sgz6dWH/rnQPB/jlybZGoh99hCHJqk0P6TD0jaI/4b7dVYeXVq2bemokyKpRZiHwWKMimWWshxhryjoEpOKXHUNbIN8WcUc5s2r8Vue7l9oAaiTS3EhDeB6EUYnUlGojq1MobLr3uokB/5hcys7OYWKuRl5nD5Cbi5uYXw0ntPHoay2S8Seuol5RZSJ0r/n/DEc/BdrN9kTZrH7BkwDspgwyQxW6uggU3nHnAXvAG/QZE2SrARsL8hJffwDxM0mNDPvT8IAAAAAElFTkSuQmCC" - webUI["html/img/x_black.png"] = "iVBORw0KGgoAAAANSUhEUgAAAQAAAAEACAIAAADTED8xAAAAAXNSR0IArs4c6QAAAAlwSFlzAAAWJQAAFiUBSVIk8AAAA6ppVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IlhNUCBDb3JlIDUuNC4wIj4KICAgPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIgogICAgICAgICAgICB4bWxuczp0aWZmPSJodHRwOi8vbnMuYWRvYmUuY29tL3RpZmYvMS4wLyIKICAgICAgICAgICAgeG1sbnM6ZXhpZj0iaHR0cDovL25zLmFkb2JlLmNvbS9leGlmLzEuMC8iPgogICAgICAgICA8eG1wOk1vZGlmeURhdGU+MjAxOC0xMS0xNVQxNzoxMTozNzwveG1wOk1vZGlmeURhdGU+CiAgICAgICAgIDx4bXA6Q3JlYXRvclRvb2w+UGl4ZWxtYXRvciAzLjM8L3htcDpDcmVhdG9yVG9vbD4KICAgICAgICAgPHRpZmY6T3JpZW50YXRpb24+MTwvdGlmZjpPcmllbnRhdGlvbj4KICAgICAgICAgPHRpZmY6Q29tcHJlc3Npb24+NTwvdGlmZjpDb21wcmVzc2lvbj4KICAgICAgICAgPHRpZmY6UmVzb2x1dGlvblVuaXQ+MjwvdGlmZjpSZXNvbHV0aW9uVW5pdD4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+MTQ0PC90aWZmOllSZXNvbHV0aW9uPgogICAgICAgICA8dGlmZjpYUmVzb2x1dGlvbj4xNDQ8L3RpZmY6WFJlc29sdXRpb24+CiAgICAgICAgIDxleGlmOlBpeGVsWERpbWVuc2lvbj4yNTY8L2V4aWY6UGl4ZWxYRGltZW5zaW9uPgogICAgICAgICA8ZXhpZjpDb2xvclNwYWNlPjE8L2V4aWY6Q29sb3JTcGFj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a1jSekqmtA1rrGsx7JYkDuvrVahwRdgVXD1xcwri6mmYRULLe4CuPc2wfrGo4U+7Y/3S9ZHD+GcflbnfiCJbr77whoaS6ucCXVkVkuLKgORQwNJFygRDJnqwb9i3b0HxkqjT0L4erGy5Rh1IRnhXrpaZq6GZCyRLf6cvhoTY6V9koX8bGdEUlyWVm6W5q1GuostihNm97L/dpm5k+QHCbDna0zRzgSS/lRHWL7iHPOa+9YsYkpttoCwSMcQRkrWioz5Qsc7aFJ1coHY3QyJ9jSjfJEOCfTUpWzehVBnUbqCJOCHEkB1xsmXDwq9DnObUz9q4QOUqYPaPKFzUKcVj6Eeu461q67Vhlqy6+Xo11G52JhRZNNW1FRbN00FWPVwguSa+8YEZ1i+D9vQjelm/iHTwAB69Vwd7CkuGLOcWtxfR4o+dHhNg4DNmhDvJ8M6ehknvhTXMDp8kQQgT33W4z+i7k/2gho+Jvrp1NTVwgW5opV76yl8F/cufe9CyJiRllZ6lYCHMXWPAXmNp9CRb8Pi30r658sHtCSCPsZNXQDYdMaLIek/No13V/rBfGMFSCXnsKNo1dDelnKt/dyUH8uvjjLH+zyfpbv1iUl/NVBt4mVJy58HoDyFZLt0rrj4G7TfIjARvMjy7d6JnR/UXS/+yeD5kLYkETxpRZL2jZJVzb7cl9yZA/cYqh4z+20AEzOj+BKxbZYRFqXQssvLs5gQzpBUp616rNsX55WdXBHbPBRrwlBm5v2VYJo1FsjmOtQg8ezo+fd8Ve4qy04HPRlmR1UiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABGwg8D8UnyVeZFwGAQAAAABJRU5ErkJggg==" - webUI["html/js/configuration_ts.js"] = "Y2xhc3MgV2l6YXJkQ2F0ZWdvcnkgew0KICAgIGNvbnN0cnVjdG9yKCkgew0KICAgICAgICB0aGlzLkRvY3VtZW50SUQgPSAiY29udGVudCI7DQogICAgfQ0KICAgIGNyZWF0ZUNhdGVnb3J5SGVhZGxpbmUodmFsdWUpIHsNCiAgICAgICAgdmFyIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJINCIpOw0KICAgICAgICBlbGVtZW50LmlubmVySFRNTCA9IHZhbHVlOw0KICAgICAgICByZXR1cm4gZWxlbWVudDsNCiAgICB9DQp9DQpjbGFzcyBXaXphcmRJdGVtIGV4dGVuZHMgV2l6YXJkQ2F0ZWdvcnkgew0KICAgIGNvbnN0cnVjdG9yKGtleSwgaGVhZGxpbmUpIHsNCiAgICAgICAgc3VwZXIoKTsNCiAgICAgICAgdGhpcy5oZWFkbGluZSA9IGhlYWRsaW5lOw0KICAgICAgICB0aGlzLmtleSA9IGtleTsNCiAgICB9DQogICAgY3JlYXRlV2l6YXJkKCkgew0KICAgICAgICB2YXIgaGVhZGxpbmUgPSB0aGlzLmNyZWF0ZUNhdGVnb3J5SGVhZGxpbmUodGhpcy5oZWFkbGluZSk7DQogICAgICAgIHZhciBrZXkgPSB0aGlzLmtleTsNCiAgICAgICAgdmFyIGNvbnRlbnQgPSBuZXcgUG9wdXBDb250ZW50KCk7DQogICAgICAgIHZhciBkZXNjcmlwdGlvbjsNCiAgICAgICAgdmFyIGRvYyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHRoaXMuRG9jdW1lbnRJRCk7DQogICAgICAgIGRvYy5pbm5lckhUTUwgPSAiIjsNCiAgICAgICAgZG9jLmFwcGVuZENoaWxkKGhlYWRsaW5lKTsNCiAgICAgICAgc3dpdGNoIChrZXkpIHsNCiAgICAgICAgICAgIGNhc2UgInR1bmVyIjoNCiAgICAgICAgICAgICAgICB2YXIgdGV4dCA9IG5ldyBBcnJheSgpOw0KICAgICAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBuZXcgQXJyYXkoKTsNCiAgICAgICAgICAgICAgICBmb3IgKHZhciBpID0gMTsgaSA8PSAxMDA7IGkrKykgew0KICAgICAgICAgICAgICAgICAgICB0ZXh0LnB1c2goaSk7DQogICAgICAgICAgICAgICAgICAgIHZhbHVlcy5wdXNoKGkpOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCAiMSIsIGtleSk7DQogICAgICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgiY2xhc3MiLCAid2l6YXJkIik7DQogICAgICAgICAgICAgICAgc2VsZWN0LmlkID0ga2V5Ow0KICAgICAgICAgICAgICAgIGRvYy5hcHBlbmRDaGlsZChzZWxlY3QpOw0KICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uID0gInt7LndpemFyZC50dW5lci5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImVwZ1NvdXJjZSI6DQogICAgICAgICAgICAgICAgdmFyIHRleHQgPSBbIlBNUyIsICJYRVBHIl07DQogICAgICAgICAgICAgICAgdmFyIHZhbHVlcyA9IFsiUE1TIiwgIlhFUEciXTsNCiAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCAiWEVQRyIsIGtleSk7DQogICAgICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgiY2xhc3MiLCAid2l6YXJkIik7DQogICAgICAgICAgICAgICAgc2VsZWN0LmlkID0ga2V5Ow0KICAgICAgICAgICAgICAgIGRvYy5hcHBlbmRDaGlsZChzZWxlY3QpOw0KICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uID0gInt7LndpemFyZC5lcGdTb3VyY2UuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJtM3UiOg0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBrZXksICIiKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LndpemFyZC5tM3UucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgiY2xhc3MiLCAid2l6YXJkIik7DQogICAgICAgICAgICAgICAgaW5wdXQuaWQgPSBrZXk7DQogICAgICAgICAgICAgICAgZG9jLmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbiA9ICJ7ey53aXphcmQubTN1LmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAieG1sdHYiOg0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBrZXksICIiKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LndpemFyZC54bWx0di5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJjbGFzcyIsICJ3aXphcmQiKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5pZCA9IGtleTsNCiAgICAgICAgICAgICAgICBkb2MuYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uID0gInt7LndpemFyZC54bWx0di5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICAgICAgY29uc29sZS5sb2coa2V5KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgfQ0KICAgICAgICB2YXIgcHJlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiUFJFIik7DQogICAgICAgIHByZS5pbm5lckhUTUwgPSBkZXNjcmlwdGlvbjsNCiAgICAgICAgZG9jLmFwcGVuZENoaWxkKHByZSk7DQogICAgICAgIGNvbnNvbGUubG9nKGhlYWRsaW5lLCBrZXkpOw0KICAgIH0NCn0NCmZ1bmN0aW9uIHJlYWR5Rm9yQ29uZmlndXJhdGlvbih3aXphcmQpIHsNCiAgICB2YXIgc2VydmVyID0gbmV3IFNlcnZlcigiZ2V0U2VydmVyQ29uZmlnIik7DQogICAgc2VydmVyLnJlcXVlc3QobmV3IE9iamVjdCgpKTsNCiAgICBzaG93RWxlbWVudCgibG9hZGluZyIsIGZhbHNlKTsNCiAgICBjb25maWd1cmF0aW9uV2l6YXJkW3dpemFyZF0uY3JlYXRlV2l6YXJkKCk7DQp9DQpmdW5jdGlvbiBzYXZlV2l6YXJkKCkgew0KICAgIHZhciBjbWQgPSAic2F2ZVdpemFyZCI7DQogICAgdmFyIGRpdiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb250ZW50Iik7DQogICAgdmFyIGNvbmZpZyA9IGRpdi5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCJ3aXphcmQiKTsNCiAgICB2YXIgd2l6YXJkID0gbmV3IE9iamVjdCgpOw0KICAgIGZvciAodmFyIGkgPSAwOyBpIDwgY29uZmlnLmxlbmd0aDsgaSsrKSB7DQogICAgICAgIHZhciBuYW1lOw0KICAgICAgICB2YXIgdmFsdWU7DQogICAgICAgIHN3aXRjaCAoY29uZmlnW2ldLnRhZ05hbWUpIHsNCiAgICAgICAgICAgIGNhc2UgIlNFTEVDVCI6DQogICAgICAgICAgICAgICAgbmFtZSA9IGNvbmZpZ1tpXS5uYW1lOw0KICAgICAgICAgICAgICAgIHZhbHVlID0gY29uZmlnW2ldLnZhbHVlOw0KICAgICAgICAgICAgICAgIC8vIFdlbm4gZGVyIFdlcnQgZWluZSBaYWhsIGlzdCwgd2lyZCBkaWVzZXIgYWxzIFphaGwgZ2VzcGVpY2hlcnQNCiAgICAgICAgICAgICAgICBpZiAoaXNOYU4odmFsdWUpKSB7DQogICAgICAgICAgICAgICAgICAgIHdpemFyZFtuYW1lXSA9IHZhbHVlOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICAgICAgd2l6YXJkW25hbWVdID0gcGFyc2VJbnQodmFsdWUpOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgIklOUFVUIjoNCiAgICAgICAgICAgICAgICBzd2l0Y2ggKGNvbmZpZ1tpXS50eXBlKSB7DQogICAgICAgICAgICAgICAgICAgIGNhc2UgInRleHQiOg0KICAgICAgICAgICAgICAgICAgICAgICAgbmFtZSA9IGNvbmZpZ1tpXS5uYW1lOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSBjb25maWdbaV0udmFsdWU7DQogICAgICAgICAgICAgICAgICAgICAgICBpZiAodmFsdWUubGVuZ3RoID09IDApIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgbXNnID0gbmFtZS50b1VwcGVyQ2FzZSgpICsgIjogIiArICJ7ey5hbGVydC5taXNzaW5nSW5wdXR9fSI7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgYWxlcnQobXNnKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICB3aXphcmRbbmFtZV0gPSB2YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICAgICAgLy8gY29kZS4uLg0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICB9DQogICAgfQ0KICAgIHZhciBkYXRhID0gbmV3IE9iamVjdCgpOw0KICAgIGRhdGFbIndpemFyZCJdID0gd2l6YXJkOw0KICAgIHZhciBzZXJ2ZXIgPSBuZXcgU2VydmVyKGNtZCk7DQogICAgc2VydmVyLnJlcXVlc3QoZGF0YSk7DQogICAgY29uc29sZS5sb2coZGF0YSk7DQp9DQovLyBXaXphcmQNCnZhciBjb25maWd1cmF0aW9uV2l6YXJkID0gbmV3IEFycmF5KCk7DQpjb25maWd1cmF0aW9uV2l6YXJkLnB1c2gobmV3IFdpemFyZEl0ZW0oInR1bmVyIiwgInt7LndpemFyZC50dW5lci50aXRsZX19IikpOw0KY29uZmlndXJhdGlvbldpemFyZC5wdXNoKG5ldyBXaXphcmRJdGVtKCJlcGdTb3VyY2UiLCAie3sud2l6YXJkLmVwZ1NvdXJjZS50aXRsZX19IikpOw0KY29uZmlndXJhdGlvbldpemFyZC5wdXNoKG5ldyBXaXphcmRJdGVtKCJtM3UiLCAie3sud2l6YXJkLm0zdS50aXRsZX19IikpOw0KY29uZmlndXJhdGlvbldpemFyZC5wdXNoKG5ldyBXaXphcmRJdGVtKCJ4bWx0diIsICJ7ey53aXphcmQueG1sdHYudGl0bGV9fSIpKTsNCg==" - webUI["html/js/mapping-editor.js"] = "dmFyIG1hcHBpbmdFcnJvciAgPSBmYWxzZTsNCnZhciBidWxrICAgICAgICAgID0gZmFsc2U7DQp2YXIgYnVsa0VkaXRBbGwgICA9IGZhbHNlOyANCnZhciBzZWxlY3RPYmogICAgID0gbmV3IE9iamVjdCgpOw0KdmFyIHNlYXJjaE9iaiAgICAgPSBuZXcgT2JqZWN0KCk7DQoNCnZhciBidWxrSURzICAgICAgID0gbmV3IEFycmF5KCk7DQp2YXIgYnVsa0NoYW5nZU9iaiA9IG5ldyBPYmplY3QoKTsNCg0KZnVuY3Rpb24gY2hlY2tVbmRvKGtleSwgZWxtKSB7DQogIHZhciB0bXAgPSBuZXcgT2JqZWN0KCk7DQogIHRtcCA9IGVsbQ0KICBjb25zb2xlLmxvZygiLS0iKTsNCiAgaWYgKHVuZG8uaGFzT3duUHJvcGVydHkoImVwZ01hcHBpbmciKSkgew0KICAgIHhFUEdbImVwZ01hcHBpbmciXSA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkodW5kb1siZXBnTWFwcGluZyJdKSk7Ow0KICB9IGVsc2Ugew0KICAgIHVuZG9bImVwZ01hcHBpbmciXSA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkoZWxtKSk7DQogIH0NCn0NCg0KLy92YXIgcGxleENhdGVnb3JpZXMgPSBuZXcgQXJyYXkoIi0iLCAiQWN0aW9uIHNwb3J0cyIsICJBY3Rpb24iLCAiQWR1bHRzIG9ubHkiLCAiQWR2ZW50dXJlIiwgIkFlcm9iaWNzIiwgIkFuaW1hbHMiLCAiQW5pbWF0ZWQiLCAiQW5pbWUiLCAiQW50aG9sb2d5IiwgIkFyY2hlcnkiLCAiQXJ0IiwgIkFydHMvY3JhZnRzIiwgIkF1Y3Rpb24iLCAiQXV0byByYWNpbmciLCAiQXV0byIsICJBdmlhdGlvbiIsICJBd2FyZHMiLCAiQmFsbGV0IiwgIkJhc2ViYWxsIiwgIkJhc2tldGJhbGwiLCAiQmljeWNsZSByYWNpbmciLCAiQmljeWNsZSIsICJCaWxsaWFyZHMiLCAiQmlvZ3JhcGh5IiwgIkJvYXQgcmFjaW5nIiwgIkJvYXQiLCAiQm93bGluZyIsICJCb3hpbmciLCAiQnVzLi9maW5hbmNpYWwiLCAiQ2hpbGRyZW4iLCAiQ29sbGVjdGlibGVzIiwgIkNvbWVkeSBkcmFtYSIsICJDb21lZHkiLCAiQ29tbXVuaXR5IiwgIkNvbXB1dGVycyIsICJDb25zdW1lciIsICJDb29raW5nIiwgIkNyaW1lIGRyYW1hIiwgIkNyaW1lIiwgIkRhbmNlIiwgIkRhcmsgY29tZWR5IiwgIkRlYmF0ZSIsICJEaXZpbmciLCAiRG9jdWRyYW1hIiwgIkRvY3VtZW50YXJ5IiwgIkRyYW1hIiwgIkVkdWNhdGlvbmFsIiwgIkVudGVydGFpbm1lbnQiLCAiRW52aXJvbm1lbnQiLCAiRXF1ZXN0cmlhbiIsICJFcm90aWMiLCAiRXZlbnQiLCAiRmFudGFzeSIsICJGYXNoaW9uIiwgIkZlYXR1cmUgRmlsbSIsICJGaXNoaW5nIiwgIkZvb3RiYWxsIiwgIkdhbWUgc2hvdyIsICJHYW1pbmciLCAiR2F5L2xlc2JpYW4iLCAiR29sZiIsICJIYW5kYmFsbCIsICJIZWFsdGgiLCAiSGlzdG9yaWNhbCBkcmFtYSIsICJIaXN0b3J5IiwgIkhvY2tleSIsICJIb2xpZGF5IiwgIkhvbWUgaW1wcm92ZW1lbnQiLCAiSG9ycm9yIiwgIkhvcnNlIiwgIkhvdXNlL2dhcmRlbiIsICJIb3ctdG8iLCAiSW50ZXJ2aWV3IiwgIkludGwgc29jY2VyIiwgIkxhdyIsICJNYXJ0aWFsIGFydHMiLCAiTWVkaWNhbCIsICJNaWxpdGFyeSIsICJNaW5pc2VyaWVzIiwgIk1peGVkIG1hcnRpYWwgYXJ0cyIsICJNb3RvcmN5Y2xlIHJhY2luZyIsICJNb3RvcmN5Y2xlIiwgIk1vdG9yc3BvcnRzIiwgIk1vdW50YWluIGJpa2luZyIsICJNdXNpYyIsICJNdXNpY2FsIGNvbWVkeSIsICJNdXNpY2FsIiwgIk15c3RlcnkiLCAiTmF0dXJlIiwgIk5ld3MiLCAiTmV3c21hZ2F6aW5lIiwgIk9seW1waWNzIiwgIk9wZXJhIiwgIk91dGRvb3JzIiwgIlBhcmFkZSIsICJQYXJhbm9ybWFsIiwgIlBhcmVudGluZyIsICJQZXJmb3JtaW5nIGFydHMiLCAiUGxheW9mZiBzcG9ydHMiLCAiUG9rZXIiLCAiUG9saXRpY3MiLCAiUHJvIHdyZXN0bGluZyIsICJQdWJsaWMgYWZmYWlycyIsICJSZWFsaXR5IiwgIlJlbGlnaW91cyIsICJSb2RlbyIsICJSb2xsZXIgZGVyYnkiLCAiUm9tYW5jZSIsICJSb21hbnRpYyBjb21lZHkiLCAiUnVnYnkiLCAiUnVubmluZyIsICJTYWlsaW5nIiwgIlNjaWVuY2UgZmljdGlvbiIsICJTY2llbmNlIiwgIlNlbGYgaW1wcm92ZW1lbnQiLCAiU2VyaWVzIiwgIlNob290aW5nIiwgIlNob3BwaW5nIiwgIlNob3J0IEZpbG0iLCAiU2l0Y29tIiwgIlNraWluZyIsICJTbm9va2VyIiwgIlNvYXAiLCAiU29jY2VyIiwgIlNwZWNpYWwiLCAiU3BvcnRzIiwgInNwb3J0cyIsICJTcG9ydHMgZXZlbnQiLCAiU3BvcnRzIG5vbi1ldmVudCIsICJTcG9ydHMgdGFsayIsICJTdGFuZHVwIiwgIlN1cmZpbmciLCAiU3VzcGVuc2UiLCAiVFYgTW92aWUiLCAiVGFsayIsICJUZWNobm9sb2d5IiwgIlRlbm5pcyIsICJUaGVhdGVyIiwgIlRocmlsbGVyIiwgIlRyYWNrL2ZpZWxkIiwgIlRyYXZlbCIsICJUcmlhdGhsb24iLCAiVmFyaWV0eSIsICJWb2xsZXliYWxsIiwgIldhciIsICJXYXRlcnNwb3J0cyIsICJXZWF0aGVyIiwgIldlc3Rlcm4iLCAiV3Jlc3RsaW5nIiwgIllhY2h0IHJhY2luZyIsICJtb3ZpZSIsICJzZXJpZXMiLCAic3BvcnRzIiwgInR2c2hvdyIpOw0KdmFyIHBsZXhDYXRlZ29yaWVzVmFsdWVzID0gbmV3IEFycmF5KCItIiwgIktpZHMiLCAiTmV3cyIsICJNb3ZpZSIsICJTZXJpZXMiLCAiU3BvcnRzIikNCnZhciBwbGV4Q2F0ZWdvcmllc09wdGlvbiA9IG5ldyBBcnJheSgiLSIsICJLaWRzIChFbWJ5IG9ubHkpIiwgIk5ld3MiLCAiTW92aWUiLCAiU2VyaWVzIiwgIlNwb3J0cyIpDQoNCg0KZnVuY3Rpb24gb3Blbk1hcHBpbmdFZGl0b3IoZWxtKSB7DQogIHZhciBjb2x1bW5Ub1NvcnQgID0gMQ0KDQogIGNoZWNrVW5kbygiZXBnTWFwcGluZyIsIHhFUEdbImVwZ01hcHBpbmciXSkNCg0KICB2YXIgbmV3RGl2ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNldHRpbmdzIik7DQogIA0KICB2YXIgbmV3RW50cnkgPSBuZXcgT2JqZWN0KCk7DQogIG5ld0VudHJ5WyJfZWxlbWVudCJdICA9ICJIUiI7DQogIG5ld0Rpdi5hcHBlbmRDaGlsZChjcmVhdGVFbGVtZW50KG5ld0VudHJ5KSk7DQoNCiAgdmFyIG5ld0VudHJ5ID0gbmV3IE9iamVjdCgpOw0KICBuZXdFbnRyeVsiX2VsZW1lbnQiXSAgICA9ICJJTlBVVCI7DQogIG5ld0VudHJ5WyJ0eXBlIl0gICAgICAgID0gImJ1dHRvbiI7DQogIG5ld0VudHJ5WyJjbGFzcyJdICAgICAgID0gImJ1dHRvbiI7DQogIG5ld0VudHJ5WyJ2YWx1ZSJdICAgICAgID0gIlNhdmUiOw0KICBuZXdFbnRyeVsib25jbGljayJdICAgICA9ICJzYXZlWEVQRygpIjsNCiAgbmV3RGl2LmFwcGVuZENoaWxkKGNyZWF0ZUVsZW1lbnQobmV3RW50cnkpKTsNCg0KICB2YXIgbmV3RW50cnkgPSBuZXcgT2JqZWN0KCk7DQogIG5ld0VudHJ5WyJfZWxlbWVudCJdICAgID0gIklOUFVUIjsNCiAgbmV3RW50cnlbInR5cGUiXSAgICAgICAgPSAiYnV0dG9uIjsNCiAgbmV3RW50cnlbImNsYXNzIl0gICAgICAgPSAiYnV0dG9uIjsNCiAgbmV3RW50cnlbInZhbHVlIl0gICAgICAgPSAiQnVsayBFZGl0IjsNCiAgbmV3RW50cnlbIm9uY2xpY2siXSAgICAgPSAiYnVsa0VkaXQoKSI7DQogIG5ld0Rpdi5hcHBlbmRDaGlsZChjcmVhdGVFbGVtZW50KG5ld0VudHJ5KSk7DQoNCiAgdmFyIG5ld0VudHJ5ID0gbmV3IE9iamVjdCgpOw0KICBuZXdFbnRyeVsiX2VsZW1lbnQiXSAgICA9ICJJTlBVVCI7DQogIG5ld0VudHJ5WyJ0eXBlIl0gICAgICAgID0gImJ1dHRvbiI7DQogIG5ld0VudHJ5WyJjbGFzcyJdICAgICAgID0gImJ1dHRvbiI7DQogIG5ld0VudHJ5WyJ2YWx1ZSJdICAgICAgID0gIlNob3cgWEVQRyI7DQogIG5ld0VudHJ5WyJvbmNsaWNrIl0gICAgID0gInNob3dYRVBHKCkiOw0KICBuZXdEaXYuYXBwZW5kQ2hpbGQoY3JlYXRlRWxlbWVudChuZXdFbnRyeSkpOw0KDQogIHZhciBuZXdFbnRyeSA9IG5ldyBPYmplY3QoKTsNCiAgbmV3RW50cnlbIl9lbGVtZW50Il0gICAgPSAiSU5QVVQiOw0KICBuZXdFbnRyeVsiY2xhc3MiXSAgICAgICA9ICJzZWFyY2giOw0KICBuZXdFbnRyeVsiaWQiXSAgICAgICAgICA9ICJzZWFyY2hNYXBwaW5nIjsNCiAgbmV3RW50cnlbInR5cGUiXSAgICAgICAgPSAic2VhcmNoIjsNCiAgbmV3RW50cnlbInBsYWNlaG9sZGVyIl0gPSAiU2VhcmNoIjsNCiAgbmV3RW50cnlbIm9uY2hhbmdlIl0gICAgPSAic2VhcmNoSW5NYXBwaW5nKCkiOw0KICBuZXdEaXYuYXBwZW5kQ2hpbGQoY3JlYXRlRWxlbWVudChuZXdFbnRyeSkpOw0KDQogIHZhciBkaXYgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic2V0dGluZ3MiKTsNCiAgLy9zY3JlZW5Mb2coIkR1cGxpY2F0ZSBJRCIsICJlcnJvciIsIHRydWUpDQogIA0KDQogIC8vIEJ1aWxkIHRhYmxlDQoNCiAgdmFyIG5ld1dyYXBwZXIgPSBuZXcgT2JqZWN0KCk7DQogIG5ld1dyYXBwZXJbIl9lbGVtZW50Il0gID0gIkRJViI7DQogIG5ld1dyYXBwZXJbImlkIl0gICAgICAgID0gImJveC13cmFwcGVyIjsNCiAgZGl2LmFwcGVuZENoaWxkKGNyZWF0ZUVsZW1lbnQobmV3V3JhcHBlcikpOw0KDQoNCiAgdmFyIG5ld1RhYmxlID0gbmV3IE9iamVjdCgpOw0KICBuZXdUYWJsZVsiX2VsZW1lbnQiXSAgPSAiVEFCTEUiOw0KICBuZXdUYWJsZVsiaWQiXSAgICAgICAgPSAiaWRfbWFwcGluZyI7DQogIG5ld1RhYmxlWyJjbGFzcyJdICAgICA9ICJ0YWJsZS1tYXBwaW5nIjsNCiAgZGl2Lmxhc3RDaGlsZC5hcHBlbmRDaGlsZChjcmVhdGVFbGVtZW50KG5ld1RhYmxlKSk7DQogIHNob3dMb2FkaW5nU2NyZWVuKHRydWUpOw0KDQogIHNldFRpbWVvdXQoZnVuY3Rpb24oKXsgDQogICAgY3JlYXRlTWFwcGluZ1RhYmxlKCk7IA0KICB9LCAxMCk7DQoNCn0NCg0KZnVuY3Rpb24gY3JlYXRlU2VhcmNoT2JqKCkgew0KICBzZWFyY2hPYmogPSBuZXcgT2JqZWN0KCk7DQogIHZhciBJRHMgPSBnZXRPYmpLZXlzKHhFUEdbImVwZ01hcHBpbmciXSkNCiAgZm9yICh2YXIgaSA9IElEcy5sZW5ndGggLSAxOyBpID49IDA7IGktLSkgew0KICAgIHZhciBpdGVtID0geEVQR1siZXBnTWFwcGluZyJdW0lEc1tpXV07DQogICAgdmFyIHNlYXJjaElEID0gaXRlbVsieC1lcGciXTsNCiAgICB2YXIgc2VhcmNoVmFsdWUgPSAiIjsgDQogICAgc2VhcmNoVmFsdWUgPSBzZWFyY2hWYWx1ZSArIGl0ZW1bIngtY2hhbm5lbElEIl0gKyAiICI7DQogICAgc2VhcmNoVmFsdWUgPSBzZWFyY2hWYWx1ZSArIGl0ZW1bIngtY2F0ZWdvcnkiXSArICIgIjsNCiAgICBzZWFyY2hWYWx1ZSA9IHNlYXJjaFZhbHVlICsgaXRlbVsieC1uYW1lIl0gKyAiICI7DQogICAgc2VhcmNoVmFsdWUgPSBzZWFyY2hWYWx1ZSArIGl0ZW1bIngtZ3JvdXAtdGl0bGUiXSArICIgIjsNCiAgICBzZWFyY2hWYWx1ZSA9IHNlYXJjaFZhbHVlICsgaXRlbVsieC14bWx0di1maWxlIl0gKyAiICI7DQogICAgc2VhcmNoVmFsdWUgPSBzZWFyY2hWYWx1ZSArIGl0ZW1bIl9maWxlLm0zdS5uYW1lIl0gKyAiICI7DQoNCiAgICBzd2l0Y2goaXRlbVsieC1hY3RpdmUiXSkgew0KICAgICAgY2FzZSB0cnVlOiAgc2VhcmNoVmFsdWUgPSBzZWFyY2hWYWx1ZSArICJvbmxpbmUiOyBicmVhazsNCiAgICAgIGNhc2UgZmFsc2U6IHNlYXJjaFZhbHVlID0gc2VhcmNoVmFsdWUgKyAib2ZmbGluZSI7IGJyZWFrOw0KICAgIH0NCg0KICAgIHNlYXJjaE9ialtzZWFyY2hWYWx1ZV0gPSBzZWFyY2hJRDsNCg0KICB9DQp9DQoNCg0KZnVuY3Rpb24gY2FsY3VsYXRlV3JhcHBlckhlaWdodCgpIHsNCg0KICBpZiAoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImJveC13cmFwcGVyIikpew0KDQogICAgdmFyIGVsbSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJib3gtd3JhcHBlciIpOw0KICAgIA0KICAgIHZhciBkaXZzID0gbmV3IEFycmF5KCJteVN0cmVhbXNCb3giLCAiY2xpZW50SW5mbyIsICJzZXR0aW5ncyIpOw0KICAgIHZhciBlbGVtZW50c0hlaWdodCA9IDAgLSBlbG0ub2Zmc2V0SGVpZ2h0Ow0KICAgIGZvciAodmFyIGkgPSAwOyBpIDwgZGl2cy5sZW5ndGg7IGkrKykgew0KICAgICAgZWxlbWVudHNIZWlnaHQgPSBlbGVtZW50c0hlaWdodCArIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGRpdnNbaV0pLm9mZnNldEhlaWdodDsNCiAgICB9DQoNCiAgICBlbG0uc3R5bGUuaGVpZ2h0ID0gd2luZG93LmlubmVySGVpZ2h0IC0gZWxlbWVudHNIZWlnaHQgKyAicHgiOw0KDQogIH0NCg0KICBpZiAoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm1lbnUtd3JhcHBlciIpKXsNCg0KICAgIHZhciBlbG0gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibWVudS13cmFwcGVyIik7DQogICAgDQogICAgdmFyIG9mZmVzdCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzZXR0aW5ncyIpLm9mZnNldEhlaWdodCArIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJteVN0cmVhbXNCb3giKS5vZmZzZXRIZWlnaHQgKyBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY2xpZW50SW5mbyIpLm9mZnNldEhlaWdodDsNCiAgICANCiAgICBpZiAod2luZG93LmlubmVySGVpZ2h0ID4gb2ZmZXN0KSB7DQogICAgICBlbG0uc3R5bGUuaGVpZ2h0ID0gd2luZG93LmlubmVySGVpZ2h0ICsgInB4Ig0KICAgIH0gZWxzZSB7DQogICAgICBlbG0uc3R5bGUuaGVpZ2h0ID0gb2ZmZXN0ICsgInB4Ig0KICAgIH0NCiAgICANCg0KICB9DQoNCg0KfQ0KDQpmdW5jdGlvbiBjcmVhdGVNYXBwaW5nVGFibGUoKSB7DQogIGNvbHVtblRvU29ydCA9IDE7DQogIGNyZWF0ZVNlYXJjaE9iaigpOw0KDQogIC8vIENyZWF0ZSB0YWJsZSAoSGVhZGVyKQ0KICB2YXIgdGFibGUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiaWRfbWFwcGluZyIpOw0KICB0YWJsZS5pbm5lckhUTUwgPSAiIjsNCiAgdmFyIG5ld1RSID0gbmV3IE9iamVjdCgpOw0KICBuZXdUUlsiX2VsZW1lbnQiXSA9ICJUUiI7DQogIG5ld1RSWyJjbGFzcyJdICAgID0gInRhYmxlLW1hcHBpbmctaGVhZGVyIjsNCiAgdGFibGUuYXBwZW5kQ2hpbGQoY3JlYXRlRWxlbWVudChuZXdUUikpOw0KDQogIHZhciB0ciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJpZF9tYXBwaW5nIikubGFzdENoaWxkOw0KICB2YXIgdHJIZWFkbGluZXMgPSBuZXcgQXJyYXkoIkJ1bGsiLCAiQ2guIE5vLiIsICJMb2dvIiwgIkNoYW5uZWwgTmFtZSIsICJQbGF5bGlzdCIsICJHcm91cCBUaXRsZSIsICJYTUxUViBGaWxlIiwgIlhNTFRWIElEIiwgIlRpbWVzaGlmdCIpDQoNCiAgZm9yICh2YXIgaSA9IDA7IGkgPCB0ckhlYWRsaW5lcy5sZW5ndGg7IGkrKykgew0KICAgIHZhciBuZXdURCA9IG5ldyBPYmplY3QoKTsNCg0KICAgIG5ld1REWyJfZWxlbWVudCJdID0gIlREIjsNCiAgICBuZXdURFsiX3RleHQiXSAgICA9IHRySGVhZGxpbmVzW2ldOw0KDQogICAgDQoNCiAgICB2YXIgd2lkdGggPSAiIjsNCiAgICBzd2l0Y2godHJIZWFkbGluZXNbaV0pIHsNCg0KICAgICAgY2FzZSAiQnVsayI6ICANCiAgICAgICAgDQogICAgICAgIG1heFdpZHRoID0gIjMycHgiOyANCiAgICAgICAgbWluV2lkdGggPSAiMzJweCI7IA0KICAgIA0KICAgICAgICAvLyBDcmVhdGUgYnVsayBURA0KICAgICAgICB2YXIgbmV3Q2hlY2tib3ggPSBuZXcgT2JqZWN0KCk7DQogICAgICAgIG5ld0NoZWNrYm94WyJfZWxlbWVudCJdID0gIklOUFVUIjsNCiAgICAgICAgbmV3Q2hlY2tib3hbInR5cGUiXSAgICAgPSAiY2hlY2tib3giOw0KICAgICAgICBuZXdDaGVja2JveFsiY2xhc3MiXSAgICA9ICJidWxrIGhpZGVCdWxrIjsNCiAgICAgICAgbmV3Q2hlY2tib3hbIm9ubW91c2VvdXQiXSA9ICJqYXZhc2NyaXB0OiB0aGlzLmJsdXIoKSINCiAgICAgICAgbmV3Q2hlY2tib3hbIm9uY2xpY2siXSAgICA9ICJqYXZhc2NyaXB0OiBidWxrRWRpdEFsbENoYW5uZWxzKCkiDQoNCiAgICANCiAgICAgICAgLy9uZXdURC5hcHBlbmRDaGlsZChjcmVhdGVFbGVtZW50KG5ld0NoZWNrYm94KSk7DQoNCiAgICAgICAgYnJlYWs7DQoNCiAgICAgIGNhc2UgIkNoLiBOby4iOiANCiAgICAgICAgbWF4V2lkdGggPSAiODBweCI7IA0KICAgICAgICBtaW5XaWR0aCA9ICI3MHB4IjsgDQogICAgICAgIG5ld1REWyJvbmNsaWNrIl0gID0gImphdnNjcmlwdDogc29ydFRhYmxlKCIgKyBpICsgIik7IjsNCiAgICAgICAgbmV3VERbImNsYXNzIl0gICAgPSAicG9pbnRlciI7DQogICAgICAgIGJyZWFrOw0KICAgICAgDQogICAgICBjYXNlICJMb2dvIjogIG1heFdpZHRoID0gIjEyMHB4IjsgbWluV2lkdGggPSAiNjBweCI7IGJyZWFrOw0KICAgICAgDQogICAgICBjYXNlICJDaGFubmVsIE5hbWUiOiAgDQogICAgICAgIG1heFdpZHRoID0gIjUwJSI7IA0KICAgICAgICBtaW5XaWR0aCA9ICIyMDBweCI7IA0KICAgICAgICBuZXdURFsib25jbGljayJdICA9ICJqYXZzY3JpcHQ6IHNvcnRUYWJsZSgiICsgaSArICIpOyI7DQogICAgICAgIG5ld1REWyJjbGFzcyJdID0gInBvaW50ZXIiOw0KICAgICAgICBicmVhazsNCg0KICAgICAgY2FzZSAiUGxheWxpc3QiOiAgICAgIA0KICAgICAgICBtYXhXaWR0aCA9ICIxNTBweCI7IA0KICAgICAgICBtaW5XaWR0aCA9ICIxMDBweCI7IA0KICAgICAgICBuZXdURFsib25jbGljayJdICA9ICJqYXZzY3JpcHQ6IHNvcnRUYWJsZSgiICsgaSArICIpOyI7DQogICAgICAgIG5ld1REWyJjbGFzcyJdICAgID0gInBvaW50ZXIiOw0KICAgICAgICBicmVhazsNCiAgICAgIA0KICAgICAgY2FzZSAiR3JvdXAgVGl0bGUiOiAgIA0KICAgICAgICBtYXhXaWR0aCA9ICIxNTBweCI7IA0KICAgICAgICBtaW5XaWR0aCA9ICIxMDBweCI7IA0KICAgICAgICBuZXdURFsib25jbGljayJdICA9ICJqYXZzY3JpcHQ6IHNvcnRUYWJsZSgiICsgaSArICIpOyI7DQogICAgICAgIG5ld1REWyJjbGFzcyJdICAgID0gInBvaW50ZXIiOw0KICAgICAgICBicmVhazsNCiAgICAgIA0KICAgICAgY2FzZSAiWE1MVFYgRmlsZSI6ICAgIA0KICAgICAgICBtYXhXaWR0aCA9ICIxNTBweCI7IA0KICAgICAgICBtaW5XaWR0aCA9ICIxMDBweCI7IA0KICAgICAgICAvL25ld1REWyJvbmNsaWNrIl0gID0gImphdnNjcmlwdDogc29ydFRhYmxlKCIgKyBpICsgIik7IjsNCiAgICAgICAgbmV3VERbImNsYXNzIl0gICAgPSAiIjsNCiAgICAgICAgYnJlYWs7DQogICAgICANCg0KICAgICAgY2FzZSAiWE1MVFYgSUQiOiAgICAgIG1heFdpZHRoID0gIjE1MHB4IjsgbWluV2lkdGggPSAiMTAwcHgiOyBicmVhazsNCg0KICAgICAgY2FzZSAiVGltZXNoaWZ0IjogICAgICBtYXhXaWR0aCA9ICI1MHB4IjsgbWluV2lkdGggPSAiMjBweCI7IGJyZWFrOw0KDQogICAgICBkZWZhdWx0OiANCiAgICAgICAgbmV3VERbImNsYXNzIl0gICAgPSAiIjsNCiAgICAgICAgYnJlYWs7DQogICAgfQ0KDQogICAgdHIuYXBwZW5kQ2hpbGQoY3JlYXRlRWxlbWVudChuZXdURCkpOw0KICAgIGlmICh0ckhlYWRsaW5lc1tpXSA9PSAiQnVsayIpIHsNCiAgICAgIHRyLmxhc3RDaGlsZC5pbm5lckhUTUwgPSAiIjsNCiAgICAgIHRyLmxhc3RDaGlsZC5hcHBlbmRDaGlsZChjcmVhdGVFbGVtZW50KG5ld0NoZWNrYm94KSk7DQogICAgICANCiAgICB9DQogICAgDQogICAgdmFyIGVsbSA9IHRyLmxhc3RDaGlsZDsNCiAgICBlbG0uc3R5bGUud2lkdGggPSBtYXhXaWR0aDsNCiAgICBlbG0uc3R5bGUubWF4V2lkdGggPSBtYXhXaWR0aDsNCiAgICBlbG0uc3R5bGUubWluV2lkdGggPSBtaW5XaWR0aDsNCg0KICB9DQogIGNhbGN1bGF0ZVdyYXBwZXJIZWlnaHQoKTsNCiAgdmFyIElEcyA9IGdldE9iaktleXMoeEVQR1siZXBnTWFwcGluZyJdKQ0KDQogIHZhciBhbGxYbWx0dkZpbGVzID0gZ2V0T2JqS2V5cyh4RVBHWyJ4bWx0dk1hcCJdKTsNCg0KICBpZiAoYWxsWG1sdHZGaWxlcyA9PSAwKSB7DQogICAgc2hvd0xvYWRpbmdTY3JlZW4oZmFsc2UpOw0KICAgIHJldHVybjsNCiAgfQ0KDQogIC8vIFNvcnQgSURzDQogIHZhciBwb3NPYmogPSBuZXcgT2JqZWN0KCk7DQogIGZvciAodmFyIGkgPSAwOyBpIDwgSURzLmxlbmd0aDsgaSsrKSB7DQogICAgdmFyIGl0ZW0gID0geEVQR1siZXBnTWFwcGluZyJdW0lEc1tpXV07DQogICAgdmFyIHBvcw0KICAgIHN3aXRjaChpc05hTih4RVBHWyJlcGdNYXBwaW5nIl1bSURzW2ldXVsieC1jaGFubmVsSUQiXSkpIHsNCiAgICAgIGNhc2UgZmFsc2U6IHBvcyA9IHBhcnNlRmxvYXQoeEVQR1siZXBnTWFwcGluZyJdW0lEc1tpXV1bIngtY2hhbm5lbElEIl0pIDsgYnJlYWs7DQogICAgfQ0KICAgIHBvc09ialtwb3NdID0gaXRlbTsNCiAgfQ0KICBwb3NGbG9hdCA9IGdldE9iaktleXMocG9zT2JqKQ0KICBmdW5jdGlvbiBzb3J0RmxvYXQoYSxiKSB7IHJldHVybiBhIC0gYjsgfQ0KICBwb3NGbG9hdC5zb3J0KHNvcnRGbG9hdCkNCg0KICAvL2NvbnNvbGUubG9nKHBvc0Zsb2F0KTsNCg0KICAvLyAtLS0NCg0KICBpZiAoSURzLmxlbmd0aCA+IDIwMCkgew0KICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKXsgDQogICAgICBzaG93TG9hZGluZ1NjcmVlbih0cnVlKTsNCiAgICB9LCAxKTsNCg0KICB9DQoNCg0KICAvLyB0YWJsZSBmb3IgaW50IGNoYW5uZWwgSUQncw0KICBmb3IgKHZhciBpID0gMDsgaSA8IHBvc0Zsb2F0Lmxlbmd0aDsgaSsrKSB7DQoNCiAgICB2YXIgdGFibGUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiaWRfbWFwcGluZyIpOw0KICAgIHZhciBpdGVtICA9IHBvc09ialtwb3NGbG9hdFtpXV07DQogICAgLy92YXIgaXRlbSAgPSB4RVBHWyJlcGdNYXBwaW5nIl1bSURzW2ldXTsNCiAgICAvL2NvbnNvbGUubG9nKGl0ZW0pOw0KICAgIHZhciBuZXdUUiA9IG5ldyBPYmplY3QoKTsNCiAgICBuZXdUUlsiX2VsZW1lbnQiXSAgICAgICA9ICJUUiI7DQogICAgbmV3VFJbImNsYXNzIl0gICAgICAgICAgPSAiIjsNCiAgICBuZXdUUlsiaWQiXSAgICAgICAgICAgICA9IGl0ZW1bIngtZXBnIl07DQogICAgbmV3VFJbIm9uY29udGV4dG1lbnUiXSAgPSAnamF2YXNjcmlwdDogc3dpdGNoQ2hhbm5lbFN0YXR1cygiJyArIGl0ZW1bIngtZXBnIl0gKyAnIik7IHJldHVybiBmYWxzZTsnOw0KICAgIHRhYmxlLmFwcGVuZENoaWxkKGNyZWF0ZUVsZW1lbnQobmV3VFIpKTsNCg0KICAgIHZhciB0ciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJpZF9tYXBwaW5nIikubGFzdENoaWxkOw0KICAgIA0KICAgIC8vIENyZWF0ZSBidWxrIFREDQogICAgdmFyIG5ld1REID0gbmV3IE9iamVjdCgpOw0KICAgIG5ld1REWyJfZWxlbWVudCJdICAgPSAiSU5QVVQiOw0KICAgIG5ld1REWyJ0eXBlIl0gICAgICAgPSAiY2hlY2tib3giOw0KICAgIG5ld1REWyJjbGFzcyJdICAgICAgPSAiYnVsayBoaWRlQnVsayI7DQogICAgbmV3VERbIm9ubW91c2VvdXQiXSA9ICJqYXZhc2NyaXB0OiB0aGlzLmJsdXIoKSINCiAgICANCiAgICBjcmVhdGVOZXdURChuZXdURCwgdHIpOw0KICAgIA0KDQogICAgLy8gQ3JlYXRlIElEIFREDQogICAgdmFyIG5ld1REID0gbmV3IE9iamVjdCgpOw0KICAgIG5ld1REWyJfZWxlbWVudCJdID0gIklOUFVUIjsNCiAgICBuZXdURFsidHlwZSJdICAgICA9ICJ0ZXh0Ig0KICAgIG5ld1REWyJjbGFzcyJdICAgID0gInc0MHB4IjsNCiAgICBuZXdURFsidmFsdWUiXSAgICA9IGl0ZW1bIngtY2hhbm5lbElEIl07DQogICAgbmV3VERbIm9uZm9jdXNvdXQiXSA9ICJqYXZhc2NyaXB0OiBhcnJhbmdlVGFibGUodGhpcyk7Ig0KICAgIGNyZWF0ZU5ld1REKG5ld1RELCB0cik7DQoNCiAgICAvLyBDcmVhdGUgSU1HIFREDQogICAgdmFyIG5ld1REID0gbmV3IE9iamVjdCgpOw0KICAgIG5ld1REWyJfZWxlbWVudCJdID0gIklNRyI7DQogICAgbmV3VERbIm9uY2xpY2siXSAgPSAnamF2YXNjcmlwdDogbWFwcGluZ0RldGFpbCgiJyArIGl0ZW1bIngtZXBnIl0gKyAnIik7JzsNCiAgICBpZiAoaXRlbVsidHZnLWxvZ28iXSAhPSB1bmRlZmluZWQpIHsNCiAgICAgIG5ld1REWyJzcmMiXSAgICAgID0gaXRlbVsidHZnLWxvZ28iXTsNCiAgICB9IGVsc2Ugew0KICAgICAgaXRlbVsidHZnLWxvZ28iXSA9ICIiOw0KICAgICAgbmV3VERbInNyYyJdID0gIiI7DQogICAgfQ0KICAgIGNyZWF0ZU5ld1REKG5ld1RELCB0cik7DQogICAgdHIubGFzdENoaWxkLnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBtYXBwaW5nRGV0YWlsKCInICsgaXRlbVsieC1lcGciXSArICciKTsnKQ0KDQogICAgLy8gQ3JlYXRlIFAgVEQgKGNoYW5uZWwgbmFtZSkNCiAgICB2YXIgbmV3VEQgPSBuZXcgT2JqZWN0KCk7DQogICAgbmV3VERbIl9lbGVtZW50Il0gPSAiUCI7DQogICAgbmV3VERbIl90ZXh0Il0gICAgPSBpdGVtWyJ4LW5hbWUiXTsNCiAgICBuZXdURFsiY2xhc3MiXSAgICAgPSBpdGVtWyJ4LWNhdGVnb3J5Il07DQoNCiAgICBjcmVhdGVOZXdURChuZXdURCwgdHIpOw0KICAgIHRyLmxhc3RDaGlsZC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogbWFwcGluZ0RldGFpbCgiJyArIGl0ZW1bIngtZXBnIl0gKyAnIik7JykNCiAgICB0ci5sYXN0Q2hpbGQubGFzdENoaWxkLnN0eWxlLnBhZGRpbmcgPSAiNXB4IDEwcHgiOw0KDQogICAgLy8gQ3JlYXRlIFAgVEQgKFBsYXlsaXN0IE5hbWUpDQogICAgdmFyIG5ld1REID0gbmV3IE9iamVjdCgpOw0KICAgIG5ld1REWyJfZWxlbWVudCJdID0gIlAiOw0KICAgIG5ld1REWyJfdGV4dCJdICAgID0gaXRlbVsiX2ZpbGUubTN1Lm5hbWUiXTsNCiAgICBuZXdURFsiY2xhc3MiXSAgICAgPSBpdGVtWyJ0YWJsZUVsbGlwc2lzIl07DQogICAgDQogICAgY3JlYXRlTmV3VEQobmV3VEQsIHRyKTsNCiAgICB0ci5sYXN0Q2hpbGQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IG1hcHBpbmdEZXRhaWwoIicgKyBpdGVtWyJ4LWVwZyJdICsgJyIpOycpDQogICAgDQogICAgLy8gQ3JlYXRlIFAgVEQgKEdyb3VwIFRpdGxlKQ0KICAgIHZhciBuZXdURCA9IG5ldyBPYmplY3QoKTsNCiAgICBuZXdURFsiX2VsZW1lbnQiXSA9ICJQIjsNCiAgICBuZXdURFsiX3RleHQiXSAgICA9IGl0ZW1bIngtZ3JvdXAtdGl0bGUiXTsNCiAgICBuZXdURFsiY2xhc3MiXSAgICAgPSBpdGVtWyJ0YWJsZUVsbGlwc2lzIl07DQogICAgDQogICAgY3JlYXRlTmV3VEQobmV3VEQsIHRyKTsNCiAgICB0ci5sYXN0Q2hpbGQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IG1hcHBpbmdEZXRhaWwoIicgKyBpdGVtWyJ4LWVwZyJdICsgJyIpOycpDQoNCiAgICANCiAgICAvLyBDcmVhdGUgUCBURCAoWE1MVFYgZmlsZSkNCiAgICB2YXIgbmV3VEQgPSBuZXcgT2JqZWN0KCk7DQogICAgbmV3VERbIl9lbGVtZW50Il0gICAgICAgPSAiUCI7DQogICAgbmV3VERbImNsYXNzIl0gICAgPSAidGFibGVFbGxpcHNpcyI7DQogICAgbmV3VERbIl90ZXh0Il0gPSAiLSINCg0KICAgIGlmIChhbGxYbWx0dkZpbGVzLmluZGV4T2YoaXRlbVsieC14bWx0di1maWxlIl0pICE9IC0xKSB7DQogICAgICB2YXIgeFhtbHR2RmlsZSA9IGl0ZW1bIngteG1sdHYtZmlsZSJdOw0KICAgICAgc3dpdGNoKHhYbWx0dkZpbGUpIHsNCiAgICAgICAgY2FzZSAiLSI6ICAgICAgICAgICBuZXdURFsiX3RleHQiXSAgPSB4WG1sdHZGaWxlOyBicmVhazsNCiAgICAgICAgY2FzZSAieFRlVmUgRHVtbXkiOiBuZXdURFsiX3RleHQiXSAgPSB4WG1sdHZGaWxlOyBicmVhazsNCiAgICAgICAgZGVmYXVsdDogICAgICAgICAgICBuZXdURFsiX3RleHQiXSAgPSBnZXRWYWx1ZUZyb21Qcm92aWRlckZpbGUoeFhtbHR2RmlsZSwgInhtbHR2IiwgIm5hbWUiKTsgYnJlYWs7DQogICAgICAgIA0KICAgICAgfQ0KICAgICAgLy9jb25zb2xlLmxvZyhuZXdURCk7DQoNCiAgICAgIC8vbmV3VERbIl90ZXh0Il0gICAgPSBpdGVtWyJ4LXhtbHR2LWZpbGUiXTsNCiAgICB9IGVsc2Ugew0KICAgICAgLy9uZXdURFsiX3RleHQiXSA9ICItIg0KICAgIH0NCiAgICBjcmVhdGVOZXdURChuZXdURCwgdHIpOw0KICAgIHRyLmxhc3RDaGlsZC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogbWFwcGluZ0RldGFpbCgiJyArIGl0ZW1bIngtZXBnIl0gKyAnIik7JykNCg0KICAgIC8vIENyZWF0ciBQIFREIChYTUxUViBjaGFubmVsIElEKQ0KICAgIG5ld1REWyJfZWxlbWVudCJdID0gIlAiOw0KICAgIG5ld1REWyJjbGFzcyJdICAgID0gInRhYmxlRWxsaXBzaXMiOw0KDQogICAgaWYgKGl0ZW1bIngtbWFwcGluZyJdICE9IHVuZGVmaW5lZCkgew0KICAgICAgbmV3VERbIl90ZXh0Il0gICAgPSBpdGVtWyJ4LW1hcHBpbmciXTsNCiAgICB9DQogICAgDQogICAgY3JlYXRlTmV3VEQobmV3VEQsIHRyKTsNCiAgICB0ci5sYXN0Q2hpbGQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IG1hcHBpbmdEZXRhaWwoIicgKyBpdGVtWyJ4LWVwZyJdICsgJyIpOycpDQoNCg0KICAgIHZhciB4WG1sdHZGaWxlICA9IGl0ZW1bIngteG1sdHYtZmlsZSJdOw0KICAgIHZhciB4TWFwcGluZyAgICA9IGl0ZW1bIngtbWFwcGluZyJdOw0KICAgIHZhciB0dmdJRCAgICAgICA9IGl0ZW1bInR2Zy1pZCJdOw0KICAgIA0KICAgIC8vY29uc29sZS5sb2coaXRlbVsieC1lcGciXSk7DQogICAgLy9jb25zb2xlLmxvZyhpdGVtKTsNCg0KICAgIGlmIChpdGVtWyJ4LWFjdGl2ZSJdID09IHRydWUpIHsNCiAgICAgIHRyLmNsYXNzTmFtZSA9ICJhY3RpdmVFUEciOw0KICAgIH0gZWxzZSB7DQogICAgICB0ci5jbGFzc05hbWUgPSAibm90QWN0aXZlRVBHIjsNCiAgICB9DQogICAgDQogIH0NCg0KICBzb3J0VGFibGUoMSk7DQoNCiAgc2V0VGltZW91dChmdW5jdGlvbigpeyANCiAgICBzaG93TG9hZGluZ1NjcmVlbihmYWxzZSk7DQogIH0sIDUpOw0KfQ0KDQpmdW5jdGlvbiBzZWFyY2hJbk1hcHBpbmcoZWxtKSB7DQoNCiAgdmFyIHNlYXJjaCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzZWFyY2hNYXBwaW5nIikudmFsdWU7DQogIHZhciB2YWx1ZXMgPSBnZXRPYmpLZXlzKHNlYXJjaE9iaikNCiAgDQogIGZvciAodmFyIGkgPSB2YWx1ZXMubGVuZ3RoIC0gMTsgaSA+PSAwOyBpLS0pIHsNCiAgICB2YXIgaWQgPSBzZWFyY2hPYmpbdmFsdWVzW2ldXTsNCiAgICB2YXIgYm9vbCA9IHZhbHVlc1tpXS50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKHNlYXJjaC50b0xvd2VyQ2FzZSgpKTsNCiAgICBzd2l0Y2goYm9vbCkgew0KICAgICAgY2FzZSB0cnVlOiAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpLnN0eWxlLmRpc3BsYXkgPSAiIjsgYnJlYWs7DQogICAgICBjYXNlIGZhbHNlOiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkuc3R5bGUuZGlzcGxheSA9ICJub25lIjsgYnJlYWs7DQogICAgfQ0KICB9DQoNCn0NCg0KZnVuY3Rpb24gbWFwcGluZ0RldGFpbCh4ZXBnKSB7DQogIA0KICBidWxrSURzICAgPSBuZXcgQXJyYXkoKTsNCiAgdmFyIGFjdGl2ZUVsZW1lbnQgPSBkb2N1bWVudC5hY3RpdmVFbGVtZW50Ow0KICAvLyBJZiBpbnB1dCBpZCwgcmV0dXJuDQogIGlmIChhY3RpdmVFbGVtZW50LnRhZ05hbWUgPT0gIklOUFVUIikgew0KICAgIHJldHVybg0KICB9DQoNCiAgaWYgKGJ1bGsgPT0gdHJ1ZSkgew0KICAgIHZhciBlbG0gPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCJidWxrIik7DQogICAgZm9yICh2YXIgaSA9IDE7IGkgPCBlbG0ubGVuZ3RoOyBpKyspIHsNCiAgICAgIGlmIChlbG1baV0uY2hlY2tlZCA9PSB0cnVlKSB7DQogICAgICAgIHZhciBpZCA9IGVsbVtpXS5wYXJlbnRFbGVtZW50LnBhcmVudEVsZW1lbnQuaWQ7DQogICAgICAgIGJ1bGtJRHMucHVzaChpZCkNCiAgICAgIH0NCiAgICAgIA0KICAgIH0NCg0KICAgIGlmIChidWxrSURzLmxlbmd0aCA9PSAwKSB7DQogICAgICBzaG93RWxlbWVudCgncG9wdXAnLCBmYWxzZSkNCiAgICAgIGFsZXJ0KCJObyBjaGFubmVscyBzZWxlY3RlZCBmb3IgZWRpdGluZyIpDQogICAgICByZXR1cm4NCiAgICB9DQoNCiAgICB4ZXBnID0gYnVsa0lEc1swXQ0KICB9DQoNCg0KICBjcmVhdGVTZWFyY2hPYmooKTsNCiAgDQogIHNob3dQb3BVcEVsZW1lbnQoJ21hcHBpbmctZGV0YWlsJyk7DQoNCiAgdmFyIHRoaXNDaGFubmVsID0geEVQR1siZXBnTWFwcGluZyJdW3hlcGddOw0KICAvL2NvbnNvbGUubG9nKHRoaXNDaGFubmVsKTsNCiAgdmFyIHhYbWx0dkZpbGUgID0gdGhpc0NoYW5uZWxbIngteG1sdHYtZmlsZSJdOw0KICB2YXIgeE1hcHBpbmcgICAgPSB0aGlzQ2hhbm5lbFsieC1tYXBwaW5nIl07DQogIHZhciB4Q2F0ZWdvcnkgICA9IHRoaXNDaGFubmVsWyJ4LWNhdGVnb3J5Il07DQoNCiAgaWYgKHhYbWx0dkZpbGUgPT0gdW5kZWZpbmVkKSB7DQogICAgdGhpc0NoYW5uZWxbIngteG1sdHYtZmlsZSJdID0gIi0iOw0KICAgIHhYbWx0dkZpbGUgPSAiLSI7DQogIH0NCg0KICBpZiAoeE1hcHBpbmcgPT0gdW5kZWZpbmVkKSB7DQogICAgdGhpc0NoYW5uZWxbIngtbWFwcGluZyJdID0gIi0iOw0KICAgIHhNYXBwaW5nID0gIi0iOw0KICB9DQoNCiAgLyoNCiAgY29uc29sZS5sb2coIklEOiIsIHhlcGcpOw0KICBjb25zb2xlLmxvZygiWE1MVFYgRmlsZToiLCB4WG1sdHZGaWxlKTsNCiAgY29uc29sZS5sb2coIk1hcHBpbmc6IiwgeE1hcHBpbmcpOw0KICAqLw0KDQogIHZhciBrZXlzID0gZ2V0T2JqS2V5cyh0aGlzQ2hhbm5lbCk7DQogIGZvciAodmFyIGkgPSAwOyBpIDwga2V5cy5sZW5ndGg7IGkrKykgew0KICAgIGlmKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGtleXNbaV0pKXsNCiAgICAgIHZhciB0ZCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGtleXNbaV0pDQogICAgfSBlbHNlIHsNCiAgICAgIHZhciB0ZCA9IHVuZGVmaW5lZDsNCiAgICB9DQogICAgDQogICAgdmFyIG5ld0l0ZW0gPSBuZXcgT2JqZWN0KCk7DQogICAgdmFyIHZhbHVlcywgdGV4dCA9IG5ldyBBcnJheSgpOw0KICAgIHN3aXRjaChrZXlzW2ldKSB7DQogICAgICBjYXNlICJ4LXhtbHR2LWZpbGUiOiANCiAgICAgICAgdmFyIGZpbGVJRHMgPSBnZXRPYmpLZXlzKHhFUEdbInhtbHR2TWFwIl0pOw0KICAgICAgICB2YXIgdmFsdWUgPSBuZXcgQXJyYXkoIi0iKTsNCiAgICAgICAgdmFyIHRleHQgID0gbmV3IEFycmF5KCItIik7DQoNCiAgICAgICAgZm9yICh2YXIgaiA9IGZpbGVJRHMubGVuZ3RoIC0gMTsgaiA+PSAwOyBqLS0pIHsNCiAgICAgICAgICBpZiAoZmlsZUlEc1tqXSAhPSAieFRlVmUgRHVtbXkiKSB7DQogICAgICAgICAgICB2YWx1ZS5wdXNoKGdldFZhbHVlRnJvbVByb3ZpZGVyRmlsZShmaWxlSURzW2pdLCAieG1sdHYiLCAiZmlsZS54dGV2ZSIpKQ0KICAgICAgICAgICAgdGV4dC5wdXNoKGdldFZhbHVlRnJvbVByb3ZpZGVyRmlsZShmaWxlSURzW2pdLCAieG1sdHYiLCAibmFtZSIpKQ0KICAgICAgICAgIH0gZWxzZSB7DQogICAgICAgICAgICB2YWx1ZS5wdXNoKGZpbGVJRHNbal0pDQogICAgICAgICAgICB0ZXh0LnB1c2goZmlsZUlEc1tqXSkNCiAgICAgICAgICB9DQogICAgICAgICAgDQogICAgICAgIH0NCiAgICAgICAgDQogICAgICAgIG5ld0l0ZW1bIl9lbGVtZW50Il0gICAgICAgPSAiU0VMRUNUIjsNCiAgICAgICAgbmV3SXRlbVsiX29wdGlvblZhbHVlcyJdICA9IHZhbHVlOw0KICAgICAgICBuZXdJdGVtWyJfb3B0aW9uVGV4dCJdICAgID0gdGV4dA0KICAgICAgICBuZXdJdGVtWyJ2YWx1ZSJdICAgICAgICAgID0geFhtbHR2RmlsZTsNCiAgICAgICAgbmV3SXRlbVsib25jaGFuZ2UiXSAgICAgICA9ICdqYXZhc2NyaXB0OiBjaGFuZ2VYbWx0dkZpbGUoIicgKyB4ZXBnICsgJyIsdGhpcyk7JzsNCg0KICAgICAgICBicmVhazsNCg0KICAgICAgY2FzZSAieC1tYXBwaW5nIjogDQoNCiAgICAgICAgdmFyIHZhbHVlcyA9IGdldE9iaktleXMoeEVQR1sieG1sdHZNYXAiXVt4WG1sdHZGaWxlXSk7DQoNCiAgICAgICAgZm9yICh2YXIgaiA9IDA7IGogPCB2YWx1ZXMubGVuZ3RoOyBqKyspIHsNCiAgICAgICAgICANCiAgICAgICAgICBpZiAoeEVQR1sieG1sdHZNYXAiXVt4WG1sdHZGaWxlXVt2YWx1ZXNbal1dLmhhc093blByb3BlcnR5KCdkaXNwbGF5LW5hbWUnKSA9PSB0cnVlKSB7DQogICAgICAgICAgICB2YXIgZGlzcGxheU5hbWUgPSB4RVBHWyJ4bWx0dk1hcCJdW3hYbWx0dkZpbGVdW3ZhbHVlc1tqXV1bImRpc3BsYXktbmFtZSJdOw0KICAgICAgICAgIH0gZWxzZSB7DQogICAgICAgICAgICB2YXIgZGlzcGxheU5hbWUgPSAiLSINCiAgICAgICAgICB9DQogICAgICAgICAgDQogICAgICAgICAgLy90ZXh0W2pdID0gdmFsdWVzW2pdICsgIiAoIiArIGRpc3BsYXlOYW1lICsgIikiOw0KICAgICAgICAgIHRleHRbal0gPSBkaXNwbGF5TmFtZSArICIgKCIgKyB2YWx1ZXNbal0gICsgIikiOw0KICAgICAgICB9DQoNCiAgICAgICAgdGV4dC51bnNoaWZ0KCItIik7DQogICAgICAgIHZhbHVlcy51bnNoaWZ0KCItIik7DQogICAgICAgIG5ld0l0ZW1bIl9lbGVtZW50Il0gICAgICAgPSAiU0VMRUNUIjsNCiAgICAgICAgbmV3SXRlbVsiX29wdGlvblZhbHVlcyJdICA9IHZhbHVlczsNCiAgICAgICAgbmV3SXRlbVsiX29wdGlvblRleHQiXSAgICA9IHRleHQNCiAgICAgICAgbmV3SXRlbVsidmFsdWUiXSAgICAgICAgICA9IHhNYXBwaW5nOw0KICAgICAgICBuZXdJdGVtWyJvbmNoYW5nZSJdICAgICAgID0gJ2phdmFzY3JpcHQ6IG1hcHBpbmdDaGFubmVsKCInICsgeGVwZyArICciLHRoaXMpOyc7DQogICAgICAgIGJyZWFrOw0KDQogICAgICBjYXNlICJ4LWNhdGVnb3J5IjoNCiAgICAgICAgLy92YXIgdmFsdWVzID0gcGxleENhdGVnb3JpZXNWYWx1ZXMNCiAgICAgICAgbmV3SXRlbVsiX2VsZW1lbnQiXSAgICAgICA9ICJTRUxFQ1QiOw0KICAgICAgICBuZXdJdGVtWyJfb3B0aW9uVmFsdWVzIl0gID0gcGxleENhdGVnb3JpZXNWYWx1ZXM7DQogICAgICAgIG5ld0l0ZW1bIl9vcHRpb25UZXh0Il0gICAgPSBwbGV4Q2F0ZWdvcmllc09wdGlvbjsNCiAgICAgICAgbmV3SXRlbVsidmFsdWUiXSAgICAgICAgICA9IHhDYXRlZ29yeTsNCiAgICAgICAgbmV3SXRlbVsib25jaGFuZ2UiXSAgICAgICA9ICdzYXZlQ2F0ZWdvcnkoIicgKyB4ZXBnICsgJyIpJzsNCiAgICAgICAgYnJlYWs7DQoNCiAgICAgIGNhc2UgInR2Zy1sb2dvIjoNCiAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNoYW5uZWwtbG9nbyIpLnNldEF0dHJpYnV0ZSgic3JjIiwgdGhpc0NoYW5uZWxbInR2Zy1sb2dvIl0pOw0KICAgICAgICBuZXdJdGVtWyJfZWxlbWVudCJdICAgICAgID0gIklOUFVUIjsNCiAgICAgICAgbmV3SXRlbVsidHlwZSJdICAgICAgICAgICA9ICJ0ZXh0IjsNCiAgICAgICAgbmV3SXRlbVsidmFsdWUiXSAgICAgICAgICA9IHRoaXNDaGFubmVsWyJ0dmctbG9nbyJdOw0KICAgICAgICBuZXdJdGVtWyJvbmZvY3Vzb3V0Il0gICAgID0gJ3NhdmVDaGFubmVsTG9nbygiJyArIHhlcGcgKyAnIiknOw0KICAgICAgICBuZXdJdGVtWyJwbGFjZWhvbGRlciJdICAgID0gJ0ltYWdlIFVSTCc7DQogICAgICAgIGJyZWFrOw0KDQogICAgICBjYXNlICJ4LXVwZGF0ZS1jaGFubmVsLWljb24iOg0KICAgICAgICBuZXdJdGVtWyJfZWxlbWVudCJdICAgICAgID0gIklOUFVUIjsNCiAgICAgICAgbmV3SXRlbVsidHlwZSJdICAgICAgICAgICA9ICJjaGVja2JveCI7DQogICAgICAgIHN3aXRjaChKU09OLnBhcnNlKHRoaXNDaGFubmVsWyJ4LXVwZGF0ZS1jaGFubmVsLWljb24iXSkpIHsNCiAgICAgICAgICBjYXNlIHRydWU6IG5ld0l0ZW1bImNoZWNrZWQiXSAgICAgICAgPSB0aGlzQ2hhbm5lbFsieC11cGRhdGUtY2hhbm5lbC1pY29uIl07DQogICAgICAgICAgICBicmVhaw0KICAgICAgICB9DQogICAgICAgIG5ld0l0ZW1bIm9uY2hhbmdlIl0gICAgID0gJ3NhdmVDaGFubmVsSWNvblVwZGF0ZSgiJyArIHhlcGcgKyAnIiknOw0KICAgICAgICBicmVhazsNCg0KICAgICAgY2FzZSAieC1uYW1lIjoNCiAgICAgICAgbmV3SXRlbVsiX2VsZW1lbnQiXSAgICAgICA9ICJJTlBVVCI7DQogICAgICAgIG5ld0l0ZW1bInR5cGUiXSAgICAgICAgICAgPSAidGV4dCI7DQogICAgICAgIG5ld0l0ZW1bInZhbHVlIl0gICAgICAgICAgPSB0aGlzQ2hhbm5lbFsieC1uYW1lIl07DQogICAgICAgIG5ld0l0ZW1bIm9uZm9jdXNvdXQiXSAgICAgPSAnc2F2ZUNoYW5uZWxOYW1lKCInICsgeGVwZyArICciKSc7DQogICAgICAgIG5ld0l0ZW1bInBsYWNlaG9sZGVyIl0gICAgPSAnQ2hhbm5lbCBOYW1lJzsNCiAgICAgICAgYnJlYWs7DQoNCiAgICAgIGNhc2UgIngtdXBkYXRlLWNoYW5uZWwtbmFtZSI6DQogICAgICAgIGlmICh0aGlzQ2hhbm5lbC5oYXNPd25Qcm9wZXJ0eSgiX3V1aWQua2V5IikgPT0gdHJ1ZSkgew0KICAgICAgICAgIG5ld0l0ZW1bIl9lbGVtZW50Il0gICAgICAgPSAiSU5QVVQiOw0KICAgICAgICAgIG5ld0l0ZW1bInR5cGUiXSAgICAgICAgICAgPSAiY2hlY2tib3giOw0KICAgICAgICAgIHN3aXRjaChKU09OLnBhcnNlKHRoaXNDaGFubmVsWyJ4LXVwZGF0ZS1jaGFubmVsLW5hbWUiXSkpIHsNCiAgICAgICAgICAgIGNhc2UgdHJ1ZTogbmV3SXRlbVsiY2hlY2tlZCJdICAgICAgICA9IHRoaXNDaGFubmVsWyJ4LXVwZGF0ZS1jaGFubmVsLW5hbWUiXTsNCiAgICAgICAgICAgICAgYnJlYWsNCiAgICAgICAgICB9DQogICAgICAgICAgbmV3SXRlbVsib25jaGFuZ2UiXSAgICAgPSAnc2F2ZUNoYW5uZWxOYW1lVXBkYXRlKCInICsgeGVwZyArICciKSc7DQogICAgICAgICAgc2hvd0VsZW1lbnQoInN0cmVhbUhhc0NVSUQiLCB0cnVlKQ0KDQogICAgICAgICAgYnJlYWs7DQogICAgICAgIH0gZWxzZSB7DQogICAgICAgICAgLy9zdHJlYW1IYXNDVUlEDQogICAgICAgICAgc2hvd0VsZW1lbnQoInN0cmVhbUhhc0NVSUQiLCBmYWxzZSkNCiAgICAgICAgICBicmVhazsNCiAgICAgICAgfQ0KICAgICAgICANCiAgICAgIGNhc2UgIngtYWN0aXZlIjoNCiAgICAgICAgbmV3SXRlbVsiX2VsZW1lbnQiXSAgICAgICA9ICJJTlBVVCI7DQogICAgICAgIG5ld0l0ZW1bInR5cGUiXSAgICAgICAgICAgPSAiY2hlY2tib3giOw0KICAgICAgICBzd2l0Y2goSlNPTi5wYXJzZSh0aGlzQ2hhbm5lbFsieC1hY3RpdmUiXSkpIHsNCiAgICAgICAgICBjYXNlIHRydWU6IG5ld0l0ZW1bImNoZWNrZWQiXSAgICAgICAgPSB0aGlzQ2hhbm5lbFsieC1hY3RpdmUiXTsNCiAgICAgICAgICAgIGJyZWFrDQogICAgICAgIH0NCiAgICAgICAgbmV3SXRlbVsib25jaGFuZ2UiXSAgICAgPSAnc2F2ZUNoYW5uZWxTdGF0dXMoIicgKyB4ZXBnICsgJyIpJzsNCiAgICAgICAgYnJlYWs7DQoNCiAgICAgIGNhc2UgIngtZ3JvdXAtdGl0bGUiOg0KICAgICAgICBuZXdJdGVtWyJfZWxlbWVudCJdICAgICAgID0gIklOUFVUIjsNCiAgICAgICAgbmV3SXRlbVsidHlwZSJdICAgICAgICAgICA9ICJ0ZXh0IjsNCiAgICAgICAgbmV3SXRlbVsidmFsdWUiXSAgICAgICAgICA9IHRoaXNDaGFubmVsWyJ4LWdyb3VwLXRpdGxlIl07DQogICAgICAgIG5ld0l0ZW1bIm9uZm9jdXNvdXQiXSAgICAgPSAnc2F2ZUdyb3VwVGl0bGUoIicgKyB4ZXBnICsgJyIpJzsNCiAgICAgICAgbmV3SXRlbVsicGxhY2Vob2xkZXIiXSAgICA9ICdHcm91cCBUaXRsZSc7DQogICAgICAgIGJyZWFrOw0KDQogICAgICBkZWZhdWx0Og0KICAgICAgICBuZXdJdGVtWyJfZWxlbWVudCJdICAgICAgID0gIlAiOw0KICAgICAgICBuZXdJdGVtWyJfdGV4dCJdICAgICAgICAgID0gdGhpc0NoYW5uZWxba2V5c1tpXV07DQogICAgICAgIGJyZWFrOw0KICAgICAgDQogICAgfQ0KICAgIA0KICAgIGlmICh0ZCAhPSB1bmRlZmluZWQpIHsNCiAgICAgIHRkLmlubmVySFRNTCA9ICIiOw0KICAgICAgdmFyIGVsZW1lbnQgPSBjcmVhdGVOZXdFbGVtZW50KG5ld0l0ZW0pDQogICAgICAvL2NvbnNvbGUubG9nKGVsZW1lbnQpOw0KICAgICAgdGQuYXBwZW5kQ2hpbGQoZWxlbWVudCk7DQogICAgfQ0KDQogIH0NCg0KICBpZiAoYnVsayA9PSB0cnVlKSB7DQoNCiAgICB2YXIgZWxtID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSgibm9CdWxrIik7DQogICAgZm9yICh2YXIgaSA9IDA7IGkgPCBlbG0ubGVuZ3RoOyBpKyspIHsNCiAgICAgIGVsbVtpXS5sYXN0Q2hpbGQuc2V0QXR0cmlidXRlKCJyZWFkb25seSIsIHRydWUpDQogICAgICBlbG1baV0ubGFzdENoaWxkLnN0eWxlLmJvcmRlckNvbG9yID0gInJlZCI7DQogICAgfQ0KDQogICAgeGVwZyA9IGJ1bGtJRHNbMF0NCiAgfQ0KDQogIHNvcnRTZWxlY3QoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIngteG1sdHYtZmlsZSIpLmxhc3RDaGlsZCk7DQogIHNvcnRTZWxlY3QoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIngtbWFwcGluZyIpLmxhc3RDaGlsZCk7DQogIA0KfQ0KDQpmdW5jdGlvbiBzb3J0U2VsZWN0KGVsZW0pIHsNCg0KICB2YXIgdG1wQXJ5ID0gW107DQogIC8vIFJldGFpbiBzZWxlY3RlZCB2YWx1ZSBiZWZvcmUgc29ydGluZw0KICB2YXIgc2VsZWN0ZWRWYWx1ZSA9IGVsZW1bZWxlbS5zZWxlY3RlZEluZGV4XS52YWx1ZTsNCiAgLy8gR3JhYiBhbGwgZXhpc3RpbmcgZW50cmllcw0KICBmb3IgKHZhciBpPTA7aTxlbGVtLm9wdGlvbnMubGVuZ3RoO2krKykgdG1wQXJ5LnB1c2goZWxlbS5vcHRpb25zW2ldKTsNCiAgLy8gU29ydCBhcnJheSBieSB0ZXh0IGF0dHJpYnV0ZQ0KICB0bXBBcnkuc29ydChmdW5jdGlvbihhLGIpeyByZXR1cm4gKGEudGV4dCA8IGIudGV4dCk/LTE6MTsgfSk7DQogIC8vIFdpcGUgb3V0IGV4aXN0aW5nIGVsZW1lbnRzDQogIHdoaWxlIChlbGVtLm9wdGlvbnMubGVuZ3RoID4gMCkgZWxlbS5vcHRpb25zWzBdID0gbnVsbDsNCiAgLy8gUmVzdG9yZSBzb3J0ZWQgZWxlbWVudHMNCiAgdmFyIG5ld1NlbGVjdGVkSW5kZXggPSAwOw0KICBmb3IgKHZhciBpPTA7aTx0bXBBcnkubGVuZ3RoO2krKykgew0KICAgICAgZWxlbS5vcHRpb25zW2ldID0gdG1wQXJ5W2ldOw0KICAgICAgaWYoZWxlbS5vcHRpb25zW2ldLnZhbHVlID09IHNlbGVjdGVkVmFsdWUpIG5ld1NlbGVjdGVkSW5kZXggPSBpOw0KICB9DQogIGVsZW0uc2VsZWN0ZWRJbmRleCA9IG5ld1NlbGVjdGVkSW5kZXg7IC8vIFNldCBuZXcgc2VsZWN0ZWQgaW5kZXggYWZ0ZXIgc29ydGluZw0KICByZXR1cm47DQp9DQoNCg0KZnVuY3Rpb24gc3dpdGNoQ2hhbm5lbFN0YXR1cyh4ZXBnKSB7DQogIHZhciB0aGlzQ2hhbm5lbCA9IHhFUEdbImVwZ01hcHBpbmciXVt4ZXBnXTsNCiAgdmFyIHhYbWx0dkZpbGUgPSB0aGlzQ2hhbm5lbFsieC14bWx0di1maWxlIl07DQoNCiAgaWYgKHhFUEdbInhtbHR2TWFwIl0uaGFzT3duUHJvcGVydHkoeFhtbHR2RmlsZSkgPT0gdHJ1ZSkgew0KICAgIGlmICh0aGlzQ2hhbm5lbFsieC1tYXBwaW5nIl0gIT0gIi0iICYmIHRoaXNDaGFubmVsWyJ4LW1hcHBpbmciXSAhPSB1bmRlZmluZWQpIHsNCiAgICAgIHRoaXNDaGFubmVsWyJ4LWFjdGl2ZSJdID0gIXRoaXNDaGFubmVsWyJ4LWFjdGl2ZSJdOw0KICAgICAgdmFyIHRyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoeGVwZyk7DQogICAgICBzd2l0Y2godGhpc0NoYW5uZWxbIngtYWN0aXZlIl0pIHsNCiAgICAgICAgY2FzZSB0cnVlOiB0ci5jbGFzc05hbWUgPSAiYWN0aXZlRVBHIjsgYnJlYWs7DQogICAgICAgIGNhc2UgZmFsc2U6IHRyLmNsYXNzTmFtZSA9ICJub3RBY3RpdmVFUEciOyBicmVhazsNCiAgICAgIH0NCiAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJsb2dJbmZvIikuY2xhc3NOYW1lID0gIm5vdFZpc2libGUiOw0KDQogICAgfSBlbHNlIHsNCiAgICAgIHZhciBlcnIgPSAiWE1MVFYgQ2hhbm5lbCBpcyBub3Qgc2VsZWN0ZWQiDQogICAgICBhbGVydChlcnIpDQogICAgICAvKg0KICAgICAgdmFyIG5ld0Vycm9yID0gbmV3IE9iamVjdCgpOw0KICAgICAgbmV3RXJyb3JbImVyciJdID0gIkNoYW5uZWwgaXMgbm90IHNlbGVjdGVkIjsNCiAgICAgIGNoZWNrRXJyKG5ld0Vycm9yKTsNCiAgICAgICovDQogICAgfQ0KDQogIH0gZWxzZSB7DQogICAgdmFyIGVyciA9ICJYTUxUViBGaWxlIGlzIG5vdCBzZWxlY3RlZCINCiAgICBhbGVydChlcnIpDQogICAgLyoNCiAgICB2YXIgbmV3RXJyb3IgPSBuZXcgT2JqZWN0KCk7DQogICAgbmV3RXJyb3JbImVyciJdID0gIlhNTFRWIGZpbGUgaXMgbm90IHNlbGVjdGVkIjsNCiAgICBjaGVja0VycihuZXdFcnJvcik7DQogICAgKi8NCiAgfQ0KDQogIHNlYXJjaEluTWFwcGluZygpOw0KDQp9DQoNCmZ1bmN0aW9uIGNyZWF0ZU5ld0VsZW1lbnQobmV3SXRlbSkgew0KDQogIHZhciBlbGVtZW50ID0gY3JlYXRlRWxlbWVudChuZXdJdGVtKTsNCiAgDQogIHN3aXRjaChuZXdJdGVtWyJfZWxlbWVudCJdKSB7DQogICAgY2FzZSAiU0VMRUNUIjoNCiAgICAgIC8vZWxlbWVudFtdDQogICAgICB2YXIgdmFsdWVzICA9IG5ld0l0ZW1bIl9vcHRpb25WYWx1ZXMiXTsNCiAgICAgIHZhciB0ZXh0ICAgID0gbmV3SXRlbVsiX29wdGlvblRleHQiXTsNCg0KICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB2YWx1ZXMubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgLy9jb25zb2xlLmxvZyhpdGVtKTsNCiAgICAgICAgdmFyIG5ld0VudHJ5ID0gbmV3IE9iamVjdDsNCiAgICAgICAgbmV3RW50cnlbIl9lbGVtZW50Il0gID0gIk9QVElPTiI7DQogICAgICAgIG5ld0VudHJ5WyJfdGV4dCJdICAgICA9IHRleHRbaV07DQogICAgICAgIG5ld0VudHJ5WyJ2YWx1ZSJdICAgICA9IHZhbHVlc1tpXTsNCiAgICAgICAgZWxlbWVudC5hcHBlbmRDaGlsZChjcmVhdGVFbGVtZW50KG5ld0VudHJ5KSk7DQogICAgICB9DQogICAgICBlbGVtZW50LnZhbHVlID0gbmV3SXRlbVsidmFsdWUiXTsNCiAgICAgIGJyZWFrOw0KICAgIA0KICAgIGRlZmF1bHQ6IA0KICAgICAgDQogICAgICAvL2VsZW1lbnQuYXBwZW5kQ2hpbGQoY3JlYXRlRWxlbWVudChuZXdJdGVtKSk7DQogICAgICBicmVhazsNCiAgfQ0KICANCiAgcmV0dXJuIGVsZW1lbnQ7DQp9DQoNCmZ1bmN0aW9uIHNhdmVCdWxrKGtleSwgdmFsdWUpIHsNCiAgZm9yICh2YXIgaSA9IDA7IGkgPCBidWxrSURzLmxlbmd0aDsgaSsrKSB7DQogICAgdmFyIGlkID0gYnVsa0lEc1tpXQ0KICAgIHZhciB0aGlzQ2hhbm5lbCA9IHhFUEdbImVwZ01hcHBpbmciXVtpZF07DQogICAgdGhpc0NoYW5uZWxba2V5XSA9IHZhbHVlOw0KDQogICAgc3dpdGNoKGtleSkgew0KICAgICAgY2FzZSAidHZnLWxvZ28iOiAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5jaGlsZE5vZGVzWzJdLmxhc3RDaGlsZC5zZXRBdHRyaWJ1dGUoInNyYyIsIHZhbHVlKTsgYnJlYWs7DQogICAgICANCiAgICAgIGNhc2UgIngtY2F0ZWdvcnkiOiAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkuY2hpbGROb2Rlc1szXS5sYXN0Q2hpbGQuY2xhc3NOYW1lID0gdmFsdWU7IGJyZWFrOw0KDQogICAgICBjYXNlICJ4LXhtbHR2LWZpbGUiOg0KICAgICAgICB2YXIgZWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5jaGlsZE5vZGVzWzZdLmxhc3RDaGlsZDsNCiAgICAgICAgc3dpdGNoKHZhbHVlKSB7DQogICAgICAgICAgY2FzZSAiLSI6ICAgICAgICAgICBlbGVtZW50LmlubmVySFRNTCA9IHZhbHVlOyBicmVhazsNCiAgICAgICAgICBjYXNlICJ4VGVWZSBEdW1teSI6IGVsZW1lbnQuaW5uZXJIVE1MID0gdmFsdWU7IGJyZWFrOw0KICAgICAgICAgIGRlZmF1bHQ6ICAgICAgICAgICAgZWxlbWVudC5pbm5lckhUTUwgPSBnZXRWYWx1ZUZyb21Qcm92aWRlckZpbGUodmFsdWUsICJ4bWx0diIsICJuYW1lIik7IGJyZWFrOw0KICAgICAgICB9DQoNCg0KDQogICAgICAvL2RvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5jaGlsZE5vZGVzWzVdLmxhc3RDaGlsZC5pbm5lckhUTUwgPSB2YWx1ZS5yZXBsYWNlKC9eLipbXFxcL10vLCAnJyk7IGJyZWFrOw0KICAgICAgY2FzZSAieC1tYXBwaW5nIjogICANCiAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpLmNoaWxkTm9kZXNbN10ubGFzdENoaWxkLmlubmVySFRNTCA9IHZhbHVlOw0KICAgICAgICBpZiAodmFsdWUgPT0gIi0iKSB7DQogICAgICAgICAgdGhpc0NoYW5uZWxbIngtYWN0aXZlIl0gPSBmYWxzZTsNCiAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkuY2xhc3NOYW1lID0gIm5vdEFjdGl2ZUVQRyI7DQogICAgICAgIH0gZWxzZSB7DQogICAgICAgICAgdGhpc0NoYW5uZWxbIngtYWN0aXZlIl0gPSB0cnVlOw0KICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5jbGFzc05hbWUgPSAiYWN0aXZlRVBHIjsNCiAgICAgICAgfQ0KICAgICAgICBicmVhazsNCg0KICAgICAgY2FzZSAieC1ncm91cC10aXRsZSI6IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5jaGlsZE5vZGVzWzVdLmxhc3RDaGlsZC5pbm5lckhUTUwgPSB2YWx1ZTsgYnJlYWs7DQoNCiAgICAgIGNhc2UgIngtYWN0aXZlIjoNCiAgICAgICAgdmFyIHRyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpOw0KICAgICAgICANCiAgICAgICAgaWYgKHRoaXNDaGFubmVsLmhhc093blByb3BlcnR5KCJ4LXhtbHR2LWZpbGUiKSA9PSB0cnVlKSB7DQogICAgICAgICAgaWYgKHRoaXNDaGFubmVsWyJ4LW1hcHBpbmciXSAhPSAiLSIgJiYgdGhpc0NoYW5uZWxbIngtbWFwcGluZyJdICE9IHVuZGVmaW5lZCAmJiB0aGlzQ2hhbm5lbFsieC14bWx0di1maWxlIl0gIT0gIi0iICYmIHRoaXNDaGFubmVsWyJ4LXhtbHR2LWZpbGUiXSAhPSB1bmRlZmluZWQpIHsNCiAgICAgICAgICAgIHN3aXRjaCh0aGlzQ2hhbm5lbFsieC1hY3RpdmUiXSkgew0KICAgICAgICAgICAgICBjYXNlIHRydWU6IHRyLmNsYXNzTmFtZSA9ICJhY3RpdmVFUEciOyBicmVhazsNCiAgICAgICAgICAgICAgY2FzZSBmYWxzZTogdHIuY2xhc3NOYW1lID0gIm5vdEFjdGl2ZUVQRyI7IGJyZWFrOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgfQ0KICAgICAgICB9DQoNCiAgICB9DQoNCiAgICB1cGRhdGVDaGFubmVsTG9nbyhpZCkNCg0KICB9DQoNCn0NCg0KZnVuY3Rpb24gdXBkYXRlQ2hhbm5lbExvZ28oeGVwZykgew0KICB2YXIgdGhpc0NoYW5uZWwgPSB4RVBHWyJlcGdNYXBwaW5nIl1beGVwZ107DQogIGlmICh0aGlzQ2hhbm5lbFsieC11cGRhdGUtY2hhbm5lbC1pY29uIl0gPT0gdHJ1ZSkgew0KICAgIHZhciB4WG1sdHZGaWxlICA9IHRoaXNDaGFubmVsWyJ4LXhtbHR2LWZpbGUiXTsNCiAgICB2YXIgeE1hcHBpbmcgICAgPSB0aGlzQ2hhbm5lbFsieC1tYXBwaW5nIl07DQoNCiAgICBpZiAoeFhtbHR2RmlsZSAhPSAiLSIgJiYgeFhtbHR2RmlsZS5sZW5ndGggPiAwICYmIHhNYXBwaW5nICE9ICItIiAmJiB4TWFwcGluZy5sZW5ndGggPiAwKSB7DQogICAgICBpZiAoeEVQR1sieG1sdHZNYXAiXVt4WG1sdHZGaWxlXVt4TWFwcGluZ10uaGFzT3duUHJvcGVydHkoImljb24iKSkgew0KICAgICAgICB2YXIgbG9nb1VSTCA9IHhFUEdbInhtbHR2TWFwIl1beFhtbHR2RmlsZV1beE1hcHBpbmddWyJpY29uIl07DQogICAgICAgIHRoaXNDaGFubmVsWyJ0dmctbG9nbyJdID0gbG9nb1VSTDsNCiAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoeGVwZykuY2hpbGROb2Rlc1syXS5sYXN0Q2hpbGQuc2V0QXR0cmlidXRlKCJzcmMiLCBsb2dvVVJMKTsNCiAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNoYW5uZWwtbG9nbyIpLnNldEF0dHJpYnV0ZSgic3JjIiwgbG9nb1VSTCk7DQogICAgICB9IGVsc2Ugew0KICAgICAgICBhbGVydCgiTm8gbG9nbyBVUkwgaW4gdGhlIFhNTFRWIGZpbGUgYXZhaWxhYmxlIikNCiAgICAgIH0NCiAgICAgIA0KICAgIH0NCiAgICANCiAgICAvKg0KICAgIGlmICh4RVBHWyJ4bWx0dk1hcCJdW3hYbWx0dkZpbGVdW3hNYXBwaW5nXVsiaWNvbiJdICE9IHVuZGVmaW5lZCkgew0KDQogICAgICANCiAgICB9DQogICAgKi8NCiAgICANCiAgfQ0KfQ0KDQpmdW5jdGlvbiBzYXZlQ2hhbm5lbExvZ28oeGVwZykgew0KICBpZiAoYnVsayA9PSBmYWxzZSkgew0KICAgIHZhciB0aGlzQ2hhbm5lbCA9IHhFUEdbImVwZ01hcHBpbmciXVt4ZXBnXTsNCiAgICB0aGlzQ2hhbm5lbFsidHZnLWxvZ28iXSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0dmctbG9nbyIpLmxhc3RDaGlsZC52YWx1ZTsNCiAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCh4ZXBnKS5jaGlsZE5vZGVzWzJdLmxhc3RDaGlsZC5zZXRBdHRyaWJ1dGUoInNyYyIsIHRoaXNDaGFubmVsWyJ0dmctbG9nbyJdKTsNCiAgICBtYXBwaW5nRGV0YWlsKHhlcGcpOw0KICAgIHJldHVybg0KICB9DQoNCiAgaWYgKGJ1bGsgPT0gdHJ1ZSkgew0KICAgIHZhciBrZXkgICA9ICJ0dmctbG9nbyI7DQogICAgdmFyIHZhbHVlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInR2Zy1sb2dvIikubGFzdENoaWxkLnZhbHVlOw0KICAgIHNhdmVCdWxrKGtleSwgdmFsdWUpOw0KDQogICAgbWFwcGluZ0RldGFpbCh4ZXBnKTsNCiAgICByZXR1cm4NCiAgfQ0KfQ0KDQpmdW5jdGlvbiBzYXZlQ2hhbm5lbEljb25VcGRhdGUoeGVwZykgew0KDQogIHZhciBrZXkgICA9ICJ4LXVwZGF0ZS1jaGFubmVsLWljb24iOw0KICB2YXIgdmFsdWUgPSBKU09OLnBhcnNlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ4LXVwZGF0ZS1jaGFubmVsLWljb24iKS5sYXN0Q2hpbGQuY2hlY2tlZCk7DQogIGlmIChidWxrID09IGZhbHNlKSB7DQogICAgdmFyIHRoaXNDaGFubmVsID0geEVQR1siZXBnTWFwcGluZyJdW3hlcGddOw0KICAgIHRoaXNDaGFubmVsW2tleV0gPSB2YWx1ZQ0KICAgIHVwZGF0ZUNoYW5uZWxMb2dvKHhlcGcpDQogICAgDQogICAgbWFwcGluZ0RldGFpbCh4ZXBnKTsNCiAgICBzZWFyY2hJbk1hcHBpbmcoKTsNCiAgICByZXR1cm4NCiAgfQ0KDQogIGlmIChidWxrID09IHRydWUpIHsNCiAgICBzYXZlQnVsayhrZXksIHZhbHVlKTsNCiAgICBtYXBwaW5nRGV0YWlsKHhlcGcpOw0KICAgIHJldHVybg0KICB9DQogIA0KfQ0KDQpmdW5jdGlvbiBzYXZlQ2hhbm5lbE5hbWUoeGVwZykgew0KICBpZiAoYnVsayA9PSBmYWxzZSkgew0KICAgIHZhciB0aGlzQ2hhbm5lbCA9IHhFUEdbImVwZ01hcHBpbmciXVt4ZXBnXTsNCiAgICB0aGlzQ2hhbm5lbFsieC1uYW1lIl0gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgieC1uYW1lIikubGFzdENoaWxkLnZhbHVlOw0KICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHhlcGcpLmNoaWxkTm9kZXNbM10ubGFzdENoaWxkLmlubmVySFRNTCA9IHRoaXNDaGFubmVsWyJ4LW5hbWUiXTsNCiAgICBtYXBwaW5nRGV0YWlsKHhlcGcpOw0KICAgIHNlYXJjaEluTWFwcGluZygpOw0KICB9DQogIA0KfQ0KDQpmdW5jdGlvbiBzYXZlQ2hhbm5lbE5hbWVVcGRhdGUoeGVwZykgew0KICB2YXIga2V5ICAgPSAieC11cGRhdGUtY2hhbm5lbC1uYW1lIjsNCiAgdmFyIHZhbHVlID0gSlNPTi5wYXJzZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgieC11cGRhdGUtY2hhbm5lbC1uYW1lIikubGFzdENoaWxkLmNoZWNrZWQpOw0KDQogIGlmIChidWxrID09IGZhbHNlKSB7DQogICAgdmFyIHRoaXNDaGFubmVsID0geEVQR1siZXBnTWFwcGluZyJdW3hlcGddOw0KICAgIHRoaXNDaGFubmVsW2tleV0gPSB2YWx1ZQ0KICAgIG1hcHBpbmdEZXRhaWwoeGVwZyk7DQogICAgc2VhcmNoSW5NYXBwaW5nKCk7DQogICAgcmV0dXJuDQogIH0NCg0KICBpZiAoYnVsayA9PSB0cnVlKSB7DQogICAgc2F2ZUJ1bGsoa2V5LCB2YWx1ZSk7DQogICAgbWFwcGluZ0RldGFpbCh4ZXBnKTsNCiAgICByZXR1cm4NCiAgfQ0KDQp9DQoNCmZ1bmN0aW9uIHNhdmVDaGFubmVsU3RhdHVzKHhlcGcpIHsNCiAgdmFyIHRoaXNDaGFubmVsID0geEVQR1siZXBnTWFwcGluZyJdW3hlcGddOw0KICB2YXIgeFhtbHR2RmlsZSA9IHRoaXNDaGFubmVsWyJ4LXhtbHR2LWZpbGUiXTsNCg0KICB2YXIga2V5ICAgPSAieC1hY3RpdmUiOw0KICB2YXIgdmFsdWUgPSBKU09OLnBhcnNlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ4LWFjdGl2ZSIpLmxhc3RDaGlsZC5jaGVja2VkKTsNCg0KICBpZiAoeEVQR1sieG1sdHZNYXAiXS5oYXNPd25Qcm9wZXJ0eSh4WG1sdHZGaWxlKSA9PSB0cnVlKSB7DQogICAgaWYgKHRoaXNDaGFubmVsWyJ4LW1hcHBpbmciXSAhPSAiLSIgJiYgdGhpc0NoYW5uZWxbIngtbWFwcGluZyJdICE9IHVuZGVmaW5lZCkgew0KICAgICAgdGhpc0NoYW5uZWxbIngtYWN0aXZlIl0gPSAhdGhpc0NoYW5uZWxbIngtYWN0aXZlIl07DQogICAgICB2YXIgdHIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCh4ZXBnKTsNCiAgICAgIHN3aXRjaCh0aGlzQ2hhbm5lbFsieC1hY3RpdmUiXSkgew0KICAgICAgICBjYXNlIHRydWU6IHRyLmNsYXNzTmFtZSA9ICJhY3RpdmVFUEciOyBicmVhazsNCiAgICAgICAgY2FzZSBmYWxzZTogdHIuY2xhc3NOYW1lID0gIm5vdEFjdGl2ZUVQRyI7IGJyZWFrOw0KICAgICAgfQ0KICAgICAgDQogICAgfSBlbHNlIHsNCiAgICAgIHZhciBlcnIgPSAiWE1MVFYgQ2hhbm5lbCBpcyBub3Qgc2VsZWN0ZWQiDQogICAgICBhbGVydChlcnIpDQogICAgICB2YWx1ZSA9IGZhbHNlDQogICAgfQ0KDQogIH0gZWxzZSB7DQogICAgaWYgKHZhbHVlID09IHRydWUpIHsNCiAgICAgIHZhciBlcnIgPSAiWE1MVFYgRmlsZSBpcyBub3Qgc2VsZWN0ZSINCiAgICAgIGFsZXJ0KGVycikNCiAgICAgIHZhbHVlID0gZmFsc2UNCiAgICB9DQogIH0NCg0KICANCg0KICBpZiAoYnVsayA9PSBmYWxzZSkgew0KICAgIHZhciB0aGlzQ2hhbm5lbCA9IHhFUEdbImVwZ01hcHBpbmciXVt4ZXBnXTsNCiAgICB0aGlzQ2hhbm5lbFtrZXldID0gdmFsdWUNCiAgICBtYXBwaW5nRGV0YWlsKHhlcGcpOw0KICAgIHNlYXJjaEluTWFwcGluZygpOw0KDQogICAgdmFyIHRyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoeGVwZyk7DQogICAgc3dpdGNoKHRoaXNDaGFubmVsWyJ4LWFjdGl2ZSJdKSB7DQogICAgICBjYXNlIHRydWU6IHRyLmNsYXNzTmFtZSA9ICJhY3RpdmVFUEciOyBicmVhazsNCiAgICAgIGNhc2UgZmFsc2U6IHRyLmNsYXNzTmFtZSA9ICJub3RBY3RpdmVFUEciOyBicmVhazsNCiAgICB9DQoNCiAgICByZXR1cm4NCiAgfQ0KDQogIGlmIChidWxrID09IHRydWUpIHsNCiAgICBzYXZlQnVsayhrZXksIHZhbHVlKTsNCiAgICBtYXBwaW5nRGV0YWlsKHhlcGcpOw0KICAgIHJldHVybg0KICB9DQoNCn0NCg0KZnVuY3Rpb24gc2F2ZUdyb3VwVGl0bGUoeGVwZykgew0KICB2YXIga2V5ICAgPSAieC1ncm91cC10aXRsZSI7DQogIHZhciB2YWx1ZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ4LWdyb3VwLXRpdGxlIikubGFzdENoaWxkLnZhbHVlOw0KDQogIGlmIChidWxrID09IGZhbHNlKSB7DQogICAgdmFyIHRoaXNDaGFubmVsID0geEVQR1siZXBnTWFwcGluZyJdW3hlcGddOw0KICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHhlcGcpLmNoaWxkTm9kZXNbNV0ubGFzdENoaWxkLmlubmVySFRNTCA9IHZhbHVlOw0KICAgIHRoaXNDaGFubmVsW2tleV0gPSB2YWx1ZTsNCiAgICBtYXBwaW5nRGV0YWlsKHhlcGcpOw0KICAgIHNlYXJjaEluTWFwcGluZygpOw0KICB9DQoNCiAgaWYgKGJ1bGsgPT0gdHJ1ZSkgew0KICAgIHNhdmVCdWxrKGtleSwgdmFsdWUpOw0KICAgIG1hcHBpbmdEZXRhaWwoeGVwZyk7DQogICAgcmV0dXJuDQogIH0NCg0KfQ0KDQpmdW5jdGlvbiBzYXZlQ2F0ZWdvcnkoeGVwZykgew0KICB2YXIga2V5ICAgPSAieC1jYXRlZ29yeSI7DQogIHZhciB2YWx1ZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ4LWNhdGVnb3J5IikubGFzdENoaWxkLnZhbHVlOw0KDQogIGlmIChidWxrID09IGZhbHNlKSB7DQogICAgdmFyIHRoaXNDaGFubmVsID0geEVQR1siZXBnTWFwcGluZyJdW3hlcGddOw0KICAgIHRoaXNDaGFubmVsW2tleV0gPSB2YWx1ZQ0KICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHhlcGcpLmNoaWxkTm9kZXNbM10ubGFzdENoaWxkLmNsYXNzTmFtZSA9IHZhbHVlDQogICAgbWFwcGluZ0RldGFpbCh4ZXBnKTsNCiAgICBzZWFyY2hJbk1hcHBpbmcoKTsNCiAgfQ0KDQogIGlmIChidWxrID09IHRydWUpIHsNCiAgICBzYXZlQnVsayhrZXksIHZhbHVlKTsNCiAgICBtYXBwaW5nRGV0YWlsKHhlcGcpOw0KICAgIHJldHVybg0KICB9DQoNCn0NCg0KZnVuY3Rpb24gYXJyYW5nZVRhYmxlKGVsbSkgew0KICB2YXIgdHIgPSBlbG0ucGFyZW50RWxlbWVudC5wYXJlbnRFbGVtZW50Ow0KICB2YXIgbmV3UG9zaXRpb24gPSBlbG0udmFsdWU7DQogIHZhciB4X2NoYW5uZWxJRCA9IHRyLmlkOw0KDQogIHN3aXRjaChpc05hTihuZXdQb3NpdGlvbikpIHsNCiAgICBjYXNlIHRydWU6IA0KICAgICAgYWxlcnQoIkNoLiBOby4gbXVzdCBiZSBhIG51bWJlciIpOw0KICAgICAgbWFwcGluZ0Vycm9yID0gdHJ1ZTsNCiAgICAgIGJyZWFrOw0KICB9DQoNCg0KICAvL3ZhciBpdGVtID0geEVQR1siZXBnTWFwcGluZyJdW2lkXTsNCiAgdmFyIGtleXMgPSBnZXRPYmpLZXlzKHhFUEdbImVwZ01hcHBpbmciXSkNCiAgZm9yICh2YXIgaSA9IDA7IGkgPCBrZXlzLmxlbmd0aDsgaSsrKSB7DQogICAgdmFyIGl0ZW0gPSB4RVBHWyJlcGdNYXBwaW5nIl1ba2V5c1tpXV07DQogICAgaWYgKGl0ZW1bIngtZXBnIl0gPT0geF9jaGFubmVsSUQpIHsNCg0KICAgICAgLy8gQ2hlY2sgaWYgcG9zaXRpb24gZXhpc3QNCiAgICAgIHZhciBvbGRQb3NpdGlvbiA9IGl0ZW1bIngtY2hhbm5lbElEIl07DQoNCiAgICAgIGlmIChvbGRQb3NpdGlvbiAhPSBuZXdQb3NpdGlvbikgew0KDQogICAgICAgIGNvbnNvbGUubG9nKG5ld1Bvc2l0aW9uLCBuZXdQb3NpdGlvbi5sZW5ndGgpOw0KICAgICAgICBpZiAobmV3UG9zaXRpb24ubGVuZ3RoID09IDApIHsNCiAgICAgICAgICBtYXBwaW5nRXJyb3IgPSB0cnVlDQogICAgICAgICAgbmV3UG9zaXRpb24gPSBvbGRQb3NpdGlvbjsNCiAgICAgICAgICANCiAgICAgICAgfQ0KDQogICAgICAgIGlmIChtYXBwaW5nRXJyb3IgPT0gdHJ1ZSkgew0KICAgICAgICAgIGVsbS52YWx1ZSA9IG9sZFBvc2l0aW9uOw0KICAgICAgICAgIHJldHVybjsNCiAgICAgICAgfQ0KDQogICAgICAgIGZvciAodmFyIGogPSBrZXlzLmxlbmd0aCAtIDE7IGogPj0gMDsgai0tKSB7DQogICAgICAgICAgdmFyIGNoYW5uZWwgPSB4RVBHWyJlcGdNYXBwaW5nIl1ba2V5c1tqXV07DQogICAgICAgICAgaWYgKGtleXNbal0gIT0geF9jaGFubmVsSUQpIHsNCiAgICAgICAgICAgIGlmIChuZXdQb3NpdGlvbiA9PSBjaGFubmVsWyJ4LWNoYW5uZWxJRCJdKSB7IC8vIElmIHBvc2l0aW9uIGV4aXN0LCBzZXQgbmV4dCBmcmVlIHBvc2l0aW9uLg0KICAgICAgICAgICAgICBuZXdQb3NpdGlvbisrOw0KICAgICAgICAgICAgICBlbG0udmFsdWUgPSBuZXdQb3NpdGlvbjsNCiAgICAgICAgICAgICAgYXJyYW5nZVRhYmxlKGVsbSk7DQogICAgICAgICAgICAgIHJldHVybjsNCiAgICAgICAgICAgICAgLyoNCiAgICAgICAgICAgICAgdmFyIG5ld0Vycm9yID0gbmV3IE9iamVjdCgpOw0KICAgICAgICAgICAgICBuZXdFcnJvclsiZXJyIl0gPSAiRHVwbGljYXRlIElEIjsNCiAgICAgICAgICAgICAgY2hlY2tFcnIobmV3RXJyb3IpOw0KICAgICAgICAgICAgICBzb3J0VGFibGUoKTsNCiAgICAgICAgICAgICAgbWFwcGluZ0Vycm9yID0gdHJ1ZTsNCiAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoeF9jaGFubmVsSUQpLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJJTlBVVCIpWzBdLmZvY3VzKCk7DQogICAgICAgICAgICAgIHJldHVybjsNCiAgICAgICAgICAgICAgKi8NCiAgICAgICAgICAgIH0NCiAgICAgICAgICB9DQogICAgICAgIH0NCg0KICAgICAgfQ0KDQogICAgICAvL2NvbnNvbGUubG9nKG9sZFBvc2l0aW9uLCBuZXdQb3NpdGlvbik7DQogICAgICBpZiAoa2V5c1tpXSA9PSB4X2NoYW5uZWxJRCAmJiBvbGRQb3NpdGlvbiAhPSBuZXdQb3NpdGlvbikgeyAgDQogICAgICAgIGl0ZW1bIngtY2hhbm5lbElEIl0gPSBuZXdQb3NpdGlvbjsNCiAgICAgIH0gDQoNCiAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJsb2dJbmZvIikuY2xhc3NOYW1lID0gIm5vdFZpc2libGUiOw0KICAgICAgaWYgKGNvbHVtblRvU29ydCA9PSAxKSB7DQogICAgICAgIHNvcnRUYWJsZShjb2x1bW5Ub1NvcnQpOw0KICAgICAgfQ0KICAgICAgbWFwcGluZ0Vycm9yID0gZmFsc2U7DQoNCiAgICB9DQogIH0NCn0NCg0KZnVuY3Rpb24gY2hhbmdlWG1sdHZGaWxlKHhlcGcsIGVsbSkgew0KDQogIHZhciB0aGlzQ2hhbm5lbCA9IHhFUEdbImVwZ01hcHBpbmciXVt4ZXBnXTsNCiAgDQogIHZhciB4WG1sdHZGaWxlICAgID0gZWxtLnZhbHVlOw0KICB2YXIgY2hhbm5lbElEICAgICA9IHRoaXNDaGFubmVsWyJ0dmctaWQiXTsNCiAgdGhpc0NoYW5uZWxbIngteG1sdHYtZmlsZSJdID0geFhtbHR2RmlsZTsNCg0KICBpZiAoYnVsayA9PSBmYWxzZSkgew0KDQogICAgc2V0VGltZW91dChmdW5jdGlvbigpeyANCg0KICAgICAgdmFyIHhNYXBwaW5nID0gIi0iDQoNCiAgICAgIC8vIEF1dG9tYXANCiAgICAgIGlmICh4WG1sdHZGaWxlICE9ICItIikgew0KICAgICAgICBpZiAoeEVQR1sieG1sdHZNYXAiXVt4WG1sdHZGaWxlXS5oYXNPd25Qcm9wZXJ0eShjaGFubmVsSUQpID09IHRydWUpIHsNCiAgICAgICAgICB0aGlzQ2hhbm5lbFsieC1tYXBwaW5nIl0gPSBjaGFubmVsSUQ7DQogICAgICAgICAgeE1hcHBpbmcgPSBjaGFubmVsSUQNCiAgICAgICAgfSBlbHNlIHsNCiAgICAgICAgICB0aGlzQ2hhbm5lbFsieC1tYXBwaW5nIl0gPSB4TWFwcGluZw0KICAgICAgICB9DQogICAgICB9IGVsc2Ugew0KICAgICAgICB0aGlzQ2hhbm5lbFsieC1tYXBwaW5nIl0gPSB4TWFwcGluZw0KDQogICAgICB9DQogICAgICANCiAgICAgIHZhciB0ciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHhlcGcpOw0KDQogICAgICBpZiAoeE1hcHBpbmcgPT0gIi0iKSB7DQogICAgICAgIHRoaXNDaGFubmVsWyJ4LWFjdGl2ZSJdID0gZmFsc2U7DQogICAgICAgIHRyLmNsYXNzTmFtZSA9ICJub3RBY3RpdmVFUEciDQogICAgICB9IGVsc2Ugew0KICAgICAgICB0aGlzQ2hhbm5lbFsieC1hY3RpdmUiXSAgPSB0cnVlOw0KICAgICAgICB0ci5jbGFzc05hbWUgPSAiYWN0aXZlRVBHIg0KICAgICAgfQ0KDQogICAgICAvLyBTaG93IGRhdGEgaW4gdGFibGUNCiAgICAgIHZhciB0ZCA9IHRyLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJURCIpOw0KICAgICAgdmFyIGRhdGFGaWxlID0gdGRbdGQubGVuZ3RoIC0gMl0ubGFzdENoaWxkOw0KICAgICAgc3dpdGNoKHhYbWx0dkZpbGUpIHsNCiAgICAgICAgY2FzZSAiLSI6ICAgICAgICAgICBkYXRhRmlsZS5pbm5lckhUTUwgPSB4WG1sdHZGaWxlOyBicmVhazsNCiAgICAgICAgY2FzZSAieFRlVmUgRHVtbXkiOiBkYXRhRmlsZS5pbm5lckhUTUwgPSB4WG1sdHZGaWxlOyBicmVhazsNCiAgICAgICAgZGVmYXVsdDogICAgICAgICAgICBkYXRhRmlsZS5pbm5lckhUTUwgPSBnZXRWYWx1ZUZyb21Qcm92aWRlckZpbGUoeFhtbHR2RmlsZSwgInhtbHR2IiwgIm5hbWUiKTsgYnJlYWs7DQogICAgICB9DQoNCiAgICAgIC8veFhtbHR2RmlsZS5yZXBsYWNlKC9eLipbXFxcL10vLCAnJyk7DQoNCiAgICAgIHZhciBkYXRhWG1sdHZJRCA9IHRkW3RkLmxlbmd0aCAtIDFdLmxhc3RDaGlsZDsNCiAgICAgIGRhdGFYbWx0dklELmlubmVySFRNTCA9IHhNYXBwaW5nOw0KICAgICAgDQogICAgICBtYXBwaW5nRGV0YWlsKHhlcGcpOw0KDQogICAgfSwgMTApOw0KICB9DQoNCiAgaWYgKGJ1bGsgPT0gdHJ1ZSkgew0KICAgIHZhciBrZXkgPSAieC14bWx0di1maWxlIg0KICAgIHZhciB2YWx1ZSA9IHhYbWx0dkZpbGUNCiAgICBzYXZlQnVsayhrZXksIHZhbHVlKTsNCg0KICAgIHZhciBrZXkgPSAieC1tYXBwaW5nIg0KICAgIHZhciB2YWx1ZSA9ICItIg0KICAgIHNhdmVCdWxrKGtleSwgdmFsdWUpOw0KICAgIG1hcHBpbmdEZXRhaWwoeGVwZyk7DQogICAgcmV0dXJuDQogIH0NCg0KICByZXR1cm4NCn0NCg0KZnVuY3Rpb24gbWFwcGluZ0NoYW5uZWwoeGVwZywgZWxtKSB7DQogIHZhciB0aGlzQ2hhbm5lbCA9IHhFUEdbImVwZ01hcHBpbmciXVt4ZXBnXTsNCiAgLy92YXIgeE1hcHBpbmcgICAgICA9IGVsbS52YWx1ZTsNCiAgdmFyIHhNYXBwaW5nICAgICAgPSBlbG0ub3B0aW9uc1tlbG0uc2VsZWN0ZWRJbmRleF0udmFsdWUNCiAgDQogIGlmIChidWxrID09IGZhbHNlKSB7DQogICAgDQogICAgdGhpc0NoYW5uZWxbIngtbWFwcGluZyJdID0geE1hcHBpbmc7DQoNCiAgICB2YXIgdHIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCh4ZXBnKTsNCg0KICAgIGlmICh4TWFwcGluZyA9PSAiLSIpIHsNCiAgICAgIHRoaXNDaGFubmVsWyJ4LWFjdGl2ZSJdID0gZmFsc2U7DQogICAgICB0ci5jbGFzc05hbWUgPSAibm90QWN0aXZlRVBHIg0KICAgIH0gZWxzZSB7DQogICAgICB0aGlzQ2hhbm5lbFsieC1hY3RpdmUiXSAgPSB0cnVlOw0KICAgICAgdHIuY2xhc3NOYW1lID0gImFjdGl2ZUVQRyINCiAgICB9DQoNCiAgICAvLyBTaG93IGRhdGEgaW4gdGFibGUNCiAgICB2YXIgdGQgPSB0ci5nZXRFbGVtZW50c0J5VGFnTmFtZSgiVEQiKTsNCiAgICB2YXIgZGF0YVhtbHR2SUQgPSB0ZFt0ZC5sZW5ndGggLSAxXS5sYXN0Q2hpbGQ7DQogICAgZGF0YVhtbHR2SUQuaW5uZXJIVE1MID0geE1hcHBpbmc7DQogICAgLy9jb25zb2xlLmxvZyh0ZFt0ZC5sZW5ndGggLSAxXSk7DQogICAgLy9jb25zb2xlLmxvZyh4TWFwcGluZywgZWxtKTsNCg0KICAgIGNyZWF0ZVNlYXJjaE9iaigpOw0KICAgIHNlYXJjaEluTWFwcGluZygpOw0KICAgIHVwZGF0ZUNoYW5uZWxMb2dvKHhlcGcpDQogICAgbWFwcGluZ0RldGFpbCh4ZXBnKTsNCiAgICByZXR1cm4NCiAgfQ0KDQogIGlmIChidWxrID09IHRydWUpIHsNCg0KICAgIHZhciBrZXkgPSAieC1tYXBwaW5nIg0KICAgIHZhciB2YWx1ZSA9IHhNYXBwaW5nDQogICAgc2F2ZUJ1bGsoa2V5LCB2YWx1ZSk7DQoNCiAgICBtYXBwaW5nRGV0YWlsKHhlcGcpOw0KICAgIHJldHVybg0KICB9DQoNCiAgcmV0dXJuDQp9DQoNCg0KZnVuY3Rpb24gY3JlYXRlTmV3VEQobmV3SXRlbSwgZWxtKSB7DQogIHZhciBuZXdURCA9IG5ldyBPYmplY3QoKTsNCiAgbmV3VERbIl9lbGVtZW50Il0gPSAiVEQiOw0KICANCiAgZWxtLmFwcGVuZENoaWxkKGNyZWF0ZUVsZW1lbnQobmV3VEQpKTsNCiAgdmFyIHRkID0gZWxtLmxhc3RDaGlsZDsgDQogIA0KICBzd2l0Y2gobmV3SXRlbVsiX2VsZW1lbnQiXSkgew0KICAgIGNhc2UgIlNFTEVDVCI6DQogICAgICB0ZC5hcHBlbmRDaGlsZChjcmVhdGVFbGVtZW50KG5ld0l0ZW0pKTsNCiAgICAgIHZhciB0ZCA9IGVsbS5sYXN0Q2hpbGQubGFzdENoaWxkOyANCiAgICAgIHZhciB2YWx1ZXMgPSBuZXdJdGVtWyJfb3B0aW9uVmFsdWVzIl07DQogICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHZhbHVlcy5sZW5ndGg7IGkrKykgew0KICAgICAgICAvL2NvbnNvbGUubG9nKGl0ZW0pOw0KICAgICAgICB2YXIgbmV3RW50cnkgPSBuZXcgT2JqZWN0Ow0KICAgICAgICBuZXdFbnRyeVsiX2VsZW1lbnQiXSAgPSAiT1BUSU9OIjsNCiAgICAgICAgbmV3RW50cnlbIl90ZXh0Il0gICAgID0gdmFsdWVzW2ldOw0KICAgICAgICBuZXdFbnRyeVsidmFsdWUiXSAgICAgPSB2YWx1ZXNbaV07DQogICAgICAgIHRkLmFwcGVuZENoaWxkKGNyZWF0ZUVsZW1lbnQobmV3RW50cnkpKTsNCiAgICAgIH0NCiAgICAgIHRkLnZhbHVlID0gbmV3SXRlbVsidmFsdWUiXTsNCg0KICAgICAgYnJlYWs7DQogICAgDQogICAgZGVmYXVsdDogDQogICAgICANCiAgICAgIHRkLmFwcGVuZENoaWxkKGNyZWF0ZUVsZW1lbnQobmV3SXRlbSkpOw0KICAgICAgYnJlYWs7DQogIH0NCiAgDQp9DQoNCmZ1bmN0aW9uIHNhdmVYRVBHKCkgew0KICBpZiAobWFwcGluZ0Vycm9yID09IHRydWUpIHsNCiAgICBhbGVydCgiRGF0YSBjb3VsZCBub3QgYmUgc2F2ZWQsIGVycm9ycyBpbiB0aGUgWEVQRyBkYXRhLiIpOw0KICAgIHJldHVybjsNCiAgfQ0KICBzaG93TG9hZGluZ1NjcmVlbih0cnVlKTsNCg0KICB2YXIgZGF0YSA9IG5ldyBPYmplY3QoKTsNCiAgZGF0YVsiZXBnTWFwcGluZyJdID0geEVQR1siZXBnTWFwcGluZyJdOw0KICBkYXRhWyJjbWQiXSA9ICJzYXZlRXBnTWFwcGluZyI7DQogIC8vY29uc29sZS5sb2coZGF0YSk7DQogIHhUZVZlKGRhdGEpOw0KfQ0KDQpmdW5jdGlvbiBidWxrRWRpdCgpIHsNCiAgYnVsayA9ICFidWxrOw0KICB2YXIgY2xhc3NOYW1lOw0KDQogIHZhciBlbG0gPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCJidWxrIik7DQoNCiAgc3dpdGNoKGJ1bGspIHsNCiAgICBjYXNlIHRydWU6IA0KICAgICAgY2xhc3NOYW1lID0gImJ1bGsgc2hvd0J1bGsiOw0KICAgICAgYnJlYWs7DQoNCiAgICBjYXNlIGZhbHNlOiANCiAgICAgIGNsYXNzTmFtZSA9ICJidWxrIGhpZGVCdWxrIjsNCiAgICAgIGJ1bGtFZGl0QWxsID0gZmFsc2U7DQogICAgICBicmVhazsNCiAgfQ0KDQogIGZvciAodmFyIGkgPSAwOyBpIDwgZWxtLmxlbmd0aDsgaSsrKSB7DQogICAgZWxtW2ldLmNsYXNzTmFtZSA9IGNsYXNzTmFtZTsNCiAgICBlbG1baV0uY2hlY2tlZCA9IGZhbHNlOw0KICB9DQoNCn0NCg0KZnVuY3Rpb24gYnVsa0VkaXRBbGxDaGFubmVscygpIHsNCg0KICB2YXIgYWxsVFIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiaWRfbWFwcGluZyIpLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJUUiIpOw0KDQogIGZvciAodmFyIGkgPSAxOyBpIDwgYWxsVFIubGVuZ3RoOyBpKyspIHsNCiAgICBpZiAoYWxsVFJbaV0uc3R5bGUuZGlzcGxheSAhPSAibm9uZSIpIHsNCiAgICAgIHN3aXRjaChidWxrRWRpdEFsbCkgew0KICAgICAgICBjYXNlIGZhbHNlOiBhbGxUUltpXS5maXJzdENoaWxkLmZpcnN0Q2hpbGQuY2hlY2tlZCA9IHRydWU7IGJyZWFrOw0KICAgICAgICBjYXNlIHRydWU6IGFsbFRSW2ldLmZpcnN0Q2hpbGQuZmlyc3RDaGlsZC5jaGVja2VkID0gZmFsc2U7IGJyZWFrOyANCiAgICAgIH0NCg0KICAgIH0NCiAgICANCiAgfQ0KDQogIGJ1bGtFZGl0QWxsID0gIWJ1bGtFZGl0QWxsOw0KfQ0KDQpmdW5jdGlvbiBzb3J0VGFibGUoY29sdW1tKSB7DQogIC8vY29uc29sZS5sb2coY29sdW1tKTsNCiAgaWYgKGNvbHVtbSA9PSBjb2x1bW5Ub1NvcnQpIHsNCiAgICAvL3JldHVybjsNCiAgfQ0KDQogIHZhciB0YWJsZSAgICAgICA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJpZF9tYXBwaW5nIik7DQogIHZhciB0YWJsZUhlYWQgICA9IHRhYmxlLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJUUiIpWzBdOw0KICB2YXIgdGFibGVJdGVtcyAgPSB0YWJsZUhlYWQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlREIik7DQogIA0KICB2YXIgc29ydE9iaiA9IG5ldyBPYmplY3QoKTsNCiAgdmFyIHgsIHhWYWx1ZTsNCiAgdmFyIHRhYmxlSGVhZGVyDQogIHZhciBzb3J0QnlTdHJpbmcgPSBmYWxzZQ0KDQogIGlmIChjb2x1bW0gPiAwICYmIGNvbHVtblRvU29ydCA+IDApICB7DQogICAgdGFibGVJdGVtc1tjb2x1bW5Ub1NvcnRdLmNsYXNzTmFtZSA9ICJwb2ludGVyIjsNCiAgICB0YWJsZUl0ZW1zW2NvbHVtbV0uY2xhc3NOYW1lID0gInNvcnRUaGlzIjsNCiAgfQ0KDQogIGNvbHVtblRvU29ydCA9IGNvbHVtbTsNCg0KICB2YXIgcm93cyA9IHRhYmxlLnJvd3M7DQoNCiAgaWYgKHJvd3NbMV0gIT0gdW5kZWZpbmVkKSB7DQogICAgdGFibGVIZWFkZXIgPSByb3dzWzBdDQoNCiAgICB4ID0gcm93c1sxXS5nZXRFbGVtZW50c0J5VGFnTmFtZSgiVEQiKVtjb2x1bW1dOw0KICAgIA0KICAgIGZvciAoaSA9IDE7IGkgPCByb3dzLmxlbmd0aDsgaSsrKSB7DQoNCiAgICAgIHggPSByb3dzW2ldLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJURCIpW2NvbHVtbV07DQoNCiAgICAgIHN3aXRjaCh4LmNoaWxkTm9kZXNbMF0udGFnTmFtZS50b0xvd2VyQ2FzZSgpKSB7DQogICAgICAgIGNhc2UgImlucHV0IjoNCiAgICAgICAgICB4VmFsdWUgPSB4LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJJTlBVVCIpWzBdLnZhbHVlLnRvTG93ZXJDYXNlKCk7DQogICAgICAgICAgYnJlYWs7DQoNCiAgICAgICAgY2FzZSAicCI6DQogICAgICAgICAgeFZhbHVlID0geC5nZXRFbGVtZW50c0J5VGFnTmFtZSgiUCIpWzBdLmlubmVyVGV4dC50b0xvd2VyQ2FzZSgpOw0KICAgICAgICAgIGJyZWFrOw0KICAgICAgICANCiAgICAgICAgZGVmYXVsdDogY29uc29sZS5sb2coeC5jaGlsZE5vZGVzWzBdLnRhZ05hbWUpOw0KICAgICAgfQ0KDQogICAgICBpZiAoeFZhbHVlID09ICIiIHx8IHhWYWx1ZSA9PSBOYU4pIHsNCiAgICAgICAgeFZhbHVlID0gaQ0KICAgICAgICBzb3J0T2JqW2ldID0gcm93c1tpXTsNCiAgICAgIA0KICAgICAgfSBlbHNlIHsNCg0KICAgICAgICBzd2l0Y2goaXNOYU4oeFZhbHVlKSkgew0KICAgICAgICAgIGNhc2UgZmFsc2U6IA0KDQogICAgICAgICAgICB4VmFsdWUgPSBwYXJzZUZsb2F0KHhWYWx1ZSk7DQogICAgICAgICAgICBzb3J0T2JqW3hWYWx1ZV0gPSByb3dzW2ldDQogICAgICAgICAgICBicmVhazsNCg0KICAgICAgICAgIGNhc2UgdHJ1ZToNCg0KICAgICAgICAgICAgc29ydEJ5U3RyaW5nID0gdHJ1ZQ0KICAgICAgICAgICAgc29ydE9ialt4VmFsdWUudG9Mb3dlckNhc2UoKSArIGldID0gcm93c1tpXQ0KICAgICAgICAgICAgYnJlYWs7DQoNCiAgICAgICAgfQ0KDQogICAgICB9DQogICAgDQogICAgfQ0KDQogICAgd2hpbGUgKHRhYmxlLmZpcnN0Q2hpbGQpIHsNCiAgICAgIHRhYmxlLnJlbW92ZUNoaWxkKHRhYmxlLmZpcnN0Q2hpbGQpOw0KICAgIH0NCiAgICANCiAgICB2YXIgc29ydFZhbHVlcyA9IGdldE9iaktleXMoc29ydE9iaikNCiAgICBpZiAoc29ydEJ5U3RyaW5nID09IHRydWUpIHsNCiAgICAgIHNvcnRWYWx1ZXMuc29ydCgpDQogICAgfSBlbHNlIHsNCiAgICAgIGZ1bmN0aW9uIHNvcnRGbG9hdChhLCBiKSB7IA0KICAgICAgICByZXR1cm4gYSAtIGI7IA0KICAgICAgfQ0KICAgICAgc29ydFZhbHVlcy5zb3J0KHNvcnRGbG9hdCk7DQogICAgfQ0KDQogICAgdGFibGUuYXBwZW5kQ2hpbGQodGFibGVIZWFkZXIpDQogICAgDQogICAgZm9yICh2YXIgaSA9IDA7IGkgPCBzb3J0VmFsdWVzLmxlbmd0aDsgaSsrKSB7DQogICAgIA0KICAgICAgdGFibGUuYXBwZW5kQ2hpbGQoc29ydE9ialtzb3J0VmFsdWVzW2ldXSkNCg0KICAgIH0NCiAgICANCiAgfQ0KDQp9DQoNCg0KZnVuY3Rpb24gc29ydFRhYmxlX29sZChjb2x1bW0pIHsNCiAgc2hvd0xvYWRpbmdTY3JlZW4odHJ1ZSk7DQogIA0KICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7IA0KDQogICAgdmFyIHRhYmxlLCByb3dzLCBzd2l0Y2hpbmcsIGksIHgsIHksIHNob3VsZFN3aXRjaDsNCiAgICB0YWJsZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJpZF9tYXBwaW5nIik7DQoNCiAgICB2YXIgdGFibGVIZWFkID0gdGFibGUuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlRSIilbMF07DQogICAgdmFyIHRhYmxlSXRlbXMgPSB0YWJsZUhlYWQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlREIik7DQoNCiAgICBpZiAoY29sdW1tID4gMCkgIHsNCiAgICAgIHRhYmxlSXRlbXNbY29sdW1uVG9Tb3J0XS5jbGFzc05hbWUgPSAicG9pbnRlciI7DQogICAgICB0YWJsZUl0ZW1zW2NvbHVtbV0uY2xhc3NOYW1lID0gInNvcnRUaGlzIjsNCiAgICB9DQogICAgDQogICAgY29sdW1uVG9Tb3J0ID0gY29sdW1tOw0KDQogICAgLyoNCiAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRhYmxlSXRlbXMubGVuZ3RoOyBpKyspIHsNCiAgICAgIGlmICh0YWJsZUl0ZW1zW2ldLmNsYXNzTmFtZSAhPSB1bmRlZmluZWQpIHsNCiAgICAgICAgdGFibGVJdGVtc1tpXS5jbGFzc05hbWUgPSAicG9pbnRlciINCiAgICAgIH0NCg0KICAgIH0NCiAgICAqLw0KDQogICAgDQoNCiAgICBjb25zb2xlLmxvZyh0YWJsZUl0ZW1zKTsgDQoNCiAgICBzd2l0Y2hpbmcgPSB0cnVlOw0KICAgIHdoaWxlIChzd2l0Y2hpbmcpIHsNCiAgICAgIHN3aXRjaGluZyA9IGZhbHNlOw0KICAgICAgcm93cyA9IHRhYmxlLnJvd3M7DQogICAgICBmb3IgKGkgPSAxOyBpIDwgKHJvd3MubGVuZ3RoIC0gMSk7IGkrKykgew0KICAgICAgICBzaG91bGRTd2l0Y2ggPSBmYWxzZTsNCg0KICAgICAgICB4ID0gcm93c1tpXS5nZXRFbGVtZW50c0J5VGFnTmFtZSgiVEQiKVtjb2x1bW1dOw0KICAgICAgICB5ID0gcm93c1tpICsgMV0uZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlREIilbY29sdW1tXTsNCg0KICAgICAgICBzd2l0Y2goeC5jaGlsZE5vZGVzWzBdLnRhZ05hbWUudG9Mb3dlckNhc2UoKSkgew0KICAgICAgICAgIGNhc2UgImlucHV0IjoNCiAgICAgICAgICAgIHhWYWx1ZSA9IHguZ2V0RWxlbWVudHNCeVRhZ05hbWUoIklOUFVUIilbMF0udmFsdWUudG9Mb3dlckNhc2UoKTsNCiAgICAgICAgICAgIHlWYWx1ZSA9IHkuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIklOUFVUIilbMF0udmFsdWUudG9Mb3dlckNhc2UoKTsNCiAgICAgICAgICAgIGJyZWFrOw0KDQogICAgICAgICAgY2FzZSAicCI6DQogICAgICAgICAgICB4VmFsdWUgPSB4LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJQIilbMF0uaW5uZXJUZXh0LnRvTG93ZXJDYXNlKCk7DQogICAgICAgICAgICB5VmFsdWUgPSB5LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJQIilbMF0uaW5uZXJUZXh0LnRvTG93ZXJDYXNlKCk7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgICANCiAgICAgICAgICBkZWZhdWx0OiBjb25zb2xlLmxvZyh4LmNoaWxkTm9kZXNbMF0udGFnTmFtZSk7DQogICAgICAgIH0NCg0KICAgICAgICANCiAgICAgICAgc3dpdGNoKGlzTmFOKHhWYWx1ZSkpIHsNCiAgICAgICAgICBjYXNlIGZhbHNlOiB4VmFsdWUgPSBwYXJzZUZsb2F0KHhWYWx1ZSkgOyBicmVhazsNCiAgICAgICAgfQ0KDQogICAgICAgIHN3aXRjaChpc05hTih5VmFsdWUpKSB7DQogICAgICAgICAgY2FzZSBmYWxzZTogeVZhbHVlID0gcGFyc2VGbG9hdCh5VmFsdWUpIDsgYnJlYWs7DQogICAgICAgIH0NCiAgICAgICAgDQoNCiAgICAgICAgaWYgKHhWYWx1ZSA+IHlWYWx1ZSkgew0KICAgICAgICAgIHNob3VsZFN3aXRjaCA9IHRydWU7DQogICAgICAgICAgYnJlYWs7DQogICAgICAgIH0NCg0KICAgICAgfQ0KICAgICAgaWYgKHNob3VsZFN3aXRjaCkgew0KICAgICAgICByb3dzW2ldLnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKHJvd3NbaSArIDFdLCByb3dzW2ldKTsNCiAgICAgICAgc3dpdGNoaW5nID0gdHJ1ZTsNCiAgICAgIH0NCiAgICB9DQogICAgY3JlYXRlU2VhcmNoT2JqKCkNCiAgICANCiAgICBzaG93TG9hZGluZ1NjcmVlbihmYWxzZSk7DQogIH0sIDIwKTsNCg0KfQ0KDQpmdW5jdGlvbiBzaG93WEVQRygpIHsNCiAgdmFyIHVybCA9IGxvY2F0aW9uLnByb3RvY29sICsgIi8vIiArIGxvY2F0aW9uLmhvc3RuYW1lICsgIjoiICsgbG9jYXRpb24ucG9ydCArICIveG1sdHYveHRldmUueG1sIg0KICB2YXIgd2luID0gd2luZG93Lm9wZW4odXJsLCAnX2JsYW5rJyk7DQogIHdpbi5mb2N1cygpOw0KfQ==" - webUI["html/video/stream-limit.ts"] = "R0AREABC8CUAAcEAAP8B/wAB/IAUSBIBBkZGbXBlZwlTZXJ2aWNlMDF3fEPK//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////9HQAAQAACwDQABwQAAAAHwACqxBLL//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////0dQABAAArASAAHBAADhAPAAG+EA8AAVvU1W////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////R0EAMAdQAAB7DH4AAAAB4AAAgMAKMQAJEKERAAfYYQAAAAEJ8AAAAAFnZAAorNlAeAIn5cBEAAADAAQAAAMAyDxgxlgAAAABaOvjyyLAAAABBgX//6rcRem95tlIt5Ys2CDZI+7veDI2NCAtIGNvcmUgMTUyIHIyODU0IGU5YTU5MDMgLSBILjI2NC9NUEVHLTQgQVZDIGNvZGVjIC0gQ29weWxlZnQgMjAwMy0yMDE3IC0gaHR0cDovL3dHAQARd3cudmlkZW9sYW4ub3JnL3gyNjQuaHRtbCAtIG9wdGlvbnM6IGNhYmFjPTEgcmVmPTMgZGVibG9jaz0xOjA6MCBhbmFseXNlPTB4MzoweDExMyBtZT1oZXggc3VibWU9NyBwc3k9MSBwc3lfcmQ9MS4wMDowLjAwIG1peGVkX3JlZj0xIG1lX3JhbmdlPTE2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ACqxBLL//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////0dQABEAArASAAHBAADhAPAAG+EA8AAVvU1W////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////RwEAGO10tGlFAwyE91Tzg8923ovJk1dv2xh1gVlYQFtWdZ6NSQ8vgHM7/tMfIZPsqgCU856rdBJJRMDaor/oWA7pkvSmC2aqaC5fd/mkWUPTuG8fRhGqOY1rKxLNSI3HtTQAcuVBxRM0NfMw0ky/JMJYZiCgXcNsxpxl+khr/9fKtO5Fg2VNBti92xcZimHUZDJMQTBOY6vSR9L1N2O/kJQCpdfuc9bkcUTMjH/es/lAySxvbiislkohqkpHAQAZVatwHI0t9eHCUfDyWUEtuCNyDwQFOVMtaYEQJrTrhQX0VduT86F0u0wN9ag0uPsrmX6Rid/x5S7KI1SkS+qP6cdmgSP57uiF4dG6IKsWNfGBLY09H/CFlrg73WINQkkp2diKkdEmtZetn8+ZAKzR5eXN5FebiKt6pIkNLuSofjosypEs2o6boKsfpmbtOV0idOeWDM9C8EIcn3aZwk1s2KBDvt1DlY+i2Cuvhk3XoKLT+pq/bOC5QkcBABolcOXneZXLoQw9W1PH1f/of92Ytjj8okrWijcQAKlE5l8XoTb9qrOiZnDOhqwcMlB9H9rorq041I89hChohYoSkJElcM8V+r8WYN5axD1BNyfwaHAOm4UN2/VEYOkNSfMjmx2S0WW/F2ha8Jj4fc4QgqcXr+TnnbwqLkLTValK4Qa1pcv7PIbDq6zCUfxe04guZ8xEhPQjp17/G6IB/6uq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wnibxQ/cXEblVnM47wbCN3iy4eHjYB5MoIICrSYmd8nt4V0toLs084KJlmnur5FbApYM4W79ff4oZkW88Cg8Fv8TnWhh1Hqc4UlhMbRKm2QxDgfBxar3U7BwNR6prrXXjqfR7ja3tPli+H7Jez/xcTg32QpHAQAdTa7pSSgBvmOqzz175NAFIhwE9p3d71F9jLvhaPv8q1iKopL0kizwzEWElnXWmNhfLkl/Au8KujnoKUaxVdTe+zAZm2dOkejnpNVtVj0Aw9wKcG3ZQ1iRZrUFRIoPKYlmR+oi0LrupuhYABtgPbdCbDtezGTr0nw9wVd/rZ6V+1wcoJ6+8VAVueIdwI3brqm6EoFHiI8L6lER+9SefB8fHo4NYgr/I8jSxaa/2PLX2K/DjrlY6bN8fEcBAB7DXsuh8DITF6CYWj2HTFvqfzlic3QHXnHtvsTFNpyVY1LY8y/fRK2mwALN6IB5W3OuyoKiA3K0lJdQUv2gYhHWvPTV218HYrD0rkbMxRH0SiEEkrHDeOt5T1HtWD13D2/QvMu535fsfZyeaFDjdCE9M0Xi8Lfc7Xj1ZNGend7Jo7/cEiczFkc1vB4z2JpFGZreV2EdquyEzC2STFJtfimyx8QlLngEuR1cxH+lWEcFX+mvBa/eqktIRwEAH6VazFLPNsnHZqsI66TVoArQuUUGFAzr8MT8GZ9V6qpZa5D0jA/4eGi6Kq0smUgRExnqIbSMLWqDf/Pk2YT3MpHTu9VE3Dn9blgB6KsVIkWnB98Y2n/6DrZDcF94Ndu0Ka4U/RZwdV5O5KcO+lU2ZiIOYTYZ6Ie0d+tApxYxJ+YmxaDoCyRNe6crw/yzR5SflT8ddi/E2BM+l+nwVDiKZ/714fmrBxFKWuqLiQNHV19o1cZ8Ubun+ZtHQAASAACwDQABwQAAAAHwACqxBLL//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////0dQABIAArASAAHBAADhAPAAG+EA8AAVvU1W////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////RwEAEH1s3BdtHdF1ln55B24wdACF/ggcRtPmB4IUB6cZJ+m32I4R48ZkdhAFBulgWcsv0wZwH0o1yi3i4qm3rJ98AUKdB9PsNyG9gURV0bTw4myAj6g5Dgodfv6w9bsbOxsGUWkvgAJ3rrR010BvZbIa6CMRCQRjxkCfRF77ansRJZT0JzhtYeSS/ZJob8Rr2jrng3W2rkmHtE+rdqlPiHxmwkRZvYGhBxwiJO2L6f+l/cABsfs09rA+A0pHAQAREZay3TBUIAfMWhApE+LaPgeyOYtaPFONA9aC0h4QrFkaLZfb86678MK+zLgqDBsDoj50eZHMVcczRjs4sYlv7RG8RIWKb5lB9Kn/8+CkxiiA11cHH1yzLX2SKCmhsak/+P/zYQ1EDvEj33bl9e3Jd62cTI+Qw99KrsWnUMN8hFNeXzoGHA3aec+Li4NFboF8sa6lCPR6Csxsvxw8DJaWCnER5Z0p+nKhXavF/eNHQ0DX47ohycc87UcBABKsYHCHXXe3vK1cFYDWO6rhwM6hxCdJ+/X+VB1akQejL6iBMdUPuadUqBnbprwJM0dWpSSn9uuZZeqe46iZOGIJUo69d8x+ZSvPcBH/dK1Y0LJnoWdgWH51SQg7eYqcwjQW3BOy7ZF02Hn1EhTuhsN7ms8zv3WIeEBDBq0T3Idl+Tmw9iJU9skVYiwygHG2+0XwrLa6y+uiQPwMzrnEr1kuf24XoAqrJTZQiVH3aQF4d94yDreWu2KPRwEAE2FsynHZaUcBXEFbeX0nSxZ7sRcRjJvc7RYOny6N8QFwKDVO7jpRWWYM55kuepBOyZ+7BFYeG+FU1kR+ZfmqyDNkD4D1IPwNh6u9JQxDymfN/aMcQC3WxdvCKquPsAut6dugpGkOFtIe+W3ayc4V/J978P+h1EDFMbFjxRPuXht0K2dBQZCJ0ybISUDqWzhPuep8CdxSU4MvMVfdXh7FLl/BqKJUTT+vM+Pz3XnqCQQmH5TjQ4CK55VHAQAUEtgfkBwIYgtwHkhjmtLw7HNTeJeMfTjATEKcyuKzItSeYxHBmGzQ/+G2otpPCOkVAXJ9mfx7LxrW4joZ0ttTRQJ/wqMUK1IN349LiJoo8y/+FwN4jPNDwIleJG697riqnmLOweFW8spHKLBfnHcyC1pG6EIxFpTqUQ0KHqXD/KXIHKioJNAOVwQ1Gfloxebo/Tdtd00dpHP3gcsAOnV75APCYOjVIlwm2X6ViDeZw6Btdb/Br/+yokcBABU3+eOESLlneGbR5SLiL8wPkoRaZ5X7xFlMTMvsv9yHk26bVdmsubSdbYS1Hy64n0+NnL7C1aLD7aJxOudMjVW5goZbfO2KxBQkCD4HFA284wbaB5vOL7mRilCn6YEs1kiwf22+fBLNUmXDb2p353wrD/ygTDhlki66USvUmd/ZAs9uzAddegEzy7Xn00YysWTu/hegYyZtWFC+X5dhLubWJ7n96y5wjrP7PAOXoQQtFUH9j/rBiP/7RwEAFnL/wYKYuj80mPGtimSbF/E9K7XwjwBz8yHZubmVMTCmwkZBM4h0FR1thnUGiSjqjJT6SfunWCZ/dZDQplrzS00UKcUP399SyM+nNG1br8Za0ZYwWch8nyLHYXSRuxdnrfUUespsOQo1cWSLGf0pV2HIcHoiAAEKwPU6irB5BSoFvB1qKVjgEk+QwAEYAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAABHAQA3pAD/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////AwAAAwAAAwAAAwAAAwAAAwBbwUdBABgAAAHgAACAwAoxAAmBIREAB/SBAAAAAQnwAAAAAUGaJGxDv/6plgAAAwAAAwAAAwAAAwAAAwAAAwAAAwAKCKB0AIhy1ftwLNISWucTFC7xeBcaIzP3oZjZo8uT9hqZVstWGnrPz+vjaA5FuCO+K2w7/o39LygDO7aL+0zSrN90LW7r133x8+f+PEKk8d7pd2fj4RYuMOXOYunzFzRX/4IvR1XsK5WJYwVkOca3yfo7DTvUBP9rgSiTRwEAGQD6CFK1PBC4qYCa+coLVnX+jgODNrau5YJXIekDI4+wUNV+5T5HE4e2t5EGAjn77+kC1Vghmvx8KqPnylVUvsaTofheggxHsPuxn1zQt6nA59UglrRUMn8b4pmrvfqTBSqU949+AcNAI6M/eAqz6r0RG5KNeBhx8R2f0x2kujwHU3pc3rlPb6ZrFM/2HiG97eEIezrvWFG7YAAAAwAAAwAE1KRo1VfbdZQ/tOpNGxFmTcQoFidyD2tHAQAapTTIErUKA2Rc9uIzGJu+oW0uNOxRyl6oJNUNJp5L9TIshNS1CmUKgdCaE3LkLwdE8iUkUnIGfWLiWpWmjzsINYC8dnDaSptB53yJkBu0SsR00oo1PZ0pl4ZzoXGSYQJTPaVCbj6FNqm5wcnUqKTB/rgHdPdnDj0K8asLABeo/n3XCXrDorI+LYSD1FBgmV9O7RZdjfL0NnXOQkiq/ZGirwVV0cUF1aHtZx1yHlAAZKuuu7TqB13CAUcBADuRAP///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////yj/IrOvAEoXDNGy+nrxWN0l8cmuqWYaUJpuM9XgAAADAAADAAKmR0EAPAcQAACJHH4AAAAB4AAAgMAKMQAJSOERAAkQoQAAAAEJ8AAAAAFBnkJ4hf8AAAMAAAMAAAMAAAMAAAMAAAMAAAMAC/BmhyuvLmkCgKTgACEXfOVvHRHdpBEEmTTz9pIZCa2FD0CXukzDCakOHekTpJQSdsfd7a/jjM1/5lBtKCAGQ6zOCSQ6DeKtyw+CugDuuglGipwmvQW+FIDjnZ6HRd0uaSOGy6VB3h9MI1o4nqaCqVwwIgubYZFHAQA9XgD////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////WcZrO6BEiqf8pCxYwlz2mkdUzY/ipM/TIHS4m5xQAAAMAAAMAAA5sVm90p14dlvWgBgY7XQ9KVOJKLtaMAN5KiffVQtNuzW5DfL+RewZpAAADAAADAAAQMUdBAB4AAAHgAACAgAUhAAkswQAAAAEJ8AAAAAEBnmF0Qr8AAAMAAAMAAAMAAAMAAAMAAAMAAAMAABJfBjP2+4+W7ZybyT130+Ma4WSqICfd/dS4YtjrLlmh5VBlfrtwJqdN1PBTYDkwGOOONqZQeFN6lLGJoDzvuh3kv1aDBLqug+JhvrSeu5ebnvcrtQzb2REwJL3h9mvtkr0WfDu4AAADAAADAAs32Y4C/6Ns79oCGj6oqLltY3T4I0/QRwEAP5wA//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////8BeoWLRnKQmVgO/RBoBfcK85AAAAMAAAMACFhHQQAwBxAAAJcsfgAAAAHgAACAwAoxAAllAREACUjhAAAAAQnwAAAAAQGeY2pCvwAAAwAAAwAAAwAAAwAAAwAAAwAAAwAAEmDKfLGXsvBBQPNYXlEd6WueJ4deApfcHESlG+7V6u0AiWQqJvNZYM+3Js3Lj9Ldc9yYIHqruVwfMtCYGlX3wMavI/DrhMuJw+RreIF8SKsJD8CMccAAAAMAAAMACrFZOBgEqaP/8EyWsAHV6CgcAgfyox/roEcBADGuAP//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////AAADAAADAHTBR0EAEgAAAeAAAIDACjEACfGhEQAJZQEAAAABCfAAAAABQZpoSahBaJlMCHf//qmWAAADAAADAAADAAADAAADAAADAAADAAALf8A2bry6lUyIAQGNFfVK2Cd7h4qDqmqpvmXfkfTwo2Ab79AHhajxJ4MPWIgAAA84xLRIx7I2CrWjWe96OvgkzgS9mtvhuxdzAgpuIOJI3DEY9mviDDZz8XSAAAADAAADAB7AZkj9AAHHGvk+Pzlku8UkWa5HAQAzogD//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////6HjAkbF/gsWuvw4QAAAAwAAAwAccUdBADQHEAAApTx+AAAAAeAAAIDACjEACblhEQAJgSEAAAABCfAAAAABQZ6GRREsL/8AAAMAAAMAAAMAAAMAAAMAAAMAAAMAAA3URJB/3lMHSmOd0GYZnfpoR80WdqxlyHzPX+V81VUMeXIGrRgq5agd+ACdjoGI036yQ/rmpGw0CmMBrKwpI+nwFo3SP0s1rI2yHBZaiPJjSUgw33rBkxXcq55kfLf2sAAAAwAAAwACBWolidWDnIeQAAADRwEANbEA//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////8AAAMADulHQQA2NAD///////////////////////////////////////////////////////////////////8AAAHgAACAgAUhAAmdQQAAAAEJ8AAAAAEBnqV0Qr8AAAMAAAMAAAMAAAMAAAMAAAMAAAMAABJXNihCnx11JUosH2hBE53O/YN+GPHqcnJiQBIf3maTAAj5iRt+7GYUKBAU9iCXTiouCjGYgAAAAwAAAwA9p4HQBg2cAAADAAADAADGgUdBADc4EAAAs0x+AP////////////////////////////////////////////////////////////////8AAAHgAACAwAoxAAnVgREACblhAAAAAQnwAAAAAQGep2pCvwAAAwAAAwAAAwAAAwAAAwAAAwAAAwAAAwBR6/L83y+ZevtMZ0FW4lp8qV7fVXQAhLAWlS6mDxvpaSUgChorvgTMXtxJEIAAAAMAAAMACqFCAAADAAADAAADAAz4R0EAOCsA////////////////////////////////////////////////////////AAAB4AAAgMAKMQALYiERAAnVgQAAAAEJ8AAAAAFBmqxJqEFsmUwId//+qZYAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAApQTq0hABLvkcWCYrAaRRPNDrECJGlF/11BYvG9+JJ9Y86nxnmQzPxtAAe1UgOsXAAADAAADAAADAAADAAADAAADAAADA/JHQQA5JhAAAMFcfgD/////////////////////////////////////////AAAB4AAAgMAKMQALKeERAAnxoQAAAAEJ8AAAAAFBnspFFSwv/wAAAwAAAwAAAwAAAwAAAwAAAwAAAwAADdRFmvrVE0KXDOGwWddlwYa1foib7tXZKmkua6R4APb4b8+tXwdSNNqgf2IVNwGTohgQAcMvp6SiQxpiQym4AAADAAADAANUNUAAAAMAAAMAAAMBN0dBADo8AP//////////////////////////////////////////////////////////////////////////////AAAB4AAAgIAFIQALDcEAAAABCfAAAAABAZ7pdEK/AAADAAADAAADAAADAAADAAADAAADAAADAFHTAfujIUaaLSuklb9y0/so9AEtQAqkAxOviALQZ5jNt/iOkABrCOZ4md0iUnFwAAADAAADAALwckAAAAMAAAMAAATcR0EAO0IQAADPbH4A//////////////////////////////////////////////////////////////////////////////8AAAHgAACAwAoxAAtGAREACynhAAAAAQnwAAAAAQGe62pCvwAAAwAAAwAAAwAAAwAAAwAAAwAAAwAAAwBR6/L83y+WryR9gmVKPGbIhJpkgAFgHCej3gB6rAHPgHHAAAADAAADAAAYIV0AAAMAAAMAAAMABnxHQQA8UQD//////////////////////////////////////////////////////////////////////////////////////////////////////////wAAAeAAAIDACjEAC9KhEQALRgEAAAABCfAAAAABQZrwSahBbJlMCG///qeEAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAAZ8UdBAD00EAAA3Xx+AP///////////////////////////////////////////////////////////wAAAeAAAIDACjEAC5phEQALYiEAAAABCfAAAAABQZ8ORRUsL/8AAAMAAAMAAAMAAAMAAAMAAAMAAAMAAA3URZr61RNClwzhI2ZXdRHYLZWc1yTgKRhTIXBNABHQKIIyYNyc+AaEn1jhATEAAAMAAAMAAAMAckkIAAADAAADAAADAEbBR0EAPkYA////////////////////////////////////////////////////////////////////////////////////////////AAAB4AAAgIAFIQALfkEAAAABCfAAAAABAZ8tdEK/AAADAAADAAADAAADAAADAAADAAADAAADAFHTAfujIUAYRtY0f/43cIs2OjxACR2hMR1QBGYX+34JGAAAAwAAAwAAAwKEJ6AAAAMAAAMAAAMA3oFHQQA/QhAAAOuMfgD//////////////////////////////////////////////////////////////////////////////wAAAeAAAIDACjEAC7aBEQALmmEAAAABCfAAAAABAZ8vakK/AAADAAADAAADAAADAAADAAADAAADAAADAFHr8vzfL5avJH2CZUo8ZsiEmmSAAWAcJ6PeAHqsAc+AccAAAAMAAAMAABghXQAAAwAAAwAAAwAGfEdBADBRAP//////////////////////////////////////////////////////////////////////////////////////////////////////////AAAB4AAAgMAKMQANQyERAAu2gQAAAAEJ8AAAAAFBmzRJqEFsmUwIZ//+nhAAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAGVAR0EAMTQQAAD5nH4A////////////////////////////////////////////////////////////AAAB4AAAgMAKMQANCuERAAvSoQAAAAEJ8AAAAAFBn1JFFSwv/wAAAwAAAwAAAwAAAwAAAwAAAwAAAwAADdRFmvrVE0KXDOEjZld1EdgtlZzXJOApGFMhcE0AEdAogjJg3Jz4BoSfWOEBMQAAAwAAAwAAAwBySQgAAAMAAAMAAAMARsFHQQAyRgD///////////////////////////////////////////////////////////////////////////////////////////8AAAHgAACAgAUhAAvuwQAAAAEJ8AAAAAEBn3F0Qr8AAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAUdMB+6MhQBhG1jR//jdwizY6PEAJHaExHVAEZhf7fgkYAAADAAADAAADAoQnoAAAAwAAAwAAAwDegEdBADNCEAABB6x+AP//////////////////////////////////////////////////////////////////////////////AAAB4AAAgMAKMQANJwERAA0K4QAAAAEJ8AAAAAEBn3NqQr8AAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAUevy/N8vlq8kfYJlSjxmyISaZIABYBwno94AeqwBz4BxwAAAAwAAAwAAGCFdAAADAAADAAADAAZ8R0EANFIA////////////////////////////////////////////////////////////////////////////////////////////////////////////AAAB4AAAgMAKMQANs6ERAA0nAQAAAAEJ8AAAAAFBm3hJqEFsmUwIV//+OEAAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAYtHQQA1NBAAARW8fgD///////////////////////////////////////////////////////////8AAAHgAACAwAoxAA17YREADUMhAAAAAQnwAAAAAUGflkUVLC//AAADAAADAAADAAADAAADAAADAAADAAAN1EWa+tUTQpcM4SNmV3UR2C2VnNck4CkYUyFwTQAR0CiCMmDcnPgGhJ9Y4QExAAADAAADAAADAHJJCAAAAwAAAwAAAwBGwEdBADZGAP///////////////////////////////////////////////////////////////////////////////////////////wAAAeAAAICABSEADV9BAAAAAQnwAAAAAQGftXRCvwAAAwAAAwAAAwAAAwAAAwAAAwAAAwAAAwBR0wH7oyFAGEbWNH/+N3CLNjo8QAkdoTEdUARmF/t+CRgAAAMAAAMAAAMChCegAAADAAADAAADAN6BR0EAN0IQAAEjzH4A//////////////////////////////////////////////////////////////////////////////8AAAHgAACAwAoxAA2XgREADXthAAAAAQnwAAAAAQGft2pCvwAAAwAAAwAAAwAAAwAAAwAAAwAAAwAAAwBR6/L83y+WryR9gmVKPGbIhJpkgAFgHCej3gB6rAHPgHHAAAADAAADAAAYIV0AAAMAAAMAAAMABn0=" + webUI["html/js/data.js"] = "ZnVuY3Rpb24gc2hvd0NvbmZpZyhvYmopIHsNCiAgY29uZmlnID0gb2JqOw0KICAvL3NldE1lbnVJdGVtKCk7DQogIGNyZWF0ZU1lbnUoKTsNCiAgLy9kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicGFnZSIpLmNsYXNzTmFtZSA9ICIiOw0KfQ0KDQpzaG93TXlTdHJlYW1zDQoNCmZ1bmN0aW9uIHNob3dNeVN0cmVhbXMoYWxsU3RyZWFtc09iaikgew0KDQogIHZhciBzdHJlYW1UeXBlS2V5cyA9IGdldE9iaktleXMoYWxsU3RyZWFtc09iaikNCg0KICBmb3IgKHZhciBzID0gMDsgcyA8IHN0cmVhbVR5cGVLZXlzLmxlbmd0aDsgcysrKSB7DQogICAgdmFyIHN0cmVhbVR5cGUgPSBzdHJlYW1UeXBlS2V5c1tzXTsNCiAgICB2YXIgb2JqID0gbmV3IE9iamVjdCgpOw0KICAgIG9iaiA9IGFsbFN0cmVhbXNPYmpbc3RyZWFtVHlwZV07DQogICAgc3dpdGNoKHN0cmVhbVR5cGUpIHsNCiAgICAgIGNhc2UgImFjdGl2ZVN0cmVhbXMiOiBhY3RpdmVTdHJlYW1zICAgICA9IG9iajsgYnJlYWs7DQogICAgfQ0KDQogICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoc3RyZWFtVHlwZSkuaW5uZXJIVE1MID0gIiI7DQoNCiAgICB2YXIgc3RyZWFtc09iaiAgICA9IG5ldyBPYmplY3QoKTsNCiAgICB2YXIgc3RyZWFtc05hbWVzICA9IG5ldyBBcnJheSgpOw0KICAgIA0KICAgIHZhciBrZXlzID0gZ2V0T2JqS2V5cyhvYmopDQogICAgDQogICAgLy8gQ3JlYXRlIE9iamVjdCAoc3RyZWFtc09iaikgZm9yIHRoZSBzdHJlYW1zIGFuZCBzb3J0IGJ5IG5hbWUgKHN0cmVhbXNOYW1lcykNCiAgICBmb3IgKHZhciBpID0gMDsgaSA8IGtleXMubGVuZ3RoOyBpKyspIHsNCiAgICAgIHZhciBuYW1lICAgID0gb2JqW2tleXNbaV1dWyJuYW1lIl07DQogICAgICB2YXIgdG1wID0gbmV3IE9iamVjdCgpOw0KICAgICAgdmFyIHN0cmVhbUtleSA9IGdldE9iaktleXMob2JqW2tleXNbaV1dKTsNCg0KICAgICAgZm9yICh2YXIgaiA9IDA7IGogPCBzdHJlYW1LZXkubGVuZ3RoOyBqKyspIHsNCiAgICAgICAgdG1wW3N0cmVhbUtleVtqXV0gPSBvYmpba2V5c1tpXV1bc3RyZWFtS2V5W2pdXTsgICAgICANCiAgICAgIH0NCg0KICAgICAgc3RyZWFtc09ialtuYW1lXSA9IHRtcDsNCiAgICAgIHN0cmVhbXNOYW1lcy5wdXNoKG5hbWUpDQogICAgfQ0KDQogICAgc3RyZWFtc05hbWVzLnNvcnQoKTsNCiAgICANCiAgICAvLyBDcmVhdGUgVGFibGUgZm9yIGFjdGl2ZVN0cmVhbXMNCiAgICB2YXIgdGFibGUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChzdHJlYW1UeXBlKTsNCg0KICAgIGZvciAodmFyIGkgPSAwOyBpIDwgc3RyZWFtc05hbWVzLmxlbmd0aDsgaSsrKSB7DQogICAgICB2YXIgbmV3RW50cnkgPSBuZXcgT2JqZWN0KCk7DQogICAgICBuZXdFbnRyeVsiX2VsZW1lbnQiXSA9ICJUUiI7DQogICAgICB0YWJsZS5hcHBlbmRDaGlsZChjcmVhdGVFbGVtZW50KG5ld0VudHJ5KSk7DQogICAgICB2YXIgbGluZSA9IHRhYmxlLmxhc3RDaGlsZDsNCg0KICAgICAgdmFyIHRtcCA9IHN0cmVhbXNPYmpbc3RyZWFtc05hbWVzW2ldXQ0KICAgICAgdmFyIGtleXMgPSBnZXRPYmpLZXlzKHRtcCkNCg0KICAgICAgdmFyIG5ld0tleSA9IG5ldyBPYmplY3QoKQ0KICAgICAgbmV3S2V5WyJfZWxlbWVudCJdICA9ICJURCI7DQogICAgICAvL25ld0tleVsiX3RleHQiXSAgICAgPSBzdHJlYW1zTmFtZXNbaV07DQogICAgICBzd2l0Y2goc3RyZWFtVHlwZSkgew0KICAgICAgICBjYXNlICJhY3RpdmVTdHJlYW1zIjogbmV3S2V5WyJfdGV4dCJdICAgICA9ICJDaGFubmVsICgrKToiOyBicmVhazsNCiAgICAgICAgY2FzZSAiaW5hY3RpdmVTdHJlYW1zIjogbmV3S2V5WyJfdGV4dCJdICAgPSAiQ2hhbm5lbCAoLSk6IjsgYnJlYWs7DQogICAgICB9DQogICAgICANCiAgICAgIG5ld0tleVsiY2xhc3MiXSAgICAgPSAidGRLZXkiOw0KICAgICAgY29uc29sZS5sb2coKTsNCg0KDQogICAgICB2YXIgbmV3VmFsID0gbmV3IE9iamVjdCgpDQogICAgICBuZXdWYWxbIl9lbGVtZW50Il0gID0gIlREIjsNCiAgICAgIG5ld1ZhbFsiX3RleHQiXSAgICAgPSBzdHJlYW1zTmFtZXNbaV07DQogICAgICBuZXdWYWxbImNsYXNzIl0gICAgID0gInRkVmFsIjsNCiAgICAgIC8vbmV3VmFsWyJfdGV4dCJdICAgICA9IHZhbHVlOw0KICAgICAgDQogICAgICBsaW5lLmFwcGVuZENoaWxkKGNyZWF0ZUVsZW1lbnQobmV3S2V5KSk7DQogICAgICBsaW5lLmFwcGVuZENoaWxkKGNyZWF0ZUVsZW1lbnQobmV3VmFsKSk7DQogICAgICANCiAgICB9DQoNCiAgfQ0KDQogIHJldHVybg0KfQ0KDQpmdW5jdGlvbiBzaG93QWN0aXZlU3RyZWFtcyhvYmopIHsNCiAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImFjdGl2ZVN0cmVhbXMiKS5pbm5lckhUTUwgPSAiIjsNCiAgYWN0aXZlU3RyZWFtcyAgICAgPSBvYmo7DQogIHZhciBzdHJlYW1zT2JqICAgID0gbmV3IE9iamVjdCgpOw0KICB2YXIgc3RyZWFtc05hbWVzICA9IG5ldyBBcnJheSgpOw0KICANCiAgdmFyIGtleXMgPSBnZXRPYmpLZXlzKG9iaikNCiAgDQogIC8vIENyZWF0ZSBPYmplY3QgKHN0cmVhbXNPYmopIGZvciB0aGUgc3RyZWFtcyBhbmQgc29ydCBieSBuYW1lIChzdHJlYW1zTmFtZXMpDQogIGZvciAodmFyIGkgPSAwOyBpIDwga2V5cy5sZW5ndGg7IGkrKykgew0KICAgIHZhciBuYW1lICAgID0gb2JqW2tleXNbaV1dWyJuYW1lIl07DQogICAgdmFyIHRtcCA9IG5ldyBPYmplY3QoKTsNCiAgICB2YXIgc3RyZWFtS2V5ID0gZ2V0T2JqS2V5cyhvYmpba2V5c1tpXV0pOw0KDQogICAgZm9yICh2YXIgaiA9IDA7IGogPCBzdHJlYW1LZXkubGVuZ3RoOyBqKyspIHsNCiAgICAgIHRtcFtzdHJlYW1LZXlbal1dID0gb2JqW2tleXNbaV1dW3N0cmVhbUtleVtqXV07ICAgICAgDQogICAgfQ0KDQogICAgc3RyZWFtc09ialtuYW1lXSA9IHRtcDsNCiAgICBzdHJlYW1zTmFtZXMucHVzaChuYW1lKQ0KICB9DQoNCiAgc3RyZWFtc05hbWVzLnNvcnQoKTsNCiAgDQogIC8vIENyZWF0ZSBUYWJsZSBmb3IgYWN0aXZlU3RyZWFtcw0KICB2YXIgdGFibGUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYWN0aXZlU3RyZWFtcyIpOw0KDQogIGZvciAodmFyIGkgPSAwOyBpIDwgc3RyZWFtc05hbWVzLmxlbmd0aDsgaSsrKSB7DQogICAgdmFyIG5ld0VudHJ5ID0gbmV3IE9iamVjdCgpOw0KICAgIG5ld0VudHJ5WyJfZWxlbWVudCJdID0gIlRSIjsNCiAgICB0YWJsZS5hcHBlbmRDaGlsZChjcmVhdGVFbGVtZW50KG5ld0VudHJ5KSk7DQogICAgdmFyIGxpbmUgPSB0YWJsZS5sYXN0Q2hpbGQ7DQoNCiAgICB2YXIgdG1wID0gc3RyZWFtc09ialtzdHJlYW1zTmFtZXNbaV1dDQogICAgdmFyIGtleXMgPSBnZXRPYmpLZXlzKHRtcCkNCg0KICAgIHZhciBuZXdLZXkgPSBuZXcgT2JqZWN0KCkNCiAgICBuZXdLZXlbIl9lbGVtZW50Il0gID0gIlREIjsNCiAgICAvL25ld0tleVsiX3RleHQiXSAgICAgPSBzdHJlYW1zTmFtZXNbaV07DQogICAgbmV3S2V5WyJfdGV4dCJdICAgICA9ICJDaGFubmVsOiI7DQogICAgbmV3S2V5WyJjbGFzcyJdICAgICA9ICJ0ZEtleSI7DQogICAgY29uc29sZS5sb2coKTsNCg0KDQogICAgdmFyIG5ld1ZhbCA9IG5ldyBPYmplY3QoKQ0KICAgIG5ld1ZhbFsiX2VsZW1lbnQiXSAgPSAiVEQiOw0KICAgIG5ld1ZhbFsiX3RleHQiXSAgICAgPSBzdHJlYW1zTmFtZXNbaV07DQogICAgbmV3VmFsWyJjbGFzcyJdICAgICA9ICJ0ZFZhbCI7DQogICAgLy9uZXdWYWxbIl90ZXh0Il0gICAgID0gdmFsdWU7DQogICAgDQogICAgbGluZS5hcHBlbmRDaGlsZChjcmVhdGVFbGVtZW50KG5ld0tleSkpOw0KICAgIGxpbmUuYXBwZW5kQ2hpbGQoY3JlYXRlRWxlbWVudChuZXdWYWwpKTsNCiAgICANCiAgfQ0KDQp9DQoNCmZ1bmN0aW9uIHBhcnNlTG9ncyhvYmopIHsNCiAgbG9nID0gb2JqDQogIHZhciBrZXlzID0gZ2V0T2JqS2V5cyhvYmopDQoNCiAgdmFyIG1zZ1R5cGU7DQogIGZvciAodmFyIGkgPSAwOyBpIDwga2V5cy5sZW5ndGg7IGkrKykgew0KICAgIHN3aXRjaChrZXlzW2ldKSB7DQogICAgICBjYXNlICJ3YXJuaW5ncyI6ICBtc2dUeXBlID0gIndhcm5pbmdNc2ciOyBicmVhazsNCiAgICAgIGNhc2UgImVycm9ycyI6ICAgIG1zZ1R5cGUgPSAiZXJyb3JNc2ciOyBicmVhazsNCiAgICB9DQoNCiAgICBzd2l0Y2gob2JqW2tleXNbaV1dKSB7DQogICAgICBjYXNlIDA6IG1zZ1R5cGUgPSAidGRWYWwiOyBicmVhazsNCiAgICAgIGRlZmF1bHQ6IGJyZWFrOw0KICAgIH0NCg0KICAgIGlmKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGtleXNbaV0pKXsNCiAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGtleXNbaV0pLmNsYXNzTmFtZSA9IG1zZ1R5cGU7DQogICAgfQ0KICAgIA0KICAgIA0KICB9DQogIHJldHVybg0KfQ0KDQoNCmZ1bmN0aW9uIGNhbmNlbERhdGEoZWxlbWVudCkgew0KICBjcmVhdGVNZW51KCk7DQp9DQoNCmZ1bmN0aW9uIHNhdmVEYXRhKGVsZW1lbnQpIHsNCiAgdmFyIGRhdGEgPSBuZXcgT2JqZWN0KCk7DQogIHZhciBkaXYgPSBlbGVtZW50LnBhcmVudE5vZGUucGFyZW50Tm9kZTsNCiAgdmFyIGlucHV0cyA9IGRpdi5nZXRFbGVtZW50c0J5VGFnTmFtZSgiSU5QVVQiKTsNCiAgDQogIHZhciBjb25maWdLZXkgPSBkaXYuZ2V0QXR0cmlidXRlKCJkYXRhLWNvbmZpZ2tleSIpOw0KICB2YXIgbWVudVR5cGUgPSBkaXYuZ2V0QXR0cmlidXRlKCJkYXRhLW1lbnV0eXBlIik7DQogIHZhciB2YWx1ZTsNCiAgdmFyIHZhbHVlQXJyID0gbmV3IEFycmF5KCk7DQogIA0KICBmb3IgKHZhciBpID0gMDsgaSA8IGlucHV0cy5sZW5ndGg7IGkrKykgew0KICAgIGlmIChpbnB1dHNbaV0udHlwZSA9PSAidGV4dCIgJiYgaW5wdXRzW2ldLnZhbHVlICE9IHVuZGVmaW5lZCAmJiBpbnB1dHNbaV0udmFsdWUgIT0gIiIgKSB7DQogICAgICBjb25zb2xlLmxvZyhpbnB1dHNbaV0udmFsdWUsIG1lbnVUeXBlKQ0KICAgICAgc3dpdGNoKG1lbnVUeXBlKSB7DQogICAgICAgIGNhc2UgImlucHV0QXJyYXkiOiB2YWx1ZUFyci5wdXNoKGlucHV0c1tpXS52YWx1ZSk7IGJyZWFrOw0KICAgICAgICBjYXNlICJzaW5nbGVJbnB1dCI6IHZhbHVlID0gaW5wdXRzW2ldLnZhbHVlOyBicmVhazsNCiAgICAgIH0NCiAgICB9DQogIH0NCg0KICBzd2l0Y2gobWVudVR5cGUpIHsNCiAgICBjYXNlICJpbnB1dEFycmF5IjogIGRhdGFbY29uZmlnS2V5XSA9IHZhbHVlQXJyOyBicmVhazsNCiAgICBjYXNlICJzaW5nbGVJbnB1dCI6ICANCiAgICAgIGlmIChpc05hTih2YWx1ZSkgPT0gZmFsc2UpIHsNCiAgICAgICAgdmFsdWUgPSBwYXJzZUludCh2YWx1ZSk7DQogICAgICAgIGRhdGFbY29uZmlnS2V5XSA9IHZhbHVlOw0KICAgICAgICBicmVhazsNCiAgICAgIH0NCg0KICAgICAgaWYgKHZhbHVlID09IHVuZGVmaW5lZCkgew0KICAgICAgICBkYXRhWyJkZWxldGUiXSA9IGNvbmZpZ0tleTsgDQogICAgICB9IGVsc2Ugew0KICAgICAgICBkYXRhW2NvbmZpZ0tleV0gPSB2YWx1ZQ0KICAgICAgfQ0KDQogICAgICBicmVhazsNCiAgfQ0KDQogIGRhdGFbImNtZCJdID0gInNhdmVDb25maWciOw0KICBjb25zb2xlLmxvZyhkYXRhKTsNCiAgeFRlVmUoZGF0YSkNCn0NCg0KZnVuY3Rpb24geFRlVmUoZGF0YSkgew0KICBpZiAod2ViU29ja2V0cyA9PSBmYWxzZSkgew0KICAgIGFsZXJ0KCJZb3VyIGJyb3dzZXIgZG9lcyBub3Qgc3VwcG9ydCBXZWJTb2NrZXRzIik7DQogICAgcmV0dXJuOw0KICB9IGVsc2Ugew0KICAgIGlmIChkYXRhWyJjbWQiXSAhPSAiZ2V0TG9nIikgew0KICAgICAgc2hvd0xvYWRpbmdTY3JlZW4odHJ1ZSkNCiAgICB9DQogIH0NCiAgZGVsZXRlIHVuZG9bImVwZ01hcHBpbmciXTsNCiAgDQogIHZhciBwcm90b2NvbFdTDQogIHN3aXRjaCh3aW5kb3cubG9jYXRpb24ucHJvdG9jb2wpIHsNCiAgICBjYXNlICJodHRwOiI6ICAgcHJvdG9jb2xXUyA9ICJ3czovLyI7IGJyZWFrOw0KICAgIGNhc2UgImh0dHBzOiI6ICBwcm90b2NvbFdTID0gIndzczovLyI7IGJyZWFrOw0KICB9DQoNCg0KICB2YXIgd3MgPSBuZXcgV2ViU29ja2V0KHByb3RvY29sV1MgKyB3aW5kb3cubG9jYXRpb24uaG9zdG5hbWUgKyAiOiIgKyB3aW5kb3cubG9jYXRpb24ucG9ydCArICIvZGF0YS8iICsgIj9Ub2tlbj0iICsgZ2V0Q29va2llKCJUb2tlbiIpKTsNCiAgd3Mub25vcGVuID0gZnVuY3Rpb24oKSB7DQogICAgY29uc29sZS5sb2coZGF0YSkNCiAgICB3cy5zZW5kKEpTT04uc3RyaW5naWZ5KGRhdGEpKTsNCiAgfQ0KDQogIHdzLm9ubWVzc2FnZSA9IGZ1bmN0aW9uIChlKSB7DQogICAgdmFyIHJlc3BvbnNlID0gSlNPTi5wYXJzZShlLmRhdGEpOw0KICAgIGNvbnNvbGUubG9nKHJlc3BvbnNlKTsNCiAgICANCiAgICBpZiAocmVzcG9uc2UuaGFzT3duUHJvcGVydHkoImNsaWVudEluZm8iKSkgew0KICAgICAgY3JlYXRlQ2xpbnRJbmZvKHJlc3BvbnNlWyJjbGllbnRJbmZvIl0pOw0KICAgIH0NCg0KICAgIGlmIChyZXNwb25zZS5oYXNPd25Qcm9wZXJ0eSgibG9nIikpIHsNCiAgICAgIGNyZWF0ZUNsaW50SW5mbyhyZXNwb25zZVsibG9nIl0pOw0KICAgIH0NCg0KICAgIGlmIChyZXNwb25zZS5oYXNPd25Qcm9wZXJ0eSgic3RhdHVzIikpIHsNCiAgICAgIGlmIChyZXNwb25zZVsic3RhdHVzIl0gPT0gZmFsc2UpIHsNCiAgICAgICAgYWxlcnQocmVzcG9uc2VbImVyciJdKQ0KICAgICAgICBpZihyZXNwb25zZS5oYXNPd25Qcm9wZXJ0eSgicmVsb2FkIikpIHsNCiAgICAgICAgICBsb2NhdGlvbi5yZWxvYWQoKTsNCiAgICAgICAgfQ0KICAgICAgICAvL2NoZWNrRXJyKHJlc3BvbnNlKQ0KICAgICAgICBjb25zb2xlLmxvZyhyZXNwb25zZSk7DQogICAgICAgIHVwZGF0ZVh0ZXZlU3RhdHVzKHJlc3BvbnNlKTsNCiAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbigpeyBzaG93TG9hZGluZ1NjcmVlbihmYWxzZSk7IH0sIDMwMCk7DQogICAgICAgIA0KICAgICAgICByZXR1cm4NCiAgICAgIH0NCg0KICAgICAgdXBkYXRlWHRldmVTdGF0dXMocmVzcG9uc2UpDQoNCiAgICAgIC8vY29uc29sZS5sb2coZGF0YVsiY21kIl0pOw0KICAgICAgc3dpdGNoKGRhdGFbImNtZCJdKSB7DQogICAgICAgIGNhc2UgInNhdmVVc2VyRGF0YSI6ICAgIGNyZWF0ZU1lbnUoKTsgYnJlYWs7DQogICAgICAgIGNhc2UgInNhdmVOZXdVc2VyIjogICAgIGNyZWF0ZU1lbnUoKTsgYnJlYWs7DQogICAgICAgIGNhc2UgInNhdmVGaWxlc1hNTFRWIjogIC8vY3JlYXRlTWVudSgpOyBicmVhazsNCiAgICAgICAgY2FzZSAic2F2ZUZpbGVzTTNVIjogICAgLy9jcmVhdGVNZW51KCk7IHJldHVybjsgYnJlYWs7DQogICAgICAgIGNhc2UgInNhdmVDb25maWciOiAgICANCiAgICAgICAgICBkYXRhID0gbmV3IE9iamVjdCgpOw0KICAgICAgICAgIGRhdGFbImNtZCJdID0gImNoZWNrVG9rZW4iOw0KICAgICAgICAgIHhUZVZlKGRhdGEpOw0KICAgICAgICAgIGJyZWFrOw0KDQogICAgICAgIGNhc2UgImVtcHR5TG9nIjogd3JpdGVMb2dJbkRpdigpOyBicmVhazsNCiAgICAgICAgY2FzZSAiZ2V0TG9nIjogIHJldHVybjsgYnJlYWs7DQogICAgICB9DQoNCg0KICAgIH0NCg0KICAgIGlmIChjb25maWdbImZpbGVzIl0gPT0gdW5kZWZpbmVkIHx8IGNvbmZpZ1siZmlsZXMiXS5sZW5ndGggPT0gMCkgew0KICAgICAgY3JlYXRlTWVudSgpOw0KICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoMTApLmNsaWNrKCkNCiAgICB9DQoNCiAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7IHNob3dMb2FkaW5nU2NyZWVuKGZhbHNlKTsgfSwgMCk7DQogIH0NCiAgDQp9DQoNCmZ1bmN0aW9uIHVwZGF0ZVh0ZXZlU3RhdHVzKHJlc3BvbnNlKSB7DQogIHZhciBrZXlzID0gZ2V0T2JqS2V5cyhyZXNwb25zZSk7DQogIC8vY29uc29sZS5sb2coa2V5cyk7DQoNCiAgZm9yICh2YXIgaSA9IDA7IGkgPCBrZXlzLmxlbmd0aDsgaSsrKSB7DQogICAgc3dpdGNoKGtleXNbaV0pIHsNCiAgICAgIGNhc2UgImFsZXJ0IjogICAgICAgICBhbGVydChyZXNwb25zZVtrZXlzW2ldXSk7IGJyZWFrOw0KICAgICAgY2FzZSAiY29uZmlnIjogICAgICAgIHNob3dDb25maWcocmVzcG9uc2Vba2V5c1tpXV0pOyBicmVhazsNCiAgICAgIGNhc2UgImxvZyI6ICAgICAgICAgICBwYXJzZUxvZ3MocmVzcG9uc2Vba2V5c1tpXV0pOyBicmVhazsNCiAgICAgIGNhc2UgIm15U3RyZWFtcyI6ICAgICBzaG93TXlTdHJlYW1zKHJlc3BvbnNlW2tleXNbaV1dKTsgYnJlYWs7DQogICAgICBjYXNlICJ4RVBHIjogICAgICAgICAgeEVQRyA9IHJlc3BvbnNlW2tleXNbaV1dOyBicmVhazsNCiAgICAgIGNhc2UgInVzZXJzIjogICAgICAgICB1c2VycyA9IHJlc3BvbnNlW2tleXNbaV1dOyBicmVhazsNCiAgICAgIGNhc2UgInRva2VuIjogICAgICAgICBkb2N1bWVudC5jb29raWUgPSAiVG9rZW49IiArIHJlc3BvbnNlW2tleXNbaV1dOyBicmVhazsNCiAgICAgIGNhc2UgInJlbG9hZCI6ICAgICAgICBsb2NhdGlvbi5yZWxvYWQoKTsgYnJlYWs7DQogICAgICBjYXNlICJvcGVuTGluayI6ICAgICAgd2luZG93LmxvY2F0aW9uID0gcmVzcG9uc2VbIm9wZW5MaW5rIl07IGJyZWFrOw0KICAgICAgLy9jYXNlICJ2ZXJzaW9uIjogdmVyc2lvbiA9IHJlc3BvbnNlW2tleXNbaV1dOyBicmVhazsNCiAgICB9DQogIH0NCn0NCg0KZnVuY3Rpb24gZ2V0VmFsdWVGcm9tUHJvdmlkZXJGaWxlKHhYbWx0dkZpbGUsIGZpbGVUeXBlLCBrZXkpIHsNCg0KICB2YXIgZmlsZUlEID0geFhtbHR2RmlsZS5zdWJzdHJpbmcoMCwgeFhtbHR2RmlsZS5sYXN0SW5kZXhPZignLicpKQ0KDQogIGlmIChjb25maWdbImZpbGVzIl1bZmlsZVR5cGVdLmhhc093blByb3BlcnR5KGZpbGVJRCkgPT0gdHJ1ZSkgew0KICAgIHZhciBkYXRhID0gY29uZmlnWyJmaWxlcyJdW2ZpbGVUeXBlXVtmaWxlSURdOw0KICAgIHJldHVybiBkYXRhW2tleV0NCiAgfQ0KDQp9DQoNCg0KDQoNCg==" + webUI["html/js/logs_ts.js"] = "Y2xhc3MgTG9nIHsNCiAgICBjcmVhdGVMb2coZW50cnkpIHsNCiAgICAgICAgdmFyIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJQUkUiKTsNCiAgICAgICAgaWYgKGVudHJ5LmluZGV4T2YoIldBUk5JTkciKSAhPSAtMSkgew0KICAgICAgICAgICAgZWxlbWVudC5jbGFzc05hbWUgPSAid2FybmluZ01zZyI7DQogICAgICAgIH0NCiAgICAgICAgaWYgKGVudHJ5LmluZGV4T2YoIkVSUk9SIikgIT0gLTEpIHsNCiAgICAgICAgICAgIGVsZW1lbnQuY2xhc3NOYW1lID0gImVycm9yTXNnIjsNCiAgICAgICAgfQ0KICAgICAgICBpZiAoZW50cnkuaW5kZXhPZigiREVCVUciKSAhPSAtMSkgew0KICAgICAgICAgICAgZWxlbWVudC5jbGFzc05hbWUgPSAiZGVidWdNc2ciOw0KICAgICAgICB9DQogICAgICAgIGVsZW1lbnQuaW5uZXJIVE1MID0gZW50cnk7DQogICAgICAgIHJldHVybiBlbGVtZW50Ow0KICAgIH0NCn0NCmZ1bmN0aW9uIHNob3dMb2dzKGJvdHRvbSkgew0KICAgIHZhciBsb2cgPSBuZXcgTG9nKCk7DQogICAgdmFyIGxvZ3MgPSBTRVJWRVJbImxvZyJdWyJsb2ciXTsNCiAgICB2YXIgZGl2ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnRlbnRfbG9nIik7DQogICAgZGl2LmlubmVySFRNTCA9ICIiOw0KICAgIHZhciBrZXlzID0gZ2V0T2JqS2V5cyhsb2dzKTsNCiAgICBrZXlzLmZvckVhY2gobG9nSUQgPT4gew0KICAgICAgICB2YXIgZW50cnkgPSBsb2cuY3JlYXRlTG9nKGxvZ3NbbG9nSURdKTsNCiAgICAgICAgZGl2LmFwcGVuZChlbnRyeSk7DQogICAgfSk7DQogICAgc2V0VGltZW91dChmdW5jdGlvbiAoKSB7DQogICAgICAgIGlmIChib3R0b20gPT0gdHJ1ZSkgew0KICAgICAgICAgICAgdmFyIHdyYXBwZXIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYm94LXdyYXBwZXIiKTsNCiAgICAgICAgICAgIHdyYXBwZXIuc2Nyb2xsVG9wID0gd3JhcHBlci5zY3JvbGxIZWlnaHQ7DQogICAgICAgIH0NCiAgICB9LCAxMCk7DQp9DQpmdW5jdGlvbiByZXNldExvZ3MoKSB7DQogICAgdmFyIGNtZCA9ICJyZXNldExvZ3MiOw0KICAgIHZhciBkYXRhID0gbmV3IE9iamVjdCgpOw0KICAgIHZhciBzZXJ2ZXIgPSBuZXcgU2VydmVyKGNtZCk7DQogICAgc2VydmVyLnJlcXVlc3QoZGF0YSk7DQp9DQo=" + webUI["html/maintenance.html"] = "PCFkb2N0eXBlIGh0bWw+DQo8aHRtbD4NCiAgPGhlYWQ+DQogICAgPG1ldGEgY2hhcnNldD0idXRmLTgiPg0KICAgIDxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgsIGluaXRpYWwtc2NhbGU9MS4wIiAvPiANCiAgICA8dGl0bGU+eFRlVmU8L3RpdGxlPg0KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iY3NzL3NjcmVlbi5jc3MiIHR5cGU9InRleHQvY3NzIj4NCiAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9ImNzcy9iYXNlLmNzcyIgdHlwZT0idGV4dC9jc3MiPg0KICA8L2hlYWQ+DQoNCiAgICA8Ym9keT4NCiAgICAgICAgICANCiAgICAgIDxkaXYgaWQ9ImhlYWRlciIgY2xhc3M9ImltZ0NlbnRlciI+PC9kaXY+DQoNCiAgICAgIDxkaXYgaWQ9ImJveCI+DQoNCiAgICAgICAgPGRpdiBpZD0iaGVhZGxpbmUiPg0KICAgICAgICAgIDxoMSBpZD0iaGVhZC10ZXh0IiBjbGFzcz0iY2VudGVyIj5NYWludGVuYW5jZTwvaDE+ICAgICAgDQogICAgICAgIDwvZGl2PiAgDQoNCiAgICAgICAgPGRpdiBpZD0iY29udGVudCI+DQogICAgICAgICAgeFRlVmUgaXMgdXBkYXRpbmcgdGhlIGRhdGFiYXNlLCBwbGVhc2UgdHJ5IGFnYWluIGxhdGVyLg0KICAgICAgICA8L2Rpdj4NCg0KICAgICAgICA8ZGl2IGlkPSJib3gtZm9vdGVyIj48L2Rpdj4NCiAgICAgICAgDQogICAgICA8L2Rpdj4NCg0KICAgIDwvYm9keT4NCjwvaHRtbD4=" + webUI["html/create-first-user.html"] = "PCFkb2N0eXBlIGh0bWw+DQo8aHRtbD4NCiAgPGhlYWQ+DQogICAgPG1ldGEgY2hhcnNldD0idXRmLTgiPg0KICAgIDxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgsIGluaXRpYWwtc2NhbGU9MS4wIiAvPiANCiAgICA8dGl0bGU+eFRlVmU8L3RpdGxlPg0KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iY3NzL3NjcmVlbi5jc3MiIHR5cGU9InRleHQvY3NzIj4NCiAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9ImNzcy9iYXNlLmNzcyIgdHlwZT0idGV4dC9jc3MiPg0KICAgIDxzY3JpcHQgbGFuZ3VhZ2U9ImphdmFzY3JpcHQiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJqcy9uZXR3b3JrX3RzLmpzIj48L3NjcmlwdD4NCiAgICA8c2NyaXB0IGxhbmd1YWdlPSJqYXZhc2NyaXB0IiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ianMvYXV0aGVudGljYXRpb25fdHMuanMiPjwvc2NyaXB0Pg0KICA8L2hlYWQ+DQoNCiAgICA8Ym9keT4NCiAgICAgICAgICANCiAgICAgIDxkaXYgaWQ9ImhlYWRlciIgY2xhc3M9ImltZ0NlbnRlciI+PC9kaXY+DQoNCiAgICAgIDxkaXYgaWQ9ImJveCI+DQoNCiAgICAgICAgPGRpdiBpZD0iaGVhZGxpbmUiPg0KICAgICAgICAgIDxoMSBpZD0iaGVhZC10ZXh0IiBjbGFzcz0iY2VudGVyIj57ey5hY2NvdW50LmhlYWRsaW5lfX08L2gxPg0KICAgICAgICA8L2Rpdj4NCg0KICAgICAgICA8cCBpZD0iZXJyIiBjbGFzcz0iZXJyb3JNc2cgY2VudGVyIj48L3A+DQoNCiAgICAgICAgPGRpdiBpZD0iY29udGVudCI+DQoNCiAgICAgICAgICAgIDxmb3JtIGlkPSJhdXRoZW50aWNhdGlvbiIgYWN0aW9uPSIiIG1ldGhvZD0icG9zdCI+DQoNCiAgICAgICAgICAgICAgPGg1Pnt7LmFjY291bnQudXNlcm5hbWUudGl0bGV9fTo8L2g1Pg0KICAgICAgICAgICAgICA8aW5wdXQgaWQ9InVzZXJuYW1lIiB0eXBlPSJ0ZXh0IiBuYW1lPSJ1c2VybmFtZSIgcGxhY2Vob2xkZXI9IlVzZXJuYW1lIiB2YWx1ZT0iIj4NCiAgICAgICAgICAgICAgPGg1Pnt7LmFjY291bnQucGFzc3dvcmQudGl0bGV9fTo8L2g1Pg0KICAgICAgICAgICAgICA8aW5wdXQgaWQ9InBhc3N3b3JkIiB0eXBlPSJwYXNzd29yZCIgbmFtZT0icGFzc3dvcmQiIHBsYWNlaG9sZGVyPSJQYXNzd29yZCIgdmFsdWU9IiI+DQogICAgICAgICAgICAgIDxoNT57ey5hY2NvdW50LmNvbmZpcm0udGl0bGV9fTo8L2g1Pg0KICAgICAgICAgICAgICA8aW5wdXQgaWQ9ImNvbmZpcm0iICB0eXBlPSJwYXNzd29yZCIgbmFtZT0iY29uZmlybSIgIHBsYWNlaG9sZGVyPSJDb25maXJtIiB2YWx1ZT0iIj4NCiAgICAgICAgICAgICAgDQogICAgICAgICAgICA8L2Zvcm0+DQoNCiAgICAgICAgPC9kaXY+DQogICAgICAgIA0KICAgICAgICA8ZGl2IGlkPSJib3gtZm9vdGVyIj4NCiAgICAgICAgICA8aW5wdXQgaWQ9InN1Ym1pdCIgY2xhc3M9IiIgdHlwZT0iYnV0dG9uIiB2YWx1ZT0ie3suYnV0dG9uLmNyYWV0ZUFjY291bnR9fSIgb25jbGljaz0iamF2YXNjcmlwdDogbG9naW4oKTsiPg0KICAgICAgICA8L2Rpdj4NCiAgICAgIA0KICAgICAgICANCiAgICAgIDwvZGl2Pg0KICAgIDwvYm9keT4NCjwvaHRtbD4=" + webUI["html/img/logo_b_880x200.jpg"] = "/9j/4AAQSkZJRgABAQABLAEsAAD/4QDIRXhpZgAATU0AKgAAAAgABwESAAMAAAABAAEAAAEaAAUAAAABAAAAYgEbAAUAAAABAAAAagEoAAMAAAABAAIAAAExAAIAAAAPAAAAcgEyAAIAAAAUAAAAgodpAAQAAAABAAAAlgAAAAAAAAEsAAAAAQAAASwAAAABUGl4ZWxtYXRvciAzLjMAADIwMTk6MDg6MDIgMjA6MDg6MTQAAAOgAQADAAAAAQABAACgAgAEAAAAAQAAA3CgAwAEAAAAAQAAAMgAAAAA/+EJkGh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8APD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iWE1QIENvcmUgNS40LjAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcDpDcmVhdG9yVG9vbD0iUGl4ZWxtYXRvciAzLjMiIHhtcDpNb2RpZnlEYXRlPSIyMDE5LTA4LTAyVDIwOjA4OjE0Ii8+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPD94cGFja2V0IGVuZD0idyI/PgD/7QA4UGhvdG9zaG9wIDMuMAA4QklNBAQAAAAAAAA4QklNBCUAAAAAABDUHYzZjwCyBOmACZjs+EJ+/8AAEQgAyANwAwERAAIRAQMRAf/EAB8AAAEFAQEBAQEBAAAAAAAAAAABAgMEBQYHCAkKC//EALUQAAIBAwMCBAMFBQQEAAABfQECAwAEEQUSITFBBhNRYQcicRQygZGhCCNCscEVUtHwJDNicoIJChYXGBkaJSYnKCkqNDU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6g4SFhoeIiYqSk5SVlpeYmZqio6Slpqeoqaqys7S1tre4ubrCw8TFxsfIycrS09TV1tfY2drh4uPk5ebn6Onq8fLz9PX29/j5+v/EAB8BAAMBAQEBAQEBAQEAAAAAAAABAgMEBQYHCAkKC//EALURAAIBAgQEAwQHBQQEAAECdwABAgMRBAUhMQYSQVEHYXETIjKBCBRCkaGxwQkjM1LwFWJy0QoWJDThJfEXGBkaJicoKSo1Njc4OTpDREVGR0hJSlNUVVZXWFlaY2RlZmdoaWpzdHV2d3h5eoKDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uLj5OXm5+jp6vLz9PX29/j5+v/bAEMAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAf/bAEMBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAf/dAAQAbv/aAAwDAQACEQMRAD8A/iHoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKAP/9D+IegAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoA//0f4h6ACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgD//S/iHoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKAP/9P+IegAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoA//1P4h6ACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgDvPDXws+J3jPT31bwf8OfHnivSo7mSyfU/DXhDxBrunpeQpFLNaPe6Xp11bLcxRzwSSQNL5saTROyhZUNAHQf8M//AB4/6In8XP8Aw23jL/5TUAH/AAz/APHj/oifxc/8Nt4y/wDl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f/E3xn4o+IPjnxDLaafp8mveMPGet33iPxNrMlhpNpYaVZPqmtale3z2mmWNlp9s05hsrS2tkjhQA4ygAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgD//S/iHoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAczu+N7M2BgbmLYHoM9BnJxx1/FgBtABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAOLuwVWZiq/dUsSFz12joM4HQduc4FADaACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgD//0/4h6ACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgD//U/iHoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKAP/9X+IegAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoA//1v4h6ACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgD//X/iHoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKAP/9k=" + webUI["html/img/x_white.png"] = "iVBORw0KGgoAAAANSUhEUgAAAQAAAAEACAIAAADTED8xAAAAAXNSR0IArs4c6QAAAAlwSFlzAAAWJQAAFiUBSVIk8AAAA6ppVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IlhNUCBDb3JlIDUuNC4wIj4KICAgPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIgogICAgICAgICAgICB4bWxuczp0aWZmPSJodHRwOi8vbnMuYWRvYmUuY29tL3RpZmYvMS4wLyIKICAgICAgICAgICAgeG1sbnM6ZXhpZj0iaHR0cDovL25zLmFkb2JlLmNvbS9leGlmLzEuMC8iPgogICAgICAgICA8eG1wOk1vZGlmeURhdGU+MjAxOC0xMS0xNVQxNzoxMToyNTwveG1wOk1vZGlmeURhdGU+CiAgICAgICAgIDx4bXA6Q3JlYXRvclRvb2w+UGl4ZWxtYXRvciAzLjM8L3htcDpDcmVhdG9yVG9vbD4KICAgICAgICAgPHRpZmY6T3JpZW50YXRpb24+MTwvdGlmZjpPcmllbnRhdGlvbj4KICAgICAgICAgPHRpZmY6Q29tcHJlc3Npb24+NTwvdGlmZjpDb21wcmVzc2lvbj4KICAgICAgICAgPHRpZmY6UmVzb2x1dGlvblVuaXQ+MjwvdGlmZjpSZXNvbHV0aW9uVW5pdD4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+MTQ0PC90aWZmOllSZXNvbHV0aW9uPgogICAgICAgICA8dGlmZjpYUmVzb2x1dGlvbj4xNDQ8L3RpZmY6WFJlc29sdXRpb24+CiAgICAgICAgIDxleGlmOlBpeGVsWERpbWVuc2lvbj4yNTY8L2V4aWY6UGl4ZWxYRGltZW5zaW9uPgogICAgICAgICA8ZXhpZjpDb2xvclNwYWNlPjE8L2V4aWY6Q29sb3JTcGFj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" + webUI["html/js/authentication.js"] = "ZnVuY3Rpb24gY3JlYXRlRmlyc3RBY2NvdW50KGVsbSkgew0KICB2YXIgZXJyID0gZmFsc2U7DQogIHZhciBkaXYgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChlbG0pOw0KICBjb25zb2xlLmxvZyhkaXYpOw0KDQogIHZhciBmb3JtID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2F1dGhlbnRpY2F0aW9uJyk7DQogIA0KICBjb25zdCB1c2VybmFtZSAgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndXNlcm5hbWUnKTsNCiAgY29uc3QgcGFzc3dvcmQgID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Bhc3N3b3JkJyk7DQogIGNvbnN0IGNvbmZpcm0gICA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjb25maXJtJyk7DQoNCiAgdmFyIGlucHV0cyA9IGRpdi5nZXRFbGVtZW50c0J5VGFnTmFtZSgnSU5QVVQnKQ0KICBjb25zb2xlLmxvZyhjb25maXJtKTsNCg0KICBzd2l0Y2goY29uZmlybSkgew0KICAgIGNhc2UgbnVsbDogYnJlYWs7DQogICAgDQogICAgZGVmYXVsdDogDQogICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGlucHV0cy5sZW5ndGg7IGkrKykgew0KICAgICAgICBpZiAoaW5wdXRzW2ldLnZhbHVlLmxlbmd0aCA9PSAwKSB7DQogICAgICAgICAgaW5wdXRzW2ldLnN0eWxlLmJvcmRlckNvbG9yID0gJ3JlZCc7DQogICAgICAgICAgZXJyID0gdHJ1ZQ0KICAgICAgICB9DQogICAgICB9DQoNCiAgICAgIHN3aXRjaChlcnIpIHsNCiAgICAgICAgY2FzZSB0cnVlOiByZXR1cm47IGJyZWFrOw0KICAgICAgICBjYXNlIGZhbHNlOiANCiAgICAgICAgICBpZiAocGFzc3dvcmQudmFsdWUgIT0gY29uZmlybS52YWx1ZSkgew0KICAgICAgICAgICAgY29uZmlybS5zdHlsZS5ib3JkZXJDb2xvciA9ICdyZWQnOw0KICAgICAgICAgICAgcmV0dXJuOw0KICAgICAgICAgIH0NCiAgICAgICAgICBicmVhazsNCiAgICAgIH0NCiAgfQ0KDQoNCiAgDQoNCiAgZm9ybS5zdWJtaXQoKTsNCiAgcmV0dXJuOw0KfQ==" + webUI["html/css/base.css"] = "KiB7DQogIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTsNCiAgLW1vei1hcHBlYXJhbmNlOiBub25lOw0KICAtbXMtYXBwZWFyYW5jZTogbm9uZTsNCiAgZm9udC1mYW1pbHk6ICJBcmlhbCIsIHNhbnMtc2VyaWY7DQogIGxldHRlci1zcGFjaW5nOiAycHg7IA0KfQ0KDQovKg0KOjotd2Via2l0LXNjcm9sbGJhciB7IA0KICAgIGRpc3BsYXk6IG5vbmU7IA0KfQ0KKi8NCg0KOjotd2Via2l0LXNjcm9sbGJhciB7DQogIHdpZHRoOiAxMnB4Ow0KICBoZWlnaHQ6IDEycHg7DQp9DQoNCiANCjo6LXdlYmtpdC1zY3JvbGxiYXItdHJhY2sgew0KICAtd2Via2l0LWJveC1zaGFkb3c6IGluc2V0IDAgMCA2cHggcmdiYSgwLDAsMCwwLjMpOyANCiAgYm9yZGVyLXJhZGl1czogNXB4Ow0KICAgIA0KfQ0KIA0KOjotd2Via2l0LXNjcm9sbGJhci10aHVtYiB7DQogIGJvcmRlci1yYWRpdXM6IDVweDsNCiAgLXdlYmtpdC1ib3gtc2hhZG93OiBpbnNldCAwIDAgNnB4IHJnYmEoMCwgMCwgMCwwLjYpOyANCiAgYmFja2dyb3VuZC1jb2xvcjogIzQ0NDsNCn0NCg0KOjotd2Via2l0LXNjcm9sbGJhci10aHVtYjpob3ZlciB7DQogIGJhY2tncm91bmQ6ICMzMzM7IA0KfQ0KDQo6Oi13ZWJraXQtc2Nyb2xsYmFyLWNvcm5lciB7IA0KICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsgDQp9DQoNCmEgew0KICBjb2xvcjogIzAwRTZGRjsNCn0NCg0KaHRtbCwgYm9keSB7DQogIGNvbG9yOiAjZmZmOw0KICBtYXJnaW46IDBweCBhdXRvOw0KICBoZWlnaHQ6IDEwMCU7DQogIGZvbnQtc2l6ZTogMTRweDsNCn0NCg0KaDIgew0KICBmb250LXNpemU6IDI0cHg7DQogIGxldHRlci1zcGFjaW5nOiAycHg7DQp9DQoNCmgzIHsNCiAgZm9udC1zaXplOiAyMnB4Ow0KICBsZXR0ZXItc3BhY2luZzogMXB4Ow0KfQ0KDQpoNCB7DQogIGZvbnQtc2l6ZTogMjBweDsNCiAgbGV0dGVyLXNwYWNpbmc6IDFweDsNCiAgbGluZS1oZWlnaHQ6IDEuNWVtOw0KDQp9DQoNCmg1IHsNCiAgZm9udC1zaXplOiAxNnB4Ow0KICBsZXR0ZXItc3BhY2luZzogMXB4Ow0KICBsaW5lLWhlaWdodDogMS4yZW07DQogIG1hcmdpbjogMjVweCAwcHggMTBweCAwcHg7DQp9DQoNCmhyIHsNCiAgYm9yZGVyOiAwOw0KICBoZWlnaHQ6IDFweDsNCiAgYmFja2dyb3VuZDogIzMzMzsNCiAgbWFyZ2luOiAxMHB4IDBweDsNCn0NCg0KcCB7DQogIG1hcmdpbjogMnB4Ow0KICBwYWRkaW5nOiAycHggNXB4Ow0KfQ0KDQpwcmUgew0KICBtYXJnaW46IDBweCAwcHggNXB4IDBweDsNCiAgZm9udC1zaXplOiAxMnB4Ow0KICBjb2xvcjogI2RkZDsNCiAgbGV0dGVyLXNwYWNpbmc6IDFweDsNCiAgd2hpdGUtc3BhY2U6IHByZS13cmFwOw0KICBmb250LWZhbWlseTogbW9ub3NwYWNlOyANCiAgZm9udC1zaXplOiAxMnB4OyANCiAgZm9udC1zdHlsZTogbm9ybWFsOyANCiAgZm9udC12YXJpYW50OiBub3JtYWw7IA0KICBsaW5lLWhlaWdodDogMS42ZW07IA0KfQ0KDQpsYWJlbCB7DQogIG1hcmdpbi1ib3R0b206IDIwcHg7DQogIGRpc3BsYXk6IGJsb2NrOw0KfQ0KDQpsaSB7DQogIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTsNCiAgYmFja2dyb3VuZC1jb2xvcjogIzExMTsNCiAgcGFkZGluZzogMTBweCAyMHB4Ow0KICBjdXJzb3I6IHBvaW50ZXI7DQogIGJvcmRlci1sZWZ0OiBzb2xpZCAycHggIzExMTsNCiAgdHJhbnNpdGlvbjogYWxsIDAuMzsNCn0NCg0KbGk6aG92ZXIgew0KICBib3JkZXItY29sb3I6ICMwMEU2RkYNCn0NCg0Kc2VsZWN0IHsNCiAgY3Vyc29yOiBwb2ludGVyOw0KICB3aWR0aDogY2FsYygxMDAlICsgMnB4KTsNCiAgYm9yZGVyOiBzb2xpZCAwcHggIzAwRTZGRjsNCiAgYm9yZGVyLXJhZGl1czogMHB4Ow0KICBvdXRsaW5lOiBub25lOw0KICBjb2xvcjogI2ZmZjsNCiAgcGFkZGluZzogOXB4IDEwcHg7DQogIGRpc3BsYXk6YmxvY2s7DQogIGJhY2tncm91bmQtY29sb3I6ICMzMzM7DQogIGZvbnQtc2l6ZTogMTRweDsNCiAgbWFyZ2luOiA1cHggMHB4IDVweCAwcHg7DQp9DQoNCnNlbGVjdDpmb2N1cyB7DQogIG91dGxpbmU6IG5vbmU7DQp9DQoNCmlucHV0IHsNCiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lOw0KICBtYXJnaW46IDVweCAwcHg7DQogIHBhZGRpbmc6IDIuNXB4IDEwcHg7DQogIG91dGxpbmU6IG5vbmU7DQogIGZvbnQtc2l6ZTogMTRweDsNCn0NCg0KaW5wdXRbdHlwZT1idXR0b25dLCBpbnB1dFt0eXBlPXN1Ym1pdF0gew0KICBjdXJzb3I6IHBvaW50ZXI7DQogIGJhY2tncm91bmQtY29sb3I6ICMwMDA7DQogIG1hcmdpbjogMTBweCAxMHB4Ow0KICBwYWRkaW5nOiAxMHB4IDI1cHg7DQogIGJvcmRlcjogc29saWQgMHB4Ow0KICBib3JkZXItY29sb3I6ICMwMDA7DQogIGJvcmRlci1yYWRpdXM6IDNweDsNCiAgb3V0bGluZTogbm9uZTsNCiAgY29sb3I6ICNmZmY7DQp9DQoNCmlucHV0W3R5cGU9YnV0dG9uXTpmb2N1cyB7IA0KICAgb3V0bGluZTogbm9uZTsNCn0NCg0KaW5wdXRbdHlwZT1idXR0b25dOmhvdmVyIHsNCiAgYmFja2dyb3VuZC1jb2xvcjogIzAwRTZGRjsNCiAgY29sb3I6ICMwMDA7DQp9DQoNCmlucHV0W3R5cGU9YnV0dG9uXTpob3Zlci5kZWxldGUgIHsNCiAgYmFja2dyb3VuZC1jb2xvcjogcmVkOw0KICBjb2xvcjogI2ZmZjsNCn0NCg0KaW5wdXRbdHlwZT10ZXh0XSwgaW5wdXRbdHlwZT1zZWFyY2hdLCBpbnB1dFt0eXBlPXBhc3N3b3JkXSB7DQogIGNvbG9yOiAjZmZmOw0KICB3aWR0aDogLXdlYmtpdC1jYWxjKDEwMCUgLSAwcHgpOw0KICB3aWR0aDogLW1vei1jYWxjKDEwMCUgLSAwcHgpOw0KICB3aWR0aDogY2FsYygxMDAlIC0gMHB4KTsNCiAgb3V0bGluZTogbm9uZTsNCiAgYm9yZGVyOiBzb2xpZCAxcHggdHJhbnNwYXJlbnQ7DQogIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50Ow0KICBib3JkZXItYm90dG9tLWNvbG9yOiAjNTU1Ow0KICBib3JkZXItcmFkaXVzOiAwcHg7DQogIHBhZGRpbmc6IDhweCAxMHB4Ow0KfQ0KDQppbnB1dFt0eXBlPSJjaGVja2JveCJdIHsNCiAgYm9yZGVyOiBzb2xpZCAxcHggIzAwRTZGRjsNCiAgYmFja2dyb3VuZC1jb2xvcjogIzMzMzsNCiAgaGVpZ2h0OiAyNXB4Ow0KICB3aWR0aDogMjVweDsNCiAgY3Vyc29yOiBwb2ludGVyOw0KICAvKg0KICAtd2Via2l0LWFwcGVhcmFuY2U6IGNoZWNrYm94Ow0KICAqLw0KfQ0KDQppbnB1dFt0eXBlPSJjaGVja2JveCJdOmNoZWNrZWQgew0KICBjb2xvcjogI2ZmZjsNCiAgYmFja2dyb3VuZC1jb2xvcjogIzAwRTZGRjsNCiAgLypkaXNwbGF5OiBpbmxpbmUtYmxvY2s7Ki8NCn0NCg0KaW5wdXRbdHlwZT0iY2hlY2tib3giXTpiZWZvcmUgew0KICBwb3NpdGlvbjogaW5pdGlhbDsNCiAgbGVmdDogMHB4Ow0KICBtYXJnaW4tbGVmdDogLTRweDsNCiAgY29udGVudDogIiAiOw0KfQ0KDQppbnB1dFt0eXBlPSJjaGVja2JveCJdOmNoZWNrZWQ6YmVmb3JlIHsNCiAgcG9zaXRpb246IGluaXRpYWw7DQogIGxlZnQ6IDBweDsNCiAgbWFyZ2luLWxlZnQ6IC0zcHg7DQogIGNvbnRlbnQ6ICLinJMiOw0KICBjb2xvcjogIzAwMDsNCn0NCg0KDQppbnB1dFt0eXBlPWJ1dHRvbl0uY2FuY2VsIHsNCiAgDQogIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50Ow0KICBib3JkZXItY29sb3I6IHJlZDsNCn0NCg0KaW5wdXRbdHlwZT1idXR0b25dLnNhdmV7DQogIGJhY2tncm91bmQtY29sb3I6ICMxMTE7DQogIGZsb2F0OiByaWdodDsNCn0NCg0KDQppbnB1dFt0eXBlPWJ1dHRvbl0uYmxhY2ssIGlucHV0W3R5cGU9c3VibWl0XS5ibGFja3sNCiAgYmFja2dyb3VuZC1jb2xvcjogIzAwMDsNCiAgYm9yZGVyLWNvbG9yOiAjMDAwOw0KfQ0KDQppbnB1dFt0eXBlPWJ1dHRvbl0uY2VudGVyew0KICBtYXJnaW4tcmlnaHQ6IGF1dG87DQogIG1hcmdpbi1sZWZ0OiBhdXRvOw0KICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDAwOw0KICBib3JkZXItY29sb3I6ICMwMDA7DQp9DQoNCi5wb2ludGVyIHsNCiAgY3Vyc29yOiBwb2ludGVyOw0KfQ0KDQoucG9pbnRlcjpob3ZlciB7DQogIGNvbG9yOiAjMDBFNkZGOw0KICBjdXJzb3I6IHBvaW50ZXI7DQp9DQoNCi5zb3J0VGhpcyB7DQogIGNvbG9yOiAjMDBFNkZGOw0KfQ0KDQoudzQwcHggew0KICBtYXgtd2lkdGg6IDQwcHg7DQp9DQoNCi53NTBweCB7DQogIG1heC13aWR0aDogNTBweDsNCn0NCg0KLnc4MHB4IHsNCiAgbWF4LXdpZHRoOiA4MHB4Ow0KfQ0KDQoudzE1MHB4IHsNCiAgbWF4LXdpZHRoOiAxNTBweDsNCn0NCg0KLncyMDBweCB7DQogIG1heC13aWR0aDogMjAwcHg7DQogIG1pbi13aWR0aDogMTAwcHg7DQogIHdpZHRoOiAyMDBweDsNCiAgb3ZlcmZsb3cteDogaGlkZGVuOw0KICB3aGl0ZS1zcGFjZTogbm93cmFwOw0KICBvdmVyZmxvdzogaGlkZGVuOw0KICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsNCn0NCg0KLnczMDBweCB7DQogIG1heC13aWR0aDogMzAwcHg7DQp9DQoNCi53MjIwcHggew0KICBtYXgtd2lkdGg6IDIyMHB4Ow0KICBjdXJzb3I6IGFsaWFzOw0KfQ0KDQouZm9vdGVyIHsNCiAgZm9udC1zaXplOiAxMHB4Ow0KfQ0KDQouY2VudGVyIHsNCiAgdGV4dC1hbGlnbjogY2VudGVyOw0KfQ0KDQouc2NyZWVuTG9nSGlkZGVuIHsNCiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMHB4LCAtMTEwcHgpOw0KfQ0KDQouYm9yZGVyU3BhY2Ugew0KICBtYXJnaW4tYm90dG9tOiAzMHB4Ow0KfQ0KDQouYmxvY2sgew0KDQp9DQoNCi5ub25lIHsNCiAgZGlzcGxheTogbm9uZTsNCn0NCg0KDQoubm90VmlzaWJsZSB7DQogIGhlaWdodDogMHB4Ow0KICBkaXNwbGF5OiBub25lOw0KICBvcGFjaXR5OiAwOw0KICBib3JkZXItYm90dG9tOiAjMDAwIHNvbGlkIDBweDsNCiAgDQp9DQoNCi52aXNpYmxlIHsNCiAgb3BhY2l0eTogMTsNCiAgZGlzcGxheTogYmxvY2s7DQogIGJvcmRlci1ib3R0b206ICM0NDQgc29saWQgMXB4OyANCiAgcGFkZGluZzogMTBweDsNCn0NCg0KLmZsb2F0UmlnaHQgew0KICBmbG9hdDogcmlnaHQ7DQp9DQoNCi5mbG9hdExlZnQgew0KICBmbG9hdDogbGVmdDsNCn0NCg0KLm1lbnUtYWN0aXZlIHsNCiAgYmFja2dyb3VuZC1jb2xvcjogIzAwRTZGRjsNCn0NCg0KLm1lbnUtbm90QWN0aXZlIHsNCiAgDQp9DQoNCiNicmFuY2ggew0KICBkaXNwbGF5OiB0YWJsZTsNCiAgbWFyZ2luOiBhdXRvOw0KICBjb2xvcjogcmVkOw0KfQ0KDQojaW50ZXJhY3Rpb24gew0KICBtYXJnaW4tYm90dG9tOiAxMDBweDsNCiAgdGV4dC1hbGlnbjogY2VudGVyOw0KICBib3JkZXItYm90dG9tOiBzb2xpZCAwcHggIzc3NzsNCn0NCg0KDQouaGFsZiB7DQogIGRpc3BsYXk6IGJsb2NrOw0KICB3aWR0aDogNDUlOw0KfQ0KDQoubWVudSB7DQogIGJvcmRlcjogc29saWQgMXB4ICMwMEU2RkY7DQp9DQoNCi5pbmZvTXNnIHsNCiAgY29sb3I6ICNhYWE7DQp9DQoNCi5lcnJvck1zZyB7DQogIGNvbG9yOiByZWQ7DQp9DQoNCi53YXJuaW5nTXNnIHsNCiAgY29sb3I6IHllbGxvdzsNCn0NCg0KLmRlYnVnTXNnIHsNCiAgY29sb3I6IG1hZ2VudGE7DQp9DQoNCi5OZXdzLCAuTW92aWUsIC5TZXJpZXMsIC5TcG9ydHMsIC5LaWRzIHsNCiAgYm9yZGVyLWxlZnQ6IHNvbGlkIDJweA0KfQ0KDQouTmV3cyB7DQogIGJvcmRlci1jb2xvcjogdG9tYXRvDQp9DQoNCi5Nb3ZpZSB7DQogIGJvcmRlci1jb2xvcjogcm95YWxibHVlOw0KfQ0KDQouU2VyaWVzIHsNCiAgYm9yZGVyLWNvbG9yOiBnb2xkOw0KfQ0KDQouU3BvcnRzIHsNCiAgYm9yZGVyLWNvbG9yOiB5ZWxsb3dncmVlbjsNCn0NCg0KLktpZHMgew0KICBib3JkZXItY29sb3I6IG1lZGl1bXB1cnBsZTsNCn0NCg0KLyogTG9hZGluZyAqLw0KI2xvYWRpbmcgew0KICBsZWZ0OiAwcHg7DQogIHRvcDogMHB4Ow0KICB6LWluZGV4OiAxMDAwMDsNCiAgcG9zaXRpb246IGFic29sdXRlOw0KICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsMCwwLCAwLjgpOw0KICBtYXJnaW46IGF1dG87DQogIHdpZHRoOiAxMDAlOw0KICBoZWlnaHQ6IDEwMCU7DQp9DQoNCg0KLmxvYWRlciB7DQogIGJvcmRlcjogNXB4IHNvbGlkIHRyYW5zcGFyZW50Ow0KICBib3JkZXItcmFkaXVzOiA1MCU7DQogIGJvcmRlci10b3A6IDVweCBzb2xpZCAjMDBFNkZGOw0KICBib3JkZXItYm90dG9tOiA1cHggc29saWQgIzAwRTZGRjsNCiAgd2lkdGg6IDUwcHg7DQogIGhlaWdodDogNTBweDsNCiAgLXdlYmtpdC1hbmltYXRpb246IHNwaW4gMS4ycyBsaW5lYXIgaW5maW5pdGU7DQogIGFuaW1hdGlvbjogc3BpbiAxLjJzIGxpbmVhciBpbmZpbml0ZTsNCg0KICBwb3NpdGlvbjogZml4ZWQ7DQogIG1hcmdpbjogYXV0bzsNCg0KICB0b3A6IDA7DQogIHJpZ2h0OiAwOw0KICBib3R0b206IDA7DQogIGxlZnQ6IDA7DQogIA0KfQ0KDQpALXdlYmtpdC1rZXlmcmFtZXMgc3BpbiB7DQogIDAlIHsgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTsgfQ0KICAxMDAlIHsgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpOyB9DQp9DQoNCkBrZXlmcmFtZXMgc3BpbiB7DQogIDAlIHsgdHJhbnNmb3JtOiByb3RhdGUoMGRlZyk7IH0NCiAgMTAwJSB7IHRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7IH0NCn0NCg==" + webUI["html/img/xmltv.png"] = "iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAAAXNSR0IArs4c6QAAAAlwSFlzAAAsSwAALEsBpT2WqQAABCRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IlhNUCBDb3JlIDUuNC4wIj4KICAgPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIgogICAgICAgICAgICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgICAgICAgICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyI+CiAgICAgICAgIDx0aWZmOlJlc29sdXRpb25Vbml0PjI8L3RpZmY6UmVzb2x1dGlvblVuaXQ+CiAgICAgICAgIDx0aWZmOkNvbXByZXNzaW9uPjU8L3RpZmY6Q29tcHJlc3Npb24+CiAgICAgICAgIDx0aWZmOlhSZXNvbHV0aW9uPjI4ODwvdGlmZjpYUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6T3JpZW50YXRpb24+MTwvdGlmZjpPcmllbnRhdGlvbj4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+Mjg4PC90aWZmOllSZXNvbHV0aW9uPgogICAgICAgICA8ZXhpZjpQaXhlbFhEaW1lbnNpb24+NTA8L2V4aWY6UGl4ZWxYRGltZW5zaW9uPgogICAgICAgICA8ZXhpZjpDb2xvclNwYWNlPjE8L2V4aWY6Q29sb3JTcGFjZT4KICAgICAgICAgPGV4aWY6UGl4ZWxZRGltZW5zaW9uPjUwPC9leGlmOlBpeGVsWURpbWVuc2lvbj4KICAgICAgICAgPGRjOnN1YmplY3Q+CiAgICAgICAgICAgIDxyZGY6QmFnLz4KICAgICAgICAgPC9kYzpzdWJqZWN0PgogICAgICAgICA8eG1wOk1vZGlmeURhdGU+MjAxOC0wNy0yOFQyMDowNzozMzwveG1wOk1vZGlmeURhdGU+CiAgICAgICAgIDx4bXA6Q3JlYXRvclRvb2w+UGl4ZWxtYXRvciAzLjM8L3htcDpDcmVhdG9yVG9vbD4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgIDwvcmRmOlJERj4KPC94OnhtcG1ldGE+Co6j9bsAAAGgSURBVGgF7VqxTsNADL0gYGEon8DOwsbAAH8BYmJn6cYIn8DC3h0+oixISFRiYYCJL0AwMMBAeK5w2rpV6uikxHfYknW98+vds18TK21DWGBlWR7CH+BfcEv2AzLP8HP42gLqkyUATuEp2PWEdQjF9ATs1zF/g29Mrxt+vVcUxR3xWxEktzFPJQmivsv8ZSI9DiQyVnxlIonwn6fpiczXpNuVVXH8O+a3Ys3y9NUyuf/NTTbEHZTjUlGSRzSiPhroUIENwB4AS/vS/susDwDhTpYBER9g7wHh5DWyibV9CiitCZbIafDEYUuJHQI3Nr/9ciWsjK6IFSWYhyvClbAyZqOIlYJG84jq7E1Ot97Zm+TinV1TrWwudk9EI3ebGFekzWprzspGEU2ySWCiOrs/s9dr7M/s9fVJJJrNXcsTsfaJc0WsKZINH+/sf1Jqvl1n1f2ZnStRN/pdq646XcSkIh9dkIg4s+IrE3nCpp8RG7f91ns+cCYR/LD4jcAZB42PN+A7/mcQ8ZxJhBYQvMJwBB/BKTFLVoLMC/wCfgyv7BesTKUC2LKM3wAAAABJRU5ErkJggg==" + webUI["html/lang/en.json"] = "ew0KICAibWFpbk1lbnUiOg0KICB7DQogICAgIml0ZW0iOg0KICAgIHsNCiAgICAgICJwbGF5bGlzdCI6ICJQbGF5bGlzdCIsDQogICAgICAicG1zSUQiOiAiUE1TIElEIiwNCiAgICAgICJmaWx0ZXIiOiAiRmlsdGVyIiwNCiAgICAgICJ4bWx0diI6ICJYTUxUViIsDQogICAgICAibWFwcGluZyI6ICJNYXBwaW5nIiwNCiAgICAgICJ1c2VycyI6ICJVc2VycyIsDQogICAgICAic2V0dGluZ3MiOiAiU2V0dGluZ3MiLA0KICAgICAgImxvZyI6ICJMb2ciLA0KICAgICAgImxvZ291dCI6ICJMb2dvdXQiDQogICAgfSwNCiAgICAiaGVhZGxpbmUiOg0KICAgIHsNCiAgICAgICJwbGF5bGlzdCI6ICJMb2NhbCBvciByZW1vdGUgcGxheWxpc3RzIiwNCiAgICAgICJmaWx0ZXIiOiAiRmlsdGVyIHBsYXlsaXN0IiwNCiAgICAgICJ4bWx0diI6ICJMb2NhbCBvciByZW1vdGUgWE1MVFYgZmlsZXMiLA0KICAgICAgIm1hcHBpbmciOiAiTWFwIHBsYXlsaXN0IGNoYW5uZWxzIHRvIEVQRyBjaGFubmVscyIsDQogICAgICAidXNlcnMiOiAiVXNlciBtYW5hZ2VtZW50IiwNCiAgICAgICJzZXR0aW5ncyI6ICJTZXR0aW5ncyIsDQogICAgICAibG9nIjogIkxvZyIsDQogICAgICAibG9nb3V0IjogIkxvZ291dCINCiAgICB9DQogIH0sDQogICJjb25maXJtIjoNCiAgew0KICAgICJyZXN0b3JlIjogIkFsbCBkYXRhIHdpbGwgYmUgcmVwbGFjZWQgd2l0aCB0aG9zZSBmcm9tIHRoZSBiYWNrdXAuIFNob3VsZCB0aGUgZmlsZXMgYmUgcmVzdG9yZWQ/Ig0KICB9LA0KICAiYWxlcnQiOg0KICB7DQogICAgImZpbGVMb2FkaW5nRXJyb3IiOiAiRmlsZSBjb3VsZG4ndCBiZSBsb2FkZWQiLA0KICAgICJpbnZhbGlkQ2hhbm5lbE51bWJlciI6ICJJbnZhbGlkIGNoYW5uZWwgbnVtYmVyIiwNCiAgICAibWlzc2luZ0lucHV0IjogIk1pc3NpbmcgaW5wdXQiDQogIH0sDQogICJidXR0b24iOg0KICB7DQogICAgImJhY2siOiAiQmFjayIsDQogICAgImJhY2t1cCI6ICJCYWNrdXAiLA0KICAgICJidWxrRWRpdCI6ICJCdWxrIEVkaXQiLA0KICAgICJjYW5jZWwiOiAiQ2FuY2VsIiwNCiAgICAiZGVsZXRlIjogIkRlbGV0ZSIsDQogICAgImRvbmUiOiAiRG9uZSIsDQogICAgImxvZ2luIjogIkxvZ2luIiwNCiAgICAibmV3IjogIk5ldyIsDQogICAgIm5leHQiOiAiTmV4dCIsDQogICAgInJlc3RvcmUiOiAiUmVzdG9yZSIsDQogICAgInNhdmUiOiAiU2F2ZSIsDQogICAgInNlYXJjaCI6ICJTZWFyY2giLA0KICAgICJ1cGRhdGUiOiAiVXBkYXRlIiwNCiAgICAiY3JhZXRlQWNjb3VudCI6ICJDcmVhdGUgQWNjb3VudCIsDQogICAgInJlc2V0TG9ncyI6ICJSZXNldCBMb2dzIiwNCiAgICAidXBsb2FkTG9nbyI6ICJVcGxvYWQgTG9nbyINCiAgfSwNCiAgImZpbHRlciI6DQogIHsNCiAgICAidGFibGUiOg0KICAgIHsNCiAgICAgICJuYW1lIjogIkZpbHRlciBOYW1lIiwNCiAgICAgICJ0eXBlIjogIkZpbHRlciBUeXBlIiwNCiAgICAgICJmaWx0ZXIiOiAiRmlsdGVyIg0KICAgIH0sDQogICAgImN1c3RvbSI6ICJDdXN0b20iLA0KICAgICJncm91cCI6ICJNM1UgR3JvdXAiLA0KICAgICJuYW1lIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiRmlsdGVyIE5hbWUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIkZpbHRlciBuYW1lIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAiZGVzY3JpcHRpb24iOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJEZXNjcmlwdGlvbiIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiRGVzY3JpcHRpb24iLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJ0eXBlIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiVHlwZSIsDQogICAgICAiZ3JvdXBUaXRsZSI6ICJHcm91cCBUaXRsZSIsDQogICAgICAiY3VzdG9tRmlsdGVyIjogIkN1c3RvbSBGaWx0ZXIiDQogICAgfSwNCiAgICAiY2FzZVNlbnNpdGl2ZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIkNhc2UgU2Vuc2l0aXZlIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJmaWx0ZXJSdWxlIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiRmlsdGVyIFJ1bGUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIlNwb3J0IHtIRH0gIXtFUyxJVH0iLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJmaWx0ZXJHcm91cCI6DQogICAgew0KICAgICAgInRpdGxlIjogIkdyb3VwIFRpdGxlIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIlNlbGVjdCBhIE0zVSBncm91cC4gKENvdW50ZXIpPGJyPkNoYW5naW5nIHRoZSBncm91cCB0aXRsZSBpbiB0aGUgTTNVIGludmFsaWRhdGVzIHRoZSBmaWx0ZXIuIg0KICAgIH0sDQogICAgImluY2x1ZGUiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJJbmNsdWRlIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJGSEQsVUhEIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJDaGFubmVsIG5hbWUgbXVzdCBpbmNsdWRlLjxicj4oQ29tbWEgc2VwYXJhdGVkKSBDb21tYSBtZWFucyBvciINCiAgICB9LA0KICAgICJleGNsdWRlIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiRXhjbHVkZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiRVMsSVQiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIkNoYW5uZWwgbmFtZSBtdXN0IG5vdCBjb250YWluLjxicj4oQ29tbWEgc2VwYXJhdGVkKSBDb21tYSBtZWFucyBvciINCiAgICB9LA0KICAgICJwcmVzZXJ2ZU1hcHBpbmciOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJQcmVzZXJ2ZSBFeGlzdGluZyBNM1U8YnI+Q2hhbm5lbCBOdW1iZXJzIiwNCiAgICAgICJwYWxjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIlByZXNlcnZlIGV4aXN0aW5nIE0zVSBwbGF5bGlzdCBjaGFubmVsIG51bWJlcnM/Ig0KICAgIH0sDQogICAgInN0YXJ0aW5nQ2hhbm5lbCI6DQogICAgew0KICAgICAgInRpdGxlIjogIlN0YXJ0aW5nIENoYW5uZWwgTnVtYmVyIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJkZWZhdWx0TWlzc2luZ0VQRyI6DQogICAgew0KICAgICAgInRpdGxlIjogIkZpbGwgTWlzc2luZyBFUEcgRGF0YSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJXaGVuIHRoZXJlIGlzIG5vIG1hdGNoaW5nIEVQRyBkYXRhIGZvciBjaGFubmVsLCA8YnI+YXV0b2ZpbGwgd2l0aCB4VGVWZSBkdW1teSBFUEcgZGF0YT8iDQogICAgfQ0KDQogIH0sDQogICJwbGF5bGlzdCI6DQogIHsNCiAgICAidGFibGUiOg0KICAgIHsNCiAgICAgICJwbGF5bGlzdCI6ICJQbGF5bGlzdCIsDQogICAgICAidHVuZXIiOiAiVHVuZXIiLA0KICAgICAgImxhc3RVcGRhdGUiOiAiTGFzdCBVcGRhdGUiLA0KICAgICAgImF2YWlsYWJpbGl0eSI6ICJBdmFpbGFiaWxpdHkiLA0KICAgICAgInR5cGUiOiAiVHlwZSIsDQogICAgICAic3RyZWFtcyI6ICJTdHJlYW1zIiwNCiAgICAgICJncm91cFRpdGxlIjogImdyb3VwLXRpdGxlIiwNCiAgICAgICJ0dmdJRCI6ICJ0dmctaWQiLA0KICAgICAgInVuaXF1ZUlEIjogIlVuaXF1ZSBJRCINCiAgICB9LA0KICAgICJwbGF5bGlzdFR5cGUiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJQbGF5bGlzdCB0eXBlIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJ0eXBlIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiVHlwZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAibmFtZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIk5hbWUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIlBsYXlsaXN0IG5hbWUiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJkZXNjcmlwdGlvbiI6DQogICAgew0KICAgICAgInRpdGxlIjogIkRlc2NyaXB0aW9uIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJEZXNjcmlwdGlvbiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgImZpbGVNM1UiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJNM1UgRmlsZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiRmlsZSBwYXRoIG9yIFVSTCBvZiB0aGUgTTNVIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAiZmlsZUhESFIiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJIREhvbWVSdW4gSVAiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIklQIGFkZHJlc3MgYW5kIHBvcnQgKDE5Mi4xNjguMS4xMDo1MDA0KSIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgInR1bmVyIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiVHVuZXIgLyBTdHJlYW1zIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIk51bWJlciBvZiBwYXJhbGxlbCBjb25uZWN0aW9ucyB0aGF0IGNhbiBiZSBlc3RhYmxpc2hlZCB0byB0aGUgcHJvdmlkZXIuIDxicj5Pbmx5IGF2YWlsYWJsZSB3aXRoIGFjdGl2YXRlZCBidWZmZXIuPGJyPk5ldyBzZXR0aW5ncyB3aWxsIG9ubHkgYmUgYXBwbGllZCBhZnRlciBxdWl0dGluZyBhbGwgc3RyZWFtcy4iDQogICAgfQ0KICB9LA0KICAieG1sdHYiOg0KICB7DQogICAgInRhYmxlIjoNCiAgICB7DQogICAgICAiZ3VpZGUiOiAiR3VpZGUiLA0KICAgICAgImxhc3RVcGRhdGUiOiAiTGFzdCBVcGRhdGUiLA0KICAgICAgImF2YWlsYWJpbGl0eSI6ICJBdmFpbGFiaWxpdHkiLA0KICAgICAgImNoYW5uZWxzIjogIkNoYW5uZWxzIiwNCiAgICAgICJwcm9ncmFtcyI6ICJQcm9ncmFtcyINCiAgICB9LA0KICAgICJuYW1lIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiTmFtZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiR3VpZGUgbmFtZSIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgImRlc2NyaXB0aW9uIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiRGVzY3JpcHRpb24iLA0KICAgICAgInBsYWNlaG9sZGVyIjogIkRlc2NyaXB0aW9uIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAiZmlsZVhNTFRWIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiWE1MVFYgRmlsZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiRmlsZSBwYXRoIG9yIFVSTCBvZiB0aGUgWE1MVFYiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9DQogIH0sDQogICJtYXBwaW5nIjoNCiAgew0KICAgICJ0YWJsZSI6DQogICAgew0KICAgICAgImNoTm8iOiAiQ2guIE5vLiIsDQogICAgICAibG9nbyI6ICJMb2dvIiwNCiAgICAgICJjaGFubmVsTmFtZSI6ICJDaGFubmVsIE5hbWUiLA0KICAgICAgInBsYXlsaXN0IjogIlBsYXlsaXN0IiwNCiAgICAgICJncm91cFRpdGxlIjogIkdyb3VwIFRpdGxlIiwNCiAgICAgICJ4bWx0dkZpbGUiOiAiWE1MVFYgRmlsZSIsDQogICAgICAieG1sdHZJRCI6ICJYTUxUViBJRCIsDQogICAgICAidGltZXNoaWZ0IjogIlRpbWVzaGlmdCINCiAgICB9LA0KICAgICJhY3RpdmUiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJBY3RpdmUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgImNoYW5uZWxOYW1lIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiQ2hhbm5lbCBOYW1lIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJkZXNjcmlwdGlvbiI6DQogICAgew0KICAgICAgInRpdGxlIjogIkNoYW5uZWwgRGVzY3JpcHRpb24iLA0KICAgICAgInBsYWNlaG9sZGVyIjogIlVzZWQgYnkgdGhlIER1bW15IGFzIGFuIFhNTCBkZXNjcmlwdGlvbiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgInVwZGF0ZUNoYW5uZWxOYW1lIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiVXBkYXRlIENoYW5uZWwgTmFtZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAiY2hhbm5lbExvZ28iOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJMb2dvIFVSTCIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAidXBkYXRlQ2hhbm5lbExvZ28iOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJVcGRhdGUgQ2hhbm5lbCBMb2dvIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJlcGdDYXRlZ29yeSI6DQogICAgew0KICAgICAgInRpdGxlIjogIkVQRyBDYXRlZ29yeSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAibTN1R3JvdXBUaXRsZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIkdyb3VwIFRpdGxlICh4dGV2ZS5tM3UpIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJ4bWx0dkZpbGUiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJYTUxUViBGaWxlIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJ4bWx0dkNoYW5uZWwiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJYTUxUViBDaGFubmVsIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJ0aW1lc2hpZnQiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJUaW1lc2hpZnQiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIjAiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9DQogIH0sDQogICJ1c2VycyI6DQogIHsNCiAgICAidGFibGUiOg0KICAgIHsNCiAgICAgICJ1c2VybmFtZSI6ICJVc2VybmFtZSIsDQogICAgICAicGFzc3dvcmQiOiAiUGFzc3dvcmQiLA0KICAgICAgIndlYiI6ICJXRUIiLA0KICAgICAgInBtcyI6ICJQTVMiLA0KICAgICAgIm0zdSI6ICJNM1UiLA0KICAgICAgInhtbCI6ICJYTUwiLA0KICAgICAgImFwaSI6ICJBUEkiDQogICAgfSwNCiAgICAidXNlcm5hbWUiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJVc2VybmFtZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiVXNlcm5hbWUiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJwYXNzd29yZCI6DQogICAgew0KICAgICAgInRpdGxlIjogIlBhc3N3b3JkIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJQYXNzd29yZCIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgImNvbmZpcm0iOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJDb25maXJtIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJQYXNzd29yZCBjb25maXJtIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAid2ViIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiV2ViIEFjY2VzcyIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAicG1zIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiUE1TIEFjY2VzcyIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAibTN1IjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiTTNVIEFjY2VzcyIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAieG1sIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiWE1MIEFjY2VzcyIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAiYXBpIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiQVBJIEFjY2VzcyIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfQ0KICB9LA0KICAic2V0dGluZ3MiOg0KICB7DQogICAgImNhdGVnb3J5IjoNCiAgICB7DQogICAgICAiZ2VuZXJhbCI6ICJHZW5lcmFsIiwNCiAgICAgICJmaWxlcyI6ICJGaWxlcyIsDQogICAgICAic3RyZWFtaW5nIjogIlN0cmVhbWluZyIsDQogICAgICAiYmFja3VwIjogIkJhY2t1cCIsDQogICAgICAiYXV0aGVudGljYXRpb24iOiAiQXV0aGVudGljYXRpb24iDQogICAgfSwNCiAgICAidXBkYXRlIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiU2NoZWR1bGUgZm9yIHVwZGF0aW5nIChQbGF5bGlzdCwgWE1MVFYsIEJhY2t1cCkiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIjAwMDAsMTAwMCwyMDAwIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJUaW1lIGluIDI0IGhvdXIgZm9ybWF0ICgwODAwID0gODowMCBhbSkuIE1vcmUgdGltZXMgY2FuIGJlIGVudGVyZWQgY29tbWEgc2VwYXJhdGVkLiBMZWF2ZSB0aGlzIGZpZWxkIGVtcHR5IGlmIG5vIHVwZGF0ZXMgYXJlIHRvIGJlIGNhcnJpZWQgb3V0LiINCiAgICB9LA0KICAgICJhcGkiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJBUEkgSW50ZXJmYWNlIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJWaWEgQVBJIGludGVyZmFjZSBpdCBpcyBwb3NzaWJsZSB0byBzZW5kIGNvbW1hbmRzIHRvIHhUZVZlLiBBUEkgZG9jdW1lbnRhdGlvbiBpcyA8YSBocmVmPSdodHRwczovL2dpdGh1Yi5jb20veHRldmUtcHJvamVjdC94VGVWZS1Eb2N1bWVudGF0aW9uL2Jsb2IvbWFzdGVyL2VuL2NvbmZpZ3VyYXRpb24ubWQjYXBpJz5oZXJlPC9hPiINCiAgICB9LA0KICAgICJlcGdTb3VyY2UiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJFUEcgU291cmNlIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJQTVM6PGJyPi0gVXNlIEVQRyBkYXRhIGZyb20gUGxleCBvciBFbWJ5IDxicj48YnI+WEVQRzo8YnI+LSBVc2Ugb2Ygb25lIG9yIG1vcmUgWE1MVFYgZmlsZXM8YnI+LSBDaGFubmVsIG1hbmFnZW1lbnQ8YnI+LSBNM1UgLyBYTUxUViBleHBvcnQgKEhUVFAgbGluayBmb3IgSVBUViBhcHBzKSINCiAgICB9LA0KICAgICJ0dW5lciI6DQogICAgew0KICAgICAgInRpdGxlIjogIk51bWJlciBvZiBUdW5lcnMiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIk51bWJlciBvZiBwYXJhbGxlbCBjb25uZWN0aW9ucyB0aGF0IGNhbiBiZSBlc3RhYmxpc2hlZCB0byB0aGUgcHJvdmlkZXIuPGJyPkF2YWlsYWJsZSBmb3I6IFBsZXgsIEVtYnkgKEhESFIpLCBNM1UgKHdpdGggYWN0aXZlIGJ1ZmZlcikuPGJyPkFmdGVyIGEgY2hhbmdlLCB4VGVWZSBtdXN0IGJlIGRlbGV0ZSBpbiB0aGUgUGxleCAvIEVtYnkgRFZSIHNldHRpbmdzIGFuZCBzZXQgdXAgYWdhaW4uIg0KICAgIH0sDQogICAgImZpbGVzVXBkYXRlIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiVXBkYXRlcyBhbGwgZmlsZXMgYXQgc3RhcnR1cCIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiVXBkYXRlcyBhbGwgcGxheWxpc3RzLCB0dW5lciBhbmQgWE1MVFYgZmlsZXMgYXQgc3RhcnR1cC4iDQogICAgfSwNCiAgICAiY2FjaGVJbWFnZXMiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJJbWFnZSBDYWNoaW5nIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJBbGwgaW1hZ2VzIGZyb20gdGhlIFhNTFRWIGZpbGUgYXJlIGNhY2hlZCwgYWxsb3dpbmcgZmFzdGVyIHJlbmRlcmluZyBvZiB0aGUgZ3JpZCBpbiB0aGUgY2xpZW50Ljxicj5Eb3dubG9hZGluZyB0aGUgaW1hZ2VzIG1heSB0YWtlIGEgd2hpbGUgYW5kIHdpbGwgYmUgZG9uZSBpbiB0aGUgYmFja2dyb3VuZC4iDQogICAgfSwNCiAgICAicmVwbGFjZUVtcHR5SW1hZ2VzIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiUmVwbGFjZSBtaXNzaW5nIHByb2dyYW0gaW1hZ2VzIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJJZiB0aGUgcG9zdGVyIGluIHRoZSBYTUxUViBwcm9ncmFtIGlzIG1pc3NpbmcsIHRoZSBjaGFubmVsIGxvZ28gd2lsbCBiZSB1c2VkLiINCiAgICB9LA0KICAgICJ4dGV2ZUF1dG9VcGRhdGUiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJBdXRvbWF0aWMgdXBkYXRlIG9mIHhUZVZlIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJJZiBhIG5ldyB2ZXJzaW9uIG9mIHhUZVZlIGlzIGF2YWlsYWJsZSwgaXQgd2lsbCBiZSBhdXRvbWF0aWNhbGx5IGluc3RhbGxlZC4gVGhlIHVwZGF0ZXMgYXJlIGRvd25sb2FkZWQgZnJvbSBHaXRIdWIuIg0KICAgIH0sDQogICAgInN0cmVhbUJ1ZmZlcmluZyI6DQogICAgew0KICAgICAgInRpdGxlIjogIlN0cmVhbSBCdWZmZXIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIkZ1bmN0aW9ucyBvZiB0aGUgYnVmZmVyOjxicj4tIFRoZSBzdHJlYW0gaXMgcGFzc2VkIGZyb20geFRlVmUsIEZGbXBlZyBvciBWTEMgdG8gUGxleCwgRW1ieSBvciBNM1UgUGxheWVyPGJyPi0gU21hbGwgamVya2luZyBvZiB0aGUgc3RyZWFtcyBjYW4gYmUgY29tcGVuc2F0ZWQ8YnI+LSBITFMgLyBNM1U4IHN1cHBvcnQ8YnI+LSBSVFAgLyBSVFBTIHN1cHBvcnQgKG9ubHkgRkZtcGVnIG9yIFZMQyk8YnI+LSBSZS1zdHJlYW1pbmc8YnI+LSBTZXBhcmF0ZSB0dW5lciBsaW1pdCBmb3IgZWFjaCBwbGF5bGlzdCIsDQogICAgICAiaW5mb19mYWxzZSI6ICJObyBCdWZmZXIgKENsaWVudCBjb25uZWN0cyB0byB0aGUgc3RyZWFtaW5nIHNlcnZlcikiLA0KICAgICAgImluZm9feHRldmUiOiAieFRlVmUgY29ubmVjdHMgdG8gdGhlIHN0cmVhbWluZyBzZXJ2ZXIiLA0KICAgICAgImluZm9fZmZtcGVnIjogIkZGbXBlZyBjb25uZWN0cyB0byB0aGUgc3RyZWFtaW5nIHNlcnZlciIsDQogICAgICAiaW5mb192bGMiOiAiVkxDIGNvbm5lY3RzIHRvIHRoZSBzdHJlYW1pbmcgc2VydmVyIg0KDQogICAgfSwNCiAgICAidWRweHkiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJVRFB4eSBhZGRyZXNzIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJUaGUgYWRkcmVzcyBvZiB5b3VyIFVEUHh5IHNlcnZlci4gSWYgc2V0LCBhbmQgdGhlIGNoYW5uZWwgVVJMcyBpbiB0aGUgbTN1IGlzIG11bHRpY2FzdCwgeFRlVmUgd2lsbCByZXdyaXRlIGl0IHNvIHRoYXQgaXQgaXMgYWNjZXNzZWQgdmlhIHRoZSBVRFB4eSBzZXJ2aWNlLiIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiaG9zdDpwb3J0Ig0KICAgIH0sDQogICAgImZmbXBlZ1BhdGgiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJGRm1wZWcgQmluYXJ5IFBhdGgiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIlBhdGggdG8gRkZtcGVnIGJpbmFyeS4iLA0KICAgICAgInBsYWNlaG9sZGVyIjogIi9wYXRoL3RvL2ZmbXBlZyINCiAgICB9LA0KICAgICJmZm1wZWdPcHRpb25zIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiRkZtcGVnIE9wdGlvbnMiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIkZGbXBlZyBvcHRpb25zLjxicj5Pbmx5IGNoYW5nZSBpZiB5b3Uga25vdyB3aGF0IHlvdSBhcmUgZG9pbmcuPGJyPkxlYXZlIGJsYW5rIHRvIHNldCBkZWZhdWx0IHNldHRpbmdzLiIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiTGVhdmUgYmxhbmsgdG8gc2V0IGRlZmF1bHQgc2V0dGluZ3MiDQogICAgfSwNCiAgICAidmxjUGF0aCI6DQogICAgew0KICAgICAgInRpdGxlIjogIlZMQyAvIENWTEMgQmluYXJ5IFBhdGgiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIlBhdGggdG8gVkxDIC8gQ1ZMQyBiaW5hcnkuIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIvcGF0aC90by9jdmxjIg0KICAgIH0sDQogICAgInZsY09wdGlvbnMiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJWTEMgLyBDVkxDIE9wdGlvbnMiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIlZMQyAvIENWTEMgb3B0aW9ucy48YnI+T25seSBjaGFuZ2UgaWYgeW91IGtub3cgd2hhdCB5b3UgYXJlIGRvaW5nLjxicj5MZWF2ZSBibGFuayB0byBzZXQgZGVmYXVsdCBzZXR0aW5ncy4iLA0KICAgICAgInBsYWNlaG9sZGVyIjogIkxlYXZlIGJsYW5rIHRvIHNldCBkZWZhdWx0IHNldHRpbmdzIg0KICAgIH0sDQogICAgImJ1ZmZlclNpemUiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJCdWZmZXIgU2l6ZSIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiQnVmZmVyIHNpemUgaW4gTUIuPGJyPk0zVTg6IElmIHRoZSBUUyBzZWdtZW50IHNtYWxsZXIgdGhlbiB0aGUgYnVmZmVyIHNpemUsIHRoZSBmaWxlIHNpemUgb2YgdGhlIHNlZ21lbnQgaXMgdXNlZC4iDQogICAgfSwNCiAgICAiYnVmZmVyVGltZW91dCI6DQogICAgew0KICAgICAgInRpdGxlIjogIlRpbWVvdXQgZm9yIG5ldyBjbGllbnQgY29ubmVjdGlvbnMiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIlRoZSB4VGVWZSBidWZmZXIgd2FpdHMgdW50aWwgbmV3IGNsaWVudCBjb25uZWN0aW9ucyBhcmUgZXN0YWJsaXNoZWQuIEhlbHBmdWwgZm9yIGZhc3QgY2hhbm5lbCBzd2l0Y2hpbmcuIFZhbHVlIGluIG1pbGxpc2Vjb25kcy4iLA0KICAgICAgInBsYWNlaG9sZGVyIjogIjEwMCINCiAgICB9LA0KICAgICJ1c2VyQWdlbnQiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJVc2VyIEFnZW50IiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJVc2VyIEFnZW50IGZvciBIVFRQIHJlcXVlc3RzLiBGb3IgZXZlcnkgSFRUUCBjb25uZWN0aW9uLCB0aGlzIHZhbHVlIGlzIHVzZWQgZm9yIHRoZSB1c2VyIGFnZW50LiBTaG91bGQgb25seSBiZSBjaGFuZ2VkIGlmIHhUZVZlIGlzIGJsb2NrZWQuIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJ4VGVWZSINCiAgICB9LA0KICAgICJiYWNrdXBQYXRoIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiTG9jYXRpb24gZm9yIGF1dG9tYXRpYyBiYWNrdXBzIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIvbW50L2RhdGEvYmFja3VwL3h0ZXZlLyIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiQmVmb3JlIGFueSB1cGRhdGUgb2YgdGhlIHByb3ZpZGVyIGRhdGEgYnkgdGhlIHNjaGVkdWxlLCB4VGVWZSBjcmVhdGVzIGEgYmFja3VwLiBUaGUgcGF0aCBmb3IgdGhlIGF1dG9tYXRpYyBiYWNrdXBzIGNhbiBiZSBjaGFuZ2VkLiB4VGVWZSByZXF1aXJlcyB3cml0ZSBwZXJtaXNzaW9uIGZvciB0aGlzIGZvbGRlci4iDQogICAgfSwNCiAgICAidGVtcFBhdGgiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJMb2NhdGlvbiBmb3IgdGhlIHRlbXBvcmFyeSBmaWxlcyIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiL3RtcC94dGV2ZS8iLA0KICAgICAgImRlc2NyaXB0aW9uIjogIkxvY2F0aW9uIGZvciB0aGUgYnVmZmVyIGZpbGVzLiINCiAgICB9LA0KICAgICJiYWNrdXBLZWVwIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiTnVtYmVyIG9mIGJhY2t1cHMgdG8ga2VlcCIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiTnVtYmVyIG9mIGJhY2t1cHMgdG8ga2VlcC4gT2xkZXIgYmFja3VwcyBhcmUgYXV0b21hdGljYWxseSBkZWxldGVkLiINCiAgICB9LA0KICAgICJhdXRoZW50aWNhdGlvbldFQiI6DQogICAgew0KICAgICAgInRpdGxlIjogIldFQiBBdXRoZW50aWNhdGlvbiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiQWNjZXNzIHRvIHRoZSB3ZWIgaW50ZXJmYWNlIG9ubHkgcG9zc2libGUgd2l0aCBjcmVkZW50aWFscy4iDQogICAgfSwNCiAgICAiYXV0aGVudGljYXRpb25QTVMiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJQTVMgQXV0aGVudGljYXRpb24iLA0KICAgICAgImRlc2NyaXB0aW9uIjogIlBsZXggcmVxdWVzdHMgYXJlIG9ubHkgcG9zc2libGUgd2l0aCBhdXRoZW50aWNhdGlvbi4gPGJyPjxiPldhcm5pbmchISE8L2I+IEFmdGVyIGFjdGl2YXRpbmcgdGhpcyBmdW5jdGlvbiB4VGVWZSBtdXN0IGJlIGRlbGV0ZSBpbiB0aGUgUE1TIERWUiBzZXR0aW5ncyBhbmQgc2V0IHVwIGFnYWluLiINCiAgICB9LA0KICAgICJhdXRoZW50aWNhdGlvbk0zVSI6DQogICAgew0KICAgICAgInRpdGxlIjogIk0zVSBBdXRoZW50aWNhdGlvbiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiRG93bmxvYWRpbmcgdGhlIHh0ZXZlLm0zdSBmaWxlIHZpYSBhbiBIVFRQIHJlcXVlc3QgaXMgb25seSBwb3NzaWJsZSB3aXRoIGF1dGhlbnRpY2F0aW9uLiINCiAgICB9LA0KICAgICJhdXRoZW50aWNhdGlvblhNTCI6DQogICAgew0KICAgICAgInRpdGxlIjogIlhNTCBBdXRoZW50aWNhdGlvbiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiRG93bmxvYWRpbmcgdGhlIHh0ZXZlLnhtbCBmaWxlIHZpYSBhbiBIVFRQIHJlcXVlc3QgaXMgb25seSBwb3NzaWJsZSB3aXRoIGF1dGhlbnRpY2F0aW9uIg0KICAgIH0sDQogICAgImF1dGhlbnRpY2F0aW9uQVBJIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiQVBJIEF1dGhlbnRpY2F0aW9uIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJBY2Nlc3MgdG8gdGhlIEFQSSBpbnRlcmZhY2UgaXMgb25seSBwb3NzaWJsZSB3aXRoIGF1dGhlbnRpY2F0aW9uLiINCiAgICB9DQogIH0sDQogICJ3aXphcmQiOg0KICB7DQogICAgImVwZ1NvdXJjZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIkVQRyBTb3VyY2UiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIlBNUzo8YnI+LSBVc2UgRVBHIGRhdGEgZnJvbSBQbGV4IG9yIEVtYnkgPGJyPjxicj5YRVBHOjxicj4tIFVzZSBvZiBvbmUgb3IgbW9yZSBYTUxUViBmaWxlczxicj4tIENoYW5uZWwgbWFuYWdlbWVudDxicj4tIE0zVSAvIFhNTFRWIGV4cG9ydCAoSFRUUCBsaW5rIGZvciBJUFRWIGFwcHMpIg0KICAgIH0sDQogICAgInR1bmVyIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiTnVtYmVyIG9mIHR1bmVycyIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiTnVtYmVyIG9mIHBhcmFsbGVsIGNvbm5lY3Rpb25zIHRoYXQgY2FuIGJlIGVzdGFibGlzaGVkIHRvIHRoZSBwcm92aWRlci48YnI+QXZhaWxhYmxlIGZvcjogUGxleCwgRW1ieSAoSERIUiksIE0zVSAod2l0aCBhY3RpdmUgYnVmZmVyKS48YnI+QWZ0ZXIgYSBjaGFuZ2UsIHhUZVZlIG11c3QgYmUgZGVsZXRlIGluIHRoZSBQbGV4IC8gRW1ieSBEVlIgc2V0dGluZ3MgYW5kIHNldCB1cCBhZ2Fpbi4iDQogICAgfSwNCiAgICAibTN1IjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiTTNVIFBsYXlsaXN0IiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJGaWxlIHBhdGggb3IgVVJMIG9mIHRoZSBNM1UiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIkxvY2FsIG9yIHJlbW90ZSBwbGF5bGlzdHMiDQogICAgfSwNCiAgICAieG1sdHYiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJYTUxUViBGaWxlIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJGaWxlIHBhdGggb3IgVVJMIG9mIHRoZSBYTUxUViIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiTG9jYWwgb3IgcmVtb3RlIFhNTFRWIGZpbGUiDQogICAgfQ0KICB9LA0KICAibG9naW4iOg0KICB7DQogICAgImZhaWxlZCI6ICJVc2VyIGF1dGhlbnRpY2F0aW9uIGZhaWxlZCIsDQogICAgImhlYWRsaW5lIjogIkxvZ2luIiwNCiAgICAidXNlcm5hbWUiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJVc2VybmFtZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiVXNlcm5hbWUiDQogICAgfSwNCiAgICAicGFzc3dvcmQiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJQYXNzd29yZCIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiUGFzc3dvcmQiDQogICAgfQ0KICB9LA0KICAiYWNjb3VudCI6DQogIHsNCiAgICAiZmFpbGVkIjogIlBhc3N3b3JkIGRvZXMgbm90IG1hdGNoIiwNCiAgICAiaGVhZGxpbmUiOiAiQ3JlYXRlIHVzZXIgYWNjb3VudCIsDQogICAgInVzZXJuYW1lIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiVXNlcm5hbWUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIlVzZXJuYW1lIg0KICAgIH0sDQogICAgInBhc3N3b3JkIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiUGFzc3dvcmQiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIlBhc3N3b3JkIg0KICAgIH0sDQogICAgImNvbmZpcm0iOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJDb25maXJtIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJDb25maXJtIg0KICAgIH0NCiAgfQ0KfQ==" + webUI["html/img/x_ transparent.png"] = "iVBORw0KGgoAAAANSUhEUgAAAQAAAAEACAYAAABccqhmAAAAAXNSR0IArs4c6QAAAAlwSFlzAAAWJQAAFiUBSVIk8AAAA6ppVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IlhNUCBDb3JlIDUuNC4wIj4KICAgPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIgogICAgICAgICAgICB4bWxuczp0aWZmPSJodHRwOi8vbnMuYWRvYmUuY29tL3RpZmYvMS4wLyIKICAgICAgICAgICAgeG1sbnM6ZXhpZj0iaHR0cDovL25zLmFkb2JlLmNvbS9leGlmLzEuMC8iPgogICAgICAgICA8eG1wOk1vZGlmeURhdGU+MjAxOC0xMS0xNVQxNzoxMTo3NjwveG1wOk1vZGlmeURhdGU+CiAgICAgICAgIDx4bXA6Q3JlYXRvclRvb2w+UGl4ZWxtYXRvciAzLjM8L3htcDpDcmVhdG9yVG9vbD4KICAgICAgICAgPHRpZmY6T3JpZW50YXRpb24+MTwvdGlmZjpPcmllbnRhdGlvbj4KICAgICAgICAgPHRpZmY6Q29tcHJlc3Npb24+NTwvdGlmZjpDb21wcmVzc2lvbj4KICAgICAgICAgPHRpZmY6UmVzb2x1dGlvblVuaXQ+MjwvdGlmZjpSZXNvbHV0aW9uVW5pdD4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+MTQ0PC90aWZmOllSZXNvbHV0aW9uPgogICAgICAgICA8dGlmZjpYUmVzb2x1dGlvbj4xNDQ8L3RpZmY6WFJlc29sdXRpb24+CiAgICAgICAgIDxleGlmOlBpeGVsWERpbWVuc2lvbj4yNTY8L2V4aWY6UGl4ZWxYRGltZW5zaW9uPgogICAgICAgICA8ZXhpZjpDb2xvclNwYWNlPjE8L2V4aWY6Q29sb3JTcGFjZT4KICAgICAgICAgPGV4aWY6UGl4ZWxZRGltZW5zaW9uPjI1NjwvZXhpZjpQaXhlbFlEaW1lbnNpb24+CiAgICAgIDwvcmRmOkRlc2NyaXB0aW9uPgogICA8L3JkZjpSREY+CjwveDp4bXBtZXRhPgoeXQb1AAAaJElEQVR4Ae2dCZhcVZXHz+1KSFiGkISkqyIoOgI68EkgOBNkEcQRlIFRZDGABAQEhInGbxw+RUZRNhWRLawDYR0GHAaHUVkGvwGURUcgwIiAOGxjV3UHAslHQrbuM/9TlQ6d7qruWt527/u/7+uuqvvucu7vvnveuffde54IDxIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARLwiIDzQtayHi0q23shaydCOnlISu7nnWThRdrFOkPWyCleyNqJkF1yjhTd8k6yiDvtuLgLiCR/lVnIZ14keWU7k2Xyuu4oU92r2RazQ+nWypXI4W86zCXbyZ28KBvJ97MtpEhX1gWsyleS08TJU17I2omQKpvLarmqkywyn7ZHPw9rLvTOvwbX6xEyxS3Nenv4oQCcWwmQc/D3dtaBdiyfyv5S1mM7zieLGSzWEsS6KIuiRSzTGTD9H404z1iy80MBWNVL7hn8nx8LhaxlqnKBvKbvyppYHctTM/0nd5xPljNwcrcUs2/6DyL0RwGYxDOcjR3vGBQ+4M8tMElmdQ3n6NGjYPofGE6F6tTESRmm/1xxTuuczWSQH08BhqJbqlNkuTyJoK2GBgf53S6mkrvB+7qZ6b9Gfod6hHv3dzKAGbX9pNvd51N7+WUBGNlJbgm07FH4G/AJdFuyqlwotXFzW8kzk2itXAFZwu38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" + webUI["html/js/base_ts.js"] = "dmFyIFNFUlZFUiA9IG5ldyBPYmplY3QoKTsNCnZhciBCVUxLX0VESVQgPSBmYWxzZTsNCnZhciBDT0xVTU5fVE9fU09SVDsNCnZhciBTRUFSQ0hfTUFQUElORyA9IG5ldyBPYmplY3QoKTsNCnZhciBVTkRPID0gbmV3IE9iamVjdCgpOw0KdmFyIFNFUlZFUl9DT05ORUNUSU9OID0gZmFsc2U7DQp2YXIgV1NfQVZBSUxBQkxFID0gZmFsc2U7DQovLyBNZW7DvA0KdmFyIG1lbnVJdGVtcyA9IG5ldyBBcnJheSgpOw0KbWVudUl0ZW1zLnB1c2gobmV3IE1haW5NZW51SXRlbSgicGxheWxpc3QiLCAie3subWFpbk1lbnUuaXRlbS5wbGF5bGlzdH19IiwgIm0zdS5wbmciLCAie3subWFpbk1lbnUuaGVhZGxpbmUucGxheWxpc3R9fSIpKTsNCi8vbWVudUl0ZW1zLnB1c2gobmV3IE1haW5NZW51SXRlbSgicG1zSUQiLCAie3subWFpbk1lbnUuaXRlbS5wbXNJRH19IiwgIm51bWJlci5wbmciLCAie3subWFpbk1lbnUuaGVhZGxpbmUucG1zSUR9fSIpKQ0KbWVudUl0ZW1zLnB1c2gobmV3IE1haW5NZW51SXRlbSgiZmlsdGVyIiwgInt7Lm1haW5NZW51Lml0ZW0uZmlsdGVyfX0iLCAiZmlsdGVyLnBuZyIsICJ7ey5tYWluTWVudS5oZWFkbGluZS5maWx0ZXJ9fSIpKTsNCm1lbnVJdGVtcy5wdXNoKG5ldyBNYWluTWVudUl0ZW0oInhtbHR2IiwgInt7Lm1haW5NZW51Lml0ZW0ueG1sdHZ9fSIsICJ4bWx0di5wbmciLCAie3subWFpbk1lbnUuaGVhZGxpbmUueG1sdHZ9fSIpKTsNCm1lbnVJdGVtcy5wdXNoKG5ldyBNYWluTWVudUl0ZW0oIm1hcHBpbmciLCAie3subWFpbk1lbnUuaXRlbS5tYXBwaW5nfX0iLCAibWFwcGluZy5wbmciLCAie3subWFpbk1lbnUuaGVhZGxpbmUubWFwcGluZ319IikpOw0KbWVudUl0ZW1zLnB1c2gobmV3IE1haW5NZW51SXRlbSgidXNlcnMiLCAie3subWFpbk1lbnUuaXRlbS51c2Vyc319IiwgInVzZXJzLnBuZyIsICJ7ey5tYWluTWVudS5oZWFkbGluZS51c2Vyc319IikpOw0KbWVudUl0ZW1zLnB1c2gobmV3IE1haW5NZW51SXRlbSgic2V0dGluZ3MiLCAie3subWFpbk1lbnUuaXRlbS5zZXR0aW5nc319IiwgInNldHRpbmdzLnBuZyIsICJ7ey5tYWluTWVudS5oZWFkbGluZS5zZXR0aW5nc319IikpOw0KbWVudUl0ZW1zLnB1c2gobmV3IE1haW5NZW51SXRlbSgibG9nIiwgInt7Lm1haW5NZW51Lml0ZW0ubG9nfX0iLCAibG9nLnBuZyIsICJ7ey5tYWluTWVudS5oZWFkbGluZS5sb2d9fSIpKTsNCm1lbnVJdGVtcy5wdXNoKG5ldyBNYWluTWVudUl0ZW0oImxvZ291dCIsICJ7ey5tYWluTWVudS5pdGVtLmxvZ291dH19IiwgImxvZ291dC5wbmciLCAie3subWFpbk1lbnUuaGVhZGxpbmUubG9nb3V0fX0iKSk7DQovLyBLYXRlZ29yaWVuIGbDvHIgZGllIEVpbnN0ZWxsdW5nZW4NCnZhciBzZXR0aW5nc0NhdGVnb3J5ID0gbmV3IEFycmF5KCk7DQpzZXR0aW5nc0NhdGVnb3J5LnB1c2gobmV3IFNldHRpbmdzQ2F0ZWdvcnlJdGVtKCJ7ey5zZXR0aW5ncy5jYXRlZ29yeS5nZW5lcmFsfX0iLCAieHRldmVBdXRvVXBkYXRlLHR1bmVyLGVwZ1NvdXJjZSxhcGkiKSk7DQpzZXR0aW5nc0NhdGVnb3J5LnB1c2gobmV3IFNldHRpbmdzQ2F0ZWdvcnlJdGVtKCJ7ey5zZXR0aW5ncy5jYXRlZ29yeS5maWxlc319IiwgInVwZGF0ZSxmaWxlcy51cGRhdGUsdGVtcC5wYXRoLGNhY2hlLmltYWdlcyx4ZXBnLnJlcGxhY2UubWlzc2luZy5pbWFnZXMiKSk7DQpzZXR0aW5nc0NhdGVnb3J5LnB1c2gobmV3IFNldHRpbmdzQ2F0ZWdvcnlJdGVtKCJ7ey5zZXR0aW5ncy5jYXRlZ29yeS5zdHJlYW1pbmd9fSIsICJidWZmZXIsdWRweHksYnVmZmVyLnNpemUua2IsYnVmZmVyLnRpbWVvdXQsdXNlci5hZ2VudCxmZm1wZWcucGF0aCxmZm1wZWcub3B0aW9ucyx2bGMucGF0aCx2bGMub3B0aW9ucyIpKTsNCnNldHRpbmdzQ2F0ZWdvcnkucHVzaChuZXcgU2V0dGluZ3NDYXRlZ29yeUl0ZW0oInt7LnNldHRpbmdzLmNhdGVnb3J5LmJhY2t1cH19IiwgImJhY2t1cC5wYXRoLGJhY2t1cC5rZWVwIikpOw0Kc2V0dGluZ3NDYXRlZ29yeS5wdXNoKG5ldyBTZXR0aW5nc0NhdGVnb3J5SXRlbSgie3suc2V0dGluZ3MuY2F0ZWdvcnkuYXV0aGVudGljYXRpb259fSIsICJhdXRoZW50aWNhdGlvbi53ZWIsYXV0aGVudGljYXRpb24ucG1zLGF1dGhlbnRpY2F0aW9uLm0zdSxhdXRoZW50aWNhdGlvbi54bWwsYXV0aGVudGljYXRpb24uYXBpIikpOw0KZnVuY3Rpb24gc2hvd1BvcFVwRWxlbWVudChlbG0pIHsNCiAgICB2YXIgYWxsRWxlbWVudHMgPSBuZXcgQXJyYXkoInBvcHVwLWN1c3RvbSIpOw0KICAgIGZvciAodmFyIGkgPSAwOyBpIDwgYWxsRWxlbWVudHMubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgc2hvd0VsZW1lbnQoYWxsRWxlbWVudHNbaV0sIGZhbHNlKTsNCiAgICB9DQogICAgc2hvd0VsZW1lbnQoZWxtLCB0cnVlKTsNCiAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsNCiAgICAgICAgc2hvd0VsZW1lbnQoInBvcHVwIiwgdHJ1ZSk7DQogICAgfSwgMTApOw0KICAgIHJldHVybjsNCn0NCmZ1bmN0aW9uIHNob3dFbGVtZW50KGVsbUlELCB0eXBlKSB7DQogICAgdmFyIGNzc0NsYXNzOw0KICAgIHN3aXRjaCAodHlwZSkgew0KICAgICAgICBjYXNlIHRydWU6DQogICAgICAgICAgICBjc3NDbGFzcyA9ICJibG9jayI7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSBmYWxzZToNCiAgICAgICAgICAgIGNzc0NsYXNzID0gIm5vbmUiOw0KICAgICAgICAgICAgYnJlYWs7DQogICAgfQ0KICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGVsbUlEKS5jbGFzc05hbWUgPSBjc3NDbGFzczsNCn0NCmZ1bmN0aW9uIGNoYW5nZUJ1dHRvbkFjdGlvbihlbGVtZW50LCBidXR0b25JRCwgYXR0cmlidXRlKSB7DQogICAgdmFyIHZhbHVlID0gZWxlbWVudC5vcHRpb25zW2VsZW1lbnQuc2VsZWN0ZWRJbmRleF0udmFsdWU7DQogICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoYnV0dG9uSUQpLnNldEF0dHJpYnV0ZShhdHRyaWJ1dGUsIHZhbHVlKTsNCn0NCmZ1bmN0aW9uIGdldExvY2FsRGF0YShkYXRhVHlwZSwgaWQpIHsNCiAgICBsZXQgZGF0YSA9IHt9Ow0KICAgIHN3aXRjaCAoZGF0YVR5cGUpIHsNCiAgICAgICAgY2FzZSAibTN1IjoNCiAgICAgICAgICAgIGRhdGEgPSBTRVJWRVJbInNldHRpbmdzIl1bImZpbGVzIl1bZGF0YVR5cGVdW2lkXTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJoZGhyIjoNCiAgICAgICAgICAgIGRhdGEgPSBTRVJWRVJbInNldHRpbmdzIl1bImZpbGVzIl1bZGF0YVR5cGVdW2lkXTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJmaWx0ZXIiOg0KICAgICAgICBjYXNlICJjdXN0b20tZmlsdGVyIjoNCiAgICAgICAgY2FzZSAiZ3JvdXAtdGl0bGUiOg0KICAgICAgICAgICAgaWYgKGlkID09IC0xKSB7DQogICAgICAgICAgICAgICAgZGF0YVsiYWN0aXZlIl0gPSB0cnVlOw0KICAgICAgICAgICAgICAgIGRhdGFbImNhc2VTZW5zaXRpdmUiXSA9IGZhbHNlOw0KICAgICAgICAgICAgICAgIGRhdGFbImRlc2NyaXB0aW9uIl0gPSAiIjsNCiAgICAgICAgICAgICAgICBkYXRhWyJleGNsdWRlIl0gPSAiIjsNCiAgICAgICAgICAgICAgICBkYXRhWyJmaWx0ZXIiXSA9ICIiOw0KICAgICAgICAgICAgICAgIGRhdGFbImluY2x1ZGUiXSA9ICIiOw0KICAgICAgICAgICAgICAgIGRhdGFbIm5hbWUiXSA9ICIiOw0KICAgICAgICAgICAgICAgIGRhdGFbInR5cGUiXSA9ICJncm91cC10aXRsZSI7DQogICAgICAgICAgICAgICAgZGF0YVsicHJlc2VydmVNYXBwaW5nIl0gPSB0cnVlOw0KICAgICAgICAgICAgICAgIGRhdGFbInN0YXJ0aW5nQ2hhbm5lbCJdID0gU0VSVkVSWyJzZXR0aW5ncyJdWyJtYXBwaW5nLmZpcnN0LmNoYW5uZWwiXTsNCiAgICAgICAgICAgICAgICBkYXRhWyJkZWZhdWx0TWlzc2luZ0VQRyJdID0gIi0iOw0KICAgICAgICAgICAgICAgIFNFUlZFUlsic2V0dGluZ3MiXVsiZmlsdGVyIl1baWRdID0gZGF0YTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGRhdGEgPSBTRVJWRVJbInNldHRpbmdzIl1bImZpbHRlciJdW2lkXTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJ4bWx0diI6DQogICAgICAgICAgICBkYXRhID0gU0VSVkVSWyJzZXR0aW5ncyJdWyJmaWxlcyJdW2RhdGFUeXBlXVtpZF07DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSAidXNlcnMiOg0KICAgICAgICAgICAgZGF0YSA9IFNFUlZFUlsidXNlcnMiXVtpZF1bImRhdGEiXTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJtYXBwaW5nIjoNCiAgICAgICAgICAgIGRhdGEgPSBTRVJWRVJbInhlcGciXVsiZXBnTWFwcGluZyJdW2lkXTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJtM3VHcm91cHMiOg0KICAgICAgICAgICAgZGF0YSA9IFNFUlZFUlsiZGF0YSJdWyJwbGF5bGlzdCJdWyJtM3UiXVsiZ3JvdXBzIl07DQogICAgICAgICAgICBicmVhazsNCiAgICB9DQogICAgcmV0dXJuIGRhdGE7DQp9DQpmdW5jdGlvbiBnZXRPYmpLZXlzKG9iaikgew0KICAgIHZhciBrZXlzID0gbmV3IEFycmF5KCk7DQogICAgZm9yICh2YXIgaSBpbiBvYmopIHsNCiAgICAgICAgaWYgKG9iai5oYXNPd25Qcm9wZXJ0eShpKSkgew0KICAgICAgICAgICAga2V5cy5wdXNoKGkpOw0KICAgICAgICB9DQogICAgfQ0KICAgIHJldHVybiBrZXlzOw0KfQ0KZnVuY3Rpb24gZ2V0QWxsU2VsZWN0ZWRDaGFubmVscygpIHsNCiAgICB2YXIgY2hhbm5lbHMgPSBuZXcgQXJyYXkoKTsNCiAgICBpZiAoQlVMS19FRElUID09IGZhbHNlKSB7DQogICAgICAgIHJldHVybiBjaGFubmVsczsNCiAgICB9DQogICAgdmFyIHRycyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb250ZW50X3RhYmxlIikuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlRSIik7DQogICAgZm9yICh2YXIgaSA9IDE7IGkgPCB0cnMubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgaWYgKHRyc1tpXS5zdHlsZS5kaXNwbGF5ICE9ICJub25lIikgew0KICAgICAgICAgICAgaWYgKHRyc1tpXS5maXJzdENoaWxkLmZpcnN0Q2hpbGQuY2hlY2tlZCA9PSB0cnVlKSB7DQogICAgICAgICAgICAgICAgY2hhbm5lbHMucHVzaCh0cnNbaV0uaWQpOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQogICAgfQ0KICAgIHJldHVybiBjaGFubmVsczsNCn0NCmZ1bmN0aW9uIHNlbGVjdEFsbENoYW5uZWxzKCkgew0KICAgIHZhciBidWxrID0gZmFsc2U7DQogICAgdmFyIHRycyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb250ZW50X3RhYmxlIikuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlRSIik7DQogICAgaWYgKHRyc1swXS5maXJzdENoaWxkLmZpcnN0Q2hpbGQuY2hlY2tlZCA9PSB0cnVlKSB7DQogICAgICAgIGJ1bGsgPSB0cnVlOw0KICAgIH0NCiAgICBmb3IgKHZhciBpID0gMTsgaSA8IHRycy5sZW5ndGg7IGkrKykgew0KICAgICAgICBpZiAodHJzW2ldLnN0eWxlLmRpc3BsYXkgIT0gIm5vbmUiKSB7DQogICAgICAgICAgICBzd2l0Y2ggKGJ1bGspIHsNCiAgICAgICAgICAgICAgICBjYXNlIHRydWU6DQogICAgICAgICAgICAgICAgICAgIHRyc1tpXS5maXJzdENoaWxkLmZpcnN0Q2hpbGQuY2hlY2tlZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgZmFsc2U6DQogICAgICAgICAgICAgICAgICAgIHRyc1tpXS5maXJzdENoaWxkLmZpcnN0Q2hpbGQuY2hlY2tlZCA9IGZhbHNlOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KICAgIH0NCiAgICByZXR1cm47DQp9DQpmdW5jdGlvbiBidWxrRWRpdCgpIHsNCiAgICBCVUxLX0VESVQgPSAhQlVMS19FRElUOw0KICAgIHZhciBjbGFzc05hbWU7DQogICAgdmFyIHJvd3MgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCJidWxrIik7DQogICAgc3dpdGNoIChCVUxLX0VESVQpIHsNCiAgICAgICAgY2FzZSB0cnVlOg0KICAgICAgICAgICAgY2xhc3NOYW1lID0gImJ1bGsgc2hvd0J1bGsiOw0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGNhc2UgZmFsc2U6DQogICAgICAgICAgICBjbGFzc05hbWUgPSAiYnVsayBoaWRlQnVsayI7DQogICAgICAgICAgICBicmVhazsNCiAgICB9DQogICAgZm9yICh2YXIgaSA9IDA7IGkgPCByb3dzLmxlbmd0aDsgaSsrKSB7DQogICAgICAgIHJvd3NbaV0uY2xhc3NOYW1lID0gY2xhc3NOYW1lOw0KICAgICAgICByb3dzW2ldLmNoZWNrZWQgPSBmYWxzZTsNCiAgICB9DQogICAgcmV0dXJuOw0KfQ0KZnVuY3Rpb24gc29ydFRhYmxlKGNvbHVtbikgew0KICAgIC8vY29uc29sZS5sb2coY29sdW1tKTsNCiAgICBpZiAoY29sdW1uID09IENPTFVNTl9UT19TT1JUKSB7DQogICAgICAgIHJldHVybjsNCiAgICB9DQogICAgdmFyIHRhYmxlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnRlbnRfdGFibGUiKTsNCiAgICB2YXIgdGFibGVIZWFkID0gdGFibGUuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlRSIilbMF07DQogICAgdmFyIHRhYmxlSXRlbXMgPSB0YWJsZUhlYWQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlREIik7DQogICAgdmFyIHNvcnRPYmogPSBuZXcgT2JqZWN0KCk7DQogICAgdmFyIHgsIHhWYWx1ZTsNCiAgICB2YXIgdGFibGVIZWFkZXI7DQogICAgdmFyIHNvcnRCeVN0cmluZyA9IGZhbHNlOw0KICAgIGlmIChjb2x1bW4gPiAwICYmIENPTFVNTl9UT19TT1JUID4gMCkgew0KICAgICAgICB0YWJsZUl0ZW1zW0NPTFVNTl9UT19TT1JUXS5jbGFzc05hbWUgPSAicG9pbnRlciI7DQogICAgICAgIHRhYmxlSXRlbXNbY29sdW1uXS5jbGFzc05hbWUgPSAic29ydFRoaXMiOw0KICAgIH0NCiAgICBDT0xVTU5fVE9fU09SVCA9IGNvbHVtbjsNCiAgICB2YXIgcm93cyA9IHRhYmxlLnJvd3M7DQogICAgaWYgKHJvd3NbMV0gIT0gdW5kZWZpbmVkKSB7DQogICAgICAgIHRhYmxlSGVhZGVyID0gcm93c1swXTsNCiAgICAgICAgeCA9IHJvd3NbMV0uZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlREIilbY29sdW1uXTsNCiAgICAgICAgZm9yIChpID0gMTsgaSA8IHJvd3MubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgICAgIHggPSByb3dzW2ldLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJURCIpW2NvbHVtbl07DQogICAgICAgICAgICBzd2l0Y2ggKHguY2hpbGROb2Rlc1swXS50YWdOYW1lLnRvTG93ZXJDYXNlKCkpIHsNCiAgICAgICAgICAgICAgICBjYXNlICJpbnB1dCI6DQogICAgICAgICAgICAgICAgICAgIHhWYWx1ZSA9IHguZ2V0RWxlbWVudHNCeVRhZ05hbWUoIklOUFVUIilbMF0udmFsdWUudG9Mb3dlckNhc2UoKTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAicCI6DQogICAgICAgICAgICAgICAgICAgIHhWYWx1ZSA9IHguZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlAiKVswXS5pbm5lclRleHQudG9Mb3dlckNhc2UoKTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgZGVmYXVsdDogY29uc29sZS5sb2coeC5jaGlsZE5vZGVzWzBdLnRhZ05hbWUpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgaWYgKHhWYWx1ZSA9PSAiIiB8fCB4VmFsdWUgPT0gTmFOKSB7DQogICAgICAgICAgICAgICAgeFZhbHVlID0gaTsNCiAgICAgICAgICAgICAgICBzb3J0T2JqW2ldID0gcm93c1tpXTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgICAgIHN3aXRjaCAoaXNOYU4oeFZhbHVlKSkgew0KICAgICAgICAgICAgICAgICAgICBjYXNlIGZhbHNlOg0KICAgICAgICAgICAgICAgICAgICAgICAgeFZhbHVlID0gcGFyc2VGbG9hdCh4VmFsdWUpOw0KICAgICAgICAgICAgICAgICAgICAgICAgc29ydE9ialt4VmFsdWVdID0gcm93c1tpXTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgICAgICBjYXNlIHRydWU6DQogICAgICAgICAgICAgICAgICAgICAgICBzb3J0QnlTdHJpbmcgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgc29ydE9ialt4VmFsdWUudG9Mb3dlckNhc2UoKSArIGldID0gcm93c1tpXTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KICAgICAgICB3aGlsZSAodGFibGUuZmlyc3RDaGlsZCkgew0KICAgICAgICAgICAgdGFibGUucmVtb3ZlQ2hpbGQodGFibGUuZmlyc3RDaGlsZCk7DQogICAgICAgIH0NCiAgICAgICAgdmFyIHNvcnRWYWx1ZXMgPSBnZXRPYmpLZXlzKHNvcnRPYmopOw0KICAgICAgICBpZiAoc29ydEJ5U3RyaW5nID09IHRydWUpIHsNCiAgICAgICAgICAgIHNvcnRWYWx1ZXMuc29ydCgpOw0KICAgICAgICAgICAgY29uc29sZS5sb2coc29ydFZhbHVlcyk7DQogICAgICAgIH0NCiAgICAgICAgZWxzZSB7DQogICAgICAgICAgICBmdW5jdGlvbiBzb3J0RmxvYXQoYSwgYikgew0KICAgICAgICAgICAgICAgIHJldHVybiBhIC0gYjsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIHNvcnRWYWx1ZXMuc29ydChzb3J0RmxvYXQpOw0KICAgICAgICB9DQogICAgICAgIHRhYmxlLmFwcGVuZENoaWxkKHRhYmxlSGVhZGVyKTsNCiAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBzb3J0VmFsdWVzLmxlbmd0aDsgaSsrKSB7DQogICAgICAgICAgICB0YWJsZS5hcHBlbmRDaGlsZChzb3J0T2JqW3NvcnRWYWx1ZXNbaV1dKTsNCiAgICAgICAgfQ0KICAgIH0NCiAgICByZXR1cm47DQp9DQpmdW5jdGlvbiBjcmVhdGVTZWFyY2hPYmooKSB7DQogICAgU0VBUkNIX01BUFBJTkcgPSBuZXcgT2JqZWN0KCk7DQogICAgdmFyIGRhdGEgPSBTRVJWRVJbInhlcGciXVsiZXBnTWFwcGluZyJdOw0KICAgIHZhciBjaGFubmVscyA9IGdldE9iaktleXMoZGF0YSk7DQogICAgdmFyIGNoYW5uZWxLZXlzID0gWyJ4LWFjdGl2ZSIsICJ4LWNoYW5uZWxJRCIsICJ4LW5hbWUiLCAiX2ZpbGUubTN1Lm5hbWUiLCAieC1ncm91cC10aXRsZSIsICJ4LXhtbHR2LWZpbGUiXTsNCiAgICBjaGFubmVscy5mb3JFYWNoKGlkID0+IHsNCiAgICAgICAgY2hhbm5lbEtleXMuZm9yRWFjaChrZXkgPT4gew0KICAgICAgICAgICAgaWYgKGtleSA9PSAieC1hY3RpdmUiKSB7DQogICAgICAgICAgICAgICAgc3dpdGNoIChkYXRhW2lkXVtrZXldKSB7DQogICAgICAgICAgICAgICAgICAgIGNhc2UgdHJ1ZToNCiAgICAgICAgICAgICAgICAgICAgICAgIFNFQVJDSF9NQVBQSU5HW2lkXSA9ICJvbmxpbmUgIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgICAgICBjYXNlIGZhbHNlOg0KICAgICAgICAgICAgICAgICAgICAgICAgU0VBUkNIX01BUFBJTkdbaWRdID0gIm9mZmxpbmUgIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgICAgIGlmIChrZXkgPT0gIngteG1sdHYtZmlsZSIpIHsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHhtbHR2RmlsZSA9IGdldFZhbHVlRnJvbVByb3ZpZGVyRmlsZShkYXRhW2lkXVtrZXldLCAieG1sdHYiLCAibmFtZSIpOw0KICAgICAgICAgICAgICAgICAgICBpZiAoeG1sdHZGaWxlICE9IHVuZGVmaW5lZCkgew0KICAgICAgICAgICAgICAgICAgICAgICAgU0VBUkNIX01BUFBJTkdbaWRdID0gU0VBUkNIX01BUFBJTkdbaWRdICsgeG1sdHZGaWxlICsgIiAiOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgICAgICAgICBTRUFSQ0hfTUFQUElOR1tpZF0gPSBTRUFSQ0hfTUFQUElOR1tpZF0gKyBkYXRhW2lkXVtrZXldICsgIiAiOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0NCiAgICAgICAgfSk7DQogICAgfSk7DQogICAgcmV0dXJuOw0KfQ0KZnVuY3Rpb24gc2VhcmNoSW5NYXBwaW5nKCkgew0KICAgIHZhciBzZWFyY2hWYWx1ZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzZWFyY2hNYXBwaW5nIikudmFsdWU7DQogICAgdmFyIHRycyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb250ZW50X3RhYmxlIikuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlRSIik7DQogICAgZm9yICh2YXIgaSA9IDE7IGkgPCB0cnMubGVuZ3RoOyArK2kpIHsNCiAgICAgICAgdmFyIGlkID0gdHJzW2ldLmdldEF0dHJpYnV0ZSgiaWQiKTsNCiAgICAgICAgdmFyIGVsZW1lbnQgPSBTRUFSQ0hfTUFQUElOR1tpZF07DQogICAgICAgIHN3aXRjaCAoZWxlbWVudC50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKHNlYXJjaFZhbHVlLnRvTG93ZXJDYXNlKCkpKSB7DQogICAgICAgICAgICBjYXNlIHRydWU6DQogICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpLnN0eWxlLmRpc3BsYXkgPSAiIjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgZmFsc2U6DQogICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpLnN0eWxlLmRpc3BsYXkgPSAibm9uZSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIH0NCiAgICB9DQogICAgcmV0dXJuOw0KfQ0KZnVuY3Rpb24gY2FsY3VsYXRlV3JhcHBlckhlaWdodCgpIHsNCiAgICBpZiAoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImJveC13cmFwcGVyIikpIHsNCiAgICAgICAgdmFyIGVsbSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJib3gtd3JhcHBlciIpOw0KICAgICAgICB2YXIgZGl2cyA9IG5ldyBBcnJheSgibXlTdHJlYW1zQm94IiwgImNsaWVudEluZm8iLCAiY29udGVudCIpOw0KICAgICAgICB2YXIgZWxlbWVudHNIZWlnaHQgPSAwIC0gZWxtLm9mZnNldEhlaWdodDsNCiAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBkaXZzLmxlbmd0aDsgaSsrKSB7DQogICAgICAgICAgICBlbGVtZW50c0hlaWdodCA9IGVsZW1lbnRzSGVpZ2h0ICsgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoZGl2c1tpXSkub2Zmc2V0SGVpZ2h0Ow0KICAgICAgICB9DQogICAgICAgIGVsbS5zdHlsZS5oZWlnaHQgPSB3aW5kb3cuaW5uZXJIZWlnaHQgLSBlbGVtZW50c0hlaWdodCArICJweCI7DQogICAgfQ0KICAgIHJldHVybjsNCn0NCmZ1bmN0aW9uIGNoYW5nZUNoYW5uZWxOdW1iZXIoZWxlbWVudCkgew0KICAgIHZhciBkYklEID0gZWxlbWVudC5wYXJlbnROb2RlLnBhcmVudE5vZGUuaWQ7DQogICAgdmFyIG5ld051bWJlciA9IHBhcnNlRmxvYXQoZWxlbWVudC52YWx1ZSk7DQogICAgdmFyIGNoYW5uZWxOdW1iZXJzID0gW107DQogICAgdmFyIGRhdGEgPSBTRVJWRVJbInhlcGciXVsiZXBnTWFwcGluZyJdOw0KICAgIHZhciBjaGFubmVscyA9IGdldE9iaktleXMoZGF0YSk7DQogICAgaWYgKGlzTmFOKG5ld051bWJlcikpIHsNCiAgICAgICAgYWxlcnQoInt7LmFsZXJ0LmludmFsaWRDaGFubmVsTnVtYmVyfX0iKTsNCiAgICAgICAgcmV0dXJuOw0KICAgIH0NCiAgICBjaGFubmVscy5mb3JFYWNoKGlkID0+IHsNCiAgICAgICAgdmFyIGNoYW5uZWxOdW1iZXIgPSBwYXJzZUZsb2F0KGRhdGFbaWRdWyJ4LWNoYW5uZWxJRCJdKTsNCiAgICAgICAgY2hhbm5lbE51bWJlcnMucHVzaChjaGFubmVsTnVtYmVyKTsNCiAgICB9KTsNCiAgICBmb3IgKHZhciBpID0gMDsgaSA8IGNoYW5uZWxOdW1iZXJzLmxlbmd0aDsgaSsrKSB7DQogICAgICAgIGlmIChjaGFubmVsTnVtYmVycy5pbmRleE9mKG5ld051bWJlcikgPT0gLTEpIHsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICB9DQogICAgICAgIGlmIChNYXRoLmZsb29yKG5ld051bWJlcikgPT0gbmV3TnVtYmVyKSB7DQogICAgICAgICAgICBuZXdOdW1iZXIgPSBuZXdOdW1iZXIgKyAxOw0KICAgICAgICB9DQogICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgbmV3TnVtYmVyID0gbmV3TnVtYmVyICsgMC4xOw0KICAgICAgICAgICAgbmV3TnVtYmVyLnRvRml4ZWQoMSk7DQogICAgICAgICAgICBuZXdOdW1iZXIgPSBNYXRoLnJvdW5kKG5ld051bWJlciAqIDEwKSAvIDEwOw0KICAgICAgICB9DQogICAgfQ0KICAgIGRhdGFbZGJJRF1bIngtY2hhbm5lbElEIl0gPSBuZXdOdW1iZXIudG9TdHJpbmcoKTsNCiAgICBlbGVtZW50LnZhbHVlID0gbmV3TnVtYmVyOw0KICAgIGNvbnNvbGUubG9nKGRhdGFbZGJJRF1bIngtY2hhbm5lbElEIl0pOw0KICAgIGlmIChDT0xVTU5fVE9fU09SVCA9PSAxKSB7DQogICAgICAgIENPTFVNTl9UT19TT1JUID0gLTE7DQogICAgICAgIHNvcnRUYWJsZSgxKTsNCiAgICB9DQogICAgcmV0dXJuOw0KfQ0KZnVuY3Rpb24gYmFja3VwKCkgew0KICAgIHZhciBkYXRhID0gbmV3IE9iamVjdCgpOw0KICAgIGNvbnNvbGUubG9nKCJCYWNrdXAgZGF0YSIpOw0KICAgIHZhciBjbWQgPSAieHRldmVCYWNrdXAiOw0KICAgIGNvbnNvbGUubG9nKCJTRU5EIFRPIFNFUlZFUiIpOw0KICAgIGNvbnNvbGUubG9nKGRhdGEpOw0KICAgIHZhciBzZXJ2ZXIgPSBuZXcgU2VydmVyKGNtZCk7DQogICAgc2VydmVyLnJlcXVlc3QoZGF0YSk7DQogICAgcmV0dXJuOw0KfQ0KZnVuY3Rpb24gdG9nZ2xlQ2hhbm5lbFN0YXR1cyhpZCkgew0KICAgIHZhciBlbGVtZW50Ow0KICAgIHZhciBzdGF0dXM7DQogICAgaWYgKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJhY3RpdmUiKSkgew0KICAgICAgICB2YXIgY2hlY2tib3ggPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYWN0aXZlIik7DQogICAgICAgIHN0YXR1cyA9IChjaGVja2JveCkuY2hlY2tlZDsNCiAgICB9DQogICAgdmFyIGlkcyA9IGdldEFsbFNlbGVjdGVkQ2hhbm5lbHMoKTsNCiAgICBpZiAoaWRzLmxlbmd0aCA9PSAwKSB7DQogICAgICAgIGlkcy5wdXNoKGlkKTsNCiAgICB9DQogICAgaWRzLmZvckVhY2goaWQgPT4gew0KICAgICAgICB2YXIgY2hhbm5lbCA9IFNFUlZFUlsieGVwZyJdWyJlcGdNYXBwaW5nIl1baWRdOw0KICAgICAgICBjaGFubmVsWyJ4LWFjdGl2ZSJdID0gc3RhdHVzOw0KICAgICAgICBzd2l0Y2ggKGNoYW5uZWxbIngtYWN0aXZlIl0pIHsNCiAgICAgICAgICAgIGNhc2UgdHJ1ZToNCiAgICAgICAgICAgICAgICBpZiAoY2hhbm5lbFsieC14bWx0di1maWxlIl0gPT0gIi0iIHx8IGNoYW5uZWxbIngtbWFwcGluZyJdID09ICItIikgew0KICAgICAgICAgICAgICAgICAgICBpZiAoQlVMS19FRElUID09IGZhbHNlKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBhbGVydChjaGFubmVsWyJ4LW5hbWUiXSArICI6IE1pc3NpbmcgWE1MVFYgZmlsZSAvIGNoYW5uZWwiKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNoZWNrYm94LmNoZWNrZWQgPSBmYWxzZTsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBjaGFubmVsWyJ4LWFjdGl2ZSJdID0gZmFsc2U7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSBmYWxzZToNCiAgICAgICAgICAgICAgICAvLyBjb2RlLi4uDQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIH0NCiAgICAgICAgaWYgKGNoYW5uZWxbIngtYWN0aXZlIl0gPT0gZmFsc2UpIHsNCiAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5jbGFzc05hbWUgPSAibm90QWN0aXZlRVBHIjsNCiAgICAgICAgfQ0KICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5jbGFzc05hbWUgPSAiYWN0aXZlRVBHIjsNCiAgICAgICAgfQ0KICAgIH0pOw0KfQ0KZnVuY3Rpb24gcmVzdG9yZSgpIHsNCiAgICBpZiAoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3VwbG9hZCcpKSB7DQogICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd1cGxvYWQnKS5yZW1vdmUoKTsNCiAgICB9DQogICAgdmFyIHJlc3RvcmUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJJTlBVVCIpOw0KICAgIHJlc3RvcmUuc2V0QXR0cmlidXRlKCJ0eXBlIiwgImZpbGUiKTsNCiAgICByZXN0b3JlLnNldEF0dHJpYnV0ZSgiY2xhc3MiLCAibm90VmlzaWJsZSIpOw0KICAgIHJlc3RvcmUuc2V0QXR0cmlidXRlKCJuYW1lIiwgIiIpOw0KICAgIHJlc3RvcmUuaWQgPSAidXBsb2FkIjsNCiAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHJlc3RvcmUpOw0KICAgIHJlc3RvcmUuY2xpY2soKTsNCiAgICByZXN0b3JlLm9uY2hhbmdlID0gZnVuY3Rpb24gKCkgew0KICAgICAgICB2YXIgZmlsZW5hbWUgPSByZXN0b3JlLmZpbGVzWzBdLm5hbWU7DQogICAgICAgIHZhciBjaGVjayA9IGNvbmZpcm0oIkZpbGU6ICIgKyBmaWxlbmFtZSArICJcbnt7LmNvbmZpcm0ucmVzdG9yZX19Iik7DQogICAgICAgIGlmIChjaGVjayA9PSB0cnVlKSB7DQogICAgICAgICAgICB2YXIgcmVhZGVyID0gbmV3IEZpbGVSZWFkZXIoKTsNCiAgICAgICAgICAgIHZhciBmaWxlID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignaW5wdXRbdHlwZT1maWxlXScpLmZpbGVzWzBdOw0KICAgICAgICAgICAgaWYgKGZpbGUpIHsNCiAgICAgICAgICAgICAgICByZWFkZXIucmVhZEFzRGF0YVVSTChmaWxlKTsNCiAgICAgICAgICAgICAgICByZWFkZXIub25sb2FkID0gZnVuY3Rpb24gKCkgew0KICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhyZWFkZXIucmVzdWx0KTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGRhdGEgPSBuZXcgT2JqZWN0KCk7DQogICAgICAgICAgICAgICAgICAgIHZhciBjbWQgPSAieHRldmVSZXN0b3JlIjsNCiAgICAgICAgICAgICAgICAgICAgZGF0YVsiYmFzZTY0Il0gPSByZWFkZXIucmVzdWx0Ow0KICAgICAgICAgICAgICAgICAgICB2YXIgc2VydmVyID0gbmV3IFNlcnZlcihjbWQpOw0KICAgICAgICAgICAgICAgICAgICBzZXJ2ZXIucmVxdWVzdChkYXRhKTsNCiAgICAgICAgICAgICAgICB9Ow0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgZWxzZSB7DQogICAgICAgICAgICAgICAgYWxlcnQoIkZpbGUgY291bGQgbm90IGJlIGxvYWRlZCIpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgcmVzdG9yZS5yZW1vdmUoKTsNCiAgICAgICAgICAgIHJldHVybjsNCiAgICAgICAgfQ0KICAgIH07DQogICAgcmV0dXJuOw0KfQ0KZnVuY3Rpb24gdXBsb2FkTG9nbygpIHsNCiAgICBpZiAoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3VwbG9hZCcpKSB7DQogICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd1cGxvYWQnKS5yZW1vdmUoKTsNCiAgICB9DQogICAgdmFyIHVwbG9hZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIklOUFVUIik7DQogICAgdXBsb2FkLnNldEF0dHJpYnV0ZSgidHlwZSIsICJmaWxlIik7DQogICAgdXBsb2FkLnNldEF0dHJpYnV0ZSgiY2xhc3MiLCAibm90VmlzaWJsZSIpOw0KICAgIHVwbG9hZC5zZXRBdHRyaWJ1dGUoIm5hbWUiLCAiIik7DQogICAgdXBsb2FkLmlkID0gInVwbG9hZCI7DQogICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZCh1cGxvYWQpOw0KICAgIHVwbG9hZC5jbGljaygpOw0KICAgIHVwbG9hZC5vbmJsdXIgPSBmdW5jdGlvbiAoKSB7DQogICAgICAgIGFsZXJ0KCk7DQogICAgfTsNCiAgICB1cGxvYWQub25jaGFuZ2UgPSBmdW5jdGlvbiAoKSB7DQogICAgICAgIHZhciBmaWxlbmFtZSA9IHVwbG9hZC5maWxlc1swXS5uYW1lOw0KICAgICAgICB2YXIgcmVhZGVyID0gbmV3IEZpbGVSZWFkZXIoKTsNCiAgICAgICAgdmFyIGZpbGUgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCdpbnB1dFt0eXBlPWZpbGVdJykuZmlsZXNbMF07DQogICAgICAgIGlmIChmaWxlKSB7DQogICAgICAgICAgICByZWFkZXIucmVhZEFzRGF0YVVSTChmaWxlKTsNCiAgICAgICAgICAgIHJlYWRlci5vbmxvYWQgPSBmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICAgICAgY29uc29sZS5sb2cocmVhZGVyLnJlc3VsdCk7DQogICAgICAgICAgICAgICAgdmFyIGRhdGEgPSBuZXcgT2JqZWN0KCk7DQogICAgICAgICAgICAgICAgdmFyIGNtZCA9ICJ1cGxvYWRMb2dvIjsNCiAgICAgICAgICAgICAgICBkYXRhWyJiYXNlNjQiXSA9IHJlYWRlci5yZXN1bHQ7DQogICAgICAgICAgICAgICAgZGF0YVsiZmlsZW5hbWUiXSA9IGZpbGUubmFtZTsNCiAgICAgICAgICAgICAgICB2YXIgc2VydmVyID0gbmV3IFNlcnZlcihjbWQpOw0KICAgICAgICAgICAgICAgIHNlcnZlci5yZXF1ZXN0KGRhdGEpOw0KICAgICAgICAgICAgICAgIHZhciB1cGRhdGVMb2dvID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3VwZGF0ZS1pY29uJyk7DQogICAgICAgICAgICAgICAgdXBkYXRlTG9nby5jaGVja2VkID0gZmFsc2U7DQogICAgICAgICAgICAgICAgdXBkYXRlTG9nby5jbGFzc05hbWUgPSAiY2hhbmdlZCI7DQogICAgICAgICAgICB9Ow0KICAgICAgICB9DQogICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgYWxlcnQoIkZpbGUgY291bGQgbm90IGJlIGxvYWRlZCIpOw0KICAgICAgICB9DQogICAgICAgIHVwbG9hZC5yZW1vdmUoKTsNCiAgICAgICAgcmV0dXJuOw0KICAgIH07DQp9DQpmdW5jdGlvbiBjaGVja1VuZG8oa2V5KSB7DQogICAgc3dpdGNoIChrZXkpIHsNCiAgICAgICAgY2FzZSAiZXBnTWFwcGluZyI6DQogICAgICAgICAgICBpZiAoVU5ETy5oYXNPd25Qcm9wZXJ0eShrZXkpKSB7DQogICAgICAgICAgICAgICAgU0VSVkVSWyJ4ZXBnIl1ba2V5XSA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkoVU5ET1trZXldKSk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICBVTkRPW2tleV0gPSBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KFNFUlZFUlsieGVwZyJdW2tleV0pKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBkZWZhdWx0Og0KICAgICAgICAgICAgYnJlYWs7DQogICAgfQ0KICAgIHJldHVybjsNCn0NCmZ1bmN0aW9uIHNvcnRTZWxlY3QoZWxlbSkgew0KICAgIHZhciB0bXBBcnkgPSBbXTsNCiAgICB2YXIgc2VsZWN0ZWRWYWx1ZSA9IGVsZW1bZWxlbS5zZWxlY3RlZEluZGV4XS52YWx1ZTsNCiAgICBmb3IgKHZhciBpID0gMDsgaSA8IGVsZW0ub3B0aW9ucy5sZW5ndGg7IGkrKykNCiAgICAgICAgdG1wQXJ5LnB1c2goZWxlbS5vcHRpb25zW2ldKTsNCiAgICB0bXBBcnkuc29ydChmdW5jdGlvbiAoYSwgYikgeyByZXR1cm4gKGEudGV4dCA8IGIudGV4dCkgPyAtMSA6IDE7IH0pOw0KICAgIHdoaWxlIChlbGVtLm9wdGlvbnMubGVuZ3RoID4gMCkNCiAgICAgICAgZWxlbS5vcHRpb25zWzBdID0gbnVsbDsNCiAgICB2YXIgbmV3U2VsZWN0ZWRJbmRleCA9IDA7DQogICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0bXBBcnkubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgZWxlbS5vcHRpb25zW2ldID0gdG1wQXJ5W2ldOw0KICAgICAgICBpZiAoZWxlbS5vcHRpb25zW2ldLnZhbHVlID09IHNlbGVjdGVkVmFsdWUpDQogICAgICAgICAgICBuZXdTZWxlY3RlZEluZGV4ID0gaTsNCiAgICB9DQogICAgZWxlbS5zZWxlY3RlZEluZGV4ID0gbmV3U2VsZWN0ZWRJbmRleDsgLy8gU2V0IG5ldyBzZWxlY3RlZCBpbmRleCBhZnRlciBzb3J0aW5nDQogICAgcmV0dXJuOw0KfQ0KZnVuY3Rpb24gdXBkYXRlTG9nKCkgew0KICAgIGNvbnNvbGUubG9nKCJUT0tFTiIpOw0KICAgIHZhciBzZXJ2ZXIgPSBuZXcgU2VydmVyKCJ1cGRhdGVMb2ciKTsNCiAgICBzZXJ2ZXIucmVxdWVzdChuZXcgT2JqZWN0KCkpOw0KfQ0K" + webUI["html/js/configuaration.js"] = "dmFyIGNvbmZpZ01lbnUgPSBuZXcgT2JqZWN0KCk7DQp2YXIgd2l6YXJkID0gbmV3IEFycmF5KCJrZXkiLCAidHVuZXIiLCAiZXBnU291cmNlIiwgIm0zdSIsICJjb21wbGV0ZSIpOw0KdmFyIGFjdGl2ZVdpemFyZDsNCnZhciBkdnJJUA0KDQp2YXIgY29uZmlnTWVudV90dW5lciA9IG5ldyBPYmplY3QoKTsNCmNvbmZpZ01lbnVfdHVuZXJbIl9lbGVtZW50Il0gICAgICA9ICJTRUxFQ1QiOw0KY29uZmlnTWVudV90dW5lclsiX21lbnVUeXBlIl0gICAgID0gInNpbmdsZUlucHV0IjsNCmNvbmZpZ01lbnVfdHVuZXJbIl9jb25maWdLZXkiXSAgICA9ICJ0dW5lciI7DQpjb25maWdNZW51X3R1bmVyWyJfbGFiZWwiXSAgICAgICAgPSAiQXZhaWxhYmxlIHR1bmVycyI7DQpjb25maWdNZW51X3R1bmVyWyJuYW1lIl0gICAgICAgICAgPSAidHVuZXIiOw0KY29uZmlnTWVudV90dW5lclsiaWQiXSAgICAgICAgICAgID0gIlR1bmVyIjsNCmNvbmZpZ01lbnVfdHVuZXJbInBsYWNlaG9sZGVyIl0gICA9ICJUdW5lciI7DQpjb25maWdNZW51X3R1bmVyWyJfdXNhZ2UiXSAgICAgICAgPSAiVGhpcyBzZXR0aW5nIGlzIG9ubHkgdXNlZCBieSBQbGV4IGFuZCBFbWJ5Ljxicj5UaGUgbnVtYmVyIG9mIGNvbmN1cnJlbnQgc3RyZWFtcyBhbGxvd2VkIGJ5IHRoZSBJUFRWIHByb3ZpZGVyLiINCg0KDQp2YXIgb3B0aW9uVmFsdWVzID0gbmV3IEFycmF5KCk7DQpmb3IgKHZhciBpID0gMTsgaSA8PSAxMDA7IGkrKykgew0KICBvcHRpb25WYWx1ZXMucHVzaChpKQ0KfQ0KY29uZmlnTWVudV90dW5lclsiX29wdGlvblZhbHVlcyJdID0gb3B0aW9uVmFsdWVzOw0KDQp2YXIgY29uZmlnTWVudV9lcGcgPSBuZXcgT2JqZWN0KCk7DQpjb25maWdNZW51X2VwZ1siX2VsZW1lbnQiXSAgICAgID0gIlNFTEVDVCI7DQpjb25maWdNZW51X2VwZ1siX21lbnVUeXBlIl0gICAgID0gInNpbmdsZUlucHV0IjsNCmNvbmZpZ01lbnVfZXBnWyJfY29uZmlnS2V5Il0gICAgPSAiZXBnU291cmNlIjsNCmNvbmZpZ01lbnVfZXBnWyJfbGFiZWwiXSAgICAgICAgPSAiU2VsZWN0aW9uIG9mIHRoZSBFUEcgc291cmNlIjsNCmNvbmZpZ01lbnVfZXBnWyJuYW1lIl0gICAgICAgICAgPSAiZXBnU291cmNlIjsNCmNvbmZpZ01lbnVfZXBnWyJpZCJdICAgICAgICAgICAgPSAiRVBHIHNvdXJjZSI7DQpjb25maWdNZW51X2VwZ1sicGxhY2Vob2xkZXIiXSAgID0gIkVQRyBzb3VyY2UiOw0KY29uZmlnTWVudV9lcGdbIl9vcHRpb25WYWx1ZXMiXSA9IG5ldyBBcnJheSgiUE1TIiwgIlhFUEciKTsNCmNvbmZpZ01lbnVfZXBnWyJfdXNhZ2UiXSAgICAgICAgPSAiUE1TOiAgIFVzZSBFUEcgZGF0YSBmcm9tIFBsZXggb3IgRW1ieTxicj5YRVBHOiAgVXNlIG9mIGV4dGVybmFsIEVQRyBkYXRhIChYTUxUVik8YnI+ICAgICAgIFNldmVyYWwgWE1MVFYgc291cmNlcyBwb3NzaWJsZTxicj4gICAgICAgQWxsb3dzIGVkaXRpbmcgYW5kIG9yZGVyIGNoYW5uZWxzPGJyPiAgICAgICBNM1UgLyBYTUxUViBleHBvcnQgKEhUVFAgbGluayBmb3IgSVBUViBhcHBzKSINCg0KdmFyIGNvbmZpZ01lbnVfbTN1ID0gbmV3IE9iamVjdCgpOw0KY29uZmlnTWVudV9tM3VbIl9lbGVtZW50Il0gICAgICAgID0gIklOUFVUIjsNCmNvbmZpZ01lbnVfbTN1WyJfbWVudVR5cGUiXSAgICAgICA9ICJpbnB1dEFycmF5IjsNCmNvbmZpZ01lbnVfbTN1WyJfY29uZmlnS2V5Il0gICAgICA9ICJmaWxlIjsNCmNvbmZpZ01lbnVfbTN1WyJfbGFiZWwiXSAgICAgICAgICA9ICJNM1UgRmlsZTogbG9jYWwgb3IgcmVtb3RlIjsNCmNvbmZpZ01lbnVfbTN1WyJuYW1lIl0gICAgICAgICAgICA9ICJmaWxlIjsNCmNvbmZpZ01lbnVfbTN1WyJpZCJdICAgICAgICAgICAgICA9ICJtM3UiOw0KY29uZmlnTWVudV9tM3VbInR5cGUiXSAgICAgICAgICAgID0gInRleHQiOw0KY29uZmlnTWVudV9tM3VbInBsYWNlaG9sZGVyIl0gICAgID0gIk0zVSBGaWxlIjsNCmNvbmZpZ01lbnVfbTN1WyJfdXNhZ2UiXSAgICAgICAgICA9ICJSZW1vdGUgcGxheWxpc3Q6IGh0dHA6Ly95b3VyLnByb3ZpZGVyLmNvbS9maWxlLm0zdTxicj5Mb2NhbCAgcGxheWxpc3Q6IC9wYXRoL3RvL2ZpbGUubTN1Ig0KDQoNCmNvbmZpZ01lbnVfbTN1WyJ2YWx1ZSJdICAgICAgICAgICA9ICJodHRwOi8vd2Vic3J2LmxvY2FsOjgwODAva2FiZWwubTN1IjsNCg0KdmFyIGNvbmZpZ01lbnVfY29tcGxldGUgPSBuZXcgT2JqZWN0KCk7DQpjb25maWdNZW51X2NvbXBsZXRlWyJfZWxlbWVudCJdICAgICAgICA9ICJIMiI7DQpjb25maWdNZW51X2NvbXBsZXRlWyJfbWVudVR5cGUiXSAgICAgICA9ICJpbnB1dEFycmF5IjsNCmNvbmZpZ01lbnVfY29tcGxldGVbIl9jb25maWdLZXkiXSAgICAgID0gImZpbGUiOw0KY29uZmlnTWVudV9jb21wbGV0ZVsiX3RleHQiXSAgICAgICAgICAgPSAieFRlVmUgd2FzIHN1Y2Nlc3NmdWxseSBzZXQgdXAiOw0KY29uZmlnTWVudV9jb21wbGV0ZVsibmFtZSJdICAgICAgICAgICAgPSAiY29tcGxldGUiOw0KY29uZmlnTWVudV9jb21wbGV0ZVsiaWQiXSAgICAgICAgICAgICAgPSAiY29tcGxldGUiOw0KY29uZmlnTWVudV9jb21wbGV0ZVsidHlwZSJdICAgICAgICAgICAgPSAidGV4dCI7DQpjb25maWdNZW51X2NvbXBsZXRlWyJjbGFzcyJdICAgICAgICAgICA9ICJjZW50ZXIiOw0KDQpjb25maWdNZW51WyJ0dW5lciJdICAgICA9IGNvbmZpZ01lbnVfdHVuZXI7DQpjb25maWdNZW51WyJlcGdTb3VyY2UiXSA9IGNvbmZpZ01lbnVfZXBnOw0KY29uZmlnTWVudVsibTN1Il0gICAgICAgPSBjb25maWdNZW51X20zdTsNCmNvbmZpZ01lbnVbImNvbXBsZXRlIl0gID0gY29uZmlnTWVudV9jb21wbGV0ZTsNCg0KZnVuY3Rpb24gcmVhZHlGb3JDb25maWd1cmF0aW9uKCkgew0KICB2YXIgZGF0YSA9IG5ldyBPYmplY3QoKTsNCiAgZGF0YVsiY21kIl0gPSAiZ2V0U2VydmVyQ29uZmlnIjsNCiAgeFRlVmUoZGF0YSk7DQogIHNob3dMb2FkaW5nU2NyZWVuKGZhbHNlKTsNCn0NCg0KZnVuY3Rpb24gY3JlYXRlQ29uZmlndXJhdGlvbihlbG0pIHsNCg0KICBhY3RpdmVXaXphcmQgPSBlbG07DQogIHZhciBpdGVtICA9IGNvbmZpZ01lbnVbZWxtXTsNCg0KICB2YXIgZGl2ICAgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29udGVudCIpOw0KICBkaXYuaW5uZXJIVE1MID0gIiI7DQogIGRpdi5zZXRBdHRyaWJ1dGUoImRhdGEtY29uZmlnS2V5IiwgaXRlbVsiX2NvbmZpZ0tleSJdKTsNCiAgZGl2LnNldEF0dHJpYnV0ZSgiZGF0YS1tZW51VHlwZSIsIGl0ZW1bIl9tZW51VHlwZSJdKTsNCiAgDQogIHN3aXRjaChpdGVtLmhhc093blByb3BlcnR5KCJfbGFiZWwiKSkgew0KICAgIGNhc2UgdHJ1ZToNCiAgICAgIHZhciBuZXdJdGVtID0gbmV3IE9iamVjdCgpOw0KICAgICAgbmV3SXRlbVsiX2VsZW1lbnQiXSA9ICJMQUJFTCI7DQogICAgICBuZXdJdGVtWyJfdGV4dCJdICAgID0gaXRlbVsiX2xhYmVsIl07IA0KICAgICAgbmV3SXRlbVsiZm9yIl0gICAgICA9IGl0ZW1bImlkIl07DQogICAgICBkaXYuYXBwZW5kQ2hpbGQoY3JlYXRlRWxlbWVudChuZXdJdGVtKSk7DQogICAgICBicmVhaw0KICB9DQoNCiAgc3dpdGNoKGl0ZW1bIl9lbGVtZW50Il0pIHsNCiAgICBjYXNlICJTRUxFQ1QiOg0KICAgICAgZGl2LmFwcGVuZENoaWxkKGNyZWF0ZUVsZW1lbnQoaXRlbSkpOw0KICAgICAgdmFyIHNlbGVjdEVsZW1lbnQgPSBkaXYuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlNFTEVDVCIpWzBdOw0KICAgICAgdmFyIHZhbHVlcyA9IGl0ZW1bIl9vcHRpb25WYWx1ZXMiXTsNCiAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdmFsdWVzLmxlbmd0aDsgaSsrKSB7DQogICAgICAgIHZhciBuZXdFbnRyeSA9IG5ldyBPYmplY3Q7DQogICAgICAgIG5ld0VudHJ5WyJfZWxlbWVudCJdICA9ICJPUFRJT04iOw0KICAgICAgICBuZXdFbnRyeVsiX3RleHQiXSAgICAgPSBpdGVtWyJpZCJdICsgIjogIiArIHZhbHVlc1tpXTsNCiAgICAgICAgbmV3RW50cnlbInZhbHVlIl0gICAgID0gdmFsdWVzW2ldOw0KICAgICAgICBzZWxlY3RFbGVtZW50LmFwcGVuZENoaWxkKGNyZWF0ZUVsZW1lbnQobmV3RW50cnkpKTsNCiAgICAgIH0NCiAgICAgIC8vcmV0dXJuDQogICAgICBicmVhazsNCg0KICAgIGRlZmF1bHQ6IA0KICAgICAgZGl2LmFwcGVuZENoaWxkKGNyZWF0ZUVsZW1lbnQoaXRlbSkpOw0KICAgICAgYnJlYWs7DQoNCg0KICB9DQogIC8vYWxlcnQoKQ0KDQogIHN3aXRjaChpdGVtLmhhc093blByb3BlcnR5KCJfdXNhZ2UiKSkgew0KICAgIGNhc2UgdHJ1ZTogDQogICAgICB2YXIgdXNhZ2VJdGVtID0gbmV3IE9iamVjdCgpOw0KICAgICAgdXNhZ2VJdGVtWyJfZWxlbWVudCJdID0gIlBSRSINCiAgICAgIHVzYWdlSXRlbVsiX3RleHQiXSAgICA9IGl0ZW1bIl91c2FnZSJdOw0KICAgICAgZGl2LmFwcGVuZENoaWxkKGNyZWF0ZUVsZW1lbnQodXNhZ2VJdGVtKSk7DQogIH0NCg0KICBpZiAoYWN0aXZlV2l6YXJkID09ICJjb21wbGV0ZSIpIHsNCiAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibmV4dCIpLnZhbHVlID0gIkZpbmlzaGVkIg0KICAgIC8vZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm5leHQiKS5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAiamF2YXNjcmlwdDogbG9jYXRpb24ucmVsb2FkKCk7IikNCiAgfQ0KDQogIC8vZGl2LmFwcGVuZENoaWxkKGNyZWF0ZUVsZW1lbnQoaXRlbSkpOw0KfQ0KDQpmdW5jdGlvbiBzYXZlRGF0YSgpIHsNCg0KICB2YXIgZGl2ICAgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29udGVudCIpOw0KICB2YXIgaW5wdXRzID0gZGl2LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJJTlBVVCIpOw0KICB2YXIgc2VsZWN0cyA9IGRpdi5nZXRFbGVtZW50c0J5VGFnTmFtZSgiU0VMRUNUIik7DQogIHZhciB2YWx1ZTsNCiAgdmFyIGRhdGEgPSBuZXcgT2JqZWN0KCk7DQogIHZhciB2YWx1ZUFyciA9IG5ldyBBcnJheSgpOw0KICB2YXIgbmV3RGF0YSA9IGZhbHNlOw0KDQogIGlmIChhY3RpdmVXaXphcmQgPT0gImNvbXBsZXRlIikgew0KICAgIGRhdGFbImNtZCJdID0gIndpemFyZENvbXBsZXRlZCI7DQogICAgc2hvd0xvYWRpbmdTY3JlZW4odHJ1ZSkNCiAgICB4VGVWZShkYXRhKTsNCiAgICByZXR1cm4NCiAgfQ0KICANCiAgZm9yICh2YXIgaSA9IDA7IGkgPCBpbnB1dHMubGVuZ3RoOyBpKyspIHsNCiAgICB2YXIgbWVudVR5cGUgPSBpbnB1dHNbaV0ucGFyZW50RWxlbWVudC5nZXRBdHRyaWJ1dGUoImRhdGEtbWVudXR5cGUiKTsNCiAgICBpZiAoaW5wdXRzW2ldLnZhbHVlICE9IHVuZGVmaW5lZCAmJiBpbnB1dHNbaV0udmFsdWUgIT0gIiIgKSB7DQogICAgICBuZXdEYXRhID0gdHJ1ZTsNCg0KICAgICAgY29uc29sZS5sb2coaW5wdXRzW2ldLmlkKQ0KICAgICAgc3dpdGNoKGlucHV0c1tpXS5pZCkgew0KICAgICAgICBjYXNlICJtM3UiOiANCiAgICAgICAgICB2YXIgbmV3UGxheWxpc3QgPSBuZXcgT2JqZWN0KCk7DQogICAgICAgICAgbmV3UGxheWxpc3RbImZpbGUuc291cmNlIl0gPSBpbnB1dHNbaV0udmFsdWU7DQogICAgICAgICAgLy9uZXdQbGF5bGlzdFsibmFtZSJdID0gaW5wdXRzW2ldLnZhbHVlOw0KICAgICAgICAgIG5ld1BsYXlsaXN0WyJ0eXBlIl0gPSAibTN1IjsNCiAgICAgICAgICBuZXdQbGF5bGlzdFsibmV3Il0gPSB0cnVlOw0KDQogICAgICAgICAgZGF0YVsiZmlsZXMiXSA9IG5ldyBPYmplY3QoKTsNCiAgICAgICAgICBkYXRhWyJmaWxlcyJdWyJtM3UiXSA9IG5ldyBPYmplY3QoKTsNCiAgICAgICAgICBkYXRhWyJmaWxlcyJdWyJtM3UiXVsiLSJdID0gbmV3UGxheWxpc3Q7DQogICAgICAgICAgDQogICAgICAgICAgZGF0YVsiY21kIl0gPSAic2F2ZUZpbGVzTTNVIjsNCiAgICAgICAgICB4VGVWZShkYXRhKQ0KICAgICAgICAgIHJldHVybg0KICAgICAgfQ0KICAgICAgLyoNCiAgICAgIHN3aXRjaChtZW51VHlwZSkgew0KICAgICAgICBjYXNlICJzaW5nbGVJbnB1dCI6DQogICAgICAgICAgZGF0YVtpbnB1dHNbaV0ubmFtZV0gPSBpbnB1dHNbaV0udmFsdWU7IGJyZWFrOw0KICAgICAgICBjYXNlICJpbnB1dEFycmF5IjogDQogICAgICAgICAgdmFsdWVBcnIucHVzaChpbnB1dHNbaV0udmFsdWUpOw0KICAgICAgICAgIGRhdGFbaW5wdXRzW2ldLm5hbWVdID0gdmFsdWVBcnI7IGJyZWFrDQoNCiAgICAgIH0NCiAgICAgICovDQogICAgfSBlbHNlIHsNCiAgICAgIGlucHV0c1tpXS5zdHlsZS5ib3JkZXJCb3R0b21Db2xvciA9ICJyZWQiOw0KICAgICAgcmV0dXJuOw0KICAgIH0NCiAgfQ0KDQoNCiAgZm9yICh2YXIgaSA9IDA7IGkgPCBzZWxlY3RzLmxlbmd0aDsgaSsrKSB7DQogICAgdmFyIHZhbHVlID0gc2VsZWN0c1tpXS5vcHRpb25zW3NlbGVjdHNbaV0uc2VsZWN0ZWRJbmRleF0udmFsdWU7DQogICAgaWYgKGlzTmFOKHZhbHVlKSA9PSBmYWxzZSkgew0KICAgICAgdmFsdWUgPSBwYXJzZUludCh2YWx1ZSk7DQogICAgICBkYXRhW3NlbGVjdHNbaV0ubmFtZV0gPSB2YWx1ZTsNCiAgICAgIG5ld0RhdGEgPSB0cnVlOw0KICAgICAgYnJlYWs7DQogICAgfQ0KICAgIGRhdGFbc2VsZWN0c1tpXS5uYW1lXSA9IHZhbHVlOw0KICAgIG5ld0RhdGEgPSB0cnVlOw0KICB9DQoNCg0KICAvL2NvbnNvbGUubG9nKGRhdGEsIG5ld0RhdGEpOw0KICBpZiAobmV3RGF0YSA9PSB0cnVlKSB7DQogICAgY29uZmlnID0gZGF0YQ0KICAgIGRhdGFbImNtZCJdID0gInNhdmVDb25maWciOw0KICAgIHhUZVZlKGRhdGEpOw0KICB9DQp9DQoNCmZ1bmN0aW9uIHhUZVZlKGRhdGEpIHsNCg0KICBpZiAod2ViU29ja2V0cyA9PSBmYWxzZSkgew0KICAgIGFsZXJ0KCJZb3VyIGJyb3dzZXIgZG9lcyBub3Qgc3VwcG9ydCBXZWJTb2NrZXRzIik7DQogICAgcmV0dXJuOw0KICB9DQoNCiAgaWYgKGFjdGl2ZVdpemFyZCA9PSAibTN1IiB8fCBhY3RpdmVXaXphcmQgPT0gImVwZ1NvdXJjZSIpIHsNCiAgICBzaG93TG9hZGluZ1NjcmVlbih0cnVlKTsNCiAgfQ0KDQogIHZhciBwcm90b2NvbFdTDQogIHN3aXRjaCh3aW5kb3cubG9jYXRpb24ucHJvdG9jb2wpIHsNCiAgICBjYXNlICJodHRwOiI6ICAgcHJvdG9jb2xXUyA9ICJ3czovLyI7IGJyZWFrOw0KICAgIGNhc2UgImh0dHBzOiI6ICBwcm90b2NvbFdTID0gIndzczovLyI7IGJyZWFrOw0KICB9DQoNCiAgdmFyIHdzID0gbmV3IFdlYlNvY2tldChwcm90b2NvbFdTICsgd2luZG93LmxvY2F0aW9uLmhvc3RuYW1lICsgIjoiICsgd2luZG93LmxvY2F0aW9uLnBvcnQgKyAiL2RhdGEvIiArICI/VG9rZW49IiArIGdldENvb2tpZSgiVG9rZW4iKSk7DQogIA0KICB3cy5vbm9wZW4gPSBmdW5jdGlvbigpIHsNCiAgICB3cy5zZW5kKEpTT04uc3RyaW5naWZ5KGRhdGEpKTsNCiAgfQ0KDQogIHdzLm9ubWVzc2FnZSA9IGZ1bmN0aW9uIChlKSB7DQogICAgDQogICAgdmFyIHJlc3BvbnNlID0gSlNPTi5wYXJzZShlLmRhdGEpOw0KICAgIA0KICAgIGlmIChyZXNwb25zZS5oYXNPd25Qcm9wZXJ0eSgiY2xpZW50SW5mbyIpKSB7DQogICAgICBjcmVhdGVDbGludEluZm8ocmVzcG9uc2VbImNsaWVudEluZm8iXSk7DQogICAgfQ0KDQogICAgaWYgKHJlc3BvbnNlLmhhc093blByb3BlcnR5KCJzdGF0dXMiKSkgew0KICAgICAgaWYgKHJlc3BvbnNlWyJzdGF0dXMiXSA9PSBmYWxzZSkgew0KICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiaGVhZGxpbmUiKS5zdHlsZS5ib3JkZXJDb2xvciA9ICJyZWQiOw0KICAgICAgICBzaG93RXJyKHJlc3BvbnNlWyJlcnIiXSk7DQogICAgICAgIHNob3dMb2FkaW5nU2NyZWVuKGZhbHNlKQ0KICAgICAgICByZXR1cm4NCiAgICAgIH0gZWxzZSB7DQogICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJlcnIiKS5pbm5lckhUTUwgPSAiIjsNCiAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImhlYWRsaW5lIikuc3R5bGUuYm9yZGVyQ29sb3IgPSAibGF3bmdyZWVuIjsNCiAgICAgIH0NCg0KICAgICAgZHZySVAgPSByZXNwb25zZVsiRFZSIl0NCiAgICAgIHN3aXRjaChyZXNwb25zZVsiY29uZmlndXJhdGlvbldpemFyZCJdKSB7DQogICAgICAgIGNhc2UgdHJ1ZTogDQogICAgICAgICAgaWYgKGFjdGl2ZVdpemFyZCA9PSB1bmRlZmluZWQpIHsNCiAgICAgICAgICAgIGFjdGl2ZVdpemFyZCA9IHdpemFyZFswXQ0KICAgICAgICAgIH0NCiAgICAgICAgICB2YXIgbiA9IHdpemFyZC5pbmRleE9mKGFjdGl2ZVdpemFyZCk7DQogICAgICAgICAgbisrOw0KICAgICAgICAgIGFjdGl2ZVdpemFyZCA9IHdpemFyZFtuXQ0KDQogICAgICAgICAgaWYgKGFjdGl2ZVdpemFyZCA9PSB1bmRlZmluZWQpIHsNCiAgICAgICAgICAgIGRhdGFbImNtZCJdID0gIndpemFyZENvbXBsZXRlZCI7DQogICAgICAgICAgICB4VGVWZShkYXRhKQ0KICAgICAgICAgIH0gZWxzZSB7DQogICAgICAgICAgICAvL2NvbnNvbGUubG9nKGFjdGl2ZVdpemFyZCk7DQogICAgICAgICAgICBjcmVhdGVDb25maWd1cmF0aW9uKGFjdGl2ZVdpemFyZCk7IA0KICAgICAgICAgIH0NCiAgICAgICAgICANCiAgICAgICAgYnJlYWs7DQogICAgICB9DQoNCiAgICAgIHN3aXRjaChyZXNwb25zZVsicmVsb2FkIl0pIHsNCiAgICAgICAgDQogICAgICAgIA0KICAgICAgICBjYXNlIHRydWU6IA0KICAgIA0KICAgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKXsgDQogICAgICAgICAgICBsb2NhdGlvbi5yZWxvYWQoKTsNCiAgICAgICAgICB9LCAxMDApOw0KICAgICAgICAgIA0KICAgICAgICAgIC8vbG9jYXRpb24ucmVsb2FkKCk7DQogICAgICAgICAgDQogICAgICAgICAgYnJlYWs7DQogICAgICAgIA0KICAgICAgfQ0KDQogICAgICANCiAgICB9DQoNCiAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7IHNob3dMb2FkaW5nU2NyZWVuKGZhbHNlKTsgfSwgMzAwKTsNCiAgfQ0KICANCn0NCg0KZnVuY3Rpb24gc2hvd0VycihlbG0pIHsNCiAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImVyciIpLmlubmVySFRNTCA9IGVsbTsNCn0=" + webUI["html/js/users.js"] = "ZnVuY3Rpb24gb3BlblVzZXJzKGVsbSkgew0KICBjb2xvbW5Tb3J0ID0gMDsNCg0KICB2YXIgbmV3RGl2ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNldHRpbmdzIik7DQogIA0KICB2YXIgbmV3RW50cnkgPSBuZXcgT2JqZWN0KCk7DQogIG5ld0VudHJ5WyJfZWxlbWVudCJdICA9ICJIUiI7DQogIG5ld0Rpdi5hcHBlbmRDaGlsZChjcmVhdGVFbGVtZW50KG5ld0VudHJ5KSk7DQoNCiAgdmFyIG5ld0VudHJ5ID0gbmV3IE9iamVjdCgpOw0KICBuZXdFbnRyeVsiX2VsZW1lbnQiXSAgPSAiSU5QVVQiOw0KICBuZXdFbnRyeVsidHlwZSJdID0gImJ1dHRvbiI7DQogIG5ld0VudHJ5WyJjbGFzcyJdID0gImJ1dHRvbiI7DQogIG5ld0VudHJ5WyJ2YWx1ZSJdID0gIk5ldyI7DQogIG5ld0VudHJ5WyJvbmNsaWNrIl0gPSAidXNlckRldGFpbCgwKSI7DQogIG5ld0Rpdi5hcHBlbmRDaGlsZChjcmVhdGVFbGVtZW50KG5ld0VudHJ5KSk7DQoNCiAgdmFyIGRpdiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzZXR0aW5ncyIpOw0KDQogICAvLyBCdWlsZCB0YWJsZQ0KICB2YXIgbmV3VGFibGUgPSBuZXcgT2JqZWN0KCk7DQogIG5ld1RhYmxlWyJfZWxlbWVudCJdICA9ICJUQUJMRSI7DQogIG5ld1RhYmxlWyJpZCJdICAgICAgICA9ICJpZF9tYXBwaW5nIjsNCiAgbmV3VGFibGVbImNsYXNzIl0gICAgID0gInRhYmxlLW1hcHBpbmciOw0KICBkaXYuYXBwZW5kQ2hpbGQoY3JlYXRlRWxlbWVudChuZXdUYWJsZSkpOw0KDQogIHNldFRpbWVvdXQoZnVuY3Rpb24oKXsgDQogICAgY3JlYXRlVXNlcnNUYWJsZSgpOyANCiAgfSwgMTApOw0KfQ0KDQpmdW5jdGlvbiBjcmVhdGVVc2Vyc1RhYmxlKCkgew0KICB2YXIgdGFibGUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiaWRfbWFwcGluZyIpOw0KICB0YWJsZS5pbm5lckhUTUwgPSAiIjsNCiAgdmFyIG5ld1RSID0gbmV3IE9iamVjdCgpOw0KICBuZXdUUlsiX2VsZW1lbnQiXSA9ICJUUiI7DQogIG5ld1RSWyJjbGFzcyJdICAgID0gInRhYmxlLW1hcHBpbmctaGVhZGVyIjsNCiAgdGFibGUuYXBwZW5kQ2hpbGQoY3JlYXRlRWxlbWVudChuZXdUUikpOw0KDQogIHZhciB0ciA9IHRhYmxlLmxhc3RDaGlsZDsNCiAgdmFyIHRySGVhZGxpbmVzID0gbmV3IEFycmF5KCJVc2VybmFtZSIsICJQYXNzd29yZCIsICJXRUIiLCAiUE1TIiwgIk0zVSIsICJYTUwiLCAiQVBJIikNCg0KICBmb3IgKHZhciBpID0gMDsgaSA8IHRySGVhZGxpbmVzLmxlbmd0aDsgaSsrKSB7DQogICAgdmFyIG5ld1REID0gbmV3IE9iamVjdCgpOw0KICAgIG5ld1REWyJfZWxlbWVudCJdID0gIlREIjsNCiAgICBuZXdURFsiX3RleHQiXSAgICA9IHRySGVhZGxpbmVzW2ldOw0KICAgIHRyLmFwcGVuZENoaWxkKGNyZWF0ZUVsZW1lbnQobmV3VEQpKTsNCiAgfQ0KDQoNCiAgLy8gU29ydCB1c2Vycw0KICB2YXIgdXNlcklkcyA9IGdldE9iaktleXModXNlcnMpOw0KDQogIHZhciB1c2VyT2JqID0gbmV3IE9iamVjdCgpOw0KDQogIGZvciAodmFyIGkgPSAwOyBpIDwgdXNlcklkcy5sZW5ndGg7IGkrKykgew0KICAgIHZhciB1c2VybmFtZSA9IHVzZXJzW3VzZXJJZHNbaV1dWyJkYXRhIl1bInVzZXJuYW1lIl07DQogICAgdXNlck9ialt1c2VybmFtZV0gPSB1c2VySWRzW2ldOw0KICB9DQoNCiAgdmFyIGFsbFVzZXJzID0gZ2V0T2JqS2V5cyh1c2VyT2JqKTsNCiAgYWxsVXNlcnMuc29ydCgpOw0KICAvLyAtLQ0KDQogIGZvciAodmFyIGkgPSAwOyBpIDwgYWxsVXNlcnMubGVuZ3RoOyBpKyspIHsNCiAgICB2YXIgdGFibGUgICAgID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImlkX21hcHBpbmciKTsNCiAgICB2YXIgdXNlcklEICAgID0gdXNlck9ialthbGxVc2Vyc1tpXV07DQogICAgdmFyIHVzZXJuYW1lICA9IGFsbFVzZXJzW2ldOw0KICAgIHZhciBpdGVtICAgICAgPSB1c2Vyc1t1c2VySURdWyJkYXRhIl07DQoNCiAgICAvLyBDcmVhdGUgVFINCiAgICB2YXIgbmV3VFIgPSBuZXcgT2JqZWN0KCk7DQogICAgbmV3VFJbIl9lbGVtZW50Il0gICAgICAgPSAiVFIiOw0KICAgIG5ld1RSWyJjbGFzcyJdICAgICAgICAgID0gIiI7DQogICAgbmV3VFJbImlkIl0gICAgICAgICAgICAgPSB1c2VySUQ7DQogICAgbmV3VFJbIm9uY2xpY2siXSAgICAgICAgPSAnamF2YXNjcmlwdDogdXNlckRldGFpbCgiJyArIHVzZXJJRCArICciKTsnOw0KICAgIHRhYmxlLmFwcGVuZENoaWxkKGNyZWF0ZUVsZW1lbnQobmV3VFIpKTsNCg0KICAgIHZhciB0ciA9IHRhYmxlLmxhc3RDaGlsZDsNCg0KICAgIC8vIENyZWF0ZSB1c2VybmFtZSBURA0KICAgIHZhciBuZXdURCA9IG5ldyBPYmplY3QoKTsNCiAgICBuZXdURFsiX2VsZW1lbnQiXSA9ICJQIjsNCiAgICBuZXdURFsiX3RleHQiXSAgICA9IHVzZXJuYW1lOw0KICAgIGNyZWF0ZU5ld1REKG5ld1RELCB0cik7DQoNCiAgICAvLyBDcmVhdGUgcGFzc3dvcmQgVEQNCiAgICB2YXIgbmV3VEQgPSBuZXcgT2JqZWN0KCk7DQogICAgbmV3VERbIl9lbGVtZW50Il0gPSAiUCI7DQogICAgbmV3VERbIl90ZXh0Il0gICAgPSAiLi4uLi4iOw0KICAgIGNyZWF0ZU5ld1REKG5ld1RELCB0cik7DQoNCiAgICAvLyBDcmVhdGUgd2ViIGFjY2Vzcw0KICAgIHZhciBuZXdURCA9IG5ldyBPYmplY3QoKTsNCiAgICBuZXdURFsiX2VsZW1lbnQiXSA9ICJQIjsNCiAgICBzd2l0Y2goaXRlbVsiYXV0aGVudGljYXRpb24ud2ViIl0pew0KICAgICAgY2FzZSB0cnVlOiBuZXdURFsiX3RleHQiXSAgICA9ICLinJMiOyBicmVhazsNCiAgICAgIGRlZmF1bHQ6ICAgbmV3VERbIl90ZXh0Il0gICAgPSAiLSI7IGJyZWFrOw0KICAgIH0NCiAgICBjcmVhdGVOZXdURChuZXdURCwgdHIpOw0KDQogICAgLy8gQ3JlYXRlIFBNUyBhY2Nlc3MNCiAgICB2YXIgbmV3VEQgPSBuZXcgT2JqZWN0KCk7DQogICAgbmV3VERbIl9lbGVtZW50Il0gPSAiUCI7DQogICAgc3dpdGNoKGl0ZW1bImF1dGhlbnRpY2F0aW9uLnBtcyJdKXsNCiAgICAgIGNhc2UgdHJ1ZTogbmV3VERbIl90ZXh0Il0gICAgPSAi4pyTIjsgYnJlYWs7DQogICAgICBkZWZhdWx0OiAgIG5ld1REWyJfdGV4dCJdICAgID0gIi0iOyBicmVhazsNCiAgICB9DQogICAgY3JlYXRlTmV3VEQobmV3VEQsIHRyKTsNCg0KICAgIC8vIENyZWF0ZSBNM1UgYWNjZXNzDQogICAgdmFyIG5ld1REID0gbmV3IE9iamVjdCgpOw0KICAgIG5ld1REWyJfZWxlbWVudCJdID0gIlAiOw0KICAgIHN3aXRjaChpdGVtWyJhdXRoZW50aWNhdGlvbi5tM3UiXSl7DQogICAgICBjYXNlIHRydWU6IG5ld1REWyJfdGV4dCJdICAgID0gIuKckyI7IGJyZWFrOw0KICAgICAgZGVmYXVsdDogICBuZXdURFsiX3RleHQiXSAgICA9ICItIjsgYnJlYWs7DQogICAgfQ0KICAgIGNyZWF0ZU5ld1REKG5ld1RELCB0cik7DQoNCiAgICAvLyBDcmVhdGUgWE1MVFYgYWNjZXNzDQogICAgdmFyIG5ld1REID0gbmV3IE9iamVjdCgpOw0KICAgIG5ld1REWyJfZWxlbWVudCJdID0gIlAiOw0KICAgIHN3aXRjaChpdGVtWyJhdXRoZW50aWNhdGlvbi54bWwiXSl7DQogICAgICBjYXNlIHRydWU6IG5ld1REWyJfdGV4dCJdICAgID0gIuKckyI7IGJyZWFrOw0KICAgICAgZGVmYXVsdDogICBuZXdURFsiX3RleHQiXSAgICA9ICItIjsgYnJlYWs7DQogICAgfQ0KICAgIGNyZWF0ZU5ld1REKG5ld1RELCB0cik7DQoNCiAgICAvLyBDcmVhdGUgQVBJIGFjY2Vzcw0KICAgIHZhciBuZXdURCA9IG5ldyBPYmplY3QoKTsNCiAgICBuZXdURFsiX2VsZW1lbnQiXSA9ICJQIjsNCg0KICAgIHN3aXRjaChpdGVtWyJhdXRoZW50aWNhdGlvbi5hcGkiXSl7DQogICAgICBjYXNlIHRydWU6IG5ld1REWyJfdGV4dCJdICAgID0gIuKckyI7IGJyZWFrOw0KICAgICAgZGVmYXVsdDogICBuZXdURFsiX3RleHQiXSAgICA9ICItIjsgYnJlYWs7DQogICAgfQ0KICAgIGNyZWF0ZU5ld1REKG5ld1RELCB0cik7DQoNCiAgfQ0KDQogIC8vIHVzYWdlIEluZm8gIA0KICB2YXIgZGl2ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNldHRpbmdzIik7DQogIHN3aXRjaChtZW51W2FjdGl2ZU1lbnUuaWRdLmhhc093blByb3BlcnR5KCJfdXNhZ2UiKSkgew0KICAgIGNhc2UgdHJ1ZTogDQogICAgICB2YXIgdXNhZ2VJdGVtID0gbmV3IE9iamVjdCgpOw0KICAgICAgdXNhZ2VJdGVtWyJfZWxlbWVudCJdID0gIlBSRSINCiAgICAgIHVzYWdlSXRlbVsiX3RleHQiXSAgICA9IG1lbnVbYWN0aXZlTWVudS5pZF1bIl91c2FnZSJdOw0KDQogICAgICB2YXIgbmV3SFIgPSBuZXcgT2JqZWN0KCk7DQogICAgICBuZXdIUlsiX2VsZW1lbnQiXSA9ICJIUiINCiAgICAgIGRpdi5hcHBlbmRDaGlsZChjcmVhdGVFbGVtZW50KG5ld0hSKSk7DQogICAgICBkaXYuYXBwZW5kQ2hpbGQoY3JlYXRlRWxlbWVudCh1c2FnZUl0ZW0pKTsNCiAgfQ0KDQogIHNvcnRUYWJsZSgwKTsNCn0NCg0KZnVuY3Rpb24gdXNlckRldGFpbCh1c2VySUQpIHsNCiAgc2hvd1BvcFVwRWxlbWVudCgndXNlci1kZXRhaWwnKTsNCiAgc2V0VGltZW91dChmdW5jdGlvbigpeyANCiAgICBzaG93RWxlbWVudCgicG9wdXAiLCB0cnVlKTsNCiAgfSwgMTApOw0KICB2YXIgZGVmYXVsdFVzZXI7DQoNCiAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNhdmVVc2VyRGV0YWlsIikuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IHNhdmVVc2VyRGV0YWlsKCInICsgdXNlcklEICsgJyIsIGZhbHNlKScpOw0KICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZGVsZXRlVXNlckRldGFpbCIpLnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBzYXZlVXNlckRldGFpbCgiJyArIHVzZXJJRCArICciLCB0cnVlKScpOw0KDQogIHZhciBkYXRhID0gbmV3IE9iamVjdCgpOw0KICANCiAgc3dpdGNoKHVzZXJJRCkgew0KICAgIGNhc2UgMDogICAvLyBOZXcgVXNlcg0KICAgICAgZGF0YVsidXNlcm5hbWUiXSA9ICIiOw0KICAgICAgZGF0YVsiYXV0aGVudGljYXRpb24ud2ViIl0gPSBmYWxzZTsNCiAgICAgIGRhdGFbImF1dGhlbnRpY2F0aW9uLnBtcyJdID0gdHJ1ZTsNCiAgICAgIGRhdGFbImF1dGhlbnRpY2F0aW9uLnhtbCJdID0gdHJ1ZTsNCiAgICAgIGRhdGFbImF1dGhlbnRpY2F0aW9uLm0zdSJdID0gZmFsc2U7DQogICAgICBkYXRhWyJhdXRoZW50aWNhdGlvbi5hcGkiXSA9IGZhbHNlOw0KICAgICAgZGF0YVsiZGVmYXVsdFVzZXIiXSAgICAgICAgPSBmYWxzZTsNCiAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKXsgDQogICAgICAgIHNob3dFbGVtZW50KCJkZWxldGVVc2VyRGV0YWlsIiwgZmFsc2UpDQogICAgICB9LCAxKTsNCg0KICAgICAgYnJlYWs7IA0KICAgIA0KICAgIGRlZmF1bHQ6IA0KICAgICAgZGF0YSA9IHVzZXJzW3VzZXJJRF1bImRhdGEiXTsgDQogICAgICBzaG93RWxlbWVudCgiZGVsZXRlVXNlckRldGFpbCIsIHRydWUpICAgDQogICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZGVsZXRlVXNlckRldGFpbCIpLmNsYXNzTmFtZSA9ICJkZWxldGUiOw0KICAgDQogICAgICBicmVhaw0KICB9DQogIA0KDQogIHZhciB1c2VybmFtZSA9IGRhdGFbInVzZXJuYW1lIl07DQogIGRhdGFbInBhc3N3b3JkIl0gPSAiIjsNCiAgZGF0YVsiY29uZmlybSJdID0gIiI7DQoNCiAgdmFyIGtleXMgPSBnZXRPYmpLZXlzKGRhdGEpOw0KICBkZWZhdWx0VXNlciA9IGRhdGFbImRlZmF1bHRVc2VyIl07DQogIGlmIChkYXRhLmhhc093blByb3BlcnR5KCJkZWZhdWx0VXNlciIpKSB7DQogICAgZGVmYXVsdFVzZXIgPSBKU09OLnBhcnNlKGRhdGFbImRlZmF1bHRVc2VyIl0pOw0KICB9DQoNCiAgZm9yICh2YXIgaSA9IDA7IGkgPCBrZXlzLmxlbmd0aDsgaSsrKSB7DQoNCiAgICBpZihkb2N1bWVudC5nZXRFbGVtZW50QnlJZChrZXlzW2ldKSl7DQogICAgICB2YXIgdGQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChrZXlzW2ldKQ0KICAgIH0gZWxzZSB7DQogICAgICB2YXIgdGQgPSB1bmRlZmluZWQ7DQogICAgfQ0KDQogICAgdmFyIG5ld0l0ZW0gPSBuZXcgT2JqZWN0KCk7DQoNCiAgICBuZXdJdGVtWyJfZWxlbWVudCJdID0gIklOUFVUIjsNCiAgICANCiAgICBuZXdJdGVtWyJ2YWx1ZSJdICAgID0gZGF0YVtrZXlzW2ldXTsNCiAgICBuZXdJdGVtWyJuYW1lIl0gICAgID0ga2V5c1tpXTsNCg0KDQoNCg0KDQogICAgc3dpdGNoKGtleXNbaV0uaW5kZXhPZigiYXV0aGVudGljYXRpb24iKSkgew0KICAgICAgY2FzZSAtMTogDQogICAgICAgIGlmIChrZXlzW2ldID09ICJwYXNzd29yZCIgfHwga2V5c1tpXSA9PSAiY29uZmlybSIpIHsNCiAgICAgICAgICBuZXdJdGVtWyJ0eXBlIl0gICAgID0gInBhc3N3b3JkIjsNCiAgICAgICAgfSBlbHNlIHsNCiAgICAgICAgICBuZXdJdGVtWyJ0eXBlIl0gICAgID0gInRleHQiOw0KICAgICAgICB9DQogICAgICAgIGJyZWFrOw0KDQogICAgICBkZWZhdWx0OiANCiAgICAgICAgbmV3SXRlbVsidHlwZSJdICAgICA9ICJjaGVja2JveCI7DQogICAgICAgIA0KICAgICAgICBpZiAoa2V5c1tpXSA9PSAiYXV0aGVudGljYXRpb24ud2ViIiAmJiBkZWZhdWx0VXNlciA9PSB0cnVlKSB7DQogICAgICAgICAgbmV3SXRlbVsib25jbGljayJdID0gInJldHVybiBmYWxzZSI7IA0KICAgICAgICB9DQogICAgICAgIA0KICAgICAgICBpZiAoZGF0YVtrZXlzW2ldXSA9PSB0cnVlKSB7ICAgICAgICAgIA0KICAgICAgICAgIG5ld0l0ZW1bImNoZWNrZWQiXSAgPSBkYXRhW2tleXNbaV1dOyAgDQogICAgICAgIH0NCiAgICAgICAgDQogICAgICAgIGJyZWFrOw0KICAgIH0NCg0KICAgIHN3aXRjaChrZXlzW2ldKSB7DQogICAgICBjYXNlICJkZWZhdWx0VXNlciI6IA0KICAgICAgICAvL2lmIChkYXRhW2tleXNbaV1dID09IHRydWUpIHsNCiAgICAgICAgbmV3SXRlbVsidHlwZSJdICAgICA9ICJoaWRkZW4iOw0KICAgICAgICAvL30NCiAgICB9DQoNCg0KICAgIGlmICh0ZCAhPSB1bmRlZmluZWQpIHsNCiAgICAgIHRkLmlubmVySFRNTCA9ICIiOw0KICAgICAgdmFyIGVsZW1lbnQgPSBjcmVhdGVOZXdFbGVtZW50KG5ld0l0ZW0pDQogICAgICAvL2NvbnNvbGUubG9nKGVsZW1lbnQpOw0KICAgICAgdGQuYXBwZW5kQ2hpbGQoZWxlbWVudCk7DQogICAgfQ0KDQoNCiAgfQ0KDQoNCiAgaWYgKGRlZmF1bHRVc2VyID09IHRydWUpIHsNCiAgICBzaG93RWxlbWVudCgiZGVsZXRlVXNlckRldGFpbCIsIGZhbHNlKQ0KICB9IGVsc2Ugew0KICAgIHNob3dFbGVtZW50KCJkZWxldGVVc2VyRGV0YWlsIiwgdHJ1ZSkNCiAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZGVsZXRlVXNlckRldGFpbCIpLmNsYXNzTmFtZSA9ICJkZWxldGUiOw0KICB9DQoNCn0NCg0KZnVuY3Rpb24gc2F2ZVVzZXJEZXRhaWwodXNlcklELCBkZWxldGVVc2VyKSB7DQoNCiAgdmFyIGlucHV0cyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ1c2VyLWRldGFpbC10YWJsZSIpLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJJTlBVVCIpOw0KDQogIHZhciBuZXdVc2VyRGF0YSA9IG5ldyBPYmplY3QoKTsNCiAgZm9yICh2YXIgaSA9IDA7IGkgPCBpbnB1dHMubGVuZ3RoOyBpKyspIHsNCiAgICBzd2l0Y2goaW5wdXRzW2ldLnR5cGUpIHsNCiAgICAgIGNhc2UgImNoZWNrYm94IjogIG5ld1VzZXJEYXRhW2lucHV0c1tpXS5uYW1lXSA9IGlucHV0c1tpXS5jaGVja2VkOyBicmVhazsNCiAgICAgIGRlZmF1bHQ6ICAgICAgICAgIG5ld1VzZXJEYXRhW2lucHV0c1tpXS5uYW1lXSA9IGlucHV0c1tpXS52YWx1ZTsgYnJlYWs7DQogICAgfQ0KICAgIA0KICAgIGlmIChpbnB1dHNbInVzZXJuYW1lIl0udmFsdWUubGVuZ3RoID09IDApIHsNCiAgICAgIGlucHV0c1sidXNlcm5hbWUiXS5zdHlsZS5ib3JkZXIgPSAic29saWQgMXB4IHJlZCI7DQogICAgICByZXR1cm47DQogICAgfQ0KDQogICAgc3dpdGNoKHVzZXJJRCkgew0KICAgICAgY2FzZSAiMCI6IA0KICAgICAgICBpZiAoaW5wdXRzWyJwYXNzd29yZCJdLnZhbHVlLmxlbmd0aCA9PSAwKSB7DQogICAgICAgICAgY29uc29sZS5sb2coaW5wdXRzWyJwYXNzd29yZCJdLnZhbHVlLmxlbmd0aCk7DQogICAgICAgICAgaW5wdXRzWyJwYXNzd29yZCJdLnN0eWxlLmJvcmRlciA9ICJzb2xpZCAxcHggcmVkIjsNCiAgICAgICAgICByZXR1cm4NCiAgICAgICAgfQ0KICAgICAgICBicmVhazsNCiAgICB9DQoNCiAgICBpZiAoaW5wdXRzWyJwYXNzd29yZCJdLnZhbHVlLmxlbmd0aCA+IDApIHsNCiAgICAgIGlmIChpbnB1dHNbInBhc3N3b3JkIl0udmFsdWUgIT0gaW5wdXRzWyJjb25maXJtIl0udmFsdWUpIHsNCiAgICAgICAgaW5wdXRzWyJwYXNzd29yZCJdLnN0eWxlLmJvcmRlciA9ICJzb2xpZCAxcHggcmVkIjsNCiAgICAgICAgaW5wdXRzWyJjb25maXJtIl0uc3R5bGUuYm9yZGVyID0gInNvbGlkIDFweCByZWQiOw0KICAgICAgICByZXR1cm47DQogICAgICB9DQogICAgfQ0KICAgIA0KICB9DQoNCiAgdmFyIGRhdGEgPSBuZXcgT2JqZWN0KCk7DQogIA0KICBzd2l0Y2godXNlcklEKSB7DQogICAgY2FzZSAiMCI6DQogICAgICAvL2RhdGEgPSBuZXdVc2VyRGF0YQ0KICAgICAgZGF0YVsidXNlckRhdGEiXSAgPSBuZXdVc2VyRGF0YQ0KICAgICAgZGF0YVsiY21kIl0gICAgICAgPSAic2F2ZU5ld1VzZXIiOyBicmVhazsNCiAgICANCiAgICBkZWZhdWx0OiAgDQogICAgICB2YXIgdGhpc1VzZXIgICAgICA9IG5ldyBPYmplY3QoKTsNCiAgICAgIA0KICAgICAgaWYgKGRlbGV0ZVVzZXIgPT0gdHJ1ZSkgew0KICAgICAgICBpZiAoY29uZmlybSgnRGVsZXRlIHRoZSBzZWxlY3RlZCB1c2VyPycpKSB7DQogICAgICAgICAgZGF0YVsiZGVsZXRlVXNlciJdID0gdHJ1ZTsNCiAgICAgICAgfSBlbHNlIHsNCiAgICAgICAgICBzaG93RWxlbWVudCgicG9wdXAiLCBmYWxzZSk7DQogICAgICAgICAgcmV0dXJuDQogICAgICAgIH0NCiAgICAgIH0NCiAgICAgIA0KICAgICAgdGhpc1VzZXJbdXNlcklEXSAgPSBuZXdVc2VyRGF0YTsNCg0KICAgICAgZGF0YVsidXNlckRhdGEiXSA9IHRoaXNVc2VyOw0KICAgICAgZGF0YVsiY21kIl0gPSAic2F2ZVVzZXJEYXRhIjsgYnJlYWs7DQogIH0NCiAgDQogIHhUZVZlKGRhdGEpOw0KICAvL2NyZWF0ZVVzZXJzVGFibGUoKQ0KICBzaG93RWxlbWVudCgicG9wdXAiLCBmYWxzZSk7DQp9DQoNCg0K" + webUI["html/video/stream-limit.ts"] = "R0AREABC8CUAAcEAAP8B/wAB/IAUSBIBBkZGbXBlZwlTZXJ2aWNlMDF3fEPK//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////9HQAAQAACwDQABwQAAAAHwACqxBLL//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////0dQABAAArASAAHBAADhAPAAG+EA8AAVvU1W////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////R0EAMAdQAAB7DH4AAAAB4AAAgMAKMQAJEKERAAfYYQAAAAEJ8AAAAAFnZAAorNlAeAIn5cBEAAADAAQAAAMAyDxgxlgAAAABaOvjyyLAAAABBgX//6rcRem95tlIt5Ys2CDZI+7veDI2NCAtIGNvcmUgMTUyIHIyODU0IGU5YTU5MDMgLSBILjI2NC9NUEVHLTQgQVZDIGNvZGVjIC0gQ29weWxlZnQgMjAwMy0yMDE3IC0gaHR0cDovL3dHAQARd3cudmlkZW9sYW4ub3JnL3gyNjQuaHRtbCAtIG9wdGlvbnM6IGNhYmFjPTEgcmVmPTMgZGVibG9jaz0xOjA6MCBhbmFseXNlPTB4MzoweDExMyBtZT1oZXggc3VibWU9NyBwc3k9MSBwc3lfcmQ9MS4wMDowLjAwIG1peGVkX3JlZj0xIG1lX3JhbmdlPTE2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ACqxBLL//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////0dQABEAArASAAHBAADhAPAAG+EA8AAVvU1W////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////RwEAGO10tGlFAwyE91Tzg8923ovJk1dv2xh1gVlYQFtWdZ6NSQ8vgHM7/tMfIZPsqgCU856rdBJJRMDaor/oWA7pkvSmC2aqaC5fd/mkWUPTuG8fRhGqOY1rKxLNSI3HtTQAcuVBxRM0NfMw0ky/JMJYZiCgXcNsxpxl+khr/9fKtO5Fg2VNBti92xcZimHUZDJMQTBOY6vSR9L1N2O/kJQCpdfuc9bkcUTMjH/es/lAySxvbiislkohqkpHAQAZVatwHI0t9eHCUfDyWUEtuCNyDwQFOVMtaYEQJrTrhQX0VduT86F0u0wN9ag0uPsrmX6Rid/x5S7KI1SkS+qP6cdmgSP57uiF4dG6IKsWNfGBLY09H/CFlrg73WINQkkp2diKkdEmtZetn8+ZAKzR5eXN5FebiKt6pIkNLuSofjosypEs2o6boKsfpmbtOV0idOeWDM9C8EIcn3aZwk1s2KBDvt1DlY+i2Cuvhk3XoKLT+pq/bOC5QkcBABolcOXneZXLoQw9W1PH1f/of92Ytjj8okrWijcQAKlE5l8XoTb9qrOiZnDOhqwcMlB9H9rorq041I89hChohYoSkJElcM8V+r8WYN5axD1BNyfwaHAOm4UN2/VEYOkNSfMjmx2S0WW/F2ha8Jj4fc4QgqcXr+TnnbwqLkLTValK4Qa1pcv7PIbDq6zCUfxe04guZ8xEhPQjp17/G6IB/6uq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wnibxQ/cXEblVnM47wbCN3iy4eHjYB5MoIICrSYmd8nt4V0toLs084KJlmnur5FbApYM4W79ff4oZkW88Cg8Fv8TnWhh1Hqc4UlhMbRKm2QxDgfBxar3U7BwNR6prrXXjqfR7ja3tPli+H7Jez/xcTg32QpHAQAdTa7pSSgBvmOqzz175NAFIhwE9p3d71F9jLvhaPv8q1iKopL0kizwzEWElnXWmNhfLkl/Au8KujnoKUaxVdTe+zAZm2dOkejnpNVtVj0Aw9wKcG3ZQ1iRZrUFRIoPKYlmR+oi0LrupuhYABtgPbdCbDtezGTr0nw9wVd/rZ6V+1wcoJ6+8VAVueIdwI3brqm6EoFHiI8L6lER+9SefB8fHo4NYgr/I8jSxaa/2PLX2K/DjrlY6bN8fEcBAB7DXsuh8DITF6CYWj2HTFvqfzlic3QHXnHtvsTFNpyVY1LY8y/fRK2mwALN6IB5W3OuyoKiA3K0lJdQUv2gYhHWvPTV218HYrD0rkbMxRH0SiEEkrHDeOt5T1HtWD13D2/QvMu535fsfZyeaFDjdCE9M0Xi8Lfc7Xj1ZNGend7Jo7/cEiczFkc1vB4z2JpFGZreV2EdquyEzC2STFJtfimyx8QlLngEuR1cxH+lWEcFX+mvBa/eqktIRwEAH6VazFLPNsnHZqsI66TVoArQuUUGFAzr8MT8GZ9V6qpZa5D0jA/4eGi6Kq0smUgRExnqIbSMLWqDf/Pk2YT3MpHTu9VE3Dn9blgB6KsVIkWnB98Y2n/6DrZDcF94Ndu0Ka4U/RZwdV5O5KcO+lU2ZiIOYTYZ6Ie0d+tApxYxJ+YmxaDoCyRNe6crw/yzR5SflT8ddi/E2BM+l+nwVDiKZ/714fmrBxFKWuqLiQNHV19o1cZ8Ubun+ZtHQAASAACwDQABwQAAAAHwACqxBLL//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////0dQABIAArASAAHBAADhAPAAG+EA8AAVvU1W////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////RwEAEH1s3BdtHdF1ln55B24wdACF/ggcRtPmB4IUB6cZJ+m32I4R48ZkdhAFBulgWcsv0wZwH0o1yi3i4qm3rJ98AUKdB9PsNyG9gURV0bTw4myAj6g5Dgodfv6w9bsbOxsGUWkvgAJ3rrR010BvZbIa6CMRCQRjxkCfRF77ansRJZT0JzhtYeSS/ZJob8Rr2jrng3W2rkmHtE+rdqlPiHxmwkRZvYGhBxwiJO2L6f+l/cABsfs09rA+A0pHAQAREZay3TBUIAfMWhApE+LaPgeyOYtaPFONA9aC0h4QrFkaLZfb86678MK+zLgqDBsDoj50eZHMVcczRjs4sYlv7RG8RIWKb5lB9Kn/8+CkxiiA11cHH1yzLX2SKCmhsak/+P/zYQ1EDvEj33bl9e3Jd62cTI+Qw99KrsWnUMN8hFNeXzoGHA3aec+Li4NFboF8sa6lCPR6Csxsvxw8DJaWCnER5Z0p+nKhXavF/eNHQ0DX47ohycc87UcBABKsYHCHXXe3vK1cFYDWO6rhwM6hxCdJ+/X+VB1akQejL6iBMdUPuadUqBnbprwJM0dWpSSn9uuZZeqe46iZOGIJUo69d8x+ZSvPcBH/dK1Y0LJnoWdgWH51SQg7eYqcwjQW3BOy7ZF02Hn1EhTuhsN7ms8zv3WIeEBDBq0T3Idl+Tmw9iJU9skVYiwygHG2+0XwrLa6y+uiQPwMzrnEr1kuf24XoAqrJTZQiVH3aQF4d94yDreWu2KPRwEAE2FsynHZaUcBXEFbeX0nSxZ7sRcRjJvc7RYOny6N8QFwKDVO7jpRWWYM55kuepBOyZ+7BFYeG+FU1kR+ZfmqyDNkD4D1IPwNh6u9JQxDymfN/aMcQC3WxdvCKquPsAut6dugpGkOFtIe+W3ayc4V/J978P+h1EDFMbFjxRPuXht0K2dBQZCJ0ybISUDqWzhPuep8CdxSU4MvMVfdXh7FLl/BqKJUTT+vM+Pz3XnqCQQmH5TjQ4CK55VHAQAUEtgfkBwIYgtwHkhjmtLw7HNTeJeMfTjATEKcyuKzItSeYxHBmGzQ/+G2otpPCOkVAXJ9mfx7LxrW4joZ0ttTRQJ/wqMUK1IN349LiJoo8y/+FwN4jPNDwIleJG697riqnmLOweFW8spHKLBfnHcyC1pG6EIxFpTqUQ0KHqXD/KXIHKioJNAOVwQ1Gfloxebo/Tdtd00dpHP3gcsAOnV75APCYOjVIlwm2X6ViDeZw6Btdb/Br/+yokcBABU3+eOESLlneGbR5SLiL8wPkoRaZ5X7xFlMTMvsv9yHk26bVdmsubSdbYS1Hy64n0+NnL7C1aLD7aJxOudMjVW5goZbfO2KxBQkCD4HFA284wbaB5vOL7mRilCn6YEs1kiwf22+fBLNUmXDb2p353wrD/ygTDhlki66USvUmd/ZAs9uzAddegEzy7Xn00YysWTu/hegYyZtWFC+X5dhLubWJ7n96y5wjrP7PAOXoQQtFUH9j/rBiP/7RwEAFnL/wYKYuj80mPGtimSbF/E9K7XwjwBz8yHZubmVMTCmwkZBM4h0FR1thnUGiSjqjJT6SfunWCZ/dZDQplrzS00UKcUP399SyM+nNG1br8Za0ZYwWch8nyLHYXSRuxdnrfUUespsOQo1cWSLGf0pV2HIcHoiAAEKwPU6irB5BSoFvB1qKVjgEk+QwAEYAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAABHAQA3pAD/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////AwAAAwAAAwAAAwAAAwAAAwBbwUdBABgAAAHgAACAwAoxAAmBIREAB/SBAAAAAQnwAAAAAUGaJGxDv/6plgAAAwAAAwAAAwAAAwAAAwAAAwAAAwAKCKB0AIhy1ftwLNISWucTFC7xeBcaIzP3oZjZo8uT9hqZVstWGnrPz+vjaA5FuCO+K2w7/o39LygDO7aL+0zSrN90LW7r133x8+f+PEKk8d7pd2fj4RYuMOXOYunzFzRX/4IvR1XsK5WJYwVkOca3yfo7DTvUBP9rgSiTRwEAGQD6CFK1PBC4qYCa+coLVnX+jgODNrau5YJXIekDI4+wUNV+5T5HE4e2t5EGAjn77+kC1Vghmvx8KqPnylVUvsaTofheggxHsPuxn1zQt6nA59UglrRUMn8b4pmrvfqTBSqU949+AcNAI6M/eAqz6r0RG5KNeBhx8R2f0x2kujwHU3pc3rlPb6ZrFM/2HiG97eEIezrvWFG7YAAAAwAAAwAE1KRo1VfbdZQ/tOpNGxFmTcQoFidyD2tHAQAapTTIErUKA2Rc9uIzGJu+oW0uNOxRyl6oJNUNJp5L9TIshNS1CmUKgdCaE3LkLwdE8iUkUnIGfWLiWpWmjzsINYC8dnDaSptB53yJkBu0SsR00oo1PZ0pl4ZzoXGSYQJTPaVCbj6FNqm5wcnUqKTB/rgHdPdnDj0K8asLABeo/n3XCXrDorI+LYSD1FBgmV9O7RZdjfL0NnXOQkiq/ZGirwVV0cUF1aHtZx1yHlAAZKuuu7TqB13CAUcBADuRAP///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////yj/IrOvAEoXDNGy+nrxWN0l8cmuqWYaUJpuM9XgAAADAAADAAKmR0EAPAcQAACJHH4AAAAB4AAAgMAKMQAJSOERAAkQoQAAAAEJ8AAAAAFBnkJ4hf8AAAMAAAMAAAMAAAMAAAMAAAMAAAMAC/BmhyuvLmkCgKTgACEXfOVvHRHdpBEEmTTz9pIZCa2FD0CXukzDCakOHekTpJQSdsfd7a/jjM1/5lBtKCAGQ6zOCSQ6DeKtyw+CugDuuglGipwmvQW+FIDjnZ6HRd0uaSOGy6VB3h9MI1o4nqaCqVwwIgubYZFHAQA9XgD////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////WcZrO6BEiqf8pCxYwlz2mkdUzY/ipM/TIHS4m5xQAAAMAAAMAAA5sVm90p14dlvWgBgY7XQ9KVOJKLtaMAN5KiffVQtNuzW5DfL+RewZpAAADAAADAAAQMUdBAB4AAAHgAACAgAUhAAkswQAAAAEJ8AAAAAEBnmF0Qr8AAAMAAAMAAAMAAAMAAAMAAAMAAAMAABJfBjP2+4+W7ZybyT130+Ma4WSqICfd/dS4YtjrLlmh5VBlfrtwJqdN1PBTYDkwGOOONqZQeFN6lLGJoDzvuh3kv1aDBLqug+JhvrSeu5ebnvcrtQzb2REwJL3h9mvtkr0WfDu4AAADAAADAAs32Y4C/6Ns79oCGj6oqLltY3T4I0/QRwEAP5wA//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////8BeoWLRnKQmVgO/RBoBfcK85AAAAMAAAMACFhHQQAwBxAAAJcsfgAAAAHgAACAwAoxAAllAREACUjhAAAAAQnwAAAAAQGeY2pCvwAAAwAAAwAAAwAAAwAAAwAAAwAAAwAAEmDKfLGXsvBBQPNYXlEd6WueJ4deApfcHESlG+7V6u0AiWQqJvNZYM+3Js3Lj9Ldc9yYIHqruVwfMtCYGlX3wMavI/DrhMuJw+RreIF8SKsJD8CMccAAAAMAAAMACrFZOBgEqaP/8EyWsAHV6CgcAgfyox/roEcBADGuAP//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////AAADAAADAHTBR0EAEgAAAeAAAIDACjEACfGhEQAJZQEAAAABCfAAAAABQZpoSahBaJlMCHf//qmWAAADAAADAAADAAADAAADAAADAAADAAALf8A2bry6lUyIAQGNFfVK2Cd7h4qDqmqpvmXfkfTwo2Ab79AHhajxJ4MPWIgAAA84xLRIx7I2CrWjWe96OvgkzgS9mtvhuxdzAgpuIOJI3DEY9mviDDZz8XSAAAADAAADAB7AZkj9AAHHGvk+Pzlku8UkWa5HAQAzogD//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////6HjAkbF/gsWuvw4QAAAAwAAAwAccUdBADQHEAAApTx+AAAAAeAAAIDACjEACblhEQAJgSEAAAABCfAAAAABQZ6GRREsL/8AAAMAAAMAAAMAAAMAAAMAAAMAAAMAAA3URJB/3lMHSmOd0GYZnfpoR80WdqxlyHzPX+V81VUMeXIGrRgq5agd+ACdjoGI036yQ/rmpGw0CmMBrKwpI+nwFo3SP0s1rI2yHBZaiPJjSUgw33rBkxXcq55kfLf2sAAAAwAAAwACBWolidWDnIeQAAADRwEANbEA//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////8AAAMADulHQQA2NAD///////////////////////////////////////////////////////////////////8AAAHgAACAgAUhAAmdQQAAAAEJ8AAAAAEBnqV0Qr8AAAMAAAMAAAMAAAMAAAMAAAMAAAMAABJXNihCnx11JUosH2hBE53O/YN+GPHqcnJiQBIf3maTAAj5iRt+7GYUKBAU9iCXTiouCjGYgAAAAwAAAwA9p4HQBg2cAAADAAADAADGgUdBADc4EAAAs0x+AP////////////////////////////////////////////////////////////////8AAAHgAACAwAoxAAnVgREACblhAAAAAQnwAAAAAQGep2pCvwAAAwAAAwAAAwAAAwAAAwAAAwAAAwAAAwBR6/L83y+ZevtMZ0FW4lp8qV7fVXQAhLAWlS6mDxvpaSUgChorvgTMXtxJEIAAAAMAAAMACqFCAAADAAADAAADAAz4R0EAOCsA////////////////////////////////////////////////////////AAAB4AAAgMAKMQALYiERAAnVgQAAAAEJ8AAAAAFBmqxJqEFsmUwId//+qZYAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAApQTq0hABLvkcWCYrAaRRPNDrECJGlF/11BYvG9+JJ9Y86nxnmQzPxtAAe1UgOsXAAADAAADAAADAAADAAADAAADAAADA/JHQQA5JhAAAMFcfgD/////////////////////////////////////////AAAB4AAAgMAKMQALKeERAAnxoQAAAAEJ8AAAAAFBnspFFSwv/wAAAwAAAwAAAwAAAwAAAwAAAwAAAwAADdRFmvrVE0KXDOGwWddlwYa1foib7tXZKmkua6R4APb4b8+tXwdSNNqgf2IVNwGTohgQAcMvp6SiQxpiQym4AAADAAADAANUNUAAAAMAAAMAAAMBN0dBADo8AP//////////////////////////////////////////////////////////////////////////////AAAB4AAAgIAFIQALDcEAAAABCfAAAAABAZ7pdEK/AAADAAADAAADAAADAAADAAADAAADAAADAFHTAfujIUaaLSuklb9y0/so9AEtQAqkAxOviALQZ5jNt/iOkABrCOZ4md0iUnFwAAADAAADAALwckAAAAMAAAMAAATcR0EAO0IQAADPbH4A//////////////////////////////////////////////////////////////////////////////8AAAHgAACAwAoxAAtGAREACynhAAAAAQnwAAAAAQGe62pCvwAAAwAAAwAAAwAAAwAAAwAAAwAAAwAAAwBR6/L83y+WryR9gmVKPGbIhJpkgAFgHCej3gB6rAHPgHHAAAADAAADAAAYIV0AAAMAAAMAAAMABnxHQQA8UQD//////////////////////////////////////////////////////////////////////////////////////////////////////////wAAAeAAAIDACjEAC9KhEQALRgEAAAABCfAAAAABQZrwSahBbJlMCG///qeEAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAAZ8UdBAD00EAAA3Xx+AP///////////////////////////////////////////////////////////wAAAeAAAIDACjEAC5phEQALYiEAAAABCfAAAAABQZ8ORRUsL/8AAAMAAAMAAAMAAAMAAAMAAAMAAAMAAA3URZr61RNClwzhI2ZXdRHYLZWc1yTgKRhTIXBNABHQKIIyYNyc+AaEn1jhATEAAAMAAAMAAAMAckkIAAADAAADAAADAEbBR0EAPkYA////////////////////////////////////////////////////////////////////////////////////////////AAAB4AAAgIAFIQALfkEAAAABCfAAAAABAZ8tdEK/AAADAAADAAADAAADAAADAAADAAADAAADAFHTAfujIUAYRtY0f/43cIs2OjxACR2hMR1QBGYX+34JGAAAAwAAAwAAAwKEJ6AAAAMAAAMAAAMA3oFHQQA/QhAAAOuMfgD//////////////////////////////////////////////////////////////////////////////wAAAeAAAIDACjEAC7aBEQALmmEAAAABCfAAAAABAZ8vakK/AAADAAADAAADAAADAAADAAADAAADAAADAFHr8vzfL5avJH2CZUo8ZsiEmmSAAWAcJ6PeAHqsAc+AccAAAAMAAAMAABghXQAAAwAAAwAAAwAGfEdBADBRAP//////////////////////////////////////////////////////////////////////////////////////////////////////////AAAB4AAAgMAKMQANQyERAAu2gQAAAAEJ8AAAAAFBmzRJqEFsmUwIZ//+nhAAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAGVAR0EAMTQQAAD5nH4A////////////////////////////////////////////////////////////AAAB4AAAgMAKMQANCuERAAvSoQAAAAEJ8AAAAAFBn1JFFSwv/wAAAwAAAwAAAwAAAwAAAwAAAwAAAwAADdRFmvrVE0KXDOEjZld1EdgtlZzXJOApGFMhcE0AEdAogjJg3Jz4BoSfWOEBMQAAAwAAAwAAAwBySQgAAAMAAAMAAAMARsFHQQAyRgD///////////////////////////////////////////////////////////////////////////////////////////8AAAHgAACAgAUhAAvuwQAAAAEJ8AAAAAEBn3F0Qr8AAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAUdMB+6MhQBhG1jR//jdwizY6PEAJHaExHVAEZhf7fgkYAAADAAADAAADAoQnoAAAAwAAAwAAAwDegEdBADNCEAABB6x+AP//////////////////////////////////////////////////////////////////////////////AAAB4AAAgMAKMQANJwERAA0K4QAAAAEJ8AAAAAEBn3NqQr8AAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAUevy/N8vlq8kfYJlSjxmyISaZIABYBwno94AeqwBz4BxwAAAAwAAAwAAGCFdAAADAAADAAADAAZ8R0EANFIA////////////////////////////////////////////////////////////////////////////////////////////////////////////AAAB4AAAgMAKMQANs6ERAA0nAQAAAAEJ8AAAAAFBm3hJqEFsmUwIV//+OEAAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAYtHQQA1NBAAARW8fgD///////////////////////////////////////////////////////////8AAAHgAACAwAoxAA17YREADUMhAAAAAQnwAAAAAUGflkUVLC//AAADAAADAAADAAADAAADAAADAAADAAAN1EWa+tUTQpcM4SNmV3UR2C2VnNck4CkYUyFwTQAR0CiCMmDcnPgGhJ9Y4QExAAADAAADAAADAHJJCAAAAwAAAwAAAwBGwEdBADZGAP///////////////////////////////////////////////////////////////////////////////////////////wAAAeAAAICABSEADV9BAAAAAQnwAAAAAQGftXRCvwAAAwAAAwAAAwAAAwAAAwAAAwAAAwAAAwBR0wH7oyFAGEbWNH/+N3CLNjo8QAkdoTEdUARmF/t+CRgAAAMAAAMAAAMChCegAAADAAADAAADAN6BR0EAN0IQAAEjzH4A//////////////////////////////////////////////////////////////////////////////8AAAHgAACAwAoxAA2XgREADXthAAAAAQnwAAAAAQGft2pCvwAAAwAAAwAAAwAAAwAAAwAAAwAAAwAAAwBR6/L83y+WryR9gmVKPGbIhJpkgAFgHCej3gB6rAHPgHHAAAADAAADAAAYIV0AAAMAAAMAAAMABn0=" + webUI["html/img/BC-QR.jpg"] = "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" + webUI["html/img/settings.png"] = "iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAAAXNSR0IArs4c6QAAAAlwSFlzAAAsSwAALEsBpT2WqQAABCRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IlhNUCBDb3JlIDUuNC4wIj4KICAgPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIgogICAgICAgICAgICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgICAgICAgICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyI+CiAgICAgICAgIDx0aWZmOlJlc29sdXRpb25Vbml0PjI8L3RpZmY6UmVzb2x1dGlvblVuaXQ+CiAgICAgICAgIDx0aWZmOkNvbXByZXNzaW9uPjU8L3RpZmY6Q29tcHJlc3Npb24+CiAgICAgICAgIDx0aWZmOlhSZXNvbHV0aW9uPjI4ODwvdGlmZjpYUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6T3JpZW50YXRpb24+MTwvdGlmZjpPcmllbnRhdGlvbj4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+Mjg4PC90aWZmOllSZXNvbHV0aW9uPgogICAgICAgICA8ZXhpZjpQaXhlbFhEaW1lbnNpb24+NTA8L2V4aWY6UGl4ZWxYRGltZW5zaW9uPgogICAgICAgICA8ZXhpZjpDb2xvclNwYWNlPjE8L2V4aWY6Q29sb3JTcGFjZT4KICAgICAgICAgPGV4aWY6UGl4ZWxZRGltZW5zaW9uPjUwPC9leGlmOlBpeGVsWURpbWVuc2lvbj4KICAgICAgICAgPGRjOnN1YmplY3Q+CiAgICAgICAgICAgIDxyZGY6QmFnLz4KICAgICAgICAgPC9kYzpzdWJqZWN0PgogICAgICAgICA8eG1wOk1vZGlmeURhdGU+MjAxOC0wOC0xMFQxODowODo4OTwveG1wOk1vZGlmeURhdGU+CiAgICAgICAgIDx4bXA6Q3JlYXRvclRvb2w+UGl4ZWxtYXRvciAzLjM8L3htcDpDcmVhdG9yVG9vbD4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgIDwvcmRmOlJERj4KPC94OnhtcG1ldGE+Ckxt87EAAAS7SURBVGgFzZpdiFVVGIbn5N+IMgVhaRLqWI7mQIJoIVRgOhQZNDAhWcbcVuPV3BRE6I14440iQQSaN0p6kz8zI0k5inUhZSSaYOVYODMo5eiMOOPf+LzH2cPMPmvttdbe53jOBy9rr2+938/ae51vr733qaoqgQwPD68B/wDJfXAP3AE94JMShCy+SxJ9CvSDJFlU7MiPFdsh/hrBdIffBsd48HApJjLPI4tnPThBlFJMZI5HBuWZCIt9AmgEzeAJR6JzHeMadnKI8wbYCz4Fkz18JlNwMgf8BCL5j4O3bVaMdUfEhPZqgv1U7HbEbDvoT7HZOPUYNwAlHheV09a4A3RTgMqtj9QY7JdgeM5i3I4+fDIYrQeq/UnyNYOTlBDtS+BwEjk2doz+KyO2OY5bwVCME+/qylTHT4C1D3k+uB33Yul3ov/eMuajlu1RH+II5wtT4hNNSnQ6U/kzbRkfq351bCfF8apAm7kmvq38njWRK0S305SHcSK5XO4U5O9MBmXWbSe3E6YccialdKzH2TTnQEF10XgZ5DdivsxEhkyxjVdERAwu03xmMiqD7hYx19km4cyHq6KyeHKkWpSz+ciVrHVpRYZk/wLHp0H2bULkNKzt4Eq86TKxLq3IECf6nXwV9QPbAfjHQSfoD7SN6L63gYhvbrkiTwKf/dPYpbdPVxKMnigdg0VAG8FQye8AzBl6aIk2A+wPiNoHd63LNZx3wbUAvz/CfTzJb/43AmkGpLfAi0DPE/NALQgtve+xFPdi5xRiNkHa5ySOJ/TR7RrBJdqL4AAxL+p+8ToYAFklNCnF3pM1KPba2L6v8vons5oPsko9ZyZoa0PsOoKezxoY+y5N5DYHWSvDTXzUMJH7IUkRW0tbyyV0CcfDDKmqDMe1KfqnQyehGNgo9q8p4hWYFGsiBY4fsSK/BRkkaPgj5PhMy720BnVFesfnlKo3Das0bw8XYJf196GEuzWRLSDoRypLg2w06FyqTS6Cx7iK1eeqGqrnugmuBgvB8+A5UAuqQYiU+oZ4h2T+BV3gAlDp/pai0U1rFpVGMAv8AHzFd4vShMOQLcoB+DNB/sSbM3ZoMV4BQsW0adSJSbNp1Hu1mY40/YZxpPdJaUSfFzrBMXAjjQNsdvll6cHCWVvKJIphdhcny11pqmolCk5aIDif0BKdZBucgPlO8kh/r8O4HtwClSCbk86HtQqQuUrvKVCf5OARjt0lll4H/WKKmbS0tmJQKZNQ7nq9+w0n2LhTN04E8jKMPpZ1hcli8tGTZYEYJwJrZQGzchTGz3a2ifwdkHc73LYAfpx6DcWXQK1LeiDsdpFGx7UOwUGQJKpmGyIjjvWh50iSQWzsZ/ofgvx+jnYp+B/YpJcB7QXDBKPJ4JDF6+/oCwoBuhoL36R+Jp4RJH16u2IgaxJpHhMehsBY3wTjV2YbOuuumLHrwCW6msbSj74O/DHGgV4Ohl8Jw1nSMmsB+tL6Wnw83odzBrhEr2GtgvFE8A74ADxtJZZygMC25cjQqBwqdg62qpUlziUP45Cq6OGuqqoUE/FJ8i+v7MpJYvEsHl1A5gNty2vLmaN3bBLdAvqB3svqXxLRvyEuc9zs7SiA+ACpw05pJx8SoAAAAABJRU5ErkJggg==" + webUI["html/js/settings_ts.js"] = "Y2xhc3MgU2V0dGluZ3NDYXRlZ29yeSB7DQogICAgY29uc3RydWN0b3IoKSB7DQogICAgICAgIHRoaXMuRG9jdW1lbnRJRCA9ICJjb250ZW50X3NldHRpbmdzIjsNCiAgICB9DQogICAgY3JlYXRlQ2F0ZWdvcnlIZWFkbGluZSh2YWx1ZSkgew0KICAgICAgICB2YXIgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIkg0Iik7DQogICAgICAgIGVsZW1lbnQuaW5uZXJIVE1MID0gdmFsdWU7DQogICAgICAgIHJldHVybiBlbGVtZW50Ow0KICAgIH0NCiAgICBjcmVhdGVIUigpIHsNCiAgICAgICAgdmFyIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJIUiIpOw0KICAgICAgICByZXR1cm4gZWxlbWVudDsNCiAgICB9DQogICAgY3JlYXRlU2V0dGluZ3Moc2V0dGluZ3NLZXkpIHsNCiAgICAgICAgdmFyIHNldHRpbmcgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJUUiIpOw0KICAgICAgICB2YXIgY29udGVudCA9IG5ldyBQb3B1cENvbnRlbnQoKTsNCiAgICAgICAgdmFyIGRhdGEgPSBTRVJWRVJbInNldHRpbmdzIl1bc2V0dGluZ3NLZXldOw0KICAgICAgICBzd2l0Y2ggKHNldHRpbmdzS2V5KSB7DQogICAgICAgICAgICAvLyBUZXh0ZWluZ2FiZW4NCiAgICAgICAgICAgIGNhc2UgInVwZGF0ZSI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy51cGRhdGUudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCAidXBkYXRlIiwgZGF0YS50b1N0cmluZygpKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnNldHRpbmdzLnVwZGF0ZS5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiYmFja3VwLnBhdGgiOg0KICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MuYmFja3VwUGF0aC50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsICJiYWNrdXAucGF0aCIsIGRhdGEpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3suc2V0dGluZ3MuYmFja3VwUGF0aC5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAidGVtcC5wYXRoIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLnRlbXBQYXRoLnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgInRlbXAucGF0aCIsIGRhdGEpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3suc2V0dGluZ3MudG1wUGF0aC5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAidXNlci5hZ2VudCI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy51c2VyQWdlbnQudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCAidXNlci5hZ2VudCIsIGRhdGEpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3suc2V0dGluZ3MudXNlckFnZW50LnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJidWZmZXIudGltZW91dCI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5idWZmZXJUaW1lb3V0LnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgImJ1ZmZlci50aW1lb3V0IiwgZGF0YSk7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5zZXR0aW5ncy5idWZmZXJUaW1lb3V0LnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJmZm1wZWcucGF0aCI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5mZm1wZWdQYXRoLnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgImZmbXBlZy5wYXRoIiwgZGF0YSk7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5zZXR0aW5ncy5mZm1wZWdQYXRoLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJmZm1wZWcub3B0aW9ucyI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5mZm1wZWdPcHRpb25zLnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgImZmbXBlZy5vcHRpb25zIiwgZGF0YSk7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5zZXR0aW5ncy5mZm1wZWdPcHRpb25zLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ2bGMucGF0aCI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy52bGNQYXRoLnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgInZsYy5wYXRoIiwgZGF0YSk7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5zZXR0aW5ncy52bGNQYXRoLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ2bGMub3B0aW9ucyI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy52bGNPcHRpb25zLnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgInZsYy5vcHRpb25zIiwgZGF0YSk7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5zZXR0aW5ncy52bGNPcHRpb25zLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAvLyBDaGVja2JveGVuDQogICAgICAgICAgICBjYXNlICJhdXRoZW50aWNhdGlvbi53ZWIiOg0KICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MuYXV0aGVudGljYXRpb25XRUIudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goc2V0dGluZ3NLZXkpOw0KICAgICAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImF1dGhlbnRpY2F0aW9uLnBtcyI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5hdXRoZW50aWNhdGlvblBNUy50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChzZXR0aW5nc0tleSk7DQogICAgICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGE7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiYXV0aGVudGljYXRpb24ubTN1IjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmF1dGhlbnRpY2F0aW9uTTNVLnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KHNldHRpbmdzS2V5KTsNCiAgICAgICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJhdXRoZW50aWNhdGlvbi54bWwiOg0KICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MuYXV0aGVudGljYXRpb25YTUwudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goc2V0dGluZ3NLZXkpOw0KICAgICAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImF1dGhlbnRpY2F0aW9uLmFwaSI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5hdXRoZW50aWNhdGlvbkFQSS50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChzZXR0aW5nc0tleSk7DQogICAgICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGE7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiZmlsZXMudXBkYXRlIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmZpbGVzVXBkYXRlLnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KHNldHRpbmdzS2V5KTsNCiAgICAgICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJjYWNoZS5pbWFnZXMiOg0KICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MuY2FjaGVJbWFnZXMudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goc2V0dGluZ3NLZXkpOw0KICAgICAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInhlcGcucmVwbGFjZS5taXNzaW5nLmltYWdlcyI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5yZXBsYWNlRW1wdHlJbWFnZXMudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goc2V0dGluZ3NLZXkpOw0KICAgICAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInh0ZXZlQXV0b1VwZGF0ZSI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy54dGV2ZUF1dG9VcGRhdGUudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goc2V0dGluZ3NLZXkpOw0KICAgICAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImFwaSI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5hcGkudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goc2V0dGluZ3NLZXkpOw0KICAgICAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIC8vIFNlbGVjdA0KICAgICAgICAgICAgY2FzZSAidHVuZXIiOg0KICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MudHVuZXIudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciB0ZXh0ID0gbmV3IEFycmF5KCk7DQogICAgICAgICAgICAgICAgdmFyIHZhbHVlcyA9IG5ldyBBcnJheSgpOw0KICAgICAgICAgICAgICAgIGZvciAodmFyIGkgPSAxOyBpIDw9IDEwMDsgaSsrKSB7DQogICAgICAgICAgICAgICAgICAgIHRleHQucHVzaChpKTsNCiAgICAgICAgICAgICAgICAgICAgdmFsdWVzLnB1c2goaSk7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIHZhciBzZWxlY3QgPSBjb250ZW50LmNyZWF0ZVNlbGVjdCh0ZXh0LCB2YWx1ZXMsIGRhdGEsIHNldHRpbmdzS2V5KTsNCiAgICAgICAgICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQoc2VsZWN0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImVwZ1NvdXJjZSI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5lcGdTb3VyY2UudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciB0ZXh0ID0gWyJQTVMiLCAiWEVQRyJdOw0KICAgICAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBbIlBNUyIsICJYRVBHIl07DQogICAgICAgICAgICAgICAgdmFyIHNlbGVjdCA9IGNvbnRlbnQuY3JlYXRlU2VsZWN0KHRleHQsIHZhbHVlcywgZGF0YSwgc2V0dGluZ3NLZXkpOw0KICAgICAgICAgICAgICAgIHNlbGVjdC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChzZWxlY3QpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiYmFja3VwLmtlZXAiOg0KICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MuYmFja3VwS2VlcC50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIHRleHQgPSBbIjUiLCAiMTAiLCAiMjAiLCAiMzAiLCAiNDAiLCAiNTAiXTsNCiAgICAgICAgICAgICAgICB2YXIgdmFsdWVzID0gWyI1IiwgIjEwIiwgIjIwIiwgIjMwIiwgIjQwIiwgIjUwIl07DQogICAgICAgICAgICAgICAgdmFyIHNlbGVjdCA9IGNvbnRlbnQuY3JlYXRlU2VsZWN0KHRleHQsIHZhbHVlcywgZGF0YSwgc2V0dGluZ3NLZXkpOw0KICAgICAgICAgICAgICAgIHNlbGVjdC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChzZWxlY3QpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiYnVmZmVyLnNpemUua2IiOg0KICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MuYnVmZmVyU2l6ZS50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIHRleHQgPSBbIjAuNSBNQiIsICIxIE1CIiwgIjIgTUIiLCAiMyBNQiIsICI0IE1CIiwgIjUgTUIiLCAiNiBNQiIsICI3IE1CIiwgIjggTUIiXTsNCiAgICAgICAgICAgICAgICB2YXIgdmFsdWVzID0gWyI1MTIiLCAiMTAyNCIsICIyMDQ4IiwgIjMwNzIiLCAiNDA5NiIsICI1MTIwIiwgIjYxNDQiLCAiNzE2OCIsICI4MTkyIl07DQogICAgICAgICAgICAgICAgdmFyIHNlbGVjdCA9IGNvbnRlbnQuY3JlYXRlU2VsZWN0KHRleHQsIHZhbHVlcywgZGF0YSwgc2V0dGluZ3NLZXkpOw0KICAgICAgICAgICAgICAgIHNlbGVjdC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChzZWxlY3QpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiYnVmZmVyIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLnN0cmVhbUJ1ZmZlcmluZy50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIHRleHQgPSBbInt7LnNldHRpbmdzLnN0cmVhbUJ1ZmZlcmluZy5pbmZvX2ZhbHNlfX0iLCAieFRlVmU6ICh7ey5zZXR0aW5ncy5zdHJlYW1CdWZmZXJpbmcuaW5mb194dGV2ZX19KSIsICJGRm1wZWc6ICh7ey5zZXR0aW5ncy5zdHJlYW1CdWZmZXJpbmcuaW5mb19mZm1wZWd9fSkiLCAiVkxDOiAoe3suc2V0dGluZ3Muc3RyZWFtQnVmZmVyaW5nLmluZm9fdmxjfX0pIl07DQogICAgICAgICAgICAgICAgdmFyIHZhbHVlcyA9IFsiLSIsICJ4dGV2ZSIsICJmZm1wZWciLCAidmxjIl07DQogICAgICAgICAgICAgICAgdmFyIHNlbGVjdCA9IGNvbnRlbnQuY3JlYXRlU2VsZWN0KHRleHQsIHZhbHVlcywgZGF0YSwgc2V0dGluZ3NLZXkpOw0KICAgICAgICAgICAgICAgIHNlbGVjdC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChzZWxlY3QpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAidWRweHkiOg0KICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MudWRweHkudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCAidWRweHkiLCBkYXRhKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnNldHRpbmdzLnVkcHh5LnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIH0NCiAgICAgICAgcmV0dXJuIHNldHRpbmc7DQogICAgfQ0KICAgIGNyZWF0ZURlc2NyaXB0aW9uKHNldHRpbmdzS2V5KSB7DQogICAgICAgIHZhciBkZXNjcmlwdGlvbiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlRSIik7DQogICAgICAgIHZhciB0ZXh0Ow0KICAgICAgICBzd2l0Y2ggKHNldHRpbmdzS2V5KSB7DQogICAgICAgICAgICBjYXNlICJhdXRoZW50aWNhdGlvbi53ZWIiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MuYXV0aGVudGljYXRpb25XRUIuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJhdXRoZW50aWNhdGlvbi5tM3UiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MuYXV0aGVudGljYXRpb25NM1UuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJhdXRoZW50aWNhdGlvbi5wbXMiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MuYXV0aGVudGljYXRpb25QTVMuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJhdXRoZW50aWNhdGlvbi54bWwiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MuYXV0aGVudGljYXRpb25YTUwuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJhdXRoZW50aWNhdGlvbi5hcGkiOg0KICAgICAgICAgICAgICAgIGlmIChTRVJWRVJbInNldHRpbmdzIl1bImF1dGhlbnRpY2F0aW9uLndlYiJdID09IHRydWUpIHsNCiAgICAgICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5hdXRoZW50aWNhdGlvbkFQSS5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ4dGV2ZUF1dG9VcGRhdGUiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MueHRldmVBdXRvVXBkYXRlLmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiYmFja3VwLmtlZXAiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MuYmFja3VwS2VlcC5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImJhY2t1cC5wYXRoIjoNCiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLmJhY2t1cFBhdGguZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ0ZW1wLnBhdGgiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MudGVtcFBhdGguZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJidWZmZXIiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3Muc3RyZWFtQnVmZmVyaW5nLmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiYnVmZmVyLnNpemUua2IiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MuYnVmZmVyU2l6ZS5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImJ1ZmZlci50aW1lb3V0IjoNCiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLmJ1ZmZlclRpbWVvdXQuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ1c2VyLmFnZW50IjoNCiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLnVzZXJBZ2VudC5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImZmbXBlZy5wYXRoIjoNCiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLmZmbXBlZ1BhdGguZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJmZm1wZWcub3B0aW9ucyI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5mZm1wZWdPcHRpb25zLmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAidmxjLnBhdGgiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MudmxjUGF0aC5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInZsYy5vcHRpb25zIjoNCiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLnZsY09wdGlvbnMuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJlcGdTb3VyY2UiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MuZXBnU291cmNlLmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAidHVuZXIiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MudHVuZXIuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ1cGRhdGUiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MudXBkYXRlLmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiYXBpIjoNCiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLmFwaS5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImZpbGVzLnVwZGF0ZSI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5maWxlc1VwZGF0ZS5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImNhY2hlLmltYWdlcyI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5jYWNoZUltYWdlcy5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInhlcGcucmVwbGFjZS5taXNzaW5nLmltYWdlcyI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5yZXBsYWNlRW1wdHlJbWFnZXMuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ1ZHB4eSI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy51ZHB4eS5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICAgICAgdGV4dCA9ICIiOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICB9DQogICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gIiI7DQogICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgdmFyIHByZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlBSRSIpOw0KICAgICAgICBwcmUuaW5uZXJIVE1MID0gdGV4dDsNCiAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChwcmUpOw0KICAgICAgICBkZXNjcmlwdGlvbi5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICBkZXNjcmlwdGlvbi5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgcmV0dXJuIGRlc2NyaXB0aW9uOw0KICAgIH0NCn0NCmNsYXNzIFNldHRpbmdzQ2F0ZWdvcnlJdGVtIGV4dGVuZHMgU2V0dGluZ3NDYXRlZ29yeSB7DQogICAgY29uc3RydWN0b3IoaGVhZGxpbmUsIHNldHRpbmdzS2V5cykgew0KICAgICAgICBzdXBlcigpOw0KICAgICAgICB0aGlzLmhlYWRsaW5lID0gaGVhZGxpbmU7DQogICAgICAgIHRoaXMuc2V0dGluZ3NLZXlzID0gc2V0dGluZ3NLZXlzOw0KICAgIH0NCiAgICBjcmVhdGVDYXRlZ29yeSgpIHsNCiAgICAgICAgdmFyIGhlYWRsaW5lID0gdGhpcy5jcmVhdGVDYXRlZ29yeUhlYWRsaW5lKHRoaXMuaGVhZGxpbmUpOw0KICAgICAgICB2YXIgc2V0dGluZ3NLZXlzID0gdGhpcy5zZXR0aW5nc0tleXM7DQogICAgICAgIHZhciBkb2MgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCh0aGlzLkRvY3VtZW50SUQpOw0KICAgICAgICBkb2MuYXBwZW5kQ2hpbGQoaGVhZGxpbmUpOw0KICAgICAgICAvLyBUYWJlbGxlIGbDvHIgZGllIEthdGVnb3JpZSBlcnN0ZWxsZW4NCiAgICAgICAgdmFyIHRhYmxlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEFCTEUiKTsNCiAgICAgICAgdmFyIGtleXMgPSBzZXR0aW5nc0tleXMuc3BsaXQoIiwiKTsNCiAgICAgICAga2V5cy5mb3JFYWNoKHNldHRpbmdzS2V5ID0+IHsNCiAgICAgICAgICAgIHN3aXRjaCAoc2V0dGluZ3NLZXkpIHsNCiAgICAgICAgICAgICAgICBjYXNlICJhdXRoZW50aWNhdGlvbi5wbXMiOg0KICAgICAgICAgICAgICAgIGNhc2UgImF1dGhlbnRpY2F0aW9uLm0zdSI6DQogICAgICAgICAgICAgICAgY2FzZSAiYXV0aGVudGljYXRpb24ueG1sIjoNCiAgICAgICAgICAgICAgICBjYXNlICJhdXRoZW50aWNhdGlvbi5hcGkiOg0KICAgICAgICAgICAgICAgICAgICBpZiAoU0VSVkVSWyJzZXR0aW5ncyJdWyJhdXRoZW50aWNhdGlvbi53ZWIiXSA9PSBmYWxzZSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBkZWZhdWx0Og0KICAgICAgICAgICAgICAgICAgICB2YXIgaXRlbSA9IHRoaXMuY3JlYXRlU2V0dGluZ3Moc2V0dGluZ3NLZXkpOw0KICAgICAgICAgICAgICAgICAgICB2YXIgZGVzY3JpcHRpb24gPSB0aGlzLmNyZWF0ZURlc2NyaXB0aW9uKHNldHRpbmdzS2V5KTsNCiAgICAgICAgICAgICAgICAgICAgdGFibGUuYXBwZW5kQ2hpbGQoaXRlbSk7DQogICAgICAgICAgICAgICAgICAgIHRhYmxlLmFwcGVuZENoaWxkKGRlc2NyaXB0aW9uKTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICB9DQogICAgICAgIH0pOw0KICAgICAgICBkb2MuYXBwZW5kQ2hpbGQodGFibGUpOw0KICAgICAgICBkb2MuYXBwZW5kQ2hpbGQodGhpcy5jcmVhdGVIUigpKTsNCiAgICB9DQp9DQpmdW5jdGlvbiBzaG93U2V0dGluZ3MoKSB7DQogICAgY29uc29sZS5sb2coIlNFVFRJTkdTIik7DQogICAgZm9yIChsZXQgaSA9IDA7IGkgPCBzZXR0aW5nc0NhdGVnb3J5Lmxlbmd0aDsgaSsrKSB7DQogICAgICAgIHNldHRpbmdzQ2F0ZWdvcnlbaV0uY3JlYXRlQ2F0ZWdvcnkoKTsNCiAgICB9DQp9DQpmdW5jdGlvbiBzYXZlU2V0dGluZ3MoKSB7DQogICAgY29uc29sZS5sb2coIlNhdmUgU2V0dGluZ3MiKTsNCiAgICB2YXIgY21kID0gInNhdmVTZXR0aW5ncyI7DQogICAgdmFyIGRpdiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb250ZW50X3NldHRpbmdzIik7DQogICAgdmFyIHNldHRpbmdzID0gZGl2LmdldEVsZW1lbnRzQnlDbGFzc05hbWUoImNoYW5nZWQiKTsNCiAgICB2YXIgbmV3U2V0dGluZ3MgPSBuZXcgT2JqZWN0KCk7DQogICAgZm9yIChsZXQgaSA9IDA7IGkgPCBzZXR0aW5ncy5sZW5ndGg7IGkrKykgew0KICAgICAgICB2YXIgbmFtZTsNCiAgICAgICAgdmFyIHZhbHVlOw0KICAgICAgICBzd2l0Y2ggKHNldHRpbmdzW2ldLnRhZ05hbWUpIHsNCiAgICAgICAgICAgIGNhc2UgIklOUFVUIjoNCiAgICAgICAgICAgICAgICBzd2l0Y2ggKHNldHRpbmdzW2ldLnR5cGUpIHsNCiAgICAgICAgICAgICAgICAgICAgY2FzZSAiY2hlY2tib3giOg0KICAgICAgICAgICAgICAgICAgICAgICAgbmFtZSA9IHNldHRpbmdzW2ldLm5hbWU7DQogICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IHNldHRpbmdzW2ldLmNoZWNrZWQ7DQogICAgICAgICAgICAgICAgICAgICAgICBuZXdTZXR0aW5nc1tuYW1lXSA9IHZhbHVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgICAgIGNhc2UgInRleHQiOg0KICAgICAgICAgICAgICAgICAgICAgICAgbmFtZSA9IHNldHRpbmdzW2ldLm5hbWU7DQogICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IHNldHRpbmdzW2ldLnZhbHVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgc3dpdGNoIChuYW1lKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAidXBkYXRlIjoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSB2YWx1ZS5zcGxpdCgiLCIpOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IHZhbHVlLmZpbHRlcihmdW5jdGlvbiAoZSkgeyByZXR1cm4gZTsgfSk7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgImJ1ZmZlci50aW1lb3V0IjoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSBwYXJzZUZsb2F0KHZhbHVlKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgIG5ld1NldHRpbmdzW25hbWVdID0gdmFsdWU7DQogICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJTRUxFQ1QiOg0KICAgICAgICAgICAgICAgIG5hbWUgPSBzZXR0aW5nc1tpXS5uYW1lOw0KICAgICAgICAgICAgICAgIHZhbHVlID0gc2V0dGluZ3NbaV0udmFsdWU7DQogICAgICAgICAgICAgICAgLy8gV2VubiBkZXIgV2VydCBlaW5lIFphaGwgaXN0LCB3aXJkIGRpZXNlciBhbHMgWmFobCBnZXNwZWljaGVydA0KICAgICAgICAgICAgICAgIGlmIChpc05hTih2YWx1ZSkpIHsNCiAgICAgICAgICAgICAgICAgICAgbmV3U2V0dGluZ3NbbmFtZV0gPSB2YWx1ZTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgZWxzZSB7DQogICAgICAgICAgICAgICAgICAgIG5ld1NldHRpbmdzW25hbWVdID0gcGFyc2VJbnQodmFsdWUpOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgfQ0KICAgIH0NCiAgICB2YXIgZGF0YSA9IG5ldyBPYmplY3QoKTsNCiAgICBkYXRhWyJzZXR0aW5ncyJdID0gbmV3U2V0dGluZ3M7DQogICAgdmFyIHNlcnZlciA9IG5ldyBTZXJ2ZXIoY21kKTsNCiAgICBzZXJ2ZXIucmVxdWVzdChkYXRhKTsNCn0NCg==" + webUI["html/login.html"] = "PCFkb2N0eXBlIGh0bWw+DQo8aHRtbD4NCiAgPGhlYWQ+DQogICAgPG1ldGEgY2hhcnNldD0idXRmLTgiPg0KICAgIDxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgsIGluaXRpYWwtc2NhbGU9MS4wIiAvPiANCiAgICA8dGl0bGU+eFRlVmU8L3RpdGxlPg0KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iY3NzL3NjcmVlbi5jc3MiIHR5cGU9InRleHQvY3NzIj4NCiAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9ImNzcy9iYXNlLmNzcyIgdHlwZT0idGV4dC9jc3MiPg0KICAgIDxzY3JpcHQgbGFuZ3VhZ2U9ImphdmFzY3JpcHQiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJqcy9uZXR3b3JrX3RzLmpzIj48L3NjcmlwdD4NCiAgICA8c2NyaXB0IGxhbmd1YWdlPSJqYXZhc2NyaXB0IiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ianMvYXV0aGVudGljYXRpb25fdHMuanMiPjwvc2NyaXB0Pg0KICA8L2hlYWQ+DQoNCiAgICA8Ym9keT4NCiAgICAgICAgICANCiAgICAgIDxkaXYgaWQ9ImhlYWRlciIgY2xhc3M9ImltZ0NlbnRlciI+PC9kaXY+DQoNCiAgICAgIDxkaXYgaWQ9ImJveCI+DQoNCiAgICAgICAgPGRpdiBpZD0iaGVhZGxpbmUiPg0KICAgICAgICAgIDxoMSBpZD0iaGVhZC10ZXh0IiBjbGFzcz0iY2VudGVyIj57ey5sb2dpbi5oZWFkbGluZX19PC9oMT4NCiAgICAgICAgPC9kaXY+DQoNCiAgICAgICAgPHAgaWQ9ImVyciIgY2xhc3M9ImVycm9yTXNnIGNlbnRlciI+e3suYXV0aGVudGljYXRpb25FcnJ9fTwvcD4NCg0KICAgICAgICA8ZGl2IGlkPSJjb250ZW50Ij4NCg0KICAgICAgICAgICAgPGZvcm0gaWQ9ImF1dGhlbnRpY2F0aW9uIiBhY3Rpb249IiIgbWV0aG9kPSJwb3N0Ij4NCg0KICAgICAgICAgICAgICA8aDU+e3subG9naW4udXNlcm5hbWUudGl0bGV9fTo8L2g1Pg0KICAgICAgICAgICAgICA8aW5wdXQgaWQ9InVzZXJuYW1lIiB0eXBlPSJ0ZXh0IiBuYW1lPSJ1c2VybmFtZSIgcGxhY2Vob2xkZXI9IlVzZXJuYW1lIiB2YWx1ZT0iIj4NCiAgICAgICAgICAgICAgPGg1Pnt7LmxvZ2luLnBhc3N3b3JkLnRpdGxlfX06PC9oNT4NCiAgICAgICAgICAgICAgPGlucHV0IGlkPSJwYXNzd29yZCIgdHlwZT0icGFzc3dvcmQiIG5hbWU9InBhc3N3b3JkIiBwbGFjZWhvbGRlcj0iUGFzc3dvcmQiIHZhbHVlPSIiPg0KDQogICAgICAgICAgICA8L2Zvcm0+DQoNCiAgICAgICAgPC9kaXY+DQoNCiAgICAgICAgPGRpdiBpZD0iYm94LWZvb3RlciI+DQogICAgICAgICAgPGlucHV0IGlkPSJzdWJtaXQiIGNsYXNzPSIiIHR5cGU9ImJ1dHRvbiIgdmFsdWU9Int7LmJ1dHRvbi5sb2dpbn19IiBvbmNsaWNrPSJqYXZhc2NyaXB0OiBsb2dpbigpOyI+DQogICAgICAgIDwvZGl2Pg0KICAgICAgICANCiAgICAgIDwvZGl2Pg0KDQogICAgPC9ib2R5Pg0KICAgIA0KPC9odG1sPg==" + webUI["html/img/m3u.png"] = "iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAAAXNSR0IArs4c6QAAAAlwSFlzAAAsSwAALEsBpT2WqQAABCRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IlhNUCBDb3JlIDUuNC4wIj4KICAgPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIgogICAgICAgICAgICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgICAgICAgICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyI+CiAgICAgICAgIDx0aWZmOlJlc29sdXRpb25Vbml0PjI8L3RpZmY6UmVzb2x1dGlvblVuaXQ+CiAgICAgICAgIDx0aWZmOkNvbXByZXNzaW9uPjU8L3RpZmY6Q29tcHJlc3Npb24+CiAgICAgICAgIDx0aWZmOlhSZXNvbHV0aW9uPjI4ODwvdGlmZjpYUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6T3JpZW50YXRpb24+MTwvdGlmZjpPcmllbnRhdGlvbj4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+Mjg4PC90aWZmOllSZXNvbHV0aW9uPgogICAgICAgICA8ZXhpZjpQaXhlbFhEaW1lbnNpb24+NTA8L2V4aWY6UGl4ZWxYRGltZW5zaW9uPgogICAgICAgICA8ZXhpZjpDb2xvclNwYWNlPjE8L2V4aWY6Q29sb3JTcGFjZT4KICAgICAgICAgPGV4aWY6UGl4ZWxZRGltZW5zaW9uPjUwPC9leGlmOlBpeGVsWURpbWVuc2lvbj4KICAgICAgICAgPGRjOnN1YmplY3Q+CiAgICAgICAgICAgIDxyZGY6QmFnLz4KICAgICAgICAgPC9kYzpzdWJqZWN0PgogICAgICAgICA8eG1wOk1vZGlmeURhdGU+MjAxOC0wNy0yOFQxOTowNzozMTwveG1wOk1vZGlmeURhdGU+CiAgICAgICAgIDx4bXA6Q3JlYXRvclRvb2w+UGl4ZWxtYXRvciAzLjM8L3htcDpDcmVhdG9yVG9vbD4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgIDwvcmRmOlJERj4KPC94OnhtcG1ldGE+CumjVbcAAAGWSURBVGgF7VoxTgJRFGTFaGKBFnbEcABjb0fiBego7D2ABYmn8ARKRWFNQ6gx4QRQGWJJoY2VhXGdl7Dkh7Dsx3ns3yXvJ5P97L6d92bmhwYqlcWK43gK5L2enP51NP8F7pN721wPnOITZx9qG6HxI8QIZO+9XCHeL+VQKKm8QMyxb6+iCpH528AQYs58xIQWknV8mhDxCjEXWWJCC8maT55fAmOIudpUXAYhMn8dGEHMTZqYsgiR+U+BAcTcrhNTJiEy/xHQg5jOqpjD1RsBP3+id8u3P8TUoij6SuoLIwRDfWOofjLYtteyHa1UfcvvcUT1jqpGauVuHnyAdragjv/TAkley3uhj9Y5ZhDQa2+Olgmhz4IygSWibChNZ4nQFioTWCLKhtJ0lghtoTKBJaJsKE1nidAWKhNYIsqG0nSWCG2hMoElomwoTWeJ0BYqE1giyobSdJYIbaEygSWibChNZ4nQFioTWCLKhtJ0biJzmi1/guXMrpDn/OegO3bXMuAH0TtgAvwARV3y57Q34AGoJkL+AErKZ9cqbH7AAAAAAElFTkSuQmCC" + webUI["html/img/stream-limit.jpg"] = "/9j/4AAQSkZJRgABAQAAAQABAAD/4gJoSUNDX1BST0ZJTEUAAQEAAAJYbGNtcwQwAABtbnRyUkdCIFhZWiAH4wAFABcAFgAuAAphY3NwQVBQTAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA9tYAAQAAAADTLWxjbXMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAtkZXNjAAABCAAAAEBjcHJ0AAABSAAAAE53dHB0AAABmAAAABRjaGFkAAABrAAAACxyWFlaAAAB2AAAABRiWFlaAAAB7AAAABRnWFlaAAACAAAAABRyVFJDAAACFAAAACBnVFJDAAACFAAAACBiVFJDAAACFAAAACBjaHJtAAACNAAAACRtbHVjAAAAAAAAAAEAAAAMZW5VUwAAACQAAAAcAHMAUgBHAEIAIABJAEUAQwA2ADEAOQA2ADYALQAyAC4AMQAAbWx1YwAAAAAAAAABAAAADGVuVVMAAAAyAAAAHABOAG8AIABjAG8AcAB5AHIAaQBnAGgAdAAsACAAdQBzAGUAIABmAHIAZQBlAGwAeQAAAABYWVogAAAAAAAA9tYAAQAAAADTLXNmMzIAAAAAAAEMSgAABeP///MqAAAHmwAA/Yf///ui///9owAAA9gAAMCUWFlaIAAAAAAAAG+UAAA47gAAA5BYWVogAAAAAAAAJJ0AAA+DAAC2vlhZWiAAAAAAAABipQAAt5AAABjecGFyYQAAAAAAAwAAAAJmZgAA8qcAAA1ZAAAT0AAACltjaHJtAAAAAAADAAAAAKPXAABUewAATM0AAJmaAAAmZgAAD1z/2wBDAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQH/2wBDAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQH/wAARCAQ4B4ADASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD/AD/6KKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigD9PvBf/AARa/wCCrXxF8HeE/iD4G/YM/aL8UeCfHfhrQvGXg/xNpHgia50nxF4W8T6Xa634f13TLkTgXGn6vpN9aahZTgAS21xFIAN1dL/w4o/4LB/9I7/2m/8AwgZ//kiv9b3/AIJp/wDKOX9gH/syf9lX/wBUV4Dr7YoA/wAWr/hxR/wWD/6R3/tN/wDhAz//ACRR/wAOKP8AgsH/ANI7/wBpv/wgZ/8A5Ir/AGlaKAP8Wr/hxR/wWD/6R3/tN/8AhAz/APyRR/w4o/4LB/8ASO/9pv8A8IGf/wCSK/2laKAP8Wr/AIcUf8Fg/wDpHf8AtN/+EDP/APJFH/Dij/gsH/0jv/ab/wDCBn/+SK/2laKAP8Wr/hxR/wAFg/8ApHf+03/4QM//AMkUf8OKP+Cwf/SO/wDab/8ACBn/APkiv9pWigD/ABav+HFH/BYP/pHf+03/AOEDP/8AJFH/AA4o/wCCwf8A0jv/AGm//CBn/wDkiv8AaVooA/xav+HFH/BYP/pHf+03/wCEDP8A/JFH/Dij/gsH/wBI7/2m/wDwgZ//AJIr/aVooA/xav8AhxR/wWD/AOkd/wC03/4QM/8A8kUf8OKP+Cwf/SO/9pv/AMIGf/5Ir/aVooA/xav+HFH/AAWD/wCkd/7Tf/hAz/8AyRR/w4o/4LB/9I7/ANpv/wAIGf8A+SK/2laKAP8AFq/4cUf8Fg/+kd/7Tf8A4QM//wAkUf8ADij/AILB/wDSO/8Aab/8IGf/AOSK/wBpWigD/Fq/4cUf8Fg/+kd/7Tf/AIQM/wD8kUf8OKP+Cwf/AEjv/ab/APCBn/8Akiv9pWigD/Fq/wCHFH/BYP8A6R3/ALTf/hAz/wDyRR/w4o/4LB/9I7/2m/8AwgZ//kiv9pWigD/E88f/APBGT/gqj8K/AnjT4nfEX9hL9ofwf8P/AIdeFPEPjnxz4t1zwTNaaL4X8IeE9Ju9d8SeIdXujORbaZo2j2F5qN9OQRDa20shB24r8yq/28f+Ctf/ACit/wCClX/ZhH7Xv/rP/wAQK/xDqACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooA+j/ANmj9kL9pr9snxbrvgL9lr4K+Ovjn408M+HH8X6/4Y+H2ljWdZ0vwvFqen6NLr1zYrNHMNMh1XVtL0+a7RWihu9RsoZSj3MIf7U/4cUf8Fg/+kd/7Tf/AIQM/wD8kV2v/BAD9sj/AIYi/wCCrf7K/wATNW1X+yvh98QPFw+AHxWklm+z6f8A8IJ8aWg8HjU9Xl3Ls0rwd4wufCPxAuz82B4RQlJACjf7MFAH+LV/w4o/4LB/9I7/ANpv/wAIGf8A+SKP+HFH/BYP/pHf+03/AOEDP/8AJFf7StFAH+LV/wAOKP8AgsH/ANI7/wBpv/wgZ/8A5Io/4cUf8Fg/+kd/7Tf/AIQM/wD8kV/tK0UAf4tX/Dij/gsH/wBI7/2m/wDwgZ//AJIo/wCHFH/BYP8A6R3/ALTf/hAz/wDyRX+0rRQB/gx/HT4CfGb9mT4n+Ivgt+0B8NfFnwj+K3hJNHl8SeA/G2lzaP4i0iLxBomneI9Emu7KbJWLU9C1bTtTs5UZ45rW7idWySB5HX9yX/B69+yL/wAIr8eP2V/22/D2meXpfxb8Da18BfiPd2sOy3i8afDG9k8U+BdR1OXbiXVPFHg/xZrukWzB2P8AZnw0jjZIxEjS/wANtABRRRQAUUUUAFFFFABRRRQAUUUUAPRHldIokeSSR1SONFLu7uQqIiKCzOzEKqqCWJAAJNfq8n/BCv8A4LBSIki/8E7/ANp3a6q67vh/dI21gGG5HnV0bB5V1VlPDAEEVv8A/BBj9kX/AIbU/wCCrf7Ivwo1PTP7T8DeGPiFb/Gz4nRTQ+fpzeAvgpE3xDv9L1hQrEaZ4w1nRdD8BSkAFp/FdvH5kO/zo/8AZ4oA/wAWr/hxR/wWD/6R3/tN/wDhAz//ACRR/wAOKP8AgsH/ANI7/wBpv/wgZ/8A5Ir/AGlaKAP8Wr/hxR/wWD/6R3/tN/8AhAz/APyRR/w4o/4LB/8ASO/9pv8A8IGf/wCSK/2laKAP8Wr/AIcUf8Fg/wDpHf8AtN/+EDP/APJFH/Dij/gsH/0jv/ab/wDCBn/+SK/2laKAP8Kz9p39iX9rL9i7UfCOkftV/AT4ifAfVPHtlq+o+DtO+IejjRb3xDp+gz2Ntq97p1s00k0lrY3GpWUEs7IkbSz+XGztHKI/lqv6F/8Ag5+/bI/4a5/4K2/HDTNF1X+0fh7+y5aaZ+y74KEU261GofDq61K8+KVz5UbG3N0fi9r3jnSTexl5bzSdE0USybLeCGD+eigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigD/cg/4Jp/8o5f2Af+zJ/2Vf8A1RXgOvtivif/AIJp/wDKOX9gH/syf9lX/wBUV4Dr7YoAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigD8+P8AgrX/AMorf+ClX/ZhH7Xv/rP/AMQK/wAQ6v8Abx/4K1/8orf+ClX/AGYR+17/AOs//ECv8Q6gAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAHI7xOkkbtHJGyvHIjFHR0IZXRlIZWVgGVlIIIBBBFf7Z//BIH9sRP28f+Cbv7J37St5qS6n4x8VfC/TPDXxTmMqvc/wDC3PhxNcfD/wCJdxdQ5Mtp/bPi7w3qfiLT7e4zK2jazplyHnhuIrib/Eur/QW/4Mm/2yPteh/tZfsE+JNV3T6PeaT+1D8KNPml3yNp2pDRvht8YrW381t0NrYahB8JtRtLK33Rtda5r980cUjzyzgH98VFFFABRRRQAUUUUAfhR/wcifsif8Ngf8Eif2ndD0vTP7T8dfAvSbH9p74ehYvPuINW+DCXur+MUs4FUzXF/qvwjvfiRoFhb25E819q9skazn/R5v8AHer/AH6NW0rTdd0rU9D1mxtdU0fWdPvNK1bTL6FLmy1HTdRtpLS+sby3kDRz2t3azS29xDIrJLFI6OCrEV/hv/8ABQv9lrUv2J/23/2ov2V9Riuo4Pgv8Y/GHhbwzPe7/tWqeAJdQbWfhrr83mfPu8R/D7VPDOvjcWO3Uh88n32APjeiiigAooooAKKKKACiiigAooooA/0D/wDgyU/ZE+z6T+19+3Xr+mYl1G70D9lz4Y6lJFtdbSwTSfif8YfKaRd0lvd3Vz8HreC4g2xifS9VtneSRHSD++mvyl/4Ih/sif8ADEf/AAS3/ZB+B2o6X/ZXjV/hhYfE/wCKEEsPlahH8S/jDNN8SfFmmaq21WnvfCl14ki8EpKw+Ww8M2MCExQxmv1aoAKKKKACiiigAr5A/b+/ao0X9iP9iv8AaZ/as1xrRk+Cfwi8V+LdCsr5gtrrfjk2R0j4c+GZWLKF/wCEq8f6n4a8NodwxJqqdeh+v6/ib/4PTP2yP+EA/Za/Z5/Yk8N6r5WvftCfEG7+LPxGtLWb98nww+Dogh8OaVqtvuA+weKviT4g03W9Nk2uWvvhfdrujEZEoB/nB+IfEGteLPEGueKvEup3eteIvE2san4g1/WL+Uz32ra1rN7PqOq6nezNzNd399cz3VzKeZJpXc8mseiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigD/cg/4Jp/8AKOX9gH/syf8AZV/9UV4Dr7Yr4n/4Jp/8o5f2Af8Asyf9lX/1RXgOvtigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAPz4/4K1/8orf+ClX/AGYR+17/AOs//ECv8Q6v9vH/AIK1/wDKK3/gpV/2YR+17/6z/wDECv8AEOoAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAr9V/+CJP7ZH/DCn/BT39k348anqv9leA2+Itp8Mvi1NNN5Onp8LPi3FJ8P/F+qaou5RPaeEbfXYPHcMLMB/aXhXT5R80Sg/lRRQB/v8UV+TP/AAQ5/bI/4bo/4JdfsnfG7VNV/tXx9p/w+tfhN8WpZZvO1Fvid8IJG8A+JNV1f5m8u/8AGUWi6d8QFjDECx8W2TgRh/LT9ZqACiiigAooooAK/wA07/g9I/ZE/wCFcftj/AD9sXQNM8jQP2lfhZdfD7xtd28O5H+KPwOnsbO31HUp1A8q41z4a+KvBmkaXDN808HgPUnhZ1tplh/0sa/nd/4Oi/2RP+Gq/wDgkT8cNZ0fS/7R8dfsuapoP7T/AITMUO64TS/ACahpXxSVp0Bnjsbf4ReJvHOuz26hoLi+0HS2nQG3iuLcA/yKaKKKACiiigAooooAKKKKACv02/4I3fsi/wDDcf8AwUy/ZC/Z3vtM/tXwfr3xX0nxh8TrWSLfaS/Cr4XQ3PxJ+IlleyMGhto9d8L+FtQ8NWk04MbaprWn2yxzz3EUEv5k1/eL/wAGTH7In9reP/2uf259f0zdZ+D9A0H9mf4Z6hND5sEmveK7jTviL8VprV3Gy21LQ9E0b4YWSTwlp207xnqVsWhgnkS5AP8AQzooooAKKKKACiiigAr/AB3f+DkD9sj/AIbN/wCCtf7SWvaRqv8Aanw9+BGpWv7MPw1aOf7RaJovwcudR0zxfd2E6MYLnT9d+LV/8RfEWm3dsPJuNM1axZJJ1VbiX/Ux/wCCnv7XVn+wl+wF+1T+1TLdW1trXws+E2vXHgJbsRtBe/FTxOYPBnwo02aKQMJbe/8AiN4h8MW16qxysti9zN5UixMp/wAQK+vr3U7281LUru5v9R1C6uL6/vryaS5u729u5XuLq7uriZnlnubieR5p5pXaSWV2d2ZmJIBVooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooA/sa/Z9/4PGv2mv2ffgJ8EPgJo37HXwJ8QaP8EPhD8NfhDpOv6n43+IFtqWt6b8NfBmi+DLHV9Qt7QfZbe+1K10WK9u4bb/R4riaSOH92q169/xG8ftWf9GRfs9/+F98R/8ACv4h6KAP7eP+I3j9qz/oyL9nv/wvviP/AIUf8RvH7Vn/AEZF+z3/AOF98R/8K/iHooA/t4/4jeP2rP8AoyL9nv8A8L74j/4Uf8RvH7Vn/RkX7Pf/AIX3xH/wr+IeigD+3j/iN4/as/6Mi/Z7/wDC++I/+FH/ABG8ftWf9GRfs9/+F98R/wDCv4h6KAP9GT/gmX/wdhftE/t2/t3fs3/skeLv2T/gt4E8N/G/xpf+F9W8XeHPGPjnUNb0O3tPCviHxCt1p9lqY+wXEzzaNFbslz8gimkYfOq1/cpX+NT/AMG73/KaX9gD/srmtf8AqtPHVf7K1ABRRRQAUUUUAFFFFAH8KH/BRT/g7X/aN/Yq/bf/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WOj6BoOn3Gq6xql5Jg+Xaafp1pcXdw+DshhdsHGKAP8AN2/4PR/2yP8AhY37XHwD/Yq8N6r53h/9m34dT/Er4g2dtNiP/hanxqFlcaTpmqW4Yh7rw38MdB8M6zpUzhWitviTqKICJmJ/itr6y/bt/ah179tX9sf9pP8Aaq8RG6juvjh8XfF/jbS7C9fzLjQfCN1qUln4D8LF98m6Lwl4IsvD/hm2Jkc/ZtJiBdj8x+TaACiiigAooooAK/2Hv+DZvSf7G/4Id/sIWe3Z53hv40atjGM/29+0r8Ztc3f8D/tHfnvuzzmv8eGv9kD/AINw7+HUv+CJ37A1xAqqkfw58c2DBOhm0r40fEvTLhj/ALb3FnKz/wC2WoA/biiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAr/JJ/4Ow/+U2X7Q//AGTv9nj/ANUr4Nr/AFtq/wAkn/g7D/5TZftD/wDZO/2eP/VK+DaAP5vaKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKK6vwJ4G8W/E3xn4X+HngLQdQ8UeNPGmu6b4a8L+HtLi86/1fWtXuo7OwsrdCVRTLPKoeaZ47e3iD3FzLFBFJIt06dSrUhSpQnUq1Zwp06dOMp1KlSpOMKdOEIKUpznOcIQhGMpSlKMYpuST58Xi8LgMJisfjsTh8FgcDhsRjcbjcXXpYXCYPB4OhWxWLxeKxOIqUaGHw2Fw2GxGIxGIr1aVGhQoVq1WpTp0pzj9Y/sAfsT+O/27/wBofw38HvC32vSfCtqY/EXxU8cx2/nWvgfwDZ3MMep6gDIpgm13VHkTR/C2myZ+361dwPcCLSrTVL2z/wBHr4T/AAs8CfBD4beC/hL8MtAtPDHgPwBoNl4c8NaJZj5LWwskOZriZv3t7qV/cvPqOr6ndNJe6rqt3eal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gAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAr+z7/ggp/wTT/4VH4Psf20vjV4f8r4n/ELRXX4K+HtVtsXPgT4d6zbFJvGk8E6brXxN8QbCXZpbIqz6X4Hn/17P4t1GysPyI/4Ip/8E13/AGxfjB/wuX4r6G837N3wa1q0m1S1voD9h+KPxAtlg1HSvAMXmL5V3oOmRyWmt+O8ear6bNpfh14h/wAJK95p/wDedHGkSJFEiRxxoscccahEjRAFRERQFVFUBVVQAoAAAAr+o/AXw29vUpcdZ3h/3FGclw3ha0NK1eDlTq5zOE1rTw8lOjlzaaniFXxkbxw+Hkf4Nfta/psf2Tg8d9FLwvzi2aZlh6E/GrPctxHv5dleIhRxeC8NsPiKFS8Mbm1KWFzPjSMKkZ4bKJZTw5VUKub5vRT6KKK/rU/55AooooAKKKr3d3a2Frc319c29lY2VvNd3l5dzR21raWttG01xc3NxMyQwW8EKPLNNK6RxRozuyqpIG0k22kkm220kkk2222kkkm220kk22km04xlOUYQjKc5yjCEIRlOc5zlGMIQhGMpSnKUoxjGMZSlKUYxjKUoxlYoqlpuo6frGn2Gr6TfWeqaVqlla6jpmp6fcw3un6jp99AlzZX1jeWzyW93Z3dtLHcW1zBJJDPDIksTsjqxu0k1JKUWnFpNNNNNNJppptNNNNNNpppptNNucJ0pzp1ITp1Kc506lOpCdOpTqU5zp1KdSnUjCpTqU6lOdOpTqQhOE4ThOEJwnCBRRRTJCiiigD8if+Cvv/BOiw/bq+A0ms+CNNtIv2i/hFZalrXwv1HENtN4u00p9q1z4X6pdvsRrXxCIRc+Gp7yRIdI8Vw2j/arDS9W8QPcf59Ooaff6Tf32larZXem6npl5c6fqWnX9vNZ31hf2Uz215ZXtpcJHPa3drcRyQXNvPGk0E0bxSIrqyj/AFjK/kJ/4L+/8E2P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/DSP/BUjUvgr4f1X7d4A/Y18AaL8IbSK3m87TpviZ4mSHx78VtVhBYmPULa61fw18PtYjCoEvPh1sCsVMsoB/LfRRRQAUUUUAFFFFABRRRQAUUUUAFf6lH/BsR/wW/h/bw+Ddn+xj+0n4qib9sH4C+E7ePwt4i1m7Vb/APaF+D2gQwWFp4kW4nYPqXxM8BWv2TS/H9u5k1LxFpA03x8kmp3U3jWXRP8ALXr0j4P/ABg+J3wA+J/gf4z/AAY8b6/8OPil8N/EFl4o8E+NvDF61jrWg61YMTFcW8oDxT288TzWWpabew3OmavplzeaVqtneabeXVrMAf72FFfzsf8ABCH/AIL2fCb/AIKr/DKw+GXxPvvDPwy/bk8CaKg8e/DJbqLTdK+K+nadbZuvil8HrW8nM9/pc8cL3fi7wbBJeav4DvTKZvtnhqfStbu/6J6ACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooA+HP8Agp3/AMo1v+Chf/Zjn7WX/qhPH9f4dVf7iv8AwU7/AOUa3/BQv/sxz9rL/wBUJ4/r/DqoAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKtWNje6ne2em6bZ3WoajqF1b2NhYWNvLd3t9e3cqQWtnaWsCST3N1czyRw29vCjyzSukcaM7AFpNtJJttpJJNtttJJJJtttpJJNttJJtpOZzhThKpUlGEIRlOc5yjCEIQjKc5znOUIQhCEJznOc4QhCE5znGMZSj7x+y5+zX8Sf2t/jj4G+BHwr0/7V4l8ZaksdzqVxHK2keFPDtpifxB4v8AEM0SsbbRPD+nCW8uiM3F5MLbStOjudV1CxtLj/SQ/ZX/AGZ/ht+yJ8DPA/wH+Flh9n8O+D9PAvtWniiTV/F3iW8CzeIfGHiGWIYuNZ1+/wB9zMNxgsLUWej6ctvpWm2FrB+fv/BHj/gnDZfs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FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF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FFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFAH//Z" + webUI["html/js/authentication_ts.js"] = "ZnVuY3Rpb24gbG9naW4oKSB7DQogICAgdmFyIGVyciA9IGZhbHNlOw0KICAgIHZhciBkYXRhID0gbmV3IE9iamVjdCgpOw0KICAgIHZhciBkaXYgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29udGVudCIpOw0KICAgIHZhciBmb3JtID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImF1dGhlbnRpY2F0aW9uIik7DQogICAgdmFyIGlucHV0cyA9IGRpdi5nZXRFbGVtZW50c0J5VGFnTmFtZSgiSU5QVVQiKTsNCiAgICBjb25zb2xlLmxvZyhpbnB1dHMpOw0KICAgIGZvciAodmFyIGkgPSBpbnB1dHMubGVuZ3RoIC0gMTsgaSA+PSAwOyBpLS0pIHsNCiAgICAgICAgdmFyIGtleSA9IGlucHV0c1tpXS5uYW1lOw0KICAgICAgICB2YXIgdmFsdWUgPSBpbnB1dHNbaV0udmFsdWU7DQogICAgICAgIGlmICh2YWx1ZS5sZW5ndGggPT0gMCkgew0KICAgICAgICAgICAgaW5wdXRzW2ldLnN0eWxlLmJvcmRlckNvbG9yID0gInJlZCI7DQogICAgICAgICAgICBlcnIgPSB0cnVlOw0KICAgICAgICB9DQogICAgICAgIGRhdGFba2V5XSA9IHZhbHVlOw0KICAgIH0NCiAgICBpZiAoZXJyID09IHRydWUpIHsNCiAgICAgICAgZGF0YSA9IG5ldyBPYmplY3QoKTsNCiAgICAgICAgcmV0dXJuOw0KICAgIH0NCiAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgiY29uZmlybSIpKSB7DQogICAgICAgIGlmIChkYXRhWyJjb25maXJtIl0gIT0gZGF0YVsicGFzc3dvcmQiXSkgew0KICAgICAgICAgICAgYWxlcnQoInNkYWZzZCIpOw0KICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Bhc3N3b3JkJykuc3R5bGUuYm9yZGVyQ29sb3IgPSAicmVkIjsNCiAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjb25maXJtJykuc3R5bGUuYm9yZGVyQ29sb3IgPSAicmVkIjsNCiAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJlcnIiKS5pbm5lckhUTUwgPSAie3suYWNjb3VudC5mYWlsZWR9fSI7DQogICAgICAgICAgICByZXR1cm47DQogICAgICAgIH0NCiAgICB9DQogICAgY29uc29sZS5sb2coZGF0YSk7DQogICAgZm9ybS5zdWJtaXQoKTsNCn0NCg==" + webUI["html/js/classes_ts.js"] = "dmFyIF9fZXh0ZW5kcyA9ICh0aGlzICYmIHRoaXMuX19leHRlbmRzKSB8fCAoZnVuY3Rpb24gKCkgew0KICAgIHZhciBleHRlbmRTdGF0aWNzID0gZnVuY3Rpb24gKGQsIGIpIHsNCiAgICAgICAgZXh0ZW5kU3RhdGljcyA9IE9iamVjdC5zZXRQcm90b3R5cGVPZiB8fA0KICAgICAgICAgICAgKHsgX19wcm90b19fOiBbXSB9IGluc3RhbmNlb2YgQXJyYXkgJiYgZnVuY3Rpb24gKGQsIGIpIHsgZC5fX3Byb3RvX18gPSBiOyB9KSB8fA0KICAgICAgICAgICAgZnVuY3Rpb24gKGQsIGIpIHsgZm9yICh2YXIgcCBpbiBiKSBpZiAoYi5oYXNPd25Qcm9wZXJ0eShwKSkgZFtwXSA9IGJbcF07IH07DQogICAgICAgIHJldHVybiBleHRlbmRTdGF0aWNzKGQsIGIpOw0KICAgIH07DQogICAgcmV0dXJuIGZ1bmN0aW9uIChkLCBiKSB7DQogICAgICAgIGV4dGVuZFN0YXRpY3MoZCwgYik7DQogICAgICAgIGZ1bmN0aW9uIF9fKCkgeyB0aGlzLmNvbnN0cnVjdG9yID0gZDsgfQ0KICAgICAgICBkLnByb3RvdHlwZSA9IGIgPT09IG51bGwgPyBPYmplY3QuY3JlYXRlKGIpIDogKF9fLnByb3RvdHlwZSA9IGIucHJvdG90eXBlLCBuZXcgX18oKSk7DQogICAgfTsNCn0pKCk7DQp2YXIgTWFpbk1lbnUgPSAvKiogQGNsYXNzICovIChmdW5jdGlvbiAoKSB7DQogICAgZnVuY3Rpb24gTWFpbk1lbnUoKSB7DQogICAgICAgIHRoaXMuRG9jdW1lbnRJRCA9ICJtYWluLW1lbnUiOw0KICAgICAgICB0aGlzLkhUTUxUYWcgPSAiTEkiOw0KICAgIH0NCiAgICBNYWluTWVudS5wcm90b3R5cGUuY3JlYXRlID0gZnVuY3Rpb24gKCkgew0KICAgICAgICBjb25zb2xlLmxvZyh0aGlzLkRvY3VtZW50SUQpOw0KICAgIH07DQogICAgcmV0dXJuIE1haW5NZW51Ow0KfSgpKTsNCnZhciBNYWluTWVudUl0ZW0gPSAvKiogQGNsYXNzICovIChmdW5jdGlvbiAoX3N1cGVyKSB7DQogICAgX19leHRlbmRzKE1haW5NZW51SXRlbSwgX3N1cGVyKTsNCiAgICBmdW5jdGlvbiBNYWluTWVudUl0ZW0oKSB7DQogICAgICAgIHJldHVybiBfc3VwZXIgIT09IG51bGwgJiYgX3N1cGVyLmFwcGx5KHRoaXMsIGFyZ3VtZW50cykgfHwgdGhpczsNCiAgICB9DQogICAgTWFpbk1lbnVJdGVtLnByb3RvdHlwZS5jcmVhdGUyID0gZnVuY3Rpb24gKCkgew0KICAgICAgICB2YXIgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQodGhpcy5IVE1MVGFnKTsNCiAgICAgICAgZWxlbWVudC5pbm5lclRleHQgPSB0aGlzLlZhbHVlOw0KICAgICAgICBjb25zb2xlLmxvZyhlbGVtZW50KTsNCiAgICB9Ow0KICAgIHJldHVybiBNYWluTWVudUl0ZW07DQp9KE1haW5NZW51KSk7DQpmdW5jdGlvbiBwYWdlUmVhZHkoKSB7DQogICAgdmFyIGl0ZW0gPSBuZXcgTWFpbk1lbnVJdGVtKCk7DQogICAgaXRlbS5WYWx1ZSA9ICJUZXN0IjsNCiAgICBpdGVtLmNyZWF0ZTIoKTsNCn0NCg==" + webUI["html/js/configuration_ts.js"] = "Y2xhc3MgV2l6YXJkQ2F0ZWdvcnkgew0KICAgIGNvbnN0cnVjdG9yKCkgew0KICAgICAgICB0aGlzLkRvY3VtZW50SUQgPSAiY29udGVudCI7DQogICAgfQ0KICAgIGNyZWF0ZUNhdGVnb3J5SGVhZGxpbmUodmFsdWUpIHsNCiAgICAgICAgdmFyIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJINCIpOw0KICAgICAgICBlbGVtZW50LmlubmVySFRNTCA9IHZhbHVlOw0KICAgICAgICByZXR1cm4gZWxlbWVudDsNCiAgICB9DQp9DQpjbGFzcyBXaXphcmRJdGVtIGV4dGVuZHMgV2l6YXJkQ2F0ZWdvcnkgew0KICAgIGNvbnN0cnVjdG9yKGtleSwgaGVhZGxpbmUpIHsNCiAgICAgICAgc3VwZXIoKTsNCiAgICAgICAgdGhpcy5oZWFkbGluZSA9IGhlYWRsaW5lOw0KICAgICAgICB0aGlzLmtleSA9IGtleTsNCiAgICB9DQogICAgY3JlYXRlV2l6YXJkKCkgew0KICAgICAgICB2YXIgaGVhZGxpbmUgPSB0aGlzLmNyZWF0ZUNhdGVnb3J5SGVhZGxpbmUodGhpcy5oZWFkbGluZSk7DQogICAgICAgIHZhciBrZXkgPSB0aGlzLmtleTsNCiAgICAgICAgdmFyIGNvbnRlbnQgPSBuZXcgUG9wdXBDb250ZW50KCk7DQogICAgICAgIHZhciBkZXNjcmlwdGlvbjsNCiAgICAgICAgdmFyIGRvYyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHRoaXMuRG9jdW1lbnRJRCk7DQogICAgICAgIGRvYy5pbm5lckhUTUwgPSAiIjsNCiAgICAgICAgZG9jLmFwcGVuZENoaWxkKGhlYWRsaW5lKTsNCiAgICAgICAgc3dpdGNoIChrZXkpIHsNCiAgICAgICAgICAgIGNhc2UgInR1bmVyIjoNCiAgICAgICAgICAgICAgICB2YXIgdGV4dCA9IG5ldyBBcnJheSgpOw0KICAgICAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBuZXcgQXJyYXkoKTsNCiAgICAgICAgICAgICAgICBmb3IgKHZhciBpID0gMTsgaSA8PSAxMDA7IGkrKykgew0KICAgICAgICAgICAgICAgICAgICB0ZXh0LnB1c2goaSk7DQogICAgICAgICAgICAgICAgICAgIHZhbHVlcy5wdXNoKGkpOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCAiMSIsIGtleSk7DQogICAgICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgiY2xhc3MiLCAid2l6YXJkIik7DQogICAgICAgICAgICAgICAgc2VsZWN0LmlkID0ga2V5Ow0KICAgICAgICAgICAgICAgIGRvYy5hcHBlbmRDaGlsZChzZWxlY3QpOw0KICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uID0gInt7LndpemFyZC50dW5lci5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImVwZ1NvdXJjZSI6DQogICAgICAgICAgICAgICAgdmFyIHRleHQgPSBbIlBNUyIsICJYRVBHIl07DQogICAgICAgICAgICAgICAgdmFyIHZhbHVlcyA9IFsiUE1TIiwgIlhFUEciXTsNCiAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCAiWEVQRyIsIGtleSk7DQogICAgICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgiY2xhc3MiLCAid2l6YXJkIik7DQogICAgICAgICAgICAgICAgc2VsZWN0LmlkID0ga2V5Ow0KICAgICAgICAgICAgICAgIGRvYy5hcHBlbmRDaGlsZChzZWxlY3QpOw0KICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uID0gInt7LndpemFyZC5lcGdTb3VyY2UuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJtM3UiOg0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBrZXksICIiKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LndpemFyZC5tM3UucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgiY2xhc3MiLCAid2l6YXJkIik7DQogICAgICAgICAgICAgICAgaW5wdXQuaWQgPSBrZXk7DQogICAgICAgICAgICAgICAgZG9jLmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbiA9ICJ7ey53aXphcmQubTN1LmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAieG1sdHYiOg0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBrZXksICIiKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LndpemFyZC54bWx0di5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJjbGFzcyIsICJ3aXphcmQiKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5pZCA9IGtleTsNCiAgICAgICAgICAgICAgICBkb2MuYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uID0gInt7LndpemFyZC54bWx0di5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICAgICAgY29uc29sZS5sb2coa2V5KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgfQ0KICAgICAgICB2YXIgcHJlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiUFJFIik7DQogICAgICAgIHByZS5pbm5lckhUTUwgPSBkZXNjcmlwdGlvbjsNCiAgICAgICAgZG9jLmFwcGVuZENoaWxkKHByZSk7DQogICAgICAgIGNvbnNvbGUubG9nKGhlYWRsaW5lLCBrZXkpOw0KICAgIH0NCn0NCmZ1bmN0aW9uIHJlYWR5Rm9yQ29uZmlndXJhdGlvbih3aXphcmQpIHsNCiAgICB2YXIgc2VydmVyID0gbmV3IFNlcnZlcigiZ2V0U2VydmVyQ29uZmlnIik7DQogICAgc2VydmVyLnJlcXVlc3QobmV3IE9iamVjdCgpKTsNCiAgICBzaG93RWxlbWVudCgibG9hZGluZyIsIGZhbHNlKTsNCiAgICBjb25maWd1cmF0aW9uV2l6YXJkW3dpemFyZF0uY3JlYXRlV2l6YXJkKCk7DQp9DQpmdW5jdGlvbiBzYXZlV2l6YXJkKCkgew0KICAgIHZhciBjbWQgPSAic2F2ZVdpemFyZCI7DQogICAgdmFyIGRpdiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb250ZW50Iik7DQogICAgdmFyIGNvbmZpZyA9IGRpdi5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCJ3aXphcmQiKTsNCiAgICB2YXIgd2l6YXJkID0gbmV3IE9iamVjdCgpOw0KICAgIGZvciAodmFyIGkgPSAwOyBpIDwgY29uZmlnLmxlbmd0aDsgaSsrKSB7DQogICAgICAgIHZhciBuYW1lOw0KICAgICAgICB2YXIgdmFsdWU7DQogICAgICAgIHN3aXRjaCAoY29uZmlnW2ldLnRhZ05hbWUpIHsNCiAgICAgICAgICAgIGNhc2UgIlNFTEVDVCI6DQogICAgICAgICAgICAgICAgbmFtZSA9IGNvbmZpZ1tpXS5uYW1lOw0KICAgICAgICAgICAgICAgIHZhbHVlID0gY29uZmlnW2ldLnZhbHVlOw0KICAgICAgICAgICAgICAgIC8vIFdlbm4gZGVyIFdlcnQgZWluZSBaYWhsIGlzdCwgd2lyZCBkaWVzZXIgYWxzIFphaGwgZ2VzcGVpY2hlcnQNCiAgICAgICAgICAgICAgICBpZiAoaXNOYU4odmFsdWUpKSB7DQogICAgICAgICAgICAgICAgICAgIHdpemFyZFtuYW1lXSA9IHZhbHVlOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICAgICAgd2l6YXJkW25hbWVdID0gcGFyc2VJbnQodmFsdWUpOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgIklOUFVUIjoNCiAgICAgICAgICAgICAgICBzd2l0Y2ggKGNvbmZpZ1tpXS50eXBlKSB7DQogICAgICAgICAgICAgICAgICAgIGNhc2UgInRleHQiOg0KICAgICAgICAgICAgICAgICAgICAgICAgbmFtZSA9IGNvbmZpZ1tpXS5uYW1lOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSBjb25maWdbaV0udmFsdWU7DQogICAgICAgICAgICAgICAgICAgICAgICBpZiAodmFsdWUubGVuZ3RoID09IDApIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgbXNnID0gbmFtZS50b1VwcGVyQ2FzZSgpICsgIjogIiArICJ7ey5hbGVydC5taXNzaW5nSW5wdXR9fSI7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgYWxlcnQobXNnKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICB3aXphcmRbbmFtZV0gPSB2YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICAgICAgLy8gY29kZS4uLg0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICB9DQogICAgfQ0KICAgIHZhciBkYXRhID0gbmV3IE9iamVjdCgpOw0KICAgIGRhdGFbIndpemFyZCJdID0gd2l6YXJkOw0KICAgIHZhciBzZXJ2ZXIgPSBuZXcgU2VydmVyKGNtZCk7DQogICAgc2VydmVyLnJlcXVlc3QoZGF0YSk7DQogICAgY29uc29sZS5sb2coZGF0YSk7DQp9DQovLyBXaXphcmQNCnZhciBjb25maWd1cmF0aW9uV2l6YXJkID0gbmV3IEFycmF5KCk7DQpjb25maWd1cmF0aW9uV2l6YXJkLnB1c2gobmV3IFdpemFyZEl0ZW0oInR1bmVyIiwgInt7LndpemFyZC50dW5lci50aXRsZX19IikpOw0KY29uZmlndXJhdGlvbldpemFyZC5wdXNoKG5ldyBXaXphcmRJdGVtKCJlcGdTb3VyY2UiLCAie3sud2l6YXJkLmVwZ1NvdXJjZS50aXRsZX19IikpOw0KY29uZmlndXJhdGlvbldpemFyZC5wdXNoKG5ldyBXaXphcmRJdGVtKCJtM3UiLCAie3sud2l6YXJkLm0zdS50aXRsZX19IikpOw0KY29uZmlndXJhdGlvbldpemFyZC5wdXNoKG5ldyBXaXphcmRJdGVtKCJ4bWx0diIsICJ7ey53aXphcmQueG1sdHYudGl0bGV9fSIpKTsNCg==" + webUI["html/js/mapping-editor.js"] = "dmFyIG1hcHBpbmdFcnJvciAgPSBmYWxzZTsNCnZhciBidWxrICAgICAgICAgID0gZmFsc2U7DQp2YXIgYnVsa0VkaXRBbGwgICA9IGZhbHNlOyANCnZhciBzZWxlY3RPYmogICAgID0gbmV3IE9iamVjdCgpOw0KdmFyIHNlYXJjaE9iaiAgICAgPSBuZXcgT2JqZWN0KCk7DQoNCnZhciBidWxrSURzICAgICAgID0gbmV3IEFycmF5KCk7DQp2YXIgYnVsa0NoYW5nZU9iaiA9IG5ldyBPYmplY3QoKTsNCg0KZnVuY3Rpb24gY2hlY2tVbmRvKGtleSwgZWxtKSB7DQogIHZhciB0bXAgPSBuZXcgT2JqZWN0KCk7DQogIHRtcCA9IGVsbQ0KICBjb25zb2xlLmxvZygiLS0iKTsNCiAgaWYgKHVuZG8uaGFzT3duUHJvcGVydHkoImVwZ01hcHBpbmciKSkgew0KICAgIHhFUEdbImVwZ01hcHBpbmciXSA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkodW5kb1siZXBnTWFwcGluZyJdKSk7Ow0KICB9IGVsc2Ugew0KICAgIHVuZG9bImVwZ01hcHBpbmciXSA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkoZWxtKSk7DQogIH0NCn0NCg0KLy92YXIgcGxleENhdGVnb3JpZXMgPSBuZXcgQXJyYXkoIi0iLCAiQWN0aW9uIHNwb3J0cyIsICJBY3Rpb24iLCAiQWR1bHRzIG9ubHkiLCAiQWR2ZW50dXJlIiwgIkFlcm9iaWNzIiwgIkFuaW1hbHMiLCAiQW5pbWF0ZWQiLCAiQW5pbWUiLCAiQW50aG9sb2d5IiwgIkFyY2hlcnkiLCAiQXJ0IiwgIkFydHMvY3JhZnRzIiwgIkF1Y3Rpb24iLCAiQXV0byByYWNpbmciLCAiQXV0byIsICJBdmlhdGlvbiIsICJBd2FyZHMiLCAiQmFsbGV0IiwgIkJhc2ViYWxsIiwgIkJhc2tldGJhbGwiLCAiQmljeWNsZSByYWNpbmciLCAiQmljeWNsZSIsICJCaWxsaWFyZHMiLCAiQmlvZ3JhcGh5IiwgIkJvYXQgcmFjaW5nIiwgIkJvYXQiLCAiQm93bGluZyIsICJCb3hpbmciLCAiQnVzLi9maW5hbmNpYWwiLCAiQ2hpbGRyZW4iLCAiQ29sbGVjdGlibGVzIiwgIkNvbWVkeSBkcmFtYSIsICJDb21lZHkiLCAiQ29tbXVuaXR5IiwgIkNvbXB1dGVycyIsICJDb25zdW1lciIsICJDb29raW5nIiwgIkNyaW1lIGRyYW1hIiwgIkNyaW1lIiwgIkRhbmNlIiwgIkRhcmsgY29tZWR5IiwgIkRlYmF0ZSIsICJEaXZpbmciLCAiRG9jdWRyYW1hIiwgIkRvY3VtZW50YXJ5IiwgIkRyYW1hIiwgIkVkdWNhdGlvbmFsIiwgIkVudGVydGFpbm1lbnQiLCAiRW52aXJvbm1lbnQiLCAiRXF1ZXN0cmlhbiIsICJFcm90aWMiLCAiRXZlbnQiLCAiRmFudGFzeSIsICJGYXNoaW9uIiwgIkZlYXR1cmUgRmlsbSIsICJGaXNoaW5nIiwgIkZvb3RiYWxsIiwgIkdhbWUgc2hvdyIsICJHYW1pbmciLCAiR2F5L2xlc2JpYW4iLCAiR29sZiIsICJIYW5kYmFsbCIsICJIZWFsdGgiLCAiSGlzdG9yaWNhbCBkcmFtYSIsICJIaXN0b3J5IiwgIkhvY2tleSIsICJIb2xpZGF5IiwgIkhvbWUgaW1wcm92ZW1lbnQiLCAiSG9ycm9yIiwgIkhvcnNlIiwgIkhvdXNlL2dhcmRlbiIsICJIb3ctdG8iLCAiSW50ZXJ2aWV3IiwgIkludGwgc29jY2VyIiwgIkxhdyIsICJNYXJ0aWFsIGFydHMiLCAiTWVkaWNhbCIsICJNaWxpdGFyeSIsICJNaW5pc2VyaWVzIiwgIk1peGVkIG1hcnRpYWwgYXJ0cyIsICJNb3RvcmN5Y2xlIHJhY2luZyIsICJNb3RvcmN5Y2xlIiwgIk1vdG9yc3BvcnRzIiwgIk1vdW50YWluIGJpa2luZyIsICJNdXNpYyIsICJNdXNpY2FsIGNvbWVkeSIsICJNdXNpY2FsIiwgIk15c3RlcnkiLCAiTmF0dXJlIiwgIk5ld3MiLCAiTmV3c21hZ2F6aW5lIiwgIk9seW1waWNzIiwgIk9wZXJhIiwgIk91dGRvb3JzIiwgIlBhcmFkZSIsICJQYXJhbm9ybWFsIiwgIlBhcmVudGluZyIsICJQZXJmb3JtaW5nIGFydHMiLCAiUGxheW9mZiBzcG9ydHMiLCAiUG9rZXIiLCAiUG9saXRpY3MiLCAiUHJvIHdyZXN0bGluZyIsICJQdWJsaWMgYWZmYWlycyIsICJSZWFsaXR5IiwgIlJlbGlnaW91cyIsICJSb2RlbyIsICJSb2xsZXIgZGVyYnkiLCAiUm9tYW5jZSIsICJSb21hbnRpYyBjb21lZHkiLCAiUnVnYnkiLCAiUnVubmluZyIsICJTYWlsaW5nIiwgIlNjaWVuY2UgZmljdGlvbiIsICJTY2llbmNlIiwgIlNlbGYgaW1wcm92ZW1lbnQiLCAiU2VyaWVzIiwgIlNob290aW5nIiwgIlNob3BwaW5nIiwgIlNob3J0IEZpbG0iLCAiU2l0Y29tIiwgIlNraWluZyIsICJTbm9va2VyIiwgIlNvYXAiLCAiU29jY2VyIiwgIlNwZWNpYWwiLCAiU3BvcnRzIiwgInNwb3J0cyIsICJTcG9ydHMgZXZlbnQiLCAiU3BvcnRzIG5vbi1ldmVudCIsICJTcG9ydHMgdGFsayIsICJTdGFuZHVwIiwgIlN1cmZpbmciLCAiU3VzcGVuc2UiLCAiVFYgTW92aWUiLCAiVGFsayIsICJUZWNobm9sb2d5IiwgIlRlbm5pcyIsICJUaGVhdGVyIiwgIlRocmlsbGVyIiwgIlRyYWNrL2ZpZWxkIiwgIlRyYXZlbCIsICJUcmlhdGhsb24iLCAiVmFyaWV0eSIsICJWb2xsZXliYWxsIiwgIldhciIsICJXYXRlcnNwb3J0cyIsICJXZWF0aGVyIiwgIldlc3Rlcm4iLCAiV3Jlc3RsaW5nIiwgIllhY2h0IHJhY2luZyIsICJtb3ZpZSIsICJzZXJpZXMiLCAic3BvcnRzIiwgInR2c2hvdyIpOw0KdmFyIHBsZXhDYXRlZ29yaWVzVmFsdWVzID0gbmV3IEFycmF5KCItIiwgIktpZHMiLCAiTmV3cyIsICJNb3ZpZSIsICJTZXJpZXMiLCAiU3BvcnRzIikNCnZhciBwbGV4Q2F0ZWdvcmllc09wdGlvbiA9IG5ldyBBcnJheSgiLSIsICJLaWRzIChFbWJ5IG9ubHkpIiwgIk5ld3MiLCAiTW92aWUiLCAiU2VyaWVzIiwgIlNwb3J0cyIpDQoNCg0KZnVuY3Rpb24gb3Blbk1hcHBpbmdFZGl0b3IoZWxtKSB7DQogIHZhciBjb2x1bW5Ub1NvcnQgID0gMQ0KDQogIGNoZWNrVW5kbygiZXBnTWFwcGluZyIsIHhFUEdbImVwZ01hcHBpbmciXSkNCg0KICB2YXIgbmV3RGl2ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNldHRpbmdzIik7DQogIA0KICB2YXIgbmV3RW50cnkgPSBuZXcgT2JqZWN0KCk7DQogIG5ld0VudHJ5WyJfZWxlbWVudCJdICA9ICJIUiI7DQogIG5ld0Rpdi5hcHBlbmRDaGlsZChjcmVhdGVFbGVtZW50KG5ld0VudHJ5KSk7DQoNCiAgdmFyIG5ld0VudHJ5ID0gbmV3IE9iamVjdCgpOw0KICBuZXdFbnRyeVsiX2VsZW1lbnQiXSAgICA9ICJJTlBVVCI7DQogIG5ld0VudHJ5WyJ0eXBlIl0gICAgICAgID0gImJ1dHRvbiI7DQogIG5ld0VudHJ5WyJjbGFzcyJdICAgICAgID0gImJ1dHRvbiI7DQogIG5ld0VudHJ5WyJ2YWx1ZSJdICAgICAgID0gIlNhdmUiOw0KICBuZXdFbnRyeVsib25jbGljayJdICAgICA9ICJzYXZlWEVQRygpIjsNCiAgbmV3RGl2LmFwcGVuZENoaWxkKGNyZWF0ZUVsZW1lbnQobmV3RW50cnkpKTsNCg0KICB2YXIgbmV3RW50cnkgPSBuZXcgT2JqZWN0KCk7DQogIG5ld0VudHJ5WyJfZWxlbWVudCJdICAgID0gIklOUFVUIjsNCiAgbmV3RW50cnlbInR5cGUiXSAgICAgICAgPSAiYnV0dG9uIjsNCiAgbmV3RW50cnlbImNsYXNzIl0gICAgICAgPSAiYnV0dG9uIjsNCiAgbmV3RW50cnlbInZhbHVlIl0gICAgICAgPSAiQnVsayBFZGl0IjsNCiAgbmV3RW50cnlbIm9uY2xpY2siXSAgICAgPSAiYnVsa0VkaXQoKSI7DQogIG5ld0Rpdi5hcHBlbmRDaGlsZChjcmVhdGVFbGVtZW50KG5ld0VudHJ5KSk7DQoNCiAgdmFyIG5ld0VudHJ5ID0gbmV3IE9iamVjdCgpOw0KICBuZXdFbnRyeVsiX2VsZW1lbnQiXSAgICA9ICJJTlBVVCI7DQogIG5ld0VudHJ5WyJ0eXBlIl0gICAgICAgID0gImJ1dHRvbiI7DQogIG5ld0VudHJ5WyJjbGFzcyJdICAgICAgID0gImJ1dHRvbiI7DQogIG5ld0VudHJ5WyJ2YWx1ZSJdICAgICAgID0gIlNob3cgWEVQRyI7DQogIG5ld0VudHJ5WyJvbmNsaWNrIl0gICAgID0gInNob3dYRVBHKCkiOw0KICBuZXdEaXYuYXBwZW5kQ2hpbGQoY3JlYXRlRWxlbWVudChuZXdFbnRyeSkpOw0KDQogIHZhciBuZXdFbnRyeSA9IG5ldyBPYmplY3QoKTsNCiAgbmV3RW50cnlbIl9lbGVtZW50Il0gICAgPSAiSU5QVVQiOw0KICBuZXdFbnRyeVsiY2xhc3MiXSAgICAgICA9ICJzZWFyY2giOw0KICBuZXdFbnRyeVsiaWQiXSAgICAgICAgICA9ICJzZWFyY2hNYXBwaW5nIjsNCiAgbmV3RW50cnlbInR5cGUiXSAgICAgICAgPSAic2VhcmNoIjsNCiAgbmV3RW50cnlbInBsYWNlaG9sZGVyIl0gPSAiU2VhcmNoIjsNCiAgbmV3RW50cnlbIm9uY2hhbmdlIl0gICAgPSAic2VhcmNoSW5NYXBwaW5nKCkiOw0KICBuZXdEaXYuYXBwZW5kQ2hpbGQoY3JlYXRlRWxlbWVudChuZXdFbnRyeSkpOw0KDQogIHZhciBkaXYgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic2V0dGluZ3MiKTsNCiAgLy9zY3JlZW5Mb2coIkR1cGxpY2F0ZSBJRCIsICJlcnJvciIsIHRydWUpDQogIA0KDQogIC8vIEJ1aWxkIHRhYmxlDQoNCiAgdmFyIG5ld1dyYXBwZXIgPSBuZXcgT2JqZWN0KCk7DQogIG5ld1dyYXBwZXJbIl9lbGVtZW50Il0gID0gIkRJViI7DQogIG5ld1dyYXBwZXJbImlkIl0gICAgICAgID0gImJveC13cmFwcGVyIjsNCiAgZGl2LmFwcGVuZENoaWxkKGNyZWF0ZUVsZW1lbnQobmV3V3JhcHBlcikpOw0KDQoNCiAgdmFyIG5ld1RhYmxlID0gbmV3IE9iamVjdCgpOw0KICBuZXdUYWJsZVsiX2VsZW1lbnQiXSAgPSAiVEFCTEUiOw0KICBuZXdUYWJsZVsiaWQiXSAgICAgICAgPSAiaWRfbWFwcGluZyI7DQogIG5ld1RhYmxlWyJjbGFzcyJdICAgICA9ICJ0YWJsZS1tYXBwaW5nIjsNCiAgZGl2Lmxhc3RDaGlsZC5hcHBlbmRDaGlsZChjcmVhdGVFbGVtZW50KG5ld1RhYmxlKSk7DQogIHNob3dMb2FkaW5nU2NyZWVuKHRydWUpOw0KDQogIHNldFRpbWVvdXQoZnVuY3Rpb24oKXsgDQogICAgY3JlYXRlTWFwcGluZ1RhYmxlKCk7IA0KICB9LCAxMCk7DQoNCn0NCg0KZnVuY3Rpb24gY3JlYXRlU2VhcmNoT2JqKCkgew0KICBzZWFyY2hPYmogPSBuZXcgT2JqZWN0KCk7DQogIHZhciBJRHMgPSBnZXRPYmpLZXlzKHhFUEdbImVwZ01hcHBpbmciXSkNCiAgZm9yICh2YXIgaSA9IElEcy5sZW5ndGggLSAxOyBpID49IDA7IGktLSkgew0KICAgIHZhciBpdGVtID0geEVQR1siZXBnTWFwcGluZyJdW0lEc1tpXV07DQogICAgdmFyIHNlYXJjaElEID0gaXRlbVsieC1lcGciXTsNCiAgICB2YXIgc2VhcmNoVmFsdWUgPSAiIjsgDQogICAgc2VhcmNoVmFsdWUgPSBzZWFyY2hWYWx1ZSArIGl0ZW1bIngtY2hhbm5lbElEIl0gKyAiICI7DQogICAgc2VhcmNoVmFsdWUgPSBzZWFyY2hWYWx1ZSArIGl0ZW1bIngtY2F0ZWdvcnkiXSArICIgIjsNCiAgICBzZWFyY2hWYWx1ZSA9IHNlYXJjaFZhbHVlICsgaXRlbVsieC1uYW1lIl0gKyAiICI7DQogICAgc2VhcmNoVmFsdWUgPSBzZWFyY2hWYWx1ZSArIGl0ZW1bIngtZ3JvdXAtdGl0bGUiXSArICIgIjsNCiAgICBzZWFyY2hWYWx1ZSA9IHNlYXJjaFZhbHVlICsgaXRlbVsieC14bWx0di1maWxlIl0gKyAiICI7DQogICAgc2VhcmNoVmFsdWUgPSBzZWFyY2hWYWx1ZSArIGl0ZW1bIl9maWxlLm0zdS5uYW1lIl0gKyAiICI7DQoNCiAgICBzd2l0Y2goaXRlbVsieC1hY3RpdmUiXSkgew0KICAgICAgY2FzZSB0cnVlOiAgc2VhcmNoVmFsdWUgPSBzZWFyY2hWYWx1ZSArICJvbmxpbmUiOyBicmVhazsNCiAgICAgIGNhc2UgZmFsc2U6IHNlYXJjaFZhbHVlID0gc2VhcmNoVmFsdWUgKyAib2ZmbGluZSI7IGJyZWFrOw0KICAgIH0NCg0KICAgIHNlYXJjaE9ialtzZWFyY2hWYWx1ZV0gPSBzZWFyY2hJRDsNCg0KICB9DQp9DQoNCg0KZnVuY3Rpb24gY2FsY3VsYXRlV3JhcHBlckhlaWdodCgpIHsNCg0KICBpZiAoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImJveC13cmFwcGVyIikpew0KDQogICAgdmFyIGVsbSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJib3gtd3JhcHBlciIpOw0KICAgIA0KICAgIHZhciBkaXZzID0gbmV3IEFycmF5KCJteVN0cmVhbXNCb3giLCAiY2xpZW50SW5mbyIsICJzZXR0aW5ncyIpOw0KICAgIHZhciBlbGVtZW50c0hlaWdodCA9IDAgLSBlbG0ub2Zmc2V0SGVpZ2h0Ow0KICAgIGZvciAodmFyIGkgPSAwOyBpIDwgZGl2cy5sZW5ndGg7IGkrKykgew0KICAgICAgZWxlbWVudHNIZWlnaHQgPSBlbGVtZW50c0hlaWdodCArIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGRpdnNbaV0pLm9mZnNldEhlaWdodDsNCiAgICB9DQoNCiAgICBlbG0uc3R5bGUuaGVpZ2h0ID0gd2luZG93LmlubmVySGVpZ2h0IC0gZWxlbWVudHNIZWlnaHQgKyAicHgiOw0KDQogIH0NCg0KICBpZiAoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm1lbnUtd3JhcHBlciIpKXsNCg0KICAgIHZhciBlbG0gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibWVudS13cmFwcGVyIik7DQogICAgDQogICAgdmFyIG9mZmVzdCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzZXR0aW5ncyIpLm9mZnNldEhlaWdodCArIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJteVN0cmVhbXNCb3giKS5vZmZzZXRIZWlnaHQgKyBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY2xpZW50SW5mbyIpLm9mZnNldEhlaWdodDsNCiAgICANCiAgICBpZiAod2luZG93LmlubmVySGVpZ2h0ID4gb2ZmZXN0KSB7DQogICAgICBlbG0uc3R5bGUuaGVpZ2h0ID0gd2luZG93LmlubmVySGVpZ2h0ICsgInB4Ig0KICAgIH0gZWxzZSB7DQogICAgICBlbG0uc3R5bGUuaGVpZ2h0ID0gb2ZmZXN0ICsgInB4Ig0KICAgIH0NCiAgICANCg0KICB9DQoNCg0KfQ0KDQpmdW5jdGlvbiBjcmVhdGVNYXBwaW5nVGFibGUoKSB7DQogIGNvbHVtblRvU29ydCA9IDE7DQogIGNyZWF0ZVNlYXJjaE9iaigpOw0KDQogIC8vIENyZWF0ZSB0YWJsZSAoSGVhZGVyKQ0KICB2YXIgdGFibGUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiaWRfbWFwcGluZyIpOw0KICB0YWJsZS5pbm5lckhUTUwgPSAiIjsNCiAgdmFyIG5ld1RSID0gbmV3IE9iamVjdCgpOw0KICBuZXdUUlsiX2VsZW1lbnQiXSA9ICJUUiI7DQogIG5ld1RSWyJjbGFzcyJdICAgID0gInRhYmxlLW1hcHBpbmctaGVhZGVyIjsNCiAgdGFibGUuYXBwZW5kQ2hpbGQoY3JlYXRlRWxlbWVudChuZXdUUikpOw0KDQogIHZhciB0ciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJpZF9tYXBwaW5nIikubGFzdENoaWxkOw0KICB2YXIgdHJIZWFkbGluZXMgPSBuZXcgQXJyYXkoIkJ1bGsiLCAiQ2guIE5vLiIsICJMb2dvIiwgIkNoYW5uZWwgTmFtZSIsICJQbGF5bGlzdCIsICJHcm91cCBUaXRsZSIsICJYTUxUViBGaWxlIiwgIlhNTFRWIElEIiwgIlRpbWVzaGlmdCIpDQoNCiAgZm9yICh2YXIgaSA9IDA7IGkgPCB0ckhlYWRsaW5lcy5sZW5ndGg7IGkrKykgew0KICAgIHZhciBuZXdURCA9IG5ldyBPYmplY3QoKTsNCg0KICAgIG5ld1REWyJfZWxlbWVudCJdID0gIlREIjsNCiAgICBuZXdURFsiX3RleHQiXSAgICA9IHRySGVhZGxpbmVzW2ldOw0KDQogICAgDQoNCiAgICB2YXIgd2lkdGggPSAiIjsNCiAgICBzd2l0Y2godHJIZWFkbGluZXNbaV0pIHsNCg0KICAgICAgY2FzZSAiQnVsayI6ICANCiAgICAgICAgDQogICAgICAgIG1heFdpZHRoID0gIjMycHgiOyANCiAgICAgICAgbWluV2lkdGggPSAiMzJweCI7IA0KICAgIA0KICAgICAgICAvLyBDcmVhdGUgYnVsayBURA0KICAgICAgICB2YXIgbmV3Q2hlY2tib3ggPSBuZXcgT2JqZWN0KCk7DQogICAgICAgIG5ld0NoZWNrYm94WyJfZWxlbWVudCJdID0gIklOUFVUIjsNCiAgICAgICAgbmV3Q2hlY2tib3hbInR5cGUiXSAgICAgPSAiY2hlY2tib3giOw0KICAgICAgICBuZXdDaGVja2JveFsiY2xhc3MiXSAgICA9ICJidWxrIGhpZGVCdWxrIjsNCiAgICAgICAgbmV3Q2hlY2tib3hbIm9ubW91c2VvdXQiXSA9ICJqYXZhc2NyaXB0OiB0aGlzLmJsdXIoKSINCiAgICAgICAgbmV3Q2hlY2tib3hbIm9uY2xpY2siXSAgICA9ICJqYXZhc2NyaXB0OiBidWxrRWRpdEFsbENoYW5uZWxzKCkiDQoNCiAgICANCiAgICAgICAgLy9uZXdURC5hcHBlbmRDaGlsZChjcmVhdGVFbGVtZW50KG5ld0NoZWNrYm94KSk7DQoNCiAgICAgICAgYnJlYWs7DQoNCiAgICAgIGNhc2UgIkNoLiBOby4iOiANCiAgICAgICAgbWF4V2lkdGggPSAiODBweCI7IA0KICAgICAgICBtaW5XaWR0aCA9ICI3MHB4IjsgDQogICAgICAgIG5ld1REWyJvbmNsaWNrIl0gID0gImphdnNjcmlwdDogc29ydFRhYmxlKCIgKyBpICsgIik7IjsNCiAgICAgICAgbmV3VERbImNsYXNzIl0gICAgPSAicG9pbnRlciI7DQogICAgICAgIGJyZWFrOw0KICAgICAgDQogICAgICBjYXNlICJMb2dvIjogIG1heFdpZHRoID0gIjEyMHB4IjsgbWluV2lkdGggPSAiNjBweCI7IGJyZWFrOw0KICAgICAgDQogICAgICBjYXNlICJDaGFubmVsIE5hbWUiOiAgDQogICAgICAgIG1heFdpZHRoID0gIjUwJSI7IA0KICAgICAgICBtaW5XaWR0aCA9ICIyMDBweCI7IA0KICAgICAgICBuZXdURFsib25jbGljayJdICA9ICJqYXZzY3JpcHQ6IHNvcnRUYWJsZSgiICsgaSArICIpOyI7DQogICAgICAgIG5ld1REWyJjbGFzcyJdID0gInBvaW50ZXIiOw0KICAgICAgICBicmVhazsNCg0KICAgICAgY2FzZSAiUGxheWxpc3QiOiAgICAgIA0KICAgICAgICBtYXhXaWR0aCA9ICIxNTBweCI7IA0KICAgICAgICBtaW5XaWR0aCA9ICIxMDBweCI7IA0KICAgICAgICBuZXdURFsib25jbGljayJdICA9ICJqYXZzY3JpcHQ6IHNvcnRUYWJsZSgiICsgaSArICIpOyI7DQogICAgICAgIG5ld1REWyJjbGFzcyJdICAgID0gInBvaW50ZXIiOw0KICAgICAgICBicmVhazsNCiAgICAgIA0KICAgICAgY2FzZSAiR3JvdXAgVGl0bGUiOiAgIA0KICAgICAgICBtYXhXaWR0aCA9ICIxNTBweCI7IA0KICAgICAgICBtaW5XaWR0aCA9ICIxMDBweCI7IA0KICAgICAgICBuZXdURFsib25jbGljayJdICA9ICJqYXZzY3JpcHQ6IHNvcnRUYWJsZSgiICsgaSArICIpOyI7DQogICAgICAgIG5ld1REWyJjbGFzcyJdICAgID0gInBvaW50ZXIiOw0KICAgICAgICBicmVhazsNCiAgICAgIA0KICAgICAgY2FzZSAiWE1MVFYgRmlsZSI6ICAgIA0KICAgICAgICBtYXhXaWR0aCA9ICIxNTBweCI7IA0KICAgICAgICBtaW5XaWR0aCA9ICIxMDBweCI7IA0KICAgICAgICAvL25ld1REWyJvbmNsaWNrIl0gID0gImphdnNjcmlwdDogc29ydFRhYmxlKCIgKyBpICsgIik7IjsNCiAgICAgICAgbmV3VERbImNsYXNzIl0gICAgPSAiIjsNCiAgICAgICAgYnJlYWs7DQogICAgICANCg0KICAgICAgY2FzZSAiWE1MVFYgSUQiOiAgICAgIG1heFdpZHRoID0gIjE1MHB4IjsgbWluV2lkdGggPSAiMTAwcHgiOyBicmVhazsNCg0KICAgICAgY2FzZSAiVGltZXNoaWZ0IjoNCiAgICAgICAgbWF4V2lkdGggPSAiNTBweCI7DQogICAgICAgIG1pbldpZHRoID0gIjIwcHgiOw0KICAgICAgICBuZXdURFsib25jbGljayJdID0gImphdnNjcmlwdDogc29ydFRhYmxlKCIgKyBpICsgIik7IjsNCiAgICAgICAgbmV3VERbImNsYXNzIl0gICA9ICJwb2ludGVyIjsNCiAgICAgICAgYnJlYWs7DQoNCiAgICAgIGRlZmF1bHQ6IA0KICAgICAgICBuZXdURFsiY2xhc3MiXSAgICA9ICIiOw0KICAgICAgICBicmVhazsNCiAgICB9DQoNCiAgICB0ci5hcHBlbmRDaGlsZChjcmVhdGVFbGVtZW50KG5ld1REKSk7DQogICAgaWYgKHRySGVhZGxpbmVzW2ldID09ICJCdWxrIikgew0KICAgICAgdHIubGFzdENoaWxkLmlubmVySFRNTCA9ICIiOw0KICAgICAgdHIubGFzdENoaWxkLmFwcGVuZENoaWxkKGNyZWF0ZUVsZW1lbnQobmV3Q2hlY2tib3gpKTsNCiAgICAgIA0KICAgIH0NCiAgICANCiAgICB2YXIgZWxtID0gdHIubGFzdENoaWxkOw0KICAgIGVsbS5zdHlsZS53aWR0aCA9IG1heFdpZHRoOw0KICAgIGVsbS5zdHlsZS5tYXhXaWR0aCA9IG1heFdpZHRoOw0KICAgIGVsbS5zdHlsZS5taW5XaWR0aCA9IG1pbldpZHRoOw0KDQogIH0NCiAgY2FsY3VsYXRlV3JhcHBlckhlaWdodCgpOw0KICB2YXIgSURzID0gZ2V0T2JqS2V5cyh4RVBHWyJlcGdNYXBwaW5nIl0pDQoNCiAgdmFyIGFsbFhtbHR2RmlsZXMgPSBnZXRPYmpLZXlzKHhFUEdbInhtbHR2TWFwIl0pOw0KDQogIGlmIChhbGxYbWx0dkZpbGVzID09IDApIHsNCiAgICBzaG93TG9hZGluZ1NjcmVlbihmYWxzZSk7DQogICAgcmV0dXJuOw0KICB9DQoNCiAgLy8gU29ydCBJRHMNCiAgdmFyIHBvc09iaiA9IG5ldyBPYmplY3QoKTsNCiAgZm9yICh2YXIgaSA9IDA7IGkgPCBJRHMubGVuZ3RoOyBpKyspIHsNCiAgICB2YXIgaXRlbSAgPSB4RVBHWyJlcGdNYXBwaW5nIl1bSURzW2ldXTsNCiAgICB2YXIgcG9zDQogICAgc3dpdGNoKGlzTmFOKHhFUEdbImVwZ01hcHBpbmciXVtJRHNbaV1dWyJ4LWNoYW5uZWxJRCJdKSkgew0KICAgICAgY2FzZSBmYWxzZTogcG9zID0gcGFyc2VGbG9hdCh4RVBHWyJlcGdNYXBwaW5nIl1bSURzW2ldXVsieC1jaGFubmVsSUQiXSkgOyBicmVhazsNCiAgICB9DQogICAgcG9zT2JqW3Bvc10gPSBpdGVtOw0KICB9DQogIHBvc0Zsb2F0ID0gZ2V0T2JqS2V5cyhwb3NPYmopDQogIGZ1bmN0aW9uIHNvcnRGbG9hdChhLGIpIHsgcmV0dXJuIGEgLSBiOyB9DQogIHBvc0Zsb2F0LnNvcnQoc29ydEZsb2F0KQ0KDQogIC8vY29uc29sZS5sb2cocG9zRmxvYXQpOw0KDQogIC8vIC0tLQ0KDQogIGlmIChJRHMubGVuZ3RoID4gMjAwKSB7DQogICAgc2V0VGltZW91dChmdW5jdGlvbigpeyANCiAgICAgIHNob3dMb2FkaW5nU2NyZWVuKHRydWUpOw0KICAgIH0sIDEpOw0KDQogIH0NCg0KDQogIC8vIHRhYmxlIGZvciBpbnQgY2hhbm5lbCBJRCdzDQogIGZvciAodmFyIGkgPSAwOyBpIDwgcG9zRmxvYXQubGVuZ3RoOyBpKyspIHsNCg0KICAgIHZhciB0YWJsZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJpZF9tYXBwaW5nIik7DQogICAgdmFyIGl0ZW0gID0gcG9zT2JqW3Bvc0Zsb2F0W2ldXTsNCiAgICAvL3ZhciBpdGVtICA9IHhFUEdbImVwZ01hcHBpbmciXVtJRHNbaV1dOw0KICAgIC8vY29uc29sZS5sb2coaXRlbSk7DQogICAgdmFyIG5ld1RSID0gbmV3IE9iamVjdCgpOw0KICAgIG5ld1RSWyJfZWxlbWVudCJdICAgICAgID0gIlRSIjsNCiAgICBuZXdUUlsiY2xhc3MiXSAgICAgICAgICA9ICIiOw0KICAgIG5ld1RSWyJpZCJdICAgICAgICAgICAgID0gaXRlbVsieC1lcGciXTsNCiAgICBuZXdUUlsib25jb250ZXh0bWVudSJdICA9ICdqYXZhc2NyaXB0OiBzd2l0Y2hDaGFubmVsU3RhdHVzKCInICsgaXRlbVsieC1lcGciXSArICciKTsgcmV0dXJuIGZhbHNlOyc7DQogICAgdGFibGUuYXBwZW5kQ2hpbGQoY3JlYXRlRWxlbWVudChuZXdUUikpOw0KDQogICAgdmFyIHRyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImlkX21hcHBpbmciKS5sYXN0Q2hpbGQ7DQogICAgDQogICAgLy8gQ3JlYXRlIGJ1bGsgVEQNCiAgICB2YXIgbmV3VEQgPSBuZXcgT2JqZWN0KCk7DQogICAgbmV3VERbIl9lbGVtZW50Il0gICA9ICJJTlBVVCI7DQogICAgbmV3VERbInR5cGUiXSAgICAgICA9ICJjaGVja2JveCI7DQogICAgbmV3VERbImNsYXNzIl0gICAgICA9ICJidWxrIGhpZGVCdWxrIjsNCiAgICBuZXdURFsib25tb3VzZW91dCJdID0gImphdmFzY3JpcHQ6IHRoaXMuYmx1cigpIg0KICAgIA0KICAgIGNyZWF0ZU5ld1REKG5ld1RELCB0cik7DQogICAgDQoNCiAgICAvLyBDcmVhdGUgSUQgVEQNCiAgICB2YXIgbmV3VEQgPSBuZXcgT2JqZWN0KCk7DQogICAgbmV3VERbIl9lbGVtZW50Il0gPSAiSU5QVVQiOw0KICAgIG5ld1REWyJ0eXBlIl0gICAgID0gInRleHQiDQogICAgbmV3VERbImNsYXNzIl0gICAgPSAidzQwcHgiOw0KICAgIG5ld1REWyJ2YWx1ZSJdICAgID0gaXRlbVsieC1jaGFubmVsSUQiXTsNCiAgICBuZXdURFsib25mb2N1c291dCJdID0gImphdmFzY3JpcHQ6IGFycmFuZ2VUYWJsZSh0aGlzKTsiDQogICAgY3JlYXRlTmV3VEQobmV3VEQsIHRyKTsNCg0KICAgIC8vIENyZWF0ZSBJTUcgVEQNCiAgICB2YXIgbmV3VEQgPSBuZXcgT2JqZWN0KCk7DQogICAgbmV3VERbIl9lbGVtZW50Il0gPSAiSU1HIjsNCiAgICBuZXdURFsib25jbGljayJdICA9ICdqYXZhc2NyaXB0OiBtYXBwaW5nRGV0YWlsKCInICsgaXRlbVsieC1lcGciXSArICciKTsnOw0KICAgIGlmIChpdGVtWyJ0dmctbG9nbyJdICE9IHVuZGVmaW5lZCkgew0KICAgICAgbmV3VERbInNyYyJdICAgICAgPSBpdGVtWyJ0dmctbG9nbyJdOw0KICAgIH0gZWxzZSB7DQogICAgICBpdGVtWyJ0dmctbG9nbyJdID0gIiI7DQogICAgICBuZXdURFsic3JjIl0gPSAiIjsNCiAgICB9DQogICAgY3JlYXRlTmV3VEQobmV3VEQsIHRyKTsNCiAgICB0ci5sYXN0Q2hpbGQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IG1hcHBpbmdEZXRhaWwoIicgKyBpdGVtWyJ4LWVwZyJdICsgJyIpOycpDQoNCiAgICAvLyBDcmVhdGUgUCBURCAoY2hhbm5lbCBuYW1lKQ0KICAgIHZhciBuZXdURCA9IG5ldyBPYmplY3QoKTsNCiAgICBuZXdURFsiX2VsZW1lbnQiXSA9ICJQIjsNCiAgICBuZXdURFsiX3RleHQiXSAgICA9IGl0ZW1bIngtbmFtZSJdOw0KICAgIG5ld1REWyJjbGFzcyJdICAgICA9IGl0ZW1bIngtY2F0ZWdvcnkiXTsNCg0KICAgIGNyZWF0ZU5ld1REKG5ld1RELCB0cik7DQogICAgdHIubGFzdENoaWxkLnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBtYXBwaW5nRGV0YWlsKCInICsgaXRlbVsieC1lcGciXSArICciKTsnKQ0KICAgIHRyLmxhc3RDaGlsZC5sYXN0Q2hpbGQuc3R5bGUucGFkZGluZyA9ICI1cHggMTBweCI7DQoNCiAgICAvLyBDcmVhdGUgUCBURCAoUGxheWxpc3QgTmFtZSkNCiAgICB2YXIgbmV3VEQgPSBuZXcgT2JqZWN0KCk7DQogICAgbmV3VERbIl9lbGVtZW50Il0gPSAiUCI7DQogICAgbmV3VERbIl90ZXh0Il0gICAgPSBpdGVtWyJfZmlsZS5tM3UubmFtZSJdOw0KICAgIG5ld1REWyJjbGFzcyJdICAgICA9IGl0ZW1bInRhYmxlRWxsaXBzaXMiXTsNCiAgICANCiAgICBjcmVhdGVOZXdURChuZXdURCwgdHIpOw0KICAgIHRyLmxhc3RDaGlsZC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogbWFwcGluZ0RldGFpbCgiJyArIGl0ZW1bIngtZXBnIl0gKyAnIik7JykNCiAgICANCiAgICAvLyBDcmVhdGUgUCBURCAoR3JvdXAgVGl0bGUpDQogICAgdmFyIG5ld1REID0gbmV3IE9iamVjdCgpOw0KICAgIG5ld1REWyJfZWxlbWVudCJdID0gIlAiOw0KICAgIG5ld1REWyJfdGV4dCJdICAgID0gaXRlbVsieC1ncm91cC10aXRsZSJdOw0KICAgIG5ld1REWyJjbGFzcyJdICAgICA9IGl0ZW1bInRhYmxlRWxsaXBzaXMiXTsNCiAgICANCiAgICBjcmVhdGVOZXdURChuZXdURCwgdHIpOw0KICAgIHRyLmxhc3RDaGlsZC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogbWFwcGluZ0RldGFpbCgiJyArIGl0ZW1bIngtZXBnIl0gKyAnIik7JykNCg0KICAgIA0KICAgIC8vIENyZWF0ZSBQIFREIChYTUxUViBmaWxlKQ0KICAgIHZhciBuZXdURCA9IG5ldyBPYmplY3QoKTsNCiAgICBuZXdURFsiX2VsZW1lbnQiXSAgICAgICA9ICJQIjsNCiAgICBuZXdURFsiY2xhc3MiXSAgICA9ICJ0YWJsZUVsbGlwc2lzIjsNCiAgICBuZXdURFsiX3RleHQiXSA9ICItIg0KDQogICAgaWYgKGFsbFhtbHR2RmlsZXMuaW5kZXhPZihpdGVtWyJ4LXhtbHR2LWZpbGUiXSkgIT0gLTEpIHsNCiAgICAgIHZhciB4WG1sdHZGaWxlID0gaXRlbVsieC14bWx0di1maWxlIl07DQogICAgICBzd2l0Y2goeFhtbHR2RmlsZSkgew0KICAgICAgICBjYXNlICItIjogICAgICAgICAgIG5ld1REWyJfdGV4dCJdICA9IHhYbWx0dkZpbGU7IGJyZWFrOw0KICAgICAgICBjYXNlICJ4VGVWZSBEdW1teSI6IG5ld1REWyJfdGV4dCJdICA9IHhYbWx0dkZpbGU7IGJyZWFrOw0KICAgICAgICBkZWZhdWx0OiAgICAgICAgICAgIG5ld1REWyJfdGV4dCJdICA9IGdldFZhbHVlRnJvbVByb3ZpZGVyRmlsZSh4WG1sdHZGaWxlLCAieG1sdHYiLCAibmFtZSIpOyBicmVhazsNCiAgICAgICAgDQogICAgICB9DQogICAgICAvL2NvbnNvbGUubG9nKG5ld1REKTsNCg0KICAgICAgLy9uZXdURFsiX3RleHQiXSAgICA9IGl0ZW1bIngteG1sdHYtZmlsZSJdOw0KICAgIH0gZWxzZSB7DQogICAgICAvL25ld1REWyJfdGV4dCJdID0gIi0iDQogICAgfQ0KICAgIGNyZWF0ZU5ld1REKG5ld1RELCB0cik7DQogICAgdHIubGFzdENoaWxkLnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBtYXBwaW5nRGV0YWlsKCInICsgaXRlbVsieC1lcGciXSArICciKTsnKQ0KDQogICAgLy8gQ3JlYXRyIFAgVEQgKFhNTFRWIGNoYW5uZWwgSUQpDQogICAgbmV3VERbIl9lbGVtZW50Il0gPSAiUCI7DQogICAgbmV3VERbImNsYXNzIl0gICAgPSAidGFibGVFbGxpcHNpcyI7DQoNCiAgICBpZiAoaXRlbVsieC1tYXBwaW5nIl0gIT0gdW5kZWZpbmVkKSB7DQogICAgICBuZXdURFsiX3RleHQiXSAgICA9IGl0ZW1bIngtbWFwcGluZyJdOw0KICAgIH0NCiAgICANCiAgICBjcmVhdGVOZXdURChuZXdURCwgdHIpOw0KICAgIHRyLmxhc3RDaGlsZC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogbWFwcGluZ0RldGFpbCgiJyArIGl0ZW1bIngtZXBnIl0gKyAnIik7JykNCg0KICAgIC8vIENyZWF0ZSBQIFREIChUaW1lc2hpZnQpDQogICAgdmFyIG5ld1REID0gbmV3IE9iamVjdCgpOw0KICAgIG5ld1REWyJfZWxlbWVudCJdID0gIlAiOw0KICAgIG5ld1REWyJfdGV4dCJdICAgID0gaXRlbVsieC10aW1lc2hpZnQiXTsNCiAgICBuZXdURFsiY2xhc3MiXSAgICA9IGl0ZW1bIngtY2F0ZWdvcnkiXTsNCg0KICAgIGNyZWF0ZU5ld1REKG5ld1RELCB0cik7DQogICAgdHIubGFzdENoaWxkLnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBtYXBwaW5nRGV0YWlsKCInICsgaXRlbVsieC1lcGciXSArICciKTsnKQ0KDQoNCiAgICB2YXIgeFhtbHR2RmlsZSAgPSBpdGVtWyJ4LXhtbHR2LWZpbGUiXTsNCiAgICB2YXIgeE1hcHBpbmcgICAgPSBpdGVtWyJ4LW1hcHBpbmciXTsNCiAgICB2YXIgdHZnSUQgICAgICAgPSBpdGVtWyJ0dmctaWQiXTsNCiAgICANCiAgICAvL2NvbnNvbGUubG9nKGl0ZW1bIngtZXBnIl0pOw0KICAgIC8vY29uc29sZS5sb2coaXRlbSk7DQoNCiAgICBpZiAoaXRlbVsieC1hY3RpdmUiXSA9PSB0cnVlKSB7DQogICAgICB0ci5jbGFzc05hbWUgPSAiYWN0aXZlRVBHIjsNCiAgICB9IGVsc2Ugew0KICAgICAgdHIuY2xhc3NOYW1lID0gIm5vdEFjdGl2ZUVQRyI7DQogICAgfQ0KICAgIA0KICB9DQoNCiAgc29ydFRhYmxlKDEpOw0KDQogIHNldFRpbWVvdXQoZnVuY3Rpb24oKXsgDQogICAgc2hvd0xvYWRpbmdTY3JlZW4oZmFsc2UpOw0KICB9LCA1KTsNCn0NCg0KZnVuY3Rpb24gc2VhcmNoSW5NYXBwaW5nKGVsbSkgew0KDQogIHZhciBzZWFyY2ggPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic2VhcmNoTWFwcGluZyIpLnZhbHVlOw0KICB2YXIgdmFsdWVzID0gZ2V0T2JqS2V5cyhzZWFyY2hPYmopDQogIA0KICBmb3IgKHZhciBpID0gdmFsdWVzLmxlbmd0aCAtIDE7IGkgPj0gMDsgaS0tKSB7DQogICAgdmFyIGlkID0gc2VhcmNoT2JqW3ZhbHVlc1tpXV07DQogICAgdmFyIGJvb2wgPSB2YWx1ZXNbaV0udG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhzZWFyY2gudG9Mb3dlckNhc2UoKSk7DQogICAgc3dpdGNoKGJvb2wpIHsNCiAgICAgIGNhc2UgdHJ1ZTogIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5zdHlsZS5kaXNwbGF5ID0gIiI7IGJyZWFrOw0KICAgICAgY2FzZSBmYWxzZTogZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpLnN0eWxlLmRpc3BsYXkgPSAibm9uZSI7IGJyZWFrOw0KICAgIH0NCiAgfQ0KDQp9DQoNCmZ1bmN0aW9uIG1hcHBpbmdEZXRhaWwoeGVwZykgew0KICANCiAgYnVsa0lEcyAgID0gbmV3IEFycmF5KCk7DQogIHZhciBhY3RpdmVFbGVtZW50ID0gZG9jdW1lbnQuYWN0aXZlRWxlbWVudDsNCiAgLy8gSWYgaW5wdXQgaWQsIHJldHVybg0KICBpZiAoYWN0aXZlRWxlbWVudC50YWdOYW1lID09ICJJTlBVVCIpIHsNCiAgICByZXR1cm4NCiAgfQ0KDQogIGlmIChidWxrID09IHRydWUpIHsNCiAgICB2YXIgZWxtID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSgiYnVsayIpOw0KICAgIGZvciAodmFyIGkgPSAxOyBpIDwgZWxtLmxlbmd0aDsgaSsrKSB7DQogICAgICBpZiAoZWxtW2ldLmNoZWNrZWQgPT0gdHJ1ZSkgew0KICAgICAgICB2YXIgaWQgPSBlbG1baV0ucGFyZW50RWxlbWVudC5wYXJlbnRFbGVtZW50LmlkOw0KICAgICAgICBidWxrSURzLnB1c2goaWQpDQogICAgICB9DQogICAgICANCiAgICB9DQoNCiAgICBpZiAoYnVsa0lEcy5sZW5ndGggPT0gMCkgew0KICAgICAgc2hvd0VsZW1lbnQoJ3BvcHVwJywgZmFsc2UpDQogICAgICBhbGVydCgiTm8gY2hhbm5lbHMgc2VsZWN0ZWQgZm9yIGVkaXRpbmciKQ0KICAgICAgcmV0dXJuDQogICAgfQ0KDQogICAgeGVwZyA9IGJ1bGtJRHNbMF0NCiAgfQ0KDQoNCiAgY3JlYXRlU2VhcmNoT2JqKCk7DQogIA0KICBzaG93UG9wVXBFbGVtZW50KCdtYXBwaW5nLWRldGFpbCcpOw0KDQogIHZhciB0aGlzQ2hhbm5lbCA9IHhFUEdbImVwZ01hcHBpbmciXVt4ZXBnXTsNCiAgLy9jb25zb2xlLmxvZyh0aGlzQ2hhbm5lbCk7DQogIHZhciB4WG1sdHZGaWxlICA9IHRoaXNDaGFubmVsWyJ4LXhtbHR2LWZpbGUiXTsNCiAgdmFyIHhNYXBwaW5nICAgID0gdGhpc0NoYW5uZWxbIngtbWFwcGluZyJdOw0KICB2YXIgeENhdGVnb3J5ICAgPSB0aGlzQ2hhbm5lbFsieC1jYXRlZ29yeSJdOw0KDQogIGlmICh4WG1sdHZGaWxlID09IHVuZGVmaW5lZCkgew0KICAgIHRoaXNDaGFubmVsWyJ4LXhtbHR2LWZpbGUiXSA9ICItIjsNCiAgICB4WG1sdHZGaWxlID0gIi0iOw0KICB9DQoNCiAgaWYgKHhNYXBwaW5nID09IHVuZGVmaW5lZCkgew0KICAgIHRoaXNDaGFubmVsWyJ4LW1hcHBpbmciXSA9ICItIjsNCiAgICB4TWFwcGluZyA9ICItIjsNCiAgfQ0KDQogIC8qDQogIGNvbnNvbGUubG9nKCJJRDoiLCB4ZXBnKTsNCiAgY29uc29sZS5sb2coIlhNTFRWIEZpbGU6IiwgeFhtbHR2RmlsZSk7DQogIGNvbnNvbGUubG9nKCJNYXBwaW5nOiIsIHhNYXBwaW5nKTsNCiAgKi8NCg0KICB2YXIga2V5cyA9IGdldE9iaktleXModGhpc0NoYW5uZWwpOw0KICBmb3IgKHZhciBpID0gMDsgaSA8IGtleXMubGVuZ3RoOyBpKyspIHsNCiAgICBpZihkb2N1bWVudC5nZXRFbGVtZW50QnlJZChrZXlzW2ldKSl7DQogICAgICB2YXIgdGQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChrZXlzW2ldKQ0KICAgIH0gZWxzZSB7DQogICAgICB2YXIgdGQgPSB1bmRlZmluZWQ7DQogICAgfQ0KICAgIA0KICAgIHZhciBuZXdJdGVtID0gbmV3IE9iamVjdCgpOw0KICAgIHZhciB2YWx1ZXMsIHRleHQgPSBuZXcgQXJyYXkoKTsNCiAgICBzd2l0Y2goa2V5c1tpXSkgew0KICAgICAgY2FzZSAieC14bWx0di1maWxlIjogDQogICAgICAgIHZhciBmaWxlSURzID0gZ2V0T2JqS2V5cyh4RVBHWyJ4bWx0dk1hcCJdKTsNCiAgICAgICAgdmFyIHZhbHVlID0gbmV3IEFycmF5KCItIik7DQogICAgICAgIHZhciB0ZXh0ICA9IG5ldyBBcnJheSgiLSIpOw0KDQogICAgICAgIGZvciAodmFyIGogPSBmaWxlSURzLmxlbmd0aCAtIDE7IGogPj0gMDsgai0tKSB7DQogICAgICAgICAgaWYgKGZpbGVJRHNbal0gIT0gInhUZVZlIER1bW15Iikgew0KICAgICAgICAgICAgdmFsdWUucHVzaChnZXRWYWx1ZUZyb21Qcm92aWRlckZpbGUoZmlsZUlEc1tqXSwgInhtbHR2IiwgImZpbGUueHRldmUiKSkNCiAgICAgICAgICAgIHRleHQucHVzaChnZXRWYWx1ZUZyb21Qcm92aWRlckZpbGUoZmlsZUlEc1tqXSwgInhtbHR2IiwgIm5hbWUiKSkNCiAgICAgICAgICB9IGVsc2Ugew0KICAgICAgICAgICAgdmFsdWUucHVzaChmaWxlSURzW2pdKQ0KICAgICAgICAgICAgdGV4dC5wdXNoKGZpbGVJRHNbal0pDQogICAgICAgICAgfQ0KICAgICAgICAgIA0KICAgICAgICB9DQogICAgICAgIA0KICAgICAgICBuZXdJdGVtWyJfZWxlbWVudCJdICAgICAgID0gIlNFTEVDVCI7DQogICAgICAgIG5ld0l0ZW1bIl9vcHRpb25WYWx1ZXMiXSAgPSB2YWx1ZTsNCiAgICAgICAgbmV3SXRlbVsiX29wdGlvblRleHQiXSAgICA9IHRleHQNCiAgICAgICAgbmV3SXRlbVsidmFsdWUiXSAgICAgICAgICA9IHhYbWx0dkZpbGU7DQogICAgICAgIG5ld0l0ZW1bIm9uY2hhbmdlIl0gICAgICAgPSAnamF2YXNjcmlwdDogY2hhbmdlWG1sdHZGaWxlKCInICsgeGVwZyArICciLHRoaXMpOyc7DQoNCiAgICAgICAgYnJlYWs7DQoNCiAgICAgIGNhc2UgIngtbWFwcGluZyI6IA0KDQogICAgICAgIHZhciB2YWx1ZXMgPSBnZXRPYmpLZXlzKHhFUEdbInhtbHR2TWFwIl1beFhtbHR2RmlsZV0pOw0KDQogICAgICAgIGZvciAodmFyIGogPSAwOyBqIDwgdmFsdWVzLmxlbmd0aDsgaisrKSB7DQogICAgICAgICAgDQogICAgICAgICAgaWYgKHhFUEdbInhtbHR2TWFwIl1beFhtbHR2RmlsZV1bdmFsdWVzW2pdXS5oYXNPd25Qcm9wZXJ0eSgnZGlzcGxheS1uYW1lJykgPT0gdHJ1ZSkgew0KICAgICAgICAgICAgdmFyIGRpc3BsYXlOYW1lID0geEVQR1sieG1sdHZNYXAiXVt4WG1sdHZGaWxlXVt2YWx1ZXNbal1dWyJkaXNwbGF5LW5hbWUiXTsNCiAgICAgICAgICB9IGVsc2Ugew0KICAgICAgICAgICAgdmFyIGRpc3BsYXlOYW1lID0gIi0iDQogICAgICAgICAgfQ0KICAgICAgICAgIA0KICAgICAgICAgIC8vdGV4dFtqXSA9IHZhbHVlc1tqXSArICIgKCIgKyBkaXNwbGF5TmFtZSArICIpIjsNCiAgICAgICAgICB0ZXh0W2pdID0gZGlzcGxheU5hbWUgKyAiICgiICsgdmFsdWVzW2pdICArICIpIjsNCiAgICAgICAgfQ0KDQogICAgICAgIHRleHQudW5zaGlmdCgiLSIpOw0KICAgICAgICB2YWx1ZXMudW5zaGlmdCgiLSIpOw0KICAgICAgICBuZXdJdGVtWyJfZWxlbWVudCJdICAgICAgID0gIlNFTEVDVCI7DQogICAgICAgIG5ld0l0ZW1bIl9vcHRpb25WYWx1ZXMiXSAgPSB2YWx1ZXM7DQogICAgICAgIG5ld0l0ZW1bIl9vcHRpb25UZXh0Il0gICAgPSB0ZXh0DQogICAgICAgIG5ld0l0ZW1bInZhbHVlIl0gICAgICAgICAgPSB4TWFwcGluZzsNCiAgICAgICAgbmV3SXRlbVsib25jaGFuZ2UiXSAgICAgICA9ICdqYXZhc2NyaXB0OiBtYXBwaW5nQ2hhbm5lbCgiJyArIHhlcGcgKyAnIix0aGlzKTsnOw0KICAgICAgICBicmVhazsNCg0KICAgICAgY2FzZSAieC1jYXRlZ29yeSI6DQogICAgICAgIC8vdmFyIHZhbHVlcyA9IHBsZXhDYXRlZ29yaWVzVmFsdWVzDQogICAgICAgIG5ld0l0ZW1bIl9lbGVtZW50Il0gICAgICAgPSAiU0VMRUNUIjsNCiAgICAgICAgbmV3SXRlbVsiX29wdGlvblZhbHVlcyJdICA9IHBsZXhDYXRlZ29yaWVzVmFsdWVzOw0KICAgICAgICBuZXdJdGVtWyJfb3B0aW9uVGV4dCJdICAgID0gcGxleENhdGVnb3JpZXNPcHRpb247DQogICAgICAgIG5ld0l0ZW1bInZhbHVlIl0gICAgICAgICAgPSB4Q2F0ZWdvcnk7DQogICAgICAgIG5ld0l0ZW1bIm9uY2hhbmdlIl0gICAgICAgPSAnc2F2ZUNhdGVnb3J5KCInICsgeGVwZyArICciKSc7DQogICAgICAgIGJyZWFrOw0KDQogICAgICBjYXNlICJ0dmctbG9nbyI6DQogICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjaGFubmVsLWxvZ28iKS5zZXRBdHRyaWJ1dGUoInNyYyIsIHRoaXNDaGFubmVsWyJ0dmctbG9nbyJdKTsNCiAgICAgICAgbmV3SXRlbVsiX2VsZW1lbnQiXSAgICAgICA9ICJJTlBVVCI7DQogICAgICAgIG5ld0l0ZW1bInR5cGUiXSAgICAgICAgICAgPSAidGV4dCI7DQogICAgICAgIG5ld0l0ZW1bInZhbHVlIl0gICAgICAgICAgPSB0aGlzQ2hhbm5lbFsidHZnLWxvZ28iXTsNCiAgICAgICAgbmV3SXRlbVsib25mb2N1c291dCJdICAgICA9ICdzYXZlQ2hhbm5lbExvZ28oIicgKyB4ZXBnICsgJyIpJzsNCiAgICAgICAgbmV3SXRlbVsicGxhY2Vob2xkZXIiXSAgICA9ICdJbWFnZSBVUkwnOw0KICAgICAgICBicmVhazsNCg0KICAgICAgY2FzZSAieC11cGRhdGUtY2hhbm5lbC1pY29uIjoNCiAgICAgICAgbmV3SXRlbVsiX2VsZW1lbnQiXSAgICAgICA9ICJJTlBVVCI7DQogICAgICAgIG5ld0l0ZW1bInR5cGUiXSAgICAgICAgICAgPSAiY2hlY2tib3giOw0KICAgICAgICBzd2l0Y2goSlNPTi5wYXJzZSh0aGlzQ2hhbm5lbFsieC11cGRhdGUtY2hhbm5lbC1pY29uIl0pKSB7DQogICAgICAgICAgY2FzZSB0cnVlOiBuZXdJdGVtWyJjaGVja2VkIl0gICAgICAgID0gdGhpc0NoYW5uZWxbIngtdXBkYXRlLWNoYW5uZWwtaWNvbiJdOw0KICAgICAgICAgICAgYnJlYWsNCiAgICAgICAgfQ0KICAgICAgICBuZXdJdGVtWyJvbmNoYW5nZSJdICAgICA9ICdzYXZlQ2hhbm5lbEljb25VcGRhdGUoIicgKyB4ZXBnICsgJyIpJzsNCiAgICAgICAgYnJlYWs7DQoNCiAgICAgIGNhc2UgIngtbmFtZSI6DQogICAgICAgIG5ld0l0ZW1bIl9lbGVtZW50Il0gICAgICAgPSAiSU5QVVQiOw0KICAgICAgICBuZXdJdGVtWyJ0eXBlIl0gICAgICAgICAgID0gInRleHQiOw0KICAgICAgICBuZXdJdGVtWyJ2YWx1ZSJdICAgICAgICAgID0gdGhpc0NoYW5uZWxbIngtbmFtZSJdOw0KICAgICAgICBuZXdJdGVtWyJvbmZvY3Vzb3V0Il0gICAgID0gJ3NhdmVDaGFubmVsTmFtZSgiJyArIHhlcGcgKyAnIiknOw0KICAgICAgICBuZXdJdGVtWyJwbGFjZWhvbGRlciJdICAgID0gJ0NoYW5uZWwgTmFtZSc7DQogICAgICAgIGJyZWFrOw0KDQogICAgICBjYXNlICJ4LXVwZGF0ZS1jaGFubmVsLW5hbWUiOg0KICAgICAgICBpZiAodGhpc0NoYW5uZWwuaGFzT3duUHJvcGVydHkoIl91dWlkLmtleSIpID09IHRydWUpIHsNCiAgICAgICAgICBuZXdJdGVtWyJfZWxlbWVudCJdICAgICAgID0gIklOUFVUIjsNCiAgICAgICAgICBuZXdJdGVtWyJ0eXBlIl0gICAgICAgICAgID0gImNoZWNrYm94IjsNCiAgICAgICAgICBzd2l0Y2goSlNPTi5wYXJzZSh0aGlzQ2hhbm5lbFsieC11cGRhdGUtY2hhbm5lbC1uYW1lIl0pKSB7DQogICAgICAgICAgICBjYXNlIHRydWU6IG5ld0l0ZW1bImNoZWNrZWQiXSAgICAgICAgPSB0aGlzQ2hhbm5lbFsieC11cGRhdGUtY2hhbm5lbC1uYW1lIl07DQogICAgICAgICAgICAgIGJyZWFrDQogICAgICAgICAgfQ0KICAgICAgICAgIG5ld0l0ZW1bIm9uY2hhbmdlIl0gICAgID0gJ3NhdmVDaGFubmVsTmFtZVVwZGF0ZSgiJyArIHhlcGcgKyAnIiknOw0KICAgICAgICAgIHNob3dFbGVtZW50KCJzdHJlYW1IYXNDVUlEIiwgdHJ1ZSkNCg0KICAgICAgICAgIGJyZWFrOw0KICAgICAgICB9IGVsc2Ugew0KICAgICAgICAgIC8vc3RyZWFtSGFzQ1VJRA0KICAgICAgICAgIHNob3dFbGVtZW50KCJzdHJlYW1IYXNDVUlEIiwgZmFsc2UpDQogICAgICAgICAgYnJlYWs7DQogICAgICAgIH0NCiAgICAgICAgDQogICAgICBjYXNlICJ4LWFjdGl2ZSI6DQogICAgICAgIG5ld0l0ZW1bIl9lbGVtZW50Il0gICAgICAgPSAiSU5QVVQiOw0KICAgICAgICBuZXdJdGVtWyJ0eXBlIl0gICAgICAgICAgID0gImNoZWNrYm94IjsNCiAgICAgICAgc3dpdGNoKEpTT04ucGFyc2UodGhpc0NoYW5uZWxbIngtYWN0aXZlIl0pKSB7DQogICAgICAgICAgY2FzZSB0cnVlOiBuZXdJdGVtWyJjaGVja2VkIl0gICAgICAgID0gdGhpc0NoYW5uZWxbIngtYWN0aXZlIl07DQogICAgICAgICAgICBicmVhaw0KICAgICAgICB9DQogICAgICAgIG5ld0l0ZW1bIm9uY2hhbmdlIl0gICAgID0gJ3NhdmVDaGFubmVsU3RhdHVzKCInICsgeGVwZyArICciKSc7DQogICAgICAgIGJyZWFrOw0KDQogICAgICBjYXNlICJ4LWdyb3VwLXRpdGxlIjoNCiAgICAgICAgbmV3SXRlbVsiX2VsZW1lbnQiXSAgICAgICA9ICJJTlBVVCI7DQogICAgICAgIG5ld0l0ZW1bInR5cGUiXSAgICAgICAgICAgPSAidGV4dCI7DQogICAgICAgIG5ld0l0ZW1bInZhbHVlIl0gICAgICAgICAgPSB0aGlzQ2hhbm5lbFsieC1ncm91cC10aXRsZSJdOw0KICAgICAgICBuZXdJdGVtWyJvbmZvY3Vzb3V0Il0gICAgID0gJ3NhdmVHcm91cFRpdGxlKCInICsgeGVwZyArICciKSc7DQogICAgICAgIG5ld0l0ZW1bInBsYWNlaG9sZGVyIl0gICAgPSAnR3JvdXAgVGl0bGUnOw0KICAgICAgICBicmVhazsNCg0KICAgICAgZGVmYXVsdDoNCiAgICAgICAgbmV3SXRlbVsiX2VsZW1lbnQiXSAgICAgICA9ICJQIjsNCiAgICAgICAgbmV3SXRlbVsiX3RleHQiXSAgICAgICAgICA9IHRoaXNDaGFubmVsW2tleXNbaV1dOw0KICAgICAgICBicmVhazsNCiAgICAgIA0KICAgIH0NCiAgICANCiAgICBpZiAodGQgIT0gdW5kZWZpbmVkKSB7DQogICAgICB0ZC5pbm5lckhUTUwgPSAiIjsNCiAgICAgIHZhciBlbGVtZW50ID0gY3JlYXRlTmV3RWxlbWVudChuZXdJdGVtKQ0KICAgICAgLy9jb25zb2xlLmxvZyhlbGVtZW50KTsNCiAgICAgIHRkLmFwcGVuZENoaWxkKGVsZW1lbnQpOw0KICAgIH0NCg0KICB9DQoNCiAgaWYgKGJ1bGsgPT0gdHJ1ZSkgew0KDQogICAgdmFyIGVsbSA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlDbGFzc05hbWUoIm5vQnVsayIpOw0KICAgIGZvciAodmFyIGkgPSAwOyBpIDwgZWxtLmxlbmd0aDsgaSsrKSB7DQogICAgICBlbG1baV0ubGFzdENoaWxkLnNldEF0dHJpYnV0ZSgicmVhZG9ubHkiLCB0cnVlKQ0KICAgICAgZWxtW2ldLmxhc3RDaGlsZC5zdHlsZS5ib3JkZXJDb2xvciA9ICJyZWQiOw0KICAgIH0NCg0KICAgIHhlcGcgPSBidWxrSURzWzBdDQogIH0NCg0KICBzb3J0U2VsZWN0KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ4LXhtbHR2LWZpbGUiKS5sYXN0Q2hpbGQpOw0KICBzb3J0U2VsZWN0KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ4LW1hcHBpbmciKS5sYXN0Q2hpbGQpOw0KICANCn0NCg0KZnVuY3Rpb24gc29ydFNlbGVjdChlbGVtKSB7DQoNCiAgdmFyIHRtcEFyeSA9IFtdOw0KICAvLyBSZXRhaW4gc2VsZWN0ZWQgdmFsdWUgYmVmb3JlIHNvcnRpbmcNCiAgdmFyIHNlbGVjdGVkVmFsdWUgPSBlbGVtW2VsZW0uc2VsZWN0ZWRJbmRleF0udmFsdWU7DQogIC8vIEdyYWIgYWxsIGV4aXN0aW5nIGVudHJpZXMNCiAgZm9yICh2YXIgaT0wO2k8ZWxlbS5vcHRpb25zLmxlbmd0aDtpKyspIHRtcEFyeS5wdXNoKGVsZW0ub3B0aW9uc1tpXSk7DQogIC8vIFNvcnQgYXJyYXkgYnkgdGV4dCBhdHRyaWJ1dGUNCiAgdG1wQXJ5LnNvcnQoZnVuY3Rpb24oYSxiKXsgcmV0dXJuIChhLnRleHQgPCBiLnRleHQpPy0xOjE7IH0pOw0KICAvLyBXaXBlIG91dCBleGlzdGluZyBlbGVtZW50cw0KICB3aGlsZSAoZWxlbS5vcHRpb25zLmxlbmd0aCA+IDApIGVsZW0ub3B0aW9uc1swXSA9IG51bGw7DQogIC8vIFJlc3RvcmUgc29ydGVkIGVsZW1lbnRzDQogIHZhciBuZXdTZWxlY3RlZEluZGV4ID0gMDsNCiAgZm9yICh2YXIgaT0wO2k8dG1wQXJ5Lmxlbmd0aDtpKyspIHsNCiAgICAgIGVsZW0ub3B0aW9uc1tpXSA9IHRtcEFyeVtpXTsNCiAgICAgIGlmKGVsZW0ub3B0aW9uc1tpXS52YWx1ZSA9PSBzZWxlY3RlZFZhbHVlKSBuZXdTZWxlY3RlZEluZGV4ID0gaTsNCiAgfQ0KICBlbGVtLnNlbGVjdGVkSW5kZXggPSBuZXdTZWxlY3RlZEluZGV4OyAvLyBTZXQgbmV3IHNlbGVjdGVkIGluZGV4IGFmdGVyIHNvcnRpbmcNCiAgcmV0dXJuOw0KfQ0KDQoNCmZ1bmN0aW9uIHN3aXRjaENoYW5uZWxTdGF0dXMoeGVwZykgew0KICB2YXIgdGhpc0NoYW5uZWwgPSB4RVBHWyJlcGdNYXBwaW5nIl1beGVwZ107DQogIHZhciB4WG1sdHZGaWxlID0gdGhpc0NoYW5uZWxbIngteG1sdHYtZmlsZSJdOw0KDQogIGlmICh4RVBHWyJ4bWx0dk1hcCJdLmhhc093blByb3BlcnR5KHhYbWx0dkZpbGUpID09IHRydWUpIHsNCiAgICBpZiAodGhpc0NoYW5uZWxbIngtbWFwcGluZyJdICE9ICItIiAmJiB0aGlzQ2hhbm5lbFsieC1tYXBwaW5nIl0gIT0gdW5kZWZpbmVkKSB7DQogICAgICB0aGlzQ2hhbm5lbFsieC1hY3RpdmUiXSA9ICF0aGlzQ2hhbm5lbFsieC1hY3RpdmUiXTsNCiAgICAgIHZhciB0ciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHhlcGcpOw0KICAgICAgc3dpdGNoKHRoaXNDaGFubmVsWyJ4LWFjdGl2ZSJdKSB7DQogICAgICAgIGNhc2UgdHJ1ZTogdHIuY2xhc3NOYW1lID0gImFjdGl2ZUVQRyI7IGJyZWFrOw0KICAgICAgICBjYXNlIGZhbHNlOiB0ci5jbGFzc05hbWUgPSAibm90QWN0aXZlRVBHIjsgYnJlYWs7DQogICAgICB9DQogICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibG9nSW5mbyIpLmNsYXNzTmFtZSA9ICJub3RWaXNpYmxlIjsNCg0KICAgIH0gZWxzZSB7DQogICAgICB2YXIgZXJyID0gIlhNTFRWIENoYW5uZWwgaXMgbm90IHNlbGVjdGVkIg0KICAgICAgYWxlcnQoZXJyKQ0KICAgICAgLyoNCiAgICAgIHZhciBuZXdFcnJvciA9IG5ldyBPYmplY3QoKTsNCiAgICAgIG5ld0Vycm9yWyJlcnIiXSA9ICJDaGFubmVsIGlzIG5vdCBzZWxlY3RlZCI7DQogICAgICBjaGVja0VycihuZXdFcnJvcik7DQogICAgICAqLw0KICAgIH0NCg0KICB9IGVsc2Ugew0KICAgIHZhciBlcnIgPSAiWE1MVFYgRmlsZSBpcyBub3Qgc2VsZWN0ZWQiDQogICAgYWxlcnQoZXJyKQ0KICAgIC8qDQogICAgdmFyIG5ld0Vycm9yID0gbmV3IE9iamVjdCgpOw0KICAgIG5ld0Vycm9yWyJlcnIiXSA9ICJYTUxUViBmaWxlIGlzIG5vdCBzZWxlY3RlZCI7DQogICAgY2hlY2tFcnIobmV3RXJyb3IpOw0KICAgICovDQogIH0NCg0KICBzZWFyY2hJbk1hcHBpbmcoKTsNCg0KfQ0KDQpmdW5jdGlvbiBjcmVhdGVOZXdFbGVtZW50KG5ld0l0ZW0pIHsNCg0KICB2YXIgZWxlbWVudCA9IGNyZWF0ZUVsZW1lbnQobmV3SXRlbSk7DQogIA0KICBzd2l0Y2gobmV3SXRlbVsiX2VsZW1lbnQiXSkgew0KICAgIGNhc2UgIlNFTEVDVCI6DQogICAgICAvL2VsZW1lbnRbXQ0KICAgICAgdmFyIHZhbHVlcyAgPSBuZXdJdGVtWyJfb3B0aW9uVmFsdWVzIl07DQogICAgICB2YXIgdGV4dCAgICA9IG5ld0l0ZW1bIl9vcHRpb25UZXh0Il07DQoNCiAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdmFsdWVzLmxlbmd0aDsgaSsrKSB7DQogICAgICAgIC8vY29uc29sZS5sb2coaXRlbSk7DQogICAgICAgIHZhciBuZXdFbnRyeSA9IG5ldyBPYmplY3Q7DQogICAgICAgIG5ld0VudHJ5WyJfZWxlbWVudCJdICA9ICJPUFRJT04iOw0KICAgICAgICBuZXdFbnRyeVsiX3RleHQiXSAgICAgPSB0ZXh0W2ldOw0KICAgICAgICBuZXdFbnRyeVsidmFsdWUiXSAgICAgPSB2YWx1ZXNbaV07DQogICAgICAgIGVsZW1lbnQuYXBwZW5kQ2hpbGQoY3JlYXRlRWxlbWVudChuZXdFbnRyeSkpOw0KICAgICAgfQ0KICAgICAgZWxlbWVudC52YWx1ZSA9IG5ld0l0ZW1bInZhbHVlIl07DQogICAgICBicmVhazsNCiAgICANCiAgICBkZWZhdWx0OiANCiAgICAgIA0KICAgICAgLy9lbGVtZW50LmFwcGVuZENoaWxkKGNyZWF0ZUVsZW1lbnQobmV3SXRlbSkpOw0KICAgICAgYnJlYWs7DQogIH0NCiAgDQogIHJldHVybiBlbGVtZW50Ow0KfQ0KDQpmdW5jdGlvbiBzYXZlQnVsayhrZXksIHZhbHVlKSB7DQogIGZvciAodmFyIGkgPSAwOyBpIDwgYnVsa0lEcy5sZW5ndGg7IGkrKykgew0KICAgIHZhciBpZCA9IGJ1bGtJRHNbaV0NCiAgICB2YXIgdGhpc0NoYW5uZWwgPSB4RVBHWyJlcGdNYXBwaW5nIl1baWRdOw0KICAgIHRoaXNDaGFubmVsW2tleV0gPSB2YWx1ZTsNCg0KICAgIHN3aXRjaChrZXkpIHsNCiAgICAgIGNhc2UgInR2Zy1sb2dvIjogICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkuY2hpbGROb2Rlc1syXS5sYXN0Q2hpbGQuc2V0QXR0cmlidXRlKCJzcmMiLCB2YWx1ZSk7IGJyZWFrOw0KICAgICAgDQogICAgICBjYXNlICJ4LWNhdGVnb3J5IjogICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpLmNoaWxkTm9kZXNbM10ubGFzdENoaWxkLmNsYXNzTmFtZSA9IHZhbHVlOyBicmVhazsNCg0KICAgICAgY2FzZSAieC14bWx0di1maWxlIjoNCiAgICAgICAgdmFyIGVsZW1lbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkuY2hpbGROb2Rlc1s2XS5sYXN0Q2hpbGQ7DQogICAgICAgIHN3aXRjaCh2YWx1ZSkgew0KICAgICAgICAgIGNhc2UgIi0iOiAgICAgICAgICAgZWxlbWVudC5pbm5lckhUTUwgPSB2YWx1ZTsgYnJlYWs7DQogICAgICAgICAgY2FzZSAieFRlVmUgRHVtbXkiOiBlbGVtZW50LmlubmVySFRNTCA9IHZhbHVlOyBicmVhazsNCiAgICAgICAgICBkZWZhdWx0OiAgICAgICAgICAgIGVsZW1lbnQuaW5uZXJIVE1MID0gZ2V0VmFsdWVGcm9tUHJvdmlkZXJGaWxlKHZhbHVlLCAieG1sdHYiLCAibmFtZSIpOyBicmVhazsNCiAgICAgICAgfQ0KDQoNCg0KICAgICAgLy9kb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkuY2hpbGROb2Rlc1s1XS5sYXN0Q2hpbGQuaW5uZXJIVE1MID0gdmFsdWUucmVwbGFjZSgvXi4qW1xcXC9dLywgJycpOyBicmVhazsNCiAgICAgIGNhc2UgIngtbWFwcGluZyI6ICAgDQogICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5jaGlsZE5vZGVzWzddLmxhc3RDaGlsZC5pbm5lckhUTUwgPSB2YWx1ZTsNCiAgICAgICAgaWYgKHZhbHVlID09ICItIikgew0KICAgICAgICAgIHRoaXNDaGFubmVsWyJ4LWFjdGl2ZSJdID0gZmFsc2U7DQogICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpLmNsYXNzTmFtZSA9ICJub3RBY3RpdmVFUEciOw0KICAgICAgICB9IGVsc2Ugew0KICAgICAgICAgIHRoaXNDaGFubmVsWyJ4LWFjdGl2ZSJdID0gdHJ1ZTsNCiAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkuY2xhc3NOYW1lID0gImFjdGl2ZUVQRyI7DQogICAgICAgIH0NCiAgICAgICAgYnJlYWs7DQoNCiAgICAgIGNhc2UgIngtZ3JvdXAtdGl0bGUiOiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkuY2hpbGROb2Rlc1s1XS5sYXN0Q2hpbGQuaW5uZXJIVE1MID0gdmFsdWU7IGJyZWFrOw0KDQogICAgICBjYXNlICJ4LWFjdGl2ZSI6DQogICAgICAgIHZhciB0ciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKTsNCiAgICAgICAgDQogICAgICAgIGlmICh0aGlzQ2hhbm5lbC5oYXNPd25Qcm9wZXJ0eSgieC14bWx0di1maWxlIikgPT0gdHJ1ZSkgew0KICAgICAgICAgIGlmICh0aGlzQ2hhbm5lbFsieC1tYXBwaW5nIl0gIT0gIi0iICYmIHRoaXNDaGFubmVsWyJ4LW1hcHBpbmciXSAhPSB1bmRlZmluZWQgJiYgdGhpc0NoYW5uZWxbIngteG1sdHYtZmlsZSJdICE9ICItIiAmJiB0aGlzQ2hhbm5lbFsieC14bWx0di1maWxlIl0gIT0gdW5kZWZpbmVkKSB7DQogICAgICAgICAgICBzd2l0Y2godGhpc0NoYW5uZWxbIngtYWN0aXZlIl0pIHsNCiAgICAgICAgICAgICAgY2FzZSB0cnVlOiB0ci5jbGFzc05hbWUgPSAiYWN0aXZlRVBHIjsgYnJlYWs7DQogICAgICAgICAgICAgIGNhc2UgZmFsc2U6IHRyLmNsYXNzTmFtZSA9ICJub3RBY3RpdmVFUEciOyBicmVhazsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgIH0NCiAgICAgICAgfQ0KDQogICAgfQ0KDQogICAgdXBkYXRlQ2hhbm5lbExvZ28oaWQpDQoNCiAgfQ0KDQp9DQoNCmZ1bmN0aW9uIHVwZGF0ZUNoYW5uZWxMb2dvKHhlcGcpIHsNCiAgdmFyIHRoaXNDaGFubmVsID0geEVQR1siZXBnTWFwcGluZyJdW3hlcGddOw0KICBpZiAodGhpc0NoYW5uZWxbIngtdXBkYXRlLWNoYW5uZWwtaWNvbiJdID09IHRydWUpIHsNCiAgICB2YXIgeFhtbHR2RmlsZSAgPSB0aGlzQ2hhbm5lbFsieC14bWx0di1maWxlIl07DQogICAgdmFyIHhNYXBwaW5nICAgID0gdGhpc0NoYW5uZWxbIngtbWFwcGluZyJdOw0KDQogICAgaWYgKHhYbWx0dkZpbGUgIT0gIi0iICYmIHhYbWx0dkZpbGUubGVuZ3RoID4gMCAmJiB4TWFwcGluZyAhPSAiLSIgJiYgeE1hcHBpbmcubGVuZ3RoID4gMCkgew0KICAgICAgaWYgKHhFUEdbInhtbHR2TWFwIl1beFhtbHR2RmlsZV1beE1hcHBpbmddLmhhc093blByb3BlcnR5KCJpY29uIikpIHsNCiAgICAgICAgdmFyIGxvZ29VUkwgPSB4RVBHWyJ4bWx0dk1hcCJdW3hYbWx0dkZpbGVdW3hNYXBwaW5nXVsiaWNvbiJdOw0KICAgICAgICB0aGlzQ2hhbm5lbFsidHZnLWxvZ28iXSA9IGxvZ29VUkw7DQogICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHhlcGcpLmNoaWxkTm9kZXNbMl0ubGFzdENoaWxkLnNldEF0dHJpYnV0ZSgic3JjIiwgbG9nb1VSTCk7DQogICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjaGFubmVsLWxvZ28iKS5zZXRBdHRyaWJ1dGUoInNyYyIsIGxvZ29VUkwpOw0KICAgICAgfSBlbHNlIHsNCiAgICAgICAgYWxlcnQoIk5vIGxvZ28gVVJMIGluIHRoZSBYTUxUViBmaWxlIGF2YWlsYWJsZSIpDQogICAgICB9DQogICAgICANCiAgICB9DQogICAgDQogICAgLyoNCiAgICBpZiAoeEVQR1sieG1sdHZNYXAiXVt4WG1sdHZGaWxlXVt4TWFwcGluZ11bImljb24iXSAhPSB1bmRlZmluZWQpIHsNCg0KICAgICAgDQogICAgfQ0KICAgICovDQogICAgDQogIH0NCn0NCg0KZnVuY3Rpb24gc2F2ZUNoYW5uZWxMb2dvKHhlcGcpIHsNCiAgaWYgKGJ1bGsgPT0gZmFsc2UpIHsNCiAgICB2YXIgdGhpc0NoYW5uZWwgPSB4RVBHWyJlcGdNYXBwaW5nIl1beGVwZ107DQogICAgdGhpc0NoYW5uZWxbInR2Zy1sb2dvIl0gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidHZnLWxvZ28iKS5sYXN0Q2hpbGQudmFsdWU7DQogICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoeGVwZykuY2hpbGROb2Rlc1syXS5sYXN0Q2hpbGQuc2V0QXR0cmlidXRlKCJzcmMiLCB0aGlzQ2hhbm5lbFsidHZnLWxvZ28iXSk7DQogICAgbWFwcGluZ0RldGFpbCh4ZXBnKTsNCiAgICByZXR1cm4NCiAgfQ0KDQogIGlmIChidWxrID09IHRydWUpIHsNCiAgICB2YXIga2V5ICAgPSAidHZnLWxvZ28iOw0KICAgIHZhciB2YWx1ZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0dmctbG9nbyIpLmxhc3RDaGlsZC52YWx1ZTsNCiAgICBzYXZlQnVsayhrZXksIHZhbHVlKTsNCg0KICAgIG1hcHBpbmdEZXRhaWwoeGVwZyk7DQogICAgcmV0dXJuDQogIH0NCn0NCg0KZnVuY3Rpb24gc2F2ZUNoYW5uZWxJY29uVXBkYXRlKHhlcGcpIHsNCg0KICB2YXIga2V5ICAgPSAieC11cGRhdGUtY2hhbm5lbC1pY29uIjsNCiAgdmFyIHZhbHVlID0gSlNPTi5wYXJzZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgieC11cGRhdGUtY2hhbm5lbC1pY29uIikubGFzdENoaWxkLmNoZWNrZWQpOw0KICBpZiAoYnVsayA9PSBmYWxzZSkgew0KICAgIHZhciB0aGlzQ2hhbm5lbCA9IHhFUEdbImVwZ01hcHBpbmciXVt4ZXBnXTsNCiAgICB0aGlzQ2hhbm5lbFtrZXldID0gdmFsdWUNCiAgICB1cGRhdGVDaGFubmVsTG9nbyh4ZXBnKQ0KICAgIA0KICAgIG1hcHBpbmdEZXRhaWwoeGVwZyk7DQogICAgc2VhcmNoSW5NYXBwaW5nKCk7DQogICAgcmV0dXJuDQogIH0NCg0KICBpZiAoYnVsayA9PSB0cnVlKSB7DQogICAgc2F2ZUJ1bGsoa2V5LCB2YWx1ZSk7DQogICAgbWFwcGluZ0RldGFpbCh4ZXBnKTsNCiAgICByZXR1cm4NCiAgfQ0KICANCn0NCg0KZnVuY3Rpb24gc2F2ZUNoYW5uZWxOYW1lKHhlcGcpIHsNCiAgaWYgKGJ1bGsgPT0gZmFsc2UpIHsNCiAgICB2YXIgdGhpc0NoYW5uZWwgPSB4RVBHWyJlcGdNYXBwaW5nIl1beGVwZ107DQogICAgdGhpc0NoYW5uZWxbIngtbmFtZSJdID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIngtbmFtZSIpLmxhc3RDaGlsZC52YWx1ZTsNCiAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCh4ZXBnKS5jaGlsZE5vZGVzWzNdLmxhc3RDaGlsZC5pbm5lckhUTUwgPSB0aGlzQ2hhbm5lbFsieC1uYW1lIl07DQogICAgbWFwcGluZ0RldGFpbCh4ZXBnKTsNCiAgICBzZWFyY2hJbk1hcHBpbmcoKTsNCiAgfQ0KICANCn0NCg0KZnVuY3Rpb24gc2F2ZUNoYW5uZWxOYW1lVXBkYXRlKHhlcGcpIHsNCiAgdmFyIGtleSAgID0gIngtdXBkYXRlLWNoYW5uZWwtbmFtZSI7DQogIHZhciB2YWx1ZSA9IEpTT04ucGFyc2UoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIngtdXBkYXRlLWNoYW5uZWwtbmFtZSIpLmxhc3RDaGlsZC5jaGVja2VkKTsNCg0KICBpZiAoYnVsayA9PSBmYWxzZSkgew0KICAgIHZhciB0aGlzQ2hhbm5lbCA9IHhFUEdbImVwZ01hcHBpbmciXVt4ZXBnXTsNCiAgICB0aGlzQ2hhbm5lbFtrZXldID0gdmFsdWUNCiAgICBtYXBwaW5nRGV0YWlsKHhlcGcpOw0KICAgIHNlYXJjaEluTWFwcGluZygpOw0KICAgIHJldHVybg0KICB9DQoNCiAgaWYgKGJ1bGsgPT0gdHJ1ZSkgew0KICAgIHNhdmVCdWxrKGtleSwgdmFsdWUpOw0KICAgIG1hcHBpbmdEZXRhaWwoeGVwZyk7DQogICAgcmV0dXJuDQogIH0NCg0KfQ0KDQpmdW5jdGlvbiBzYXZlQ2hhbm5lbFN0YXR1cyh4ZXBnKSB7DQogIHZhciB0aGlzQ2hhbm5lbCA9IHhFUEdbImVwZ01hcHBpbmciXVt4ZXBnXTsNCiAgdmFyIHhYbWx0dkZpbGUgPSB0aGlzQ2hhbm5lbFsieC14bWx0di1maWxlIl07DQoNCiAgdmFyIGtleSAgID0gIngtYWN0aXZlIjsNCiAgdmFyIHZhbHVlID0gSlNPTi5wYXJzZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgieC1hY3RpdmUiKS5sYXN0Q2hpbGQuY2hlY2tlZCk7DQoNCiAgaWYgKHhFUEdbInhtbHR2TWFwIl0uaGFzT3duUHJvcGVydHkoeFhtbHR2RmlsZSkgPT0gdHJ1ZSkgew0KICAgIGlmICh0aGlzQ2hhbm5lbFsieC1tYXBwaW5nIl0gIT0gIi0iICYmIHRoaXNDaGFubmVsWyJ4LW1hcHBpbmciXSAhPSB1bmRlZmluZWQpIHsNCiAgICAgIHRoaXNDaGFubmVsWyJ4LWFjdGl2ZSJdID0gIXRoaXNDaGFubmVsWyJ4LWFjdGl2ZSJdOw0KICAgICAgdmFyIHRyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoeGVwZyk7DQogICAgICBzd2l0Y2godGhpc0NoYW5uZWxbIngtYWN0aXZlIl0pIHsNCiAgICAgICAgY2FzZSB0cnVlOiB0ci5jbGFzc05hbWUgPSAiYWN0aXZlRVBHIjsgYnJlYWs7DQogICAgICAgIGNhc2UgZmFsc2U6IHRyLmNsYXNzTmFtZSA9ICJub3RBY3RpdmVFUEciOyBicmVhazsNCiAgICAgIH0NCiAgICAgIA0KICAgIH0gZWxzZSB7DQogICAgICB2YXIgZXJyID0gIlhNTFRWIENoYW5uZWwgaXMgbm90IHNlbGVjdGVkIg0KICAgICAgYWxlcnQoZXJyKQ0KICAgICAgdmFsdWUgPSBmYWxzZQ0KICAgIH0NCg0KICB9IGVsc2Ugew0KICAgIGlmICh2YWx1ZSA9PSB0cnVlKSB7DQogICAgICB2YXIgZXJyID0gIlhNTFRWIEZpbGUgaXMgbm90IHNlbGVjdGUiDQogICAgICBhbGVydChlcnIpDQogICAgICB2YWx1ZSA9IGZhbHNlDQogICAgfQ0KICB9DQoNCiAgDQoNCiAgaWYgKGJ1bGsgPT0gZmFsc2UpIHsNCiAgICB2YXIgdGhpc0NoYW5uZWwgPSB4RVBHWyJlcGdNYXBwaW5nIl1beGVwZ107DQogICAgdGhpc0NoYW5uZWxba2V5XSA9IHZhbHVlDQogICAgbWFwcGluZ0RldGFpbCh4ZXBnKTsNCiAgICBzZWFyY2hJbk1hcHBpbmcoKTsNCg0KICAgIHZhciB0ciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHhlcGcpOw0KICAgIHN3aXRjaCh0aGlzQ2hhbm5lbFsieC1hY3RpdmUiXSkgew0KICAgICAgY2FzZSB0cnVlOiB0ci5jbGFzc05hbWUgPSAiYWN0aXZlRVBHIjsgYnJlYWs7DQogICAgICBjYXNlIGZhbHNlOiB0ci5jbGFzc05hbWUgPSAibm90QWN0aXZlRVBHIjsgYnJlYWs7DQogICAgfQ0KDQogICAgcmV0dXJuDQogIH0NCg0KICBpZiAoYnVsayA9PSB0cnVlKSB7DQogICAgc2F2ZUJ1bGsoa2V5LCB2YWx1ZSk7DQogICAgbWFwcGluZ0RldGFpbCh4ZXBnKTsNCiAgICByZXR1cm4NCiAgfQ0KDQp9DQoNCmZ1bmN0aW9uIHNhdmVHcm91cFRpdGxlKHhlcGcpIHsNCiAgdmFyIGtleSAgID0gIngtZ3JvdXAtdGl0bGUiOw0KICB2YXIgdmFsdWUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgieC1ncm91cC10aXRsZSIpLmxhc3RDaGlsZC52YWx1ZTsNCg0KICBpZiAoYnVsayA9PSBmYWxzZSkgew0KICAgIHZhciB0aGlzQ2hhbm5lbCA9IHhFUEdbImVwZ01hcHBpbmciXVt4ZXBnXTsNCiAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCh4ZXBnKS5jaGlsZE5vZGVzWzVdLmxhc3RDaGlsZC5pbm5lckhUTUwgPSB2YWx1ZTsNCiAgICB0aGlzQ2hhbm5lbFtrZXldID0gdmFsdWU7DQogICAgbWFwcGluZ0RldGFpbCh4ZXBnKTsNCiAgICBzZWFyY2hJbk1hcHBpbmcoKTsNCiAgfQ0KDQogIGlmIChidWxrID09IHRydWUpIHsNCiAgICBzYXZlQnVsayhrZXksIHZhbHVlKTsNCiAgICBtYXBwaW5nRGV0YWlsKHhlcGcpOw0KICAgIHJldHVybg0KICB9DQoNCn0NCg0KZnVuY3Rpb24gc2F2ZUNhdGVnb3J5KHhlcGcpIHsNCiAgdmFyIGtleSAgID0gIngtY2F0ZWdvcnkiOw0KICB2YXIgdmFsdWUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgieC1jYXRlZ29yeSIpLmxhc3RDaGlsZC52YWx1ZTsNCg0KICBpZiAoYnVsayA9PSBmYWxzZSkgew0KICAgIHZhciB0aGlzQ2hhbm5lbCA9IHhFUEdbImVwZ01hcHBpbmciXVt4ZXBnXTsNCiAgICB0aGlzQ2hhbm5lbFtrZXldID0gdmFsdWUNCiAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCh4ZXBnKS5jaGlsZE5vZGVzWzNdLmxhc3RDaGlsZC5jbGFzc05hbWUgPSB2YWx1ZQ0KICAgIG1hcHBpbmdEZXRhaWwoeGVwZyk7DQogICAgc2VhcmNoSW5NYXBwaW5nKCk7DQogIH0NCg0KICBpZiAoYnVsayA9PSB0cnVlKSB7DQogICAgc2F2ZUJ1bGsoa2V5LCB2YWx1ZSk7DQogICAgbWFwcGluZ0RldGFpbCh4ZXBnKTsNCiAgICByZXR1cm4NCiAgfQ0KDQp9DQoNCmZ1bmN0aW9uIGFycmFuZ2VUYWJsZShlbG0pIHsNCiAgdmFyIHRyID0gZWxtLnBhcmVudEVsZW1lbnQucGFyZW50RWxlbWVudDsNCiAgdmFyIG5ld1Bvc2l0aW9uID0gZWxtLnZhbHVlOw0KICB2YXIgeF9jaGFubmVsSUQgPSB0ci5pZDsNCg0KICBzd2l0Y2goaXNOYU4obmV3UG9zaXRpb24pKSB7DQogICAgY2FzZSB0cnVlOiANCiAgICAgIGFsZXJ0KCJDaC4gTm8uIG11c3QgYmUgYSBudW1iZXIiKTsNCiAgICAgIG1hcHBpbmdFcnJvciA9IHRydWU7DQogICAgICBicmVhazsNCiAgfQ0KDQoNCiAgLy92YXIgaXRlbSA9IHhFUEdbImVwZ01hcHBpbmciXVtpZF07DQogIHZhciBrZXlzID0gZ2V0T2JqS2V5cyh4RVBHWyJlcGdNYXBwaW5nIl0pDQogIGZvciAodmFyIGkgPSAwOyBpIDwga2V5cy5sZW5ndGg7IGkrKykgew0KICAgIHZhciBpdGVtID0geEVQR1siZXBnTWFwcGluZyJdW2tleXNbaV1dOw0KICAgIGlmIChpdGVtWyJ4LWVwZyJdID09IHhfY2hhbm5lbElEKSB7DQoNCiAgICAgIC8vIENoZWNrIGlmIHBvc2l0aW9uIGV4aXN0DQogICAgICB2YXIgb2xkUG9zaXRpb24gPSBpdGVtWyJ4LWNoYW5uZWxJRCJdOw0KDQogICAgICBpZiAob2xkUG9zaXRpb24gIT0gbmV3UG9zaXRpb24pIHsNCg0KICAgICAgICBjb25zb2xlLmxvZyhuZXdQb3NpdGlvbiwgbmV3UG9zaXRpb24ubGVuZ3RoKTsNCiAgICAgICAgaWYgKG5ld1Bvc2l0aW9uLmxlbmd0aCA9PSAwKSB7DQogICAgICAgICAgbWFwcGluZ0Vycm9yID0gdHJ1ZQ0KICAgICAgICAgIG5ld1Bvc2l0aW9uID0gb2xkUG9zaXRpb247DQogICAgICAgICAgDQogICAgICAgIH0NCg0KICAgICAgICBpZiAobWFwcGluZ0Vycm9yID09IHRydWUpIHsNCiAgICAgICAgICBlbG0udmFsdWUgPSBvbGRQb3NpdGlvbjsNCiAgICAgICAgICByZXR1cm47DQogICAgICAgIH0NCg0KICAgICAgICBmb3IgKHZhciBqID0ga2V5cy5sZW5ndGggLSAxOyBqID49IDA7IGotLSkgew0KICAgICAgICAgIHZhciBjaGFubmVsID0geEVQR1siZXBnTWFwcGluZyJdW2tleXNbal1dOw0KICAgICAgICAgIGlmIChrZXlzW2pdICE9IHhfY2hhbm5lbElEKSB7DQogICAgICAgICAgICBpZiAobmV3UG9zaXRpb24gPT0gY2hhbm5lbFsieC1jaGFubmVsSUQiXSkgeyAvLyBJZiBwb3NpdGlvbiBleGlzdCwgc2V0IG5leHQgZnJlZSBwb3NpdGlvbi4NCiAgICAgICAgICAgICAgbmV3UG9zaXRpb24rKzsNCiAgICAgICAgICAgICAgZWxtLnZhbHVlID0gbmV3UG9zaXRpb247DQogICAgICAgICAgICAgIGFycmFuZ2VUYWJsZShlbG0pOw0KICAgICAgICAgICAgICByZXR1cm47DQogICAgICAgICAgICAgIC8qDQogICAgICAgICAgICAgIHZhciBuZXdFcnJvciA9IG5ldyBPYmplY3QoKTsNCiAgICAgICAgICAgICAgbmV3RXJyb3JbImVyciJdID0gIkR1cGxpY2F0ZSBJRCI7DQogICAgICAgICAgICAgIGNoZWNrRXJyKG5ld0Vycm9yKTsNCiAgICAgICAgICAgICAgc29ydFRhYmxlKCk7DQogICAgICAgICAgICAgIG1hcHBpbmdFcnJvciA9IHRydWU7DQogICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHhfY2hhbm5lbElEKS5nZXRFbGVtZW50c0J5VGFnTmFtZSgiSU5QVVQiKVswXS5mb2N1cygpOw0KICAgICAgICAgICAgICByZXR1cm47DQogICAgICAgICAgICAgICovDQogICAgICAgICAgICB9DQogICAgICAgICAgfQ0KICAgICAgICB9DQoNCiAgICAgIH0NCg0KICAgICAgLy9jb25zb2xlLmxvZyhvbGRQb3NpdGlvbiwgbmV3UG9zaXRpb24pOw0KICAgICAgaWYgKGtleXNbaV0gPT0geF9jaGFubmVsSUQgJiYgb2xkUG9zaXRpb24gIT0gbmV3UG9zaXRpb24pIHsgIA0KICAgICAgICBpdGVtWyJ4LWNoYW5uZWxJRCJdID0gbmV3UG9zaXRpb247DQogICAgICB9IA0KDQogICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibG9nSW5mbyIpLmNsYXNzTmFtZSA9ICJub3RWaXNpYmxlIjsNCiAgICAgIGlmIChjb2x1bW5Ub1NvcnQgPT0gMSkgew0KICAgICAgICBzb3J0VGFibGUoY29sdW1uVG9Tb3J0KTsNCiAgICAgIH0NCiAgICAgIG1hcHBpbmdFcnJvciA9IGZhbHNlOw0KDQogICAgfQ0KICB9DQp9DQoNCmZ1bmN0aW9uIGNoYW5nZVhtbHR2RmlsZSh4ZXBnLCBlbG0pIHsNCg0KICB2YXIgdGhpc0NoYW5uZWwgPSB4RVBHWyJlcGdNYXBwaW5nIl1beGVwZ107DQogIA0KICB2YXIgeFhtbHR2RmlsZSAgICA9IGVsbS52YWx1ZTsNCiAgdmFyIGNoYW5uZWxJRCAgICAgPSB0aGlzQ2hhbm5lbFsidHZnLWlkIl07DQogIHRoaXNDaGFubmVsWyJ4LXhtbHR2LWZpbGUiXSA9IHhYbWx0dkZpbGU7DQoNCiAgaWYgKGJ1bGsgPT0gZmFsc2UpIHsNCg0KICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKXsgDQoNCiAgICAgIHZhciB4TWFwcGluZyA9ICItIg0KDQogICAgICAvLyBBdXRvbWFwDQogICAgICBpZiAoeFhtbHR2RmlsZSAhPSAiLSIpIHsNCiAgICAgICAgaWYgKHhFUEdbInhtbHR2TWFwIl1beFhtbHR2RmlsZV0uaGFzT3duUHJvcGVydHkoY2hhbm5lbElEKSA9PSB0cnVlKSB7DQogICAgICAgICAgdGhpc0NoYW5uZWxbIngtbWFwcGluZyJdID0gY2hhbm5lbElEOw0KICAgICAgICAgIHhNYXBwaW5nID0gY2hhbm5lbElEDQogICAgICAgIH0gZWxzZSB7DQogICAgICAgICAgdGhpc0NoYW5uZWxbIngtbWFwcGluZyJdID0geE1hcHBpbmcNCiAgICAgICAgfQ0KICAgICAgfSBlbHNlIHsNCiAgICAgICAgdGhpc0NoYW5uZWxbIngtbWFwcGluZyJdID0geE1hcHBpbmcNCg0KICAgICAgfQ0KICAgICAgDQogICAgICB2YXIgdHIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCh4ZXBnKTsNCg0KICAgICAgaWYgKHhNYXBwaW5nID09ICItIikgew0KICAgICAgICB0aGlzQ2hhbm5lbFsieC1hY3RpdmUiXSA9IGZhbHNlOw0KICAgICAgICB0ci5jbGFzc05hbWUgPSAibm90QWN0aXZlRVBHIg0KICAgICAgfSBlbHNlIHsNCiAgICAgICAgdGhpc0NoYW5uZWxbIngtYWN0aXZlIl0gID0gdHJ1ZTsNCiAgICAgICAgdHIuY2xhc3NOYW1lID0gImFjdGl2ZUVQRyINCiAgICAgIH0NCg0KICAgICAgLy8gU2hvdyBkYXRhIGluIHRhYmxlDQogICAgICB2YXIgdGQgPSB0ci5nZXRFbGVtZW50c0J5VGFnTmFtZSgiVEQiKTsNCiAgICAgIHZhciBkYXRhRmlsZSA9IHRkW3RkLmxlbmd0aCAtIDJdLmxhc3RDaGlsZDsNCiAgICAgIHN3aXRjaCh4WG1sdHZGaWxlKSB7DQogICAgICAgIGNhc2UgIi0iOiAgICAgICAgICAgZGF0YUZpbGUuaW5uZXJIVE1MID0geFhtbHR2RmlsZTsgYnJlYWs7DQogICAgICAgIGNhc2UgInhUZVZlIER1bW15IjogZGF0YUZpbGUuaW5uZXJIVE1MID0geFhtbHR2RmlsZTsgYnJlYWs7DQogICAgICAgIGRlZmF1bHQ6ICAgICAgICAgICAgZGF0YUZpbGUuaW5uZXJIVE1MID0gZ2V0VmFsdWVGcm9tUHJvdmlkZXJGaWxlKHhYbWx0dkZpbGUsICJ4bWx0diIsICJuYW1lIik7IGJyZWFrOw0KICAgICAgfQ0KDQogICAgICAvL3hYbWx0dkZpbGUucmVwbGFjZSgvXi4qW1xcXC9dLywgJycpOw0KDQogICAgICB2YXIgZGF0YVhtbHR2SUQgPSB0ZFt0ZC5sZW5ndGggLSAxXS5sYXN0Q2hpbGQ7DQogICAgICBkYXRhWG1sdHZJRC5pbm5lckhUTUwgPSB4TWFwcGluZzsNCiAgICAgIA0KICAgICAgbWFwcGluZ0RldGFpbCh4ZXBnKTsNCg0KICAgIH0sIDEwKTsNCiAgfQ0KDQogIGlmIChidWxrID09IHRydWUpIHsNCiAgICB2YXIga2V5ID0gIngteG1sdHYtZmlsZSINCiAgICB2YXIgdmFsdWUgPSB4WG1sdHZGaWxlDQogICAgc2F2ZUJ1bGsoa2V5LCB2YWx1ZSk7DQoNCiAgICB2YXIga2V5ID0gIngtbWFwcGluZyINCiAgICB2YXIgdmFsdWUgPSAiLSINCiAgICBzYXZlQnVsayhrZXksIHZhbHVlKTsNCiAgICBtYXBwaW5nRGV0YWlsKHhlcGcpOw0KICAgIHJldHVybg0KICB9DQoNCiAgcmV0dXJuDQp9DQoNCmZ1bmN0aW9uIG1hcHBpbmdDaGFubmVsKHhlcGcsIGVsbSkgew0KICB2YXIgdGhpc0NoYW5uZWwgPSB4RVBHWyJlcGdNYXBwaW5nIl1beGVwZ107DQogIC8vdmFyIHhNYXBwaW5nICAgICAgPSBlbG0udmFsdWU7DQogIHZhciB4TWFwcGluZyAgICAgID0gZWxtLm9wdGlvbnNbZWxtLnNlbGVjdGVkSW5kZXhdLnZhbHVlDQogIA0KICBpZiAoYnVsayA9PSBmYWxzZSkgew0KICAgIA0KICAgIHRoaXNDaGFubmVsWyJ4LW1hcHBpbmciXSA9IHhNYXBwaW5nOw0KDQogICAgdmFyIHRyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoeGVwZyk7DQoNCiAgICBpZiAoeE1hcHBpbmcgPT0gIi0iKSB7DQogICAgICB0aGlzQ2hhbm5lbFsieC1hY3RpdmUiXSA9IGZhbHNlOw0KICAgICAgdHIuY2xhc3NOYW1lID0gIm5vdEFjdGl2ZUVQRyINCiAgICB9IGVsc2Ugew0KICAgICAgdGhpc0NoYW5uZWxbIngtYWN0aXZlIl0gID0gdHJ1ZTsNCiAgICAgIHRyLmNsYXNzTmFtZSA9ICJhY3RpdmVFUEciDQogICAgfQ0KDQogICAgLy8gU2hvdyBkYXRhIGluIHRhYmxlDQogICAgdmFyIHRkID0gdHIuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlREIik7DQogICAgdmFyIGRhdGFYbWx0dklEID0gdGRbdGQubGVuZ3RoIC0gMV0ubGFzdENoaWxkOw0KICAgIGRhdGFYbWx0dklELmlubmVySFRNTCA9IHhNYXBwaW5nOw0KICAgIC8vY29uc29sZS5sb2codGRbdGQubGVuZ3RoIC0gMV0pOw0KICAgIC8vY29uc29sZS5sb2coeE1hcHBpbmcsIGVsbSk7DQoNCiAgICBjcmVhdGVTZWFyY2hPYmooKTsNCiAgICBzZWFyY2hJbk1hcHBpbmcoKTsNCiAgICB1cGRhdGVDaGFubmVsTG9nbyh4ZXBnKQ0KICAgIG1hcHBpbmdEZXRhaWwoeGVwZyk7DQogICAgcmV0dXJuDQogIH0NCg0KICBpZiAoYnVsayA9PSB0cnVlKSB7DQoNCiAgICB2YXIga2V5ID0gIngtbWFwcGluZyINCiAgICB2YXIgdmFsdWUgPSB4TWFwcGluZw0KICAgIHNhdmVCdWxrKGtleSwgdmFsdWUpOw0KDQogICAgbWFwcGluZ0RldGFpbCh4ZXBnKTsNCiAgICByZXR1cm4NCiAgfQ0KDQogIHJldHVybg0KfQ0KDQoNCmZ1bmN0aW9uIGNyZWF0ZU5ld1REKG5ld0l0ZW0sIGVsbSkgew0KICB2YXIgbmV3VEQgPSBuZXcgT2JqZWN0KCk7DQogIG5ld1REWyJfZWxlbWVudCJdID0gIlREIjsNCiAgDQogIGVsbS5hcHBlbmRDaGlsZChjcmVhdGVFbGVtZW50KG5ld1REKSk7DQogIHZhciB0ZCA9IGVsbS5sYXN0Q2hpbGQ7IA0KICANCiAgc3dpdGNoKG5ld0l0ZW1bIl9lbGVtZW50Il0pIHsNCiAgICBjYXNlICJTRUxFQ1QiOg0KICAgICAgdGQuYXBwZW5kQ2hpbGQoY3JlYXRlRWxlbWVudChuZXdJdGVtKSk7DQogICAgICB2YXIgdGQgPSBlbG0ubGFzdENoaWxkLmxhc3RDaGlsZDsgDQogICAgICB2YXIgdmFsdWVzID0gbmV3SXRlbVsiX29wdGlvblZhbHVlcyJdOw0KICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB2YWx1ZXMubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgLy9jb25zb2xlLmxvZyhpdGVtKTsNCiAgICAgICAgdmFyIG5ld0VudHJ5ID0gbmV3IE9iamVjdDsNCiAgICAgICAgbmV3RW50cnlbIl9lbGVtZW50Il0gID0gIk9QVElPTiI7DQogICAgICAgIG5ld0VudHJ5WyJfdGV4dCJdICAgICA9IHZhbHVlc1tpXTsNCiAgICAgICAgbmV3RW50cnlbInZhbHVlIl0gICAgID0gdmFsdWVzW2ldOw0KICAgICAgICB0ZC5hcHBlbmRDaGlsZChjcmVhdGVFbGVtZW50KG5ld0VudHJ5KSk7DQogICAgICB9DQogICAgICB0ZC52YWx1ZSA9IG5ld0l0ZW1bInZhbHVlIl07DQoNCiAgICAgIGJyZWFrOw0KICAgIA0KICAgIGRlZmF1bHQ6IA0KICAgICAgDQogICAgICB0ZC5hcHBlbmRDaGlsZChjcmVhdGVFbGVtZW50KG5ld0l0ZW0pKTsNCiAgICAgIGJyZWFrOw0KICB9DQogIA0KfQ0KDQpmdW5jdGlvbiBzYXZlWEVQRygpIHsNCiAgaWYgKG1hcHBpbmdFcnJvciA9PSB0cnVlKSB7DQogICAgYWxlcnQoIkRhdGEgY291bGQgbm90IGJlIHNhdmVkLCBlcnJvcnMgaW4gdGhlIFhFUEcgZGF0YS4iKTsNCiAgICByZXR1cm47DQogIH0NCiAgc2hvd0xvYWRpbmdTY3JlZW4odHJ1ZSk7DQoNCiAgdmFyIGRhdGEgPSBuZXcgT2JqZWN0KCk7DQogIGRhdGFbImVwZ01hcHBpbmciXSA9IHhFUEdbImVwZ01hcHBpbmciXTsNCiAgZGF0YVsiY21kIl0gPSAic2F2ZUVwZ01hcHBpbmciOw0KICAvL2NvbnNvbGUubG9nKGRhdGEpOw0KICB4VGVWZShkYXRhKTsNCn0NCg0KZnVuY3Rpb24gYnVsa0VkaXQoKSB7DQogIGJ1bGsgPSAhYnVsazsNCiAgdmFyIGNsYXNzTmFtZTsNCg0KICB2YXIgZWxtID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSgiYnVsayIpOw0KDQogIHN3aXRjaChidWxrKSB7DQogICAgY2FzZSB0cnVlOiANCiAgICAgIGNsYXNzTmFtZSA9ICJidWxrIHNob3dCdWxrIjsNCiAgICAgIGJyZWFrOw0KDQogICAgY2FzZSBmYWxzZTogDQogICAgICBjbGFzc05hbWUgPSAiYnVsayBoaWRlQnVsayI7DQogICAgICBidWxrRWRpdEFsbCA9IGZhbHNlOw0KICAgICAgYnJlYWs7DQogIH0NCg0KICBmb3IgKHZhciBpID0gMDsgaSA8IGVsbS5sZW5ndGg7IGkrKykgew0KICAgIGVsbVtpXS5jbGFzc05hbWUgPSBjbGFzc05hbWU7DQogICAgZWxtW2ldLmNoZWNrZWQgPSBmYWxzZTsNCiAgfQ0KDQp9DQoNCmZ1bmN0aW9uIGJ1bGtFZGl0QWxsQ2hhbm5lbHMoKSB7DQoNCiAgdmFyIGFsbFRSID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImlkX21hcHBpbmciKS5nZXRFbGVtZW50c0J5VGFnTmFtZSgiVFIiKTsNCg0KICBmb3IgKHZhciBpID0gMTsgaSA8IGFsbFRSLmxlbmd0aDsgaSsrKSB7DQogICAgaWYgKGFsbFRSW2ldLnN0eWxlLmRpc3BsYXkgIT0gIm5vbmUiKSB7DQogICAgICBzd2l0Y2goYnVsa0VkaXRBbGwpIHsNCiAgICAgICAgY2FzZSBmYWxzZTogYWxsVFJbaV0uZmlyc3RDaGlsZC5maXJzdENoaWxkLmNoZWNrZWQgPSB0cnVlOyBicmVhazsNCiAgICAgICAgY2FzZSB0cnVlOiBhbGxUUltpXS5maXJzdENoaWxkLmZpcnN0Q2hpbGQuY2hlY2tlZCA9IGZhbHNlOyBicmVhazsgDQogICAgICB9DQoNCiAgICB9DQogICAgDQogIH0NCg0KICBidWxrRWRpdEFsbCA9ICFidWxrRWRpdEFsbDsNCn0NCg0KZnVuY3Rpb24gc29ydFRhYmxlKGNvbHVtbSkgew0KICAvL2NvbnNvbGUubG9nKGNvbHVtbSk7DQogIGlmIChjb2x1bW0gPT0gY29sdW1uVG9Tb3J0KSB7DQogICAgLy9yZXR1cm47DQogIH0NCg0KICB2YXIgdGFibGUgICAgICAgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiaWRfbWFwcGluZyIpOw0KICB2YXIgdGFibGVIZWFkICAgPSB0YWJsZS5nZXRFbGVtZW50c0J5VGFnTmFtZSgiVFIiKVswXTsNCiAgdmFyIHRhYmxlSXRlbXMgID0gdGFibGVIZWFkLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJURCIpOw0KICANCiAgdmFyIHNvcnRPYmogPSBuZXcgT2JqZWN0KCk7DQogIHZhciB4LCB4VmFsdWU7DQogIHZhciB0YWJsZUhlYWRlcg0KICB2YXIgc29ydEJ5U3RyaW5nID0gZmFsc2UNCg0KICBpZiAoY29sdW1tID4gMCAmJiBjb2x1bW5Ub1NvcnQgPiAwKSAgew0KICAgIHRhYmxlSXRlbXNbY29sdW1uVG9Tb3J0XS5jbGFzc05hbWUgPSAicG9pbnRlciI7DQogICAgdGFibGVJdGVtc1tjb2x1bW1dLmNsYXNzTmFtZSA9ICJzb3J0VGhpcyI7DQogIH0NCg0KICBjb2x1bW5Ub1NvcnQgPSBjb2x1bW07DQoNCiAgdmFyIHJvd3MgPSB0YWJsZS5yb3dzOw0KDQogIGlmIChyb3dzWzFdICE9IHVuZGVmaW5lZCkgew0KICAgIHRhYmxlSGVhZGVyID0gcm93c1swXQ0KDQogICAgeCA9IHJvd3NbMV0uZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlREIilbY29sdW1tXTsNCiAgICANCiAgICBmb3IgKGkgPSAxOyBpIDwgcm93cy5sZW5ndGg7IGkrKykgew0KDQogICAgICB4ID0gcm93c1tpXS5nZXRFbGVtZW50c0J5VGFnTmFtZSgiVEQiKVtjb2x1bW1dOw0KDQogICAgICBzd2l0Y2goeC5jaGlsZE5vZGVzWzBdLnRhZ05hbWUudG9Mb3dlckNhc2UoKSkgew0KICAgICAgICBjYXNlICJpbnB1dCI6DQogICAgICAgICAgeFZhbHVlID0geC5nZXRFbGVtZW50c0J5VGFnTmFtZSgiSU5QVVQiKVswXS52YWx1ZS50b0xvd2VyQ2FzZSgpOw0KICAgICAgICAgIGJyZWFrOw0KDQogICAgICAgIGNhc2UgInAiOg0KICAgICAgICAgIHhWYWx1ZSA9IHguZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlAiKVswXS5pbm5lclRleHQudG9Mb3dlckNhc2UoKTsNCiAgICAgICAgICBicmVhazsNCiAgICAgICAgDQogICAgICAgIGRlZmF1bHQ6IGNvbnNvbGUubG9nKHguY2hpbGROb2Rlc1swXS50YWdOYW1lKTsNCiAgICAgIH0NCg0KICAgICAgaWYgKHhWYWx1ZSA9PSAiIiB8fCB4VmFsdWUgPT0gTmFOKSB7DQogICAgICAgIHhWYWx1ZSA9IGkNCiAgICAgICAgc29ydE9ialtpXSA9IHJvd3NbaV07DQogICAgICANCiAgICAgIH0gZWxzZSB7DQoNCiAgICAgICAgc3dpdGNoKGlzTmFOKHhWYWx1ZSkpIHsNCiAgICAgICAgICBjYXNlIGZhbHNlOiANCg0KICAgICAgICAgICAgeFZhbHVlID0gcGFyc2VGbG9hdCh4VmFsdWUpOw0KICAgICAgICAgICAgc29ydE9ialt4VmFsdWVdID0gcm93c1tpXQ0KICAgICAgICAgICAgYnJlYWs7DQoNCiAgICAgICAgICBjYXNlIHRydWU6DQoNCiAgICAgICAgICAgIHNvcnRCeVN0cmluZyA9IHRydWUNCiAgICAgICAgICAgIHNvcnRPYmpbeFZhbHVlLnRvTG93ZXJDYXNlKCkgKyBpXSA9IHJvd3NbaV0NCiAgICAgICAgICAgIGJyZWFrOw0KDQogICAgICAgIH0NCg0KICAgICAgfQ0KICAgIA0KICAgIH0NCg0KICAgIHdoaWxlICh0YWJsZS5maXJzdENoaWxkKSB7DQogICAgICB0YWJsZS5yZW1vdmVDaGlsZCh0YWJsZS5maXJzdENoaWxkKTsNCiAgICB9DQogICAgDQogICAgdmFyIHNvcnRWYWx1ZXMgPSBnZXRPYmpLZXlzKHNvcnRPYmopDQogICAgaWYgKHNvcnRCeVN0cmluZyA9PSB0cnVlKSB7DQogICAgICBzb3J0VmFsdWVzLnNvcnQoKQ0KICAgIH0gZWxzZSB7DQogICAgICBmdW5jdGlvbiBzb3J0RmxvYXQoYSwgYikgeyANCiAgICAgICAgcmV0dXJuIGEgLSBiOyANCiAgICAgIH0NCiAgICAgIHNvcnRWYWx1ZXMuc29ydChzb3J0RmxvYXQpOw0KICAgIH0NCg0KICAgIHRhYmxlLmFwcGVuZENoaWxkKHRhYmxlSGVhZGVyKQ0KICAgIA0KICAgIGZvciAodmFyIGkgPSAwOyBpIDwgc29ydFZhbHVlcy5sZW5ndGg7IGkrKykgew0KICAgICANCiAgICAgIHRhYmxlLmFwcGVuZENoaWxkKHNvcnRPYmpbc29ydFZhbHVlc1tpXV0pDQoNCiAgICB9DQogICAgDQogIH0NCg0KfQ0KDQoNCmZ1bmN0aW9uIHNvcnRUYWJsZV9vbGQoY29sdW1tKSB7DQogIHNob3dMb2FkaW5nU2NyZWVuKHRydWUpOw0KICANCiAgc2V0VGltZW91dChmdW5jdGlvbigpeyANCg0KICAgIHZhciB0YWJsZSwgcm93cywgc3dpdGNoaW5nLCBpLCB4LCB5LCBzaG91bGRTd2l0Y2g7DQogICAgdGFibGUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiaWRfbWFwcGluZyIpOw0KDQogICAgdmFyIHRhYmxlSGVhZCA9IHRhYmxlLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJUUiIpWzBdOw0KICAgIHZhciB0YWJsZUl0ZW1zID0gdGFibGVIZWFkLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJURCIpOw0KDQogICAgaWYgKGNvbHVtbSA+IDApICB7DQogICAgICB0YWJsZUl0ZW1zW2NvbHVtblRvU29ydF0uY2xhc3NOYW1lID0gInBvaW50ZXIiOw0KICAgICAgdGFibGVJdGVtc1tjb2x1bW1dLmNsYXNzTmFtZSA9ICJzb3J0VGhpcyI7DQogICAgfQ0KICAgIA0KICAgIGNvbHVtblRvU29ydCA9IGNvbHVtbTsNCg0KICAgIC8qDQogICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0YWJsZUl0ZW1zLmxlbmd0aDsgaSsrKSB7DQogICAgICBpZiAodGFibGVJdGVtc1tpXS5jbGFzc05hbWUgIT0gdW5kZWZpbmVkKSB7DQogICAgICAgIHRhYmxlSXRlbXNbaV0uY2xhc3NOYW1lID0gInBvaW50ZXIiDQogICAgICB9DQoNCiAgICB9DQogICAgKi8NCg0KICAgIA0KDQogICAgY29uc29sZS5sb2codGFibGVJdGVtcyk7IA0KDQogICAgc3dpdGNoaW5nID0gdHJ1ZTsNCiAgICB3aGlsZSAoc3dpdGNoaW5nKSB7DQogICAgICBzd2l0Y2hpbmcgPSBmYWxzZTsNCiAgICAgIHJvd3MgPSB0YWJsZS5yb3dzOw0KICAgICAgZm9yIChpID0gMTsgaSA8IChyb3dzLmxlbmd0aCAtIDEpOyBpKyspIHsNCiAgICAgICAgc2hvdWxkU3dpdGNoID0gZmFsc2U7DQoNCiAgICAgICAgeCA9IHJvd3NbaV0uZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlREIilbY29sdW1tXTsNCiAgICAgICAgeSA9IHJvd3NbaSArIDFdLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJURCIpW2NvbHVtbV07DQoNCiAgICAgICAgc3dpdGNoKHguY2hpbGROb2Rlc1swXS50YWdOYW1lLnRvTG93ZXJDYXNlKCkpIHsNCiAgICAgICAgICBjYXNlICJpbnB1dCI6DQogICAgICAgICAgICB4VmFsdWUgPSB4LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJJTlBVVCIpWzBdLnZhbHVlLnRvTG93ZXJDYXNlKCk7DQogICAgICAgICAgICB5VmFsdWUgPSB5LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJJTlBVVCIpWzBdLnZhbHVlLnRvTG93ZXJDYXNlKCk7DQogICAgICAgICAgICBicmVhazsNCg0KICAgICAgICAgIGNhc2UgInAiOg0KICAgICAgICAgICAgeFZhbHVlID0geC5nZXRFbGVtZW50c0J5VGFnTmFtZSgiUCIpWzBdLmlubmVyVGV4dC50b0xvd2VyQ2FzZSgpOw0KICAgICAgICAgICAgeVZhbHVlID0geS5nZXRFbGVtZW50c0J5VGFnTmFtZSgiUCIpWzBdLmlubmVyVGV4dC50b0xvd2VyQ2FzZSgpOw0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgDQogICAgICAgICAgZGVmYXVsdDogY29uc29sZS5sb2coeC5jaGlsZE5vZGVzWzBdLnRhZ05hbWUpOw0KICAgICAgICB9DQoNCiAgICAgICAgDQogICAgICAgIHN3aXRjaChpc05hTih4VmFsdWUpKSB7DQogICAgICAgICAgY2FzZSBmYWxzZTogeFZhbHVlID0gcGFyc2VGbG9hdCh4VmFsdWUpIDsgYnJlYWs7DQogICAgICAgIH0NCg0KICAgICAgICBzd2l0Y2goaXNOYU4oeVZhbHVlKSkgew0KICAgICAgICAgIGNhc2UgZmFsc2U6IHlWYWx1ZSA9IHBhcnNlRmxvYXQoeVZhbHVlKSA7IGJyZWFrOw0KICAgICAgICB9DQogICAgICAgIA0KDQogICAgICAgIGlmICh4VmFsdWUgPiB5VmFsdWUpIHsNCiAgICAgICAgICBzaG91bGRTd2l0Y2ggPSB0cnVlOw0KICAgICAgICAgIGJyZWFrOw0KICAgICAgICB9DQoNCiAgICAgIH0NCiAgICAgIGlmIChzaG91bGRTd2l0Y2gpIHsNCiAgICAgICAgcm93c1tpXS5wYXJlbnROb2RlLmluc2VydEJlZm9yZShyb3dzW2kgKyAxXSwgcm93c1tpXSk7DQogICAgICAgIHN3aXRjaGluZyA9IHRydWU7DQogICAgICB9DQogICAgfQ0KICAgIGNyZWF0ZVNlYXJjaE9iaigpDQogICAgDQogICAgc2hvd0xvYWRpbmdTY3JlZW4oZmFsc2UpOw0KICB9LCAyMCk7DQoNCn0NCg0KZnVuY3Rpb24gc2hvd1hFUEcoKSB7DQogIHZhciB1cmwgPSBsb2NhdGlvbi5wcm90b2NvbCArICIvLyIgKyBsb2NhdGlvbi5ob3N0bmFtZSArICI6IiArIGxvY2F0aW9uLnBvcnQgKyAiL3htbHR2L3h0ZXZlLnhtbCINCiAgdmFyIHdpbiA9IHdpbmRvdy5vcGVuKHVybCwgJ19ibGFuaycpOw0KICB3aW4uZm9jdXMoKTsNCn0=" + webUI["html/img/filter.png"] = "iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAAAXNSR0IArs4c6QAAAAlwSFlzAAAsSwAALEsBpT2WqQAABCRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IlhNUCBDb3JlIDUuNC4wIj4KICAgPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIgogICAgICAgICAgICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgICAgICAgICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyI+CiAgICAgICAgIDx0aWZmOlJlc29sdXRpb25Vbml0PjI8L3RpZmY6UmVzb2x1dGlvblVuaXQ+CiAgICAgICAgIDx0aWZmOkNvbXByZXNzaW9uPjU8L3RpZmY6Q29tcHJlc3Npb24+CiAgICAgICAgIDx0aWZmOlhSZXNvbHV0aW9uPjI4ODwvdGlmZjpYUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6T3JpZW50YXRpb24+MTwvdGlmZjpPcmllbnRhdGlvbj4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+Mjg4PC90aWZmOllSZXNvbHV0aW9uPgogICAgICAgICA8ZXhpZjpQaXhlbFhEaW1lbnNpb24+NTA8L2V4aWY6UGl4ZWxYRGltZW5zaW9uPgogICAgICAgICA8ZXhpZjpDb2xvclNwYWNlPjE8L2V4aWY6Q29sb3JTcGFjZT4KICAgICAgICAgPGV4aWY6UGl4ZWxZRGltZW5zaW9uPjUwPC9leGlmOlBpeGVsWURpbWVuc2lvbj4KICAgICAgICAgPGRjOnN1YmplY3Q+CiAgICAgICAgICAgIDxyZGY6QmFnLz4KICAgICAgICAgPC9kYzpzdWJqZWN0PgogICAgICAgICA8eG1wOk1vZGlmeURhdGU+MjAxOC0wNy0yOFQxOTowNzo2OTwveG1wOk1vZGlmeURhdGU+CiAgICAgICAgIDx4bXA6Q3JlYXRvclRvb2w+UGl4ZWxtYXRvciAzLjM8L3htcDpDcmVhdG9yVG9vbD4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgIDwvcmRmOlJERj4KPC94OnhtcG1ldGE+Cs038OQAAAOISURBVGgF5ZpLSBVRGMfvvfmqCKKiKCqKtE3SQ8haJJm1ctPCZYHrFhXtohcUBLVsU1BRBJKLXpsSKs1aCL1oUUhvMgIloodZKmLZ72+OzNVx7jzOXGfqg/89Z875zv/7f35n7px7vanUP2JptzyGhoYKmK8GW0EZmA/mgW7wHrwDN0BTOp0epPVtxBBnLdgIVoE5YBboBR2gDTTA/5DWn0FeDPaBz8CLdeF0EBR5jYRvKbgABoAXa8Opwit/CudK8NoLs4PPM8ZyBsNnB/jpsD7X0C8cjgDXnaQkqkEPCGMSuGWivxxzx8OQj6xtpHWuPhPloHfEMWzTD0HN2GQY2xuW2Lb+/Fh+VaIQPLE5meh+gmSxFYz+BjBogtjGscfiH26Z2GmbNNltVQAIpwDdP6ZNO2iRYqTpZGhfgWUaiMC2w1kCzkbALcqLvDVvUyK6MW9HFES0b8BvsFwXEZi4F+iBtykCcjtlqf0igr52VJ1eqiIgzzdlrRIZfWfJd3SD8ZbqHvkB4XSDpJNB9V0VcX/cT4Ys/zEzSuSj/3WxW9GpRD7ETpZ/QcOJ6LyfdHugitxNehbob9G7lo4PXWBmQhPqQ/fsDOeUfjqNCU1Csi+TQ5+2luzc3yaRr6elevQZwhZr4bomYam0U41yabYqov5hvSTMjlp6RyuiAarSTLPZmox5246+lVREx/isiuh6NxhUJwF2yEpCWu1bK8WEsjyRgCSa0XrVrjNra2mC7TWD5ilYAuJoA4jSlnppF5dVEU3g0ENTD4b3nsZiZsfGJuGqj8qY+CINGqP2GLZCJ+HjtpblxAJ9k3cPrLfGJrnVUaSCarxw0jFua1lOLNBerANx+byya6IkLM2uLZWpAl6/Mcc1EjvjKtLrJNLqI5HnjfQ+bsVeteb0g2y/t7hGvd7CNjenOL8OkJ40KtOdTF+Cl/nV6Mkf4gxocI9vZPYLLKs9iQrqRIACcM2IXGeSboYrg+rztY5ARaDJWUeo0W+sXudLTFhnApaAW6FkZy/+yuXasLoCrSfwVHAnW0+gK93YawKJMLUIAdNAKwhqnSxcYUpPKB6EBE2mg7VR///EX24jybTQerXnOC70FyVP3gjTPXPTQyaP8NFPNeJrCNTPP667JKOq6VNo/A2hes5ccUjmEmPmDoD5+FMgWCcA+3FG57QJP//kQ1PgGBIOToEDgUn+t4V/AJeGknwARIKLAAAAAElFTkSuQmCC" + webUI["html/img/logo_w_600x200.png"] = "iVBORw0KGgoAAAANSUhEUgAAAlgAAADICAYAAAA0n5+2AAAAAXNSR0IArs4c6QAAAAlwSFlzAAAuIwAALiMBeKU/dgAABCZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IlhNUCBDb3JlIDUuNC4wIj4KICAgPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIgogICAgICAgICAgICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgICAgICAgICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyI+CiAgICAgICAgIDx0aWZmOlJlc29sdXRpb25Vbml0PjI8L3RpZmY6UmVzb2x1dGlvblVuaXQ+CiAgICAgICAgIDx0aWZmOkNvbXByZXNzaW9uPjU8L3RpZmY6Q29tcHJlc3Npb24+CiAgICAgICAgIDx0aWZmOlhSZXNvbHV0aW9uPjMwMDwvdGlmZjpYUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6T3JpZW50YXRpb24+MTwvdGlmZjpPcmllbnRhdGlvbj4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+MzAwPC90aWZmOllSZXNvbHV0aW9uPgogICAgICAgICA8ZXhpZjpQaXhlbFhEaW1lbnNpb24+NjAwPC9leGlmOlBpeGVsWERpbWVuc2lvbj4KICAgICAgICAgPGV4aWY6Q29sb3JTcGFjZT4xPC9leGlmOkNvbG9yU3BhY2U+CiAgICAgICAgIDxleGlmOlBpeGVsWURpbWVuc2lvbj4yMDA8L2V4aWY6UGl4ZWxZRGltZW5zaW9uPgogICAg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" + webUI["html/img/logout.png"] = "iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAAAXNSR0IArs4c6QAAAAlwSFlzAAAsSwAALEsBpT2WqQAABCRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IlhNUCBDb3JlIDUuNC4wIj4KICAgPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIgogICAgICAgICAgICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgICAgICAgICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyI+CiAgICAgICAgIDx0aWZmOlJlc29sdXRpb25Vbml0PjI8L3RpZmY6UmVzb2x1dGlvblVuaXQ+CiAgICAgICAgIDx0aWZmOkNvbXByZXNzaW9uPjU8L3RpZmY6Q29tcHJlc3Npb24+CiAgICAgICAgIDx0aWZmOlhSZXNvbHV0aW9uPjI4ODwvdGlmZjpYUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6T3JpZW50YXRpb24+MTwvdGlmZjpPcmllbnRhdGlvbj4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+Mjg4PC90aWZmOllSZXNvbHV0aW9uPgogICAgICAgICA8ZXhpZjpQaXhlbFhEaW1lbnNpb24+NTA8L2V4aWY6UGl4ZWxYRGltZW5zaW9uPgogICAgICAgICA8ZXhpZjpDb2xvclNwYWNlPjE8L2V4aWY6Q29sb3JTcGFjZT4KICAgICAgICAgPGV4aWY6UGl4ZWxZRGltZW5zaW9uPjUwPC9leGlmOlBpeGVsWURpbWVuc2lvbj4KICAgICAgICAgPGRjOnN1YmplY3Q+CiAgICAgICAgICAgIDxyZGY6QmFnLz4KICAgICAgICAgPC9kYzpzdWJqZWN0PgogICAgICAgICA8eG1wOk1vZGlmeURhdGU+MjAxOC0xMC0xM1QxMToxMDoxODwveG1wOk1vZGlmeURhdGU+CiAgICAgICAgIDx4bXA6Q3JlYXRvclRvb2w+UGl4ZWxtYXRvciAzLjM8L3htcDpDcmVhdG9yVG9vbD4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgIDwvcmRmOlJERj4KPC94OnhtcG1ldGE+Cg27QeEAAANQSURBVGgF7Zk9aBRBGIZzSRSN8YdoCpEkghCCqK1o4g9IsBCCNmIniCAiWAhqI8G02qiIoqCCWggSEcFKEFPYpVAU8QdFUyiKRpRokBjP55OdZDLZvZnZ7N3Ngh887M7sN/O9797t7c5eTc3/8D8DxWKxGS5Ai//oAEYgvB4OwleQaAtAlp8ERG+Bp6Jei/wYQfRy6NfE67vhG0FtA/TBqK7c2A/bCGJ3wpAhOq4ZphGUroEHcYoT+sIygsgmOAu/EwQndYdhBHV1sB8+Jym19Lf6/faVIRuBG+GRRajtcPWMoKwFbtgUOh6vvBGEzYFj8MNRpEtaZY2gaAe8cVHmmXOc/K3QXIZv/+SUFFgJ96AS8ZwiZ6Ab6iZVzGCPiRbCKRiDasQHip6EdD/PDKyFvfAJQgg5kVfB/VoieT0MQojxE1G9UG/7otWS0A7pPkrb7DM/Ppcp+mAAM/bFGEmL4RL8gVDjI8JWOZ0bEjvhSahO0CXXsLMZWZYegREIMV4jaoHTJyNJJLfC7RCdoOm6sxGVyKAeeBegoU6l0XmLiXlwAqp1o4w7j3d1AwW9YdtnNrnQzkOXLddyfAPHv8Ey6ABpd8N88In2QqHwymfARC5mCrAH0i6qGDr9jk3fbNgFz8A1DkwIS7tDpSVwGdLcexIfPZhPHpf2wS+wRX9a/dPGUakLzBdwNgGJRlQBJtgMw5aJ3qr8TLYUmwVHwXXxZTUiwphvHYxDUnzPxIA5CdXa4E5SVa3fyUhkRtYqpSKbNYxpJiq+ncpDJar7GGlknvcl5mqM05BZH4Xl3iOLpLh7j7OR6MScSzAykplg20QIWA0PDSG+RuTdQVy8sNXP9DgK5N4jK9AvkRpfI4sYF/c2836mQl0nQ4zce66AfZFkTMqYl2DGaSMt/CYOHpsuaPco5bLUzUuMGkLHaQ+ovjwZUZrVdpAHRnnw/Bd5MrJCiY62t4x2+E2uBfkfRg95TdSkK8/LJ7JWF83+Nb5Ww0Zf+E3OviwXVMgT8dLwVRsKEd0A+uP8biMlH01MHAYVF/Oh2lCJenkDqpbUN9nPyzU91QnCRbyEPEXn1sQhxMv7tG1T7cW3rK/r44eVtxfxm6gwBh38zJqPJuUtXu3Z/wLwuBaBLgMkKwAAAABJRU5ErkJggg==" + webUI["html/img/users.png"] = "iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAAAXNSR0IArs4c6QAAAAlwSFlzAAAsSwAALEsBpT2WqQAABCRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IlhNUCBDb3JlIDUuNC4wIj4KICAgPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIgogICAgICAgICAgICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgICAgICAgICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyI+CiAgICAgICAgIDx0aWZmOlJlc29sdXRpb25Vbml0PjI8L3RpZmY6UmVzb2x1dGlvblVuaXQ+CiAgICAgICAgIDx0aWZmOkNvbXByZXNzaW9uPjU8L3RpZmY6Q29tcHJlc3Npb24+CiAgICAgICAgIDx0aWZmOlhSZXNvbHV0aW9uPjI4ODwvdGlmZjpYUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6T3JpZW50YXRpb24+MTwvdGlmZjpPcmllbnRhdGlvbj4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+Mjg4PC90aWZmOllSZXNvbHV0aW9uPgogICAgICAgICA8ZXhpZjpQaXhlbFhEaW1lbnNpb24+NTA8L2V4aWY6UGl4ZWxYRGltZW5zaW9uPgogICAgICAgICA8ZXhpZjpDb2xvclNwYWNlPjE8L2V4aWY6Q29sb3JTcGFjZT4KICAgICAgICAgPGV4aWY6UGl4ZWxZRGltZW5zaW9uPjUwPC9leGlmOlBpeGVsWURpbWVuc2lvbj4KICAgICAgICAgPGRjOnN1YmplY3Q+CiAgICAgICAgICAgIDxyZGY6QmFnLz4KICAgICAgICAgPC9kYzpzdWJqZWN0PgogICAgICAgICA8eG1wOk1vZGlmeURhdGU+MjAxOC0wOC0zMFQxNzowODozODwveG1wOk1vZGlmeURhdGU+CiAgICAgICAgIDx4bXA6Q3JlYXRvclRvb2w+UGl4ZWxtYXRvciAzLjM8L3htcDpDcmVhdG9yVG9vbD4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgIDwvcmRmOlJERj4KPC94OnhtcG1ldGE+CjU01MMAAANJSURBVGgF1ZnLaxNRFMYz2rpoFbW+SCsihaJQRMT6rPhAXAq6c+HChSguRFd1oRtd+A/oWhQ3oiiWFB91UbqRqlXXgoIIQhFbQTTQao2/GzLDZEjIPefO7SQHPjJz55zzfd/MZCa5N8h5ilKptJvWp8FekAed4Bv4Cj6Dh2A4CIJZPpszMHEV2MQ0SZdB0DROENMHjoEzQBoFCpZnbgYR58E/qfpE/kv2F2dmBvJ94G9ClHb3SiZGUBuASa3qGnVzjG3RmFmkKYrVHGB7e2zfdbOdBhc1TVyNnNSQNqg5wVURf/FdjRxpIEpzuIOio9JCtRHO2hrINkgJLfPFt6vaCII2WYrSpPVJi1RGuBrmTbxeSibIX5j3CUauAfOo9BXzNH4nMJ5TXREI1gHzqPQVRtc2zCyxJdAaGbclcMj7zi/jOdt6rZFhCH7akijznknqVEY4U78heSAhUuTekNSojFQIChIiYe57TtZrSY2LkecQzUjIBLljglz3VJ4qg+AXSDNGabbWXZ2wA6Qjabqg136hhHK6y60V8o2EGyl8/qHHpKZPGkYeQzyvIa9RM86XvFhjvOGQsxGIp2B50ZDJLuG2XZqnLO5rM3viGh9o0OZJon1bRLxxdHLcns1jJiYOAu2U0D2P0uStMXJdcVU+UdMlZ/NYgaA28ERg5ge5/R4l6VsjrANMWJiZJWeXnqm60vnxW90ul6u8ByaS4zX2i+S+qjGuGkrdSEWFzT1vlhlSC19Gui0UtnNriSfi6vX1ZWRjPcLEeGrzYqkb4SyvQGxvQnC93cF6BzIfx8gpYBsfSdycuei4AAR1ggugCCRh1lbugIF4vwXbhtisjfSDc+ARSOOf4lv6mNWv1VIj1ouQNF9K851gDzArtWbV1uYxS5o4zB+sp+AuKPC+cVv5RXwPuATMmUpreY1Wopgh+ybYKj4dFHWB+8DMwTZTjCHmsJUhEgfAF9DMcQtx9V8dHMyDqWZ2ENM2FL8yVV92kkY56GM5Lc6Z1vY0jbp5EJQnuqPLg4kdLWTCnIxVIJoDi4wweNYcbbGIfuLEjRxqMRNGbvTvsmyE22oZg70taKQn1BxekXw40GKfK0O9oZHsJ8ZCRbLPaI3xP7YzeQoHxWckAAAAAElFTkSuQmCC" + webUI["html/js/network_ts.js"] = "Y2xhc3MgU2VydmVyIHsNCiAgICBjb25zdHJ1Y3RvcihjbWQpIHsNCiAgICAgICAgdGhpcy5jbWQgPSBjbWQ7DQogICAgfQ0KICAgIHJlcXVlc3QoZGF0YSkgew0KICAgICAgICBpZiAoU0VSVkVSX0NPTk5FQ1RJT04gPT0gdHJ1ZSkgew0KICAgICAgICAgICAgcmV0dXJuOw0KICAgICAgICB9DQogICAgICAgIFNFUlZFUl9DT05ORUNUSU9OID0gdHJ1ZTsNCiAgICAgICAgY29uc29sZS5sb2coZGF0YSk7DQogICAgICAgIGlmICh0aGlzLmNtZCAhPSAidXBkYXRlTG9nIikgew0KICAgICAgICAgICAgc2hvd0VsZW1lbnQoImxvYWRpbmciLCB0cnVlKTsNCiAgICAgICAgICAgIFVORE8gPSBuZXcgT2JqZWN0KCk7DQogICAgICAgIH0NCiAgICAgICAgc3dpdGNoICh3aW5kb3cubG9jYXRpb24ucHJvdG9jb2wpIHsNCiAgICAgICAgICAgIGNhc2UgImh0dHA6IjoNCiAgICAgICAgICAgICAgICB0aGlzLnByb3RvY29sID0gIndzOi8vIjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImh0dHBzOiI6DQogICAgICAgICAgICAgICAgdGhpcy5wcm90b2NvbCA9ICJ3c3M6Ly8iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICB9DQogICAgICAgIHZhciB1cmwgPSB0aGlzLnByb3RvY29sICsgd2luZG93LmxvY2F0aW9uLmhvc3RuYW1lICsgIjoiICsgd2luZG93LmxvY2F0aW9uLnBvcnQgKyAiL2RhdGEvIiArICI/VG9rZW49IiArIGdldENvb2tpZSgiVG9rZW4iKTsNCiAgICAgICAgZGF0YVsiY21kIl0gPSB0aGlzLmNtZDsNCiAgICAgICAgdmFyIHdzID0gbmV3IFdlYlNvY2tldCh1cmwpOw0KICAgICAgICB3cy5vbm9wZW4gPSBmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICBXU19BVkFJTEFCTEUgPSB0cnVlOw0KICAgICAgICAgICAgY29uc29sZS5sb2coIlJFUVVFU1QgKEpTKToiKTsNCiAgICAgICAgICAgIGNvbnNvbGUubG9nKGRhdGEpOw0KICAgICAgICAgICAgY29uc29sZS5sb2coIlJFUVVFU1Q6IChKU09OKSIpOw0KICAgICAgICAgICAgY29uc29sZS5sb2coSlNPTi5zdHJpbmdpZnkoZGF0YSkpOw0KICAgICAgICAgICAgdGhpcy5zZW5kKEpTT04uc3RyaW5naWZ5KGRhdGEpKTsNCiAgICAgICAgfTsNCiAgICAgICAgd3Mub25lcnJvciA9IGZ1bmN0aW9uIChlKSB7DQogICAgICAgICAgICBjb25zb2xlLmxvZygiTm8gd2Vic29ja2V0IGNvbm5lY3Rpb24gdG8geFRlVmUgY291bGQgYmUgZXN0YWJsaXNoZWQuIENoZWNrIHlvdXIgbmV0d29yayBjb25maWd1cmF0aW9uLiIpOw0KICAgICAgICAgICAgU0VSVkVSX0NPTk5FQ1RJT04gPSBmYWxzZTsNCiAgICAgICAgICAgIGlmIChXU19BVkFJTEFCTEUgPT0gZmFsc2UpIHsNCiAgICAgICAgICAgICAgICBhbGVydCgiTm8gd2Vic29ja2V0IGNvbm5lY3Rpb24gdG8geFRlVmUgY291bGQgYmUgZXN0YWJsaXNoZWQuIENoZWNrIHlvdXIgbmV0d29yayBjb25maWd1cmF0aW9uLiIpOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9Ow0KICAgICAgICB3cy5vbm1lc3NhZ2UgPSBmdW5jdGlvbiAoZSkgew0KICAgICAgICAgICAgU0VSVkVSX0NPTk5FQ1RJT04gPSBmYWxzZTsNCiAgICAgICAgICAgIHNob3dFbGVtZW50KCJsb2FkaW5nIiwgZmFsc2UpOw0KICAgICAgICAgICAgY29uc29sZS5sb2coIlJFU1BPTlNFOiIpOw0KICAgICAgICAgICAgdmFyIHJlc3BvbnNlID0gSlNPTi5wYXJzZShlLmRhdGEpOw0KICAgICAgICAgICAgY29uc29sZS5sb2cocmVzcG9uc2UpOw0KICAgICAgICAgICAgaWYgKHJlc3BvbnNlLmhhc093blByb3BlcnR5KCJ0b2tlbiIpKSB7DQogICAgICAgICAgICAgICAgZG9jdW1lbnQuY29va2llID0gIlRva2VuPSIgKyByZXNwb25zZVsidG9rZW4iXTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGlmIChyZXNwb25zZVsic3RhdHVzIl0gPT0gZmFsc2UpIHsNCiAgICAgICAgICAgICAgICBhbGVydChyZXNwb25zZVsiZXJyIl0pOw0KICAgICAgICAgICAgICAgIGlmIChyZXNwb25zZS5oYXNPd25Qcm9wZXJ0eSgicmVsb2FkIikpIHsNCiAgICAgICAgICAgICAgICAgICAgbG9jYXRpb24ucmVsb2FkKCk7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIHJldHVybjsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGlmIChyZXNwb25zZS5oYXNPd25Qcm9wZXJ0eSgibG9nb1VSTCIpKSB7DQogICAgICAgICAgICAgICAgdmFyIGRpdiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjaGFubmVsLWljb24iKTsNCiAgICAgICAgICAgICAgICBkaXYudmFsdWUgPSByZXNwb25zZVsibG9nb1VSTCJdOw0KICAgICAgICAgICAgICAgIGRpdi5jbGFzc05hbWUgPSAiY2hhbmdlZCI7DQogICAgICAgICAgICAgICAgcmV0dXJuOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgc3dpdGNoIChkYXRhWyJjbWQiXSkgew0KICAgICAgICAgICAgICAgIGNhc2UgInVwZGF0ZUxvZyI6DQogICAgICAgICAgICAgICAgICAgIFNFUlZFUlsibG9nIl0gPSByZXNwb25zZVsibG9nIl07DQogICAgICAgICAgICAgICAgICAgIGlmIChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29udGVudF9sb2ciKSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgc2hvd0xvZ3MoZmFsc2UpOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIHJldHVybjsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgICAgICAgICAgU0VSVkVSID0gbmV3IE9iamVjdCgpOw0KICAgICAgICAgICAgICAgICAgICBTRVJWRVIgPSByZXNwb25zZTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBpZiAocmVzcG9uc2UuaGFzT3duUHJvcGVydHkoIm9wZW5NZW51IikpIHsNCiAgICAgICAgICAgICAgICB2YXIgbWVudSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHJlc3BvbnNlWyJvcGVuTWVudSJdKTsNCiAgICAgICAgICAgICAgICBtZW51LmNsaWNrKCk7DQogICAgICAgICAgICAgICAgc2hvd0VsZW1lbnQoInBvcHVwIiwgZmFsc2UpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgaWYgKHJlc3BvbnNlLmhhc093blByb3BlcnR5KCJvcGVuTGluayIpKSB7DQogICAgICAgICAgICAgICAgd2luZG93LmxvY2F0aW9uID0gcmVzcG9uc2VbIm9wZW5MaW5rIl07DQogICAgICAgICAgICB9DQogICAgICAgICAgICBpZiAocmVzcG9uc2UuaGFzT3duUHJvcGVydHkoImFsZXJ0IikpIHsNCiAgICAgICAgICAgICAgICBhbGVydChyZXNwb25zZVsiYWxlcnQiXSk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBpZiAocmVzcG9uc2UuaGFzT3duUHJvcGVydHkoInJlbG9hZCIpKSB7DQogICAgICAgICAgICAgICAgbG9jYXRpb24ucmVsb2FkKCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBpZiAocmVzcG9uc2UuaGFzT3duUHJvcGVydHkoIndpemFyZCIpKSB7DQogICAgICAgICAgICAgICAgY3JlYXRlTGF5b3V0KCk7DQogICAgICAgICAgICAgICAgY29uZmlndXJhdGlvbldpemFyZFtyZXNwb25zZVsid2l6YXJkIl1dLmNyZWF0ZVdpemFyZCgpOw0KICAgICAgICAgICAgICAgIHJldHVybjsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGNyZWF0ZUxheW91dCgpOw0KICAgICAgICB9Ow0KICAgIH0NCn0NCmZ1bmN0aW9uIGdldENvb2tpZShuYW1lKSB7DQogICAgdmFyIHZhbHVlID0gIjsgIiArIGRvY3VtZW50LmNvb2tpZTsNCiAgICB2YXIgcGFydHMgPSB2YWx1ZS5zcGxpdCgiOyAiICsgbmFtZSArICI9Iik7DQogICAgaWYgKHBhcnRzLmxlbmd0aCA9PSAyKQ0KICAgICAgICByZXR1cm4gcGFydHMucG9wKCkuc3BsaXQoIjsiKS5zaGlmdCgpOw0KfQ0K" + webUI["html/js/menu_ts.js"] = "Y2xhc3MgTWFpbk1lbnUgew0KICAgIGNvbnN0cnVjdG9yKCkgew0KICAgICAgICB0aGlzLkRvY3VtZW50SUQgPSAibWFpbi1tZW51IjsNCiAgICAgICAgdGhpcy5IVE1MVGFnID0gIkxJIjsNCiAgICAgICAgdGhpcy5JbWFnZVBhdGggPSAiaW1nLyI7DQogICAgfQ0KICAgIGNyZWF0ZUlNRyhzcmMpIHsNCiAgICAgICAgbGV0IGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJJTUciKTsNCiAgICAgICAgZWxlbWVudC5zZXRBdHRyaWJ1dGUoInNyYyIsIHRoaXMuSW1hZ2VQYXRoICsgc3JjKTsNCiAgICAgICAgcmV0dXJuIGVsZW1lbnQ7DQogICAgfQ0KICAgIGNyZWF0ZVZhbHVlKHZhbHVlKSB7DQogICAgICAgIGxldCBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiUCIpOw0KICAgICAgICBlbGVtZW50LmlubmVySFRNTCA9IHZhbHVlOw0KICAgICAgICByZXR1cm4gZWxlbWVudDsNCiAgICB9DQp9DQpjbGFzcyBNYWluTWVudUl0ZW0gZXh0ZW5kcyBNYWluTWVudSB7DQogICAgY29uc3RydWN0b3IobWVudUtleSwgdmFsdWUsIGltYWdlLCBoZWFkbGluZSkgew0KICAgICAgICBzdXBlcigpOw0KICAgICAgICB0aGlzLm1lbnVLZXkgPSBtZW51S2V5Ow0KICAgICAgICB0aGlzLnZhbHVlID0gdmFsdWU7DQogICAgICAgIHRoaXMuaW1nU3JjID0gaW1hZ2U7DQogICAgICAgIHRoaXMuaGVhZGxpbmUgPSBoZWFkbGluZTsNCiAgICB9DQogICAgY3JlYXRlSXRlbSgpIHsNCiAgICAgICAgbGV0IGl0ZW0gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJMSSIpOw0KICAgICAgICBpdGVtLnNldEF0dHJpYnV0ZSgib25jbGljayIsICJqYXZhc2NyaXB0OiBvcGVuVGhpc01lbnUodGhpcykiKTsNCiAgICAgICAgaXRlbS5zZXRBdHRyaWJ1dGUoImlkIiwgdGhpcy5pZCk7DQogICAgICAgIGxldCBpbWcgPSB0aGlzLmNyZWF0ZUlNRyh0aGlzLmltZ1NyYyk7DQogICAgICAgIGxldCB2YWx1ZSA9IHRoaXMuY3JlYXRlVmFsdWUodGhpcy52YWx1ZSk7DQogICAgICAgIGl0ZW0uYXBwZW5kQ2hpbGQoaW1nKTsNCiAgICAgICAgaXRlbS5hcHBlbmRDaGlsZCh2YWx1ZSk7DQogICAgICAgIGxldCBkb2MgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCh0aGlzLkRvY3VtZW50SUQpOw0KICAgICAgICBkb2MuYXBwZW5kQ2hpbGQoaXRlbSk7DQogICAgICAgIHN3aXRjaCAodGhpcy5tZW51S2V5KSB7DQogICAgICAgICAgICBjYXNlICJwbGF5bGlzdCI6DQogICAgICAgICAgICAgICAgdGhpcy50YWJsZUhlYWRlciA9IFsie3sucGxheWxpc3QudGFibGUucGxheWxpc3R9fSIsICJ7ey5wbGF5bGlzdC50YWJsZS50dW5lcn19IiwgInt7LnBsYXlsaXN0LnRhYmxlLmxhc3RVcGRhdGV9fSIsICJ7ey5wbGF5bGlzdC50YWJsZS5hdmFpbGFiaWxpdHl9fSAlIiwgInt7LnBsYXlsaXN0LnRhYmxlLnR5cGV9fSIsICJ7ey5wbGF5bGlzdC50YWJsZS5zdHJlYW1zfX0iLCAie3sucGxheWxpc3QudGFibGUuZ3JvdXBUaXRsZX19ICUiLCAie3sucGxheWxpc3QudGFibGUudHZnSUR9fSAlIiwgInt7LnBsYXlsaXN0LnRhYmxlLnVuaXF1ZUlEfX0gJSJdOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAieG1sdHYiOg0KICAgICAgICAgICAgICAgIHRoaXMudGFibGVIZWFkZXIgPSBbInt7LnhtbHR2LnRhYmxlLmd1aWRlfX0iLCAie3sueG1sdHYudGFibGUubGFzdFVwZGF0ZX19IiwgInt7LnhtbHR2LnRhYmxlLmF2YWlsYWJpbGl0eX19ICUiLCAie3sueG1sdHYudGFibGUuY2hhbm5lbHN9fSIsICJ7ey54bWx0di50YWJsZS5wcm9ncmFtc319Il07DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJmaWx0ZXIiOg0KICAgICAgICAgICAgICAgIHRoaXMudGFibGVIZWFkZXIgPSBbInt7LmZpbHRlci50YWJsZS5uYW1lfX0iLCAie3suZmlsdGVyLnRhYmxlLnR5cGV9fSIsICJ7ey5maWx0ZXIudGFibGUuZmlsdGVyfX0iXTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInVzZXJzIjoNCiAgICAgICAgICAgICAgICB0aGlzLnRhYmxlSGVhZGVyID0gWyJ7ey51c2Vycy50YWJsZS51c2VybmFtZX19IiwgInt7LnVzZXJzLnRhYmxlLnBhc3N3b3JkfX0iLCAie3sudXNlcnMudGFibGUud2VifX0iLCAie3sudXNlcnMudGFibGUucG1zfX0iLCAie3sudXNlcnMudGFibGUubTN1fX0iLCAie3sudXNlcnMudGFibGUueG1sfX0iLCAie3sudXNlcnMudGFibGUuYXBpfX0iXTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgIm1hcHBpbmciOg0KICAgICAgICAgICAgICAgIHRoaXMudGFibGVIZWFkZXIgPSBbIkJVTEsiLCAie3subWFwcGluZy50YWJsZS5jaE5vfX0iLCAie3subWFwcGluZy50YWJsZS5sb2dvfX0iLCAie3subWFwcGluZy50YWJsZS5jaGFubmVsTmFtZX19IiwgInt7Lm1hcHBpbmcudGFibGUucGxheWxpc3R9fSIsICJ7ey5tYXBwaW5nLnRhYmxlLmdyb3VwVGl0bGV9fSIsICJ7ey5tYXBwaW5nLnRhYmxlLnhtbHR2RmlsZX19IiwgInt7Lm1hcHBpbmcudGFibGUueG1sdHZJRH19IiwgInt7Lm1hcHBpbmcudGFibGUudGltZXNoaWZ0fX0iXTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgfQ0KICAgICAgICAvL2NvbnNvbGUubG9nKHRoaXMubWVudUtleSwgdGhpcy50YWJsZUhlYWRlcik7DQogICAgfQ0KfQ0KY2xhc3MgQ29udGVudCB7DQogICAgY29uc3RydWN0b3IoKSB7DQogICAgICAgIHRoaXMuRG9jdW1lbnRJRCA9ICJjb250ZW50IjsNCiAgICAgICAgdGhpcy5UYWJsZUlEID0gImNvbnRlbnRfdGFibGUiOw0KICAgICAgICB0aGlzLmhlYWRlckNsYXNzID0gImNvbnRlbnRfdGFibGVfaGVhZGVyIjsNCiAgICAgICAgdGhpcy5pbnRlcmFjdGlvbklEID0gImNvbnRlbnQtaW50ZXJhY3Rpb24iOw0KICAgIH0NCiAgICBjcmVhdGVIZWFkbGluZSh2YWx1ZSkgew0KICAgICAgICBsZXQgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIkgzIik7DQogICAgICAgIGVsZW1lbnQuaW5uZXJIVE1MID0gdmFsdWU7DQogICAgICAgIHJldHVybiBlbGVtZW50Ow0KICAgIH0NCiAgICBjcmVhdGVIUigpIHsNCiAgICAgICAgcmV0dXJuIGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIkhSIik7DQogICAgfQ0KICAgIGNyZWF0ZUludGVyYWN0aW9uKCkgew0KICAgICAgICBsZXQgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIkRJViIpOw0KICAgICAgICBlbGVtZW50LnNldEF0dHJpYnV0ZSgiaWQiLCB0aGlzLmludGVyYWN0aW9uSUQpOw0KICAgICAgICByZXR1cm4gZWxlbWVudDsNCiAgICB9DQogICAgY3JlYXRlRElWKCkgew0KICAgICAgICBsZXQgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIkRJViIpOw0KICAgICAgICBlbGVtZW50LmlkID0gdGhpcy5EaXZJRDsNCiAgICAgICAgcmV0dXJuIGVsZW1lbnQ7DQogICAgfQ0KICAgIGNyZWF0ZVRBQkxFKCkgew0KICAgICAgICBsZXQgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlRBQkxFIik7DQogICAgICAgIGVsZW1lbnQuaWQgPSB0aGlzLlRhYmxlSUQ7DQogICAgICAgIHJldHVybiBlbGVtZW50Ow0KICAgIH0NCiAgICBjcmVhdGVUYWJsZVJvdygpIHsNCiAgICAgICAgbGV0IGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJUUiIpOw0KICAgICAgICBlbGVtZW50LmNsYXNzTmFtZSA9IHRoaXMuaGVhZGVyQ2xhc3M7DQogICAgICAgIHJldHVybiBlbGVtZW50Ow0KICAgIH0NCiAgICBjcmVhdGVUYWJsZUNvbnRlbnQobWVudUtleSkgew0KICAgICAgICBsZXQgZGF0YSA9IHt9Ow0KICAgICAgICBsZXQgcm93cyA9IFtdOw0KICAgICAgICBsZXQgZmlsZVR5cGVzID0gW107DQogICAgICAgIHN3aXRjaCAobWVudUtleSkgew0KICAgICAgICAgICAgY2FzZSAicGxheWxpc3QiOg0KICAgICAgICAgICAgICAgIGZpbGVUeXBlcyA9IFsibTN1IiwgImhkaHIiXTsNCiAgICAgICAgICAgICAgICBmaWxlVHlwZXMuZm9yRWFjaChmaWxlVHlwZSA9PiB7DQogICAgICAgICAgICAgICAgICAgIGRhdGEgPSBTRVJWRVJbInNldHRpbmdzIl1bImZpbGVzIl1bZmlsZVR5cGVdOw0KICAgICAgICAgICAgICAgICAgICB2YXIga2V5cyA9IGdldE9iaktleXMoZGF0YSk7DQogICAgICAgICAgICAgICAgICAgIGtleXMuZm9yRWFjaChrZXkgPT4gew0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVFIiKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmlkID0ga2V5Ow0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgiJyArIGZpbGVUeXBlICsgJyIsIHRoaXMpJyk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsibmFtZSJdOw0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChTRVJWRVJbInNldHRpbmdzIl1bImJ1ZmZlciJdICE9ICItIikgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bInR1bmVyIl07DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gIi0iOw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bImxhc3QudXBkYXRlIl07DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsicHJvdmlkZXIuYXZhaWxhYmlsaXR5Il07DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsidHlwZSJdLnRvVXBwZXJDYXNlKCk7DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsiY29tcGF0aWJpbGl0eSJdWyJzdHJlYW1zIl07DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsiY29tcGF0aWJpbGl0eSJdWyJncm91cC50aXRsZSJdOw0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bImNvbXBhdGliaWxpdHkiXVsidHZnLmlkIl07DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsiY29tcGF0aWJpbGl0eSJdWyJzdHJlYW0uaWQiXTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHJvd3MucHVzaCh0cik7DQogICAgICAgICAgICAgICAgICAgIH0pOw0KICAgICAgICAgICAgICAgIH0pOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiZmlsdGVyIjoNCiAgICAgICAgICAgICAgICBkZWxldGUgU0VSVkVSWyJzZXR0aW5ncyJdWyJmaWx0ZXIiXVstMV07DQogICAgICAgICAgICAgICAgZGF0YSA9IFNFUlZFUlsic2V0dGluZ3MiXVsiZmlsdGVyIl07DQogICAgICAgICAgICAgICAgdmFyIGtleXMgPSBnZXRPYmpLZXlzKGRhdGEpOw0KICAgICAgICAgICAgICAgIGtleXMuZm9yRWFjaChrZXkgPT4gew0KICAgICAgICAgICAgICAgICAgICB2YXIgdHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJUUiIpOw0KICAgICAgICAgICAgICAgICAgICB0ci5pZCA9IGtleTsNCiAgICAgICAgICAgICAgICAgICAgdHIuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgiJyArIGRhdGFba2V5XVsidHlwZSJdICsgJyIsIHRoaXMpJyk7DQogICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJuYW1lIl07DQogICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgIHN3aXRjaCAoZGF0YVtrZXldWyJ0eXBlIl0pIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgImN1c3RvbS1maWx0ZXIiOg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSAie3suZmlsdGVyLmN1c3RvbX19IjsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgImdyb3VwLXRpdGxlIjoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gInt7LmZpbHRlci5ncm91cH19IjsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsiZmlsdGVyIl07DQogICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgcm93cy5wdXNoKHRyKTsNCiAgICAgICAgICAgICAgICB9KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInhtbHR2IjoNCiAgICAgICAgICAgICAgICBmaWxlVHlwZXMgPSBuZXcgQXJyYXkoInhtbHR2Iik7DQogICAgICAgICAgICAgICAgZmlsZVR5cGVzLmZvckVhY2goZmlsZVR5cGUgPT4gew0KICAgICAgICAgICAgICAgICAgICBkYXRhID0gU0VSVkVSWyJzZXR0aW5ncyJdWyJmaWxlcyJdW2ZpbGVUeXBlXTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGtleXMgPSBnZXRPYmpLZXlzKGRhdGEpOw0KICAgICAgICAgICAgICAgICAgICBrZXlzLmZvckVhY2goa2V5ID0+IHsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciB0ciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlRSIik7DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5pZCA9IGtleTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoIicgKyBmaWxlVHlwZSArICciLCB0aGlzKScpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bIm5hbWUiXTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJsYXN0LnVwZGF0ZSJdOw0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bInByb3ZpZGVyLmF2YWlsYWJpbGl0eSJdOw0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bImNvbXBhdGliaWxpdHkiXVsieG1sdHYuY2hhbm5lbHMiXTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJjb21wYXRpYmlsaXR5Il1bInhtbHR2LnByb2dyYW1zIl07DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICByb3dzLnB1c2godHIpOw0KICAgICAgICAgICAgICAgICAgICB9KTsNCiAgICAgICAgICAgICAgICB9KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInVzZXJzIjoNCiAgICAgICAgICAgICAgICBmaWxlVHlwZXMgPSBuZXcgQXJyYXkoInVzZXJzIik7DQogICAgICAgICAgICAgICAgZmlsZVR5cGVzLmZvckVhY2goZmlsZVR5cGUgPT4gew0KICAgICAgICAgICAgICAgICAgICBkYXRhID0gU0VSVkVSW2ZpbGVUeXBlXTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGtleXMgPSBnZXRPYmpLZXlzKGRhdGEpOw0KICAgICAgICAgICAgICAgICAgICBrZXlzLmZvckVhY2goa2V5ID0+IHsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciB0ciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlRSIik7DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5pZCA9IGtleTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoIicgKyBmaWxlVHlwZSArICciLCB0aGlzKScpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bImRhdGEiXVsidXNlcm5hbWUiXTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gIioqKioqKiI7DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGRhdGFba2V5XVsiZGF0YSJdWyJhdXRoZW50aWNhdGlvbi53ZWIiXSA9PSB0cnVlKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9ICLinJMiOw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9ICItIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgICAgICBpZiAoZGF0YVtrZXldWyJkYXRhIl1bImF1dGhlbnRpY2F0aW9uLnBtcyJdID09IHRydWUpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gIuKckyI7DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gIi0iOw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChkYXRhW2tleV1bImRhdGEiXVsiYXV0aGVudGljYXRpb24ubTN1Il0gPT0gdHJ1ZSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSAi4pyTIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSAiLSI7DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGRhdGFba2V5XVsiZGF0YSJdWyJhdXRoZW50aWNhdGlvbi54bWwiXSA9PSB0cnVlKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9ICLinJMiOw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9ICItIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgICAgICBpZiAoZGF0YVtrZXldWyJkYXRhIl1bImF1dGhlbnRpY2F0aW9uLmFwaSJdID09IHRydWUpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gIuKckyI7DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gIi0iOw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgcm93cy5wdXNoKHRyKTsNCiAgICAgICAgICAgICAgICAgICAgfSk7DQogICAgICAgICAgICAgICAgfSk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJtYXBwaW5nIjoNCiAgICAgICAgICAgICAgICBCVUxLX0VESVQgPSBmYWxzZTsNCiAgICAgICAgICAgICAgICBjcmVhdGVTZWFyY2hPYmooKTsNCiAgICAgICAgICAgICAgICBjaGVja1VuZG8oImVwZ01hcHBpbmciKTsNCiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZygiTUFQUElORyIpOw0KICAgICAgICAgICAgICAgIGRhdGEgPSBTRVJWRVJbInhlcGciXVsiZXBnTWFwcGluZyJdOw0KICAgICAgICAgICAgICAgIHZhciBrZXlzID0gZ2V0T2JqS2V5cyhkYXRhKTsNCiAgICAgICAgICAgICAgICBrZXlzLmZvckVhY2goa2V5ID0+IHsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVFIiKTsNCiAgICAgICAgICAgICAgICAgICAgdHIuaWQgPSBrZXk7DQogICAgICAgICAgICAgICAgICAgIC8vdHIuc2V0QXR0cmlidXRlKCdvbmNvbnRleHRtZW51JywgJ2phdmFzY3JpcHQ6IHJpZ2h0Q2xpY2sodGhpcyknKQ0KICAgICAgICAgICAgICAgICAgICBzd2l0Y2ggKGRhdGFba2V5XVsieC1hY3RpdmUiXSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSB0cnVlOg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyLmNsYXNzTmFtZSA9ICJhY3RpdmVFUEciOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSBmYWxzZToNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ci5jbGFzc05hbWUgPSAibm90QWN0aXZlRVBHIjsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAvLyBCdWxrDQogICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIkJVTEsiOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZmFsc2U7DQogICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgLy8gS2FuYWxudW1tZXINCiAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiSU5QVVRDSEFOTkVMIjsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsieC1jaGFubmVsSUQiXTsNCiAgICAgICAgICAgICAgICAgICAgLy90ZC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogY2hhbmdlQ2hhbm5lbE51bWJlcigiJyArIGtleSArICciLCB0aGlzKScpDQogICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgLy8gTG9nbw0KICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJJTUciOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmltYWdlVVJMID0gZGF0YVtrZXldWyJ0dmctbG9nbyJdOw0KICAgICAgICAgICAgICAgICAgICB2YXIgdGQgPSBjZWxsLmNyZWF0ZUNlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgdGQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgibWFwcGluZyIsIHRoaXMpJyk7DQogICAgICAgICAgICAgICAgICAgIHRkLmlkID0ga2V5Ow0KICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZCh0ZCk7DQogICAgICAgICAgICAgICAgICAgIC8vIEthbmFsbmFtZQ0KICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jbGFzc05hbWUgPSBkYXRhW2tleV1bIngtY2F0ZWdvcnkiXTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsieC1uYW1lIl07DQogICAgICAgICAgICAgICAgICAgIHZhciB0ZCA9IGNlbGwuY3JlYXRlQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICB0ZC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJtYXBwaW5nIiwgdGhpcyknKTsNCiAgICAgICAgICAgICAgICAgICAgdGQuaWQgPSBrZXk7DQogICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKHRkKTsNCiAgICAgICAgICAgICAgICAgICAgLy8gUGxheWxpc3QNCiAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgIC8vY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsiX2ZpbGUubTN1Lm5hbWUiXSANCiAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGdldFZhbHVlRnJvbVByb3ZpZGVyRmlsZShkYXRhW2tleV1bIl9maWxlLm0zdS5pZCJdLCAibTN1IiwgIm5hbWUiKTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHRkID0gY2VsbC5jcmVhdGVDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgIHRkLnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoIm1hcHBpbmciLCB0aGlzKScpOw0KICAgICAgICAgICAgICAgICAgICB0ZC5pZCA9IGtleTsNCiAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQodGQpOw0KICAgICAgICAgICAgICAgICAgICAvLyBHcnVwcGUgKGdyb3VwLXRpdGxlKQ0KICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsieC1ncm91cC10aXRsZSJdOw0KICAgICAgICAgICAgICAgICAgICB2YXIgdGQgPSBjZWxsLmNyZWF0ZUNlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgdGQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgibWFwcGluZyIsIHRoaXMpJyk7DQogICAgICAgICAgICAgICAgICAgIHRkLmlkID0ga2V5Ow0KICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZCh0ZCk7DQogICAgICAgICAgICAgICAgICAgIC8vIFhNTFRWIERhdGVpDQogICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICBpZiAoZGF0YVtrZXldWyJ4LXhtbHR2LWZpbGUiXSAhPSAiLSIpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBnZXRWYWx1ZUZyb21Qcm92aWRlckZpbGUoZGF0YVtrZXldWyJ4LXhtbHR2LWZpbGUiXSwgInhtbHR2IiwgIm5hbWUiKTsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bIngteG1sdHYtZmlsZSJdOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIHZhciB0ZCA9IGNlbGwuY3JlYXRlQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICB0ZC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJtYXBwaW5nIiwgdGhpcyknKTsNCiAgICAgICAgICAgICAgICAgICAgdGQuaWQgPSBrZXk7DQogICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKHRkKTsNCiAgICAgICAgICAgICAgICAgICAgLy8gWE1MVFYgS2FuYWwNCiAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgIC8vdmFyIHZhbHVlID0gc3RyLnN1YnN0cmluZygxLCA0KTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHZhbHVlID0gZGF0YVtrZXldWyJ4LW1hcHBpbmciXTsNCiAgICAgICAgICAgICAgICAgICAgaWYgKHZhbHVlLmxlbmd0aCA+IDIwKSB7DQogICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IGRhdGFba2V5XVsieC1tYXBwaW5nIl0uc3Vic3RyaW5nKDAsIDIwKSArICIuLi4iOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSB2YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHRkID0gY2VsbC5jcmVhdGVDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgIHRkLnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoIm1hcHBpbmciLCB0aGlzKScpOw0KICAgICAgICAgICAgICAgICAgICB0ZC5pZCA9IGtleTsNCiAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQodGQpOw0KICAgICAgICAgICAgICAgICAgICAvLyBUaW1lU2hpZnQNCiAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bIngtdGltZXNoaWZ0Il07DQogICAgICAgICAgICAgICAgICAgIHZhciB0ZCA9IGNlbGwuY3JlYXRlQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICB0ZC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJtYXBwaW5nIiwgdGhpcyknKTsNCiAgICAgICAgICAgICAgICAgICAgdGQuaWQgPSBrZXk7DQogICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKHRkKTsNCiAgICAgICAgICAgICAgICAgICAgcm93cy5wdXNoKHRyKTsNCiAgICAgICAgICAgICAgICB9KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInNldHRpbmdzIjoNCiAgICAgICAgICAgICAgICBhbGVydCgpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZygiVGFibGUgY29udGVudCAobWVudUtleSk6IiwgbWVudUtleSk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIH0NCiAgICAgICAgcmV0dXJuIHJvd3M7DQogICAgfQ0KfQ0KY2xhc3MgQ2VsbCB7DQogICAgY3JlYXRlQ2VsbCgpIHsNCiAgICAgICAgbGV0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgaWYgKHRoaXMuY2hpbGQgPT0gdHJ1ZSkgew0KICAgICAgICAgICAgdmFyIGVsZW1lbnQ7DQogICAgICAgICAgICBzd2l0Y2ggKHRoaXMuY2hpbGRUeXBlKSB7DQogICAgICAgICAgICAgICAgY2FzZSAiUCI6DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KHRoaXMuY2hpbGRUeXBlKTsNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC5pbm5lckhUTUwgPSB0aGlzLnZhbHVlOw0KICAgICAgICAgICAgICAgICAgICBlbGVtZW50LmNsYXNzTmFtZSA9IHRoaXMuY2xhc3NOYW1lOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBjYXNlICJJTlBVVCI6DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KHRoaXMuY2hpbGRUeXBlKTsNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC52YWx1ZSA9IHRoaXMudmFsdWU7DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQudHlwZSA9ICJ0ZXh0IjsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAiSU5QVVRDSEFOTkVMIjoNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIklOUFVUIik7DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZzY3JpcHQ6IGNoYW5nZUNoYW5uZWxOdW1iZXIodGhpcykiKTsNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC52YWx1ZSA9IHRoaXMudmFsdWU7DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQudHlwZSA9ICJ0ZXh0IjsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAiQlVMSyI6DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJJTlBVVCIpOw0KICAgICAgICAgICAgICAgICAgICBlbGVtZW50LmNoZWNrZWQgPSB0aGlzLnZhbHVlOw0KICAgICAgICAgICAgICAgICAgICBlbGVtZW50LnR5cGUgPSAiY2hlY2tib3giOw0KICAgICAgICAgICAgICAgICAgICBlbGVtZW50LmNsYXNzTmFtZSA9ICJidWxrIGhpZGVCdWxrIjsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAiQlVMS19IRUFEIjoNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIklOUFVUIik7DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQuY2hlY2tlZCA9IHRoaXMudmFsdWU7DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQudHlwZSA9ICJjaGVja2JveCI7DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQuY2xhc3NOYW1lID0gImJ1bGsgaGlkZUJ1bGsiOw0KICAgICAgICAgICAgICAgICAgICBlbGVtZW50LnNldEF0dHJpYnV0ZSgib25jbGljayIsICJqYXZhc2NyaXB0OiBzZWxlY3RBbGxDaGFubmVscygpIik7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgIklNRyI6DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KHRoaXMuY2hpbGRUeXBlKTsNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC5zZXRBdHRyaWJ1dGUoInNyYyIsIHRoaXMuaW1hZ2VVUkwpOw0KICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5pbWFnZVVSTCAhPSAiIikgew0KICAgICAgICAgICAgICAgICAgICAgICAgZWxlbWVudC5zZXRBdHRyaWJ1dGUoIm9uZXJyb3IiLCAiamF2YXNjcmlwdDogdGhpcy5vbmVycm9yPW51bGw7dGhpcy5zcmM9JyciKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIC8vb25lcnJvcj0idGhpcy5vbmVycm9yPW51bGw7dGhpcy5zcmM9J21pc3NpbmcuZ2lmJzsiDQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIHRkLmFwcGVuZENoaWxkKGVsZW1lbnQpOw0KICAgICAgICB9DQogICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgdGQuaW5uZXJIVE1MID0gdGhpcy52YWx1ZTsNCiAgICAgICAgfQ0KICAgICAgICBpZiAodGhpcy5vbmNsaWNrID09IHRydWUpIHsNCiAgICAgICAgICAgIHRkLnNldEF0dHJpYnV0ZSgib25jbGljayIsIHRoaXMub25jbGlja0Z1bmt0aW9uKTsNCiAgICAgICAgICAgIHRkLmNsYXNzTmFtZSA9ICJwb2ludGVyIjsNCiAgICAgICAgfQ0KICAgICAgICBpZiAodGhpcy50ZENsYXNzTmFtZSAhPSB1bmRlZmluZWQpIHsNCiAgICAgICAgICAgIHRkLmNsYXNzTmFtZSA9IHRoaXMudGRDbGFzc05hbWU7DQogICAgICAgIH0NCiAgICAgICAgcmV0dXJuIHRkOw0KICAgIH0NCn0NCmNsYXNzIFNob3dDb250ZW50IGV4dGVuZHMgQ29udGVudCB7DQogICAgY29uc3RydWN0b3IobWVudUlEKSB7DQogICAgICAgIHN1cGVyKCk7DQogICAgICAgIHRoaXMubWVudUlEID0gbWVudUlEOw0KICAgIH0NCiAgICBjcmVhdGVJbnB1dCh0eXBlLCBuYW1lLCB2YWx1ZSkgew0KICAgICAgICBsZXQgaW5wdXQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJJTlBVVCIpOw0KICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInR5cGUiLCB0eXBlKTsNCiAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJuYW1lIiwgbmFtZSk7DQogICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgidmFsdWUiLCB2YWx1ZSk7DQogICAgICAgIHJldHVybiBpbnB1dDsNCiAgICB9DQogICAgc2hvdygpIHsNCiAgICAgICAgQ09MVU1OX1RPX1NPUlQgPSAtMTsNCiAgICAgICAgLy8gQWx0ZW4gSW5oYWx0IGzDtnNjaGVuDQogICAgICAgIGxldCBkb2MgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCh0aGlzLkRvY3VtZW50SUQpOw0KICAgICAgICBkb2MuaW5uZXJIVE1MID0gIiI7DQogICAgICAgIHNob3dQcmV2aWV3KGZhbHNlKTsNCiAgICAgICAgLy8gw5xiZXJzY2hyaWZ0DQogICAgICAgIGxldCBoZWFkbGluZSA9IG1lbnVJdGVtc1t0aGlzLm1lbnVJRF0uaGVhZGxpbmU7DQogICAgICAgIGxldCBtZW51S2V5ID0gbWVudUl0ZW1zW3RoaXMubWVudUlEXS5tZW51S2V5Ow0KICAgICAgICBsZXQgaCA9IHRoaXMuY3JlYXRlSGVhZGxpbmUoaGVhZGxpbmUpOw0KICAgICAgICBkb2MuYXBwZW5kQ2hpbGQoaCk7DQogICAgICAgIGxldCBociA9IHRoaXMuY3JlYXRlSFIoKTsNCiAgICAgICAgZG9jLmFwcGVuZENoaWxkKGhyKTsNCiAgICAgICAgLy8gSW50ZXJha3Rpb24NCiAgICAgICAgbGV0IGRpdiA9IHRoaXMuY3JlYXRlSW50ZXJhY3Rpb24oKTsNCiAgICAgICAgZG9jLmFwcGVuZENoaWxkKGRpdik7DQogICAgICAgIGxldCBpbnRlcmFjdGlvbiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHRoaXMuaW50ZXJhY3Rpb25JRCk7DQogICAgICAgIHN3aXRjaCAobWVudUtleSkgew0KICAgICAgICAgICAgY2FzZSAicGxheWxpc3QiOg0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IHRoaXMuY3JlYXRlSW5wdXQoImJ1dHRvbiIsIG1lbnVLZXksICJ7ey5idXR0b24ubmV3fX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoImlkIiwgIi0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJwbGF5bGlzdCIpJyk7DQogICAgICAgICAgICAgICAgaW50ZXJhY3Rpb24uYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiZmlsdGVyIjoNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSB0aGlzLmNyZWF0ZUlucHV0KCJidXR0b24iLCBtZW51S2V5LCAie3suYnV0dG9uLm5ld319Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJpZCIsIC0xKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJmaWx0ZXIiLCB0aGlzKScpOw0KICAgICAgICAgICAgICAgIGludGVyYWN0aW9uLmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInhtbHR2IjoNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSB0aGlzLmNyZWF0ZUlucHV0KCJidXR0b24iLCBtZW51S2V5LCAie3suYnV0dG9uLm5ld319Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJpZCIsICJ4bWx0diIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoInhtbHR2IiknKTsNCiAgICAgICAgICAgICAgICBpbnRlcmFjdGlvbi5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ1c2VycyI6DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gdGhpcy5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgbWVudUtleSwgInt7LmJ1dHRvbi5uZXd9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgiaWQiLCAidXNlcnMiKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJ1c2VycyIpJyk7DQogICAgICAgICAgICAgICAgaW50ZXJhY3Rpb24uYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAibWFwcGluZyI6DQogICAgICAgICAgICAgICAgc2hvd0VsZW1lbnQoImxvYWRpbmciLCB0cnVlKTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSB0aGlzLmNyZWF0ZUlucHV0KCJidXR0b24iLCBtZW51S2V5LCAie3suYnV0dG9uLnNhdmV9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBzYXZlUG9wdXBEYXRhKCJtYXBwaW5nIiwgIiIsICIiKScpOw0KICAgICAgICAgICAgICAgIGludGVyYWN0aW9uLmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSB0aGlzLmNyZWF0ZUlucHV0KCJidXR0b24iLCBtZW51S2V5LCAie3suYnV0dG9uLmJ1bGtFZGl0fX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogYnVsa0VkaXQoKScpOw0KICAgICAgICAgICAgICAgIGludGVyYWN0aW9uLmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSB0aGlzLmNyZWF0ZUlucHV0KCJzZWFyY2giLCAic2VhcmNoIiwgIiIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgiaWQiLCAic2VhcmNoTWFwcGluZyIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3suYnV0dG9uLnNlYXJjaH19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuY2xhc3NOYW1lID0gInNlYXJjaCI7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICdqYXZhc2NyaXB0OiBzZWFyY2hJbk1hcHBpbmcoKScpOw0KICAgICAgICAgICAgICAgIGludGVyYWN0aW9uLmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInNldHRpbmdzIjoNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSB0aGlzLmNyZWF0ZUlucHV0KCJidXR0b24iLCBtZW51S2V5LCAie3suYnV0dG9uLnNhdmV9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBzYXZlU2V0dGluZ3MoKTsnKTsNCiAgICAgICAgICAgICAgICBpbnRlcmFjdGlvbi5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gdGhpcy5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgbWVudUtleSwgInt7LmJ1dHRvbi5iYWNrdXB9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBiYWNrdXAoKTsnKTsNCiAgICAgICAgICAgICAgICBpbnRlcmFjdGlvbi5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gdGhpcy5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgbWVudUtleSwgInt7LmJ1dHRvbi5yZXN0b3JlfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogcmVzdG9yZSgpOycpOw0KICAgICAgICAgICAgICAgIGludGVyYWN0aW9uLmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICB2YXIgd3JhcHBlciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIkRJViIpOw0KICAgICAgICAgICAgICAgIHdyYXBwZXIuc2V0QXR0cmlidXRlKCJpZCIsICJib3gtd3JhcHBlciIpOw0KICAgICAgICAgICAgICAgIGRvYy5hcHBlbmRDaGlsZCh3cmFwcGVyKTsNCiAgICAgICAgICAgICAgICB0aGlzLkRpdklEID0gImNvbnRlbnRfc2V0dGluZ3MiOw0KICAgICAgICAgICAgICAgIHZhciBzZXR0aW5ncyA9IHRoaXMuY3JlYXRlRElWKCk7DQogICAgICAgICAgICAgICAgd3JhcHBlci5hcHBlbmRDaGlsZChzZXR0aW5ncyk7DQogICAgICAgICAgICAgICAgc2hvd1NldHRpbmdzKCk7DQogICAgICAgICAgICAgICAgcmV0dXJuOw0KICAgICAgICAgICAgY2FzZSAibG9nIjoNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSB0aGlzLmNyZWF0ZUlucHV0KCJidXR0b24iLCBtZW51S2V5LCAie3suYnV0dG9uLnJlc2V0TG9nc319Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IHJlc2V0TG9ncygpOycpOw0KICAgICAgICAgICAgICAgIGludGVyYWN0aW9uLmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICB2YXIgd3JhcHBlciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIkRJViIpOw0KICAgICAgICAgICAgICAgIHdyYXBwZXIuc2V0QXR0cmlidXRlKCJpZCIsICJib3gtd3JhcHBlciIpOw0KICAgICAgICAgICAgICAgIGRvYy5hcHBlbmRDaGlsZCh3cmFwcGVyKTsNCiAgICAgICAgICAgICAgICB0aGlzLkRpdklEID0gImNvbnRlbnRfbG9nIjsNCiAgICAgICAgICAgICAgICB2YXIgbG9ncyA9IHRoaXMuY3JlYXRlRElWKCk7DQogICAgICAgICAgICAgICAgd3JhcHBlci5hcHBlbmRDaGlsZChsb2dzKTsNCiAgICAgICAgICAgICAgICBzaG93TG9ncyh0cnVlKTsNCiAgICAgICAgICAgICAgICByZXR1cm47DQogICAgICAgICAgICBjYXNlICJsb2dvdXQiOg0KICAgICAgICAgICAgICAgIGxvY2F0aW9uLnJlbG9hZCgpOw0KICAgICAgICAgICAgICAgIGRvY3VtZW50LmNvb2tpZSA9ICJUb2tlbj0gOyBleHBpcmVzID0gVGh1LCAwMSBKYW4gMTk3MCAwMDowMDowMCBHTVQiOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZygiU2hvdyBjb250ZW50IChtZW51S2V5KToiLCBtZW51S2V5KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgfQ0KICAgICAgICAvLyBUYWJlbGxlIGVyc3RlbGxlbiAoZmFsbHMgYmVuw7Z0aWd0KQ0KICAgICAgICB2YXIgdGFibGVIZWFkZXIgPSBtZW51SXRlbXNbdGhpcy5tZW51SURdLnRhYmxlSGVhZGVyOw0KICAgICAgICBpZiAodGFibGVIZWFkZXIubGVuZ3RoID4gMCkgew0KICAgICAgICAgICAgdmFyIHdyYXBwZXIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJESVYiKTsNCiAgICAgICAgICAgIGRvYy5hcHBlbmRDaGlsZCh3cmFwcGVyKTsNCiAgICAgICAgICAgIHdyYXBwZXIuc2V0QXR0cmlidXRlKCJpZCIsICJib3gtd3JhcHBlciIpOw0KICAgICAgICAgICAgdmFyIHRhYmxlID0gdGhpcy5jcmVhdGVUQUJMRSgpOw0KICAgICAgICAgICAgd3JhcHBlci5hcHBlbmRDaGlsZCh0YWJsZSk7DQogICAgICAgICAgICB2YXIgaGVhZGVyID0gdGhpcy5jcmVhdGVUYWJsZVJvdygpOw0KICAgICAgICAgICAgdGFibGUuYXBwZW5kQ2hpbGQoaGVhZGVyKTsNCiAgICAgICAgICAgIC8vIEtvcGZ6ZWlsZSBkZXIgVGFibGxlDQogICAgICAgICAgICB0YWJsZUhlYWRlci5mb3JFYWNoKGVsZW1lbnQgPT4gew0KICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZWxlbWVudDsNCiAgICAgICAgICAgICAgICBpZiAoZWxlbWVudCA9PSAiQlVMSyIpIHsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiQlVMS19IRUFEIjsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGZhbHNlOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBpZiAobWVudUtleSA9PSAibWFwcGluZyIpIHsNCiAgICAgICAgICAgICAgICAgICAgaWYgKGVsZW1lbnQgPT0gInt7Lm1hcHBpbmcudGFibGUuY2hOb319Iikgew0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5vbmNsaWNrID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwub25jbGlja0Z1bmt0aW9uID0gImphdmFzY3JpcHQ6IHNvcnRUYWJsZSgxKTsiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC50ZENsYXNzTmFtZSA9ICJzb3J0VGhpcyI7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgaWYgKGVsZW1lbnQgPT0gInt7Lm1hcHBpbmcudGFibGUuY2hhbm5lbE5hbWV9fSIpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwub25jbGljayA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLm9uY2xpY2tGdW5rdGlvbiA9ICJqYXZhc2NyaXB0OiBzb3J0VGFibGUoMyk7IjsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBpZiAoZWxlbWVudCA9PSAie3subWFwcGluZy50YWJsZS5wbGF5bGlzdH19Iikgew0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5vbmNsaWNrID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwub25jbGlja0Z1bmt0aW9uID0gImphdmFzY3JpcHQ6IHNvcnRUYWJsZSg0KTsiOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIGlmIChlbGVtZW50ID09ICJ7ey5tYXBwaW5nLnRhYmxlLmdyb3VwVGl0bGV9fSIpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwub25jbGljayA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLm9uY2xpY2tGdW5rdGlvbiA9ICJqYXZhc2NyaXB0OiBzb3J0VGFibGUoNSk7IjsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBoZWFkZXIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgfSk7DQogICAgICAgICAgICB0YWJsZS5hcHBlbmRDaGlsZChoZWFkZXIpOw0KICAgICAgICAgICAgLy8gSW5oYWx0IGRlciBUYWJlbGxlDQogICAgICAgICAgICB2YXIgcm93cyA9IHRoaXMuY3JlYXRlVGFibGVDb250ZW50KG1lbnVLZXkpOw0KICAgICAgICAgICAgcm93cy5mb3JFYWNoKHRyID0+IHsNCiAgICAgICAgICAgICAgICB0YWJsZS5hcHBlbmRDaGlsZCh0cik7DQogICAgICAgICAgICB9KTsNCiAgICAgICAgfQ0KICAgICAgICBzd2l0Y2ggKG1lbnVLZXkpIHsNCiAgICAgICAgICAgIGNhc2UgIm1hcHBpbmciOg0KICAgICAgICAgICAgICAgIHNvcnRUYWJsZSgxKTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImZpbHRlciI6DQogICAgICAgICAgICAgICAgc2hvd1ByZXZpZXcodHJ1ZSk7DQogICAgICAgICAgICAgICAgc29ydFRhYmxlKDApOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgICAgICBDT0xVTU5fVE9fU09SVCA9IC0xOw0KICAgICAgICAgICAgICAgIHNvcnRUYWJsZSgwKTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgfQ0KICAgICAgICBzaG93RWxlbWVudCgibG9hZGluZyIsIGZhbHNlKTsNCiAgICB9DQp9DQpmdW5jdGlvbiBQYWdlUmVhZHkoKSB7DQogICAgbGV0IHNlcnZlciA9IG5ldyBTZXJ2ZXIoImdldFNlcnZlckNvbmZpZyIpOw0KICAgIHNlcnZlci5yZXF1ZXN0KHt9KTsNCiAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigicmVzaXplIiwgZnVuY3Rpb24gKCkgew0KICAgICAgICBjYWxjdWxhdGVXcmFwcGVySGVpZ2h0KCk7DQogICAgfSwgdHJ1ZSk7DQogICAgc2V0SW50ZXJ2YWwoZnVuY3Rpb24gKCkgew0KICAgICAgICB1cGRhdGVMb2coKTsNCiAgICB9LCAxMDAwMCk7DQogICAgcmV0dXJuOw0KfQ0KZnVuY3Rpb24gY3JlYXRlTGF5b3V0KCkgew0KICAgIC8vIENsaWVudCBJbmZvDQogICAgbGV0IG9iaiA9IFNFUlZFUlsiY2xpZW50SW5mbyJdOw0KICAgIGxldCBrZXlzID0gZ2V0T2JqS2V5cyhvYmopOw0KICAgIGZvciAodmFyIGkgPSAwOyBpIDwga2V5cy5sZW5ndGg7IGkrKykgew0KICAgICAgICBpZiAoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoa2V5c1tpXSkpIHsNCiAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGtleXNbaV0pLmlubmVySFRNTCA9IG9ialtrZXlzW2ldXTsNCiAgICAgICAgfQ0KICAgIH0NCiAgICBpZiAoIWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJtYWluLW1lbnUiKSkgew0KICAgICAgICByZXR1cm47DQogICAgfQ0KICAgIC8vIE1lbsO8IGVyc3RlbGxlbg0KICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJtYWluLW1lbnUiKS5pbm5lckhUTUwgPSAiIjsNCiAgICBmb3IgKGxldCBpID0gMDsgaSA8IG1lbnVJdGVtcy5sZW5ndGg7IGkrKykgew0KICAgICAgICBtZW51SXRlbXNbaV0uaWQgPSBpOw0KICAgICAgICBzd2l0Y2ggKG1lbnVJdGVtc1tpXVsibWVudUtleSJdKSB7DQogICAgICAgICAgICBjYXNlICJ1c2VycyI6DQogICAgICAgICAgICBjYXNlICJsb2dvdXQiOg0KICAgICAgICAgICAgICAgIGlmIChTRVJWRVJbInNldHRpbmdzIl1bImF1dGhlbnRpY2F0aW9uLndlYiJdID09IHRydWUpIHsNCiAgICAgICAgICAgICAgICAgICAgbWVudUl0ZW1zW2ldLmNyZWF0ZUl0ZW0oKTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJtYXBwaW5nIjoNCiAgICAgICAgICAgIGNhc2UgInhtbHR2IjoNCiAgICAgICAgICAgICAgICBpZiAoU0VSVkVSWyJjbGllbnRJbmZvIl1bImVwZ1NvdXJjZSJdID09ICJYRVBHIikgew0KICAgICAgICAgICAgICAgICAgICBtZW51SXRlbXNbaV0uY3JlYXRlSXRlbSgpOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICAgICAgbWVudUl0ZW1zW2ldLmNyZWF0ZUl0ZW0oKTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgfQ0KICAgIH0NCiAgICByZXR1cm47DQp9DQpmdW5jdGlvbiBvcGVuVGhpc01lbnUoZWxlbWVudCkgew0KICAgIGxldCBpZCA9IGVsZW1lbnQuaWQ7DQogICAgbGV0IGNvbnRlbnQgPSBuZXcgU2hvd0NvbnRlbnQoaWQpOw0KICAgIGNvbnRlbnQuc2hvdygpOw0KICAgIGNhbGN1bGF0ZVdyYXBwZXJIZWlnaHQoKTsNCiAgICByZXR1cm47DQp9DQpjbGFzcyBQb3B1cFdpbmRvdyB7DQogICAgY29uc3RydWN0b3IoKSB7DQogICAgICAgIHRoaXMuRG9jdW1lbnRJRCA9ICJwb3B1cC1jdXN0b20iOw0KICAgICAgICB0aGlzLkludGVyYWN0aW9uSUQgPSAiaW50ZXJhY3Rpb24iOw0KICAgICAgICB0aGlzLmRvYyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHRoaXMuRG9jdW1lbnRJRCk7DQogICAgfQ0KICAgIGNyZWF0ZVRpdGxlKHRpdGxlKSB7DQogICAgICAgIGxldCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgIHRkLmNsYXNzTmFtZSA9ICJsZWZ0IjsNCiAgICAgICAgdGQuaW5uZXJIVE1MID0gdGl0bGUgKyAiOiI7DQogICAgICAgIHJldHVybiB0ZDsNCiAgICB9DQogICAgY3JlYXRlQ29udGVudChlbGVtZW50KSB7DQogICAgICAgIGxldCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgIHRkLmFwcGVuZENoaWxkKGVsZW1lbnQpOw0KICAgICAgICByZXR1cm4gdGQ7DQogICAgfQ0KICAgIGNyZWF0ZUludGVyYWN0aW9uKCkgew0KICAgICAgICBsZXQgZGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7DQogICAgICAgIGRpdi5zZXRBdHRyaWJ1dGUoImlkIiwgInBvcHVwLWludGVyYWN0aW9uIik7DQogICAgICAgIGRpdi5jbGFzc05hbWUgPSAiaW50ZXJhY3Rpb24iOw0KICAgICAgICB0aGlzLmRvYy5hcHBlbmRDaGlsZChkaXYpOw0KICAgIH0NCn0NCmNsYXNzIFBvcHVwQ29udGVudCBleHRlbmRzIFBvcHVwV2luZG93IHsNCiAgICBjb25zdHJ1Y3RvcigpIHsNCiAgICAgICAgc3VwZXIoLi4uYXJndW1lbnRzKTsNCiAgICAgICAgdGhpcy50YWJsZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlRBQkxFIik7DQogICAgfQ0KICAgIGNyZWF0ZUhlYWRsaW5lKGhlYWRsaW5lKSB7DQogICAgICAgIHRoaXMuZG9jLmlubmVySFRNTCA9ICIiOw0KICAgICAgICB2YXIgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIkgzIik7DQogICAgICAgIGVsZW1lbnQuaW5uZXJIVE1MID0gaGVhZGxpbmUudG9VcHBlckNhc2UoKTsNCiAgICAgICAgdGhpcy5kb2MuYXBwZW5kQ2hpbGQoZWxlbWVudCk7DQogICAgICAgIC8vIFRhYmVsbGUgZXJzdGVsbGVuDQogICAgICAgIHRoaXMudGFibGUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJUQUJMRSIpOw0KICAgICAgICB0aGlzLmRvYy5hcHBlbmRDaGlsZCh0aGlzLnRhYmxlKTsNCiAgICB9DQogICAgYXBwZW5kUm93KHRpdGxlLCBlbGVtZW50KSB7DQogICAgICAgIGxldCB0ciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlRSIik7DQogICAgICAgIC8vIEJlemVpY2hudW5nDQogICAgICAgIGlmICh0aXRsZS5sZW5ndGggIT0gMCkgew0KICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQodGhpcy5jcmVhdGVUaXRsZSh0aXRsZSkpOw0KICAgICAgICB9DQogICAgICAgIC8vIENvbnRlbnQNCiAgICAgICAgdHIuYXBwZW5kQ2hpbGQodGhpcy5jcmVhdGVDb250ZW50KGVsZW1lbnQpKTsNCiAgICAgICAgdGhpcy50YWJsZS5hcHBlbmRDaGlsZCh0cik7DQogICAgfQ0KICAgIGNyZWF0ZUlucHV0KHR5cGUsIG5hbWUsIHZhbHVlKSB7DQogICAgICAgIGxldCBpbnB1dCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIklOUFVUIik7DQogICAgICAgIGlmICh2YWx1ZSA9PSB1bmRlZmluZWQpIHsNCiAgICAgICAgICAgIHZhbHVlID0gIiI7DQogICAgICAgIH0NCiAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJ0eXBlIiwgdHlwZSk7DQogICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgibmFtZSIsIG5hbWUpOw0KICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInZhbHVlIiwgdmFsdWUpOw0KICAgICAgICByZXR1cm4gaW5wdXQ7DQogICAgfQ0KICAgIGNyZWF0ZUNoZWNrYm94KG5hbWUpIHsNCiAgICAgICAgbGV0IGlucHV0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiSU5QVVQiKTsNCiAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJ0eXBlIiwgImNoZWNrYm94Iik7DQogICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgibmFtZSIsIG5hbWUpOw0KICAgICAgICByZXR1cm4gaW5wdXQ7DQogICAgfQ0KICAgIC8vIENyZWF0ZXMgYSBzZWxlY3Rpb24gb2YgbXVsdGlwbGUgb3B0aW9ucyB2YWx1ZXMgd2l0aCB0ZXh0IGRlc2NyaXB0aW9ucw0KICAgIGNyZWF0ZVNlbGVjdCh0ZXh0LCB2YWx1ZXMsIHNldCwgZGJLZXkpIHsNCiAgICAgICAgbGV0IHNlbGVjdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlNFTEVDVCIpOw0KICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJuYW1lIiwgZGJLZXkpOw0KICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRleHQubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgICAgIGxldCBvcHRpb24gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJPUFRJT04iKTsNCiAgICAgICAgICAgIG9wdGlvbi5zZXRBdHRyaWJ1dGUoInZhbHVlIiwgdmFsdWVzW2ldKTsNCiAgICAgICAgICAgIG9wdGlvbi5pbm5lclRleHQgPSB0ZXh0W2ldOw0KICAgICAgICAgICAgc2VsZWN0LmFwcGVuZENoaWxkKG9wdGlvbik7DQogICAgICAgIH0NCiAgICAgICAgaWYgKHNldCAhPSAiIikgew0KICAgICAgICAgICAgc2VsZWN0LnZhbHVlID0gc2V0Ow0KICAgICAgICB9DQogICAgICAgIGlmIChzZXQgPT0gdW5kZWZpbmVkKSB7DQogICAgICAgICAgICBzZWxlY3QudmFsdWUgPSB2YWx1ZXNbMF07DQogICAgICAgIH0NCiAgICAgICAgcmV0dXJuIHNlbGVjdDsNCiAgICB9DQogICAgc2VsZWN0T3B0aW9uKHNlbGVjdCwgdmFsdWUpIHsNCiAgICAgICAgLy9zZWxlY3Quc2VsZWN0ZWRPcHRpb25zID0gdmFsdWUNCiAgICAgICAgbGV0IHMgPSBzZWxlY3Q7DQogICAgICAgIHMub3B0aW9uc1tzLnNlbGVjdGVkSW5kZXhdLnZhbHVlID0gdmFsdWU7DQogICAgICAgIHJldHVybiBzZWxlY3Q7DQogICAgfQ0KICAgIGRlc2NyaXB0aW9uKHZhbHVlKSB7DQogICAgICAgIGxldCB0ciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlRSIik7DQogICAgICAgIGxldCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgIGxldCBzcGFuID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiUFJFIik7DQogICAgICAgIHNwYW4uaW5uZXJIVE1MID0gdmFsdWU7DQogICAgICAgIHRyLmFwcGVuZENoaWxkKHRkKTsNCiAgICAgICAgdHIuYXBwZW5kQ2hpbGQodGhpcy5jcmVhdGVDb250ZW50KHNwYW4pKTsNCiAgICAgICAgdGhpcy50YWJsZS5hcHBlbmRDaGlsZCh0cik7DQogICAgfQ0KICAgIC8vIEludGVyYWt0aW9uDQogICAgYWRkSW50ZXJhY3Rpb24oZWxlbWVudCkgew0KICAgICAgICBsZXQgaW50ZXJhY3Rpb24gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicG9wdXAtaW50ZXJhY3Rpb24iKTsNCiAgICAgICAgaW50ZXJhY3Rpb24uYXBwZW5kQ2hpbGQoZWxlbWVudCk7DQogICAgfQ0KfQ0KZnVuY3Rpb24gb3BlblBvcFVwKGRhdGFUeXBlLCBlbGVtZW50KSB7DQogICAgbGV0IGRhdGEgPSB7fTsNCiAgICBsZXQgaWQ7DQogICAgc3dpdGNoIChlbGVtZW50KSB7DQogICAgICAgIGNhc2UgdW5kZWZpbmVkOg0KICAgICAgICAgICAgc3dpdGNoIChkYXRhVHlwZSkgew0KICAgICAgICAgICAgICAgIGNhc2UgImdyb3VwLXRpdGxlIjoNCiAgICAgICAgICAgICAgICAgICAgaWYgKGlkID09IHVuZGVmaW5lZCkgew0KICAgICAgICAgICAgICAgICAgICAgICAgaWQgPSAtMTsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBkYXRhID0gZ2V0TG9jYWxEYXRhKCJmaWx0ZXIiLCBpZCk7DQogICAgICAgICAgICAgICAgICAgIGRhdGFbInR5cGUiXSA9ICJncm91cC10aXRsZSI7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgImN1c3RvbS1maWx0ZXIiOg0KICAgICAgICAgICAgICAgICAgICBpZiAoaWQgPT0gdW5kZWZpbmVkKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBpZCA9IC0xOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIGRhdGEgPSBnZXRMb2NhbERhdGEoImZpbHRlciIsIGlkKTsNCiAgICAgICAgICAgICAgICAgICAgZGF0YVsidHlwZSJdID0gImN1c3RvbS1maWx0ZXIiOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBkZWZhdWx0Og0KICAgICAgICAgICAgICAgICAgICBkYXRhWyJpZC5wcm92aWRlciJdID0gIi0iOw0KICAgICAgICAgICAgICAgICAgICBkYXRhWyJ0eXBlIl0gPSBkYXRhVHlwZTsNCiAgICAgICAgICAgICAgICAgICAgaWQgPSAiLSI7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICBpZCA9IGVsZW1lbnQuaWQ7DQogICAgICAgICAgICBkYXRhID0gZ2V0TG9jYWxEYXRhKGRhdGFUeXBlLCBpZCk7DQogICAgICAgICAgICBicmVhazsNCiAgICB9DQogICAgbGV0IGNvbnRlbnQgPSBuZXcgUG9wdXBDb250ZW50KCk7DQogICAgc3dpdGNoIChkYXRhVHlwZSkgew0KICAgICAgICBjYXNlICJwbGF5bGlzdCI6DQogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUhlYWRsaW5lKCJ7ey5wbGF5bGlzdC5wbGF5bGlzdFR5cGUudGl0bGV9fSIpOw0KICAgICAgICAgICAgLy8gVHlwZQ0KICAgICAgICAgICAgdmFyIHRleHQgPSBbIk0zVSIsICJIREhvbWVSdW4iXTsNCiAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBbImphdmFzY3JpcHQ6IG9wZW5Qb3BVcCgnbTN1JykiLCAiamF2YXNjcmlwdDogb3BlblBvcFVwKCdoZGhyJykiXTsNCiAgICAgICAgICAgIHZhciBzZWxlY3QgPSBjb250ZW50LmNyZWF0ZVNlbGVjdCh0ZXh0LCB2YWx1ZXMsICIiLCAidHlwZSIpOw0KICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgiaWQiLCAidHlwZSIpOw0KICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAnamF2YXNjcmlwdDogY2hhbmdlQnV0dG9uQWN0aW9uKHRoaXMsICJuZXh0IiwgIm9uY2xpY2siKScpOyAvLyBjaGFuZ2VCdXR0b25BY3Rpb24NCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5wbGF5bGlzdC50eXBlLnRpdGxlfX0iLCBzZWxlY3QpOw0KICAgICAgICAgICAgLy8gSW50ZXJha3Rpb24NCiAgICAgICAgICAgIGNvbnRlbnQuY3JlYXRlSW50ZXJhY3Rpb24oKTsNCiAgICAgICAgICAgIC8vIEFiYnJlY2hlbg0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImNhbmNlbCIsICJ7ey5idXR0b24uY2FuY2VsfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBzaG93RWxlbWVudCgicG9wdXAiLCBmYWxzZSk7Jyk7DQogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIC8vIFdlaXRlcg0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgIm5leHQiLCAie3suYnV0dG9uLm5leHR9fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgibTN1IiknKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgiaWQiLCAnbmV4dCcpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSAibTN1IjoNCiAgICAgICAgICAgIGNvbnRlbnQuY3JlYXRlSGVhZGxpbmUoZGF0YVR5cGUpOw0KICAgICAgICAgICAgLy8gTmFtZQ0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gIm5hbWUiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnBsYXlsaXN0Lm5hbWUucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnBsYXlsaXN0Lm5hbWUudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIEJlc2NocmVpYnVuZw0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gImRlc2NyaXB0aW9uIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5wbGF5bGlzdC5kZXNjcmlwdGlvbi5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sucGxheWxpc3QuZGVzY3JpcHRpb24udGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIFVSTA0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gImZpbGUuc291cmNlIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5wbGF5bGlzdC5maWxlTTNVLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5wbGF5bGlzdC5maWxlTTNVLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBUdW5lcg0KICAgICAgICAgICAgaWYgKFNFUlZFUlsic2V0dGluZ3MiXVsiYnVmZmVyIl0gIT0gIi0iKSB7DQogICAgICAgICAgICAgICAgdmFyIHRleHQgPSBbXTsNCiAgICAgICAgICAgICAgICB2YXIgdmFsdWVzID0gW107DQogICAgICAgICAgICAgICAgZm9yICh2YXIgaSA9IDE7IGkgPD0gMTAwOyBpKyspIHsNCiAgICAgICAgICAgICAgICAgICAgdGV4dC5wdXNoKGkudG9TdHJpbmcoKSk7DQogICAgICAgICAgICAgICAgICAgIHZhbHVlcy5wdXNoKGkudG9TdHJpbmcoKSk7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIHZhciBkYktleSA9ICJ0dW5lciI7DQogICAgICAgICAgICAgICAgdmFyIHNlbGVjdCA9IGNvbnRlbnQuY3JlYXRlU2VsZWN0KHRleHQsIHZhbHVlcywgZGF0YVtkYktleV0sIGRiS2V5KTsNCiAgICAgICAgICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJvbmZvY3VzIiwgImphdmFzY3JpcHQ6IHJldHVybjsiKTsNCiAgICAgICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sucGxheWxpc3QudHVuZXIudGl0bGV9fSIsIHNlbGVjdCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICB2YXIgZGJLZXkgPSAidHVuZXIiOw0KICAgICAgICAgICAgICAgIGlmIChkYXRhW2RiS2V5XSA9PSB1bmRlZmluZWQpIHsNCiAgICAgICAgICAgICAgICAgICAgZGF0YVtkYktleV0gPSAxOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInJlYWRvbmx5IiwgInRydWUiKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5jbGFzc05hbWUgPSAibm90QXZhaWxhYmxlIjsNCiAgICAgICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sucGxheWxpc3QudHVuZXIudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGNvbnRlbnQuZGVzY3JpcHRpb24oInt7LnBsYXlsaXN0LnR1bmVyLmRlc2NyaXB0aW9ufX0iKTsNCiAgICAgICAgICAgIC8vIEludGVyYWt0aW9uDQogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUludGVyYWN0aW9uKCk7DQogICAgICAgICAgICAvLyBMw7ZzY2hlbg0KICAgICAgICAgICAgaWYgKGRhdGFbImlkLnByb3ZpZGVyIl0gIT0gIi0iKSB7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImRlbGV0ZSIsICJ7ey5idXR0b24uZGVsZXRlfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5jbGFzc05hbWUgPSAiZGVsZXRlIjsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogc2F2ZVBvcHVwRGF0YSgibTN1IiwgIicgKyBpZCArICciLCB0cnVlLCAwKScpOw0KICAgICAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgZWxzZSB7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImJhY2siLCAie3suYnV0dG9uLmJhY2t9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoInBsYXlsaXN0IiknKTsNCiAgICAgICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIC8vIEFiYnJlY2hlbg0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImNhbmNlbCIsICJ7ey5idXR0b24uY2FuY2VsfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBzaG93RWxlbWVudCgicG9wdXAiLCBmYWxzZSk7Jyk7DQogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIC8vIEFrdHVhbGlzaWVyZW4NCiAgICAgICAgICAgIGlmIChkYXRhWyJpZC5wcm92aWRlciJdICE9ICItIikgew0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJ1cGRhdGUiLCAie3suYnV0dG9uLnVwZGF0ZX19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoIm0zdSIsICInICsgaWQgKyAnIiwgZmFsc2UsIDEpJyk7DQogICAgICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICAvLyBTcGVpY2hlcm4NCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJzYXZlIiwgInt7LmJ1dHRvbi5zYXZlfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBzYXZlUG9wdXBEYXRhKCJtM3UiLCAiJyArIGlkICsgJyIsIGZhbHNlLCAwKScpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSAiaGRociI6DQogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUhlYWRsaW5lKGRhdGFUeXBlKTsNCiAgICAgICAgICAgIC8vIE5hbWUNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJuYW1lIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5wbGF5bGlzdC5uYW1lLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5wbGF5bGlzdC5uYW1lLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBCZXNjaHJlaWJ1bmcNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJkZXNjcmlwdGlvbiI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3sucGxheWxpc3QuZGVzY3JpcHRpb24ucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnBsYXlsaXN0LmRlc2NyaXB0aW9uLnBsYWNlaG9sZGVyfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBVUkwNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJmaWxlLnNvdXJjZSI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3sucGxheWxpc3QuZmlsZUhESFIucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnBsYXlsaXN0LmZpbGVIREhSLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBUdW5lcg0KICAgICAgICAgICAgaWYgKFNFUlZFUlsic2V0dGluZ3MiXVsiYnVmZmVyIl0gIT0gIi0iKSB7DQogICAgICAgICAgICAgICAgdmFyIHRleHQgPSBbXTsNCiAgICAgICAgICAgICAgICB2YXIgdmFsdWVzID0gW107DQogICAgICAgICAgICAgICAgZm9yICh2YXIgaSA9IDE7IGkgPD0gMTAwOyBpKyspIHsNCiAgICAgICAgICAgICAgICAgICAgdGV4dC5wdXNoKGkudG9TdHJpbmcoKSk7DQogICAgICAgICAgICAgICAgICAgIHZhbHVlcy5wdXNoKGkudG9TdHJpbmcoKSk7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIHZhciBkYktleSA9ICJ0dW5lciI7DQogICAgICAgICAgICAgICAgdmFyIHNlbGVjdCA9IGNvbnRlbnQuY3JlYXRlU2VsZWN0KHRleHQsIHZhbHVlcywgZGF0YVtkYktleV0sIGRiS2V5KTsNCiAgICAgICAgICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJvbmZvY3VzIiwgImphdmFzY3JpcHQ6IHJldHVybjsiKTsNCiAgICAgICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sucGxheWxpc3QudHVuZXIudGl0bGV9fSIsIHNlbGVjdCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICB2YXIgZGJLZXkgPSAidHVuZXIiOw0KICAgICAgICAgICAgICAgIGlmIChkYXRhW2RiS2V5XSA9PSB1bmRlZmluZWQpIHsNCiAgICAgICAgICAgICAgICAgICAgZGF0YVtkYktleV0gPSAxOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInJlYWRvbmx5IiwgInRydWUiKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5jbGFzc05hbWUgPSAibm90QXZhaWxhYmxlIjsNCiAgICAgICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sucGxheWxpc3QudHVuZXIudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGNvbnRlbnQuZGVzY3JpcHRpb24oInt7LnBsYXlsaXN0LnR1bmVyLmRlc2NyaXB0aW9ufX0iKTsNCiAgICAgICAgICAgIC8vIEludGVyYWt0aW9uDQogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUludGVyYWN0aW9uKCk7DQogICAgICAgICAgICAvLyBMw7ZzY2hlbg0KICAgICAgICAgICAgaWYgKGRhdGFbImlkLnByb3ZpZGVyIl0gIT0gIi0iKSB7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImRlbGV0ZSIsICJ7ey5idXR0b24uZGVsZXRlfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogc2F2ZVBvcHVwRGF0YSgiaGRociIsICInICsgaWQgKyAnIiwgdHJ1ZSwgMCknKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5jbGFzc05hbWUgPSAiZGVsZXRlIjsNCiAgICAgICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJiYWNrIiwgInt7LmJ1dHRvbi5iYWNrfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJwbGF5bGlzdCIpJyk7DQogICAgICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICAvLyBBYmJyZWNoZW4NCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJjYW5jZWwiLCAie3suYnV0dG9uLmNhbmNlbH19Iik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogc2hvd0VsZW1lbnQoInBvcHVwIiwgZmFsc2UpOycpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICAvLyBBa3R1YWxpc2llcmVuDQogICAgICAgICAgICBpZiAoZGF0YVsiaWQucHJvdmlkZXIiXSAhPSAiLSIpIHsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAidXBkYXRlIiwgInt7LmJ1dHRvbi51cGRhdGV9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBzYXZlUG9wdXBEYXRhKCJoZGhyIiwgIicgKyBpZCArICciLCBmYWxzZSwgMSknKTsNCiAgICAgICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIC8vIFNwZWljaGVybg0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgInNhdmUiLCAie3suYnV0dG9uLnNhdmV9fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoImhkaHIiLCAiJyArIGlkICsgJyIsIGZhbHNlLCAwKScpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSAiZmlsdGVyIjoNCiAgICAgICAgICAgIGNvbnRlbnQuY3JlYXRlSGVhZGxpbmUoZGF0YVR5cGUpOw0KICAgICAgICAgICAgLy8gVHlwZQ0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gInR5cGUiOw0KICAgICAgICAgICAgdmFyIHRleHQgPSBbIk0zVTogIiArICJ7ey5maWx0ZXIudHlwZS5ncm91cFRpdGxlfX0iLCAieFRlVmU6ICIgKyAie3suZmlsdGVyLnR5cGUuY3VzdG9tRmlsdGVyfX0iXTsNCiAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBbImphdmFzY3JpcHQ6IG9wZW5Qb3BVcCgnZ3JvdXAtdGl0bGUnKSIsICJqYXZhc2NyaXB0OiBvcGVuUG9wVXAoJ2N1c3RvbS1maWx0ZXInKSJdOw0KICAgICAgICAgICAgdmFyIHNlbGVjdCA9IGNvbnRlbnQuY3JlYXRlU2VsZWN0KHRleHQsIHZhbHVlcywgImphdmFzY3JpcHQ6IG9wZW5Qb3BVcCgnZ3JvdXAtdGl0bGUnKSIsIGRiS2V5KTsNCiAgICAgICAgICAgIHNlbGVjdC5zZXRBdHRyaWJ1dGUoImlkIiwgaWQpOw0KICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAnamF2YXNjcmlwdDogY2hhbmdlQnV0dG9uQWN0aW9uKHRoaXMsICJuZXh0IiwgIm9uY2xpY2siKTsnKTsgLy8gY2hhbmdlQnV0dG9uQWN0aW9uDQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3suZmlsdGVyLnR5cGUudGl0bGV9fSIsIHNlbGVjdCk7DQogICAgICAgICAgICAvLyBJbnRlcmFrdGlvbg0KICAgICAgICAgICAgY29udGVudC5jcmVhdGVJbnRlcmFjdGlvbigpOw0KICAgICAgICAgICAgLy8gQWJicmVjaGVuDQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAiY2FuY2VsIiwgInt7LmJ1dHRvbi5jYW5jZWx9fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IHNob3dFbGVtZW50KCJwb3B1cCIsIGZhbHNlKTsnKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgLy8gV2VpdGVyDQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAibmV4dCIsICJ7ey5idXR0b24ubmV4dH19Iik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJncm91cC10aXRsZSIpJyk7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoImlkIiwgJ25leHQnKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGNhc2UgImN1c3RvbS1maWx0ZXIiOg0KICAgICAgICBjYXNlICJncm91cC10aXRsZSI6DQogICAgICAgICAgICBzd2l0Y2ggKGRhdGFUeXBlKSB7DQogICAgICAgICAgICAgICAgY2FzZSAiY3VzdG9tLWZpbHRlciI6DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuY3JlYXRlSGVhZGxpbmUoInt7LmZpbHRlci5jdXN0b219fSIgKyAiIEZpbHRlciIpOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBjYXNlICJncm91cC10aXRsZSI6DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuY3JlYXRlSGVhZGxpbmUoInt7LmZpbHRlci5ncm91cH19IiArICIgRmlsdGVyIik7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgLy8gTmFtZSAgICAgIA0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gIm5hbWUiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LmZpbHRlci5uYW1lLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5maWx0ZXIubmFtZS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgLy8gQmVzY2hyZWlidW5nDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAiZGVzY3JpcHRpb24iOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LmZpbHRlci5kZXNjcmlwdGlvbi5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3suZmlsdGVyLmRlc2NyaXB0aW9uLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBUeXANCiAgICAgICAgICAgIHZhciBkYktleSA9ICJ0eXBlIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImhpZGRlbiIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygiIiwgaW5wdXQpOw0KICAgICAgICAgICAgdmFyIGZpbHRlclR5cGUgPSBkYXRhW2RiS2V5XTsNCiAgICAgICAgICAgIHN3aXRjaCAoZmlsdGVyVHlwZSkgew0KICAgICAgICAgICAgICAgIGNhc2UgImN1c3RvbS1maWx0ZXIiOg0KICAgICAgICAgICAgICAgICAgICAvLyBHcm/Dny0gS2xlaW5zY2hyZWlidW5nIGJlYWNodGVuDQogICAgICAgICAgICAgICAgICAgIHZhciBkYktleSA9ICJjYXNlU2Vuc2l0aXZlIjsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChkYktleSk7DQogICAgICAgICAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhW2RiS2V5XTsNCiAgICAgICAgICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LmZpbHRlci5jYXNlU2Vuc2l0aXZlLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAgICAgICAgIC8vIEZpbHRlcnJlZ2VsIChCZW51dHplcmRlZmluaWVydCkNCiAgICAgICAgICAgICAgICAgICAgdmFyIGRiS2V5ID0gImZpbHRlciI7DQogICAgICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LmZpbHRlci5maWx0ZXJSdWxlLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LmZpbHRlci5maWx0ZXJSdWxlLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgImdyb3VwLXRpdGxlIjoNCiAgICAgICAgICAgICAgICAgICAgLy9hbGVydChkYktleSArICIgIiArIGZpbHRlclR5cGUpDQogICAgICAgICAgICAgICAgICAgIC8vIEZpbHRlciBiYXNpZXJlbmQgYXVmIGRlbiBHcnVwcGVuIGluIGRlciBNM1UNCiAgICAgICAgICAgICAgICAgICAgdmFyIGRiS2V5ID0gImZpbHRlciI7DQogICAgICAgICAgICAgICAgICAgIHZhciBncm91cHNNM1UgPSBnZXRMb2NhbERhdGEoIm0zdUdyb3VwcyIsICIiKTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHRleHQgPSBncm91cHNNM1VbInRleHQiXTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHZhbHVlcyA9IGdyb3Vwc00zVVsidmFsdWUiXTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHNlbGVjdCA9IGNvbnRlbnQuY3JlYXRlU2VsZWN0KHRleHQsIHZhbHVlcywgZGF0YVtkYktleV0sIGRiS2V5KTsNCiAgICAgICAgICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LmZpbHRlci5maWx0ZXJHcm91cC50aXRsZX19Iiwgc2VsZWN0KTsNCiAgICAgICAgICAgICAgICAgICAgY29udGVudC5kZXNjcmlwdGlvbigie3suZmlsdGVyLmZpbHRlckdyb3VwLmRlc2NyaXB0aW9ufX0iKTsNCiAgICAgICAgICAgICAgICAgICAgLy8gR3Jvw58tIEtsZWluc2NocmVpYnVuZyBiZWFjaHRlbg0KICAgICAgICAgICAgICAgICAgICB2YXIgZGJLZXkgPSAiY2FzZVNlbnNpdGl2ZSI7DQogICAgICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goZGJLZXkpOw0KICAgICAgICAgICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YVtkYktleV07DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5maWx0ZXIuY2FzZVNlbnNpdGl2ZS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgICAgICAgICB2YXIgZGJLZXkgPSAiaW5jbHVkZSI7DQogICAgICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LmZpbHRlci5pbmNsdWRlLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LmZpbHRlci5pbmNsdWRlLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuZGVzY3JpcHRpb24oInt7LmZpbHRlci5pbmNsdWRlLmRlc2NyaXB0aW9ufX0iKTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGRiS2V5ID0gImV4Y2x1ZGUiOw0KICAgICAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5maWx0ZXIuZXhjbHVkZS5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5maWx0ZXIuZXhjbHVkZS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgICAgICAgICBjb250ZW50LmRlc2NyaXB0aW9uKCJ7ey5maWx0ZXIuZXhjbHVkZS5kZXNjcmlwdGlvbn19Iik7DQogICAgICAgICAgICAgICAgICAgIC8vIFByZXNlcnZlIE0zVSBQbGF5bGlzdCBDaGFubmVsIE1hcHBpbmcNCiAgICAgICAgICAgICAgICAgICAgdmFyIGRiS2V5ID0gInByZXNlcnZlTWFwcGluZyI7DQogICAgICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goZGJLZXkpOw0KICAgICAgICAgICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YVtkYktleV07DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5maWx0ZXIucHJlc2VydmVNYXBwaW5nLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAgICAgICAgIC8vIFN0YXJ0aW5nIENoYW5uZWwgTnVtYmVyIE1hcHBpbmcNCiAgICAgICAgICAgICAgICAgICAgdmFyIGRiS2V5ID0gInN0YXJ0aW5nQ2hhbm5lbCI7DQogICAgICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LmZpbHRlci5zdGFydGluZ0NoYW5uZWwucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3suZmlsdGVyLnN0YXJ0aW5nQ2hhbm5lbC50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgICAgICAgICAvLyBGaWxsIE1pc3NpbmcgRVBHIERhdGENCiAgICAgICAgICAgICAgICAgICAgLy8gVGhlIGZvbGxvd2luZyBjb2RlIG9ubHkgd29ya3Mgd2hlbiB4VGVWZSBEdW1teSBhbHJlYWR5IGV4aXN0cw0KICAgICAgICAgICAgICAgICAgICAvLyB2YXIgZGJLZXk6c3RyaW5nID0gImRlZmF1bHRNaXNzaW5nRVBHIg0KICAgICAgICAgICAgICAgICAgICAvLyB2YXIgeG1sdHY6WE1MVFZGaWxlID0gbmV3IFhNTFRWRmlsZSgpDQogICAgICAgICAgICAgICAgICAgIC8vIHZhciBzZWxlY3QgPSB4bWx0di5nZXRQcm9ncmFtcygieFRlVmUgRHVtbXkiLCBkYXRhW2RiS2V5XSkNCiAgICAgICAgICAgICAgICAgICAgLy8gc2VsZWN0LnNldEF0dHJpYnV0ZSgibmFtZSIsIGRiS2V5KQ0KICAgICAgICAgICAgICAgICAgICAvLyBzZWxlY3Quc2V0QXR0cmlidXRlKCJpZCIsICJwb3B1cC1taXNzaW5nLWVwZyIpDQogICAgICAgICAgICAgICAgICAgIC8vIFRoZSB3b3JrYXJvdW5kIGlzIGN1cnJlbnRseSB0byBoYXJkIGNvZGUgdGhlIHhUZVZlIER1bW15IGRhdGENCiAgICAgICAgICAgICAgICAgICAgdmFyIGRiS2V5ID0gImRlZmF1bHRNaXNzaW5nRVBHIjsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGxpc3RPcHRpb25zID0geyAidGV4dCI6IFsiLSIsICIzMCBNaW51dGVzICgzMF9NaW51dGVzKSIsICI2MCBNaW51dGVzICg2MF9NaW51dGVzKSIsICI5MCBNaW51dGVzICg5MF9NaW51dGVzKSIsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgIjEyMCBNaW51dGVzICgxMjBfTWludXRlcykiLCAiMTgwIE1pbnV0ZXMgKDMwX01pbnV0ZXMpIiwgIjI0MCBNaW51dGVzICgzMF9NaW51dGVzKSIsICIzNjAgTWludXRlcyAoMzBfTWludXRlcykiXSwNCiAgICAgICAgICAgICAgICAgICAgICAgICJ2YWx1ZSI6IFsiLSIsICIzMF9NaW51dGVzIiwgIjYwX01pbnV0ZXMiLCAiOTBfTWludXRlcyIsICIxMjBfTWludXRlcyIsICIxODBfTWludXRlcyIsICIyNDBfTWludXRlcyIsICIzNjBfTWludXRlcyIsXSB9Ow0KICAgICAgICAgICAgICAgICAgICB2YXIgdGV4dCA9IGxpc3RPcHRpb25zWyJ0ZXh0Il07DQogICAgICAgICAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBsaXN0T3B0aW9uc1sidmFsdWUiXTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHNlbGVjdCA9IGNvbnRlbnQuY3JlYXRlU2VsZWN0KHRleHQsIHZhbHVlcywgZGF0YVtkYktleV0sIGRiS2V5KTsNCiAgICAgICAgICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LmZpbHRlci5kZWZhdWx0TWlzc2luZ0VQRy50aXRsZX19Iiwgc2VsZWN0KTsNCiAgICAgICAgICAgICAgICAgICAgY29udGVudC5kZXNjcmlwdGlvbigie3suZmlsdGVyLmRlZmF1bHRNaXNzaW5nRVBHLmRlc2NyaXB0aW9ufX0iKTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICB9DQogICAgICAgICAgICAvLyBJbnRlcmFrdGlvbg0KICAgICAgICAgICAgY29udGVudC5jcmVhdGVJbnRlcmFjdGlvbigpOw0KICAgICAgICAgICAgLy8gTMO2c2NoZW4NCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJkZWxldGUiLCAie3suYnV0dG9uLmRlbGV0ZX19Iik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogc2F2ZVBvcHVwRGF0YSgiZmlsdGVyIiwgIicgKyBpZCArICciLCB0cnVlLCAwKScpOw0KICAgICAgICAgICAgaW5wdXQuY2xhc3NOYW1lID0gImRlbGV0ZSI7DQogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIC8vIEFiYnJlY2hlbg0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImNhbmNlbCIsICJ7ey5idXR0b24uY2FuY2VsfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBzaG93RWxlbWVudCgicG9wdXAiLCBmYWxzZSk7Jyk7DQogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIC8vIFNwZWljaGVybg0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgInNhdmUiLCAie3suYnV0dG9uLnNhdmV9fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoImZpbHRlciIsICInICsgaWQgKyAnIiwgZmFsc2UsIDApJyk7DQogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJ4bWx0diI6DQogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUhlYWRsaW5lKGRhdGFUeXBlKTsNCiAgICAgICAgICAgIC8vIE5hbWUNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJuYW1lIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey54bWx0di5uYW1lLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey54bWx0di5uYW1lLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBCZXNjaHJlaWJ1bmcNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJkZXNjcmlwdGlvbiI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3sueG1sdHYuZGVzY3JpcHRpb24ucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnhtbHR2LmRlc2NyaXB0aW9uLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBVUkwNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJmaWxlLnNvdXJjZSI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3sueG1sdHYuZmlsZVhNTFRWLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey54bWx0di5maWxlWE1MVFYudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIEludGVyYWt0aW9uDQogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUludGVyYWN0aW9uKCk7DQogICAgICAgICAgICAvLyBMw7ZzY2hlbg0KICAgICAgICAgICAgaWYgKGRhdGFbImlkLnByb3ZpZGVyIl0gIT0gIi0iKSB7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImRlbGV0ZSIsICJ7ey5idXR0b24uZGVsZXRlfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogc2F2ZVBvcHVwRGF0YSgieG1sdHYiLCAiJyArIGlkICsgJyIsIHRydWUsIDApJyk7DQogICAgICAgICAgICAgICAgaW5wdXQuY2xhc3NOYW1lID0gImRlbGV0ZSI7DQogICAgICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICAvLyBBYmJyZWNoZW4NCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJjYW5jZWwiLCAie3suYnV0dG9uLmNhbmNlbH19Iik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogc2hvd0VsZW1lbnQoInBvcHVwIiwgZmFsc2UpOycpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICAvLyBBa3R1YWxpc2llcmVuDQogICAgICAgICAgICBpZiAoZGF0YVsiaWQucHJvdmlkZXIiXSAhPSAiLSIpIHsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAidXBkYXRlIiwgInt7LmJ1dHRvbi51cGRhdGV9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBzYXZlUG9wdXBEYXRhKCJ4bWx0diIsICInICsgaWQgKyAnIiwgZmFsc2UsIDEpJyk7DQogICAgICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICAvLyBTcGVpY2hlcm4NCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJzYXZlIiwgInt7LmJ1dHRvbi5zYXZlfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBzYXZlUG9wdXBEYXRhKCJ4bWx0diIsICInICsgaWQgKyAnIiwgZmFsc2UsIDApJyk7DQogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJ1c2VycyI6DQogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUhlYWRsaW5lKCJ7ey5tYWluTWVudS5pdGVtLnVzZXJzfX0iKTsNCiAgICAgICAgICAgIC8vIEJlbnV0emVybmFtZSANCiAgICAgICAgICAgIHZhciBkYktleSA9ICJ1c2VybmFtZSI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3sudXNlcnMudXNlcm5hbWUucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnVzZXJzLnVzZXJuYW1lLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBOZXVlcyBQYXNzd29ydCANCiAgICAgICAgICAgIHZhciBkYktleSA9ICJwYXNzd29yZCI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJwYXNzd29yZCIsIGRiS2V5LCAiIik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnVzZXJzLnBhc3N3b3JkLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey51c2Vycy5wYXNzd29yZC50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgLy8gQmVzdMOkdGlndW5nIA0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gImNvbmZpcm0iOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgicGFzc3dvcmQiLCBkYktleSwgIiIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey51c2Vycy5jb25maXJtLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey51c2Vycy5jb25maXJtLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBCZXJlY2h0aWd1bmcgV0VCDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAiYXV0aGVudGljYXRpb24ud2ViIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goZGJLZXkpOw0KICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGFbZGJLZXldOw0KICAgICAgICAgICAgaWYgKGRhdGFbImRlZmF1bHRVc2VyIl0gPT0gdHJ1ZSkgew0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICJqYXZhc2NyaXB0OiByZXR1cm4gZmFsc2UiKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey51c2Vycy53ZWIudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIEJlcmVjaHRpZ3VuZyBQTVMNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJhdXRoZW50aWNhdGlvbi5wbXMiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChkYktleSk7DQogICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YVtkYktleV07DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sudXNlcnMucG1zLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBCZXJlY2h0aWd1bmcgTTNVDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAiYXV0aGVudGljYXRpb24ubTN1IjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goZGJLZXkpOw0KICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGFbZGJLZXldOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnVzZXJzLm0zdS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgLy8gQmVyZWNodGlndW5nIFhNTA0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gImF1dGhlbnRpY2F0aW9uLnhtbCI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KGRiS2V5KTsNCiAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhW2RiS2V5XTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey51c2Vycy54bWwudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIEJlcmVjaHRpZ3VuZyBBUEkNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJhdXRoZW50aWNhdGlvbi5hcGkiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChkYktleSk7DQogICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YVtkYktleV07DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sudXNlcnMuYXBpLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBJbnRlcmFrdGlvbg0KICAgICAgICAgICAgY29udGVudC5jcmVhdGVJbnRlcmFjdGlvbigpOw0KICAgICAgICAgICAgLy8gTMO2c2NoZW4NCiAgICAgICAgICAgIGlmIChkYXRhWyJkZWZhdWx0VXNlciJdICE9IHRydWUgJiYgaWQgIT0gIi0iKSB7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImRlbGV0ZSIsICJ7ey5idXR0b24uZGVsZXRlfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5jbGFzc05hbWUgPSAiZGVsZXRlIjsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogc2F2ZVBvcHVwRGF0YSgiJyArIGRhdGFUeXBlICsgJyIsICInICsgaWQgKyAnIiwgdHJ1ZSwgMCknKTsNCiAgICAgICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIC8vIEFiYnJlY2hlbg0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImNhbmNlbCIsICJ7ey5idXR0b24uY2FuY2VsfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBzaG93RWxlbWVudCgicG9wdXAiLCBmYWxzZSk7Jyk7DQogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIC8vIFNwZWljaGVybg0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgInNhdmUiLCAie3suYnV0dG9uLnNhdmV9fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoIicgKyBkYXRhVHlwZSArICciLCAiJyArIGlkICsgJyIsICJmYWxzZSIpOycpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSAibWFwcGluZyI6DQogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUhlYWRsaW5lKCJ7ey5tYWluTWVudS5pdGVtLm1hcHBpbmd9fSIpOw0KICAgICAgICAgICAgLy8gQWt0aXYgDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAieC1hY3RpdmUiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChkYktleSk7DQogICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YVtkYktleV07DQogICAgICAgICAgICBpbnB1dC5pZCA9ICJhY3RpdmUiOw0KICAgICAgICAgICAgLy9pbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIikNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdG9nZ2xlQ2hhbm5lbFN0YXR1cygnIiArIGlkICsgIicsIHRoaXMpIik7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3subWFwcGluZy5hY3RpdmUudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIEthbmFsbmFtZSANCiAgICAgICAgICAgIHZhciBkYktleSA9ICJ4LW5hbWUiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICBpZiAoQlVMS19FRElUID09IHRydWUpIHsNCiAgICAgICAgICAgICAgICBpbnB1dC5zdHlsZS5ib3JkZXIgPSAic29saWQgMXB4IHJlZCI7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJyZWFkb25seSIsICJ0cnVlIik7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3subWFwcGluZy5jaGFubmVsTmFtZS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgY29udGVudC5kZXNjcmlwdGlvbihkYXRhWyJuYW1lIl0pOw0KICAgICAgICAgICAgLy8gQmVzY2hyZWlidW5nIA0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gIngtZGVzY3JpcHRpb24iOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7Lm1hcHBpbmcuZGVzY3JpcHRpb24ucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7Lm1hcHBpbmcuZGVzY3JpcHRpb24udGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIEFrdHVhbGlzaWVydW5nIGRlcyBLYW5hbG5hbWVucw0KICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoIl91dWlkLmtleSIpKSB7DQogICAgICAgICAgICAgICAgaWYgKGRhdGFbIl91dWlkLmtleSJdICE9ICIiKSB7DQogICAgICAgICAgICAgICAgICAgIHZhciBkYktleSA9ICJ4LXVwZGF0ZS1jaGFubmVsLW5hbWUiOw0KICAgICAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KGRiS2V5KTsNCiAgICAgICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YVtkYktleV07DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5tYXBwaW5nLnVwZGF0ZUNoYW5uZWxOYW1lLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgLy8gTG9nbyBVUkwgKEthbmFsKSANCiAgICAgICAgICAgIHZhciBkYktleSA9ICJ0dmctbG9nbyI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgiaWQiLCAiY2hhbm5lbC1pY29uIik7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3subWFwcGluZy5jaGFubmVsTG9nby50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgLy8gQWt0dWFsaXNpZXJ1bmcgZGVzIEthbmFsbG9nb3MNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJ4LXVwZGF0ZS1jaGFubmVsLWljb24iOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChkYktleSk7DQogICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YVtkYktleV07DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoImlkIiwgInVwZGF0ZS1pY29uIik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnOyBjaGFuZ2VDaGFubmVsTG9nbygnIiArIGlkICsgIicpOyIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7Lm1hcHBpbmcudXBkYXRlQ2hhbm5lbExvZ28udGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIEVyd2VpdGVybiBkZXIgRVBHIEthdGVnb3JpZQ0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gIngtY2F0ZWdvcnkiOw0KICAgICAgICAgICAgdmFyIHRleHQgPSBbIi0iLCAiS2lkcyAoRW1ieSBvbmx5KSIsICJOZXdzIiwgIk1vdmllIiwgIlNlcmllcyIsICJTcG9ydHMiXTsNCiAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBbIiIsICJLaWRzIiwgIk5ld3MiLCAiTW92aWUiLCAiU2VyaWVzIiwgIlNwb3J0cyJdOw0KICAgICAgICAgICAgdmFyIHNlbGVjdCA9IGNvbnRlbnQuY3JlYXRlU2VsZWN0KHRleHQsIHZhbHVlcywgZGF0YVtkYktleV0sIGRiS2V5KTsNCiAgICAgICAgICAgIHNlbGVjdC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3subWFwcGluZy5lcGdDYXRlZ29yeS50aXRsZX19Iiwgc2VsZWN0KTsNCiAgICAgICAgICAgIC8vIE0zVSBHcnVwcGVudGl0ZWwNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJ4LWdyb3VwLXRpdGxlIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7Lm1hcHBpbmcubTN1R3JvdXBUaXRsZS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgaWYgKGRhdGFbImdyb3VwLXRpdGxlIl0gIT0gdW5kZWZpbmVkKSB7DQogICAgICAgICAgICAgICAgY29udGVudC5kZXNjcmlwdGlvbihkYXRhWyJncm91cC10aXRsZSJdKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIC8vIFhNTFRWIERhdGVpDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAieC14bWx0di1maWxlIjsNCiAgICAgICAgICAgIHZhciB4bWxGaWxlID0gZGF0YVtkYktleV07DQogICAgICAgICAgICB2YXIgeG1sdHYgPSBuZXcgWE1MVFZGaWxlKCk7DQogICAgICAgICAgICB2YXIgc2VsZWN0ID0geG1sdHYuZ2V0RmlsZXMoZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgibmFtZSIsIGRiS2V5KTsNCiAgICAgICAgICAgIHNlbGVjdC5zZXRBdHRyaWJ1dGUoImlkIiwgInBvcHVwLXhtbHR2Iik7DQogICAgICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJzsgc2V0WG1sdHZDaGFubmVsKCciICsgaWQgKyAiJyx0aGlzKTsiKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5tYXBwaW5nLnhtbHR2RmlsZS50aXRsZX19Iiwgc2VsZWN0KTsNCiAgICAgICAgICAgIHZhciBmaWxlID0gZGF0YVtkYktleV07DQogICAgICAgICAgICAvLyBYTUxUViBNYXBwaW5nDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAieC1tYXBwaW5nIjsNCiAgICAgICAgICAgIHZhciB4bWx0diA9IG5ldyBYTUxUVkZpbGUoKTsNCiAgICAgICAgICAgIHZhciBzZWxlY3QgPSB4bWx0di5nZXRQcm9ncmFtcyhmaWxlLCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJuYW1lIiwgZGJLZXkpOw0KICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgiaWQiLCAicG9wdXAtbWFwcGluZyIpOw0KICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCc7IGNoZWNrWG1sdHZDaGFubmVsKCciICsgaWQgKyAiJyx0aGlzLCciICsgeG1sRmlsZSArICInKTsiKTsNCiAgICAgICAgICAgIHNvcnRTZWxlY3Qoc2VsZWN0KTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5tYXBwaW5nLnhtbHR2Q2hhbm5lbC50aXRsZX19Iiwgc2VsZWN0KTsNCiAgICAgICAgICAgIC8vIFRpbWVzaGlmdA0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gIngtdGltZXNoaWZ0IjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5tYXBwaW5nLnRpbWVzaGlmdC5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoImlkIiwgInRpbWVzaGlmdCIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7Lm1hcHBpbmcudGltZXNoaWZ0LnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBJbnRlcmFrdGlvbg0KICAgICAgICAgICAgY29udGVudC5jcmVhdGVJbnRlcmFjdGlvbigpOw0KICAgICAgICAgICAgLy8gTG9nbyBob2NobGFkZW4NCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJjYW5jZWwiLCAie3suYnV0dG9uLnVwbG9hZExvZ299fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IHVwbG9hZExvZ28oKTsnKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgLy8gQWJicmVjaGVuDQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAiY2FuY2VsIiwgInt7LmJ1dHRvbi5jYW5jZWx9fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IHNob3dFbGVtZW50KCJwb3B1cCIsIGZhbHNlKTsnKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgLy8gRmVydGlnDQogICAgICAgICAgICB2YXIgaWRzID0gW107DQogICAgICAgICAgICBpZHMgPSBnZXRBbGxTZWxlY3RlZENoYW5uZWxzKCk7DQogICAgICAgICAgICBpZiAoaWRzLmxlbmd0aCA9PSAwKSB7DQogICAgICAgICAgICAgICAgaWRzLnB1c2goaWQpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgInNhdmUiLCAie3suYnV0dG9uLmRvbmV9fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IGRvbmVQb3B1cERhdGEoIicgKyBkYXRhVHlwZSArICciLCAiJyArIGlkcyArICciLCAiZmFsc2UiKTsnKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICBicmVhazsNCiAgICB9DQogICAgc2hvd1BvcFVwRWxlbWVudCgncG9wdXAtY3VzdG9tJyk7DQp9DQpjbGFzcyBYTUxUVkZpbGUgew0KICAgIGdldEZpbGVzKHNldCkgew0KICAgICAgICBsZXQgZmlsZUlEcyA9IGdldE9iaktleXMoU0VSVkVSWyJ4ZXBnIl1bInhtbHR2TWFwIl0pOw0KICAgICAgICBsZXQgdmFsdWVzID0gbmV3IEFycmF5KCItIik7DQogICAgICAgIGxldCB0ZXh0ID0gbmV3IEFycmF5KCItIik7DQogICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgZmlsZUlEcy5sZW5ndGg7IGkrKykgew0KICAgICAgICAgICAgaWYgKGZpbGVJRHNbaV0gIT0gInhUZVZlIER1bW15Iikgew0KICAgICAgICAgICAgICAgIHZhbHVlcy5wdXNoKGdldFZhbHVlRnJvbVByb3ZpZGVyRmlsZShmaWxlSURzW2ldLCAieG1sdHYiLCAiZmlsZS54dGV2ZSIpKTsNCiAgICAgICAgICAgICAgICB0ZXh0LnB1c2goZ2V0VmFsdWVGcm9tUHJvdmlkZXJGaWxlKGZpbGVJRHNbaV0sICJ4bWx0diIsICJuYW1lIikpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgZWxzZSB7DQogICAgICAgICAgICAgICAgdmFsdWVzLnB1c2goZmlsZUlEc1tpXSk7DQogICAgICAgICAgICAgICAgdGV4dC5wdXNoKGZpbGVJRHNbaV0pOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQogICAgICAgIGxldCBzZWxlY3QgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJTRUxFQ1QiKTsNCiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0ZXh0Lmxlbmd0aDsgaSsrKSB7DQogICAgICAgICAgICB2YXIgb3B0aW9uID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiT1BUSU9OIik7DQogICAgICAgICAgICBvcHRpb24uc2V0QXR0cmlidXRlKCJ2YWx1ZSIsIHZhbHVlc1tpXSk7DQogICAgICAgICAgICBvcHRpb24uaW5uZXJUZXh0ID0gdGV4dFtpXTsNCiAgICAgICAgICAgIHNlbGVjdC5hcHBlbmRDaGlsZChvcHRpb24pOw0KICAgICAgICB9DQogICAgICAgIGlmIChzZXQgIT0gIiIpIHsNCiAgICAgICAgICAgIHNlbGVjdC52YWx1ZSA9IHNldDsNCiAgICAgICAgfQ0KICAgICAgICByZXR1cm4gc2VsZWN0Ow0KICAgIH0NCiAgICBnZXRQcm9ncmFtcyhmaWxlLCBzZXQpIHsNCiAgICAgICAgLy92YXIgZmlsZUlEczpzdHJpbmdbXSA9IGdldE9iaktleXMoU0VSVkVSWyJ4ZXBnIl1bInhtbHR2TWFwIl0pDQogICAgICAgIGxldCB2YWx1ZXMgPSBnZXRPYmpLZXlzKFNFUlZFUlsieGVwZyJdWyJ4bWx0dk1hcCJdW2ZpbGVdKTsNCiAgICAgICAgbGV0IHRleHQgPSBbXTsNCiAgICAgICAgbGV0IGRpc3BsYXlOYW1lOw0KICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHZhbHVlcy5sZW5ndGg7IGkrKykgew0KICAgICAgICAgICAgaWYgKFNFUlZFUlsieGVwZyJdWyJ4bWx0dk1hcCJdW2ZpbGVdW3ZhbHVlc1tpXV0uaGFzT3duUHJvcGVydHkoJ2Rpc3BsYXktbmFtZScpID09IHRydWUpIHsNCiAgICAgICAgICAgICAgICBkaXNwbGF5TmFtZSA9IFNFUlZFUlsieGVwZyJdWyJ4bWx0dk1hcCJdW2ZpbGVdW3ZhbHVlc1tpXV1bImRpc3BsYXktbmFtZSJdOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgZWxzZSB7DQogICAgICAgICAgICAgICAgZGlzcGxheU5hbWUgPSAiLSI7DQogICAgICAgICAgICB9DQogICAgICAgICAgICB0ZXh0W2ldID0gZGlzcGxheU5hbWUgKyAiICgiICsgdmFsdWVzW2ldICsgIikiOw0KICAgICAgICB9DQogICAgICAgIHRleHQudW5zaGlmdCgiLSIpOw0KICAgICAgICB2YWx1ZXMudW5zaGlmdCgiLSIpOw0KICAgICAgICBsZXQgc2VsZWN0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiU0VMRUNUIik7DQogICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGV4dC5sZW5ndGg7IGkrKykgew0KICAgICAgICAgICAgdmFyIG9wdGlvbiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIk9QVElPTiIpOw0KICAgICAgICAgICAgb3B0aW9uLnNldEF0dHJpYnV0ZSgidmFsdWUiLCB2YWx1ZXNbaV0pOw0KICAgICAgICAgICAgb3B0aW9uLmlubmVyVGV4dCA9IHRleHRbaV07DQogICAgICAgICAgICBzZWxlY3QuYXBwZW5kQ2hpbGQob3B0aW9uKTsNCiAgICAgICAgfQ0KICAgICAgICBpZiAoc2V0ICE9ICIiKSB7DQogICAgICAgICAgICBzZWxlY3QudmFsdWUgPSBzZXQ7DQogICAgICAgIH0NCiAgICAgICAgaWYgKHNlbGVjdC52YWx1ZSAhPSBzZXQpIHsNCiAgICAgICAgICAgIHNlbGVjdC52YWx1ZSA9ICItIjsNCiAgICAgICAgfQ0KICAgICAgICByZXR1cm4gc2VsZWN0Ow0KICAgIH0NCn0NCmZ1bmN0aW9uIGdldFZhbHVlRnJvbVByb3ZpZGVyRmlsZShmaWxlLCBmaWxlVHlwZSwga2V5KSB7DQogICAgaWYgKGZpbGUgPT0gInhUZVZlIER1bW15Iikgew0KICAgICAgICByZXR1cm4gZmlsZTsNCiAgICB9DQogICAgbGV0IGZpbGVJRDsNCiAgICBsZXQgaW5kaWNhdG9yID0gZmlsZS5jaGFyQXQoMCk7DQogICAgc3dpdGNoIChpbmRpY2F0b3IpIHsNCiAgICAgICAgY2FzZSAiTSI6DQogICAgICAgICAgICBmaWxlVHlwZSA9ICJtM3UiOw0KICAgICAgICAgICAgZmlsZUlEID0gZmlsZTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJIIjoNCiAgICAgICAgICAgIGZpbGVUeXBlID0gImhkaHIiOw0KICAgICAgICAgICAgZmlsZUlEID0gZmlsZTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJYIjoNCiAgICAgICAgICAgIGZpbGVUeXBlID0gInhtbHR2IjsNCiAgICAgICAgICAgIGZpbGVJRCA9IGZpbGUuc3Vic3RyaW5nKDAsIGZpbGUubGFzdEluZGV4T2YoJy4nKSk7DQogICAgICAgICAgICBicmVhazsNCiAgICB9DQogICAgaWYgKFNFUlZFUlsic2V0dGluZ3MiXVsiZmlsZXMiXVtmaWxlVHlwZV0uaGFzT3duUHJvcGVydHkoZmlsZUlEKSA9PSB0cnVlKSB7DQogICAgICAgIHZhciBkYXRhID0gU0VSVkVSWyJzZXR0aW5ncyJdWyJmaWxlcyJdW2ZpbGVUeXBlXVtmaWxlSURdOw0KICAgICAgICByZXR1cm4gZGF0YVtrZXldOw0KICAgIH0NCiAgICByZXR1cm47DQp9DQpmdW5jdGlvbiBzZXRYbWx0dkNoYW5uZWwoaWQsIGVsZW1lbnQpIHsNCiAgICBsZXQgeG1sdHYgPSBuZXcgWE1MVFZGaWxlKCk7DQogICAgbGV0IHhtbEZpbGUgPSBlbGVtZW50LnZhbHVlOw0KICAgIGxldCB0dmdJZCA9IFNFUlZFUlsieGVwZyJdWyJlcGdNYXBwaW5nIl1baWRdWyJ0dmctaWQiXTsNCiAgICBsZXQgdGQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicG9wdXAtbWFwcGluZyIpLnBhcmVudEVsZW1lbnQ7DQogICAgdGQuaW5uZXJIVE1MID0gIiI7DQogICAgbGV0IHNlbGVjdCA9IHhtbHR2LmdldFByb2dyYW1zKGVsZW1lbnQudmFsdWUsIHR2Z0lkKTsNCiAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJuYW1lIiwgIngtbWFwcGluZyIpOw0KICAgIHNlbGVjdC5zZXRBdHRyaWJ1dGUoImlkIiwgInBvcHVwLW1hcHBpbmciKTsNCiAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJzsgY2hlY2tYbWx0dkNoYW5uZWwoJyIgKyBpZCArICInLHRoaXMsJyIgKyB4bWxGaWxlICsgIicpOyIpOw0KICAgIHNlbGVjdC5jbGFzc05hbWUgPSAiY2hhbmdlZCI7DQogICAgc29ydFNlbGVjdChzZWxlY3QpOw0KICAgIHRkLmFwcGVuZENoaWxkKHNlbGVjdCk7DQogICAgY2hlY2tYbWx0dkNoYW5uZWwoaWQsIHNlbGVjdCwgeG1sRmlsZSk7DQp9DQpmdW5jdGlvbiBjaGVja1htbHR2Q2hhbm5lbChpZCwgZWxlbWVudCwgeG1sRmlsZSkgew0KICAgIGxldCB2YWx1ZSA9IGVsZW1lbnQudmFsdWU7DQogICAgbGV0IGJvb2w7DQogICAgbGV0IGNoZWNrYm94ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2FjdGl2ZScpOw0KICAgIGxldCBjaGFubmVsID0gU0VSVkVSWyJ4ZXBnIl1bImVwZ01hcHBpbmciXVtpZF07DQogICAgbGV0IHVwZGF0ZUxvZ287DQogICAgYm9vbCA9IHZhbHVlICE9ICItIjsNCiAgICBjaGVja2JveC5jaGVja2VkID0gYm9vbDsNCiAgICBjaGVja2JveC5jbGFzc05hbWUgPSAiY2hhbmdlZCI7DQogICAgY29uc29sZS5sb2coeG1sRmlsZSk7DQogICAgLy8gS2FuYWxsb2dvIGFrdHVhbGlzaWVyZW4NCiAgICAvKg0KICAgIHVwZGF0ZUxvZ28gPSAoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInVwZGF0ZS1pY29uIikgYXMgSFRNTElucHV0RWxlbWVudCkuY2hlY2tlZA0KICAgIGNvbnNvbGUubG9nKHVwZGF0ZUxvZ28pOw0KICAgICovDQogICAgaWYgKHhtbEZpbGUgIT0gInhUZVZlIER1bW15IiAmJiBib29sID09IHRydWUpIHsNCiAgICAgICAgLy8oZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInVwZGF0ZS1pY29uIikgYXMgSFRNTElucHV0RWxlbWVudCkuY2hlY2tlZCA9IHRydWU7DQogICAgICAgIC8vKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ1cGRhdGUtaWNvbiIpIGFzIEhUTUxJbnB1dEVsZW1lbnQpLmNsYXNzTmFtZSA9ICJjaGFuZ2VkIjsNCiAgICAgICAgY29uc29sZS5sb2coIklEIiwgaWQpOw0KICAgICAgICBjaGFuZ2VDaGFubmVsTG9nbyhpZCk7DQogICAgICAgIHJldHVybjsNCiAgICB9DQogICAgaWYgKHhtbEZpbGUgPT0gInhUZVZlIER1bW15Iikgew0KICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidXBkYXRlLWljb24iKS5jaGVja2VkID0gZmFsc2U7DQogICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ1cGRhdGUtaWNvbiIpLmNsYXNzTmFtZSA9ICJjaGFuZ2VkIjsNCiAgICB9DQogICAgcmV0dXJuOw0KfQ0KZnVuY3Rpb24gY2hhbmdlQ2hhbm5lbExvZ28oaWQpIHsNCiAgICBsZXQgdXBkYXRlTG9nbzsNCiAgICBsZXQgY2hhbm5lbCA9IFNFUlZFUlsieGVwZyJdWyJlcGdNYXBwaW5nIl1baWRdOw0KICAgIGxldCBmID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInBvcHVwLXhtbHR2Iik7DQogICAgbGV0IHhtbHR2RmlsZSA9IGYub3B0aW9uc1tmLnNlbGVjdGVkSW5kZXhdLnZhbHVlOw0KICAgIGxldCBtID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInBvcHVwLW1hcHBpbmciKTsNCiAgICBsZXQgeE1hcHBpbmcgPSBtLm9wdGlvbnNbbS5zZWxlY3RlZEluZGV4XS52YWx1ZTsNCiAgICBsZXQgeG1sdHZMb2dvID0gU0VSVkVSWyJ4ZXBnIl1bInhtbHR2TWFwIl1beG1sdHZGaWxlXVt4TWFwcGluZ11bImljb24iXTsNCiAgICB1cGRhdGVMb2dvID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInVwZGF0ZS1pY29uIikuY2hlY2tlZDsNCiAgICBpZiAodXBkYXRlTG9nbyA9PSB0cnVlICYmIHhtbHR2RmlsZSAhPSAieFRlVmUgRHVtbXkiKSB7DQogICAgICAgIGlmIChTRVJWRVJbInhlcGciXVsieG1sdHZNYXAiXVt4bWx0dkZpbGVdLmhhc093blByb3BlcnR5KHhNYXBwaW5nKSkgew0KICAgICAgICAgICAgdmFyIGxvZ28gPSB4bWx0dkxvZ287DQogICAgICAgIH0NCiAgICAgICAgZWxzZSB7DQogICAgICAgICAgICBsb2dvID0gY2hhbm5lbFsidHZnLWxvZ28iXTsNCiAgICAgICAgfQ0KICAgICAgICB2YXIgbG9nb0lucHV0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNoYW5uZWwtaWNvbiIpOw0KICAgICAgICBsb2dvSW5wdXQudmFsdWUgPSBsb2dvOw0KICAgICAgICBpZiAoQlVMS19FRElUID09IGZhbHNlKSB7DQogICAgICAgICAgICBsb2dvSW5wdXQuY2xhc3NOYW1lID0gImNoYW5nZWQiOw0KICAgICAgICB9DQogICAgfQ0KfQ0KZnVuY3Rpb24gc2F2ZVBvcHVwRGF0YShkYXRhVHlwZSwgaWQsIHJlbW92ZSwgb3B0aW9uKSB7DQogICAgaWYgKGRhdGFUeXBlID09ICJtYXBwaW5nIikgew0KICAgICAgICBsZXQgZGF0YSA9IHt9Ow0KICAgICAgICBjb25zb2xlLmxvZygiU2F2ZSBtYXBwaW5nIGRhdGEiKTsNCiAgICAgICAgbGV0IGNtZCA9ICJzYXZlRXBnTWFwcGluZyI7DQogICAgICAgIGRhdGFbImVwZ01hcHBpbmciXSA9IFNFUlZFUlsieGVwZyJdWyJlcGdNYXBwaW5nIl07DQogICAgICAgIGNvbnNvbGUubG9nKCJTRU5EIFRPIFNFUlZFUiIpOw0KICAgICAgICBsZXQgc2VydmVyID0gbmV3IFNlcnZlcihjbWQpOw0KICAgICAgICBzZXJ2ZXIucmVxdWVzdChkYXRhKTsNCiAgICAgICAgZGVsZXRlIFVORE9bImVwZ01hcHBpbmciXTsNCiAgICAgICAgcmV0dXJuOw0KICAgIH0NCiAgICBjb25zb2xlLmxvZygiU2F2ZSBwb3B1cCBkYXRhIik7DQogICAgbGV0IGRpdiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJwb3B1cC1jdXN0b20iKTsNCiAgICBsZXQgaW5wdXRzID0gZGl2LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJUQUJMRSIpWzBdLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJJTlBVVCIpOw0KICAgIGxldCBzZWxlY3RzID0gZGl2LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJUQUJMRSIpWzBdLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJTRUxFQ1QiKTsNCiAgICBsZXQgaW5wdXQgPSB7fTsNCiAgICBsZXQgY29uZmlybU1zZzsNCiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHNlbGVjdHMubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgdmFyIG5hbWU7DQogICAgICAgIG5hbWUgPSBzZWxlY3RzW2ldLm5hbWU7DQogICAgICAgIHZhciB2YWx1ZSA9IHNlbGVjdHNbaV0udmFsdWU7DQogICAgICAgIHN3aXRjaCAobmFtZSkgew0KICAgICAgICAgICAgY2FzZSAidHVuZXIiOg0KICAgICAgICAgICAgICAgIGlucHV0W25hbWVdID0gcGFyc2VJbnQodmFsdWUpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgICAgICBpbnB1dFtuYW1lXSA9IHZhbHVlOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICB9DQogICAgfQ0KICAgIGZvciAobGV0IGkgPSAwOyBpIDwgaW5wdXRzLmxlbmd0aDsgaSsrKSB7DQogICAgICAgIHN3aXRjaCAoaW5wdXRzW2ldLnR5cGUpIHsNCiAgICAgICAgICAgIGNhc2UgImNoZWNrYm94IjoNCiAgICAgICAgICAgICAgICBuYW1lID0gaW5wdXRzW2ldLm5hbWU7DQogICAgICAgICAgICAgICAgaW5wdXRbbmFtZV0gPSBpbnB1dHNbaV0uY2hlY2tlZDsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInRleHQiOg0KICAgICAgICAgICAgY2FzZSAiaGlkZGVuIjoNCiAgICAgICAgICAgIGNhc2UgInBhc3N3b3JkIjoNCiAgICAgICAgICAgICAgICBuYW1lID0gaW5wdXRzW2ldLm5hbWU7DQogICAgICAgICAgICAgICAgc3dpdGNoIChuYW1lKSB7DQogICAgICAgICAgICAgICAgICAgIGNhc2UgInR1bmVyIjoNCiAgICAgICAgICAgICAgICAgICAgICAgIGlucHV0W25hbWVdID0gcGFyc2VJbnQoaW5wdXRzW2ldLnZhbHVlKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgICAgICBkZWZhdWx0Og0KICAgICAgICAgICAgICAgICAgICAgICAgaW5wdXRbbmFtZV0gPSBpbnB1dHNbaV0udmFsdWU7DQogICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIH0NCiAgICB9DQogICAgbGV0IGRhdGEgPSB7fTsNCiAgICBsZXQgY21kOw0KICAgIGlmIChyZW1vdmUgPT0gdHJ1ZSkgew0KICAgICAgICBpbnB1dFsiZGVsZXRlIl0gPSB0cnVlOw0KICAgIH0NCiAgICBzd2l0Y2ggKGRhdGFUeXBlKSB7DQogICAgICAgIGNhc2UgInVzZXJzIjoNCiAgICAgICAgICAgIGNvbmZpcm1Nc2cgPSAiRGVsZXRlIHRoaXMgdXNlcj8iOw0KICAgICAgICAgICAgaWYgKGlkID09ICItIikgew0KICAgICAgICAgICAgICAgIGNtZCA9ICJzYXZlTmV3VXNlciI7DQogICAgICAgICAgICAgICAgZGF0YVsidXNlckRhdGEiXSA9IGlucHV0Ow0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgZWxzZSB7DQogICAgICAgICAgICAgICAgY21kID0gInNhdmVVc2VyRGF0YSI7DQogICAgICAgICAgICAgICAgbGV0IGQgPSB7fTsNCiAgICAgICAgICAgICAgICBkW2lkXSA9IGlucHV0Ow0KICAgICAgICAgICAgICAgIGRhdGFbInVzZXJEYXRhIl0gPSBkOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGNhc2UgIm0zdSI6DQogICAgICAgICAgICBjb25maXJtTXNnID0gIkRlbGV0ZSB0aGlzIHBsYXlsaXN0PyI7DQogICAgICAgICAgICBzd2l0Y2ggKG9wdGlvbikgew0KICAgICAgICAgICAgICAgIC8vIFBvcHVwOiBTYXZlDQogICAgICAgICAgICAgICAgY2FzZSAwOg0KICAgICAgICAgICAgICAgICAgICBjbWQgPSAic2F2ZUZpbGVzTTNVIjsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgLy8gUG9wdXA6IFVwZGF0ZQ0KICAgICAgICAgICAgICAgIGNhc2UgMToNCiAgICAgICAgICAgICAgICAgICAgY21kID0gInVwZGF0ZUZpbGVNM1UiOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGRhdGFbImZpbGVzIl0gPSB7fTsNCiAgICAgICAgICAgIGRhdGFbImZpbGVzIl1bZGF0YVR5cGVdID0ge307DQogICAgICAgICAgICBkYXRhWyJmaWxlcyJdW2RhdGFUeXBlXVtpZF0gPSBpbnB1dDsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJoZGhyIjoNCiAgICAgICAgICAgIGNvbmZpcm1Nc2cgPSAiRGVsZXRlIHRoaXMgSERIb21lUnVuIHR1bmVyPyI7DQogICAgICAgICAgICBzd2l0Y2ggKG9wdGlvbikgew0KICAgICAgICAgICAgICAgIC8vIFBvcHVwOiBTYXZlDQogICAgICAgICAgICAgICAgY2FzZSAwOg0KICAgICAgICAgICAgICAgICAgICBjbWQgPSAic2F2ZUZpbGVzSERIUiI7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIC8vIFBvcHVwOiBVcGRhdGUNCiAgICAgICAgICAgICAgICBjYXNlIDE6DQogICAgICAgICAgICAgICAgICAgIGNtZCA9ICJ1cGRhdGVGaWxlSERIUiI7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgZGF0YVsiZmlsZXMiXSA9IHt9Ow0KICAgICAgICAgICAgZGF0YVsiZmlsZXMiXVtkYXRhVHlwZV0gPSB7fTsNCiAgICAgICAgICAgIGRhdGFbImZpbGVzIl1bZGF0YVR5cGVdW2lkXSA9IGlucHV0Ow0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGNhc2UgInhtbHR2IjoNCiAgICAgICAgICAgIGNvbmZpcm1Nc2cgPSAiRGVsZXRlIHRoaXMgWE1MVFYgZmlsZT8iOw0KICAgICAgICAgICAgc3dpdGNoIChvcHRpb24pIHsNCiAgICAgICAgICAgICAgICAvLyBQb3B1cDogU2F2ZQ0KICAgICAgICAgICAgICAgIGNhc2UgMDoNCiAgICAgICAgICAgICAgICAgICAgY21kID0gInNhdmVGaWxlc1hNTFRWIjsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgLy8gUG9wdXA6IFVwZGF0ZQ0KICAgICAgICAgICAgICAgIGNhc2UgMToNCiAgICAgICAgICAgICAgICAgICAgY21kID0gInVwZGF0ZUZpbGVYTUxUViI7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgZGF0YVsiZmlsZXMiXSA9IHt9Ow0KICAgICAgICAgICAgZGF0YVsiZmlsZXMiXVtkYXRhVHlwZV0gPSB7fTsNCiAgICAgICAgICAgIGRhdGFbImZpbGVzIl1bZGF0YVR5cGVdW2lkXSA9IGlucHV0Ow0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGNhc2UgImZpbHRlciI6DQogICAgICAgICAgICBjb25maXJtTXNnID0gIkRlbGV0ZSB0aGlzIGZpbHRlcj8iOw0KICAgICAgICAgICAgY21kID0gInNhdmVGaWx0ZXIiOw0KICAgICAgICAgICAgZGF0YVsiZmlsdGVyIl0gPSB7fTsNCiAgICAgICAgICAgIGRhdGFbImZpbHRlciJdW2lkXSA9IGlucHV0Ow0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICBjb25zb2xlLmxvZyhkYXRhVHlwZSwgaWQpOw0KICAgICAgICAgICAgcmV0dXJuOw0KICAgIH0NCiAgICBpZiAocmVtb3ZlID09IHRydWUpIHsNCiAgICAgICAgaWYgKCFjb25maXJtKGNvbmZpcm1Nc2cpKSB7DQogICAgICAgICAgICBzaG93RWxlbWVudCgicG9wdXAiLCBmYWxzZSk7DQogICAgICAgICAgICByZXR1cm47DQogICAgICAgIH0NCiAgICB9DQogICAgY29uc29sZS5sb2coIlNFTkQgVE8gU0VSVkVSIik7DQogICAgY29uc29sZS5sb2coZGF0YSk7DQogICAgbGV0IHNlcnZlciA9IG5ldyBTZXJ2ZXIoY21kKTsNCiAgICBzZXJ2ZXIucmVxdWVzdChkYXRhKTsNCn0NCmZ1bmN0aW9uIGRvbmVQb3B1cERhdGEoZGF0YVR5cGUsIGlkc1N0cikgew0KICAgIGxldCBpZHMgPSBpZHNTdHIuc3BsaXQoJywnKTsNCiAgICBsZXQgZGl2ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInBvcHVwLWN1c3RvbSIpOw0KICAgIGxldCBpbnB1dHMgPSBkaXYuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSgiY2hhbmdlZCIpOw0KICAgIGlkcy5mb3JFYWNoKGlkID0+IHsNCiAgICAgICAgbGV0IGlucHV0Ow0KICAgICAgICBpbnB1dCA9IFNFUlZFUlsieGVwZyJdWyJlcGdNYXBwaW5nIl1baWRdOw0KICAgICAgICBjb25zb2xlLmxvZyhpbnB1dCk7DQogICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgaW5wdXRzLmxlbmd0aDsgaSsrKSB7DQogICAgICAgICAgICBsZXQgbmFtZTsNCiAgICAgICAgICAgIGxldCB2YWx1ZTsNCiAgICAgICAgICAgIHN3aXRjaCAoaW5wdXRzW2ldLnRhZ05hbWUpIHsNCiAgICAgICAgICAgICAgICBjYXNlICJJTlBVVCI6DQogICAgICAgICAgICAgICAgICAgIHN3aXRjaCAoaW5wdXRzW2ldLnR5cGUpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgImNoZWNrYm94IjoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lID0gaW5wdXRzW2ldLm5hbWU7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSBpbnB1dHNbaV0uY2hlY2tlZDsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnB1dFtuYW1lXSA9IHZhbHVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAidGV4dCI6DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZSA9IGlucHV0c1tpXS5uYW1lOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlID0gaW5wdXRzW2ldLnZhbHVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlucHV0W25hbWVdID0gdmFsdWU7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAiU0VMRUNUIjoNCiAgICAgICAgICAgICAgICAgICAgbmFtZSA9IGlucHV0c1tpXS5uYW1lOw0KICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IGlucHV0c1tpXS52YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgaW5wdXRbbmFtZV0gPSB2YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBzd2l0Y2ggKG5hbWUpIHsNCiAgICAgICAgICAgICAgICBjYXNlICJ0dmctbG9nbyI6DQogICAgICAgICAgICAgICAgICAgIC8vKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5jaGlsZE5vZGVzWzJdLmZpcnN0Q2hpbGQgYXMgSFRNTEVsZW1lbnQpLnNldEF0dHJpYnV0ZSgic3JjIiwgdmFsdWUpDQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgIngtbmFtZSI6DQogICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5jaGlsZE5vZGVzWzNdLmZpcnN0Q2hpbGQuaW5uZXJIVE1MID0gdmFsdWU7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgIngtY2F0ZWdvcnkiOg0KICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkuY2hpbGROb2Rlc1szXS5maXJzdENoaWxkLmNsYXNzTmFtZSA9IHZhbHVlOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBjYXNlICJ4LWdyb3VwLXRpdGxlIjoNCiAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpLmNoaWxkTm9kZXNbNV0uZmlyc3RDaGlsZC5pbm5lckhUTUwgPSB2YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAieC14bWx0di1maWxlIjoNCiAgICAgICAgICAgICAgICAgICAgaWYgKHZhbHVlICE9ICJ4VGVWZSBEdW1teSIgJiYgdmFsdWUgIT0gIi0iKSB7DQogICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IGdldFZhbHVlRnJvbVByb3ZpZGVyRmlsZSh2YWx1ZSwgInhtbHR2IiwgIm5hbWUiKTsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBpZiAodmFsdWUgPT0gIi0iKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBpbnB1dFsieC1hY3RpdmUiXSA9IGZhbHNlOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5jaGlsZE5vZGVzWzZdLmZpcnN0Q2hpbGQuaW5uZXJIVE1MID0gdmFsdWU7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgIngtbWFwcGluZyI6DQogICAgICAgICAgICAgICAgICAgIGlmICh2YWx1ZSA9PSAiLSIpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGlucHV0WyJ4LWFjdGl2ZSJdID0gZmFsc2U7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpLmNoaWxkTm9kZXNbN10uZmlyc3RDaGlsZC5pbm5lckhUTUwgPSB2YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAieC10aW1lc2hpZnQiOg0KICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkuY2hpbGROb2Rlc1s4XS5maXJzdENoaWxkLmlubmVySFRNTCA9IHZhbHVlOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBkZWZhdWx0Og0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgY3JlYXRlU2VhcmNoT2JqKCk7DQogICAgICAgICAgICBzZWFyY2hJbk1hcHBpbmcoKTsNCiAgICAgICAgfQ0KICAgICAgICBpZiAoaW5wdXRbIngtYWN0aXZlIl0gPT0gZmFsc2UpIHsNCiAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5jbGFzc05hbWUgPSAibm90QWN0aXZlRVBHIjsNCiAgICAgICAgfQ0KICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5jbGFzc05hbWUgPSAiYWN0aXZlRVBHIjsNCiAgICAgICAgfQ0KICAgICAgICBjb25zb2xlLmxvZyhpbnB1dFsidHZnLWxvZ28iXSk7DQogICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5jaGlsZE5vZGVzWzJdLmZpcnN0Q2hpbGQuc2V0QXR0cmlidXRlKCJzcmMiLCBpbnB1dFsidHZnLWxvZ28iXSk7DQogICAgfSk7DQogICAgc2hvd0VsZW1lbnQoInBvcHVwIiwgZmFsc2UpOw0KICAgIHJldHVybjsNCn0NCmZ1bmN0aW9uIHNob3dQcmV2aWV3KGVsZW1lbnQpIHsNCiAgICBsZXQgZGl2ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm15U3RyZWFtc0JveCIpOw0KICAgIHN3aXRjaCAoZWxlbWVudCkgew0KICAgICAgICBjYXNlIGZhbHNlOg0KICAgICAgICAgICAgZGl2LmNsYXNzTmFtZSA9ICJub3RWaXNpYmxlIjsNCiAgICAgICAgICAgIHJldHVybjsNCiAgICB9DQogICAgbGV0IHN0cmVhbXMgPSBbImFjdGl2ZVN0cmVhbXMiLCAiaW5hY3RpdmVTdHJlYW1zIl07DQogICAgc3RyZWFtcy5mb3JFYWNoKHByZXZpZXcgPT4gew0KICAgICAgICBsZXQgdGFibGUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChwcmV2aWV3KTsNCiAgICAgICAgdGFibGUuaW5uZXJIVE1MID0gIiI7DQogICAgICAgIGxldCBvYmogPSBTRVJWRVJbImRhdGEiXVsiU3RyZWFtUHJldmlld1VJIl1bcHJldmlld107DQogICAgICAgIG9iai5mb3JFYWNoKGNoYW5uZWwgPT4gew0KICAgICAgICAgICAgbGV0IHRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVFIiKTsNCiAgICAgICAgICAgIGxldCB0ZEtleSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICBsZXQgdGRWYWwgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgdGRLZXkuY2xhc3NOYW1lID0gInRkS2V5IjsNCiAgICAgICAgICAgIHRkVmFsLmNsYXNzTmFtZSA9ICJ0ZFZhbCI7DQogICAgICAgICAgICBzd2l0Y2ggKHByZXZpZXcpIHsNCiAgICAgICAgICAgICAgICBjYXNlICJhY3RpdmVTdHJlYW1zIjoNCiAgICAgICAgICAgICAgICAgICAgdGRLZXkuaW5uZXJUZXh0ID0gIkNoYW5uZWw6ICgrKSI7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgImluYWN0aXZlU3RyZWFtcyI6DQogICAgICAgICAgICAgICAgICAgIHRkS2V5LmlubmVyVGV4dCA9ICJDaGFubmVsOiAoLSkiOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIHRkVmFsLmlubmVyVGV4dCA9IGNoYW5uZWw7DQogICAgICAgICAgICB0ci5hcHBlbmRDaGlsZCh0ZEtleSk7DQogICAgICAgICAgICB0ci5hcHBlbmRDaGlsZCh0ZFZhbCk7DQogICAgICAgICAgICB0YWJsZS5hcHBlbmRDaGlsZCh0cik7DQogICAgICAgIH0pOw0KICAgIH0pOw0KICAgIHNob3dFbGVtZW50KCJsb2FkaW5nIiwgZmFsc2UpOw0KICAgIGRpdi5jbGFzc05hbWUgPSAidmlzaWJsZSI7DQogICAgcmV0dXJuOw0KfQ0K" + webUI["html/index.html"] = "PCFkb2N0eXBlIGh0bWw+DQo8aHRtbD4NCiAgPGhlYWQ+DQogICAgPG1ldGEgY2hhcnNldD0idXRmLTgiPg0KICAgIDwhLS0tDQogICAgPG1ldGEgbmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9IndpZHRoPWRldmljZS13aWR0aCwgaW5pdGlhbC1zY2FsZT0xLjAiIC8+IA0KICAgIC0tPg0KICAgIDx0aXRsZT54VGVWZTwvdGl0bGU+DQogICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJjc3Mvc2NyZWVuLmNzcyIgdHlwZT0idGV4dC9jc3MiPg0KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iY3NzL2Jhc2UuY3NzIiB0eXBlPSJ0ZXh0L2NzcyI+DQoNCiAgICA8c2NyaXB0IGxhbmd1YWdlPSJqYXZhc2NyaXB0IiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ianMvbmV0d29ya190cy5qcyI+PC9zY3JpcHQ+DQogICAgPHNjcmlwdCBsYW5ndWFnZT0iamF2YXNjcmlwdCIgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9ImpzL21lbnVfdHMuanMiPjwvc2NyaXB0Pg0KICAgIDxzY3JpcHQgbGFuZ3VhZ2U9ImphdmFzY3JpcHQiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJqcy9zZXR0aW5nc190cy5qcyI+PC9zY3JpcHQ+DQogICAgPHNjcmlwdCBsYW5ndWFnZT0iamF2YXNjcmlwdCIgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9ImpzL2xvZ3NfdHMuanMiPjwvc2NyaXB0Pg0KICAgIDxzY3JpcHQgbGFuZ3VhZ2U9ImphdmFzY3JpcHQiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJqcy9iYXNlX3RzLmpzIj48L3NjcmlwdD4NCg0KICA8L2hlYWQ+DQoNCiAgICA8Ym9keSBvbmxvYWQ9ImphdmFzY3JpcHQ6IFBhZ2VSZWFkeSgpOyI+DQoNCiAgICAgIDxkaXYgaWQ9ImxvYWRpbmciIGNsYXNzPSJub25lIj4NCiAgICAgICAgPGRpdiBjbGFzcz0ibG9hZGVyIj48L2Rpdj4NCiAgICAgIDwvZGl2Pg0KDQogICAgICA8ZGl2IGlkPSJwb3B1cCIgY2xhc3M9Im5vbmUiPg0KICAgICAgICA8ZGl2IGlkPSJwb3B1cC1jdXN0b20iPjwvZGl2Pg0KICAgICAgPC9kaXY+DQoNCiAgICAgIDxkaXYgaWQ9ImxheW91dCI+DQoNCiAgICAgICAgPCEtLQ0KICAgICAgICA8ZGl2IGlkPSJub3RpZmljYXRpb24iPg0KICAgICAgICAgIDxkaXYgY2xhc3M9ImVsZW1lbnQiPg0KICAgICAgICAgICAgPGg1PlhFUEc8L2g1Pg0KICAgICAgICAgICAgPHByZT4xMS4wNS4yMDE5IC0gMjA6MjE8L3ByZT4NCiAgICAgICAgICAgIDxocj4NCiAgICAgICAgICAgIDxwPkhhbGxvIGRhcyBpc3QgZWluIFRlc3QuIFVuZCBub2NoIG1laHIgVGV4dC48L3A+DQogICAgICAgICAgPC9kaXY+DQogICAgICAgIDwvZGl2Pg0KICAgICAgLS0+DQoNCiAgICAgICAgPGRpdiBpZD0ibWVudS13cmFwcGVyIiBjbGFzcz0ibGF5b3V0LWxlZnQiPg0KICAgICAgICAgIDxkaXYgaWQ9ICJicmFuY2giPjwvZGl2Pg0KICAgICAgICAgIDxkaXYgaWQ9ImxvZ28iPjwvZGl2Pg0KICAgICAgICAgIDxuYXYgaWQ9Im1haW4tbWVudSI+PC9uYXY+DQogICAgICAgIDwvZGl2Pg0KDQogICAgICAgIDxkaXYgY2xhc3M9ImxheW91dC1yaWdodCI+DQoNCiAgICAgICAgICA8dGFibGUgaWQ9ImNsaWVudEluZm8iIGNsYXNzPSIiPg0KDQogICAgICAgICAgICA8dHI+DQogICAgICAgICAgICAgIDx0ZCBjbGFzcz0idGRLZXkiPnhUZVZlOjwvdGQ+DQogICAgICAgICAgICAgIDx0ZCBpZD0idmVyc2lvbiIgY2xhc3M9InRkVmFsIj4mbmJzcDs8L3RkPg0KICAgICAgICAgICAgICA8dGQgY2xhc3M9InRkS2V5Ij5PUzo8L3RkPg0KICAgICAgICAgICAgICA8dGQgaWQ9Im9zIiBjbGFzcz0idGRWYWwiPiZuYnNwOzwvdGQ+DQogICAgICAgICAgICAgIDx0ZCBjbGFzcz0idGRLZXkgcGhvbmUiPkRWUiBJUDo8L3RkPg0KICAgICAgICAgICAgICA8dGQgaWQ9IkRWUiIgY2xhc3M9InRkVmFsIHBob25lIj4mbmJzcDs8L3RkPg0KICAgICAgICAgICAgPC90cj4NCg0KICAgICAgICAgICAgPHRyPg0KICAgICAgICAgICAgICA8dGQgY2xhc3M9InRkS2V5Ij5VVUlEOjwvdGQ+DQogICAgICAgICAgICAgIDx0ZCBpZD0idXVpZCIgY2xhc3M9InRkVmFsIj4mbmJzcDs8L3RkPg0KICAgICAgICAgICAgICA8dGQgY2xhc3M9InRkS2V5Ij5BcmNoOjwvdGQ+DQogICAgICAgICAgICAgIDx0ZCBpZD0iYXJjaCIgY2xhc3M9InRkVmFsIj4mbmJzcDs8L3RkPg0KICAgICAgICAgICAgICA8dGQgY2xhc3M9InRkS2V5IHBob25lIj5NM1UgVVJMOjwvdGQ+DQogICAgICAgICAgICAgIDx0ZCBpZD0ibTN1LXVybCIgY2xhc3M9InRkVmFsIHBob25lIj4mbmJzcDs8L3RkPg0KICAgICAgICAgICAgPC90cj4NCg0KICAgICAgICAgICAgPHRyPg0KICAgICAgICAgICAgICA8dGQgY2xhc3M9InRkS2V5Ij5BdmFpbGFibGUgU3RyZWFtczo8L3RkPg0KICAgICAgICAgICAgICA8dGQgaWQ9InN0cmVhbXMiIGNsYXNzPSJ0ZFZhbCI+Jm5ic3A7PC90ZD4NCiAgICAgICAgICAgICAgPHRkIGNsYXNzPSJ0ZEtleSI+RVBHIFNvdXJjZTo8L3RkPg0KICAgICAgICAgICAgICA8dGQgaWQ9ImVwZ1NvdXJjZSIgY2xhc3M9InRkVmFsIj4mbmJzcDs8L3RkPg0KICAgICAgICAgICAgICA8dGQgY2xhc3M9InRkS2V5IHBob25lIj5YRVBHIFVSTDo8L3RkPg0KICAgICAgICAgICAgICA8dGQgaWQ9InhlcGctdXJsIiBjbGFzcz0idGRWYWwgcGhvbmUiPiZuYnNwOzwvdGQ+DQogICAgICAgICAgICA8L3RyPg0KDQogICAgICAgICAgICA8dHI+DQogICAgICAgICAgICAgIDx0ZCBjbGFzcz0idGRLZXkiPlhFUEcgQ2hhbm5lbHM6PC90ZD4NCiAgICAgICAgICAgICAgPHRkIGlkPSJ4ZXBnIiBjbGFzcz0idGRWYWwiPiZuYnNwOzwvdGQ+DQogICAgICAgICAgICAgIDx0ZCBjbGFzcz0idGRLZXkiPkVycm9yczo8L3RkPg0KICAgICAgICAgICAgICA8dGQgaWQ9ImVycm9ycyIgY2xhc3M9InRkVmFsIj4mbmJzcDs8L3RkPg0KICAgICAgICAgICAgICA8dGQgY2xhc3M9InRkS2V5Ij5XYXJuaW5nczo8L3RkPg0KICAgICAgICAgICAgICA8dGQgaWQ9Indhcm5pbmdzIiBjbGFzcz0idGRWYWwiPiZuYnNwOzwvdGQ+DQogICAgICAgICAgICA8L3RyPg0KDQogICAgICAgICAgPC90YWJsZT4NCiAgICAgICAgIA0KICAgICAgICAgIDxkaXYgaWQ9Im15U3RyZWFtc0JveCIgY2xhc3M9Im5vdFZpc2libGUiPg0KDQogICAgICAgICAgICA8ZGl2IGlkPSJhbGxTdHJlYW1zIj4NCiAgICAgICAgICAgICAgPHRhYmxlIGlkPSJhY3RpdmVTdHJlYW1zIj48L3RhYmxlPg0KICAgICAgICAgICAgICA8dGFibGUgaWQ9ImluYWN0aXZlU3RyZWFtcyI+PC90YWJsZT4NCiAgICAgICAgICAgIDwvZGl2Pg0KDQogICAgICAgICAgPC9kaXY+DQogICAgICAgICAgDQogICAgICAgICAgPGRpdiBpZD0iY29udGVudCIgY2xhc3M9IiI+PC9kaXY+DQogICAgICAgICAgICANCiAgICAgICAgPC9kaXY+DQoNCiAgICAgIDwvZGl2Pg0KICAgICAgDQogICAgPC9ib2R5Pg0KICAgIA0KPC9odG1sPg==" + webUI["html/js/base.js"] = "dmFyIGNvbmZpZyAgICAgICAgPSBuZXcgT2JqZWN0KCk7DQp2YXIgbWVudSAgICAgICAgICA9IG5ldyBPYmplY3QoKTsNCnZhciBzdWJNZW51ICAgICAgID0gbmV3IE9iamVjdCgpOw0KdmFyIGFjdGl2ZVN0cmVhbXMgPSBuZXcgT2JqZWN0KCk7DQp2YXIgeEVQRyAgICAgICAgICA9IG5ldyBPYmplY3QoKTsNCnZhciB1c2VycyAgICAgICAgID0gbmV3IE9iamVjdCgpOw0KdmFyIGxvZyAgICAgICAgICAgPSBuZXcgT2JqZWN0KCk7DQp2YXIgdW5kbyAgICAgICAgICA9IG5ldyBPYmplY3QoKTsNCnZhciB3ZWJTb2NrZXRzICAgID0gdHJ1ZTsNCnZhciBjbG9zZUxvZywgdmVyc2lvbiwgYWN0aXZlTWVudTsNCnZhciBjb2x1bW5Ub1NvcnQgID0gMA0KDQoNCmlmICh3aW5kb3cuV2ViU29ja2V0ID09PSB1bmRlZmluZWQpIHsNCiAgYWxlcnQoIllvdXIgYnJvd3NlciBkb2VzIG5vdCBzdXBwb3J0IFdlYlNvY2tldHMiKTsNCiAgd2ViU29ja2V0cyA9IGZhbHNlOw0KfSANCg0KZnVuY3Rpb24gcGFnZVJlYWR5KCkgew0KICB2YXIgZGF0YSA9IG5ldyBPYmplY3QoKTsNCiAgZGF0YVsiY21kIl0gPSAiZ2V0U2VydmVyQ29uZmlnIjsNCiAgeFRlVmUoZGF0YSk7DQogIC8vc2hvd0xvYWRpbmdTY3JlZW4oZmFsc2UpOw0KDQogIHZhciByZXNpemVIYW5kbGUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgib3BlblN0cmVhbXMiKTsNCiAgdmFyIGJveCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJteVN0cmVhbXNCb3giKTsNCiAgcmVzaXplSGFuZGxlLmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlZG93biIsIGluaXRpYWxpc2VSZXNpemUsIGZhbHNlKTsNCg0KICBmdW5jdGlvbiBpbml0aWFsaXNlUmVzaXplKGUpIHsNCiAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigibW91c2Vtb3ZlIiwgc3RhcnRSZXNpemluZywgZmFsc2UpOw0KICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJtb3VzZXVwIiwgc3RvcFJlc2l6aW5nLCBmYWxzZSk7DQogIH0NCg0KICBmdW5jdGlvbiBzdGFydFJlc2l6aW5nKGUpIHsNCiAgICBib3guc3R5bGUuaGVpZ2h0ID0gKGUuY2xpZW50WSAtIGJveC5vZmZzZXRUb3ApICsgInB4IjsNCiAgICAgIA0KICAgIHZhciBlbG0gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYWxsU3RyZWFtcyIpOw0KICAgIGlmIChlLmNsaWVudFkgPiAxMjApIHsNCiAgICAgIGVsbS5jbGFzc05hbWUgPSAidmlzaWJsZSI7IA0KICAgIH0gZWxzZSB7DQogICAgICBlbG0uY2xhc3NOYW1lID0gIm5vdFZpc2libGUiOyANCiAgICB9DQoNCiAgICBjYWxjdWxhdGVXcmFwcGVySGVpZ2h0KCk7DQoNCiAgfQ0KICBmdW5jdGlvbiBzdG9wUmVzaXppbmcoZSkgew0KICAgICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ21vdXNlbW92ZScsIHN0YXJ0UmVzaXppbmcsIGZhbHNlKTsNCiAgICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCdtb3VzZXVwJywgc3RvcFJlc2l6aW5nLCBmYWxzZSk7DQogICAgICBjYWxjdWxhdGVXcmFwcGVySGVpZ2h0KCk7DQogIH0NCg0KICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigicmVzaXplIiwgZnVuY3Rpb24oKXsNCiAgICBjYWxjdWxhdGVXcmFwcGVySGVpZ2h0KCk7DQogIH0sIHRydWUpOw0KfQ0KDQoNCmZ1bmN0aW9uIGdldE9iaktleXMob2JqKSB7DQogIHZhciBrZXlzID0gbmV3IEFycmF5KCk7DQoNCiAgZm9yICh2YXIgaSBpbiBvYmopIHsNCiAgICBpZiAob2JqLmhhc093blByb3BlcnR5KGkpKSB7DQogICAgICBrZXlzLnB1c2goaSk7DQogICAgfQ0KICB9DQoNCiAgcmV0dXJuIGtleXM7DQp9DQoNCg0KZnVuY3Rpb24gY3JlYXRlRWxlbWVudChpdGVtKSB7DQogIC8vY29uc29sZS5sb2coaXRlbSk7DQogIHZhciBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChpdGVtWyJfZWxlbWVudCJdKTsNCiAgaWYgKGl0ZW0uaGFzT3duUHJvcGVydHkoIl90ZXh0IikpIHsNCiAgICAvL2VsZW1lbnQuaW5uZXJIVE1MID0gIjxwPiIgKyBpdGVtWyJfdGV4dCJdICsgIjwvcD4iOw0KICAgIGVsZW1lbnQuaW5uZXJIVE1MID0gaXRlbVsiX3RleHQiXTsNCiAgfQ0KDQogIHZhciBrZXlzID0gZ2V0T2JqS2V5cyhpdGVtKTsNCiAgZm9yICh2YXIgaSA9IDA7IGkgPCBrZXlzLmxlbmd0aDsgaSsrKSB7DQogICAgaWYgKGtleXNbaV0uY2hhckF0KDApICE9ICJfIikgew0KICAgICAgLy9jb25zb2xlLmxvZyhrZXlzW2ldLCBpdGVtW2tleXNbaV1dKTsNCiAgICAgIGVsZW1lbnQuc2V0QXR0cmlidXRlKGtleXNbaV0sIGl0ZW1ba2V5c1tpXV0pOw0KICAgIH0NCiAgfQ0KDQogIC8vY29uc29sZS5sb2coZWxlbWVudCk7DQogIHJldHVybiBlbGVtZW50Ow0KfQ0KDQpmdW5jdGlvbiBtb2RpZnlPcHRpb24oaWQsIG9wdGlvbnMsIHZhbHVlcykgew0KICB2YXIgc2VsZWN0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpOw0KICBzZWxlY3QuaW5uZXJIVE1MID0gIiI7DQoNCiAgZm9yICh2YXIgaSA9IDA7IGkgPCBvcHRpb25zLmxlbmd0aDsgaSsrKSB7DQogIA0KICAgIHZhciBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiT1BUSU9OIikNCiAgDQogICAgZWxlbWVudC52YWx1ZSA9IHZhbHVlc1tpXTsNCiAgICBlbGVtZW50LmlubmVySFRNTCA9IG9wdGlvbnNbaV07DQoNCiAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkuYXBwZW5kQ2hpbGQoZWxlbWVudCk7DQogIA0KICB9DQoNCn0NCg0KDQpmdW5jdGlvbiBzdGFydFdlYlNvY2tldCgpIHsNCiAgaWYgKHdlYlNvY2tldHMgPT0gZmFsc2UpIHsNCiAgICByZXR1cm47DQogIH0NCg0KICAvL3dzLnNlbmQoJ3siY21kIjogImdldFNlcnZlckNvbmZpZzEifScpOw0KDQp9DQoNCmZ1bmN0aW9uIGNoZWNrRXJyKG9iaikgew0KICAvL2FsZXJ0KG9ialsiZXJyIl0pDQogIC8vc2NyZWVuTG9nKG9ialsiZXJyIl0sICJlcnJvciIpDQogIGNvbnNvbGUubG9nKG9iaik7DQogIHZhciBuZXdPYmogPSBuZXcgT2JqZWN0KCk7DQogIHZhciBuZXdFcnIgPSBuZXcgT2JqZWN0KCk7DQogIG5ld0Vyclsia2V5Il0gICA9ICJFcnJvciI7DQogIG5ld0VyclsidmFsdWUiXSA9IG9ialsiZXJyIl07DQogIG5ld0VyclsidHlwZSJdICA9ICJlcnJvciI7DQoNCiAgbmV3T2JqWzBdID0gbmV3RXJyDQogIHNob3dMb2cobmV3T2JqKTsNCiAgcmV0dXJuDQp9DQoNCmZ1bmN0aW9uIHNjcmVlbkxvZyhtc2csIG1zZ1R5cGUsIHNob3cpIHsNCiAgcmV0dXJuDQogIGNsZWFyVGltZW91dChjbG9zZUxvZykNCiAgdmFyIGRpdiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzY3JlZW5Mb2ciKTsNCiAgdmFyIG5ld01zZyA9IG5ldyBPYmplY3QoKTsNCiAgDQogIG5ld01zZ1siX2VsZW1lbnQiXSA9ICJQIjsNCiAgDQogIHN3aXRjaChtc2dUeXBlKSB7DQogICAgY2FzZSAiZXJyb3IiOiAgIG5ld01zZ1siY2xhc3MiXSA9ICJlcnJvck1zZyI7IGJyZWFrOw0KICAgIGNhc2UgIndhcm5pbmciOiBuZXdNc2dbImNsYXNzIl0gPSAid2FybmluZ01zZyI7IGJyZWFrOw0KICAgIC8vZGVmYXVsdDogICAgICBuZXdNc2dbImNsYXNzIl0gPSAiaW5mb01zZyINCiAgfQ0KDQogIG5ld01zZ1siX3RleHQiXSA9IG1zZzsNCg0KICBkaXYuYXBwZW5kQ2hpbGQoY3JlYXRlRWxlbWVudChuZXdNc2cpKTsNCg0KICBkaXYuc2Nyb2xsVG9wID0gZGl2LnNjcm9sbEhlaWdodDsNCg0KICBpZiAoc2hvdyA9PSBmYWxzZSkgew0KICAgIHJldHVybjsNCiAgfQ0KDQogIGRpdi5jbGFzc05hbWUgPSAiIg0KICBjbG9zZUxvZyA9IHNldFRpbWVvdXQoY2xvc2VTY3JlZW5Mb2csIDEwMDAwKTsNCn0NCg0KDQpmdW5jdGlvbiBjbG9zZVNjcmVlbkxvZygpIHsNCiAgdmFyIGRpdiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzY3JlZW5Mb2ciKTsNCiAgZGl2LmNsYXNzTmFtZSA9ICJzY3JlZW5Mb2dIaWRkZW4iDQp9DQoNCmZ1bmN0aW9uIHNob3dTY3JlZW5Mb2coKSB7DQogIGNsZWFyVGltZW91dChjbG9zZUxvZykNCiAgdmFyIGRpdiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzY3JlZW5Mb2ciKTsNCiAgdmFyIGN1cnJlbnRDbGFzcyA9IGRpdi5jbGFzc05hbWU7DQogIGRpdi5jbGFzc05hbWUgPSAic2NyZWVuTG9nSGlkZGVuIg0KDQogIHN3aXRjaChjdXJyZW50Q2xhc3MpIHsNCiAgICBjYXNlICJzY3JlZW5Mb2dIaWRkZW4iOiAgZGl2LmNsYXNzTmFtZSA9ICIiOyBicmVhazsgDQogICAgY2FzZSAiIjogZGl2LmNsYXNzTmFtZSA9ICJzY3JlZW5Mb2dIaWRkZW4iOyBicmVhazsNCiAgfQ0KfQ0KDQpmdW5jdGlvbiBzaG93TG9hZGluZ1NjcmVlbihlbG0pIHsNCiAgdmFyIGRpdiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJsb2FkaW5nIik7DQogIHN3aXRjaChlbG0pIHsNCiAgICBjYXNlIHRydWU6IGRpdi5jbGFzc05hbWUgPSAiYmxvY2siOyBicmVhazsNCiAgICBjYXNlIGZhbHNlOiBkaXYuY2xhc3NOYW1lID0gIm5vbmUiOyBicmVhazsNCg0KICAgIC8qDQogICAgY2FzZSB0cnVlOiBkaXYuc3R5bGUuZGlzcGxheSA9ICJibG9jayI7IGJyZWFrOw0KICAgIGNhc2UgZmFsc2U6IGRpdi5zdHlsZS5kaXNwbGF5ID0gIm5vbmUiOyBicmVhazsNCiAgICAqLw0KICB9DQp9DQoNCmZ1bmN0aW9uIGNyZWF0ZUNsaW50SW5mbyhvYmopIHsNCiAgLy9jb25zb2xlLmxvZyhvYmopOw0KICB2YXIga2V5cyA9IGdldE9iaktleXMob2JqKTsNCiAgZm9yICh2YXIgaSA9IDA7IGkgPCBrZXlzLmxlbmd0aDsgaSsrKSB7DQogICAgaWYoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoa2V5c1tpXSkpew0KICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoa2V5c1tpXSkuaW5uZXJIVE1MID0gb2JqW2tleXNbaV1dOw0KICAgIH0NCiAgfQ0KICAvL2RvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjbGllbnRJbmZvIikuY2xhc3NOYW1lID0gInZpc2libGUiOw0KfQ0KDQpmdW5jdGlvbiBzaG93RWxlbWVudChlbG1JRCwgdHlwZSkgew0KICBzd2l0Y2godHlwZSkgew0KICAgIGNhc2UgdHJ1ZTogIGNzc0NsYXNzID0gImJsb2NrIjsgYnJlYWs7DQogICAgY2FzZSBmYWxzZTogY3NzQ2xhc3MgPSAibm9uZSI7IGJyZWFrOw0KICB9DQoNCiAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoZWxtSUQpLmNsYXNzTmFtZSA9IGNzc0NsYXNzOw0KfSANCg0KZnVuY3Rpb24gc2hvd1BvcFVwRWxlbWVudChlbG0pIHsNCiAgdmFyIGFsbEVsZW1lbnRzID0gbmV3IEFycmF5KCJkZWxldGVVc2VyRGV0YWlsIiwgIm1hcHBpbmctZGV0YWlsIiwgInVzZXItZGV0YWlsIiwgImZpbGUtZGV0YWlsIik7DQoNCiAgZm9yICh2YXIgaSA9IDA7IGkgPCBhbGxFbGVtZW50cy5sZW5ndGg7IGkrKykgew0KICAgIHNob3dFbGVtZW50KGFsbEVsZW1lbnRzW2ldLCBmYWxzZSkNCiAgfQ0KDQogIHNob3dFbGVtZW50KGVsbSwgdHJ1ZSkNCg0KICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7IA0KICAgIHNob3dFbGVtZW50KCJwb3B1cCIsIHRydWUpOw0KICB9LCAxMCk7DQp9DQoNCiAgLy8gYm9keS4uLg0KDQpmdW5jdGlvbiBzaG93U3RyZWFtcyhmb3JjZSkgew0KDQogIHZhciBlbG1Cb3ggPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibXlTdHJlYW1zQm94Iik7DQogIHZhciBlbG0gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYWxsU3RyZWFtcyIpOw0KICAvL2NvbnNvbGUubG9nKGVsbSk7DQogIHNob3cgPSBlbG0uY2xhc3NOYW1lOw0KDQogIHN3aXRjaChmb3JjZSkgew0KICAgIGNhc2UgdHJ1ZTogc2hvdyA9ICJub3RWaXNpYmxlIjsgYnJlYWs7DQogICAgY2FzZSBmYWxzZTogc2hvdyA9ICJ2aXNpYmxlIjsgYnJlYWs7DQogIH0NCg0KICBzd2l0Y2goc2hvdykgew0KICAgIGNhc2UgIm5vdFZpc2libGUiOiANCiAgICAgIGVsbS5jbGFzc05hbWUgPSAidmlzaWJsZSI7IA0KICAgICAgZWxtQm94LnN0eWxlLmhlaWdodCA9ICIxMDBweCI7DQogICAgICBicmVhazsNCg0KICAgIGRlZmF1bHQ6IA0KICAgICAgZWxtLmNsYXNzTmFtZSA9ICJub3RWaXNpYmxlIjsgDQogICAgICBlbG1Cb3guc3R5bGUuaGVpZ2h0ID0gIjIwcHgiOw0KICAgICAgYnJlYWs7DQogIH0NCg0KICB2YXIgc2hvdyA9IGVsbS5zdHlsZS5kaXNwbGF5OyB7DQogICAgLy9jb25zb2xlLmxvZyhlbG0uc3R5bGUuZGlzcGxheSk7DQogIH0NCiAgDQogIGNhbGN1bGF0ZVdyYXBwZXJIZWlnaHQoKTsNCn0NCg0KZnVuY3Rpb24geHRldmVCYWNrdXAoKSB7DQogIGNvbnNvbGUubG9nKCJ4dGV2ZUJhY2t1cCIpOw0KICB2YXIgZGF0YSA9IG5ldyBPYmplY3QoKTsNCiAgZGF0YVsiY21kIl0gPSAieHRldmVCYWNrdXAiOw0KDQogIHhUZVZlKGRhdGEpOw0KfQ0KDQpmdW5jdGlvbiB4dGV2ZVJlc3RvcmUoZWxtKSB7DQogIHZhciByZXN0b3JlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiSU5QVVQiKTsNCiAgcmVzdG9yZS5zZXRBdHRyaWJ1dGUoInR5cGUiLCAiZmlsZSIpOw0KICByZXN0b3JlLnNldEF0dHJpYnV0ZSgiY2xhc3MiLCAibm90VmlzaWJsZSIpOw0KICByZXN0b3JlLnNldEF0dHJpYnV0ZSgibmFtZSIsICIiKTsNCiAgcmVzdG9yZS5pZCA9ICJ1cGxvYWQiOw0KDQogIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQocmVzdG9yZSk7DQogIHJlc3RvcmUuY2xpY2soKTsNCg0KICByZXN0b3JlLm9uY2hhbmdlID0gZnVuY3Rpb24oKSB7DQogICAgdmFyIGZpbGVuYW1lID0gcmVzdG9yZS5maWxlc1swXS5uYW1lDQogICAgLy9jb25zb2xlLmxvZyhyZXN0b3JlLnNyY0VsZW1lbnQuZmlsZXNbMF0pOw0KICAgIHZhciBjaGVjayA9IGNvbmZpcm0oIkZpbGU6ICIgKyBmaWxlbmFtZSArICJcbkFsbCBkYXRhIHdpbGwgYmUgcmVwbGFjZWQgd2l0aCB0aG9zZSBmcm9tIHRoZSBiYWNrdXAuXG5TaG91bGQgdGhlIGZpbGVzIGJlIHJlc3RvcmVkPyIpOyANCiAgICBpZiAoY2hlY2sgPT0gdHJ1ZSkgew0KICAgICAgdmFyIHJlYWRlciAgPSBuZXcgRmlsZVJlYWRlcigpOw0KICAgICAgdmFyIGZpbGUgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCdpbnB1dFt0eXBlPWZpbGVdJykuZmlsZXNbMF07DQogICAgICBpZiAoZmlsZSkgew0KICAgICAgICByZWFkZXIucmVhZEFzRGF0YVVSTChmaWxlKTsNCiAgICAgICAgcmVhZGVyLm9ubG9hZCA9IGZ1bmN0aW9uKCkgew0KICAgICAgICAgIGNvbnNvbGUubG9nKHJlYWRlci5yZXN1bHQpOw0KICAgICAgICAgIHZhciBkYXRhID0gbmV3IE9iamVjdCgpOw0KICAgICAgICAgIGRhdGFbImNtZCJdICAgICA9ICJ4dGV2ZVJlc3RvcmUiDQogICAgICAgICAgZGF0YVsiYmFzZTY0Il0gID0gcmVhZGVyLnJlc3VsdA0KDQogICAgICAgICAgeFRlVmUoZGF0YSk7DQogICAgICAgICAgcmV0dXJuDQogICAgICAgIH07DQogICAgICB9IGVsc2Ugew0KICAgICAgICBhbGVydCgiRmlsZSBjb3VsZCBub3QgYmUgbG9hZGVkIikNCiAgICAgIH0NCiAgICB9DQogIH07DQp9DQoNCmZ1bmN0aW9uIGdldEJhc2U2NChmaWxlKSB7DQogICB2YXIgcmVhZGVyID0gbmV3IEZpbGVSZWFkZXIoKTsNCiAgIHJlYWRlci5yZWFkQXNEYXRhVVJMKGZpbGUpOw0KICAgcmVhZGVyLm9ubG9hZCA9IGZ1bmN0aW9uKCkgew0KICAgICBjb25zb2xlLmxvZyhyZWFkZXIucmVzdWx0KTsNCiAgIH07DQogICByZWFkZXIub25lcnJvciA9IGZ1bmN0aW9uKGVycm9yKSB7DQogICAgIGNvbnNvbGUubG9nKCdFcnJvcjogJywgZXJyb3IpOw0KICAgfTsNCn0NCg0KZnVuY3Rpb24gbG9nb3V0KCkgew0KICBkb2N1bWVudC5jb29raWUuc3BsaXQoJzsnKS5mb3JFYWNoKGZ1bmN0aW9uKGMpIHsNCiAgICBkb2N1bWVudC5jb29raWUgPSBjLnRyaW0oKS5zcGxpdCgnPScpWzBdICsgJz07JyArICdleHBpcmVzPVRodSwgMDEgSmFuIDE5NzAgMDA6MDA6MDAgVVRDOyc7DQogIH0pOw0KICBsb2NhdGlvbi5yZWxvYWQoKTsNCn0NCg0KZnVuY3Rpb24gZ2V0Q29va2llKG5hbWUpIHsNCiAgdmFyIHZhbHVlID0gIjsgIiArIGRvY3VtZW50LmNvb2tpZTsNCiAgdmFyIHBhcnRzID0gdmFsdWUuc3BsaXQoIjsgIiArIG5hbWUgKyAiPSIpOw0KICBpZiAocGFydHMubGVuZ3RoID09IDIpIHJldHVybiBwYXJ0cy5wb3AoKS5zcGxpdCgiOyIpLnNoaWZ0KCk7DQp9DQoNCmZ1bmN0aW9uIHNldENvb2tpZSh0b2tlbikgew0KICAvL2NvbnNvbGUubG9nKHRva2VuKTsNCiAgZG9jdW1lbnQuY29va2llID0gIlRva2VuPSIgKyB0b2tlbg0KfQ0KDQo=" + webUI["html/js/files.js"] = "ZnVuY3Rpb24gb3BlbkZpbGVzKGVsbSwgZmlsZVR5cGUpIHsNCiAgLy9kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic2V0dGluZ3MiKS5pbm5lckhUTUwgPSAiVGVzdCI7DQogIA0KICBjb2x1bW5Ub1NvcnQgPSAwOyANCiAgdmFyIG5ld0RpdiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzZXR0aW5ncyIpOw0KICANCiAgdmFyIG5ld0VudHJ5ID0gbmV3IE9iamVjdCgpOw0KICBuZXdFbnRyeVsiX2VsZW1lbnQiXSAgPSAiSFIiOw0KICBuZXdEaXYuYXBwZW5kQ2hpbGQoY3JlYXRlRWxlbWVudChuZXdFbnRyeSkpOw0KDQogIHZhciBuZXdFbnRyeSA9IG5ldyBPYmplY3QoKTsNCiAgbmV3RW50cnlbIl9lbGVtZW50Il0gID0gIklOUFVUIjsNCiAgbmV3RW50cnlbInR5cGUiXSA9ICJidXR0b24iOw0KICBuZXdFbnRyeVsiY2xhc3MiXSA9ICJidXR0b24iOw0KICBuZXdFbnRyeVsidmFsdWUiXSA9ICJOZXciOw0KICBuZXdFbnRyeVsib25jbGljayJdID0gJ2ZpbGVEZXRhaWwoIi0iLCAiJyArIGZpbGVUeXBlICsgJyIpJzsNCiAgbmV3RGl2LmFwcGVuZENoaWxkKGNyZWF0ZUVsZW1lbnQobmV3RW50cnkpKTsNCg0KICB2YXIgbmV3RW50cnkgPSBuZXcgT2JqZWN0KCk7DQogIG5ld0VudHJ5WyJfZWxlbWVudCJdICA9ICJJTlBVVCI7DQogIG5ld0VudHJ5WyJ0eXBlIl0gPSAiYnV0dG9uIjsNCiAgbmV3RW50cnlbImNsYXNzIl0gPSAiYnV0dG9uIjsNCiAgbmV3RW50cnlbInZhbHVlIl0gPSAiVXBkYXRlIjsNCiAgbmV3RW50cnlbIm9uY2xpY2siXSA9ICJmaWxlRGV0YWlsKDApIjsNCiAgLy9uZXdEaXYuYXBwZW5kQ2hpbGQoY3JlYXRlRWxlbWVudChuZXdFbnRyeSkpOw0KDQogIHZhciBkaXYgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic2V0dGluZ3MiKTsNCg0KICAgLy8gQnVpbGQgdGFibGUNCiAgdmFyIG5ld1RhYmxlID0gbmV3IE9iamVjdCgpOw0KICBuZXdUYWJsZVsiX2VsZW1lbnQiXSAgPSAiVEFCTEUiOw0KICBuZXdUYWJsZVsiaWQiXSAgICAgICAgPSAiaWRfbWFwcGluZyI7DQogIG5ld1RhYmxlWyJjbGFzcyJdICAgICA9ICJ0YWJsZS1tYXBwaW5nIjsNCiAgZGl2LmFwcGVuZENoaWxkKGNyZWF0ZUVsZW1lbnQobmV3VGFibGUpKTsNCg0KICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7IA0KICAgIGNyZWF0ZUZpbGVzVGFibGUoZmlsZVR5cGUpOyANCiAgfSwgMTApOw0KDQp9DQoNCmZ1bmN0aW9uIGNyZWF0ZUZpbGVzVGFibGUoZmlsZVR5cGUpIHsNCiAgdmFyIHRhYmxlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImlkX21hcHBpbmciKTsNCiAgdmFyIGF2YWlsYWJsZUZpbGVUeXBlcyA9IG5ldyBBcnJheSgpOw0KICANCiAgdGFibGUuaW5uZXJIVE1MID0gIiI7DQogIHZhciBuZXdUUiA9IG5ldyBPYmplY3QoKTsNCiAgbmV3VFJbIl9lbGVtZW50Il0gPSAiVFIiOw0KICBuZXdUUlsiY2xhc3MiXSAgICA9ICJ0YWJsZS1tYXBwaW5nLWhlYWRlciI7DQogIHRhYmxlLmFwcGVuZENoaWxkKGNyZWF0ZUVsZW1lbnQobmV3VFIpKTsNCg0KICB2YXIgdHIgPSB0YWJsZS5sYXN0Q2hpbGQ7DQoNCiAgc3dpdGNoKGZpbGVUeXBlKSB7DQogICAgY2FzZSAieG1sdHYiOiANCiAgICAgIGF2YWlsYWJsZUZpbGVUeXBlcyA9IG5ldyBBcnJheSgieG1sdHYiKTsgDQogICAgICB2YXIgdHJIZWFkbGluZXMgPSBuZXcgQXJyYXkoIkd1aWRlIiwgIkxhc3QgVXBkYXRlIiwgIkF2YWlsYWJpbGl0eSAlIiwgIkNoYW5uZWxzIiwgIlByb2dyYW1zIikNCiAgICAgIHZhciBjb21wYXRpYmlsaXR5S2V5cyA9IG5ldyBBcnJheSgieG1sdHYuY2hhbm5lbHMiLCAieG1sdHYucHJvZ3JhbXMiKQ0KICAgICAgYnJlYWs7DQoNCiAgICBjYXNlICJtM3UiOg0KICAgICAgYXZhaWxhYmxlRmlsZVR5cGVzID0gbmV3IEFycmF5KCJtM3UiLCAiaGRociIpOyANCiAgICAgIHZhciB0ckhlYWRsaW5lcyA9IG5ldyBBcnJheSgiUGxheWxpc3QiLCAiTGFzdCBVcGRhdGUiLCAiQXZhaWxhYmlsaXR5ICUiLCAiVHlwZSIsICJTdHJlYW1zIiwgImdyb3VwLXRpdGxlICUiLCAidHZnLWlkICUiLCAiVW5pcXVlIElEICUiKTsNCiAgICAgIHZhciBjb21wYXRpYmlsaXR5S2V5cyA9IG5ldyBBcnJheSgic3RyZWFtcyIsICJncm91cC50aXRsZSIsICJ0dmcuaWQiLCAic3RyZWFtLmlkIik7DQogICAgICBicmVhazsNCiAgfQ0KDQogIGZvciAodmFyIGkgPSAwOyBpIDwgdHJIZWFkbGluZXMubGVuZ3RoOyBpKyspIHsNCiAgICB2YXIgbmV3VEQgPSBuZXcgT2JqZWN0KCk7DQogICAgbmV3VERbIl9lbGVtZW50Il0gPSAiVEQiOw0KICAgIG5ld1REWyJfdGV4dCJdICAgID0gdHJIZWFkbGluZXNbaV07DQogICAgdHIuYXBwZW5kQ2hpbGQoY3JlYXRlRWxlbWVudChuZXdURCkpOw0KICB9DQogIA0KICBmb3IgKHZhciBpID0gMDsgaSA8IGF2YWlsYWJsZUZpbGVUeXBlcy5sZW5ndGg7IGkrKykgew0KICAgIA0KICAgIHZhciBmaWxlVHlwZSA9IGF2YWlsYWJsZUZpbGVUeXBlc1tpXQ0KDQogICAgdmFyIGRhdGEgPSBjb25maWdbImZpbGVzIl1bZmlsZVR5cGVdOw0KICAgIA0KICAgIHZhciBhbGxGaWxlcyA9IGdldE9iaktleXMoZGF0YSkNCiAgDQogICAgZm9yICh2YXIgZiA9IDA7IGYgPCBhbGxGaWxlcy5sZW5ndGg7IGYrKykgew0KICAgICAgdmFyIGVsbSAgICAgICAgICAgPSBkYXRhW2FsbEZpbGVzW2ZdXTsNCiAgICAgIHZhciB0YWJsZSAgICAgICAgID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImlkX21hcHBpbmciKTsNCiAgICAgIHZhciBmaWxlSUQgICAgICAgID0gZWxtWyJpZC5wcm92aWRlciJdOw0KICAgICAgdmFyIG5hbWUgICAgICAgICAgPSBlbG1bIm5hbWUiXTsNCiAgICAgIHZhciBsYXN0VXBkYXRlICAgID0gZWxtWyJsYXN0LnVwZGF0ZSJdOw0KICAgICAgdmFyIGF2YWlsYWJpbGl0eSAgPSBlbG1bInByb3ZpZGVyLmF2YWlsYWJpbGl0eSJdOw0KICAgICAgdmFyIHR5cGUgICAgICAgICAgPSBlbG1bInR5cGUiXS50b1VwcGVyQ2FzZSgpOw0KICAgICAgdmFyIGNvbXBhdGliaWxpdHkgPSBlbG1bImNvbXBhdGliaWxpdHkiXTsNCg0KICAgICAgLy8gQ3JlYXRlIFRSDQogICAgICB2YXIgbmV3VFIgPSBuZXcgT2JqZWN0KCk7DQogICAgICBuZXdUUlsiX2VsZW1lbnQiXSAgICAgICA9ICJUUiI7DQogICAgICBuZXdUUlsiY2xhc3MiXSAgICAgICAgICA9ICIiOw0KICAgICAgbmV3VFJbImlkIl0gICAgICAgICAgICAgPSBmaWxlSUQ7DQogICAgICBuZXdUUlsib25jbGljayJdICAgICAgICA9ICdqYXZhc2NyaXB0OiBmaWxlRGV0YWlsKCInICsgZmlsZUlEICsgJyIsIicgKyBmaWxlVHlwZSArICciKTsnOw0KICAgICAgdGFibGUuYXBwZW5kQ2hpbGQoY3JlYXRlRWxlbWVudChuZXdUUikpOw0KDQogICAgICB2YXIgdHIgPSB0YWJsZS5sYXN0Q2hpbGQ7DQoNCiAgICAgIC8vIENyZWF0ZSBmaWxlIG5hbWUgVEQNCiAgICAgIHZhciBuZXdURCA9IG5ldyBPYmplY3QoKTsNCiAgICAgIG5ld1REWyJfZWxlbWVudCJdID0gIlAiOw0KICAgICAgbmV3VERbIl90ZXh0Il0gICAgPSBuYW1lOw0KICAgICAgY3JlYXRlTmV3VEQobmV3VEQsIHRyKTsNCg0KICAgICAgLy8gQ3JlYXRlIGxhc3QgdXBkYXRlIFREDQogICAgICB2YXIgbmV3VEQgPSBuZXcgT2JqZWN0KCk7DQogICAgICBuZXdURFsiX2VsZW1lbnQiXSA9ICJQIjsNCiAgICAgIG5ld1REWyJfdGV4dCJdICAgID0gbGFzdFVwZGF0ZTsNCiAgICAgIGNyZWF0ZU5ld1REKG5ld1RELCB0cik7DQoNCiAgICAgIC8vIENyZWF0ZSBhdmFpbGFiaWxpdHkgVEQNCiAgICAgIHZhciBuZXdURCA9IG5ldyBPYmplY3QoKTsNCiAgICAgIG5ld1REWyJfZWxlbWVudCJdID0gIlAiOw0KICAgICAgbmV3VERbIl90ZXh0Il0gICAgPSBhdmFpbGFiaWxpdHk7DQogICAgICBjcmVhdGVOZXdURChuZXdURCwgdHIpOw0KDQogICAgICBpZiAoZmlsZVR5cGUgPT0gIm0zdSIgfHwgZmlsZVR5cGUgPT0gImhkaHIiKSB7DQoNCiAgICAgICAgLy8gQ3JlYXRlIFR5cGUgVEQNCiAgICAgICAgdmFyIG5ld1REID0gbmV3IE9iamVjdCgpOw0KICAgICAgICBuZXdURFsiX2VsZW1lbnQiXSA9ICJQIjsNCiAgICAgICAgbmV3VERbIl90ZXh0Il0gICAgPSB0eXBlOw0KICAgICAgICBjcmVhdGVOZXdURChuZXdURCwgdHIpOw0KICANCiAgICAgIH0NCiAgICAgIA0KICAgICAgLy8gQ3JlYXRlIGFsbCBjb21wYXRpYmlsaXR5IFREcw0KDQogICAgICBmb3IgKHZhciBqID0gMDsgaiA8IGNvbXBhdGliaWxpdHlLZXlzLmxlbmd0aDsgaisrKSB7DQogICAgICAgIHZhciBuZXdURCA9IG5ldyBPYmplY3QoKTsNCiAgICAgICAgbmV3VERbIl9lbGVtZW50Il0gPSAiUCI7DQogICAgICAgIG5ld1REWyJfdGV4dCJdICAgID0gY29tcGF0aWJpbGl0eVtjb21wYXRpYmlsaXR5S2V5c1tqXV07DQogICAgICAgIGNyZWF0ZU5ld1REKG5ld1RELCB0cik7DQogICAgICB9DQoNCiAgICB9DQoNCiAgfQ0KICANCiAgDQogIHNvcnRUYWJsZSgwKQ0KDQogIC8vIHVzYWdlIEluZm8gIA0KICB2YXIgZGl2ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNldHRpbmdzIik7DQogIHN3aXRjaChtZW51W2FjdGl2ZU1lbnUuaWRdLmhhc093blByb3BlcnR5KCJfdXNhZ2UiKSkgew0KICAgIGNhc2UgdHJ1ZTogDQogICAgICB2YXIgdXNhZ2VJdGVtID0gbmV3IE9iamVjdCgpOw0KICAgICAgdXNhZ2VJdGVtWyJfZWxlbWVudCJdID0gIlBSRSINCiAgICAgIHVzYWdlSXRlbVsiX3RleHQiXSAgICA9IG1lbnVbYWN0aXZlTWVudS5pZF1bIl91c2FnZSJdOw0KDQogICAgICB2YXIgbmV3SFIgPSBuZXcgT2JqZWN0KCk7DQogICAgICBuZXdIUlsiX2VsZW1lbnQiXSA9ICJIUiINCiAgICAgIGRpdi5hcHBlbmRDaGlsZChjcmVhdGVFbGVtZW50KG5ld0hSKSk7DQogICAgICBkaXYuYXBwZW5kQ2hpbGQoY3JlYXRlRWxlbWVudCh1c2FnZUl0ZW0pKTsNCiAgICAgIGJyZWFrOw0KICB9DQoNCiAgY2FsY3VsYXRlV3JhcHBlckhlaWdodCgpOw0KICByZXR1cm47DQp9DQoNCg0KZnVuY3Rpb24gZmlsZURldGFpbChmaWxlSUQsIGZpbGVUeXBlKSB7DQoNCiAgb3B0aW9uc1RleHQgID0gbmV3IEFycmF5KCJNM1UiLCAiSERIb21lUnVuIC0gW0V4cGVyaW1lbnRhbF0iKQ0KICBvcHRpb25zVmFsdWUgPSBuZXcgQXJyYXkoIm0zdSIsICJoZGhyIikNCg0KICBzd2l0Y2ggKGZpbGVUeXBlKSB7DQogICAgDQogICAgY2FzZSAibTN1IjogDQogICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibmFtZSIpLnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAiUGxheWxpc3QgbmFtZSIpOyANCiAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJkZXNjcmlwdGlvbiIpLnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAiRGVzY3JpcHRpb24gb2YgdGhpcyBwbGF5bGlzdCIpOyANCiAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJmaWxlLWRldGFpbC1oZWFkbGluZSIpLmlubmVySFRNTCA9ICJNM1UgUGxheWxpc3QiOyANCiAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJmaWxlLXBhdGgiKS5pbm5lckhUTUwgPSAiTTNVIEZpbGU6IjsgDQogICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZmlsZS5zb3VyY2UiKS5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgIkxvY2FsIG9yIHJlbW90ZSIpOw0KICAgICAgYnJlYWs7DQoNCiAgICBjYXNlICJoZGhyIjogDQogICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibmFtZSIpLnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAiSERIb21lUnVuIG5hbWUiKTsgDQogICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZGVzY3JpcHRpb24iKS5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgIkRlc2NyaXB0aW9uIG9mIHRoaXMgSERIb21lUnVuIHR1bmVyIik7IA0KICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImZpbGUtZGV0YWlsLWhlYWRsaW5lIikuaW5uZXJIVE1MID0gIkhESG9tZVJ1biI7IA0KICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImZpbGUtcGF0aCIpLmlubmVySFRNTCA9ICJIREhvbWVSdW4gSVA6IjsgDQogICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZmlsZS5zb3VyY2UiKS5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgIklQIGFkZHJlc3MgYW5kIHBvcnQgb2YgdGhlIHR1bmVyICgxOTIuMTY4LjEuMTA6NTAwNCkiKTsNCiAgICAgIGJyZWFrOw0KICAgIA0KICAgIGNhc2UgInhtbHR2IjogDQogICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibmFtZSIpLnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAiWE1MVFYgbmFtZSIpOyANCiAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJkZXNjcmlwdGlvbiIpLnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAiRGVzY3JpcHRpb24gb2YgdGhpcyBYTUxUViBmaWxlIik7IA0KICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImZpbGUtZGV0YWlsLWhlYWRsaW5lIikuaW5uZXJIVE1MID0gIlhNTFRWIEZpbGUiOyANCiAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJmaWxlLXBhdGgiKS5pbm5lckhUTUwgPSAiWE1MVFYgRmlsZToiOw0KICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImZpbGUuc291cmNlIikuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJMb2NhbCBvciByZW1vdGUiKTsNCg0KICAgICAgb3B0aW9uc1RleHQgID0gbmV3IEFycmF5KCJYTUxUViIpDQogICAgICBvcHRpb25zVmFsdWUgPSBuZXcgQXJyYXkoInhtbHR2IikNCiAgICAgIGJyZWFrOw0KICB9DQoNCiAgbW9kaWZ5T3B0aW9uKCJ0eXBlIiwgb3B0aW9uc1RleHQsIG9wdGlvbnNWYWx1ZSkNCiAgDQogIHNob3dQb3BVcEVsZW1lbnQoJ2ZpbGUtZGV0YWlsJyk7DQoNCiAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNhdmVGaWxlRGV0YWlsIikuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IHNhdmVGaWxlRGV0YWlsKCInICsgZmlsZUlEICsgJyIsIicgKyBmaWxlVHlwZSArICciLCBmYWxzZSknKTsNCiAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInVwZGF0ZUZpbGVEZXRhaWwiKS5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogdXBkYXRlRmlsZSgiJyArIGZpbGVJRCArICciLCInICsgZmlsZVR5cGUgKyAnIiwgZmFsc2UpJyk7DQogIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJkZWxldGVGaWxlRGV0YWlsIikuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IHNhdmVGaWxlRGV0YWlsKCInICsgZmlsZUlEICsgJyIsIicgKyBmaWxlVHlwZSArICciLCB0cnVlKScpOw0KDQogIHZhciBkYXRhID0gbmV3IE9iamVjdCgpOw0KDQogIHN3aXRjaChmaWxlSUQpIHsNCg0KICAgIGNhc2UgIi0iOiAvLyBOZXcgZmlsZQ0KICAgICAgZGF0YVsibmFtZSJdICAgICAgICA9ICIiOw0KICAgICAgZGF0YVsiZGVzY3JpcHRpb24iXSA9ICIiOw0KICAgICAgZGF0YVsiZmlsZS5zb3VyY2UiXSA9ICIiOw0KICAgICAgZGF0YVsidHlwZSJdID0gZmlsZVR5cGU7DQogICAgICANCiAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJkZWxldGVGaWxlRGV0YWlsIikuY2xhc3NOYW1lID0gImRlbGV0ZSI7DQogICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidHlwZSIpLnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiY2hhbmdlRmlsZVR5cGUodGhpcyk7IikNCiAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0eXBlIikuc2V0QXR0cmlidXRlKCJkYXRhLWlkIiwgZmlsZUlEKQ0KICAgICAgDQogICAgICBzaG93RWxlbWVudCgiZGVsZXRlRmlsZURldGFpbCIsIGZhbHNlKTsNCiAgICAgIHNob3dFbGVtZW50KCJ1cGRhdGVGaWxlRGV0YWlsIiwgZmFsc2UpOw0KICAgICAgDQogICAgICBpZiAoZmlsZVR5cGUgPT0gInhtbHR2Iikgew0KICAgICAgICBzaG93RWxlbWVudCgidHlwZSIsIGZhbHNlKTsNCiAgICAgICAgc2hvd0VsZW1lbnQoImZpbGUtdHlwZSIsIGZhbHNlKTsNCiAgICAgIH0gZWxzZSB7DQogICAgICAgIHNob3dFbGVtZW50KCJ0eXBlIiwgdHJ1ZSk7DQogICAgICAgIHNob3dFbGVtZW50KCJmaWxlLXR5cGUiLCB0cnVlKTsNCiAgICAgIH0NCiAgICAgIA0KICAgICAgYnJlYWs7DQoNCiAgICBkZWZhdWx0OiANCiAgICAgIGRhdGEgPSBjb25maWdbImZpbGVzIl1bZmlsZVR5cGVdW2ZpbGVJRF07DQogICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZGVsZXRlRmlsZURldGFpbCIpLmNsYXNzTmFtZSA9ICJkZWxldGUiOw0KICAgICAgDQogICAgICBzaG93RWxlbWVudCgidXBkYXRlRmlsZURldGFpbCIsIHRydWUpOw0KICAgICAgc2hvd0VsZW1lbnQoInR5cGUiLCBmYWxzZSk7DQogICAgICBzaG93RWxlbWVudCgiZmlsZS10eXBlIiwgZmFsc2UpOw0KICAgICAgDQogICAgICBicmVhazsNCg0KICB9DQoNCiAgdmFyIGtleXMgPSBnZXRPYmpLZXlzKGRhdGEpOw0KICANCiAgZm9yICh2YXIgaSA9IDA7IGkgPCBrZXlzLmxlbmd0aDsgaSsrKSB7DQoNCiAgICBpZihkb2N1bWVudC5nZXRFbGVtZW50QnlJZChrZXlzW2ldKSl7DQogICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChrZXlzW2ldKS52YWx1ZSA9IGRhdGFba2V5c1tpXV07DQogICAgfSANCg0KDQogIH0NCg0KfQ0KDQpmdW5jdGlvbiBjaGFuZ2VGaWxlVHlwZShlbG0pIHsNCg0KICB2YXIgZmlsZUlEID0gZWxtLmdldEF0dHJpYnV0ZSgiZGF0YS1pZCIpOw0KICB2YXIgZmlsZVR5cGUgPSBlbG0ub3B0aW9uc1tlbG0uc2VsZWN0ZWRJbmRleF0udmFsdWU7DQogIA0KICBmaWxlRGV0YWlsKGZpbGVJRCwgZmlsZVR5cGUpDQoNCn0NCg0KDQpmdW5jdGlvbiBzYXZlRmlsZURldGFpbChmaWxlSUQsIGZpbGVUeXBlLCBkZWxldGVGaWxlKSB7DQoNCiAgaWYgKGZpbGVJRCA9PSB1bmRlZmluZWQpIHsNCiAgICBhbGVydCgiSUQgaXMgbWlzc2luZyEhISIpOw0KICAgIHJldHVybiANCiAgfQ0KDQogIHZhciBpbnB1dHMgICAgICA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJmaWxlLWRldGFpbCIpLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJJTlBVVCIpOw0KICB2YXIgc2VsZWN0cyAgICAgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZmlsZS1kZXRhaWwiKS5nZXRFbGVtZW50c0J5VGFnTmFtZSgiU0VMRUNUIik7DQogIHZhciBuZXdGaWxlRGF0YSA9IG5ldyBPYmplY3QoKTsNCiAgdmFyIGRhdGEgICAgICAgID0gbmV3IE9iamVjdCgpOw0KDQogIGZvciAodmFyIGkgPSAwOyBpIDwgaW5wdXRzLmxlbmd0aDsgaSsrKSB7DQogICAgc3dpdGNoKGlucHV0c1tpXS50eXBlKSB7DQogICAgICBjYXNlICJ0ZXh0IjogbmV3RmlsZURhdGFbaW5wdXRzW2ldLm5hbWVdID0gaW5wdXRzW2ldLnZhbHVlOyBicmVhazsNCiAgICB9DQogIH0NCg0KICBmb3IgKHZhciBpID0gMDsgaSA8IHNlbGVjdHMubGVuZ3RoOyBpKyspIHsNCiAgICBuZXdGaWxlRGF0YVtzZWxlY3RzW2ldLmlkXSA9IHNlbGVjdHNbaV0ub3B0aW9uc1tzZWxlY3RzW2ldLnNlbGVjdGVkSW5kZXhdLnZhbHVlOw0KICB9DQoNCiAgaWYgKGRlbGV0ZUZpbGUgPT0gdHJ1ZSkgew0KICAgIHN3aXRjaChmaWxlVHlwZSkgew0KICAgICAgY2FzZSAibTN1IjogICB2YXIgYWxlcnRUZXh0ID0gIkRlbGV0ZSB0aGlzIHBsYXlsaXN0PyI7IGJyZWFrOw0KICAgICAgY2FzZSAiaGRociI6IHZhciBhbGVydFRleHQgPSAiRGVsZXRlIHRoaXMgSERIb21lUnVuIHR1bmVyPyI7IGJyZWFrOw0KICAgICAgY2FzZSAieG1sdHYiOiB2YXIgYWxlcnRUZXh0ID0gIkRlbGV0ZSB0aGlzIFhNTFRWIGZpbGU/IjsgYnJlYWs7DQogICAgfQ0KDQogICAgaWYgKGNvbmZpcm0oYWxlcnRUZXh0KSkgew0KICAgICAgbmV3RmlsZURhdGFbImRlbGV0ZSJdID0gdHJ1ZQ0KICAgICAgZGF0YSA9IGJ1aWxkRmlsZXNPYmooZmlsZVR5cGUsIGZpbGVJRCwgbmV3RmlsZURhdGEpOw0KICAgICAgY29uc29sZS5sb2coZGF0YSk7DQogICAgICANCiAgICB9IGVsc2Ugew0KICAgICAgc2hvd0VsZW1lbnQoInBvcHVwIiwgZmFsc2UpOw0KICAgICAgcmV0dXJuDQogICAgDQogICAgfQ0KDQogIH0gZWxzZSB7DQogIA0KICAgIHN3aXRjaChjb25maWdbImZpbGVzIl1bZmlsZVR5cGVdLmhhc093blByb3BlcnR5KGZpbGVJRCkpIHsNCg0KICAgICAgY2FzZSB0cnVlOiANCiAgICAgICAgZGF0YSA9IGNvbmZpZ1siZmlsZXMiXVtmaWxlVHlwZV1bZmlsZUlEXTsgDQogICAgICAgIGlmIChkYXRhWyJmaWxlLnNvdXJjZSJdICE9IG5ld0ZpbGVEYXRhWyJmaWxlLnNvdXJjZSJdKSB7DQogICAgICAgICAgZGF0YVsidXBkYXRlIl0gPSB0cnVlDQogICAgICAgIH0gZWxzZSB7DQogICAgICAgICAgZGF0YVsidXBkYXRlUGxheWxpc3ROYW1lIl0gPSB0cnVlOw0KICAgICAgICB9DQogICAgICAgIGJyZWFrOw0KICAgICAgDQogICAgICBjYXNlIGZhbHNlOiANCiAgICAgICAgbmV3RmlsZURhdGFbIm5ldyJdID0gdHJ1ZTsNCiAgICAgICAgZGF0YSA9IGJ1aWxkRmlsZXNPYmooZmlsZVR5cGUsIGZpbGVJRCwgbmV3RmlsZURhdGEpOw0KICAgICAgICBicmVhaw0KDQogICAgfQ0KICANCiAgfSAgDQogIA0KICBzd2l0Y2goZmlsZVR5cGUpIHsNCg0KICAgIGNhc2UgIm0zdSI6ICAgZGF0YVsiY21kIl0gPSAic2F2ZUZpbGVzTTNVIjsgYnJlYWs7DQogICAgY2FzZSAiaGRociI6ICBkYXRhWyJjbWQiXSA9ICJzYXZlRmlsZXNIREhSIjsgYnJlYWs7DQogICAgY2FzZSAieG1sdHYiOiBkYXRhWyJjbWQiXSA9ICJzYXZlRmlsZXNYTUxUViI7IGJyZWFrOw0KDQogIH0NCiAgLy9jb25zb2xlLmxvZyhkYXRhKTsNCiAgeFRlVmUoZGF0YSk7DQogIHJldHVybg0KfQ0KDQpmdW5jdGlvbiB1cGRhdGVGaWxlKGZpbGVJRCwgZmlsZVR5cGUsIGFsbEZpbGVzKSB7DQogIA0KICBzd2l0Y2goY29uZmlnWyJmaWxlcyJdW2ZpbGVUeXBlXS5oYXNPd25Qcm9wZXJ0eShmaWxlSUQpKSB7DQoNCiAgICBjYXNlIHRydWU6IA0KICAgIA0KICAgICAgdmFyIGRhdGEgPSBuZXcgT2JqZWN0KCk7DQogICAgICB2YXIgZGF0YSA9IGJ1aWxkRmlsZXNPYmooZmlsZVR5cGUsIGZpbGVJRCwgY29uZmlnWyJmaWxlcyJdW2ZpbGVUeXBlXVtmaWxlSURdKQ0KICAgICAgZGF0YVsibmV3Il0gPSB0cnVlDQoNCiAgICAgIHN3aXRjaChmaWxlVHlwZSkgew0KDQogICAgICAgIGNhc2UgIm0zdSI6ICAgZGF0YVsiY21kIl0gPSAidXBkYXRlRmlsZU0zVSI7IGJyZWFrOw0KICAgICAgICBjYXNlICJoZGhyIjogIGRhdGFbImNtZCJdID0gInVwZGF0ZUZpbGVIREhSIjsgYnJlYWs7DQogICAgICAgIGNhc2UgInhtbHR2IjogZGF0YVsiY21kIl0gPSAidXBkYXRlRmlsZVhNTFRWIjsgYnJlYWs7DQoNCiAgICAgIH0NCiAgICAgIA0KICAgICAgeFRlVmUoZGF0YSk7DQogICAgICANCiAgICAgIGJyZWFrOw0KICB9DQoNCn0NCg0KZnVuY3Rpb24gYnVpbGRGaWxlc09iaihmaWxlVHlwZSwgZmlsZUlELCBvYmopIHsNCg0KICB2YXIgZGF0YSA9IG5ldyBPYmplY3QoKTsNCiAgZGF0YVsiZmlsZXMiXSA9IG5ldyBPYmplY3QoKTsNCiAgZGF0YVsiZmlsZXMiXVtmaWxlVHlwZV0gPSBuZXcgT2JqZWN0KCk7DQogIGRhdGFbImZpbGVzIl1bZmlsZVR5cGVdW2ZpbGVJRF0gPSBvYmoNCiAgcmV0dXJuIGRhdGENCg0KfQ==" + webUI["html/js/log.js"] = "dmFyIGxvZ0ludGVydmFsDQoNCg0KZnVuY3Rpb24gdXBkYXRlTG9nKCkgew0KICB2YXIgZGF0YSA9IG5ldyBPYmplY3QoKTsNCiAgZGF0YVsiY21kIl0gPSAiZ2V0TG9nIjsNCiAgeFRlVmUoZGF0YSk7DQogIHdyaXRlTG9nSW5EaXYoKTsNCiAgcmV0dXJuDQp9DQoNCmZ1bmN0aW9uIHdyaXRlTG9nSW5EaXYoKSB7DQogIHZhciBsb2dzID0gbG9nWyJsb2ciXTsNCiAgdmFyIGRpdiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzZXR0aW5ncyIpLmxhc3RDaGlsZC5sYXN0Q2hpbGQ7DQogIGRpdi5pbm5lckhUTUwgPSAiIjsNCg0KICB2YXIgbWF4ID0gNTA7DQogIA0KICANCiAgZm9yICh2YXIgaSA9IDA7IGkgPCBsb2dzLmxlbmd0aDsgaSsrKSB7DQogICAgdmFyIG5ld0VudHJ5ID0gbmV3IE9iamVjdCgpOw0KICAgIG5ld0VudHJ5WyJfZWxlbWVudCJdICA9ICJQIjsNCg0KICAgIGlmIChsb2dzW2ldLmluY2x1ZGVzKCJFUlJPUiIpKSB7DQovLyAgICAgIGNhc2UgIndhcm5pbmdzIjogIG1zZ1R5cGUgPSAid2FybmluZ01zZyI7IGJyZWFrOw0KICAgICAgbmV3RW50cnlbImNsYXNzIl0gICA9ICJlcnJvck1zZyI7DQogICAgfQ0KDQogICAgaWYgKGxvZ3NbaV0uaW5jbHVkZXMoIldBUk5JTkciKSkgew0KLy8gICAgICBjYXNlICJ3YXJuaW5ncyI6ICBtc2dUeXBlID0gIndhcm5pbmdNc2ciOyBicmVhazsNCiAgICAgIG5ld0VudHJ5WyJjbGFzcyJdICAgPSAid2FybmluZ01zZyI7DQogICAgfQ0KDQogICAgbmV3RW50cnlbIl90ZXh0Il0gICAgID0gbG9nc1tpXTsNCiAgICANCiAgICBkaXYuYXBwZW5kQ2hpbGQoY3JlYXRlRWxlbWVudChuZXdFbnRyeSkpOw0KICB9DQoNCiAgY2FsY3VsYXRlV3JhcHBlckhlaWdodCgpOw0KICB2YXIgc2Nyb2xsRGl2ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImJveC13cmFwcGVyIik7DQogIHNjcm9sbERpdi5zY3JvbGxUb3AgPSBzY3JvbGxEaXYuc2Nyb2xsSGVpZ2h0Ow0KfQ0KDQpmdW5jdGlvbiBzaG93TG9nKG9iaikgew0KICAvL2xvZ0ludGVydmFsID0gc2V0SW50ZXJ2YWwodXBkYXRlTG9nLCA1MDAwKTsNCg0KICB2YXIgbG9ncyA9IGxvZ1sibG9nIl07DQoNCiAgdmFyIGRpdiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzZXR0aW5ncyIpOw0KDQogIHZhciBuZXdFbnRyeSA9IG5ldyBPYmplY3QoKTsNCiAgbmV3RW50cnlbIl9lbGVtZW50Il0gID0gIkhSIjsNCiAgZGl2LmFwcGVuZENoaWxkKGNyZWF0ZUVsZW1lbnQobmV3RW50cnkpKTsNCiAgLy9kaXYgPSBkaXYubGFzdENoaWxkOw0KDQogIHZhciBuZXdFbnRyeSA9IG5ldyBPYmplY3QoKTsNCiAgbmV3RW50cnlbIl9lbGVtZW50Il0gICAgPSAiSU5QVVQiOw0KICBuZXdFbnRyeVsidHlwZSJdICAgICAgICA9ICJidXR0b24iOw0KICBuZXdFbnRyeVsiY2xhc3MiXSAgICAgICA9ICJidXR0b24iOw0KICBuZXdFbnRyeVsidmFsdWUiXSAgICAgICA9ICJFbXB0eSBMb2ciOw0KICBuZXdFbnRyeVsib25jbGljayJdICAgICA9ICJlbXB0eUxvZygpIjsNCiAgZGl2LmFwcGVuZENoaWxkKGNyZWF0ZUVsZW1lbnQobmV3RW50cnkpKTsNCg0KICB2YXIgbmV3RW50cnkgPSBuZXcgT2JqZWN0KCk7DQogIG5ld0VudHJ5WyJfZWxlbWVudCJdICAgID0gImNvZGUiOw0KICBuZXdFbnRyeVsiX3RleHQiXSAgICAgICAgPSAiVXBkYXRlIExvZzogIjsNCiAgZGl2LmFwcGVuZENoaWxkKGNyZWF0ZUVsZW1lbnQobmV3RW50cnkpKTsNCg0KICB2YXIgbmV3RW50cnkgPSBuZXcgT2JqZWN0KCk7DQogIG5ld0VudHJ5WyJfZWxlbWVudCJdICAgID0gIklOUFVUIjsNCiAgbmV3RW50cnlbInR5cGUiXSAgICAgICAgPSAiY2hlY2tib3giOw0KICAvL25ld0VudHJ5WyJjaGVja2VkIl0gICAgID0gImNoZWNrYm94IjsNCiAgbmV3RW50cnlbIm9uY2xpY2siXSAgICAgPSAibG9nVXBkYXRlcyh0aGlzKSI7DQogIGRpdi5hcHBlbmRDaGlsZChjcmVhdGVFbGVtZW50KG5ld0VudHJ5KSk7DQoNCiAgdmFyIG5ld0VudHJ5ID0gbmV3IE9iamVjdCgpOw0KICBuZXdFbnRyeVsiX2VsZW1lbnQiXSAgPSAiSFIiOw0KICBkaXYuYXBwZW5kQ2hpbGQoY3JlYXRlRWxlbWVudChuZXdFbnRyeSkpOw0KDQogIA0KDQoNCiAgDQogIHZhciBuZXdXcmFwcGVyID0gbmV3IE9iamVjdCgpOw0KICBuZXdXcmFwcGVyWyJfZWxlbWVudCJdICA9ICJESVYiOw0KICBuZXdXcmFwcGVyWyJpZCJdICAgICAgICA9ICJib3gtd3JhcHBlciI7DQogIGRpdi5hcHBlbmRDaGlsZChjcmVhdGVFbGVtZW50KG5ld1dyYXBwZXIpKTsNCiAgZGl2ID0gZGl2Lmxhc3RDaGlsZDsNCg0KICB2YXIgbmV3UHJlID0gbmV3IE9iamVjdCgpOw0KICBuZXdQcmVbIl9lbGVtZW50Il0gID0gIlBSRSI7DQogIG5ld1ByZVsiaWQiXSAgICAgICAgPSAibG9nU2NyZWVuIjsNCiAgZGl2LmFwcGVuZENoaWxkKGNyZWF0ZUVsZW1lbnQobmV3UHJlKSk7DQoNCiAgZGl2ID0gZGl2Lmxhc3RDaGlsZDsNCg0KICB3cml0ZUxvZ0luRGl2KCkNCiAgcmV0dXJuDQp9DQoNCmZ1bmN0aW9uIGVtcHR5TG9nKCkgew0KICB2YXIgZGF0YSA9IG5ldyBPYmplY3QoKTsNCiAgZGF0YVsiY21kIl0gPSAiZW1wdHlMb2ciOw0KICB4VGVWZShkYXRhKTsNCiAgcmV0dXJuDQp9DQoNCmZ1bmN0aW9uIGxvZ1VwZGF0ZXMoZWxtKSB7DQogIHN3aXRjaChlbG0uY2hlY2tlZCkgew0KICAgIGNhc2UgZmFsc2U6IGNsZWFySW50ZXJ2YWwobG9nSW50ZXJ2YWwpOyBicmVhazsNCiAgICBjYXNlIHRydWU6IGxvZ0ludGVydmFsID0gc2V0SW50ZXJ2YWwodXBkYXRlTG9nLCA1MDAwKTsgYnJlYWs7DQogICAgDQogIH0NCn0=" + webUI["html/img/x_black.png"] = "iVBORw0KGgoAAAANSUhEUgAAAQAAAAEACAIAAADTED8xAAAAAXNSR0IArs4c6QAAAAlwSFlzAAAWJQAAFiUBSVIk8AAAA6ppVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IlhNUCBDb3JlIDUuNC4wIj4KICAgPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIgogICAgICAgICAgICB4bWxuczp0aWZmPSJodHRwOi8vbnMuYWRvYmUuY29tL3RpZmYvMS4wLyIKICAgICAgICAgICAgeG1sbnM6ZXhpZj0iaHR0cDovL25zLmFkb2JlLmNvbS9leGlmLzEuMC8iPgogICAgICAgICA8eG1wOk1vZGlmeURhdGU+MjAxOC0xMS0xNVQxNzoxMTozNzwveG1wOk1vZGlmeURhdGU+CiAgICAgICAgIDx4bXA6Q3JlYXRvclRvb2w+UGl4ZWxtYXRvciAzLjM8L3htcDpDcmVhdG9yVG9vbD4KICAgICAgICAgPHRpZmY6T3JpZW50YXRpb24+MTwvdGlmZjpPcmllbnRhdGlvbj4KICAgICAgICAgPHRpZmY6Q29tcHJlc3Npb24+NTwvdGlmZjpDb21wcmVzc2lvbj4KICAgICAgICAgPHRpZmY6UmVzb2x1dGlvblVuaXQ+MjwvdGlmZjpSZXNvbHV0aW9uVW5pdD4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+MTQ0PC90aWZmOllSZXNvbHV0aW9uPgogICAgICAgICA8dGlmZjpYUmVzb2x1dGlvbj4xNDQ8L3RpZmY6WFJlc29sdXRpb24+CiAgICAgICAgIDxleGlmOlBpeGVsWERpbWVuc2lvbj4yNTY8L2V4aWY6UGl4ZWxYRGltZW5zaW9uPgogICAgICAgICA8ZXhpZjpDb2xvclNwYWNlPjE8L2V4aWY6Q29sb3JTcGFjZT4KICAgICAgICAgPGV4aWY6UGl4ZWxZRGltZW5zaW9uPjI1NjwvZXhpZjpQaXhlbFlEaW1lbnNpb24+CiAgICAgIDwvcmRmOkRlc2NyaXB0aW9uPgogICA8L3JkZjpSREY+CjwveDp4bXBtZXRhPgoZIUJ+AAAXy0lEQVR4Ae2dCbhO1RrH/+Z5noUolDFjSBkuTsbUEXUoVG5JXZVLw71pvLqSBokGTzqkSAMhHZwyJFTITB2ZT6LIPA/3Xb6cew7f8U17WGvv/3o8j+/b315rve9vvevsd++93ncBLCRAAiRAAiRAAiRAAiRAAiRAAiRAAiRAAiRAAiRAAiRAAiRAAiRAAiRAAiRAAiRAAiRAAiRAAiRAAiRAAiRAAiRAAiRAAiRAAiRAAiRAAiRAAiRAAiRAAiRAAiRAAiRAAiRAAiRAAiRAAiRAAiRAAiRAAiRAAiRAAiRAAiRAAiRAAiRAAiRAAiRAAiRAAiRAAiRAAiRAAiRAAiRAAiRAAiRAAiRAAiRAAiRAAiRAAiRAAiRAAiRAAiRAAiRAAiRAAiRAAiRAAiRAAiRAAiRAAiRAAiRAAiRAAiSQjkCWdJ8d/9i1J668yvFeo+3wh2/x1cxoKzter3RZ9H7A8V6j7fD1F3DkcLSVY6qXPabaMVauXR/39I+xDeeqHzqAljWRut25HmPpadjbaN0xlgacq7t9M0YPc667jD1lzfjV2W9DHsP6Vc52GUNv+QvipXdiqO9g1VvvNMb6T51Ev+44sN9BOhm6cnUCHDuG+xNw7GgGiXT+0qItbr9LZwGVbKXK4PkRuguZJt+wwVi2JO2b8x+yOd9lhh73/I69f6CNIRdrEb1Jc3w6AYcOZtBCqy+jP0T1a7SSKFNh5iXh8X6Z/urID25PAFFy1TI1YFWqOaJvzJ3kyo3KV2HKhzE3ZE8DXe7Ag4/b07TVre7eiYS2bt37pimjwQQQWb6Zg/geKFAwTSytP1xRFds2Y91K7YQU52f8DOTOo51gFwt09gz6dMH61Rf/4vARV+8B0nT9cy8evAMCxZTy3GvK1datvPgWChXRTajg8owcigXJwX9y9qgeVwDRecdW5MyJRs2cVT/a3uSv7BVVMHVStPVtqCfOzz+esKFdG5qUNyoP98YZLf7eaTMBhPOSBWjWBmXL24DchiblFd6WjTpcxJVuJUtj/HQznJ99e5EQh31/2jAk0TSphwsUkPzUKTzQA/K+yZTy3AiUKKWFsOL8FC6qhSQhhRjYBzu2hTzLsRN0mgCitNxcPtbXMeVj7ahIMQwdHWsjsdfv0gM3do69GSdaSByFmVOc6CjsPnRygQJCb1iDCpVQo07YKrh6ojy93bgBP611TQjl/Bjy5GftCtzXDadPu8YqWMeuLoYLJpA6li8/5vyIipUz+12v4/Iir3l1yBs9V8rYKWh7sys9R9bpkUNo2wAbf4qslv1na+YCBRQ+fEgtkZBVIkaUosXx31HuSBrf3QzrFzr/elBD6xe59HOBAqa061ccP6YeChlRqtZQXtDP6xwVVpyfcdORJ6+jnUbX2SfjMfyZ6KraXUtLFyigdJYsmDjLmDmwZzda1MCeP+wesP+3b4rz88tPyvmRq7qWRUsXKEDq7Fk81At7XfKtIx2tYiXxn5GRVor+/FsSzHB+ThxHvwRtrV/46+oCBUxD/myIX3FL9+gNxcmaV9dU4Q0pG2zvU14+yJMfI5yfZwYg6XPbgcTQgd4TQBTblKJe8dRrFIOODlaVxdIfvWd7hMPI91GrnoNaRdtV0lTIBNC7aHwPkAYuVy7M/B7Vaqcd0PrDZx+ohX32lZtvx+iJ9jVvWcup2xBXF7LMUe9iwgQQglWrI2mpGWtdRNq7OmPWNFvGXZyfeWshb6A1L6dP4daW+G6h5mKKeBrfBKeHJ3cCTz+S/oDWn9XKHHuWJcvKC/2tX8bm5WeNsH6RVPt7gDRLV4Fjtc0IHMtXQEULfDk1TXZrPnS+DQ8PtqYpW1tZ+BUG3Qt5iGdCMcQFCqAsUhTJK1GmnAlggTs7WJlHqHhJ5fzIW2fNi7wPaV0Hu3ZqLmaaeIa4QAF5zQockxwqBQulgY71gzg/+ls/zqJ/L4OsXwbFHBcoYEESOJYjBxqbEDgmeYTkz7Yld8M3dcMjT8U6hRyo/+ZwjHvTgX4s7MIoFyigd/bsmLIA9ZtYSMHGpnq0xdxZMbVvivOzfAluaYaThixhPD8kBk4AEb18RSSvQAHrHIzzOKz//9ftKqHiwQPRtzzmY3S4NfrqztQ8sA9x9VQ8k2nFNBcowFdw79higFmItDJLxXefMz1Kw+jUFQOejrKuk9X694SEuhtYzJwAAloCx+Q6YETgmOQAFuPYuili8yhWAhO+QJ58EVd0uMKEdzDqRYf7tKo7M12ggPYSODZ7OSpVsYqFje2kbkWLmhEvinxnMjp2tVEqS5resBodGuGoOQleM2pt1GPQjKIrezIlcOyyy/HUSxeIH+KrOD/6W//RI+h7u7nWL0NgrAsUMB954SLJpZvHhTAmHX6+pr5KfLR9S1iymOL8PHE/5s0OSyNdTzLZBQowNShwTHaCaFkrrHSwb3+ETt10tZnzck2dqFL7G15MdoEC6GXNiTyCMCJwrHwl/HtoaIPpeKsB1r/1F5MyOGUO3fwrQEC31h1UkJQB5Sy6tMTi+ZlKWqy4WvMjAZY6l5MncFNTrFyqs4xhymb+FSCgaPIXePf1MHV29bQseOVd5M08lcOQN3S3fsH3whPesH5RxfCb4PS2vGgu4jqhROn0x3T8LBGeefNjblIQ2Tp0waDnghzX6lDyDAx+SCuJYhHGKy5QgIEkKpTAMf2jxWUnhPjmF4aMGOH8/JaKNnUczf4Si3WHUdcrLlBA1ZT1ZgSOZcmKl99Fnoxbuejv/Jw5rcKdncx9FIYFx3iKh1ygAAlTAsckslEmQNpD9PbxBjg/rz6PjxJjNDjdqnvLBQrQlXhcCRzTf6MNcYQ6X4+li2GE87NkPrq20i23c+zTyVsuUICH7D5ixI5j4gi9Mha5c6uUcpo/95QM2LJ3iWaZzWO3fmnBcy5QgIoEjkncTOPmljCysRFZKX1zggE7o/W9DSuX2cjBvaa96AIFaGbLpgLHGlznHluv9DzmNTMeLUTF27sTQHAYFDgW1eA5UWnVUvXS98QJJ/pyow+PukABlBI4JuvPZGkNS3QEZMPC2+Nc2/wmOpkjrOXpCSAsZN+KcpejZt0IsfD0cwQG3H2pZUuegORpFygwQnnzqcCxK6p6YrwcVGLSWAy4x8H+3OnKBxNAwEpU7vRFyJHTHcYm9pqyDu0a4sgRE2WPSGavu0ABGAYFjkU0ejadLEF23dtiZ6pNzWvVrD8mgCBftgQNmqDilVrR11SYJ/tbmdVUUyX/EssfLlBAWdlW8auVur9zdd1cZnyMe7WPxrSOkp8mgFBr1R7vS+CYz7QO31x2bEGbuti/L/wapp/pGxcoMFCbU1CoCOo1Nn3YbJFfdia/syM2b7SlcV0b9eJiuEuzHvIY1q649Ck+/XXYYHWn5LPiS2egytVIWmZA4JiTtjhvFnq0M2VbFwvB+MwFCpCTxb2SRqVNJws5mt3U778h4cawEhaZrWcQ6X05AYTDquWoVgtVqgdB4rdDEpdzTzzWr/ab3gF9/XcPkDbOA/8OSd7PMnIoFiT7FoMv7wHSRrvxDfhkLrL69TIoHCRve5cWOHUqDYnfPvh47GWod2yDxM000T5wzCar3LcXCXGQCFIfF39fAWTgZQJ8Nh8Nm/rRBvrEY+YUPyqeTmcf3wMEKEigt4R7H9yfjok/PiaOovXLSPvbBQqY+oH92LbJgN0oLJyY8irwvm6ezPIQKSROgHPEJHDssgp+CRw7cki5/r/vitRWPHm+7+8B0kbVP4FjD/fG5HFpevv8g+/vAdLG/8hh9EuAZL73dvlkPK0//QjTBUpHw/OBY5t+Ru/O3p/k6YY05EdOgIyIZDlk/caoWDnjUU98O3FcLXeTVx8s6QjQBUoHQz7KjmMP9cKe3RmPeuLb84Ow+kdPaGKlEpwAF9GUxyMP9ZapcNEPJh9Imop3R5qsgF2y0wUKRlaiogoWVr6QN0rqNtzZXm2ozHIRAT4GvQhJ4ECuXJixBDXqZPKzOYdlWxdZ7vbdQnMkdlRSukCZ4D5+XD0VPWp+Zqjhz9D6MxljdZguUOZwJHBM7objbsr8DO1/WfgVBt3rw0DH8AeGE+CSrFYvx9U1UdXMwDGZvRLoeOjgJTX0+490gUJZgASOyU2kiSVxNOTVHsslCXACXBKP/ChZomTxjImlWy8ULGSi4E7KzAkQBu0bWoVxkn6nlK+EoW/qJ5ZeEvEeINR4NGuNYW8ji5nPi6+uBdkvkInAMh9kM8c1c30s/qV4SZVPt0Rpi5t1sjlZ/R9XD5tSnOzToL7oAmU+WPJX//XxZlu/KJc3P0Z/iJzcHCT4QNMFCs5FHX3gUfTsm/nP5vxSqixy58H8OeZI7JykdIEyYS0LgWSb4ew5MvnZuMNn1aYv82YbJ7fdAnMCBCNcqDDm/IhyFYP9ZuwxSQDa6hr84cWV3jGMCe8BgsEbPsZr1i9ayq38q2ODaevrY7wHuGj4xe/v9+hFRz1xQPaKlc3Dl3/nCWWsUYIuUEaO1Wvji++QK3fGox76JoGRHRtjDbcI+WtMOQHSGXfevEhaisrV0h3y4seN69G2gR/2AA5n8OgCpaP04ltoFpfuu0c/Fi2htsqcM92j6kWmFifAeV7x3fHof85/8fr/tetjwxqkrPe6nqH1owt0jlGlypi9HPkKhAbmmTP2/4nW1yB1u2cUik4RPgaFWibw5iR/Wb8Yi2wX+8YElR3e38Xv+qvRf2o42sf70QzKXQ4JmV8834+6n9fZ9y5QXCckTjtPw3//ywSIb47vv/Wf5n9p7O8JULYc5qxAkWK+HX6l+I4taFNXBb75svjYBRL3d9w07z/1D2nWkgKsQiXM+CTkiZ48wccT4J9Po2svTw5qxEpdVVPtGLvGj5lD/eoCNW2JycnIwodg5yfL0cO4sT42/nT+u1/+9+UEKFYCySsgYSIs6QlIEqROTXDC61uEpFfZj5nhJNDxncmoVS8jB34DSpWB7BPls6AZ/90D3DcAdz1Iew9OQOLgZLH0lo3Bf/XiUZ+5QHUaYtq3Hgp0tMEk/9ilAsd8s4ekn+4CCxTEW5No/SEmTfFSeO09U/MghdAtyM9+coFGJKLRDUEY8NAFBCpVwcH9kO3SfFB84wL16IOXxvhgQC1SUQLH5ImQD/YU88cEuKoGZn6PPHktsg5/NLNxw7nAscPe1tYHLlCePJg4C6Uv8/ZAWq9d0eIoUQqzPb5S0AcT4IVR+Fs76+3DDy3K25Kf16l/3i1ed4E636aCXViiJiBpVFrXUSmmPVo8PQEuv0IFOhbgJhGxGe/3C9U+k6dPx9aKprW96wLlyIEJM3H5lZqCN0isyyqobcMXzTNI5PBF9e4EePJFdOwaPgh3zhw3GqdOomx5d3oPv1d5f7JoLnZsC7+GKWd61AVq1R7vzwD01m7Tz4irq6xfotL0z0WXulXdDHgucMyLV4DSZTExCXnyaf1HSIJxe3fG1s3Yuwfy1qm59gm5JHCs4pWY/rHWVCMXznMTIGtWvDcVVWtEjsLZGqNfwkeJf3X543doEYcy5ZyVIPLehOpvqZCwAQ8VvZ2EKEA/MhiDnouinqNVNqxWL1nTh55UqaZ2JMiZy1ExouhMAsdE8pQNUVTVs4q3rgCNm51byaj3Ele5672jPXamZjCIvX+ou+EbWmc4qOGXHDnRsCkmJ3rmqaiHJkDRYpg0B+Kqal5efhbTJgeRUVZftmpnwJKNkmWQLz/mzQqigoGHPOQCJX6OuJt0H4IV3+Ompjh1KricV9fErGWQv7K6l7O4owO+/lJ3McOQzytXgD790efhMPR19ZTjx9Cj3aV26ZINvM6ewfWtXJUynM6zoHkbfDoBhw+Fc7bO5+jtLodJTpJ9D34pzHPdPG3ov0NnJB81zIzHLLLDwGuJHggcM/8KkL8AJs1WOz5oXpbMx+P34+zZEGKeOYPlS9C9D7JqPzQVK+PwQSxdHEIjvX/WnnJIfK+MxXUtQp7l8glHDiGhLfb9GZYYEpAuuVuuaxnWye6eJOS/noldO92VIpbeDXeBbuuN+B6x6O9Q3WcHYtvmCPoa+V+sNWEfO7lfH/WhyiZkbDH5KZC8PEr6QfclD2IZ85LQPfKInFp11X6VRmxV/9F7eORuQ6eAsS5Q7twq0LGM9usoZSciefJz6GDE9rH7N2TPjibNI67ofIWadSEBxD+tdb7n2Hs01gV65hVUqx27/ra38GT/C1/6ht/liCGQRRNGFNlgs3xFIyS9QEgzJ0CHLuh5/wWa6Ph15qfqYXnURRYLPXwXTmfy1izqZu2oKC/gzdxxzEAXSP7SSKiX/gvo9+xWr0uPHonJ3uQBS65caNQspkacqSyBY1mz4Nu5zvRmVS+m3QSLWzxlAeo3sUp/G9vpE4+ZUyxoXyaArI/Qf4G3qCpBDrf+DUsWWKC1U02Y5gI9+rwZ1v/ZBGusX+zg+HH1jEVsS/8iL+/EESpcRH9J0yQ0ygWSqBG52dI80FHQ7tyBXp0gK3+sKhKGImntrr3eqvZsbEdycMiu40GXu9rYa/RNmzMBSpZWzz3z5o9eV8dq9u2GDVY/E/xhIeTWv2gJx5SIvqMq1dW74VXLom/BwZqGuEAS6DjyfUjmbv3LhLcx14a18seOKUdI1ooaUZ59FfKa0oRiyBXgH4+jx98N4Ln1F9wTj5P2bLMlnpWs/GtwnQEcJClTo+shb4i1T6dlwgS4tilGjINcBDQv8uf57luweaONYkqStk5dzdjZu0RpyI4kc5NspGFF09pblTxSkOVW2bJboazNbYx5DUu+sbePo0cxwBxH6J7+aN3BXiAxt679FUCsv17jmNW0v4GUdeh7W6axjhb2n7odhQqb8SxYtNY+cEzvK8BdD6DdLRYaj11NyWqF/r0g96nOlBefNGYjR3lspXfgmMZXgJp18M7HZjg/rw/BZx84Y/yql5MnsXYlJBZC/1ciIq3kk5NsQj8sUpLrV3SdAJJ4QwIdZYcS/YtkSuvfExLK6GSRhP1FiqFuIyf7jL6v6yRw7Evs+jX6FmyrqetaoBGJ6NrLNq2ta1jSekqmtA1rrGsx7JYkDuvrVahwRdgVXD1xcwri6mmYRULLe4CuPc2wfrGo4U+7Y/3S9ZHD+GcflbnfiCJbr77whoaS6ucCXVkVkuLKgORQwNJFygRDJnqwb9i3b0HxkqjT0L4erGy5Rh1IRnhXrpaZq6GZCyRLf6cvhoTY6V9koX8bGdEUlyWVm6W5q1GuostihNm97L/dpm5k+QHCbDna0zRzgSS/lRHWL7iHPOa+9YsYkpttoCwSMcQRkrWioz5Qsc7aFJ1coHY3QyJ9jSjfJEOCfTUpWzehVBnUbqCJOCHEkB1xsmXDwq9DnObUz9q4QOUqYPaPKFzUKcVj6Eeu461q67Vhlqy6+Xo11G52JhRZNNW1FRbN00FWPVwguSa+8YEZ1i+D9vQjelm/iHTwAB69Vwd7CkuGLOcWtxfR4o+dHhNg4DNmhDvJ8M6ehknvhTXMDp8kQQgT33W4z+i7k/2gho+Jvrp1NTVwgW5opV76yl8F/cufe9CyJiRllZ6lYCHMXWPAXmNp9CRb8Pi30r658sHtCSCPsZNXQDYdMaLIek/No13V/rBfGMFSCXnsKNo1dDelnKt/dyUH8uvjjLH+zyfpbv1iUl/NVBt4mVJy58HoDyFZLt0rrj4G7TfIjARvMjy7d6JnR/UXS/+yeD5kLYkETxpRZL2jZJVzb7cl9yZA/cYqh4z+20AEzOj+BKxbZYRFqXQssvLs5gQzpBUp616rNsX55WdXBHbPBRrwlBm5v2VYJo1FsjmOtQg8ezo+fd8Ve4qy04HPRlmR1UiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABGwg8D8UnyVeZFwGAQAAAABJRU5ErkJggg==" + webUI["html/js/menu.js"] = "DQpmdW5jdGlvbiBzZXRNZW51SXRlbSgpIHsNCg0KICBtZW51ID0gbmV3IE9iamVjdCgpOw0KICBzdWJNZW51ID0gbmV3IE9iamVjdCgpOw0KDQogIHZhciBtZW51X20zdSA9IG5ldyBPYmplY3QoKTsNCiAgbWVudV9tM3VbIl9tZW51VHlwZSJdICAgICAgID0gImlucHV0QXJyYXkiOw0KICBtZW51X20zdVsiX2VsZW1lbnQiXSAgICAgICAgPSAiTEkiOw0KICBtZW51X20zdVsiX2NvbmZpZ0tleSJdICAgICAgPSAiZmlsZXMubTN1IjsNCiAgbWVudV9tM3VbIl90ZXh0Il0gICAgICAgICAgID0gIlBsYXlsaXN0IjsNCiAgbWVudV9tM3VbIl9pY29uIl0gICAgICAgICAgID0gImltZy9tM3UucG5nIjsNCiAgbWVudV9tM3VbIl9oZWFkbGluZSJdICAgICAgID0gIlBsYXlsaXN0czogTG9jYWwgb3IgcmVtb3RlIjsNCiAgbWVudV9tM3VbIl91c2FnZSJdICAgICAgICAgID0gIjxiPkluZm88L2I+PGJyPkF2YWlsYWJpbGl0eTogRmlsZSBhdmFpbGFiaWxpdHkgaW4gcGVyY2VudDxicj5TdHJlYW1zOiAgICAgIE51bWJlciBvZiBzdHJlYW1zIGluIHRoZSBmaWxlLjxicj5ncm91cC10aXRsZTogIFN0cmVhbXMgdGhhdCBhcmUgYXNzaWduZWQgdG8gYSBncm91cC4gU2ltcGxpZmllcyBmaWx0ZXJpbmcgc3RyZWFtczxicj50dmctaWQ6ICAgICAgIFRoaXMgSUQgaXMgdXNlZCBmb3IgYXV0b21hdGljIG1hcHBpbmcsIG11c3QgbWF0Y2ggd2l0aCB0aGUgY2hhbm5lbCBJRCBpbiB0aGUgWE1MVFYgZmlsZS48YnI+VW5pcXVlIElEOiAgICBTdHJlYW1zIHdpdGggYSB1bmlxdWUgSUQgdG8gaWRlbnRpZnkgdGhlbS4gQWxsb3dzIGNoYW5uZWwgbmFtZSBjaGFuZ2VzIGluIHRoZSBNM1Ugd2l0aG91dCBsb3NpbmcgdGhlIFhNTFRWIG1hcHBpbmcgKFBQViAvIGxpdmUgZXZlbnRzKS48YnI+PGJyPjxiPlVzYWdlIE0zVTo8L2I+PGJyPlJlbW90ZSBwbGF5bGlzdDogaHR0cDovL3lvdXIuaXB0di5wcm92aWRlci5jb20vZmlsZS5tM3U8YnI+TG9jYWwgIHBsYXlsaXN0OiAvcGF0aC90by9maWxlLm0zdTxicj48YnI+PGI+VXNhZ2UgSERIb21lUnVuOjwvYj48YnI+SVA6IDE5Mi4xNjguMS4xMDo1MDA0PGJyPiINCiAgbWVudV9tM3VbIm5hbWUiXSAgICAgICAgICAgID0gImZpbGUiOw0KICBtZW51X20zdVsiaWQiXSAgICAgICAgICAgICAgPSAiZmlsZSI7DQogIG1lbnVfbTN1WyJ2YWx1ZSJdICAgICAgICAgICA9IG1lbnVfbTN1WyJuYW1lIl07DQogIG1lbnVfbTN1WyJwbGFjZWhvbGRlciJdICAgICA9ICJQbGF5bGlzdDogbG9jYWwgb3IgcmVtb3RlIjsNCiAgbWVudV9tM3VbIm9uY2xpY2siXSAgICAgICAgID0gImphdmFzY3JpcHQ6IHRvZ2dsZU1lbnUodGhpcyk7IjsNCiAgbWVudV9tM3VbImNsYXNzIl0gICAgICAgICAgID0gIm1lbnUtbm90QWN0aXZlIjsNCg0KDQogIHZhciBtZW51X2ZpbHRlciA9IG5ldyBPYmplY3QoKTsNCiAgbWVudV9maWx0ZXJbIl9tZW51VHlwZSJdICAgID0gImlucHV0QXJyYXkiOw0KICBtZW51X2ZpbHRlclsiX2VsZW1lbnQiXSAgICAgPSAiTEkiOw0KICBtZW51X2ZpbHRlclsiX2NvbmZpZ0tleSJdICAgPSAiZmlsdGVyIjsNCiAgbWVudV9maWx0ZXJbIl90ZXh0Il0gICAgICAgID0gIkZpbHRlciI7DQogIG1lbnVfZmlsdGVyWyJfaWNvbiJdICAgICAgICA9ICJpbWcvZmlsdGVyLnBuZyI7DQogIG1lbnVfZmlsdGVyWyJfaGVhZGxpbmUiXSAgICA9ICJGaWx0ZXIgYnkgTTNVIHBhcmFtZXRlcnMsIGUuZy4gZ3JvdXAtdGl0bGUiOw0KICBtZW51X2ZpbHRlclsiX3VzYWdlIl0gICAgICAgPSAiPGI+VXNhZ2U6PC9iPjxicj5TcG9ydCAtIEFsbCBzcG9ydHMgY2hhbm5lbHM8YnI+U3BvcnQge0hEfSAtIEFsbCBIRCBzcG9ydHMgY2hhbm5lbHM8YnI+U3BvcnQge0hEfSAhe0VTLERFfSAtIEFsbCBIRCBzcG9ydHMgY2hhbm5lbHMsIGJ1dCBubyBTcGFuaXNoIGFuZCBHZXJtYW48YnI+PGJyPlRvIGZpbHRlciB0aGUgc3RyZWFtcyBvZiBhIEhESG9tZVJ1biwgdGhlIHBsYXlsaXN0IG5hbWUgY2FuIGJlIGVudGVyZWQ6PGJyPk15IHR1bmVyIHtIRH0iDQogIC8vbWVudV9maWx0ZXJbIl91c2FnZSJdICAgICAgID0gIjxiPlVzYWdlOjwvYj48YnI+QWxsIHNwb3J0cyBjaGFubmVsczogU3BvcnQ8YnI+QWxsIEhEIHNwb3J0cyBjaGFubmVsczogU3BvcnQge0hEfTxicj5BbGwgSEQgc3BvcnRzIGNoYW5uZWxzLCBidXQgbm8gU3BhbmlzaCBhbmQgR2VybWFuOiBTcG9ydCB7SER9ICF7RVMsREV9Ig0KICBtZW51X2ZpbHRlclsibmFtZSJdICAgICAgICAgPSAiZmlsdGVyIjsNCiAgbWVudV9maWx0ZXJbImlkIl0gICAgICAgICAgID0gIk0zVSI7DQogIG1lbnVfZmlsdGVyWyJ2YWx1ZSJdICAgICAgICA9IG1lbnVfZmlsdGVyWyJuYW1lIl07DQogIG1lbnVfZmlsdGVyWyJwbGFjZWhvbGRlciJdICA9ICJGaWx0ZXIgc3RyZWFtczogU3BvcnQiOw0KICBtZW51X2ZpbHRlclsib25jbGljayJdICAgICAgPSAiamF2YXNjcmlwdDogdG9nZ2xlTWVudSh0aGlzKTsiOw0KICBtZW51X2ZpbHRlclsiY2xhc3MiXSAgICAgICAgPSAibWVudS1ub3RBY3RpdmUiOw0KDQogIHZhciBtZW51X2lkID0gbmV3IE9iamVjdCgpOw0KICBtZW51X2lkWyJfbWVudVR5cGUiXSAgICAgICAgPSAiaW5wdXRBcnJheSI7DQogIG1lbnVfaWRbIl9lbGVtZW50Il0gICAgICAgICA9ICJMSSI7DQogIG1lbnVfaWRbIl9jb25maWdLZXkiXSAgICAgICA9ICJpZCI7DQogIG1lbnVfaWRbIl90ZXh0Il0gICAgICAgICAgICA9ICJQTVMgSUQiOw0KICBtZW51X2lkWyJfaWNvbiJdICAgICAgICAgICAgPSAiaW1nL251bWJlci5wbmciOw0KICBtZW51X2lkWyJfaGVhZGxpbmUiXSAgICAgICAgPSAiU2V0dXAgUE1TIGd1aWRlIG51bWJlciI7DQogIG1lbnVfaWRbIl91c2FnZSJdICAgICAgICAgICA9ICdTb21lIHBsYXlsaXN0cyBoYXZlIHVuaXF1ZSBjaGFubmVsIElEcy48YnI+RW50ZXIgdGhlIGtleXdvcmQgb2YgdGhlIElELiBUaGUgY2hhbm5lbCBhc3NpZ25tZW50IGluIFBNUyB3aWxsIGNoYW5nZSBhcyBhIHJlc3VsdC48YnI+PGJyPmUuZy4gY2hhbm5lbElEPGJyPiNFWFRJTkY6MCB0eXBlPSJzdHJlYW0iIDxiPmNoYW5uZWxJZDwvYj49IjgxIiwgTXkgU3RyZWFtaW5nIENoYW5uZWwgSEQ8YnI+PGJyPk9ubHkgZW50ZXIgaGVyZSBpZiB5b3Uga25vdyB3aGF0IHlvdSBhcmUgZG9pbmchJw0KICBtZW51X2lkWyJuYW1lIl0gICAgICAgICAgICAgPSAiaWQiOw0KICBtZW51X2lkWyJpZCJdICAgICAgICAgICAgICAgPSAiaWQiOw0KICBtZW51X2lkWyJ2YWx1ZSJdICAgICAgICAgICAgPSBtZW51X2lkWyJuYW1lIl07DQogIG1lbnVfaWRbInBsYWNlaG9sZGVyIl0gICAgICA9ICJVbmlxdWUgSUQgZnJvbSB0aGUgTTNVIGZpbGUiOw0KICBtZW51X2lkWyJvbmNsaWNrIl0gICAgICAgICAgPSAiamF2YXNjcmlwdDogdG9nZ2xlTWVudSh0aGlzKTsiOw0KICBtZW51X2lkWyJjbGFzcyJdICAgICAgICAgICAgPSAibWVudS1ub3RBY3RpdmUiOw0KDQoNCiAgdmFyIG1lbnVfeG1sdHYgPSBuZXcgT2JqZWN0KCk7DQogIG1lbnVfeG1sdHZbIl9tZW51VHlwZSJdICAgICA9ICJpbnB1dEFycmF5IjsNCiAgbWVudV94bWx0dlsiX2VsZW1lbnQiXSAgICAgID0gIkxJIjsNCiAgbWVudV94bWx0dlsiX2NvbmZpZ0tleSJdICAgID0gImZpbGVzLnhtbHR2IjsNCiAgbWVudV94bWx0dlsiX3RleHQiXSAgICAgICAgID0gIlhNTFRWIjsNCiAgbWVudV94bWx0dlsiX2ljb24iXSAgICAgICAgID0gImltZy94bWx0di5wbmciOw0KICBtZW51X3htbHR2WyJfaGVhZGxpbmUiXSAgICAgPSAiWE1MVFYgZmlsZXM6IExvY2FsIG9yIHJlbW90ZSI7DQogIG1lbnVfeG1sdHZbIl91c2FnZSJdICAgICAgICA9ICI8Yj5JbmZvOjwvYj48YnI+QXZhaWxhYmlsaXR5OiBGaWxlIGF2YWlsYWJpbGl0eSBpbiBwZXJjZW50PGJyPkNoYW5uZWxzOiAgICAgTnVtYmVyIG9mIGNoYW5uZWxzIGluIHRoZSBmaWxlPGJyPlByb2dyYW1zOiAgICAgTnVtYmVyIG9mIEVQRyBkYXRhPGJyPjxicj48Yj5Vc2FnZTo8L2I+PGJyPlJlbW90ZSBYTUxUViBmaWxlOiBodHRwOi8veW91ci5lcGcucHJvdmlkZXIuY29tL2d1aWRlLnhtbDxicj5Mb2NhbCAgWE1MVFYgZmlsZTogL3BhdGgvdG8vZ3VpZGUueG1sIg0KICBtZW51X3htbHR2WyJuYW1lIl0gICAgICAgICAgPSAieG1sdHYiOw0KICBtZW51X3htbHR2WyJpZCJdICAgICAgICAgICAgPSAieG1sdHYiOw0KICBtZW51X3htbHR2WyJ2YWx1ZSJdICAgICAgICAgPSBtZW51X3htbHR2WyJuYW1lIl07DQogIG1lbnVfeG1sdHZbInBsYWNlaG9sZGVyIl0gICA9ICJYTUxUViBGaWxlOiBsb2NhbCBvciByZW1vdGUiOw0KICBtZW51X3htbHR2WyJvbmNsaWNrIl0gICAgICAgPSAiamF2YXNjcmlwdDogdG9nZ2xlTWVudSh0aGlzKTsiOw0KICBtZW51X3htbHR2WyJjbGFzcyJdICAgICAgICAgPSAibWVudS1ub3RBY3RpdmUiOw0KDQogIG1lbnVfbWFwcGluZyA9IG5ldyBPYmplY3QoKTsNCiAgbWVudV9tYXBwaW5nWyJfZWxlbWVudCJdICAgPSAiTEkiOw0KICBtZW51X21hcHBpbmdbIl90ZXh0Il0gICAgICA9ICJNYXBwaW5nIjsNCiAgbWVudV9tYXBwaW5nWyJfaWNvbiJdICAgICAgPSAiaW1nL21hcHBpbmcucG5nIjsNCiAgbWVudV9tYXBwaW5nWyJfY29uZmlnS2V5Il0gPSAibWFwcGluZyI7DQogIG1lbnVfbWFwcGluZ1siX2hlYWRsaW5lIl0gID0gIlhNTFRWIGFzc2lnbm1lbnQgYW5kIHNvcnRpbmcgb2YgY2hhbm5lbHMiOw0KICBtZW51X21hcHBpbmdbImlkIl0gICAgICAgICA9ICJtYXBwaW5nIjsNCiAgbWVudV9tYXBwaW5nWyJvbmNsaWNrIl0gICAgPSAiamF2YXNjcmlwdDogdG9nZ2xlTWVudSh0aGlzKTsiOw0KICBtZW51X21hcHBpbmdbImNsYXNzIl0gICAgICA9ICJtZW51LW5vdEFjdGl2ZSBwaG9uZSI7DQoNCiAgbWVudV91c2VycyA9IG5ldyBPYmplY3QoKTsNCiAgbWVudV91c2Vyc1siX2VsZW1lbnQiXSAgID0gIkxJIjsNCiAgbWVudV91c2Vyc1siX3RleHQiXSAgICAgID0gIlVzZXJzIjsNCiAgbWVudV91c2Vyc1siX2ljb24iXSAgICAgID0gImltZy91c2Vycy5wbmciOw0KICBtZW51X3VzZXJzWyJfY29uZmlnS2V5Il0gPSAidXNlcnMiOw0KICBtZW51X3VzZXJzWyJfaGVhZGxpbmUiXSAgPSAiQWRtaW5pc3RyYXRpb24gb2YgdXNlcnMgYW5kIHBlcm1pc3Npb25zIjsNCiAgbWVudV91c2Vyc1siaWQiXSAgICAgICAgID0gInVzZXJzIjsNCiAgbWVudV91c2Vyc1sib25jbGljayJdICAgID0gImphdmFzY3JpcHQ6IHRvZ2dsZU1lbnUodGhpcyk7IjsNCiAgbWVudV91c2Vyc1siY2xhc3MiXSAgICAgID0gIm1lbnUtbm90QWN0aXZlIjsNCiAgbWVudV91c2Vyc1siX3VzYWdlIl0gICAgID0gIjxiPkF1dGhvcml6YXRpb24gZ3JvdXBzOjwvYj48YnI+V0VCOiBVc2VycyBjYW4gbG9nIGluIHRvIHRoZSB3ZWIgaW50ZXJmYWNlPGJyPlBNUzogUHJvZ3JhbXMgbGlrZSBQbGV4IGNhbiBhY2Nlc3MgdGhlIGNoYW5uZWwgbGlzdC4gTG9naW4gdmlhIERWUiBJUDogdXNlcm5hbWU6cGFzc3dvcmRAeHRldmUuaXA6cG9ydDxicj5NM1U6IEFsbG93cyBjbGllbnRzIHRvIGRvd25sb2FkIHRoZSBNM1UgcGxheWxpc3QuPGJyPlhNTDogQWxsb3dzIGNsaWVudHMgdG8gZG93bmxvYWQgdGhlIFhNTFRWIGZpbGUuPGJyPkFQSTogQWxsb3dzIGNsaWVudHMgdG8gdXNlIHRoZSBBUEkgaW50ZXJmYWNlLjxicj48YnI+ISEhIEZvciBQTVMgYXV0aGVudGljYXRpb24sIG9ubHkgdGhlIGZvbGxvd2luZyBzcGVjaWFsIGNoYXJhY3RlcnMgYXJlIHZhbGlkOiAhJCgpPS4sLTo7PGJyPjxicj5UaGUgaW5kaXZpZHVhbCBhdXRoZW50aWNhdGlvbiBncm91cHMgY2FuIGJlIGFjdGl2YXRlZCAvIGRlYWN0aXZhdGVkIGluIHRoZSBzZXR0aW5ncyBtZW51LiINCiAgDQogIG1lbnVfc2V0dGluZ3MgPSBuZXcgT2JqZWN0KCk7DQogIG1lbnVfc2V0dGluZ3NbIl9lbGVtZW50Il0gICA9ICJMSSI7DQogIG1lbnVfc2V0dGluZ3NbIl90ZXh0Il0gICAgICA9ICJTZXR0aW5ncyI7DQogIG1lbnVfc2V0dGluZ3NbIl9pY29uIl0gICAgICA9ICJpbWcvc2V0dGluZ3MucG5nIjsNCiAgbWVudV9zZXR0aW5nc1siX2NvbmZpZ0tleSJdID0gInNldHRpbmdzIjsNCiAgbWVudV9zZXR0aW5nc1siX2hlYWRsaW5lIl0gID0gIlNldHRpbmdzIjsNCiAgbWVudV9zZXR0aW5nc1siX3N1Yk1lbnUiXSAgID0gIjcwMSw3MDIsNzAzLDcwNCw3MDUsNzA2LDcwNyw3MDgsNzk5LDcxMCw3MTEsNzEyLDcxMyw3MTQiOw0KICBtZW51X3NldHRpbmdzWyJpZCJdICAgICAgICAgPSAic2V0dGluZ3MiOw0KICBtZW51X3NldHRpbmdzWyJvbmNsaWNrIl0gICAgPSAiamF2YXNjcmlwdDogdG9nZ2xlTWVudSh0aGlzKTsiOw0KICBtZW51X3NldHRpbmdzWyJjbGFzcyJdICAgICAgPSAibWVudS1ub3RBY3RpdmUiOw0KDQogIG1lbnVfbG9nID0gbmV3IE9iamVjdCgpOw0KICBtZW51X2xvZ1siX2VsZW1lbnQiXSAgICAgICAgPSAiTEkiOw0KICBtZW51X2xvZ1siX3RleHQiXSAgICAgICAgICAgPSAiTG9nIjsNCiAgbWVudV9sb2dbIl9pY29uIl0gICAgICAgICAgID0gImltZy9sb2cucG5nIjsNCiAgbWVudV9sb2dbIl9oZWFkbGluZSJdICAgICAgID0gIkxvZyI7DQogIG1lbnVfbG9nWyJfY29uZmlnS2V5Il0gICAgICA9ICJsb2ciOw0KICBtZW51X2xvZ1siaWQiXSAgICAgICAgICAgICAgPSAibG9nIjsNCiAgbWVudV9sb2dbIm9uY2xpY2siXSAgICAgICAgID0gImphdmFzY3JpcHQ6IHRvZ2dsZU1lbnUodGhpcyk7IjsNCiAgbWVudV9sb2dbImNsYXNzIl0gICAgICAgICAgID0gIm1lbnUtbm90QWN0aXZlIjsNCg0KICBtZW51X2xvZ291dCA9IG5ldyBPYmplY3QoKTsNCiAgbWVudV9sb2dvdXRbIl9lbGVtZW50Il0gICA9ICJMSSI7DQogIG1lbnVfbG9nb3V0WyJfdGV4dCJdICAgICAgPSAiTG9nb3V0IjsNCiAgbWVudV9sb2dvdXRbIl9pY29uIl0gICAgICA9ICJpbWcvbG9nb3V0LnBuZyI7DQogIG1lbnVfbG9nb3V0WyJpZCJdICAgICAgICAgPSAibG9nb3V0IjsNCiAgbWVudV9sb2dvdXRbIm9uY2xpY2siXSAgICA9ICJqYXZhc2NyaXB0OiBsb2dvdXQoKTsiOw0KICBtZW51X2xvZ291dFsiY2xhc3MiXSAgICAgID0gIm1lbnUtbm90QWN0aXZlIjsNCg0KICB2YXIgbWVudV9zY2hlZHVsZSA9IG5ldyBPYmplY3QoKTsNCiAgbWVudV9zY2hlZHVsZVsiX21lbnVUeXBlIl0gID0gImlucHV0QXJyYXkiOw0KICBtZW51X3NjaGVkdWxlWyJfZWxlbWVudCJdICAgPSAiTEkiOw0KICBtZW51X3NjaGVkdWxlWyJfY29uZmlnS2V5Il0gPSAidXBkYXRlIjsNCiAgbWVudV9zY2hlZHVsZVsiX3RleHQiXSAgICAgID0gIlNjaGVkdWxlIjsNCiAgbWVudV9zY2hlZHVsZVsiX2ljb24iXSAgICAgID0gImltZy9zY2hlZHVsZS5wbmciOw0KICBtZW51X3NjaGVkdWxlWyJfaGVhZGxpbmUiXSAgPSAiU2NoZWR1bGUgZm9yIHVwZGF0aW5nIE0zVSwgWE1MVFYgZmlsZXMgYW5kIGNyZWF0aW5nIGEgbG9jYWwgYmFja3VwIjsNCiAgbWVudV9zY2hlZHVsZVsiX3VzYWdlIl0gICAgID0gIjxiPlVzYWdlOjwvYj48YnI+MDgxNSA9IDg6MTUgYW08YnI+MTkzMCA9IDc6MzAgcG0iDQogIG1lbnVfc2NoZWR1bGVbIm5hbWUiXSAgICAgICA9ICJ1cGRhdGUiOw0KICBtZW51X3NjaGVkdWxlWyJpZCJdICAgICAgICAgPSAidXBkYXRlIjsNCiAgbWVudV9zY2hlZHVsZVsidmFsdWUiXSAgICAgID0gbWVudV9pZFsibmFtZSJdOw0KICBtZW51X3NjaGVkdWxlWyJwbGFjZWhvbGRlciJdPSAidGltZSBvZiBkYXkgKDI0LWhvdXIgY2xvY2spIjsNCiAgbWVudV9zY2hlZHVsZVsib25jbGljayJdICAgID0gImphdmFzY3JpcHQ6IHRvZ2dsZU1lbnUodGhpcyk7IjsNCiAgbWVudV9zY2hlZHVsZVsiY2xhc3MiXSAgICAgID0gIm1lbnUtbm90QWN0aXZlIjsNCg0KICB2YXIgbWVudV9maWxlc1VwZGF0ZSA9IG5ldyBPYmplY3QoKTsNCiAgbWVudV9maWxlc1VwZGF0ZVsiX2VsZW1lbnQiXSA9ICJMSSI7DQogIG1lbnVfZmlsZXNVcGRhdGVbIl9tZW51VHlwZSJdICAgICA9ICJjaGVja2JveCI7DQogIG1lbnVfZmlsZXNVcGRhdGVbIl9jb25maWdLZXkiXSAgICA9ICJmaWxlcy51cGRhdGUiOw0KICBtZW51X2ZpbGVzVXBkYXRlWyJfbGFiZWwiXSAgICAgICAgPSAiVXBkYXRlIHRoZSBwcm92aWRlciBmaWxlcyBhdCBzeXN0ZW0gc3RhcnR1cCI7DQogIG1lbnVfZmlsZXNVcGRhdGVbIl9oZWFkbGluZSJdICAgICA9ICJVcGRhdGUgdGhlIHByb3ZpZGVyIGZpbGVzIGF0IHN5c3RlbSBzdGFydHVwIjsNCiAgbWVudV9maWxlc1VwZGF0ZVsiX3VzYWdlIl0gICAgICAgID0gIlBsYXlsaXN0cyBhbmQgWE1MVFYgZmlsZXMgYXJlIHVwZGF0ZWQgYnkgeFRlVmUgYXQgc3lzdGVtIHN0YXJ0dXAuIg0KICBtZW51X2ZpbGVzVXBkYXRlWyJuYW1lIl0gICAgICAgICAgPSAiZmlsZXMudXBkYXRlIjsNCiAgbWVudV9maWxlc1VwZGF0ZVsiaWQiXSAgICAgICAgICAgID0gImZpbGVzLnVwZGF0ZSI7DQogIG1lbnVfZmlsZXNVcGRhdGVbInZhbHVlIl0gICAgICAgICA9IG1lbnVfZmlsZXNVcGRhdGVbIm5hbWUiXTsNCiAgbWVudV9maWxlc1VwZGF0ZVsib25jbGljayJdICAgICAgID0gImphdmFzY3JpcHQ6IHRvZ2dsZU1lbnUodGhpcyk7IjsNCiAgbWVudV9maWxlc1VwZGF0ZVsiY2xhc3MiXSAgICAgICAgID0gIm1lbnUtbm90QWN0aXZlIjsNCiAgDQogIHZhciBtZW51X3R1bmVyID0gbmV3IE9iamVjdCgpOw0KICBtZW51X3R1bmVyWyJfZWxlbWVudCJdICAgICAgPSAiTEkiOw0KICBtZW51X3R1bmVyWyJfbWVudVR5cGUiXSAgICAgPSAic2VsZWN0IjsNCiAgbWVudV90dW5lclsiX2NvbmZpZ0tleSJdICAgID0gInR1bmVyIjsNCiAgbWVudV90dW5lclsiX2xhYmVsIl0gICAgICAgID0gIkF2YWlsYWJsZSB0dW5lcnMiOw0KICBtZW51X3R1bmVyWyJfdGV4dCJdICAgICAgICAgPSAiVHVuZXIiOw0KICBtZW51X3R1bmVyWyJfaWNvbiJdICAgICAgICAgPSAiaW1nL3R1bmVyLnBuZyI7DQogIG1lbnVfdHVuZXJbIl9oZWFkbGluZSJdICAgICA9ICJOdW1iZXIgb2YgdHVuZXJzIjsNCiAgbWVudV90dW5lclsiX3VzYWdlIl0gICAgICAgID0gIlRoaXMgc2V0dGluZyBpcyBvbmx5IHVzZWQgYnkgUGxleCBhbmQgRW1ieS48YnI+VGhlIG51bWJlciBvZiBjb25jdXJyZW50IHN0cmVhbXMgYWxsb3dlZCBieSB0aGUgSVBUViBwcm92aWRlci48YnI+QWZ0ZXIgYSBjaGFuZ2UsIHhUZVZlIG11c3QgYmUgZGVsZXRlIGluIHRoZSBQTVMgRFZSIHNldHRpbmdzIGFuZCBzZXQgdXAgYWdhaW4uIg0KICBtZW51X3R1bmVyWyJuYW1lIl0gICAgICAgICAgPSAidHVuZXIiOw0KICBtZW51X3R1bmVyWyJpZCJdICAgICAgICAgICAgPSAidHVuZXIiOw0KICBtZW51X3R1bmVyWyJ2YWx1ZSJdICAgICAgICAgPSBtZW51X3R1bmVyWyJuYW1lIl07DQogIG1lbnVfdHVuZXJbInBsYWNlaG9sZGVyIl0gICA9ICJOdW1iZXIgb2YgdHVuZXJzIjsNCiAgbWVudV90dW5lclsib25jbGljayJdICAgICAgID0gImphdmFzY3JpcHQ6IHRvZ2dsZU1lbnUodGhpcyk7IjsNCiAgbWVudV90dW5lclsiY2xhc3MiXSAgICAgICAgID0gIm1lbnUtbm90QWN0aXZlIjsNCg0KICB2YXIgb3B0aW9uVmFsdWVzID0gbmV3IEFycmF5KCk7DQogIGZvciAodmFyIGkgPSAxOyBpIDw9IDEwMDsgaSsrKSB7DQogICAgb3B0aW9uVmFsdWVzLnB1c2goaSkNCiAgfQ0KICBtZW51X3R1bmVyWyJfb3B0aW9uVmFsdWVzIl0gPSBvcHRpb25WYWx1ZXM7DQogIA0KICB2YXIgbWVudV9lcGcgPSBuZXcgT2JqZWN0KCk7DQogIG1lbnVfZXBnWyJfZWxlbWVudCJdID0gIkxJIjsNCiAgbWVudV9lcGdbIl9tZW51VHlwZSJdICAgICA9ICJzZWxlY3QiOw0KICBtZW51X2VwZ1siX2NvbmZpZ0tleSJdICAgID0gImVwZ1NvdXJjZSI7DQogIG1lbnVfZXBnWyJfbGFiZWwiXSAgICAgICAgPSAiU2VsZWN0aW9uIG9mIHRoZSBFUEcgc291cmNlIjsNCiAgbWVudV9lcGdbIl90ZXh0Il0gICAgICAgICA9ICJFUEcgc291cmNlIjsNCiAgbWVudV9lcGdbIl9oZWFkbGluZSJdICAgICA9ICJTZWxlY3Rpb24gb2YgdGhlIEVQRyBzb3VyY2UiOw0KICBtZW51X2VwZ1siX3VzYWdlIl0gICAgICAgID0gIlBNUzogICBVc2UgRVBHIGRhdGEgZnJvbSBQbGV4IG9yIEVtYnkuPGJyPlhFUEc6ICBVc2Ugb2YgZXh0ZXJuYWwgRVBHIGRhdGEgKFhNTFRWKS48YnI+ICAgICAgIFNldmVyYWwgWE1MVFYgc291cmNlcyBwb3NzaWJsZS48YnI+ICAgICAgIEFsbG93cyBlZGl0aW5nIGFuZCBvcmRlciBjaGFubmVscy48YnI+ICAgICAgIE0zVSAvIFhNTFRWIGV4cG9ydCAoSFRUUCBsaW5rIGZvciBJUFRWIGFwcHMpLiINCiAgbWVudV9lcGdbIm5hbWUiXSAgICAgICAgICA9ICJlcGdTb3VyY2UiOw0KICBtZW51X2VwZ1siaWQiXSAgICAgICAgICAgID0gImVwZ1NvdXJjZSI7DQogIG1lbnVfZXBnWyJ2YWx1ZSJdICAgICAgICAgPSBtZW51X2VwZ1sibmFtZSJdOw0KICBtZW51X2VwZ1sicGxhY2Vob2xkZXIiXSAgID0gIkVQRyBzb3VyY2UiOw0KICBtZW51X2VwZ1sib25jbGljayJdICAgICAgID0gImphdmFzY3JpcHQ6IHRvZ2dsZU1lbnUodGhpcyk7IjsNCiAgbWVudV9lcGdbImNsYXNzIl0gICAgICAgICA9ICJtZW51LW5vdEFjdGl2ZSI7DQogIG1lbnVfZXBnWyJfb3B0aW9uVmFsdWVzIl0gPSBuZXcgQXJyYXkoIlBNUyIsICJYRVBHIik7DQoNCiAgdmFyIG1lbnVfeGVwZyA9IG5ldyBPYmplY3QoKTsNCiAgbWVudV94ZXBnWyJfZWxlbWVudCJdID0gIkxJIjsNCiAgbWVudV94ZXBnWyJfbWVudVR5cGUiXSAgICAgPSAiY2hlY2tib3giOw0KICBtZW51X3hlcGdbIl9jb25maWdLZXkiXSAgICA9ICJ4dGV2ZUF1dG9VcGRhdGUiOw0KICBtZW51X3hlcGdbIl9sYWJlbCJdICAgICAgICA9ICJBdXRvbWF0aWMgdXBkYXRlIG9mIHhUZVZlIjsNCiAgbWVudV94ZXBnWyJfaGVhZGxpbmUiXSAgICAgPSAiQXV0b21hdGljIHVwZGF0ZSBvZiB4VGVWZSI7DQogIG1lbnVfeGVwZ1siX3VzYWdlIl0gICAgICAgID0gIklmIGEgbmV3IHZlcnNpb24gb2YgeFRlVmUgaXMgYXZhaWxhYmxlLCBpdCB3aWxsIGJlIGF1dG9tYXRpY2FsbHkgaW5zdGFsbGVkLiINCiAgbWVudV94ZXBnWyJuYW1lIl0gICAgICAgICAgPSAieHRldmVBdXRvVXBkYXRlIjsNCiAgbWVudV94ZXBnWyJpZCJdICAgICAgICAgICAgPSAieHRldmVBdXRvVXBkYXRlIjsNCiAgbWVudV94ZXBnWyJ2YWx1ZSJdICAgICAgICAgPSBtZW51X3hlcGdbIm5hbWUiXTsNCiAgbWVudV94ZXBnWyJvbmNsaWNrIl0gICAgICAgPSAiamF2YXNjcmlwdDogdG9nZ2xlTWVudSh0aGlzKTsiOw0KICBtZW51X3hlcGdbImNsYXNzIl0gICAgICAgICA9ICJtZW51LW5vdEFjdGl2ZSI7DQoNCiAgdmFyIG1lbnVfYXV0b0JhY2t1cFBhdGggPSBuZXcgT2JqZWN0KCk7DQogIG1lbnVfYXV0b0JhY2t1cFBhdGhbIl9lbGVtZW50Il0gICA9ICJMSSI7DQogIG1lbnVfYXV0b0JhY2t1cFBhdGhbIl9tZW51VHlwZSJdICA9ICJzaW5nbGVJbnB1dCI7DQogIG1lbnVfYXV0b0JhY2t1cFBhdGhbIl9jb25maWdLZXkiXSA9ICJiYWNrdXAucGF0aCI7DQogIG1lbnVfYXV0b0JhY2t1cFBhdGhbIl9sYWJlbCJdICAgICA9ICJMb2NhdGlvbiBmb3IgYXV0b21hdGljIGJhY2t1cHMiOw0KICBtZW51X2F1dG9CYWNrdXBQYXRoWyJfaGVhZGxpbmUiXSAgPSAiTG9jYXRpb24gZm9yIGF1dG9tYXRpYyBiYWNrdXBzIjsNCiAgbWVudV9hdXRvQmFja3VwUGF0aFsiX3VzYWdlIl0gICAgID0gIkJlZm9yZSBhbnkgdXBkYXRlIG9mIHRoZSBwcm92aWRlciBkYXRhIGJ5IHRoZSBzY2hlZHVsZSwgeFRlVmUgY3JlYXRlcyBhIGJhY2t1cC4gVGhlIHBhdGggZm9yIHRoZSBhdXRvbWF0aWMgYmFja3VwcyBjYW4gYmUgY2hhbmdlZC4geFRlVmUgcmVxdWlyZXMgd3JpdGUgcGVybWlzc2lvbiBmb3IgdGhpcyBmb2xkZXIuIg0KICBtZW51X2F1dG9CYWNrdXBQYXRoWyJuYW1lIl0gICAgICAgPSAiYmFja3VwLnBhdGgiOw0KICBtZW51X2F1dG9CYWNrdXBQYXRoWyJpZCJdICAgICAgICAgPSAiYmFja3VwLnBhdGgiOw0KICBtZW51X2F1dG9CYWNrdXBQYXRoWyJ2YWx1ZSJdICAgICAgPSBtZW51X2F1dG9CYWNrdXBQYXRoWyJuYW1lIl07DQogIG1lbnVfYXV0b0JhY2t1cFBhdGhbIm9uY2xpY2siXSAgICA9ICJqYXZhc2NyaXB0OiB0b2dnbGVNZW51KHRoaXMpOyI7DQogIG1lbnVfYXV0b0JhY2t1cFBhdGhbImNsYXNzIl0gICAgICA9ICJtZW51LW5vdEFjdGl2ZSI7DQoNCiAgdmFyIG1lbnVfYXV0b0JhY2t1cEtlZXAgPSBuZXcgT2JqZWN0KCk7DQogIG1lbnVfYXV0b0JhY2t1cEtlZXBbIl9lbGVtZW50Il0gICA9ICJMSSI7DQogIG1lbnVfYXV0b0JhY2t1cEtlZXBbIl9tZW51VHlwZSJdICA9ICJzZWxlY3QiOw0KICBtZW51X2F1dG9CYWNrdXBLZWVwWyJfY29uZmlnS2V5Il0gPSAiYmFja3VwLmtlZXAiOw0KICBtZW51X2F1dG9CYWNrdXBLZWVwWyJfdGV4dCJdICAgICAgPSAiS2VlcCI7DQogIG1lbnVfYXV0b0JhY2t1cEtlZXBbIl9sYWJlbCJdICAgICA9ICJOdW1iZXIgb2YgYmFja3VwcyB0byBrZWVwIjsNCiAgbWVudV9hdXRvQmFja3VwS2VlcFsiX2hlYWRsaW5lIl0gID0gIk51bWJlciBvZiBiYWNrdXBzIHRvIGtlZXAiOw0KICBtZW51X2F1dG9CYWNrdXBLZWVwWyJfdXNhZ2UiXSAgICAgPSAiIg0KICBtZW51X2F1dG9CYWNrdXBLZWVwWyJuYW1lIl0gICAgICAgPSAiYmFja3VwLmtlZXAiOw0KICBtZW51X2F1dG9CYWNrdXBLZWVwWyJpZCJdICAgICAgICAgPSAiYmFja3VwLmtlZXAiOw0KICBtZW51X2F1dG9CYWNrdXBLZWVwWyJ2YWx1ZSJdICAgICAgPSBtZW51X2F1dG9CYWNrdXBLZWVwWyJuYW1lIl07DQogIG1lbnVfYXV0b0JhY2t1cEtlZXBbIm9uY2xpY2siXSAgICA9ICJqYXZhc2NyaXB0OiB0b2dnbGVNZW51KHRoaXMpOyI7DQogIG1lbnVfYXV0b0JhY2t1cEtlZXBbImNsYXNzIl0gICAgICA9ICJtZW51LW5vdEFjdGl2ZSI7DQoNCiAgdmFyIG9wdGlvblZhbHVlcyA9IG5ldyBBcnJheSg1LCAxMCwgMjAsIDMwLCA0MCwgNTApOw0KICBtZW51X2F1dG9CYWNrdXBLZWVwWyJfb3B0aW9uVmFsdWVzIl0gPSBvcHRpb25WYWx1ZXM7DQoNCg0KICB2YXIgbWVudV9idWZmZXIgPSBuZXcgT2JqZWN0KCk7DQogIG1lbnVfYnVmZmVyWyJfZWxlbWVudCJdID0gIkxJIjsNCiAgbWVudV9idWZmZXJbIl9tZW51VHlwZSJdICAgICA9ICJjaGVja2JveCI7DQogIG1lbnVfYnVmZmVyWyJfY29uZmlnS2V5Il0gICAgPSAiYnVmZmVyIjsNCiAgbWVudV9idWZmZXJbIl9sYWJlbCJdICAgICAgICA9ICJTdHJlYW0gYnVmZmVyaW5nIFtFeHBlcmltZW50YWxdIjsNCiAgbWVudV9idWZmZXJbIl9oZWFkbGluZSJdICAgICA9ICJTdHJlYW0gYnVmZmVyaW5nIFtFeHBlcmltZW50YWxdIjsNCiAgbWVudV9idWZmZXJbIl91c2FnZSJdICAgICAgICA9ICJXaXRoIGFjdGl2YXRlZCBidWZmZXIsIHN0cmVhbXMgY2FuIGJlIHBsYXllZCBhbmQgcmVjb3JkZWQgbW9yZSBmbHVlbnRseS48YnI+VGhlIHN0cmVhbSBpcyBwYXNzZWQgZnJvbSB4VGVWZSB0byBQbGV4IC8gRW1ieSINCiAgbWVudV9idWZmZXJbIm5hbWUiXSAgICAgICAgICA9ICJidWZmZXIiOw0KICBtZW51X2J1ZmZlclsiaWQiXSAgICAgICAgICAgID0gImJ1ZmZlciI7DQogIG1lbnVfYnVmZmVyWyJ2YWx1ZSJdICAgICAgICAgPSBtZW51X2J1ZmZlclsibmFtZSJdOw0KICBtZW51X2J1ZmZlclsib25jbGljayJdICAgICAgID0gImphdmFzY3JpcHQ6IHRvZ2dsZU1lbnUodGhpcyk7IjsNCiAgbWVudV9idWZmZXJbImNsYXNzIl0gICAgICAgICA9ICJtZW51LW5vdEFjdGl2ZSI7DQoNCiAgdmFyIG1lbnVfYXBpID0gbmV3IE9iamVjdCgpOw0KICBtZW51X2FwaVsiX2VsZW1lbnQiXSA9ICJMSSI7DQogIG1lbnVfYXBpWyJfbWVudVR5cGUiXSAgICAgPSAiY2hlY2tib3giOw0KICBtZW51X2FwaVsiX2NvbmZpZ0tleSJdICAgID0gImFwaSI7DQogIG1lbnVfYXBpWyJfbGFiZWwiXSAgICAgICAgPSAiQVBJIGludGVyZmFjZSI7DQogIG1lbnVfYXBpWyJfaGVhZGxpbmUiXSAgICAgPSAiQVBJIGludGVyZmFjZSI7DQogIG1lbnVfYXBpWyJfdXNhZ2UiXSAgICAgICAgPSAnVmlhIEFQSSBpbnRlcmZhY2UgaXQgaXMgcG9zc2libGUgdG8gc2VuZCBjb21tYW5kcyB0byB4VGVWZS4gQVBJIGRvY3VtZW50YXRpb24gaXMgYXZhaWxhYmxlIDxhIGhyZWY9Imh0dHBzOi8veHRldmUuZGU/c2Nyb2xsPWFwaSI+aGVyZTwvYT4gJw0KICAvL21lbnVfYXBpWyJfdXNhZ2UiXSAgICAgICAgPSAnVmlhIEFQSSBpbnRlcmZhY2UgaXQgaXMgcG9zc2libGUgdG8gc2VuZCBjb21tYW5kcyB0byB4VGVWZS4gQVBJIGRvY3VtZW50YXRpb24gaXMgYXZhaWxhYmxlIDxhIGhyZWY9Imh0dHA6Ly9sb2NhbGhvc3Q6MTMxMz9zY3JvbGw9YXBpIj5oZXJlPC9hPiAnDQogIG1lbnVfYXBpWyJuYW1lIl0gICAgICAgICAgPSAiYXBpIjsNCiAgbWVudV9hcGlbImlkIl0gICAgICAgICAgICA9ICJhcGkiOw0KICBtZW51X2FwaVsidmFsdWUiXSAgICAgICAgID0gbWVudV9hcGlbIm5hbWUiXTsNCiAgbWVudV9hcGlbIm9uY2xpY2siXSAgICAgICA9ICJqYXZhc2NyaXB0OiB0b2dnbGVNZW51KHRoaXMpOyI7DQogIG1lbnVfYXBpWyJjbGFzcyJdICAgICAgICAgPSAibWVudS1ub3RBY3RpdmUiOw0KDQogIHZhciBtZW51X2F1dGhlbnRpY2F0aW9uV2ViID0gbmV3IE9iamVjdCgpOw0KICBtZW51X2F1dGhlbnRpY2F0aW9uV2ViWyJfZWxlbWVudCJdID0gIkxJIjsNCiAgbWVudV9hdXRoZW50aWNhdGlvbldlYlsiX21lbnVUeXBlIl0gICAgID0gImNoZWNrYm94IjsNCiAgbWVudV9hdXRoZW50aWNhdGlvbldlYlsiX2NvbmZpZ0tleSJdICAgID0gImF1dGhlbnRpY2F0aW9uLndlYiI7DQogIG1lbnVfYXV0aGVudGljYXRpb25XZWJbIl9sYWJlbCJdICAgICAgICA9ICJVc2VyIGF1dGhlbnRpY2F0aW9uIjsNCiAgbWVudV9hdXRoZW50aWNhdGlvbldlYlsiX2hlYWRsaW5lIl0gICAgID0gIlVzZXIgYXV0aGVudGljYXRpb24iOw0KICBtZW51X2F1dGhlbnRpY2F0aW9uV2ViWyJfdXNhZ2UiXSAgICAgICAgPSAiQWNjZXNzIHRvIHhUZVZlIHJlcXVpcmVzIGF1dGhlbnRpY2F0aW9uLiINCiAgbWVudV9hdXRoZW50aWNhdGlvbldlYlsibmFtZSJdICAgICAgICAgID0gImF1dGhlbnRpY2F0aW9uLndlYiI7DQogIG1lbnVfYXV0aGVudGljYXRpb25XZWJbImlkIl0gICAgICAgICAgICA9ICJhdXRoZW50aWNhdGlvbi53ZWIiOw0KICBtZW51X2F1dGhlbnRpY2F0aW9uV2ViWyJ2YWx1ZSJdICAgICAgICAgPSBtZW51X2F1dGhlbnRpY2F0aW9uV2ViWyJuYW1lIl07DQogIG1lbnVfYXV0aGVudGljYXRpb25XZWJbIm9uY2xpY2siXSAgICAgICA9ICJqYXZhc2NyaXB0OiB0b2dnbGVNZW51KHRoaXMpOyI7DQogIG1lbnVfYXV0aGVudGljYXRpb25XZWJbImNsYXNzIl0gICAgICAgICA9ICJtZW51LW5vdEFjdGl2ZSI7DQogIA0KICB2YXIgbWVudV9hdXRoZW50aWNhdGlvblBtcyA9IG5ldyBPYmplY3QoKTsNCiAgbWVudV9hdXRoZW50aWNhdGlvblBtc1siX2VsZW1lbnQiXSA9ICJMSSI7DQogIG1lbnVfYXV0aGVudGljYXRpb25QbXNbIl9tZW51VHlwZSJdICAgICA9ICJjaGVja2JveCI7DQogIG1lbnVfYXV0aGVudGljYXRpb25QbXNbIl9jb25maWdLZXkiXSAgICA9ICJhdXRoZW50aWNhdGlvbi5wbXMiOw0KICBtZW51X2F1dGhlbnRpY2F0aW9uUG1zWyJfbGFiZWwiXSAgICAgICAgPSAiUGxleCBhdXRoZW50aWNhdGlvbi4iOw0KICBtZW51X2F1dGhlbnRpY2F0aW9uUG1zWyJfaGVhZGxpbmUiXSAgICAgPSAiUGxleCBhdXRoZW50aWNhdGlvbi4iOw0KICBtZW51X2F1dGhlbnRpY2F0aW9uUG1zWyJfdXNhZ2UiXSAgICAgICAgPSAiUGxleCByZXF1ZXN0cyBhcmUgb25seSBwb3NzaWJsZSB3aXRoIGF1dGhlbnRpY2F0aW9uLjxicj5XYXJuaW5nISEhIEFmdGVyIGFjdGl2YXRpbmcgdGhpcyBmdW5jdGlvbiB4VGVWZSBtdXN0IGJlIGRlbGV0ZSBpbiB0aGUgUE1TIERWUiBzZXR0aW5ncyBhbmQgc2V0IHVwIGFnYWluLiINCiAgbWVudV9hdXRoZW50aWNhdGlvblBtc1sibmFtZSJdICAgICAgICAgID0gImF1dGhlbnRpY2F0aW9uLnBtcyI7DQogIG1lbnVfYXV0aGVudGljYXRpb25QbXNbImlkIl0gICAgICAgICAgICA9ICJhdXRoZW50aWNhdGlvbi5wbXMiOw0KICBtZW51X2F1dGhlbnRpY2F0aW9uUG1zWyJ2YWx1ZSJdICAgICAgICAgPSBtZW51X2F1dGhlbnRpY2F0aW9uUG1zWyJuYW1lIl07DQogIG1lbnVfYXV0aGVudGljYXRpb25QbXNbIm9uY2xpY2siXSAgICAgICA9ICJqYXZhc2NyaXB0OiB0b2dnbGVNZW51KHRoaXMpOyI7DQogIG1lbnVfYXV0aGVudGljYXRpb25QbXNbImNsYXNzIl0gICAgICAgICA9ICJtZW51LW5vdEFjdGl2ZSI7DQogIA0KICB2YXIgbWVudV9hdXRoZW50aWNhdGlvbk0zdSA9IG5ldyBPYmplY3QoKTsNCiAgbWVudV9hdXRoZW50aWNhdGlvbk0zdVsiX2VsZW1lbnQiXSA9ICJMSSI7DQogIG1lbnVfYXV0aGVudGljYXRpb25NM3VbIl9tZW51VHlwZSJdICAgICA9ICJjaGVja2JveCI7DQogIG1lbnVfYXV0aGVudGljYXRpb25NM3VbIl9jb25maWdLZXkiXSAgICA9ICJhdXRoZW50aWNhdGlvbi5tM3UiOw0KICBtZW51X2F1dGhlbnRpY2F0aW9uTTN1WyJfbGFiZWwiXSAgICAgICAgPSAiTTNVIGF1dGhlbnRpY2F0aW9uLiI7DQogIG1lbnVfYXV0aGVudGljYXRpb25NM3VbIl9oZWFkbGluZSJdICAgICA9ICJNM1UgYXV0aGVudGljYXRpb24uIjsNCiAgbWVudV9hdXRoZW50aWNhdGlvbk0zdVsiX3VzYWdlIl0gICAgICAgID0gIkRvd25sb2FkaW5nIHRoZSBNM1UgZmlsZSB2aWEgYW4gSFRUUCByZXF1ZXN0IGlzIG9ubHkgcG9zc2libGUgd2l0aCBhdXRoZW50aWNhdGlvbi4iDQogIG1lbnVfYXV0aGVudGljYXRpb25NM3VbIm5hbWUiXSAgICAgICAgICA9ICJhdXRoZW50aWNhdGlvbi5tM3UiOw0KICBtZW51X2F1dGhlbnRpY2F0aW9uTTN1WyJpZCJdICAgICAgICAgICAgPSAiYXV0aGVudGljYXRpb24ubTN1IjsNCiAgbWVudV9hdXRoZW50aWNhdGlvbk0zdVsidmFsdWUiXSAgICAgICAgID0gbWVudV9hdXRoZW50aWNhdGlvbk0zdVsibmFtZSJdOw0KICBtZW51X2F1dGhlbnRpY2F0aW9uTTN1WyJvbmNsaWNrIl0gICAgICAgPSAiamF2YXNjcmlwdDogdG9nZ2xlTWVudSh0aGlzKTsiOw0KICBtZW51X2F1dGhlbnRpY2F0aW9uTTN1WyJjbGFzcyJdICAgICAgICAgPSAibWVudS1ub3RBY3RpdmUiOw0KICANCg0KICB2YXIgbWVudV9hdXRoZW50aWNhdGlvblhtbCA9IG5ldyBPYmplY3QoKTsNCiAgbWVudV9hdXRoZW50aWNhdGlvblhtbFsiX2VsZW1lbnQiXSA9ICJMSSI7DQogIG1lbnVfYXV0aGVudGljYXRpb25YbWxbIl9tZW51VHlwZSJdICAgICA9ICJjaGVja2JveCI7DQogIG1lbnVfYXV0aGVudGljYXRpb25YbWxbIl9jb25maWdLZXkiXSAgICA9ICJhdXRoZW50aWNhdGlvbi54bWwiOw0KICBtZW51X2F1dGhlbnRpY2F0aW9uWG1sWyJfbGFiZWwiXSAgICAgICAgPSAiWEVQRyBhdXRoZW50aWNhdGlvbiI7DQogIG1lbnVfYXV0aGVudGljYXRpb25YbWxbIl9oZWFkbGluZSJdICAgICA9ICJYRVBHIGF1dGhlbnRpY2F0aW9uIjsNCiAgbWVudV9hdXRoZW50aWNhdGlvblhtbFsiX3VzYWdlIl0gICAgICAgID0gIkRvd25sb2FkaW5nIHRoZSBYRVBHIChYTUxUVikgZmlsZSB2aWEgYW4gSFRUUCByZXF1ZXN0IGlzIG9ubHkgcG9zc2libGUgd2l0aCBhdXRoZW50aWNhdGlvbi4iDQogIG1lbnVfYXV0aGVudGljYXRpb25YbWxbIm5hbWUiXSAgICAgICAgICA9ICJhdXRoZW50aWNhdGlvbi54bWwiOw0KICBtZW51X2F1dGhlbnRpY2F0aW9uWG1sWyJpZCJdICAgICAgICAgICAgPSAiYXV0aGVudGljYXRpb24ueG1sIjsNCiAgbWVudV9hdXRoZW50aWNhdGlvblhtbFsidmFsdWUiXSAgICAgICAgID0gbWVudV9hdXRoZW50aWNhdGlvblhtbFsibmFtZSJdOw0KICBtZW51X2F1dGhlbnRpY2F0aW9uWG1sWyJvbmNsaWNrIl0gICAgICAgPSAiamF2YXNjcmlwdDogdG9nZ2xlTWVudSh0aGlzKTsiOw0KICBtZW51X2F1dGhlbnRpY2F0aW9uWG1sWyJjbGFzcyJdICAgICAgICAgPSAibWVudS1ub3RBY3RpdmUiOw0KDQogIHZhciBtZW51X2F1dGhlbnRpY2F0aW9uQXBpID0gbmV3IE9iamVjdCgpOw0KICBtZW51X2F1dGhlbnRpY2F0aW9uQXBpWyJfZWxlbWVudCJdID0gIkxJIjsNCiAgbWVudV9hdXRoZW50aWNhdGlvbkFwaVsiX21lbnVUeXBlIl0gICAgID0gImNoZWNrYm94IjsNCiAgbWVudV9hdXRoZW50aWNhdGlvbkFwaVsiX2NvbmZpZ0tleSJdICAgID0gImF1dGhlbnRpY2F0aW9uLmFwaSI7DQogIG1lbnVfYXV0aGVudGljYXRpb25BcGlbIl9sYWJlbCJdICAgICAgICA9ICJBUEkgYXV0aGVudGljYXRpb24iOw0KICBtZW51X2F1dGhlbnRpY2F0aW9uQXBpWyJfaGVhZGxpbmUiXSAgICAgPSAiQVBJIGF1dGhlbnRpY2F0aW9uIjsNCiAgbWVudV9hdXRoZW50aWNhdGlvbkFwaVsiX3VzYWdlIl0gICAgICAgID0gIkFjY2VzcyB0byB0aGUgQVBJIGludGVyZmFjZSBpcyBvbmx5IHBvc3NpYmxlIHdpdGggYXV0aGVudGljYXRpb24uIg0KICBtZW51X2F1dGhlbnRpY2F0aW9uQXBpWyJuYW1lIl0gICAgICAgICAgPSAiYXV0aGVudGljYXRpb24uYXBpIjsNCiAgbWVudV9hdXRoZW50aWNhdGlvbkFwaVsiaWQiXSAgICAgICAgICAgID0gImF1dGhlbnRpY2F0aW9uLmFwaSI7DQogIG1lbnVfYXV0aGVudGljYXRpb25BcGlbInZhbHVlIl0gICAgICAgICA9IG1lbnVfYXV0aGVudGljYXRpb25BcGlbIm5hbWUiXTsNCiAgbWVudV9hdXRoZW50aWNhdGlvbkFwaVsib25jbGljayJdICAgICAgID0gImphdmFzY3JpcHQ6IHRvZ2dsZU1lbnUodGhpcyk7IjsNCiAgbWVudV9hdXRoZW50aWNhdGlvbkFwaVsiY2xhc3MiXSAgICAgICAgID0gIm1lbnUtbm90QWN0aXZlIjsNCiAgDQogIA0KICAvLyBNYWluIG1lbnUNCiAgbWVudVsxMF0gPSBtZW51X20zdTsNCg0KICBzd2l0Y2goY29uZmlnWyJlcGdTb3VyY2UiXSkgew0KICAgIGNhc2UgIlBNUyI6DQogICAgICBtZW51WzIwXSA9IG1lbnVfaWQ7DQogICAgICBicmVhazsNCiAgICANCiAgICBjYXNlICJYTUxUViI6DQogICAgICBtZW51WzQwXSA9IG1lbnVfeG1sdHY7DQogICAgICBicmVhazsNCg0KICAgIGNhc2UgIlhFUEciOg0KICAgICAgbWVudVs0MF0gPSBtZW51X3htbHR2Ow0KICAgICAgbWVudVs1MF0gPSBtZW51X21hcHBpbmc7DQogICAgICBicmVhazsNCiAgfQ0KICANCiAgbWVudVszMF0gPSBtZW51X2ZpbHRlcjsNCiAgDQogIGlmIChjb25maWdbImF1dGhlbnRpY2F0aW9uLndlYiJdID09IHRydWUpIHsNCiAgICBtZW51WzYwXSA9IG1lbnVfdXNlcnM7DQogIH0NCg0KICBtZW51WzcwXSA9IG1lbnVfc2V0dGluZ3M7DQogIG1lbnVbODBdID0gbWVudV9sb2c7DQogIGlmIChjb25maWdbImF1dGhlbnRpY2F0aW9uLndlYiJdID09IHRydWUpIHsNCiAgICBtZW51WzEwMF0gPSBtZW51X2xvZ291dDsNCiAgfSANCiAgDQoNCiAgLy8gU3ViLU1lbnUNCg0KICBzdWJNZW51WzcwMV0gPSBtZW51X3NjaGVkdWxlOw0KICBzdWJNZW51WzcwMl0gPSBtZW51X2ZpbGVzVXBkYXRlOw0KICBzdWJNZW51WzcwM10gPSBtZW51X3R1bmVyOw0KICBzdWJNZW51WzcwNF0gPSBtZW51X2VwZzsNCiAgc3ViTWVudVs3MDVdID0gbWVudV94ZXBnOw0KICBzdWJNZW51WzcwNl0gPSBtZW51X2F1dG9CYWNrdXBQYXRoOw0KICBzdWJNZW51WzcwN10gPSBtZW51X2F1dG9CYWNrdXBLZWVwOw0KICBzdWJNZW51WzcwOF0gPSBtZW51X2J1ZmZlcjsNCiAgDQogIHN1Yk1lbnVbNzEwXSA9IG1lbnVfYXV0aGVudGljYXRpb25XZWI7DQogIA0KICBpZiAoY29uZmlnWyJhdXRoZW50aWNhdGlvbi53ZWIiXSA9PSB0cnVlKSB7DQogICAgc3ViTWVudVs3MTFdID0gbWVudV9hdXRoZW50aWNhdGlvblBtczsNCiAgICBzdWJNZW51WzcxMl0gPSBtZW51X2F1dGhlbnRpY2F0aW9uTTN1Ow0KICAgIHN1Yk1lbnVbNzEzXSA9IG1lbnVfYXV0aGVudGljYXRpb25YbWw7DQogICAgc3ViTWVudVs3MTRdID0gbWVudV9hdXRoZW50aWNhdGlvbkFwaTsNCiAgfQ0KDQogIHN1Yk1lbnVbNzk5XSA9IG1lbnVfYXBpOw0KDQogIA0KDQogIHJldHVybg0KfQ0KDQpmdW5jdGlvbiBjcmVhdGVNZW51KCkgew0KDQogIHNob3dFbGVtZW50KCJwb3B1cCIsIGZhbHNlKTsNCg0KICAvL2NvbnNvbGUubG9nKGNvbmZpZyk7DQogIHNldE1lbnVJdGVtKCk7DQogIHZhciBtZW51SXRlbXMgPSBnZXRPYmpLZXlzKG1lbnUpDQogIHZhciBuYXYgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgiTkFWIilbMF07DQogIG5hdi5pbm5lckhUTUwgPSAiIjsNCiAgdmFyIG5ld0l0ZW0gPSBuZXcgT2JqZWN0KCk7DQoNCiAgZm9yICh2YXIgaSA9IDA7IGkgPCBtZW51SXRlbXMubGVuZ3RoOyBpKyspIHsNCg0KICAgIA0KICAgIHZhciBuZXdJdGVtID0gbWVudVttZW51SXRlbXNbaV1dOw0KICAgIG5ld0l0ZW1bImlkIl0gPSBtZW51SXRlbXNbaV07DQoNCiAgICANCiAgICBzd2l0Y2gobmV3SXRlbS5oYXNPd25Qcm9wZXJ0eSgiX2ljb24iKSkgew0KICAgICAgY2FzZSB0cnVlOiANCiAgICAgICAgdmFyIGl0ZW1UZXh0ID0gbmV3SXRlbVsiX3RleHQiXTsNCiAgICAgICAgZGVsZXRlIG5ld0l0ZW1bIl90ZXh0Il0NCiAgICAgICAgbmF2LmFwcGVuZENoaWxkKGNyZWF0ZUVsZW1lbnQobmV3SXRlbSkpOw0KICAgICAgICBuZXdJdGVtWyJfdGV4dCJdID0gaXRlbVRleHQ7DQogICAgICAgIHZhciBuZXdJY29uID0gbmV3IE9iamVjdCgpOw0KICAgICAgICBuZXdJY29uWyJfZWxlbWVudCJdID0gIklNRyI7DQogICAgICAgIG5ld0ljb25bInNyYyJdID0gbmV3SXRlbVsiX2ljb24iXTsNCg0KICAgICAgICB2YXIgY3VycmVudEVsZW1lbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChtZW51SXRlbXNbaV0pOw0KICAgICAgICBjdXJyZW50RWxlbWVudC5hcHBlbmRDaGlsZChjcmVhdGVFbGVtZW50KG5ld0ljb24pKTsNCg0KDQogICAgICAgIHZhciB0ZXh0ID0gbmV3IE9iamVjdCgpOw0KICAgICAgICB0ZXh0WyJfZWxlbWVudCJdID0gIlAiDQogICAgICAgIHRleHRbIl90ZXh0Il0gPSBpdGVtVGV4dDsNCiAgICAgICAgdGV4dFsiY2xhc3MiXSA9ICJuYXYtdGV4dCINCiAgICAgICAgY3VycmVudEVsZW1lbnQuYXBwZW5kQ2hpbGQoY3JlYXRlRWxlbWVudCh0ZXh0KSk7DQogICAgICAgIGJyZWFrOw0KDQogICAgICBkZWZhdWx0Og0KICAgICAgICBuYXYuYXBwZW5kQ2hpbGQoY3JlYXRlRWxlbWVudChuZXdJY29uKSk7DQogICAgICAgIGJyZWFrOw0KICAgIH0NCg0KICB9DQogIGlmIChhY3RpdmVNZW51ICE9IHVuZGVmaW5lZCkgew0KICAgIC8vY29uc29sZS5sb2coYWN0aXZlTWVudSk7DQogICAgdG9nZ2xlTWVudShhY3RpdmVNZW51KTsNCiAgfQ0KDQogIHJldHVybg0KfQ0KDQpmdW5jdGlvbiB0b2dnbGVNZW51KGVsbSkgew0KICAvL3Nob3dTdHJlYW1zKGZhbHNlKTsNCiAgY2xlYXJJbnRlcnZhbChsb2dJbnRlcnZhbCkNCiAgYWN0aXZlTWVudSA9IGVsbTsNCiAgdmFyIGl0ZW0gPSBtZW51W2VsbS5pZF0NCiAgdmFyIGRpdiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzZXR0aW5ncyIpOw0KICBkaXYuaW5uZXJIVE1MID0gIiI7DQogIA0KICAvLyBTZXQgSGVhZGxpbmUNCiAgdmFyIGhlYWRsaW5lID0gbmV3IE9iamVjdCgpOw0KICBoZWFkbGluZVsiX2VsZW1lbnQiXSA9ICJINCI7DQogIGhlYWRsaW5lWyJfdGV4dCJdID0gaXRlbVsiX2hlYWRsaW5lIl07DQogIGRpdi5hcHBlbmRDaGlsZChjcmVhdGVFbGVtZW50KGhlYWRsaW5lKSk7DQoNCiAgLy8gU3ViLU1lbnUNCiAgaWYgKGl0ZW0uaGFzT3duUHJvcGVydHkoIl9zdWJNZW51IikgPT0gdHJ1ZSkgew0KICAgIG9wZW5TdWJNZW51KGl0ZW0pOw0KICAgIHJldHVybg0KICB9DQoNCiAgLy8gTWFwcGluZywgVXNlcnMsIExvZywgRmlsZXMNCiAgc3dpdGNoKGl0ZW1bIl9jb25maWdLZXkiXSkgew0KICAgIGNhc2UgIm1hcHBpbmciOiAgICAgb3Blbk1hcHBpbmdFZGl0b3IoaXRlbSk7IHJldHVybjsgYnJlYWs7DQogICAgY2FzZSAidXNlcnMiOiAgICAgICBvcGVuVXNlcnMoaXRlbSk7IHJldHVybjsgYnJlYWs7DQogICAgY2FzZSAibG9nIjogICAgICAgICBzaG93TG9nKGl0ZW0pOyByZXR1cm47IGJyZWFrOw0KICAgIGNhc2UgImZpbGVzLm0zdSI6ICAgb3BlbkZpbGVzKGl0ZW0sICJtM3UiKTsgcmV0dXJuOyBicmVhazsNCiAgICBjYXNlICJmaWxlcy54bWx0diI6IG9wZW5GaWxlcyhpdGVtLCAieG1sdHYiKTsgcmV0dXJuOyBicmVhazsNCg0KICAgIGNhc2UgImZpbHRlciI6ICAgICAgc2hvd1N0cmVhbXModHJ1ZSk7IGJyZWFrOw0KICB9DQoNCiANCg0KICB2YXIgbmV3SFIgPSBuZXcgT2JqZWN0KCk7DQogIG5ld0hSWyJfZWxlbWVudCJdID0gIkhSIg0KICBkaXYuYXBwZW5kQ2hpbGQoY3JlYXRlRWxlbWVudChuZXdIUikpOw0KICANCiAgdmFyIG5ld0VudHJ5ID0gbmV3IE9iamVjdCgpOw0KICBuZXdFbnRyeVsiX2VsZW1lbnQiXSAgPSAiSU5QVVQiOw0KICBuZXdFbnRyeVsidHlwZSJdID0gImJ1dHRvbiI7DQogIC8vbmV3RW50cnlbImNsYXNzIl0gPSAic2F2ZSI7DQogIG5ld0VudHJ5WyJ2YWx1ZSJdID0gIlNhdmUiOw0KICBuZXdFbnRyeVsib25jbGljayJdID0gInNhdmVEYXRhMignc2V0dGluZ3MnKSINCiAgZGl2LmFwcGVuZENoaWxkKGNyZWF0ZUVsZW1lbnQobmV3RW50cnkpKTsNCg0KDQogIHZhciBuZXdXcmFwcGVyID0gbmV3IE9iamVjdCgpOw0KICBuZXdXcmFwcGVyWyJfZWxlbWVudCJdICA9ICJESVYiOw0KICBuZXdXcmFwcGVyWyJpZCJdICAgICAgICA9ICJib3gtd3JhcHBlciI7DQogIGRpdi5hcHBlbmRDaGlsZChjcmVhdGVFbGVtZW50KG5ld1dyYXBwZXIpKTsNCg0KICBkaXYgPSBkaXYubGFzdENoaWxkOw0KICANCiAgZGl2LmFwcGVuZENoaWxkKGNyZWF0ZU1lbnVJdGVtKGl0ZW0pKQ0KDQogIC8vIHVzYWdlIEluZm8gIA0KICBzd2l0Y2gobWVudVthY3RpdmVNZW51LmlkXS5oYXNPd25Qcm9wZXJ0eSgiX3VzYWdlIikpIHsNCiAgICBjYXNlIHRydWU6IA0KICAgICAgdmFyIHVzYWdlSXRlbSA9IG5ldyBPYmplY3QoKTsNCiAgICAgIHVzYWdlSXRlbVsiX2VsZW1lbnQiXSA9ICJQUkUiDQogICAgICB1c2FnZUl0ZW1bIl90ZXh0Il0gICAgPSBtZW51W2FjdGl2ZU1lbnUuaWRdWyJfdXNhZ2UiXTsNCiAgICAgIGRpdi5hcHBlbmRDaGlsZChjcmVhdGVFbGVtZW50KHVzYWdlSXRlbSkpOw0KICB9DQogIA0KICBjYWxjdWxhdGVXcmFwcGVySGVpZ2h0KCk7DQoNCn0NCg0KZnVuY3Rpb24gY3JlYXRlTWVudUl0ZW0oaXRlbSkgew0KICB2YXIgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIkRJViIpOw0KICBzd2l0Y2goaXRlbVsiX21lbnVUeXBlIl0pIHsNCiAgICBjYXNlICJpbnB1dEFycmF5IjoNCiAgICAgIGlmIChjb25maWcuaGFzT3duUHJvcGVydHkoaXRlbVsiX2NvbmZpZ0tleSJdKSA9PSB0cnVlKSB7DQogICAgICAgIHZhciB2YWx1ZSA9IGNvbmZpZ1tpdGVtWyJfY29uZmlnS2V5Il1dOw0KICAgICAgfSBlbHNlIHsNCiAgICAgICAgdmFyIHZhbHVlID0gbmV3IEFycmF5KCk7DQogICAgICB9DQogICAgICANCiAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdmFsdWUubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgdmFyIG5ld0VudHJ5ID0gbmV3IE9iamVjdCgpOw0KICAgICAgICBuZXdFbnRyeSA9IGl0ZW0NCiAgICAgICAgZGVsZXRlIG5ld0VudHJ5WyJvbmNsaWNrIl07DQogICAgICAgIG5ld0VudHJ5WyJfZWxlbWVudCJdICA9ICJJTlBVVCI7DQogICAgICAgIG5ld0VudHJ5WyJ2YWx1ZSJdICAgICA9IHZhbHVlW2ldOw0KICAgICAgICBuZXdFbnRyeVsidHlwZSJdICAgICAgPSAic2VhcmNoIjsNCiAgICAgICAgbmV3RW50cnlbImRhdGEtbWVudXR5cGUiXSA9IGl0ZW1bIl9tZW51VHlwZSJdOw0KICAgICAgICBuZXdFbnRyeVsiZGF0YS1tZW51a2V5Il0gPSBpdGVtWyJfY29uZmlnS2V5Il07DQogICAgICAgIGVsZW1lbnQuYXBwZW5kQ2hpbGQoY3JlYXRlRWxlbWVudChuZXdFbnRyeSkpOw0KDQogICAgICB9DQogICAgICAvLyBOZXcgZW50cnkgZm9yIGFycmF5DQogICAgICB2YXIgbmV3RW50cnkgPSBuZXcgT2JqZWN0KCk7DQogICAgICBuZXdFbnRyeVsiX2VsZW1lbnQiXSAgICAgID0gIklOUFVUIjsNCiAgICAgIG5ld0VudHJ5WyJ0eXBlIl0gICAgICAgICAgPSAic2VhcmNoIjsNCiAgICAgIG5ld0VudHJ5WyJuYW1lIl0gICAgICAgICAgPSBpdGVtWyJuYW1lIl07DQogICAgICBuZXdFbnRyeVsicGxhY2Vob2xkZXIiXSAgID0gaXRlbVsicGxhY2Vob2xkZXIiXTsNCiAgICAgIG5ld0VudHJ5WyJ2YWx1ZSJdICAgICAgICAgPSAiIjsNCiAgICAgIG5ld0VudHJ5WyJkYXRhLW1lbnV0eXBlIl0gPSBpdGVtWyJfbWVudVR5cGUiXTsNCiAgICAgIG5ld0VudHJ5WyJkYXRhLW1lbnVrZXkiXSAgPSBpdGVtWyJfY29uZmlnS2V5Il07DQogICAgICBlbGVtZW50LmFwcGVuZENoaWxkKGNyZWF0ZUVsZW1lbnQobmV3RW50cnkpKTsNCiAgICAgIGJyZWFrOw0KICANCiAgICBjYXNlICJzaW5nbGVJbnB1dCI6DQogICAgICB2YXIgdmFsdWUgPSBjb25maWdbaXRlbVsiX2NvbmZpZ0tleSJdXTsNCiAgICAgIGlmICh2YWx1ZSA9PSB1bmRlZmluZWQpIHsNCiAgICAgICAgdmFsdWUgPSAiIjsNCiAgICAgIH0NCiAgICAgIHZhciBuZXdFbnRyeSA9IG5ldyBPYmplY3QoKTsNCiAgICAgIG5ld0VudHJ5ID0gaXRlbTsNCiAgICAgIGRlbGV0ZSBuZXdFbnRyeVsib25jbGljayJdOw0KICAgICAgbmV3RW50cnlbIl9lbGVtZW50Il0gID0gIklOUFVUIjsNCiAgICAgIG5ld0VudHJ5WyJ2YWx1ZSJdICAgICA9IHZhbHVlOw0KICAgICAgbmV3RW50cnlbInR5cGUiXSAgICAgID0gInNlYXJjaCI7DQogICAgICBuZXdFbnRyeVsiZGF0YS1tZW51dHlwZSJdID0gaXRlbVsiX21lbnVUeXBlIl07DQogICAgICBuZXdFbnRyeVsiZGF0YS1tZW51a2V5Il0gPSBpdGVtWyJfY29uZmlnS2V5Il07DQogICAgICBlbGVtZW50LmFwcGVuZENoaWxkKGNyZWF0ZUVsZW1lbnQobmV3RW50cnkpKTsNCiAgICAgIGJyZWFrOw0KDQogICAgY2FzZSAiY2hlY2tib3giOg0KICAgICAgdmFyIHZhbHVlID0gY29uZmlnW2l0ZW1bIl9jb25maWdLZXkiXV07DQogICAgICBpZiAodmFsdWUgPT0gdW5kZWZpbmVkKSB7DQogICAgICAgIHZhbHVlID0gZmFsc2U7DQogICAgICB9DQogICAgICB2YXIgbmV3RW50cnkgPSBuZXcgT2JqZWN0KCk7DQogICAgICBuZXdFbnRyeSA9IGl0ZW07DQogICAgICBkZWxldGUgbmV3RW50cnlbIm9uY2xpY2siXTsNCiAgICAgIG5ld0VudHJ5WyJfZWxlbWVudCJdICA9ICJJTlBVVCI7DQogICAgICBuZXdFbnRyeVsidmFsdWUiXSAgICAgPSB2YWx1ZTsNCiAgICAgIG5ld0VudHJ5WyJ0eXBlIl0gICAgICA9ICJjaGVja2JveCI7DQogICAgICBuZXdFbnRyeVsiZGF0YS1tZW51dHlwZSJdID0gaXRlbVsiX21lbnVUeXBlIl07DQogICAgICBuZXdFbnRyeVsiZGF0YS1tZW51a2V5Il0gPSBpdGVtWyJfY29uZmlnS2V5Il07DQogICAgICBlbGVtZW50LmFwcGVuZENoaWxkKGNyZWF0ZUVsZW1lbnQobmV3RW50cnkpKTsNCiAgICAgIGVsZW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIklOUFVUIilbMF0uY2hlY2tlZCA9IHZhbHVlOw0KICAgICAgYnJlYWs7DQogICAgDQogICAgY2FzZSAic2VsZWN0IjoNCiAgICAgIHZhciB2YWx1ZSA9IGNvbmZpZ1tpdGVtWyJfY29uZmlnS2V5Il1dOw0KICAgICAgdmFyIG5ld0VudHJ5ID0gbmV3IE9iamVjdCgpOw0KICAgICAgbmV3RW50cnkgPSBpdGVtOw0KICAgICAgZGVsZXRlIG5ld0VudHJ5WyJvbmNsaWNrIl0NCiAgICAgIG5ld0VudHJ5WyJfZWxlbWVudCJdICA9ICJTRUxFQ1QiOw0KICAgICAgZWxlbWVudC5hcHBlbmRDaGlsZChjcmVhdGVFbGVtZW50KG5ld0VudHJ5KSk7DQogICAgICB2YXIgc2VsZWN0RWxlbWVudCA9IGVsZW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlNFTEVDVCIpWzBdOw0KICAgICAgdmFyIHZhbHVlcyA9IGl0ZW1bIl9vcHRpb25WYWx1ZXMiXTsNCiAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdmFsdWVzLmxlbmd0aDsgaSsrKSB7DQogICAgICAgIHZhciBuZXdFbnRyeSA9IG5ldyBPYmplY3Q7DQogICAgICAgIG5ld0VudHJ5WyJfZWxlbWVudCJdICA9ICJPUFRJT04iOw0KICAgICAgICBuZXdFbnRyeVsiX3RleHQiXSAgICAgPSBpdGVtWyJfdGV4dCJdICsgIjogIiArIHZhbHVlc1tpXTsNCiAgICAgICAgbmV3RW50cnlbInZhbHVlIl0gICAgID0gdmFsdWVzW2ldOw0KICAgICAgICBzZWxlY3RFbGVtZW50LmFwcGVuZENoaWxkKGNyZWF0ZUVsZW1lbnQobmV3RW50cnkpKTsNCiAgICAgIH0NCiAgICAgIHNlbGVjdEVsZW1lbnQudmFsdWUgPSB2YWx1ZTsNCiAgICAgIGJyZWFrOw0KICAgIA0KICB9DQogIHJldHVybiBlbGVtZW50Ow0KfQ0KDQpmdW5jdGlvbiBvcGVuU3ViTWVudShpdGVtKSB7DQogIHZhciBlbnRyeXMgPSBpdGVtWyJfc3ViTWVudSJdLnNwbGl0KCIsIik7DQogIHZhciBkaXYgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic2V0dGluZ3MiKTsNCg0KICB2YXIgbmV3SFIgPSBuZXcgT2JqZWN0KCk7DQogIG5ld0hSWyJfZWxlbWVudCJdID0gIkhSIg0KICBkaXYuYXBwZW5kQ2hpbGQoY3JlYXRlRWxlbWVudChuZXdIUikpOw0KICANCiAgdmFyIG5ld0VudHJ5ID0gbmV3IE9iamVjdCgpOw0KICBuZXdFbnRyeVsiX2VsZW1lbnQiXSAgPSAiSU5QVVQiOw0KICBuZXdFbnRyeVsidHlwZSJdID0gImJ1dHRvbiI7DQogIC8vbmV3RW50cnlbImNsYXNzIl0gPSAic2F2ZSI7DQogIG5ld0VudHJ5WyJ2YWx1ZSJdID0gIlNhdmUiOw0KICBuZXdFbnRyeVsib25jbGljayJdID0gInNhdmVEYXRhMignc2V0dGluZ3MnKSINCiAgZGl2LmFwcGVuZENoaWxkKGNyZWF0ZUVsZW1lbnQobmV3RW50cnkpKTsNCg0KICBpZiAoaXRlbVsiX2NvbmZpZ0tleSJdID09ICJzZXR0aW5ncyIpIHsNCiAgICB2YXIgbmV3RW50cnkgPSBuZXcgT2JqZWN0KCk7DQogICAgbmV3RW50cnlbIl9lbGVtZW50Il0gID0gIklOUFVUIjsNCiAgICBuZXdFbnRyeVsidHlwZSJdID0gImJ1dHRvbiI7DQogICAgLy9uZXdFbnRyeVsiY2xhc3MiXSA9ICJzYXZlIjsNCiAgICBuZXdFbnRyeVsidmFsdWUiXSA9ICJCYWNrdXAiOw0KICAgIG5ld0VudHJ5WyJvbmNsaWNrIl0gPSAieHRldmVCYWNrdXAoKSINCiAgICBkaXYuYXBwZW5kQ2hpbGQoY3JlYXRlRWxlbWVudChuZXdFbnRyeSkpOw0KICB9DQoNCiAgaWYgKGl0ZW1bIl9jb25maWdLZXkiXSA9PSAic2V0dGluZ3MiKSB7DQogICAgdmFyIG5ld0VudHJ5ID0gbmV3IE9iamVjdCgpOw0KICAgIG5ld0VudHJ5WyJfZWxlbWVudCJdICA9ICJJTlBVVCI7DQogICAgbmV3RW50cnlbInR5cGUiXSA9ICJidXR0b24iOw0KICAgIC8vbmV3RW50cnlbImNsYXNzIl0gPSAic2F2ZSI7DQogICAgbmV3RW50cnlbInZhbHVlIl0gPSAiUmVzdG9yZSI7DQogICAgbmV3RW50cnlbIm9uY2xpY2siXSA9ICJ4dGV2ZVJlc3RvcmUodGhpcykiDQogICAgZGl2LmFwcGVuZENoaWxkKGNyZWF0ZUVsZW1lbnQobmV3RW50cnkpKTsNCiAgfQ0KDQoNCiAgdmFyIG5ld1dyYXBwZXIgPSBuZXcgT2JqZWN0KCk7DQogIG5ld1dyYXBwZXJbIl9lbGVtZW50Il0gID0gIkRJViI7DQogIG5ld1dyYXBwZXJbImlkIl0gICAgICAgID0gImJveC13cmFwcGVyIjsNCiAgZGl2LmFwcGVuZENoaWxkKGNyZWF0ZUVsZW1lbnQobmV3V3JhcHBlcikpOw0KICANCiAgZGl2ID0gZGl2Lmxhc3RDaGlsZDsNCiAgDQoNCiAgZm9yICh2YXIgaSA9IDA7IGkgPCBlbnRyeXMubGVuZ3RoOyBpKyspIHsNCiAgICB2YXIgaXRlbSA9IHN1Yk1lbnVbZW50cnlzW2ldXTsNCiAgICBpZiAoaXRlbSA9PSB1bmRlZmluZWQpIHsNCiAgICAgIGJyZWFrOw0KICAgIH0NCiAgICANCiAgICB2YXIgY29udGFpbmVyID0gbmV3IE9iamVjdCgpOw0KICAgIGNvbnRhaW5lclsiX2VsZW1lbnQiXSA9ICJESVYiOw0KICAgIGRpdi5hcHBlbmRDaGlsZChjcmVhdGVFbGVtZW50KGNvbnRhaW5lcikpOw0KDQogICAgdmFyIGRpdkNvbnRhaW5lciA9IGRpdi5sYXN0Q2hpbGQ7DQogICAgDQogICAgdmFyIGhlYWRsaW5lID0gbmV3IE9iamVjdCgpOw0KICAgIGhlYWRsaW5lWyJfZWxlbWVudCJdID0gIkg1IjsNCiAgICBoZWFkbGluZVsiX3RleHQiXSA9IGl0ZW1bIl9oZWFkbGluZSJdOw0KICAgIGRpdkNvbnRhaW5lci5hcHBlbmRDaGlsZChjcmVhdGVFbGVtZW50KGhlYWRsaW5lKSk7DQoNCiAgICBkaXZDb250YWluZXIuYXBwZW5kQ2hpbGQoY3JlYXRlTWVudUl0ZW0oaXRlbSkpDQoNCiAgICBzd2l0Y2goaXRlbS5oYXNPd25Qcm9wZXJ0eSgiX3VzYWdlIikpIHsNCiAgICAgIGNhc2UgdHJ1ZTogDQogICAgICAgIHZhciB1c2FnZUl0ZW0gPSBuZXcgT2JqZWN0KCk7DQogICAgICAgIHVzYWdlSXRlbVsiX2VsZW1lbnQiXSA9ICJQUkUiDQogICAgICAgIHVzYWdlSXRlbVsiX3RleHQiXSAgICA9IGl0ZW1bIl91c2FnZSJdOw0KICAgICAgICBkaXZDb250YWluZXIuYXBwZW5kQ2hpbGQoY3JlYXRlRWxlbWVudCh1c2FnZUl0ZW0pKTsNCiAgICB9DQoNCiAgICB2YXIgaHIgPSBuZXcgT2JqZWN0KCk7DQogICAgaHJbIl9lbGVtZW50Il0gPSAiSFIiOw0KICAgIGRpdkNvbnRhaW5lci5hcHBlbmRDaGlsZChjcmVhdGVFbGVtZW50KGhyKSk7DQogIA0KICB9DQoNCiAgY2FsY3VsYXRlV3JhcHBlckhlaWdodCgpOw0KICByZXR1cm4NCn0NCg0KZnVuY3Rpb24gc2F2ZURhdGEyKGVsbSkgew0KICB2YXIgZGl2ICAgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChlbG0pOw0KICB2YXIgaW5wdXRzID0gZGl2LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJJTlBVVCIpOw0KICB2YXIgc2VsZWN0cyA9IGRpdi5nZXRFbGVtZW50c0J5VGFnTmFtZSgiU0VMRUNUIik7DQogIHZhciB2YWx1ZSwgY29uZmlnS2V5Ow0KICB2YXIgZGF0YSA9IG5ldyBPYmplY3QoKTsNCiAgdmFyIHZhbHVlQXJyID0gbmV3IEFycmF5KCk7DQogIHZhciBuZXdEYXRhID0gZmFsc2U7DQogIA0KICBmb3IgKHZhciBpID0gMDsgaSA8IGlucHV0cy5sZW5ndGg7IGkrKykgew0KICAgIGlmIChpbnB1dHNbaV0udHlwZSAhPSAiYnV0dG9uIikgew0KICAgICAgdmFyIG1lbnVUeXBlID0gaW5wdXRzW2ldLmdldEF0dHJpYnV0ZSgiZGF0YS1tZW51dHlwZSIpOw0KICAgICAgDQogICAgICAvL2NvbnNvbGUubG9nKG1lbnVUeXBlKTsNCiAgICAgIHN3aXRjaChtZW51VHlwZSkgew0KICAgICAgICBjYXNlICJzaW5nbGVJbnB1dCI6DQogICAgICAgICAgdmFsdWUgPSBpbnB1dHNbaV0udmFsdWU7DQogICAgICAgICAgaWYgKHZhbHVlID09ICIiIHx8IHZhbHVlID09IHVuZGVmaW5lZCkgew0KICAgICAgICAgICAgZGF0YSA9IG5ldyBPYmplY3QoKTsNCiAgICAgICAgICAgIGRhdGFbImRlbGV0ZSJdID0gaW5wdXRzW2ldLm5hbWUNCiAgICAgICAgICAgIG5ld0RhdGEgPSB0cnVlOw0KICAgICAgICAgIH0gZWxzZSB7DQogICAgICAgICAgICBuZXdEYXRhID0gdHJ1ZTsNCiAgICAgICAgICAgIGRhdGFbaW5wdXRzW2ldLm5hbWVdID0gdmFsdWU7DQogICAgICAgICAgICBjb25zb2xlLmxvZyhkYXRhKTsNCiAgICAgICAgICB9DQogICAgICAgICAgYnJlYWs7DQogICAgICAgIGNhc2UgImlucHV0QXJyYXkiOiANCiAgICAgICAgICB2YWx1ZSA9IGlucHV0c1tpXS52YWx1ZTsNCiAgICAgICAgICBpZiAodmFsdWUgIT0gIiIgJiYgdmFsdWUgIT0gdW5kZWZpbmVkKSB7DQogICAgICAgICAgICBuZXdEYXRhID0gdHJ1ZTsNCiAgICAgICAgICAgIHZhbHVlQXJyLnB1c2godmFsdWUpDQogICAgICAgICAgICBkYXRhW2lucHV0c1tpXS5uYW1lXSA9IHZhbHVlQXJyOw0KICAgICAgICAgICAgY29uZmlnS2V5ID0gaW5wdXRzW2ldLm5hbWU7DQogICAgICAgICAgfSANCiAgICAgICAgICANCiAgICAgICAgICBicmVhazsNCg0KICAgICAgICBjYXNlICJjaGVja2JveCI6DQogICAgICAgICAgdmFsdWUgPSBpbnB1dHNbaV0uY2hlY2tlZA0KICAgICAgICAgIGRhdGFbaW5wdXRzW2ldLm5hbWVdID0gdmFsdWU7DQogICAgICB9DQogICAgICANCiAgICB9DQogICAgDQogIH0NCg0KDQogIC8vIERlbGV0ZSBjb25maWcga2V5DQogIGlmICh2YWx1ZUFyci5sZW5ndGggPT0gMCAmJiBuZXdEYXRhID09IGZhbHNlKSB7DQogICAgbmV3RGF0YSA9IHRydWU7DQogICAgZGF0YSA9IG5ldyBPYmplY3QoKTsNCiAgICBkYXRhWyJkZWxldGUiXSA9IGNvbmZpZ0tleTsNCiAgfSANCg0KDQogIGZvciAodmFyIGkgPSAwOyBpIDwgc2VsZWN0cy5sZW5ndGg7IGkrKykgew0KICAgIHZhciB2YWx1ZSA9IHNlbGVjdHNbaV0ub3B0aW9uc1tzZWxlY3RzW2ldLnNlbGVjdGVkSW5kZXhdLnZhbHVlOw0KICAgIHN3aXRjaChpc05hTih2YWx1ZSkpIHsNCiAgICAgIGNhc2UgZmFsc2U6IHZhbHVlID0gcGFyc2VJbnQodmFsdWUpOyBicmVhazsNCiAgICB9DQoNCiAgICBkYXRhW3NlbGVjdHNbaV0ubmFtZV0gPSB2YWx1ZTsNCiAgICBuZXdEYXRhID0gdHJ1ZTsNCiAgfQ0KDQogIC8vY29uc29sZS5sb2coZGF0YSwgbmV3RGF0YSk7DQoNCiAgaWYgKG5ld0RhdGEgPT0gdHJ1ZSkgew0KICAgIGRhdGFbImNtZCJdID0gInNhdmVDb25maWciOw0KICAgIGlmICghZGF0YS5oYXNPd25Qcm9wZXJ0eSgnZmlsdGVyJykpIHsNCiAgICAgIGRhdGFbImZpbHRlciJdID0gY29uZmlnWyJmaWx0ZXIiXQ0KICAgIH0NCiAgICB2YXIgc2V0dGluZ3MgPSBuZXcgT2JqZWN0KCk7DQogICAgc2V0dGluZ3NbImNtZCJdID0gZGF0YVsiY21kIl07DQogICAgc2V0dGluZ3NbInNldHRpbmdzIl0gPSBkYXRhOw0KICAgIGNvbnNvbGUubG9nKHNldHRpbmdzKTsNCiAgICB4VGVWZShzZXR0aW5ncyk7DQogIH0NCn0NCg==" + webUI["html/configuration.html"] = "PCFkb2N0eXBlIGh0bWw+DQo8aHRtbD4NCiAgPGhlYWQ+DQogICAgPG1ldGEgY2hhcnNldD0idXRmLTgiPg0KICAgIDxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgsIGluaXRpYWwtc2NhbGU9MS4wIiAvPiANCiAgICA8dGl0bGU+eFRlVmU8L3RpdGxlPg0KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iY3NzL3NjcmVlbi5jc3MiIHR5cGU9InRleHQvY3NzIj4NCiAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9ImNzcy9iYXNlLmNzcyIgdHlwZT0idGV4dC9jc3MiPg0KICAgIDxzY3JpcHQgbGFuZ3VhZ2U9ImphdmFzY3JpcHQiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJqcy9jb25maWd1cmF0aW9uX3RzLmpzIj48L3NjcmlwdD4NCiAgICA8c2NyaXB0IGxhbmd1YWdlPSJqYXZhc2NyaXB0IiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ianMvbmV0d29ya190cy5qcyI+PC9zY3JpcHQ+DQogICAgPHNjcmlwdCBsYW5ndWFnZT0iamF2YXNjcmlwdCIgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9ImpzL21lbnVfdHMuanMiPjwvc2NyaXB0Pg0KICAgIDxzY3JpcHQgbGFuZ3VhZ2U9ImphdmFzY3JpcHQiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJqcy9zZXR0aW5nc190cy5qcyI+PC9zY3JpcHQ+DQogICAgPHNjcmlwdCBsYW5ndWFnZT0iamF2YXNjcmlwdCIgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9ImpzL2Jhc2VfdHMuanMiPjwvc2NyaXB0Pg0KICA8L2hlYWQ+DQoNCiAgICA8Ym9keSBvbmxvYWQ9ImphdmFzY3JpcHQ6IHJlYWR5Rm9yQ29uZmlndXJhdGlvbigwKTsiPg0KICAgICAgICAgIA0KICAgICAgPGRpdiBpZD0ibG9hZGluZyIgY2xhc3M9ImJsb2NrIj4NCiAgICAgICAgPGRpdiBjbGFzcz0ibG9hZGVyIj48L2Rpdj4NCiAgICAgIDwvZGl2Pg0KDQogICAgICA8ZGl2IGlkPSJoZWFkZXIiIGNsYXNzPSJpbWdDZW50ZXIiPjwvZGl2Pg0KICAgICAgPGRpdiBpZD0iYm94Ij4NCiAgICAgICAgDQogICAgICAgIDx0YWJsZSBpZD0iY2xpZW50SW5mbyIgY2xhc3M9InZpc2libGUiPg0KICAgICAgICAgIDx0cj4NCiAgICAgICAgICAgIDx0ZCBjbGFzcz0idGRLZXkiPlZlcnNpb246PC90ZD4NCiAgICAgICAgICAgIDx0ZCBpZD0idmVyc2lvbiIgY2xhc3M9InRkVmFsIj4mbmJzcDs8L3RkPg0KICAgICAgICAgICAgPHRkIGNsYXNzPSJ0ZEtleSI+T1M6PC90ZD4NCiAgICAgICAgICAgIDx0ZCBpZD0ib3MiIGNsYXNzPSJ0ZFZhbCI+Jm5ic3A7PC90ZD4NCiAgICAgICAgICA8L3RyPg0KICAgICAgICAgIDx0cj4NCiAgICAgICAgICAgIDx0ZCBjbGFzcz0idGRLZXkiPlVVSUQ6PC90ZD4NCiAgICAgICAgICAgIDx0ZCBpZD0idXVpZCIgY2xhc3M9InRkVmFsIj4mbmJzcDs8L3RkPg0KICAgICAgICAgICAgPHRkIGNsYXNzPSJ0ZEtleSI+QXJjaDo8L3RkPg0KICAgICAgICAgICAgPHRkIGlkPSJhcmNoIiBjbGFzcz0idGRWYWwiPiZuYnNwOzwvdGQ+DQogICAgICAgICAgPC90cj4NCiAgICAgICAgICA8dHI+DQogICAgICAgICAgICA8dGQgY2xhc3M9InRkS2V5Ij5TdHJlYW1zOjwvdGQ+DQogICAgICAgICAgICA8dGQgaWQ9InN0cmVhbXMiIGNsYXNzPSJ0ZFZhbCI+Jm5ic3A7PC90ZD4NCiAgICAgICAgICAgIDx0ZCBjbGFzcz0idGRLZXkiPkRWUjo8L3RkPg0KICAgICAgICAgICAgPHRkIGlkPSJEVlIiIGNsYXNzPSJ0ZFZhbCI+Jm5ic3A7PC90ZD4NCiAgICAgICAgICA8L3RyPg0KICAgICAgICA8L3RhYmxlPg0KICAgICAgICANCiAgICAgICAgPGRpdiBpZD0iaGVhZGxpbmUiPg0KICAgICAgICAgIDxoMSBpZD0iaGVhZC10ZXh0IiBjbGFzcz0iY2VudGVyIj5Db25maWd1cmF0aW9uPC9oMT4gICAgICANCiAgICAgICAgPC9kaXY+DQogICAgICAgIDxwIGlkPSJlcnIiIGNsYXNzPSJlcnJvck1zZyBjZW50ZXIiPjwvcD4gICANCiAgICAgICAgPGRpdiBpZD0iY29udGVudCI+DQogICAgICAgICAgICANCiAgICAgICAgPC9kaXY+DQogICAgICAgIDxkaXYgaWQ9ImJveC1mb290ZXIiPg0KICAgICAgICAgIDxpbnB1dCBpZD0ibmV4dCIgY2xhc3M9IiIgdHlwZT0iYnV0dG9uIiBuYW1lPSJuZXh0IiB2YWx1ZT0iTmV4dCIgb25jbGljaz0iamF2YXNjcmlwdDogc2F2ZVdpemFyZCgpOyI+DQogICAgICAgIDwvZGl2Pg0KICAgICAgPC9kaXY+DQogICAgPC9ib2R5Pg0KPC9odG1sPg==" + webUI["html/css/screen.css"] = "bmF2IGltZyB7DQogIGRpc3BsYXk6IGJsb2NrOw0KICBtYXgtaGVpZ2h0OiAyMHB4Ow0KICBtYXgtd2lkdGg6IDIwcHg7DQogIGZsb2F0OiBsZWZ0Ow0KfQ0KDQpuYXYgcCB7DQogIHRleHQtYWxpZ246IGxlZnQ7DQogIHBhZGRpbmc6IDBweCAzMHB4Ow0KfQ0KDQojbGF5b3V0IHsNCiAgZGlzcGxheTogYmxvY2s7DQogIGhlaWdodDogMTAwJTsNCn0NCg0KDQoubGF5b3V0LWxlZnQgew0KICBkaXNwbGF5OiBibG9jazsNCiAgbWluLXdpZHRoOiAxNTBweDsNCiAgbWF4LXdpZHRoOiAyMCU7DQogIGJhY2tncm91bmQtY29sb3I6ICMxMTE7DQogIGhlaWdodDogaW5oZXJpdDsNCiAgZmxvYXQ6IGxlZnQ7DQp9DQoNCi5sYXlvdXQtcmlnaHQgew0KICBkaXNwbGF5OiBibG9jazsNCiAgYmFja2dyb3VuZC1jb2xvcjogIzQ0NDsNCn0NCg0KI21lbnUtd3JhcHBlciB7DQogIGhlaWdodDogMTAwJTsNCn0NCg0KDQojbG9nbyB7DQogIGRpc3BsYXk6IGJsb2NrOw0KICBtaW4td2lkdGg6IDE4MHB4Ow0KICB3aWR0aDogMTAwJTsNCiAgaGVpZ2h0OiAxMDBweDsNCiAgYmFja2dyb3VuZDogdXJsKCIuLi9pbWcvbG9nb193XzYwMHgyMDAucG5nIik7DQogIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7DQogIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjsgDQogIGJhY2tncm91bmQtc2l6ZTogMTAwJTsNCn0NCg0KDQojcGFnZSB7DQogIG1heC13aWR0aDogOTUwcHg7DQogIG1hcmdpbjogYXV0bzsNCiAgYmFja2dyb3VuZC1jb2xvcjogIzQ0NDsNCg0KICAvKg0KICBoZWlnaHQ6IC13ZWJraXQtY2FsYygxMDAlIC0gMTMwcHgpOw0KICBoZWlnaHQ6IC1tb3otY2FsYygxMDAlIC0gMTMwcHgpOw0KICBoZWlnaHQ6IGNhbGMoMTAwJSAtIDEzMHB4KTsNCiAgKi8NCiAgDQogIG1pbi1oZWlnaHQ6IC13ZWJraXQtY2FsYygxMDAlIC0gMTIwcHgpOw0KICBtaW4taGVpZ2h0OiAtbW96LWNhbGMoMTAwJSAtIDEyMHB4KTsNCiAgbWluLWhlaWdodDogY2FsYygxMDAlIC0gMTIwcHgpOw0KICANCiAgDQogIGJveC1zaGFkb3c6IDBweCA1cHggNXB4ICMyMjI7DQogIA0KfQ0KDQojdWlTZXR0aW5nIHsNCiAgZmxvYXQ6IHJpZ2h0Ow0KICBtYXJnaW4tcmlnaHQ6IDI1cHg7DQp9DQoNCiNib3ggaW5wdXRbdHlwZT10ZXh0XSwgI2JveCBpbnB1dFt0eXBlPXBhc3N3b3JkXSB7DQogIHdpZHRoOiAtd2Via2l0LWNhbGMoMTAwJSAtIDIwcHgpOw0KICB3aWR0aDogLW1vei1jYWxjKDEwMCUgLSAyMHB4KTsNCiAgd2lkdGg6IGNhbGMoMTAwJSAtIDIwcHgpOw0KfQ0KDQojYm94IGlucHV0W3R5cGU9c3VibWl0XXsNCiAgbWFyZ2luOiA1MHB4IGF1dG87DQp9DQoNCiNzZXR0aW5ncyB7DQogIGRpc3BsYXk6IGJsb2NrOw0KICBwYWRkaW5nOiAxMHB4IDEwcHg7DQp9DQoNCiNzZXR0aW5ncyBoNSB7DQogIG1hcmdpbjogNTBweCAwcHggMTBweCAwcHg7DQp9DQoNCiNjb250ZW50LWludGVyYWN0aW9uIC5zZWFyY2ggew0KICB3aWR0aDogMjAwcHg7DQogIGJvcmRlcjogMXB4IHNvbGlkICMwMDA7DQogIHBhZGRpbmc6IDlweDsNCiAgYmFja2dyb3VuZC1jb2xvcjogIzMzMzsNCiAgbWFyZ2luOiAxMHB4Ow0KICBmbG9hdDogcmlnaHQ7DQogIGJvcmRlci1yYWRpdXM6IDNweDsNCg0KfQ0KDQojbXlTdHJlYW1zIHsNCiAgcG9zaXRpb246IGZpeGVkOw0KICBib3R0b206IDBweDsNCiAgYmFja2dyb3VuZC1jb2xvcjogIzExMTsNCiAgd2lkdGg6IDEwMCU7DQogIG1heC13aWR0aDogOTUwcHg7DQoNCiAgLyoNCiAgbWF4LWhlaWdodDogMTAwcHg7DQogICovDQogIG1hcmdpbi1ib3R0b206IDBweDsNCn0NCg0KI215U3RyZWFtcyBpbWcgew0KICB3aWR0aDogNCU7DQogIHBhZGRpbmc6IDJweCA1cHg7DQogIGN1cnNvcjogcG9pbnRlcjsNCiAgZmxvYXQ6IHJpZ2h0Ow0KfQ0KDQojc2V0dGluZ3MtZm9vdGVyIHsNCg0KfQ0KDQoNCi8qIFdpemFyZCovDQojYm94IHsNCiAgYmFja2dyb3VuZC1jb2xvcjogIzQ0NDsNCiAgbWluLWhlaWdodDogNDAwcHg7DQogIA0KICBkaXNwbGF5OiBmbGV4Ow0KICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOw0KICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47DQp9DQoNCiNib3ggcHsNCiAgcGFkZGluZzogMTBweCAwcHg7DQp9DQoNCiNib3gtZm9vdGVyIHsNCiAgbWFyZ2luLXRvcDogYXV0bzsNCn0NCg0KI2JveC1mb290ZXIgew0KICBtYXJnaW46IGF1dG87DQogIHBhZGRpbmc6IDEwcHg7DQp9DQoNCiNoZWFkbGluZSB7DQogIGJhY2tncm91bmQtY29sb3I6ICMyMjI7DQogIGJvcmRlci1ib3R0b206IHNvbGlkIDJweCAjMjIyOw0KICB0cmFuc2l0aW9uOiBhbGwgMC41czsNCiAgcGFkZGluZzogMTBweCAwcHg7DQogIGRpc3BsYXk6IGJsb2NrOw0KfQ0KDQojY29udGVudCB7DQogIGRpc3BsYXk6IGJsb2NrOw0KICBvdmVyZmxvdzogYXV0bzsNCiAgcGFkZGluZzogMTBweDsNCn0NCg0KLyogLS0tICovDQoNCg0KI2NsaWVudEluZm8sICNhY3RpdmVTdHJlYW1zLCAjaW5hY3RpdmVTdHJlYW1zIHsNCiAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZTsNCiAgZGlzcGxheTogYmxvY2s7DQogIGZvbnQtc2l6ZTogOXB4Ow0KICBiYWNrZ3JvdW5kLWNvbG9yOiAjMTExOw0KICBjb2xvcjogIzAwRTZGRjsNCiAgYm9yZGVyLWJvdHRvbTogc29saWQgMHB4OzsNCiAgcGFkZGluZzogMHB4Ow0KICBsZXR0ZXItc3BhY2luZzogMXB4Ow0KICBvdmVyZmxvdy14OiBoaWRkZW47DQogIGJvcmRlci1zcGFjaW5nOiA0cHggNHB4Ow0KICBib3JkZXItYm90dG9tOiBzb2xpZCAxcHggIzQ0NDsNCn0NCg0KI215U3RyZWFtc0JveCB7DQogIHBvc2l0aW9uOiByZWxhdGl2ZTsNCiAgcGFkZGluZzogMHB4Ow0KICAvKmhlaWdodDogMTAwcHg7Ki8NCiAgbWF4LWhlaWdodDogMTUwcHg7DQogIGJhY2tncm91bmQtY29sb3I6ICMxMTE7DQogIGNvbG9yOiB3aGl0ZTsNCiAgZGlzcGxheTpmbGV4Ow0KICBqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyOw0KICBhbGlnbi1pdGVtczpjZW50ZXI7DQp9DQoNCiNvcGVuU3RyZWFtcyB7DQogIHdpZHRoOiAyMHB4Ow0KICBoZWlnaHQ6IDIwcHg7DQogIGN1cnNvcjogcG9pbnRlcjsNCiAgZmxvYXQ6IHJpZ2h0Ow0KICBwb3NpdGlvbjogYWJzb2x1dGU7DQogIHJpZ2h0OiAwcHg7DQogIGJvdHRvbTogMHB4Ow0KICBiYWNrZ3JvdW5kOiB1cmwoIi4uL2ltZy90b3VjaC5wbmciKTsNCiAgYmFja2dyb3VuZC1jb2xvcjogIzExMTsNCiAgDQogIGJhY2tncm91bmQtcG9zaXRpb246IGJvdHRvbSByaWdodDsgIA0KfQ0KDQojYWxsU3RyZWFtcyB7DQogIHdpZHRoOiAxMDAlOw0KICBoZWlnaHQ6IDEwMCU7DQogIHBhZGRpbmc6IDJweDsgICAgIA0KfQ0KDQojYWN0aXZlU3RyZWFtcywgI2luYWN0aXZlU3RyZWFtcyB7DQogIG92ZXJmbG93LXk6IHNjcm9sbDsNCiAgd2lkdGg6IDUwJTsNCiAgbWF4LWhlaWdodDogMTAwcHg7DQogIGZsb2F0OiBsZWZ0Ow0KfQ0KDQojYWN0aXZlU3RyZWFtcyAudGRLZXksICNpbmFjdGl2ZVN0cmVhbXMgLnRkS2V5IHsNCiAgd2lkdGg6IDc1cHg7DQp9DQoNCg0KDQoNCiNpbmFjdGl2ZVN0cmVhbXMgLnRkS2V5IHsNCiAgY29sb3I6IHJlZDsNCn0NCg0KI2NsaWVudEluZm8gLnRkVmFsLCAjbG9nSW5mbyAudGRWYWwsICNhY3RpdmVTdHJlYW1zIC50ZFZhbCwgI2luYWN0aXZlU3RyZWFtcyAudGRWYWwsICNtYXBwaW5nSW5mbyAudGRWYWx7DQogIGNvbG9yOiAjYWFhOw0KICB3aGl0ZS1zcGFjZTogaW5oZXJpdDsNCn0NCg0KI2JveC13cmFwcGVyIHsNCiAgZGlzcGxheTogaW5saW5lLWJsb2NrOw0KICB3aWR0aDogMTAwJTsNCiAgDQogIG92ZXJmbG93LXk6IHNjcm9sbDsNCn0NCg0KI2NvbnRlbnRfdGFibGUsICNtYXBwaW5nLWRldGFpbC10YWJsZSwgI2NvbnRlbnRfdGFibGUgew0KICBkaXNwbGF5OiB0YWJsZTsNCiAgDQogIGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7DQogIG92ZXJmbG93LXk6IHNjcm9sbDsNCiAgd2lkdGg6IDEwMCU7DQp9DQoNCg0KI2NvbnRlbnRfdGFibGUgLmNvbnRlbnRfdGFibGVfaGVhZGVyIHsNCiAgYmFja2dyb3VuZC1jb2xvcjogIzMzMzsNCiAgaGVpZ2h0OiA1MHB4Ow0KICBib3JkZXItYm90dG9tOiBzb2xpZCAxcHggIzExMTsNCiAgYm9yZGVyLWxlZnQ6IHNvbGlkIDNweCAjMzMzOw0KICBjdXJzb3I6IGF1dG87DQoNCn0NCg0KDQp0Ym9keSB7DQogIHdpZHRoOiAxMDAlOw0KfQ0KDQoNCi50YWJsZUVsbGlwc2lzIHsNCiAgd2lkdGg6IDE1MHB4Ow0KICBvdmVyZmxvdzogaGlkZGVuOw0KICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsNCiAgd2hpdGUtc3BhY2U6IG5vd3JhcDsNCn0NCg0KI2NvbnRlbnRfdGFibGUgaW1nIHsNCiAgZGlzcGxheTogYmxvY2s7DQogIG1heC1oZWlnaHQ6IDI4cHg7DQogIG1hcmdpbi1sZWZ0OiBhdXRvOw0KICBtYXJnaW4tcmlnaHQ6IGF1dG87DQogIG1heC13aWR0aDogMzBweDsNCn0NCg0KI2NvbnRlbnRfdGFibGUgdHJ7DQogIGJvcmRlci1sZWZ0OiBzb2xpZCAzcHggNDQ0Ow0KICBib3JkZXItYm90dG9tOiBzb2xpZCAxcHggIzMzMzsNCiAgY3Vyc29yOiBwb2ludGVyOw0KfQ0KDQojY29udGVudF90YWJsZSB0cjpob3ZlciB7DQogIGJhY2tncm91bmQtY29sb3I6ICMzMzM7DQp9DQoNCiNjb250ZW50X3RhYmxlIHRkIHsNCg0KICBwYWRkaW5nOiAwcHggMnB4Ow0KfQ0KDQojY29udGVudF90YWJsZSBpbnB1dFt0eXBlPXRleHRdew0KICB3aWR0aDogODAlOw0KICBtaW4td2lkdGg6IDM1cHg7DQogIG1heC13aWR0aDogNjBweDsNCiAgYm9yZGVyOiAwcHg7DQogIGJhY2tncm91bmQtY29sb3I6ICMzMzM7DQogIG1hcmdpbi1sZWZ0OiA1cHg7DQogIHRleHQtYWxpZ246IGxlZnQ7DQp9DQoNCiNjb250ZW50X3RhYmxlIGlucHV0W3R5cGU9Y2hlY2tib3hdew0KICBtYXgtd2lkdGg6IDI1cHg7DQogIG1hcmdpbjogYXV0bzsNCn0NCg0KDQouc2hvd0J1bGsgew0KICBkaXNwbGF5OiBibG9jazsNCn0NCg0KLmhpZGVCdWxrIHsNCiAgZGlzcGxheTogbm9uZTsNCn0NCg0KLm5vQnVsayB7DQoNCn0NCg0KI2NvbnRlbnRfdGFibGUgdHIuYWN0aXZlRVBHew0KICBib3JkZXItbGVmdDogc29saWQgM3B4IGxhd25ncmVlbjsNCn0NCg0KI2NvbnRlbnRfdGFibGUgdHIubm90QWN0aXZlRVBHew0KICBib3JkZXItbGVmdDogc29saWQgM3B4IHJlZDsNCn0NCg0KDQojbG9nU2NyZWVuIHB7DQogIHdoaXRlLXNwYWNlOiBwcmU7DQogIGZvbnQtc2l6ZTogMTBweDsNCiAgLyoNCiAgbGluZS1oZWlnaHQ6IDEuNmVtOw0KICBmb250LWZhbWlseTogIkFyaWFsIiwgc2Fucy1zZXJpZjsNCiAgKi8NCiAgbGV0dGVyLXNwYWNpbmc6IDFweDsNCiAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZTsgDQogIGZvbnQtc2l6ZTogMTJweDsgDQogIGZvbnQtc3R5bGU6IG5vcm1hbDsgDQogIGZvbnQtdmFyaWFudDogbm9ybWFsOyANCiAgbGluZS1oZWlnaHQ6IDEuNmVtOyANCn0NCg0KI3BvcHVwIHsNCiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjQpOw0KICBwb3NpdGlvbjogZml4ZWQ7DQogIGxlZnQ6IDBweDsNCiAgd2lkdGg6IDEwMCU7DQogIHotaW5kZXg6IDEwMDsNCiAgaGVpZ2h0OiAxMDAlOw0KfQ0KDQojbWFwcGluZy1kZXRhaWwsICN1c2VyLWRldGFpbCwgI2ZpbGUtZGV0YWlsLCAjcG9wdXAtY3VzdG9tIHsNCiAgYm94LXNoYWRvdzogMHB4IDVweCA0MHB4ICMwMDA7DQogIG1hcmdpbi10b3A6IDIwcHg7DQogIG1hcmdpbi1sZWZ0OiBhdXRvOw0KICBtYXJnaW4tcmlnaHQ6IGF1dG87DQogIA0KICBtYXgtd2lkdGg6IDYwMHB4Ow0KICBiYWNrZ3JvdW5kLWNvbG9yOiAjMjIyOw0KICBwYWRkaW5nOiAxMHB4Ow0KICBvdmVyZmxvdzphdXRvOw0KfQ0KDQojcG9wdXAtY3VzdG9tIGgzIHsNCiAgdGV4dC1hbGlnbjogY2VudGVyOw0KfQ0KDQojZmlsZS1kZXRhaWwgaW5wdXRbdHlwZT10ZXh0XSB7DQogIHdpZHRoOiAtd2Via2l0LWNhbGMoMTAwJSAtIDIwcHgpOw0KICB3aWR0aDogLW1vei1jYWxjKDEwMCUgLSAyMHB4KTsNCiAgd2lkdGg6IGNhbGMoMTAwJSAtIDIwcHgpOw0KfQ0KDQojbWFwcGluZy1kZXRhaWwgaW1nIHsNCiAgZGlzcGxheTogYmxvY2s7DQogIG1heC1oZWlnaHQ6IDMwcHg7DQogIG1hcmdpbi1ib3R0b206IDIwcHg7DQogIG1hcmdpbi1sZWZ0OiBhdXRvOw0KICBtYXJnaW4tcmlnaHQ6IGF1dG87DQp9DQoNCiNwb3B1cC1jdXN0b20gaW5wdXRbdHlwZT10ZXh0XSwgI3BvcHVwLWN1c3RvbSBpbnB1dFt0eXBlPXBhc3N3b3JkXSwgI21hcHBpbmctZGV0YWlsIGlucHV0W3R5cGU9dGV4dF0sICNjb250ZW50X3NldHRpbmdzIGlucHV0W3R5cGU9dGV4dF0sICNjb250ZW50X3NldHRpbmdzIGlucHV0W3R5cGU9cGFzc3dvcmRdew0KICBib3JkZXI6IHNvbGlkIDFweDsNCiAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDsNCiAgYmFja2dyb3VuZC1jb2xvcjogIzMzMzsNCiAgdGV4dC1hbGlnbjogbGVmdDsNCiAgd2lkdGg6IC13ZWJraXQtY2FsYygxMDAlIC0gMjBweCk7DQogIHdpZHRoOiAgICAtbW96LWNhbGMoMTAwJSAtIDIwcHgpOw0KICB3aWR0aDogICAgICAgICBjYWxjKDEwMCUgLSAyMHB4KTsNCn0NCg0KI3BvcHVwLWN1c3RvbSBpbnB1dFt0eXBlPXRleHRdLm5vdEF2YWlsYWJsZSB7DQogIGJvcmRlci1jb2xvcjogcmVkOw0KICBjb2xvcjogIzY2NjsNCiAgY3Vyc29yOiBub3QtYWxsb3dlZDsNCn0NCg0KI21hcHBpbmctZGV0YWlsLXRhYmxlLCAjdXNlci1kZXRhaWwtdGFibGUgew0KICBkaXNwbGF5OiBpbmxpbmUtdGFibGU7DQogIHdpZHRoOiAxMDAlOw0KfQ0KDQojcG9wdXAtY3VzdG9tIHRhYmxlLCAjY29udGVudF9zZXR0aW5ncyB0YWJsZSB7DQogIGRpc3BsYXk6IGlubGluZS10YWJsZTsNCiAgdGFibGUtbGF5b3V0OiBmaXhlZDsNCiAgd2lkdGg6IDEwMCU7DQp9DQoNCg0KI21hcHBpbmctZGV0YWlsLXRhYmxlIHRkLCAjdXNlci1kZXRhaWwtdGFibGUgdGQgew0KICBwYWRkaW5nOiAxMHB4IDBweDsNCg0KfQ0KDQojbWFwcGluZy1kZXRhaWwtdGFibGUgdGQubGVmdCwgI3VzZXItZGV0YWlsLXRhYmxlIHRkLmxlZnQsICNwb3B1cC1jdXN0b20gdGQubGVmdCB7DQogIHdpZHRoOiAzOCU7DQp9DQoNCi5pbnRlcmFjdGlvbiwgI2ludGVyYWN0aW9uIHsNCiAgbWFyZ2luLXRvcDogMjBweDsNCiAgZGlzcGxheTogaW5saW5lLWZsZXg7DQogIGZsb2F0OiByaWdodDsNCn0NCg0KLmludGVyYWN0aW9uIGlucHV0W3R5cGU9YnV0dG9uXSwgLmludGVyYWN0aW9uIGlucHV0W3R5cGU9c3VibWl0XSB7DQogIGJhY2tncm91bmQtY29sb3I6ICMwMDA7DQogIG1pbi13aWR0aDogMTAwcHg7DQogIG1hcmdpbjogMHB4IDEwcHg7DQogIHRleHQtYWxpZ246IGNlbnRlcjsNCn0NCg0KI25vdGlmaWNhdGlvbiB7DQogIGRpc3BsYXk6IGJsb2NrOw0KICBwb3NpdGlvbjogZml4ZWQ7DQogIHJpZ2h0OiAwcHg7DQogIGhlaWdodDogMTAwJTsNCiAgd2lkdGg6IDI1MHB4Ow0KICANCiAgYmFja2dyb3VuZC1jb2xvcjogIzIyMjsNCiAgYm94LXNoYWRvdzogMHB4IDBweCAyMHB4ICMwMDA7DQp9DQoNCiNub3RpZmljYXRpb24gaDUgew0KICBiYWNrZ3JvdW5kLWNvbG9yOiAjMTIxMjEyOw0KICBwYWRkaW5nOiA1cHggMTBweCA1cHggMTBweDsNCn0NCg0KI25vdGlmaWNhdGlvbiBwcmUgew0KICBwYWRkaW5nOiAwcHggMTBweCAwcHggMTBweDsNCn0NCg0KI25vdGlmaWNhdGlvbiBwIHsNCiAgZm9udC1zaXplOiAxMCBweDsNCiAgbWFyZ2luOiAwcHg7DQogIHBhZGRpbmc6IDBweCAxMHB4IDVweCAxMHB4Ow0KfQ0KDQojbm90aWZpY2F0aW9uIC5lbGVtZW50IHsNCiAgLypwYWRkaW5nOiAwcHggNXB4OyovDQogIG1hcmdpbjogNXB4IDVweDsNCiAgYm9yZGVyLXJhZGl1czogNXB4Ow0KICBiYWNrZ3JvdW5kLWNvbG9yOiAjMTgxODE4Ow0KICBib3JkZXItbGVmdDogMTBweCBzb2xpZCBncmVlbjsNCn0NCg0KDQpAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDYyMHB4KXsNCiAgYm9keSB7DQogICAgd2lkdGg6IDEwMCU7DQogICAgYmFja2dyb3VuZC1jb2xvcjogIzQ0NDsNCiAgfQ0KDQogIGgxIHsNCiAgICBmb250LXNpemU6IDI2cHg7DQogICAgbGV0dGVyLXNwYWNpbmc6IDNweDsNCiAgfQ0KDQogIG5hdiBwIHsNCiAgICBkaXNwbGF5OiBibG9jazsNCiAgfQ0KDQoNCg0KICAjaGVhZGVyX2NvbmZpZyB7DQogICAgZGlzcGxheTogYmxvY2s7DQogICAgaGVpZ2h0OiAxMDBweDsNCiAgICBiYWNrZ3JvdW5kOiB1cmwoIi4uL2ltZy9sb2dvX3dfNjAweDIwMC5wbmciKTsNCiAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0Ow0KICAgIA0KICAgIGJhY2tncm91bmQtc2l6ZTogMzAwcHggMTAwcHg7DQogIH0NCg0KICAjc2NyZWVuTG9nIHsNCiAgICBtYXJnaW4tbGVmdDogMzAwcHg7DQoNCiAgICB0cmFuc2l0aW9uOiBub25lOw0KICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50Ow0KICAgIGJvcmRlci1ib3R0b206IHNvbGlkIDFweCB0cmFuc3BhcmVudDsNCiAgICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAjMjIyOw0KICB9DQoNCiAgI3NldHRpbmdzIHsNCiAgICAvKg0KICAgIGhlaWdodDogLXdlYmtpdC1jYWxjKDEwMCUgLSAxMDBweCk7DQogICAgaGVpZ2h0OiAtbW96LWNhbGMoMTAwJSAtIDEwMHB4KTsNCiAgICBoZWlnaHQ6IGNhbGMoMTAwJSAtIDEwMHB4KTsNCiAgICAqLw0KICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsNCiAgICBvdmVyZmxvdzogYXV0bzsNCiAgfQ0KDQoNCiAgLnNjcmVlbkxvZ0hpZGRlbiB7DQogICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMHB4LCAwcHgpOw0KICB9DQoNCg0KICAjYm94IHsNCiAgICBkaXNwbGF5OiBibG9jazsNCiAgICBtaW4taGVpZ2h0OiA1MDBweDsNCiAgICBtYXgtd2lkdGg6IDUwMHB4Ow0KICAgIG1hcmdpbjogMTBweCBhdXRvOw0KICAgIGJhY2tncm91bmQtY29sb3I6ICM0NDQ7DQogICAgYm94LXNoYWRvdzogMHB4IDVweCA1cHggIzIyMjsNCg0KICAgIGRpc3BsYXk6IGZsZXg7DQogICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsNCiAgfQ0KDQogICNzZXR0aW5ncywgI3NldHRpbmdzLWZvb3RlciB7DQogICAgDQogIH0NCn0NCg==" + webUI["html/img/log.png"] = "iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAAAXNSR0IArs4c6QAAAAlwSFlzAAAsSwAALEsBpT2WqQAABCRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IlhNUCBDb3JlIDUuNC4wIj4KICAgPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIgogICAgICAgICAgICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgICAgICAgICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyI+CiAgICAgICAgIDx0aWZmOlJlc29sdXRpb25Vbml0PjI8L3RpZmY6UmVzb2x1dGlvblVuaXQ+CiAgICAgICAgIDx0aWZmOkNvbXByZXNzaW9uPjU8L3RpZmY6Q29tcHJlc3Npb24+CiAgICAgICAgIDx0aWZmOlhSZXNvbHV0aW9uPjI4ODwvdGlmZjpYUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6T3JpZW50YXRpb24+MTwvdGlmZjpPcmllbnRhdGlvbj4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+Mjg4PC90aWZmOllSZXNvbHV0aW9uPgogICAgICAgICA8ZXhpZjpQaXhlbFhEaW1lbnNpb24+NTA8L2V4aWY6UGl4ZWxYRGltZW5zaW9uPgogICAgICAgICA8ZXhpZjpDb2xvclNwYWNlPjE8L2V4aWY6Q29sb3JTcGFjZT4KICAgICAgICAgPGV4aWY6UGl4ZWxZRGltZW5zaW9uPjUwPC9leGlmOlBpeGVsWURpbWVuc2lvbj4KICAgICAgICAgPGRjOnN1YmplY3Q+CiAgICAgICAgICAgIDxyZGY6QmFnLz4KICAgICAgICAgPC9kYzpzdWJqZWN0PgogICAgICAgICA8eG1wOk1vZGlmeURhdGU+MjAxOC0xMC0xNFQxMToxMDo0MjwveG1wOk1vZGlmeURhdGU+CiAgICAgICAgIDx4bXA6Q3JlYXRvclRvb2w+UGl4ZWxtYXRvciAzLjM8L3htcDpDcmVhdG9yVG9vbD4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgIDwvcmRmOlJERj4KPC94OnhtcG1ldGE+CkP32mEAAANASURBVGgF7ZlPiE1RHMffw1AYhiL5k1HEijJiYaFZiHoyFspW2RFRkkSZGgtFWJIwi9FYmo0VOywkKTbKgjSlWcifRCPX51dv6s2d33md77vvXjfmV9859/7u93x/v98959x73p1KRbAkSargAhgDH0E/qIYkuHYEvAPGvwbmNOEerXM/0Q6BRSFuZj/ix0DaDnvCkGppIucDAe4OhzvkcUO+GaELAf8ux7/b8Zlrr+Pvc3zm6nX8NccXdKmFLHaUPJ/Ruhyu5zNap8Nd6PiCLrUQTyi0Rjy/5/M0Zd+smB7M32XwtgBr07aC6yfSTs7XO77OALfH4VbgHsD/HLytVquJx4nyIdQFBsHftscksK5Z0sGhpuN8Or4Aa5sJFHjtO7G2MjKvvZjN1sglOpSlCMt9LrDZ4S4Hd0Qg24vrK+gAZbPtjMqTdFKhEdkIsYxFWP720JlioUK6pzDL41jtpRIqxOOWxecuB3fhRGT8E85YBK8VygI6GSRTCxlH3TaJgyw4O2678aCxO94LbNPovYDdmOrUukIBN/MqwjJEOwGPOHR31W4VONVCLEBR9lAJpBbSrYhn5K5R+quFnGUOr1ICtMIlxjz6XVb6qot9JeKvCPSAdlQJJHDtd8hOIN0wtRDLxx6Ntr0ulalTq1TJNyYzXUjj3SjD8X87Iva7uR8s5+2bi6FtX1oOgi8g2tSn1g2yPx+t3gIR/c90s1+C1vuO/YkxdWrdjxFtE2dE0VELWaqIZ+QuUfqrhZxmyKUvgEoyE1xizOR4YOI8plXXyAZEbYsyTJvXFsUW+x6wGUSbWogJ237rZHSEgojq1CooLT3MdCH6Pcu3xz8zIq0s9lvc2+sgz6dWH/rnQPB/jlybZGoh99hCHJqk0P6TD0jaI/4b7dVYeXVq2bemokyKpRZiHwWKMimWWshxhryjoEpOKXHUNbIN8WcUc5s2r8Vue7l9oAaiTS3EhDeB6EUYnUlGojq1MobLr3uokB/5hcys7OYWKuRl5nD5Cbi5uYXw0ntPHoay2S8Seuol5RZSJ0r/n/DEc/BdrN9kTZrH7BkwDspgwyQxW6uggU3nHnAXvAG/QZE2SrARsL8hJffwDxM0mNDPvT8IAAAAAElFTkSuQmCC" + webUI["html/img/mapping.png"] = "iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAAAXNSR0IArs4c6QAAAAlwSFlzAAAsSwAALEsBpT2WqQAABCRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IlhNUCBDb3JlIDUuNC4wIj4KICAgPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIgogICAgICAgICAgICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgICAgICAgICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyI+CiAgICAgICAgIDx0aWZmOlJlc29sdXRpb25Vbml0PjI8L3RpZmY6UmVzb2x1dGlvblVuaXQ+CiAgICAgICAgIDx0aWZmOkNvbXByZXNzaW9uPjU8L3RpZmY6Q29tcHJlc3Npb24+CiAgICAgICAgIDx0aWZmOlhSZXNvbHV0aW9uPjI4ODwvdGlmZjpYUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6T3JpZW50YXRpb24+MTwvdGlmZjpPcmllbnRhdGlvbj4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+Mjg4PC90aWZmOllSZXNvbHV0aW9uPgogICAgICAgICA8ZXhpZjpQaXhlbFhEaW1lbnNpb24+NTA8L2V4aWY6UGl4ZWxYRGltZW5zaW9uPgogICAgICAgICA8ZXhpZjpDb2xvclNwYWNlPjE8L2V4aWY6Q29sb3JTcGFjZT4KICAgICAgICAgPGV4aWY6UGl4ZWxZRGltZW5zaW9uPjUwPC9leGlmOlBpeGVsWURpbWVuc2lvbj4KICAgICAgICAgPGRjOnN1YmplY3Q+CiAgICAgICAgICAgIDxyZGY6QmFnLz4KICAgICAgICAgPC9kYzpzdWJqZWN0PgogICAgICAgICA8eG1wOk1vZGlmeURhdGU+MjAxOC0wOC0wMlQxMjowODo5NzwveG1wOk1vZGlmeURhdGU+CiAgICAgICAgIDx4bXA6Q3JlYXRvclRvb2w+UGl4ZWxtYXRvciAzLjM8L3htcDpDcmVhdG9yVG9vbD4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgIDwvcmRmOlJERj4KPC94OnhtcG1ldGE+CpRxQsEAAAJLSURBVGgF7VoxTgMxEMwBHWlAaeABVCEtBcoD+EBewCdCyQsQtLyAPCBvCBSRIBUPCF1ogqBJjlkrezGr6HTrO98lhy1Z9trr2VmvnbMNjUadUhzHLeQB8hw5LS3QOUbubvIf7X3kKXIZibgS51bCZdWgMT6D8nECgArkngagQN0B8dhbkblalVmLIyheCGUthhjuLBq77MihA0xTjHHBEBBOorHLjjghbNOg4Mg2RYO4hIiEiHiaAV5aSwf8hRgjZdHtTTTc2ZFXpZkY+hMx5k3IZYlr7jgudJHp2JElLaF0K1mirYn8nAWgQB3ibM59ERNCA52d6Nghv9isQiUtn0kURe92I9eBcYA6YZxym8dyDuwRuMw82gjQYQbsPdLDdNCROO0US3uEfp3usTZpjf5J2CNtNFwjl7FHvmBnCB5PCQkQoJudJtGvE23sJEFuI39rQArS7dskXK6nlwkAKiB1VxAxLcyUePAH8cQmlbEul4+UM8LkVjPc2ZHcaFUDBEeqjoC0HyIiZ6RqOUSk6ghI+xyRD9mRQTYfIktPylaX16rhzo48KE29QH8kxjxC/hFtZYiGe70OjWVMW7Dx32bA3iO7//iAC8DOPweZFQhH6O+CmkRvW2f28oV8owEoUHdMPPg70rFJZajTkqT7uZ3ObaHEuuHOjnCpsb8vlKUsur2JhruLA94Y5QEOjuSZPR9jQ0R8zGoezNpFhN5RtUm+/bpgaG1u0jd2OSLDTRopbZ/okxcrLUYKvKprbRfHhXr8m5PK/y1V/gWRKLfiNSmxEAAAAABJRU5ErkJggg==" } + diff --git a/ts/menu_ts.ts b/ts/menu_ts.ts index ef217f8..82038c9 100644 --- a/ts/menu_ts.ts +++ b/ts/menu_ts.ts @@ -2176,6 +2176,10 @@ function donePopupData(dataType:string, idsStr:string) { break + case "x-timeshift": + (document.getElementById(id).childNodes[8].firstChild as HTMLElement).innerHTML = value + break + default: } From e6fdd3a6cd60bc1a261a4254421d6d183e8f1d1c Mon Sep 17 00:00:00 2001 From: SCP002 Date: Sun, 27 Mar 2022 22:49:01 +0300 Subject: [PATCH 043/189] Increase program version to "2.2.2.0200" --- xteve.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/xteve.go b/xteve.go index 81c3552..e6b3a5c 100644 --- a/xteve.go +++ b/xteve.go @@ -39,7 +39,7 @@ var GitHub = GitHubStruct{Branch: "master", User: "SCP002", Repo: "xTeVe", Updat const Name = "xTeVe" // Version : Version, the Build Number is parsed in the main func -const Version = "2.2.2.0100" +const Version = "2.2.2.0200" // DBVersion : Database Version const DBVersion = "2.1.1" From 7d9afadf24bfaeda59a9b5d79a44e2527b60e435 Mon Sep 17 00:00:00 2001 From: SCP002 Date: Mon, 28 Mar 2022 01:43:32 +0300 Subject: [PATCH 044/189] Remove unused javascript files, generate new webUI.go --- html/js/authentication.js | 42 -- html/js/base.js | 331 --------- html/js/configuaration.js | 294 -------- html/js/data.js | 329 --------- html/js/files.js | 379 ---------- html/js/log.js | 114 --- html/js/mapping-editor.js | 1468 ------------------------------------- html/js/menu.js | 754 ------------------- html/js/users.js | 341 --------- src/webUI.go | 53 +- 10 files changed, 22 insertions(+), 4083 deletions(-) delete mode 100644 html/js/authentication.js delete mode 100644 html/js/base.js delete mode 100644 html/js/configuaration.js delete mode 100644 html/js/data.js delete mode 100644 html/js/files.js delete mode 100644 html/js/log.js delete mode 100644 html/js/mapping-editor.js delete mode 100644 html/js/menu.js delete mode 100644 html/js/users.js diff --git a/html/js/authentication.js b/html/js/authentication.js deleted file mode 100644 index 581700b..0000000 --- a/html/js/authentication.js +++ /dev/null @@ -1,42 +0,0 @@ -function createFirstAccount(elm) { - var err = false; - var div = document.getElementById(elm); - console.log(div); - - var form = document.getElementById('authentication'); - - const username = document.getElementById('username'); - const password = document.getElementById('password'); - const confirm = document.getElementById('confirm'); - - var inputs = div.getElementsByTagName('INPUT') - console.log(confirm); - - switch(confirm) { - case null: break; - - default: - for (var i = 0; i < inputs.length; i++) { - if (inputs[i].value.length == 0) { - inputs[i].style.borderColor = 'red'; - err = true - } - } - - switch(err) { - case true: return; break; - case false: - if (password.value != confirm.value) { - confirm.style.borderColor = 'red'; - return; - } - break; - } - } - - - - - form.submit(); - return; -} \ No newline at end of file diff --git a/html/js/base.js b/html/js/base.js deleted file mode 100644 index ebc2f66..0000000 --- a/html/js/base.js +++ /dev/null @@ -1,331 +0,0 @@ -var config = new Object(); -var menu = new Object(); -var subMenu = new Object(); -var activeStreams = new Object(); -var xEPG = new Object(); -var users = new Object(); -var log = new Object(); -var undo = new Object(); -var webSockets = true; -var closeLog, version, activeMenu; -var columnToSort = 0 - - -if (window.WebSocket === undefined) { - alert("Your browser does not support WebSockets"); - webSockets = false; -} - -function pageReady() { - var data = new Object(); - data["cmd"] = "getServerConfig"; - xTeVe(data); - //showLoadingScreen(false); - - var resizeHandle = document.getElementById("openStreams"); - var box = document.getElementById("myStreamsBox"); - resizeHandle.addEventListener("mousedown", initialiseResize, false); - - function initialiseResize(e) { - window.addEventListener("mousemove", startResizing, false); - window.addEventListener("mouseup", stopResizing, false); - } - - function startResizing(e) { - box.style.height = (e.clientY - box.offsetTop) + "px"; - - var elm = document.getElementById("allStreams"); - if (e.clientY > 120) { - elm.className = "visible"; - } else { - elm.className = "notVisible"; - } - - calculateWrapperHeight(); - - } - function stopResizing(e) { - window.removeEventListener('mousemove', startResizing, false); - window.removeEventListener('mouseup', stopResizing, false); - calculateWrapperHeight(); - } - - window.addEventListener("resize", function(){ - calculateWrapperHeight(); - }, true); -} - - -function getObjKeys(obj) { - var keys = new Array(); - - for (var i in obj) { - if (obj.hasOwnProperty(i)) { - keys.push(i); - } - } - - return keys; -} - - -function createElement(item) { - //console.log(item); - var element = document.createElement(item["_element"]); - if (item.hasOwnProperty("_text")) { - //element.innerHTML = "

" + item["_text"] + "

"; - element.innerHTML = item["_text"]; - } - - var keys = getObjKeys(item); - for (var i = 0; i < keys.length; i++) { - if (keys[i].charAt(0) != "_") { - //console.log(keys[i], item[keys[i]]); - element.setAttribute(keys[i], item[keys[i]]); - } - } - - //console.log(element); - return element; -} - -function modifyOption(id, options, values) { - var select = document.getElementById(id); - select.innerHTML = ""; - - for (var i = 0; i < options.length; i++) { - - var element = document.createElement("OPTION") - - element.value = values[i]; - element.innerHTML = options[i]; - - document.getElementById(id).appendChild(element); - - } - -} - - -function startWebSocket() { - if (webSockets == false) { - return; - } - - //ws.send('{"cmd": "getServerConfig1"}'); - -} - -function checkErr(obj) { - //alert(obj["err"]) - //screenLog(obj["err"], "error") - console.log(obj); - var newObj = new Object(); - var newErr = new Object(); - newErr["key"] = "Error"; - newErr["value"] = obj["err"]; - newErr["type"] = "error"; - - newObj[0] = newErr - showLog(newObj); - return -} - -function screenLog(msg, msgType, show) { - return - clearTimeout(closeLog) - var div = document.getElementById("screenLog"); - var newMsg = new Object(); - - newMsg["_element"] = "P"; - - switch(msgType) { - case "error": newMsg["class"] = "errorMsg"; break; - case "warning": newMsg["class"] = "warningMsg"; break; - //default: newMsg["class"] = "infoMsg" - } - - newMsg["_text"] = msg; - - div.appendChild(createElement(newMsg)); - - div.scrollTop = div.scrollHeight; - - if (show == false) { - return; - } - - div.className = "" - closeLog = setTimeout(closeScreenLog, 10000); -} - - -function closeScreenLog() { - var div = document.getElementById("screenLog"); - div.className = "screenLogHidden" -} - -function showScreenLog() { - clearTimeout(closeLog) - var div = document.getElementById("screenLog"); - var currentClass = div.className; - div.className = "screenLogHidden" - - switch(currentClass) { - case "screenLogHidden": div.className = ""; break; - case "": div.className = "screenLogHidden"; break; - } -} - -function showLoadingScreen(elm) { - var div = document.getElementById("loading"); - switch(elm) { - case true: div.className = "block"; break; - case false: div.className = "none"; break; - - /* - case true: div.style.display = "block"; break; - case false: div.style.display = "none"; break; - */ - } -} - -function createClintInfo(obj) { - //console.log(obj); - var keys = getObjKeys(obj); - for (var i = 0; i < keys.length; i++) { - if(document.getElementById(keys[i])){ - document.getElementById(keys[i]).innerHTML = obj[keys[i]]; - } - } - //document.getElementById("clientInfo").className = "visible"; -} - -function showElement(elmID, type) { - switch(type) { - case true: cssClass = "block"; break; - case false: cssClass = "none"; break; - } - - document.getElementById(elmID).className = cssClass; -} - -function showPopUpElement(elm) { - var allElements = new Array("deleteUserDetail", "mapping-detail", "user-detail", "file-detail"); - - for (var i = 0; i < allElements.length; i++) { - showElement(allElements[i], false) - } - - showElement(elm, true) - - setTimeout(function(){ - showElement("popup", true); - }, 10); -} - - // body... - -function showStreams(force) { - - var elmBox = document.getElementById("myStreamsBox"); - var elm = document.getElementById("allStreams"); - //console.log(elm); - show = elm.className; - - switch(force) { - case true: show = "notVisible"; break; - case false: show = "visible"; break; - } - - switch(show) { - case "notVisible": - elm.className = "visible"; - elmBox.style.height = "100px"; - break; - - default: - elm.className = "notVisible"; - elmBox.style.height = "20px"; - break; - } - - var show = elm.style.display; { - //console.log(elm.style.display); - } - - calculateWrapperHeight(); -} - -function xteveBackup() { - console.log("xteveBackup"); - var data = new Object(); - data["cmd"] = "xteveBackup"; - - xTeVe(data); -} - -function xteveRestore(elm) { - var restore = document.createElement("INPUT"); - restore.setAttribute("type", "file"); - restore.setAttribute("class", "notVisible"); - restore.setAttribute("name", ""); - restore.id = "upload"; - - document.body.appendChild(restore); - restore.click(); - - restore.onchange = function() { - var filename = restore.files[0].name - //console.log(restore.srcElement.files[0]); - var check = confirm("File: " + filename + "\nAll data will be replaced with those from the backup.\nShould the files be restored?"); - if (check == true) { - var reader = new FileReader(); - var file = document.querySelector('input[type=file]').files[0]; - if (file) { - reader.readAsDataURL(file); - reader.onload = function() { - console.log(reader.result); - var data = new Object(); - data["cmd"] = "xteveRestore" - data["base64"] = reader.result - - xTeVe(data); - return - }; - } else { - alert("File could not be loaded") - } - } - }; -} - -function getBase64(file) { - var reader = new FileReader(); - reader.readAsDataURL(file); - reader.onload = function() { - console.log(reader.result); - }; - reader.onerror = function(error) { - console.log('Error: ', error); - }; -} - -function logout() { - document.cookie.split(';').forEach(function(c) { - document.cookie = c.trim().split('=')[0] + '=;' + 'expires=Thu, 01 Jan 1970 00:00:00 UTC;'; - }); - location.reload(); -} - -function getCookie(name) { - var value = "; " + document.cookie; - var parts = value.split("; " + name + "="); - if (parts.length == 2) return parts.pop().split(";").shift(); -} - -function setCookie(token) { - //console.log(token); - document.cookie = "Token=" + token -} - diff --git a/html/js/configuaration.js b/html/js/configuaration.js deleted file mode 100644 index 0b1105b..0000000 --- a/html/js/configuaration.js +++ /dev/null @@ -1,294 +0,0 @@ -var configMenu = new Object(); -var wizard = new Array("key", "tuner", "epgSource", "m3u", "complete"); -var activeWizard; -var dvrIP - -var configMenu_tuner = new Object(); -configMenu_tuner["_element"] = "SELECT"; -configMenu_tuner["_menuType"] = "singleInput"; -configMenu_tuner["_configKey"] = "tuner"; -configMenu_tuner["_label"] = "Available tuners"; -configMenu_tuner["name"] = "tuner"; -configMenu_tuner["id"] = "Tuner"; -configMenu_tuner["placeholder"] = "Tuner"; -configMenu_tuner["_usage"] = "This setting is only used by Plex and Emby.
The number of concurrent streams allowed by the IPTV provider." - - -var optionValues = new Array(); -for (var i = 1; i <= 100; i++) { - optionValues.push(i) -} -configMenu_tuner["_optionValues"] = optionValues; - -var configMenu_epg = new Object(); -configMenu_epg["_element"] = "SELECT"; -configMenu_epg["_menuType"] = "singleInput"; -configMenu_epg["_configKey"] = "epgSource"; -configMenu_epg["_label"] = "Selection of the EPG source"; -configMenu_epg["name"] = "epgSource"; -configMenu_epg["id"] = "EPG source"; -configMenu_epg["placeholder"] = "EPG source"; -configMenu_epg["_optionValues"] = new Array("PMS", "XEPG"); -configMenu_epg["_usage"] = "PMS: Use EPG data from Plex or Emby
XEPG: Use of external EPG data (XMLTV)
Several XMLTV sources possible
Allows editing and order channels
M3U / XMLTV export (HTTP link for IPTV apps)" - -var configMenu_m3u = new Object(); -configMenu_m3u["_element"] = "INPUT"; -configMenu_m3u["_menuType"] = "inputArray"; -configMenu_m3u["_configKey"] = "file"; -configMenu_m3u["_label"] = "M3U File: local or remote"; -configMenu_m3u["name"] = "file"; -configMenu_m3u["id"] = "m3u"; -configMenu_m3u["type"] = "text"; -configMenu_m3u["placeholder"] = "M3U File"; -configMenu_m3u["_usage"] = "Remote playlist: http://your.provider.com/file.m3u
Local playlist: /path/to/file.m3u" - - -configMenu_m3u["value"] = "http://websrv.local:8080/kabel.m3u"; - -var configMenu_complete = new Object(); -configMenu_complete["_element"] = "H2"; -configMenu_complete["_menuType"] = "inputArray"; -configMenu_complete["_configKey"] = "file"; -configMenu_complete["_text"] = "xTeVe was successfully set up"; -configMenu_complete["name"] = "complete"; -configMenu_complete["id"] = "complete"; -configMenu_complete["type"] = "text"; -configMenu_complete["class"] = "center"; - -configMenu["tuner"] = configMenu_tuner; -configMenu["epgSource"] = configMenu_epg; -configMenu["m3u"] = configMenu_m3u; -configMenu["complete"] = configMenu_complete; - -function readyForConfiguration() { - var data = new Object(); - data["cmd"] = "getServerConfig"; - xTeVe(data); - showLoadingScreen(false); -} - -function createConfiguration(elm) { - - activeWizard = elm; - var item = configMenu[elm]; - - var div = document.getElementById("content"); - div.innerHTML = ""; - div.setAttribute("data-configKey", item["_configKey"]); - div.setAttribute("data-menuType", item["_menuType"]); - - switch(item.hasOwnProperty("_label")) { - case true: - var newItem = new Object(); - newItem["_element"] = "LABEL"; - newItem["_text"] = item["_label"]; - newItem["for"] = item["id"]; - div.appendChild(createElement(newItem)); - break - } - - switch(item["_element"]) { - case "SELECT": - div.appendChild(createElement(item)); - var selectElement = div.getElementsByTagName("SELECT")[0]; - var values = item["_optionValues"]; - for (var i = 0; i < values.length; i++) { - var newEntry = new Object; - newEntry["_element"] = "OPTION"; - newEntry["_text"] = item["id"] + ": " + values[i]; - newEntry["value"] = values[i]; - selectElement.appendChild(createElement(newEntry)); - } - //return - break; - - default: - div.appendChild(createElement(item)); - break; - - - } - //alert() - - switch(item.hasOwnProperty("_usage")) { - case true: - var usageItem = new Object(); - usageItem["_element"] = "PRE" - usageItem["_text"] = item["_usage"]; - div.appendChild(createElement(usageItem)); - } - - if (activeWizard == "complete") { - document.getElementById("next").value = "Finished" - //document.getElementById("next").setAttribute("onclick", "javascript: location.reload();") - } - - //div.appendChild(createElement(item)); -} - -function saveData() { - - var div = document.getElementById("content"); - var inputs = div.getElementsByTagName("INPUT"); - var selects = div.getElementsByTagName("SELECT"); - var value; - var data = new Object(); - var valueArr = new Array(); - var newData = false; - - if (activeWizard == "complete") { - data["cmd"] = "wizardCompleted"; - showLoadingScreen(true) - xTeVe(data); - return - } - - for (var i = 0; i < inputs.length; i++) { - var menuType = inputs[i].parentElement.getAttribute("data-menutype"); - if (inputs[i].value != undefined && inputs[i].value != "" ) { - newData = true; - - console.log(inputs[i].id) - switch(inputs[i].id) { - case "m3u": - var newPlaylist = new Object(); - newPlaylist["file.source"] = inputs[i].value; - //newPlaylist["name"] = inputs[i].value; - newPlaylist["type"] = "m3u"; - newPlaylist["new"] = true; - - data["files"] = new Object(); - data["files"]["m3u"] = new Object(); - data["files"]["m3u"]["-"] = newPlaylist; - - data["cmd"] = "saveFilesM3U"; - xTeVe(data) - return - } - /* - switch(menuType) { - case "singleInput": - data[inputs[i].name] = inputs[i].value; break; - case "inputArray": - valueArr.push(inputs[i].value); - data[inputs[i].name] = valueArr; break - - } - */ - } else { - inputs[i].style.borderBottomColor = "red"; - return; - } - } - - - for (var i = 0; i < selects.length; i++) { - var value = selects[i].options[selects[i].selectedIndex].value; - if (isNaN(value) == false) { - value = parseInt(value); - data[selects[i].name] = value; - newData = true; - break; - } - data[selects[i].name] = value; - newData = true; - } - - - //console.log(data, newData); - if (newData == true) { - config = data - data["cmd"] = "saveConfig"; - xTeVe(data); - } -} - -function xTeVe(data) { - - if (webSockets == false) { - alert("Your browser does not support WebSockets"); - return; - } - - if (activeWizard == "m3u" || activeWizard == "epgSource") { - showLoadingScreen(true); - } - - var protocolWS - switch(window.location.protocol) { - case "http:": protocolWS = "ws://"; break; - case "https:": protocolWS = "wss://"; break; - } - - var ws = new WebSocket(protocolWS + window.location.hostname + ":" + window.location.port + "/data/" + "?Token=" + getCookie("Token")); - - ws.onopen = function() { - ws.send(JSON.stringify(data)); - } - - ws.onmessage = function (e) { - - var response = JSON.parse(e.data); - - if (response.hasOwnProperty("clientInfo")) { - createClintInfo(response["clientInfo"]); - } - - if (response.hasOwnProperty("status")) { - if (response["status"] == false) { - document.getElementById("headline").style.borderColor = "red"; - showErr(response["err"]); - showLoadingScreen(false) - return - } else { - document.getElementById("err").innerHTML = ""; - document.getElementById("headline").style.borderColor = "lawngreen"; - } - - dvrIP = response["DVR"] - switch(response["configurationWizard"]) { - case true: - if (activeWizard == undefined) { - activeWizard = wizard[0] - } - var n = wizard.indexOf(activeWizard); - n++; - activeWizard = wizard[n] - - if (activeWizard == undefined) { - data["cmd"] = "wizardCompleted"; - xTeVe(data) - } else { - //console.log(activeWizard); - createConfiguration(activeWizard); - } - - break; - } - - switch(response["reload"]) { - - - case true: - - setTimeout(function(){ - location.reload(); - }, 100); - - //location.reload(); - - break; - - } - - - } - - setTimeout(function(){ showLoadingScreen(false); }, 300); - } - -} - -function showErr(elm) { - document.getElementById("err").innerHTML = elm; -} \ No newline at end of file diff --git a/html/js/data.js b/html/js/data.js deleted file mode 100644 index 688733a..0000000 --- a/html/js/data.js +++ /dev/null @@ -1,329 +0,0 @@ -function showConfig(obj) { - config = obj; - //setMenuItem(); - createMenu(); - //document.getElementById("page").className = ""; -} - -showMyStreams - -function showMyStreams(allStreamsObj) { - - var streamTypeKeys = getObjKeys(allStreamsObj) - - for (var s = 0; s < streamTypeKeys.length; s++) { - var streamType = streamTypeKeys[s]; - var obj = new Object(); - obj = allStreamsObj[streamType]; - switch(streamType) { - case "activeStreams": activeStreams = obj; break; - } - - document.getElementById(streamType).innerHTML = ""; - - var streamsObj = new Object(); - var streamsNames = new Array(); - - var keys = getObjKeys(obj) - - // Create Object (streamsObj) for the streams and sort by name (streamsNames) - for (var i = 0; i < keys.length; i++) { - var name = obj[keys[i]]["name"]; - var tmp = new Object(); - var streamKey = getObjKeys(obj[keys[i]]); - - for (var j = 0; j < streamKey.length; j++) { - tmp[streamKey[j]] = obj[keys[i]][streamKey[j]]; - } - - streamsObj[name] = tmp; - streamsNames.push(name) - } - - streamsNames.sort(); - - // Create Table for activeStreams - var table = document.getElementById(streamType); - - for (var i = 0; i < streamsNames.length; i++) { - var newEntry = new Object(); - newEntry["_element"] = "TR"; - table.appendChild(createElement(newEntry)); - var line = table.lastChild; - - var tmp = streamsObj[streamsNames[i]] - var keys = getObjKeys(tmp) - - var newKey = new Object() - newKey["_element"] = "TD"; - //newKey["_text"] = streamsNames[i]; - switch(streamType) { - case "activeStreams": newKey["_text"] = "Channel (+):"; break; - case "inactiveStreams": newKey["_text"] = "Channel (-):"; break; - } - - newKey["class"] = "tdKey"; - console.log(); - - - var newVal = new Object() - newVal["_element"] = "TD"; - newVal["_text"] = streamsNames[i]; - newVal["class"] = "tdVal"; - //newVal["_text"] = value; - - line.appendChild(createElement(newKey)); - line.appendChild(createElement(newVal)); - - } - - } - - return -} - -function showActiveStreams(obj) { - document.getElementById("activeStreams").innerHTML = ""; - activeStreams = obj; - var streamsObj = new Object(); - var streamsNames = new Array(); - - var keys = getObjKeys(obj) - - // Create Object (streamsObj) for the streams and sort by name (streamsNames) - for (var i = 0; i < keys.length; i++) { - var name = obj[keys[i]]["name"]; - var tmp = new Object(); - var streamKey = getObjKeys(obj[keys[i]]); - - for (var j = 0; j < streamKey.length; j++) { - tmp[streamKey[j]] = obj[keys[i]][streamKey[j]]; - } - - streamsObj[name] = tmp; - streamsNames.push(name) - } - - streamsNames.sort(); - - // Create Table for activeStreams - var table = document.getElementById("activeStreams"); - - for (var i = 0; i < streamsNames.length; i++) { - var newEntry = new Object(); - newEntry["_element"] = "TR"; - table.appendChild(createElement(newEntry)); - var line = table.lastChild; - - var tmp = streamsObj[streamsNames[i]] - var keys = getObjKeys(tmp) - - var newKey = new Object() - newKey["_element"] = "TD"; - //newKey["_text"] = streamsNames[i]; - newKey["_text"] = "Channel:"; - newKey["class"] = "tdKey"; - console.log(); - - - var newVal = new Object() - newVal["_element"] = "TD"; - newVal["_text"] = streamsNames[i]; - newVal["class"] = "tdVal"; - //newVal["_text"] = value; - - line.appendChild(createElement(newKey)); - line.appendChild(createElement(newVal)); - - } - -} - -function parseLogs(obj) { - log = obj - var keys = getObjKeys(obj) - - var msgType; - for (var i = 0; i < keys.length; i++) { - switch(keys[i]) { - case "warnings": msgType = "warningMsg"; break; - case "errors": msgType = "errorMsg"; break; - } - - switch(obj[keys[i]]) { - case 0: msgType = "tdVal"; break; - default: break; - } - - if(document.getElementById(keys[i])){ - document.getElementById(keys[i]).className = msgType; - } - - - } - return -} - - -function cancelData(element) { - createMenu(); -} - -function saveData(element) { - var data = new Object(); - var div = element.parentNode.parentNode; - var inputs = div.getElementsByTagName("INPUT"); - - var configKey = div.getAttribute("data-configkey"); - var menuType = div.getAttribute("data-menutype"); - var value; - var valueArr = new Array(); - - for (var i = 0; i < inputs.length; i++) { - if (inputs[i].type == "text" && inputs[i].value != undefined && inputs[i].value != "" ) { - console.log(inputs[i].value, menuType) - switch(menuType) { - case "inputArray": valueArr.push(inputs[i].value); break; - case "singleInput": value = inputs[i].value; break; - } - } - } - - switch(menuType) { - case "inputArray": data[configKey] = valueArr; break; - case "singleInput": - if (isNaN(value) == false) { - value = parseInt(value); - data[configKey] = value; - break; - } - - if (value == undefined) { - data["delete"] = configKey; - } else { - data[configKey] = value - } - - break; - } - - data["cmd"] = "saveConfig"; - console.log(data); - xTeVe(data) -} - -function xTeVe(data) { - if (webSockets == false) { - alert("Your browser does not support WebSockets"); - return; - } else { - if (data["cmd"] != "getLog") { - showLoadingScreen(true) - } - } - delete undo["epgMapping"]; - - var protocolWS - switch(window.location.protocol) { - case "http:": protocolWS = "ws://"; break; - case "https:": protocolWS = "wss://"; break; - } - - - var ws = new WebSocket(protocolWS + window.location.hostname + ":" + window.location.port + "/data/" + "?Token=" + getCookie("Token")); - ws.onopen = function() { - console.log(data) - ws.send(JSON.stringify(data)); - } - - ws.onmessage = function (e) { - var response = JSON.parse(e.data); - console.log(response); - - if (response.hasOwnProperty("clientInfo")) { - createClintInfo(response["clientInfo"]); - } - - if (response.hasOwnProperty("log")) { - createClintInfo(response["log"]); - } - - if (response.hasOwnProperty("status")) { - if (response["status"] == false) { - alert(response["err"]) - if(response.hasOwnProperty("reload")) { - location.reload(); - } - //checkErr(response) - console.log(response); - updateXteveStatus(response); - setTimeout(function(){ showLoadingScreen(false); }, 300); - - return - } - - updateXteveStatus(response) - - //console.log(data["cmd"]); - switch(data["cmd"]) { - case "saveUserData": createMenu(); break; - case "saveNewUser": createMenu(); break; - case "saveFilesXMLTV": //createMenu(); break; - case "saveFilesM3U": //createMenu(); return; break; - case "saveConfig": - data = new Object(); - data["cmd"] = "checkToken"; - xTeVe(data); - break; - - case "emptyLog": writeLogInDiv(); break; - case "getLog": return; break; - } - - - } - - if (config["files"] == undefined || config["files"].length == 0) { - createMenu(); - document.getElementById(10).click() - } - - setTimeout(function(){ showLoadingScreen(false); }, 0); - } - -} - -function updateXteveStatus(response) { - var keys = getObjKeys(response); - //console.log(keys); - - for (var i = 0; i < keys.length; i++) { - switch(keys[i]) { - case "alert": alert(response[keys[i]]); break; - case "config": showConfig(response[keys[i]]); break; - case "log": parseLogs(response[keys[i]]); break; - case "myStreams": showMyStreams(response[keys[i]]); break; - case "xEPG": xEPG = response[keys[i]]; break; - case "users": users = response[keys[i]]; break; - case "token": document.cookie = "Token=" + response[keys[i]]; break; - case "reload": location.reload(); break; - case "openLink": window.location = response["openLink"]; break; - //case "version": version = response[keys[i]]; break; - } - } -} - -function getValueFromProviderFile(xXmltvFile, fileType, key) { - - var fileID = xXmltvFile.substring(0, xXmltvFile.lastIndexOf('.')) - - if (config["files"][fileType].hasOwnProperty(fileID) == true) { - var data = config["files"][fileType][fileID]; - return data[key] - } - -} - - - - diff --git a/html/js/files.js b/html/js/files.js deleted file mode 100644 index a8b63f2..0000000 --- a/html/js/files.js +++ /dev/null @@ -1,379 +0,0 @@ -function openFiles(elm, fileType) { - //document.getElementById("settings").innerHTML = "Test"; - - columnToSort = 0; - var newDiv = document.getElementById("settings"); - - var newEntry = new Object(); - newEntry["_element"] = "HR"; - newDiv.appendChild(createElement(newEntry)); - - var newEntry = new Object(); - newEntry["_element"] = "INPUT"; - newEntry["type"] = "button"; - newEntry["class"] = "button"; - newEntry["value"] = "New"; - newEntry["onclick"] = 'fileDetail("-", "' + fileType + '")'; - newDiv.appendChild(createElement(newEntry)); - - var newEntry = new Object(); - newEntry["_element"] = "INPUT"; - newEntry["type"] = "button"; - newEntry["class"] = "button"; - newEntry["value"] = "Update"; - newEntry["onclick"] = "fileDetail(0)"; - //newDiv.appendChild(createElement(newEntry)); - - var div = document.getElementById("settings"); - - // Build table - var newTable = new Object(); - newTable["_element"] = "TABLE"; - newTable["id"] = "id_mapping"; - newTable["class"] = "table-mapping"; - div.appendChild(createElement(newTable)); - - setTimeout(function(){ - createFilesTable(fileType); - }, 10); - -} - -function createFilesTable(fileType) { - var table = document.getElementById("id_mapping"); - var availableFileTypes = new Array(); - - table.innerHTML = ""; - var newTR = new Object(); - newTR["_element"] = "TR"; - newTR["class"] = "table-mapping-header"; - table.appendChild(createElement(newTR)); - - var tr = table.lastChild; - - switch(fileType) { - case "xmltv": - availableFileTypes = new Array("xmltv"); - var trHeadlines = new Array("Guide", "Last Update", "Availability %", "Channels", "Programs") - var compatibilityKeys = new Array("xmltv.channels", "xmltv.programs") - break; - - case "m3u": - availableFileTypes = new Array("m3u", "hdhr"); - var trHeadlines = new Array("Playlist", "Last Update", "Availability %", "Type", "Streams", "group-title %", "tvg-id %", "Unique ID %"); - var compatibilityKeys = new Array("streams", "group.title", "tvg.id", "stream.id"); - break; - } - - for (var i = 0; i < trHeadlines.length; i++) { - var newTD = new Object(); - newTD["_element"] = "TD"; - newTD["_text"] = trHeadlines[i]; - tr.appendChild(createElement(newTD)); - } - - for (var i = 0; i < availableFileTypes.length; i++) { - - var fileType = availableFileTypes[i] - - var data = config["files"][fileType]; - - var allFiles = getObjKeys(data) - - for (var f = 0; f < allFiles.length; f++) { - var elm = data[allFiles[f]]; - var table = document.getElementById("id_mapping"); - var fileID = elm["id.provider"]; - var name = elm["name"]; - var lastUpdate = elm["last.update"]; - var availability = elm["provider.availability"]; - var type = elm["type"].toUpperCase(); - var compatibility = elm["compatibility"]; - - // Create TR - var newTR = new Object(); - newTR["_element"] = "TR"; - newTR["class"] = ""; - newTR["id"] = fileID; - newTR["onclick"] = 'javascript: fileDetail("' + fileID + '","' + fileType + '");'; - table.appendChild(createElement(newTR)); - - var tr = table.lastChild; - - // Create file name TD - var newTD = new Object(); - newTD["_element"] = "P"; - newTD["_text"] = name; - createNewTD(newTD, tr); - - // Create last update TD - var newTD = new Object(); - newTD["_element"] = "P"; - newTD["_text"] = lastUpdate; - createNewTD(newTD, tr); - - // Create availability TD - var newTD = new Object(); - newTD["_element"] = "P"; - newTD["_text"] = availability; - createNewTD(newTD, tr); - - if (fileType == "m3u" || fileType == "hdhr") { - - // Create Type TD - var newTD = new Object(); - newTD["_element"] = "P"; - newTD["_text"] = type; - createNewTD(newTD, tr); - - } - - // Create all compatibility TDs - - for (var j = 0; j < compatibilityKeys.length; j++) { - var newTD = new Object(); - newTD["_element"] = "P"; - newTD["_text"] = compatibility[compatibilityKeys[j]]; - createNewTD(newTD, tr); - } - - } - - } - - - sortTable(0) - - // usage Info - var div = document.getElementById("settings"); - switch(menu[activeMenu.id].hasOwnProperty("_usage")) { - case true: - var usageItem = new Object(); - usageItem["_element"] = "PRE" - usageItem["_text"] = menu[activeMenu.id]["_usage"]; - - var newHR = new Object(); - newHR["_element"] = "HR" - div.appendChild(createElement(newHR)); - div.appendChild(createElement(usageItem)); - break; - } - - calculateWrapperHeight(); - return; -} - - -function fileDetail(fileID, fileType) { - - optionsText = new Array("M3U", "HDHomeRun - [Experimental]") - optionsValue = new Array("m3u", "hdhr") - - switch (fileType) { - - case "m3u": - document.getElementById("name").setAttribute("placeholder", "Playlist name"); - document.getElementById("description").setAttribute("placeholder", "Description of this playlist"); - document.getElementById("file-detail-headline").innerHTML = "M3U Playlist"; - document.getElementById("file-path").innerHTML = "M3U File:"; - document.getElementById("file.source").setAttribute("placeholder", "Local or remote"); - break; - - case "hdhr": - document.getElementById("name").setAttribute("placeholder", "HDHomeRun name"); - document.getElementById("description").setAttribute("placeholder", "Description of this HDHomeRun tuner"); - document.getElementById("file-detail-headline").innerHTML = "HDHomeRun"; - document.getElementById("file-path").innerHTML = "HDHomeRun IP:"; - document.getElementById("file.source").setAttribute("placeholder", "IP address and port of the tuner (192.168.1.10:5004)"); - break; - - case "xmltv": - document.getElementById("name").setAttribute("placeholder", "XMLTV name"); - document.getElementById("description").setAttribute("placeholder", "Description of this XMLTV file"); - document.getElementById("file-detail-headline").innerHTML = "XMLTV File"; - document.getElementById("file-path").innerHTML = "XMLTV File:"; - document.getElementById("file.source").setAttribute("placeholder", "Local or remote"); - - optionsText = new Array("XMLTV") - optionsValue = new Array("xmltv") - break; - } - - modifyOption("type", optionsText, optionsValue) - - showPopUpElement('file-detail'); - - document.getElementById("saveFileDetail").setAttribute("onclick", 'javascript: saveFileDetail("' + fileID + '","' + fileType + '", false)'); - document.getElementById("updateFileDetail").setAttribute("onclick", 'javascript: updateFile("' + fileID + '","' + fileType + '", false)'); - document.getElementById("deleteFileDetail").setAttribute("onclick", 'javascript: saveFileDetail("' + fileID + '","' + fileType + '", true)'); - - var data = new Object(); - - switch(fileID) { - - case "-": // New file - data["name"] = ""; - data["description"] = ""; - data["file.source"] = ""; - data["type"] = fileType; - - document.getElementById("deleteFileDetail").className = "delete"; - document.getElementById("type").setAttribute("onchange", "changeFileType(this);") - document.getElementById("type").setAttribute("data-id", fileID) - - showElement("deleteFileDetail", false); - showElement("updateFileDetail", false); - - if (fileType == "xmltv") { - showElement("type", false); - showElement("file-type", false); - } else { - showElement("type", true); - showElement("file-type", true); - } - - break; - - default: - data = config["files"][fileType][fileID]; - document.getElementById("deleteFileDetail").className = "delete"; - - showElement("updateFileDetail", true); - showElement("type", false); - showElement("file-type", false); - - break; - - } - - var keys = getObjKeys(data); - - for (var i = 0; i < keys.length; i++) { - - if(document.getElementById(keys[i])){ - document.getElementById(keys[i]).value = data[keys[i]]; - } - - - } - -} - -function changeFileType(elm) { - - var fileID = elm.getAttribute("data-id"); - var fileType = elm.options[elm.selectedIndex].value; - - fileDetail(fileID, fileType) - -} - - -function saveFileDetail(fileID, fileType, deleteFile) { - - if (fileID == undefined) { - alert("ID is missing!!!"); - return - } - - var inputs = document.getElementById("file-detail").getElementsByTagName("INPUT"); - var selects = document.getElementById("file-detail").getElementsByTagName("SELECT"); - var newFileData = new Object(); - var data = new Object(); - - for (var i = 0; i < inputs.length; i++) { - switch(inputs[i].type) { - case "text": newFileData[inputs[i].name] = inputs[i].value; break; - } - } - - for (var i = 0; i < selects.length; i++) { - newFileData[selects[i].id] = selects[i].options[selects[i].selectedIndex].value; - } - - if (deleteFile == true) { - switch(fileType) { - case "m3u": var alertText = "Delete this playlist?"; break; - case "hdhr": var alertText = "Delete this HDHomeRun tuner?"; break; - case "xmltv": var alertText = "Delete this XMLTV file?"; break; - } - - if (confirm(alertText)) { - newFileData["delete"] = true - data = buildFilesObj(fileType, fileID, newFileData); - console.log(data); - - } else { - showElement("popup", false); - return - - } - - } else { - - switch(config["files"][fileType].hasOwnProperty(fileID)) { - - case true: - data = config["files"][fileType][fileID]; - if (data["file.source"] != newFileData["file.source"]) { - data["update"] = true - } else { - data["updatePlaylistName"] = true; - } - break; - - case false: - newFileData["new"] = true; - data = buildFilesObj(fileType, fileID, newFileData); - break - - } - - } - - switch(fileType) { - - case "m3u": data["cmd"] = "saveFilesM3U"; break; - case "hdhr": data["cmd"] = "saveFilesHDHR"; break; - case "xmltv": data["cmd"] = "saveFilesXMLTV"; break; - - } - //console.log(data); - xTeVe(data); - return -} - -function updateFile(fileID, fileType, allFiles) { - - switch(config["files"][fileType].hasOwnProperty(fileID)) { - - case true: - - var data = new Object(); - var data = buildFilesObj(fileType, fileID, config["files"][fileType][fileID]) - data["new"] = true - - switch(fileType) { - - case "m3u": data["cmd"] = "updateFileM3U"; break; - case "hdhr": data["cmd"] = "updateFileHDHR"; break; - case "xmltv": data["cmd"] = "updateFileXMLTV"; break; - - } - - xTeVe(data); - - break; - } - -} - -function buildFilesObj(fileType, fileID, obj) { - - var data = new Object(); - data["files"] = new Object(); - data["files"][fileType] = new Object(); - data["files"][fileType][fileID] = obj - return data - -} \ No newline at end of file diff --git a/html/js/log.js b/html/js/log.js deleted file mode 100644 index 378d42f..0000000 --- a/html/js/log.js +++ /dev/null @@ -1,114 +0,0 @@ -var logInterval - - -function updateLog() { - var data = new Object(); - data["cmd"] = "getLog"; - xTeVe(data); - writeLogInDiv(); - return -} - -function writeLogInDiv() { - var logs = log["log"]; - var div = document.getElementById("settings").lastChild.lastChild; - div.innerHTML = ""; - - var max = 50; - - - for (var i = 0; i < logs.length; i++) { - var newEntry = new Object(); - newEntry["_element"] = "P"; - - if (logs[i].includes("ERROR")) { -// case "warnings": msgType = "warningMsg"; break; - newEntry["class"] = "errorMsg"; - } - - if (logs[i].includes("WARNING")) { -// case "warnings": msgType = "warningMsg"; break; - newEntry["class"] = "warningMsg"; - } - - newEntry["_text"] = logs[i]; - - div.appendChild(createElement(newEntry)); - } - - calculateWrapperHeight(); - var scrollDiv = document.getElementById("box-wrapper"); - scrollDiv.scrollTop = scrollDiv.scrollHeight; -} - -function showLog(obj) { - //logInterval = setInterval(updateLog, 5000); - - var logs = log["log"]; - - var div = document.getElementById("settings"); - - var newEntry = new Object(); - newEntry["_element"] = "HR"; - div.appendChild(createElement(newEntry)); - //div = div.lastChild; - - var newEntry = new Object(); - newEntry["_element"] = "INPUT"; - newEntry["type"] = "button"; - newEntry["class"] = "button"; - newEntry["value"] = "Empty Log"; - newEntry["onclick"] = "emptyLog()"; - div.appendChild(createElement(newEntry)); - - var newEntry = new Object(); - newEntry["_element"] = "code"; - newEntry["_text"] = "Update Log: "; - div.appendChild(createElement(newEntry)); - - var newEntry = new Object(); - newEntry["_element"] = "INPUT"; - newEntry["type"] = "checkbox"; - //newEntry["checked"] = "checkbox"; - newEntry["onclick"] = "logUpdates(this)"; - div.appendChild(createElement(newEntry)); - - var newEntry = new Object(); - newEntry["_element"] = "HR"; - div.appendChild(createElement(newEntry)); - - - - - - var newWrapper = new Object(); - newWrapper["_element"] = "DIV"; - newWrapper["id"] = "box-wrapper"; - div.appendChild(createElement(newWrapper)); - div = div.lastChild; - - var newPre = new Object(); - newPre["_element"] = "PRE"; - newPre["id"] = "logScreen"; - div.appendChild(createElement(newPre)); - - div = div.lastChild; - - writeLogInDiv() - return -} - -function emptyLog() { - var data = new Object(); - data["cmd"] = "emptyLog"; - xTeVe(data); - return -} - -function logUpdates(elm) { - switch(elm.checked) { - case false: clearInterval(logInterval); break; - case true: logInterval = setInterval(updateLog, 5000); break; - - } -} \ No newline at end of file diff --git a/html/js/mapping-editor.js b/html/js/mapping-editor.js deleted file mode 100644 index c83f28c..0000000 --- a/html/js/mapping-editor.js +++ /dev/null @@ -1,1468 +0,0 @@ -var mappingError = false; -var bulk = false; -var bulkEditAll = false; -var selectObj = new Object(); -var searchObj = new Object(); - -var bulkIDs = new Array(); -var bulkChangeObj = new Object(); - -function checkUndo(key, elm) { - var tmp = new Object(); - tmp = elm - console.log("--"); - if (undo.hasOwnProperty("epgMapping")) { - xEPG["epgMapping"] = JSON.parse(JSON.stringify(undo["epgMapping"]));; - } else { - undo["epgMapping"] = JSON.parse(JSON.stringify(elm)); - } -} - -//var plexCategories = new Array("-", "Action sports", "Action", "Adults only", "Adventure", "Aerobics", "Animals", "Animated", "Anime", "Anthology", "Archery", "Art", "Arts/crafts", "Auction", "Auto racing", "Auto", "Aviation", "Awards", "Ballet", "Baseball", "Basketball", "Bicycle racing", "Bicycle", "Billiards", "Biography", "Boat racing", "Boat", "Bowling", "Boxing", "Bus./financial", "Children", "Collectibles", "Comedy drama", "Comedy", "Community", "Computers", "Consumer", "Cooking", "Crime drama", "Crime", "Dance", "Dark comedy", "Debate", "Diving", "Docudrama", "Documentary", "Drama", "Educational", "Entertainment", "Environment", "Equestrian", "Erotic", "Event", "Fantasy", "Fashion", "Feature Film", "Fishing", "Football", "Game show", "Gaming", "Gay/lesbian", "Golf", "Handball", "Health", "Historical drama", "History", "Hockey", "Holiday", "Home improvement", "Horror", "Horse", "House/garden", "How-to", "Interview", "Intl soccer", "Law", "Martial arts", "Medical", "Military", "Miniseries", "Mixed martial arts", "Motorcycle racing", "Motorcycle", "Motorsports", "Mountain biking", "Music", "Musical comedy", "Musical", "Mystery", "Nature", "News", "Newsmagazine", "Olympics", "Opera", "Outdoors", "Parade", "Paranormal", "Parenting", "Performing arts", "Playoff sports", "Poker", "Politics", "Pro wrestling", "Public affairs", "Reality", "Religious", "Rodeo", "Roller derby", "Romance", "Romantic comedy", "Rugby", "Running", "Sailing", "Science fiction", "Science", "Self improvement", "Series", "Shooting", "Shopping", "Short Film", "Sitcom", "Skiing", "Snooker", "Soap", "Soccer", "Special", "Sports", "sports", "Sports event", "Sports non-event", "Sports talk", "Standup", "Surfing", "Suspense", "TV Movie", "Talk", "Technology", "Tennis", "Theater", "Thriller", "Track/field", "Travel", "Triathlon", "Variety", "Volleyball", "War", "Watersports", "Weather", "Western", "Wrestling", "Yacht racing", "movie", "series", "sports", "tvshow"); -var plexCategoriesValues = new Array("-", "Kids", "News", "Movie", "Series", "Sports") -var plexCategoriesOption = new Array("-", "Kids (Emby only)", "News", "Movie", "Series", "Sports") - - -function openMappingEditor(elm) { - var columnToSort = 1 - - checkUndo("epgMapping", xEPG["epgMapping"]) - - var newDiv = document.getElementById("settings"); - - var newEntry = new Object(); - newEntry["_element"] = "HR"; - newDiv.appendChild(createElement(newEntry)); - - var newEntry = new Object(); - newEntry["_element"] = "INPUT"; - newEntry["type"] = "button"; - newEntry["class"] = "button"; - newEntry["value"] = "Save"; - newEntry["onclick"] = "saveXEPG()"; - newDiv.appendChild(createElement(newEntry)); - - var newEntry = new Object(); - newEntry["_element"] = "INPUT"; - newEntry["type"] = "button"; - newEntry["class"] = "button"; - newEntry["value"] = "Bulk Edit"; - newEntry["onclick"] = "bulkEdit()"; - newDiv.appendChild(createElement(newEntry)); - - var newEntry = new Object(); - newEntry["_element"] = "INPUT"; - newEntry["type"] = "button"; - newEntry["class"] = "button"; - newEntry["value"] = "Show XEPG"; - newEntry["onclick"] = "showXEPG()"; - newDiv.appendChild(createElement(newEntry)); - - var newEntry = new Object(); - newEntry["_element"] = "INPUT"; - newEntry["class"] = "search"; - newEntry["id"] = "searchMapping"; - newEntry["type"] = "search"; - newEntry["placeholder"] = "Search"; - newEntry["onchange"] = "searchInMapping()"; - newDiv.appendChild(createElement(newEntry)); - - var div = document.getElementById("settings"); - //screenLog("Duplicate ID", "error", true) - - - // Build table - - var newWrapper = new Object(); - newWrapper["_element"] = "DIV"; - newWrapper["id"] = "box-wrapper"; - div.appendChild(createElement(newWrapper)); - - - var newTable = new Object(); - newTable["_element"] = "TABLE"; - newTable["id"] = "id_mapping"; - newTable["class"] = "table-mapping"; - div.lastChild.appendChild(createElement(newTable)); - showLoadingScreen(true); - - setTimeout(function(){ - createMappingTable(); - }, 10); - -} - -function createSearchObj() { - searchObj = new Object(); - var IDs = getObjKeys(xEPG["epgMapping"]) - for (var i = IDs.length - 1; i >= 0; i--) { - var item = xEPG["epgMapping"][IDs[i]]; - var searchID = item["x-epg"]; - var searchValue = ""; - searchValue = searchValue + item["x-channelID"] + " "; - searchValue = searchValue + item["x-category"] + " "; - searchValue = searchValue + item["x-name"] + " "; - searchValue = searchValue + item["x-group-title"] + " "; - searchValue = searchValue + item["x-xmltv-file"] + " "; - searchValue = searchValue + item["_file.m3u.name"] + " "; - - switch(item["x-active"]) { - case true: searchValue = searchValue + "online"; break; - case false: searchValue = searchValue + "offline"; break; - } - - searchObj[searchValue] = searchID; - - } -} - - -function calculateWrapperHeight() { - - if (document.getElementById("box-wrapper")){ - - var elm = document.getElementById("box-wrapper"); - - var divs = new Array("myStreamsBox", "clientInfo", "settings"); - var elementsHeight = 0 - elm.offsetHeight; - for (var i = 0; i < divs.length; i++) { - elementsHeight = elementsHeight + document.getElementById(divs[i]).offsetHeight; - } - - elm.style.height = window.innerHeight - elementsHeight + "px"; - - } - - if (document.getElementById("menu-wrapper")){ - - var elm = document.getElementById("menu-wrapper"); - - var offest = document.getElementById("settings").offsetHeight + document.getElementById("myStreamsBox").offsetHeight + document.getElementById("clientInfo").offsetHeight; - - if (window.innerHeight > offest) { - elm.style.height = window.innerHeight + "px" - } else { - elm.style.height = offest + "px" - } - - - } - - -} - -function createMappingTable() { - columnToSort = 1; - createSearchObj(); - - // Create table (Header) - var table = document.getElementById("id_mapping"); - table.innerHTML = ""; - var newTR = new Object(); - newTR["_element"] = "TR"; - newTR["class"] = "table-mapping-header"; - table.appendChild(createElement(newTR)); - - var tr = document.getElementById("id_mapping").lastChild; - var trHeadlines = new Array("Bulk", "Ch. No.", "Logo", "Channel Name", "Playlist", "Group Title", "XMLTV File", "XMLTV ID", "Timeshift") - - for (var i = 0; i < trHeadlines.length; i++) { - var newTD = new Object(); - - newTD["_element"] = "TD"; - newTD["_text"] = trHeadlines[i]; - - - - var width = ""; - switch(trHeadlines[i]) { - - case "Bulk": - - maxWidth = "32px"; - minWidth = "32px"; - - // Create bulk TD - var newCheckbox = new Object(); - newCheckbox["_element"] = "INPUT"; - newCheckbox["type"] = "checkbox"; - newCheckbox["class"] = "bulk hideBulk"; - newCheckbox["onmouseout"] = "javascript: this.blur()" - newCheckbox["onclick"] = "javascript: bulkEditAllChannels()" - - - //newTD.appendChild(createElement(newCheckbox)); - - break; - - case "Ch. No.": - maxWidth = "80px"; - minWidth = "70px"; - newTD["onclick"] = "javscript: sortTable(" + i + ");"; - newTD["class"] = "pointer"; - break; - - case "Logo": maxWidth = "120px"; minWidth = "60px"; break; - - case "Channel Name": - maxWidth = "50%"; - minWidth = "200px"; - newTD["onclick"] = "javscript: sortTable(" + i + ");"; - newTD["class"] = "pointer"; - break; - - case "Playlist": - maxWidth = "150px"; - minWidth = "100px"; - newTD["onclick"] = "javscript: sortTable(" + i + ");"; - newTD["class"] = "pointer"; - break; - - case "Group Title": - maxWidth = "150px"; - minWidth = "100px"; - newTD["onclick"] = "javscript: sortTable(" + i + ");"; - newTD["class"] = "pointer"; - break; - - case "XMLTV File": - maxWidth = "150px"; - minWidth = "100px"; - //newTD["onclick"] = "javscript: sortTable(" + i + ");"; - newTD["class"] = ""; - break; - - - case "XMLTV ID": maxWidth = "150px"; minWidth = "100px"; break; - - case "Timeshift": maxWidth = "50px"; minWidth = "20px"; break; - - default: - newTD["class"] = ""; - break; - } - - tr.appendChild(createElement(newTD)); - if (trHeadlines[i] == "Bulk") { - tr.lastChild.innerHTML = ""; - tr.lastChild.appendChild(createElement(newCheckbox)); - - } - - var elm = tr.lastChild; - elm.style.width = maxWidth; - elm.style.maxWidth = maxWidth; - elm.style.minWidth = minWidth; - - } - calculateWrapperHeight(); - var IDs = getObjKeys(xEPG["epgMapping"]) - - var allXmltvFiles = getObjKeys(xEPG["xmltvMap"]); - - if (allXmltvFiles == 0) { - showLoadingScreen(false); - return; - } - - // Sort IDs - var posObj = new Object(); - for (var i = 0; i < IDs.length; i++) { - var item = xEPG["epgMapping"][IDs[i]]; - var pos - switch(isNaN(xEPG["epgMapping"][IDs[i]]["x-channelID"])) { - case false: pos = parseFloat(xEPG["epgMapping"][IDs[i]]["x-channelID"]) ; break; - } - posObj[pos] = item; - } - posFloat = getObjKeys(posObj) - function sortFloat(a,b) { return a - b; } - posFloat.sort(sortFloat) - - //console.log(posFloat); - - // --- - - if (IDs.length > 200) { - setTimeout(function(){ - showLoadingScreen(true); - }, 1); - - } - - - // table for int channel ID's - for (var i = 0; i < posFloat.length; i++) { - - var table = document.getElementById("id_mapping"); - var item = posObj[posFloat[i]]; - //var item = xEPG["epgMapping"][IDs[i]]; - //console.log(item); - var newTR = new Object(); - newTR["_element"] = "TR"; - newTR["class"] = ""; - newTR["id"] = item["x-epg"]; - newTR["oncontextmenu"] = 'javascript: switchChannelStatus("' + item["x-epg"] + '"); return false;'; - table.appendChild(createElement(newTR)); - - var tr = document.getElementById("id_mapping").lastChild; - - // Create bulk TD - var newTD = new Object(); - newTD["_element"] = "INPUT"; - newTD["type"] = "checkbox"; - newTD["class"] = "bulk hideBulk"; - newTD["onmouseout"] = "javascript: this.blur()" - - createNewTD(newTD, tr); - - - // Create ID TD - var newTD = new Object(); - newTD["_element"] = "INPUT"; - newTD["type"] = "text" - newTD["class"] = "w40px"; - newTD["value"] = item["x-channelID"]; - newTD["onfocusout"] = "javascript: arrangeTable(this);" - createNewTD(newTD, tr); - - // Create IMG TD - var newTD = new Object(); - newTD["_element"] = "IMG"; - newTD["onclick"] = 'javascript: mappingDetail("' + item["x-epg"] + '");'; - if (item["tvg-logo"] != undefined) { - newTD["src"] = item["tvg-logo"]; - } else { - item["tvg-logo"] = ""; - newTD["src"] = ""; - } - createNewTD(newTD, tr); - tr.lastChild.setAttribute("onclick", 'javascript: mappingDetail("' + item["x-epg"] + '");') - - // Create P TD (channel name) - var newTD = new Object(); - newTD["_element"] = "P"; - newTD["_text"] = item["x-name"]; - newTD["class"] = item["x-category"]; - - createNewTD(newTD, tr); - tr.lastChild.setAttribute("onclick", 'javascript: mappingDetail("' + item["x-epg"] + '");') - tr.lastChild.lastChild.style.padding = "5px 10px"; - - // Create P TD (Playlist Name) - var newTD = new Object(); - newTD["_element"] = "P"; - newTD["_text"] = item["_file.m3u.name"]; - newTD["class"] = item["tableEllipsis"]; - - createNewTD(newTD, tr); - tr.lastChild.setAttribute("onclick", 'javascript: mappingDetail("' + item["x-epg"] + '");') - - // Create P TD (Group Title) - var newTD = new Object(); - newTD["_element"] = "P"; - newTD["_text"] = item["x-group-title"]; - newTD["class"] = item["tableEllipsis"]; - - createNewTD(newTD, tr); - tr.lastChild.setAttribute("onclick", 'javascript: mappingDetail("' + item["x-epg"] + '");') - - - // Create P TD (XMLTV file) - var newTD = new Object(); - newTD["_element"] = "P"; - newTD["class"] = "tableEllipsis"; - newTD["_text"] = "-" - - if (allXmltvFiles.indexOf(item["x-xmltv-file"]) != -1) { - var xXmltvFile = item["x-xmltv-file"]; - switch(xXmltvFile) { - case "-": newTD["_text"] = xXmltvFile; break; - case "xTeVe Dummy": newTD["_text"] = xXmltvFile; break; - default: newTD["_text"] = getValueFromProviderFile(xXmltvFile, "xmltv", "name"); break; - - } - //console.log(newTD); - - //newTD["_text"] = item["x-xmltv-file"]; - } else { - //newTD["_text"] = "-" - } - createNewTD(newTD, tr); - tr.lastChild.setAttribute("onclick", 'javascript: mappingDetail("' + item["x-epg"] + '");') - - // Creatr P TD (XMLTV channel ID) - newTD["_element"] = "P"; - newTD["class"] = "tableEllipsis"; - - if (item["x-mapping"] != undefined) { - newTD["_text"] = item["x-mapping"]; - } - - createNewTD(newTD, tr); - tr.lastChild.setAttribute("onclick", 'javascript: mappingDetail("' + item["x-epg"] + '");') - - - var xXmltvFile = item["x-xmltv-file"]; - var xMapping = item["x-mapping"]; - var tvgID = item["tvg-id"]; - - //console.log(item["x-epg"]); - //console.log(item); - - if (item["x-active"] == true) { - tr.className = "activeEPG"; - } else { - tr.className = "notActiveEPG"; - } - - } - - sortTable(1); - - setTimeout(function(){ - showLoadingScreen(false); - }, 5); -} - -function searchInMapping(elm) { - - var search = document.getElementById("searchMapping").value; - var values = getObjKeys(searchObj) - - for (var i = values.length - 1; i >= 0; i--) { - var id = searchObj[values[i]]; - var bool = values[i].toLowerCase().includes(search.toLowerCase()); - switch(bool) { - case true: document.getElementById(id).style.display = ""; break; - case false: document.getElementById(id).style.display = "none"; break; - } - } - -} - -function mappingDetail(xepg) { - - bulkIDs = new Array(); - var activeElement = document.activeElement; - // If input id, return - if (activeElement.tagName == "INPUT") { - return - } - - if (bulk == true) { - var elm = document.getElementsByClassName("bulk"); - for (var i = 1; i < elm.length; i++) { - if (elm[i].checked == true) { - var id = elm[i].parentElement.parentElement.id; - bulkIDs.push(id) - } - - } - - if (bulkIDs.length == 0) { - showElement('popup', false) - alert("No channels selected for editing") - return - } - - xepg = bulkIDs[0] - } - - - createSearchObj(); - - showPopUpElement('mapping-detail'); - - var thisChannel = xEPG["epgMapping"][xepg]; - //console.log(thisChannel); - var xXmltvFile = thisChannel["x-xmltv-file"]; - var xMapping = thisChannel["x-mapping"]; - var xCategory = thisChannel["x-category"]; - - if (xXmltvFile == undefined) { - thisChannel["x-xmltv-file"] = "-"; - xXmltvFile = "-"; - } - - if (xMapping == undefined) { - thisChannel["x-mapping"] = "-"; - xMapping = "-"; - } - - /* - console.log("ID:", xepg); - console.log("XMLTV File:", xXmltvFile); - console.log("Mapping:", xMapping); - */ - - var keys = getObjKeys(thisChannel); - for (var i = 0; i < keys.length; i++) { - if(document.getElementById(keys[i])){ - var td = document.getElementById(keys[i]) - } else { - var td = undefined; - } - - var newItem = new Object(); - var values, text = new Array(); - switch(keys[i]) { - case "x-xmltv-file": - var fileIDs = getObjKeys(xEPG["xmltvMap"]); - var value = new Array("-"); - var text = new Array("-"); - - for (var j = fileIDs.length - 1; j >= 0; j--) { - if (fileIDs[j] != "xTeVe Dummy") { - value.push(getValueFromProviderFile(fileIDs[j], "xmltv", "file.xteve")) - text.push(getValueFromProviderFile(fileIDs[j], "xmltv", "name")) - } else { - value.push(fileIDs[j]) - text.push(fileIDs[j]) - } - - } - - newItem["_element"] = "SELECT"; - newItem["_optionValues"] = value; - newItem["_optionText"] = text - newItem["value"] = xXmltvFile; - newItem["onchange"] = 'javascript: changeXmltvFile("' + xepg + '",this);'; - - break; - - case "x-mapping": - - var values = getObjKeys(xEPG["xmltvMap"][xXmltvFile]); - - for (var j = 0; j < values.length; j++) { - - if (xEPG["xmltvMap"][xXmltvFile][values[j]].hasOwnProperty('display-name') == true) { - var displayName = xEPG["xmltvMap"][xXmltvFile][values[j]]["display-name"]; - } else { - var displayName = "-" - } - - //text[j] = values[j] + " (" + displayName + ")"; - text[j] = displayName + " (" + values[j] + ")"; - } - - text.unshift("-"); - values.unshift("-"); - newItem["_element"] = "SELECT"; - newItem["_optionValues"] = values; - newItem["_optionText"] = text - newItem["value"] = xMapping; - newItem["onchange"] = 'javascript: mappingChannel("' + xepg + '",this);'; - break; - - case "x-category": - //var values = plexCategoriesValues - newItem["_element"] = "SELECT"; - newItem["_optionValues"] = plexCategoriesValues; - newItem["_optionText"] = plexCategoriesOption; - newItem["value"] = xCategory; - newItem["onchange"] = 'saveCategory("' + xepg + '")'; - break; - - case "tvg-logo": - document.getElementById("channel-logo").setAttribute("src", thisChannel["tvg-logo"]); - newItem["_element"] = "INPUT"; - newItem["type"] = "text"; - newItem["value"] = thisChannel["tvg-logo"]; - newItem["onfocusout"] = 'saveChannelLogo("' + xepg + '")'; - newItem["placeholder"] = 'Image URL'; - break; - - case "x-update-channel-icon": - newItem["_element"] = "INPUT"; - newItem["type"] = "checkbox"; - switch(JSON.parse(thisChannel["x-update-channel-icon"])) { - case true: newItem["checked"] = thisChannel["x-update-channel-icon"]; - break - } - newItem["onchange"] = 'saveChannelIconUpdate("' + xepg + '")'; - break; - - case "x-name": - newItem["_element"] = "INPUT"; - newItem["type"] = "text"; - newItem["value"] = thisChannel["x-name"]; - newItem["onfocusout"] = 'saveChannelName("' + xepg + '")'; - newItem["placeholder"] = 'Channel Name'; - break; - - case "x-update-channel-name": - if (thisChannel.hasOwnProperty("_uuid.key") == true) { - newItem["_element"] = "INPUT"; - newItem["type"] = "checkbox"; - switch(JSON.parse(thisChannel["x-update-channel-name"])) { - case true: newItem["checked"] = thisChannel["x-update-channel-name"]; - break - } - newItem["onchange"] = 'saveChannelNameUpdate("' + xepg + '")'; - showElement("streamHasCUID", true) - - break; - } else { - //streamHasCUID - showElement("streamHasCUID", false) - break; - } - - case "x-active": - newItem["_element"] = "INPUT"; - newItem["type"] = "checkbox"; - switch(JSON.parse(thisChannel["x-active"])) { - case true: newItem["checked"] = thisChannel["x-active"]; - break - } - newItem["onchange"] = 'saveChannelStatus("' + xepg + '")'; - break; - - case "x-group-title": - newItem["_element"] = "INPUT"; - newItem["type"] = "text"; - newItem["value"] = thisChannel["x-group-title"]; - newItem["onfocusout"] = 'saveGroupTitle("' + xepg + '")'; - newItem["placeholder"] = 'Group Title'; - break; - - default: - newItem["_element"] = "P"; - newItem["_text"] = thisChannel[keys[i]]; - break; - - } - - if (td != undefined) { - td.innerHTML = ""; - var element = createNewElement(newItem) - //console.log(element); - td.appendChild(element); - } - - } - - if (bulk == true) { - - var elm = document.getElementsByClassName("noBulk"); - for (var i = 0; i < elm.length; i++) { - elm[i].lastChild.setAttribute("readonly", true) - elm[i].lastChild.style.borderColor = "red"; - } - - xepg = bulkIDs[0] - } - - sortSelect(document.getElementById("x-xmltv-file").lastChild); - sortSelect(document.getElementById("x-mapping").lastChild); - -} - -function sortSelect(elem) { - - var tmpAry = []; - // Retain selected value before sorting - var selectedValue = elem[elem.selectedIndex].value; - // Grab all existing entries - for (var i=0;i 0) elem.options[0] = null; - // Restore sorted elements - var newSelectedIndex = 0; - for (var i=0;i 0 && xMapping != "-" && xMapping.length > 0) { - if (xEPG["xmltvMap"][xXmltvFile][xMapping].hasOwnProperty("icon")) { - var logoURL = xEPG["xmltvMap"][xXmltvFile][xMapping]["icon"]; - thisChannel["tvg-logo"] = logoURL; - document.getElementById(xepg).childNodes[2].lastChild.setAttribute("src", logoURL); - document.getElementById("channel-logo").setAttribute("src", logoURL); - } else { - alert("No logo URL in the XMLTV file available") - } - - } - - /* - if (xEPG["xmltvMap"][xXmltvFile][xMapping]["icon"] != undefined) { - - - } - */ - - } -} - -function saveChannelLogo(xepg) { - if (bulk == false) { - var thisChannel = xEPG["epgMapping"][xepg]; - thisChannel["tvg-logo"] = document.getElementById("tvg-logo").lastChild.value; - document.getElementById(xepg).childNodes[2].lastChild.setAttribute("src", thisChannel["tvg-logo"]); - mappingDetail(xepg); - return - } - - if (bulk == true) { - var key = "tvg-logo"; - var value = document.getElementById("tvg-logo").lastChild.value; - saveBulk(key, value); - - mappingDetail(xepg); - return - } -} - -function saveChannelIconUpdate(xepg) { - - var key = "x-update-channel-icon"; - var value = JSON.parse(document.getElementById("x-update-channel-icon").lastChild.checked); - if (bulk == false) { - var thisChannel = xEPG["epgMapping"][xepg]; - thisChannel[key] = value - updateChannelLogo(xepg) - - mappingDetail(xepg); - searchInMapping(); - return - } - - if (bulk == true) { - saveBulk(key, value); - mappingDetail(xepg); - return - } - -} - -function saveChannelName(xepg) { - if (bulk == false) { - var thisChannel = xEPG["epgMapping"][xepg]; - thisChannel["x-name"] = document.getElementById("x-name").lastChild.value; - document.getElementById(xepg).childNodes[3].lastChild.innerHTML = thisChannel["x-name"]; - mappingDetail(xepg); - searchInMapping(); - } - -} - -function saveChannelNameUpdate(xepg) { - var key = "x-update-channel-name"; - var value = JSON.parse(document.getElementById("x-update-channel-name").lastChild.checked); - - if (bulk == false) { - var thisChannel = xEPG["epgMapping"][xepg]; - thisChannel[key] = value - mappingDetail(xepg); - searchInMapping(); - return - } - - if (bulk == true) { - saveBulk(key, value); - mappingDetail(xepg); - return - } - -} - -function saveChannelStatus(xepg) { - var thisChannel = xEPG["epgMapping"][xepg]; - var xXmltvFile = thisChannel["x-xmltv-file"]; - - var key = "x-active"; - var value = JSON.parse(document.getElementById("x-active").lastChild.checked); - - if (xEPG["xmltvMap"].hasOwnProperty(xXmltvFile) == true) { - if (thisChannel["x-mapping"] != "-" && thisChannel["x-mapping"] != undefined) { - thisChannel["x-active"] = !thisChannel["x-active"]; - var tr = document.getElementById(xepg); - switch(thisChannel["x-active"]) { - case true: tr.className = "activeEPG"; break; - case false: tr.className = "notActiveEPG"; break; - } - - } else { - var err = "XMLTV Channel is not selected" - alert(err) - value = false - } - - } else { - if (value == true) { - var err = "XMLTV File is not selecte" - alert(err) - value = false - } - } - - - - if (bulk == false) { - var thisChannel = xEPG["epgMapping"][xepg]; - thisChannel[key] = value - mappingDetail(xepg); - searchInMapping(); - - var tr = document.getElementById(xepg); - switch(thisChannel["x-active"]) { - case true: tr.className = "activeEPG"; break; - case false: tr.className = "notActiveEPG"; break; - } - - return - } - - if (bulk == true) { - saveBulk(key, value); - mappingDetail(xepg); - return - } - -} - -function saveGroupTitle(xepg) { - var key = "x-group-title"; - var value = document.getElementById("x-group-title").lastChild.value; - - if (bulk == false) { - var thisChannel = xEPG["epgMapping"][xepg]; - document.getElementById(xepg).childNodes[5].lastChild.innerHTML = value; - thisChannel[key] = value; - mappingDetail(xepg); - searchInMapping(); - } - - if (bulk == true) { - saveBulk(key, value); - mappingDetail(xepg); - return - } - -} - -function saveCategory(xepg) { - var key = "x-category"; - var value = document.getElementById("x-category").lastChild.value; - - if (bulk == false) { - var thisChannel = xEPG["epgMapping"][xepg]; - thisChannel[key] = value - document.getElementById(xepg).childNodes[3].lastChild.className = value - mappingDetail(xepg); - searchInMapping(); - } - - if (bulk == true) { - saveBulk(key, value); - mappingDetail(xepg); - return - } - -} - -function arrangeTable(elm) { - var tr = elm.parentElement.parentElement; - var newPosition = elm.value; - var x_channelID = tr.id; - - switch(isNaN(newPosition)) { - case true: - alert("Ch. No. must be a number"); - mappingError = true; - break; - } - - - //var item = xEPG["epgMapping"][id]; - var keys = getObjKeys(xEPG["epgMapping"]) - for (var i = 0; i < keys.length; i++) { - var item = xEPG["epgMapping"][keys[i]]; - if (item["x-epg"] == x_channelID) { - - // Check if position exist - var oldPosition = item["x-channelID"]; - - if (oldPosition != newPosition) { - - console.log(newPosition, newPosition.length); - if (newPosition.length == 0) { - mappingError = true - newPosition = oldPosition; - - } - - if (mappingError == true) { - elm.value = oldPosition; - return; - } - - for (var j = keys.length - 1; j >= 0; j--) { - var channel = xEPG["epgMapping"][keys[j]]; - if (keys[j] != x_channelID) { - if (newPosition == channel["x-channelID"]) { // If position exist, set next free position. - newPosition++; - elm.value = newPosition; - arrangeTable(elm); - return; - /* - var newError = new Object(); - newError["err"] = "Duplicate ID"; - checkErr(newError); - sortTable(); - mappingError = true; - document.getElementById(x_channelID).getElementsByTagName("INPUT")[0].focus(); - return; - */ - } - } - } - - } - - //console.log(oldPosition, newPosition); - if (keys[i] == x_channelID && oldPosition != newPosition) { - item["x-channelID"] = newPosition; - } - - document.getElementById("logInfo").className = "notVisible"; - if (columnToSort == 1) { - sortTable(columnToSort); - } - mappingError = false; - - } - } -} - -function changeXmltvFile(xepg, elm) { - - var thisChannel = xEPG["epgMapping"][xepg]; - - var xXmltvFile = elm.value; - var channelID = thisChannel["tvg-id"]; - thisChannel["x-xmltv-file"] = xXmltvFile; - - if (bulk == false) { - - setTimeout(function(){ - - var xMapping = "-" - - // Automap - if (xXmltvFile != "-") { - if (xEPG["xmltvMap"][xXmltvFile].hasOwnProperty(channelID) == true) { - thisChannel["x-mapping"] = channelID; - xMapping = channelID - } else { - thisChannel["x-mapping"] = xMapping - } - } else { - thisChannel["x-mapping"] = xMapping - - } - - var tr = document.getElementById(xepg); - - if (xMapping == "-") { - thisChannel["x-active"] = false; - tr.className = "notActiveEPG" - } else { - thisChannel["x-active"] = true; - tr.className = "activeEPG" - } - - // Show data in table - var td = tr.getElementsByTagName("TD"); - var dataFile = td[td.length - 2].lastChild; - switch(xXmltvFile) { - case "-": dataFile.innerHTML = xXmltvFile; break; - case "xTeVe Dummy": dataFile.innerHTML = xXmltvFile; break; - default: dataFile.innerHTML = getValueFromProviderFile(xXmltvFile, "xmltv", "name"); break; - } - - //xXmltvFile.replace(/^.*[\\\/]/, ''); - - var dataXmltvID = td[td.length - 1].lastChild; - dataXmltvID.innerHTML = xMapping; - - mappingDetail(xepg); - - }, 10); - } - - if (bulk == true) { - var key = "x-xmltv-file" - var value = xXmltvFile - saveBulk(key, value); - - var key = "x-mapping" - var value = "-" - saveBulk(key, value); - mappingDetail(xepg); - return - } - - return -} - -function mappingChannel(xepg, elm) { - var thisChannel = xEPG["epgMapping"][xepg]; - //var xMapping = elm.value; - var xMapping = elm.options[elm.selectedIndex].value - - if (bulk == false) { - - thisChannel["x-mapping"] = xMapping; - - var tr = document.getElementById(xepg); - - if (xMapping == "-") { - thisChannel["x-active"] = false; - tr.className = "notActiveEPG" - } else { - thisChannel["x-active"] = true; - tr.className = "activeEPG" - } - - // Show data in table - var td = tr.getElementsByTagName("TD"); - var dataXmltvID = td[td.length - 1].lastChild; - dataXmltvID.innerHTML = xMapping; - //console.log(td[td.length - 1]); - //console.log(xMapping, elm); - - createSearchObj(); - searchInMapping(); - updateChannelLogo(xepg) - mappingDetail(xepg); - return - } - - if (bulk == true) { - - var key = "x-mapping" - var value = xMapping - saveBulk(key, value); - - mappingDetail(xepg); - return - } - - return -} - - -function createNewTD(newItem, elm) { - var newTD = new Object(); - newTD["_element"] = "TD"; - - elm.appendChild(createElement(newTD)); - var td = elm.lastChild; - - switch(newItem["_element"]) { - case "SELECT": - td.appendChild(createElement(newItem)); - var td = elm.lastChild.lastChild; - var values = newItem["_optionValues"]; - for (var i = 0; i < values.length; i++) { - //console.log(item); - var newEntry = new Object; - newEntry["_element"] = "OPTION"; - newEntry["_text"] = values[i]; - newEntry["value"] = values[i]; - td.appendChild(createElement(newEntry)); - } - td.value = newItem["value"]; - - break; - - default: - - td.appendChild(createElement(newItem)); - break; - } - -} - -function saveXEPG() { - if (mappingError == true) { - alert("Data could not be saved, errors in the XEPG data."); - return; - } - showLoadingScreen(true); - - var data = new Object(); - data["epgMapping"] = xEPG["epgMapping"]; - data["cmd"] = "saveEpgMapping"; - //console.log(data); - xTeVe(data); -} - -function bulkEdit() { - bulk = !bulk; - var className; - - var elm = document.getElementsByClassName("bulk"); - - switch(bulk) { - case true: - className = "bulk showBulk"; - break; - - case false: - className = "bulk hideBulk"; - bulkEditAll = false; - break; - } - - for (var i = 0; i < elm.length; i++) { - elm[i].className = className; - elm[i].checked = false; - } - -} - -function bulkEditAllChannels() { - - var allTR = document.getElementById("id_mapping").getElementsByTagName("TR"); - - for (var i = 1; i < allTR.length; i++) { - if (allTR[i].style.display != "none") { - switch(bulkEditAll) { - case false: allTR[i].firstChild.firstChild.checked = true; break; - case true: allTR[i].firstChild.firstChild.checked = false; break; - } - - } - - } - - bulkEditAll = !bulkEditAll; -} - -function sortTable(columm) { - //console.log(columm); - if (columm == columnToSort) { - //return; - } - - var table = document.getElementById("id_mapping"); - var tableHead = table.getElementsByTagName("TR")[0]; - var tableItems = tableHead.getElementsByTagName("TD"); - - var sortObj = new Object(); - var x, xValue; - var tableHeader - var sortByString = false - - if (columm > 0 && columnToSort > 0) { - tableItems[columnToSort].className = "pointer"; - tableItems[columm].className = "sortThis"; - } - - columnToSort = columm; - - var rows = table.rows; - - if (rows[1] != undefined) { - tableHeader = rows[0] - - x = rows[1].getElementsByTagName("TD")[columm]; - - for (i = 1; i < rows.length; i++) { - - x = rows[i].getElementsByTagName("TD")[columm]; - - switch(x.childNodes[0].tagName.toLowerCase()) { - case "input": - xValue = x.getElementsByTagName("INPUT")[0].value.toLowerCase(); - break; - - case "p": - xValue = x.getElementsByTagName("P")[0].innerText.toLowerCase(); - break; - - default: console.log(x.childNodes[0].tagName); - } - - if (xValue == "" || xValue == NaN) { - xValue = i - sortObj[i] = rows[i]; - - } else { - - switch(isNaN(xValue)) { - case false: - - xValue = parseFloat(xValue); - sortObj[xValue] = rows[i] - break; - - case true: - - sortByString = true - sortObj[xValue.toLowerCase() + i] = rows[i] - break; - - } - - } - - } - - while (table.firstChild) { - table.removeChild(table.firstChild); - } - - var sortValues = getObjKeys(sortObj) - if (sortByString == true) { - sortValues.sort() - } else { - function sortFloat(a, b) { - return a - b; - } - sortValues.sort(sortFloat); - } - - table.appendChild(tableHeader) - - for (var i = 0; i < sortValues.length; i++) { - - table.appendChild(sortObj[sortValues[i]]) - - } - - } - -} - - -function sortTable_old(columm) { - showLoadingScreen(true); - - setTimeout(function(){ - - var table, rows, switching, i, x, y, shouldSwitch; - table = document.getElementById("id_mapping"); - - var tableHead = table.getElementsByTagName("TR")[0]; - var tableItems = tableHead.getElementsByTagName("TD"); - - if (columm > 0) { - tableItems[columnToSort].className = "pointer"; - tableItems[columm].className = "sortThis"; - } - - columnToSort = columm; - - /* - for (var i = 0; i < tableItems.length; i++) { - if (tableItems[i].className != undefined) { - tableItems[i].className = "pointer" - } - - } - */ - - - - console.log(tableItems); - - switching = true; - while (switching) { - switching = false; - rows = table.rows; - for (i = 1; i < (rows.length - 1); i++) { - shouldSwitch = false; - - x = rows[i].getElementsByTagName("TD")[columm]; - y = rows[i + 1].getElementsByTagName("TD")[columm]; - - switch(x.childNodes[0].tagName.toLowerCase()) { - case "input": - xValue = x.getElementsByTagName("INPUT")[0].value.toLowerCase(); - yValue = y.getElementsByTagName("INPUT")[0].value.toLowerCase(); - break; - - case "p": - xValue = x.getElementsByTagName("P")[0].innerText.toLowerCase(); - yValue = y.getElementsByTagName("P")[0].innerText.toLowerCase(); - break; - - default: console.log(x.childNodes[0].tagName); - } - - - switch(isNaN(xValue)) { - case false: xValue = parseFloat(xValue) ; break; - } - - switch(isNaN(yValue)) { - case false: yValue = parseFloat(yValue) ; break; - } - - - if (xValue > yValue) { - shouldSwitch = true; - break; - } - - } - if (shouldSwitch) { - rows[i].parentNode.insertBefore(rows[i + 1], rows[i]); - switching = true; - } - } - createSearchObj() - - showLoadingScreen(false); - }, 20); - -} - -function showXEPG() { - var url = location.protocol + "//" + location.hostname + ":" + location.port + "/xmltv/xteve.xml" - var win = window.open(url, '_blank'); - win.focus(); -} \ No newline at end of file diff --git a/html/js/menu.js b/html/js/menu.js deleted file mode 100644 index 962e921..0000000 --- a/html/js/menu.js +++ /dev/null @@ -1,754 +0,0 @@ - -function setMenuItem() { - - menu = new Object(); - subMenu = new Object(); - - var menu_m3u = new Object(); - menu_m3u["_menuType"] = "inputArray"; - menu_m3u["_element"] = "LI"; - menu_m3u["_configKey"] = "files.m3u"; - menu_m3u["_text"] = "Playlist"; - menu_m3u["_icon"] = "img/m3u.png"; - menu_m3u["_headline"] = "Playlists: Local or remote"; - menu_m3u["_usage"] = "Info
Availability: File availability in percent
Streams: Number of streams in the file.
group-title: Streams that are assigned to a group. Simplifies filtering streams
tvg-id: This ID is used for automatic mapping, must match with the channel ID in the XMLTV file.
Unique ID: Streams with a unique ID to identify them. Allows channel name changes in the M3U without losing the XMLTV mapping (PPV / live events).

Usage M3U:
Remote playlist: http://your.iptv.provider.com/file.m3u
Local playlist: /path/to/file.m3u

Usage HDHomeRun:
IP: 192.168.1.10:5004
" - menu_m3u["name"] = "file"; - menu_m3u["id"] = "file"; - menu_m3u["value"] = menu_m3u["name"]; - menu_m3u["placeholder"] = "Playlist: local or remote"; - menu_m3u["onclick"] = "javascript: toggleMenu(this);"; - menu_m3u["class"] = "menu-notActive"; - - - var menu_filter = new Object(); - menu_filter["_menuType"] = "inputArray"; - menu_filter["_element"] = "LI"; - menu_filter["_configKey"] = "filter"; - menu_filter["_text"] = "Filter"; - menu_filter["_icon"] = "img/filter.png"; - menu_filter["_headline"] = "Filter by M3U parameters, e.g. group-title"; - menu_filter["_usage"] = "Usage:
Sport - All sports channels
Sport {HD} - All HD sports channels
Sport {HD} !{ES,DE} - All HD sports channels, but no Spanish and German

To filter the streams of a HDHomeRun, the playlist name can be entered:
My tuner {HD}" - //menu_filter["_usage"] = "Usage:
All sports channels: Sport
All HD sports channels: Sport {HD}
All HD sports channels, but no Spanish and German: Sport {HD} !{ES,DE}" - menu_filter["name"] = "filter"; - menu_filter["id"] = "M3U"; - menu_filter["value"] = menu_filter["name"]; - menu_filter["placeholder"] = "Filter streams: Sport"; - menu_filter["onclick"] = "javascript: toggleMenu(this);"; - menu_filter["class"] = "menu-notActive"; - - var menu_id = new Object(); - menu_id["_menuType"] = "inputArray"; - menu_id["_element"] = "LI"; - menu_id["_configKey"] = "id"; - menu_id["_text"] = "PMS ID"; - menu_id["_icon"] = "img/number.png"; - menu_id["_headline"] = "Setup PMS guide number"; - menu_id["_usage"] = 'Some playlists have unique channel IDs.
Enter the keyword of the ID. The channel assignment in PMS will change as a result.

e.g. channelID
#EXTINF:0 type="stream" channelId="81", My Streaming Channel HD

Only enter here if you know what you are doing!' - menu_id["name"] = "id"; - menu_id["id"] = "id"; - menu_id["value"] = menu_id["name"]; - menu_id["placeholder"] = "Unique ID from the M3U file"; - menu_id["onclick"] = "javascript: toggleMenu(this);"; - menu_id["class"] = "menu-notActive"; - - - var menu_xmltv = new Object(); - menu_xmltv["_menuType"] = "inputArray"; - menu_xmltv["_element"] = "LI"; - menu_xmltv["_configKey"] = "files.xmltv"; - menu_xmltv["_text"] = "XMLTV"; - menu_xmltv["_icon"] = "img/xmltv.png"; - menu_xmltv["_headline"] = "XMLTV files: Local or remote"; - menu_xmltv["_usage"] = "Info:
Availability: File availability in percent
Channels: Number of channels in the file
Programs: Number of EPG data

Usage:
Remote XMLTV file: http://your.epg.provider.com/guide.xml
Local XMLTV file: /path/to/guide.xml" - menu_xmltv["name"] = "xmltv"; - menu_xmltv["id"] = "xmltv"; - menu_xmltv["value"] = menu_xmltv["name"]; - menu_xmltv["placeholder"] = "XMLTV File: local or remote"; - menu_xmltv["onclick"] = "javascript: toggleMenu(this);"; - menu_xmltv["class"] = "menu-notActive"; - - menu_mapping = new Object(); - menu_mapping["_element"] = "LI"; - menu_mapping["_text"] = "Mapping"; - menu_mapping["_icon"] = "img/mapping.png"; - menu_mapping["_configKey"] = "mapping"; - menu_mapping["_headline"] = "XMLTV assignment and sorting of channels"; - menu_mapping["id"] = "mapping"; - menu_mapping["onclick"] = "javascript: toggleMenu(this);"; - menu_mapping["class"] = "menu-notActive phone"; - - menu_users = new Object(); - menu_users["_element"] = "LI"; - menu_users["_text"] = "Users"; - menu_users["_icon"] = "img/users.png"; - menu_users["_configKey"] = "users"; - menu_users["_headline"] = "Administration of users and permissions"; - menu_users["id"] = "users"; - menu_users["onclick"] = "javascript: toggleMenu(this);"; - menu_users["class"] = "menu-notActive"; - menu_users["_usage"] = "Authorization groups:
WEB: Users can log in to the web interface
PMS: Programs like Plex can access the channel list. Login via DVR IP: username:password@xteve.ip:port
M3U: Allows clients to download the M3U playlist.
XML: Allows clients to download the XMLTV file.
API: Allows clients to use the API interface.

!!! For PMS authentication, only the following special characters are valid: !$()=.,-:;

The individual authentication groups can be activated / deactivated in the settings menu." - - menu_settings = new Object(); - menu_settings["_element"] = "LI"; - menu_settings["_text"] = "Settings"; - menu_settings["_icon"] = "img/settings.png"; - menu_settings["_configKey"] = "settings"; - menu_settings["_headline"] = "Settings"; - menu_settings["_subMenu"] = "701,702,703,704,705,706,707,708,799,710,711,712,713,714"; - menu_settings["id"] = "settings"; - menu_settings["onclick"] = "javascript: toggleMenu(this);"; - menu_settings["class"] = "menu-notActive"; - - menu_log = new Object(); - menu_log["_element"] = "LI"; - menu_log["_text"] = "Log"; - menu_log["_icon"] = "img/log.png"; - menu_log["_headline"] = "Log"; - menu_log["_configKey"] = "log"; - menu_log["id"] = "log"; - menu_log["onclick"] = "javascript: toggleMenu(this);"; - menu_log["class"] = "menu-notActive"; - - menu_logout = new Object(); - menu_logout["_element"] = "LI"; - menu_logout["_text"] = "Logout"; - menu_logout["_icon"] = "img/logout.png"; - menu_logout["id"] = "logout"; - menu_logout["onclick"] = "javascript: logout();"; - menu_logout["class"] = "menu-notActive"; - - var menu_schedule = new Object(); - menu_schedule["_menuType"] = "inputArray"; - menu_schedule["_element"] = "LI"; - menu_schedule["_configKey"] = "update"; - menu_schedule["_text"] = "Schedule"; - menu_schedule["_icon"] = "img/schedule.png"; - menu_schedule["_headline"] = "Schedule for updating M3U, XMLTV files and creating a local backup"; - menu_schedule["_usage"] = "Usage:
0815 = 8:15 am
1930 = 7:30 pm" - menu_schedule["name"] = "update"; - menu_schedule["id"] = "update"; - menu_schedule["value"] = menu_id["name"]; - menu_schedule["placeholder"]= "time of day (24-hour clock)"; - menu_schedule["onclick"] = "javascript: toggleMenu(this);"; - menu_schedule["class"] = "menu-notActive"; - - var menu_filesUpdate = new Object(); - menu_filesUpdate["_element"] = "LI"; - menu_filesUpdate["_menuType"] = "checkbox"; - menu_filesUpdate["_configKey"] = "files.update"; - menu_filesUpdate["_label"] = "Update the provider files at system startup"; - menu_filesUpdate["_headline"] = "Update the provider files at system startup"; - menu_filesUpdate["_usage"] = "Playlists and XMLTV files are updated by xTeVe at system startup." - menu_filesUpdate["name"] = "files.update"; - menu_filesUpdate["id"] = "files.update"; - menu_filesUpdate["value"] = menu_filesUpdate["name"]; - menu_filesUpdate["onclick"] = "javascript: toggleMenu(this);"; - menu_filesUpdate["class"] = "menu-notActive"; - - var menu_tuner = new Object(); - menu_tuner["_element"] = "LI"; - menu_tuner["_menuType"] = "select"; - menu_tuner["_configKey"] = "tuner"; - menu_tuner["_label"] = "Available tuners"; - menu_tuner["_text"] = "Tuner"; - menu_tuner["_icon"] = "img/tuner.png"; - menu_tuner["_headline"] = "Number of tuners"; - menu_tuner["_usage"] = "This setting is only used by Plex and Emby.
The number of concurrent streams allowed by the IPTV provider.
After a change, xTeVe must be delete in the PMS DVR settings and set up again." - menu_tuner["name"] = "tuner"; - menu_tuner["id"] = "tuner"; - menu_tuner["value"] = menu_tuner["name"]; - menu_tuner["placeholder"] = "Number of tuners"; - menu_tuner["onclick"] = "javascript: toggleMenu(this);"; - menu_tuner["class"] = "menu-notActive"; - - var optionValues = new Array(); - for (var i = 1; i <= 100; i++) { - optionValues.push(i) - } - menu_tuner["_optionValues"] = optionValues; - - var menu_epg = new Object(); - menu_epg["_element"] = "LI"; - menu_epg["_menuType"] = "select"; - menu_epg["_configKey"] = "epgSource"; - menu_epg["_label"] = "Selection of the EPG source"; - menu_epg["_text"] = "EPG source"; - menu_epg["_headline"] = "Selection of the EPG source"; - menu_epg["_usage"] = "PMS: Use EPG data from Plex or Emby.
XEPG: Use of external EPG data (XMLTV).
Several XMLTV sources possible.
Allows editing and order channels.
M3U / XMLTV export (HTTP link for IPTV apps)." - menu_epg["name"] = "epgSource"; - menu_epg["id"] = "epgSource"; - menu_epg["value"] = menu_epg["name"]; - menu_epg["placeholder"] = "EPG source"; - menu_epg["onclick"] = "javascript: toggleMenu(this);"; - menu_epg["class"] = "menu-notActive"; - menu_epg["_optionValues"] = new Array("PMS", "XEPG"); - - var menu_xepg = new Object(); - menu_xepg["_element"] = "LI"; - menu_xepg["_menuType"] = "checkbox"; - menu_xepg["_configKey"] = "xteveAutoUpdate"; - menu_xepg["_label"] = "Automatic update of xTeVe"; - menu_xepg["_headline"] = "Automatic update of xTeVe"; - menu_xepg["_usage"] = "If a new version of xTeVe is available, it will be automatically installed." - menu_xepg["name"] = "xteveAutoUpdate"; - menu_xepg["id"] = "xteveAutoUpdate"; - menu_xepg["value"] = menu_xepg["name"]; - menu_xepg["onclick"] = "javascript: toggleMenu(this);"; - menu_xepg["class"] = "menu-notActive"; - - var menu_autoBackupPath = new Object(); - menu_autoBackupPath["_element"] = "LI"; - menu_autoBackupPath["_menuType"] = "singleInput"; - menu_autoBackupPath["_configKey"] = "backup.path"; - menu_autoBackupPath["_label"] = "Location for automatic backups"; - menu_autoBackupPath["_headline"] = "Location for automatic backups"; - menu_autoBackupPath["_usage"] = "Before any update of the provider data by the schedule, xTeVe creates a backup. The path for the automatic backups can be changed. xTeVe requires write permission for this folder." - menu_autoBackupPath["name"] = "backup.path"; - menu_autoBackupPath["id"] = "backup.path"; - menu_autoBackupPath["value"] = menu_autoBackupPath["name"]; - menu_autoBackupPath["onclick"] = "javascript: toggleMenu(this);"; - menu_autoBackupPath["class"] = "menu-notActive"; - - var menu_autoBackupKeep = new Object(); - menu_autoBackupKeep["_element"] = "LI"; - menu_autoBackupKeep["_menuType"] = "select"; - menu_autoBackupKeep["_configKey"] = "backup.keep"; - menu_autoBackupKeep["_text"] = "Keep"; - menu_autoBackupKeep["_label"] = "Number of backups to keep"; - menu_autoBackupKeep["_headline"] = "Number of backups to keep"; - menu_autoBackupKeep["_usage"] = "" - menu_autoBackupKeep["name"] = "backup.keep"; - menu_autoBackupKeep["id"] = "backup.keep"; - menu_autoBackupKeep["value"] = menu_autoBackupKeep["name"]; - menu_autoBackupKeep["onclick"] = "javascript: toggleMenu(this);"; - menu_autoBackupKeep["class"] = "menu-notActive"; - - var optionValues = new Array(5, 10, 20, 30, 40, 50); - menu_autoBackupKeep["_optionValues"] = optionValues; - - - var menu_buffer = new Object(); - menu_buffer["_element"] = "LI"; - menu_buffer["_menuType"] = "checkbox"; - menu_buffer["_configKey"] = "buffer"; - menu_buffer["_label"] = "Stream buffering [Experimental]"; - menu_buffer["_headline"] = "Stream buffering [Experimental]"; - menu_buffer["_usage"] = "With activated buffer, streams can be played and recorded more fluently.
The stream is passed from xTeVe to Plex / Emby" - menu_buffer["name"] = "buffer"; - menu_buffer["id"] = "buffer"; - menu_buffer["value"] = menu_buffer["name"]; - menu_buffer["onclick"] = "javascript: toggleMenu(this);"; - menu_buffer["class"] = "menu-notActive"; - - var menu_api = new Object(); - menu_api["_element"] = "LI"; - menu_api["_menuType"] = "checkbox"; - menu_api["_configKey"] = "api"; - menu_api["_label"] = "API interface"; - menu_api["_headline"] = "API interface"; - menu_api["_usage"] = 'Via API interface it is possible to send commands to xTeVe. API documentation is available here ' - //menu_api["_usage"] = 'Via API interface it is possible to send commands to xTeVe. API documentation is available here ' - menu_api["name"] = "api"; - menu_api["id"] = "api"; - menu_api["value"] = menu_api["name"]; - menu_api["onclick"] = "javascript: toggleMenu(this);"; - menu_api["class"] = "menu-notActive"; - - var menu_authenticationWeb = new Object(); - menu_authenticationWeb["_element"] = "LI"; - menu_authenticationWeb["_menuType"] = "checkbox"; - menu_authenticationWeb["_configKey"] = "authentication.web"; - menu_authenticationWeb["_label"] = "User authentication"; - menu_authenticationWeb["_headline"] = "User authentication"; - menu_authenticationWeb["_usage"] = "Access to xTeVe requires authentication." - menu_authenticationWeb["name"] = "authentication.web"; - menu_authenticationWeb["id"] = "authentication.web"; - menu_authenticationWeb["value"] = menu_authenticationWeb["name"]; - menu_authenticationWeb["onclick"] = "javascript: toggleMenu(this);"; - menu_authenticationWeb["class"] = "menu-notActive"; - - var menu_authenticationPms = new Object(); - menu_authenticationPms["_element"] = "LI"; - menu_authenticationPms["_menuType"] = "checkbox"; - menu_authenticationPms["_configKey"] = "authentication.pms"; - menu_authenticationPms["_label"] = "Plex authentication."; - menu_authenticationPms["_headline"] = "Plex authentication."; - menu_authenticationPms["_usage"] = "Plex requests are only possible with authentication.
Warning!!! After activating this function xTeVe must be delete in the PMS DVR settings and set up again." - menu_authenticationPms["name"] = "authentication.pms"; - menu_authenticationPms["id"] = "authentication.pms"; - menu_authenticationPms["value"] = menu_authenticationPms["name"]; - menu_authenticationPms["onclick"] = "javascript: toggleMenu(this);"; - menu_authenticationPms["class"] = "menu-notActive"; - - var menu_authenticationM3u = new Object(); - menu_authenticationM3u["_element"] = "LI"; - menu_authenticationM3u["_menuType"] = "checkbox"; - menu_authenticationM3u["_configKey"] = "authentication.m3u"; - menu_authenticationM3u["_label"] = "M3U authentication."; - menu_authenticationM3u["_headline"] = "M3U authentication."; - menu_authenticationM3u["_usage"] = "Downloading the M3U file via an HTTP request is only possible with authentication." - menu_authenticationM3u["name"] = "authentication.m3u"; - menu_authenticationM3u["id"] = "authentication.m3u"; - menu_authenticationM3u["value"] = menu_authenticationM3u["name"]; - menu_authenticationM3u["onclick"] = "javascript: toggleMenu(this);"; - menu_authenticationM3u["class"] = "menu-notActive"; - - - var menu_authenticationXml = new Object(); - menu_authenticationXml["_element"] = "LI"; - menu_authenticationXml["_menuType"] = "checkbox"; - menu_authenticationXml["_configKey"] = "authentication.xml"; - menu_authenticationXml["_label"] = "XEPG authentication"; - menu_authenticationXml["_headline"] = "XEPG authentication"; - menu_authenticationXml["_usage"] = "Downloading the XEPG (XMLTV) file via an HTTP request is only possible with authentication." - menu_authenticationXml["name"] = "authentication.xml"; - menu_authenticationXml["id"] = "authentication.xml"; - menu_authenticationXml["value"] = menu_authenticationXml["name"]; - menu_authenticationXml["onclick"] = "javascript: toggleMenu(this);"; - menu_authenticationXml["class"] = "menu-notActive"; - - var menu_authenticationApi = new Object(); - menu_authenticationApi["_element"] = "LI"; - menu_authenticationApi["_menuType"] = "checkbox"; - menu_authenticationApi["_configKey"] = "authentication.api"; - menu_authenticationApi["_label"] = "API authentication"; - menu_authenticationApi["_headline"] = "API authentication"; - menu_authenticationApi["_usage"] = "Access to the API interface is only possible with authentication." - menu_authenticationApi["name"] = "authentication.api"; - menu_authenticationApi["id"] = "authentication.api"; - menu_authenticationApi["value"] = menu_authenticationApi["name"]; - menu_authenticationApi["onclick"] = "javascript: toggleMenu(this);"; - menu_authenticationApi["class"] = "menu-notActive"; - - - // Main menu - menu[10] = menu_m3u; - - switch(config["epgSource"]) { - case "PMS": - menu[20] = menu_id; - break; - - case "XMLTV": - menu[40] = menu_xmltv; - break; - - case "XEPG": - menu[40] = menu_xmltv; - menu[50] = menu_mapping; - break; - } - - menu[30] = menu_filter; - - if (config["authentication.web"] == true) { - menu[60] = menu_users; - } - - menu[70] = menu_settings; - menu[80] = menu_log; - if (config["authentication.web"] == true) { - menu[100] = menu_logout; - } - - - // Sub-Menu - - subMenu[701] = menu_schedule; - subMenu[702] = menu_filesUpdate; - subMenu[703] = menu_tuner; - subMenu[704] = menu_epg; - subMenu[705] = menu_xepg; - subMenu[706] = menu_autoBackupPath; - subMenu[707] = menu_autoBackupKeep; - subMenu[708] = menu_buffer; - - subMenu[710] = menu_authenticationWeb; - - if (config["authentication.web"] == true) { - subMenu[711] = menu_authenticationPms; - subMenu[712] = menu_authenticationM3u; - subMenu[713] = menu_authenticationXml; - subMenu[714] = menu_authenticationApi; - } - - subMenu[799] = menu_api; - - - - return -} - -function createMenu() { - - showElement("popup", false); - - //console.log(config); - setMenuItem(); - var menuItems = getObjKeys(menu) - var nav = document.getElementsByTagName("NAV")[0]; - nav.innerHTML = ""; - var newItem = new Object(); - - for (var i = 0; i < menuItems.length; i++) { - - - var newItem = menu[menuItems[i]]; - newItem["id"] = menuItems[i]; - - - switch(newItem.hasOwnProperty("_icon")) { - case true: - var itemText = newItem["_text"]; - delete newItem["_text"] - nav.appendChild(createElement(newItem)); - newItem["_text"] = itemText; - var newIcon = new Object(); - newIcon["_element"] = "IMG"; - newIcon["src"] = newItem["_icon"]; - - var currentElement = document.getElementById(menuItems[i]); - currentElement.appendChild(createElement(newIcon)); - - - var text = new Object(); - text["_element"] = "P" - text["_text"] = itemText; - text["class"] = "nav-text" - currentElement.appendChild(createElement(text)); - break; - - default: - nav.appendChild(createElement(newIcon)); - break; - } - - } - if (activeMenu != undefined) { - //console.log(activeMenu); - toggleMenu(activeMenu); - } - - return -} - -function toggleMenu(elm) { - //showStreams(false); - clearInterval(logInterval) - activeMenu = elm; - var item = menu[elm.id] - var div = document.getElementById("settings"); - div.innerHTML = ""; - - // Set Headline - var headline = new Object(); - headline["_element"] = "H4"; - headline["_text"] = item["_headline"]; - div.appendChild(createElement(headline)); - - // Sub-Menu - if (item.hasOwnProperty("_subMenu") == true) { - openSubMenu(item); - return - } - - // Mapping, Users, Log, Files - switch(item["_configKey"]) { - case "mapping": openMappingEditor(item); return; break; - case "users": openUsers(item); return; break; - case "log": showLog(item); return; break; - case "files.m3u": openFiles(item, "m3u"); return; break; - case "files.xmltv": openFiles(item, "xmltv"); return; break; - - case "filter": showStreams(true); break; - } - - - - var newHR = new Object(); - newHR["_element"] = "HR" - div.appendChild(createElement(newHR)); - - var newEntry = new Object(); - newEntry["_element"] = "INPUT"; - newEntry["type"] = "button"; - //newEntry["class"] = "save"; - newEntry["value"] = "Save"; - newEntry["onclick"] = "saveData2('settings')" - div.appendChild(createElement(newEntry)); - - - var newWrapper = new Object(); - newWrapper["_element"] = "DIV"; - newWrapper["id"] = "box-wrapper"; - div.appendChild(createElement(newWrapper)); - - div = div.lastChild; - - div.appendChild(createMenuItem(item)) - - // usage Info - switch(menu[activeMenu.id].hasOwnProperty("_usage")) { - case true: - var usageItem = new Object(); - usageItem["_element"] = "PRE" - usageItem["_text"] = menu[activeMenu.id]["_usage"]; - div.appendChild(createElement(usageItem)); - } - - calculateWrapperHeight(); - -} - -function createMenuItem(item) { - var element = document.createElement("DIV"); - switch(item["_menuType"]) { - case "inputArray": - if (config.hasOwnProperty(item["_configKey"]) == true) { - var value = config[item["_configKey"]]; - } else { - var value = new Array(); - } - - for (var i = 0; i < value.length; i++) { - var newEntry = new Object(); - newEntry = item - delete newEntry["onclick"]; - newEntry["_element"] = "INPUT"; - newEntry["value"] = value[i]; - newEntry["type"] = "search"; - newEntry["data-menutype"] = item["_menuType"]; - newEntry["data-menukey"] = item["_configKey"]; - element.appendChild(createElement(newEntry)); - - } - // New entry for array - var newEntry = new Object(); - newEntry["_element"] = "INPUT"; - newEntry["type"] = "search"; - newEntry["name"] = item["name"]; - newEntry["placeholder"] = item["placeholder"]; - newEntry["value"] = ""; - newEntry["data-menutype"] = item["_menuType"]; - newEntry["data-menukey"] = item["_configKey"]; - element.appendChild(createElement(newEntry)); - break; - - case "singleInput": - var value = config[item["_configKey"]]; - if (value == undefined) { - value = ""; - } - var newEntry = new Object(); - newEntry = item; - delete newEntry["onclick"]; - newEntry["_element"] = "INPUT"; - newEntry["value"] = value; - newEntry["type"] = "search"; - newEntry["data-menutype"] = item["_menuType"]; - newEntry["data-menukey"] = item["_configKey"]; - element.appendChild(createElement(newEntry)); - break; - - case "checkbox": - var value = config[item["_configKey"]]; - if (value == undefined) { - value = false; - } - var newEntry = new Object(); - newEntry = item; - delete newEntry["onclick"]; - newEntry["_element"] = "INPUT"; - newEntry["value"] = value; - newEntry["type"] = "checkbox"; - newEntry["data-menutype"] = item["_menuType"]; - newEntry["data-menukey"] = item["_configKey"]; - element.appendChild(createElement(newEntry)); - element.getElementsByTagName("INPUT")[0].checked = value; - break; - - case "select": - var value = config[item["_configKey"]]; - var newEntry = new Object(); - newEntry = item; - delete newEntry["onclick"] - newEntry["_element"] = "SELECT"; - element.appendChild(createElement(newEntry)); - var selectElement = element.getElementsByTagName("SELECT")[0]; - var values = item["_optionValues"]; - for (var i = 0; i < values.length; i++) { - var newEntry = new Object; - newEntry["_element"] = "OPTION"; - newEntry["_text"] = item["_text"] + ": " + values[i]; - newEntry["value"] = values[i]; - selectElement.appendChild(createElement(newEntry)); - } - selectElement.value = value; - break; - - } - return element; -} - -function openSubMenu(item) { - var entrys = item["_subMenu"].split(","); - var div = document.getElementById("settings"); - - var newHR = new Object(); - newHR["_element"] = "HR" - div.appendChild(createElement(newHR)); - - var newEntry = new Object(); - newEntry["_element"] = "INPUT"; - newEntry["type"] = "button"; - //newEntry["class"] = "save"; - newEntry["value"] = "Save"; - newEntry["onclick"] = "saveData2('settings')" - div.appendChild(createElement(newEntry)); - - if (item["_configKey"] == "settings") { - var newEntry = new Object(); - newEntry["_element"] = "INPUT"; - newEntry["type"] = "button"; - //newEntry["class"] = "save"; - newEntry["value"] = "Backup"; - newEntry["onclick"] = "xteveBackup()" - div.appendChild(createElement(newEntry)); - } - - if (item["_configKey"] == "settings") { - var newEntry = new Object(); - newEntry["_element"] = "INPUT"; - newEntry["type"] = "button"; - //newEntry["class"] = "save"; - newEntry["value"] = "Restore"; - newEntry["onclick"] = "xteveRestore(this)" - div.appendChild(createElement(newEntry)); - } - - - var newWrapper = new Object(); - newWrapper["_element"] = "DIV"; - newWrapper["id"] = "box-wrapper"; - div.appendChild(createElement(newWrapper)); - - div = div.lastChild; - - - for (var i = 0; i < entrys.length; i++) { - var item = subMenu[entrys[i]]; - if (item == undefined) { - break; - } - - var container = new Object(); - container["_element"] = "DIV"; - div.appendChild(createElement(container)); - - var divContainer = div.lastChild; - - var headline = new Object(); - headline["_element"] = "H5"; - headline["_text"] = item["_headline"]; - divContainer.appendChild(createElement(headline)); - - divContainer.appendChild(createMenuItem(item)) - - switch(item.hasOwnProperty("_usage")) { - case true: - var usageItem = new Object(); - usageItem["_element"] = "PRE" - usageItem["_text"] = item["_usage"]; - divContainer.appendChild(createElement(usageItem)); - } - - var hr = new Object(); - hr["_element"] = "HR"; - divContainer.appendChild(createElement(hr)); - - } - - calculateWrapperHeight(); - return -} - -function saveData2(elm) { - var div = document.getElementById(elm); - var inputs = div.getElementsByTagName("INPUT"); - var selects = div.getElementsByTagName("SELECT"); - var value, configKey; - var data = new Object(); - var valueArr = new Array(); - var newData = false; - - for (var i = 0; i < inputs.length; i++) { - if (inputs[i].type != "button") { - var menuType = inputs[i].getAttribute("data-menutype"); - - //console.log(menuType); - switch(menuType) { - case "singleInput": - value = inputs[i].value; - if (value == "" || value == undefined) { - data = new Object(); - data["delete"] = inputs[i].name - newData = true; - } else { - newData = true; - data[inputs[i].name] = value; - console.log(data); - } - break; - case "inputArray": - value = inputs[i].value; - if (value != "" && value != undefined) { - newData = true; - valueArr.push(value) - data[inputs[i].name] = valueArr; - configKey = inputs[i].name; - } - - break; - - case "checkbox": - value = inputs[i].checked - data[inputs[i].name] = value; - } - - } - - } - - - // Delete config key - if (valueArr.length == 0 && newData == false) { - newData = true; - data = new Object(); - data["delete"] = configKey; - } - - - for (var i = 0; i < selects.length; i++) { - var value = selects[i].options[selects[i].selectedIndex].value; - switch(isNaN(value)) { - case false: value = parseInt(value); break; - } - - data[selects[i].name] = value; - newData = true; - } - - //console.log(data, newData); - - if (newData == true) { - data["cmd"] = "saveConfig"; - if (!data.hasOwnProperty('filter')) { - data["filter"] = config["filter"] - } - var settings = new Object(); - settings["cmd"] = data["cmd"]; - settings["settings"] = data; - console.log(settings); - xTeVe(settings); - } -} diff --git a/html/js/users.js b/html/js/users.js deleted file mode 100644 index 8cf9414..0000000 --- a/html/js/users.js +++ /dev/null @@ -1,341 +0,0 @@ -function openUsers(elm) { - colomnSort = 0; - - var newDiv = document.getElementById("settings"); - - var newEntry = new Object(); - newEntry["_element"] = "HR"; - newDiv.appendChild(createElement(newEntry)); - - var newEntry = new Object(); - newEntry["_element"] = "INPUT"; - newEntry["type"] = "button"; - newEntry["class"] = "button"; - newEntry["value"] = "New"; - newEntry["onclick"] = "userDetail(0)"; - newDiv.appendChild(createElement(newEntry)); - - var div = document.getElementById("settings"); - - // Build table - var newTable = new Object(); - newTable["_element"] = "TABLE"; - newTable["id"] = "id_mapping"; - newTable["class"] = "table-mapping"; - div.appendChild(createElement(newTable)); - - setTimeout(function(){ - createUsersTable(); - }, 10); -} - -function createUsersTable() { - var table = document.getElementById("id_mapping"); - table.innerHTML = ""; - var newTR = new Object(); - newTR["_element"] = "TR"; - newTR["class"] = "table-mapping-header"; - table.appendChild(createElement(newTR)); - - var tr = table.lastChild; - var trHeadlines = new Array("Username", "Password", "WEB", "PMS", "M3U", "XML", "API") - - for (var i = 0; i < trHeadlines.length; i++) { - var newTD = new Object(); - newTD["_element"] = "TD"; - newTD["_text"] = trHeadlines[i]; - tr.appendChild(createElement(newTD)); - } - - - // Sort users - var userIds = getObjKeys(users); - - var userObj = new Object(); - - for (var i = 0; i < userIds.length; i++) { - var username = users[userIds[i]]["data"]["username"]; - userObj[username] = userIds[i]; - } - - var allUsers = getObjKeys(userObj); - allUsers.sort(); - // -- - - for (var i = 0; i < allUsers.length; i++) { - var table = document.getElementById("id_mapping"); - var userID = userObj[allUsers[i]]; - var username = allUsers[i]; - var item = users[userID]["data"]; - - // Create TR - var newTR = new Object(); - newTR["_element"] = "TR"; - newTR["class"] = ""; - newTR["id"] = userID; - newTR["onclick"] = 'javascript: userDetail("' + userID + '");'; - table.appendChild(createElement(newTR)); - - var tr = table.lastChild; - - // Create username TD - var newTD = new Object(); - newTD["_element"] = "P"; - newTD["_text"] = username; - createNewTD(newTD, tr); - - // Create password TD - var newTD = new Object(); - newTD["_element"] = "P"; - newTD["_text"] = "....."; - createNewTD(newTD, tr); - - // Create web access - var newTD = new Object(); - newTD["_element"] = "P"; - switch(item["authentication.web"]){ - case true: newTD["_text"] = "✓"; break; - default: newTD["_text"] = "-"; break; - } - createNewTD(newTD, tr); - - // Create PMS access - var newTD = new Object(); - newTD["_element"] = "P"; - switch(item["authentication.pms"]){ - case true: newTD["_text"] = "✓"; break; - default: newTD["_text"] = "-"; break; - } - createNewTD(newTD, tr); - - // Create M3U access - var newTD = new Object(); - newTD["_element"] = "P"; - switch(item["authentication.m3u"]){ - case true: newTD["_text"] = "✓"; break; - default: newTD["_text"] = "-"; break; - } - createNewTD(newTD, tr); - - // Create XMLTV access - var newTD = new Object(); - newTD["_element"] = "P"; - switch(item["authentication.xml"]){ - case true: newTD["_text"] = "✓"; break; - default: newTD["_text"] = "-"; break; - } - createNewTD(newTD, tr); - - // Create API access - var newTD = new Object(); - newTD["_element"] = "P"; - - switch(item["authentication.api"]){ - case true: newTD["_text"] = "✓"; break; - default: newTD["_text"] = "-"; break; - } - createNewTD(newTD, tr); - - } - - // usage Info - var div = document.getElementById("settings"); - switch(menu[activeMenu.id].hasOwnProperty("_usage")) { - case true: - var usageItem = new Object(); - usageItem["_element"] = "PRE" - usageItem["_text"] = menu[activeMenu.id]["_usage"]; - - var newHR = new Object(); - newHR["_element"] = "HR" - div.appendChild(createElement(newHR)); - div.appendChild(createElement(usageItem)); - } - - sortTable(0); -} - -function userDetail(userID) { - showPopUpElement('user-detail'); - setTimeout(function(){ - showElement("popup", true); - }, 10); - var defaultUser; - - document.getElementById("saveUserDetail").setAttribute("onclick", 'javascript: saveUserDetail("' + userID + '", false)'); - document.getElementById("deleteUserDetail").setAttribute("onclick", 'javascript: saveUserDetail("' + userID + '", true)'); - - var data = new Object(); - - switch(userID) { - case 0: // New User - data["username"] = ""; - data["authentication.web"] = false; - data["authentication.pms"] = true; - data["authentication.xml"] = true; - data["authentication.m3u"] = false; - data["authentication.api"] = false; - data["defaultUser"] = false; - setTimeout(function(){ - showElement("deleteUserDetail", false) - }, 1); - - break; - - default: - data = users[userID]["data"]; - showElement("deleteUserDetail", true) - document.getElementById("deleteUserDetail").className = "delete"; - - break - } - - - var username = data["username"]; - data["password"] = ""; - data["confirm"] = ""; - - var keys = getObjKeys(data); - defaultUser = data["defaultUser"]; - if (data.hasOwnProperty("defaultUser")) { - defaultUser = JSON.parse(data["defaultUser"]); - } - - for (var i = 0; i < keys.length; i++) { - - if(document.getElementById(keys[i])){ - var td = document.getElementById(keys[i]) - } else { - var td = undefined; - } - - var newItem = new Object(); - - newItem["_element"] = "INPUT"; - - newItem["value"] = data[keys[i]]; - newItem["name"] = keys[i]; - - - - - - switch(keys[i].indexOf("authentication")) { - case -1: - if (keys[i] == "password" || keys[i] == "confirm") { - newItem["type"] = "password"; - } else { - newItem["type"] = "text"; - } - break; - - default: - newItem["type"] = "checkbox"; - - if (keys[i] == "authentication.web" && defaultUser == true) { - newItem["onclick"] = "return false"; - } - - if (data[keys[i]] == true) { - newItem["checked"] = data[keys[i]]; - } - - break; - } - - switch(keys[i]) { - case "defaultUser": - //if (data[keys[i]] == true) { - newItem["type"] = "hidden"; - //} - } - - - if (td != undefined) { - td.innerHTML = ""; - var element = createNewElement(newItem) - //console.log(element); - td.appendChild(element); - } - - - } - - - if (defaultUser == true) { - showElement("deleteUserDetail", false) - } else { - showElement("deleteUserDetail", true) - document.getElementById("deleteUserDetail").className = "delete"; - } - -} - -function saveUserDetail(userID, deleteUser) { - - var inputs = document.getElementById("user-detail-table").getElementsByTagName("INPUT"); - - var newUserData = new Object(); - for (var i = 0; i < inputs.length; i++) { - switch(inputs[i].type) { - case "checkbox": newUserData[inputs[i].name] = inputs[i].checked; break; - default: newUserData[inputs[i].name] = inputs[i].value; break; - } - - if (inputs["username"].value.length == 0) { - inputs["username"].style.border = "solid 1px red"; - return; - } - - switch(userID) { - case "0": - if (inputs["password"].value.length == 0) { - console.log(inputs["password"].value.length); - inputs["password"].style.border = "solid 1px red"; - return - } - break; - } - - if (inputs["password"].value.length > 0) { - if (inputs["password"].value != inputs["confirm"].value) { - inputs["password"].style.border = "solid 1px red"; - inputs["confirm"].style.border = "solid 1px red"; - return; - } - } - - } - - var data = new Object(); - - switch(userID) { - case "0": - //data = newUserData - data["userData"] = newUserData - data["cmd"] = "saveNewUser"; break; - - default: - var thisUser = new Object(); - - if (deleteUser == true) { - if (confirm('Delete the selected user?')) { - data["deleteUser"] = true; - } else { - showElement("popup", false); - return - } - } - - thisUser[userID] = newUserData; - - data["userData"] = thisUser; - data["cmd"] = "saveUserData"; break; - } - - xTeVe(data); - //createUsersTable() - showElement("popup", false); -} - - diff --git a/src/webUI.go b/src/webUI.go index c161b0b..0a3dac0 100644 --- a/src/webUI.go +++ b/src/webUI.go @@ -4,47 +4,38 @@ var webUI = make(map[string]interface{}) func loadHTMLMap() { - webUI["html/js/data.js"] = "ZnVuY3Rpb24gc2hvd0NvbmZpZyhvYmopIHsNCiAgY29uZmlnID0gb2JqOw0KICAvL3NldE1lbnVJdGVtKCk7DQogIGNyZWF0ZU1lbnUoKTsNCiAgLy9kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicGFnZSIpLmNsYXNzTmFtZSA9ICIiOw0KfQ0KDQpzaG93TXlTdHJlYW1zDQoNCmZ1bmN0aW9uIHNob3dNeVN0cmVhbXMoYWxsU3RyZWFtc09iaikgew0KDQogIHZhciBzdHJlYW1UeXBlS2V5cyA9IGdldE9iaktleXMoYWxsU3RyZWFtc09iaikNCg0KICBmb3IgKHZhciBzID0gMDsgcyA8IHN0cmVhbVR5cGVLZXlzLmxlbmd0aDsgcysrKSB7DQogICAgdmFyIHN0cmVhbVR5cGUgPSBzdHJlYW1UeXBlS2V5c1tzXTsNCiAgICB2YXIgb2JqID0gbmV3IE9iamVjdCgpOw0KICAgIG9iaiA9IGFsbFN0cmVhbXNPYmpbc3RyZWFtVHlwZV07DQogICAgc3dpdGNoKHN0cmVhbVR5cGUpIHsNCiAgICAgIGNhc2UgImFjdGl2ZVN0cmVhbXMiOiBhY3RpdmVTdHJlYW1zICAgICA9IG9iajsgYnJlYWs7DQogICAgfQ0KDQogICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoc3RyZWFtVHlwZSkuaW5uZXJIVE1MID0gIiI7DQoNCiAgICB2YXIgc3RyZWFtc09iaiAgICA9IG5ldyBPYmplY3QoKTsNCiAgICB2YXIgc3RyZWFtc05hbWVzICA9IG5ldyBBcnJheSgpOw0KICAgIA0KICAgIHZhciBrZXlzID0gZ2V0T2JqS2V5cyhvYmopDQogICAgDQogICAgLy8gQ3JlYXRlIE9iamVjdCAoc3RyZWFtc09iaikgZm9yIHRoZSBzdHJlYW1zIGFuZCBzb3J0IGJ5IG5hbWUgKHN0cmVhbXNOYW1lcykNCiAgICBmb3IgKHZhciBpID0gMDsgaSA8IGtleXMubGVuZ3RoOyBpKyspIHsNCiAgICAgIHZhciBuYW1lICAgID0gb2JqW2tleXNbaV1dWyJuYW1lIl07DQogICAgICB2YXIgdG1wID0gbmV3IE9iamVjdCgpOw0KICAgICAgdmFyIHN0cmVhbUtleSA9IGdldE9iaktleXMob2JqW2tleXNbaV1dKTsNCg0KICAgICAgZm9yICh2YXIgaiA9IDA7IGogPCBzdHJlYW1LZXkubGVuZ3RoOyBqKyspIHsNCiAgICAgICAgdG1wW3N0cmVhbUtleVtqXV0gPSBvYmpba2V5c1tpXV1bc3RyZWFtS2V5W2pdXTsgICAgICANCiAgICAgIH0NCg0KICAgICAgc3RyZWFtc09ialtuYW1lXSA9IHRtcDsNCiAgICAgIHN0cmVhbXNOYW1lcy5wdXNoKG5hbWUpDQogICAgfQ0KDQogICAgc3RyZWFtc05hbWVzLnNvcnQoKTsNCiAgICANCiAgICAvLyBDcmVhdGUgVGFibGUgZm9yIGFjdGl2ZVN0cmVhbXMNCiAgICB2YXIgdGFibGUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChzdHJlYW1UeXBlKTsNCg0KICAgIGZvciAodmFyIGkgPSAwOyBpIDwgc3RyZWFtc05hbWVzLmxlbmd0aDsgaSsrKSB7DQogICAgICB2YXIgbmV3RW50cnkgPSBuZXcgT2JqZWN0KCk7DQogICAgICBuZXdFbnRyeVsiX2VsZW1lbnQiXSA9ICJUUiI7DQogICAgICB0YWJsZS5hcHBlbmRDaGlsZChjcmVhdGVFbGVtZW50KG5ld0VudHJ5KSk7DQogICAgICB2YXIgbGluZSA9IHRhYmxlLmxhc3RDaGlsZDsNCg0KICAgICAgdmFyIHRtcCA9IHN0cmVhbXNPYmpbc3RyZWFtc05hbWVzW2ldXQ0KICAgICAgdmFyIGtleXMgPSBnZXRPYmpLZXlzKHRtcCkNCg0KICAgICAgdmFyIG5ld0tleSA9IG5ldyBPYmplY3QoKQ0KICAgICAgbmV3S2V5WyJfZWxlbWVudCJdICA9ICJURCI7DQogICAgICAvL25ld0tleVsiX3RleHQiXSAgICAgPSBzdHJlYW1zTmFtZXNbaV07DQogICAgICBzd2l0Y2goc3RyZWFtVHlwZSkgew0KICAgICAgICBjYXNlICJhY3RpdmVTdHJlYW1zIjogbmV3S2V5WyJfdGV4dCJdICAgICA9ICJDaGFubmVsICgrKToiOyBicmVhazsNCiAgICAgICAgY2FzZSAiaW5hY3RpdmVTdHJlYW1zIjogbmV3S2V5WyJfdGV4dCJdICAgPSAiQ2hhbm5lbCAoLSk6IjsgYnJlYWs7DQogICAgICB9DQogICAgICANCiAgICAgIG5ld0tleVsiY2xhc3MiXSAgICAgPSAidGRLZXkiOw0KICAgICAgY29uc29sZS5sb2coKTsNCg0KDQogICAgICB2YXIgbmV3VmFsID0gbmV3IE9iamVjdCgpDQogICAgICBuZXdWYWxbIl9lbGVtZW50Il0gID0gIlREIjsNCiAgICAgIG5ld1ZhbFsiX3RleHQiXSAgICAgPSBzdHJlYW1zTmFtZXNbaV07DQogICAgICBuZXdWYWxbImNsYXNzIl0gICAgID0gInRkVmFsIjsNCiAgICAgIC8vbmV3VmFsWyJfdGV4dCJdICAgICA9IHZhbHVlOw0KICAgICAgDQogICAgICBsaW5lLmFwcGVuZENoaWxkKGNyZWF0ZUVsZW1lbnQobmV3S2V5KSk7DQogICAgICBsaW5lLmFwcGVuZENoaWxkKGNyZWF0ZUVsZW1lbnQobmV3VmFsKSk7DQogICAgICANCiAgICB9DQoNCiAgfQ0KDQogIHJldHVybg0KfQ0KDQpmdW5jdGlvbiBzaG93QWN0aXZlU3RyZWFtcyhvYmopIHsNCiAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImFjdGl2ZVN0cmVhbXMiKS5pbm5lckhUTUwgPSAiIjsNCiAgYWN0aXZlU3RyZWFtcyAgICAgPSBvYmo7DQogIHZhciBzdHJlYW1zT2JqICAgID0gbmV3IE9iamVjdCgpOw0KICB2YXIgc3RyZWFtc05hbWVzICA9IG5ldyBBcnJheSgpOw0KICANCiAgdmFyIGtleXMgPSBnZXRPYmpLZXlzKG9iaikNCiAgDQogIC8vIENyZWF0ZSBPYmplY3QgKHN0cmVhbXNPYmopIGZvciB0aGUgc3RyZWFtcyBhbmQgc29ydCBieSBuYW1lIChzdHJlYW1zTmFtZXMpDQogIGZvciAodmFyIGkgPSAwOyBpIDwga2V5cy5sZW5ndGg7IGkrKykgew0KICAgIHZhciBuYW1lICAgID0gb2JqW2tleXNbaV1dWyJuYW1lIl07DQogICAgdmFyIHRtcCA9IG5ldyBPYmplY3QoKTsNCiAgICB2YXIgc3RyZWFtS2V5ID0gZ2V0T2JqS2V5cyhvYmpba2V5c1tpXV0pOw0KDQogICAgZm9yICh2YXIgaiA9IDA7IGogPCBzdHJlYW1LZXkubGVuZ3RoOyBqKyspIHsNCiAgICAgIHRtcFtzdHJlYW1LZXlbal1dID0gb2JqW2tleXNbaV1dW3N0cmVhbUtleVtqXV07ICAgICAgDQogICAgfQ0KDQogICAgc3RyZWFtc09ialtuYW1lXSA9IHRtcDsNCiAgICBzdHJlYW1zTmFtZXMucHVzaChuYW1lKQ0KICB9DQoNCiAgc3RyZWFtc05hbWVzLnNvcnQoKTsNCiAgDQogIC8vIENyZWF0ZSBUYWJsZSBmb3IgYWN0aXZlU3RyZWFtcw0KICB2YXIgdGFibGUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYWN0aXZlU3RyZWFtcyIpOw0KDQogIGZvciAodmFyIGkgPSAwOyBpIDwgc3RyZWFtc05hbWVzLmxlbmd0aDsgaSsrKSB7DQogICAgdmFyIG5ld0VudHJ5ID0gbmV3IE9iamVjdCgpOw0KICAgIG5ld0VudHJ5WyJfZWxlbWVudCJdID0gIlRSIjsNCiAgICB0YWJsZS5hcHBlbmRDaGlsZChjcmVhdGVFbGVtZW50KG5ld0VudHJ5KSk7DQogICAgdmFyIGxpbmUgPSB0YWJsZS5sYXN0Q2hpbGQ7DQoNCiAgICB2YXIgdG1wID0gc3RyZWFtc09ialtzdHJlYW1zTmFtZXNbaV1dDQogICAgdmFyIGtleXMgPSBnZXRPYmpLZXlzKHRtcCkNCg0KICAgIHZhciBuZXdLZXkgPSBuZXcgT2JqZWN0KCkNCiAgICBuZXdLZXlbIl9lbGVtZW50Il0gID0gIlREIjsNCiAgICAvL25ld0tleVsiX3RleHQiXSAgICAgPSBzdHJlYW1zTmFtZXNbaV07DQogICAgbmV3S2V5WyJfdGV4dCJdICAgICA9ICJDaGFubmVsOiI7DQogICAgbmV3S2V5WyJjbGFzcyJdICAgICA9ICJ0ZEtleSI7DQogICAgY29uc29sZS5sb2coKTsNCg0KDQogICAgdmFyIG5ld1ZhbCA9IG5ldyBPYmplY3QoKQ0KICAgIG5ld1ZhbFsiX2VsZW1lbnQiXSAgPSAiVEQiOw0KICAgIG5ld1ZhbFsiX3RleHQiXSAgICAgPSBzdHJlYW1zTmFtZXNbaV07DQogICAgbmV3VmFsWyJjbGFzcyJdICAgICA9ICJ0ZFZhbCI7DQogICAgLy9uZXdWYWxbIl90ZXh0Il0gICAgID0gdmFsdWU7DQogICAgDQogICAgbGluZS5hcHBlbmRDaGlsZChjcmVhdGVFbGVtZW50KG5ld0tleSkpOw0KICAgIGxpbmUuYXBwZW5kQ2hpbGQoY3JlYXRlRWxlbWVudChuZXdWYWwpKTsNCiAgICANCiAgfQ0KDQp9DQoNCmZ1bmN0aW9uIHBhcnNlTG9ncyhvYmopIHsNCiAgbG9nID0gb2JqDQogIHZhciBrZXlzID0gZ2V0T2JqS2V5cyhvYmopDQoNCiAgdmFyIG1zZ1R5cGU7DQogIGZvciAodmFyIGkgPSAwOyBpIDwga2V5cy5sZW5ndGg7IGkrKykgew0KICAgIHN3aXRjaChrZXlzW2ldKSB7DQogICAgICBjYXNlICJ3YXJuaW5ncyI6ICBtc2dUeXBlID0gIndhcm5pbmdNc2ciOyBicmVhazsNCiAgICAgIGNhc2UgImVycm9ycyI6ICAgIG1zZ1R5cGUgPSAiZXJyb3JNc2ciOyBicmVhazsNCiAgICB9DQoNCiAgICBzd2l0Y2gob2JqW2tleXNbaV1dKSB7DQogICAgICBjYXNlIDA6IG1zZ1R5cGUgPSAidGRWYWwiOyBicmVhazsNCiAgICAgIGRlZmF1bHQ6IGJyZWFrOw0KICAgIH0NCg0KICAgIGlmKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGtleXNbaV0pKXsNCiAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGtleXNbaV0pLmNsYXNzTmFtZSA9IG1zZ1R5cGU7DQogICAgfQ0KICAgIA0KICAgIA0KICB9DQogIHJldHVybg0KfQ0KDQoNCmZ1bmN0aW9uIGNhbmNlbERhdGEoZWxlbWVudCkgew0KICBjcmVhdGVNZW51KCk7DQp9DQoNCmZ1bmN0aW9uIHNhdmVEYXRhKGVsZW1lbnQpIHsNCiAgdmFyIGRhdGEgPSBuZXcgT2JqZWN0KCk7DQogIHZhciBkaXYgPSBlbGVtZW50LnBhcmVudE5vZGUucGFyZW50Tm9kZTsNCiAgdmFyIGlucHV0cyA9IGRpdi5nZXRFbGVtZW50c0J5VGFnTmFtZSgiSU5QVVQiKTsNCiAgDQogIHZhciBjb25maWdLZXkgPSBkaXYuZ2V0QXR0cmlidXRlKCJkYXRhLWNvbmZpZ2tleSIpOw0KICB2YXIgbWVudVR5cGUgPSBkaXYuZ2V0QXR0cmlidXRlKCJkYXRhLW1lbnV0eXBlIik7DQogIHZhciB2YWx1ZTsNCiAgdmFyIHZhbHVlQXJyID0gbmV3IEFycmF5KCk7DQogIA0KICBmb3IgKHZhciBpID0gMDsgaSA8IGlucHV0cy5sZW5ndGg7IGkrKykgew0KICAgIGlmIChpbnB1dHNbaV0udHlwZSA9PSAidGV4dCIgJiYgaW5wdXRzW2ldLnZhbHVlICE9IHVuZGVmaW5lZCAmJiBpbnB1dHNbaV0udmFsdWUgIT0gIiIgKSB7DQogICAgICBjb25zb2xlLmxvZyhpbnB1dHNbaV0udmFsdWUsIG1lbnVUeXBlKQ0KICAgICAgc3dpdGNoKG1lbnVUeXBlKSB7DQogICAgICAgIGNhc2UgImlucHV0QXJyYXkiOiB2YWx1ZUFyci5wdXNoKGlucHV0c1tpXS52YWx1ZSk7IGJyZWFrOw0KICAgICAgICBjYXNlICJzaW5nbGVJbnB1dCI6IHZhbHVlID0gaW5wdXRzW2ldLnZhbHVlOyBicmVhazsNCiAgICAgIH0NCiAgICB9DQogIH0NCg0KICBzd2l0Y2gobWVudVR5cGUpIHsNCiAgICBjYXNlICJpbnB1dEFycmF5IjogIGRhdGFbY29uZmlnS2V5XSA9IHZhbHVlQXJyOyBicmVhazsNCiAgICBjYXNlICJzaW5nbGVJbnB1dCI6ICANCiAgICAgIGlmIChpc05hTih2YWx1ZSkgPT0gZmFsc2UpIHsNCiAgICAgICAgdmFsdWUgPSBwYXJzZUludCh2YWx1ZSk7DQogICAgICAgIGRhdGFbY29uZmlnS2V5XSA9IHZhbHVlOw0KICAgICAgICBicmVhazsNCiAgICAgIH0NCg0KICAgICAgaWYgKHZhbHVlID09IHVuZGVmaW5lZCkgew0KICAgICAgICBkYXRhWyJkZWxldGUiXSA9IGNvbmZpZ0tleTsgDQogICAgICB9IGVsc2Ugew0KICAgICAgICBkYXRhW2NvbmZpZ0tleV0gPSB2YWx1ZQ0KICAgICAgfQ0KDQogICAgICBicmVhazsNCiAgfQ0KDQogIGRhdGFbImNtZCJdID0gInNhdmVDb25maWciOw0KICBjb25zb2xlLmxvZyhkYXRhKTsNCiAgeFRlVmUoZGF0YSkNCn0NCg0KZnVuY3Rpb24geFRlVmUoZGF0YSkgew0KICBpZiAod2ViU29ja2V0cyA9PSBmYWxzZSkgew0KICAgIGFsZXJ0KCJZb3VyIGJyb3dzZXIgZG9lcyBub3Qgc3VwcG9ydCBXZWJTb2NrZXRzIik7DQogICAgcmV0dXJuOw0KICB9IGVsc2Ugew0KICAgIGlmIChkYXRhWyJjbWQiXSAhPSAiZ2V0TG9nIikgew0KICAgICAgc2hvd0xvYWRpbmdTY3JlZW4odHJ1ZSkNCiAgICB9DQogIH0NCiAgZGVsZXRlIHVuZG9bImVwZ01hcHBpbmciXTsNCiAgDQogIHZhciBwcm90b2NvbFdTDQogIHN3aXRjaCh3aW5kb3cubG9jYXRpb24ucHJvdG9jb2wpIHsNCiAgICBjYXNlICJodHRwOiI6ICAgcHJvdG9jb2xXUyA9ICJ3czovLyI7IGJyZWFrOw0KICAgIGNhc2UgImh0dHBzOiI6ICBwcm90b2NvbFdTID0gIndzczovLyI7IGJyZWFrOw0KICB9DQoNCg0KICB2YXIgd3MgPSBuZXcgV2ViU29ja2V0KHByb3RvY29sV1MgKyB3aW5kb3cubG9jYXRpb24uaG9zdG5hbWUgKyAiOiIgKyB3aW5kb3cubG9jYXRpb24ucG9ydCArICIvZGF0YS8iICsgIj9Ub2tlbj0iICsgZ2V0Q29va2llKCJUb2tlbiIpKTsNCiAgd3Mub25vcGVuID0gZnVuY3Rpb24oKSB7DQogICAgY29uc29sZS5sb2coZGF0YSkNCiAgICB3cy5zZW5kKEpTT04uc3RyaW5naWZ5KGRhdGEpKTsNCiAgfQ0KDQogIHdzLm9ubWVzc2FnZSA9IGZ1bmN0aW9uIChlKSB7DQogICAgdmFyIHJlc3BvbnNlID0gSlNPTi5wYXJzZShlLmRhdGEpOw0KICAgIGNvbnNvbGUubG9nKHJlc3BvbnNlKTsNCiAgICANCiAgICBpZiAocmVzcG9uc2UuaGFzT3duUHJvcGVydHkoImNsaWVudEluZm8iKSkgew0KICAgICAgY3JlYXRlQ2xpbnRJbmZvKHJlc3BvbnNlWyJjbGllbnRJbmZvIl0pOw0KICAgIH0NCg0KICAgIGlmIChyZXNwb25zZS5oYXNPd25Qcm9wZXJ0eSgibG9nIikpIHsNCiAgICAgIGNyZWF0ZUNsaW50SW5mbyhyZXNwb25zZVsibG9nIl0pOw0KICAgIH0NCg0KICAgIGlmIChyZXNwb25zZS5oYXNPd25Qcm9wZXJ0eSgic3RhdHVzIikpIHsNCiAgICAgIGlmIChyZXNwb25zZVsic3RhdHVzIl0gPT0gZmFsc2UpIHsNCiAgICAgICAgYWxlcnQocmVzcG9uc2VbImVyciJdKQ0KICAgICAgICBpZihyZXNwb25zZS5oYXNPd25Qcm9wZXJ0eSgicmVsb2FkIikpIHsNCiAgICAgICAgICBsb2NhdGlvbi5yZWxvYWQoKTsNCiAgICAgICAgfQ0KICAgICAgICAvL2NoZWNrRXJyKHJlc3BvbnNlKQ0KICAgICAgICBjb25zb2xlLmxvZyhyZXNwb25zZSk7DQogICAgICAgIHVwZGF0ZVh0ZXZlU3RhdHVzKHJlc3BvbnNlKTsNCiAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbigpeyBzaG93TG9hZGluZ1NjcmVlbihmYWxzZSk7IH0sIDMwMCk7DQogICAgICAgIA0KICAgICAgICByZXR1cm4NCiAgICAgIH0NCg0KICAgICAgdXBkYXRlWHRldmVTdGF0dXMocmVzcG9uc2UpDQoNCiAgICAgIC8vY29uc29sZS5sb2coZGF0YVsiY21kIl0pOw0KICAgICAgc3dpdGNoKGRhdGFbImNtZCJdKSB7DQogICAgICAgIGNhc2UgInNhdmVVc2VyRGF0YSI6ICAgIGNyZWF0ZU1lbnUoKTsgYnJlYWs7DQogICAgICAgIGNhc2UgInNhdmVOZXdVc2VyIjogICAgIGNyZWF0ZU1lbnUoKTsgYnJlYWs7DQogICAgICAgIGNhc2UgInNhdmVGaWxlc1hNTFRWIjogIC8vY3JlYXRlTWVudSgpOyBicmVhazsNCiAgICAgICAgY2FzZSAic2F2ZUZpbGVzTTNVIjogICAgLy9jcmVhdGVNZW51KCk7IHJldHVybjsgYnJlYWs7DQogICAgICAgIGNhc2UgInNhdmVDb25maWciOiAgICANCiAgICAgICAgICBkYXRhID0gbmV3IE9iamVjdCgpOw0KICAgICAgICAgIGRhdGFbImNtZCJdID0gImNoZWNrVG9rZW4iOw0KICAgICAgICAgIHhUZVZlKGRhdGEpOw0KICAgICAgICAgIGJyZWFrOw0KDQogICAgICAgIGNhc2UgImVtcHR5TG9nIjogd3JpdGVMb2dJbkRpdigpOyBicmVhazsNCiAgICAgICAgY2FzZSAiZ2V0TG9nIjogIHJldHVybjsgYnJlYWs7DQogICAgICB9DQoNCg0KICAgIH0NCg0KICAgIGlmIChjb25maWdbImZpbGVzIl0gPT0gdW5kZWZpbmVkIHx8IGNvbmZpZ1siZmlsZXMiXS5sZW5ndGggPT0gMCkgew0KICAgICAgY3JlYXRlTWVudSgpOw0KICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoMTApLmNsaWNrKCkNCiAgICB9DQoNCiAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7IHNob3dMb2FkaW5nU2NyZWVuKGZhbHNlKTsgfSwgMCk7DQogIH0NCiAgDQp9DQoNCmZ1bmN0aW9uIHVwZGF0ZVh0ZXZlU3RhdHVzKHJlc3BvbnNlKSB7DQogIHZhciBrZXlzID0gZ2V0T2JqS2V5cyhyZXNwb25zZSk7DQogIC8vY29uc29sZS5sb2coa2V5cyk7DQoNCiAgZm9yICh2YXIgaSA9IDA7IGkgPCBrZXlzLmxlbmd0aDsgaSsrKSB7DQogICAgc3dpdGNoKGtleXNbaV0pIHsNCiAgICAgIGNhc2UgImFsZXJ0IjogICAgICAgICBhbGVydChyZXNwb25zZVtrZXlzW2ldXSk7IGJyZWFrOw0KICAgICAgY2FzZSAiY29uZmlnIjogICAgICAgIHNob3dDb25maWcocmVzcG9uc2Vba2V5c1tpXV0pOyBicmVhazsNCiAgICAgIGNhc2UgImxvZyI6ICAgICAgICAgICBwYXJzZUxvZ3MocmVzcG9uc2Vba2V5c1tpXV0pOyBicmVhazsNCiAgICAgIGNhc2UgIm15U3RyZWFtcyI6ICAgICBzaG93TXlTdHJlYW1zKHJlc3BvbnNlW2tleXNbaV1dKTsgYnJlYWs7DQogICAgICBjYXNlICJ4RVBHIjogICAgICAgICAgeEVQRyA9IHJlc3BvbnNlW2tleXNbaV1dOyBicmVhazsNCiAgICAgIGNhc2UgInVzZXJzIjogICAgICAgICB1c2VycyA9IHJlc3BvbnNlW2tleXNbaV1dOyBicmVhazsNCiAgICAgIGNhc2UgInRva2VuIjogICAgICAgICBkb2N1bWVudC5jb29raWUgPSAiVG9rZW49IiArIHJlc3BvbnNlW2tleXNbaV1dOyBicmVhazsNCiAgICAgIGNhc2UgInJlbG9hZCI6ICAgICAgICBsb2NhdGlvbi5yZWxvYWQoKTsgYnJlYWs7DQogICAgICBjYXNlICJvcGVuTGluayI6ICAgICAgd2luZG93LmxvY2F0aW9uID0gcmVzcG9uc2VbIm9wZW5MaW5rIl07IGJyZWFrOw0KICAgICAgLy9jYXNlICJ2ZXJzaW9uIjogdmVyc2lvbiA9IHJlc3BvbnNlW2tleXNbaV1dOyBicmVhazsNCiAgICB9DQogIH0NCn0NCg0KZnVuY3Rpb24gZ2V0VmFsdWVGcm9tUHJvdmlkZXJGaWxlKHhYbWx0dkZpbGUsIGZpbGVUeXBlLCBrZXkpIHsNCg0KICB2YXIgZmlsZUlEID0geFhtbHR2RmlsZS5zdWJzdHJpbmcoMCwgeFhtbHR2RmlsZS5sYXN0SW5kZXhPZignLicpKQ0KDQogIGlmIChjb25maWdbImZpbGVzIl1bZmlsZVR5cGVdLmhhc093blByb3BlcnR5KGZpbGVJRCkgPT0gdHJ1ZSkgew0KICAgIHZhciBkYXRhID0gY29uZmlnWyJmaWxlcyJdW2ZpbGVUeXBlXVtmaWxlSURdOw0KICAgIHJldHVybiBkYXRhW2tleV0NCiAgfQ0KDQp9DQoNCg0KDQoNCg==" + webUI["html/img/BC-QR.jpg"] = "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" + webUI["html/js/base_ts.js"] = "dmFyIFNFUlZFUiA9IG5ldyBPYmplY3QoKTsNCnZhciBCVUxLX0VESVQgPSBmYWxzZTsNCnZhciBDT0xVTU5fVE9fU09SVDsNCnZhciBTRUFSQ0hfTUFQUElORyA9IG5ldyBPYmplY3QoKTsNCnZhciBVTkRPID0gbmV3IE9iamVjdCgpOw0KdmFyIFNFUlZFUl9DT05ORUNUSU9OID0gZmFsc2U7DQp2YXIgV1NfQVZBSUxBQkxFID0gZmFsc2U7DQovLyBNZW7DvA0KdmFyIG1lbnVJdGVtcyA9IG5ldyBBcnJheSgpOw0KbWVudUl0ZW1zLnB1c2gobmV3IE1haW5NZW51SXRlbSgicGxheWxpc3QiLCAie3subWFpbk1lbnUuaXRlbS5wbGF5bGlzdH19IiwgIm0zdS5wbmciLCAie3subWFpbk1lbnUuaGVhZGxpbmUucGxheWxpc3R9fSIpKTsNCi8vbWVudUl0ZW1zLnB1c2gobmV3IE1haW5NZW51SXRlbSgicG1zSUQiLCAie3subWFpbk1lbnUuaXRlbS5wbXNJRH19IiwgIm51bWJlci5wbmciLCAie3subWFpbk1lbnUuaGVhZGxpbmUucG1zSUR9fSIpKQ0KbWVudUl0ZW1zLnB1c2gobmV3IE1haW5NZW51SXRlbSgiZmlsdGVyIiwgInt7Lm1haW5NZW51Lml0ZW0uZmlsdGVyfX0iLCAiZmlsdGVyLnBuZyIsICJ7ey5tYWluTWVudS5oZWFkbGluZS5maWx0ZXJ9fSIpKTsNCm1lbnVJdGVtcy5wdXNoKG5ldyBNYWluTWVudUl0ZW0oInhtbHR2IiwgInt7Lm1haW5NZW51Lml0ZW0ueG1sdHZ9fSIsICJ4bWx0di5wbmciLCAie3subWFpbk1lbnUuaGVhZGxpbmUueG1sdHZ9fSIpKTsNCm1lbnVJdGVtcy5wdXNoKG5ldyBNYWluTWVudUl0ZW0oIm1hcHBpbmciLCAie3subWFpbk1lbnUuaXRlbS5tYXBwaW5nfX0iLCAibWFwcGluZy5wbmciLCAie3subWFpbk1lbnUuaGVhZGxpbmUubWFwcGluZ319IikpOw0KbWVudUl0ZW1zLnB1c2gobmV3IE1haW5NZW51SXRlbSgidXNlcnMiLCAie3subWFpbk1lbnUuaXRlbS51c2Vyc319IiwgInVzZXJzLnBuZyIsICJ7ey5tYWluTWVudS5oZWFkbGluZS51c2Vyc319IikpOw0KbWVudUl0ZW1zLnB1c2gobmV3IE1haW5NZW51SXRlbSgic2V0dGluZ3MiLCAie3subWFpbk1lbnUuaXRlbS5zZXR0aW5nc319IiwgInNldHRpbmdzLnBuZyIsICJ7ey5tYWluTWVudS5oZWFkbGluZS5zZXR0aW5nc319IikpOw0KbWVudUl0ZW1zLnB1c2gobmV3IE1haW5NZW51SXRlbSgibG9nIiwgInt7Lm1haW5NZW51Lml0ZW0ubG9nfX0iLCAibG9nLnBuZyIsICJ7ey5tYWluTWVudS5oZWFkbGluZS5sb2d9fSIpKTsNCm1lbnVJdGVtcy5wdXNoKG5ldyBNYWluTWVudUl0ZW0oImxvZ291dCIsICJ7ey5tYWluTWVudS5pdGVtLmxvZ291dH19IiwgImxvZ291dC5wbmciLCAie3subWFpbk1lbnUuaGVhZGxpbmUubG9nb3V0fX0iKSk7DQovLyBLYXRlZ29yaWVuIGbDvHIgZGllIEVpbnN0ZWxsdW5nZW4NCnZhciBzZXR0aW5nc0NhdGVnb3J5ID0gbmV3IEFycmF5KCk7DQpzZXR0aW5nc0NhdGVnb3J5LnB1c2gobmV3IFNldHRpbmdzQ2F0ZWdvcnlJdGVtKCJ7ey5zZXR0aW5ncy5jYXRlZ29yeS5nZW5lcmFsfX0iLCAieHRldmVBdXRvVXBkYXRlLHR1bmVyLGVwZ1NvdXJjZSxhcGkiKSk7DQpzZXR0aW5nc0NhdGVnb3J5LnB1c2gobmV3IFNldHRpbmdzQ2F0ZWdvcnlJdGVtKCJ7ey5zZXR0aW5ncy5jYXRlZ29yeS5maWxlc319IiwgInVwZGF0ZSxmaWxlcy51cGRhdGUsdGVtcC5wYXRoLGNhY2hlLmltYWdlcyx4ZXBnLnJlcGxhY2UubWlzc2luZy5pbWFnZXMiKSk7DQpzZXR0aW5nc0NhdGVnb3J5LnB1c2gobmV3IFNldHRpbmdzQ2F0ZWdvcnlJdGVtKCJ7ey5zZXR0aW5ncy5jYXRlZ29yeS5zdHJlYW1pbmd9fSIsICJidWZmZXIsdWRweHksYnVmZmVyLnNpemUua2IsYnVmZmVyLnRpbWVvdXQsdXNlci5hZ2VudCxmZm1wZWcucGF0aCxmZm1wZWcub3B0aW9ucyx2bGMucGF0aCx2bGMub3B0aW9ucyIpKTsNCnNldHRpbmdzQ2F0ZWdvcnkucHVzaChuZXcgU2V0dGluZ3NDYXRlZ29yeUl0ZW0oInt7LnNldHRpbmdzLmNhdGVnb3J5LmJhY2t1cH19IiwgImJhY2t1cC5wYXRoLGJhY2t1cC5rZWVwIikpOw0Kc2V0dGluZ3NDYXRlZ29yeS5wdXNoKG5ldyBTZXR0aW5nc0NhdGVnb3J5SXRlbSgie3suc2V0dGluZ3MuY2F0ZWdvcnkuYXV0aGVudGljYXRpb259fSIsICJhdXRoZW50aWNhdGlvbi53ZWIsYXV0aGVudGljYXRpb24ucG1zLGF1dGhlbnRpY2F0aW9uLm0zdSxhdXRoZW50aWNhdGlvbi54bWwsYXV0aGVudGljYXRpb24uYXBpIikpOw0KZnVuY3Rpb24gc2hvd1BvcFVwRWxlbWVudChlbG0pIHsNCiAgICB2YXIgYWxsRWxlbWVudHMgPSBuZXcgQXJyYXkoInBvcHVwLWN1c3RvbSIpOw0KICAgIGZvciAodmFyIGkgPSAwOyBpIDwgYWxsRWxlbWVudHMubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgc2hvd0VsZW1lbnQoYWxsRWxlbWVudHNbaV0sIGZhbHNlKTsNCiAgICB9DQogICAgc2hvd0VsZW1lbnQoZWxtLCB0cnVlKTsNCiAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsNCiAgICAgICAgc2hvd0VsZW1lbnQoInBvcHVwIiwgdHJ1ZSk7DQogICAgfSwgMTApOw0KICAgIHJldHVybjsNCn0NCmZ1bmN0aW9uIHNob3dFbGVtZW50KGVsbUlELCB0eXBlKSB7DQogICAgdmFyIGNzc0NsYXNzOw0KICAgIHN3aXRjaCAodHlwZSkgew0KICAgICAgICBjYXNlIHRydWU6DQogICAgICAgICAgICBjc3NDbGFzcyA9ICJibG9jayI7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSBmYWxzZToNCiAgICAgICAgICAgIGNzc0NsYXNzID0gIm5vbmUiOw0KICAgICAgICAgICAgYnJlYWs7DQogICAgfQ0KICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGVsbUlEKS5jbGFzc05hbWUgPSBjc3NDbGFzczsNCn0NCmZ1bmN0aW9uIGNoYW5nZUJ1dHRvbkFjdGlvbihlbGVtZW50LCBidXR0b25JRCwgYXR0cmlidXRlKSB7DQogICAgdmFyIHZhbHVlID0gZWxlbWVudC5vcHRpb25zW2VsZW1lbnQuc2VsZWN0ZWRJbmRleF0udmFsdWU7DQogICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoYnV0dG9uSUQpLnNldEF0dHJpYnV0ZShhdHRyaWJ1dGUsIHZhbHVlKTsNCn0NCmZ1bmN0aW9uIGdldExvY2FsRGF0YShkYXRhVHlwZSwgaWQpIHsNCiAgICBsZXQgZGF0YSA9IHt9Ow0KICAgIHN3aXRjaCAoZGF0YVR5cGUpIHsNCiAgICAgICAgY2FzZSAibTN1IjoNCiAgICAgICAgICAgIGRhdGEgPSBTRVJWRVJbInNldHRpbmdzIl1bImZpbGVzIl1bZGF0YVR5cGVdW2lkXTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJoZGhyIjoNCiAgICAgICAgICAgIGRhdGEgPSBTRVJWRVJbInNldHRpbmdzIl1bImZpbGVzIl1bZGF0YVR5cGVdW2lkXTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJmaWx0ZXIiOg0KICAgICAgICBjYXNlICJjdXN0b20tZmlsdGVyIjoNCiAgICAgICAgY2FzZSAiZ3JvdXAtdGl0bGUiOg0KICAgICAgICAgICAgaWYgKGlkID09IC0xKSB7DQogICAgICAgICAgICAgICAgZGF0YVsiYWN0aXZlIl0gPSB0cnVlOw0KICAgICAgICAgICAgICAgIGRhdGFbImNhc2VTZW5zaXRpdmUiXSA9IGZhbHNlOw0KICAgICAgICAgICAgICAgIGRhdGFbImRlc2NyaXB0aW9uIl0gPSAiIjsNCiAgICAgICAgICAgICAgICBkYXRhWyJleGNsdWRlIl0gPSAiIjsNCiAgICAgICAgICAgICAgICBkYXRhWyJmaWx0ZXIiXSA9ICIiOw0KICAgICAgICAgICAgICAgIGRhdGFbImluY2x1ZGUiXSA9ICIiOw0KICAgICAgICAgICAgICAgIGRhdGFbIm5hbWUiXSA9ICIiOw0KICAgICAgICAgICAgICAgIGRhdGFbInR5cGUiXSA9ICJncm91cC10aXRsZSI7DQogICAgICAgICAgICAgICAgZGF0YVsicHJlc2VydmVNYXBwaW5nIl0gPSB0cnVlOw0KICAgICAgICAgICAgICAgIGRhdGFbInN0YXJ0aW5nQ2hhbm5lbCJdID0gU0VSVkVSWyJzZXR0aW5ncyJdWyJtYXBwaW5nLmZpcnN0LmNoYW5uZWwiXTsNCiAgICAgICAgICAgICAgICBkYXRhWyJkZWZhdWx0TWlzc2luZ0VQRyJdID0gIi0iOw0KICAgICAgICAgICAgICAgIFNFUlZFUlsic2V0dGluZ3MiXVsiZmlsdGVyIl1baWRdID0gZGF0YTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGRhdGEgPSBTRVJWRVJbInNldHRpbmdzIl1bImZpbHRlciJdW2lkXTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJ4bWx0diI6DQogICAgICAgICAgICBkYXRhID0gU0VSVkVSWyJzZXR0aW5ncyJdWyJmaWxlcyJdW2RhdGFUeXBlXVtpZF07DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSAidXNlcnMiOg0KICAgICAgICAgICAgZGF0YSA9IFNFUlZFUlsidXNlcnMiXVtpZF1bImRhdGEiXTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJtYXBwaW5nIjoNCiAgICAgICAgICAgIGRhdGEgPSBTRVJWRVJbInhlcGciXVsiZXBnTWFwcGluZyJdW2lkXTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJtM3VHcm91cHMiOg0KICAgICAgICAgICAgZGF0YSA9IFNFUlZFUlsiZGF0YSJdWyJwbGF5bGlzdCJdWyJtM3UiXVsiZ3JvdXBzIl07DQogICAgICAgICAgICBicmVhazsNCiAgICB9DQogICAgcmV0dXJuIGRhdGE7DQp9DQpmdW5jdGlvbiBnZXRPYmpLZXlzKG9iaikgew0KICAgIHZhciBrZXlzID0gbmV3IEFycmF5KCk7DQogICAgZm9yICh2YXIgaSBpbiBvYmopIHsNCiAgICAgICAgaWYgKG9iai5oYXNPd25Qcm9wZXJ0eShpKSkgew0KICAgICAgICAgICAga2V5cy5wdXNoKGkpOw0KICAgICAgICB9DQogICAgfQ0KICAgIHJldHVybiBrZXlzOw0KfQ0KZnVuY3Rpb24gZ2V0QWxsU2VsZWN0ZWRDaGFubmVscygpIHsNCiAgICB2YXIgY2hhbm5lbHMgPSBuZXcgQXJyYXkoKTsNCiAgICBpZiAoQlVMS19FRElUID09IGZhbHNlKSB7DQogICAgICAgIHJldHVybiBjaGFubmVsczsNCiAgICB9DQogICAgdmFyIHRycyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb250ZW50X3RhYmxlIikuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlRSIik7DQogICAgZm9yICh2YXIgaSA9IDE7IGkgPCB0cnMubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgaWYgKHRyc1tpXS5zdHlsZS5kaXNwbGF5ICE9ICJub25lIikgew0KICAgICAgICAgICAgaWYgKHRyc1tpXS5maXJzdENoaWxkLmZpcnN0Q2hpbGQuY2hlY2tlZCA9PSB0cnVlKSB7DQogICAgICAgICAgICAgICAgY2hhbm5lbHMucHVzaCh0cnNbaV0uaWQpOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQogICAgfQ0KICAgIHJldHVybiBjaGFubmVsczsNCn0NCmZ1bmN0aW9uIHNlbGVjdEFsbENoYW5uZWxzKCkgew0KICAgIHZhciBidWxrID0gZmFsc2U7DQogICAgdmFyIHRycyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb250ZW50X3RhYmxlIikuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlRSIik7DQogICAgaWYgKHRyc1swXS5maXJzdENoaWxkLmZpcnN0Q2hpbGQuY2hlY2tlZCA9PSB0cnVlKSB7DQogICAgICAgIGJ1bGsgPSB0cnVlOw0KICAgIH0NCiAgICBmb3IgKHZhciBpID0gMTsgaSA8IHRycy5sZW5ndGg7IGkrKykgew0KICAgICAgICBpZiAodHJzW2ldLnN0eWxlLmRpc3BsYXkgIT0gIm5vbmUiKSB7DQogICAgICAgICAgICBzd2l0Y2ggKGJ1bGspIHsNCiAgICAgICAgICAgICAgICBjYXNlIHRydWU6DQogICAgICAgICAgICAgICAgICAgIHRyc1tpXS5maXJzdENoaWxkLmZpcnN0Q2hpbGQuY2hlY2tlZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgZmFsc2U6DQogICAgICAgICAgICAgICAgICAgIHRyc1tpXS5maXJzdENoaWxkLmZpcnN0Q2hpbGQuY2hlY2tlZCA9IGZhbHNlOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KICAgIH0NCiAgICByZXR1cm47DQp9DQpmdW5jdGlvbiBidWxrRWRpdCgpIHsNCiAgICBCVUxLX0VESVQgPSAhQlVMS19FRElUOw0KICAgIHZhciBjbGFzc05hbWU7DQogICAgdmFyIHJvd3MgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCJidWxrIik7DQogICAgc3dpdGNoIChCVUxLX0VESVQpIHsNCiAgICAgICAgY2FzZSB0cnVlOg0KICAgICAgICAgICAgY2xhc3NOYW1lID0gImJ1bGsgc2hvd0J1bGsiOw0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGNhc2UgZmFsc2U6DQogICAgICAgICAgICBjbGFzc05hbWUgPSAiYnVsayBoaWRlQnVsayI7DQogICAgICAgICAgICBicmVhazsNCiAgICB9DQogICAgZm9yICh2YXIgaSA9IDA7IGkgPCByb3dzLmxlbmd0aDsgaSsrKSB7DQogICAgICAgIHJvd3NbaV0uY2xhc3NOYW1lID0gY2xhc3NOYW1lOw0KICAgICAgICByb3dzW2ldLmNoZWNrZWQgPSBmYWxzZTsNCiAgICB9DQogICAgcmV0dXJuOw0KfQ0KZnVuY3Rpb24gc29ydFRhYmxlKGNvbHVtbikgew0KICAgIC8vY29uc29sZS5sb2coY29sdW1tKTsNCiAgICBpZiAoY29sdW1uID09IENPTFVNTl9UT19TT1JUKSB7DQogICAgICAgIHJldHVybjsNCiAgICB9DQogICAgdmFyIHRhYmxlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnRlbnRfdGFibGUiKTsNCiAgICB2YXIgdGFibGVIZWFkID0gdGFibGUuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlRSIilbMF07DQogICAgdmFyIHRhYmxlSXRlbXMgPSB0YWJsZUhlYWQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlREIik7DQogICAgdmFyIHNvcnRPYmogPSBuZXcgT2JqZWN0KCk7DQogICAgdmFyIHgsIHhWYWx1ZTsNCiAgICB2YXIgdGFibGVIZWFkZXI7DQogICAgdmFyIHNvcnRCeVN0cmluZyA9IGZhbHNlOw0KICAgIGlmIChjb2x1bW4gPiAwICYmIENPTFVNTl9UT19TT1JUID4gMCkgew0KICAgICAgICB0YWJsZUl0ZW1zW0NPTFVNTl9UT19TT1JUXS5jbGFzc05hbWUgPSAicG9pbnRlciI7DQogICAgICAgIHRhYmxlSXRlbXNbY29sdW1uXS5jbGFzc05hbWUgPSAic29ydFRoaXMiOw0KICAgIH0NCiAgICBDT0xVTU5fVE9fU09SVCA9IGNvbHVtbjsNCiAgICB2YXIgcm93cyA9IHRhYmxlLnJvd3M7DQogICAgaWYgKHJvd3NbMV0gIT0gdW5kZWZpbmVkKSB7DQogICAgICAgIHRhYmxlSGVhZGVyID0gcm93c1swXTsNCiAgICAgICAgeCA9IHJvd3NbMV0uZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlREIilbY29sdW1uXTsNCiAgICAgICAgZm9yIChpID0gMTsgaSA8IHJvd3MubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgICAgIHggPSByb3dzW2ldLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJURCIpW2NvbHVtbl07DQogICAgICAgICAgICBzd2l0Y2ggKHguY2hpbGROb2Rlc1swXS50YWdOYW1lLnRvTG93ZXJDYXNlKCkpIHsNCiAgICAgICAgICAgICAgICBjYXNlICJpbnB1dCI6DQogICAgICAgICAgICAgICAgICAgIHhWYWx1ZSA9IHguZ2V0RWxlbWVudHNCeVRhZ05hbWUoIklOUFVUIilbMF0udmFsdWUudG9Mb3dlckNhc2UoKTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAicCI6DQogICAgICAgICAgICAgICAgICAgIHhWYWx1ZSA9IHguZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlAiKVswXS5pbm5lclRleHQudG9Mb3dlckNhc2UoKTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgZGVmYXVsdDogY29uc29sZS5sb2coeC5jaGlsZE5vZGVzWzBdLnRhZ05hbWUpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgaWYgKHhWYWx1ZSA9PSAiIiB8fCB4VmFsdWUgPT0gTmFOKSB7DQogICAgICAgICAgICAgICAgeFZhbHVlID0gaTsNCiAgICAgICAgICAgICAgICBzb3J0T2JqW2ldID0gcm93c1tpXTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgICAgIHN3aXRjaCAoaXNOYU4oeFZhbHVlKSkgew0KICAgICAgICAgICAgICAgICAgICBjYXNlIGZhbHNlOg0KICAgICAgICAgICAgICAgICAgICAgICAgeFZhbHVlID0gcGFyc2VGbG9hdCh4VmFsdWUpOw0KICAgICAgICAgICAgICAgICAgICAgICAgc29ydE9ialt4VmFsdWVdID0gcm93c1tpXTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgICAgICBjYXNlIHRydWU6DQogICAgICAgICAgICAgICAgICAgICAgICBzb3J0QnlTdHJpbmcgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgc29ydE9ialt4VmFsdWUudG9Mb3dlckNhc2UoKSArIGldID0gcm93c1tpXTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KICAgICAgICB3aGlsZSAodGFibGUuZmlyc3RDaGlsZCkgew0KICAgICAgICAgICAgdGFibGUucmVtb3ZlQ2hpbGQodGFibGUuZmlyc3RDaGlsZCk7DQogICAgICAgIH0NCiAgICAgICAgdmFyIHNvcnRWYWx1ZXMgPSBnZXRPYmpLZXlzKHNvcnRPYmopOw0KICAgICAgICBpZiAoc29ydEJ5U3RyaW5nID09IHRydWUpIHsNCiAgICAgICAgICAgIHNvcnRWYWx1ZXMuc29ydCgpOw0KICAgICAgICAgICAgY29uc29sZS5sb2coc29ydFZhbHVlcyk7DQogICAgICAgIH0NCiAgICAgICAgZWxzZSB7DQogICAgICAgICAgICBmdW5jdGlvbiBzb3J0RmxvYXQoYSwgYikgew0KICAgICAgICAgICAgICAgIHJldHVybiBhIC0gYjsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIHNvcnRWYWx1ZXMuc29ydChzb3J0RmxvYXQpOw0KICAgICAgICB9DQogICAgICAgIHRhYmxlLmFwcGVuZENoaWxkKHRhYmxlSGVhZGVyKTsNCiAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBzb3J0VmFsdWVzLmxlbmd0aDsgaSsrKSB7DQogICAgICAgICAgICB0YWJsZS5hcHBlbmRDaGlsZChzb3J0T2JqW3NvcnRWYWx1ZXNbaV1dKTsNCiAgICAgICAgfQ0KICAgIH0NCiAgICByZXR1cm47DQp9DQpmdW5jdGlvbiBjcmVhdGVTZWFyY2hPYmooKSB7DQogICAgU0VBUkNIX01BUFBJTkcgPSBuZXcgT2JqZWN0KCk7DQogICAgdmFyIGRhdGEgPSBTRVJWRVJbInhlcGciXVsiZXBnTWFwcGluZyJdOw0KICAgIHZhciBjaGFubmVscyA9IGdldE9iaktleXMoZGF0YSk7DQogICAgdmFyIGNoYW5uZWxLZXlzID0gWyJ4LWFjdGl2ZSIsICJ4LWNoYW5uZWxJRCIsICJ4LW5hbWUiLCAiX2ZpbGUubTN1Lm5hbWUiLCAieC1ncm91cC10aXRsZSIsICJ4LXhtbHR2LWZpbGUiXTsNCiAgICBjaGFubmVscy5mb3JFYWNoKGlkID0+IHsNCiAgICAgICAgY2hhbm5lbEtleXMuZm9yRWFjaChrZXkgPT4gew0KICAgICAgICAgICAgaWYgKGtleSA9PSAieC1hY3RpdmUiKSB7DQogICAgICAgICAgICAgICAgc3dpdGNoIChkYXRhW2lkXVtrZXldKSB7DQogICAgICAgICAgICAgICAgICAgIGNhc2UgdHJ1ZToNCiAgICAgICAgICAgICAgICAgICAgICAgIFNFQVJDSF9NQVBQSU5HW2lkXSA9ICJvbmxpbmUgIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgICAgICBjYXNlIGZhbHNlOg0KICAgICAgICAgICAgICAgICAgICAgICAgU0VBUkNIX01BUFBJTkdbaWRdID0gIm9mZmxpbmUgIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgICAgIGlmIChrZXkgPT0gIngteG1sdHYtZmlsZSIpIHsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHhtbHR2RmlsZSA9IGdldFZhbHVlRnJvbVByb3ZpZGVyRmlsZShkYXRhW2lkXVtrZXldLCAieG1sdHYiLCAibmFtZSIpOw0KICAgICAgICAgICAgICAgICAgICBpZiAoeG1sdHZGaWxlICE9IHVuZGVmaW5lZCkgew0KICAgICAgICAgICAgICAgICAgICAgICAgU0VBUkNIX01BUFBJTkdbaWRdID0gU0VBUkNIX01BUFBJTkdbaWRdICsgeG1sdHZGaWxlICsgIiAiOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgICAgICAgICBTRUFSQ0hfTUFQUElOR1tpZF0gPSBTRUFSQ0hfTUFQUElOR1tpZF0gKyBkYXRhW2lkXVtrZXldICsgIiAiOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0NCiAgICAgICAgfSk7DQogICAgfSk7DQogICAgcmV0dXJuOw0KfQ0KZnVuY3Rpb24gc2VhcmNoSW5NYXBwaW5nKCkgew0KICAgIHZhciBzZWFyY2hWYWx1ZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzZWFyY2hNYXBwaW5nIikudmFsdWU7DQogICAgdmFyIHRycyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb250ZW50X3RhYmxlIikuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlRSIik7DQogICAgZm9yICh2YXIgaSA9IDE7IGkgPCB0cnMubGVuZ3RoOyArK2kpIHsNCiAgICAgICAgdmFyIGlkID0gdHJzW2ldLmdldEF0dHJpYnV0ZSgiaWQiKTsNCiAgICAgICAgdmFyIGVsZW1lbnQgPSBTRUFSQ0hfTUFQUElOR1tpZF07DQogICAgICAgIHN3aXRjaCAoZWxlbWVudC50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKHNlYXJjaFZhbHVlLnRvTG93ZXJDYXNlKCkpKSB7DQogICAgICAgICAgICBjYXNlIHRydWU6DQogICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpLnN0eWxlLmRpc3BsYXkgPSAiIjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgZmFsc2U6DQogICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpLnN0eWxlLmRpc3BsYXkgPSAibm9uZSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIH0NCiAgICB9DQogICAgcmV0dXJuOw0KfQ0KZnVuY3Rpb24gY2FsY3VsYXRlV3JhcHBlckhlaWdodCgpIHsNCiAgICBpZiAoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImJveC13cmFwcGVyIikpIHsNCiAgICAgICAgdmFyIGVsbSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJib3gtd3JhcHBlciIpOw0KICAgICAgICB2YXIgZGl2cyA9IG5ldyBBcnJheSgibXlTdHJlYW1zQm94IiwgImNsaWVudEluZm8iLCAiY29udGVudCIpOw0KICAgICAgICB2YXIgZWxlbWVudHNIZWlnaHQgPSAwIC0gZWxtLm9mZnNldEhlaWdodDsNCiAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBkaXZzLmxlbmd0aDsgaSsrKSB7DQogICAgICAgICAgICBlbGVtZW50c0hlaWdodCA9IGVsZW1lbnRzSGVpZ2h0ICsgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoZGl2c1tpXSkub2Zmc2V0SGVpZ2h0Ow0KICAgICAgICB9DQogICAgICAgIGVsbS5zdHlsZS5oZWlnaHQgPSB3aW5kb3cuaW5uZXJIZWlnaHQgLSBlbGVtZW50c0hlaWdodCArICJweCI7DQogICAgfQ0KICAgIHJldHVybjsNCn0NCmZ1bmN0aW9uIGNoYW5nZUNoYW5uZWxOdW1iZXIoZWxlbWVudCkgew0KICAgIHZhciBkYklEID0gZWxlbWVudC5wYXJlbnROb2RlLnBhcmVudE5vZGUuaWQ7DQogICAgdmFyIG5ld051bWJlciA9IHBhcnNlRmxvYXQoZWxlbWVudC52YWx1ZSk7DQogICAgdmFyIGNoYW5uZWxOdW1iZXJzID0gW107DQogICAgdmFyIGRhdGEgPSBTRVJWRVJbInhlcGciXVsiZXBnTWFwcGluZyJdOw0KICAgIHZhciBjaGFubmVscyA9IGdldE9iaktleXMoZGF0YSk7DQogICAgaWYgKGlzTmFOKG5ld051bWJlcikpIHsNCiAgICAgICAgYWxlcnQoInt7LmFsZXJ0LmludmFsaWRDaGFubmVsTnVtYmVyfX0iKTsNCiAgICAgICAgcmV0dXJuOw0KICAgIH0NCiAgICBjaGFubmVscy5mb3JFYWNoKGlkID0+IHsNCiAgICAgICAgdmFyIGNoYW5uZWxOdW1iZXIgPSBwYXJzZUZsb2F0KGRhdGFbaWRdWyJ4LWNoYW5uZWxJRCJdKTsNCiAgICAgICAgY2hhbm5lbE51bWJlcnMucHVzaChjaGFubmVsTnVtYmVyKTsNCiAgICB9KTsNCiAgICBmb3IgKHZhciBpID0gMDsgaSA8IGNoYW5uZWxOdW1iZXJzLmxlbmd0aDsgaSsrKSB7DQogICAgICAgIGlmIChjaGFubmVsTnVtYmVycy5pbmRleE9mKG5ld051bWJlcikgPT0gLTEpIHsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICB9DQogICAgICAgIGlmIChNYXRoLmZsb29yKG5ld051bWJlcikgPT0gbmV3TnVtYmVyKSB7DQogICAgICAgICAgICBuZXdOdW1iZXIgPSBuZXdOdW1iZXIgKyAxOw0KICAgICAgICB9DQogICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgbmV3TnVtYmVyID0gbmV3TnVtYmVyICsgMC4xOw0KICAgICAgICAgICAgbmV3TnVtYmVyLnRvRml4ZWQoMSk7DQogICAgICAgICAgICBuZXdOdW1iZXIgPSBNYXRoLnJvdW5kKG5ld051bWJlciAqIDEwKSAvIDEwOw0KICAgICAgICB9DQogICAgfQ0KICAgIGRhdGFbZGJJRF1bIngtY2hhbm5lbElEIl0gPSBuZXdOdW1iZXIudG9TdHJpbmcoKTsNCiAgICBlbGVtZW50LnZhbHVlID0gbmV3TnVtYmVyOw0KICAgIGNvbnNvbGUubG9nKGRhdGFbZGJJRF1bIngtY2hhbm5lbElEIl0pOw0KICAgIGlmIChDT0xVTU5fVE9fU09SVCA9PSAxKSB7DQogICAgICAgIENPTFVNTl9UT19TT1JUID0gLTE7DQogICAgICAgIHNvcnRUYWJsZSgxKTsNCiAgICB9DQogICAgcmV0dXJuOw0KfQ0KZnVuY3Rpb24gYmFja3VwKCkgew0KICAgIHZhciBkYXRhID0gbmV3IE9iamVjdCgpOw0KICAgIGNvbnNvbGUubG9nKCJCYWNrdXAgZGF0YSIpOw0KICAgIHZhciBjbWQgPSAieHRldmVCYWNrdXAiOw0KICAgIGNvbnNvbGUubG9nKCJTRU5EIFRPIFNFUlZFUiIpOw0KICAgIGNvbnNvbGUubG9nKGRhdGEpOw0KICAgIHZhciBzZXJ2ZXIgPSBuZXcgU2VydmVyKGNtZCk7DQogICAgc2VydmVyLnJlcXVlc3QoZGF0YSk7DQogICAgcmV0dXJuOw0KfQ0KZnVuY3Rpb24gdG9nZ2xlQ2hhbm5lbFN0YXR1cyhpZCkgew0KICAgIHZhciBlbGVtZW50Ow0KICAgIHZhciBzdGF0dXM7DQogICAgaWYgKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJhY3RpdmUiKSkgew0KICAgICAgICB2YXIgY2hlY2tib3ggPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYWN0aXZlIik7DQogICAgICAgIHN0YXR1cyA9IChjaGVja2JveCkuY2hlY2tlZDsNCiAgICB9DQogICAgdmFyIGlkcyA9IGdldEFsbFNlbGVjdGVkQ2hhbm5lbHMoKTsNCiAgICBpZiAoaWRzLmxlbmd0aCA9PSAwKSB7DQogICAgICAgIGlkcy5wdXNoKGlkKTsNCiAgICB9DQogICAgaWRzLmZvckVhY2goaWQgPT4gew0KICAgICAgICB2YXIgY2hhbm5lbCA9IFNFUlZFUlsieGVwZyJdWyJlcGdNYXBwaW5nIl1baWRdOw0KICAgICAgICBjaGFubmVsWyJ4LWFjdGl2ZSJdID0gc3RhdHVzOw0KICAgICAgICBzd2l0Y2ggKGNoYW5uZWxbIngtYWN0aXZlIl0pIHsNCiAgICAgICAgICAgIGNhc2UgdHJ1ZToNCiAgICAgICAgICAgICAgICBpZiAoY2hhbm5lbFsieC14bWx0di1maWxlIl0gPT0gIi0iIHx8IGNoYW5uZWxbIngtbWFwcGluZyJdID09ICItIikgew0KICAgICAgICAgICAgICAgICAgICBpZiAoQlVMS19FRElUID09IGZhbHNlKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBhbGVydChjaGFubmVsWyJ4LW5hbWUiXSArICI6IE1pc3NpbmcgWE1MVFYgZmlsZSAvIGNoYW5uZWwiKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNoZWNrYm94LmNoZWNrZWQgPSBmYWxzZTsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBjaGFubmVsWyJ4LWFjdGl2ZSJdID0gZmFsc2U7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSBmYWxzZToNCiAgICAgICAgICAgICAgICAvLyBjb2RlLi4uDQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIH0NCiAgICAgICAgaWYgKGNoYW5uZWxbIngtYWN0aXZlIl0gPT0gZmFsc2UpIHsNCiAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5jbGFzc05hbWUgPSAibm90QWN0aXZlRVBHIjsNCiAgICAgICAgfQ0KICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5jbGFzc05hbWUgPSAiYWN0aXZlRVBHIjsNCiAgICAgICAgfQ0KICAgIH0pOw0KfQ0KZnVuY3Rpb24gcmVzdG9yZSgpIHsNCiAgICBpZiAoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3VwbG9hZCcpKSB7DQogICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd1cGxvYWQnKS5yZW1vdmUoKTsNCiAgICB9DQogICAgdmFyIHJlc3RvcmUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJJTlBVVCIpOw0KICAgIHJlc3RvcmUuc2V0QXR0cmlidXRlKCJ0eXBlIiwgImZpbGUiKTsNCiAgICByZXN0b3JlLnNldEF0dHJpYnV0ZSgiY2xhc3MiLCAibm90VmlzaWJsZSIpOw0KICAgIHJlc3RvcmUuc2V0QXR0cmlidXRlKCJuYW1lIiwgIiIpOw0KICAgIHJlc3RvcmUuaWQgPSAidXBsb2FkIjsNCiAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHJlc3RvcmUpOw0KICAgIHJlc3RvcmUuY2xpY2soKTsNCiAgICByZXN0b3JlLm9uY2hhbmdlID0gZnVuY3Rpb24gKCkgew0KICAgICAgICB2YXIgZmlsZW5hbWUgPSByZXN0b3JlLmZpbGVzWzBdLm5hbWU7DQogICAgICAgIHZhciBjaGVjayA9IGNvbmZpcm0oIkZpbGU6ICIgKyBmaWxlbmFtZSArICJcbnt7LmNvbmZpcm0ucmVzdG9yZX19Iik7DQogICAgICAgIGlmIChjaGVjayA9PSB0cnVlKSB7DQogICAgICAgICAgICB2YXIgcmVhZGVyID0gbmV3IEZpbGVSZWFkZXIoKTsNCiAgICAgICAgICAgIHZhciBmaWxlID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignaW5wdXRbdHlwZT1maWxlXScpLmZpbGVzWzBdOw0KICAgICAgICAgICAgaWYgKGZpbGUpIHsNCiAgICAgICAgICAgICAgICByZWFkZXIucmVhZEFzRGF0YVVSTChmaWxlKTsNCiAgICAgICAgICAgICAgICByZWFkZXIub25sb2FkID0gZnVuY3Rpb24gKCkgew0KICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhyZWFkZXIucmVzdWx0KTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGRhdGEgPSBuZXcgT2JqZWN0KCk7DQogICAgICAgICAgICAgICAgICAgIHZhciBjbWQgPSAieHRldmVSZXN0b3JlIjsNCiAgICAgICAgICAgICAgICAgICAgZGF0YVsiYmFzZTY0Il0gPSByZWFkZXIucmVzdWx0Ow0KICAgICAgICAgICAgICAgICAgICB2YXIgc2VydmVyID0gbmV3IFNlcnZlcihjbWQpOw0KICAgICAgICAgICAgICAgICAgICBzZXJ2ZXIucmVxdWVzdChkYXRhKTsNCiAgICAgICAgICAgICAgICB9Ow0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgZWxzZSB7DQogICAgICAgICAgICAgICAgYWxlcnQoIkZpbGUgY291bGQgbm90IGJlIGxvYWRlZCIpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgcmVzdG9yZS5yZW1vdmUoKTsNCiAgICAgICAgICAgIHJldHVybjsNCiAgICAgICAgfQ0KICAgIH07DQogICAgcmV0dXJuOw0KfQ0KZnVuY3Rpb24gdXBsb2FkTG9nbygpIHsNCiAgICBpZiAoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3VwbG9hZCcpKSB7DQogICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd1cGxvYWQnKS5yZW1vdmUoKTsNCiAgICB9DQogICAgdmFyIHVwbG9hZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIklOUFVUIik7DQogICAgdXBsb2FkLnNldEF0dHJpYnV0ZSgidHlwZSIsICJmaWxlIik7DQogICAgdXBsb2FkLnNldEF0dHJpYnV0ZSgiY2xhc3MiLCAibm90VmlzaWJsZSIpOw0KICAgIHVwbG9hZC5zZXRBdHRyaWJ1dGUoIm5hbWUiLCAiIik7DQogICAgdXBsb2FkLmlkID0gInVwbG9hZCI7DQogICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZCh1cGxvYWQpOw0KICAgIHVwbG9hZC5jbGljaygpOw0KICAgIHVwbG9hZC5vbmJsdXIgPSBmdW5jdGlvbiAoKSB7DQogICAgICAgIGFsZXJ0KCk7DQogICAgfTsNCiAgICB1cGxvYWQub25jaGFuZ2UgPSBmdW5jdGlvbiAoKSB7DQogICAgICAgIHZhciBmaWxlbmFtZSA9IHVwbG9hZC5maWxlc1swXS5uYW1lOw0KICAgICAgICB2YXIgcmVhZGVyID0gbmV3IEZpbGVSZWFkZXIoKTsNCiAgICAgICAgdmFyIGZpbGUgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCdpbnB1dFt0eXBlPWZpbGVdJykuZmlsZXNbMF07DQogICAgICAgIGlmIChmaWxlKSB7DQogICAgICAgICAgICByZWFkZXIucmVhZEFzRGF0YVVSTChmaWxlKTsNCiAgICAgICAgICAgIHJlYWRlci5vbmxvYWQgPSBmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICAgICAgY29uc29sZS5sb2cocmVhZGVyLnJlc3VsdCk7DQogICAgICAgICAgICAgICAgdmFyIGRhdGEgPSBuZXcgT2JqZWN0KCk7DQogICAgICAgICAgICAgICAgdmFyIGNtZCA9ICJ1cGxvYWRMb2dvIjsNCiAgICAgICAgICAgICAgICBkYXRhWyJiYXNlNjQiXSA9IHJlYWRlci5yZXN1bHQ7DQogICAgICAgICAgICAgICAgZGF0YVsiZmlsZW5hbWUiXSA9IGZpbGUubmFtZTsNCiAgICAgICAgICAgICAgICB2YXIgc2VydmVyID0gbmV3IFNlcnZlcihjbWQpOw0KICAgICAgICAgICAgICAgIHNlcnZlci5yZXF1ZXN0KGRhdGEpOw0KICAgICAgICAgICAgICAgIHZhciB1cGRhdGVMb2dvID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3VwZGF0ZS1pY29uJyk7DQogICAgICAgICAgICAgICAgdXBkYXRlTG9nby5jaGVja2VkID0gZmFsc2U7DQogICAgICAgICAgICAgICAgdXBkYXRlTG9nby5jbGFzc05hbWUgPSAiY2hhbmdlZCI7DQogICAgICAgICAgICB9Ow0KICAgICAgICB9DQogICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgYWxlcnQoIkZpbGUgY291bGQgbm90IGJlIGxvYWRlZCIpOw0KICAgICAgICB9DQogICAgICAgIHVwbG9hZC5yZW1vdmUoKTsNCiAgICAgICAgcmV0dXJuOw0KICAgIH07DQp9DQpmdW5jdGlvbiBjaGVja1VuZG8oa2V5KSB7DQogICAgc3dpdGNoIChrZXkpIHsNCiAgICAgICAgY2FzZSAiZXBnTWFwcGluZyI6DQogICAgICAgICAgICBpZiAoVU5ETy5oYXNPd25Qcm9wZXJ0eShrZXkpKSB7DQogICAgICAgICAgICAgICAgU0VSVkVSWyJ4ZXBnIl1ba2V5XSA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkoVU5ET1trZXldKSk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICBVTkRPW2tleV0gPSBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KFNFUlZFUlsieGVwZyJdW2tleV0pKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBkZWZhdWx0Og0KICAgICAgICAgICAgYnJlYWs7DQogICAgfQ0KICAgIHJldHVybjsNCn0NCmZ1bmN0aW9uIHNvcnRTZWxlY3QoZWxlbSkgew0KICAgIHZhciB0bXBBcnkgPSBbXTsNCiAgICB2YXIgc2VsZWN0ZWRWYWx1ZSA9IGVsZW1bZWxlbS5zZWxlY3RlZEluZGV4XS52YWx1ZTsNCiAgICBmb3IgKHZhciBpID0gMDsgaSA8IGVsZW0ub3B0aW9ucy5sZW5ndGg7IGkrKykNCiAgICAgICAgdG1wQXJ5LnB1c2goZWxlbS5vcHRpb25zW2ldKTsNCiAgICB0bXBBcnkuc29ydChmdW5jdGlvbiAoYSwgYikgeyByZXR1cm4gKGEudGV4dCA8IGIudGV4dCkgPyAtMSA6IDE7IH0pOw0KICAgIHdoaWxlIChlbGVtLm9wdGlvbnMubGVuZ3RoID4gMCkNCiAgICAgICAgZWxlbS5vcHRpb25zWzBdID0gbnVsbDsNCiAgICB2YXIgbmV3U2VsZWN0ZWRJbmRleCA9IDA7DQogICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0bXBBcnkubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgZWxlbS5vcHRpb25zW2ldID0gdG1wQXJ5W2ldOw0KICAgICAgICBpZiAoZWxlbS5vcHRpb25zW2ldLnZhbHVlID09IHNlbGVjdGVkVmFsdWUpDQogICAgICAgICAgICBuZXdTZWxlY3RlZEluZGV4ID0gaTsNCiAgICB9DQogICAgZWxlbS5zZWxlY3RlZEluZGV4ID0gbmV3U2VsZWN0ZWRJbmRleDsgLy8gU2V0IG5ldyBzZWxlY3RlZCBpbmRleCBhZnRlciBzb3J0aW5nDQogICAgcmV0dXJuOw0KfQ0KZnVuY3Rpb24gdXBkYXRlTG9nKCkgew0KICAgIGNvbnNvbGUubG9nKCJUT0tFTiIpOw0KICAgIHZhciBzZXJ2ZXIgPSBuZXcgU2VydmVyKCJ1cGRhdGVMb2ciKTsNCiAgICBzZXJ2ZXIucmVxdWVzdChuZXcgT2JqZWN0KCkpOw0KfQ0K" webUI["html/js/logs_ts.js"] = "Y2xhc3MgTG9nIHsNCiAgICBjcmVhdGVMb2coZW50cnkpIHsNCiAgICAgICAgdmFyIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJQUkUiKTsNCiAgICAgICAgaWYgKGVudHJ5LmluZGV4T2YoIldBUk5JTkciKSAhPSAtMSkgew0KICAgICAgICAgICAgZWxlbWVudC5jbGFzc05hbWUgPSAid2FybmluZ01zZyI7DQogICAgICAgIH0NCiAgICAgICAgaWYgKGVudHJ5LmluZGV4T2YoIkVSUk9SIikgIT0gLTEpIHsNCiAgICAgICAgICAgIGVsZW1lbnQuY2xhc3NOYW1lID0gImVycm9yTXNnIjsNCiAgICAgICAgfQ0KICAgICAgICBpZiAoZW50cnkuaW5kZXhPZigiREVCVUciKSAhPSAtMSkgew0KICAgICAgICAgICAgZWxlbWVudC5jbGFzc05hbWUgPSAiZGVidWdNc2ciOw0KICAgICAgICB9DQogICAgICAgIGVsZW1lbnQuaW5uZXJIVE1MID0gZW50cnk7DQogICAgICAgIHJldHVybiBlbGVtZW50Ow0KICAgIH0NCn0NCmZ1bmN0aW9uIHNob3dMb2dzKGJvdHRvbSkgew0KICAgIHZhciBsb2cgPSBuZXcgTG9nKCk7DQogICAgdmFyIGxvZ3MgPSBTRVJWRVJbImxvZyJdWyJsb2ciXTsNCiAgICB2YXIgZGl2ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnRlbnRfbG9nIik7DQogICAgZGl2LmlubmVySFRNTCA9ICIiOw0KICAgIHZhciBrZXlzID0gZ2V0T2JqS2V5cyhsb2dzKTsNCiAgICBrZXlzLmZvckVhY2gobG9nSUQgPT4gew0KICAgICAgICB2YXIgZW50cnkgPSBsb2cuY3JlYXRlTG9nKGxvZ3NbbG9nSURdKTsNCiAgICAgICAgZGl2LmFwcGVuZChlbnRyeSk7DQogICAgfSk7DQogICAgc2V0VGltZW91dChmdW5jdGlvbiAoKSB7DQogICAgICAgIGlmIChib3R0b20gPT0gdHJ1ZSkgew0KICAgICAgICAgICAgdmFyIHdyYXBwZXIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYm94LXdyYXBwZXIiKTsNCiAgICAgICAgICAgIHdyYXBwZXIuc2Nyb2xsVG9wID0gd3JhcHBlci5zY3JvbGxIZWlnaHQ7DQogICAgICAgIH0NCiAgICB9LCAxMCk7DQp9DQpmdW5jdGlvbiByZXNldExvZ3MoKSB7DQogICAgdmFyIGNtZCA9ICJyZXNldExvZ3MiOw0KICAgIHZhciBkYXRhID0gbmV3IE9iamVjdCgpOw0KICAgIHZhciBzZXJ2ZXIgPSBuZXcgU2VydmVyKGNtZCk7DQogICAgc2VydmVyLnJlcXVlc3QoZGF0YSk7DQp9DQo=" - webUI["html/maintenance.html"] = "PCFkb2N0eXBlIGh0bWw+DQo8aHRtbD4NCiAgPGhlYWQ+DQogICAgPG1ldGEgY2hhcnNldD0idXRmLTgiPg0KICAgIDxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgsIGluaXRpYWwtc2NhbGU9MS4wIiAvPiANCiAgICA8dGl0bGU+eFRlVmU8L3RpdGxlPg0KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iY3NzL3NjcmVlbi5jc3MiIHR5cGU9InRleHQvY3NzIj4NCiAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9ImNzcy9iYXNlLmNzcyIgdHlwZT0idGV4dC9jc3MiPg0KICA8L2hlYWQ+DQoNCiAgICA8Ym9keT4NCiAgICAgICAgICANCiAgICAgIDxkaXYgaWQ9ImhlYWRlciIgY2xhc3M9ImltZ0NlbnRlciI+PC9kaXY+DQoNCiAgICAgIDxkaXYgaWQ9ImJveCI+DQoNCiAgICAgICAgPGRpdiBpZD0iaGVhZGxpbmUiPg0KICAgICAgICAgIDxoMSBpZD0iaGVhZC10ZXh0IiBjbGFzcz0iY2VudGVyIj5NYWludGVuYW5jZTwvaDE+ICAgICAgDQogICAgICAgIDwvZGl2PiAgDQoNCiAgICAgICAgPGRpdiBpZD0iY29udGVudCI+DQogICAgICAgICAgeFRlVmUgaXMgdXBkYXRpbmcgdGhlIGRhdGFiYXNlLCBwbGVhc2UgdHJ5IGFnYWluIGxhdGVyLg0KICAgICAgICA8L2Rpdj4NCg0KICAgICAgICA8ZGl2IGlkPSJib3gtZm9vdGVyIj48L2Rpdj4NCiAgICAgICAgDQogICAgICA8L2Rpdj4NCg0KICAgIDwvYm9keT4NCjwvaHRtbD4=" webUI["html/create-first-user.html"] = "PCFkb2N0eXBlIGh0bWw+DQo8aHRtbD4NCiAgPGhlYWQ+DQogICAgPG1ldGEgY2hhcnNldD0idXRmLTgiPg0KICAgIDxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgsIGluaXRpYWwtc2NhbGU9MS4wIiAvPiANCiAgICA8dGl0bGU+eFRlVmU8L3RpdGxlPg0KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iY3NzL3NjcmVlbi5jc3MiIHR5cGU9InRleHQvY3NzIj4NCiAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9ImNzcy9iYXNlLmNzcyIgdHlwZT0idGV4dC9jc3MiPg0KICAgIDxzY3JpcHQgbGFuZ3VhZ2U9ImphdmFzY3JpcHQiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJqcy9uZXR3b3JrX3RzLmpzIj48L3NjcmlwdD4NCiAgICA8c2NyaXB0IGxhbmd1YWdlPSJqYXZhc2NyaXB0IiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ianMvYXV0aGVudGljYXRpb25fdHMuanMiPjwvc2NyaXB0Pg0KICA8L2hlYWQ+DQoNCiAgICA8Ym9keT4NCiAgICAgICAgICANCiAgICAgIDxkaXYgaWQ9ImhlYWRlciIgY2xhc3M9ImltZ0NlbnRlciI+PC9kaXY+DQoNCiAgICAgIDxkaXYgaWQ9ImJveCI+DQoNCiAgICAgICAgPGRpdiBpZD0iaGVhZGxpbmUiPg0KICAgICAgICAgIDxoMSBpZD0iaGVhZC10ZXh0IiBjbGFzcz0iY2VudGVyIj57ey5hY2NvdW50LmhlYWRsaW5lfX08L2gxPg0KICAgICAgICA8L2Rpdj4NCg0KICAgICAgICA8cCBpZD0iZXJyIiBjbGFzcz0iZXJyb3JNc2cgY2VudGVyIj48L3A+DQoNCiAgICAgICAgPGRpdiBpZD0iY29udGVudCI+DQoNCiAgICAgICAgICAgIDxmb3JtIGlkPSJhdXRoZW50aWNhdGlvbiIgYWN0aW9uPSIiIG1ldGhvZD0icG9zdCI+DQoNCiAgICAgICAgICAgICAgPGg1Pnt7LmFjY291bnQudXNlcm5hbWUudGl0bGV9fTo8L2g1Pg0KICAgICAgICAgICAgICA8aW5wdXQgaWQ9InVzZXJuYW1lIiB0eXBlPSJ0ZXh0IiBuYW1lPSJ1c2VybmFtZSIgcGxhY2Vob2xkZXI9IlVzZXJuYW1lIiB2YWx1ZT0iIj4NCiAgICAgICAgICAgICAgPGg1Pnt7LmFjY291bnQucGFzc3dvcmQudGl0bGV9fTo8L2g1Pg0KICAgICAgICAgICAgICA8aW5wdXQgaWQ9InBhc3N3b3JkIiB0eXBlPSJwYXNzd29yZCIgbmFtZT0icGFzc3dvcmQiIHBsYWNlaG9sZGVyPSJQYXNzd29yZCIgdmFsdWU9IiI+DQogICAgICAgICAgICAgIDxoNT57ey5hY2NvdW50LmNvbmZpcm0udGl0bGV9fTo8L2g1Pg0KICAgICAgICAgICAgICA8aW5wdXQgaWQ9ImNvbmZpcm0iICB0eXBlPSJwYXNzd29yZCIgbmFtZT0iY29uZmlybSIgIHBsYWNlaG9sZGVyPSJDb25maXJtIiB2YWx1ZT0iIj4NCiAgICAgICAgICAgICAgDQogICAgICAgICAgICA8L2Zvcm0+DQoNCiAgICAgICAgPC9kaXY+DQogICAgICAgIA0KICAgICAgICA8ZGl2IGlkPSJib3gtZm9vdGVyIj4NCiAgICAgICAgICA8aW5wdXQgaWQ9InN1Ym1pdCIgY2xhc3M9IiIgdHlwZT0iYnV0dG9uIiB2YWx1ZT0ie3suYnV0dG9uLmNyYWV0ZUFjY291bnR9fSIgb25jbGljaz0iamF2YXNjcmlwdDogbG9naW4oKTsiPg0KICAgICAgICA8L2Rpdj4NCiAgICAgIA0KICAgICAgICANCiAgICAgIDwvZGl2Pg0KICAgIDwvYm9keT4NCjwvaHRtbD4=" - webUI["html/img/logo_b_880x200.jpg"] = "/9j/4AAQSkZJRgABAQABLAEsAAD/4QDIRXhpZgAATU0AKgAAAAgABwESAAMAAAABAAEAAAEaAAUAAAABAAAAYgEbAAUAAAABAAAAagEoAAMAAAABAAIAAAExAAIAAAAPAAAAcgEyAAIAAAAUAAAAgodpAAQAAAABAAAAlgAAAAAAAAEsAAAAAQAAASwAAAABUGl4ZWxtYXRvciAzLjMAADIwMTk6MDg6MDIgMjA6MDg6MTQAAAOgAQADAAAAAQABAACgAgAEAAAAAQAAA3CgAwAEAAAAAQAAAMgAAAAA/+EJkGh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8APD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iWE1QIENvcmUgNS40LjAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcDpDcmVhdG9yVG9vbD0iUGl4ZWxtYXRvciAzLjMiIHhtcDpNb2RpZnlEYXRlPSIyMDE5LTA4LTAyVDIwOjA4OjE0Ii8+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPD94cGFja2V0IGVuZD0idyI/PgD/7QA4UGhvdG9zaG9wIDMuMAA4QklNBAQAAAAAAAA4QklNBCUAAAAAABDUHYzZjwCyBOmACZjs+EJ+/8AAEQgAyANwAwERAAIRAQMRAf/EAB8AAAEFAQEBAQEBAAAAAAAAAAABAgMEBQYHCAkKC//EALUQAAIBAwMCBAMFBQQEAAABfQECAwAEEQUSITFBBhNRYQcicRQygZGhCCNCscEVUtHwJDNicoIJChYXGBkaJSYnKCkqNDU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6g4SFhoeIiYqSk5SVlpeYmZqio6Slpqeoqaqys7S1tre4ubrCw8TFxsfIycrS09TV1tfY2drh4uPk5ebn6Onq8fLz9PX29/j5+v/EAB8BAAMBAQEBAQEBAQEAAAAAAAABAgMEBQYHCAkKC//EALURAAIBAgQEAwQHBQQEAAECdwABAgMRBAUhMQYSQVEHYXETIjKBCBRCkaGxwQkjM1LwFWJy0QoWJDThJfEXGBkaJicoKSo1Njc4OTpDREVGR0hJSlNUVVZXWFlaY2RlZmdoaWpzdHV2d3h5eoKDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uLj5OXm5+jp6vLz9PX29/j5+v/bAEMAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAf/bAEMBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAf/dAAQAbv/aAAwDAQACEQMRAD8A/iHoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKAP/9D+IegAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoA//0f4h6ACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgD//S/iHoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKAP/9P+IegAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoA//1P4h6ACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgDvPDXws+J3jPT31bwf8OfHnivSo7mSyfU/DXhDxBrunpeQpFLNaPe6Xp11bLcxRzwSSQNL5saTROyhZUNAHQf8M//AB4/6In8XP8Aw23jL/5TUAH/AAz/APHj/oifxc/8Nt4y/wDl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f/E3xn4o+IPjnxDLaafp8mveMPGet33iPxNrMlhpNpYaVZPqmtale3z2mmWNlp9s05hsrS2tkjhQA4ygAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgD//S/iHoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAczu+N7M2BgbmLYHoM9BnJxx1/FgBtABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAOLuwVWZiq/dUsSFz12joM4HQduc4FADaACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgD//0/4h6ACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgD//U/iHoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKAP/9X+IegAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoA//1v4h6ACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgD//X/iHoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKAP/9k=" - webUI["html/img/x_white.png"] = "iVBORw0KGgoAAAANSUhEUgAAAQAAAAEACAIAAADTED8xAAAAAXNSR0IArs4c6QAAAAlwSFlzAAAWJQAAFiUBSVIk8AAAA6ppVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IlhNUCBDb3JlIDUuNC4wIj4KICAgPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIgogICAgICAgICAgICB4bWxuczp0aWZmPSJodHRwOi8vbnMuYWRvYmUuY29tL3RpZmYvMS4wLyIKICAgICAgICAgICAgeG1sbnM6ZXhpZj0iaHR0cDovL25zLmFkb2JlLmNvbS9leGlmLzEuMC8iPgogICAgICAgICA8eG1wOk1vZGlmeURhdGU+MjAxOC0xMS0xNVQxNzoxMToyNTwveG1wOk1vZGlmeURhdGU+CiAgICAgICAgIDx4bXA6Q3JlYXRvclRvb2w+UGl4ZWxtYXRvciAzLjM8L3htcDpDcmVhdG9yVG9vbD4KICAgICAgICAgPHRpZmY6T3JpZW50YXRpb24+MTwvdGlmZjpPcmllbnRhdGlvbj4KICAgICAgICAgPHRpZmY6Q29tcHJlc3Npb24+NTwvdGlmZjpDb21wcmVzc2lvbj4KICAgICAgICAgPHRpZmY6UmVzb2x1dGlvblVuaXQ+MjwvdGlmZjpSZXNvbHV0aW9uVW5pdD4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+MTQ0PC90aWZmOllSZXNvbHV0aW9uPgogICAgICAgICA8dGlmZjpYUmVzb2x1dGlvbj4xNDQ8L3RpZmY6WFJlc29sdXRpb24+CiAgICAgICAgIDxleGlmOlBpeGVsWERpbWVuc2lvbj4yNTY8L2V4aWY6UGl4ZWxYRGltZW5zaW9uPgogICAgICAgICA8ZXhpZjpDb2xvclNwYWNlPjE8L2V4aWY6Q29sb3JTcGFj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" - webUI["html/js/authentication.js"] = "ZnVuY3Rpb24gY3JlYXRlRmlyc3RBY2NvdW50KGVsbSkgew0KICB2YXIgZXJyID0gZmFsc2U7DQogIHZhciBkaXYgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChlbG0pOw0KICBjb25zb2xlLmxvZyhkaXYpOw0KDQogIHZhciBmb3JtID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2F1dGhlbnRpY2F0aW9uJyk7DQogIA0KICBjb25zdCB1c2VybmFtZSAgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndXNlcm5hbWUnKTsNCiAgY29uc3QgcGFzc3dvcmQgID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Bhc3N3b3JkJyk7DQogIGNvbnN0IGNvbmZpcm0gICA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjb25maXJtJyk7DQoNCiAgdmFyIGlucHV0cyA9IGRpdi5nZXRFbGVtZW50c0J5VGFnTmFtZSgnSU5QVVQnKQ0KICBjb25zb2xlLmxvZyhjb25maXJtKTsNCg0KICBzd2l0Y2goY29uZmlybSkgew0KICAgIGNhc2UgbnVsbDogYnJlYWs7DQogICAgDQogICAgZGVmYXVsdDogDQogICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGlucHV0cy5sZW5ndGg7IGkrKykgew0KICAgICAgICBpZiAoaW5wdXRzW2ldLnZhbHVlLmxlbmd0aCA9PSAwKSB7DQogICAgICAgICAgaW5wdXRzW2ldLnN0eWxlLmJvcmRlckNvbG9yID0gJ3JlZCc7DQogICAgICAgICAgZXJyID0gdHJ1ZQ0KICAgICAgICB9DQogICAgICB9DQoNCiAgICAgIHN3aXRjaChlcnIpIHsNCiAgICAgICAgY2FzZSB0cnVlOiByZXR1cm47IGJyZWFrOw0KICAgICAgICBjYXNlIGZhbHNlOiANCiAgICAgICAgICBpZiAocGFzc3dvcmQudmFsdWUgIT0gY29uZmlybS52YWx1ZSkgew0KICAgICAgICAgICAgY29uZmlybS5zdHlsZS5ib3JkZXJDb2xvciA9ICdyZWQnOw0KICAgICAgICAgICAgcmV0dXJuOw0KICAgICAgICAgIH0NCiAgICAgICAgICBicmVhazsNCiAgICAgIH0NCiAgfQ0KDQoNCiAgDQoNCiAgZm9ybS5zdWJtaXQoKTsNCiAgcmV0dXJuOw0KfQ==" - webUI["html/css/base.css"] = "KiB7DQogIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTsNCiAgLW1vei1hcHBlYXJhbmNlOiBub25lOw0KICAtbXMtYXBwZWFyYW5jZTogbm9uZTsNCiAgZm9udC1mYW1pbHk6ICJBcmlhbCIsIHNhbnMtc2VyaWY7DQogIGxldHRlci1zcGFjaW5nOiAycHg7IA0KfQ0KDQovKg0KOjotd2Via2l0LXNjcm9sbGJhciB7IA0KICAgIGRpc3BsYXk6IG5vbmU7IA0KfQ0KKi8NCg0KOjotd2Via2l0LXNjcm9sbGJhciB7DQogIHdpZHRoOiAxMnB4Ow0KICBoZWlnaHQ6IDEycHg7DQp9DQoNCiANCjo6LXdlYmtpdC1zY3JvbGxiYXItdHJhY2sgew0KICAtd2Via2l0LWJveC1zaGFkb3c6IGluc2V0IDAgMCA2cHggcmdiYSgwLDAsMCwwLjMpOyANCiAgYm9yZGVyLXJhZGl1czogNXB4Ow0KICAgIA0KfQ0KIA0KOjotd2Via2l0LXNjcm9sbGJhci10aHVtYiB7DQogIGJvcmRlci1yYWRpdXM6IDVweDsNCiAgLXdlYmtpdC1ib3gtc2hhZG93OiBpbnNldCAwIDAgNnB4IHJnYmEoMCwgMCwgMCwwLjYpOyANCiAgYmFja2dyb3VuZC1jb2xvcjogIzQ0NDsNCn0NCg0KOjotd2Via2l0LXNjcm9sbGJhci10aHVtYjpob3ZlciB7DQogIGJhY2tncm91bmQ6ICMzMzM7IA0KfQ0KDQo6Oi13ZWJraXQtc2Nyb2xsYmFyLWNvcm5lciB7IA0KICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsgDQp9DQoNCmEgew0KICBjb2xvcjogIzAwRTZGRjsNCn0NCg0KaHRtbCwgYm9keSB7DQogIGNvbG9yOiAjZmZmOw0KICBtYXJnaW46IDBweCBhdXRvOw0KICBoZWlnaHQ6IDEwMCU7DQogIGZvbnQtc2l6ZTogMTRweDsNCn0NCg0KaDIgew0KICBmb250LXNpemU6IDI0cHg7DQogIGxldHRlci1zcGFjaW5nOiAycHg7DQp9DQoNCmgzIHsNCiAgZm9udC1zaXplOiAyMnB4Ow0KICBsZXR0ZXItc3BhY2luZzogMXB4Ow0KfQ0KDQpoNCB7DQogIGZvbnQtc2l6ZTogMjBweDsNCiAgbGV0dGVyLXNwYWNpbmc6IDFweDsNCiAgbGluZS1oZWlnaHQ6IDEuNWVtOw0KDQp9DQoNCmg1IHsNCiAgZm9udC1zaXplOiAxNnB4Ow0KICBsZXR0ZXItc3BhY2luZzogMXB4Ow0KICBsaW5lLWhlaWdodDogMS4yZW07DQogIG1hcmdpbjogMjVweCAwcHggMTBweCAwcHg7DQp9DQoNCmhyIHsNCiAgYm9yZGVyOiAwOw0KICBoZWlnaHQ6IDFweDsNCiAgYmFja2dyb3VuZDogIzMzMzsNCiAgbWFyZ2luOiAxMHB4IDBweDsNCn0NCg0KcCB7DQogIG1hcmdpbjogMnB4Ow0KICBwYWRkaW5nOiAycHggNXB4Ow0KfQ0KDQpwcmUgew0KICBtYXJnaW46IDBweCAwcHggNXB4IDBweDsNCiAgZm9udC1zaXplOiAxMnB4Ow0KICBjb2xvcjogI2RkZDsNCiAgbGV0dGVyLXNwYWNpbmc6IDFweDsNCiAgd2hpdGUtc3BhY2U6IHByZS13cmFwOw0KICBmb250LWZhbWlseTogbW9ub3NwYWNlOyANCiAgZm9udC1zaXplOiAxMnB4OyANCiAgZm9udC1zdHlsZTogbm9ybWFsOyANCiAgZm9udC12YXJpYW50OiBub3JtYWw7IA0KICBsaW5lLWhlaWdodDogMS42ZW07IA0KfQ0KDQpsYWJlbCB7DQogIG1hcmdpbi1ib3R0b206IDIwcHg7DQogIGRpc3BsYXk6IGJsb2NrOw0KfQ0KDQpsaSB7DQogIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTsNCiAgYmFja2dyb3VuZC1jb2xvcjogIzExMTsNCiAgcGFkZGluZzogMTBweCAyMHB4Ow0KICBjdXJzb3I6IHBvaW50ZXI7DQogIGJvcmRlci1sZWZ0OiBzb2xpZCAycHggIzExMTsNCiAgdHJhbnNpdGlvbjogYWxsIDAuMzsNCn0NCg0KbGk6aG92ZXIgew0KICBib3JkZXItY29sb3I6ICMwMEU2RkYNCn0NCg0Kc2VsZWN0IHsNCiAgY3Vyc29yOiBwb2ludGVyOw0KICB3aWR0aDogY2FsYygxMDAlICsgMnB4KTsNCiAgYm9yZGVyOiBzb2xpZCAwcHggIzAwRTZGRjsNCiAgYm9yZGVyLXJhZGl1czogMHB4Ow0KICBvdXRsaW5lOiBub25lOw0KICBjb2xvcjogI2ZmZjsNCiAgcGFkZGluZzogOXB4IDEwcHg7DQogIGRpc3BsYXk6YmxvY2s7DQogIGJhY2tncm91bmQtY29sb3I6ICMzMzM7DQogIGZvbnQtc2l6ZTogMTRweDsNCiAgbWFyZ2luOiA1cHggMHB4IDVweCAwcHg7DQp9DQoNCnNlbGVjdDpmb2N1cyB7DQogIG91dGxpbmU6IG5vbmU7DQp9DQoNCmlucHV0IHsNCiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lOw0KICBtYXJnaW46IDVweCAwcHg7DQogIHBhZGRpbmc6IDIuNXB4IDEwcHg7DQogIG91dGxpbmU6IG5vbmU7DQogIGZvbnQtc2l6ZTogMTRweDsNCn0NCg0KaW5wdXRbdHlwZT1idXR0b25dLCBpbnB1dFt0eXBlPXN1Ym1pdF0gew0KICBjdXJzb3I6IHBvaW50ZXI7DQogIGJhY2tncm91bmQtY29sb3I6ICMwMDA7DQogIG1hcmdpbjogMTBweCAxMHB4Ow0KICBwYWRkaW5nOiAxMHB4IDI1cHg7DQogIGJvcmRlcjogc29saWQgMHB4Ow0KICBib3JkZXItY29sb3I6ICMwMDA7DQogIGJvcmRlci1yYWRpdXM6IDNweDsNCiAgb3V0bGluZTogbm9uZTsNCiAgY29sb3I6ICNmZmY7DQp9DQoNCmlucHV0W3R5cGU9YnV0dG9uXTpmb2N1cyB7IA0KICAgb3V0bGluZTogbm9uZTsNCn0NCg0KaW5wdXRbdHlwZT1idXR0b25dOmhvdmVyIHsNCiAgYmFja2dyb3VuZC1jb2xvcjogIzAwRTZGRjsNCiAgY29sb3I6ICMwMDA7DQp9DQoNCmlucHV0W3R5cGU9YnV0dG9uXTpob3Zlci5kZWxldGUgIHsNCiAgYmFja2dyb3VuZC1jb2xvcjogcmVkOw0KICBjb2xvcjogI2ZmZjsNCn0NCg0KaW5wdXRbdHlwZT10ZXh0XSwgaW5wdXRbdHlwZT1zZWFyY2hdLCBpbnB1dFt0eXBlPXBhc3N3b3JkXSB7DQogIGNvbG9yOiAjZmZmOw0KICB3aWR0aDogLXdlYmtpdC1jYWxjKDEwMCUgLSAwcHgpOw0KICB3aWR0aDogLW1vei1jYWxjKDEwMCUgLSAwcHgpOw0KICB3aWR0aDogY2FsYygxMDAlIC0gMHB4KTsNCiAgb3V0bGluZTogbm9uZTsNCiAgYm9yZGVyOiBzb2xpZCAxcHggdHJhbnNwYXJlbnQ7DQogIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50Ow0KICBib3JkZXItYm90dG9tLWNvbG9yOiAjNTU1Ow0KICBib3JkZXItcmFkaXVzOiAwcHg7DQogIHBhZGRpbmc6IDhweCAxMHB4Ow0KfQ0KDQppbnB1dFt0eXBlPSJjaGVja2JveCJdIHsNCiAgYm9yZGVyOiBzb2xpZCAxcHggIzAwRTZGRjsNCiAgYmFja2dyb3VuZC1jb2xvcjogIzMzMzsNCiAgaGVpZ2h0OiAyNXB4Ow0KICB3aWR0aDogMjVweDsNCiAgY3Vyc29yOiBwb2ludGVyOw0KICAvKg0KICAtd2Via2l0LWFwcGVhcmFuY2U6IGNoZWNrYm94Ow0KICAqLw0KfQ0KDQppbnB1dFt0eXBlPSJjaGVja2JveCJdOmNoZWNrZWQgew0KICBjb2xvcjogI2ZmZjsNCiAgYmFja2dyb3VuZC1jb2xvcjogIzAwRTZGRjsNCiAgLypkaXNwbGF5OiBpbmxpbmUtYmxvY2s7Ki8NCn0NCg0KaW5wdXRbdHlwZT0iY2hlY2tib3giXTpiZWZvcmUgew0KICBwb3NpdGlvbjogaW5pdGlhbDsNCiAgbGVmdDogMHB4Ow0KICBtYXJnaW4tbGVmdDogLTRweDsNCiAgY29udGVudDogIiAiOw0KfQ0KDQppbnB1dFt0eXBlPSJjaGVja2JveCJdOmNoZWNrZWQ6YmVmb3JlIHsNCiAgcG9zaXRpb246IGluaXRpYWw7DQogIGxlZnQ6IDBweDsNCiAgbWFyZ2luLWxlZnQ6IC0zcHg7DQogIGNvbnRlbnQ6ICLinJMiOw0KICBjb2xvcjogIzAwMDsNCn0NCg0KDQppbnB1dFt0eXBlPWJ1dHRvbl0uY2FuY2VsIHsNCiAgDQogIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50Ow0KICBib3JkZXItY29sb3I6IHJlZDsNCn0NCg0KaW5wdXRbdHlwZT1idXR0b25dLnNhdmV7DQogIGJhY2tncm91bmQtY29sb3I6ICMxMTE7DQogIGZsb2F0OiByaWdodDsNCn0NCg0KDQppbnB1dFt0eXBlPWJ1dHRvbl0uYmxhY2ssIGlucHV0W3R5cGU9c3VibWl0XS5ibGFja3sNCiAgYmFja2dyb3VuZC1jb2xvcjogIzAwMDsNCiAgYm9yZGVyLWNvbG9yOiAjMDAwOw0KfQ0KDQppbnB1dFt0eXBlPWJ1dHRvbl0uY2VudGVyew0KICBtYXJnaW4tcmlnaHQ6IGF1dG87DQogIG1hcmdpbi1sZWZ0OiBhdXRvOw0KICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDAwOw0KICBib3JkZXItY29sb3I6ICMwMDA7DQp9DQoNCi5wb2ludGVyIHsNCiAgY3Vyc29yOiBwb2ludGVyOw0KfQ0KDQoucG9pbnRlcjpob3ZlciB7DQogIGNvbG9yOiAjMDBFNkZGOw0KICBjdXJzb3I6IHBvaW50ZXI7DQp9DQoNCi5zb3J0VGhpcyB7DQogIGNvbG9yOiAjMDBFNkZGOw0KfQ0KDQoudzQwcHggew0KICBtYXgtd2lkdGg6IDQwcHg7DQp9DQoNCi53NTBweCB7DQogIG1heC13aWR0aDogNTBweDsNCn0NCg0KLnc4MHB4IHsNCiAgbWF4LXdpZHRoOiA4MHB4Ow0KfQ0KDQoudzE1MHB4IHsNCiAgbWF4LXdpZHRoOiAxNTBweDsNCn0NCg0KLncyMDBweCB7DQogIG1heC13aWR0aDogMjAwcHg7DQogIG1pbi13aWR0aDogMTAwcHg7DQogIHdpZHRoOiAyMDBweDsNCiAgb3ZlcmZsb3cteDogaGlkZGVuOw0KICB3aGl0ZS1zcGFjZTogbm93cmFwOw0KICBvdmVyZmxvdzogaGlkZGVuOw0KICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsNCn0NCg0KLnczMDBweCB7DQogIG1heC13aWR0aDogMzAwcHg7DQp9DQoNCi53MjIwcHggew0KICBtYXgtd2lkdGg6IDIyMHB4Ow0KICBjdXJzb3I6IGFsaWFzOw0KfQ0KDQouZm9vdGVyIHsNCiAgZm9udC1zaXplOiAxMHB4Ow0KfQ0KDQouY2VudGVyIHsNCiAgdGV4dC1hbGlnbjogY2VudGVyOw0KfQ0KDQouc2NyZWVuTG9nSGlkZGVuIHsNCiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMHB4LCAtMTEwcHgpOw0KfQ0KDQouYm9yZGVyU3BhY2Ugew0KICBtYXJnaW4tYm90dG9tOiAzMHB4Ow0KfQ0KDQouYmxvY2sgew0KDQp9DQoNCi5ub25lIHsNCiAgZGlzcGxheTogbm9uZTsNCn0NCg0KDQoubm90VmlzaWJsZSB7DQogIGhlaWdodDogMHB4Ow0KICBkaXNwbGF5OiBub25lOw0KICBvcGFjaXR5OiAwOw0KICBib3JkZXItYm90dG9tOiAjMDAwIHNvbGlkIDBweDsNCiAgDQp9DQoNCi52aXNpYmxlIHsNCiAgb3BhY2l0eTogMTsNCiAgZGlzcGxheTogYmxvY2s7DQogIGJvcmRlci1ib3R0b206ICM0NDQgc29saWQgMXB4OyANCiAgcGFkZGluZzogMTBweDsNCn0NCg0KLmZsb2F0UmlnaHQgew0KICBmbG9hdDogcmlnaHQ7DQp9DQoNCi5mbG9hdExlZnQgew0KICBmbG9hdDogbGVmdDsNCn0NCg0KLm1lbnUtYWN0aXZlIHsNCiAgYmFja2dyb3VuZC1jb2xvcjogIzAwRTZGRjsNCn0NCg0KLm1lbnUtbm90QWN0aXZlIHsNCiAgDQp9DQoNCiNicmFuY2ggew0KICBkaXNwbGF5OiB0YWJsZTsNCiAgbWFyZ2luOiBhdXRvOw0KICBjb2xvcjogcmVkOw0KfQ0KDQojaW50ZXJhY3Rpb24gew0KICBtYXJnaW4tYm90dG9tOiAxMDBweDsNCiAgdGV4dC1hbGlnbjogY2VudGVyOw0KICBib3JkZXItYm90dG9tOiBzb2xpZCAwcHggIzc3NzsNCn0NCg0KDQouaGFsZiB7DQogIGRpc3BsYXk6IGJsb2NrOw0KICB3aWR0aDogNDUlOw0KfQ0KDQoubWVudSB7DQogIGJvcmRlcjogc29saWQgMXB4ICMwMEU2RkY7DQp9DQoNCi5pbmZvTXNnIHsNCiAgY29sb3I6ICNhYWE7DQp9DQoNCi5lcnJvck1zZyB7DQogIGNvbG9yOiByZWQ7DQp9DQoNCi53YXJuaW5nTXNnIHsNCiAgY29sb3I6IHllbGxvdzsNCn0NCg0KLmRlYnVnTXNnIHsNCiAgY29sb3I6IG1hZ2VudGE7DQp9DQoNCi5OZXdzLCAuTW92aWUsIC5TZXJpZXMsIC5TcG9ydHMsIC5LaWRzIHsNCiAgYm9yZGVyLWxlZnQ6IHNvbGlkIDJweA0KfQ0KDQouTmV3cyB7DQogIGJvcmRlci1jb2xvcjogdG9tYXRvDQp9DQoNCi5Nb3ZpZSB7DQogIGJvcmRlci1jb2xvcjogcm95YWxibHVlOw0KfQ0KDQouU2VyaWVzIHsNCiAgYm9yZGVyLWNvbG9yOiBnb2xkOw0KfQ0KDQouU3BvcnRzIHsNCiAgYm9yZGVyLWNvbG9yOiB5ZWxsb3dncmVlbjsNCn0NCg0KLktpZHMgew0KICBib3JkZXItY29sb3I6IG1lZGl1bXB1cnBsZTsNCn0NCg0KLyogTG9hZGluZyAqLw0KI2xvYWRpbmcgew0KICBsZWZ0OiAwcHg7DQogIHRvcDogMHB4Ow0KICB6LWluZGV4OiAxMDAwMDsNCiAgcG9zaXRpb246IGFic29sdXRlOw0KICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsMCwwLCAwLjgpOw0KICBtYXJnaW46IGF1dG87DQogIHdpZHRoOiAxMDAlOw0KICBoZWlnaHQ6IDEwMCU7DQp9DQoNCg0KLmxvYWRlciB7DQogIGJvcmRlcjogNXB4IHNvbGlkIHRyYW5zcGFyZW50Ow0KICBib3JkZXItcmFkaXVzOiA1MCU7DQogIGJvcmRlci10b3A6IDVweCBzb2xpZCAjMDBFNkZGOw0KICBib3JkZXItYm90dG9tOiA1cHggc29saWQgIzAwRTZGRjsNCiAgd2lkdGg6IDUwcHg7DQogIGhlaWdodDogNTBweDsNCiAgLXdlYmtpdC1hbmltYXRpb246IHNwaW4gMS4ycyBsaW5lYXIgaW5maW5pdGU7DQogIGFuaW1hdGlvbjogc3BpbiAxLjJzIGxpbmVhciBpbmZpbml0ZTsNCg0KICBwb3NpdGlvbjogZml4ZWQ7DQogIG1hcmdpbjogYXV0bzsNCg0KICB0b3A6IDA7DQogIHJpZ2h0OiAwOw0KICBib3R0b206IDA7DQogIGxlZnQ6IDA7DQogIA0KfQ0KDQpALXdlYmtpdC1rZXlmcmFtZXMgc3BpbiB7DQogIDAlIHsgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTsgfQ0KICAxMDAlIHsgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpOyB9DQp9DQoNCkBrZXlmcmFtZXMgc3BpbiB7DQogIDAlIHsgdHJhbnNmb3JtOiByb3RhdGUoMGRlZyk7IH0NCiAgMTAwJSB7IHRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7IH0NCn0NCg==" - webUI["html/img/xmltv.png"] = "iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAAAXNSR0IArs4c6QAAAAlwSFlzAAAsSwAALEsBpT2WqQAABCRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IlhNUCBDb3JlIDUuNC4wIj4KICAgPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIgogICAgICAgICAgICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgICAgICAgICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyI+CiAgICAgICAgIDx0aWZmOlJlc29sdXRpb25Vbml0PjI8L3RpZmY6UmVzb2x1dGlvblVuaXQ+CiAgICAgICAgIDx0aWZmOkNvbXByZXNzaW9uPjU8L3RpZmY6Q29tcHJlc3Npb24+CiAgICAgICAgIDx0aWZmOlhSZXNvbHV0aW9uPjI4ODwvdGlmZjpYUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6T3JpZW50YXRpb24+MTwvdGlmZjpPcmllbnRhdGlvbj4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+Mjg4PC90aWZmOllSZXNvbHV0aW9uPgogICAgICAgICA8ZXhpZjpQaXhlbFhEaW1lbnNpb24+NTA8L2V4aWY6UGl4ZWxYRGltZW5zaW9uPgogICAgICAgICA8ZXhpZjpDb2xvclNwYWNlPjE8L2V4aWY6Q29sb3JTcGFjZT4KICAgICAgICAgPGV4aWY6UGl4ZWxZRGltZW5zaW9uPjUwPC9leGlmOlBpeGVsWURpbWVuc2lvbj4KICAgICAgICAgPGRjOnN1YmplY3Q+CiAgICAgICAgICAgIDxyZGY6QmFnLz4KICAgICAgICAgPC9kYzpzdWJqZWN0PgogICAgICAgICA8eG1wOk1vZGlmeURhdGU+MjAxOC0wNy0yOFQyMDowNzozMzwveG1wOk1vZGlmeURhdGU+CiAgICAgICAgIDx4bXA6Q3JlYXRvclRvb2w+UGl4ZWxtYXRvciAzLjM8L3htcDpDcmVhdG9yVG9vbD4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgIDwvcmRmOlJERj4KPC94OnhtcG1ldGE+Co6j9bsAAAGgSURBVGgF7VqxTsNADL0gYGEon8DOwsbAAH8BYmJn6cYIn8DC3h0+oixISFRiYYCJL0AwMMBAeK5w2rpV6uikxHfYknW98+vds18TK21DWGBlWR7CH+BfcEv2AzLP8HP42gLqkyUATuEp2PWEdQjF9ATs1zF/g29Mrxt+vVcUxR3xWxEktzFPJQmivsv8ZSI9DiQyVnxlIonwn6fpiczXpNuVVXH8O+a3Ys3y9NUyuf/NTTbEHZTjUlGSRzSiPhroUIENwB4AS/vS/susDwDhTpYBER9g7wHh5DWyibV9CiitCZbIafDEYUuJHQI3Nr/9ciWsjK6IFSWYhyvClbAyZqOIlYJG84jq7E1Ot97Zm+TinV1TrWwudk9EI3ebGFekzWprzspGEU2ySWCiOrs/s9dr7M/s9fVJJJrNXcsTsfaJc0WsKZINH+/sf1Jqvl1n1f2ZnStRN/pdq646XcSkIh9dkIg4s+IrE3nCpp8RG7f91ns+cCYR/LD4jcAZB42PN+A7/mcQ8ZxJhBYQvMJwBB/BKTFLVoLMC/wCfgyv7BesTKUC2LKM3wAAAABJRU5ErkJggg==" + webUI["html/css/screen.css"] = "bmF2IGltZyB7DQogIGRpc3BsYXk6IGJsb2NrOw0KICBtYXgtaGVpZ2h0OiAyMHB4Ow0KICBtYXgtd2lkdGg6IDIwcHg7DQogIGZsb2F0OiBsZWZ0Ow0KfQ0KDQpuYXYgcCB7DQogIHRleHQtYWxpZ246IGxlZnQ7DQogIHBhZGRpbmc6IDBweCAzMHB4Ow0KfQ0KDQojbGF5b3V0IHsNCiAgZGlzcGxheTogYmxvY2s7DQogIGhlaWdodDogMTAwJTsNCn0NCg0KDQoubGF5b3V0LWxlZnQgew0KICBkaXNwbGF5OiBibG9jazsNCiAgbWluLXdpZHRoOiAxNTBweDsNCiAgbWF4LXdpZHRoOiAyMCU7DQogIGJhY2tncm91bmQtY29sb3I6ICMxMTE7DQogIGhlaWdodDogaW5oZXJpdDsNCiAgZmxvYXQ6IGxlZnQ7DQp9DQoNCi5sYXlvdXQtcmlnaHQgew0KICBkaXNwbGF5OiBibG9jazsNCiAgYmFja2dyb3VuZC1jb2xvcjogIzQ0NDsNCn0NCg0KI21lbnUtd3JhcHBlciB7DQogIGhlaWdodDogMTAwJTsNCn0NCg0KDQojbG9nbyB7DQogIGRpc3BsYXk6IGJsb2NrOw0KICBtaW4td2lkdGg6IDE4MHB4Ow0KICB3aWR0aDogMTAwJTsNCiAgaGVpZ2h0OiAxMDBweDsNCiAgYmFja2dyb3VuZDogdXJsKCIuLi9pbWcvbG9nb193XzYwMHgyMDAucG5nIik7DQogIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7DQogIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjsgDQogIGJhY2tncm91bmQtc2l6ZTogMTAwJTsNCn0NCg0KDQojcGFnZSB7DQogIG1heC13aWR0aDogOTUwcHg7DQogIG1hcmdpbjogYXV0bzsNCiAgYmFja2dyb3VuZC1jb2xvcjogIzQ0NDsNCg0KICAvKg0KICBoZWlnaHQ6IC13ZWJraXQtY2FsYygxMDAlIC0gMTMwcHgpOw0KICBoZWlnaHQ6IC1tb3otY2FsYygxMDAlIC0gMTMwcHgpOw0KICBoZWlnaHQ6IGNhbGMoMTAwJSAtIDEzMHB4KTsNCiAgKi8NCiAgDQogIG1pbi1oZWlnaHQ6IC13ZWJraXQtY2FsYygxMDAlIC0gMTIwcHgpOw0KICBtaW4taGVpZ2h0OiAtbW96LWNhbGMoMTAwJSAtIDEyMHB4KTsNCiAgbWluLWhlaWdodDogY2FsYygxMDAlIC0gMTIwcHgpOw0KICANCiAgDQogIGJveC1zaGFkb3c6IDBweCA1cHggNXB4ICMyMjI7DQogIA0KfQ0KDQojdWlTZXR0aW5nIHsNCiAgZmxvYXQ6IHJpZ2h0Ow0KICBtYXJnaW4tcmlnaHQ6IDI1cHg7DQp9DQoNCiNib3ggaW5wdXRbdHlwZT10ZXh0XSwgI2JveCBpbnB1dFt0eXBlPXBhc3N3b3JkXSB7DQogIHdpZHRoOiAtd2Via2l0LWNhbGMoMTAwJSAtIDIwcHgpOw0KICB3aWR0aDogLW1vei1jYWxjKDEwMCUgLSAyMHB4KTsNCiAgd2lkdGg6IGNhbGMoMTAwJSAtIDIwcHgpOw0KfQ0KDQojYm94IGlucHV0W3R5cGU9c3VibWl0XXsNCiAgbWFyZ2luOiA1MHB4IGF1dG87DQp9DQoNCiNzZXR0aW5ncyB7DQogIGRpc3BsYXk6IGJsb2NrOw0KICBwYWRkaW5nOiAxMHB4IDEwcHg7DQp9DQoNCiNzZXR0aW5ncyBoNSB7DQogIG1hcmdpbjogNTBweCAwcHggMTBweCAwcHg7DQp9DQoNCiNjb250ZW50LWludGVyYWN0aW9uIC5zZWFyY2ggew0KICB3aWR0aDogMjAwcHg7DQogIGJvcmRlcjogMXB4IHNvbGlkICMwMDA7DQogIHBhZGRpbmc6IDlweDsNCiAgYmFja2dyb3VuZC1jb2xvcjogIzMzMzsNCiAgbWFyZ2luOiAxMHB4Ow0KICBmbG9hdDogcmlnaHQ7DQogIGJvcmRlci1yYWRpdXM6IDNweDsNCg0KfQ0KDQojbXlTdHJlYW1zIHsNCiAgcG9zaXRpb246IGZpeGVkOw0KICBib3R0b206IDBweDsNCiAgYmFja2dyb3VuZC1jb2xvcjogIzExMTsNCiAgd2lkdGg6IDEwMCU7DQogIG1heC13aWR0aDogOTUwcHg7DQoNCiAgLyoNCiAgbWF4LWhlaWdodDogMTAwcHg7DQogICovDQogIG1hcmdpbi1ib3R0b206IDBweDsNCn0NCg0KI215U3RyZWFtcyBpbWcgew0KICB3aWR0aDogNCU7DQogIHBhZGRpbmc6IDJweCA1cHg7DQogIGN1cnNvcjogcG9pbnRlcjsNCiAgZmxvYXQ6IHJpZ2h0Ow0KfQ0KDQojc2V0dGluZ3MtZm9vdGVyIHsNCg0KfQ0KDQoNCi8qIFdpemFyZCovDQojYm94IHsNCiAgYmFja2dyb3VuZC1jb2xvcjogIzQ0NDsNCiAgbWluLWhlaWdodDogNDAwcHg7DQogIA0KICBkaXNwbGF5OiBmbGV4Ow0KICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOw0KICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47DQp9DQoNCiNib3ggcHsNCiAgcGFkZGluZzogMTBweCAwcHg7DQp9DQoNCiNib3gtZm9vdGVyIHsNCiAgbWFyZ2luLXRvcDogYXV0bzsNCn0NCg0KI2JveC1mb290ZXIgew0KICBtYXJnaW46IGF1dG87DQogIHBhZGRpbmc6IDEwcHg7DQp9DQoNCiNoZWFkbGluZSB7DQogIGJhY2tncm91bmQtY29sb3I6ICMyMjI7DQogIGJvcmRlci1ib3R0b206IHNvbGlkIDJweCAjMjIyOw0KICB0cmFuc2l0aW9uOiBhbGwgMC41czsNCiAgcGFkZGluZzogMTBweCAwcHg7DQogIGRpc3BsYXk6IGJsb2NrOw0KfQ0KDQojY29udGVudCB7DQogIGRpc3BsYXk6IGJsb2NrOw0KICBvdmVyZmxvdzogYXV0bzsNCiAgcGFkZGluZzogMTBweDsNCn0NCg0KLyogLS0tICovDQoNCg0KI2NsaWVudEluZm8sICNhY3RpdmVTdHJlYW1zLCAjaW5hY3RpdmVTdHJlYW1zIHsNCiAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZTsNCiAgZGlzcGxheTogYmxvY2s7DQogIGZvbnQtc2l6ZTogOXB4Ow0KICBiYWNrZ3JvdW5kLWNvbG9yOiAjMTExOw0KICBjb2xvcjogIzAwRTZGRjsNCiAgYm9yZGVyLWJvdHRvbTogc29saWQgMHB4OzsNCiAgcGFkZGluZzogMHB4Ow0KICBsZXR0ZXItc3BhY2luZzogMXB4Ow0KICBvdmVyZmxvdy14OiBoaWRkZW47DQogIGJvcmRlci1zcGFjaW5nOiA0cHggNHB4Ow0KICBib3JkZXItYm90dG9tOiBzb2xpZCAxcHggIzQ0NDsNCn0NCg0KI215U3RyZWFtc0JveCB7DQogIHBvc2l0aW9uOiByZWxhdGl2ZTsNCiAgcGFkZGluZzogMHB4Ow0KICAvKmhlaWdodDogMTAwcHg7Ki8NCiAgbWF4LWhlaWdodDogMTUwcHg7DQogIGJhY2tncm91bmQtY29sb3I6ICMxMTE7DQogIGNvbG9yOiB3aGl0ZTsNCiAgZGlzcGxheTpmbGV4Ow0KICBqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyOw0KICBhbGlnbi1pdGVtczpjZW50ZXI7DQp9DQoNCiNvcGVuU3RyZWFtcyB7DQogIHdpZHRoOiAyMHB4Ow0KICBoZWlnaHQ6IDIwcHg7DQogIGN1cnNvcjogcG9pbnRlcjsNCiAgZmxvYXQ6IHJpZ2h0Ow0KICBwb3NpdGlvbjogYWJzb2x1dGU7DQogIHJpZ2h0OiAwcHg7DQogIGJvdHRvbTogMHB4Ow0KICBiYWNrZ3JvdW5kOiB1cmwoIi4uL2ltZy90b3VjaC5wbmciKTsNCiAgYmFja2dyb3VuZC1jb2xvcjogIzExMTsNCiAgDQogIGJhY2tncm91bmQtcG9zaXRpb246IGJvdHRvbSByaWdodDsgIA0KfQ0KDQojYWxsU3RyZWFtcyB7DQogIHdpZHRoOiAxMDAlOw0KICBoZWlnaHQ6IDEwMCU7DQogIHBhZGRpbmc6IDJweDsgICAgIA0KfQ0KDQojYWN0aXZlU3RyZWFtcywgI2luYWN0aXZlU3RyZWFtcyB7DQogIG92ZXJmbG93LXk6IHNjcm9sbDsNCiAgd2lkdGg6IDUwJTsNCiAgbWF4LWhlaWdodDogMTAwcHg7DQogIGZsb2F0OiBsZWZ0Ow0KfQ0KDQojYWN0aXZlU3RyZWFtcyAudGRLZXksICNpbmFjdGl2ZVN0cmVhbXMgLnRkS2V5IHsNCiAgd2lkdGg6IDc1cHg7DQp9DQoNCg0KDQoNCiNpbmFjdGl2ZVN0cmVhbXMgLnRkS2V5IHsNCiAgY29sb3I6IHJlZDsNCn0NCg0KI2NsaWVudEluZm8gLnRkVmFsLCAjbG9nSW5mbyAudGRWYWwsICNhY3RpdmVTdHJlYW1zIC50ZFZhbCwgI2luYWN0aXZlU3RyZWFtcyAudGRWYWwsICNtYXBwaW5nSW5mbyAudGRWYWx7DQogIGNvbG9yOiAjYWFhOw0KICB3aGl0ZS1zcGFjZTogaW5oZXJpdDsNCn0NCg0KI2JveC13cmFwcGVyIHsNCiAgZGlzcGxheTogaW5saW5lLWJsb2NrOw0KICB3aWR0aDogMTAwJTsNCiAgDQogIG92ZXJmbG93LXk6IHNjcm9sbDsNCn0NCg0KI2NvbnRlbnRfdGFibGUsICNtYXBwaW5nLWRldGFpbC10YWJsZSwgI2NvbnRlbnRfdGFibGUgew0KICBkaXNwbGF5OiB0YWJsZTsNCiAgDQogIGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7DQogIG92ZXJmbG93LXk6IHNjcm9sbDsNCiAgd2lkdGg6IDEwMCU7DQp9DQoNCg0KI2NvbnRlbnRfdGFibGUgLmNvbnRlbnRfdGFibGVfaGVhZGVyIHsNCiAgYmFja2dyb3VuZC1jb2xvcjogIzMzMzsNCiAgaGVpZ2h0OiA1MHB4Ow0KICBib3JkZXItYm90dG9tOiBzb2xpZCAxcHggIzExMTsNCiAgYm9yZGVyLWxlZnQ6IHNvbGlkIDNweCAjMzMzOw0KICBjdXJzb3I6IGF1dG87DQoNCn0NCg0KDQp0Ym9keSB7DQogIHdpZHRoOiAxMDAlOw0KfQ0KDQoNCi50YWJsZUVsbGlwc2lzIHsNCiAgd2lkdGg6IDE1MHB4Ow0KICBvdmVyZmxvdzogaGlkZGVuOw0KICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsNCiAgd2hpdGUtc3BhY2U6IG5vd3JhcDsNCn0NCg0KI2NvbnRlbnRfdGFibGUgaW1nIHsNCiAgZGlzcGxheTogYmxvY2s7DQogIG1heC1oZWlnaHQ6IDI4cHg7DQogIG1hcmdpbi1sZWZ0OiBhdXRvOw0KICBtYXJnaW4tcmlnaHQ6IGF1dG87DQogIG1heC13aWR0aDogMzBweDsNCn0NCg0KI2NvbnRlbnRfdGFibGUgdHJ7DQogIGJvcmRlci1sZWZ0OiBzb2xpZCAzcHggNDQ0Ow0KICBib3JkZXItYm90dG9tOiBzb2xpZCAxcHggIzMzMzsNCiAgY3Vyc29yOiBwb2ludGVyOw0KfQ0KDQojY29udGVudF90YWJsZSB0cjpob3ZlciB7DQogIGJhY2tncm91bmQtY29sb3I6ICMzMzM7DQp9DQoNCiNjb250ZW50X3RhYmxlIHRkIHsNCg0KICBwYWRkaW5nOiAwcHggMnB4Ow0KfQ0KDQojY29udGVudF90YWJsZSBpbnB1dFt0eXBlPXRleHRdew0KICB3aWR0aDogODAlOw0KICBtaW4td2lkdGg6IDM1cHg7DQogIG1heC13aWR0aDogNjBweDsNCiAgYm9yZGVyOiAwcHg7DQogIGJhY2tncm91bmQtY29sb3I6ICMzMzM7DQogIG1hcmdpbi1sZWZ0OiA1cHg7DQogIHRleHQtYWxpZ246IGxlZnQ7DQp9DQoNCiNjb250ZW50X3RhYmxlIGlucHV0W3R5cGU9Y2hlY2tib3hdew0KICBtYXgtd2lkdGg6IDI1cHg7DQogIG1hcmdpbjogYXV0bzsNCn0NCg0KDQouc2hvd0J1bGsgew0KICBkaXNwbGF5OiBibG9jazsNCn0NCg0KLmhpZGVCdWxrIHsNCiAgZGlzcGxheTogbm9uZTsNCn0NCg0KLm5vQnVsayB7DQoNCn0NCg0KI2NvbnRlbnRfdGFibGUgdHIuYWN0aXZlRVBHew0KICBib3JkZXItbGVmdDogc29saWQgM3B4IGxhd25ncmVlbjsNCn0NCg0KI2NvbnRlbnRfdGFibGUgdHIubm90QWN0aXZlRVBHew0KICBib3JkZXItbGVmdDogc29saWQgM3B4IHJlZDsNCn0NCg0KDQojbG9nU2NyZWVuIHB7DQogIHdoaXRlLXNwYWNlOiBwcmU7DQogIGZvbnQtc2l6ZTogMTBweDsNCiAgLyoNCiAgbGluZS1oZWlnaHQ6IDEuNmVtOw0KICBmb250LWZhbWlseTogIkFyaWFsIiwgc2Fucy1zZXJpZjsNCiAgKi8NCiAgbGV0dGVyLXNwYWNpbmc6IDFweDsNCiAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZTsgDQogIGZvbnQtc2l6ZTogMTJweDsgDQogIGZvbnQtc3R5bGU6IG5vcm1hbDsgDQogIGZvbnQtdmFyaWFudDogbm9ybWFsOyANCiAgbGluZS1oZWlnaHQ6IDEuNmVtOyANCn0NCg0KI3BvcHVwIHsNCiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjQpOw0KICBwb3NpdGlvbjogZml4ZWQ7DQogIGxlZnQ6IDBweDsNCiAgd2lkdGg6IDEwMCU7DQogIHotaW5kZXg6IDEwMDsNCiAgaGVpZ2h0OiAxMDAlOw0KfQ0KDQojbWFwcGluZy1kZXRhaWwsICN1c2VyLWRldGFpbCwgI2ZpbGUtZGV0YWlsLCAjcG9wdXAtY3VzdG9tIHsNCiAgYm94LXNoYWRvdzogMHB4IDVweCA0MHB4ICMwMDA7DQogIG1hcmdpbi10b3A6IDIwcHg7DQogIG1hcmdpbi1sZWZ0OiBhdXRvOw0KICBtYXJnaW4tcmlnaHQ6IGF1dG87DQogIA0KICBtYXgtd2lkdGg6IDYwMHB4Ow0KICBiYWNrZ3JvdW5kLWNvbG9yOiAjMjIyOw0KICBwYWRkaW5nOiAxMHB4Ow0KICBvdmVyZmxvdzphdXRvOw0KfQ0KDQojcG9wdXAtY3VzdG9tIGgzIHsNCiAgdGV4dC1hbGlnbjogY2VudGVyOw0KfQ0KDQojZmlsZS1kZXRhaWwgaW5wdXRbdHlwZT10ZXh0XSB7DQogIHdpZHRoOiAtd2Via2l0LWNhbGMoMTAwJSAtIDIwcHgpOw0KICB3aWR0aDogLW1vei1jYWxjKDEwMCUgLSAyMHB4KTsNCiAgd2lkdGg6IGNhbGMoMTAwJSAtIDIwcHgpOw0KfQ0KDQojbWFwcGluZy1kZXRhaWwgaW1nIHsNCiAgZGlzcGxheTogYmxvY2s7DQogIG1heC1oZWlnaHQ6IDMwcHg7DQogIG1hcmdpbi1ib3R0b206IDIwcHg7DQogIG1hcmdpbi1sZWZ0OiBhdXRvOw0KICBtYXJnaW4tcmlnaHQ6IGF1dG87DQp9DQoNCiNwb3B1cC1jdXN0b20gaW5wdXRbdHlwZT10ZXh0XSwgI3BvcHVwLWN1c3RvbSBpbnB1dFt0eXBlPXBhc3N3b3JkXSwgI21hcHBpbmctZGV0YWlsIGlucHV0W3R5cGU9dGV4dF0sICNjb250ZW50X3NldHRpbmdzIGlucHV0W3R5cGU9dGV4dF0sICNjb250ZW50X3NldHRpbmdzIGlucHV0W3R5cGU9cGFzc3dvcmRdew0KICBib3JkZXI6IHNvbGlkIDFweDsNCiAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDsNCiAgYmFja2dyb3VuZC1jb2xvcjogIzMzMzsNCiAgdGV4dC1hbGlnbjogbGVmdDsNCiAgd2lkdGg6IC13ZWJraXQtY2FsYygxMDAlIC0gMjBweCk7DQogIHdpZHRoOiAgICAtbW96LWNhbGMoMTAwJSAtIDIwcHgpOw0KICB3aWR0aDogICAgICAgICBjYWxjKDEwMCUgLSAyMHB4KTsNCn0NCg0KI3BvcHVwLWN1c3RvbSBpbnB1dFt0eXBlPXRleHRdLm5vdEF2YWlsYWJsZSB7DQogIGJvcmRlci1jb2xvcjogcmVkOw0KICBjb2xvcjogIzY2NjsNCiAgY3Vyc29yOiBub3QtYWxsb3dlZDsNCn0NCg0KI21hcHBpbmctZGV0YWlsLXRhYmxlLCAjdXNlci1kZXRhaWwtdGFibGUgew0KICBkaXNwbGF5OiBpbmxpbmUtdGFibGU7DQogIHdpZHRoOiAxMDAlOw0KfQ0KDQojcG9wdXAtY3VzdG9tIHRhYmxlLCAjY29udGVudF9zZXR0aW5ncyB0YWJsZSB7DQogIGRpc3BsYXk6IGlubGluZS10YWJsZTsNCiAgdGFibGUtbGF5b3V0OiBmaXhlZDsNCiAgd2lkdGg6IDEwMCU7DQp9DQoNCg0KI21hcHBpbmctZGV0YWlsLXRhYmxlIHRkLCAjdXNlci1kZXRhaWwtdGFibGUgdGQgew0KICBwYWRkaW5nOiAxMHB4IDBweDsNCg0KfQ0KDQojbWFwcGluZy1kZXRhaWwtdGFibGUgdGQubGVmdCwgI3VzZXItZGV0YWlsLXRhYmxlIHRkLmxlZnQsICNwb3B1cC1jdXN0b20gdGQubGVmdCB7DQogIHdpZHRoOiAzOCU7DQp9DQoNCi5pbnRlcmFjdGlvbiwgI2ludGVyYWN0aW9uIHsNCiAgbWFyZ2luLXRvcDogMjBweDsNCiAgZGlzcGxheTogaW5saW5lLWZsZXg7DQogIGZsb2F0OiByaWdodDsNCn0NCg0KLmludGVyYWN0aW9uIGlucHV0W3R5cGU9YnV0dG9uXSwgLmludGVyYWN0aW9uIGlucHV0W3R5cGU9c3VibWl0XSB7DQogIGJhY2tncm91bmQtY29sb3I6ICMwMDA7DQogIG1pbi13aWR0aDogMTAwcHg7DQogIG1hcmdpbjogMHB4IDEwcHg7DQogIHRleHQtYWxpZ246IGNlbnRlcjsNCn0NCg0KI25vdGlmaWNhdGlvbiB7DQogIGRpc3BsYXk6IGJsb2NrOw0KICBwb3NpdGlvbjogZml4ZWQ7DQogIHJpZ2h0OiAwcHg7DQogIGhlaWdodDogMTAwJTsNCiAgd2lkdGg6IDI1MHB4Ow0KICANCiAgYmFja2dyb3VuZC1jb2xvcjogIzIyMjsNCiAgYm94LXNoYWRvdzogMHB4IDBweCAyMHB4ICMwMDA7DQp9DQoNCiNub3RpZmljYXRpb24gaDUgew0KICBiYWNrZ3JvdW5kLWNvbG9yOiAjMTIxMjEyOw0KICBwYWRkaW5nOiA1cHggMTBweCA1cHggMTBweDsNCn0NCg0KI25vdGlmaWNhdGlvbiBwcmUgew0KICBwYWRkaW5nOiAwcHggMTBweCAwcHggMTBweDsNCn0NCg0KI25vdGlmaWNhdGlvbiBwIHsNCiAgZm9udC1zaXplOiAxMCBweDsNCiAgbWFyZ2luOiAwcHg7DQogIHBhZGRpbmc6IDBweCAxMHB4IDVweCAxMHB4Ow0KfQ0KDQojbm90aWZpY2F0aW9uIC5lbGVtZW50IHsNCiAgLypwYWRkaW5nOiAwcHggNXB4OyovDQogIG1hcmdpbjogNXB4IDVweDsNCiAgYm9yZGVyLXJhZGl1czogNXB4Ow0KICBiYWNrZ3JvdW5kLWNvbG9yOiAjMTgxODE4Ow0KICBib3JkZXItbGVmdDogMTBweCBzb2xpZCBncmVlbjsNCn0NCg0KDQpAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDYyMHB4KXsNCiAgYm9keSB7DQogICAgd2lkdGg6IDEwMCU7DQogICAgYmFja2dyb3VuZC1jb2xvcjogIzQ0NDsNCiAgfQ0KDQogIGgxIHsNCiAgICBmb250LXNpemU6IDI2cHg7DQogICAgbGV0dGVyLXNwYWNpbmc6IDNweDsNCiAgfQ0KDQogIG5hdiBwIHsNCiAgICBkaXNwbGF5OiBibG9jazsNCiAgfQ0KDQoNCg0KICAjaGVhZGVyX2NvbmZpZyB7DQogICAgZGlzcGxheTogYmxvY2s7DQogICAgaGVpZ2h0OiAxMDBweDsNCiAgICBiYWNrZ3JvdW5kOiB1cmwoIi4uL2ltZy9sb2dvX3dfNjAweDIwMC5wbmciKTsNCiAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0Ow0KICAgIA0KICAgIGJhY2tncm91bmQtc2l6ZTogMzAwcHggMTAwcHg7DQogIH0NCg0KICAjc2NyZWVuTG9nIHsNCiAgICBtYXJnaW4tbGVmdDogMzAwcHg7DQoNCiAgICB0cmFuc2l0aW9uOiBub25lOw0KICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50Ow0KICAgIGJvcmRlci1ib3R0b206IHNvbGlkIDFweCB0cmFuc3BhcmVudDsNCiAgICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAjMjIyOw0KICB9DQoNCiAgI3NldHRpbmdzIHsNCiAgICAvKg0KICAgIGhlaWdodDogLXdlYmtpdC1jYWxjKDEwMCUgLSAxMDBweCk7DQogICAgaGVpZ2h0OiAtbW96LWNhbGMoMTAwJSAtIDEwMHB4KTsNCiAgICBoZWlnaHQ6IGNhbGMoMTAwJSAtIDEwMHB4KTsNCiAgICAqLw0KICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsNCiAgICBvdmVyZmxvdzogYXV0bzsNCiAgfQ0KDQoNCiAgLnNjcmVlbkxvZ0hpZGRlbiB7DQogICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMHB4LCAwcHgpOw0KICB9DQoNCg0KICAjYm94IHsNCiAgICBkaXNwbGF5OiBibG9jazsNCiAgICBtaW4taGVpZ2h0OiA1MDBweDsNCiAgICBtYXgtd2lkdGg6IDUwMHB4Ow0KICAgIG1hcmdpbjogMTBweCBhdXRvOw0KICAgIGJhY2tncm91bmQtY29sb3I6ICM0NDQ7DQogICAgYm94LXNoYWRvdzogMHB4IDVweCA1cHggIzIyMjsNCg0KICAgIGRpc3BsYXk6IGZsZXg7DQogICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsNCiAgfQ0KDQogICNzZXR0aW5ncywgI3NldHRpbmdzLWZvb3RlciB7DQogICAgDQogIH0NCn0NCg==" + webUI["html/img/filter.png"] = "iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAAAXNSR0IArs4c6QAAAAlwSFlzAAAsSwAALEsBpT2WqQAABCRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IlhNUCBDb3JlIDUuNC4wIj4KICAgPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIgogICAgICAgICAgICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgICAgICAgICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyI+CiAgICAgICAgIDx0aWZmOlJlc29sdXRpb25Vbml0PjI8L3RpZmY6UmVzb2x1dGlvblVuaXQ+CiAgICAgICAgIDx0aWZmOkNvbXByZXNzaW9uPjU8L3RpZmY6Q29tcHJlc3Npb24+CiAgICAgICAgIDx0aWZmOlhSZXNvbHV0aW9uPjI4ODwvdGlmZjpYUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6T3JpZW50YXRpb24+MTwvdGlmZjpPcmllbnRhdGlvbj4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+Mjg4PC90aWZmOllSZXNvbHV0aW9uPgogICAgICAgICA8ZXhpZjpQaXhlbFhEaW1lbnNpb24+NTA8L2V4aWY6UGl4ZWxYRGltZW5zaW9uPgogICAgICAgICA8ZXhpZjpDb2xvclNwYWNlPjE8L2V4aWY6Q29sb3JTcGFjZT4KICAgICAgICAgPGV4aWY6UGl4ZWxZRGltZW5zaW9uPjUwPC9leGlmOlBpeGVsWURpbWVuc2lvbj4KICAgICAgICAgPGRjOnN1YmplY3Q+CiAgICAgICAgICAgIDxyZGY6QmFnLz4KICAgICAgICAgPC9kYzpzdWJqZWN0PgogICAgICAgICA8eG1wOk1vZGlmeURhdGU+MjAxOC0wNy0yOFQxOTowNzo2OTwveG1wOk1vZGlmeURhdGU+CiAgICAgICAgIDx4bXA6Q3JlYXRvclRvb2w+UGl4ZWxtYXRvciAzLjM8L3htcDpDcmVhdG9yVG9vbD4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgIDwvcmRmOlJERj4KPC94OnhtcG1ldGE+Cs038OQAAAOISURBVGgF5ZpLSBVRGMfvvfmqCKKiKCqKtE3SQ8haJJm1ctPCZYHrFhXtohcUBLVsU1BRBJKLXpsSKs1aCL1oUUhvMgIloodZKmLZ72+OzNVx7jzOXGfqg/89Z875zv/7f35n7px7vanUP2JptzyGhoYKmK8GW0EZmA/mgW7wHrwDN0BTOp0epPVtxBBnLdgIVoE5YBboBR2gDTTA/5DWn0FeDPaBz8CLdeF0EBR5jYRvKbgABoAXa8Opwit/CudK8NoLs4PPM8ZyBsNnB/jpsD7X0C8cjgDXnaQkqkEPCGMSuGWivxxzx8OQj6xtpHWuPhPloHfEMWzTD0HN2GQY2xuW2Lb+/Fh+VaIQPLE5meh+gmSxFYz+BjBogtjGscfiH26Z2GmbNNltVQAIpwDdP6ZNO2iRYqTpZGhfgWUaiMC2w1kCzkbALcqLvDVvUyK6MW9HFES0b8BvsFwXEZi4F+iBtykCcjtlqf0igr52VJ1eqiIgzzdlrRIZfWfJd3SD8ZbqHvkB4XSDpJNB9V0VcX/cT4Ys/zEzSuSj/3WxW9GpRD7ETpZ/QcOJ6LyfdHugitxNehbob9G7lo4PXWBmQhPqQ/fsDOeUfjqNCU1Csi+TQ5+2luzc3yaRr6elevQZwhZr4bomYam0U41yabYqov5hvSTMjlp6RyuiAarSTLPZmox5246+lVREx/isiuh6NxhUJwF2yEpCWu1bK8WEsjyRgCSa0XrVrjNra2mC7TWD5ilYAuJoA4jSlnppF5dVEU3g0ENTD4b3nsZiZsfGJuGqj8qY+CINGqP2GLZCJ+HjtpblxAJ9k3cPrLfGJrnVUaSCarxw0jFua1lOLNBerANx+byya6IkLM2uLZWpAl6/Mcc1EjvjKtLrJNLqI5HnjfQ+bsVeteb0g2y/t7hGvd7CNjenOL8OkJ40KtOdTF+Cl/nV6Mkf4gxocI9vZPYLLKs9iQrqRIACcM2IXGeSboYrg+rztY5ARaDJWUeo0W+sXudLTFhnApaAW6FkZy/+yuXasLoCrSfwVHAnW0+gK93YawKJMLUIAdNAKwhqnSxcYUpPKB6EBE2mg7VR///EX24jybTQerXnOC70FyVP3gjTPXPTQyaP8NFPNeJrCNTPP667JKOq6VNo/A2hes5ccUjmEmPmDoD5+FMgWCcA+3FG57QJP//kQ1PgGBIOToEDgUn+t4V/AJeGknwARIKLAAAAAElFTkSuQmCC" + webUI["html/js/menu_ts.js"] = "Y2xhc3MgTWFpbk1lbnUgew0KICAgIGNvbnN0cnVjdG9yKCkgew0KICAgICAgICB0aGlzLkRvY3VtZW50SUQgPSAibWFpbi1tZW51IjsNCiAgICAgICAgdGhpcy5IVE1MVGFnID0gIkxJIjsNCiAgICAgICAgdGhpcy5JbWFnZVBhdGggPSAiaW1nLyI7DQogICAgfQ0KICAgIGNyZWF0ZUlNRyhzcmMpIHsNCiAgICAgICAgbGV0IGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJJTUciKTsNCiAgICAgICAgZWxlbWVudC5zZXRBdHRyaWJ1dGUoInNyYyIsIHRoaXMuSW1hZ2VQYXRoICsgc3JjKTsNCiAgICAgICAgcmV0dXJuIGVsZW1lbnQ7DQogICAgfQ0KICAgIGNyZWF0ZVZhbHVlKHZhbHVlKSB7DQogICAgICAgIGxldCBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiUCIpOw0KICAgICAgICBlbGVtZW50LmlubmVySFRNTCA9IHZhbHVlOw0KICAgICAgICByZXR1cm4gZWxlbWVudDsNCiAgICB9DQp9DQpjbGFzcyBNYWluTWVudUl0ZW0gZXh0ZW5kcyBNYWluTWVudSB7DQogICAgY29uc3RydWN0b3IobWVudUtleSwgdmFsdWUsIGltYWdlLCBoZWFkbGluZSkgew0KICAgICAgICBzdXBlcigpOw0KICAgICAgICB0aGlzLm1lbnVLZXkgPSBtZW51S2V5Ow0KICAgICAgICB0aGlzLnZhbHVlID0gdmFsdWU7DQogICAgICAgIHRoaXMuaW1nU3JjID0gaW1hZ2U7DQogICAgICAgIHRoaXMuaGVhZGxpbmUgPSBoZWFkbGluZTsNCiAgICB9DQogICAgY3JlYXRlSXRlbSgpIHsNCiAgICAgICAgbGV0IGl0ZW0gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJMSSIpOw0KICAgICAgICBpdGVtLnNldEF0dHJpYnV0ZSgib25jbGljayIsICJqYXZhc2NyaXB0OiBvcGVuVGhpc01lbnUodGhpcykiKTsNCiAgICAgICAgaXRlbS5zZXRBdHRyaWJ1dGUoImlkIiwgdGhpcy5pZCk7DQogICAgICAgIGxldCBpbWcgPSB0aGlzLmNyZWF0ZUlNRyh0aGlzLmltZ1NyYyk7DQogICAgICAgIGxldCB2YWx1ZSA9IHRoaXMuY3JlYXRlVmFsdWUodGhpcy52YWx1ZSk7DQogICAgICAgIGl0ZW0uYXBwZW5kQ2hpbGQoaW1nKTsNCiAgICAgICAgaXRlbS5hcHBlbmRDaGlsZCh2YWx1ZSk7DQogICAgICAgIGxldCBkb2MgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCh0aGlzLkRvY3VtZW50SUQpOw0KICAgICAgICBkb2MuYXBwZW5kQ2hpbGQoaXRlbSk7DQogICAgICAgIHN3aXRjaCAodGhpcy5tZW51S2V5KSB7DQogICAgICAgICAgICBjYXNlICJwbGF5bGlzdCI6DQogICAgICAgICAgICAgICAgdGhpcy50YWJsZUhlYWRlciA9IFsie3sucGxheWxpc3QudGFibGUucGxheWxpc3R9fSIsICJ7ey5wbGF5bGlzdC50YWJsZS50dW5lcn19IiwgInt7LnBsYXlsaXN0LnRhYmxlLmxhc3RVcGRhdGV9fSIsICJ7ey5wbGF5bGlzdC50YWJsZS5hdmFpbGFiaWxpdHl9fSAlIiwgInt7LnBsYXlsaXN0LnRhYmxlLnR5cGV9fSIsICJ7ey5wbGF5bGlzdC50YWJsZS5zdHJlYW1zfX0iLCAie3sucGxheWxpc3QudGFibGUuZ3JvdXBUaXRsZX19ICUiLCAie3sucGxheWxpc3QudGFibGUudHZnSUR9fSAlIiwgInt7LnBsYXlsaXN0LnRhYmxlLnVuaXF1ZUlEfX0gJSJdOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAieG1sdHYiOg0KICAgICAgICAgICAgICAgIHRoaXMudGFibGVIZWFkZXIgPSBbInt7LnhtbHR2LnRhYmxlLmd1aWRlfX0iLCAie3sueG1sdHYudGFibGUubGFzdFVwZGF0ZX19IiwgInt7LnhtbHR2LnRhYmxlLmF2YWlsYWJpbGl0eX19ICUiLCAie3sueG1sdHYudGFibGUuY2hhbm5lbHN9fSIsICJ7ey54bWx0di50YWJsZS5wcm9ncmFtc319Il07DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJmaWx0ZXIiOg0KICAgICAgICAgICAgICAgIHRoaXMudGFibGVIZWFkZXIgPSBbInt7LmZpbHRlci50YWJsZS5uYW1lfX0iLCAie3suZmlsdGVyLnRhYmxlLnR5cGV9fSIsICJ7ey5maWx0ZXIudGFibGUuZmlsdGVyfX0iXTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInVzZXJzIjoNCiAgICAgICAgICAgICAgICB0aGlzLnRhYmxlSGVhZGVyID0gWyJ7ey51c2Vycy50YWJsZS51c2VybmFtZX19IiwgInt7LnVzZXJzLnRhYmxlLnBhc3N3b3JkfX0iLCAie3sudXNlcnMudGFibGUud2VifX0iLCAie3sudXNlcnMudGFibGUucG1zfX0iLCAie3sudXNlcnMudGFibGUubTN1fX0iLCAie3sudXNlcnMudGFibGUueG1sfX0iLCAie3sudXNlcnMudGFibGUuYXBpfX0iXTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgIm1hcHBpbmciOg0KICAgICAgICAgICAgICAgIHRoaXMudGFibGVIZWFkZXIgPSBbIkJVTEsiLCAie3subWFwcGluZy50YWJsZS5jaE5vfX0iLCAie3subWFwcGluZy50YWJsZS5sb2dvfX0iLCAie3subWFwcGluZy50YWJsZS5jaGFubmVsTmFtZX19IiwgInt7Lm1hcHBpbmcudGFibGUucGxheWxpc3R9fSIsICJ7ey5tYXBwaW5nLnRhYmxlLmdyb3VwVGl0bGV9fSIsICJ7ey5tYXBwaW5nLnRhYmxlLnhtbHR2RmlsZX19IiwgInt7Lm1hcHBpbmcudGFibGUueG1sdHZJRH19IiwgInt7Lm1hcHBpbmcudGFibGUudGltZXNoaWZ0fX0iXTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgfQ0KICAgICAgICAvL2NvbnNvbGUubG9nKHRoaXMubWVudUtleSwgdGhpcy50YWJsZUhlYWRlcik7DQogICAgfQ0KfQ0KY2xhc3MgQ29udGVudCB7DQogICAgY29uc3RydWN0b3IoKSB7DQogICAgICAgIHRoaXMuRG9jdW1lbnRJRCA9ICJjb250ZW50IjsNCiAgICAgICAgdGhpcy5UYWJsZUlEID0gImNvbnRlbnRfdGFibGUiOw0KICAgICAgICB0aGlzLmhlYWRlckNsYXNzID0gImNvbnRlbnRfdGFibGVfaGVhZGVyIjsNCiAgICAgICAgdGhpcy5pbnRlcmFjdGlvbklEID0gImNvbnRlbnQtaW50ZXJhY3Rpb24iOw0KICAgIH0NCiAgICBjcmVhdGVIZWFkbGluZSh2YWx1ZSkgew0KICAgICAgICBsZXQgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIkgzIik7DQogICAgICAgIGVsZW1lbnQuaW5uZXJIVE1MID0gdmFsdWU7DQogICAgICAgIHJldHVybiBlbGVtZW50Ow0KICAgIH0NCiAgICBjcmVhdGVIUigpIHsNCiAgICAgICAgcmV0dXJuIGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIkhSIik7DQogICAgfQ0KICAgIGNyZWF0ZUludGVyYWN0aW9uKCkgew0KICAgICAgICBsZXQgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIkRJViIpOw0KICAgICAgICBlbGVtZW50LnNldEF0dHJpYnV0ZSgiaWQiLCB0aGlzLmludGVyYWN0aW9uSUQpOw0KICAgICAgICByZXR1cm4gZWxlbWVudDsNCiAgICB9DQogICAgY3JlYXRlRElWKCkgew0KICAgICAgICBsZXQgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIkRJViIpOw0KICAgICAgICBlbGVtZW50LmlkID0gdGhpcy5EaXZJRDsNCiAgICAgICAgcmV0dXJuIGVsZW1lbnQ7DQogICAgfQ0KICAgIGNyZWF0ZVRBQkxFKCkgew0KICAgICAgICBsZXQgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlRBQkxFIik7DQogICAgICAgIGVsZW1lbnQuaWQgPSB0aGlzLlRhYmxlSUQ7DQogICAgICAgIHJldHVybiBlbGVtZW50Ow0KICAgIH0NCiAgICBjcmVhdGVUYWJsZVJvdygpIHsNCiAgICAgICAgbGV0IGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJUUiIpOw0KICAgICAgICBlbGVtZW50LmNsYXNzTmFtZSA9IHRoaXMuaGVhZGVyQ2xhc3M7DQogICAgICAgIHJldHVybiBlbGVtZW50Ow0KICAgIH0NCiAgICBjcmVhdGVUYWJsZUNvbnRlbnQobWVudUtleSkgew0KICAgICAgICBsZXQgZGF0YSA9IHt9Ow0KICAgICAgICBsZXQgcm93cyA9IFtdOw0KICAgICAgICBsZXQgZmlsZVR5cGVzID0gW107DQogICAgICAgIHN3aXRjaCAobWVudUtleSkgew0KICAgICAgICAgICAgY2FzZSAicGxheWxpc3QiOg0KICAgICAgICAgICAgICAgIGZpbGVUeXBlcyA9IFsibTN1IiwgImhkaHIiXTsNCiAgICAgICAgICAgICAgICBmaWxlVHlwZXMuZm9yRWFjaChmaWxlVHlwZSA9PiB7DQogICAgICAgICAgICAgICAgICAgIGRhdGEgPSBTRVJWRVJbInNldHRpbmdzIl1bImZpbGVzIl1bZmlsZVR5cGVdOw0KICAgICAgICAgICAgICAgICAgICB2YXIga2V5cyA9IGdldE9iaktleXMoZGF0YSk7DQogICAgICAgICAgICAgICAgICAgIGtleXMuZm9yRWFjaChrZXkgPT4gew0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVFIiKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmlkID0ga2V5Ow0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgiJyArIGZpbGVUeXBlICsgJyIsIHRoaXMpJyk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsibmFtZSJdOw0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChTRVJWRVJbInNldHRpbmdzIl1bImJ1ZmZlciJdICE9ICItIikgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bInR1bmVyIl07DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gIi0iOw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bImxhc3QudXBkYXRlIl07DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsicHJvdmlkZXIuYXZhaWxhYmlsaXR5Il07DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsidHlwZSJdLnRvVXBwZXJDYXNlKCk7DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsiY29tcGF0aWJpbGl0eSJdWyJzdHJlYW1zIl07DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsiY29tcGF0aWJpbGl0eSJdWyJncm91cC50aXRsZSJdOw0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bImNvbXBhdGliaWxpdHkiXVsidHZnLmlkIl07DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsiY29tcGF0aWJpbGl0eSJdWyJzdHJlYW0uaWQiXTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHJvd3MucHVzaCh0cik7DQogICAgICAgICAgICAgICAgICAgIH0pOw0KICAgICAgICAgICAgICAgIH0pOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiZmlsdGVyIjoNCiAgICAgICAgICAgICAgICBkZWxldGUgU0VSVkVSWyJzZXR0aW5ncyJdWyJmaWx0ZXIiXVstMV07DQogICAgICAgICAgICAgICAgZGF0YSA9IFNFUlZFUlsic2V0dGluZ3MiXVsiZmlsdGVyIl07DQogICAgICAgICAgICAgICAgdmFyIGtleXMgPSBnZXRPYmpLZXlzKGRhdGEpOw0KICAgICAgICAgICAgICAgIGtleXMuZm9yRWFjaChrZXkgPT4gew0KICAgICAgICAgICAgICAgICAgICB2YXIgdHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJUUiIpOw0KICAgICAgICAgICAgICAgICAgICB0ci5pZCA9IGtleTsNCiAgICAgICAgICAgICAgICAgICAgdHIuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgiJyArIGRhdGFba2V5XVsidHlwZSJdICsgJyIsIHRoaXMpJyk7DQogICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJuYW1lIl07DQogICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgIHN3aXRjaCAoZGF0YVtrZXldWyJ0eXBlIl0pIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgImN1c3RvbS1maWx0ZXIiOg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSAie3suZmlsdGVyLmN1c3RvbX19IjsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgImdyb3VwLXRpdGxlIjoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gInt7LmZpbHRlci5ncm91cH19IjsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsiZmlsdGVyIl07DQogICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgcm93cy5wdXNoKHRyKTsNCiAgICAgICAgICAgICAgICB9KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInhtbHR2IjoNCiAgICAgICAgICAgICAgICBmaWxlVHlwZXMgPSBuZXcgQXJyYXkoInhtbHR2Iik7DQogICAgICAgICAgICAgICAgZmlsZVR5cGVzLmZvckVhY2goZmlsZVR5cGUgPT4gew0KICAgICAgICAgICAgICAgICAgICBkYXRhID0gU0VSVkVSWyJzZXR0aW5ncyJdWyJmaWxlcyJdW2ZpbGVUeXBlXTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGtleXMgPSBnZXRPYmpLZXlzKGRhdGEpOw0KICAgICAgICAgICAgICAgICAgICBrZXlzLmZvckVhY2goa2V5ID0+IHsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciB0ciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlRSIik7DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5pZCA9IGtleTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoIicgKyBmaWxlVHlwZSArICciLCB0aGlzKScpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bIm5hbWUiXTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJsYXN0LnVwZGF0ZSJdOw0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bInByb3ZpZGVyLmF2YWlsYWJpbGl0eSJdOw0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bImNvbXBhdGliaWxpdHkiXVsieG1sdHYuY2hhbm5lbHMiXTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJjb21wYXRpYmlsaXR5Il1bInhtbHR2LnByb2dyYW1zIl07DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICByb3dzLnB1c2godHIpOw0KICAgICAgICAgICAgICAgICAgICB9KTsNCiAgICAgICAgICAgICAgICB9KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInVzZXJzIjoNCiAgICAgICAgICAgICAgICBmaWxlVHlwZXMgPSBuZXcgQXJyYXkoInVzZXJzIik7DQogICAgICAgICAgICAgICAgZmlsZVR5cGVzLmZvckVhY2goZmlsZVR5cGUgPT4gew0KICAgICAgICAgICAgICAgICAgICBkYXRhID0gU0VSVkVSW2ZpbGVUeXBlXTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGtleXMgPSBnZXRPYmpLZXlzKGRhdGEpOw0KICAgICAgICAgICAgICAgICAgICBrZXlzLmZvckVhY2goa2V5ID0+IHsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciB0ciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlRSIik7DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5pZCA9IGtleTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoIicgKyBmaWxlVHlwZSArICciLCB0aGlzKScpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bImRhdGEiXVsidXNlcm5hbWUiXTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gIioqKioqKiI7DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGRhdGFba2V5XVsiZGF0YSJdWyJhdXRoZW50aWNhdGlvbi53ZWIiXSA9PSB0cnVlKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9ICLinJMiOw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9ICItIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgICAgICBpZiAoZGF0YVtrZXldWyJkYXRhIl1bImF1dGhlbnRpY2F0aW9uLnBtcyJdID09IHRydWUpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gIuKckyI7DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gIi0iOw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChkYXRhW2tleV1bImRhdGEiXVsiYXV0aGVudGljYXRpb24ubTN1Il0gPT0gdHJ1ZSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSAi4pyTIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSAiLSI7DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGRhdGFba2V5XVsiZGF0YSJdWyJhdXRoZW50aWNhdGlvbi54bWwiXSA9PSB0cnVlKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9ICLinJMiOw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9ICItIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgICAgICBpZiAoZGF0YVtrZXldWyJkYXRhIl1bImF1dGhlbnRpY2F0aW9uLmFwaSJdID09IHRydWUpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gIuKckyI7DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gIi0iOw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgcm93cy5wdXNoKHRyKTsNCiAgICAgICAgICAgICAgICAgICAgfSk7DQogICAgICAgICAgICAgICAgfSk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJtYXBwaW5nIjoNCiAgICAgICAgICAgICAgICBCVUxLX0VESVQgPSBmYWxzZTsNCiAgICAgICAgICAgICAgICBjcmVhdGVTZWFyY2hPYmooKTsNCiAgICAgICAgICAgICAgICBjaGVja1VuZG8oImVwZ01hcHBpbmciKTsNCiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZygiTUFQUElORyIpOw0KICAgICAgICAgICAgICAgIGRhdGEgPSBTRVJWRVJbInhlcGciXVsiZXBnTWFwcGluZyJdOw0KICAgICAgICAgICAgICAgIHZhciBrZXlzID0gZ2V0T2JqS2V5cyhkYXRhKTsNCiAgICAgICAgICAgICAgICBrZXlzLmZvckVhY2goa2V5ID0+IHsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVFIiKTsNCiAgICAgICAgICAgICAgICAgICAgdHIuaWQgPSBrZXk7DQogICAgICAgICAgICAgICAgICAgIC8vdHIuc2V0QXR0cmlidXRlKCdvbmNvbnRleHRtZW51JywgJ2phdmFzY3JpcHQ6IHJpZ2h0Q2xpY2sodGhpcyknKQ0KICAgICAgICAgICAgICAgICAgICBzd2l0Y2ggKGRhdGFba2V5XVsieC1hY3RpdmUiXSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSB0cnVlOg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyLmNsYXNzTmFtZSA9ICJhY3RpdmVFUEciOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSBmYWxzZToNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ci5jbGFzc05hbWUgPSAibm90QWN0aXZlRVBHIjsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAvLyBCdWxrDQogICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIkJVTEsiOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZmFsc2U7DQogICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgLy8gS2FuYWxudW1tZXINCiAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiSU5QVVRDSEFOTkVMIjsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsieC1jaGFubmVsSUQiXTsNCiAgICAgICAgICAgICAgICAgICAgLy90ZC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogY2hhbmdlQ2hhbm5lbE51bWJlcigiJyArIGtleSArICciLCB0aGlzKScpDQogICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgLy8gTG9nbw0KICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJJTUciOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmltYWdlVVJMID0gZGF0YVtrZXldWyJ0dmctbG9nbyJdOw0KICAgICAgICAgICAgICAgICAgICB2YXIgdGQgPSBjZWxsLmNyZWF0ZUNlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgdGQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgibWFwcGluZyIsIHRoaXMpJyk7DQogICAgICAgICAgICAgICAgICAgIHRkLmlkID0ga2V5Ow0KICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZCh0ZCk7DQogICAgICAgICAgICAgICAgICAgIC8vIEthbmFsbmFtZQ0KICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jbGFzc05hbWUgPSBkYXRhW2tleV1bIngtY2F0ZWdvcnkiXTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsieC1uYW1lIl07DQogICAgICAgICAgICAgICAgICAgIHZhciB0ZCA9IGNlbGwuY3JlYXRlQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICB0ZC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJtYXBwaW5nIiwgdGhpcyknKTsNCiAgICAgICAgICAgICAgICAgICAgdGQuaWQgPSBrZXk7DQogICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKHRkKTsNCiAgICAgICAgICAgICAgICAgICAgLy8gUGxheWxpc3QNCiAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgIC8vY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsiX2ZpbGUubTN1Lm5hbWUiXSANCiAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGdldFZhbHVlRnJvbVByb3ZpZGVyRmlsZShkYXRhW2tleV1bIl9maWxlLm0zdS5pZCJdLCAibTN1IiwgIm5hbWUiKTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHRkID0gY2VsbC5jcmVhdGVDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgIHRkLnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoIm1hcHBpbmciLCB0aGlzKScpOw0KICAgICAgICAgICAgICAgICAgICB0ZC5pZCA9IGtleTsNCiAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQodGQpOw0KICAgICAgICAgICAgICAgICAgICAvLyBHcnVwcGUgKGdyb3VwLXRpdGxlKQ0KICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsieC1ncm91cC10aXRsZSJdOw0KICAgICAgICAgICAgICAgICAgICB2YXIgdGQgPSBjZWxsLmNyZWF0ZUNlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgdGQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgibWFwcGluZyIsIHRoaXMpJyk7DQogICAgICAgICAgICAgICAgICAgIHRkLmlkID0ga2V5Ow0KICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZCh0ZCk7DQogICAgICAgICAgICAgICAgICAgIC8vIFhNTFRWIERhdGVpDQogICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICBpZiAoZGF0YVtrZXldWyJ4LXhtbHR2LWZpbGUiXSAhPSAiLSIpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBnZXRWYWx1ZUZyb21Qcm92aWRlckZpbGUoZGF0YVtrZXldWyJ4LXhtbHR2LWZpbGUiXSwgInhtbHR2IiwgIm5hbWUiKTsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bIngteG1sdHYtZmlsZSJdOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIHZhciB0ZCA9IGNlbGwuY3JlYXRlQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICB0ZC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJtYXBwaW5nIiwgdGhpcyknKTsNCiAgICAgICAgICAgICAgICAgICAgdGQuaWQgPSBrZXk7DQogICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKHRkKTsNCiAgICAgICAgICAgICAgICAgICAgLy8gWE1MVFYgS2FuYWwNCiAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgIC8vdmFyIHZhbHVlID0gc3RyLnN1YnN0cmluZygxLCA0KTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHZhbHVlID0gZGF0YVtrZXldWyJ4LW1hcHBpbmciXTsNCiAgICAgICAgICAgICAgICAgICAgaWYgKHZhbHVlLmxlbmd0aCA+IDIwKSB7DQogICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IGRhdGFba2V5XVsieC1tYXBwaW5nIl0uc3Vic3RyaW5nKDAsIDIwKSArICIuLi4iOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSB2YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHRkID0gY2VsbC5jcmVhdGVDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgIHRkLnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoIm1hcHBpbmciLCB0aGlzKScpOw0KICAgICAgICAgICAgICAgICAgICB0ZC5pZCA9IGtleTsNCiAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQodGQpOw0KICAgICAgICAgICAgICAgICAgICAvLyBUaW1lU2hpZnQNCiAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bIngtdGltZXNoaWZ0Il07DQogICAgICAgICAgICAgICAgICAgIHZhciB0ZCA9IGNlbGwuY3JlYXRlQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICB0ZC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJtYXBwaW5nIiwgdGhpcyknKTsNCiAgICAgICAgICAgICAgICAgICAgdGQuaWQgPSBrZXk7DQogICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKHRkKTsNCiAgICAgICAgICAgICAgICAgICAgcm93cy5wdXNoKHRyKTsNCiAgICAgICAgICAgICAgICB9KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInNldHRpbmdzIjoNCiAgICAgICAgICAgICAgICBhbGVydCgpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZygiVGFibGUgY29udGVudCAobWVudUtleSk6IiwgbWVudUtleSk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIH0NCiAgICAgICAgcmV0dXJuIHJvd3M7DQogICAgfQ0KfQ0KY2xhc3MgQ2VsbCB7DQogICAgY3JlYXRlQ2VsbCgpIHsNCiAgICAgICAgbGV0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgaWYgKHRoaXMuY2hpbGQgPT0gdHJ1ZSkgew0KICAgICAgICAgICAgdmFyIGVsZW1lbnQ7DQogICAgICAgICAgICBzd2l0Y2ggKHRoaXMuY2hpbGRUeXBlKSB7DQogICAgICAgICAgICAgICAgY2FzZSAiUCI6DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KHRoaXMuY2hpbGRUeXBlKTsNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC5pbm5lckhUTUwgPSB0aGlzLnZhbHVlOw0KICAgICAgICAgICAgICAgICAgICBlbGVtZW50LmNsYXNzTmFtZSA9IHRoaXMuY2xhc3NOYW1lOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBjYXNlICJJTlBVVCI6DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KHRoaXMuY2hpbGRUeXBlKTsNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC52YWx1ZSA9IHRoaXMudmFsdWU7DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQudHlwZSA9ICJ0ZXh0IjsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAiSU5QVVRDSEFOTkVMIjoNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIklOUFVUIik7DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZzY3JpcHQ6IGNoYW5nZUNoYW5uZWxOdW1iZXIodGhpcykiKTsNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC52YWx1ZSA9IHRoaXMudmFsdWU7DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQudHlwZSA9ICJ0ZXh0IjsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAiQlVMSyI6DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJJTlBVVCIpOw0KICAgICAgICAgICAgICAgICAgICBlbGVtZW50LmNoZWNrZWQgPSB0aGlzLnZhbHVlOw0KICAgICAgICAgICAgICAgICAgICBlbGVtZW50LnR5cGUgPSAiY2hlY2tib3giOw0KICAgICAgICAgICAgICAgICAgICBlbGVtZW50LmNsYXNzTmFtZSA9ICJidWxrIGhpZGVCdWxrIjsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAiQlVMS19IRUFEIjoNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIklOUFVUIik7DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQuY2hlY2tlZCA9IHRoaXMudmFsdWU7DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQudHlwZSA9ICJjaGVja2JveCI7DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQuY2xhc3NOYW1lID0gImJ1bGsgaGlkZUJ1bGsiOw0KICAgICAgICAgICAgICAgICAgICBlbGVtZW50LnNldEF0dHJpYnV0ZSgib25jbGljayIsICJqYXZhc2NyaXB0OiBzZWxlY3RBbGxDaGFubmVscygpIik7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgIklNRyI6DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KHRoaXMuY2hpbGRUeXBlKTsNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC5zZXRBdHRyaWJ1dGUoInNyYyIsIHRoaXMuaW1hZ2VVUkwpOw0KICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5pbWFnZVVSTCAhPSAiIikgew0KICAgICAgICAgICAgICAgICAgICAgICAgZWxlbWVudC5zZXRBdHRyaWJ1dGUoIm9uZXJyb3IiLCAiamF2YXNjcmlwdDogdGhpcy5vbmVycm9yPW51bGw7dGhpcy5zcmM9JyciKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIC8vb25lcnJvcj0idGhpcy5vbmVycm9yPW51bGw7dGhpcy5zcmM9J21pc3NpbmcuZ2lmJzsiDQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIHRkLmFwcGVuZENoaWxkKGVsZW1lbnQpOw0KICAgICAgICB9DQogICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgdGQuaW5uZXJIVE1MID0gdGhpcy52YWx1ZTsNCiAgICAgICAgfQ0KICAgICAgICBpZiAodGhpcy5vbmNsaWNrID09IHRydWUpIHsNCiAgICAgICAgICAgIHRkLnNldEF0dHJpYnV0ZSgib25jbGljayIsIHRoaXMub25jbGlja0Z1bmt0aW9uKTsNCiAgICAgICAgICAgIHRkLmNsYXNzTmFtZSA9ICJwb2ludGVyIjsNCiAgICAgICAgfQ0KICAgICAgICBpZiAodGhpcy50ZENsYXNzTmFtZSAhPSB1bmRlZmluZWQpIHsNCiAgICAgICAgICAgIHRkLmNsYXNzTmFtZSA9IHRoaXMudGRDbGFzc05hbWU7DQogICAgICAgIH0NCiAgICAgICAgcmV0dXJuIHRkOw0KICAgIH0NCn0NCmNsYXNzIFNob3dDb250ZW50IGV4dGVuZHMgQ29udGVudCB7DQogICAgY29uc3RydWN0b3IobWVudUlEKSB7DQogICAgICAgIHN1cGVyKCk7DQogICAgICAgIHRoaXMubWVudUlEID0gbWVudUlEOw0KICAgIH0NCiAgICBjcmVhdGVJbnB1dCh0eXBlLCBuYW1lLCB2YWx1ZSkgew0KICAgICAgICBsZXQgaW5wdXQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJJTlBVVCIpOw0KICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInR5cGUiLCB0eXBlKTsNCiAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJuYW1lIiwgbmFtZSk7DQogICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgidmFsdWUiLCB2YWx1ZSk7DQogICAgICAgIHJldHVybiBpbnB1dDsNCiAgICB9DQogICAgc2hvdygpIHsNCiAgICAgICAgQ09MVU1OX1RPX1NPUlQgPSAtMTsNCiAgICAgICAgLy8gQWx0ZW4gSW5oYWx0IGzDtnNjaGVuDQogICAgICAgIGxldCBkb2MgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCh0aGlzLkRvY3VtZW50SUQpOw0KICAgICAgICBkb2MuaW5uZXJIVE1MID0gIiI7DQogICAgICAgIHNob3dQcmV2aWV3KGZhbHNlKTsNCiAgICAgICAgLy8gw5xiZXJzY2hyaWZ0DQogICAgICAgIGxldCBoZWFkbGluZSA9IG1lbnVJdGVtc1t0aGlzLm1lbnVJRF0uaGVhZGxpbmU7DQogICAgICAgIGxldCBtZW51S2V5ID0gbWVudUl0ZW1zW3RoaXMubWVudUlEXS5tZW51S2V5Ow0KICAgICAgICBsZXQgaCA9IHRoaXMuY3JlYXRlSGVhZGxpbmUoaGVhZGxpbmUpOw0KICAgICAgICBkb2MuYXBwZW5kQ2hpbGQoaCk7DQogICAgICAgIGxldCBociA9IHRoaXMuY3JlYXRlSFIoKTsNCiAgICAgICAgZG9jLmFwcGVuZENoaWxkKGhyKTsNCiAgICAgICAgLy8gSW50ZXJha3Rpb24NCiAgICAgICAgbGV0IGRpdiA9IHRoaXMuY3JlYXRlSW50ZXJhY3Rpb24oKTsNCiAgICAgICAgZG9jLmFwcGVuZENoaWxkKGRpdik7DQogICAgICAgIGxldCBpbnRlcmFjdGlvbiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHRoaXMuaW50ZXJhY3Rpb25JRCk7DQogICAgICAgIHN3aXRjaCAobWVudUtleSkgew0KICAgICAgICAgICAgY2FzZSAicGxheWxpc3QiOg0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IHRoaXMuY3JlYXRlSW5wdXQoImJ1dHRvbiIsIG1lbnVLZXksICJ7ey5idXR0b24ubmV3fX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoImlkIiwgIi0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJwbGF5bGlzdCIpJyk7DQogICAgICAgICAgICAgICAgaW50ZXJhY3Rpb24uYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiZmlsdGVyIjoNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSB0aGlzLmNyZWF0ZUlucHV0KCJidXR0b24iLCBtZW51S2V5LCAie3suYnV0dG9uLm5ld319Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJpZCIsIC0xKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJmaWx0ZXIiLCB0aGlzKScpOw0KICAgICAgICAgICAgICAgIGludGVyYWN0aW9uLmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInhtbHR2IjoNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSB0aGlzLmNyZWF0ZUlucHV0KCJidXR0b24iLCBtZW51S2V5LCAie3suYnV0dG9uLm5ld319Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJpZCIsICJ4bWx0diIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoInhtbHR2IiknKTsNCiAgICAgICAgICAgICAgICBpbnRlcmFjdGlvbi5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ1c2VycyI6DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gdGhpcy5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgbWVudUtleSwgInt7LmJ1dHRvbi5uZXd9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgiaWQiLCAidXNlcnMiKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJ1c2VycyIpJyk7DQogICAgICAgICAgICAgICAgaW50ZXJhY3Rpb24uYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAibWFwcGluZyI6DQogICAgICAgICAgICAgICAgc2hvd0VsZW1lbnQoImxvYWRpbmciLCB0cnVlKTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSB0aGlzLmNyZWF0ZUlucHV0KCJidXR0b24iLCBtZW51S2V5LCAie3suYnV0dG9uLnNhdmV9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBzYXZlUG9wdXBEYXRhKCJtYXBwaW5nIiwgIiIsICIiKScpOw0KICAgICAgICAgICAgICAgIGludGVyYWN0aW9uLmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSB0aGlzLmNyZWF0ZUlucHV0KCJidXR0b24iLCBtZW51S2V5LCAie3suYnV0dG9uLmJ1bGtFZGl0fX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogYnVsa0VkaXQoKScpOw0KICAgICAgICAgICAgICAgIGludGVyYWN0aW9uLmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSB0aGlzLmNyZWF0ZUlucHV0KCJzZWFyY2giLCAic2VhcmNoIiwgIiIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgiaWQiLCAic2VhcmNoTWFwcGluZyIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3suYnV0dG9uLnNlYXJjaH19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuY2xhc3NOYW1lID0gInNlYXJjaCI7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICdqYXZhc2NyaXB0OiBzZWFyY2hJbk1hcHBpbmcoKScpOw0KICAgICAgICAgICAgICAgIGludGVyYWN0aW9uLmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInNldHRpbmdzIjoNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSB0aGlzLmNyZWF0ZUlucHV0KCJidXR0b24iLCBtZW51S2V5LCAie3suYnV0dG9uLnNhdmV9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBzYXZlU2V0dGluZ3MoKTsnKTsNCiAgICAgICAgICAgICAgICBpbnRlcmFjdGlvbi5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gdGhpcy5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgbWVudUtleSwgInt7LmJ1dHRvbi5iYWNrdXB9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBiYWNrdXAoKTsnKTsNCiAgICAgICAgICAgICAgICBpbnRlcmFjdGlvbi5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gdGhpcy5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgbWVudUtleSwgInt7LmJ1dHRvbi5yZXN0b3JlfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogcmVzdG9yZSgpOycpOw0KICAgICAgICAgICAgICAgIGludGVyYWN0aW9uLmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICB2YXIgd3JhcHBlciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIkRJViIpOw0KICAgICAgICAgICAgICAgIHdyYXBwZXIuc2V0QXR0cmlidXRlKCJpZCIsICJib3gtd3JhcHBlciIpOw0KICAgICAgICAgICAgICAgIGRvYy5hcHBlbmRDaGlsZCh3cmFwcGVyKTsNCiAgICAgICAgICAgICAgICB0aGlzLkRpdklEID0gImNvbnRlbnRfc2V0dGluZ3MiOw0KICAgICAgICAgICAgICAgIHZhciBzZXR0aW5ncyA9IHRoaXMuY3JlYXRlRElWKCk7DQogICAgICAgICAgICAgICAgd3JhcHBlci5hcHBlbmRDaGlsZChzZXR0aW5ncyk7DQogICAgICAgICAgICAgICAgc2hvd1NldHRpbmdzKCk7DQogICAgICAgICAgICAgICAgcmV0dXJuOw0KICAgICAgICAgICAgY2FzZSAibG9nIjoNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSB0aGlzLmNyZWF0ZUlucHV0KCJidXR0b24iLCBtZW51S2V5LCAie3suYnV0dG9uLnJlc2V0TG9nc319Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IHJlc2V0TG9ncygpOycpOw0KICAgICAgICAgICAgICAgIGludGVyYWN0aW9uLmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICB2YXIgd3JhcHBlciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIkRJViIpOw0KICAgICAgICAgICAgICAgIHdyYXBwZXIuc2V0QXR0cmlidXRlKCJpZCIsICJib3gtd3JhcHBlciIpOw0KICAgICAgICAgICAgICAgIGRvYy5hcHBlbmRDaGlsZCh3cmFwcGVyKTsNCiAgICAgICAgICAgICAgICB0aGlzLkRpdklEID0gImNvbnRlbnRfbG9nIjsNCiAgICAgICAgICAgICAgICB2YXIgbG9ncyA9IHRoaXMuY3JlYXRlRElWKCk7DQogICAgICAgICAgICAgICAgd3JhcHBlci5hcHBlbmRDaGlsZChsb2dzKTsNCiAgICAgICAgICAgICAgICBzaG93TG9ncyh0cnVlKTsNCiAgICAgICAgICAgICAgICByZXR1cm47DQogICAgICAgICAgICBjYXNlICJsb2dvdXQiOg0KICAgICAgICAgICAgICAgIGxvY2F0aW9uLnJlbG9hZCgpOw0KICAgICAgICAgICAgICAgIGRvY3VtZW50LmNvb2tpZSA9ICJUb2tlbj0gOyBleHBpcmVzID0gVGh1LCAwMSBKYW4gMTk3MCAwMDowMDowMCBHTVQiOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZygiU2hvdyBjb250ZW50IChtZW51S2V5KToiLCBtZW51S2V5KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgfQ0KICAgICAgICAvLyBUYWJlbGxlIGVyc3RlbGxlbiAoZmFsbHMgYmVuw7Z0aWd0KQ0KICAgICAgICB2YXIgdGFibGVIZWFkZXIgPSBtZW51SXRlbXNbdGhpcy5tZW51SURdLnRhYmxlSGVhZGVyOw0KICAgICAgICBpZiAodGFibGVIZWFkZXIubGVuZ3RoID4gMCkgew0KICAgICAgICAgICAgdmFyIHdyYXBwZXIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJESVYiKTsNCiAgICAgICAgICAgIGRvYy5hcHBlbmRDaGlsZCh3cmFwcGVyKTsNCiAgICAgICAgICAgIHdyYXBwZXIuc2V0QXR0cmlidXRlKCJpZCIsICJib3gtd3JhcHBlciIpOw0KICAgICAgICAgICAgdmFyIHRhYmxlID0gdGhpcy5jcmVhdGVUQUJMRSgpOw0KICAgICAgICAgICAgd3JhcHBlci5hcHBlbmRDaGlsZCh0YWJsZSk7DQogICAgICAgICAgICB2YXIgaGVhZGVyID0gdGhpcy5jcmVhdGVUYWJsZVJvdygpOw0KICAgICAgICAgICAgdGFibGUuYXBwZW5kQ2hpbGQoaGVhZGVyKTsNCiAgICAgICAgICAgIC8vIEtvcGZ6ZWlsZSBkZXIgVGFibGxlDQogICAgICAgICAgICB0YWJsZUhlYWRlci5mb3JFYWNoKGVsZW1lbnQgPT4gew0KICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZWxlbWVudDsNCiAgICAgICAgICAgICAgICBpZiAoZWxlbWVudCA9PSAiQlVMSyIpIHsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiQlVMS19IRUFEIjsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGZhbHNlOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBpZiAobWVudUtleSA9PSAibWFwcGluZyIpIHsNCiAgICAgICAgICAgICAgICAgICAgaWYgKGVsZW1lbnQgPT0gInt7Lm1hcHBpbmcudGFibGUuY2hOb319Iikgew0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5vbmNsaWNrID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwub25jbGlja0Z1bmt0aW9uID0gImphdmFzY3JpcHQ6IHNvcnRUYWJsZSgxKTsiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC50ZENsYXNzTmFtZSA9ICJzb3J0VGhpcyI7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgaWYgKGVsZW1lbnQgPT0gInt7Lm1hcHBpbmcudGFibGUuY2hhbm5lbE5hbWV9fSIpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwub25jbGljayA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLm9uY2xpY2tGdW5rdGlvbiA9ICJqYXZhc2NyaXB0OiBzb3J0VGFibGUoMyk7IjsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBpZiAoZWxlbWVudCA9PSAie3subWFwcGluZy50YWJsZS5wbGF5bGlzdH19Iikgew0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5vbmNsaWNrID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwub25jbGlja0Z1bmt0aW9uID0gImphdmFzY3JpcHQ6IHNvcnRUYWJsZSg0KTsiOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIGlmIChlbGVtZW50ID09ICJ7ey5tYXBwaW5nLnRhYmxlLmdyb3VwVGl0bGV9fSIpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwub25jbGljayA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLm9uY2xpY2tGdW5rdGlvbiA9ICJqYXZhc2NyaXB0OiBzb3J0VGFibGUoNSk7IjsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBoZWFkZXIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgfSk7DQogICAgICAgICAgICB0YWJsZS5hcHBlbmRDaGlsZChoZWFkZXIpOw0KICAgICAgICAgICAgLy8gSW5oYWx0IGRlciBUYWJlbGxlDQogICAgICAgICAgICB2YXIgcm93cyA9IHRoaXMuY3JlYXRlVGFibGVDb250ZW50KG1lbnVLZXkpOw0KICAgICAgICAgICAgcm93cy5mb3JFYWNoKHRyID0+IHsNCiAgICAgICAgICAgICAgICB0YWJsZS5hcHBlbmRDaGlsZCh0cik7DQogICAgICAgICAgICB9KTsNCiAgICAgICAgfQ0KICAgICAgICBzd2l0Y2ggKG1lbnVLZXkpIHsNCiAgICAgICAgICAgIGNhc2UgIm1hcHBpbmciOg0KICAgICAgICAgICAgICAgIHNvcnRUYWJsZSgxKTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImZpbHRlciI6DQogICAgICAgICAgICAgICAgc2hvd1ByZXZpZXcodHJ1ZSk7DQogICAgICAgICAgICAgICAgc29ydFRhYmxlKDApOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgICAgICBDT0xVTU5fVE9fU09SVCA9IC0xOw0KICAgICAgICAgICAgICAgIHNvcnRUYWJsZSgwKTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgfQ0KICAgICAgICBzaG93RWxlbWVudCgibG9hZGluZyIsIGZhbHNlKTsNCiAgICB9DQp9DQpmdW5jdGlvbiBQYWdlUmVhZHkoKSB7DQogICAgbGV0IHNlcnZlciA9IG5ldyBTZXJ2ZXIoImdldFNlcnZlckNvbmZpZyIpOw0KICAgIHNlcnZlci5yZXF1ZXN0KHt9KTsNCiAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigicmVzaXplIiwgZnVuY3Rpb24gKCkgew0KICAgICAgICBjYWxjdWxhdGVXcmFwcGVySGVpZ2h0KCk7DQogICAgfSwgdHJ1ZSk7DQogICAgc2V0SW50ZXJ2YWwoZnVuY3Rpb24gKCkgew0KICAgICAgICB1cGRhdGVMb2coKTsNCiAgICB9LCAxMDAwMCk7DQogICAgcmV0dXJuOw0KfQ0KZnVuY3Rpb24gY3JlYXRlTGF5b3V0KCkgew0KICAgIC8vIENsaWVudCBJbmZvDQogICAgbGV0IG9iaiA9IFNFUlZFUlsiY2xpZW50SW5mbyJdOw0KICAgIGxldCBrZXlzID0gZ2V0T2JqS2V5cyhvYmopOw0KICAgIGZvciAodmFyIGkgPSAwOyBpIDwga2V5cy5sZW5ndGg7IGkrKykgew0KICAgICAgICBpZiAoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoa2V5c1tpXSkpIHsNCiAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGtleXNbaV0pLmlubmVySFRNTCA9IG9ialtrZXlzW2ldXTsNCiAgICAgICAgfQ0KICAgIH0NCiAgICBpZiAoIWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJtYWluLW1lbnUiKSkgew0KICAgICAgICByZXR1cm47DQogICAgfQ0KICAgIC8vIE1lbsO8IGVyc3RlbGxlbg0KICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJtYWluLW1lbnUiKS5pbm5lckhUTUwgPSAiIjsNCiAgICBmb3IgKGxldCBpID0gMDsgaSA8IG1lbnVJdGVtcy5sZW5ndGg7IGkrKykgew0KICAgICAgICBtZW51SXRlbXNbaV0uaWQgPSBpOw0KICAgICAgICBzd2l0Y2ggKG1lbnVJdGVtc1tpXVsibWVudUtleSJdKSB7DQogICAgICAgICAgICBjYXNlICJ1c2VycyI6DQogICAgICAgICAgICBjYXNlICJsb2dvdXQiOg0KICAgICAgICAgICAgICAgIGlmIChTRVJWRVJbInNldHRpbmdzIl1bImF1dGhlbnRpY2F0aW9uLndlYiJdID09IHRydWUpIHsNCiAgICAgICAgICAgICAgICAgICAgbWVudUl0ZW1zW2ldLmNyZWF0ZUl0ZW0oKTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJtYXBwaW5nIjoNCiAgICAgICAgICAgIGNhc2UgInhtbHR2IjoNCiAgICAgICAgICAgICAgICBpZiAoU0VSVkVSWyJjbGllbnRJbmZvIl1bImVwZ1NvdXJjZSJdID09ICJYRVBHIikgew0KICAgICAgICAgICAgICAgICAgICBtZW51SXRlbXNbaV0uY3JlYXRlSXRlbSgpOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICAgICAgbWVudUl0ZW1zW2ldLmNyZWF0ZUl0ZW0oKTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgfQ0KICAgIH0NCiAgICByZXR1cm47DQp9DQpmdW5jdGlvbiBvcGVuVGhpc01lbnUoZWxlbWVudCkgew0KICAgIGxldCBpZCA9IGVsZW1lbnQuaWQ7DQogICAgbGV0IGNvbnRlbnQgPSBuZXcgU2hvd0NvbnRlbnQoaWQpOw0KICAgIGNvbnRlbnQuc2hvdygpOw0KICAgIGNhbGN1bGF0ZVdyYXBwZXJIZWlnaHQoKTsNCiAgICByZXR1cm47DQp9DQpjbGFzcyBQb3B1cFdpbmRvdyB7DQogICAgY29uc3RydWN0b3IoKSB7DQogICAgICAgIHRoaXMuRG9jdW1lbnRJRCA9ICJwb3B1cC1jdXN0b20iOw0KICAgICAgICB0aGlzLkludGVyYWN0aW9uSUQgPSAiaW50ZXJhY3Rpb24iOw0KICAgICAgICB0aGlzLmRvYyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHRoaXMuRG9jdW1lbnRJRCk7DQogICAgfQ0KICAgIGNyZWF0ZVRpdGxlKHRpdGxlKSB7DQogICAgICAgIGxldCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgIHRkLmNsYXNzTmFtZSA9ICJsZWZ0IjsNCiAgICAgICAgdGQuaW5uZXJIVE1MID0gdGl0bGUgKyAiOiI7DQogICAgICAgIHJldHVybiB0ZDsNCiAgICB9DQogICAgY3JlYXRlQ29udGVudChlbGVtZW50KSB7DQogICAgICAgIGxldCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgIHRkLmFwcGVuZENoaWxkKGVsZW1lbnQpOw0KICAgICAgICByZXR1cm4gdGQ7DQogICAgfQ0KICAgIGNyZWF0ZUludGVyYWN0aW9uKCkgew0KICAgICAgICBsZXQgZGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7DQogICAgICAgIGRpdi5zZXRBdHRyaWJ1dGUoImlkIiwgInBvcHVwLWludGVyYWN0aW9uIik7DQogICAgICAgIGRpdi5jbGFzc05hbWUgPSAiaW50ZXJhY3Rpb24iOw0KICAgICAgICB0aGlzLmRvYy5hcHBlbmRDaGlsZChkaXYpOw0KICAgIH0NCn0NCmNsYXNzIFBvcHVwQ29udGVudCBleHRlbmRzIFBvcHVwV2luZG93IHsNCiAgICBjb25zdHJ1Y3RvcigpIHsNCiAgICAgICAgc3VwZXIoLi4uYXJndW1lbnRzKTsNCiAgICAgICAgdGhpcy50YWJsZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlRBQkxFIik7DQogICAgfQ0KICAgIGNyZWF0ZUhlYWRsaW5lKGhlYWRsaW5lKSB7DQogICAgICAgIHRoaXMuZG9jLmlubmVySFRNTCA9ICIiOw0KICAgICAgICB2YXIgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIkgzIik7DQogICAgICAgIGVsZW1lbnQuaW5uZXJIVE1MID0gaGVhZGxpbmUudG9VcHBlckNhc2UoKTsNCiAgICAgICAgdGhpcy5kb2MuYXBwZW5kQ2hpbGQoZWxlbWVudCk7DQogICAgICAgIC8vIFRhYmVsbGUgZXJzdGVsbGVuDQogICAgICAgIHRoaXMudGFibGUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJUQUJMRSIpOw0KICAgICAgICB0aGlzLmRvYy5hcHBlbmRDaGlsZCh0aGlzLnRhYmxlKTsNCiAgICB9DQogICAgYXBwZW5kUm93KHRpdGxlLCBlbGVtZW50KSB7DQogICAgICAgIGxldCB0ciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlRSIik7DQogICAgICAgIC8vIEJlemVpY2hudW5nDQogICAgICAgIGlmICh0aXRsZS5sZW5ndGggIT0gMCkgew0KICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQodGhpcy5jcmVhdGVUaXRsZSh0aXRsZSkpOw0KICAgICAgICB9DQogICAgICAgIC8vIENvbnRlbnQNCiAgICAgICAgdHIuYXBwZW5kQ2hpbGQodGhpcy5jcmVhdGVDb250ZW50KGVsZW1lbnQpKTsNCiAgICAgICAgdGhpcy50YWJsZS5hcHBlbmRDaGlsZCh0cik7DQogICAgfQ0KICAgIGNyZWF0ZUlucHV0KHR5cGUsIG5hbWUsIHZhbHVlKSB7DQogICAgICAgIGxldCBpbnB1dCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIklOUFVUIik7DQogICAgICAgIGlmICh2YWx1ZSA9PSB1bmRlZmluZWQpIHsNCiAgICAgICAgICAgIHZhbHVlID0gIiI7DQogICAgICAgIH0NCiAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJ0eXBlIiwgdHlwZSk7DQogICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgibmFtZSIsIG5hbWUpOw0KICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInZhbHVlIiwgdmFsdWUpOw0KICAgICAgICByZXR1cm4gaW5wdXQ7DQogICAgfQ0KICAgIGNyZWF0ZUNoZWNrYm94KG5hbWUpIHsNCiAgICAgICAgbGV0IGlucHV0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiSU5QVVQiKTsNCiAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJ0eXBlIiwgImNoZWNrYm94Iik7DQogICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgibmFtZSIsIG5hbWUpOw0KICAgICAgICByZXR1cm4gaW5wdXQ7DQogICAgfQ0KICAgIC8vIENyZWF0ZXMgYSBzZWxlY3Rpb24gb2YgbXVsdGlwbGUgb3B0aW9ucyB2YWx1ZXMgd2l0aCB0ZXh0IGRlc2NyaXB0aW9ucw0KICAgIGNyZWF0ZVNlbGVjdCh0ZXh0LCB2YWx1ZXMsIHNldCwgZGJLZXkpIHsNCiAgICAgICAgbGV0IHNlbGVjdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlNFTEVDVCIpOw0KICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJuYW1lIiwgZGJLZXkpOw0KICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRleHQubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgICAgIGxldCBvcHRpb24gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJPUFRJT04iKTsNCiAgICAgICAgICAgIG9wdGlvbi5zZXRBdHRyaWJ1dGUoInZhbHVlIiwgdmFsdWVzW2ldKTsNCiAgICAgICAgICAgIG9wdGlvbi5pbm5lclRleHQgPSB0ZXh0W2ldOw0KICAgICAgICAgICAgc2VsZWN0LmFwcGVuZENoaWxkKG9wdGlvbik7DQogICAgICAgIH0NCiAgICAgICAgaWYgKHNldCAhPSAiIikgew0KICAgICAgICAgICAgc2VsZWN0LnZhbHVlID0gc2V0Ow0KICAgICAgICB9DQogICAgICAgIGlmIChzZXQgPT0gdW5kZWZpbmVkKSB7DQogICAgICAgICAgICBzZWxlY3QudmFsdWUgPSB2YWx1ZXNbMF07DQogICAgICAgIH0NCiAgICAgICAgcmV0dXJuIHNlbGVjdDsNCiAgICB9DQogICAgc2VsZWN0T3B0aW9uKHNlbGVjdCwgdmFsdWUpIHsNCiAgICAgICAgLy9zZWxlY3Quc2VsZWN0ZWRPcHRpb25zID0gdmFsdWUNCiAgICAgICAgbGV0IHMgPSBzZWxlY3Q7DQogICAgICAgIHMub3B0aW9uc1tzLnNlbGVjdGVkSW5kZXhdLnZhbHVlID0gdmFsdWU7DQogICAgICAgIHJldHVybiBzZWxlY3Q7DQogICAgfQ0KICAgIGRlc2NyaXB0aW9uKHZhbHVlKSB7DQogICAgICAgIGxldCB0ciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlRSIik7DQogICAgICAgIGxldCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgIGxldCBzcGFuID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiUFJFIik7DQogICAgICAgIHNwYW4uaW5uZXJIVE1MID0gdmFsdWU7DQogICAgICAgIHRyLmFwcGVuZENoaWxkKHRkKTsNCiAgICAgICAgdHIuYXBwZW5kQ2hpbGQodGhpcy5jcmVhdGVDb250ZW50KHNwYW4pKTsNCiAgICAgICAgdGhpcy50YWJsZS5hcHBlbmRDaGlsZCh0cik7DQogICAgfQ0KICAgIC8vIEludGVyYWt0aW9uDQogICAgYWRkSW50ZXJhY3Rpb24oZWxlbWVudCkgew0KICAgICAgICBsZXQgaW50ZXJhY3Rpb24gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicG9wdXAtaW50ZXJhY3Rpb24iKTsNCiAgICAgICAgaW50ZXJhY3Rpb24uYXBwZW5kQ2hpbGQoZWxlbWVudCk7DQogICAgfQ0KfQ0KZnVuY3Rpb24gb3BlblBvcFVwKGRhdGFUeXBlLCBlbGVtZW50KSB7DQogICAgbGV0IGRhdGEgPSB7fTsNCiAgICBsZXQgaWQ7DQogICAgc3dpdGNoIChlbGVtZW50KSB7DQogICAgICAgIGNhc2UgdW5kZWZpbmVkOg0KICAgICAgICAgICAgc3dpdGNoIChkYXRhVHlwZSkgew0KICAgICAgICAgICAgICAgIGNhc2UgImdyb3VwLXRpdGxlIjoNCiAgICAgICAgICAgICAgICAgICAgaWYgKGlkID09IHVuZGVmaW5lZCkgew0KICAgICAgICAgICAgICAgICAgICAgICAgaWQgPSAtMTsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBkYXRhID0gZ2V0TG9jYWxEYXRhKCJmaWx0ZXIiLCBpZCk7DQogICAgICAgICAgICAgICAgICAgIGRhdGFbInR5cGUiXSA9ICJncm91cC10aXRsZSI7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgImN1c3RvbS1maWx0ZXIiOg0KICAgICAgICAgICAgICAgICAgICBpZiAoaWQgPT0gdW5kZWZpbmVkKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBpZCA9IC0xOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIGRhdGEgPSBnZXRMb2NhbERhdGEoImZpbHRlciIsIGlkKTsNCiAgICAgICAgICAgICAgICAgICAgZGF0YVsidHlwZSJdID0gImN1c3RvbS1maWx0ZXIiOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBkZWZhdWx0Og0KICAgICAgICAgICAgICAgICAgICBkYXRhWyJpZC5wcm92aWRlciJdID0gIi0iOw0KICAgICAgICAgICAgICAgICAgICBkYXRhWyJ0eXBlIl0gPSBkYXRhVHlwZTsNCiAgICAgICAgICAgICAgICAgICAgaWQgPSAiLSI7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICBpZCA9IGVsZW1lbnQuaWQ7DQogICAgICAgICAgICBkYXRhID0gZ2V0TG9jYWxEYXRhKGRhdGFUeXBlLCBpZCk7DQogICAgICAgICAgICBicmVhazsNCiAgICB9DQogICAgbGV0IGNvbnRlbnQgPSBuZXcgUG9wdXBDb250ZW50KCk7DQogICAgc3dpdGNoIChkYXRhVHlwZSkgew0KICAgICAgICBjYXNlICJwbGF5bGlzdCI6DQogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUhlYWRsaW5lKCJ7ey5wbGF5bGlzdC5wbGF5bGlzdFR5cGUudGl0bGV9fSIpOw0KICAgICAgICAgICAgLy8gVHlwZQ0KICAgICAgICAgICAgdmFyIHRleHQgPSBbIk0zVSIsICJIREhvbWVSdW4iXTsNCiAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBbImphdmFzY3JpcHQ6IG9wZW5Qb3BVcCgnbTN1JykiLCAiamF2YXNjcmlwdDogb3BlblBvcFVwKCdoZGhyJykiXTsNCiAgICAgICAgICAgIHZhciBzZWxlY3QgPSBjb250ZW50LmNyZWF0ZVNlbGVjdCh0ZXh0LCB2YWx1ZXMsICIiLCAidHlwZSIpOw0KICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgiaWQiLCAidHlwZSIpOw0KICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAnamF2YXNjcmlwdDogY2hhbmdlQnV0dG9uQWN0aW9uKHRoaXMsICJuZXh0IiwgIm9uY2xpY2siKScpOyAvLyBjaGFuZ2VCdXR0b25BY3Rpb24NCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5wbGF5bGlzdC50eXBlLnRpdGxlfX0iLCBzZWxlY3QpOw0KICAgICAgICAgICAgLy8gSW50ZXJha3Rpb24NCiAgICAgICAgICAgIGNvbnRlbnQuY3JlYXRlSW50ZXJhY3Rpb24oKTsNCiAgICAgICAgICAgIC8vIEFiYnJlY2hlbg0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImNhbmNlbCIsICJ7ey5idXR0b24uY2FuY2VsfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBzaG93RWxlbWVudCgicG9wdXAiLCBmYWxzZSk7Jyk7DQogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIC8vIFdlaXRlcg0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgIm5leHQiLCAie3suYnV0dG9uLm5leHR9fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgibTN1IiknKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgiaWQiLCAnbmV4dCcpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSAibTN1IjoNCiAgICAgICAgICAgIGNvbnRlbnQuY3JlYXRlSGVhZGxpbmUoZGF0YVR5cGUpOw0KICAgICAgICAgICAgLy8gTmFtZQ0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gIm5hbWUiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnBsYXlsaXN0Lm5hbWUucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnBsYXlsaXN0Lm5hbWUudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIEJlc2NocmVpYnVuZw0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gImRlc2NyaXB0aW9uIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5wbGF5bGlzdC5kZXNjcmlwdGlvbi5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sucGxheWxpc3QuZGVzY3JpcHRpb24udGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIFVSTA0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gImZpbGUuc291cmNlIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5wbGF5bGlzdC5maWxlTTNVLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5wbGF5bGlzdC5maWxlTTNVLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBUdW5lcg0KICAgICAgICAgICAgaWYgKFNFUlZFUlsic2V0dGluZ3MiXVsiYnVmZmVyIl0gIT0gIi0iKSB7DQogICAgICAgICAgICAgICAgdmFyIHRleHQgPSBbXTsNCiAgICAgICAgICAgICAgICB2YXIgdmFsdWVzID0gW107DQogICAgICAgICAgICAgICAgZm9yICh2YXIgaSA9IDE7IGkgPD0gMTAwOyBpKyspIHsNCiAgICAgICAgICAgICAgICAgICAgdGV4dC5wdXNoKGkudG9TdHJpbmcoKSk7DQogICAgICAgICAgICAgICAgICAgIHZhbHVlcy5wdXNoKGkudG9TdHJpbmcoKSk7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIHZhciBkYktleSA9ICJ0dW5lciI7DQogICAgICAgICAgICAgICAgdmFyIHNlbGVjdCA9IGNvbnRlbnQuY3JlYXRlU2VsZWN0KHRleHQsIHZhbHVlcywgZGF0YVtkYktleV0sIGRiS2V5KTsNCiAgICAgICAgICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJvbmZvY3VzIiwgImphdmFzY3JpcHQ6IHJldHVybjsiKTsNCiAgICAgICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sucGxheWxpc3QudHVuZXIudGl0bGV9fSIsIHNlbGVjdCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICB2YXIgZGJLZXkgPSAidHVuZXIiOw0KICAgICAgICAgICAgICAgIGlmIChkYXRhW2RiS2V5XSA9PSB1bmRlZmluZWQpIHsNCiAgICAgICAgICAgICAgICAgICAgZGF0YVtkYktleV0gPSAxOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInJlYWRvbmx5IiwgInRydWUiKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5jbGFzc05hbWUgPSAibm90QXZhaWxhYmxlIjsNCiAgICAgICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sucGxheWxpc3QudHVuZXIudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGNvbnRlbnQuZGVzY3JpcHRpb24oInt7LnBsYXlsaXN0LnR1bmVyLmRlc2NyaXB0aW9ufX0iKTsNCiAgICAgICAgICAgIC8vIEludGVyYWt0aW9uDQogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUludGVyYWN0aW9uKCk7DQogICAgICAgICAgICAvLyBMw7ZzY2hlbg0KICAgICAgICAgICAgaWYgKGRhdGFbImlkLnByb3ZpZGVyIl0gIT0gIi0iKSB7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImRlbGV0ZSIsICJ7ey5idXR0b24uZGVsZXRlfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5jbGFzc05hbWUgPSAiZGVsZXRlIjsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogc2F2ZVBvcHVwRGF0YSgibTN1IiwgIicgKyBpZCArICciLCB0cnVlLCAwKScpOw0KICAgICAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgZWxzZSB7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImJhY2siLCAie3suYnV0dG9uLmJhY2t9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoInBsYXlsaXN0IiknKTsNCiAgICAgICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIC8vIEFiYnJlY2hlbg0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImNhbmNlbCIsICJ7ey5idXR0b24uY2FuY2VsfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBzaG93RWxlbWVudCgicG9wdXAiLCBmYWxzZSk7Jyk7DQogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIC8vIEFrdHVhbGlzaWVyZW4NCiAgICAgICAgICAgIGlmIChkYXRhWyJpZC5wcm92aWRlciJdICE9ICItIikgew0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJ1cGRhdGUiLCAie3suYnV0dG9uLnVwZGF0ZX19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoIm0zdSIsICInICsgaWQgKyAnIiwgZmFsc2UsIDEpJyk7DQogICAgICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICAvLyBTcGVpY2hlcm4NCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJzYXZlIiwgInt7LmJ1dHRvbi5zYXZlfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBzYXZlUG9wdXBEYXRhKCJtM3UiLCAiJyArIGlkICsgJyIsIGZhbHNlLCAwKScpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSAiaGRociI6DQogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUhlYWRsaW5lKGRhdGFUeXBlKTsNCiAgICAgICAgICAgIC8vIE5hbWUNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJuYW1lIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5wbGF5bGlzdC5uYW1lLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5wbGF5bGlzdC5uYW1lLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBCZXNjaHJlaWJ1bmcNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJkZXNjcmlwdGlvbiI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3sucGxheWxpc3QuZGVzY3JpcHRpb24ucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnBsYXlsaXN0LmRlc2NyaXB0aW9uLnBsYWNlaG9sZGVyfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBVUkwNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJmaWxlLnNvdXJjZSI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3sucGxheWxpc3QuZmlsZUhESFIucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnBsYXlsaXN0LmZpbGVIREhSLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBUdW5lcg0KICAgICAgICAgICAgaWYgKFNFUlZFUlsic2V0dGluZ3MiXVsiYnVmZmVyIl0gIT0gIi0iKSB7DQogICAgICAgICAgICAgICAgdmFyIHRleHQgPSBbXTsNCiAgICAgICAgICAgICAgICB2YXIgdmFsdWVzID0gW107DQogICAgICAgICAgICAgICAgZm9yICh2YXIgaSA9IDE7IGkgPD0gMTAwOyBpKyspIHsNCiAgICAgICAgICAgICAgICAgICAgdGV4dC5wdXNoKGkudG9TdHJpbmcoKSk7DQogICAgICAgICAgICAgICAgICAgIHZhbHVlcy5wdXNoKGkudG9TdHJpbmcoKSk7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIHZhciBkYktleSA9ICJ0dW5lciI7DQogICAgICAgICAgICAgICAgdmFyIHNlbGVjdCA9IGNvbnRlbnQuY3JlYXRlU2VsZWN0KHRleHQsIHZhbHVlcywgZGF0YVtkYktleV0sIGRiS2V5KTsNCiAgICAgICAgICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJvbmZvY3VzIiwgImphdmFzY3JpcHQ6IHJldHVybjsiKTsNCiAgICAgICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sucGxheWxpc3QudHVuZXIudGl0bGV9fSIsIHNlbGVjdCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICB2YXIgZGJLZXkgPSAidHVuZXIiOw0KICAgICAgICAgICAgICAgIGlmIChkYXRhW2RiS2V5XSA9PSB1bmRlZmluZWQpIHsNCiAgICAgICAgICAgICAgICAgICAgZGF0YVtkYktleV0gPSAxOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInJlYWRvbmx5IiwgInRydWUiKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5jbGFzc05hbWUgPSAibm90QXZhaWxhYmxlIjsNCiAgICAgICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sucGxheWxpc3QudHVuZXIudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGNvbnRlbnQuZGVzY3JpcHRpb24oInt7LnBsYXlsaXN0LnR1bmVyLmRlc2NyaXB0aW9ufX0iKTsNCiAgICAgICAgICAgIC8vIEludGVyYWt0aW9uDQogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUludGVyYWN0aW9uKCk7DQogICAgICAgICAgICAvLyBMw7ZzY2hlbg0KICAgICAgICAgICAgaWYgKGRhdGFbImlkLnByb3ZpZGVyIl0gIT0gIi0iKSB7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImRlbGV0ZSIsICJ7ey5idXR0b24uZGVsZXRlfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogc2F2ZVBvcHVwRGF0YSgiaGRociIsICInICsgaWQgKyAnIiwgdHJ1ZSwgMCknKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5jbGFzc05hbWUgPSAiZGVsZXRlIjsNCiAgICAgICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJiYWNrIiwgInt7LmJ1dHRvbi5iYWNrfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJwbGF5bGlzdCIpJyk7DQogICAgICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICAvLyBBYmJyZWNoZW4NCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJjYW5jZWwiLCAie3suYnV0dG9uLmNhbmNlbH19Iik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogc2hvd0VsZW1lbnQoInBvcHVwIiwgZmFsc2UpOycpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICAvLyBBa3R1YWxpc2llcmVuDQogICAgICAgICAgICBpZiAoZGF0YVsiaWQucHJvdmlkZXIiXSAhPSAiLSIpIHsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAidXBkYXRlIiwgInt7LmJ1dHRvbi51cGRhdGV9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBzYXZlUG9wdXBEYXRhKCJoZGhyIiwgIicgKyBpZCArICciLCBmYWxzZSwgMSknKTsNCiAgICAgICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIC8vIFNwZWljaGVybg0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgInNhdmUiLCAie3suYnV0dG9uLnNhdmV9fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoImhkaHIiLCAiJyArIGlkICsgJyIsIGZhbHNlLCAwKScpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSAiZmlsdGVyIjoNCiAgICAgICAgICAgIGNvbnRlbnQuY3JlYXRlSGVhZGxpbmUoZGF0YVR5cGUpOw0KICAgICAgICAgICAgLy8gVHlwZQ0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gInR5cGUiOw0KICAgICAgICAgICAgdmFyIHRleHQgPSBbIk0zVTogIiArICJ7ey5maWx0ZXIudHlwZS5ncm91cFRpdGxlfX0iLCAieFRlVmU6ICIgKyAie3suZmlsdGVyLnR5cGUuY3VzdG9tRmlsdGVyfX0iXTsNCiAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBbImphdmFzY3JpcHQ6IG9wZW5Qb3BVcCgnZ3JvdXAtdGl0bGUnKSIsICJqYXZhc2NyaXB0OiBvcGVuUG9wVXAoJ2N1c3RvbS1maWx0ZXInKSJdOw0KICAgICAgICAgICAgdmFyIHNlbGVjdCA9IGNvbnRlbnQuY3JlYXRlU2VsZWN0KHRleHQsIHZhbHVlcywgImphdmFzY3JpcHQ6IG9wZW5Qb3BVcCgnZ3JvdXAtdGl0bGUnKSIsIGRiS2V5KTsNCiAgICAgICAgICAgIHNlbGVjdC5zZXRBdHRyaWJ1dGUoImlkIiwgaWQpOw0KICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAnamF2YXNjcmlwdDogY2hhbmdlQnV0dG9uQWN0aW9uKHRoaXMsICJuZXh0IiwgIm9uY2xpY2siKTsnKTsgLy8gY2hhbmdlQnV0dG9uQWN0aW9uDQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3suZmlsdGVyLnR5cGUudGl0bGV9fSIsIHNlbGVjdCk7DQogICAgICAgICAgICAvLyBJbnRlcmFrdGlvbg0KICAgICAgICAgICAgY29udGVudC5jcmVhdGVJbnRlcmFjdGlvbigpOw0KICAgICAgICAgICAgLy8gQWJicmVjaGVuDQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAiY2FuY2VsIiwgInt7LmJ1dHRvbi5jYW5jZWx9fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IHNob3dFbGVtZW50KCJwb3B1cCIsIGZhbHNlKTsnKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgLy8gV2VpdGVyDQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAibmV4dCIsICJ7ey5idXR0b24ubmV4dH19Iik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJncm91cC10aXRsZSIpJyk7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoImlkIiwgJ25leHQnKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGNhc2UgImN1c3RvbS1maWx0ZXIiOg0KICAgICAgICBjYXNlICJncm91cC10aXRsZSI6DQogICAgICAgICAgICBzd2l0Y2ggKGRhdGFUeXBlKSB7DQogICAgICAgICAgICAgICAgY2FzZSAiY3VzdG9tLWZpbHRlciI6DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuY3JlYXRlSGVhZGxpbmUoInt7LmZpbHRlci5jdXN0b219fSIgKyAiIEZpbHRlciIpOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBjYXNlICJncm91cC10aXRsZSI6DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuY3JlYXRlSGVhZGxpbmUoInt7LmZpbHRlci5ncm91cH19IiArICIgRmlsdGVyIik7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgLy8gTmFtZSAgICAgIA0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gIm5hbWUiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LmZpbHRlci5uYW1lLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5maWx0ZXIubmFtZS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgLy8gQmVzY2hyZWlidW5nDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAiZGVzY3JpcHRpb24iOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LmZpbHRlci5kZXNjcmlwdGlvbi5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3suZmlsdGVyLmRlc2NyaXB0aW9uLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBUeXANCiAgICAgICAgICAgIHZhciBkYktleSA9ICJ0eXBlIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImhpZGRlbiIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygiIiwgaW5wdXQpOw0KICAgICAgICAgICAgdmFyIGZpbHRlclR5cGUgPSBkYXRhW2RiS2V5XTsNCiAgICAgICAgICAgIHN3aXRjaCAoZmlsdGVyVHlwZSkgew0KICAgICAgICAgICAgICAgIGNhc2UgImN1c3RvbS1maWx0ZXIiOg0KICAgICAgICAgICAgICAgICAgICAvLyBHcm/Dny0gS2xlaW5zY2hyZWlidW5nIGJlYWNodGVuDQogICAgICAgICAgICAgICAgICAgIHZhciBkYktleSA9ICJjYXNlU2Vuc2l0aXZlIjsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChkYktleSk7DQogICAgICAgICAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhW2RiS2V5XTsNCiAgICAgICAgICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LmZpbHRlci5jYXNlU2Vuc2l0aXZlLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAgICAgICAgIC8vIEZpbHRlcnJlZ2VsIChCZW51dHplcmRlZmluaWVydCkNCiAgICAgICAgICAgICAgICAgICAgdmFyIGRiS2V5ID0gImZpbHRlciI7DQogICAgICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LmZpbHRlci5maWx0ZXJSdWxlLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LmZpbHRlci5maWx0ZXJSdWxlLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgImdyb3VwLXRpdGxlIjoNCiAgICAgICAgICAgICAgICAgICAgLy9hbGVydChkYktleSArICIgIiArIGZpbHRlclR5cGUpDQogICAgICAgICAgICAgICAgICAgIC8vIEZpbHRlciBiYXNpZXJlbmQgYXVmIGRlbiBHcnVwcGVuIGluIGRlciBNM1UNCiAgICAgICAgICAgICAgICAgICAgdmFyIGRiS2V5ID0gImZpbHRlciI7DQogICAgICAgICAgICAgICAgICAgIHZhciBncm91cHNNM1UgPSBnZXRMb2NhbERhdGEoIm0zdUdyb3VwcyIsICIiKTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHRleHQgPSBncm91cHNNM1VbInRleHQiXTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHZhbHVlcyA9IGdyb3Vwc00zVVsidmFsdWUiXTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHNlbGVjdCA9IGNvbnRlbnQuY3JlYXRlU2VsZWN0KHRleHQsIHZhbHVlcywgZGF0YVtkYktleV0sIGRiS2V5KTsNCiAgICAgICAgICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LmZpbHRlci5maWx0ZXJHcm91cC50aXRsZX19Iiwgc2VsZWN0KTsNCiAgICAgICAgICAgICAgICAgICAgY29udGVudC5kZXNjcmlwdGlvbigie3suZmlsdGVyLmZpbHRlckdyb3VwLmRlc2NyaXB0aW9ufX0iKTsNCiAgICAgICAgICAgICAgICAgICAgLy8gR3Jvw58tIEtsZWluc2NocmVpYnVuZyBiZWFjaHRlbg0KICAgICAgICAgICAgICAgICAgICB2YXIgZGJLZXkgPSAiY2FzZVNlbnNpdGl2ZSI7DQogICAgICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goZGJLZXkpOw0KICAgICAgICAgICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YVtkYktleV07DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5maWx0ZXIuY2FzZVNlbnNpdGl2ZS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgICAgICAgICB2YXIgZGJLZXkgPSAiaW5jbHVkZSI7DQogICAgICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LmZpbHRlci5pbmNsdWRlLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LmZpbHRlci5pbmNsdWRlLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuZGVzY3JpcHRpb24oInt7LmZpbHRlci5pbmNsdWRlLmRlc2NyaXB0aW9ufX0iKTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGRiS2V5ID0gImV4Y2x1ZGUiOw0KICAgICAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5maWx0ZXIuZXhjbHVkZS5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5maWx0ZXIuZXhjbHVkZS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgICAgICAgICBjb250ZW50LmRlc2NyaXB0aW9uKCJ7ey5maWx0ZXIuZXhjbHVkZS5kZXNjcmlwdGlvbn19Iik7DQogICAgICAgICAgICAgICAgICAgIC8vIFByZXNlcnZlIE0zVSBQbGF5bGlzdCBDaGFubmVsIE1hcHBpbmcNCiAgICAgICAgICAgICAgICAgICAgdmFyIGRiS2V5ID0gInByZXNlcnZlTWFwcGluZyI7DQogICAgICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goZGJLZXkpOw0KICAgICAgICAgICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YVtkYktleV07DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5maWx0ZXIucHJlc2VydmVNYXBwaW5nLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAgICAgICAgIC8vIFN0YXJ0aW5nIENoYW5uZWwgTnVtYmVyIE1hcHBpbmcNCiAgICAgICAgICAgICAgICAgICAgdmFyIGRiS2V5ID0gInN0YXJ0aW5nQ2hhbm5lbCI7DQogICAgICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LmZpbHRlci5zdGFydGluZ0NoYW5uZWwucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3suZmlsdGVyLnN0YXJ0aW5nQ2hhbm5lbC50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgICAgICAgICAvLyBGaWxsIE1pc3NpbmcgRVBHIERhdGENCiAgICAgICAgICAgICAgICAgICAgLy8gVGhlIGZvbGxvd2luZyBjb2RlIG9ubHkgd29ya3Mgd2hlbiB4VGVWZSBEdW1teSBhbHJlYWR5IGV4aXN0cw0KICAgICAgICAgICAgICAgICAgICAvLyB2YXIgZGJLZXk6c3RyaW5nID0gImRlZmF1bHRNaXNzaW5nRVBHIg0KICAgICAgICAgICAgICAgICAgICAvLyB2YXIgeG1sdHY6WE1MVFZGaWxlID0gbmV3IFhNTFRWRmlsZSgpDQogICAgICAgICAgICAgICAgICAgIC8vIHZhciBzZWxlY3QgPSB4bWx0di5nZXRQcm9ncmFtcygieFRlVmUgRHVtbXkiLCBkYXRhW2RiS2V5XSkNCiAgICAgICAgICAgICAgICAgICAgLy8gc2VsZWN0LnNldEF0dHJpYnV0ZSgibmFtZSIsIGRiS2V5KQ0KICAgICAgICAgICAgICAgICAgICAvLyBzZWxlY3Quc2V0QXR0cmlidXRlKCJpZCIsICJwb3B1cC1taXNzaW5nLWVwZyIpDQogICAgICAgICAgICAgICAgICAgIC8vIFRoZSB3b3JrYXJvdW5kIGlzIGN1cnJlbnRseSB0byBoYXJkIGNvZGUgdGhlIHhUZVZlIER1bW15IGRhdGENCiAgICAgICAgICAgICAgICAgICAgdmFyIGRiS2V5ID0gImRlZmF1bHRNaXNzaW5nRVBHIjsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGxpc3RPcHRpb25zID0geyAidGV4dCI6IFsiLSIsICIzMCBNaW51dGVzICgzMF9NaW51dGVzKSIsICI2MCBNaW51dGVzICg2MF9NaW51dGVzKSIsICI5MCBNaW51dGVzICg5MF9NaW51dGVzKSIsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgIjEyMCBNaW51dGVzICgxMjBfTWludXRlcykiLCAiMTgwIE1pbnV0ZXMgKDMwX01pbnV0ZXMpIiwgIjI0MCBNaW51dGVzICgzMF9NaW51dGVzKSIsICIzNjAgTWludXRlcyAoMzBfTWludXRlcykiXSwNCiAgICAgICAgICAgICAgICAgICAgICAgICJ2YWx1ZSI6IFsiLSIsICIzMF9NaW51dGVzIiwgIjYwX01pbnV0ZXMiLCAiOTBfTWludXRlcyIsICIxMjBfTWludXRlcyIsICIxODBfTWludXRlcyIsICIyNDBfTWludXRlcyIsICIzNjBfTWludXRlcyIsXSB9Ow0KICAgICAgICAgICAgICAgICAgICB2YXIgdGV4dCA9IGxpc3RPcHRpb25zWyJ0ZXh0Il07DQogICAgICAgICAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBsaXN0T3B0aW9uc1sidmFsdWUiXTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHNlbGVjdCA9IGNvbnRlbnQuY3JlYXRlU2VsZWN0KHRleHQsIHZhbHVlcywgZGF0YVtkYktleV0sIGRiS2V5KTsNCiAgICAgICAgICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LmZpbHRlci5kZWZhdWx0TWlzc2luZ0VQRy50aXRsZX19Iiwgc2VsZWN0KTsNCiAgICAgICAgICAgICAgICAgICAgY29udGVudC5kZXNjcmlwdGlvbigie3suZmlsdGVyLmRlZmF1bHRNaXNzaW5nRVBHLmRlc2NyaXB0aW9ufX0iKTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICB9DQogICAgICAgICAgICAvLyBJbnRlcmFrdGlvbg0KICAgICAgICAgICAgY29udGVudC5jcmVhdGVJbnRlcmFjdGlvbigpOw0KICAgICAgICAgICAgLy8gTMO2c2NoZW4NCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJkZWxldGUiLCAie3suYnV0dG9uLmRlbGV0ZX19Iik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogc2F2ZVBvcHVwRGF0YSgiZmlsdGVyIiwgIicgKyBpZCArICciLCB0cnVlLCAwKScpOw0KICAgICAgICAgICAgaW5wdXQuY2xhc3NOYW1lID0gImRlbGV0ZSI7DQogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIC8vIEFiYnJlY2hlbg0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImNhbmNlbCIsICJ7ey5idXR0b24uY2FuY2VsfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBzaG93RWxlbWVudCgicG9wdXAiLCBmYWxzZSk7Jyk7DQogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIC8vIFNwZWljaGVybg0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgInNhdmUiLCAie3suYnV0dG9uLnNhdmV9fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoImZpbHRlciIsICInICsgaWQgKyAnIiwgZmFsc2UsIDApJyk7DQogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJ4bWx0diI6DQogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUhlYWRsaW5lKGRhdGFUeXBlKTsNCiAgICAgICAgICAgIC8vIE5hbWUNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJuYW1lIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey54bWx0di5uYW1lLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey54bWx0di5uYW1lLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBCZXNjaHJlaWJ1bmcNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJkZXNjcmlwdGlvbiI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3sueG1sdHYuZGVzY3JpcHRpb24ucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnhtbHR2LmRlc2NyaXB0aW9uLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBVUkwNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJmaWxlLnNvdXJjZSI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3sueG1sdHYuZmlsZVhNTFRWLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey54bWx0di5maWxlWE1MVFYudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIEludGVyYWt0aW9uDQogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUludGVyYWN0aW9uKCk7DQogICAgICAgICAgICAvLyBMw7ZzY2hlbg0KICAgICAgICAgICAgaWYgKGRhdGFbImlkLnByb3ZpZGVyIl0gIT0gIi0iKSB7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImRlbGV0ZSIsICJ7ey5idXR0b24uZGVsZXRlfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogc2F2ZVBvcHVwRGF0YSgieG1sdHYiLCAiJyArIGlkICsgJyIsIHRydWUsIDApJyk7DQogICAgICAgICAgICAgICAgaW5wdXQuY2xhc3NOYW1lID0gImRlbGV0ZSI7DQogICAgICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICAvLyBBYmJyZWNoZW4NCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJjYW5jZWwiLCAie3suYnV0dG9uLmNhbmNlbH19Iik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogc2hvd0VsZW1lbnQoInBvcHVwIiwgZmFsc2UpOycpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICAvLyBBa3R1YWxpc2llcmVuDQogICAgICAgICAgICBpZiAoZGF0YVsiaWQucHJvdmlkZXIiXSAhPSAiLSIpIHsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAidXBkYXRlIiwgInt7LmJ1dHRvbi51cGRhdGV9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBzYXZlUG9wdXBEYXRhKCJ4bWx0diIsICInICsgaWQgKyAnIiwgZmFsc2UsIDEpJyk7DQogICAgICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICAvLyBTcGVpY2hlcm4NCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJzYXZlIiwgInt7LmJ1dHRvbi5zYXZlfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBzYXZlUG9wdXBEYXRhKCJ4bWx0diIsICInICsgaWQgKyAnIiwgZmFsc2UsIDApJyk7DQogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJ1c2VycyI6DQogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUhlYWRsaW5lKCJ7ey5tYWluTWVudS5pdGVtLnVzZXJzfX0iKTsNCiAgICAgICAgICAgIC8vIEJlbnV0emVybmFtZSANCiAgICAgICAgICAgIHZhciBkYktleSA9ICJ1c2VybmFtZSI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3sudXNlcnMudXNlcm5hbWUucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnVzZXJzLnVzZXJuYW1lLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBOZXVlcyBQYXNzd29ydCANCiAgICAgICAgICAgIHZhciBkYktleSA9ICJwYXNzd29yZCI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJwYXNzd29yZCIsIGRiS2V5LCAiIik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnVzZXJzLnBhc3N3b3JkLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey51c2Vycy5wYXNzd29yZC50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgLy8gQmVzdMOkdGlndW5nIA0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gImNvbmZpcm0iOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgicGFzc3dvcmQiLCBkYktleSwgIiIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey51c2Vycy5jb25maXJtLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey51c2Vycy5jb25maXJtLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBCZXJlY2h0aWd1bmcgV0VCDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAiYXV0aGVudGljYXRpb24ud2ViIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goZGJLZXkpOw0KICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGFbZGJLZXldOw0KICAgICAgICAgICAgaWYgKGRhdGFbImRlZmF1bHRVc2VyIl0gPT0gdHJ1ZSkgew0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICJqYXZhc2NyaXB0OiByZXR1cm4gZmFsc2UiKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey51c2Vycy53ZWIudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIEJlcmVjaHRpZ3VuZyBQTVMNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJhdXRoZW50aWNhdGlvbi5wbXMiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChkYktleSk7DQogICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YVtkYktleV07DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sudXNlcnMucG1zLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBCZXJlY2h0aWd1bmcgTTNVDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAiYXV0aGVudGljYXRpb24ubTN1IjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goZGJLZXkpOw0KICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGFbZGJLZXldOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnVzZXJzLm0zdS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgLy8gQmVyZWNodGlndW5nIFhNTA0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gImF1dGhlbnRpY2F0aW9uLnhtbCI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KGRiS2V5KTsNCiAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhW2RiS2V5XTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey51c2Vycy54bWwudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIEJlcmVjaHRpZ3VuZyBBUEkNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJhdXRoZW50aWNhdGlvbi5hcGkiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChkYktleSk7DQogICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YVtkYktleV07DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sudXNlcnMuYXBpLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBJbnRlcmFrdGlvbg0KICAgICAgICAgICAgY29udGVudC5jcmVhdGVJbnRlcmFjdGlvbigpOw0KICAgICAgICAgICAgLy8gTMO2c2NoZW4NCiAgICAgICAgICAgIGlmIChkYXRhWyJkZWZhdWx0VXNlciJdICE9IHRydWUgJiYgaWQgIT0gIi0iKSB7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImRlbGV0ZSIsICJ7ey5idXR0b24uZGVsZXRlfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5jbGFzc05hbWUgPSAiZGVsZXRlIjsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogc2F2ZVBvcHVwRGF0YSgiJyArIGRhdGFUeXBlICsgJyIsICInICsgaWQgKyAnIiwgdHJ1ZSwgMCknKTsNCiAgICAgICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIC8vIEFiYnJlY2hlbg0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImNhbmNlbCIsICJ7ey5idXR0b24uY2FuY2VsfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBzaG93RWxlbWVudCgicG9wdXAiLCBmYWxzZSk7Jyk7DQogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIC8vIFNwZWljaGVybg0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgInNhdmUiLCAie3suYnV0dG9uLnNhdmV9fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoIicgKyBkYXRhVHlwZSArICciLCAiJyArIGlkICsgJyIsICJmYWxzZSIpOycpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSAibWFwcGluZyI6DQogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUhlYWRsaW5lKCJ7ey5tYWluTWVudS5pdGVtLm1hcHBpbmd9fSIpOw0KICAgICAgICAgICAgLy8gQWt0aXYgDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAieC1hY3RpdmUiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChkYktleSk7DQogICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YVtkYktleV07DQogICAgICAgICAgICBpbnB1dC5pZCA9ICJhY3RpdmUiOw0KICAgICAgICAgICAgLy9pbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIikNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdG9nZ2xlQ2hhbm5lbFN0YXR1cygnIiArIGlkICsgIicsIHRoaXMpIik7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3subWFwcGluZy5hY3RpdmUudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIEthbmFsbmFtZSANCiAgICAgICAgICAgIHZhciBkYktleSA9ICJ4LW5hbWUiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICBpZiAoQlVMS19FRElUID09IHRydWUpIHsNCiAgICAgICAgICAgICAgICBpbnB1dC5zdHlsZS5ib3JkZXIgPSAic29saWQgMXB4IHJlZCI7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJyZWFkb25seSIsICJ0cnVlIik7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3subWFwcGluZy5jaGFubmVsTmFtZS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgY29udGVudC5kZXNjcmlwdGlvbihkYXRhWyJuYW1lIl0pOw0KICAgICAgICAgICAgLy8gQmVzY2hyZWlidW5nIA0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gIngtZGVzY3JpcHRpb24iOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7Lm1hcHBpbmcuZGVzY3JpcHRpb24ucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7Lm1hcHBpbmcuZGVzY3JpcHRpb24udGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIEFrdHVhbGlzaWVydW5nIGRlcyBLYW5hbG5hbWVucw0KICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoIl91dWlkLmtleSIpKSB7DQogICAgICAgICAgICAgICAgaWYgKGRhdGFbIl91dWlkLmtleSJdICE9ICIiKSB7DQogICAgICAgICAgICAgICAgICAgIHZhciBkYktleSA9ICJ4LXVwZGF0ZS1jaGFubmVsLW5hbWUiOw0KICAgICAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KGRiS2V5KTsNCiAgICAgICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YVtkYktleV07DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5tYXBwaW5nLnVwZGF0ZUNoYW5uZWxOYW1lLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgLy8gTG9nbyBVUkwgKEthbmFsKSANCiAgICAgICAgICAgIHZhciBkYktleSA9ICJ0dmctbG9nbyI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgiaWQiLCAiY2hhbm5lbC1pY29uIik7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3subWFwcGluZy5jaGFubmVsTG9nby50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgLy8gQWt0dWFsaXNpZXJ1bmcgZGVzIEthbmFsbG9nb3MNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJ4LXVwZGF0ZS1jaGFubmVsLWljb24iOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChkYktleSk7DQogICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YVtkYktleV07DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoImlkIiwgInVwZGF0ZS1pY29uIik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnOyBjaGFuZ2VDaGFubmVsTG9nbygnIiArIGlkICsgIicpOyIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7Lm1hcHBpbmcudXBkYXRlQ2hhbm5lbExvZ28udGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIEVyd2VpdGVybiBkZXIgRVBHIEthdGVnb3JpZQ0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gIngtY2F0ZWdvcnkiOw0KICAgICAgICAgICAgdmFyIHRleHQgPSBbIi0iLCAiS2lkcyAoRW1ieSBvbmx5KSIsICJOZXdzIiwgIk1vdmllIiwgIlNlcmllcyIsICJTcG9ydHMiXTsNCiAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBbIiIsICJLaWRzIiwgIk5ld3MiLCAiTW92aWUiLCAiU2VyaWVzIiwgIlNwb3J0cyJdOw0KICAgICAgICAgICAgdmFyIHNlbGVjdCA9IGNvbnRlbnQuY3JlYXRlU2VsZWN0KHRleHQsIHZhbHVlcywgZGF0YVtkYktleV0sIGRiS2V5KTsNCiAgICAgICAgICAgIHNlbGVjdC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3subWFwcGluZy5lcGdDYXRlZ29yeS50aXRsZX19Iiwgc2VsZWN0KTsNCiAgICAgICAgICAgIC8vIE0zVSBHcnVwcGVudGl0ZWwNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJ4LWdyb3VwLXRpdGxlIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7Lm1hcHBpbmcubTN1R3JvdXBUaXRsZS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgaWYgKGRhdGFbImdyb3VwLXRpdGxlIl0gIT0gdW5kZWZpbmVkKSB7DQogICAgICAgICAgICAgICAgY29udGVudC5kZXNjcmlwdGlvbihkYXRhWyJncm91cC10aXRsZSJdKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIC8vIFhNTFRWIERhdGVpDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAieC14bWx0di1maWxlIjsNCiAgICAgICAgICAgIHZhciB4bWxGaWxlID0gZGF0YVtkYktleV07DQogICAgICAgICAgICB2YXIgeG1sdHYgPSBuZXcgWE1MVFZGaWxlKCk7DQogICAgICAgICAgICB2YXIgc2VsZWN0ID0geG1sdHYuZ2V0RmlsZXMoZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgibmFtZSIsIGRiS2V5KTsNCiAgICAgICAgICAgIHNlbGVjdC5zZXRBdHRyaWJ1dGUoImlkIiwgInBvcHVwLXhtbHR2Iik7DQogICAgICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJzsgc2V0WG1sdHZDaGFubmVsKCciICsgaWQgKyAiJyx0aGlzKTsiKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5tYXBwaW5nLnhtbHR2RmlsZS50aXRsZX19Iiwgc2VsZWN0KTsNCiAgICAgICAgICAgIHZhciBmaWxlID0gZGF0YVtkYktleV07DQogICAgICAgICAgICAvLyBYTUxUViBNYXBwaW5nDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAieC1tYXBwaW5nIjsNCiAgICAgICAgICAgIHZhciB4bWx0diA9IG5ldyBYTUxUVkZpbGUoKTsNCiAgICAgICAgICAgIHZhciBzZWxlY3QgPSB4bWx0di5nZXRQcm9ncmFtcyhmaWxlLCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJuYW1lIiwgZGJLZXkpOw0KICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgiaWQiLCAicG9wdXAtbWFwcGluZyIpOw0KICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCc7IGNoZWNrWG1sdHZDaGFubmVsKCciICsgaWQgKyAiJyx0aGlzLCciICsgeG1sRmlsZSArICInKTsiKTsNCiAgICAgICAgICAgIHNvcnRTZWxlY3Qoc2VsZWN0KTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5tYXBwaW5nLnhtbHR2Q2hhbm5lbC50aXRsZX19Iiwgc2VsZWN0KTsNCiAgICAgICAgICAgIC8vIFRpbWVzaGlmdA0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gIngtdGltZXNoaWZ0IjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5tYXBwaW5nLnRpbWVzaGlmdC5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoImlkIiwgInRpbWVzaGlmdCIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7Lm1hcHBpbmcudGltZXNoaWZ0LnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBUT0RPOiB2YXIgc2VsZWN0ID0geG1sdHYuZ2V0UHJvZ3JhbXMoZmlsZSwgZGF0YVtkYktleV0pIC8vIHNvcnRTZWxlY3Qoc2VsZWN0KSA/DQogICAgICAgICAgICAvLyBJbnRlcmFrdGlvbg0KICAgICAgICAgICAgY29udGVudC5jcmVhdGVJbnRlcmFjdGlvbigpOw0KICAgICAgICAgICAgLy8gTG9nbyBob2NobGFkZW4NCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJjYW5jZWwiLCAie3suYnV0dG9uLnVwbG9hZExvZ299fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IHVwbG9hZExvZ28oKTsnKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgLy8gQWJicmVjaGVuDQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAiY2FuY2VsIiwgInt7LmJ1dHRvbi5jYW5jZWx9fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IHNob3dFbGVtZW50KCJwb3B1cCIsIGZhbHNlKTsnKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgLy8gRmVydGlnDQogICAgICAgICAgICB2YXIgaWRzID0gW107DQogICAgICAgICAgICBpZHMgPSBnZXRBbGxTZWxlY3RlZENoYW5uZWxzKCk7DQogICAgICAgICAgICBpZiAoaWRzLmxlbmd0aCA9PSAwKSB7DQogICAgICAgICAgICAgICAgaWRzLnB1c2goaWQpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgInNhdmUiLCAie3suYnV0dG9uLmRvbmV9fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IGRvbmVQb3B1cERhdGEoIicgKyBkYXRhVHlwZSArICciLCAiJyArIGlkcyArICciLCAiZmFsc2UiKTsnKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICBicmVhazsNCiAgICB9DQogICAgc2hvd1BvcFVwRWxlbWVudCgncG9wdXAtY3VzdG9tJyk7DQp9DQpjbGFzcyBYTUxUVkZpbGUgew0KICAgIGdldEZpbGVzKHNldCkgew0KICAgICAgICBsZXQgZmlsZUlEcyA9IGdldE9iaktleXMoU0VSVkVSWyJ4ZXBnIl1bInhtbHR2TWFwIl0pOw0KICAgICAgICBsZXQgdmFsdWVzID0gbmV3IEFycmF5KCItIik7DQogICAgICAgIGxldCB0ZXh0ID0gbmV3IEFycmF5KCItIik7DQogICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgZmlsZUlEcy5sZW5ndGg7IGkrKykgew0KICAgICAgICAgICAgaWYgKGZpbGVJRHNbaV0gIT0gInhUZVZlIER1bW15Iikgew0KICAgICAgICAgICAgICAgIHZhbHVlcy5wdXNoKGdldFZhbHVlRnJvbVByb3ZpZGVyRmlsZShmaWxlSURzW2ldLCAieG1sdHYiLCAiZmlsZS54dGV2ZSIpKTsNCiAgICAgICAgICAgICAgICB0ZXh0LnB1c2goZ2V0VmFsdWVGcm9tUHJvdmlkZXJGaWxlKGZpbGVJRHNbaV0sICJ4bWx0diIsICJuYW1lIikpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgZWxzZSB7DQogICAgICAgICAgICAgICAgdmFsdWVzLnB1c2goZmlsZUlEc1tpXSk7DQogICAgICAgICAgICAgICAgdGV4dC5wdXNoKGZpbGVJRHNbaV0pOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQogICAgICAgIGxldCBzZWxlY3QgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJTRUxFQ1QiKTsNCiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0ZXh0Lmxlbmd0aDsgaSsrKSB7DQogICAgICAgICAgICB2YXIgb3B0aW9uID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiT1BUSU9OIik7DQogICAgICAgICAgICBvcHRpb24uc2V0QXR0cmlidXRlKCJ2YWx1ZSIsIHZhbHVlc1tpXSk7DQogICAgICAgICAgICBvcHRpb24uaW5uZXJUZXh0ID0gdGV4dFtpXTsNCiAgICAgICAgICAgIHNlbGVjdC5hcHBlbmRDaGlsZChvcHRpb24pOw0KICAgICAgICB9DQogICAgICAgIGlmIChzZXQgIT0gIiIpIHsNCiAgICAgICAgICAgIHNlbGVjdC52YWx1ZSA9IHNldDsNCiAgICAgICAgfQ0KICAgICAgICByZXR1cm4gc2VsZWN0Ow0KICAgIH0NCiAgICBnZXRQcm9ncmFtcyhmaWxlLCBzZXQpIHsNCiAgICAgICAgLy92YXIgZmlsZUlEczpzdHJpbmdbXSA9IGdldE9iaktleXMoU0VSVkVSWyJ4ZXBnIl1bInhtbHR2TWFwIl0pDQogICAgICAgIGxldCB2YWx1ZXMgPSBnZXRPYmpLZXlzKFNFUlZFUlsieGVwZyJdWyJ4bWx0dk1hcCJdW2ZpbGVdKTsNCiAgICAgICAgbGV0IHRleHQgPSBbXTsNCiAgICAgICAgbGV0IGRpc3BsYXlOYW1lOw0KICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHZhbHVlcy5sZW5ndGg7IGkrKykgew0KICAgICAgICAgICAgaWYgKFNFUlZFUlsieGVwZyJdWyJ4bWx0dk1hcCJdW2ZpbGVdW3ZhbHVlc1tpXV0uaGFzT3duUHJvcGVydHkoJ2Rpc3BsYXktbmFtZScpID09IHRydWUpIHsNCiAgICAgICAgICAgICAgICBkaXNwbGF5TmFtZSA9IFNFUlZFUlsieGVwZyJdWyJ4bWx0dk1hcCJdW2ZpbGVdW3ZhbHVlc1tpXV1bImRpc3BsYXktbmFtZSJdOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgZWxzZSB7DQogICAgICAgICAgICAgICAgZGlzcGxheU5hbWUgPSAiLSI7DQogICAgICAgICAgICB9DQogICAgICAgICAgICB0ZXh0W2ldID0gZGlzcGxheU5hbWUgKyAiICgiICsgdmFsdWVzW2ldICsgIikiOw0KICAgICAgICB9DQogICAgICAgIHRleHQudW5zaGlmdCgiLSIpOw0KICAgICAgICB2YWx1ZXMudW5zaGlmdCgiLSIpOw0KICAgICAgICBsZXQgc2VsZWN0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiU0VMRUNUIik7DQogICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGV4dC5sZW5ndGg7IGkrKykgew0KICAgICAgICAgICAgdmFyIG9wdGlvbiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIk9QVElPTiIpOw0KICAgICAgICAgICAgb3B0aW9uLnNldEF0dHJpYnV0ZSgidmFsdWUiLCB2YWx1ZXNbaV0pOw0KICAgICAgICAgICAgb3B0aW9uLmlubmVyVGV4dCA9IHRleHRbaV07DQogICAgICAgICAgICBzZWxlY3QuYXBwZW5kQ2hpbGQob3B0aW9uKTsNCiAgICAgICAgfQ0KICAgICAgICBpZiAoc2V0ICE9ICIiKSB7DQogICAgICAgICAgICBzZWxlY3QudmFsdWUgPSBzZXQ7DQogICAgICAgIH0NCiAgICAgICAgaWYgKHNlbGVjdC52YWx1ZSAhPSBzZXQpIHsNCiAgICAgICAgICAgIHNlbGVjdC52YWx1ZSA9ICItIjsNCiAgICAgICAgfQ0KICAgICAgICByZXR1cm4gc2VsZWN0Ow0KICAgIH0NCn0NCmZ1bmN0aW9uIGdldFZhbHVlRnJvbVByb3ZpZGVyRmlsZShmaWxlLCBmaWxlVHlwZSwga2V5KSB7DQogICAgaWYgKGZpbGUgPT0gInhUZVZlIER1bW15Iikgew0KICAgICAgICByZXR1cm4gZmlsZTsNCiAgICB9DQogICAgbGV0IGZpbGVJRDsNCiAgICBsZXQgaW5kaWNhdG9yID0gZmlsZS5jaGFyQXQoMCk7DQogICAgc3dpdGNoIChpbmRpY2F0b3IpIHsNCiAgICAgICAgY2FzZSAiTSI6DQogICAgICAgICAgICBmaWxlVHlwZSA9ICJtM3UiOw0KICAgICAgICAgICAgZmlsZUlEID0gZmlsZTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJIIjoNCiAgICAgICAgICAgIGZpbGVUeXBlID0gImhkaHIiOw0KICAgICAgICAgICAgZmlsZUlEID0gZmlsZTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJYIjoNCiAgICAgICAgICAgIGZpbGVUeXBlID0gInhtbHR2IjsNCiAgICAgICAgICAgIGZpbGVJRCA9IGZpbGUuc3Vic3RyaW5nKDAsIGZpbGUubGFzdEluZGV4T2YoJy4nKSk7DQogICAgICAgICAgICBicmVhazsNCiAgICB9DQogICAgaWYgKFNFUlZFUlsic2V0dGluZ3MiXVsiZmlsZXMiXVtmaWxlVHlwZV0uaGFzT3duUHJvcGVydHkoZmlsZUlEKSA9PSB0cnVlKSB7DQogICAgICAgIHZhciBkYXRhID0gU0VSVkVSWyJzZXR0aW5ncyJdWyJmaWxlcyJdW2ZpbGVUeXBlXVtmaWxlSURdOw0KICAgICAgICByZXR1cm4gZGF0YVtrZXldOw0KICAgIH0NCiAgICByZXR1cm47DQp9DQpmdW5jdGlvbiBzZXRYbWx0dkNoYW5uZWwoaWQsIGVsZW1lbnQpIHsNCiAgICBsZXQgeG1sdHYgPSBuZXcgWE1MVFZGaWxlKCk7DQogICAgbGV0IHhtbEZpbGUgPSBlbGVtZW50LnZhbHVlOw0KICAgIGxldCB0dmdJZCA9IFNFUlZFUlsieGVwZyJdWyJlcGdNYXBwaW5nIl1baWRdWyJ0dmctaWQiXTsNCiAgICBsZXQgdGQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicG9wdXAtbWFwcGluZyIpLnBhcmVudEVsZW1lbnQ7DQogICAgdGQuaW5uZXJIVE1MID0gIiI7DQogICAgbGV0IHNlbGVjdCA9IHhtbHR2LmdldFByb2dyYW1zKGVsZW1lbnQudmFsdWUsIHR2Z0lkKTsNCiAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJuYW1lIiwgIngtbWFwcGluZyIpOw0KICAgIHNlbGVjdC5zZXRBdHRyaWJ1dGUoImlkIiwgInBvcHVwLW1hcHBpbmciKTsNCiAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJzsgY2hlY2tYbWx0dkNoYW5uZWwoJyIgKyBpZCArICInLHRoaXMsJyIgKyB4bWxGaWxlICsgIicpOyIpOw0KICAgIHNlbGVjdC5jbGFzc05hbWUgPSAiY2hhbmdlZCI7DQogICAgc29ydFNlbGVjdChzZWxlY3QpOw0KICAgIHRkLmFwcGVuZENoaWxkKHNlbGVjdCk7DQogICAgY2hlY2tYbWx0dkNoYW5uZWwoaWQsIHNlbGVjdCwgeG1sRmlsZSk7DQp9DQpmdW5jdGlvbiBjaGVja1htbHR2Q2hhbm5lbChpZCwgZWxlbWVudCwgeG1sRmlsZSkgew0KICAgIGxldCB2YWx1ZSA9IGVsZW1lbnQudmFsdWU7DQogICAgbGV0IGJvb2w7DQogICAgbGV0IGNoZWNrYm94ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2FjdGl2ZScpOw0KICAgIGxldCBjaGFubmVsID0gU0VSVkVSWyJ4ZXBnIl1bImVwZ01hcHBpbmciXVtpZF07DQogICAgbGV0IHVwZGF0ZUxvZ287DQogICAgYm9vbCA9IHZhbHVlICE9ICItIjsNCiAgICBjaGVja2JveC5jaGVja2VkID0gYm9vbDsNCiAgICBjaGVja2JveC5jbGFzc05hbWUgPSAiY2hhbmdlZCI7DQogICAgY29uc29sZS5sb2coeG1sRmlsZSk7DQogICAgLy8gS2FuYWxsb2dvIGFrdHVhbGlzaWVyZW4NCiAgICAvKg0KICAgIHVwZGF0ZUxvZ28gPSAoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInVwZGF0ZS1pY29uIikgYXMgSFRNTElucHV0RWxlbWVudCkuY2hlY2tlZA0KICAgIGNvbnNvbGUubG9nKHVwZGF0ZUxvZ28pOw0KICAgICovDQogICAgaWYgKHhtbEZpbGUgIT0gInhUZVZlIER1bW15IiAmJiBib29sID09IHRydWUpIHsNCiAgICAgICAgLy8oZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInVwZGF0ZS1pY29uIikgYXMgSFRNTElucHV0RWxlbWVudCkuY2hlY2tlZCA9IHRydWU7DQogICAgICAgIC8vKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ1cGRhdGUtaWNvbiIpIGFzIEhUTUxJbnB1dEVsZW1lbnQpLmNsYXNzTmFtZSA9ICJjaGFuZ2VkIjsNCiAgICAgICAgY29uc29sZS5sb2coIklEIiwgaWQpOw0KICAgICAgICBjaGFuZ2VDaGFubmVsTG9nbyhpZCk7DQogICAgICAgIHJldHVybjsNCiAgICB9DQogICAgaWYgKHhtbEZpbGUgPT0gInhUZVZlIER1bW15Iikgew0KICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidXBkYXRlLWljb24iKS5jaGVja2VkID0gZmFsc2U7DQogICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ1cGRhdGUtaWNvbiIpLmNsYXNzTmFtZSA9ICJjaGFuZ2VkIjsNCiAgICB9DQogICAgcmV0dXJuOw0KfQ0KZnVuY3Rpb24gY2hhbmdlQ2hhbm5lbExvZ28oaWQpIHsNCiAgICBsZXQgdXBkYXRlTG9nbzsNCiAgICBsZXQgY2hhbm5lbCA9IFNFUlZFUlsieGVwZyJdWyJlcGdNYXBwaW5nIl1baWRdOw0KICAgIGxldCBmID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInBvcHVwLXhtbHR2Iik7DQogICAgbGV0IHhtbHR2RmlsZSA9IGYub3B0aW9uc1tmLnNlbGVjdGVkSW5kZXhdLnZhbHVlOw0KICAgIGxldCBtID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInBvcHVwLW1hcHBpbmciKTsNCiAgICBsZXQgeE1hcHBpbmcgPSBtLm9wdGlvbnNbbS5zZWxlY3RlZEluZGV4XS52YWx1ZTsNCiAgICBsZXQgeG1sdHZMb2dvID0gU0VSVkVSWyJ4ZXBnIl1bInhtbHR2TWFwIl1beG1sdHZGaWxlXVt4TWFwcGluZ11bImljb24iXTsNCiAgICB1cGRhdGVMb2dvID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInVwZGF0ZS1pY29uIikuY2hlY2tlZDsNCiAgICBpZiAodXBkYXRlTG9nbyA9PSB0cnVlICYmIHhtbHR2RmlsZSAhPSAieFRlVmUgRHVtbXkiKSB7DQogICAgICAgIGlmIChTRVJWRVJbInhlcGciXVsieG1sdHZNYXAiXVt4bWx0dkZpbGVdLmhhc093blByb3BlcnR5KHhNYXBwaW5nKSkgew0KICAgICAgICAgICAgdmFyIGxvZ28gPSB4bWx0dkxvZ287DQogICAgICAgIH0NCiAgICAgICAgZWxzZSB7DQogICAgICAgICAgICBsb2dvID0gY2hhbm5lbFsidHZnLWxvZ28iXTsNCiAgICAgICAgfQ0KICAgICAgICB2YXIgbG9nb0lucHV0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNoYW5uZWwtaWNvbiIpOw0KICAgICAgICBsb2dvSW5wdXQudmFsdWUgPSBsb2dvOw0KICAgICAgICBpZiAoQlVMS19FRElUID09IGZhbHNlKSB7DQogICAgICAgICAgICBsb2dvSW5wdXQuY2xhc3NOYW1lID0gImNoYW5nZWQiOw0KICAgICAgICB9DQogICAgfQ0KfQ0KZnVuY3Rpb24gc2F2ZVBvcHVwRGF0YShkYXRhVHlwZSwgaWQsIHJlbW92ZSwgb3B0aW9uKSB7DQogICAgaWYgKGRhdGFUeXBlID09ICJtYXBwaW5nIikgew0KICAgICAgICBsZXQgZGF0YSA9IHt9Ow0KICAgICAgICBjb25zb2xlLmxvZygiU2F2ZSBtYXBwaW5nIGRhdGEiKTsNCiAgICAgICAgbGV0IGNtZCA9ICJzYXZlRXBnTWFwcGluZyI7DQogICAgICAgIGRhdGFbImVwZ01hcHBpbmciXSA9IFNFUlZFUlsieGVwZyJdWyJlcGdNYXBwaW5nIl07DQogICAgICAgIGNvbnNvbGUubG9nKCJTRU5EIFRPIFNFUlZFUiIpOw0KICAgICAgICBsZXQgc2VydmVyID0gbmV3IFNlcnZlcihjbWQpOw0KICAgICAgICBzZXJ2ZXIucmVxdWVzdChkYXRhKTsNCiAgICAgICAgZGVsZXRlIFVORE9bImVwZ01hcHBpbmciXTsNCiAgICAgICAgcmV0dXJuOw0KICAgIH0NCiAgICBjb25zb2xlLmxvZygiU2F2ZSBwb3B1cCBkYXRhIik7DQogICAgbGV0IGRpdiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJwb3B1cC1jdXN0b20iKTsNCiAgICBsZXQgaW5wdXRzID0gZGl2LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJUQUJMRSIpWzBdLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJJTlBVVCIpOw0KICAgIGxldCBzZWxlY3RzID0gZGl2LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJUQUJMRSIpWzBdLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJTRUxFQ1QiKTsNCiAgICBsZXQgaW5wdXQgPSB7fTsNCiAgICBsZXQgY29uZmlybU1zZzsNCiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHNlbGVjdHMubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgdmFyIG5hbWU7DQogICAgICAgIG5hbWUgPSBzZWxlY3RzW2ldLm5hbWU7DQogICAgICAgIHZhciB2YWx1ZSA9IHNlbGVjdHNbaV0udmFsdWU7DQogICAgICAgIHN3aXRjaCAobmFtZSkgew0KICAgICAgICAgICAgY2FzZSAidHVuZXIiOg0KICAgICAgICAgICAgICAgIGlucHV0W25hbWVdID0gcGFyc2VJbnQodmFsdWUpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgICAgICBpbnB1dFtuYW1lXSA9IHZhbHVlOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICB9DQogICAgfQ0KICAgIGZvciAobGV0IGkgPSAwOyBpIDwgaW5wdXRzLmxlbmd0aDsgaSsrKSB7DQogICAgICAgIHN3aXRjaCAoaW5wdXRzW2ldLnR5cGUpIHsNCiAgICAgICAgICAgIGNhc2UgImNoZWNrYm94IjoNCiAgICAgICAgICAgICAgICBuYW1lID0gaW5wdXRzW2ldLm5hbWU7DQogICAgICAgICAgICAgICAgaW5wdXRbbmFtZV0gPSBpbnB1dHNbaV0uY2hlY2tlZDsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInRleHQiOg0KICAgICAgICAgICAgY2FzZSAiaGlkZGVuIjoNCiAgICAgICAgICAgIGNhc2UgInBhc3N3b3JkIjoNCiAgICAgICAgICAgICAgICBuYW1lID0gaW5wdXRzW2ldLm5hbWU7DQogICAgICAgICAgICAgICAgc3dpdGNoIChuYW1lKSB7DQogICAgICAgICAgICAgICAgICAgIGNhc2UgInR1bmVyIjoNCiAgICAgICAgICAgICAgICAgICAgICAgIGlucHV0W25hbWVdID0gcGFyc2VJbnQoaW5wdXRzW2ldLnZhbHVlKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgICAgICBkZWZhdWx0Og0KICAgICAgICAgICAgICAgICAgICAgICAgaW5wdXRbbmFtZV0gPSBpbnB1dHNbaV0udmFsdWU7DQogICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIH0NCiAgICB9DQogICAgbGV0IGRhdGEgPSB7fTsNCiAgICBsZXQgY21kOw0KICAgIGlmIChyZW1vdmUgPT0gdHJ1ZSkgew0KICAgICAgICBpbnB1dFsiZGVsZXRlIl0gPSB0cnVlOw0KICAgIH0NCiAgICBzd2l0Y2ggKGRhdGFUeXBlKSB7DQogICAgICAgIGNhc2UgInVzZXJzIjoNCiAgICAgICAgICAgIGNvbmZpcm1Nc2cgPSAiRGVsZXRlIHRoaXMgdXNlcj8iOw0KICAgICAgICAgICAgaWYgKGlkID09ICItIikgew0KICAgICAgICAgICAgICAgIGNtZCA9ICJzYXZlTmV3VXNlciI7DQogICAgICAgICAgICAgICAgZGF0YVsidXNlckRhdGEiXSA9IGlucHV0Ow0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgZWxzZSB7DQogICAgICAgICAgICAgICAgY21kID0gInNhdmVVc2VyRGF0YSI7DQogICAgICAgICAgICAgICAgbGV0IGQgPSB7fTsNCiAgICAgICAgICAgICAgICBkW2lkXSA9IGlucHV0Ow0KICAgICAgICAgICAgICAgIGRhdGFbInVzZXJEYXRhIl0gPSBkOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGNhc2UgIm0zdSI6DQogICAgICAgICAgICBjb25maXJtTXNnID0gIkRlbGV0ZSB0aGlzIHBsYXlsaXN0PyI7DQogICAgICAgICAgICBzd2l0Y2ggKG9wdGlvbikgew0KICAgICAgICAgICAgICAgIC8vIFBvcHVwOiBTYXZlDQogICAgICAgICAgICAgICAgY2FzZSAwOg0KICAgICAgICAgICAgICAgICAgICBjbWQgPSAic2F2ZUZpbGVzTTNVIjsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgLy8gUG9wdXA6IFVwZGF0ZQ0KICAgICAgICAgICAgICAgIGNhc2UgMToNCiAgICAgICAgICAgICAgICAgICAgY21kID0gInVwZGF0ZUZpbGVNM1UiOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGRhdGFbImZpbGVzIl0gPSB7fTsNCiAgICAgICAgICAgIGRhdGFbImZpbGVzIl1bZGF0YVR5cGVdID0ge307DQogICAgICAgICAgICBkYXRhWyJmaWxlcyJdW2RhdGFUeXBlXVtpZF0gPSBpbnB1dDsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJoZGhyIjoNCiAgICAgICAgICAgIGNvbmZpcm1Nc2cgPSAiRGVsZXRlIHRoaXMgSERIb21lUnVuIHR1bmVyPyI7DQogICAgICAgICAgICBzd2l0Y2ggKG9wdGlvbikgew0KICAgICAgICAgICAgICAgIC8vIFBvcHVwOiBTYXZlDQogICAgICAgICAgICAgICAgY2FzZSAwOg0KICAgICAgICAgICAgICAgICAgICBjbWQgPSAic2F2ZUZpbGVzSERIUiI7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIC8vIFBvcHVwOiBVcGRhdGUNCiAgICAgICAgICAgICAgICBjYXNlIDE6DQogICAgICAgICAgICAgICAgICAgIGNtZCA9ICJ1cGRhdGVGaWxlSERIUiI7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgZGF0YVsiZmlsZXMiXSA9IHt9Ow0KICAgICAgICAgICAgZGF0YVsiZmlsZXMiXVtkYXRhVHlwZV0gPSB7fTsNCiAgICAgICAgICAgIGRhdGFbImZpbGVzIl1bZGF0YVR5cGVdW2lkXSA9IGlucHV0Ow0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGNhc2UgInhtbHR2IjoNCiAgICAgICAgICAgIGNvbmZpcm1Nc2cgPSAiRGVsZXRlIHRoaXMgWE1MVFYgZmlsZT8iOw0KICAgICAgICAgICAgc3dpdGNoIChvcHRpb24pIHsNCiAgICAgICAgICAgICAgICAvLyBQb3B1cDogU2F2ZQ0KICAgICAgICAgICAgICAgIGNhc2UgMDoNCiAgICAgICAgICAgICAgICAgICAgY21kID0gInNhdmVGaWxlc1hNTFRWIjsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgLy8gUG9wdXA6IFVwZGF0ZQ0KICAgICAgICAgICAgICAgIGNhc2UgMToNCiAgICAgICAgICAgICAgICAgICAgY21kID0gInVwZGF0ZUZpbGVYTUxUViI7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgZGF0YVsiZmlsZXMiXSA9IHt9Ow0KICAgICAgICAgICAgZGF0YVsiZmlsZXMiXVtkYXRhVHlwZV0gPSB7fTsNCiAgICAgICAgICAgIGRhdGFbImZpbGVzIl1bZGF0YVR5cGVdW2lkXSA9IGlucHV0Ow0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGNhc2UgImZpbHRlciI6DQogICAgICAgICAgICBjb25maXJtTXNnID0gIkRlbGV0ZSB0aGlzIGZpbHRlcj8iOw0KICAgICAgICAgICAgY21kID0gInNhdmVGaWx0ZXIiOw0KICAgICAgICAgICAgZGF0YVsiZmlsdGVyIl0gPSB7fTsNCiAgICAgICAgICAgIGRhdGFbImZpbHRlciJdW2lkXSA9IGlucHV0Ow0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICBjb25zb2xlLmxvZyhkYXRhVHlwZSwgaWQpOw0KICAgICAgICAgICAgcmV0dXJuOw0KICAgIH0NCiAgICBpZiAocmVtb3ZlID09IHRydWUpIHsNCiAgICAgICAgaWYgKCFjb25maXJtKGNvbmZpcm1Nc2cpKSB7DQogICAgICAgICAgICBzaG93RWxlbWVudCgicG9wdXAiLCBmYWxzZSk7DQogICAgICAgICAgICByZXR1cm47DQogICAgICAgIH0NCiAgICB9DQogICAgY29uc29sZS5sb2coIlNFTkQgVE8gU0VSVkVSIik7DQogICAgY29uc29sZS5sb2coZGF0YSk7DQogICAgbGV0IHNlcnZlciA9IG5ldyBTZXJ2ZXIoY21kKTsNCiAgICBzZXJ2ZXIucmVxdWVzdChkYXRhKTsNCn0NCmZ1bmN0aW9uIGRvbmVQb3B1cERhdGEoZGF0YVR5cGUsIGlkc1N0cikgew0KICAgIGxldCBpZHMgPSBpZHNTdHIuc3BsaXQoJywnKTsNCiAgICBsZXQgZGl2ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInBvcHVwLWN1c3RvbSIpOw0KICAgIGxldCBpbnB1dHMgPSBkaXYuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSgiY2hhbmdlZCIpOw0KICAgIGlkcy5mb3JFYWNoKGlkID0+IHsNCiAgICAgICAgbGV0IGlucHV0Ow0KICAgICAgICBpbnB1dCA9IFNFUlZFUlsieGVwZyJdWyJlcGdNYXBwaW5nIl1baWRdOw0KICAgICAgICBjb25zb2xlLmxvZyhpbnB1dCk7DQogICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgaW5wdXRzLmxlbmd0aDsgaSsrKSB7DQogICAgICAgICAgICBsZXQgbmFtZTsNCiAgICAgICAgICAgIGxldCB2YWx1ZTsNCiAgICAgICAgICAgIHN3aXRjaCAoaW5wdXRzW2ldLnRhZ05hbWUpIHsNCiAgICAgICAgICAgICAgICBjYXNlICJJTlBVVCI6DQogICAgICAgICAgICAgICAgICAgIHN3aXRjaCAoaW5wdXRzW2ldLnR5cGUpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgImNoZWNrYm94IjoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lID0gaW5wdXRzW2ldLm5hbWU7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSBpbnB1dHNbaV0uY2hlY2tlZDsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnB1dFtuYW1lXSA9IHZhbHVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAidGV4dCI6DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZSA9IGlucHV0c1tpXS5uYW1lOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlID0gaW5wdXRzW2ldLnZhbHVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlucHV0W25hbWVdID0gdmFsdWU7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAiU0VMRUNUIjoNCiAgICAgICAgICAgICAgICAgICAgbmFtZSA9IGlucHV0c1tpXS5uYW1lOw0KICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IGlucHV0c1tpXS52YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgaW5wdXRbbmFtZV0gPSB2YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBzd2l0Y2ggKG5hbWUpIHsNCiAgICAgICAgICAgICAgICBjYXNlICJ0dmctbG9nbyI6DQogICAgICAgICAgICAgICAgICAgIC8vKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5jaGlsZE5vZGVzWzJdLmZpcnN0Q2hpbGQgYXMgSFRNTEVsZW1lbnQpLnNldEF0dHJpYnV0ZSgic3JjIiwgdmFsdWUpDQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgIngtbmFtZSI6DQogICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5jaGlsZE5vZGVzWzNdLmZpcnN0Q2hpbGQuaW5uZXJIVE1MID0gdmFsdWU7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgIngtY2F0ZWdvcnkiOg0KICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkuY2hpbGROb2Rlc1szXS5maXJzdENoaWxkLmNsYXNzTmFtZSA9IHZhbHVlOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBjYXNlICJ4LWdyb3VwLXRpdGxlIjoNCiAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpLmNoaWxkTm9kZXNbNV0uZmlyc3RDaGlsZC5pbm5lckhUTUwgPSB2YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAieC14bWx0di1maWxlIjoNCiAgICAgICAgICAgICAgICAgICAgaWYgKHZhbHVlICE9ICJ4VGVWZSBEdW1teSIgJiYgdmFsdWUgIT0gIi0iKSB7DQogICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IGdldFZhbHVlRnJvbVByb3ZpZGVyRmlsZSh2YWx1ZSwgInhtbHR2IiwgIm5hbWUiKTsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBpZiAodmFsdWUgPT0gIi0iKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBpbnB1dFsieC1hY3RpdmUiXSA9IGZhbHNlOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5jaGlsZE5vZGVzWzZdLmZpcnN0Q2hpbGQuaW5uZXJIVE1MID0gdmFsdWU7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgIngtbWFwcGluZyI6DQogICAgICAgICAgICAgICAgICAgIGlmICh2YWx1ZSA9PSAiLSIpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGlucHV0WyJ4LWFjdGl2ZSJdID0gZmFsc2U7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpLmNoaWxkTm9kZXNbN10uZmlyc3RDaGlsZC5pbm5lckhUTUwgPSB2YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAieC10aW1lc2hpZnQiOg0KICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkuY2hpbGROb2Rlc1s4XS5maXJzdENoaWxkLmlubmVySFRNTCA9IHZhbHVlOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBkZWZhdWx0Og0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgY3JlYXRlU2VhcmNoT2JqKCk7DQogICAgICAgICAgICBzZWFyY2hJbk1hcHBpbmcoKTsNCiAgICAgICAgfQ0KICAgICAgICBpZiAoaW5wdXRbIngtYWN0aXZlIl0gPT0gZmFsc2UpIHsNCiAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5jbGFzc05hbWUgPSAibm90QWN0aXZlRVBHIjsNCiAgICAgICAgfQ0KICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5jbGFzc05hbWUgPSAiYWN0aXZlRVBHIjsNCiAgICAgICAgfQ0KICAgICAgICBjb25zb2xlLmxvZyhpbnB1dFsidHZnLWxvZ28iXSk7DQogICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5jaGlsZE5vZGVzWzJdLmZpcnN0Q2hpbGQuc2V0QXR0cmlidXRlKCJzcmMiLCBpbnB1dFsidHZnLWxvZ28iXSk7DQogICAgfSk7DQogICAgc2hvd0VsZW1lbnQoInBvcHVwIiwgZmFsc2UpOw0KICAgIHJldHVybjsNCn0NCmZ1bmN0aW9uIHNob3dQcmV2aWV3KGVsZW1lbnQpIHsNCiAgICBsZXQgZGl2ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm15U3RyZWFtc0JveCIpOw0KICAgIHN3aXRjaCAoZWxlbWVudCkgew0KICAgICAgICBjYXNlIGZhbHNlOg0KICAgICAgICAgICAgZGl2LmNsYXNzTmFtZSA9ICJub3RWaXNpYmxlIjsNCiAgICAgICAgICAgIHJldHVybjsNCiAgICB9DQogICAgbGV0IHN0cmVhbXMgPSBbImFjdGl2ZVN0cmVhbXMiLCAiaW5hY3RpdmVTdHJlYW1zIl07DQogICAgc3RyZWFtcy5mb3JFYWNoKHByZXZpZXcgPT4gew0KICAgICAgICBsZXQgdGFibGUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChwcmV2aWV3KTsNCiAgICAgICAgdGFibGUuaW5uZXJIVE1MID0gIiI7DQogICAgICAgIGxldCBvYmogPSBTRVJWRVJbImRhdGEiXVsiU3RyZWFtUHJldmlld1VJIl1bcHJldmlld107DQogICAgICAgIG9iai5mb3JFYWNoKGNoYW5uZWwgPT4gew0KICAgICAgICAgICAgbGV0IHRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVFIiKTsNCiAgICAgICAgICAgIGxldCB0ZEtleSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICBsZXQgdGRWYWwgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgdGRLZXkuY2xhc3NOYW1lID0gInRkS2V5IjsNCiAgICAgICAgICAgIHRkVmFsLmNsYXNzTmFtZSA9ICJ0ZFZhbCI7DQogICAgICAgICAgICBzd2l0Y2ggKHByZXZpZXcpIHsNCiAgICAgICAgICAgICAgICBjYXNlICJhY3RpdmVTdHJlYW1zIjoNCiAgICAgICAgICAgICAgICAgICAgdGRLZXkuaW5uZXJUZXh0ID0gIkNoYW5uZWw6ICgrKSI7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgImluYWN0aXZlU3RyZWFtcyI6DQogICAgICAgICAgICAgICAgICAgIHRkS2V5LmlubmVyVGV4dCA9ICJDaGFubmVsOiAoLSkiOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIHRkVmFsLmlubmVyVGV4dCA9IGNoYW5uZWw7DQogICAgICAgICAgICB0ci5hcHBlbmRDaGlsZCh0ZEtleSk7DQogICAgICAgICAgICB0ci5hcHBlbmRDaGlsZCh0ZFZhbCk7DQogICAgICAgICAgICB0YWJsZS5hcHBlbmRDaGlsZCh0cik7DQogICAgICAgIH0pOw0KICAgIH0pOw0KICAgIHNob3dFbGVtZW50KCJsb2FkaW5nIiwgZmFsc2UpOw0KICAgIGRpdi5jbGFzc05hbWUgPSAidmlzaWJsZSI7DQogICAgcmV0dXJuOw0KfQ0K" webUI["html/lang/en.json"] = "ew0KICAibWFpbk1lbnUiOg0KICB7DQogICAgIml0ZW0iOg0KICAgIHsNCiAgICAgICJwbGF5bGlzdCI6ICJQbGF5bGlzdCIsDQogICAgICAicG1zSUQiOiAiUE1TIElEIiwNCiAgICAgICJmaWx0ZXIiOiAiRmlsdGVyIiwNCiAgICAgICJ4bWx0diI6ICJYTUxUViIsDQogICAgICAibWFwcGluZyI6ICJNYXBwaW5nIiwNCiAgICAgICJ1c2VycyI6ICJVc2VycyIsDQogICAgICAic2V0dGluZ3MiOiAiU2V0dGluZ3MiLA0KICAgICAgImxvZyI6ICJMb2ciLA0KICAgICAgImxvZ291dCI6ICJMb2dvdXQiDQogICAgfSwNCiAgICAiaGVhZGxpbmUiOg0KICAgIHsNCiAgICAgICJwbGF5bGlzdCI6ICJMb2NhbCBvciByZW1vdGUgcGxheWxpc3RzIiwNCiAgICAgICJmaWx0ZXIiOiAiRmlsdGVyIHBsYXlsaXN0IiwNCiAgICAgICJ4bWx0diI6ICJMb2NhbCBvciByZW1vdGUgWE1MVFYgZmlsZXMiLA0KICAgICAgIm1hcHBpbmciOiAiTWFwIHBsYXlsaXN0IGNoYW5uZWxzIHRvIEVQRyBjaGFubmVscyIsDQogICAgICAidXNlcnMiOiAiVXNlciBtYW5hZ2VtZW50IiwNCiAgICAgICJzZXR0aW5ncyI6ICJTZXR0aW5ncyIsDQogICAgICAibG9nIjogIkxvZyIsDQogICAgICAibG9nb3V0IjogIkxvZ291dCINCiAgICB9DQogIH0sDQogICJjb25maXJtIjoNCiAgew0KICAgICJyZXN0b3JlIjogIkFsbCBkYXRhIHdpbGwgYmUgcmVwbGFjZWQgd2l0aCB0aG9zZSBmcm9tIHRoZSBiYWNrdXAuIFNob3VsZCB0aGUgZmlsZXMgYmUgcmVzdG9yZWQ/Ig0KICB9LA0KICAiYWxlcnQiOg0KICB7DQogICAgImZpbGVMb2FkaW5nRXJyb3IiOiAiRmlsZSBjb3VsZG4ndCBiZSBsb2FkZWQiLA0KICAgICJpbnZhbGlkQ2hhbm5lbE51bWJlciI6ICJJbnZhbGlkIGNoYW5uZWwgbnVtYmVyIiwNCiAgICAibWlzc2luZ0lucHV0IjogIk1pc3NpbmcgaW5wdXQiDQogIH0sDQogICJidXR0b24iOg0KICB7DQogICAgImJhY2siOiAiQmFjayIsDQogICAgImJhY2t1cCI6ICJCYWNrdXAiLA0KICAgICJidWxrRWRpdCI6ICJCdWxrIEVkaXQiLA0KICAgICJjYW5jZWwiOiAiQ2FuY2VsIiwNCiAgICAiZGVsZXRlIjogIkRlbGV0ZSIsDQogICAgImRvbmUiOiAiRG9uZSIsDQogICAgImxvZ2luIjogIkxvZ2luIiwNCiAgICAibmV3IjogIk5ldyIsDQogICAgIm5leHQiOiAiTmV4dCIsDQogICAgInJlc3RvcmUiOiAiUmVzdG9yZSIsDQogICAgInNhdmUiOiAiU2F2ZSIsDQogICAgInNlYXJjaCI6ICJTZWFyY2giLA0KICAgICJ1cGRhdGUiOiAiVXBkYXRlIiwNCiAgICAiY3JhZXRlQWNjb3VudCI6ICJDcmVhdGUgQWNjb3VudCIsDQogICAgInJlc2V0TG9ncyI6ICJSZXNldCBMb2dzIiwNCiAgICAidXBsb2FkTG9nbyI6ICJVcGxvYWQgTG9nbyINCiAgfSwNCiAgImZpbHRlciI6DQogIHsNCiAgICAidGFibGUiOg0KICAgIHsNCiAgICAgICJuYW1lIjogIkZpbHRlciBOYW1lIiwNCiAgICAgICJ0eXBlIjogIkZpbHRlciBUeXBlIiwNCiAgICAgICJmaWx0ZXIiOiAiRmlsdGVyIg0KICAgIH0sDQogICAgImN1c3RvbSI6ICJDdXN0b20iLA0KICAgICJncm91cCI6ICJNM1UgR3JvdXAiLA0KICAgICJuYW1lIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiRmlsdGVyIE5hbWUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIkZpbHRlciBuYW1lIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAiZGVzY3JpcHRpb24iOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJEZXNjcmlwdGlvbiIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiRGVzY3JpcHRpb24iLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJ0eXBlIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiVHlwZSIsDQogICAgICAiZ3JvdXBUaXRsZSI6ICJHcm91cCBUaXRsZSIsDQogICAgICAiY3VzdG9tRmlsdGVyIjogIkN1c3RvbSBGaWx0ZXIiDQogICAgfSwNCiAgICAiY2FzZVNlbnNpdGl2ZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIkNhc2UgU2Vuc2l0aXZlIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJmaWx0ZXJSdWxlIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiRmlsdGVyIFJ1bGUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIlNwb3J0IHtIRH0gIXtFUyxJVH0iLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJmaWx0ZXJHcm91cCI6DQogICAgew0KICAgICAgInRpdGxlIjogIkdyb3VwIFRpdGxlIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIlNlbGVjdCBhIE0zVSBncm91cC4gKENvdW50ZXIpPGJyPkNoYW5naW5nIHRoZSBncm91cCB0aXRsZSBpbiB0aGUgTTNVIGludmFsaWRhdGVzIHRoZSBmaWx0ZXIuIg0KICAgIH0sDQogICAgImluY2x1ZGUiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJJbmNsdWRlIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJGSEQsVUhEIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJDaGFubmVsIG5hbWUgbXVzdCBpbmNsdWRlLjxicj4oQ29tbWEgc2VwYXJhdGVkKSBDb21tYSBtZWFucyBvciINCiAgICB9LA0KICAgICJleGNsdWRlIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiRXhjbHVkZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiRVMsSVQiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIkNoYW5uZWwgbmFtZSBtdXN0IG5vdCBjb250YWluLjxicj4oQ29tbWEgc2VwYXJhdGVkKSBDb21tYSBtZWFucyBvciINCiAgICB9LA0KICAgICJwcmVzZXJ2ZU1hcHBpbmciOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJQcmVzZXJ2ZSBFeGlzdGluZyBNM1U8YnI+Q2hhbm5lbCBOdW1iZXJzIiwNCiAgICAgICJwYWxjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIlByZXNlcnZlIGV4aXN0aW5nIE0zVSBwbGF5bGlzdCBjaGFubmVsIG51bWJlcnM/Ig0KICAgIH0sDQogICAgInN0YXJ0aW5nQ2hhbm5lbCI6DQogICAgew0KICAgICAgInRpdGxlIjogIlN0YXJ0aW5nIENoYW5uZWwgTnVtYmVyIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJkZWZhdWx0TWlzc2luZ0VQRyI6DQogICAgew0KICAgICAgInRpdGxlIjogIkZpbGwgTWlzc2luZyBFUEcgRGF0YSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJXaGVuIHRoZXJlIGlzIG5vIG1hdGNoaW5nIEVQRyBkYXRhIGZvciBjaGFubmVsLCA8YnI+YXV0b2ZpbGwgd2l0aCB4VGVWZSBkdW1teSBFUEcgZGF0YT8iDQogICAgfQ0KDQogIH0sDQogICJwbGF5bGlzdCI6DQogIHsNCiAgICAidGFibGUiOg0KICAgIHsNCiAgICAgICJwbGF5bGlzdCI6ICJQbGF5bGlzdCIsDQogICAgICAidHVuZXIiOiAiVHVuZXIiLA0KICAgICAgImxhc3RVcGRhdGUiOiAiTGFzdCBVcGRhdGUiLA0KICAgICAgImF2YWlsYWJpbGl0eSI6ICJBdmFpbGFiaWxpdHkiLA0KICAgICAgInR5cGUiOiAiVHlwZSIsDQogICAgICAic3RyZWFtcyI6ICJTdHJlYW1zIiwNCiAgICAgICJncm91cFRpdGxlIjogImdyb3VwLXRpdGxlIiwNCiAgICAgICJ0dmdJRCI6ICJ0dmctaWQiLA0KICAgICAgInVuaXF1ZUlEIjogIlVuaXF1ZSBJRCINCiAgICB9LA0KICAgICJwbGF5bGlzdFR5cGUiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJQbGF5bGlzdCB0eXBlIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJ0eXBlIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiVHlwZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAibmFtZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIk5hbWUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIlBsYXlsaXN0IG5hbWUiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJkZXNjcmlwdGlvbiI6DQogICAgew0KICAgICAgInRpdGxlIjogIkRlc2NyaXB0aW9uIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJEZXNjcmlwdGlvbiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgImZpbGVNM1UiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJNM1UgRmlsZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiRmlsZSBwYXRoIG9yIFVSTCBvZiB0aGUgTTNVIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAiZmlsZUhESFIiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJIREhvbWVSdW4gSVAiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIklQIGFkZHJlc3MgYW5kIHBvcnQgKDE5Mi4xNjguMS4xMDo1MDA0KSIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgInR1bmVyIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiVHVuZXIgLyBTdHJlYW1zIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIk51bWJlciBvZiBwYXJhbGxlbCBjb25uZWN0aW9ucyB0aGF0IGNhbiBiZSBlc3RhYmxpc2hlZCB0byB0aGUgcHJvdmlkZXIuIDxicj5Pbmx5IGF2YWlsYWJsZSB3aXRoIGFjdGl2YXRlZCBidWZmZXIuPGJyPk5ldyBzZXR0aW5ncyB3aWxsIG9ubHkgYmUgYXBwbGllZCBhZnRlciBxdWl0dGluZyBhbGwgc3RyZWFtcy4iDQogICAgfQ0KICB9LA0KICAieG1sdHYiOg0KICB7DQogICAgInRhYmxlIjoNCiAgICB7DQogICAgICAiZ3VpZGUiOiAiR3VpZGUiLA0KICAgICAgImxhc3RVcGRhdGUiOiAiTGFzdCBVcGRhdGUiLA0KICAgICAgImF2YWlsYWJpbGl0eSI6ICJBdmFpbGFiaWxpdHkiLA0KICAgICAgImNoYW5uZWxzIjogIkNoYW5uZWxzIiwNCiAgICAgICJwcm9ncmFtcyI6ICJQcm9ncmFtcyINCiAgICB9LA0KICAgICJuYW1lIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiTmFtZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiR3VpZGUgbmFtZSIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgImRlc2NyaXB0aW9uIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiRGVzY3JpcHRpb24iLA0KICAgICAgInBsYWNlaG9sZGVyIjogIkRlc2NyaXB0aW9uIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAiZmlsZVhNTFRWIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiWE1MVFYgRmlsZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiRmlsZSBwYXRoIG9yIFVSTCBvZiB0aGUgWE1MVFYiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9DQogIH0sDQogICJtYXBwaW5nIjoNCiAgew0KICAgICJ0YWJsZSI6DQogICAgew0KICAgICAgImNoTm8iOiAiQ2guIE5vLiIsDQogICAgICAibG9nbyI6ICJMb2dvIiwNCiAgICAgICJjaGFubmVsTmFtZSI6ICJDaGFubmVsIE5hbWUiLA0KICAgICAgInBsYXlsaXN0IjogIlBsYXlsaXN0IiwNCiAgICAgICJncm91cFRpdGxlIjogIkdyb3VwIFRpdGxlIiwNCiAgICAgICJ4bWx0dkZpbGUiOiAiWE1MVFYgRmlsZSIsDQogICAgICAieG1sdHZJRCI6ICJYTUxUViBJRCIsDQogICAgICAidGltZXNoaWZ0IjogIlRpbWVzaGlmdCINCiAgICB9LA0KICAgICJhY3RpdmUiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJBY3RpdmUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgImNoYW5uZWxOYW1lIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiQ2hhbm5lbCBOYW1lIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJkZXNjcmlwdGlvbiI6DQogICAgew0KICAgICAgInRpdGxlIjogIkNoYW5uZWwgRGVzY3JpcHRpb24iLA0KICAgICAgInBsYWNlaG9sZGVyIjogIlVzZWQgYnkgdGhlIER1bW15IGFzIGFuIFhNTCBkZXNjcmlwdGlvbiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgInVwZGF0ZUNoYW5uZWxOYW1lIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiVXBkYXRlIENoYW5uZWwgTmFtZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAiY2hhbm5lbExvZ28iOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJMb2dvIFVSTCIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAidXBkYXRlQ2hhbm5lbExvZ28iOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJVcGRhdGUgQ2hhbm5lbCBMb2dvIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJlcGdDYXRlZ29yeSI6DQogICAgew0KICAgICAgInRpdGxlIjogIkVQRyBDYXRlZ29yeSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAibTN1R3JvdXBUaXRsZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIkdyb3VwIFRpdGxlICh4dGV2ZS5tM3UpIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJ4bWx0dkZpbGUiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJYTUxUViBGaWxlIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJ4bWx0dkNoYW5uZWwiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJYTUxUViBDaGFubmVsIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJ0aW1lc2hpZnQiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJUaW1lc2hpZnQiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIjAiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9DQogIH0sDQogICJ1c2VycyI6DQogIHsNCiAgICAidGFibGUiOg0KICAgIHsNCiAgICAgICJ1c2VybmFtZSI6ICJVc2VybmFtZSIsDQogICAgICAicGFzc3dvcmQiOiAiUGFzc3dvcmQiLA0KICAgICAgIndlYiI6ICJXRUIiLA0KICAgICAgInBtcyI6ICJQTVMiLA0KICAgICAgIm0zdSI6ICJNM1UiLA0KICAgICAgInhtbCI6ICJYTUwiLA0KICAgICAgImFwaSI6ICJBUEkiDQogICAgfSwNCiAgICAidXNlcm5hbWUiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJVc2VybmFtZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiVXNlcm5hbWUiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJwYXNzd29yZCI6DQogICAgew0KICAgICAgInRpdGxlIjogIlBhc3N3b3JkIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJQYXNzd29yZCIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgImNvbmZpcm0iOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJDb25maXJtIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJQYXNzd29yZCBjb25maXJtIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAid2ViIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiV2ViIEFjY2VzcyIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAicG1zIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiUE1TIEFjY2VzcyIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAibTN1IjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiTTNVIEFjY2VzcyIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAieG1sIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiWE1MIEFjY2VzcyIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAiYXBpIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiQVBJIEFjY2VzcyIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfQ0KICB9LA0KICAic2V0dGluZ3MiOg0KICB7DQogICAgImNhdGVnb3J5IjoNCiAgICB7DQogICAgICAiZ2VuZXJhbCI6ICJHZW5lcmFsIiwNCiAgICAgICJmaWxlcyI6ICJGaWxlcyIsDQogICAgICAic3RyZWFtaW5nIjogIlN0cmVhbWluZyIsDQogICAgICAiYmFja3VwIjogIkJhY2t1cCIsDQogICAgICAiYXV0aGVudGljYXRpb24iOiAiQXV0aGVudGljYXRpb24iDQogICAgfSwNCiAgICAidXBkYXRlIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiU2NoZWR1bGUgZm9yIHVwZGF0aW5nIChQbGF5bGlzdCwgWE1MVFYsIEJhY2t1cCkiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIjAwMDAsMTAwMCwyMDAwIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJUaW1lIGluIDI0IGhvdXIgZm9ybWF0ICgwODAwID0gODowMCBhbSkuIE1vcmUgdGltZXMgY2FuIGJlIGVudGVyZWQgY29tbWEgc2VwYXJhdGVkLiBMZWF2ZSB0aGlzIGZpZWxkIGVtcHR5IGlmIG5vIHVwZGF0ZXMgYXJlIHRvIGJlIGNhcnJpZWQgb3V0LiINCiAgICB9LA0KICAgICJhcGkiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJBUEkgSW50ZXJmYWNlIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJWaWEgQVBJIGludGVyZmFjZSBpdCBpcyBwb3NzaWJsZSB0byBzZW5kIGNvbW1hbmRzIHRvIHhUZVZlLiBBUEkgZG9jdW1lbnRhdGlvbiBpcyA8YSBocmVmPSdodHRwczovL2dpdGh1Yi5jb20veHRldmUtcHJvamVjdC94VGVWZS1Eb2N1bWVudGF0aW9uL2Jsb2IvbWFzdGVyL2VuL2NvbmZpZ3VyYXRpb24ubWQjYXBpJz5oZXJlPC9hPiINCiAgICB9LA0KICAgICJlcGdTb3VyY2UiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJFUEcgU291cmNlIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJQTVM6PGJyPi0gVXNlIEVQRyBkYXRhIGZyb20gUGxleCBvciBFbWJ5IDxicj48YnI+WEVQRzo8YnI+LSBVc2Ugb2Ygb25lIG9yIG1vcmUgWE1MVFYgZmlsZXM8YnI+LSBDaGFubmVsIG1hbmFnZW1lbnQ8YnI+LSBNM1UgLyBYTUxUViBleHBvcnQgKEhUVFAgbGluayBmb3IgSVBUViBhcHBzKSINCiAgICB9LA0KICAgICJ0dW5lciI6DQogICAgew0KICAgICAgInRpdGxlIjogIk51bWJlciBvZiBUdW5lcnMiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIk51bWJlciBvZiBwYXJhbGxlbCBjb25uZWN0aW9ucyB0aGF0IGNhbiBiZSBlc3RhYmxpc2hlZCB0byB0aGUgcHJvdmlkZXIuPGJyPkF2YWlsYWJsZSBmb3I6IFBsZXgsIEVtYnkgKEhESFIpLCBNM1UgKHdpdGggYWN0aXZlIGJ1ZmZlcikuPGJyPkFmdGVyIGEgY2hhbmdlLCB4VGVWZSBtdXN0IGJlIGRlbGV0ZSBpbiB0aGUgUGxleCAvIEVtYnkgRFZSIHNldHRpbmdzIGFuZCBzZXQgdXAgYWdhaW4uIg0KICAgIH0sDQogICAgImZpbGVzVXBkYXRlIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiVXBkYXRlcyBhbGwgZmlsZXMgYXQgc3RhcnR1cCIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiVXBkYXRlcyBhbGwgcGxheWxpc3RzLCB0dW5lciBhbmQgWE1MVFYgZmlsZXMgYXQgc3RhcnR1cC4iDQogICAgfSwNCiAgICAiY2FjaGVJbWFnZXMiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJJbWFnZSBDYWNoaW5nIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJBbGwgaW1hZ2VzIGZyb20gdGhlIFhNTFRWIGZpbGUgYXJlIGNhY2hlZCwgYWxsb3dpbmcgZmFzdGVyIHJlbmRlcmluZyBvZiB0aGUgZ3JpZCBpbiB0aGUgY2xpZW50Ljxicj5Eb3dubG9hZGluZyB0aGUgaW1hZ2VzIG1heSB0YWtlIGEgd2hpbGUgYW5kIHdpbGwgYmUgZG9uZSBpbiB0aGUgYmFja2dyb3VuZC4iDQogICAgfSwNCiAgICAicmVwbGFjZUVtcHR5SW1hZ2VzIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiUmVwbGFjZSBtaXNzaW5nIHByb2dyYW0gaW1hZ2VzIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJJZiB0aGUgcG9zdGVyIGluIHRoZSBYTUxUViBwcm9ncmFtIGlzIG1pc3NpbmcsIHRoZSBjaGFubmVsIGxvZ28gd2lsbCBiZSB1c2VkLiINCiAgICB9LA0KICAgICJ4dGV2ZUF1dG9VcGRhdGUiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJBdXRvbWF0aWMgdXBkYXRlIG9mIHhUZVZlIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJJZiBhIG5ldyB2ZXJzaW9uIG9mIHhUZVZlIGlzIGF2YWlsYWJsZSwgaXQgd2lsbCBiZSBhdXRvbWF0aWNhbGx5IGluc3RhbGxlZC4gVGhlIHVwZGF0ZXMgYXJlIGRvd25sb2FkZWQgZnJvbSBHaXRIdWIuIg0KICAgIH0sDQogICAgInN0cmVhbUJ1ZmZlcmluZyI6DQogICAgew0KICAgICAgInRpdGxlIjogIlN0cmVhbSBCdWZmZXIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIkZ1bmN0aW9ucyBvZiB0aGUgYnVmZmVyOjxicj4tIFRoZSBzdHJlYW0gaXMgcGFzc2VkIGZyb20geFRlVmUsIEZGbXBlZyBvciBWTEMgdG8gUGxleCwgRW1ieSBvciBNM1UgUGxheWVyPGJyPi0gU21hbGwgamVya2luZyBvZiB0aGUgc3RyZWFtcyBjYW4gYmUgY29tcGVuc2F0ZWQ8YnI+LSBITFMgLyBNM1U4IHN1cHBvcnQ8YnI+LSBSVFAgLyBSVFBTIHN1cHBvcnQgKG9ubHkgRkZtcGVnIG9yIFZMQyk8YnI+LSBSZS1zdHJlYW1pbmc8YnI+LSBTZXBhcmF0ZSB0dW5lciBsaW1pdCBmb3IgZWFjaCBwbGF5bGlzdCIsDQogICAgICAiaW5mb19mYWxzZSI6ICJObyBCdWZmZXIgKENsaWVudCBjb25uZWN0cyB0byB0aGUgc3RyZWFtaW5nIHNlcnZlcikiLA0KICAgICAgImluZm9feHRldmUiOiAieFRlVmUgY29ubmVjdHMgdG8gdGhlIHN0cmVhbWluZyBzZXJ2ZXIiLA0KICAgICAgImluZm9fZmZtcGVnIjogIkZGbXBlZyBjb25uZWN0cyB0byB0aGUgc3RyZWFtaW5nIHNlcnZlciIsDQogICAgICAiaW5mb192bGMiOiAiVkxDIGNvbm5lY3RzIHRvIHRoZSBzdHJlYW1pbmcgc2VydmVyIg0KDQogICAgfSwNCiAgICAidWRweHkiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJVRFB4eSBhZGRyZXNzIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJUaGUgYWRkcmVzcyBvZiB5b3VyIFVEUHh5IHNlcnZlci4gSWYgc2V0LCBhbmQgdGhlIGNoYW5uZWwgVVJMcyBpbiB0aGUgbTN1IGlzIG11bHRpY2FzdCwgeFRlVmUgd2lsbCByZXdyaXRlIGl0IHNvIHRoYXQgaXQgaXMgYWNjZXNzZWQgdmlhIHRoZSBVRFB4eSBzZXJ2aWNlLiIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiaG9zdDpwb3J0Ig0KICAgIH0sDQogICAgImZmbXBlZ1BhdGgiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJGRm1wZWcgQmluYXJ5IFBhdGgiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIlBhdGggdG8gRkZtcGVnIGJpbmFyeS4iLA0KICAgICAgInBsYWNlaG9sZGVyIjogIi9wYXRoL3RvL2ZmbXBlZyINCiAgICB9LA0KICAgICJmZm1wZWdPcHRpb25zIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiRkZtcGVnIE9wdGlvbnMiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIkZGbXBlZyBvcHRpb25zLjxicj5Pbmx5IGNoYW5nZSBpZiB5b3Uga25vdyB3aGF0IHlvdSBhcmUgZG9pbmcuPGJyPkxlYXZlIGJsYW5rIHRvIHNldCBkZWZhdWx0IHNldHRpbmdzLiIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiTGVhdmUgYmxhbmsgdG8gc2V0IGRlZmF1bHQgc2V0dGluZ3MiDQogICAgfSwNCiAgICAidmxjUGF0aCI6DQogICAgew0KICAgICAgInRpdGxlIjogIlZMQyAvIENWTEMgQmluYXJ5IFBhdGgiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIlBhdGggdG8gVkxDIC8gQ1ZMQyBiaW5hcnkuIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIvcGF0aC90by9jdmxjIg0KICAgIH0sDQogICAgInZsY09wdGlvbnMiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJWTEMgLyBDVkxDIE9wdGlvbnMiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIlZMQyAvIENWTEMgb3B0aW9ucy48YnI+T25seSBjaGFuZ2UgaWYgeW91IGtub3cgd2hhdCB5b3UgYXJlIGRvaW5nLjxicj5MZWF2ZSBibGFuayB0byBzZXQgZGVmYXVsdCBzZXR0aW5ncy4iLA0KICAgICAgInBsYWNlaG9sZGVyIjogIkxlYXZlIGJsYW5rIHRvIHNldCBkZWZhdWx0IHNldHRpbmdzIg0KICAgIH0sDQogICAgImJ1ZmZlclNpemUiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJCdWZmZXIgU2l6ZSIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiQnVmZmVyIHNpemUgaW4gTUIuPGJyPk0zVTg6IElmIHRoZSBUUyBzZWdtZW50IHNtYWxsZXIgdGhlbiB0aGUgYnVmZmVyIHNpemUsIHRoZSBmaWxlIHNpemUgb2YgdGhlIHNlZ21lbnQgaXMgdXNlZC4iDQogICAgfSwNCiAgICAiYnVmZmVyVGltZW91dCI6DQogICAgew0KICAgICAgInRpdGxlIjogIlRpbWVvdXQgZm9yIG5ldyBjbGllbnQgY29ubmVjdGlvbnMiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIlRoZSB4VGVWZSBidWZmZXIgd2FpdHMgdW50aWwgbmV3IGNsaWVudCBjb25uZWN0aW9ucyBhcmUgZXN0YWJsaXNoZWQuIEhlbHBmdWwgZm9yIGZhc3QgY2hhbm5lbCBzd2l0Y2hpbmcuIFZhbHVlIGluIG1pbGxpc2Vjb25kcy4iLA0KICAgICAgInBsYWNlaG9sZGVyIjogIjEwMCINCiAgICB9LA0KICAgICJ1c2VyQWdlbnQiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJVc2VyIEFnZW50IiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJVc2VyIEFnZW50IGZvciBIVFRQIHJlcXVlc3RzLiBGb3IgZXZlcnkgSFRUUCBjb25uZWN0aW9uLCB0aGlzIHZhbHVlIGlzIHVzZWQgZm9yIHRoZSB1c2VyIGFnZW50LiBTaG91bGQgb25seSBiZSBjaGFuZ2VkIGlmIHhUZVZlIGlzIGJsb2NrZWQuIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJ4VGVWZSINCiAgICB9LA0KICAgICJiYWNrdXBQYXRoIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiTG9jYXRpb24gZm9yIGF1dG9tYXRpYyBiYWNrdXBzIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIvbW50L2RhdGEvYmFja3VwL3h0ZXZlLyIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiQmVmb3JlIGFueSB1cGRhdGUgb2YgdGhlIHByb3ZpZGVyIGRhdGEgYnkgdGhlIHNjaGVkdWxlLCB4VGVWZSBjcmVhdGVzIGEgYmFja3VwLiBUaGUgcGF0aCBmb3IgdGhlIGF1dG9tYXRpYyBiYWNrdXBzIGNhbiBiZSBjaGFuZ2VkLiB4VGVWZSByZXF1aXJlcyB3cml0ZSBwZXJtaXNzaW9uIGZvciB0aGlzIGZvbGRlci4iDQogICAgfSwNCiAgICAidGVtcFBhdGgiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJMb2NhdGlvbiBmb3IgdGhlIHRlbXBvcmFyeSBmaWxlcyIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiL3RtcC94dGV2ZS8iLA0KICAgICAgImRlc2NyaXB0aW9uIjogIkxvY2F0aW9uIGZvciB0aGUgYnVmZmVyIGZpbGVzLiINCiAgICB9LA0KICAgICJiYWNrdXBLZWVwIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiTnVtYmVyIG9mIGJhY2t1cHMgdG8ga2VlcCIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiTnVtYmVyIG9mIGJhY2t1cHMgdG8ga2VlcC4gT2xkZXIgYmFja3VwcyBhcmUgYXV0b21hdGljYWxseSBkZWxldGVkLiINCiAgICB9LA0KICAgICJhdXRoZW50aWNhdGlvbldFQiI6DQogICAgew0KICAgICAgInRpdGxlIjogIldFQiBBdXRoZW50aWNhdGlvbiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiQWNjZXNzIHRvIHRoZSB3ZWIgaW50ZXJmYWNlIG9ubHkgcG9zc2libGUgd2l0aCBjcmVkZW50aWFscy4iDQogICAgfSwNCiAgICAiYXV0aGVudGljYXRpb25QTVMiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJQTVMgQXV0aGVudGljYXRpb24iLA0KICAgICAgImRlc2NyaXB0aW9uIjogIlBsZXggcmVxdWVzdHMgYXJlIG9ubHkgcG9zc2libGUgd2l0aCBhdXRoZW50aWNhdGlvbi4gPGJyPjxiPldhcm5pbmchISE8L2I+IEFmdGVyIGFjdGl2YXRpbmcgdGhpcyBmdW5jdGlvbiB4VGVWZSBtdXN0IGJlIGRlbGV0ZSBpbiB0aGUgUE1TIERWUiBzZXR0aW5ncyBhbmQgc2V0IHVwIGFnYWluLiINCiAgICB9LA0KICAgICJhdXRoZW50aWNhdGlvbk0zVSI6DQogICAgew0KICAgICAgInRpdGxlIjogIk0zVSBBdXRoZW50aWNhdGlvbiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiRG93bmxvYWRpbmcgdGhlIHh0ZXZlLm0zdSBmaWxlIHZpYSBhbiBIVFRQIHJlcXVlc3QgaXMgb25seSBwb3NzaWJsZSB3aXRoIGF1dGhlbnRpY2F0aW9uLiINCiAgICB9LA0KICAgICJhdXRoZW50aWNhdGlvblhNTCI6DQogICAgew0KICAgICAgInRpdGxlIjogIlhNTCBBdXRoZW50aWNhdGlvbiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiRG93bmxvYWRpbmcgdGhlIHh0ZXZlLnhtbCBmaWxlIHZpYSBhbiBIVFRQIHJlcXVlc3QgaXMgb25seSBwb3NzaWJsZSB3aXRoIGF1dGhlbnRpY2F0aW9uIg0KICAgIH0sDQogICAgImF1dGhlbnRpY2F0aW9uQVBJIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiQVBJIEF1dGhlbnRpY2F0aW9uIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJBY2Nlc3MgdG8gdGhlIEFQSSBpbnRlcmZhY2UgaXMgb25seSBwb3NzaWJsZSB3aXRoIGF1dGhlbnRpY2F0aW9uLiINCiAgICB9DQogIH0sDQogICJ3aXphcmQiOg0KICB7DQogICAgImVwZ1NvdXJjZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIkVQRyBTb3VyY2UiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIlBNUzo8YnI+LSBVc2UgRVBHIGRhdGEgZnJvbSBQbGV4IG9yIEVtYnkgPGJyPjxicj5YRVBHOjxicj4tIFVzZSBvZiBvbmUgb3IgbW9yZSBYTUxUViBmaWxlczxicj4tIENoYW5uZWwgbWFuYWdlbWVudDxicj4tIE0zVSAvIFhNTFRWIGV4cG9ydCAoSFRUUCBsaW5rIGZvciBJUFRWIGFwcHMpIg0KICAgIH0sDQogICAgInR1bmVyIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiTnVtYmVyIG9mIHR1bmVycyIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiTnVtYmVyIG9mIHBhcmFsbGVsIGNvbm5lY3Rpb25zIHRoYXQgY2FuIGJlIGVzdGFibGlzaGVkIHRvIHRoZSBwcm92aWRlci48YnI+QXZhaWxhYmxlIGZvcjogUGxleCwgRW1ieSAoSERIUiksIE0zVSAod2l0aCBhY3RpdmUgYnVmZmVyKS48YnI+QWZ0ZXIgYSBjaGFuZ2UsIHhUZVZlIG11c3QgYmUgZGVsZXRlIGluIHRoZSBQbGV4IC8gRW1ieSBEVlIgc2V0dGluZ3MgYW5kIHNldCB1cCBhZ2Fpbi4iDQogICAgfSwNCiAgICAibTN1IjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiTTNVIFBsYXlsaXN0IiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJGaWxlIHBhdGggb3IgVVJMIG9mIHRoZSBNM1UiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIkxvY2FsIG9yIHJlbW90ZSBwbGF5bGlzdHMiDQogICAgfSwNCiAgICAieG1sdHYiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJYTUxUViBGaWxlIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJGaWxlIHBhdGggb3IgVVJMIG9mIHRoZSBYTUxUViIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiTG9jYWwgb3IgcmVtb3RlIFhNTFRWIGZpbGUiDQogICAgfQ0KICB9LA0KICAibG9naW4iOg0KICB7DQogICAgImZhaWxlZCI6ICJVc2VyIGF1dGhlbnRpY2F0aW9uIGZhaWxlZCIsDQogICAgImhlYWRsaW5lIjogIkxvZ2luIiwNCiAgICAidXNlcm5hbWUiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJVc2VybmFtZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiVXNlcm5hbWUiDQogICAgfSwNCiAgICAicGFzc3dvcmQiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJQYXNzd29yZCIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiUGFzc3dvcmQiDQogICAgfQ0KICB9LA0KICAiYWNjb3VudCI6DQogIHsNCiAgICAiZmFpbGVkIjogIlBhc3N3b3JkIGRvZXMgbm90IG1hdGNoIiwNCiAgICAiaGVhZGxpbmUiOiAiQ3JlYXRlIHVzZXIgYWNjb3VudCIsDQogICAgInVzZXJuYW1lIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiVXNlcm5hbWUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIlVzZXJuYW1lIg0KICAgIH0sDQogICAgInBhc3N3b3JkIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiUGFzc3dvcmQiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIlBhc3N3b3JkIg0KICAgIH0sDQogICAgImNvbmZpcm0iOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJDb25maXJtIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJDb25maXJtIg0KICAgIH0NCiAgfQ0KfQ==" - webUI["html/img/x_ transparent.png"] = "iVBORw0KGgoAAAANSUhEUgAAAQAAAAEACAYAAABccqhmAAAAAXNSR0IArs4c6QAAAAlwSFlzAAAWJQAAFiUBSVIk8AAAA6ppVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IlhNUCBDb3JlIDUuNC4wIj4KICAgPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIgogICAgICAgICAgICB4bWxuczp0aWZmPSJodHRwOi8vbnMuYWRvYmUuY29tL3RpZmYvMS4wLyIKICAgICAgICAgICAgeG1sbnM6ZXhpZj0iaHR0cDovL25zLmFkb2JlLmNvbS9leGlmLzEuMC8iPgogICAgICAgICA8eG1wOk1vZGlmeURhdGU+MjAxOC0xMS0xNVQxNzoxMTo3NjwveG1wOk1vZGlmeURhdGU+CiAgICAgICAgIDx4bXA6Q3JlYXRvclRvb2w+UGl4ZWxtYXRvciAzLjM8L3htcDpDcmVhdG9yVG9vbD4KICAgICAgICAgPHRpZmY6T3JpZW50YXRpb24+MTwvdGlmZjpPcmllbnRhdGlvbj4KICAgICAgICAgPHRpZmY6Q29tcHJlc3Npb24+NTwvdGlmZjpDb21wcmVzc2lvbj4KICAgICAgICAgPHRpZmY6UmVzb2x1dGlvblVuaXQ+MjwvdGlmZjpSZXNvbHV0aW9uVW5pdD4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+MTQ0PC90aWZmOllSZXNvbHV0aW9uPgogICAgICAgICA8dGlmZjpYUmVzb2x1dGlvbj4xNDQ8L3RpZmY6WFJlc29sdXRpb24+CiAgICAgICAgIDxleGlmOlBpeGVsWERpbWVuc2lvbj4yNTY8L2V4aWY6UGl4ZWxYRGltZW5zaW9uPgogICAgICAgICA8ZXhpZjpDb2xvclNwYWNlPjE8L2V4aWY6Q29sb3JTcGFjZT4KICAgICAgICAgPGV4aWY6UGl4ZWxZRGltZW5zaW9uPjI1NjwvZXhpZjpQaXhlbFlEaW1lbnNpb24+CiAgICAgIDwvcmRmOkRlc2NyaXB0aW9uPgogICA8L3JkZjpSREY+CjwveDp4bXBtZXRhPgoeXQb1AAAaJElEQVR4Ae2dCZhcVZXHz+1KSFiGkISkqyIoOgI68EkgOBNkEcQRlIFRZDGABAQEhInGbxw+RUZRNhWRLawDYR0GHAaHUVkGvwGURUcgwIiAOGxjV3UHAslHQrbuM/9TlQ6d7qruWt527/u/7+uuqvvucu7vvnveuffde54IDxIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARLwiIDzQtayHi0q23shaydCOnlISu7nnWThRdrFOkPWyCleyNqJkF1yjhTd8k6yiDvtuLgLiCR/lVnIZ14keWU7k2Xyuu4oU92r2RazQ+nWypXI4W86zCXbyZ28KBvJ97MtpEhX1gWsyleS08TJU17I2omQKpvLarmqkywyn7ZHPw9rLvTOvwbX6xEyxS3Nenv4oQCcWwmQc/D3dtaBdiyfyv5S1mM7zieLGSzWEsS6KIuiRSzTGTD9H404z1iy80MBWNVL7hn8nx8LhaxlqnKBvKbvyppYHctTM/0nd5xPljNwcrcUs2/6DyL0RwGYxDOcjR3vGBQ+4M8tMElmdQ3n6NGjYPofGE6F6tTESRmm/1xxTuuczWSQH08BhqJbqlNkuTyJoK2GBgf53S6mkrvB+7qZ6b9Gfod6hHv3dzKAGbX9pNvd51N7+WUBGNlJbgm07FH4G/AJdFuyqlwotXFzW8kzk2itXAFZwu38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" - webUI["html/js/base_ts.js"] = "dmFyIFNFUlZFUiA9IG5ldyBPYmplY3QoKTsNCnZhciBCVUxLX0VESVQgPSBmYWxzZTsNCnZhciBDT0xVTU5fVE9fU09SVDsNCnZhciBTRUFSQ0hfTUFQUElORyA9IG5ldyBPYmplY3QoKTsNCnZhciBVTkRPID0gbmV3IE9iamVjdCgpOw0KdmFyIFNFUlZFUl9DT05ORUNUSU9OID0gZmFsc2U7DQp2YXIgV1NfQVZBSUxBQkxFID0gZmFsc2U7DQovLyBNZW7DvA0KdmFyIG1lbnVJdGVtcyA9IG5ldyBBcnJheSgpOw0KbWVudUl0ZW1zLnB1c2gobmV3IE1haW5NZW51SXRlbSgicGxheWxpc3QiLCAie3subWFpbk1lbnUuaXRlbS5wbGF5bGlzdH19IiwgIm0zdS5wbmciLCAie3subWFpbk1lbnUuaGVhZGxpbmUucGxheWxpc3R9fSIpKTsNCi8vbWVudUl0ZW1zLnB1c2gobmV3IE1haW5NZW51SXRlbSgicG1zSUQiLCAie3subWFpbk1lbnUuaXRlbS5wbXNJRH19IiwgIm51bWJlci5wbmciLCAie3subWFpbk1lbnUuaGVhZGxpbmUucG1zSUR9fSIpKQ0KbWVudUl0ZW1zLnB1c2gobmV3IE1haW5NZW51SXRlbSgiZmlsdGVyIiwgInt7Lm1haW5NZW51Lml0ZW0uZmlsdGVyfX0iLCAiZmlsdGVyLnBuZyIsICJ7ey5tYWluTWVudS5oZWFkbGluZS5maWx0ZXJ9fSIpKTsNCm1lbnVJdGVtcy5wdXNoKG5ldyBNYWluTWVudUl0ZW0oInhtbHR2IiwgInt7Lm1haW5NZW51Lml0ZW0ueG1sdHZ9fSIsICJ4bWx0di5wbmciLCAie3subWFpbk1lbnUuaGVhZGxpbmUueG1sdHZ9fSIpKTsNCm1lbnVJdGVtcy5wdXNoKG5ldyBNYWluTWVudUl0ZW0oIm1hcHBpbmciLCAie3subWFpbk1lbnUuaXRlbS5tYXBwaW5nfX0iLCAibWFwcGluZy5wbmciLCAie3subWFpbk1lbnUuaGVhZGxpbmUubWFwcGluZ319IikpOw0KbWVudUl0ZW1zLnB1c2gobmV3IE1haW5NZW51SXRlbSgidXNlcnMiLCAie3subWFpbk1lbnUuaXRlbS51c2Vyc319IiwgInVzZXJzLnBuZyIsICJ7ey5tYWluTWVudS5oZWFkbGluZS51c2Vyc319IikpOw0KbWVudUl0ZW1zLnB1c2gobmV3IE1haW5NZW51SXRlbSgic2V0dGluZ3MiLCAie3subWFpbk1lbnUuaXRlbS5zZXR0aW5nc319IiwgInNldHRpbmdzLnBuZyIsICJ7ey5tYWluTWVudS5oZWFkbGluZS5zZXR0aW5nc319IikpOw0KbWVudUl0ZW1zLnB1c2gobmV3IE1haW5NZW51SXRlbSgibG9nIiwgInt7Lm1haW5NZW51Lml0ZW0ubG9nfX0iLCAibG9nLnBuZyIsICJ7ey5tYWluTWVudS5oZWFkbGluZS5sb2d9fSIpKTsNCm1lbnVJdGVtcy5wdXNoKG5ldyBNYWluTWVudUl0ZW0oImxvZ291dCIsICJ7ey5tYWluTWVudS5pdGVtLmxvZ291dH19IiwgImxvZ291dC5wbmciLCAie3subWFpbk1lbnUuaGVhZGxpbmUubG9nb3V0fX0iKSk7DQovLyBLYXRlZ29yaWVuIGbDvHIgZGllIEVpbnN0ZWxsdW5nZW4NCnZhciBzZXR0aW5nc0NhdGVnb3J5ID0gbmV3IEFycmF5KCk7DQpzZXR0aW5nc0NhdGVnb3J5LnB1c2gobmV3IFNldHRpbmdzQ2F0ZWdvcnlJdGVtKCJ7ey5zZXR0aW5ncy5jYXRlZ29yeS5nZW5lcmFsfX0iLCAieHRldmVBdXRvVXBkYXRlLHR1bmVyLGVwZ1NvdXJjZSxhcGkiKSk7DQpzZXR0aW5nc0NhdGVnb3J5LnB1c2gobmV3IFNldHRpbmdzQ2F0ZWdvcnlJdGVtKCJ7ey5zZXR0aW5ncy5jYXRlZ29yeS5maWxlc319IiwgInVwZGF0ZSxmaWxlcy51cGRhdGUsdGVtcC5wYXRoLGNhY2hlLmltYWdlcyx4ZXBnLnJlcGxhY2UubWlzc2luZy5pbWFnZXMiKSk7DQpzZXR0aW5nc0NhdGVnb3J5LnB1c2gobmV3IFNldHRpbmdzQ2F0ZWdvcnlJdGVtKCJ7ey5zZXR0aW5ncy5jYXRlZ29yeS5zdHJlYW1pbmd9fSIsICJidWZmZXIsdWRweHksYnVmZmVyLnNpemUua2IsYnVmZmVyLnRpbWVvdXQsdXNlci5hZ2VudCxmZm1wZWcucGF0aCxmZm1wZWcub3B0aW9ucyx2bGMucGF0aCx2bGMub3B0aW9ucyIpKTsNCnNldHRpbmdzQ2F0ZWdvcnkucHVzaChuZXcgU2V0dGluZ3NDYXRlZ29yeUl0ZW0oInt7LnNldHRpbmdzLmNhdGVnb3J5LmJhY2t1cH19IiwgImJhY2t1cC5wYXRoLGJhY2t1cC5rZWVwIikpOw0Kc2V0dGluZ3NDYXRlZ29yeS5wdXNoKG5ldyBTZXR0aW5nc0NhdGVnb3J5SXRlbSgie3suc2V0dGluZ3MuY2F0ZWdvcnkuYXV0aGVudGljYXRpb259fSIsICJhdXRoZW50aWNhdGlvbi53ZWIsYXV0aGVudGljYXRpb24ucG1zLGF1dGhlbnRpY2F0aW9uLm0zdSxhdXRoZW50aWNhdGlvbi54bWwsYXV0aGVudGljYXRpb24uYXBpIikpOw0KZnVuY3Rpb24gc2hvd1BvcFVwRWxlbWVudChlbG0pIHsNCiAgICB2YXIgYWxsRWxlbWVudHMgPSBuZXcgQXJyYXkoInBvcHVwLWN1c3RvbSIpOw0KICAgIGZvciAodmFyIGkgPSAwOyBpIDwgYWxsRWxlbWVudHMubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgc2hvd0VsZW1lbnQoYWxsRWxlbWVudHNbaV0sIGZhbHNlKTsNCiAgICB9DQogICAgc2hvd0VsZW1lbnQoZWxtLCB0cnVlKTsNCiAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsNCiAgICAgICAgc2hvd0VsZW1lbnQoInBvcHVwIiwgdHJ1ZSk7DQogICAgfSwgMTApOw0KICAgIHJldHVybjsNCn0NCmZ1bmN0aW9uIHNob3dFbGVtZW50KGVsbUlELCB0eXBlKSB7DQogICAgdmFyIGNzc0NsYXNzOw0KICAgIHN3aXRjaCAodHlwZSkgew0KICAgICAgICBjYXNlIHRydWU6DQogICAgICAgICAgICBjc3NDbGFzcyA9ICJibG9jayI7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSBmYWxzZToNCiAgICAgICAgICAgIGNzc0NsYXNzID0gIm5vbmUiOw0KICAgICAgICAgICAgYnJlYWs7DQogICAgfQ0KICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGVsbUlEKS5jbGFzc05hbWUgPSBjc3NDbGFzczsNCn0NCmZ1bmN0aW9uIGNoYW5nZUJ1dHRvbkFjdGlvbihlbGVtZW50LCBidXR0b25JRCwgYXR0cmlidXRlKSB7DQogICAgdmFyIHZhbHVlID0gZWxlbWVudC5vcHRpb25zW2VsZW1lbnQuc2VsZWN0ZWRJbmRleF0udmFsdWU7DQogICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoYnV0dG9uSUQpLnNldEF0dHJpYnV0ZShhdHRyaWJ1dGUsIHZhbHVlKTsNCn0NCmZ1bmN0aW9uIGdldExvY2FsRGF0YShkYXRhVHlwZSwgaWQpIHsNCiAgICBsZXQgZGF0YSA9IHt9Ow0KICAgIHN3aXRjaCAoZGF0YVR5cGUpIHsNCiAgICAgICAgY2FzZSAibTN1IjoNCiAgICAgICAgICAgIGRhdGEgPSBTRVJWRVJbInNldHRpbmdzIl1bImZpbGVzIl1bZGF0YVR5cGVdW2lkXTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJoZGhyIjoNCiAgICAgICAgICAgIGRhdGEgPSBTRVJWRVJbInNldHRpbmdzIl1bImZpbGVzIl1bZGF0YVR5cGVdW2lkXTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJmaWx0ZXIiOg0KICAgICAgICBjYXNlICJjdXN0b20tZmlsdGVyIjoNCiAgICAgICAgY2FzZSAiZ3JvdXAtdGl0bGUiOg0KICAgICAgICAgICAgaWYgKGlkID09IC0xKSB7DQogICAgICAgICAgICAgICAgZGF0YVsiYWN0aXZlIl0gPSB0cnVlOw0KICAgICAgICAgICAgICAgIGRhdGFbImNhc2VTZW5zaXRpdmUiXSA9IGZhbHNlOw0KICAgICAgICAgICAgICAgIGRhdGFbImRlc2NyaXB0aW9uIl0gPSAiIjsNCiAgICAgICAgICAgICAgICBkYXRhWyJleGNsdWRlIl0gPSAiIjsNCiAgICAgICAgICAgICAgICBkYXRhWyJmaWx0ZXIiXSA9ICIiOw0KICAgICAgICAgICAgICAgIGRhdGFbImluY2x1ZGUiXSA9ICIiOw0KICAgICAgICAgICAgICAgIGRhdGFbIm5hbWUiXSA9ICIiOw0KICAgICAgICAgICAgICAgIGRhdGFbInR5cGUiXSA9ICJncm91cC10aXRsZSI7DQogICAgICAgICAgICAgICAgZGF0YVsicHJlc2VydmVNYXBwaW5nIl0gPSB0cnVlOw0KICAgICAgICAgICAgICAgIGRhdGFbInN0YXJ0aW5nQ2hhbm5lbCJdID0gU0VSVkVSWyJzZXR0aW5ncyJdWyJtYXBwaW5nLmZpcnN0LmNoYW5uZWwiXTsNCiAgICAgICAgICAgICAgICBkYXRhWyJkZWZhdWx0TWlzc2luZ0VQRyJdID0gIi0iOw0KICAgICAgICAgICAgICAgIFNFUlZFUlsic2V0dGluZ3MiXVsiZmlsdGVyIl1baWRdID0gZGF0YTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGRhdGEgPSBTRVJWRVJbInNldHRpbmdzIl1bImZpbHRlciJdW2lkXTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJ4bWx0diI6DQogICAgICAgICAgICBkYXRhID0gU0VSVkVSWyJzZXR0aW5ncyJdWyJmaWxlcyJdW2RhdGFUeXBlXVtpZF07DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSAidXNlcnMiOg0KICAgICAgICAgICAgZGF0YSA9IFNFUlZFUlsidXNlcnMiXVtpZF1bImRhdGEiXTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJtYXBwaW5nIjoNCiAgICAgICAgICAgIGRhdGEgPSBTRVJWRVJbInhlcGciXVsiZXBnTWFwcGluZyJdW2lkXTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJtM3VHcm91cHMiOg0KICAgICAgICAgICAgZGF0YSA9IFNFUlZFUlsiZGF0YSJdWyJwbGF5bGlzdCJdWyJtM3UiXVsiZ3JvdXBzIl07DQogICAgICAgICAgICBicmVhazsNCiAgICB9DQogICAgcmV0dXJuIGRhdGE7DQp9DQpmdW5jdGlvbiBnZXRPYmpLZXlzKG9iaikgew0KICAgIHZhciBrZXlzID0gbmV3IEFycmF5KCk7DQogICAgZm9yICh2YXIgaSBpbiBvYmopIHsNCiAgICAgICAgaWYgKG9iai5oYXNPd25Qcm9wZXJ0eShpKSkgew0KICAgICAgICAgICAga2V5cy5wdXNoKGkpOw0KICAgICAgICB9DQogICAgfQ0KICAgIHJldHVybiBrZXlzOw0KfQ0KZnVuY3Rpb24gZ2V0QWxsU2VsZWN0ZWRDaGFubmVscygpIHsNCiAgICB2YXIgY2hhbm5lbHMgPSBuZXcgQXJyYXkoKTsNCiAgICBpZiAoQlVMS19FRElUID09IGZhbHNlKSB7DQogICAgICAgIHJldHVybiBjaGFubmVsczsNCiAgICB9DQogICAgdmFyIHRycyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb250ZW50X3RhYmxlIikuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlRSIik7DQogICAgZm9yICh2YXIgaSA9IDE7IGkgPCB0cnMubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgaWYgKHRyc1tpXS5zdHlsZS5kaXNwbGF5ICE9ICJub25lIikgew0KICAgICAgICAgICAgaWYgKHRyc1tpXS5maXJzdENoaWxkLmZpcnN0Q2hpbGQuY2hlY2tlZCA9PSB0cnVlKSB7DQogICAgICAgICAgICAgICAgY2hhbm5lbHMucHVzaCh0cnNbaV0uaWQpOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQogICAgfQ0KICAgIHJldHVybiBjaGFubmVsczsNCn0NCmZ1bmN0aW9uIHNlbGVjdEFsbENoYW5uZWxzKCkgew0KICAgIHZhciBidWxrID0gZmFsc2U7DQogICAgdmFyIHRycyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb250ZW50X3RhYmxlIikuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlRSIik7DQogICAgaWYgKHRyc1swXS5maXJzdENoaWxkLmZpcnN0Q2hpbGQuY2hlY2tlZCA9PSB0cnVlKSB7DQogICAgICAgIGJ1bGsgPSB0cnVlOw0KICAgIH0NCiAgICBmb3IgKHZhciBpID0gMTsgaSA8IHRycy5sZW5ndGg7IGkrKykgew0KICAgICAgICBpZiAodHJzW2ldLnN0eWxlLmRpc3BsYXkgIT0gIm5vbmUiKSB7DQogICAgICAgICAgICBzd2l0Y2ggKGJ1bGspIHsNCiAgICAgICAgICAgICAgICBjYXNlIHRydWU6DQogICAgICAgICAgICAgICAgICAgIHRyc1tpXS5maXJzdENoaWxkLmZpcnN0Q2hpbGQuY2hlY2tlZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgZmFsc2U6DQogICAgICAgICAgICAgICAgICAgIHRyc1tpXS5maXJzdENoaWxkLmZpcnN0Q2hpbGQuY2hlY2tlZCA9IGZhbHNlOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KICAgIH0NCiAgICByZXR1cm47DQp9DQpmdW5jdGlvbiBidWxrRWRpdCgpIHsNCiAgICBCVUxLX0VESVQgPSAhQlVMS19FRElUOw0KICAgIHZhciBjbGFzc05hbWU7DQogICAgdmFyIHJvd3MgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCJidWxrIik7DQogICAgc3dpdGNoIChCVUxLX0VESVQpIHsNCiAgICAgICAgY2FzZSB0cnVlOg0KICAgICAgICAgICAgY2xhc3NOYW1lID0gImJ1bGsgc2hvd0J1bGsiOw0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGNhc2UgZmFsc2U6DQogICAgICAgICAgICBjbGFzc05hbWUgPSAiYnVsayBoaWRlQnVsayI7DQogICAgICAgICAgICBicmVhazsNCiAgICB9DQogICAgZm9yICh2YXIgaSA9IDA7IGkgPCByb3dzLmxlbmd0aDsgaSsrKSB7DQogICAgICAgIHJvd3NbaV0uY2xhc3NOYW1lID0gY2xhc3NOYW1lOw0KICAgICAgICByb3dzW2ldLmNoZWNrZWQgPSBmYWxzZTsNCiAgICB9DQogICAgcmV0dXJuOw0KfQ0KZnVuY3Rpb24gc29ydFRhYmxlKGNvbHVtbikgew0KICAgIC8vY29uc29sZS5sb2coY29sdW1tKTsNCiAgICBpZiAoY29sdW1uID09IENPTFVNTl9UT19TT1JUKSB7DQogICAgICAgIHJldHVybjsNCiAgICB9DQogICAgdmFyIHRhYmxlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnRlbnRfdGFibGUiKTsNCiAgICB2YXIgdGFibGVIZWFkID0gdGFibGUuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlRSIilbMF07DQogICAgdmFyIHRhYmxlSXRlbXMgPSB0YWJsZUhlYWQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlREIik7DQogICAgdmFyIHNvcnRPYmogPSBuZXcgT2JqZWN0KCk7DQogICAgdmFyIHgsIHhWYWx1ZTsNCiAgICB2YXIgdGFibGVIZWFkZXI7DQogICAgdmFyIHNvcnRCeVN0cmluZyA9IGZhbHNlOw0KICAgIGlmIChjb2x1bW4gPiAwICYmIENPTFVNTl9UT19TT1JUID4gMCkgew0KICAgICAgICB0YWJsZUl0ZW1zW0NPTFVNTl9UT19TT1JUXS5jbGFzc05hbWUgPSAicG9pbnRlciI7DQogICAgICAgIHRhYmxlSXRlbXNbY29sdW1uXS5jbGFzc05hbWUgPSAic29ydFRoaXMiOw0KICAgIH0NCiAgICBDT0xVTU5fVE9fU09SVCA9IGNvbHVtbjsNCiAgICB2YXIgcm93cyA9IHRhYmxlLnJvd3M7DQogICAgaWYgKHJvd3NbMV0gIT0gdW5kZWZpbmVkKSB7DQogICAgICAgIHRhYmxlSGVhZGVyID0gcm93c1swXTsNCiAgICAgICAgeCA9IHJvd3NbMV0uZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlREIilbY29sdW1uXTsNCiAgICAgICAgZm9yIChpID0gMTsgaSA8IHJvd3MubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgICAgIHggPSByb3dzW2ldLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJURCIpW2NvbHVtbl07DQogICAgICAgICAgICBzd2l0Y2ggKHguY2hpbGROb2Rlc1swXS50YWdOYW1lLnRvTG93ZXJDYXNlKCkpIHsNCiAgICAgICAgICAgICAgICBjYXNlICJpbnB1dCI6DQogICAgICAgICAgICAgICAgICAgIHhWYWx1ZSA9IHguZ2V0RWxlbWVudHNCeVRhZ05hbWUoIklOUFVUIilbMF0udmFsdWUudG9Mb3dlckNhc2UoKTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAicCI6DQogICAgICAgICAgICAgICAgICAgIHhWYWx1ZSA9IHguZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlAiKVswXS5pbm5lclRleHQudG9Mb3dlckNhc2UoKTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgZGVmYXVsdDogY29uc29sZS5sb2coeC5jaGlsZE5vZGVzWzBdLnRhZ05hbWUpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgaWYgKHhWYWx1ZSA9PSAiIiB8fCB4VmFsdWUgPT0gTmFOKSB7DQogICAgICAgICAgICAgICAgeFZhbHVlID0gaTsNCiAgICAgICAgICAgICAgICBzb3J0T2JqW2ldID0gcm93c1tpXTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgICAgIHN3aXRjaCAoaXNOYU4oeFZhbHVlKSkgew0KICAgICAgICAgICAgICAgICAgICBjYXNlIGZhbHNlOg0KICAgICAgICAgICAgICAgICAgICAgICAgeFZhbHVlID0gcGFyc2VGbG9hdCh4VmFsdWUpOw0KICAgICAgICAgICAgICAgICAgICAgICAgc29ydE9ialt4VmFsdWVdID0gcm93c1tpXTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgICAgICBjYXNlIHRydWU6DQogICAgICAgICAgICAgICAgICAgICAgICBzb3J0QnlTdHJpbmcgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgc29ydE9ialt4VmFsdWUudG9Mb3dlckNhc2UoKSArIGldID0gcm93c1tpXTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KICAgICAgICB3aGlsZSAodGFibGUuZmlyc3RDaGlsZCkgew0KICAgICAgICAgICAgdGFibGUucmVtb3ZlQ2hpbGQodGFibGUuZmlyc3RDaGlsZCk7DQogICAgICAgIH0NCiAgICAgICAgdmFyIHNvcnRWYWx1ZXMgPSBnZXRPYmpLZXlzKHNvcnRPYmopOw0KICAgICAgICBpZiAoc29ydEJ5U3RyaW5nID09IHRydWUpIHsNCiAgICAgICAgICAgIHNvcnRWYWx1ZXMuc29ydCgpOw0KICAgICAgICAgICAgY29uc29sZS5sb2coc29ydFZhbHVlcyk7DQogICAgICAgIH0NCiAgICAgICAgZWxzZSB7DQogICAgICAgICAgICBmdW5jdGlvbiBzb3J0RmxvYXQoYSwgYikgew0KICAgICAgICAgICAgICAgIHJldHVybiBhIC0gYjsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIHNvcnRWYWx1ZXMuc29ydChzb3J0RmxvYXQpOw0KICAgICAgICB9DQogICAgICAgIHRhYmxlLmFwcGVuZENoaWxkKHRhYmxlSGVhZGVyKTsNCiAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBzb3J0VmFsdWVzLmxlbmd0aDsgaSsrKSB7DQogICAgICAgICAgICB0YWJsZS5hcHBlbmRDaGlsZChzb3J0T2JqW3NvcnRWYWx1ZXNbaV1dKTsNCiAgICAgICAgfQ0KICAgIH0NCiAgICByZXR1cm47DQp9DQpmdW5jdGlvbiBjcmVhdGVTZWFyY2hPYmooKSB7DQogICAgU0VBUkNIX01BUFBJTkcgPSBuZXcgT2JqZWN0KCk7DQogICAgdmFyIGRhdGEgPSBTRVJWRVJbInhlcGciXVsiZXBnTWFwcGluZyJdOw0KICAgIHZhciBjaGFubmVscyA9IGdldE9iaktleXMoZGF0YSk7DQogICAgdmFyIGNoYW5uZWxLZXlzID0gWyJ4LWFjdGl2ZSIsICJ4LWNoYW5uZWxJRCIsICJ4LW5hbWUiLCAiX2ZpbGUubTN1Lm5hbWUiLCAieC1ncm91cC10aXRsZSIsICJ4LXhtbHR2LWZpbGUiXTsNCiAgICBjaGFubmVscy5mb3JFYWNoKGlkID0+IHsNCiAgICAgICAgY2hhbm5lbEtleXMuZm9yRWFjaChrZXkgPT4gew0KICAgICAgICAgICAgaWYgKGtleSA9PSAieC1hY3RpdmUiKSB7DQogICAgICAgICAgICAgICAgc3dpdGNoIChkYXRhW2lkXVtrZXldKSB7DQogICAgICAgICAgICAgICAgICAgIGNhc2UgdHJ1ZToNCiAgICAgICAgICAgICAgICAgICAgICAgIFNFQVJDSF9NQVBQSU5HW2lkXSA9ICJvbmxpbmUgIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgICAgICBjYXNlIGZhbHNlOg0KICAgICAgICAgICAgICAgICAgICAgICAgU0VBUkNIX01BUFBJTkdbaWRdID0gIm9mZmxpbmUgIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgICAgIGlmIChrZXkgPT0gIngteG1sdHYtZmlsZSIpIHsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHhtbHR2RmlsZSA9IGdldFZhbHVlRnJvbVByb3ZpZGVyRmlsZShkYXRhW2lkXVtrZXldLCAieG1sdHYiLCAibmFtZSIpOw0KICAgICAgICAgICAgICAgICAgICBpZiAoeG1sdHZGaWxlICE9IHVuZGVmaW5lZCkgew0KICAgICAgICAgICAgICAgICAgICAgICAgU0VBUkNIX01BUFBJTkdbaWRdID0gU0VBUkNIX01BUFBJTkdbaWRdICsgeG1sdHZGaWxlICsgIiAiOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgICAgICAgICBTRUFSQ0hfTUFQUElOR1tpZF0gPSBTRUFSQ0hfTUFQUElOR1tpZF0gKyBkYXRhW2lkXVtrZXldICsgIiAiOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0NCiAgICAgICAgfSk7DQogICAgfSk7DQogICAgcmV0dXJuOw0KfQ0KZnVuY3Rpb24gc2VhcmNoSW5NYXBwaW5nKCkgew0KICAgIHZhciBzZWFyY2hWYWx1ZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzZWFyY2hNYXBwaW5nIikudmFsdWU7DQogICAgdmFyIHRycyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb250ZW50X3RhYmxlIikuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlRSIik7DQogICAgZm9yICh2YXIgaSA9IDE7IGkgPCB0cnMubGVuZ3RoOyArK2kpIHsNCiAgICAgICAgdmFyIGlkID0gdHJzW2ldLmdldEF0dHJpYnV0ZSgiaWQiKTsNCiAgICAgICAgdmFyIGVsZW1lbnQgPSBTRUFSQ0hfTUFQUElOR1tpZF07DQogICAgICAgIHN3aXRjaCAoZWxlbWVudC50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKHNlYXJjaFZhbHVlLnRvTG93ZXJDYXNlKCkpKSB7DQogICAgICAgICAgICBjYXNlIHRydWU6DQogICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpLnN0eWxlLmRpc3BsYXkgPSAiIjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgZmFsc2U6DQogICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpLnN0eWxlLmRpc3BsYXkgPSAibm9uZSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIH0NCiAgICB9DQogICAgcmV0dXJuOw0KfQ0KZnVuY3Rpb24gY2FsY3VsYXRlV3JhcHBlckhlaWdodCgpIHsNCiAgICBpZiAoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImJveC13cmFwcGVyIikpIHsNCiAgICAgICAgdmFyIGVsbSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJib3gtd3JhcHBlciIpOw0KICAgICAgICB2YXIgZGl2cyA9IG5ldyBBcnJheSgibXlTdHJlYW1zQm94IiwgImNsaWVudEluZm8iLCAiY29udGVudCIpOw0KICAgICAgICB2YXIgZWxlbWVudHNIZWlnaHQgPSAwIC0gZWxtLm9mZnNldEhlaWdodDsNCiAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBkaXZzLmxlbmd0aDsgaSsrKSB7DQogICAgICAgICAgICBlbGVtZW50c0hlaWdodCA9IGVsZW1lbnRzSGVpZ2h0ICsgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoZGl2c1tpXSkub2Zmc2V0SGVpZ2h0Ow0KICAgICAgICB9DQogICAgICAgIGVsbS5zdHlsZS5oZWlnaHQgPSB3aW5kb3cuaW5uZXJIZWlnaHQgLSBlbGVtZW50c0hlaWdodCArICJweCI7DQogICAgfQ0KICAgIHJldHVybjsNCn0NCmZ1bmN0aW9uIGNoYW5nZUNoYW5uZWxOdW1iZXIoZWxlbWVudCkgew0KICAgIHZhciBkYklEID0gZWxlbWVudC5wYXJlbnROb2RlLnBhcmVudE5vZGUuaWQ7DQogICAgdmFyIG5ld051bWJlciA9IHBhcnNlRmxvYXQoZWxlbWVudC52YWx1ZSk7DQogICAgdmFyIGNoYW5uZWxOdW1iZXJzID0gW107DQogICAgdmFyIGRhdGEgPSBTRVJWRVJbInhlcGciXVsiZXBnTWFwcGluZyJdOw0KICAgIHZhciBjaGFubmVscyA9IGdldE9iaktleXMoZGF0YSk7DQogICAgaWYgKGlzTmFOKG5ld051bWJlcikpIHsNCiAgICAgICAgYWxlcnQoInt7LmFsZXJ0LmludmFsaWRDaGFubmVsTnVtYmVyfX0iKTsNCiAgICAgICAgcmV0dXJuOw0KICAgIH0NCiAgICBjaGFubmVscy5mb3JFYWNoKGlkID0+IHsNCiAgICAgICAgdmFyIGNoYW5uZWxOdW1iZXIgPSBwYXJzZUZsb2F0KGRhdGFbaWRdWyJ4LWNoYW5uZWxJRCJdKTsNCiAgICAgICAgY2hhbm5lbE51bWJlcnMucHVzaChjaGFubmVsTnVtYmVyKTsNCiAgICB9KTsNCiAgICBmb3IgKHZhciBpID0gMDsgaSA8IGNoYW5uZWxOdW1iZXJzLmxlbmd0aDsgaSsrKSB7DQogICAgICAgIGlmIChjaGFubmVsTnVtYmVycy5pbmRleE9mKG5ld051bWJlcikgPT0gLTEpIHsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICB9DQogICAgICAgIGlmIChNYXRoLmZsb29yKG5ld051bWJlcikgPT0gbmV3TnVtYmVyKSB7DQogICAgICAgICAgICBuZXdOdW1iZXIgPSBuZXdOdW1iZXIgKyAxOw0KICAgICAgICB9DQogICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgbmV3TnVtYmVyID0gbmV3TnVtYmVyICsgMC4xOw0KICAgICAgICAgICAgbmV3TnVtYmVyLnRvRml4ZWQoMSk7DQogICAgICAgICAgICBuZXdOdW1iZXIgPSBNYXRoLnJvdW5kKG5ld051bWJlciAqIDEwKSAvIDEwOw0KICAgICAgICB9DQogICAgfQ0KICAgIGRhdGFbZGJJRF1bIngtY2hhbm5lbElEIl0gPSBuZXdOdW1iZXIudG9TdHJpbmcoKTsNCiAgICBlbGVtZW50LnZhbHVlID0gbmV3TnVtYmVyOw0KICAgIGNvbnNvbGUubG9nKGRhdGFbZGJJRF1bIngtY2hhbm5lbElEIl0pOw0KICAgIGlmIChDT0xVTU5fVE9fU09SVCA9PSAxKSB7DQogICAgICAgIENPTFVNTl9UT19TT1JUID0gLTE7DQogICAgICAgIHNvcnRUYWJsZSgxKTsNCiAgICB9DQogICAgcmV0dXJuOw0KfQ0KZnVuY3Rpb24gYmFja3VwKCkgew0KICAgIHZhciBkYXRhID0gbmV3IE9iamVjdCgpOw0KICAgIGNvbnNvbGUubG9nKCJCYWNrdXAgZGF0YSIpOw0KICAgIHZhciBjbWQgPSAieHRldmVCYWNrdXAiOw0KICAgIGNvbnNvbGUubG9nKCJTRU5EIFRPIFNFUlZFUiIpOw0KICAgIGNvbnNvbGUubG9nKGRhdGEpOw0KICAgIHZhciBzZXJ2ZXIgPSBuZXcgU2VydmVyKGNtZCk7DQogICAgc2VydmVyLnJlcXVlc3QoZGF0YSk7DQogICAgcmV0dXJuOw0KfQ0KZnVuY3Rpb24gdG9nZ2xlQ2hhbm5lbFN0YXR1cyhpZCkgew0KICAgIHZhciBlbGVtZW50Ow0KICAgIHZhciBzdGF0dXM7DQogICAgaWYgKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJhY3RpdmUiKSkgew0KICAgICAgICB2YXIgY2hlY2tib3ggPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYWN0aXZlIik7DQogICAgICAgIHN0YXR1cyA9IChjaGVja2JveCkuY2hlY2tlZDsNCiAgICB9DQogICAgdmFyIGlkcyA9IGdldEFsbFNlbGVjdGVkQ2hhbm5lbHMoKTsNCiAgICBpZiAoaWRzLmxlbmd0aCA9PSAwKSB7DQogICAgICAgIGlkcy5wdXNoKGlkKTsNCiAgICB9DQogICAgaWRzLmZvckVhY2goaWQgPT4gew0KICAgICAgICB2YXIgY2hhbm5lbCA9IFNFUlZFUlsieGVwZyJdWyJlcGdNYXBwaW5nIl1baWRdOw0KICAgICAgICBjaGFubmVsWyJ4LWFjdGl2ZSJdID0gc3RhdHVzOw0KICAgICAgICBzd2l0Y2ggKGNoYW5uZWxbIngtYWN0aXZlIl0pIHsNCiAgICAgICAgICAgIGNhc2UgdHJ1ZToNCiAgICAgICAgICAgICAgICBpZiAoY2hhbm5lbFsieC14bWx0di1maWxlIl0gPT0gIi0iIHx8IGNoYW5uZWxbIngtbWFwcGluZyJdID09ICItIikgew0KICAgICAgICAgICAgICAgICAgICBpZiAoQlVMS19FRElUID09IGZhbHNlKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBhbGVydChjaGFubmVsWyJ4LW5hbWUiXSArICI6IE1pc3NpbmcgWE1MVFYgZmlsZSAvIGNoYW5uZWwiKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNoZWNrYm94LmNoZWNrZWQgPSBmYWxzZTsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBjaGFubmVsWyJ4LWFjdGl2ZSJdID0gZmFsc2U7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSBmYWxzZToNCiAgICAgICAgICAgICAgICAvLyBjb2RlLi4uDQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIH0NCiAgICAgICAgaWYgKGNoYW5uZWxbIngtYWN0aXZlIl0gPT0gZmFsc2UpIHsNCiAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5jbGFzc05hbWUgPSAibm90QWN0aXZlRVBHIjsNCiAgICAgICAgfQ0KICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5jbGFzc05hbWUgPSAiYWN0aXZlRVBHIjsNCiAgICAgICAgfQ0KICAgIH0pOw0KfQ0KZnVuY3Rpb24gcmVzdG9yZSgpIHsNCiAgICBpZiAoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3VwbG9hZCcpKSB7DQogICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd1cGxvYWQnKS5yZW1vdmUoKTsNCiAgICB9DQogICAgdmFyIHJlc3RvcmUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJJTlBVVCIpOw0KICAgIHJlc3RvcmUuc2V0QXR0cmlidXRlKCJ0eXBlIiwgImZpbGUiKTsNCiAgICByZXN0b3JlLnNldEF0dHJpYnV0ZSgiY2xhc3MiLCAibm90VmlzaWJsZSIpOw0KICAgIHJlc3RvcmUuc2V0QXR0cmlidXRlKCJuYW1lIiwgIiIpOw0KICAgIHJlc3RvcmUuaWQgPSAidXBsb2FkIjsNCiAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHJlc3RvcmUpOw0KICAgIHJlc3RvcmUuY2xpY2soKTsNCiAgICByZXN0b3JlLm9uY2hhbmdlID0gZnVuY3Rpb24gKCkgew0KICAgICAgICB2YXIgZmlsZW5hbWUgPSByZXN0b3JlLmZpbGVzWzBdLm5hbWU7DQogICAgICAgIHZhciBjaGVjayA9IGNvbmZpcm0oIkZpbGU6ICIgKyBmaWxlbmFtZSArICJcbnt7LmNvbmZpcm0ucmVzdG9yZX19Iik7DQogICAgICAgIGlmIChjaGVjayA9PSB0cnVlKSB7DQogICAgICAgICAgICB2YXIgcmVhZGVyID0gbmV3IEZpbGVSZWFkZXIoKTsNCiAgICAgICAgICAgIHZhciBmaWxlID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignaW5wdXRbdHlwZT1maWxlXScpLmZpbGVzWzBdOw0KICAgICAgICAgICAgaWYgKGZpbGUpIHsNCiAgICAgICAgICAgICAgICByZWFkZXIucmVhZEFzRGF0YVVSTChmaWxlKTsNCiAgICAgICAgICAgICAgICByZWFkZXIub25sb2FkID0gZnVuY3Rpb24gKCkgew0KICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhyZWFkZXIucmVzdWx0KTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGRhdGEgPSBuZXcgT2JqZWN0KCk7DQogICAgICAgICAgICAgICAgICAgIHZhciBjbWQgPSAieHRldmVSZXN0b3JlIjsNCiAgICAgICAgICAgICAgICAgICAgZGF0YVsiYmFzZTY0Il0gPSByZWFkZXIucmVzdWx0Ow0KICAgICAgICAgICAgICAgICAgICB2YXIgc2VydmVyID0gbmV3IFNlcnZlcihjbWQpOw0KICAgICAgICAgICAgICAgICAgICBzZXJ2ZXIucmVxdWVzdChkYXRhKTsNCiAgICAgICAgICAgICAgICB9Ow0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgZWxzZSB7DQogICAgICAgICAgICAgICAgYWxlcnQoIkZpbGUgY291bGQgbm90IGJlIGxvYWRlZCIpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgcmVzdG9yZS5yZW1vdmUoKTsNCiAgICAgICAgICAgIHJldHVybjsNCiAgICAgICAgfQ0KICAgIH07DQogICAgcmV0dXJuOw0KfQ0KZnVuY3Rpb24gdXBsb2FkTG9nbygpIHsNCiAgICBpZiAoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3VwbG9hZCcpKSB7DQogICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd1cGxvYWQnKS5yZW1vdmUoKTsNCiAgICB9DQogICAgdmFyIHVwbG9hZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIklOUFVUIik7DQogICAgdXBsb2FkLnNldEF0dHJpYnV0ZSgidHlwZSIsICJmaWxlIik7DQogICAgdXBsb2FkLnNldEF0dHJpYnV0ZSgiY2xhc3MiLCAibm90VmlzaWJsZSIpOw0KICAgIHVwbG9hZC5zZXRBdHRyaWJ1dGUoIm5hbWUiLCAiIik7DQogICAgdXBsb2FkLmlkID0gInVwbG9hZCI7DQogICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZCh1cGxvYWQpOw0KICAgIHVwbG9hZC5jbGljaygpOw0KICAgIHVwbG9hZC5vbmJsdXIgPSBmdW5jdGlvbiAoKSB7DQogICAgICAgIGFsZXJ0KCk7DQogICAgfTsNCiAgICB1cGxvYWQub25jaGFuZ2UgPSBmdW5jdGlvbiAoKSB7DQogICAgICAgIHZhciBmaWxlbmFtZSA9IHVwbG9hZC5maWxlc1swXS5uYW1lOw0KICAgICAgICB2YXIgcmVhZGVyID0gbmV3IEZpbGVSZWFkZXIoKTsNCiAgICAgICAgdmFyIGZpbGUgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCdpbnB1dFt0eXBlPWZpbGVdJykuZmlsZXNbMF07DQogICAgICAgIGlmIChmaWxlKSB7DQogICAgICAgICAgICByZWFkZXIucmVhZEFzRGF0YVVSTChmaWxlKTsNCiAgICAgICAgICAgIHJlYWRlci5vbmxvYWQgPSBmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICAgICAgY29uc29sZS5sb2cocmVhZGVyLnJlc3VsdCk7DQogICAgICAgICAgICAgICAgdmFyIGRhdGEgPSBuZXcgT2JqZWN0KCk7DQogICAgICAgICAgICAgICAgdmFyIGNtZCA9ICJ1cGxvYWRMb2dvIjsNCiAgICAgICAgICAgICAgICBkYXRhWyJiYXNlNjQiXSA9IHJlYWRlci5yZXN1bHQ7DQogICAgICAgICAgICAgICAgZGF0YVsiZmlsZW5hbWUiXSA9IGZpbGUubmFtZTsNCiAgICAgICAgICAgICAgICB2YXIgc2VydmVyID0gbmV3IFNlcnZlcihjbWQpOw0KICAgICAgICAgICAgICAgIHNlcnZlci5yZXF1ZXN0KGRhdGEpOw0KICAgICAgICAgICAgICAgIHZhciB1cGRhdGVMb2dvID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3VwZGF0ZS1pY29uJyk7DQogICAgICAgICAgICAgICAgdXBkYXRlTG9nby5jaGVja2VkID0gZmFsc2U7DQogICAgICAgICAgICAgICAgdXBkYXRlTG9nby5jbGFzc05hbWUgPSAiY2hhbmdlZCI7DQogICAgICAgICAgICB9Ow0KICAgICAgICB9DQogICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgYWxlcnQoIkZpbGUgY291bGQgbm90IGJlIGxvYWRlZCIpOw0KICAgICAgICB9DQogICAgICAgIHVwbG9hZC5yZW1vdmUoKTsNCiAgICAgICAgcmV0dXJuOw0KICAgIH07DQp9DQpmdW5jdGlvbiBjaGVja1VuZG8oa2V5KSB7DQogICAgc3dpdGNoIChrZXkpIHsNCiAgICAgICAgY2FzZSAiZXBnTWFwcGluZyI6DQogICAgICAgICAgICBpZiAoVU5ETy5oYXNPd25Qcm9wZXJ0eShrZXkpKSB7DQogICAgICAgICAgICAgICAgU0VSVkVSWyJ4ZXBnIl1ba2V5XSA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkoVU5ET1trZXldKSk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICBVTkRPW2tleV0gPSBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KFNFUlZFUlsieGVwZyJdW2tleV0pKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBkZWZhdWx0Og0KICAgICAgICAgICAgYnJlYWs7DQogICAgfQ0KICAgIHJldHVybjsNCn0NCmZ1bmN0aW9uIHNvcnRTZWxlY3QoZWxlbSkgew0KICAgIHZhciB0bXBBcnkgPSBbXTsNCiAgICB2YXIgc2VsZWN0ZWRWYWx1ZSA9IGVsZW1bZWxlbS5zZWxlY3RlZEluZGV4XS52YWx1ZTsNCiAgICBmb3IgKHZhciBpID0gMDsgaSA8IGVsZW0ub3B0aW9ucy5sZW5ndGg7IGkrKykNCiAgICAgICAgdG1wQXJ5LnB1c2goZWxlbS5vcHRpb25zW2ldKTsNCiAgICB0bXBBcnkuc29ydChmdW5jdGlvbiAoYSwgYikgeyByZXR1cm4gKGEudGV4dCA8IGIudGV4dCkgPyAtMSA6IDE7IH0pOw0KICAgIHdoaWxlIChlbGVtLm9wdGlvbnMubGVuZ3RoID4gMCkNCiAgICAgICAgZWxlbS5vcHRpb25zWzBdID0gbnVsbDsNCiAgICB2YXIgbmV3U2VsZWN0ZWRJbmRleCA9IDA7DQogICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0bXBBcnkubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgZWxlbS5vcHRpb25zW2ldID0gdG1wQXJ5W2ldOw0KICAgICAgICBpZiAoZWxlbS5vcHRpb25zW2ldLnZhbHVlID09IHNlbGVjdGVkVmFsdWUpDQogICAgICAgICAgICBuZXdTZWxlY3RlZEluZGV4ID0gaTsNCiAgICB9DQogICAgZWxlbS5zZWxlY3RlZEluZGV4ID0gbmV3U2VsZWN0ZWRJbmRleDsgLy8gU2V0IG5ldyBzZWxlY3RlZCBpbmRleCBhZnRlciBzb3J0aW5nDQogICAgcmV0dXJuOw0KfQ0KZnVuY3Rpb24gdXBkYXRlTG9nKCkgew0KICAgIGNvbnNvbGUubG9nKCJUT0tFTiIpOw0KICAgIHZhciBzZXJ2ZXIgPSBuZXcgU2VydmVyKCJ1cGRhdGVMb2ciKTsNCiAgICBzZXJ2ZXIucmVxdWVzdChuZXcgT2JqZWN0KCkpOw0KfQ0K" - webUI["html/js/configuaration.js"] = "dmFyIGNvbmZpZ01lbnUgPSBuZXcgT2JqZWN0KCk7DQp2YXIgd2l6YXJkID0gbmV3IEFycmF5KCJrZXkiLCAidHVuZXIiLCAiZXBnU291cmNlIiwgIm0zdSIsICJjb21wbGV0ZSIpOw0KdmFyIGFjdGl2ZVdpemFyZDsNCnZhciBkdnJJUA0KDQp2YXIgY29uZmlnTWVudV90dW5lciA9IG5ldyBPYmplY3QoKTsNCmNvbmZpZ01lbnVfdHVuZXJbIl9lbGVtZW50Il0gICAgICA9ICJTRUxFQ1QiOw0KY29uZmlnTWVudV90dW5lclsiX21lbnVUeXBlIl0gICAgID0gInNpbmdsZUlucHV0IjsNCmNvbmZpZ01lbnVfdHVuZXJbIl9jb25maWdLZXkiXSAgICA9ICJ0dW5lciI7DQpjb25maWdNZW51X3R1bmVyWyJfbGFiZWwiXSAgICAgICAgPSAiQXZhaWxhYmxlIHR1bmVycyI7DQpjb25maWdNZW51X3R1bmVyWyJuYW1lIl0gICAgICAgICAgPSAidHVuZXIiOw0KY29uZmlnTWVudV90dW5lclsiaWQiXSAgICAgICAgICAgID0gIlR1bmVyIjsNCmNvbmZpZ01lbnVfdHVuZXJbInBsYWNlaG9sZGVyIl0gICA9ICJUdW5lciI7DQpjb25maWdNZW51X3R1bmVyWyJfdXNhZ2UiXSAgICAgICAgPSAiVGhpcyBzZXR0aW5nIGlzIG9ubHkgdXNlZCBieSBQbGV4IGFuZCBFbWJ5Ljxicj5UaGUgbnVtYmVyIG9mIGNvbmN1cnJlbnQgc3RyZWFtcyBhbGxvd2VkIGJ5IHRoZSBJUFRWIHByb3ZpZGVyLiINCg0KDQp2YXIgb3B0aW9uVmFsdWVzID0gbmV3IEFycmF5KCk7DQpmb3IgKHZhciBpID0gMTsgaSA8PSAxMDA7IGkrKykgew0KICBvcHRpb25WYWx1ZXMucHVzaChpKQ0KfQ0KY29uZmlnTWVudV90dW5lclsiX29wdGlvblZhbHVlcyJdID0gb3B0aW9uVmFsdWVzOw0KDQp2YXIgY29uZmlnTWVudV9lcGcgPSBuZXcgT2JqZWN0KCk7DQpjb25maWdNZW51X2VwZ1siX2VsZW1lbnQiXSAgICAgID0gIlNFTEVDVCI7DQpjb25maWdNZW51X2VwZ1siX21lbnVUeXBlIl0gICAgID0gInNpbmdsZUlucHV0IjsNCmNvbmZpZ01lbnVfZXBnWyJfY29uZmlnS2V5Il0gICAgPSAiZXBnU291cmNlIjsNCmNvbmZpZ01lbnVfZXBnWyJfbGFiZWwiXSAgICAgICAgPSAiU2VsZWN0aW9uIG9mIHRoZSBFUEcgc291cmNlIjsNCmNvbmZpZ01lbnVfZXBnWyJuYW1lIl0gICAgICAgICAgPSAiZXBnU291cmNlIjsNCmNvbmZpZ01lbnVfZXBnWyJpZCJdICAgICAgICAgICAgPSAiRVBHIHNvdXJjZSI7DQpjb25maWdNZW51X2VwZ1sicGxhY2Vob2xkZXIiXSAgID0gIkVQRyBzb3VyY2UiOw0KY29uZmlnTWVudV9lcGdbIl9vcHRpb25WYWx1ZXMiXSA9IG5ldyBBcnJheSgiUE1TIiwgIlhFUEciKTsNCmNvbmZpZ01lbnVfZXBnWyJfdXNhZ2UiXSAgICAgICAgPSAiUE1TOiAgIFVzZSBFUEcgZGF0YSBmcm9tIFBsZXggb3IgRW1ieTxicj5YRVBHOiAgVXNlIG9mIGV4dGVybmFsIEVQRyBkYXRhIChYTUxUVik8YnI+ICAgICAgIFNldmVyYWwgWE1MVFYgc291cmNlcyBwb3NzaWJsZTxicj4gICAgICAgQWxsb3dzIGVkaXRpbmcgYW5kIG9yZGVyIGNoYW5uZWxzPGJyPiAgICAgICBNM1UgLyBYTUxUViBleHBvcnQgKEhUVFAgbGluayBmb3IgSVBUViBhcHBzKSINCg0KdmFyIGNvbmZpZ01lbnVfbTN1ID0gbmV3IE9iamVjdCgpOw0KY29uZmlnTWVudV9tM3VbIl9lbGVtZW50Il0gICAgICAgID0gIklOUFVUIjsNCmNvbmZpZ01lbnVfbTN1WyJfbWVudVR5cGUiXSAgICAgICA9ICJpbnB1dEFycmF5IjsNCmNvbmZpZ01lbnVfbTN1WyJfY29uZmlnS2V5Il0gICAgICA9ICJmaWxlIjsNCmNvbmZpZ01lbnVfbTN1WyJfbGFiZWwiXSAgICAgICAgICA9ICJNM1UgRmlsZTogbG9jYWwgb3IgcmVtb3RlIjsNCmNvbmZpZ01lbnVfbTN1WyJuYW1lIl0gICAgICAgICAgICA9ICJmaWxlIjsNCmNvbmZpZ01lbnVfbTN1WyJpZCJdICAgICAgICAgICAgICA9ICJtM3UiOw0KY29uZmlnTWVudV9tM3VbInR5cGUiXSAgICAgICAgICAgID0gInRleHQiOw0KY29uZmlnTWVudV9tM3VbInBsYWNlaG9sZGVyIl0gICAgID0gIk0zVSBGaWxlIjsNCmNvbmZpZ01lbnVfbTN1WyJfdXNhZ2UiXSAgICAgICAgICA9ICJSZW1vdGUgcGxheWxpc3Q6IGh0dHA6Ly95b3VyLnByb3ZpZGVyLmNvbS9maWxlLm0zdTxicj5Mb2NhbCAgcGxheWxpc3Q6IC9wYXRoL3RvL2ZpbGUubTN1Ig0KDQoNCmNvbmZpZ01lbnVfbTN1WyJ2YWx1ZSJdICAgICAgICAgICA9ICJodHRwOi8vd2Vic3J2LmxvY2FsOjgwODAva2FiZWwubTN1IjsNCg0KdmFyIGNvbmZpZ01lbnVfY29tcGxldGUgPSBuZXcgT2JqZWN0KCk7DQpjb25maWdNZW51X2NvbXBsZXRlWyJfZWxlbWVudCJdICAgICAgICA9ICJIMiI7DQpjb25maWdNZW51X2NvbXBsZXRlWyJfbWVudVR5cGUiXSAgICAgICA9ICJpbnB1dEFycmF5IjsNCmNvbmZpZ01lbnVfY29tcGxldGVbIl9jb25maWdLZXkiXSAgICAgID0gImZpbGUiOw0KY29uZmlnTWVudV9jb21wbGV0ZVsiX3RleHQiXSAgICAgICAgICAgPSAieFRlVmUgd2FzIHN1Y2Nlc3NmdWxseSBzZXQgdXAiOw0KY29uZmlnTWVudV9jb21wbGV0ZVsibmFtZSJdICAgICAgICAgICAgPSAiY29tcGxldGUiOw0KY29uZmlnTWVudV9jb21wbGV0ZVsiaWQiXSAgICAgICAgICAgICAgPSAiY29tcGxldGUiOw0KY29uZmlnTWVudV9jb21wbGV0ZVsidHlwZSJdICAgICAgICAgICAgPSAidGV4dCI7DQpjb25maWdNZW51X2NvbXBsZXRlWyJjbGFzcyJdICAgICAgICAgICA9ICJjZW50ZXIiOw0KDQpjb25maWdNZW51WyJ0dW5lciJdICAgICA9IGNvbmZpZ01lbnVfdHVuZXI7DQpjb25maWdNZW51WyJlcGdTb3VyY2UiXSA9IGNvbmZpZ01lbnVfZXBnOw0KY29uZmlnTWVudVsibTN1Il0gICAgICAgPSBjb25maWdNZW51X20zdTsNCmNvbmZpZ01lbnVbImNvbXBsZXRlIl0gID0gY29uZmlnTWVudV9jb21wbGV0ZTsNCg0KZnVuY3Rpb24gcmVhZHlGb3JDb25maWd1cmF0aW9uKCkgew0KICB2YXIgZGF0YSA9IG5ldyBPYmplY3QoKTsNCiAgZGF0YVsiY21kIl0gPSAiZ2V0U2VydmVyQ29uZmlnIjsNCiAgeFRlVmUoZGF0YSk7DQogIHNob3dMb2FkaW5nU2NyZWVuKGZhbHNlKTsNCn0NCg0KZnVuY3Rpb24gY3JlYXRlQ29uZmlndXJhdGlvbihlbG0pIHsNCg0KICBhY3RpdmVXaXphcmQgPSBlbG07DQogIHZhciBpdGVtICA9IGNvbmZpZ01lbnVbZWxtXTsNCg0KICB2YXIgZGl2ICAgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29udGVudCIpOw0KICBkaXYuaW5uZXJIVE1MID0gIiI7DQogIGRpdi5zZXRBdHRyaWJ1dGUoImRhdGEtY29uZmlnS2V5IiwgaXRlbVsiX2NvbmZpZ0tleSJdKTsNCiAgZGl2LnNldEF0dHJpYnV0ZSgiZGF0YS1tZW51VHlwZSIsIGl0ZW1bIl9tZW51VHlwZSJdKTsNCiAgDQogIHN3aXRjaChpdGVtLmhhc093blByb3BlcnR5KCJfbGFiZWwiKSkgew0KICAgIGNhc2UgdHJ1ZToNCiAgICAgIHZhciBuZXdJdGVtID0gbmV3IE9iamVjdCgpOw0KICAgICAgbmV3SXRlbVsiX2VsZW1lbnQiXSA9ICJMQUJFTCI7DQogICAgICBuZXdJdGVtWyJfdGV4dCJdICAgID0gaXRlbVsiX2xhYmVsIl07IA0KICAgICAgbmV3SXRlbVsiZm9yIl0gICAgICA9IGl0ZW1bImlkIl07DQogICAgICBkaXYuYXBwZW5kQ2hpbGQoY3JlYXRlRWxlbWVudChuZXdJdGVtKSk7DQogICAgICBicmVhaw0KICB9DQoNCiAgc3dpdGNoKGl0ZW1bIl9lbGVtZW50Il0pIHsNCiAgICBjYXNlICJTRUxFQ1QiOg0KICAgICAgZGl2LmFwcGVuZENoaWxkKGNyZWF0ZUVsZW1lbnQoaXRlbSkpOw0KICAgICAgdmFyIHNlbGVjdEVsZW1lbnQgPSBkaXYuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlNFTEVDVCIpWzBdOw0KICAgICAgdmFyIHZhbHVlcyA9IGl0ZW1bIl9vcHRpb25WYWx1ZXMiXTsNCiAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdmFsdWVzLmxlbmd0aDsgaSsrKSB7DQogICAgICAgIHZhciBuZXdFbnRyeSA9IG5ldyBPYmplY3Q7DQogICAgICAgIG5ld0VudHJ5WyJfZWxlbWVudCJdICA9ICJPUFRJT04iOw0KICAgICAgICBuZXdFbnRyeVsiX3RleHQiXSAgICAgPSBpdGVtWyJpZCJdICsgIjogIiArIHZhbHVlc1tpXTsNCiAgICAgICAgbmV3RW50cnlbInZhbHVlIl0gICAgID0gdmFsdWVzW2ldOw0KICAgICAgICBzZWxlY3RFbGVtZW50LmFwcGVuZENoaWxkKGNyZWF0ZUVsZW1lbnQobmV3RW50cnkpKTsNCiAgICAgIH0NCiAgICAgIC8vcmV0dXJuDQogICAgICBicmVhazsNCg0KICAgIGRlZmF1bHQ6IA0KICAgICAgZGl2LmFwcGVuZENoaWxkKGNyZWF0ZUVsZW1lbnQoaXRlbSkpOw0KICAgICAgYnJlYWs7DQoNCg0KICB9DQogIC8vYWxlcnQoKQ0KDQogIHN3aXRjaChpdGVtLmhhc093blByb3BlcnR5KCJfdXNhZ2UiKSkgew0KICAgIGNhc2UgdHJ1ZTogDQogICAgICB2YXIgdXNhZ2VJdGVtID0gbmV3IE9iamVjdCgpOw0KICAgICAgdXNhZ2VJdGVtWyJfZWxlbWVudCJdID0gIlBSRSINCiAgICAgIHVzYWdlSXRlbVsiX3RleHQiXSAgICA9IGl0ZW1bIl91c2FnZSJdOw0KICAgICAgZGl2LmFwcGVuZENoaWxkKGNyZWF0ZUVsZW1lbnQodXNhZ2VJdGVtKSk7DQogIH0NCg0KICBpZiAoYWN0aXZlV2l6YXJkID09ICJjb21wbGV0ZSIpIHsNCiAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibmV4dCIpLnZhbHVlID0gIkZpbmlzaGVkIg0KICAgIC8vZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm5leHQiKS5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAiamF2YXNjcmlwdDogbG9jYXRpb24ucmVsb2FkKCk7IikNCiAgfQ0KDQogIC8vZGl2LmFwcGVuZENoaWxkKGNyZWF0ZUVsZW1lbnQoaXRlbSkpOw0KfQ0KDQpmdW5jdGlvbiBzYXZlRGF0YSgpIHsNCg0KICB2YXIgZGl2ICAgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29udGVudCIpOw0KICB2YXIgaW5wdXRzID0gZGl2LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJJTlBVVCIpOw0KICB2YXIgc2VsZWN0cyA9IGRpdi5nZXRFbGVtZW50c0J5VGFnTmFtZSgiU0VMRUNUIik7DQogIHZhciB2YWx1ZTsNCiAgdmFyIGRhdGEgPSBuZXcgT2JqZWN0KCk7DQogIHZhciB2YWx1ZUFyciA9IG5ldyBBcnJheSgpOw0KICB2YXIgbmV3RGF0YSA9IGZhbHNlOw0KDQogIGlmIChhY3RpdmVXaXphcmQgPT0gImNvbXBsZXRlIikgew0KICAgIGRhdGFbImNtZCJdID0gIndpemFyZENvbXBsZXRlZCI7DQogICAgc2hvd0xvYWRpbmdTY3JlZW4odHJ1ZSkNCiAgICB4VGVWZShkYXRhKTsNCiAgICByZXR1cm4NCiAgfQ0KICANCiAgZm9yICh2YXIgaSA9IDA7IGkgPCBpbnB1dHMubGVuZ3RoOyBpKyspIHsNCiAgICB2YXIgbWVudVR5cGUgPSBpbnB1dHNbaV0ucGFyZW50RWxlbWVudC5nZXRBdHRyaWJ1dGUoImRhdGEtbWVudXR5cGUiKTsNCiAgICBpZiAoaW5wdXRzW2ldLnZhbHVlICE9IHVuZGVmaW5lZCAmJiBpbnB1dHNbaV0udmFsdWUgIT0gIiIgKSB7DQogICAgICBuZXdEYXRhID0gdHJ1ZTsNCg0KICAgICAgY29uc29sZS5sb2coaW5wdXRzW2ldLmlkKQ0KICAgICAgc3dpdGNoKGlucHV0c1tpXS5pZCkgew0KICAgICAgICBjYXNlICJtM3UiOiANCiAgICAgICAgICB2YXIgbmV3UGxheWxpc3QgPSBuZXcgT2JqZWN0KCk7DQogICAgICAgICAgbmV3UGxheWxpc3RbImZpbGUuc291cmNlIl0gPSBpbnB1dHNbaV0udmFsdWU7DQogICAgICAgICAgLy9uZXdQbGF5bGlzdFsibmFtZSJdID0gaW5wdXRzW2ldLnZhbHVlOw0KICAgICAgICAgIG5ld1BsYXlsaXN0WyJ0eXBlIl0gPSAibTN1IjsNCiAgICAgICAgICBuZXdQbGF5bGlzdFsibmV3Il0gPSB0cnVlOw0KDQogICAgICAgICAgZGF0YVsiZmlsZXMiXSA9IG5ldyBPYmplY3QoKTsNCiAgICAgICAgICBkYXRhWyJmaWxlcyJdWyJtM3UiXSA9IG5ldyBPYmplY3QoKTsNCiAgICAgICAgICBkYXRhWyJmaWxlcyJdWyJtM3UiXVsiLSJdID0gbmV3UGxheWxpc3Q7DQogICAgICAgICAgDQogICAgICAgICAgZGF0YVsiY21kIl0gPSAic2F2ZUZpbGVzTTNVIjsNCiAgICAgICAgICB4VGVWZShkYXRhKQ0KICAgICAgICAgIHJldHVybg0KICAgICAgfQ0KICAgICAgLyoNCiAgICAgIHN3aXRjaChtZW51VHlwZSkgew0KICAgICAgICBjYXNlICJzaW5nbGVJbnB1dCI6DQogICAgICAgICAgZGF0YVtpbnB1dHNbaV0ubmFtZV0gPSBpbnB1dHNbaV0udmFsdWU7IGJyZWFrOw0KICAgICAgICBjYXNlICJpbnB1dEFycmF5IjogDQogICAgICAgICAgdmFsdWVBcnIucHVzaChpbnB1dHNbaV0udmFsdWUpOw0KICAgICAgICAgIGRhdGFbaW5wdXRzW2ldLm5hbWVdID0gdmFsdWVBcnI7IGJyZWFrDQoNCiAgICAgIH0NCiAgICAgICovDQogICAgfSBlbHNlIHsNCiAgICAgIGlucHV0c1tpXS5zdHlsZS5ib3JkZXJCb3R0b21Db2xvciA9ICJyZWQiOw0KICAgICAgcmV0dXJuOw0KICAgIH0NCiAgfQ0KDQoNCiAgZm9yICh2YXIgaSA9IDA7IGkgPCBzZWxlY3RzLmxlbmd0aDsgaSsrKSB7DQogICAgdmFyIHZhbHVlID0gc2VsZWN0c1tpXS5vcHRpb25zW3NlbGVjdHNbaV0uc2VsZWN0ZWRJbmRleF0udmFsdWU7DQogICAgaWYgKGlzTmFOKHZhbHVlKSA9PSBmYWxzZSkgew0KICAgICAgdmFsdWUgPSBwYXJzZUludCh2YWx1ZSk7DQogICAgICBkYXRhW3NlbGVjdHNbaV0ubmFtZV0gPSB2YWx1ZTsNCiAgICAgIG5ld0RhdGEgPSB0cnVlOw0KICAgICAgYnJlYWs7DQogICAgfQ0KICAgIGRhdGFbc2VsZWN0c1tpXS5uYW1lXSA9IHZhbHVlOw0KICAgIG5ld0RhdGEgPSB0cnVlOw0KICB9DQoNCg0KICAvL2NvbnNvbGUubG9nKGRhdGEsIG5ld0RhdGEpOw0KICBpZiAobmV3RGF0YSA9PSB0cnVlKSB7DQogICAgY29uZmlnID0gZGF0YQ0KICAgIGRhdGFbImNtZCJdID0gInNhdmVDb25maWciOw0KICAgIHhUZVZlKGRhdGEpOw0KICB9DQp9DQoNCmZ1bmN0aW9uIHhUZVZlKGRhdGEpIHsNCg0KICBpZiAod2ViU29ja2V0cyA9PSBmYWxzZSkgew0KICAgIGFsZXJ0KCJZb3VyIGJyb3dzZXIgZG9lcyBub3Qgc3VwcG9ydCBXZWJTb2NrZXRzIik7DQogICAgcmV0dXJuOw0KICB9DQoNCiAgaWYgKGFjdGl2ZVdpemFyZCA9PSAibTN1IiB8fCBhY3RpdmVXaXphcmQgPT0gImVwZ1NvdXJjZSIpIHsNCiAgICBzaG93TG9hZGluZ1NjcmVlbih0cnVlKTsNCiAgfQ0KDQogIHZhciBwcm90b2NvbFdTDQogIHN3aXRjaCh3aW5kb3cubG9jYXRpb24ucHJvdG9jb2wpIHsNCiAgICBjYXNlICJodHRwOiI6ICAgcHJvdG9jb2xXUyA9ICJ3czovLyI7IGJyZWFrOw0KICAgIGNhc2UgImh0dHBzOiI6ICBwcm90b2NvbFdTID0gIndzczovLyI7IGJyZWFrOw0KICB9DQoNCiAgdmFyIHdzID0gbmV3IFdlYlNvY2tldChwcm90b2NvbFdTICsgd2luZG93LmxvY2F0aW9uLmhvc3RuYW1lICsgIjoiICsgd2luZG93LmxvY2F0aW9uLnBvcnQgKyAiL2RhdGEvIiArICI/VG9rZW49IiArIGdldENvb2tpZSgiVG9rZW4iKSk7DQogIA0KICB3cy5vbm9wZW4gPSBmdW5jdGlvbigpIHsNCiAgICB3cy5zZW5kKEpTT04uc3RyaW5naWZ5KGRhdGEpKTsNCiAgfQ0KDQogIHdzLm9ubWVzc2FnZSA9IGZ1bmN0aW9uIChlKSB7DQogICAgDQogICAgdmFyIHJlc3BvbnNlID0gSlNPTi5wYXJzZShlLmRhdGEpOw0KICAgIA0KICAgIGlmIChyZXNwb25zZS5oYXNPd25Qcm9wZXJ0eSgiY2xpZW50SW5mbyIpKSB7DQogICAgICBjcmVhdGVDbGludEluZm8ocmVzcG9uc2VbImNsaWVudEluZm8iXSk7DQogICAgfQ0KDQogICAgaWYgKHJlc3BvbnNlLmhhc093blByb3BlcnR5KCJzdGF0dXMiKSkgew0KICAgICAgaWYgKHJlc3BvbnNlWyJzdGF0dXMiXSA9PSBmYWxzZSkgew0KICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiaGVhZGxpbmUiKS5zdHlsZS5ib3JkZXJDb2xvciA9ICJyZWQiOw0KICAgICAgICBzaG93RXJyKHJlc3BvbnNlWyJlcnIiXSk7DQogICAgICAgIHNob3dMb2FkaW5nU2NyZWVuKGZhbHNlKQ0KICAgICAgICByZXR1cm4NCiAgICAgIH0gZWxzZSB7DQogICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJlcnIiKS5pbm5lckhUTUwgPSAiIjsNCiAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImhlYWRsaW5lIikuc3R5bGUuYm9yZGVyQ29sb3IgPSAibGF3bmdyZWVuIjsNCiAgICAgIH0NCg0KICAgICAgZHZySVAgPSByZXNwb25zZVsiRFZSIl0NCiAgICAgIHN3aXRjaChyZXNwb25zZVsiY29uZmlndXJhdGlvbldpemFyZCJdKSB7DQogICAgICAgIGNhc2UgdHJ1ZTogDQogICAgICAgICAgaWYgKGFjdGl2ZVdpemFyZCA9PSB1bmRlZmluZWQpIHsNCiAgICAgICAgICAgIGFjdGl2ZVdpemFyZCA9IHdpemFyZFswXQ0KICAgICAgICAgIH0NCiAgICAgICAgICB2YXIgbiA9IHdpemFyZC5pbmRleE9mKGFjdGl2ZVdpemFyZCk7DQogICAgICAgICAgbisrOw0KICAgICAgICAgIGFjdGl2ZVdpemFyZCA9IHdpemFyZFtuXQ0KDQogICAgICAgICAgaWYgKGFjdGl2ZVdpemFyZCA9PSB1bmRlZmluZWQpIHsNCiAgICAgICAgICAgIGRhdGFbImNtZCJdID0gIndpemFyZENvbXBsZXRlZCI7DQogICAgICAgICAgICB4VGVWZShkYXRhKQ0KICAgICAgICAgIH0gZWxzZSB7DQogICAgICAgICAgICAvL2NvbnNvbGUubG9nKGFjdGl2ZVdpemFyZCk7DQogICAgICAgICAgICBjcmVhdGVDb25maWd1cmF0aW9uKGFjdGl2ZVdpemFyZCk7IA0KICAgICAgICAgIH0NCiAgICAgICAgICANCiAgICAgICAgYnJlYWs7DQogICAgICB9DQoNCiAgICAgIHN3aXRjaChyZXNwb25zZVsicmVsb2FkIl0pIHsNCiAgICAgICAgDQogICAgICAgIA0KICAgICAgICBjYXNlIHRydWU6IA0KICAgIA0KICAgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKXsgDQogICAgICAgICAgICBsb2NhdGlvbi5yZWxvYWQoKTsNCiAgICAgICAgICB9LCAxMDApOw0KICAgICAgICAgIA0KICAgICAgICAgIC8vbG9jYXRpb24ucmVsb2FkKCk7DQogICAgICAgICAgDQogICAgICAgICAgYnJlYWs7DQogICAgICAgIA0KICAgICAgfQ0KDQogICAgICANCiAgICB9DQoNCiAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7IHNob3dMb2FkaW5nU2NyZWVuKGZhbHNlKTsgfSwgMzAwKTsNCiAgfQ0KICANCn0NCg0KZnVuY3Rpb24gc2hvd0VycihlbG0pIHsNCiAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImVyciIpLmlubmVySFRNTCA9IGVsbTsNCn0=" - webUI["html/js/users.js"] = "ZnVuY3Rpb24gb3BlblVzZXJzKGVsbSkgew0KICBjb2xvbW5Tb3J0ID0gMDsNCg0KICB2YXIgbmV3RGl2ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNldHRpbmdzIik7DQogIA0KICB2YXIgbmV3RW50cnkgPSBuZXcgT2JqZWN0KCk7DQogIG5ld0VudHJ5WyJfZWxlbWVudCJdICA9ICJIUiI7DQogIG5ld0Rpdi5hcHBlbmRDaGlsZChjcmVhdGVFbGVtZW50KG5ld0VudHJ5KSk7DQoNCiAgdmFyIG5ld0VudHJ5ID0gbmV3IE9iamVjdCgpOw0KICBuZXdFbnRyeVsiX2VsZW1lbnQiXSAgPSAiSU5QVVQiOw0KICBuZXdFbnRyeVsidHlwZSJdID0gImJ1dHRvbiI7DQogIG5ld0VudHJ5WyJjbGFzcyJdID0gImJ1dHRvbiI7DQogIG5ld0VudHJ5WyJ2YWx1ZSJdID0gIk5ldyI7DQogIG5ld0VudHJ5WyJvbmNsaWNrIl0gPSAidXNlckRldGFpbCgwKSI7DQogIG5ld0Rpdi5hcHBlbmRDaGlsZChjcmVhdGVFbGVtZW50KG5ld0VudHJ5KSk7DQoNCiAgdmFyIGRpdiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzZXR0aW5ncyIpOw0KDQogICAvLyBCdWlsZCB0YWJsZQ0KICB2YXIgbmV3VGFibGUgPSBuZXcgT2JqZWN0KCk7DQogIG5ld1RhYmxlWyJfZWxlbWVudCJdICA9ICJUQUJMRSI7DQogIG5ld1RhYmxlWyJpZCJdICAgICAgICA9ICJpZF9tYXBwaW5nIjsNCiAgbmV3VGFibGVbImNsYXNzIl0gICAgID0gInRhYmxlLW1hcHBpbmciOw0KICBkaXYuYXBwZW5kQ2hpbGQoY3JlYXRlRWxlbWVudChuZXdUYWJsZSkpOw0KDQogIHNldFRpbWVvdXQoZnVuY3Rpb24oKXsgDQogICAgY3JlYXRlVXNlcnNUYWJsZSgpOyANCiAgfSwgMTApOw0KfQ0KDQpmdW5jdGlvbiBjcmVhdGVVc2Vyc1RhYmxlKCkgew0KICB2YXIgdGFibGUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiaWRfbWFwcGluZyIpOw0KICB0YWJsZS5pbm5lckhUTUwgPSAiIjsNCiAgdmFyIG5ld1RSID0gbmV3IE9iamVjdCgpOw0KICBuZXdUUlsiX2VsZW1lbnQiXSA9ICJUUiI7DQogIG5ld1RSWyJjbGFzcyJdICAgID0gInRhYmxlLW1hcHBpbmctaGVhZGVyIjsNCiAgdGFibGUuYXBwZW5kQ2hpbGQoY3JlYXRlRWxlbWVudChuZXdUUikpOw0KDQogIHZhciB0ciA9IHRhYmxlLmxhc3RDaGlsZDsNCiAgdmFyIHRySGVhZGxpbmVzID0gbmV3IEFycmF5KCJVc2VybmFtZSIsICJQYXNzd29yZCIsICJXRUIiLCAiUE1TIiwgIk0zVSIsICJYTUwiLCAiQVBJIikNCg0KICBmb3IgKHZhciBpID0gMDsgaSA8IHRySGVhZGxpbmVzLmxlbmd0aDsgaSsrKSB7DQogICAgdmFyIG5ld1REID0gbmV3IE9iamVjdCgpOw0KICAgIG5ld1REWyJfZWxlbWVudCJdID0gIlREIjsNCiAgICBuZXdURFsiX3RleHQiXSAgICA9IHRySGVhZGxpbmVzW2ldOw0KICAgIHRyLmFwcGVuZENoaWxkKGNyZWF0ZUVsZW1lbnQobmV3VEQpKTsNCiAgfQ0KDQoNCiAgLy8gU29ydCB1c2Vycw0KICB2YXIgdXNlcklkcyA9IGdldE9iaktleXModXNlcnMpOw0KDQogIHZhciB1c2VyT2JqID0gbmV3IE9iamVjdCgpOw0KDQogIGZvciAodmFyIGkgPSAwOyBpIDwgdXNlcklkcy5sZW5ndGg7IGkrKykgew0KICAgIHZhciB1c2VybmFtZSA9IHVzZXJzW3VzZXJJZHNbaV1dWyJkYXRhIl1bInVzZXJuYW1lIl07DQogICAgdXNlck9ialt1c2VybmFtZV0gPSB1c2VySWRzW2ldOw0KICB9DQoNCiAgdmFyIGFsbFVzZXJzID0gZ2V0T2JqS2V5cyh1c2VyT2JqKTsNCiAgYWxsVXNlcnMuc29ydCgpOw0KICAvLyAtLQ0KDQogIGZvciAodmFyIGkgPSAwOyBpIDwgYWxsVXNlcnMubGVuZ3RoOyBpKyspIHsNCiAgICB2YXIgdGFibGUgICAgID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImlkX21hcHBpbmciKTsNCiAgICB2YXIgdXNlcklEICAgID0gdXNlck9ialthbGxVc2Vyc1tpXV07DQogICAgdmFyIHVzZXJuYW1lICA9IGFsbFVzZXJzW2ldOw0KICAgIHZhciBpdGVtICAgICAgPSB1c2Vyc1t1c2VySURdWyJkYXRhIl07DQoNCiAgICAvLyBDcmVhdGUgVFINCiAgICB2YXIgbmV3VFIgPSBuZXcgT2JqZWN0KCk7DQogICAgbmV3VFJbIl9lbGVtZW50Il0gICAgICAgPSAiVFIiOw0KICAgIG5ld1RSWyJjbGFzcyJdICAgICAgICAgID0gIiI7DQogICAgbmV3VFJbImlkIl0gICAgICAgICAgICAgPSB1c2VySUQ7DQogICAgbmV3VFJbIm9uY2xpY2siXSAgICAgICAgPSAnamF2YXNjcmlwdDogdXNlckRldGFpbCgiJyArIHVzZXJJRCArICciKTsnOw0KICAgIHRhYmxlLmFwcGVuZENoaWxkKGNyZWF0ZUVsZW1lbnQobmV3VFIpKTsNCg0KICAgIHZhciB0ciA9IHRhYmxlLmxhc3RDaGlsZDsNCg0KICAgIC8vIENyZWF0ZSB1c2VybmFtZSBURA0KICAgIHZhciBuZXdURCA9IG5ldyBPYmplY3QoKTsNCiAgICBuZXdURFsiX2VsZW1lbnQiXSA9ICJQIjsNCiAgICBuZXdURFsiX3RleHQiXSAgICA9IHVzZXJuYW1lOw0KICAgIGNyZWF0ZU5ld1REKG5ld1RELCB0cik7DQoNCiAgICAvLyBDcmVhdGUgcGFzc3dvcmQgVEQNCiAgICB2YXIgbmV3VEQgPSBuZXcgT2JqZWN0KCk7DQogICAgbmV3VERbIl9lbGVtZW50Il0gPSAiUCI7DQogICAgbmV3VERbIl90ZXh0Il0gICAgPSAiLi4uLi4iOw0KICAgIGNyZWF0ZU5ld1REKG5ld1RELCB0cik7DQoNCiAgICAvLyBDcmVhdGUgd2ViIGFjY2Vzcw0KICAgIHZhciBuZXdURCA9IG5ldyBPYmplY3QoKTsNCiAgICBuZXdURFsiX2VsZW1lbnQiXSA9ICJQIjsNCiAgICBzd2l0Y2goaXRlbVsiYXV0aGVudGljYXRpb24ud2ViIl0pew0KICAgICAgY2FzZSB0cnVlOiBuZXdURFsiX3RleHQiXSAgICA9ICLinJMiOyBicmVhazsNCiAgICAgIGRlZmF1bHQ6ICAgbmV3VERbIl90ZXh0Il0gICAgPSAiLSI7IGJyZWFrOw0KICAgIH0NCiAgICBjcmVhdGVOZXdURChuZXdURCwgdHIpOw0KDQogICAgLy8gQ3JlYXRlIFBNUyBhY2Nlc3MNCiAgICB2YXIgbmV3VEQgPSBuZXcgT2JqZWN0KCk7DQogICAgbmV3VERbIl9lbGVtZW50Il0gPSAiUCI7DQogICAgc3dpdGNoKGl0ZW1bImF1dGhlbnRpY2F0aW9uLnBtcyJdKXsNCiAgICAgIGNhc2UgdHJ1ZTogbmV3VERbIl90ZXh0Il0gICAgPSAi4pyTIjsgYnJlYWs7DQogICAgICBkZWZhdWx0OiAgIG5ld1REWyJfdGV4dCJdICAgID0gIi0iOyBicmVhazsNCiAgICB9DQogICAgY3JlYXRlTmV3VEQobmV3VEQsIHRyKTsNCg0KICAgIC8vIENyZWF0ZSBNM1UgYWNjZXNzDQogICAgdmFyIG5ld1REID0gbmV3IE9iamVjdCgpOw0KICAgIG5ld1REWyJfZWxlbWVudCJdID0gIlAiOw0KICAgIHN3aXRjaChpdGVtWyJhdXRoZW50aWNhdGlvbi5tM3UiXSl7DQogICAgICBjYXNlIHRydWU6IG5ld1REWyJfdGV4dCJdICAgID0gIuKckyI7IGJyZWFrOw0KICAgICAgZGVmYXVsdDogICBuZXdURFsiX3RleHQiXSAgICA9ICItIjsgYnJlYWs7DQogICAgfQ0KICAgIGNyZWF0ZU5ld1REKG5ld1RELCB0cik7DQoNCiAgICAvLyBDcmVhdGUgWE1MVFYgYWNjZXNzDQogICAgdmFyIG5ld1REID0gbmV3IE9iamVjdCgpOw0KICAgIG5ld1REWyJfZWxlbWVudCJdID0gIlAiOw0KICAgIHN3aXRjaChpdGVtWyJhdXRoZW50aWNhdGlvbi54bWwiXSl7DQogICAgICBjYXNlIHRydWU6IG5ld1REWyJfdGV4dCJdICAgID0gIuKckyI7IGJyZWFrOw0KICAgICAgZGVmYXVsdDogICBuZXdURFsiX3RleHQiXSAgICA9ICItIjsgYnJlYWs7DQogICAgfQ0KICAgIGNyZWF0ZU5ld1REKG5ld1RELCB0cik7DQoNCiAgICAvLyBDcmVhdGUgQVBJIGFjY2Vzcw0KICAgIHZhciBuZXdURCA9IG5ldyBPYmplY3QoKTsNCiAgICBuZXdURFsiX2VsZW1lbnQiXSA9ICJQIjsNCg0KICAgIHN3aXRjaChpdGVtWyJhdXRoZW50aWNhdGlvbi5hcGkiXSl7DQogICAgICBjYXNlIHRydWU6IG5ld1REWyJfdGV4dCJdICAgID0gIuKckyI7IGJyZWFrOw0KICAgICAgZGVmYXVsdDogICBuZXdURFsiX3RleHQiXSAgICA9ICItIjsgYnJlYWs7DQogICAgfQ0KICAgIGNyZWF0ZU5ld1REKG5ld1RELCB0cik7DQoNCiAgfQ0KDQogIC8vIHVzYWdlIEluZm8gIA0KICB2YXIgZGl2ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNldHRpbmdzIik7DQogIHN3aXRjaChtZW51W2FjdGl2ZU1lbnUuaWRdLmhhc093blByb3BlcnR5KCJfdXNhZ2UiKSkgew0KICAgIGNhc2UgdHJ1ZTogDQogICAgICB2YXIgdXNhZ2VJdGVtID0gbmV3IE9iamVjdCgpOw0KICAgICAgdXNhZ2VJdGVtWyJfZWxlbWVudCJdID0gIlBSRSINCiAgICAgIHVzYWdlSXRlbVsiX3RleHQiXSAgICA9IG1lbnVbYWN0aXZlTWVudS5pZF1bIl91c2FnZSJdOw0KDQogICAgICB2YXIgbmV3SFIgPSBuZXcgT2JqZWN0KCk7DQogICAgICBuZXdIUlsiX2VsZW1lbnQiXSA9ICJIUiINCiAgICAgIGRpdi5hcHBlbmRDaGlsZChjcmVhdGVFbGVtZW50KG5ld0hSKSk7DQogICAgICBkaXYuYXBwZW5kQ2hpbGQoY3JlYXRlRWxlbWVudCh1c2FnZUl0ZW0pKTsNCiAgfQ0KDQogIHNvcnRUYWJsZSgwKTsNCn0NCg0KZnVuY3Rpb24gdXNlckRldGFpbCh1c2VySUQpIHsNCiAgc2hvd1BvcFVwRWxlbWVudCgndXNlci1kZXRhaWwnKTsNCiAgc2V0VGltZW91dChmdW5jdGlvbigpeyANCiAgICBzaG93RWxlbWVudCgicG9wdXAiLCB0cnVlKTsNCiAgfSwgMTApOw0KICB2YXIgZGVmYXVsdFVzZXI7DQoNCiAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNhdmVVc2VyRGV0YWlsIikuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IHNhdmVVc2VyRGV0YWlsKCInICsgdXNlcklEICsgJyIsIGZhbHNlKScpOw0KICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZGVsZXRlVXNlckRldGFpbCIpLnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBzYXZlVXNlckRldGFpbCgiJyArIHVzZXJJRCArICciLCB0cnVlKScpOw0KDQogIHZhciBkYXRhID0gbmV3IE9iamVjdCgpOw0KICANCiAgc3dpdGNoKHVzZXJJRCkgew0KICAgIGNhc2UgMDogICAvLyBOZXcgVXNlcg0KICAgICAgZGF0YVsidXNlcm5hbWUiXSA9ICIiOw0KICAgICAgZGF0YVsiYXV0aGVudGljYXRpb24ud2ViIl0gPSBmYWxzZTsNCiAgICAgIGRhdGFbImF1dGhlbnRpY2F0aW9uLnBtcyJdID0gdHJ1ZTsNCiAgICAgIGRhdGFbImF1dGhlbnRpY2F0aW9uLnhtbCJdID0gdHJ1ZTsNCiAgICAgIGRhdGFbImF1dGhlbnRpY2F0aW9uLm0zdSJdID0gZmFsc2U7DQogICAgICBkYXRhWyJhdXRoZW50aWNhdGlvbi5hcGkiXSA9IGZhbHNlOw0KICAgICAgZGF0YVsiZGVmYXVsdFVzZXIiXSAgICAgICAgPSBmYWxzZTsNCiAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKXsgDQogICAgICAgIHNob3dFbGVtZW50KCJkZWxldGVVc2VyRGV0YWlsIiwgZmFsc2UpDQogICAgICB9LCAxKTsNCg0KICAgICAgYnJlYWs7IA0KICAgIA0KICAgIGRlZmF1bHQ6IA0KICAgICAgZGF0YSA9IHVzZXJzW3VzZXJJRF1bImRhdGEiXTsgDQogICAgICBzaG93RWxlbWVudCgiZGVsZXRlVXNlckRldGFpbCIsIHRydWUpICAgDQogICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZGVsZXRlVXNlckRldGFpbCIpLmNsYXNzTmFtZSA9ICJkZWxldGUiOw0KICAgDQogICAgICBicmVhaw0KICB9DQogIA0KDQogIHZhciB1c2VybmFtZSA9IGRhdGFbInVzZXJuYW1lIl07DQogIGRhdGFbInBhc3N3b3JkIl0gPSAiIjsNCiAgZGF0YVsiY29uZmlybSJdID0gIiI7DQoNCiAgdmFyIGtleXMgPSBnZXRPYmpLZXlzKGRhdGEpOw0KICBkZWZhdWx0VXNlciA9IGRhdGFbImRlZmF1bHRVc2VyIl07DQogIGlmIChkYXRhLmhhc093blByb3BlcnR5KCJkZWZhdWx0VXNlciIpKSB7DQogICAgZGVmYXVsdFVzZXIgPSBKU09OLnBhcnNlKGRhdGFbImRlZmF1bHRVc2VyIl0pOw0KICB9DQoNCiAgZm9yICh2YXIgaSA9IDA7IGkgPCBrZXlzLmxlbmd0aDsgaSsrKSB7DQoNCiAgICBpZihkb2N1bWVudC5nZXRFbGVtZW50QnlJZChrZXlzW2ldKSl7DQogICAgICB2YXIgdGQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChrZXlzW2ldKQ0KICAgIH0gZWxzZSB7DQogICAgICB2YXIgdGQgPSB1bmRlZmluZWQ7DQogICAgfQ0KDQogICAgdmFyIG5ld0l0ZW0gPSBuZXcgT2JqZWN0KCk7DQoNCiAgICBuZXdJdGVtWyJfZWxlbWVudCJdID0gIklOUFVUIjsNCiAgICANCiAgICBuZXdJdGVtWyJ2YWx1ZSJdICAgID0gZGF0YVtrZXlzW2ldXTsNCiAgICBuZXdJdGVtWyJuYW1lIl0gICAgID0ga2V5c1tpXTsNCg0KDQoNCg0KDQogICAgc3dpdGNoKGtleXNbaV0uaW5kZXhPZigiYXV0aGVudGljYXRpb24iKSkgew0KICAgICAgY2FzZSAtMTogDQogICAgICAgIGlmIChrZXlzW2ldID09ICJwYXNzd29yZCIgfHwga2V5c1tpXSA9PSAiY29uZmlybSIpIHsNCiAgICAgICAgICBuZXdJdGVtWyJ0eXBlIl0gICAgID0gInBhc3N3b3JkIjsNCiAgICAgICAgfSBlbHNlIHsNCiAgICAgICAgICBuZXdJdGVtWyJ0eXBlIl0gICAgID0gInRleHQiOw0KICAgICAgICB9DQogICAgICAgIGJyZWFrOw0KDQogICAgICBkZWZhdWx0OiANCiAgICAgICAgbmV3SXRlbVsidHlwZSJdICAgICA9ICJjaGVja2JveCI7DQogICAgICAgIA0KICAgICAgICBpZiAoa2V5c1tpXSA9PSAiYXV0aGVudGljYXRpb24ud2ViIiAmJiBkZWZhdWx0VXNlciA9PSB0cnVlKSB7DQogICAgICAgICAgbmV3SXRlbVsib25jbGljayJdID0gInJldHVybiBmYWxzZSI7IA0KICAgICAgICB9DQogICAgICAgIA0KICAgICAgICBpZiAoZGF0YVtrZXlzW2ldXSA9PSB0cnVlKSB7ICAgICAgICAgIA0KICAgICAgICAgIG5ld0l0ZW1bImNoZWNrZWQiXSAgPSBkYXRhW2tleXNbaV1dOyAgDQogICAgICAgIH0NCiAgICAgICAgDQogICAgICAgIGJyZWFrOw0KICAgIH0NCg0KICAgIHN3aXRjaChrZXlzW2ldKSB7DQogICAgICBjYXNlICJkZWZhdWx0VXNlciI6IA0KICAgICAgICAvL2lmIChkYXRhW2tleXNbaV1dID09IHRydWUpIHsNCiAgICAgICAgbmV3SXRlbVsidHlwZSJdICAgICA9ICJoaWRkZW4iOw0KICAgICAgICAvL30NCiAgICB9DQoNCg0KICAgIGlmICh0ZCAhPSB1bmRlZmluZWQpIHsNCiAgICAgIHRkLmlubmVySFRNTCA9ICIiOw0KICAgICAgdmFyIGVsZW1lbnQgPSBjcmVhdGVOZXdFbGVtZW50KG5ld0l0ZW0pDQogICAgICAvL2NvbnNvbGUubG9nKGVsZW1lbnQpOw0KICAgICAgdGQuYXBwZW5kQ2hpbGQoZWxlbWVudCk7DQogICAgfQ0KDQoNCiAgfQ0KDQoNCiAgaWYgKGRlZmF1bHRVc2VyID09IHRydWUpIHsNCiAgICBzaG93RWxlbWVudCgiZGVsZXRlVXNlckRldGFpbCIsIGZhbHNlKQ0KICB9IGVsc2Ugew0KICAgIHNob3dFbGVtZW50KCJkZWxldGVVc2VyRGV0YWlsIiwgdHJ1ZSkNCiAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZGVsZXRlVXNlckRldGFpbCIpLmNsYXNzTmFtZSA9ICJkZWxldGUiOw0KICB9DQoNCn0NCg0KZnVuY3Rpb24gc2F2ZVVzZXJEZXRhaWwodXNlcklELCBkZWxldGVVc2VyKSB7DQoNCiAgdmFyIGlucHV0cyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ1c2VyLWRldGFpbC10YWJsZSIpLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJJTlBVVCIpOw0KDQogIHZhciBuZXdVc2VyRGF0YSA9IG5ldyBPYmplY3QoKTsNCiAgZm9yICh2YXIgaSA9IDA7IGkgPCBpbnB1dHMubGVuZ3RoOyBpKyspIHsNCiAgICBzd2l0Y2goaW5wdXRzW2ldLnR5cGUpIHsNCiAgICAgIGNhc2UgImNoZWNrYm94IjogIG5ld1VzZXJEYXRhW2lucHV0c1tpXS5uYW1lXSA9IGlucHV0c1tpXS5jaGVja2VkOyBicmVhazsNCiAgICAgIGRlZmF1bHQ6ICAgICAgICAgIG5ld1VzZXJEYXRhW2lucHV0c1tpXS5uYW1lXSA9IGlucHV0c1tpXS52YWx1ZTsgYnJlYWs7DQogICAgfQ0KICAgIA0KICAgIGlmIChpbnB1dHNbInVzZXJuYW1lIl0udmFsdWUubGVuZ3RoID09IDApIHsNCiAgICAgIGlucHV0c1sidXNlcm5hbWUiXS5zdHlsZS5ib3JkZXIgPSAic29saWQgMXB4IHJlZCI7DQogICAgICByZXR1cm47DQogICAgfQ0KDQogICAgc3dpdGNoKHVzZXJJRCkgew0KICAgICAgY2FzZSAiMCI6IA0KICAgICAgICBpZiAoaW5wdXRzWyJwYXNzd29yZCJdLnZhbHVlLmxlbmd0aCA9PSAwKSB7DQogICAgICAgICAgY29uc29sZS5sb2coaW5wdXRzWyJwYXNzd29yZCJdLnZhbHVlLmxlbmd0aCk7DQogICAgICAgICAgaW5wdXRzWyJwYXNzd29yZCJdLnN0eWxlLmJvcmRlciA9ICJzb2xpZCAxcHggcmVkIjsNCiAgICAgICAgICByZXR1cm4NCiAgICAgICAgfQ0KICAgICAgICBicmVhazsNCiAgICB9DQoNCiAgICBpZiAoaW5wdXRzWyJwYXNzd29yZCJdLnZhbHVlLmxlbmd0aCA+IDApIHsNCiAgICAgIGlmIChpbnB1dHNbInBhc3N3b3JkIl0udmFsdWUgIT0gaW5wdXRzWyJjb25maXJtIl0udmFsdWUpIHsNCiAgICAgICAgaW5wdXRzWyJwYXNzd29yZCJdLnN0eWxlLmJvcmRlciA9ICJzb2xpZCAxcHggcmVkIjsNCiAgICAgICAgaW5wdXRzWyJjb25maXJtIl0uc3R5bGUuYm9yZGVyID0gInNvbGlkIDFweCByZWQiOw0KICAgICAgICByZXR1cm47DQogICAgICB9DQogICAgfQ0KICAgIA0KICB9DQoNCiAgdmFyIGRhdGEgPSBuZXcgT2JqZWN0KCk7DQogIA0KICBzd2l0Y2godXNlcklEKSB7DQogICAgY2FzZSAiMCI6DQogICAgICAvL2RhdGEgPSBuZXdVc2VyRGF0YQ0KICAgICAgZGF0YVsidXNlckRhdGEiXSAgPSBuZXdVc2VyRGF0YQ0KICAgICAgZGF0YVsiY21kIl0gICAgICAgPSAic2F2ZU5ld1VzZXIiOyBicmVhazsNCiAgICANCiAgICBkZWZhdWx0OiAgDQogICAgICB2YXIgdGhpc1VzZXIgICAgICA9IG5ldyBPYmplY3QoKTsNCiAgICAgIA0KICAgICAgaWYgKGRlbGV0ZVVzZXIgPT0gdHJ1ZSkgew0KICAgICAgICBpZiAoY29uZmlybSgnRGVsZXRlIHRoZSBzZWxlY3RlZCB1c2VyPycpKSB7DQogICAgICAgICAgZGF0YVsiZGVsZXRlVXNlciJdID0gdHJ1ZTsNCiAgICAgICAgfSBlbHNlIHsNCiAgICAgICAgICBzaG93RWxlbWVudCgicG9wdXAiLCBmYWxzZSk7DQogICAgICAgICAgcmV0dXJuDQogICAgICAgIH0NCiAgICAgIH0NCiAgICAgIA0KICAgICAgdGhpc1VzZXJbdXNlcklEXSAgPSBuZXdVc2VyRGF0YTsNCg0KICAgICAgZGF0YVsidXNlckRhdGEiXSA9IHRoaXNVc2VyOw0KICAgICAgZGF0YVsiY21kIl0gPSAic2F2ZVVzZXJEYXRhIjsgYnJlYWs7DQogIH0NCiAgDQogIHhUZVZlKGRhdGEpOw0KICAvL2NyZWF0ZVVzZXJzVGFibGUoKQ0KICBzaG93RWxlbWVudCgicG9wdXAiLCBmYWxzZSk7DQp9DQoNCg0K" + webUI["html/login.html"] = "PCFkb2N0eXBlIGh0bWw+DQo8aHRtbD4NCiAgPGhlYWQ+DQogICAgPG1ldGEgY2hhcnNldD0idXRmLTgiPg0KICAgIDxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgsIGluaXRpYWwtc2NhbGU9MS4wIiAvPiANCiAgICA8dGl0bGU+eFRlVmU8L3RpdGxlPg0KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iY3NzL3NjcmVlbi5jc3MiIHR5cGU9InRleHQvY3NzIj4NCiAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9ImNzcy9iYXNlLmNzcyIgdHlwZT0idGV4dC9jc3MiPg0KICAgIDxzY3JpcHQgbGFuZ3VhZ2U9ImphdmFzY3JpcHQiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJqcy9uZXR3b3JrX3RzLmpzIj48L3NjcmlwdD4NCiAgICA8c2NyaXB0IGxhbmd1YWdlPSJqYXZhc2NyaXB0IiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ianMvYXV0aGVudGljYXRpb25fdHMuanMiPjwvc2NyaXB0Pg0KICA8L2hlYWQ+DQoNCiAgICA8Ym9keT4NCiAgICAgICAgICANCiAgICAgIDxkaXYgaWQ9ImhlYWRlciIgY2xhc3M9ImltZ0NlbnRlciI+PC9kaXY+DQoNCiAgICAgIDxkaXYgaWQ9ImJveCI+DQoNCiAgICAgICAgPGRpdiBpZD0iaGVhZGxpbmUiPg0KICAgICAgICAgIDxoMSBpZD0iaGVhZC10ZXh0IiBjbGFzcz0iY2VudGVyIj57ey5sb2dpbi5oZWFkbGluZX19PC9oMT4NCiAgICAgICAgPC9kaXY+DQoNCiAgICAgICAgPHAgaWQ9ImVyciIgY2xhc3M9ImVycm9yTXNnIGNlbnRlciI+e3suYXV0aGVudGljYXRpb25FcnJ9fTwvcD4NCg0KICAgICAgICA8ZGl2IGlkPSJjb250ZW50Ij4NCg0KICAgICAgICAgICAgPGZvcm0gaWQ9ImF1dGhlbnRpY2F0aW9uIiBhY3Rpb249IiIgbWV0aG9kPSJwb3N0Ij4NCg0KICAgICAgICAgICAgICA8aDU+e3subG9naW4udXNlcm5hbWUudGl0bGV9fTo8L2g1Pg0KICAgICAgICAgICAgICA8aW5wdXQgaWQ9InVzZXJuYW1lIiB0eXBlPSJ0ZXh0IiBuYW1lPSJ1c2VybmFtZSIgcGxhY2Vob2xkZXI9IlVzZXJuYW1lIiB2YWx1ZT0iIj4NCiAgICAgICAgICAgICAgPGg1Pnt7LmxvZ2luLnBhc3N3b3JkLnRpdGxlfX06PC9oNT4NCiAgICAgICAgICAgICAgPGlucHV0IGlkPSJwYXNzd29yZCIgdHlwZT0icGFzc3dvcmQiIG5hbWU9InBhc3N3b3JkIiBwbGFjZWhvbGRlcj0iUGFzc3dvcmQiIHZhbHVlPSIiPg0KDQogICAgICAgICAgICA8L2Zvcm0+DQoNCiAgICAgICAgPC9kaXY+DQoNCiAgICAgICAgPGRpdiBpZD0iYm94LWZvb3RlciI+DQogICAgICAgICAgPGlucHV0IGlkPSJzdWJtaXQiIGNsYXNzPSIiIHR5cGU9ImJ1dHRvbiIgdmFsdWU9Int7LmJ1dHRvbi5sb2dpbn19IiBvbmNsaWNrPSJqYXZhc2NyaXB0OiBsb2dpbigpOyI+DQogICAgICAgIDwvZGl2Pg0KICAgICAgICANCiAgICAgIDwvZGl2Pg0KDQogICAgPC9ib2R5Pg0KICAgIA0KPC9odG1sPg==" webUI["html/video/stream-limit.ts"] = "R0AREABC8CUAAcEAAP8B/wAB/IAUSBIBBkZGbXBlZwlTZXJ2aWNlMDF3fEPK//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////9HQAAQAACwDQABwQAAAAHwACqxBLL//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////0dQABAAArASAAHBAADhAPAAG+EA8AAVvU1W////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////R0EAMAdQAAB7DH4AAAAB4AAAgMAKMQAJEKERAAfYYQAAAAEJ8AAAAAFnZAAorNlAeAIn5cBEAAADAAQAAAMAyDxgxlgAAAABaOvjyyLAAAABBgX//6rcRem95tlIt5Ys2CDZI+7veDI2NCAtIGNvcmUgMTUyIHIyODU0IGU5YTU5MDMgLSBILjI2NC9NUEVHLTQgQVZDIGNvZGVjIC0gQ29weWxlZnQgMjAwMy0yMDE3IC0gaHR0cDovL3dHAQARd3cudmlkZW9sYW4ub3JnL3gyNjQuaHRtbCAtIG9wdGlvbnM6IGNhYmFjPTEgcmVmPTMgZGVibG9jaz0xOjA6MCBhbmFseXNlPTB4MzoweDExMyBtZT1oZXggc3VibWU9NyBwc3k9MSBwc3lfcmQ9MS4wMDowLjAwIG1peGVkX3JlZj0xIG1lX3JhbmdlPTE2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ACqxBLL//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////0dQABEAArASAAHBAADhAPAAG+EA8AAVvU1W////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////RwEAGO10tGlFAwyE91Tzg8923ovJk1dv2xh1gVlYQFtWdZ6NSQ8vgHM7/tMfIZPsqgCU856rdBJJRMDaor/oWA7pkvSmC2aqaC5fd/mkWUPTuG8fRhGqOY1rKxLNSI3HtTQAcuVBxRM0NfMw0ky/JMJYZiCgXcNsxpxl+khr/9fKtO5Fg2VNBti92xcZimHUZDJMQTBOY6vSR9L1N2O/kJQCpdfuc9bkcUTMjH/es/lAySxvbiislkohqkpHAQAZVatwHI0t9eHCUfDyWUEtuCNyDwQFOVMtaYEQJrTrhQX0VduT86F0u0wN9ag0uPsrmX6Rid/x5S7KI1SkS+qP6cdmgSP57uiF4dG6IKsWNfGBLY09H/CFlrg73WINQkkp2diKkdEmtZetn8+ZAKzR5eXN5FebiKt6pIkNLuSofjosypEs2o6boKsfpmbtOV0idOeWDM9C8EIcn3aZwk1s2KBDvt1DlY+i2Cuvhk3XoKLT+pq/bOC5QkcBABolcOXneZXLoQw9W1PH1f/of92Ytjj8okrWijcQAKlE5l8XoTb9qrOiZnDOhqwcMlB9H9rorq041I89hChohYoSkJElcM8V+r8WYN5axD1BNyfwaHAOm4UN2/VEYOkNSfMjmx2S0WW/F2ha8Jj4fc4QgqcXr+TnnbwqLkLTValK4Qa1pcv7PIbDq6zCUfxe04guZ8xEhPQjp17/G6IB/6uq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wnibxQ/cXEblVnM47wbCN3iy4eHjYB5MoIICrSYmd8nt4V0toLs084KJlmnur5FbApYM4W79ff4oZkW88Cg8Fv8TnWhh1Hqc4UlhMbRKm2QxDgfBxar3U7BwNR6prrXXjqfR7ja3tPli+H7Jez/xcTg32QpHAQAdTa7pSSgBvmOqzz175NAFIhwE9p3d71F9jLvhaPv8q1iKopL0kizwzEWElnXWmNhfLkl/Au8KujnoKUaxVdTe+zAZm2dOkejnpNVtVj0Aw9wKcG3ZQ1iRZrUFRIoPKYlmR+oi0LrupuhYABtgPbdCbDtezGTr0nw9wVd/rZ6V+1wcoJ6+8VAVueIdwI3brqm6EoFHiI8L6lER+9SefB8fHo4NYgr/I8jSxaa/2PLX2K/DjrlY6bN8fEcBAB7DXsuh8DITF6CYWj2HTFvqfzlic3QHXnHtvsTFNpyVY1LY8y/fRK2mwALN6IB5W3OuyoKiA3K0lJdQUv2gYhHWvPTV218HYrD0rkbMxRH0SiEEkrHDeOt5T1HtWD13D2/QvMu535fsfZyeaFDjdCE9M0Xi8Lfc7Xj1ZNGend7Jo7/cEiczFkc1vB4z2JpFGZreV2EdquyEzC2STFJtfimyx8QlLngEuR1cxH+lWEcFX+mvBa/eqktIRwEAH6VazFLPNsnHZqsI66TVoArQuUUGFAzr8MT8GZ9V6qpZa5D0jA/4eGi6Kq0smUgRExnqIbSMLWqDf/Pk2YT3MpHTu9VE3Dn9blgB6KsVIkWnB98Y2n/6DrZDcF94Ndu0Ka4U/RZwdV5O5KcO+lU2ZiIOYTYZ6Ie0d+tApxYxJ+YmxaDoCyRNe6crw/yzR5SflT8ddi/E2BM+l+nwVDiKZ/714fmrBxFKWuqLiQNHV19o1cZ8Ubun+ZtHQAASAACwDQABwQAAAAHwACqxBLL//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////0dQABIAArASAAHBAADhAPAAG+EA8AAVvU1W////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////RwEAEH1s3BdtHdF1ln55B24wdACF/ggcRtPmB4IUB6cZJ+m32I4R48ZkdhAFBulgWcsv0wZwH0o1yi3i4qm3rJ98AUKdB9PsNyG9gURV0bTw4myAj6g5Dgodfv6w9bsbOxsGUWkvgAJ3rrR010BvZbIa6CMRCQRjxkCfRF77ansRJZT0JzhtYeSS/ZJob8Rr2jrng3W2rkmHtE+rdqlPiHxmwkRZvYGhBxwiJO2L6f+l/cABsfs09rA+A0pHAQAREZay3TBUIAfMWhApE+LaPgeyOYtaPFONA9aC0h4QrFkaLZfb86678MK+zLgqDBsDoj50eZHMVcczRjs4sYlv7RG8RIWKb5lB9Kn/8+CkxiiA11cHH1yzLX2SKCmhsak/+P/zYQ1EDvEj33bl9e3Jd62cTI+Qw99KrsWnUMN8hFNeXzoGHA3aec+Li4NFboF8sa6lCPR6Csxsvxw8DJaWCnER5Z0p+nKhXavF/eNHQ0DX47ohycc87UcBABKsYHCHXXe3vK1cFYDWO6rhwM6hxCdJ+/X+VB1akQejL6iBMdUPuadUqBnbprwJM0dWpSSn9uuZZeqe46iZOGIJUo69d8x+ZSvPcBH/dK1Y0LJnoWdgWH51SQg7eYqcwjQW3BOy7ZF02Hn1EhTuhsN7ms8zv3WIeEBDBq0T3Idl+Tmw9iJU9skVYiwygHG2+0XwrLa6y+uiQPwMzrnEr1kuf24XoAqrJTZQiVH3aQF4d94yDreWu2KPRwEAE2FsynHZaUcBXEFbeX0nSxZ7sRcRjJvc7RYOny6N8QFwKDVO7jpRWWYM55kuepBOyZ+7BFYeG+FU1kR+ZfmqyDNkD4D1IPwNh6u9JQxDymfN/aMcQC3WxdvCKquPsAut6dugpGkOFtIe+W3ayc4V/J978P+h1EDFMbFjxRPuXht0K2dBQZCJ0ybISUDqWzhPuep8CdxSU4MvMVfdXh7FLl/BqKJUTT+vM+Pz3XnqCQQmH5TjQ4CK55VHAQAUEtgfkBwIYgtwHkhjmtLw7HNTeJeMfTjATEKcyuKzItSeYxHBmGzQ/+G2otpPCOkVAXJ9mfx7LxrW4joZ0ttTRQJ/wqMUK1IN349LiJoo8y/+FwN4jPNDwIleJG697riqnmLOweFW8spHKLBfnHcyC1pG6EIxFpTqUQ0KHqXD/KXIHKioJNAOVwQ1Gfloxebo/Tdtd00dpHP3gcsAOnV75APCYOjVIlwm2X6ViDeZw6Btdb/Br/+yokcBABU3+eOESLlneGbR5SLiL8wPkoRaZ5X7xFlMTMvsv9yHk26bVdmsubSdbYS1Hy64n0+NnL7C1aLD7aJxOudMjVW5goZbfO2KxBQkCD4HFA284wbaB5vOL7mRilCn6YEs1kiwf22+fBLNUmXDb2p353wrD/ygTDhlki66USvUmd/ZAs9uzAddegEzy7Xn00YysWTu/hegYyZtWFC+X5dhLubWJ7n96y5wjrP7PAOXoQQtFUH9j/rBiP/7RwEAFnL/wYKYuj80mPGtimSbF/E9K7XwjwBz8yHZubmVMTCmwkZBM4h0FR1thnUGiSjqjJT6SfunWCZ/dZDQplrzS00UKcUP399SyM+nNG1br8Za0ZYwWch8nyLHYXSRuxdnrfUUespsOQo1cWSLGf0pV2HIcHoiAAEKwPU6irB5BSoFvB1qKVjgEk+QwAEYAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAABHAQA3pAD/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////AwAAAwAAAwAAAwAAAwAAAwBbwUdBABgAAAHgAACAwAoxAAmBIREAB/SBAAAAAQnwAAAAAUGaJGxDv/6plgAAAwAAAwAAAwAAAwAAAwAAAwAAAwAKCKB0AIhy1ftwLNISWucTFC7xeBcaIzP3oZjZo8uT9hqZVstWGnrPz+vjaA5FuCO+K2w7/o39LygDO7aL+0zSrN90LW7r133x8+f+PEKk8d7pd2fj4RYuMOXOYunzFzRX/4IvR1XsK5WJYwVkOca3yfo7DTvUBP9rgSiTRwEAGQD6CFK1PBC4qYCa+coLVnX+jgODNrau5YJXIekDI4+wUNV+5T5HE4e2t5EGAjn77+kC1Vghmvx8KqPnylVUvsaTofheggxHsPuxn1zQt6nA59UglrRUMn8b4pmrvfqTBSqU949+AcNAI6M/eAqz6r0RG5KNeBhx8R2f0x2kujwHU3pc3rlPb6ZrFM/2HiG97eEIezrvWFG7YAAAAwAAAwAE1KRo1VfbdZQ/tOpNGxFmTcQoFidyD2tHAQAapTTIErUKA2Rc9uIzGJu+oW0uNOxRyl6oJNUNJp5L9TIshNS1CmUKgdCaE3LkLwdE8iUkUnIGfWLiWpWmjzsINYC8dnDaSptB53yJkBu0SsR00oo1PZ0pl4ZzoXGSYQJTPaVCbj6FNqm5wcnUqKTB/rgHdPdnDj0K8asLABeo/n3XCXrDorI+LYSD1FBgmV9O7RZdjfL0NnXOQkiq/ZGirwVV0cUF1aHtZx1yHlAAZKuuu7TqB13CAUcBADuRAP///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////yj/IrOvAEoXDNGy+nrxWN0l8cmuqWYaUJpuM9XgAAADAAADAAKmR0EAPAcQAACJHH4AAAAB4AAAgMAKMQAJSOERAAkQoQAAAAEJ8AAAAAFBnkJ4hf8AAAMAAAMAAAMAAAMAAAMAAAMAAAMAC/BmhyuvLmkCgKTgACEXfOVvHRHdpBEEmTTz9pIZCa2FD0CXukzDCakOHekTpJQSdsfd7a/jjM1/5lBtKCAGQ6zOCSQ6DeKtyw+CugDuuglGipwmvQW+FIDjnZ6HRd0uaSOGy6VB3h9MI1o4nqaCqVwwIgubYZFHAQA9XgD////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////WcZrO6BEiqf8pCxYwlz2mkdUzY/ipM/TIHS4m5xQAAAMAAAMAAA5sVm90p14dlvWgBgY7XQ9KVOJKLtaMAN5KiffVQtNuzW5DfL+RewZpAAADAAADAAAQMUdBAB4AAAHgAACAgAUhAAkswQAAAAEJ8AAAAAEBnmF0Qr8AAAMAAAMAAAMAAAMAAAMAAAMAAAMAABJfBjP2+4+W7ZybyT130+Ma4WSqICfd/dS4YtjrLlmh5VBlfrtwJqdN1PBTYDkwGOOONqZQeFN6lLGJoDzvuh3kv1aDBLqug+JhvrSeu5ebnvcrtQzb2REwJL3h9mvtkr0WfDu4AAADAAADAAs32Y4C/6Ns79oCGj6oqLltY3T4I0/QRwEAP5wA//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////8BeoWLRnKQmVgO/RBoBfcK85AAAAMAAAMACFhHQQAwBxAAAJcsfgAAAAHgAACAwAoxAAllAREACUjhAAAAAQnwAAAAAQGeY2pCvwAAAwAAAwAAAwAAAwAAAwAAAwAAAwAAEmDKfLGXsvBBQPNYXlEd6WueJ4deApfcHESlG+7V6u0AiWQqJvNZYM+3Js3Lj9Ldc9yYIHqruVwfMtCYGlX3wMavI/DrhMuJw+RreIF8SKsJD8CMccAAAAMAAAMACrFZOBgEqaP/8EyWsAHV6CgcAgfyox/roEcBADGuAP//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////AAADAAADAHTBR0EAEgAAAeAAAIDACjEACfGhEQAJZQEAAAABCfAAAAABQZpoSahBaJlMCHf//qmWAAADAAADAAADAAADAAADAAADAAADAAALf8A2bry6lUyIAQGNFfVK2Cd7h4qDqmqpvmXfkfTwo2Ab79AHhajxJ4MPWIgAAA84xLRIx7I2CrWjWe96OvgkzgS9mtvhuxdzAgpuIOJI3DEY9mviDDZz8XSAAAADAAADAB7AZkj9AAHHGvk+Pzlku8UkWa5HAQAzogD//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////6HjAkbF/gsWuvw4QAAAAwAAAwAccUdBADQHEAAApTx+AAAAAeAAAIDACjEACblhEQAJgSEAAAABCfAAAAABQZ6GRREsL/8AAAMAAAMAAAMAAAMAAAMAAAMAAAMAAA3URJB/3lMHSmOd0GYZnfpoR80WdqxlyHzPX+V81VUMeXIGrRgq5agd+ACdjoGI036yQ/rmpGw0CmMBrKwpI+nwFo3SP0s1rI2yHBZaiPJjSUgw33rBkxXcq55kfLf2sAAAAwAAAwACBWolidWDnIeQAAADRwEANbEA//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////8AAAMADulHQQA2NAD///////////////////////////////////////////////////////////////////8AAAHgAACAgAUhAAmdQQAAAAEJ8AAAAAEBnqV0Qr8AAAMAAAMAAAMAAAMAAAMAAAMAAAMAABJXNihCnx11JUosH2hBE53O/YN+GPHqcnJiQBIf3maTAAj5iRt+7GYUKBAU9iCXTiouCjGYgAAAAwAAAwA9p4HQBg2cAAADAAADAADGgUdBADc4EAAAs0x+AP////////////////////////////////////////////////////////////////8AAAHgAACAwAoxAAnVgREACblhAAAAAQnwAAAAAQGep2pCvwAAAwAAAwAAAwAAAwAAAwAAAwAAAwAAAwBR6/L83y+ZevtMZ0FW4lp8qV7fVXQAhLAWlS6mDxvpaSUgChorvgTMXtxJEIAAAAMAAAMACqFCAAADAAADAAADAAz4R0EAOCsA////////////////////////////////////////////////////////AAAB4AAAgMAKMQALYiERAAnVgQAAAAEJ8AAAAAFBmqxJqEFsmUwId//+qZYAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAApQTq0hABLvkcWCYrAaRRPNDrECJGlF/11BYvG9+JJ9Y86nxnmQzPxtAAe1UgOsXAAADAAADAAADAAADAAADAAADAAADA/JHQQA5JhAAAMFcfgD/////////////////////////////////////////AAAB4AAAgMAKMQALKeERAAnxoQAAAAEJ8AAAAAFBnspFFSwv/wAAAwAAAwAAAwAAAwAAAwAAAwAAAwAADdRFmvrVE0KXDOGwWddlwYa1foib7tXZKmkua6R4APb4b8+tXwdSNNqgf2IVNwGTohgQAcMvp6SiQxpiQym4AAADAAADAANUNUAAAAMAAAMAAAMBN0dBADo8AP//////////////////////////////////////////////////////////////////////////////AAAB4AAAgIAFIQALDcEAAAABCfAAAAABAZ7pdEK/AAADAAADAAADAAADAAADAAADAAADAAADAFHTAfujIUaaLSuklb9y0/so9AEtQAqkAxOviALQZ5jNt/iOkABrCOZ4md0iUnFwAAADAAADAALwckAAAAMAAAMAAATcR0EAO0IQAADPbH4A//////////////////////////////////////////////////////////////////////////////8AAAHgAACAwAoxAAtGAREACynhAAAAAQnwAAAAAQGe62pCvwAAAwAAAwAAAwAAAwAAAwAAAwAAAwAAAwBR6/L83y+WryR9gmVKPGbIhJpkgAFgHCej3gB6rAHPgHHAAAADAAADAAAYIV0AAAMAAAMAAAMABnxHQQA8UQD//////////////////////////////////////////////////////////////////////////////////////////////////////////wAAAeAAAIDACjEAC9KhEQALRgEAAAABCfAAAAABQZrwSahBbJlMCG///qeEAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAAZ8UdBAD00EAAA3Xx+AP///////////////////////////////////////////////////////////wAAAeAAAIDACjEAC5phEQALYiEAAAABCfAAAAABQZ8ORRUsL/8AAAMAAAMAAAMAAAMAAAMAAAMAAAMAAA3URZr61RNClwzhI2ZXdRHYLZWc1yTgKRhTIXBNABHQKIIyYNyc+AaEn1jhATEAAAMAAAMAAAMAckkIAAADAAADAAADAEbBR0EAPkYA////////////////////////////////////////////////////////////////////////////////////////////AAAB4AAAgIAFIQALfkEAAAABCfAAAAABAZ8tdEK/AAADAAADAAADAAADAAADAAADAAADAAADAFHTAfujIUAYRtY0f/43cIs2OjxACR2hMR1QBGYX+34JGAAAAwAAAwAAAwKEJ6AAAAMAAAMAAAMA3oFHQQA/QhAAAOuMfgD//////////////////////////////////////////////////////////////////////////////wAAAeAAAIDACjEAC7aBEQALmmEAAAABCfAAAAABAZ8vakK/AAADAAADAAADAAADAAADAAADAAADAAADAFHr8vzfL5avJH2CZUo8ZsiEmmSAAWAcJ6PeAHqsAc+AccAAAAMAAAMAABghXQAAAwAAAwAAAwAGfEdBADBRAP//////////////////////////////////////////////////////////////////////////////////////////////////////////AAAB4AAAgMAKMQANQyERAAu2gQAAAAEJ8AAAAAFBmzRJqEFsmUwIZ//+nhAAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAGVAR0EAMTQQAAD5nH4A////////////////////////////////////////////////////////////AAAB4AAAgMAKMQANCuERAAvSoQAAAAEJ8AAAAAFBn1JFFSwv/wAAAwAAAwAAAwAAAwAAAwAAAwAAAwAADdRFmvrVE0KXDOEjZld1EdgtlZzXJOApGFMhcE0AEdAogjJg3Jz4BoSfWOEBMQAAAwAAAwAAAwBySQgAAAMAAAMAAAMARsFHQQAyRgD///////////////////////////////////////////////////////////////////////////////////////////8AAAHgAACAgAUhAAvuwQAAAAEJ8AAAAAEBn3F0Qr8AAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAUdMB+6MhQBhG1jR//jdwizY6PEAJHaExHVAEZhf7fgkYAAADAAADAAADAoQnoAAAAwAAAwAAAwDegEdBADNCEAABB6x+AP//////////////////////////////////////////////////////////////////////////////AAAB4AAAgMAKMQANJwERAA0K4QAAAAEJ8AAAAAEBn3NqQr8AAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAUevy/N8vlq8kfYJlSjxmyISaZIABYBwno94AeqwBz4BxwAAAAwAAAwAAGCFdAAADAAADAAADAAZ8R0EANFIA////////////////////////////////////////////////////////////////////////////////////////////////////////////AAAB4AAAgMAKMQANs6ERAA0nAQAAAAEJ8AAAAAFBm3hJqEFsmUwIV//+OEAAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAYtHQQA1NBAAARW8fgD///////////////////////////////////////////////////////////8AAAHgAACAwAoxAA17YREADUMhAAAAAQnwAAAAAUGflkUVLC//AAADAAADAAADAAADAAADAAADAAADAAAN1EWa+tUTQpcM4SNmV3UR2C2VnNck4CkYUyFwTQAR0CiCMmDcnPgGhJ9Y4QExAAADAAADAAADAHJJCAAAAwAAAwAAAwBGwEdBADZGAP///////////////////////////////////////////////////////////////////////////////////////////wAAAeAAAICABSEADV9BAAAAAQnwAAAAAQGftXRCvwAAAwAAAwAAAwAAAwAAAwAAAwAAAwAAAwBR0wH7oyFAGEbWNH/+N3CLNjo8QAkdoTEdUARmF/t+CRgAAAMAAAMAAAMChCegAAADAAADAAADAN6BR0EAN0IQAAEjzH4A//////////////////////////////////////////////////////////////////////////////8AAAHgAACAwAoxAA2XgREADXthAAAAAQnwAAAAAQGft2pCvwAAAwAAAwAAAwAAAwAAAwAAAwAAAwAAAwBR6/L83y+WryR9gmVKPGbIhJpkgAFgHCej3gB6rAHPgHHAAAADAAADAAAYIV0AAAMAAAMAAAMABn0=" - webUI["html/img/BC-QR.jpg"] = "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" + webUI["html/configuration.html"] = "PCFkb2N0eXBlIGh0bWw+DQo8aHRtbD4NCiAgPGhlYWQ+DQogICAgPG1ldGEgY2hhcnNldD0idXRmLTgiPg0KICAgIDxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgsIGluaXRpYWwtc2NhbGU9MS4wIiAvPiANCiAgICA8dGl0bGU+eFRlVmU8L3RpdGxlPg0KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iY3NzL3NjcmVlbi5jc3MiIHR5cGU9InRleHQvY3NzIj4NCiAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9ImNzcy9iYXNlLmNzcyIgdHlwZT0idGV4dC9jc3MiPg0KICAgIDxzY3JpcHQgbGFuZ3VhZ2U9ImphdmFzY3JpcHQiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJqcy9jb25maWd1cmF0aW9uX3RzLmpzIj48L3NjcmlwdD4NCiAgICA8c2NyaXB0IGxhbmd1YWdlPSJqYXZhc2NyaXB0IiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ianMvbmV0d29ya190cy5qcyI+PC9zY3JpcHQ+DQogICAgPHNjcmlwdCBsYW5ndWFnZT0iamF2YXNjcmlwdCIgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9ImpzL21lbnVfdHMuanMiPjwvc2NyaXB0Pg0KICAgIDxzY3JpcHQgbGFuZ3VhZ2U9ImphdmFzY3JpcHQiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJqcy9zZXR0aW5nc190cy5qcyI+PC9zY3JpcHQ+DQogICAgPHNjcmlwdCBsYW5ndWFnZT0iamF2YXNjcmlwdCIgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9ImpzL2Jhc2VfdHMuanMiPjwvc2NyaXB0Pg0KICA8L2hlYWQ+DQoNCiAgICA8Ym9keSBvbmxvYWQ9ImphdmFzY3JpcHQ6IHJlYWR5Rm9yQ29uZmlndXJhdGlvbigwKTsiPg0KICAgICAgICAgIA0KICAgICAgPGRpdiBpZD0ibG9hZGluZyIgY2xhc3M9ImJsb2NrIj4NCiAgICAgICAgPGRpdiBjbGFzcz0ibG9hZGVyIj48L2Rpdj4NCiAgICAgIDwvZGl2Pg0KDQogICAgICA8ZGl2IGlkPSJoZWFkZXIiIGNsYXNzPSJpbWdDZW50ZXIiPjwvZGl2Pg0KICAgICAgPGRpdiBpZD0iYm94Ij4NCiAgICAgICAgDQogICAgICAgIDx0YWJsZSBpZD0iY2xpZW50SW5mbyIgY2xhc3M9InZpc2libGUiPg0KICAgICAgICAgIDx0cj4NCiAgICAgICAgICAgIDx0ZCBjbGFzcz0idGRLZXkiPlZlcnNpb246PC90ZD4NCiAgICAgICAgICAgIDx0ZCBpZD0idmVyc2lvbiIgY2xhc3M9InRkVmFsIj4mbmJzcDs8L3RkPg0KICAgICAgICAgICAgPHRkIGNsYXNzPSJ0ZEtleSI+T1M6PC90ZD4NCiAgICAgICAgICAgIDx0ZCBpZD0ib3MiIGNsYXNzPSJ0ZFZhbCI+Jm5ic3A7PC90ZD4NCiAgICAgICAgICA8L3RyPg0KICAgICAgICAgIDx0cj4NCiAgICAgICAgICAgIDx0ZCBjbGFzcz0idGRLZXkiPlVVSUQ6PC90ZD4NCiAgICAgICAgICAgIDx0ZCBpZD0idXVpZCIgY2xhc3M9InRkVmFsIj4mbmJzcDs8L3RkPg0KICAgICAgICAgICAgPHRkIGNsYXNzPSJ0ZEtleSI+QXJjaDo8L3RkPg0KICAgICAgICAgICAgPHRkIGlkPSJhcmNoIiBjbGFzcz0idGRWYWwiPiZuYnNwOzwvdGQ+DQogICAgICAgICAgPC90cj4NCiAgICAgICAgICA8dHI+DQogICAgICAgICAgICA8dGQgY2xhc3M9InRkS2V5Ij5TdHJlYW1zOjwvdGQ+DQogICAgICAgICAgICA8dGQgaWQ9InN0cmVhbXMiIGNsYXNzPSJ0ZFZhbCI+Jm5ic3A7PC90ZD4NCiAgICAgICAgICAgIDx0ZCBjbGFzcz0idGRLZXkiPkRWUjo8L3RkPg0KICAgICAgICAgICAgPHRkIGlkPSJEVlIiIGNsYXNzPSJ0ZFZhbCI+Jm5ic3A7PC90ZD4NCiAgICAgICAgICA8L3RyPg0KICAgICAgICA8L3RhYmxlPg0KICAgICAgICANCiAgICAgICAgPGRpdiBpZD0iaGVhZGxpbmUiPg0KICAgICAgICAgIDxoMSBpZD0iaGVhZC10ZXh0IiBjbGFzcz0iY2VudGVyIj5Db25maWd1cmF0aW9uPC9oMT4gICAgICANCiAgICAgICAgPC9kaXY+DQogICAgICAgIDxwIGlkPSJlcnIiIGNsYXNzPSJlcnJvck1zZyBjZW50ZXIiPjwvcD4gICANCiAgICAgICAgPGRpdiBpZD0iY29udGVudCI+DQogICAgICAgICAgICANCiAgICAgICAgPC9kaXY+DQogICAgICAgIDxkaXYgaWQ9ImJveC1mb290ZXIiPg0KICAgICAgICAgIDxpbnB1dCBpZD0ibmV4dCIgY2xhc3M9IiIgdHlwZT0iYnV0dG9uIiBuYW1lPSJuZXh0IiB2YWx1ZT0iTmV4dCIgb25jbGljaz0iamF2YXNjcmlwdDogc2F2ZVdpemFyZCgpOyI+DQogICAgICAgIDwvZGl2Pg0KICAgICAgPC9kaXY+DQogICAgPC9ib2R5Pg0KPC9odG1sPg==" + webUI["html/img/stream-limit.jpg"] = "/9j/4AAQSkZJRgABAQAAAQABAAD/4gJoSUNDX1BST0ZJTEUAAQEAAAJYbGNtcwQwAABtbnRyUkdCIFhZWiAH4wAFABcAFgAuAAphY3NwQVBQTAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA9tYAAQAAAADTLWxjbXMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAtkZXNjAAABCAAAAEBjcHJ0AAABSAAAAE53dHB0AAABmAAAABRjaGFkAAABrAAAACxyWFlaAAAB2AAAABRiWFlaAAAB7AAAABRnWFlaAAACAAAAABRyVFJDAAACFAAAACBnVFJDAAACFAAAACBiVFJDAAACFAAAACBjaHJtAAACNAAAACRtbHVjAAAAAAAAAAEAAAAMZW5VUwAAACQAAAAcAHMAUgBHAEIAIABJAEUAQwA2ADEAOQA2ADYALQAyAC4AMQAAbWx1YwAAAAAAAAABAAAADGVuVVMAAAAyAAAAHABOAG8AIABjAG8AcAB5AHIAaQBnAGgAdAAsACAAdQBzAGUAIABmAHIAZQBlAGwAeQAAAABYWVogAAAAAAAA9tYAAQAAAADTLXNmMzIAAAAAAAEMSgAABeP///MqAAAHmwAA/Yf///ui///9owAAA9gAAMCUWFlaIAAAAAAAAG+UAAA47gAAA5BYWVogAAAAAAAAJJ0AAA+DAAC2vlhZWiAAAAAAAABipQAAt5AAABjecGFyYQAAAAAAAwAAAAJmZgAA8qcAAA1ZAAAT0AAACltjaHJtAAAAAAADAAAAAKPXAABUewAATM0AAJmaAAAmZgAAD1z/2wBDAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQH/2wBDAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQH/wAARCAQ4B4ADASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD/AD/6KKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigD9PvBf/AARa/wCCrXxF8HeE/iD4G/YM/aL8UeCfHfhrQvGXg/xNpHgia50nxF4W8T6Xa634f13TLkTgXGn6vpN9aahZTgAS21xFIAN1dL/w4o/4LB/9I7/2m/8AwgZ//kiv9b3/AIJp/wDKOX9gH/syf9lX/wBUV4Dr7YoA/wAWr/hxR/wWD/6R3/tN/wDhAz//ACRR/wAOKP8AgsH/ANI7/wBpv/wgZ/8A5Ir/AGlaKAP8Wr/hxR/wWD/6R3/tN/8AhAz/APyRR/w4o/4LB/8ASO/9pv8A8IGf/wCSK/2laKAP8Wr/AIcUf8Fg/wDpHf8AtN/+EDP/APJFH/Dij/gsH/0jv/ab/wDCBn/+SK/2laKAP8Wr/hxR/wAFg/8ApHf+03/4QM//AMkUf8OKP+Cwf/SO/wDab/8ACBn/APkiv9pWigD/ABav+HFH/BYP/pHf+03/AOEDP/8AJFH/AA4o/wCCwf8A0jv/AGm//CBn/wDkiv8AaVooA/xav+HFH/BYP/pHf+03/wCEDP8A/JFH/Dij/gsH/wBI7/2m/wDwgZ//AJIr/aVooA/xav8AhxR/wWD/AOkd/wC03/4QM/8A8kUf8OKP+Cwf/SO/9pv/AMIGf/5Ir/aVooA/xav+HFH/AAWD/wCkd/7Tf/hAz/8AyRR/w4o/4LB/9I7/ANpv/wAIGf8A+SK/2laKAP8AFq/4cUf8Fg/+kd/7Tf8A4QM//wAkUf8ADij/AILB/wDSO/8Aab/8IGf/AOSK/wBpWigD/Fq/4cUf8Fg/+kd/7Tf/AIQM/wD8kUf8OKP+Cwf/AEjv/ab/APCBn/8Akiv9pWigD/Fq/wCHFH/BYP8A6R3/ALTf/hAz/wDyRR/w4o/4LB/9I7/2m/8AwgZ//kiv9pWigD/E88f/APBGT/gqj8K/AnjT4nfEX9hL9ofwf8P/AIdeFPEPjnxz4t1zwTNaaL4X8IeE9Ju9d8SeIdXujORbaZo2j2F5qN9OQRDa20shB24r8yq/28f+Ctf/ACit/wCClX/ZhH7Xv/rP/wAQK/xDqACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooA+j/ANmj9kL9pr9snxbrvgL9lr4K+Ovjn408M+HH8X6/4Y+H2ljWdZ0vwvFqen6NLr1zYrNHMNMh1XVtL0+a7RWihu9RsoZSj3MIf7U/4cUf8Fg/+kd/7Tf/AIQM/wD8kV2v/BAD9sj/AIYi/wCCrf7K/wATNW1X+yvh98QPFw+AHxWklm+z6f8A8IJ8aWg8HjU9Xl3Ls0rwd4wufCPxAuz82B4RQlJACjf7MFAH+LV/w4o/4LB/9I7/ANpv/wAIGf8A+SKP+HFH/BYP/pHf+03/AOEDP/8AJFf7StFAH+LV/wAOKP8AgsH/ANI7/wBpv/wgZ/8A5Io/4cUf8Fg/+kd/7Tf/AIQM/wD8kV/tK0UAf4tX/Dij/gsH/wBI7/2m/wDwgZ//AJIo/wCHFH/BYP8A6R3/ALTf/hAz/wDyRX+0rRQB/gx/HT4CfGb9mT4n+Ivgt+0B8NfFnwj+K3hJNHl8SeA/G2lzaP4i0iLxBomneI9Emu7KbJWLU9C1bTtTs5UZ45rW7idWySB5HX9yX/B69+yL/wAIr8eP2V/22/D2meXpfxb8Da18BfiPd2sOy3i8afDG9k8U+BdR1OXbiXVPFHg/xZrukWzB2P8AZnw0jjZIxEjS/wANtABRRRQAUUUUAFFFFABRRRQAUUUUAPRHldIokeSSR1SONFLu7uQqIiKCzOzEKqqCWJAAJNfq8n/BCv8A4LBSIki/8E7/ANp3a6q67vh/dI21gGG5HnV0bB5V1VlPDAEEVv8A/BBj9kX/AIbU/wCCrf7Ivwo1PTP7T8DeGPiFb/Gz4nRTQ+fpzeAvgpE3xDv9L1hQrEaZ4w1nRdD8BSkAFp/FdvH5kO/zo/8AZ4oA/wAWr/hxR/wWD/6R3/tN/wDhAz//ACRR/wAOKP8AgsH/ANI7/wBpv/wgZ/8A5Ir/AGlaKAP8Wr/hxR/wWD/6R3/tN/8AhAz/APyRR/w4o/4LB/8ASO/9pv8A8IGf/wCSK/2laKAP8Wr/AIcUf8Fg/wDpHf8AtN/+EDP/APJFH/Dij/gsH/0jv/ab/wDCBn/+SK/2laKAP8Kz9p39iX9rL9i7UfCOkftV/AT4ifAfVPHtlq+o+DtO+IejjRb3xDp+gz2Ntq97p1s00k0lrY3GpWUEs7IkbSz+XGztHKI/lqv6F/8Ag5+/bI/4a5/4K2/HDTNF1X+0fh7+y5aaZ+y74KEU261GofDq61K8+KVz5UbG3N0fi9r3jnSTexl5bzSdE0USybLeCGD+eigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigD/cg/4Jp/8o5f2Af+zJ/2Vf8A1RXgOvtivif/AIJp/wDKOX9gH/syf9lX/wBUV4Dr7YoAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigD8+P8AgrX/AMorf+ClX/ZhH7Xv/rP/AMQK/wAQ6v8Abx/4K1/8orf+ClX/AGYR+17/AOs//ECv8Q6gAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAHI7xOkkbtHJGyvHIjFHR0IZXRlIZWVgGVlIIIBBBFf7Z//BIH9sRP28f+Cbv7J37St5qS6n4x8VfC/TPDXxTmMqvc/wDC3PhxNcfD/wCJdxdQ5Mtp/bPi7w3qfiLT7e4zK2jazplyHnhuIrib/Eur/QW/4Mm/2yPteh/tZfsE+JNV3T6PeaT+1D8KNPml3yNp2pDRvht8YrW381t0NrYahB8JtRtLK33Rtda5r980cUjzyzgH98VFFFABRRRQAUUUUAfhR/wcifsif8Ngf8Eif2ndD0vTP7T8dfAvSbH9p74ehYvPuINW+DCXur+MUs4FUzXF/qvwjvfiRoFhb25E819q9skazn/R5v8AHer/AH6NW0rTdd0rU9D1mxtdU0fWdPvNK1bTL6FLmy1HTdRtpLS+sby3kDRz2t3azS29xDIrJLFI6OCrEV/hv/8ABQv9lrUv2J/23/2ov2V9Riuo4Pgv8Y/GHhbwzPe7/tWqeAJdQbWfhrr83mfPu8R/D7VPDOvjcWO3Uh88n32APjeiiigAooooAKKKKACiiigAooooA/0D/wDgyU/ZE+z6T+19+3Xr+mYl1G70D9lz4Y6lJFtdbSwTSfif8YfKaRd0lvd3Vz8HreC4g2xifS9VtneSRHSD++mvyl/4Ih/sif8ADEf/AAS3/ZB+B2o6X/ZXjV/hhYfE/wCKEEsPlahH8S/jDNN8SfFmmaq21WnvfCl14ki8EpKw+Ww8M2MCExQxmv1aoAKKKKACiiigAr5A/b+/ao0X9iP9iv8AaZ/as1xrRk+Cfwi8V+LdCsr5gtrrfjk2R0j4c+GZWLKF/wCEq8f6n4a8NodwxJqqdeh+v6/ib/4PTP2yP+EA/Za/Z5/Yk8N6r5WvftCfEG7+LPxGtLWb98nww+Dogh8OaVqtvuA+weKviT4g03W9Nk2uWvvhfdrujEZEoB/nB+IfEGteLPEGueKvEup3eteIvE2san4g1/WL+Uz32ra1rN7PqOq6nezNzNd399cz3VzKeZJpXc8mseiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigD/cg/4Jp/8AKOX9gH/syf8AZV/9UV4Dr7Yr4n/4Jp/8o5f2Af8Asyf9lX/1RXgOvtigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAPz4/4K1/8orf+ClX/AGYR+17/AOs//ECv8Q6v9vH/AIK1/wDKK3/gpV/2YR+17/6z/wDECv8AEOoAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAr9V/+CJP7ZH/DCn/BT39k348anqv9leA2+Itp8Mvi1NNN5Onp8LPi3FJ8P/F+qaou5RPaeEbfXYPHcMLMB/aXhXT5R80Sg/lRRQB/v8UV+TP/AAQ5/bI/4bo/4JdfsnfG7VNV/tXx9p/w+tfhN8WpZZvO1Fvid8IJG8A+JNV1f5m8u/8AGUWi6d8QFjDECx8W2TgRh/LT9ZqACiiigAooooAK/wA07/g9I/ZE/wCFcftj/AD9sXQNM8jQP2lfhZdfD7xtd28O5H+KPwOnsbO31HUp1A8q41z4a+KvBmkaXDN808HgPUnhZ1tplh/0sa/nd/4Oi/2RP+Gq/wDgkT8cNZ0fS/7R8dfsuapoP7T/AITMUO64TS/ACahpXxSVp0Bnjsbf4ReJvHOuz26hoLi+0HS2nQG3iuLcA/yKaKKKACiiigAooooAKKKKACv02/4I3fsi/wDDcf8AwUy/ZC/Z3vtM/tXwfr3xX0nxh8TrWSLfaS/Cr4XQ3PxJ+IlleyMGhto9d8L+FtQ8NWk04MbaprWn2yxzz3EUEv5k1/eL/wAGTH7In9reP/2uf259f0zdZ+D9A0H9mf4Z6hND5sEmveK7jTviL8VprV3Gy21LQ9E0b4YWSTwlp207xnqVsWhgnkS5AP8AQzooooAKKKKACiiigAr/AB3f+DkD9sj/AIbN/wCCtf7SWvaRqv8Aanw9+BGpWv7MPw1aOf7RaJovwcudR0zxfd2E6MYLnT9d+LV/8RfEWm3dsPJuNM1axZJJ1VbiX/Ux/wCCnv7XVn+wl+wF+1T+1TLdW1trXws+E2vXHgJbsRtBe/FTxOYPBnwo02aKQMJbe/8AiN4h8MW16qxysti9zN5UixMp/wAQK+vr3U7281LUru5v9R1C6uL6/vryaS5u729u5XuLq7uriZnlnubieR5p5pXaSWV2d2ZmJIBVooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooA/sa/Z9/4PGv2mv2ffgJ8EPgJo37HXwJ8QaP8EPhD8NfhDpOv6n43+IFtqWt6b8NfBmi+DLHV9Qt7QfZbe+1K10WK9u4bb/R4riaSOH92q169/xG8ftWf9GRfs9/+F98R/8ACv4h6KAP7eP+I3j9qz/oyL9nv/wvviP/AIUf8RvH7Vn/AEZF+z3/AOF98R/8K/iHooA/t4/4jeP2rP8AoyL9nv8A8L74j/4Uf8RvH7Vn/RkX7Pf/AIX3xH/wr+IeigD+3j/iN4/as/6Mi/Z7/wDC++I/+FH/ABG8ftWf9GRfs9/+F98R/wDCv4h6KAP9GT/gmX/wdhftE/t2/t3fs3/skeLv2T/gt4E8N/G/xpf+F9W8XeHPGPjnUNb0O3tPCviHxCt1p9lqY+wXEzzaNFbslz8gimkYfOq1/cpX+NT/AMG73/KaX9gD/srmtf8AqtPHVf7K1ABRRRQAUUUUAFFFFAH8KH/BRT/g7X/aN/Yq/bf/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WOj6BoOn3Gq6xql5Jg+Xaafp1pcXdw+DshhdsHGKAP8AN2/4PR/2yP8AhY37XHwD/Yq8N6r53h/9m34dT/Er4g2dtNiP/hanxqFlcaTpmqW4Yh7rw38MdB8M6zpUzhWitviTqKICJmJ/itr6y/bt/ah179tX9sf9pP8Aaq8RG6juvjh8XfF/jbS7C9fzLjQfCN1qUln4D8LF98m6Lwl4IsvD/hm2Jkc/ZtJiBdj8x+TaACiiigAooooAK/2Hv+DZvSf7G/4Id/sIWe3Z53hv40atjGM/29+0r8Ztc3f8D/tHfnvuzzmv8eGv9kD/AINw7+HUv+CJ37A1xAqqkfw58c2DBOhm0r40fEvTLhj/ALb3FnKz/wC2WoA/biiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAr/JJ/4Ow/+U2X7Q//AGTv9nj/ANUr4Nr/AFtq/wAkn/g7D/5TZftD/wDZO/2eP/VK+DaAP5vaKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKK6vwJ4G8W/E3xn4X+HngLQdQ8UeNPGmu6b4a8L+HtLi86/1fWtXuo7OwsrdCVRTLPKoeaZ47e3iD3FzLFBFJIt06dSrUhSpQnUq1Zwp06dOMp1KlSpOMKdOEIKUpznOcIQhGMpSlKMYpuST58Xi8LgMJisfjsTh8FgcDhsRjcbjcXXpYXCYPB4OhWxWLxeKxOIqUaGHw2Fw2GxGIxGIr1aVGhQoVq1WpTp0pzj9Y/sAfsT+O/27/wBofw38HvC32vSfCtqY/EXxU8cx2/nWvgfwDZ3MMep6gDIpgm13VHkTR/C2myZ+361dwPcCLSrTVL2z/wBHr4T/AAs8CfBD4beC/hL8MtAtPDHgPwBoNl4c8NaJZj5LWwskOZriZv3t7qV/cvPqOr6ndNJe6rqt3eal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gAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAr+z7/ggp/wTT/4VH4Psf20vjV4f8r4n/ELRXX4K+HtVtsXPgT4d6zbFJvGk8E6brXxN8QbCXZpbIqz6X4Hn/17P4t1GysPyI/4Ip/8E13/AGxfjB/wuX4r6G837N3wa1q0m1S1voD9h+KPxAtlg1HSvAMXmL5V3oOmRyWmt+O8ear6bNpfh14h/wAJK95p/wDedHGkSJFEiRxxoscccahEjRAFRERQFVFUBVVQAoAAAAr+o/AXw29vUpcdZ3h/3FGclw3ha0NK1eDlTq5zOE1rTw8lOjlzaaniFXxkbxw+Hkf4Nfta/psf2Tg8d9FLwvzi2aZlh6E/GrPctxHv5dleIhRxeC8NsPiKFS8Mbm1KWFzPjSMKkZ4bKJZTw5VUKub5vRT6KKK/rU/55AooooAKKKr3d3a2Frc319c29lY2VvNd3l5dzR21raWttG01xc3NxMyQwW8EKPLNNK6RxRozuyqpIG0k22kkm220kkk2222kkkm220kk22km04xlOUYQjKc5yjCEIRlOc5zlGMIQhGMpSnKUoxjGMZSlKUYxjKUoxlYoqlpuo6frGn2Gr6TfWeqaVqlla6jpmp6fcw3un6jp99AlzZX1jeWzyW93Z3dtLHcW1zBJJDPDIksTsjqxu0k1JKUWnFpNNNNNNJppptNNNNNNpppptNNucJ0pzp1ITp1Kc506lOpCdOpTqU5zp1KdSnUjCpTqU6lOdOpTqQhOE4ThOEJwnCBRRRTJCiiigD8if+Cvv/BOiw/bq+A0ms+CNNtIv2i/hFZalrXwv1HENtN4u00p9q1z4X6pdvsRrXxCIRc+Gp7yRIdI8Vw2j/arDS9W8QPcf59Ooaff6Tf32larZXem6npl5c6fqWnX9vNZ31hf2Uz215ZXtpcJHPa3drcRyQXNvPGk0E0bxSIrqyj/AFjK/kJ/4L+/8E2P+Ed1S/8A27PgroG3QtdvbW3/AGivDmlWxCaR4gvZorLTPixb20K7EsfEN1Jb6R43ZFjMXiGXTPEMqXUuv6/e2f8AM3j14cfX8NPjjJcPfG4KlGPEGGow97F4GlFQp5pGEVeWIwEOWnjGk5VcCoV5c0sFNn+5H7JX6an+qWdYX6LPibm/JwvxNj61XwgzrMcRalw/xVj6s6+M4ErYivU5aGUcV4h1cbw3GVSFHAcVPFZXSVKhxNhqa/ldooor+QD/AKOAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAP2i/4N3v8AlNL+wB/2VzWv/VaeOq/2Vq/xqf8Ag3e/5TS/sAf9lc1r/wBVp46r/ZWoAKKKKACiiigAooooA/xef+C9P/KYv/goZ/2cZ4p/9I9Lr8ja/XL/AIL0/wDKYv8A4KGf9nGeKf8A0j0uvyNoAKKKKACiiigAooooAKKKKAP9gz/g2Z/aA/4aB/4Iy/sk3N5ffbfEXwd03xl+z/4jTzPM+w/8Kr8YavpXgux3Elhs+F1z4CnEbBfKFwI4wYljdv3sr/Py/wCDJb9r8Qal+13+wh4g1PCahb6H+1J8LtOlmCJ9rsjo/wAMPjEkKyHEtzdWs3weura2t8SC30vWbt45I45JIf8AQNoAKKKKACiiigAr/IT/AODmr9h/U/2M/wDgq18b9YsNJ+x/C39qq8n/AGnPhrfW8BjsJLr4hajeS/FPQwYx9kt77Q/itb+LZhpcDB7Tw3rHhe8eC3i1O2jr/Xsr8Kv+DgD/AIJMWn/BVj9i2+8M+BbLSbf9qT4GXOqfEX9nLXtQkgsl1XVJbOGPxh8JtS1ScpFY6H8UdJ0+ys4bi5mtbHTvGuieCtb1O6i0jS9SjnAP8dyit7xV4W8S+BvE/iLwX4y0HV/C3i/wjrmq+GfFPhnX9PudK13w94h0K+n0zWdE1nS72OG807VNL1G1uLG/sbqKK4tbqCWCaNJEZRg0AFFFFABRRRQAUUUUAFFFFABRRXU+CPA3jT4meLvDvgD4c+EvEvjzx14u1W10Lwr4N8HaHqXiTxR4k1q+kEVnpWhaDo9teapquo3Uh2wWdlazzyHO1Dg0ActRX97P/BJf/gz5vPEel6R8a/8AgqrqeqeHbPUrEXnh79kz4deJRY+I40vICLe6+MvxJ0CeU6Jcwo5uI/A3w9v5NRhmNlLrfjbTrm21Xwk/z5/wc8f8EZv2AP8Agmj+zF+zp8S/2Q/hZ4k8A+L/AIh/Hi/8C+Kb/W/if8QvHcF94bg+H3iLX47OGw8Y+IdZs7KVdT061mN3aQxXJRGhMpid1IB/FTRRRQAUUUUAFFFFABXonwh+KPjD4H/Ff4ZfGj4fagdJ8efCP4geDviZ4L1Qb/8AiX+KvAviHTvE/h+8IjeN2S31XTLWV0V0LorJuG7Ned0UAf7xX7NPx38IftQ/s8/BH9o3wDKH8HfHH4WeBvil4fj85LiaxsfGvhzT9eGk3roFC6nost7JpOqwMkctrqVldW08UU0Mka+3V/Iv/wAGc/7ZH/C8f+CdnjX9lzxBqv2vxl+xx8T7zTNHtZpvNuV+D3xmn1jx34Lmd5G8+X7L46t/ito0Ufzw2Gk6bolpE6ReTBF/XRQAUUUUAFFFFABRRRQAUUUUAFFFFAHGfEfx/wCFfhP8PfHnxT8d6pFongj4aeDPFHj/AMZa1PjydI8K+DdDvvEXiHVJslR5Wn6Rp15dyZZRsiOSOtf4YP7W37RPir9rf9p74+/tN+NTKniT46fFnxx8S72ykmM66Nb+KdevdR0nw5ayEn/iXeGNHlsPD2lxg7YdN0y1hX5YxX+oP/wdh/tkf8Mw/wDBKbxn8L9B1X7D8Qf2wvGOifAXR47eby9Rg8BASeMvi3qiRblEulXfhTQI/h9q+d+wfEWzAjy/mxf5ONABRRRQAUUUUAFFFFABX9zX/BkV+0B/Yvx8/bZ/Zdvr3918Q/hP8P8A45eHrKaTbHDe/CbxZd+BvEzWKEhWutTs/i94be8RQ0slt4fglUCK0mYfwy1+vP8AwQh/a/H7Ev8AwVU/ZI+L2qamNM8CeIfiDb/Bj4pSzTeTpyfD340RN8PtU1XV2ypOneDtT1rRvH0gUlvtHhO2bZMFMMgB/s/0UUUAFFFFABRRRQB/EL/wekfsP6p8Q/2fP2fP28vBukfarz9nrX9Q+D/xjntbdnu0+GnxU1LTrjwD4h1Cfbti0fwj8SbW58OIu4O+p/Fq2YI0ccrxf5wNf7z3x5+B/wANP2lvgx8T/gB8Y/Dlv4s+F/xe8F694D8baDcbVN5ofiCxlsp5rK5KO+naxpzvHqWh6vbBb3RtZs7DVbCSG9s4JU/xdv8AgqP/AME4PjJ/wS6/a28dfs0/Fa2udT0WCWXxL8HviUllJbaL8WfhRqV7dReGfGGmHBhg1JFt5tF8X6JHLM3h3xbpur6Us95Zw2OpXwB+dVFFFABRRRQAUUUUAFFFFABRRRQAUUV/Sh/wSF/4Npf2vf8AgpK/hr4v/FeLVf2Wv2Qr97XUY/iZ4s0ST/hYfxT0dikxj+DHgPUfss99p2owFI7f4j+Jxp/gqKK5/tDQF8c3Gn3mhUAfzX0V/qEftmf8GwX/AASD+AP7Cv7V3xW8EfBb4j3PxL+Cv7Jvx1+IXhDxl4g+OvxQv7yfxz8OPg/4p8SeH/Eut6LZ+INN8J3txJr2jWmp6jplt4esfD9zIZrWLR7bTnWzT/L3oAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAr6s/Yv/AGSPiN+2x8f/AAd8Cvh1C9vJrEx1Txj4qltpLnS/AfgXTpoP+Ei8XasEaNWjsYZ4rTS7J57c6zr99pOiQzwz6jHInzX4e8P654s17RPC3hjSdQ1/xJ4k1bTtC0DQ9JtZr7VNY1rVruGw0zS9OsrdXnu76/vZ4bW1t4UaSaeVI0UswFf6HP8AwSm/4J56H+wP8ALbTtdttP1D49/EuHTfEPxk8S2/k3Is72OF5NJ+H2i3se9ZPD3guO6ubc3EUjx61r9zrOthls7rTbLT/wBO8LPD6vx5n8adeNSnkGWSpYnOsVHmhz03Lmo5bQqJaYrHuEotxblh8JHEYlpSWH5v4W+nv9MDKvomeEVfG5XXwWM8W+OKWPyXwyyKv7Kv9XxcaPssy41zXByk3LIuE4YqlXjTrQjRzfiCrk2SRlUpvN1R+5vgD8Cvhz+zT8IPAvwR+FGjLongfwBosOkaXA3lvfahcFnuNU17WrqOOIX2veINUmu9Z1q+8qMXWpXtxJHFDEY4Y/YaKK/0Ew+HoYTD0MLhaNPD4bDUaWHw9CjCNOlRoUacKVKlThFKMIU6cIQjFLRLdtylL/j5zjOM14hzfNM/z3Mcbm+d53mOOzfOM2zHEVcXmGZ5pmWKr47MMfjcVWlKriMVi8Xiq+Ir1ZyvKpUdlCEadOkUUUVsecFFFFABX8zf/BwB/wAFFf8AhWHgmT9ib4R675XxB+JWjQ3vxv1fTbnFx4S+Gupx+ZZeB/Ogbfba18Q4f3+swO6S2/gUfZ7i2mtPGlrcW/7Ift+ftneC/wBhb9nDxd8afEv2TU/EhQ+HPhf4NnnMUvjb4ianbXDaJpJEbpOukWKwXGueJryFlks/D+mag9sZNQksbW5/zdPiZ8SPGnxg+IPjH4o/EXXbvxN448e+IdS8T+J9cvWBmv8AVtVuHuLhkjUCK1tIdy21hYWyRWenWMNtY2UMNpbwxJ/Pfjt4h/2Dlb4Tymvy5znWHbzGrSnapl2T1eaEoc0XzU8VmiVShT1jOngViqyt9YpN/wCxP7J76G//ABFrjyP0hPEHKfbeG3hjnEI8HZfj8PzYTjLxIwDoYqhiHSrU3TxeR8CSlhM0xj5auHxfFNTIcul7RZTjqcf66P8Ag31/4KHf8J/4P/4Ye+LGueZ40+H2l3Wq/AjVdSuAZ/Enw+sVa51f4fiadvMuNU8BqZNS8P26vNLL4Ke6sreC10/wWGm/p3r/ACn/AIZ/Ejxn8H/iD4O+KPw71y78N+OPAXiHTPFHhjW7Nh51hq2k3KXNs7xtmK6tZiht7+xuUktNQsZrixvIZrW4mif/AElP2Cv2xvBn7cn7N3gz43+F/smna7PF/wAI98S/CEE5ll8E/EbSbe2PiDQm3u8zadcfaLbW/Dl1M3nXvhvVdKubgQ3j3VtAvAfxB/t3Kv8AVLNa/Nm+SYdPLqtWd6mYZNT5YQheT5qmIyu9OhPWU54GWFqu/wBXqNV+1l+h7/xCjj//AImF4Byr2Ph14o5vOHGWBwOH5cJwh4lYz22Kr4r2dGmqeEybj1U8VmuFfLSoYfiqjn+Ai4PNsJTl9mUUUV/Qp/joFFFFABWH4m8NeH/GfhzXvCHizR9P8Q+F/FGj6l4e8RaDq1tHeaZrOiaxZzafqml6haSho7izvrK4mtrmFwVkikdT1rcoqZRjOMoTjGcJxlCcJxjKE4TjKE4TjJSjKM4ylGUZRlGUZSjKLjJp60K9fC16GKw1athsThq1HE4bE4erUoYjD4jD1aWIw+Iw9ejUpVqFehXoUK9CtRq0qtGtRo1aVSnVpU6kP85f/gqV/wAE/vEH7A37Q9/4Z0+HUNR+CPxBfUfE3wU8VXfmTtLoS3Cf2j4L1e9IKS+J/A893badqDlvM1PSrjQ/ELRWx1lrK0/M+v8ATU/bq/Y38Afty/s8+Lfgl41WDTtVuEOu/DrxmbYXF74D+IGnW9wuheIbZRiSaxczzaV4h06N421Xw9qGp2Mc1tdSWt5a/wCbv8ZPhB4/+AfxR8b/AAc+KOhT+HPHnw+1678PeItKmyyLc2xV7e+sLjaqX+j6tZS22raJqkANrqmkXtlqNq729zE5/grxh8OpcE559dy6jL/VvOatWrl7im4ZfineriMpqS15Y01J1sA5O9TBS9leVTBzv/1tfs3/AKZtD6UHhYuF+Msxovxs8M8BgcBxdTqzp08RxhkCVPA5N4gYSivZ+1q410aeWcWwoU+XB8S0/rrhRwnEmG9n5nRRRX48f6QhRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQB+0X/Bu9/wAppf2AP+yua1/6rTx1X+ytX+NT/wAG73/KaX9gD/srmtf+q08dV/srUAFFFFABRRRQAUUUUAf4vP8AwXp/5TF/8FDP+zjPFP8A6R6XX5G1+uX/AAXp/wCUxf8AwUM/7OM8U/8ApHpdfkbQAUUUUAFFFFABRRRQAUUUUAfod/wSn/bi1j/gnV+3z+zp+1dZm7n8NeBfGcWk/FLR7NWml1/4QeNLabwn8TNMhtR8l3qUXhTVtQ1fw7HMrRweKdK0O9277RCP9tHw54i0Lxf4e0Hxb4X1ax1/wz4o0bS/EXh3XdLuI7vTNa0LW7GDU9I1bTruItFdWOo6fc295aXEbGOa3mjkQlWBr/Agr/Tu/wCDSL/gqvb/ALTv7L9z+wF8Wtfjk+Of7I/hy1f4XT39wPt3j79mpbuDS9Eht1Zi1xqPwZ1O8sPBF8iJBHF4M1T4diBLu6t9cuowD+wqiiigAooooAKKKKAP5av+C73/AAbffDX/AIKYf2x+0v8As133hz4NftsWGkKmrSahANP+G/7RFvpdssOm6Z8RpbC2lufD3j2ztIYtN0D4l2trfG5sYrXw94x0/UdMg0XW/CX+Zr+1X+xt+1B+xD8Tb34QftV/BTxx8FvHdqbiSzsPFemBdI8SWFtKIJNa8FeK9PlvvCvjjw+Zj5Ka/wCEdZ1nR2mDW/2zz45Ik/3X68D/AGj/ANlr9nb9r74a6l8H/wBpv4OeA/jX8OdUYzSeGvHeh2+qx2F95bwx6x4e1IeVrPhbxBbRySLZeI/DWo6TrtgHc2WowFmJAP8ACDor/TP/AGuf+DMH9hv4o/2prv7I3xs+LX7LHiK486ay8JeJxH8d/hRbsuXgsbO08Qal4d+J2nJMx8ibUtR+JnipreIxzx6XcSRSRXX4I/F7/gzO/wCCo/gf7Vd/DL4ifsq/G3T03mzstG+IPjHwN4ruAuSvn6Z47+H2k+F7V5BgIE8b3ShtwkeNQrsAfyPUV+6/ib/g2h/4LeeFbi5gvP2FfE+ppbyMq3Xhn4tfs++KLe5QfdmthoPxYv7hkkXDKkkEU652SwxyhkXyO4/4IF/8FkLa+TT5P+Cev7QbTuSFkt9D0e7sQR136na63NpsY54aS7VW/hJwaAPyEor9y/DH/Btd/wAFuPFk1vFp/wCwf4z09bh0XzvE/wATfgP4RhhVyMyXB8T/ABU0mSNIxlnHlmTAIWNnwp/RH4Of8GaX/BUrx59ku/ih49/Za+BenPsN7Za78Q/FXjvxZbB8bhb6X8PvAut+Frt4xnesnjmzQttEckgJZQD+SOtrw54b8ReMNd0rwv4R0DWvFPibXbyHTtE8O+HNKvtb13WNQuG2wWOlaRpkF1qGoXk7fLDa2lvNPI3CIxr/AEkP2X/+DKr9jfwJ/Z+r/tX/ALS/xn/aD1iDyp7nwx8ONK0P4GeAJ5DtabT9RMk3xF8dapaR/NFHfaT4u8HXdxgXBgtdxtU/p2/ZD/4Jx/sOfsG6Guifsmfsz/C/4PTPaCxv/FmkaI2s/EnXbTC5t/EnxS8Uz658RfEdvuUulrrXie+tYXeQ28EQkYEA/wA57/gmt/waXft0ftbtoPxE/a0ln/Yk+CF4be9Ol+MtFOqftEeKdOYiQw6R8Kpp7JfAIuVSazm1D4oahoeuaTK9vqFv4C8R2TbX/wBAD/gnv/wR+/YH/wCCZfh+G1/Zj+CumW3xBm07+zvEXx28etb+Nfjf4qikjEd4l745vbOA+H9N1ALG194X8B6d4R8HzyxRXDeHvtKmZv05ooAK/iq/4Pbv+TJf2Pv+zp9U/wDVS+MK/tVr+Kr/AIPbv+TJf2Pv+zp9U/8AVS+MKAP81yiiigAooooAKKKKACiiigD+lP8A4NT/ANsj/hln/grD8OfAGvar9g+H37XnhnWf2ddfjnm22MfjPVpLbxP8ItQEBZVl1a78f+H9N8C6bJy8MHj3UgisJmB/1pa/wMfAnjbxN8NPG/g34jeCtVuNC8ZeAPFXh7xt4S1u0O260bxN4V1ez13QdVtm7XGn6rYWl3Ce0kKmv9zn9jb9pLwx+2F+yn+z1+1D4Q+zx6J8dPhJ4J+Io0+2lM66Dq+v6Ja3HiTwtNIWcm98J+JP7W8M6iu+TZf6Tcp5km3ewB9K0UUUAFFFFABRRRQAUUUUAFFFeY/Gv4t+D/gF8HPit8cviFe/2d4E+Dnw58a/FDxjfAoHtvDPgTw5qPifW5IRIyI9x/Z2mXC20RYGacxxLlnAIB/mTf8AB4X+2R/wvr/gpH4c/Zq8P6r9s8E/sZ/DLT/DF9bQz+fZj4vfFqDSvH/xBvLeSM+SXg8Jj4W+GL6EB5rLWPDOq2s8glWS3t/5Lq9i/aG+NvjD9pT48/GX9oT4g3H2jxt8bfif44+KfihlkeWGHWfHPiPUfEd5ZWZcAx6fp8moGw023VUitbC2traGOKGJI18doAKKKKACiiigAooooAKVWZWDKSrKQyspIZWByCCOQQeQRyDyKSigD/Z4/wCCFf8AwUCg/wCCj/8AwTc+Bfxt1nVotS+L3g/TT8Fvj/EZVkvU+Lvw3sdOsNV12+VSRFL8QfD114a+JccUY8q2i8YrYod9nKqfsBX+UF/wa4/8FV7f9gT9tX/hQvxZ1+LTP2Zv2xtQ8NeBfE+o6lcLDpnw5+MFpPc2Hwq+Ics9wwt9N0W/vdYuvAvje5Z7O0i0nXtJ8Uaxdm08DwQN/q+0AFFFFABRRRQAV+c3/BTX/gmB+zR/wVS/Z8vPgZ+0Hos1jquky3etfCf4u+HLeyX4hfCDxhPBHEdb8M3t3FJHeaPqqQW1n4v8IagTovirTIYEuBZ6zpuga7ov6M0UAf4y/wDwU7/4IZ/t3f8ABLnxJrmofFX4d3/xG/Z8i1V7Xwr+058NNNvNZ+Geq2FxOI9JHjGO3N3qfwq8SXavFby+HvG6WVvcaot1a+Ftc8V2FumrXH431/v0arpOl69peo6Jrmm6frOi6xY3WmatpGq2dvqOl6ppt9A9tfafqOn3kc1pe2N5bSyW91aXMUtvcQSPFNG8bsp/m3/bH/4NSf8AglB+1Pea74p8B+A/GX7I/wAQtanu9Rk1n9nnX4dO8DzarcM7q938I/Ftl4l8C6XpCM/zaJ8PLL4ewlVUQ3Fuxd3AP8l+iv7V/jn/AMGTX7Z/hvUNTn/Z2/ay/Zz+LGgQSPLpsHxS0v4hfBnxXd233ktjY6BoXxf8Om+QnyvMn8S2FpOFM5e03i2T8u/iH/wa0/8ABbfwFfy21j+yZpXxG05C4TXvh58c/gVqNhPsOP3WneIfiH4Z8UKGGGQ3Hh6DcDj74ZAAfz2UV+xWuf8ABvz/AMFmfDxYX/8AwT6+OlwVOD/YcHhPxMD2+VvDfifVg491JB6g4rZ8Pf8ABu5/wWm8TbP7N/YA+Ldt5mNv/CQ638M/CWM/3/8AhK/Hei+V7+Zsx3xQB+LlFf05/B7/AINGP+CyfxNa2PjH4f8AwN/Z/gnKlpvi78cvDeqtBExB8yW1+CFr8Y7pW2Hd5DRLOp/dzJE4ZV/ZL9mn/gyItI7m01T9sP8AbcuLq0V4xfeCP2a/AUdlcSxja0rW3xS+J5vkgY/NEkcvwgnAGJjNnMAAP8/qv2S/4J4f8EHf+Cjn/BSLUtH1P4T/AAW1P4b/AAZv2t57v9oX432mr/D/AOFS6ZMQTeeFrm80yfxF8SpSgZYoPh3oXiS3huTDHrF9o1tL9sT/AEx/2NP+Dfr/AIJSfsPX2neJfhh+y74b8ffEfTDBLa/FP4+XU3xm8ZWt7bEG31TRbXxak/gnwdq8TbmXVPA3g/wxffvHVpzHtRf2eACgKoAAAAAGAAOAABwABwAOlAH8z3/BNP8A4NbP+CfH7Cv9gfED4waOn7Z/7QemfZr4eNPjBoFivwt8L6vDtkE/gH4KPcav4che2nSKez1jx7fePdfsr63j1LQ77w/I5tY/6YERI0SONFjjjVUREUKiIoCqiKoCqqqAFUAAAAAYp1FAHw5/wU7/AOUa3/BQv/sxz9rL/wBUJ4/r/Dqr/cV/4Kd/8o1v+Chf/Zjn7WX/AKoTx/X+HVQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFfsD/AMEff+CcV/8At0fHNfEvjzTLuL9m/wCEOoafqvxJvmEttD411rK3mi/C7S7tNkjTayEW98V3Fm6zaR4VSVPtOn6prvh6ab18hyPMeJM3wGSZVQdfHZhXjRpR1VOnH4q2IrzSl7LDYaiqlfEVWrQp03bmnOlCp+deLXipwZ4J+HXFfij4gZnDKuFuEMrrZlj6q5JYvG19aOXZNlWHnUpvHZ1neYzwuVZTgacufEY3Fwc3SwuGx2Jwn63f8EBv+CaX9h6fpv7dnxu8P41jV7W4j/Zz8MatbYfTNGu4pLTUPi3d2k6blvNbt5J9L8BmUIItFk1HxPFFcLrHhrUbT+qmqmn6fYaTYWWl6XZWmm6Zptpbafp2nWFtDZ2NhYWcKW9pZWVpbpHb2tpa28ccFtbQRpDBDGkUSKiqot1/oxwZwll3BWQYPIsuipKjH2uNxbgo1swx9WMfrOMrWu1zzXJQpuUlh8LToUIv3akqn/GB9Jf6QnGf0nPF3iXxV4yqToPMazwHDPD1PETr5fwhwjga1dZHw3l3NywksLh6jxWZ42NGlUzfPMbmua143r4SlgyiiivqT8DCiiigArN1nWNJ8O6RqviDXtSsdG0PQtNvtY1rV9TuYbLTdK0nTLWW91HUtQvLh47e0sbGzgmuru5ndIYIIpJZXVEYjSr+V3/g4L/4KLf8I/pMn7CXwh13brev2lhq/wC0PremXG2XSvD1ykOo+H/has8Lb47vxFE1r4i8YRKYmXw+dD0d5Lq08Q63ZQ/LcZ8V4Dgvh7HZ7j2p+wh7LBYTnUKmPzCtGccJg6W7XtKi561SMZewwtLEVmvdgp/vn0Z/o/cW/Sb8YuFfCfhONTD/ANq4j69xNn7w8q+D4T4Py6ph6nEHEeNXu05fVMJUWFyzC1KtJ5pnuYZRllOX7/FTw/4kf8FW/wBv7Vv28/2j9Q1zQ7u+t/gZ8NH1Lwn8FtBn86BZ9INzGNY8eahZShDDrvju6s7a/kjlhiuNO0G08P6HcB7jSri5ufzAoor/ADjznOMfn+a4/Oc0rvEY/McTUxOIqO6ipTdoUqUW5KnQoUlToYelF8tKjRpwV7SlP/tL8M/DnhLwi4B4T8NOBMrp5RwpwbkuEyTJ8HDllVlSw0ObEY7HV406csZmua42pjM1zbH1Y+1x2Z5hjMRPlUqFLDlfq1/wSM/4KAXv7Cv7SNlL4q1G6PwD+LUumeEvjBpoMssGjRC4kj8O/Ee1tY97Nf8Agm7vbmW/WGKee+8LX/iCxt7abUZNMktvyloqsjznH8PZtgM6yus6GOy7E08TQnryS5XapRrRTj7TD4ijKrh8RTbtUo1px0koShl4peGnCPjH4e8XeGPHeWxzThXjPJcXk2aYf3I4igq8efB5nl9adOp9UzbJ8wpYHN8pxsI8+EzHL8NVXNSniqOI/wBY6xvrLU7Kz1LTby11DTtQtbe+sL+xuIruyvrK7iSe1vLS6geSC5tbmCSOa3uIXeKaJ0kjdkYE2q/ma/4N+v8Agod/ws3wL/wxN8WNc83x/wDDLR59R+COqalcZuPFXwz09d+oeCBNO2+51f4eK3n6Nbo8ks/gaT7NbW0Fl4Lup5v6Za/0e4Q4owHGPD+X59l7UaeLp8uJwzkpVMDjqSjDGYKtaz56FZvkk4x9th6mHrxXLVaj/wAVn0i/Aji76Nvi/wAXeEvGNOVTFZBjfbZLnMaE6GD4p4VzCVbEcOcT5cpc0fq+a5dGH1mhCrVeXZthM4yqtP2uXxdcooor6U/EAooooAK/n6/4Lof8E2P+GmvhdJ+018H9A+0fHn4OaDOfEuj6Xbbr/wCKPwu04TXt5pyQQr5l/wCLPBSvd6x4cCZvNV0l9Y8Oxx6het4btbX+gWivA4n4by3izI8fkOaU+fDY2k1GrGMXWwmJheWFxuGck1Gvha3LUg7pTj7WjUvSr1EfrngV41ca/R78U+E/FjgLGewzzhjHxqV8DVqVoZdxDkeKdOhnvDOc06Mk6+U57lvtsHiVyzqYWusBmeEUMflWEqP/ACZ6K/oG/wCC6H/BNj/hmX4ov+018H9A+z/AX4x69MfEuj6XbbLD4XfFHUTPe3mnR28KiOw8JeNSl1q/hwRhbPStXTWPDqR6fZJ4btrv+fmv85eJ+G8y4TzzH5DmlPlxOCqtQqxUlRxeGneWFxuHcleVDFUeWpDVuEva0alqtCoj/tH8CvGrgr6QnhZwn4scBYz2+R8T4BVK+BrVKM8x4ezzCqnQz3hnOadGTjQzbIsy9tg8QuWFPFUHgMzwingM1wlRFFFFeAfroUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQB+0X/Bu9/wAppf2AP+yua1/6rTx1X+ytX+NT/wAG73/KaX9gD/srmtf+q08dV/srUAFFFFABRRRQAUUUUAf4vP8AwXp/5TF/8FDP+zjPFP8A6R6XX5G1+uX/AAXp/wCUxf8AwUM/7OM8U/8ApHpdfkbQAUUUUAFFFFABRRRQAUUUUAFfTP7Hf7Wvxm/YZ/aR+Ff7UvwD19dB+Jfwo8QprGmC6WWfRfEOk3UE2m+JfBviexilgfUfC3jDw/eaj4e1+yjnt7l9O1CaWwu7HUYbO+tvmaigD/cC/wCCa/8AwUL+Cf8AwU3/AGUPAP7UPwVu1tItbi/sL4j+ALu+gvPEXwn+KGlWto/iv4feIjEkLSTadLd29/oWrNa2cXiXwrqWh+JbW1trfVktofvav8Vj/gkx/wAFZf2hf+CTH7RNp8WvhRdTeK/hh4rl0zSfjt8C9U1Oe08J/FbwjaTyMnziO5j8P+O/DqXV7d+BvG9tZ3F5oV7cXVjfW2r+F9Y8Q+HtY/16v2H/ANuf9m//AIKGfADwp+0Z+zJ47svGHgvxDbwwa1o00lrbeM/hz4qW2hn1XwF8RvDsN1dXHhnxfojzKtzZzSTWOpWj2mu+HtQ1nw5qelaxfAH17RRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFfxVf8Ht3/Jkv7H3/AGdPqn/qpfGFf2q1/FV/we3f8mS/sff9nT6p/wCql8YUAf5rlFFFABRRRQAUUUUAFFFFABX+mh/wZkftkf8AC1/2IPjF+x34i1X7R4n/AGUviafE3guznnw6fCD45S6r4it7OwgkYyTpovxR0f4jXupzQEw2ieLtDgljheeF7n/Mvr+hL/g2G/bI/wCGRP8Agrd8DLDWtV/s74e/tQW2pfsu+NhLNttje/Ei6025+F9yY5GFutwnxf0LwJppvZCklnpOr6yI5AlxNFMAf681FFFABRRRQAUUUUAFFFFABX8q3/B3j+2R/wAM7/8ABMRPgHoGq/YvHn7ZvxG0n4bJBBN5GoJ8KvAMtj8QPihqdswYM9rPeWXgTwNq0IVln0zx9cxOQrkN/VTX+Uv/AMHcH7ZH/DSP/BUjUvgr4f1X7d4A/Y18AaL8IbSK3m87TpviZ4mSHx78VtVhBYmPULa61fw18PtYjCoEvPh1sCsVMsoB/LfRRRQAUUUUAFFFFABRRRQAUUUUAFf6lH/BsR/wW/h/bw+Ddn+xj+0n4qib9sH4C+E7ePwt4i1m7Vb/APaF+D2gQwWFp4kW4nYPqXxM8BWv2TS/H9u5k1LxFpA03x8kmp3U3jWXRP8ALXr0j4P/ABg+J3wA+J/gf4z/AAY8b6/8OPil8N/EFl4o8E+NvDF61jrWg61YMTFcW8oDxT288TzWWpabew3OmavplzeaVqtneabeXVrMAf72FFfzsf8ABCH/AIL2fCb/AIKr/DKw+GXxPvvDPwy/bk8CaKg8e/DJbqLTdK+K+nadbZuvil8HrW8nM9/pc8cL3fi7wbBJeav4DvTKZvtnhqfStbu/6J6ACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooA+HP8Agp3/AMo1v+Chf/Zjn7WX/qhPH9f4dVf7iv8AwU7/AOUa3/BQv/sxz9rL/wBUJ4/r/DqoAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKtWNje6ne2em6bZ3WoajqF1b2NhYWNvLd3t9e3cqQWtnaWsCST3N1czyRw29vCjyzSukcaM7AFpNtJJttpJJNtttJJJJtttpJJNttJJtpOZzhThKpUlGEIRlOc5yjCEIQjKc5znOUIQhCEJznOc4QhCE5znGMZSj7x+y5+zX8Sf2t/jj4G+BHwr0/7V4l8ZaksdzqVxHK2keFPDtpifxB4v8AEM0SsbbRPD+nCW8uiM3F5MLbStOjudV1CxtLj/SQ/ZX/AGZ/ht+yJ8DPA/wH+Flh9n8O+D9PAvtWniiTV/F3iW8CzeIfGHiGWIYuNZ1+/wB9zMNxgsLUWej6ctvpWm2FrB+fv/BHj/gnDZfs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FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF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FFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFAH//Z" + webUI["html/img/x_black.png"] = "iVBORw0KGgoAAAANSUhEUgAAAQAAAAEACAIAAADTED8xAAAAAXNSR0IArs4c6QAAAAlwSFlzAAAWJQAAFiUBSVIk8AAAA6ppVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IlhNUCBDb3JlIDUuNC4wIj4KICAgPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIgogICAgICAgICAgICB4bWxuczp0aWZmPSJodHRwOi8vbnMuYWRvYmUuY29tL3RpZmYvMS4wLyIKICAgICAgICAgICAgeG1sbnM6ZXhpZj0iaHR0cDovL25zLmFkb2JlLmNvbS9leGlmLzEuMC8iPgogICAgICAgICA8eG1wOk1vZGlmeURhdGU+MjAxOC0xMS0xNVQxNzoxMTozNzwveG1wOk1vZGlmeURhdGU+CiAgICAgICAgIDx4bXA6Q3JlYXRvclRvb2w+UGl4ZWxtYXRvciAzLjM8L3htcDpDcmVhdG9yVG9vbD4KICAgICAgICAgPHRpZmY6T3JpZW50YXRpb24+MTwvdGlmZjpPcmllbnRhdGlvbj4KICAgICAgICAgPHRpZmY6Q29tcHJlc3Npb24+NTwvdGlmZjpDb21wcmVzc2lvbj4KICAgICAgICAgPHRpZmY6UmVzb2x1dGlvblVuaXQ+MjwvdGlmZjpSZXNvbHV0aW9uVW5pdD4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+MTQ0PC90aWZmOllSZXNvbHV0aW9uPgogICAgICAgICA8dGlmZjpYUmVzb2x1dGlvbj4xNDQ8L3RpZmY6WFJlc29sdXRpb24+CiAgICAgICAgIDxleGlmOlBpeGVsWERpbWVuc2lvbj4yNTY8L2V4aWY6UGl4ZWxYRGltZW5zaW9uPgogICAgICAgICA8ZXhpZjpDb2xvclNwYWNlPjE8L2V4aWY6Q29sb3JTcGFj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a1jSekqmtA1rrGsx7JYkDuvrVahwRdgVXD1xcwri6mmYRULLe4CuPc2wfrGo4U+7Y/3S9ZHD+GcflbnfiCJbr77whoaS6ucCXVkVkuLKgORQwNJFygRDJnqwb9i3b0HxkqjT0L4erGy5Rh1IRnhXrpaZq6GZCyRLf6cvhoTY6V9koX8bGdEUlyWVm6W5q1GuostihNm97L/dpm5k+QHCbDna0zRzgSS/lRHWL7iHPOa+9YsYkpttoCwSMcQRkrWioz5Qsc7aFJ1coHY3QyJ9jSjfJEOCfTUpWzehVBnUbqCJOCHEkB1xsmXDwq9DnObUz9q4QOUqYPaPKFzUKcVj6Eeu461q67Vhlqy6+Xo11G52JhRZNNW1FRbN00FWPVwguSa+8YEZ1i+D9vQjelm/iHTwAB69Vwd7CkuGLOcWtxfR4o+dHhNg4DNmhDvJ8M6ehknvhTXMDp8kQQgT33W4z+i7k/2gho+Jvrp1NTVwgW5opV76yl8F/cufe9CyJiRllZ6lYCHMXWPAXmNp9CRb8Pi30r658sHtCSCPsZNXQDYdMaLIek/No13V/rBfGMFSCXnsKNo1dDelnKt/dyUH8uvjjLH+zyfpbv1iUl/NVBt4mVJy58HoDyFZLt0rrj4G7TfIjARvMjy7d6JnR/UXS/+yeD5kLYkETxpRZL2jZJVzb7cl9yZA/cYqh4z+20AEzOj+BKxbZYRFqXQssvLs5gQzpBUp616rNsX55WdXBHbPBRrwlBm5v2VYJo1FsjmOtQg8ezo+fd8Ve4qy04HPRlmR1UiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABGwg8D8UnyVeZFwGAQAAAABJRU5ErkJggg==" + webUI["html/img/x_white.png"] = "iVBORw0KGgoAAAANSUhEUgAAAQAAAAEACAIAAADTED8xAAAAAXNSR0IArs4c6QAAAAlwSFlzAAAWJQAAFiUBSVIk8AAAA6ppVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IlhNUCBDb3JlIDUuNC4wIj4KICAgPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIgogICAgICAgICAgICB4bWxuczp0aWZmPSJodHRwOi8vbnMuYWRvYmUuY29tL3RpZmYvMS4wLyIKICAgICAgICAgICAgeG1sbnM6ZXhpZj0iaHR0cDovL25zLmFkb2JlLmNvbS9leGlmLzEuMC8iPgogICAgICAgICA8eG1wOk1vZGlmeURhdGU+MjAxOC0xMS0xNVQxNzoxMToyNTwveG1wOk1vZGlmeURhdGU+CiAgICAgICAgIDx4bXA6Q3JlYXRvclRvb2w+UGl4ZWxtYXRvciAzLjM8L3htcDpDcmVhdG9yVG9vbD4KICAgICAgICAgPHRpZmY6T3JpZW50YXRpb24+MTwvdGlmZjpPcmllbnRhdGlvbj4KICAgICAgICAgPHRpZmY6Q29tcHJlc3Npb24+NTwvdGlmZjpDb21wcmVzc2lvbj4KICAgICAgICAgPHRpZmY6UmVzb2x1dGlvblVuaXQ+MjwvdGlmZjpSZXNvbHV0aW9uVW5pdD4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+MTQ0PC90aWZmOllSZXNvbHV0aW9uPgogICAgICAgICA8dGlmZjpYUmVzb2x1dGlvbj4xNDQ8L3RpZmY6WFJlc29sdXRpb24+CiAgICAgICAgIDxleGlmOlBpeGVsWERpbWVuc2lvbj4yNTY8L2V4aWY6UGl4ZWxYRGltZW5zaW9uPgogICAgICAgICA8ZXhpZjpDb2xvclNwYWNlPjE8L2V4aWY6Q29sb3JTcGFj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" + webUI["html/js/network_ts.js"] = "Y2xhc3MgU2VydmVyIHsNCiAgICBjb25zdHJ1Y3RvcihjbWQpIHsNCiAgICAgICAgdGhpcy5jbWQgPSBjbWQ7DQogICAgfQ0KICAgIHJlcXVlc3QoZGF0YSkgew0KICAgICAgICBpZiAoU0VSVkVSX0NPTk5FQ1RJT04gPT0gdHJ1ZSkgew0KICAgICAgICAgICAgcmV0dXJuOw0KICAgICAgICB9DQogICAgICAgIFNFUlZFUl9DT05ORUNUSU9OID0gdHJ1ZTsNCiAgICAgICAgY29uc29sZS5sb2coZGF0YSk7DQogICAgICAgIGlmICh0aGlzLmNtZCAhPSAidXBkYXRlTG9nIikgew0KICAgICAgICAgICAgc2hvd0VsZW1lbnQoImxvYWRpbmciLCB0cnVlKTsNCiAgICAgICAgICAgIFVORE8gPSBuZXcgT2JqZWN0KCk7DQogICAgICAgIH0NCiAgICAgICAgc3dpdGNoICh3aW5kb3cubG9jYXRpb24ucHJvdG9jb2wpIHsNCiAgICAgICAgICAgIGNhc2UgImh0dHA6IjoNCiAgICAgICAgICAgICAgICB0aGlzLnByb3RvY29sID0gIndzOi8vIjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImh0dHBzOiI6DQogICAgICAgICAgICAgICAgdGhpcy5wcm90b2NvbCA9ICJ3c3M6Ly8iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICB9DQogICAgICAgIHZhciB1cmwgPSB0aGlzLnByb3RvY29sICsgd2luZG93LmxvY2F0aW9uLmhvc3RuYW1lICsgIjoiICsgd2luZG93LmxvY2F0aW9uLnBvcnQgKyAiL2RhdGEvIiArICI/VG9rZW49IiArIGdldENvb2tpZSgiVG9rZW4iKTsNCiAgICAgICAgZGF0YVsiY21kIl0gPSB0aGlzLmNtZDsNCiAgICAgICAgdmFyIHdzID0gbmV3IFdlYlNvY2tldCh1cmwpOw0KICAgICAgICB3cy5vbm9wZW4gPSBmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICBXU19BVkFJTEFCTEUgPSB0cnVlOw0KICAgICAgICAgICAgY29uc29sZS5sb2coIlJFUVVFU1QgKEpTKToiKTsNCiAgICAgICAgICAgIGNvbnNvbGUubG9nKGRhdGEpOw0KICAgICAgICAgICAgY29uc29sZS5sb2coIlJFUVVFU1Q6IChKU09OKSIpOw0KICAgICAgICAgICAgY29uc29sZS5sb2coSlNPTi5zdHJpbmdpZnkoZGF0YSkpOw0KICAgICAgICAgICAgdGhpcy5zZW5kKEpTT04uc3RyaW5naWZ5KGRhdGEpKTsNCiAgICAgICAgfTsNCiAgICAgICAgd3Mub25lcnJvciA9IGZ1bmN0aW9uIChlKSB7DQogICAgICAgICAgICBjb25zb2xlLmxvZygiTm8gd2Vic29ja2V0IGNvbm5lY3Rpb24gdG8geFRlVmUgY291bGQgYmUgZXN0YWJsaXNoZWQuIENoZWNrIHlvdXIgbmV0d29yayBjb25maWd1cmF0aW9uLiIpOw0KICAgICAgICAgICAgU0VSVkVSX0NPTk5FQ1RJT04gPSBmYWxzZTsNCiAgICAgICAgICAgIGlmIChXU19BVkFJTEFCTEUgPT0gZmFsc2UpIHsNCiAgICAgICAgICAgICAgICBhbGVydCgiTm8gd2Vic29ja2V0IGNvbm5lY3Rpb24gdG8geFRlVmUgY291bGQgYmUgZXN0YWJsaXNoZWQuIENoZWNrIHlvdXIgbmV0d29yayBjb25maWd1cmF0aW9uLiIpOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9Ow0KICAgICAgICB3cy5vbm1lc3NhZ2UgPSBmdW5jdGlvbiAoZSkgew0KICAgICAgICAgICAgU0VSVkVSX0NPTk5FQ1RJT04gPSBmYWxzZTsNCiAgICAgICAgICAgIHNob3dFbGVtZW50KCJsb2FkaW5nIiwgZmFsc2UpOw0KICAgICAgICAgICAgY29uc29sZS5sb2coIlJFU1BPTlNFOiIpOw0KICAgICAgICAgICAgdmFyIHJlc3BvbnNlID0gSlNPTi5wYXJzZShlLmRhdGEpOw0KICAgICAgICAgICAgY29uc29sZS5sb2cocmVzcG9uc2UpOw0KICAgICAgICAgICAgaWYgKHJlc3BvbnNlLmhhc093blByb3BlcnR5KCJ0b2tlbiIpKSB7DQogICAgICAgICAgICAgICAgZG9jdW1lbnQuY29va2llID0gIlRva2VuPSIgKyByZXNwb25zZVsidG9rZW4iXTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGlmIChyZXNwb25zZVsic3RhdHVzIl0gPT0gZmFsc2UpIHsNCiAgICAgICAgICAgICAgICBhbGVydChyZXNwb25zZVsiZXJyIl0pOw0KICAgICAgICAgICAgICAgIGlmIChyZXNwb25zZS5oYXNPd25Qcm9wZXJ0eSgicmVsb2FkIikpIHsNCiAgICAgICAgICAgICAgICAgICAgbG9jYXRpb24ucmVsb2FkKCk7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIHJldHVybjsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGlmIChyZXNwb25zZS5oYXNPd25Qcm9wZXJ0eSgibG9nb1VSTCIpKSB7DQogICAgICAgICAgICAgICAgdmFyIGRpdiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjaGFubmVsLWljb24iKTsNCiAgICAgICAgICAgICAgICBkaXYudmFsdWUgPSByZXNwb25zZVsibG9nb1VSTCJdOw0KICAgICAgICAgICAgICAgIGRpdi5jbGFzc05hbWUgPSAiY2hhbmdlZCI7DQogICAgICAgICAgICAgICAgcmV0dXJuOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgc3dpdGNoIChkYXRhWyJjbWQiXSkgew0KICAgICAgICAgICAgICAgIGNhc2UgInVwZGF0ZUxvZyI6DQogICAgICAgICAgICAgICAgICAgIFNFUlZFUlsibG9nIl0gPSByZXNwb25zZVsibG9nIl07DQogICAgICAgICAgICAgICAgICAgIGlmIChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29udGVudF9sb2ciKSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgc2hvd0xvZ3MoZmFsc2UpOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIHJldHVybjsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgICAgICAgICAgU0VSVkVSID0gbmV3IE9iamVjdCgpOw0KICAgICAgICAgICAgICAgICAgICBTRVJWRVIgPSByZXNwb25zZTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBpZiAocmVzcG9uc2UuaGFzT3duUHJvcGVydHkoIm9wZW5NZW51IikpIHsNCiAgICAgICAgICAgICAgICB2YXIgbWVudSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHJlc3BvbnNlWyJvcGVuTWVudSJdKTsNCiAgICAgICAgICAgICAgICBtZW51LmNsaWNrKCk7DQogICAgICAgICAgICAgICAgc2hvd0VsZW1lbnQoInBvcHVwIiwgZmFsc2UpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgaWYgKHJlc3BvbnNlLmhhc093blByb3BlcnR5KCJvcGVuTGluayIpKSB7DQogICAgICAgICAgICAgICAgd2luZG93LmxvY2F0aW9uID0gcmVzcG9uc2VbIm9wZW5MaW5rIl07DQogICAgICAgICAgICB9DQogICAgICAgICAgICBpZiAocmVzcG9uc2UuaGFzT3duUHJvcGVydHkoImFsZXJ0IikpIHsNCiAgICAgICAgICAgICAgICBhbGVydChyZXNwb25zZVsiYWxlcnQiXSk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBpZiAocmVzcG9uc2UuaGFzT3duUHJvcGVydHkoInJlbG9hZCIpKSB7DQogICAgICAgICAgICAgICAgbG9jYXRpb24ucmVsb2FkKCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBpZiAocmVzcG9uc2UuaGFzT3duUHJvcGVydHkoIndpemFyZCIpKSB7DQogICAgICAgICAgICAgICAgY3JlYXRlTGF5b3V0KCk7DQogICAgICAgICAgICAgICAgY29uZmlndXJhdGlvbldpemFyZFtyZXNwb25zZVsid2l6YXJkIl1dLmNyZWF0ZVdpemFyZCgpOw0KICAgICAgICAgICAgICAgIHJldHVybjsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGNyZWF0ZUxheW91dCgpOw0KICAgICAgICB9Ow0KICAgIH0NCn0NCmZ1bmN0aW9uIGdldENvb2tpZShuYW1lKSB7DQogICAgdmFyIHZhbHVlID0gIjsgIiArIGRvY3VtZW50LmNvb2tpZTsNCiAgICB2YXIgcGFydHMgPSB2YWx1ZS5zcGxpdCgiOyAiICsgbmFtZSArICI9Iik7DQogICAgaWYgKHBhcnRzLmxlbmd0aCA9PSAyKQ0KICAgICAgICByZXR1cm4gcGFydHMucG9wKCkuc3BsaXQoIjsiKS5zaGlmdCgpOw0KfQ0K" + webUI["html/img/log.png"] = "iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAAAXNSR0IArs4c6QAAAAlwSFlzAAAsSwAALEsBpT2WqQAABCRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IlhNUCBDb3JlIDUuNC4wIj4KICAgPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIgogICAgICAgICAgICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgICAgICAgICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyI+CiAgICAgICAgIDx0aWZmOlJlc29sdXRpb25Vbml0PjI8L3RpZmY6UmVzb2x1dGlvblVuaXQ+CiAgICAgICAgIDx0aWZmOkNvbXByZXNzaW9uPjU8L3RpZmY6Q29tcHJlc3Npb24+CiAgICAgICAgIDx0aWZmOlhSZXNvbHV0aW9uPjI4ODwvdGlmZjpYUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6T3JpZW50YXRpb24+MTwvdGlmZjpPcmllbnRhdGlvbj4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+Mjg4PC90aWZmOllSZXNvbHV0aW9uPgogICAgICAgICA8ZXhpZjpQaXhlbFhEaW1lbnNpb24+NTA8L2V4aWY6UGl4ZWxYRGltZW5zaW9uPgogICAgICAgICA8ZXhpZjpDb2xvclNwYWNlPjE8L2V4aWY6Q29sb3JTcGFjZT4KICAgICAgICAgPGV4aWY6UGl4ZWxZRGltZW5zaW9uPjUwPC9leGlmOlBpeGVsWURpbWVuc2lvbj4KICAgICAgICAgPGRjOnN1YmplY3Q+CiAgICAgICAgICAgIDxyZGY6QmFnLz4KICAgICAgICAgPC9kYzpzdWJqZWN0PgogICAgICAgICA8eG1wOk1vZGlmeURhdGU+MjAxOC0xMC0xNFQxMToxMDo0MjwveG1wOk1vZGlmeURhdGU+CiAgICAgICAgIDx4bXA6Q3JlYXRvclRvb2w+UGl4ZWxtYXRvciAzLjM8L3htcDpDcmVhdG9yVG9vbD4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgIDwvcmRmOlJERj4KPC94OnhtcG1ldGE+CkP32mEAAANASURBVGgF7ZlPiE1RHMffw1AYhiL5k1HEijJiYaFZiHoyFspW2RFRkkSZGgtFWJIwi9FYmo0VOywkKTbKgjSlWcifRCPX51dv6s2d33md77vvXjfmV9859/7u93x/v98959x73p1KRbAkSargAhgDH0E/qIYkuHYEvAPGvwbmNOEerXM/0Q6BRSFuZj/ix0DaDnvCkGppIucDAe4OhzvkcUO+GaELAf8ux7/b8Zlrr+Pvc3zm6nX8NccXdKmFLHaUPJ/Ruhyu5zNap8Nd6PiCLrUQTyi0Rjy/5/M0Zd+smB7M32XwtgBr07aC6yfSTs7XO77OALfH4VbgHsD/HLytVquJx4nyIdQFBsHftscksK5Z0sGhpuN8Or4Aa5sJFHjtO7G2MjKvvZjN1sglOpSlCMt9LrDZ4S4Hd0Qg24vrK+gAZbPtjMqTdFKhEdkIsYxFWP720JlioUK6pzDL41jtpRIqxOOWxecuB3fhRGT8E85YBK8VygI6GSRTCxlH3TaJgyw4O2678aCxO94LbNPovYDdmOrUukIBN/MqwjJEOwGPOHR31W4VONVCLEBR9lAJpBbSrYhn5K5R+quFnGUOr1ICtMIlxjz6XVb6qot9JeKvCPSAdlQJJHDtd8hOIN0wtRDLxx6Ntr0ulalTq1TJNyYzXUjj3SjD8X87Iva7uR8s5+2bi6FtX1oOgi8g2tSn1g2yPx+t3gIR/c90s1+C1vuO/YkxdWrdjxFtE2dE0VELWaqIZ+QuUfqrhZxmyKUvgEoyE1xizOR4YOI8plXXyAZEbYsyTJvXFsUW+x6wGUSbWogJ237rZHSEgojq1CooLT3MdCH6Pcu3xz8zIq0s9lvc2+sgz6dWH/rnQPB/jlybZGoh99hCHJqk0P6TD0jaI/4b7dVYeXVq2bemokyKpRZiHwWKMimWWshxhryjoEpOKXHUNbIN8WcUc5s2r8Vue7l9oAaiTS3EhDeB6EUYnUlGojq1MobLr3uokB/5hcys7OYWKuRl5nD5Cbi5uYXw0ntPHoay2S8Seuol5RZSJ0r/n/DEc/BdrN9kTZrH7BkwDspgwyQxW6uggU3nHnAXvAG/QZE2SrARsL8hJffwDxM0mNDPvT8IAAAAAElFTkSuQmCC" + webUI["html/img/x_ transparent.png"] = "iVBORw0KGgoAAAANSUhEUgAAAQAAAAEACAYAAABccqhmAAAAAXNSR0IArs4c6QAAAAlwSFlzAAAWJQAAFiUBSVIk8AAAA6ppVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IlhNUCBDb3JlIDUuNC4wIj4KICAgPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIgogICAgICAgICAgICB4bWxuczp0aWZmPSJodHRwOi8vbnMuYWRvYmUuY29tL3RpZmYvMS4wLyIKICAgICAgICAgICAgeG1sbnM6ZXhpZj0iaHR0cDovL25zLmFkb2JlLmNvbS9leGlmLzEuMC8iPgogICAgICAgICA8eG1wOk1vZGlmeURhdGU+MjAxOC0xMS0xNVQxNzoxMTo3NjwveG1wOk1vZGlmeURhdGU+CiAgICAgICAgIDx4bXA6Q3JlYXRvclRvb2w+UGl4ZWxtYXRvciAzLjM8L3htcDpDcmVhdG9yVG9vbD4KICAgICAgICAgPHRpZmY6T3JpZW50YXRpb24+MTwvdGlmZjpPcmllbnRhdGlvbj4KICAgICAgICAgPHRpZmY6Q29tcHJlc3Npb24+NTwvdGlmZjpDb21wcmVzc2lvbj4KICAgICAgICAgPHRpZmY6UmVzb2x1dGlvblVuaXQ+MjwvdGlmZjpSZXNvbHV0aW9uVW5pdD4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+MTQ0PC90aWZmOllSZXNvbHV0aW9uPgogICAgICAgICA8dGlmZjpYUmVzb2x1dGlvbj4xNDQ8L3RpZmY6WFJlc29sdXRpb24+CiAgICAgICAgIDxleGlmOlBpeGVsWERpbWVuc2lvbj4yNTY8L2V4aWY6UGl4ZWxYRGltZW5zaW9uPgogICAgICAgICA8ZXhpZjpDb2xvclNwYWNlPjE8L2V4aWY6Q29sb3JTcGFjZT4KICAgICAgICAgPGV4aWY6UGl4ZWxZRGltZW5zaW9uPjI1NjwvZXhpZjpQaXhlbFlEaW1lbnNpb24+CiAgICAgIDwvcmRmOkRlc2NyaXB0aW9uPgogICA8L3JkZjpSREY+CjwveDp4bXBtZXRhPgoeXQb1AAAaJElEQVR4Ae2dCZhcVZXHz+1KSFiGkISkqyIoOgI68EkgOBNkEcQRlIFRZDGABAQEhInGbxw+RUZRNhWRLawDYR0GHAaHUVkGvwGURUcgwIiAOGxjV3UHAslHQrbuM/9TlQ6d7qruWt527/u/7+uuqvvucu7vvnveuffde54IDxIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARLwiIDzQtayHi0q23shaydCOnlISu7nnWThRdrFOkPWyCleyNqJkF1yjhTd8k6yiDvtuLgLiCR/lVnIZ14keWU7k2Xyuu4oU92r2RazQ+nWypXI4W86zCXbyZ28KBvJ97MtpEhX1gWsyleS08TJU17I2omQKpvLarmqkywyn7ZHPw9rLvTOvwbX6xEyxS3Nenv4oQCcWwmQc/D3dtaBdiyfyv5S1mM7zieLGSzWEsS6KIuiRSzTGTD9H404z1iy80MBWNVL7hn8nx8LhaxlqnKBvKbvyppYHctTM/0nd5xPljNwcrcUs2/6DyL0RwGYxDOcjR3vGBQ+4M8tMElmdQ3n6NGjYPofGE6F6tTESRmm/1xxTuuczWSQH08BhqJbqlNkuTyJoK2GBgf53S6mkrvB+7qZ6b9Gfod6hHv3dzKAGbX9pNvd51N7+WUBGNlJbgm07FH4G/AJdFuyqlwotXFzW8kzk2itXAFZwu38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" + webUI["html/js/authentication_ts.js"] = "ZnVuY3Rpb24gbG9naW4oKSB7DQogICAgdmFyIGVyciA9IGZhbHNlOw0KICAgIHZhciBkYXRhID0gbmV3IE9iamVjdCgpOw0KICAgIHZhciBkaXYgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29udGVudCIpOw0KICAgIHZhciBmb3JtID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImF1dGhlbnRpY2F0aW9uIik7DQogICAgdmFyIGlucHV0cyA9IGRpdi5nZXRFbGVtZW50c0J5VGFnTmFtZSgiSU5QVVQiKTsNCiAgICBjb25zb2xlLmxvZyhpbnB1dHMpOw0KICAgIGZvciAodmFyIGkgPSBpbnB1dHMubGVuZ3RoIC0gMTsgaSA+PSAwOyBpLS0pIHsNCiAgICAgICAgdmFyIGtleSA9IGlucHV0c1tpXS5uYW1lOw0KICAgICAgICB2YXIgdmFsdWUgPSBpbnB1dHNbaV0udmFsdWU7DQogICAgICAgIGlmICh2YWx1ZS5sZW5ndGggPT0gMCkgew0KICAgICAgICAgICAgaW5wdXRzW2ldLnN0eWxlLmJvcmRlckNvbG9yID0gInJlZCI7DQogICAgICAgICAgICBlcnIgPSB0cnVlOw0KICAgICAgICB9DQogICAgICAgIGRhdGFba2V5XSA9IHZhbHVlOw0KICAgIH0NCiAgICBpZiAoZXJyID09IHRydWUpIHsNCiAgICAgICAgZGF0YSA9IG5ldyBPYmplY3QoKTsNCiAgICAgICAgcmV0dXJuOw0KICAgIH0NCiAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgiY29uZmlybSIpKSB7DQogICAgICAgIGlmIChkYXRhWyJjb25maXJtIl0gIT0gZGF0YVsicGFzc3dvcmQiXSkgew0KICAgICAgICAgICAgYWxlcnQoInNkYWZzZCIpOw0KICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Bhc3N3b3JkJykuc3R5bGUuYm9yZGVyQ29sb3IgPSAicmVkIjsNCiAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjb25maXJtJykuc3R5bGUuYm9yZGVyQ29sb3IgPSAicmVkIjsNCiAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJlcnIiKS5pbm5lckhUTUwgPSAie3suYWNjb3VudC5mYWlsZWR9fSI7DQogICAgICAgICAgICByZXR1cm47DQogICAgICAgIH0NCiAgICB9DQogICAgY29uc29sZS5sb2coZGF0YSk7DQogICAgZm9ybS5zdWJtaXQoKTsNCn0NCg==" + webUI["html/css/base.css"] = "KiB7DQogIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTsNCiAgLW1vei1hcHBlYXJhbmNlOiBub25lOw0KICAtbXMtYXBwZWFyYW5jZTogbm9uZTsNCiAgZm9udC1mYW1pbHk6ICJBcmlhbCIsIHNhbnMtc2VyaWY7DQogIGxldHRlci1zcGFjaW5nOiAycHg7IA0KfQ0KDQovKg0KOjotd2Via2l0LXNjcm9sbGJhciB7IA0KICAgIGRpc3BsYXk6IG5vbmU7IA0KfQ0KKi8NCg0KOjotd2Via2l0LXNjcm9sbGJhciB7DQogIHdpZHRoOiAxMnB4Ow0KICBoZWlnaHQ6IDEycHg7DQp9DQoNCiANCjo6LXdlYmtpdC1zY3JvbGxiYXItdHJhY2sgew0KICAtd2Via2l0LWJveC1zaGFkb3c6IGluc2V0IDAgMCA2cHggcmdiYSgwLDAsMCwwLjMpOyANCiAgYm9yZGVyLXJhZGl1czogNXB4Ow0KICAgIA0KfQ0KIA0KOjotd2Via2l0LXNjcm9sbGJhci10aHVtYiB7DQogIGJvcmRlci1yYWRpdXM6IDVweDsNCiAgLXdlYmtpdC1ib3gtc2hhZG93OiBpbnNldCAwIDAgNnB4IHJnYmEoMCwgMCwgMCwwLjYpOyANCiAgYmFja2dyb3VuZC1jb2xvcjogIzQ0NDsNCn0NCg0KOjotd2Via2l0LXNjcm9sbGJhci10aHVtYjpob3ZlciB7DQogIGJhY2tncm91bmQ6ICMzMzM7IA0KfQ0KDQo6Oi13ZWJraXQtc2Nyb2xsYmFyLWNvcm5lciB7IA0KICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsgDQp9DQoNCmEgew0KICBjb2xvcjogIzAwRTZGRjsNCn0NCg0KaHRtbCwgYm9keSB7DQogIGNvbG9yOiAjZmZmOw0KICBtYXJnaW46IDBweCBhdXRvOw0KICBoZWlnaHQ6IDEwMCU7DQogIGZvbnQtc2l6ZTogMTRweDsNCn0NCg0KaDIgew0KICBmb250LXNpemU6IDI0cHg7DQogIGxldHRlci1zcGFjaW5nOiAycHg7DQp9DQoNCmgzIHsNCiAgZm9udC1zaXplOiAyMnB4Ow0KICBsZXR0ZXItc3BhY2luZzogMXB4Ow0KfQ0KDQpoNCB7DQogIGZvbnQtc2l6ZTogMjBweDsNCiAgbGV0dGVyLXNwYWNpbmc6IDFweDsNCiAgbGluZS1oZWlnaHQ6IDEuNWVtOw0KDQp9DQoNCmg1IHsNCiAgZm9udC1zaXplOiAxNnB4Ow0KICBsZXR0ZXItc3BhY2luZzogMXB4Ow0KICBsaW5lLWhlaWdodDogMS4yZW07DQogIG1hcmdpbjogMjVweCAwcHggMTBweCAwcHg7DQp9DQoNCmhyIHsNCiAgYm9yZGVyOiAwOw0KICBoZWlnaHQ6IDFweDsNCiAgYmFja2dyb3VuZDogIzMzMzsNCiAgbWFyZ2luOiAxMHB4IDBweDsNCn0NCg0KcCB7DQogIG1hcmdpbjogMnB4Ow0KICBwYWRkaW5nOiAycHggNXB4Ow0KfQ0KDQpwcmUgew0KICBtYXJnaW46IDBweCAwcHggNXB4IDBweDsNCiAgZm9udC1zaXplOiAxMnB4Ow0KICBjb2xvcjogI2RkZDsNCiAgbGV0dGVyLXNwYWNpbmc6IDFweDsNCiAgd2hpdGUtc3BhY2U6IHByZS13cmFwOw0KICBmb250LWZhbWlseTogbW9ub3NwYWNlOyANCiAgZm9udC1zaXplOiAxMnB4OyANCiAgZm9udC1zdHlsZTogbm9ybWFsOyANCiAgZm9udC12YXJpYW50OiBub3JtYWw7IA0KICBsaW5lLWhlaWdodDogMS42ZW07IA0KfQ0KDQpsYWJlbCB7DQogIG1hcmdpbi1ib3R0b206IDIwcHg7DQogIGRpc3BsYXk6IGJsb2NrOw0KfQ0KDQpsaSB7DQogIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTsNCiAgYmFja2dyb3VuZC1jb2xvcjogIzExMTsNCiAgcGFkZGluZzogMTBweCAyMHB4Ow0KICBjdXJzb3I6IHBvaW50ZXI7DQogIGJvcmRlci1sZWZ0OiBzb2xpZCAycHggIzExMTsNCiAgdHJhbnNpdGlvbjogYWxsIDAuMzsNCn0NCg0KbGk6aG92ZXIgew0KICBib3JkZXItY29sb3I6ICMwMEU2RkYNCn0NCg0Kc2VsZWN0IHsNCiAgY3Vyc29yOiBwb2ludGVyOw0KICB3aWR0aDogY2FsYygxMDAlICsgMnB4KTsNCiAgYm9yZGVyOiBzb2xpZCAwcHggIzAwRTZGRjsNCiAgYm9yZGVyLXJhZGl1czogMHB4Ow0KICBvdXRsaW5lOiBub25lOw0KICBjb2xvcjogI2ZmZjsNCiAgcGFkZGluZzogOXB4IDEwcHg7DQogIGRpc3BsYXk6YmxvY2s7DQogIGJhY2tncm91bmQtY29sb3I6ICMzMzM7DQogIGZvbnQtc2l6ZTogMTRweDsNCiAgbWFyZ2luOiA1cHggMHB4IDVweCAwcHg7DQp9DQoNCnNlbGVjdDpmb2N1cyB7DQogIG91dGxpbmU6IG5vbmU7DQp9DQoNCmlucHV0IHsNCiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lOw0KICBtYXJnaW46IDVweCAwcHg7DQogIHBhZGRpbmc6IDIuNXB4IDEwcHg7DQogIG91dGxpbmU6IG5vbmU7DQogIGZvbnQtc2l6ZTogMTRweDsNCn0NCg0KaW5wdXRbdHlwZT1idXR0b25dLCBpbnB1dFt0eXBlPXN1Ym1pdF0gew0KICBjdXJzb3I6IHBvaW50ZXI7DQogIGJhY2tncm91bmQtY29sb3I6ICMwMDA7DQogIG1hcmdpbjogMTBweCAxMHB4Ow0KICBwYWRkaW5nOiAxMHB4IDI1cHg7DQogIGJvcmRlcjogc29saWQgMHB4Ow0KICBib3JkZXItY29sb3I6ICMwMDA7DQogIGJvcmRlci1yYWRpdXM6IDNweDsNCiAgb3V0bGluZTogbm9uZTsNCiAgY29sb3I6ICNmZmY7DQp9DQoNCmlucHV0W3R5cGU9YnV0dG9uXTpmb2N1cyB7IA0KICAgb3V0bGluZTogbm9uZTsNCn0NCg0KaW5wdXRbdHlwZT1idXR0b25dOmhvdmVyIHsNCiAgYmFja2dyb3VuZC1jb2xvcjogIzAwRTZGRjsNCiAgY29sb3I6ICMwMDA7DQp9DQoNCmlucHV0W3R5cGU9YnV0dG9uXTpob3Zlci5kZWxldGUgIHsNCiAgYmFja2dyb3VuZC1jb2xvcjogcmVkOw0KICBjb2xvcjogI2ZmZjsNCn0NCg0KaW5wdXRbdHlwZT10ZXh0XSwgaW5wdXRbdHlwZT1zZWFyY2hdLCBpbnB1dFt0eXBlPXBhc3N3b3JkXSB7DQogIGNvbG9yOiAjZmZmOw0KICB3aWR0aDogLXdlYmtpdC1jYWxjKDEwMCUgLSAwcHgpOw0KICB3aWR0aDogLW1vei1jYWxjKDEwMCUgLSAwcHgpOw0KICB3aWR0aDogY2FsYygxMDAlIC0gMHB4KTsNCiAgb3V0bGluZTogbm9uZTsNCiAgYm9yZGVyOiBzb2xpZCAxcHggdHJhbnNwYXJlbnQ7DQogIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50Ow0KICBib3JkZXItYm90dG9tLWNvbG9yOiAjNTU1Ow0KICBib3JkZXItcmFkaXVzOiAwcHg7DQogIHBhZGRpbmc6IDhweCAxMHB4Ow0KfQ0KDQppbnB1dFt0eXBlPSJjaGVja2JveCJdIHsNCiAgYm9yZGVyOiBzb2xpZCAxcHggIzAwRTZGRjsNCiAgYmFja2dyb3VuZC1jb2xvcjogIzMzMzsNCiAgaGVpZ2h0OiAyNXB4Ow0KICB3aWR0aDogMjVweDsNCiAgY3Vyc29yOiBwb2ludGVyOw0KICAvKg0KICAtd2Via2l0LWFwcGVhcmFuY2U6IGNoZWNrYm94Ow0KICAqLw0KfQ0KDQppbnB1dFt0eXBlPSJjaGVja2JveCJdOmNoZWNrZWQgew0KICBjb2xvcjogI2ZmZjsNCiAgYmFja2dyb3VuZC1jb2xvcjogIzAwRTZGRjsNCiAgLypkaXNwbGF5OiBpbmxpbmUtYmxvY2s7Ki8NCn0NCg0KaW5wdXRbdHlwZT0iY2hlY2tib3giXTpiZWZvcmUgew0KICBwb3NpdGlvbjogaW5pdGlhbDsNCiAgbGVmdDogMHB4Ow0KICBtYXJnaW4tbGVmdDogLTRweDsNCiAgY29udGVudDogIiAiOw0KfQ0KDQppbnB1dFt0eXBlPSJjaGVja2JveCJdOmNoZWNrZWQ6YmVmb3JlIHsNCiAgcG9zaXRpb246IGluaXRpYWw7DQogIGxlZnQ6IDBweDsNCiAgbWFyZ2luLWxlZnQ6IC0zcHg7DQogIGNvbnRlbnQ6ICLinJMiOw0KICBjb2xvcjogIzAwMDsNCn0NCg0KDQppbnB1dFt0eXBlPWJ1dHRvbl0uY2FuY2VsIHsNCiAgDQogIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50Ow0KICBib3JkZXItY29sb3I6IHJlZDsNCn0NCg0KaW5wdXRbdHlwZT1idXR0b25dLnNhdmV7DQogIGJhY2tncm91bmQtY29sb3I6ICMxMTE7DQogIGZsb2F0OiByaWdodDsNCn0NCg0KDQppbnB1dFt0eXBlPWJ1dHRvbl0uYmxhY2ssIGlucHV0W3R5cGU9c3VibWl0XS5ibGFja3sNCiAgYmFja2dyb3VuZC1jb2xvcjogIzAwMDsNCiAgYm9yZGVyLWNvbG9yOiAjMDAwOw0KfQ0KDQppbnB1dFt0eXBlPWJ1dHRvbl0uY2VudGVyew0KICBtYXJnaW4tcmlnaHQ6IGF1dG87DQogIG1hcmdpbi1sZWZ0OiBhdXRvOw0KICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDAwOw0KICBib3JkZXItY29sb3I6ICMwMDA7DQp9DQoNCi5wb2ludGVyIHsNCiAgY3Vyc29yOiBwb2ludGVyOw0KfQ0KDQoucG9pbnRlcjpob3ZlciB7DQogIGNvbG9yOiAjMDBFNkZGOw0KICBjdXJzb3I6IHBvaW50ZXI7DQp9DQoNCi5zb3J0VGhpcyB7DQogIGNvbG9yOiAjMDBFNkZGOw0KfQ0KDQoudzQwcHggew0KICBtYXgtd2lkdGg6IDQwcHg7DQp9DQoNCi53NTBweCB7DQogIG1heC13aWR0aDogNTBweDsNCn0NCg0KLnc4MHB4IHsNCiAgbWF4LXdpZHRoOiA4MHB4Ow0KfQ0KDQoudzE1MHB4IHsNCiAgbWF4LXdpZHRoOiAxNTBweDsNCn0NCg0KLncyMDBweCB7DQogIG1heC13aWR0aDogMjAwcHg7DQogIG1pbi13aWR0aDogMTAwcHg7DQogIHdpZHRoOiAyMDBweDsNCiAgb3ZlcmZsb3cteDogaGlkZGVuOw0KICB3aGl0ZS1zcGFjZTogbm93cmFwOw0KICBvdmVyZmxvdzogaGlkZGVuOw0KICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsNCn0NCg0KLnczMDBweCB7DQogIG1heC13aWR0aDogMzAwcHg7DQp9DQoNCi53MjIwcHggew0KICBtYXgtd2lkdGg6IDIyMHB4Ow0KICBjdXJzb3I6IGFsaWFzOw0KfQ0KDQouZm9vdGVyIHsNCiAgZm9udC1zaXplOiAxMHB4Ow0KfQ0KDQouY2VudGVyIHsNCiAgdGV4dC1hbGlnbjogY2VudGVyOw0KfQ0KDQouc2NyZWVuTG9nSGlkZGVuIHsNCiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMHB4LCAtMTEwcHgpOw0KfQ0KDQouYm9yZGVyU3BhY2Ugew0KICBtYXJnaW4tYm90dG9tOiAzMHB4Ow0KfQ0KDQouYmxvY2sgew0KDQp9DQoNCi5ub25lIHsNCiAgZGlzcGxheTogbm9uZTsNCn0NCg0KDQoubm90VmlzaWJsZSB7DQogIGhlaWdodDogMHB4Ow0KICBkaXNwbGF5OiBub25lOw0KICBvcGFjaXR5OiAwOw0KICBib3JkZXItYm90dG9tOiAjMDAwIHNvbGlkIDBweDsNCiAgDQp9DQoNCi52aXNpYmxlIHsNCiAgb3BhY2l0eTogMTsNCiAgZGlzcGxheTogYmxvY2s7DQogIGJvcmRlci1ib3R0b206ICM0NDQgc29saWQgMXB4OyANCiAgcGFkZGluZzogMTBweDsNCn0NCg0KLmZsb2F0UmlnaHQgew0KICBmbG9hdDogcmlnaHQ7DQp9DQoNCi5mbG9hdExlZnQgew0KICBmbG9hdDogbGVmdDsNCn0NCg0KLm1lbnUtYWN0aXZlIHsNCiAgYmFja2dyb3VuZC1jb2xvcjogIzAwRTZGRjsNCn0NCg0KLm1lbnUtbm90QWN0aXZlIHsNCiAgDQp9DQoNCiNicmFuY2ggew0KICBkaXNwbGF5OiB0YWJsZTsNCiAgbWFyZ2luOiBhdXRvOw0KICBjb2xvcjogcmVkOw0KfQ0KDQojaW50ZXJhY3Rpb24gew0KICBtYXJnaW4tYm90dG9tOiAxMDBweDsNCiAgdGV4dC1hbGlnbjogY2VudGVyOw0KICBib3JkZXItYm90dG9tOiBzb2xpZCAwcHggIzc3NzsNCn0NCg0KDQouaGFsZiB7DQogIGRpc3BsYXk6IGJsb2NrOw0KICB3aWR0aDogNDUlOw0KfQ0KDQoubWVudSB7DQogIGJvcmRlcjogc29saWQgMXB4ICMwMEU2RkY7DQp9DQoNCi5pbmZvTXNnIHsNCiAgY29sb3I6ICNhYWE7DQp9DQoNCi5lcnJvck1zZyB7DQogIGNvbG9yOiByZWQ7DQp9DQoNCi53YXJuaW5nTXNnIHsNCiAgY29sb3I6IHllbGxvdzsNCn0NCg0KLmRlYnVnTXNnIHsNCiAgY29sb3I6IG1hZ2VudGE7DQp9DQoNCi5OZXdzLCAuTW92aWUsIC5TZXJpZXMsIC5TcG9ydHMsIC5LaWRzIHsNCiAgYm9yZGVyLWxlZnQ6IHNvbGlkIDJweA0KfQ0KDQouTmV3cyB7DQogIGJvcmRlci1jb2xvcjogdG9tYXRvDQp9DQoNCi5Nb3ZpZSB7DQogIGJvcmRlci1jb2xvcjogcm95YWxibHVlOw0KfQ0KDQouU2VyaWVzIHsNCiAgYm9yZGVyLWNvbG9yOiBnb2xkOw0KfQ0KDQouU3BvcnRzIHsNCiAgYm9yZGVyLWNvbG9yOiB5ZWxsb3dncmVlbjsNCn0NCg0KLktpZHMgew0KICBib3JkZXItY29sb3I6IG1lZGl1bXB1cnBsZTsNCn0NCg0KLyogTG9hZGluZyAqLw0KI2xvYWRpbmcgew0KICBsZWZ0OiAwcHg7DQogIHRvcDogMHB4Ow0KICB6LWluZGV4OiAxMDAwMDsNCiAgcG9zaXRpb246IGFic29sdXRlOw0KICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsMCwwLCAwLjgpOw0KICBtYXJnaW46IGF1dG87DQogIHdpZHRoOiAxMDAlOw0KICBoZWlnaHQ6IDEwMCU7DQp9DQoNCg0KLmxvYWRlciB7DQogIGJvcmRlcjogNXB4IHNvbGlkIHRyYW5zcGFyZW50Ow0KICBib3JkZXItcmFkaXVzOiA1MCU7DQogIGJvcmRlci10b3A6IDVweCBzb2xpZCAjMDBFNkZGOw0KICBib3JkZXItYm90dG9tOiA1cHggc29saWQgIzAwRTZGRjsNCiAgd2lkdGg6IDUwcHg7DQogIGhlaWdodDogNTBweDsNCiAgLXdlYmtpdC1hbmltYXRpb246IHNwaW4gMS4ycyBsaW5lYXIgaW5maW5pdGU7DQogIGFuaW1hdGlvbjogc3BpbiAxLjJzIGxpbmVhciBpbmZpbml0ZTsNCg0KICBwb3NpdGlvbjogZml4ZWQ7DQogIG1hcmdpbjogYXV0bzsNCg0KICB0b3A6IDA7DQogIHJpZ2h0OiAwOw0KICBib3R0b206IDA7DQogIGxlZnQ6IDA7DQogIA0KfQ0KDQpALXdlYmtpdC1rZXlmcmFtZXMgc3BpbiB7DQogIDAlIHsgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTsgfQ0KICAxMDAlIHsgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpOyB9DQp9DQoNCkBrZXlmcmFtZXMgc3BpbiB7DQogIDAlIHsgdHJhbnNmb3JtOiByb3RhdGUoMGRlZyk7IH0NCiAgMTAwJSB7IHRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7IH0NCn0NCg==" webUI["html/img/settings.png"] = "iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAAAXNSR0IArs4c6QAAAAlwSFlzAAAsSwAALEsBpT2WqQAABCRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IlhNUCBDb3JlIDUuNC4wIj4KICAgPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIgogICAgICAgICAgICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgICAgICAgICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyI+CiAgICAgICAgIDx0aWZmOlJlc29sdXRpb25Vbml0PjI8L3RpZmY6UmVzb2x1dGlvblVuaXQ+CiAgICAgICAgIDx0aWZmOkNvbXByZXNzaW9uPjU8L3RpZmY6Q29tcHJlc3Npb24+CiAgICAgICAgIDx0aWZmOlhSZXNvbHV0aW9uPjI4ODwvdGlmZjpYUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6T3JpZW50YXRpb24+MTwvdGlmZjpPcmllbnRhdGlvbj4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+Mjg4PC90aWZmOllSZXNvbHV0aW9uPgogICAgICAgICA8ZXhpZjpQaXhlbFhEaW1lbnNpb24+NTA8L2V4aWY6UGl4ZWxYRGltZW5zaW9uPgogICAgICAgICA8ZXhpZjpDb2xvclNwYWNlPjE8L2V4aWY6Q29sb3JTcGFjZT4KICAgICAgICAgPGV4aWY6UGl4ZWxZRGltZW5zaW9uPjUwPC9leGlmOlBpeGVsWURpbWVuc2lvbj4KICAgICAgICAgPGRjOnN1YmplY3Q+CiAgICAgICAgICAgIDxyZGY6QmFnLz4KICAgICAgICAgPC9kYzpzdWJqZWN0PgogICAgICAgICA8eG1wOk1vZGlmeURhdGU+MjAxOC0wOC0xMFQxODowODo4OTwveG1wOk1vZGlmeURhdGU+CiAgICAgICAgIDx4bXA6Q3JlYXRvclRvb2w+UGl4ZWxtYXRvciAzLjM8L3htcDpDcmVhdG9yVG9vbD4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgIDwvcmRmOlJERj4KPC94OnhtcG1ldGE+Ckxt87EAAAS7SURBVGgFzZpdiFVVGIbn5N+IMgVhaRLqWI7mQIJoIVRgOhQZNDAhWcbcVuPV3BRE6I14440iQQSaN0p6kz8zI0k5inUhZSSaYOVYODMo5eiMOOPf+LzH2cPMPmvttdbe53jOBy9rr2+938/ae51vr733qaoqgQwPD68B/wDJfXAP3AE94JMShCy+SxJ9CvSDJFlU7MiPFdsh/hrBdIffBsd48HApJjLPI4tnPThBlFJMZI5HBuWZCIt9AmgEzeAJR6JzHeMadnKI8wbYCz4Fkz18JlNwMgf8BCL5j4O3bVaMdUfEhPZqgv1U7HbEbDvoT7HZOPUYNwAlHheV09a4A3RTgMqtj9QY7JdgeM5i3I4+fDIYrQeq/UnyNYOTlBDtS+BwEjk2doz+KyO2OY5bwVCME+/qylTHT4C1D3k+uB33Yul3ov/eMuajlu1RH+II5wtT4hNNSnQ6U/kzbRkfq351bCfF8apAm7kmvq38njWRK0S305SHcSK5XO4U5O9MBmXWbSe3E6YccialdKzH2TTnQEF10XgZ5DdivsxEhkyxjVdERAwu03xmMiqD7hYx19km4cyHq6KyeHKkWpSz+ciVrHVpRYZk/wLHp0H2bULkNKzt4Eq86TKxLq3IECf6nXwV9QPbAfjHQSfoD7SN6L63gYhvbrkiTwKf/dPYpbdPVxKMnigdg0VAG8FQye8AzBl6aIk2A+wPiNoHd63LNZx3wbUAvz/CfTzJb/43AmkGpLfAi0DPE/NALQgtve+xFPdi5xRiNkHa5ySOJ/TR7RrBJdqL4AAxL+p+8ToYAFklNCnF3pM1KPba2L6v8vons5oPsko9ZyZoa0PsOoKezxoY+y5N5DYHWSvDTXzUMJH7IUkRW0tbyyV0CcfDDKmqDMe1KfqnQyehGNgo9q8p4hWYFGsiBY4fsSK/BRkkaPgj5PhMy720BnVFesfnlKo3Das0bw8XYJf196GEuzWRLSDoRypLg2w06FyqTS6Cx7iK1eeqGqrnugmuBgvB8+A5UAuqQYiU+oZ4h2T+BV3gAlDp/pai0U1rFpVGMAv8AHzFd4vShMOQLcoB+DNB/sSbM3ZoMV4BQsW0adSJSbNp1Hu1mY40/YZxpPdJaUSfFzrBMXAjjQNsdvll6cHCWVvKJIphdhcny11pqmolCk5aIDif0BKdZBucgPlO8kh/r8O4HtwClSCbk86HtQqQuUrvKVCf5OARjt0lll4H/WKKmbS0tmJQKZNQ7nq9+w0n2LhTN04E8jKMPpZ1hcli8tGTZYEYJwJrZQGzchTGz3a2ifwdkHc73LYAfpx6DcWXQK1LeiDsdpFGx7UOwUGQJKpmGyIjjvWh50iSQWzsZ/ofgvx+jnYp+B/YpJcB7QXDBKPJ4JDF6+/oCwoBuhoL36R+Jp4RJH16u2IgaxJpHhMehsBY3wTjV2YbOuuumLHrwCW6msbSj74O/DHGgV4Ohl8Jw1nSMmsB+tL6Wnw83odzBrhEr2GtgvFE8A74ADxtJZZygMC25cjQqBwqdg62qpUlziUP45Cq6OGuqqoUE/FJ8i+v7MpJYvEsHl1A5gNty2vLmaN3bBLdAvqB3svqXxLRvyEuc9zs7SiA+ACpw05pJx8SoAAAAABJRU5ErkJggg==" webUI["html/js/settings_ts.js"] = "Y2xhc3MgU2V0dGluZ3NDYXRlZ29yeSB7DQogICAgY29uc3RydWN0b3IoKSB7DQogICAgICAgIHRoaXMuRG9jdW1lbnRJRCA9ICJjb250ZW50X3NldHRpbmdzIjsNCiAgICB9DQogICAgY3JlYXRlQ2F0ZWdvcnlIZWFkbGluZSh2YWx1ZSkgew0KICAgICAgICB2YXIgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIkg0Iik7DQogICAgICAgIGVsZW1lbnQuaW5uZXJIVE1MID0gdmFsdWU7DQogICAgICAgIHJldHVybiBlbGVtZW50Ow0KICAgIH0NCiAgICBjcmVhdGVIUigpIHsNCiAgICAgICAgdmFyIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJIUiIpOw0KICAgICAgICByZXR1cm4gZWxlbWVudDsNCiAgICB9DQogICAgY3JlYXRlU2V0dGluZ3Moc2V0dGluZ3NLZXkpIHsNCiAgICAgICAgdmFyIHNldHRpbmcgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJUUiIpOw0KICAgICAgICB2YXIgY29udGVudCA9IG5ldyBQb3B1cENvbnRlbnQoKTsNCiAgICAgICAgdmFyIGRhdGEgPSBTRVJWRVJbInNldHRpbmdzIl1bc2V0dGluZ3NLZXldOw0KICAgICAgICBzd2l0Y2ggKHNldHRpbmdzS2V5KSB7DQogICAgICAgICAgICAvLyBUZXh0ZWluZ2FiZW4NCiAgICAgICAgICAgIGNhc2UgInVwZGF0ZSI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy51cGRhdGUudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCAidXBkYXRlIiwgZGF0YS50b1N0cmluZygpKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnNldHRpbmdzLnVwZGF0ZS5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiYmFja3VwLnBhdGgiOg0KICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MuYmFja3VwUGF0aC50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsICJiYWNrdXAucGF0aCIsIGRhdGEpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3suc2V0dGluZ3MuYmFja3VwUGF0aC5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAidGVtcC5wYXRoIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLnRlbXBQYXRoLnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgInRlbXAucGF0aCIsIGRhdGEpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3suc2V0dGluZ3MudG1wUGF0aC5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAidXNlci5hZ2VudCI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy51c2VyQWdlbnQudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCAidXNlci5hZ2VudCIsIGRhdGEpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3suc2V0dGluZ3MudXNlckFnZW50LnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJidWZmZXIudGltZW91dCI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5idWZmZXJUaW1lb3V0LnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgImJ1ZmZlci50aW1lb3V0IiwgZGF0YSk7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5zZXR0aW5ncy5idWZmZXJUaW1lb3V0LnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJmZm1wZWcucGF0aCI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5mZm1wZWdQYXRoLnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgImZmbXBlZy5wYXRoIiwgZGF0YSk7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5zZXR0aW5ncy5mZm1wZWdQYXRoLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJmZm1wZWcub3B0aW9ucyI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5mZm1wZWdPcHRpb25zLnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgImZmbXBlZy5vcHRpb25zIiwgZGF0YSk7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5zZXR0aW5ncy5mZm1wZWdPcHRpb25zLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ2bGMucGF0aCI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy52bGNQYXRoLnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgInZsYy5wYXRoIiwgZGF0YSk7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5zZXR0aW5ncy52bGNQYXRoLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ2bGMub3B0aW9ucyI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy52bGNPcHRpb25zLnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgInZsYy5vcHRpb25zIiwgZGF0YSk7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5zZXR0aW5ncy52bGNPcHRpb25zLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAvLyBDaGVja2JveGVuDQogICAgICAgICAgICBjYXNlICJhdXRoZW50aWNhdGlvbi53ZWIiOg0KICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MuYXV0aGVudGljYXRpb25XRUIudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goc2V0dGluZ3NLZXkpOw0KICAgICAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImF1dGhlbnRpY2F0aW9uLnBtcyI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5hdXRoZW50aWNhdGlvblBNUy50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChzZXR0aW5nc0tleSk7DQogICAgICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGE7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiYXV0aGVudGljYXRpb24ubTN1IjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmF1dGhlbnRpY2F0aW9uTTNVLnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KHNldHRpbmdzS2V5KTsNCiAgICAgICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJhdXRoZW50aWNhdGlvbi54bWwiOg0KICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MuYXV0aGVudGljYXRpb25YTUwudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goc2V0dGluZ3NLZXkpOw0KICAgICAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImF1dGhlbnRpY2F0aW9uLmFwaSI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5hdXRoZW50aWNhdGlvbkFQSS50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChzZXR0aW5nc0tleSk7DQogICAgICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGE7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiZmlsZXMudXBkYXRlIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmZpbGVzVXBkYXRlLnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KHNldHRpbmdzS2V5KTsNCiAgICAgICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJjYWNoZS5pbWFnZXMiOg0KICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MuY2FjaGVJbWFnZXMudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goc2V0dGluZ3NLZXkpOw0KICAgICAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInhlcGcucmVwbGFjZS5taXNzaW5nLmltYWdlcyI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5yZXBsYWNlRW1wdHlJbWFnZXMudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goc2V0dGluZ3NLZXkpOw0KICAgICAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInh0ZXZlQXV0b1VwZGF0ZSI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy54dGV2ZUF1dG9VcGRhdGUudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goc2V0dGluZ3NLZXkpOw0KICAgICAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImFwaSI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5hcGkudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goc2V0dGluZ3NLZXkpOw0KICAgICAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIC8vIFNlbGVjdA0KICAgICAgICAgICAgY2FzZSAidHVuZXIiOg0KICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MudHVuZXIudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciB0ZXh0ID0gbmV3IEFycmF5KCk7DQogICAgICAgICAgICAgICAgdmFyIHZhbHVlcyA9IG5ldyBBcnJheSgpOw0KICAgICAgICAgICAgICAgIGZvciAodmFyIGkgPSAxOyBpIDw9IDEwMDsgaSsrKSB7DQogICAgICAgICAgICAgICAgICAgIHRleHQucHVzaChpKTsNCiAgICAgICAgICAgICAgICAgICAgdmFsdWVzLnB1c2goaSk7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIHZhciBzZWxlY3QgPSBjb250ZW50LmNyZWF0ZVNlbGVjdCh0ZXh0LCB2YWx1ZXMsIGRhdGEsIHNldHRpbmdzS2V5KTsNCiAgICAgICAgICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQoc2VsZWN0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImVwZ1NvdXJjZSI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5lcGdTb3VyY2UudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciB0ZXh0ID0gWyJQTVMiLCAiWEVQRyJdOw0KICAgICAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBbIlBNUyIsICJYRVBHIl07DQogICAgICAgICAgICAgICAgdmFyIHNlbGVjdCA9IGNvbnRlbnQuY3JlYXRlU2VsZWN0KHRleHQsIHZhbHVlcywgZGF0YSwgc2V0dGluZ3NLZXkpOw0KICAgICAgICAgICAgICAgIHNlbGVjdC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChzZWxlY3QpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiYmFja3VwLmtlZXAiOg0KICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MuYmFja3VwS2VlcC50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIHRleHQgPSBbIjUiLCAiMTAiLCAiMjAiLCAiMzAiLCAiNDAiLCAiNTAiXTsNCiAgICAgICAgICAgICAgICB2YXIgdmFsdWVzID0gWyI1IiwgIjEwIiwgIjIwIiwgIjMwIiwgIjQwIiwgIjUwIl07DQogICAgICAgICAgICAgICAgdmFyIHNlbGVjdCA9IGNvbnRlbnQuY3JlYXRlU2VsZWN0KHRleHQsIHZhbHVlcywgZGF0YSwgc2V0dGluZ3NLZXkpOw0KICAgICAgICAgICAgICAgIHNlbGVjdC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChzZWxlY3QpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiYnVmZmVyLnNpemUua2IiOg0KICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MuYnVmZmVyU2l6ZS50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIHRleHQgPSBbIjAuNSBNQiIsICIxIE1CIiwgIjIgTUIiLCAiMyBNQiIsICI0IE1CIiwgIjUgTUIiLCAiNiBNQiIsICI3IE1CIiwgIjggTUIiXTsNCiAgICAgICAgICAgICAgICB2YXIgdmFsdWVzID0gWyI1MTIiLCAiMTAyNCIsICIyMDQ4IiwgIjMwNzIiLCAiNDA5NiIsICI1MTIwIiwgIjYxNDQiLCAiNzE2OCIsICI4MTkyIl07DQogICAgICAgICAgICAgICAgdmFyIHNlbGVjdCA9IGNvbnRlbnQuY3JlYXRlU2VsZWN0KHRleHQsIHZhbHVlcywgZGF0YSwgc2V0dGluZ3NLZXkpOw0KICAgICAgICAgICAgICAgIHNlbGVjdC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChzZWxlY3QpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiYnVmZmVyIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLnN0cmVhbUJ1ZmZlcmluZy50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIHRleHQgPSBbInt7LnNldHRpbmdzLnN0cmVhbUJ1ZmZlcmluZy5pbmZvX2ZhbHNlfX0iLCAieFRlVmU6ICh7ey5zZXR0aW5ncy5zdHJlYW1CdWZmZXJpbmcuaW5mb194dGV2ZX19KSIsICJGRm1wZWc6ICh7ey5zZXR0aW5ncy5zdHJlYW1CdWZmZXJpbmcuaW5mb19mZm1wZWd9fSkiLCAiVkxDOiAoe3suc2V0dGluZ3Muc3RyZWFtQnVmZmVyaW5nLmluZm9fdmxjfX0pIl07DQogICAgICAgICAgICAgICAgdmFyIHZhbHVlcyA9IFsiLSIsICJ4dGV2ZSIsICJmZm1wZWciLCAidmxjIl07DQogICAgICAgICAgICAgICAgdmFyIHNlbGVjdCA9IGNvbnRlbnQuY3JlYXRlU2VsZWN0KHRleHQsIHZhbHVlcywgZGF0YSwgc2V0dGluZ3NLZXkpOw0KICAgICAgICAgICAgICAgIHNlbGVjdC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChzZWxlY3QpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAidWRweHkiOg0KICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MudWRweHkudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCAidWRweHkiLCBkYXRhKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnNldHRpbmdzLnVkcHh5LnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIH0NCiAgICAgICAgcmV0dXJuIHNldHRpbmc7DQogICAgfQ0KICAgIGNyZWF0ZURlc2NyaXB0aW9uKHNldHRpbmdzS2V5KSB7DQogICAgICAgIHZhciBkZXNjcmlwdGlvbiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlRSIik7DQogICAgICAgIHZhciB0ZXh0Ow0KICAgICAgICBzd2l0Y2ggKHNldHRpbmdzS2V5KSB7DQogICAgICAgICAgICBjYXNlICJhdXRoZW50aWNhdGlvbi53ZWIiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MuYXV0aGVudGljYXRpb25XRUIuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJhdXRoZW50aWNhdGlvbi5tM3UiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MuYXV0aGVudGljYXRpb25NM1UuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJhdXRoZW50aWNhdGlvbi5wbXMiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MuYXV0aGVudGljYXRpb25QTVMuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJhdXRoZW50aWNhdGlvbi54bWwiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MuYXV0aGVudGljYXRpb25YTUwuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJhdXRoZW50aWNhdGlvbi5hcGkiOg0KICAgICAgICAgICAgICAgIGlmIChTRVJWRVJbInNldHRpbmdzIl1bImF1dGhlbnRpY2F0aW9uLndlYiJdID09IHRydWUpIHsNCiAgICAgICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5hdXRoZW50aWNhdGlvbkFQSS5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ4dGV2ZUF1dG9VcGRhdGUiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MueHRldmVBdXRvVXBkYXRlLmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiYmFja3VwLmtlZXAiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MuYmFja3VwS2VlcC5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImJhY2t1cC5wYXRoIjoNCiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLmJhY2t1cFBhdGguZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ0ZW1wLnBhdGgiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MudGVtcFBhdGguZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJidWZmZXIiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3Muc3RyZWFtQnVmZmVyaW5nLmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiYnVmZmVyLnNpemUua2IiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MuYnVmZmVyU2l6ZS5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImJ1ZmZlci50aW1lb3V0IjoNCiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLmJ1ZmZlclRpbWVvdXQuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ1c2VyLmFnZW50IjoNCiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLnVzZXJBZ2VudC5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImZmbXBlZy5wYXRoIjoNCiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLmZmbXBlZ1BhdGguZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJmZm1wZWcub3B0aW9ucyI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5mZm1wZWdPcHRpb25zLmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAidmxjLnBhdGgiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MudmxjUGF0aC5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInZsYy5vcHRpb25zIjoNCiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLnZsY09wdGlvbnMuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJlcGdTb3VyY2UiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MuZXBnU291cmNlLmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAidHVuZXIiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MudHVuZXIuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ1cGRhdGUiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MudXBkYXRlLmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiYXBpIjoNCiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLmFwaS5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImZpbGVzLnVwZGF0ZSI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5maWxlc1VwZGF0ZS5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImNhY2hlLmltYWdlcyI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5jYWNoZUltYWdlcy5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInhlcGcucmVwbGFjZS5taXNzaW5nLmltYWdlcyI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5yZXBsYWNlRW1wdHlJbWFnZXMuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ1ZHB4eSI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy51ZHB4eS5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICAgICAgdGV4dCA9ICIiOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICB9DQogICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gIiI7DQogICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgdmFyIHByZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlBSRSIpOw0KICAgICAgICBwcmUuaW5uZXJIVE1MID0gdGV4dDsNCiAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChwcmUpOw0KICAgICAgICBkZXNjcmlwdGlvbi5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICBkZXNjcmlwdGlvbi5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgcmV0dXJuIGRlc2NyaXB0aW9uOw0KICAgIH0NCn0NCmNsYXNzIFNldHRpbmdzQ2F0ZWdvcnlJdGVtIGV4dGVuZHMgU2V0dGluZ3NDYXRlZ29yeSB7DQogICAgY29uc3RydWN0b3IoaGVhZGxpbmUsIHNldHRpbmdzS2V5cykgew0KICAgICAgICBzdXBlcigpOw0KICAgICAgICB0aGlzLmhlYWRsaW5lID0gaGVhZGxpbmU7DQogICAgICAgIHRoaXMuc2V0dGluZ3NLZXlzID0gc2V0dGluZ3NLZXlzOw0KICAgIH0NCiAgICBjcmVhdGVDYXRlZ29yeSgpIHsNCiAgICAgICAgdmFyIGhlYWRsaW5lID0gdGhpcy5jcmVhdGVDYXRlZ29yeUhlYWRsaW5lKHRoaXMuaGVhZGxpbmUpOw0KICAgICAgICB2YXIgc2V0dGluZ3NLZXlzID0gdGhpcy5zZXR0aW5nc0tleXM7DQogICAgICAgIHZhciBkb2MgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCh0aGlzLkRvY3VtZW50SUQpOw0KICAgICAgICBkb2MuYXBwZW5kQ2hpbGQoaGVhZGxpbmUpOw0KICAgICAgICAvLyBUYWJlbGxlIGbDvHIgZGllIEthdGVnb3JpZSBlcnN0ZWxsZW4NCiAgICAgICAgdmFyIHRhYmxlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEFCTEUiKTsNCiAgICAgICAgdmFyIGtleXMgPSBzZXR0aW5nc0tleXMuc3BsaXQoIiwiKTsNCiAgICAgICAga2V5cy5mb3JFYWNoKHNldHRpbmdzS2V5ID0+IHsNCiAgICAgICAgICAgIHN3aXRjaCAoc2V0dGluZ3NLZXkpIHsNCiAgICAgICAgICAgICAgICBjYXNlICJhdXRoZW50aWNhdGlvbi5wbXMiOg0KICAgICAgICAgICAgICAgIGNhc2UgImF1dGhlbnRpY2F0aW9uLm0zdSI6DQogICAgICAgICAgICAgICAgY2FzZSAiYXV0aGVudGljYXRpb24ueG1sIjoNCiAgICAgICAgICAgICAgICBjYXNlICJhdXRoZW50aWNhdGlvbi5hcGkiOg0KICAgICAgICAgICAgICAgICAgICBpZiAoU0VSVkVSWyJzZXR0aW5ncyJdWyJhdXRoZW50aWNhdGlvbi53ZWIiXSA9PSBmYWxzZSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBkZWZhdWx0Og0KICAgICAgICAgICAgICAgICAgICB2YXIgaXRlbSA9IHRoaXMuY3JlYXRlU2V0dGluZ3Moc2V0dGluZ3NLZXkpOw0KICAgICAgICAgICAgICAgICAgICB2YXIgZGVzY3JpcHRpb24gPSB0aGlzLmNyZWF0ZURlc2NyaXB0aW9uKHNldHRpbmdzS2V5KTsNCiAgICAgICAgICAgICAgICAgICAgdGFibGUuYXBwZW5kQ2hpbGQoaXRlbSk7DQogICAgICAgICAgICAgICAgICAgIHRhYmxlLmFwcGVuZENoaWxkKGRlc2NyaXB0aW9uKTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICB9DQogICAgICAgIH0pOw0KICAgICAgICBkb2MuYXBwZW5kQ2hpbGQodGFibGUpOw0KICAgICAgICBkb2MuYXBwZW5kQ2hpbGQodGhpcy5jcmVhdGVIUigpKTsNCiAgICB9DQp9DQpmdW5jdGlvbiBzaG93U2V0dGluZ3MoKSB7DQogICAgY29uc29sZS5sb2coIlNFVFRJTkdTIik7DQogICAgZm9yIChsZXQgaSA9IDA7IGkgPCBzZXR0aW5nc0NhdGVnb3J5Lmxlbmd0aDsgaSsrKSB7DQogICAgICAgIHNldHRpbmdzQ2F0ZWdvcnlbaV0uY3JlYXRlQ2F0ZWdvcnkoKTsNCiAgICB9DQp9DQpmdW5jdGlvbiBzYXZlU2V0dGluZ3MoKSB7DQogICAgY29uc29sZS5sb2coIlNhdmUgU2V0dGluZ3MiKTsNCiAgICB2YXIgY21kID0gInNhdmVTZXR0aW5ncyI7DQogICAgdmFyIGRpdiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb250ZW50X3NldHRpbmdzIik7DQogICAgdmFyIHNldHRpbmdzID0gZGl2LmdldEVsZW1lbnRzQnlDbGFzc05hbWUoImNoYW5nZWQiKTsNCiAgICB2YXIgbmV3U2V0dGluZ3MgPSBuZXcgT2JqZWN0KCk7DQogICAgZm9yIChsZXQgaSA9IDA7IGkgPCBzZXR0aW5ncy5sZW5ndGg7IGkrKykgew0KICAgICAgICB2YXIgbmFtZTsNCiAgICAgICAgdmFyIHZhbHVlOw0KICAgICAgICBzd2l0Y2ggKHNldHRpbmdzW2ldLnRhZ05hbWUpIHsNCiAgICAgICAgICAgIGNhc2UgIklOUFVUIjoNCiAgICAgICAgICAgICAgICBzd2l0Y2ggKHNldHRpbmdzW2ldLnR5cGUpIHsNCiAgICAgICAgICAgICAgICAgICAgY2FzZSAiY2hlY2tib3giOg0KICAgICAgICAgICAgICAgICAgICAgICAgbmFtZSA9IHNldHRpbmdzW2ldLm5hbWU7DQogICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IHNldHRpbmdzW2ldLmNoZWNrZWQ7DQogICAgICAgICAgICAgICAgICAgICAgICBuZXdTZXR0aW5nc1tuYW1lXSA9IHZhbHVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgICAgIGNhc2UgInRleHQiOg0KICAgICAgICAgICAgICAgICAgICAgICAgbmFtZSA9IHNldHRpbmdzW2ldLm5hbWU7DQogICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IHNldHRpbmdzW2ldLnZhbHVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgc3dpdGNoIChuYW1lKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAidXBkYXRlIjoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSB2YWx1ZS5zcGxpdCgiLCIpOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IHZhbHVlLmZpbHRlcihmdW5jdGlvbiAoZSkgeyByZXR1cm4gZTsgfSk7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgImJ1ZmZlci50aW1lb3V0IjoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSBwYXJzZUZsb2F0KHZhbHVlKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgIG5ld1NldHRpbmdzW25hbWVdID0gdmFsdWU7DQogICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJTRUxFQ1QiOg0KICAgICAgICAgICAgICAgIG5hbWUgPSBzZXR0aW5nc1tpXS5uYW1lOw0KICAgICAgICAgICAgICAgIHZhbHVlID0gc2V0dGluZ3NbaV0udmFsdWU7DQogICAgICAgICAgICAgICAgLy8gV2VubiBkZXIgV2VydCBlaW5lIFphaGwgaXN0LCB3aXJkIGRpZXNlciBhbHMgWmFobCBnZXNwZWljaGVydA0KICAgICAgICAgICAgICAgIGlmIChpc05hTih2YWx1ZSkpIHsNCiAgICAgICAgICAgICAgICAgICAgbmV3U2V0dGluZ3NbbmFtZV0gPSB2YWx1ZTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgZWxzZSB7DQogICAgICAgICAgICAgICAgICAgIG5ld1NldHRpbmdzW25hbWVdID0gcGFyc2VJbnQodmFsdWUpOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgfQ0KICAgIH0NCiAgICB2YXIgZGF0YSA9IG5ldyBPYmplY3QoKTsNCiAgICBkYXRhWyJzZXR0aW5ncyJdID0gbmV3U2V0dGluZ3M7DQogICAgdmFyIHNlcnZlciA9IG5ldyBTZXJ2ZXIoY21kKTsNCiAgICBzZXJ2ZXIucmVxdWVzdChkYXRhKTsNCn0NCg==" - webUI["html/login.html"] = "PCFkb2N0eXBlIGh0bWw+DQo8aHRtbD4NCiAgPGhlYWQ+DQogICAgPG1ldGEgY2hhcnNldD0idXRmLTgiPg0KICAgIDxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgsIGluaXRpYWwtc2NhbGU9MS4wIiAvPiANCiAgICA8dGl0bGU+eFRlVmU8L3RpdGxlPg0KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iY3NzL3NjcmVlbi5jc3MiIHR5cGU9InRleHQvY3NzIj4NCiAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9ImNzcy9iYXNlLmNzcyIgdHlwZT0idGV4dC9jc3MiPg0KICAgIDxzY3JpcHQgbGFuZ3VhZ2U9ImphdmFzY3JpcHQiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJqcy9uZXR3b3JrX3RzLmpzIj48L3NjcmlwdD4NCiAgICA8c2NyaXB0IGxhbmd1YWdlPSJqYXZhc2NyaXB0IiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ianMvYXV0aGVudGljYXRpb25fdHMuanMiPjwvc2NyaXB0Pg0KICA8L2hlYWQ+DQoNCiAgICA8Ym9keT4NCiAgICAgICAgICANCiAgICAgIDxkaXYgaWQ9ImhlYWRlciIgY2xhc3M9ImltZ0NlbnRlciI+PC9kaXY+DQoNCiAgICAgIDxkaXYgaWQ9ImJveCI+DQoNCiAgICAgICAgPGRpdiBpZD0iaGVhZGxpbmUiPg0KICAgICAgICAgIDxoMSBpZD0iaGVhZC10ZXh0IiBjbGFzcz0iY2VudGVyIj57ey5sb2dpbi5oZWFkbGluZX19PC9oMT4NCiAgICAgICAgPC9kaXY+DQoNCiAgICAgICAgPHAgaWQ9ImVyciIgY2xhc3M9ImVycm9yTXNnIGNlbnRlciI+e3suYXV0aGVudGljYXRpb25FcnJ9fTwvcD4NCg0KICAgICAgICA8ZGl2IGlkPSJjb250ZW50Ij4NCg0KICAgICAgICAgICAgPGZvcm0gaWQ9ImF1dGhlbnRpY2F0aW9uIiBhY3Rpb249IiIgbWV0aG9kPSJwb3N0Ij4NCg0KICAgICAgICAgICAgICA8aDU+e3subG9naW4udXNlcm5hbWUudGl0bGV9fTo8L2g1Pg0KICAgICAgICAgICAgICA8aW5wdXQgaWQ9InVzZXJuYW1lIiB0eXBlPSJ0ZXh0IiBuYW1lPSJ1c2VybmFtZSIgcGxhY2Vob2xkZXI9IlVzZXJuYW1lIiB2YWx1ZT0iIj4NCiAgICAgICAgICAgICAgPGg1Pnt7LmxvZ2luLnBhc3N3b3JkLnRpdGxlfX06PC9oNT4NCiAgICAgICAgICAgICAgPGlucHV0IGlkPSJwYXNzd29yZCIgdHlwZT0icGFzc3dvcmQiIG5hbWU9InBhc3N3b3JkIiBwbGFjZWhvbGRlcj0iUGFzc3dvcmQiIHZhbHVlPSIiPg0KDQogICAgICAgICAgICA8L2Zvcm0+DQoNCiAgICAgICAgPC9kaXY+DQoNCiAgICAgICAgPGRpdiBpZD0iYm94LWZvb3RlciI+DQogICAgICAgICAgPGlucHV0IGlkPSJzdWJtaXQiIGNsYXNzPSIiIHR5cGU9ImJ1dHRvbiIgdmFsdWU9Int7LmJ1dHRvbi5sb2dpbn19IiBvbmNsaWNrPSJqYXZhc2NyaXB0OiBsb2dpbigpOyI+DQogICAgICAgIDwvZGl2Pg0KICAgICAgICANCiAgICAgIDwvZGl2Pg0KDQogICAgPC9ib2R5Pg0KICAgIA0KPC9odG1sPg==" + webUI["html/img/logo_w_600x200.png"] = "iVBORw0KGgoAAAANSUhEUgAAAlgAAADICAYAAAA0n5+2AAAAAXNSR0IArs4c6QAAAAlwSFlzAAAuIwAALiMBeKU/dgAABCZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IlhNUCBDb3JlIDUuNC4wIj4KICAgPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIgogICAgICAgICAgICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgICAgICAgICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyI+CiAgICAgICAgIDx0aWZmOlJlc29sdXRpb25Vbml0PjI8L3RpZmY6UmVzb2x1dGlvblVuaXQ+CiAgICAgICAgIDx0aWZmOkNvbXByZXNzaW9uPjU8L3RpZmY6Q29tcHJlc3Npb24+CiAgICAgICAgIDx0aWZmOlhSZXNvbHV0aW9uPjMwMDwvdGlmZjpYUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6T3JpZW50YXRpb24+MTwvdGlmZjpPcmllbnRhdGlvbj4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+MzAwPC90aWZmOllSZXNvbHV0aW9uPgogICAgICAgICA8ZXhpZjpQaXhlbFhEaW1lbnNpb24+NjAwPC9leGlmOlBpeGVsWERpbWVuc2lvbj4KICAgICAgICAgPGV4aWY6Q29sb3JTcGFjZT4xPC9leGlmOkNvbG9yU3BhY2U+CiAgICAgICAgIDxleGlmOlBpeGVsWURpbWVuc2lvbj4yMDA8L2V4aWY6UGl4ZWxZRGltZW5zaW9uPgogICAg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" webUI["html/img/m3u.png"] = "iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAAAXNSR0IArs4c6QAAAAlwSFlzAAAsSwAALEsBpT2WqQAABCRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IlhNUCBDb3JlIDUuNC4wIj4KICAgPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIgogICAgICAgICAgICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgICAgICAgICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyI+CiAgICAgICAgIDx0aWZmOlJlc29sdXRpb25Vbml0PjI8L3RpZmY6UmVzb2x1dGlvblVuaXQ+CiAgICAgICAgIDx0aWZmOkNvbXByZXNzaW9uPjU8L3RpZmY6Q29tcHJlc3Npb24+CiAgICAgICAgIDx0aWZmOlhSZXNvbHV0aW9uPjI4ODwvdGlmZjpYUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6T3JpZW50YXRpb24+MTwvdGlmZjpPcmllbnRhdGlvbj4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+Mjg4PC90aWZmOllSZXNvbHV0aW9uPgogICAgICAgICA8ZXhpZjpQaXhlbFhEaW1lbnNpb24+NTA8L2V4aWY6UGl4ZWxYRGltZW5zaW9uPgogICAgICAgICA8ZXhpZjpDb2xvclNwYWNlPjE8L2V4aWY6Q29sb3JTcGFjZT4KICAgICAgICAgPGV4aWY6UGl4ZWxZRGltZW5zaW9uPjUwPC9leGlmOlBpeGVsWURpbWVuc2lvbj4KICAgICAgICAgPGRjOnN1YmplY3Q+CiAgICAgICAgICAgIDxyZGY6QmFnLz4KICAgICAgICAgPC9kYzpzdWJqZWN0PgogICAgICAgICA8eG1wOk1vZGlmeURhdGU+MjAxOC0wNy0yOFQxOTowNzozMTwveG1wOk1vZGlmeURhdGU+CiAgICAgICAgIDx4bXA6Q3JlYXRvclRvb2w+UGl4ZWxtYXRvciAzLjM8L3htcDpDcmVhdG9yVG9vbD4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgIDwvcmRmOlJERj4KPC94OnhtcG1ldGE+CumjVbcAAAGWSURBVGgF7VoxTgJRFGTFaGKBFnbEcABjb0fiBego7D2ABYmn8ARKRWFNQ6gx4QRQGWJJoY2VhXGdl7Dkh7Dsx3ns3yXvJ5P97L6d92bmhwYqlcWK43gK5L2enP51NP8F7pN721wPnOITZx9qG6HxI8QIZO+9XCHeL+VQKKm8QMyxb6+iCpH528AQYs58xIQWknV8mhDxCjEXWWJCC8maT55fAmOIudpUXAYhMn8dGEHMTZqYsgiR+U+BAcTcrhNTJiEy/xHQg5jOqpjD1RsBP3+id8u3P8TUoij6SuoLIwRDfWOofjLYtteyHa1UfcvvcUT1jqpGauVuHnyAdragjv/TAkley3uhj9Y5ZhDQa2+Olgmhz4IygSWibChNZ4nQFioTWCLKhtJ0lghtoTKBJaJsKE1nidAWKhNYIsqG0nSWCG2hMoElomwoTWeJ0BYqE1giyobSdJYIbaEygSWibChNZ4nQFioTWCLKhtJ0biJzmi1/guXMrpDn/OegO3bXMuAH0TtgAvwARV3y57Q34AGoJkL+AErKZ9cqbH7AAAAAAElFTkSuQmCC" - webUI["html/img/stream-limit.jpg"] = "/9j/4AAQSkZJRgABAQAAAQABAAD/4gJoSUNDX1BST0ZJTEUAAQEAAAJYbGNtcwQwAABtbnRyUkdCIFhZWiAH4wAFABcAFgAuAAphY3NwQVBQTAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA9tYAAQAAAADTLWxjbXMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAtkZXNjAAABCAAAAEBjcHJ0AAABSAAAAE53dHB0AAABmAAAABRjaGFkAAABrAAAACxyWFlaAAAB2AAAABRiWFlaAAAB7AAAABRnWFlaAAACAAAAABRyVFJDAAACFAAAACBnVFJDAAACFAAAACBiVFJDAAACFAAAACBjaHJtAAACNAAAACRtbHVjAAAAAAAAAAEAAAAMZW5VUwAAACQAAAAcAHMAUgBHAEIAIABJAEUAQwA2ADEAOQA2ADYALQAyAC4AMQAAbWx1YwAAAAAAAAABAAAADGVuVVMAAAAyAAAAHABOAG8AIABjAG8AcAB5AHIAaQBnAGgAdAAsACAAdQBzAGUAIABmAHIAZQBlAGwAeQAAAABYWVogAAAAAAAA9tYAAQAAAADTLXNmMzIAAAAAAAEMSgAABeP///MqAAAHmwAA/Yf///ui///9owAAA9gAAMCUWFlaIAAAAAAAAG+UAAA47gAAA5BYWVogAAAAAAAAJJ0AAA+DAAC2vlhZWiAAAAAAAABipQAAt5AAABjecGFyYQAAAAAAAwAAAAJmZgAA8qcAAA1ZAAAT0AAACltjaHJtAAAAAAADAAAAAKPXAABUewAATM0AAJmaAAAmZgAAD1z/2wBDAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQH/2wBDAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQH/wAARCAQ4B4ADASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD/AD/6KKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigD9PvBf/AARa/wCCrXxF8HeE/iD4G/YM/aL8UeCfHfhrQvGXg/xNpHgia50nxF4W8T6Xa634f13TLkTgXGn6vpN9aahZTgAS21xFIAN1dL/w4o/4LB/9I7/2m/8AwgZ//kiv9b3/AIJp/wDKOX9gH/syf9lX/wBUV4Dr7YoA/wAWr/hxR/wWD/6R3/tN/wDhAz//ACRR/wAOKP8AgsH/ANI7/wBpv/wgZ/8A5Ir/AGlaKAP8Wr/hxR/wWD/6R3/tN/8AhAz/APyRR/w4o/4LB/8ASO/9pv8A8IGf/wCSK/2laKAP8Wr/AIcUf8Fg/wDpHf8AtN/+EDP/APJFH/Dij/gsH/0jv/ab/wDCBn/+SK/2laKAP8Wr/hxR/wAFg/8ApHf+03/4QM//AMkUf8OKP+Cwf/SO/wDab/8ACBn/APkiv9pWigD/ABav+HFH/BYP/pHf+03/AOEDP/8AJFH/AA4o/wCCwf8A0jv/AGm//CBn/wDkiv8AaVooA/xav+HFH/BYP/pHf+03/wCEDP8A/JFH/Dij/gsH/wBI7/2m/wDwgZ//AJIr/aVooA/xav8AhxR/wWD/AOkd/wC03/4QM/8A8kUf8OKP+Cwf/SO/9pv/AMIGf/5Ir/aVooA/xav+HFH/AAWD/wCkd/7Tf/hAz/8AyRR/w4o/4LB/9I7/ANpv/wAIGf8A+SK/2laKAP8AFq/4cUf8Fg/+kd/7Tf8A4QM//wAkUf8ADij/AILB/wDSO/8Aab/8IGf/AOSK/wBpWigD/Fq/4cUf8Fg/+kd/7Tf/AIQM/wD8kUf8OKP+Cwf/AEjv/ab/APCBn/8Akiv9pWigD/Fq/wCHFH/BYP8A6R3/ALTf/hAz/wDyRR/w4o/4LB/9I7/2m/8AwgZ//kiv9pWigD/E88f/APBGT/gqj8K/AnjT4nfEX9hL9ofwf8P/AIdeFPEPjnxz4t1zwTNaaL4X8IeE9Ju9d8SeIdXujORbaZo2j2F5qN9OQRDa20shB24r8yq/28f+Ctf/ACit/wCClX/ZhH7Xv/rP/wAQK/xDqACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooA+j/ANmj9kL9pr9snxbrvgL9lr4K+Ovjn408M+HH8X6/4Y+H2ljWdZ0vwvFqen6NLr1zYrNHMNMh1XVtL0+a7RWihu9RsoZSj3MIf7U/4cUf8Fg/+kd/7Tf/AIQM/wD8kV2v/BAD9sj/AIYi/wCCrf7K/wATNW1X+yvh98QPFw+AHxWklm+z6f8A8IJ8aWg8HjU9Xl3Ls0rwd4wufCPxAuz82B4RQlJACjf7MFAH+LV/w4o/4LB/9I7/ANpv/wAIGf8A+SKP+HFH/BYP/pHf+03/AOEDP/8AJFf7StFAH+LV/wAOKP8AgsH/ANI7/wBpv/wgZ/8A5Io/4cUf8Fg/+kd/7Tf/AIQM/wD8kV/tK0UAf4tX/Dij/gsH/wBI7/2m/wDwgZ//AJIo/wCHFH/BYP8A6R3/ALTf/hAz/wDyRX+0rRQB/gx/HT4CfGb9mT4n+Ivgt+0B8NfFnwj+K3hJNHl8SeA/G2lzaP4i0iLxBomneI9Emu7KbJWLU9C1bTtTs5UZ45rW7idWySB5HX9yX/B69+yL/wAIr8eP2V/22/D2meXpfxb8Da18BfiPd2sOy3i8afDG9k8U+BdR1OXbiXVPFHg/xZrukWzB2P8AZnw0jjZIxEjS/wANtABRRRQAUUUUAFFFFABRRRQAUUUUAPRHldIokeSSR1SONFLu7uQqIiKCzOzEKqqCWJAAJNfq8n/BCv8A4LBSIki/8E7/ANp3a6q67vh/dI21gGG5HnV0bB5V1VlPDAEEVv8A/BBj9kX/AIbU/wCCrf7Ivwo1PTP7T8DeGPiFb/Gz4nRTQ+fpzeAvgpE3xDv9L1hQrEaZ4w1nRdD8BSkAFp/FdvH5kO/zo/8AZ4oA/wAWr/hxR/wWD/6R3/tN/wDhAz//ACRR/wAOKP8AgsH/ANI7/wBpv/wgZ/8A5Ir/AGlaKAP8Wr/hxR/wWD/6R3/tN/8AhAz/APyRR/w4o/4LB/8ASO/9pv8A8IGf/wCSK/2laKAP8Wr/AIcUf8Fg/wDpHf8AtN/+EDP/APJFH/Dij/gsH/0jv/ab/wDCBn/+SK/2laKAP8Kz9p39iX9rL9i7UfCOkftV/AT4ifAfVPHtlq+o+DtO+IejjRb3xDp+gz2Ntq97p1s00k0lrY3GpWUEs7IkbSz+XGztHKI/lqv6F/8Ag5+/bI/4a5/4K2/HDTNF1X+0fh7+y5aaZ+y74KEU261GofDq61K8+KVz5UbG3N0fi9r3jnSTexl5bzSdE0USybLeCGD+eigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigD/cg/4Jp/8o5f2Af+zJ/2Vf8A1RXgOvtivif/AIJp/wDKOX9gH/syf9lX/wBUV4Dr7YoAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigD8+P8AgrX/AMorf+ClX/ZhH7Xv/rP/AMQK/wAQ6v8Abx/4K1/8orf+ClX/AGYR+17/AOs//ECv8Q6gAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAHI7xOkkbtHJGyvHIjFHR0IZXRlIZWVgGVlIIIBBBFf7Z//BIH9sRP28f+Cbv7J37St5qS6n4x8VfC/TPDXxTmMqvc/wDC3PhxNcfD/wCJdxdQ5Mtp/bPi7w3qfiLT7e4zK2jazplyHnhuIrib/Eur/QW/4Mm/2yPteh/tZfsE+JNV3T6PeaT+1D8KNPml3yNp2pDRvht8YrW381t0NrYahB8JtRtLK33Rtda5r980cUjzyzgH98VFFFABRRRQAUUUUAfhR/wcifsif8Ngf8Eif2ndD0vTP7T8dfAvSbH9p74ehYvPuINW+DCXur+MUs4FUzXF/qvwjvfiRoFhb25E819q9skazn/R5v8AHer/AH6NW0rTdd0rU9D1mxtdU0fWdPvNK1bTL6FLmy1HTdRtpLS+sby3kDRz2t3azS29xDIrJLFI6OCrEV/hv/8ABQv9lrUv2J/23/2ov2V9Riuo4Pgv8Y/GHhbwzPe7/tWqeAJdQbWfhrr83mfPu8R/D7VPDOvjcWO3Uh88n32APjeiiigAooooAKKKKACiiigAooooA/0D/wDgyU/ZE+z6T+19+3Xr+mYl1G70D9lz4Y6lJFtdbSwTSfif8YfKaRd0lvd3Vz8HreC4g2xifS9VtneSRHSD++mvyl/4Ih/sif8ADEf/AAS3/ZB+B2o6X/ZXjV/hhYfE/wCKEEsPlahH8S/jDNN8SfFmmaq21WnvfCl14ki8EpKw+Ww8M2MCExQxmv1aoAKKKKACiiigAr5A/b+/ao0X9iP9iv8AaZ/as1xrRk+Cfwi8V+LdCsr5gtrrfjk2R0j4c+GZWLKF/wCEq8f6n4a8NodwxJqqdeh+v6/ib/4PTP2yP+EA/Za/Z5/Yk8N6r5WvftCfEG7+LPxGtLWb98nww+Dogh8OaVqtvuA+weKviT4g03W9Nk2uWvvhfdrujEZEoB/nB+IfEGteLPEGueKvEup3eteIvE2san4g1/WL+Uz32ra1rN7PqOq6nezNzNd399cz3VzKeZJpXc8mseiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigD/cg/4Jp/8AKOX9gH/syf8AZV/9UV4Dr7Yr4n/4Jp/8o5f2Af8Asyf9lX/1RXgOvtigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAPz4/4K1/8orf+ClX/AGYR+17/AOs//ECv8Q6v9vH/AIK1/wDKK3/gpV/2YR+17/6z/wDECv8AEOoAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAr9V/+CJP7ZH/DCn/BT39k348anqv9leA2+Itp8Mvi1NNN5Onp8LPi3FJ8P/F+qaou5RPaeEbfXYPHcMLMB/aXhXT5R80Sg/lRRQB/v8UV+TP/AAQ5/bI/4bo/4JdfsnfG7VNV/tXx9p/w+tfhN8WpZZvO1Fvid8IJG8A+JNV1f5m8u/8AGUWi6d8QFjDECx8W2TgRh/LT9ZqACiiigAooooAK/wA07/g9I/ZE/wCFcftj/AD9sXQNM8jQP2lfhZdfD7xtd28O5H+KPwOnsbO31HUp1A8q41z4a+KvBmkaXDN808HgPUnhZ1tplh/0sa/nd/4Oi/2RP+Gq/wDgkT8cNZ0fS/7R8dfsuapoP7T/AITMUO64TS/ACahpXxSVp0Bnjsbf4ReJvHOuz26hoLi+0HS2nQG3iuLcA/yKaKKKACiiigAooooAKKKKACv02/4I3fsi/wDDcf8AwUy/ZC/Z3vtM/tXwfr3xX0nxh8TrWSLfaS/Cr4XQ3PxJ+IlleyMGhto9d8L+FtQ8NWk04MbaprWn2yxzz3EUEv5k1/eL/wAGTH7In9reP/2uf259f0zdZ+D9A0H9mf4Z6hND5sEmveK7jTviL8VprV3Gy21LQ9E0b4YWSTwlp207xnqVsWhgnkS5AP8AQzooooAKKKKACiiigAr/AB3f+DkD9sj/AIbN/wCCtf7SWvaRqv8Aanw9+BGpWv7MPw1aOf7RaJovwcudR0zxfd2E6MYLnT9d+LV/8RfEWm3dsPJuNM1axZJJ1VbiX/Ux/wCCnv7XVn+wl+wF+1T+1TLdW1trXws+E2vXHgJbsRtBe/FTxOYPBnwo02aKQMJbe/8AiN4h8MW16qxysti9zN5UixMp/wAQK+vr3U7281LUru5v9R1C6uL6/vryaS5u729u5XuLq7uriZnlnubieR5p5pXaSWV2d2ZmJIBVooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooA/sa/Z9/4PGv2mv2ffgJ8EPgJo37HXwJ8QaP8EPhD8NfhDpOv6n43+IFtqWt6b8NfBmi+DLHV9Qt7QfZbe+1K10WK9u4bb/R4riaSOH92q169/xG8ftWf9GRfs9/+F98R/8ACv4h6KAP7eP+I3j9qz/oyL9nv/wvviP/AIUf8RvH7Vn/AEZF+z3/AOF98R/8K/iHooA/t4/4jeP2rP8AoyL9nv8A8L74j/4Uf8RvH7Vn/RkX7Pf/AIX3xH/wr+IeigD+3j/iN4/as/6Mi/Z7/wDC++I/+FH/ABG8ftWf9GRfs9/+F98R/wDCv4h6KAP9GT/gmX/wdhftE/t2/t3fs3/skeLv2T/gt4E8N/G/xpf+F9W8XeHPGPjnUNb0O3tPCviHxCt1p9lqY+wXEzzaNFbslz8gimkYfOq1/cpX+NT/AMG73/KaX9gD/srmtf8AqtPHVf7K1ABRRRQAUUUUAFFFFAH8KH/BRT/g7X/aN/Yq/bf/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WOj6BoOn3Gq6xql5Jg+Xaafp1pcXdw+DshhdsHGKAP8AN2/4PR/2yP8AhY37XHwD/Yq8N6r53h/9m34dT/Er4g2dtNiP/hanxqFlcaTpmqW4Yh7rw38MdB8M6zpUzhWitviTqKICJmJ/itr6y/bt/ah179tX9sf9pP8Aaq8RG6juvjh8XfF/jbS7C9fzLjQfCN1qUln4D8LF98m6Lwl4IsvD/hm2Jkc/ZtJiBdj8x+TaACiiigAooooAK/2Hv+DZvSf7G/4Id/sIWe3Z53hv40atjGM/29+0r8Ztc3f8D/tHfnvuzzmv8eGv9kD/AINw7+HUv+CJ37A1xAqqkfw58c2DBOhm0r40fEvTLhj/ALb3FnKz/wC2WoA/biiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAr/JJ/4Ow/+U2X7Q//AGTv9nj/ANUr4Nr/AFtq/wAkn/g7D/5TZftD/wDZO/2eP/VK+DaAP5vaKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKK6vwJ4G8W/E3xn4X+HngLQdQ8UeNPGmu6b4a8L+HtLi86/1fWtXuo7OwsrdCVRTLPKoeaZ47e3iD3FzLFBFJIt06dSrUhSpQnUq1Zwp06dOMp1KlSpOMKdOEIKUpznOcIQhGMpSlKMYpuST58Xi8LgMJisfjsTh8FgcDhsRjcbjcXXpYXCYPB4OhWxWLxeKxOIqUaGHw2Fw2GxGIxGIr1aVGhQoVq1WpTp0pzj9Y/sAfsT+O/27/wBofw38HvC32vSfCtqY/EXxU8cx2/nWvgfwDZ3MMep6gDIpgm13VHkTR/C2myZ+361dwPcCLSrTVL2z/wBHr4T/AAs8CfBD4beC/hL8MtAtPDHgPwBoNl4c8NaJZj5LWwskOZriZv3t7qV/cvPqOr6ndNJe6rqt3eal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gAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAr+z7/ggp/wTT/4VH4Psf20vjV4f8r4n/ELRXX4K+HtVtsXPgT4d6zbFJvGk8E6brXxN8QbCXZpbIqz6X4Hn/17P4t1GysPyI/4Ip/8E13/AGxfjB/wuX4r6G837N3wa1q0m1S1voD9h+KPxAtlg1HSvAMXmL5V3oOmRyWmt+O8ear6bNpfh14h/wAJK95p/wDedHGkSJFEiRxxoscccahEjRAFRERQFVFUBVVQAoAAAAr+o/AXw29vUpcdZ3h/3FGclw3ha0NK1eDlTq5zOE1rTw8lOjlzaaniFXxkbxw+Hkf4Nfta/psf2Tg8d9FLwvzi2aZlh6E/GrPctxHv5dleIhRxeC8NsPiKFS8Mbm1KWFzPjSMKkZ4bKJZTw5VUKub5vRT6KKK/rU/55AooooAKKKr3d3a2Frc319c29lY2VvNd3l5dzR21raWttG01xc3NxMyQwW8EKPLNNK6RxRozuyqpIG0k22kkm220kkk2222kkkm220kk22km04xlOUYQjKc5yjCEIRlOc5zlGMIQhGMpSnKUoxjGMZSlKUYxjKUoxlYoqlpuo6frGn2Gr6TfWeqaVqlla6jpmp6fcw3un6jp99AlzZX1jeWzyW93Z3dtLHcW1zBJJDPDIksTsjqxu0k1JKUWnFpNNNNNNJppptNNNNNNpppptNNucJ0pzp1ITp1Kc506lOpCdOpTqU5zp1KdSnUjCpTqU6lOdOpTqQhOE4ThOEJwnCBRRRTJCiiigD8if+Cvv/BOiw/bq+A0ms+CNNtIv2i/hFZalrXwv1HENtN4u00p9q1z4X6pdvsRrXxCIRc+Gp7yRIdI8Vw2j/arDS9W8QPcf59Ooaff6Tf32larZXem6npl5c6fqWnX9vNZ31hf2Uz215ZXtpcJHPa3drcRyQXNvPGk0E0bxSIrqyj/AFjK/kJ/4L+/8E2P+Ed1S/8A27PgroG3QtdvbW3/AGivDmlWxCaR4gvZorLTPixb20K7EsfEN1Jb6R43ZFjMXiGXTPEMqXUuv6/e2f8AM3j14cfX8NPjjJcPfG4KlGPEGGow97F4GlFQp5pGEVeWIwEOWnjGk5VcCoV5c0sFNn+5H7JX6an+qWdYX6LPibm/JwvxNj61XwgzrMcRalw/xVj6s6+M4ErYivU5aGUcV4h1cbw3GVSFHAcVPFZXSVKhxNhqa/ldooor+QD/AKOAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAP2i/4N3v8AlNL+wB/2VzWv/VaeOq/2Vq/xqf8Ag3e/5TS/sAf9lc1r/wBVp46r/ZWoAKKKKACiiigAooooA/xef+C9P/KYv/goZ/2cZ4p/9I9Lr8ja/XL/AIL0/wDKYv8A4KGf9nGeKf8A0j0uvyNoAKKKKACiiigAooooAKKKKAP9gz/g2Z/aA/4aB/4Iy/sk3N5ffbfEXwd03xl+z/4jTzPM+w/8Kr8YavpXgux3Elhs+F1z4CnEbBfKFwI4wYljdv3sr/Py/wCDJb9r8Qal+13+wh4g1PCahb6H+1J8LtOlmCJ9rsjo/wAMPjEkKyHEtzdWs3weura2t8SC30vWbt45I45JIf8AQNoAKKKKACiiigAr/IT/AODmr9h/U/2M/wDgq18b9YsNJ+x/C39qq8n/AGnPhrfW8BjsJLr4hajeS/FPQwYx9kt77Q/itb+LZhpcDB7Tw3rHhe8eC3i1O2jr/Xsr8Kv+DgD/AIJMWn/BVj9i2+8M+BbLSbf9qT4GXOqfEX9nLXtQkgsl1XVJbOGPxh8JtS1ScpFY6H8UdJ0+ys4bi5mtbHTvGuieCtb1O6i0jS9SjnAP8dyit7xV4W8S+BvE/iLwX4y0HV/C3i/wjrmq+GfFPhnX9PudK13w94h0K+n0zWdE1nS72OG807VNL1G1uLG/sbqKK4tbqCWCaNJEZRg0AFFFFABRRRQAUUUUAFFFFABRRXU+CPA3jT4meLvDvgD4c+EvEvjzx14u1W10Lwr4N8HaHqXiTxR4k1q+kEVnpWhaDo9teapquo3Uh2wWdlazzyHO1Dg0ActRX97P/BJf/gz5vPEel6R8a/8AgqrqeqeHbPUrEXnh79kz4deJRY+I40vICLe6+MvxJ0CeU6Jcwo5uI/A3w9v5NRhmNlLrfjbTrm21Xwk/z5/wc8f8EZv2AP8Agmj+zF+zp8S/2Q/hZ4k8A+L/AIh/Hi/8C+Kb/W/if8QvHcF94bg+H3iLX47OGw8Y+IdZs7KVdT061mN3aQxXJRGhMpid1IB/FTRRRQAUUUUAFFFFABXonwh+KPjD4H/Ff4ZfGj4fagdJ8efCP4geDviZ4L1Qb/8AiX+KvAviHTvE/h+8IjeN2S31XTLWV0V0LorJuG7Ned0UAf7xX7NPx38IftQ/s8/BH9o3wDKH8HfHH4WeBvil4fj85LiaxsfGvhzT9eGk3roFC6nost7JpOqwMkctrqVldW08UU0Mka+3V/Iv/wAGc/7ZH/C8f+CdnjX9lzxBqv2vxl+xx8T7zTNHtZpvNuV+D3xmn1jx34Lmd5G8+X7L46t/ito0Ufzw2Gk6bolpE6ReTBF/XRQAUUUUAFFFFABRRRQAUUUUAFFFFAHGfEfx/wCFfhP8PfHnxT8d6pFongj4aeDPFHj/AMZa1PjydI8K+DdDvvEXiHVJslR5Wn6Rp15dyZZRsiOSOtf4YP7W37RPir9rf9p74+/tN+NTKniT46fFnxx8S72ykmM66Nb+KdevdR0nw5ayEn/iXeGNHlsPD2lxg7YdN0y1hX5YxX+oP/wdh/tkf8Mw/wDBKbxn8L9B1X7D8Qf2wvGOifAXR47eby9Rg8BASeMvi3qiRblEulXfhTQI/h9q+d+wfEWzAjy/mxf5ONABRRRQAUUUUAFFFFABX9zX/BkV+0B/Yvx8/bZ/Zdvr3918Q/hP8P8A45eHrKaTbHDe/CbxZd+BvEzWKEhWutTs/i94be8RQ0slt4fglUCK0mYfwy1+vP8AwQh/a/H7Ev8AwVU/ZI+L2qamNM8CeIfiDb/Bj4pSzTeTpyfD340RN8PtU1XV2ypOneDtT1rRvH0gUlvtHhO2bZMFMMgB/s/0UUUAFFFFABRRRQB/EL/wekfsP6p8Q/2fP2fP28vBukfarz9nrX9Q+D/xjntbdnu0+GnxU1LTrjwD4h1Cfbti0fwj8SbW58OIu4O+p/Fq2YI0ccrxf5wNf7z3x5+B/wANP2lvgx8T/gB8Y/Dlv4s+F/xe8F694D8baDcbVN5ofiCxlsp5rK5KO+naxpzvHqWh6vbBb3RtZs7DVbCSG9s4JU/xdv8AgqP/AME4PjJ/wS6/a28dfs0/Fa2udT0WCWXxL8HviUllJbaL8WfhRqV7dReGfGGmHBhg1JFt5tF8X6JHLM3h3xbpur6Us95Zw2OpXwB+dVFFFABRRRQAUUUUAFFFFABRRRQAUUV/Sh/wSF/4Npf2vf8AgpK/hr4v/FeLVf2Wv2Qr97XUY/iZ4s0ST/hYfxT0dikxj+DHgPUfss99p2owFI7f4j+Jxp/gqKK5/tDQF8c3Gn3mhUAfzX0V/qEftmf8GwX/AASD+AP7Cv7V3xW8EfBb4j3PxL+Cv7Jvx1+IXhDxl4g+OvxQv7yfxz8OPg/4p8SeH/Eut6LZ+INN8J3txJr2jWmp6jplt4esfD9zIZrWLR7bTnWzT/L3oAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAr6s/Yv/AGSPiN+2x8f/AAd8Cvh1C9vJrEx1Txj4qltpLnS/AfgXTpoP+Ei8XasEaNWjsYZ4rTS7J57c6zr99pOiQzwz6jHInzX4e8P654s17RPC3hjSdQ1/xJ4k1bTtC0DQ9JtZr7VNY1rVruGw0zS9OsrdXnu76/vZ4bW1t4UaSaeVI0UswFf6HP8AwSm/4J56H+wP8ALbTtdttP1D49/EuHTfEPxk8S2/k3Is72OF5NJ+H2i3se9ZPD3guO6ubc3EUjx61r9zrOthls7rTbLT/wBO8LPD6vx5n8adeNSnkGWSpYnOsVHmhz03Lmo5bQqJaYrHuEotxblh8JHEYlpSWH5v4W+nv9MDKvomeEVfG5XXwWM8W+OKWPyXwyyKv7Kv9XxcaPssy41zXByk3LIuE4YqlXjTrQjRzfiCrk2SRlUpvN1R+5vgD8Cvhz+zT8IPAvwR+FGjLongfwBosOkaXA3lvfahcFnuNU17WrqOOIX2veINUmu9Z1q+8qMXWpXtxJHFDEY4Y/YaKK/0Ew+HoYTD0MLhaNPD4bDUaWHw9CjCNOlRoUacKVKlThFKMIU6cIQjFLRLdtylL/j5zjOM14hzfNM/z3Mcbm+d53mOOzfOM2zHEVcXmGZ5pmWKr47MMfjcVWlKriMVi8Xiq+Ir1ZyvKpUdlCEadOkUUUVsecFFFFABX8zf/BwB/wAFFf8AhWHgmT9ib4R675XxB+JWjQ3vxv1fTbnFx4S+Gupx+ZZeB/Ogbfba18Q4f3+swO6S2/gUfZ7i2mtPGlrcW/7Ift+ftneC/wBhb9nDxd8afEv2TU/EhQ+HPhf4NnnMUvjb4ianbXDaJpJEbpOukWKwXGueJryFlks/D+mag9sZNQksbW5/zdPiZ8SPGnxg+IPjH4o/EXXbvxN448e+IdS8T+J9cvWBmv8AVtVuHuLhkjUCK1tIdy21hYWyRWenWMNtY2UMNpbwxJ/Pfjt4h/2Dlb4Tymvy5znWHbzGrSnapl2T1eaEoc0XzU8VmiVShT1jOngViqyt9YpN/wCxP7J76G//ABFrjyP0hPEHKfbeG3hjnEI8HZfj8PzYTjLxIwDoYqhiHSrU3TxeR8CSlhM0xj5auHxfFNTIcul7RZTjqcf66P8Ag31/4KHf8J/4P/4Ye+LGueZ40+H2l3Wq/AjVdSuAZ/Enw+sVa51f4fiadvMuNU8BqZNS8P26vNLL4Ke6sreC10/wWGm/p3r/ACn/AIZ/Ejxn8H/iD4O+KPw71y78N+OPAXiHTPFHhjW7Nh51hq2k3KXNs7xtmK6tZiht7+xuUktNQsZrixvIZrW4mif/AElP2Cv2xvBn7cn7N3gz43+F/smna7PF/wAI98S/CEE5ll8E/EbSbe2PiDQm3u8zadcfaLbW/Dl1M3nXvhvVdKubgQ3j3VtAvAfxB/t3Kv8AVLNa/Nm+SYdPLqtWd6mYZNT5YQheT5qmIyu9OhPWU54GWFqu/wBXqNV+1l+h7/xCjj//AImF4Byr2Ph14o5vOHGWBwOH5cJwh4lYz22Kr4r2dGmqeEybj1U8VmuFfLSoYfiqjn+Ai4PNsJTl9mUUUV/Qp/joFFFFABWH4m8NeH/GfhzXvCHizR9P8Q+F/FGj6l4e8RaDq1tHeaZrOiaxZzafqml6haSho7izvrK4mtrmFwVkikdT1rcoqZRjOMoTjGcJxlCcJxjKE4TjKE4TjJSjKM4ylGUZRlGUZSjKLjJp60K9fC16GKw1athsThq1HE4bE4erUoYjD4jD1aWIw+Iw9ejUpVqFehXoUK9CtRq0qtGtRo1aVSnVpU6kP85f/gqV/wAE/vEH7A37Q9/4Z0+HUNR+CPxBfUfE3wU8VXfmTtLoS3Cf2j4L1e9IKS+J/A893badqDlvM1PSrjQ/ELRWx1lrK0/M+v8ATU/bq/Y38Afty/s8+Lfgl41WDTtVuEOu/DrxmbYXF74D+IGnW9wuheIbZRiSaxczzaV4h06N421Xw9qGp2Mc1tdSWt5a/wCbv8ZPhB4/+AfxR8b/AAc+KOhT+HPHnw+1678PeItKmyyLc2xV7e+sLjaqX+j6tZS22raJqkANrqmkXtlqNq729zE5/grxh8OpcE559dy6jL/VvOatWrl7im4ZfineriMpqS15Y01J1sA5O9TBS9leVTBzv/1tfs3/AKZtD6UHhYuF+Msxovxs8M8BgcBxdTqzp08RxhkCVPA5N4gYSivZ+1q410aeWcWwoU+XB8S0/rrhRwnEmG9n5nRRRX48f6QhRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQB+0X/Bu9/wAppf2AP+yua1/6rTx1X+ytX+NT/wAG73/KaX9gD/srmtf+q08dV/srUAFFFFABRRRQAUUUUAf4vP8AwXp/5TF/8FDP+zjPFP8A6R6XX5G1+uX/AAXp/wCUxf8AwUM/7OM8U/8ApHpdfkbQAUUUUAFFFFABRRRQAUUUUAfod/wSn/bi1j/gnV+3z+zp+1dZm7n8NeBfGcWk/FLR7NWml1/4QeNLabwn8TNMhtR8l3qUXhTVtQ1fw7HMrRweKdK0O9277RCP9tHw54i0Lxf4e0Hxb4X1ax1/wz4o0bS/EXh3XdLuI7vTNa0LW7GDU9I1bTruItFdWOo6fc295aXEbGOa3mjkQlWBr/Agr/Tu/wCDSL/gqvb/ALTv7L9z+wF8Wtfjk+Of7I/hy1f4XT39wPt3j79mpbuDS9Eht1Zi1xqPwZ1O8sPBF8iJBHF4M1T4diBLu6t9cuowD+wqiiigAooooAKKKKAP5av+C73/AAbffDX/AIKYf2x+0v8As133hz4NftsWGkKmrSahANP+G/7RFvpdssOm6Z8RpbC2lufD3j2ztIYtN0D4l2trfG5sYrXw94x0/UdMg0XW/CX+Zr+1X+xt+1B+xD8Tb34QftV/BTxx8FvHdqbiSzsPFemBdI8SWFtKIJNa8FeK9PlvvCvjjw+Zj5Ka/wCEdZ1nR2mDW/2zz45Ik/3X68D/AGj/ANlr9nb9r74a6l8H/wBpv4OeA/jX8OdUYzSeGvHeh2+qx2F95bwx6x4e1IeVrPhbxBbRySLZeI/DWo6TrtgHc2WowFmJAP8ACDor/TP/AGuf+DMH9hv4o/2prv7I3xs+LX7LHiK486ay8JeJxH8d/hRbsuXgsbO08Qal4d+J2nJMx8ibUtR+JnipreIxzx6XcSRSRXX4I/F7/gzO/wCCo/gf7Vd/DL4ifsq/G3T03mzstG+IPjHwN4ruAuSvn6Z47+H2k+F7V5BgIE8b3ShtwkeNQrsAfyPUV+6/ib/g2h/4LeeFbi5gvP2FfE+ppbyMq3Xhn4tfs++KLe5QfdmthoPxYv7hkkXDKkkEU652SwxyhkXyO4/4IF/8FkLa+TT5P+Cev7QbTuSFkt9D0e7sQR136na63NpsY54aS7VW/hJwaAPyEor9y/DH/Btd/wAFuPFk1vFp/wCwf4z09bh0XzvE/wATfgP4RhhVyMyXB8T/ABU0mSNIxlnHlmTAIWNnwp/RH4Of8GaX/BUrx59ku/ih49/Za+BenPsN7Za78Q/FXjvxZbB8bhb6X8PvAut+Frt4xnesnjmzQttEckgJZQD+SOtrw54b8ReMNd0rwv4R0DWvFPibXbyHTtE8O+HNKvtb13WNQuG2wWOlaRpkF1qGoXk7fLDa2lvNPI3CIxr/AEkP2X/+DKr9jfwJ/Z+r/tX/ALS/xn/aD1iDyp7nwx8ONK0P4GeAJ5DtabT9RMk3xF8dapaR/NFHfaT4u8HXdxgXBgtdxtU/p2/ZD/4Jx/sOfsG6Guifsmfsz/C/4PTPaCxv/FmkaI2s/EnXbTC5t/EnxS8Uz658RfEdvuUulrrXie+tYXeQ28EQkYEA/wA57/gmt/waXft0ftbtoPxE/a0ln/Yk+CF4be9Ol+MtFOqftEeKdOYiQw6R8Kpp7JfAIuVSazm1D4oahoeuaTK9vqFv4C8R2TbX/wBAD/gnv/wR+/YH/wCCZfh+G1/Zj+CumW3xBm07+zvEXx28etb+Nfjf4qikjEd4l745vbOA+H9N1ALG194X8B6d4R8HzyxRXDeHvtKmZv05ooAK/iq/4Pbv+TJf2Pv+zp9U/wDVS+MK/tVr+Kr/AIPbv+TJf2Pv+zp9U/8AVS+MKAP81yiiigAooooAKKKKACiiigD+lP8A4NT/ANsj/hln/grD8OfAGvar9g+H37XnhnWf2ddfjnm22MfjPVpLbxP8ItQEBZVl1a78f+H9N8C6bJy8MHj3UgisJmB/1pa/wMfAnjbxN8NPG/g34jeCtVuNC8ZeAPFXh7xt4S1u0O260bxN4V1ez13QdVtm7XGn6rYWl3Ce0kKmv9zn9jb9pLwx+2F+yn+z1+1D4Q+zx6J8dPhJ4J+Io0+2lM66Dq+v6Ja3HiTwtNIWcm98J+JP7W8M6iu+TZf6Tcp5km3ewB9K0UUUAFFFFABRRRQAUUUUAFFFeY/Gv4t+D/gF8HPit8cviFe/2d4E+Dnw58a/FDxjfAoHtvDPgTw5qPifW5IRIyI9x/Z2mXC20RYGacxxLlnAIB/mTf8AB4X+2R/wvr/gpH4c/Zq8P6r9s8E/sZ/DLT/DF9bQz+fZj4vfFqDSvH/xBvLeSM+SXg8Jj4W+GL6EB5rLWPDOq2s8glWS3t/5Lq9i/aG+NvjD9pT48/GX9oT4g3H2jxt8bfif44+KfihlkeWGHWfHPiPUfEd5ZWZcAx6fp8moGw023VUitbC2traGOKGJI18doAKKKKACiiigAooooAKVWZWDKSrKQyspIZWByCCOQQeQRyDyKSigD/Z4/wCCFf8AwUCg/wCCj/8AwTc+Bfxt1nVotS+L3g/TT8Fvj/EZVkvU+Lvw3sdOsNV12+VSRFL8QfD114a+JccUY8q2i8YrYod9nKqfsBX+UF/wa4/8FV7f9gT9tX/hQvxZ1+LTP2Zv2xtQ8NeBfE+o6lcLDpnw5+MFpPc2Hwq+Ics9wwt9N0W/vdYuvAvje5Z7O0i0nXtJ8Uaxdm08DwQN/q+0AFFFFABRRRQAV+c3/BTX/gmB+zR/wVS/Z8vPgZ+0Hos1jquky3etfCf4u+HLeyX4hfCDxhPBHEdb8M3t3FJHeaPqqQW1n4v8IagTovirTIYEuBZ6zpuga7ov6M0UAf4y/wDwU7/4IZ/t3f8ABLnxJrmofFX4d3/xG/Z8i1V7Xwr+058NNNvNZ+Geq2FxOI9JHjGO3N3qfwq8SXavFby+HvG6WVvcaot1a+Ftc8V2FumrXH431/v0arpOl69peo6Jrmm6frOi6xY3WmatpGq2dvqOl6ppt9A9tfafqOn3kc1pe2N5bSyW91aXMUtvcQSPFNG8bsp/m3/bH/4NSf8AglB+1Pea74p8B+A/GX7I/wAQtanu9Rk1n9nnX4dO8DzarcM7q938I/Ftl4l8C6XpCM/zaJ8PLL4ewlVUQ3Fuxd3AP8l+iv7V/jn/AMGTX7Z/hvUNTn/Z2/ay/Zz+LGgQSPLpsHxS0v4hfBnxXd233ktjY6BoXxf8Om+QnyvMn8S2FpOFM5e03i2T8u/iH/wa0/8ABbfwFfy21j+yZpXxG05C4TXvh58c/gVqNhPsOP3WneIfiH4Z8UKGGGQ3Hh6DcDj74ZAAfz2UV+xWuf8ABvz/AMFmfDxYX/8AwT6+OlwVOD/YcHhPxMD2+VvDfifVg491JB6g4rZ8Pf8ABu5/wWm8TbP7N/YA+Ldt5mNv/CQ638M/CWM/3/8AhK/Hei+V7+Zsx3xQB+LlFf05/B7/AINGP+CyfxNa2PjH4f8AwN/Z/gnKlpvi78cvDeqtBExB8yW1+CFr8Y7pW2Hd5DRLOp/dzJE4ZV/ZL9mn/gyItI7m01T9sP8AbcuLq0V4xfeCP2a/AUdlcSxja0rW3xS+J5vkgY/NEkcvwgnAGJjNnMAAP8/qv2S/4J4f8EHf+Cjn/BSLUtH1P4T/AAW1P4b/AAZv2t57v9oX432mr/D/AOFS6ZMQTeeFrm80yfxF8SpSgZYoPh3oXiS3huTDHrF9o1tL9sT/AEx/2NP+Dfr/AIJSfsPX2neJfhh+y74b8ffEfTDBLa/FP4+XU3xm8ZWt7bEG31TRbXxak/gnwdq8TbmXVPA3g/wxffvHVpzHtRf2eACgKoAAAAAGAAOAABwABwAOlAH8z3/BNP8A4NbP+CfH7Cv9gfED4waOn7Z/7QemfZr4eNPjBoFivwt8L6vDtkE/gH4KPcav4che2nSKez1jx7fePdfsr63j1LQ77w/I5tY/6YERI0SONFjjjVUREUKiIoCqiKoCqqqAFUAAAAAYp1FAHw5/wU7/AOUa3/BQv/sxz9rL/wBUJ4/r/Dqr/cV/4Kd/8o1v+Chf/Zjn7WX/AKoTx/X+HVQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFfsD/AMEff+CcV/8At0fHNfEvjzTLuL9m/wCEOoafqvxJvmEttD411rK3mi/C7S7tNkjTayEW98V3Fm6zaR4VSVPtOn6prvh6ab18hyPMeJM3wGSZVQdfHZhXjRpR1VOnH4q2IrzSl7LDYaiqlfEVWrQp03bmnOlCp+deLXipwZ4J+HXFfij4gZnDKuFuEMrrZlj6q5JYvG19aOXZNlWHnUpvHZ1neYzwuVZTgacufEY3Fwc3SwuGx2Jwn63f8EBv+CaX9h6fpv7dnxu8P41jV7W4j/Zz8MatbYfTNGu4pLTUPi3d2k6blvNbt5J9L8BmUIItFk1HxPFFcLrHhrUbT+qmqmn6fYaTYWWl6XZWmm6Zptpbafp2nWFtDZ2NhYWcKW9pZWVpbpHb2tpa28ccFtbQRpDBDGkUSKiqot1/oxwZwll3BWQYPIsuipKjH2uNxbgo1swx9WMfrOMrWu1zzXJQpuUlh8LToUIv3akqn/GB9Jf6QnGf0nPF3iXxV4yqToPMazwHDPD1PETr5fwhwjga1dZHw3l3NywksLh6jxWZ42NGlUzfPMbmua143r4SlgyiiivqT8DCiiigArN1nWNJ8O6RqviDXtSsdG0PQtNvtY1rV9TuYbLTdK0nTLWW91HUtQvLh47e0sbGzgmuru5ndIYIIpJZXVEYjSr+V3/g4L/4KLf8I/pMn7CXwh13brev2lhq/wC0PremXG2XSvD1ykOo+H/has8Lb47vxFE1r4i8YRKYmXw+dD0d5Lq08Q63ZQ/LcZ8V4Dgvh7HZ7j2p+wh7LBYTnUKmPzCtGccJg6W7XtKi561SMZewwtLEVmvdgp/vn0Z/o/cW/Sb8YuFfCfhONTD/ANq4j69xNn7w8q+D4T4Py6ph6nEHEeNXu05fVMJUWFyzC1KtJ5pnuYZRllOX7/FTw/4kf8FW/wBv7Vv28/2j9Q1zQ7u+t/gZ8NH1Lwn8FtBn86BZ9INzGNY8eahZShDDrvju6s7a/kjlhiuNO0G08P6HcB7jSri5ufzAoor/ADjznOMfn+a4/Oc0rvEY/McTUxOIqO6ipTdoUqUW5KnQoUlToYelF8tKjRpwV7SlP/tL8M/DnhLwi4B4T8NOBMrp5RwpwbkuEyTJ8HDllVlSw0ObEY7HV406csZmua42pjM1zbH1Y+1x2Z5hjMRPlUqFLDlfq1/wSM/4KAXv7Cv7SNlL4q1G6PwD+LUumeEvjBpoMssGjRC4kj8O/Ee1tY97Nf8Agm7vbmW/WGKee+8LX/iCxt7abUZNMktvyloqsjznH8PZtgM6yus6GOy7E08TQnryS5XapRrRTj7TD4ijKrh8RTbtUo1px0koShl4peGnCPjH4e8XeGPHeWxzThXjPJcXk2aYf3I4igq8efB5nl9adOp9UzbJ8wpYHN8pxsI8+EzHL8NVXNSniqOI/wBY6xvrLU7Kz1LTby11DTtQtbe+sL+xuIruyvrK7iSe1vLS6geSC5tbmCSOa3uIXeKaJ0kjdkYE2q/ma/4N+v8Agod/ws3wL/wxN8WNc83x/wDDLR59R+COqalcZuPFXwz09d+oeCBNO2+51f4eK3n6Nbo8ks/gaT7NbW0Fl4Lup5v6Za/0e4Q4owHGPD+X59l7UaeLp8uJwzkpVMDjqSjDGYKtaz56FZvkk4x9th6mHrxXLVaj/wAVn0i/Aji76Nvi/wAXeEvGNOVTFZBjfbZLnMaE6GD4p4VzCVbEcOcT5cpc0fq+a5dGH1mhCrVeXZthM4yqtP2uXxdcooor6U/EAooooAK/n6/4Lof8E2P+GmvhdJ+018H9A+0fHn4OaDOfEuj6Xbbr/wCKPwu04TXt5pyQQr5l/wCLPBSvd6x4cCZvNV0l9Y8Oxx6het4btbX+gWivA4n4by3izI8fkOaU+fDY2k1GrGMXWwmJheWFxuGck1Gvha3LUg7pTj7WjUvSr1EfrngV41ca/R78U+E/FjgLGewzzhjHxqV8DVqVoZdxDkeKdOhnvDOc06Mk6+U57lvtsHiVyzqYWusBmeEUMflWEqP/ACZ6K/oG/wCC6H/BNj/hmX4ov+018H9A+z/AX4x69MfEuj6XbbLD4XfFHUTPe3mnR28KiOw8JeNSl1q/hwRhbPStXTWPDqR6fZJ4btrv+fmv85eJ+G8y4TzzH5DmlPlxOCqtQqxUlRxeGneWFxuHcleVDFUeWpDVuEva0alqtCoj/tH8CvGrgr6QnhZwn4scBYz2+R8T4BVK+BrVKM8x4ezzCqnQz3hnOadGTjQzbIsy9tg8QuWFPFUHgMzwingM1wlRFFFFeAfroUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQB+0X/Bu9/wAppf2AP+yua1/6rTx1X+ytX+NT/wAG73/KaX9gD/srmtf+q08dV/srUAFFFFABRRRQAUUUUAf4vP8AwXp/5TF/8FDP+zjPFP8A6R6XX5G1+uX/AAXp/wCUxf8AwUM/7OM8U/8ApHpdfkbQAUUUUAFFFFABRRRQAUUUUAFfTP7Hf7Wvxm/YZ/aR+Ff7UvwD19dB+Jfwo8QprGmC6WWfRfEOk3UE2m+JfBviexilgfUfC3jDw/eaj4e1+yjnt7l9O1CaWwu7HUYbO+tvmaigD/cC/wCCa/8AwUL+Cf8AwU3/AGUPAP7UPwVu1tItbi/sL4j+ALu+gvPEXwn+KGlWto/iv4feIjEkLSTadLd29/oWrNa2cXiXwrqWh+JbW1trfVktofvav8Vj/gkx/wAFZf2hf+CTH7RNp8WvhRdTeK/hh4rl0zSfjt8C9U1Oe08J/FbwjaTyMnziO5j8P+O/DqXV7d+BvG9tZ3F5oV7cXVjfW2r+F9Y8Q+HtY/16v2H/ANuf9m//AIKGfADwp+0Z+zJ47svGHgvxDbwwa1o00lrbeM/hz4qW2hn1XwF8RvDsN1dXHhnxfojzKtzZzSTWOpWj2mu+HtQ1nw5qelaxfAH17RRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFfxVf8Ht3/Jkv7H3/AGdPqn/qpfGFf2q1/FV/we3f8mS/sff9nT6p/wCql8YUAf5rlFFFABRRRQAUUUUAFFFFABX+mh/wZkftkf8AC1/2IPjF+x34i1X7R4n/AGUviafE3guznnw6fCD45S6r4it7OwgkYyTpovxR0f4jXupzQEw2ieLtDgljheeF7n/Mvr+hL/g2G/bI/wCGRP8Agrd8DLDWtV/s74e/tQW2pfsu+NhLNttje/Ei6025+F9yY5GFutwnxf0LwJppvZCklnpOr6yI5AlxNFMAf681FFFABRRRQAUUUUAFFFFABX8q3/B3j+2R/wAM7/8ABMRPgHoGq/YvHn7ZvxG0n4bJBBN5GoJ8KvAMtj8QPihqdswYM9rPeWXgTwNq0IVln0zx9cxOQrkN/VTX+Uv/AMHcH7ZH/DSP/BUjUvgr4f1X7d4A/Y18AaL8IbSK3m87TpviZ4mSHx78VtVhBYmPULa61fw18PtYjCoEvPh1sCsVMsoB/LfRRRQAUUUUAFFFFABRRRQAUUUUAFf6lH/BsR/wW/h/bw+Ddn+xj+0n4qib9sH4C+E7ePwt4i1m7Vb/APaF+D2gQwWFp4kW4nYPqXxM8BWv2TS/H9u5k1LxFpA03x8kmp3U3jWXRP8ALXr0j4P/ABg+J3wA+J/gf4z/AAY8b6/8OPil8N/EFl4o8E+NvDF61jrWg61YMTFcW8oDxT288TzWWpabew3OmavplzeaVqtneabeXVrMAf72FFfzsf8ABCH/AIL2fCb/AIKr/DKw+GXxPvvDPwy/bk8CaKg8e/DJbqLTdK+K+nadbZuvil8HrW8nM9/pc8cL3fi7wbBJeav4DvTKZvtnhqfStbu/6J6ACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooA+HP8Agp3/AMo1v+Chf/Zjn7WX/qhPH9f4dVf7iv8AwU7/AOUa3/BQv/sxz9rL/wBUJ4/r/DqoAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKtWNje6ne2em6bZ3WoajqF1b2NhYWNvLd3t9e3cqQWtnaWsCST3N1czyRw29vCjyzSukcaM7AFpNtJJttpJJNtttJJJJtttpJJNttJJtpOZzhThKpUlGEIRlOc5yjCEIQjKc5znOUIQhCEJznOc4QhCE5znGMZSj7x+y5+zX8Sf2t/jj4G+BHwr0/7V4l8ZaksdzqVxHK2keFPDtpifxB4v8AEM0SsbbRPD+nCW8uiM3F5MLbStOjudV1CxtLj/SQ/ZX/AGZ/ht+yJ8DPA/wH+Flh9n8O+D9PAvtWniiTV/F3iW8CzeIfGHiGWIYuNZ1+/wB9zMNxgsLUWej6ctvpWm2FrB+fv/BHj/gnDZfsNfA4eLPH+l2r/tI/GDTtP1P4iXbrFcT+BtAOy90X4W6bdruVF0tjHqHjCa0bydV8UkwG41HTPD2gXK/sRX90+C/huuD8o/tnNaCjxJnVCEqkKkV7TKcuny1aOXxum6eJrfu8RmLVpKp7HBt8uFqxl/ykftNfpqz+kd4i/wDEM/D/ADWVTwU8M81xNHBYnB1pfVPEDjPDe3wGY8YVHCUYYrJMtti8o4MjNTpTwf8AafEkIqtnuAq0iiiiv24/y4CiiigAoorn/Fnirw54F8L+IvGvjDWbDw54U8JaJqniPxLr+qzrbabouhaLZTahqup31w3EVrY2VvNcTvgkRxtgE4Bmc4U4TqVJRhTpxlOc5yjCEIQjKc5znJxjGEIQlOUpSjGMYylKSjFtbYfD4jF4jD4TCUK2KxWKr0MLhcLhqVXEYnE4nE1qWHw2Gw9CjTq1q+IxGIxFChQoUaVWtWr16NGlTqVatOnP4g/4KSfty+F/2DP2bfEXxPumsNT+JPiH7R4T+DXg+7fcfEXjq8tZGhv721R0nfwz4Ttydf8AE0yvAkltb22ixXlvqmuaWJf84vxn4x8UfEPxb4m8eeNtbv8AxL4w8Y67qniXxP4g1SYz6hrOu61eTahqeo3cuAGnu7ueWZwipGm7ZEiRqqD7q/4KZft2eI/29f2ktd+Ihkv9P+FXhL7X4S+C3hO7Zo/7G8GW90XbW7+zVjFF4n8Z3Ua674gfMs1srab4f+13Vh4f0+QfnhX8BeLviBPjjiGVLBVZf6vZNOthsqgnJQxdTm5MVms4u15YuVNQwvNHmpYCnRSUZYmqj/rw/Z0/Q/w/0WvB2lj+J8BRXjH4lYfLs84/xMo06mI4fwSp/Wch4Aw1ePPy0eHqWLlis99jV9ljuLMZmM3KvRybATZRRRX5Mf6FBRRRQB3/AMK/if43+C3xH8FfFj4b65c+HPHXw/8AEWm+J/DOs2py1pqemTrNGk8J/dXlhdxiSy1PTrgPZ6nptzdafexTWlzNE/8ApM/sLftf+CP23/2cfBPxz8IfZrDUtQhOh/ELwlFP58/gf4iaTBbDxJ4bnLM0zWge4t9W0C6nCTaj4a1TR9RljgmupbeH/Mnr9af+CQP/AAUDuv2Gv2jrS28Y6ncL+z/8YZ9L8K/FmzZpJLXw5Os8kXhr4mW1um5hc+ELq8nXWRCkkt74T1DW4Y7a61KDSPs/7J4M+IL4N4gWAzGu48PZ7Uo4fHOcn7PAY26pYPNFd2hCDmsNjmkk8HUjWld4O6/zV/aX/Q/j9JXwglxdwblka/jJ4UYLMc34XjhqMXjeLuGeWWO4j4Ek4RVTE4nEQw0874Vpyc3T4jwVXL6KjHiNwn/oX0VXtLu1v7W2vrG5t72yvbeG7s7y0mjuLW7tbiNZre5triFnint54nSWGaJ3jljdXRmVgTYr+9E00mmmmk000000mmmm0000002mmmm003/yVSjKEpQnGUJwlKE4TjKM4TjKUZRlGUYyjKMoyjKMoxlGUZRlGMoyjEooooEFFFFAHmfxk+EPgD4+fC7xx8HPijoUHiPwF8QdBu/D3iLSpsLI1tchXt76wuCrvYaxpN9Fa6tomqQAXOl6vZWWo2rJcW0Tj/N4/bq/Y38f/sNftDeLPgl41WfUdKgc678OvGZtmtrLx58P9RuLhND8Q2y8xxXyeRPpPiHT43lXS/EWnanYxTXNrFbXlz/pp1+Z/wDwVJ/4J/eH/wBvn9nm/wDDOnw6fp3xt+Hyaj4m+Cniq68uBYtda3j/ALR8GavesA0XhjxxBaW2nag5fy9L1W30TxC0dyNGeyu/x7xh8Oo8bZH9dy6jH/WTJaVWrl7ioqeYYXWriMpqS05pVOWVbAOTtTxq9mnGnjJ2/wBIf2b/ANM2v9F/xTXDHGWY1l4J+JmPwOA4vp1Z1KmH4Pz5ungcm8QMJRXP7KlglWp5ZxZChT5sbwzU+uuFbF8N4b2n+cvRW54n8M+IPBfiPXvCHizR9Q8PeKPC2sal4e8RaDq1tJZ6po2t6PeTafqml6haTBZba8sb23mtrmFwGjljZT0rDr+CpRlCUoTjKE4SlCcJxlGcJwlKE4TjJRlGUJxlGUZRjKMoyjKKlFpf9bVCvQxVChisLWo4nDYmjRxOGxOHq06+HxGGxFGliMPiMPXo1KtGvQr0K9CvQrUatWlWo1qNWlUqUqtOpMoooqTUKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigD9ov8Ag3e/5TS/sAf9lc1r/wBVp46r/ZWr/Gp/4N3v+U0v7AH/AGVzWv8A1Wnjqv8AZWoAKKKKACiiigAooooA/wAXn/gvT/ymL/4KGf8AZxnin/0j0uvyNr9cv+C9P/KYv/goZ/2cZ4p/9I9Lr8jaACiiigAooooAKKKKACiiigAooooAK+6P+Cf/APwUY/ap/wCCaPxw0745/sueP5/DmpubOz8ceBdXFzqnw1+K3hm2naZ/CnxF8KJdWsGtaawluRp+pW09h4k8N3NzLqXhfW9F1Mi8HwvRQB/sB/8ABJz/AIOHP2Jf+CoVh4f+H/8AbcH7PX7WFxaQxap+z38R9Zs4m8U6qkKtdy/BfxpMthpXxMsGImlh0SODR/iBa21veXN94OTSrVdYuv31r/AQs7y7067tdQ0+6ubG/sbmC8sr2znltruzu7aVZra6tbmFkmt7m3mRJYJ4nSWKVFkjZXUEf1K/8E5P+DsX/goD+x6ugfD/APaReH9tz4I6aLWwEPxI1mbR/jr4d0uELEP7A+M0Nnqd54laBC9xJb/FDRfGuoX3lQafZ+JPD9qPNjAP9Vqivwu/Ym/4ONf+CUX7bsei6N4e/aJ0v4E/E/Vkt42+FH7S6Wnwk19dQuFVY9N0rxbql/dfC3xTe3FyXt7DT/DHjzVNZu2WPdpVu9xDE/7mQTwXUEN1azRXNtcxRz29xBIk0E8EyCSGaGaMtHLFLGyvHIjMjowZSVINAEtFFFABRRRQAUUUUAFFFFABRRRQAUVXu7y00+1ub+/urexsbOCW6vLy7nitrW0toEaWe4ubiZkhgghjVpJZpXWONFZ3YKCa/GH9sb/g4O/4JPfsUR6lp3j/APan8KfFDx7p6Sj/AIVb+zqYfjZ40ku4c+Zpd/eeFLuTwH4T1RMDNl488beFJPnTswoA/aav4qv+D24/8YS/sejv/wANT6qcfT4S+L8/lkfmK/Ln9un/AIPPP2oPiZ/bHhD9gv4K+GP2bPC03n2tp8V/iommfFb4x3EB3C31PSfC0kH/AAqrwVdlWCz6Zq+n/FiJWjWS31aMsVX+R/8AaH/ao/aR/a18cTfEf9pn44fE744+NJTOINb+JHi/WPEzaVb3Egkk07w9Y39zJpnhnR1ZV8jRPD1lpmkWyoiW1lEiKoAPAqKKKACiiigAooooAKKKKACtfw/r2s+Fde0TxR4c1K70bxD4b1fTde0HWLCVoL7StZ0e8h1DS9Ssp1+aG7sb63guraVfmjmiRxyKyKKAP9zb/gn5+1To37bv7FH7Mn7VuivaAfGv4ReFfFXiCzsSDa6L47itP7F+JHhqEqzAjwt8QdK8TeHGOeX0tiQp+UfYVfxLf8GWP7ZH/Ce/sv8A7RP7EfiTVfN179n/AMf2fxd+HFpdTZmf4ZfGBZrbxNpWlQbiP7P8K/Efw9e63qUhVCL/AOKVsN0ocCH+2mgAooooAKKKKACiiigDxD9pj48eEP2Xf2ePjf8AtHePpAng/wCB3ws8c/FLX4vPS3mv7LwV4d1DXv7IsncMG1PWprKLSNKgVJJbrUr21toIpZpo42/wufi58UPF/wAbvit8TPjP8QdRbV/Hnxa8f+MPiX401Rt+dQ8VeOfEOoeJvEF4A7yOq3Gq6ndSojOxRGVNxxmv9Mv/AIPGf2yP+FH/APBO7wR+y34f1X7J4y/bH+J9np2s2sM3l3LfB74MT6P478ZSo8befF9r8d3Hwo0eRDshv9J1DXLSV5IhNBL/AJeNABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFAHVeB/HPjT4ZeMPDXxC+HXivxF4F8d+DdZsPEXhLxj4S1i/8P+JvDWvaXOl1p2saHrelz2uoaZqNlcIktvd2lxFNE65VxzX+h5/wRs/4O2/hz8RNI8I/s7/8FR9TtPhv8T4PsmheH/2tLLTYbT4YeORtjtbJvjLo+kwqPhr4onl2Le+M9H09vhzfmWbUdctvh7aWUlxqH+czRQB/vw+H/EGg+LND0jxP4W1vSPEvhrxBptnrOgeIfD+pWWs6Hrekajbx3en6rpGradNc2Gpabf2ssVzZ31lcTWt1byRzQSvG6sdev8Xf/gnP/wAFvP8AgoV/wTGurHR/2f8A4vSeIfg5HqMmoap+zx8WLe58cfBzUGuZ/tGoNpOjS31jrngK91GbM99qnw48QeEr7UbkJJq0upRK0D/3d/sF/wDB3p/wT1/aN07RPDH7WFj4j/Ys+LFx5Fne3XiKDU/iF8D9Wv3CRLPpHxG8MaOda8OQ3UoluLiLx94P8P6PocLxW8ni7Vysl4QD+s2ivO/hb8XvhR8cfB2m/ET4L/EzwB8W/AOsLu0rxr8NPGHh/wAc+FNRwiOy2ev+GdQ1PS55EWSMyxx3TSRb1EiqTivRKACiiigAooooAKKKKACiiigAooooAKK+Hf2rP+Cln7BP7EWnXt9+1H+1Z8HPhPf2MZlbwdqXiq2134mXaKnmE6V8KvCa6/8AEjWQF27m0rwteJGZIhIyGWPd/J3+3D/wepfCTwxDqvhP/gn1+zlrvxQ15RPbWvxf/aKM3gvwBb3CbhFf6N8L/C2qy+OPFunTqUdD4g8VfC/UIHV1m0uZCpIB/WH/AMFO/wDlGt/wUL/7Mc/az/8AVCeP6/w6q/S79t7/AILAf8FFP+Chl3fwftNftMeOfEPga8uDNB8HfCNzH8Pfg1YxpJ5lnCfhz4PXStB12bTx+7s9a8XQ+I/EioWM+tTySSu/5o0AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFd98Lfif42+DHxB8K/FL4carbaF478EapHrfhbW7rQvD/iRNH1iCORLTVINJ8U6VrWiS39g0n2rTbq602ebTdQittSsHt9QtLW5h4GitKVWrQq0q9CpOjWo1IVaNWlJwqUqtKcalOpTnG0oVKc4RnCcWpRnGMotSimuTMMBgc1wGNyvNMHhcxyzMsHisvzHL8bQp4rBY/AY3D1sLjMFjMNVTpYnCYvC4ivhsTh6sZUq9CvWo1Yyp1akJ/qb/AMPrf+Cnv/R1Gs/+G2+C/wD87ej/AIfW/wDBT3/o6jWf/DbfBf8A+dvX5ZUV9J/rvxp/0V3E3/h9zT/5rPxP/iVr6Mv/AEjv4Hf+Kn4D/wDoeP1N/wCH1v8AwU9/6Oo1n/w23wX/APnb0f8AD63/AIKe/wDR1Gs/+G2+C/8A87evyyoo/wBd+NP+iu4m/wDD7mn/AM1h/wAStfRl/wCkd/A7/wAVPwH/APQ8fqb/AMPrf+Cnv/R1Gs/+G2+C/wD87ej/AIfW/wDBT3/o6jWf/DbfBf8A+dvX5ZUUf678af8ARXcTf+H3NP8A5rD/AIla+jL/ANI7+B3/AIqfgP8A+h4/U3/h9b/wU9/6Oo1n/wANt8F//nb15X8af+CoX7eX7Q3w5134S/F/9ofxB4s+Hnic2H/CQ+G4vC/w98NQ6xHpt/b6nZ219feEvCGharPZJf2ltcy2DX32O5kgiF1BMqKo+BqKyr8YcW4qjVw2J4o4ixGHr050a9CtnWZVaNalUi4VKVWnPFuFSnUi3GcJJxlFuMk02n35V9G/6POR5nl+dZL4EeDeUZxlONw2Y5XmuWeGPBOBzHLcwwdWNfB47AY3D5BDEYTGYWvCFfDYmhOnWoVoQq0qlOpCE4FFFFfOH7QFFFFABRRRQAUUUUAfov8ADf8A4K0/8FD/AISeA/Cnwz8A/tLeItG8E+B9Fs/DnhbR7rwh8M/EEmkaHpyeTp2lx6t4l8FaxrVxaafbBLOwivNRuRZWMNvY2xis7a3gj7b/AIfW/wDBT3/o6jWf/DbfBf8A+dvX5ZUV9LS4z4wo06dGjxVxHSo0acKVKlTzvM4U6dKnCNOnTpwji+WEKcIQhCMbRjCMYpJRSX4ljfo0fRyzLG4zMsx8AfBbH5hmGLxOPx+OxnhbwNiMXjcdjcRWxeMxmLxFXh51cRisVisTiMTia9RupWr161apKVSrUlP9Tf8Ah9b/AMFPf+jqNZ/8Nt8F/wD529H/AA+t/wCCnv8A0dRrP/htvgv/APO3r8sqKv8A1340/wCiu4m/8Puaf/NZy/8AErX0Zf8ApHfwO/8AFT8B/wD0PH6m/wDD63/gp7/0dRrP/htvgv8A/O3o/wCH1v8AwU9/6Oo1n/w23wX/APnb1+WVFH+u/Gn/AEV3E3/h9zT/AOaw/wCJWvoy/wDSO/gd/wCKn4D/APoeP1N/4fW/8FPf+jqNZ/8ADbfBf/529H/D63/gp7/0dRrP/htvgv8A/O3r8sqKP9d+NP8AoruJv/D7mn/zWH/ErX0Zf+kd/A7/AMVPwH/9Dx6p8afjX8S/2hviLrvxZ+L/AIgg8V/ELxOLH/hIPEkXh7wx4am1iXTrGDTbS6v7Hwlo2g6VPfLY2ttby37WP226SCI3U8zIrDyuiivnK9etiq1XE4mtVxGIr1J1q9etOVWtWq1JOdSrVqTbnUqVJNynOTcpSblJttt/tGVZVlmR5Zl+S5Ll2CyjJ8pweGy7K8qy3C0cFl2W5fg6UaGEwOAwWHjDD4TB4WhCFHDYahCFGhRhClSp06cIQgUUUVkd4UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFAHsPwA+Pvxd/Zc+MXgT4/fAbxjP8P/AIu/DPVZtc8D+MbXStB1yfQdUuNOvdJmu49K8UaVregXrPp2o3tt5Wp6VewATmRYhKkcifrz/wARMf8AwXE/6Pv8Sf8AhmP2a/8A5zNfhLRQB+7X/ETH/wAFxP8Ao+/xJ/4Zj9mv/wCczR/xEx/8FxP+j7/En/hmP2a//nM1+EtFAH7tf8RMf/BcT/o+/wASf+GY/Zr/APnM0f8AETH/AMFxP+j7/En/AIZj9mv/AOczX4S0UAfu1/xEx/8ABcT/AKPv8Sf+GY/Zr/8AnM0f8RMf/BcT/o+/xJ/4Zj9mv/5zNfhLRQB6t8cvjf8AFL9pP4uePvjt8bPFc/jn4sfFDxDc+KvHfi650zRNGn1/X7xIo7nUJdL8N6bo+hWLypDGDBpml2Vqu3KQKSSfKaKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAr7w/Zg/4Kgf8ABQr9jFNPs/2Zv2wPjn8LfD2luJLLwLYeNb/X/hjHIHMm9/hZ4v8A+Eg+HNw5Ytua58LzMyu6MSjurfB9FAH9fv7PX/B5x/wUg+G9nZ6T8efhN+zt+0lZW3lef4gl0HXfhD4/1DaAs32nU/A+pXHgGPzAAyfYvhhaeVKzk+ZGUhj/AGC+DX/B7r+yvrgtY/2gP2KPj58NJHCpdXHwk8d/D/40WsbnCmZY/FqfAy58jd87IommijyqC5dRv/zgKKAP9YnwL/wdz/8ABGXxb5P9v/Ej44/C/wA3bv8A+E6+Avi/UPs+cZ87/hWj/ETds/i+z+fnB27uM/Veh/8AByT/AMESPEMENxYft6+BbeOcBkXXPhv8dvDM6g9prbxJ8K9KubdvVZ4oyOuMV/jl0UAf7PWnf8F9/wDgjbqgBtv+ChP7P8QIz/xMdZ1zSDgDPI1bQrIg+xGSeAM1Wv8A/g4C/wCCNGm7vtH/AAUG+BEm3r9gvPFGq5/3f7L8N3m//gOc9q/xjqKAP9ifxL/wcsf8ERPCts9zf/t3eEr8LuCQeGvhT+0B4suZXAyESHw18J9UK7zhVkmMUAJy8qKGYfJHjz/g76/4I5+EI7l/D/ib9or4ptArtFF4D+Bl/p8l4VBKpbH4neIPhzErSYwhvJbVASPMeMZI/wAo+igD/RE+Mf8AwfAfCDTvtdv+z9+wV8SPF+/eljrHxj+MPhj4cfZ/+edxd+G/BXhT4p/bP9uzh8V2PXK33y4b8Yv2hv8Ag8E/4Ky/Fz7dY/CaT4C/sv6PN5kVnP8ADb4Yw+NvF0VrJkYv9f8AjNqPxD0S4vQjFBfaT4Q0DYAkkFvDcL5x/lYooA+uf2kP2+v22P2vrqef9pr9qj46fGq1mn+0J4e8cfEbxJqXgywlD+YDo3gRL6DwZoSCQCQQ6LoNhCJBvEe7mvkaiigAooooAKKKKACiiigAooooAKKKKACiiigD6r/Y/wD23f2p/wBgf4oal8Zv2Rfi7q/wZ+JOs+DtT8Aat4k0rRPCfiP+0vB2s6pomtajoV9o/jbw/wCJtAubWfVvDmh6ikk2lPc213pttNazwurFv0v/AOImP/guJ/0ff4k/8Mx+zX/85mvwlooA/dr/AIiY/wDguJ/0ff4k/wDDMfs1/wDzmaP+ImP/AILif9H3+JP/AAzH7Nf/AM5mvwlooA/dr/iJj/4Lif8AR9/iT/wzH7Nf/wA5mj/iJj/4Lif9H3+JP/DMfs1//OZr8JaKAP3a/wCImP8A4Lif9H3+JP8AwzH7Nf8A85mj/iJj/wCC4n/R9/iT/wAMx+zX/wDOZr8JaKAPsj9s3/goH+2F/wAFCPGHhHx7+2J8bNZ+NPinwF4an8IeEL/UvD3gnwrbaF4futUuNZu7O00fwD4Z8KaK095qNy815qVxp02qXccVna3F7JaafYQW3xvRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFAHtnwP8A2lP2h/2ZvEreMf2dfjn8W/gZ4pl8lbnXfhL8Q/Ffw/1G/it2Z47XU5/C+q6YdUscs6vYaiLqymjkkimgeOSRG/fz9mj/AIO0f+CvfwEWw03x54/+Fv7UvhuzWO3GnfHb4bafHrsdkoAZYfGvwqu/hr4lvdQ+88ep+KrvxTMJGBuI7qJVhH8y9FAH+gl8Gv8Ag+D0KX7JZftC/sA6tYbdn27xN8GvjfZ6v5mcCQ2ngbxv4F0TyNmCyLN8Q7jzNwRmj2mR/wBNfAP/AAeMf8EjPF0dsfE2n/tV/CyaVE+0r4z+DegatDayEDzB53w4+I3juSeJGzskS2EkiAMYI3JjX/K4ooA/2DPCP/Bzp/wRA8YW6yQftt6b4fudqmWw8XfBX9onw3cQFsYRrnUPhMmlTsM/MbLUbpV5LMAK9c03/g4M/wCCMeq7fsv/AAUE+CMW7GP7SHjTRuv97+1/Cdjt992Md8V/jL0UAf7QF7/wXw/4I4WCh5/+ChX7PMgKhsWXiDVdSbBGeU07Rrpw3qpXcDwRniuG1X/g4z/4IpaPHLLd/t9/DKZYVZnGleEfi9rshCjJEUOifDrUJp2P8KQRyO54VSeK/wAbiigD/Wv8b/8AB2R/wRS8J+cND+PnxL+JbRbgq+CP2fPi9Z+cV7Qv8RPDHgGM5PCtI8aHru2/NX5/fGL/AIPZf2IfDYuYPgZ+yd+0x8V7yAOsU/xA1P4b/BvQ72UZ2tb3uk698XdZS1f5f3t34btblfmzZfKN3+ajRQB/Zn+0B/weqft2+OYrvT/2d/2bf2efgDp90six6r4tuvF/xx8aafnPlSafqlxdfDjwb5qAjedT+H2qQyEfLDGCRX4P/tKf8Fu/+Crn7WcV/YfGX9uH43T+HdSEsV74N+HWuWfwW8FXlnJwNP1Pwp8HdP8AA2i65ZRptVY9etNUdyqzTyTXO6ZvysooAlnnmuZpbi5mluLieV5p555HlmmmlYvLLLLIWeSWR2Z3kdizsSzEkk1FRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF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FFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFAH//Z" - webUI["html/js/authentication_ts.js"] = "ZnVuY3Rpb24gbG9naW4oKSB7DQogICAgdmFyIGVyciA9IGZhbHNlOw0KICAgIHZhciBkYXRhID0gbmV3IE9iamVjdCgpOw0KICAgIHZhciBkaXYgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29udGVudCIpOw0KICAgIHZhciBmb3JtID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImF1dGhlbnRpY2F0aW9uIik7DQogICAgdmFyIGlucHV0cyA9IGRpdi5nZXRFbGVtZW50c0J5VGFnTmFtZSgiSU5QVVQiKTsNCiAgICBjb25zb2xlLmxvZyhpbnB1dHMpOw0KICAgIGZvciAodmFyIGkgPSBpbnB1dHMubGVuZ3RoIC0gMTsgaSA+PSAwOyBpLS0pIHsNCiAgICAgICAgdmFyIGtleSA9IGlucHV0c1tpXS5uYW1lOw0KICAgICAgICB2YXIgdmFsdWUgPSBpbnB1dHNbaV0udmFsdWU7DQogICAgICAgIGlmICh2YWx1ZS5sZW5ndGggPT0gMCkgew0KICAgICAgICAgICAgaW5wdXRzW2ldLnN0eWxlLmJvcmRlckNvbG9yID0gInJlZCI7DQogICAgICAgICAgICBlcnIgPSB0cnVlOw0KICAgICAgICB9DQogICAgICAgIGRhdGFba2V5XSA9IHZhbHVlOw0KICAgIH0NCiAgICBpZiAoZXJyID09IHRydWUpIHsNCiAgICAgICAgZGF0YSA9IG5ldyBPYmplY3QoKTsNCiAgICAgICAgcmV0dXJuOw0KICAgIH0NCiAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgiY29uZmlybSIpKSB7DQogICAgICAgIGlmIChkYXRhWyJjb25maXJtIl0gIT0gZGF0YVsicGFzc3dvcmQiXSkgew0KICAgICAgICAgICAgYWxlcnQoInNkYWZzZCIpOw0KICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Bhc3N3b3JkJykuc3R5bGUuYm9yZGVyQ29sb3IgPSAicmVkIjsNCiAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjb25maXJtJykuc3R5bGUuYm9yZGVyQ29sb3IgPSAicmVkIjsNCiAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJlcnIiKS5pbm5lckhUTUwgPSAie3suYWNjb3VudC5mYWlsZWR9fSI7DQogICAgICAgICAgICByZXR1cm47DQogICAgICAgIH0NCiAgICB9DQogICAgY29uc29sZS5sb2coZGF0YSk7DQogICAgZm9ybS5zdWJtaXQoKTsNCn0NCg==" + webUI["html/index.html"] = "PCFkb2N0eXBlIGh0bWw+DQo8aHRtbD4NCiAgPGhlYWQ+DQogICAgPG1ldGEgY2hhcnNldD0idXRmLTgiPg0KICAgIDwhLS0tDQogICAgPG1ldGEgbmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9IndpZHRoPWRldmljZS13aWR0aCwgaW5pdGlhbC1zY2FsZT0xLjAiIC8+IA0KICAgIC0tPg0KICAgIDx0aXRsZT54VGVWZTwvdGl0bGU+DQogICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJjc3Mvc2NyZWVuLmNzcyIgdHlwZT0idGV4dC9jc3MiPg0KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iY3NzL2Jhc2UuY3NzIiB0eXBlPSJ0ZXh0L2NzcyI+DQoNCiAgICA8c2NyaXB0IGxhbmd1YWdlPSJqYXZhc2NyaXB0IiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ianMvbmV0d29ya190cy5qcyI+PC9zY3JpcHQ+DQogICAgPHNjcmlwdCBsYW5ndWFnZT0iamF2YXNjcmlwdCIgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9ImpzL21lbnVfdHMuanMiPjwvc2NyaXB0Pg0KICAgIDxzY3JpcHQgbGFuZ3VhZ2U9ImphdmFzY3JpcHQiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJqcy9zZXR0aW5nc190cy5qcyI+PC9zY3JpcHQ+DQogICAgPHNjcmlwdCBsYW5ndWFnZT0iamF2YXNjcmlwdCIgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9ImpzL2xvZ3NfdHMuanMiPjwvc2NyaXB0Pg0KICAgIDxzY3JpcHQgbGFuZ3VhZ2U9ImphdmFzY3JpcHQiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJqcy9iYXNlX3RzLmpzIj48L3NjcmlwdD4NCg0KICA8L2hlYWQ+DQoNCiAgICA8Ym9keSBvbmxvYWQ9ImphdmFzY3JpcHQ6IFBhZ2VSZWFkeSgpOyI+DQoNCiAgICAgIDxkaXYgaWQ9ImxvYWRpbmciIGNsYXNzPSJub25lIj4NCiAgICAgICAgPGRpdiBjbGFzcz0ibG9hZGVyIj48L2Rpdj4NCiAgICAgIDwvZGl2Pg0KDQogICAgICA8ZGl2IGlkPSJwb3B1cCIgY2xhc3M9Im5vbmUiPg0KICAgICAgICA8ZGl2IGlkPSJwb3B1cC1jdXN0b20iPjwvZGl2Pg0KICAgICAgPC9kaXY+DQoNCiAgICAgIDxkaXYgaWQ9ImxheW91dCI+DQoNCiAgICAgICAgPCEtLQ0KICAgICAgICA8ZGl2IGlkPSJub3RpZmljYXRpb24iPg0KICAgICAgICAgIDxkaXYgY2xhc3M9ImVsZW1lbnQiPg0KICAgICAgICAgICAgPGg1PlhFUEc8L2g1Pg0KICAgICAgICAgICAgPHByZT4xMS4wNS4yMDE5IC0gMjA6MjE8L3ByZT4NCiAgICAgICAgICAgIDxocj4NCiAgICAgICAgICAgIDxwPkhhbGxvIGRhcyBpc3QgZWluIFRlc3QuIFVuZCBub2NoIG1laHIgVGV4dC48L3A+DQogICAgICAgICAgPC9kaXY+DQogICAgICAgIDwvZGl2Pg0KICAgICAgLS0+DQoNCiAgICAgICAgPGRpdiBpZD0ibWVudS13cmFwcGVyIiBjbGFzcz0ibGF5b3V0LWxlZnQiPg0KICAgICAgICAgIDxkaXYgaWQ9ICJicmFuY2giPjwvZGl2Pg0KICAgICAgICAgIDxkaXYgaWQ9ImxvZ28iPjwvZGl2Pg0KICAgICAgICAgIDxuYXYgaWQ9Im1haW4tbWVudSI+PC9uYXY+DQogICAgICAgIDwvZGl2Pg0KDQogICAgICAgIDxkaXYgY2xhc3M9ImxheW91dC1yaWdodCI+DQoNCiAgICAgICAgICA8dGFibGUgaWQ9ImNsaWVudEluZm8iIGNsYXNzPSIiPg0KDQogICAgICAgICAgICA8dHI+DQogICAgICAgICAgICAgIDx0ZCBjbGFzcz0idGRLZXkiPnhUZVZlOjwvdGQ+DQogICAgICAgICAgICAgIDx0ZCBpZD0idmVyc2lvbiIgY2xhc3M9InRkVmFsIj4mbmJzcDs8L3RkPg0KICAgICAgICAgICAgICA8dGQgY2xhc3M9InRkS2V5Ij5PUzo8L3RkPg0KICAgICAgICAgICAgICA8dGQgaWQ9Im9zIiBjbGFzcz0idGRWYWwiPiZuYnNwOzwvdGQ+DQogICAgICAgICAgICAgIDx0ZCBjbGFzcz0idGRLZXkgcGhvbmUiPkRWUiBJUDo8L3RkPg0KICAgICAgICAgICAgICA8dGQgaWQ9IkRWUiIgY2xhc3M9InRkVmFsIHBob25lIj4mbmJzcDs8L3RkPg0KICAgICAgICAgICAgPC90cj4NCg0KICAgICAgICAgICAgPHRyPg0KICAgICAgICAgICAgICA8dGQgY2xhc3M9InRkS2V5Ij5VVUlEOjwvdGQ+DQogICAgICAgICAgICAgIDx0ZCBpZD0idXVpZCIgY2xhc3M9InRkVmFsIj4mbmJzcDs8L3RkPg0KICAgICAgICAgICAgICA8dGQgY2xhc3M9InRkS2V5Ij5BcmNoOjwvdGQ+DQogICAgICAgICAgICAgIDx0ZCBpZD0iYXJjaCIgY2xhc3M9InRkVmFsIj4mbmJzcDs8L3RkPg0KICAgICAgICAgICAgICA8dGQgY2xhc3M9InRkS2V5IHBob25lIj5NM1UgVVJMOjwvdGQ+DQogICAgICAgICAgICAgIDx0ZCBpZD0ibTN1LXVybCIgY2xhc3M9InRkVmFsIHBob25lIj4mbmJzcDs8L3RkPg0KICAgICAgICAgICAgPC90cj4NCg0KICAgICAgICAgICAgPHRyPg0KICAgICAgICAgICAgICA8dGQgY2xhc3M9InRkS2V5Ij5BdmFpbGFibGUgU3RyZWFtczo8L3RkPg0KICAgICAgICAgICAgICA8dGQgaWQ9InN0cmVhbXMiIGNsYXNzPSJ0ZFZhbCI+Jm5ic3A7PC90ZD4NCiAgICAgICAgICAgICAgPHRkIGNsYXNzPSJ0ZEtleSI+RVBHIFNvdXJjZTo8L3RkPg0KICAgICAgICAgICAgICA8dGQgaWQ9ImVwZ1NvdXJjZSIgY2xhc3M9InRkVmFsIj4mbmJzcDs8L3RkPg0KICAgICAgICAgICAgICA8dGQgY2xhc3M9InRkS2V5IHBob25lIj5YRVBHIFVSTDo8L3RkPg0KICAgICAgICAgICAgICA8dGQgaWQ9InhlcGctdXJsIiBjbGFzcz0idGRWYWwgcGhvbmUiPiZuYnNwOzwvdGQ+DQogICAgICAgICAgICA8L3RyPg0KDQogICAgICAgICAgICA8dHI+DQogICAgICAgICAgICAgIDx0ZCBjbGFzcz0idGRLZXkiPlhFUEcgQ2hhbm5lbHM6PC90ZD4NCiAgICAgICAgICAgICAgPHRkIGlkPSJ4ZXBnIiBjbGFzcz0idGRWYWwiPiZuYnNwOzwvdGQ+DQogICAgICAgICAgICAgIDx0ZCBjbGFzcz0idGRLZXkiPkVycm9yczo8L3RkPg0KICAgICAgICAgICAgICA8dGQgaWQ9ImVycm9ycyIgY2xhc3M9InRkVmFsIj4mbmJzcDs8L3RkPg0KICAgICAgICAgICAgICA8dGQgY2xhc3M9InRkS2V5Ij5XYXJuaW5nczo8L3RkPg0KICAgICAgICAgICAgICA8dGQgaWQ9Indhcm5pbmdzIiBjbGFzcz0idGRWYWwiPiZuYnNwOzwvdGQ+DQogICAgICAgICAgICA8L3RyPg0KDQogICAgICAgICAgPC90YWJsZT4NCiAgICAgICAgIA0KICAgICAgICAgIDxkaXYgaWQ9Im15U3RyZWFtc0JveCIgY2xhc3M9Im5vdFZpc2libGUiPg0KDQogICAgICAgICAgICA8ZGl2IGlkPSJhbGxTdHJlYW1zIj4NCiAgICAgICAgICAgICAgPHRhYmxlIGlkPSJhY3RpdmVTdHJlYW1zIj48L3RhYmxlPg0KICAgICAgICAgICAgICA8dGFibGUgaWQ9ImluYWN0aXZlU3RyZWFtcyI+PC90YWJsZT4NCiAgICAgICAgICAgIDwvZGl2Pg0KDQogICAgICAgICAgPC9kaXY+DQogICAgICAgICAgDQogICAgICAgICAgPGRpdiBpZD0iY29udGVudCIgY2xhc3M9IiI+PC9kaXY+DQogICAgICAgICAgICANCiAgICAgICAgPC9kaXY+DQoNCiAgICAgIDwvZGl2Pg0KICAgICAgDQogICAgPC9ib2R5Pg0KICAgIA0KPC9odG1sPg==" webUI["html/js/classes_ts.js"] = "dmFyIF9fZXh0ZW5kcyA9ICh0aGlzICYmIHRoaXMuX19leHRlbmRzKSB8fCAoZnVuY3Rpb24gKCkgew0KICAgIHZhciBleHRlbmRTdGF0aWNzID0gZnVuY3Rpb24gKGQsIGIpIHsNCiAgICAgICAgZXh0ZW5kU3RhdGljcyA9IE9iamVjdC5zZXRQcm90b3R5cGVPZiB8fA0KICAgICAgICAgICAgKHsgX19wcm90b19fOiBbXSB9IGluc3RhbmNlb2YgQXJyYXkgJiYgZnVuY3Rpb24gKGQsIGIpIHsgZC5fX3Byb3RvX18gPSBiOyB9KSB8fA0KICAgICAgICAgICAgZnVuY3Rpb24gKGQsIGIpIHsgZm9yICh2YXIgcCBpbiBiKSBpZiAoYi5oYXNPd25Qcm9wZXJ0eShwKSkgZFtwXSA9IGJbcF07IH07DQogICAgICAgIHJldHVybiBleHRlbmRTdGF0aWNzKGQsIGIpOw0KICAgIH07DQogICAgcmV0dXJuIGZ1bmN0aW9uIChkLCBiKSB7DQogICAgICAgIGV4dGVuZFN0YXRpY3MoZCwgYik7DQogICAgICAgIGZ1bmN0aW9uIF9fKCkgeyB0aGlzLmNvbnN0cnVjdG9yID0gZDsgfQ0KICAgICAgICBkLnByb3RvdHlwZSA9IGIgPT09IG51bGwgPyBPYmplY3QuY3JlYXRlKGIpIDogKF9fLnByb3RvdHlwZSA9IGIucHJvdG90eXBlLCBuZXcgX18oKSk7DQogICAgfTsNCn0pKCk7DQp2YXIgTWFpbk1lbnUgPSAvKiogQGNsYXNzICovIChmdW5jdGlvbiAoKSB7DQogICAgZnVuY3Rpb24gTWFpbk1lbnUoKSB7DQogICAgICAgIHRoaXMuRG9jdW1lbnRJRCA9ICJtYWluLW1lbnUiOw0KICAgICAgICB0aGlzLkhUTUxUYWcgPSAiTEkiOw0KICAgIH0NCiAgICBNYWluTWVudS5wcm90b3R5cGUuY3JlYXRlID0gZnVuY3Rpb24gKCkgew0KICAgICAgICBjb25zb2xlLmxvZyh0aGlzLkRvY3VtZW50SUQpOw0KICAgIH07DQogICAgcmV0dXJuIE1haW5NZW51Ow0KfSgpKTsNCnZhciBNYWluTWVudUl0ZW0gPSAvKiogQGNsYXNzICovIChmdW5jdGlvbiAoX3N1cGVyKSB7DQogICAgX19leHRlbmRzKE1haW5NZW51SXRlbSwgX3N1cGVyKTsNCiAgICBmdW5jdGlvbiBNYWluTWVudUl0ZW0oKSB7DQogICAgICAgIHJldHVybiBfc3VwZXIgIT09IG51bGwgJiYgX3N1cGVyLmFwcGx5KHRoaXMsIGFyZ3VtZW50cykgfHwgdGhpczsNCiAgICB9DQogICAgTWFpbk1lbnVJdGVtLnByb3RvdHlwZS5jcmVhdGUyID0gZnVuY3Rpb24gKCkgew0KICAgICAgICB2YXIgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQodGhpcy5IVE1MVGFnKTsNCiAgICAgICAgZWxlbWVudC5pbm5lclRleHQgPSB0aGlzLlZhbHVlOw0KICAgICAgICBjb25zb2xlLmxvZyhlbGVtZW50KTsNCiAgICB9Ow0KICAgIHJldHVybiBNYWluTWVudUl0ZW07DQp9KE1haW5NZW51KSk7DQpmdW5jdGlvbiBwYWdlUmVhZHkoKSB7DQogICAgdmFyIGl0ZW0gPSBuZXcgTWFpbk1lbnVJdGVtKCk7DQogICAgaXRlbS5WYWx1ZSA9ICJUZXN0IjsNCiAgICBpdGVtLmNyZWF0ZTIoKTsNCn0NCg==" - webUI["html/js/configuration_ts.js"] = "Y2xhc3MgV2l6YXJkQ2F0ZWdvcnkgew0KICAgIGNvbnN0cnVjdG9yKCkgew0KICAgICAgICB0aGlzLkRvY3VtZW50SUQgPSAiY29udGVudCI7DQogICAgfQ0KICAgIGNyZWF0ZUNhdGVnb3J5SGVhZGxpbmUodmFsdWUpIHsNCiAgICAgICAgdmFyIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJINCIpOw0KICAgICAgICBlbGVtZW50LmlubmVySFRNTCA9IHZhbHVlOw0KICAgICAgICByZXR1cm4gZWxlbWVudDsNCiAgICB9DQp9DQpjbGFzcyBXaXphcmRJdGVtIGV4dGVuZHMgV2l6YXJkQ2F0ZWdvcnkgew0KICAgIGNvbnN0cnVjdG9yKGtleSwgaGVhZGxpbmUpIHsNCiAgICAgICAgc3VwZXIoKTsNCiAgICAgICAgdGhpcy5oZWFkbGluZSA9IGhlYWRsaW5lOw0KICAgICAgICB0aGlzLmtleSA9IGtleTsNCiAgICB9DQogICAgY3JlYXRlV2l6YXJkKCkgew0KICAgICAgICB2YXIgaGVhZGxpbmUgPSB0aGlzLmNyZWF0ZUNhdGVnb3J5SGVhZGxpbmUodGhpcy5oZWFkbGluZSk7DQogICAgICAgIHZhciBrZXkgPSB0aGlzLmtleTsNCiAgICAgICAgdmFyIGNvbnRlbnQgPSBuZXcgUG9wdXBDb250ZW50KCk7DQogICAgICAgIHZhciBkZXNjcmlwdGlvbjsNCiAgICAgICAgdmFyIGRvYyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHRoaXMuRG9jdW1lbnRJRCk7DQogICAgICAgIGRvYy5pbm5lckhUTUwgPSAiIjsNCiAgICAgICAgZG9jLmFwcGVuZENoaWxkKGhlYWRsaW5lKTsNCiAgICAgICAgc3dpdGNoIChrZXkpIHsNCiAgICAgICAgICAgIGNhc2UgInR1bmVyIjoNCiAgICAgICAgICAgICAgICB2YXIgdGV4dCA9IG5ldyBBcnJheSgpOw0KICAgICAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBuZXcgQXJyYXkoKTsNCiAgICAgICAgICAgICAgICBmb3IgKHZhciBpID0gMTsgaSA8PSAxMDA7IGkrKykgew0KICAgICAgICAgICAgICAgICAgICB0ZXh0LnB1c2goaSk7DQogICAgICAgICAgICAgICAgICAgIHZhbHVlcy5wdXNoKGkpOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCAiMSIsIGtleSk7DQogICAgICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgiY2xhc3MiLCAid2l6YXJkIik7DQogICAgICAgICAgICAgICAgc2VsZWN0LmlkID0ga2V5Ow0KICAgICAgICAgICAgICAgIGRvYy5hcHBlbmRDaGlsZChzZWxlY3QpOw0KICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uID0gInt7LndpemFyZC50dW5lci5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImVwZ1NvdXJjZSI6DQogICAgICAgICAgICAgICAgdmFyIHRleHQgPSBbIlBNUyIsICJYRVBHIl07DQogICAgICAgICAgICAgICAgdmFyIHZhbHVlcyA9IFsiUE1TIiwgIlhFUEciXTsNCiAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCAiWEVQRyIsIGtleSk7DQogICAgICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgiY2xhc3MiLCAid2l6YXJkIik7DQogICAgICAgICAgICAgICAgc2VsZWN0LmlkID0ga2V5Ow0KICAgICAgICAgICAgICAgIGRvYy5hcHBlbmRDaGlsZChzZWxlY3QpOw0KICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uID0gInt7LndpemFyZC5lcGdTb3VyY2UuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJtM3UiOg0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBrZXksICIiKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LndpemFyZC5tM3UucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgiY2xhc3MiLCAid2l6YXJkIik7DQogICAgICAgICAgICAgICAgaW5wdXQuaWQgPSBrZXk7DQogICAgICAgICAgICAgICAgZG9jLmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbiA9ICJ7ey53aXphcmQubTN1LmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAieG1sdHYiOg0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBrZXksICIiKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LndpemFyZC54bWx0di5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJjbGFzcyIsICJ3aXphcmQiKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5pZCA9IGtleTsNCiAgICAgICAgICAgICAgICBkb2MuYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uID0gInt7LndpemFyZC54bWx0di5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICAgICAgY29uc29sZS5sb2coa2V5KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgfQ0KICAgICAgICB2YXIgcHJlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiUFJFIik7DQogICAgICAgIHByZS5pbm5lckhUTUwgPSBkZXNjcmlwdGlvbjsNCiAgICAgICAgZG9jLmFwcGVuZENoaWxkKHByZSk7DQogICAgICAgIGNvbnNvbGUubG9nKGhlYWRsaW5lLCBrZXkpOw0KICAgIH0NCn0NCmZ1bmN0aW9uIHJlYWR5Rm9yQ29uZmlndXJhdGlvbih3aXphcmQpIHsNCiAgICB2YXIgc2VydmVyID0gbmV3IFNlcnZlcigiZ2V0U2VydmVyQ29uZmlnIik7DQogICAgc2VydmVyLnJlcXVlc3QobmV3IE9iamVjdCgpKTsNCiAgICBzaG93RWxlbWVudCgibG9hZGluZyIsIGZhbHNlKTsNCiAgICBjb25maWd1cmF0aW9uV2l6YXJkW3dpemFyZF0uY3JlYXRlV2l6YXJkKCk7DQp9DQpmdW5jdGlvbiBzYXZlV2l6YXJkKCkgew0KICAgIHZhciBjbWQgPSAic2F2ZVdpemFyZCI7DQogICAgdmFyIGRpdiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb250ZW50Iik7DQogICAgdmFyIGNvbmZpZyA9IGRpdi5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCJ3aXphcmQiKTsNCiAgICB2YXIgd2l6YXJkID0gbmV3IE9iamVjdCgpOw0KICAgIGZvciAodmFyIGkgPSAwOyBpIDwgY29uZmlnLmxlbmd0aDsgaSsrKSB7DQogICAgICAgIHZhciBuYW1lOw0KICAgICAgICB2YXIgdmFsdWU7DQogICAgICAgIHN3aXRjaCAoY29uZmlnW2ldLnRhZ05hbWUpIHsNCiAgICAgICAgICAgIGNhc2UgIlNFTEVDVCI6DQogICAgICAgICAgICAgICAgbmFtZSA9IGNvbmZpZ1tpXS5uYW1lOw0KICAgICAgICAgICAgICAgIHZhbHVlID0gY29uZmlnW2ldLnZhbHVlOw0KICAgICAgICAgICAgICAgIC8vIFdlbm4gZGVyIFdlcnQgZWluZSBaYWhsIGlzdCwgd2lyZCBkaWVzZXIgYWxzIFphaGwgZ2VzcGVpY2hlcnQNCiAgICAgICAgICAgICAgICBpZiAoaXNOYU4odmFsdWUpKSB7DQogICAgICAgICAgICAgICAgICAgIHdpemFyZFtuYW1lXSA9IHZhbHVlOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICAgICAgd2l6YXJkW25hbWVdID0gcGFyc2VJbnQodmFsdWUpOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgIklOUFVUIjoNCiAgICAgICAgICAgICAgICBzd2l0Y2ggKGNvbmZpZ1tpXS50eXBlKSB7DQogICAgICAgICAgICAgICAgICAgIGNhc2UgInRleHQiOg0KICAgICAgICAgICAgICAgICAgICAgICAgbmFtZSA9IGNvbmZpZ1tpXS5uYW1lOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSBjb25maWdbaV0udmFsdWU7DQogICAgICAgICAgICAgICAgICAgICAgICBpZiAodmFsdWUubGVuZ3RoID09IDApIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgbXNnID0gbmFtZS50b1VwcGVyQ2FzZSgpICsgIjogIiArICJ7ey5hbGVydC5taXNzaW5nSW5wdXR9fSI7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgYWxlcnQobXNnKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICB3aXphcmRbbmFtZV0gPSB2YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICAgICAgLy8gY29kZS4uLg0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICB9DQogICAgfQ0KICAgIHZhciBkYXRhID0gbmV3IE9iamVjdCgpOw0KICAgIGRhdGFbIndpemFyZCJdID0gd2l6YXJkOw0KICAgIHZhciBzZXJ2ZXIgPSBuZXcgU2VydmVyKGNtZCk7DQogICAgc2VydmVyLnJlcXVlc3QoZGF0YSk7DQogICAgY29uc29sZS5sb2coZGF0YSk7DQp9DQovLyBXaXphcmQNCnZhciBjb25maWd1cmF0aW9uV2l6YXJkID0gbmV3IEFycmF5KCk7DQpjb25maWd1cmF0aW9uV2l6YXJkLnB1c2gobmV3IFdpemFyZEl0ZW0oInR1bmVyIiwgInt7LndpemFyZC50dW5lci50aXRsZX19IikpOw0KY29uZmlndXJhdGlvbldpemFyZC5wdXNoKG5ldyBXaXphcmRJdGVtKCJlcGdTb3VyY2UiLCAie3sud2l6YXJkLmVwZ1NvdXJjZS50aXRsZX19IikpOw0KY29uZmlndXJhdGlvbldpemFyZC5wdXNoKG5ldyBXaXphcmRJdGVtKCJtM3UiLCAie3sud2l6YXJkLm0zdS50aXRsZX19IikpOw0KY29uZmlndXJhdGlvbldpemFyZC5wdXNoKG5ldyBXaXphcmRJdGVtKCJ4bWx0diIsICJ7ey53aXphcmQueG1sdHYudGl0bGV9fSIpKTsNCg==" - webUI["html/js/mapping-editor.js"] = "dmFyIG1hcHBpbmdFcnJvciAgPSBmYWxzZTsNCnZhciBidWxrICAgICAgICAgID0gZmFsc2U7DQp2YXIgYnVsa0VkaXRBbGwgICA9IGZhbHNlOyANCnZhciBzZWxlY3RPYmogICAgID0gbmV3IE9iamVjdCgpOw0KdmFyIHNlYXJjaE9iaiAgICAgPSBuZXcgT2JqZWN0KCk7DQoNCnZhciBidWxrSURzICAgICAgID0gbmV3IEFycmF5KCk7DQp2YXIgYnVsa0NoYW5nZU9iaiA9IG5ldyBPYmplY3QoKTsNCg0KZnVuY3Rpb24gY2hlY2tVbmRvKGtleSwgZWxtKSB7DQogIHZhciB0bXAgPSBuZXcgT2JqZWN0KCk7DQogIHRtcCA9IGVsbQ0KICBjb25zb2xlLmxvZygiLS0iKTsNCiAgaWYgKHVuZG8uaGFzT3duUHJvcGVydHkoImVwZ01hcHBpbmciKSkgew0KICAgIHhFUEdbImVwZ01hcHBpbmciXSA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkodW5kb1siZXBnTWFwcGluZyJdKSk7Ow0KICB9IGVsc2Ugew0KICAgIHVuZG9bImVwZ01hcHBpbmciXSA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkoZWxtKSk7DQogIH0NCn0NCg0KLy92YXIgcGxleENhdGVnb3JpZXMgPSBuZXcgQXJyYXkoIi0iLCAiQWN0aW9uIHNwb3J0cyIsICJBY3Rpb24iLCAiQWR1bHRzIG9ubHkiLCAiQWR2ZW50dXJlIiwgIkFlcm9iaWNzIiwgIkFuaW1hbHMiLCAiQW5pbWF0ZWQiLCAiQW5pbWUiLCAiQW50aG9sb2d5IiwgIkFyY2hlcnkiLCAiQXJ0IiwgIkFydHMvY3JhZnRzIiwgIkF1Y3Rpb24iLCAiQXV0byByYWNpbmciLCAiQXV0byIsICJBdmlhdGlvbiIsICJBd2FyZHMiLCAiQmFsbGV0IiwgIkJhc2ViYWxsIiwgIkJhc2tldGJhbGwiLCAiQmljeWNsZSByYWNpbmciLCAiQmljeWNsZSIsICJCaWxsaWFyZHMiLCAiQmlvZ3JhcGh5IiwgIkJvYXQgcmFjaW5nIiwgIkJvYXQiLCAiQm93bGluZyIsICJCb3hpbmciLCAiQnVzLi9maW5hbmNpYWwiLCAiQ2hpbGRyZW4iLCAiQ29sbGVjdGlibGVzIiwgIkNvbWVkeSBkcmFtYSIsICJDb21lZHkiLCAiQ29tbXVuaXR5IiwgIkNvbXB1dGVycyIsICJDb25zdW1lciIsICJDb29raW5nIiwgIkNyaW1lIGRyYW1hIiwgIkNyaW1lIiwgIkRhbmNlIiwgIkRhcmsgY29tZWR5IiwgIkRlYmF0ZSIsICJEaXZpbmciLCAiRG9jdWRyYW1hIiwgIkRvY3VtZW50YXJ5IiwgIkRyYW1hIiwgIkVkdWNhdGlvbmFsIiwgIkVudGVydGFpbm1lbnQiLCAiRW52aXJvbm1lbnQiLCAiRXF1ZXN0cmlhbiIsICJFcm90aWMiLCAiRXZlbnQiLCAiRmFudGFzeSIsICJGYXNoaW9uIiwgIkZlYXR1cmUgRmlsbSIsICJGaXNoaW5nIiwgIkZvb3RiYWxsIiwgIkdhbWUgc2hvdyIsICJHYW1pbmciLCAiR2F5L2xlc2JpYW4iLCAiR29sZiIsICJIYW5kYmFsbCIsICJIZWFsdGgiLCAiSGlzdG9yaWNhbCBkcmFtYSIsICJIaXN0b3J5IiwgIkhvY2tleSIsICJIb2xpZGF5IiwgIkhvbWUgaW1wcm92ZW1lbnQiLCAiSG9ycm9yIiwgIkhvcnNlIiwgIkhvdXNlL2dhcmRlbiIsICJIb3ctdG8iLCAiSW50ZXJ2aWV3IiwgIkludGwgc29jY2VyIiwgIkxhdyIsICJNYXJ0aWFsIGFydHMiLCAiTWVkaWNhbCIsICJNaWxpdGFyeSIsICJNaW5pc2VyaWVzIiwgIk1peGVkIG1hcnRpYWwgYXJ0cyIsICJNb3RvcmN5Y2xlIHJhY2luZyIsICJNb3RvcmN5Y2xlIiwgIk1vdG9yc3BvcnRzIiwgIk1vdW50YWluIGJpa2luZyIsICJNdXNpYyIsICJNdXNpY2FsIGNvbWVkeSIsICJNdXNpY2FsIiwgIk15c3RlcnkiLCAiTmF0dXJlIiwgIk5ld3MiLCAiTmV3c21hZ2F6aW5lIiwgIk9seW1waWNzIiwgIk9wZXJhIiwgIk91dGRvb3JzIiwgIlBhcmFkZSIsICJQYXJhbm9ybWFsIiwgIlBhcmVudGluZyIsICJQZXJmb3JtaW5nIGFydHMiLCAiUGxheW9mZiBzcG9ydHMiLCAiUG9rZXIiLCAiUG9saXRpY3MiLCAiUHJvIHdyZXN0bGluZyIsICJQdWJsaWMgYWZmYWlycyIsICJSZWFsaXR5IiwgIlJlbGlnaW91cyIsICJSb2RlbyIsICJSb2xsZXIgZGVyYnkiLCAiUm9tYW5jZSIsICJSb21hbnRpYyBjb21lZHkiLCAiUnVnYnkiLCAiUnVubmluZyIsICJTYWlsaW5nIiwgIlNjaWVuY2UgZmljdGlvbiIsICJTY2llbmNlIiwgIlNlbGYgaW1wcm92ZW1lbnQiLCAiU2VyaWVzIiwgIlNob290aW5nIiwgIlNob3BwaW5nIiwgIlNob3J0IEZpbG0iLCAiU2l0Y29tIiwgIlNraWluZyIsICJTbm9va2VyIiwgIlNvYXAiLCAiU29jY2VyIiwgIlNwZWNpYWwiLCAiU3BvcnRzIiwgInNwb3J0cyIsICJTcG9ydHMgZXZlbnQiLCAiU3BvcnRzIG5vbi1ldmVudCIsICJTcG9ydHMgdGFsayIsICJTdGFuZHVwIiwgIlN1cmZpbmciLCAiU3VzcGVuc2UiLCAiVFYgTW92aWUiLCAiVGFsayIsICJUZWNobm9sb2d5IiwgIlRlbm5pcyIsICJUaGVhdGVyIiwgIlRocmlsbGVyIiwgIlRyYWNrL2ZpZWxkIiwgIlRyYXZlbCIsICJUcmlhdGhsb24iLCAiVmFyaWV0eSIsICJWb2xsZXliYWxsIiwgIldhciIsICJXYXRlcnNwb3J0cyIsICJXZWF0aGVyIiwgIldlc3Rlcm4iLCAiV3Jlc3RsaW5nIiwgIllhY2h0IHJhY2luZyIsICJtb3ZpZSIsICJzZXJpZXMiLCAic3BvcnRzIiwgInR2c2hvdyIpOw0KdmFyIHBsZXhDYXRlZ29yaWVzVmFsdWVzID0gbmV3IEFycmF5KCItIiwgIktpZHMiLCAiTmV3cyIsICJNb3ZpZSIsICJTZXJpZXMiLCAiU3BvcnRzIikNCnZhciBwbGV4Q2F0ZWdvcmllc09wdGlvbiA9IG5ldyBBcnJheSgiLSIsICJLaWRzIChFbWJ5IG9ubHkpIiwgIk5ld3MiLCAiTW92aWUiLCAiU2VyaWVzIiwgIlNwb3J0cyIpDQoNCg0KZnVuY3Rpb24gb3Blbk1hcHBpbmdFZGl0b3IoZWxtKSB7DQogIHZhciBjb2x1bW5Ub1NvcnQgID0gMQ0KDQogIGNoZWNrVW5kbygiZXBnTWFwcGluZyIsIHhFUEdbImVwZ01hcHBpbmciXSkNCg0KICB2YXIgbmV3RGl2ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNldHRpbmdzIik7DQogIA0KICB2YXIgbmV3RW50cnkgPSBuZXcgT2JqZWN0KCk7DQogIG5ld0VudHJ5WyJfZWxlbWVudCJdICA9ICJIUiI7DQogIG5ld0Rpdi5hcHBlbmRDaGlsZChjcmVhdGVFbGVtZW50KG5ld0VudHJ5KSk7DQoNCiAgdmFyIG5ld0VudHJ5ID0gbmV3IE9iamVjdCgpOw0KICBuZXdFbnRyeVsiX2VsZW1lbnQiXSAgICA9ICJJTlBVVCI7DQogIG5ld0VudHJ5WyJ0eXBlIl0gICAgICAgID0gImJ1dHRvbiI7DQogIG5ld0VudHJ5WyJjbGFzcyJdICAgICAgID0gImJ1dHRvbiI7DQogIG5ld0VudHJ5WyJ2YWx1ZSJdICAgICAgID0gIlNhdmUiOw0KICBuZXdFbnRyeVsib25jbGljayJdICAgICA9ICJzYXZlWEVQRygpIjsNCiAgbmV3RGl2LmFwcGVuZENoaWxkKGNyZWF0ZUVsZW1lbnQobmV3RW50cnkpKTsNCg0KICB2YXIgbmV3RW50cnkgPSBuZXcgT2JqZWN0KCk7DQogIG5ld0VudHJ5WyJfZWxlbWVudCJdICAgID0gIklOUFVUIjsNCiAgbmV3RW50cnlbInR5cGUiXSAgICAgICAgPSAiYnV0dG9uIjsNCiAgbmV3RW50cnlbImNsYXNzIl0gICAgICAgPSAiYnV0dG9uIjsNCiAgbmV3RW50cnlbInZhbHVlIl0gICAgICAgPSAiQnVsayBFZGl0IjsNCiAgbmV3RW50cnlbIm9uY2xpY2siXSAgICAgPSAiYnVsa0VkaXQoKSI7DQogIG5ld0Rpdi5hcHBlbmRDaGlsZChjcmVhdGVFbGVtZW50KG5ld0VudHJ5KSk7DQoNCiAgdmFyIG5ld0VudHJ5ID0gbmV3IE9iamVjdCgpOw0KICBuZXdFbnRyeVsiX2VsZW1lbnQiXSAgICA9ICJJTlBVVCI7DQogIG5ld0VudHJ5WyJ0eXBlIl0gICAgICAgID0gImJ1dHRvbiI7DQogIG5ld0VudHJ5WyJjbGFzcyJdICAgICAgID0gImJ1dHRvbiI7DQogIG5ld0VudHJ5WyJ2YWx1ZSJdICAgICAgID0gIlNob3cgWEVQRyI7DQogIG5ld0VudHJ5WyJvbmNsaWNrIl0gICAgID0gInNob3dYRVBHKCkiOw0KICBuZXdEaXYuYXBwZW5kQ2hpbGQoY3JlYXRlRWxlbWVudChuZXdFbnRyeSkpOw0KDQogIHZhciBuZXdFbnRyeSA9IG5ldyBPYmplY3QoKTsNCiAgbmV3RW50cnlbIl9lbGVtZW50Il0gICAgPSAiSU5QVVQiOw0KICBuZXdFbnRyeVsiY2xhc3MiXSAgICAgICA9ICJzZWFyY2giOw0KICBuZXdFbnRyeVsiaWQiXSAgICAgICAgICA9ICJzZWFyY2hNYXBwaW5nIjsNCiAgbmV3RW50cnlbInR5cGUiXSAgICAgICAgPSAic2VhcmNoIjsNCiAgbmV3RW50cnlbInBsYWNlaG9sZGVyIl0gPSAiU2VhcmNoIjsNCiAgbmV3RW50cnlbIm9uY2hhbmdlIl0gICAgPSAic2VhcmNoSW5NYXBwaW5nKCkiOw0KICBuZXdEaXYuYXBwZW5kQ2hpbGQoY3JlYXRlRWxlbWVudChuZXdFbnRyeSkpOw0KDQogIHZhciBkaXYgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic2V0dGluZ3MiKTsNCiAgLy9zY3JlZW5Mb2coIkR1cGxpY2F0ZSBJRCIsICJlcnJvciIsIHRydWUpDQogIA0KDQogIC8vIEJ1aWxkIHRhYmxlDQoNCiAgdmFyIG5ld1dyYXBwZXIgPSBuZXcgT2JqZWN0KCk7DQogIG5ld1dyYXBwZXJbIl9lbGVtZW50Il0gID0gIkRJViI7DQogIG5ld1dyYXBwZXJbImlkIl0gICAgICAgID0gImJveC13cmFwcGVyIjsNCiAgZGl2LmFwcGVuZENoaWxkKGNyZWF0ZUVsZW1lbnQobmV3V3JhcHBlcikpOw0KDQoNCiAgdmFyIG5ld1RhYmxlID0gbmV3IE9iamVjdCgpOw0KICBuZXdUYWJsZVsiX2VsZW1lbnQiXSAgPSAiVEFCTEUiOw0KICBuZXdUYWJsZVsiaWQiXSAgICAgICAgPSAiaWRfbWFwcGluZyI7DQogIG5ld1RhYmxlWyJjbGFzcyJdICAgICA9ICJ0YWJsZS1tYXBwaW5nIjsNCiAgZGl2Lmxhc3RDaGlsZC5hcHBlbmRDaGlsZChjcmVhdGVFbGVtZW50KG5ld1RhYmxlKSk7DQogIHNob3dMb2FkaW5nU2NyZWVuKHRydWUpOw0KDQogIHNldFRpbWVvdXQoZnVuY3Rpb24oKXsgDQogICAgY3JlYXRlTWFwcGluZ1RhYmxlKCk7IA0KICB9LCAxMCk7DQoNCn0NCg0KZnVuY3Rpb24gY3JlYXRlU2VhcmNoT2JqKCkgew0KICBzZWFyY2hPYmogPSBuZXcgT2JqZWN0KCk7DQogIHZhciBJRHMgPSBnZXRPYmpLZXlzKHhFUEdbImVwZ01hcHBpbmciXSkNCiAgZm9yICh2YXIgaSA9IElEcy5sZW5ndGggLSAxOyBpID49IDA7IGktLSkgew0KICAgIHZhciBpdGVtID0geEVQR1siZXBnTWFwcGluZyJdW0lEc1tpXV07DQogICAgdmFyIHNlYXJjaElEID0gaXRlbVsieC1lcGciXTsNCiAgICB2YXIgc2VhcmNoVmFsdWUgPSAiIjsgDQogICAgc2VhcmNoVmFsdWUgPSBzZWFyY2hWYWx1ZSArIGl0ZW1bIngtY2hhbm5lbElEIl0gKyAiICI7DQogICAgc2VhcmNoVmFsdWUgPSBzZWFyY2hWYWx1ZSArIGl0ZW1bIngtY2F0ZWdvcnkiXSArICIgIjsNCiAgICBzZWFyY2hWYWx1ZSA9IHNlYXJjaFZhbHVlICsgaXRlbVsieC1uYW1lIl0gKyAiICI7DQogICAgc2VhcmNoVmFsdWUgPSBzZWFyY2hWYWx1ZSArIGl0ZW1bIngtZ3JvdXAtdGl0bGUiXSArICIgIjsNCiAgICBzZWFyY2hWYWx1ZSA9IHNlYXJjaFZhbHVlICsgaXRlbVsieC14bWx0di1maWxlIl0gKyAiICI7DQogICAgc2VhcmNoVmFsdWUgPSBzZWFyY2hWYWx1ZSArIGl0ZW1bIl9maWxlLm0zdS5uYW1lIl0gKyAiICI7DQoNCiAgICBzd2l0Y2goaXRlbVsieC1hY3RpdmUiXSkgew0KICAgICAgY2FzZSB0cnVlOiAgc2VhcmNoVmFsdWUgPSBzZWFyY2hWYWx1ZSArICJvbmxpbmUiOyBicmVhazsNCiAgICAgIGNhc2UgZmFsc2U6IHNlYXJjaFZhbHVlID0gc2VhcmNoVmFsdWUgKyAib2ZmbGluZSI7IGJyZWFrOw0KICAgIH0NCg0KICAgIHNlYXJjaE9ialtzZWFyY2hWYWx1ZV0gPSBzZWFyY2hJRDsNCg0KICB9DQp9DQoNCg0KZnVuY3Rpb24gY2FsY3VsYXRlV3JhcHBlckhlaWdodCgpIHsNCg0KICBpZiAoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImJveC13cmFwcGVyIikpew0KDQogICAgdmFyIGVsbSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJib3gtd3JhcHBlciIpOw0KICAgIA0KICAgIHZhciBkaXZzID0gbmV3IEFycmF5KCJteVN0cmVhbXNCb3giLCAiY2xpZW50SW5mbyIsICJzZXR0aW5ncyIpOw0KICAgIHZhciBlbGVtZW50c0hlaWdodCA9IDAgLSBlbG0ub2Zmc2V0SGVpZ2h0Ow0KICAgIGZvciAodmFyIGkgPSAwOyBpIDwgZGl2cy5sZW5ndGg7IGkrKykgew0KICAgICAgZWxlbWVudHNIZWlnaHQgPSBlbGVtZW50c0hlaWdodCArIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGRpdnNbaV0pLm9mZnNldEhlaWdodDsNCiAgICB9DQoNCiAgICBlbG0uc3R5bGUuaGVpZ2h0ID0gd2luZG93LmlubmVySGVpZ2h0IC0gZWxlbWVudHNIZWlnaHQgKyAicHgiOw0KDQogIH0NCg0KICBpZiAoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm1lbnUtd3JhcHBlciIpKXsNCg0KICAgIHZhciBlbG0gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibWVudS13cmFwcGVyIik7DQogICAgDQogICAgdmFyIG9mZmVzdCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzZXR0aW5ncyIpLm9mZnNldEhlaWdodCArIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJteVN0cmVhbXNCb3giKS5vZmZzZXRIZWlnaHQgKyBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY2xpZW50SW5mbyIpLm9mZnNldEhlaWdodDsNCiAgICANCiAgICBpZiAod2luZG93LmlubmVySGVpZ2h0ID4gb2ZmZXN0KSB7DQogICAgICBlbG0uc3R5bGUuaGVpZ2h0ID0gd2luZG93LmlubmVySGVpZ2h0ICsgInB4Ig0KICAgIH0gZWxzZSB7DQogICAgICBlbG0uc3R5bGUuaGVpZ2h0ID0gb2ZmZXN0ICsgInB4Ig0KICAgIH0NCiAgICANCg0KICB9DQoNCg0KfQ0KDQpmdW5jdGlvbiBjcmVhdGVNYXBwaW5nVGFibGUoKSB7DQogIGNvbHVtblRvU29ydCA9IDE7DQogIGNyZWF0ZVNlYXJjaE9iaigpOw0KDQogIC8vIENyZWF0ZSB0YWJsZSAoSGVhZGVyKQ0KICB2YXIgdGFibGUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiaWRfbWFwcGluZyIpOw0KICB0YWJsZS5pbm5lckhUTUwgPSAiIjsNCiAgdmFyIG5ld1RSID0gbmV3IE9iamVjdCgpOw0KICBuZXdUUlsiX2VsZW1lbnQiXSA9ICJUUiI7DQogIG5ld1RSWyJjbGFzcyJdICAgID0gInRhYmxlLW1hcHBpbmctaGVhZGVyIjsNCiAgdGFibGUuYXBwZW5kQ2hpbGQoY3JlYXRlRWxlbWVudChuZXdUUikpOw0KDQogIHZhciB0ciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJpZF9tYXBwaW5nIikubGFzdENoaWxkOw0KICB2YXIgdHJIZWFkbGluZXMgPSBuZXcgQXJyYXkoIkJ1bGsiLCAiQ2guIE5vLiIsICJMb2dvIiwgIkNoYW5uZWwgTmFtZSIsICJQbGF5bGlzdCIsICJHcm91cCBUaXRsZSIsICJYTUxUViBGaWxlIiwgIlhNTFRWIElEIiwgIlRpbWVzaGlmdCIpDQoNCiAgZm9yICh2YXIgaSA9IDA7IGkgPCB0ckhlYWRsaW5lcy5sZW5ndGg7IGkrKykgew0KICAgIHZhciBuZXdURCA9IG5ldyBPYmplY3QoKTsNCg0KICAgIG5ld1REWyJfZWxlbWVudCJdID0gIlREIjsNCiAgICBuZXdURFsiX3RleHQiXSAgICA9IHRySGVhZGxpbmVzW2ldOw0KDQogICAgDQoNCiAgICB2YXIgd2lkdGggPSAiIjsNCiAgICBzd2l0Y2godHJIZWFkbGluZXNbaV0pIHsNCg0KICAgICAgY2FzZSAiQnVsayI6ICANCiAgICAgICAgDQogICAgICAgIG1heFdpZHRoID0gIjMycHgiOyANCiAgICAgICAgbWluV2lkdGggPSAiMzJweCI7IA0KICAgIA0KICAgICAgICAvLyBDcmVhdGUgYnVsayBURA0KICAgICAgICB2YXIgbmV3Q2hlY2tib3ggPSBuZXcgT2JqZWN0KCk7DQogICAgICAgIG5ld0NoZWNrYm94WyJfZWxlbWVudCJdID0gIklOUFVUIjsNCiAgICAgICAgbmV3Q2hlY2tib3hbInR5cGUiXSAgICAgPSAiY2hlY2tib3giOw0KICAgICAgICBuZXdDaGVja2JveFsiY2xhc3MiXSAgICA9ICJidWxrIGhpZGVCdWxrIjsNCiAgICAgICAgbmV3Q2hlY2tib3hbIm9ubW91c2VvdXQiXSA9ICJqYXZhc2NyaXB0OiB0aGlzLmJsdXIoKSINCiAgICAgICAgbmV3Q2hlY2tib3hbIm9uY2xpY2siXSAgICA9ICJqYXZhc2NyaXB0OiBidWxrRWRpdEFsbENoYW5uZWxzKCkiDQoNCiAgICANCiAgICAgICAgLy9uZXdURC5hcHBlbmRDaGlsZChjcmVhdGVFbGVtZW50KG5ld0NoZWNrYm94KSk7DQoNCiAgICAgICAgYnJlYWs7DQoNCiAgICAgIGNhc2UgIkNoLiBOby4iOiANCiAgICAgICAgbWF4V2lkdGggPSAiODBweCI7IA0KICAgICAgICBtaW5XaWR0aCA9ICI3MHB4IjsgDQogICAgICAgIG5ld1REWyJvbmNsaWNrIl0gID0gImphdnNjcmlwdDogc29ydFRhYmxlKCIgKyBpICsgIik7IjsNCiAgICAgICAgbmV3VERbImNsYXNzIl0gICAgPSAicG9pbnRlciI7DQogICAgICAgIGJyZWFrOw0KICAgICAgDQogICAgICBjYXNlICJMb2dvIjogIG1heFdpZHRoID0gIjEyMHB4IjsgbWluV2lkdGggPSAiNjBweCI7IGJyZWFrOw0KICAgICAgDQogICAgICBjYXNlICJDaGFubmVsIE5hbWUiOiAgDQogICAgICAgIG1heFdpZHRoID0gIjUwJSI7IA0KICAgICAgICBtaW5XaWR0aCA9ICIyMDBweCI7IA0KICAgICAgICBuZXdURFsib25jbGljayJdICA9ICJqYXZzY3JpcHQ6IHNvcnRUYWJsZSgiICsgaSArICIpOyI7DQogICAgICAgIG5ld1REWyJjbGFzcyJdID0gInBvaW50ZXIiOw0KICAgICAgICBicmVhazsNCg0KICAgICAgY2FzZSAiUGxheWxpc3QiOiAgICAgIA0KICAgICAgICBtYXhXaWR0aCA9ICIxNTBweCI7IA0KICAgICAgICBtaW5XaWR0aCA9ICIxMDBweCI7IA0KICAgICAgICBuZXdURFsib25jbGljayJdICA9ICJqYXZzY3JpcHQ6IHNvcnRUYWJsZSgiICsgaSArICIpOyI7DQogICAgICAgIG5ld1REWyJjbGFzcyJdICAgID0gInBvaW50ZXIiOw0KICAgICAgICBicmVhazsNCiAgICAgIA0KICAgICAgY2FzZSAiR3JvdXAgVGl0bGUiOiAgIA0KICAgICAgICBtYXhXaWR0aCA9ICIxNTBweCI7IA0KICAgICAgICBtaW5XaWR0aCA9ICIxMDBweCI7IA0KICAgICAgICBuZXdURFsib25jbGljayJdICA9ICJqYXZzY3JpcHQ6IHNvcnRUYWJsZSgiICsgaSArICIpOyI7DQogICAgICAgIG5ld1REWyJjbGFzcyJdICAgID0gInBvaW50ZXIiOw0KICAgICAgICBicmVhazsNCiAgICAgIA0KICAgICAgY2FzZSAiWE1MVFYgRmlsZSI6ICAgIA0KICAgICAgICBtYXhXaWR0aCA9ICIxNTBweCI7IA0KICAgICAgICBtaW5XaWR0aCA9ICIxMDBweCI7IA0KICAgICAgICAvL25ld1REWyJvbmNsaWNrIl0gID0gImphdnNjcmlwdDogc29ydFRhYmxlKCIgKyBpICsgIik7IjsNCiAgICAgICAgbmV3VERbImNsYXNzIl0gICAgPSAiIjsNCiAgICAgICAgYnJlYWs7DQogICAgICANCg0KICAgICAgY2FzZSAiWE1MVFYgSUQiOiAgICAgIG1heFdpZHRoID0gIjE1MHB4IjsgbWluV2lkdGggPSAiMTAwcHgiOyBicmVhazsNCg0KICAgICAgY2FzZSAiVGltZXNoaWZ0IjoNCiAgICAgICAgbWF4V2lkdGggPSAiNTBweCI7DQogICAgICAgIG1pbldpZHRoID0gIjIwcHgiOw0KICAgICAgICBuZXdURFsib25jbGljayJdID0gImphdnNjcmlwdDogc29ydFRhYmxlKCIgKyBpICsgIik7IjsNCiAgICAgICAgbmV3VERbImNsYXNzIl0gICA9ICJwb2ludGVyIjsNCiAgICAgICAgYnJlYWs7DQoNCiAgICAgIGRlZmF1bHQ6IA0KICAgICAgICBuZXdURFsiY2xhc3MiXSAgICA9ICIiOw0KICAgICAgICBicmVhazsNCiAgICB9DQoNCiAgICB0ci5hcHBlbmRDaGlsZChjcmVhdGVFbGVtZW50KG5ld1REKSk7DQogICAgaWYgKHRySGVhZGxpbmVzW2ldID09ICJCdWxrIikgew0KICAgICAgdHIubGFzdENoaWxkLmlubmVySFRNTCA9ICIiOw0KICAgICAgdHIubGFzdENoaWxkLmFwcGVuZENoaWxkKGNyZWF0ZUVsZW1lbnQobmV3Q2hlY2tib3gpKTsNCiAgICAgIA0KICAgIH0NCiAgICANCiAgICB2YXIgZWxtID0gdHIubGFzdENoaWxkOw0KICAgIGVsbS5zdHlsZS53aWR0aCA9IG1heFdpZHRoOw0KICAgIGVsbS5zdHlsZS5tYXhXaWR0aCA9IG1heFdpZHRoOw0KICAgIGVsbS5zdHlsZS5taW5XaWR0aCA9IG1pbldpZHRoOw0KDQogIH0NCiAgY2FsY3VsYXRlV3JhcHBlckhlaWdodCgpOw0KICB2YXIgSURzID0gZ2V0T2JqS2V5cyh4RVBHWyJlcGdNYXBwaW5nIl0pDQoNCiAgdmFyIGFsbFhtbHR2RmlsZXMgPSBnZXRPYmpLZXlzKHhFUEdbInhtbHR2TWFwIl0pOw0KDQogIGlmIChhbGxYbWx0dkZpbGVzID09IDApIHsNCiAgICBzaG93TG9hZGluZ1NjcmVlbihmYWxzZSk7DQogICAgcmV0dXJuOw0KICB9DQoNCiAgLy8gU29ydCBJRHMNCiAgdmFyIHBvc09iaiA9IG5ldyBPYmplY3QoKTsNCiAgZm9yICh2YXIgaSA9IDA7IGkgPCBJRHMubGVuZ3RoOyBpKyspIHsNCiAgICB2YXIgaXRlbSAgPSB4RVBHWyJlcGdNYXBwaW5nIl1bSURzW2ldXTsNCiAgICB2YXIgcG9zDQogICAgc3dpdGNoKGlzTmFOKHhFUEdbImVwZ01hcHBpbmciXVtJRHNbaV1dWyJ4LWNoYW5uZWxJRCJdKSkgew0KICAgICAgY2FzZSBmYWxzZTogcG9zID0gcGFyc2VGbG9hdCh4RVBHWyJlcGdNYXBwaW5nIl1bSURzW2ldXVsieC1jaGFubmVsSUQiXSkgOyBicmVhazsNCiAgICB9DQogICAgcG9zT2JqW3Bvc10gPSBpdGVtOw0KICB9DQogIHBvc0Zsb2F0ID0gZ2V0T2JqS2V5cyhwb3NPYmopDQogIGZ1bmN0aW9uIHNvcnRGbG9hdChhLGIpIHsgcmV0dXJuIGEgLSBiOyB9DQogIHBvc0Zsb2F0LnNvcnQoc29ydEZsb2F0KQ0KDQogIC8vY29uc29sZS5sb2cocG9zRmxvYXQpOw0KDQogIC8vIC0tLQ0KDQogIGlmIChJRHMubGVuZ3RoID4gMjAwKSB7DQogICAgc2V0VGltZW91dChmdW5jdGlvbigpeyANCiAgICAgIHNob3dMb2FkaW5nU2NyZWVuKHRydWUpOw0KICAgIH0sIDEpOw0KDQogIH0NCg0KDQogIC8vIHRhYmxlIGZvciBpbnQgY2hhbm5lbCBJRCdzDQogIGZvciAodmFyIGkgPSAwOyBpIDwgcG9zRmxvYXQubGVuZ3RoOyBpKyspIHsNCg0KICAgIHZhciB0YWJsZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJpZF9tYXBwaW5nIik7DQogICAgdmFyIGl0ZW0gID0gcG9zT2JqW3Bvc0Zsb2F0W2ldXTsNCiAgICAvL3ZhciBpdGVtICA9IHhFUEdbImVwZ01hcHBpbmciXVtJRHNbaV1dOw0KICAgIC8vY29uc29sZS5sb2coaXRlbSk7DQogICAgdmFyIG5ld1RSID0gbmV3IE9iamVjdCgpOw0KICAgIG5ld1RSWyJfZWxlbWVudCJdICAgICAgID0gIlRSIjsNCiAgICBuZXdUUlsiY2xhc3MiXSAgICAgICAgICA9ICIiOw0KICAgIG5ld1RSWyJpZCJdICAgICAgICAgICAgID0gaXRlbVsieC1lcGciXTsNCiAgICBuZXdUUlsib25jb250ZXh0bWVudSJdICA9ICdqYXZhc2NyaXB0OiBzd2l0Y2hDaGFubmVsU3RhdHVzKCInICsgaXRlbVsieC1lcGciXSArICciKTsgcmV0dXJuIGZhbHNlOyc7DQogICAgdGFibGUuYXBwZW5kQ2hpbGQoY3JlYXRlRWxlbWVudChuZXdUUikpOw0KDQogICAgdmFyIHRyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImlkX21hcHBpbmciKS5sYXN0Q2hpbGQ7DQogICAgDQogICAgLy8gQ3JlYXRlIGJ1bGsgVEQNCiAgICB2YXIgbmV3VEQgPSBuZXcgT2JqZWN0KCk7DQogICAgbmV3VERbIl9lbGVtZW50Il0gICA9ICJJTlBVVCI7DQogICAgbmV3VERbInR5cGUiXSAgICAgICA9ICJjaGVja2JveCI7DQogICAgbmV3VERbImNsYXNzIl0gICAgICA9ICJidWxrIGhpZGVCdWxrIjsNCiAgICBuZXdURFsib25tb3VzZW91dCJdID0gImphdmFzY3JpcHQ6IHRoaXMuYmx1cigpIg0KICAgIA0KICAgIGNyZWF0ZU5ld1REKG5ld1RELCB0cik7DQogICAgDQoNCiAgICAvLyBDcmVhdGUgSUQgVEQNCiAgICB2YXIgbmV3VEQgPSBuZXcgT2JqZWN0KCk7DQogICAgbmV3VERbIl9lbGVtZW50Il0gPSAiSU5QVVQiOw0KICAgIG5ld1REWyJ0eXBlIl0gICAgID0gInRleHQiDQogICAgbmV3VERbImNsYXNzIl0gICAgPSAidzQwcHgiOw0KICAgIG5ld1REWyJ2YWx1ZSJdICAgID0gaXRlbVsieC1jaGFubmVsSUQiXTsNCiAgICBuZXdURFsib25mb2N1c291dCJdID0gImphdmFzY3JpcHQ6IGFycmFuZ2VUYWJsZSh0aGlzKTsiDQogICAgY3JlYXRlTmV3VEQobmV3VEQsIHRyKTsNCg0KICAgIC8vIENyZWF0ZSBJTUcgVEQNCiAgICB2YXIgbmV3VEQgPSBuZXcgT2JqZWN0KCk7DQogICAgbmV3VERbIl9lbGVtZW50Il0gPSAiSU1HIjsNCiAgICBuZXdURFsib25jbGljayJdICA9ICdqYXZhc2NyaXB0OiBtYXBwaW5nRGV0YWlsKCInICsgaXRlbVsieC1lcGciXSArICciKTsnOw0KICAgIGlmIChpdGVtWyJ0dmctbG9nbyJdICE9IHVuZGVmaW5lZCkgew0KICAgICAgbmV3VERbInNyYyJdICAgICAgPSBpdGVtWyJ0dmctbG9nbyJdOw0KICAgIH0gZWxzZSB7DQogICAgICBpdGVtWyJ0dmctbG9nbyJdID0gIiI7DQogICAgICBuZXdURFsic3JjIl0gPSAiIjsNCiAgICB9DQogICAgY3JlYXRlTmV3VEQobmV3VEQsIHRyKTsNCiAgICB0ci5sYXN0Q2hpbGQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IG1hcHBpbmdEZXRhaWwoIicgKyBpdGVtWyJ4LWVwZyJdICsgJyIpOycpDQoNCiAgICAvLyBDcmVhdGUgUCBURCAoY2hhbm5lbCBuYW1lKQ0KICAgIHZhciBuZXdURCA9IG5ldyBPYmplY3QoKTsNCiAgICBuZXdURFsiX2VsZW1lbnQiXSA9ICJQIjsNCiAgICBuZXdURFsiX3RleHQiXSAgICA9IGl0ZW1bIngtbmFtZSJdOw0KICAgIG5ld1REWyJjbGFzcyJdICAgICA9IGl0ZW1bIngtY2F0ZWdvcnkiXTsNCg0KICAgIGNyZWF0ZU5ld1REKG5ld1RELCB0cik7DQogICAgdHIubGFzdENoaWxkLnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBtYXBwaW5nRGV0YWlsKCInICsgaXRlbVsieC1lcGciXSArICciKTsnKQ0KICAgIHRyLmxhc3RDaGlsZC5sYXN0Q2hpbGQuc3R5bGUucGFkZGluZyA9ICI1cHggMTBweCI7DQoNCiAgICAvLyBDcmVhdGUgUCBURCAoUGxheWxpc3QgTmFtZSkNCiAgICB2YXIgbmV3VEQgPSBuZXcgT2JqZWN0KCk7DQogICAgbmV3VERbIl9lbGVtZW50Il0gPSAiUCI7DQogICAgbmV3VERbIl90ZXh0Il0gICAgPSBpdGVtWyJfZmlsZS5tM3UubmFtZSJdOw0KICAgIG5ld1REWyJjbGFzcyJdICAgICA9IGl0ZW1bInRhYmxlRWxsaXBzaXMiXTsNCiAgICANCiAgICBjcmVhdGVOZXdURChuZXdURCwgdHIpOw0KICAgIHRyLmxhc3RDaGlsZC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogbWFwcGluZ0RldGFpbCgiJyArIGl0ZW1bIngtZXBnIl0gKyAnIik7JykNCiAgICANCiAgICAvLyBDcmVhdGUgUCBURCAoR3JvdXAgVGl0bGUpDQogICAgdmFyIG5ld1REID0gbmV3IE9iamVjdCgpOw0KICAgIG5ld1REWyJfZWxlbWVudCJdID0gIlAiOw0KICAgIG5ld1REWyJfdGV4dCJdICAgID0gaXRlbVsieC1ncm91cC10aXRsZSJdOw0KICAgIG5ld1REWyJjbGFzcyJdICAgICA9IGl0ZW1bInRhYmxlRWxsaXBzaXMiXTsNCiAgICANCiAgICBjcmVhdGVOZXdURChuZXdURCwgdHIpOw0KICAgIHRyLmxhc3RDaGlsZC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogbWFwcGluZ0RldGFpbCgiJyArIGl0ZW1bIngtZXBnIl0gKyAnIik7JykNCg0KICAgIA0KICAgIC8vIENyZWF0ZSBQIFREIChYTUxUViBmaWxlKQ0KICAgIHZhciBuZXdURCA9IG5ldyBPYmplY3QoKTsNCiAgICBuZXdURFsiX2VsZW1lbnQiXSAgICAgICA9ICJQIjsNCiAgICBuZXdURFsiY2xhc3MiXSAgICA9ICJ0YWJsZUVsbGlwc2lzIjsNCiAgICBuZXdURFsiX3RleHQiXSA9ICItIg0KDQogICAgaWYgKGFsbFhtbHR2RmlsZXMuaW5kZXhPZihpdGVtWyJ4LXhtbHR2LWZpbGUiXSkgIT0gLTEpIHsNCiAgICAgIHZhciB4WG1sdHZGaWxlID0gaXRlbVsieC14bWx0di1maWxlIl07DQogICAgICBzd2l0Y2goeFhtbHR2RmlsZSkgew0KICAgICAgICBjYXNlICItIjogICAgICAgICAgIG5ld1REWyJfdGV4dCJdICA9IHhYbWx0dkZpbGU7IGJyZWFrOw0KICAgICAgICBjYXNlICJ4VGVWZSBEdW1teSI6IG5ld1REWyJfdGV4dCJdICA9IHhYbWx0dkZpbGU7IGJyZWFrOw0KICAgICAgICBkZWZhdWx0OiAgICAgICAgICAgIG5ld1REWyJfdGV4dCJdICA9IGdldFZhbHVlRnJvbVByb3ZpZGVyRmlsZSh4WG1sdHZGaWxlLCAieG1sdHYiLCAibmFtZSIpOyBicmVhazsNCiAgICAgICAgDQogICAgICB9DQogICAgICAvL2NvbnNvbGUubG9nKG5ld1REKTsNCg0KICAgICAgLy9uZXdURFsiX3RleHQiXSAgICA9IGl0ZW1bIngteG1sdHYtZmlsZSJdOw0KICAgIH0gZWxzZSB7DQogICAgICAvL25ld1REWyJfdGV4dCJdID0gIi0iDQogICAgfQ0KICAgIGNyZWF0ZU5ld1REKG5ld1RELCB0cik7DQogICAgdHIubGFzdENoaWxkLnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBtYXBwaW5nRGV0YWlsKCInICsgaXRlbVsieC1lcGciXSArICciKTsnKQ0KDQogICAgLy8gQ3JlYXRyIFAgVEQgKFhNTFRWIGNoYW5uZWwgSUQpDQogICAgbmV3VERbIl9lbGVtZW50Il0gPSAiUCI7DQogICAgbmV3VERbImNsYXNzIl0gICAgPSAidGFibGVFbGxpcHNpcyI7DQoNCiAgICBpZiAoaXRlbVsieC1tYXBwaW5nIl0gIT0gdW5kZWZpbmVkKSB7DQogICAgICBuZXdURFsiX3RleHQiXSAgICA9IGl0ZW1bIngtbWFwcGluZyJdOw0KICAgIH0NCiAgICANCiAgICBjcmVhdGVOZXdURChuZXdURCwgdHIpOw0KICAgIHRyLmxhc3RDaGlsZC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogbWFwcGluZ0RldGFpbCgiJyArIGl0ZW1bIngtZXBnIl0gKyAnIik7JykNCg0KICAgIC8vIENyZWF0ZSBQIFREIChUaW1lc2hpZnQpDQogICAgdmFyIG5ld1REID0gbmV3IE9iamVjdCgpOw0KICAgIG5ld1REWyJfZWxlbWVudCJdID0gIlAiOw0KICAgIG5ld1REWyJfdGV4dCJdICAgID0gaXRlbVsieC10aW1lc2hpZnQiXTsNCiAgICBuZXdURFsiY2xhc3MiXSAgICA9IGl0ZW1bIngtY2F0ZWdvcnkiXTsNCg0KICAgIGNyZWF0ZU5ld1REKG5ld1RELCB0cik7DQogICAgdHIubGFzdENoaWxkLnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBtYXBwaW5nRGV0YWlsKCInICsgaXRlbVsieC1lcGciXSArICciKTsnKQ0KDQoNCiAgICB2YXIgeFhtbHR2RmlsZSAgPSBpdGVtWyJ4LXhtbHR2LWZpbGUiXTsNCiAgICB2YXIgeE1hcHBpbmcgICAgPSBpdGVtWyJ4LW1hcHBpbmciXTsNCiAgICB2YXIgdHZnSUQgICAgICAgPSBpdGVtWyJ0dmctaWQiXTsNCiAgICANCiAgICAvL2NvbnNvbGUubG9nKGl0ZW1bIngtZXBnIl0pOw0KICAgIC8vY29uc29sZS5sb2coaXRlbSk7DQoNCiAgICBpZiAoaXRlbVsieC1hY3RpdmUiXSA9PSB0cnVlKSB7DQogICAgICB0ci5jbGFzc05hbWUgPSAiYWN0aXZlRVBHIjsNCiAgICB9IGVsc2Ugew0KICAgICAgdHIuY2xhc3NOYW1lID0gIm5vdEFjdGl2ZUVQRyI7DQogICAgfQ0KICAgIA0KICB9DQoNCiAgc29ydFRhYmxlKDEpOw0KDQogIHNldFRpbWVvdXQoZnVuY3Rpb24oKXsgDQogICAgc2hvd0xvYWRpbmdTY3JlZW4oZmFsc2UpOw0KICB9LCA1KTsNCn0NCg0KZnVuY3Rpb24gc2VhcmNoSW5NYXBwaW5nKGVsbSkgew0KDQogIHZhciBzZWFyY2ggPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic2VhcmNoTWFwcGluZyIpLnZhbHVlOw0KICB2YXIgdmFsdWVzID0gZ2V0T2JqS2V5cyhzZWFyY2hPYmopDQogIA0KICBmb3IgKHZhciBpID0gdmFsdWVzLmxlbmd0aCAtIDE7IGkgPj0gMDsgaS0tKSB7DQogICAgdmFyIGlkID0gc2VhcmNoT2JqW3ZhbHVlc1tpXV07DQogICAgdmFyIGJvb2wgPSB2YWx1ZXNbaV0udG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhzZWFyY2gudG9Mb3dlckNhc2UoKSk7DQogICAgc3dpdGNoKGJvb2wpIHsNCiAgICAgIGNhc2UgdHJ1ZTogIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5zdHlsZS5kaXNwbGF5ID0gIiI7IGJyZWFrOw0KICAgICAgY2FzZSBmYWxzZTogZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpLnN0eWxlLmRpc3BsYXkgPSAibm9uZSI7IGJyZWFrOw0KICAgIH0NCiAgfQ0KDQp9DQoNCmZ1bmN0aW9uIG1hcHBpbmdEZXRhaWwoeGVwZykgew0KICANCiAgYnVsa0lEcyAgID0gbmV3IEFycmF5KCk7DQogIHZhciBhY3RpdmVFbGVtZW50ID0gZG9jdW1lbnQuYWN0aXZlRWxlbWVudDsNCiAgLy8gSWYgaW5wdXQgaWQsIHJldHVybg0KICBpZiAoYWN0aXZlRWxlbWVudC50YWdOYW1lID09ICJJTlBVVCIpIHsNCiAgICByZXR1cm4NCiAgfQ0KDQogIGlmIChidWxrID09IHRydWUpIHsNCiAgICB2YXIgZWxtID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSgiYnVsayIpOw0KICAgIGZvciAodmFyIGkgPSAxOyBpIDwgZWxtLmxlbmd0aDsgaSsrKSB7DQogICAgICBpZiAoZWxtW2ldLmNoZWNrZWQgPT0gdHJ1ZSkgew0KICAgICAgICB2YXIgaWQgPSBlbG1baV0ucGFyZW50RWxlbWVudC5wYXJlbnRFbGVtZW50LmlkOw0KICAgICAgICBidWxrSURzLnB1c2goaWQpDQogICAgICB9DQogICAgICANCiAgICB9DQoNCiAgICBpZiAoYnVsa0lEcy5sZW5ndGggPT0gMCkgew0KICAgICAgc2hvd0VsZW1lbnQoJ3BvcHVwJywgZmFsc2UpDQogICAgICBhbGVydCgiTm8gY2hhbm5lbHMgc2VsZWN0ZWQgZm9yIGVkaXRpbmciKQ0KICAgICAgcmV0dXJuDQogICAgfQ0KDQogICAgeGVwZyA9IGJ1bGtJRHNbMF0NCiAgfQ0KDQoNCiAgY3JlYXRlU2VhcmNoT2JqKCk7DQogIA0KICBzaG93UG9wVXBFbGVtZW50KCdtYXBwaW5nLWRldGFpbCcpOw0KDQogIHZhciB0aGlzQ2hhbm5lbCA9IHhFUEdbImVwZ01hcHBpbmciXVt4ZXBnXTsNCiAgLy9jb25zb2xlLmxvZyh0aGlzQ2hhbm5lbCk7DQogIHZhciB4WG1sdHZGaWxlICA9IHRoaXNDaGFubmVsWyJ4LXhtbHR2LWZpbGUiXTsNCiAgdmFyIHhNYXBwaW5nICAgID0gdGhpc0NoYW5uZWxbIngtbWFwcGluZyJdOw0KICB2YXIgeENhdGVnb3J5ICAgPSB0aGlzQ2hhbm5lbFsieC1jYXRlZ29yeSJdOw0KDQogIGlmICh4WG1sdHZGaWxlID09IHVuZGVmaW5lZCkgew0KICAgIHRoaXNDaGFubmVsWyJ4LXhtbHR2LWZpbGUiXSA9ICItIjsNCiAgICB4WG1sdHZGaWxlID0gIi0iOw0KICB9DQoNCiAgaWYgKHhNYXBwaW5nID09IHVuZGVmaW5lZCkgew0KICAgIHRoaXNDaGFubmVsWyJ4LW1hcHBpbmciXSA9ICItIjsNCiAgICB4TWFwcGluZyA9ICItIjsNCiAgfQ0KDQogIC8qDQogIGNvbnNvbGUubG9nKCJJRDoiLCB4ZXBnKTsNCiAgY29uc29sZS5sb2coIlhNTFRWIEZpbGU6IiwgeFhtbHR2RmlsZSk7DQogIGNvbnNvbGUubG9nKCJNYXBwaW5nOiIsIHhNYXBwaW5nKTsNCiAgKi8NCg0KICB2YXIga2V5cyA9IGdldE9iaktleXModGhpc0NoYW5uZWwpOw0KICBmb3IgKHZhciBpID0gMDsgaSA8IGtleXMubGVuZ3RoOyBpKyspIHsNCiAgICBpZihkb2N1bWVudC5nZXRFbGVtZW50QnlJZChrZXlzW2ldKSl7DQogICAgICB2YXIgdGQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChrZXlzW2ldKQ0KICAgIH0gZWxzZSB7DQogICAgICB2YXIgdGQgPSB1bmRlZmluZWQ7DQogICAgfQ0KICAgIA0KICAgIHZhciBuZXdJdGVtID0gbmV3IE9iamVjdCgpOw0KICAgIHZhciB2YWx1ZXMsIHRleHQgPSBuZXcgQXJyYXkoKTsNCiAgICBzd2l0Y2goa2V5c1tpXSkgew0KICAgICAgY2FzZSAieC14bWx0di1maWxlIjogDQogICAgICAgIHZhciBmaWxlSURzID0gZ2V0T2JqS2V5cyh4RVBHWyJ4bWx0dk1hcCJdKTsNCiAgICAgICAgdmFyIHZhbHVlID0gbmV3IEFycmF5KCItIik7DQogICAgICAgIHZhciB0ZXh0ICA9IG5ldyBBcnJheSgiLSIpOw0KDQogICAgICAgIGZvciAodmFyIGogPSBmaWxlSURzLmxlbmd0aCAtIDE7IGogPj0gMDsgai0tKSB7DQogICAgICAgICAgaWYgKGZpbGVJRHNbal0gIT0gInhUZVZlIER1bW15Iikgew0KICAgICAgICAgICAgdmFsdWUucHVzaChnZXRWYWx1ZUZyb21Qcm92aWRlckZpbGUoZmlsZUlEc1tqXSwgInhtbHR2IiwgImZpbGUueHRldmUiKSkNCiAgICAgICAgICAgIHRleHQucHVzaChnZXRWYWx1ZUZyb21Qcm92aWRlckZpbGUoZmlsZUlEc1tqXSwgInhtbHR2IiwgIm5hbWUiKSkNCiAgICAgICAgICB9IGVsc2Ugew0KICAgICAgICAgICAgdmFsdWUucHVzaChmaWxlSURzW2pdKQ0KICAgICAgICAgICAgdGV4dC5wdXNoKGZpbGVJRHNbal0pDQogICAgICAgICAgfQ0KICAgICAgICAgIA0KICAgICAgICB9DQogICAgICAgIA0KICAgICAgICBuZXdJdGVtWyJfZWxlbWVudCJdICAgICAgID0gIlNFTEVDVCI7DQogICAgICAgIG5ld0l0ZW1bIl9vcHRpb25WYWx1ZXMiXSAgPSB2YWx1ZTsNCiAgICAgICAgbmV3SXRlbVsiX29wdGlvblRleHQiXSAgICA9IHRleHQNCiAgICAgICAgbmV3SXRlbVsidmFsdWUiXSAgICAgICAgICA9IHhYbWx0dkZpbGU7DQogICAgICAgIG5ld0l0ZW1bIm9uY2hhbmdlIl0gICAgICAgPSAnamF2YXNjcmlwdDogY2hhbmdlWG1sdHZGaWxlKCInICsgeGVwZyArICciLHRoaXMpOyc7DQoNCiAgICAgICAgYnJlYWs7DQoNCiAgICAgIGNhc2UgIngtbWFwcGluZyI6IA0KDQogICAgICAgIHZhciB2YWx1ZXMgPSBnZXRPYmpLZXlzKHhFUEdbInhtbHR2TWFwIl1beFhtbHR2RmlsZV0pOw0KDQogICAgICAgIGZvciAodmFyIGogPSAwOyBqIDwgdmFsdWVzLmxlbmd0aDsgaisrKSB7DQogICAgICAgICAgDQogICAgICAgICAgaWYgKHhFUEdbInhtbHR2TWFwIl1beFhtbHR2RmlsZV1bdmFsdWVzW2pdXS5oYXNPd25Qcm9wZXJ0eSgnZGlzcGxheS1uYW1lJykgPT0gdHJ1ZSkgew0KICAgICAgICAgICAgdmFyIGRpc3BsYXlOYW1lID0geEVQR1sieG1sdHZNYXAiXVt4WG1sdHZGaWxlXVt2YWx1ZXNbal1dWyJkaXNwbGF5LW5hbWUiXTsNCiAgICAgICAgICB9IGVsc2Ugew0KICAgICAgICAgICAgdmFyIGRpc3BsYXlOYW1lID0gIi0iDQogICAgICAgICAgfQ0KICAgICAgICAgIA0KICAgICAgICAgIC8vdGV4dFtqXSA9IHZhbHVlc1tqXSArICIgKCIgKyBkaXNwbGF5TmFtZSArICIpIjsNCiAgICAgICAgICB0ZXh0W2pdID0gZGlzcGxheU5hbWUgKyAiICgiICsgdmFsdWVzW2pdICArICIpIjsNCiAgICAgICAgfQ0KDQogICAgICAgIHRleHQudW5zaGlmdCgiLSIpOw0KICAgICAgICB2YWx1ZXMudW5zaGlmdCgiLSIpOw0KICAgICAgICBuZXdJdGVtWyJfZWxlbWVudCJdICAgICAgID0gIlNFTEVDVCI7DQogICAgICAgIG5ld0l0ZW1bIl9vcHRpb25WYWx1ZXMiXSAgPSB2YWx1ZXM7DQogICAgICAgIG5ld0l0ZW1bIl9vcHRpb25UZXh0Il0gICAgPSB0ZXh0DQogICAgICAgIG5ld0l0ZW1bInZhbHVlIl0gICAgICAgICAgPSB4TWFwcGluZzsNCiAgICAgICAgbmV3SXRlbVsib25jaGFuZ2UiXSAgICAgICA9ICdqYXZhc2NyaXB0OiBtYXBwaW5nQ2hhbm5lbCgiJyArIHhlcGcgKyAnIix0aGlzKTsnOw0KICAgICAgICBicmVhazsNCg0KICAgICAgY2FzZSAieC1jYXRlZ29yeSI6DQogICAgICAgIC8vdmFyIHZhbHVlcyA9IHBsZXhDYXRlZ29yaWVzVmFsdWVzDQogICAgICAgIG5ld0l0ZW1bIl9lbGVtZW50Il0gICAgICAgPSAiU0VMRUNUIjsNCiAgICAgICAgbmV3SXRlbVsiX29wdGlvblZhbHVlcyJdICA9IHBsZXhDYXRlZ29yaWVzVmFsdWVzOw0KICAgICAgICBuZXdJdGVtWyJfb3B0aW9uVGV4dCJdICAgID0gcGxleENhdGVnb3JpZXNPcHRpb247DQogICAgICAgIG5ld0l0ZW1bInZhbHVlIl0gICAgICAgICAgPSB4Q2F0ZWdvcnk7DQogICAgICAgIG5ld0l0ZW1bIm9uY2hhbmdlIl0gICAgICAgPSAnc2F2ZUNhdGVnb3J5KCInICsgeGVwZyArICciKSc7DQogICAgICAgIGJyZWFrOw0KDQogICAgICBjYXNlICJ0dmctbG9nbyI6DQogICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjaGFubmVsLWxvZ28iKS5zZXRBdHRyaWJ1dGUoInNyYyIsIHRoaXNDaGFubmVsWyJ0dmctbG9nbyJdKTsNCiAgICAgICAgbmV3SXRlbVsiX2VsZW1lbnQiXSAgICAgICA9ICJJTlBVVCI7DQogICAgICAgIG5ld0l0ZW1bInR5cGUiXSAgICAgICAgICAgPSAidGV4dCI7DQogICAgICAgIG5ld0l0ZW1bInZhbHVlIl0gICAgICAgICAgPSB0aGlzQ2hhbm5lbFsidHZnLWxvZ28iXTsNCiAgICAgICAgbmV3SXRlbVsib25mb2N1c291dCJdICAgICA9ICdzYXZlQ2hhbm5lbExvZ28oIicgKyB4ZXBnICsgJyIpJzsNCiAgICAgICAgbmV3SXRlbVsicGxhY2Vob2xkZXIiXSAgICA9ICdJbWFnZSBVUkwnOw0KICAgICAgICBicmVhazsNCg0KICAgICAgY2FzZSAieC11cGRhdGUtY2hhbm5lbC1pY29uIjoNCiAgICAgICAgbmV3SXRlbVsiX2VsZW1lbnQiXSAgICAgICA9ICJJTlBVVCI7DQogICAgICAgIG5ld0l0ZW1bInR5cGUiXSAgICAgICAgICAgPSAiY2hlY2tib3giOw0KICAgICAgICBzd2l0Y2goSlNPTi5wYXJzZSh0aGlzQ2hhbm5lbFsieC11cGRhdGUtY2hhbm5lbC1pY29uIl0pKSB7DQogICAgICAgICAgY2FzZSB0cnVlOiBuZXdJdGVtWyJjaGVja2VkIl0gICAgICAgID0gdGhpc0NoYW5uZWxbIngtdXBkYXRlLWNoYW5uZWwtaWNvbiJdOw0KICAgICAgICAgICAgYnJlYWsNCiAgICAgICAgfQ0KICAgICAgICBuZXdJdGVtWyJvbmNoYW5nZSJdICAgICA9ICdzYXZlQ2hhbm5lbEljb25VcGRhdGUoIicgKyB4ZXBnICsgJyIpJzsNCiAgICAgICAgYnJlYWs7DQoNCiAgICAgIGNhc2UgIngtbmFtZSI6DQogICAgICAgIG5ld0l0ZW1bIl9lbGVtZW50Il0gICAgICAgPSAiSU5QVVQiOw0KICAgICAgICBuZXdJdGVtWyJ0eXBlIl0gICAgICAgICAgID0gInRleHQiOw0KICAgICAgICBuZXdJdGVtWyJ2YWx1ZSJdICAgICAgICAgID0gdGhpc0NoYW5uZWxbIngtbmFtZSJdOw0KICAgICAgICBuZXdJdGVtWyJvbmZvY3Vzb3V0Il0gICAgID0gJ3NhdmVDaGFubmVsTmFtZSgiJyArIHhlcGcgKyAnIiknOw0KICAgICAgICBuZXdJdGVtWyJwbGFjZWhvbGRlciJdICAgID0gJ0NoYW5uZWwgTmFtZSc7DQogICAgICAgIGJyZWFrOw0KDQogICAgICBjYXNlICJ4LXVwZGF0ZS1jaGFubmVsLW5hbWUiOg0KICAgICAgICBpZiAodGhpc0NoYW5uZWwuaGFzT3duUHJvcGVydHkoIl91dWlkLmtleSIpID09IHRydWUpIHsNCiAgICAgICAgICBuZXdJdGVtWyJfZWxlbWVudCJdICAgICAgID0gIklOUFVUIjsNCiAgICAgICAgICBuZXdJdGVtWyJ0eXBlIl0gICAgICAgICAgID0gImNoZWNrYm94IjsNCiAgICAgICAgICBzd2l0Y2goSlNPTi5wYXJzZSh0aGlzQ2hhbm5lbFsieC11cGRhdGUtY2hhbm5lbC1uYW1lIl0pKSB7DQogICAgICAgICAgICBjYXNlIHRydWU6IG5ld0l0ZW1bImNoZWNrZWQiXSAgICAgICAgPSB0aGlzQ2hhbm5lbFsieC11cGRhdGUtY2hhbm5lbC1uYW1lIl07DQogICAgICAgICAgICAgIGJyZWFrDQogICAgICAgICAgfQ0KICAgICAgICAgIG5ld0l0ZW1bIm9uY2hhbmdlIl0gICAgID0gJ3NhdmVDaGFubmVsTmFtZVVwZGF0ZSgiJyArIHhlcGcgKyAnIiknOw0KICAgICAgICAgIHNob3dFbGVtZW50KCJzdHJlYW1IYXNDVUlEIiwgdHJ1ZSkNCg0KICAgICAgICAgIGJyZWFrOw0KICAgICAgICB9IGVsc2Ugew0KICAgICAgICAgIC8vc3RyZWFtSGFzQ1VJRA0KICAgICAgICAgIHNob3dFbGVtZW50KCJzdHJlYW1IYXNDVUlEIiwgZmFsc2UpDQogICAgICAgICAgYnJlYWs7DQogICAgICAgIH0NCiAgICAgICAgDQogICAgICBjYXNlICJ4LWFjdGl2ZSI6DQogICAgICAgIG5ld0l0ZW1bIl9lbGVtZW50Il0gICAgICAgPSAiSU5QVVQiOw0KICAgICAgICBuZXdJdGVtWyJ0eXBlIl0gICAgICAgICAgID0gImNoZWNrYm94IjsNCiAgICAgICAgc3dpdGNoKEpTT04ucGFyc2UodGhpc0NoYW5uZWxbIngtYWN0aXZlIl0pKSB7DQogICAgICAgICAgY2FzZSB0cnVlOiBuZXdJdGVtWyJjaGVja2VkIl0gICAgICAgID0gdGhpc0NoYW5uZWxbIngtYWN0aXZlIl07DQogICAgICAgICAgICBicmVhaw0KICAgICAgICB9DQogICAgICAgIG5ld0l0ZW1bIm9uY2hhbmdlIl0gICAgID0gJ3NhdmVDaGFubmVsU3RhdHVzKCInICsgeGVwZyArICciKSc7DQogICAgICAgIGJyZWFrOw0KDQogICAgICBjYXNlICJ4LWdyb3VwLXRpdGxlIjoNCiAgICAgICAgbmV3SXRlbVsiX2VsZW1lbnQiXSAgICAgICA9ICJJTlBVVCI7DQogICAgICAgIG5ld0l0ZW1bInR5cGUiXSAgICAgICAgICAgPSAidGV4dCI7DQogICAgICAgIG5ld0l0ZW1bInZhbHVlIl0gICAgICAgICAgPSB0aGlzQ2hhbm5lbFsieC1ncm91cC10aXRsZSJdOw0KICAgICAgICBuZXdJdGVtWyJvbmZvY3Vzb3V0Il0gICAgID0gJ3NhdmVHcm91cFRpdGxlKCInICsgeGVwZyArICciKSc7DQogICAgICAgIG5ld0l0ZW1bInBsYWNlaG9sZGVyIl0gICAgPSAnR3JvdXAgVGl0bGUnOw0KICAgICAgICBicmVhazsNCg0KICAgICAgZGVmYXVsdDoNCiAgICAgICAgbmV3SXRlbVsiX2VsZW1lbnQiXSAgICAgICA9ICJQIjsNCiAgICAgICAgbmV3SXRlbVsiX3RleHQiXSAgICAgICAgICA9IHRoaXNDaGFubmVsW2tleXNbaV1dOw0KICAgICAgICBicmVhazsNCiAgICAgIA0KICAgIH0NCiAgICANCiAgICBpZiAodGQgIT0gdW5kZWZpbmVkKSB7DQogICAgICB0ZC5pbm5lckhUTUwgPSAiIjsNCiAgICAgIHZhciBlbGVtZW50ID0gY3JlYXRlTmV3RWxlbWVudChuZXdJdGVtKQ0KICAgICAgLy9jb25zb2xlLmxvZyhlbGVtZW50KTsNCiAgICAgIHRkLmFwcGVuZENoaWxkKGVsZW1lbnQpOw0KICAgIH0NCg0KICB9DQoNCiAgaWYgKGJ1bGsgPT0gdHJ1ZSkgew0KDQogICAgdmFyIGVsbSA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlDbGFzc05hbWUoIm5vQnVsayIpOw0KICAgIGZvciAodmFyIGkgPSAwOyBpIDwgZWxtLmxlbmd0aDsgaSsrKSB7DQogICAgICBlbG1baV0ubGFzdENoaWxkLnNldEF0dHJpYnV0ZSgicmVhZG9ubHkiLCB0cnVlKQ0KICAgICAgZWxtW2ldLmxhc3RDaGlsZC5zdHlsZS5ib3JkZXJDb2xvciA9ICJyZWQiOw0KICAgIH0NCg0KICAgIHhlcGcgPSBidWxrSURzWzBdDQogIH0NCg0KICBzb3J0U2VsZWN0KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ4LXhtbHR2LWZpbGUiKS5sYXN0Q2hpbGQpOw0KICBzb3J0U2VsZWN0KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ4LW1hcHBpbmciKS5sYXN0Q2hpbGQpOw0KICANCn0NCg0KZnVuY3Rpb24gc29ydFNlbGVjdChlbGVtKSB7DQoNCiAgdmFyIHRtcEFyeSA9IFtdOw0KICAvLyBSZXRhaW4gc2VsZWN0ZWQgdmFsdWUgYmVmb3JlIHNvcnRpbmcNCiAgdmFyIHNlbGVjdGVkVmFsdWUgPSBlbGVtW2VsZW0uc2VsZWN0ZWRJbmRleF0udmFsdWU7DQogIC8vIEdyYWIgYWxsIGV4aXN0aW5nIGVudHJpZXMNCiAgZm9yICh2YXIgaT0wO2k8ZWxlbS5vcHRpb25zLmxlbmd0aDtpKyspIHRtcEFyeS5wdXNoKGVsZW0ub3B0aW9uc1tpXSk7DQogIC8vIFNvcnQgYXJyYXkgYnkgdGV4dCBhdHRyaWJ1dGUNCiAgdG1wQXJ5LnNvcnQoZnVuY3Rpb24oYSxiKXsgcmV0dXJuIChhLnRleHQgPCBiLnRleHQpPy0xOjE7IH0pOw0KICAvLyBXaXBlIG91dCBleGlzdGluZyBlbGVtZW50cw0KICB3aGlsZSAoZWxlbS5vcHRpb25zLmxlbmd0aCA+IDApIGVsZW0ub3B0aW9uc1swXSA9IG51bGw7DQogIC8vIFJlc3RvcmUgc29ydGVkIGVsZW1lbnRzDQogIHZhciBuZXdTZWxlY3RlZEluZGV4ID0gMDsNCiAgZm9yICh2YXIgaT0wO2k8dG1wQXJ5Lmxlbmd0aDtpKyspIHsNCiAgICAgIGVsZW0ub3B0aW9uc1tpXSA9IHRtcEFyeVtpXTsNCiAgICAgIGlmKGVsZW0ub3B0aW9uc1tpXS52YWx1ZSA9PSBzZWxlY3RlZFZhbHVlKSBuZXdTZWxlY3RlZEluZGV4ID0gaTsNCiAgfQ0KICBlbGVtLnNlbGVjdGVkSW5kZXggPSBuZXdTZWxlY3RlZEluZGV4OyAvLyBTZXQgbmV3IHNlbGVjdGVkIGluZGV4IGFmdGVyIHNvcnRpbmcNCiAgcmV0dXJuOw0KfQ0KDQoNCmZ1bmN0aW9uIHN3aXRjaENoYW5uZWxTdGF0dXMoeGVwZykgew0KICB2YXIgdGhpc0NoYW5uZWwgPSB4RVBHWyJlcGdNYXBwaW5nIl1beGVwZ107DQogIHZhciB4WG1sdHZGaWxlID0gdGhpc0NoYW5uZWxbIngteG1sdHYtZmlsZSJdOw0KDQogIGlmICh4RVBHWyJ4bWx0dk1hcCJdLmhhc093blByb3BlcnR5KHhYbWx0dkZpbGUpID09IHRydWUpIHsNCiAgICBpZiAodGhpc0NoYW5uZWxbIngtbWFwcGluZyJdICE9ICItIiAmJiB0aGlzQ2hhbm5lbFsieC1tYXBwaW5nIl0gIT0gdW5kZWZpbmVkKSB7DQogICAgICB0aGlzQ2hhbm5lbFsieC1hY3RpdmUiXSA9ICF0aGlzQ2hhbm5lbFsieC1hY3RpdmUiXTsNCiAgICAgIHZhciB0ciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHhlcGcpOw0KICAgICAgc3dpdGNoKHRoaXNDaGFubmVsWyJ4LWFjdGl2ZSJdKSB7DQogICAgICAgIGNhc2UgdHJ1ZTogdHIuY2xhc3NOYW1lID0gImFjdGl2ZUVQRyI7IGJyZWFrOw0KICAgICAgICBjYXNlIGZhbHNlOiB0ci5jbGFzc05hbWUgPSAibm90QWN0aXZlRVBHIjsgYnJlYWs7DQogICAgICB9DQogICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibG9nSW5mbyIpLmNsYXNzTmFtZSA9ICJub3RWaXNpYmxlIjsNCg0KICAgIH0gZWxzZSB7DQogICAgICB2YXIgZXJyID0gIlhNTFRWIENoYW5uZWwgaXMgbm90IHNlbGVjdGVkIg0KICAgICAgYWxlcnQoZXJyKQ0KICAgICAgLyoNCiAgICAgIHZhciBuZXdFcnJvciA9IG5ldyBPYmplY3QoKTsNCiAgICAgIG5ld0Vycm9yWyJlcnIiXSA9ICJDaGFubmVsIGlzIG5vdCBzZWxlY3RlZCI7DQogICAgICBjaGVja0VycihuZXdFcnJvcik7DQogICAgICAqLw0KICAgIH0NCg0KICB9IGVsc2Ugew0KICAgIHZhciBlcnIgPSAiWE1MVFYgRmlsZSBpcyBub3Qgc2VsZWN0ZWQiDQogICAgYWxlcnQoZXJyKQ0KICAgIC8qDQogICAgdmFyIG5ld0Vycm9yID0gbmV3IE9iamVjdCgpOw0KICAgIG5ld0Vycm9yWyJlcnIiXSA9ICJYTUxUViBmaWxlIGlzIG5vdCBzZWxlY3RlZCI7DQogICAgY2hlY2tFcnIobmV3RXJyb3IpOw0KICAgICovDQogIH0NCg0KICBzZWFyY2hJbk1hcHBpbmcoKTsNCg0KfQ0KDQpmdW5jdGlvbiBjcmVhdGVOZXdFbGVtZW50KG5ld0l0ZW0pIHsNCg0KICB2YXIgZWxlbWVudCA9IGNyZWF0ZUVsZW1lbnQobmV3SXRlbSk7DQogIA0KICBzd2l0Y2gobmV3SXRlbVsiX2VsZW1lbnQiXSkgew0KICAgIGNhc2UgIlNFTEVDVCI6DQogICAgICAvL2VsZW1lbnRbXQ0KICAgICAgdmFyIHZhbHVlcyAgPSBuZXdJdGVtWyJfb3B0aW9uVmFsdWVzIl07DQogICAgICB2YXIgdGV4dCAgICA9IG5ld0l0ZW1bIl9vcHRpb25UZXh0Il07DQoNCiAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdmFsdWVzLmxlbmd0aDsgaSsrKSB7DQogICAgICAgIC8vY29uc29sZS5sb2coaXRlbSk7DQogICAgICAgIHZhciBuZXdFbnRyeSA9IG5ldyBPYmplY3Q7DQogICAgICAgIG5ld0VudHJ5WyJfZWxlbWVudCJdICA9ICJPUFRJT04iOw0KICAgICAgICBuZXdFbnRyeVsiX3RleHQiXSAgICAgPSB0ZXh0W2ldOw0KICAgICAgICBuZXdFbnRyeVsidmFsdWUiXSAgICAgPSB2YWx1ZXNbaV07DQogICAgICAgIGVsZW1lbnQuYXBwZW5kQ2hpbGQoY3JlYXRlRWxlbWVudChuZXdFbnRyeSkpOw0KICAgICAgfQ0KICAgICAgZWxlbWVudC52YWx1ZSA9IG5ld0l0ZW1bInZhbHVlIl07DQogICAgICBicmVhazsNCiAgICANCiAgICBkZWZhdWx0OiANCiAgICAgIA0KICAgICAgLy9lbGVtZW50LmFwcGVuZENoaWxkKGNyZWF0ZUVsZW1lbnQobmV3SXRlbSkpOw0KICAgICAgYnJlYWs7DQogIH0NCiAgDQogIHJldHVybiBlbGVtZW50Ow0KfQ0KDQpmdW5jdGlvbiBzYXZlQnVsayhrZXksIHZhbHVlKSB7DQogIGZvciAodmFyIGkgPSAwOyBpIDwgYnVsa0lEcy5sZW5ndGg7IGkrKykgew0KICAgIHZhciBpZCA9IGJ1bGtJRHNbaV0NCiAgICB2YXIgdGhpc0NoYW5uZWwgPSB4RVBHWyJlcGdNYXBwaW5nIl1baWRdOw0KICAgIHRoaXNDaGFubmVsW2tleV0gPSB2YWx1ZTsNCg0KICAgIHN3aXRjaChrZXkpIHsNCiAgICAgIGNhc2UgInR2Zy1sb2dvIjogICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkuY2hpbGROb2Rlc1syXS5sYXN0Q2hpbGQuc2V0QXR0cmlidXRlKCJzcmMiLCB2YWx1ZSk7IGJyZWFrOw0KICAgICAgDQogICAgICBjYXNlICJ4LWNhdGVnb3J5IjogICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpLmNoaWxkTm9kZXNbM10ubGFzdENoaWxkLmNsYXNzTmFtZSA9IHZhbHVlOyBicmVhazsNCg0KICAgICAgY2FzZSAieC14bWx0di1maWxlIjoNCiAgICAgICAgdmFyIGVsZW1lbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkuY2hpbGROb2Rlc1s2XS5sYXN0Q2hpbGQ7DQogICAgICAgIHN3aXRjaCh2YWx1ZSkgew0KICAgICAgICAgIGNhc2UgIi0iOiAgICAgICAgICAgZWxlbWVudC5pbm5lckhUTUwgPSB2YWx1ZTsgYnJlYWs7DQogICAgICAgICAgY2FzZSAieFRlVmUgRHVtbXkiOiBlbGVtZW50LmlubmVySFRNTCA9IHZhbHVlOyBicmVhazsNCiAgICAgICAgICBkZWZhdWx0OiAgICAgICAgICAgIGVsZW1lbnQuaW5uZXJIVE1MID0gZ2V0VmFsdWVGcm9tUHJvdmlkZXJGaWxlKHZhbHVlLCAieG1sdHYiLCAibmFtZSIpOyBicmVhazsNCiAgICAgICAgfQ0KDQoNCg0KICAgICAgLy9kb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkuY2hpbGROb2Rlc1s1XS5sYXN0Q2hpbGQuaW5uZXJIVE1MID0gdmFsdWUucmVwbGFjZSgvXi4qW1xcXC9dLywgJycpOyBicmVhazsNCiAgICAgIGNhc2UgIngtbWFwcGluZyI6ICAgDQogICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5jaGlsZE5vZGVzWzddLmxhc3RDaGlsZC5pbm5lckhUTUwgPSB2YWx1ZTsNCiAgICAgICAgaWYgKHZhbHVlID09ICItIikgew0KICAgICAgICAgIHRoaXNDaGFubmVsWyJ4LWFjdGl2ZSJdID0gZmFsc2U7DQogICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpLmNsYXNzTmFtZSA9ICJub3RBY3RpdmVFUEciOw0KICAgICAgICB9IGVsc2Ugew0KICAgICAgICAgIHRoaXNDaGFubmVsWyJ4LWFjdGl2ZSJdID0gdHJ1ZTsNCiAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkuY2xhc3NOYW1lID0gImFjdGl2ZUVQRyI7DQogICAgICAgIH0NCiAgICAgICAgYnJlYWs7DQoNCiAgICAgIGNhc2UgIngtZ3JvdXAtdGl0bGUiOiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkuY2hpbGROb2Rlc1s1XS5sYXN0Q2hpbGQuaW5uZXJIVE1MID0gdmFsdWU7IGJyZWFrOw0KDQogICAgICBjYXNlICJ4LWFjdGl2ZSI6DQogICAgICAgIHZhciB0ciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKTsNCiAgICAgICAgDQogICAgICAgIGlmICh0aGlzQ2hhbm5lbC5oYXNPd25Qcm9wZXJ0eSgieC14bWx0di1maWxlIikgPT0gdHJ1ZSkgew0KICAgICAgICAgIGlmICh0aGlzQ2hhbm5lbFsieC1tYXBwaW5nIl0gIT0gIi0iICYmIHRoaXNDaGFubmVsWyJ4LW1hcHBpbmciXSAhPSB1bmRlZmluZWQgJiYgdGhpc0NoYW5uZWxbIngteG1sdHYtZmlsZSJdICE9ICItIiAmJiB0aGlzQ2hhbm5lbFsieC14bWx0di1maWxlIl0gIT0gdW5kZWZpbmVkKSB7DQogICAgICAgICAgICBzd2l0Y2godGhpc0NoYW5uZWxbIngtYWN0aXZlIl0pIHsNCiAgICAgICAgICAgICAgY2FzZSB0cnVlOiB0ci5jbGFzc05hbWUgPSAiYWN0aXZlRVBHIjsgYnJlYWs7DQogICAgICAgICAgICAgIGNhc2UgZmFsc2U6IHRyLmNsYXNzTmFtZSA9ICJub3RBY3RpdmVFUEciOyBicmVhazsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgIH0NCiAgICAgICAgfQ0KDQogICAgfQ0KDQogICAgdXBkYXRlQ2hhbm5lbExvZ28oaWQpDQoNCiAgfQ0KDQp9DQoNCmZ1bmN0aW9uIHVwZGF0ZUNoYW5uZWxMb2dvKHhlcGcpIHsNCiAgdmFyIHRoaXNDaGFubmVsID0geEVQR1siZXBnTWFwcGluZyJdW3hlcGddOw0KICBpZiAodGhpc0NoYW5uZWxbIngtdXBkYXRlLWNoYW5uZWwtaWNvbiJdID09IHRydWUpIHsNCiAgICB2YXIgeFhtbHR2RmlsZSAgPSB0aGlzQ2hhbm5lbFsieC14bWx0di1maWxlIl07DQogICAgdmFyIHhNYXBwaW5nICAgID0gdGhpc0NoYW5uZWxbIngtbWFwcGluZyJdOw0KDQogICAgaWYgKHhYbWx0dkZpbGUgIT0gIi0iICYmIHhYbWx0dkZpbGUubGVuZ3RoID4gMCAmJiB4TWFwcGluZyAhPSAiLSIgJiYgeE1hcHBpbmcubGVuZ3RoID4gMCkgew0KICAgICAgaWYgKHhFUEdbInhtbHR2TWFwIl1beFhtbHR2RmlsZV1beE1hcHBpbmddLmhhc093blByb3BlcnR5KCJpY29uIikpIHsNCiAgICAgICAgdmFyIGxvZ29VUkwgPSB4RVBHWyJ4bWx0dk1hcCJdW3hYbWx0dkZpbGVdW3hNYXBwaW5nXVsiaWNvbiJdOw0KICAgICAgICB0aGlzQ2hhbm5lbFsidHZnLWxvZ28iXSA9IGxvZ29VUkw7DQogICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHhlcGcpLmNoaWxkTm9kZXNbMl0ubGFzdENoaWxkLnNldEF0dHJpYnV0ZSgic3JjIiwgbG9nb1VSTCk7DQogICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjaGFubmVsLWxvZ28iKS5zZXRBdHRyaWJ1dGUoInNyYyIsIGxvZ29VUkwpOw0KICAgICAgfSBlbHNlIHsNCiAgICAgICAgYWxlcnQoIk5vIGxvZ28gVVJMIGluIHRoZSBYTUxUViBmaWxlIGF2YWlsYWJsZSIpDQogICAgICB9DQogICAgICANCiAgICB9DQogICAgDQogICAgLyoNCiAgICBpZiAoeEVQR1sieG1sdHZNYXAiXVt4WG1sdHZGaWxlXVt4TWFwcGluZ11bImljb24iXSAhPSB1bmRlZmluZWQpIHsNCg0KICAgICAgDQogICAgfQ0KICAgICovDQogICAgDQogIH0NCn0NCg0KZnVuY3Rpb24gc2F2ZUNoYW5uZWxMb2dvKHhlcGcpIHsNCiAgaWYgKGJ1bGsgPT0gZmFsc2UpIHsNCiAgICB2YXIgdGhpc0NoYW5uZWwgPSB4RVBHWyJlcGdNYXBwaW5nIl1beGVwZ107DQogICAgdGhpc0NoYW5uZWxbInR2Zy1sb2dvIl0gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidHZnLWxvZ28iKS5sYXN0Q2hpbGQudmFsdWU7DQogICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoeGVwZykuY2hpbGROb2Rlc1syXS5sYXN0Q2hpbGQuc2V0QXR0cmlidXRlKCJzcmMiLCB0aGlzQ2hhbm5lbFsidHZnLWxvZ28iXSk7DQogICAgbWFwcGluZ0RldGFpbCh4ZXBnKTsNCiAgICByZXR1cm4NCiAgfQ0KDQogIGlmIChidWxrID09IHRydWUpIHsNCiAgICB2YXIga2V5ICAgPSAidHZnLWxvZ28iOw0KICAgIHZhciB2YWx1ZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0dmctbG9nbyIpLmxhc3RDaGlsZC52YWx1ZTsNCiAgICBzYXZlQnVsayhrZXksIHZhbHVlKTsNCg0KICAgIG1hcHBpbmdEZXRhaWwoeGVwZyk7DQogICAgcmV0dXJuDQogIH0NCn0NCg0KZnVuY3Rpb24gc2F2ZUNoYW5uZWxJY29uVXBkYXRlKHhlcGcpIHsNCg0KICB2YXIga2V5ICAgPSAieC11cGRhdGUtY2hhbm5lbC1pY29uIjsNCiAgdmFyIHZhbHVlID0gSlNPTi5wYXJzZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgieC11cGRhdGUtY2hhbm5lbC1pY29uIikubGFzdENoaWxkLmNoZWNrZWQpOw0KICBpZiAoYnVsayA9PSBmYWxzZSkgew0KICAgIHZhciB0aGlzQ2hhbm5lbCA9IHhFUEdbImVwZ01hcHBpbmciXVt4ZXBnXTsNCiAgICB0aGlzQ2hhbm5lbFtrZXldID0gdmFsdWUNCiAgICB1cGRhdGVDaGFubmVsTG9nbyh4ZXBnKQ0KICAgIA0KICAgIG1hcHBpbmdEZXRhaWwoeGVwZyk7DQogICAgc2VhcmNoSW5NYXBwaW5nKCk7DQogICAgcmV0dXJuDQogIH0NCg0KICBpZiAoYnVsayA9PSB0cnVlKSB7DQogICAgc2F2ZUJ1bGsoa2V5LCB2YWx1ZSk7DQogICAgbWFwcGluZ0RldGFpbCh4ZXBnKTsNCiAgICByZXR1cm4NCiAgfQ0KICANCn0NCg0KZnVuY3Rpb24gc2F2ZUNoYW5uZWxOYW1lKHhlcGcpIHsNCiAgaWYgKGJ1bGsgPT0gZmFsc2UpIHsNCiAgICB2YXIgdGhpc0NoYW5uZWwgPSB4RVBHWyJlcGdNYXBwaW5nIl1beGVwZ107DQogICAgdGhpc0NoYW5uZWxbIngtbmFtZSJdID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIngtbmFtZSIpLmxhc3RDaGlsZC52YWx1ZTsNCiAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCh4ZXBnKS5jaGlsZE5vZGVzWzNdLmxhc3RDaGlsZC5pbm5lckhUTUwgPSB0aGlzQ2hhbm5lbFsieC1uYW1lIl07DQogICAgbWFwcGluZ0RldGFpbCh4ZXBnKTsNCiAgICBzZWFyY2hJbk1hcHBpbmcoKTsNCiAgfQ0KICANCn0NCg0KZnVuY3Rpb24gc2F2ZUNoYW5uZWxOYW1lVXBkYXRlKHhlcGcpIHsNCiAgdmFyIGtleSAgID0gIngtdXBkYXRlLWNoYW5uZWwtbmFtZSI7DQogIHZhciB2YWx1ZSA9IEpTT04ucGFyc2UoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIngtdXBkYXRlLWNoYW5uZWwtbmFtZSIpLmxhc3RDaGlsZC5jaGVja2VkKTsNCg0KICBpZiAoYnVsayA9PSBmYWxzZSkgew0KICAgIHZhciB0aGlzQ2hhbm5lbCA9IHhFUEdbImVwZ01hcHBpbmciXVt4ZXBnXTsNCiAgICB0aGlzQ2hhbm5lbFtrZXldID0gdmFsdWUNCiAgICBtYXBwaW5nRGV0YWlsKHhlcGcpOw0KICAgIHNlYXJjaEluTWFwcGluZygpOw0KICAgIHJldHVybg0KICB9DQoNCiAgaWYgKGJ1bGsgPT0gdHJ1ZSkgew0KICAgIHNhdmVCdWxrKGtleSwgdmFsdWUpOw0KICAgIG1hcHBpbmdEZXRhaWwoeGVwZyk7DQogICAgcmV0dXJuDQogIH0NCg0KfQ0KDQpmdW5jdGlvbiBzYXZlQ2hhbm5lbFN0YXR1cyh4ZXBnKSB7DQogIHZhciB0aGlzQ2hhbm5lbCA9IHhFUEdbImVwZ01hcHBpbmciXVt4ZXBnXTsNCiAgdmFyIHhYbWx0dkZpbGUgPSB0aGlzQ2hhbm5lbFsieC14bWx0di1maWxlIl07DQoNCiAgdmFyIGtleSAgID0gIngtYWN0aXZlIjsNCiAgdmFyIHZhbHVlID0gSlNPTi5wYXJzZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgieC1hY3RpdmUiKS5sYXN0Q2hpbGQuY2hlY2tlZCk7DQoNCiAgaWYgKHhFUEdbInhtbHR2TWFwIl0uaGFzT3duUHJvcGVydHkoeFhtbHR2RmlsZSkgPT0gdHJ1ZSkgew0KICAgIGlmICh0aGlzQ2hhbm5lbFsieC1tYXBwaW5nIl0gIT0gIi0iICYmIHRoaXNDaGFubmVsWyJ4LW1hcHBpbmciXSAhPSB1bmRlZmluZWQpIHsNCiAgICAgIHRoaXNDaGFubmVsWyJ4LWFjdGl2ZSJdID0gIXRoaXNDaGFubmVsWyJ4LWFjdGl2ZSJdOw0KICAgICAgdmFyIHRyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoeGVwZyk7DQogICAgICBzd2l0Y2godGhpc0NoYW5uZWxbIngtYWN0aXZlIl0pIHsNCiAgICAgICAgY2FzZSB0cnVlOiB0ci5jbGFzc05hbWUgPSAiYWN0aXZlRVBHIjsgYnJlYWs7DQogICAgICAgIGNhc2UgZmFsc2U6IHRyLmNsYXNzTmFtZSA9ICJub3RBY3RpdmVFUEciOyBicmVhazsNCiAgICAgIH0NCiAgICAgIA0KICAgIH0gZWxzZSB7DQogICAgICB2YXIgZXJyID0gIlhNTFRWIENoYW5uZWwgaXMgbm90IHNlbGVjdGVkIg0KICAgICAgYWxlcnQoZXJyKQ0KICAgICAgdmFsdWUgPSBmYWxzZQ0KICAgIH0NCg0KICB9IGVsc2Ugew0KICAgIGlmICh2YWx1ZSA9PSB0cnVlKSB7DQogICAgICB2YXIgZXJyID0gIlhNTFRWIEZpbGUgaXMgbm90IHNlbGVjdGUiDQogICAgICBhbGVydChlcnIpDQogICAgICB2YWx1ZSA9IGZhbHNlDQogICAgfQ0KICB9DQoNCiAgDQoNCiAgaWYgKGJ1bGsgPT0gZmFsc2UpIHsNCiAgICB2YXIgdGhpc0NoYW5uZWwgPSB4RVBHWyJlcGdNYXBwaW5nIl1beGVwZ107DQogICAgdGhpc0NoYW5uZWxba2V5XSA9IHZhbHVlDQogICAgbWFwcGluZ0RldGFpbCh4ZXBnKTsNCiAgICBzZWFyY2hJbk1hcHBpbmcoKTsNCg0KICAgIHZhciB0ciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHhlcGcpOw0KICAgIHN3aXRjaCh0aGlzQ2hhbm5lbFsieC1hY3RpdmUiXSkgew0KICAgICAgY2FzZSB0cnVlOiB0ci5jbGFzc05hbWUgPSAiYWN0aXZlRVBHIjsgYnJlYWs7DQogICAgICBjYXNlIGZhbHNlOiB0ci5jbGFzc05hbWUgPSAibm90QWN0aXZlRVBHIjsgYnJlYWs7DQogICAgfQ0KDQogICAgcmV0dXJuDQogIH0NCg0KICBpZiAoYnVsayA9PSB0cnVlKSB7DQogICAgc2F2ZUJ1bGsoa2V5LCB2YWx1ZSk7DQogICAgbWFwcGluZ0RldGFpbCh4ZXBnKTsNCiAgICByZXR1cm4NCiAgfQ0KDQp9DQoNCmZ1bmN0aW9uIHNhdmVHcm91cFRpdGxlKHhlcGcpIHsNCiAgdmFyIGtleSAgID0gIngtZ3JvdXAtdGl0bGUiOw0KICB2YXIgdmFsdWUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgieC1ncm91cC10aXRsZSIpLmxhc3RDaGlsZC52YWx1ZTsNCg0KICBpZiAoYnVsayA9PSBmYWxzZSkgew0KICAgIHZhciB0aGlzQ2hhbm5lbCA9IHhFUEdbImVwZ01hcHBpbmciXVt4ZXBnXTsNCiAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCh4ZXBnKS5jaGlsZE5vZGVzWzVdLmxhc3RDaGlsZC5pbm5lckhUTUwgPSB2YWx1ZTsNCiAgICB0aGlzQ2hhbm5lbFtrZXldID0gdmFsdWU7DQogICAgbWFwcGluZ0RldGFpbCh4ZXBnKTsNCiAgICBzZWFyY2hJbk1hcHBpbmcoKTsNCiAgfQ0KDQogIGlmIChidWxrID09IHRydWUpIHsNCiAgICBzYXZlQnVsayhrZXksIHZhbHVlKTsNCiAgICBtYXBwaW5nRGV0YWlsKHhlcGcpOw0KICAgIHJldHVybg0KICB9DQoNCn0NCg0KZnVuY3Rpb24gc2F2ZUNhdGVnb3J5KHhlcGcpIHsNCiAgdmFyIGtleSAgID0gIngtY2F0ZWdvcnkiOw0KICB2YXIgdmFsdWUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgieC1jYXRlZ29yeSIpLmxhc3RDaGlsZC52YWx1ZTsNCg0KICBpZiAoYnVsayA9PSBmYWxzZSkgew0KICAgIHZhciB0aGlzQ2hhbm5lbCA9IHhFUEdbImVwZ01hcHBpbmciXVt4ZXBnXTsNCiAgICB0aGlzQ2hhbm5lbFtrZXldID0gdmFsdWUNCiAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCh4ZXBnKS5jaGlsZE5vZGVzWzNdLmxhc3RDaGlsZC5jbGFzc05hbWUgPSB2YWx1ZQ0KICAgIG1hcHBpbmdEZXRhaWwoeGVwZyk7DQogICAgc2VhcmNoSW5NYXBwaW5nKCk7DQogIH0NCg0KICBpZiAoYnVsayA9PSB0cnVlKSB7DQogICAgc2F2ZUJ1bGsoa2V5LCB2YWx1ZSk7DQogICAgbWFwcGluZ0RldGFpbCh4ZXBnKTsNCiAgICByZXR1cm4NCiAgfQ0KDQp9DQoNCmZ1bmN0aW9uIGFycmFuZ2VUYWJsZShlbG0pIHsNCiAgdmFyIHRyID0gZWxtLnBhcmVudEVsZW1lbnQucGFyZW50RWxlbWVudDsNCiAgdmFyIG5ld1Bvc2l0aW9uID0gZWxtLnZhbHVlOw0KICB2YXIgeF9jaGFubmVsSUQgPSB0ci5pZDsNCg0KICBzd2l0Y2goaXNOYU4obmV3UG9zaXRpb24pKSB7DQogICAgY2FzZSB0cnVlOiANCiAgICAgIGFsZXJ0KCJDaC4gTm8uIG11c3QgYmUgYSBudW1iZXIiKTsNCiAgICAgIG1hcHBpbmdFcnJvciA9IHRydWU7DQogICAgICBicmVhazsNCiAgfQ0KDQoNCiAgLy92YXIgaXRlbSA9IHhFUEdbImVwZ01hcHBpbmciXVtpZF07DQogIHZhciBrZXlzID0gZ2V0T2JqS2V5cyh4RVBHWyJlcGdNYXBwaW5nIl0pDQogIGZvciAodmFyIGkgPSAwOyBpIDwga2V5cy5sZW5ndGg7IGkrKykgew0KICAgIHZhciBpdGVtID0geEVQR1siZXBnTWFwcGluZyJdW2tleXNbaV1dOw0KICAgIGlmIChpdGVtWyJ4LWVwZyJdID09IHhfY2hhbm5lbElEKSB7DQoNCiAgICAgIC8vIENoZWNrIGlmIHBvc2l0aW9uIGV4aXN0DQogICAgICB2YXIgb2xkUG9zaXRpb24gPSBpdGVtWyJ4LWNoYW5uZWxJRCJdOw0KDQogICAgICBpZiAob2xkUG9zaXRpb24gIT0gbmV3UG9zaXRpb24pIHsNCg0KICAgICAgICBjb25zb2xlLmxvZyhuZXdQb3NpdGlvbiwgbmV3UG9zaXRpb24ubGVuZ3RoKTsNCiAgICAgICAgaWYgKG5ld1Bvc2l0aW9uLmxlbmd0aCA9PSAwKSB7DQogICAgICAgICAgbWFwcGluZ0Vycm9yID0gdHJ1ZQ0KICAgICAgICAgIG5ld1Bvc2l0aW9uID0gb2xkUG9zaXRpb247DQogICAgICAgICAgDQogICAgICAgIH0NCg0KICAgICAgICBpZiAobWFwcGluZ0Vycm9yID09IHRydWUpIHsNCiAgICAgICAgICBlbG0udmFsdWUgPSBvbGRQb3NpdGlvbjsNCiAgICAgICAgICByZXR1cm47DQogICAgICAgIH0NCg0KICAgICAgICBmb3IgKHZhciBqID0ga2V5cy5sZW5ndGggLSAxOyBqID49IDA7IGotLSkgew0KICAgICAgICAgIHZhciBjaGFubmVsID0geEVQR1siZXBnTWFwcGluZyJdW2tleXNbal1dOw0KICAgICAgICAgIGlmIChrZXlzW2pdICE9IHhfY2hhbm5lbElEKSB7DQogICAgICAgICAgICBpZiAobmV3UG9zaXRpb24gPT0gY2hhbm5lbFsieC1jaGFubmVsSUQiXSkgeyAvLyBJZiBwb3NpdGlvbiBleGlzdCwgc2V0IG5leHQgZnJlZSBwb3NpdGlvbi4NCiAgICAgICAgICAgICAgbmV3UG9zaXRpb24rKzsNCiAgICAgICAgICAgICAgZWxtLnZhbHVlID0gbmV3UG9zaXRpb247DQogICAgICAgICAgICAgIGFycmFuZ2VUYWJsZShlbG0pOw0KICAgICAgICAgICAgICByZXR1cm47DQogICAgICAgICAgICAgIC8qDQogICAgICAgICAgICAgIHZhciBuZXdFcnJvciA9IG5ldyBPYmplY3QoKTsNCiAgICAgICAgICAgICAgbmV3RXJyb3JbImVyciJdID0gIkR1cGxpY2F0ZSBJRCI7DQogICAgICAgICAgICAgIGNoZWNrRXJyKG5ld0Vycm9yKTsNCiAgICAgICAgICAgICAgc29ydFRhYmxlKCk7DQogICAgICAgICAgICAgIG1hcHBpbmdFcnJvciA9IHRydWU7DQogICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHhfY2hhbm5lbElEKS5nZXRFbGVtZW50c0J5VGFnTmFtZSgiSU5QVVQiKVswXS5mb2N1cygpOw0KICAgICAgICAgICAgICByZXR1cm47DQogICAgICAgICAgICAgICovDQogICAgICAgICAgICB9DQogICAgICAgICAgfQ0KICAgICAgICB9DQoNCiAgICAgIH0NCg0KICAgICAgLy9jb25zb2xlLmxvZyhvbGRQb3NpdGlvbiwgbmV3UG9zaXRpb24pOw0KICAgICAgaWYgKGtleXNbaV0gPT0geF9jaGFubmVsSUQgJiYgb2xkUG9zaXRpb24gIT0gbmV3UG9zaXRpb24pIHsgIA0KICAgICAgICBpdGVtWyJ4LWNoYW5uZWxJRCJdID0gbmV3UG9zaXRpb247DQogICAgICB9IA0KDQogICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibG9nSW5mbyIpLmNsYXNzTmFtZSA9ICJub3RWaXNpYmxlIjsNCiAgICAgIGlmIChjb2x1bW5Ub1NvcnQgPT0gMSkgew0KICAgICAgICBzb3J0VGFibGUoY29sdW1uVG9Tb3J0KTsNCiAgICAgIH0NCiAgICAgIG1hcHBpbmdFcnJvciA9IGZhbHNlOw0KDQogICAgfQ0KICB9DQp9DQoNCmZ1bmN0aW9uIGNoYW5nZVhtbHR2RmlsZSh4ZXBnLCBlbG0pIHsNCg0KICB2YXIgdGhpc0NoYW5uZWwgPSB4RVBHWyJlcGdNYXBwaW5nIl1beGVwZ107DQogIA0KICB2YXIgeFhtbHR2RmlsZSAgICA9IGVsbS52YWx1ZTsNCiAgdmFyIGNoYW5uZWxJRCAgICAgPSB0aGlzQ2hhbm5lbFsidHZnLWlkIl07DQogIHRoaXNDaGFubmVsWyJ4LXhtbHR2LWZpbGUiXSA9IHhYbWx0dkZpbGU7DQoNCiAgaWYgKGJ1bGsgPT0gZmFsc2UpIHsNCg0KICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKXsgDQoNCiAgICAgIHZhciB4TWFwcGluZyA9ICItIg0KDQogICAgICAvLyBBdXRvbWFwDQogICAgICBpZiAoeFhtbHR2RmlsZSAhPSAiLSIpIHsNCiAgICAgICAgaWYgKHhFUEdbInhtbHR2TWFwIl1beFhtbHR2RmlsZV0uaGFzT3duUHJvcGVydHkoY2hhbm5lbElEKSA9PSB0cnVlKSB7DQogICAgICAgICAgdGhpc0NoYW5uZWxbIngtbWFwcGluZyJdID0gY2hhbm5lbElEOw0KICAgICAgICAgIHhNYXBwaW5nID0gY2hhbm5lbElEDQogICAgICAgIH0gZWxzZSB7DQogICAgICAgICAgdGhpc0NoYW5uZWxbIngtbWFwcGluZyJdID0geE1hcHBpbmcNCiAgICAgICAgfQ0KICAgICAgfSBlbHNlIHsNCiAgICAgICAgdGhpc0NoYW5uZWxbIngtbWFwcGluZyJdID0geE1hcHBpbmcNCg0KICAgICAgfQ0KICAgICAgDQogICAgICB2YXIgdHIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCh4ZXBnKTsNCg0KICAgICAgaWYgKHhNYXBwaW5nID09ICItIikgew0KICAgICAgICB0aGlzQ2hhbm5lbFsieC1hY3RpdmUiXSA9IGZhbHNlOw0KICAgICAgICB0ci5jbGFzc05hbWUgPSAibm90QWN0aXZlRVBHIg0KICAgICAgfSBlbHNlIHsNCiAgICAgICAgdGhpc0NoYW5uZWxbIngtYWN0aXZlIl0gID0gdHJ1ZTsNCiAgICAgICAgdHIuY2xhc3NOYW1lID0gImFjdGl2ZUVQRyINCiAgICAgIH0NCg0KICAgICAgLy8gU2hvdyBkYXRhIGluIHRhYmxlDQogICAgICB2YXIgdGQgPSB0ci5nZXRFbGVtZW50c0J5VGFnTmFtZSgiVEQiKTsNCiAgICAgIHZhciBkYXRhRmlsZSA9IHRkW3RkLmxlbmd0aCAtIDJdLmxhc3RDaGlsZDsNCiAgICAgIHN3aXRjaCh4WG1sdHZGaWxlKSB7DQogICAgICAgIGNhc2UgIi0iOiAgICAgICAgICAgZGF0YUZpbGUuaW5uZXJIVE1MID0geFhtbHR2RmlsZTsgYnJlYWs7DQogICAgICAgIGNhc2UgInhUZVZlIER1bW15IjogZGF0YUZpbGUuaW5uZXJIVE1MID0geFhtbHR2RmlsZTsgYnJlYWs7DQogICAgICAgIGRlZmF1bHQ6ICAgICAgICAgICAgZGF0YUZpbGUuaW5uZXJIVE1MID0gZ2V0VmFsdWVGcm9tUHJvdmlkZXJGaWxlKHhYbWx0dkZpbGUsICJ4bWx0diIsICJuYW1lIik7IGJyZWFrOw0KICAgICAgfQ0KDQogICAgICAvL3hYbWx0dkZpbGUucmVwbGFjZSgvXi4qW1xcXC9dLywgJycpOw0KDQogICAgICB2YXIgZGF0YVhtbHR2SUQgPSB0ZFt0ZC5sZW5ndGggLSAxXS5sYXN0Q2hpbGQ7DQogICAgICBkYXRhWG1sdHZJRC5pbm5lckhUTUwgPSB4TWFwcGluZzsNCiAgICAgIA0KICAgICAgbWFwcGluZ0RldGFpbCh4ZXBnKTsNCg0KICAgIH0sIDEwKTsNCiAgfQ0KDQogIGlmIChidWxrID09IHRydWUpIHsNCiAgICB2YXIga2V5ID0gIngteG1sdHYtZmlsZSINCiAgICB2YXIgdmFsdWUgPSB4WG1sdHZGaWxlDQogICAgc2F2ZUJ1bGsoa2V5LCB2YWx1ZSk7DQoNCiAgICB2YXIga2V5ID0gIngtbWFwcGluZyINCiAgICB2YXIgdmFsdWUgPSAiLSINCiAgICBzYXZlQnVsayhrZXksIHZhbHVlKTsNCiAgICBtYXBwaW5nRGV0YWlsKHhlcGcpOw0KICAgIHJldHVybg0KICB9DQoNCiAgcmV0dXJuDQp9DQoNCmZ1bmN0aW9uIG1hcHBpbmdDaGFubmVsKHhlcGcsIGVsbSkgew0KICB2YXIgdGhpc0NoYW5uZWwgPSB4RVBHWyJlcGdNYXBwaW5nIl1beGVwZ107DQogIC8vdmFyIHhNYXBwaW5nICAgICAgPSBlbG0udmFsdWU7DQogIHZhciB4TWFwcGluZyAgICAgID0gZWxtLm9wdGlvbnNbZWxtLnNlbGVjdGVkSW5kZXhdLnZhbHVlDQogIA0KICBpZiAoYnVsayA9PSBmYWxzZSkgew0KICAgIA0KICAgIHRoaXNDaGFubmVsWyJ4LW1hcHBpbmciXSA9IHhNYXBwaW5nOw0KDQogICAgdmFyIHRyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoeGVwZyk7DQoNCiAgICBpZiAoeE1hcHBpbmcgPT0gIi0iKSB7DQogICAgICB0aGlzQ2hhbm5lbFsieC1hY3RpdmUiXSA9IGZhbHNlOw0KICAgICAgdHIuY2xhc3NOYW1lID0gIm5vdEFjdGl2ZUVQRyINCiAgICB9IGVsc2Ugew0KICAgICAgdGhpc0NoYW5uZWxbIngtYWN0aXZlIl0gID0gdHJ1ZTsNCiAgICAgIHRyLmNsYXNzTmFtZSA9ICJhY3RpdmVFUEciDQogICAgfQ0KDQogICAgLy8gU2hvdyBkYXRhIGluIHRhYmxlDQogICAgdmFyIHRkID0gdHIuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlREIik7DQogICAgdmFyIGRhdGFYbWx0dklEID0gdGRbdGQubGVuZ3RoIC0gMV0ubGFzdENoaWxkOw0KICAgIGRhdGFYbWx0dklELmlubmVySFRNTCA9IHhNYXBwaW5nOw0KICAgIC8vY29uc29sZS5sb2codGRbdGQubGVuZ3RoIC0gMV0pOw0KICAgIC8vY29uc29sZS5sb2coeE1hcHBpbmcsIGVsbSk7DQoNCiAgICBjcmVhdGVTZWFyY2hPYmooKTsNCiAgICBzZWFyY2hJbk1hcHBpbmcoKTsNCiAgICB1cGRhdGVDaGFubmVsTG9nbyh4ZXBnKQ0KICAgIG1hcHBpbmdEZXRhaWwoeGVwZyk7DQogICAgcmV0dXJuDQogIH0NCg0KICBpZiAoYnVsayA9PSB0cnVlKSB7DQoNCiAgICB2YXIga2V5ID0gIngtbWFwcGluZyINCiAgICB2YXIgdmFsdWUgPSB4TWFwcGluZw0KICAgIHNhdmVCdWxrKGtleSwgdmFsdWUpOw0KDQogICAgbWFwcGluZ0RldGFpbCh4ZXBnKTsNCiAgICByZXR1cm4NCiAgfQ0KDQogIHJldHVybg0KfQ0KDQoNCmZ1bmN0aW9uIGNyZWF0ZU5ld1REKG5ld0l0ZW0sIGVsbSkgew0KICB2YXIgbmV3VEQgPSBuZXcgT2JqZWN0KCk7DQogIG5ld1REWyJfZWxlbWVudCJdID0gIlREIjsNCiAgDQogIGVsbS5hcHBlbmRDaGlsZChjcmVhdGVFbGVtZW50KG5ld1REKSk7DQogIHZhciB0ZCA9IGVsbS5sYXN0Q2hpbGQ7IA0KICANCiAgc3dpdGNoKG5ld0l0ZW1bIl9lbGVtZW50Il0pIHsNCiAgICBjYXNlICJTRUxFQ1QiOg0KICAgICAgdGQuYXBwZW5kQ2hpbGQoY3JlYXRlRWxlbWVudChuZXdJdGVtKSk7DQogICAgICB2YXIgdGQgPSBlbG0ubGFzdENoaWxkLmxhc3RDaGlsZDsgDQogICAgICB2YXIgdmFsdWVzID0gbmV3SXRlbVsiX29wdGlvblZhbHVlcyJdOw0KICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB2YWx1ZXMubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgLy9jb25zb2xlLmxvZyhpdGVtKTsNCiAgICAgICAgdmFyIG5ld0VudHJ5ID0gbmV3IE9iamVjdDsNCiAgICAgICAgbmV3RW50cnlbIl9lbGVtZW50Il0gID0gIk9QVElPTiI7DQogICAgICAgIG5ld0VudHJ5WyJfdGV4dCJdICAgICA9IHZhbHVlc1tpXTsNCiAgICAgICAgbmV3RW50cnlbInZhbHVlIl0gICAgID0gdmFsdWVzW2ldOw0KICAgICAgICB0ZC5hcHBlbmRDaGlsZChjcmVhdGVFbGVtZW50KG5ld0VudHJ5KSk7DQogICAgICB9DQogICAgICB0ZC52YWx1ZSA9IG5ld0l0ZW1bInZhbHVlIl07DQoNCiAgICAgIGJyZWFrOw0KICAgIA0KICAgIGRlZmF1bHQ6IA0KICAgICAgDQogICAgICB0ZC5hcHBlbmRDaGlsZChjcmVhdGVFbGVtZW50KG5ld0l0ZW0pKTsNCiAgICAgIGJyZWFrOw0KICB9DQogIA0KfQ0KDQpmdW5jdGlvbiBzYXZlWEVQRygpIHsNCiAgaWYgKG1hcHBpbmdFcnJvciA9PSB0cnVlKSB7DQogICAgYWxlcnQoIkRhdGEgY291bGQgbm90IGJlIHNhdmVkLCBlcnJvcnMgaW4gdGhlIFhFUEcgZGF0YS4iKTsNCiAgICByZXR1cm47DQogIH0NCiAgc2hvd0xvYWRpbmdTY3JlZW4odHJ1ZSk7DQoNCiAgdmFyIGRhdGEgPSBuZXcgT2JqZWN0KCk7DQogIGRhdGFbImVwZ01hcHBpbmciXSA9IHhFUEdbImVwZ01hcHBpbmciXTsNCiAgZGF0YVsiY21kIl0gPSAic2F2ZUVwZ01hcHBpbmciOw0KICAvL2NvbnNvbGUubG9nKGRhdGEpOw0KICB4VGVWZShkYXRhKTsNCn0NCg0KZnVuY3Rpb24gYnVsa0VkaXQoKSB7DQogIGJ1bGsgPSAhYnVsazsNCiAgdmFyIGNsYXNzTmFtZTsNCg0KICB2YXIgZWxtID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSgiYnVsayIpOw0KDQogIHN3aXRjaChidWxrKSB7DQogICAgY2FzZSB0cnVlOiANCiAgICAgIGNsYXNzTmFtZSA9ICJidWxrIHNob3dCdWxrIjsNCiAgICAgIGJyZWFrOw0KDQogICAgY2FzZSBmYWxzZTogDQogICAgICBjbGFzc05hbWUgPSAiYnVsayBoaWRlQnVsayI7DQogICAgICBidWxrRWRpdEFsbCA9IGZhbHNlOw0KICAgICAgYnJlYWs7DQogIH0NCg0KICBmb3IgKHZhciBpID0gMDsgaSA8IGVsbS5sZW5ndGg7IGkrKykgew0KICAgIGVsbVtpXS5jbGFzc05hbWUgPSBjbGFzc05hbWU7DQogICAgZWxtW2ldLmNoZWNrZWQgPSBmYWxzZTsNCiAgfQ0KDQp9DQoNCmZ1bmN0aW9uIGJ1bGtFZGl0QWxsQ2hhbm5lbHMoKSB7DQoNCiAgdmFyIGFsbFRSID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImlkX21hcHBpbmciKS5nZXRFbGVtZW50c0J5VGFnTmFtZSgiVFIiKTsNCg0KICBmb3IgKHZhciBpID0gMTsgaSA8IGFsbFRSLmxlbmd0aDsgaSsrKSB7DQogICAgaWYgKGFsbFRSW2ldLnN0eWxlLmRpc3BsYXkgIT0gIm5vbmUiKSB7DQogICAgICBzd2l0Y2goYnVsa0VkaXRBbGwpIHsNCiAgICAgICAgY2FzZSBmYWxzZTogYWxsVFJbaV0uZmlyc3RDaGlsZC5maXJzdENoaWxkLmNoZWNrZWQgPSB0cnVlOyBicmVhazsNCiAgICAgICAgY2FzZSB0cnVlOiBhbGxUUltpXS5maXJzdENoaWxkLmZpcnN0Q2hpbGQuY2hlY2tlZCA9IGZhbHNlOyBicmVhazsgDQogICAgICB9DQoNCiAgICB9DQogICAgDQogIH0NCg0KICBidWxrRWRpdEFsbCA9ICFidWxrRWRpdEFsbDsNCn0NCg0KZnVuY3Rpb24gc29ydFRhYmxlKGNvbHVtbSkgew0KICAvL2NvbnNvbGUubG9nKGNvbHVtbSk7DQogIGlmIChjb2x1bW0gPT0gY29sdW1uVG9Tb3J0KSB7DQogICAgLy9yZXR1cm47DQogIH0NCg0KICB2YXIgdGFibGUgICAgICAgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiaWRfbWFwcGluZyIpOw0KICB2YXIgdGFibGVIZWFkICAgPSB0YWJsZS5nZXRFbGVtZW50c0J5VGFnTmFtZSgiVFIiKVswXTsNCiAgdmFyIHRhYmxlSXRlbXMgID0gdGFibGVIZWFkLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJURCIpOw0KICANCiAgdmFyIHNvcnRPYmogPSBuZXcgT2JqZWN0KCk7DQogIHZhciB4LCB4VmFsdWU7DQogIHZhciB0YWJsZUhlYWRlcg0KICB2YXIgc29ydEJ5U3RyaW5nID0gZmFsc2UNCg0KICBpZiAoY29sdW1tID4gMCAmJiBjb2x1bW5Ub1NvcnQgPiAwKSAgew0KICAgIHRhYmxlSXRlbXNbY29sdW1uVG9Tb3J0XS5jbGFzc05hbWUgPSAicG9pbnRlciI7DQogICAgdGFibGVJdGVtc1tjb2x1bW1dLmNsYXNzTmFtZSA9ICJzb3J0VGhpcyI7DQogIH0NCg0KICBjb2x1bW5Ub1NvcnQgPSBjb2x1bW07DQoNCiAgdmFyIHJvd3MgPSB0YWJsZS5yb3dzOw0KDQogIGlmIChyb3dzWzFdICE9IHVuZGVmaW5lZCkgew0KICAgIHRhYmxlSGVhZGVyID0gcm93c1swXQ0KDQogICAgeCA9IHJvd3NbMV0uZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlREIilbY29sdW1tXTsNCiAgICANCiAgICBmb3IgKGkgPSAxOyBpIDwgcm93cy5sZW5ndGg7IGkrKykgew0KDQogICAgICB4ID0gcm93c1tpXS5nZXRFbGVtZW50c0J5VGFnTmFtZSgiVEQiKVtjb2x1bW1dOw0KDQogICAgICBzd2l0Y2goeC5jaGlsZE5vZGVzWzBdLnRhZ05hbWUudG9Mb3dlckNhc2UoKSkgew0KICAgICAgICBjYXNlICJpbnB1dCI6DQogICAgICAgICAgeFZhbHVlID0geC5nZXRFbGVtZW50c0J5VGFnTmFtZSgiSU5QVVQiKVswXS52YWx1ZS50b0xvd2VyQ2FzZSgpOw0KICAgICAgICAgIGJyZWFrOw0KDQogICAgICAgIGNhc2UgInAiOg0KICAgICAgICAgIHhWYWx1ZSA9IHguZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlAiKVswXS5pbm5lclRleHQudG9Mb3dlckNhc2UoKTsNCiAgICAgICAgICBicmVhazsNCiAgICAgICAgDQogICAgICAgIGRlZmF1bHQ6IGNvbnNvbGUubG9nKHguY2hpbGROb2Rlc1swXS50YWdOYW1lKTsNCiAgICAgIH0NCg0KICAgICAgaWYgKHhWYWx1ZSA9PSAiIiB8fCB4VmFsdWUgPT0gTmFOKSB7DQogICAgICAgIHhWYWx1ZSA9IGkNCiAgICAgICAgc29ydE9ialtpXSA9IHJvd3NbaV07DQogICAgICANCiAgICAgIH0gZWxzZSB7DQoNCiAgICAgICAgc3dpdGNoKGlzTmFOKHhWYWx1ZSkpIHsNCiAgICAgICAgICBjYXNlIGZhbHNlOiANCg0KICAgICAgICAgICAgeFZhbHVlID0gcGFyc2VGbG9hdCh4VmFsdWUpOw0KICAgICAgICAgICAgc29ydE9ialt4VmFsdWVdID0gcm93c1tpXQ0KICAgICAgICAgICAgYnJlYWs7DQoNCiAgICAgICAgICBjYXNlIHRydWU6DQoNCiAgICAgICAgICAgIHNvcnRCeVN0cmluZyA9IHRydWUNCiAgICAgICAgICAgIHNvcnRPYmpbeFZhbHVlLnRvTG93ZXJDYXNlKCkgKyBpXSA9IHJvd3NbaV0NCiAgICAgICAgICAgIGJyZWFrOw0KDQogICAgICAgIH0NCg0KICAgICAgfQ0KICAgIA0KICAgIH0NCg0KICAgIHdoaWxlICh0YWJsZS5maXJzdENoaWxkKSB7DQogICAgICB0YWJsZS5yZW1vdmVDaGlsZCh0YWJsZS5maXJzdENoaWxkKTsNCiAgICB9DQogICAgDQogICAgdmFyIHNvcnRWYWx1ZXMgPSBnZXRPYmpLZXlzKHNvcnRPYmopDQogICAgaWYgKHNvcnRCeVN0cmluZyA9PSB0cnVlKSB7DQogICAgICBzb3J0VmFsdWVzLnNvcnQoKQ0KICAgIH0gZWxzZSB7DQogICAgICBmdW5jdGlvbiBzb3J0RmxvYXQoYSwgYikgeyANCiAgICAgICAgcmV0dXJuIGEgLSBiOyANCiAgICAgIH0NCiAgICAgIHNvcnRWYWx1ZXMuc29ydChzb3J0RmxvYXQpOw0KICAgIH0NCg0KICAgIHRhYmxlLmFwcGVuZENoaWxkKHRhYmxlSGVhZGVyKQ0KICAgIA0KICAgIGZvciAodmFyIGkgPSAwOyBpIDwgc29ydFZhbHVlcy5sZW5ndGg7IGkrKykgew0KICAgICANCiAgICAgIHRhYmxlLmFwcGVuZENoaWxkKHNvcnRPYmpbc29ydFZhbHVlc1tpXV0pDQoNCiAgICB9DQogICAgDQogIH0NCg0KfQ0KDQoNCmZ1bmN0aW9uIHNvcnRUYWJsZV9vbGQoY29sdW1tKSB7DQogIHNob3dMb2FkaW5nU2NyZWVuKHRydWUpOw0KICANCiAgc2V0VGltZW91dChmdW5jdGlvbigpeyANCg0KICAgIHZhciB0YWJsZSwgcm93cywgc3dpdGNoaW5nLCBpLCB4LCB5LCBzaG91bGRTd2l0Y2g7DQogICAgdGFibGUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiaWRfbWFwcGluZyIpOw0KDQogICAgdmFyIHRhYmxlSGVhZCA9IHRhYmxlLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJUUiIpWzBdOw0KICAgIHZhciB0YWJsZUl0ZW1zID0gdGFibGVIZWFkLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJURCIpOw0KDQogICAgaWYgKGNvbHVtbSA+IDApICB7DQogICAgICB0YWJsZUl0ZW1zW2NvbHVtblRvU29ydF0uY2xhc3NOYW1lID0gInBvaW50ZXIiOw0KICAgICAgdGFibGVJdGVtc1tjb2x1bW1dLmNsYXNzTmFtZSA9ICJzb3J0VGhpcyI7DQogICAgfQ0KICAgIA0KICAgIGNvbHVtblRvU29ydCA9IGNvbHVtbTsNCg0KICAgIC8qDQogICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0YWJsZUl0ZW1zLmxlbmd0aDsgaSsrKSB7DQogICAgICBpZiAodGFibGVJdGVtc1tpXS5jbGFzc05hbWUgIT0gdW5kZWZpbmVkKSB7DQogICAgICAgIHRhYmxlSXRlbXNbaV0uY2xhc3NOYW1lID0gInBvaW50ZXIiDQogICAgICB9DQoNCiAgICB9DQogICAgKi8NCg0KICAgIA0KDQogICAgY29uc29sZS5sb2codGFibGVJdGVtcyk7IA0KDQogICAgc3dpdGNoaW5nID0gdHJ1ZTsNCiAgICB3aGlsZSAoc3dpdGNoaW5nKSB7DQogICAgICBzd2l0Y2hpbmcgPSBmYWxzZTsNCiAgICAgIHJvd3MgPSB0YWJsZS5yb3dzOw0KICAgICAgZm9yIChpID0gMTsgaSA8IChyb3dzLmxlbmd0aCAtIDEpOyBpKyspIHsNCiAgICAgICAgc2hvdWxkU3dpdGNoID0gZmFsc2U7DQoNCiAgICAgICAgeCA9IHJvd3NbaV0uZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlREIilbY29sdW1tXTsNCiAgICAgICAgeSA9IHJvd3NbaSArIDFdLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJURCIpW2NvbHVtbV07DQoNCiAgICAgICAgc3dpdGNoKHguY2hpbGROb2Rlc1swXS50YWdOYW1lLnRvTG93ZXJDYXNlKCkpIHsNCiAgICAgICAgICBjYXNlICJpbnB1dCI6DQogICAgICAgICAgICB4VmFsdWUgPSB4LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJJTlBVVCIpWzBdLnZhbHVlLnRvTG93ZXJDYXNlKCk7DQogICAgICAgICAgICB5VmFsdWUgPSB5LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJJTlBVVCIpWzBdLnZhbHVlLnRvTG93ZXJDYXNlKCk7DQogICAgICAgICAgICBicmVhazsNCg0KICAgICAgICAgIGNhc2UgInAiOg0KICAgICAgICAgICAgeFZhbHVlID0geC5nZXRFbGVtZW50c0J5VGFnTmFtZSgiUCIpWzBdLmlubmVyVGV4dC50b0xvd2VyQ2FzZSgpOw0KICAgICAgICAgICAgeVZhbHVlID0geS5nZXRFbGVtZW50c0J5VGFnTmFtZSgiUCIpWzBdLmlubmVyVGV4dC50b0xvd2VyQ2FzZSgpOw0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgDQogICAgICAgICAgZGVmYXVsdDogY29uc29sZS5sb2coeC5jaGlsZE5vZGVzWzBdLnRhZ05hbWUpOw0KICAgICAgICB9DQoNCiAgICAgICAgDQogICAgICAgIHN3aXRjaChpc05hTih4VmFsdWUpKSB7DQogICAgICAgICAgY2FzZSBmYWxzZTogeFZhbHVlID0gcGFyc2VGbG9hdCh4VmFsdWUpIDsgYnJlYWs7DQogICAgICAgIH0NCg0KICAgICAgICBzd2l0Y2goaXNOYU4oeVZhbHVlKSkgew0KICAgICAgICAgIGNhc2UgZmFsc2U6IHlWYWx1ZSA9IHBhcnNlRmxvYXQoeVZhbHVlKSA7IGJyZWFrOw0KICAgICAgICB9DQogICAgICAgIA0KDQogICAgICAgIGlmICh4VmFsdWUgPiB5VmFsdWUpIHsNCiAgICAgICAgICBzaG91bGRTd2l0Y2ggPSB0cnVlOw0KICAgICAgICAgIGJyZWFrOw0KICAgICAgICB9DQoNCiAgICAgIH0NCiAgICAgIGlmIChzaG91bGRTd2l0Y2gpIHsNCiAgICAgICAgcm93c1tpXS5wYXJlbnROb2RlLmluc2VydEJlZm9yZShyb3dzW2kgKyAxXSwgcm93c1tpXSk7DQogICAgICAgIHN3aXRjaGluZyA9IHRydWU7DQogICAgICB9DQogICAgfQ0KICAgIGNyZWF0ZVNlYXJjaE9iaigpDQogICAgDQogICAgc2hvd0xvYWRpbmdTY3JlZW4oZmFsc2UpOw0KICB9LCAyMCk7DQoNCn0NCg0KZnVuY3Rpb24gc2hvd1hFUEcoKSB7DQogIHZhciB1cmwgPSBsb2NhdGlvbi5wcm90b2NvbCArICIvLyIgKyBsb2NhdGlvbi5ob3N0bmFtZSArICI6IiArIGxvY2F0aW9uLnBvcnQgKyAiL3htbHR2L3h0ZXZlLnhtbCINCiAgdmFyIHdpbiA9IHdpbmRvdy5vcGVuKHVybCwgJ19ibGFuaycpOw0KICB3aW4uZm9jdXMoKTsNCn0=" - webUI["html/img/filter.png"] = "iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAAAXNSR0IArs4c6QAAAAlwSFlzAAAsSwAALEsBpT2WqQAABCRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IlhNUCBDb3JlIDUuNC4wIj4KICAgPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIgogICAgICAgICAgICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgICAgICAgICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyI+CiAgICAgICAgIDx0aWZmOlJlc29sdXRpb25Vbml0PjI8L3RpZmY6UmVzb2x1dGlvblVuaXQ+CiAgICAgICAgIDx0aWZmOkNvbXByZXNzaW9uPjU8L3RpZmY6Q29tcHJlc3Npb24+CiAgICAgICAgIDx0aWZmOlhSZXNvbHV0aW9uPjI4ODwvdGlmZjpYUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6T3JpZW50YXRpb24+MTwvdGlmZjpPcmllbnRhdGlvbj4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+Mjg4PC90aWZmOllSZXNvbHV0aW9uPgogICAgICAgICA8ZXhpZjpQaXhlbFhEaW1lbnNpb24+NTA8L2V4aWY6UGl4ZWxYRGltZW5zaW9uPgogICAgICAgICA8ZXhpZjpDb2xvclNwYWNlPjE8L2V4aWY6Q29sb3JTcGFjZT4KICAgICAgICAgPGV4aWY6UGl4ZWxZRGltZW5zaW9uPjUwPC9leGlmOlBpeGVsWURpbWVuc2lvbj4KICAgICAgICAgPGRjOnN1YmplY3Q+CiAgICAgICAgICAgIDxyZGY6QmFnLz4KICAgICAgICAgPC9kYzpzdWJqZWN0PgogICAgICAgICA8eG1wOk1vZGlmeURhdGU+MjAxOC0wNy0yOFQxOTowNzo2OTwveG1wOk1vZGlmeURhdGU+CiAgICAgICAgIDx4bXA6Q3JlYXRvclRvb2w+UGl4ZWxtYXRvciAzLjM8L3htcDpDcmVhdG9yVG9vbD4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgIDwvcmRmOlJERj4KPC94OnhtcG1ldGE+Cs038OQAAAOISURBVGgF5ZpLSBVRGMfvvfmqCKKiKCqKtE3SQ8haJJm1ctPCZYHrFhXtohcUBLVsU1BRBJKLXpsSKs1aCL1oUUhvMgIloodZKmLZ72+OzNVx7jzOXGfqg/89Z875zv/7f35n7px7vanUP2JptzyGhoYKmK8GW0EZmA/mgW7wHrwDN0BTOp0epPVtxBBnLdgIVoE5YBboBR2gDTTA/5DWn0FeDPaBz8CLdeF0EBR5jYRvKbgABoAXa8Opwit/CudK8NoLs4PPM8ZyBsNnB/jpsD7X0C8cjgDXnaQkqkEPCGMSuGWivxxzx8OQj6xtpHWuPhPloHfEMWzTD0HN2GQY2xuW2Lb+/Fh+VaIQPLE5meh+gmSxFYz+BjBogtjGscfiH26Z2GmbNNltVQAIpwDdP6ZNO2iRYqTpZGhfgWUaiMC2w1kCzkbALcqLvDVvUyK6MW9HFES0b8BvsFwXEZi4F+iBtykCcjtlqf0igr52VJ1eqiIgzzdlrRIZfWfJd3SD8ZbqHvkB4XSDpJNB9V0VcX/cT4Ys/zEzSuSj/3WxW9GpRD7ETpZ/QcOJ6LyfdHugitxNehbob9G7lo4PXWBmQhPqQ/fsDOeUfjqNCU1Csi+TQ5+2luzc3yaRr6elevQZwhZr4bomYam0U41yabYqov5hvSTMjlp6RyuiAarSTLPZmox5246+lVREx/isiuh6NxhUJwF2yEpCWu1bK8WEsjyRgCSa0XrVrjNra2mC7TWD5ilYAuJoA4jSlnppF5dVEU3g0ENTD4b3nsZiZsfGJuGqj8qY+CINGqP2GLZCJ+HjtpblxAJ9k3cPrLfGJrnVUaSCarxw0jFua1lOLNBerANx+byya6IkLM2uLZWpAl6/Mcc1EjvjKtLrJNLqI5HnjfQ+bsVeteb0g2y/t7hGvd7CNjenOL8OkJ40KtOdTF+Cl/nV6Mkf4gxocI9vZPYLLKs9iQrqRIACcM2IXGeSboYrg+rztY5ARaDJWUeo0W+sXudLTFhnApaAW6FkZy/+yuXasLoCrSfwVHAnW0+gK93YawKJMLUIAdNAKwhqnSxcYUpPKB6EBE2mg7VR///EX24jybTQerXnOC70FyVP3gjTPXPTQyaP8NFPNeJrCNTPP667JKOq6VNo/A2hes5ccUjmEmPmDoD5+FMgWCcA+3FG57QJP//kQ1PgGBIOToEDgUn+t4V/AJeGknwARIKLAAAAAElFTkSuQmCC" - webUI["html/img/logo_w_600x200.png"] = "iVBORw0KGgoAAAANSUhEUgAAAlgAAADICAYAAAA0n5+2AAAAAXNSR0IArs4c6QAAAAlwSFlzAAAuIwAALiMBeKU/dgAABCZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IlhNUCBDb3JlIDUuNC4wIj4KICAgPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIgogICAgICAgICAgICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgICAgICAgICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyI+CiAgICAgICAgIDx0aWZmOlJlc29sdXRpb25Vbml0PjI8L3RpZmY6UmVzb2x1dGlvblVuaXQ+CiAgICAgICAgIDx0aWZmOkNvbXByZXNzaW9uPjU8L3RpZmY6Q29tcHJlc3Npb24+CiAgICAgICAgIDx0aWZmOlhSZXNvbHV0aW9uPjMwMDwvdGlmZjpYUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6T3JpZW50YXRpb24+MTwvdGlmZjpPcmllbnRhdGlvbj4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+MzAwPC90aWZmOllSZXNvbHV0aW9uPgogICAgICAgICA8ZXhpZjpQaXhlbFhEaW1lbnNpb24+NjAwPC9leGlmOlBpeGVsWERpbWVuc2lvbj4KICAgICAgICAgPGV4aWY6Q29sb3JTcGFjZT4xPC9leGlmOkNvbG9yU3BhY2U+CiAgICAgICAgIDxleGlmOlBpeGVsWURpbWVuc2lvbj4yMDA8L2V4aWY6UGl4ZWxZRGltZW5zaW9uPgogICAg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" + webUI["html/maintenance.html"] = "PCFkb2N0eXBlIGh0bWw+DQo8aHRtbD4NCiAgPGhlYWQ+DQogICAgPG1ldGEgY2hhcnNldD0idXRmLTgiPg0KICAgIDxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgsIGluaXRpYWwtc2NhbGU9MS4wIiAvPiANCiAgICA8dGl0bGU+eFRlVmU8L3RpdGxlPg0KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iY3NzL3NjcmVlbi5jc3MiIHR5cGU9InRleHQvY3NzIj4NCiAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9ImNzcy9iYXNlLmNzcyIgdHlwZT0idGV4dC9jc3MiPg0KICA8L2hlYWQ+DQoNCiAgICA8Ym9keT4NCiAgICAgICAgICANCiAgICAgIDxkaXYgaWQ9ImhlYWRlciIgY2xhc3M9ImltZ0NlbnRlciI+PC9kaXY+DQoNCiAgICAgIDxkaXYgaWQ9ImJveCI+DQoNCiAgICAgICAgPGRpdiBpZD0iaGVhZGxpbmUiPg0KICAgICAgICAgIDxoMSBpZD0iaGVhZC10ZXh0IiBjbGFzcz0iY2VudGVyIj5NYWludGVuYW5jZTwvaDE+ICAgICAgDQogICAgICAgIDwvZGl2PiAgDQoNCiAgICAgICAgPGRpdiBpZD0iY29udGVudCI+DQogICAgICAgICAgeFRlVmUgaXMgdXBkYXRpbmcgdGhlIGRhdGFiYXNlLCBwbGVhc2UgdHJ5IGFnYWluIGxhdGVyLg0KICAgICAgICA8L2Rpdj4NCg0KICAgICAgICA8ZGl2IGlkPSJib3gtZm9vdGVyIj48L2Rpdj4NCiAgICAgICAgDQogICAgICA8L2Rpdj4NCg0KICAgIDwvYm9keT4NCjwvaHRtbD4=" webUI["html/img/logout.png"] = "iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAAAXNSR0IArs4c6QAAAAlwSFlzAAAsSwAALEsBpT2WqQAABCRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IlhNUCBDb3JlIDUuNC4wIj4KICAgPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIgogICAgICAgICAgICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgICAgICAgICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyI+CiAgICAgICAgIDx0aWZmOlJlc29sdXRpb25Vbml0PjI8L3RpZmY6UmVzb2x1dGlvblVuaXQ+CiAgICAgICAgIDx0aWZmOkNvbXByZXNzaW9uPjU8L3RpZmY6Q29tcHJlc3Npb24+CiAgICAgICAgIDx0aWZmOlhSZXNvbHV0aW9uPjI4ODwvdGlmZjpYUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6T3JpZW50YXRpb24+MTwvdGlmZjpPcmllbnRhdGlvbj4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+Mjg4PC90aWZmOllSZXNvbHV0aW9uPgogICAgICAgICA8ZXhpZjpQaXhlbFhEaW1lbnNpb24+NTA8L2V4aWY6UGl4ZWxYRGltZW5zaW9uPgogICAgICAgICA8ZXhpZjpDb2xvclNwYWNlPjE8L2V4aWY6Q29sb3JTcGFjZT4KICAgICAgICAgPGV4aWY6UGl4ZWxZRGltZW5zaW9uPjUwPC9leGlmOlBpeGVsWURpbWVuc2lvbj4KICAgICAgICAgPGRjOnN1YmplY3Q+CiAgICAgICAgICAgIDxyZGY6QmFnLz4KICAgICAgICAgPC9kYzpzdWJqZWN0PgogICAgICAgICA8eG1wOk1vZGlmeURhdGU+MjAxOC0xMC0xM1QxMToxMDoxODwveG1wOk1vZGlmeURhdGU+CiAgICAgICAgIDx4bXA6Q3JlYXRvclRvb2w+UGl4ZWxtYXRvciAzLjM8L3htcDpDcmVhdG9yVG9vbD4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgIDwvcmRmOlJERj4KPC94OnhtcG1ldGE+Cg27QeEAAANQSURBVGgF7Zk9aBRBGIZzSRSN8YdoCpEkghCCqK1o4g9IsBCCNmIniCAiWAhqI8G02qiIoqCCWggSEcFKEFPYpVAU8QdFUyiKRpRokBjP55OdZDLZvZnZ7N3Ngh887M7sN/O9797t7c5eTc3/8D8DxWKxGS5Ai//oAEYgvB4OwleQaAtAlp8ERG+Bp6Jei/wYQfRy6NfE67vhG0FtA/TBqK7c2A/bCGJ3wpAhOq4ZphGUroEHcYoT+sIygsgmOAu/EwQndYdhBHV1sB8+Jym19Lf6/faVIRuBG+GRRajtcPWMoKwFbtgUOh6vvBGEzYFj8MNRpEtaZY2gaAe8cVHmmXOc/K3QXIZv/+SUFFgJ96AS8ZwiZ6Ab6iZVzGCPiRbCKRiDasQHip6EdD/PDKyFvfAJQgg5kVfB/VoieT0MQojxE1G9UG/7otWS0A7pPkrb7DM/Ppcp+mAAM/bFGEmL4RL8gVDjI8JWOZ0bEjvhSahO0CXXsLMZWZYegREIMV4jaoHTJyNJJLfC7RCdoOm6sxGVyKAeeBegoU6l0XmLiXlwAqp1o4w7j3d1AwW9YdtnNrnQzkOXLddyfAPHv8Ey6ABpd8N88In2QqHwymfARC5mCrAH0i6qGDr9jk3fbNgFz8A1DkwIS7tDpSVwGdLcexIfPZhPHpf2wS+wRX9a/dPGUakLzBdwNgGJRlQBJtgMw5aJ3qr8TLYUmwVHwXXxZTUiwphvHYxDUnzPxIA5CdXa4E5SVa3fyUhkRtYqpSKbNYxpJiq+ncpDJar7GGlknvcl5mqM05BZH4Xl3iOLpLh7j7OR6MScSzAykplg20QIWA0PDSG+RuTdQVy8sNXP9DgK5N4jK9AvkRpfI4sYF/c2836mQl0nQ4zce66AfZFkTMqYl2DGaSMt/CYOHpsuaPco5bLUzUuMGkLHaQ+ovjwZUZrVdpAHRnnw/Bd5MrJCiY62t4x2+E2uBfkfRg95TdSkK8/LJ7JWF83+Nb5Ww0Zf+E3OviwXVMgT8dLwVRsKEd0A+uP8biMlH01MHAYVF/Oh2lCJenkDqpbUN9nPyzU91QnCRbyEPEXn1sQhxMv7tG1T7cW3rK/r44eVtxfxm6gwBh38zJqPJuUtXu3Z/wLwuBaBLgMkKwAAAABJRU5ErkJggg==" - webUI["html/img/users.png"] = "iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAAAXNSR0IArs4c6QAAAAlwSFlzAAAsSwAALEsBpT2WqQAABCRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IlhNUCBDb3JlIDUuNC4wIj4KICAgPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIgogICAgICAgICAgICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgICAgICAgICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyI+CiAgICAgICAgIDx0aWZmOlJlc29sdXRpb25Vbml0PjI8L3RpZmY6UmVzb2x1dGlvblVuaXQ+CiAgICAgICAgIDx0aWZmOkNvbXByZXNzaW9uPjU8L3RpZmY6Q29tcHJlc3Npb24+CiAgICAgICAgIDx0aWZmOlhSZXNvbHV0aW9uPjI4ODwvdGlmZjpYUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6T3JpZW50YXRpb24+MTwvdGlmZjpPcmllbnRhdGlvbj4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+Mjg4PC90aWZmOllSZXNvbHV0aW9uPgogICAgICAgICA8ZXhpZjpQaXhlbFhEaW1lbnNpb24+NTA8L2V4aWY6UGl4ZWxYRGltZW5zaW9uPgogICAgICAgICA8ZXhpZjpDb2xvclNwYWNlPjE8L2V4aWY6Q29sb3JTcGFjZT4KICAgICAgICAgPGV4aWY6UGl4ZWxZRGltZW5zaW9uPjUwPC9leGlmOlBpeGVsWURpbWVuc2lvbj4KICAgICAgICAgPGRjOnN1YmplY3Q+CiAgICAgICAgICAgIDxyZGY6QmFnLz4KICAgICAgICAgPC9kYzpzdWJqZWN0PgogICAgICAgICA8eG1wOk1vZGlmeURhdGU+MjAxOC0wOC0zMFQxNzowODozODwveG1wOk1vZGlmeURhdGU+CiAgICAgICAgIDx4bXA6Q3JlYXRvclRvb2w+UGl4ZWxtYXRvciAzLjM8L3htcDpDcmVhdG9yVG9vbD4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgIDwvcmRmOlJERj4KPC94OnhtcG1ldGE+CjU01MMAAANJSURBVGgF1ZnLaxNRFMYz2rpoFbW+SCsihaJQRMT6rPhAXAq6c+HChSguRFd1oRtd+A/oWhQ3oiiWFB91UbqRqlXXgoIIQhFbQTTQao2/GzLDZEjIPefO7SQHPjJz55zzfd/MZCa5N8h5ilKptJvWp8FekAed4Bv4Cj6Dh2A4CIJZPpszMHEV2MQ0SZdB0DROENMHjoEzQBoFCpZnbgYR58E/qfpE/kv2F2dmBvJ94G9ClHb3SiZGUBuASa3qGnVzjG3RmFmkKYrVHGB7e2zfdbOdBhc1TVyNnNSQNqg5wVURf/FdjRxpIEpzuIOio9JCtRHO2hrINkgJLfPFt6vaCII2WYrSpPVJi1RGuBrmTbxeSibIX5j3CUauAfOo9BXzNH4nMJ5TXREI1gHzqPQVRtc2zCyxJdAaGbclcMj7zi/jOdt6rZFhCH7akijznknqVEY4U78heSAhUuTekNSojFQIChIiYe57TtZrSY2LkecQzUjIBLljglz3VJ4qg+AXSDNGabbWXZ2wA6Qjabqg136hhHK6y60V8o2EGyl8/qHHpKZPGkYeQzyvIa9RM86XvFhjvOGQsxGIp2B50ZDJLuG2XZqnLO5rM3viGh9o0OZJon1bRLxxdHLcns1jJiYOAu2U0D2P0uStMXJdcVU+UdMlZ/NYgaA28ERg5ge5/R4l6VsjrANMWJiZJWeXnqm60vnxW90ul6u8ByaS4zX2i+S+qjGuGkrdSEWFzT1vlhlSC19Gui0UtnNriSfi6vX1ZWRjPcLEeGrzYqkb4SyvQGxvQnC93cF6BzIfx8gpYBsfSdycuei4AAR1ggugCCRh1lbugIF4vwXbhtisjfSDc+ARSOOf4lv6mNWv1VIj1ouQNF9K851gDzArtWbV1uYxS5o4zB+sp+AuKPC+cVv5RXwPuATMmUpreY1Wopgh+ybYKj4dFHWB+8DMwTZTjCHmsJUhEgfAF9DMcQtx9V8dHMyDqWZ2ENM2FL8yVV92kkY56GM5Lc6Z1vY0jbp5EJQnuqPLg4kdLWTCnIxVIJoDi4wweNYcbbGIfuLEjRxqMRNGbvTvsmyE22oZg70taKQn1BxekXw40GKfK0O9oZHsJ8ZCRbLPaI3xP7YzeQoHxWckAAAAAElFTkSuQmCC" - webUI["html/js/network_ts.js"] = "Y2xhc3MgU2VydmVyIHsNCiAgICBjb25zdHJ1Y3RvcihjbWQpIHsNCiAgICAgICAgdGhpcy5jbWQgPSBjbWQ7DQogICAgfQ0KICAgIHJlcXVlc3QoZGF0YSkgew0KICAgICAgICBpZiAoU0VSVkVSX0NPTk5FQ1RJT04gPT0gdHJ1ZSkgew0KICAgICAgICAgICAgcmV0dXJuOw0KICAgICAgICB9DQogICAgICAgIFNFUlZFUl9DT05ORUNUSU9OID0gdHJ1ZTsNCiAgICAgICAgY29uc29sZS5sb2coZGF0YSk7DQogICAgICAgIGlmICh0aGlzLmNtZCAhPSAidXBkYXRlTG9nIikgew0KICAgICAgICAgICAgc2hvd0VsZW1lbnQoImxvYWRpbmciLCB0cnVlKTsNCiAgICAgICAgICAgIFVORE8gPSBuZXcgT2JqZWN0KCk7DQogICAgICAgIH0NCiAgICAgICAgc3dpdGNoICh3aW5kb3cubG9jYXRpb24ucHJvdG9jb2wpIHsNCiAgICAgICAgICAgIGNhc2UgImh0dHA6IjoNCiAgICAgICAgICAgICAgICB0aGlzLnByb3RvY29sID0gIndzOi8vIjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImh0dHBzOiI6DQogICAgICAgICAgICAgICAgdGhpcy5wcm90b2NvbCA9ICJ3c3M6Ly8iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICB9DQogICAgICAgIHZhciB1cmwgPSB0aGlzLnByb3RvY29sICsgd2luZG93LmxvY2F0aW9uLmhvc3RuYW1lICsgIjoiICsgd2luZG93LmxvY2F0aW9uLnBvcnQgKyAiL2RhdGEvIiArICI/VG9rZW49IiArIGdldENvb2tpZSgiVG9rZW4iKTsNCiAgICAgICAgZGF0YVsiY21kIl0gPSB0aGlzLmNtZDsNCiAgICAgICAgdmFyIHdzID0gbmV3IFdlYlNvY2tldCh1cmwpOw0KICAgICAgICB3cy5vbm9wZW4gPSBmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICBXU19BVkFJTEFCTEUgPSB0cnVlOw0KICAgICAgICAgICAgY29uc29sZS5sb2coIlJFUVVFU1QgKEpTKToiKTsNCiAgICAgICAgICAgIGNvbnNvbGUubG9nKGRhdGEpOw0KICAgICAgICAgICAgY29uc29sZS5sb2coIlJFUVVFU1Q6IChKU09OKSIpOw0KICAgICAgICAgICAgY29uc29sZS5sb2coSlNPTi5zdHJpbmdpZnkoZGF0YSkpOw0KICAgICAgICAgICAgdGhpcy5zZW5kKEpTT04uc3RyaW5naWZ5KGRhdGEpKTsNCiAgICAgICAgfTsNCiAgICAgICAgd3Mub25lcnJvciA9IGZ1bmN0aW9uIChlKSB7DQogICAgICAgICAgICBjb25zb2xlLmxvZygiTm8gd2Vic29ja2V0IGNvbm5lY3Rpb24gdG8geFRlVmUgY291bGQgYmUgZXN0YWJsaXNoZWQuIENoZWNrIHlvdXIgbmV0d29yayBjb25maWd1cmF0aW9uLiIpOw0KICAgICAgICAgICAgU0VSVkVSX0NPTk5FQ1RJT04gPSBmYWxzZTsNCiAgICAgICAgICAgIGlmIChXU19BVkFJTEFCTEUgPT0gZmFsc2UpIHsNCiAgICAgICAgICAgICAgICBhbGVydCgiTm8gd2Vic29ja2V0IGNvbm5lY3Rpb24gdG8geFRlVmUgY291bGQgYmUgZXN0YWJsaXNoZWQuIENoZWNrIHlvdXIgbmV0d29yayBjb25maWd1cmF0aW9uLiIpOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9Ow0KICAgICAgICB3cy5vbm1lc3NhZ2UgPSBmdW5jdGlvbiAoZSkgew0KICAgICAgICAgICAgU0VSVkVSX0NPTk5FQ1RJT04gPSBmYWxzZTsNCiAgICAgICAgICAgIHNob3dFbGVtZW50KCJsb2FkaW5nIiwgZmFsc2UpOw0KICAgICAgICAgICAgY29uc29sZS5sb2coIlJFU1BPTlNFOiIpOw0KICAgICAgICAgICAgdmFyIHJlc3BvbnNlID0gSlNPTi5wYXJzZShlLmRhdGEpOw0KICAgICAgICAgICAgY29uc29sZS5sb2cocmVzcG9uc2UpOw0KICAgICAgICAgICAgaWYgKHJlc3BvbnNlLmhhc093blByb3BlcnR5KCJ0b2tlbiIpKSB7DQogICAgICAgICAgICAgICAgZG9jdW1lbnQuY29va2llID0gIlRva2VuPSIgKyByZXNwb25zZVsidG9rZW4iXTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGlmIChyZXNwb25zZVsic3RhdHVzIl0gPT0gZmFsc2UpIHsNCiAgICAgICAgICAgICAgICBhbGVydChyZXNwb25zZVsiZXJyIl0pOw0KICAgICAgICAgICAgICAgIGlmIChyZXNwb25zZS5oYXNPd25Qcm9wZXJ0eSgicmVsb2FkIikpIHsNCiAgICAgICAgICAgICAgICAgICAgbG9jYXRpb24ucmVsb2FkKCk7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIHJldHVybjsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGlmIChyZXNwb25zZS5oYXNPd25Qcm9wZXJ0eSgibG9nb1VSTCIpKSB7DQogICAgICAgICAgICAgICAgdmFyIGRpdiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjaGFubmVsLWljb24iKTsNCiAgICAgICAgICAgICAgICBkaXYudmFsdWUgPSByZXNwb25zZVsibG9nb1VSTCJdOw0KICAgICAgICAgICAgICAgIGRpdi5jbGFzc05hbWUgPSAiY2hhbmdlZCI7DQogICAgICAgICAgICAgICAgcmV0dXJuOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgc3dpdGNoIChkYXRhWyJjbWQiXSkgew0KICAgICAgICAgICAgICAgIGNhc2UgInVwZGF0ZUxvZyI6DQogICAgICAgICAgICAgICAgICAgIFNFUlZFUlsibG9nIl0gPSByZXNwb25zZVsibG9nIl07DQogICAgICAgICAgICAgICAgICAgIGlmIChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29udGVudF9sb2ciKSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgc2hvd0xvZ3MoZmFsc2UpOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIHJldHVybjsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgICAgICAgICAgU0VSVkVSID0gbmV3IE9iamVjdCgpOw0KICAgICAgICAgICAgICAgICAgICBTRVJWRVIgPSByZXNwb25zZTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBpZiAocmVzcG9uc2UuaGFzT3duUHJvcGVydHkoIm9wZW5NZW51IikpIHsNCiAgICAgICAgICAgICAgICB2YXIgbWVudSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHJlc3BvbnNlWyJvcGVuTWVudSJdKTsNCiAgICAgICAgICAgICAgICBtZW51LmNsaWNrKCk7DQogICAgICAgICAgICAgICAgc2hvd0VsZW1lbnQoInBvcHVwIiwgZmFsc2UpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgaWYgKHJlc3BvbnNlLmhhc093blByb3BlcnR5KCJvcGVuTGluayIpKSB7DQogICAgICAgICAgICAgICAgd2luZG93LmxvY2F0aW9uID0gcmVzcG9uc2VbIm9wZW5MaW5rIl07DQogICAgICAgICAgICB9DQogICAgICAgICAgICBpZiAocmVzcG9uc2UuaGFzT3duUHJvcGVydHkoImFsZXJ0IikpIHsNCiAgICAgICAgICAgICAgICBhbGVydChyZXNwb25zZVsiYWxlcnQiXSk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBpZiAocmVzcG9uc2UuaGFzT3duUHJvcGVydHkoInJlbG9hZCIpKSB7DQogICAgICAgICAgICAgICAgbG9jYXRpb24ucmVsb2FkKCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBpZiAocmVzcG9uc2UuaGFzT3duUHJvcGVydHkoIndpemFyZCIpKSB7DQogICAgICAgICAgICAgICAgY3JlYXRlTGF5b3V0KCk7DQogICAgICAgICAgICAgICAgY29uZmlndXJhdGlvbldpemFyZFtyZXNwb25zZVsid2l6YXJkIl1dLmNyZWF0ZVdpemFyZCgpOw0KICAgICAgICAgICAgICAgIHJldHVybjsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGNyZWF0ZUxheW91dCgpOw0KICAgICAgICB9Ow0KICAgIH0NCn0NCmZ1bmN0aW9uIGdldENvb2tpZShuYW1lKSB7DQogICAgdmFyIHZhbHVlID0gIjsgIiArIGRvY3VtZW50LmNvb2tpZTsNCiAgICB2YXIgcGFydHMgPSB2YWx1ZS5zcGxpdCgiOyAiICsgbmFtZSArICI9Iik7DQogICAgaWYgKHBhcnRzLmxlbmd0aCA9PSAyKQ0KICAgICAgICByZXR1cm4gcGFydHMucG9wKCkuc3BsaXQoIjsiKS5zaGlmdCgpOw0KfQ0K" - webUI["html/js/menu_ts.js"] = "Y2xhc3MgTWFpbk1lbnUgew0KICAgIGNvbnN0cnVjdG9yKCkgew0KICAgICAgICB0aGlzLkRvY3VtZW50SUQgPSAibWFpbi1tZW51IjsNCiAgICAgICAgdGhpcy5IVE1MVGFnID0gIkxJIjsNCiAgICAgICAgdGhpcy5JbWFnZVBhdGggPSAiaW1nLyI7DQogICAgfQ0KICAgIGNyZWF0ZUlNRyhzcmMpIHsNCiAgICAgICAgbGV0IGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJJTUciKTsNCiAgICAgICAgZWxlbWVudC5zZXRBdHRyaWJ1dGUoInNyYyIsIHRoaXMuSW1hZ2VQYXRoICsgc3JjKTsNCiAgICAgICAgcmV0dXJuIGVsZW1lbnQ7DQogICAgfQ0KICAgIGNyZWF0ZVZhbHVlKHZhbHVlKSB7DQogICAgICAgIGxldCBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiUCIpOw0KICAgICAgICBlbGVtZW50LmlubmVySFRNTCA9IHZhbHVlOw0KICAgICAgICByZXR1cm4gZWxlbWVudDsNCiAgICB9DQp9DQpjbGFzcyBNYWluTWVudUl0ZW0gZXh0ZW5kcyBNYWluTWVudSB7DQogICAgY29uc3RydWN0b3IobWVudUtleSwgdmFsdWUsIGltYWdlLCBoZWFkbGluZSkgew0KICAgICAgICBzdXBlcigpOw0KICAgICAgICB0aGlzLm1lbnVLZXkgPSBtZW51S2V5Ow0KICAgICAgICB0aGlzLnZhbHVlID0gdmFsdWU7DQogICAgICAgIHRoaXMuaW1nU3JjID0gaW1hZ2U7DQogICAgICAgIHRoaXMuaGVhZGxpbmUgPSBoZWFkbGluZTsNCiAgICB9DQogICAgY3JlYXRlSXRlbSgpIHsNCiAgICAgICAgbGV0IGl0ZW0gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJMSSIpOw0KICAgICAgICBpdGVtLnNldEF0dHJpYnV0ZSgib25jbGljayIsICJqYXZhc2NyaXB0OiBvcGVuVGhpc01lbnUodGhpcykiKTsNCiAgICAgICAgaXRlbS5zZXRBdHRyaWJ1dGUoImlkIiwgdGhpcy5pZCk7DQogICAgICAgIGxldCBpbWcgPSB0aGlzLmNyZWF0ZUlNRyh0aGlzLmltZ1NyYyk7DQogICAgICAgIGxldCB2YWx1ZSA9IHRoaXMuY3JlYXRlVmFsdWUodGhpcy52YWx1ZSk7DQogICAgICAgIGl0ZW0uYXBwZW5kQ2hpbGQoaW1nKTsNCiAgICAgICAgaXRlbS5hcHBlbmRDaGlsZCh2YWx1ZSk7DQogICAgICAgIGxldCBkb2MgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCh0aGlzLkRvY3VtZW50SUQpOw0KICAgICAgICBkb2MuYXBwZW5kQ2hpbGQoaXRlbSk7DQogICAgICAgIHN3aXRjaCAodGhpcy5tZW51S2V5KSB7DQogICAgICAgICAgICBjYXNlICJwbGF5bGlzdCI6DQogICAgICAgICAgICAgICAgdGhpcy50YWJsZUhlYWRlciA9IFsie3sucGxheWxpc3QudGFibGUucGxheWxpc3R9fSIsICJ7ey5wbGF5bGlzdC50YWJsZS50dW5lcn19IiwgInt7LnBsYXlsaXN0LnRhYmxlLmxhc3RVcGRhdGV9fSIsICJ7ey5wbGF5bGlzdC50YWJsZS5hdmFpbGFiaWxpdHl9fSAlIiwgInt7LnBsYXlsaXN0LnRhYmxlLnR5cGV9fSIsICJ7ey5wbGF5bGlzdC50YWJsZS5zdHJlYW1zfX0iLCAie3sucGxheWxpc3QudGFibGUuZ3JvdXBUaXRsZX19ICUiLCAie3sucGxheWxpc3QudGFibGUudHZnSUR9fSAlIiwgInt7LnBsYXlsaXN0LnRhYmxlLnVuaXF1ZUlEfX0gJSJdOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAieG1sdHYiOg0KICAgICAgICAgICAgICAgIHRoaXMudGFibGVIZWFkZXIgPSBbInt7LnhtbHR2LnRhYmxlLmd1aWRlfX0iLCAie3sueG1sdHYudGFibGUubGFzdFVwZGF0ZX19IiwgInt7LnhtbHR2LnRhYmxlLmF2YWlsYWJpbGl0eX19ICUiLCAie3sueG1sdHYudGFibGUuY2hhbm5lbHN9fSIsICJ7ey54bWx0di50YWJsZS5wcm9ncmFtc319Il07DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJmaWx0ZXIiOg0KICAgICAgICAgICAgICAgIHRoaXMudGFibGVIZWFkZXIgPSBbInt7LmZpbHRlci50YWJsZS5uYW1lfX0iLCAie3suZmlsdGVyLnRhYmxlLnR5cGV9fSIsICJ7ey5maWx0ZXIudGFibGUuZmlsdGVyfX0iXTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInVzZXJzIjoNCiAgICAgICAgICAgICAgICB0aGlzLnRhYmxlSGVhZGVyID0gWyJ7ey51c2Vycy50YWJsZS51c2VybmFtZX19IiwgInt7LnVzZXJzLnRhYmxlLnBhc3N3b3JkfX0iLCAie3sudXNlcnMudGFibGUud2VifX0iLCAie3sudXNlcnMudGFibGUucG1zfX0iLCAie3sudXNlcnMudGFibGUubTN1fX0iLCAie3sudXNlcnMudGFibGUueG1sfX0iLCAie3sudXNlcnMudGFibGUuYXBpfX0iXTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgIm1hcHBpbmciOg0KICAgICAgICAgICAgICAgIHRoaXMudGFibGVIZWFkZXIgPSBbIkJVTEsiLCAie3subWFwcGluZy50YWJsZS5jaE5vfX0iLCAie3subWFwcGluZy50YWJsZS5sb2dvfX0iLCAie3subWFwcGluZy50YWJsZS5jaGFubmVsTmFtZX19IiwgInt7Lm1hcHBpbmcudGFibGUucGxheWxpc3R9fSIsICJ7ey5tYXBwaW5nLnRhYmxlLmdyb3VwVGl0bGV9fSIsICJ7ey5tYXBwaW5nLnRhYmxlLnhtbHR2RmlsZX19IiwgInt7Lm1hcHBpbmcudGFibGUueG1sdHZJRH19IiwgInt7Lm1hcHBpbmcudGFibGUudGltZXNoaWZ0fX0iXTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgfQ0KICAgICAgICAvL2NvbnNvbGUubG9nKHRoaXMubWVudUtleSwgdGhpcy50YWJsZUhlYWRlcik7DQogICAgfQ0KfQ0KY2xhc3MgQ29udGVudCB7DQogICAgY29uc3RydWN0b3IoKSB7DQogICAgICAgIHRoaXMuRG9jdW1lbnRJRCA9ICJjb250ZW50IjsNCiAgICAgICAgdGhpcy5UYWJsZUlEID0gImNvbnRlbnRfdGFibGUiOw0KICAgICAgICB0aGlzLmhlYWRlckNsYXNzID0gImNvbnRlbnRfdGFibGVfaGVhZGVyIjsNCiAgICAgICAgdGhpcy5pbnRlcmFjdGlvbklEID0gImNvbnRlbnQtaW50ZXJhY3Rpb24iOw0KICAgIH0NCiAgICBjcmVhdGVIZWFkbGluZSh2YWx1ZSkgew0KICAgICAgICBsZXQgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIkgzIik7DQogICAgICAgIGVsZW1lbnQuaW5uZXJIVE1MID0gdmFsdWU7DQogICAgICAgIHJldHVybiBlbGVtZW50Ow0KICAgIH0NCiAgICBjcmVhdGVIUigpIHsNCiAgICAgICAgcmV0dXJuIGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIkhSIik7DQogICAgfQ0KICAgIGNyZWF0ZUludGVyYWN0aW9uKCkgew0KICAgICAgICBsZXQgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIkRJViIpOw0KICAgICAgICBlbGVtZW50LnNldEF0dHJpYnV0ZSgiaWQiLCB0aGlzLmludGVyYWN0aW9uSUQpOw0KICAgICAgICByZXR1cm4gZWxlbWVudDsNCiAgICB9DQogICAgY3JlYXRlRElWKCkgew0KICAgICAgICBsZXQgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIkRJViIpOw0KICAgICAgICBlbGVtZW50LmlkID0gdGhpcy5EaXZJRDsNCiAgICAgICAgcmV0dXJuIGVsZW1lbnQ7DQogICAgfQ0KICAgIGNyZWF0ZVRBQkxFKCkgew0KICAgICAgICBsZXQgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlRBQkxFIik7DQogICAgICAgIGVsZW1lbnQuaWQgPSB0aGlzLlRhYmxlSUQ7DQogICAgICAgIHJldHVybiBlbGVtZW50Ow0KICAgIH0NCiAgICBjcmVhdGVUYWJsZVJvdygpIHsNCiAgICAgICAgbGV0IGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJUUiIpOw0KICAgICAgICBlbGVtZW50LmNsYXNzTmFtZSA9IHRoaXMuaGVhZGVyQ2xhc3M7DQogICAgICAgIHJldHVybiBlbGVtZW50Ow0KICAgIH0NCiAgICBjcmVhdGVUYWJsZUNvbnRlbnQobWVudUtleSkgew0KICAgICAgICBsZXQgZGF0YSA9IHt9Ow0KICAgICAgICBsZXQgcm93cyA9IFtdOw0KICAgICAgICBsZXQgZmlsZVR5cGVzID0gW107DQogICAgICAgIHN3aXRjaCAobWVudUtleSkgew0KICAgICAgICAgICAgY2FzZSAicGxheWxpc3QiOg0KICAgICAgICAgICAgICAgIGZpbGVUeXBlcyA9IFsibTN1IiwgImhkaHIiXTsNCiAgICAgICAgICAgICAgICBmaWxlVHlwZXMuZm9yRWFjaChmaWxlVHlwZSA9PiB7DQogICAgICAgICAgICAgICAgICAgIGRhdGEgPSBTRVJWRVJbInNldHRpbmdzIl1bImZpbGVzIl1bZmlsZVR5cGVdOw0KICAgICAgICAgICAgICAgICAgICB2YXIga2V5cyA9IGdldE9iaktleXMoZGF0YSk7DQogICAgICAgICAgICAgICAgICAgIGtleXMuZm9yRWFjaChrZXkgPT4gew0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVFIiKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmlkID0ga2V5Ow0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgiJyArIGZpbGVUeXBlICsgJyIsIHRoaXMpJyk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsibmFtZSJdOw0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChTRVJWRVJbInNldHRpbmdzIl1bImJ1ZmZlciJdICE9ICItIikgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bInR1bmVyIl07DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gIi0iOw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bImxhc3QudXBkYXRlIl07DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsicHJvdmlkZXIuYXZhaWxhYmlsaXR5Il07DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsidHlwZSJdLnRvVXBwZXJDYXNlKCk7DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsiY29tcGF0aWJpbGl0eSJdWyJzdHJlYW1zIl07DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsiY29tcGF0aWJpbGl0eSJdWyJncm91cC50aXRsZSJdOw0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bImNvbXBhdGliaWxpdHkiXVsidHZnLmlkIl07DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsiY29tcGF0aWJpbGl0eSJdWyJzdHJlYW0uaWQiXTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHJvd3MucHVzaCh0cik7DQogICAgICAgICAgICAgICAgICAgIH0pOw0KICAgICAgICAgICAgICAgIH0pOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiZmlsdGVyIjoNCiAgICAgICAgICAgICAgICBkZWxldGUgU0VSVkVSWyJzZXR0aW5ncyJdWyJmaWx0ZXIiXVstMV07DQogICAgICAgICAgICAgICAgZGF0YSA9IFNFUlZFUlsic2V0dGluZ3MiXVsiZmlsdGVyIl07DQogICAgICAgICAgICAgICAgdmFyIGtleXMgPSBnZXRPYmpLZXlzKGRhdGEpOw0KICAgICAgICAgICAgICAgIGtleXMuZm9yRWFjaChrZXkgPT4gew0KICAgICAgICAgICAgICAgICAgICB2YXIgdHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJUUiIpOw0KICAgICAgICAgICAgICAgICAgICB0ci5pZCA9IGtleTsNCiAgICAgICAgICAgICAgICAgICAgdHIuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgiJyArIGRhdGFba2V5XVsidHlwZSJdICsgJyIsIHRoaXMpJyk7DQogICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJuYW1lIl07DQogICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgIHN3aXRjaCAoZGF0YVtrZXldWyJ0eXBlIl0pIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgImN1c3RvbS1maWx0ZXIiOg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSAie3suZmlsdGVyLmN1c3RvbX19IjsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgImdyb3VwLXRpdGxlIjoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gInt7LmZpbHRlci5ncm91cH19IjsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsiZmlsdGVyIl07DQogICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgcm93cy5wdXNoKHRyKTsNCiAgICAgICAgICAgICAgICB9KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInhtbHR2IjoNCiAgICAgICAgICAgICAgICBmaWxlVHlwZXMgPSBuZXcgQXJyYXkoInhtbHR2Iik7DQogICAgICAgICAgICAgICAgZmlsZVR5cGVzLmZvckVhY2goZmlsZVR5cGUgPT4gew0KICAgICAgICAgICAgICAgICAgICBkYXRhID0gU0VSVkVSWyJzZXR0aW5ncyJdWyJmaWxlcyJdW2ZpbGVUeXBlXTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGtleXMgPSBnZXRPYmpLZXlzKGRhdGEpOw0KICAgICAgICAgICAgICAgICAgICBrZXlzLmZvckVhY2goa2V5ID0+IHsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciB0ciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlRSIik7DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5pZCA9IGtleTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoIicgKyBmaWxlVHlwZSArICciLCB0aGlzKScpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bIm5hbWUiXTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJsYXN0LnVwZGF0ZSJdOw0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bInByb3ZpZGVyLmF2YWlsYWJpbGl0eSJdOw0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bImNvbXBhdGliaWxpdHkiXVsieG1sdHYuY2hhbm5lbHMiXTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJjb21wYXRpYmlsaXR5Il1bInhtbHR2LnByb2dyYW1zIl07DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICByb3dzLnB1c2godHIpOw0KICAgICAgICAgICAgICAgICAgICB9KTsNCiAgICAgICAgICAgICAgICB9KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInVzZXJzIjoNCiAgICAgICAgICAgICAgICBmaWxlVHlwZXMgPSBuZXcgQXJyYXkoInVzZXJzIik7DQogICAgICAgICAgICAgICAgZmlsZVR5cGVzLmZvckVhY2goZmlsZVR5cGUgPT4gew0KICAgICAgICAgICAgICAgICAgICBkYXRhID0gU0VSVkVSW2ZpbGVUeXBlXTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGtleXMgPSBnZXRPYmpLZXlzKGRhdGEpOw0KICAgICAgICAgICAgICAgICAgICBrZXlzLmZvckVhY2goa2V5ID0+IHsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciB0ciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlRSIik7DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5pZCA9IGtleTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoIicgKyBmaWxlVHlwZSArICciLCB0aGlzKScpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bImRhdGEiXVsidXNlcm5hbWUiXTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gIioqKioqKiI7DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGRhdGFba2V5XVsiZGF0YSJdWyJhdXRoZW50aWNhdGlvbi53ZWIiXSA9PSB0cnVlKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9ICLinJMiOw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9ICItIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgICAgICBpZiAoZGF0YVtrZXldWyJkYXRhIl1bImF1dGhlbnRpY2F0aW9uLnBtcyJdID09IHRydWUpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gIuKckyI7DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gIi0iOw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChkYXRhW2tleV1bImRhdGEiXVsiYXV0aGVudGljYXRpb24ubTN1Il0gPT0gdHJ1ZSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSAi4pyTIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSAiLSI7DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGRhdGFba2V5XVsiZGF0YSJdWyJhdXRoZW50aWNhdGlvbi54bWwiXSA9PSB0cnVlKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9ICLinJMiOw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9ICItIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgICAgICBpZiAoZGF0YVtrZXldWyJkYXRhIl1bImF1dGhlbnRpY2F0aW9uLmFwaSJdID09IHRydWUpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gIuKckyI7DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gIi0iOw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgcm93cy5wdXNoKHRyKTsNCiAgICAgICAgICAgICAgICAgICAgfSk7DQogICAgICAgICAgICAgICAgfSk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJtYXBwaW5nIjoNCiAgICAgICAgICAgICAgICBCVUxLX0VESVQgPSBmYWxzZTsNCiAgICAgICAgICAgICAgICBjcmVhdGVTZWFyY2hPYmooKTsNCiAgICAgICAgICAgICAgICBjaGVja1VuZG8oImVwZ01hcHBpbmciKTsNCiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZygiTUFQUElORyIpOw0KICAgICAgICAgICAgICAgIGRhdGEgPSBTRVJWRVJbInhlcGciXVsiZXBnTWFwcGluZyJdOw0KICAgICAgICAgICAgICAgIHZhciBrZXlzID0gZ2V0T2JqS2V5cyhkYXRhKTsNCiAgICAgICAgICAgICAgICBrZXlzLmZvckVhY2goa2V5ID0+IHsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVFIiKTsNCiAgICAgICAgICAgICAgICAgICAgdHIuaWQgPSBrZXk7DQogICAgICAgICAgICAgICAgICAgIC8vdHIuc2V0QXR0cmlidXRlKCdvbmNvbnRleHRtZW51JywgJ2phdmFzY3JpcHQ6IHJpZ2h0Q2xpY2sodGhpcyknKQ0KICAgICAgICAgICAgICAgICAgICBzd2l0Y2ggKGRhdGFba2V5XVsieC1hY3RpdmUiXSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSB0cnVlOg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyLmNsYXNzTmFtZSA9ICJhY3RpdmVFUEciOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSBmYWxzZToNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ci5jbGFzc05hbWUgPSAibm90QWN0aXZlRVBHIjsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAvLyBCdWxrDQogICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIkJVTEsiOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZmFsc2U7DQogICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgLy8gS2FuYWxudW1tZXINCiAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiSU5QVVRDSEFOTkVMIjsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsieC1jaGFubmVsSUQiXTsNCiAgICAgICAgICAgICAgICAgICAgLy90ZC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogY2hhbmdlQ2hhbm5lbE51bWJlcigiJyArIGtleSArICciLCB0aGlzKScpDQogICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgLy8gTG9nbw0KICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJJTUciOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmltYWdlVVJMID0gZGF0YVtrZXldWyJ0dmctbG9nbyJdOw0KICAgICAgICAgICAgICAgICAgICB2YXIgdGQgPSBjZWxsLmNyZWF0ZUNlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgdGQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgibWFwcGluZyIsIHRoaXMpJyk7DQogICAgICAgICAgICAgICAgICAgIHRkLmlkID0ga2V5Ow0KICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZCh0ZCk7DQogICAgICAgICAgICAgICAgICAgIC8vIEthbmFsbmFtZQ0KICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jbGFzc05hbWUgPSBkYXRhW2tleV1bIngtY2F0ZWdvcnkiXTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsieC1uYW1lIl07DQogICAgICAgICAgICAgICAgICAgIHZhciB0ZCA9IGNlbGwuY3JlYXRlQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICB0ZC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJtYXBwaW5nIiwgdGhpcyknKTsNCiAgICAgICAgICAgICAgICAgICAgdGQuaWQgPSBrZXk7DQogICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKHRkKTsNCiAgICAgICAgICAgICAgICAgICAgLy8gUGxheWxpc3QNCiAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgIC8vY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsiX2ZpbGUubTN1Lm5hbWUiXSANCiAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGdldFZhbHVlRnJvbVByb3ZpZGVyRmlsZShkYXRhW2tleV1bIl9maWxlLm0zdS5pZCJdLCAibTN1IiwgIm5hbWUiKTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHRkID0gY2VsbC5jcmVhdGVDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgIHRkLnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoIm1hcHBpbmciLCB0aGlzKScpOw0KICAgICAgICAgICAgICAgICAgICB0ZC5pZCA9IGtleTsNCiAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQodGQpOw0KICAgICAgICAgICAgICAgICAgICAvLyBHcnVwcGUgKGdyb3VwLXRpdGxlKQ0KICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsieC1ncm91cC10aXRsZSJdOw0KICAgICAgICAgICAgICAgICAgICB2YXIgdGQgPSBjZWxsLmNyZWF0ZUNlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgdGQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgibWFwcGluZyIsIHRoaXMpJyk7DQogICAgICAgICAgICAgICAgICAgIHRkLmlkID0ga2V5Ow0KICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZCh0ZCk7DQogICAgICAgICAgICAgICAgICAgIC8vIFhNTFRWIERhdGVpDQogICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICBpZiAoZGF0YVtrZXldWyJ4LXhtbHR2LWZpbGUiXSAhPSAiLSIpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBnZXRWYWx1ZUZyb21Qcm92aWRlckZpbGUoZGF0YVtrZXldWyJ4LXhtbHR2LWZpbGUiXSwgInhtbHR2IiwgIm5hbWUiKTsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bIngteG1sdHYtZmlsZSJdOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIHZhciB0ZCA9IGNlbGwuY3JlYXRlQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICB0ZC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJtYXBwaW5nIiwgdGhpcyknKTsNCiAgICAgICAgICAgICAgICAgICAgdGQuaWQgPSBrZXk7DQogICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKHRkKTsNCiAgICAgICAgICAgICAgICAgICAgLy8gWE1MVFYgS2FuYWwNCiAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgIC8vdmFyIHZhbHVlID0gc3RyLnN1YnN0cmluZygxLCA0KTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHZhbHVlID0gZGF0YVtrZXldWyJ4LW1hcHBpbmciXTsNCiAgICAgICAgICAgICAgICAgICAgaWYgKHZhbHVlLmxlbmd0aCA+IDIwKSB7DQogICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IGRhdGFba2V5XVsieC1tYXBwaW5nIl0uc3Vic3RyaW5nKDAsIDIwKSArICIuLi4iOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSB2YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHRkID0gY2VsbC5jcmVhdGVDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgIHRkLnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoIm1hcHBpbmciLCB0aGlzKScpOw0KICAgICAgICAgICAgICAgICAgICB0ZC5pZCA9IGtleTsNCiAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQodGQpOw0KICAgICAgICAgICAgICAgICAgICAvLyBUaW1lU2hpZnQNCiAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bIngtdGltZXNoaWZ0Il07DQogICAgICAgICAgICAgICAgICAgIHZhciB0ZCA9IGNlbGwuY3JlYXRlQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICB0ZC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJtYXBwaW5nIiwgdGhpcyknKTsNCiAgICAgICAgICAgICAgICAgICAgdGQuaWQgPSBrZXk7DQogICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKHRkKTsNCiAgICAgICAgICAgICAgICAgICAgcm93cy5wdXNoKHRyKTsNCiAgICAgICAgICAgICAgICB9KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInNldHRpbmdzIjoNCiAgICAgICAgICAgICAgICBhbGVydCgpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZygiVGFibGUgY29udGVudCAobWVudUtleSk6IiwgbWVudUtleSk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIH0NCiAgICAgICAgcmV0dXJuIHJvd3M7DQogICAgfQ0KfQ0KY2xhc3MgQ2VsbCB7DQogICAgY3JlYXRlQ2VsbCgpIHsNCiAgICAgICAgbGV0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgaWYgKHRoaXMuY2hpbGQgPT0gdHJ1ZSkgew0KICAgICAgICAgICAgdmFyIGVsZW1lbnQ7DQogICAgICAgICAgICBzd2l0Y2ggKHRoaXMuY2hpbGRUeXBlKSB7DQogICAgICAgICAgICAgICAgY2FzZSAiUCI6DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KHRoaXMuY2hpbGRUeXBlKTsNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC5pbm5lckhUTUwgPSB0aGlzLnZhbHVlOw0KICAgICAgICAgICAgICAgICAgICBlbGVtZW50LmNsYXNzTmFtZSA9IHRoaXMuY2xhc3NOYW1lOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBjYXNlICJJTlBVVCI6DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KHRoaXMuY2hpbGRUeXBlKTsNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC52YWx1ZSA9IHRoaXMudmFsdWU7DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQudHlwZSA9ICJ0ZXh0IjsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAiSU5QVVRDSEFOTkVMIjoNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIklOUFVUIik7DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZzY3JpcHQ6IGNoYW5nZUNoYW5uZWxOdW1iZXIodGhpcykiKTsNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC52YWx1ZSA9IHRoaXMudmFsdWU7DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQudHlwZSA9ICJ0ZXh0IjsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAiQlVMSyI6DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJJTlBVVCIpOw0KICAgICAgICAgICAgICAgICAgICBlbGVtZW50LmNoZWNrZWQgPSB0aGlzLnZhbHVlOw0KICAgICAgICAgICAgICAgICAgICBlbGVtZW50LnR5cGUgPSAiY2hlY2tib3giOw0KICAgICAgICAgICAgICAgICAgICBlbGVtZW50LmNsYXNzTmFtZSA9ICJidWxrIGhpZGVCdWxrIjsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAiQlVMS19IRUFEIjoNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIklOUFVUIik7DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQuY2hlY2tlZCA9IHRoaXMudmFsdWU7DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQudHlwZSA9ICJjaGVja2JveCI7DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQuY2xhc3NOYW1lID0gImJ1bGsgaGlkZUJ1bGsiOw0KICAgICAgICAgICAgICAgICAgICBlbGVtZW50LnNldEF0dHJpYnV0ZSgib25jbGljayIsICJqYXZhc2NyaXB0OiBzZWxlY3RBbGxDaGFubmVscygpIik7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgIklNRyI6DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KHRoaXMuY2hpbGRUeXBlKTsNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC5zZXRBdHRyaWJ1dGUoInNyYyIsIHRoaXMuaW1hZ2VVUkwpOw0KICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5pbWFnZVVSTCAhPSAiIikgew0KICAgICAgICAgICAgICAgICAgICAgICAgZWxlbWVudC5zZXRBdHRyaWJ1dGUoIm9uZXJyb3IiLCAiamF2YXNjcmlwdDogdGhpcy5vbmVycm9yPW51bGw7dGhpcy5zcmM9JyciKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIC8vb25lcnJvcj0idGhpcy5vbmVycm9yPW51bGw7dGhpcy5zcmM9J21pc3NpbmcuZ2lmJzsiDQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIHRkLmFwcGVuZENoaWxkKGVsZW1lbnQpOw0KICAgICAgICB9DQogICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgdGQuaW5uZXJIVE1MID0gdGhpcy52YWx1ZTsNCiAgICAgICAgfQ0KICAgICAgICBpZiAodGhpcy5vbmNsaWNrID09IHRydWUpIHsNCiAgICAgICAgICAgIHRkLnNldEF0dHJpYnV0ZSgib25jbGljayIsIHRoaXMub25jbGlja0Z1bmt0aW9uKTsNCiAgICAgICAgICAgIHRkLmNsYXNzTmFtZSA9ICJwb2ludGVyIjsNCiAgICAgICAgfQ0KICAgICAgICBpZiAodGhpcy50ZENsYXNzTmFtZSAhPSB1bmRlZmluZWQpIHsNCiAgICAgICAgICAgIHRkLmNsYXNzTmFtZSA9IHRoaXMudGRDbGFzc05hbWU7DQogICAgICAgIH0NCiAgICAgICAgcmV0dXJuIHRkOw0KICAgIH0NCn0NCmNsYXNzIFNob3dDb250ZW50IGV4dGVuZHMgQ29udGVudCB7DQogICAgY29uc3RydWN0b3IobWVudUlEKSB7DQogICAgICAgIHN1cGVyKCk7DQogICAgICAgIHRoaXMubWVudUlEID0gbWVudUlEOw0KICAgIH0NCiAgICBjcmVhdGVJbnB1dCh0eXBlLCBuYW1lLCB2YWx1ZSkgew0KICAgICAgICBsZXQgaW5wdXQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJJTlBVVCIpOw0KICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInR5cGUiLCB0eXBlKTsNCiAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJuYW1lIiwgbmFtZSk7DQogICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgidmFsdWUiLCB2YWx1ZSk7DQogICAgICAgIHJldHVybiBpbnB1dDsNCiAgICB9DQogICAgc2hvdygpIHsNCiAgICAgICAgQ09MVU1OX1RPX1NPUlQgPSAtMTsNCiAgICAgICAgLy8gQWx0ZW4gSW5oYWx0IGzDtnNjaGVuDQogICAgICAgIGxldCBkb2MgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCh0aGlzLkRvY3VtZW50SUQpOw0KICAgICAgICBkb2MuaW5uZXJIVE1MID0gIiI7DQogICAgICAgIHNob3dQcmV2aWV3KGZhbHNlKTsNCiAgICAgICAgLy8gw5xiZXJzY2hyaWZ0DQogICAgICAgIGxldCBoZWFkbGluZSA9IG1lbnVJdGVtc1t0aGlzLm1lbnVJRF0uaGVhZGxpbmU7DQogICAgICAgIGxldCBtZW51S2V5ID0gbWVudUl0ZW1zW3RoaXMubWVudUlEXS5tZW51S2V5Ow0KICAgICAgICBsZXQgaCA9IHRoaXMuY3JlYXRlSGVhZGxpbmUoaGVhZGxpbmUpOw0KICAgICAgICBkb2MuYXBwZW5kQ2hpbGQoaCk7DQogICAgICAgIGxldCBociA9IHRoaXMuY3JlYXRlSFIoKTsNCiAgICAgICAgZG9jLmFwcGVuZENoaWxkKGhyKTsNCiAgICAgICAgLy8gSW50ZXJha3Rpb24NCiAgICAgICAgbGV0IGRpdiA9IHRoaXMuY3JlYXRlSW50ZXJhY3Rpb24oKTsNCiAgICAgICAgZG9jLmFwcGVuZENoaWxkKGRpdik7DQogICAgICAgIGxldCBpbnRlcmFjdGlvbiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHRoaXMuaW50ZXJhY3Rpb25JRCk7DQogICAgICAgIHN3aXRjaCAobWVudUtleSkgew0KICAgICAgICAgICAgY2FzZSAicGxheWxpc3QiOg0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IHRoaXMuY3JlYXRlSW5wdXQoImJ1dHRvbiIsIG1lbnVLZXksICJ7ey5idXR0b24ubmV3fX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoImlkIiwgIi0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJwbGF5bGlzdCIpJyk7DQogICAgICAgICAgICAgICAgaW50ZXJhY3Rpb24uYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiZmlsdGVyIjoNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSB0aGlzLmNyZWF0ZUlucHV0KCJidXR0b24iLCBtZW51S2V5LCAie3suYnV0dG9uLm5ld319Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJpZCIsIC0xKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJmaWx0ZXIiLCB0aGlzKScpOw0KICAgICAgICAgICAgICAgIGludGVyYWN0aW9uLmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInhtbHR2IjoNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSB0aGlzLmNyZWF0ZUlucHV0KCJidXR0b24iLCBtZW51S2V5LCAie3suYnV0dG9uLm5ld319Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJpZCIsICJ4bWx0diIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoInhtbHR2IiknKTsNCiAgICAgICAgICAgICAgICBpbnRlcmFjdGlvbi5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ1c2VycyI6DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gdGhpcy5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgbWVudUtleSwgInt7LmJ1dHRvbi5uZXd9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgiaWQiLCAidXNlcnMiKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJ1c2VycyIpJyk7DQogICAgICAgICAgICAgICAgaW50ZXJhY3Rpb24uYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAibWFwcGluZyI6DQogICAgICAgICAgICAgICAgc2hvd0VsZW1lbnQoImxvYWRpbmciLCB0cnVlKTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSB0aGlzLmNyZWF0ZUlucHV0KCJidXR0b24iLCBtZW51S2V5LCAie3suYnV0dG9uLnNhdmV9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBzYXZlUG9wdXBEYXRhKCJtYXBwaW5nIiwgIiIsICIiKScpOw0KICAgICAgICAgICAgICAgIGludGVyYWN0aW9uLmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSB0aGlzLmNyZWF0ZUlucHV0KCJidXR0b24iLCBtZW51S2V5LCAie3suYnV0dG9uLmJ1bGtFZGl0fX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogYnVsa0VkaXQoKScpOw0KICAgICAgICAgICAgICAgIGludGVyYWN0aW9uLmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSB0aGlzLmNyZWF0ZUlucHV0KCJzZWFyY2giLCAic2VhcmNoIiwgIiIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgiaWQiLCAic2VhcmNoTWFwcGluZyIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3suYnV0dG9uLnNlYXJjaH19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuY2xhc3NOYW1lID0gInNlYXJjaCI7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICdqYXZhc2NyaXB0OiBzZWFyY2hJbk1hcHBpbmcoKScpOw0KICAgICAgICAgICAgICAgIGludGVyYWN0aW9uLmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInNldHRpbmdzIjoNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSB0aGlzLmNyZWF0ZUlucHV0KCJidXR0b24iLCBtZW51S2V5LCAie3suYnV0dG9uLnNhdmV9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBzYXZlU2V0dGluZ3MoKTsnKTsNCiAgICAgICAgICAgICAgICBpbnRlcmFjdGlvbi5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gdGhpcy5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgbWVudUtleSwgInt7LmJ1dHRvbi5iYWNrdXB9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBiYWNrdXAoKTsnKTsNCiAgICAgICAgICAgICAgICBpbnRlcmFjdGlvbi5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gdGhpcy5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgbWVudUtleSwgInt7LmJ1dHRvbi5yZXN0b3JlfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogcmVzdG9yZSgpOycpOw0KICAgICAgICAgICAgICAgIGludGVyYWN0aW9uLmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICB2YXIgd3JhcHBlciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIkRJViIpOw0KICAgICAgICAgICAgICAgIHdyYXBwZXIuc2V0QXR0cmlidXRlKCJpZCIsICJib3gtd3JhcHBlciIpOw0KICAgICAgICAgICAgICAgIGRvYy5hcHBlbmRDaGlsZCh3cmFwcGVyKTsNCiAgICAgICAgICAgICAgICB0aGlzLkRpdklEID0gImNvbnRlbnRfc2V0dGluZ3MiOw0KICAgICAgICAgICAgICAgIHZhciBzZXR0aW5ncyA9IHRoaXMuY3JlYXRlRElWKCk7DQogICAgICAgICAgICAgICAgd3JhcHBlci5hcHBlbmRDaGlsZChzZXR0aW5ncyk7DQogICAgICAgICAgICAgICAgc2hvd1NldHRpbmdzKCk7DQogICAgICAgICAgICAgICAgcmV0dXJuOw0KICAgICAgICAgICAgY2FzZSAibG9nIjoNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSB0aGlzLmNyZWF0ZUlucHV0KCJidXR0b24iLCBtZW51S2V5LCAie3suYnV0dG9uLnJlc2V0TG9nc319Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IHJlc2V0TG9ncygpOycpOw0KICAgICAgICAgICAgICAgIGludGVyYWN0aW9uLmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICB2YXIgd3JhcHBlciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIkRJViIpOw0KICAgICAgICAgICAgICAgIHdyYXBwZXIuc2V0QXR0cmlidXRlKCJpZCIsICJib3gtd3JhcHBlciIpOw0KICAgICAgICAgICAgICAgIGRvYy5hcHBlbmRDaGlsZCh3cmFwcGVyKTsNCiAgICAgICAgICAgICAgICB0aGlzLkRpdklEID0gImNvbnRlbnRfbG9nIjsNCiAgICAgICAgICAgICAgICB2YXIgbG9ncyA9IHRoaXMuY3JlYXRlRElWKCk7DQogICAgICAgICAgICAgICAgd3JhcHBlci5hcHBlbmRDaGlsZChsb2dzKTsNCiAgICAgICAgICAgICAgICBzaG93TG9ncyh0cnVlKTsNCiAgICAgICAgICAgICAgICByZXR1cm47DQogICAgICAgICAgICBjYXNlICJsb2dvdXQiOg0KICAgICAgICAgICAgICAgIGxvY2F0aW9uLnJlbG9hZCgpOw0KICAgICAgICAgICAgICAgIGRvY3VtZW50LmNvb2tpZSA9ICJUb2tlbj0gOyBleHBpcmVzID0gVGh1LCAwMSBKYW4gMTk3MCAwMDowMDowMCBHTVQiOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZygiU2hvdyBjb250ZW50IChtZW51S2V5KToiLCBtZW51S2V5KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgfQ0KICAgICAgICAvLyBUYWJlbGxlIGVyc3RlbGxlbiAoZmFsbHMgYmVuw7Z0aWd0KQ0KICAgICAgICB2YXIgdGFibGVIZWFkZXIgPSBtZW51SXRlbXNbdGhpcy5tZW51SURdLnRhYmxlSGVhZGVyOw0KICAgICAgICBpZiAodGFibGVIZWFkZXIubGVuZ3RoID4gMCkgew0KICAgICAgICAgICAgdmFyIHdyYXBwZXIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJESVYiKTsNCiAgICAgICAgICAgIGRvYy5hcHBlbmRDaGlsZCh3cmFwcGVyKTsNCiAgICAgICAgICAgIHdyYXBwZXIuc2V0QXR0cmlidXRlKCJpZCIsICJib3gtd3JhcHBlciIpOw0KICAgICAgICAgICAgdmFyIHRhYmxlID0gdGhpcy5jcmVhdGVUQUJMRSgpOw0KICAgICAgICAgICAgd3JhcHBlci5hcHBlbmRDaGlsZCh0YWJsZSk7DQogICAgICAgICAgICB2YXIgaGVhZGVyID0gdGhpcy5jcmVhdGVUYWJsZVJvdygpOw0KICAgICAgICAgICAgdGFibGUuYXBwZW5kQ2hpbGQoaGVhZGVyKTsNCiAgICAgICAgICAgIC8vIEtvcGZ6ZWlsZSBkZXIgVGFibGxlDQogICAgICAgICAgICB0YWJsZUhlYWRlci5mb3JFYWNoKGVsZW1lbnQgPT4gew0KICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZWxlbWVudDsNCiAgICAgICAgICAgICAgICBpZiAoZWxlbWVudCA9PSAiQlVMSyIpIHsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiQlVMS19IRUFEIjsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGZhbHNlOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBpZiAobWVudUtleSA9PSAibWFwcGluZyIpIHsNCiAgICAgICAgICAgICAgICAgICAgaWYgKGVsZW1lbnQgPT0gInt7Lm1hcHBpbmcudGFibGUuY2hOb319Iikgew0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5vbmNsaWNrID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwub25jbGlja0Z1bmt0aW9uID0gImphdmFzY3JpcHQ6IHNvcnRUYWJsZSgxKTsiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC50ZENsYXNzTmFtZSA9ICJzb3J0VGhpcyI7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgaWYgKGVsZW1lbnQgPT0gInt7Lm1hcHBpbmcudGFibGUuY2hhbm5lbE5hbWV9fSIpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwub25jbGljayA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLm9uY2xpY2tGdW5rdGlvbiA9ICJqYXZhc2NyaXB0OiBzb3J0VGFibGUoMyk7IjsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBpZiAoZWxlbWVudCA9PSAie3subWFwcGluZy50YWJsZS5wbGF5bGlzdH19Iikgew0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5vbmNsaWNrID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwub25jbGlja0Z1bmt0aW9uID0gImphdmFzY3JpcHQ6IHNvcnRUYWJsZSg0KTsiOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIGlmIChlbGVtZW50ID09ICJ7ey5tYXBwaW5nLnRhYmxlLmdyb3VwVGl0bGV9fSIpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwub25jbGljayA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLm9uY2xpY2tGdW5rdGlvbiA9ICJqYXZhc2NyaXB0OiBzb3J0VGFibGUoNSk7IjsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBoZWFkZXIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgfSk7DQogICAgICAgICAgICB0YWJsZS5hcHBlbmRDaGlsZChoZWFkZXIpOw0KICAgICAgICAgICAgLy8gSW5oYWx0IGRlciBUYWJlbGxlDQogICAgICAgICAgICB2YXIgcm93cyA9IHRoaXMuY3JlYXRlVGFibGVDb250ZW50KG1lbnVLZXkpOw0KICAgICAgICAgICAgcm93cy5mb3JFYWNoKHRyID0+IHsNCiAgICAgICAgICAgICAgICB0YWJsZS5hcHBlbmRDaGlsZCh0cik7DQogICAgICAgICAgICB9KTsNCiAgICAgICAgfQ0KICAgICAgICBzd2l0Y2ggKG1lbnVLZXkpIHsNCiAgICAgICAgICAgIGNhc2UgIm1hcHBpbmciOg0KICAgICAgICAgICAgICAgIHNvcnRUYWJsZSgxKTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImZpbHRlciI6DQogICAgICAgICAgICAgICAgc2hvd1ByZXZpZXcodHJ1ZSk7DQogICAgICAgICAgICAgICAgc29ydFRhYmxlKDApOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgICAgICBDT0xVTU5fVE9fU09SVCA9IC0xOw0KICAgICAgICAgICAgICAgIHNvcnRUYWJsZSgwKTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgfQ0KICAgICAgICBzaG93RWxlbWVudCgibG9hZGluZyIsIGZhbHNlKTsNCiAgICB9DQp9DQpmdW5jdGlvbiBQYWdlUmVhZHkoKSB7DQogICAgbGV0IHNlcnZlciA9IG5ldyBTZXJ2ZXIoImdldFNlcnZlckNvbmZpZyIpOw0KICAgIHNlcnZlci5yZXF1ZXN0KHt9KTsNCiAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigicmVzaXplIiwgZnVuY3Rpb24gKCkgew0KICAgICAgICBjYWxjdWxhdGVXcmFwcGVySGVpZ2h0KCk7DQogICAgfSwgdHJ1ZSk7DQogICAgc2V0SW50ZXJ2YWwoZnVuY3Rpb24gKCkgew0KICAgICAgICB1cGRhdGVMb2coKTsNCiAgICB9LCAxMDAwMCk7DQogICAgcmV0dXJuOw0KfQ0KZnVuY3Rpb24gY3JlYXRlTGF5b3V0KCkgew0KICAgIC8vIENsaWVudCBJbmZvDQogICAgbGV0IG9iaiA9IFNFUlZFUlsiY2xpZW50SW5mbyJdOw0KICAgIGxldCBrZXlzID0gZ2V0T2JqS2V5cyhvYmopOw0KICAgIGZvciAodmFyIGkgPSAwOyBpIDwga2V5cy5sZW5ndGg7IGkrKykgew0KICAgICAgICBpZiAoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoa2V5c1tpXSkpIHsNCiAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGtleXNbaV0pLmlubmVySFRNTCA9IG9ialtrZXlzW2ldXTsNCiAgICAgICAgfQ0KICAgIH0NCiAgICBpZiAoIWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJtYWluLW1lbnUiKSkgew0KICAgICAgICByZXR1cm47DQogICAgfQ0KICAgIC8vIE1lbsO8IGVyc3RlbGxlbg0KICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJtYWluLW1lbnUiKS5pbm5lckhUTUwgPSAiIjsNCiAgICBmb3IgKGxldCBpID0gMDsgaSA8IG1lbnVJdGVtcy5sZW5ndGg7IGkrKykgew0KICAgICAgICBtZW51SXRlbXNbaV0uaWQgPSBpOw0KICAgICAgICBzd2l0Y2ggKG1lbnVJdGVtc1tpXVsibWVudUtleSJdKSB7DQogICAgICAgICAgICBjYXNlICJ1c2VycyI6DQogICAgICAgICAgICBjYXNlICJsb2dvdXQiOg0KICAgICAgICAgICAgICAgIGlmIChTRVJWRVJbInNldHRpbmdzIl1bImF1dGhlbnRpY2F0aW9uLndlYiJdID09IHRydWUpIHsNCiAgICAgICAgICAgICAgICAgICAgbWVudUl0ZW1zW2ldLmNyZWF0ZUl0ZW0oKTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJtYXBwaW5nIjoNCiAgICAgICAgICAgIGNhc2UgInhtbHR2IjoNCiAgICAgICAgICAgICAgICBpZiAoU0VSVkVSWyJjbGllbnRJbmZvIl1bImVwZ1NvdXJjZSJdID09ICJYRVBHIikgew0KICAgICAgICAgICAgICAgICAgICBtZW51SXRlbXNbaV0uY3JlYXRlSXRlbSgpOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICAgICAgbWVudUl0ZW1zW2ldLmNyZWF0ZUl0ZW0oKTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgfQ0KICAgIH0NCiAgICByZXR1cm47DQp9DQpmdW5jdGlvbiBvcGVuVGhpc01lbnUoZWxlbWVudCkgew0KICAgIGxldCBpZCA9IGVsZW1lbnQuaWQ7DQogICAgbGV0IGNvbnRlbnQgPSBuZXcgU2hvd0NvbnRlbnQoaWQpOw0KICAgIGNvbnRlbnQuc2hvdygpOw0KICAgIGNhbGN1bGF0ZVdyYXBwZXJIZWlnaHQoKTsNCiAgICByZXR1cm47DQp9DQpjbGFzcyBQb3B1cFdpbmRvdyB7DQogICAgY29uc3RydWN0b3IoKSB7DQogICAgICAgIHRoaXMuRG9jdW1lbnRJRCA9ICJwb3B1cC1jdXN0b20iOw0KICAgICAgICB0aGlzLkludGVyYWN0aW9uSUQgPSAiaW50ZXJhY3Rpb24iOw0KICAgICAgICB0aGlzLmRvYyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHRoaXMuRG9jdW1lbnRJRCk7DQogICAgfQ0KICAgIGNyZWF0ZVRpdGxlKHRpdGxlKSB7DQogICAgICAgIGxldCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgIHRkLmNsYXNzTmFtZSA9ICJsZWZ0IjsNCiAgICAgICAgdGQuaW5uZXJIVE1MID0gdGl0bGUgKyAiOiI7DQogICAgICAgIHJldHVybiB0ZDsNCiAgICB9DQogICAgY3JlYXRlQ29udGVudChlbGVtZW50KSB7DQogICAgICAgIGxldCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgIHRkLmFwcGVuZENoaWxkKGVsZW1lbnQpOw0KICAgICAgICByZXR1cm4gdGQ7DQogICAgfQ0KICAgIGNyZWF0ZUludGVyYWN0aW9uKCkgew0KICAgICAgICBsZXQgZGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7DQogICAgICAgIGRpdi5zZXRBdHRyaWJ1dGUoImlkIiwgInBvcHVwLWludGVyYWN0aW9uIik7DQogICAgICAgIGRpdi5jbGFzc05hbWUgPSAiaW50ZXJhY3Rpb24iOw0KICAgICAgICB0aGlzLmRvYy5hcHBlbmRDaGlsZChkaXYpOw0KICAgIH0NCn0NCmNsYXNzIFBvcHVwQ29udGVudCBleHRlbmRzIFBvcHVwV2luZG93IHsNCiAgICBjb25zdHJ1Y3RvcigpIHsNCiAgICAgICAgc3VwZXIoLi4uYXJndW1lbnRzKTsNCiAgICAgICAgdGhpcy50YWJsZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlRBQkxFIik7DQogICAgfQ0KICAgIGNyZWF0ZUhlYWRsaW5lKGhlYWRsaW5lKSB7DQogICAgICAgIHRoaXMuZG9jLmlubmVySFRNTCA9ICIiOw0KICAgICAgICB2YXIgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIkgzIik7DQogICAgICAgIGVsZW1lbnQuaW5uZXJIVE1MID0gaGVhZGxpbmUudG9VcHBlckNhc2UoKTsNCiAgICAgICAgdGhpcy5kb2MuYXBwZW5kQ2hpbGQoZWxlbWVudCk7DQogICAgICAgIC8vIFRhYmVsbGUgZXJzdGVsbGVuDQogICAgICAgIHRoaXMudGFibGUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJUQUJMRSIpOw0KICAgICAgICB0aGlzLmRvYy5hcHBlbmRDaGlsZCh0aGlzLnRhYmxlKTsNCiAgICB9DQogICAgYXBwZW5kUm93KHRpdGxlLCBlbGVtZW50KSB7DQogICAgICAgIGxldCB0ciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlRSIik7DQogICAgICAgIC8vIEJlemVpY2hudW5nDQogICAgICAgIGlmICh0aXRsZS5sZW5ndGggIT0gMCkgew0KICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQodGhpcy5jcmVhdGVUaXRsZSh0aXRsZSkpOw0KICAgICAgICB9DQogICAgICAgIC8vIENvbnRlbnQNCiAgICAgICAgdHIuYXBwZW5kQ2hpbGQodGhpcy5jcmVhdGVDb250ZW50KGVsZW1lbnQpKTsNCiAgICAgICAgdGhpcy50YWJsZS5hcHBlbmRDaGlsZCh0cik7DQogICAgfQ0KICAgIGNyZWF0ZUlucHV0KHR5cGUsIG5hbWUsIHZhbHVlKSB7DQogICAgICAgIGxldCBpbnB1dCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIklOUFVUIik7DQogICAgICAgIGlmICh2YWx1ZSA9PSB1bmRlZmluZWQpIHsNCiAgICAgICAgICAgIHZhbHVlID0gIiI7DQogICAgICAgIH0NCiAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJ0eXBlIiwgdHlwZSk7DQogICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgibmFtZSIsIG5hbWUpOw0KICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInZhbHVlIiwgdmFsdWUpOw0KICAgICAgICByZXR1cm4gaW5wdXQ7DQogICAgfQ0KICAgIGNyZWF0ZUNoZWNrYm94KG5hbWUpIHsNCiAgICAgICAgbGV0IGlucHV0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiSU5QVVQiKTsNCiAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJ0eXBlIiwgImNoZWNrYm94Iik7DQogICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgibmFtZSIsIG5hbWUpOw0KICAgICAgICByZXR1cm4gaW5wdXQ7DQogICAgfQ0KICAgIC8vIENyZWF0ZXMgYSBzZWxlY3Rpb24gb2YgbXVsdGlwbGUgb3B0aW9ucyB2YWx1ZXMgd2l0aCB0ZXh0IGRlc2NyaXB0aW9ucw0KICAgIGNyZWF0ZVNlbGVjdCh0ZXh0LCB2YWx1ZXMsIHNldCwgZGJLZXkpIHsNCiAgICAgICAgbGV0IHNlbGVjdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlNFTEVDVCIpOw0KICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJuYW1lIiwgZGJLZXkpOw0KICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRleHQubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgICAgIGxldCBvcHRpb24gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJPUFRJT04iKTsNCiAgICAgICAgICAgIG9wdGlvbi5zZXRBdHRyaWJ1dGUoInZhbHVlIiwgdmFsdWVzW2ldKTsNCiAgICAgICAgICAgIG9wdGlvbi5pbm5lclRleHQgPSB0ZXh0W2ldOw0KICAgICAgICAgICAgc2VsZWN0LmFwcGVuZENoaWxkKG9wdGlvbik7DQogICAgICAgIH0NCiAgICAgICAgaWYgKHNldCAhPSAiIikgew0KICAgICAgICAgICAgc2VsZWN0LnZhbHVlID0gc2V0Ow0KICAgICAgICB9DQogICAgICAgIGlmIChzZXQgPT0gdW5kZWZpbmVkKSB7DQogICAgICAgICAgICBzZWxlY3QudmFsdWUgPSB2YWx1ZXNbMF07DQogICAgICAgIH0NCiAgICAgICAgcmV0dXJuIHNlbGVjdDsNCiAgICB9DQogICAgc2VsZWN0T3B0aW9uKHNlbGVjdCwgdmFsdWUpIHsNCiAgICAgICAgLy9zZWxlY3Quc2VsZWN0ZWRPcHRpb25zID0gdmFsdWUNCiAgICAgICAgbGV0IHMgPSBzZWxlY3Q7DQogICAgICAgIHMub3B0aW9uc1tzLnNlbGVjdGVkSW5kZXhdLnZhbHVlID0gdmFsdWU7DQogICAgICAgIHJldHVybiBzZWxlY3Q7DQogICAgfQ0KICAgIGRlc2NyaXB0aW9uKHZhbHVlKSB7DQogICAgICAgIGxldCB0ciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlRSIik7DQogICAgICAgIGxldCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgIGxldCBzcGFuID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiUFJFIik7DQogICAgICAgIHNwYW4uaW5uZXJIVE1MID0gdmFsdWU7DQogICAgICAgIHRyLmFwcGVuZENoaWxkKHRkKTsNCiAgICAgICAgdHIuYXBwZW5kQ2hpbGQodGhpcy5jcmVhdGVDb250ZW50KHNwYW4pKTsNCiAgICAgICAgdGhpcy50YWJsZS5hcHBlbmRDaGlsZCh0cik7DQogICAgfQ0KICAgIC8vIEludGVyYWt0aW9uDQogICAgYWRkSW50ZXJhY3Rpb24oZWxlbWVudCkgew0KICAgICAgICBsZXQgaW50ZXJhY3Rpb24gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicG9wdXAtaW50ZXJhY3Rpb24iKTsNCiAgICAgICAgaW50ZXJhY3Rpb24uYXBwZW5kQ2hpbGQoZWxlbWVudCk7DQogICAgfQ0KfQ0KZnVuY3Rpb24gb3BlblBvcFVwKGRhdGFUeXBlLCBlbGVtZW50KSB7DQogICAgbGV0IGRhdGEgPSB7fTsNCiAgICBsZXQgaWQ7DQogICAgc3dpdGNoIChlbGVtZW50KSB7DQogICAgICAgIGNhc2UgdW5kZWZpbmVkOg0KICAgICAgICAgICAgc3dpdGNoIChkYXRhVHlwZSkgew0KICAgICAgICAgICAgICAgIGNhc2UgImdyb3VwLXRpdGxlIjoNCiAgICAgICAgICAgICAgICAgICAgaWYgKGlkID09IHVuZGVmaW5lZCkgew0KICAgICAgICAgICAgICAgICAgICAgICAgaWQgPSAtMTsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBkYXRhID0gZ2V0TG9jYWxEYXRhKCJmaWx0ZXIiLCBpZCk7DQogICAgICAgICAgICAgICAgICAgIGRhdGFbInR5cGUiXSA9ICJncm91cC10aXRsZSI7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgImN1c3RvbS1maWx0ZXIiOg0KICAgICAgICAgICAgICAgICAgICBpZiAoaWQgPT0gdW5kZWZpbmVkKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBpZCA9IC0xOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIGRhdGEgPSBnZXRMb2NhbERhdGEoImZpbHRlciIsIGlkKTsNCiAgICAgICAgICAgICAgICAgICAgZGF0YVsidHlwZSJdID0gImN1c3RvbS1maWx0ZXIiOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBkZWZhdWx0Og0KICAgICAgICAgICAgICAgICAgICBkYXRhWyJpZC5wcm92aWRlciJdID0gIi0iOw0KICAgICAgICAgICAgICAgICAgICBkYXRhWyJ0eXBlIl0gPSBkYXRhVHlwZTsNCiAgICAgICAgICAgICAgICAgICAgaWQgPSAiLSI7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICBpZCA9IGVsZW1lbnQuaWQ7DQogICAgICAgICAgICBkYXRhID0gZ2V0TG9jYWxEYXRhKGRhdGFUeXBlLCBpZCk7DQogICAgICAgICAgICBicmVhazsNCiAgICB9DQogICAgbGV0IGNvbnRlbnQgPSBuZXcgUG9wdXBDb250ZW50KCk7DQogICAgc3dpdGNoIChkYXRhVHlwZSkgew0KICAgICAgICBjYXNlICJwbGF5bGlzdCI6DQogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUhlYWRsaW5lKCJ7ey5wbGF5bGlzdC5wbGF5bGlzdFR5cGUudGl0bGV9fSIpOw0KICAgICAgICAgICAgLy8gVHlwZQ0KICAgICAgICAgICAgdmFyIHRleHQgPSBbIk0zVSIsICJIREhvbWVSdW4iXTsNCiAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBbImphdmFzY3JpcHQ6IG9wZW5Qb3BVcCgnbTN1JykiLCAiamF2YXNjcmlwdDogb3BlblBvcFVwKCdoZGhyJykiXTsNCiAgICAgICAgICAgIHZhciBzZWxlY3QgPSBjb250ZW50LmNyZWF0ZVNlbGVjdCh0ZXh0LCB2YWx1ZXMsICIiLCAidHlwZSIpOw0KICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgiaWQiLCAidHlwZSIpOw0KICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAnamF2YXNjcmlwdDogY2hhbmdlQnV0dG9uQWN0aW9uKHRoaXMsICJuZXh0IiwgIm9uY2xpY2siKScpOyAvLyBjaGFuZ2VCdXR0b25BY3Rpb24NCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5wbGF5bGlzdC50eXBlLnRpdGxlfX0iLCBzZWxlY3QpOw0KICAgICAgICAgICAgLy8gSW50ZXJha3Rpb24NCiAgICAgICAgICAgIGNvbnRlbnQuY3JlYXRlSW50ZXJhY3Rpb24oKTsNCiAgICAgICAgICAgIC8vIEFiYnJlY2hlbg0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImNhbmNlbCIsICJ7ey5idXR0b24uY2FuY2VsfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBzaG93RWxlbWVudCgicG9wdXAiLCBmYWxzZSk7Jyk7DQogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIC8vIFdlaXRlcg0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgIm5leHQiLCAie3suYnV0dG9uLm5leHR9fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgibTN1IiknKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgiaWQiLCAnbmV4dCcpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSAibTN1IjoNCiAgICAgICAgICAgIGNvbnRlbnQuY3JlYXRlSGVhZGxpbmUoZGF0YVR5cGUpOw0KICAgICAgICAgICAgLy8gTmFtZQ0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gIm5hbWUiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnBsYXlsaXN0Lm5hbWUucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnBsYXlsaXN0Lm5hbWUudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIEJlc2NocmVpYnVuZw0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gImRlc2NyaXB0aW9uIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5wbGF5bGlzdC5kZXNjcmlwdGlvbi5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sucGxheWxpc3QuZGVzY3JpcHRpb24udGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIFVSTA0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gImZpbGUuc291cmNlIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5wbGF5bGlzdC5maWxlTTNVLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5wbGF5bGlzdC5maWxlTTNVLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBUdW5lcg0KICAgICAgICAgICAgaWYgKFNFUlZFUlsic2V0dGluZ3MiXVsiYnVmZmVyIl0gIT0gIi0iKSB7DQogICAgICAgICAgICAgICAgdmFyIHRleHQgPSBbXTsNCiAgICAgICAgICAgICAgICB2YXIgdmFsdWVzID0gW107DQogICAgICAgICAgICAgICAgZm9yICh2YXIgaSA9IDE7IGkgPD0gMTAwOyBpKyspIHsNCiAgICAgICAgICAgICAgICAgICAgdGV4dC5wdXNoKGkudG9TdHJpbmcoKSk7DQogICAgICAgICAgICAgICAgICAgIHZhbHVlcy5wdXNoKGkudG9TdHJpbmcoKSk7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIHZhciBkYktleSA9ICJ0dW5lciI7DQogICAgICAgICAgICAgICAgdmFyIHNlbGVjdCA9IGNvbnRlbnQuY3JlYXRlU2VsZWN0KHRleHQsIHZhbHVlcywgZGF0YVtkYktleV0sIGRiS2V5KTsNCiAgICAgICAgICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJvbmZvY3VzIiwgImphdmFzY3JpcHQ6IHJldHVybjsiKTsNCiAgICAgICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sucGxheWxpc3QudHVuZXIudGl0bGV9fSIsIHNlbGVjdCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICB2YXIgZGJLZXkgPSAidHVuZXIiOw0KICAgICAgICAgICAgICAgIGlmIChkYXRhW2RiS2V5XSA9PSB1bmRlZmluZWQpIHsNCiAgICAgICAgICAgICAgICAgICAgZGF0YVtkYktleV0gPSAxOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInJlYWRvbmx5IiwgInRydWUiKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5jbGFzc05hbWUgPSAibm90QXZhaWxhYmxlIjsNCiAgICAgICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sucGxheWxpc3QudHVuZXIudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGNvbnRlbnQuZGVzY3JpcHRpb24oInt7LnBsYXlsaXN0LnR1bmVyLmRlc2NyaXB0aW9ufX0iKTsNCiAgICAgICAgICAgIC8vIEludGVyYWt0aW9uDQogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUludGVyYWN0aW9uKCk7DQogICAgICAgICAgICAvLyBMw7ZzY2hlbg0KICAgICAgICAgICAgaWYgKGRhdGFbImlkLnByb3ZpZGVyIl0gIT0gIi0iKSB7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImRlbGV0ZSIsICJ7ey5idXR0b24uZGVsZXRlfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5jbGFzc05hbWUgPSAiZGVsZXRlIjsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogc2F2ZVBvcHVwRGF0YSgibTN1IiwgIicgKyBpZCArICciLCB0cnVlLCAwKScpOw0KICAgICAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgZWxzZSB7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImJhY2siLCAie3suYnV0dG9uLmJhY2t9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoInBsYXlsaXN0IiknKTsNCiAgICAgICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIC8vIEFiYnJlY2hlbg0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImNhbmNlbCIsICJ7ey5idXR0b24uY2FuY2VsfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBzaG93RWxlbWVudCgicG9wdXAiLCBmYWxzZSk7Jyk7DQogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIC8vIEFrdHVhbGlzaWVyZW4NCiAgICAgICAgICAgIGlmIChkYXRhWyJpZC5wcm92aWRlciJdICE9ICItIikgew0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJ1cGRhdGUiLCAie3suYnV0dG9uLnVwZGF0ZX19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoIm0zdSIsICInICsgaWQgKyAnIiwgZmFsc2UsIDEpJyk7DQogICAgICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICAvLyBTcGVpY2hlcm4NCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJzYXZlIiwgInt7LmJ1dHRvbi5zYXZlfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBzYXZlUG9wdXBEYXRhKCJtM3UiLCAiJyArIGlkICsgJyIsIGZhbHNlLCAwKScpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSAiaGRociI6DQogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUhlYWRsaW5lKGRhdGFUeXBlKTsNCiAgICAgICAgICAgIC8vIE5hbWUNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJuYW1lIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5wbGF5bGlzdC5uYW1lLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5wbGF5bGlzdC5uYW1lLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBCZXNjaHJlaWJ1bmcNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJkZXNjcmlwdGlvbiI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3sucGxheWxpc3QuZGVzY3JpcHRpb24ucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnBsYXlsaXN0LmRlc2NyaXB0aW9uLnBsYWNlaG9sZGVyfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBVUkwNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJmaWxlLnNvdXJjZSI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3sucGxheWxpc3QuZmlsZUhESFIucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnBsYXlsaXN0LmZpbGVIREhSLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBUdW5lcg0KICAgICAgICAgICAgaWYgKFNFUlZFUlsic2V0dGluZ3MiXVsiYnVmZmVyIl0gIT0gIi0iKSB7DQogICAgICAgICAgICAgICAgdmFyIHRleHQgPSBbXTsNCiAgICAgICAgICAgICAgICB2YXIgdmFsdWVzID0gW107DQogICAgICAgICAgICAgICAgZm9yICh2YXIgaSA9IDE7IGkgPD0gMTAwOyBpKyspIHsNCiAgICAgICAgICAgICAgICAgICAgdGV4dC5wdXNoKGkudG9TdHJpbmcoKSk7DQogICAgICAgICAgICAgICAgICAgIHZhbHVlcy5wdXNoKGkudG9TdHJpbmcoKSk7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIHZhciBkYktleSA9ICJ0dW5lciI7DQogICAgICAgICAgICAgICAgdmFyIHNlbGVjdCA9IGNvbnRlbnQuY3JlYXRlU2VsZWN0KHRleHQsIHZhbHVlcywgZGF0YVtkYktleV0sIGRiS2V5KTsNCiAgICAgICAgICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJvbmZvY3VzIiwgImphdmFzY3JpcHQ6IHJldHVybjsiKTsNCiAgICAgICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sucGxheWxpc3QudHVuZXIudGl0bGV9fSIsIHNlbGVjdCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICB2YXIgZGJLZXkgPSAidHVuZXIiOw0KICAgICAgICAgICAgICAgIGlmIChkYXRhW2RiS2V5XSA9PSB1bmRlZmluZWQpIHsNCiAgICAgICAgICAgICAgICAgICAgZGF0YVtkYktleV0gPSAxOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInJlYWRvbmx5IiwgInRydWUiKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5jbGFzc05hbWUgPSAibm90QXZhaWxhYmxlIjsNCiAgICAgICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sucGxheWxpc3QudHVuZXIudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGNvbnRlbnQuZGVzY3JpcHRpb24oInt7LnBsYXlsaXN0LnR1bmVyLmRlc2NyaXB0aW9ufX0iKTsNCiAgICAgICAgICAgIC8vIEludGVyYWt0aW9uDQogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUludGVyYWN0aW9uKCk7DQogICAgICAgICAgICAvLyBMw7ZzY2hlbg0KICAgICAgICAgICAgaWYgKGRhdGFbImlkLnByb3ZpZGVyIl0gIT0gIi0iKSB7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImRlbGV0ZSIsICJ7ey5idXR0b24uZGVsZXRlfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogc2F2ZVBvcHVwRGF0YSgiaGRociIsICInICsgaWQgKyAnIiwgdHJ1ZSwgMCknKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5jbGFzc05hbWUgPSAiZGVsZXRlIjsNCiAgICAgICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJiYWNrIiwgInt7LmJ1dHRvbi5iYWNrfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJwbGF5bGlzdCIpJyk7DQogICAgICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICAvLyBBYmJyZWNoZW4NCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJjYW5jZWwiLCAie3suYnV0dG9uLmNhbmNlbH19Iik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogc2hvd0VsZW1lbnQoInBvcHVwIiwgZmFsc2UpOycpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICAvLyBBa3R1YWxpc2llcmVuDQogICAgICAgICAgICBpZiAoZGF0YVsiaWQucHJvdmlkZXIiXSAhPSAiLSIpIHsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAidXBkYXRlIiwgInt7LmJ1dHRvbi51cGRhdGV9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBzYXZlUG9wdXBEYXRhKCJoZGhyIiwgIicgKyBpZCArICciLCBmYWxzZSwgMSknKTsNCiAgICAgICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIC8vIFNwZWljaGVybg0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgInNhdmUiLCAie3suYnV0dG9uLnNhdmV9fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoImhkaHIiLCAiJyArIGlkICsgJyIsIGZhbHNlLCAwKScpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSAiZmlsdGVyIjoNCiAgICAgICAgICAgIGNvbnRlbnQuY3JlYXRlSGVhZGxpbmUoZGF0YVR5cGUpOw0KICAgICAgICAgICAgLy8gVHlwZQ0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gInR5cGUiOw0KICAgICAgICAgICAgdmFyIHRleHQgPSBbIk0zVTogIiArICJ7ey5maWx0ZXIudHlwZS5ncm91cFRpdGxlfX0iLCAieFRlVmU6ICIgKyAie3suZmlsdGVyLnR5cGUuY3VzdG9tRmlsdGVyfX0iXTsNCiAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBbImphdmFzY3JpcHQ6IG9wZW5Qb3BVcCgnZ3JvdXAtdGl0bGUnKSIsICJqYXZhc2NyaXB0OiBvcGVuUG9wVXAoJ2N1c3RvbS1maWx0ZXInKSJdOw0KICAgICAgICAgICAgdmFyIHNlbGVjdCA9IGNvbnRlbnQuY3JlYXRlU2VsZWN0KHRleHQsIHZhbHVlcywgImphdmFzY3JpcHQ6IG9wZW5Qb3BVcCgnZ3JvdXAtdGl0bGUnKSIsIGRiS2V5KTsNCiAgICAgICAgICAgIHNlbGVjdC5zZXRBdHRyaWJ1dGUoImlkIiwgaWQpOw0KICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAnamF2YXNjcmlwdDogY2hhbmdlQnV0dG9uQWN0aW9uKHRoaXMsICJuZXh0IiwgIm9uY2xpY2siKTsnKTsgLy8gY2hhbmdlQnV0dG9uQWN0aW9uDQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3suZmlsdGVyLnR5cGUudGl0bGV9fSIsIHNlbGVjdCk7DQogICAgICAgICAgICAvLyBJbnRlcmFrdGlvbg0KICAgICAgICAgICAgY29udGVudC5jcmVhdGVJbnRlcmFjdGlvbigpOw0KICAgICAgICAgICAgLy8gQWJicmVjaGVuDQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAiY2FuY2VsIiwgInt7LmJ1dHRvbi5jYW5jZWx9fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IHNob3dFbGVtZW50KCJwb3B1cCIsIGZhbHNlKTsnKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgLy8gV2VpdGVyDQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAibmV4dCIsICJ7ey5idXR0b24ubmV4dH19Iik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJncm91cC10aXRsZSIpJyk7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoImlkIiwgJ25leHQnKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGNhc2UgImN1c3RvbS1maWx0ZXIiOg0KICAgICAgICBjYXNlICJncm91cC10aXRsZSI6DQogICAgICAgICAgICBzd2l0Y2ggKGRhdGFUeXBlKSB7DQogICAgICAgICAgICAgICAgY2FzZSAiY3VzdG9tLWZpbHRlciI6DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuY3JlYXRlSGVhZGxpbmUoInt7LmZpbHRlci5jdXN0b219fSIgKyAiIEZpbHRlciIpOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBjYXNlICJncm91cC10aXRsZSI6DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuY3JlYXRlSGVhZGxpbmUoInt7LmZpbHRlci5ncm91cH19IiArICIgRmlsdGVyIik7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgLy8gTmFtZSAgICAgIA0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gIm5hbWUiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LmZpbHRlci5uYW1lLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5maWx0ZXIubmFtZS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgLy8gQmVzY2hyZWlidW5nDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAiZGVzY3JpcHRpb24iOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LmZpbHRlci5kZXNjcmlwdGlvbi5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3suZmlsdGVyLmRlc2NyaXB0aW9uLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBUeXANCiAgICAgICAgICAgIHZhciBkYktleSA9ICJ0eXBlIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImhpZGRlbiIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygiIiwgaW5wdXQpOw0KICAgICAgICAgICAgdmFyIGZpbHRlclR5cGUgPSBkYXRhW2RiS2V5XTsNCiAgICAgICAgICAgIHN3aXRjaCAoZmlsdGVyVHlwZSkgew0KICAgICAgICAgICAgICAgIGNhc2UgImN1c3RvbS1maWx0ZXIiOg0KICAgICAgICAgICAgICAgICAgICAvLyBHcm/Dny0gS2xlaW5zY2hyZWlidW5nIGJlYWNodGVuDQogICAgICAgICAgICAgICAgICAgIHZhciBkYktleSA9ICJjYXNlU2Vuc2l0aXZlIjsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChkYktleSk7DQogICAgICAgICAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhW2RiS2V5XTsNCiAgICAgICAgICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LmZpbHRlci5jYXNlU2Vuc2l0aXZlLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAgICAgICAgIC8vIEZpbHRlcnJlZ2VsIChCZW51dHplcmRlZmluaWVydCkNCiAgICAgICAgICAgICAgICAgICAgdmFyIGRiS2V5ID0gImZpbHRlciI7DQogICAgICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LmZpbHRlci5maWx0ZXJSdWxlLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LmZpbHRlci5maWx0ZXJSdWxlLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgImdyb3VwLXRpdGxlIjoNCiAgICAgICAgICAgICAgICAgICAgLy9hbGVydChkYktleSArICIgIiArIGZpbHRlclR5cGUpDQogICAgICAgICAgICAgICAgICAgIC8vIEZpbHRlciBiYXNpZXJlbmQgYXVmIGRlbiBHcnVwcGVuIGluIGRlciBNM1UNCiAgICAgICAgICAgICAgICAgICAgdmFyIGRiS2V5ID0gImZpbHRlciI7DQogICAgICAgICAgICAgICAgICAgIHZhciBncm91cHNNM1UgPSBnZXRMb2NhbERhdGEoIm0zdUdyb3VwcyIsICIiKTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHRleHQgPSBncm91cHNNM1VbInRleHQiXTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHZhbHVlcyA9IGdyb3Vwc00zVVsidmFsdWUiXTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHNlbGVjdCA9IGNvbnRlbnQuY3JlYXRlU2VsZWN0KHRleHQsIHZhbHVlcywgZGF0YVtkYktleV0sIGRiS2V5KTsNCiAgICAgICAgICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LmZpbHRlci5maWx0ZXJHcm91cC50aXRsZX19Iiwgc2VsZWN0KTsNCiAgICAgICAgICAgICAgICAgICAgY29udGVudC5kZXNjcmlwdGlvbigie3suZmlsdGVyLmZpbHRlckdyb3VwLmRlc2NyaXB0aW9ufX0iKTsNCiAgICAgICAgICAgICAgICAgICAgLy8gR3Jvw58tIEtsZWluc2NocmVpYnVuZyBiZWFjaHRlbg0KICAgICAgICAgICAgICAgICAgICB2YXIgZGJLZXkgPSAiY2FzZVNlbnNpdGl2ZSI7DQogICAgICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goZGJLZXkpOw0KICAgICAgICAgICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YVtkYktleV07DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5maWx0ZXIuY2FzZVNlbnNpdGl2ZS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgICAgICAgICB2YXIgZGJLZXkgPSAiaW5jbHVkZSI7DQogICAgICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LmZpbHRlci5pbmNsdWRlLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LmZpbHRlci5pbmNsdWRlLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuZGVzY3JpcHRpb24oInt7LmZpbHRlci5pbmNsdWRlLmRlc2NyaXB0aW9ufX0iKTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGRiS2V5ID0gImV4Y2x1ZGUiOw0KICAgICAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5maWx0ZXIuZXhjbHVkZS5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5maWx0ZXIuZXhjbHVkZS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgICAgICAgICBjb250ZW50LmRlc2NyaXB0aW9uKCJ7ey5maWx0ZXIuZXhjbHVkZS5kZXNjcmlwdGlvbn19Iik7DQogICAgICAgICAgICAgICAgICAgIC8vIFByZXNlcnZlIE0zVSBQbGF5bGlzdCBDaGFubmVsIE1hcHBpbmcNCiAgICAgICAgICAgICAgICAgICAgdmFyIGRiS2V5ID0gInByZXNlcnZlTWFwcGluZyI7DQogICAgICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goZGJLZXkpOw0KICAgICAgICAgICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YVtkYktleV07DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5maWx0ZXIucHJlc2VydmVNYXBwaW5nLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAgICAgICAgIC8vIFN0YXJ0aW5nIENoYW5uZWwgTnVtYmVyIE1hcHBpbmcNCiAgICAgICAgICAgICAgICAgICAgdmFyIGRiS2V5ID0gInN0YXJ0aW5nQ2hhbm5lbCI7DQogICAgICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LmZpbHRlci5zdGFydGluZ0NoYW5uZWwucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3suZmlsdGVyLnN0YXJ0aW5nQ2hhbm5lbC50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgICAgICAgICAvLyBGaWxsIE1pc3NpbmcgRVBHIERhdGENCiAgICAgICAgICAgICAgICAgICAgLy8gVGhlIGZvbGxvd2luZyBjb2RlIG9ubHkgd29ya3Mgd2hlbiB4VGVWZSBEdW1teSBhbHJlYWR5IGV4aXN0cw0KICAgICAgICAgICAgICAgICAgICAvLyB2YXIgZGJLZXk6c3RyaW5nID0gImRlZmF1bHRNaXNzaW5nRVBHIg0KICAgICAgICAgICAgICAgICAgICAvLyB2YXIgeG1sdHY6WE1MVFZGaWxlID0gbmV3IFhNTFRWRmlsZSgpDQogICAgICAgICAgICAgICAgICAgIC8vIHZhciBzZWxlY3QgPSB4bWx0di5nZXRQcm9ncmFtcygieFRlVmUgRHVtbXkiLCBkYXRhW2RiS2V5XSkNCiAgICAgICAgICAgICAgICAgICAgLy8gc2VsZWN0LnNldEF0dHJpYnV0ZSgibmFtZSIsIGRiS2V5KQ0KICAgICAgICAgICAgICAgICAgICAvLyBzZWxlY3Quc2V0QXR0cmlidXRlKCJpZCIsICJwb3B1cC1taXNzaW5nLWVwZyIpDQogICAgICAgICAgICAgICAgICAgIC8vIFRoZSB3b3JrYXJvdW5kIGlzIGN1cnJlbnRseSB0byBoYXJkIGNvZGUgdGhlIHhUZVZlIER1bW15IGRhdGENCiAgICAgICAgICAgICAgICAgICAgdmFyIGRiS2V5ID0gImRlZmF1bHRNaXNzaW5nRVBHIjsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGxpc3RPcHRpb25zID0geyAidGV4dCI6IFsiLSIsICIzMCBNaW51dGVzICgzMF9NaW51dGVzKSIsICI2MCBNaW51dGVzICg2MF9NaW51dGVzKSIsICI5MCBNaW51dGVzICg5MF9NaW51dGVzKSIsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgIjEyMCBNaW51dGVzICgxMjBfTWludXRlcykiLCAiMTgwIE1pbnV0ZXMgKDMwX01pbnV0ZXMpIiwgIjI0MCBNaW51dGVzICgzMF9NaW51dGVzKSIsICIzNjAgTWludXRlcyAoMzBfTWludXRlcykiXSwNCiAgICAgICAgICAgICAgICAgICAgICAgICJ2YWx1ZSI6IFsiLSIsICIzMF9NaW51dGVzIiwgIjYwX01pbnV0ZXMiLCAiOTBfTWludXRlcyIsICIxMjBfTWludXRlcyIsICIxODBfTWludXRlcyIsICIyNDBfTWludXRlcyIsICIzNjBfTWludXRlcyIsXSB9Ow0KICAgICAgICAgICAgICAgICAgICB2YXIgdGV4dCA9IGxpc3RPcHRpb25zWyJ0ZXh0Il07DQogICAgICAgICAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBsaXN0T3B0aW9uc1sidmFsdWUiXTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHNlbGVjdCA9IGNvbnRlbnQuY3JlYXRlU2VsZWN0KHRleHQsIHZhbHVlcywgZGF0YVtkYktleV0sIGRiS2V5KTsNCiAgICAgICAgICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LmZpbHRlci5kZWZhdWx0TWlzc2luZ0VQRy50aXRsZX19Iiwgc2VsZWN0KTsNCiAgICAgICAgICAgICAgICAgICAgY29udGVudC5kZXNjcmlwdGlvbigie3suZmlsdGVyLmRlZmF1bHRNaXNzaW5nRVBHLmRlc2NyaXB0aW9ufX0iKTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICB9DQogICAgICAgICAgICAvLyBJbnRlcmFrdGlvbg0KICAgICAgICAgICAgY29udGVudC5jcmVhdGVJbnRlcmFjdGlvbigpOw0KICAgICAgICAgICAgLy8gTMO2c2NoZW4NCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJkZWxldGUiLCAie3suYnV0dG9uLmRlbGV0ZX19Iik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogc2F2ZVBvcHVwRGF0YSgiZmlsdGVyIiwgIicgKyBpZCArICciLCB0cnVlLCAwKScpOw0KICAgICAgICAgICAgaW5wdXQuY2xhc3NOYW1lID0gImRlbGV0ZSI7DQogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIC8vIEFiYnJlY2hlbg0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImNhbmNlbCIsICJ7ey5idXR0b24uY2FuY2VsfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBzaG93RWxlbWVudCgicG9wdXAiLCBmYWxzZSk7Jyk7DQogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIC8vIFNwZWljaGVybg0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgInNhdmUiLCAie3suYnV0dG9uLnNhdmV9fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoImZpbHRlciIsICInICsgaWQgKyAnIiwgZmFsc2UsIDApJyk7DQogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJ4bWx0diI6DQogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUhlYWRsaW5lKGRhdGFUeXBlKTsNCiAgICAgICAgICAgIC8vIE5hbWUNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJuYW1lIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey54bWx0di5uYW1lLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey54bWx0di5uYW1lLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBCZXNjaHJlaWJ1bmcNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJkZXNjcmlwdGlvbiI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3sueG1sdHYuZGVzY3JpcHRpb24ucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnhtbHR2LmRlc2NyaXB0aW9uLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBVUkwNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJmaWxlLnNvdXJjZSI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3sueG1sdHYuZmlsZVhNTFRWLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey54bWx0di5maWxlWE1MVFYudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIEludGVyYWt0aW9uDQogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUludGVyYWN0aW9uKCk7DQogICAgICAgICAgICAvLyBMw7ZzY2hlbg0KICAgICAgICAgICAgaWYgKGRhdGFbImlkLnByb3ZpZGVyIl0gIT0gIi0iKSB7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImRlbGV0ZSIsICJ7ey5idXR0b24uZGVsZXRlfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogc2F2ZVBvcHVwRGF0YSgieG1sdHYiLCAiJyArIGlkICsgJyIsIHRydWUsIDApJyk7DQogICAgICAgICAgICAgICAgaW5wdXQuY2xhc3NOYW1lID0gImRlbGV0ZSI7DQogICAgICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICAvLyBBYmJyZWNoZW4NCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJjYW5jZWwiLCAie3suYnV0dG9uLmNhbmNlbH19Iik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogc2hvd0VsZW1lbnQoInBvcHVwIiwgZmFsc2UpOycpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICAvLyBBa3R1YWxpc2llcmVuDQogICAgICAgICAgICBpZiAoZGF0YVsiaWQucHJvdmlkZXIiXSAhPSAiLSIpIHsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAidXBkYXRlIiwgInt7LmJ1dHRvbi51cGRhdGV9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBzYXZlUG9wdXBEYXRhKCJ4bWx0diIsICInICsgaWQgKyAnIiwgZmFsc2UsIDEpJyk7DQogICAgICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICAvLyBTcGVpY2hlcm4NCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJzYXZlIiwgInt7LmJ1dHRvbi5zYXZlfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBzYXZlUG9wdXBEYXRhKCJ4bWx0diIsICInICsgaWQgKyAnIiwgZmFsc2UsIDApJyk7DQogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJ1c2VycyI6DQogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUhlYWRsaW5lKCJ7ey5tYWluTWVudS5pdGVtLnVzZXJzfX0iKTsNCiAgICAgICAgICAgIC8vIEJlbnV0emVybmFtZSANCiAgICAgICAgICAgIHZhciBkYktleSA9ICJ1c2VybmFtZSI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3sudXNlcnMudXNlcm5hbWUucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnVzZXJzLnVzZXJuYW1lLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBOZXVlcyBQYXNzd29ydCANCiAgICAgICAgICAgIHZhciBkYktleSA9ICJwYXNzd29yZCI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJwYXNzd29yZCIsIGRiS2V5LCAiIik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnVzZXJzLnBhc3N3b3JkLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey51c2Vycy5wYXNzd29yZC50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgLy8gQmVzdMOkdGlndW5nIA0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gImNvbmZpcm0iOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgicGFzc3dvcmQiLCBkYktleSwgIiIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey51c2Vycy5jb25maXJtLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey51c2Vycy5jb25maXJtLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBCZXJlY2h0aWd1bmcgV0VCDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAiYXV0aGVudGljYXRpb24ud2ViIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goZGJLZXkpOw0KICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGFbZGJLZXldOw0KICAgICAgICAgICAgaWYgKGRhdGFbImRlZmF1bHRVc2VyIl0gPT0gdHJ1ZSkgew0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICJqYXZhc2NyaXB0OiByZXR1cm4gZmFsc2UiKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey51c2Vycy53ZWIudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIEJlcmVjaHRpZ3VuZyBQTVMNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJhdXRoZW50aWNhdGlvbi5wbXMiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChkYktleSk7DQogICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YVtkYktleV07DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sudXNlcnMucG1zLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBCZXJlY2h0aWd1bmcgTTNVDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAiYXV0aGVudGljYXRpb24ubTN1IjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goZGJLZXkpOw0KICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGFbZGJLZXldOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnVzZXJzLm0zdS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgLy8gQmVyZWNodGlndW5nIFhNTA0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gImF1dGhlbnRpY2F0aW9uLnhtbCI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KGRiS2V5KTsNCiAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhW2RiS2V5XTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey51c2Vycy54bWwudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIEJlcmVjaHRpZ3VuZyBBUEkNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJhdXRoZW50aWNhdGlvbi5hcGkiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChkYktleSk7DQogICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YVtkYktleV07DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sudXNlcnMuYXBpLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBJbnRlcmFrdGlvbg0KICAgICAgICAgICAgY29udGVudC5jcmVhdGVJbnRlcmFjdGlvbigpOw0KICAgICAgICAgICAgLy8gTMO2c2NoZW4NCiAgICAgICAgICAgIGlmIChkYXRhWyJkZWZhdWx0VXNlciJdICE9IHRydWUgJiYgaWQgIT0gIi0iKSB7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImRlbGV0ZSIsICJ7ey5idXR0b24uZGVsZXRlfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5jbGFzc05hbWUgPSAiZGVsZXRlIjsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogc2F2ZVBvcHVwRGF0YSgiJyArIGRhdGFUeXBlICsgJyIsICInICsgaWQgKyAnIiwgdHJ1ZSwgMCknKTsNCiAgICAgICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIC8vIEFiYnJlY2hlbg0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImNhbmNlbCIsICJ7ey5idXR0b24uY2FuY2VsfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBzaG93RWxlbWVudCgicG9wdXAiLCBmYWxzZSk7Jyk7DQogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIC8vIFNwZWljaGVybg0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgInNhdmUiLCAie3suYnV0dG9uLnNhdmV9fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoIicgKyBkYXRhVHlwZSArICciLCAiJyArIGlkICsgJyIsICJmYWxzZSIpOycpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSAibWFwcGluZyI6DQogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUhlYWRsaW5lKCJ7ey5tYWluTWVudS5pdGVtLm1hcHBpbmd9fSIpOw0KICAgICAgICAgICAgLy8gQWt0aXYgDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAieC1hY3RpdmUiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChkYktleSk7DQogICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YVtkYktleV07DQogICAgICAgICAgICBpbnB1dC5pZCA9ICJhY3RpdmUiOw0KICAgICAgICAgICAgLy9pbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIikNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdG9nZ2xlQ2hhbm5lbFN0YXR1cygnIiArIGlkICsgIicsIHRoaXMpIik7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3subWFwcGluZy5hY3RpdmUudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIEthbmFsbmFtZSANCiAgICAgICAgICAgIHZhciBkYktleSA9ICJ4LW5hbWUiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICBpZiAoQlVMS19FRElUID09IHRydWUpIHsNCiAgICAgICAgICAgICAgICBpbnB1dC5zdHlsZS5ib3JkZXIgPSAic29saWQgMXB4IHJlZCI7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJyZWFkb25seSIsICJ0cnVlIik7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3subWFwcGluZy5jaGFubmVsTmFtZS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgY29udGVudC5kZXNjcmlwdGlvbihkYXRhWyJuYW1lIl0pOw0KICAgICAgICAgICAgLy8gQmVzY2hyZWlidW5nIA0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gIngtZGVzY3JpcHRpb24iOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7Lm1hcHBpbmcuZGVzY3JpcHRpb24ucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7Lm1hcHBpbmcuZGVzY3JpcHRpb24udGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIEFrdHVhbGlzaWVydW5nIGRlcyBLYW5hbG5hbWVucw0KICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoIl91dWlkLmtleSIpKSB7DQogICAgICAgICAgICAgICAgaWYgKGRhdGFbIl91dWlkLmtleSJdICE9ICIiKSB7DQogICAgICAgICAgICAgICAgICAgIHZhciBkYktleSA9ICJ4LXVwZGF0ZS1jaGFubmVsLW5hbWUiOw0KICAgICAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KGRiS2V5KTsNCiAgICAgICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YVtkYktleV07DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5tYXBwaW5nLnVwZGF0ZUNoYW5uZWxOYW1lLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgLy8gTG9nbyBVUkwgKEthbmFsKSANCiAgICAgICAgICAgIHZhciBkYktleSA9ICJ0dmctbG9nbyI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgiaWQiLCAiY2hhbm5lbC1pY29uIik7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3subWFwcGluZy5jaGFubmVsTG9nby50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgLy8gQWt0dWFsaXNpZXJ1bmcgZGVzIEthbmFsbG9nb3MNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJ4LXVwZGF0ZS1jaGFubmVsLWljb24iOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChkYktleSk7DQogICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YVtkYktleV07DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoImlkIiwgInVwZGF0ZS1pY29uIik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnOyBjaGFuZ2VDaGFubmVsTG9nbygnIiArIGlkICsgIicpOyIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7Lm1hcHBpbmcudXBkYXRlQ2hhbm5lbExvZ28udGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIEVyd2VpdGVybiBkZXIgRVBHIEthdGVnb3JpZQ0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gIngtY2F0ZWdvcnkiOw0KICAgICAgICAgICAgdmFyIHRleHQgPSBbIi0iLCAiS2lkcyAoRW1ieSBvbmx5KSIsICJOZXdzIiwgIk1vdmllIiwgIlNlcmllcyIsICJTcG9ydHMiXTsNCiAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBbIiIsICJLaWRzIiwgIk5ld3MiLCAiTW92aWUiLCAiU2VyaWVzIiwgIlNwb3J0cyJdOw0KICAgICAgICAgICAgdmFyIHNlbGVjdCA9IGNvbnRlbnQuY3JlYXRlU2VsZWN0KHRleHQsIHZhbHVlcywgZGF0YVtkYktleV0sIGRiS2V5KTsNCiAgICAgICAgICAgIHNlbGVjdC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3subWFwcGluZy5lcGdDYXRlZ29yeS50aXRsZX19Iiwgc2VsZWN0KTsNCiAgICAgICAgICAgIC8vIE0zVSBHcnVwcGVudGl0ZWwNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJ4LWdyb3VwLXRpdGxlIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7Lm1hcHBpbmcubTN1R3JvdXBUaXRsZS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgaWYgKGRhdGFbImdyb3VwLXRpdGxlIl0gIT0gdW5kZWZpbmVkKSB7DQogICAgICAgICAgICAgICAgY29udGVudC5kZXNjcmlwdGlvbihkYXRhWyJncm91cC10aXRsZSJdKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIC8vIFhNTFRWIERhdGVpDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAieC14bWx0di1maWxlIjsNCiAgICAgICAgICAgIHZhciB4bWxGaWxlID0gZGF0YVtkYktleV07DQogICAgICAgICAgICB2YXIgeG1sdHYgPSBuZXcgWE1MVFZGaWxlKCk7DQogICAgICAgICAgICB2YXIgc2VsZWN0ID0geG1sdHYuZ2V0RmlsZXMoZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgibmFtZSIsIGRiS2V5KTsNCiAgICAgICAgICAgIHNlbGVjdC5zZXRBdHRyaWJ1dGUoImlkIiwgInBvcHVwLXhtbHR2Iik7DQogICAgICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJzsgc2V0WG1sdHZDaGFubmVsKCciICsgaWQgKyAiJyx0aGlzKTsiKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5tYXBwaW5nLnhtbHR2RmlsZS50aXRsZX19Iiwgc2VsZWN0KTsNCiAgICAgICAgICAgIHZhciBmaWxlID0gZGF0YVtkYktleV07DQogICAgICAgICAgICAvLyBYTUxUViBNYXBwaW5nDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAieC1tYXBwaW5nIjsNCiAgICAgICAgICAgIHZhciB4bWx0diA9IG5ldyBYTUxUVkZpbGUoKTsNCiAgICAgICAgICAgIHZhciBzZWxlY3QgPSB4bWx0di5nZXRQcm9ncmFtcyhmaWxlLCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJuYW1lIiwgZGJLZXkpOw0KICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgiaWQiLCAicG9wdXAtbWFwcGluZyIpOw0KICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCc7IGNoZWNrWG1sdHZDaGFubmVsKCciICsgaWQgKyAiJyx0aGlzLCciICsgeG1sRmlsZSArICInKTsiKTsNCiAgICAgICAgICAgIHNvcnRTZWxlY3Qoc2VsZWN0KTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5tYXBwaW5nLnhtbHR2Q2hhbm5lbC50aXRsZX19Iiwgc2VsZWN0KTsNCiAgICAgICAgICAgIC8vIFRpbWVzaGlmdA0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gIngtdGltZXNoaWZ0IjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5tYXBwaW5nLnRpbWVzaGlmdC5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoImlkIiwgInRpbWVzaGlmdCIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7Lm1hcHBpbmcudGltZXNoaWZ0LnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBJbnRlcmFrdGlvbg0KICAgICAgICAgICAgY29udGVudC5jcmVhdGVJbnRlcmFjdGlvbigpOw0KICAgICAgICAgICAgLy8gTG9nbyBob2NobGFkZW4NCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJjYW5jZWwiLCAie3suYnV0dG9uLnVwbG9hZExvZ299fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IHVwbG9hZExvZ28oKTsnKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgLy8gQWJicmVjaGVuDQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAiY2FuY2VsIiwgInt7LmJ1dHRvbi5jYW5jZWx9fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IHNob3dFbGVtZW50KCJwb3B1cCIsIGZhbHNlKTsnKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgLy8gRmVydGlnDQogICAgICAgICAgICB2YXIgaWRzID0gW107DQogICAgICAgICAgICBpZHMgPSBnZXRBbGxTZWxlY3RlZENoYW5uZWxzKCk7DQogICAgICAgICAgICBpZiAoaWRzLmxlbmd0aCA9PSAwKSB7DQogICAgICAgICAgICAgICAgaWRzLnB1c2goaWQpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgInNhdmUiLCAie3suYnV0dG9uLmRvbmV9fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IGRvbmVQb3B1cERhdGEoIicgKyBkYXRhVHlwZSArICciLCAiJyArIGlkcyArICciLCAiZmFsc2UiKTsnKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICBicmVhazsNCiAgICB9DQogICAgc2hvd1BvcFVwRWxlbWVudCgncG9wdXAtY3VzdG9tJyk7DQp9DQpjbGFzcyBYTUxUVkZpbGUgew0KICAgIGdldEZpbGVzKHNldCkgew0KICAgICAgICBsZXQgZmlsZUlEcyA9IGdldE9iaktleXMoU0VSVkVSWyJ4ZXBnIl1bInhtbHR2TWFwIl0pOw0KICAgICAgICBsZXQgdmFsdWVzID0gbmV3IEFycmF5KCItIik7DQogICAgICAgIGxldCB0ZXh0ID0gbmV3IEFycmF5KCItIik7DQogICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgZmlsZUlEcy5sZW5ndGg7IGkrKykgew0KICAgICAgICAgICAgaWYgKGZpbGVJRHNbaV0gIT0gInhUZVZlIER1bW15Iikgew0KICAgICAgICAgICAgICAgIHZhbHVlcy5wdXNoKGdldFZhbHVlRnJvbVByb3ZpZGVyRmlsZShmaWxlSURzW2ldLCAieG1sdHYiLCAiZmlsZS54dGV2ZSIpKTsNCiAgICAgICAgICAgICAgICB0ZXh0LnB1c2goZ2V0VmFsdWVGcm9tUHJvdmlkZXJGaWxlKGZpbGVJRHNbaV0sICJ4bWx0diIsICJuYW1lIikpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgZWxzZSB7DQogICAgICAgICAgICAgICAgdmFsdWVzLnB1c2goZmlsZUlEc1tpXSk7DQogICAgICAgICAgICAgICAgdGV4dC5wdXNoKGZpbGVJRHNbaV0pOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQogICAgICAgIGxldCBzZWxlY3QgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJTRUxFQ1QiKTsNCiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0ZXh0Lmxlbmd0aDsgaSsrKSB7DQogICAgICAgICAgICB2YXIgb3B0aW9uID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiT1BUSU9OIik7DQogICAgICAgICAgICBvcHRpb24uc2V0QXR0cmlidXRlKCJ2YWx1ZSIsIHZhbHVlc1tpXSk7DQogICAgICAgICAgICBvcHRpb24uaW5uZXJUZXh0ID0gdGV4dFtpXTsNCiAgICAgICAgICAgIHNlbGVjdC5hcHBlbmRDaGlsZChvcHRpb24pOw0KICAgICAgICB9DQogICAgICAgIGlmIChzZXQgIT0gIiIpIHsNCiAgICAgICAgICAgIHNlbGVjdC52YWx1ZSA9IHNldDsNCiAgICAgICAgfQ0KICAgICAgICByZXR1cm4gc2VsZWN0Ow0KICAgIH0NCiAgICBnZXRQcm9ncmFtcyhmaWxlLCBzZXQpIHsNCiAgICAgICAgLy92YXIgZmlsZUlEczpzdHJpbmdbXSA9IGdldE9iaktleXMoU0VSVkVSWyJ4ZXBnIl1bInhtbHR2TWFwIl0pDQogICAgICAgIGxldCB2YWx1ZXMgPSBnZXRPYmpLZXlzKFNFUlZFUlsieGVwZyJdWyJ4bWx0dk1hcCJdW2ZpbGVdKTsNCiAgICAgICAgbGV0IHRleHQgPSBbXTsNCiAgICAgICAgbGV0IGRpc3BsYXlOYW1lOw0KICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHZhbHVlcy5sZW5ndGg7IGkrKykgew0KICAgICAgICAgICAgaWYgKFNFUlZFUlsieGVwZyJdWyJ4bWx0dk1hcCJdW2ZpbGVdW3ZhbHVlc1tpXV0uaGFzT3duUHJvcGVydHkoJ2Rpc3BsYXktbmFtZScpID09IHRydWUpIHsNCiAgICAgICAgICAgICAgICBkaXNwbGF5TmFtZSA9IFNFUlZFUlsieGVwZyJdWyJ4bWx0dk1hcCJdW2ZpbGVdW3ZhbHVlc1tpXV1bImRpc3BsYXktbmFtZSJdOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgZWxzZSB7DQogICAgICAgICAgICAgICAgZGlzcGxheU5hbWUgPSAiLSI7DQogICAgICAgICAgICB9DQogICAgICAgICAgICB0ZXh0W2ldID0gZGlzcGxheU5hbWUgKyAiICgiICsgdmFsdWVzW2ldICsgIikiOw0KICAgICAgICB9DQogICAgICAgIHRleHQudW5zaGlmdCgiLSIpOw0KICAgICAgICB2YWx1ZXMudW5zaGlmdCgiLSIpOw0KICAgICAgICBsZXQgc2VsZWN0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiU0VMRUNUIik7DQogICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGV4dC5sZW5ndGg7IGkrKykgew0KICAgICAgICAgICAgdmFyIG9wdGlvbiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIk9QVElPTiIpOw0KICAgICAgICAgICAgb3B0aW9uLnNldEF0dHJpYnV0ZSgidmFsdWUiLCB2YWx1ZXNbaV0pOw0KICAgICAgICAgICAgb3B0aW9uLmlubmVyVGV4dCA9IHRleHRbaV07DQogICAgICAgICAgICBzZWxlY3QuYXBwZW5kQ2hpbGQob3B0aW9uKTsNCiAgICAgICAgfQ0KICAgICAgICBpZiAoc2V0ICE9ICIiKSB7DQogICAgICAgICAgICBzZWxlY3QudmFsdWUgPSBzZXQ7DQogICAgICAgIH0NCiAgICAgICAgaWYgKHNlbGVjdC52YWx1ZSAhPSBzZXQpIHsNCiAgICAgICAgICAgIHNlbGVjdC52YWx1ZSA9ICItIjsNCiAgICAgICAgfQ0KICAgICAgICByZXR1cm4gc2VsZWN0Ow0KICAgIH0NCn0NCmZ1bmN0aW9uIGdldFZhbHVlRnJvbVByb3ZpZGVyRmlsZShmaWxlLCBmaWxlVHlwZSwga2V5KSB7DQogICAgaWYgKGZpbGUgPT0gInhUZVZlIER1bW15Iikgew0KICAgICAgICByZXR1cm4gZmlsZTsNCiAgICB9DQogICAgbGV0IGZpbGVJRDsNCiAgICBsZXQgaW5kaWNhdG9yID0gZmlsZS5jaGFyQXQoMCk7DQogICAgc3dpdGNoIChpbmRpY2F0b3IpIHsNCiAgICAgICAgY2FzZSAiTSI6DQogICAgICAgICAgICBmaWxlVHlwZSA9ICJtM3UiOw0KICAgICAgICAgICAgZmlsZUlEID0gZmlsZTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJIIjoNCiAgICAgICAgICAgIGZpbGVUeXBlID0gImhkaHIiOw0KICAgICAgICAgICAgZmlsZUlEID0gZmlsZTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJYIjoNCiAgICAgICAgICAgIGZpbGVUeXBlID0gInhtbHR2IjsNCiAgICAgICAgICAgIGZpbGVJRCA9IGZpbGUuc3Vic3RyaW5nKDAsIGZpbGUubGFzdEluZGV4T2YoJy4nKSk7DQogICAgICAgICAgICBicmVhazsNCiAgICB9DQogICAgaWYgKFNFUlZFUlsic2V0dGluZ3MiXVsiZmlsZXMiXVtmaWxlVHlwZV0uaGFzT3duUHJvcGVydHkoZmlsZUlEKSA9PSB0cnVlKSB7DQogICAgICAgIHZhciBkYXRhID0gU0VSVkVSWyJzZXR0aW5ncyJdWyJmaWxlcyJdW2ZpbGVUeXBlXVtmaWxlSURdOw0KICAgICAgICByZXR1cm4gZGF0YVtrZXldOw0KICAgIH0NCiAgICByZXR1cm47DQp9DQpmdW5jdGlvbiBzZXRYbWx0dkNoYW5uZWwoaWQsIGVsZW1lbnQpIHsNCiAgICBsZXQgeG1sdHYgPSBuZXcgWE1MVFZGaWxlKCk7DQogICAgbGV0IHhtbEZpbGUgPSBlbGVtZW50LnZhbHVlOw0KICAgIGxldCB0dmdJZCA9IFNFUlZFUlsieGVwZyJdWyJlcGdNYXBwaW5nIl1baWRdWyJ0dmctaWQiXTsNCiAgICBsZXQgdGQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicG9wdXAtbWFwcGluZyIpLnBhcmVudEVsZW1lbnQ7DQogICAgdGQuaW5uZXJIVE1MID0gIiI7DQogICAgbGV0IHNlbGVjdCA9IHhtbHR2LmdldFByb2dyYW1zKGVsZW1lbnQudmFsdWUsIHR2Z0lkKTsNCiAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJuYW1lIiwgIngtbWFwcGluZyIpOw0KICAgIHNlbGVjdC5zZXRBdHRyaWJ1dGUoImlkIiwgInBvcHVwLW1hcHBpbmciKTsNCiAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJzsgY2hlY2tYbWx0dkNoYW5uZWwoJyIgKyBpZCArICInLHRoaXMsJyIgKyB4bWxGaWxlICsgIicpOyIpOw0KICAgIHNlbGVjdC5jbGFzc05hbWUgPSAiY2hhbmdlZCI7DQogICAgc29ydFNlbGVjdChzZWxlY3QpOw0KICAgIHRkLmFwcGVuZENoaWxkKHNlbGVjdCk7DQogICAgY2hlY2tYbWx0dkNoYW5uZWwoaWQsIHNlbGVjdCwgeG1sRmlsZSk7DQp9DQpmdW5jdGlvbiBjaGVja1htbHR2Q2hhbm5lbChpZCwgZWxlbWVudCwgeG1sRmlsZSkgew0KICAgIGxldCB2YWx1ZSA9IGVsZW1lbnQudmFsdWU7DQogICAgbGV0IGJvb2w7DQogICAgbGV0IGNoZWNrYm94ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2FjdGl2ZScpOw0KICAgIGxldCBjaGFubmVsID0gU0VSVkVSWyJ4ZXBnIl1bImVwZ01hcHBpbmciXVtpZF07DQogICAgbGV0IHVwZGF0ZUxvZ287DQogICAgYm9vbCA9IHZhbHVlICE9ICItIjsNCiAgICBjaGVja2JveC5jaGVja2VkID0gYm9vbDsNCiAgICBjaGVja2JveC5jbGFzc05hbWUgPSAiY2hhbmdlZCI7DQogICAgY29uc29sZS5sb2coeG1sRmlsZSk7DQogICAgLy8gS2FuYWxsb2dvIGFrdHVhbGlzaWVyZW4NCiAgICAvKg0KICAgIHVwZGF0ZUxvZ28gPSAoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInVwZGF0ZS1pY29uIikgYXMgSFRNTElucHV0RWxlbWVudCkuY2hlY2tlZA0KICAgIGNvbnNvbGUubG9nKHVwZGF0ZUxvZ28pOw0KICAgICovDQogICAgaWYgKHhtbEZpbGUgIT0gInhUZVZlIER1bW15IiAmJiBib29sID09IHRydWUpIHsNCiAgICAgICAgLy8oZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInVwZGF0ZS1pY29uIikgYXMgSFRNTElucHV0RWxlbWVudCkuY2hlY2tlZCA9IHRydWU7DQogICAgICAgIC8vKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ1cGRhdGUtaWNvbiIpIGFzIEhUTUxJbnB1dEVsZW1lbnQpLmNsYXNzTmFtZSA9ICJjaGFuZ2VkIjsNCiAgICAgICAgY29uc29sZS5sb2coIklEIiwgaWQpOw0KICAgICAgICBjaGFuZ2VDaGFubmVsTG9nbyhpZCk7DQogICAgICAgIHJldHVybjsNCiAgICB9DQogICAgaWYgKHhtbEZpbGUgPT0gInhUZVZlIER1bW15Iikgew0KICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidXBkYXRlLWljb24iKS5jaGVja2VkID0gZmFsc2U7DQogICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ1cGRhdGUtaWNvbiIpLmNsYXNzTmFtZSA9ICJjaGFuZ2VkIjsNCiAgICB9DQogICAgcmV0dXJuOw0KfQ0KZnVuY3Rpb24gY2hhbmdlQ2hhbm5lbExvZ28oaWQpIHsNCiAgICBsZXQgdXBkYXRlTG9nbzsNCiAgICBsZXQgY2hhbm5lbCA9IFNFUlZFUlsieGVwZyJdWyJlcGdNYXBwaW5nIl1baWRdOw0KICAgIGxldCBmID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInBvcHVwLXhtbHR2Iik7DQogICAgbGV0IHhtbHR2RmlsZSA9IGYub3B0aW9uc1tmLnNlbGVjdGVkSW5kZXhdLnZhbHVlOw0KICAgIGxldCBtID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInBvcHVwLW1hcHBpbmciKTsNCiAgICBsZXQgeE1hcHBpbmcgPSBtLm9wdGlvbnNbbS5zZWxlY3RlZEluZGV4XS52YWx1ZTsNCiAgICBsZXQgeG1sdHZMb2dvID0gU0VSVkVSWyJ4ZXBnIl1bInhtbHR2TWFwIl1beG1sdHZGaWxlXVt4TWFwcGluZ11bImljb24iXTsNCiAgICB1cGRhdGVMb2dvID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInVwZGF0ZS1pY29uIikuY2hlY2tlZDsNCiAgICBpZiAodXBkYXRlTG9nbyA9PSB0cnVlICYmIHhtbHR2RmlsZSAhPSAieFRlVmUgRHVtbXkiKSB7DQogICAgICAgIGlmIChTRVJWRVJbInhlcGciXVsieG1sdHZNYXAiXVt4bWx0dkZpbGVdLmhhc093blByb3BlcnR5KHhNYXBwaW5nKSkgew0KICAgICAgICAgICAgdmFyIGxvZ28gPSB4bWx0dkxvZ287DQogICAgICAgIH0NCiAgICAgICAgZWxzZSB7DQogICAgICAgICAgICBsb2dvID0gY2hhbm5lbFsidHZnLWxvZ28iXTsNCiAgICAgICAgfQ0KICAgICAgICB2YXIgbG9nb0lucHV0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNoYW5uZWwtaWNvbiIpOw0KICAgICAgICBsb2dvSW5wdXQudmFsdWUgPSBsb2dvOw0KICAgICAgICBpZiAoQlVMS19FRElUID09IGZhbHNlKSB7DQogICAgICAgICAgICBsb2dvSW5wdXQuY2xhc3NOYW1lID0gImNoYW5nZWQiOw0KICAgICAgICB9DQogICAgfQ0KfQ0KZnVuY3Rpb24gc2F2ZVBvcHVwRGF0YShkYXRhVHlwZSwgaWQsIHJlbW92ZSwgb3B0aW9uKSB7DQogICAgaWYgKGRhdGFUeXBlID09ICJtYXBwaW5nIikgew0KICAgICAgICBsZXQgZGF0YSA9IHt9Ow0KICAgICAgICBjb25zb2xlLmxvZygiU2F2ZSBtYXBwaW5nIGRhdGEiKTsNCiAgICAgICAgbGV0IGNtZCA9ICJzYXZlRXBnTWFwcGluZyI7DQogICAgICAgIGRhdGFbImVwZ01hcHBpbmciXSA9IFNFUlZFUlsieGVwZyJdWyJlcGdNYXBwaW5nIl07DQogICAgICAgIGNvbnNvbGUubG9nKCJTRU5EIFRPIFNFUlZFUiIpOw0KICAgICAgICBsZXQgc2VydmVyID0gbmV3IFNlcnZlcihjbWQpOw0KICAgICAgICBzZXJ2ZXIucmVxdWVzdChkYXRhKTsNCiAgICAgICAgZGVsZXRlIFVORE9bImVwZ01hcHBpbmciXTsNCiAgICAgICAgcmV0dXJuOw0KICAgIH0NCiAgICBjb25zb2xlLmxvZygiU2F2ZSBwb3B1cCBkYXRhIik7DQogICAgbGV0IGRpdiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJwb3B1cC1jdXN0b20iKTsNCiAgICBsZXQgaW5wdXRzID0gZGl2LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJUQUJMRSIpWzBdLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJJTlBVVCIpOw0KICAgIGxldCBzZWxlY3RzID0gZGl2LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJUQUJMRSIpWzBdLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJTRUxFQ1QiKTsNCiAgICBsZXQgaW5wdXQgPSB7fTsNCiAgICBsZXQgY29uZmlybU1zZzsNCiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHNlbGVjdHMubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgdmFyIG5hbWU7DQogICAgICAgIG5hbWUgPSBzZWxlY3RzW2ldLm5hbWU7DQogICAgICAgIHZhciB2YWx1ZSA9IHNlbGVjdHNbaV0udmFsdWU7DQogICAgICAgIHN3aXRjaCAobmFtZSkgew0KICAgICAgICAgICAgY2FzZSAidHVuZXIiOg0KICAgICAgICAgICAgICAgIGlucHV0W25hbWVdID0gcGFyc2VJbnQodmFsdWUpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgICAgICBpbnB1dFtuYW1lXSA9IHZhbHVlOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICB9DQogICAgfQ0KICAgIGZvciAobGV0IGkgPSAwOyBpIDwgaW5wdXRzLmxlbmd0aDsgaSsrKSB7DQogICAgICAgIHN3aXRjaCAoaW5wdXRzW2ldLnR5cGUpIHsNCiAgICAgICAgICAgIGNhc2UgImNoZWNrYm94IjoNCiAgICAgICAgICAgICAgICBuYW1lID0gaW5wdXRzW2ldLm5hbWU7DQogICAgICAgICAgICAgICAgaW5wdXRbbmFtZV0gPSBpbnB1dHNbaV0uY2hlY2tlZDsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInRleHQiOg0KICAgICAgICAgICAgY2FzZSAiaGlkZGVuIjoNCiAgICAgICAgICAgIGNhc2UgInBhc3N3b3JkIjoNCiAgICAgICAgICAgICAgICBuYW1lID0gaW5wdXRzW2ldLm5hbWU7DQogICAgICAgICAgICAgICAgc3dpdGNoIChuYW1lKSB7DQogICAgICAgICAgICAgICAgICAgIGNhc2UgInR1bmVyIjoNCiAgICAgICAgICAgICAgICAgICAgICAgIGlucHV0W25hbWVdID0gcGFyc2VJbnQoaW5wdXRzW2ldLnZhbHVlKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgICAgICBkZWZhdWx0Og0KICAgICAgICAgICAgICAgICAgICAgICAgaW5wdXRbbmFtZV0gPSBpbnB1dHNbaV0udmFsdWU7DQogICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIH0NCiAgICB9DQogICAgbGV0IGRhdGEgPSB7fTsNCiAgICBsZXQgY21kOw0KICAgIGlmIChyZW1vdmUgPT0gdHJ1ZSkgew0KICAgICAgICBpbnB1dFsiZGVsZXRlIl0gPSB0cnVlOw0KICAgIH0NCiAgICBzd2l0Y2ggKGRhdGFUeXBlKSB7DQogICAgICAgIGNhc2UgInVzZXJzIjoNCiAgICAgICAgICAgIGNvbmZpcm1Nc2cgPSAiRGVsZXRlIHRoaXMgdXNlcj8iOw0KICAgICAgICAgICAgaWYgKGlkID09ICItIikgew0KICAgICAgICAgICAgICAgIGNtZCA9ICJzYXZlTmV3VXNlciI7DQogICAgICAgICAgICAgICAgZGF0YVsidXNlckRhdGEiXSA9IGlucHV0Ow0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgZWxzZSB7DQogICAgICAgICAgICAgICAgY21kID0gInNhdmVVc2VyRGF0YSI7DQogICAgICAgICAgICAgICAgbGV0IGQgPSB7fTsNCiAgICAgICAgICAgICAgICBkW2lkXSA9IGlucHV0Ow0KICAgICAgICAgICAgICAgIGRhdGFbInVzZXJEYXRhIl0gPSBkOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGNhc2UgIm0zdSI6DQogICAgICAgICAgICBjb25maXJtTXNnID0gIkRlbGV0ZSB0aGlzIHBsYXlsaXN0PyI7DQogICAgICAgICAgICBzd2l0Y2ggKG9wdGlvbikgew0KICAgICAgICAgICAgICAgIC8vIFBvcHVwOiBTYXZlDQogICAgICAgICAgICAgICAgY2FzZSAwOg0KICAgICAgICAgICAgICAgICAgICBjbWQgPSAic2F2ZUZpbGVzTTNVIjsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgLy8gUG9wdXA6IFVwZGF0ZQ0KICAgICAgICAgICAgICAgIGNhc2UgMToNCiAgICAgICAgICAgICAgICAgICAgY21kID0gInVwZGF0ZUZpbGVNM1UiOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGRhdGFbImZpbGVzIl0gPSB7fTsNCiAgICAgICAgICAgIGRhdGFbImZpbGVzIl1bZGF0YVR5cGVdID0ge307DQogICAgICAgICAgICBkYXRhWyJmaWxlcyJdW2RhdGFUeXBlXVtpZF0gPSBpbnB1dDsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJoZGhyIjoNCiAgICAgICAgICAgIGNvbmZpcm1Nc2cgPSAiRGVsZXRlIHRoaXMgSERIb21lUnVuIHR1bmVyPyI7DQogICAgICAgICAgICBzd2l0Y2ggKG9wdGlvbikgew0KICAgICAgICAgICAgICAgIC8vIFBvcHVwOiBTYXZlDQogICAgICAgICAgICAgICAgY2FzZSAwOg0KICAgICAgICAgICAgICAgICAgICBjbWQgPSAic2F2ZUZpbGVzSERIUiI7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIC8vIFBvcHVwOiBVcGRhdGUNCiAgICAgICAgICAgICAgICBjYXNlIDE6DQogICAgICAgICAgICAgICAgICAgIGNtZCA9ICJ1cGRhdGVGaWxlSERIUiI7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgZGF0YVsiZmlsZXMiXSA9IHt9Ow0KICAgICAgICAgICAgZGF0YVsiZmlsZXMiXVtkYXRhVHlwZV0gPSB7fTsNCiAgICAgICAgICAgIGRhdGFbImZpbGVzIl1bZGF0YVR5cGVdW2lkXSA9IGlucHV0Ow0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGNhc2UgInhtbHR2IjoNCiAgICAgICAgICAgIGNvbmZpcm1Nc2cgPSAiRGVsZXRlIHRoaXMgWE1MVFYgZmlsZT8iOw0KICAgICAgICAgICAgc3dpdGNoIChvcHRpb24pIHsNCiAgICAgICAgICAgICAgICAvLyBQb3B1cDogU2F2ZQ0KICAgICAgICAgICAgICAgIGNhc2UgMDoNCiAgICAgICAgICAgICAgICAgICAgY21kID0gInNhdmVGaWxlc1hNTFRWIjsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgLy8gUG9wdXA6IFVwZGF0ZQ0KICAgICAgICAgICAgICAgIGNhc2UgMToNCiAgICAgICAgICAgICAgICAgICAgY21kID0gInVwZGF0ZUZpbGVYTUxUViI7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgZGF0YVsiZmlsZXMiXSA9IHt9Ow0KICAgICAgICAgICAgZGF0YVsiZmlsZXMiXVtkYXRhVHlwZV0gPSB7fTsNCiAgICAgICAgICAgIGRhdGFbImZpbGVzIl1bZGF0YVR5cGVdW2lkXSA9IGlucHV0Ow0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGNhc2UgImZpbHRlciI6DQogICAgICAgICAgICBjb25maXJtTXNnID0gIkRlbGV0ZSB0aGlzIGZpbHRlcj8iOw0KICAgICAgICAgICAgY21kID0gInNhdmVGaWx0ZXIiOw0KICAgICAgICAgICAgZGF0YVsiZmlsdGVyIl0gPSB7fTsNCiAgICAgICAgICAgIGRhdGFbImZpbHRlciJdW2lkXSA9IGlucHV0Ow0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICBjb25zb2xlLmxvZyhkYXRhVHlwZSwgaWQpOw0KICAgICAgICAgICAgcmV0dXJuOw0KICAgIH0NCiAgICBpZiAocmVtb3ZlID09IHRydWUpIHsNCiAgICAgICAgaWYgKCFjb25maXJtKGNvbmZpcm1Nc2cpKSB7DQogICAgICAgICAgICBzaG93RWxlbWVudCgicG9wdXAiLCBmYWxzZSk7DQogICAgICAgICAgICByZXR1cm47DQogICAgICAgIH0NCiAgICB9DQogICAgY29uc29sZS5sb2coIlNFTkQgVE8gU0VSVkVSIik7DQogICAgY29uc29sZS5sb2coZGF0YSk7DQogICAgbGV0IHNlcnZlciA9IG5ldyBTZXJ2ZXIoY21kKTsNCiAgICBzZXJ2ZXIucmVxdWVzdChkYXRhKTsNCn0NCmZ1bmN0aW9uIGRvbmVQb3B1cERhdGEoZGF0YVR5cGUsIGlkc1N0cikgew0KICAgIGxldCBpZHMgPSBpZHNTdHIuc3BsaXQoJywnKTsNCiAgICBsZXQgZGl2ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInBvcHVwLWN1c3RvbSIpOw0KICAgIGxldCBpbnB1dHMgPSBkaXYuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSgiY2hhbmdlZCIpOw0KICAgIGlkcy5mb3JFYWNoKGlkID0+IHsNCiAgICAgICAgbGV0IGlucHV0Ow0KICAgICAgICBpbnB1dCA9IFNFUlZFUlsieGVwZyJdWyJlcGdNYXBwaW5nIl1baWRdOw0KICAgICAgICBjb25zb2xlLmxvZyhpbnB1dCk7DQogICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgaW5wdXRzLmxlbmd0aDsgaSsrKSB7DQogICAgICAgICAgICBsZXQgbmFtZTsNCiAgICAgICAgICAgIGxldCB2YWx1ZTsNCiAgICAgICAgICAgIHN3aXRjaCAoaW5wdXRzW2ldLnRhZ05hbWUpIHsNCiAgICAgICAgICAgICAgICBjYXNlICJJTlBVVCI6DQogICAgICAgICAgICAgICAgICAgIHN3aXRjaCAoaW5wdXRzW2ldLnR5cGUpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgImNoZWNrYm94IjoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lID0gaW5wdXRzW2ldLm5hbWU7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSBpbnB1dHNbaV0uY2hlY2tlZDsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnB1dFtuYW1lXSA9IHZhbHVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAidGV4dCI6DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZSA9IGlucHV0c1tpXS5uYW1lOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlID0gaW5wdXRzW2ldLnZhbHVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlucHV0W25hbWVdID0gdmFsdWU7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAiU0VMRUNUIjoNCiAgICAgICAgICAgICAgICAgICAgbmFtZSA9IGlucHV0c1tpXS5uYW1lOw0KICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IGlucHV0c1tpXS52YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgaW5wdXRbbmFtZV0gPSB2YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBzd2l0Y2ggKG5hbWUpIHsNCiAgICAgICAgICAgICAgICBjYXNlICJ0dmctbG9nbyI6DQogICAgICAgICAgICAgICAgICAgIC8vKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5jaGlsZE5vZGVzWzJdLmZpcnN0Q2hpbGQgYXMgSFRNTEVsZW1lbnQpLnNldEF0dHJpYnV0ZSgic3JjIiwgdmFsdWUpDQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgIngtbmFtZSI6DQogICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5jaGlsZE5vZGVzWzNdLmZpcnN0Q2hpbGQuaW5uZXJIVE1MID0gdmFsdWU7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgIngtY2F0ZWdvcnkiOg0KICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkuY2hpbGROb2Rlc1szXS5maXJzdENoaWxkLmNsYXNzTmFtZSA9IHZhbHVlOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBjYXNlICJ4LWdyb3VwLXRpdGxlIjoNCiAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpLmNoaWxkTm9kZXNbNV0uZmlyc3RDaGlsZC5pbm5lckhUTUwgPSB2YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAieC14bWx0di1maWxlIjoNCiAgICAgICAgICAgICAgICAgICAgaWYgKHZhbHVlICE9ICJ4VGVWZSBEdW1teSIgJiYgdmFsdWUgIT0gIi0iKSB7DQogICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IGdldFZhbHVlRnJvbVByb3ZpZGVyRmlsZSh2YWx1ZSwgInhtbHR2IiwgIm5hbWUiKTsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBpZiAodmFsdWUgPT0gIi0iKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBpbnB1dFsieC1hY3RpdmUiXSA9IGZhbHNlOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5jaGlsZE5vZGVzWzZdLmZpcnN0Q2hpbGQuaW5uZXJIVE1MID0gdmFsdWU7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgIngtbWFwcGluZyI6DQogICAgICAgICAgICAgICAgICAgIGlmICh2YWx1ZSA9PSAiLSIpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGlucHV0WyJ4LWFjdGl2ZSJdID0gZmFsc2U7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpLmNoaWxkTm9kZXNbN10uZmlyc3RDaGlsZC5pbm5lckhUTUwgPSB2YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAieC10aW1lc2hpZnQiOg0KICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkuY2hpbGROb2Rlc1s4XS5maXJzdENoaWxkLmlubmVySFRNTCA9IHZhbHVlOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBkZWZhdWx0Og0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgY3JlYXRlU2VhcmNoT2JqKCk7DQogICAgICAgICAgICBzZWFyY2hJbk1hcHBpbmcoKTsNCiAgICAgICAgfQ0KICAgICAgICBpZiAoaW5wdXRbIngtYWN0aXZlIl0gPT0gZmFsc2UpIHsNCiAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5jbGFzc05hbWUgPSAibm90QWN0aXZlRVBHIjsNCiAgICAgICAgfQ0KICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5jbGFzc05hbWUgPSAiYWN0aXZlRVBHIjsNCiAgICAgICAgfQ0KICAgICAgICBjb25zb2xlLmxvZyhpbnB1dFsidHZnLWxvZ28iXSk7DQogICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5jaGlsZE5vZGVzWzJdLmZpcnN0Q2hpbGQuc2V0QXR0cmlidXRlKCJzcmMiLCBpbnB1dFsidHZnLWxvZ28iXSk7DQogICAgfSk7DQogICAgc2hvd0VsZW1lbnQoInBvcHVwIiwgZmFsc2UpOw0KICAgIHJldHVybjsNCn0NCmZ1bmN0aW9uIHNob3dQcmV2aWV3KGVsZW1lbnQpIHsNCiAgICBsZXQgZGl2ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm15U3RyZWFtc0JveCIpOw0KICAgIHN3aXRjaCAoZWxlbWVudCkgew0KICAgICAgICBjYXNlIGZhbHNlOg0KICAgICAgICAgICAgZGl2LmNsYXNzTmFtZSA9ICJub3RWaXNpYmxlIjsNCiAgICAgICAgICAgIHJldHVybjsNCiAgICB9DQogICAgbGV0IHN0cmVhbXMgPSBbImFjdGl2ZVN0cmVhbXMiLCAiaW5hY3RpdmVTdHJlYW1zIl07DQogICAgc3RyZWFtcy5mb3JFYWNoKHByZXZpZXcgPT4gew0KICAgICAgICBsZXQgdGFibGUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChwcmV2aWV3KTsNCiAgICAgICAgdGFibGUuaW5uZXJIVE1MID0gIiI7DQogICAgICAgIGxldCBvYmogPSBTRVJWRVJbImRhdGEiXVsiU3RyZWFtUHJldmlld1VJIl1bcHJldmlld107DQogICAgICAgIG9iai5mb3JFYWNoKGNoYW5uZWwgPT4gew0KICAgICAgICAgICAgbGV0IHRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVFIiKTsNCiAgICAgICAgICAgIGxldCB0ZEtleSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICBsZXQgdGRWYWwgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgdGRLZXkuY2xhc3NOYW1lID0gInRkS2V5IjsNCiAgICAgICAgICAgIHRkVmFsLmNsYXNzTmFtZSA9ICJ0ZFZhbCI7DQogICAgICAgICAgICBzd2l0Y2ggKHByZXZpZXcpIHsNCiAgICAgICAgICAgICAgICBjYXNlICJhY3RpdmVTdHJlYW1zIjoNCiAgICAgICAgICAgICAgICAgICAgdGRLZXkuaW5uZXJUZXh0ID0gIkNoYW5uZWw6ICgrKSI7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgImluYWN0aXZlU3RyZWFtcyI6DQogICAgICAgICAgICAgICAgICAgIHRkS2V5LmlubmVyVGV4dCA9ICJDaGFubmVsOiAoLSkiOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIHRkVmFsLmlubmVyVGV4dCA9IGNoYW5uZWw7DQogICAgICAgICAgICB0ci5hcHBlbmRDaGlsZCh0ZEtleSk7DQogICAgICAgICAgICB0ci5hcHBlbmRDaGlsZCh0ZFZhbCk7DQogICAgICAgICAgICB0YWJsZS5hcHBlbmRDaGlsZCh0cik7DQogICAgICAgIH0pOw0KICAgIH0pOw0KICAgIHNob3dFbGVtZW50KCJsb2FkaW5nIiwgZmFsc2UpOw0KICAgIGRpdi5jbGFzc05hbWUgPSAidmlzaWJsZSI7DQogICAgcmV0dXJuOw0KfQ0K" - webUI["html/index.html"] = "PCFkb2N0eXBlIGh0bWw+DQo8aHRtbD4NCiAgPGhlYWQ+DQogICAgPG1ldGEgY2hhcnNldD0idXRmLTgiPg0KICAgIDwhLS0tDQogICAgPG1ldGEgbmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9IndpZHRoPWRldmljZS13aWR0aCwgaW5pdGlhbC1zY2FsZT0xLjAiIC8+IA0KICAgIC0tPg0KICAgIDx0aXRsZT54VGVWZTwvdGl0bGU+DQogICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJjc3Mvc2NyZWVuLmNzcyIgdHlwZT0idGV4dC9jc3MiPg0KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iY3NzL2Jhc2UuY3NzIiB0eXBlPSJ0ZXh0L2NzcyI+DQoNCiAgICA8c2NyaXB0IGxhbmd1YWdlPSJqYXZhc2NyaXB0IiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ianMvbmV0d29ya190cy5qcyI+PC9zY3JpcHQ+DQogICAgPHNjcmlwdCBsYW5ndWFnZT0iamF2YXNjcmlwdCIgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9ImpzL21lbnVfdHMuanMiPjwvc2NyaXB0Pg0KICAgIDxzY3JpcHQgbGFuZ3VhZ2U9ImphdmFzY3JpcHQiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJqcy9zZXR0aW5nc190cy5qcyI+PC9zY3JpcHQ+DQogICAgPHNjcmlwdCBsYW5ndWFnZT0iamF2YXNjcmlwdCIgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9ImpzL2xvZ3NfdHMuanMiPjwvc2NyaXB0Pg0KICAgIDxzY3JpcHQgbGFuZ3VhZ2U9ImphdmFzY3JpcHQiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJqcy9iYXNlX3RzLmpzIj48L3NjcmlwdD4NCg0KICA8L2hlYWQ+DQoNCiAgICA8Ym9keSBvbmxvYWQ9ImphdmFzY3JpcHQ6IFBhZ2VSZWFkeSgpOyI+DQoNCiAgICAgIDxkaXYgaWQ9ImxvYWRpbmciIGNsYXNzPSJub25lIj4NCiAgICAgICAgPGRpdiBjbGFzcz0ibG9hZGVyIj48L2Rpdj4NCiAgICAgIDwvZGl2Pg0KDQogICAgICA8ZGl2IGlkPSJwb3B1cCIgY2xhc3M9Im5vbmUiPg0KICAgICAgICA8ZGl2IGlkPSJwb3B1cC1jdXN0b20iPjwvZGl2Pg0KICAgICAgPC9kaXY+DQoNCiAgICAgIDxkaXYgaWQ9ImxheW91dCI+DQoNCiAgICAgICAgPCEtLQ0KICAgICAgICA8ZGl2IGlkPSJub3RpZmljYXRpb24iPg0KICAgICAgICAgIDxkaXYgY2xhc3M9ImVsZW1lbnQiPg0KICAgICAgICAgICAgPGg1PlhFUEc8L2g1Pg0KICAgICAgICAgICAgPHByZT4xMS4wNS4yMDE5IC0gMjA6MjE8L3ByZT4NCiAgICAgICAgICAgIDxocj4NCiAgICAgICAgICAgIDxwPkhhbGxvIGRhcyBpc3QgZWluIFRlc3QuIFVuZCBub2NoIG1laHIgVGV4dC48L3A+DQogICAgICAgICAgPC9kaXY+DQogICAgICAgIDwvZGl2Pg0KICAgICAgLS0+DQoNCiAgICAgICAgPGRpdiBpZD0ibWVudS13cmFwcGVyIiBjbGFzcz0ibGF5b3V0LWxlZnQiPg0KICAgICAgICAgIDxkaXYgaWQ9ICJicmFuY2giPjwvZGl2Pg0KICAgICAgICAgIDxkaXYgaWQ9ImxvZ28iPjwvZGl2Pg0KICAgICAgICAgIDxuYXYgaWQ9Im1haW4tbWVudSI+PC9uYXY+DQogICAgICAgIDwvZGl2Pg0KDQogICAgICAgIDxkaXYgY2xhc3M9ImxheW91dC1yaWdodCI+DQoNCiAgICAgICAgICA8dGFibGUgaWQ9ImNsaWVudEluZm8iIGNsYXNzPSIiPg0KDQogICAgICAgICAgICA8dHI+DQogICAgICAgICAgICAgIDx0ZCBjbGFzcz0idGRLZXkiPnhUZVZlOjwvdGQ+DQogICAgICAgICAgICAgIDx0ZCBpZD0idmVyc2lvbiIgY2xhc3M9InRkVmFsIj4mbmJzcDs8L3RkPg0KICAgICAgICAgICAgICA8dGQgY2xhc3M9InRkS2V5Ij5PUzo8L3RkPg0KICAgICAgICAgICAgICA8dGQgaWQ9Im9zIiBjbGFzcz0idGRWYWwiPiZuYnNwOzwvdGQ+DQogICAgICAgICAgICAgIDx0ZCBjbGFzcz0idGRLZXkgcGhvbmUiPkRWUiBJUDo8L3RkPg0KICAgICAgICAgICAgICA8dGQgaWQ9IkRWUiIgY2xhc3M9InRkVmFsIHBob25lIj4mbmJzcDs8L3RkPg0KICAgICAgICAgICAgPC90cj4NCg0KICAgICAgICAgICAgPHRyPg0KICAgICAgICAgICAgICA8dGQgY2xhc3M9InRkS2V5Ij5VVUlEOjwvdGQ+DQogICAgICAgICAgICAgIDx0ZCBpZD0idXVpZCIgY2xhc3M9InRkVmFsIj4mbmJzcDs8L3RkPg0KICAgICAgICAgICAgICA8dGQgY2xhc3M9InRkS2V5Ij5BcmNoOjwvdGQ+DQogICAgICAgICAgICAgIDx0ZCBpZD0iYXJjaCIgY2xhc3M9InRkVmFsIj4mbmJzcDs8L3RkPg0KICAgICAgICAgICAgICA8dGQgY2xhc3M9InRkS2V5IHBob25lIj5NM1UgVVJMOjwvdGQ+DQogICAgICAgICAgICAgIDx0ZCBpZD0ibTN1LXVybCIgY2xhc3M9InRkVmFsIHBob25lIj4mbmJzcDs8L3RkPg0KICAgICAgICAgICAgPC90cj4NCg0KICAgICAgICAgICAgPHRyPg0KICAgICAgICAgICAgICA8dGQgY2xhc3M9InRkS2V5Ij5BdmFpbGFibGUgU3RyZWFtczo8L3RkPg0KICAgICAgICAgICAgICA8dGQgaWQ9InN0cmVhbXMiIGNsYXNzPSJ0ZFZhbCI+Jm5ic3A7PC90ZD4NCiAgICAgICAgICAgICAgPHRkIGNsYXNzPSJ0ZEtleSI+RVBHIFNvdXJjZTo8L3RkPg0KICAgICAgICAgICAgICA8dGQgaWQ9ImVwZ1NvdXJjZSIgY2xhc3M9InRkVmFsIj4mbmJzcDs8L3RkPg0KICAgICAgICAgICAgICA8dGQgY2xhc3M9InRkS2V5IHBob25lIj5YRVBHIFVSTDo8L3RkPg0KICAgICAgICAgICAgICA8dGQgaWQ9InhlcGctdXJsIiBjbGFzcz0idGRWYWwgcGhvbmUiPiZuYnNwOzwvdGQ+DQogICAgICAgICAgICA8L3RyPg0KDQogICAgICAgICAgICA8dHI+DQogICAgICAgICAgICAgIDx0ZCBjbGFzcz0idGRLZXkiPlhFUEcgQ2hhbm5lbHM6PC90ZD4NCiAgICAgICAgICAgICAgPHRkIGlkPSJ4ZXBnIiBjbGFzcz0idGRWYWwiPiZuYnNwOzwvdGQ+DQogICAgICAgICAgICAgIDx0ZCBjbGFzcz0idGRLZXkiPkVycm9yczo8L3RkPg0KICAgICAgICAgICAgICA8dGQgaWQ9ImVycm9ycyIgY2xhc3M9InRkVmFsIj4mbmJzcDs8L3RkPg0KICAgICAgICAgICAgICA8dGQgY2xhc3M9InRkS2V5Ij5XYXJuaW5nczo8L3RkPg0KICAgICAgICAgICAgICA8dGQgaWQ9Indhcm5pbmdzIiBjbGFzcz0idGRWYWwiPiZuYnNwOzwvdGQ+DQogICAgICAgICAgICA8L3RyPg0KDQogICAgICAgICAgPC90YWJsZT4NCiAgICAgICAgIA0KICAgICAgICAgIDxkaXYgaWQ9Im15U3RyZWFtc0JveCIgY2xhc3M9Im5vdFZpc2libGUiPg0KDQogICAgICAgICAgICA8ZGl2IGlkPSJhbGxTdHJlYW1zIj4NCiAgICAgICAgICAgICAgPHRhYmxlIGlkPSJhY3RpdmVTdHJlYW1zIj48L3RhYmxlPg0KICAgICAgICAgICAgICA8dGFibGUgaWQ9ImluYWN0aXZlU3RyZWFtcyI+PC90YWJsZT4NCiAgICAgICAgICAgIDwvZGl2Pg0KDQogICAgICAgICAgPC9kaXY+DQogICAgICAgICAgDQogICAgICAgICAgPGRpdiBpZD0iY29udGVudCIgY2xhc3M9IiI+PC9kaXY+DQogICAgICAgICAgICANCiAgICAgICAgPC9kaXY+DQoNCiAgICAgIDwvZGl2Pg0KICAgICAgDQogICAgPC9ib2R5Pg0KICAgIA0KPC9odG1sPg==" - webUI["html/js/base.js"] = "dmFyIGNvbmZpZyAgICAgICAgPSBuZXcgT2JqZWN0KCk7DQp2YXIgbWVudSAgICAgICAgICA9IG5ldyBPYmplY3QoKTsNCnZhciBzdWJNZW51ICAgICAgID0gbmV3IE9iamVjdCgpOw0KdmFyIGFjdGl2ZVN0cmVhbXMgPSBuZXcgT2JqZWN0KCk7DQp2YXIgeEVQRyAgICAgICAgICA9IG5ldyBPYmplY3QoKTsNCnZhciB1c2VycyAgICAgICAgID0gbmV3IE9iamVjdCgpOw0KdmFyIGxvZyAgICAgICAgICAgPSBuZXcgT2JqZWN0KCk7DQp2YXIgdW5kbyAgICAgICAgICA9IG5ldyBPYmplY3QoKTsNCnZhciB3ZWJTb2NrZXRzICAgID0gdHJ1ZTsNCnZhciBjbG9zZUxvZywgdmVyc2lvbiwgYWN0aXZlTWVudTsNCnZhciBjb2x1bW5Ub1NvcnQgID0gMA0KDQoNCmlmICh3aW5kb3cuV2ViU29ja2V0ID09PSB1bmRlZmluZWQpIHsNCiAgYWxlcnQoIllvdXIgYnJvd3NlciBkb2VzIG5vdCBzdXBwb3J0IFdlYlNvY2tldHMiKTsNCiAgd2ViU29ja2V0cyA9IGZhbHNlOw0KfSANCg0KZnVuY3Rpb24gcGFnZVJlYWR5KCkgew0KICB2YXIgZGF0YSA9IG5ldyBPYmplY3QoKTsNCiAgZGF0YVsiY21kIl0gPSAiZ2V0U2VydmVyQ29uZmlnIjsNCiAgeFRlVmUoZGF0YSk7DQogIC8vc2hvd0xvYWRpbmdTY3JlZW4oZmFsc2UpOw0KDQogIHZhciByZXNpemVIYW5kbGUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgib3BlblN0cmVhbXMiKTsNCiAgdmFyIGJveCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJteVN0cmVhbXNCb3giKTsNCiAgcmVzaXplSGFuZGxlLmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlZG93biIsIGluaXRpYWxpc2VSZXNpemUsIGZhbHNlKTsNCg0KICBmdW5jdGlvbiBpbml0aWFsaXNlUmVzaXplKGUpIHsNCiAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigibW91c2Vtb3ZlIiwgc3RhcnRSZXNpemluZywgZmFsc2UpOw0KICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJtb3VzZXVwIiwgc3RvcFJlc2l6aW5nLCBmYWxzZSk7DQogIH0NCg0KICBmdW5jdGlvbiBzdGFydFJlc2l6aW5nKGUpIHsNCiAgICBib3guc3R5bGUuaGVpZ2h0ID0gKGUuY2xpZW50WSAtIGJveC5vZmZzZXRUb3ApICsgInB4IjsNCiAgICAgIA0KICAgIHZhciBlbG0gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYWxsU3RyZWFtcyIpOw0KICAgIGlmIChlLmNsaWVudFkgPiAxMjApIHsNCiAgICAgIGVsbS5jbGFzc05hbWUgPSAidmlzaWJsZSI7IA0KICAgIH0gZWxzZSB7DQogICAgICBlbG0uY2xhc3NOYW1lID0gIm5vdFZpc2libGUiOyANCiAgICB9DQoNCiAgICBjYWxjdWxhdGVXcmFwcGVySGVpZ2h0KCk7DQoNCiAgfQ0KICBmdW5jdGlvbiBzdG9wUmVzaXppbmcoZSkgew0KICAgICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ21vdXNlbW92ZScsIHN0YXJ0UmVzaXppbmcsIGZhbHNlKTsNCiAgICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCdtb3VzZXVwJywgc3RvcFJlc2l6aW5nLCBmYWxzZSk7DQogICAgICBjYWxjdWxhdGVXcmFwcGVySGVpZ2h0KCk7DQogIH0NCg0KICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigicmVzaXplIiwgZnVuY3Rpb24oKXsNCiAgICBjYWxjdWxhdGVXcmFwcGVySGVpZ2h0KCk7DQogIH0sIHRydWUpOw0KfQ0KDQoNCmZ1bmN0aW9uIGdldE9iaktleXMob2JqKSB7DQogIHZhciBrZXlzID0gbmV3IEFycmF5KCk7DQoNCiAgZm9yICh2YXIgaSBpbiBvYmopIHsNCiAgICBpZiAob2JqLmhhc093blByb3BlcnR5KGkpKSB7DQogICAgICBrZXlzLnB1c2goaSk7DQogICAgfQ0KICB9DQoNCiAgcmV0dXJuIGtleXM7DQp9DQoNCg0KZnVuY3Rpb24gY3JlYXRlRWxlbWVudChpdGVtKSB7DQogIC8vY29uc29sZS5sb2coaXRlbSk7DQogIHZhciBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChpdGVtWyJfZWxlbWVudCJdKTsNCiAgaWYgKGl0ZW0uaGFzT3duUHJvcGVydHkoIl90ZXh0IikpIHsNCiAgICAvL2VsZW1lbnQuaW5uZXJIVE1MID0gIjxwPiIgKyBpdGVtWyJfdGV4dCJdICsgIjwvcD4iOw0KICAgIGVsZW1lbnQuaW5uZXJIVE1MID0gaXRlbVsiX3RleHQiXTsNCiAgfQ0KDQogIHZhciBrZXlzID0gZ2V0T2JqS2V5cyhpdGVtKTsNCiAgZm9yICh2YXIgaSA9IDA7IGkgPCBrZXlzLmxlbmd0aDsgaSsrKSB7DQogICAgaWYgKGtleXNbaV0uY2hhckF0KDApICE9ICJfIikgew0KICAgICAgLy9jb25zb2xlLmxvZyhrZXlzW2ldLCBpdGVtW2tleXNbaV1dKTsNCiAgICAgIGVsZW1lbnQuc2V0QXR0cmlidXRlKGtleXNbaV0sIGl0ZW1ba2V5c1tpXV0pOw0KICAgIH0NCiAgfQ0KDQogIC8vY29uc29sZS5sb2coZWxlbWVudCk7DQogIHJldHVybiBlbGVtZW50Ow0KfQ0KDQpmdW5jdGlvbiBtb2RpZnlPcHRpb24oaWQsIG9wdGlvbnMsIHZhbHVlcykgew0KICB2YXIgc2VsZWN0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpOw0KICBzZWxlY3QuaW5uZXJIVE1MID0gIiI7DQoNCiAgZm9yICh2YXIgaSA9IDA7IGkgPCBvcHRpb25zLmxlbmd0aDsgaSsrKSB7DQogIA0KICAgIHZhciBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiT1BUSU9OIikNCiAgDQogICAgZWxlbWVudC52YWx1ZSA9IHZhbHVlc1tpXTsNCiAgICBlbGVtZW50LmlubmVySFRNTCA9IG9wdGlvbnNbaV07DQoNCiAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkuYXBwZW5kQ2hpbGQoZWxlbWVudCk7DQogIA0KICB9DQoNCn0NCg0KDQpmdW5jdGlvbiBzdGFydFdlYlNvY2tldCgpIHsNCiAgaWYgKHdlYlNvY2tldHMgPT0gZmFsc2UpIHsNCiAgICByZXR1cm47DQogIH0NCg0KICAvL3dzLnNlbmQoJ3siY21kIjogImdldFNlcnZlckNvbmZpZzEifScpOw0KDQp9DQoNCmZ1bmN0aW9uIGNoZWNrRXJyKG9iaikgew0KICAvL2FsZXJ0KG9ialsiZXJyIl0pDQogIC8vc2NyZWVuTG9nKG9ialsiZXJyIl0sICJlcnJvciIpDQogIGNvbnNvbGUubG9nKG9iaik7DQogIHZhciBuZXdPYmogPSBuZXcgT2JqZWN0KCk7DQogIHZhciBuZXdFcnIgPSBuZXcgT2JqZWN0KCk7DQogIG5ld0Vyclsia2V5Il0gICA9ICJFcnJvciI7DQogIG5ld0VyclsidmFsdWUiXSA9IG9ialsiZXJyIl07DQogIG5ld0VyclsidHlwZSJdICA9ICJlcnJvciI7DQoNCiAgbmV3T2JqWzBdID0gbmV3RXJyDQogIHNob3dMb2cobmV3T2JqKTsNCiAgcmV0dXJuDQp9DQoNCmZ1bmN0aW9uIHNjcmVlbkxvZyhtc2csIG1zZ1R5cGUsIHNob3cpIHsNCiAgcmV0dXJuDQogIGNsZWFyVGltZW91dChjbG9zZUxvZykNCiAgdmFyIGRpdiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzY3JlZW5Mb2ciKTsNCiAgdmFyIG5ld01zZyA9IG5ldyBPYmplY3QoKTsNCiAgDQogIG5ld01zZ1siX2VsZW1lbnQiXSA9ICJQIjsNCiAgDQogIHN3aXRjaChtc2dUeXBlKSB7DQogICAgY2FzZSAiZXJyb3IiOiAgIG5ld01zZ1siY2xhc3MiXSA9ICJlcnJvck1zZyI7IGJyZWFrOw0KICAgIGNhc2UgIndhcm5pbmciOiBuZXdNc2dbImNsYXNzIl0gPSAid2FybmluZ01zZyI7IGJyZWFrOw0KICAgIC8vZGVmYXVsdDogICAgICBuZXdNc2dbImNsYXNzIl0gPSAiaW5mb01zZyINCiAgfQ0KDQogIG5ld01zZ1siX3RleHQiXSA9IG1zZzsNCg0KICBkaXYuYXBwZW5kQ2hpbGQoY3JlYXRlRWxlbWVudChuZXdNc2cpKTsNCg0KICBkaXYuc2Nyb2xsVG9wID0gZGl2LnNjcm9sbEhlaWdodDsNCg0KICBpZiAoc2hvdyA9PSBmYWxzZSkgew0KICAgIHJldHVybjsNCiAgfQ0KDQogIGRpdi5jbGFzc05hbWUgPSAiIg0KICBjbG9zZUxvZyA9IHNldFRpbWVvdXQoY2xvc2VTY3JlZW5Mb2csIDEwMDAwKTsNCn0NCg0KDQpmdW5jdGlvbiBjbG9zZVNjcmVlbkxvZygpIHsNCiAgdmFyIGRpdiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzY3JlZW5Mb2ciKTsNCiAgZGl2LmNsYXNzTmFtZSA9ICJzY3JlZW5Mb2dIaWRkZW4iDQp9DQoNCmZ1bmN0aW9uIHNob3dTY3JlZW5Mb2coKSB7DQogIGNsZWFyVGltZW91dChjbG9zZUxvZykNCiAgdmFyIGRpdiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzY3JlZW5Mb2ciKTsNCiAgdmFyIGN1cnJlbnRDbGFzcyA9IGRpdi5jbGFzc05hbWU7DQogIGRpdi5jbGFzc05hbWUgPSAic2NyZWVuTG9nSGlkZGVuIg0KDQogIHN3aXRjaChjdXJyZW50Q2xhc3MpIHsNCiAgICBjYXNlICJzY3JlZW5Mb2dIaWRkZW4iOiAgZGl2LmNsYXNzTmFtZSA9ICIiOyBicmVhazsgDQogICAgY2FzZSAiIjogZGl2LmNsYXNzTmFtZSA9ICJzY3JlZW5Mb2dIaWRkZW4iOyBicmVhazsNCiAgfQ0KfQ0KDQpmdW5jdGlvbiBzaG93TG9hZGluZ1NjcmVlbihlbG0pIHsNCiAgdmFyIGRpdiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJsb2FkaW5nIik7DQogIHN3aXRjaChlbG0pIHsNCiAgICBjYXNlIHRydWU6IGRpdi5jbGFzc05hbWUgPSAiYmxvY2siOyBicmVhazsNCiAgICBjYXNlIGZhbHNlOiBkaXYuY2xhc3NOYW1lID0gIm5vbmUiOyBicmVhazsNCg0KICAgIC8qDQogICAgY2FzZSB0cnVlOiBkaXYuc3R5bGUuZGlzcGxheSA9ICJibG9jayI7IGJyZWFrOw0KICAgIGNhc2UgZmFsc2U6IGRpdi5zdHlsZS5kaXNwbGF5ID0gIm5vbmUiOyBicmVhazsNCiAgICAqLw0KICB9DQp9DQoNCmZ1bmN0aW9uIGNyZWF0ZUNsaW50SW5mbyhvYmopIHsNCiAgLy9jb25zb2xlLmxvZyhvYmopOw0KICB2YXIga2V5cyA9IGdldE9iaktleXMob2JqKTsNCiAgZm9yICh2YXIgaSA9IDA7IGkgPCBrZXlzLmxlbmd0aDsgaSsrKSB7DQogICAgaWYoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoa2V5c1tpXSkpew0KICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoa2V5c1tpXSkuaW5uZXJIVE1MID0gb2JqW2tleXNbaV1dOw0KICAgIH0NCiAgfQ0KICAvL2RvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjbGllbnRJbmZvIikuY2xhc3NOYW1lID0gInZpc2libGUiOw0KfQ0KDQpmdW5jdGlvbiBzaG93RWxlbWVudChlbG1JRCwgdHlwZSkgew0KICBzd2l0Y2godHlwZSkgew0KICAgIGNhc2UgdHJ1ZTogIGNzc0NsYXNzID0gImJsb2NrIjsgYnJlYWs7DQogICAgY2FzZSBmYWxzZTogY3NzQ2xhc3MgPSAibm9uZSI7IGJyZWFrOw0KICB9DQoNCiAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoZWxtSUQpLmNsYXNzTmFtZSA9IGNzc0NsYXNzOw0KfSANCg0KZnVuY3Rpb24gc2hvd1BvcFVwRWxlbWVudChlbG0pIHsNCiAgdmFyIGFsbEVsZW1lbnRzID0gbmV3IEFycmF5KCJkZWxldGVVc2VyRGV0YWlsIiwgIm1hcHBpbmctZGV0YWlsIiwgInVzZXItZGV0YWlsIiwgImZpbGUtZGV0YWlsIik7DQoNCiAgZm9yICh2YXIgaSA9IDA7IGkgPCBhbGxFbGVtZW50cy5sZW5ndGg7IGkrKykgew0KICAgIHNob3dFbGVtZW50KGFsbEVsZW1lbnRzW2ldLCBmYWxzZSkNCiAgfQ0KDQogIHNob3dFbGVtZW50KGVsbSwgdHJ1ZSkNCg0KICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7IA0KICAgIHNob3dFbGVtZW50KCJwb3B1cCIsIHRydWUpOw0KICB9LCAxMCk7DQp9DQoNCiAgLy8gYm9keS4uLg0KDQpmdW5jdGlvbiBzaG93U3RyZWFtcyhmb3JjZSkgew0KDQogIHZhciBlbG1Cb3ggPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibXlTdHJlYW1zQm94Iik7DQogIHZhciBlbG0gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYWxsU3RyZWFtcyIpOw0KICAvL2NvbnNvbGUubG9nKGVsbSk7DQogIHNob3cgPSBlbG0uY2xhc3NOYW1lOw0KDQogIHN3aXRjaChmb3JjZSkgew0KICAgIGNhc2UgdHJ1ZTogc2hvdyA9ICJub3RWaXNpYmxlIjsgYnJlYWs7DQogICAgY2FzZSBmYWxzZTogc2hvdyA9ICJ2aXNpYmxlIjsgYnJlYWs7DQogIH0NCg0KICBzd2l0Y2goc2hvdykgew0KICAgIGNhc2UgIm5vdFZpc2libGUiOiANCiAgICAgIGVsbS5jbGFzc05hbWUgPSAidmlzaWJsZSI7IA0KICAgICAgZWxtQm94LnN0eWxlLmhlaWdodCA9ICIxMDBweCI7DQogICAgICBicmVhazsNCg0KICAgIGRlZmF1bHQ6IA0KICAgICAgZWxtLmNsYXNzTmFtZSA9ICJub3RWaXNpYmxlIjsgDQogICAgICBlbG1Cb3guc3R5bGUuaGVpZ2h0ID0gIjIwcHgiOw0KICAgICAgYnJlYWs7DQogIH0NCg0KICB2YXIgc2hvdyA9IGVsbS5zdHlsZS5kaXNwbGF5OyB7DQogICAgLy9jb25zb2xlLmxvZyhlbG0uc3R5bGUuZGlzcGxheSk7DQogIH0NCiAgDQogIGNhbGN1bGF0ZVdyYXBwZXJIZWlnaHQoKTsNCn0NCg0KZnVuY3Rpb24geHRldmVCYWNrdXAoKSB7DQogIGNvbnNvbGUubG9nKCJ4dGV2ZUJhY2t1cCIpOw0KICB2YXIgZGF0YSA9IG5ldyBPYmplY3QoKTsNCiAgZGF0YVsiY21kIl0gPSAieHRldmVCYWNrdXAiOw0KDQogIHhUZVZlKGRhdGEpOw0KfQ0KDQpmdW5jdGlvbiB4dGV2ZVJlc3RvcmUoZWxtKSB7DQogIHZhciByZXN0b3JlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiSU5QVVQiKTsNCiAgcmVzdG9yZS5zZXRBdHRyaWJ1dGUoInR5cGUiLCAiZmlsZSIpOw0KICByZXN0b3JlLnNldEF0dHJpYnV0ZSgiY2xhc3MiLCAibm90VmlzaWJsZSIpOw0KICByZXN0b3JlLnNldEF0dHJpYnV0ZSgibmFtZSIsICIiKTsNCiAgcmVzdG9yZS5pZCA9ICJ1cGxvYWQiOw0KDQogIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQocmVzdG9yZSk7DQogIHJlc3RvcmUuY2xpY2soKTsNCg0KICByZXN0b3JlLm9uY2hhbmdlID0gZnVuY3Rpb24oKSB7DQogICAgdmFyIGZpbGVuYW1lID0gcmVzdG9yZS5maWxlc1swXS5uYW1lDQogICAgLy9jb25zb2xlLmxvZyhyZXN0b3JlLnNyY0VsZW1lbnQuZmlsZXNbMF0pOw0KICAgIHZhciBjaGVjayA9IGNvbmZpcm0oIkZpbGU6ICIgKyBmaWxlbmFtZSArICJcbkFsbCBkYXRhIHdpbGwgYmUgcmVwbGFjZWQgd2l0aCB0aG9zZSBmcm9tIHRoZSBiYWNrdXAuXG5TaG91bGQgdGhlIGZpbGVzIGJlIHJlc3RvcmVkPyIpOyANCiAgICBpZiAoY2hlY2sgPT0gdHJ1ZSkgew0KICAgICAgdmFyIHJlYWRlciAgPSBuZXcgRmlsZVJlYWRlcigpOw0KICAgICAgdmFyIGZpbGUgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCdpbnB1dFt0eXBlPWZpbGVdJykuZmlsZXNbMF07DQogICAgICBpZiAoZmlsZSkgew0KICAgICAgICByZWFkZXIucmVhZEFzRGF0YVVSTChmaWxlKTsNCiAgICAgICAgcmVhZGVyLm9ubG9hZCA9IGZ1bmN0aW9uKCkgew0KICAgICAgICAgIGNvbnNvbGUubG9nKHJlYWRlci5yZXN1bHQpOw0KICAgICAgICAgIHZhciBkYXRhID0gbmV3IE9iamVjdCgpOw0KICAgICAgICAgIGRhdGFbImNtZCJdICAgICA9ICJ4dGV2ZVJlc3RvcmUiDQogICAgICAgICAgZGF0YVsiYmFzZTY0Il0gID0gcmVhZGVyLnJlc3VsdA0KDQogICAgICAgICAgeFRlVmUoZGF0YSk7DQogICAgICAgICAgcmV0dXJuDQogICAgICAgIH07DQogICAgICB9IGVsc2Ugew0KICAgICAgICBhbGVydCgiRmlsZSBjb3VsZCBub3QgYmUgbG9hZGVkIikNCiAgICAgIH0NCiAgICB9DQogIH07DQp9DQoNCmZ1bmN0aW9uIGdldEJhc2U2NChmaWxlKSB7DQogICB2YXIgcmVhZGVyID0gbmV3IEZpbGVSZWFkZXIoKTsNCiAgIHJlYWRlci5yZWFkQXNEYXRhVVJMKGZpbGUpOw0KICAgcmVhZGVyLm9ubG9hZCA9IGZ1bmN0aW9uKCkgew0KICAgICBjb25zb2xlLmxvZyhyZWFkZXIucmVzdWx0KTsNCiAgIH07DQogICByZWFkZXIub25lcnJvciA9IGZ1bmN0aW9uKGVycm9yKSB7DQogICAgIGNvbnNvbGUubG9nKCdFcnJvcjogJywgZXJyb3IpOw0KICAgfTsNCn0NCg0KZnVuY3Rpb24gbG9nb3V0KCkgew0KICBkb2N1bWVudC5jb29raWUuc3BsaXQoJzsnKS5mb3JFYWNoKGZ1bmN0aW9uKGMpIHsNCiAgICBkb2N1bWVudC5jb29raWUgPSBjLnRyaW0oKS5zcGxpdCgnPScpWzBdICsgJz07JyArICdleHBpcmVzPVRodSwgMDEgSmFuIDE5NzAgMDA6MDA6MDAgVVRDOyc7DQogIH0pOw0KICBsb2NhdGlvbi5yZWxvYWQoKTsNCn0NCg0KZnVuY3Rpb24gZ2V0Q29va2llKG5hbWUpIHsNCiAgdmFyIHZhbHVlID0gIjsgIiArIGRvY3VtZW50LmNvb2tpZTsNCiAgdmFyIHBhcnRzID0gdmFsdWUuc3BsaXQoIjsgIiArIG5hbWUgKyAiPSIpOw0KICBpZiAocGFydHMubGVuZ3RoID09IDIpIHJldHVybiBwYXJ0cy5wb3AoKS5zcGxpdCgiOyIpLnNoaWZ0KCk7DQp9DQoNCmZ1bmN0aW9uIHNldENvb2tpZSh0b2tlbikgew0KICAvL2NvbnNvbGUubG9nKHRva2VuKTsNCiAgZG9jdW1lbnQuY29va2llID0gIlRva2VuPSIgKyB0b2tlbg0KfQ0KDQo=" - webUI["html/js/files.js"] = "ZnVuY3Rpb24gb3BlbkZpbGVzKGVsbSwgZmlsZVR5cGUpIHsNCiAgLy9kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic2V0dGluZ3MiKS5pbm5lckhUTUwgPSAiVGVzdCI7DQogIA0KICBjb2x1bW5Ub1NvcnQgPSAwOyANCiAgdmFyIG5ld0RpdiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzZXR0aW5ncyIpOw0KICANCiAgdmFyIG5ld0VudHJ5ID0gbmV3IE9iamVjdCgpOw0KICBuZXdFbnRyeVsiX2VsZW1lbnQiXSAgPSAiSFIiOw0KICBuZXdEaXYuYXBwZW5kQ2hpbGQoY3JlYXRlRWxlbWVudChuZXdFbnRyeSkpOw0KDQogIHZhciBuZXdFbnRyeSA9IG5ldyBPYmplY3QoKTsNCiAgbmV3RW50cnlbIl9lbGVtZW50Il0gID0gIklOUFVUIjsNCiAgbmV3RW50cnlbInR5cGUiXSA9ICJidXR0b24iOw0KICBuZXdFbnRyeVsiY2xhc3MiXSA9ICJidXR0b24iOw0KICBuZXdFbnRyeVsidmFsdWUiXSA9ICJOZXciOw0KICBuZXdFbnRyeVsib25jbGljayJdID0gJ2ZpbGVEZXRhaWwoIi0iLCAiJyArIGZpbGVUeXBlICsgJyIpJzsNCiAgbmV3RGl2LmFwcGVuZENoaWxkKGNyZWF0ZUVsZW1lbnQobmV3RW50cnkpKTsNCg0KICB2YXIgbmV3RW50cnkgPSBuZXcgT2JqZWN0KCk7DQogIG5ld0VudHJ5WyJfZWxlbWVudCJdICA9ICJJTlBVVCI7DQogIG5ld0VudHJ5WyJ0eXBlIl0gPSAiYnV0dG9uIjsNCiAgbmV3RW50cnlbImNsYXNzIl0gPSAiYnV0dG9uIjsNCiAgbmV3RW50cnlbInZhbHVlIl0gPSAiVXBkYXRlIjsNCiAgbmV3RW50cnlbIm9uY2xpY2siXSA9ICJmaWxlRGV0YWlsKDApIjsNCiAgLy9uZXdEaXYuYXBwZW5kQ2hpbGQoY3JlYXRlRWxlbWVudChuZXdFbnRyeSkpOw0KDQogIHZhciBkaXYgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic2V0dGluZ3MiKTsNCg0KICAgLy8gQnVpbGQgdGFibGUNCiAgdmFyIG5ld1RhYmxlID0gbmV3IE9iamVjdCgpOw0KICBuZXdUYWJsZVsiX2VsZW1lbnQiXSAgPSAiVEFCTEUiOw0KICBuZXdUYWJsZVsiaWQiXSAgICAgICAgPSAiaWRfbWFwcGluZyI7DQogIG5ld1RhYmxlWyJjbGFzcyJdICAgICA9ICJ0YWJsZS1tYXBwaW5nIjsNCiAgZGl2LmFwcGVuZENoaWxkKGNyZWF0ZUVsZW1lbnQobmV3VGFibGUpKTsNCg0KICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7IA0KICAgIGNyZWF0ZUZpbGVzVGFibGUoZmlsZVR5cGUpOyANCiAgfSwgMTApOw0KDQp9DQoNCmZ1bmN0aW9uIGNyZWF0ZUZpbGVzVGFibGUoZmlsZVR5cGUpIHsNCiAgdmFyIHRhYmxlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImlkX21hcHBpbmciKTsNCiAgdmFyIGF2YWlsYWJsZUZpbGVUeXBlcyA9IG5ldyBBcnJheSgpOw0KICANCiAgdGFibGUuaW5uZXJIVE1MID0gIiI7DQogIHZhciBuZXdUUiA9IG5ldyBPYmplY3QoKTsNCiAgbmV3VFJbIl9lbGVtZW50Il0gPSAiVFIiOw0KICBuZXdUUlsiY2xhc3MiXSAgICA9ICJ0YWJsZS1tYXBwaW5nLWhlYWRlciI7DQogIHRhYmxlLmFwcGVuZENoaWxkKGNyZWF0ZUVsZW1lbnQobmV3VFIpKTsNCg0KICB2YXIgdHIgPSB0YWJsZS5sYXN0Q2hpbGQ7DQoNCiAgc3dpdGNoKGZpbGVUeXBlKSB7DQogICAgY2FzZSAieG1sdHYiOiANCiAgICAgIGF2YWlsYWJsZUZpbGVUeXBlcyA9IG5ldyBBcnJheSgieG1sdHYiKTsgDQogICAgICB2YXIgdHJIZWFkbGluZXMgPSBuZXcgQXJyYXkoIkd1aWRlIiwgIkxhc3QgVXBkYXRlIiwgIkF2YWlsYWJpbGl0eSAlIiwgIkNoYW5uZWxzIiwgIlByb2dyYW1zIikNCiAgICAgIHZhciBjb21wYXRpYmlsaXR5S2V5cyA9IG5ldyBBcnJheSgieG1sdHYuY2hhbm5lbHMiLCAieG1sdHYucHJvZ3JhbXMiKQ0KICAgICAgYnJlYWs7DQoNCiAgICBjYXNlICJtM3UiOg0KICAgICAgYXZhaWxhYmxlRmlsZVR5cGVzID0gbmV3IEFycmF5KCJtM3UiLCAiaGRociIpOyANCiAgICAgIHZhciB0ckhlYWRsaW5lcyA9IG5ldyBBcnJheSgiUGxheWxpc3QiLCAiTGFzdCBVcGRhdGUiLCAiQXZhaWxhYmlsaXR5ICUiLCAiVHlwZSIsICJTdHJlYW1zIiwgImdyb3VwLXRpdGxlICUiLCAidHZnLWlkICUiLCAiVW5pcXVlIElEICUiKTsNCiAgICAgIHZhciBjb21wYXRpYmlsaXR5S2V5cyA9IG5ldyBBcnJheSgic3RyZWFtcyIsICJncm91cC50aXRsZSIsICJ0dmcuaWQiLCAic3RyZWFtLmlkIik7DQogICAgICBicmVhazsNCiAgfQ0KDQogIGZvciAodmFyIGkgPSAwOyBpIDwgdHJIZWFkbGluZXMubGVuZ3RoOyBpKyspIHsNCiAgICB2YXIgbmV3VEQgPSBuZXcgT2JqZWN0KCk7DQogICAgbmV3VERbIl9lbGVtZW50Il0gPSAiVEQiOw0KICAgIG5ld1REWyJfdGV4dCJdICAgID0gdHJIZWFkbGluZXNbaV07DQogICAgdHIuYXBwZW5kQ2hpbGQoY3JlYXRlRWxlbWVudChuZXdURCkpOw0KICB9DQogIA0KICBmb3IgKHZhciBpID0gMDsgaSA8IGF2YWlsYWJsZUZpbGVUeXBlcy5sZW5ndGg7IGkrKykgew0KICAgIA0KICAgIHZhciBmaWxlVHlwZSA9IGF2YWlsYWJsZUZpbGVUeXBlc1tpXQ0KDQogICAgdmFyIGRhdGEgPSBjb25maWdbImZpbGVzIl1bZmlsZVR5cGVdOw0KICAgIA0KICAgIHZhciBhbGxGaWxlcyA9IGdldE9iaktleXMoZGF0YSkNCiAgDQogICAgZm9yICh2YXIgZiA9IDA7IGYgPCBhbGxGaWxlcy5sZW5ndGg7IGYrKykgew0KICAgICAgdmFyIGVsbSAgICAgICAgICAgPSBkYXRhW2FsbEZpbGVzW2ZdXTsNCiAgICAgIHZhciB0YWJsZSAgICAgICAgID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImlkX21hcHBpbmciKTsNCiAgICAgIHZhciBmaWxlSUQgICAgICAgID0gZWxtWyJpZC5wcm92aWRlciJdOw0KICAgICAgdmFyIG5hbWUgICAgICAgICAgPSBlbG1bIm5hbWUiXTsNCiAgICAgIHZhciBsYXN0VXBkYXRlICAgID0gZWxtWyJsYXN0LnVwZGF0ZSJdOw0KICAgICAgdmFyIGF2YWlsYWJpbGl0eSAgPSBlbG1bInByb3ZpZGVyLmF2YWlsYWJpbGl0eSJdOw0KICAgICAgdmFyIHR5cGUgICAgICAgICAgPSBlbG1bInR5cGUiXS50b1VwcGVyQ2FzZSgpOw0KICAgICAgdmFyIGNvbXBhdGliaWxpdHkgPSBlbG1bImNvbXBhdGliaWxpdHkiXTsNCg0KICAgICAgLy8gQ3JlYXRlIFRSDQogICAgICB2YXIgbmV3VFIgPSBuZXcgT2JqZWN0KCk7DQogICAgICBuZXdUUlsiX2VsZW1lbnQiXSAgICAgICA9ICJUUiI7DQogICAgICBuZXdUUlsiY2xhc3MiXSAgICAgICAgICA9ICIiOw0KICAgICAgbmV3VFJbImlkIl0gICAgICAgICAgICAgPSBmaWxlSUQ7DQogICAgICBuZXdUUlsib25jbGljayJdICAgICAgICA9ICdqYXZhc2NyaXB0OiBmaWxlRGV0YWlsKCInICsgZmlsZUlEICsgJyIsIicgKyBmaWxlVHlwZSArICciKTsnOw0KICAgICAgdGFibGUuYXBwZW5kQ2hpbGQoY3JlYXRlRWxlbWVudChuZXdUUikpOw0KDQogICAgICB2YXIgdHIgPSB0YWJsZS5sYXN0Q2hpbGQ7DQoNCiAgICAgIC8vIENyZWF0ZSBmaWxlIG5hbWUgVEQNCiAgICAgIHZhciBuZXdURCA9IG5ldyBPYmplY3QoKTsNCiAgICAgIG5ld1REWyJfZWxlbWVudCJdID0gIlAiOw0KICAgICAgbmV3VERbIl90ZXh0Il0gICAgPSBuYW1lOw0KICAgICAgY3JlYXRlTmV3VEQobmV3VEQsIHRyKTsNCg0KICAgICAgLy8gQ3JlYXRlIGxhc3QgdXBkYXRlIFREDQogICAgICB2YXIgbmV3VEQgPSBuZXcgT2JqZWN0KCk7DQogICAgICBuZXdURFsiX2VsZW1lbnQiXSA9ICJQIjsNCiAgICAgIG5ld1REWyJfdGV4dCJdICAgID0gbGFzdFVwZGF0ZTsNCiAgICAgIGNyZWF0ZU5ld1REKG5ld1RELCB0cik7DQoNCiAgICAgIC8vIENyZWF0ZSBhdmFpbGFiaWxpdHkgVEQNCiAgICAgIHZhciBuZXdURCA9IG5ldyBPYmplY3QoKTsNCiAgICAgIG5ld1REWyJfZWxlbWVudCJdID0gIlAiOw0KICAgICAgbmV3VERbIl90ZXh0Il0gICAgPSBhdmFpbGFiaWxpdHk7DQogICAgICBjcmVhdGVOZXdURChuZXdURCwgdHIpOw0KDQogICAgICBpZiAoZmlsZVR5cGUgPT0gIm0zdSIgfHwgZmlsZVR5cGUgPT0gImhkaHIiKSB7DQoNCiAgICAgICAgLy8gQ3JlYXRlIFR5cGUgVEQNCiAgICAgICAgdmFyIG5ld1REID0gbmV3IE9iamVjdCgpOw0KICAgICAgICBuZXdURFsiX2VsZW1lbnQiXSA9ICJQIjsNCiAgICAgICAgbmV3VERbIl90ZXh0Il0gICAgPSB0eXBlOw0KICAgICAgICBjcmVhdGVOZXdURChuZXdURCwgdHIpOw0KICANCiAgICAgIH0NCiAgICAgIA0KICAgICAgLy8gQ3JlYXRlIGFsbCBjb21wYXRpYmlsaXR5IFREcw0KDQogICAgICBmb3IgKHZhciBqID0gMDsgaiA8IGNvbXBhdGliaWxpdHlLZXlzLmxlbmd0aDsgaisrKSB7DQogICAgICAgIHZhciBuZXdURCA9IG5ldyBPYmplY3QoKTsNCiAgICAgICAgbmV3VERbIl9lbGVtZW50Il0gPSAiUCI7DQogICAgICAgIG5ld1REWyJfdGV4dCJdICAgID0gY29tcGF0aWJpbGl0eVtjb21wYXRpYmlsaXR5S2V5c1tqXV07DQogICAgICAgIGNyZWF0ZU5ld1REKG5ld1RELCB0cik7DQogICAgICB9DQoNCiAgICB9DQoNCiAgfQ0KICANCiAgDQogIHNvcnRUYWJsZSgwKQ0KDQogIC8vIHVzYWdlIEluZm8gIA0KICB2YXIgZGl2ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNldHRpbmdzIik7DQogIHN3aXRjaChtZW51W2FjdGl2ZU1lbnUuaWRdLmhhc093blByb3BlcnR5KCJfdXNhZ2UiKSkgew0KICAgIGNhc2UgdHJ1ZTogDQogICAgICB2YXIgdXNhZ2VJdGVtID0gbmV3IE9iamVjdCgpOw0KICAgICAgdXNhZ2VJdGVtWyJfZWxlbWVudCJdID0gIlBSRSINCiAgICAgIHVzYWdlSXRlbVsiX3RleHQiXSAgICA9IG1lbnVbYWN0aXZlTWVudS5pZF1bIl91c2FnZSJdOw0KDQogICAgICB2YXIgbmV3SFIgPSBuZXcgT2JqZWN0KCk7DQogICAgICBuZXdIUlsiX2VsZW1lbnQiXSA9ICJIUiINCiAgICAgIGRpdi5hcHBlbmRDaGlsZChjcmVhdGVFbGVtZW50KG5ld0hSKSk7DQogICAgICBkaXYuYXBwZW5kQ2hpbGQoY3JlYXRlRWxlbWVudCh1c2FnZUl0ZW0pKTsNCiAgICAgIGJyZWFrOw0KICB9DQoNCiAgY2FsY3VsYXRlV3JhcHBlckhlaWdodCgpOw0KICByZXR1cm47DQp9DQoNCg0KZnVuY3Rpb24gZmlsZURldGFpbChmaWxlSUQsIGZpbGVUeXBlKSB7DQoNCiAgb3B0aW9uc1RleHQgID0gbmV3IEFycmF5KCJNM1UiLCAiSERIb21lUnVuIC0gW0V4cGVyaW1lbnRhbF0iKQ0KICBvcHRpb25zVmFsdWUgPSBuZXcgQXJyYXkoIm0zdSIsICJoZGhyIikNCg0KICBzd2l0Y2ggKGZpbGVUeXBlKSB7DQogICAgDQogICAgY2FzZSAibTN1IjogDQogICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibmFtZSIpLnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAiUGxheWxpc3QgbmFtZSIpOyANCiAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJkZXNjcmlwdGlvbiIpLnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAiRGVzY3JpcHRpb24gb2YgdGhpcyBwbGF5bGlzdCIpOyANCiAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJmaWxlLWRldGFpbC1oZWFkbGluZSIpLmlubmVySFRNTCA9ICJNM1UgUGxheWxpc3QiOyANCiAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJmaWxlLXBhdGgiKS5pbm5lckhUTUwgPSAiTTNVIEZpbGU6IjsgDQogICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZmlsZS5zb3VyY2UiKS5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgIkxvY2FsIG9yIHJlbW90ZSIpOw0KICAgICAgYnJlYWs7DQoNCiAgICBjYXNlICJoZGhyIjogDQogICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibmFtZSIpLnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAiSERIb21lUnVuIG5hbWUiKTsgDQogICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZGVzY3JpcHRpb24iKS5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgIkRlc2NyaXB0aW9uIG9mIHRoaXMgSERIb21lUnVuIHR1bmVyIik7IA0KICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImZpbGUtZGV0YWlsLWhlYWRsaW5lIikuaW5uZXJIVE1MID0gIkhESG9tZVJ1biI7IA0KICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImZpbGUtcGF0aCIpLmlubmVySFRNTCA9ICJIREhvbWVSdW4gSVA6IjsgDQogICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZmlsZS5zb3VyY2UiKS5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgIklQIGFkZHJlc3MgYW5kIHBvcnQgb2YgdGhlIHR1bmVyICgxOTIuMTY4LjEuMTA6NTAwNCkiKTsNCiAgICAgIGJyZWFrOw0KICAgIA0KICAgIGNhc2UgInhtbHR2IjogDQogICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibmFtZSIpLnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAiWE1MVFYgbmFtZSIpOyANCiAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJkZXNjcmlwdGlvbiIpLnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAiRGVzY3JpcHRpb24gb2YgdGhpcyBYTUxUViBmaWxlIik7IA0KICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImZpbGUtZGV0YWlsLWhlYWRsaW5lIikuaW5uZXJIVE1MID0gIlhNTFRWIEZpbGUiOyANCiAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJmaWxlLXBhdGgiKS5pbm5lckhUTUwgPSAiWE1MVFYgRmlsZToiOw0KICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImZpbGUuc291cmNlIikuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJMb2NhbCBvciByZW1vdGUiKTsNCg0KICAgICAgb3B0aW9uc1RleHQgID0gbmV3IEFycmF5KCJYTUxUViIpDQogICAgICBvcHRpb25zVmFsdWUgPSBuZXcgQXJyYXkoInhtbHR2IikNCiAgICAgIGJyZWFrOw0KICB9DQoNCiAgbW9kaWZ5T3B0aW9uKCJ0eXBlIiwgb3B0aW9uc1RleHQsIG9wdGlvbnNWYWx1ZSkNCiAgDQogIHNob3dQb3BVcEVsZW1lbnQoJ2ZpbGUtZGV0YWlsJyk7DQoNCiAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNhdmVGaWxlRGV0YWlsIikuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IHNhdmVGaWxlRGV0YWlsKCInICsgZmlsZUlEICsgJyIsIicgKyBmaWxlVHlwZSArICciLCBmYWxzZSknKTsNCiAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInVwZGF0ZUZpbGVEZXRhaWwiKS5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogdXBkYXRlRmlsZSgiJyArIGZpbGVJRCArICciLCInICsgZmlsZVR5cGUgKyAnIiwgZmFsc2UpJyk7DQogIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJkZWxldGVGaWxlRGV0YWlsIikuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IHNhdmVGaWxlRGV0YWlsKCInICsgZmlsZUlEICsgJyIsIicgKyBmaWxlVHlwZSArICciLCB0cnVlKScpOw0KDQogIHZhciBkYXRhID0gbmV3IE9iamVjdCgpOw0KDQogIHN3aXRjaChmaWxlSUQpIHsNCg0KICAgIGNhc2UgIi0iOiAvLyBOZXcgZmlsZQ0KICAgICAgZGF0YVsibmFtZSJdICAgICAgICA9ICIiOw0KICAgICAgZGF0YVsiZGVzY3JpcHRpb24iXSA9ICIiOw0KICAgICAgZGF0YVsiZmlsZS5zb3VyY2UiXSA9ICIiOw0KICAgICAgZGF0YVsidHlwZSJdID0gZmlsZVR5cGU7DQogICAgICANCiAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJkZWxldGVGaWxlRGV0YWlsIikuY2xhc3NOYW1lID0gImRlbGV0ZSI7DQogICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidHlwZSIpLnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiY2hhbmdlRmlsZVR5cGUodGhpcyk7IikNCiAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0eXBlIikuc2V0QXR0cmlidXRlKCJkYXRhLWlkIiwgZmlsZUlEKQ0KICAgICAgDQogICAgICBzaG93RWxlbWVudCgiZGVsZXRlRmlsZURldGFpbCIsIGZhbHNlKTsNCiAgICAgIHNob3dFbGVtZW50KCJ1cGRhdGVGaWxlRGV0YWlsIiwgZmFsc2UpOw0KICAgICAgDQogICAgICBpZiAoZmlsZVR5cGUgPT0gInhtbHR2Iikgew0KICAgICAgICBzaG93RWxlbWVudCgidHlwZSIsIGZhbHNlKTsNCiAgICAgICAgc2hvd0VsZW1lbnQoImZpbGUtdHlwZSIsIGZhbHNlKTsNCiAgICAgIH0gZWxzZSB7DQogICAgICAgIHNob3dFbGVtZW50KCJ0eXBlIiwgdHJ1ZSk7DQogICAgICAgIHNob3dFbGVtZW50KCJmaWxlLXR5cGUiLCB0cnVlKTsNCiAgICAgIH0NCiAgICAgIA0KICAgICAgYnJlYWs7DQoNCiAgICBkZWZhdWx0OiANCiAgICAgIGRhdGEgPSBjb25maWdbImZpbGVzIl1bZmlsZVR5cGVdW2ZpbGVJRF07DQogICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZGVsZXRlRmlsZURldGFpbCIpLmNsYXNzTmFtZSA9ICJkZWxldGUiOw0KICAgICAgDQogICAgICBzaG93RWxlbWVudCgidXBkYXRlRmlsZURldGFpbCIsIHRydWUpOw0KICAgICAgc2hvd0VsZW1lbnQoInR5cGUiLCBmYWxzZSk7DQogICAgICBzaG93RWxlbWVudCgiZmlsZS10eXBlIiwgZmFsc2UpOw0KICAgICAgDQogICAgICBicmVhazsNCg0KICB9DQoNCiAgdmFyIGtleXMgPSBnZXRPYmpLZXlzKGRhdGEpOw0KICANCiAgZm9yICh2YXIgaSA9IDA7IGkgPCBrZXlzLmxlbmd0aDsgaSsrKSB7DQoNCiAgICBpZihkb2N1bWVudC5nZXRFbGVtZW50QnlJZChrZXlzW2ldKSl7DQogICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChrZXlzW2ldKS52YWx1ZSA9IGRhdGFba2V5c1tpXV07DQogICAgfSANCg0KDQogIH0NCg0KfQ0KDQpmdW5jdGlvbiBjaGFuZ2VGaWxlVHlwZShlbG0pIHsNCg0KICB2YXIgZmlsZUlEID0gZWxtLmdldEF0dHJpYnV0ZSgiZGF0YS1pZCIpOw0KICB2YXIgZmlsZVR5cGUgPSBlbG0ub3B0aW9uc1tlbG0uc2VsZWN0ZWRJbmRleF0udmFsdWU7DQogIA0KICBmaWxlRGV0YWlsKGZpbGVJRCwgZmlsZVR5cGUpDQoNCn0NCg0KDQpmdW5jdGlvbiBzYXZlRmlsZURldGFpbChmaWxlSUQsIGZpbGVUeXBlLCBkZWxldGVGaWxlKSB7DQoNCiAgaWYgKGZpbGVJRCA9PSB1bmRlZmluZWQpIHsNCiAgICBhbGVydCgiSUQgaXMgbWlzc2luZyEhISIpOw0KICAgIHJldHVybiANCiAgfQ0KDQogIHZhciBpbnB1dHMgICAgICA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJmaWxlLWRldGFpbCIpLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJJTlBVVCIpOw0KICB2YXIgc2VsZWN0cyAgICAgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZmlsZS1kZXRhaWwiKS5nZXRFbGVtZW50c0J5VGFnTmFtZSgiU0VMRUNUIik7DQogIHZhciBuZXdGaWxlRGF0YSA9IG5ldyBPYmplY3QoKTsNCiAgdmFyIGRhdGEgICAgICAgID0gbmV3IE9iamVjdCgpOw0KDQogIGZvciAodmFyIGkgPSAwOyBpIDwgaW5wdXRzLmxlbmd0aDsgaSsrKSB7DQogICAgc3dpdGNoKGlucHV0c1tpXS50eXBlKSB7DQogICAgICBjYXNlICJ0ZXh0IjogbmV3RmlsZURhdGFbaW5wdXRzW2ldLm5hbWVdID0gaW5wdXRzW2ldLnZhbHVlOyBicmVhazsNCiAgICB9DQogIH0NCg0KICBmb3IgKHZhciBpID0gMDsgaSA8IHNlbGVjdHMubGVuZ3RoOyBpKyspIHsNCiAgICBuZXdGaWxlRGF0YVtzZWxlY3RzW2ldLmlkXSA9IHNlbGVjdHNbaV0ub3B0aW9uc1tzZWxlY3RzW2ldLnNlbGVjdGVkSW5kZXhdLnZhbHVlOw0KICB9DQoNCiAgaWYgKGRlbGV0ZUZpbGUgPT0gdHJ1ZSkgew0KICAgIHN3aXRjaChmaWxlVHlwZSkgew0KICAgICAgY2FzZSAibTN1IjogICB2YXIgYWxlcnRUZXh0ID0gIkRlbGV0ZSB0aGlzIHBsYXlsaXN0PyI7IGJyZWFrOw0KICAgICAgY2FzZSAiaGRociI6IHZhciBhbGVydFRleHQgPSAiRGVsZXRlIHRoaXMgSERIb21lUnVuIHR1bmVyPyI7IGJyZWFrOw0KICAgICAgY2FzZSAieG1sdHYiOiB2YXIgYWxlcnRUZXh0ID0gIkRlbGV0ZSB0aGlzIFhNTFRWIGZpbGU/IjsgYnJlYWs7DQogICAgfQ0KDQogICAgaWYgKGNvbmZpcm0oYWxlcnRUZXh0KSkgew0KICAgICAgbmV3RmlsZURhdGFbImRlbGV0ZSJdID0gdHJ1ZQ0KICAgICAgZGF0YSA9IGJ1aWxkRmlsZXNPYmooZmlsZVR5cGUsIGZpbGVJRCwgbmV3RmlsZURhdGEpOw0KICAgICAgY29uc29sZS5sb2coZGF0YSk7DQogICAgICANCiAgICB9IGVsc2Ugew0KICAgICAgc2hvd0VsZW1lbnQoInBvcHVwIiwgZmFsc2UpOw0KICAgICAgcmV0dXJuDQogICAgDQogICAgfQ0KDQogIH0gZWxzZSB7DQogIA0KICAgIHN3aXRjaChjb25maWdbImZpbGVzIl1bZmlsZVR5cGVdLmhhc093blByb3BlcnR5KGZpbGVJRCkpIHsNCg0KICAgICAgY2FzZSB0cnVlOiANCiAgICAgICAgZGF0YSA9IGNvbmZpZ1siZmlsZXMiXVtmaWxlVHlwZV1bZmlsZUlEXTsgDQogICAgICAgIGlmIChkYXRhWyJmaWxlLnNvdXJjZSJdICE9IG5ld0ZpbGVEYXRhWyJmaWxlLnNvdXJjZSJdKSB7DQogICAgICAgICAgZGF0YVsidXBkYXRlIl0gPSB0cnVlDQogICAgICAgIH0gZWxzZSB7DQogICAgICAgICAgZGF0YVsidXBkYXRlUGxheWxpc3ROYW1lIl0gPSB0cnVlOw0KICAgICAgICB9DQogICAgICAgIGJyZWFrOw0KICAgICAgDQogICAgICBjYXNlIGZhbHNlOiANCiAgICAgICAgbmV3RmlsZURhdGFbIm5ldyJdID0gdHJ1ZTsNCiAgICAgICAgZGF0YSA9IGJ1aWxkRmlsZXNPYmooZmlsZVR5cGUsIGZpbGVJRCwgbmV3RmlsZURhdGEpOw0KICAgICAgICBicmVhaw0KDQogICAgfQ0KICANCiAgfSAgDQogIA0KICBzd2l0Y2goZmlsZVR5cGUpIHsNCg0KICAgIGNhc2UgIm0zdSI6ICAgZGF0YVsiY21kIl0gPSAic2F2ZUZpbGVzTTNVIjsgYnJlYWs7DQogICAgY2FzZSAiaGRociI6ICBkYXRhWyJjbWQiXSA9ICJzYXZlRmlsZXNIREhSIjsgYnJlYWs7DQogICAgY2FzZSAieG1sdHYiOiBkYXRhWyJjbWQiXSA9ICJzYXZlRmlsZXNYTUxUViI7IGJyZWFrOw0KDQogIH0NCiAgLy9jb25zb2xlLmxvZyhkYXRhKTsNCiAgeFRlVmUoZGF0YSk7DQogIHJldHVybg0KfQ0KDQpmdW5jdGlvbiB1cGRhdGVGaWxlKGZpbGVJRCwgZmlsZVR5cGUsIGFsbEZpbGVzKSB7DQogIA0KICBzd2l0Y2goY29uZmlnWyJmaWxlcyJdW2ZpbGVUeXBlXS5oYXNPd25Qcm9wZXJ0eShmaWxlSUQpKSB7DQoNCiAgICBjYXNlIHRydWU6IA0KICAgIA0KICAgICAgdmFyIGRhdGEgPSBuZXcgT2JqZWN0KCk7DQogICAgICB2YXIgZGF0YSA9IGJ1aWxkRmlsZXNPYmooZmlsZVR5cGUsIGZpbGVJRCwgY29uZmlnWyJmaWxlcyJdW2ZpbGVUeXBlXVtmaWxlSURdKQ0KICAgICAgZGF0YVsibmV3Il0gPSB0cnVlDQoNCiAgICAgIHN3aXRjaChmaWxlVHlwZSkgew0KDQogICAgICAgIGNhc2UgIm0zdSI6ICAgZGF0YVsiY21kIl0gPSAidXBkYXRlRmlsZU0zVSI7IGJyZWFrOw0KICAgICAgICBjYXNlICJoZGhyIjogIGRhdGFbImNtZCJdID0gInVwZGF0ZUZpbGVIREhSIjsgYnJlYWs7DQogICAgICAgIGNhc2UgInhtbHR2IjogZGF0YVsiY21kIl0gPSAidXBkYXRlRmlsZVhNTFRWIjsgYnJlYWs7DQoNCiAgICAgIH0NCiAgICAgIA0KICAgICAgeFRlVmUoZGF0YSk7DQogICAgICANCiAgICAgIGJyZWFrOw0KICB9DQoNCn0NCg0KZnVuY3Rpb24gYnVpbGRGaWxlc09iaihmaWxlVHlwZSwgZmlsZUlELCBvYmopIHsNCg0KICB2YXIgZGF0YSA9IG5ldyBPYmplY3QoKTsNCiAgZGF0YVsiZmlsZXMiXSA9IG5ldyBPYmplY3QoKTsNCiAgZGF0YVsiZmlsZXMiXVtmaWxlVHlwZV0gPSBuZXcgT2JqZWN0KCk7DQogIGRhdGFbImZpbGVzIl1bZmlsZVR5cGVdW2ZpbGVJRF0gPSBvYmoNCiAgcmV0dXJuIGRhdGENCg0KfQ==" - webUI["html/js/log.js"] = "dmFyIGxvZ0ludGVydmFsDQoNCg0KZnVuY3Rpb24gdXBkYXRlTG9nKCkgew0KICB2YXIgZGF0YSA9IG5ldyBPYmplY3QoKTsNCiAgZGF0YVsiY21kIl0gPSAiZ2V0TG9nIjsNCiAgeFRlVmUoZGF0YSk7DQogIHdyaXRlTG9nSW5EaXYoKTsNCiAgcmV0dXJuDQp9DQoNCmZ1bmN0aW9uIHdyaXRlTG9nSW5EaXYoKSB7DQogIHZhciBsb2dzID0gbG9nWyJsb2ciXTsNCiAgdmFyIGRpdiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzZXR0aW5ncyIpLmxhc3RDaGlsZC5sYXN0Q2hpbGQ7DQogIGRpdi5pbm5lckhUTUwgPSAiIjsNCg0KICB2YXIgbWF4ID0gNTA7DQogIA0KICANCiAgZm9yICh2YXIgaSA9IDA7IGkgPCBsb2dzLmxlbmd0aDsgaSsrKSB7DQogICAgdmFyIG5ld0VudHJ5ID0gbmV3IE9iamVjdCgpOw0KICAgIG5ld0VudHJ5WyJfZWxlbWVudCJdICA9ICJQIjsNCg0KICAgIGlmIChsb2dzW2ldLmluY2x1ZGVzKCJFUlJPUiIpKSB7DQovLyAgICAgIGNhc2UgIndhcm5pbmdzIjogIG1zZ1R5cGUgPSAid2FybmluZ01zZyI7IGJyZWFrOw0KICAgICAgbmV3RW50cnlbImNsYXNzIl0gICA9ICJlcnJvck1zZyI7DQogICAgfQ0KDQogICAgaWYgKGxvZ3NbaV0uaW5jbHVkZXMoIldBUk5JTkciKSkgew0KLy8gICAgICBjYXNlICJ3YXJuaW5ncyI6ICBtc2dUeXBlID0gIndhcm5pbmdNc2ciOyBicmVhazsNCiAgICAgIG5ld0VudHJ5WyJjbGFzcyJdICAgPSAid2FybmluZ01zZyI7DQogICAgfQ0KDQogICAgbmV3RW50cnlbIl90ZXh0Il0gICAgID0gbG9nc1tpXTsNCiAgICANCiAgICBkaXYuYXBwZW5kQ2hpbGQoY3JlYXRlRWxlbWVudChuZXdFbnRyeSkpOw0KICB9DQoNCiAgY2FsY3VsYXRlV3JhcHBlckhlaWdodCgpOw0KICB2YXIgc2Nyb2xsRGl2ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImJveC13cmFwcGVyIik7DQogIHNjcm9sbERpdi5zY3JvbGxUb3AgPSBzY3JvbGxEaXYuc2Nyb2xsSGVpZ2h0Ow0KfQ0KDQpmdW5jdGlvbiBzaG93TG9nKG9iaikgew0KICAvL2xvZ0ludGVydmFsID0gc2V0SW50ZXJ2YWwodXBkYXRlTG9nLCA1MDAwKTsNCg0KICB2YXIgbG9ncyA9IGxvZ1sibG9nIl07DQoNCiAgdmFyIGRpdiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzZXR0aW5ncyIpOw0KDQogIHZhciBuZXdFbnRyeSA9IG5ldyBPYmplY3QoKTsNCiAgbmV3RW50cnlbIl9lbGVtZW50Il0gID0gIkhSIjsNCiAgZGl2LmFwcGVuZENoaWxkKGNyZWF0ZUVsZW1lbnQobmV3RW50cnkpKTsNCiAgLy9kaXYgPSBkaXYubGFzdENoaWxkOw0KDQogIHZhciBuZXdFbnRyeSA9IG5ldyBPYmplY3QoKTsNCiAgbmV3RW50cnlbIl9lbGVtZW50Il0gICAgPSAiSU5QVVQiOw0KICBuZXdFbnRyeVsidHlwZSJdICAgICAgICA9ICJidXR0b24iOw0KICBuZXdFbnRyeVsiY2xhc3MiXSAgICAgICA9ICJidXR0b24iOw0KICBuZXdFbnRyeVsidmFsdWUiXSAgICAgICA9ICJFbXB0eSBMb2ciOw0KICBuZXdFbnRyeVsib25jbGljayJdICAgICA9ICJlbXB0eUxvZygpIjsNCiAgZGl2LmFwcGVuZENoaWxkKGNyZWF0ZUVsZW1lbnQobmV3RW50cnkpKTsNCg0KICB2YXIgbmV3RW50cnkgPSBuZXcgT2JqZWN0KCk7DQogIG5ld0VudHJ5WyJfZWxlbWVudCJdICAgID0gImNvZGUiOw0KICBuZXdFbnRyeVsiX3RleHQiXSAgICAgICAgPSAiVXBkYXRlIExvZzogIjsNCiAgZGl2LmFwcGVuZENoaWxkKGNyZWF0ZUVsZW1lbnQobmV3RW50cnkpKTsNCg0KICB2YXIgbmV3RW50cnkgPSBuZXcgT2JqZWN0KCk7DQogIG5ld0VudHJ5WyJfZWxlbWVudCJdICAgID0gIklOUFVUIjsNCiAgbmV3RW50cnlbInR5cGUiXSAgICAgICAgPSAiY2hlY2tib3giOw0KICAvL25ld0VudHJ5WyJjaGVja2VkIl0gICAgID0gImNoZWNrYm94IjsNCiAgbmV3RW50cnlbIm9uY2xpY2siXSAgICAgPSAibG9nVXBkYXRlcyh0aGlzKSI7DQogIGRpdi5hcHBlbmRDaGlsZChjcmVhdGVFbGVtZW50KG5ld0VudHJ5KSk7DQoNCiAgdmFyIG5ld0VudHJ5ID0gbmV3IE9iamVjdCgpOw0KICBuZXdFbnRyeVsiX2VsZW1lbnQiXSAgPSAiSFIiOw0KICBkaXYuYXBwZW5kQ2hpbGQoY3JlYXRlRWxlbWVudChuZXdFbnRyeSkpOw0KDQogIA0KDQoNCiAgDQogIHZhciBuZXdXcmFwcGVyID0gbmV3IE9iamVjdCgpOw0KICBuZXdXcmFwcGVyWyJfZWxlbWVudCJdICA9ICJESVYiOw0KICBuZXdXcmFwcGVyWyJpZCJdICAgICAgICA9ICJib3gtd3JhcHBlciI7DQogIGRpdi5hcHBlbmRDaGlsZChjcmVhdGVFbGVtZW50KG5ld1dyYXBwZXIpKTsNCiAgZGl2ID0gZGl2Lmxhc3RDaGlsZDsNCg0KICB2YXIgbmV3UHJlID0gbmV3IE9iamVjdCgpOw0KICBuZXdQcmVbIl9lbGVtZW50Il0gID0gIlBSRSI7DQogIG5ld1ByZVsiaWQiXSAgICAgICAgPSAibG9nU2NyZWVuIjsNCiAgZGl2LmFwcGVuZENoaWxkKGNyZWF0ZUVsZW1lbnQobmV3UHJlKSk7DQoNCiAgZGl2ID0gZGl2Lmxhc3RDaGlsZDsNCg0KICB3cml0ZUxvZ0luRGl2KCkNCiAgcmV0dXJuDQp9DQoNCmZ1bmN0aW9uIGVtcHR5TG9nKCkgew0KICB2YXIgZGF0YSA9IG5ldyBPYmplY3QoKTsNCiAgZGF0YVsiY21kIl0gPSAiZW1wdHlMb2ciOw0KICB4VGVWZShkYXRhKTsNCiAgcmV0dXJuDQp9DQoNCmZ1bmN0aW9uIGxvZ1VwZGF0ZXMoZWxtKSB7DQogIHN3aXRjaChlbG0uY2hlY2tlZCkgew0KICAgIGNhc2UgZmFsc2U6IGNsZWFySW50ZXJ2YWwobG9nSW50ZXJ2YWwpOyBicmVhazsNCiAgICBjYXNlIHRydWU6IGxvZ0ludGVydmFsID0gc2V0SW50ZXJ2YWwodXBkYXRlTG9nLCA1MDAwKTsgYnJlYWs7DQogICAgDQogIH0NCn0=" - webUI["html/img/x_black.png"] = "iVBORw0KGgoAAAANSUhEUgAAAQAAAAEACAIAAADTED8xAAAAAXNSR0IArs4c6QAAAAlwSFlzAAAWJQAAFiUBSVIk8AAAA6ppVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IlhNUCBDb3JlIDUuNC4wIj4KICAgPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIgogICAgICAgICAgICB4bWxuczp0aWZmPSJodHRwOi8vbnMuYWRvYmUuY29tL3RpZmYvMS4wLyIKICAgICAgICAgICAgeG1sbnM6ZXhpZj0iaHR0cDovL25zLmFkb2JlLmNvbS9leGlmLzEuMC8iPgogICAgICAgICA8eG1wOk1vZGlmeURhdGU+MjAxOC0xMS0xNVQxNzoxMTozNzwveG1wOk1vZGlmeURhdGU+CiAgICAgICAgIDx4bXA6Q3JlYXRvclRvb2w+UGl4ZWxtYXRvciAzLjM8L3htcDpDcmVhdG9yVG9vbD4KICAgICAgICAgPHRpZmY6T3JpZW50YXRpb24+MTwvdGlmZjpPcmllbnRhdGlvbj4KICAgICAgICAgPHRpZmY6Q29tcHJlc3Npb24+NTwvdGlmZjpDb21wcmVzc2lvbj4KICAgICAgICAgPHRpZmY6UmVzb2x1dGlvblVuaXQ+MjwvdGlmZjpSZXNvbHV0aW9uVW5pdD4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+MTQ0PC90aWZmOllSZXNvbHV0aW9uPgogICAgICAgICA8dGlmZjpYUmVzb2x1dGlvbj4xNDQ8L3RpZmY6WFJlc29sdXRpb24+CiAgICAgICAgIDxleGlmOlBpeGVsWERpbWVuc2lvbj4yNTY8L2V4aWY6UGl4ZWxYRGltZW5zaW9uPgogICAgICAgICA8ZXhpZjpDb2xvclNwYWNlPjE8L2V4aWY6Q29sb3JTcGFj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a1jSekqmtA1rrGsx7JYkDuvrVahwRdgVXD1xcwri6mmYRULLe4CuPc2wfrGo4U+7Y/3S9ZHD+GcflbnfiCJbr77whoaS6ucCXVkVkuLKgORQwNJFygRDJnqwb9i3b0HxkqjT0L4erGy5Rh1IRnhXrpaZq6GZCyRLf6cvhoTY6V9koX8bGdEUlyWVm6W5q1GuostihNm97L/dpm5k+QHCbDna0zRzgSS/lRHWL7iHPOa+9YsYkpttoCwSMcQRkrWioz5Qsc7aFJ1coHY3QyJ9jSjfJEOCfTUpWzehVBnUbqCJOCHEkB1xsmXDwq9DnObUz9q4QOUqYPaPKFzUKcVj6Eeu461q67Vhlqy6+Xo11G52JhRZNNW1FRbN00FWPVwguSa+8YEZ1i+D9vQjelm/iHTwAB69Vwd7CkuGLOcWtxfR4o+dHhNg4DNmhDvJ8M6ehknvhTXMDp8kQQgT33W4z+i7k/2gho+Jvrp1NTVwgW5opV76yl8F/cufe9CyJiRllZ6lYCHMXWPAXmNp9CRb8Pi30r658sHtCSCPsZNXQDYdMaLIek/No13V/rBfGMFSCXnsKNo1dDelnKt/dyUH8uvjjLH+zyfpbv1iUl/NVBt4mVJy58HoDyFZLt0rrj4G7TfIjARvMjy7d6JnR/UXS/+yeD5kLYkETxpRZL2jZJVzb7cl9yZA/cYqh4z+20AEzOj+BKxbZYRFqXQssvLs5gQzpBUp616rNsX55WdXBHbPBRrwlBm5v2VYJo1FsjmOtQg8ezo+fd8Ve4qy04HPRlmR1UiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABGwg8D8UnyVeZFwGAQAAAABJRU5ErkJggg==" - webUI["html/js/menu.js"] = "DQpmdW5jdGlvbiBzZXRNZW51SXRlbSgpIHsNCg0KICBtZW51ID0gbmV3IE9iamVjdCgpOw0KICBzdWJNZW51ID0gbmV3IE9iamVjdCgpOw0KDQogIHZhciBtZW51X20zdSA9IG5ldyBPYmplY3QoKTsNCiAgbWVudV9tM3VbIl9tZW51VHlwZSJdICAgICAgID0gImlucHV0QXJyYXkiOw0KICBtZW51X20zdVsiX2VsZW1lbnQiXSAgICAgICAgPSAiTEkiOw0KICBtZW51X20zdVsiX2NvbmZpZ0tleSJdICAgICAgPSAiZmlsZXMubTN1IjsNCiAgbWVudV9tM3VbIl90ZXh0Il0gICAgICAgICAgID0gIlBsYXlsaXN0IjsNCiAgbWVudV9tM3VbIl9pY29uIl0gICAgICAgICAgID0gImltZy9tM3UucG5nIjsNCiAgbWVudV9tM3VbIl9oZWFkbGluZSJdICAgICAgID0gIlBsYXlsaXN0czogTG9jYWwgb3IgcmVtb3RlIjsNCiAgbWVudV9tM3VbIl91c2FnZSJdICAgICAgICAgID0gIjxiPkluZm88L2I+PGJyPkF2YWlsYWJpbGl0eTogRmlsZSBhdmFpbGFiaWxpdHkgaW4gcGVyY2VudDxicj5TdHJlYW1zOiAgICAgIE51bWJlciBvZiBzdHJlYW1zIGluIHRoZSBmaWxlLjxicj5ncm91cC10aXRsZTogIFN0cmVhbXMgdGhhdCBhcmUgYXNzaWduZWQgdG8gYSBncm91cC4gU2ltcGxpZmllcyBmaWx0ZXJpbmcgc3RyZWFtczxicj50dmctaWQ6ICAgICAgIFRoaXMgSUQgaXMgdXNlZCBmb3IgYXV0b21hdGljIG1hcHBpbmcsIG11c3QgbWF0Y2ggd2l0aCB0aGUgY2hhbm5lbCBJRCBpbiB0aGUgWE1MVFYgZmlsZS48YnI+VW5pcXVlIElEOiAgICBTdHJlYW1zIHdpdGggYSB1bmlxdWUgSUQgdG8gaWRlbnRpZnkgdGhlbS4gQWxsb3dzIGNoYW5uZWwgbmFtZSBjaGFuZ2VzIGluIHRoZSBNM1Ugd2l0aG91dCBsb3NpbmcgdGhlIFhNTFRWIG1hcHBpbmcgKFBQViAvIGxpdmUgZXZlbnRzKS48YnI+PGJyPjxiPlVzYWdlIE0zVTo8L2I+PGJyPlJlbW90ZSBwbGF5bGlzdDogaHR0cDovL3lvdXIuaXB0di5wcm92aWRlci5jb20vZmlsZS5tM3U8YnI+TG9jYWwgIHBsYXlsaXN0OiAvcGF0aC90by9maWxlLm0zdTxicj48YnI+PGI+VXNhZ2UgSERIb21lUnVuOjwvYj48YnI+SVA6IDE5Mi4xNjguMS4xMDo1MDA0PGJyPiINCiAgbWVudV9tM3VbIm5hbWUiXSAgICAgICAgICAgID0gImZpbGUiOw0KICBtZW51X20zdVsiaWQiXSAgICAgICAgICAgICAgPSAiZmlsZSI7DQogIG1lbnVfbTN1WyJ2YWx1ZSJdICAgICAgICAgICA9IG1lbnVfbTN1WyJuYW1lIl07DQogIG1lbnVfbTN1WyJwbGFjZWhvbGRlciJdICAgICA9ICJQbGF5bGlzdDogbG9jYWwgb3IgcmVtb3RlIjsNCiAgbWVudV9tM3VbIm9uY2xpY2siXSAgICAgICAgID0gImphdmFzY3JpcHQ6IHRvZ2dsZU1lbnUodGhpcyk7IjsNCiAgbWVudV9tM3VbImNsYXNzIl0gICAgICAgICAgID0gIm1lbnUtbm90QWN0aXZlIjsNCg0KDQogIHZhciBtZW51X2ZpbHRlciA9IG5ldyBPYmplY3QoKTsNCiAgbWVudV9maWx0ZXJbIl9tZW51VHlwZSJdICAgID0gImlucHV0QXJyYXkiOw0KICBtZW51X2ZpbHRlclsiX2VsZW1lbnQiXSAgICAgPSAiTEkiOw0KICBtZW51X2ZpbHRlclsiX2NvbmZpZ0tleSJdICAgPSAiZmlsdGVyIjsNCiAgbWVudV9maWx0ZXJbIl90ZXh0Il0gICAgICAgID0gIkZpbHRlciI7DQogIG1lbnVfZmlsdGVyWyJfaWNvbiJdICAgICAgICA9ICJpbWcvZmlsdGVyLnBuZyI7DQogIG1lbnVfZmlsdGVyWyJfaGVhZGxpbmUiXSAgICA9ICJGaWx0ZXIgYnkgTTNVIHBhcmFtZXRlcnMsIGUuZy4gZ3JvdXAtdGl0bGUiOw0KICBtZW51X2ZpbHRlclsiX3VzYWdlIl0gICAgICAgPSAiPGI+VXNhZ2U6PC9iPjxicj5TcG9ydCAtIEFsbCBzcG9ydHMgY2hhbm5lbHM8YnI+U3BvcnQge0hEfSAtIEFsbCBIRCBzcG9ydHMgY2hhbm5lbHM8YnI+U3BvcnQge0hEfSAhe0VTLERFfSAtIEFsbCBIRCBzcG9ydHMgY2hhbm5lbHMsIGJ1dCBubyBTcGFuaXNoIGFuZCBHZXJtYW48YnI+PGJyPlRvIGZpbHRlciB0aGUgc3RyZWFtcyBvZiBhIEhESG9tZVJ1biwgdGhlIHBsYXlsaXN0IG5hbWUgY2FuIGJlIGVudGVyZWQ6PGJyPk15IHR1bmVyIHtIRH0iDQogIC8vbWVudV9maWx0ZXJbIl91c2FnZSJdICAgICAgID0gIjxiPlVzYWdlOjwvYj48YnI+QWxsIHNwb3J0cyBjaGFubmVsczogU3BvcnQ8YnI+QWxsIEhEIHNwb3J0cyBjaGFubmVsczogU3BvcnQge0hEfTxicj5BbGwgSEQgc3BvcnRzIGNoYW5uZWxzLCBidXQgbm8gU3BhbmlzaCBhbmQgR2VybWFuOiBTcG9ydCB7SER9ICF7RVMsREV9Ig0KICBtZW51X2ZpbHRlclsibmFtZSJdICAgICAgICAgPSAiZmlsdGVyIjsNCiAgbWVudV9maWx0ZXJbImlkIl0gICAgICAgICAgID0gIk0zVSI7DQogIG1lbnVfZmlsdGVyWyJ2YWx1ZSJdICAgICAgICA9IG1lbnVfZmlsdGVyWyJuYW1lIl07DQogIG1lbnVfZmlsdGVyWyJwbGFjZWhvbGRlciJdICA9ICJGaWx0ZXIgc3RyZWFtczogU3BvcnQiOw0KICBtZW51X2ZpbHRlclsib25jbGljayJdICAgICAgPSAiamF2YXNjcmlwdDogdG9nZ2xlTWVudSh0aGlzKTsiOw0KICBtZW51X2ZpbHRlclsiY2xhc3MiXSAgICAgICAgPSAibWVudS1ub3RBY3RpdmUiOw0KDQogIHZhciBtZW51X2lkID0gbmV3IE9iamVjdCgpOw0KICBtZW51X2lkWyJfbWVudVR5cGUiXSAgICAgICAgPSAiaW5wdXRBcnJheSI7DQogIG1lbnVfaWRbIl9lbGVtZW50Il0gICAgICAgICA9ICJMSSI7DQogIG1lbnVfaWRbIl9jb25maWdLZXkiXSAgICAgICA9ICJpZCI7DQogIG1lbnVfaWRbIl90ZXh0Il0gICAgICAgICAgICA9ICJQTVMgSUQiOw0KICBtZW51X2lkWyJfaWNvbiJdICAgICAgICAgICAgPSAiaW1nL251bWJlci5wbmciOw0KICBtZW51X2lkWyJfaGVhZGxpbmUiXSAgICAgICAgPSAiU2V0dXAgUE1TIGd1aWRlIG51bWJlciI7DQogIG1lbnVfaWRbIl91c2FnZSJdICAgICAgICAgICA9ICdTb21lIHBsYXlsaXN0cyBoYXZlIHVuaXF1ZSBjaGFubmVsIElEcy48YnI+RW50ZXIgdGhlIGtleXdvcmQgb2YgdGhlIElELiBUaGUgY2hhbm5lbCBhc3NpZ25tZW50IGluIFBNUyB3aWxsIGNoYW5nZSBhcyBhIHJlc3VsdC48YnI+PGJyPmUuZy4gY2hhbm5lbElEPGJyPiNFWFRJTkY6MCB0eXBlPSJzdHJlYW0iIDxiPmNoYW5uZWxJZDwvYj49IjgxIiwgTXkgU3RyZWFtaW5nIENoYW5uZWwgSEQ8YnI+PGJyPk9ubHkgZW50ZXIgaGVyZSBpZiB5b3Uga25vdyB3aGF0IHlvdSBhcmUgZG9pbmchJw0KICBtZW51X2lkWyJuYW1lIl0gICAgICAgICAgICAgPSAiaWQiOw0KICBtZW51X2lkWyJpZCJdICAgICAgICAgICAgICAgPSAiaWQiOw0KICBtZW51X2lkWyJ2YWx1ZSJdICAgICAgICAgICAgPSBtZW51X2lkWyJuYW1lIl07DQogIG1lbnVfaWRbInBsYWNlaG9sZGVyIl0gICAgICA9ICJVbmlxdWUgSUQgZnJvbSB0aGUgTTNVIGZpbGUiOw0KICBtZW51X2lkWyJvbmNsaWNrIl0gICAgICAgICAgPSAiamF2YXNjcmlwdDogdG9nZ2xlTWVudSh0aGlzKTsiOw0KICBtZW51X2lkWyJjbGFzcyJdICAgICAgICAgICAgPSAibWVudS1ub3RBY3RpdmUiOw0KDQoNCiAgdmFyIG1lbnVfeG1sdHYgPSBuZXcgT2JqZWN0KCk7DQogIG1lbnVfeG1sdHZbIl9tZW51VHlwZSJdICAgICA9ICJpbnB1dEFycmF5IjsNCiAgbWVudV94bWx0dlsiX2VsZW1lbnQiXSAgICAgID0gIkxJIjsNCiAgbWVudV94bWx0dlsiX2NvbmZpZ0tleSJdICAgID0gImZpbGVzLnhtbHR2IjsNCiAgbWVudV94bWx0dlsiX3RleHQiXSAgICAgICAgID0gIlhNTFRWIjsNCiAgbWVudV94bWx0dlsiX2ljb24iXSAgICAgICAgID0gImltZy94bWx0di5wbmciOw0KICBtZW51X3htbHR2WyJfaGVhZGxpbmUiXSAgICAgPSAiWE1MVFYgZmlsZXM6IExvY2FsIG9yIHJlbW90ZSI7DQogIG1lbnVfeG1sdHZbIl91c2FnZSJdICAgICAgICA9ICI8Yj5JbmZvOjwvYj48YnI+QXZhaWxhYmlsaXR5OiBGaWxlIGF2YWlsYWJpbGl0eSBpbiBwZXJjZW50PGJyPkNoYW5uZWxzOiAgICAgTnVtYmVyIG9mIGNoYW5uZWxzIGluIHRoZSBmaWxlPGJyPlByb2dyYW1zOiAgICAgTnVtYmVyIG9mIEVQRyBkYXRhPGJyPjxicj48Yj5Vc2FnZTo8L2I+PGJyPlJlbW90ZSBYTUxUViBmaWxlOiBodHRwOi8veW91ci5lcGcucHJvdmlkZXIuY29tL2d1aWRlLnhtbDxicj5Mb2NhbCAgWE1MVFYgZmlsZTogL3BhdGgvdG8vZ3VpZGUueG1sIg0KICBtZW51X3htbHR2WyJuYW1lIl0gICAgICAgICAgPSAieG1sdHYiOw0KICBtZW51X3htbHR2WyJpZCJdICAgICAgICAgICAgPSAieG1sdHYiOw0KICBtZW51X3htbHR2WyJ2YWx1ZSJdICAgICAgICAgPSBtZW51X3htbHR2WyJuYW1lIl07DQogIG1lbnVfeG1sdHZbInBsYWNlaG9sZGVyIl0gICA9ICJYTUxUViBGaWxlOiBsb2NhbCBvciByZW1vdGUiOw0KICBtZW51X3htbHR2WyJvbmNsaWNrIl0gICAgICAgPSAiamF2YXNjcmlwdDogdG9nZ2xlTWVudSh0aGlzKTsiOw0KICBtZW51X3htbHR2WyJjbGFzcyJdICAgICAgICAgPSAibWVudS1ub3RBY3RpdmUiOw0KDQogIG1lbnVfbWFwcGluZyA9IG5ldyBPYmplY3QoKTsNCiAgbWVudV9tYXBwaW5nWyJfZWxlbWVudCJdICAgPSAiTEkiOw0KICBtZW51X21hcHBpbmdbIl90ZXh0Il0gICAgICA9ICJNYXBwaW5nIjsNCiAgbWVudV9tYXBwaW5nWyJfaWNvbiJdICAgICAgPSAiaW1nL21hcHBpbmcucG5nIjsNCiAgbWVudV9tYXBwaW5nWyJfY29uZmlnS2V5Il0gPSAibWFwcGluZyI7DQogIG1lbnVfbWFwcGluZ1siX2hlYWRsaW5lIl0gID0gIlhNTFRWIGFzc2lnbm1lbnQgYW5kIHNvcnRpbmcgb2YgY2hhbm5lbHMiOw0KICBtZW51X21hcHBpbmdbImlkIl0gICAgICAgICA9ICJtYXBwaW5nIjsNCiAgbWVudV9tYXBwaW5nWyJvbmNsaWNrIl0gICAgPSAiamF2YXNjcmlwdDogdG9nZ2xlTWVudSh0aGlzKTsiOw0KICBtZW51X21hcHBpbmdbImNsYXNzIl0gICAgICA9ICJtZW51LW5vdEFjdGl2ZSBwaG9uZSI7DQoNCiAgbWVudV91c2VycyA9IG5ldyBPYmplY3QoKTsNCiAgbWVudV91c2Vyc1siX2VsZW1lbnQiXSAgID0gIkxJIjsNCiAgbWVudV91c2Vyc1siX3RleHQiXSAgICAgID0gIlVzZXJzIjsNCiAgbWVudV91c2Vyc1siX2ljb24iXSAgICAgID0gImltZy91c2Vycy5wbmciOw0KICBtZW51X3VzZXJzWyJfY29uZmlnS2V5Il0gPSAidXNlcnMiOw0KICBtZW51X3VzZXJzWyJfaGVhZGxpbmUiXSAgPSAiQWRtaW5pc3RyYXRpb24gb2YgdXNlcnMgYW5kIHBlcm1pc3Npb25zIjsNCiAgbWVudV91c2Vyc1siaWQiXSAgICAgICAgID0gInVzZXJzIjsNCiAgbWVudV91c2Vyc1sib25jbGljayJdICAgID0gImphdmFzY3JpcHQ6IHRvZ2dsZU1lbnUodGhpcyk7IjsNCiAgbWVudV91c2Vyc1siY2xhc3MiXSAgICAgID0gIm1lbnUtbm90QWN0aXZlIjsNCiAgbWVudV91c2Vyc1siX3VzYWdlIl0gICAgID0gIjxiPkF1dGhvcml6YXRpb24gZ3JvdXBzOjwvYj48YnI+V0VCOiBVc2VycyBjYW4gbG9nIGluIHRvIHRoZSB3ZWIgaW50ZXJmYWNlPGJyPlBNUzogUHJvZ3JhbXMgbGlrZSBQbGV4IGNhbiBhY2Nlc3MgdGhlIGNoYW5uZWwgbGlzdC4gTG9naW4gdmlhIERWUiBJUDogdXNlcm5hbWU6cGFzc3dvcmRAeHRldmUuaXA6cG9ydDxicj5NM1U6IEFsbG93cyBjbGllbnRzIHRvIGRvd25sb2FkIHRoZSBNM1UgcGxheWxpc3QuPGJyPlhNTDogQWxsb3dzIGNsaWVudHMgdG8gZG93bmxvYWQgdGhlIFhNTFRWIGZpbGUuPGJyPkFQSTogQWxsb3dzIGNsaWVudHMgdG8gdXNlIHRoZSBBUEkgaW50ZXJmYWNlLjxicj48YnI+ISEhIEZvciBQTVMgYXV0aGVudGljYXRpb24sIG9ubHkgdGhlIGZvbGxvd2luZyBzcGVjaWFsIGNoYXJhY3RlcnMgYXJlIHZhbGlkOiAhJCgpPS4sLTo7PGJyPjxicj5UaGUgaW5kaXZpZHVhbCBhdXRoZW50aWNhdGlvbiBncm91cHMgY2FuIGJlIGFjdGl2YXRlZCAvIGRlYWN0aXZhdGVkIGluIHRoZSBzZXR0aW5ncyBtZW51LiINCiAgDQogIG1lbnVfc2V0dGluZ3MgPSBuZXcgT2JqZWN0KCk7DQogIG1lbnVfc2V0dGluZ3NbIl9lbGVtZW50Il0gICA9ICJMSSI7DQogIG1lbnVfc2V0dGluZ3NbIl90ZXh0Il0gICAgICA9ICJTZXR0aW5ncyI7DQogIG1lbnVfc2V0dGluZ3NbIl9pY29uIl0gICAgICA9ICJpbWcvc2V0dGluZ3MucG5nIjsNCiAgbWVudV9zZXR0aW5nc1siX2NvbmZpZ0tleSJdID0gInNldHRpbmdzIjsNCiAgbWVudV9zZXR0aW5nc1siX2hlYWRsaW5lIl0gID0gIlNldHRpbmdzIjsNCiAgbWVudV9zZXR0aW5nc1siX3N1Yk1lbnUiXSAgID0gIjcwMSw3MDIsNzAzLDcwNCw3MDUsNzA2LDcwNyw3MDgsNzk5LDcxMCw3MTEsNzEyLDcxMyw3MTQiOw0KICBtZW51X3NldHRpbmdzWyJpZCJdICAgICAgICAgPSAic2V0dGluZ3MiOw0KICBtZW51X3NldHRpbmdzWyJvbmNsaWNrIl0gICAgPSAiamF2YXNjcmlwdDogdG9nZ2xlTWVudSh0aGlzKTsiOw0KICBtZW51X3NldHRpbmdzWyJjbGFzcyJdICAgICAgPSAibWVudS1ub3RBY3RpdmUiOw0KDQogIG1lbnVfbG9nID0gbmV3IE9iamVjdCgpOw0KICBtZW51X2xvZ1siX2VsZW1lbnQiXSAgICAgICAgPSAiTEkiOw0KICBtZW51X2xvZ1siX3RleHQiXSAgICAgICAgICAgPSAiTG9nIjsNCiAgbWVudV9sb2dbIl9pY29uIl0gICAgICAgICAgID0gImltZy9sb2cucG5nIjsNCiAgbWVudV9sb2dbIl9oZWFkbGluZSJdICAgICAgID0gIkxvZyI7DQogIG1lbnVfbG9nWyJfY29uZmlnS2V5Il0gICAgICA9ICJsb2ciOw0KICBtZW51X2xvZ1siaWQiXSAgICAgICAgICAgICAgPSAibG9nIjsNCiAgbWVudV9sb2dbIm9uY2xpY2siXSAgICAgICAgID0gImphdmFzY3JpcHQ6IHRvZ2dsZU1lbnUodGhpcyk7IjsNCiAgbWVudV9sb2dbImNsYXNzIl0gICAgICAgICAgID0gIm1lbnUtbm90QWN0aXZlIjsNCg0KICBtZW51X2xvZ291dCA9IG5ldyBPYmplY3QoKTsNCiAgbWVudV9sb2dvdXRbIl9lbGVtZW50Il0gICA9ICJMSSI7DQogIG1lbnVfbG9nb3V0WyJfdGV4dCJdICAgICAgPSAiTG9nb3V0IjsNCiAgbWVudV9sb2dvdXRbIl9pY29uIl0gICAgICA9ICJpbWcvbG9nb3V0LnBuZyI7DQogIG1lbnVfbG9nb3V0WyJpZCJdICAgICAgICAgPSAibG9nb3V0IjsNCiAgbWVudV9sb2dvdXRbIm9uY2xpY2siXSAgICA9ICJqYXZhc2NyaXB0OiBsb2dvdXQoKTsiOw0KICBtZW51X2xvZ291dFsiY2xhc3MiXSAgICAgID0gIm1lbnUtbm90QWN0aXZlIjsNCg0KICB2YXIgbWVudV9zY2hlZHVsZSA9IG5ldyBPYmplY3QoKTsNCiAgbWVudV9zY2hlZHVsZVsiX21lbnVUeXBlIl0gID0gImlucHV0QXJyYXkiOw0KICBtZW51X3NjaGVkdWxlWyJfZWxlbWVudCJdICAgPSAiTEkiOw0KICBtZW51X3NjaGVkdWxlWyJfY29uZmlnS2V5Il0gPSAidXBkYXRlIjsNCiAgbWVudV9zY2hlZHVsZVsiX3RleHQiXSAgICAgID0gIlNjaGVkdWxlIjsNCiAgbWVudV9zY2hlZHVsZVsiX2ljb24iXSAgICAgID0gImltZy9zY2hlZHVsZS5wbmciOw0KICBtZW51X3NjaGVkdWxlWyJfaGVhZGxpbmUiXSAgPSAiU2NoZWR1bGUgZm9yIHVwZGF0aW5nIE0zVSwgWE1MVFYgZmlsZXMgYW5kIGNyZWF0aW5nIGEgbG9jYWwgYmFja3VwIjsNCiAgbWVudV9zY2hlZHVsZVsiX3VzYWdlIl0gICAgID0gIjxiPlVzYWdlOjwvYj48YnI+MDgxNSA9IDg6MTUgYW08YnI+MTkzMCA9IDc6MzAgcG0iDQogIG1lbnVfc2NoZWR1bGVbIm5hbWUiXSAgICAgICA9ICJ1cGRhdGUiOw0KICBtZW51X3NjaGVkdWxlWyJpZCJdICAgICAgICAgPSAidXBkYXRlIjsNCiAgbWVudV9zY2hlZHVsZVsidmFsdWUiXSAgICAgID0gbWVudV9pZFsibmFtZSJdOw0KICBtZW51X3NjaGVkdWxlWyJwbGFjZWhvbGRlciJdPSAidGltZSBvZiBkYXkgKDI0LWhvdXIgY2xvY2spIjsNCiAgbWVudV9zY2hlZHVsZVsib25jbGljayJdICAgID0gImphdmFzY3JpcHQ6IHRvZ2dsZU1lbnUodGhpcyk7IjsNCiAgbWVudV9zY2hlZHVsZVsiY2xhc3MiXSAgICAgID0gIm1lbnUtbm90QWN0aXZlIjsNCg0KICB2YXIgbWVudV9maWxlc1VwZGF0ZSA9IG5ldyBPYmplY3QoKTsNCiAgbWVudV9maWxlc1VwZGF0ZVsiX2VsZW1lbnQiXSA9ICJMSSI7DQogIG1lbnVfZmlsZXNVcGRhdGVbIl9tZW51VHlwZSJdICAgICA9ICJjaGVja2JveCI7DQogIG1lbnVfZmlsZXNVcGRhdGVbIl9jb25maWdLZXkiXSAgICA9ICJmaWxlcy51cGRhdGUiOw0KICBtZW51X2ZpbGVzVXBkYXRlWyJfbGFiZWwiXSAgICAgICAgPSAiVXBkYXRlIHRoZSBwcm92aWRlciBmaWxlcyBhdCBzeXN0ZW0gc3RhcnR1cCI7DQogIG1lbnVfZmlsZXNVcGRhdGVbIl9oZWFkbGluZSJdICAgICA9ICJVcGRhdGUgdGhlIHByb3ZpZGVyIGZpbGVzIGF0IHN5c3RlbSBzdGFydHVwIjsNCiAgbWVudV9maWxlc1VwZGF0ZVsiX3VzYWdlIl0gICAgICAgID0gIlBsYXlsaXN0cyBhbmQgWE1MVFYgZmlsZXMgYXJlIHVwZGF0ZWQgYnkgeFRlVmUgYXQgc3lzdGVtIHN0YXJ0dXAuIg0KICBtZW51X2ZpbGVzVXBkYXRlWyJuYW1lIl0gICAgICAgICAgPSAiZmlsZXMudXBkYXRlIjsNCiAgbWVudV9maWxlc1VwZGF0ZVsiaWQiXSAgICAgICAgICAgID0gImZpbGVzLnVwZGF0ZSI7DQogIG1lbnVfZmlsZXNVcGRhdGVbInZhbHVlIl0gICAgICAgICA9IG1lbnVfZmlsZXNVcGRhdGVbIm5hbWUiXTsNCiAgbWVudV9maWxlc1VwZGF0ZVsib25jbGljayJdICAgICAgID0gImphdmFzY3JpcHQ6IHRvZ2dsZU1lbnUodGhpcyk7IjsNCiAgbWVudV9maWxlc1VwZGF0ZVsiY2xhc3MiXSAgICAgICAgID0gIm1lbnUtbm90QWN0aXZlIjsNCiAgDQogIHZhciBtZW51X3R1bmVyID0gbmV3IE9iamVjdCgpOw0KICBtZW51X3R1bmVyWyJfZWxlbWVudCJdICAgICAgPSAiTEkiOw0KICBtZW51X3R1bmVyWyJfbWVudVR5cGUiXSAgICAgPSAic2VsZWN0IjsNCiAgbWVudV90dW5lclsiX2NvbmZpZ0tleSJdICAgID0gInR1bmVyIjsNCiAgbWVudV90dW5lclsiX2xhYmVsIl0gICAgICAgID0gIkF2YWlsYWJsZSB0dW5lcnMiOw0KICBtZW51X3R1bmVyWyJfdGV4dCJdICAgICAgICAgPSAiVHVuZXIiOw0KICBtZW51X3R1bmVyWyJfaWNvbiJdICAgICAgICAgPSAiaW1nL3R1bmVyLnBuZyI7DQogIG1lbnVfdHVuZXJbIl9oZWFkbGluZSJdICAgICA9ICJOdW1iZXIgb2YgdHVuZXJzIjsNCiAgbWVudV90dW5lclsiX3VzYWdlIl0gICAgICAgID0gIlRoaXMgc2V0dGluZyBpcyBvbmx5IHVzZWQgYnkgUGxleCBhbmQgRW1ieS48YnI+VGhlIG51bWJlciBvZiBjb25jdXJyZW50IHN0cmVhbXMgYWxsb3dlZCBieSB0aGUgSVBUViBwcm92aWRlci48YnI+QWZ0ZXIgYSBjaGFuZ2UsIHhUZVZlIG11c3QgYmUgZGVsZXRlIGluIHRoZSBQTVMgRFZSIHNldHRpbmdzIGFuZCBzZXQgdXAgYWdhaW4uIg0KICBtZW51X3R1bmVyWyJuYW1lIl0gICAgICAgICAgPSAidHVuZXIiOw0KICBtZW51X3R1bmVyWyJpZCJdICAgICAgICAgICAgPSAidHVuZXIiOw0KICBtZW51X3R1bmVyWyJ2YWx1ZSJdICAgICAgICAgPSBtZW51X3R1bmVyWyJuYW1lIl07DQogIG1lbnVfdHVuZXJbInBsYWNlaG9sZGVyIl0gICA9ICJOdW1iZXIgb2YgdHVuZXJzIjsNCiAgbWVudV90dW5lclsib25jbGljayJdICAgICAgID0gImphdmFzY3JpcHQ6IHRvZ2dsZU1lbnUodGhpcyk7IjsNCiAgbWVudV90dW5lclsiY2xhc3MiXSAgICAgICAgID0gIm1lbnUtbm90QWN0aXZlIjsNCg0KICB2YXIgb3B0aW9uVmFsdWVzID0gbmV3IEFycmF5KCk7DQogIGZvciAodmFyIGkgPSAxOyBpIDw9IDEwMDsgaSsrKSB7DQogICAgb3B0aW9uVmFsdWVzLnB1c2goaSkNCiAgfQ0KICBtZW51X3R1bmVyWyJfb3B0aW9uVmFsdWVzIl0gPSBvcHRpb25WYWx1ZXM7DQogIA0KICB2YXIgbWVudV9lcGcgPSBuZXcgT2JqZWN0KCk7DQogIG1lbnVfZXBnWyJfZWxlbWVudCJdID0gIkxJIjsNCiAgbWVudV9lcGdbIl9tZW51VHlwZSJdICAgICA9ICJzZWxlY3QiOw0KICBtZW51X2VwZ1siX2NvbmZpZ0tleSJdICAgID0gImVwZ1NvdXJjZSI7DQogIG1lbnVfZXBnWyJfbGFiZWwiXSAgICAgICAgPSAiU2VsZWN0aW9uIG9mIHRoZSBFUEcgc291cmNlIjsNCiAgbWVudV9lcGdbIl90ZXh0Il0gICAgICAgICA9ICJFUEcgc291cmNlIjsNCiAgbWVudV9lcGdbIl9oZWFkbGluZSJdICAgICA9ICJTZWxlY3Rpb24gb2YgdGhlIEVQRyBzb3VyY2UiOw0KICBtZW51X2VwZ1siX3VzYWdlIl0gICAgICAgID0gIlBNUzogICBVc2UgRVBHIGRhdGEgZnJvbSBQbGV4IG9yIEVtYnkuPGJyPlhFUEc6ICBVc2Ugb2YgZXh0ZXJuYWwgRVBHIGRhdGEgKFhNTFRWKS48YnI+ICAgICAgIFNldmVyYWwgWE1MVFYgc291cmNlcyBwb3NzaWJsZS48YnI+ICAgICAgIEFsbG93cyBlZGl0aW5nIGFuZCBvcmRlciBjaGFubmVscy48YnI+ICAgICAgIE0zVSAvIFhNTFRWIGV4cG9ydCAoSFRUUCBsaW5rIGZvciBJUFRWIGFwcHMpLiINCiAgbWVudV9lcGdbIm5hbWUiXSAgICAgICAgICA9ICJlcGdTb3VyY2UiOw0KICBtZW51X2VwZ1siaWQiXSAgICAgICAgICAgID0gImVwZ1NvdXJjZSI7DQogIG1lbnVfZXBnWyJ2YWx1ZSJdICAgICAgICAgPSBtZW51X2VwZ1sibmFtZSJdOw0KICBtZW51X2VwZ1sicGxhY2Vob2xkZXIiXSAgID0gIkVQRyBzb3VyY2UiOw0KICBtZW51X2VwZ1sib25jbGljayJdICAgICAgID0gImphdmFzY3JpcHQ6IHRvZ2dsZU1lbnUodGhpcyk7IjsNCiAgbWVudV9lcGdbImNsYXNzIl0gICAgICAgICA9ICJtZW51LW5vdEFjdGl2ZSI7DQogIG1lbnVfZXBnWyJfb3B0aW9uVmFsdWVzIl0gPSBuZXcgQXJyYXkoIlBNUyIsICJYRVBHIik7DQoNCiAgdmFyIG1lbnVfeGVwZyA9IG5ldyBPYmplY3QoKTsNCiAgbWVudV94ZXBnWyJfZWxlbWVudCJdID0gIkxJIjsNCiAgbWVudV94ZXBnWyJfbWVudVR5cGUiXSAgICAgPSAiY2hlY2tib3giOw0KICBtZW51X3hlcGdbIl9jb25maWdLZXkiXSAgICA9ICJ4dGV2ZUF1dG9VcGRhdGUiOw0KICBtZW51X3hlcGdbIl9sYWJlbCJdICAgICAgICA9ICJBdXRvbWF0aWMgdXBkYXRlIG9mIHhUZVZlIjsNCiAgbWVudV94ZXBnWyJfaGVhZGxpbmUiXSAgICAgPSAiQXV0b21hdGljIHVwZGF0ZSBvZiB4VGVWZSI7DQogIG1lbnVfeGVwZ1siX3VzYWdlIl0gICAgICAgID0gIklmIGEgbmV3IHZlcnNpb24gb2YgeFRlVmUgaXMgYXZhaWxhYmxlLCBpdCB3aWxsIGJlIGF1dG9tYXRpY2FsbHkgaW5zdGFsbGVkLiINCiAgbWVudV94ZXBnWyJuYW1lIl0gICAgICAgICAgPSAieHRldmVBdXRvVXBkYXRlIjsNCiAgbWVudV94ZXBnWyJpZCJdICAgICAgICAgICAgPSAieHRldmVBdXRvVXBkYXRlIjsNCiAgbWVudV94ZXBnWyJ2YWx1ZSJdICAgICAgICAgPSBtZW51X3hlcGdbIm5hbWUiXTsNCiAgbWVudV94ZXBnWyJvbmNsaWNrIl0gICAgICAgPSAiamF2YXNjcmlwdDogdG9nZ2xlTWVudSh0aGlzKTsiOw0KICBtZW51X3hlcGdbImNsYXNzIl0gICAgICAgICA9ICJtZW51LW5vdEFjdGl2ZSI7DQoNCiAgdmFyIG1lbnVfYXV0b0JhY2t1cFBhdGggPSBuZXcgT2JqZWN0KCk7DQogIG1lbnVfYXV0b0JhY2t1cFBhdGhbIl9lbGVtZW50Il0gICA9ICJMSSI7DQogIG1lbnVfYXV0b0JhY2t1cFBhdGhbIl9tZW51VHlwZSJdICA9ICJzaW5nbGVJbnB1dCI7DQogIG1lbnVfYXV0b0JhY2t1cFBhdGhbIl9jb25maWdLZXkiXSA9ICJiYWNrdXAucGF0aCI7DQogIG1lbnVfYXV0b0JhY2t1cFBhdGhbIl9sYWJlbCJdICAgICA9ICJMb2NhdGlvbiBmb3IgYXV0b21hdGljIGJhY2t1cHMiOw0KICBtZW51X2F1dG9CYWNrdXBQYXRoWyJfaGVhZGxpbmUiXSAgPSAiTG9jYXRpb24gZm9yIGF1dG9tYXRpYyBiYWNrdXBzIjsNCiAgbWVudV9hdXRvQmFja3VwUGF0aFsiX3VzYWdlIl0gICAgID0gIkJlZm9yZSBhbnkgdXBkYXRlIG9mIHRoZSBwcm92aWRlciBkYXRhIGJ5IHRoZSBzY2hlZHVsZSwgeFRlVmUgY3JlYXRlcyBhIGJhY2t1cC4gVGhlIHBhdGggZm9yIHRoZSBhdXRvbWF0aWMgYmFja3VwcyBjYW4gYmUgY2hhbmdlZC4geFRlVmUgcmVxdWlyZXMgd3JpdGUgcGVybWlzc2lvbiBmb3IgdGhpcyBmb2xkZXIuIg0KICBtZW51X2F1dG9CYWNrdXBQYXRoWyJuYW1lIl0gICAgICAgPSAiYmFja3VwLnBhdGgiOw0KICBtZW51X2F1dG9CYWNrdXBQYXRoWyJpZCJdICAgICAgICAgPSAiYmFja3VwLnBhdGgiOw0KICBtZW51X2F1dG9CYWNrdXBQYXRoWyJ2YWx1ZSJdICAgICAgPSBtZW51X2F1dG9CYWNrdXBQYXRoWyJuYW1lIl07DQogIG1lbnVfYXV0b0JhY2t1cFBhdGhbIm9uY2xpY2siXSAgICA9ICJqYXZhc2NyaXB0OiB0b2dnbGVNZW51KHRoaXMpOyI7DQogIG1lbnVfYXV0b0JhY2t1cFBhdGhbImNsYXNzIl0gICAgICA9ICJtZW51LW5vdEFjdGl2ZSI7DQoNCiAgdmFyIG1lbnVfYXV0b0JhY2t1cEtlZXAgPSBuZXcgT2JqZWN0KCk7DQogIG1lbnVfYXV0b0JhY2t1cEtlZXBbIl9lbGVtZW50Il0gICA9ICJMSSI7DQogIG1lbnVfYXV0b0JhY2t1cEtlZXBbIl9tZW51VHlwZSJdICA9ICJzZWxlY3QiOw0KICBtZW51X2F1dG9CYWNrdXBLZWVwWyJfY29uZmlnS2V5Il0gPSAiYmFja3VwLmtlZXAiOw0KICBtZW51X2F1dG9CYWNrdXBLZWVwWyJfdGV4dCJdICAgICAgPSAiS2VlcCI7DQogIG1lbnVfYXV0b0JhY2t1cEtlZXBbIl9sYWJlbCJdICAgICA9ICJOdW1iZXIgb2YgYmFja3VwcyB0byBrZWVwIjsNCiAgbWVudV9hdXRvQmFja3VwS2VlcFsiX2hlYWRsaW5lIl0gID0gIk51bWJlciBvZiBiYWNrdXBzIHRvIGtlZXAiOw0KICBtZW51X2F1dG9CYWNrdXBLZWVwWyJfdXNhZ2UiXSAgICAgPSAiIg0KICBtZW51X2F1dG9CYWNrdXBLZWVwWyJuYW1lIl0gICAgICAgPSAiYmFja3VwLmtlZXAiOw0KICBtZW51X2F1dG9CYWNrdXBLZWVwWyJpZCJdICAgICAgICAgPSAiYmFja3VwLmtlZXAiOw0KICBtZW51X2F1dG9CYWNrdXBLZWVwWyJ2YWx1ZSJdICAgICAgPSBtZW51X2F1dG9CYWNrdXBLZWVwWyJuYW1lIl07DQogIG1lbnVfYXV0b0JhY2t1cEtlZXBbIm9uY2xpY2siXSAgICA9ICJqYXZhc2NyaXB0OiB0b2dnbGVNZW51KHRoaXMpOyI7DQogIG1lbnVfYXV0b0JhY2t1cEtlZXBbImNsYXNzIl0gICAgICA9ICJtZW51LW5vdEFjdGl2ZSI7DQoNCiAgdmFyIG9wdGlvblZhbHVlcyA9IG5ldyBBcnJheSg1LCAxMCwgMjAsIDMwLCA0MCwgNTApOw0KICBtZW51X2F1dG9CYWNrdXBLZWVwWyJfb3B0aW9uVmFsdWVzIl0gPSBvcHRpb25WYWx1ZXM7DQoNCg0KICB2YXIgbWVudV9idWZmZXIgPSBuZXcgT2JqZWN0KCk7DQogIG1lbnVfYnVmZmVyWyJfZWxlbWVudCJdID0gIkxJIjsNCiAgbWVudV9idWZmZXJbIl9tZW51VHlwZSJdICAgICA9ICJjaGVja2JveCI7DQogIG1lbnVfYnVmZmVyWyJfY29uZmlnS2V5Il0gICAgPSAiYnVmZmVyIjsNCiAgbWVudV9idWZmZXJbIl9sYWJlbCJdICAgICAgICA9ICJTdHJlYW0gYnVmZmVyaW5nIFtFeHBlcmltZW50YWxdIjsNCiAgbWVudV9idWZmZXJbIl9oZWFkbGluZSJdICAgICA9ICJTdHJlYW0gYnVmZmVyaW5nIFtFeHBlcmltZW50YWxdIjsNCiAgbWVudV9idWZmZXJbIl91c2FnZSJdICAgICAgICA9ICJXaXRoIGFjdGl2YXRlZCBidWZmZXIsIHN0cmVhbXMgY2FuIGJlIHBsYXllZCBhbmQgcmVjb3JkZWQgbW9yZSBmbHVlbnRseS48YnI+VGhlIHN0cmVhbSBpcyBwYXNzZWQgZnJvbSB4VGVWZSB0byBQbGV4IC8gRW1ieSINCiAgbWVudV9idWZmZXJbIm5hbWUiXSAgICAgICAgICA9ICJidWZmZXIiOw0KICBtZW51X2J1ZmZlclsiaWQiXSAgICAgICAgICAgID0gImJ1ZmZlciI7DQogIG1lbnVfYnVmZmVyWyJ2YWx1ZSJdICAgICAgICAgPSBtZW51X2J1ZmZlclsibmFtZSJdOw0KICBtZW51X2J1ZmZlclsib25jbGljayJdICAgICAgID0gImphdmFzY3JpcHQ6IHRvZ2dsZU1lbnUodGhpcyk7IjsNCiAgbWVudV9idWZmZXJbImNsYXNzIl0gICAgICAgICA9ICJtZW51LW5vdEFjdGl2ZSI7DQoNCiAgdmFyIG1lbnVfYXBpID0gbmV3IE9iamVjdCgpOw0KICBtZW51X2FwaVsiX2VsZW1lbnQiXSA9ICJMSSI7DQogIG1lbnVfYXBpWyJfbWVudVR5cGUiXSAgICAgPSAiY2hlY2tib3giOw0KICBtZW51X2FwaVsiX2NvbmZpZ0tleSJdICAgID0gImFwaSI7DQogIG1lbnVfYXBpWyJfbGFiZWwiXSAgICAgICAgPSAiQVBJIGludGVyZmFjZSI7DQogIG1lbnVfYXBpWyJfaGVhZGxpbmUiXSAgICAgPSAiQVBJIGludGVyZmFjZSI7DQogIG1lbnVfYXBpWyJfdXNhZ2UiXSAgICAgICAgPSAnVmlhIEFQSSBpbnRlcmZhY2UgaXQgaXMgcG9zc2libGUgdG8gc2VuZCBjb21tYW5kcyB0byB4VGVWZS4gQVBJIGRvY3VtZW50YXRpb24gaXMgYXZhaWxhYmxlIDxhIGhyZWY9Imh0dHBzOi8veHRldmUuZGU/c2Nyb2xsPWFwaSI+aGVyZTwvYT4gJw0KICAvL21lbnVfYXBpWyJfdXNhZ2UiXSAgICAgICAgPSAnVmlhIEFQSSBpbnRlcmZhY2UgaXQgaXMgcG9zc2libGUgdG8gc2VuZCBjb21tYW5kcyB0byB4VGVWZS4gQVBJIGRvY3VtZW50YXRpb24gaXMgYXZhaWxhYmxlIDxhIGhyZWY9Imh0dHA6Ly9sb2NhbGhvc3Q6MTMxMz9zY3JvbGw9YXBpIj5oZXJlPC9hPiAnDQogIG1lbnVfYXBpWyJuYW1lIl0gICAgICAgICAgPSAiYXBpIjsNCiAgbWVudV9hcGlbImlkIl0gICAgICAgICAgICA9ICJhcGkiOw0KICBtZW51X2FwaVsidmFsdWUiXSAgICAgICAgID0gbWVudV9hcGlbIm5hbWUiXTsNCiAgbWVudV9hcGlbIm9uY2xpY2siXSAgICAgICA9ICJqYXZhc2NyaXB0OiB0b2dnbGVNZW51KHRoaXMpOyI7DQogIG1lbnVfYXBpWyJjbGFzcyJdICAgICAgICAgPSAibWVudS1ub3RBY3RpdmUiOw0KDQogIHZhciBtZW51X2F1dGhlbnRpY2F0aW9uV2ViID0gbmV3IE9iamVjdCgpOw0KICBtZW51X2F1dGhlbnRpY2F0aW9uV2ViWyJfZWxlbWVudCJdID0gIkxJIjsNCiAgbWVudV9hdXRoZW50aWNhdGlvbldlYlsiX21lbnVUeXBlIl0gICAgID0gImNoZWNrYm94IjsNCiAgbWVudV9hdXRoZW50aWNhdGlvbldlYlsiX2NvbmZpZ0tleSJdICAgID0gImF1dGhlbnRpY2F0aW9uLndlYiI7DQogIG1lbnVfYXV0aGVudGljYXRpb25XZWJbIl9sYWJlbCJdICAgICAgICA9ICJVc2VyIGF1dGhlbnRpY2F0aW9uIjsNCiAgbWVudV9hdXRoZW50aWNhdGlvbldlYlsiX2hlYWRsaW5lIl0gICAgID0gIlVzZXIgYXV0aGVudGljYXRpb24iOw0KICBtZW51X2F1dGhlbnRpY2F0aW9uV2ViWyJfdXNhZ2UiXSAgICAgICAgPSAiQWNjZXNzIHRvIHhUZVZlIHJlcXVpcmVzIGF1dGhlbnRpY2F0aW9uLiINCiAgbWVudV9hdXRoZW50aWNhdGlvbldlYlsibmFtZSJdICAgICAgICAgID0gImF1dGhlbnRpY2F0aW9uLndlYiI7DQogIG1lbnVfYXV0aGVudGljYXRpb25XZWJbImlkIl0gICAgICAgICAgICA9ICJhdXRoZW50aWNhdGlvbi53ZWIiOw0KICBtZW51X2F1dGhlbnRpY2F0aW9uV2ViWyJ2YWx1ZSJdICAgICAgICAgPSBtZW51X2F1dGhlbnRpY2F0aW9uV2ViWyJuYW1lIl07DQogIG1lbnVfYXV0aGVudGljYXRpb25XZWJbIm9uY2xpY2siXSAgICAgICA9ICJqYXZhc2NyaXB0OiB0b2dnbGVNZW51KHRoaXMpOyI7DQogIG1lbnVfYXV0aGVudGljYXRpb25XZWJbImNsYXNzIl0gICAgICAgICA9ICJtZW51LW5vdEFjdGl2ZSI7DQogIA0KICB2YXIgbWVudV9hdXRoZW50aWNhdGlvblBtcyA9IG5ldyBPYmplY3QoKTsNCiAgbWVudV9hdXRoZW50aWNhdGlvblBtc1siX2VsZW1lbnQiXSA9ICJMSSI7DQogIG1lbnVfYXV0aGVudGljYXRpb25QbXNbIl9tZW51VHlwZSJdICAgICA9ICJjaGVja2JveCI7DQogIG1lbnVfYXV0aGVudGljYXRpb25QbXNbIl9jb25maWdLZXkiXSAgICA9ICJhdXRoZW50aWNhdGlvbi5wbXMiOw0KICBtZW51X2F1dGhlbnRpY2F0aW9uUG1zWyJfbGFiZWwiXSAgICAgICAgPSAiUGxleCBhdXRoZW50aWNhdGlvbi4iOw0KICBtZW51X2F1dGhlbnRpY2F0aW9uUG1zWyJfaGVhZGxpbmUiXSAgICAgPSAiUGxleCBhdXRoZW50aWNhdGlvbi4iOw0KICBtZW51X2F1dGhlbnRpY2F0aW9uUG1zWyJfdXNhZ2UiXSAgICAgICAgPSAiUGxleCByZXF1ZXN0cyBhcmUgb25seSBwb3NzaWJsZSB3aXRoIGF1dGhlbnRpY2F0aW9uLjxicj5XYXJuaW5nISEhIEFmdGVyIGFjdGl2YXRpbmcgdGhpcyBmdW5jdGlvbiB4VGVWZSBtdXN0IGJlIGRlbGV0ZSBpbiB0aGUgUE1TIERWUiBzZXR0aW5ncyBhbmQgc2V0IHVwIGFnYWluLiINCiAgbWVudV9hdXRoZW50aWNhdGlvblBtc1sibmFtZSJdICAgICAgICAgID0gImF1dGhlbnRpY2F0aW9uLnBtcyI7DQogIG1lbnVfYXV0aGVudGljYXRpb25QbXNbImlkIl0gICAgICAgICAgICA9ICJhdXRoZW50aWNhdGlvbi5wbXMiOw0KICBtZW51X2F1dGhlbnRpY2F0aW9uUG1zWyJ2YWx1ZSJdICAgICAgICAgPSBtZW51X2F1dGhlbnRpY2F0aW9uUG1zWyJuYW1lIl07DQogIG1lbnVfYXV0aGVudGljYXRpb25QbXNbIm9uY2xpY2siXSAgICAgICA9ICJqYXZhc2NyaXB0OiB0b2dnbGVNZW51KHRoaXMpOyI7DQogIG1lbnVfYXV0aGVudGljYXRpb25QbXNbImNsYXNzIl0gICAgICAgICA9ICJtZW51LW5vdEFjdGl2ZSI7DQogIA0KICB2YXIgbWVudV9hdXRoZW50aWNhdGlvbk0zdSA9IG5ldyBPYmplY3QoKTsNCiAgbWVudV9hdXRoZW50aWNhdGlvbk0zdVsiX2VsZW1lbnQiXSA9ICJMSSI7DQogIG1lbnVfYXV0aGVudGljYXRpb25NM3VbIl9tZW51VHlwZSJdICAgICA9ICJjaGVja2JveCI7DQogIG1lbnVfYXV0aGVudGljYXRpb25NM3VbIl9jb25maWdLZXkiXSAgICA9ICJhdXRoZW50aWNhdGlvbi5tM3UiOw0KICBtZW51X2F1dGhlbnRpY2F0aW9uTTN1WyJfbGFiZWwiXSAgICAgICAgPSAiTTNVIGF1dGhlbnRpY2F0aW9uLiI7DQogIG1lbnVfYXV0aGVudGljYXRpb25NM3VbIl9oZWFkbGluZSJdICAgICA9ICJNM1UgYXV0aGVudGljYXRpb24uIjsNCiAgbWVudV9hdXRoZW50aWNhdGlvbk0zdVsiX3VzYWdlIl0gICAgICAgID0gIkRvd25sb2FkaW5nIHRoZSBNM1UgZmlsZSB2aWEgYW4gSFRUUCByZXF1ZXN0IGlzIG9ubHkgcG9zc2libGUgd2l0aCBhdXRoZW50aWNhdGlvbi4iDQogIG1lbnVfYXV0aGVudGljYXRpb25NM3VbIm5hbWUiXSAgICAgICAgICA9ICJhdXRoZW50aWNhdGlvbi5tM3UiOw0KICBtZW51X2F1dGhlbnRpY2F0aW9uTTN1WyJpZCJdICAgICAgICAgICAgPSAiYXV0aGVudGljYXRpb24ubTN1IjsNCiAgbWVudV9hdXRoZW50aWNhdGlvbk0zdVsidmFsdWUiXSAgICAgICAgID0gbWVudV9hdXRoZW50aWNhdGlvbk0zdVsibmFtZSJdOw0KICBtZW51X2F1dGhlbnRpY2F0aW9uTTN1WyJvbmNsaWNrIl0gICAgICAgPSAiamF2YXNjcmlwdDogdG9nZ2xlTWVudSh0aGlzKTsiOw0KICBtZW51X2F1dGhlbnRpY2F0aW9uTTN1WyJjbGFzcyJdICAgICAgICAgPSAibWVudS1ub3RBY3RpdmUiOw0KICANCg0KICB2YXIgbWVudV9hdXRoZW50aWNhdGlvblhtbCA9IG5ldyBPYmplY3QoKTsNCiAgbWVudV9hdXRoZW50aWNhdGlvblhtbFsiX2VsZW1lbnQiXSA9ICJMSSI7DQogIG1lbnVfYXV0aGVudGljYXRpb25YbWxbIl9tZW51VHlwZSJdICAgICA9ICJjaGVja2JveCI7DQogIG1lbnVfYXV0aGVudGljYXRpb25YbWxbIl9jb25maWdLZXkiXSAgICA9ICJhdXRoZW50aWNhdGlvbi54bWwiOw0KICBtZW51X2F1dGhlbnRpY2F0aW9uWG1sWyJfbGFiZWwiXSAgICAgICAgPSAiWEVQRyBhdXRoZW50aWNhdGlvbiI7DQogIG1lbnVfYXV0aGVudGljYXRpb25YbWxbIl9oZWFkbGluZSJdICAgICA9ICJYRVBHIGF1dGhlbnRpY2F0aW9uIjsNCiAgbWVudV9hdXRoZW50aWNhdGlvblhtbFsiX3VzYWdlIl0gICAgICAgID0gIkRvd25sb2FkaW5nIHRoZSBYRVBHIChYTUxUVikgZmlsZSB2aWEgYW4gSFRUUCByZXF1ZXN0IGlzIG9ubHkgcG9zc2libGUgd2l0aCBhdXRoZW50aWNhdGlvbi4iDQogIG1lbnVfYXV0aGVudGljYXRpb25YbWxbIm5hbWUiXSAgICAgICAgICA9ICJhdXRoZW50aWNhdGlvbi54bWwiOw0KICBtZW51X2F1dGhlbnRpY2F0aW9uWG1sWyJpZCJdICAgICAgICAgICAgPSAiYXV0aGVudGljYXRpb24ueG1sIjsNCiAgbWVudV9hdXRoZW50aWNhdGlvblhtbFsidmFsdWUiXSAgICAgICAgID0gbWVudV9hdXRoZW50aWNhdGlvblhtbFsibmFtZSJdOw0KICBtZW51X2F1dGhlbnRpY2F0aW9uWG1sWyJvbmNsaWNrIl0gICAgICAgPSAiamF2YXNjcmlwdDogdG9nZ2xlTWVudSh0aGlzKTsiOw0KICBtZW51X2F1dGhlbnRpY2F0aW9uWG1sWyJjbGFzcyJdICAgICAgICAgPSAibWVudS1ub3RBY3RpdmUiOw0KDQogIHZhciBtZW51X2F1dGhlbnRpY2F0aW9uQXBpID0gbmV3IE9iamVjdCgpOw0KICBtZW51X2F1dGhlbnRpY2F0aW9uQXBpWyJfZWxlbWVudCJdID0gIkxJIjsNCiAgbWVudV9hdXRoZW50aWNhdGlvbkFwaVsiX21lbnVUeXBlIl0gICAgID0gImNoZWNrYm94IjsNCiAgbWVudV9hdXRoZW50aWNhdGlvbkFwaVsiX2NvbmZpZ0tleSJdICAgID0gImF1dGhlbnRpY2F0aW9uLmFwaSI7DQogIG1lbnVfYXV0aGVudGljYXRpb25BcGlbIl9sYWJlbCJdICAgICAgICA9ICJBUEkgYXV0aGVudGljYXRpb24iOw0KICBtZW51X2F1dGhlbnRpY2F0aW9uQXBpWyJfaGVhZGxpbmUiXSAgICAgPSAiQVBJIGF1dGhlbnRpY2F0aW9uIjsNCiAgbWVudV9hdXRoZW50aWNhdGlvbkFwaVsiX3VzYWdlIl0gICAgICAgID0gIkFjY2VzcyB0byB0aGUgQVBJIGludGVyZmFjZSBpcyBvbmx5IHBvc3NpYmxlIHdpdGggYXV0aGVudGljYXRpb24uIg0KICBtZW51X2F1dGhlbnRpY2F0aW9uQXBpWyJuYW1lIl0gICAgICAgICAgPSAiYXV0aGVudGljYXRpb24uYXBpIjsNCiAgbWVudV9hdXRoZW50aWNhdGlvbkFwaVsiaWQiXSAgICAgICAgICAgID0gImF1dGhlbnRpY2F0aW9uLmFwaSI7DQogIG1lbnVfYXV0aGVudGljYXRpb25BcGlbInZhbHVlIl0gICAgICAgICA9IG1lbnVfYXV0aGVudGljYXRpb25BcGlbIm5hbWUiXTsNCiAgbWVudV9hdXRoZW50aWNhdGlvbkFwaVsib25jbGljayJdICAgICAgID0gImphdmFzY3JpcHQ6IHRvZ2dsZU1lbnUodGhpcyk7IjsNCiAgbWVudV9hdXRoZW50aWNhdGlvbkFwaVsiY2xhc3MiXSAgICAgICAgID0gIm1lbnUtbm90QWN0aXZlIjsNCiAgDQogIA0KICAvLyBNYWluIG1lbnUNCiAgbWVudVsxMF0gPSBtZW51X20zdTsNCg0KICBzd2l0Y2goY29uZmlnWyJlcGdTb3VyY2UiXSkgew0KICAgIGNhc2UgIlBNUyI6DQogICAgICBtZW51WzIwXSA9IG1lbnVfaWQ7DQogICAgICBicmVhazsNCiAgICANCiAgICBjYXNlICJYTUxUViI6DQogICAgICBtZW51WzQwXSA9IG1lbnVfeG1sdHY7DQogICAgICBicmVhazsNCg0KICAgIGNhc2UgIlhFUEciOg0KICAgICAgbWVudVs0MF0gPSBtZW51X3htbHR2Ow0KICAgICAgbWVudVs1MF0gPSBtZW51X21hcHBpbmc7DQogICAgICBicmVhazsNCiAgfQ0KICANCiAgbWVudVszMF0gPSBtZW51X2ZpbHRlcjsNCiAgDQogIGlmIChjb25maWdbImF1dGhlbnRpY2F0aW9uLndlYiJdID09IHRydWUpIHsNCiAgICBtZW51WzYwXSA9IG1lbnVfdXNlcnM7DQogIH0NCg0KICBtZW51WzcwXSA9IG1lbnVfc2V0dGluZ3M7DQogIG1lbnVbODBdID0gbWVudV9sb2c7DQogIGlmIChjb25maWdbImF1dGhlbnRpY2F0aW9uLndlYiJdID09IHRydWUpIHsNCiAgICBtZW51WzEwMF0gPSBtZW51X2xvZ291dDsNCiAgfSANCiAgDQoNCiAgLy8gU3ViLU1lbnUNCg0KICBzdWJNZW51WzcwMV0gPSBtZW51X3NjaGVkdWxlOw0KICBzdWJNZW51WzcwMl0gPSBtZW51X2ZpbGVzVXBkYXRlOw0KICBzdWJNZW51WzcwM10gPSBtZW51X3R1bmVyOw0KICBzdWJNZW51WzcwNF0gPSBtZW51X2VwZzsNCiAgc3ViTWVudVs3MDVdID0gbWVudV94ZXBnOw0KICBzdWJNZW51WzcwNl0gPSBtZW51X2F1dG9CYWNrdXBQYXRoOw0KICBzdWJNZW51WzcwN10gPSBtZW51X2F1dG9CYWNrdXBLZWVwOw0KICBzdWJNZW51WzcwOF0gPSBtZW51X2J1ZmZlcjsNCiAgDQogIHN1Yk1lbnVbNzEwXSA9IG1lbnVfYXV0aGVudGljYXRpb25XZWI7DQogIA0KICBpZiAoY29uZmlnWyJhdXRoZW50aWNhdGlvbi53ZWIiXSA9PSB0cnVlKSB7DQogICAgc3ViTWVudVs3MTFdID0gbWVudV9hdXRoZW50aWNhdGlvblBtczsNCiAgICBzdWJNZW51WzcxMl0gPSBtZW51X2F1dGhlbnRpY2F0aW9uTTN1Ow0KICAgIHN1Yk1lbnVbNzEzXSA9IG1lbnVfYXV0aGVudGljYXRpb25YbWw7DQogICAgc3ViTWVudVs3MTRdID0gbWVudV9hdXRoZW50aWNhdGlvbkFwaTsNCiAgfQ0KDQogIHN1Yk1lbnVbNzk5XSA9IG1lbnVfYXBpOw0KDQogIA0KDQogIHJldHVybg0KfQ0KDQpmdW5jdGlvbiBjcmVhdGVNZW51KCkgew0KDQogIHNob3dFbGVtZW50KCJwb3B1cCIsIGZhbHNlKTsNCg0KICAvL2NvbnNvbGUubG9nKGNvbmZpZyk7DQogIHNldE1lbnVJdGVtKCk7DQogIHZhciBtZW51SXRlbXMgPSBnZXRPYmpLZXlzKG1lbnUpDQogIHZhciBuYXYgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgiTkFWIilbMF07DQogIG5hdi5pbm5lckhUTUwgPSAiIjsNCiAgdmFyIG5ld0l0ZW0gPSBuZXcgT2JqZWN0KCk7DQoNCiAgZm9yICh2YXIgaSA9IDA7IGkgPCBtZW51SXRlbXMubGVuZ3RoOyBpKyspIHsNCg0KICAgIA0KICAgIHZhciBuZXdJdGVtID0gbWVudVttZW51SXRlbXNbaV1dOw0KICAgIG5ld0l0ZW1bImlkIl0gPSBtZW51SXRlbXNbaV07DQoNCiAgICANCiAgICBzd2l0Y2gobmV3SXRlbS5oYXNPd25Qcm9wZXJ0eSgiX2ljb24iKSkgew0KICAgICAgY2FzZSB0cnVlOiANCiAgICAgICAgdmFyIGl0ZW1UZXh0ID0gbmV3SXRlbVsiX3RleHQiXTsNCiAgICAgICAgZGVsZXRlIG5ld0l0ZW1bIl90ZXh0Il0NCiAgICAgICAgbmF2LmFwcGVuZENoaWxkKGNyZWF0ZUVsZW1lbnQobmV3SXRlbSkpOw0KICAgICAgICBuZXdJdGVtWyJfdGV4dCJdID0gaXRlbVRleHQ7DQogICAgICAgIHZhciBuZXdJY29uID0gbmV3IE9iamVjdCgpOw0KICAgICAgICBuZXdJY29uWyJfZWxlbWVudCJdID0gIklNRyI7DQogICAgICAgIG5ld0ljb25bInNyYyJdID0gbmV3SXRlbVsiX2ljb24iXTsNCg0KICAgICAgICB2YXIgY3VycmVudEVsZW1lbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChtZW51SXRlbXNbaV0pOw0KICAgICAgICBjdXJyZW50RWxlbWVudC5hcHBlbmRDaGlsZChjcmVhdGVFbGVtZW50KG5ld0ljb24pKTsNCg0KDQogICAgICAgIHZhciB0ZXh0ID0gbmV3IE9iamVjdCgpOw0KICAgICAgICB0ZXh0WyJfZWxlbWVudCJdID0gIlAiDQogICAgICAgIHRleHRbIl90ZXh0Il0gPSBpdGVtVGV4dDsNCiAgICAgICAgdGV4dFsiY2xhc3MiXSA9ICJuYXYtdGV4dCINCiAgICAgICAgY3VycmVudEVsZW1lbnQuYXBwZW5kQ2hpbGQoY3JlYXRlRWxlbWVudCh0ZXh0KSk7DQogICAgICAgIGJyZWFrOw0KDQogICAgICBkZWZhdWx0Og0KICAgICAgICBuYXYuYXBwZW5kQ2hpbGQoY3JlYXRlRWxlbWVudChuZXdJY29uKSk7DQogICAgICAgIGJyZWFrOw0KICAgIH0NCg0KICB9DQogIGlmIChhY3RpdmVNZW51ICE9IHVuZGVmaW5lZCkgew0KICAgIC8vY29uc29sZS5sb2coYWN0aXZlTWVudSk7DQogICAgdG9nZ2xlTWVudShhY3RpdmVNZW51KTsNCiAgfQ0KDQogIHJldHVybg0KfQ0KDQpmdW5jdGlvbiB0b2dnbGVNZW51KGVsbSkgew0KICAvL3Nob3dTdHJlYW1zKGZhbHNlKTsNCiAgY2xlYXJJbnRlcnZhbChsb2dJbnRlcnZhbCkNCiAgYWN0aXZlTWVudSA9IGVsbTsNCiAgdmFyIGl0ZW0gPSBtZW51W2VsbS5pZF0NCiAgdmFyIGRpdiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzZXR0aW5ncyIpOw0KICBkaXYuaW5uZXJIVE1MID0gIiI7DQogIA0KICAvLyBTZXQgSGVhZGxpbmUNCiAgdmFyIGhlYWRsaW5lID0gbmV3IE9iamVjdCgpOw0KICBoZWFkbGluZVsiX2VsZW1lbnQiXSA9ICJINCI7DQogIGhlYWRsaW5lWyJfdGV4dCJdID0gaXRlbVsiX2hlYWRsaW5lIl07DQogIGRpdi5hcHBlbmRDaGlsZChjcmVhdGVFbGVtZW50KGhlYWRsaW5lKSk7DQoNCiAgLy8gU3ViLU1lbnUNCiAgaWYgKGl0ZW0uaGFzT3duUHJvcGVydHkoIl9zdWJNZW51IikgPT0gdHJ1ZSkgew0KICAgIG9wZW5TdWJNZW51KGl0ZW0pOw0KICAgIHJldHVybg0KICB9DQoNCiAgLy8gTWFwcGluZywgVXNlcnMsIExvZywgRmlsZXMNCiAgc3dpdGNoKGl0ZW1bIl9jb25maWdLZXkiXSkgew0KICAgIGNhc2UgIm1hcHBpbmciOiAgICAgb3Blbk1hcHBpbmdFZGl0b3IoaXRlbSk7IHJldHVybjsgYnJlYWs7DQogICAgY2FzZSAidXNlcnMiOiAgICAgICBvcGVuVXNlcnMoaXRlbSk7IHJldHVybjsgYnJlYWs7DQogICAgY2FzZSAibG9nIjogICAgICAgICBzaG93TG9nKGl0ZW0pOyByZXR1cm47IGJyZWFrOw0KICAgIGNhc2UgImZpbGVzLm0zdSI6ICAgb3BlbkZpbGVzKGl0ZW0sICJtM3UiKTsgcmV0dXJuOyBicmVhazsNCiAgICBjYXNlICJmaWxlcy54bWx0diI6IG9wZW5GaWxlcyhpdGVtLCAieG1sdHYiKTsgcmV0dXJuOyBicmVhazsNCg0KICAgIGNhc2UgImZpbHRlciI6ICAgICAgc2hvd1N0cmVhbXModHJ1ZSk7IGJyZWFrOw0KICB9DQoNCiANCg0KICB2YXIgbmV3SFIgPSBuZXcgT2JqZWN0KCk7DQogIG5ld0hSWyJfZWxlbWVudCJdID0gIkhSIg0KICBkaXYuYXBwZW5kQ2hpbGQoY3JlYXRlRWxlbWVudChuZXdIUikpOw0KICANCiAgdmFyIG5ld0VudHJ5ID0gbmV3IE9iamVjdCgpOw0KICBuZXdFbnRyeVsiX2VsZW1lbnQiXSAgPSAiSU5QVVQiOw0KICBuZXdFbnRyeVsidHlwZSJdID0gImJ1dHRvbiI7DQogIC8vbmV3RW50cnlbImNsYXNzIl0gPSAic2F2ZSI7DQogIG5ld0VudHJ5WyJ2YWx1ZSJdID0gIlNhdmUiOw0KICBuZXdFbnRyeVsib25jbGljayJdID0gInNhdmVEYXRhMignc2V0dGluZ3MnKSINCiAgZGl2LmFwcGVuZENoaWxkKGNyZWF0ZUVsZW1lbnQobmV3RW50cnkpKTsNCg0KDQogIHZhciBuZXdXcmFwcGVyID0gbmV3IE9iamVjdCgpOw0KICBuZXdXcmFwcGVyWyJfZWxlbWVudCJdICA9ICJESVYiOw0KICBuZXdXcmFwcGVyWyJpZCJdICAgICAgICA9ICJib3gtd3JhcHBlciI7DQogIGRpdi5hcHBlbmRDaGlsZChjcmVhdGVFbGVtZW50KG5ld1dyYXBwZXIpKTsNCg0KICBkaXYgPSBkaXYubGFzdENoaWxkOw0KICANCiAgZGl2LmFwcGVuZENoaWxkKGNyZWF0ZU1lbnVJdGVtKGl0ZW0pKQ0KDQogIC8vIHVzYWdlIEluZm8gIA0KICBzd2l0Y2gobWVudVthY3RpdmVNZW51LmlkXS5oYXNPd25Qcm9wZXJ0eSgiX3VzYWdlIikpIHsNCiAgICBjYXNlIHRydWU6IA0KICAgICAgdmFyIHVzYWdlSXRlbSA9IG5ldyBPYmplY3QoKTsNCiAgICAgIHVzYWdlSXRlbVsiX2VsZW1lbnQiXSA9ICJQUkUiDQogICAgICB1c2FnZUl0ZW1bIl90ZXh0Il0gICAgPSBtZW51W2FjdGl2ZU1lbnUuaWRdWyJfdXNhZ2UiXTsNCiAgICAgIGRpdi5hcHBlbmRDaGlsZChjcmVhdGVFbGVtZW50KHVzYWdlSXRlbSkpOw0KICB9DQogIA0KICBjYWxjdWxhdGVXcmFwcGVySGVpZ2h0KCk7DQoNCn0NCg0KZnVuY3Rpb24gY3JlYXRlTWVudUl0ZW0oaXRlbSkgew0KICB2YXIgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIkRJViIpOw0KICBzd2l0Y2goaXRlbVsiX21lbnVUeXBlIl0pIHsNCiAgICBjYXNlICJpbnB1dEFycmF5IjoNCiAgICAgIGlmIChjb25maWcuaGFzT3duUHJvcGVydHkoaXRlbVsiX2NvbmZpZ0tleSJdKSA9PSB0cnVlKSB7DQogICAgICAgIHZhciB2YWx1ZSA9IGNvbmZpZ1tpdGVtWyJfY29uZmlnS2V5Il1dOw0KICAgICAgfSBlbHNlIHsNCiAgICAgICAgdmFyIHZhbHVlID0gbmV3IEFycmF5KCk7DQogICAgICB9DQogICAgICANCiAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdmFsdWUubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgdmFyIG5ld0VudHJ5ID0gbmV3IE9iamVjdCgpOw0KICAgICAgICBuZXdFbnRyeSA9IGl0ZW0NCiAgICAgICAgZGVsZXRlIG5ld0VudHJ5WyJvbmNsaWNrIl07DQogICAgICAgIG5ld0VudHJ5WyJfZWxlbWVudCJdICA9ICJJTlBVVCI7DQogICAgICAgIG5ld0VudHJ5WyJ2YWx1ZSJdICAgICA9IHZhbHVlW2ldOw0KICAgICAgICBuZXdFbnRyeVsidHlwZSJdICAgICAgPSAic2VhcmNoIjsNCiAgICAgICAgbmV3RW50cnlbImRhdGEtbWVudXR5cGUiXSA9IGl0ZW1bIl9tZW51VHlwZSJdOw0KICAgICAgICBuZXdFbnRyeVsiZGF0YS1tZW51a2V5Il0gPSBpdGVtWyJfY29uZmlnS2V5Il07DQogICAgICAgIGVsZW1lbnQuYXBwZW5kQ2hpbGQoY3JlYXRlRWxlbWVudChuZXdFbnRyeSkpOw0KDQogICAgICB9DQogICAgICAvLyBOZXcgZW50cnkgZm9yIGFycmF5DQogICAgICB2YXIgbmV3RW50cnkgPSBuZXcgT2JqZWN0KCk7DQogICAgICBuZXdFbnRyeVsiX2VsZW1lbnQiXSAgICAgID0gIklOUFVUIjsNCiAgICAgIG5ld0VudHJ5WyJ0eXBlIl0gICAgICAgICAgPSAic2VhcmNoIjsNCiAgICAgIG5ld0VudHJ5WyJuYW1lIl0gICAgICAgICAgPSBpdGVtWyJuYW1lIl07DQogICAgICBuZXdFbnRyeVsicGxhY2Vob2xkZXIiXSAgID0gaXRlbVsicGxhY2Vob2xkZXIiXTsNCiAgICAgIG5ld0VudHJ5WyJ2YWx1ZSJdICAgICAgICAgPSAiIjsNCiAgICAgIG5ld0VudHJ5WyJkYXRhLW1lbnV0eXBlIl0gPSBpdGVtWyJfbWVudVR5cGUiXTsNCiAgICAgIG5ld0VudHJ5WyJkYXRhLW1lbnVrZXkiXSAgPSBpdGVtWyJfY29uZmlnS2V5Il07DQogICAgICBlbGVtZW50LmFwcGVuZENoaWxkKGNyZWF0ZUVsZW1lbnQobmV3RW50cnkpKTsNCiAgICAgIGJyZWFrOw0KICANCiAgICBjYXNlICJzaW5nbGVJbnB1dCI6DQogICAgICB2YXIgdmFsdWUgPSBjb25maWdbaXRlbVsiX2NvbmZpZ0tleSJdXTsNCiAgICAgIGlmICh2YWx1ZSA9PSB1bmRlZmluZWQpIHsNCiAgICAgICAgdmFsdWUgPSAiIjsNCiAgICAgIH0NCiAgICAgIHZhciBuZXdFbnRyeSA9IG5ldyBPYmplY3QoKTsNCiAgICAgIG5ld0VudHJ5ID0gaXRlbTsNCiAgICAgIGRlbGV0ZSBuZXdFbnRyeVsib25jbGljayJdOw0KICAgICAgbmV3RW50cnlbIl9lbGVtZW50Il0gID0gIklOUFVUIjsNCiAgICAgIG5ld0VudHJ5WyJ2YWx1ZSJdICAgICA9IHZhbHVlOw0KICAgICAgbmV3RW50cnlbInR5cGUiXSAgICAgID0gInNlYXJjaCI7DQogICAgICBuZXdFbnRyeVsiZGF0YS1tZW51dHlwZSJdID0gaXRlbVsiX21lbnVUeXBlIl07DQogICAgICBuZXdFbnRyeVsiZGF0YS1tZW51a2V5Il0gPSBpdGVtWyJfY29uZmlnS2V5Il07DQogICAgICBlbGVtZW50LmFwcGVuZENoaWxkKGNyZWF0ZUVsZW1lbnQobmV3RW50cnkpKTsNCiAgICAgIGJyZWFrOw0KDQogICAgY2FzZSAiY2hlY2tib3giOg0KICAgICAgdmFyIHZhbHVlID0gY29uZmlnW2l0ZW1bIl9jb25maWdLZXkiXV07DQogICAgICBpZiAodmFsdWUgPT0gdW5kZWZpbmVkKSB7DQogICAgICAgIHZhbHVlID0gZmFsc2U7DQogICAgICB9DQogICAgICB2YXIgbmV3RW50cnkgPSBuZXcgT2JqZWN0KCk7DQogICAgICBuZXdFbnRyeSA9IGl0ZW07DQogICAgICBkZWxldGUgbmV3RW50cnlbIm9uY2xpY2siXTsNCiAgICAgIG5ld0VudHJ5WyJfZWxlbWVudCJdICA9ICJJTlBVVCI7DQogICAgICBuZXdFbnRyeVsidmFsdWUiXSAgICAgPSB2YWx1ZTsNCiAgICAgIG5ld0VudHJ5WyJ0eXBlIl0gICAgICA9ICJjaGVja2JveCI7DQogICAgICBuZXdFbnRyeVsiZGF0YS1tZW51dHlwZSJdID0gaXRlbVsiX21lbnVUeXBlIl07DQogICAgICBuZXdFbnRyeVsiZGF0YS1tZW51a2V5Il0gPSBpdGVtWyJfY29uZmlnS2V5Il07DQogICAgICBlbGVtZW50LmFwcGVuZENoaWxkKGNyZWF0ZUVsZW1lbnQobmV3RW50cnkpKTsNCiAgICAgIGVsZW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIklOUFVUIilbMF0uY2hlY2tlZCA9IHZhbHVlOw0KICAgICAgYnJlYWs7DQogICAgDQogICAgY2FzZSAic2VsZWN0IjoNCiAgICAgIHZhciB2YWx1ZSA9IGNvbmZpZ1tpdGVtWyJfY29uZmlnS2V5Il1dOw0KICAgICAgdmFyIG5ld0VudHJ5ID0gbmV3IE9iamVjdCgpOw0KICAgICAgbmV3RW50cnkgPSBpdGVtOw0KICAgICAgZGVsZXRlIG5ld0VudHJ5WyJvbmNsaWNrIl0NCiAgICAgIG5ld0VudHJ5WyJfZWxlbWVudCJdICA9ICJTRUxFQ1QiOw0KICAgICAgZWxlbWVudC5hcHBlbmRDaGlsZChjcmVhdGVFbGVtZW50KG5ld0VudHJ5KSk7DQogICAgICB2YXIgc2VsZWN0RWxlbWVudCA9IGVsZW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlNFTEVDVCIpWzBdOw0KICAgICAgdmFyIHZhbHVlcyA9IGl0ZW1bIl9vcHRpb25WYWx1ZXMiXTsNCiAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdmFsdWVzLmxlbmd0aDsgaSsrKSB7DQogICAgICAgIHZhciBuZXdFbnRyeSA9IG5ldyBPYmplY3Q7DQogICAgICAgIG5ld0VudHJ5WyJfZWxlbWVudCJdICA9ICJPUFRJT04iOw0KICAgICAgICBuZXdFbnRyeVsiX3RleHQiXSAgICAgPSBpdGVtWyJfdGV4dCJdICsgIjogIiArIHZhbHVlc1tpXTsNCiAgICAgICAgbmV3RW50cnlbInZhbHVlIl0gICAgID0gdmFsdWVzW2ldOw0KICAgICAgICBzZWxlY3RFbGVtZW50LmFwcGVuZENoaWxkKGNyZWF0ZUVsZW1lbnQobmV3RW50cnkpKTsNCiAgICAgIH0NCiAgICAgIHNlbGVjdEVsZW1lbnQudmFsdWUgPSB2YWx1ZTsNCiAgICAgIGJyZWFrOw0KICAgIA0KICB9DQogIHJldHVybiBlbGVtZW50Ow0KfQ0KDQpmdW5jdGlvbiBvcGVuU3ViTWVudShpdGVtKSB7DQogIHZhciBlbnRyeXMgPSBpdGVtWyJfc3ViTWVudSJdLnNwbGl0KCIsIik7DQogIHZhciBkaXYgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic2V0dGluZ3MiKTsNCg0KICB2YXIgbmV3SFIgPSBuZXcgT2JqZWN0KCk7DQogIG5ld0hSWyJfZWxlbWVudCJdID0gIkhSIg0KICBkaXYuYXBwZW5kQ2hpbGQoY3JlYXRlRWxlbWVudChuZXdIUikpOw0KICANCiAgdmFyIG5ld0VudHJ5ID0gbmV3IE9iamVjdCgpOw0KICBuZXdFbnRyeVsiX2VsZW1lbnQiXSAgPSAiSU5QVVQiOw0KICBuZXdFbnRyeVsidHlwZSJdID0gImJ1dHRvbiI7DQogIC8vbmV3RW50cnlbImNsYXNzIl0gPSAic2F2ZSI7DQogIG5ld0VudHJ5WyJ2YWx1ZSJdID0gIlNhdmUiOw0KICBuZXdFbnRyeVsib25jbGljayJdID0gInNhdmVEYXRhMignc2V0dGluZ3MnKSINCiAgZGl2LmFwcGVuZENoaWxkKGNyZWF0ZUVsZW1lbnQobmV3RW50cnkpKTsNCg0KICBpZiAoaXRlbVsiX2NvbmZpZ0tleSJdID09ICJzZXR0aW5ncyIpIHsNCiAgICB2YXIgbmV3RW50cnkgPSBuZXcgT2JqZWN0KCk7DQogICAgbmV3RW50cnlbIl9lbGVtZW50Il0gID0gIklOUFVUIjsNCiAgICBuZXdFbnRyeVsidHlwZSJdID0gImJ1dHRvbiI7DQogICAgLy9uZXdFbnRyeVsiY2xhc3MiXSA9ICJzYXZlIjsNCiAgICBuZXdFbnRyeVsidmFsdWUiXSA9ICJCYWNrdXAiOw0KICAgIG5ld0VudHJ5WyJvbmNsaWNrIl0gPSAieHRldmVCYWNrdXAoKSINCiAgICBkaXYuYXBwZW5kQ2hpbGQoY3JlYXRlRWxlbWVudChuZXdFbnRyeSkpOw0KICB9DQoNCiAgaWYgKGl0ZW1bIl9jb25maWdLZXkiXSA9PSAic2V0dGluZ3MiKSB7DQogICAgdmFyIG5ld0VudHJ5ID0gbmV3IE9iamVjdCgpOw0KICAgIG5ld0VudHJ5WyJfZWxlbWVudCJdICA9ICJJTlBVVCI7DQogICAgbmV3RW50cnlbInR5cGUiXSA9ICJidXR0b24iOw0KICAgIC8vbmV3RW50cnlbImNsYXNzIl0gPSAic2F2ZSI7DQogICAgbmV3RW50cnlbInZhbHVlIl0gPSAiUmVzdG9yZSI7DQogICAgbmV3RW50cnlbIm9uY2xpY2siXSA9ICJ4dGV2ZVJlc3RvcmUodGhpcykiDQogICAgZGl2LmFwcGVuZENoaWxkKGNyZWF0ZUVsZW1lbnQobmV3RW50cnkpKTsNCiAgfQ0KDQoNCiAgdmFyIG5ld1dyYXBwZXIgPSBuZXcgT2JqZWN0KCk7DQogIG5ld1dyYXBwZXJbIl9lbGVtZW50Il0gID0gIkRJViI7DQogIG5ld1dyYXBwZXJbImlkIl0gICAgICAgID0gImJveC13cmFwcGVyIjsNCiAgZGl2LmFwcGVuZENoaWxkKGNyZWF0ZUVsZW1lbnQobmV3V3JhcHBlcikpOw0KICANCiAgZGl2ID0gZGl2Lmxhc3RDaGlsZDsNCiAgDQoNCiAgZm9yICh2YXIgaSA9IDA7IGkgPCBlbnRyeXMubGVuZ3RoOyBpKyspIHsNCiAgICB2YXIgaXRlbSA9IHN1Yk1lbnVbZW50cnlzW2ldXTsNCiAgICBpZiAoaXRlbSA9PSB1bmRlZmluZWQpIHsNCiAgICAgIGJyZWFrOw0KICAgIH0NCiAgICANCiAgICB2YXIgY29udGFpbmVyID0gbmV3IE9iamVjdCgpOw0KICAgIGNvbnRhaW5lclsiX2VsZW1lbnQiXSA9ICJESVYiOw0KICAgIGRpdi5hcHBlbmRDaGlsZChjcmVhdGVFbGVtZW50KGNvbnRhaW5lcikpOw0KDQogICAgdmFyIGRpdkNvbnRhaW5lciA9IGRpdi5sYXN0Q2hpbGQ7DQogICAgDQogICAgdmFyIGhlYWRsaW5lID0gbmV3IE9iamVjdCgpOw0KICAgIGhlYWRsaW5lWyJfZWxlbWVudCJdID0gIkg1IjsNCiAgICBoZWFkbGluZVsiX3RleHQiXSA9IGl0ZW1bIl9oZWFkbGluZSJdOw0KICAgIGRpdkNvbnRhaW5lci5hcHBlbmRDaGlsZChjcmVhdGVFbGVtZW50KGhlYWRsaW5lKSk7DQoNCiAgICBkaXZDb250YWluZXIuYXBwZW5kQ2hpbGQoY3JlYXRlTWVudUl0ZW0oaXRlbSkpDQoNCiAgICBzd2l0Y2goaXRlbS5oYXNPd25Qcm9wZXJ0eSgiX3VzYWdlIikpIHsNCiAgICAgIGNhc2UgdHJ1ZTogDQogICAgICAgIHZhciB1c2FnZUl0ZW0gPSBuZXcgT2JqZWN0KCk7DQogICAgICAgIHVzYWdlSXRlbVsiX2VsZW1lbnQiXSA9ICJQUkUiDQogICAgICAgIHVzYWdlSXRlbVsiX3RleHQiXSAgICA9IGl0ZW1bIl91c2FnZSJdOw0KICAgICAgICBkaXZDb250YWluZXIuYXBwZW5kQ2hpbGQoY3JlYXRlRWxlbWVudCh1c2FnZUl0ZW0pKTsNCiAgICB9DQoNCiAgICB2YXIgaHIgPSBuZXcgT2JqZWN0KCk7DQogICAgaHJbIl9lbGVtZW50Il0gPSAiSFIiOw0KICAgIGRpdkNvbnRhaW5lci5hcHBlbmRDaGlsZChjcmVhdGVFbGVtZW50KGhyKSk7DQogIA0KICB9DQoNCiAgY2FsY3VsYXRlV3JhcHBlckhlaWdodCgpOw0KICByZXR1cm4NCn0NCg0KZnVuY3Rpb24gc2F2ZURhdGEyKGVsbSkgew0KICB2YXIgZGl2ICAgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChlbG0pOw0KICB2YXIgaW5wdXRzID0gZGl2LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJJTlBVVCIpOw0KICB2YXIgc2VsZWN0cyA9IGRpdi5nZXRFbGVtZW50c0J5VGFnTmFtZSgiU0VMRUNUIik7DQogIHZhciB2YWx1ZSwgY29uZmlnS2V5Ow0KICB2YXIgZGF0YSA9IG5ldyBPYmplY3QoKTsNCiAgdmFyIHZhbHVlQXJyID0gbmV3IEFycmF5KCk7DQogIHZhciBuZXdEYXRhID0gZmFsc2U7DQogIA0KICBmb3IgKHZhciBpID0gMDsgaSA8IGlucHV0cy5sZW5ndGg7IGkrKykgew0KICAgIGlmIChpbnB1dHNbaV0udHlwZSAhPSAiYnV0dG9uIikgew0KICAgICAgdmFyIG1lbnVUeXBlID0gaW5wdXRzW2ldLmdldEF0dHJpYnV0ZSgiZGF0YS1tZW51dHlwZSIpOw0KICAgICAgDQogICAgICAvL2NvbnNvbGUubG9nKG1lbnVUeXBlKTsNCiAgICAgIHN3aXRjaChtZW51VHlwZSkgew0KICAgICAgICBjYXNlICJzaW5nbGVJbnB1dCI6DQogICAgICAgICAgdmFsdWUgPSBpbnB1dHNbaV0udmFsdWU7DQogICAgICAgICAgaWYgKHZhbHVlID09ICIiIHx8IHZhbHVlID09IHVuZGVmaW5lZCkgew0KICAgICAgICAgICAgZGF0YSA9IG5ldyBPYmplY3QoKTsNCiAgICAgICAgICAgIGRhdGFbImRlbGV0ZSJdID0gaW5wdXRzW2ldLm5hbWUNCiAgICAgICAgICAgIG5ld0RhdGEgPSB0cnVlOw0KICAgICAgICAgIH0gZWxzZSB7DQogICAgICAgICAgICBuZXdEYXRhID0gdHJ1ZTsNCiAgICAgICAgICAgIGRhdGFbaW5wdXRzW2ldLm5hbWVdID0gdmFsdWU7DQogICAgICAgICAgICBjb25zb2xlLmxvZyhkYXRhKTsNCiAgICAgICAgICB9DQogICAgICAgICAgYnJlYWs7DQogICAgICAgIGNhc2UgImlucHV0QXJyYXkiOiANCiAgICAgICAgICB2YWx1ZSA9IGlucHV0c1tpXS52YWx1ZTsNCiAgICAgICAgICBpZiAodmFsdWUgIT0gIiIgJiYgdmFsdWUgIT0gdW5kZWZpbmVkKSB7DQogICAgICAgICAgICBuZXdEYXRhID0gdHJ1ZTsNCiAgICAgICAgICAgIHZhbHVlQXJyLnB1c2godmFsdWUpDQogICAgICAgICAgICBkYXRhW2lucHV0c1tpXS5uYW1lXSA9IHZhbHVlQXJyOw0KICAgICAgICAgICAgY29uZmlnS2V5ID0gaW5wdXRzW2ldLm5hbWU7DQogICAgICAgICAgfSANCiAgICAgICAgICANCiAgICAgICAgICBicmVhazsNCg0KICAgICAgICBjYXNlICJjaGVja2JveCI6DQogICAgICAgICAgdmFsdWUgPSBpbnB1dHNbaV0uY2hlY2tlZA0KICAgICAgICAgIGRhdGFbaW5wdXRzW2ldLm5hbWVdID0gdmFsdWU7DQogICAgICB9DQogICAgICANCiAgICB9DQogICAgDQogIH0NCg0KDQogIC8vIERlbGV0ZSBjb25maWcga2V5DQogIGlmICh2YWx1ZUFyci5sZW5ndGggPT0gMCAmJiBuZXdEYXRhID09IGZhbHNlKSB7DQogICAgbmV3RGF0YSA9IHRydWU7DQogICAgZGF0YSA9IG5ldyBPYmplY3QoKTsNCiAgICBkYXRhWyJkZWxldGUiXSA9IGNvbmZpZ0tleTsNCiAgfSANCg0KDQogIGZvciAodmFyIGkgPSAwOyBpIDwgc2VsZWN0cy5sZW5ndGg7IGkrKykgew0KICAgIHZhciB2YWx1ZSA9IHNlbGVjdHNbaV0ub3B0aW9uc1tzZWxlY3RzW2ldLnNlbGVjdGVkSW5kZXhdLnZhbHVlOw0KICAgIHN3aXRjaChpc05hTih2YWx1ZSkpIHsNCiAgICAgIGNhc2UgZmFsc2U6IHZhbHVlID0gcGFyc2VJbnQodmFsdWUpOyBicmVhazsNCiAgICB9DQoNCiAgICBkYXRhW3NlbGVjdHNbaV0ubmFtZV0gPSB2YWx1ZTsNCiAgICBuZXdEYXRhID0gdHJ1ZTsNCiAgfQ0KDQogIC8vY29uc29sZS5sb2coZGF0YSwgbmV3RGF0YSk7DQoNCiAgaWYgKG5ld0RhdGEgPT0gdHJ1ZSkgew0KICAgIGRhdGFbImNtZCJdID0gInNhdmVDb25maWciOw0KICAgIGlmICghZGF0YS5oYXNPd25Qcm9wZXJ0eSgnZmlsdGVyJykpIHsNCiAgICAgIGRhdGFbImZpbHRlciJdID0gY29uZmlnWyJmaWx0ZXIiXQ0KICAgIH0NCiAgICB2YXIgc2V0dGluZ3MgPSBuZXcgT2JqZWN0KCk7DQogICAgc2V0dGluZ3NbImNtZCJdID0gZGF0YVsiY21kIl07DQogICAgc2V0dGluZ3NbInNldHRpbmdzIl0gPSBkYXRhOw0KICAgIGNvbnNvbGUubG9nKHNldHRpbmdzKTsNCiAgICB4VGVWZShzZXR0aW5ncyk7DQogIH0NCn0NCg==" - webUI["html/configuration.html"] = "PCFkb2N0eXBlIGh0bWw+DQo8aHRtbD4NCiAgPGhlYWQ+DQogICAgPG1ldGEgY2hhcnNldD0idXRmLTgiPg0KICAgIDxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgsIGluaXRpYWwtc2NhbGU9MS4wIiAvPiANCiAgICA8dGl0bGU+eFRlVmU8L3RpdGxlPg0KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iY3NzL3NjcmVlbi5jc3MiIHR5cGU9InRleHQvY3NzIj4NCiAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9ImNzcy9iYXNlLmNzcyIgdHlwZT0idGV4dC9jc3MiPg0KICAgIDxzY3JpcHQgbGFuZ3VhZ2U9ImphdmFzY3JpcHQiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJqcy9jb25maWd1cmF0aW9uX3RzLmpzIj48L3NjcmlwdD4NCiAgICA8c2NyaXB0IGxhbmd1YWdlPSJqYXZhc2NyaXB0IiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ianMvbmV0d29ya190cy5qcyI+PC9zY3JpcHQ+DQogICAgPHNjcmlwdCBsYW5ndWFnZT0iamF2YXNjcmlwdCIgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9ImpzL21lbnVfdHMuanMiPjwvc2NyaXB0Pg0KICAgIDxzY3JpcHQgbGFuZ3VhZ2U9ImphdmFzY3JpcHQiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJqcy9zZXR0aW5nc190cy5qcyI+PC9zY3JpcHQ+DQogICAgPHNjcmlwdCBsYW5ndWFnZT0iamF2YXNjcmlwdCIgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9ImpzL2Jhc2VfdHMuanMiPjwvc2NyaXB0Pg0KICA8L2hlYWQ+DQoNCiAgICA8Ym9keSBvbmxvYWQ9ImphdmFzY3JpcHQ6IHJlYWR5Rm9yQ29uZmlndXJhdGlvbigwKTsiPg0KICAgICAgICAgIA0KICAgICAgPGRpdiBpZD0ibG9hZGluZyIgY2xhc3M9ImJsb2NrIj4NCiAgICAgICAgPGRpdiBjbGFzcz0ibG9hZGVyIj48L2Rpdj4NCiAgICAgIDwvZGl2Pg0KDQogICAgICA8ZGl2IGlkPSJoZWFkZXIiIGNsYXNzPSJpbWdDZW50ZXIiPjwvZGl2Pg0KICAgICAgPGRpdiBpZD0iYm94Ij4NCiAgICAgICAgDQogICAgICAgIDx0YWJsZSBpZD0iY2xpZW50SW5mbyIgY2xhc3M9InZpc2libGUiPg0KICAgICAgICAgIDx0cj4NCiAgICAgICAgICAgIDx0ZCBjbGFzcz0idGRLZXkiPlZlcnNpb246PC90ZD4NCiAgICAgICAgICAgIDx0ZCBpZD0idmVyc2lvbiIgY2xhc3M9InRkVmFsIj4mbmJzcDs8L3RkPg0KICAgICAgICAgICAgPHRkIGNsYXNzPSJ0ZEtleSI+T1M6PC90ZD4NCiAgICAgICAgICAgIDx0ZCBpZD0ib3MiIGNsYXNzPSJ0ZFZhbCI+Jm5ic3A7PC90ZD4NCiAgICAgICAgICA8L3RyPg0KICAgICAgICAgIDx0cj4NCiAgICAgICAgICAgIDx0ZCBjbGFzcz0idGRLZXkiPlVVSUQ6PC90ZD4NCiAgICAgICAgICAgIDx0ZCBpZD0idXVpZCIgY2xhc3M9InRkVmFsIj4mbmJzcDs8L3RkPg0KICAgICAgICAgICAgPHRkIGNsYXNzPSJ0ZEtleSI+QXJjaDo8L3RkPg0KICAgICAgICAgICAgPHRkIGlkPSJhcmNoIiBjbGFzcz0idGRWYWwiPiZuYnNwOzwvdGQ+DQogICAgICAgICAgPC90cj4NCiAgICAgICAgICA8dHI+DQogICAgICAgICAgICA8dGQgY2xhc3M9InRkS2V5Ij5TdHJlYW1zOjwvdGQ+DQogICAgICAgICAgICA8dGQgaWQ9InN0cmVhbXMiIGNsYXNzPSJ0ZFZhbCI+Jm5ic3A7PC90ZD4NCiAgICAgICAgICAgIDx0ZCBjbGFzcz0idGRLZXkiPkRWUjo8L3RkPg0KICAgICAgICAgICAgPHRkIGlkPSJEVlIiIGNsYXNzPSJ0ZFZhbCI+Jm5ic3A7PC90ZD4NCiAgICAgICAgICA8L3RyPg0KICAgICAgICA8L3RhYmxlPg0KICAgICAgICANCiAgICAgICAgPGRpdiBpZD0iaGVhZGxpbmUiPg0KICAgICAgICAgIDxoMSBpZD0iaGVhZC10ZXh0IiBjbGFzcz0iY2VudGVyIj5Db25maWd1cmF0aW9uPC9oMT4gICAgICANCiAgICAgICAgPC9kaXY+DQogICAgICAgIDxwIGlkPSJlcnIiIGNsYXNzPSJlcnJvck1zZyBjZW50ZXIiPjwvcD4gICANCiAgICAgICAgPGRpdiBpZD0iY29udGVudCI+DQogICAgICAgICAgICANCiAgICAgICAgPC9kaXY+DQogICAgICAgIDxkaXYgaWQ9ImJveC1mb290ZXIiPg0KICAgICAgICAgIDxpbnB1dCBpZD0ibmV4dCIgY2xhc3M9IiIgdHlwZT0iYnV0dG9uIiBuYW1lPSJuZXh0IiB2YWx1ZT0iTmV4dCIgb25jbGljaz0iamF2YXNjcmlwdDogc2F2ZVdpemFyZCgpOyI+DQogICAgICAgIDwvZGl2Pg0KICAgICAgPC9kaXY+DQogICAgPC9ib2R5Pg0KPC9odG1sPg==" - webUI["html/css/screen.css"] = "bmF2IGltZyB7DQogIGRpc3BsYXk6IGJsb2NrOw0KICBtYXgtaGVpZ2h0OiAyMHB4Ow0KICBtYXgtd2lkdGg6IDIwcHg7DQogIGZsb2F0OiBsZWZ0Ow0KfQ0KDQpuYXYgcCB7DQogIHRleHQtYWxpZ246IGxlZnQ7DQogIHBhZGRpbmc6IDBweCAzMHB4Ow0KfQ0KDQojbGF5b3V0IHsNCiAgZGlzcGxheTogYmxvY2s7DQogIGhlaWdodDogMTAwJTsNCn0NCg0KDQoubGF5b3V0LWxlZnQgew0KICBkaXNwbGF5OiBibG9jazsNCiAgbWluLXdpZHRoOiAxNTBweDsNCiAgbWF4LXdpZHRoOiAyMCU7DQogIGJhY2tncm91bmQtY29sb3I6ICMxMTE7DQogIGhlaWdodDogaW5oZXJpdDsNCiAgZmxvYXQ6IGxlZnQ7DQp9DQoNCi5sYXlvdXQtcmlnaHQgew0KICBkaXNwbGF5OiBibG9jazsNCiAgYmFja2dyb3VuZC1jb2xvcjogIzQ0NDsNCn0NCg0KI21lbnUtd3JhcHBlciB7DQogIGhlaWdodDogMTAwJTsNCn0NCg0KDQojbG9nbyB7DQogIGRpc3BsYXk6IGJsb2NrOw0KICBtaW4td2lkdGg6IDE4MHB4Ow0KICB3aWR0aDogMTAwJTsNCiAgaGVpZ2h0OiAxMDBweDsNCiAgYmFja2dyb3VuZDogdXJsKCIuLi9pbWcvbG9nb193XzYwMHgyMDAucG5nIik7DQogIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7DQogIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjsgDQogIGJhY2tncm91bmQtc2l6ZTogMTAwJTsNCn0NCg0KDQojcGFnZSB7DQogIG1heC13aWR0aDogOTUwcHg7DQogIG1hcmdpbjogYXV0bzsNCiAgYmFja2dyb3VuZC1jb2xvcjogIzQ0NDsNCg0KICAvKg0KICBoZWlnaHQ6IC13ZWJraXQtY2FsYygxMDAlIC0gMTMwcHgpOw0KICBoZWlnaHQ6IC1tb3otY2FsYygxMDAlIC0gMTMwcHgpOw0KICBoZWlnaHQ6IGNhbGMoMTAwJSAtIDEzMHB4KTsNCiAgKi8NCiAgDQogIG1pbi1oZWlnaHQ6IC13ZWJraXQtY2FsYygxMDAlIC0gMTIwcHgpOw0KICBtaW4taGVpZ2h0OiAtbW96LWNhbGMoMTAwJSAtIDEyMHB4KTsNCiAgbWluLWhlaWdodDogY2FsYygxMDAlIC0gMTIwcHgpOw0KICANCiAgDQogIGJveC1zaGFkb3c6IDBweCA1cHggNXB4ICMyMjI7DQogIA0KfQ0KDQojdWlTZXR0aW5nIHsNCiAgZmxvYXQ6IHJpZ2h0Ow0KICBtYXJnaW4tcmlnaHQ6IDI1cHg7DQp9DQoNCiNib3ggaW5wdXRbdHlwZT10ZXh0XSwgI2JveCBpbnB1dFt0eXBlPXBhc3N3b3JkXSB7DQogIHdpZHRoOiAtd2Via2l0LWNhbGMoMTAwJSAtIDIwcHgpOw0KICB3aWR0aDogLW1vei1jYWxjKDEwMCUgLSAyMHB4KTsNCiAgd2lkdGg6IGNhbGMoMTAwJSAtIDIwcHgpOw0KfQ0KDQojYm94IGlucHV0W3R5cGU9c3VibWl0XXsNCiAgbWFyZ2luOiA1MHB4IGF1dG87DQp9DQoNCiNzZXR0aW5ncyB7DQogIGRpc3BsYXk6IGJsb2NrOw0KICBwYWRkaW5nOiAxMHB4IDEwcHg7DQp9DQoNCiNzZXR0aW5ncyBoNSB7DQogIG1hcmdpbjogNTBweCAwcHggMTBweCAwcHg7DQp9DQoNCiNjb250ZW50LWludGVyYWN0aW9uIC5zZWFyY2ggew0KICB3aWR0aDogMjAwcHg7DQogIGJvcmRlcjogMXB4IHNvbGlkICMwMDA7DQogIHBhZGRpbmc6IDlweDsNCiAgYmFja2dyb3VuZC1jb2xvcjogIzMzMzsNCiAgbWFyZ2luOiAxMHB4Ow0KICBmbG9hdDogcmlnaHQ7DQogIGJvcmRlci1yYWRpdXM6IDNweDsNCg0KfQ0KDQojbXlTdHJlYW1zIHsNCiAgcG9zaXRpb246IGZpeGVkOw0KICBib3R0b206IDBweDsNCiAgYmFja2dyb3VuZC1jb2xvcjogIzExMTsNCiAgd2lkdGg6IDEwMCU7DQogIG1heC13aWR0aDogOTUwcHg7DQoNCiAgLyoNCiAgbWF4LWhlaWdodDogMTAwcHg7DQogICovDQogIG1hcmdpbi1ib3R0b206IDBweDsNCn0NCg0KI215U3RyZWFtcyBpbWcgew0KICB3aWR0aDogNCU7DQogIHBhZGRpbmc6IDJweCA1cHg7DQogIGN1cnNvcjogcG9pbnRlcjsNCiAgZmxvYXQ6IHJpZ2h0Ow0KfQ0KDQojc2V0dGluZ3MtZm9vdGVyIHsNCg0KfQ0KDQoNCi8qIFdpemFyZCovDQojYm94IHsNCiAgYmFja2dyb3VuZC1jb2xvcjogIzQ0NDsNCiAgbWluLWhlaWdodDogNDAwcHg7DQogIA0KICBkaXNwbGF5OiBmbGV4Ow0KICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOw0KICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47DQp9DQoNCiNib3ggcHsNCiAgcGFkZGluZzogMTBweCAwcHg7DQp9DQoNCiNib3gtZm9vdGVyIHsNCiAgbWFyZ2luLXRvcDogYXV0bzsNCn0NCg0KI2JveC1mb290ZXIgew0KICBtYXJnaW46IGF1dG87DQogIHBhZGRpbmc6IDEwcHg7DQp9DQoNCiNoZWFkbGluZSB7DQogIGJhY2tncm91bmQtY29sb3I6ICMyMjI7DQogIGJvcmRlci1ib3R0b206IHNvbGlkIDJweCAjMjIyOw0KICB0cmFuc2l0aW9uOiBhbGwgMC41czsNCiAgcGFkZGluZzogMTBweCAwcHg7DQogIGRpc3BsYXk6IGJsb2NrOw0KfQ0KDQojY29udGVudCB7DQogIGRpc3BsYXk6IGJsb2NrOw0KICBvdmVyZmxvdzogYXV0bzsNCiAgcGFkZGluZzogMTBweDsNCn0NCg0KLyogLS0tICovDQoNCg0KI2NsaWVudEluZm8sICNhY3RpdmVTdHJlYW1zLCAjaW5hY3RpdmVTdHJlYW1zIHsNCiAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZTsNCiAgZGlzcGxheTogYmxvY2s7DQogIGZvbnQtc2l6ZTogOXB4Ow0KICBiYWNrZ3JvdW5kLWNvbG9yOiAjMTExOw0KICBjb2xvcjogIzAwRTZGRjsNCiAgYm9yZGVyLWJvdHRvbTogc29saWQgMHB4OzsNCiAgcGFkZGluZzogMHB4Ow0KICBsZXR0ZXItc3BhY2luZzogMXB4Ow0KICBvdmVyZmxvdy14OiBoaWRkZW47DQogIGJvcmRlci1zcGFjaW5nOiA0cHggNHB4Ow0KICBib3JkZXItYm90dG9tOiBzb2xpZCAxcHggIzQ0NDsNCn0NCg0KI215U3RyZWFtc0JveCB7DQogIHBvc2l0aW9uOiByZWxhdGl2ZTsNCiAgcGFkZGluZzogMHB4Ow0KICAvKmhlaWdodDogMTAwcHg7Ki8NCiAgbWF4LWhlaWdodDogMTUwcHg7DQogIGJhY2tncm91bmQtY29sb3I6ICMxMTE7DQogIGNvbG9yOiB3aGl0ZTsNCiAgZGlzcGxheTpmbGV4Ow0KICBqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyOw0KICBhbGlnbi1pdGVtczpjZW50ZXI7DQp9DQoNCiNvcGVuU3RyZWFtcyB7DQogIHdpZHRoOiAyMHB4Ow0KICBoZWlnaHQ6IDIwcHg7DQogIGN1cnNvcjogcG9pbnRlcjsNCiAgZmxvYXQ6IHJpZ2h0Ow0KICBwb3NpdGlvbjogYWJzb2x1dGU7DQogIHJpZ2h0OiAwcHg7DQogIGJvdHRvbTogMHB4Ow0KICBiYWNrZ3JvdW5kOiB1cmwoIi4uL2ltZy90b3VjaC5wbmciKTsNCiAgYmFja2dyb3VuZC1jb2xvcjogIzExMTsNCiAgDQogIGJhY2tncm91bmQtcG9zaXRpb246IGJvdHRvbSByaWdodDsgIA0KfQ0KDQojYWxsU3RyZWFtcyB7DQogIHdpZHRoOiAxMDAlOw0KICBoZWlnaHQ6IDEwMCU7DQogIHBhZGRpbmc6IDJweDsgICAgIA0KfQ0KDQojYWN0aXZlU3RyZWFtcywgI2luYWN0aXZlU3RyZWFtcyB7DQogIG92ZXJmbG93LXk6IHNjcm9sbDsNCiAgd2lkdGg6IDUwJTsNCiAgbWF4LWhlaWdodDogMTAwcHg7DQogIGZsb2F0OiBsZWZ0Ow0KfQ0KDQojYWN0aXZlU3RyZWFtcyAudGRLZXksICNpbmFjdGl2ZVN0cmVhbXMgLnRkS2V5IHsNCiAgd2lkdGg6IDc1cHg7DQp9DQoNCg0KDQoNCiNpbmFjdGl2ZVN0cmVhbXMgLnRkS2V5IHsNCiAgY29sb3I6IHJlZDsNCn0NCg0KI2NsaWVudEluZm8gLnRkVmFsLCAjbG9nSW5mbyAudGRWYWwsICNhY3RpdmVTdHJlYW1zIC50ZFZhbCwgI2luYWN0aXZlU3RyZWFtcyAudGRWYWwsICNtYXBwaW5nSW5mbyAudGRWYWx7DQogIGNvbG9yOiAjYWFhOw0KICB3aGl0ZS1zcGFjZTogaW5oZXJpdDsNCn0NCg0KI2JveC13cmFwcGVyIHsNCiAgZGlzcGxheTogaW5saW5lLWJsb2NrOw0KICB3aWR0aDogMTAwJTsNCiAgDQogIG92ZXJmbG93LXk6IHNjcm9sbDsNCn0NCg0KI2NvbnRlbnRfdGFibGUsICNtYXBwaW5nLWRldGFpbC10YWJsZSwgI2NvbnRlbnRfdGFibGUgew0KICBkaXNwbGF5OiB0YWJsZTsNCiAgDQogIGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7DQogIG92ZXJmbG93LXk6IHNjcm9sbDsNCiAgd2lkdGg6IDEwMCU7DQp9DQoNCg0KI2NvbnRlbnRfdGFibGUgLmNvbnRlbnRfdGFibGVfaGVhZGVyIHsNCiAgYmFja2dyb3VuZC1jb2xvcjogIzMzMzsNCiAgaGVpZ2h0OiA1MHB4Ow0KICBib3JkZXItYm90dG9tOiBzb2xpZCAxcHggIzExMTsNCiAgYm9yZGVyLWxlZnQ6IHNvbGlkIDNweCAjMzMzOw0KICBjdXJzb3I6IGF1dG87DQoNCn0NCg0KDQp0Ym9keSB7DQogIHdpZHRoOiAxMDAlOw0KfQ0KDQoNCi50YWJsZUVsbGlwc2lzIHsNCiAgd2lkdGg6IDE1MHB4Ow0KICBvdmVyZmxvdzogaGlkZGVuOw0KICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsNCiAgd2hpdGUtc3BhY2U6IG5vd3JhcDsNCn0NCg0KI2NvbnRlbnRfdGFibGUgaW1nIHsNCiAgZGlzcGxheTogYmxvY2s7DQogIG1heC1oZWlnaHQ6IDI4cHg7DQogIG1hcmdpbi1sZWZ0OiBhdXRvOw0KICBtYXJnaW4tcmlnaHQ6IGF1dG87DQogIG1heC13aWR0aDogMzBweDsNCn0NCg0KI2NvbnRlbnRfdGFibGUgdHJ7DQogIGJvcmRlci1sZWZ0OiBzb2xpZCAzcHggNDQ0Ow0KICBib3JkZXItYm90dG9tOiBzb2xpZCAxcHggIzMzMzsNCiAgY3Vyc29yOiBwb2ludGVyOw0KfQ0KDQojY29udGVudF90YWJsZSB0cjpob3ZlciB7DQogIGJhY2tncm91bmQtY29sb3I6ICMzMzM7DQp9DQoNCiNjb250ZW50X3RhYmxlIHRkIHsNCg0KICBwYWRkaW5nOiAwcHggMnB4Ow0KfQ0KDQojY29udGVudF90YWJsZSBpbnB1dFt0eXBlPXRleHRdew0KICB3aWR0aDogODAlOw0KICBtaW4td2lkdGg6IDM1cHg7DQogIG1heC13aWR0aDogNjBweDsNCiAgYm9yZGVyOiAwcHg7DQogIGJhY2tncm91bmQtY29sb3I6ICMzMzM7DQogIG1hcmdpbi1sZWZ0OiA1cHg7DQogIHRleHQtYWxpZ246IGxlZnQ7DQp9DQoNCiNjb250ZW50X3RhYmxlIGlucHV0W3R5cGU9Y2hlY2tib3hdew0KICBtYXgtd2lkdGg6IDI1cHg7DQogIG1hcmdpbjogYXV0bzsNCn0NCg0KDQouc2hvd0J1bGsgew0KICBkaXNwbGF5OiBibG9jazsNCn0NCg0KLmhpZGVCdWxrIHsNCiAgZGlzcGxheTogbm9uZTsNCn0NCg0KLm5vQnVsayB7DQoNCn0NCg0KI2NvbnRlbnRfdGFibGUgdHIuYWN0aXZlRVBHew0KICBib3JkZXItbGVmdDogc29saWQgM3B4IGxhd25ncmVlbjsNCn0NCg0KI2NvbnRlbnRfdGFibGUgdHIubm90QWN0aXZlRVBHew0KICBib3JkZXItbGVmdDogc29saWQgM3B4IHJlZDsNCn0NCg0KDQojbG9nU2NyZWVuIHB7DQogIHdoaXRlLXNwYWNlOiBwcmU7DQogIGZvbnQtc2l6ZTogMTBweDsNCiAgLyoNCiAgbGluZS1oZWlnaHQ6IDEuNmVtOw0KICBmb250LWZhbWlseTogIkFyaWFsIiwgc2Fucy1zZXJpZjsNCiAgKi8NCiAgbGV0dGVyLXNwYWNpbmc6IDFweDsNCiAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZTsgDQogIGZvbnQtc2l6ZTogMTJweDsgDQogIGZvbnQtc3R5bGU6IG5vcm1hbDsgDQogIGZvbnQtdmFyaWFudDogbm9ybWFsOyANCiAgbGluZS1oZWlnaHQ6IDEuNmVtOyANCn0NCg0KI3BvcHVwIHsNCiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjQpOw0KICBwb3NpdGlvbjogZml4ZWQ7DQogIGxlZnQ6IDBweDsNCiAgd2lkdGg6IDEwMCU7DQogIHotaW5kZXg6IDEwMDsNCiAgaGVpZ2h0OiAxMDAlOw0KfQ0KDQojbWFwcGluZy1kZXRhaWwsICN1c2VyLWRldGFpbCwgI2ZpbGUtZGV0YWlsLCAjcG9wdXAtY3VzdG9tIHsNCiAgYm94LXNoYWRvdzogMHB4IDVweCA0MHB4ICMwMDA7DQogIG1hcmdpbi10b3A6IDIwcHg7DQogIG1hcmdpbi1sZWZ0OiBhdXRvOw0KICBtYXJnaW4tcmlnaHQ6IGF1dG87DQogIA0KICBtYXgtd2lkdGg6IDYwMHB4Ow0KICBiYWNrZ3JvdW5kLWNvbG9yOiAjMjIyOw0KICBwYWRkaW5nOiAxMHB4Ow0KICBvdmVyZmxvdzphdXRvOw0KfQ0KDQojcG9wdXAtY3VzdG9tIGgzIHsNCiAgdGV4dC1hbGlnbjogY2VudGVyOw0KfQ0KDQojZmlsZS1kZXRhaWwgaW5wdXRbdHlwZT10ZXh0XSB7DQogIHdpZHRoOiAtd2Via2l0LWNhbGMoMTAwJSAtIDIwcHgpOw0KICB3aWR0aDogLW1vei1jYWxjKDEwMCUgLSAyMHB4KTsNCiAgd2lkdGg6IGNhbGMoMTAwJSAtIDIwcHgpOw0KfQ0KDQojbWFwcGluZy1kZXRhaWwgaW1nIHsNCiAgZGlzcGxheTogYmxvY2s7DQogIG1heC1oZWlnaHQ6IDMwcHg7DQogIG1hcmdpbi1ib3R0b206IDIwcHg7DQogIG1hcmdpbi1sZWZ0OiBhdXRvOw0KICBtYXJnaW4tcmlnaHQ6IGF1dG87DQp9DQoNCiNwb3B1cC1jdXN0b20gaW5wdXRbdHlwZT10ZXh0XSwgI3BvcHVwLWN1c3RvbSBpbnB1dFt0eXBlPXBhc3N3b3JkXSwgI21hcHBpbmctZGV0YWlsIGlucHV0W3R5cGU9dGV4dF0sICNjb250ZW50X3NldHRpbmdzIGlucHV0W3R5cGU9dGV4dF0sICNjb250ZW50X3NldHRpbmdzIGlucHV0W3R5cGU9cGFzc3dvcmRdew0KICBib3JkZXI6IHNvbGlkIDFweDsNCiAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDsNCiAgYmFja2dyb3VuZC1jb2xvcjogIzMzMzsNCiAgdGV4dC1hbGlnbjogbGVmdDsNCiAgd2lkdGg6IC13ZWJraXQtY2FsYygxMDAlIC0gMjBweCk7DQogIHdpZHRoOiAgICAtbW96LWNhbGMoMTAwJSAtIDIwcHgpOw0KICB3aWR0aDogICAgICAgICBjYWxjKDEwMCUgLSAyMHB4KTsNCn0NCg0KI3BvcHVwLWN1c3RvbSBpbnB1dFt0eXBlPXRleHRdLm5vdEF2YWlsYWJsZSB7DQogIGJvcmRlci1jb2xvcjogcmVkOw0KICBjb2xvcjogIzY2NjsNCiAgY3Vyc29yOiBub3QtYWxsb3dlZDsNCn0NCg0KI21hcHBpbmctZGV0YWlsLXRhYmxlLCAjdXNlci1kZXRhaWwtdGFibGUgew0KICBkaXNwbGF5OiBpbmxpbmUtdGFibGU7DQogIHdpZHRoOiAxMDAlOw0KfQ0KDQojcG9wdXAtY3VzdG9tIHRhYmxlLCAjY29udGVudF9zZXR0aW5ncyB0YWJsZSB7DQogIGRpc3BsYXk6IGlubGluZS10YWJsZTsNCiAgdGFibGUtbGF5b3V0OiBmaXhlZDsNCiAgd2lkdGg6IDEwMCU7DQp9DQoNCg0KI21hcHBpbmctZGV0YWlsLXRhYmxlIHRkLCAjdXNlci1kZXRhaWwtdGFibGUgdGQgew0KICBwYWRkaW5nOiAxMHB4IDBweDsNCg0KfQ0KDQojbWFwcGluZy1kZXRhaWwtdGFibGUgdGQubGVmdCwgI3VzZXItZGV0YWlsLXRhYmxlIHRkLmxlZnQsICNwb3B1cC1jdXN0b20gdGQubGVmdCB7DQogIHdpZHRoOiAzOCU7DQp9DQoNCi5pbnRlcmFjdGlvbiwgI2ludGVyYWN0aW9uIHsNCiAgbWFyZ2luLXRvcDogMjBweDsNCiAgZGlzcGxheTogaW5saW5lLWZsZXg7DQogIGZsb2F0OiByaWdodDsNCn0NCg0KLmludGVyYWN0aW9uIGlucHV0W3R5cGU9YnV0dG9uXSwgLmludGVyYWN0aW9uIGlucHV0W3R5cGU9c3VibWl0XSB7DQogIGJhY2tncm91bmQtY29sb3I6ICMwMDA7DQogIG1pbi13aWR0aDogMTAwcHg7DQogIG1hcmdpbjogMHB4IDEwcHg7DQogIHRleHQtYWxpZ246IGNlbnRlcjsNCn0NCg0KI25vdGlmaWNhdGlvbiB7DQogIGRpc3BsYXk6IGJsb2NrOw0KICBwb3NpdGlvbjogZml4ZWQ7DQogIHJpZ2h0OiAwcHg7DQogIGhlaWdodDogMTAwJTsNCiAgd2lkdGg6IDI1MHB4Ow0KICANCiAgYmFja2dyb3VuZC1jb2xvcjogIzIyMjsNCiAgYm94LXNoYWRvdzogMHB4IDBweCAyMHB4ICMwMDA7DQp9DQoNCiNub3RpZmljYXRpb24gaDUgew0KICBiYWNrZ3JvdW5kLWNvbG9yOiAjMTIxMjEyOw0KICBwYWRkaW5nOiA1cHggMTBweCA1cHggMTBweDsNCn0NCg0KI25vdGlmaWNhdGlvbiBwcmUgew0KICBwYWRkaW5nOiAwcHggMTBweCAwcHggMTBweDsNCn0NCg0KI25vdGlmaWNhdGlvbiBwIHsNCiAgZm9udC1zaXplOiAxMCBweDsNCiAgbWFyZ2luOiAwcHg7DQogIHBhZGRpbmc6IDBweCAxMHB4IDVweCAxMHB4Ow0KfQ0KDQojbm90aWZpY2F0aW9uIC5lbGVtZW50IHsNCiAgLypwYWRkaW5nOiAwcHggNXB4OyovDQogIG1hcmdpbjogNXB4IDVweDsNCiAgYm9yZGVyLXJhZGl1czogNXB4Ow0KICBiYWNrZ3JvdW5kLWNvbG9yOiAjMTgxODE4Ow0KICBib3JkZXItbGVmdDogMTBweCBzb2xpZCBncmVlbjsNCn0NCg0KDQpAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDYyMHB4KXsNCiAgYm9keSB7DQogICAgd2lkdGg6IDEwMCU7DQogICAgYmFja2dyb3VuZC1jb2xvcjogIzQ0NDsNCiAgfQ0KDQogIGgxIHsNCiAgICBmb250LXNpemU6IDI2cHg7DQogICAgbGV0dGVyLXNwYWNpbmc6IDNweDsNCiAgfQ0KDQogIG5hdiBwIHsNCiAgICBkaXNwbGF5OiBibG9jazsNCiAgfQ0KDQoNCg0KICAjaGVhZGVyX2NvbmZpZyB7DQogICAgZGlzcGxheTogYmxvY2s7DQogICAgaGVpZ2h0OiAxMDBweDsNCiAgICBiYWNrZ3JvdW5kOiB1cmwoIi4uL2ltZy9sb2dvX3dfNjAweDIwMC5wbmciKTsNCiAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0Ow0KICAgIA0KICAgIGJhY2tncm91bmQtc2l6ZTogMzAwcHggMTAwcHg7DQogIH0NCg0KICAjc2NyZWVuTG9nIHsNCiAgICBtYXJnaW4tbGVmdDogMzAwcHg7DQoNCiAgICB0cmFuc2l0aW9uOiBub25lOw0KICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50Ow0KICAgIGJvcmRlci1ib3R0b206IHNvbGlkIDFweCB0cmFuc3BhcmVudDsNCiAgICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAjMjIyOw0KICB9DQoNCiAgI3NldHRpbmdzIHsNCiAgICAvKg0KICAgIGhlaWdodDogLXdlYmtpdC1jYWxjKDEwMCUgLSAxMDBweCk7DQogICAgaGVpZ2h0OiAtbW96LWNhbGMoMTAwJSAtIDEwMHB4KTsNCiAgICBoZWlnaHQ6IGNhbGMoMTAwJSAtIDEwMHB4KTsNCiAgICAqLw0KICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsNCiAgICBvdmVyZmxvdzogYXV0bzsNCiAgfQ0KDQoNCiAgLnNjcmVlbkxvZ0hpZGRlbiB7DQogICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMHB4LCAwcHgpOw0KICB9DQoNCg0KICAjYm94IHsNCiAgICBkaXNwbGF5OiBibG9jazsNCiAgICBtaW4taGVpZ2h0OiA1MDBweDsNCiAgICBtYXgtd2lkdGg6IDUwMHB4Ow0KICAgIG1hcmdpbjogMTBweCBhdXRvOw0KICAgIGJhY2tncm91bmQtY29sb3I6ICM0NDQ7DQogICAgYm94LXNoYWRvdzogMHB4IDVweCA1cHggIzIyMjsNCg0KICAgIGRpc3BsYXk6IGZsZXg7DQogICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsNCiAgfQ0KDQogICNzZXR0aW5ncywgI3NldHRpbmdzLWZvb3RlciB7DQogICAgDQogIH0NCn0NCg==" - webUI["html/img/log.png"] = "iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAAAXNSR0IArs4c6QAAAAlwSFlzAAAsSwAALEsBpT2WqQAABCRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IlhNUCBDb3JlIDUuNC4wIj4KICAgPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIgogICAgICAgICAgICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgICAgICAgICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyI+CiAgICAgICAgIDx0aWZmOlJlc29sdXRpb25Vbml0PjI8L3RpZmY6UmVzb2x1dGlvblVuaXQ+CiAgICAgICAgIDx0aWZmOkNvbXByZXNzaW9uPjU8L3RpZmY6Q29tcHJlc3Npb24+CiAgICAgICAgIDx0aWZmOlhSZXNvbHV0aW9uPjI4ODwvdGlmZjpYUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6T3JpZW50YXRpb24+MTwvdGlmZjpPcmllbnRhdGlvbj4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+Mjg4PC90aWZmOllSZXNvbHV0aW9uPgogICAgICAgICA8ZXhpZjpQaXhlbFhEaW1lbnNpb24+NTA8L2V4aWY6UGl4ZWxYRGltZW5zaW9uPgogICAgICAgICA8ZXhpZjpDb2xvclNwYWNlPjE8L2V4aWY6Q29sb3JTcGFjZT4KICAgICAgICAgPGV4aWY6UGl4ZWxZRGltZW5zaW9uPjUwPC9leGlmOlBpeGVsWURpbWVuc2lvbj4KICAgICAgICAgPGRjOnN1YmplY3Q+CiAgICAgICAgICAgIDxyZGY6QmFnLz4KICAgICAgICAgPC9kYzpzdWJqZWN0PgogICAgICAgICA8eG1wOk1vZGlmeURhdGU+MjAxOC0xMC0xNFQxMToxMDo0MjwveG1wOk1vZGlmeURhdGU+CiAgICAgICAgIDx4bXA6Q3JlYXRvclRvb2w+UGl4ZWxtYXRvciAzLjM8L3htcDpDcmVhdG9yVG9vbD4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgIDwvcmRmOlJERj4KPC94OnhtcG1ldGE+CkP32mEAAANASURBVGgF7ZlPiE1RHMffw1AYhiL5k1HEijJiYaFZiHoyFspW2RFRkkSZGgtFWJIwi9FYmo0VOywkKTbKgjSlWcifRCPX51dv6s2d33md77vvXjfmV9859/7u93x/v98959x73p1KRbAkSargAhgDH0E/qIYkuHYEvAPGvwbmNOEerXM/0Q6BRSFuZj/ix0DaDnvCkGppIucDAe4OhzvkcUO+GaELAf8ux7/b8Zlrr+Pvc3zm6nX8NccXdKmFLHaUPJ/Ruhyu5zNap8Nd6PiCLrUQTyi0Rjy/5/M0Zd+smB7M32XwtgBr07aC6yfSTs7XO77OALfH4VbgHsD/HLytVquJx4nyIdQFBsHftscksK5Z0sGhpuN8Or4Aa5sJFHjtO7G2MjKvvZjN1sglOpSlCMt9LrDZ4S4Hd0Qg24vrK+gAZbPtjMqTdFKhEdkIsYxFWP720JlioUK6pzDL41jtpRIqxOOWxecuB3fhRGT8E85YBK8VygI6GSRTCxlH3TaJgyw4O2678aCxO94LbNPovYDdmOrUukIBN/MqwjJEOwGPOHR31W4VONVCLEBR9lAJpBbSrYhn5K5R+quFnGUOr1ICtMIlxjz6XVb6qot9JeKvCPSAdlQJJHDtd8hOIN0wtRDLxx6Ntr0ulalTq1TJNyYzXUjj3SjD8X87Iva7uR8s5+2bi6FtX1oOgi8g2tSn1g2yPx+t3gIR/c90s1+C1vuO/YkxdWrdjxFtE2dE0VELWaqIZ+QuUfqrhZxmyKUvgEoyE1xizOR4YOI8plXXyAZEbYsyTJvXFsUW+x6wGUSbWogJ237rZHSEgojq1CooLT3MdCH6Pcu3xz8zIq0s9lvc2+sgz6dWH/rnQPB/jlybZGoh99hCHJqk0P6TD0jaI/4b7dVYeXVq2bemokyKpRZiHwWKMimWWshxhryjoEpOKXHUNbIN8WcUc5s2r8Vue7l9oAaiTS3EhDeB6EUYnUlGojq1MobLr3uokB/5hcys7OYWKuRl5nD5Cbi5uYXw0ntPHoay2S8Seuol5RZSJ0r/n/DEc/BdrN9kTZrH7BkwDspgwyQxW6uggU3nHnAXvAG/QZE2SrARsL8hJffwDxM0mNDPvT8IAAAAAElFTkSuQmCC" webUI["html/img/mapping.png"] = "iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAAAXNSR0IArs4c6QAAAAlwSFlzAAAsSwAALEsBpT2WqQAABCRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IlhNUCBDb3JlIDUuNC4wIj4KICAgPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIgogICAgICAgICAgICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgICAgICAgICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyI+CiAgICAgICAgIDx0aWZmOlJlc29sdXRpb25Vbml0PjI8L3RpZmY6UmVzb2x1dGlvblVuaXQ+CiAgICAgICAgIDx0aWZmOkNvbXByZXNzaW9uPjU8L3RpZmY6Q29tcHJlc3Npb24+CiAgICAgICAgIDx0aWZmOlhSZXNvbHV0aW9uPjI4ODwvdGlmZjpYUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6T3JpZW50YXRpb24+MTwvdGlmZjpPcmllbnRhdGlvbj4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+Mjg4PC90aWZmOllSZXNvbHV0aW9uPgogICAgICAgICA8ZXhpZjpQaXhlbFhEaW1lbnNpb24+NTA8L2V4aWY6UGl4ZWxYRGltZW5zaW9uPgogICAgICAgICA8ZXhpZjpDb2xvclNwYWNlPjE8L2V4aWY6Q29sb3JTcGFjZT4KICAgICAgICAgPGV4aWY6UGl4ZWxZRGltZW5zaW9uPjUwPC9leGlmOlBpeGVsWURpbWVuc2lvbj4KICAgICAgICAgPGRjOnN1YmplY3Q+CiAgICAgICAgICAgIDxyZGY6QmFnLz4KICAgICAgICAgPC9kYzpzdWJqZWN0PgogICAgICAgICA8eG1wOk1vZGlmeURhdGU+MjAxOC0wOC0wMlQxMjowODo5NzwveG1wOk1vZGlmeURhdGU+CiAgICAgICAgIDx4bXA6Q3JlYXRvclRvb2w+UGl4ZWxtYXRvciAzLjM8L3htcDpDcmVhdG9yVG9vbD4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgIDwvcmRmOlJERj4KPC94OnhtcG1ldGE+CpRxQsEAAAJLSURBVGgF7VoxTgMxEMwBHWlAaeABVCEtBcoD+EBewCdCyQsQtLyAPCBvCBSRIBUPCF1ogqBJjlkrezGr6HTrO98lhy1Z9trr2VmvnbMNjUadUhzHLeQB8hw5LS3QOUbubvIf7X3kKXIZibgS51bCZdWgMT6D8nECgArkngagQN0B8dhbkblalVmLIyheCGUthhjuLBq77MihA0xTjHHBEBBOorHLjjghbNOg4Mg2RYO4hIiEiHiaAV5aSwf8hRgjZdHtTTTc2ZFXpZkY+hMx5k3IZYlr7jgudJHp2JElLaF0K1mirYn8nAWgQB3ibM59ERNCA52d6Nghv9isQiUtn0kURe92I9eBcYA6YZxym8dyDuwRuMw82gjQYQbsPdLDdNCROO0US3uEfp3usTZpjf5J2CNtNFwjl7FHvmBnCB5PCQkQoJudJtGvE23sJEFuI39rQArS7dskXK6nlwkAKiB1VxAxLcyUePAH8cQmlbEul4+UM8LkVjPc2ZHcaFUDBEeqjoC0HyIiZ6RqOUSk6ghI+xyRD9mRQTYfIktPylaX16rhzo48KE29QH8kxjxC/hFtZYiGe70OjWVMW7Dx32bA3iO7//iAC8DOPweZFQhH6O+CmkRvW2f28oV8owEoUHdMPPg70rFJZajTkqT7uZ3ObaHEuuHOjnCpsb8vlKUsur2JhruLA94Y5QEOjuSZPR9jQ0R8zGoezNpFhN5RtUm+/bpgaG1u0jd2OSLDTRopbZ/okxcrLUYKvKprbRfHhXr8m5PK/y1V/gWRKLfiNSmxEAAAAABJRU5ErkJggg==" + webUI["html/img/users.png"] = "iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAAAXNSR0IArs4c6QAAAAlwSFlzAAAsSwAALEsBpT2WqQAABCRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IlhNUCBDb3JlIDUuNC4wIj4KICAgPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIgogICAgICAgICAgICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgICAgICAgICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyI+CiAgICAgICAgIDx0aWZmOlJlc29sdXRpb25Vbml0PjI8L3RpZmY6UmVzb2x1dGlvblVuaXQ+CiAgICAgICAgIDx0aWZmOkNvbXByZXNzaW9uPjU8L3RpZmY6Q29tcHJlc3Npb24+CiAgICAgICAgIDx0aWZmOlhSZXNvbHV0aW9uPjI4ODwvdGlmZjpYUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6T3JpZW50YXRpb24+MTwvdGlmZjpPcmllbnRhdGlvbj4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+Mjg4PC90aWZmOllSZXNvbHV0aW9uPgogICAgICAgICA8ZXhpZjpQaXhlbFhEaW1lbnNpb24+NTA8L2V4aWY6UGl4ZWxYRGltZW5zaW9uPgogICAgICAgICA8ZXhpZjpDb2xvclNwYWNlPjE8L2V4aWY6Q29sb3JTcGFjZT4KICAgICAgICAgPGV4aWY6UGl4ZWxZRGltZW5zaW9uPjUwPC9leGlmOlBpeGVsWURpbWVuc2lvbj4KICAgICAgICAgPGRjOnN1YmplY3Q+CiAgICAgICAgICAgIDxyZGY6QmFnLz4KICAgICAgICAgPC9kYzpzdWJqZWN0PgogICAgICAgICA8eG1wOk1vZGlmeURhdGU+MjAxOC0wOC0zMFQxNzowODozODwveG1wOk1vZGlmeURhdGU+CiAgICAgICAgIDx4bXA6Q3JlYXRvclRvb2w+UGl4ZWxtYXRvciAzLjM8L3htcDpDcmVhdG9yVG9vbD4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgIDwvcmRmOlJERj4KPC94OnhtcG1ldGE+CjU01MMAAANJSURBVGgF1ZnLaxNRFMYz2rpoFbW+SCsihaJQRMT6rPhAXAq6c+HChSguRFd1oRtd+A/oWhQ3oiiWFB91UbqRqlXXgoIIQhFbQTTQao2/GzLDZEjIPefO7SQHPjJz55zzfd/MZCa5N8h5ilKptJvWp8FekAed4Bv4Cj6Dh2A4CIJZPpszMHEV2MQ0SZdB0DROENMHjoEzQBoFCpZnbgYR58E/qfpE/kv2F2dmBvJ94G9ClHb3SiZGUBuASa3qGnVzjG3RmFmkKYrVHGB7e2zfdbOdBhc1TVyNnNSQNqg5wVURf/FdjRxpIEpzuIOio9JCtRHO2hrINkgJLfPFt6vaCII2WYrSpPVJi1RGuBrmTbxeSibIX5j3CUauAfOo9BXzNH4nMJ5TXREI1gHzqPQVRtc2zCyxJdAaGbclcMj7zi/jOdt6rZFhCH7akijznknqVEY4U78heSAhUuTekNSojFQIChIiYe57TtZrSY2LkecQzUjIBLljglz3VJ4qg+AXSDNGabbWXZ2wA6Qjabqg136hhHK6y60V8o2EGyl8/qHHpKZPGkYeQzyvIa9RM86XvFhjvOGQsxGIp2B50ZDJLuG2XZqnLO5rM3viGh9o0OZJon1bRLxxdHLcns1jJiYOAu2U0D2P0uStMXJdcVU+UdMlZ/NYgaA28ERg5ge5/R4l6VsjrANMWJiZJWeXnqm60vnxW90ul6u8ByaS4zX2i+S+qjGuGkrdSEWFzT1vlhlSC19Gui0UtnNriSfi6vX1ZWRjPcLEeGrzYqkb4SyvQGxvQnC93cF6BzIfx8gpYBsfSdycuei4AAR1ggugCCRh1lbugIF4vwXbhtisjfSDc+ARSOOf4lv6mNWv1VIj1ouQNF9K851gDzArtWbV1uYxS5o4zB+sp+AuKPC+cVv5RXwPuATMmUpreY1Wopgh+ybYKj4dFHWB+8DMwTZTjCHmsJUhEgfAF9DMcQtx9V8dHMyDqWZ2ENM2FL8yVV92kkY56GM5Lc6Z1vY0jbp5EJQnuqPLg4kdLWTCnIxVIJoDi4wweNYcbbGIfuLEjRxqMRNGbvTvsmyE22oZg70taKQn1BxekXw40GKfK0O9oZHsJ8ZCRbLPaI3xP7YzeQoHxWckAAAAAElFTkSuQmCC" + webUI["html/img/xmltv.png"] = "iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAAAXNSR0IArs4c6QAAAAlwSFlzAAAsSwAALEsBpT2WqQAABCRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IlhNUCBDb3JlIDUuNC4wIj4KICAgPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIgogICAgICAgICAgICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgICAgICAgICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyI+CiAgICAgICAgIDx0aWZmOlJlc29sdXRpb25Vbml0PjI8L3RpZmY6UmVzb2x1dGlvblVuaXQ+CiAgICAgICAgIDx0aWZmOkNvbXByZXNzaW9uPjU8L3RpZmY6Q29tcHJlc3Npb24+CiAgICAgICAgIDx0aWZmOlhSZXNvbHV0aW9uPjI4ODwvdGlmZjpYUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6T3JpZW50YXRpb24+MTwvdGlmZjpPcmllbnRhdGlvbj4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+Mjg4PC90aWZmOllSZXNvbHV0aW9uPgogICAgICAgICA8ZXhpZjpQaXhlbFhEaW1lbnNpb24+NTA8L2V4aWY6UGl4ZWxYRGltZW5zaW9uPgogICAgICAgICA8ZXhpZjpDb2xvclNwYWNlPjE8L2V4aWY6Q29sb3JTcGFjZT4KICAgICAgICAgPGV4aWY6UGl4ZWxZRGltZW5zaW9uPjUwPC9leGlmOlBpeGVsWURpbWVuc2lvbj4KICAgICAgICAgPGRjOnN1YmplY3Q+CiAgICAgICAgICAgIDxyZGY6QmFnLz4KICAgICAgICAgPC9kYzpzdWJqZWN0PgogICAgICAgICA8eG1wOk1vZGlmeURhdGU+MjAxOC0wNy0yOFQyMDowNzozMzwveG1wOk1vZGlmeURhdGU+CiAgICAgICAgIDx4bXA6Q3JlYXRvclRvb2w+UGl4ZWxtYXRvciAzLjM8L3htcDpDcmVhdG9yVG9vbD4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgIDwvcmRmOlJERj4KPC94OnhtcG1ldGE+Co6j9bsAAAGgSURBVGgF7VqxTsNADL0gYGEon8DOwsbAAH8BYmJn6cYIn8DC3h0+oixISFRiYYCJL0AwMMBAeK5w2rpV6uikxHfYknW98+vds18TK21DWGBlWR7CH+BfcEv2AzLP8HP42gLqkyUATuEp2PWEdQjF9ATs1zF/g29Mrxt+vVcUxR3xWxEktzFPJQmivsv8ZSI9DiQyVnxlIonwn6fpiczXpNuVVXH8O+a3Ys3y9NUyuf/NTTbEHZTjUlGSRzSiPhroUIENwB4AS/vS/susDwDhTpYBER9g7wHh5DWyibV9CiitCZbIafDEYUuJHQI3Nr/9ciWsjK6IFSWYhyvClbAyZqOIlYJG84jq7E1Ot97Zm+TinV1TrWwudk9EI3ebGFekzWprzspGEU2ySWCiOrs/s9dr7M/s9fVJJJrNXcsTsfaJc0WsKZINH+/sf1Jqvl1n1f2ZnStRN/pdq646XcSkIh9dkIg4s+IrE3nCpp8RG7f91ns+cCYR/LD4jcAZB42PN+A7/mcQ8ZxJhBYQvMJwBB/BKTFLVoLMC/wCfgyv7BesTKUC2LKM3wAAAABJRU5ErkJggg==" + webUI["html/js/configuration_ts.js"] = "Y2xhc3MgV2l6YXJkQ2F0ZWdvcnkgew0KICAgIGNvbnN0cnVjdG9yKCkgew0KICAgICAgICB0aGlzLkRvY3VtZW50SUQgPSAiY29udGVudCI7DQogICAgfQ0KICAgIGNyZWF0ZUNhdGVnb3J5SGVhZGxpbmUodmFsdWUpIHsNCiAgICAgICAgdmFyIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJINCIpOw0KICAgICAgICBlbGVtZW50LmlubmVySFRNTCA9IHZhbHVlOw0KICAgICAgICByZXR1cm4gZWxlbWVudDsNCiAgICB9DQp9DQpjbGFzcyBXaXphcmRJdGVtIGV4dGVuZHMgV2l6YXJkQ2F0ZWdvcnkgew0KICAgIGNvbnN0cnVjdG9yKGtleSwgaGVhZGxpbmUpIHsNCiAgICAgICAgc3VwZXIoKTsNCiAgICAgICAgdGhpcy5oZWFkbGluZSA9IGhlYWRsaW5lOw0KICAgICAgICB0aGlzLmtleSA9IGtleTsNCiAgICB9DQogICAgY3JlYXRlV2l6YXJkKCkgew0KICAgICAgICB2YXIgaGVhZGxpbmUgPSB0aGlzLmNyZWF0ZUNhdGVnb3J5SGVhZGxpbmUodGhpcy5oZWFkbGluZSk7DQogICAgICAgIHZhciBrZXkgPSB0aGlzLmtleTsNCiAgICAgICAgdmFyIGNvbnRlbnQgPSBuZXcgUG9wdXBDb250ZW50KCk7DQogICAgICAgIHZhciBkZXNjcmlwdGlvbjsNCiAgICAgICAgdmFyIGRvYyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHRoaXMuRG9jdW1lbnRJRCk7DQogICAgICAgIGRvYy5pbm5lckhUTUwgPSAiIjsNCiAgICAgICAgZG9jLmFwcGVuZENoaWxkKGhlYWRsaW5lKTsNCiAgICAgICAgc3dpdGNoIChrZXkpIHsNCiAgICAgICAgICAgIGNhc2UgInR1bmVyIjoNCiAgICAgICAgICAgICAgICB2YXIgdGV4dCA9IG5ldyBBcnJheSgpOw0KICAgICAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBuZXcgQXJyYXkoKTsNCiAgICAgICAgICAgICAgICBmb3IgKHZhciBpID0gMTsgaSA8PSAxMDA7IGkrKykgew0KICAgICAgICAgICAgICAgICAgICB0ZXh0LnB1c2goaSk7DQogICAgICAgICAgICAgICAgICAgIHZhbHVlcy5wdXNoKGkpOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCAiMSIsIGtleSk7DQogICAgICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgiY2xhc3MiLCAid2l6YXJkIik7DQogICAgICAgICAgICAgICAgc2VsZWN0LmlkID0ga2V5Ow0KICAgICAgICAgICAgICAgIGRvYy5hcHBlbmRDaGlsZChzZWxlY3QpOw0KICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uID0gInt7LndpemFyZC50dW5lci5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImVwZ1NvdXJjZSI6DQogICAgICAgICAgICAgICAgdmFyIHRleHQgPSBbIlBNUyIsICJYRVBHIl07DQogICAgICAgICAgICAgICAgdmFyIHZhbHVlcyA9IFsiUE1TIiwgIlhFUEciXTsNCiAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCAiWEVQRyIsIGtleSk7DQogICAgICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgiY2xhc3MiLCAid2l6YXJkIik7DQogICAgICAgICAgICAgICAgc2VsZWN0LmlkID0ga2V5Ow0KICAgICAgICAgICAgICAgIGRvYy5hcHBlbmRDaGlsZChzZWxlY3QpOw0KICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uID0gInt7LndpemFyZC5lcGdTb3VyY2UuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJtM3UiOg0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBrZXksICIiKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LndpemFyZC5tM3UucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgiY2xhc3MiLCAid2l6YXJkIik7DQogICAgICAgICAgICAgICAgaW5wdXQuaWQgPSBrZXk7DQogICAgICAgICAgICAgICAgZG9jLmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbiA9ICJ7ey53aXphcmQubTN1LmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAieG1sdHYiOg0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBrZXksICIiKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LndpemFyZC54bWx0di5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJjbGFzcyIsICJ3aXphcmQiKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5pZCA9IGtleTsNCiAgICAgICAgICAgICAgICBkb2MuYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uID0gInt7LndpemFyZC54bWx0di5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICAgICAgY29uc29sZS5sb2coa2V5KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgfQ0KICAgICAgICB2YXIgcHJlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiUFJFIik7DQogICAgICAgIHByZS5pbm5lckhUTUwgPSBkZXNjcmlwdGlvbjsNCiAgICAgICAgZG9jLmFwcGVuZENoaWxkKHByZSk7DQogICAgICAgIGNvbnNvbGUubG9nKGhlYWRsaW5lLCBrZXkpOw0KICAgIH0NCn0NCmZ1bmN0aW9uIHJlYWR5Rm9yQ29uZmlndXJhdGlvbih3aXphcmQpIHsNCiAgICB2YXIgc2VydmVyID0gbmV3IFNlcnZlcigiZ2V0U2VydmVyQ29uZmlnIik7DQogICAgc2VydmVyLnJlcXVlc3QobmV3IE9iamVjdCgpKTsNCiAgICBzaG93RWxlbWVudCgibG9hZGluZyIsIGZhbHNlKTsNCiAgICBjb25maWd1cmF0aW9uV2l6YXJkW3dpemFyZF0uY3JlYXRlV2l6YXJkKCk7DQp9DQpmdW5jdGlvbiBzYXZlV2l6YXJkKCkgew0KICAgIHZhciBjbWQgPSAic2F2ZVdpemFyZCI7DQogICAgdmFyIGRpdiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb250ZW50Iik7DQogICAgdmFyIGNvbmZpZyA9IGRpdi5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCJ3aXphcmQiKTsNCiAgICB2YXIgd2l6YXJkID0gbmV3IE9iamVjdCgpOw0KICAgIGZvciAodmFyIGkgPSAwOyBpIDwgY29uZmlnLmxlbmd0aDsgaSsrKSB7DQogICAgICAgIHZhciBuYW1lOw0KICAgICAgICB2YXIgdmFsdWU7DQogICAgICAgIHN3aXRjaCAoY29uZmlnW2ldLnRhZ05hbWUpIHsNCiAgICAgICAgICAgIGNhc2UgIlNFTEVDVCI6DQogICAgICAgICAgICAgICAgbmFtZSA9IGNvbmZpZ1tpXS5uYW1lOw0KICAgICAgICAgICAgICAgIHZhbHVlID0gY29uZmlnW2ldLnZhbHVlOw0KICAgICAgICAgICAgICAgIC8vIFdlbm4gZGVyIFdlcnQgZWluZSBaYWhsIGlzdCwgd2lyZCBkaWVzZXIgYWxzIFphaGwgZ2VzcGVpY2hlcnQNCiAgICAgICAgICAgICAgICBpZiAoaXNOYU4odmFsdWUpKSB7DQogICAgICAgICAgICAgICAgICAgIHdpemFyZFtuYW1lXSA9IHZhbHVlOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICAgICAgd2l6YXJkW25hbWVdID0gcGFyc2VJbnQodmFsdWUpOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgIklOUFVUIjoNCiAgICAgICAgICAgICAgICBzd2l0Y2ggKGNvbmZpZ1tpXS50eXBlKSB7DQogICAgICAgICAgICAgICAgICAgIGNhc2UgInRleHQiOg0KICAgICAgICAgICAgICAgICAgICAgICAgbmFtZSA9IGNvbmZpZ1tpXS5uYW1lOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSBjb25maWdbaV0udmFsdWU7DQogICAgICAgICAgICAgICAgICAgICAgICBpZiAodmFsdWUubGVuZ3RoID09IDApIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgbXNnID0gbmFtZS50b1VwcGVyQ2FzZSgpICsgIjogIiArICJ7ey5hbGVydC5taXNzaW5nSW5wdXR9fSI7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgYWxlcnQobXNnKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICB3aXphcmRbbmFtZV0gPSB2YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICAgICAgLy8gY29kZS4uLg0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICB9DQogICAgfQ0KICAgIHZhciBkYXRhID0gbmV3IE9iamVjdCgpOw0KICAgIGRhdGFbIndpemFyZCJdID0gd2l6YXJkOw0KICAgIHZhciBzZXJ2ZXIgPSBuZXcgU2VydmVyKGNtZCk7DQogICAgc2VydmVyLnJlcXVlc3QoZGF0YSk7DQogICAgY29uc29sZS5sb2coZGF0YSk7DQp9DQovLyBXaXphcmQNCnZhciBjb25maWd1cmF0aW9uV2l6YXJkID0gbmV3IEFycmF5KCk7DQpjb25maWd1cmF0aW9uV2l6YXJkLnB1c2gobmV3IFdpemFyZEl0ZW0oInR1bmVyIiwgInt7LndpemFyZC50dW5lci50aXRsZX19IikpOw0KY29uZmlndXJhdGlvbldpemFyZC5wdXNoKG5ldyBXaXphcmRJdGVtKCJlcGdTb3VyY2UiLCAie3sud2l6YXJkLmVwZ1NvdXJjZS50aXRsZX19IikpOw0KY29uZmlndXJhdGlvbldpemFyZC5wdXNoKG5ldyBXaXphcmRJdGVtKCJtM3UiLCAie3sud2l6YXJkLm0zdS50aXRsZX19IikpOw0KY29uZmlndXJhdGlvbldpemFyZC5wdXNoKG5ldyBXaXphcmRJdGVtKCJ4bWx0diIsICJ7ey53aXphcmQueG1sdHYudGl0bGV9fSIpKTsNCg==" + webUI["html/img/logo_b_880x200.jpg"] = "/9j/4AAQSkZJRgABAQABLAEsAAD/4QDIRXhpZgAATU0AKgAAAAgABwESAAMAAAABAAEAAAEaAAUAAAABAAAAYgEbAAUAAAABAAAAagEoAAMAAAABAAIAAAExAAIAAAAPAAAAcgEyAAIAAAAUAAAAgodpAAQAAAABAAAAlgAAAAAAAAEsAAAAAQAAASwAAAABUGl4ZWxtYXRvciAzLjMAADIwMTk6MDg6MDIgMjA6MDg6MTQAAAOgAQADAAAAAQABAACgAgAEAAAAAQAAA3CgAwAEAAAAAQAAAMgAAAAA/+EJkGh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8APD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iWE1QIENvcmUgNS40LjAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcDpDcmVhdG9yVG9vbD0iUGl4ZWxtYXRvciAzLjMiIHhtcDpNb2RpZnlEYXRlPSIyMDE5LTA4LTAyVDIwOjA4OjE0Ii8+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPD94cGFja2V0IGVuZD0idyI/PgD/7QA4UGhvdG9zaG9wIDMuMAA4QklNBAQAAAAAAAA4QklNBCUAAAAAABDUHYzZjwCyBOmACZjs+EJ+/8AAEQgAyANwAwERAAIRAQMRAf/EAB8AAAEFAQEBAQEBAAAAAAAAAAABAgMEBQYHCAkKC//EALUQAAIBAwMCBAMFBQQEAAABfQECAwAEEQUSITFBBhNRYQcicRQygZGhCCNCscEVUtHwJDNicoIJChYXGBkaJSYnKCkqNDU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6g4SFhoeIiYqSk5SVlpeYmZqio6Slpqeoqaqys7S1tre4ubrCw8TFxsfIycrS09TV1tfY2drh4uPk5ebn6Onq8fLz9PX29/j5+v/EAB8BAAMBAQEBAQEBAQEAAAAAAAABAgMEBQYHCAkKC//EALURAAIBAgQEAwQHBQQEAAECdwABAgMRBAUhMQYSQVEHYXETIjKBCBRCkaGxwQkjM1LwFWJy0QoWJDThJfEXGBkaJicoKSo1Njc4OTpDREVGR0hJSlNUVVZXWFlaY2RlZmdoaWpzdHV2d3h5eoKDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uLj5OXm5+jp6vLz9PX29/j5+v/bAEMAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAf/bAEMBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAf/dAAQAbv/aAAwDAQACEQMRAD8A/iHoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKAP/9D+IegAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoA//0f4h6ACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgD//S/iHoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKAP/9P+IegAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoA//1P4h6ACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgDvPDXws+J3jPT31bwf8OfHnivSo7mSyfU/DXhDxBrunpeQpFLNaPe6Xp11bLcxRzwSSQNL5saTROyhZUNAHQf8M//AB4/6In8XP8Aw23jL/5TUAH/AAz/APHj/oifxc/8Nt4y/wDl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f/E3xn4o+IPjnxDLaafp8mveMPGet33iPxNrMlhpNpYaVZPqmtale3z2mmWNlp9s05hsrS2tkjhQA4ygAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgD//S/iHoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAczu+N7M2BgbmLYHoM9BnJxx1/FgBtABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAOLuwVWZiq/dUsSFz12joM4HQduc4FADaACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgD//0/4h6ACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgD//U/iHoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKAP/9X+IegAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoA//1v4h6ACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgD//X/iHoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKAP/9k=" } From 84f318445bbf6a55cf4377778475c4313cc451a7 Mon Sep 17 00:00:00 2001 From: SCP002 Date: Mon, 28 Mar 2022 14:06:29 +0300 Subject: [PATCH 045/189] Allow mapping table to be sorted by timeshift. Closes #5 --- html/js/base_ts.js | 2 +- html/js/menu_ts.js | 4 ++++ src/webUI.go | 44 ++++++++++++++++++++++---------------------- ts/base_ts.ts | 2 +- ts/menu_ts.ts | 5 +++++ 5 files changed, 33 insertions(+), 24 deletions(-) diff --git a/html/js/base_ts.js b/html/js/base_ts.js index 53e7e48..1e654ec 100644 --- a/html/js/base_ts.js +++ b/html/js/base_ts.js @@ -192,7 +192,7 @@ function sortTable(column) { sortObj[i] = rows[i]; } else { - switch (isNaN(xValue)) { + switch (isNaN(xValue) || typeof xValue == "string") { case false: xValue = parseFloat(xValue); sortObj[xValue] = rows[i]; diff --git a/html/js/menu_ts.js b/html/js/menu_ts.js index 05e8315..fd6ab15 100644 --- a/html/js/menu_ts.js +++ b/html/js/menu_ts.js @@ -625,6 +625,10 @@ class ShowContent extends Content { cell.onclick = true; cell.onclickFunktion = "javascript: sortTable(5);"; } + if (element == "{{.mapping.table.timeshift}}") { + cell.onclick = true; + cell.onclickFunktion = "javascript: sortTable(8);"; + } } header.appendChild(cell.createCell()); }); diff --git a/src/webUI.go b/src/webUI.go index 0a3dac0..7ed2f33 100644 --- a/src/webUI.go +++ b/src/webUI.go @@ -4,38 +4,38 @@ var webUI = make(map[string]interface{}) func loadHTMLMap() { - webUI["html/img/BC-QR.jpg"] = "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" - webUI["html/js/base_ts.js"] = "dmFyIFNFUlZFUiA9IG5ldyBPYmplY3QoKTsNCnZhciBCVUxLX0VESVQgPSBmYWxzZTsNCnZhciBDT0xVTU5fVE9fU09SVDsNCnZhciBTRUFSQ0hfTUFQUElORyA9IG5ldyBPYmplY3QoKTsNCnZhciBVTkRPID0gbmV3IE9iamVjdCgpOw0KdmFyIFNFUlZFUl9DT05ORUNUSU9OID0gZmFsc2U7DQp2YXIgV1NfQVZBSUxBQkxFID0gZmFsc2U7DQovLyBNZW7DvA0KdmFyIG1lbnVJdGVtcyA9IG5ldyBBcnJheSgpOw0KbWVudUl0ZW1zLnB1c2gobmV3IE1haW5NZW51SXRlbSgicGxheWxpc3QiLCAie3subWFpbk1lbnUuaXRlbS5wbGF5bGlzdH19IiwgIm0zdS5wbmciLCAie3subWFpbk1lbnUuaGVhZGxpbmUucGxheWxpc3R9fSIpKTsNCi8vbWVudUl0ZW1zLnB1c2gobmV3IE1haW5NZW51SXRlbSgicG1zSUQiLCAie3subWFpbk1lbnUuaXRlbS5wbXNJRH19IiwgIm51bWJlci5wbmciLCAie3subWFpbk1lbnUuaGVhZGxpbmUucG1zSUR9fSIpKQ0KbWVudUl0ZW1zLnB1c2gobmV3IE1haW5NZW51SXRlbSgiZmlsdGVyIiwgInt7Lm1haW5NZW51Lml0ZW0uZmlsdGVyfX0iLCAiZmlsdGVyLnBuZyIsICJ7ey5tYWluTWVudS5oZWFkbGluZS5maWx0ZXJ9fSIpKTsNCm1lbnVJdGVtcy5wdXNoKG5ldyBNYWluTWVudUl0ZW0oInhtbHR2IiwgInt7Lm1haW5NZW51Lml0ZW0ueG1sdHZ9fSIsICJ4bWx0di5wbmciLCAie3subWFpbk1lbnUuaGVhZGxpbmUueG1sdHZ9fSIpKTsNCm1lbnVJdGVtcy5wdXNoKG5ldyBNYWluTWVudUl0ZW0oIm1hcHBpbmciLCAie3subWFpbk1lbnUuaXRlbS5tYXBwaW5nfX0iLCAibWFwcGluZy5wbmciLCAie3subWFpbk1lbnUuaGVhZGxpbmUubWFwcGluZ319IikpOw0KbWVudUl0ZW1zLnB1c2gobmV3IE1haW5NZW51SXRlbSgidXNlcnMiLCAie3subWFpbk1lbnUuaXRlbS51c2Vyc319IiwgInVzZXJzLnBuZyIsICJ7ey5tYWluTWVudS5oZWFkbGluZS51c2Vyc319IikpOw0KbWVudUl0ZW1zLnB1c2gobmV3IE1haW5NZW51SXRlbSgic2V0dGluZ3MiLCAie3subWFpbk1lbnUuaXRlbS5zZXR0aW5nc319IiwgInNldHRpbmdzLnBuZyIsICJ7ey5tYWluTWVudS5oZWFkbGluZS5zZXR0aW5nc319IikpOw0KbWVudUl0ZW1zLnB1c2gobmV3IE1haW5NZW51SXRlbSgibG9nIiwgInt7Lm1haW5NZW51Lml0ZW0ubG9nfX0iLCAibG9nLnBuZyIsICJ7ey5tYWluTWVudS5oZWFkbGluZS5sb2d9fSIpKTsNCm1lbnVJdGVtcy5wdXNoKG5ldyBNYWluTWVudUl0ZW0oImxvZ291dCIsICJ7ey5tYWluTWVudS5pdGVtLmxvZ291dH19IiwgImxvZ291dC5wbmciLCAie3subWFpbk1lbnUuaGVhZGxpbmUubG9nb3V0fX0iKSk7DQovLyBLYXRlZ29yaWVuIGbDvHIgZGllIEVpbnN0ZWxsdW5nZW4NCnZhciBzZXR0aW5nc0NhdGVnb3J5ID0gbmV3IEFycmF5KCk7DQpzZXR0aW5nc0NhdGVnb3J5LnB1c2gobmV3IFNldHRpbmdzQ2F0ZWdvcnlJdGVtKCJ7ey5zZXR0aW5ncy5jYXRlZ29yeS5nZW5lcmFsfX0iLCAieHRldmVBdXRvVXBkYXRlLHR1bmVyLGVwZ1NvdXJjZSxhcGkiKSk7DQpzZXR0aW5nc0NhdGVnb3J5LnB1c2gobmV3IFNldHRpbmdzQ2F0ZWdvcnlJdGVtKCJ7ey5zZXR0aW5ncy5jYXRlZ29yeS5maWxlc319IiwgInVwZGF0ZSxmaWxlcy51cGRhdGUsdGVtcC5wYXRoLGNhY2hlLmltYWdlcyx4ZXBnLnJlcGxhY2UubWlzc2luZy5pbWFnZXMiKSk7DQpzZXR0aW5nc0NhdGVnb3J5LnB1c2gobmV3IFNldHRpbmdzQ2F0ZWdvcnlJdGVtKCJ7ey5zZXR0aW5ncy5jYXRlZ29yeS5zdHJlYW1pbmd9fSIsICJidWZmZXIsdWRweHksYnVmZmVyLnNpemUua2IsYnVmZmVyLnRpbWVvdXQsdXNlci5hZ2VudCxmZm1wZWcucGF0aCxmZm1wZWcub3B0aW9ucyx2bGMucGF0aCx2bGMub3B0aW9ucyIpKTsNCnNldHRpbmdzQ2F0ZWdvcnkucHVzaChuZXcgU2V0dGluZ3NDYXRlZ29yeUl0ZW0oInt7LnNldHRpbmdzLmNhdGVnb3J5LmJhY2t1cH19IiwgImJhY2t1cC5wYXRoLGJhY2t1cC5rZWVwIikpOw0Kc2V0dGluZ3NDYXRlZ29yeS5wdXNoKG5ldyBTZXR0aW5nc0NhdGVnb3J5SXRlbSgie3suc2V0dGluZ3MuY2F0ZWdvcnkuYXV0aGVudGljYXRpb259fSIsICJhdXRoZW50aWNhdGlvbi53ZWIsYXV0aGVudGljYXRpb24ucG1zLGF1dGhlbnRpY2F0aW9uLm0zdSxhdXRoZW50aWNhdGlvbi54bWwsYXV0aGVudGljYXRpb24uYXBpIikpOw0KZnVuY3Rpb24gc2hvd1BvcFVwRWxlbWVudChlbG0pIHsNCiAgICB2YXIgYWxsRWxlbWVudHMgPSBuZXcgQXJyYXkoInBvcHVwLWN1c3RvbSIpOw0KICAgIGZvciAodmFyIGkgPSAwOyBpIDwgYWxsRWxlbWVudHMubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgc2hvd0VsZW1lbnQoYWxsRWxlbWVudHNbaV0sIGZhbHNlKTsNCiAgICB9DQogICAgc2hvd0VsZW1lbnQoZWxtLCB0cnVlKTsNCiAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsNCiAgICAgICAgc2hvd0VsZW1lbnQoInBvcHVwIiwgdHJ1ZSk7DQogICAgfSwgMTApOw0KICAgIHJldHVybjsNCn0NCmZ1bmN0aW9uIHNob3dFbGVtZW50KGVsbUlELCB0eXBlKSB7DQogICAgdmFyIGNzc0NsYXNzOw0KICAgIHN3aXRjaCAodHlwZSkgew0KICAgICAgICBjYXNlIHRydWU6DQogICAgICAgICAgICBjc3NDbGFzcyA9ICJibG9jayI7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSBmYWxzZToNCiAgICAgICAgICAgIGNzc0NsYXNzID0gIm5vbmUiOw0KICAgICAgICAgICAgYnJlYWs7DQogICAgfQ0KICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGVsbUlEKS5jbGFzc05hbWUgPSBjc3NDbGFzczsNCn0NCmZ1bmN0aW9uIGNoYW5nZUJ1dHRvbkFjdGlvbihlbGVtZW50LCBidXR0b25JRCwgYXR0cmlidXRlKSB7DQogICAgdmFyIHZhbHVlID0gZWxlbWVudC5vcHRpb25zW2VsZW1lbnQuc2VsZWN0ZWRJbmRleF0udmFsdWU7DQogICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoYnV0dG9uSUQpLnNldEF0dHJpYnV0ZShhdHRyaWJ1dGUsIHZhbHVlKTsNCn0NCmZ1bmN0aW9uIGdldExvY2FsRGF0YShkYXRhVHlwZSwgaWQpIHsNCiAgICBsZXQgZGF0YSA9IHt9Ow0KICAgIHN3aXRjaCAoZGF0YVR5cGUpIHsNCiAgICAgICAgY2FzZSAibTN1IjoNCiAgICAgICAgICAgIGRhdGEgPSBTRVJWRVJbInNldHRpbmdzIl1bImZpbGVzIl1bZGF0YVR5cGVdW2lkXTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJoZGhyIjoNCiAgICAgICAgICAgIGRhdGEgPSBTRVJWRVJbInNldHRpbmdzIl1bImZpbGVzIl1bZGF0YVR5cGVdW2lkXTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJmaWx0ZXIiOg0KICAgICAgICBjYXNlICJjdXN0b20tZmlsdGVyIjoNCiAgICAgICAgY2FzZSAiZ3JvdXAtdGl0bGUiOg0KICAgICAgICAgICAgaWYgKGlkID09IC0xKSB7DQogICAgICAgICAgICAgICAgZGF0YVsiYWN0aXZlIl0gPSB0cnVlOw0KICAgICAgICAgICAgICAgIGRhdGFbImNhc2VTZW5zaXRpdmUiXSA9IGZhbHNlOw0KICAgICAgICAgICAgICAgIGRhdGFbImRlc2NyaXB0aW9uIl0gPSAiIjsNCiAgICAgICAgICAgICAgICBkYXRhWyJleGNsdWRlIl0gPSAiIjsNCiAgICAgICAgICAgICAgICBkYXRhWyJmaWx0ZXIiXSA9ICIiOw0KICAgICAgICAgICAgICAgIGRhdGFbImluY2x1ZGUiXSA9ICIiOw0KICAgICAgICAgICAgICAgIGRhdGFbIm5hbWUiXSA9ICIiOw0KICAgICAgICAgICAgICAgIGRhdGFbInR5cGUiXSA9ICJncm91cC10aXRsZSI7DQogICAgICAgICAgICAgICAgZGF0YVsicHJlc2VydmVNYXBwaW5nIl0gPSB0cnVlOw0KICAgICAgICAgICAgICAgIGRhdGFbInN0YXJ0aW5nQ2hhbm5lbCJdID0gU0VSVkVSWyJzZXR0aW5ncyJdWyJtYXBwaW5nLmZpcnN0LmNoYW5uZWwiXTsNCiAgICAgICAgICAgICAgICBkYXRhWyJkZWZhdWx0TWlzc2luZ0VQRyJdID0gIi0iOw0KICAgICAgICAgICAgICAgIFNFUlZFUlsic2V0dGluZ3MiXVsiZmlsdGVyIl1baWRdID0gZGF0YTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGRhdGEgPSBTRVJWRVJbInNldHRpbmdzIl1bImZpbHRlciJdW2lkXTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJ4bWx0diI6DQogICAgICAgICAgICBkYXRhID0gU0VSVkVSWyJzZXR0aW5ncyJdWyJmaWxlcyJdW2RhdGFUeXBlXVtpZF07DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSAidXNlcnMiOg0KICAgICAgICAgICAgZGF0YSA9IFNFUlZFUlsidXNlcnMiXVtpZF1bImRhdGEiXTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJtYXBwaW5nIjoNCiAgICAgICAgICAgIGRhdGEgPSBTRVJWRVJbInhlcGciXVsiZXBnTWFwcGluZyJdW2lkXTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJtM3VHcm91cHMiOg0KICAgICAgICAgICAgZGF0YSA9IFNFUlZFUlsiZGF0YSJdWyJwbGF5bGlzdCJdWyJtM3UiXVsiZ3JvdXBzIl07DQogICAgICAgICAgICBicmVhazsNCiAgICB9DQogICAgcmV0dXJuIGRhdGE7DQp9DQpmdW5jdGlvbiBnZXRPYmpLZXlzKG9iaikgew0KICAgIHZhciBrZXlzID0gbmV3IEFycmF5KCk7DQogICAgZm9yICh2YXIgaSBpbiBvYmopIHsNCiAgICAgICAgaWYgKG9iai5oYXNPd25Qcm9wZXJ0eShpKSkgew0KICAgICAgICAgICAga2V5cy5wdXNoKGkpOw0KICAgICAgICB9DQogICAgfQ0KICAgIHJldHVybiBrZXlzOw0KfQ0KZnVuY3Rpb24gZ2V0QWxsU2VsZWN0ZWRDaGFubmVscygpIHsNCiAgICB2YXIgY2hhbm5lbHMgPSBuZXcgQXJyYXkoKTsNCiAgICBpZiAoQlVMS19FRElUID09IGZhbHNlKSB7DQogICAgICAgIHJldHVybiBjaGFubmVsczsNCiAgICB9DQogICAgdmFyIHRycyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb250ZW50X3RhYmxlIikuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlRSIik7DQogICAgZm9yICh2YXIgaSA9IDE7IGkgPCB0cnMubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgaWYgKHRyc1tpXS5zdHlsZS5kaXNwbGF5ICE9ICJub25lIikgew0KICAgICAgICAgICAgaWYgKHRyc1tpXS5maXJzdENoaWxkLmZpcnN0Q2hpbGQuY2hlY2tlZCA9PSB0cnVlKSB7DQogICAgICAgICAgICAgICAgY2hhbm5lbHMucHVzaCh0cnNbaV0uaWQpOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQogICAgfQ0KICAgIHJldHVybiBjaGFubmVsczsNCn0NCmZ1bmN0aW9uIHNlbGVjdEFsbENoYW5uZWxzKCkgew0KICAgIHZhciBidWxrID0gZmFsc2U7DQogICAgdmFyIHRycyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb250ZW50X3RhYmxlIikuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlRSIik7DQogICAgaWYgKHRyc1swXS5maXJzdENoaWxkLmZpcnN0Q2hpbGQuY2hlY2tlZCA9PSB0cnVlKSB7DQogICAgICAgIGJ1bGsgPSB0cnVlOw0KICAgIH0NCiAgICBmb3IgKHZhciBpID0gMTsgaSA8IHRycy5sZW5ndGg7IGkrKykgew0KICAgICAgICBpZiAodHJzW2ldLnN0eWxlLmRpc3BsYXkgIT0gIm5vbmUiKSB7DQogICAgICAgICAgICBzd2l0Y2ggKGJ1bGspIHsNCiAgICAgICAgICAgICAgICBjYXNlIHRydWU6DQogICAgICAgICAgICAgICAgICAgIHRyc1tpXS5maXJzdENoaWxkLmZpcnN0Q2hpbGQuY2hlY2tlZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgZmFsc2U6DQogICAgICAgICAgICAgICAgICAgIHRyc1tpXS5maXJzdENoaWxkLmZpcnN0Q2hpbGQuY2hlY2tlZCA9IGZhbHNlOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KICAgIH0NCiAgICByZXR1cm47DQp9DQpmdW5jdGlvbiBidWxrRWRpdCgpIHsNCiAgICBCVUxLX0VESVQgPSAhQlVMS19FRElUOw0KICAgIHZhciBjbGFzc05hbWU7DQogICAgdmFyIHJvd3MgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCJidWxrIik7DQogICAgc3dpdGNoIChCVUxLX0VESVQpIHsNCiAgICAgICAgY2FzZSB0cnVlOg0KICAgICAgICAgICAgY2xhc3NOYW1lID0gImJ1bGsgc2hvd0J1bGsiOw0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGNhc2UgZmFsc2U6DQogICAgICAgICAgICBjbGFzc05hbWUgPSAiYnVsayBoaWRlQnVsayI7DQogICAgICAgICAgICBicmVhazsNCiAgICB9DQogICAgZm9yICh2YXIgaSA9IDA7IGkgPCByb3dzLmxlbmd0aDsgaSsrKSB7DQogICAgICAgIHJvd3NbaV0uY2xhc3NOYW1lID0gY2xhc3NOYW1lOw0KICAgICAgICByb3dzW2ldLmNoZWNrZWQgPSBmYWxzZTsNCiAgICB9DQogICAgcmV0dXJuOw0KfQ0KZnVuY3Rpb24gc29ydFRhYmxlKGNvbHVtbikgew0KICAgIC8vY29uc29sZS5sb2coY29sdW1tKTsNCiAgICBpZiAoY29sdW1uID09IENPTFVNTl9UT19TT1JUKSB7DQogICAgICAgIHJldHVybjsNCiAgICB9DQogICAgdmFyIHRhYmxlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnRlbnRfdGFibGUiKTsNCiAgICB2YXIgdGFibGVIZWFkID0gdGFibGUuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlRSIilbMF07DQogICAgdmFyIHRhYmxlSXRlbXMgPSB0YWJsZUhlYWQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlREIik7DQogICAgdmFyIHNvcnRPYmogPSBuZXcgT2JqZWN0KCk7DQogICAgdmFyIHgsIHhWYWx1ZTsNCiAgICB2YXIgdGFibGVIZWFkZXI7DQogICAgdmFyIHNvcnRCeVN0cmluZyA9IGZhbHNlOw0KICAgIGlmIChjb2x1bW4gPiAwICYmIENPTFVNTl9UT19TT1JUID4gMCkgew0KICAgICAgICB0YWJsZUl0ZW1zW0NPTFVNTl9UT19TT1JUXS5jbGFzc05hbWUgPSAicG9pbnRlciI7DQogICAgICAgIHRhYmxlSXRlbXNbY29sdW1uXS5jbGFzc05hbWUgPSAic29ydFRoaXMiOw0KICAgIH0NCiAgICBDT0xVTU5fVE9fU09SVCA9IGNvbHVtbjsNCiAgICB2YXIgcm93cyA9IHRhYmxlLnJvd3M7DQogICAgaWYgKHJvd3NbMV0gIT0gdW5kZWZpbmVkKSB7DQogICAgICAgIHRhYmxlSGVhZGVyID0gcm93c1swXTsNCiAgICAgICAgeCA9IHJvd3NbMV0uZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlREIilbY29sdW1uXTsNCiAgICAgICAgZm9yIChpID0gMTsgaSA8IHJvd3MubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgICAgIHggPSByb3dzW2ldLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJURCIpW2NvbHVtbl07DQogICAgICAgICAgICBzd2l0Y2ggKHguY2hpbGROb2Rlc1swXS50YWdOYW1lLnRvTG93ZXJDYXNlKCkpIHsNCiAgICAgICAgICAgICAgICBjYXNlICJpbnB1dCI6DQogICAgICAgICAgICAgICAgICAgIHhWYWx1ZSA9IHguZ2V0RWxlbWVudHNCeVRhZ05hbWUoIklOUFVUIilbMF0udmFsdWUudG9Mb3dlckNhc2UoKTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAicCI6DQogICAgICAgICAgICAgICAgICAgIHhWYWx1ZSA9IHguZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlAiKVswXS5pbm5lclRleHQudG9Mb3dlckNhc2UoKTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgZGVmYXVsdDogY29uc29sZS5sb2coeC5jaGlsZE5vZGVzWzBdLnRhZ05hbWUpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgaWYgKHhWYWx1ZSA9PSAiIiB8fCB4VmFsdWUgPT0gTmFOKSB7DQogICAgICAgICAgICAgICAgeFZhbHVlID0gaTsNCiAgICAgICAgICAgICAgICBzb3J0T2JqW2ldID0gcm93c1tpXTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgICAgIHN3aXRjaCAoaXNOYU4oeFZhbHVlKSkgew0KICAgICAgICAgICAgICAgICAgICBjYXNlIGZhbHNlOg0KICAgICAgICAgICAgICAgICAgICAgICAgeFZhbHVlID0gcGFyc2VGbG9hdCh4VmFsdWUpOw0KICAgICAgICAgICAgICAgICAgICAgICAgc29ydE9ialt4VmFsdWVdID0gcm93c1tpXTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgICAgICBjYXNlIHRydWU6DQogICAgICAgICAgICAgICAgICAgICAgICBzb3J0QnlTdHJpbmcgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgc29ydE9ialt4VmFsdWUudG9Mb3dlckNhc2UoKSArIGldID0gcm93c1tpXTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KICAgICAgICB3aGlsZSAodGFibGUuZmlyc3RDaGlsZCkgew0KICAgICAgICAgICAgdGFibGUucmVtb3ZlQ2hpbGQodGFibGUuZmlyc3RDaGlsZCk7DQogICAgICAgIH0NCiAgICAgICAgdmFyIHNvcnRWYWx1ZXMgPSBnZXRPYmpLZXlzKHNvcnRPYmopOw0KICAgICAgICBpZiAoc29ydEJ5U3RyaW5nID09IHRydWUpIHsNCiAgICAgICAgICAgIHNvcnRWYWx1ZXMuc29ydCgpOw0KICAgICAgICAgICAgY29uc29sZS5sb2coc29ydFZhbHVlcyk7DQogICAgICAgIH0NCiAgICAgICAgZWxzZSB7DQogICAgICAgICAgICBmdW5jdGlvbiBzb3J0RmxvYXQoYSwgYikgew0KICAgICAgICAgICAgICAgIHJldHVybiBhIC0gYjsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIHNvcnRWYWx1ZXMuc29ydChzb3J0RmxvYXQpOw0KICAgICAgICB9DQogICAgICAgIHRhYmxlLmFwcGVuZENoaWxkKHRhYmxlSGVhZGVyKTsNCiAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBzb3J0VmFsdWVzLmxlbmd0aDsgaSsrKSB7DQogICAgICAgICAgICB0YWJsZS5hcHBlbmRDaGlsZChzb3J0T2JqW3NvcnRWYWx1ZXNbaV1dKTsNCiAgICAgICAgfQ0KICAgIH0NCiAgICByZXR1cm47DQp9DQpmdW5jdGlvbiBjcmVhdGVTZWFyY2hPYmooKSB7DQogICAgU0VBUkNIX01BUFBJTkcgPSBuZXcgT2JqZWN0KCk7DQogICAgdmFyIGRhdGEgPSBTRVJWRVJbInhlcGciXVsiZXBnTWFwcGluZyJdOw0KICAgIHZhciBjaGFubmVscyA9IGdldE9iaktleXMoZGF0YSk7DQogICAgdmFyIGNoYW5uZWxLZXlzID0gWyJ4LWFjdGl2ZSIsICJ4LWNoYW5uZWxJRCIsICJ4LW5hbWUiLCAiX2ZpbGUubTN1Lm5hbWUiLCAieC1ncm91cC10aXRsZSIsICJ4LXhtbHR2LWZpbGUiXTsNCiAgICBjaGFubmVscy5mb3JFYWNoKGlkID0+IHsNCiAgICAgICAgY2hhbm5lbEtleXMuZm9yRWFjaChrZXkgPT4gew0KICAgICAgICAgICAgaWYgKGtleSA9PSAieC1hY3RpdmUiKSB7DQogICAgICAgICAgICAgICAgc3dpdGNoIChkYXRhW2lkXVtrZXldKSB7DQogICAgICAgICAgICAgICAgICAgIGNhc2UgdHJ1ZToNCiAgICAgICAgICAgICAgICAgICAgICAgIFNFQVJDSF9NQVBQSU5HW2lkXSA9ICJvbmxpbmUgIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgICAgICBjYXNlIGZhbHNlOg0KICAgICAgICAgICAgICAgICAgICAgICAgU0VBUkNIX01BUFBJTkdbaWRdID0gIm9mZmxpbmUgIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgICAgIGlmIChrZXkgPT0gIngteG1sdHYtZmlsZSIpIHsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHhtbHR2RmlsZSA9IGdldFZhbHVlRnJvbVByb3ZpZGVyRmlsZShkYXRhW2lkXVtrZXldLCAieG1sdHYiLCAibmFtZSIpOw0KICAgICAgICAgICAgICAgICAgICBpZiAoeG1sdHZGaWxlICE9IHVuZGVmaW5lZCkgew0KICAgICAgICAgICAgICAgICAgICAgICAgU0VBUkNIX01BUFBJTkdbaWRdID0gU0VBUkNIX01BUFBJTkdbaWRdICsgeG1sdHZGaWxlICsgIiAiOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgICAgICAgICBTRUFSQ0hfTUFQUElOR1tpZF0gPSBTRUFSQ0hfTUFQUElOR1tpZF0gKyBkYXRhW2lkXVtrZXldICsgIiAiOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0NCiAgICAgICAgfSk7DQogICAgfSk7DQogICAgcmV0dXJuOw0KfQ0KZnVuY3Rpb24gc2VhcmNoSW5NYXBwaW5nKCkgew0KICAgIHZhciBzZWFyY2hWYWx1ZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzZWFyY2hNYXBwaW5nIikudmFsdWU7DQogICAgdmFyIHRycyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb250ZW50X3RhYmxlIikuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlRSIik7DQogICAgZm9yICh2YXIgaSA9IDE7IGkgPCB0cnMubGVuZ3RoOyArK2kpIHsNCiAgICAgICAgdmFyIGlkID0gdHJzW2ldLmdldEF0dHJpYnV0ZSgiaWQiKTsNCiAgICAgICAgdmFyIGVsZW1lbnQgPSBTRUFSQ0hfTUFQUElOR1tpZF07DQogICAgICAgIHN3aXRjaCAoZWxlbWVudC50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKHNlYXJjaFZhbHVlLnRvTG93ZXJDYXNlKCkpKSB7DQogICAgICAgICAgICBjYXNlIHRydWU6DQogICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpLnN0eWxlLmRpc3BsYXkgPSAiIjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgZmFsc2U6DQogICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpLnN0eWxlLmRpc3BsYXkgPSAibm9uZSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIH0NCiAgICB9DQogICAgcmV0dXJuOw0KfQ0KZnVuY3Rpb24gY2FsY3VsYXRlV3JhcHBlckhlaWdodCgpIHsNCiAgICBpZiAoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImJveC13cmFwcGVyIikpIHsNCiAgICAgICAgdmFyIGVsbSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJib3gtd3JhcHBlciIpOw0KICAgICAgICB2YXIgZGl2cyA9IG5ldyBBcnJheSgibXlTdHJlYW1zQm94IiwgImNsaWVudEluZm8iLCAiY29udGVudCIpOw0KICAgICAgICB2YXIgZWxlbWVudHNIZWlnaHQgPSAwIC0gZWxtLm9mZnNldEhlaWdodDsNCiAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBkaXZzLmxlbmd0aDsgaSsrKSB7DQogICAgICAgICAgICBlbGVtZW50c0hlaWdodCA9IGVsZW1lbnRzSGVpZ2h0ICsgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoZGl2c1tpXSkub2Zmc2V0SGVpZ2h0Ow0KICAgICAgICB9DQogICAgICAgIGVsbS5zdHlsZS5oZWlnaHQgPSB3aW5kb3cuaW5uZXJIZWlnaHQgLSBlbGVtZW50c0hlaWdodCArICJweCI7DQogICAgfQ0KICAgIHJldHVybjsNCn0NCmZ1bmN0aW9uIGNoYW5nZUNoYW5uZWxOdW1iZXIoZWxlbWVudCkgew0KICAgIHZhciBkYklEID0gZWxlbWVudC5wYXJlbnROb2RlLnBhcmVudE5vZGUuaWQ7DQogICAgdmFyIG5ld051bWJlciA9IHBhcnNlRmxvYXQoZWxlbWVudC52YWx1ZSk7DQogICAgdmFyIGNoYW5uZWxOdW1iZXJzID0gW107DQogICAgdmFyIGRhdGEgPSBTRVJWRVJbInhlcGciXVsiZXBnTWFwcGluZyJdOw0KICAgIHZhciBjaGFubmVscyA9IGdldE9iaktleXMoZGF0YSk7DQogICAgaWYgKGlzTmFOKG5ld051bWJlcikpIHsNCiAgICAgICAgYWxlcnQoInt7LmFsZXJ0LmludmFsaWRDaGFubmVsTnVtYmVyfX0iKTsNCiAgICAgICAgcmV0dXJuOw0KICAgIH0NCiAgICBjaGFubmVscy5mb3JFYWNoKGlkID0+IHsNCiAgICAgICAgdmFyIGNoYW5uZWxOdW1iZXIgPSBwYXJzZUZsb2F0KGRhdGFbaWRdWyJ4LWNoYW5uZWxJRCJdKTsNCiAgICAgICAgY2hhbm5lbE51bWJlcnMucHVzaChjaGFubmVsTnVtYmVyKTsNCiAgICB9KTsNCiAgICBmb3IgKHZhciBpID0gMDsgaSA8IGNoYW5uZWxOdW1iZXJzLmxlbmd0aDsgaSsrKSB7DQogICAgICAgIGlmIChjaGFubmVsTnVtYmVycy5pbmRleE9mKG5ld051bWJlcikgPT0gLTEpIHsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICB9DQogICAgICAgIGlmIChNYXRoLmZsb29yKG5ld051bWJlcikgPT0gbmV3TnVtYmVyKSB7DQogICAgICAgICAgICBuZXdOdW1iZXIgPSBuZXdOdW1iZXIgKyAxOw0KICAgICAgICB9DQogICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgbmV3TnVtYmVyID0gbmV3TnVtYmVyICsgMC4xOw0KICAgICAgICAgICAgbmV3TnVtYmVyLnRvRml4ZWQoMSk7DQogICAgICAgICAgICBuZXdOdW1iZXIgPSBNYXRoLnJvdW5kKG5ld051bWJlciAqIDEwKSAvIDEwOw0KICAgICAgICB9DQogICAgfQ0KICAgIGRhdGFbZGJJRF1bIngtY2hhbm5lbElEIl0gPSBuZXdOdW1iZXIudG9TdHJpbmcoKTsNCiAgICBlbGVtZW50LnZhbHVlID0gbmV3TnVtYmVyOw0KICAgIGNvbnNvbGUubG9nKGRhdGFbZGJJRF1bIngtY2hhbm5lbElEIl0pOw0KICAgIGlmIChDT0xVTU5fVE9fU09SVCA9PSAxKSB7DQogICAgICAgIENPTFVNTl9UT19TT1JUID0gLTE7DQogICAgICAgIHNvcnRUYWJsZSgxKTsNCiAgICB9DQogICAgcmV0dXJuOw0KfQ0KZnVuY3Rpb24gYmFja3VwKCkgew0KICAgIHZhciBkYXRhID0gbmV3IE9iamVjdCgpOw0KICAgIGNvbnNvbGUubG9nKCJCYWNrdXAgZGF0YSIpOw0KICAgIHZhciBjbWQgPSAieHRldmVCYWNrdXAiOw0KICAgIGNvbnNvbGUubG9nKCJTRU5EIFRPIFNFUlZFUiIpOw0KICAgIGNvbnNvbGUubG9nKGRhdGEpOw0KICAgIHZhciBzZXJ2ZXIgPSBuZXcgU2VydmVyKGNtZCk7DQogICAgc2VydmVyLnJlcXVlc3QoZGF0YSk7DQogICAgcmV0dXJuOw0KfQ0KZnVuY3Rpb24gdG9nZ2xlQ2hhbm5lbFN0YXR1cyhpZCkgew0KICAgIHZhciBlbGVtZW50Ow0KICAgIHZhciBzdGF0dXM7DQogICAgaWYgKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJhY3RpdmUiKSkgew0KICAgICAgICB2YXIgY2hlY2tib3ggPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYWN0aXZlIik7DQogICAgICAgIHN0YXR1cyA9IChjaGVja2JveCkuY2hlY2tlZDsNCiAgICB9DQogICAgdmFyIGlkcyA9IGdldEFsbFNlbGVjdGVkQ2hhbm5lbHMoKTsNCiAgICBpZiAoaWRzLmxlbmd0aCA9PSAwKSB7DQogICAgICAgIGlkcy5wdXNoKGlkKTsNCiAgICB9DQogICAgaWRzLmZvckVhY2goaWQgPT4gew0KICAgICAgICB2YXIgY2hhbm5lbCA9IFNFUlZFUlsieGVwZyJdWyJlcGdNYXBwaW5nIl1baWRdOw0KICAgICAgICBjaGFubmVsWyJ4LWFjdGl2ZSJdID0gc3RhdHVzOw0KICAgICAgICBzd2l0Y2ggKGNoYW5uZWxbIngtYWN0aXZlIl0pIHsNCiAgICAgICAgICAgIGNhc2UgdHJ1ZToNCiAgICAgICAgICAgICAgICBpZiAoY2hhbm5lbFsieC14bWx0di1maWxlIl0gPT0gIi0iIHx8IGNoYW5uZWxbIngtbWFwcGluZyJdID09ICItIikgew0KICAgICAgICAgICAgICAgICAgICBpZiAoQlVMS19FRElUID09IGZhbHNlKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBhbGVydChjaGFubmVsWyJ4LW5hbWUiXSArICI6IE1pc3NpbmcgWE1MVFYgZmlsZSAvIGNoYW5uZWwiKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNoZWNrYm94LmNoZWNrZWQgPSBmYWxzZTsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBjaGFubmVsWyJ4LWFjdGl2ZSJdID0gZmFsc2U7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSBmYWxzZToNCiAgICAgICAgICAgICAgICAvLyBjb2RlLi4uDQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIH0NCiAgICAgICAgaWYgKGNoYW5uZWxbIngtYWN0aXZlIl0gPT0gZmFsc2UpIHsNCiAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5jbGFzc05hbWUgPSAibm90QWN0aXZlRVBHIjsNCiAgICAgICAgfQ0KICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5jbGFzc05hbWUgPSAiYWN0aXZlRVBHIjsNCiAgICAgICAgfQ0KICAgIH0pOw0KfQ0KZnVuY3Rpb24gcmVzdG9yZSgpIHsNCiAgICBpZiAoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3VwbG9hZCcpKSB7DQogICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd1cGxvYWQnKS5yZW1vdmUoKTsNCiAgICB9DQogICAgdmFyIHJlc3RvcmUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJJTlBVVCIpOw0KICAgIHJlc3RvcmUuc2V0QXR0cmlidXRlKCJ0eXBlIiwgImZpbGUiKTsNCiAgICByZXN0b3JlLnNldEF0dHJpYnV0ZSgiY2xhc3MiLCAibm90VmlzaWJsZSIpOw0KICAgIHJlc3RvcmUuc2V0QXR0cmlidXRlKCJuYW1lIiwgIiIpOw0KICAgIHJlc3RvcmUuaWQgPSAidXBsb2FkIjsNCiAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHJlc3RvcmUpOw0KICAgIHJlc3RvcmUuY2xpY2soKTsNCiAgICByZXN0b3JlLm9uY2hhbmdlID0gZnVuY3Rpb24gKCkgew0KICAgICAgICB2YXIgZmlsZW5hbWUgPSByZXN0b3JlLmZpbGVzWzBdLm5hbWU7DQogICAgICAgIHZhciBjaGVjayA9IGNvbmZpcm0oIkZpbGU6ICIgKyBmaWxlbmFtZSArICJcbnt7LmNvbmZpcm0ucmVzdG9yZX19Iik7DQogICAgICAgIGlmIChjaGVjayA9PSB0cnVlKSB7DQogICAgICAgICAgICB2YXIgcmVhZGVyID0gbmV3IEZpbGVSZWFkZXIoKTsNCiAgICAgICAgICAgIHZhciBmaWxlID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignaW5wdXRbdHlwZT1maWxlXScpLmZpbGVzWzBdOw0KICAgICAgICAgICAgaWYgKGZpbGUpIHsNCiAgICAgICAgICAgICAgICByZWFkZXIucmVhZEFzRGF0YVVSTChmaWxlKTsNCiAgICAgICAgICAgICAgICByZWFkZXIub25sb2FkID0gZnVuY3Rpb24gKCkgew0KICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhyZWFkZXIucmVzdWx0KTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGRhdGEgPSBuZXcgT2JqZWN0KCk7DQogICAgICAgICAgICAgICAgICAgIHZhciBjbWQgPSAieHRldmVSZXN0b3JlIjsNCiAgICAgICAgICAgICAgICAgICAgZGF0YVsiYmFzZTY0Il0gPSByZWFkZXIucmVzdWx0Ow0KICAgICAgICAgICAgICAgICAgICB2YXIgc2VydmVyID0gbmV3IFNlcnZlcihjbWQpOw0KICAgICAgICAgICAgICAgICAgICBzZXJ2ZXIucmVxdWVzdChkYXRhKTsNCiAgICAgICAgICAgICAgICB9Ow0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgZWxzZSB7DQogICAgICAgICAgICAgICAgYWxlcnQoIkZpbGUgY291bGQgbm90IGJlIGxvYWRlZCIpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgcmVzdG9yZS5yZW1vdmUoKTsNCiAgICAgICAgICAgIHJldHVybjsNCiAgICAgICAgfQ0KICAgIH07DQogICAgcmV0dXJuOw0KfQ0KZnVuY3Rpb24gdXBsb2FkTG9nbygpIHsNCiAgICBpZiAoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3VwbG9hZCcpKSB7DQogICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd1cGxvYWQnKS5yZW1vdmUoKTsNCiAgICB9DQogICAgdmFyIHVwbG9hZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIklOUFVUIik7DQogICAgdXBsb2FkLnNldEF0dHJpYnV0ZSgidHlwZSIsICJmaWxlIik7DQogICAgdXBsb2FkLnNldEF0dHJpYnV0ZSgiY2xhc3MiLCAibm90VmlzaWJsZSIpOw0KICAgIHVwbG9hZC5zZXRBdHRyaWJ1dGUoIm5hbWUiLCAiIik7DQogICAgdXBsb2FkLmlkID0gInVwbG9hZCI7DQogICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZCh1cGxvYWQpOw0KICAgIHVwbG9hZC5jbGljaygpOw0KICAgIHVwbG9hZC5vbmJsdXIgPSBmdW5jdGlvbiAoKSB7DQogICAgICAgIGFsZXJ0KCk7DQogICAgfTsNCiAgICB1cGxvYWQub25jaGFuZ2UgPSBmdW5jdGlvbiAoKSB7DQogICAgICAgIHZhciBmaWxlbmFtZSA9IHVwbG9hZC5maWxlc1swXS5uYW1lOw0KICAgICAgICB2YXIgcmVhZGVyID0gbmV3IEZpbGVSZWFkZXIoKTsNCiAgICAgICAgdmFyIGZpbGUgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCdpbnB1dFt0eXBlPWZpbGVdJykuZmlsZXNbMF07DQogICAgICAgIGlmIChmaWxlKSB7DQogICAgICAgICAgICByZWFkZXIucmVhZEFzRGF0YVVSTChmaWxlKTsNCiAgICAgICAgICAgIHJlYWRlci5vbmxvYWQgPSBmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICAgICAgY29uc29sZS5sb2cocmVhZGVyLnJlc3VsdCk7DQogICAgICAgICAgICAgICAgdmFyIGRhdGEgPSBuZXcgT2JqZWN0KCk7DQogICAgICAgICAgICAgICAgdmFyIGNtZCA9ICJ1cGxvYWRMb2dvIjsNCiAgICAgICAgICAgICAgICBkYXRhWyJiYXNlNjQiXSA9IHJlYWRlci5yZXN1bHQ7DQogICAgICAgICAgICAgICAgZGF0YVsiZmlsZW5hbWUiXSA9IGZpbGUubmFtZTsNCiAgICAgICAgICAgICAgICB2YXIgc2VydmVyID0gbmV3IFNlcnZlcihjbWQpOw0KICAgICAgICAgICAgICAgIHNlcnZlci5yZXF1ZXN0KGRhdGEpOw0KICAgICAgICAgICAgICAgIHZhciB1cGRhdGVMb2dvID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3VwZGF0ZS1pY29uJyk7DQogICAgICAgICAgICAgICAgdXBkYXRlTG9nby5jaGVja2VkID0gZmFsc2U7DQogICAgICAgICAgICAgICAgdXBkYXRlTG9nby5jbGFzc05hbWUgPSAiY2hhbmdlZCI7DQogICAgICAgICAgICB9Ow0KICAgICAgICB9DQogICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgYWxlcnQoIkZpbGUgY291bGQgbm90IGJlIGxvYWRlZCIpOw0KICAgICAgICB9DQogICAgICAgIHVwbG9hZC5yZW1vdmUoKTsNCiAgICAgICAgcmV0dXJuOw0KICAgIH07DQp9DQpmdW5jdGlvbiBjaGVja1VuZG8oa2V5KSB7DQogICAgc3dpdGNoIChrZXkpIHsNCiAgICAgICAgY2FzZSAiZXBnTWFwcGluZyI6DQogICAgICAgICAgICBpZiAoVU5ETy5oYXNPd25Qcm9wZXJ0eShrZXkpKSB7DQogICAgICAgICAgICAgICAgU0VSVkVSWyJ4ZXBnIl1ba2V5XSA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkoVU5ET1trZXldKSk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICBVTkRPW2tleV0gPSBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KFNFUlZFUlsieGVwZyJdW2tleV0pKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBkZWZhdWx0Og0KICAgICAgICAgICAgYnJlYWs7DQogICAgfQ0KICAgIHJldHVybjsNCn0NCmZ1bmN0aW9uIHNvcnRTZWxlY3QoZWxlbSkgew0KICAgIHZhciB0bXBBcnkgPSBbXTsNCiAgICB2YXIgc2VsZWN0ZWRWYWx1ZSA9IGVsZW1bZWxlbS5zZWxlY3RlZEluZGV4XS52YWx1ZTsNCiAgICBmb3IgKHZhciBpID0gMDsgaSA8IGVsZW0ub3B0aW9ucy5sZW5ndGg7IGkrKykNCiAgICAgICAgdG1wQXJ5LnB1c2goZWxlbS5vcHRpb25zW2ldKTsNCiAgICB0bXBBcnkuc29ydChmdW5jdGlvbiAoYSwgYikgeyByZXR1cm4gKGEudGV4dCA8IGIudGV4dCkgPyAtMSA6IDE7IH0pOw0KICAgIHdoaWxlIChlbGVtLm9wdGlvbnMubGVuZ3RoID4gMCkNCiAgICAgICAgZWxlbS5vcHRpb25zWzBdID0gbnVsbDsNCiAgICB2YXIgbmV3U2VsZWN0ZWRJbmRleCA9IDA7DQogICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0bXBBcnkubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgZWxlbS5vcHRpb25zW2ldID0gdG1wQXJ5W2ldOw0KICAgICAgICBpZiAoZWxlbS5vcHRpb25zW2ldLnZhbHVlID09IHNlbGVjdGVkVmFsdWUpDQogICAgICAgICAgICBuZXdTZWxlY3RlZEluZGV4ID0gaTsNCiAgICB9DQogICAgZWxlbS5zZWxlY3RlZEluZGV4ID0gbmV3U2VsZWN0ZWRJbmRleDsgLy8gU2V0IG5ldyBzZWxlY3RlZCBpbmRleCBhZnRlciBzb3J0aW5nDQogICAgcmV0dXJuOw0KfQ0KZnVuY3Rpb24gdXBkYXRlTG9nKCkgew0KICAgIGNvbnNvbGUubG9nKCJUT0tFTiIpOw0KICAgIHZhciBzZXJ2ZXIgPSBuZXcgU2VydmVyKCJ1cGRhdGVMb2ciKTsNCiAgICBzZXJ2ZXIucmVxdWVzdChuZXcgT2JqZWN0KCkpOw0KfQ0K" + webUI["html/configuration.html"] = "PCFkb2N0eXBlIGh0bWw+DQo8aHRtbD4NCiAgPGhlYWQ+DQogICAgPG1ldGEgY2hhcnNldD0idXRmLTgiPg0KICAgIDxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgsIGluaXRpYWwtc2NhbGU9MS4wIiAvPiANCiAgICA8dGl0bGU+eFRlVmU8L3RpdGxlPg0KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iY3NzL3NjcmVlbi5jc3MiIHR5cGU9InRleHQvY3NzIj4NCiAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9ImNzcy9iYXNlLmNzcyIgdHlwZT0idGV4dC9jc3MiPg0KICAgIDxzY3JpcHQgbGFuZ3VhZ2U9ImphdmFzY3JpcHQiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJqcy9jb25maWd1cmF0aW9uX3RzLmpzIj48L3NjcmlwdD4NCiAgICA8c2NyaXB0IGxhbmd1YWdlPSJqYXZhc2NyaXB0IiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ianMvbmV0d29ya190cy5qcyI+PC9zY3JpcHQ+DQogICAgPHNjcmlwdCBsYW5ndWFnZT0iamF2YXNjcmlwdCIgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9ImpzL21lbnVfdHMuanMiPjwvc2NyaXB0Pg0KICAgIDxzY3JpcHQgbGFuZ3VhZ2U9ImphdmFzY3JpcHQiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJqcy9zZXR0aW5nc190cy5qcyI+PC9zY3JpcHQ+DQogICAgPHNjcmlwdCBsYW5ndWFnZT0iamF2YXNjcmlwdCIgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9ImpzL2Jhc2VfdHMuanMiPjwvc2NyaXB0Pg0KICA8L2hlYWQ+DQoNCiAgICA8Ym9keSBvbmxvYWQ9ImphdmFzY3JpcHQ6IHJlYWR5Rm9yQ29uZmlndXJhdGlvbigwKTsiPg0KICAgICAgICAgIA0KICAgICAgPGRpdiBpZD0ibG9hZGluZyIgY2xhc3M9ImJsb2NrIj4NCiAgICAgICAgPGRpdiBjbGFzcz0ibG9hZGVyIj48L2Rpdj4NCiAgICAgIDwvZGl2Pg0KDQogICAgICA8ZGl2IGlkPSJoZWFkZXIiIGNsYXNzPSJpbWdDZW50ZXIiPjwvZGl2Pg0KICAgICAgPGRpdiBpZD0iYm94Ij4NCiAgICAgICAgDQogICAgICAgIDx0YWJsZSBpZD0iY2xpZW50SW5mbyIgY2xhc3M9InZpc2libGUiPg0KICAgICAgICAgIDx0cj4NCiAgICAgICAgICAgIDx0ZCBjbGFzcz0idGRLZXkiPlZlcnNpb246PC90ZD4NCiAgICAgICAgICAgIDx0ZCBpZD0idmVyc2lvbiIgY2xhc3M9InRkVmFsIj4mbmJzcDs8L3RkPg0KICAgICAgICAgICAgPHRkIGNsYXNzPSJ0ZEtleSI+T1M6PC90ZD4NCiAgICAgICAgICAgIDx0ZCBpZD0ib3MiIGNsYXNzPSJ0ZFZhbCI+Jm5ic3A7PC90ZD4NCiAgICAgICAgICA8L3RyPg0KICAgICAgICAgIDx0cj4NCiAgICAgICAgICAgIDx0ZCBjbGFzcz0idGRLZXkiPlVVSUQ6PC90ZD4NCiAgICAgICAgICAgIDx0ZCBpZD0idXVpZCIgY2xhc3M9InRkVmFsIj4mbmJzcDs8L3RkPg0KICAgICAgICAgICAgPHRkIGNsYXNzPSJ0ZEtleSI+QXJjaDo8L3RkPg0KICAgICAgICAgICAgPHRkIGlkPSJhcmNoIiBjbGFzcz0idGRWYWwiPiZuYnNwOzwvdGQ+DQogICAgICAgICAgPC90cj4NCiAgICAgICAgICA8dHI+DQogICAgICAgICAgICA8dGQgY2xhc3M9InRkS2V5Ij5TdHJlYW1zOjwvdGQ+DQogICAgICAgICAgICA8dGQgaWQ9InN0cmVhbXMiIGNsYXNzPSJ0ZFZhbCI+Jm5ic3A7PC90ZD4NCiAgICAgICAgICAgIDx0ZCBjbGFzcz0idGRLZXkiPkRWUjo8L3RkPg0KICAgICAgICAgICAgPHRkIGlkPSJEVlIiIGNsYXNzPSJ0ZFZhbCI+Jm5ic3A7PC90ZD4NCiAgICAgICAgICA8L3RyPg0KICAgICAgICA8L3RhYmxlPg0KICAgICAgICANCiAgICAgICAgPGRpdiBpZD0iaGVhZGxpbmUiPg0KICAgICAgICAgIDxoMSBpZD0iaGVhZC10ZXh0IiBjbGFzcz0iY2VudGVyIj5Db25maWd1cmF0aW9uPC9oMT4gICAgICANCiAgICAgICAgPC9kaXY+DQogICAgICAgIDxwIGlkPSJlcnIiIGNsYXNzPSJlcnJvck1zZyBjZW50ZXIiPjwvcD4gICANCiAgICAgICAgPGRpdiBpZD0iY29udGVudCI+DQogICAgICAgICAgICANCiAgICAgICAgPC9kaXY+DQogICAgICAgIDxkaXYgaWQ9ImJveC1mb290ZXIiPg0KICAgICAgICAgIDxpbnB1dCBpZD0ibmV4dCIgY2xhc3M9IiIgdHlwZT0iYnV0dG9uIiBuYW1lPSJuZXh0IiB2YWx1ZT0iTmV4dCIgb25jbGljaz0iamF2YXNjcmlwdDogc2F2ZVdpemFyZCgpOyI+DQogICAgICAgIDwvZGl2Pg0KICAgICAgPC9kaXY+DQogICAgPC9ib2R5Pg0KPC9odG1sPg==" + webUI["html/img/logo_w_600x200.png"] = "iVBORw0KGgoAAAANSUhEUgAAAlgAAADICAYAAAA0n5+2AAAAAXNSR0IArs4c6QAAAAlwSFlzAAAuIwAALiMBeKU/dgAABCZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IlhNUCBDb3JlIDUuNC4wIj4KICAgPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIgogICAgICAgICAgICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgICAgICAgICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyI+CiAgICAgICAgIDx0aWZmOlJlc29sdXRpb25Vbml0PjI8L3RpZmY6UmVzb2x1dGlvblVuaXQ+CiAgICAgICAgIDx0aWZmOkNvbXByZXNzaW9uPjU8L3RpZmY6Q29tcHJlc3Npb24+CiAgICAgICAgIDx0aWZmOlhSZXNvbHV0aW9uPjMwMDwvdGlmZjpYUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6T3JpZW50YXRpb24+MTwvdGlmZjpPcmllbnRhdGlvbj4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+MzAwPC90aWZmOllSZXNvbHV0aW9uPgogICAgICAgICA8ZXhpZjpQaXhlbFhEaW1lbnNpb24+NjAwPC9leGlmOlBpeGVsWERpbWVuc2lvbj4KICAgICAgICAgPGV4aWY6Q29sb3JTcGFjZT4xPC9leGlmOkNvbG9yU3BhY2U+CiAgICAgICAgIDxleGlmOlBpeGVsWURpbWVuc2lvbj4yMDA8L2V4aWY6UGl4ZWxZRGltZW5zaW9uPgogICAg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" + webUI["html/js/classes_ts.js"] = "dmFyIF9fZXh0ZW5kcyA9ICh0aGlzICYmIHRoaXMuX19leHRlbmRzKSB8fCAoZnVuY3Rpb24gKCkgew0KICAgIHZhciBleHRlbmRTdGF0aWNzID0gZnVuY3Rpb24gKGQsIGIpIHsNCiAgICAgICAgZXh0ZW5kU3RhdGljcyA9IE9iamVjdC5zZXRQcm90b3R5cGVPZiB8fA0KICAgICAgICAgICAgKHsgX19wcm90b19fOiBbXSB9IGluc3RhbmNlb2YgQXJyYXkgJiYgZnVuY3Rpb24gKGQsIGIpIHsgZC5fX3Byb3RvX18gPSBiOyB9KSB8fA0KICAgICAgICAgICAgZnVuY3Rpb24gKGQsIGIpIHsgZm9yICh2YXIgcCBpbiBiKSBpZiAoYi5oYXNPd25Qcm9wZXJ0eShwKSkgZFtwXSA9IGJbcF07IH07DQogICAgICAgIHJldHVybiBleHRlbmRTdGF0aWNzKGQsIGIpOw0KICAgIH07DQogICAgcmV0dXJuIGZ1bmN0aW9uIChkLCBiKSB7DQogICAgICAgIGV4dGVuZFN0YXRpY3MoZCwgYik7DQogICAgICAgIGZ1bmN0aW9uIF9fKCkgeyB0aGlzLmNvbnN0cnVjdG9yID0gZDsgfQ0KICAgICAgICBkLnByb3RvdHlwZSA9IGIgPT09IG51bGwgPyBPYmplY3QuY3JlYXRlKGIpIDogKF9fLnByb3RvdHlwZSA9IGIucHJvdG90eXBlLCBuZXcgX18oKSk7DQogICAgfTsNCn0pKCk7DQp2YXIgTWFpbk1lbnUgPSAvKiogQGNsYXNzICovIChmdW5jdGlvbiAoKSB7DQogICAgZnVuY3Rpb24gTWFpbk1lbnUoKSB7DQogICAgICAgIHRoaXMuRG9jdW1lbnRJRCA9ICJtYWluLW1lbnUiOw0KICAgICAgICB0aGlzLkhUTUxUYWcgPSAiTEkiOw0KICAgIH0NCiAgICBNYWluTWVudS5wcm90b3R5cGUuY3JlYXRlID0gZnVuY3Rpb24gKCkgew0KICAgICAgICBjb25zb2xlLmxvZyh0aGlzLkRvY3VtZW50SUQpOw0KICAgIH07DQogICAgcmV0dXJuIE1haW5NZW51Ow0KfSgpKTsNCnZhciBNYWluTWVudUl0ZW0gPSAvKiogQGNsYXNzICovIChmdW5jdGlvbiAoX3N1cGVyKSB7DQogICAgX19leHRlbmRzKE1haW5NZW51SXRlbSwgX3N1cGVyKTsNCiAgICBmdW5jdGlvbiBNYWluTWVudUl0ZW0oKSB7DQogICAgICAgIHJldHVybiBfc3VwZXIgIT09IG51bGwgJiYgX3N1cGVyLmFwcGx5KHRoaXMsIGFyZ3VtZW50cykgfHwgdGhpczsNCiAgICB9DQogICAgTWFpbk1lbnVJdGVtLnByb3RvdHlwZS5jcmVhdGUyID0gZnVuY3Rpb24gKCkgew0KICAgICAgICB2YXIgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQodGhpcy5IVE1MVGFnKTsNCiAgICAgICAgZWxlbWVudC5pbm5lclRleHQgPSB0aGlzLlZhbHVlOw0KICAgICAgICBjb25zb2xlLmxvZyhlbGVtZW50KTsNCiAgICB9Ow0KICAgIHJldHVybiBNYWluTWVudUl0ZW07DQp9KE1haW5NZW51KSk7DQpmdW5jdGlvbiBwYWdlUmVhZHkoKSB7DQogICAgdmFyIGl0ZW0gPSBuZXcgTWFpbk1lbnVJdGVtKCk7DQogICAgaXRlbS5WYWx1ZSA9ICJUZXN0IjsNCiAgICBpdGVtLmNyZWF0ZTIoKTsNCn0NCg==" + webUI["html/img/log.png"] = "iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAAAXNSR0IArs4c6QAAAAlwSFlzAAAsSwAALEsBpT2WqQAABCRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IlhNUCBDb3JlIDUuNC4wIj4KICAgPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIgogICAgICAgICAgICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgICAgICAgICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyI+CiAgICAgICAgIDx0aWZmOlJlc29sdXRpb25Vbml0PjI8L3RpZmY6UmVzb2x1dGlvblVuaXQ+CiAgICAgICAgIDx0aWZmOkNvbXByZXNzaW9uPjU8L3RpZmY6Q29tcHJlc3Npb24+CiAgICAgICAgIDx0aWZmOlhSZXNvbHV0aW9uPjI4ODwvdGlmZjpYUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6T3JpZW50YXRpb24+MTwvdGlmZjpPcmllbnRhdGlvbj4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+Mjg4PC90aWZmOllSZXNvbHV0aW9uPgogICAgICAgICA8ZXhpZjpQaXhlbFhEaW1lbnNpb24+NTA8L2V4aWY6UGl4ZWxYRGltZW5zaW9uPgogICAgICAgICA8ZXhpZjpDb2xvclNwYWNlPjE8L2V4aWY6Q29sb3JTcGFjZT4KICAgICAgICAgPGV4aWY6UGl4ZWxZRGltZW5zaW9uPjUwPC9leGlmOlBpeGVsWURpbWVuc2lvbj4KICAgICAgICAgPGRjOnN1YmplY3Q+CiAgICAgICAgICAgIDxyZGY6QmFnLz4KICAgICAgICAgPC9kYzpzdWJqZWN0PgogICAgICAgICA8eG1wOk1vZGlmeURhdGU+MjAxOC0xMC0xNFQxMToxMDo0MjwveG1wOk1vZGlmeURhdGU+CiAgICAgICAgIDx4bXA6Q3JlYXRvclRvb2w+UGl4ZWxtYXRvciAzLjM8L3htcDpDcmVhdG9yVG9vbD4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgIDwvcmRmOlJERj4KPC94OnhtcG1ldGE+CkP32mEAAANASURBVGgF7ZlPiE1RHMffw1AYhiL5k1HEijJiYaFZiHoyFspW2RFRkkSZGgtFWJIwi9FYmo0VOywkKTbKgjSlWcifRCPX51dv6s2d33md77vvXjfmV9859/7u93x/v98959x73p1KRbAkSargAhgDH0E/qIYkuHYEvAPGvwbmNOEerXM/0Q6BRSFuZj/ix0DaDnvCkGppIucDAe4OhzvkcUO+GaELAf8ux7/b8Zlrr+Pvc3zm6nX8NccXdKmFLHaUPJ/Ruhyu5zNap8Nd6PiCLrUQTyi0Rjy/5/M0Zd+smB7M32XwtgBr07aC6yfSTs7XO77OALfH4VbgHsD/HLytVquJx4nyIdQFBsHftscksK5Z0sGhpuN8Or4Aa5sJFHjtO7G2MjKvvZjN1sglOpSlCMt9LrDZ4S4Hd0Qg24vrK+gAZbPtjMqTdFKhEdkIsYxFWP720JlioUK6pzDL41jtpRIqxOOWxecuB3fhRGT8E85YBK8VygI6GSRTCxlH3TaJgyw4O2678aCxO94LbNPovYDdmOrUukIBN/MqwjJEOwGPOHR31W4VONVCLEBR9lAJpBbSrYhn5K5R+quFnGUOr1ICtMIlxjz6XVb6qot9JeKvCPSAdlQJJHDtd8hOIN0wtRDLxx6Ntr0ulalTq1TJNyYzXUjj3SjD8X87Iva7uR8s5+2bi6FtX1oOgi8g2tSn1g2yPx+t3gIR/c90s1+C1vuO/YkxdWrdjxFtE2dE0VELWaqIZ+QuUfqrhZxmyKUvgEoyE1xizOR4YOI8plXXyAZEbYsyTJvXFsUW+x6wGUSbWogJ237rZHSEgojq1CooLT3MdCH6Pcu3xz8zIq0s9lvc2+sgz6dWH/rnQPB/jlybZGoh99hCHJqk0P6TD0jaI/4b7dVYeXVq2bemokyKpRZiHwWKMimWWshxhryjoEpOKXHUNbIN8WcUc5s2r8Vue7l9oAaiTS3EhDeB6EUYnUlGojq1MobLr3uokB/5hcys7OYWKuRl5nD5Cbi5uYXw0ntPHoay2S8Seuol5RZSJ0r/n/DEc/BdrN9kTZrH7BkwDspgwyQxW6uggU3nHnAXvAG/QZE2SrARsL8hJffwDxM0mNDPvT8IAAAAAElFTkSuQmCC" + webUI["html/img/m3u.png"] = "iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAAAXNSR0IArs4c6QAAAAlwSFlzAAAsSwAALEsBpT2WqQAABCRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IlhNUCBDb3JlIDUuNC4wIj4KICAgPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIgogICAgICAgICAgICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgICAgICAgICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyI+CiAgICAgICAgIDx0aWZmOlJlc29sdXRpb25Vbml0PjI8L3RpZmY6UmVzb2x1dGlvblVuaXQ+CiAgICAgICAgIDx0aWZmOkNvbXByZXNzaW9uPjU8L3RpZmY6Q29tcHJlc3Npb24+CiAgICAgICAgIDx0aWZmOlhSZXNvbHV0aW9uPjI4ODwvdGlmZjpYUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6T3JpZW50YXRpb24+MTwvdGlmZjpPcmllbnRhdGlvbj4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+Mjg4PC90aWZmOllSZXNvbHV0aW9uPgogICAgICAgICA8ZXhpZjpQaXhlbFhEaW1lbnNpb24+NTA8L2V4aWY6UGl4ZWxYRGltZW5zaW9uPgogICAgICAgICA8ZXhpZjpDb2xvclNwYWNlPjE8L2V4aWY6Q29sb3JTcGFjZT4KICAgICAgICAgPGV4aWY6UGl4ZWxZRGltZW5zaW9uPjUwPC9leGlmOlBpeGVsWURpbWVuc2lvbj4KICAgICAgICAgPGRjOnN1YmplY3Q+CiAgICAgICAgICAgIDxyZGY6QmFnLz4KICAgICAgICAgPC9kYzpzdWJqZWN0PgogICAgICAgICA8eG1wOk1vZGlmeURhdGU+MjAxOC0wNy0yOFQxOTowNzozMTwveG1wOk1vZGlmeURhdGU+CiAgICAgICAgIDx4bXA6Q3JlYXRvclRvb2w+UGl4ZWxtYXRvciAzLjM8L3htcDpDcmVhdG9yVG9vbD4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgIDwvcmRmOlJERj4KPC94OnhtcG1ldGE+CumjVbcAAAGWSURBVGgF7VoxTgJRFGTFaGKBFnbEcABjb0fiBego7D2ABYmn8ARKRWFNQ6gx4QRQGWJJoY2VhXGdl7Dkh7Dsx3ns3yXvJ5P97L6d92bmhwYqlcWK43gK5L2enP51NP8F7pN721wPnOITZx9qG6HxI8QIZO+9XCHeL+VQKKm8QMyxb6+iCpH528AQYs58xIQWknV8mhDxCjEXWWJCC8maT55fAmOIudpUXAYhMn8dGEHMTZqYsgiR+U+BAcTcrhNTJiEy/xHQg5jOqpjD1RsBP3+id8u3P8TUoij6SuoLIwRDfWOofjLYtteyHa1UfcvvcUT1jqpGauVuHnyAdragjv/TAkley3uhj9Y5ZhDQa2+Olgmhz4IygSWibChNZ4nQFioTWCLKhtJ0lghtoTKBJaJsKE1nidAWKhNYIsqG0nSWCG2hMoElomwoTWeJ0BYqE1giyobSdJYIbaEygSWibChNZ4nQFioTWCLKhtJ0biJzmi1/guXMrpDn/OegO3bXMuAH0TtgAvwARV3y57Q34AGoJkL+AErKZ9cqbH7AAAAAAElFTkSuQmCC" + webUI["html/img/users.png"] = "iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAAAXNSR0IArs4c6QAAAAlwSFlzAAAsSwAALEsBpT2WqQAABCRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IlhNUCBDb3JlIDUuNC4wIj4KICAgPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIgogICAgICAgICAgICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgICAgICAgICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyI+CiAgICAgICAgIDx0aWZmOlJlc29sdXRpb25Vbml0PjI8L3RpZmY6UmVzb2x1dGlvblVuaXQ+CiAgICAgICAgIDx0aWZmOkNvbXByZXNzaW9uPjU8L3RpZmY6Q29tcHJlc3Npb24+CiAgICAgICAgIDx0aWZmOlhSZXNvbHV0aW9uPjI4ODwvdGlmZjpYUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6T3JpZW50YXRpb24+MTwvdGlmZjpPcmllbnRhdGlvbj4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+Mjg4PC90aWZmOllSZXNvbHV0aW9uPgogICAgICAgICA8ZXhpZjpQaXhlbFhEaW1lbnNpb24+NTA8L2V4aWY6UGl4ZWxYRGltZW5zaW9uPgogICAgICAgICA8ZXhpZjpDb2xvclNwYWNlPjE8L2V4aWY6Q29sb3JTcGFjZT4KICAgICAgICAgPGV4aWY6UGl4ZWxZRGltZW5zaW9uPjUwPC9leGlmOlBpeGVsWURpbWVuc2lvbj4KICAgICAgICAgPGRjOnN1YmplY3Q+CiAgICAgICAgICAgIDxyZGY6QmFnLz4KICAgICAgICAgPC9kYzpzdWJqZWN0PgogICAgICAgICA8eG1wOk1vZGlmeURhdGU+MjAxOC0wOC0zMFQxNzowODozODwveG1wOk1vZGlmeURhdGU+CiAgICAgICAgIDx4bXA6Q3JlYXRvclRvb2w+UGl4ZWxtYXRvciAzLjM8L3htcDpDcmVhdG9yVG9vbD4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgIDwvcmRmOlJERj4KPC94OnhtcG1ldGE+CjU01MMAAANJSURBVGgF1ZnLaxNRFMYz2rpoFbW+SCsihaJQRMT6rPhAXAq6c+HChSguRFd1oRtd+A/oWhQ3oiiWFB91UbqRqlXXgoIIQhFbQTTQao2/GzLDZEjIPefO7SQHPjJz55zzfd/MZCa5N8h5ilKptJvWp8FekAed4Bv4Cj6Dh2A4CIJZPpszMHEV2MQ0SZdB0DROENMHjoEzQBoFCpZnbgYR58E/qfpE/kv2F2dmBvJ94G9ClHb3SiZGUBuASa3qGnVzjG3RmFmkKYrVHGB7e2zfdbOdBhc1TVyNnNSQNqg5wVURf/FdjRxpIEpzuIOio9JCtRHO2hrINkgJLfPFt6vaCII2WYrSpPVJi1RGuBrmTbxeSibIX5j3CUauAfOo9BXzNH4nMJ5TXREI1gHzqPQVRtc2zCyxJdAaGbclcMj7zi/jOdt6rZFhCH7akijznknqVEY4U78heSAhUuTekNSojFQIChIiYe57TtZrSY2LkecQzUjIBLljglz3VJ4qg+AXSDNGabbWXZ2wA6Qjabqg136hhHK6y60V8o2EGyl8/qHHpKZPGkYeQzyvIa9RM86XvFhjvOGQsxGIp2B50ZDJLuG2XZqnLO5rM3viGh9o0OZJon1bRLxxdHLcns1jJiYOAu2U0D2P0uStMXJdcVU+UdMlZ/NYgaA28ERg5ge5/R4l6VsjrANMWJiZJWeXnqm60vnxW90ul6u8ByaS4zX2i+S+qjGuGkrdSEWFzT1vlhlSC19Gui0UtnNriSfi6vX1ZWRjPcLEeGrzYqkb4SyvQGxvQnC93cF6BzIfx8gpYBsfSdycuei4AAR1ggugCCRh1lbugIF4vwXbhtisjfSDc+ARSOOf4lv6mNWv1VIj1ouQNF9K851gDzArtWbV1uYxS5o4zB+sp+AuKPC+cVv5RXwPuATMmUpreY1Wopgh+ybYKj4dFHWB+8DMwTZTjCHmsJUhEgfAF9DMcQtx9V8dHMyDqWZ2ENM2FL8yVV92kkY56GM5Lc6Z1vY0jbp5EJQnuqPLg4kdLWTCnIxVIJoDi4wweNYcbbGIfuLEjRxqMRNGbvTvsmyE22oZg70taKQn1BxekXw40GKfK0O9oZHsJ8ZCRbLPaI3xP7YzeQoHxWckAAAAAElFTkSuQmCC" + webUI["html/index.html"] = "PCFkb2N0eXBlIGh0bWw+DQo8aHRtbD4NCiAgPGhlYWQ+DQogICAgPG1ldGEgY2hhcnNldD0idXRmLTgiPg0KICAgIDwhLS0tDQogICAgPG1ldGEgbmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9IndpZHRoPWRldmljZS13aWR0aCwgaW5pdGlhbC1zY2FsZT0xLjAiIC8+IA0KICAgIC0tPg0KICAgIDx0aXRsZT54VGVWZTwvdGl0bGU+DQogICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJjc3Mvc2NyZWVuLmNzcyIgdHlwZT0idGV4dC9jc3MiPg0KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iY3NzL2Jhc2UuY3NzIiB0eXBlPSJ0ZXh0L2NzcyI+DQoNCiAgICA8c2NyaXB0IGxhbmd1YWdlPSJqYXZhc2NyaXB0IiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ianMvbmV0d29ya190cy5qcyI+PC9zY3JpcHQ+DQogICAgPHNjcmlwdCBsYW5ndWFnZT0iamF2YXNjcmlwdCIgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9ImpzL21lbnVfdHMuanMiPjwvc2NyaXB0Pg0KICAgIDxzY3JpcHQgbGFuZ3VhZ2U9ImphdmFzY3JpcHQiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJqcy9zZXR0aW5nc190cy5qcyI+PC9zY3JpcHQ+DQogICAgPHNjcmlwdCBsYW5ndWFnZT0iamF2YXNjcmlwdCIgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9ImpzL2xvZ3NfdHMuanMiPjwvc2NyaXB0Pg0KICAgIDxzY3JpcHQgbGFuZ3VhZ2U9ImphdmFzY3JpcHQiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJqcy9iYXNlX3RzLmpzIj48L3NjcmlwdD4NCg0KICA8L2hlYWQ+DQoNCiAgICA8Ym9keSBvbmxvYWQ9ImphdmFzY3JpcHQ6IFBhZ2VSZWFkeSgpOyI+DQoNCiAgICAgIDxkaXYgaWQ9ImxvYWRpbmciIGNsYXNzPSJub25lIj4NCiAgICAgICAgPGRpdiBjbGFzcz0ibG9hZGVyIj48L2Rpdj4NCiAgICAgIDwvZGl2Pg0KDQogICAgICA8ZGl2IGlkPSJwb3B1cCIgY2xhc3M9Im5vbmUiPg0KICAgICAgICA8ZGl2IGlkPSJwb3B1cC1jdXN0b20iPjwvZGl2Pg0KICAgICAgPC9kaXY+DQoNCiAgICAgIDxkaXYgaWQ9ImxheW91dCI+DQoNCiAgICAgICAgPCEtLQ0KICAgICAgICA8ZGl2IGlkPSJub3RpZmljYXRpb24iPg0KICAgICAgICAgIDxkaXYgY2xhc3M9ImVsZW1lbnQiPg0KICAgICAgICAgICAgPGg1PlhFUEc8L2g1Pg0KICAgICAgICAgICAgPHByZT4xMS4wNS4yMDE5IC0gMjA6MjE8L3ByZT4NCiAgICAgICAgICAgIDxocj4NCiAgICAgICAgICAgIDxwPkhhbGxvIGRhcyBpc3QgZWluIFRlc3QuIFVuZCBub2NoIG1laHIgVGV4dC48L3A+DQogICAgICAgICAgPC9kaXY+DQogICAgICAgIDwvZGl2Pg0KICAgICAgLS0+DQoNCiAgICAgICAgPGRpdiBpZD0ibWVudS13cmFwcGVyIiBjbGFzcz0ibGF5b3V0LWxlZnQiPg0KICAgICAgICAgIDxkaXYgaWQ9ICJicmFuY2giPjwvZGl2Pg0KICAgICAgICAgIDxkaXYgaWQ9ImxvZ28iPjwvZGl2Pg0KICAgICAgICAgIDxuYXYgaWQ9Im1haW4tbWVudSI+PC9uYXY+DQogICAgICAgIDwvZGl2Pg0KDQogICAgICAgIDxkaXYgY2xhc3M9ImxheW91dC1yaWdodCI+DQoNCiAgICAgICAgICA8dGFibGUgaWQ9ImNsaWVudEluZm8iIGNsYXNzPSIiPg0KDQogICAgICAgICAgICA8dHI+DQogICAgICAgICAgICAgIDx0ZCBjbGFzcz0idGRLZXkiPnhUZVZlOjwvdGQ+DQogICAgICAgICAgICAgIDx0ZCBpZD0idmVyc2lvbiIgY2xhc3M9InRkVmFsIj4mbmJzcDs8L3RkPg0KICAgICAgICAgICAgICA8dGQgY2xhc3M9InRkS2V5Ij5PUzo8L3RkPg0KICAgICAgICAgICAgICA8dGQgaWQ9Im9zIiBjbGFzcz0idGRWYWwiPiZuYnNwOzwvdGQ+DQogICAgICAgICAgICAgIDx0ZCBjbGFzcz0idGRLZXkgcGhvbmUiPkRWUiBJUDo8L3RkPg0KICAgICAgICAgICAgICA8dGQgaWQ9IkRWUiIgY2xhc3M9InRkVmFsIHBob25lIj4mbmJzcDs8L3RkPg0KICAgICAgICAgICAgPC90cj4NCg0KICAgICAgICAgICAgPHRyPg0KICAgICAgICAgICAgICA8dGQgY2xhc3M9InRkS2V5Ij5VVUlEOjwvdGQ+DQogICAgICAgICAgICAgIDx0ZCBpZD0idXVpZCIgY2xhc3M9InRkVmFsIj4mbmJzcDs8L3RkPg0KICAgICAgICAgICAgICA8dGQgY2xhc3M9InRkS2V5Ij5BcmNoOjwvdGQ+DQogICAgICAgICAgICAgIDx0ZCBpZD0iYXJjaCIgY2xhc3M9InRkVmFsIj4mbmJzcDs8L3RkPg0KICAgICAgICAgICAgICA8dGQgY2xhc3M9InRkS2V5IHBob25lIj5NM1UgVVJMOjwvdGQ+DQogICAgICAgICAgICAgIDx0ZCBpZD0ibTN1LXVybCIgY2xhc3M9InRkVmFsIHBob25lIj4mbmJzcDs8L3RkPg0KICAgICAgICAgICAgPC90cj4NCg0KICAgICAgICAgICAgPHRyPg0KICAgICAgICAgICAgICA8dGQgY2xhc3M9InRkS2V5Ij5BdmFpbGFibGUgU3RyZWFtczo8L3RkPg0KICAgICAgICAgICAgICA8dGQgaWQ9InN0cmVhbXMiIGNsYXNzPSJ0ZFZhbCI+Jm5ic3A7PC90ZD4NCiAgICAgICAgICAgICAgPHRkIGNsYXNzPSJ0ZEtleSI+RVBHIFNvdXJjZTo8L3RkPg0KICAgICAgICAgICAgICA8dGQgaWQ9ImVwZ1NvdXJjZSIgY2xhc3M9InRkVmFsIj4mbmJzcDs8L3RkPg0KICAgICAgICAgICAgICA8dGQgY2xhc3M9InRkS2V5IHBob25lIj5YRVBHIFVSTDo8L3RkPg0KICAgICAgICAgICAgICA8dGQgaWQ9InhlcGctdXJsIiBjbGFzcz0idGRWYWwgcGhvbmUiPiZuYnNwOzwvdGQ+DQogICAgICAgICAgICA8L3RyPg0KDQogICAgICAgICAgICA8dHI+DQogICAgICAgICAgICAgIDx0ZCBjbGFzcz0idGRLZXkiPlhFUEcgQ2hhbm5lbHM6PC90ZD4NCiAgICAgICAgICAgICAgPHRkIGlkPSJ4ZXBnIiBjbGFzcz0idGRWYWwiPiZuYnNwOzwvdGQ+DQogICAgICAgICAgICAgIDx0ZCBjbGFzcz0idGRLZXkiPkVycm9yczo8L3RkPg0KICAgICAgICAgICAgICA8dGQgaWQ9ImVycm9ycyIgY2xhc3M9InRkVmFsIj4mbmJzcDs8L3RkPg0KICAgICAgICAgICAgICA8dGQgY2xhc3M9InRkS2V5Ij5XYXJuaW5nczo8L3RkPg0KICAgICAgICAgICAgICA8dGQgaWQ9Indhcm5pbmdzIiBjbGFzcz0idGRWYWwiPiZuYnNwOzwvdGQ+DQogICAgICAgICAgICA8L3RyPg0KDQogICAgICAgICAgPC90YWJsZT4NCiAgICAgICAgIA0KICAgICAgICAgIDxkaXYgaWQ9Im15U3RyZWFtc0JveCIgY2xhc3M9Im5vdFZpc2libGUiPg0KDQogICAgICAgICAgICA8ZGl2IGlkPSJhbGxTdHJlYW1zIj4NCiAgICAgICAgICAgICAgPHRhYmxlIGlkPSJhY3RpdmVTdHJlYW1zIj48L3RhYmxlPg0KICAgICAgICAgICAgICA8dGFibGUgaWQ9ImluYWN0aXZlU3RyZWFtcyI+PC90YWJsZT4NCiAgICAgICAgICAgIDwvZGl2Pg0KDQogICAgICAgICAgPC9kaXY+DQogICAgICAgICAgDQogICAgICAgICAgPGRpdiBpZD0iY29udGVudCIgY2xhc3M9IiI+PC9kaXY+DQogICAgICAgICAgICANCiAgICAgICAgPC9kaXY+DQoNCiAgICAgIDwvZGl2Pg0KICAgICAgDQogICAgPC9ib2R5Pg0KICAgIA0KPC9odG1sPg==" webUI["html/js/logs_ts.js"] = "Y2xhc3MgTG9nIHsNCiAgICBjcmVhdGVMb2coZW50cnkpIHsNCiAgICAgICAgdmFyIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJQUkUiKTsNCiAgICAgICAgaWYgKGVudHJ5LmluZGV4T2YoIldBUk5JTkciKSAhPSAtMSkgew0KICAgICAgICAgICAgZWxlbWVudC5jbGFzc05hbWUgPSAid2FybmluZ01zZyI7DQogICAgICAgIH0NCiAgICAgICAgaWYgKGVudHJ5LmluZGV4T2YoIkVSUk9SIikgIT0gLTEpIHsNCiAgICAgICAgICAgIGVsZW1lbnQuY2xhc3NOYW1lID0gImVycm9yTXNnIjsNCiAgICAgICAgfQ0KICAgICAgICBpZiAoZW50cnkuaW5kZXhPZigiREVCVUciKSAhPSAtMSkgew0KICAgICAgICAgICAgZWxlbWVudC5jbGFzc05hbWUgPSAiZGVidWdNc2ciOw0KICAgICAgICB9DQogICAgICAgIGVsZW1lbnQuaW5uZXJIVE1MID0gZW50cnk7DQogICAgICAgIHJldHVybiBlbGVtZW50Ow0KICAgIH0NCn0NCmZ1bmN0aW9uIHNob3dMb2dzKGJvdHRvbSkgew0KICAgIHZhciBsb2cgPSBuZXcgTG9nKCk7DQogICAgdmFyIGxvZ3MgPSBTRVJWRVJbImxvZyJdWyJsb2ciXTsNCiAgICB2YXIgZGl2ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnRlbnRfbG9nIik7DQogICAgZGl2LmlubmVySFRNTCA9ICIiOw0KICAgIHZhciBrZXlzID0gZ2V0T2JqS2V5cyhsb2dzKTsNCiAgICBrZXlzLmZvckVhY2gobG9nSUQgPT4gew0KICAgICAgICB2YXIgZW50cnkgPSBsb2cuY3JlYXRlTG9nKGxvZ3NbbG9nSURdKTsNCiAgICAgICAgZGl2LmFwcGVuZChlbnRyeSk7DQogICAgfSk7DQogICAgc2V0VGltZW91dChmdW5jdGlvbiAoKSB7DQogICAgICAgIGlmIChib3R0b20gPT0gdHJ1ZSkgew0KICAgICAgICAgICAgdmFyIHdyYXBwZXIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYm94LXdyYXBwZXIiKTsNCiAgICAgICAgICAgIHdyYXBwZXIuc2Nyb2xsVG9wID0gd3JhcHBlci5zY3JvbGxIZWlnaHQ7DQogICAgICAgIH0NCiAgICB9LCAxMCk7DQp9DQpmdW5jdGlvbiByZXNldExvZ3MoKSB7DQogICAgdmFyIGNtZCA9ICJyZXNldExvZ3MiOw0KICAgIHZhciBkYXRhID0gbmV3IE9iamVjdCgpOw0KICAgIHZhciBzZXJ2ZXIgPSBuZXcgU2VydmVyKGNtZCk7DQogICAgc2VydmVyLnJlcXVlc3QoZGF0YSk7DQp9DQo=" + webUI["html/css/base.css"] = "KiB7DQogIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTsNCiAgLW1vei1hcHBlYXJhbmNlOiBub25lOw0KICAtbXMtYXBwZWFyYW5jZTogbm9uZTsNCiAgZm9udC1mYW1pbHk6ICJBcmlhbCIsIHNhbnMtc2VyaWY7DQogIGxldHRlci1zcGFjaW5nOiAycHg7IA0KfQ0KDQovKg0KOjotd2Via2l0LXNjcm9sbGJhciB7IA0KICAgIGRpc3BsYXk6IG5vbmU7IA0KfQ0KKi8NCg0KOjotd2Via2l0LXNjcm9sbGJhciB7DQogIHdpZHRoOiAxMnB4Ow0KICBoZWlnaHQ6IDEycHg7DQp9DQoNCiANCjo6LXdlYmtpdC1zY3JvbGxiYXItdHJhY2sgew0KICAtd2Via2l0LWJveC1zaGFkb3c6IGluc2V0IDAgMCA2cHggcmdiYSgwLDAsMCwwLjMpOyANCiAgYm9yZGVyLXJhZGl1czogNXB4Ow0KICAgIA0KfQ0KIA0KOjotd2Via2l0LXNjcm9sbGJhci10aHVtYiB7DQogIGJvcmRlci1yYWRpdXM6IDVweDsNCiAgLXdlYmtpdC1ib3gtc2hhZG93OiBpbnNldCAwIDAgNnB4IHJnYmEoMCwgMCwgMCwwLjYpOyANCiAgYmFja2dyb3VuZC1jb2xvcjogIzQ0NDsNCn0NCg0KOjotd2Via2l0LXNjcm9sbGJhci10aHVtYjpob3ZlciB7DQogIGJhY2tncm91bmQ6ICMzMzM7IA0KfQ0KDQo6Oi13ZWJraXQtc2Nyb2xsYmFyLWNvcm5lciB7IA0KICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsgDQp9DQoNCmEgew0KICBjb2xvcjogIzAwRTZGRjsNCn0NCg0KaHRtbCwgYm9keSB7DQogIGNvbG9yOiAjZmZmOw0KICBtYXJnaW46IDBweCBhdXRvOw0KICBoZWlnaHQ6IDEwMCU7DQogIGZvbnQtc2l6ZTogMTRweDsNCn0NCg0KaDIgew0KICBmb250LXNpemU6IDI0cHg7DQogIGxldHRlci1zcGFjaW5nOiAycHg7DQp9DQoNCmgzIHsNCiAgZm9udC1zaXplOiAyMnB4Ow0KICBsZXR0ZXItc3BhY2luZzogMXB4Ow0KfQ0KDQpoNCB7DQogIGZvbnQtc2l6ZTogMjBweDsNCiAgbGV0dGVyLXNwYWNpbmc6IDFweDsNCiAgbGluZS1oZWlnaHQ6IDEuNWVtOw0KDQp9DQoNCmg1IHsNCiAgZm9udC1zaXplOiAxNnB4Ow0KICBsZXR0ZXItc3BhY2luZzogMXB4Ow0KICBsaW5lLWhlaWdodDogMS4yZW07DQogIG1hcmdpbjogMjVweCAwcHggMTBweCAwcHg7DQp9DQoNCmhyIHsNCiAgYm9yZGVyOiAwOw0KICBoZWlnaHQ6IDFweDsNCiAgYmFja2dyb3VuZDogIzMzMzsNCiAgbWFyZ2luOiAxMHB4IDBweDsNCn0NCg0KcCB7DQogIG1hcmdpbjogMnB4Ow0KICBwYWRkaW5nOiAycHggNXB4Ow0KfQ0KDQpwcmUgew0KICBtYXJnaW46IDBweCAwcHggNXB4IDBweDsNCiAgZm9udC1zaXplOiAxMnB4Ow0KICBjb2xvcjogI2RkZDsNCiAgbGV0dGVyLXNwYWNpbmc6IDFweDsNCiAgd2hpdGUtc3BhY2U6IHByZS13cmFwOw0KICBmb250LWZhbWlseTogbW9ub3NwYWNlOyANCiAgZm9udC1zaXplOiAxMnB4OyANCiAgZm9udC1zdHlsZTogbm9ybWFsOyANCiAgZm9udC12YXJpYW50OiBub3JtYWw7IA0KICBsaW5lLWhlaWdodDogMS42ZW07IA0KfQ0KDQpsYWJlbCB7DQogIG1hcmdpbi1ib3R0b206IDIwcHg7DQogIGRpc3BsYXk6IGJsb2NrOw0KfQ0KDQpsaSB7DQogIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTsNCiAgYmFja2dyb3VuZC1jb2xvcjogIzExMTsNCiAgcGFkZGluZzogMTBweCAyMHB4Ow0KICBjdXJzb3I6IHBvaW50ZXI7DQogIGJvcmRlci1sZWZ0OiBzb2xpZCAycHggIzExMTsNCiAgdHJhbnNpdGlvbjogYWxsIDAuMzsNCn0NCg0KbGk6aG92ZXIgew0KICBib3JkZXItY29sb3I6ICMwMEU2RkYNCn0NCg0Kc2VsZWN0IHsNCiAgY3Vyc29yOiBwb2ludGVyOw0KICB3aWR0aDogY2FsYygxMDAlICsgMnB4KTsNCiAgYm9yZGVyOiBzb2xpZCAwcHggIzAwRTZGRjsNCiAgYm9yZGVyLXJhZGl1czogMHB4Ow0KICBvdXRsaW5lOiBub25lOw0KICBjb2xvcjogI2ZmZjsNCiAgcGFkZGluZzogOXB4IDEwcHg7DQogIGRpc3BsYXk6YmxvY2s7DQogIGJhY2tncm91bmQtY29sb3I6ICMzMzM7DQogIGZvbnQtc2l6ZTogMTRweDsNCiAgbWFyZ2luOiA1cHggMHB4IDVweCAwcHg7DQp9DQoNCnNlbGVjdDpmb2N1cyB7DQogIG91dGxpbmU6IG5vbmU7DQp9DQoNCmlucHV0IHsNCiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lOw0KICBtYXJnaW46IDVweCAwcHg7DQogIHBhZGRpbmc6IDIuNXB4IDEwcHg7DQogIG91dGxpbmU6IG5vbmU7DQogIGZvbnQtc2l6ZTogMTRweDsNCn0NCg0KaW5wdXRbdHlwZT1idXR0b25dLCBpbnB1dFt0eXBlPXN1Ym1pdF0gew0KICBjdXJzb3I6IHBvaW50ZXI7DQogIGJhY2tncm91bmQtY29sb3I6ICMwMDA7DQogIG1hcmdpbjogMTBweCAxMHB4Ow0KICBwYWRkaW5nOiAxMHB4IDI1cHg7DQogIGJvcmRlcjogc29saWQgMHB4Ow0KICBib3JkZXItY29sb3I6ICMwMDA7DQogIGJvcmRlci1yYWRpdXM6IDNweDsNCiAgb3V0bGluZTogbm9uZTsNCiAgY29sb3I6ICNmZmY7DQp9DQoNCmlucHV0W3R5cGU9YnV0dG9uXTpmb2N1cyB7IA0KICAgb3V0bGluZTogbm9uZTsNCn0NCg0KaW5wdXRbdHlwZT1idXR0b25dOmhvdmVyIHsNCiAgYmFja2dyb3VuZC1jb2xvcjogIzAwRTZGRjsNCiAgY29sb3I6ICMwMDA7DQp9DQoNCmlucHV0W3R5cGU9YnV0dG9uXTpob3Zlci5kZWxldGUgIHsNCiAgYmFja2dyb3VuZC1jb2xvcjogcmVkOw0KICBjb2xvcjogI2ZmZjsNCn0NCg0KaW5wdXRbdHlwZT10ZXh0XSwgaW5wdXRbdHlwZT1zZWFyY2hdLCBpbnB1dFt0eXBlPXBhc3N3b3JkXSB7DQogIGNvbG9yOiAjZmZmOw0KICB3aWR0aDogLXdlYmtpdC1jYWxjKDEwMCUgLSAwcHgpOw0KICB3aWR0aDogLW1vei1jYWxjKDEwMCUgLSAwcHgpOw0KICB3aWR0aDogY2FsYygxMDAlIC0gMHB4KTsNCiAgb3V0bGluZTogbm9uZTsNCiAgYm9yZGVyOiBzb2xpZCAxcHggdHJhbnNwYXJlbnQ7DQogIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50Ow0KICBib3JkZXItYm90dG9tLWNvbG9yOiAjNTU1Ow0KICBib3JkZXItcmFkaXVzOiAwcHg7DQogIHBhZGRpbmc6IDhweCAxMHB4Ow0KfQ0KDQppbnB1dFt0eXBlPSJjaGVja2JveCJdIHsNCiAgYm9yZGVyOiBzb2xpZCAxcHggIzAwRTZGRjsNCiAgYmFja2dyb3VuZC1jb2xvcjogIzMzMzsNCiAgaGVpZ2h0OiAyNXB4Ow0KICB3aWR0aDogMjVweDsNCiAgY3Vyc29yOiBwb2ludGVyOw0KICAvKg0KICAtd2Via2l0LWFwcGVhcmFuY2U6IGNoZWNrYm94Ow0KICAqLw0KfQ0KDQppbnB1dFt0eXBlPSJjaGVja2JveCJdOmNoZWNrZWQgew0KICBjb2xvcjogI2ZmZjsNCiAgYmFja2dyb3VuZC1jb2xvcjogIzAwRTZGRjsNCiAgLypkaXNwbGF5OiBpbmxpbmUtYmxvY2s7Ki8NCn0NCg0KaW5wdXRbdHlwZT0iY2hlY2tib3giXTpiZWZvcmUgew0KICBwb3NpdGlvbjogaW5pdGlhbDsNCiAgbGVmdDogMHB4Ow0KICBtYXJnaW4tbGVmdDogLTRweDsNCiAgY29udGVudDogIiAiOw0KfQ0KDQppbnB1dFt0eXBlPSJjaGVja2JveCJdOmNoZWNrZWQ6YmVmb3JlIHsNCiAgcG9zaXRpb246IGluaXRpYWw7DQogIGxlZnQ6IDBweDsNCiAgbWFyZ2luLWxlZnQ6IC0zcHg7DQogIGNvbnRlbnQ6ICLinJMiOw0KICBjb2xvcjogIzAwMDsNCn0NCg0KDQppbnB1dFt0eXBlPWJ1dHRvbl0uY2FuY2VsIHsNCiAgDQogIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50Ow0KICBib3JkZXItY29sb3I6IHJlZDsNCn0NCg0KaW5wdXRbdHlwZT1idXR0b25dLnNhdmV7DQogIGJhY2tncm91bmQtY29sb3I6ICMxMTE7DQogIGZsb2F0OiByaWdodDsNCn0NCg0KDQppbnB1dFt0eXBlPWJ1dHRvbl0uYmxhY2ssIGlucHV0W3R5cGU9c3VibWl0XS5ibGFja3sNCiAgYmFja2dyb3VuZC1jb2xvcjogIzAwMDsNCiAgYm9yZGVyLWNvbG9yOiAjMDAwOw0KfQ0KDQppbnB1dFt0eXBlPWJ1dHRvbl0uY2VudGVyew0KICBtYXJnaW4tcmlnaHQ6IGF1dG87DQogIG1hcmdpbi1sZWZ0OiBhdXRvOw0KICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDAwOw0KICBib3JkZXItY29sb3I6ICMwMDA7DQp9DQoNCi5wb2ludGVyIHsNCiAgY3Vyc29yOiBwb2ludGVyOw0KfQ0KDQoucG9pbnRlcjpob3ZlciB7DQogIGNvbG9yOiAjMDBFNkZGOw0KICBjdXJzb3I6IHBvaW50ZXI7DQp9DQoNCi5zb3J0VGhpcyB7DQogIGNvbG9yOiAjMDBFNkZGOw0KfQ0KDQoudzQwcHggew0KICBtYXgtd2lkdGg6IDQwcHg7DQp9DQoNCi53NTBweCB7DQogIG1heC13aWR0aDogNTBweDsNCn0NCg0KLnc4MHB4IHsNCiAgbWF4LXdpZHRoOiA4MHB4Ow0KfQ0KDQoudzE1MHB4IHsNCiAgbWF4LXdpZHRoOiAxNTBweDsNCn0NCg0KLncyMDBweCB7DQogIG1heC13aWR0aDogMjAwcHg7DQogIG1pbi13aWR0aDogMTAwcHg7DQogIHdpZHRoOiAyMDBweDsNCiAgb3ZlcmZsb3cteDogaGlkZGVuOw0KICB3aGl0ZS1zcGFjZTogbm93cmFwOw0KICBvdmVyZmxvdzogaGlkZGVuOw0KICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsNCn0NCg0KLnczMDBweCB7DQogIG1heC13aWR0aDogMzAwcHg7DQp9DQoNCi53MjIwcHggew0KICBtYXgtd2lkdGg6IDIyMHB4Ow0KICBjdXJzb3I6IGFsaWFzOw0KfQ0KDQouZm9vdGVyIHsNCiAgZm9udC1zaXplOiAxMHB4Ow0KfQ0KDQouY2VudGVyIHsNCiAgdGV4dC1hbGlnbjogY2VudGVyOw0KfQ0KDQouc2NyZWVuTG9nSGlkZGVuIHsNCiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMHB4LCAtMTEwcHgpOw0KfQ0KDQouYm9yZGVyU3BhY2Ugew0KICBtYXJnaW4tYm90dG9tOiAzMHB4Ow0KfQ0KDQouYmxvY2sgew0KDQp9DQoNCi5ub25lIHsNCiAgZGlzcGxheTogbm9uZTsNCn0NCg0KDQoubm90VmlzaWJsZSB7DQogIGhlaWdodDogMHB4Ow0KICBkaXNwbGF5OiBub25lOw0KICBvcGFjaXR5OiAwOw0KICBib3JkZXItYm90dG9tOiAjMDAwIHNvbGlkIDBweDsNCiAgDQp9DQoNCi52aXNpYmxlIHsNCiAgb3BhY2l0eTogMTsNCiAgZGlzcGxheTogYmxvY2s7DQogIGJvcmRlci1ib3R0b206ICM0NDQgc29saWQgMXB4OyANCiAgcGFkZGluZzogMTBweDsNCn0NCg0KLmZsb2F0UmlnaHQgew0KICBmbG9hdDogcmlnaHQ7DQp9DQoNCi5mbG9hdExlZnQgew0KICBmbG9hdDogbGVmdDsNCn0NCg0KLm1lbnUtYWN0aXZlIHsNCiAgYmFja2dyb3VuZC1jb2xvcjogIzAwRTZGRjsNCn0NCg0KLm1lbnUtbm90QWN0aXZlIHsNCiAgDQp9DQoNCiNicmFuY2ggew0KICBkaXNwbGF5OiB0YWJsZTsNCiAgbWFyZ2luOiBhdXRvOw0KICBjb2xvcjogcmVkOw0KfQ0KDQojaW50ZXJhY3Rpb24gew0KICBtYXJnaW4tYm90dG9tOiAxMDBweDsNCiAgdGV4dC1hbGlnbjogY2VudGVyOw0KICBib3JkZXItYm90dG9tOiBzb2xpZCAwcHggIzc3NzsNCn0NCg0KDQouaGFsZiB7DQogIGRpc3BsYXk6IGJsb2NrOw0KICB3aWR0aDogNDUlOw0KfQ0KDQoubWVudSB7DQogIGJvcmRlcjogc29saWQgMXB4ICMwMEU2RkY7DQp9DQoNCi5pbmZvTXNnIHsNCiAgY29sb3I6ICNhYWE7DQp9DQoNCi5lcnJvck1zZyB7DQogIGNvbG9yOiByZWQ7DQp9DQoNCi53YXJuaW5nTXNnIHsNCiAgY29sb3I6IHllbGxvdzsNCn0NCg0KLmRlYnVnTXNnIHsNCiAgY29sb3I6IG1hZ2VudGE7DQp9DQoNCi5OZXdzLCAuTW92aWUsIC5TZXJpZXMsIC5TcG9ydHMsIC5LaWRzIHsNCiAgYm9yZGVyLWxlZnQ6IHNvbGlkIDJweA0KfQ0KDQouTmV3cyB7DQogIGJvcmRlci1jb2xvcjogdG9tYXRvDQp9DQoNCi5Nb3ZpZSB7DQogIGJvcmRlci1jb2xvcjogcm95YWxibHVlOw0KfQ0KDQouU2VyaWVzIHsNCiAgYm9yZGVyLWNvbG9yOiBnb2xkOw0KfQ0KDQouU3BvcnRzIHsNCiAgYm9yZGVyLWNvbG9yOiB5ZWxsb3dncmVlbjsNCn0NCg0KLktpZHMgew0KICBib3JkZXItY29sb3I6IG1lZGl1bXB1cnBsZTsNCn0NCg0KLyogTG9hZGluZyAqLw0KI2xvYWRpbmcgew0KICBsZWZ0OiAwcHg7DQogIHRvcDogMHB4Ow0KICB6LWluZGV4OiAxMDAwMDsNCiAgcG9zaXRpb246IGFic29sdXRlOw0KICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsMCwwLCAwLjgpOw0KICBtYXJnaW46IGF1dG87DQogIHdpZHRoOiAxMDAlOw0KICBoZWlnaHQ6IDEwMCU7DQp9DQoNCg0KLmxvYWRlciB7DQogIGJvcmRlcjogNXB4IHNvbGlkIHRyYW5zcGFyZW50Ow0KICBib3JkZXItcmFkaXVzOiA1MCU7DQogIGJvcmRlci10b3A6IDVweCBzb2xpZCAjMDBFNkZGOw0KICBib3JkZXItYm90dG9tOiA1cHggc29saWQgIzAwRTZGRjsNCiAgd2lkdGg6IDUwcHg7DQogIGhlaWdodDogNTBweDsNCiAgLXdlYmtpdC1hbmltYXRpb246IHNwaW4gMS4ycyBsaW5lYXIgaW5maW5pdGU7DQogIGFuaW1hdGlvbjogc3BpbiAxLjJzIGxpbmVhciBpbmZpbml0ZTsNCg0KICBwb3NpdGlvbjogZml4ZWQ7DQogIG1hcmdpbjogYXV0bzsNCg0KICB0b3A6IDA7DQogIHJpZ2h0OiAwOw0KICBib3R0b206IDA7DQogIGxlZnQ6IDA7DQogIA0KfQ0KDQpALXdlYmtpdC1rZXlmcmFtZXMgc3BpbiB7DQogIDAlIHsgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTsgfQ0KICAxMDAlIHsgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpOyB9DQp9DQoNCkBrZXlmcmFtZXMgc3BpbiB7DQogIDAlIHsgdHJhbnNmb3JtOiByb3RhdGUoMGRlZyk7IH0NCiAgMTAwJSB7IHRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7IH0NCn0NCg==" + webUI["html/img/settings.png"] = "iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAAAXNSR0IArs4c6QAAAAlwSFlzAAAsSwAALEsBpT2WqQAABCRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IlhNUCBDb3JlIDUuNC4wIj4KICAgPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIgogICAgICAgICAgICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgICAgICAgICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyI+CiAgICAgICAgIDx0aWZmOlJlc29sdXRpb25Vbml0PjI8L3RpZmY6UmVzb2x1dGlvblVuaXQ+CiAgICAgICAgIDx0aWZmOkNvbXByZXNzaW9uPjU8L3RpZmY6Q29tcHJlc3Npb24+CiAgICAgICAgIDx0aWZmOlhSZXNvbHV0aW9uPjI4ODwvdGlmZjpYUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6T3JpZW50YXRpb24+MTwvdGlmZjpPcmllbnRhdGlvbj4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+Mjg4PC90aWZmOllSZXNvbHV0aW9uPgogICAgICAgICA8ZXhpZjpQaXhlbFhEaW1lbnNpb24+NTA8L2V4aWY6UGl4ZWxYRGltZW5zaW9uPgogICAgICAgICA8ZXhpZjpDb2xvclNwYWNlPjE8L2V4aWY6Q29sb3JTcGFjZT4KICAgICAgICAgPGV4aWY6UGl4ZWxZRGltZW5zaW9uPjUwPC9leGlmOlBpeGVsWURpbWVuc2lvbj4KICAgICAgICAgPGRjOnN1YmplY3Q+CiAgICAgICAgICAgIDxyZGY6QmFnLz4KICAgICAgICAgPC9kYzpzdWJqZWN0PgogICAgICAgICA8eG1wOk1vZGlmeURhdGU+MjAxOC0wOC0xMFQxODowODo4OTwveG1wOk1vZGlmeURhdGU+CiAgICAgICAgIDx4bXA6Q3JlYXRvclRvb2w+UGl4ZWxtYXRvciAzLjM8L3htcDpDcmVhdG9yVG9vbD4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgIDwvcmRmOlJERj4KPC94OnhtcG1ldGE+Ckxt87EAAAS7SURBVGgFzZpdiFVVGIbn5N+IMgVhaRLqWI7mQIJoIVRgOhQZNDAhWcbcVuPV3BRE6I14440iQQSaN0p6kz8zI0k5inUhZSSaYOVYODMo5eiMOOPf+LzH2cPMPmvttdbe53jOBy9rr2+938/ae51vr733qaoqgQwPD68B/wDJfXAP3AE94JMShCy+SxJ9CvSDJFlU7MiPFdsh/hrBdIffBsd48HApJjLPI4tnPThBlFJMZI5HBuWZCIt9AmgEzeAJR6JzHeMadnKI8wbYCz4Fkz18JlNwMgf8BCL5j4O3bVaMdUfEhPZqgv1U7HbEbDvoT7HZOPUYNwAlHheV09a4A3RTgMqtj9QY7JdgeM5i3I4+fDIYrQeq/UnyNYOTlBDtS+BwEjk2doz+KyO2OY5bwVCME+/qylTHT4C1D3k+uB33Yul3ov/eMuajlu1RH+II5wtT4hNNSnQ6U/kzbRkfq351bCfF8apAm7kmvq38njWRK0S305SHcSK5XO4U5O9MBmXWbSe3E6YccialdKzH2TTnQEF10XgZ5DdivsxEhkyxjVdERAwu03xmMiqD7hYx19km4cyHq6KyeHKkWpSz+ciVrHVpRYZk/wLHp0H2bULkNKzt4Eq86TKxLq3IECf6nXwV9QPbAfjHQSfoD7SN6L63gYhvbrkiTwKf/dPYpbdPVxKMnigdg0VAG8FQye8AzBl6aIk2A+wPiNoHd63LNZx3wbUAvz/CfTzJb/43AmkGpLfAi0DPE/NALQgtve+xFPdi5xRiNkHa5ySOJ/TR7RrBJdqL4AAxL+p+8ToYAFklNCnF3pM1KPba2L6v8vons5oPsko9ZyZoa0PsOoKezxoY+y5N5DYHWSvDTXzUMJH7IUkRW0tbyyV0CcfDDKmqDMe1KfqnQyehGNgo9q8p4hWYFGsiBY4fsSK/BRkkaPgj5PhMy720BnVFesfnlKo3Das0bw8XYJf196GEuzWRLSDoRypLg2w06FyqTS6Cx7iK1eeqGqrnugmuBgvB8+A5UAuqQYiU+oZ4h2T+BV3gAlDp/pai0U1rFpVGMAv8AHzFd4vShMOQLcoB+DNB/sSbM3ZoMV4BQsW0adSJSbNp1Hu1mY40/YZxpPdJaUSfFzrBMXAjjQNsdvll6cHCWVvKJIphdhcny11pqmolCk5aIDif0BKdZBucgPlO8kh/r8O4HtwClSCbk86HtQqQuUrvKVCf5OARjt0lll4H/WKKmbS0tmJQKZNQ7nq9+w0n2LhTN04E8jKMPpZ1hcli8tGTZYEYJwJrZQGzchTGz3a2ifwdkHc73LYAfpx6DcWXQK1LeiDsdpFGx7UOwUGQJKpmGyIjjvWh50iSQWzsZ/ofgvx+jnYp+B/YpJcB7QXDBKPJ4JDF6+/oCwoBuhoL36R+Jp4RJH16u2IgaxJpHhMehsBY3wTjV2YbOuuumLHrwCW6msbSj74O/DHGgV4Ohl8Jw1nSMmsB+tL6Wnw83odzBrhEr2GtgvFE8A74ADxtJZZygMC25cjQqBwqdg62qpUlziUP45Cq6OGuqqoUE/FJ8i+v7MpJYvEsHl1A5gNty2vLmaN3bBLdAvqB3svqXxLRvyEuc9zs7SiA+ACpw05pJx8SoAAAAABJRU5ErkJggg==" + webUI["html/js/authentication_ts.js"] = "ZnVuY3Rpb24gbG9naW4oKSB7DQogICAgdmFyIGVyciA9IGZhbHNlOw0KICAgIHZhciBkYXRhID0gbmV3IE9iamVjdCgpOw0KICAgIHZhciBkaXYgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29udGVudCIpOw0KICAgIHZhciBmb3JtID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImF1dGhlbnRpY2F0aW9uIik7DQogICAgdmFyIGlucHV0cyA9IGRpdi5nZXRFbGVtZW50c0J5VGFnTmFtZSgiSU5QVVQiKTsNCiAgICBjb25zb2xlLmxvZyhpbnB1dHMpOw0KICAgIGZvciAodmFyIGkgPSBpbnB1dHMubGVuZ3RoIC0gMTsgaSA+PSAwOyBpLS0pIHsNCiAgICAgICAgdmFyIGtleSA9IGlucHV0c1tpXS5uYW1lOw0KICAgICAgICB2YXIgdmFsdWUgPSBpbnB1dHNbaV0udmFsdWU7DQogICAgICAgIGlmICh2YWx1ZS5sZW5ndGggPT0gMCkgew0KICAgICAgICAgICAgaW5wdXRzW2ldLnN0eWxlLmJvcmRlckNvbG9yID0gInJlZCI7DQogICAgICAgICAgICBlcnIgPSB0cnVlOw0KICAgICAgICB9DQogICAgICAgIGRhdGFba2V5XSA9IHZhbHVlOw0KICAgIH0NCiAgICBpZiAoZXJyID09IHRydWUpIHsNCiAgICAgICAgZGF0YSA9IG5ldyBPYmplY3QoKTsNCiAgICAgICAgcmV0dXJuOw0KICAgIH0NCiAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgiY29uZmlybSIpKSB7DQogICAgICAgIGlmIChkYXRhWyJjb25maXJtIl0gIT0gZGF0YVsicGFzc3dvcmQiXSkgew0KICAgICAgICAgICAgYWxlcnQoInNkYWZzZCIpOw0KICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Bhc3N3b3JkJykuc3R5bGUuYm9yZGVyQ29sb3IgPSAicmVkIjsNCiAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjb25maXJtJykuc3R5bGUuYm9yZGVyQ29sb3IgPSAicmVkIjsNCiAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJlcnIiKS5pbm5lckhUTUwgPSAie3suYWNjb3VudC5mYWlsZWR9fSI7DQogICAgICAgICAgICByZXR1cm47DQogICAgICAgIH0NCiAgICB9DQogICAgY29uc29sZS5sb2coZGF0YSk7DQogICAgZm9ybS5zdWJtaXQoKTsNCn0NCg==" webUI["html/create-first-user.html"] = "PCFkb2N0eXBlIGh0bWw+DQo8aHRtbD4NCiAgPGhlYWQ+DQogICAgPG1ldGEgY2hhcnNldD0idXRmLTgiPg0KICAgIDxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgsIGluaXRpYWwtc2NhbGU9MS4wIiAvPiANCiAgICA8dGl0bGU+eFRlVmU8L3RpdGxlPg0KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iY3NzL3NjcmVlbi5jc3MiIHR5cGU9InRleHQvY3NzIj4NCiAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9ImNzcy9iYXNlLmNzcyIgdHlwZT0idGV4dC9jc3MiPg0KICAgIDxzY3JpcHQgbGFuZ3VhZ2U9ImphdmFzY3JpcHQiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJqcy9uZXR3b3JrX3RzLmpzIj48L3NjcmlwdD4NCiAgICA8c2NyaXB0IGxhbmd1YWdlPSJqYXZhc2NyaXB0IiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ianMvYXV0aGVudGljYXRpb25fdHMuanMiPjwvc2NyaXB0Pg0KICA8L2hlYWQ+DQoNCiAgICA8Ym9keT4NCiAgICAgICAgICANCiAgICAgIDxkaXYgaWQ9ImhlYWRlciIgY2xhc3M9ImltZ0NlbnRlciI+PC9kaXY+DQoNCiAgICAgIDxkaXYgaWQ9ImJveCI+DQoNCiAgICAgICAgPGRpdiBpZD0iaGVhZGxpbmUiPg0KICAgICAgICAgIDxoMSBpZD0iaGVhZC10ZXh0IiBjbGFzcz0iY2VudGVyIj57ey5hY2NvdW50LmhlYWRsaW5lfX08L2gxPg0KICAgICAgICA8L2Rpdj4NCg0KICAgICAgICA8cCBpZD0iZXJyIiBjbGFzcz0iZXJyb3JNc2cgY2VudGVyIj48L3A+DQoNCiAgICAgICAgPGRpdiBpZD0iY29udGVudCI+DQoNCiAgICAgICAgICAgIDxmb3JtIGlkPSJhdXRoZW50aWNhdGlvbiIgYWN0aW9uPSIiIG1ldGhvZD0icG9zdCI+DQoNCiAgICAgICAgICAgICAgPGg1Pnt7LmFjY291bnQudXNlcm5hbWUudGl0bGV9fTo8L2g1Pg0KICAgICAgICAgICAgICA8aW5wdXQgaWQ9InVzZXJuYW1lIiB0eXBlPSJ0ZXh0IiBuYW1lPSJ1c2VybmFtZSIgcGxhY2Vob2xkZXI9IlVzZXJuYW1lIiB2YWx1ZT0iIj4NCiAgICAgICAgICAgICAgPGg1Pnt7LmFjY291bnQucGFzc3dvcmQudGl0bGV9fTo8L2g1Pg0KICAgICAgICAgICAgICA8aW5wdXQgaWQ9InBhc3N3b3JkIiB0eXBlPSJwYXNzd29yZCIgbmFtZT0icGFzc3dvcmQiIHBsYWNlaG9sZGVyPSJQYXNzd29yZCIgdmFsdWU9IiI+DQogICAgICAgICAgICAgIDxoNT57ey5hY2NvdW50LmNvbmZpcm0udGl0bGV9fTo8L2g1Pg0KICAgICAgICAgICAgICA8aW5wdXQgaWQ9ImNvbmZpcm0iICB0eXBlPSJwYXNzd29yZCIgbmFtZT0iY29uZmlybSIgIHBsYWNlaG9sZGVyPSJDb25maXJtIiB2YWx1ZT0iIj4NCiAgICAgICAgICAgICAgDQogICAgICAgICAgICA8L2Zvcm0+DQoNCiAgICAgICAgPC9kaXY+DQogICAgICAgIA0KICAgICAgICA8ZGl2IGlkPSJib3gtZm9vdGVyIj4NCiAgICAgICAgICA8aW5wdXQgaWQ9InN1Ym1pdCIgY2xhc3M9IiIgdHlwZT0iYnV0dG9uIiB2YWx1ZT0ie3suYnV0dG9uLmNyYWV0ZUFjY291bnR9fSIgb25jbGljaz0iamF2YXNjcmlwdDogbG9naW4oKTsiPg0KICAgICAgICA8L2Rpdj4NCiAgICAgIA0KICAgICAgICANCiAgICAgIDwvZGl2Pg0KICAgIDwvYm9keT4NCjwvaHRtbD4=" - webUI["html/css/screen.css"] = "bmF2IGltZyB7DQogIGRpc3BsYXk6IGJsb2NrOw0KICBtYXgtaGVpZ2h0OiAyMHB4Ow0KICBtYXgtd2lkdGg6IDIwcHg7DQogIGZsb2F0OiBsZWZ0Ow0KfQ0KDQpuYXYgcCB7DQogIHRleHQtYWxpZ246IGxlZnQ7DQogIHBhZGRpbmc6IDBweCAzMHB4Ow0KfQ0KDQojbGF5b3V0IHsNCiAgZGlzcGxheTogYmxvY2s7DQogIGhlaWdodDogMTAwJTsNCn0NCg0KDQoubGF5b3V0LWxlZnQgew0KICBkaXNwbGF5OiBibG9jazsNCiAgbWluLXdpZHRoOiAxNTBweDsNCiAgbWF4LXdpZHRoOiAyMCU7DQogIGJhY2tncm91bmQtY29sb3I6ICMxMTE7DQogIGhlaWdodDogaW5oZXJpdDsNCiAgZmxvYXQ6IGxlZnQ7DQp9DQoNCi5sYXlvdXQtcmlnaHQgew0KICBkaXNwbGF5OiBibG9jazsNCiAgYmFja2dyb3VuZC1jb2xvcjogIzQ0NDsNCn0NCg0KI21lbnUtd3JhcHBlciB7DQogIGhlaWdodDogMTAwJTsNCn0NCg0KDQojbG9nbyB7DQogIGRpc3BsYXk6IGJsb2NrOw0KICBtaW4td2lkdGg6IDE4MHB4Ow0KICB3aWR0aDogMTAwJTsNCiAgaGVpZ2h0OiAxMDBweDsNCiAgYmFja2dyb3VuZDogdXJsKCIuLi9pbWcvbG9nb193XzYwMHgyMDAucG5nIik7DQogIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7DQogIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjsgDQogIGJhY2tncm91bmQtc2l6ZTogMTAwJTsNCn0NCg0KDQojcGFnZSB7DQogIG1heC13aWR0aDogOTUwcHg7DQogIG1hcmdpbjogYXV0bzsNCiAgYmFja2dyb3VuZC1jb2xvcjogIzQ0NDsNCg0KICAvKg0KICBoZWlnaHQ6IC13ZWJraXQtY2FsYygxMDAlIC0gMTMwcHgpOw0KICBoZWlnaHQ6IC1tb3otY2FsYygxMDAlIC0gMTMwcHgpOw0KICBoZWlnaHQ6IGNhbGMoMTAwJSAtIDEzMHB4KTsNCiAgKi8NCiAgDQogIG1pbi1oZWlnaHQ6IC13ZWJraXQtY2FsYygxMDAlIC0gMTIwcHgpOw0KICBtaW4taGVpZ2h0OiAtbW96LWNhbGMoMTAwJSAtIDEyMHB4KTsNCiAgbWluLWhlaWdodDogY2FsYygxMDAlIC0gMTIwcHgpOw0KICANCiAgDQogIGJveC1zaGFkb3c6IDBweCA1cHggNXB4ICMyMjI7DQogIA0KfQ0KDQojdWlTZXR0aW5nIHsNCiAgZmxvYXQ6IHJpZ2h0Ow0KICBtYXJnaW4tcmlnaHQ6IDI1cHg7DQp9DQoNCiNib3ggaW5wdXRbdHlwZT10ZXh0XSwgI2JveCBpbnB1dFt0eXBlPXBhc3N3b3JkXSB7DQogIHdpZHRoOiAtd2Via2l0LWNhbGMoMTAwJSAtIDIwcHgpOw0KICB3aWR0aDogLW1vei1jYWxjKDEwMCUgLSAyMHB4KTsNCiAgd2lkdGg6IGNhbGMoMTAwJSAtIDIwcHgpOw0KfQ0KDQojYm94IGlucHV0W3R5cGU9c3VibWl0XXsNCiAgbWFyZ2luOiA1MHB4IGF1dG87DQp9DQoNCiNzZXR0aW5ncyB7DQogIGRpc3BsYXk6IGJsb2NrOw0KICBwYWRkaW5nOiAxMHB4IDEwcHg7DQp9DQoNCiNzZXR0aW5ncyBoNSB7DQogIG1hcmdpbjogNTBweCAwcHggMTBweCAwcHg7DQp9DQoNCiNjb250ZW50LWludGVyYWN0aW9uIC5zZWFyY2ggew0KICB3aWR0aDogMjAwcHg7DQogIGJvcmRlcjogMXB4IHNvbGlkICMwMDA7DQogIHBhZGRpbmc6IDlweDsNCiAgYmFja2dyb3VuZC1jb2xvcjogIzMzMzsNCiAgbWFyZ2luOiAxMHB4Ow0KICBmbG9hdDogcmlnaHQ7DQogIGJvcmRlci1yYWRpdXM6IDNweDsNCg0KfQ0KDQojbXlTdHJlYW1zIHsNCiAgcG9zaXRpb246IGZpeGVkOw0KICBib3R0b206IDBweDsNCiAgYmFja2dyb3VuZC1jb2xvcjogIzExMTsNCiAgd2lkdGg6IDEwMCU7DQogIG1heC13aWR0aDogOTUwcHg7DQoNCiAgLyoNCiAgbWF4LWhlaWdodDogMTAwcHg7DQogICovDQogIG1hcmdpbi1ib3R0b206IDBweDsNCn0NCg0KI215U3RyZWFtcyBpbWcgew0KICB3aWR0aDogNCU7DQogIHBhZGRpbmc6IDJweCA1cHg7DQogIGN1cnNvcjogcG9pbnRlcjsNCiAgZmxvYXQ6IHJpZ2h0Ow0KfQ0KDQojc2V0dGluZ3MtZm9vdGVyIHsNCg0KfQ0KDQoNCi8qIFdpemFyZCovDQojYm94IHsNCiAgYmFja2dyb3VuZC1jb2xvcjogIzQ0NDsNCiAgbWluLWhlaWdodDogNDAwcHg7DQogIA0KICBkaXNwbGF5OiBmbGV4Ow0KICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOw0KICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47DQp9DQoNCiNib3ggcHsNCiAgcGFkZGluZzogMTBweCAwcHg7DQp9DQoNCiNib3gtZm9vdGVyIHsNCiAgbWFyZ2luLXRvcDogYXV0bzsNCn0NCg0KI2JveC1mb290ZXIgew0KICBtYXJnaW46IGF1dG87DQogIHBhZGRpbmc6IDEwcHg7DQp9DQoNCiNoZWFkbGluZSB7DQogIGJhY2tncm91bmQtY29sb3I6ICMyMjI7DQogIGJvcmRlci1ib3R0b206IHNvbGlkIDJweCAjMjIyOw0KICB0cmFuc2l0aW9uOiBhbGwgMC41czsNCiAgcGFkZGluZzogMTBweCAwcHg7DQogIGRpc3BsYXk6IGJsb2NrOw0KfQ0KDQojY29udGVudCB7DQogIGRpc3BsYXk6IGJsb2NrOw0KICBvdmVyZmxvdzogYXV0bzsNCiAgcGFkZGluZzogMTBweDsNCn0NCg0KLyogLS0tICovDQoNCg0KI2NsaWVudEluZm8sICNhY3RpdmVTdHJlYW1zLCAjaW5hY3RpdmVTdHJlYW1zIHsNCiAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZTsNCiAgZGlzcGxheTogYmxvY2s7DQogIGZvbnQtc2l6ZTogOXB4Ow0KICBiYWNrZ3JvdW5kLWNvbG9yOiAjMTExOw0KICBjb2xvcjogIzAwRTZGRjsNCiAgYm9yZGVyLWJvdHRvbTogc29saWQgMHB4OzsNCiAgcGFkZGluZzogMHB4Ow0KICBsZXR0ZXItc3BhY2luZzogMXB4Ow0KICBvdmVyZmxvdy14OiBoaWRkZW47DQogIGJvcmRlci1zcGFjaW5nOiA0cHggNHB4Ow0KICBib3JkZXItYm90dG9tOiBzb2xpZCAxcHggIzQ0NDsNCn0NCg0KI215U3RyZWFtc0JveCB7DQogIHBvc2l0aW9uOiByZWxhdGl2ZTsNCiAgcGFkZGluZzogMHB4Ow0KICAvKmhlaWdodDogMTAwcHg7Ki8NCiAgbWF4LWhlaWdodDogMTUwcHg7DQogIGJhY2tncm91bmQtY29sb3I6ICMxMTE7DQogIGNvbG9yOiB3aGl0ZTsNCiAgZGlzcGxheTpmbGV4Ow0KICBqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyOw0KICBhbGlnbi1pdGVtczpjZW50ZXI7DQp9DQoNCiNvcGVuU3RyZWFtcyB7DQogIHdpZHRoOiAyMHB4Ow0KICBoZWlnaHQ6IDIwcHg7DQogIGN1cnNvcjogcG9pbnRlcjsNCiAgZmxvYXQ6IHJpZ2h0Ow0KICBwb3NpdGlvbjogYWJzb2x1dGU7DQogIHJpZ2h0OiAwcHg7DQogIGJvdHRvbTogMHB4Ow0KICBiYWNrZ3JvdW5kOiB1cmwoIi4uL2ltZy90b3VjaC5wbmciKTsNCiAgYmFja2dyb3VuZC1jb2xvcjogIzExMTsNCiAgDQogIGJhY2tncm91bmQtcG9zaXRpb246IGJvdHRvbSByaWdodDsgIA0KfQ0KDQojYWxsU3RyZWFtcyB7DQogIHdpZHRoOiAxMDAlOw0KICBoZWlnaHQ6IDEwMCU7DQogIHBhZGRpbmc6IDJweDsgICAgIA0KfQ0KDQojYWN0aXZlU3RyZWFtcywgI2luYWN0aXZlU3RyZWFtcyB7DQogIG92ZXJmbG93LXk6IHNjcm9sbDsNCiAgd2lkdGg6IDUwJTsNCiAgbWF4LWhlaWdodDogMTAwcHg7DQogIGZsb2F0OiBsZWZ0Ow0KfQ0KDQojYWN0aXZlU3RyZWFtcyAudGRLZXksICNpbmFjdGl2ZVN0cmVhbXMgLnRkS2V5IHsNCiAgd2lkdGg6IDc1cHg7DQp9DQoNCg0KDQoNCiNpbmFjdGl2ZVN0cmVhbXMgLnRkS2V5IHsNCiAgY29sb3I6IHJlZDsNCn0NCg0KI2NsaWVudEluZm8gLnRkVmFsLCAjbG9nSW5mbyAudGRWYWwsICNhY3RpdmVTdHJlYW1zIC50ZFZhbCwgI2luYWN0aXZlU3RyZWFtcyAudGRWYWwsICNtYXBwaW5nSW5mbyAudGRWYWx7DQogIGNvbG9yOiAjYWFhOw0KICB3aGl0ZS1zcGFjZTogaW5oZXJpdDsNCn0NCg0KI2JveC13cmFwcGVyIHsNCiAgZGlzcGxheTogaW5saW5lLWJsb2NrOw0KICB3aWR0aDogMTAwJTsNCiAgDQogIG92ZXJmbG93LXk6IHNjcm9sbDsNCn0NCg0KI2NvbnRlbnRfdGFibGUsICNtYXBwaW5nLWRldGFpbC10YWJsZSwgI2NvbnRlbnRfdGFibGUgew0KICBkaXNwbGF5OiB0YWJsZTsNCiAgDQogIGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7DQogIG92ZXJmbG93LXk6IHNjcm9sbDsNCiAgd2lkdGg6IDEwMCU7DQp9DQoNCg0KI2NvbnRlbnRfdGFibGUgLmNvbnRlbnRfdGFibGVfaGVhZGVyIHsNCiAgYmFja2dyb3VuZC1jb2xvcjogIzMzMzsNCiAgaGVpZ2h0OiA1MHB4Ow0KICBib3JkZXItYm90dG9tOiBzb2xpZCAxcHggIzExMTsNCiAgYm9yZGVyLWxlZnQ6IHNvbGlkIDNweCAjMzMzOw0KICBjdXJzb3I6IGF1dG87DQoNCn0NCg0KDQp0Ym9keSB7DQogIHdpZHRoOiAxMDAlOw0KfQ0KDQoNCi50YWJsZUVsbGlwc2lzIHsNCiAgd2lkdGg6IDE1MHB4Ow0KICBvdmVyZmxvdzogaGlkZGVuOw0KICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsNCiAgd2hpdGUtc3BhY2U6IG5vd3JhcDsNCn0NCg0KI2NvbnRlbnRfdGFibGUgaW1nIHsNCiAgZGlzcGxheTogYmxvY2s7DQogIG1heC1oZWlnaHQ6IDI4cHg7DQogIG1hcmdpbi1sZWZ0OiBhdXRvOw0KICBtYXJnaW4tcmlnaHQ6IGF1dG87DQogIG1heC13aWR0aDogMzBweDsNCn0NCg0KI2NvbnRlbnRfdGFibGUgdHJ7DQogIGJvcmRlci1sZWZ0OiBzb2xpZCAzcHggNDQ0Ow0KICBib3JkZXItYm90dG9tOiBzb2xpZCAxcHggIzMzMzsNCiAgY3Vyc29yOiBwb2ludGVyOw0KfQ0KDQojY29udGVudF90YWJsZSB0cjpob3ZlciB7DQogIGJhY2tncm91bmQtY29sb3I6ICMzMzM7DQp9DQoNCiNjb250ZW50X3RhYmxlIHRkIHsNCg0KICBwYWRkaW5nOiAwcHggMnB4Ow0KfQ0KDQojY29udGVudF90YWJsZSBpbnB1dFt0eXBlPXRleHRdew0KICB3aWR0aDogODAlOw0KICBtaW4td2lkdGg6IDM1cHg7DQogIG1heC13aWR0aDogNjBweDsNCiAgYm9yZGVyOiAwcHg7DQogIGJhY2tncm91bmQtY29sb3I6ICMzMzM7DQogIG1hcmdpbi1sZWZ0OiA1cHg7DQogIHRleHQtYWxpZ246IGxlZnQ7DQp9DQoNCiNjb250ZW50X3RhYmxlIGlucHV0W3R5cGU9Y2hlY2tib3hdew0KICBtYXgtd2lkdGg6IDI1cHg7DQogIG1hcmdpbjogYXV0bzsNCn0NCg0KDQouc2hvd0J1bGsgew0KICBkaXNwbGF5OiBibG9jazsNCn0NCg0KLmhpZGVCdWxrIHsNCiAgZGlzcGxheTogbm9uZTsNCn0NCg0KLm5vQnVsayB7DQoNCn0NCg0KI2NvbnRlbnRfdGFibGUgdHIuYWN0aXZlRVBHew0KICBib3JkZXItbGVmdDogc29saWQgM3B4IGxhd25ncmVlbjsNCn0NCg0KI2NvbnRlbnRfdGFibGUgdHIubm90QWN0aXZlRVBHew0KICBib3JkZXItbGVmdDogc29saWQgM3B4IHJlZDsNCn0NCg0KDQojbG9nU2NyZWVuIHB7DQogIHdoaXRlLXNwYWNlOiBwcmU7DQogIGZvbnQtc2l6ZTogMTBweDsNCiAgLyoNCiAgbGluZS1oZWlnaHQ6IDEuNmVtOw0KICBmb250LWZhbWlseTogIkFyaWFsIiwgc2Fucy1zZXJpZjsNCiAgKi8NCiAgbGV0dGVyLXNwYWNpbmc6IDFweDsNCiAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZTsgDQogIGZvbnQtc2l6ZTogMTJweDsgDQogIGZvbnQtc3R5bGU6IG5vcm1hbDsgDQogIGZvbnQtdmFyaWFudDogbm9ybWFsOyANCiAgbGluZS1oZWlnaHQ6IDEuNmVtOyANCn0NCg0KI3BvcHVwIHsNCiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjQpOw0KICBwb3NpdGlvbjogZml4ZWQ7DQogIGxlZnQ6IDBweDsNCiAgd2lkdGg6IDEwMCU7DQogIHotaW5kZXg6IDEwMDsNCiAgaGVpZ2h0OiAxMDAlOw0KfQ0KDQojbWFwcGluZy1kZXRhaWwsICN1c2VyLWRldGFpbCwgI2ZpbGUtZGV0YWlsLCAjcG9wdXAtY3VzdG9tIHsNCiAgYm94LXNoYWRvdzogMHB4IDVweCA0MHB4ICMwMDA7DQogIG1hcmdpbi10b3A6IDIwcHg7DQogIG1hcmdpbi1sZWZ0OiBhdXRvOw0KICBtYXJnaW4tcmlnaHQ6IGF1dG87DQogIA0KICBtYXgtd2lkdGg6IDYwMHB4Ow0KICBiYWNrZ3JvdW5kLWNvbG9yOiAjMjIyOw0KICBwYWRkaW5nOiAxMHB4Ow0KICBvdmVyZmxvdzphdXRvOw0KfQ0KDQojcG9wdXAtY3VzdG9tIGgzIHsNCiAgdGV4dC1hbGlnbjogY2VudGVyOw0KfQ0KDQojZmlsZS1kZXRhaWwgaW5wdXRbdHlwZT10ZXh0XSB7DQogIHdpZHRoOiAtd2Via2l0LWNhbGMoMTAwJSAtIDIwcHgpOw0KICB3aWR0aDogLW1vei1jYWxjKDEwMCUgLSAyMHB4KTsNCiAgd2lkdGg6IGNhbGMoMTAwJSAtIDIwcHgpOw0KfQ0KDQojbWFwcGluZy1kZXRhaWwgaW1nIHsNCiAgZGlzcGxheTogYmxvY2s7DQogIG1heC1oZWlnaHQ6IDMwcHg7DQogIG1hcmdpbi1ib3R0b206IDIwcHg7DQogIG1hcmdpbi1sZWZ0OiBhdXRvOw0KICBtYXJnaW4tcmlnaHQ6IGF1dG87DQp9DQoNCiNwb3B1cC1jdXN0b20gaW5wdXRbdHlwZT10ZXh0XSwgI3BvcHVwLWN1c3RvbSBpbnB1dFt0eXBlPXBhc3N3b3JkXSwgI21hcHBpbmctZGV0YWlsIGlucHV0W3R5cGU9dGV4dF0sICNjb250ZW50X3NldHRpbmdzIGlucHV0W3R5cGU9dGV4dF0sICNjb250ZW50X3NldHRpbmdzIGlucHV0W3R5cGU9cGFzc3dvcmRdew0KICBib3JkZXI6IHNvbGlkIDFweDsNCiAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDsNCiAgYmFja2dyb3VuZC1jb2xvcjogIzMzMzsNCiAgdGV4dC1hbGlnbjogbGVmdDsNCiAgd2lkdGg6IC13ZWJraXQtY2FsYygxMDAlIC0gMjBweCk7DQogIHdpZHRoOiAgICAtbW96LWNhbGMoMTAwJSAtIDIwcHgpOw0KICB3aWR0aDogICAgICAgICBjYWxjKDEwMCUgLSAyMHB4KTsNCn0NCg0KI3BvcHVwLWN1c3RvbSBpbnB1dFt0eXBlPXRleHRdLm5vdEF2YWlsYWJsZSB7DQogIGJvcmRlci1jb2xvcjogcmVkOw0KICBjb2xvcjogIzY2NjsNCiAgY3Vyc29yOiBub3QtYWxsb3dlZDsNCn0NCg0KI21hcHBpbmctZGV0YWlsLXRhYmxlLCAjdXNlci1kZXRhaWwtdGFibGUgew0KICBkaXNwbGF5OiBpbmxpbmUtdGFibGU7DQogIHdpZHRoOiAxMDAlOw0KfQ0KDQojcG9wdXAtY3VzdG9tIHRhYmxlLCAjY29udGVudF9zZXR0aW5ncyB0YWJsZSB7DQogIGRpc3BsYXk6IGlubGluZS10YWJsZTsNCiAgdGFibGUtbGF5b3V0OiBmaXhlZDsNCiAgd2lkdGg6IDEwMCU7DQp9DQoNCg0KI21hcHBpbmctZGV0YWlsLXRhYmxlIHRkLCAjdXNlci1kZXRhaWwtdGFibGUgdGQgew0KICBwYWRkaW5nOiAxMHB4IDBweDsNCg0KfQ0KDQojbWFwcGluZy1kZXRhaWwtdGFibGUgdGQubGVmdCwgI3VzZXItZGV0YWlsLXRhYmxlIHRkLmxlZnQsICNwb3B1cC1jdXN0b20gdGQubGVmdCB7DQogIHdpZHRoOiAzOCU7DQp9DQoNCi5pbnRlcmFjdGlvbiwgI2ludGVyYWN0aW9uIHsNCiAgbWFyZ2luLXRvcDogMjBweDsNCiAgZGlzcGxheTogaW5saW5lLWZsZXg7DQogIGZsb2F0OiByaWdodDsNCn0NCg0KLmludGVyYWN0aW9uIGlucHV0W3R5cGU9YnV0dG9uXSwgLmludGVyYWN0aW9uIGlucHV0W3R5cGU9c3VibWl0XSB7DQogIGJhY2tncm91bmQtY29sb3I6ICMwMDA7DQogIG1pbi13aWR0aDogMTAwcHg7DQogIG1hcmdpbjogMHB4IDEwcHg7DQogIHRleHQtYWxpZ246IGNlbnRlcjsNCn0NCg0KI25vdGlmaWNhdGlvbiB7DQogIGRpc3BsYXk6IGJsb2NrOw0KICBwb3NpdGlvbjogZml4ZWQ7DQogIHJpZ2h0OiAwcHg7DQogIGhlaWdodDogMTAwJTsNCiAgd2lkdGg6IDI1MHB4Ow0KICANCiAgYmFja2dyb3VuZC1jb2xvcjogIzIyMjsNCiAgYm94LXNoYWRvdzogMHB4IDBweCAyMHB4ICMwMDA7DQp9DQoNCiNub3RpZmljYXRpb24gaDUgew0KICBiYWNrZ3JvdW5kLWNvbG9yOiAjMTIxMjEyOw0KICBwYWRkaW5nOiA1cHggMTBweCA1cHggMTBweDsNCn0NCg0KI25vdGlmaWNhdGlvbiBwcmUgew0KICBwYWRkaW5nOiAwcHggMTBweCAwcHggMTBweDsNCn0NCg0KI25vdGlmaWNhdGlvbiBwIHsNCiAgZm9udC1zaXplOiAxMCBweDsNCiAgbWFyZ2luOiAwcHg7DQogIHBhZGRpbmc6IDBweCAxMHB4IDVweCAxMHB4Ow0KfQ0KDQojbm90aWZpY2F0aW9uIC5lbGVtZW50IHsNCiAgLypwYWRkaW5nOiAwcHggNXB4OyovDQogIG1hcmdpbjogNXB4IDVweDsNCiAgYm9yZGVyLXJhZGl1czogNXB4Ow0KICBiYWNrZ3JvdW5kLWNvbG9yOiAjMTgxODE4Ow0KICBib3JkZXItbGVmdDogMTBweCBzb2xpZCBncmVlbjsNCn0NCg0KDQpAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDYyMHB4KXsNCiAgYm9keSB7DQogICAgd2lkdGg6IDEwMCU7DQogICAgYmFja2dyb3VuZC1jb2xvcjogIzQ0NDsNCiAgfQ0KDQogIGgxIHsNCiAgICBmb250LXNpemU6IDI2cHg7DQogICAgbGV0dGVyLXNwYWNpbmc6IDNweDsNCiAgfQ0KDQogIG5hdiBwIHsNCiAgICBkaXNwbGF5OiBibG9jazsNCiAgfQ0KDQoNCg0KICAjaGVhZGVyX2NvbmZpZyB7DQogICAgZGlzcGxheTogYmxvY2s7DQogICAgaGVpZ2h0OiAxMDBweDsNCiAgICBiYWNrZ3JvdW5kOiB1cmwoIi4uL2ltZy9sb2dvX3dfNjAweDIwMC5wbmciKTsNCiAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0Ow0KICAgIA0KICAgIGJhY2tncm91bmQtc2l6ZTogMzAwcHggMTAwcHg7DQogIH0NCg0KICAjc2NyZWVuTG9nIHsNCiAgICBtYXJnaW4tbGVmdDogMzAwcHg7DQoNCiAgICB0cmFuc2l0aW9uOiBub25lOw0KICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50Ow0KICAgIGJvcmRlci1ib3R0b206IHNvbGlkIDFweCB0cmFuc3BhcmVudDsNCiAgICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAjMjIyOw0KICB9DQoNCiAgI3NldHRpbmdzIHsNCiAgICAvKg0KICAgIGhlaWdodDogLXdlYmtpdC1jYWxjKDEwMCUgLSAxMDBweCk7DQogICAgaGVpZ2h0OiAtbW96LWNhbGMoMTAwJSAtIDEwMHB4KTsNCiAgICBoZWlnaHQ6IGNhbGMoMTAwJSAtIDEwMHB4KTsNCiAgICAqLw0KICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsNCiAgICBvdmVyZmxvdzogYXV0bzsNCiAgfQ0KDQoNCiAgLnNjcmVlbkxvZ0hpZGRlbiB7DQogICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMHB4LCAwcHgpOw0KICB9DQoNCg0KICAjYm94IHsNCiAgICBkaXNwbGF5OiBibG9jazsNCiAgICBtaW4taGVpZ2h0OiA1MDBweDsNCiAgICBtYXgtd2lkdGg6IDUwMHB4Ow0KICAgIG1hcmdpbjogMTBweCBhdXRvOw0KICAgIGJhY2tncm91bmQtY29sb3I6ICM0NDQ7DQogICAgYm94LXNoYWRvdzogMHB4IDVweCA1cHggIzIyMjsNCg0KICAgIGRpc3BsYXk6IGZsZXg7DQogICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsNCiAgfQ0KDQogICNzZXR0aW5ncywgI3NldHRpbmdzLWZvb3RlciB7DQogICAgDQogIH0NCn0NCg==" - webUI["html/img/filter.png"] = "iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAAAXNSR0IArs4c6QAAAAlwSFlzAAAsSwAALEsBpT2WqQAABCRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IlhNUCBDb3JlIDUuNC4wIj4KICAgPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIgogICAgICAgICAgICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgICAgICAgICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyI+CiAgICAgICAgIDx0aWZmOlJlc29sdXRpb25Vbml0PjI8L3RpZmY6UmVzb2x1dGlvblVuaXQ+CiAgICAgICAgIDx0aWZmOkNvbXByZXNzaW9uPjU8L3RpZmY6Q29tcHJlc3Npb24+CiAgICAgICAgIDx0aWZmOlhSZXNvbHV0aW9uPjI4ODwvdGlmZjpYUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6T3JpZW50YXRpb24+MTwvdGlmZjpPcmllbnRhdGlvbj4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+Mjg4PC90aWZmOllSZXNvbHV0aW9uPgogICAgICAgICA8ZXhpZjpQaXhlbFhEaW1lbnNpb24+NTA8L2V4aWY6UGl4ZWxYRGltZW5zaW9uPgogICAgICAgICA8ZXhpZjpDb2xvclNwYWNlPjE8L2V4aWY6Q29sb3JTcGFjZT4KICAgICAgICAgPGV4aWY6UGl4ZWxZRGltZW5zaW9uPjUwPC9leGlmOlBpeGVsWURpbWVuc2lvbj4KICAgICAgICAgPGRjOnN1YmplY3Q+CiAgICAgICAgICAgIDxyZGY6QmFnLz4KICAgICAgICAgPC9kYzpzdWJqZWN0PgogICAgICAgICA8eG1wOk1vZGlmeURhdGU+MjAxOC0wNy0yOFQxOTowNzo2OTwveG1wOk1vZGlmeURhdGU+CiAgICAgICAgIDx4bXA6Q3JlYXRvclRvb2w+UGl4ZWxtYXRvciAzLjM8L3htcDpDcmVhdG9yVG9vbD4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgIDwvcmRmOlJERj4KPC94OnhtcG1ldGE+Cs038OQAAAOISURBVGgF5ZpLSBVRGMfvvfmqCKKiKCqKtE3SQ8haJJm1ctPCZYHrFhXtohcUBLVsU1BRBJKLXpsSKs1aCL1oUUhvMgIloodZKmLZ72+OzNVx7jzOXGfqg/89Z875zv/7f35n7px7vanUP2JptzyGhoYKmK8GW0EZmA/mgW7wHrwDN0BTOp0epPVtxBBnLdgIVoE5YBboBR2gDTTA/5DWn0FeDPaBz8CLdeF0EBR5jYRvKbgABoAXa8Opwit/CudK8NoLs4PPM8ZyBsNnB/jpsD7X0C8cjgDXnaQkqkEPCGMSuGWivxxzx8OQj6xtpHWuPhPloHfEMWzTD0HN2GQY2xuW2Lb+/Fh+VaIQPLE5meh+gmSxFYz+BjBogtjGscfiH26Z2GmbNNltVQAIpwDdP6ZNO2iRYqTpZGhfgWUaiMC2w1kCzkbALcqLvDVvUyK6MW9HFES0b8BvsFwXEZi4F+iBtykCcjtlqf0igr52VJ1eqiIgzzdlrRIZfWfJd3SD8ZbqHvkB4XSDpJNB9V0VcX/cT4Ys/zEzSuSj/3WxW9GpRD7ETpZ/QcOJ6LyfdHugitxNehbob9G7lo4PXWBmQhPqQ/fsDOeUfjqNCU1Csi+TQ5+2luzc3yaRr6elevQZwhZr4bomYam0U41yabYqov5hvSTMjlp6RyuiAarSTLPZmox5246+lVREx/isiuh6NxhUJwF2yEpCWu1bK8WEsjyRgCSa0XrVrjNra2mC7TWD5ilYAuJoA4jSlnppF5dVEU3g0ENTD4b3nsZiZsfGJuGqj8qY+CINGqP2GLZCJ+HjtpblxAJ9k3cPrLfGJrnVUaSCarxw0jFua1lOLNBerANx+byya6IkLM2uLZWpAl6/Mcc1EjvjKtLrJNLqI5HnjfQ+bsVeteb0g2y/t7hGvd7CNjenOL8OkJ40KtOdTF+Cl/nV6Mkf4gxocI9vZPYLLKs9iQrqRIACcM2IXGeSboYrg+rztY5ARaDJWUeo0W+sXudLTFhnApaAW6FkZy/+yuXasLoCrSfwVHAnW0+gK93YawKJMLUIAdNAKwhqnSxcYUpPKB6EBE2mg7VR///EX24jybTQerXnOC70FyVP3gjTPXPTQyaP8NFPNeJrCNTPP667JKOq6VNo/A2hes5ccUjmEmPmDoD5+FMgWCcA+3FG57QJP//kQ1PgGBIOToEDgUn+t4V/AJeGknwARIKLAAAAAElFTkSuQmCC" - webUI["html/js/menu_ts.js"] = "Y2xhc3MgTWFpbk1lbnUgew0KICAgIGNvbnN0cnVjdG9yKCkgew0KICAgICAgICB0aGlzLkRvY3VtZW50SUQgPSAibWFpbi1tZW51IjsNCiAgICAgICAgdGhpcy5IVE1MVGFnID0gIkxJIjsNCiAgICAgICAgdGhpcy5JbWFnZVBhdGggPSAiaW1nLyI7DQogICAgfQ0KICAgIGNyZWF0ZUlNRyhzcmMpIHsNCiAgICAgICAgbGV0IGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJJTUciKTsNCiAgICAgICAgZWxlbWVudC5zZXRBdHRyaWJ1dGUoInNyYyIsIHRoaXMuSW1hZ2VQYXRoICsgc3JjKTsNCiAgICAgICAgcmV0dXJuIGVsZW1lbnQ7DQogICAgfQ0KICAgIGNyZWF0ZVZhbHVlKHZhbHVlKSB7DQogICAgICAgIGxldCBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiUCIpOw0KICAgICAgICBlbGVtZW50LmlubmVySFRNTCA9IHZhbHVlOw0KICAgICAgICByZXR1cm4gZWxlbWVudDsNCiAgICB9DQp9DQpjbGFzcyBNYWluTWVudUl0ZW0gZXh0ZW5kcyBNYWluTWVudSB7DQogICAgY29uc3RydWN0b3IobWVudUtleSwgdmFsdWUsIGltYWdlLCBoZWFkbGluZSkgew0KICAgICAgICBzdXBlcigpOw0KICAgICAgICB0aGlzLm1lbnVLZXkgPSBtZW51S2V5Ow0KICAgICAgICB0aGlzLnZhbHVlID0gdmFsdWU7DQogICAgICAgIHRoaXMuaW1nU3JjID0gaW1hZ2U7DQogICAgICAgIHRoaXMuaGVhZGxpbmUgPSBoZWFkbGluZTsNCiAgICB9DQogICAgY3JlYXRlSXRlbSgpIHsNCiAgICAgICAgbGV0IGl0ZW0gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJMSSIpOw0KICAgICAgICBpdGVtLnNldEF0dHJpYnV0ZSgib25jbGljayIsICJqYXZhc2NyaXB0OiBvcGVuVGhpc01lbnUodGhpcykiKTsNCiAgICAgICAgaXRlbS5zZXRBdHRyaWJ1dGUoImlkIiwgdGhpcy5pZCk7DQogICAgICAgIGxldCBpbWcgPSB0aGlzLmNyZWF0ZUlNRyh0aGlzLmltZ1NyYyk7DQogICAgICAgIGxldCB2YWx1ZSA9IHRoaXMuY3JlYXRlVmFsdWUodGhpcy52YWx1ZSk7DQogICAgICAgIGl0ZW0uYXBwZW5kQ2hpbGQoaW1nKTsNCiAgICAgICAgaXRlbS5hcHBlbmRDaGlsZCh2YWx1ZSk7DQogICAgICAgIGxldCBkb2MgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCh0aGlzLkRvY3VtZW50SUQpOw0KICAgICAgICBkb2MuYXBwZW5kQ2hpbGQoaXRlbSk7DQogICAgICAgIHN3aXRjaCAodGhpcy5tZW51S2V5KSB7DQogICAgICAgICAgICBjYXNlICJwbGF5bGlzdCI6DQogICAgICAgICAgICAgICAgdGhpcy50YWJsZUhlYWRlciA9IFsie3sucGxheWxpc3QudGFibGUucGxheWxpc3R9fSIsICJ7ey5wbGF5bGlzdC50YWJsZS50dW5lcn19IiwgInt7LnBsYXlsaXN0LnRhYmxlLmxhc3RVcGRhdGV9fSIsICJ7ey5wbGF5bGlzdC50YWJsZS5hdmFpbGFiaWxpdHl9fSAlIiwgInt7LnBsYXlsaXN0LnRhYmxlLnR5cGV9fSIsICJ7ey5wbGF5bGlzdC50YWJsZS5zdHJlYW1zfX0iLCAie3sucGxheWxpc3QudGFibGUuZ3JvdXBUaXRsZX19ICUiLCAie3sucGxheWxpc3QudGFibGUudHZnSUR9fSAlIiwgInt7LnBsYXlsaXN0LnRhYmxlLnVuaXF1ZUlEfX0gJSJdOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAieG1sdHYiOg0KICAgICAgICAgICAgICAgIHRoaXMudGFibGVIZWFkZXIgPSBbInt7LnhtbHR2LnRhYmxlLmd1aWRlfX0iLCAie3sueG1sdHYudGFibGUubGFzdFVwZGF0ZX19IiwgInt7LnhtbHR2LnRhYmxlLmF2YWlsYWJpbGl0eX19ICUiLCAie3sueG1sdHYudGFibGUuY2hhbm5lbHN9fSIsICJ7ey54bWx0di50YWJsZS5wcm9ncmFtc319Il07DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJmaWx0ZXIiOg0KICAgICAgICAgICAgICAgIHRoaXMudGFibGVIZWFkZXIgPSBbInt7LmZpbHRlci50YWJsZS5uYW1lfX0iLCAie3suZmlsdGVyLnRhYmxlLnR5cGV9fSIsICJ7ey5maWx0ZXIudGFibGUuZmlsdGVyfX0iXTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInVzZXJzIjoNCiAgICAgICAgICAgICAgICB0aGlzLnRhYmxlSGVhZGVyID0gWyJ7ey51c2Vycy50YWJsZS51c2VybmFtZX19IiwgInt7LnVzZXJzLnRhYmxlLnBhc3N3b3JkfX0iLCAie3sudXNlcnMudGFibGUud2VifX0iLCAie3sudXNlcnMudGFibGUucG1zfX0iLCAie3sudXNlcnMudGFibGUubTN1fX0iLCAie3sudXNlcnMudGFibGUueG1sfX0iLCAie3sudXNlcnMudGFibGUuYXBpfX0iXTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgIm1hcHBpbmciOg0KICAgICAgICAgICAgICAgIHRoaXMudGFibGVIZWFkZXIgPSBbIkJVTEsiLCAie3subWFwcGluZy50YWJsZS5jaE5vfX0iLCAie3subWFwcGluZy50YWJsZS5sb2dvfX0iLCAie3subWFwcGluZy50YWJsZS5jaGFubmVsTmFtZX19IiwgInt7Lm1hcHBpbmcudGFibGUucGxheWxpc3R9fSIsICJ7ey5tYXBwaW5nLnRhYmxlLmdyb3VwVGl0bGV9fSIsICJ7ey5tYXBwaW5nLnRhYmxlLnhtbHR2RmlsZX19IiwgInt7Lm1hcHBpbmcudGFibGUueG1sdHZJRH19IiwgInt7Lm1hcHBpbmcudGFibGUudGltZXNoaWZ0fX0iXTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgfQ0KICAgICAgICAvL2NvbnNvbGUubG9nKHRoaXMubWVudUtleSwgdGhpcy50YWJsZUhlYWRlcik7DQogICAgfQ0KfQ0KY2xhc3MgQ29udGVudCB7DQogICAgY29uc3RydWN0b3IoKSB7DQogICAgICAgIHRoaXMuRG9jdW1lbnRJRCA9ICJjb250ZW50IjsNCiAgICAgICAgdGhpcy5UYWJsZUlEID0gImNvbnRlbnRfdGFibGUiOw0KICAgICAgICB0aGlzLmhlYWRlckNsYXNzID0gImNvbnRlbnRfdGFibGVfaGVhZGVyIjsNCiAgICAgICAgdGhpcy5pbnRlcmFjdGlvbklEID0gImNvbnRlbnQtaW50ZXJhY3Rpb24iOw0KICAgIH0NCiAgICBjcmVhdGVIZWFkbGluZSh2YWx1ZSkgew0KICAgICAgICBsZXQgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIkgzIik7DQogICAgICAgIGVsZW1lbnQuaW5uZXJIVE1MID0gdmFsdWU7DQogICAgICAgIHJldHVybiBlbGVtZW50Ow0KICAgIH0NCiAgICBjcmVhdGVIUigpIHsNCiAgICAgICAgcmV0dXJuIGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIkhSIik7DQogICAgfQ0KICAgIGNyZWF0ZUludGVyYWN0aW9uKCkgew0KICAgICAgICBsZXQgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIkRJViIpOw0KICAgICAgICBlbGVtZW50LnNldEF0dHJpYnV0ZSgiaWQiLCB0aGlzLmludGVyYWN0aW9uSUQpOw0KICAgICAgICByZXR1cm4gZWxlbWVudDsNCiAgICB9DQogICAgY3JlYXRlRElWKCkgew0KICAgICAgICBsZXQgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIkRJViIpOw0KICAgICAgICBlbGVtZW50LmlkID0gdGhpcy5EaXZJRDsNCiAgICAgICAgcmV0dXJuIGVsZW1lbnQ7DQogICAgfQ0KICAgIGNyZWF0ZVRBQkxFKCkgew0KICAgICAgICBsZXQgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlRBQkxFIik7DQogICAgICAgIGVsZW1lbnQuaWQgPSB0aGlzLlRhYmxlSUQ7DQogICAgICAgIHJldHVybiBlbGVtZW50Ow0KICAgIH0NCiAgICBjcmVhdGVUYWJsZVJvdygpIHsNCiAgICAgICAgbGV0IGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJUUiIpOw0KICAgICAgICBlbGVtZW50LmNsYXNzTmFtZSA9IHRoaXMuaGVhZGVyQ2xhc3M7DQogICAgICAgIHJldHVybiBlbGVtZW50Ow0KICAgIH0NCiAgICBjcmVhdGVUYWJsZUNvbnRlbnQobWVudUtleSkgew0KICAgICAgICBsZXQgZGF0YSA9IHt9Ow0KICAgICAgICBsZXQgcm93cyA9IFtdOw0KICAgICAgICBsZXQgZmlsZVR5cGVzID0gW107DQogICAgICAgIHN3aXRjaCAobWVudUtleSkgew0KICAgICAgICAgICAgY2FzZSAicGxheWxpc3QiOg0KICAgICAgICAgICAgICAgIGZpbGVUeXBlcyA9IFsibTN1IiwgImhkaHIiXTsNCiAgICAgICAgICAgICAgICBmaWxlVHlwZXMuZm9yRWFjaChmaWxlVHlwZSA9PiB7DQogICAgICAgICAgICAgICAgICAgIGRhdGEgPSBTRVJWRVJbInNldHRpbmdzIl1bImZpbGVzIl1bZmlsZVR5cGVdOw0KICAgICAgICAgICAgICAgICAgICB2YXIga2V5cyA9IGdldE9iaktleXMoZGF0YSk7DQogICAgICAgICAgICAgICAgICAgIGtleXMuZm9yRWFjaChrZXkgPT4gew0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVFIiKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmlkID0ga2V5Ow0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgiJyArIGZpbGVUeXBlICsgJyIsIHRoaXMpJyk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsibmFtZSJdOw0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChTRVJWRVJbInNldHRpbmdzIl1bImJ1ZmZlciJdICE9ICItIikgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bInR1bmVyIl07DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gIi0iOw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bImxhc3QudXBkYXRlIl07DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsicHJvdmlkZXIuYXZhaWxhYmlsaXR5Il07DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsidHlwZSJdLnRvVXBwZXJDYXNlKCk7DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsiY29tcGF0aWJpbGl0eSJdWyJzdHJlYW1zIl07DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsiY29tcGF0aWJpbGl0eSJdWyJncm91cC50aXRsZSJdOw0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bImNvbXBhdGliaWxpdHkiXVsidHZnLmlkIl07DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsiY29tcGF0aWJpbGl0eSJdWyJzdHJlYW0uaWQiXTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHJvd3MucHVzaCh0cik7DQogICAgICAgICAgICAgICAgICAgIH0pOw0KICAgICAgICAgICAgICAgIH0pOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiZmlsdGVyIjoNCiAgICAgICAgICAgICAgICBkZWxldGUgU0VSVkVSWyJzZXR0aW5ncyJdWyJmaWx0ZXIiXVstMV07DQogICAgICAgICAgICAgICAgZGF0YSA9IFNFUlZFUlsic2V0dGluZ3MiXVsiZmlsdGVyIl07DQogICAgICAgICAgICAgICAgdmFyIGtleXMgPSBnZXRPYmpLZXlzKGRhdGEpOw0KICAgICAgICAgICAgICAgIGtleXMuZm9yRWFjaChrZXkgPT4gew0KICAgICAgICAgICAgICAgICAgICB2YXIgdHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJUUiIpOw0KICAgICAgICAgICAgICAgICAgICB0ci5pZCA9IGtleTsNCiAgICAgICAgICAgICAgICAgICAgdHIuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgiJyArIGRhdGFba2V5XVsidHlwZSJdICsgJyIsIHRoaXMpJyk7DQogICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJuYW1lIl07DQogICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgIHN3aXRjaCAoZGF0YVtrZXldWyJ0eXBlIl0pIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgImN1c3RvbS1maWx0ZXIiOg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSAie3suZmlsdGVyLmN1c3RvbX19IjsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgImdyb3VwLXRpdGxlIjoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gInt7LmZpbHRlci5ncm91cH19IjsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsiZmlsdGVyIl07DQogICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgcm93cy5wdXNoKHRyKTsNCiAgICAgICAgICAgICAgICB9KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInhtbHR2IjoNCiAgICAgICAgICAgICAgICBmaWxlVHlwZXMgPSBuZXcgQXJyYXkoInhtbHR2Iik7DQogICAgICAgICAgICAgICAgZmlsZVR5cGVzLmZvckVhY2goZmlsZVR5cGUgPT4gew0KICAgICAgICAgICAgICAgICAgICBkYXRhID0gU0VSVkVSWyJzZXR0aW5ncyJdWyJmaWxlcyJdW2ZpbGVUeXBlXTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGtleXMgPSBnZXRPYmpLZXlzKGRhdGEpOw0KICAgICAgICAgICAgICAgICAgICBrZXlzLmZvckVhY2goa2V5ID0+IHsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciB0ciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlRSIik7DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5pZCA9IGtleTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoIicgKyBmaWxlVHlwZSArICciLCB0aGlzKScpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bIm5hbWUiXTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJsYXN0LnVwZGF0ZSJdOw0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bInByb3ZpZGVyLmF2YWlsYWJpbGl0eSJdOw0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bImNvbXBhdGliaWxpdHkiXVsieG1sdHYuY2hhbm5lbHMiXTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJjb21wYXRpYmlsaXR5Il1bInhtbHR2LnByb2dyYW1zIl07DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICByb3dzLnB1c2godHIpOw0KICAgICAgICAgICAgICAgICAgICB9KTsNCiAgICAgICAgICAgICAgICB9KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInVzZXJzIjoNCiAgICAgICAgICAgICAgICBmaWxlVHlwZXMgPSBuZXcgQXJyYXkoInVzZXJzIik7DQogICAgICAgICAgICAgICAgZmlsZVR5cGVzLmZvckVhY2goZmlsZVR5cGUgPT4gew0KICAgICAgICAgICAgICAgICAgICBkYXRhID0gU0VSVkVSW2ZpbGVUeXBlXTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGtleXMgPSBnZXRPYmpLZXlzKGRhdGEpOw0KICAgICAgICAgICAgICAgICAgICBrZXlzLmZvckVhY2goa2V5ID0+IHsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciB0ciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlRSIik7DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5pZCA9IGtleTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoIicgKyBmaWxlVHlwZSArICciLCB0aGlzKScpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bImRhdGEiXVsidXNlcm5hbWUiXTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gIioqKioqKiI7DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGRhdGFba2V5XVsiZGF0YSJdWyJhdXRoZW50aWNhdGlvbi53ZWIiXSA9PSB0cnVlKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9ICLinJMiOw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9ICItIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgICAgICBpZiAoZGF0YVtrZXldWyJkYXRhIl1bImF1dGhlbnRpY2F0aW9uLnBtcyJdID09IHRydWUpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gIuKckyI7DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gIi0iOw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChkYXRhW2tleV1bImRhdGEiXVsiYXV0aGVudGljYXRpb24ubTN1Il0gPT0gdHJ1ZSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSAi4pyTIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSAiLSI7DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGRhdGFba2V5XVsiZGF0YSJdWyJhdXRoZW50aWNhdGlvbi54bWwiXSA9PSB0cnVlKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9ICLinJMiOw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9ICItIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgICAgICBpZiAoZGF0YVtrZXldWyJkYXRhIl1bImF1dGhlbnRpY2F0aW9uLmFwaSJdID09IHRydWUpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gIuKckyI7DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gIi0iOw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgcm93cy5wdXNoKHRyKTsNCiAgICAgICAgICAgICAgICAgICAgfSk7DQogICAgICAgICAgICAgICAgfSk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJtYXBwaW5nIjoNCiAgICAgICAgICAgICAgICBCVUxLX0VESVQgPSBmYWxzZTsNCiAgICAgICAgICAgICAgICBjcmVhdGVTZWFyY2hPYmooKTsNCiAgICAgICAgICAgICAgICBjaGVja1VuZG8oImVwZ01hcHBpbmciKTsNCiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZygiTUFQUElORyIpOw0KICAgICAgICAgICAgICAgIGRhdGEgPSBTRVJWRVJbInhlcGciXVsiZXBnTWFwcGluZyJdOw0KICAgICAgICAgICAgICAgIHZhciBrZXlzID0gZ2V0T2JqS2V5cyhkYXRhKTsNCiAgICAgICAgICAgICAgICBrZXlzLmZvckVhY2goa2V5ID0+IHsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVFIiKTsNCiAgICAgICAgICAgICAgICAgICAgdHIuaWQgPSBrZXk7DQogICAgICAgICAgICAgICAgICAgIC8vdHIuc2V0QXR0cmlidXRlKCdvbmNvbnRleHRtZW51JywgJ2phdmFzY3JpcHQ6IHJpZ2h0Q2xpY2sodGhpcyknKQ0KICAgICAgICAgICAgICAgICAgICBzd2l0Y2ggKGRhdGFba2V5XVsieC1hY3RpdmUiXSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSB0cnVlOg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyLmNsYXNzTmFtZSA9ICJhY3RpdmVFUEciOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSBmYWxzZToNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ci5jbGFzc05hbWUgPSAibm90QWN0aXZlRVBHIjsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAvLyBCdWxrDQogICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIkJVTEsiOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZmFsc2U7DQogICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgLy8gS2FuYWxudW1tZXINCiAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiSU5QVVRDSEFOTkVMIjsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsieC1jaGFubmVsSUQiXTsNCiAgICAgICAgICAgICAgICAgICAgLy90ZC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogY2hhbmdlQ2hhbm5lbE51bWJlcigiJyArIGtleSArICciLCB0aGlzKScpDQogICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgLy8gTG9nbw0KICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJJTUciOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmltYWdlVVJMID0gZGF0YVtrZXldWyJ0dmctbG9nbyJdOw0KICAgICAgICAgICAgICAgICAgICB2YXIgdGQgPSBjZWxsLmNyZWF0ZUNlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgdGQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgibWFwcGluZyIsIHRoaXMpJyk7DQogICAgICAgICAgICAgICAgICAgIHRkLmlkID0ga2V5Ow0KICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZCh0ZCk7DQogICAgICAgICAgICAgICAgICAgIC8vIEthbmFsbmFtZQ0KICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jbGFzc05hbWUgPSBkYXRhW2tleV1bIngtY2F0ZWdvcnkiXTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsieC1uYW1lIl07DQogICAgICAgICAgICAgICAgICAgIHZhciB0ZCA9IGNlbGwuY3JlYXRlQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICB0ZC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJtYXBwaW5nIiwgdGhpcyknKTsNCiAgICAgICAgICAgICAgICAgICAgdGQuaWQgPSBrZXk7DQogICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKHRkKTsNCiAgICAgICAgICAgICAgICAgICAgLy8gUGxheWxpc3QNCiAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgIC8vY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsiX2ZpbGUubTN1Lm5hbWUiXSANCiAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGdldFZhbHVlRnJvbVByb3ZpZGVyRmlsZShkYXRhW2tleV1bIl9maWxlLm0zdS5pZCJdLCAibTN1IiwgIm5hbWUiKTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHRkID0gY2VsbC5jcmVhdGVDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgIHRkLnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoIm1hcHBpbmciLCB0aGlzKScpOw0KICAgICAgICAgICAgICAgICAgICB0ZC5pZCA9IGtleTsNCiAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQodGQpOw0KICAgICAgICAgICAgICAgICAgICAvLyBHcnVwcGUgKGdyb3VwLXRpdGxlKQ0KICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsieC1ncm91cC10aXRsZSJdOw0KICAgICAgICAgICAgICAgICAgICB2YXIgdGQgPSBjZWxsLmNyZWF0ZUNlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgdGQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgibWFwcGluZyIsIHRoaXMpJyk7DQogICAgICAgICAgICAgICAgICAgIHRkLmlkID0ga2V5Ow0KICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZCh0ZCk7DQogICAgICAgICAgICAgICAgICAgIC8vIFhNTFRWIERhdGVpDQogICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICBpZiAoZGF0YVtrZXldWyJ4LXhtbHR2LWZpbGUiXSAhPSAiLSIpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBnZXRWYWx1ZUZyb21Qcm92aWRlckZpbGUoZGF0YVtrZXldWyJ4LXhtbHR2LWZpbGUiXSwgInhtbHR2IiwgIm5hbWUiKTsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bIngteG1sdHYtZmlsZSJdOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIHZhciB0ZCA9IGNlbGwuY3JlYXRlQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICB0ZC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJtYXBwaW5nIiwgdGhpcyknKTsNCiAgICAgICAgICAgICAgICAgICAgdGQuaWQgPSBrZXk7DQogICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKHRkKTsNCiAgICAgICAgICAgICAgICAgICAgLy8gWE1MVFYgS2FuYWwNCiAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgIC8vdmFyIHZhbHVlID0gc3RyLnN1YnN0cmluZygxLCA0KTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHZhbHVlID0gZGF0YVtrZXldWyJ4LW1hcHBpbmciXTsNCiAgICAgICAgICAgICAgICAgICAgaWYgKHZhbHVlLmxlbmd0aCA+IDIwKSB7DQogICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IGRhdGFba2V5XVsieC1tYXBwaW5nIl0uc3Vic3RyaW5nKDAsIDIwKSArICIuLi4iOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSB2YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHRkID0gY2VsbC5jcmVhdGVDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgIHRkLnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoIm1hcHBpbmciLCB0aGlzKScpOw0KICAgICAgICAgICAgICAgICAgICB0ZC5pZCA9IGtleTsNCiAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQodGQpOw0KICAgICAgICAgICAgICAgICAgICAvLyBUaW1lU2hpZnQNCiAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bIngtdGltZXNoaWZ0Il07DQogICAgICAgICAgICAgICAgICAgIHZhciB0ZCA9IGNlbGwuY3JlYXRlQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICB0ZC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJtYXBwaW5nIiwgdGhpcyknKTsNCiAgICAgICAgICAgICAgICAgICAgdGQuaWQgPSBrZXk7DQogICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKHRkKTsNCiAgICAgICAgICAgICAgICAgICAgcm93cy5wdXNoKHRyKTsNCiAgICAgICAgICAgICAgICB9KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInNldHRpbmdzIjoNCiAgICAgICAgICAgICAgICBhbGVydCgpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZygiVGFibGUgY29udGVudCAobWVudUtleSk6IiwgbWVudUtleSk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIH0NCiAgICAgICAgcmV0dXJuIHJvd3M7DQogICAgfQ0KfQ0KY2xhc3MgQ2VsbCB7DQogICAgY3JlYXRlQ2VsbCgpIHsNCiAgICAgICAgbGV0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgaWYgKHRoaXMuY2hpbGQgPT0gdHJ1ZSkgew0KICAgICAgICAgICAgdmFyIGVsZW1lbnQ7DQogICAgICAgICAgICBzd2l0Y2ggKHRoaXMuY2hpbGRUeXBlKSB7DQogICAgICAgICAgICAgICAgY2FzZSAiUCI6DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KHRoaXMuY2hpbGRUeXBlKTsNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC5pbm5lckhUTUwgPSB0aGlzLnZhbHVlOw0KICAgICAgICAgICAgICAgICAgICBlbGVtZW50LmNsYXNzTmFtZSA9IHRoaXMuY2xhc3NOYW1lOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBjYXNlICJJTlBVVCI6DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KHRoaXMuY2hpbGRUeXBlKTsNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC52YWx1ZSA9IHRoaXMudmFsdWU7DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQudHlwZSA9ICJ0ZXh0IjsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAiSU5QVVRDSEFOTkVMIjoNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIklOUFVUIik7DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZzY3JpcHQ6IGNoYW5nZUNoYW5uZWxOdW1iZXIodGhpcykiKTsNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC52YWx1ZSA9IHRoaXMudmFsdWU7DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQudHlwZSA9ICJ0ZXh0IjsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAiQlVMSyI6DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJJTlBVVCIpOw0KICAgICAgICAgICAgICAgICAgICBlbGVtZW50LmNoZWNrZWQgPSB0aGlzLnZhbHVlOw0KICAgICAgICAgICAgICAgICAgICBlbGVtZW50LnR5cGUgPSAiY2hlY2tib3giOw0KICAgICAgICAgICAgICAgICAgICBlbGVtZW50LmNsYXNzTmFtZSA9ICJidWxrIGhpZGVCdWxrIjsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAiQlVMS19IRUFEIjoNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIklOUFVUIik7DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQuY2hlY2tlZCA9IHRoaXMudmFsdWU7DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQudHlwZSA9ICJjaGVja2JveCI7DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQuY2xhc3NOYW1lID0gImJ1bGsgaGlkZUJ1bGsiOw0KICAgICAgICAgICAgICAgICAgICBlbGVtZW50LnNldEF0dHJpYnV0ZSgib25jbGljayIsICJqYXZhc2NyaXB0OiBzZWxlY3RBbGxDaGFubmVscygpIik7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgIklNRyI6DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KHRoaXMuY2hpbGRUeXBlKTsNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC5zZXRBdHRyaWJ1dGUoInNyYyIsIHRoaXMuaW1hZ2VVUkwpOw0KICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5pbWFnZVVSTCAhPSAiIikgew0KICAgICAgICAgICAgICAgICAgICAgICAgZWxlbWVudC5zZXRBdHRyaWJ1dGUoIm9uZXJyb3IiLCAiamF2YXNjcmlwdDogdGhpcy5vbmVycm9yPW51bGw7dGhpcy5zcmM9JyciKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIC8vb25lcnJvcj0idGhpcy5vbmVycm9yPW51bGw7dGhpcy5zcmM9J21pc3NpbmcuZ2lmJzsiDQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIHRkLmFwcGVuZENoaWxkKGVsZW1lbnQpOw0KICAgICAgICB9DQogICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgdGQuaW5uZXJIVE1MID0gdGhpcy52YWx1ZTsNCiAgICAgICAgfQ0KICAgICAgICBpZiAodGhpcy5vbmNsaWNrID09IHRydWUpIHsNCiAgICAgICAgICAgIHRkLnNldEF0dHJpYnV0ZSgib25jbGljayIsIHRoaXMub25jbGlja0Z1bmt0aW9uKTsNCiAgICAgICAgICAgIHRkLmNsYXNzTmFtZSA9ICJwb2ludGVyIjsNCiAgICAgICAgfQ0KICAgICAgICBpZiAodGhpcy50ZENsYXNzTmFtZSAhPSB1bmRlZmluZWQpIHsNCiAgICAgICAgICAgIHRkLmNsYXNzTmFtZSA9IHRoaXMudGRDbGFzc05hbWU7DQogICAgICAgIH0NCiAgICAgICAgcmV0dXJuIHRkOw0KICAgIH0NCn0NCmNsYXNzIFNob3dDb250ZW50IGV4dGVuZHMgQ29udGVudCB7DQogICAgY29uc3RydWN0b3IobWVudUlEKSB7DQogICAgICAgIHN1cGVyKCk7DQogICAgICAgIHRoaXMubWVudUlEID0gbWVudUlEOw0KICAgIH0NCiAgICBjcmVhdGVJbnB1dCh0eXBlLCBuYW1lLCB2YWx1ZSkgew0KICAgICAgICBsZXQgaW5wdXQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJJTlBVVCIpOw0KICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInR5cGUiLCB0eXBlKTsNCiAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJuYW1lIiwgbmFtZSk7DQogICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgidmFsdWUiLCB2YWx1ZSk7DQogICAgICAgIHJldHVybiBpbnB1dDsNCiAgICB9DQogICAgc2hvdygpIHsNCiAgICAgICAgQ09MVU1OX1RPX1NPUlQgPSAtMTsNCiAgICAgICAgLy8gQWx0ZW4gSW5oYWx0IGzDtnNjaGVuDQogICAgICAgIGxldCBkb2MgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCh0aGlzLkRvY3VtZW50SUQpOw0KICAgICAgICBkb2MuaW5uZXJIVE1MID0gIiI7DQogICAgICAgIHNob3dQcmV2aWV3KGZhbHNlKTsNCiAgICAgICAgLy8gw5xiZXJzY2hyaWZ0DQogICAgICAgIGxldCBoZWFkbGluZSA9IG1lbnVJdGVtc1t0aGlzLm1lbnVJRF0uaGVhZGxpbmU7DQogICAgICAgIGxldCBtZW51S2V5ID0gbWVudUl0ZW1zW3RoaXMubWVudUlEXS5tZW51S2V5Ow0KICAgICAgICBsZXQgaCA9IHRoaXMuY3JlYXRlSGVhZGxpbmUoaGVhZGxpbmUpOw0KICAgICAgICBkb2MuYXBwZW5kQ2hpbGQoaCk7DQogICAgICAgIGxldCBociA9IHRoaXMuY3JlYXRlSFIoKTsNCiAgICAgICAgZG9jLmFwcGVuZENoaWxkKGhyKTsNCiAgICAgICAgLy8gSW50ZXJha3Rpb24NCiAgICAgICAgbGV0IGRpdiA9IHRoaXMuY3JlYXRlSW50ZXJhY3Rpb24oKTsNCiAgICAgICAgZG9jLmFwcGVuZENoaWxkKGRpdik7DQogICAgICAgIGxldCBpbnRlcmFjdGlvbiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHRoaXMuaW50ZXJhY3Rpb25JRCk7DQogICAgICAgIHN3aXRjaCAobWVudUtleSkgew0KICAgICAgICAgICAgY2FzZSAicGxheWxpc3QiOg0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IHRoaXMuY3JlYXRlSW5wdXQoImJ1dHRvbiIsIG1lbnVLZXksICJ7ey5idXR0b24ubmV3fX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoImlkIiwgIi0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJwbGF5bGlzdCIpJyk7DQogICAgICAgICAgICAgICAgaW50ZXJhY3Rpb24uYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiZmlsdGVyIjoNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSB0aGlzLmNyZWF0ZUlucHV0KCJidXR0b24iLCBtZW51S2V5LCAie3suYnV0dG9uLm5ld319Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJpZCIsIC0xKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJmaWx0ZXIiLCB0aGlzKScpOw0KICAgICAgICAgICAgICAgIGludGVyYWN0aW9uLmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInhtbHR2IjoNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSB0aGlzLmNyZWF0ZUlucHV0KCJidXR0b24iLCBtZW51S2V5LCAie3suYnV0dG9uLm5ld319Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJpZCIsICJ4bWx0diIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoInhtbHR2IiknKTsNCiAgICAgICAgICAgICAgICBpbnRlcmFjdGlvbi5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ1c2VycyI6DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gdGhpcy5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgbWVudUtleSwgInt7LmJ1dHRvbi5uZXd9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgiaWQiLCAidXNlcnMiKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJ1c2VycyIpJyk7DQogICAgICAgICAgICAgICAgaW50ZXJhY3Rpb24uYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAibWFwcGluZyI6DQogICAgICAgICAgICAgICAgc2hvd0VsZW1lbnQoImxvYWRpbmciLCB0cnVlKTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSB0aGlzLmNyZWF0ZUlucHV0KCJidXR0b24iLCBtZW51S2V5LCAie3suYnV0dG9uLnNhdmV9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBzYXZlUG9wdXBEYXRhKCJtYXBwaW5nIiwgIiIsICIiKScpOw0KICAgICAgICAgICAgICAgIGludGVyYWN0aW9uLmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSB0aGlzLmNyZWF0ZUlucHV0KCJidXR0b24iLCBtZW51S2V5LCAie3suYnV0dG9uLmJ1bGtFZGl0fX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogYnVsa0VkaXQoKScpOw0KICAgICAgICAgICAgICAgIGludGVyYWN0aW9uLmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSB0aGlzLmNyZWF0ZUlucHV0KCJzZWFyY2giLCAic2VhcmNoIiwgIiIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgiaWQiLCAic2VhcmNoTWFwcGluZyIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3suYnV0dG9uLnNlYXJjaH19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuY2xhc3NOYW1lID0gInNlYXJjaCI7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICdqYXZhc2NyaXB0OiBzZWFyY2hJbk1hcHBpbmcoKScpOw0KICAgICAgICAgICAgICAgIGludGVyYWN0aW9uLmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInNldHRpbmdzIjoNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSB0aGlzLmNyZWF0ZUlucHV0KCJidXR0b24iLCBtZW51S2V5LCAie3suYnV0dG9uLnNhdmV9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBzYXZlU2V0dGluZ3MoKTsnKTsNCiAgICAgICAgICAgICAgICBpbnRlcmFjdGlvbi5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gdGhpcy5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgbWVudUtleSwgInt7LmJ1dHRvbi5iYWNrdXB9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBiYWNrdXAoKTsnKTsNCiAgICAgICAgICAgICAgICBpbnRlcmFjdGlvbi5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gdGhpcy5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgbWVudUtleSwgInt7LmJ1dHRvbi5yZXN0b3JlfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogcmVzdG9yZSgpOycpOw0KICAgICAgICAgICAgICAgIGludGVyYWN0aW9uLmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICB2YXIgd3JhcHBlciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIkRJViIpOw0KICAgICAgICAgICAgICAgIHdyYXBwZXIuc2V0QXR0cmlidXRlKCJpZCIsICJib3gtd3JhcHBlciIpOw0KICAgICAgICAgICAgICAgIGRvYy5hcHBlbmRDaGlsZCh3cmFwcGVyKTsNCiAgICAgICAgICAgICAgICB0aGlzLkRpdklEID0gImNvbnRlbnRfc2V0dGluZ3MiOw0KICAgICAgICAgICAgICAgIHZhciBzZXR0aW5ncyA9IHRoaXMuY3JlYXRlRElWKCk7DQogICAgICAgICAgICAgICAgd3JhcHBlci5hcHBlbmRDaGlsZChzZXR0aW5ncyk7DQogICAgICAgICAgICAgICAgc2hvd1NldHRpbmdzKCk7DQogICAgICAgICAgICAgICAgcmV0dXJuOw0KICAgICAgICAgICAgY2FzZSAibG9nIjoNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSB0aGlzLmNyZWF0ZUlucHV0KCJidXR0b24iLCBtZW51S2V5LCAie3suYnV0dG9uLnJlc2V0TG9nc319Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IHJlc2V0TG9ncygpOycpOw0KICAgICAgICAgICAgICAgIGludGVyYWN0aW9uLmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICB2YXIgd3JhcHBlciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIkRJViIpOw0KICAgICAgICAgICAgICAgIHdyYXBwZXIuc2V0QXR0cmlidXRlKCJpZCIsICJib3gtd3JhcHBlciIpOw0KICAgICAgICAgICAgICAgIGRvYy5hcHBlbmRDaGlsZCh3cmFwcGVyKTsNCiAgICAgICAgICAgICAgICB0aGlzLkRpdklEID0gImNvbnRlbnRfbG9nIjsNCiAgICAgICAgICAgICAgICB2YXIgbG9ncyA9IHRoaXMuY3JlYXRlRElWKCk7DQogICAgICAgICAgICAgICAgd3JhcHBlci5hcHBlbmRDaGlsZChsb2dzKTsNCiAgICAgICAgICAgICAgICBzaG93TG9ncyh0cnVlKTsNCiAgICAgICAgICAgICAgICByZXR1cm47DQogICAgICAgICAgICBjYXNlICJsb2dvdXQiOg0KICAgICAgICAgICAgICAgIGxvY2F0aW9uLnJlbG9hZCgpOw0KICAgICAgICAgICAgICAgIGRvY3VtZW50LmNvb2tpZSA9ICJUb2tlbj0gOyBleHBpcmVzID0gVGh1LCAwMSBKYW4gMTk3MCAwMDowMDowMCBHTVQiOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZygiU2hvdyBjb250ZW50IChtZW51S2V5KToiLCBtZW51S2V5KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgfQ0KICAgICAgICAvLyBUYWJlbGxlIGVyc3RlbGxlbiAoZmFsbHMgYmVuw7Z0aWd0KQ0KICAgICAgICB2YXIgdGFibGVIZWFkZXIgPSBtZW51SXRlbXNbdGhpcy5tZW51SURdLnRhYmxlSGVhZGVyOw0KICAgICAgICBpZiAodGFibGVIZWFkZXIubGVuZ3RoID4gMCkgew0KICAgICAgICAgICAgdmFyIHdyYXBwZXIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJESVYiKTsNCiAgICAgICAgICAgIGRvYy5hcHBlbmRDaGlsZCh3cmFwcGVyKTsNCiAgICAgICAgICAgIHdyYXBwZXIuc2V0QXR0cmlidXRlKCJpZCIsICJib3gtd3JhcHBlciIpOw0KICAgICAgICAgICAgdmFyIHRhYmxlID0gdGhpcy5jcmVhdGVUQUJMRSgpOw0KICAgICAgICAgICAgd3JhcHBlci5hcHBlbmRDaGlsZCh0YWJsZSk7DQogICAgICAgICAgICB2YXIgaGVhZGVyID0gdGhpcy5jcmVhdGVUYWJsZVJvdygpOw0KICAgICAgICAgICAgdGFibGUuYXBwZW5kQ2hpbGQoaGVhZGVyKTsNCiAgICAgICAgICAgIC8vIEtvcGZ6ZWlsZSBkZXIgVGFibGxlDQogICAgICAgICAgICB0YWJsZUhlYWRlci5mb3JFYWNoKGVsZW1lbnQgPT4gew0KICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZWxlbWVudDsNCiAgICAgICAgICAgICAgICBpZiAoZWxlbWVudCA9PSAiQlVMSyIpIHsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiQlVMS19IRUFEIjsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGZhbHNlOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBpZiAobWVudUtleSA9PSAibWFwcGluZyIpIHsNCiAgICAgICAgICAgICAgICAgICAgaWYgKGVsZW1lbnQgPT0gInt7Lm1hcHBpbmcudGFibGUuY2hOb319Iikgew0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5vbmNsaWNrID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwub25jbGlja0Z1bmt0aW9uID0gImphdmFzY3JpcHQ6IHNvcnRUYWJsZSgxKTsiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC50ZENsYXNzTmFtZSA9ICJzb3J0VGhpcyI7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgaWYgKGVsZW1lbnQgPT0gInt7Lm1hcHBpbmcudGFibGUuY2hhbm5lbE5hbWV9fSIpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwub25jbGljayA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLm9uY2xpY2tGdW5rdGlvbiA9ICJqYXZhc2NyaXB0OiBzb3J0VGFibGUoMyk7IjsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBpZiAoZWxlbWVudCA9PSAie3subWFwcGluZy50YWJsZS5wbGF5bGlzdH19Iikgew0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5vbmNsaWNrID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwub25jbGlja0Z1bmt0aW9uID0gImphdmFzY3JpcHQ6IHNvcnRUYWJsZSg0KTsiOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIGlmIChlbGVtZW50ID09ICJ7ey5tYXBwaW5nLnRhYmxlLmdyb3VwVGl0bGV9fSIpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwub25jbGljayA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLm9uY2xpY2tGdW5rdGlvbiA9ICJqYXZhc2NyaXB0OiBzb3J0VGFibGUoNSk7IjsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBoZWFkZXIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgfSk7DQogICAgICAgICAgICB0YWJsZS5hcHBlbmRDaGlsZChoZWFkZXIpOw0KICAgICAgICAgICAgLy8gSW5oYWx0IGRlciBUYWJlbGxlDQogICAgICAgICAgICB2YXIgcm93cyA9IHRoaXMuY3JlYXRlVGFibGVDb250ZW50KG1lbnVLZXkpOw0KICAgICAgICAgICAgcm93cy5mb3JFYWNoKHRyID0+IHsNCiAgICAgICAgICAgICAgICB0YWJsZS5hcHBlbmRDaGlsZCh0cik7DQogICAgICAgICAgICB9KTsNCiAgICAgICAgfQ0KICAgICAgICBzd2l0Y2ggKG1lbnVLZXkpIHsNCiAgICAgICAgICAgIGNhc2UgIm1hcHBpbmciOg0KICAgICAgICAgICAgICAgIHNvcnRUYWJsZSgxKTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImZpbHRlciI6DQogICAgICAgICAgICAgICAgc2hvd1ByZXZpZXcodHJ1ZSk7DQogICAgICAgICAgICAgICAgc29ydFRhYmxlKDApOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgICAgICBDT0xVTU5fVE9fU09SVCA9IC0xOw0KICAgICAgICAgICAgICAgIHNvcnRUYWJsZSgwKTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgfQ0KICAgICAgICBzaG93RWxlbWVudCgibG9hZGluZyIsIGZhbHNlKTsNCiAgICB9DQp9DQpmdW5jdGlvbiBQYWdlUmVhZHkoKSB7DQogICAgbGV0IHNlcnZlciA9IG5ldyBTZXJ2ZXIoImdldFNlcnZlckNvbmZpZyIpOw0KICAgIHNlcnZlci5yZXF1ZXN0KHt9KTsNCiAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigicmVzaXplIiwgZnVuY3Rpb24gKCkgew0KICAgICAgICBjYWxjdWxhdGVXcmFwcGVySGVpZ2h0KCk7DQogICAgfSwgdHJ1ZSk7DQogICAgc2V0SW50ZXJ2YWwoZnVuY3Rpb24gKCkgew0KICAgICAgICB1cGRhdGVMb2coKTsNCiAgICB9LCAxMDAwMCk7DQogICAgcmV0dXJuOw0KfQ0KZnVuY3Rpb24gY3JlYXRlTGF5b3V0KCkgew0KICAgIC8vIENsaWVudCBJbmZvDQogICAgbGV0IG9iaiA9IFNFUlZFUlsiY2xpZW50SW5mbyJdOw0KICAgIGxldCBrZXlzID0gZ2V0T2JqS2V5cyhvYmopOw0KICAgIGZvciAodmFyIGkgPSAwOyBpIDwga2V5cy5sZW5ndGg7IGkrKykgew0KICAgICAgICBpZiAoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoa2V5c1tpXSkpIHsNCiAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGtleXNbaV0pLmlubmVySFRNTCA9IG9ialtrZXlzW2ldXTsNCiAgICAgICAgfQ0KICAgIH0NCiAgICBpZiAoIWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJtYWluLW1lbnUiKSkgew0KICAgICAgICByZXR1cm47DQogICAgfQ0KICAgIC8vIE1lbsO8IGVyc3RlbGxlbg0KICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJtYWluLW1lbnUiKS5pbm5lckhUTUwgPSAiIjsNCiAgICBmb3IgKGxldCBpID0gMDsgaSA8IG1lbnVJdGVtcy5sZW5ndGg7IGkrKykgew0KICAgICAgICBtZW51SXRlbXNbaV0uaWQgPSBpOw0KICAgICAgICBzd2l0Y2ggKG1lbnVJdGVtc1tpXVsibWVudUtleSJdKSB7DQogICAgICAgICAgICBjYXNlICJ1c2VycyI6DQogICAgICAgICAgICBjYXNlICJsb2dvdXQiOg0KICAgICAgICAgICAgICAgIGlmIChTRVJWRVJbInNldHRpbmdzIl1bImF1dGhlbnRpY2F0aW9uLndlYiJdID09IHRydWUpIHsNCiAgICAgICAgICAgICAgICAgICAgbWVudUl0ZW1zW2ldLmNyZWF0ZUl0ZW0oKTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJtYXBwaW5nIjoNCiAgICAgICAgICAgIGNhc2UgInhtbHR2IjoNCiAgICAgICAgICAgICAgICBpZiAoU0VSVkVSWyJjbGllbnRJbmZvIl1bImVwZ1NvdXJjZSJdID09ICJYRVBHIikgew0KICAgICAgICAgICAgICAgICAgICBtZW51SXRlbXNbaV0uY3JlYXRlSXRlbSgpOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICAgICAgbWVudUl0ZW1zW2ldLmNyZWF0ZUl0ZW0oKTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgfQ0KICAgIH0NCiAgICByZXR1cm47DQp9DQpmdW5jdGlvbiBvcGVuVGhpc01lbnUoZWxlbWVudCkgew0KICAgIGxldCBpZCA9IGVsZW1lbnQuaWQ7DQogICAgbGV0IGNvbnRlbnQgPSBuZXcgU2hvd0NvbnRlbnQoaWQpOw0KICAgIGNvbnRlbnQuc2hvdygpOw0KICAgIGNhbGN1bGF0ZVdyYXBwZXJIZWlnaHQoKTsNCiAgICByZXR1cm47DQp9DQpjbGFzcyBQb3B1cFdpbmRvdyB7DQogICAgY29uc3RydWN0b3IoKSB7DQogICAgICAgIHRoaXMuRG9jdW1lbnRJRCA9ICJwb3B1cC1jdXN0b20iOw0KICAgICAgICB0aGlzLkludGVyYWN0aW9uSUQgPSAiaW50ZXJhY3Rpb24iOw0KICAgICAgICB0aGlzLmRvYyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHRoaXMuRG9jdW1lbnRJRCk7DQogICAgfQ0KICAgIGNyZWF0ZVRpdGxlKHRpdGxlKSB7DQogICAgICAgIGxldCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgIHRkLmNsYXNzTmFtZSA9ICJsZWZ0IjsNCiAgICAgICAgdGQuaW5uZXJIVE1MID0gdGl0bGUgKyAiOiI7DQogICAgICAgIHJldHVybiB0ZDsNCiAgICB9DQogICAgY3JlYXRlQ29udGVudChlbGVtZW50KSB7DQogICAgICAgIGxldCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgIHRkLmFwcGVuZENoaWxkKGVsZW1lbnQpOw0KICAgICAgICByZXR1cm4gdGQ7DQogICAgfQ0KICAgIGNyZWF0ZUludGVyYWN0aW9uKCkgew0KICAgICAgICBsZXQgZGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7DQogICAgICAgIGRpdi5zZXRBdHRyaWJ1dGUoImlkIiwgInBvcHVwLWludGVyYWN0aW9uIik7DQogICAgICAgIGRpdi5jbGFzc05hbWUgPSAiaW50ZXJhY3Rpb24iOw0KICAgICAgICB0aGlzLmRvYy5hcHBlbmRDaGlsZChkaXYpOw0KICAgIH0NCn0NCmNsYXNzIFBvcHVwQ29udGVudCBleHRlbmRzIFBvcHVwV2luZG93IHsNCiAgICBjb25zdHJ1Y3RvcigpIHsNCiAgICAgICAgc3VwZXIoLi4uYXJndW1lbnRzKTsNCiAgICAgICAgdGhpcy50YWJsZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlRBQkxFIik7DQogICAgfQ0KICAgIGNyZWF0ZUhlYWRsaW5lKGhlYWRsaW5lKSB7DQogICAgICAgIHRoaXMuZG9jLmlubmVySFRNTCA9ICIiOw0KICAgICAgICB2YXIgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIkgzIik7DQogICAgICAgIGVsZW1lbnQuaW5uZXJIVE1MID0gaGVhZGxpbmUudG9VcHBlckNhc2UoKTsNCiAgICAgICAgdGhpcy5kb2MuYXBwZW5kQ2hpbGQoZWxlbWVudCk7DQogICAgICAgIC8vIFRhYmVsbGUgZXJzdGVsbGVuDQogICAgICAgIHRoaXMudGFibGUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJUQUJMRSIpOw0KICAgICAgICB0aGlzLmRvYy5hcHBlbmRDaGlsZCh0aGlzLnRhYmxlKTsNCiAgICB9DQogICAgYXBwZW5kUm93KHRpdGxlLCBlbGVtZW50KSB7DQogICAgICAgIGxldCB0ciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlRSIik7DQogICAgICAgIC8vIEJlemVpY2hudW5nDQogICAgICAgIGlmICh0aXRsZS5sZW5ndGggIT0gMCkgew0KICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQodGhpcy5jcmVhdGVUaXRsZSh0aXRsZSkpOw0KICAgICAgICB9DQogICAgICAgIC8vIENvbnRlbnQNCiAgICAgICAgdHIuYXBwZW5kQ2hpbGQodGhpcy5jcmVhdGVDb250ZW50KGVsZW1lbnQpKTsNCiAgICAgICAgdGhpcy50YWJsZS5hcHBlbmRDaGlsZCh0cik7DQogICAgfQ0KICAgIGNyZWF0ZUlucHV0KHR5cGUsIG5hbWUsIHZhbHVlKSB7DQogICAgICAgIGxldCBpbnB1dCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIklOUFVUIik7DQogICAgICAgIGlmICh2YWx1ZSA9PSB1bmRlZmluZWQpIHsNCiAgICAgICAgICAgIHZhbHVlID0gIiI7DQogICAgICAgIH0NCiAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJ0eXBlIiwgdHlwZSk7DQogICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgibmFtZSIsIG5hbWUpOw0KICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInZhbHVlIiwgdmFsdWUpOw0KICAgICAgICByZXR1cm4gaW5wdXQ7DQogICAgfQ0KICAgIGNyZWF0ZUNoZWNrYm94KG5hbWUpIHsNCiAgICAgICAgbGV0IGlucHV0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiSU5QVVQiKTsNCiAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJ0eXBlIiwgImNoZWNrYm94Iik7DQogICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgibmFtZSIsIG5hbWUpOw0KICAgICAgICByZXR1cm4gaW5wdXQ7DQogICAgfQ0KICAgIC8vIENyZWF0ZXMgYSBzZWxlY3Rpb24gb2YgbXVsdGlwbGUgb3B0aW9ucyB2YWx1ZXMgd2l0aCB0ZXh0IGRlc2NyaXB0aW9ucw0KICAgIGNyZWF0ZVNlbGVjdCh0ZXh0LCB2YWx1ZXMsIHNldCwgZGJLZXkpIHsNCiAgICAgICAgbGV0IHNlbGVjdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlNFTEVDVCIpOw0KICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJuYW1lIiwgZGJLZXkpOw0KICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRleHQubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgICAgIGxldCBvcHRpb24gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJPUFRJT04iKTsNCiAgICAgICAgICAgIG9wdGlvbi5zZXRBdHRyaWJ1dGUoInZhbHVlIiwgdmFsdWVzW2ldKTsNCiAgICAgICAgICAgIG9wdGlvbi5pbm5lclRleHQgPSB0ZXh0W2ldOw0KICAgICAgICAgICAgc2VsZWN0LmFwcGVuZENoaWxkKG9wdGlvbik7DQogICAgICAgIH0NCiAgICAgICAgaWYgKHNldCAhPSAiIikgew0KICAgICAgICAgICAgc2VsZWN0LnZhbHVlID0gc2V0Ow0KICAgICAgICB9DQogICAgICAgIGlmIChzZXQgPT0gdW5kZWZpbmVkKSB7DQogICAgICAgICAgICBzZWxlY3QudmFsdWUgPSB2YWx1ZXNbMF07DQogICAgICAgIH0NCiAgICAgICAgcmV0dXJuIHNlbGVjdDsNCiAgICB9DQogICAgc2VsZWN0T3B0aW9uKHNlbGVjdCwgdmFsdWUpIHsNCiAgICAgICAgLy9zZWxlY3Quc2VsZWN0ZWRPcHRpb25zID0gdmFsdWUNCiAgICAgICAgbGV0IHMgPSBzZWxlY3Q7DQogICAgICAgIHMub3B0aW9uc1tzLnNlbGVjdGVkSW5kZXhdLnZhbHVlID0gdmFsdWU7DQogICAgICAgIHJldHVybiBzZWxlY3Q7DQogICAgfQ0KICAgIGRlc2NyaXB0aW9uKHZhbHVlKSB7DQogICAgICAgIGxldCB0ciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlRSIik7DQogICAgICAgIGxldCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgIGxldCBzcGFuID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiUFJFIik7DQogICAgICAgIHNwYW4uaW5uZXJIVE1MID0gdmFsdWU7DQogICAgICAgIHRyLmFwcGVuZENoaWxkKHRkKTsNCiAgICAgICAgdHIuYXBwZW5kQ2hpbGQodGhpcy5jcmVhdGVDb250ZW50KHNwYW4pKTsNCiAgICAgICAgdGhpcy50YWJsZS5hcHBlbmRDaGlsZCh0cik7DQogICAgfQ0KICAgIC8vIEludGVyYWt0aW9uDQogICAgYWRkSW50ZXJhY3Rpb24oZWxlbWVudCkgew0KICAgICAgICBsZXQgaW50ZXJhY3Rpb24gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicG9wdXAtaW50ZXJhY3Rpb24iKTsNCiAgICAgICAgaW50ZXJhY3Rpb24uYXBwZW5kQ2hpbGQoZWxlbWVudCk7DQogICAgfQ0KfQ0KZnVuY3Rpb24gb3BlblBvcFVwKGRhdGFUeXBlLCBlbGVtZW50KSB7DQogICAgbGV0IGRhdGEgPSB7fTsNCiAgICBsZXQgaWQ7DQogICAgc3dpdGNoIChlbGVtZW50KSB7DQogICAgICAgIGNhc2UgdW5kZWZpbmVkOg0KICAgICAgICAgICAgc3dpdGNoIChkYXRhVHlwZSkgew0KICAgICAgICAgICAgICAgIGNhc2UgImdyb3VwLXRpdGxlIjoNCiAgICAgICAgICAgICAgICAgICAgaWYgKGlkID09IHVuZGVmaW5lZCkgew0KICAgICAgICAgICAgICAgICAgICAgICAgaWQgPSAtMTsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBkYXRhID0gZ2V0TG9jYWxEYXRhKCJmaWx0ZXIiLCBpZCk7DQogICAgICAgICAgICAgICAgICAgIGRhdGFbInR5cGUiXSA9ICJncm91cC10aXRsZSI7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgImN1c3RvbS1maWx0ZXIiOg0KICAgICAgICAgICAgICAgICAgICBpZiAoaWQgPT0gdW5kZWZpbmVkKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBpZCA9IC0xOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIGRhdGEgPSBnZXRMb2NhbERhdGEoImZpbHRlciIsIGlkKTsNCiAgICAgICAgICAgICAgICAgICAgZGF0YVsidHlwZSJdID0gImN1c3RvbS1maWx0ZXIiOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBkZWZhdWx0Og0KICAgICAgICAgICAgICAgICAgICBkYXRhWyJpZC5wcm92aWRlciJdID0gIi0iOw0KICAgICAgICAgICAgICAgICAgICBkYXRhWyJ0eXBlIl0gPSBkYXRhVHlwZTsNCiAgICAgICAgICAgICAgICAgICAgaWQgPSAiLSI7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICBpZCA9IGVsZW1lbnQuaWQ7DQogICAgICAgICAgICBkYXRhID0gZ2V0TG9jYWxEYXRhKGRhdGFUeXBlLCBpZCk7DQogICAgICAgICAgICBicmVhazsNCiAgICB9DQogICAgbGV0IGNvbnRlbnQgPSBuZXcgUG9wdXBDb250ZW50KCk7DQogICAgc3dpdGNoIChkYXRhVHlwZSkgew0KICAgICAgICBjYXNlICJwbGF5bGlzdCI6DQogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUhlYWRsaW5lKCJ7ey5wbGF5bGlzdC5wbGF5bGlzdFR5cGUudGl0bGV9fSIpOw0KICAgICAgICAgICAgLy8gVHlwZQ0KICAgICAgICAgICAgdmFyIHRleHQgPSBbIk0zVSIsICJIREhvbWVSdW4iXTsNCiAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBbImphdmFzY3JpcHQ6IG9wZW5Qb3BVcCgnbTN1JykiLCAiamF2YXNjcmlwdDogb3BlblBvcFVwKCdoZGhyJykiXTsNCiAgICAgICAgICAgIHZhciBzZWxlY3QgPSBjb250ZW50LmNyZWF0ZVNlbGVjdCh0ZXh0LCB2YWx1ZXMsICIiLCAidHlwZSIpOw0KICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgiaWQiLCAidHlwZSIpOw0KICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAnamF2YXNjcmlwdDogY2hhbmdlQnV0dG9uQWN0aW9uKHRoaXMsICJuZXh0IiwgIm9uY2xpY2siKScpOyAvLyBjaGFuZ2VCdXR0b25BY3Rpb24NCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5wbGF5bGlzdC50eXBlLnRpdGxlfX0iLCBzZWxlY3QpOw0KICAgICAgICAgICAgLy8gSW50ZXJha3Rpb24NCiAgICAgICAgICAgIGNvbnRlbnQuY3JlYXRlSW50ZXJhY3Rpb24oKTsNCiAgICAgICAgICAgIC8vIEFiYnJlY2hlbg0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImNhbmNlbCIsICJ7ey5idXR0b24uY2FuY2VsfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBzaG93RWxlbWVudCgicG9wdXAiLCBmYWxzZSk7Jyk7DQogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIC8vIFdlaXRlcg0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgIm5leHQiLCAie3suYnV0dG9uLm5leHR9fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgibTN1IiknKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgiaWQiLCAnbmV4dCcpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSAibTN1IjoNCiAgICAgICAgICAgIGNvbnRlbnQuY3JlYXRlSGVhZGxpbmUoZGF0YVR5cGUpOw0KICAgICAgICAgICAgLy8gTmFtZQ0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gIm5hbWUiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnBsYXlsaXN0Lm5hbWUucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnBsYXlsaXN0Lm5hbWUudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIEJlc2NocmVpYnVuZw0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gImRlc2NyaXB0aW9uIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5wbGF5bGlzdC5kZXNjcmlwdGlvbi5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sucGxheWxpc3QuZGVzY3JpcHRpb24udGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIFVSTA0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gImZpbGUuc291cmNlIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5wbGF5bGlzdC5maWxlTTNVLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5wbGF5bGlzdC5maWxlTTNVLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBUdW5lcg0KICAgICAgICAgICAgaWYgKFNFUlZFUlsic2V0dGluZ3MiXVsiYnVmZmVyIl0gIT0gIi0iKSB7DQogICAgICAgICAgICAgICAgdmFyIHRleHQgPSBbXTsNCiAgICAgICAgICAgICAgICB2YXIgdmFsdWVzID0gW107DQogICAgICAgICAgICAgICAgZm9yICh2YXIgaSA9IDE7IGkgPD0gMTAwOyBpKyspIHsNCiAgICAgICAgICAgICAgICAgICAgdGV4dC5wdXNoKGkudG9TdHJpbmcoKSk7DQogICAgICAgICAgICAgICAgICAgIHZhbHVlcy5wdXNoKGkudG9TdHJpbmcoKSk7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIHZhciBkYktleSA9ICJ0dW5lciI7DQogICAgICAgICAgICAgICAgdmFyIHNlbGVjdCA9IGNvbnRlbnQuY3JlYXRlU2VsZWN0KHRleHQsIHZhbHVlcywgZGF0YVtkYktleV0sIGRiS2V5KTsNCiAgICAgICAgICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJvbmZvY3VzIiwgImphdmFzY3JpcHQ6IHJldHVybjsiKTsNCiAgICAgICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sucGxheWxpc3QudHVuZXIudGl0bGV9fSIsIHNlbGVjdCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICB2YXIgZGJLZXkgPSAidHVuZXIiOw0KICAgICAgICAgICAgICAgIGlmIChkYXRhW2RiS2V5XSA9PSB1bmRlZmluZWQpIHsNCiAgICAgICAgICAgICAgICAgICAgZGF0YVtkYktleV0gPSAxOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInJlYWRvbmx5IiwgInRydWUiKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5jbGFzc05hbWUgPSAibm90QXZhaWxhYmxlIjsNCiAgICAgICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sucGxheWxpc3QudHVuZXIudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGNvbnRlbnQuZGVzY3JpcHRpb24oInt7LnBsYXlsaXN0LnR1bmVyLmRlc2NyaXB0aW9ufX0iKTsNCiAgICAgICAgICAgIC8vIEludGVyYWt0aW9uDQogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUludGVyYWN0aW9uKCk7DQogICAgICAgICAgICAvLyBMw7ZzY2hlbg0KICAgICAgICAgICAgaWYgKGRhdGFbImlkLnByb3ZpZGVyIl0gIT0gIi0iKSB7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImRlbGV0ZSIsICJ7ey5idXR0b24uZGVsZXRlfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5jbGFzc05hbWUgPSAiZGVsZXRlIjsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogc2F2ZVBvcHVwRGF0YSgibTN1IiwgIicgKyBpZCArICciLCB0cnVlLCAwKScpOw0KICAgICAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgZWxzZSB7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImJhY2siLCAie3suYnV0dG9uLmJhY2t9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoInBsYXlsaXN0IiknKTsNCiAgICAgICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIC8vIEFiYnJlY2hlbg0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImNhbmNlbCIsICJ7ey5idXR0b24uY2FuY2VsfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBzaG93RWxlbWVudCgicG9wdXAiLCBmYWxzZSk7Jyk7DQogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIC8vIEFrdHVhbGlzaWVyZW4NCiAgICAgICAgICAgIGlmIChkYXRhWyJpZC5wcm92aWRlciJdICE9ICItIikgew0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJ1cGRhdGUiLCAie3suYnV0dG9uLnVwZGF0ZX19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoIm0zdSIsICInICsgaWQgKyAnIiwgZmFsc2UsIDEpJyk7DQogICAgICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICAvLyBTcGVpY2hlcm4NCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJzYXZlIiwgInt7LmJ1dHRvbi5zYXZlfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBzYXZlUG9wdXBEYXRhKCJtM3UiLCAiJyArIGlkICsgJyIsIGZhbHNlLCAwKScpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSAiaGRociI6DQogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUhlYWRsaW5lKGRhdGFUeXBlKTsNCiAgICAgICAgICAgIC8vIE5hbWUNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJuYW1lIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5wbGF5bGlzdC5uYW1lLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5wbGF5bGlzdC5uYW1lLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBCZXNjaHJlaWJ1bmcNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJkZXNjcmlwdGlvbiI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3sucGxheWxpc3QuZGVzY3JpcHRpb24ucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnBsYXlsaXN0LmRlc2NyaXB0aW9uLnBsYWNlaG9sZGVyfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBVUkwNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJmaWxlLnNvdXJjZSI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3sucGxheWxpc3QuZmlsZUhESFIucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnBsYXlsaXN0LmZpbGVIREhSLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBUdW5lcg0KICAgICAgICAgICAgaWYgKFNFUlZFUlsic2V0dGluZ3MiXVsiYnVmZmVyIl0gIT0gIi0iKSB7DQogICAgICAgICAgICAgICAgdmFyIHRleHQgPSBbXTsNCiAgICAgICAgICAgICAgICB2YXIgdmFsdWVzID0gW107DQogICAgICAgICAgICAgICAgZm9yICh2YXIgaSA9IDE7IGkgPD0gMTAwOyBpKyspIHsNCiAgICAgICAgICAgICAgICAgICAgdGV4dC5wdXNoKGkudG9TdHJpbmcoKSk7DQogICAgICAgICAgICAgICAgICAgIHZhbHVlcy5wdXNoKGkudG9TdHJpbmcoKSk7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIHZhciBkYktleSA9ICJ0dW5lciI7DQogICAgICAgICAgICAgICAgdmFyIHNlbGVjdCA9IGNvbnRlbnQuY3JlYXRlU2VsZWN0KHRleHQsIHZhbHVlcywgZGF0YVtkYktleV0sIGRiS2V5KTsNCiAgICAgICAgICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJvbmZvY3VzIiwgImphdmFzY3JpcHQ6IHJldHVybjsiKTsNCiAgICAgICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sucGxheWxpc3QudHVuZXIudGl0bGV9fSIsIHNlbGVjdCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICB2YXIgZGJLZXkgPSAidHVuZXIiOw0KICAgICAgICAgICAgICAgIGlmIChkYXRhW2RiS2V5XSA9PSB1bmRlZmluZWQpIHsNCiAgICAgICAgICAgICAgICAgICAgZGF0YVtkYktleV0gPSAxOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInJlYWRvbmx5IiwgInRydWUiKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5jbGFzc05hbWUgPSAibm90QXZhaWxhYmxlIjsNCiAgICAgICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sucGxheWxpc3QudHVuZXIudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGNvbnRlbnQuZGVzY3JpcHRpb24oInt7LnBsYXlsaXN0LnR1bmVyLmRlc2NyaXB0aW9ufX0iKTsNCiAgICAgICAgICAgIC8vIEludGVyYWt0aW9uDQogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUludGVyYWN0aW9uKCk7DQogICAgICAgICAgICAvLyBMw7ZzY2hlbg0KICAgICAgICAgICAgaWYgKGRhdGFbImlkLnByb3ZpZGVyIl0gIT0gIi0iKSB7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImRlbGV0ZSIsICJ7ey5idXR0b24uZGVsZXRlfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogc2F2ZVBvcHVwRGF0YSgiaGRociIsICInICsgaWQgKyAnIiwgdHJ1ZSwgMCknKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5jbGFzc05hbWUgPSAiZGVsZXRlIjsNCiAgICAgICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJiYWNrIiwgInt7LmJ1dHRvbi5iYWNrfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJwbGF5bGlzdCIpJyk7DQogICAgICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICAvLyBBYmJyZWNoZW4NCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJjYW5jZWwiLCAie3suYnV0dG9uLmNhbmNlbH19Iik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogc2hvd0VsZW1lbnQoInBvcHVwIiwgZmFsc2UpOycpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICAvLyBBa3R1YWxpc2llcmVuDQogICAgICAgICAgICBpZiAoZGF0YVsiaWQucHJvdmlkZXIiXSAhPSAiLSIpIHsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAidXBkYXRlIiwgInt7LmJ1dHRvbi51cGRhdGV9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBzYXZlUG9wdXBEYXRhKCJoZGhyIiwgIicgKyBpZCArICciLCBmYWxzZSwgMSknKTsNCiAgICAgICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIC8vIFNwZWljaGVybg0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgInNhdmUiLCAie3suYnV0dG9uLnNhdmV9fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoImhkaHIiLCAiJyArIGlkICsgJyIsIGZhbHNlLCAwKScpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSAiZmlsdGVyIjoNCiAgICAgICAgICAgIGNvbnRlbnQuY3JlYXRlSGVhZGxpbmUoZGF0YVR5cGUpOw0KICAgICAgICAgICAgLy8gVHlwZQ0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gInR5cGUiOw0KICAgICAgICAgICAgdmFyIHRleHQgPSBbIk0zVTogIiArICJ7ey5maWx0ZXIudHlwZS5ncm91cFRpdGxlfX0iLCAieFRlVmU6ICIgKyAie3suZmlsdGVyLnR5cGUuY3VzdG9tRmlsdGVyfX0iXTsNCiAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBbImphdmFzY3JpcHQ6IG9wZW5Qb3BVcCgnZ3JvdXAtdGl0bGUnKSIsICJqYXZhc2NyaXB0OiBvcGVuUG9wVXAoJ2N1c3RvbS1maWx0ZXInKSJdOw0KICAgICAgICAgICAgdmFyIHNlbGVjdCA9IGNvbnRlbnQuY3JlYXRlU2VsZWN0KHRleHQsIHZhbHVlcywgImphdmFzY3JpcHQ6IG9wZW5Qb3BVcCgnZ3JvdXAtdGl0bGUnKSIsIGRiS2V5KTsNCiAgICAgICAgICAgIHNlbGVjdC5zZXRBdHRyaWJ1dGUoImlkIiwgaWQpOw0KICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAnamF2YXNjcmlwdDogY2hhbmdlQnV0dG9uQWN0aW9uKHRoaXMsICJuZXh0IiwgIm9uY2xpY2siKTsnKTsgLy8gY2hhbmdlQnV0dG9uQWN0aW9uDQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3suZmlsdGVyLnR5cGUudGl0bGV9fSIsIHNlbGVjdCk7DQogICAgICAgICAgICAvLyBJbnRlcmFrdGlvbg0KICAgICAgICAgICAgY29udGVudC5jcmVhdGVJbnRlcmFjdGlvbigpOw0KICAgICAgICAgICAgLy8gQWJicmVjaGVuDQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAiY2FuY2VsIiwgInt7LmJ1dHRvbi5jYW5jZWx9fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IHNob3dFbGVtZW50KCJwb3B1cCIsIGZhbHNlKTsnKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgLy8gV2VpdGVyDQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAibmV4dCIsICJ7ey5idXR0b24ubmV4dH19Iik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJncm91cC10aXRsZSIpJyk7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoImlkIiwgJ25leHQnKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGNhc2UgImN1c3RvbS1maWx0ZXIiOg0KICAgICAgICBjYXNlICJncm91cC10aXRsZSI6DQogICAgICAgICAgICBzd2l0Y2ggKGRhdGFUeXBlKSB7DQogICAgICAgICAgICAgICAgY2FzZSAiY3VzdG9tLWZpbHRlciI6DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuY3JlYXRlSGVhZGxpbmUoInt7LmZpbHRlci5jdXN0b219fSIgKyAiIEZpbHRlciIpOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBjYXNlICJncm91cC10aXRsZSI6DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuY3JlYXRlSGVhZGxpbmUoInt7LmZpbHRlci5ncm91cH19IiArICIgRmlsdGVyIik7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgLy8gTmFtZSAgICAgIA0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gIm5hbWUiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LmZpbHRlci5uYW1lLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5maWx0ZXIubmFtZS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgLy8gQmVzY2hyZWlidW5nDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAiZGVzY3JpcHRpb24iOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LmZpbHRlci5kZXNjcmlwdGlvbi5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3suZmlsdGVyLmRlc2NyaXB0aW9uLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBUeXANCiAgICAgICAgICAgIHZhciBkYktleSA9ICJ0eXBlIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImhpZGRlbiIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygiIiwgaW5wdXQpOw0KICAgICAgICAgICAgdmFyIGZpbHRlclR5cGUgPSBkYXRhW2RiS2V5XTsNCiAgICAgICAgICAgIHN3aXRjaCAoZmlsdGVyVHlwZSkgew0KICAgICAgICAgICAgICAgIGNhc2UgImN1c3RvbS1maWx0ZXIiOg0KICAgICAgICAgICAgICAgICAgICAvLyBHcm/Dny0gS2xlaW5zY2hyZWlidW5nIGJlYWNodGVuDQogICAgICAgICAgICAgICAgICAgIHZhciBkYktleSA9ICJjYXNlU2Vuc2l0aXZlIjsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChkYktleSk7DQogICAgICAgICAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhW2RiS2V5XTsNCiAgICAgICAgICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LmZpbHRlci5jYXNlU2Vuc2l0aXZlLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAgICAgICAgIC8vIEZpbHRlcnJlZ2VsIChCZW51dHplcmRlZmluaWVydCkNCiAgICAgICAgICAgICAgICAgICAgdmFyIGRiS2V5ID0gImZpbHRlciI7DQogICAgICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LmZpbHRlci5maWx0ZXJSdWxlLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LmZpbHRlci5maWx0ZXJSdWxlLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgImdyb3VwLXRpdGxlIjoNCiAgICAgICAgICAgICAgICAgICAgLy9hbGVydChkYktleSArICIgIiArIGZpbHRlclR5cGUpDQogICAgICAgICAgICAgICAgICAgIC8vIEZpbHRlciBiYXNpZXJlbmQgYXVmIGRlbiBHcnVwcGVuIGluIGRlciBNM1UNCiAgICAgICAgICAgICAgICAgICAgdmFyIGRiS2V5ID0gImZpbHRlciI7DQogICAgICAgICAgICAgICAgICAgIHZhciBncm91cHNNM1UgPSBnZXRMb2NhbERhdGEoIm0zdUdyb3VwcyIsICIiKTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHRleHQgPSBncm91cHNNM1VbInRleHQiXTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHZhbHVlcyA9IGdyb3Vwc00zVVsidmFsdWUiXTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHNlbGVjdCA9IGNvbnRlbnQuY3JlYXRlU2VsZWN0KHRleHQsIHZhbHVlcywgZGF0YVtkYktleV0sIGRiS2V5KTsNCiAgICAgICAgICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LmZpbHRlci5maWx0ZXJHcm91cC50aXRsZX19Iiwgc2VsZWN0KTsNCiAgICAgICAgICAgICAgICAgICAgY29udGVudC5kZXNjcmlwdGlvbigie3suZmlsdGVyLmZpbHRlckdyb3VwLmRlc2NyaXB0aW9ufX0iKTsNCiAgICAgICAgICAgICAgICAgICAgLy8gR3Jvw58tIEtsZWluc2NocmVpYnVuZyBiZWFjaHRlbg0KICAgICAgICAgICAgICAgICAgICB2YXIgZGJLZXkgPSAiY2FzZVNlbnNpdGl2ZSI7DQogICAgICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goZGJLZXkpOw0KICAgICAgICAgICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YVtkYktleV07DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5maWx0ZXIuY2FzZVNlbnNpdGl2ZS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgICAgICAgICB2YXIgZGJLZXkgPSAiaW5jbHVkZSI7DQogICAgICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LmZpbHRlci5pbmNsdWRlLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LmZpbHRlci5pbmNsdWRlLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuZGVzY3JpcHRpb24oInt7LmZpbHRlci5pbmNsdWRlLmRlc2NyaXB0aW9ufX0iKTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGRiS2V5ID0gImV4Y2x1ZGUiOw0KICAgICAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5maWx0ZXIuZXhjbHVkZS5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5maWx0ZXIuZXhjbHVkZS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgICAgICAgICBjb250ZW50LmRlc2NyaXB0aW9uKCJ7ey5maWx0ZXIuZXhjbHVkZS5kZXNjcmlwdGlvbn19Iik7DQogICAgICAgICAgICAgICAgICAgIC8vIFByZXNlcnZlIE0zVSBQbGF5bGlzdCBDaGFubmVsIE1hcHBpbmcNCiAgICAgICAgICAgICAgICAgICAgdmFyIGRiS2V5ID0gInByZXNlcnZlTWFwcGluZyI7DQogICAgICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goZGJLZXkpOw0KICAgICAgICAgICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YVtkYktleV07DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5maWx0ZXIucHJlc2VydmVNYXBwaW5nLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAgICAgICAgIC8vIFN0YXJ0aW5nIENoYW5uZWwgTnVtYmVyIE1hcHBpbmcNCiAgICAgICAgICAgICAgICAgICAgdmFyIGRiS2V5ID0gInN0YXJ0aW5nQ2hhbm5lbCI7DQogICAgICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LmZpbHRlci5zdGFydGluZ0NoYW5uZWwucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3suZmlsdGVyLnN0YXJ0aW5nQ2hhbm5lbC50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgICAgICAgICAvLyBGaWxsIE1pc3NpbmcgRVBHIERhdGENCiAgICAgICAgICAgICAgICAgICAgLy8gVGhlIGZvbGxvd2luZyBjb2RlIG9ubHkgd29ya3Mgd2hlbiB4VGVWZSBEdW1teSBhbHJlYWR5IGV4aXN0cw0KICAgICAgICAgICAgICAgICAgICAvLyB2YXIgZGJLZXk6c3RyaW5nID0gImRlZmF1bHRNaXNzaW5nRVBHIg0KICAgICAgICAgICAgICAgICAgICAvLyB2YXIgeG1sdHY6WE1MVFZGaWxlID0gbmV3IFhNTFRWRmlsZSgpDQogICAgICAgICAgICAgICAgICAgIC8vIHZhciBzZWxlY3QgPSB4bWx0di5nZXRQcm9ncmFtcygieFRlVmUgRHVtbXkiLCBkYXRhW2RiS2V5XSkNCiAgICAgICAgICAgICAgICAgICAgLy8gc2VsZWN0LnNldEF0dHJpYnV0ZSgibmFtZSIsIGRiS2V5KQ0KICAgICAgICAgICAgICAgICAgICAvLyBzZWxlY3Quc2V0QXR0cmlidXRlKCJpZCIsICJwb3B1cC1taXNzaW5nLWVwZyIpDQogICAgICAgICAgICAgICAgICAgIC8vIFRoZSB3b3JrYXJvdW5kIGlzIGN1cnJlbnRseSB0byBoYXJkIGNvZGUgdGhlIHhUZVZlIER1bW15IGRhdGENCiAgICAgICAgICAgICAgICAgICAgdmFyIGRiS2V5ID0gImRlZmF1bHRNaXNzaW5nRVBHIjsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGxpc3RPcHRpb25zID0geyAidGV4dCI6IFsiLSIsICIzMCBNaW51dGVzICgzMF9NaW51dGVzKSIsICI2MCBNaW51dGVzICg2MF9NaW51dGVzKSIsICI5MCBNaW51dGVzICg5MF9NaW51dGVzKSIsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgIjEyMCBNaW51dGVzICgxMjBfTWludXRlcykiLCAiMTgwIE1pbnV0ZXMgKDMwX01pbnV0ZXMpIiwgIjI0MCBNaW51dGVzICgzMF9NaW51dGVzKSIsICIzNjAgTWludXRlcyAoMzBfTWludXRlcykiXSwNCiAgICAgICAgICAgICAgICAgICAgICAgICJ2YWx1ZSI6IFsiLSIsICIzMF9NaW51dGVzIiwgIjYwX01pbnV0ZXMiLCAiOTBfTWludXRlcyIsICIxMjBfTWludXRlcyIsICIxODBfTWludXRlcyIsICIyNDBfTWludXRlcyIsICIzNjBfTWludXRlcyIsXSB9Ow0KICAgICAgICAgICAgICAgICAgICB2YXIgdGV4dCA9IGxpc3RPcHRpb25zWyJ0ZXh0Il07DQogICAgICAgICAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBsaXN0T3B0aW9uc1sidmFsdWUiXTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHNlbGVjdCA9IGNvbnRlbnQuY3JlYXRlU2VsZWN0KHRleHQsIHZhbHVlcywgZGF0YVtkYktleV0sIGRiS2V5KTsNCiAgICAgICAgICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LmZpbHRlci5kZWZhdWx0TWlzc2luZ0VQRy50aXRsZX19Iiwgc2VsZWN0KTsNCiAgICAgICAgICAgICAgICAgICAgY29udGVudC5kZXNjcmlwdGlvbigie3suZmlsdGVyLmRlZmF1bHRNaXNzaW5nRVBHLmRlc2NyaXB0aW9ufX0iKTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICB9DQogICAgICAgICAgICAvLyBJbnRlcmFrdGlvbg0KICAgICAgICAgICAgY29udGVudC5jcmVhdGVJbnRlcmFjdGlvbigpOw0KICAgICAgICAgICAgLy8gTMO2c2NoZW4NCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJkZWxldGUiLCAie3suYnV0dG9uLmRlbGV0ZX19Iik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogc2F2ZVBvcHVwRGF0YSgiZmlsdGVyIiwgIicgKyBpZCArICciLCB0cnVlLCAwKScpOw0KICAgICAgICAgICAgaW5wdXQuY2xhc3NOYW1lID0gImRlbGV0ZSI7DQogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIC8vIEFiYnJlY2hlbg0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImNhbmNlbCIsICJ7ey5idXR0b24uY2FuY2VsfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBzaG93RWxlbWVudCgicG9wdXAiLCBmYWxzZSk7Jyk7DQogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIC8vIFNwZWljaGVybg0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgInNhdmUiLCAie3suYnV0dG9uLnNhdmV9fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoImZpbHRlciIsICInICsgaWQgKyAnIiwgZmFsc2UsIDApJyk7DQogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJ4bWx0diI6DQogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUhlYWRsaW5lKGRhdGFUeXBlKTsNCiAgICAgICAgICAgIC8vIE5hbWUNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJuYW1lIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey54bWx0di5uYW1lLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey54bWx0di5uYW1lLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBCZXNjaHJlaWJ1bmcNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJkZXNjcmlwdGlvbiI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3sueG1sdHYuZGVzY3JpcHRpb24ucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnhtbHR2LmRlc2NyaXB0aW9uLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBVUkwNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJmaWxlLnNvdXJjZSI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3sueG1sdHYuZmlsZVhNTFRWLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey54bWx0di5maWxlWE1MVFYudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIEludGVyYWt0aW9uDQogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUludGVyYWN0aW9uKCk7DQogICAgICAgICAgICAvLyBMw7ZzY2hlbg0KICAgICAgICAgICAgaWYgKGRhdGFbImlkLnByb3ZpZGVyIl0gIT0gIi0iKSB7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImRlbGV0ZSIsICJ7ey5idXR0b24uZGVsZXRlfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogc2F2ZVBvcHVwRGF0YSgieG1sdHYiLCAiJyArIGlkICsgJyIsIHRydWUsIDApJyk7DQogICAgICAgICAgICAgICAgaW5wdXQuY2xhc3NOYW1lID0gImRlbGV0ZSI7DQogICAgICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICAvLyBBYmJyZWNoZW4NCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJjYW5jZWwiLCAie3suYnV0dG9uLmNhbmNlbH19Iik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogc2hvd0VsZW1lbnQoInBvcHVwIiwgZmFsc2UpOycpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICAvLyBBa3R1YWxpc2llcmVuDQogICAgICAgICAgICBpZiAoZGF0YVsiaWQucHJvdmlkZXIiXSAhPSAiLSIpIHsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAidXBkYXRlIiwgInt7LmJ1dHRvbi51cGRhdGV9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBzYXZlUG9wdXBEYXRhKCJ4bWx0diIsICInICsgaWQgKyAnIiwgZmFsc2UsIDEpJyk7DQogICAgICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICAvLyBTcGVpY2hlcm4NCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJzYXZlIiwgInt7LmJ1dHRvbi5zYXZlfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBzYXZlUG9wdXBEYXRhKCJ4bWx0diIsICInICsgaWQgKyAnIiwgZmFsc2UsIDApJyk7DQogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJ1c2VycyI6DQogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUhlYWRsaW5lKCJ7ey5tYWluTWVudS5pdGVtLnVzZXJzfX0iKTsNCiAgICAgICAgICAgIC8vIEJlbnV0emVybmFtZSANCiAgICAgICAgICAgIHZhciBkYktleSA9ICJ1c2VybmFtZSI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3sudXNlcnMudXNlcm5hbWUucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnVzZXJzLnVzZXJuYW1lLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBOZXVlcyBQYXNzd29ydCANCiAgICAgICAgICAgIHZhciBkYktleSA9ICJwYXNzd29yZCI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJwYXNzd29yZCIsIGRiS2V5LCAiIik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnVzZXJzLnBhc3N3b3JkLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey51c2Vycy5wYXNzd29yZC50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgLy8gQmVzdMOkdGlndW5nIA0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gImNvbmZpcm0iOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgicGFzc3dvcmQiLCBkYktleSwgIiIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey51c2Vycy5jb25maXJtLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey51c2Vycy5jb25maXJtLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBCZXJlY2h0aWd1bmcgV0VCDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAiYXV0aGVudGljYXRpb24ud2ViIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goZGJLZXkpOw0KICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGFbZGJLZXldOw0KICAgICAgICAgICAgaWYgKGRhdGFbImRlZmF1bHRVc2VyIl0gPT0gdHJ1ZSkgew0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICJqYXZhc2NyaXB0OiByZXR1cm4gZmFsc2UiKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey51c2Vycy53ZWIudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIEJlcmVjaHRpZ3VuZyBQTVMNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJhdXRoZW50aWNhdGlvbi5wbXMiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChkYktleSk7DQogICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YVtkYktleV07DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sudXNlcnMucG1zLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBCZXJlY2h0aWd1bmcgTTNVDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAiYXV0aGVudGljYXRpb24ubTN1IjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goZGJLZXkpOw0KICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGFbZGJLZXldOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnVzZXJzLm0zdS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgLy8gQmVyZWNodGlndW5nIFhNTA0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gImF1dGhlbnRpY2F0aW9uLnhtbCI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KGRiS2V5KTsNCiAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhW2RiS2V5XTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey51c2Vycy54bWwudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIEJlcmVjaHRpZ3VuZyBBUEkNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJhdXRoZW50aWNhdGlvbi5hcGkiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChkYktleSk7DQogICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YVtkYktleV07DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sudXNlcnMuYXBpLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBJbnRlcmFrdGlvbg0KICAgICAgICAgICAgY29udGVudC5jcmVhdGVJbnRlcmFjdGlvbigpOw0KICAgICAgICAgICAgLy8gTMO2c2NoZW4NCiAgICAgICAgICAgIGlmIChkYXRhWyJkZWZhdWx0VXNlciJdICE9IHRydWUgJiYgaWQgIT0gIi0iKSB7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImRlbGV0ZSIsICJ7ey5idXR0b24uZGVsZXRlfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5jbGFzc05hbWUgPSAiZGVsZXRlIjsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogc2F2ZVBvcHVwRGF0YSgiJyArIGRhdGFUeXBlICsgJyIsICInICsgaWQgKyAnIiwgdHJ1ZSwgMCknKTsNCiAgICAgICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIC8vIEFiYnJlY2hlbg0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImNhbmNlbCIsICJ7ey5idXR0b24uY2FuY2VsfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBzaG93RWxlbWVudCgicG9wdXAiLCBmYWxzZSk7Jyk7DQogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIC8vIFNwZWljaGVybg0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgInNhdmUiLCAie3suYnV0dG9uLnNhdmV9fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoIicgKyBkYXRhVHlwZSArICciLCAiJyArIGlkICsgJyIsICJmYWxzZSIpOycpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSAibWFwcGluZyI6DQogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUhlYWRsaW5lKCJ7ey5tYWluTWVudS5pdGVtLm1hcHBpbmd9fSIpOw0KICAgICAgICAgICAgLy8gQWt0aXYgDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAieC1hY3RpdmUiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChkYktleSk7DQogICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YVtkYktleV07DQogICAgICAgICAgICBpbnB1dC5pZCA9ICJhY3RpdmUiOw0KICAgICAgICAgICAgLy9pbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIikNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdG9nZ2xlQ2hhbm5lbFN0YXR1cygnIiArIGlkICsgIicsIHRoaXMpIik7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3subWFwcGluZy5hY3RpdmUudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIEthbmFsbmFtZSANCiAgICAgICAgICAgIHZhciBkYktleSA9ICJ4LW5hbWUiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICBpZiAoQlVMS19FRElUID09IHRydWUpIHsNCiAgICAgICAgICAgICAgICBpbnB1dC5zdHlsZS5ib3JkZXIgPSAic29saWQgMXB4IHJlZCI7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJyZWFkb25seSIsICJ0cnVlIik7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3subWFwcGluZy5jaGFubmVsTmFtZS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgY29udGVudC5kZXNjcmlwdGlvbihkYXRhWyJuYW1lIl0pOw0KICAgICAgICAgICAgLy8gQmVzY2hyZWlidW5nIA0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gIngtZGVzY3JpcHRpb24iOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7Lm1hcHBpbmcuZGVzY3JpcHRpb24ucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7Lm1hcHBpbmcuZGVzY3JpcHRpb24udGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIEFrdHVhbGlzaWVydW5nIGRlcyBLYW5hbG5hbWVucw0KICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoIl91dWlkLmtleSIpKSB7DQogICAgICAgICAgICAgICAgaWYgKGRhdGFbIl91dWlkLmtleSJdICE9ICIiKSB7DQogICAgICAgICAgICAgICAgICAgIHZhciBkYktleSA9ICJ4LXVwZGF0ZS1jaGFubmVsLW5hbWUiOw0KICAgICAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KGRiS2V5KTsNCiAgICAgICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YVtkYktleV07DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5tYXBwaW5nLnVwZGF0ZUNoYW5uZWxOYW1lLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgLy8gTG9nbyBVUkwgKEthbmFsKSANCiAgICAgICAgICAgIHZhciBkYktleSA9ICJ0dmctbG9nbyI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgiaWQiLCAiY2hhbm5lbC1pY29uIik7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3subWFwcGluZy5jaGFubmVsTG9nby50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgLy8gQWt0dWFsaXNpZXJ1bmcgZGVzIEthbmFsbG9nb3MNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJ4LXVwZGF0ZS1jaGFubmVsLWljb24iOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChkYktleSk7DQogICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YVtkYktleV07DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoImlkIiwgInVwZGF0ZS1pY29uIik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnOyBjaGFuZ2VDaGFubmVsTG9nbygnIiArIGlkICsgIicpOyIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7Lm1hcHBpbmcudXBkYXRlQ2hhbm5lbExvZ28udGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIEVyd2VpdGVybiBkZXIgRVBHIEthdGVnb3JpZQ0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gIngtY2F0ZWdvcnkiOw0KICAgICAgICAgICAgdmFyIHRleHQgPSBbIi0iLCAiS2lkcyAoRW1ieSBvbmx5KSIsICJOZXdzIiwgIk1vdmllIiwgIlNlcmllcyIsICJTcG9ydHMiXTsNCiAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBbIiIsICJLaWRzIiwgIk5ld3MiLCAiTW92aWUiLCAiU2VyaWVzIiwgIlNwb3J0cyJdOw0KICAgICAgICAgICAgdmFyIHNlbGVjdCA9IGNvbnRlbnQuY3JlYXRlU2VsZWN0KHRleHQsIHZhbHVlcywgZGF0YVtkYktleV0sIGRiS2V5KTsNCiAgICAgICAgICAgIHNlbGVjdC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3subWFwcGluZy5lcGdDYXRlZ29yeS50aXRsZX19Iiwgc2VsZWN0KTsNCiAgICAgICAgICAgIC8vIE0zVSBHcnVwcGVudGl0ZWwNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJ4LWdyb3VwLXRpdGxlIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7Lm1hcHBpbmcubTN1R3JvdXBUaXRsZS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgaWYgKGRhdGFbImdyb3VwLXRpdGxlIl0gIT0gdW5kZWZpbmVkKSB7DQogICAgICAgICAgICAgICAgY29udGVudC5kZXNjcmlwdGlvbihkYXRhWyJncm91cC10aXRsZSJdKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIC8vIFhNTFRWIERhdGVpDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAieC14bWx0di1maWxlIjsNCiAgICAgICAgICAgIHZhciB4bWxGaWxlID0gZGF0YVtkYktleV07DQogICAgICAgICAgICB2YXIgeG1sdHYgPSBuZXcgWE1MVFZGaWxlKCk7DQogICAgICAgICAgICB2YXIgc2VsZWN0ID0geG1sdHYuZ2V0RmlsZXMoZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgibmFtZSIsIGRiS2V5KTsNCiAgICAgICAgICAgIHNlbGVjdC5zZXRBdHRyaWJ1dGUoImlkIiwgInBvcHVwLXhtbHR2Iik7DQogICAgICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJzsgc2V0WG1sdHZDaGFubmVsKCciICsgaWQgKyAiJyx0aGlzKTsiKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5tYXBwaW5nLnhtbHR2RmlsZS50aXRsZX19Iiwgc2VsZWN0KTsNCiAgICAgICAgICAgIHZhciBmaWxlID0gZGF0YVtkYktleV07DQogICAgICAgICAgICAvLyBYTUxUViBNYXBwaW5nDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAieC1tYXBwaW5nIjsNCiAgICAgICAgICAgIHZhciB4bWx0diA9IG5ldyBYTUxUVkZpbGUoKTsNCiAgICAgICAgICAgIHZhciBzZWxlY3QgPSB4bWx0di5nZXRQcm9ncmFtcyhmaWxlLCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJuYW1lIiwgZGJLZXkpOw0KICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgiaWQiLCAicG9wdXAtbWFwcGluZyIpOw0KICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCc7IGNoZWNrWG1sdHZDaGFubmVsKCciICsgaWQgKyAiJyx0aGlzLCciICsgeG1sRmlsZSArICInKTsiKTsNCiAgICAgICAgICAgIHNvcnRTZWxlY3Qoc2VsZWN0KTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5tYXBwaW5nLnhtbHR2Q2hhbm5lbC50aXRsZX19Iiwgc2VsZWN0KTsNCiAgICAgICAgICAgIC8vIFRpbWVzaGlmdA0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gIngtdGltZXNoaWZ0IjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5tYXBwaW5nLnRpbWVzaGlmdC5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoImlkIiwgInRpbWVzaGlmdCIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7Lm1hcHBpbmcudGltZXNoaWZ0LnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBUT0RPOiB2YXIgc2VsZWN0ID0geG1sdHYuZ2V0UHJvZ3JhbXMoZmlsZSwgZGF0YVtkYktleV0pIC8vIHNvcnRTZWxlY3Qoc2VsZWN0KSA/DQogICAgICAgICAgICAvLyBJbnRlcmFrdGlvbg0KICAgICAgICAgICAgY29udGVudC5jcmVhdGVJbnRlcmFjdGlvbigpOw0KICAgICAgICAgICAgLy8gTG9nbyBob2NobGFkZW4NCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJjYW5jZWwiLCAie3suYnV0dG9uLnVwbG9hZExvZ299fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IHVwbG9hZExvZ28oKTsnKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgLy8gQWJicmVjaGVuDQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAiY2FuY2VsIiwgInt7LmJ1dHRvbi5jYW5jZWx9fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IHNob3dFbGVtZW50KCJwb3B1cCIsIGZhbHNlKTsnKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgLy8gRmVydGlnDQogICAgICAgICAgICB2YXIgaWRzID0gW107DQogICAgICAgICAgICBpZHMgPSBnZXRBbGxTZWxlY3RlZENoYW5uZWxzKCk7DQogICAgICAgICAgICBpZiAoaWRzLmxlbmd0aCA9PSAwKSB7DQogICAgICAgICAgICAgICAgaWRzLnB1c2goaWQpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgInNhdmUiLCAie3suYnV0dG9uLmRvbmV9fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IGRvbmVQb3B1cERhdGEoIicgKyBkYXRhVHlwZSArICciLCAiJyArIGlkcyArICciLCAiZmFsc2UiKTsnKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICBicmVhazsNCiAgICB9DQogICAgc2hvd1BvcFVwRWxlbWVudCgncG9wdXAtY3VzdG9tJyk7DQp9DQpjbGFzcyBYTUxUVkZpbGUgew0KICAgIGdldEZpbGVzKHNldCkgew0KICAgICAgICBsZXQgZmlsZUlEcyA9IGdldE9iaktleXMoU0VSVkVSWyJ4ZXBnIl1bInhtbHR2TWFwIl0pOw0KICAgICAgICBsZXQgdmFsdWVzID0gbmV3IEFycmF5KCItIik7DQogICAgICAgIGxldCB0ZXh0ID0gbmV3IEFycmF5KCItIik7DQogICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgZmlsZUlEcy5sZW5ndGg7IGkrKykgew0KICAgICAgICAgICAgaWYgKGZpbGVJRHNbaV0gIT0gInhUZVZlIER1bW15Iikgew0KICAgICAgICAgICAgICAgIHZhbHVlcy5wdXNoKGdldFZhbHVlRnJvbVByb3ZpZGVyRmlsZShmaWxlSURzW2ldLCAieG1sdHYiLCAiZmlsZS54dGV2ZSIpKTsNCiAgICAgICAgICAgICAgICB0ZXh0LnB1c2goZ2V0VmFsdWVGcm9tUHJvdmlkZXJGaWxlKGZpbGVJRHNbaV0sICJ4bWx0diIsICJuYW1lIikpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgZWxzZSB7DQogICAgICAgICAgICAgICAgdmFsdWVzLnB1c2goZmlsZUlEc1tpXSk7DQogICAgICAgICAgICAgICAgdGV4dC5wdXNoKGZpbGVJRHNbaV0pOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQogICAgICAgIGxldCBzZWxlY3QgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJTRUxFQ1QiKTsNCiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0ZXh0Lmxlbmd0aDsgaSsrKSB7DQogICAgICAgICAgICB2YXIgb3B0aW9uID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiT1BUSU9OIik7DQogICAgICAgICAgICBvcHRpb24uc2V0QXR0cmlidXRlKCJ2YWx1ZSIsIHZhbHVlc1tpXSk7DQogICAgICAgICAgICBvcHRpb24uaW5uZXJUZXh0ID0gdGV4dFtpXTsNCiAgICAgICAgICAgIHNlbGVjdC5hcHBlbmRDaGlsZChvcHRpb24pOw0KICAgICAgICB9DQogICAgICAgIGlmIChzZXQgIT0gIiIpIHsNCiAgICAgICAgICAgIHNlbGVjdC52YWx1ZSA9IHNldDsNCiAgICAgICAgfQ0KICAgICAgICByZXR1cm4gc2VsZWN0Ow0KICAgIH0NCiAgICBnZXRQcm9ncmFtcyhmaWxlLCBzZXQpIHsNCiAgICAgICAgLy92YXIgZmlsZUlEczpzdHJpbmdbXSA9IGdldE9iaktleXMoU0VSVkVSWyJ4ZXBnIl1bInhtbHR2TWFwIl0pDQogICAgICAgIGxldCB2YWx1ZXMgPSBnZXRPYmpLZXlzKFNFUlZFUlsieGVwZyJdWyJ4bWx0dk1hcCJdW2ZpbGVdKTsNCiAgICAgICAgbGV0IHRleHQgPSBbXTsNCiAgICAgICAgbGV0IGRpc3BsYXlOYW1lOw0KICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHZhbHVlcy5sZW5ndGg7IGkrKykgew0KICAgICAgICAgICAgaWYgKFNFUlZFUlsieGVwZyJdWyJ4bWx0dk1hcCJdW2ZpbGVdW3ZhbHVlc1tpXV0uaGFzT3duUHJvcGVydHkoJ2Rpc3BsYXktbmFtZScpID09IHRydWUpIHsNCiAgICAgICAgICAgICAgICBkaXNwbGF5TmFtZSA9IFNFUlZFUlsieGVwZyJdWyJ4bWx0dk1hcCJdW2ZpbGVdW3ZhbHVlc1tpXV1bImRpc3BsYXktbmFtZSJdOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgZWxzZSB7DQogICAgICAgICAgICAgICAgZGlzcGxheU5hbWUgPSAiLSI7DQogICAgICAgICAgICB9DQogICAgICAgICAgICB0ZXh0W2ldID0gZGlzcGxheU5hbWUgKyAiICgiICsgdmFsdWVzW2ldICsgIikiOw0KICAgICAgICB9DQogICAgICAgIHRleHQudW5zaGlmdCgiLSIpOw0KICAgICAgICB2YWx1ZXMudW5zaGlmdCgiLSIpOw0KICAgICAgICBsZXQgc2VsZWN0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiU0VMRUNUIik7DQogICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGV4dC5sZW5ndGg7IGkrKykgew0KICAgICAgICAgICAgdmFyIG9wdGlvbiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIk9QVElPTiIpOw0KICAgICAgICAgICAgb3B0aW9uLnNldEF0dHJpYnV0ZSgidmFsdWUiLCB2YWx1ZXNbaV0pOw0KICAgICAgICAgICAgb3B0aW9uLmlubmVyVGV4dCA9IHRleHRbaV07DQogICAgICAgICAgICBzZWxlY3QuYXBwZW5kQ2hpbGQob3B0aW9uKTsNCiAgICAgICAgfQ0KICAgICAgICBpZiAoc2V0ICE9ICIiKSB7DQogICAgICAgICAgICBzZWxlY3QudmFsdWUgPSBzZXQ7DQogICAgICAgIH0NCiAgICAgICAgaWYgKHNlbGVjdC52YWx1ZSAhPSBzZXQpIHsNCiAgICAgICAgICAgIHNlbGVjdC52YWx1ZSA9ICItIjsNCiAgICAgICAgfQ0KICAgICAgICByZXR1cm4gc2VsZWN0Ow0KICAgIH0NCn0NCmZ1bmN0aW9uIGdldFZhbHVlRnJvbVByb3ZpZGVyRmlsZShmaWxlLCBmaWxlVHlwZSwga2V5KSB7DQogICAgaWYgKGZpbGUgPT0gInhUZVZlIER1bW15Iikgew0KICAgICAgICByZXR1cm4gZmlsZTsNCiAgICB9DQogICAgbGV0IGZpbGVJRDsNCiAgICBsZXQgaW5kaWNhdG9yID0gZmlsZS5jaGFyQXQoMCk7DQogICAgc3dpdGNoIChpbmRpY2F0b3IpIHsNCiAgICAgICAgY2FzZSAiTSI6DQogICAgICAgICAgICBmaWxlVHlwZSA9ICJtM3UiOw0KICAgICAgICAgICAgZmlsZUlEID0gZmlsZTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJIIjoNCiAgICAgICAgICAgIGZpbGVUeXBlID0gImhkaHIiOw0KICAgICAgICAgICAgZmlsZUlEID0gZmlsZTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJYIjoNCiAgICAgICAgICAgIGZpbGVUeXBlID0gInhtbHR2IjsNCiAgICAgICAgICAgIGZpbGVJRCA9IGZpbGUuc3Vic3RyaW5nKDAsIGZpbGUubGFzdEluZGV4T2YoJy4nKSk7DQogICAgICAgICAgICBicmVhazsNCiAgICB9DQogICAgaWYgKFNFUlZFUlsic2V0dGluZ3MiXVsiZmlsZXMiXVtmaWxlVHlwZV0uaGFzT3duUHJvcGVydHkoZmlsZUlEKSA9PSB0cnVlKSB7DQogICAgICAgIHZhciBkYXRhID0gU0VSVkVSWyJzZXR0aW5ncyJdWyJmaWxlcyJdW2ZpbGVUeXBlXVtmaWxlSURdOw0KICAgICAgICByZXR1cm4gZGF0YVtrZXldOw0KICAgIH0NCiAgICByZXR1cm47DQp9DQpmdW5jdGlvbiBzZXRYbWx0dkNoYW5uZWwoaWQsIGVsZW1lbnQpIHsNCiAgICBsZXQgeG1sdHYgPSBuZXcgWE1MVFZGaWxlKCk7DQogICAgbGV0IHhtbEZpbGUgPSBlbGVtZW50LnZhbHVlOw0KICAgIGxldCB0dmdJZCA9IFNFUlZFUlsieGVwZyJdWyJlcGdNYXBwaW5nIl1baWRdWyJ0dmctaWQiXTsNCiAgICBsZXQgdGQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicG9wdXAtbWFwcGluZyIpLnBhcmVudEVsZW1lbnQ7DQogICAgdGQuaW5uZXJIVE1MID0gIiI7DQogICAgbGV0IHNlbGVjdCA9IHhtbHR2LmdldFByb2dyYW1zKGVsZW1lbnQudmFsdWUsIHR2Z0lkKTsNCiAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJuYW1lIiwgIngtbWFwcGluZyIpOw0KICAgIHNlbGVjdC5zZXRBdHRyaWJ1dGUoImlkIiwgInBvcHVwLW1hcHBpbmciKTsNCiAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJzsgY2hlY2tYbWx0dkNoYW5uZWwoJyIgKyBpZCArICInLHRoaXMsJyIgKyB4bWxGaWxlICsgIicpOyIpOw0KICAgIHNlbGVjdC5jbGFzc05hbWUgPSAiY2hhbmdlZCI7DQogICAgc29ydFNlbGVjdChzZWxlY3QpOw0KICAgIHRkLmFwcGVuZENoaWxkKHNlbGVjdCk7DQogICAgY2hlY2tYbWx0dkNoYW5uZWwoaWQsIHNlbGVjdCwgeG1sRmlsZSk7DQp9DQpmdW5jdGlvbiBjaGVja1htbHR2Q2hhbm5lbChpZCwgZWxlbWVudCwgeG1sRmlsZSkgew0KICAgIGxldCB2YWx1ZSA9IGVsZW1lbnQudmFsdWU7DQogICAgbGV0IGJvb2w7DQogICAgbGV0IGNoZWNrYm94ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2FjdGl2ZScpOw0KICAgIGxldCBjaGFubmVsID0gU0VSVkVSWyJ4ZXBnIl1bImVwZ01hcHBpbmciXVtpZF07DQogICAgbGV0IHVwZGF0ZUxvZ287DQogICAgYm9vbCA9IHZhbHVlICE9ICItIjsNCiAgICBjaGVja2JveC5jaGVja2VkID0gYm9vbDsNCiAgICBjaGVja2JveC5jbGFzc05hbWUgPSAiY2hhbmdlZCI7DQogICAgY29uc29sZS5sb2coeG1sRmlsZSk7DQogICAgLy8gS2FuYWxsb2dvIGFrdHVhbGlzaWVyZW4NCiAgICAvKg0KICAgIHVwZGF0ZUxvZ28gPSAoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInVwZGF0ZS1pY29uIikgYXMgSFRNTElucHV0RWxlbWVudCkuY2hlY2tlZA0KICAgIGNvbnNvbGUubG9nKHVwZGF0ZUxvZ28pOw0KICAgICovDQogICAgaWYgKHhtbEZpbGUgIT0gInhUZVZlIER1bW15IiAmJiBib29sID09IHRydWUpIHsNCiAgICAgICAgLy8oZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInVwZGF0ZS1pY29uIikgYXMgSFRNTElucHV0RWxlbWVudCkuY2hlY2tlZCA9IHRydWU7DQogICAgICAgIC8vKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ1cGRhdGUtaWNvbiIpIGFzIEhUTUxJbnB1dEVsZW1lbnQpLmNsYXNzTmFtZSA9ICJjaGFuZ2VkIjsNCiAgICAgICAgY29uc29sZS5sb2coIklEIiwgaWQpOw0KICAgICAgICBjaGFuZ2VDaGFubmVsTG9nbyhpZCk7DQogICAgICAgIHJldHVybjsNCiAgICB9DQogICAgaWYgKHhtbEZpbGUgPT0gInhUZVZlIER1bW15Iikgew0KICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidXBkYXRlLWljb24iKS5jaGVja2VkID0gZmFsc2U7DQogICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ1cGRhdGUtaWNvbiIpLmNsYXNzTmFtZSA9ICJjaGFuZ2VkIjsNCiAgICB9DQogICAgcmV0dXJuOw0KfQ0KZnVuY3Rpb24gY2hhbmdlQ2hhbm5lbExvZ28oaWQpIHsNCiAgICBsZXQgdXBkYXRlTG9nbzsNCiAgICBsZXQgY2hhbm5lbCA9IFNFUlZFUlsieGVwZyJdWyJlcGdNYXBwaW5nIl1baWRdOw0KICAgIGxldCBmID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInBvcHVwLXhtbHR2Iik7DQogICAgbGV0IHhtbHR2RmlsZSA9IGYub3B0aW9uc1tmLnNlbGVjdGVkSW5kZXhdLnZhbHVlOw0KICAgIGxldCBtID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInBvcHVwLW1hcHBpbmciKTsNCiAgICBsZXQgeE1hcHBpbmcgPSBtLm9wdGlvbnNbbS5zZWxlY3RlZEluZGV4XS52YWx1ZTsNCiAgICBsZXQgeG1sdHZMb2dvID0gU0VSVkVSWyJ4ZXBnIl1bInhtbHR2TWFwIl1beG1sdHZGaWxlXVt4TWFwcGluZ11bImljb24iXTsNCiAgICB1cGRhdGVMb2dvID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInVwZGF0ZS1pY29uIikuY2hlY2tlZDsNCiAgICBpZiAodXBkYXRlTG9nbyA9PSB0cnVlICYmIHhtbHR2RmlsZSAhPSAieFRlVmUgRHVtbXkiKSB7DQogICAgICAgIGlmIChTRVJWRVJbInhlcGciXVsieG1sdHZNYXAiXVt4bWx0dkZpbGVdLmhhc093blByb3BlcnR5KHhNYXBwaW5nKSkgew0KICAgICAgICAgICAgdmFyIGxvZ28gPSB4bWx0dkxvZ287DQogICAgICAgIH0NCiAgICAgICAgZWxzZSB7DQogICAgICAgICAgICBsb2dvID0gY2hhbm5lbFsidHZnLWxvZ28iXTsNCiAgICAgICAgfQ0KICAgICAgICB2YXIgbG9nb0lucHV0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNoYW5uZWwtaWNvbiIpOw0KICAgICAgICBsb2dvSW5wdXQudmFsdWUgPSBsb2dvOw0KICAgICAgICBpZiAoQlVMS19FRElUID09IGZhbHNlKSB7DQogICAgICAgICAgICBsb2dvSW5wdXQuY2xhc3NOYW1lID0gImNoYW5nZWQiOw0KICAgICAgICB9DQogICAgfQ0KfQ0KZnVuY3Rpb24gc2F2ZVBvcHVwRGF0YShkYXRhVHlwZSwgaWQsIHJlbW92ZSwgb3B0aW9uKSB7DQogICAgaWYgKGRhdGFUeXBlID09ICJtYXBwaW5nIikgew0KICAgICAgICBsZXQgZGF0YSA9IHt9Ow0KICAgICAgICBjb25zb2xlLmxvZygiU2F2ZSBtYXBwaW5nIGRhdGEiKTsNCiAgICAgICAgbGV0IGNtZCA9ICJzYXZlRXBnTWFwcGluZyI7DQogICAgICAgIGRhdGFbImVwZ01hcHBpbmciXSA9IFNFUlZFUlsieGVwZyJdWyJlcGdNYXBwaW5nIl07DQogICAgICAgIGNvbnNvbGUubG9nKCJTRU5EIFRPIFNFUlZFUiIpOw0KICAgICAgICBsZXQgc2VydmVyID0gbmV3IFNlcnZlcihjbWQpOw0KICAgICAgICBzZXJ2ZXIucmVxdWVzdChkYXRhKTsNCiAgICAgICAgZGVsZXRlIFVORE9bImVwZ01hcHBpbmciXTsNCiAgICAgICAgcmV0dXJuOw0KICAgIH0NCiAgICBjb25zb2xlLmxvZygiU2F2ZSBwb3B1cCBkYXRhIik7DQogICAgbGV0IGRpdiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJwb3B1cC1jdXN0b20iKTsNCiAgICBsZXQgaW5wdXRzID0gZGl2LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJUQUJMRSIpWzBdLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJJTlBVVCIpOw0KICAgIGxldCBzZWxlY3RzID0gZGl2LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJUQUJMRSIpWzBdLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJTRUxFQ1QiKTsNCiAgICBsZXQgaW5wdXQgPSB7fTsNCiAgICBsZXQgY29uZmlybU1zZzsNCiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHNlbGVjdHMubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgdmFyIG5hbWU7DQogICAgICAgIG5hbWUgPSBzZWxlY3RzW2ldLm5hbWU7DQogICAgICAgIHZhciB2YWx1ZSA9IHNlbGVjdHNbaV0udmFsdWU7DQogICAgICAgIHN3aXRjaCAobmFtZSkgew0KICAgICAgICAgICAgY2FzZSAidHVuZXIiOg0KICAgICAgICAgICAgICAgIGlucHV0W25hbWVdID0gcGFyc2VJbnQodmFsdWUpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgICAgICBpbnB1dFtuYW1lXSA9IHZhbHVlOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICB9DQogICAgfQ0KICAgIGZvciAobGV0IGkgPSAwOyBpIDwgaW5wdXRzLmxlbmd0aDsgaSsrKSB7DQogICAgICAgIHN3aXRjaCAoaW5wdXRzW2ldLnR5cGUpIHsNCiAgICAgICAgICAgIGNhc2UgImNoZWNrYm94IjoNCiAgICAgICAgICAgICAgICBuYW1lID0gaW5wdXRzW2ldLm5hbWU7DQogICAgICAgICAgICAgICAgaW5wdXRbbmFtZV0gPSBpbnB1dHNbaV0uY2hlY2tlZDsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInRleHQiOg0KICAgICAgICAgICAgY2FzZSAiaGlkZGVuIjoNCiAgICAgICAgICAgIGNhc2UgInBhc3N3b3JkIjoNCiAgICAgICAgICAgICAgICBuYW1lID0gaW5wdXRzW2ldLm5hbWU7DQogICAgICAgICAgICAgICAgc3dpdGNoIChuYW1lKSB7DQogICAgICAgICAgICAgICAgICAgIGNhc2UgInR1bmVyIjoNCiAgICAgICAgICAgICAgICAgICAgICAgIGlucHV0W25hbWVdID0gcGFyc2VJbnQoaW5wdXRzW2ldLnZhbHVlKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgICAgICBkZWZhdWx0Og0KICAgICAgICAgICAgICAgICAgICAgICAgaW5wdXRbbmFtZV0gPSBpbnB1dHNbaV0udmFsdWU7DQogICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIH0NCiAgICB9DQogICAgbGV0IGRhdGEgPSB7fTsNCiAgICBsZXQgY21kOw0KICAgIGlmIChyZW1vdmUgPT0gdHJ1ZSkgew0KICAgICAgICBpbnB1dFsiZGVsZXRlIl0gPSB0cnVlOw0KICAgIH0NCiAgICBzd2l0Y2ggKGRhdGFUeXBlKSB7DQogICAgICAgIGNhc2UgInVzZXJzIjoNCiAgICAgICAgICAgIGNvbmZpcm1Nc2cgPSAiRGVsZXRlIHRoaXMgdXNlcj8iOw0KICAgICAgICAgICAgaWYgKGlkID09ICItIikgew0KICAgICAgICAgICAgICAgIGNtZCA9ICJzYXZlTmV3VXNlciI7DQogICAgICAgICAgICAgICAgZGF0YVsidXNlckRhdGEiXSA9IGlucHV0Ow0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgZWxzZSB7DQogICAgICAgICAgICAgICAgY21kID0gInNhdmVVc2VyRGF0YSI7DQogICAgICAgICAgICAgICAgbGV0IGQgPSB7fTsNCiAgICAgICAgICAgICAgICBkW2lkXSA9IGlucHV0Ow0KICAgICAgICAgICAgICAgIGRhdGFbInVzZXJEYXRhIl0gPSBkOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGNhc2UgIm0zdSI6DQogICAgICAgICAgICBjb25maXJtTXNnID0gIkRlbGV0ZSB0aGlzIHBsYXlsaXN0PyI7DQogICAgICAgICAgICBzd2l0Y2ggKG9wdGlvbikgew0KICAgICAgICAgICAgICAgIC8vIFBvcHVwOiBTYXZlDQogICAgICAgICAgICAgICAgY2FzZSAwOg0KICAgICAgICAgICAgICAgICAgICBjbWQgPSAic2F2ZUZpbGVzTTNVIjsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgLy8gUG9wdXA6IFVwZGF0ZQ0KICAgICAgICAgICAgICAgIGNhc2UgMToNCiAgICAgICAgICAgICAgICAgICAgY21kID0gInVwZGF0ZUZpbGVNM1UiOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGRhdGFbImZpbGVzIl0gPSB7fTsNCiAgICAgICAgICAgIGRhdGFbImZpbGVzIl1bZGF0YVR5cGVdID0ge307DQogICAgICAgICAgICBkYXRhWyJmaWxlcyJdW2RhdGFUeXBlXVtpZF0gPSBpbnB1dDsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJoZGhyIjoNCiAgICAgICAgICAgIGNvbmZpcm1Nc2cgPSAiRGVsZXRlIHRoaXMgSERIb21lUnVuIHR1bmVyPyI7DQogICAgICAgICAgICBzd2l0Y2ggKG9wdGlvbikgew0KICAgICAgICAgICAgICAgIC8vIFBvcHVwOiBTYXZlDQogICAgICAgICAgICAgICAgY2FzZSAwOg0KICAgICAgICAgICAgICAgICAgICBjbWQgPSAic2F2ZUZpbGVzSERIUiI7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIC8vIFBvcHVwOiBVcGRhdGUNCiAgICAgICAgICAgICAgICBjYXNlIDE6DQogICAgICAgICAgICAgICAgICAgIGNtZCA9ICJ1cGRhdGVGaWxlSERIUiI7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgZGF0YVsiZmlsZXMiXSA9IHt9Ow0KICAgICAgICAgICAgZGF0YVsiZmlsZXMiXVtkYXRhVHlwZV0gPSB7fTsNCiAgICAgICAgICAgIGRhdGFbImZpbGVzIl1bZGF0YVR5cGVdW2lkXSA9IGlucHV0Ow0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGNhc2UgInhtbHR2IjoNCiAgICAgICAgICAgIGNvbmZpcm1Nc2cgPSAiRGVsZXRlIHRoaXMgWE1MVFYgZmlsZT8iOw0KICAgICAgICAgICAgc3dpdGNoIChvcHRpb24pIHsNCiAgICAgICAgICAgICAgICAvLyBQb3B1cDogU2F2ZQ0KICAgICAgICAgICAgICAgIGNhc2UgMDoNCiAgICAgICAgICAgICAgICAgICAgY21kID0gInNhdmVGaWxlc1hNTFRWIjsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgLy8gUG9wdXA6IFVwZGF0ZQ0KICAgICAgICAgICAgICAgIGNhc2UgMToNCiAgICAgICAgICAgICAgICAgICAgY21kID0gInVwZGF0ZUZpbGVYTUxUViI7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgZGF0YVsiZmlsZXMiXSA9IHt9Ow0KICAgICAgICAgICAgZGF0YVsiZmlsZXMiXVtkYXRhVHlwZV0gPSB7fTsNCiAgICAgICAgICAgIGRhdGFbImZpbGVzIl1bZGF0YVR5cGVdW2lkXSA9IGlucHV0Ow0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGNhc2UgImZpbHRlciI6DQogICAgICAgICAgICBjb25maXJtTXNnID0gIkRlbGV0ZSB0aGlzIGZpbHRlcj8iOw0KICAgICAgICAgICAgY21kID0gInNhdmVGaWx0ZXIiOw0KICAgICAgICAgICAgZGF0YVsiZmlsdGVyIl0gPSB7fTsNCiAgICAgICAgICAgIGRhdGFbImZpbHRlciJdW2lkXSA9IGlucHV0Ow0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICBjb25zb2xlLmxvZyhkYXRhVHlwZSwgaWQpOw0KICAgICAgICAgICAgcmV0dXJuOw0KICAgIH0NCiAgICBpZiAocmVtb3ZlID09IHRydWUpIHsNCiAgICAgICAgaWYgKCFjb25maXJtKGNvbmZpcm1Nc2cpKSB7DQogICAgICAgICAgICBzaG93RWxlbWVudCgicG9wdXAiLCBmYWxzZSk7DQogICAgICAgICAgICByZXR1cm47DQogICAgICAgIH0NCiAgICB9DQogICAgY29uc29sZS5sb2coIlNFTkQgVE8gU0VSVkVSIik7DQogICAgY29uc29sZS5sb2coZGF0YSk7DQogICAgbGV0IHNlcnZlciA9IG5ldyBTZXJ2ZXIoY21kKTsNCiAgICBzZXJ2ZXIucmVxdWVzdChkYXRhKTsNCn0NCmZ1bmN0aW9uIGRvbmVQb3B1cERhdGEoZGF0YVR5cGUsIGlkc1N0cikgew0KICAgIGxldCBpZHMgPSBpZHNTdHIuc3BsaXQoJywnKTsNCiAgICBsZXQgZGl2ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInBvcHVwLWN1c3RvbSIpOw0KICAgIGxldCBpbnB1dHMgPSBkaXYuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSgiY2hhbmdlZCIpOw0KICAgIGlkcy5mb3JFYWNoKGlkID0+IHsNCiAgICAgICAgbGV0IGlucHV0Ow0KICAgICAgICBpbnB1dCA9IFNFUlZFUlsieGVwZyJdWyJlcGdNYXBwaW5nIl1baWRdOw0KICAgICAgICBjb25zb2xlLmxvZyhpbnB1dCk7DQogICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgaW5wdXRzLmxlbmd0aDsgaSsrKSB7DQogICAgICAgICAgICBsZXQgbmFtZTsNCiAgICAgICAgICAgIGxldCB2YWx1ZTsNCiAgICAgICAgICAgIHN3aXRjaCAoaW5wdXRzW2ldLnRhZ05hbWUpIHsNCiAgICAgICAgICAgICAgICBjYXNlICJJTlBVVCI6DQogICAgICAgICAgICAgICAgICAgIHN3aXRjaCAoaW5wdXRzW2ldLnR5cGUpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgImNoZWNrYm94IjoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lID0gaW5wdXRzW2ldLm5hbWU7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSBpbnB1dHNbaV0uY2hlY2tlZDsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnB1dFtuYW1lXSA9IHZhbHVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAidGV4dCI6DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZSA9IGlucHV0c1tpXS5uYW1lOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlID0gaW5wdXRzW2ldLnZhbHVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlucHV0W25hbWVdID0gdmFsdWU7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAiU0VMRUNUIjoNCiAgICAgICAgICAgICAgICAgICAgbmFtZSA9IGlucHV0c1tpXS5uYW1lOw0KICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IGlucHV0c1tpXS52YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgaW5wdXRbbmFtZV0gPSB2YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBzd2l0Y2ggKG5hbWUpIHsNCiAgICAgICAgICAgICAgICBjYXNlICJ0dmctbG9nbyI6DQogICAgICAgICAgICAgICAgICAgIC8vKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5jaGlsZE5vZGVzWzJdLmZpcnN0Q2hpbGQgYXMgSFRNTEVsZW1lbnQpLnNldEF0dHJpYnV0ZSgic3JjIiwgdmFsdWUpDQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgIngtbmFtZSI6DQogICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5jaGlsZE5vZGVzWzNdLmZpcnN0Q2hpbGQuaW5uZXJIVE1MID0gdmFsdWU7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgIngtY2F0ZWdvcnkiOg0KICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkuY2hpbGROb2Rlc1szXS5maXJzdENoaWxkLmNsYXNzTmFtZSA9IHZhbHVlOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBjYXNlICJ4LWdyb3VwLXRpdGxlIjoNCiAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpLmNoaWxkTm9kZXNbNV0uZmlyc3RDaGlsZC5pbm5lckhUTUwgPSB2YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAieC14bWx0di1maWxlIjoNCiAgICAgICAgICAgICAgICAgICAgaWYgKHZhbHVlICE9ICJ4VGVWZSBEdW1teSIgJiYgdmFsdWUgIT0gIi0iKSB7DQogICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IGdldFZhbHVlRnJvbVByb3ZpZGVyRmlsZSh2YWx1ZSwgInhtbHR2IiwgIm5hbWUiKTsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBpZiAodmFsdWUgPT0gIi0iKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBpbnB1dFsieC1hY3RpdmUiXSA9IGZhbHNlOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5jaGlsZE5vZGVzWzZdLmZpcnN0Q2hpbGQuaW5uZXJIVE1MID0gdmFsdWU7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgIngtbWFwcGluZyI6DQogICAgICAgICAgICAgICAgICAgIGlmICh2YWx1ZSA9PSAiLSIpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGlucHV0WyJ4LWFjdGl2ZSJdID0gZmFsc2U7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpLmNoaWxkTm9kZXNbN10uZmlyc3RDaGlsZC5pbm5lckhUTUwgPSB2YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAieC10aW1lc2hpZnQiOg0KICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkuY2hpbGROb2Rlc1s4XS5maXJzdENoaWxkLmlubmVySFRNTCA9IHZhbHVlOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBkZWZhdWx0Og0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgY3JlYXRlU2VhcmNoT2JqKCk7DQogICAgICAgICAgICBzZWFyY2hJbk1hcHBpbmcoKTsNCiAgICAgICAgfQ0KICAgICAgICBpZiAoaW5wdXRbIngtYWN0aXZlIl0gPT0gZmFsc2UpIHsNCiAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5jbGFzc05hbWUgPSAibm90QWN0aXZlRVBHIjsNCiAgICAgICAgfQ0KICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5jbGFzc05hbWUgPSAiYWN0aXZlRVBHIjsNCiAgICAgICAgfQ0KICAgICAgICBjb25zb2xlLmxvZyhpbnB1dFsidHZnLWxvZ28iXSk7DQogICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5jaGlsZE5vZGVzWzJdLmZpcnN0Q2hpbGQuc2V0QXR0cmlidXRlKCJzcmMiLCBpbnB1dFsidHZnLWxvZ28iXSk7DQogICAgfSk7DQogICAgc2hvd0VsZW1lbnQoInBvcHVwIiwgZmFsc2UpOw0KICAgIHJldHVybjsNCn0NCmZ1bmN0aW9uIHNob3dQcmV2aWV3KGVsZW1lbnQpIHsNCiAgICBsZXQgZGl2ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm15U3RyZWFtc0JveCIpOw0KICAgIHN3aXRjaCAoZWxlbWVudCkgew0KICAgICAgICBjYXNlIGZhbHNlOg0KICAgICAgICAgICAgZGl2LmNsYXNzTmFtZSA9ICJub3RWaXNpYmxlIjsNCiAgICAgICAgICAgIHJldHVybjsNCiAgICB9DQogICAgbGV0IHN0cmVhbXMgPSBbImFjdGl2ZVN0cmVhbXMiLCAiaW5hY3RpdmVTdHJlYW1zIl07DQogICAgc3RyZWFtcy5mb3JFYWNoKHByZXZpZXcgPT4gew0KICAgICAgICBsZXQgdGFibGUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChwcmV2aWV3KTsNCiAgICAgICAgdGFibGUuaW5uZXJIVE1MID0gIiI7DQogICAgICAgIGxldCBvYmogPSBTRVJWRVJbImRhdGEiXVsiU3RyZWFtUHJldmlld1VJIl1bcHJldmlld107DQogICAgICAgIG9iai5mb3JFYWNoKGNoYW5uZWwgPT4gew0KICAgICAgICAgICAgbGV0IHRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVFIiKTsNCiAgICAgICAgICAgIGxldCB0ZEtleSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICBsZXQgdGRWYWwgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgdGRLZXkuY2xhc3NOYW1lID0gInRkS2V5IjsNCiAgICAgICAgICAgIHRkVmFsLmNsYXNzTmFtZSA9ICJ0ZFZhbCI7DQogICAgICAgICAgICBzd2l0Y2ggKHByZXZpZXcpIHsNCiAgICAgICAgICAgICAgICBjYXNlICJhY3RpdmVTdHJlYW1zIjoNCiAgICAgICAgICAgICAgICAgICAgdGRLZXkuaW5uZXJUZXh0ID0gIkNoYW5uZWw6ICgrKSI7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgImluYWN0aXZlU3RyZWFtcyI6DQogICAgICAgICAgICAgICAgICAgIHRkS2V5LmlubmVyVGV4dCA9ICJDaGFubmVsOiAoLSkiOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIHRkVmFsLmlubmVyVGV4dCA9IGNoYW5uZWw7DQogICAgICAgICAgICB0ci5hcHBlbmRDaGlsZCh0ZEtleSk7DQogICAgICAgICAgICB0ci5hcHBlbmRDaGlsZCh0ZFZhbCk7DQogICAgICAgICAgICB0YWJsZS5hcHBlbmRDaGlsZCh0cik7DQogICAgICAgIH0pOw0KICAgIH0pOw0KICAgIHNob3dFbGVtZW50KCJsb2FkaW5nIiwgZmFsc2UpOw0KICAgIGRpdi5jbGFzc05hbWUgPSAidmlzaWJsZSI7DQogICAgcmV0dXJuOw0KfQ0K" - webUI["html/lang/en.json"] = "ew0KICAibWFpbk1lbnUiOg0KICB7DQogICAgIml0ZW0iOg0KICAgIHsNCiAgICAgICJwbGF5bGlzdCI6ICJQbGF5bGlzdCIsDQogICAgICAicG1zSUQiOiAiUE1TIElEIiwNCiAgICAgICJmaWx0ZXIiOiAiRmlsdGVyIiwNCiAgICAgICJ4bWx0diI6ICJYTUxUViIsDQogICAgICAibWFwcGluZyI6ICJNYXBwaW5nIiwNCiAgICAgICJ1c2VycyI6ICJVc2VycyIsDQogICAgICAic2V0dGluZ3MiOiAiU2V0dGluZ3MiLA0KICAgICAgImxvZyI6ICJMb2ciLA0KICAgICAgImxvZ291dCI6ICJMb2dvdXQiDQogICAgfSwNCiAgICAiaGVhZGxpbmUiOg0KICAgIHsNCiAgICAgICJwbGF5bGlzdCI6ICJMb2NhbCBvciByZW1vdGUgcGxheWxpc3RzIiwNCiAgICAgICJmaWx0ZXIiOiAiRmlsdGVyIHBsYXlsaXN0IiwNCiAgICAgICJ4bWx0diI6ICJMb2NhbCBvciByZW1vdGUgWE1MVFYgZmlsZXMiLA0KICAgICAgIm1hcHBpbmciOiAiTWFwIHBsYXlsaXN0IGNoYW5uZWxzIHRvIEVQRyBjaGFubmVscyIsDQogICAgICAidXNlcnMiOiAiVXNlciBtYW5hZ2VtZW50IiwNCiAgICAgICJzZXR0aW5ncyI6ICJTZXR0aW5ncyIsDQogICAgICAibG9nIjogIkxvZyIsDQogICAgICAibG9nb3V0IjogIkxvZ291dCINCiAgICB9DQogIH0sDQogICJjb25maXJtIjoNCiAgew0KICAgICJyZXN0b3JlIjogIkFsbCBkYXRhIHdpbGwgYmUgcmVwbGFjZWQgd2l0aCB0aG9zZSBmcm9tIHRoZSBiYWNrdXAuIFNob3VsZCB0aGUgZmlsZXMgYmUgcmVzdG9yZWQ/Ig0KICB9LA0KICAiYWxlcnQiOg0KICB7DQogICAgImZpbGVMb2FkaW5nRXJyb3IiOiAiRmlsZSBjb3VsZG4ndCBiZSBsb2FkZWQiLA0KICAgICJpbnZhbGlkQ2hhbm5lbE51bWJlciI6ICJJbnZhbGlkIGNoYW5uZWwgbnVtYmVyIiwNCiAgICAibWlzc2luZ0lucHV0IjogIk1pc3NpbmcgaW5wdXQiDQogIH0sDQogICJidXR0b24iOg0KICB7DQogICAgImJhY2siOiAiQmFjayIsDQogICAgImJhY2t1cCI6ICJCYWNrdXAiLA0KICAgICJidWxrRWRpdCI6ICJCdWxrIEVkaXQiLA0KICAgICJjYW5jZWwiOiAiQ2FuY2VsIiwNCiAgICAiZGVsZXRlIjogIkRlbGV0ZSIsDQogICAgImRvbmUiOiAiRG9uZSIsDQogICAgImxvZ2luIjogIkxvZ2luIiwNCiAgICAibmV3IjogIk5ldyIsDQogICAgIm5leHQiOiAiTmV4dCIsDQogICAgInJlc3RvcmUiOiAiUmVzdG9yZSIsDQogICAgInNhdmUiOiAiU2F2ZSIsDQogICAgInNlYXJjaCI6ICJTZWFyY2giLA0KICAgICJ1cGRhdGUiOiAiVXBkYXRlIiwNCiAgICAiY3JhZXRlQWNjb3VudCI6ICJDcmVhdGUgQWNjb3VudCIsDQogICAgInJlc2V0TG9ncyI6ICJSZXNldCBMb2dzIiwNCiAgICAidXBsb2FkTG9nbyI6ICJVcGxvYWQgTG9nbyINCiAgfSwNCiAgImZpbHRlciI6DQogIHsNCiAgICAidGFibGUiOg0KICAgIHsNCiAgICAgICJuYW1lIjogIkZpbHRlciBOYW1lIiwNCiAgICAgICJ0eXBlIjogIkZpbHRlciBUeXBlIiwNCiAgICAgICJmaWx0ZXIiOiAiRmlsdGVyIg0KICAgIH0sDQogICAgImN1c3RvbSI6ICJDdXN0b20iLA0KICAgICJncm91cCI6ICJNM1UgR3JvdXAiLA0KICAgICJuYW1lIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiRmlsdGVyIE5hbWUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIkZpbHRlciBuYW1lIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAiZGVzY3JpcHRpb24iOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJEZXNjcmlwdGlvbiIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiRGVzY3JpcHRpb24iLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJ0eXBlIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiVHlwZSIsDQogICAgICAiZ3JvdXBUaXRsZSI6ICJHcm91cCBUaXRsZSIsDQogICAgICAiY3VzdG9tRmlsdGVyIjogIkN1c3RvbSBGaWx0ZXIiDQogICAgfSwNCiAgICAiY2FzZVNlbnNpdGl2ZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIkNhc2UgU2Vuc2l0aXZlIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJmaWx0ZXJSdWxlIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiRmlsdGVyIFJ1bGUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIlNwb3J0IHtIRH0gIXtFUyxJVH0iLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJmaWx0ZXJHcm91cCI6DQogICAgew0KICAgICAgInRpdGxlIjogIkdyb3VwIFRpdGxlIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIlNlbGVjdCBhIE0zVSBncm91cC4gKENvdW50ZXIpPGJyPkNoYW5naW5nIHRoZSBncm91cCB0aXRsZSBpbiB0aGUgTTNVIGludmFsaWRhdGVzIHRoZSBmaWx0ZXIuIg0KICAgIH0sDQogICAgImluY2x1ZGUiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJJbmNsdWRlIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJGSEQsVUhEIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJDaGFubmVsIG5hbWUgbXVzdCBpbmNsdWRlLjxicj4oQ29tbWEgc2VwYXJhdGVkKSBDb21tYSBtZWFucyBvciINCiAgICB9LA0KICAgICJleGNsdWRlIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiRXhjbHVkZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiRVMsSVQiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIkNoYW5uZWwgbmFtZSBtdXN0IG5vdCBjb250YWluLjxicj4oQ29tbWEgc2VwYXJhdGVkKSBDb21tYSBtZWFucyBvciINCiAgICB9LA0KICAgICJwcmVzZXJ2ZU1hcHBpbmciOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJQcmVzZXJ2ZSBFeGlzdGluZyBNM1U8YnI+Q2hhbm5lbCBOdW1iZXJzIiwNCiAgICAgICJwYWxjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIlByZXNlcnZlIGV4aXN0aW5nIE0zVSBwbGF5bGlzdCBjaGFubmVsIG51bWJlcnM/Ig0KICAgIH0sDQogICAgInN0YXJ0aW5nQ2hhbm5lbCI6DQogICAgew0KICAgICAgInRpdGxlIjogIlN0YXJ0aW5nIENoYW5uZWwgTnVtYmVyIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJkZWZhdWx0TWlzc2luZ0VQRyI6DQogICAgew0KICAgICAgInRpdGxlIjogIkZpbGwgTWlzc2luZyBFUEcgRGF0YSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJXaGVuIHRoZXJlIGlzIG5vIG1hdGNoaW5nIEVQRyBkYXRhIGZvciBjaGFubmVsLCA8YnI+YXV0b2ZpbGwgd2l0aCB4VGVWZSBkdW1teSBFUEcgZGF0YT8iDQogICAgfQ0KDQogIH0sDQogICJwbGF5bGlzdCI6DQogIHsNCiAgICAidGFibGUiOg0KICAgIHsNCiAgICAgICJwbGF5bGlzdCI6ICJQbGF5bGlzdCIsDQogICAgICAidHVuZXIiOiAiVHVuZXIiLA0KICAgICAgImxhc3RVcGRhdGUiOiAiTGFzdCBVcGRhdGUiLA0KICAgICAgImF2YWlsYWJpbGl0eSI6ICJBdmFpbGFiaWxpdHkiLA0KICAgICAgInR5cGUiOiAiVHlwZSIsDQogICAgICAic3RyZWFtcyI6ICJTdHJlYW1zIiwNCiAgICAgICJncm91cFRpdGxlIjogImdyb3VwLXRpdGxlIiwNCiAgICAgICJ0dmdJRCI6ICJ0dmctaWQiLA0KICAgICAgInVuaXF1ZUlEIjogIlVuaXF1ZSBJRCINCiAgICB9LA0KICAgICJwbGF5bGlzdFR5cGUiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJQbGF5bGlzdCB0eXBlIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJ0eXBlIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiVHlwZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAibmFtZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIk5hbWUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIlBsYXlsaXN0IG5hbWUiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJkZXNjcmlwdGlvbiI6DQogICAgew0KICAgICAgInRpdGxlIjogIkRlc2NyaXB0aW9uIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJEZXNjcmlwdGlvbiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgImZpbGVNM1UiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJNM1UgRmlsZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiRmlsZSBwYXRoIG9yIFVSTCBvZiB0aGUgTTNVIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAiZmlsZUhESFIiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJIREhvbWVSdW4gSVAiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIklQIGFkZHJlc3MgYW5kIHBvcnQgKDE5Mi4xNjguMS4xMDo1MDA0KSIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgInR1bmVyIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiVHVuZXIgLyBTdHJlYW1zIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIk51bWJlciBvZiBwYXJhbGxlbCBjb25uZWN0aW9ucyB0aGF0IGNhbiBiZSBlc3RhYmxpc2hlZCB0byB0aGUgcHJvdmlkZXIuIDxicj5Pbmx5IGF2YWlsYWJsZSB3aXRoIGFjdGl2YXRlZCBidWZmZXIuPGJyPk5ldyBzZXR0aW5ncyB3aWxsIG9ubHkgYmUgYXBwbGllZCBhZnRlciBxdWl0dGluZyBhbGwgc3RyZWFtcy4iDQogICAgfQ0KICB9LA0KICAieG1sdHYiOg0KICB7DQogICAgInRhYmxlIjoNCiAgICB7DQogICAgICAiZ3VpZGUiOiAiR3VpZGUiLA0KICAgICAgImxhc3RVcGRhdGUiOiAiTGFzdCBVcGRhdGUiLA0KICAgICAgImF2YWlsYWJpbGl0eSI6ICJBdmFpbGFiaWxpdHkiLA0KICAgICAgImNoYW5uZWxzIjogIkNoYW5uZWxzIiwNCiAgICAgICJwcm9ncmFtcyI6ICJQcm9ncmFtcyINCiAgICB9LA0KICAgICJuYW1lIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiTmFtZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiR3VpZGUgbmFtZSIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgImRlc2NyaXB0aW9uIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiRGVzY3JpcHRpb24iLA0KICAgICAgInBsYWNlaG9sZGVyIjogIkRlc2NyaXB0aW9uIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAiZmlsZVhNTFRWIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiWE1MVFYgRmlsZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiRmlsZSBwYXRoIG9yIFVSTCBvZiB0aGUgWE1MVFYiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9DQogIH0sDQogICJtYXBwaW5nIjoNCiAgew0KICAgICJ0YWJsZSI6DQogICAgew0KICAgICAgImNoTm8iOiAiQ2guIE5vLiIsDQogICAgICAibG9nbyI6ICJMb2dvIiwNCiAgICAgICJjaGFubmVsTmFtZSI6ICJDaGFubmVsIE5hbWUiLA0KICAgICAgInBsYXlsaXN0IjogIlBsYXlsaXN0IiwNCiAgICAgICJncm91cFRpdGxlIjogIkdyb3VwIFRpdGxlIiwNCiAgICAgICJ4bWx0dkZpbGUiOiAiWE1MVFYgRmlsZSIsDQogICAgICAieG1sdHZJRCI6ICJYTUxUViBJRCIsDQogICAgICAidGltZXNoaWZ0IjogIlRpbWVzaGlmdCINCiAgICB9LA0KICAgICJhY3RpdmUiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJBY3RpdmUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgImNoYW5uZWxOYW1lIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiQ2hhbm5lbCBOYW1lIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJkZXNjcmlwdGlvbiI6DQogICAgew0KICAgICAgInRpdGxlIjogIkNoYW5uZWwgRGVzY3JpcHRpb24iLA0KICAgICAgInBsYWNlaG9sZGVyIjogIlVzZWQgYnkgdGhlIER1bW15IGFzIGFuIFhNTCBkZXNjcmlwdGlvbiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgInVwZGF0ZUNoYW5uZWxOYW1lIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiVXBkYXRlIENoYW5uZWwgTmFtZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAiY2hhbm5lbExvZ28iOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJMb2dvIFVSTCIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAidXBkYXRlQ2hhbm5lbExvZ28iOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJVcGRhdGUgQ2hhbm5lbCBMb2dvIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJlcGdDYXRlZ29yeSI6DQogICAgew0KICAgICAgInRpdGxlIjogIkVQRyBDYXRlZ29yeSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAibTN1R3JvdXBUaXRsZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIkdyb3VwIFRpdGxlICh4dGV2ZS5tM3UpIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJ4bWx0dkZpbGUiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJYTUxUViBGaWxlIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJ4bWx0dkNoYW5uZWwiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJYTUxUViBDaGFubmVsIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJ0aW1lc2hpZnQiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJUaW1lc2hpZnQiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIjAiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9DQogIH0sDQogICJ1c2VycyI6DQogIHsNCiAgICAidGFibGUiOg0KICAgIHsNCiAgICAgICJ1c2VybmFtZSI6ICJVc2VybmFtZSIsDQogICAgICAicGFzc3dvcmQiOiAiUGFzc3dvcmQiLA0KICAgICAgIndlYiI6ICJXRUIiLA0KICAgICAgInBtcyI6ICJQTVMiLA0KICAgICAgIm0zdSI6ICJNM1UiLA0KICAgICAgInhtbCI6ICJYTUwiLA0KICAgICAgImFwaSI6ICJBUEkiDQogICAgfSwNCiAgICAidXNlcm5hbWUiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJVc2VybmFtZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiVXNlcm5hbWUiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJwYXNzd29yZCI6DQogICAgew0KICAgICAgInRpdGxlIjogIlBhc3N3b3JkIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJQYXNzd29yZCIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgImNvbmZpcm0iOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJDb25maXJtIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJQYXNzd29yZCBjb25maXJtIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAid2ViIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiV2ViIEFjY2VzcyIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAicG1zIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiUE1TIEFjY2VzcyIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAibTN1IjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiTTNVIEFjY2VzcyIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAieG1sIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiWE1MIEFjY2VzcyIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAiYXBpIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiQVBJIEFjY2VzcyIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfQ0KICB9LA0KICAic2V0dGluZ3MiOg0KICB7DQogICAgImNhdGVnb3J5IjoNCiAgICB7DQogICAgICAiZ2VuZXJhbCI6ICJHZW5lcmFsIiwNCiAgICAgICJmaWxlcyI6ICJGaWxlcyIsDQogICAgICAic3RyZWFtaW5nIjogIlN0cmVhbWluZyIsDQogICAgICAiYmFja3VwIjogIkJhY2t1cCIsDQogICAgICAiYXV0aGVudGljYXRpb24iOiAiQXV0aGVudGljYXRpb24iDQogICAgfSwNCiAgICAidXBkYXRlIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiU2NoZWR1bGUgZm9yIHVwZGF0aW5nIChQbGF5bGlzdCwgWE1MVFYsIEJhY2t1cCkiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIjAwMDAsMTAwMCwyMDAwIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJUaW1lIGluIDI0IGhvdXIgZm9ybWF0ICgwODAwID0gODowMCBhbSkuIE1vcmUgdGltZXMgY2FuIGJlIGVudGVyZWQgY29tbWEgc2VwYXJhdGVkLiBMZWF2ZSB0aGlzIGZpZWxkIGVtcHR5IGlmIG5vIHVwZGF0ZXMgYXJlIHRvIGJlIGNhcnJpZWQgb3V0LiINCiAgICB9LA0KICAgICJhcGkiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJBUEkgSW50ZXJmYWNlIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJWaWEgQVBJIGludGVyZmFjZSBpdCBpcyBwb3NzaWJsZSB0byBzZW5kIGNvbW1hbmRzIHRvIHhUZVZlLiBBUEkgZG9jdW1lbnRhdGlvbiBpcyA8YSBocmVmPSdodHRwczovL2dpdGh1Yi5jb20veHRldmUtcHJvamVjdC94VGVWZS1Eb2N1bWVudGF0aW9uL2Jsb2IvbWFzdGVyL2VuL2NvbmZpZ3VyYXRpb24ubWQjYXBpJz5oZXJlPC9hPiINCiAgICB9LA0KICAgICJlcGdTb3VyY2UiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJFUEcgU291cmNlIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJQTVM6PGJyPi0gVXNlIEVQRyBkYXRhIGZyb20gUGxleCBvciBFbWJ5IDxicj48YnI+WEVQRzo8YnI+LSBVc2Ugb2Ygb25lIG9yIG1vcmUgWE1MVFYgZmlsZXM8YnI+LSBDaGFubmVsIG1hbmFnZW1lbnQ8YnI+LSBNM1UgLyBYTUxUViBleHBvcnQgKEhUVFAgbGluayBmb3IgSVBUViBhcHBzKSINCiAgICB9LA0KICAgICJ0dW5lciI6DQogICAgew0KICAgICAgInRpdGxlIjogIk51bWJlciBvZiBUdW5lcnMiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIk51bWJlciBvZiBwYXJhbGxlbCBjb25uZWN0aW9ucyB0aGF0IGNhbiBiZSBlc3RhYmxpc2hlZCB0byB0aGUgcHJvdmlkZXIuPGJyPkF2YWlsYWJsZSBmb3I6IFBsZXgsIEVtYnkgKEhESFIpLCBNM1UgKHdpdGggYWN0aXZlIGJ1ZmZlcikuPGJyPkFmdGVyIGEgY2hhbmdlLCB4VGVWZSBtdXN0IGJlIGRlbGV0ZSBpbiB0aGUgUGxleCAvIEVtYnkgRFZSIHNldHRpbmdzIGFuZCBzZXQgdXAgYWdhaW4uIg0KICAgIH0sDQogICAgImZpbGVzVXBkYXRlIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiVXBkYXRlcyBhbGwgZmlsZXMgYXQgc3RhcnR1cCIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiVXBkYXRlcyBhbGwgcGxheWxpc3RzLCB0dW5lciBhbmQgWE1MVFYgZmlsZXMgYXQgc3RhcnR1cC4iDQogICAgfSwNCiAgICAiY2FjaGVJbWFnZXMiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJJbWFnZSBDYWNoaW5nIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJBbGwgaW1hZ2VzIGZyb20gdGhlIFhNTFRWIGZpbGUgYXJlIGNhY2hlZCwgYWxsb3dpbmcgZmFzdGVyIHJlbmRlcmluZyBvZiB0aGUgZ3JpZCBpbiB0aGUgY2xpZW50Ljxicj5Eb3dubG9hZGluZyB0aGUgaW1hZ2VzIG1heSB0YWtlIGEgd2hpbGUgYW5kIHdpbGwgYmUgZG9uZSBpbiB0aGUgYmFja2dyb3VuZC4iDQogICAgfSwNCiAgICAicmVwbGFjZUVtcHR5SW1hZ2VzIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiUmVwbGFjZSBtaXNzaW5nIHByb2dyYW0gaW1hZ2VzIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJJZiB0aGUgcG9zdGVyIGluIHRoZSBYTUxUViBwcm9ncmFtIGlzIG1pc3NpbmcsIHRoZSBjaGFubmVsIGxvZ28gd2lsbCBiZSB1c2VkLiINCiAgICB9LA0KICAgICJ4dGV2ZUF1dG9VcGRhdGUiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJBdXRvbWF0aWMgdXBkYXRlIG9mIHhUZVZlIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJJZiBhIG5ldyB2ZXJzaW9uIG9mIHhUZVZlIGlzIGF2YWlsYWJsZSwgaXQgd2lsbCBiZSBhdXRvbWF0aWNhbGx5IGluc3RhbGxlZC4gVGhlIHVwZGF0ZXMgYXJlIGRvd25sb2FkZWQgZnJvbSBHaXRIdWIuIg0KICAgIH0sDQogICAgInN0cmVhbUJ1ZmZlcmluZyI6DQogICAgew0KICAgICAgInRpdGxlIjogIlN0cmVhbSBCdWZmZXIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIkZ1bmN0aW9ucyBvZiB0aGUgYnVmZmVyOjxicj4tIFRoZSBzdHJlYW0gaXMgcGFzc2VkIGZyb20geFRlVmUsIEZGbXBlZyBvciBWTEMgdG8gUGxleCwgRW1ieSBvciBNM1UgUGxheWVyPGJyPi0gU21hbGwgamVya2luZyBvZiB0aGUgc3RyZWFtcyBjYW4gYmUgY29tcGVuc2F0ZWQ8YnI+LSBITFMgLyBNM1U4IHN1cHBvcnQ8YnI+LSBSVFAgLyBSVFBTIHN1cHBvcnQgKG9ubHkgRkZtcGVnIG9yIFZMQyk8YnI+LSBSZS1zdHJlYW1pbmc8YnI+LSBTZXBhcmF0ZSB0dW5lciBsaW1pdCBmb3IgZWFjaCBwbGF5bGlzdCIsDQogICAgICAiaW5mb19mYWxzZSI6ICJObyBCdWZmZXIgKENsaWVudCBjb25uZWN0cyB0byB0aGUgc3RyZWFtaW5nIHNlcnZlcikiLA0KICAgICAgImluZm9feHRldmUiOiAieFRlVmUgY29ubmVjdHMgdG8gdGhlIHN0cmVhbWluZyBzZXJ2ZXIiLA0KICAgICAgImluZm9fZmZtcGVnIjogIkZGbXBlZyBjb25uZWN0cyB0byB0aGUgc3RyZWFtaW5nIHNlcnZlciIsDQogICAgICAiaW5mb192bGMiOiAiVkxDIGNvbm5lY3RzIHRvIHRoZSBzdHJlYW1pbmcgc2VydmVyIg0KDQogICAgfSwNCiAgICAidWRweHkiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJVRFB4eSBhZGRyZXNzIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJUaGUgYWRkcmVzcyBvZiB5b3VyIFVEUHh5IHNlcnZlci4gSWYgc2V0LCBhbmQgdGhlIGNoYW5uZWwgVVJMcyBpbiB0aGUgbTN1IGlzIG11bHRpY2FzdCwgeFRlVmUgd2lsbCByZXdyaXRlIGl0IHNvIHRoYXQgaXQgaXMgYWNjZXNzZWQgdmlhIHRoZSBVRFB4eSBzZXJ2aWNlLiIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiaG9zdDpwb3J0Ig0KICAgIH0sDQogICAgImZmbXBlZ1BhdGgiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJGRm1wZWcgQmluYXJ5IFBhdGgiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIlBhdGggdG8gRkZtcGVnIGJpbmFyeS4iLA0KICAgICAgInBsYWNlaG9sZGVyIjogIi9wYXRoL3RvL2ZmbXBlZyINCiAgICB9LA0KICAgICJmZm1wZWdPcHRpb25zIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiRkZtcGVnIE9wdGlvbnMiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIkZGbXBlZyBvcHRpb25zLjxicj5Pbmx5IGNoYW5nZSBpZiB5b3Uga25vdyB3aGF0IHlvdSBhcmUgZG9pbmcuPGJyPkxlYXZlIGJsYW5rIHRvIHNldCBkZWZhdWx0IHNldHRpbmdzLiIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiTGVhdmUgYmxhbmsgdG8gc2V0IGRlZmF1bHQgc2V0dGluZ3MiDQogICAgfSwNCiAgICAidmxjUGF0aCI6DQogICAgew0KICAgICAgInRpdGxlIjogIlZMQyAvIENWTEMgQmluYXJ5IFBhdGgiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIlBhdGggdG8gVkxDIC8gQ1ZMQyBiaW5hcnkuIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIvcGF0aC90by9jdmxjIg0KICAgIH0sDQogICAgInZsY09wdGlvbnMiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJWTEMgLyBDVkxDIE9wdGlvbnMiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIlZMQyAvIENWTEMgb3B0aW9ucy48YnI+T25seSBjaGFuZ2UgaWYgeW91IGtub3cgd2hhdCB5b3UgYXJlIGRvaW5nLjxicj5MZWF2ZSBibGFuayB0byBzZXQgZGVmYXVsdCBzZXR0aW5ncy4iLA0KICAgICAgInBsYWNlaG9sZGVyIjogIkxlYXZlIGJsYW5rIHRvIHNldCBkZWZhdWx0IHNldHRpbmdzIg0KICAgIH0sDQogICAgImJ1ZmZlclNpemUiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJCdWZmZXIgU2l6ZSIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiQnVmZmVyIHNpemUgaW4gTUIuPGJyPk0zVTg6IElmIHRoZSBUUyBzZWdtZW50IHNtYWxsZXIgdGhlbiB0aGUgYnVmZmVyIHNpemUsIHRoZSBmaWxlIHNpemUgb2YgdGhlIHNlZ21lbnQgaXMgdXNlZC4iDQogICAgfSwNCiAgICAiYnVmZmVyVGltZW91dCI6DQogICAgew0KICAgICAgInRpdGxlIjogIlRpbWVvdXQgZm9yIG5ldyBjbGllbnQgY29ubmVjdGlvbnMiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIlRoZSB4VGVWZSBidWZmZXIgd2FpdHMgdW50aWwgbmV3IGNsaWVudCBjb25uZWN0aW9ucyBhcmUgZXN0YWJsaXNoZWQuIEhlbHBmdWwgZm9yIGZhc3QgY2hhbm5lbCBzd2l0Y2hpbmcuIFZhbHVlIGluIG1pbGxpc2Vjb25kcy4iLA0KICAgICAgInBsYWNlaG9sZGVyIjogIjEwMCINCiAgICB9LA0KICAgICJ1c2VyQWdlbnQiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJVc2VyIEFnZW50IiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJVc2VyIEFnZW50IGZvciBIVFRQIHJlcXVlc3RzLiBGb3IgZXZlcnkgSFRUUCBjb25uZWN0aW9uLCB0aGlzIHZhbHVlIGlzIHVzZWQgZm9yIHRoZSB1c2VyIGFnZW50LiBTaG91bGQgb25seSBiZSBjaGFuZ2VkIGlmIHhUZVZlIGlzIGJsb2NrZWQuIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJ4VGVWZSINCiAgICB9LA0KICAgICJiYWNrdXBQYXRoIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiTG9jYXRpb24gZm9yIGF1dG9tYXRpYyBiYWNrdXBzIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIvbW50L2RhdGEvYmFja3VwL3h0ZXZlLyIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiQmVmb3JlIGFueSB1cGRhdGUgb2YgdGhlIHByb3ZpZGVyIGRhdGEgYnkgdGhlIHNjaGVkdWxlLCB4VGVWZSBjcmVhdGVzIGEgYmFja3VwLiBUaGUgcGF0aCBmb3IgdGhlIGF1dG9tYXRpYyBiYWNrdXBzIGNhbiBiZSBjaGFuZ2VkLiB4VGVWZSByZXF1aXJlcyB3cml0ZSBwZXJtaXNzaW9uIGZvciB0aGlzIGZvbGRlci4iDQogICAgfSwNCiAgICAidGVtcFBhdGgiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJMb2NhdGlvbiBmb3IgdGhlIHRlbXBvcmFyeSBmaWxlcyIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiL3RtcC94dGV2ZS8iLA0KICAgICAgImRlc2NyaXB0aW9uIjogIkxvY2F0aW9uIGZvciB0aGUgYnVmZmVyIGZpbGVzLiINCiAgICB9LA0KICAgICJiYWNrdXBLZWVwIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiTnVtYmVyIG9mIGJhY2t1cHMgdG8ga2VlcCIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiTnVtYmVyIG9mIGJhY2t1cHMgdG8ga2VlcC4gT2xkZXIgYmFja3VwcyBhcmUgYXV0b21hdGljYWxseSBkZWxldGVkLiINCiAgICB9LA0KICAgICJhdXRoZW50aWNhdGlvbldFQiI6DQogICAgew0KICAgICAgInRpdGxlIjogIldFQiBBdXRoZW50aWNhdGlvbiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiQWNjZXNzIHRvIHRoZSB3ZWIgaW50ZXJmYWNlIG9ubHkgcG9zc2libGUgd2l0aCBjcmVkZW50aWFscy4iDQogICAgfSwNCiAgICAiYXV0aGVudGljYXRpb25QTVMiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJQTVMgQXV0aGVudGljYXRpb24iLA0KICAgICAgImRlc2NyaXB0aW9uIjogIlBsZXggcmVxdWVzdHMgYXJlIG9ubHkgcG9zc2libGUgd2l0aCBhdXRoZW50aWNhdGlvbi4gPGJyPjxiPldhcm5pbmchISE8L2I+IEFmdGVyIGFjdGl2YXRpbmcgdGhpcyBmdW5jdGlvbiB4VGVWZSBtdXN0IGJlIGRlbGV0ZSBpbiB0aGUgUE1TIERWUiBzZXR0aW5ncyBhbmQgc2V0IHVwIGFnYWluLiINCiAgICB9LA0KICAgICJhdXRoZW50aWNhdGlvbk0zVSI6DQogICAgew0KICAgICAgInRpdGxlIjogIk0zVSBBdXRoZW50aWNhdGlvbiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiRG93bmxvYWRpbmcgdGhlIHh0ZXZlLm0zdSBmaWxlIHZpYSBhbiBIVFRQIHJlcXVlc3QgaXMgb25seSBwb3NzaWJsZSB3aXRoIGF1dGhlbnRpY2F0aW9uLiINCiAgICB9LA0KICAgICJhdXRoZW50aWNhdGlvblhNTCI6DQogICAgew0KICAgICAgInRpdGxlIjogIlhNTCBBdXRoZW50aWNhdGlvbiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiRG93bmxvYWRpbmcgdGhlIHh0ZXZlLnhtbCBmaWxlIHZpYSBhbiBIVFRQIHJlcXVlc3QgaXMgb25seSBwb3NzaWJsZSB3aXRoIGF1dGhlbnRpY2F0aW9uIg0KICAgIH0sDQogICAgImF1dGhlbnRpY2F0aW9uQVBJIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiQVBJIEF1dGhlbnRpY2F0aW9uIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJBY2Nlc3MgdG8gdGhlIEFQSSBpbnRlcmZhY2UgaXMgb25seSBwb3NzaWJsZSB3aXRoIGF1dGhlbnRpY2F0aW9uLiINCiAgICB9DQogIH0sDQogICJ3aXphcmQiOg0KICB7DQogICAgImVwZ1NvdXJjZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIkVQRyBTb3VyY2UiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIlBNUzo8YnI+LSBVc2UgRVBHIGRhdGEgZnJvbSBQbGV4IG9yIEVtYnkgPGJyPjxicj5YRVBHOjxicj4tIFVzZSBvZiBvbmUgb3IgbW9yZSBYTUxUViBmaWxlczxicj4tIENoYW5uZWwgbWFuYWdlbWVudDxicj4tIE0zVSAvIFhNTFRWIGV4cG9ydCAoSFRUUCBsaW5rIGZvciBJUFRWIGFwcHMpIg0KICAgIH0sDQogICAgInR1bmVyIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiTnVtYmVyIG9mIHR1bmVycyIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiTnVtYmVyIG9mIHBhcmFsbGVsIGNvbm5lY3Rpb25zIHRoYXQgY2FuIGJlIGVzdGFibGlzaGVkIHRvIHRoZSBwcm92aWRlci48YnI+QXZhaWxhYmxlIGZvcjogUGxleCwgRW1ieSAoSERIUiksIE0zVSAod2l0aCBhY3RpdmUgYnVmZmVyKS48YnI+QWZ0ZXIgYSBjaGFuZ2UsIHhUZVZlIG11c3QgYmUgZGVsZXRlIGluIHRoZSBQbGV4IC8gRW1ieSBEVlIgc2V0dGluZ3MgYW5kIHNldCB1cCBhZ2Fpbi4iDQogICAgfSwNCiAgICAibTN1IjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiTTNVIFBsYXlsaXN0IiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJGaWxlIHBhdGggb3IgVVJMIG9mIHRoZSBNM1UiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIkxvY2FsIG9yIHJlbW90ZSBwbGF5bGlzdHMiDQogICAgfSwNCiAgICAieG1sdHYiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJYTUxUViBGaWxlIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJGaWxlIHBhdGggb3IgVVJMIG9mIHRoZSBYTUxUViIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiTG9jYWwgb3IgcmVtb3RlIFhNTFRWIGZpbGUiDQogICAgfQ0KICB9LA0KICAibG9naW4iOg0KICB7DQogICAgImZhaWxlZCI6ICJVc2VyIGF1dGhlbnRpY2F0aW9uIGZhaWxlZCIsDQogICAgImhlYWRsaW5lIjogIkxvZ2luIiwNCiAgICAidXNlcm5hbWUiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJVc2VybmFtZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiVXNlcm5hbWUiDQogICAgfSwNCiAgICAicGFzc3dvcmQiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJQYXNzd29yZCIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiUGFzc3dvcmQiDQogICAgfQ0KICB9LA0KICAiYWNjb3VudCI6DQogIHsNCiAgICAiZmFpbGVkIjogIlBhc3N3b3JkIGRvZXMgbm90IG1hdGNoIiwNCiAgICAiaGVhZGxpbmUiOiAiQ3JlYXRlIHVzZXIgYWNjb3VudCIsDQogICAgInVzZXJuYW1lIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiVXNlcm5hbWUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIlVzZXJuYW1lIg0KICAgIH0sDQogICAgInBhc3N3b3JkIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiUGFzc3dvcmQiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIlBhc3N3b3JkIg0KICAgIH0sDQogICAgImNvbmZpcm0iOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJDb25maXJtIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJDb25maXJtIg0KICAgIH0NCiAgfQ0KfQ==" - webUI["html/login.html"] = "PCFkb2N0eXBlIGh0bWw+DQo8aHRtbD4NCiAgPGhlYWQ+DQogICAgPG1ldGEgY2hhcnNldD0idXRmLTgiPg0KICAgIDxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgsIGluaXRpYWwtc2NhbGU9MS4wIiAvPiANCiAgICA8dGl0bGU+eFRlVmU8L3RpdGxlPg0KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iY3NzL3NjcmVlbi5jc3MiIHR5cGU9InRleHQvY3NzIj4NCiAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9ImNzcy9iYXNlLmNzcyIgdHlwZT0idGV4dC9jc3MiPg0KICAgIDxzY3JpcHQgbGFuZ3VhZ2U9ImphdmFzY3JpcHQiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJqcy9uZXR3b3JrX3RzLmpzIj48L3NjcmlwdD4NCiAgICA8c2NyaXB0IGxhbmd1YWdlPSJqYXZhc2NyaXB0IiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ianMvYXV0aGVudGljYXRpb25fdHMuanMiPjwvc2NyaXB0Pg0KICA8L2hlYWQ+DQoNCiAgICA8Ym9keT4NCiAgICAgICAgICANCiAgICAgIDxkaXYgaWQ9ImhlYWRlciIgY2xhc3M9ImltZ0NlbnRlciI+PC9kaXY+DQoNCiAgICAgIDxkaXYgaWQ9ImJveCI+DQoNCiAgICAgICAgPGRpdiBpZD0iaGVhZGxpbmUiPg0KICAgICAgICAgIDxoMSBpZD0iaGVhZC10ZXh0IiBjbGFzcz0iY2VudGVyIj57ey5sb2dpbi5oZWFkbGluZX19PC9oMT4NCiAgICAgICAgPC9kaXY+DQoNCiAgICAgICAgPHAgaWQ9ImVyciIgY2xhc3M9ImVycm9yTXNnIGNlbnRlciI+e3suYXV0aGVudGljYXRpb25FcnJ9fTwvcD4NCg0KICAgICAgICA8ZGl2IGlkPSJjb250ZW50Ij4NCg0KICAgICAgICAgICAgPGZvcm0gaWQ9ImF1dGhlbnRpY2F0aW9uIiBhY3Rpb249IiIgbWV0aG9kPSJwb3N0Ij4NCg0KICAgICAgICAgICAgICA8aDU+e3subG9naW4udXNlcm5hbWUudGl0bGV9fTo8L2g1Pg0KICAgICAgICAgICAgICA8aW5wdXQgaWQ9InVzZXJuYW1lIiB0eXBlPSJ0ZXh0IiBuYW1lPSJ1c2VybmFtZSIgcGxhY2Vob2xkZXI9IlVzZXJuYW1lIiB2YWx1ZT0iIj4NCiAgICAgICAgICAgICAgPGg1Pnt7LmxvZ2luLnBhc3N3b3JkLnRpdGxlfX06PC9oNT4NCiAgICAgICAgICAgICAgPGlucHV0IGlkPSJwYXNzd29yZCIgdHlwZT0icGFzc3dvcmQiIG5hbWU9InBhc3N3b3JkIiBwbGFjZWhvbGRlcj0iUGFzc3dvcmQiIHZhbHVlPSIiPg0KDQogICAgICAgICAgICA8L2Zvcm0+DQoNCiAgICAgICAgPC9kaXY+DQoNCiAgICAgICAgPGRpdiBpZD0iYm94LWZvb3RlciI+DQogICAgICAgICAgPGlucHV0IGlkPSJzdWJtaXQiIGNsYXNzPSIiIHR5cGU9ImJ1dHRvbiIgdmFsdWU9Int7LmJ1dHRvbi5sb2dpbn19IiBvbmNsaWNrPSJqYXZhc2NyaXB0OiBsb2dpbigpOyI+DQogICAgICAgIDwvZGl2Pg0KICAgICAgICANCiAgICAgIDwvZGl2Pg0KDQogICAgPC9ib2R5Pg0KICAgIA0KPC9odG1sPg==" - webUI["html/video/stream-limit.ts"] = "R0AREABC8CUAAcEAAP8B/wAB/IAUSBIBBkZGbXBlZwlTZXJ2aWNlMDF3fEPK//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////9HQAAQAACwDQABwQAAAAHwACqxBLL//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////0dQABAAArASAAHBAADhAPAAG+EA8AAVvU1W////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////R0EAMAdQAAB7DH4AAAAB4AAAgMAKMQAJEKERAAfYYQAAAAEJ8AAAAAFnZAAorNlAeAIn5cBEAAADAAQAAAMAyDxgxlgAAAABaOvjyyLAAAABBgX//6rcRem95tlIt5Ys2CDZI+7veDI2NCAtIGNvcmUgMTUyIHIyODU0IGU5YTU5MDMgLSBILjI2NC9NUEVHLTQgQVZDIGNvZGVjIC0gQ29weWxlZnQgMjAwMy0yMDE3IC0gaHR0cDovL3dHAQARd3cudmlkZW9sYW4ub3JnL3gyNjQuaHRtbCAtIG9wdGlvbnM6IGNhYmFjPTEgcmVmPTMgZGVibG9jaz0xOjA6MCBhbmFseXNlPTB4MzoweDExMyBtZT1oZXggc3VibWU9NyBwc3k9MSBwc3lfcmQ9MS4wMDowLjAwIG1peGVkX3JlZj0xIG1lX3JhbmdlPTE2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ACqxBLL//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////0dQABEAArASAAHBAADhAPAAG+EA8AAVvU1W////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////RwEAGO10tGlFAwyE91Tzg8923ovJk1dv2xh1gVlYQFtWdZ6NSQ8vgHM7/tMfIZPsqgCU856rdBJJRMDaor/oWA7pkvSmC2aqaC5fd/mkWUPTuG8fRhGqOY1rKxLNSI3HtTQAcuVBxRM0NfMw0ky/JMJYZiCgXcNsxpxl+khr/9fKtO5Fg2VNBti92xcZimHUZDJMQTBOY6vSR9L1N2O/kJQCpdfuc9bkcUTMjH/es/lAySxvbiislkohqkpHAQAZVatwHI0t9eHCUfDyWUEtuCNyDwQFOVMtaYEQJrTrhQX0VduT86F0u0wN9ag0uPsrmX6Rid/x5S7KI1SkS+qP6cdmgSP57uiF4dG6IKsWNfGBLY09H/CFlrg73WINQkkp2diKkdEmtZetn8+ZAKzR5eXN5FebiKt6pIkNLuSofjosypEs2o6boKsfpmbtOV0idOeWDM9C8EIcn3aZwk1s2KBDvt1DlY+i2Cuvhk3XoKLT+pq/bOC5QkcBABolcOXneZXLoQw9W1PH1f/of92Ytjj8okrWijcQAKlE5l8XoTb9qrOiZnDOhqwcMlB9H9rorq041I89hChohYoSkJElcM8V+r8WYN5axD1BNyfwaHAOm4UN2/VEYOkNSfMjmx2S0WW/F2ha8Jj4fc4QgqcXr+TnnbwqLkLTValK4Qa1pcv7PIbDq6zCUfxe04guZ8xEhPQjp17/G6IB/6uq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wnibxQ/cXEblVnM47wbCN3iy4eHjYB5MoIICrSYmd8nt4V0toLs084KJlmnur5FbApYM4W79ff4oZkW88Cg8Fv8TnWhh1Hqc4UlhMbRKm2QxDgfBxar3U7BwNR6prrXXjqfR7ja3tPli+H7Jez/xcTg32QpHAQAdTa7pSSgBvmOqzz175NAFIhwE9p3d71F9jLvhaPv8q1iKopL0kizwzEWElnXWmNhfLkl/Au8KujnoKUaxVdTe+zAZm2dOkejnpNVtVj0Aw9wKcG3ZQ1iRZrUFRIoPKYlmR+oi0LrupuhYABtgPbdCbDtezGTr0nw9wVd/rZ6V+1wcoJ6+8VAVueIdwI3brqm6EoFHiI8L6lER+9SefB8fHo4NYgr/I8jSxaa/2PLX2K/DjrlY6bN8fEcBAB7DXsuh8DITF6CYWj2HTFvqfzlic3QHXnHtvsTFNpyVY1LY8y/fRK2mwALN6IB5W3OuyoKiA3K0lJdQUv2gYhHWvPTV218HYrD0rkbMxRH0SiEEkrHDeOt5T1HtWD13D2/QvMu535fsfZyeaFDjdCE9M0Xi8Lfc7Xj1ZNGend7Jo7/cEiczFkc1vB4z2JpFGZreV2EdquyEzC2STFJtfimyx8QlLngEuR1cxH+lWEcFX+mvBa/eqktIRwEAH6VazFLPNsnHZqsI66TVoArQuUUGFAzr8MT8GZ9V6qpZa5D0jA/4eGi6Kq0smUgRExnqIbSMLWqDf/Pk2YT3MpHTu9VE3Dn9blgB6KsVIkWnB98Y2n/6DrZDcF94Ndu0Ka4U/RZwdV5O5KcO+lU2ZiIOYTYZ6Ie0d+tApxYxJ+YmxaDoCyRNe6crw/yzR5SflT8ddi/E2BM+l+nwVDiKZ/714fmrBxFKWuqLiQNHV19o1cZ8Ubun+ZtHQAASAACwDQABwQAAAAHwACqxBLL//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////0dQABIAArASAAHBAADhAPAAG+EA8AAVvU1W////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////RwEAEH1s3BdtHdF1ln55B24wdACF/ggcRtPmB4IUB6cZJ+m32I4R48ZkdhAFBulgWcsv0wZwH0o1yi3i4qm3rJ98AUKdB9PsNyG9gURV0bTw4myAj6g5Dgodfv6w9bsbOxsGUWkvgAJ3rrR010BvZbIa6CMRCQRjxkCfRF77ansRJZT0JzhtYeSS/ZJob8Rr2jrng3W2rkmHtE+rdqlPiHxmwkRZvYGhBxwiJO2L6f+l/cABsfs09rA+A0pHAQAREZay3TBUIAfMWhApE+LaPgeyOYtaPFONA9aC0h4QrFkaLZfb86678MK+zLgqDBsDoj50eZHMVcczRjs4sYlv7RG8RIWKb5lB9Kn/8+CkxiiA11cHH1yzLX2SKCmhsak/+P/zYQ1EDvEj33bl9e3Jd62cTI+Qw99KrsWnUMN8hFNeXzoGHA3aec+Li4NFboF8sa6lCPR6Csxsvxw8DJaWCnER5Z0p+nKhXavF/eNHQ0DX47ohycc87UcBABKsYHCHXXe3vK1cFYDWO6rhwM6hxCdJ+/X+VB1akQejL6iBMdUPuadUqBnbprwJM0dWpSSn9uuZZeqe46iZOGIJUo69d8x+ZSvPcBH/dK1Y0LJnoWdgWH51SQg7eYqcwjQW3BOy7ZF02Hn1EhTuhsN7ms8zv3WIeEBDBq0T3Idl+Tmw9iJU9skVYiwygHG2+0XwrLa6y+uiQPwMzrnEr1kuf24XoAqrJTZQiVH3aQF4d94yDreWu2KPRwEAE2FsynHZaUcBXEFbeX0nSxZ7sRcRjJvc7RYOny6N8QFwKDVO7jpRWWYM55kuepBOyZ+7BFYeG+FU1kR+ZfmqyDNkD4D1IPwNh6u9JQxDymfN/aMcQC3WxdvCKquPsAut6dugpGkOFtIe+W3ayc4V/J978P+h1EDFMbFjxRPuXht0K2dBQZCJ0ybISUDqWzhPuep8CdxSU4MvMVfdXh7FLl/BqKJUTT+vM+Pz3XnqCQQmH5TjQ4CK55VHAQAUEtgfkBwIYgtwHkhjmtLw7HNTeJeMfTjATEKcyuKzItSeYxHBmGzQ/+G2otpPCOkVAXJ9mfx7LxrW4joZ0ttTRQJ/wqMUK1IN349LiJoo8y/+FwN4jPNDwIleJG697riqnmLOweFW8spHKLBfnHcyC1pG6EIxFpTqUQ0KHqXD/KXIHKioJNAOVwQ1Gfloxebo/Tdtd00dpHP3gcsAOnV75APCYOjVIlwm2X6ViDeZw6Btdb/Br/+yokcBABU3+eOESLlneGbR5SLiL8wPkoRaZ5X7xFlMTMvsv9yHk26bVdmsubSdbYS1Hy64n0+NnL7C1aLD7aJxOudMjVW5goZbfO2KxBQkCD4HFA284wbaB5vOL7mRilCn6YEs1kiwf22+fBLNUmXDb2p353wrD/ygTDhlki66USvUmd/ZAs9uzAddegEzy7Xn00YysWTu/hegYyZtWFC+X5dhLubWJ7n96y5wjrP7PAOXoQQtFUH9j/rBiP/7RwEAFnL/wYKYuj80mPGtimSbF/E9K7XwjwBz8yHZubmVMTCmwkZBM4h0FR1thnUGiSjqjJT6SfunWCZ/dZDQplrzS00UKcUP399SyM+nNG1br8Za0ZYwWch8nyLHYXSRuxdnrfUUespsOQo1cWSLGf0pV2HIcHoiAAEKwPU6irB5BSoFvB1qKVjgEk+QwAEYAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAABHAQA3pAD/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////AwAAAwAAAwAAAwAAAwAAAwBbwUdBABgAAAHgAACAwAoxAAmBIREAB/SBAAAAAQnwAAAAAUGaJGxDv/6plgAAAwAAAwAAAwAAAwAAAwAAAwAAAwAKCKB0AIhy1ftwLNISWucTFC7xeBcaIzP3oZjZo8uT9hqZVstWGnrPz+vjaA5FuCO+K2w7/o39LygDO7aL+0zSrN90LW7r133x8+f+PEKk8d7pd2fj4RYuMOXOYunzFzRX/4IvR1XsK5WJYwVkOca3yfo7DTvUBP9rgSiTRwEAGQD6CFK1PBC4qYCa+coLVnX+jgODNrau5YJXIekDI4+wUNV+5T5HE4e2t5EGAjn77+kC1Vghmvx8KqPnylVUvsaTofheggxHsPuxn1zQt6nA59UglrRUMn8b4pmrvfqTBSqU949+AcNAI6M/eAqz6r0RG5KNeBhx8R2f0x2kujwHU3pc3rlPb6ZrFM/2HiG97eEIezrvWFG7YAAAAwAAAwAE1KRo1VfbdZQ/tOpNGxFmTcQoFidyD2tHAQAapTTIErUKA2Rc9uIzGJu+oW0uNOxRyl6oJNUNJp5L9TIshNS1CmUKgdCaE3LkLwdE8iUkUnIGfWLiWpWmjzsINYC8dnDaSptB53yJkBu0SsR00oo1PZ0pl4ZzoXGSYQJTPaVCbj6FNqm5wcnUqKTB/rgHdPdnDj0K8asLABeo/n3XCXrDorI+LYSD1FBgmV9O7RZdjfL0NnXOQkiq/ZGirwVV0cUF1aHtZx1yHlAAZKuuu7TqB13CAUcBADuRAP///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////yj/IrOvAEoXDNGy+nrxWN0l8cmuqWYaUJpuM9XgAAADAAADAAKmR0EAPAcQAACJHH4AAAAB4AAAgMAKMQAJSOERAAkQoQAAAAEJ8AAAAAFBnkJ4hf8AAAMAAAMAAAMAAAMAAAMAAAMAAAMAC/BmhyuvLmkCgKTgACEXfOVvHRHdpBEEmTTz9pIZCa2FD0CXukzDCakOHekTpJQSdsfd7a/jjM1/5lBtKCAGQ6zOCSQ6DeKtyw+CugDuuglGipwmvQW+FIDjnZ6HRd0uaSOGy6VB3h9MI1o4nqaCqVwwIgubYZFHAQA9XgD////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////WcZrO6BEiqf8pCxYwlz2mkdUzY/ipM/TIHS4m5xQAAAMAAAMAAA5sVm90p14dlvWgBgY7XQ9KVOJKLtaMAN5KiffVQtNuzW5DfL+RewZpAAADAAADAAAQMUdBAB4AAAHgAACAgAUhAAkswQAAAAEJ8AAAAAEBnmF0Qr8AAAMAAAMAAAMAAAMAAAMAAAMAAAMAABJfBjP2+4+W7ZybyT130+Ma4WSqICfd/dS4YtjrLlmh5VBlfrtwJqdN1PBTYDkwGOOONqZQeFN6lLGJoDzvuh3kv1aDBLqug+JhvrSeu5ebnvcrtQzb2REwJL3h9mvtkr0WfDu4AAADAAADAAs32Y4C/6Ns79oCGj6oqLltY3T4I0/QRwEAP5wA//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////8BeoWLRnKQmVgO/RBoBfcK85AAAAMAAAMACFhHQQAwBxAAAJcsfgAAAAHgAACAwAoxAAllAREACUjhAAAAAQnwAAAAAQGeY2pCvwAAAwAAAwAAAwAAAwAAAwAAAwAAAwAAEmDKfLGXsvBBQPNYXlEd6WueJ4deApfcHESlG+7V6u0AiWQqJvNZYM+3Js3Lj9Ldc9yYIHqruVwfMtCYGlX3wMavI/DrhMuJw+RreIF8SKsJD8CMccAAAAMAAAMACrFZOBgEqaP/8EyWsAHV6CgcAgfyox/roEcBADGuAP//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////AAADAAADAHTBR0EAEgAAAeAAAIDACjEACfGhEQAJZQEAAAABCfAAAAABQZpoSahBaJlMCHf//qmWAAADAAADAAADAAADAAADAAADAAADAAALf8A2bry6lUyIAQGNFfVK2Cd7h4qDqmqpvmXfkfTwo2Ab79AHhajxJ4MPWIgAAA84xLRIx7I2CrWjWe96OvgkzgS9mtvhuxdzAgpuIOJI3DEY9mviDDZz8XSAAAADAAADAB7AZkj9AAHHGvk+Pzlku8UkWa5HAQAzogD//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////6HjAkbF/gsWuvw4QAAAAwAAAwAccUdBADQHEAAApTx+AAAAAeAAAIDACjEACblhEQAJgSEAAAABCfAAAAABQZ6GRREsL/8AAAMAAAMAAAMAAAMAAAMAAAMAAAMAAA3URJB/3lMHSmOd0GYZnfpoR80WdqxlyHzPX+V81VUMeXIGrRgq5agd+ACdjoGI036yQ/rmpGw0CmMBrKwpI+nwFo3SP0s1rI2yHBZaiPJjSUgw33rBkxXcq55kfLf2sAAAAwAAAwACBWolidWDnIeQAAADRwEANbEA//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////8AAAMADulHQQA2NAD///////////////////////////////////////////////////////////////////8AAAHgAACAgAUhAAmdQQAAAAEJ8AAAAAEBnqV0Qr8AAAMAAAMAAAMAAAMAAAMAAAMAAAMAABJXNihCnx11JUosH2hBE53O/YN+GPHqcnJiQBIf3maTAAj5iRt+7GYUKBAU9iCXTiouCjGYgAAAAwAAAwA9p4HQBg2cAAADAAADAADGgUdBADc4EAAAs0x+AP////////////////////////////////////////////////////////////////8AAAHgAACAwAoxAAnVgREACblhAAAAAQnwAAAAAQGep2pCvwAAAwAAAwAAAwAAAwAAAwAAAwAAAwAAAwBR6/L83y+ZevtMZ0FW4lp8qV7fVXQAhLAWlS6mDxvpaSUgChorvgTMXtxJEIAAAAMAAAMACqFCAAADAAADAAADAAz4R0EAOCsA////////////////////////////////////////////////////////AAAB4AAAgMAKMQALYiERAAnVgQAAAAEJ8AAAAAFBmqxJqEFsmUwId//+qZYAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAApQTq0hABLvkcWCYrAaRRPNDrECJGlF/11BYvG9+JJ9Y86nxnmQzPxtAAe1UgOsXAAADAAADAAADAAADAAADAAADAAADA/JHQQA5JhAAAMFcfgD/////////////////////////////////////////AAAB4AAAgMAKMQALKeERAAnxoQAAAAEJ8AAAAAFBnspFFSwv/wAAAwAAAwAAAwAAAwAAAwAAAwAAAwAADdRFmvrVE0KXDOGwWddlwYa1foib7tXZKmkua6R4APb4b8+tXwdSNNqgf2IVNwGTohgQAcMvp6SiQxpiQym4AAADAAADAANUNUAAAAMAAAMAAAMBN0dBADo8AP//////////////////////////////////////////////////////////////////////////////AAAB4AAAgIAFIQALDcEAAAABCfAAAAABAZ7pdEK/AAADAAADAAADAAADAAADAAADAAADAAADAFHTAfujIUaaLSuklb9y0/so9AEtQAqkAxOviALQZ5jNt/iOkABrCOZ4md0iUnFwAAADAAADAALwckAAAAMAAAMAAATcR0EAO0IQAADPbH4A//////////////////////////////////////////////////////////////////////////////8AAAHgAACAwAoxAAtGAREACynhAAAAAQnwAAAAAQGe62pCvwAAAwAAAwAAAwAAAwAAAwAAAwAAAwAAAwBR6/L83y+WryR9gmVKPGbIhJpkgAFgHCej3gB6rAHPgHHAAAADAAADAAAYIV0AAAMAAAMAAAMABnxHQQA8UQD//////////////////////////////////////////////////////////////////////////////////////////////////////////wAAAeAAAIDACjEAC9KhEQALRgEAAAABCfAAAAABQZrwSahBbJlMCG///qeEAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAAZ8UdBAD00EAAA3Xx+AP///////////////////////////////////////////////////////////wAAAeAAAIDACjEAC5phEQALYiEAAAABCfAAAAABQZ8ORRUsL/8AAAMAAAMAAAMAAAMAAAMAAAMAAAMAAA3URZr61RNClwzhI2ZXdRHYLZWc1yTgKRhTIXBNABHQKIIyYNyc+AaEn1jhATEAAAMAAAMAAAMAckkIAAADAAADAAADAEbBR0EAPkYA////////////////////////////////////////////////////////////////////////////////////////////AAAB4AAAgIAFIQALfkEAAAABCfAAAAABAZ8tdEK/AAADAAADAAADAAADAAADAAADAAADAAADAFHTAfujIUAYRtY0f/43cIs2OjxACR2hMR1QBGYX+34JGAAAAwAAAwAAAwKEJ6AAAAMAAAMAAAMA3oFHQQA/QhAAAOuMfgD//////////////////////////////////////////////////////////////////////////////wAAAeAAAIDACjEAC7aBEQALmmEAAAABCfAAAAABAZ8vakK/AAADAAADAAADAAADAAADAAADAAADAAADAFHr8vzfL5avJH2CZUo8ZsiEmmSAAWAcJ6PeAHqsAc+AccAAAAMAAAMAABghXQAAAwAAAwAAAwAGfEdBADBRAP//////////////////////////////////////////////////////////////////////////////////////////////////////////AAAB4AAAgMAKMQANQyERAAu2gQAAAAEJ8AAAAAFBmzRJqEFsmUwIZ//+nhAAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAGVAR0EAMTQQAAD5nH4A////////////////////////////////////////////////////////////AAAB4AAAgMAKMQANCuERAAvSoQAAAAEJ8AAAAAFBn1JFFSwv/wAAAwAAAwAAAwAAAwAAAwAAAwAAAwAADdRFmvrVE0KXDOEjZld1EdgtlZzXJOApGFMhcE0AEdAogjJg3Jz4BoSfWOEBMQAAAwAAAwAAAwBySQgAAAMAAAMAAAMARsFHQQAyRgD///////////////////////////////////////////////////////////////////////////////////////////8AAAHgAACAgAUhAAvuwQAAAAEJ8AAAAAEBn3F0Qr8AAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAUdMB+6MhQBhG1jR//jdwizY6PEAJHaExHVAEZhf7fgkYAAADAAADAAADAoQnoAAAAwAAAwAAAwDegEdBADNCEAABB6x+AP//////////////////////////////////////////////////////////////////////////////AAAB4AAAgMAKMQANJwERAA0K4QAAAAEJ8AAAAAEBn3NqQr8AAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAUevy/N8vlq8kfYJlSjxmyISaZIABYBwno94AeqwBz4BxwAAAAwAAAwAAGCFdAAADAAADAAADAAZ8R0EANFIA////////////////////////////////////////////////////////////////////////////////////////////////////////////AAAB4AAAgMAKMQANs6ERAA0nAQAAAAEJ8AAAAAFBm3hJqEFsmUwIV//+OEAAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAYtHQQA1NBAAARW8fgD///////////////////////////////////////////////////////////8AAAHgAACAwAoxAA17YREADUMhAAAAAQnwAAAAAUGflkUVLC//AAADAAADAAADAAADAAADAAADAAADAAAN1EWa+tUTQpcM4SNmV3UR2C2VnNck4CkYUyFwTQAR0CiCMmDcnPgGhJ9Y4QExAAADAAADAAADAHJJCAAAAwAAAwAAAwBGwEdBADZGAP///////////////////////////////////////////////////////////////////////////////////////////wAAAeAAAICABSEADV9BAAAAAQnwAAAAAQGftXRCvwAAAwAAAwAAAwAAAwAAAwAAAwAAAwAAAwBR0wH7oyFAGEbWNH/+N3CLNjo8QAkdoTEdUARmF/t+CRgAAAMAAAMAAAMChCegAAADAAADAAADAN6BR0EAN0IQAAEjzH4A//////////////////////////////////////////////////////////////////////////////8AAAHgAACAwAoxAA2XgREADXthAAAAAQnwAAAAAQGft2pCvwAAAwAAAwAAAwAAAwAAAwAAAwAAAwAAAwBR6/L83y+WryR9gmVKPGbIhJpkgAFgHCej3gB6rAHPgHHAAAADAAADAAAYIV0AAAMAAAMAAAMABn0=" - webUI["html/configuration.html"] = "PCFkb2N0eXBlIGh0bWw+DQo8aHRtbD4NCiAgPGhlYWQ+DQogICAgPG1ldGEgY2hhcnNldD0idXRmLTgiPg0KICAgIDxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgsIGluaXRpYWwtc2NhbGU9MS4wIiAvPiANCiAgICA8dGl0bGU+eFRlVmU8L3RpdGxlPg0KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iY3NzL3NjcmVlbi5jc3MiIHR5cGU9InRleHQvY3NzIj4NCiAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9ImNzcy9iYXNlLmNzcyIgdHlwZT0idGV4dC9jc3MiPg0KICAgIDxzY3JpcHQgbGFuZ3VhZ2U9ImphdmFzY3JpcHQiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJqcy9jb25maWd1cmF0aW9uX3RzLmpzIj48L3NjcmlwdD4NCiAgICA8c2NyaXB0IGxhbmd1YWdlPSJqYXZhc2NyaXB0IiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ianMvbmV0d29ya190cy5qcyI+PC9zY3JpcHQ+DQogICAgPHNjcmlwdCBsYW5ndWFnZT0iamF2YXNjcmlwdCIgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9ImpzL21lbnVfdHMuanMiPjwvc2NyaXB0Pg0KICAgIDxzY3JpcHQgbGFuZ3VhZ2U9ImphdmFzY3JpcHQiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJqcy9zZXR0aW5nc190cy5qcyI+PC9zY3JpcHQ+DQogICAgPHNjcmlwdCBsYW5ndWFnZT0iamF2YXNjcmlwdCIgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9ImpzL2Jhc2VfdHMuanMiPjwvc2NyaXB0Pg0KICA8L2hlYWQ+DQoNCiAgICA8Ym9keSBvbmxvYWQ9ImphdmFzY3JpcHQ6IHJlYWR5Rm9yQ29uZmlndXJhdGlvbigwKTsiPg0KICAgICAgICAgIA0KICAgICAgPGRpdiBpZD0ibG9hZGluZyIgY2xhc3M9ImJsb2NrIj4NCiAgICAgICAgPGRpdiBjbGFzcz0ibG9hZGVyIj48L2Rpdj4NCiAgICAgIDwvZGl2Pg0KDQogICAgICA8ZGl2IGlkPSJoZWFkZXIiIGNsYXNzPSJpbWdDZW50ZXIiPjwvZGl2Pg0KICAgICAgPGRpdiBpZD0iYm94Ij4NCiAgICAgICAgDQogICAgICAgIDx0YWJsZSBpZD0iY2xpZW50SW5mbyIgY2xhc3M9InZpc2libGUiPg0KICAgICAgICAgIDx0cj4NCiAgICAgICAgICAgIDx0ZCBjbGFzcz0idGRLZXkiPlZlcnNpb246PC90ZD4NCiAgICAgICAgICAgIDx0ZCBpZD0idmVyc2lvbiIgY2xhc3M9InRkVmFsIj4mbmJzcDs8L3RkPg0KICAgICAgICAgICAgPHRkIGNsYXNzPSJ0ZEtleSI+T1M6PC90ZD4NCiAgICAgICAgICAgIDx0ZCBpZD0ib3MiIGNsYXNzPSJ0ZFZhbCI+Jm5ic3A7PC90ZD4NCiAgICAgICAgICA8L3RyPg0KICAgICAgICAgIDx0cj4NCiAgICAgICAgICAgIDx0ZCBjbGFzcz0idGRLZXkiPlVVSUQ6PC90ZD4NCiAgICAgICAgICAgIDx0ZCBpZD0idXVpZCIgY2xhc3M9InRkVmFsIj4mbmJzcDs8L3RkPg0KICAgICAgICAgICAgPHRkIGNsYXNzPSJ0ZEtleSI+QXJjaDo8L3RkPg0KICAgICAgICAgICAgPHRkIGlkPSJhcmNoIiBjbGFzcz0idGRWYWwiPiZuYnNwOzwvdGQ+DQogICAgICAgICAgPC90cj4NCiAgICAgICAgICA8dHI+DQogICAgICAgICAgICA8dGQgY2xhc3M9InRkS2V5Ij5TdHJlYW1zOjwvdGQ+DQogICAgICAgICAgICA8dGQgaWQ9InN0cmVhbXMiIGNsYXNzPSJ0ZFZhbCI+Jm5ic3A7PC90ZD4NCiAgICAgICAgICAgIDx0ZCBjbGFzcz0idGRLZXkiPkRWUjo8L3RkPg0KICAgICAgICAgICAgPHRkIGlkPSJEVlIiIGNsYXNzPSJ0ZFZhbCI+Jm5ic3A7PC90ZD4NCiAgICAgICAgICA8L3RyPg0KICAgICAgICA8L3RhYmxlPg0KICAgICAgICANCiAgICAgICAgPGRpdiBpZD0iaGVhZGxpbmUiPg0KICAgICAgICAgIDxoMSBpZD0iaGVhZC10ZXh0IiBjbGFzcz0iY2VudGVyIj5Db25maWd1cmF0aW9uPC9oMT4gICAgICANCiAgICAgICAgPC9kaXY+DQogICAgICAgIDxwIGlkPSJlcnIiIGNsYXNzPSJlcnJvck1zZyBjZW50ZXIiPjwvcD4gICANCiAgICAgICAgPGRpdiBpZD0iY29udGVudCI+DQogICAgICAgICAgICANCiAgICAgICAgPC9kaXY+DQogICAgICAgIDxkaXYgaWQ9ImJveC1mb290ZXIiPg0KICAgICAgICAgIDxpbnB1dCBpZD0ibmV4dCIgY2xhc3M9IiIgdHlwZT0iYnV0dG9uIiBuYW1lPSJuZXh0IiB2YWx1ZT0iTmV4dCIgb25jbGljaz0iamF2YXNjcmlwdDogc2F2ZVdpemFyZCgpOyI+DQogICAgICAgIDwvZGl2Pg0KICAgICAgPC9kaXY+DQogICAgPC9ib2R5Pg0KPC9odG1sPg==" - webUI["html/img/stream-limit.jpg"] = "/9j/4AAQSkZJRgABAQAAAQABAAD/4gJoSUNDX1BST0ZJTEUAAQEAAAJYbGNtcwQwAABtbnRyUkdCIFhZWiAH4wAFABcAFgAuAAphY3NwQVBQTAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA9tYAAQAAAADTLWxjbXMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAtkZXNjAAABCAAAAEBjcHJ0AAABSAAAAE53dHB0AAABmAAAABRjaGFkAAABrAAAACxyWFlaAAAB2AAAABRiWFlaAAAB7AAAABRnWFlaAAACAAAAABRyVFJDAAACFAAAACBnVFJDAAACFAAAACBiVFJDAAACFAAAACBjaHJtAAACNAAAACRtbHVjAAAAAAAAAAEAAAAMZW5VUwAAACQAAAAcAHMAUgBHAEIAIABJAEUAQwA2ADEAOQA2ADYALQAyAC4AMQAAbWx1YwAAAAAAAAABAAAADGVuVVMAAAAyAAAAHABOAG8AIABjAG8AcAB5AHIAaQBnAGgAdAAsACAAdQBzAGUAIABmAHIAZQBlAGwAeQAAAABYWVogAAAAAAAA9tYAAQAAAADTLXNmMzIAAAAAAAEMSgAABeP///MqAAAHmwAA/Yf///ui///9owAAA9gAAMCUWFlaIAAAAAAAAG+UAAA47gAAA5BYWVogAAAAAAAAJJ0AAA+DAAC2vlhZWiAAAAAAAABipQAAt5AAABjecGFyYQAAAAAAAwAAAAJmZgAA8qcAAA1ZAAAT0AAACltjaHJtAAAAAAADAAAAAKPXAABUewAATM0AAJmaAAAmZgAAD1z/2wBDAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQH/2wBDAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQH/wAARCAQ4B4ADASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD/AD/6KKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigD9PvBf/AARa/wCCrXxF8HeE/iD4G/YM/aL8UeCfHfhrQvGXg/xNpHgia50nxF4W8T6Xa634f13TLkTgXGn6vpN9aahZTgAS21xFIAN1dL/w4o/4LB/9I7/2m/8AwgZ//kiv9b3/AIJp/wDKOX9gH/syf9lX/wBUV4Dr7YoA/wAWr/hxR/wWD/6R3/tN/wDhAz//ACRR/wAOKP8AgsH/ANI7/wBpv/wgZ/8A5Ir/AGlaKAP8Wr/hxR/wWD/6R3/tN/8AhAz/APyRR/w4o/4LB/8ASO/9pv8A8IGf/wCSK/2laKAP8Wr/AIcUf8Fg/wDpHf8AtN/+EDP/APJFH/Dij/gsH/0jv/ab/wDCBn/+SK/2laKAP8Wr/hxR/wAFg/8ApHf+03/4QM//AMkUf8OKP+Cwf/SO/wDab/8ACBn/APkiv9pWigD/ABav+HFH/BYP/pHf+03/AOEDP/8AJFH/AA4o/wCCwf8A0jv/AGm//CBn/wDkiv8AaVooA/xav+HFH/BYP/pHf+03/wCEDP8A/JFH/Dij/gsH/wBI7/2m/wDwgZ//AJIr/aVooA/xav8AhxR/wWD/AOkd/wC03/4QM/8A8kUf8OKP+Cwf/SO/9pv/AMIGf/5Ir/aVooA/xav+HFH/AAWD/wCkd/7Tf/hAz/8AyRR/w4o/4LB/9I7/ANpv/wAIGf8A+SK/2laKAP8AFq/4cUf8Fg/+kd/7Tf8A4QM//wAkUf8ADij/AILB/wDSO/8Aab/8IGf/AOSK/wBpWigD/Fq/4cUf8Fg/+kd/7Tf/AIQM/wD8kUf8OKP+Cwf/AEjv/ab/APCBn/8Akiv9pWigD/Fq/wCHFH/BYP8A6R3/ALTf/hAz/wDyRR/w4o/4LB/9I7/2m/8AwgZ//kiv9pWigD/E88f/APBGT/gqj8K/AnjT4nfEX9hL9ofwf8P/AIdeFPEPjnxz4t1zwTNaaL4X8IeE9Ju9d8SeIdXujORbaZo2j2F5qN9OQRDa20shB24r8yq/28f+Ctf/ACit/wCClX/ZhH7Xv/rP/wAQK/xDqACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooA+j/ANmj9kL9pr9snxbrvgL9lr4K+Ovjn408M+HH8X6/4Y+H2ljWdZ0vwvFqen6NLr1zYrNHMNMh1XVtL0+a7RWihu9RsoZSj3MIf7U/4cUf8Fg/+kd/7Tf/AIQM/wD8kV2v/BAD9sj/AIYi/wCCrf7K/wATNW1X+yvh98QPFw+AHxWklm+z6f8A8IJ8aWg8HjU9Xl3Ls0rwd4wufCPxAuz82B4RQlJACjf7MFAH+LV/w4o/4LB/9I7/ANpv/wAIGf8A+SKP+HFH/BYP/pHf+03/AOEDP/8AJFf7StFAH+LV/wAOKP8AgsH/ANI7/wBpv/wgZ/8A5Io/4cUf8Fg/+kd/7Tf/AIQM/wD8kV/tK0UAf4tX/Dij/gsH/wBI7/2m/wDwgZ//AJIo/wCHFH/BYP8A6R3/ALTf/hAz/wDyRX+0rRQB/gx/HT4CfGb9mT4n+Ivgt+0B8NfFnwj+K3hJNHl8SeA/G2lzaP4i0iLxBomneI9Emu7KbJWLU9C1bTtTs5UZ45rW7idWySB5HX9yX/B69+yL/wAIr8eP2V/22/D2meXpfxb8Da18BfiPd2sOy3i8afDG9k8U+BdR1OXbiXVPFHg/xZrukWzB2P8AZnw0jjZIxEjS/wANtABRRRQAUUUUAFFFFABRRRQAUUUUAPRHldIokeSSR1SONFLu7uQqIiKCzOzEKqqCWJAAJNfq8n/BCv8A4LBSIki/8E7/ANp3a6q67vh/dI21gGG5HnV0bB5V1VlPDAEEVv8A/BBj9kX/AIbU/wCCrf7Ivwo1PTP7T8DeGPiFb/Gz4nRTQ+fpzeAvgpE3xDv9L1hQrEaZ4w1nRdD8BSkAFp/FdvH5kO/zo/8AZ4oA/wAWr/hxR/wWD/6R3/tN/wDhAz//ACRR/wAOKP8AgsH/ANI7/wBpv/wgZ/8A5Ir/AGlaKAP8Wr/hxR/wWD/6R3/tN/8AhAz/APyRR/w4o/4LB/8ASO/9pv8A8IGf/wCSK/2laKAP8Wr/AIcUf8Fg/wDpHf8AtN/+EDP/APJFH/Dij/gsH/0jv/ab/wDCBn/+SK/2laKAP8Kz9p39iX9rL9i7UfCOkftV/AT4ifAfVPHtlq+o+DtO+IejjRb3xDp+gz2Ntq97p1s00k0lrY3GpWUEs7IkbSz+XGztHKI/lqv6F/8Ag5+/bI/4a5/4K2/HDTNF1X+0fh7+y5aaZ+y74KEU261GofDq61K8+KVz5UbG3N0fi9r3jnSTexl5bzSdE0USybLeCGD+eigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigD/cg/4Jp/8o5f2Af+zJ/2Vf8A1RXgOvtivif/AIJp/wDKOX9gH/syf9lX/wBUV4Dr7YoAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigD8+P8AgrX/AMorf+ClX/ZhH7Xv/rP/AMQK/wAQ6v8Abx/4K1/8orf+ClX/AGYR+17/AOs//ECv8Q6gAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAHI7xOkkbtHJGyvHIjFHR0IZXRlIZWVgGVlIIIBBBFf7Z//BIH9sRP28f+Cbv7J37St5qS6n4x8VfC/TPDXxTmMqvc/wDC3PhxNcfD/wCJdxdQ5Mtp/bPi7w3qfiLT7e4zK2jazplyHnhuIrib/Eur/QW/4Mm/2yPteh/tZfsE+JNV3T6PeaT+1D8KNPml3yNp2pDRvht8YrW381t0NrYahB8JtRtLK33Rtda5r980cUjzyzgH98VFFFABRRRQAUUUUAfhR/wcifsif8Ngf8Eif2ndD0vTP7T8dfAvSbH9p74ehYvPuINW+DCXur+MUs4FUzXF/qvwjvfiRoFhb25E819q9skazn/R5v8AHer/AH6NW0rTdd0rU9D1mxtdU0fWdPvNK1bTL6FLmy1HTdRtpLS+sby3kDRz2t3azS29xDIrJLFI6OCrEV/hv/8ABQv9lrUv2J/23/2ov2V9Riuo4Pgv8Y/GHhbwzPe7/tWqeAJdQbWfhrr83mfPu8R/D7VPDOvjcWO3Uh88n32APjeiiigAooooAKKKKACiiigAooooA/0D/wDgyU/ZE+z6T+19+3Xr+mYl1G70D9lz4Y6lJFtdbSwTSfif8YfKaRd0lvd3Vz8HreC4g2xifS9VtneSRHSD++mvyl/4Ih/sif8ADEf/AAS3/ZB+B2o6X/ZXjV/hhYfE/wCKEEsPlahH8S/jDNN8SfFmmaq21WnvfCl14ki8EpKw+Ww8M2MCExQxmv1aoAKKKKACiiigAr5A/b+/ao0X9iP9iv8AaZ/as1xrRk+Cfwi8V+LdCsr5gtrrfjk2R0j4c+GZWLKF/wCEq8f6n4a8NodwxJqqdeh+v6/ib/4PTP2yP+EA/Za/Z5/Yk8N6r5WvftCfEG7+LPxGtLWb98nww+Dogh8OaVqtvuA+weKviT4g03W9Nk2uWvvhfdrujEZEoB/nB+IfEGteLPEGueKvEup3eteIvE2san4g1/WL+Uz32ra1rN7PqOq6nezNzNd399cz3VzKeZJpXc8mseiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigD/cg/4Jp/8AKOX9gH/syf8AZV/9UV4Dr7Yr4n/4Jp/8o5f2Af8Asyf9lX/1RXgOvtigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAPz4/4K1/8orf+ClX/AGYR+17/AOs//ECv8Q6v9vH/AIK1/wDKK3/gpV/2YR+17/6z/wDECv8AEOoAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAr9V/+CJP7ZH/DCn/BT39k348anqv9leA2+Itp8Mvi1NNN5Onp8LPi3FJ8P/F+qaou5RPaeEbfXYPHcMLMB/aXhXT5R80Sg/lRRQB/v8UV+TP/AAQ5/bI/4bo/4JdfsnfG7VNV/tXx9p/w+tfhN8WpZZvO1Fvid8IJG8A+JNV1f5m8u/8AGUWi6d8QFjDECx8W2TgRh/LT9ZqACiiigAooooAK/wA07/g9I/ZE/wCFcftj/AD9sXQNM8jQP2lfhZdfD7xtd28O5H+KPwOnsbO31HUp1A8q41z4a+KvBmkaXDN808HgPUnhZ1tplh/0sa/nd/4Oi/2RP+Gq/wDgkT8cNZ0fS/7R8dfsuapoP7T/AITMUO64TS/ACahpXxSVp0Bnjsbf4ReJvHOuz26hoLi+0HS2nQG3iuLcA/yKaKKKACiiigAooooAKKKKACv02/4I3fsi/wDDcf8AwUy/ZC/Z3vtM/tXwfr3xX0nxh8TrWSLfaS/Cr4XQ3PxJ+IlleyMGhto9d8L+FtQ8NWk04MbaprWn2yxzz3EUEv5k1/eL/wAGTH7In9reP/2uf259f0zdZ+D9A0H9mf4Z6hND5sEmveK7jTviL8VprV3Gy21LQ9E0b4YWSTwlp207xnqVsWhgnkS5AP8AQzooooAKKKKACiiigAr/AB3f+DkD9sj/AIbN/wCCtf7SWvaRqv8Aanw9+BGpWv7MPw1aOf7RaJovwcudR0zxfd2E6MYLnT9d+LV/8RfEWm3dsPJuNM1axZJJ1VbiX/Ux/wCCnv7XVn+wl+wF+1T+1TLdW1trXws+E2vXHgJbsRtBe/FTxOYPBnwo02aKQMJbe/8AiN4h8MW16qxysti9zN5UixMp/wAQK+vr3U7281LUru5v9R1C6uL6/vryaS5u729u5XuLq7uriZnlnubieR5p5pXaSWV2d2ZmJIBVooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooA/sa/Z9/4PGv2mv2ffgJ8EPgJo37HXwJ8QaP8EPhD8NfhDpOv6n43+IFtqWt6b8NfBmi+DLHV9Qt7QfZbe+1K10WK9u4bb/R4riaSOH92q169/xG8ftWf9GRfs9/+F98R/8ACv4h6KAP7eP+I3j9qz/oyL9nv/wvviP/AIUf8RvH7Vn/AEZF+z3/AOF98R/8K/iHooA/t4/4jeP2rP8AoyL9nv8A8L74j/4Uf8RvH7Vn/RkX7Pf/AIX3xH/wr+IeigD+3j/iN4/as/6Mi/Z7/wDC++I/+FH/ABG8ftWf9GRfs9/+F98R/wDCv4h6KAP9GT/gmX/wdhftE/t2/t3fs3/skeLv2T/gt4E8N/G/xpf+F9W8XeHPGPjnUNb0O3tPCviHxCt1p9lqY+wXEzzaNFbslz8gimkYfOq1/cpX+NT/AMG73/KaX9gD/srmtf8AqtPHVf7K1ABRRRQAUUUUAFFFFAH8KH/BRT/g7X/aN/Yq/bf/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WOj6BoOn3Gq6xql5Jg+Xaafp1pcXdw+DshhdsHGKAP8AN2/4PR/2yP8AhY37XHwD/Yq8N6r53h/9m34dT/Er4g2dtNiP/hanxqFlcaTpmqW4Yh7rw38MdB8M6zpUzhWitviTqKICJmJ/itr6y/bt/ah179tX9sf9pP8Aaq8RG6juvjh8XfF/jbS7C9fzLjQfCN1qUln4D8LF98m6Lwl4IsvD/hm2Jkc/ZtJiBdj8x+TaACiiigAooooAK/2Hv+DZvSf7G/4Id/sIWe3Z53hv40atjGM/29+0r8Ztc3f8D/tHfnvuzzmv8eGv9kD/AINw7+HUv+CJ37A1xAqqkfw58c2DBOhm0r40fEvTLhj/ALb3FnKz/wC2WoA/biiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAr/JJ/4Ow/+U2X7Q//AGTv9nj/ANUr4Nr/AFtq/wAkn/g7D/5TZftD/wDZO/2eP/VK+DaAP5vaKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKK6vwJ4G8W/E3xn4X+HngLQdQ8UeNPGmu6b4a8L+HtLi86/1fWtXuo7OwsrdCVRTLPKoeaZ47e3iD3FzLFBFJIt06dSrUhSpQnUq1Zwp06dOMp1KlSpOMKdOEIKUpznOcIQhGMpSlKMYpuST58Xi8LgMJisfjsTh8FgcDhsRjcbjcXXpYXCYPB4OhWxWLxeKxOIqUaGHw2Fw2GxGIxGIr1aVGhQoVq1WpTp0pzj9Y/sAfsT+O/27/wBofw38HvC32vSfCtqY/EXxU8cx2/nWvgfwDZ3MMep6gDIpgm13VHkTR/C2myZ+361dwPcCLSrTVL2z/wBHr4T/AAs8CfBD4beC/hL8MtAtPDHgPwBoNl4c8NaJZj5LWwskOZriZv3t7qV/cvPqOr6ndNJe6rqt3eal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gAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAr+z7/ggp/wTT/4VH4Psf20vjV4f8r4n/ELRXX4K+HtVtsXPgT4d6zbFJvGk8E6brXxN8QbCXZpbIqz6X4Hn/17P4t1GysPyI/4Ip/8E13/AGxfjB/wuX4r6G837N3wa1q0m1S1voD9h+KPxAtlg1HSvAMXmL5V3oOmRyWmt+O8ear6bNpfh14h/wAJK95p/wDedHGkSJFEiRxxoscccahEjRAFRERQFVFUBVVQAoAAAAr+o/AXw29vUpcdZ3h/3FGclw3ha0NK1eDlTq5zOE1rTw8lOjlzaaniFXxkbxw+Hkf4Nfta/psf2Tg8d9FLwvzi2aZlh6E/GrPctxHv5dleIhRxeC8NsPiKFS8Mbm1KWFzPjSMKkZ4bKJZTw5VUKub5vRT6KKK/rU/55AooooAKKKr3d3a2Frc319c29lY2VvNd3l5dzR21raWttG01xc3NxMyQwW8EKPLNNK6RxRozuyqpIG0k22kkm220kkk2222kkkm220kk22km04xlOUYQjKc5yjCEIRlOc5zlGMIQhGMpSnKUoxjGMZSlKUYxjKUoxlYoqlpuo6frGn2Gr6TfWeqaVqlla6jpmp6fcw3un6jp99AlzZX1jeWzyW93Z3dtLHcW1zBJJDPDIksTsjqxu0k1JKUWnFpNNNNNNJppptNNNNNNpppptNNucJ0pzp1ITp1Kc506lOpCdOpTqU5zp1KdSnUjCpTqU6lOdOpTqQhOE4ThOEJwnCBRRRTJCiiigD8if+Cvv/BOiw/bq+A0ms+CNNtIv2i/hFZalrXwv1HENtN4u00p9q1z4X6pdvsRrXxCIRc+Gp7yRIdI8Vw2j/arDS9W8QPcf59Ooaff6Tf32larZXem6npl5c6fqWnX9vNZ31hf2Uz215ZXtpcJHPa3drcRyQXNvPGk0E0bxSIrqyj/AFjK/kJ/4L+/8E2P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/DSP/BUjUvgr4f1X7d4A/Y18AaL8IbSK3m87TpviZ4mSHx78VtVhBYmPULa61fw18PtYjCoEvPh1sCsVMsoB/LfRRRQAUUUUAFFFFABRRRQAUUUUAFf6lH/BsR/wW/h/bw+Ddn+xj+0n4qib9sH4C+E7ePwt4i1m7Vb/APaF+D2gQwWFp4kW4nYPqXxM8BWv2TS/H9u5k1LxFpA03x8kmp3U3jWXRP8ALXr0j4P/ABg+J3wA+J/gf4z/AAY8b6/8OPil8N/EFl4o8E+NvDF61jrWg61YMTFcW8oDxT288TzWWpabew3OmavplzeaVqtneabeXVrMAf72FFfzsf8ABCH/AIL2fCb/AIKr/DKw+GXxPvvDPwy/bk8CaKg8e/DJbqLTdK+K+nadbZuvil8HrW8nM9/pc8cL3fi7wbBJeav4DvTKZvtnhqfStbu/6J6ACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooA+HP8Agp3/AMo1v+Chf/Zjn7WX/qhPH9f4dVf7iv8AwU7/AOUa3/BQv/sxz9rL/wBUJ4/r/DqoAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKtWNje6ne2em6bZ3WoajqF1b2NhYWNvLd3t9e3cqQWtnaWsCST3N1czyRw29vCjyzSukcaM7AFpNtJJttpJJNtttJJJJtttpJJNttJJtpOZzhThKpUlGEIRlOc5yjCEIQjKc5znOUIQhCEJznOc4QhCE5znGMZSj7x+y5+zX8Sf2t/jj4G+BHwr0/7V4l8ZaksdzqVxHK2keFPDtpifxB4v8AEM0SsbbRPD+nCW8uiM3F5MLbStOjudV1CxtLj/SQ/ZX/AGZ/ht+yJ8DPA/wH+Flh9n8O+D9PAvtWniiTV/F3iW8CzeIfGHiGWIYuNZ1+/wB9zMNxgsLUWej6ctvpWm2FrB+fv/BHj/gnDZfs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FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF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FFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFAH//Z" webUI["html/img/x_black.png"] = "iVBORw0KGgoAAAANSUhEUgAAAQAAAAEACAIAAADTED8xAAAAAXNSR0IArs4c6QAAAAlwSFlzAAAWJQAAFiUBSVIk8AAAA6ppVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IlhNUCBDb3JlIDUuNC4wIj4KICAgPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIgogICAgICAgICAgICB4bWxuczp0aWZmPSJodHRwOi8vbnMuYWRvYmUuY29tL3RpZmYvMS4wLyIKICAgICAgICAgICAgeG1sbnM6ZXhpZj0iaHR0cDovL25zLmFkb2JlLmNvbS9leGlmLzEuMC8iPgogICAgICAgICA8eG1wOk1vZGlmeURhdGU+MjAxOC0xMS0xNVQxNzoxMTozNzwveG1wOk1vZGlmeURhdGU+CiAgICAgICAgIDx4bXA6Q3JlYXRvclRvb2w+UGl4ZWxtYXRvciAzLjM8L3htcDpDcmVhdG9yVG9vbD4KICAgICAgICAgPHRpZmY6T3JpZW50YXRpb24+MTwvdGlmZjpPcmllbnRhdGlvbj4KICAgICAgICAgPHRpZmY6Q29tcHJlc3Npb24+NTwvdGlmZjpDb21wcmVzc2lvbj4KICAgICAgICAgPHRpZmY6UmVzb2x1dGlvblVuaXQ+MjwvdGlmZjpSZXNvbHV0aW9uVW5pdD4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+MTQ0PC90aWZmOllSZXNvbHV0aW9uPgogICAgICAgICA8dGlmZjpYUmVzb2x1dGlvbj4xNDQ8L3RpZmY6WFJlc29sdXRpb24+CiAgICAgICAgIDxleGlmOlBpeGVsWERpbWVuc2lvbj4yNTY8L2V4aWY6UGl4ZWxYRGltZW5zaW9uPgogICAgICAgICA8ZXhpZjpDb2xvclNwYWNlPjE8L2V4aWY6Q29sb3JTcGFj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a1jSekqmtA1rrGsx7JYkDuvrVahwRdgVXD1xcwri6mmYRULLe4CuPc2wfrGo4U+7Y/3S9ZHD+GcflbnfiCJbr77whoaS6ucCXVkVkuLKgORQwNJFygRDJnqwb9i3b0HxkqjT0L4erGy5Rh1IRnhXrpaZq6GZCyRLf6cvhoTY6V9koX8bGdEUlyWVm6W5q1GuostihNm97L/dpm5k+QHCbDna0zRzgSS/lRHWL7iHPOa+9YsYkpttoCwSMcQRkrWioz5Qsc7aFJ1coHY3QyJ9jSjfJEOCfTUpWzehVBnUbqCJOCHEkB1xsmXDwq9DnObUz9q4QOUqYPaPKFzUKcVj6Eeu461q67Vhlqy6+Xo11G52JhRZNNW1FRbN00FWPVwguSa+8YEZ1i+D9vQjelm/iHTwAB69Vwd7CkuGLOcWtxfR4o+dHhNg4DNmhDvJ8M6ehknvhTXMDp8kQQgT33W4z+i7k/2gho+Jvrp1NTVwgW5opV76yl8F/cufe9CyJiRllZ6lYCHMXWPAXmNp9CRb8Pi30r658sHtCSCPsZNXQDYdMaLIek/No13V/rBfGMFSCXnsKNo1dDelnKt/dyUH8uvjjLH+zyfpbv1iUl/NVBt4mVJy58HoDyFZLt0rrj4G7TfIjARvMjy7d6JnR/UXS/+yeD5kLYkETxpRZL2jZJVzb7cl9yZA/cYqh4z+20AEzOj+BKxbZYRFqXQssvLs5gQzpBUp616rNsX55WdXBHbPBRrwlBm5v2VYJo1FsjmOtQg8ezo+fd8Ve4qy04HPRlmR1UiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABGwg8D8UnyVeZFwGAQAAAABJRU5ErkJggg==" webUI["html/img/x_white.png"] = "iVBORw0KGgoAAAANSUhEUgAAAQAAAAEACAIAAADTED8xAAAAAXNSR0IArs4c6QAAAAlwSFlzAAAWJQAAFiUBSVIk8AAAA6ppVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IlhNUCBDb3JlIDUuNC4wIj4KICAgPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIgogICAgICAgICAgICB4bWxuczp0aWZmPSJodHRwOi8vbnMuYWRvYmUuY29tL3RpZmYvMS4wLyIKICAgICAgICAgICAgeG1sbnM6ZXhpZj0iaHR0cDovL25zLmFkb2JlLmNvbS9leGlmLzEuMC8iPgogICAgICAgICA8eG1wOk1vZGlmeURhdGU+MjAxOC0xMS0xNVQxNzoxMToyNTwveG1wOk1vZGlmeURhdGU+CiAgICAgICAgIDx4bXA6Q3JlYXRvclRvb2w+UGl4ZWxtYXRvciAzLjM8L3htcDpDcmVhdG9yVG9vbD4KICAgICAgICAgPHRpZmY6T3JpZW50YXRpb24+MTwvdGlmZjpPcmllbnRhdGlvbj4KICAgICAgICAgPHRpZmY6Q29tcHJlc3Npb24+NTwvdGlmZjpDb21wcmVzc2lvbj4KICAgICAgICAgPHRpZmY6UmVzb2x1dGlvblVuaXQ+MjwvdGlmZjpSZXNvbHV0aW9uVW5pdD4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+MTQ0PC90aWZmOllSZXNvbHV0aW9uPgogICAgICAgICA8dGlmZjpYUmVzb2x1dGlvbj4xNDQ8L3RpZmY6WFJlc29sdXRpb24+CiAgICAgICAgIDxleGlmOlBpeGVsWERpbWVuc2lvbj4yNTY8L2V4aWY6UGl4ZWxYRGltZW5zaW9uPgogICAgICAgICA8ZXhpZjpDb2xvclNwYWNlPjE8L2V4aWY6Q29sb3JTcGFj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" + webUI["html/lang/en.json"] = "ew0KICAibWFpbk1lbnUiOg0KICB7DQogICAgIml0ZW0iOg0KICAgIHsNCiAgICAgICJwbGF5bGlzdCI6ICJQbGF5bGlzdCIsDQogICAgICAicG1zSUQiOiAiUE1TIElEIiwNCiAgICAgICJmaWx0ZXIiOiAiRmlsdGVyIiwNCiAgICAgICJ4bWx0diI6ICJYTUxUViIsDQogICAgICAibWFwcGluZyI6ICJNYXBwaW5nIiwNCiAgICAgICJ1c2VycyI6ICJVc2VycyIsDQogICAgICAic2V0dGluZ3MiOiAiU2V0dGluZ3MiLA0KICAgICAgImxvZyI6ICJMb2ciLA0KICAgICAgImxvZ291dCI6ICJMb2dvdXQiDQogICAgfSwNCiAgICAiaGVhZGxpbmUiOg0KICAgIHsNCiAgICAgICJwbGF5bGlzdCI6ICJMb2NhbCBvciByZW1vdGUgcGxheWxpc3RzIiwNCiAgICAgICJmaWx0ZXIiOiAiRmlsdGVyIHBsYXlsaXN0IiwNCiAgICAgICJ4bWx0diI6ICJMb2NhbCBvciByZW1vdGUgWE1MVFYgZmlsZXMiLA0KICAgICAgIm1hcHBpbmciOiAiTWFwIHBsYXlsaXN0IGNoYW5uZWxzIHRvIEVQRyBjaGFubmVscyIsDQogICAgICAidXNlcnMiOiAiVXNlciBtYW5hZ2VtZW50IiwNCiAgICAgICJzZXR0aW5ncyI6ICJTZXR0aW5ncyIsDQogICAgICAibG9nIjogIkxvZyIsDQogICAgICAibG9nb3V0IjogIkxvZ291dCINCiAgICB9DQogIH0sDQogICJjb25maXJtIjoNCiAgew0KICAgICJyZXN0b3JlIjogIkFsbCBkYXRhIHdpbGwgYmUgcmVwbGFjZWQgd2l0aCB0aG9zZSBmcm9tIHRoZSBiYWNrdXAuIFNob3VsZCB0aGUgZmlsZXMgYmUgcmVzdG9yZWQ/Ig0KICB9LA0KICAiYWxlcnQiOg0KICB7DQogICAgImZpbGVMb2FkaW5nRXJyb3IiOiAiRmlsZSBjb3VsZG4ndCBiZSBsb2FkZWQiLA0KICAgICJpbnZhbGlkQ2hhbm5lbE51bWJlciI6ICJJbnZhbGlkIGNoYW5uZWwgbnVtYmVyIiwNCiAgICAibWlzc2luZ0lucHV0IjogIk1pc3NpbmcgaW5wdXQiDQogIH0sDQogICJidXR0b24iOg0KICB7DQogICAgImJhY2siOiAiQmFjayIsDQogICAgImJhY2t1cCI6ICJCYWNrdXAiLA0KICAgICJidWxrRWRpdCI6ICJCdWxrIEVkaXQiLA0KICAgICJjYW5jZWwiOiAiQ2FuY2VsIiwNCiAgICAiZGVsZXRlIjogIkRlbGV0ZSIsDQogICAgImRvbmUiOiAiRG9uZSIsDQogICAgImxvZ2luIjogIkxvZ2luIiwNCiAgICAibmV3IjogIk5ldyIsDQogICAgIm5leHQiOiAiTmV4dCIsDQogICAgInJlc3RvcmUiOiAiUmVzdG9yZSIsDQogICAgInNhdmUiOiAiU2F2ZSIsDQogICAgInNlYXJjaCI6ICJTZWFyY2giLA0KICAgICJ1cGRhdGUiOiAiVXBkYXRlIiwNCiAgICAiY3JhZXRlQWNjb3VudCI6ICJDcmVhdGUgQWNjb3VudCIsDQogICAgInJlc2V0TG9ncyI6ICJSZXNldCBMb2dzIiwNCiAgICAidXBsb2FkTG9nbyI6ICJVcGxvYWQgTG9nbyINCiAgfSwNCiAgImZpbHRlciI6DQogIHsNCiAgICAidGFibGUiOg0KICAgIHsNCiAgICAgICJuYW1lIjogIkZpbHRlciBOYW1lIiwNCiAgICAgICJ0eXBlIjogIkZpbHRlciBUeXBlIiwNCiAgICAgICJmaWx0ZXIiOiAiRmlsdGVyIg0KICAgIH0sDQogICAgImN1c3RvbSI6ICJDdXN0b20iLA0KICAgICJncm91cCI6ICJNM1UgR3JvdXAiLA0KICAgICJuYW1lIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiRmlsdGVyIE5hbWUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIkZpbHRlciBuYW1lIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAiZGVzY3JpcHRpb24iOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJEZXNjcmlwdGlvbiIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiRGVzY3JpcHRpb24iLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJ0eXBlIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiVHlwZSIsDQogICAgICAiZ3JvdXBUaXRsZSI6ICJHcm91cCBUaXRsZSIsDQogICAgICAiY3VzdG9tRmlsdGVyIjogIkN1c3RvbSBGaWx0ZXIiDQogICAgfSwNCiAgICAiY2FzZVNlbnNpdGl2ZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIkNhc2UgU2Vuc2l0aXZlIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJmaWx0ZXJSdWxlIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiRmlsdGVyIFJ1bGUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIlNwb3J0IHtIRH0gIXtFUyxJVH0iLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJmaWx0ZXJHcm91cCI6DQogICAgew0KICAgICAgInRpdGxlIjogIkdyb3VwIFRpdGxlIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIlNlbGVjdCBhIE0zVSBncm91cC4gKENvdW50ZXIpPGJyPkNoYW5naW5nIHRoZSBncm91cCB0aXRsZSBpbiB0aGUgTTNVIGludmFsaWRhdGVzIHRoZSBmaWx0ZXIuIg0KICAgIH0sDQogICAgImluY2x1ZGUiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJJbmNsdWRlIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJGSEQsVUhEIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJDaGFubmVsIG5hbWUgbXVzdCBpbmNsdWRlLjxicj4oQ29tbWEgc2VwYXJhdGVkKSBDb21tYSBtZWFucyBvciINCiAgICB9LA0KICAgICJleGNsdWRlIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiRXhjbHVkZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiRVMsSVQiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIkNoYW5uZWwgbmFtZSBtdXN0IG5vdCBjb250YWluLjxicj4oQ29tbWEgc2VwYXJhdGVkKSBDb21tYSBtZWFucyBvciINCiAgICB9LA0KICAgICJwcmVzZXJ2ZU1hcHBpbmciOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJQcmVzZXJ2ZSBFeGlzdGluZyBNM1U8YnI+Q2hhbm5lbCBOdW1iZXJzIiwNCiAgICAgICJwYWxjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIlByZXNlcnZlIGV4aXN0aW5nIE0zVSBwbGF5bGlzdCBjaGFubmVsIG51bWJlcnM/Ig0KICAgIH0sDQogICAgInN0YXJ0aW5nQ2hhbm5lbCI6DQogICAgew0KICAgICAgInRpdGxlIjogIlN0YXJ0aW5nIENoYW5uZWwgTnVtYmVyIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJkZWZhdWx0TWlzc2luZ0VQRyI6DQogICAgew0KICAgICAgInRpdGxlIjogIkZpbGwgTWlzc2luZyBFUEcgRGF0YSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJXaGVuIHRoZXJlIGlzIG5vIG1hdGNoaW5nIEVQRyBkYXRhIGZvciBjaGFubmVsLCA8YnI+YXV0b2ZpbGwgd2l0aCB4VGVWZSBkdW1teSBFUEcgZGF0YT8iDQogICAgfQ0KDQogIH0sDQogICJwbGF5bGlzdCI6DQogIHsNCiAgICAidGFibGUiOg0KICAgIHsNCiAgICAgICJwbGF5bGlzdCI6ICJQbGF5bGlzdCIsDQogICAgICAidHVuZXIiOiAiVHVuZXIiLA0KICAgICAgImxhc3RVcGRhdGUiOiAiTGFzdCBVcGRhdGUiLA0KICAgICAgImF2YWlsYWJpbGl0eSI6ICJBdmFpbGFiaWxpdHkiLA0KICAgICAgInR5cGUiOiAiVHlwZSIsDQogICAgICAic3RyZWFtcyI6ICJTdHJlYW1zIiwNCiAgICAgICJncm91cFRpdGxlIjogImdyb3VwLXRpdGxlIiwNCiAgICAgICJ0dmdJRCI6ICJ0dmctaWQiLA0KICAgICAgInVuaXF1ZUlEIjogIlVuaXF1ZSBJRCINCiAgICB9LA0KICAgICJwbGF5bGlzdFR5cGUiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJQbGF5bGlzdCB0eXBlIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJ0eXBlIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiVHlwZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAibmFtZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIk5hbWUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIlBsYXlsaXN0IG5hbWUiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJkZXNjcmlwdGlvbiI6DQogICAgew0KICAgICAgInRpdGxlIjogIkRlc2NyaXB0aW9uIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJEZXNjcmlwdGlvbiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgImZpbGVNM1UiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJNM1UgRmlsZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiRmlsZSBwYXRoIG9yIFVSTCBvZiB0aGUgTTNVIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAiZmlsZUhESFIiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJIREhvbWVSdW4gSVAiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIklQIGFkZHJlc3MgYW5kIHBvcnQgKDE5Mi4xNjguMS4xMDo1MDA0KSIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgInR1bmVyIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiVHVuZXIgLyBTdHJlYW1zIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIk51bWJlciBvZiBwYXJhbGxlbCBjb25uZWN0aW9ucyB0aGF0IGNhbiBiZSBlc3RhYmxpc2hlZCB0byB0aGUgcHJvdmlkZXIuIDxicj5Pbmx5IGF2YWlsYWJsZSB3aXRoIGFjdGl2YXRlZCBidWZmZXIuPGJyPk5ldyBzZXR0aW5ncyB3aWxsIG9ubHkgYmUgYXBwbGllZCBhZnRlciBxdWl0dGluZyBhbGwgc3RyZWFtcy4iDQogICAgfQ0KICB9LA0KICAieG1sdHYiOg0KICB7DQogICAgInRhYmxlIjoNCiAgICB7DQogICAgICAiZ3VpZGUiOiAiR3VpZGUiLA0KICAgICAgImxhc3RVcGRhdGUiOiAiTGFzdCBVcGRhdGUiLA0KICAgICAgImF2YWlsYWJpbGl0eSI6ICJBdmFpbGFiaWxpdHkiLA0KICAgICAgImNoYW5uZWxzIjogIkNoYW5uZWxzIiwNCiAgICAgICJwcm9ncmFtcyI6ICJQcm9ncmFtcyINCiAgICB9LA0KICAgICJuYW1lIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiTmFtZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiR3VpZGUgbmFtZSIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgImRlc2NyaXB0aW9uIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiRGVzY3JpcHRpb24iLA0KICAgICAgInBsYWNlaG9sZGVyIjogIkRlc2NyaXB0aW9uIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAiZmlsZVhNTFRWIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiWE1MVFYgRmlsZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiRmlsZSBwYXRoIG9yIFVSTCBvZiB0aGUgWE1MVFYiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9DQogIH0sDQogICJtYXBwaW5nIjoNCiAgew0KICAgICJ0YWJsZSI6DQogICAgew0KICAgICAgImNoTm8iOiAiQ2guIE5vLiIsDQogICAgICAibG9nbyI6ICJMb2dvIiwNCiAgICAgICJjaGFubmVsTmFtZSI6ICJDaGFubmVsIE5hbWUiLA0KICAgICAgInBsYXlsaXN0IjogIlBsYXlsaXN0IiwNCiAgICAgICJncm91cFRpdGxlIjogIkdyb3VwIFRpdGxlIiwNCiAgICAgICJ4bWx0dkZpbGUiOiAiWE1MVFYgRmlsZSIsDQogICAgICAieG1sdHZJRCI6ICJYTUxUViBJRCIsDQogICAgICAidGltZXNoaWZ0IjogIlRpbWVzaGlmdCINCiAgICB9LA0KICAgICJhY3RpdmUiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJBY3RpdmUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgImNoYW5uZWxOYW1lIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiQ2hhbm5lbCBOYW1lIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJkZXNjcmlwdGlvbiI6DQogICAgew0KICAgICAgInRpdGxlIjogIkNoYW5uZWwgRGVzY3JpcHRpb24iLA0KICAgICAgInBsYWNlaG9sZGVyIjogIlVzZWQgYnkgdGhlIER1bW15IGFzIGFuIFhNTCBkZXNjcmlwdGlvbiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgInVwZGF0ZUNoYW5uZWxOYW1lIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiVXBkYXRlIENoYW5uZWwgTmFtZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAiY2hhbm5lbExvZ28iOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJMb2dvIFVSTCIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAidXBkYXRlQ2hhbm5lbExvZ28iOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJVcGRhdGUgQ2hhbm5lbCBMb2dvIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJlcGdDYXRlZ29yeSI6DQogICAgew0KICAgICAgInRpdGxlIjogIkVQRyBDYXRlZ29yeSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAibTN1R3JvdXBUaXRsZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIkdyb3VwIFRpdGxlICh4dGV2ZS5tM3UpIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJ4bWx0dkZpbGUiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJYTUxUViBGaWxlIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJ4bWx0dkNoYW5uZWwiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJYTUxUViBDaGFubmVsIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJ0aW1lc2hpZnQiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJUaW1lc2hpZnQiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIjAiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9DQogIH0sDQogICJ1c2VycyI6DQogIHsNCiAgICAidGFibGUiOg0KICAgIHsNCiAgICAgICJ1c2VybmFtZSI6ICJVc2VybmFtZSIsDQogICAgICAicGFzc3dvcmQiOiAiUGFzc3dvcmQiLA0KICAgICAgIndlYiI6ICJXRUIiLA0KICAgICAgInBtcyI6ICJQTVMiLA0KICAgICAgIm0zdSI6ICJNM1UiLA0KICAgICAgInhtbCI6ICJYTUwiLA0KICAgICAgImFwaSI6ICJBUEkiDQogICAgfSwNCiAgICAidXNlcm5hbWUiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJVc2VybmFtZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiVXNlcm5hbWUiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJwYXNzd29yZCI6DQogICAgew0KICAgICAgInRpdGxlIjogIlBhc3N3b3JkIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJQYXNzd29yZCIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgImNvbmZpcm0iOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJDb25maXJtIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJQYXNzd29yZCBjb25maXJtIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAid2ViIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiV2ViIEFjY2VzcyIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAicG1zIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiUE1TIEFjY2VzcyIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAibTN1IjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiTTNVIEFjY2VzcyIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAieG1sIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiWE1MIEFjY2VzcyIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAiYXBpIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiQVBJIEFjY2VzcyIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfQ0KICB9LA0KICAic2V0dGluZ3MiOg0KICB7DQogICAgImNhdGVnb3J5IjoNCiAgICB7DQogICAgICAiZ2VuZXJhbCI6ICJHZW5lcmFsIiwNCiAgICAgICJmaWxlcyI6ICJGaWxlcyIsDQogICAgICAic3RyZWFtaW5nIjogIlN0cmVhbWluZyIsDQogICAgICAiYmFja3VwIjogIkJhY2t1cCIsDQogICAgICAiYXV0aGVudGljYXRpb24iOiAiQXV0aGVudGljYXRpb24iDQogICAgfSwNCiAgICAidXBkYXRlIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiU2NoZWR1bGUgZm9yIHVwZGF0aW5nIChQbGF5bGlzdCwgWE1MVFYsIEJhY2t1cCkiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIjAwMDAsMTAwMCwyMDAwIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJUaW1lIGluIDI0IGhvdXIgZm9ybWF0ICgwODAwID0gODowMCBhbSkuIE1vcmUgdGltZXMgY2FuIGJlIGVudGVyZWQgY29tbWEgc2VwYXJhdGVkLiBMZWF2ZSB0aGlzIGZpZWxkIGVtcHR5IGlmIG5vIHVwZGF0ZXMgYXJlIHRvIGJlIGNhcnJpZWQgb3V0LiINCiAgICB9LA0KICAgICJhcGkiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJBUEkgSW50ZXJmYWNlIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJWaWEgQVBJIGludGVyZmFjZSBpdCBpcyBwb3NzaWJsZSB0byBzZW5kIGNvbW1hbmRzIHRvIHhUZVZlLiBBUEkgZG9jdW1lbnRhdGlvbiBpcyA8YSBocmVmPSdodHRwczovL2dpdGh1Yi5jb20veHRldmUtcHJvamVjdC94VGVWZS1Eb2N1bWVudGF0aW9uL2Jsb2IvbWFzdGVyL2VuL2NvbmZpZ3VyYXRpb24ubWQjYXBpJz5oZXJlPC9hPiINCiAgICB9LA0KICAgICJlcGdTb3VyY2UiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJFUEcgU291cmNlIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJQTVM6PGJyPi0gVXNlIEVQRyBkYXRhIGZyb20gUGxleCBvciBFbWJ5IDxicj48YnI+WEVQRzo8YnI+LSBVc2Ugb2Ygb25lIG9yIG1vcmUgWE1MVFYgZmlsZXM8YnI+LSBDaGFubmVsIG1hbmFnZW1lbnQ8YnI+LSBNM1UgLyBYTUxUViBleHBvcnQgKEhUVFAgbGluayBmb3IgSVBUViBhcHBzKSINCiAgICB9LA0KICAgICJ0dW5lciI6DQogICAgew0KICAgICAgInRpdGxlIjogIk51bWJlciBvZiBUdW5lcnMiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIk51bWJlciBvZiBwYXJhbGxlbCBjb25uZWN0aW9ucyB0aGF0IGNhbiBiZSBlc3RhYmxpc2hlZCB0byB0aGUgcHJvdmlkZXIuPGJyPkF2YWlsYWJsZSBmb3I6IFBsZXgsIEVtYnkgKEhESFIpLCBNM1UgKHdpdGggYWN0aXZlIGJ1ZmZlcikuPGJyPkFmdGVyIGEgY2hhbmdlLCB4VGVWZSBtdXN0IGJlIGRlbGV0ZSBpbiB0aGUgUGxleCAvIEVtYnkgRFZSIHNldHRpbmdzIGFuZCBzZXQgdXAgYWdhaW4uIg0KICAgIH0sDQogICAgImZpbGVzVXBkYXRlIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiVXBkYXRlcyBhbGwgZmlsZXMgYXQgc3RhcnR1cCIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiVXBkYXRlcyBhbGwgcGxheWxpc3RzLCB0dW5lciBhbmQgWE1MVFYgZmlsZXMgYXQgc3RhcnR1cC4iDQogICAgfSwNCiAgICAiY2FjaGVJbWFnZXMiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJJbWFnZSBDYWNoaW5nIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJBbGwgaW1hZ2VzIGZyb20gdGhlIFhNTFRWIGZpbGUgYXJlIGNhY2hlZCwgYWxsb3dpbmcgZmFzdGVyIHJlbmRlcmluZyBvZiB0aGUgZ3JpZCBpbiB0aGUgY2xpZW50Ljxicj5Eb3dubG9hZGluZyB0aGUgaW1hZ2VzIG1heSB0YWtlIGEgd2hpbGUgYW5kIHdpbGwgYmUgZG9uZSBpbiB0aGUgYmFja2dyb3VuZC4iDQogICAgfSwNCiAgICAicmVwbGFjZUVtcHR5SW1hZ2VzIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiUmVwbGFjZSBtaXNzaW5nIHByb2dyYW0gaW1hZ2VzIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJJZiB0aGUgcG9zdGVyIGluIHRoZSBYTUxUViBwcm9ncmFtIGlzIG1pc3NpbmcsIHRoZSBjaGFubmVsIGxvZ28gd2lsbCBiZSB1c2VkLiINCiAgICB9LA0KICAgICJ4dGV2ZUF1dG9VcGRhdGUiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJBdXRvbWF0aWMgdXBkYXRlIG9mIHhUZVZlIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJJZiBhIG5ldyB2ZXJzaW9uIG9mIHhUZVZlIGlzIGF2YWlsYWJsZSwgaXQgd2lsbCBiZSBhdXRvbWF0aWNhbGx5IGluc3RhbGxlZC4gVGhlIHVwZGF0ZXMgYXJlIGRvd25sb2FkZWQgZnJvbSBHaXRIdWIuIg0KICAgIH0sDQogICAgInN0cmVhbUJ1ZmZlcmluZyI6DQogICAgew0KICAgICAgInRpdGxlIjogIlN0cmVhbSBCdWZmZXIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIkZ1bmN0aW9ucyBvZiB0aGUgYnVmZmVyOjxicj4tIFRoZSBzdHJlYW0gaXMgcGFzc2VkIGZyb20geFRlVmUsIEZGbXBlZyBvciBWTEMgdG8gUGxleCwgRW1ieSBvciBNM1UgUGxheWVyPGJyPi0gU21hbGwgamVya2luZyBvZiB0aGUgc3RyZWFtcyBjYW4gYmUgY29tcGVuc2F0ZWQ8YnI+LSBITFMgLyBNM1U4IHN1cHBvcnQ8YnI+LSBSVFAgLyBSVFBTIHN1cHBvcnQgKG9ubHkgRkZtcGVnIG9yIFZMQyk8YnI+LSBSZS1zdHJlYW1pbmc8YnI+LSBTZXBhcmF0ZSB0dW5lciBsaW1pdCBmb3IgZWFjaCBwbGF5bGlzdCIsDQogICAgICAiaW5mb19mYWxzZSI6ICJObyBCdWZmZXIgKENsaWVudCBjb25uZWN0cyB0byB0aGUgc3RyZWFtaW5nIHNlcnZlcikiLA0KICAgICAgImluZm9feHRldmUiOiAieFRlVmUgY29ubmVjdHMgdG8gdGhlIHN0cmVhbWluZyBzZXJ2ZXIiLA0KICAgICAgImluZm9fZmZtcGVnIjogIkZGbXBlZyBjb25uZWN0cyB0byB0aGUgc3RyZWFtaW5nIHNlcnZlciIsDQogICAgICAiaW5mb192bGMiOiAiVkxDIGNvbm5lY3RzIHRvIHRoZSBzdHJlYW1pbmcgc2VydmVyIg0KDQogICAgfSwNCiAgICAidWRweHkiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJVRFB4eSBhZGRyZXNzIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJUaGUgYWRkcmVzcyBvZiB5b3VyIFVEUHh5IHNlcnZlci4gSWYgc2V0LCBhbmQgdGhlIGNoYW5uZWwgVVJMcyBpbiB0aGUgbTN1IGlzIG11bHRpY2FzdCwgeFRlVmUgd2lsbCByZXdyaXRlIGl0IHNvIHRoYXQgaXQgaXMgYWNjZXNzZWQgdmlhIHRoZSBVRFB4eSBzZXJ2aWNlLiIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiaG9zdDpwb3J0Ig0KICAgIH0sDQogICAgImZmbXBlZ1BhdGgiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJGRm1wZWcgQmluYXJ5IFBhdGgiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIlBhdGggdG8gRkZtcGVnIGJpbmFyeS4iLA0KICAgICAgInBsYWNlaG9sZGVyIjogIi9wYXRoL3RvL2ZmbXBlZyINCiAgICB9LA0KICAgICJmZm1wZWdPcHRpb25zIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiRkZtcGVnIE9wdGlvbnMiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIkZGbXBlZyBvcHRpb25zLjxicj5Pbmx5IGNoYW5nZSBpZiB5b3Uga25vdyB3aGF0IHlvdSBhcmUgZG9pbmcuPGJyPkxlYXZlIGJsYW5rIHRvIHNldCBkZWZhdWx0IHNldHRpbmdzLiIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiTGVhdmUgYmxhbmsgdG8gc2V0IGRlZmF1bHQgc2V0dGluZ3MiDQogICAgfSwNCiAgICAidmxjUGF0aCI6DQogICAgew0KICAgICAgInRpdGxlIjogIlZMQyAvIENWTEMgQmluYXJ5IFBhdGgiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIlBhdGggdG8gVkxDIC8gQ1ZMQyBiaW5hcnkuIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIvcGF0aC90by9jdmxjIg0KICAgIH0sDQogICAgInZsY09wdGlvbnMiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJWTEMgLyBDVkxDIE9wdGlvbnMiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIlZMQyAvIENWTEMgb3B0aW9ucy48YnI+T25seSBjaGFuZ2UgaWYgeW91IGtub3cgd2hhdCB5b3UgYXJlIGRvaW5nLjxicj5MZWF2ZSBibGFuayB0byBzZXQgZGVmYXVsdCBzZXR0aW5ncy4iLA0KICAgICAgInBsYWNlaG9sZGVyIjogIkxlYXZlIGJsYW5rIHRvIHNldCBkZWZhdWx0IHNldHRpbmdzIg0KICAgIH0sDQogICAgImJ1ZmZlclNpemUiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJCdWZmZXIgU2l6ZSIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiQnVmZmVyIHNpemUgaW4gTUIuPGJyPk0zVTg6IElmIHRoZSBUUyBzZWdtZW50IHNtYWxsZXIgdGhlbiB0aGUgYnVmZmVyIHNpemUsIHRoZSBmaWxlIHNpemUgb2YgdGhlIHNlZ21lbnQgaXMgdXNlZC4iDQogICAgfSwNCiAgICAiYnVmZmVyVGltZW91dCI6DQogICAgew0KICAgICAgInRpdGxlIjogIlRpbWVvdXQgZm9yIG5ldyBjbGllbnQgY29ubmVjdGlvbnMiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIlRoZSB4VGVWZSBidWZmZXIgd2FpdHMgdW50aWwgbmV3IGNsaWVudCBjb25uZWN0aW9ucyBhcmUgZXN0YWJsaXNoZWQuIEhlbHBmdWwgZm9yIGZhc3QgY2hhbm5lbCBzd2l0Y2hpbmcuIFZhbHVlIGluIG1pbGxpc2Vjb25kcy4iLA0KICAgICAgInBsYWNlaG9sZGVyIjogIjEwMCINCiAgICB9LA0KICAgICJ1c2VyQWdlbnQiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJVc2VyIEFnZW50IiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJVc2VyIEFnZW50IGZvciBIVFRQIHJlcXVlc3RzLiBGb3IgZXZlcnkgSFRUUCBjb25uZWN0aW9uLCB0aGlzIHZhbHVlIGlzIHVzZWQgZm9yIHRoZSB1c2VyIGFnZW50LiBTaG91bGQgb25seSBiZSBjaGFuZ2VkIGlmIHhUZVZlIGlzIGJsb2NrZWQuIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJ4VGVWZSINCiAgICB9LA0KICAgICJiYWNrdXBQYXRoIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiTG9jYXRpb24gZm9yIGF1dG9tYXRpYyBiYWNrdXBzIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIvbW50L2RhdGEvYmFja3VwL3h0ZXZlLyIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiQmVmb3JlIGFueSB1cGRhdGUgb2YgdGhlIHByb3ZpZGVyIGRhdGEgYnkgdGhlIHNjaGVkdWxlLCB4VGVWZSBjcmVhdGVzIGEgYmFja3VwLiBUaGUgcGF0aCBmb3IgdGhlIGF1dG9tYXRpYyBiYWNrdXBzIGNhbiBiZSBjaGFuZ2VkLiB4VGVWZSByZXF1aXJlcyB3cml0ZSBwZXJtaXNzaW9uIGZvciB0aGlzIGZvbGRlci4iDQogICAgfSwNCiAgICAidGVtcFBhdGgiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJMb2NhdGlvbiBmb3IgdGhlIHRlbXBvcmFyeSBmaWxlcyIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiL3RtcC94dGV2ZS8iLA0KICAgICAgImRlc2NyaXB0aW9uIjogIkxvY2F0aW9uIGZvciB0aGUgYnVmZmVyIGZpbGVzLiINCiAgICB9LA0KICAgICJiYWNrdXBLZWVwIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiTnVtYmVyIG9mIGJhY2t1cHMgdG8ga2VlcCIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiTnVtYmVyIG9mIGJhY2t1cHMgdG8ga2VlcC4gT2xkZXIgYmFja3VwcyBhcmUgYXV0b21hdGljYWxseSBkZWxldGVkLiINCiAgICB9LA0KICAgICJhdXRoZW50aWNhdGlvbldFQiI6DQogICAgew0KICAgICAgInRpdGxlIjogIldFQiBBdXRoZW50aWNhdGlvbiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiQWNjZXNzIHRvIHRoZSB3ZWIgaW50ZXJmYWNlIG9ubHkgcG9zc2libGUgd2l0aCBjcmVkZW50aWFscy4iDQogICAgfSwNCiAgICAiYXV0aGVudGljYXRpb25QTVMiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJQTVMgQXV0aGVudGljYXRpb24iLA0KICAgICAgImRlc2NyaXB0aW9uIjogIlBsZXggcmVxdWVzdHMgYXJlIG9ubHkgcG9zc2libGUgd2l0aCBhdXRoZW50aWNhdGlvbi4gPGJyPjxiPldhcm5pbmchISE8L2I+IEFmdGVyIGFjdGl2YXRpbmcgdGhpcyBmdW5jdGlvbiB4VGVWZSBtdXN0IGJlIGRlbGV0ZSBpbiB0aGUgUE1TIERWUiBzZXR0aW5ncyBhbmQgc2V0IHVwIGFnYWluLiINCiAgICB9LA0KICAgICJhdXRoZW50aWNhdGlvbk0zVSI6DQogICAgew0KICAgICAgInRpdGxlIjogIk0zVSBBdXRoZW50aWNhdGlvbiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiRG93bmxvYWRpbmcgdGhlIHh0ZXZlLm0zdSBmaWxlIHZpYSBhbiBIVFRQIHJlcXVlc3QgaXMgb25seSBwb3NzaWJsZSB3aXRoIGF1dGhlbnRpY2F0aW9uLiINCiAgICB9LA0KICAgICJhdXRoZW50aWNhdGlvblhNTCI6DQogICAgew0KICAgICAgInRpdGxlIjogIlhNTCBBdXRoZW50aWNhdGlvbiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiRG93bmxvYWRpbmcgdGhlIHh0ZXZlLnhtbCBmaWxlIHZpYSBhbiBIVFRQIHJlcXVlc3QgaXMgb25seSBwb3NzaWJsZSB3aXRoIGF1dGhlbnRpY2F0aW9uIg0KICAgIH0sDQogICAgImF1dGhlbnRpY2F0aW9uQVBJIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiQVBJIEF1dGhlbnRpY2F0aW9uIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJBY2Nlc3MgdG8gdGhlIEFQSSBpbnRlcmZhY2UgaXMgb25seSBwb3NzaWJsZSB3aXRoIGF1dGhlbnRpY2F0aW9uLiINCiAgICB9DQogIH0sDQogICJ3aXphcmQiOg0KICB7DQogICAgImVwZ1NvdXJjZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIkVQRyBTb3VyY2UiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIlBNUzo8YnI+LSBVc2UgRVBHIGRhdGEgZnJvbSBQbGV4IG9yIEVtYnkgPGJyPjxicj5YRVBHOjxicj4tIFVzZSBvZiBvbmUgb3IgbW9yZSBYTUxUViBmaWxlczxicj4tIENoYW5uZWwgbWFuYWdlbWVudDxicj4tIE0zVSAvIFhNTFRWIGV4cG9ydCAoSFRUUCBsaW5rIGZvciBJUFRWIGFwcHMpIg0KICAgIH0sDQogICAgInR1bmVyIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiTnVtYmVyIG9mIHR1bmVycyIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiTnVtYmVyIG9mIHBhcmFsbGVsIGNvbm5lY3Rpb25zIHRoYXQgY2FuIGJlIGVzdGFibGlzaGVkIHRvIHRoZSBwcm92aWRlci48YnI+QXZhaWxhYmxlIGZvcjogUGxleCwgRW1ieSAoSERIUiksIE0zVSAod2l0aCBhY3RpdmUgYnVmZmVyKS48YnI+QWZ0ZXIgYSBjaGFuZ2UsIHhUZVZlIG11c3QgYmUgZGVsZXRlIGluIHRoZSBQbGV4IC8gRW1ieSBEVlIgc2V0dGluZ3MgYW5kIHNldCB1cCBhZ2Fpbi4iDQogICAgfSwNCiAgICAibTN1IjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiTTNVIFBsYXlsaXN0IiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJGaWxlIHBhdGggb3IgVVJMIG9mIHRoZSBNM1UiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIkxvY2FsIG9yIHJlbW90ZSBwbGF5bGlzdHMiDQogICAgfSwNCiAgICAieG1sdHYiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJYTUxUViBGaWxlIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJGaWxlIHBhdGggb3IgVVJMIG9mIHRoZSBYTUxUViIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiTG9jYWwgb3IgcmVtb3RlIFhNTFRWIGZpbGUiDQogICAgfQ0KICB9LA0KICAibG9naW4iOg0KICB7DQogICAgImZhaWxlZCI6ICJVc2VyIGF1dGhlbnRpY2F0aW9uIGZhaWxlZCIsDQogICAgImhlYWRsaW5lIjogIkxvZ2luIiwNCiAgICAidXNlcm5hbWUiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJVc2VybmFtZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiVXNlcm5hbWUiDQogICAgfSwNCiAgICAicGFzc3dvcmQiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJQYXNzd29yZCIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiUGFzc3dvcmQiDQogICAgfQ0KICB9LA0KICAiYWNjb3VudCI6DQogIHsNCiAgICAiZmFpbGVkIjogIlBhc3N3b3JkIGRvZXMgbm90IG1hdGNoIiwNCiAgICAiaGVhZGxpbmUiOiAiQ3JlYXRlIHVzZXIgYWNjb3VudCIsDQogICAgInVzZXJuYW1lIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiVXNlcm5hbWUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIlVzZXJuYW1lIg0KICAgIH0sDQogICAgInBhc3N3b3JkIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiUGFzc3dvcmQiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIlBhc3N3b3JkIg0KICAgIH0sDQogICAgImNvbmZpcm0iOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJDb25maXJtIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJDb25maXJtIg0KICAgIH0NCiAgfQ0KfQ==" + webUI["html/css/screen.css"] = "bmF2IGltZyB7DQogIGRpc3BsYXk6IGJsb2NrOw0KICBtYXgtaGVpZ2h0OiAyMHB4Ow0KICBtYXgtd2lkdGg6IDIwcHg7DQogIGZsb2F0OiBsZWZ0Ow0KfQ0KDQpuYXYgcCB7DQogIHRleHQtYWxpZ246IGxlZnQ7DQogIHBhZGRpbmc6IDBweCAzMHB4Ow0KfQ0KDQojbGF5b3V0IHsNCiAgZGlzcGxheTogYmxvY2s7DQogIGhlaWdodDogMTAwJTsNCn0NCg0KDQoubGF5b3V0LWxlZnQgew0KICBkaXNwbGF5OiBibG9jazsNCiAgbWluLXdpZHRoOiAxNTBweDsNCiAgbWF4LXdpZHRoOiAyMCU7DQogIGJhY2tncm91bmQtY29sb3I6ICMxMTE7DQogIGhlaWdodDogaW5oZXJpdDsNCiAgZmxvYXQ6IGxlZnQ7DQp9DQoNCi5sYXlvdXQtcmlnaHQgew0KICBkaXNwbGF5OiBibG9jazsNCiAgYmFja2dyb3VuZC1jb2xvcjogIzQ0NDsNCn0NCg0KI21lbnUtd3JhcHBlciB7DQogIGhlaWdodDogMTAwJTsNCn0NCg0KDQojbG9nbyB7DQogIGRpc3BsYXk6IGJsb2NrOw0KICBtaW4td2lkdGg6IDE4MHB4Ow0KICB3aWR0aDogMTAwJTsNCiAgaGVpZ2h0OiAxMDBweDsNCiAgYmFja2dyb3VuZDogdXJsKCIuLi9pbWcvbG9nb193XzYwMHgyMDAucG5nIik7DQogIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7DQogIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjsgDQogIGJhY2tncm91bmQtc2l6ZTogMTAwJTsNCn0NCg0KDQojcGFnZSB7DQogIG1heC13aWR0aDogOTUwcHg7DQogIG1hcmdpbjogYXV0bzsNCiAgYmFja2dyb3VuZC1jb2xvcjogIzQ0NDsNCg0KICAvKg0KICBoZWlnaHQ6IC13ZWJraXQtY2FsYygxMDAlIC0gMTMwcHgpOw0KICBoZWlnaHQ6IC1tb3otY2FsYygxMDAlIC0gMTMwcHgpOw0KICBoZWlnaHQ6IGNhbGMoMTAwJSAtIDEzMHB4KTsNCiAgKi8NCiAgDQogIG1pbi1oZWlnaHQ6IC13ZWJraXQtY2FsYygxMDAlIC0gMTIwcHgpOw0KICBtaW4taGVpZ2h0OiAtbW96LWNhbGMoMTAwJSAtIDEyMHB4KTsNCiAgbWluLWhlaWdodDogY2FsYygxMDAlIC0gMTIwcHgpOw0KICANCiAgDQogIGJveC1zaGFkb3c6IDBweCA1cHggNXB4ICMyMjI7DQogIA0KfQ0KDQojdWlTZXR0aW5nIHsNCiAgZmxvYXQ6IHJpZ2h0Ow0KICBtYXJnaW4tcmlnaHQ6IDI1cHg7DQp9DQoNCiNib3ggaW5wdXRbdHlwZT10ZXh0XSwgI2JveCBpbnB1dFt0eXBlPXBhc3N3b3JkXSB7DQogIHdpZHRoOiAtd2Via2l0LWNhbGMoMTAwJSAtIDIwcHgpOw0KICB3aWR0aDogLW1vei1jYWxjKDEwMCUgLSAyMHB4KTsNCiAgd2lkdGg6IGNhbGMoMTAwJSAtIDIwcHgpOw0KfQ0KDQojYm94IGlucHV0W3R5cGU9c3VibWl0XXsNCiAgbWFyZ2luOiA1MHB4IGF1dG87DQp9DQoNCiNzZXR0aW5ncyB7DQogIGRpc3BsYXk6IGJsb2NrOw0KICBwYWRkaW5nOiAxMHB4IDEwcHg7DQp9DQoNCiNzZXR0aW5ncyBoNSB7DQogIG1hcmdpbjogNTBweCAwcHggMTBweCAwcHg7DQp9DQoNCiNjb250ZW50LWludGVyYWN0aW9uIC5zZWFyY2ggew0KICB3aWR0aDogMjAwcHg7DQogIGJvcmRlcjogMXB4IHNvbGlkICMwMDA7DQogIHBhZGRpbmc6IDlweDsNCiAgYmFja2dyb3VuZC1jb2xvcjogIzMzMzsNCiAgbWFyZ2luOiAxMHB4Ow0KICBmbG9hdDogcmlnaHQ7DQogIGJvcmRlci1yYWRpdXM6IDNweDsNCg0KfQ0KDQojbXlTdHJlYW1zIHsNCiAgcG9zaXRpb246IGZpeGVkOw0KICBib3R0b206IDBweDsNCiAgYmFja2dyb3VuZC1jb2xvcjogIzExMTsNCiAgd2lkdGg6IDEwMCU7DQogIG1heC13aWR0aDogOTUwcHg7DQoNCiAgLyoNCiAgbWF4LWhlaWdodDogMTAwcHg7DQogICovDQogIG1hcmdpbi1ib3R0b206IDBweDsNCn0NCg0KI215U3RyZWFtcyBpbWcgew0KICB3aWR0aDogNCU7DQogIHBhZGRpbmc6IDJweCA1cHg7DQogIGN1cnNvcjogcG9pbnRlcjsNCiAgZmxvYXQ6IHJpZ2h0Ow0KfQ0KDQojc2V0dGluZ3MtZm9vdGVyIHsNCg0KfQ0KDQoNCi8qIFdpemFyZCovDQojYm94IHsNCiAgYmFja2dyb3VuZC1jb2xvcjogIzQ0NDsNCiAgbWluLWhlaWdodDogNDAwcHg7DQogIA0KICBkaXNwbGF5OiBmbGV4Ow0KICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOw0KICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47DQp9DQoNCiNib3ggcHsNCiAgcGFkZGluZzogMTBweCAwcHg7DQp9DQoNCiNib3gtZm9vdGVyIHsNCiAgbWFyZ2luLXRvcDogYXV0bzsNCn0NCg0KI2JveC1mb290ZXIgew0KICBtYXJnaW46IGF1dG87DQogIHBhZGRpbmc6IDEwcHg7DQp9DQoNCiNoZWFkbGluZSB7DQogIGJhY2tncm91bmQtY29sb3I6ICMyMjI7DQogIGJvcmRlci1ib3R0b206IHNvbGlkIDJweCAjMjIyOw0KICB0cmFuc2l0aW9uOiBhbGwgMC41czsNCiAgcGFkZGluZzogMTBweCAwcHg7DQogIGRpc3BsYXk6IGJsb2NrOw0KfQ0KDQojY29udGVudCB7DQogIGRpc3BsYXk6IGJsb2NrOw0KICBvdmVyZmxvdzogYXV0bzsNCiAgcGFkZGluZzogMTBweDsNCn0NCg0KLyogLS0tICovDQoNCg0KI2NsaWVudEluZm8sICNhY3RpdmVTdHJlYW1zLCAjaW5hY3RpdmVTdHJlYW1zIHsNCiAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZTsNCiAgZGlzcGxheTogYmxvY2s7DQogIGZvbnQtc2l6ZTogOXB4Ow0KICBiYWNrZ3JvdW5kLWNvbG9yOiAjMTExOw0KICBjb2xvcjogIzAwRTZGRjsNCiAgYm9yZGVyLWJvdHRvbTogc29saWQgMHB4OzsNCiAgcGFkZGluZzogMHB4Ow0KICBsZXR0ZXItc3BhY2luZzogMXB4Ow0KICBvdmVyZmxvdy14OiBoaWRkZW47DQogIGJvcmRlci1zcGFjaW5nOiA0cHggNHB4Ow0KICBib3JkZXItYm90dG9tOiBzb2xpZCAxcHggIzQ0NDsNCn0NCg0KI215U3RyZWFtc0JveCB7DQogIHBvc2l0aW9uOiByZWxhdGl2ZTsNCiAgcGFkZGluZzogMHB4Ow0KICAvKmhlaWdodDogMTAwcHg7Ki8NCiAgbWF4LWhlaWdodDogMTUwcHg7DQogIGJhY2tncm91bmQtY29sb3I6ICMxMTE7DQogIGNvbG9yOiB3aGl0ZTsNCiAgZGlzcGxheTpmbGV4Ow0KICBqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyOw0KICBhbGlnbi1pdGVtczpjZW50ZXI7DQp9DQoNCiNvcGVuU3RyZWFtcyB7DQogIHdpZHRoOiAyMHB4Ow0KICBoZWlnaHQ6IDIwcHg7DQogIGN1cnNvcjogcG9pbnRlcjsNCiAgZmxvYXQ6IHJpZ2h0Ow0KICBwb3NpdGlvbjogYWJzb2x1dGU7DQogIHJpZ2h0OiAwcHg7DQogIGJvdHRvbTogMHB4Ow0KICBiYWNrZ3JvdW5kOiB1cmwoIi4uL2ltZy90b3VjaC5wbmciKTsNCiAgYmFja2dyb3VuZC1jb2xvcjogIzExMTsNCiAgDQogIGJhY2tncm91bmQtcG9zaXRpb246IGJvdHRvbSByaWdodDsgIA0KfQ0KDQojYWxsU3RyZWFtcyB7DQogIHdpZHRoOiAxMDAlOw0KICBoZWlnaHQ6IDEwMCU7DQogIHBhZGRpbmc6IDJweDsgICAgIA0KfQ0KDQojYWN0aXZlU3RyZWFtcywgI2luYWN0aXZlU3RyZWFtcyB7DQogIG92ZXJmbG93LXk6IHNjcm9sbDsNCiAgd2lkdGg6IDUwJTsNCiAgbWF4LWhlaWdodDogMTAwcHg7DQogIGZsb2F0OiBsZWZ0Ow0KfQ0KDQojYWN0aXZlU3RyZWFtcyAudGRLZXksICNpbmFjdGl2ZVN0cmVhbXMgLnRkS2V5IHsNCiAgd2lkdGg6IDc1cHg7DQp9DQoNCg0KDQoNCiNpbmFjdGl2ZVN0cmVhbXMgLnRkS2V5IHsNCiAgY29sb3I6IHJlZDsNCn0NCg0KI2NsaWVudEluZm8gLnRkVmFsLCAjbG9nSW5mbyAudGRWYWwsICNhY3RpdmVTdHJlYW1zIC50ZFZhbCwgI2luYWN0aXZlU3RyZWFtcyAudGRWYWwsICNtYXBwaW5nSW5mbyAudGRWYWx7DQogIGNvbG9yOiAjYWFhOw0KICB3aGl0ZS1zcGFjZTogaW5oZXJpdDsNCn0NCg0KI2JveC13cmFwcGVyIHsNCiAgZGlzcGxheTogaW5saW5lLWJsb2NrOw0KICB3aWR0aDogMTAwJTsNCiAgDQogIG92ZXJmbG93LXk6IHNjcm9sbDsNCn0NCg0KI2NvbnRlbnRfdGFibGUsICNtYXBwaW5nLWRldGFpbC10YWJsZSwgI2NvbnRlbnRfdGFibGUgew0KICBkaXNwbGF5OiB0YWJsZTsNCiAgDQogIGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7DQogIG92ZXJmbG93LXk6IHNjcm9sbDsNCiAgd2lkdGg6IDEwMCU7DQp9DQoNCg0KI2NvbnRlbnRfdGFibGUgLmNvbnRlbnRfdGFibGVfaGVhZGVyIHsNCiAgYmFja2dyb3VuZC1jb2xvcjogIzMzMzsNCiAgaGVpZ2h0OiA1MHB4Ow0KICBib3JkZXItYm90dG9tOiBzb2xpZCAxcHggIzExMTsNCiAgYm9yZGVyLWxlZnQ6IHNvbGlkIDNweCAjMzMzOw0KICBjdXJzb3I6IGF1dG87DQoNCn0NCg0KDQp0Ym9keSB7DQogIHdpZHRoOiAxMDAlOw0KfQ0KDQoNCi50YWJsZUVsbGlwc2lzIHsNCiAgd2lkdGg6IDE1MHB4Ow0KICBvdmVyZmxvdzogaGlkZGVuOw0KICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsNCiAgd2hpdGUtc3BhY2U6IG5vd3JhcDsNCn0NCg0KI2NvbnRlbnRfdGFibGUgaW1nIHsNCiAgZGlzcGxheTogYmxvY2s7DQogIG1heC1oZWlnaHQ6IDI4cHg7DQogIG1hcmdpbi1sZWZ0OiBhdXRvOw0KICBtYXJnaW4tcmlnaHQ6IGF1dG87DQogIG1heC13aWR0aDogMzBweDsNCn0NCg0KI2NvbnRlbnRfdGFibGUgdHJ7DQogIGJvcmRlci1sZWZ0OiBzb2xpZCAzcHggNDQ0Ow0KICBib3JkZXItYm90dG9tOiBzb2xpZCAxcHggIzMzMzsNCiAgY3Vyc29yOiBwb2ludGVyOw0KfQ0KDQojY29udGVudF90YWJsZSB0cjpob3ZlciB7DQogIGJhY2tncm91bmQtY29sb3I6ICMzMzM7DQp9DQoNCiNjb250ZW50X3RhYmxlIHRkIHsNCg0KICBwYWRkaW5nOiAwcHggMnB4Ow0KfQ0KDQojY29udGVudF90YWJsZSBpbnB1dFt0eXBlPXRleHRdew0KICB3aWR0aDogODAlOw0KICBtaW4td2lkdGg6IDM1cHg7DQogIG1heC13aWR0aDogNjBweDsNCiAgYm9yZGVyOiAwcHg7DQogIGJhY2tncm91bmQtY29sb3I6ICMzMzM7DQogIG1hcmdpbi1sZWZ0OiA1cHg7DQogIHRleHQtYWxpZ246IGxlZnQ7DQp9DQoNCiNjb250ZW50X3RhYmxlIGlucHV0W3R5cGU9Y2hlY2tib3hdew0KICBtYXgtd2lkdGg6IDI1cHg7DQogIG1hcmdpbjogYXV0bzsNCn0NCg0KDQouc2hvd0J1bGsgew0KICBkaXNwbGF5OiBibG9jazsNCn0NCg0KLmhpZGVCdWxrIHsNCiAgZGlzcGxheTogbm9uZTsNCn0NCg0KLm5vQnVsayB7DQoNCn0NCg0KI2NvbnRlbnRfdGFibGUgdHIuYWN0aXZlRVBHew0KICBib3JkZXItbGVmdDogc29saWQgM3B4IGxhd25ncmVlbjsNCn0NCg0KI2NvbnRlbnRfdGFibGUgdHIubm90QWN0aXZlRVBHew0KICBib3JkZXItbGVmdDogc29saWQgM3B4IHJlZDsNCn0NCg0KDQojbG9nU2NyZWVuIHB7DQogIHdoaXRlLXNwYWNlOiBwcmU7DQogIGZvbnQtc2l6ZTogMTBweDsNCiAgLyoNCiAgbGluZS1oZWlnaHQ6IDEuNmVtOw0KICBmb250LWZhbWlseTogIkFyaWFsIiwgc2Fucy1zZXJpZjsNCiAgKi8NCiAgbGV0dGVyLXNwYWNpbmc6IDFweDsNCiAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZTsgDQogIGZvbnQtc2l6ZTogMTJweDsgDQogIGZvbnQtc3R5bGU6IG5vcm1hbDsgDQogIGZvbnQtdmFyaWFudDogbm9ybWFsOyANCiAgbGluZS1oZWlnaHQ6IDEuNmVtOyANCn0NCg0KI3BvcHVwIHsNCiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjQpOw0KICBwb3NpdGlvbjogZml4ZWQ7DQogIGxlZnQ6IDBweDsNCiAgd2lkdGg6IDEwMCU7DQogIHotaW5kZXg6IDEwMDsNCiAgaGVpZ2h0OiAxMDAlOw0KfQ0KDQojbWFwcGluZy1kZXRhaWwsICN1c2VyLWRldGFpbCwgI2ZpbGUtZGV0YWlsLCAjcG9wdXAtY3VzdG9tIHsNCiAgYm94LXNoYWRvdzogMHB4IDVweCA0MHB4ICMwMDA7DQogIG1hcmdpbi10b3A6IDIwcHg7DQogIG1hcmdpbi1sZWZ0OiBhdXRvOw0KICBtYXJnaW4tcmlnaHQ6IGF1dG87DQogIA0KICBtYXgtd2lkdGg6IDYwMHB4Ow0KICBiYWNrZ3JvdW5kLWNvbG9yOiAjMjIyOw0KICBwYWRkaW5nOiAxMHB4Ow0KICBvdmVyZmxvdzphdXRvOw0KfQ0KDQojcG9wdXAtY3VzdG9tIGgzIHsNCiAgdGV4dC1hbGlnbjogY2VudGVyOw0KfQ0KDQojZmlsZS1kZXRhaWwgaW5wdXRbdHlwZT10ZXh0XSB7DQogIHdpZHRoOiAtd2Via2l0LWNhbGMoMTAwJSAtIDIwcHgpOw0KICB3aWR0aDogLW1vei1jYWxjKDEwMCUgLSAyMHB4KTsNCiAgd2lkdGg6IGNhbGMoMTAwJSAtIDIwcHgpOw0KfQ0KDQojbWFwcGluZy1kZXRhaWwgaW1nIHsNCiAgZGlzcGxheTogYmxvY2s7DQogIG1heC1oZWlnaHQ6IDMwcHg7DQogIG1hcmdpbi1ib3R0b206IDIwcHg7DQogIG1hcmdpbi1sZWZ0OiBhdXRvOw0KICBtYXJnaW4tcmlnaHQ6IGF1dG87DQp9DQoNCiNwb3B1cC1jdXN0b20gaW5wdXRbdHlwZT10ZXh0XSwgI3BvcHVwLWN1c3RvbSBpbnB1dFt0eXBlPXBhc3N3b3JkXSwgI21hcHBpbmctZGV0YWlsIGlucHV0W3R5cGU9dGV4dF0sICNjb250ZW50X3NldHRpbmdzIGlucHV0W3R5cGU9dGV4dF0sICNjb250ZW50X3NldHRpbmdzIGlucHV0W3R5cGU9cGFzc3dvcmRdew0KICBib3JkZXI6IHNvbGlkIDFweDsNCiAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDsNCiAgYmFja2dyb3VuZC1jb2xvcjogIzMzMzsNCiAgdGV4dC1hbGlnbjogbGVmdDsNCiAgd2lkdGg6IC13ZWJraXQtY2FsYygxMDAlIC0gMjBweCk7DQogIHdpZHRoOiAgICAtbW96LWNhbGMoMTAwJSAtIDIwcHgpOw0KICB3aWR0aDogICAgICAgICBjYWxjKDEwMCUgLSAyMHB4KTsNCn0NCg0KI3BvcHVwLWN1c3RvbSBpbnB1dFt0eXBlPXRleHRdLm5vdEF2YWlsYWJsZSB7DQogIGJvcmRlci1jb2xvcjogcmVkOw0KICBjb2xvcjogIzY2NjsNCiAgY3Vyc29yOiBub3QtYWxsb3dlZDsNCn0NCg0KI21hcHBpbmctZGV0YWlsLXRhYmxlLCAjdXNlci1kZXRhaWwtdGFibGUgew0KICBkaXNwbGF5OiBpbmxpbmUtdGFibGU7DQogIHdpZHRoOiAxMDAlOw0KfQ0KDQojcG9wdXAtY3VzdG9tIHRhYmxlLCAjY29udGVudF9zZXR0aW5ncyB0YWJsZSB7DQogIGRpc3BsYXk6IGlubGluZS10YWJsZTsNCiAgdGFibGUtbGF5b3V0OiBmaXhlZDsNCiAgd2lkdGg6IDEwMCU7DQp9DQoNCg0KI21hcHBpbmctZGV0YWlsLXRhYmxlIHRkLCAjdXNlci1kZXRhaWwtdGFibGUgdGQgew0KICBwYWRkaW5nOiAxMHB4IDBweDsNCg0KfQ0KDQojbWFwcGluZy1kZXRhaWwtdGFibGUgdGQubGVmdCwgI3VzZXItZGV0YWlsLXRhYmxlIHRkLmxlZnQsICNwb3B1cC1jdXN0b20gdGQubGVmdCB7DQogIHdpZHRoOiAzOCU7DQp9DQoNCi5pbnRlcmFjdGlvbiwgI2ludGVyYWN0aW9uIHsNCiAgbWFyZ2luLXRvcDogMjBweDsNCiAgZGlzcGxheTogaW5saW5lLWZsZXg7DQogIGZsb2F0OiByaWdodDsNCn0NCg0KLmludGVyYWN0aW9uIGlucHV0W3R5cGU9YnV0dG9uXSwgLmludGVyYWN0aW9uIGlucHV0W3R5cGU9c3VibWl0XSB7DQogIGJhY2tncm91bmQtY29sb3I6ICMwMDA7DQogIG1pbi13aWR0aDogMTAwcHg7DQogIG1hcmdpbjogMHB4IDEwcHg7DQogIHRleHQtYWxpZ246IGNlbnRlcjsNCn0NCg0KI25vdGlmaWNhdGlvbiB7DQogIGRpc3BsYXk6IGJsb2NrOw0KICBwb3NpdGlvbjogZml4ZWQ7DQogIHJpZ2h0OiAwcHg7DQogIGhlaWdodDogMTAwJTsNCiAgd2lkdGg6IDI1MHB4Ow0KICANCiAgYmFja2dyb3VuZC1jb2xvcjogIzIyMjsNCiAgYm94LXNoYWRvdzogMHB4IDBweCAyMHB4ICMwMDA7DQp9DQoNCiNub3RpZmljYXRpb24gaDUgew0KICBiYWNrZ3JvdW5kLWNvbG9yOiAjMTIxMjEyOw0KICBwYWRkaW5nOiA1cHggMTBweCA1cHggMTBweDsNCn0NCg0KI25vdGlmaWNhdGlvbiBwcmUgew0KICBwYWRkaW5nOiAwcHggMTBweCAwcHggMTBweDsNCn0NCg0KI25vdGlmaWNhdGlvbiBwIHsNCiAgZm9udC1zaXplOiAxMCBweDsNCiAgbWFyZ2luOiAwcHg7DQogIHBhZGRpbmc6IDBweCAxMHB4IDVweCAxMHB4Ow0KfQ0KDQojbm90aWZpY2F0aW9uIC5lbGVtZW50IHsNCiAgLypwYWRkaW5nOiAwcHggNXB4OyovDQogIG1hcmdpbjogNXB4IDVweDsNCiAgYm9yZGVyLXJhZGl1czogNXB4Ow0KICBiYWNrZ3JvdW5kLWNvbG9yOiAjMTgxODE4Ow0KICBib3JkZXItbGVmdDogMTBweCBzb2xpZCBncmVlbjsNCn0NCg0KDQpAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDYyMHB4KXsNCiAgYm9keSB7DQogICAgd2lkdGg6IDEwMCU7DQogICAgYmFja2dyb3VuZC1jb2xvcjogIzQ0NDsNCiAgfQ0KDQogIGgxIHsNCiAgICBmb250LXNpemU6IDI2cHg7DQogICAgbGV0dGVyLXNwYWNpbmc6IDNweDsNCiAgfQ0KDQogIG5hdiBwIHsNCiAgICBkaXNwbGF5OiBibG9jazsNCiAgfQ0KDQoNCg0KICAjaGVhZGVyX2NvbmZpZyB7DQogICAgZGlzcGxheTogYmxvY2s7DQogICAgaGVpZ2h0OiAxMDBweDsNCiAgICBiYWNrZ3JvdW5kOiB1cmwoIi4uL2ltZy9sb2dvX3dfNjAweDIwMC5wbmciKTsNCiAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0Ow0KICAgIA0KICAgIGJhY2tncm91bmQtc2l6ZTogMzAwcHggMTAwcHg7DQogIH0NCg0KICAjc2NyZWVuTG9nIHsNCiAgICBtYXJnaW4tbGVmdDogMzAwcHg7DQoNCiAgICB0cmFuc2l0aW9uOiBub25lOw0KICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50Ow0KICAgIGJvcmRlci1ib3R0b206IHNvbGlkIDFweCB0cmFuc3BhcmVudDsNCiAgICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAjMjIyOw0KICB9DQoNCiAgI3NldHRpbmdzIHsNCiAgICAvKg0KICAgIGhlaWdodDogLXdlYmtpdC1jYWxjKDEwMCUgLSAxMDBweCk7DQogICAgaGVpZ2h0OiAtbW96LWNhbGMoMTAwJSAtIDEwMHB4KTsNCiAgICBoZWlnaHQ6IGNhbGMoMTAwJSAtIDEwMHB4KTsNCiAgICAqLw0KICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsNCiAgICBvdmVyZmxvdzogYXV0bzsNCiAgfQ0KDQoNCiAgLnNjcmVlbkxvZ0hpZGRlbiB7DQogICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMHB4LCAwcHgpOw0KICB9DQoNCg0KICAjYm94IHsNCiAgICBkaXNwbGF5OiBibG9jazsNCiAgICBtaW4taGVpZ2h0OiA1MDBweDsNCiAgICBtYXgtd2lkdGg6IDUwMHB4Ow0KICAgIG1hcmdpbjogMTBweCBhdXRvOw0KICAgIGJhY2tncm91bmQtY29sb3I6ICM0NDQ7DQogICAgYm94LXNoYWRvdzogMHB4IDVweCA1cHggIzIyMjsNCg0KICAgIGRpc3BsYXk6IGZsZXg7DQogICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsNCiAgfQ0KDQogICNzZXR0aW5ncywgI3NldHRpbmdzLWZvb3RlciB7DQogICAgDQogIH0NCn0NCg==" + webUI["html/img/stream-limit.jpg"] = "/9j/4AAQSkZJRgABAQAAAQABAAD/4gJoSUNDX1BST0ZJTEUAAQEAAAJYbGNtcwQwAABtbnRyUkdCIFhZWiAH4wAFABcAFgAuAAphY3NwQVBQTAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA9tYAAQAAAADTLWxjbXMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAtkZXNjAAABCAAAAEBjcHJ0AAABSAAAAE53dHB0AAABmAAAABRjaGFkAAABrAAAACxyWFlaAAAB2AAAABRiWFlaAAAB7AAAABRnWFlaAAACAAAAABRyVFJDAAACFAAAACBnVFJDAAACFAAAACBiVFJDAAACFAAAACBjaHJtAAACNAAAACRtbHVjAAAAAAAAAAEAAAAMZW5VUwAAACQAAAAcAHMAUgBHAEIAIABJAEUAQwA2ADEAOQA2ADYALQAyAC4AMQAAbWx1YwAAAAAAAAABAAAADGVuVVMAAAAyAAAAHABOAG8AIABjAG8AcAB5AHIAaQBnAGgAdAAsACAAdQBzAGUAIABmAHIAZQBlAGwAeQAAAABYWVogAAAAAAAA9tYAAQAAAADTLXNmMzIAAAAAAAEMSgAABeP///MqAAAHmwAA/Yf///ui///9owAAA9gAAMCUWFlaIAAAAAAAAG+UAAA47gAAA5BYWVogAAAAAAAAJJ0AAA+DAAC2vlhZWiAAAAAAAABipQAAt5AAABjecGFyYQAAAAAAAwAAAAJmZgAA8qcAAA1ZAAAT0AAACltjaHJtAAAAAAADAAAAAKPXAABUewAATM0AAJmaAAAmZgAAD1z/2wBDAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQH/2wBDAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQH/wAARCAQ4B4ADASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD/AD/6KKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigD9PvBf/AARa/wCCrXxF8HeE/iD4G/YM/aL8UeCfHfhrQvGXg/xNpHgia50nxF4W8T6Xa634f13TLkTgXGn6vpN9aahZTgAS21xFIAN1dL/w4o/4LB/9I7/2m/8AwgZ//kiv9b3/AIJp/wDKOX9gH/syf9lX/wBUV4Dr7YoA/wAWr/hxR/wWD/6R3/tN/wDhAz//ACRR/wAOKP8AgsH/ANI7/wBpv/wgZ/8A5Ir/AGlaKAP8Wr/hxR/wWD/6R3/tN/8AhAz/APyRR/w4o/4LB/8ASO/9pv8A8IGf/wCSK/2laKAP8Wr/AIcUf8Fg/wDpHf8AtN/+EDP/APJFH/Dij/gsH/0jv/ab/wDCBn/+SK/2laKAP8Wr/hxR/wAFg/8ApHf+03/4QM//AMkUf8OKP+Cwf/SO/wDab/8ACBn/APkiv9pWigD/ABav+HFH/BYP/pHf+03/AOEDP/8AJFH/AA4o/wCCwf8A0jv/AGm//CBn/wDkiv8AaVooA/xav+HFH/BYP/pHf+03/wCEDP8A/JFH/Dij/gsH/wBI7/2m/wDwgZ//AJIr/aVooA/xav8AhxR/wWD/AOkd/wC03/4QM/8A8kUf8OKP+Cwf/SO/9pv/AMIGf/5Ir/aVooA/xav+HFH/AAWD/wCkd/7Tf/hAz/8AyRR/w4o/4LB/9I7/ANpv/wAIGf8A+SK/2laKAP8AFq/4cUf8Fg/+kd/7Tf8A4QM//wAkUf8ADij/AILB/wDSO/8Aab/8IGf/AOSK/wBpWigD/Fq/4cUf8Fg/+kd/7Tf/AIQM/wD8kUf8OKP+Cwf/AEjv/ab/APCBn/8Akiv9pWigD/Fq/wCHFH/BYP8A6R3/ALTf/hAz/wDyRR/w4o/4LB/9I7/2m/8AwgZ//kiv9pWigD/E88f/APBGT/gqj8K/AnjT4nfEX9hL9ofwf8P/AIdeFPEPjnxz4t1zwTNaaL4X8IeE9Ju9d8SeIdXujORbaZo2j2F5qN9OQRDa20shB24r8yq/28f+Ctf/ACit/wCClX/ZhH7Xv/rP/wAQK/xDqACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooA+j/ANmj9kL9pr9snxbrvgL9lr4K+Ovjn408M+HH8X6/4Y+H2ljWdZ0vwvFqen6NLr1zYrNHMNMh1XVtL0+a7RWihu9RsoZSj3MIf7U/4cUf8Fg/+kd/7Tf/AIQM/wD8kV2v/BAD9sj/AIYi/wCCrf7K/wATNW1X+yvh98QPFw+AHxWklm+z6f8A8IJ8aWg8HjU9Xl3Ls0rwd4wufCPxAuz82B4RQlJACjf7MFAH+LV/w4o/4LB/9I7/ANpv/wAIGf8A+SKP+HFH/BYP/pHf+03/AOEDP/8AJFf7StFAH+LV/wAOKP8AgsH/ANI7/wBpv/wgZ/8A5Io/4cUf8Fg/+kd/7Tf/AIQM/wD8kV/tK0UAf4tX/Dij/gsH/wBI7/2m/wDwgZ//AJIo/wCHFH/BYP8A6R3/ALTf/hAz/wDyRX+0rRQB/gx/HT4CfGb9mT4n+Ivgt+0B8NfFnwj+K3hJNHl8SeA/G2lzaP4i0iLxBomneI9Emu7KbJWLU9C1bTtTs5UZ45rW7idWySB5HX9yX/B69+yL/wAIr8eP2V/22/D2meXpfxb8Da18BfiPd2sOy3i8afDG9k8U+BdR1OXbiXVPFHg/xZrukWzB2P8AZnw0jjZIxEjS/wANtABRRRQAUUUUAFFFFABRRRQAUUUUAPRHldIokeSSR1SONFLu7uQqIiKCzOzEKqqCWJAAJNfq8n/BCv8A4LBSIki/8E7/ANp3a6q67vh/dI21gGG5HnV0bB5V1VlPDAEEVv8A/BBj9kX/AIbU/wCCrf7Ivwo1PTP7T8DeGPiFb/Gz4nRTQ+fpzeAvgpE3xDv9L1hQrEaZ4w1nRdD8BSkAFp/FdvH5kO/zo/8AZ4oA/wAWr/hxR/wWD/6R3/tN/wDhAz//ACRR/wAOKP8AgsH/ANI7/wBpv/wgZ/8A5Ir/AGlaKAP8Wr/hxR/wWD/6R3/tN/8AhAz/APyRR/w4o/4LB/8ASO/9pv8A8IGf/wCSK/2laKAP8Wr/AIcUf8Fg/wDpHf8AtN/+EDP/APJFH/Dij/gsH/0jv/ab/wDCBn/+SK/2laKAP8Kz9p39iX9rL9i7UfCOkftV/AT4ifAfVPHtlq+o+DtO+IejjRb3xDp+gz2Ntq97p1s00k0lrY3GpWUEs7IkbSz+XGztHKI/lqv6F/8Ag5+/bI/4a5/4K2/HDTNF1X+0fh7+y5aaZ+y74KEU261GofDq61K8+KVz5UbG3N0fi9r3jnSTexl5bzSdE0USybLeCGD+eigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigD/cg/4Jp/8o5f2Af+zJ/2Vf8A1RXgOvtivif/AIJp/wDKOX9gH/syf9lX/wBUV4Dr7YoAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigD8+P8AgrX/AMorf+ClX/ZhH7Xv/rP/AMQK/wAQ6v8Abx/4K1/8orf+ClX/AGYR+17/AOs//ECv8Q6gAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAHI7xOkkbtHJGyvHIjFHR0IZXRlIZWVgGVlIIIBBBFf7Z//BIH9sRP28f+Cbv7J37St5qS6n4x8VfC/TPDXxTmMqvc/wDC3PhxNcfD/wCJdxdQ5Mtp/bPi7w3qfiLT7e4zK2jazplyHnhuIrib/Eur/QW/4Mm/2yPteh/tZfsE+JNV3T6PeaT+1D8KNPml3yNp2pDRvht8YrW381t0NrYahB8JtRtLK33Rtda5r980cUjzyzgH98VFFFABRRRQAUUUUAfhR/wcifsif8Ngf8Eif2ndD0vTP7T8dfAvSbH9p74ehYvPuINW+DCXur+MUs4FUzXF/qvwjvfiRoFhb25E819q9skazn/R5v8AHer/AH6NW0rTdd0rU9D1mxtdU0fWdPvNK1bTL6FLmy1HTdRtpLS+sby3kDRz2t3azS29xDIrJLFI6OCrEV/hv/8ABQv9lrUv2J/23/2ov2V9Riuo4Pgv8Y/GHhbwzPe7/tWqeAJdQbWfhrr83mfPu8R/D7VPDOvjcWO3Uh88n32APjeiiigAooooAKKKKACiiigAooooA/0D/wDgyU/ZE+z6T+19+3Xr+mYl1G70D9lz4Y6lJFtdbSwTSfif8YfKaRd0lvd3Vz8HreC4g2xifS9VtneSRHSD++mvyl/4Ih/sif8ADEf/AAS3/ZB+B2o6X/ZXjV/hhYfE/wCKEEsPlahH8S/jDNN8SfFmmaq21WnvfCl14ki8EpKw+Ww8M2MCExQxmv1aoAKKKKACiiigAr5A/b+/ao0X9iP9iv8AaZ/as1xrRk+Cfwi8V+LdCsr5gtrrfjk2R0j4c+GZWLKF/wCEq8f6n4a8NodwxJqqdeh+v6/ib/4PTP2yP+EA/Za/Z5/Yk8N6r5WvftCfEG7+LPxGtLWb98nww+Dogh8OaVqtvuA+weKviT4g03W9Nk2uWvvhfdrujEZEoB/nB+IfEGteLPEGueKvEup3eteIvE2san4g1/WL+Uz32ra1rN7PqOq6nezNzNd399cz3VzKeZJpXc8mseiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigD/cg/4Jp/8AKOX9gH/syf8AZV/9UV4Dr7Yr4n/4Jp/8o5f2Af8Asyf9lX/1RXgOvtigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAPz4/4K1/8orf+ClX/AGYR+17/AOs//ECv8Q6v9vH/AIK1/wDKK3/gpV/2YR+17/6z/wDECv8AEOoAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAr9V/+CJP7ZH/DCn/BT39k348anqv9leA2+Itp8Mvi1NNN5Onp8LPi3FJ8P/F+qaou5RPaeEbfXYPHcMLMB/aXhXT5R80Sg/lRRQB/v8UV+TP/AAQ5/bI/4bo/4JdfsnfG7VNV/tXx9p/w+tfhN8WpZZvO1Fvid8IJG8A+JNV1f5m8u/8AGUWi6d8QFjDECx8W2TgRh/LT9ZqACiiigAooooAK/wA07/g9I/ZE/wCFcftj/AD9sXQNM8jQP2lfhZdfD7xtd28O5H+KPwOnsbO31HUp1A8q41z4a+KvBmkaXDN808HgPUnhZ1tplh/0sa/nd/4Oi/2RP+Gq/wDgkT8cNZ0fS/7R8dfsuapoP7T/AITMUO64TS/ACahpXxSVp0Bnjsbf4ReJvHOuz26hoLi+0HS2nQG3iuLcA/yKaKKKACiiigAooooAKKKKACv02/4I3fsi/wDDcf8AwUy/ZC/Z3vtM/tXwfr3xX0nxh8TrWSLfaS/Cr4XQ3PxJ+IlleyMGhto9d8L+FtQ8NWk04MbaprWn2yxzz3EUEv5k1/eL/wAGTH7In9reP/2uf259f0zdZ+D9A0H9mf4Z6hND5sEmveK7jTviL8VprV3Gy21LQ9E0b4YWSTwlp207xnqVsWhgnkS5AP8AQzooooAKKKKACiiigAr/AB3f+DkD9sj/AIbN/wCCtf7SWvaRqv8Aanw9+BGpWv7MPw1aOf7RaJovwcudR0zxfd2E6MYLnT9d+LV/8RfEWm3dsPJuNM1axZJJ1VbiX/Ux/wCCnv7XVn+wl+wF+1T+1TLdW1trXws+E2vXHgJbsRtBe/FTxOYPBnwo02aKQMJbe/8AiN4h8MW16qxysti9zN5UixMp/wAQK+vr3U7281LUru5v9R1C6uL6/vryaS5u729u5XuLq7uriZnlnubieR5p5pXaSWV2d2ZmJIBVooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooA/sa/Z9/4PGv2mv2ffgJ8EPgJo37HXwJ8QaP8EPhD8NfhDpOv6n43+IFtqWt6b8NfBmi+DLHV9Qt7QfZbe+1K10WK9u4bb/R4riaSOH92q169/xG8ftWf9GRfs9/+F98R/8ACv4h6KAP7eP+I3j9qz/oyL9nv/wvviP/AIUf8RvH7Vn/AEZF+z3/AOF98R/8K/iHooA/t4/4jeP2rP8AoyL9nv8A8L74j/4Uf8RvH7Vn/RkX7Pf/AIX3xH/wr+IeigD+3j/iN4/as/6Mi/Z7/wDC++I/+FH/ABG8ftWf9GRfs9/+F98R/wDCv4h6KAP9GT/gmX/wdhftE/t2/t3fs3/skeLv2T/gt4E8N/G/xpf+F9W8XeHPGPjnUNb0O3tPCviHxCt1p9lqY+wXEzzaNFbslz8gimkYfOq1/cpX+NT/AMG73/KaX9gD/srmtf8AqtPHVf7K1ABRRRQAUUUUAFFFFAH8KH/BRT/g7X/aN/Yq/bf/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WOj6BoOn3Gq6xql5Jg+Xaafp1pcXdw+DshhdsHGKAP8AN2/4PR/2yP8AhY37XHwD/Yq8N6r53h/9m34dT/Er4g2dtNiP/hanxqFlcaTpmqW4Yh7rw38MdB8M6zpUzhWitviTqKICJmJ/itr6y/bt/ah179tX9sf9pP8Aaq8RG6juvjh8XfF/jbS7C9fzLjQfCN1qUln4D8LF98m6Lwl4IsvD/hm2Jkc/ZtJiBdj8x+TaACiiigAooooAK/2Hv+DZvSf7G/4Id/sIWe3Z53hv40atjGM/29+0r8Ztc3f8D/tHfnvuzzmv8eGv9kD/AINw7+HUv+CJ37A1xAqqkfw58c2DBOhm0r40fEvTLhj/ALb3FnKz/wC2WoA/biiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAr/JJ/4Ow/+U2X7Q//AGTv9nj/ANUr4Nr/AFtq/wAkn/g7D/5TZftD/wDZO/2eP/VK+DaAP5vaKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKK6vwJ4G8W/E3xn4X+HngLQdQ8UeNPGmu6b4a8L+HtLi86/1fWtXuo7OwsrdCVRTLPKoeaZ47e3iD3FzLFBFJIt06dSrUhSpQnUq1Zwp06dOMp1KlSpOMKdOEIKUpznOcIQhGMpSlKMYpuST58Xi8LgMJisfjsTh8FgcDhsRjcbjcXXpYXCYPB4OhWxWLxeKxOIqUaGHw2Fw2GxGIxGIr1aVGhQoVq1WpTp0pzj9Y/sAfsT+O/27/wBofw38HvC32vSfCtqY/EXxU8cx2/nWvgfwDZ3MMep6gDIpgm13VHkTR/C2myZ+361dwPcCLSrTVL2z/wBHr4T/AAs8CfBD4beC/hL8MtAtPDHgPwBoNl4c8NaJZj5LWwskOZriZv3t7qV/cvPqOr6ndNJe6rqt3eal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gAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAr+z7/ggp/wTT/4VH4Psf20vjV4f8r4n/ELRXX4K+HtVtsXPgT4d6zbFJvGk8E6brXxN8QbCXZpbIqz6X4Hn/17P4t1GysPyI/4Ip/8E13/AGxfjB/wuX4r6G837N3wa1q0m1S1voD9h+KPxAtlg1HSvAMXmL5V3oOmRyWmt+O8ear6bNpfh14h/wAJK95p/wDedHGkSJFEiRxxoscccahEjRAFRERQFVFUBVVQAoAAAAr+o/AXw29vUpcdZ3h/3FGclw3ha0NK1eDlTq5zOE1rTw8lOjlzaaniFXxkbxw+Hkf4Nfta/psf2Tg8d9FLwvzi2aZlh6E/GrPctxHv5dleIhRxeC8NsPiKFS8Mbm1KWFzPjSMKkZ4bKJZTw5VUKub5vRT6KKK/rU/55AooooAKKKr3d3a2Frc319c29lY2VvNd3l5dzR21raWttG01xc3NxMyQwW8EKPLNNK6RxRozuyqpIG0k22kkm220kkk2222kkkm220kk22km04xlOUYQjKc5yjCEIRlOc5zlGMIQhGMpSnKUoxjGMZSlKUYxjKUoxlYoqlpuo6frGn2Gr6TfWeqaVqlla6jpmp6fcw3un6jp99AlzZX1jeWzyW93Z3dtLHcW1zBJJDPDIksTsjqxu0k1JKUWnFpNNNNNNJppptNNNNNNpppptNNucJ0pzp1ITp1Kc506lOpCdOpTqU5zp1KdSnUjCpTqU6lOdOpTqQhOE4ThOEJwnCBRRRTJCiiigD8if+Cvv/BOiw/bq+A0ms+CNNtIv2i/hFZalrXwv1HENtN4u00p9q1z4X6pdvsRrXxCIRc+Gp7yRIdI8Vw2j/arDS9W8QPcf59Ooaff6Tf32larZXem6npl5c6fqWnX9vNZ31hf2Uz215ZXtpcJHPa3drcRyQXNvPGk0E0bxSIrqyj/AFjK/kJ/4L+/8E2P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/DSP/BUjUvgr4f1X7d4A/Y18AaL8IbSK3m87TpviZ4mSHx78VtVhBYmPULa61fw18PtYjCoEvPh1sCsVMsoB/LfRRRQAUUUUAFFFFABRRRQAUUUUAFf6lH/BsR/wW/h/bw+Ddn+xj+0n4qib9sH4C+E7ePwt4i1m7Vb/APaF+D2gQwWFp4kW4nYPqXxM8BWv2TS/H9u5k1LxFpA03x8kmp3U3jWXRP8ALXr0j4P/ABg+J3wA+J/gf4z/AAY8b6/8OPil8N/EFl4o8E+NvDF61jrWg61YMTFcW8oDxT288TzWWpabew3OmavplzeaVqtneabeXVrMAf72FFfzsf8ABCH/AIL2fCb/AIKr/DKw+GXxPvvDPwy/bk8CaKg8e/DJbqLTdK+K+nadbZuvil8HrW8nM9/pc8cL3fi7wbBJeav4DvTKZvtnhqfStbu/6J6ACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooA+HP8Agp3/AMo1v+Chf/Zjn7WX/qhPH9f4dVf7iv8AwU7/AOUa3/BQv/sxz9rL/wBUJ4/r/DqoAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKtWNje6ne2em6bZ3WoajqF1b2NhYWNvLd3t9e3cqQWtnaWsCST3N1czyRw29vCjyzSukcaM7AFpNtJJttpJJNtttJJJJtttpJJNttJJtpOZzhThKpUlGEIRlOc5yjCEIQjKc5znOUIQhCEJznOc4QhCE5znGMZSj7x+y5+zX8Sf2t/jj4G+BHwr0/7V4l8ZaksdzqVxHK2keFPDtpifxB4v8AEM0SsbbRPD+nCW8uiM3F5MLbStOjudV1CxtLj/SQ/ZX/AGZ/ht+yJ8DPA/wH+Flh9n8O+D9PAvtWniiTV/F3iW8CzeIfGHiGWIYuNZ1+/wB9zMNxgsLUWej6ctvpWm2FrB+fv/BHj/gnDZfs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FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF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FFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFAH//Z" + webUI["html/js/base_ts.js"] = "dmFyIFNFUlZFUiA9IG5ldyBPYmplY3QoKTsNCnZhciBCVUxLX0VESVQgPSBmYWxzZTsNCnZhciBDT0xVTU5fVE9fU09SVDsNCnZhciBTRUFSQ0hfTUFQUElORyA9IG5ldyBPYmplY3QoKTsNCnZhciBVTkRPID0gbmV3IE9iamVjdCgpOw0KdmFyIFNFUlZFUl9DT05ORUNUSU9OID0gZmFsc2U7DQp2YXIgV1NfQVZBSUxBQkxFID0gZmFsc2U7DQovLyBNZW7DvA0KdmFyIG1lbnVJdGVtcyA9IG5ldyBBcnJheSgpOw0KbWVudUl0ZW1zLnB1c2gobmV3IE1haW5NZW51SXRlbSgicGxheWxpc3QiLCAie3subWFpbk1lbnUuaXRlbS5wbGF5bGlzdH19IiwgIm0zdS5wbmciLCAie3subWFpbk1lbnUuaGVhZGxpbmUucGxheWxpc3R9fSIpKTsNCi8vbWVudUl0ZW1zLnB1c2gobmV3IE1haW5NZW51SXRlbSgicG1zSUQiLCAie3subWFpbk1lbnUuaXRlbS5wbXNJRH19IiwgIm51bWJlci5wbmciLCAie3subWFpbk1lbnUuaGVhZGxpbmUucG1zSUR9fSIpKQ0KbWVudUl0ZW1zLnB1c2gobmV3IE1haW5NZW51SXRlbSgiZmlsdGVyIiwgInt7Lm1haW5NZW51Lml0ZW0uZmlsdGVyfX0iLCAiZmlsdGVyLnBuZyIsICJ7ey5tYWluTWVudS5oZWFkbGluZS5maWx0ZXJ9fSIpKTsNCm1lbnVJdGVtcy5wdXNoKG5ldyBNYWluTWVudUl0ZW0oInhtbHR2IiwgInt7Lm1haW5NZW51Lml0ZW0ueG1sdHZ9fSIsICJ4bWx0di5wbmciLCAie3subWFpbk1lbnUuaGVhZGxpbmUueG1sdHZ9fSIpKTsNCm1lbnVJdGVtcy5wdXNoKG5ldyBNYWluTWVudUl0ZW0oIm1hcHBpbmciLCAie3subWFpbk1lbnUuaXRlbS5tYXBwaW5nfX0iLCAibWFwcGluZy5wbmciLCAie3subWFpbk1lbnUuaGVhZGxpbmUubWFwcGluZ319IikpOw0KbWVudUl0ZW1zLnB1c2gobmV3IE1haW5NZW51SXRlbSgidXNlcnMiLCAie3subWFpbk1lbnUuaXRlbS51c2Vyc319IiwgInVzZXJzLnBuZyIsICJ7ey5tYWluTWVudS5oZWFkbGluZS51c2Vyc319IikpOw0KbWVudUl0ZW1zLnB1c2gobmV3IE1haW5NZW51SXRlbSgic2V0dGluZ3MiLCAie3subWFpbk1lbnUuaXRlbS5zZXR0aW5nc319IiwgInNldHRpbmdzLnBuZyIsICJ7ey5tYWluTWVudS5oZWFkbGluZS5zZXR0aW5nc319IikpOw0KbWVudUl0ZW1zLnB1c2gobmV3IE1haW5NZW51SXRlbSgibG9nIiwgInt7Lm1haW5NZW51Lml0ZW0ubG9nfX0iLCAibG9nLnBuZyIsICJ7ey5tYWluTWVudS5oZWFkbGluZS5sb2d9fSIpKTsNCm1lbnVJdGVtcy5wdXNoKG5ldyBNYWluTWVudUl0ZW0oImxvZ291dCIsICJ7ey5tYWluTWVudS5pdGVtLmxvZ291dH19IiwgImxvZ291dC5wbmciLCAie3subWFpbk1lbnUuaGVhZGxpbmUubG9nb3V0fX0iKSk7DQovLyBLYXRlZ29yaWVuIGbDvHIgZGllIEVpbnN0ZWxsdW5nZW4NCnZhciBzZXR0aW5nc0NhdGVnb3J5ID0gbmV3IEFycmF5KCk7DQpzZXR0aW5nc0NhdGVnb3J5LnB1c2gobmV3IFNldHRpbmdzQ2F0ZWdvcnlJdGVtKCJ7ey5zZXR0aW5ncy5jYXRlZ29yeS5nZW5lcmFsfX0iLCAieHRldmVBdXRvVXBkYXRlLHR1bmVyLGVwZ1NvdXJjZSxhcGkiKSk7DQpzZXR0aW5nc0NhdGVnb3J5LnB1c2gobmV3IFNldHRpbmdzQ2F0ZWdvcnlJdGVtKCJ7ey5zZXR0aW5ncy5jYXRlZ29yeS5maWxlc319IiwgInVwZGF0ZSxmaWxlcy51cGRhdGUsdGVtcC5wYXRoLGNhY2hlLmltYWdlcyx4ZXBnLnJlcGxhY2UubWlzc2luZy5pbWFnZXMiKSk7DQpzZXR0aW5nc0NhdGVnb3J5LnB1c2gobmV3IFNldHRpbmdzQ2F0ZWdvcnlJdGVtKCJ7ey5zZXR0aW5ncy5jYXRlZ29yeS5zdHJlYW1pbmd9fSIsICJidWZmZXIsdWRweHksYnVmZmVyLnNpemUua2IsYnVmZmVyLnRpbWVvdXQsdXNlci5hZ2VudCxmZm1wZWcucGF0aCxmZm1wZWcub3B0aW9ucyx2bGMucGF0aCx2bGMub3B0aW9ucyIpKTsNCnNldHRpbmdzQ2F0ZWdvcnkucHVzaChuZXcgU2V0dGluZ3NDYXRlZ29yeUl0ZW0oInt7LnNldHRpbmdzLmNhdGVnb3J5LmJhY2t1cH19IiwgImJhY2t1cC5wYXRoLGJhY2t1cC5rZWVwIikpOw0Kc2V0dGluZ3NDYXRlZ29yeS5wdXNoKG5ldyBTZXR0aW5nc0NhdGVnb3J5SXRlbSgie3suc2V0dGluZ3MuY2F0ZWdvcnkuYXV0aGVudGljYXRpb259fSIsICJhdXRoZW50aWNhdGlvbi53ZWIsYXV0aGVudGljYXRpb24ucG1zLGF1dGhlbnRpY2F0aW9uLm0zdSxhdXRoZW50aWNhdGlvbi54bWwsYXV0aGVudGljYXRpb24uYXBpIikpOw0KZnVuY3Rpb24gc2hvd1BvcFVwRWxlbWVudChlbG0pIHsNCiAgICB2YXIgYWxsRWxlbWVudHMgPSBuZXcgQXJyYXkoInBvcHVwLWN1c3RvbSIpOw0KICAgIGZvciAodmFyIGkgPSAwOyBpIDwgYWxsRWxlbWVudHMubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgc2hvd0VsZW1lbnQoYWxsRWxlbWVudHNbaV0sIGZhbHNlKTsNCiAgICB9DQogICAgc2hvd0VsZW1lbnQoZWxtLCB0cnVlKTsNCiAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsNCiAgICAgICAgc2hvd0VsZW1lbnQoInBvcHVwIiwgdHJ1ZSk7DQogICAgfSwgMTApOw0KICAgIHJldHVybjsNCn0NCmZ1bmN0aW9uIHNob3dFbGVtZW50KGVsbUlELCB0eXBlKSB7DQogICAgdmFyIGNzc0NsYXNzOw0KICAgIHN3aXRjaCAodHlwZSkgew0KICAgICAgICBjYXNlIHRydWU6DQogICAgICAgICAgICBjc3NDbGFzcyA9ICJibG9jayI7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSBmYWxzZToNCiAgICAgICAgICAgIGNzc0NsYXNzID0gIm5vbmUiOw0KICAgICAgICAgICAgYnJlYWs7DQogICAgfQ0KICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGVsbUlEKS5jbGFzc05hbWUgPSBjc3NDbGFzczsNCn0NCmZ1bmN0aW9uIGNoYW5nZUJ1dHRvbkFjdGlvbihlbGVtZW50LCBidXR0b25JRCwgYXR0cmlidXRlKSB7DQogICAgdmFyIHZhbHVlID0gZWxlbWVudC5vcHRpb25zW2VsZW1lbnQuc2VsZWN0ZWRJbmRleF0udmFsdWU7DQogICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoYnV0dG9uSUQpLnNldEF0dHJpYnV0ZShhdHRyaWJ1dGUsIHZhbHVlKTsNCn0NCmZ1bmN0aW9uIGdldExvY2FsRGF0YShkYXRhVHlwZSwgaWQpIHsNCiAgICBsZXQgZGF0YSA9IHt9Ow0KICAgIHN3aXRjaCAoZGF0YVR5cGUpIHsNCiAgICAgICAgY2FzZSAibTN1IjoNCiAgICAgICAgICAgIGRhdGEgPSBTRVJWRVJbInNldHRpbmdzIl1bImZpbGVzIl1bZGF0YVR5cGVdW2lkXTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJoZGhyIjoNCiAgICAgICAgICAgIGRhdGEgPSBTRVJWRVJbInNldHRpbmdzIl1bImZpbGVzIl1bZGF0YVR5cGVdW2lkXTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJmaWx0ZXIiOg0KICAgICAgICBjYXNlICJjdXN0b20tZmlsdGVyIjoNCiAgICAgICAgY2FzZSAiZ3JvdXAtdGl0bGUiOg0KICAgICAgICAgICAgaWYgKGlkID09IC0xKSB7DQogICAgICAgICAgICAgICAgZGF0YVsiYWN0aXZlIl0gPSB0cnVlOw0KICAgICAgICAgICAgICAgIGRhdGFbImNhc2VTZW5zaXRpdmUiXSA9IGZhbHNlOw0KICAgICAgICAgICAgICAgIGRhdGFbImRlc2NyaXB0aW9uIl0gPSAiIjsNCiAgICAgICAgICAgICAgICBkYXRhWyJleGNsdWRlIl0gPSAiIjsNCiAgICAgICAgICAgICAgICBkYXRhWyJmaWx0ZXIiXSA9ICIiOw0KICAgICAgICAgICAgICAgIGRhdGFbImluY2x1ZGUiXSA9ICIiOw0KICAgICAgICAgICAgICAgIGRhdGFbIm5hbWUiXSA9ICIiOw0KICAgICAgICAgICAgICAgIGRhdGFbInR5cGUiXSA9ICJncm91cC10aXRsZSI7DQogICAgICAgICAgICAgICAgZGF0YVsicHJlc2VydmVNYXBwaW5nIl0gPSB0cnVlOw0KICAgICAgICAgICAgICAgIGRhdGFbInN0YXJ0aW5nQ2hhbm5lbCJdID0gU0VSVkVSWyJzZXR0aW5ncyJdWyJtYXBwaW5nLmZpcnN0LmNoYW5uZWwiXTsNCiAgICAgICAgICAgICAgICBkYXRhWyJkZWZhdWx0TWlzc2luZ0VQRyJdID0gIi0iOw0KICAgICAgICAgICAgICAgIFNFUlZFUlsic2V0dGluZ3MiXVsiZmlsdGVyIl1baWRdID0gZGF0YTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGRhdGEgPSBTRVJWRVJbInNldHRpbmdzIl1bImZpbHRlciJdW2lkXTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJ4bWx0diI6DQogICAgICAgICAgICBkYXRhID0gU0VSVkVSWyJzZXR0aW5ncyJdWyJmaWxlcyJdW2RhdGFUeXBlXVtpZF07DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSAidXNlcnMiOg0KICAgICAgICAgICAgZGF0YSA9IFNFUlZFUlsidXNlcnMiXVtpZF1bImRhdGEiXTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJtYXBwaW5nIjoNCiAgICAgICAgICAgIGRhdGEgPSBTRVJWRVJbInhlcGciXVsiZXBnTWFwcGluZyJdW2lkXTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJtM3VHcm91cHMiOg0KICAgICAgICAgICAgZGF0YSA9IFNFUlZFUlsiZGF0YSJdWyJwbGF5bGlzdCJdWyJtM3UiXVsiZ3JvdXBzIl07DQogICAgICAgICAgICBicmVhazsNCiAgICB9DQogICAgcmV0dXJuIGRhdGE7DQp9DQpmdW5jdGlvbiBnZXRPYmpLZXlzKG9iaikgew0KICAgIHZhciBrZXlzID0gbmV3IEFycmF5KCk7DQogICAgZm9yICh2YXIgaSBpbiBvYmopIHsNCiAgICAgICAgaWYgKG9iai5oYXNPd25Qcm9wZXJ0eShpKSkgew0KICAgICAgICAgICAga2V5cy5wdXNoKGkpOw0KICAgICAgICB9DQogICAgfQ0KICAgIHJldHVybiBrZXlzOw0KfQ0KZnVuY3Rpb24gZ2V0QWxsU2VsZWN0ZWRDaGFubmVscygpIHsNCiAgICB2YXIgY2hhbm5lbHMgPSBuZXcgQXJyYXkoKTsNCiAgICBpZiAoQlVMS19FRElUID09IGZhbHNlKSB7DQogICAgICAgIHJldHVybiBjaGFubmVsczsNCiAgICB9DQogICAgdmFyIHRycyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb250ZW50X3RhYmxlIikuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlRSIik7DQogICAgZm9yICh2YXIgaSA9IDE7IGkgPCB0cnMubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgaWYgKHRyc1tpXS5zdHlsZS5kaXNwbGF5ICE9ICJub25lIikgew0KICAgICAgICAgICAgaWYgKHRyc1tpXS5maXJzdENoaWxkLmZpcnN0Q2hpbGQuY2hlY2tlZCA9PSB0cnVlKSB7DQogICAgICAgICAgICAgICAgY2hhbm5lbHMucHVzaCh0cnNbaV0uaWQpOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQogICAgfQ0KICAgIHJldHVybiBjaGFubmVsczsNCn0NCmZ1bmN0aW9uIHNlbGVjdEFsbENoYW5uZWxzKCkgew0KICAgIHZhciBidWxrID0gZmFsc2U7DQogICAgdmFyIHRycyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb250ZW50X3RhYmxlIikuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlRSIik7DQogICAgaWYgKHRyc1swXS5maXJzdENoaWxkLmZpcnN0Q2hpbGQuY2hlY2tlZCA9PSB0cnVlKSB7DQogICAgICAgIGJ1bGsgPSB0cnVlOw0KICAgIH0NCiAgICBmb3IgKHZhciBpID0gMTsgaSA8IHRycy5sZW5ndGg7IGkrKykgew0KICAgICAgICBpZiAodHJzW2ldLnN0eWxlLmRpc3BsYXkgIT0gIm5vbmUiKSB7DQogICAgICAgICAgICBzd2l0Y2ggKGJ1bGspIHsNCiAgICAgICAgICAgICAgICBjYXNlIHRydWU6DQogICAgICAgICAgICAgICAgICAgIHRyc1tpXS5maXJzdENoaWxkLmZpcnN0Q2hpbGQuY2hlY2tlZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgZmFsc2U6DQogICAgICAgICAgICAgICAgICAgIHRyc1tpXS5maXJzdENoaWxkLmZpcnN0Q2hpbGQuY2hlY2tlZCA9IGZhbHNlOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KICAgIH0NCiAgICByZXR1cm47DQp9DQpmdW5jdGlvbiBidWxrRWRpdCgpIHsNCiAgICBCVUxLX0VESVQgPSAhQlVMS19FRElUOw0KICAgIHZhciBjbGFzc05hbWU7DQogICAgdmFyIHJvd3MgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCJidWxrIik7DQogICAgc3dpdGNoIChCVUxLX0VESVQpIHsNCiAgICAgICAgY2FzZSB0cnVlOg0KICAgICAgICAgICAgY2xhc3NOYW1lID0gImJ1bGsgc2hvd0J1bGsiOw0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGNhc2UgZmFsc2U6DQogICAgICAgICAgICBjbGFzc05hbWUgPSAiYnVsayBoaWRlQnVsayI7DQogICAgICAgICAgICBicmVhazsNCiAgICB9DQogICAgZm9yICh2YXIgaSA9IDA7IGkgPCByb3dzLmxlbmd0aDsgaSsrKSB7DQogICAgICAgIHJvd3NbaV0uY2xhc3NOYW1lID0gY2xhc3NOYW1lOw0KICAgICAgICByb3dzW2ldLmNoZWNrZWQgPSBmYWxzZTsNCiAgICB9DQogICAgcmV0dXJuOw0KfQ0KZnVuY3Rpb24gc29ydFRhYmxlKGNvbHVtbikgew0KICAgIC8vY29uc29sZS5sb2coY29sdW1tKTsNCiAgICBpZiAoY29sdW1uID09IENPTFVNTl9UT19TT1JUKSB7DQogICAgICAgIHJldHVybjsNCiAgICB9DQogICAgdmFyIHRhYmxlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnRlbnRfdGFibGUiKTsNCiAgICB2YXIgdGFibGVIZWFkID0gdGFibGUuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlRSIilbMF07DQogICAgdmFyIHRhYmxlSXRlbXMgPSB0YWJsZUhlYWQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlREIik7DQogICAgdmFyIHNvcnRPYmogPSBuZXcgT2JqZWN0KCk7DQogICAgdmFyIHgsIHhWYWx1ZTsNCiAgICB2YXIgdGFibGVIZWFkZXI7DQogICAgdmFyIHNvcnRCeVN0cmluZyA9IGZhbHNlOw0KICAgIGlmIChjb2x1bW4gPiAwICYmIENPTFVNTl9UT19TT1JUID4gMCkgew0KICAgICAgICB0YWJsZUl0ZW1zW0NPTFVNTl9UT19TT1JUXS5jbGFzc05hbWUgPSAicG9pbnRlciI7DQogICAgICAgIHRhYmxlSXRlbXNbY29sdW1uXS5jbGFzc05hbWUgPSAic29ydFRoaXMiOw0KICAgIH0NCiAgICBDT0xVTU5fVE9fU09SVCA9IGNvbHVtbjsNCiAgICB2YXIgcm93cyA9IHRhYmxlLnJvd3M7DQogICAgaWYgKHJvd3NbMV0gIT0gdW5kZWZpbmVkKSB7DQogICAgICAgIHRhYmxlSGVhZGVyID0gcm93c1swXTsNCiAgICAgICAgeCA9IHJvd3NbMV0uZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlREIilbY29sdW1uXTsNCiAgICAgICAgZm9yIChpID0gMTsgaSA8IHJvd3MubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgICAgIHggPSByb3dzW2ldLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJURCIpW2NvbHVtbl07DQogICAgICAgICAgICBzd2l0Y2ggKHguY2hpbGROb2Rlc1swXS50YWdOYW1lLnRvTG93ZXJDYXNlKCkpIHsNCiAgICAgICAgICAgICAgICBjYXNlICJpbnB1dCI6DQogICAgICAgICAgICAgICAgICAgIHhWYWx1ZSA9IHguZ2V0RWxlbWVudHNCeVRhZ05hbWUoIklOUFVUIilbMF0udmFsdWUudG9Mb3dlckNhc2UoKTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAicCI6DQogICAgICAgICAgICAgICAgICAgIHhWYWx1ZSA9IHguZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlAiKVswXS5pbm5lclRleHQudG9Mb3dlckNhc2UoKTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgZGVmYXVsdDogY29uc29sZS5sb2coeC5jaGlsZE5vZGVzWzBdLnRhZ05hbWUpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgaWYgKHhWYWx1ZSA9PSAiIiB8fCB4VmFsdWUgPT0gTmFOKSB7DQogICAgICAgICAgICAgICAgeFZhbHVlID0gaTsNCiAgICAgICAgICAgICAgICBzb3J0T2JqW2ldID0gcm93c1tpXTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgICAgIHN3aXRjaCAoaXNOYU4oeFZhbHVlKSB8fCB0eXBlb2YgeFZhbHVlID09ICJzdHJpbmciKSB7DQogICAgICAgICAgICAgICAgICAgIGNhc2UgZmFsc2U6DQogICAgICAgICAgICAgICAgICAgICAgICB4VmFsdWUgPSBwYXJzZUZsb2F0KHhWYWx1ZSk7DQogICAgICAgICAgICAgICAgICAgICAgICBzb3J0T2JqW3hWYWx1ZV0gPSByb3dzW2ldOw0KICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgICAgIGNhc2UgdHJ1ZToNCiAgICAgICAgICAgICAgICAgICAgICAgIHNvcnRCeVN0cmluZyA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBzb3J0T2JqW3hWYWx1ZS50b0xvd2VyQ2FzZSgpICsgaV0gPSByb3dzW2ldOw0KICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQogICAgICAgIHdoaWxlICh0YWJsZS5maXJzdENoaWxkKSB7DQogICAgICAgICAgICB0YWJsZS5yZW1vdmVDaGlsZCh0YWJsZS5maXJzdENoaWxkKTsNCiAgICAgICAgfQ0KICAgICAgICB2YXIgc29ydFZhbHVlcyA9IGdldE9iaktleXMoc29ydE9iaik7DQogICAgICAgIGlmIChzb3J0QnlTdHJpbmcgPT0gdHJ1ZSkgew0KICAgICAgICAgICAgc29ydFZhbHVlcy5zb3J0KCk7DQogICAgICAgICAgICBjb25zb2xlLmxvZyhzb3J0VmFsdWVzKTsNCiAgICAgICAgfQ0KICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgIGZ1bmN0aW9uIHNvcnRGbG9hdChhLCBiKSB7DQogICAgICAgICAgICAgICAgcmV0dXJuIGEgLSBiOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgc29ydFZhbHVlcy5zb3J0KHNvcnRGbG9hdCk7DQogICAgICAgIH0NCiAgICAgICAgdGFibGUuYXBwZW5kQ2hpbGQodGFibGVIZWFkZXIpOw0KICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHNvcnRWYWx1ZXMubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgICAgIHRhYmxlLmFwcGVuZENoaWxkKHNvcnRPYmpbc29ydFZhbHVlc1tpXV0pOw0KICAgICAgICB9DQogICAgfQ0KICAgIHJldHVybjsNCn0NCmZ1bmN0aW9uIGNyZWF0ZVNlYXJjaE9iaigpIHsNCiAgICBTRUFSQ0hfTUFQUElORyA9IG5ldyBPYmplY3QoKTsNCiAgICB2YXIgZGF0YSA9IFNFUlZFUlsieGVwZyJdWyJlcGdNYXBwaW5nIl07DQogICAgdmFyIGNoYW5uZWxzID0gZ2V0T2JqS2V5cyhkYXRhKTsNCiAgICB2YXIgY2hhbm5lbEtleXMgPSBbIngtYWN0aXZlIiwgIngtY2hhbm5lbElEIiwgIngtbmFtZSIsICJfZmlsZS5tM3UubmFtZSIsICJ4LWdyb3VwLXRpdGxlIiwgIngteG1sdHYtZmlsZSJdOw0KICAgIGNoYW5uZWxzLmZvckVhY2goaWQgPT4gew0KICAgICAgICBjaGFubmVsS2V5cy5mb3JFYWNoKGtleSA9PiB7DQogICAgICAgICAgICBpZiAoa2V5ID09ICJ4LWFjdGl2ZSIpIHsNCiAgICAgICAgICAgICAgICBzd2l0Y2ggKGRhdGFbaWRdW2tleV0pIHsNCiAgICAgICAgICAgICAgICAgICAgY2FzZSB0cnVlOg0KICAgICAgICAgICAgICAgICAgICAgICAgU0VBUkNIX01BUFBJTkdbaWRdID0gIm9ubGluZSAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgICAgIGNhc2UgZmFsc2U6DQogICAgICAgICAgICAgICAgICAgICAgICBTRUFSQ0hfTUFQUElOR1tpZF0gPSAib2ZmbGluZSAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgZWxzZSB7DQogICAgICAgICAgICAgICAgaWYgKGtleSA9PSAieC14bWx0di1maWxlIikgew0KICAgICAgICAgICAgICAgICAgICB2YXIgeG1sdHZGaWxlID0gZ2V0VmFsdWVGcm9tUHJvdmlkZXJGaWxlKGRhdGFbaWRdW2tleV0sICJ4bWx0diIsICJuYW1lIik7DQogICAgICAgICAgICAgICAgICAgIGlmICh4bWx0dkZpbGUgIT0gdW5kZWZpbmVkKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBTRUFSQ0hfTUFQUElOR1tpZF0gPSBTRUFSQ0hfTUFQUElOR1tpZF0gKyB4bWx0dkZpbGUgKyAiICI7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgZWxzZSB7DQogICAgICAgICAgICAgICAgICAgIFNFQVJDSF9NQVBQSU5HW2lkXSA9IFNFQVJDSF9NQVBQSU5HW2lkXSArIGRhdGFbaWRdW2tleV0gKyAiICI7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfQ0KICAgICAgICB9KTsNCiAgICB9KTsNCiAgICByZXR1cm47DQp9DQpmdW5jdGlvbiBzZWFyY2hJbk1hcHBpbmcoKSB7DQogICAgdmFyIHNlYXJjaFZhbHVlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNlYXJjaE1hcHBpbmciKS52YWx1ZTsNCiAgICB2YXIgdHJzID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnRlbnRfdGFibGUiKS5nZXRFbGVtZW50c0J5VGFnTmFtZSgiVFIiKTsNCiAgICBmb3IgKHZhciBpID0gMTsgaSA8IHRycy5sZW5ndGg7ICsraSkgew0KICAgICAgICB2YXIgaWQgPSB0cnNbaV0uZ2V0QXR0cmlidXRlKCJpZCIpOw0KICAgICAgICB2YXIgZWxlbWVudCA9IFNFQVJDSF9NQVBQSU5HW2lkXTsNCiAgICAgICAgc3dpdGNoIChlbGVtZW50LnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoc2VhcmNoVmFsdWUudG9Mb3dlckNhc2UoKSkpIHsNCiAgICAgICAgICAgIGNhc2UgdHJ1ZToNCiAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkuc3R5bGUuZGlzcGxheSA9ICIiOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSBmYWxzZToNCiAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkuc3R5bGUuZGlzcGxheSA9ICJub25lIjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgfQ0KICAgIH0NCiAgICByZXR1cm47DQp9DQpmdW5jdGlvbiBjYWxjdWxhdGVXcmFwcGVySGVpZ2h0KCkgew0KICAgIGlmIChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYm94LXdyYXBwZXIiKSkgew0KICAgICAgICB2YXIgZWxtID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImJveC13cmFwcGVyIik7DQogICAgICAgIHZhciBkaXZzID0gbmV3IEFycmF5KCJteVN0cmVhbXNCb3giLCAiY2xpZW50SW5mbyIsICJjb250ZW50Iik7DQogICAgICAgIHZhciBlbGVtZW50c0hlaWdodCA9IDAgLSBlbG0ub2Zmc2V0SGVpZ2h0Ow0KICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGRpdnMubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgICAgIGVsZW1lbnRzSGVpZ2h0ID0gZWxlbWVudHNIZWlnaHQgKyBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChkaXZzW2ldKS5vZmZzZXRIZWlnaHQ7DQogICAgICAgIH0NCiAgICAgICAgZWxtLnN0eWxlLmhlaWdodCA9IHdpbmRvdy5pbm5lckhlaWdodCAtIGVsZW1lbnRzSGVpZ2h0ICsgInB4IjsNCiAgICB9DQogICAgcmV0dXJuOw0KfQ0KZnVuY3Rpb24gY2hhbmdlQ2hhbm5lbE51bWJlcihlbGVtZW50KSB7DQogICAgdmFyIGRiSUQgPSBlbGVtZW50LnBhcmVudE5vZGUucGFyZW50Tm9kZS5pZDsNCiAgICB2YXIgbmV3TnVtYmVyID0gcGFyc2VGbG9hdChlbGVtZW50LnZhbHVlKTsNCiAgICB2YXIgY2hhbm5lbE51bWJlcnMgPSBbXTsNCiAgICB2YXIgZGF0YSA9IFNFUlZFUlsieGVwZyJdWyJlcGdNYXBwaW5nIl07DQogICAgdmFyIGNoYW5uZWxzID0gZ2V0T2JqS2V5cyhkYXRhKTsNCiAgICBpZiAoaXNOYU4obmV3TnVtYmVyKSkgew0KICAgICAgICBhbGVydCgie3suYWxlcnQuaW52YWxpZENoYW5uZWxOdW1iZXJ9fSIpOw0KICAgICAgICByZXR1cm47DQogICAgfQ0KICAgIGNoYW5uZWxzLmZvckVhY2goaWQgPT4gew0KICAgICAgICB2YXIgY2hhbm5lbE51bWJlciA9IHBhcnNlRmxvYXQoZGF0YVtpZF1bIngtY2hhbm5lbElEIl0pOw0KICAgICAgICBjaGFubmVsTnVtYmVycy5wdXNoKGNoYW5uZWxOdW1iZXIpOw0KICAgIH0pOw0KICAgIGZvciAodmFyIGkgPSAwOyBpIDwgY2hhbm5lbE51bWJlcnMubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgaWYgKGNoYW5uZWxOdW1iZXJzLmluZGV4T2YobmV3TnVtYmVyKSA9PSAtMSkgew0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIH0NCiAgICAgICAgaWYgKE1hdGguZmxvb3IobmV3TnVtYmVyKSA9PSBuZXdOdW1iZXIpIHsNCiAgICAgICAgICAgIG5ld051bWJlciA9IG5ld051bWJlciArIDE7DQogICAgICAgIH0NCiAgICAgICAgZWxzZSB7DQogICAgICAgICAgICBuZXdOdW1iZXIgPSBuZXdOdW1iZXIgKyAwLjE7DQogICAgICAgICAgICBuZXdOdW1iZXIudG9GaXhlZCgxKTsNCiAgICAgICAgICAgIG5ld051bWJlciA9IE1hdGgucm91bmQobmV3TnVtYmVyICogMTApIC8gMTA7DQogICAgICAgIH0NCiAgICB9DQogICAgZGF0YVtkYklEXVsieC1jaGFubmVsSUQiXSA9IG5ld051bWJlci50b1N0cmluZygpOw0KICAgIGVsZW1lbnQudmFsdWUgPSBuZXdOdW1iZXI7DQogICAgY29uc29sZS5sb2coZGF0YVtkYklEXVsieC1jaGFubmVsSUQiXSk7DQogICAgaWYgKENPTFVNTl9UT19TT1JUID09IDEpIHsNCiAgICAgICAgQ09MVU1OX1RPX1NPUlQgPSAtMTsNCiAgICAgICAgc29ydFRhYmxlKDEpOw0KICAgIH0NCiAgICByZXR1cm47DQp9DQpmdW5jdGlvbiBiYWNrdXAoKSB7DQogICAgdmFyIGRhdGEgPSBuZXcgT2JqZWN0KCk7DQogICAgY29uc29sZS5sb2coIkJhY2t1cCBkYXRhIik7DQogICAgdmFyIGNtZCA9ICJ4dGV2ZUJhY2t1cCI7DQogICAgY29uc29sZS5sb2coIlNFTkQgVE8gU0VSVkVSIik7DQogICAgY29uc29sZS5sb2coZGF0YSk7DQogICAgdmFyIHNlcnZlciA9IG5ldyBTZXJ2ZXIoY21kKTsNCiAgICBzZXJ2ZXIucmVxdWVzdChkYXRhKTsNCiAgICByZXR1cm47DQp9DQpmdW5jdGlvbiB0b2dnbGVDaGFubmVsU3RhdHVzKGlkKSB7DQogICAgdmFyIGVsZW1lbnQ7DQogICAgdmFyIHN0YXR1czsNCiAgICBpZiAoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImFjdGl2ZSIpKSB7DQogICAgICAgIHZhciBjaGVja2JveCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJhY3RpdmUiKTsNCiAgICAgICAgc3RhdHVzID0gKGNoZWNrYm94KS5jaGVja2VkOw0KICAgIH0NCiAgICB2YXIgaWRzID0gZ2V0QWxsU2VsZWN0ZWRDaGFubmVscygpOw0KICAgIGlmIChpZHMubGVuZ3RoID09IDApIHsNCiAgICAgICAgaWRzLnB1c2goaWQpOw0KICAgIH0NCiAgICBpZHMuZm9yRWFjaChpZCA9PiB7DQogICAgICAgIHZhciBjaGFubmVsID0gU0VSVkVSWyJ4ZXBnIl1bImVwZ01hcHBpbmciXVtpZF07DQogICAgICAgIGNoYW5uZWxbIngtYWN0aXZlIl0gPSBzdGF0dXM7DQogICAgICAgIHN3aXRjaCAoY2hhbm5lbFsieC1hY3RpdmUiXSkgew0KICAgICAgICAgICAgY2FzZSB0cnVlOg0KICAgICAgICAgICAgICAgIGlmIChjaGFubmVsWyJ4LXhtbHR2LWZpbGUiXSA9PSAiLSIgfHwgY2hhbm5lbFsieC1tYXBwaW5nIl0gPT0gIi0iKSB7DQogICAgICAgICAgICAgICAgICAgIGlmIChCVUxLX0VESVQgPT0gZmFsc2UpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGFsZXJ0KGNoYW5uZWxbIngtbmFtZSJdICsgIjogTWlzc2luZyBYTUxUViBmaWxlIC8gY2hhbm5lbCIpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2hlY2tib3guY2hlY2tlZCA9IGZhbHNlOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIGNoYW5uZWxbIngtYWN0aXZlIl0gPSBmYWxzZTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlIGZhbHNlOg0KICAgICAgICAgICAgICAgIC8vIGNvZGUuLi4NCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgfQ0KICAgICAgICBpZiAoY2hhbm5lbFsieC1hY3RpdmUiXSA9PSBmYWxzZSkgew0KICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpLmNsYXNzTmFtZSA9ICJub3RBY3RpdmVFUEciOw0KICAgICAgICB9DQogICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpLmNsYXNzTmFtZSA9ICJhY3RpdmVFUEciOw0KICAgICAgICB9DQogICAgfSk7DQp9DQpmdW5jdGlvbiByZXN0b3JlKCkgew0KICAgIGlmIChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndXBsb2FkJykpIHsNCiAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3VwbG9hZCcpLnJlbW92ZSgpOw0KICAgIH0NCiAgICB2YXIgcmVzdG9yZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIklOUFVUIik7DQogICAgcmVzdG9yZS5zZXRBdHRyaWJ1dGUoInR5cGUiLCAiZmlsZSIpOw0KICAgIHJlc3RvcmUuc2V0QXR0cmlidXRlKCJjbGFzcyIsICJub3RWaXNpYmxlIik7DQogICAgcmVzdG9yZS5zZXRBdHRyaWJ1dGUoIm5hbWUiLCAiIik7DQogICAgcmVzdG9yZS5pZCA9ICJ1cGxvYWQiOw0KICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQocmVzdG9yZSk7DQogICAgcmVzdG9yZS5jbGljaygpOw0KICAgIHJlc3RvcmUub25jaGFuZ2UgPSBmdW5jdGlvbiAoKSB7DQogICAgICAgIHZhciBmaWxlbmFtZSA9IHJlc3RvcmUuZmlsZXNbMF0ubmFtZTsNCiAgICAgICAgdmFyIGNoZWNrID0gY29uZmlybSgiRmlsZTogIiArIGZpbGVuYW1lICsgIlxue3suY29uZmlybS5yZXN0b3JlfX0iKTsNCiAgICAgICAgaWYgKGNoZWNrID09IHRydWUpIHsNCiAgICAgICAgICAgIHZhciByZWFkZXIgPSBuZXcgRmlsZVJlYWRlcigpOw0KICAgICAgICAgICAgdmFyIGZpbGUgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCdpbnB1dFt0eXBlPWZpbGVdJykuZmlsZXNbMF07DQogICAgICAgICAgICBpZiAoZmlsZSkgew0KICAgICAgICAgICAgICAgIHJlYWRlci5yZWFkQXNEYXRhVVJMKGZpbGUpOw0KICAgICAgICAgICAgICAgIHJlYWRlci5vbmxvYWQgPSBmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKHJlYWRlci5yZXN1bHQpOw0KICAgICAgICAgICAgICAgICAgICB2YXIgZGF0YSA9IG5ldyBPYmplY3QoKTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGNtZCA9ICJ4dGV2ZVJlc3RvcmUiOw0KICAgICAgICAgICAgICAgICAgICBkYXRhWyJiYXNlNjQiXSA9IHJlYWRlci5yZXN1bHQ7DQogICAgICAgICAgICAgICAgICAgIHZhciBzZXJ2ZXIgPSBuZXcgU2VydmVyKGNtZCk7DQogICAgICAgICAgICAgICAgICAgIHNlcnZlci5yZXF1ZXN0KGRhdGEpOw0KICAgICAgICAgICAgICAgIH07DQogICAgICAgICAgICB9DQogICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICBhbGVydCgiRmlsZSBjb3VsZCBub3QgYmUgbG9hZGVkIik7DQogICAgICAgICAgICB9DQogICAgICAgICAgICByZXN0b3JlLnJlbW92ZSgpOw0KICAgICAgICAgICAgcmV0dXJuOw0KICAgICAgICB9DQogICAgfTsNCiAgICByZXR1cm47DQp9DQpmdW5jdGlvbiB1cGxvYWRMb2dvKCkgew0KICAgIGlmIChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndXBsb2FkJykpIHsNCiAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3VwbG9hZCcpLnJlbW92ZSgpOw0KICAgIH0NCiAgICB2YXIgdXBsb2FkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiSU5QVVQiKTsNCiAgICB1cGxvYWQuc2V0QXR0cmlidXRlKCJ0eXBlIiwgImZpbGUiKTsNCiAgICB1cGxvYWQuc2V0QXR0cmlidXRlKCJjbGFzcyIsICJub3RWaXNpYmxlIik7DQogICAgdXBsb2FkLnNldEF0dHJpYnV0ZSgibmFtZSIsICIiKTsNCiAgICB1cGxvYWQuaWQgPSAidXBsb2FkIjsNCiAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHVwbG9hZCk7DQogICAgdXBsb2FkLmNsaWNrKCk7DQogICAgdXBsb2FkLm9uYmx1ciA9IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgYWxlcnQoKTsNCiAgICB9Ow0KICAgIHVwbG9hZC5vbmNoYW5nZSA9IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgdmFyIGZpbGVuYW1lID0gdXBsb2FkLmZpbGVzWzBdLm5hbWU7DQogICAgICAgIHZhciByZWFkZXIgPSBuZXcgRmlsZVJlYWRlcigpOw0KICAgICAgICB2YXIgZmlsZSA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ2lucHV0W3R5cGU9ZmlsZV0nKS5maWxlc1swXTsNCiAgICAgICAgaWYgKGZpbGUpIHsNCiAgICAgICAgICAgIHJlYWRlci5yZWFkQXNEYXRhVVJMKGZpbGUpOw0KICAgICAgICAgICAgcmVhZGVyLm9ubG9hZCA9IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhyZWFkZXIucmVzdWx0KTsNCiAgICAgICAgICAgICAgICB2YXIgZGF0YSA9IG5ldyBPYmplY3QoKTsNCiAgICAgICAgICAgICAgICB2YXIgY21kID0gInVwbG9hZExvZ28iOw0KICAgICAgICAgICAgICAgIGRhdGFbImJhc2U2NCJdID0gcmVhZGVyLnJlc3VsdDsNCiAgICAgICAgICAgICAgICBkYXRhWyJmaWxlbmFtZSJdID0gZmlsZS5uYW1lOw0KICAgICAgICAgICAgICAgIHZhciBzZXJ2ZXIgPSBuZXcgU2VydmVyKGNtZCk7DQogICAgICAgICAgICAgICAgc2VydmVyLnJlcXVlc3QoZGF0YSk7DQogICAgICAgICAgICAgICAgdmFyIHVwZGF0ZUxvZ28gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndXBkYXRlLWljb24nKTsNCiAgICAgICAgICAgICAgICB1cGRhdGVMb2dvLmNoZWNrZWQgPSBmYWxzZTsNCiAgICAgICAgICAgICAgICB1cGRhdGVMb2dvLmNsYXNzTmFtZSA9ICJjaGFuZ2VkIjsNCiAgICAgICAgICAgIH07DQogICAgICAgIH0NCiAgICAgICAgZWxzZSB7DQogICAgICAgICAgICBhbGVydCgiRmlsZSBjb3VsZCBub3QgYmUgbG9hZGVkIik7DQogICAgICAgIH0NCiAgICAgICAgdXBsb2FkLnJlbW92ZSgpOw0KICAgICAgICByZXR1cm47DQogICAgfTsNCn0NCmZ1bmN0aW9uIGNoZWNrVW5kbyhrZXkpIHsNCiAgICBzd2l0Y2ggKGtleSkgew0KICAgICAgICBjYXNlICJlcGdNYXBwaW5nIjoNCiAgICAgICAgICAgIGlmIChVTkRPLmhhc093blByb3BlcnR5KGtleSkpIHsNCiAgICAgICAgICAgICAgICBTRVJWRVJbInhlcGciXVtrZXldID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeShVTkRPW2tleV0pKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgICAgIFVORE9ba2V5XSA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkoU0VSVkVSWyJ4ZXBnIl1ba2V5XSkpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICBicmVhazsNCiAgICB9DQogICAgcmV0dXJuOw0KfQ0KZnVuY3Rpb24gc29ydFNlbGVjdChlbGVtKSB7DQogICAgdmFyIHRtcEFyeSA9IFtdOw0KICAgIHZhciBzZWxlY3RlZFZhbHVlID0gZWxlbVtlbGVtLnNlbGVjdGVkSW5kZXhdLnZhbHVlOw0KICAgIGZvciAodmFyIGkgPSAwOyBpIDwgZWxlbS5vcHRpb25zLmxlbmd0aDsgaSsrKQ0KICAgICAgICB0bXBBcnkucHVzaChlbGVtLm9wdGlvbnNbaV0pOw0KICAgIHRtcEFyeS5zb3J0KGZ1bmN0aW9uIChhLCBiKSB7IHJldHVybiAoYS50ZXh0IDwgYi50ZXh0KSA/IC0xIDogMTsgfSk7DQogICAgd2hpbGUgKGVsZW0ub3B0aW9ucy5sZW5ndGggPiAwKQ0KICAgICAgICBlbGVtLm9wdGlvbnNbMF0gPSBudWxsOw0KICAgIHZhciBuZXdTZWxlY3RlZEluZGV4ID0gMDsNCiAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRtcEFyeS5sZW5ndGg7IGkrKykgew0KICAgICAgICBlbGVtLm9wdGlvbnNbaV0gPSB0bXBBcnlbaV07DQogICAgICAgIGlmIChlbGVtLm9wdGlvbnNbaV0udmFsdWUgPT0gc2VsZWN0ZWRWYWx1ZSkNCiAgICAgICAgICAgIG5ld1NlbGVjdGVkSW5kZXggPSBpOw0KICAgIH0NCiAgICBlbGVtLnNlbGVjdGVkSW5kZXggPSBuZXdTZWxlY3RlZEluZGV4OyAvLyBTZXQgbmV3IHNlbGVjdGVkIGluZGV4IGFmdGVyIHNvcnRpbmcNCiAgICByZXR1cm47DQp9DQpmdW5jdGlvbiB1cGRhdGVMb2coKSB7DQogICAgY29uc29sZS5sb2coIlRPS0VOIik7DQogICAgdmFyIHNlcnZlciA9IG5ldyBTZXJ2ZXIoInVwZGF0ZUxvZyIpOw0KICAgIHNlcnZlci5yZXF1ZXN0KG5ldyBPYmplY3QoKSk7DQp9DQo=" webUI["html/js/network_ts.js"] = "Y2xhc3MgU2VydmVyIHsNCiAgICBjb25zdHJ1Y3RvcihjbWQpIHsNCiAgICAgICAgdGhpcy5jbWQgPSBjbWQ7DQogICAgfQ0KICAgIHJlcXVlc3QoZGF0YSkgew0KICAgICAgICBpZiAoU0VSVkVSX0NPTk5FQ1RJT04gPT0gdHJ1ZSkgew0KICAgICAgICAgICAgcmV0dXJuOw0KICAgICAgICB9DQogICAgICAgIFNFUlZFUl9DT05ORUNUSU9OID0gdHJ1ZTsNCiAgICAgICAgY29uc29sZS5sb2coZGF0YSk7DQogICAgICAgIGlmICh0aGlzLmNtZCAhPSAidXBkYXRlTG9nIikgew0KICAgICAgICAgICAgc2hvd0VsZW1lbnQoImxvYWRpbmciLCB0cnVlKTsNCiAgICAgICAgICAgIFVORE8gPSBuZXcgT2JqZWN0KCk7DQogICAgICAgIH0NCiAgICAgICAgc3dpdGNoICh3aW5kb3cubG9jYXRpb24ucHJvdG9jb2wpIHsNCiAgICAgICAgICAgIGNhc2UgImh0dHA6IjoNCiAgICAgICAgICAgICAgICB0aGlzLnByb3RvY29sID0gIndzOi8vIjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImh0dHBzOiI6DQogICAgICAgICAgICAgICAgdGhpcy5wcm90b2NvbCA9ICJ3c3M6Ly8iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICB9DQogICAgICAgIHZhciB1cmwgPSB0aGlzLnByb3RvY29sICsgd2luZG93LmxvY2F0aW9uLmhvc3RuYW1lICsgIjoiICsgd2luZG93LmxvY2F0aW9uLnBvcnQgKyAiL2RhdGEvIiArICI/VG9rZW49IiArIGdldENvb2tpZSgiVG9rZW4iKTsNCiAgICAgICAgZGF0YVsiY21kIl0gPSB0aGlzLmNtZDsNCiAgICAgICAgdmFyIHdzID0gbmV3IFdlYlNvY2tldCh1cmwpOw0KICAgICAgICB3cy5vbm9wZW4gPSBmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICBXU19BVkFJTEFCTEUgPSB0cnVlOw0KICAgICAgICAgICAgY29uc29sZS5sb2coIlJFUVVFU1QgKEpTKToiKTsNCiAgICAgICAgICAgIGNvbnNvbGUubG9nKGRhdGEpOw0KICAgICAgICAgICAgY29uc29sZS5sb2coIlJFUVVFU1Q6IChKU09OKSIpOw0KICAgICAgICAgICAgY29uc29sZS5sb2coSlNPTi5zdHJpbmdpZnkoZGF0YSkpOw0KICAgICAgICAgICAgdGhpcy5zZW5kKEpTT04uc3RyaW5naWZ5KGRhdGEpKTsNCiAgICAgICAgfTsNCiAgICAgICAgd3Mub25lcnJvciA9IGZ1bmN0aW9uIChlKSB7DQogICAgICAgICAgICBjb25zb2xlLmxvZygiTm8gd2Vic29ja2V0IGNvbm5lY3Rpb24gdG8geFRlVmUgY291bGQgYmUgZXN0YWJsaXNoZWQuIENoZWNrIHlvdXIgbmV0d29yayBjb25maWd1cmF0aW9uLiIpOw0KICAgICAgICAgICAgU0VSVkVSX0NPTk5FQ1RJT04gPSBmYWxzZTsNCiAgICAgICAgICAgIGlmIChXU19BVkFJTEFCTEUgPT0gZmFsc2UpIHsNCiAgICAgICAgICAgICAgICBhbGVydCgiTm8gd2Vic29ja2V0IGNvbm5lY3Rpb24gdG8geFRlVmUgY291bGQgYmUgZXN0YWJsaXNoZWQuIENoZWNrIHlvdXIgbmV0d29yayBjb25maWd1cmF0aW9uLiIpOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9Ow0KICAgICAgICB3cy5vbm1lc3NhZ2UgPSBmdW5jdGlvbiAoZSkgew0KICAgICAgICAgICAgU0VSVkVSX0NPTk5FQ1RJT04gPSBmYWxzZTsNCiAgICAgICAgICAgIHNob3dFbGVtZW50KCJsb2FkaW5nIiwgZmFsc2UpOw0KICAgICAgICAgICAgY29uc29sZS5sb2coIlJFU1BPTlNFOiIpOw0KICAgICAgICAgICAgdmFyIHJlc3BvbnNlID0gSlNPTi5wYXJzZShlLmRhdGEpOw0KICAgICAgICAgICAgY29uc29sZS5sb2cocmVzcG9uc2UpOw0KICAgICAgICAgICAgaWYgKHJlc3BvbnNlLmhhc093blByb3BlcnR5KCJ0b2tlbiIpKSB7DQogICAgICAgICAgICAgICAgZG9jdW1lbnQuY29va2llID0gIlRva2VuPSIgKyByZXNwb25zZVsidG9rZW4iXTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGlmIChyZXNwb25zZVsic3RhdHVzIl0gPT0gZmFsc2UpIHsNCiAgICAgICAgICAgICAgICBhbGVydChyZXNwb25zZVsiZXJyIl0pOw0KICAgICAgICAgICAgICAgIGlmIChyZXNwb25zZS5oYXNPd25Qcm9wZXJ0eSgicmVsb2FkIikpIHsNCiAgICAgICAgICAgICAgICAgICAgbG9jYXRpb24ucmVsb2FkKCk7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIHJldHVybjsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGlmIChyZXNwb25zZS5oYXNPd25Qcm9wZXJ0eSgibG9nb1VSTCIpKSB7DQogICAgICAgICAgICAgICAgdmFyIGRpdiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjaGFubmVsLWljb24iKTsNCiAgICAgICAgICAgICAgICBkaXYudmFsdWUgPSByZXNwb25zZVsibG9nb1VSTCJdOw0KICAgICAgICAgICAgICAgIGRpdi5jbGFzc05hbWUgPSAiY2hhbmdlZCI7DQogICAgICAgICAgICAgICAgcmV0dXJuOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgc3dpdGNoIChkYXRhWyJjbWQiXSkgew0KICAgICAgICAgICAgICAgIGNhc2UgInVwZGF0ZUxvZyI6DQogICAgICAgICAgICAgICAgICAgIFNFUlZFUlsibG9nIl0gPSByZXNwb25zZVsibG9nIl07DQogICAgICAgICAgICAgICAgICAgIGlmIChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29udGVudF9sb2ciKSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgc2hvd0xvZ3MoZmFsc2UpOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIHJldHVybjsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgICAgICAgICAgU0VSVkVSID0gbmV3IE9iamVjdCgpOw0KICAgICAgICAgICAgICAgICAgICBTRVJWRVIgPSByZXNwb25zZTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBpZiAocmVzcG9uc2UuaGFzT3duUHJvcGVydHkoIm9wZW5NZW51IikpIHsNCiAgICAgICAgICAgICAgICB2YXIgbWVudSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHJlc3BvbnNlWyJvcGVuTWVudSJdKTsNCiAgICAgICAgICAgICAgICBtZW51LmNsaWNrKCk7DQogICAgICAgICAgICAgICAgc2hvd0VsZW1lbnQoInBvcHVwIiwgZmFsc2UpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgaWYgKHJlc3BvbnNlLmhhc093blByb3BlcnR5KCJvcGVuTGluayIpKSB7DQogICAgICAgICAgICAgICAgd2luZG93LmxvY2F0aW9uID0gcmVzcG9uc2VbIm9wZW5MaW5rIl07DQogICAgICAgICAgICB9DQogICAgICAgICAgICBpZiAocmVzcG9uc2UuaGFzT3duUHJvcGVydHkoImFsZXJ0IikpIHsNCiAgICAgICAgICAgICAgICBhbGVydChyZXNwb25zZVsiYWxlcnQiXSk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBpZiAocmVzcG9uc2UuaGFzT3duUHJvcGVydHkoInJlbG9hZCIpKSB7DQogICAgICAgICAgICAgICAgbG9jYXRpb24ucmVsb2FkKCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBpZiAocmVzcG9uc2UuaGFzT3duUHJvcGVydHkoIndpemFyZCIpKSB7DQogICAgICAgICAgICAgICAgY3JlYXRlTGF5b3V0KCk7DQogICAgICAgICAgICAgICAgY29uZmlndXJhdGlvbldpemFyZFtyZXNwb25zZVsid2l6YXJkIl1dLmNyZWF0ZVdpemFyZCgpOw0KICAgICAgICAgICAgICAgIHJldHVybjsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGNyZWF0ZUxheW91dCgpOw0KICAgICAgICB9Ow0KICAgIH0NCn0NCmZ1bmN0aW9uIGdldENvb2tpZShuYW1lKSB7DQogICAgdmFyIHZhbHVlID0gIjsgIiArIGRvY3VtZW50LmNvb2tpZTsNCiAgICB2YXIgcGFydHMgPSB2YWx1ZS5zcGxpdCgiOyAiICsgbmFtZSArICI9Iik7DQogICAgaWYgKHBhcnRzLmxlbmd0aCA9PSAyKQ0KICAgICAgICByZXR1cm4gcGFydHMucG9wKCkuc3BsaXQoIjsiKS5zaGlmdCgpOw0KfQ0K" - webUI["html/img/log.png"] = "iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAAAXNSR0IArs4c6QAAAAlwSFlzAAAsSwAALEsBpT2WqQAABCRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IlhNUCBDb3JlIDUuNC4wIj4KICAgPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIgogICAgICAgICAgICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgICAgICAgICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyI+CiAgICAgICAgIDx0aWZmOlJlc29sdXRpb25Vbml0PjI8L3RpZmY6UmVzb2x1dGlvblVuaXQ+CiAgICAgICAgIDx0aWZmOkNvbXByZXNzaW9uPjU8L3RpZmY6Q29tcHJlc3Npb24+CiAgICAgICAgIDx0aWZmOlhSZXNvbHV0aW9uPjI4ODwvdGlmZjpYUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6T3JpZW50YXRpb24+MTwvdGlmZjpPcmllbnRhdGlvbj4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+Mjg4PC90aWZmOllSZXNvbHV0aW9uPgogICAgICAgICA8ZXhpZjpQaXhlbFhEaW1lbnNpb24+NTA8L2V4aWY6UGl4ZWxYRGltZW5zaW9uPgogICAgICAgICA8ZXhpZjpDb2xvclNwYWNlPjE8L2V4aWY6Q29sb3JTcGFjZT4KICAgICAgICAgPGV4aWY6UGl4ZWxZRGltZW5zaW9uPjUwPC9leGlmOlBpeGVsWURpbWVuc2lvbj4KICAgICAgICAgPGRjOnN1YmplY3Q+CiAgICAgICAgICAgIDxyZGY6QmFnLz4KICAgICAgICAgPC9kYzpzdWJqZWN0PgogICAgICAgICA8eG1wOk1vZGlmeURhdGU+MjAxOC0xMC0xNFQxMToxMDo0MjwveG1wOk1vZGlmeURhdGU+CiAgICAgICAgIDx4bXA6Q3JlYXRvclRvb2w+UGl4ZWxtYXRvciAzLjM8L3htcDpDcmVhdG9yVG9vbD4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgIDwvcmRmOlJERj4KPC94OnhtcG1ldGE+CkP32mEAAANASURBVGgF7ZlPiE1RHMffw1AYhiL5k1HEijJiYaFZiHoyFspW2RFRkkSZGgtFWJIwi9FYmo0VOywkKTbKgjSlWcifRCPX51dv6s2d33md77vvXjfmV9859/7u93x/v98959x73p1KRbAkSargAhgDH0E/qIYkuHYEvAPGvwbmNOEerXM/0Q6BRSFuZj/ix0DaDnvCkGppIucDAe4OhzvkcUO+GaELAf8ux7/b8Zlrr+Pvc3zm6nX8NccXdKmFLHaUPJ/Ruhyu5zNap8Nd6PiCLrUQTyi0Rjy/5/M0Zd+smB7M32XwtgBr07aC6yfSTs7XO77OALfH4VbgHsD/HLytVquJx4nyIdQFBsHftscksK5Z0sGhpuN8Or4Aa5sJFHjtO7G2MjKvvZjN1sglOpSlCMt9LrDZ4S4Hd0Qg24vrK+gAZbPtjMqTdFKhEdkIsYxFWP720JlioUK6pzDL41jtpRIqxOOWxecuB3fhRGT8E85YBK8VygI6GSRTCxlH3TaJgyw4O2678aCxO94LbNPovYDdmOrUukIBN/MqwjJEOwGPOHR31W4VONVCLEBR9lAJpBbSrYhn5K5R+quFnGUOr1ICtMIlxjz6XVb6qot9JeKvCPSAdlQJJHDtd8hOIN0wtRDLxx6Ntr0ulalTq1TJNyYzXUjj3SjD8X87Iva7uR8s5+2bi6FtX1oOgi8g2tSn1g2yPx+t3gIR/c90s1+C1vuO/YkxdWrdjxFtE2dE0VELWaqIZ+QuUfqrhZxmyKUvgEoyE1xizOR4YOI8plXXyAZEbYsyTJvXFsUW+x6wGUSbWogJ237rZHSEgojq1CooLT3MdCH6Pcu3xz8zIq0s9lvc2+sgz6dWH/rnQPB/jlybZGoh99hCHJqk0P6TD0jaI/4b7dVYeXVq2bemokyKpRZiHwWKMimWWshxhryjoEpOKXHUNbIN8WcUc5s2r8Vue7l9oAaiTS3EhDeB6EUYnUlGojq1MobLr3uokB/5hcys7OYWKuRl5nD5Cbi5uYXw0ntPHoay2S8Seuol5RZSJ0r/n/DEc/BdrN9kTZrH7BkwDspgwyQxW6uggU3nHnAXvAG/QZE2SrARsL8hJffwDxM0mNDPvT8IAAAAAElFTkSuQmCC" - webUI["html/img/x_ transparent.png"] = "iVBORw0KGgoAAAANSUhEUgAAAQAAAAEACAYAAABccqhmAAAAAXNSR0IArs4c6QAAAAlwSFlzAAAWJQAAFiUBSVIk8AAAA6ppVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IlhNUCBDb3JlIDUuNC4wIj4KICAgPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIgogICAgICAgICAgICB4bWxuczp0aWZmPSJodHRwOi8vbnMuYWRvYmUuY29tL3RpZmYvMS4wLyIKICAgICAgICAgICAgeG1sbnM6ZXhpZj0iaHR0cDovL25zLmFkb2JlLmNvbS9leGlmLzEuMC8iPgogICAgICAgICA8eG1wOk1vZGlmeURhdGU+MjAxOC0xMS0xNVQxNzoxMTo3NjwveG1wOk1vZGlmeURhdGU+CiAgICAgICAgIDx4bXA6Q3JlYXRvclRvb2w+UGl4ZWxtYXRvciAzLjM8L3htcDpDcmVhdG9yVG9vbD4KICAgICAgICAgPHRpZmY6T3JpZW50YXRpb24+MTwvdGlmZjpPcmllbnRhdGlvbj4KICAgICAgICAgPHRpZmY6Q29tcHJlc3Npb24+NTwvdGlmZjpDb21wcmVzc2lvbj4KICAgICAgICAgPHRpZmY6UmVzb2x1dGlvblVuaXQ+MjwvdGlmZjpSZXNvbHV0aW9uVW5pdD4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+MTQ0PC90aWZmOllSZXNvbHV0aW9uPgogICAgICAgICA8dGlmZjpYUmVzb2x1dGlvbj4xNDQ8L3RpZmY6WFJlc29sdXRpb24+CiAgICAgICAgIDxleGlmOlBpeGVsWERpbWVuc2lvbj4yNTY8L2V4aWY6UGl4ZWxYRGltZW5zaW9uPgogICAgICAgICA8ZXhpZjpDb2xvclNwYWNlPjE8L2V4aWY6Q29sb3JTcGFjZT4KICAgICAgICAgPGV4aWY6UGl4ZWxZRGltZW5zaW9uPjI1NjwvZXhpZjpQaXhlbFlEaW1lbnNpb24+CiAgICAgIDwvcmRmOkRlc2NyaXB0aW9uPgogICA8L3JkZjpSREY+CjwveDp4bXBtZXRhPgoeXQb1AAAaJElEQVR4Ae2dCZhcVZXHz+1KSFiGkISkqyIoOgI68EkgOBNkEcQRlIFRZDGABAQEhInGbxw+RUZRNhWRLawDYR0GHAaHUVkGvwGURUcgwIiAOGxjV3UHAslHQrbuM/9TlQ6d7qruWt527/u/7+uuqvvucu7vvnveuffde54IDxIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARLwiIDzQtayHi0q23shaydCOnlISu7nnWThRdrFOkPWyCleyNqJkF1yjhTd8k6yiDvtuLgLiCR/lVnIZ14keWU7k2Xyuu4oU92r2RazQ+nWypXI4W86zCXbyZ28KBvJ97MtpEhX1gWsyleS08TJU17I2omQKpvLarmqkywyn7ZHPw9rLvTOvwbX6xEyxS3Nenv4oQCcWwmQc/D3dtaBdiyfyv5S1mM7zieLGSzWEsS6KIuiRSzTGTD9H404z1iy80MBWNVL7hn8nx8LhaxlqnKBvKbvyppYHctTM/0nd5xPljNwcrcUs2/6DyL0RwGYxDOcjR3vGBQ+4M8tMElmdQ3n6NGjYPofGE6F6tTESRmm/1xxTuuczWSQH08BhqJbqlNkuTyJoK2GBgf53S6mkrvB+7qZ6b9Gfod6hHv3dzKAGbX9pNvd51N7+WUBGNlJbgm07FH4G/AJdFuyqlwotXFzW8kzk2itXAFZwu38BlrlPN86v4ntnwIwqUvuASiAc+1r4MdkqXUef6tZM/0P8rcCTUmO9RvyraZiZiySf0OAQYCq46QiD0Lz7jYYFOxnARZPt7vZu/r1aREKzEz/Kd7J3rzAS2Si7IxHfq80nyQ7Mf20AIyfc2thBRyJv2XZwRmTJP14dNar3THlHl+2Nesl5M4vUpDjfe381vD+KgCTvuhehAI4yb4GfkzFjMdlXtWxV4+EvH/rlcytCutkASwzr59K+TsEGNpYZb0OQ4G5Q4OC/N4ln4PSuzXzdcuH6b8I4/7ZsERXZb49RhHQbwtgsGIFORWWwAuDP4P9HJBLsUpwWubrt1Yuh4zhmv5O3pLxUMaed367jsJQANPdW7AA5kAJrMl85+hMwC2RfEFnWcScuqJHoIRPx1xK2tmfKtPcc2kLEUX5YSgAIzHD/Rb/T48CSqbzUDkUVsAhmZTRTP8BuTiTskUllJMb8Bj6+qiySzufMOYABimq2mLMe/DzrweDgvx00iebyg6yuXstU/XrUZsQC/nu/5yMk13FLM5AjnAsAGsQW4M93tZiy+JA2qd+NVSmYzn0JfVPphRa0TkoOeTOvwqdf05Ind+ulLAUgNVomivj/7H2NehDMQnVq5/JRB1tjcJAxhRS1GC65Gvo/E9EnW3a+YWnAIxoyf0M/8Mei1o9bW2AbY5K++ivzvpPTVuMGMv/CR6/ZsviiqiyYSoAg1OSf8BQ4KmIOGUzG8XO8+UpK7qKfg5wsmGJxNNKr2C+5bh4sk4/17AmAYfzLOtf4PGgPR3YePipoH53YcVd0d2ZeJ3M9O+vrvUP8+7vsJOhIPvA9P9V4mwTKjBcC8AA5sWLkGK77Zua/Hbb2vLkMDu/XT8qZ4bc+a2KYSsAq6F5EXLyb/Y12EMx4HkbvgOSPCp6ODrIwUkWmWhZTn4BquckWmYKhYU9BBgEmhcvQk4OgNUT/3sFKjodE5C2zddWJoZ32DqLcTJz3ROl8Oo3pEbhWwBW2bx4EVK4FF+ik4a0bzxftbozMdTOr7Bs5uah89vFkQ8FYDWteREK3aR7l6yCR+E4j7Iehg7y2TiLSDnv8zFsvDtlGRIrPh9DgEGcefEiVMC7BbqdLYmO9gjf9H8UD1b3worS0DeVrb8u8mMBWJXNi5DgjS1Olq4nEOKXfrkarxjbPPKqaXUnYpimv8ibuC5wbeSn89v1kS8FYDUuuZfQ0KF7EdoaQ4HzrbqRHWU9FKb/IZHll7WMnHyx6mEqa3LFLE++hgBDYZZ1IS7oY4YGBfe9gF2RUfiprzkh+R14Zd8ZSXuNeBXG/Se2l9TvVPlVAH26GdZ5PY7m29bvJhxFeicvYyXbjh3vYCvrbej8h45Skr+nnDyNcf9fwfQP/72TdVopf0OAQQi1Pd1hexFSeQ+W6v5gsMptfdZM/zA7v8gKMDHXXrns/HY95FcBWO1nuMfw/xv2NeDjRHgQ2qet+tVM/wVtpfUhUZfMW7dc3AdpY5Ex3wrAkBblh/j/n7HQzUKmiilPkWukopu2Ic6lAY/7b8Gk3zVtMAkqCRWAeREaJ0ejm4TrRUjlvejI57V05ZrfQZXDWkrjS2Qnf5QJwT8Jaqo18jsJOBxPWQ/ABf/T4cHB/HaonWBrq62IHOtYplvCz4DN+k8fK6qH51dD5t0x/LNt4rk/aAEMXgKhexEaHAqobjJY5Yafy/H+gTA7v1X56+z877Q8LYB3WGD/t06AV+FfI2inocGBfb8IHeArDevUo7bO/18bnvf5hIOFV5SDMOtv1hAPEKACGH4Z9OgHEWTm4dh3yuFpffjtsJG3IB+t6+gibNP/T7IZtvhmzZV6ytcMhwDDG2CG+z2C5g8PDua34tHvWjwVUB3pJi1U099hNYTDK9bZ+UdcxlQAI5AgYIa7ChdMyF6EtpOKnLVB1Xv0YIz7D98gLJwfZ2Hy8/5wqhNdTTgEaMTSfOytkCdxeutGUbwOt6FAl+yBvQKPSMimv5MHMO7fF+P+fq/bKybhaQE0AruFewOnjoIlMNAoitfhNhTol2sxFJhYfctQmLP+r+FNUUey8ze+UmkBNGZTO1PW78A0PmOsaN6et0UxKn/urfyjCd4lB2K1X7hrO0are5PnqADGAqVawKPBBxHtI2NF5flMEbgQcznhTuZGhJoKoBmQZd0G0RbhThm/w81m5GGc0Qk4PMYtYrWfc7bqj8coBDgHMAqc9adqXoRy6TBiPQNfvjhZhnUO2ObNzt9Mk1EBNEPJ4hTdrZgQXNhsdMZLiYCTk7HI6YWUSveuWA4BWmky21I7UPUitF0ryRg3IQIOTzVKLtgXecZBkQqgVao9OgtJHsbfRq0mZfwYCTh5BuP+D8P0Ny8/PJokwCFAk6DWRzMvQi54L0Lrq+vJl7fRJubai52/xQajAmgRWDV6sfr2nXvbSco0sRD4KuZono4l58Az5RCg3Qbu0yJW0j2JR4MhOs1ol0ry6Zz8GOP+w5IvOIwSaQG0247TXQVJj4Xpyb3l7TLsNJ2Tl2QiXujBo20CVABto0NCexW3ysWdZMG0bRJwsgbKd45Mdm+2mQOTgQAVQKeXQUlOQxaLOs2G6VsmcAbG/Y+2nIoJNiDAOYANcLT54zX9gKwWe8dAmF6E2sQSY7J7pCSfxKw/h18dQqYF0CHAavIt3bOwpRr72YuiDOZRI+DgyqTL3Liz80dxSVABREHR8ii6qzEmvT2q7JhPHQI1JyafB+u+OmcZ1AYBKoA2oDVMsrGcgHOvNjzPE50RsJebRPG2486kCCo15wCibs4+3RPrA/4LTwcKUWed8/wewrh/b5j+a3POIdLq0wKIFCcym+5+if9nR51tzvNbguf9R7DzR38V0AKInqm9YMS8CD2ArHePI/vc5VmQg2H635G7eidQYVoAcUCueaCFM0pZGkf2ucrTyQJ2/vhanBZAfGxFynoY5gJujbOIwPNehHH/bJj+qwKvZ2rVowUQJ/qSuw1WwLVxFhFs3k7egktv2+LLzh9jI1MBxAi3mrWTefh8Pu5iAsz/VJnmnguwXpmqEhVA3M1RdMtxJ5uDYuihtlnWTm7ARqvrm43OeO0ToAJon13zKae5xzEU+EbzCXId83msoDgl1wQSrDwnAZOCrerwaPAuFLdfUkV6WM4qGSe7YS3FEx7K7qXItACSajbbvFKQubAEuI69EfMu+Ro7fyM48YRTAcTDtX6u3a4XJ46BEuA21pGEfoJNPpeMDGZInASoAOKkWy/vkrsL3f+ieqdyHPaKbCrH5bj+qVWdcwBpoFedgPkA82YzM43iM1Wmw9apguwN0/9XmZIrJ8LQAkijoW1xy0bVR4P0Y6/ybXb+NC7CWplUAGmxr3kR+nJaxWeiXCe/wFLfczIhS06F4BAg7YYv648xJ3BI2mIkXr49DRmHIdA0V068bBa4ngAtgPUoUvoysepF6JWUSk+z2MvY+dPEXyubCiDtNjC/9g6PBvN3zJUlOil/1c5WjakAstAeTvbNghiJyqDyXlkplydaJgsbQYBzACOQJBzQqx+XAbkH8wD5VMYOr1cruesSps7i1hGgAkjzUqjodHR8e8FoMU0xUi3b9v0XZBc8CvxDqnLktPB83nWy0Ni2OWgA217z3PmtHVQ2w1Kgf4YfxY2y0Cx5k4EKIK0Wr2DjC3cG1uir7Ir3/dCTcgrXIocAKUCXis7Gne9B/I1Po/hMlmkbpLpkfzgAvTeT8gUqFBVA0g37hm6B2e8ncLlvk3TRmS/P3vvnZCe++iu5luIQIDnWtZJWytXs/A2g23yI0olqAzqxBFMBxIK1QaY9ehIu8Pwt+22Ao26wygEYIuV7j0RdMPEEcggQD9eRufbqhzDb/WucmDjyJEOGETDXYLPxaHDRsHD+jJgALYCIgdbNTnUTPPL7F5xj568LaETghHWPBjcZcYYBkRKgAogUZ4PMKnIJTP8PNjjL4HoEjFdZLqx3imHREeAQIDqW9XOq6BG4+99c/yRDmyBwiMxwtzcRj1HaIEAF0Aa0ppP06fthyj6Ou/+fNZ2GEYcTeEMm4NHgVPfq8BP83TkBDgE6Z1g/B1vauhbjfnb++nyaD52MdyrdVH3levNpGLNJAlQATYJqOVpZvoc0s1pOxwQjCajshSVCp488wZBOCXAI0CnBeukreiDG/XfWO8WwNgmY9+Au+SiWCj/UZg5MVocAFUAdKB0Fva5bySqx59dTO8qHiUcScPISHqTuLOZFiUckBDgEiATjukxUCxiv2ow/O3+UXAfzsv0TK+WKwZ/87JwAFUDnDN/JoSJnYNJvr3cC+C1yAiqHY6nwFyLPN6cZcggQVcOXdR9kdR8UAJVqVEwb5eNkOZYKz4JX4ecaRWF4cwR4sTbHafRYZZ2GCHhUxc4/OqiIzireJLiGXoSioEkF0ClFc+0lch06/4xOs2L6lgjsgkeD57aUgpFHEKACGIGkxYCyzEfn/1SLqRg9GgLzpUf3jyarfObCOYBO2r2sH0byh6AAxneSDdN2QMBJLwZeO2F9QG8HueQ2KS2Adpv+dd0cSW2pLzt/uwyjSKfSjUVXC7FUmDezNnhSAbQBrZpktVyJzv++dpMzXYQEVD6JrcNfiTDH3GRFrdlOU1f0eNx1rm4nKdPERsC8CO0GL0JPxFZCgBlTAbTaqGXdAXf+3yAZvdW0yi7++M9iPmBXeBVeHn9RYZTAIUAr7ai6MaKbay92/la4JRf3A7DMLkquOP9LogJopQ3NRZXKjq0kYdzECRwnZT008VI9LZBDgGYbrqKH4+5id38e2SdguwVnwpXYy9kXNV0JaQE0w79X34c7/5XNRGWcTBDYAlLQi1ATTUEFMBYk1fG4898CBTBprKg8nykCe2Cp8BmZkiiDwlABjNUoFTkHnf8vx4rm5Xknl0Huh72UvTmhvyl9umdzUfMZi3MAo7V7WW2N/0+hAELk9LyU4F3nNdkaO+sWoZ5hvrTEycuo2Ux6Eap/odMCqM9FZLHa7j7b5Rde5zf/egU5RpxbUd1T7wI2lVXeAy9CVzVq5ryHUwHUuwJUu+DS2/b32z7/EI/zsXnmkfUVK8qPoOYeXf87tC8qh8KL0PGhVSuK+oR3d4uCSlnNtdd3osgqc3k4eRov4d4Vd//VG8jWo/bqMltGO2GD8FB+mBeh8aj3lu7ZUKoURT1oAQyn2KPm0+9bw4OD+O0w2i/I0SM6v1Vuhvs9rIAw6231My9Cq6tehMJUcFbHNg4qgKHQlql5870ZF0thaHBA37876iu3i3I+lMB/B1Tf4VXZGbsGzxsemOffHAIMbf2y/js6/0FDg4L57rCBqSi74+6/dtQ6VXRHrHt4DHE2GjWerycdWljkACm5u3ytQpRy0wIYpFnRecF2fsE8uFZn/Ufv/Mai6P4HO+rOHMQS3Gftqc51WB9QDK5ubVSICsCg9egs3PV+0AY/X5KcXh3jNyttt3wfUR9vNrp38VSm4ykPHvHSixAVwGK1V3ffgr9QTd4HsODnwpY6qQ0TCnIs5gPWtJTOr8j7YanwV/0SOXppqQDWyOXAum30aDOQo5O30InRkd1Ay9J0u6eQ5qyW0/mUQLHMe7Hu4pPIUcua70nAsh6DsfHCqKFmKL+TYPq3v4vRNkKVq96PZmaoTlGL8hzmPGbl1YtQfi2A2sKXS6O+mjKTn5O7O+r8VhHn1sDP3hcCHwpsj5vAJZlpt4QFyacCUJ2Ii9pcem+aMO+kinsDq96iWfpac7J5blKCp1KOYphkDl9yeORTAVTkAnT+DwXc3vOw5PVPkdWvKGdDYT4dWX5ZzGgArx0v6zZZFC1OmfKnAHr0s+j8J8cJNdW8ndwO0/+mSGWwfQN2l3R4eBbusQXqmDsvQvlSADUN/0/BXsNO+lC3eJTbDPcYFMD3gmVXq9jueDQY7n6IOo2Xn6cAquPQuA9Cy+9Wh0MYQQU5GNt874itMqoTwPAxMNwhtjLSzth8Jah8DFbUg2mLkkT5+bEAyvLdoDt/F8zXODu/XY3OrcJ/eyrQn8TFmUoZtY1gN8mbOjmV8hMuNB8KoFc/gYv2tITZJlnc/2EX/98lUmDJ/QblnJ9IWekVsrW8nY9Xv4U/BLBNH/3weWdvkQ31KMj+uPvfk1j17DFqBXsFVMyJSMjHiRgKBO1OLGwLoOba68agO38X3leQZOe37u7cSlhUNhRofYmxX+riR9goFrSSC1sB9FbN/o/7dc21IK2TP2IZ69+3kCK6qEVnPgQviC7DTOa0CaTCOyEw+RnoEe4QoFd3x/3pftz9xwXZdnb3Lcje8PDzy9TqZy9LLVddim+XmgzJFHwxhgJfTqaoZEsJ0wKwGdx+8/8WaOevXSMXptr5TQbn3oYSysNQYB5WCR6QbNdMprQwFcAKuQb43p0MwhRKcfIM3HudnkLJI4vsdg9hLiAPr+ReiK3DpZEA/A4JTwGU9RQ0yWf8bpZRpLfluCpzqxNxo0RL9FS3fBNK4IVEy0y6MHtHxJrwvAiFpQD6dCY6xw+TvjYSLu9cjEd/m3CZoxdnbxhSOQ5KwBxuhnx8Ao8/05l0jYlqOJOAfboZ7o3WMbaPiVUWsn0c7r1m4+6fTVddZb0YKiCZBUlptYa5SVP5SOaUcJs8wrEA+sWce4Tc+VfhkZ+Z/tns/HYBOvk6/v63zWvRj2QKTwuCCWa74QRwhKEAyno0tPLcANqjcRXsrT3msjvLR9Eth3jH52AosC2eMtkNx/vD/yHAYt0Opr/tUAtCIze4oh6G6b8n7v5+rLwr6wK0x5ca1CWc4C45Akr5Fp8r5LcCsBVaZXkEDbCzz40whuwrsJphJp75/2GMeNk5beZxPzwIqWyTHaFikMTJUlg7O0MJvBhD7olk6fcQoFJ9mUfInd/G1ad51fntsp3u3sJ8xQnBDwVUJkHJ4V2S8DXh6eGvAujVTwN+2DPOIvdhwc8CL6+tbncfFEDQO+mq7WIOZnrl2162EYT2cwiwRN+Nt93Zu+yn+Ap+TLnNvJwAx6VT3Ctjxs1qhNd1c1lVdSYa7qpMY1/bFbkvXjh6f1abopFc/lkAZm6thNkVcuevtdZ8rzu/1WGqW4a9Al+sVSfg/4oBj8qNslS9uyH5pwBq5tYeAV9Odke5E3eThUHUsearwPZmhH5sJSv88yLk1xCgovtC096LP/8UV/OX/+uY9d8RE2mV5pNkPOYSnQSrzdYwbJVxSaMQ72SsErwiioySyMOfjlTR6VUzK+zOb3f/LwXV+e0qnuLscdmJSVzQGSjjAmwd9sZrsh8KwN7jrnI9/oLbjrnBBWuvKyu52zYIC+VHyf0cSuC6UKozSj02xjn4ooDfRA8OPxSA7cBSOL4M+XBY0rSJ2FbmcI+JMh9KoCfcCq6rmb12rrZGJfNVzb4CqOhsUDw78yQ7F/AEmeSWdJ5NhnOY7N6EAjgpwxJGJ5rKqXjh6IHRZRhPTtlXACr/iLu/7cAK93ByLUz/n4VbwSE1K7r/gBK4cUhIuF8H5MxwK8eakQAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkEB6BP4fVPHi4U0ZOJEAAAAASUVORK5CYII=" - webUI["html/js/authentication_ts.js"] = "ZnVuY3Rpb24gbG9naW4oKSB7DQogICAgdmFyIGVyciA9IGZhbHNlOw0KICAgIHZhciBkYXRhID0gbmV3IE9iamVjdCgpOw0KICAgIHZhciBkaXYgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29udGVudCIpOw0KICAgIHZhciBmb3JtID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImF1dGhlbnRpY2F0aW9uIik7DQogICAgdmFyIGlucHV0cyA9IGRpdi5nZXRFbGVtZW50c0J5VGFnTmFtZSgiSU5QVVQiKTsNCiAgICBjb25zb2xlLmxvZyhpbnB1dHMpOw0KICAgIGZvciAodmFyIGkgPSBpbnB1dHMubGVuZ3RoIC0gMTsgaSA+PSAwOyBpLS0pIHsNCiAgICAgICAgdmFyIGtleSA9IGlucHV0c1tpXS5uYW1lOw0KICAgICAgICB2YXIgdmFsdWUgPSBpbnB1dHNbaV0udmFsdWU7DQogICAgICAgIGlmICh2YWx1ZS5sZW5ndGggPT0gMCkgew0KICAgICAgICAgICAgaW5wdXRzW2ldLnN0eWxlLmJvcmRlckNvbG9yID0gInJlZCI7DQogICAgICAgICAgICBlcnIgPSB0cnVlOw0KICAgICAgICB9DQogICAgICAgIGRhdGFba2V5XSA9IHZhbHVlOw0KICAgIH0NCiAgICBpZiAoZXJyID09IHRydWUpIHsNCiAgICAgICAgZGF0YSA9IG5ldyBPYmplY3QoKTsNCiAgICAgICAgcmV0dXJuOw0KICAgIH0NCiAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgiY29uZmlybSIpKSB7DQogICAgICAgIGlmIChkYXRhWyJjb25maXJtIl0gIT0gZGF0YVsicGFzc3dvcmQiXSkgew0KICAgICAgICAgICAgYWxlcnQoInNkYWZzZCIpOw0KICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Bhc3N3b3JkJykuc3R5bGUuYm9yZGVyQ29sb3IgPSAicmVkIjsNCiAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjb25maXJtJykuc3R5bGUuYm9yZGVyQ29sb3IgPSAicmVkIjsNCiAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJlcnIiKS5pbm5lckhUTUwgPSAie3suYWNjb3VudC5mYWlsZWR9fSI7DQogICAgICAgICAgICByZXR1cm47DQogICAgICAgIH0NCiAgICB9DQogICAgY29uc29sZS5sb2coZGF0YSk7DQogICAgZm9ybS5zdWJtaXQoKTsNCn0NCg==" - webUI["html/css/base.css"] = "KiB7DQogIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTsNCiAgLW1vei1hcHBlYXJhbmNlOiBub25lOw0KICAtbXMtYXBwZWFyYW5jZTogbm9uZTsNCiAgZm9udC1mYW1pbHk6ICJBcmlhbCIsIHNhbnMtc2VyaWY7DQogIGxldHRlci1zcGFjaW5nOiAycHg7IA0KfQ0KDQovKg0KOjotd2Via2l0LXNjcm9sbGJhciB7IA0KICAgIGRpc3BsYXk6IG5vbmU7IA0KfQ0KKi8NCg0KOjotd2Via2l0LXNjcm9sbGJhciB7DQogIHdpZHRoOiAxMnB4Ow0KICBoZWlnaHQ6IDEycHg7DQp9DQoNCiANCjo6LXdlYmtpdC1zY3JvbGxiYXItdHJhY2sgew0KICAtd2Via2l0LWJveC1zaGFkb3c6IGluc2V0IDAgMCA2cHggcmdiYSgwLDAsMCwwLjMpOyANCiAgYm9yZGVyLXJhZGl1czogNXB4Ow0KICAgIA0KfQ0KIA0KOjotd2Via2l0LXNjcm9sbGJhci10aHVtYiB7DQogIGJvcmRlci1yYWRpdXM6IDVweDsNCiAgLXdlYmtpdC1ib3gtc2hhZG93OiBpbnNldCAwIDAgNnB4IHJnYmEoMCwgMCwgMCwwLjYpOyANCiAgYmFja2dyb3VuZC1jb2xvcjogIzQ0NDsNCn0NCg0KOjotd2Via2l0LXNjcm9sbGJhci10aHVtYjpob3ZlciB7DQogIGJhY2tncm91bmQ6ICMzMzM7IA0KfQ0KDQo6Oi13ZWJraXQtc2Nyb2xsYmFyLWNvcm5lciB7IA0KICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsgDQp9DQoNCmEgew0KICBjb2xvcjogIzAwRTZGRjsNCn0NCg0KaHRtbCwgYm9keSB7DQogIGNvbG9yOiAjZmZmOw0KICBtYXJnaW46IDBweCBhdXRvOw0KICBoZWlnaHQ6IDEwMCU7DQogIGZvbnQtc2l6ZTogMTRweDsNCn0NCg0KaDIgew0KICBmb250LXNpemU6IDI0cHg7DQogIGxldHRlci1zcGFjaW5nOiAycHg7DQp9DQoNCmgzIHsNCiAgZm9udC1zaXplOiAyMnB4Ow0KICBsZXR0ZXItc3BhY2luZzogMXB4Ow0KfQ0KDQpoNCB7DQogIGZvbnQtc2l6ZTogMjBweDsNCiAgbGV0dGVyLXNwYWNpbmc6IDFweDsNCiAgbGluZS1oZWlnaHQ6IDEuNWVtOw0KDQp9DQoNCmg1IHsNCiAgZm9udC1zaXplOiAxNnB4Ow0KICBsZXR0ZXItc3BhY2luZzogMXB4Ow0KICBsaW5lLWhlaWdodDogMS4yZW07DQogIG1hcmdpbjogMjVweCAwcHggMTBweCAwcHg7DQp9DQoNCmhyIHsNCiAgYm9yZGVyOiAwOw0KICBoZWlnaHQ6IDFweDsNCiAgYmFja2dyb3VuZDogIzMzMzsNCiAgbWFyZ2luOiAxMHB4IDBweDsNCn0NCg0KcCB7DQogIG1hcmdpbjogMnB4Ow0KICBwYWRkaW5nOiAycHggNXB4Ow0KfQ0KDQpwcmUgew0KICBtYXJnaW46IDBweCAwcHggNXB4IDBweDsNCiAgZm9udC1zaXplOiAxMnB4Ow0KICBjb2xvcjogI2RkZDsNCiAgbGV0dGVyLXNwYWNpbmc6IDFweDsNCiAgd2hpdGUtc3BhY2U6IHByZS13cmFwOw0KICBmb250LWZhbWlseTogbW9ub3NwYWNlOyANCiAgZm9udC1zaXplOiAxMnB4OyANCiAgZm9udC1zdHlsZTogbm9ybWFsOyANCiAgZm9udC12YXJpYW50OiBub3JtYWw7IA0KICBsaW5lLWhlaWdodDogMS42ZW07IA0KfQ0KDQpsYWJlbCB7DQogIG1hcmdpbi1ib3R0b206IDIwcHg7DQogIGRpc3BsYXk6IGJsb2NrOw0KfQ0KDQpsaSB7DQogIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTsNCiAgYmFja2dyb3VuZC1jb2xvcjogIzExMTsNCiAgcGFkZGluZzogMTBweCAyMHB4Ow0KICBjdXJzb3I6IHBvaW50ZXI7DQogIGJvcmRlci1sZWZ0OiBzb2xpZCAycHggIzExMTsNCiAgdHJhbnNpdGlvbjogYWxsIDAuMzsNCn0NCg0KbGk6aG92ZXIgew0KICBib3JkZXItY29sb3I6ICMwMEU2RkYNCn0NCg0Kc2VsZWN0IHsNCiAgY3Vyc29yOiBwb2ludGVyOw0KICB3aWR0aDogY2FsYygxMDAlICsgMnB4KTsNCiAgYm9yZGVyOiBzb2xpZCAwcHggIzAwRTZGRjsNCiAgYm9yZGVyLXJhZGl1czogMHB4Ow0KICBvdXRsaW5lOiBub25lOw0KICBjb2xvcjogI2ZmZjsNCiAgcGFkZGluZzogOXB4IDEwcHg7DQogIGRpc3BsYXk6YmxvY2s7DQogIGJhY2tncm91bmQtY29sb3I6ICMzMzM7DQogIGZvbnQtc2l6ZTogMTRweDsNCiAgbWFyZ2luOiA1cHggMHB4IDVweCAwcHg7DQp9DQoNCnNlbGVjdDpmb2N1cyB7DQogIG91dGxpbmU6IG5vbmU7DQp9DQoNCmlucHV0IHsNCiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lOw0KICBtYXJnaW46IDVweCAwcHg7DQogIHBhZGRpbmc6IDIuNXB4IDEwcHg7DQogIG91dGxpbmU6IG5vbmU7DQogIGZvbnQtc2l6ZTogMTRweDsNCn0NCg0KaW5wdXRbdHlwZT1idXR0b25dLCBpbnB1dFt0eXBlPXN1Ym1pdF0gew0KICBjdXJzb3I6IHBvaW50ZXI7DQogIGJhY2tncm91bmQtY29sb3I6ICMwMDA7DQogIG1hcmdpbjogMTBweCAxMHB4Ow0KICBwYWRkaW5nOiAxMHB4IDI1cHg7DQogIGJvcmRlcjogc29saWQgMHB4Ow0KICBib3JkZXItY29sb3I6ICMwMDA7DQogIGJvcmRlci1yYWRpdXM6IDNweDsNCiAgb3V0bGluZTogbm9uZTsNCiAgY29sb3I6ICNmZmY7DQp9DQoNCmlucHV0W3R5cGU9YnV0dG9uXTpmb2N1cyB7IA0KICAgb3V0bGluZTogbm9uZTsNCn0NCg0KaW5wdXRbdHlwZT1idXR0b25dOmhvdmVyIHsNCiAgYmFja2dyb3VuZC1jb2xvcjogIzAwRTZGRjsNCiAgY29sb3I6ICMwMDA7DQp9DQoNCmlucHV0W3R5cGU9YnV0dG9uXTpob3Zlci5kZWxldGUgIHsNCiAgYmFja2dyb3VuZC1jb2xvcjogcmVkOw0KICBjb2xvcjogI2ZmZjsNCn0NCg0KaW5wdXRbdHlwZT10ZXh0XSwgaW5wdXRbdHlwZT1zZWFyY2hdLCBpbnB1dFt0eXBlPXBhc3N3b3JkXSB7DQogIGNvbG9yOiAjZmZmOw0KICB3aWR0aDogLXdlYmtpdC1jYWxjKDEwMCUgLSAwcHgpOw0KICB3aWR0aDogLW1vei1jYWxjKDEwMCUgLSAwcHgpOw0KICB3aWR0aDogY2FsYygxMDAlIC0gMHB4KTsNCiAgb3V0bGluZTogbm9uZTsNCiAgYm9yZGVyOiBzb2xpZCAxcHggdHJhbnNwYXJlbnQ7DQogIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50Ow0KICBib3JkZXItYm90dG9tLWNvbG9yOiAjNTU1Ow0KICBib3JkZXItcmFkaXVzOiAwcHg7DQogIHBhZGRpbmc6IDhweCAxMHB4Ow0KfQ0KDQppbnB1dFt0eXBlPSJjaGVja2JveCJdIHsNCiAgYm9yZGVyOiBzb2xpZCAxcHggIzAwRTZGRjsNCiAgYmFja2dyb3VuZC1jb2xvcjogIzMzMzsNCiAgaGVpZ2h0OiAyNXB4Ow0KICB3aWR0aDogMjVweDsNCiAgY3Vyc29yOiBwb2ludGVyOw0KICAvKg0KICAtd2Via2l0LWFwcGVhcmFuY2U6IGNoZWNrYm94Ow0KICAqLw0KfQ0KDQppbnB1dFt0eXBlPSJjaGVja2JveCJdOmNoZWNrZWQgew0KICBjb2xvcjogI2ZmZjsNCiAgYmFja2dyb3VuZC1jb2xvcjogIzAwRTZGRjsNCiAgLypkaXNwbGF5OiBpbmxpbmUtYmxvY2s7Ki8NCn0NCg0KaW5wdXRbdHlwZT0iY2hlY2tib3giXTpiZWZvcmUgew0KICBwb3NpdGlvbjogaW5pdGlhbDsNCiAgbGVmdDogMHB4Ow0KICBtYXJnaW4tbGVmdDogLTRweDsNCiAgY29udGVudDogIiAiOw0KfQ0KDQppbnB1dFt0eXBlPSJjaGVja2JveCJdOmNoZWNrZWQ6YmVmb3JlIHsNCiAgcG9zaXRpb246IGluaXRpYWw7DQogIGxlZnQ6IDBweDsNCiAgbWFyZ2luLWxlZnQ6IC0zcHg7DQogIGNvbnRlbnQ6ICLinJMiOw0KICBjb2xvcjogIzAwMDsNCn0NCg0KDQppbnB1dFt0eXBlPWJ1dHRvbl0uY2FuY2VsIHsNCiAgDQogIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50Ow0KICBib3JkZXItY29sb3I6IHJlZDsNCn0NCg0KaW5wdXRbdHlwZT1idXR0b25dLnNhdmV7DQogIGJhY2tncm91bmQtY29sb3I6ICMxMTE7DQogIGZsb2F0OiByaWdodDsNCn0NCg0KDQppbnB1dFt0eXBlPWJ1dHRvbl0uYmxhY2ssIGlucHV0W3R5cGU9c3VibWl0XS5ibGFja3sNCiAgYmFja2dyb3VuZC1jb2xvcjogIzAwMDsNCiAgYm9yZGVyLWNvbG9yOiAjMDAwOw0KfQ0KDQppbnB1dFt0eXBlPWJ1dHRvbl0uY2VudGVyew0KICBtYXJnaW4tcmlnaHQ6IGF1dG87DQogIG1hcmdpbi1sZWZ0OiBhdXRvOw0KICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDAwOw0KICBib3JkZXItY29sb3I6ICMwMDA7DQp9DQoNCi5wb2ludGVyIHsNCiAgY3Vyc29yOiBwb2ludGVyOw0KfQ0KDQoucG9pbnRlcjpob3ZlciB7DQogIGNvbG9yOiAjMDBFNkZGOw0KICBjdXJzb3I6IHBvaW50ZXI7DQp9DQoNCi5zb3J0VGhpcyB7DQogIGNvbG9yOiAjMDBFNkZGOw0KfQ0KDQoudzQwcHggew0KICBtYXgtd2lkdGg6IDQwcHg7DQp9DQoNCi53NTBweCB7DQogIG1heC13aWR0aDogNTBweDsNCn0NCg0KLnc4MHB4IHsNCiAgbWF4LXdpZHRoOiA4MHB4Ow0KfQ0KDQoudzE1MHB4IHsNCiAgbWF4LXdpZHRoOiAxNTBweDsNCn0NCg0KLncyMDBweCB7DQogIG1heC13aWR0aDogMjAwcHg7DQogIG1pbi13aWR0aDogMTAwcHg7DQogIHdpZHRoOiAyMDBweDsNCiAgb3ZlcmZsb3cteDogaGlkZGVuOw0KICB3aGl0ZS1zcGFjZTogbm93cmFwOw0KICBvdmVyZmxvdzogaGlkZGVuOw0KICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsNCn0NCg0KLnczMDBweCB7DQogIG1heC13aWR0aDogMzAwcHg7DQp9DQoNCi53MjIwcHggew0KICBtYXgtd2lkdGg6IDIyMHB4Ow0KICBjdXJzb3I6IGFsaWFzOw0KfQ0KDQouZm9vdGVyIHsNCiAgZm9udC1zaXplOiAxMHB4Ow0KfQ0KDQouY2VudGVyIHsNCiAgdGV4dC1hbGlnbjogY2VudGVyOw0KfQ0KDQouc2NyZWVuTG9nSGlkZGVuIHsNCiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMHB4LCAtMTEwcHgpOw0KfQ0KDQouYm9yZGVyU3BhY2Ugew0KICBtYXJnaW4tYm90dG9tOiAzMHB4Ow0KfQ0KDQouYmxvY2sgew0KDQp9DQoNCi5ub25lIHsNCiAgZGlzcGxheTogbm9uZTsNCn0NCg0KDQoubm90VmlzaWJsZSB7DQogIGhlaWdodDogMHB4Ow0KICBkaXNwbGF5OiBub25lOw0KICBvcGFjaXR5OiAwOw0KICBib3JkZXItYm90dG9tOiAjMDAwIHNvbGlkIDBweDsNCiAgDQp9DQoNCi52aXNpYmxlIHsNCiAgb3BhY2l0eTogMTsNCiAgZGlzcGxheTogYmxvY2s7DQogIGJvcmRlci1ib3R0b206ICM0NDQgc29saWQgMXB4OyANCiAgcGFkZGluZzogMTBweDsNCn0NCg0KLmZsb2F0UmlnaHQgew0KICBmbG9hdDogcmlnaHQ7DQp9DQoNCi5mbG9hdExlZnQgew0KICBmbG9hdDogbGVmdDsNCn0NCg0KLm1lbnUtYWN0aXZlIHsNCiAgYmFja2dyb3VuZC1jb2xvcjogIzAwRTZGRjsNCn0NCg0KLm1lbnUtbm90QWN0aXZlIHsNCiAgDQp9DQoNCiNicmFuY2ggew0KICBkaXNwbGF5OiB0YWJsZTsNCiAgbWFyZ2luOiBhdXRvOw0KICBjb2xvcjogcmVkOw0KfQ0KDQojaW50ZXJhY3Rpb24gew0KICBtYXJnaW4tYm90dG9tOiAxMDBweDsNCiAgdGV4dC1hbGlnbjogY2VudGVyOw0KICBib3JkZXItYm90dG9tOiBzb2xpZCAwcHggIzc3NzsNCn0NCg0KDQouaGFsZiB7DQogIGRpc3BsYXk6IGJsb2NrOw0KICB3aWR0aDogNDUlOw0KfQ0KDQoubWVudSB7DQogIGJvcmRlcjogc29saWQgMXB4ICMwMEU2RkY7DQp9DQoNCi5pbmZvTXNnIHsNCiAgY29sb3I6ICNhYWE7DQp9DQoNCi5lcnJvck1zZyB7DQogIGNvbG9yOiByZWQ7DQp9DQoNCi53YXJuaW5nTXNnIHsNCiAgY29sb3I6IHllbGxvdzsNCn0NCg0KLmRlYnVnTXNnIHsNCiAgY29sb3I6IG1hZ2VudGE7DQp9DQoNCi5OZXdzLCAuTW92aWUsIC5TZXJpZXMsIC5TcG9ydHMsIC5LaWRzIHsNCiAgYm9yZGVyLWxlZnQ6IHNvbGlkIDJweA0KfQ0KDQouTmV3cyB7DQogIGJvcmRlci1jb2xvcjogdG9tYXRvDQp9DQoNCi5Nb3ZpZSB7DQogIGJvcmRlci1jb2xvcjogcm95YWxibHVlOw0KfQ0KDQouU2VyaWVzIHsNCiAgYm9yZGVyLWNvbG9yOiBnb2xkOw0KfQ0KDQouU3BvcnRzIHsNCiAgYm9yZGVyLWNvbG9yOiB5ZWxsb3dncmVlbjsNCn0NCg0KLktpZHMgew0KICBib3JkZXItY29sb3I6IG1lZGl1bXB1cnBsZTsNCn0NCg0KLyogTG9hZGluZyAqLw0KI2xvYWRpbmcgew0KICBsZWZ0OiAwcHg7DQogIHRvcDogMHB4Ow0KICB6LWluZGV4OiAxMDAwMDsNCiAgcG9zaXRpb246IGFic29sdXRlOw0KICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsMCwwLCAwLjgpOw0KICBtYXJnaW46IGF1dG87DQogIHdpZHRoOiAxMDAlOw0KICBoZWlnaHQ6IDEwMCU7DQp9DQoNCg0KLmxvYWRlciB7DQogIGJvcmRlcjogNXB4IHNvbGlkIHRyYW5zcGFyZW50Ow0KICBib3JkZXItcmFkaXVzOiA1MCU7DQogIGJvcmRlci10b3A6IDVweCBzb2xpZCAjMDBFNkZGOw0KICBib3JkZXItYm90dG9tOiA1cHggc29saWQgIzAwRTZGRjsNCiAgd2lkdGg6IDUwcHg7DQogIGhlaWdodDogNTBweDsNCiAgLXdlYmtpdC1hbmltYXRpb246IHNwaW4gMS4ycyBsaW5lYXIgaW5maW5pdGU7DQogIGFuaW1hdGlvbjogc3BpbiAxLjJzIGxpbmVhciBpbmZpbml0ZTsNCg0KICBwb3NpdGlvbjogZml4ZWQ7DQogIG1hcmdpbjogYXV0bzsNCg0KICB0b3A6IDA7DQogIHJpZ2h0OiAwOw0KICBib3R0b206IDA7DQogIGxlZnQ6IDA7DQogIA0KfQ0KDQpALXdlYmtpdC1rZXlmcmFtZXMgc3BpbiB7DQogIDAlIHsgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTsgfQ0KICAxMDAlIHsgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpOyB9DQp9DQoNCkBrZXlmcmFtZXMgc3BpbiB7DQogIDAlIHsgdHJhbnNmb3JtOiByb3RhdGUoMGRlZyk7IH0NCiAgMTAwJSB7IHRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7IH0NCn0NCg==" - webUI["html/img/settings.png"] = "iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAAAXNSR0IArs4c6QAAAAlwSFlzAAAsSwAALEsBpT2WqQAABCRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IlhNUCBDb3JlIDUuNC4wIj4KICAgPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIgogICAgICAgICAgICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgICAgICAgICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyI+CiAgICAgICAgIDx0aWZmOlJlc29sdXRpb25Vbml0PjI8L3RpZmY6UmVzb2x1dGlvblVuaXQ+CiAgICAgICAgIDx0aWZmOkNvbXByZXNzaW9uPjU8L3RpZmY6Q29tcHJlc3Npb24+CiAgICAgICAgIDx0aWZmOlhSZXNvbHV0aW9uPjI4ODwvdGlmZjpYUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6T3JpZW50YXRpb24+MTwvdGlmZjpPcmllbnRhdGlvbj4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+Mjg4PC90aWZmOllSZXNvbHV0aW9uPgogICAgICAgICA8ZXhpZjpQaXhlbFhEaW1lbnNpb24+NTA8L2V4aWY6UGl4ZWxYRGltZW5zaW9uPgogICAgICAgICA8ZXhpZjpDb2xvclNwYWNlPjE8L2V4aWY6Q29sb3JTcGFjZT4KICAgICAgICAgPGV4aWY6UGl4ZWxZRGltZW5zaW9uPjUwPC9leGlmOlBpeGVsWURpbWVuc2lvbj4KICAgICAgICAgPGRjOnN1YmplY3Q+CiAgICAgICAgICAgIDxyZGY6QmFnLz4KICAgICAgICAgPC9kYzpzdWJqZWN0PgogICAgICAgICA8eG1wOk1vZGlmeURhdGU+MjAxOC0wOC0xMFQxODowODo4OTwveG1wOk1vZGlmeURhdGU+CiAgICAgICAgIDx4bXA6Q3JlYXRvclRvb2w+UGl4ZWxtYXRvciAzLjM8L3htcDpDcmVhdG9yVG9vbD4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgIDwvcmRmOlJERj4KPC94OnhtcG1ldGE+Ckxt87EAAAS7SURBVGgFzZpdiFVVGIbn5N+IMgVhaRLqWI7mQIJoIVRgOhQZNDAhWcbcVuPV3BRE6I14440iQQSaN0p6kz8zI0k5inUhZSSaYOVYODMo5eiMOOPf+LzH2cPMPmvttdbe53jOBy9rr2+938/ae51vr733qaoqgQwPD68B/wDJfXAP3AE94JMShCy+SxJ9CvSDJFlU7MiPFdsh/hrBdIffBsd48HApJjLPI4tnPThBlFJMZI5HBuWZCIt9AmgEzeAJR6JzHeMadnKI8wbYCz4Fkz18JlNwMgf8BCL5j4O3bVaMdUfEhPZqgv1U7HbEbDvoT7HZOPUYNwAlHheV09a4A3RTgMqtj9QY7JdgeM5i3I4+fDIYrQeq/UnyNYOTlBDtS+BwEjk2doz+KyO2OY5bwVCME+/qylTHT4C1D3k+uB33Yul3ov/eMuajlu1RH+II5wtT4hNNSnQ6U/kzbRkfq351bCfF8apAm7kmvq38njWRK0S305SHcSK5XO4U5O9MBmXWbSe3E6YccialdKzH2TTnQEF10XgZ5DdivsxEhkyxjVdERAwu03xmMiqD7hYx19km4cyHq6KyeHKkWpSz+ciVrHVpRYZk/wLHp0H2bULkNKzt4Eq86TKxLq3IECf6nXwV9QPbAfjHQSfoD7SN6L63gYhvbrkiTwKf/dPYpbdPVxKMnigdg0VAG8FQye8AzBl6aIk2A+wPiNoHd63LNZx3wbUAvz/CfTzJb/43AmkGpLfAi0DPE/NALQgtve+xFPdi5xRiNkHa5ySOJ/TR7RrBJdqL4AAxL+p+8ToYAFklNCnF3pM1KPba2L6v8vons5oPsko9ZyZoa0PsOoKezxoY+y5N5DYHWSvDTXzUMJH7IUkRW0tbyyV0CcfDDKmqDMe1KfqnQyehGNgo9q8p4hWYFGsiBY4fsSK/BRkkaPgj5PhMy720BnVFesfnlKo3Das0bw8XYJf196GEuzWRLSDoRypLg2w06FyqTS6Cx7iK1eeqGqrnugmuBgvB8+A5UAuqQYiU+oZ4h2T+BV3gAlDp/pai0U1rFpVGMAv8AHzFd4vShMOQLcoB+DNB/sSbM3ZoMV4BQsW0adSJSbNp1Hu1mY40/YZxpPdJaUSfFzrBMXAjjQNsdvll6cHCWVvKJIphdhcny11pqmolCk5aIDif0BKdZBucgPlO8kh/r8O4HtwClSCbk86HtQqQuUrvKVCf5OARjt0lll4H/WKKmbS0tmJQKZNQ7nq9+w0n2LhTN04E8jKMPpZ1hcli8tGTZYEYJwJrZQGzchTGz3a2ifwdkHc73LYAfpx6DcWXQK1LeiDsdpFGx7UOwUGQJKpmGyIjjvWh50iSQWzsZ/ofgvx+jnYp+B/YpJcB7QXDBKPJ4JDF6+/oCwoBuhoL36R+Jp4RJH16u2IgaxJpHhMehsBY3wTjV2YbOuuumLHrwCW6msbSj74O/DHGgV4Ohl8Jw1nSMmsB+tL6Wnw83odzBrhEr2GtgvFE8A74ADxtJZZygMC25cjQqBwqdg62qpUlziUP45Cq6OGuqqoUE/FJ8i+v7MpJYvEsHl1A5gNty2vLmaN3bBLdAvqB3svqXxLRvyEuc9zs7SiA+ACpw05pJx8SoAAAAABJRU5ErkJggg==" - webUI["html/js/settings_ts.js"] = "Y2xhc3MgU2V0dGluZ3NDYXRlZ29yeSB7DQogICAgY29uc3RydWN0b3IoKSB7DQogICAgICAgIHRoaXMuRG9jdW1lbnRJRCA9ICJjb250ZW50X3NldHRpbmdzIjsNCiAgICB9DQogICAgY3JlYXRlQ2F0ZWdvcnlIZWFkbGluZSh2YWx1ZSkgew0KICAgICAgICB2YXIgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIkg0Iik7DQogICAgICAgIGVsZW1lbnQuaW5uZXJIVE1MID0gdmFsdWU7DQogICAgICAgIHJldHVybiBlbGVtZW50Ow0KICAgIH0NCiAgICBjcmVhdGVIUigpIHsNCiAgICAgICAgdmFyIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJIUiIpOw0KICAgICAgICByZXR1cm4gZWxlbWVudDsNCiAgICB9DQogICAgY3JlYXRlU2V0dGluZ3Moc2V0dGluZ3NLZXkpIHsNCiAgICAgICAgdmFyIHNldHRpbmcgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJUUiIpOw0KICAgICAgICB2YXIgY29udGVudCA9IG5ldyBQb3B1cENvbnRlbnQoKTsNCiAgICAgICAgdmFyIGRhdGEgPSBTRVJWRVJbInNldHRpbmdzIl1bc2V0dGluZ3NLZXldOw0KICAgICAgICBzd2l0Y2ggKHNldHRpbmdzS2V5KSB7DQogICAgICAgICAgICAvLyBUZXh0ZWluZ2FiZW4NCiAgICAgICAgICAgIGNhc2UgInVwZGF0ZSI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy51cGRhdGUudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCAidXBkYXRlIiwgZGF0YS50b1N0cmluZygpKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnNldHRpbmdzLnVwZGF0ZS5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiYmFja3VwLnBhdGgiOg0KICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MuYmFja3VwUGF0aC50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsICJiYWNrdXAucGF0aCIsIGRhdGEpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3suc2V0dGluZ3MuYmFja3VwUGF0aC5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAidGVtcC5wYXRoIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLnRlbXBQYXRoLnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgInRlbXAucGF0aCIsIGRhdGEpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3suc2V0dGluZ3MudG1wUGF0aC5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAidXNlci5hZ2VudCI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy51c2VyQWdlbnQudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCAidXNlci5hZ2VudCIsIGRhdGEpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3suc2V0dGluZ3MudXNlckFnZW50LnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJidWZmZXIudGltZW91dCI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5idWZmZXJUaW1lb3V0LnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgImJ1ZmZlci50aW1lb3V0IiwgZGF0YSk7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5zZXR0aW5ncy5idWZmZXJUaW1lb3V0LnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJmZm1wZWcucGF0aCI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5mZm1wZWdQYXRoLnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgImZmbXBlZy5wYXRoIiwgZGF0YSk7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5zZXR0aW5ncy5mZm1wZWdQYXRoLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJmZm1wZWcub3B0aW9ucyI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5mZm1wZWdPcHRpb25zLnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgImZmbXBlZy5vcHRpb25zIiwgZGF0YSk7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5zZXR0aW5ncy5mZm1wZWdPcHRpb25zLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ2bGMucGF0aCI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy52bGNQYXRoLnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgInZsYy5wYXRoIiwgZGF0YSk7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5zZXR0aW5ncy52bGNQYXRoLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ2bGMub3B0aW9ucyI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy52bGNPcHRpb25zLnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgInZsYy5vcHRpb25zIiwgZGF0YSk7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5zZXR0aW5ncy52bGNPcHRpb25zLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAvLyBDaGVja2JveGVuDQogICAgICAgICAgICBjYXNlICJhdXRoZW50aWNhdGlvbi53ZWIiOg0KICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MuYXV0aGVudGljYXRpb25XRUIudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goc2V0dGluZ3NLZXkpOw0KICAgICAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImF1dGhlbnRpY2F0aW9uLnBtcyI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5hdXRoZW50aWNhdGlvblBNUy50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChzZXR0aW5nc0tleSk7DQogICAgICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGE7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiYXV0aGVudGljYXRpb24ubTN1IjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmF1dGhlbnRpY2F0aW9uTTNVLnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KHNldHRpbmdzS2V5KTsNCiAgICAgICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJhdXRoZW50aWNhdGlvbi54bWwiOg0KICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MuYXV0aGVudGljYXRpb25YTUwudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goc2V0dGluZ3NLZXkpOw0KICAgICAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImF1dGhlbnRpY2F0aW9uLmFwaSI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5hdXRoZW50aWNhdGlvbkFQSS50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChzZXR0aW5nc0tleSk7DQogICAgICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGE7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiZmlsZXMudXBkYXRlIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmZpbGVzVXBkYXRlLnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KHNldHRpbmdzS2V5KTsNCiAgICAgICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJjYWNoZS5pbWFnZXMiOg0KICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MuY2FjaGVJbWFnZXMudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goc2V0dGluZ3NLZXkpOw0KICAgICAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInhlcGcucmVwbGFjZS5taXNzaW5nLmltYWdlcyI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5yZXBsYWNlRW1wdHlJbWFnZXMudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goc2V0dGluZ3NLZXkpOw0KICAgICAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInh0ZXZlQXV0b1VwZGF0ZSI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy54dGV2ZUF1dG9VcGRhdGUudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goc2V0dGluZ3NLZXkpOw0KICAgICAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImFwaSI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5hcGkudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goc2V0dGluZ3NLZXkpOw0KICAgICAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIC8vIFNlbGVjdA0KICAgICAgICAgICAgY2FzZSAidHVuZXIiOg0KICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MudHVuZXIudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciB0ZXh0ID0gbmV3IEFycmF5KCk7DQogICAgICAgICAgICAgICAgdmFyIHZhbHVlcyA9IG5ldyBBcnJheSgpOw0KICAgICAgICAgICAgICAgIGZvciAodmFyIGkgPSAxOyBpIDw9IDEwMDsgaSsrKSB7DQogICAgICAgICAgICAgICAgICAgIHRleHQucHVzaChpKTsNCiAgICAgICAgICAgICAgICAgICAgdmFsdWVzLnB1c2goaSk7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIHZhciBzZWxlY3QgPSBjb250ZW50LmNyZWF0ZVNlbGVjdCh0ZXh0LCB2YWx1ZXMsIGRhdGEsIHNldHRpbmdzS2V5KTsNCiAgICAgICAgICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQoc2VsZWN0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImVwZ1NvdXJjZSI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5lcGdTb3VyY2UudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciB0ZXh0ID0gWyJQTVMiLCAiWEVQRyJdOw0KICAgICAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBbIlBNUyIsICJYRVBHIl07DQogICAgICAgICAgICAgICAgdmFyIHNlbGVjdCA9IGNvbnRlbnQuY3JlYXRlU2VsZWN0KHRleHQsIHZhbHVlcywgZGF0YSwgc2V0dGluZ3NLZXkpOw0KICAgICAgICAgICAgICAgIHNlbGVjdC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChzZWxlY3QpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiYmFja3VwLmtlZXAiOg0KICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MuYmFja3VwS2VlcC50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIHRleHQgPSBbIjUiLCAiMTAiLCAiMjAiLCAiMzAiLCAiNDAiLCAiNTAiXTsNCiAgICAgICAgICAgICAgICB2YXIgdmFsdWVzID0gWyI1IiwgIjEwIiwgIjIwIiwgIjMwIiwgIjQwIiwgIjUwIl07DQogICAgICAgICAgICAgICAgdmFyIHNlbGVjdCA9IGNvbnRlbnQuY3JlYXRlU2VsZWN0KHRleHQsIHZhbHVlcywgZGF0YSwgc2V0dGluZ3NLZXkpOw0KICAgICAgICAgICAgICAgIHNlbGVjdC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChzZWxlY3QpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiYnVmZmVyLnNpemUua2IiOg0KICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MuYnVmZmVyU2l6ZS50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIHRleHQgPSBbIjAuNSBNQiIsICIxIE1CIiwgIjIgTUIiLCAiMyBNQiIsICI0IE1CIiwgIjUgTUIiLCAiNiBNQiIsICI3IE1CIiwgIjggTUIiXTsNCiAgICAgICAgICAgICAgICB2YXIgdmFsdWVzID0gWyI1MTIiLCAiMTAyNCIsICIyMDQ4IiwgIjMwNzIiLCAiNDA5NiIsICI1MTIwIiwgIjYxNDQiLCAiNzE2OCIsICI4MTkyIl07DQogICAgICAgICAgICAgICAgdmFyIHNlbGVjdCA9IGNvbnRlbnQuY3JlYXRlU2VsZWN0KHRleHQsIHZhbHVlcywgZGF0YSwgc2V0dGluZ3NLZXkpOw0KICAgICAgICAgICAgICAgIHNlbGVjdC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChzZWxlY3QpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiYnVmZmVyIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLnN0cmVhbUJ1ZmZlcmluZy50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIHRleHQgPSBbInt7LnNldHRpbmdzLnN0cmVhbUJ1ZmZlcmluZy5pbmZvX2ZhbHNlfX0iLCAieFRlVmU6ICh7ey5zZXR0aW5ncy5zdHJlYW1CdWZmZXJpbmcuaW5mb194dGV2ZX19KSIsICJGRm1wZWc6ICh7ey5zZXR0aW5ncy5zdHJlYW1CdWZmZXJpbmcuaW5mb19mZm1wZWd9fSkiLCAiVkxDOiAoe3suc2V0dGluZ3Muc3RyZWFtQnVmZmVyaW5nLmluZm9fdmxjfX0pIl07DQogICAgICAgICAgICAgICAgdmFyIHZhbHVlcyA9IFsiLSIsICJ4dGV2ZSIsICJmZm1wZWciLCAidmxjIl07DQogICAgICAgICAgICAgICAgdmFyIHNlbGVjdCA9IGNvbnRlbnQuY3JlYXRlU2VsZWN0KHRleHQsIHZhbHVlcywgZGF0YSwgc2V0dGluZ3NLZXkpOw0KICAgICAgICAgICAgICAgIHNlbGVjdC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChzZWxlY3QpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAidWRweHkiOg0KICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MudWRweHkudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCAidWRweHkiLCBkYXRhKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnNldHRpbmdzLnVkcHh5LnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIH0NCiAgICAgICAgcmV0dXJuIHNldHRpbmc7DQogICAgfQ0KICAgIGNyZWF0ZURlc2NyaXB0aW9uKHNldHRpbmdzS2V5KSB7DQogICAgICAgIHZhciBkZXNjcmlwdGlvbiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlRSIik7DQogICAgICAgIHZhciB0ZXh0Ow0KICAgICAgICBzd2l0Y2ggKHNldHRpbmdzS2V5KSB7DQogICAgICAgICAgICBjYXNlICJhdXRoZW50aWNhdGlvbi53ZWIiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MuYXV0aGVudGljYXRpb25XRUIuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJhdXRoZW50aWNhdGlvbi5tM3UiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MuYXV0aGVudGljYXRpb25NM1UuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJhdXRoZW50aWNhdGlvbi5wbXMiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MuYXV0aGVudGljYXRpb25QTVMuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJhdXRoZW50aWNhdGlvbi54bWwiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MuYXV0aGVudGljYXRpb25YTUwuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJhdXRoZW50aWNhdGlvbi5hcGkiOg0KICAgICAgICAgICAgICAgIGlmIChTRVJWRVJbInNldHRpbmdzIl1bImF1dGhlbnRpY2F0aW9uLndlYiJdID09IHRydWUpIHsNCiAgICAgICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5hdXRoZW50aWNhdGlvbkFQSS5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ4dGV2ZUF1dG9VcGRhdGUiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MueHRldmVBdXRvVXBkYXRlLmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiYmFja3VwLmtlZXAiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MuYmFja3VwS2VlcC5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImJhY2t1cC5wYXRoIjoNCiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLmJhY2t1cFBhdGguZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ0ZW1wLnBhdGgiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MudGVtcFBhdGguZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJidWZmZXIiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3Muc3RyZWFtQnVmZmVyaW5nLmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiYnVmZmVyLnNpemUua2IiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MuYnVmZmVyU2l6ZS5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImJ1ZmZlci50aW1lb3V0IjoNCiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLmJ1ZmZlclRpbWVvdXQuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ1c2VyLmFnZW50IjoNCiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLnVzZXJBZ2VudC5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImZmbXBlZy5wYXRoIjoNCiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLmZmbXBlZ1BhdGguZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJmZm1wZWcub3B0aW9ucyI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5mZm1wZWdPcHRpb25zLmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAidmxjLnBhdGgiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MudmxjUGF0aC5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInZsYy5vcHRpb25zIjoNCiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLnZsY09wdGlvbnMuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJlcGdTb3VyY2UiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MuZXBnU291cmNlLmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAidHVuZXIiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MudHVuZXIuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ1cGRhdGUiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MudXBkYXRlLmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiYXBpIjoNCiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLmFwaS5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImZpbGVzLnVwZGF0ZSI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5maWxlc1VwZGF0ZS5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImNhY2hlLmltYWdlcyI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5jYWNoZUltYWdlcy5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInhlcGcucmVwbGFjZS5taXNzaW5nLmltYWdlcyI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5yZXBsYWNlRW1wdHlJbWFnZXMuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ1ZHB4eSI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy51ZHB4eS5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICAgICAgdGV4dCA9ICIiOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICB9DQogICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gIiI7DQogICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgdmFyIHByZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlBSRSIpOw0KICAgICAgICBwcmUuaW5uZXJIVE1MID0gdGV4dDsNCiAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChwcmUpOw0KICAgICAgICBkZXNjcmlwdGlvbi5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICBkZXNjcmlwdGlvbi5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgcmV0dXJuIGRlc2NyaXB0aW9uOw0KICAgIH0NCn0NCmNsYXNzIFNldHRpbmdzQ2F0ZWdvcnlJdGVtIGV4dGVuZHMgU2V0dGluZ3NDYXRlZ29yeSB7DQogICAgY29uc3RydWN0b3IoaGVhZGxpbmUsIHNldHRpbmdzS2V5cykgew0KICAgICAgICBzdXBlcigpOw0KICAgICAgICB0aGlzLmhlYWRsaW5lID0gaGVhZGxpbmU7DQogICAgICAgIHRoaXMuc2V0dGluZ3NLZXlzID0gc2V0dGluZ3NLZXlzOw0KICAgIH0NCiAgICBjcmVhdGVDYXRlZ29yeSgpIHsNCiAgICAgICAgdmFyIGhlYWRsaW5lID0gdGhpcy5jcmVhdGVDYXRlZ29yeUhlYWRsaW5lKHRoaXMuaGVhZGxpbmUpOw0KICAgICAgICB2YXIgc2V0dGluZ3NLZXlzID0gdGhpcy5zZXR0aW5nc0tleXM7DQogICAgICAgIHZhciBkb2MgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCh0aGlzLkRvY3VtZW50SUQpOw0KICAgICAgICBkb2MuYXBwZW5kQ2hpbGQoaGVhZGxpbmUpOw0KICAgICAgICAvLyBUYWJlbGxlIGbDvHIgZGllIEthdGVnb3JpZSBlcnN0ZWxsZW4NCiAgICAgICAgdmFyIHRhYmxlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEFCTEUiKTsNCiAgICAgICAgdmFyIGtleXMgPSBzZXR0aW5nc0tleXMuc3BsaXQoIiwiKTsNCiAgICAgICAga2V5cy5mb3JFYWNoKHNldHRpbmdzS2V5ID0+IHsNCiAgICAgICAgICAgIHN3aXRjaCAoc2V0dGluZ3NLZXkpIHsNCiAgICAgICAgICAgICAgICBjYXNlICJhdXRoZW50aWNhdGlvbi5wbXMiOg0KICAgICAgICAgICAgICAgIGNhc2UgImF1dGhlbnRpY2F0aW9uLm0zdSI6DQogICAgICAgICAgICAgICAgY2FzZSAiYXV0aGVudGljYXRpb24ueG1sIjoNCiAgICAgICAgICAgICAgICBjYXNlICJhdXRoZW50aWNhdGlvbi5hcGkiOg0KICAgICAgICAgICAgICAgICAgICBpZiAoU0VSVkVSWyJzZXR0aW5ncyJdWyJhdXRoZW50aWNhdGlvbi53ZWIiXSA9PSBmYWxzZSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBkZWZhdWx0Og0KICAgICAgICAgICAgICAgICAgICB2YXIgaXRlbSA9IHRoaXMuY3JlYXRlU2V0dGluZ3Moc2V0dGluZ3NLZXkpOw0KICAgICAgICAgICAgICAgICAgICB2YXIgZGVzY3JpcHRpb24gPSB0aGlzLmNyZWF0ZURlc2NyaXB0aW9uKHNldHRpbmdzS2V5KTsNCiAgICAgICAgICAgICAgICAgICAgdGFibGUuYXBwZW5kQ2hpbGQoaXRlbSk7DQogICAgICAgICAgICAgICAgICAgIHRhYmxlLmFwcGVuZENoaWxkKGRlc2NyaXB0aW9uKTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICB9DQogICAgICAgIH0pOw0KICAgICAgICBkb2MuYXBwZW5kQ2hpbGQodGFibGUpOw0KICAgICAgICBkb2MuYXBwZW5kQ2hpbGQodGhpcy5jcmVhdGVIUigpKTsNCiAgICB9DQp9DQpmdW5jdGlvbiBzaG93U2V0dGluZ3MoKSB7DQogICAgY29uc29sZS5sb2coIlNFVFRJTkdTIik7DQogICAgZm9yIChsZXQgaSA9IDA7IGkgPCBzZXR0aW5nc0NhdGVnb3J5Lmxlbmd0aDsgaSsrKSB7DQogICAgICAgIHNldHRpbmdzQ2F0ZWdvcnlbaV0uY3JlYXRlQ2F0ZWdvcnkoKTsNCiAgICB9DQp9DQpmdW5jdGlvbiBzYXZlU2V0dGluZ3MoKSB7DQogICAgY29uc29sZS5sb2coIlNhdmUgU2V0dGluZ3MiKTsNCiAgICB2YXIgY21kID0gInNhdmVTZXR0aW5ncyI7DQogICAgdmFyIGRpdiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb250ZW50X3NldHRpbmdzIik7DQogICAgdmFyIHNldHRpbmdzID0gZGl2LmdldEVsZW1lbnRzQnlDbGFzc05hbWUoImNoYW5nZWQiKTsNCiAgICB2YXIgbmV3U2V0dGluZ3MgPSBuZXcgT2JqZWN0KCk7DQogICAgZm9yIChsZXQgaSA9IDA7IGkgPCBzZXR0aW5ncy5sZW5ndGg7IGkrKykgew0KICAgICAgICB2YXIgbmFtZTsNCiAgICAgICAgdmFyIHZhbHVlOw0KICAgICAgICBzd2l0Y2ggKHNldHRpbmdzW2ldLnRhZ05hbWUpIHsNCiAgICAgICAgICAgIGNhc2UgIklOUFVUIjoNCiAgICAgICAgICAgICAgICBzd2l0Y2ggKHNldHRpbmdzW2ldLnR5cGUpIHsNCiAgICAgICAgICAgICAgICAgICAgY2FzZSAiY2hlY2tib3giOg0KICAgICAgICAgICAgICAgICAgICAgICAgbmFtZSA9IHNldHRpbmdzW2ldLm5hbWU7DQogICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IHNldHRpbmdzW2ldLmNoZWNrZWQ7DQogICAgICAgICAgICAgICAgICAgICAgICBuZXdTZXR0aW5nc1tuYW1lXSA9IHZhbHVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgICAgIGNhc2UgInRleHQiOg0KICAgICAgICAgICAgICAgICAgICAgICAgbmFtZSA9IHNldHRpbmdzW2ldLm5hbWU7DQogICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IHNldHRpbmdzW2ldLnZhbHVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgc3dpdGNoIChuYW1lKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAidXBkYXRlIjoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSB2YWx1ZS5zcGxpdCgiLCIpOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IHZhbHVlLmZpbHRlcihmdW5jdGlvbiAoZSkgeyByZXR1cm4gZTsgfSk7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgImJ1ZmZlci50aW1lb3V0IjoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSBwYXJzZUZsb2F0KHZhbHVlKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgIG5ld1NldHRpbmdzW25hbWVdID0gdmFsdWU7DQogICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJTRUxFQ1QiOg0KICAgICAgICAgICAgICAgIG5hbWUgPSBzZXR0aW5nc1tpXS5uYW1lOw0KICAgICAgICAgICAgICAgIHZhbHVlID0gc2V0dGluZ3NbaV0udmFsdWU7DQogICAgICAgICAgICAgICAgLy8gV2VubiBkZXIgV2VydCBlaW5lIFphaGwgaXN0LCB3aXJkIGRpZXNlciBhbHMgWmFobCBnZXNwZWljaGVydA0KICAgICAgICAgICAgICAgIGlmIChpc05hTih2YWx1ZSkpIHsNCiAgICAgICAgICAgICAgICAgICAgbmV3U2V0dGluZ3NbbmFtZV0gPSB2YWx1ZTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgZWxzZSB7DQogICAgICAgICAgICAgICAgICAgIG5ld1NldHRpbmdzW25hbWVdID0gcGFyc2VJbnQodmFsdWUpOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgfQ0KICAgIH0NCiAgICB2YXIgZGF0YSA9IG5ldyBPYmplY3QoKTsNCiAgICBkYXRhWyJzZXR0aW5ncyJdID0gbmV3U2V0dGluZ3M7DQogICAgdmFyIHNlcnZlciA9IG5ldyBTZXJ2ZXIoY21kKTsNCiAgICBzZXJ2ZXIucmVxdWVzdChkYXRhKTsNCn0NCg==" - webUI["html/img/logo_w_600x200.png"] = "iVBORw0KGgoAAAANSUhEUgAAAlgAAADICAYAAAA0n5+2AAAAAXNSR0IArs4c6QAAAAlwSFlzAAAuIwAALiMBeKU/dgAABCZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IlhNUCBDb3JlIDUuNC4wIj4KICAgPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIgogICAgICAgICAgICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgICAgICAgICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyI+CiAgICAgICAgIDx0aWZmOlJlc29sdXRpb25Vbml0PjI8L3RpZmY6UmVzb2x1dGlvblVuaXQ+CiAgICAgICAgIDx0aWZmOkNvbXByZXNzaW9uPjU8L3RpZmY6Q29tcHJlc3Npb24+CiAgICAgICAgIDx0aWZmOlhSZXNvbHV0aW9uPjMwMDwvdGlmZjpYUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6T3JpZW50YXRpb24+MTwvdGlmZjpPcmllbnRhdGlvbj4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+MzAwPC90aWZmOllSZXNvbHV0aW9uPgogICAgICAgICA8ZXhpZjpQaXhlbFhEaW1lbnNpb24+NjAwPC9leGlmOlBpeGVsWERpbWVuc2lvbj4KICAgICAgICAgPGV4aWY6Q29sb3JTcGFjZT4xPC9leGlmOkNvbG9yU3BhY2U+CiAgICAgICAgIDxleGlmOlBpeGVsWURpbWVuc2lvbj4yMDA8L2V4aWY6UGl4ZWxZRGltZW5zaW9uPgogICAg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" - webUI["html/img/m3u.png"] = "iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAAAXNSR0IArs4c6QAAAAlwSFlzAAAsSwAALEsBpT2WqQAABCRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IlhNUCBDb3JlIDUuNC4wIj4KICAgPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIgogICAgICAgICAgICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgICAgICAgICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyI+CiAgICAgICAgIDx0aWZmOlJlc29sdXRpb25Vbml0PjI8L3RpZmY6UmVzb2x1dGlvblVuaXQ+CiAgICAgICAgIDx0aWZmOkNvbXByZXNzaW9uPjU8L3RpZmY6Q29tcHJlc3Npb24+CiAgICAgICAgIDx0aWZmOlhSZXNvbHV0aW9uPjI4ODwvdGlmZjpYUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6T3JpZW50YXRpb24+MTwvdGlmZjpPcmllbnRhdGlvbj4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+Mjg4PC90aWZmOllSZXNvbHV0aW9uPgogICAgICAgICA8ZXhpZjpQaXhlbFhEaW1lbnNpb24+NTA8L2V4aWY6UGl4ZWxYRGltZW5zaW9uPgogICAgICAgICA8ZXhpZjpDb2xvclNwYWNlPjE8L2V4aWY6Q29sb3JTcGFjZT4KICAgICAgICAgPGV4aWY6UGl4ZWxZRGltZW5zaW9uPjUwPC9leGlmOlBpeGVsWURpbWVuc2lvbj4KICAgICAgICAgPGRjOnN1YmplY3Q+CiAgICAgICAgICAgIDxyZGY6QmFnLz4KICAgICAgICAgPC9kYzpzdWJqZWN0PgogICAgICAgICA8eG1wOk1vZGlmeURhdGU+MjAxOC0wNy0yOFQxOTowNzozMTwveG1wOk1vZGlmeURhdGU+CiAgICAgICAgIDx4bXA6Q3JlYXRvclRvb2w+UGl4ZWxtYXRvciAzLjM8L3htcDpDcmVhdG9yVG9vbD4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgIDwvcmRmOlJERj4KPC94OnhtcG1ldGE+CumjVbcAAAGWSURBVGgF7VoxTgJRFGTFaGKBFnbEcABjb0fiBego7D2ABYmn8ARKRWFNQ6gx4QRQGWJJoY2VhXGdl7Dkh7Dsx3ns3yXvJ5P97L6d92bmhwYqlcWK43gK5L2enP51NP8F7pN721wPnOITZx9qG6HxI8QIZO+9XCHeL+VQKKm8QMyxb6+iCpH528AQYs58xIQWknV8mhDxCjEXWWJCC8maT55fAmOIudpUXAYhMn8dGEHMTZqYsgiR+U+BAcTcrhNTJiEy/xHQg5jOqpjD1RsBP3+id8u3P8TUoij6SuoLIwRDfWOofjLYtteyHa1UfcvvcUT1jqpGauVuHnyAdragjv/TAkley3uhj9Y5ZhDQa2+Olgmhz4IygSWibChNZ4nQFioTWCLKhtJ0lghtoTKBJaJsKE1nidAWKhNYIsqG0nSWCG2hMoElomwoTWeJ0BYqE1giyobSdJYIbaEygSWibChNZ4nQFioTWCLKhtJ0biJzmi1/guXMrpDn/OegO3bXMuAH0TtgAvwARV3y57Q34AGoJkL+AErKZ9cqbH7AAAAAAElFTkSuQmCC" - webUI["html/index.html"] = "PCFkb2N0eXBlIGh0bWw+DQo8aHRtbD4NCiAgPGhlYWQ+DQogICAgPG1ldGEgY2hhcnNldD0idXRmLTgiPg0KICAgIDwhLS0tDQogICAgPG1ldGEgbmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9IndpZHRoPWRldmljZS13aWR0aCwgaW5pdGlhbC1zY2FsZT0xLjAiIC8+IA0KICAgIC0tPg0KICAgIDx0aXRsZT54VGVWZTwvdGl0bGU+DQogICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJjc3Mvc2NyZWVuLmNzcyIgdHlwZT0idGV4dC9jc3MiPg0KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iY3NzL2Jhc2UuY3NzIiB0eXBlPSJ0ZXh0L2NzcyI+DQoNCiAgICA8c2NyaXB0IGxhbmd1YWdlPSJqYXZhc2NyaXB0IiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ianMvbmV0d29ya190cy5qcyI+PC9zY3JpcHQ+DQogICAgPHNjcmlwdCBsYW5ndWFnZT0iamF2YXNjcmlwdCIgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9ImpzL21lbnVfdHMuanMiPjwvc2NyaXB0Pg0KICAgIDxzY3JpcHQgbGFuZ3VhZ2U9ImphdmFzY3JpcHQiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJqcy9zZXR0aW5nc190cy5qcyI+PC9zY3JpcHQ+DQogICAgPHNjcmlwdCBsYW5ndWFnZT0iamF2YXNjcmlwdCIgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9ImpzL2xvZ3NfdHMuanMiPjwvc2NyaXB0Pg0KICAgIDxzY3JpcHQgbGFuZ3VhZ2U9ImphdmFzY3JpcHQiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJqcy9iYXNlX3RzLmpzIj48L3NjcmlwdD4NCg0KICA8L2hlYWQ+DQoNCiAgICA8Ym9keSBvbmxvYWQ9ImphdmFzY3JpcHQ6IFBhZ2VSZWFkeSgpOyI+DQoNCiAgICAgIDxkaXYgaWQ9ImxvYWRpbmciIGNsYXNzPSJub25lIj4NCiAgICAgICAgPGRpdiBjbGFzcz0ibG9hZGVyIj48L2Rpdj4NCiAgICAgIDwvZGl2Pg0KDQogICAgICA8ZGl2IGlkPSJwb3B1cCIgY2xhc3M9Im5vbmUiPg0KICAgICAgICA8ZGl2IGlkPSJwb3B1cC1jdXN0b20iPjwvZGl2Pg0KICAgICAgPC9kaXY+DQoNCiAgICAgIDxkaXYgaWQ9ImxheW91dCI+DQoNCiAgICAgICAgPCEtLQ0KICAgICAgICA8ZGl2IGlkPSJub3RpZmljYXRpb24iPg0KICAgICAgICAgIDxkaXYgY2xhc3M9ImVsZW1lbnQiPg0KICAgICAgICAgICAgPGg1PlhFUEc8L2g1Pg0KICAgICAgICAgICAgPHByZT4xMS4wNS4yMDE5IC0gMjA6MjE8L3ByZT4NCiAgICAgICAgICAgIDxocj4NCiAgICAgICAgICAgIDxwPkhhbGxvIGRhcyBpc3QgZWluIFRlc3QuIFVuZCBub2NoIG1laHIgVGV4dC48L3A+DQogICAgICAgICAgPC9kaXY+DQogICAgICAgIDwvZGl2Pg0KICAgICAgLS0+DQoNCiAgICAgICAgPGRpdiBpZD0ibWVudS13cmFwcGVyIiBjbGFzcz0ibGF5b3V0LWxlZnQiPg0KICAgICAgICAgIDxkaXYgaWQ9ICJicmFuY2giPjwvZGl2Pg0KICAgICAgICAgIDxkaXYgaWQ9ImxvZ28iPjwvZGl2Pg0KICAgICAgICAgIDxuYXYgaWQ9Im1haW4tbWVudSI+PC9uYXY+DQogICAgICAgIDwvZGl2Pg0KDQogICAgICAgIDxkaXYgY2xhc3M9ImxheW91dC1yaWdodCI+DQoNCiAgICAgICAgICA8dGFibGUgaWQ9ImNsaWVudEluZm8iIGNsYXNzPSIiPg0KDQogICAgICAgICAgICA8dHI+DQogICAgICAgICAgICAgIDx0ZCBjbGFzcz0idGRLZXkiPnhUZVZlOjwvdGQ+DQogICAgICAgICAgICAgIDx0ZCBpZD0idmVyc2lvbiIgY2xhc3M9InRkVmFsIj4mbmJzcDs8L3RkPg0KICAgICAgICAgICAgICA8dGQgY2xhc3M9InRkS2V5Ij5PUzo8L3RkPg0KICAgICAgICAgICAgICA8dGQgaWQ9Im9zIiBjbGFzcz0idGRWYWwiPiZuYnNwOzwvdGQ+DQogICAgICAgICAgICAgIDx0ZCBjbGFzcz0idGRLZXkgcGhvbmUiPkRWUiBJUDo8L3RkPg0KICAgICAgICAgICAgICA8dGQgaWQ9IkRWUiIgY2xhc3M9InRkVmFsIHBob25lIj4mbmJzcDs8L3RkPg0KICAgICAgICAgICAgPC90cj4NCg0KICAgICAgICAgICAgPHRyPg0KICAgICAgICAgICAgICA8dGQgY2xhc3M9InRkS2V5Ij5VVUlEOjwvdGQ+DQogICAgICAgICAgICAgIDx0ZCBpZD0idXVpZCIgY2xhc3M9InRkVmFsIj4mbmJzcDs8L3RkPg0KICAgICAgICAgICAgICA8dGQgY2xhc3M9InRkS2V5Ij5BcmNoOjwvdGQ+DQogICAgICAgICAgICAgIDx0ZCBpZD0iYXJjaCIgY2xhc3M9InRkVmFsIj4mbmJzcDs8L3RkPg0KICAgICAgICAgICAgICA8dGQgY2xhc3M9InRkS2V5IHBob25lIj5NM1UgVVJMOjwvdGQ+DQogICAgICAgICAgICAgIDx0ZCBpZD0ibTN1LXVybCIgY2xhc3M9InRkVmFsIHBob25lIj4mbmJzcDs8L3RkPg0KICAgICAgICAgICAgPC90cj4NCg0KICAgICAgICAgICAgPHRyPg0KICAgICAgICAgICAgICA8dGQgY2xhc3M9InRkS2V5Ij5BdmFpbGFibGUgU3RyZWFtczo8L3RkPg0KICAgICAgICAgICAgICA8dGQgaWQ9InN0cmVhbXMiIGNsYXNzPSJ0ZFZhbCI+Jm5ic3A7PC90ZD4NCiAgICAgICAgICAgICAgPHRkIGNsYXNzPSJ0ZEtleSI+RVBHIFNvdXJjZTo8L3RkPg0KICAgICAgICAgICAgICA8dGQgaWQ9ImVwZ1NvdXJjZSIgY2xhc3M9InRkVmFsIj4mbmJzcDs8L3RkPg0KICAgICAgICAgICAgICA8dGQgY2xhc3M9InRkS2V5IHBob25lIj5YRVBHIFVSTDo8L3RkPg0KICAgICAgICAgICAgICA8dGQgaWQ9InhlcGctdXJsIiBjbGFzcz0idGRWYWwgcGhvbmUiPiZuYnNwOzwvdGQ+DQogICAgICAgICAgICA8L3RyPg0KDQogICAgICAgICAgICA8dHI+DQogICAgICAgICAgICAgIDx0ZCBjbGFzcz0idGRLZXkiPlhFUEcgQ2hhbm5lbHM6PC90ZD4NCiAgICAgICAgICAgICAgPHRkIGlkPSJ4ZXBnIiBjbGFzcz0idGRWYWwiPiZuYnNwOzwvdGQ+DQogICAgICAgICAgICAgIDx0ZCBjbGFzcz0idGRLZXkiPkVycm9yczo8L3RkPg0KICAgICAgICAgICAgICA8dGQgaWQ9ImVycm9ycyIgY2xhc3M9InRkVmFsIj4mbmJzcDs8L3RkPg0KICAgICAgICAgICAgICA8dGQgY2xhc3M9InRkS2V5Ij5XYXJuaW5nczo8L3RkPg0KICAgICAgICAgICAgICA8dGQgaWQ9Indhcm5pbmdzIiBjbGFzcz0idGRWYWwiPiZuYnNwOzwvdGQ+DQogICAgICAgICAgICA8L3RyPg0KDQogICAgICAgICAgPC90YWJsZT4NCiAgICAgICAgIA0KICAgICAgICAgIDxkaXYgaWQ9Im15U3RyZWFtc0JveCIgY2xhc3M9Im5vdFZpc2libGUiPg0KDQogICAgICAgICAgICA8ZGl2IGlkPSJhbGxTdHJlYW1zIj4NCiAgICAgICAgICAgICAgPHRhYmxlIGlkPSJhY3RpdmVTdHJlYW1zIj48L3RhYmxlPg0KICAgICAgICAgICAgICA8dGFibGUgaWQ9ImluYWN0aXZlU3RyZWFtcyI+PC90YWJsZT4NCiAgICAgICAgICAgIDwvZGl2Pg0KDQogICAgICAgICAgPC9kaXY+DQogICAgICAgICAgDQogICAgICAgICAgPGRpdiBpZD0iY29udGVudCIgY2xhc3M9IiI+PC9kaXY+DQogICAgICAgICAgICANCiAgICAgICAgPC9kaXY+DQoNCiAgICAgIDwvZGl2Pg0KICAgICAgDQogICAgPC9ib2R5Pg0KICAgIA0KPC9odG1sPg==" - webUI["html/js/classes_ts.js"] = "dmFyIF9fZXh0ZW5kcyA9ICh0aGlzICYmIHRoaXMuX19leHRlbmRzKSB8fCAoZnVuY3Rpb24gKCkgew0KICAgIHZhciBleHRlbmRTdGF0aWNzID0gZnVuY3Rpb24gKGQsIGIpIHsNCiAgICAgICAgZXh0ZW5kU3RhdGljcyA9IE9iamVjdC5zZXRQcm90b3R5cGVPZiB8fA0KICAgICAgICAgICAgKHsgX19wcm90b19fOiBbXSB9IGluc3RhbmNlb2YgQXJyYXkgJiYgZnVuY3Rpb24gKGQsIGIpIHsgZC5fX3Byb3RvX18gPSBiOyB9KSB8fA0KICAgICAgICAgICAgZnVuY3Rpb24gKGQsIGIpIHsgZm9yICh2YXIgcCBpbiBiKSBpZiAoYi5oYXNPd25Qcm9wZXJ0eShwKSkgZFtwXSA9IGJbcF07IH07DQogICAgICAgIHJldHVybiBleHRlbmRTdGF0aWNzKGQsIGIpOw0KICAgIH07DQogICAgcmV0dXJuIGZ1bmN0aW9uIChkLCBiKSB7DQogICAgICAgIGV4dGVuZFN0YXRpY3MoZCwgYik7DQogICAgICAgIGZ1bmN0aW9uIF9fKCkgeyB0aGlzLmNvbnN0cnVjdG9yID0gZDsgfQ0KICAgICAgICBkLnByb3RvdHlwZSA9IGIgPT09IG51bGwgPyBPYmplY3QuY3JlYXRlKGIpIDogKF9fLnByb3RvdHlwZSA9IGIucHJvdG90eXBlLCBuZXcgX18oKSk7DQogICAgfTsNCn0pKCk7DQp2YXIgTWFpbk1lbnUgPSAvKiogQGNsYXNzICovIChmdW5jdGlvbiAoKSB7DQogICAgZnVuY3Rpb24gTWFpbk1lbnUoKSB7DQogICAgICAgIHRoaXMuRG9jdW1lbnRJRCA9ICJtYWluLW1lbnUiOw0KICAgICAgICB0aGlzLkhUTUxUYWcgPSAiTEkiOw0KICAgIH0NCiAgICBNYWluTWVudS5wcm90b3R5cGUuY3JlYXRlID0gZnVuY3Rpb24gKCkgew0KICAgICAgICBjb25zb2xlLmxvZyh0aGlzLkRvY3VtZW50SUQpOw0KICAgIH07DQogICAgcmV0dXJuIE1haW5NZW51Ow0KfSgpKTsNCnZhciBNYWluTWVudUl0ZW0gPSAvKiogQGNsYXNzICovIChmdW5jdGlvbiAoX3N1cGVyKSB7DQogICAgX19leHRlbmRzKE1haW5NZW51SXRlbSwgX3N1cGVyKTsNCiAgICBmdW5jdGlvbiBNYWluTWVudUl0ZW0oKSB7DQogICAgICAgIHJldHVybiBfc3VwZXIgIT09IG51bGwgJiYgX3N1cGVyLmFwcGx5KHRoaXMsIGFyZ3VtZW50cykgfHwgdGhpczsNCiAgICB9DQogICAgTWFpbk1lbnVJdGVtLnByb3RvdHlwZS5jcmVhdGUyID0gZnVuY3Rpb24gKCkgew0KICAgICAgICB2YXIgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQodGhpcy5IVE1MVGFnKTsNCiAgICAgICAgZWxlbWVudC5pbm5lclRleHQgPSB0aGlzLlZhbHVlOw0KICAgICAgICBjb25zb2xlLmxvZyhlbGVtZW50KTsNCiAgICB9Ow0KICAgIHJldHVybiBNYWluTWVudUl0ZW07DQp9KE1haW5NZW51KSk7DQpmdW5jdGlvbiBwYWdlUmVhZHkoKSB7DQogICAgdmFyIGl0ZW0gPSBuZXcgTWFpbk1lbnVJdGVtKCk7DQogICAgaXRlbS5WYWx1ZSA9ICJUZXN0IjsNCiAgICBpdGVtLmNyZWF0ZTIoKTsNCn0NCg==" + webUI["html/login.html"] = "PCFkb2N0eXBlIGh0bWw+DQo8aHRtbD4NCiAgPGhlYWQ+DQogICAgPG1ldGEgY2hhcnNldD0idXRmLTgiPg0KICAgIDxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgsIGluaXRpYWwtc2NhbGU9MS4wIiAvPiANCiAgICA8dGl0bGU+eFRlVmU8L3RpdGxlPg0KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iY3NzL3NjcmVlbi5jc3MiIHR5cGU9InRleHQvY3NzIj4NCiAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9ImNzcy9iYXNlLmNzcyIgdHlwZT0idGV4dC9jc3MiPg0KICAgIDxzY3JpcHQgbGFuZ3VhZ2U9ImphdmFzY3JpcHQiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJqcy9uZXR3b3JrX3RzLmpzIj48L3NjcmlwdD4NCiAgICA8c2NyaXB0IGxhbmd1YWdlPSJqYXZhc2NyaXB0IiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ianMvYXV0aGVudGljYXRpb25fdHMuanMiPjwvc2NyaXB0Pg0KICA8L2hlYWQ+DQoNCiAgICA8Ym9keT4NCiAgICAgICAgICANCiAgICAgIDxkaXYgaWQ9ImhlYWRlciIgY2xhc3M9ImltZ0NlbnRlciI+PC9kaXY+DQoNCiAgICAgIDxkaXYgaWQ9ImJveCI+DQoNCiAgICAgICAgPGRpdiBpZD0iaGVhZGxpbmUiPg0KICAgICAgICAgIDxoMSBpZD0iaGVhZC10ZXh0IiBjbGFzcz0iY2VudGVyIj57ey5sb2dpbi5oZWFkbGluZX19PC9oMT4NCiAgICAgICAgPC9kaXY+DQoNCiAgICAgICAgPHAgaWQ9ImVyciIgY2xhc3M9ImVycm9yTXNnIGNlbnRlciI+e3suYXV0aGVudGljYXRpb25FcnJ9fTwvcD4NCg0KICAgICAgICA8ZGl2IGlkPSJjb250ZW50Ij4NCg0KICAgICAgICAgICAgPGZvcm0gaWQ9ImF1dGhlbnRpY2F0aW9uIiBhY3Rpb249IiIgbWV0aG9kPSJwb3N0Ij4NCg0KICAgICAgICAgICAgICA8aDU+e3subG9naW4udXNlcm5hbWUudGl0bGV9fTo8L2g1Pg0KICAgICAgICAgICAgICA8aW5wdXQgaWQ9InVzZXJuYW1lIiB0eXBlPSJ0ZXh0IiBuYW1lPSJ1c2VybmFtZSIgcGxhY2Vob2xkZXI9IlVzZXJuYW1lIiB2YWx1ZT0iIj4NCiAgICAgICAgICAgICAgPGg1Pnt7LmxvZ2luLnBhc3N3b3JkLnRpdGxlfX06PC9oNT4NCiAgICAgICAgICAgICAgPGlucHV0IGlkPSJwYXNzd29yZCIgdHlwZT0icGFzc3dvcmQiIG5hbWU9InBhc3N3b3JkIiBwbGFjZWhvbGRlcj0iUGFzc3dvcmQiIHZhbHVlPSIiPg0KDQogICAgICAgICAgICA8L2Zvcm0+DQoNCiAgICAgICAgPC9kaXY+DQoNCiAgICAgICAgPGRpdiBpZD0iYm94LWZvb3RlciI+DQogICAgICAgICAgPGlucHV0IGlkPSJzdWJtaXQiIGNsYXNzPSIiIHR5cGU9ImJ1dHRvbiIgdmFsdWU9Int7LmJ1dHRvbi5sb2dpbn19IiBvbmNsaWNrPSJqYXZhc2NyaXB0OiBsb2dpbigpOyI+DQogICAgICAgIDwvZGl2Pg0KICAgICAgICANCiAgICAgIDwvZGl2Pg0KDQogICAgPC9ib2R5Pg0KICAgIA0KPC9odG1sPg==" webUI["html/maintenance.html"] = "PCFkb2N0eXBlIGh0bWw+DQo8aHRtbD4NCiAgPGhlYWQ+DQogICAgPG1ldGEgY2hhcnNldD0idXRmLTgiPg0KICAgIDxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgsIGluaXRpYWwtc2NhbGU9MS4wIiAvPiANCiAgICA8dGl0bGU+eFRlVmU8L3RpdGxlPg0KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iY3NzL3NjcmVlbi5jc3MiIHR5cGU9InRleHQvY3NzIj4NCiAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9ImNzcy9iYXNlLmNzcyIgdHlwZT0idGV4dC9jc3MiPg0KICA8L2hlYWQ+DQoNCiAgICA8Ym9keT4NCiAgICAgICAgICANCiAgICAgIDxkaXYgaWQ9ImhlYWRlciIgY2xhc3M9ImltZ0NlbnRlciI+PC9kaXY+DQoNCiAgICAgIDxkaXYgaWQ9ImJveCI+DQoNCiAgICAgICAgPGRpdiBpZD0iaGVhZGxpbmUiPg0KICAgICAgICAgIDxoMSBpZD0iaGVhZC10ZXh0IiBjbGFzcz0iY2VudGVyIj5NYWludGVuYW5jZTwvaDE+ICAgICAgDQogICAgICAgIDwvZGl2PiAgDQoNCiAgICAgICAgPGRpdiBpZD0iY29udGVudCI+DQogICAgICAgICAgeFRlVmUgaXMgdXBkYXRpbmcgdGhlIGRhdGFiYXNlLCBwbGVhc2UgdHJ5IGFnYWluIGxhdGVyLg0KICAgICAgICA8L2Rpdj4NCg0KICAgICAgICA8ZGl2IGlkPSJib3gtZm9vdGVyIj48L2Rpdj4NCiAgICAgICAgDQogICAgICA8L2Rpdj4NCg0KICAgIDwvYm9keT4NCjwvaHRtbD4=" + webUI["html/img/BC-QR.jpg"] = "/9j/4AAQSkZJRgABAQAASABIAAD/4QBYRXhpZgAATU0AKgAAAAgAAgESAAMAAAABAAEAAIdpAAQAAAABAAAAJgAAAAAAA6ABAAMAAAABAAEAAKACAAQAAAABAAAAuqADAAQAAAABAAAAugAAAAD/7QA4UGhvdG9zaG9wIDMuMAA4QklNBAQAAAAAAAA4QklNBCUAAAAAABDUHYzZjwCyBOmACZjs+EJ+/8AAEQgAugC6AwERAAIRAQMRAf/EAB8AAAEFAQEBAQEBAAAAAAAAAAABAgMEBQYHCAkKC//EALUQAAIBAwMCBAMFBQQEAAABfQECAwAEEQUSITFBBhNRYQcicRQygZGhCCNCscEVUtHwJDNicoIJChYXGBkaJSYnKCkqNDU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6g4SFhoeIiYqSk5SVlpeYmZqio6Slpqeoqaqys7S1tre4ubrCw8TFxsfIycrS09TV1tfY2drh4uPk5ebn6Onq8fLz9PX29/j5+v/EAB8BAAMBAQEBAQEBAQEAAAAAAAABAgMEBQYHCAkKC//EALURAAIBAgQEAwQHBQQEAAECdwABAgMRBAUhMQYSQVEHYXETIjKBCBRCkaGxwQkjM1LwFWJy0QoWJDThJfEXGBkaJicoKSo1Njc4OTpDREVGR0hJSlNUVVZXWFlaY2RlZmdoaWpzdHV2d3h5eoKDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uLj5OXm5+jp6vLz9PX29/j5+v/bAEMAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAf/bAEMBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAf/dAAQAGP/aAAwDAQACEQMRAD8A/v4oAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgD/0P7+KAP5/wD/AILmf8FzP+HL/wDwy8B+y9/w0mP2k/8AhdmB/wALsPwe/wCEL/4U8fhLn5j8Jfih/b//AAkH/C0fTRP7F/sL/mIjUQtkAfgH/wARzn/WLz/zdb/8k2gA/wCI5z/rF5/5ut/+SbQAf8Rzn/WLz/zdb/8AJNoAP+I5z/rF5/5ut/8Akm0Af08/8EWP+CrP/D4H9lrx9+0uPgMf2ef+EI+Pvin4GjwSPiofi1/aX/CN/Dn4W+Pj4n/4SH/hXXww+xm8PxOGkf2J/Yl19k/sU3/9sv8A2h9isAD3/wD4KiftzH/gmz+wt8cv21B8Lv8Ahc4+C5+Ghb4a/wDCbD4cf8JJ/wALG+MPgD4TjHjFfB/jwaSdJPjv/hISD4X1L7f/AGadNLWH24ahaAHwH/wQz/4Lmf8AD6D/AIahB/Ze/wCGbB+zZ/wpPI/4XYfjD/wmn/C4T8WsfMPhL8L/AOwP+Ef/AOFXemt/21/bv/MOGnFb0A/oAoAKAP5Af+Cov/B1h/w7Z/bq+OX7FZ/YOHxpPwWHwyP/AAsr/hqA/Dk+Iz8Rvg94B+LH/Inf8M7ePf7J/sr/AITv/hHcjxPqAvTp/wDaObEX32GyAPgH/iOc/wCsXn/m63/5JtAH9PP/AARY/wCCrP8Aw+B/Za8fftLj4DH9nn/hCPj74p+Bo8Ej4qH4tf2l/wAI38Ofhb4+Pif/AISH/hXXww+xm8PxOGkf2J/Yl19k/sU3/wDbL/2h9isAD3//AIKiftzH/gmz+wt8cv21B8Lv+Fzj4Ln4aFvhr/wmw+HH/CSf8LG+MPgD4TjHjFfB/jwaSdJPjv8A4SEg+F9S+3/2adNLWH24ahaAH8g//Ec5/wBYvP8Azdb/APJNoA/r7/4bm/41af8ADy3/AIVf/wA2B/8ADc3/AApb/hNTt/5N1/4X/wD8Kv8A+Fj/APCH4zj/AIpH/hOP+EEx/wAx7/hE8/8AEjoA/kE/4jnP+sXn/m63/wCSbQAf8Rzn/WLz/wA3W/8AyTaAD/iOc/6xef8Am63/AOSbQAf8Rzn/AFi8/wDN1v8A8k2gD7+/4Jdf8HWH/Dyb9ur4G/sVj9g4fBY/GkfE0/8ACyv+GoD8Rj4cPw5+D3j74sf8id/wzt4C/tb+1f8AhBP+EdyfE+niyOof2jm+Fj9hvQD+v6gAoA//0f7+KAP4A/8Ag+c/5xef93rf++lUAfv3/wAE9v8Agnx/wS0/4da/sP8Ax0+Of7D/AOwE279gL9mr4s/GL4x/Fn9mn9nb5f8AjHbwZ4w+IHxI+JPxB8YeC1AAA1fxN4x8Y+JtXJ/4/wDXNdv2zeXtAC/8csn/AFgD/wDOd1AB/wAcsn/WAP8A853UAfjF/wAHcn7Ef7GP7Nv/AATc+Cnjn9nX9kb9l74A+NtU/bd+HHhPVPGPwX+APwp+FfinU/C158CP2ldX1DwxfeIPA3g/Q9Vu9Bu9V0PQ9XutGurttOvNR0TTb5rU3lhYlQD6h/4Mqv8AlFj8e/8As/74p/8ArO37K1AH8of/AAWp/wCHzv8Aw0H/AMFGf+Fwf8PPP+HfH/DX3xy/sf8A4WX/AMNXf8Mcf8Ks/wCGltU/4Ub/AGf/AMJR/wAWS/4QH+0v+EB/4VV9n/4kP2//AIRH/hEv9M/sOgD9Pf8Agzc/aw/Za/Zg/wCHjQ/aX/aU+AX7Pf8AwnH/AAx+fBP/AAvL4yfDn4Snxd/wjK/tP/8ACQ/8IuPH/iXQRr39g/2/4dXWxo7Xv9jHXNG+3G1/tCydgD8Zf23P+Cmn/BSHx7/wUi/a68D/ALKf/BQT9t3xl4K8Zftu/H7wn+zd4N/Z6/at+PHiLwt4t8LeI/jx4o0f4PeGPgf4f+G/ju80rXdC13Sbvw5pXw20jwJZ3enalYXmhWHhSyezewRwDd/46m/+s/n/AJ0RoA/u3/4I1f8ABPj4W/HH/gm5+zf8Uf8Agp3+xB8PvjB+3J4n/wCFv/8AC7/iL+3p+zX4d+IP7VviI6N8d/ihoHw3X4reLv2hfBmq/GLVRpXwe0vwHofgX/hML+6+wfDjT/CGn6AI/CtjoaUAf5V/wV/Z++Pf7SXirUPAv7OfwO+L/wAf/G2l+HrzxXqng74L/DXxl8U/FWneFrO/0vSL/wAU3/h/wNouu6raaFZ6tr+jaTdaxd2f9n2eoa1pli12t5f2SsAf6eX/AAaN/s+fH39m3/gm98avA37RXwP+LvwA8bar+298RvFel+DfjT8NvGXwr8Vap4Vu/gP+zVo9j4nsfD/jnRNC1W70G91XQ9a0q11m2szp13qOi6jYpeC8sL1VAP248WftA/8ABN/9qbxX4k/Yk8c/HL9iH9ovxtrXiDV/CfjL9kTxZ8SvgP8AF7xXrPir4Tahc+KfEPhjxP8AALWNb8QarqOv/DfVvA194m1jRtV8Itf+C9Q8I3euX1lp15oD3lgAY/8Aw6e/4JZ/9I1P2Av/ABDr9nb/AOdvQBzP/BTTwn4X8B/8EjP+CgngTwN4a0LwX4I8Gf8ABOX9q7wl4O8HeE9H07w14V8K+FfDf7M/jzRfDvhjwx4f0a0tdK0Lw9oel2tnpGi6NpNnZ2FhYWVnY2NnFZRolAH+eX/waN/s+fAL9pL/AIKRfGrwN+0V8D/hF8fvBOlfsQ/EXxXpfg340/Dbwb8VPCul+KrT48fs1aPY+J7Hw/450TXdJtNes9K1zWtKtdZtrMajZ6drWo2KXhs7+9VgD+5b4o/Cf/g2++B/jnXPhb8avht/wRE+EPxN8LjTR4n+HfxR8IfsIeAPHfhsa1pGm+IdF/t7wj4q03SvEGk/2poGq6PrWlC/sLQXuj6lp2o2O+yvrN2AOC/45ZP+sAf/AJzuoA+nPgr+xF/wQ5/aT8K6h46/Zz/ZH/4JSfH/AME6X4gvfCepeMfgv8A/2Qfin4V0zxVZ6fpOr33he+8Q+BvCGvaVZ69aaVruj6vd6PdXYv7Sw1vTL6SzFnfWTMAfwm/8EqvCfhPwB/wd6eIfA3gbw34f8F+CfBf7b3/BUbwn4O8HeEtGsPDvhXwp4W8OfDj9r3SfD/hjwzoGj21ppWgaFoOlWdnpGkaNpNnZ2Gn6daWdhY2UVmqKoB/qLUAFAH//0v7+KAP4A/8Ag+c/5xef93rf++lUAfv5/wA6sn/eAP8A+B3UAf5A9ABQB/p+f8Hqv/KLH4Cf9n/fCz/1nb9qmgA/4Mqv+UWPx7/7P++Kf/rO37K1AH5Bf8F9P+Dj4ftEfDz/AIKDf8Elj+xt/wAIePD3x/1f4F/8L/P7Q518Xn/DL/7U+g6z/wAJSfhUPghof2b/AITo/CT7J/Y3/CxpP+EX/t8v/bXiAabsvwD8gP8Aghn/AMEM/wDh9B/w1CT+1D/wzYf2bP8AhSfP/Ckx8Yf+E0/4XCPizj5R8Wfhf/YH/CPj4Xeut/21/bv/ADDjpxa/APA/2TvgYP2X/wDgvh+zT+zSPFX/AAnA/Z4/4K+fBz4Gf8Jt/Yn/AAjf/CXn4S/tneH/AAAPFH/COnU9e/sA6/8A2AdX/sca5rv9jm8Ww/trUDF9tlAP9nSgD+QH/gqL/wAHWH/Dtn9ur45fsVn9g4fGk/BYfDI/8LK/4agPw5PiM/Eb4PeAfix/yJ3/AAzt49/sn+yv+E7/AOEdyPE+oC9On/2jmxF99hsgD+Ij/gix/wAFWf8Ahz9+1L4+/aXHwG/4aG/4Tf4BeKfgaPBI+Kg+Ev8AZv8AwknxG+Fvj4+J/wDhIf8AhXXxP+2fYx8MRpH9if2Ja/a/7aN//bKf2f8AYr8A/p5/4jnP+sXn/m63/wCSbQAf8MNf8O8v+OtP/haH/C4P+Fgf8Zy/8MA/8IV/wr/+x/8Ah57/AMUd/wAKv/4ap/4S3xp9r/4Ul/w1n/a3/Ccf8M22X/Cx/wDhXn2L/hFPAf8Awln23w8AH/Ec5/1i8/8AN1v/AMk2gD+nj9rH45n9qD/ggf8AtLftLHwr/wAIOf2h/wDgkH8Y/jmPBP8Abf8Awkh8ID4tfsZeIPH58L/8JGNM0H+3/wCwP7fGkf2w2h6F/bAs2vzouniUWUQB/ET/AMGVP/KUz49/9mA/FT/1on9lSgD4A/4Oj/8AlOt+3J9P2Zv/AFj39n6gD8AKAP8AT8/4Mqv+UWPx7/7P++Kf/rO37K1AH4A/8E1P+VyT4i/9n/f8FYv/AFB/2yaAP9PqgAoA/9P+/igD+AP/AIPnP+cXn/d63/vpVAH7+f8AOrJ/3gD/APgd1AH+QPQAUAf6fn/B6r/yix+An/Z/3ws/9Z2/apoAP+DKr/lFj8e/+z/vin/6zt+ytQB+nXxY/wCDcj/gjN8cPit8SfjT8Uf2OB4n+Jvxf8f+Mvij8RfEg/aC/ap0f/hIfHfxA8Q6l4v8X6+dG8PfG7S/D2l/2p4g1W/v/wCytH0rTdFsPtf2LTtOs7BbSzQA/nF/4Ll/8c2P/DL3/DlX/jDD/hs7/hdf/DSu7/jIn/hZP/DOv/Cpf+FN/wDJ2H/C+P8AhDv+EN/4Xt8VMf8ACBf8Ip/b/wDwlX/FV/27/YXh7+wwD9AP+HXX7Cv/AA61/wCH1P8Awo0f8PM/+GAv+Hof/DS3/CzfjBj/AIbp/wCGd/8Ahq//AIXn/wAKf/4WF/woDH/DQP8AxXv/AArX/hVn/Cntv/FJ/wDCAf8ACC/8U9QB8ff8Gwv/AAWV/wCCkf8AwUQ/b5+LfwX/AGxP2jz8YPhl4Z/ZD8efFHQPDf8Awp74D+ADY+O9G+M/7P8A4Q03Xv7Y+Fvwu8F6/c/ZfD/jXxLZnSrvVbrQ5DqH22809r+w0+9sgD+cP/g6P/5TrftyfT9mb/1j39n6gD9v/wDg56/4I1f8E3P+Cd/7A3wk+NH7Hf7OA+D/AMTfE37XngP4Xa/4k/4XD8ePH4vvAms/Bj9oDxfqWg/2P8Uvij400C2+1eIPBXhq8Gq2mlWuuRjT/sVnqC2F/qFlegB/wbC/8Eav+Cbn/BRD9gb4t/Gj9sT9nAfGD4m+Gf2vPHnwu0DxJ/wuH48eABY+BNG+DH7P/i/TdB/sf4W/FHwXoFz9l8QeNfEt4dVu9KutckGofYrzUGsLDT7KyAP7dfiT+wZ+yl8YP2ONM/4J/fEb4UHxD+yPo/gD4TfC+w+Ew8d/EbSVt/AnwOvvBuo/C/Qv+E90PxjpnxOn/wCEXu/AfhG4XVbnxlJrOtnRseIL7UlvtRF+Af55X/B1h/wS6/YU/wCCbX/DB3/DFXwNHwW/4XQP2oT8Ss/E34wfEb/hJP8AhXX/AAzr/wAIcD/wtj4h+OxpJ0f/AIT3xZk+HRpx1D+0f+JkL37BY/YgD+vr/nVk/wC8Af8A8DuoA/kF/wCDKn/lKZ8e/wDswH4qf+tE/sqUAfAH/B0f/wAp1v25Pp+zN/6x7+z9QB+AFAH+n5/wZVf8osfj3/2f98U//Wdv2VqAPwB/4Jqf8rknxF/7P+/4Kxf+oP8Atk0Af6fVABQB/9T+/igD+AP/AIPnP+cXn/d63/vpVAHsH7Ef/B3J/wAE3f2bv2MP2Rv2dfHHwV/be1Txr8Af2XvgD8FvGWp+FPhz8B7vwrqfin4V/Crwp4G8QX/he+1j9pTQ9VvNBu9V0O8utGutV0XRdRu9Paze+06xvWawQA+oP+I1X/glj/0QX9v7/wANX+zt/wDRVUAH/Ear/wAEsf8Aogv7f3/hq/2dv/oqqAPwh/4OEf8Ag4S/Yx/4KzfsY/DP9nX9nT4Z/tOeCvGngz9p3wX8atV1T41+C/hR4a8LT+FvDXwn+Nfgi+0/Tr7wN8bPiNqtx4gk1X4j6LdWdnc6NZWDWNpqTPqSXaWdnfgH7vf8GVX/ACix+Pf/AGf98U//AFnb9lagD8Af+Can/K5J8Rf+z/v+CsX/AKg/7ZNAH39/wfOf84vP+71v/fSqAP6mP2IvjV4V/Zs/4IdfskftF+OrDxDqvgn4Af8ABKP4B/GjxjpnhOz0+88Uan4V+Ff7IXhTx14gsfC9hrOqaFpN5rt5pOhXlro1pq+saJYXd+1nHf6np9mTfIAeAf8ABML/AIOFf2Mf+Csnx88Xfs7fs6fDH9p/wZ418G/CLXPjPqeqfGfwV8KvDvhifwt4d8ZeAfA19Y2N74G+NfxH1SfXDqvxH0a7trW60ay0/wDs+01J21Jb2Oysr8A8h/bz/wCDnv8AYI/4J4ftYfFf9jz41fCL9r7xL8Tvg+PA/wDwkeu/C/wF8GNY8C3o8f8Aw28IfFLRhoGo+Lf2gPA3iC6FtoHjLSbPVPt3hqwC61a39nZ/bbJbK/uwD8Bv2K/2K/in/wAGnXxS1z/gon/wUS174ffGX4K/GfwDqn7FXhnwx+xZqviH4jfFSw+KXxH1/wAL/HHRtf1/R/jp4W/Zv8HWngC08L/s5eN7HV9WsvG+s6/aa/qHhWxtPCl9p19rOt6GAf2Mf8Ewv+CnnwE/4KxfAbxf+0V+zp4R+Lvg7wR4M+LmufBjU9M+NGh+DPDviq48V+HfBvgLxxqF7Y2Hgb4g/EbSZtBbSviNolraXV1rVlqH9o2epo2mLZR2N7dgH8E//BNT/lck+Iv/AGf9/wAFYv8A1B/2yaAPv7/g+c/5xef93rf++lUAfv5/zqyf94A//gd1AH+fV/wb1f8ABT34Bf8ABJ79s34nftF/tF+E/i94x8FeMf2YPG3wX0rTPgxoXgzxD4pi8U+I/ir8FPHNjqGoWPjr4hfDnS4NCXSvhzq9rdXVprN5qA1C90yNNNlsmvb2wAP7Gf8AiNV/4JY/9EF/b+/8NX+zt/8ARVUAH/Ear/wSx/6IL+39/wCGr/Z2/wDoqqAD/iNV/wCCWP8A0QX9v7/w1f7O3/0VVAH80f8AwRR+NfhX9pT/AIOoPC/7RfgWw17SvBPx8/af/wCCifxr8HaV4stNOsfFeneFfip8Ev2qfG2gaf4msNH1PX9KtdftNK16zttZtdJ1vW9Osr5L0WF/qFiiXrAH+qxQAUAf/9X+/igD8ff+CrH/AARY/Zb/AOCwH/Chv+GlvHnx98D/APDPB+KY8E/8KN8VfDrw1/aQ+LR+HY8Rf8JP/wAJ/wDCX4nm7Nl/wrLw8dFOkf2J9j+2619v/tASWQsgD8hf+IKr/glj/wBF6/b+/wDDqfs7f/Qq0AH/ABBVf8Esf+i9ft/f+HU/Z2/+hVoAP+IKr/glj/0Xr9v7/wAOp+zt/wDQq0AH/EFV/wAEsf8AovX7f3/h1P2dv/oVaAP3a/4Jhf8ABMP4Cf8ABJ34DeL/ANnX9nTxd8XfGPgjxn8XNc+M+p6n8aNc8GeIvFVv4r8ReDfAXgfULKxv/A3w++HOkw6CulfDnRLq0tbrRb3UP7RvNTdtTayksbK0APj74H/8G937GPwB/wCClmt/8FTPBvxN/ad1L9oPXvi/+0H8abvwd4j8Z/Ci7+DkXir9pPSPibo/jjT7fQNM+CuieNU0DS7b4o+Im8J2x+Ib6hY3VloR1vU9dWzvk1AA9h/4Ksf8EWP2W/8AgsB/wob/AIaW8efH3wP/AMM8H4pjwT/wo3xV8OvDX9pD4tH4djxF/wAJP/wn/wAJfiebs2X/AArLw8dFOkf2J9j+2619v/tASWQsgDe/bd+CvhX9mz/gh1+1v+zp4Fv/ABDqvgn4Af8ABKP4+fBfwdqfiy80+88Uan4V+Ff7IXivwL4fvvFF/o2l6FpN5rt5pOhWd1rN3pGj6JYXd+15JYaZp9mRYoAfw0/8GVP/AClM+Pf/AGYD8VP/AFon9lSgD+rn9vP/AINhP2CP+Ch/7WHxX/bD+NXxd/a+8NfE74wDwP8A8JHoXwv8e/BjR/AtkPAHw28IfC3RjoGneLf2f/HPiC1FzoHg3SbzVPt3iW/Da1dX95Z/YrJrKwtAD+Cv/gp7/wAHCv7Z3/BWT4B+Ef2dv2i/hj+zB4M8FeDfi7ofxn0zVPgx4K+Kvh3xPP4p8O+DfH3gaxsb698c/Gv4j6XPoZ0r4j6zd3Nra6NZah/aFpprrqS2Ud7ZX4B/Yz/wZVf8osfj3/2f98U//Wdv2VqAP0Z+B/8Awb3fsY/AH/gpZrf/AAVM8G/E39p3Uv2g9e+L/wC0H8abvwd4j8Z/Ci7+DkXir9pPSPibo/jjT7fQNM+CuieNU0DS7b4o+Im8J2x+Ib6hY3VloR1vU9dWzvk1AA/nm/4PnP8AnF5/3et/76VQB/Ux+xF8FfCv7Sf/AAQ6/ZI/Z08dX/iHSvBPx/8A+CUfwD+C/jHU/Cd5p9n4o0zwr8VP2QvCngXxBfeF7/WdL13SbPXbPSddvLrRrvV9H1uwtL9bOS/0zULMGxcA/Gf/AIgqv+CWP/Rev2/v/Dqfs7f/AEKtAB/xBVf8Esf+i9ft/f8Ah1P2dv8A6FWgA/4gqv8Aglj/ANF6/b+/8Op+zt/9CrQAf8QVX/BLH/ovX7f3/h1P2dv/AKFWgD67/YM/4NhP2CP+CeH7WHwo/bD+Cvxd/a+8S/E74Pjxx/wjmhfFDx78GNY8C3o8f/Dbxf8AC3WTr+neEv2f/A3iC6FtoHjLVrzS/sPiWwC61a2F5efbbJb2wuwD+kGgAoA//9b+/igD+IL/AIPIv2sP2pf2YP8Ah3KP2aP2lPj7+z2fHB/bA/4Tb/hRvxk+I3wkHi7/AIRlv2YP+Ed/4Sj/AIQDxLoP9vf2D/b3iJdE/tg3v9jDXNZ+w/Zf7QvWYA/jJ+FP/BQ7/gsL8cfin8Nfgp8Lv+Chn7fvif4n/F34geD/AIX/AA68ND9tj43aN/wknjv4g+IdM8I+ENB/trxB8V9J0LShq2u6tZWf9ra3rOn6LYm8+16jfWNmt1eoAfXn7c2t/wDBxp/wTX/4Ve37av7XH7fnwWb40Hxufhp/xsS8UfEf/hI/+Fcf8IefGH/JJ/2iPHY0kaT/AMJ34TX/AIqFtO/tAaj/AMS3+0BY6ibIA/P/AP4ex/8ABUz/AKSWft//APiYv7RP/wA8igD/AFFf+DhH4Hf8FK/j9+xn8MfB3/BLLW/i/oX7QemftPeDPEnjG8+C37QWkfs2+Kpfg3a/Cn41aV4gttR8c6z8SfhbbanoB8aa58O2ufCS+Ir27vr9dM1oaJdLoLX1gAf51n7avxs/4L9f8E8PinoXwW/bG/bU/b9+EPxM8TeANK+J+h+GR+3/APEDx/8AbPAus+IPFPhHT9fGsfC347eNNAtzda94L8S2f9lXur2utp/Zwvr3T1sL2xu70A+gPiV4J/4Ob/g/+xzpv/BQD4i/tN/t/eHP2RtZ8AfCf4n6f8Wm/wCCk2o6v5/gX443/g+x+Fuv/wDCBeH/ANpbVPibbjxRd+PfCFodLuvBya3ov9s7tf0/TEsdQayAPPf2Gdb/AODjT/gpR/wtBv2Kv2uP2/PjS3wXPgg/Ev8A42JeKPhx/wAI5/wsf/hMD4P/AOSsftEeBBqw1b/hBPFi/wDFPNqP9njTv+Jl/Z4vtON6Af6SXi34EftQeP8A/ghx4j/Zk8daZ4g8aftneM/+CUus/Anxlo3iz4gaB4k8U+LP2nvEf7IV18PvEGmeJ/ihrPie68L67r2vfFa6u7TWvH2reM7zQtR1G8vPEV74qbTnfWWAP5p/+DYX/gjV/wAFI/8Agnf+3z8W/jR+2J+zgfg/8MvE37Ifjz4XaB4k/wCFw/Afx+b7x3rPxn/Z/wDF+m6D/Y/wt+KPjTX7b7V4f8FeJbw6rd6Va6HGdP8AsV5qC39/p9legH5Cf8HG/wDwUI/b3+B//BZj9sn4X/Bb9uH9r74P/DPwx/wz5/wjXw6+F37Svxn+H/gTw+NZ/ZY+COv6x/wj/hDwj400rQNKOqa/qmr6zq32GxtPt+t6jqGpXxa9vbt6APyD/bU/4I1f8FJP+Cd3wt0L40/th/s4f8Kf+GPiXx9pvwv0LxI3xf8AgN8Qje+Oda8PeKPFumaD/Y/ww+KPjbX7b7RoHgvxHfnVrrSLPRY/7P8AsV1fJfX2nWV6AfMfwW/bZ/bO/Zq8LXvgb9nX9rv9p74B+CdW1668Xap4N+Cfx9+K/wALPCuo+Kb3TtM0bUPE2oeHvA/i7QdKuvEF3pWhaHpV7rN1aPqF3YaLp1g121pp9kigH+zT/wAEy/Fvivx9/wAE3v8Agn3468deJfEHjPxr4z/Yh/ZR8XeMvGXi7WtQ8R+KvFfinxF8B/AWr6/4n8T6/q91eatr+ua/q15eavrGsare3eoajqF3eX19ePeOzOAfx1f8Hzn/ADi8/wC71v8A30qgD+cX/gk9/wAFB/2+f+G+P+CavwL/AOG3/wBrz/hSf/DXv7HPwo/4U5/w0r8Zx8LR8LP+Fz/Dnwh/wrf/AIV9/wAJn/wh/wDwgf8Awiv/ABTP/CHf2P8A2D/YP/Ej/s/7AfsdAH9y/wDwdyftB/H39m3/AIJvfBXxz+zr8cPi78APG2q/tvfDnwpqnjL4LfEnxl8K/FWqeFbv4D/tK6xfeGL7xB4G1vQtVu9BvdV0PRdVutGubw6dd6jounXz2YvLCyZQD5g/4I1f8HH3/BPP4Pf8E3P2bvh1/wAFAf29fiBq/wC114eHxf8A+Fs6j8T/AIf/ALWvxy8dzrrPx2+KHiDwCdf+KFh8LfHtr4oNv8MtU8HWulfZfGGsjRNGXT9Ac2T6Y+n2AB4B/wAEav2IP+Dlb4Pf8FJP2b/iN/wUC8Z/te6t+yP4fPxe/wCFtWHxP/4KDeFfjj4GuDrHwI+KGgeAF1/4Yaf+0v49uvFIt/ibqXg270n7J4R1n+xNb/s/XyNPTTG1GwAPmH/g7k/bc/bO/Zt/4KR/BTwN+zr+1z+1D8AfBOqfsRfDjxZqng74L/H74rfCvwtqfim8+O/7Sukah4nvvD/gbxhoelXevXelaHoekXWs3Vo2o3mnaJpti10bOwsQoB/Rx/wSD/4LifsC/tN/CT9gz9jq0/ay8QfFf9u3Xv2X/hX4b+IPhfxZ8Of2ibvxT4k+Mvww/Z6svFHxxuPE3xe8a/DeDwZ4h8QWtz4O8eazq/i688e6haeK7+xvbzT9d1y/1Sy/tIA/ojoAKAP/1/7+KAP4A/8Ag+c/5xef93rf++lUAfxFfsofHRf2X/2o/wBmn9pU+Fv+E4/4Z4+PvwY+Of8AwhP9u/8ACNjxg3wl+Ivh/wAfnwv/AG+NK18+Hzr/APYH9kf20dF1saP9ta/Oi6jsFkwB+vP/AAXM/wCC5n/D6D/hl4D9l7/hmw/s2f8AC7OP+F2D4w/8Jp/wuEfCbPzH4TfC/wDsD/hHx8LvTW/7a/t3/mHHTgt+Aff/APwS7/4NTx/wUm/YV+Bv7ag/by/4UuPjQfiaP+Faj9mD/hYo8Nj4dfGHx/8ACb/kcP8AhonwH/ax1X/hBP8AhIsf8I1YfYv7RGm/6d9h/tC9AP7dv+C0/wDwVZ/4c/fsteAf2lz8Bj+0N/wm/wAffC3wNPgk/FQ/CX+zf+Ek+HPxS8fDxP8A8JD/AMK6+J/2w2Z+GJ0j+xP7Etftf9tC/wD7ZT+z/sV+Af5hv/Baf/gqz/w+B/al8A/tLn4Df8M8/wDCEfALwt8DT4JPxUHxa/tL/hG/iN8UvHw8T/8ACQ/8K6+GH2P7YPicdI/sT+xLr7J/Yov/AO2X/tD7FYAH39+0p/wcfD9of/gjh4a/4JKn9jb/AIRAeHvgF+yf8C/+F/n9of8At77Z/wAMv698G9Z/4Sn/AIVSPgjoP2YeOf8AhUv2X+xT8R3/AOEXGvbv7c8Qf2aUvwD9e/8Agxj/AOcof/dlP/v2tAH0B+1f/wAHkf8AwzB+1L+0t+zX/wAO5j45/wCGd/j98ZPgX/wmo/a+PhoeMP8AhUvxG8QeAf8AhJz4f/4Zg1/+wT4g/sD+1/7G/tvXDov2wWH9tajtN64B8/8A/Ec5/wBYvP8Azdb/APJNoA/kJ/4Ki/tzD/gpN+3V8cf21R8Lj8GD8aB8NC3w2PjZviP/AMI1/wAK5+D/AIB+E4/4rFfB/gP+1v7XHgT/AISIg+F9O/s86h/ZxOofYRf3YB+vf/Baj/g4+/4fAfss+Av2av8AhjUfs8/8IP8AH3wt8cx41/4aIHxaOqf8I38Ovij4C/4Rj/hHh8EPhitm10fif/bH9sjW7w2f9if2edEf7d9vsgA/4Ir/APBuD/w+A/ZZ8e/tK/8ADZQ/Z5/4Qf4++KfgYfBX/DO4+LR1T/hG/h18LvHv/CT/APCQn43/AAxWza6PxP8A7H/sY6JeGz/sT+0Brb/bvsFkAf08/wDBLv8A4LlnR/26fgf/AMG/w/ZgFz/wyz/wsz9hr/hrI/GryP8AhOv+GBfhB4+8M/8ACzz8B/8AhU7jwv8A8LY/4UL9s/4QYfGPX/8AhBz4t+yf8Jb4uGhG814A+/v+C5n/AAQz/wCH0H/DLxH7UP8AwzYP2bP+F2YP/Ckz8Yf+E0/4XCfhLn5T8Wvhf/YH/CP/APCrvXW/7a/t3/mHDTg16Af5xf7J3wMH7L//AAXw/Zp/ZpHir/hOB+zx/wAFfPg58DP+E2/sT/hG/wDhLz8Jf2zvD/gAeKP+EdOp69/YB1/+wDq/9jjXNd/sc3i2H9tagYvtsoB/bx/weq/8osfgJ/2f98LP/Wdv2qaAP8wOgD+/z/iOc/6xef8Am63/AOSbQAf8MN/8RgX/ABss/wCFo/8ADvH/AIUj/wAYNf8AClv+EJ/4az/4Sn/hWf8Axf7/AIWh/wALG/4S/wDZq/sT+3P+Gmf+ER/4Qf8A4QPW/wCzv+EH/t3/AISu/wD+Eg/sXQAD7+/4Jdf8Gp//AA7Z/bq+Bv7ag/bxHxpPwWHxNH/Ctf8Ahl8/Dk+Iz8Rvg94++E//ACOP/DRPj3+yf7K/4Tv/AISLB8MagL06f/Z2LEX326yAP6/qACgD/9D+/igD+IL/AIPIv2T/ANqX9p//AIdyn9mj9mv4+/tCHwOf2wP+E2/4Ub8G/iN8Wx4R/wCEmb9mD/hHf+Eo/wCEA8Na9/YP9vf2D4ibRP7YFl/bI0PWfsP2r+z71VAP4a/Fv/BMv/gpD4B8KeJfHXjv/gn3+294M8FeDPD+teLvGXjLxd+yj8ePDvhbwp4V8Oafdav4g8T+J9f1fwBZ6ToGh6BpNpeatrGr6teWmn6dp9neX19epZq7oAfDFAH+vz/wa4f8oKf2G/r+0z/62F+0DQB+nX7an/DAn/CrtD/4eK/8Mg/8KT/4WBpP/CM/8Nq/8KZ/4VX/AMLT/wCEe8V/2L/wj/8AwvL/AIpT/hPv+EU/4Tr+yvsP/FQf2B/wlf2H/iXf2zQB/nV/8HCP7EfhT9pX9s/4ZeOf+CMH7JGgfHz9lzS/2YvBXhLx54x/4Jg/APTfin8A9O+Plj8VfjbrHinw14u1/wDZR8I658O7X4wWfw7134V6t4i0bWLxfG9p4J1vwHfahY/2FqHh53APvv8A4KFeEv8AgkZ4D/4N0rDwJ4X8Of8ABOTwX/wU78GfswfsJeE/iN4N0LRf2ZvDf7eHhT4++GvHv7OWjftLeGPG+gafbWf7QGhfGHQDafErSPjdo2t2dn43sDaeO7Lx5ar5WvIgB/JR+wz/AMPTP+Lof8O0v+G/f+ZK/wCF0/8ADDP/AA0V1x4w/wCFcf8AC0P+FA89f+E8/wCEG/4S7v8A8Jb/AGD8v9tUAdH+xH4T8VePP+Cuf7I3gb9q3w1r3jTxv40/4KN/ALwn+0l4O/aG0fUPEninxT4p8RftM+FNH+L/AIY+N/h/4j29zquu+Ide1S68R6P8StF8eWN7fX9/e63Y+K7R7yS/RgD/AFbvjV+xF/wQ5/Zs8K6f46/aM/ZH/wCCUnwA8E6p4gsvCem+MfjR8A/2QfhZ4V1PxVeafq2r2Phex8Q+OfCGg6Vea9d6VoWsavaaPa3Zv7uw0TU76OzNnY3rKAf5dv8AwXo/4ZY/4ew/tV/8MVf8KB/4Zn/4sb/wrT/hl3/hXf8AwojH/DN3we/4TH/hB/8AhU//ABQWP+E+/wCEt/4ST/hHuf8AhLv7d/tH/idf2lQB+cnwV/Z++Pf7SXirUPAv7OfwO+L/AMf/ABtpfh688V6p4O+C/wANfGXxT8Vad4Ws7/S9Iv8AxTf+H/A2i67qtpoVnq2v6NpN1rF3Z/2fZ6hrWmWLXa3l/ZKwB/p5f8Gjf7Pnx9/Zt/4JvfGrwN+0V8D/AIu/ADxtqv7b3xG8V6X4N+NPw28ZfCvxVqnhW7+A/wCzVo9j4nsfD/jnRNC1W70G91XQ9a0q11m2szp13qOi6jYpeC8sL1VAP4iv+Cmn7Pv/AAUh/Za/4KQf8FBf22vBHwN/be/Z08FaL+29+1f4t8Hftd+FPhr8dvhD4V0fwv8AFn48ePPC3h/xN4Y+PujaHoGk6boXxI0rxzZeGdI1nSvFq2HjTT/F1rodjeahZ+IEs78A8f8AgX+1h/wXx/agHik/s0ftL/8ABXr9of8A4QYaIfG3/CjPjH+2b8Wh4QPiT+1v+Ee/4Sf/AIQDxJrx0Ftf/sHWzorasLP+2W0PWvsH2r+zr7YAf6Gf/Dvb4Xf8OYv+F6f8MQ/D/wD4ejf8Owv+Fs/8Lj/4Zr8O/wDDfX/DfP8Awyf/AMJb/wALH/4WB/whX/DQn/DXn/DQn/FUf8Jh/a//AAub/hcv/E9/tD/hOv8ATaAPwk/4N7v2e/8AgpD+0r+2d8TfAv8AwWf+B37b/wAfP2XdK/Zh8Z+LPAng7/gp98Nfjt8U/gJpvx9sfit8E9H8L+JvCOgftXaHrvw6tPjBa/DvXfinpPh3WdItF8a2vgnWvHun6feroWoeIY5QD+x3/h09/wAEs/8ApGp+wF/4h1+zt/8AO3oA/wA0f/gjV/wT4+KXwO/4KR/s3/FH/gp3+xB8Qfg/+w34Y/4W/wD8Lv8AiL+3p+zX4i+H37KXh0az8CPihoHw3X4reLv2hfBmlfB3Sjqvxh1TwHofgX/hML+1+3/EfUPCGn6AJPFV9oaUAfp7/wAFqP8AhqX/AIak8Bf8Q6v/AAvz/hiX/hQXhb/hZ/8Aw5Y/4WN/wyx/w1P/AMLG+KP/AAm3/Cff8MMf8Wm/4aB/4VP/AMKS/wCEm/4SL/i4v/Cuf+FUf2j/AMU9/wAIjQB/dr/wT3/4Wl/wwL+xB/wvT/hYP/C7P+GQ/wBmv/hcX/C2f+Eh/wCFpf8AC1P+FMeDP+Fg/wDCx/8AhMP+Kq/4Tz/hK/7Y/wCEw/4Sb/ioP+Eg/tD+3P8AiYfbaAPsWgAoA//R/v4oAKAP4wf+CsP/AAc+/sEf8Kr/AOClf/BOo/Cb9rw/Gz/hAf2xv2KT4oHgD4Lj4WH4pDw98Rvgede/tn/hoH/hMB4CPir/AE3+2f8AhBf7fGg/6afCLaiP7HoA/jH/AOCU/wDwRY/ak/4LAf8AC+f+GafHnwC8D/8ADPH/AAqweNv+F5eKviL4a/tI/FofEQeHf+EY/wCEA+EvxPF2LL/hWXiE60dX/sT7H9t0X7B/aBkvRZAH9fH7Lv8AwWn/AGXP+DeD4F+Bv+CO/wC2p4C+PvxN/aX/AGQT4k/4WX44/Zc8LfDjxp8CtcHx+8Ya7+1B4O/4QfxR8V/ix8EvHuqf2d4B+NnhPSPEo8Q/DHwqbHxZY69p+nHXdDstP8Qa0Afs3/wcK/8ABML4+/8ABWH9jL4Yfs6fs6eLfhD4O8a+Dv2n/BPxo1XU/jPrvjPw94Vl8LeHPhV8a/A19p+n33gX4ffEbVJ9dfVPiNo91bWt3o1np50+y1KR9SjvVsrK9AD/AIN6v+CYXx9/4JPfsZfE/wDZ0/aL8W/CHxj418Y/tP8Ajb40aVqfwY13xn4h8KxeFvEfwq+Cngax0/UL7x18PvhzqkGupqnw51i6ubW00a808afe6bImpSXrXtlZAH8ZX/Bc/wD4N7/2zfgHr/8AwUO/4KneM/ib+zDqX7Puv/tPfEP41Wng7w340+Kt38ZIvC37Sn7TyaP4G0648P6r8FdD8GDXtMufin4ebxbbr8RGsLC1stdOjajrzWlgl+AeP/8ABuD/AMFqP2Wf+CQH/DZQ/aU8A/H3xuf2hv8Ahnf/AIQv/hRvhb4c+Jv7N/4VJ/wvT/hIR4mHj74r/C77Gbz/AIWb4fGjf2R/bgvPsetf2gdP2WJvwD79/wCHLP7U3/DUn/ERX/wn3wB/4Yl/4X9/w+n/AOFYf8JR8RP+GqP+GWf+Fj/8Nzf8IF/whX/CqP8AhU//AA0B/wAKm/4p3/hGf+F3f8K6/wCFh/8AEl/4Wv8A8It/xVdAHkH/AAcI/wDBwl+xj/wVm/Yx+Gf7Ov7Onwz/AGnPBXjTwZ+074L+NWq6p8a/Bfwo8NeFp/C3hr4T/GvwRfafp194G+NnxG1W48QSar8R9FurOzudGsrBrG01Jn1JLtLOzvwD4i/YM/4NhP29/wDgof8Asn/Cj9sP4K/F39kHw18MfjAfHH/COaF8UPHvxn0fx1ZHwB8SfF/wt1k6/p3hL9n/AMc+H7U3Ov8Ag3VrzS/sPiW/LaLdWF5efYr1r2wtADyH/g3q/wCCnvwC/wCCT37ZvxO/aL/aL8J/F7xj4K8Y/sweNvgvpWmfBjQvBniHxTF4p8R/FX4KeObHUNQsfHXxC+HOlwaEulfDnV7W6urTWbzUBqF7pkaabLZNe3tgAf2M/wDEar/wSx/6IL+39/4av9nb/wCiqoA+ff2ov+C0/wCy5/wcP/Avxz/wR3/Yr8BfH34ZftL/ALXx8N/8K08cftR+Fvhx4L+BWhj4A+MNC/ag8Y/8Jx4o+FHxY+Nvj3S/7R8A/BPxZpHhoeHvhj4qN94svtB0/UToWh3uoeINFAPAf2G/+OP7/haP/Dyv/i93/Dw3/hCP+FMf8MNf8XM/4Rf/AIZL/wCEv/4WR/ws/wD4X9/wzJ/YX9uf8NK+BP8AhBf+ER/4Tj+0f7G8Wf29/wAI/wD2fon9vAH6Af8AEar/AMEsf+iC/t/f+Gr/AGdv/oqqAD/iNV/4JY/9EF/b+/8ADV/s7f8A0VVAB/xGq/8ABLH/AKIL+39/4av9nb/6KqgD8wP+Cy//AAc9fsD/APBRD/gm5+0f+x38FvhJ+154X+JvxgX4Qf8ACN6/8UfAfwY0bwJZDwB8dvhb8U9YGval4R/aA8c+ILX7ToPg3VrLSvsXhq+Da3dadZ3v2Gxa91G0AP0//wCDKr/lFj8e/wDs/wC+Kf8A6zt+ytQB+jPwP/4OEf2Mfj9/wUs1v/gln4N+GX7Tum/tB6D8X/2g/gtd+MfEfgz4UWnwcl8Vfs2aR8TdY8cahb6/pnxq1vxq+gapbfC7xEvhO5Pw8TUL66vdCGt6ZoS3l8+ngH7x0AFAH//S/v4oAKAP8cr4r/CzwL8cP+DkH4k/Bb4o6D/wlPwy+MH/AAW88Y/Cz4i+HP7T1bRf+Ej8B/ED9vDUfCHi7QTrHh7U9M1/SjqugapfWP8Aa2i6pputWBvBfafqNnfraXagH+pj+wz/AMEvP2FP+CbB+J//AAxV8Df+FLj40/8ACEf8LKH/AAs34v8AxGPiM/Dn/hMG8HAj4sfELx4dJOkjx14tH/FPHTvt/wDaWdTF8bHTTZAH+YV/wdH/APKdb9uT6fszf+se/s/UAf3cf8HPf7eP7V//AATw/YI+Efxq/Y7+Kw+EHxO8TftfeAvhfr3iT/hBfht8QPtngXWPgx+0B4t1HQBo/wAUvB/jPw/ai68QeC/DV7/alnpVprajT/slpqC2V9fWV2AH/BsJ+3j+1f8A8FD/ANgj4ufGr9sT4rD4v/E7wz+1949+F+g+JP8AhBfht8P/ALH4F0f4Mfs/+LdO0A6P8LfB/gzw/dC18QeNPEt7/al5pV3rbDUPsl3qDWVjY2VoAfxE/wDBan/gst/wUk+L/wC0J/wUY/4J/wDxG/aOHiH9kfR/2vfjf8L7D4SH4QfAjSfI8DfA79pfVdQ+F+gDx9oPwv0z4m3K+F7vwH4Quzqt34yfW9b/ALFA1/UdTW+1BL8A+vf+DU//AIJdfsKf8FJf+G8f+G1fgaPjT/wpcfsvH4a4+Jvxg+HP/CN/8LF/4aK/4TED/hU/xD8CDVjrH/CBeE8HxENROn/2d/xLRZfb777aAf6Ov/DLvwK/4Zb/AOGK/wDhB/8AjGb/AIUF/wAMtf8ACtP+Ek8Y/wDJCv8AhXH/AAqn/hB/+Ey/t/8A4T7P/CBf8U7/AMJL/wAJZ/wleP8AiY/2/wD27/p9AH5Df8QuX/BCn/oxv/zZb9sD/wCiCoA/kF/4Kif8FRP26/8AgjD+3V8cv+Caf/BNL43/APDNv7E37Np+GR+CvwVPw0+D/wAYf+EM/wCFwfB/wD8fviP/AMXG+Pvw8+KPxb1//hIPiz8UfHfi/wD4q/x5rw0ca5/YmhLp3hbTtF0PTQD5A/4NhP2Dv2UP+Ch/7e/xc+Cv7Ynwpb4v/DHwz+yF49+KGg+G/wDhOviT8P8A7H460f4z/s/+EtO186x8LfGHgzxBdG18P+NPEtl/Zd5qt3ojHUPtd3p7XtjY3toAH/Bz3+wd+yh/wTw/b3+EfwV/Y7+FLfCD4Y+Jv2QvAXxQ17w3/wAJ18SfiB9s8dax8Z/2gPCWo6+NY+KXjDxn4gtTdeH/AAX4asv7Ls9VtNEU6f8Aa7TT1vb6+vbsA89/4NcP+U637Df0/aZ/9Y9/aBoA/wBPX9ub/gl5+wp/wUnPww/4bV+Bv/C6B8Fv+E3/AOFaj/hZvxf+HJ8OH4jf8Ie3jEAfCf4heAzqx1YeBfCQ/wCKhOo/YP7NzpgsTfakb0A+Bf8AiFy/4IU/9GN/+bLftgf/AEQVAH84f/Bz1/wRq/4Juf8ABO/9gb4SfGj9jv8AZwHwf+Jvib9rzwH8Ltf8Sf8AC4fjx4/F94E1n4MftAeL9S0H+x/il8UfGmgW32rxB4K8NXg1W00q11yMaf8AYrPUFsL/AFCyvQD+EGgAoA/0/P8Agyq/5RY/Hv8A7P8Avin/AOs7fsrUAftx8Nf+CNP/AATd+EH7Y+pf8FAPh1+zgfDv7XOsfED4s/E/Ufi0vxg+O+ribx18cbDxhp/xR8Qf8IF4g+KGqfDO2bxRa+PPF9oNKtfBq6Lon9s7tB07TWsdOeyAP1EoAKAP/9P+/igD+X//AIOPv+CK/wC1N/wV/wD+GNT+zX4++AXggfs8/wDDRH/Caf8AC8vFPxG8M/2l/wALb/4UX/wjx8MnwD8KPij9sFn/AMKy8QHWf7X/ALDNn9s0X+zxqG++FgAfyT/tB/8ABo3/AMFIv2bfgF8cP2ivHPxq/Yh1TwR8AfhF8TPjT4y0vwp8Rvjxd+KdU8LfCzwZrnjnxBYeGLDV/wBmrQ9LvNeu9K0O9tdGtdV1rRdNu9RNnHfalY2Re9QA/Vz/AIMY/wDnKH/3ZT/79rQB+3f7ef8Awc9/sEf8E8P2sPiv+x58avhF+194l+J3wfHgf/hI9d+F/gL4Max4FvR4/wDht4Q+KWjDQNR8W/tAeBvEF0LbQPGWk2eqfbvDVgF1q1v7Oz+22S2V/dgH6P8A/BT3/gp58BP+CTvwG8IftFftF+Efi74x8EeM/i5ofwY0zTPgvofgzxF4qt/FfiLwb498cafe31h45+IPw50mHQV0r4c63a3d1a61e6h/aN5piLpjWUl9e2gAf8Ewv+CnnwE/4KxfAbxf+0V+zp4R+Lvg7wR4M+LmufBjU9M+NGh+DPDviq48V+HfBvgLxxqF7Y2Hgb4g/EbSZtBbSviNolraXV1rVlqH9o2epo2mLZR2N7dgH8o3jr/gmF8e/wDgjn/wVD/aB/4OEf2mvF3wi8dfsZ/D39p/9qL40a38NPgPrvjDxN+0/deFP20fEvxN+C3wu0/TPBXxA+H3ww+FFx4g0PxR+0X4FvvH1rd/Gex0/TdC07xXe+HtT8WX9louna4AfjF/wcff8FqP2Wf+Cv8A/wAMaj9mvwD8ffBB/Z5/4aI/4TT/AIXl4W+HPhn+0v8Ahbf/AAov/hHh4ZHgH4r/ABR+2Gz/AOFZeIBrP9r/ANhiz+2aL/Z51DffGwAP7eP+dWT/ALwB/wDwO6gD/Pq/4N6v+CnvwC/4JPftm/E79ov9ovwn8XvGPgrxj+zB42+C+laZ8GNC8GeIfFMXinxH8Vfgp45sdQ1Cx8dfEL4c6XBoS6V8OdXtbq6tNZvNQGoXumRppstk17e2AB8w/wDBZX9tT4Wf8FEf+Ckn7R/7YfwW0Lx/4Y+GHxgHwgbw3oPxQ03w9o3jqy/4V78Bfhh8MNY/t3TPCfijxzoFsbnXvBWsXOk/YfEmob9HutPur37FfPe6faAH92//ABGq/wDBLH/ogv7f3/hq/wBnb/6KqgD92v8AgmF/wU8+An/BWL4DeL/2iv2dPCPxd8HeCPBnxc1z4Manpnxo0PwZ4d8VXHivw74N8BeONQvbGw8DfEH4jaTNoLaV8RtEtbS6utastQ/tGz1NG0xbKOxvbsA5z/gsr+xX8U/+CiP/AATb/aP/AGPPgtrvgDwz8T/jAfhAvhvXvihqXiHRvAtl/wAK9+PXww+J2sHXdT8J+F/HOv2wutB8Faxa6T9h8N6hv1i5061vfsVi97qFoAfwlf8AEFT/AMFTP+i9/sA/+HV/aJ/+hRoA/ob/AGI/+DhH9jH9mrxX+yN/wRg8c/DP9p7VP2ovgHr/AMA/+CYHjHx34T8F/Cm++AWo/Hz4Wal4V/ZR1/xd4Z8Uax8bNB+Il38H7r4iaFeaxo3iHVfhZovja68EtY3+oeA7DXWfw+gB+3v/AAU9/wCCnnwE/wCCTvwG8IftFftF+Efi74x8EeM/i5ofwY0zTPgvofgzxF4qt/FfiLwb498cafe31h45+IPw50mHQV0r4c63a3d1a61e6h/aN5piLpjWUl9e2gB/FP8AtRf8EWP2o/8Ag4f+Onjn/gsR+xX4++AXwy/Zo/a+/wCEb/4Vp4H/AGo/FPxG8F/HXQj8AfB+hfsv+MR448L/AAo+FHxt8B6X/aPj74J+K9X8Nf8ACPfE7xSL7wnfaDqGo/2Hrl7qHh/QwA/Zd/4IsftR/wDBvB8dPA3/AAWI/bU8ffAL4m/s0fsg/wDCSf8ACy/A/wCy54p+I3jT4666fj94P139l/wcPA/hf4r/AAo+CXgPVP7O8ffGzwpq/iX/AISH4neFhY+E7HXtQ07+3NcstP8AD+uAH6/f8Rqv/BLH/ogv7f3/AIav9nb/AOiqoA+u/wBgz/g57/YI/wCCh/7WHwo/Y8+Cvwi/a+8NfE74wDxx/wAI5rvxQ8BfBjR/AtkPAHw28X/FLWRr+o+Ev2gPHPiC1FzoHg3VrPS/sPhq/Da1dWFnefYrJr2/tAD+kGgAoA//1P7+KAP5f/8Ag4+/4LUftTf8EgP+GNR+zX4B+AXjcftDf8NEf8Jp/wALy8LfEbxN/Zv/AAqT/hRf/CPDwyPAPxX+F32MXn/CzfEA1n+1/wC3DefY9F/s86fsvjfgH6+fCYH/AIKTf8EtfhoPjmD4VH7fX7APg7/hcR+Ev/EiXw1/w1P+zvprfED/AIVqPF58dHSTpH/Ceax/wh3/AAk//CajT/smn/263iHZeregHgP/AASn/wCCLH7Lf/BH/wD4Xz/wzT48+Pvjj/hoc/CweNv+F5eKvh14l/s0fCU/EQeHf+EY/wCEA+EvwwNob3/hZviE60dX/tv7Z9i0X7B/Z4jvRegHyB+3n/wbCfsEf8FD/wBrD4r/ALYfxq+Lv7X3hr4nfGAeB/8AhI9C+F/j34MaP4Fsh4A+G3hD4W6MdA07xb+z/wCOfEFqLnQPBuk3mqfbvEt+G1q6v7yz+xWTWVhaAH4DfsV/tqfFP/g7F+KWuf8ABOz/AIKJaD8Pvg18Ffgx4B1T9tXwz4n/AGLNK8Q/Dn4qX/xS+HGv+F/gdo2ga/rHx08U/tIeDrvwBd+F/wBo3xvfavpNl4I0bX7vX9P8K31p4rsdOsdZ0TXAD+xj/gmF/wAEw/gJ/wAEnfgN4v8A2df2dPF3xd8Y+CPGfxc1z4z6nqfxo1zwZ4i8VW/ivxF4N8BeB9QsrG/8DfD74c6TDoK6V8OdEurS1utFvdQ/tG81N21NrKSxsrQA+Iv+Do//AJQU/tyfX9mb/wBbC/Z+oA/yBqAP9pT9iL4K+Ff2k/8Agh1+yR+zp46v/EOleCfj/wD8Eo/gH8F/GOp+E7zT7PxRpnhX4qfsheFPAviC+8L3+s6Xruk2eu2ek67eXWjXer6PrdhaX62cl/pmoWYNi4B+M/8AxBVf8Esf+i9ft/f+HU/Z2/8AoVaAD/iCq/4JY/8ARev2/v8Aw6n7O3/0KtAB/wAQVX/BLH/ovX7f3/h1P2dv/oVaAP3a/wCCYX/BMP4Cf8EnfgN4v/Z1/Z08XfF3xj4I8Z/FzXPjPqep/GjXPBniLxVb+K/EXg3wF4H1Cysb/wADfD74c6TDoK6V8OdEurS1utFvdQ/tG81N21NrKSxsrQA/jG/bc/4O5P8AgpF+zd+2d+1z+zr4G+Cv7EOqeCfgD+1D8ffgt4O1TxX8Ofjxd+KdT8LfCv4q+K/A3h+/8UX2j/tKaJpV5r15pOh2d1rN1pWjaJp13qBvHsdNsbJlsUAPmD/iNW/4Kmf9EE/YB/8ADVftE/8A0V1AH6+/8OWf2Wf+GW/+Iiv/AIT74/f8Ntf8KB/4fT/8Kw/4Sj4d/wDDK/8Aw1N/wrj/AIbm/wCEC/4Qr/hVH/C2P+Gf/wDhbP8AxTv/AAjP/C7v+Fi/8K8/4kv/AAtf/hKf+KroA+Qv2K/21Pin/wAHYvxS1z/gnZ/wUS0H4ffBr4K/BjwDqn7avhnxP+xZpXiH4c/FS/8Ail8ONf8AC/wO0bQNf1j46eKf2kPB134Au/C/7Rvje+1fSbLwRo2v3ev6f4VvrTxXY6dY6zomuAHn/wC1F/wWn/aj/wCDeD46eOf+CO/7FfgH4BfE39mj9kH/AIRv/hWnjj9qPwt8RvGnx110/H7wfoX7UHjE+OPFHwo+K/wS8B6p/Z3j742eK9I8Nf8ACPfDHwsLHwnY6Dp+o/25rllqHiDXAD+nv/g6P/5QU/tyfX9mb/1sL9n6gD/IGoA/f/8A4NcP+U637Df0/aZ/9Y9/aBoA/wBfmgAoA//V/v4oA/gD/wCD5z/nF5/3et/76VQB/Qz4T8WeK/AP/Bsp4b8c+BfEniHwZ418F/8ABCfR/Fvg7xj4S1m/8O+KvCnirw7/AME/7bV9A8T+Gdf0e6tNV0HXfD+rWdpq+j6xpF7aX+n6hZ2l/YXq3iqyAH8tH/BuD/wX0+Hf7PA/bJP/AAVq/wCCg/x+8RDxf/wzwf2f/wDheesftS/tP/Y/7B/4XoPisfC40fQPi0fA/wBo/tz4c/20bz+wf+En2aJ5f9pf2A/2AA9B/bx8B/8ABeH/AIKX/tYfFf8Abb/4I0/G39r3xn/wTa+Nh8Cj9m7xH8Lv24Zf2XvAup/8K5+G3g/4TfF/+wfgZ8UPjv8ABLx74E+x/HjwF8U7LVV1n4aeGP8AhJ9bs7/xfp39uaLr9h4h1QA/KH4K/wDBvz/wcnfs1+K7/wAc/s5/A34v/AHxtqugXfhLU/GPwX/bi/Zy+FninUvC97qGlaxf+F7/AMQ+Bf2m9D1W70G81bQ9G1a70i7vTp11f6LpmoSWhvNOsigB/Tx/wTC/4KTT/wDBHP4CeLv2ZP8Ag4R/an+L3w9/bO8dfF7Xfjr8NNF+NXiX4z/to+Kbv9mHxL4P8B/D7wdqth8UPgxB+0T4X0DQLj4sfDH40Wlp4BvfGmm67YX1lqfiG+8KWNh4s03XNfAPIP8AgvP/AMF6P+CUH7aP/BKD9qr9mr9mn9qofEj41/EgfA5vBXgk/A79o/weNZ/4Q/8AaP8Ag74+8Q58Q+Pfg74W8Iab/Zvhbwt4g1bGr+IbD7Z9g+w2H26/vbLT7oA+Av8Agzc/ZP8A2Wv2n/8Ah40f2l/2a/gF+0J/wg//AAx+PBP/AAvL4N/Dn4tHwj/wky/tP/8ACQ/8IufH/hrXhoP9vf2B4dbWzo62X9snQ9G+3C6/s+yRQD8hf2sP2tv+CmNp/wAFSv2k/wBiL9jv9sP9r7wD4ft/2/vjH+yv+y1+zv8ACf8Aan+J3wf+FvgnR4v2h/EHwm+CHwX+Gvhiw+I3g/4Y/C/wF4Zsx4Z8DeD/AA7Zjwr4F8EaDZadp9kdD0HT0FkAf1sf8G937I3/AAXx+Af7Z/xN8Y/8FTfFf7T2v/s+6j+zF4z8N+DrP41ftueHv2k/CsPxjvPit8FdV8P3Gn+B9I+PPxRudK18eCtE+IgtfFz+HbOzsbB9S0P+3LZ9dWxvwD+eT/g43/4KEft7/A//AILMftk/C/4Lftw/tffB/wCGfhj/AIZ8/wCEa+HXwu/aV+M/w/8AAnh8az+yx8Edf1j/AIR/wh4R8aaVoGlHVNf1TV9Z1b7DY2n2/W9R1DUr4te3t29AHQf8G93/AAXQ1/4Bftm/E7xj/wAFTf8Agof+07r37P2pfsw+NPDfg6z+NXxD/af/AGk/CsXxku/it8FdU0C5sPAujJ8U7jS9fHgzSfiItt4uk8O2FtZWDaloo121bXlsdQAP09/4Ke+Ov+Cof/BYz4+eEf2m/wDg3u/aB/af+If7GHgb4Q6F8CviXrPwV/ah8T/sXeFbX9p/w34x8efEHxjpeofC74z/ABN/Z18Ua9r9v8KPih8F7u78f2fgzUND1GwvtM8P2XivUL/wnqWjaGAfgN/wRL+AOpeP/wDg4V+FP7P/AO3n8P8AQPjV42j+L/7aHhr9pzwJ8fYfC3x80/xT8ZfBPwK/aLvvG1z8QLrxDdeOvC/xJ1/TvizoFz4ifxfc3via11HxRYW3iux1vUbw2mpMAf6av/Dp7/gln/0jU/YC/wDEOv2dv/nb0AfHf/D5D/gib/wtP/h1x/wt7wB/wln/AAsH/hgb/hlH/hl343/8Kt/4SX/hIv8Ahnf/AIZ6/s//AIUZ/wAKQ/4QH+0/+Lc/Yv7V/wCFVf2B+7+3/wDCJ/6ZQB8gf8Fp/wDglt8XtJ/Zc8Azf8EKP2XPh/8AsyftdS/HzwrD8RPHv7Fc/wAEf2Gvinq/7OP/AArn4ot4v8I6/wDFnw/r/wAEbvX/AAHefE9fhBq+r/Dl/F1/aa1ruheFPER0G+k8JpqOigHwH+y5+0r/AMEcP2QfgV4E/Z4/4OAPDvwC8Xf8FcPh9/wkx/a01/8Aai/ZQ1/9uH476ifFXjHX/G/wHHjn9qDw38G/2gtE+J4tv2afEvwYsfDQsvi74qPgvwlZ+H/hzd/2FeeE7vwvooB+A/8AwQa/aw/ak/bg/wCCr/7Kv7L37an7Svx8/bA/Zm+Jw+OK/Ev9nf8Aai+MfxH+P/wJ+IX/AAhX7OHxh+IPg8eOfhD8WPEfi/wF4r/4RTx/4Q8J+OvDX/CR+HL/APsLxb4X0HxVposdb0TTb60AP7NP20/G3/Bsh/wTu+KOh/Bb9sP9mX9gL4QfE3xN4A034n6H4ZP/AATasPiF9t8C614h8U+EtM1v+2Phh+zV400C2+1a94L8S2J0m61e01lBp/22709LG+0+9vQA/YM/bf8A+Daj4v8A7V3wp+HX/BP/AMGfshaV+1v4gbxyfhLffC7/AIJ8eJ/gd47g/sn4b+MNd8fHQPifqX7NXgC08LG4+Gem+MbTVvtfi/RjrmiNqGgKdQk1NdNvwD+kKgAoA//W/v4oA/gD/wCD5z/nF5/3et/76VQB+/n/ADqyf94A/wD4HdQB/kD0Af1//wDBLv8A4OsB/wAE2f2Ffgb+xWP2Df8AhdA+C5+Jp/4WUP2n/wDhXQ8SD4i/GHx/8Wf+RP8A+GdvHn9knSv+E7/4R3P/AAkt/wDbf7OGpf6D9u/s+yAPv3/iOc/6xef+brf/AJJtAB/ww3/xGBf8bLP+Fo/8O8f+FI/8YNf8KW/4Qn/hrP8A4Sn/AIVn/wAX+/4Wh/wsb/hL/wBmr+xP7c/4aZ/4RH/hB/8AhA9b/s7/AIQf+3f+Erv/APhIP7F0AAP+IGP/AKyh/wDmlP8A+VlQAf8AKl7/ANZJv+Hkv/dnX/CmP+GOP/EpP+Fif8LH/wCGpv8AqR/+EU/4Qb/mav8AhKv+JAAfzD/snfHMftQf8F8P2af2lh4V/wCEHH7Q/wDwV8+Dnxz/AOEJ/tv/AIST/hED8Wv2zvD/AI/Hhf8A4SI6ZoP9vnQP7fOkf2wND0L+2DZrf/2Lp5l+xRAH+zpQB/ID/wAFRf8Ag1P/AOHk37dXxy/bUP7eI+Cx+NI+GQ/4Vr/wy+fiMfDh+HPwe8A/Cf8A5HH/AIaJ8Bf2t/av/CCf8JFgeGNPFkdQ/s7F8LH7degH8RH/AARY/wCCU3/D4H9qXx9+zQPjz/wzz/whHwC8U/HIeNh8Kx8Wv7S/4Rv4jfC3wCfDH/CPf8LF+GH2P7YPicNX/tv+27r7J/YpsP7Gf+0PttgAf08/8Nyf8Qfv/GtP/hV3/Dw7/hd3/Gcv/C6f+E2/4ZM/4Rb/AIWZ/wAWB/4Vf/wrn/hEP2lf7b/sP/hmb/hLv+E4/wCE80T+0f8AhOP7C/4RSw/4R/8AtrXwD7+/4Jd/8ENDrH7dPwP/AODgEftPi2/4am/4WZ+3L/wyafgr5/8Awgv/AA318IPH3ib/AIVgfjx/wthB4o/4VP8A8L6+x/8ACcj4OaB/wnB8Jfa/+ES8IjXTZ6CAff3/AAXM/wCC5n/Dl/8A4ZeA/Ze/4aTH7Sf/AAuzA/4XYfg9/wAIX/wp4/CXPzH4S/FD+3/+Eg/4Wj6aJ/Yv9hf8xEaiFsgD/MK/4bl/42l/8PLf+FX/APN/v/Dcv/Cl/wDhNR1/4aJ/4X//AMKv/wCFjf8ACH5/6lH/AITn/hBP+o9/wieP+JHQB/Xz/wARzn/WLz/zdb/8k2gD+Qn/AIKi/tzD/gpN+3V8cf21R8Lj8GD8aB8NC3w2PjZviP8A8I1/wrn4P+AfhOP+KxXwf4D/ALW/tceBP+EiIPhfTv7POof2cTqH2EX92Af17f8ADjT/AIhsP+N1H/DUP/DZ/wDwxnz/AMM1/wDCkv8AhnX/AIWR/wANFf8AGJ//ACWH/hbnx2/4Q3/hDf8Ahe3/AAnn/JKvFX9v/wDCL/8ACK/8SP8Atz+39NAP5hv+C0//AAVZ/wCHwP7UvgH9pc/Ab/hnn/hCPgF4W+Bp8En4qD4tf2l/wjfxG+KXj4eJ/wDhIf8AhXXww+x/bB8TjpH9if2JdfZP7FF//bL/ANofYrAA/r3/AOCBf/BuCf2d/iH/AME+f+CtI/bJ/wCEwPiH4AaR8dP+FAj9ngaAbP8A4ag/ZY13Rv8AhFh8Vj8btc+0f8IL/wALb+1/2yPhzH/wlH9gBP7F0A6j5mngH9v1ABQB/9f+/igD8/v25f8Ah1n/AMWv/wCHlv8AwwF/zO3/AApb/hub/hnXp/xSH/Cx/wDhV/8Awv7jOP8AhA/+E5/4RLn/AJFH+3uf7FoA89/4eDf8EYP+FWf8KM/4bf8A+CYf/Ckv+EA/4VR/wpv/AIaX/ZS/4VZ/wqz/AIR//hD/APhWv/Cv/wDhMf8AhFv+EB/4RX/imv8AhD/7I/sH+wf+JJ/Z/wDZ3+hUAfIX/HLJ/wBYA/8AzndQAf8AHLJ/1gD/APOd1AB/xyyf9YA//Od1AH6d/sV/8MCf8Ku1z/h3V/wyD/wpP/hYGrf8JN/wxV/wpn/hVf8AwtP/AIR7wp/bX/CQf8KN/wCKU/4T7/hFP+EF/tX7d/xUH9gf8Ip9u/4l39jUAf5d/wC3H+23/wAFcfGn/BVv9uj9nX9lv9rn/go14r1i1/be/bB8JfCn4D/AP4+ftMa/qNn4W8BfGD4n3Nv4a+H3ww+H/i66urfQvB3gvw9eXMejeG9GFh4e8LaJdSLZ2Wiac5QA+YPjp+yf/wAF8f2oB4WH7S/7NH/BXr9of/hBhrY8E/8AC8/g5+2b8Wh4QPiT+yf+Eh/4Rj/hP/DevHQW1/8AsHRBrS6SbP8AtltD0X7f9q/s6x2AH+gl4T/4JlfAPwF/wQ58NeOfAv8AwT8+EPg3/god4L/4JSaN4t8HeMfCP7KXgnw7+2h4W/bQ8Ofsg22r+H/EvhnX9H8B2fxv0H9p3QPjfZ2er6PrOj3tp8VdP+KlnZ39jep4tRHoA/gN+NX7Qv8AwcL/ALNfhax8dftF/G3/AILOfAPwTquu2nhHSvGPxr+JH7b/AMLPC2oeKr7TdU1ix8M6d4g8ca7oOlXPiC60vQda1az0e1vGv7yw0TUL5LI2en3rqAf3qf8ABBj/AIKwfsuD/gk/+yt/w2r/AMFKvgF/w0x/xfP/AIWV/wANRftjfDcfHf8A5OP+MP8Awh3/AAm//C2fiN/wnp/4oI+Eh4aPiLn/AIRP+wjp+dDOmrQB+Uf/AAcI/tCf8E3v2av2Mfhl46/4IwfHH9iD4B/tRar+0/4M8J+O/GP/AATB+JXwJ+Fnx71L4BX3wp+NmseKPDPi7X/2Udc0L4i3fwfuviJoXws1bxFo2r3beCrrxtovgLUNQsm13T/D0kQAf8G937Qn/BN79pX9jH4m+Ov+Cz/xx/Yg+Pn7UWlftP8AjPwn4E8Y/wDBT74lfAn4p/HvTfgFY/Cn4J6x4X8M+Edf/au1zXfiLafB+1+Imu/FPVvDujaRdr4KtfG2tePdQ0+yXXdQ8QySgH84/wC0T+25/wAFH/Gn/BQr9p/9nP8A4J0/tc/tveLfhTZ/tP8A7R/hT9kj4FfsV/Hz48a78PLT4BeA/Hvjqf4beGf2cvhf8DfGFx4Zg+D3g34OaBZ3XgXSPhton/CFaB8N9BsToFnZeFNNR4gD4e/bm/4emf8AFr/+Hlv/AA37/wAzr/wpb/hub/horrjwf/wsf/hV/wDwv7nr/wAIH/wnP/CI9/8AhEv7e+X+xaAP9PT/AIJ7f8E+P+CWn/DrX9h/46fHP9h/9gJt37AX7NXxZ+MXxj+LP7NP7O3y/wDGO3gzxh8QPiR8SfiD4w8FqAABq/ibxj4x8TauT/x/65rt+2by9oA9d+Cv7PX/AAb0ftKeKb/wL+zp8Ev+CMnx88baVoV34u1Xwd8FPhv+xB8U/FOn+FbHUtL0e+8Taj4f8D6Fr2q23h+11TXtF0m81i6s1sLO/wBb06xe9F5qFkjAH+bZ/wAHG3wo+FXwP/4LMftkfC/4L/DX4f8Awf8Ahl4Z/wCGff8AhGvh18LvBvh74f8AgPw9/bH7LHwQ17WR4f8ACHhHTdK0DSjquv6pq2tar9gsLT7dreoajqV6Wvr67ZgDgf2pP+H+P/Ci/HP/AA2p/wAPfP8Ahmf/AIpr/hZf/DUX/DaH/CiP+Rw0D/hD/wDhOf8AhbP/ABQX/I9/8In/AMIz/wAJD/zN39g/2b/xPP7OoA+JPgt+xN+2d+0r4WvfHP7Ov7In7T3x88E6Tr114R1Txl8E/gF8V/in4V07xTZadpms6h4Z1DxD4H8I69pVr4gtNK13Q9VvdGurtNQtLDWtOv2tFtNQsnYA/q3/AODe3wj/AMFxvAP/AAU0/Yu8C/tN+G/+CrXgz9i/wZoHxY8J6z4M+O2jftfeHf2YPCnhbw5+y/8AFnRvhf4Z1Pw/4/gtPhToOgaD4otPBeleAdFvLSz03T9es/C1l4etItRTR41AP9JmgAoA/9D+/igD+AP/AIPnP+cXn/d63/vpVAH5R/s+f8Gjf/BSL9pL4BfA/wDaK8DfGr9iHS/BHx++EXwz+NPg3S/FfxG+PFp4p0vwt8U/Bmh+OfD9h4nsNI/Zq1zS7PXrTStcsrXWbXSta1rTbTUReR2OpX1kEvXAPXv+IKn/AIKmf9F7/YB/8Or+0T/9CjQAf8QVP/BUz/ovf7AP/h1f2if/AKFGgD85P+Cnv/BvV+2d/wAEm/gH4R/aJ/aL+J37MHjPwV4y+Luh/BjTNL+DHjX4q+IvE8HinxF4N8feObG+vrLxz8FPhxpcGhjSvhxrNpc3VrrN7qH9oXemoumtZSXt7YAH9jP/AAZVf8osfj3/ANn/AHxT/wDWdv2VqAPiDx1/wTC+Pf8AwRz/AOCof7QP/Bwj+014u+EXjr9jP4e/tP8A7UXxo1v4afAfXfGHib9p+68Kfto+Jfib8Fvhdp+meCviB8Pvhh8KLjxBofij9ovwLfePrW7+M9jp+m6Fp3iu98Pan4sv7LRdO1wA+3/+I1X/AIJY/wDRBf2/v/DV/s7f/RVUAf0b/wDDavwv/wCGBv8Ah4n/AGD8Qf8AhSf/AAyF/wANr/8ACM/2T4d/4Wl/wqv/AIUz/wALx/4R/wDsb/hK/wDhDv8AhP8A/hE/9A/sn/hPP7A/t/8A0P8A4Sr+zv8AidUAf59X/Bwj/wAHCX7GP/BWb9jH4Z/s6/s6fDP9pzwV408GftO+C/jVquqfGvwX8KPDXhafwt4a+E/xr8EX2n6dfeBvjZ8RtVuPEEmq/EfRbqzs7nRrKwaxtNSZ9SS7Szs78A+Iv2DP+DYT9vf/AIKH/sn/AAo/bD+Cvxd/ZB8NfDH4wHxx/wAI5oXxQ8e/GfR/HVkfAHxJ8X/C3WTr+neEv2f/ABz4ftTc6/4N1a80v7D4lvy2i3VheXn2K9a9sLQA/OH/AIJhf8Ew/j3/AMFYvjz4v/Z1/Z08XfCLwd438GfCPXPjPqep/GjXPGfh3wrceFPDvjLwF4H1Cysb/wADfD74jatNrzar8RtEurS1utFstP8A7Os9TdtTW9jsbK7AP3b/AOIKn/gqZ/0Xv9gH/wAOr+0T/wDQo0AflL/wTu+NPhb/AIIt/wDBaHw946/aistf8e6T+xJ8Xf2qfgv8VbX4BWth4o1LXfFWmfDn42fs7T33gC3+IupfCm11TQT4z1u01VLvxLd+FL9vCq3d82nJrSroTgH25/wcff8ABaj9ln/gr/8A8Maj9mvwD8ffBB/Z5/4aI/4TT/heXhb4c+Gf7S/4W3/wov8A4R4eGR4B+K/xR+2Gz/4Vl4gGs/2v/YYs/tmi/wBnnUN98bAA/vV/Z6+Cviv9pX/g3n+CX7OngW/0LSvG3x8/4Ix/DT4KeDdV8XXWo2HhXTvFPxT/AGIND8D+H9Q8S32j6Zr2q2vh+11TXrK51m80nQ9b1C0sFvHsbHULxUs3APyE/wCDe7/g3t/bO/4JM/tnfEz9or9ov4mfsx+NfBfjP9mLxn8FdK0v4KeM/it4k8UQeKfEnxY+Cfjex1DUbHxx8E/hzpVvoEek/DjWrW8vbbWb3UFv7vTgumvaSXd5YAH8kn/B0f8A8p1v25Pp+zN/6x7+z9QB/paf8Flf2K/in/wUR/4Jt/tH/sefBbXfAHhn4n/GA/CBfDevfFDUvEOjeBbL/hXvx6+GHxO1g67qfhPwv451+2F1oPgrWLXSfsPhvUN+sXOnWt79isXvdQtAD5h/4N6v+CYXx9/4JPfsZfE/9nT9ovxb8IfGPjXxj+0/42+NGlan8GNd8Z+IfCsXhbxH8Kvgp4GsdP1C+8dfD74c6pBrqap8OdYurm1tNGvNPGn3umyJqUl617ZWQB+8dABQAUAf/9H+/igD+AP/AIPnP+cXn/d63/vpVAH9HPwo+Kfjv4H/APBt98NvjT8Lde/4Rf4m/B//AIIieDvin8OvEf8AZuk61/wjvjz4f/sIad4v8Ia6NH8Q6Xqnh/VRpWv6VY339k61pWpaLf8A2M2Oo6deWD3Vm4B/nk/8RRn/AAXX/wCj4z/4jR+x/wD/AEPtAB/xFGf8F1/+j4z/AOI0fsf/AP0PtAH9fv8Aweq/8osfgJ/2f98LP/Wdv2qaAD/gyq/5RY/Hv/s/74p/+s7fsrUAfyif8Fqf+Cy3/BST4v8A7Qn/AAUY/wCCf/xG/aOHiH9kfR/2vfjf8L7D4SH4QfAjSfI8DfA79pfVdQ+F+gDx9oPwv0z4m3K+F7vwH4Quzqt34yfW9b/sUDX9R1Nb7UEvwD69/wCDU/8A4JdfsKf8FJf+G8f+G1fgaPjT/wAKXH7Lx+GuPib8YPhz/wAI3/wsX/hor/hMQP8AhU/xD8CDVjrH/CBeE8HxENROn/2d/wAS0WX2+++2gH92/wDwUI+F/gb4Gf8ABGT9t/4KfC7Qv+EY+GXwg/4JhftLfDD4c+Gv7U1rWv8AhHPAnw+/ZS8ZeEvB+gHWfEOo6truqjSdA0mxsTqutavf6zf/AGUXepX1/eveXrgH+cX/AMGwn7B37KH/AAUP/b3+LnwV/bE+FLfF/wCGPhn9kLx78UNB8N/8J18Sfh/9j8daP8Z/2f8Awlp2vnWPhb4w8GeILo2vh/xp4lsv7LvNVu9EY6h9ru9Pa9sbG9tAD6//AOCon/BUT9uv/gjD+3V8cv8Agmn/AME0vjf/AMM2/sTfs2n4ZH4K/BU/DT4P/GH/AIQz/hcHwf8AAPx++I//ABcb4+/Dz4o/FvX/APhIPiz8UfHfi/8A4q/x5rw0ca5/YmhLp3hbTtF0PTQD+cX9ir9vL9q//gnh8U9e+NP7HXxX/wCFQfEzxN8P9U+GOueI28DfDbx/9t8C6z4h8LeL9Q0E6R8UfB3jPQbc3Wv+DfDN4dWs9Itdaj/s82VjqAsb6/tL8A/08f8Ag2E/bx/av/4KH/sEfFz41ftifFYfF/4neGf2vvHvwv0HxJ/wgvw2+H/2PwLo/wAGP2f/ABbp2gHR/hb4P8GeH7oWviDxp4lvf7UvNKu9bYah9ku9QaysbGytAD3/AOLH/BuR/wAEZvjh8VviT8afij+xwPE/xN+L/j/xl8UfiL4kH7QX7VOj/wDCQ+O/iB4h1Lxf4v186N4e+N2l+HtL/tTxBqt/f/2Vo+laboth9r+xadp1nYLaWaAH8Y//AAdYf8Euv2FP+CbX/DB3/DFXwNHwW/4XQP2oT8Ss/E34wfEb/hJP+Fdf8M6/8IcD/wALY+IfjsaSdH/4T3xZk+HRpx1D+0f+JkL37BY/YgD8w/hP/wAHG/8AwWZ+B/wp+G3wW+F37Y58MfDL4QeAPBvwu+HXhs/s+/srax/wj3gT4f8Ah7TfCHhDQBrPiH4I6p4h1T+y/D+lWFh/ausarqWtX/2T7bqOo3l+13eOAd7/AMRRn/Bdf/o+M/8AiNH7H/8A9D7QB+RH7Uf7Ufx1/bR+Ovjn9pX9pjxwPiV8bPiQPDI8beNx4b8IeEBrA8H+D9B8AeHj/wAI98P/AA/4W8IaX/ZvhXwv4e0j/iT+HbD7d9hF/ffbNQvL29vQD9d/+Ioz/guv/wBHxn/xGj9j/wD+h9oAP+Ioz/guv/0fGf8AxGj9j/8A+h9oA/X/AP4IMf8ABej/AIKv/to/8FX/ANlX9mr9pb9qo/Ej4KfEg/HFvGvgkfA79nDwedZ/4Q/9nD4xePvD2PEPgL4O+FvF+m/2b4p8LeH9WxpHiGw+2fYPsN/9usL290+6AP8AR6oAKAP/0v7+KAP4A/8Ag+c/5xef93rf++lUAfv5/wA6sn/eAP8A+B3UAf5A9ABQB/p+f8Hqv/KLH4Cf9n/fCz/1nb9qmgA/4Mqv+UWPx7/7P++Kf/rO37K1AH8wn7PH7UXwK/Yv/wCDqn9oD9pX9pfx1/wrb4KfDf8Ab9/4Kdf8Jv41Hhvxh4vOijxjB+1P4A8PAeHfh/oHirxdqX9peK/FPh7SP+JR4ev/ALF9ua/vfsWn2V7fWoB77/wdYf8ABUX9hT/gpL/wwd/wxV8ch8af+FLj9qEfErPwy+MHw5/4Rv8A4WL/AMM6/wDCHE/8LY+HngQasdY/4QLxZkeHTqJ0/wDs7/iZGy+32P20A/o5/wCCe3/Bxv8A8EZvgf8AsE/sO/BX4pftj/8ACMfE74P/ALIH7Nfwu+Inhv8A4Z9/ao1j/hHvHfw/+DHgrwj4v0A6x4e+COqeH9U/srX9Kv7D+1dH1TUtFvzZ/btO1G7sHs7pgD9ff2K/+Cyv/BNv/goj8Utd+C37Hn7R5+MHxN8NeAdS+KOu+Gx8IPjz8PRZeBtE8Q+F/Cep67/bHxP+F3gnQLk2+v8AjPw3YDSbXV7zWpP7Q+22ti9jY6je2QB+olAH+Gb+xV+wb+1f/wAFD/inr3wW/Y6+FH/C3/iZ4Z+H+qfE7XPDjeOfht4A+xeBdG8Q+FvCGoa8dX+KPjHwZoNwbXX/ABl4ZszpNnq91rUn9oG9sdPNjY393YAH92n/AARY/ag+BP8AwbwfsteP/wBiz/gsR45/4ZB/aX+J/wAffFH7Ufgf4ajw14u+P39u/Anxp8Ofhb8KPDHjkeMP2XNA+NvgPTP7U8efBP4oeHv+EZ1bxZY+LbAeFhqeo6BZ6Hrvh7UdaAP7N/hT8UfAnxx+Fvw1+Nnwu10+J/hj8Xvh94Q+KHw68SDTNa0Y+JPAnxB8PaX4u8Ia9/Y3iDTtI17S/wC1tA1Wxvf7J1vR7HWrEXQtNRsdPvVurNAD+Er/AIPnP+cXn/d63/vpVAH6+f8ABJ//AILz/wDBJ8fst/8ABNX9ir/hqn/jJj/hQX7HH7Lv/Ctf+FG/tH/8l3Hw3+HPwn/4Qj/hMT8HT4C/5H3/AIp0eJT4u/4RL/mIf28dE/4mVAH7dftq/t5fsof8E8PhZoPxp/bF+K//AAqD4Z+JviBpfwx0PxGvgb4k+P8A7b471nw94p8X6doP9kfC7wb4y163+1aD4N8TXg1W80m10VP7PWyvtQF9fWFnegH5j/8AEUb/AMEKf+j5P/Naf2wP/ofaAE/4Oj/+UFP7cn1/Zm/9bC/Z+oA/yBqAP7Pv+DcH/gjV/wAFI/g9/wAFDP2Cv+CgPxF/ZuPh/wDZF1f4f/ED4n6f8WT8X/gTrLT+BPjj+yV8UdP+F+vjwD4f+KGqfE23/wCEouvHvhC1GlXXg0azon9shtf0/TUstQfTwD/S6oAKAP/T/v4oA/gD/wCD5z/nF5/3et/76VQB/Ux+xF8FfCv7Sf8AwQ6/ZI/Z08dX/iHSvBPx/wD+CUfwD+C/jHU/Cd5p9n4o0zwr8VP2QvCngXxBfeF7/WdL13SbPXbPSddvLrRrvV9H1uwtL9bOS/0zULMGxcA/Gf8A4gqv+CWP/Rev2/v/AA6n7O3/ANCrQAf8QVX/AASx/wCi9ft/f+HU/Z2/+hVoAP8Ag9V/5RY/AT/s/wC+Fn/rO37VNAB/wZVf8osfj3/2f98U/wD1nb9lagD+AT/grH/ylM/4KWf9n/8A7Y3/AK0R8R6AP1//AODcH/giv+yz/wAFf/8Ahso/tKePvj74IP7PP/DO/wDwhf8Awo3xT8OfDP8AaX/C2/8Ahen/AAkJ8THx98KPij9sNn/wrLw+dG/sj+wxZ/bNa/tAahvsRYAH5h/8MWfCr/h89/w7p/t7x/8A8KU/4ee/8MVf8JT/AGj4e/4Wp/wq3/hqv/hR39vf23/wi/8AwiH/AAnv/CL/AOm/2v8A8IL/AMI//b/+nf8ACIf2d/xJKAP9NH/gmF/wb1fsY/8ABJv4+eLv2if2dPid+0/4z8a+MvhFrnwY1PS/jP41+FXiLwxB4W8ReMvAPjm+vrGy8DfBT4capBrg1X4caNaW11daze6f/Z93qSNprXslle2AB+Ev/BZf/g56/b4/4J3/APBSP9o/9jv4LfCT9kPxR8Mvg+3wg/4RvX/ij4D+M+s+O70+P/gT8LfinrA17UvCP7QHgbw/dfZte8ZatZaV9i8NWJXRLXTrO9+3Xy3uo3YB+7X/AATC/wCDer9jH/gk38fPF37RP7OnxO/af8Z+NfGXwi1z4Manpfxn8a/CrxF4Yg8LeIvGXgHxzfX1jZeBvgp8ONUg1war8ONGtLa6utZvdP8A7Pu9SRtNa9ksr2wAD/gp7/wb1fsY/wDBWT4+eEf2if2i/id+0/4M8a+DfhFofwY0zS/gx41+FXh3wxP4W8O+MvH3jmxvr6y8c/BT4j6pPrh1X4j6zaXN1a6zZaf/AGfaaai6at7He3t+Afr5+z98FPC37NvwE+B37OfgXUPEOq+CfgD8Ifhl8F/B2qeK7zT7zxTqXhX4V+DdD8C+H9Q8UX2j6XoOk3mu3Wk6DZ3esXWlaPothe6gbxrHS9PsytkgB+cn/BVj/gix+y3/AMFgP+FDf8NLePPj74H/AOGeD8Ux4J/4Ub4q+HXhr+0h8Wj8Ox4i/wCEn/4T/wCEvxPN2bL/AIVl4eOinSP7E+x/bda+3/2gJLIWQB/mWfs9fBXwr+zV/wAHDHwS/Z18C3+u6r4J+Af/AAWc+GvwU8G6r4uutNv/ABVqPhb4Wftv6F4H8P6h4lvtI0zQdKuvEF1pWg2dzrF5pGiaJp95fvePYWGn2ZSzQA/tZ/4PVf8AlFj8BP8As/74Wf8ArO37VNAH+YHQB/uZft5fsVfCv/gof+yh8Vv2OvjVr3xA8M/DL4wf8IMfEmufDDVPD+jeO7H/AIQD4k+D/ijo50DUPF3hbxvoNsLjxB4N0qz1Q3nhi/3aJd31lZfYr9rW/sgD/Kw/4OFf+CYXwC/4JPftm/DH9nT9nTxZ8XvGPgrxj+zB4J+NGq6n8Z9d8GeIfFMXinxH8VfjX4GvtP0++8C/D34c6XBoS6V8OdIurW1u9GvNQGoXupyPqUtk1lZWAB/qLf8ABJ3/AJRZ/wDBNX/swL9jn/1nf4c0Aff9ABQB/9T+/igD+QL/AIOsP+CXP7dn/BSX/hg7/hir4Gn40f8ACl2/ahPxKB+Jnwe+HP8Awjn/AAsX/hnT/hDgf+FsfEPwIdX/ALX/AOED8WZ/4R3+0Bp407/iZfYhfWP20A/nl8J/8Eqv+DvTwB4T8N+BvA3iH9t7wX4K8F+H9G8JeDvB3hP/AIKjfDfw54W8KeFfDlhbaPoHhnwzoGkftfWelaDoWg6VaWekaNpGkWVpp2nWFnZ2On2aWaBEAN3/AIdqf8Hkf/RRf2/v/Fsfgj/6MegA/wCHan/B5H/0UX9v7/xbH4I/+jHoA8i+Nf8AwRR/4OoP2lPCth4F/aL8L/tP/HzwTpWvWnizSfB3xr/4KJ/BL4qeFdP8V2On6no9h4m0/QPG37VWv6Vaa/a6Vr+taTa6zbWaX1lp2t6hYi8Syvr1HAP7Fv8Ag2E/YO/av/4J4fsEfFz4K/tifCkfCD4neJv2vvHvxQ0Hw3/wnXw2+IH2zwLrHwY/Z/8ACWna+dY+FvjDxn4ftRdeIPBfiWy/su81W01tRp/2u709bK+sb27AP5Cf+ChP/BuR/wAFmfjh+3t+3F8afhb+xwfE/wAMfi/+1/8AtKfFH4d+JD+0F+yvo/8AwkPgT4g/Gfxr4v8ACOvjR/EPxu0vxBpf9q6Bqthf/wBlaxpem61YC8+xajp9pfpd2qgH9HX/AAan/wDBLn9uz/gm1/w3j/w2r8DT8F/+F0N+y8fhqB8TPg98Rv8AhI/+Fdf8NF/8JiB/wqf4h+OzpH9kf8J54Tx/wkX9njUBqP8AxLftosb77EAfkF/w4Z/4Kwf8P7/+G1v+GVf+MZ/+Hvf/AA1H/wALK/4Xj+zd/wAkH/4bR/4Wx/wnH/CHf8Li/wCE9z/wgP8AxUP/AAjX/CIf8Jb/AMw/+wP7b/4ltAH+j1QB8cfFD/gn1+wP8c/HWu/FL40fsP8A7IHxg+Jvic6cPEnxF+KH7NfwY+IHjrxD/Yuk6b4e0b+3/F/i/wAFatr+rf2VoGlaRo2lfb7+6Fjoun6fptiqWNjZpQB/nmf8O1P+DyP/AKKL+39/4tj8Ef8A0Y9AB/w7U/4PI/8Aoov7f3/i2PwR/wDRj0AH/DtT/g8j/wCii/t/f+LY/BH/ANGPQB/Tz/wbg/s1/wDBY/8AZ3P7ZI/4K1eJPj94i/4S/wD4Z4/4Z/8A+F5ftXaF+1B9j/sL/heh+K3/AAizaN8ZfiwPAxuRrvw4/tr7Z/YJ8T7NE8v+0v7CcaeAfo3+21/wTT/Zs8Z/AP8Aa7+If7O37FH7MFl+3b4s+EPx88ZfAn42+FPgp8EfAfx+s/2udd8G+KtZ+GPxT8M/Hq50Pw94l8G/GK3+Mlzovi/Rvi9c+OdB1vQPGws/F7eLNOv7NtbQA/np/wCCLP8AwTA/4K7at+1N48tf+C7Hw9+IH7TX7JCfALxVP8OvAP7af7SHwq/bm+FekftGj4jfC1fCPi7QfhP4g+MXxus9A8e2fwwb4vaPpPxFXwlYXmjaFr3ivw6Ndso/Fsmn60AfmD/wWV/4Nwf+Chnxh/4KR/tI/EX/AIJ/fsFfD/SP2RfEJ+EB+E2nfDD4gfslfA3wJA2jfAn4X+H/AB8NA+F+ofFLwFdeF/tHxN0vxjdaqLrwfo39t6y2oa+gvk1NNRvQDz//AIdqf8Hkf/RRf2/v/Fsfgj/6MegD+nj/AIIsf8Etvi9q37Lnj6b/AILr/sufD/8Aab/a6i+PniqH4d+Pf21J/gj+3L8U9I/Zx/4Vz8Lm8IeEdA+LPiDX/jdd6B4Ds/ie3xf1fSPhyni6wtNF13XfFfiIaDYyeLH1HWgD+lrwn4U8LeAfC/hvwN4G8NaF4L8D+C9C0fwn4O8HeE9I07w34V8KeFfDWnWuj+HvDPhnw9o9pa6Xofh7Q9LtbPSdG0fSbOysNPsLKzsbGyjs0RaAOooAKAP/1f7+KACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoA/9b+/igAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKAP/Z" + webUI["html/img/filter.png"] = "iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAAAXNSR0IArs4c6QAAAAlwSFlzAAAsSwAALEsBpT2WqQAABCRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IlhNUCBDb3JlIDUuNC4wIj4KICAgPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIgogICAgICAgICAgICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgICAgICAgICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyI+CiAgICAgICAgIDx0aWZmOlJlc29sdXRpb25Vbml0PjI8L3RpZmY6UmVzb2x1dGlvblVuaXQ+CiAgICAgICAgIDx0aWZmOkNvbXByZXNzaW9uPjU8L3RpZmY6Q29tcHJlc3Npb24+CiAgICAgICAgIDx0aWZmOlhSZXNvbHV0aW9uPjI4ODwvdGlmZjpYUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6T3JpZW50YXRpb24+MTwvdGlmZjpPcmllbnRhdGlvbj4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+Mjg4PC90aWZmOllSZXNvbHV0aW9uPgogICAgICAgICA8ZXhpZjpQaXhlbFhEaW1lbnNpb24+NTA8L2V4aWY6UGl4ZWxYRGltZW5zaW9uPgogICAgICAgICA8ZXhpZjpDb2xvclNwYWNlPjE8L2V4aWY6Q29sb3JTcGFjZT4KICAgICAgICAgPGV4aWY6UGl4ZWxZRGltZW5zaW9uPjUwPC9leGlmOlBpeGVsWURpbWVuc2lvbj4KICAgICAgICAgPGRjOnN1YmplY3Q+CiAgICAgICAgICAgIDxyZGY6QmFnLz4KICAgICAgICAgPC9kYzpzdWJqZWN0PgogICAgICAgICA8eG1wOk1vZGlmeURhdGU+MjAxOC0wNy0yOFQxOTowNzo2OTwveG1wOk1vZGlmeURhdGU+CiAgICAgICAgIDx4bXA6Q3JlYXRvclRvb2w+UGl4ZWxtYXRvciAzLjM8L3htcDpDcmVhdG9yVG9vbD4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgIDwvcmRmOlJERj4KPC94OnhtcG1ldGE+Cs038OQAAAOISURBVGgF5ZpLSBVRGMfvvfmqCKKiKCqKtE3SQ8haJJm1ctPCZYHrFhXtohcUBLVsU1BRBJKLXpsSKs1aCL1oUUhvMgIloodZKmLZ72+OzNVx7jzOXGfqg/89Z875zv/7f35n7px7vanUP2JptzyGhoYKmK8GW0EZmA/mgW7wHrwDN0BTOp0epPVtxBBnLdgIVoE5YBboBR2gDTTA/5DWn0FeDPaBz8CLdeF0EBR5jYRvKbgABoAXa8Opwit/CudK8NoLs4PPM8ZyBsNnB/jpsD7X0C8cjgDXnaQkqkEPCGMSuGWivxxzx8OQj6xtpHWuPhPloHfEMWzTD0HN2GQY2xuW2Lb+/Fh+VaIQPLE5meh+gmSxFYz+BjBogtjGscfiH26Z2GmbNNltVQAIpwDdP6ZNO2iRYqTpZGhfgWUaiMC2w1kCzkbALcqLvDVvUyK6MW9HFES0b8BvsFwXEZi4F+iBtykCcjtlqf0igr52VJ1eqiIgzzdlrRIZfWfJd3SD8ZbqHvkB4XSDpJNB9V0VcX/cT4Ys/zEzSuSj/3WxW9GpRD7ETpZ/QcOJ6LyfdHugitxNehbob9G7lo4PXWBmQhPqQ/fsDOeUfjqNCU1Csi+TQ5+2luzc3yaRr6elevQZwhZr4bomYam0U41yabYqov5hvSTMjlp6RyuiAarSTLPZmox5246+lVREx/isiuh6NxhUJwF2yEpCWu1bK8WEsjyRgCSa0XrVrjNra2mC7TWD5ilYAuJoA4jSlnppF5dVEU3g0ENTD4b3nsZiZsfGJuGqj8qY+CINGqP2GLZCJ+HjtpblxAJ9k3cPrLfGJrnVUaSCarxw0jFua1lOLNBerANx+byya6IkLM2uLZWpAl6/Mcc1EjvjKtLrJNLqI5HnjfQ+bsVeteb0g2y/t7hGvd7CNjenOL8OkJ40KtOdTF+Cl/nV6Mkf4gxocI9vZPYLLKs9iQrqRIACcM2IXGeSboYrg+rztY5ARaDJWUeo0W+sXudLTFhnApaAW6FkZy/+yuXasLoCrSfwVHAnW0+gK93YawKJMLUIAdNAKwhqnSxcYUpPKB6EBE2mg7VR///EX24jybTQerXnOC70FyVP3gjTPXPTQyaP8NFPNeJrCNTPP667JKOq6VNo/A2hes5ccUjmEmPmDoD5+FMgWCcA+3FG57QJP//kQ1PgGBIOToEDgUn+t4V/AJeGknwARIKLAAAAAElFTkSuQmCC" + webUI["html/img/logo_b_880x200.jpg"] = "/9j/4AAQSkZJRgABAQABLAEsAAD/4QDIRXhpZgAATU0AKgAAAAgABwESAAMAAAABAAEAAAEaAAUAAAABAAAAYgEbAAUAAAABAAAAagEoAAMAAAABAAIAAAExAAIAAAAPAAAAcgEyAAIAAAAUAAAAgodpAAQAAAABAAAAlgAAAAAAAAEsAAAAAQAAASwAAAABUGl4ZWxtYXRvciAzLjMAADIwMTk6MDg6MDIgMjA6MDg6MTQAAAOgAQADAAAAAQABAACgAgAEAAAAAQAAA3CgAwAEAAAAAQAAAMgAAAAA/+EJkGh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8APD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iWE1QIENvcmUgNS40LjAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcDpDcmVhdG9yVG9vbD0iUGl4ZWxtYXRvciAzLjMiIHhtcDpNb2RpZnlEYXRlPSIyMDE5LTA4LTAyVDIwOjA4OjE0Ii8+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPD94cGFja2V0IGVuZD0idyI/PgD/7QA4UGhvdG9zaG9wIDMuMAA4QklNBAQAAAAAAAA4QklNBCUAAAAAABDUHYzZjwCyBOmACZjs+EJ+/8AAEQgAyANwAwERAAIRAQMRAf/EAB8AAAEFAQEBAQEBAAAAAAAAAAABAgMEBQYHCAkKC//EALUQAAIBAwMCBAMFBQQEAAABfQECAwAEEQUSITFBBhNRYQcicRQygZGhCCNCscEVUtHwJDNicoIJChYXGBkaJSYnKCkqNDU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6g4SFhoeIiYqSk5SVlpeYmZqio6Slpqeoqaqys7S1tre4ubrCw8TFxsfIycrS09TV1tfY2drh4uPk5ebn6Onq8fLz9PX29/j5+v/EAB8BAAMBAQEBAQEBAQEAAAAAAAABAgMEBQYHCAkKC//EALURAAIBAgQEAwQHBQQEAAECdwABAgMRBAUhMQYSQVEHYXETIjKBCBRCkaGxwQkjM1LwFWJy0QoWJDThJfEXGBkaJicoKSo1Njc4OTpDREVGR0hJSlNUVVZXWFlaY2RlZmdoaWpzdHV2d3h5eoKDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uLj5OXm5+jp6vLz9PX29/j5+v/bAEMAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAf/bAEMBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAf/dAAQAbv/aAAwDAQACEQMRAD8A/iHoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKAP/9D+IegAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoA//0f4h6ACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgD//S/iHoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKAP/9P+IegAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoA//1P4h6ACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgDvPDXws+J3jPT31bwf8OfHnivSo7mSyfU/DXhDxBrunpeQpFLNaPe6Xp11bLcxRzwSSQNL5saTROyhZUNAHQf8M//AB4/6In8XP8Aw23jL/5TUAH/AAz/APHj/oifxc/8Nt4y/wDl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f/E3xn4o+IPjnxDLaafp8mveMPGet33iPxNrMlhpNpYaVZPqmtale3z2mmWNlp9s05hsrS2tkjhQA4ygAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgD//S/iHoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAczu+N7M2BgbmLYHoM9BnJxx1/FgBtABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAOLuwVWZiq/dUsSFz12joM4HQduc4FADaACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgD//0/4h6ACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgD//U/iHoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKAP/9X+IegAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoA//1v4h6ACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgD//X/iHoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKAP/9k=" webUI["html/img/logout.png"] = "iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAAAXNSR0IArs4c6QAAAAlwSFlzAAAsSwAALEsBpT2WqQAABCRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IlhNUCBDb3JlIDUuNC4wIj4KICAgPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIgogICAgICAgICAgICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgICAgICAgICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyI+CiAgICAgICAgIDx0aWZmOlJlc29sdXRpb25Vbml0PjI8L3RpZmY6UmVzb2x1dGlvblVuaXQ+CiAgICAgICAgIDx0aWZmOkNvbXByZXNzaW9uPjU8L3RpZmY6Q29tcHJlc3Npb24+CiAgICAgICAgIDx0aWZmOlhSZXNvbHV0aW9uPjI4ODwvdGlmZjpYUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6T3JpZW50YXRpb24+MTwvdGlmZjpPcmllbnRhdGlvbj4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+Mjg4PC90aWZmOllSZXNvbHV0aW9uPgogICAgICAgICA8ZXhpZjpQaXhlbFhEaW1lbnNpb24+NTA8L2V4aWY6UGl4ZWxYRGltZW5zaW9uPgogICAgICAgICA8ZXhpZjpDb2xvclNwYWNlPjE8L2V4aWY6Q29sb3JTcGFjZT4KICAgICAgICAgPGV4aWY6UGl4ZWxZRGltZW5zaW9uPjUwPC9leGlmOlBpeGVsWURpbWVuc2lvbj4KICAgICAgICAgPGRjOnN1YmplY3Q+CiAgICAgICAgICAgIDxyZGY6QmFnLz4KICAgICAgICAgPC9kYzpzdWJqZWN0PgogICAgICAgICA8eG1wOk1vZGlmeURhdGU+MjAxOC0xMC0xM1QxMToxMDoxODwveG1wOk1vZGlmeURhdGU+CiAgICAgICAgIDx4bXA6Q3JlYXRvclRvb2w+UGl4ZWxtYXRvciAzLjM8L3htcDpDcmVhdG9yVG9vbD4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgIDwvcmRmOlJERj4KPC94OnhtcG1ldGE+Cg27QeEAAANQSURBVGgF7Zk9aBRBGIZzSRSN8YdoCpEkghCCqK1o4g9IsBCCNmIniCAiWAhqI8G02qiIoqCCWggSEcFKEFPYpVAU8QdFUyiKRpRokBjP55OdZDLZvZnZ7N3Ngh887M7sN/O9797t7c5eTc3/8D8DxWKxGS5Ai//oAEYgvB4OwleQaAtAlp8ERG+Bp6Jei/wYQfRy6NfE67vhG0FtA/TBqK7c2A/bCGJ3wpAhOq4ZphGUroEHcYoT+sIygsgmOAu/EwQndYdhBHV1sB8+Jym19Lf6/faVIRuBG+GRRajtcPWMoKwFbtgUOh6vvBGEzYFj8MNRpEtaZY2gaAe8cVHmmXOc/K3QXIZv/+SUFFgJ96AS8ZwiZ6Ab6iZVzGCPiRbCKRiDasQHip6EdD/PDKyFvfAJQgg5kVfB/VoieT0MQojxE1G9UG/7otWS0A7pPkrb7DM/Ppcp+mAAM/bFGEmL4RL8gVDjI8JWOZ0bEjvhSahO0CXXsLMZWZYegREIMV4jaoHTJyNJJLfC7RCdoOm6sxGVyKAeeBegoU6l0XmLiXlwAqp1o4w7j3d1AwW9YdtnNrnQzkOXLddyfAPHv8Ey6ABpd8N88In2QqHwymfARC5mCrAH0i6qGDr9jk3fbNgFz8A1DkwIS7tDpSVwGdLcexIfPZhPHpf2wS+wRX9a/dPGUakLzBdwNgGJRlQBJtgMw5aJ3qr8TLYUmwVHwXXxZTUiwphvHYxDUnzPxIA5CdXa4E5SVa3fyUhkRtYqpSKbNYxpJiq+ncpDJar7GGlknvcl5mqM05BZH4Xl3iOLpLh7j7OR6MScSzAykplg20QIWA0PDSG+RuTdQVy8sNXP9DgK5N4jK9AvkRpfI4sYF/c2836mQl0nQ4zce66AfZFkTMqYl2DGaSMt/CYOHpsuaPco5bLUzUuMGkLHaQ+ovjwZUZrVdpAHRnnw/Bd5MrJCiY62t4x2+E2uBfkfRg95TdSkK8/LJ7JWF83+Nb5Ww0Zf+E3OviwXVMgT8dLwVRsKEd0A+uP8biMlH01MHAYVF/Oh2lCJenkDqpbUN9nPyzU91QnCRbyEPEXn1sQhxMv7tG1T7cW3rK/r44eVtxfxm6gwBh38zJqPJuUtXu3Z/wLwuBaBLgMkKwAAAABJRU5ErkJggg==" webUI["html/img/mapping.png"] = "iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAAAXNSR0IArs4c6QAAAAlwSFlzAAAsSwAALEsBpT2WqQAABCRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IlhNUCBDb3JlIDUuNC4wIj4KICAgPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIgogICAgICAgICAgICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgICAgICAgICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyI+CiAgICAgICAgIDx0aWZmOlJlc29sdXRpb25Vbml0PjI8L3RpZmY6UmVzb2x1dGlvblVuaXQ+CiAgICAgICAgIDx0aWZmOkNvbXByZXNzaW9uPjU8L3RpZmY6Q29tcHJlc3Npb24+CiAgICAgICAgIDx0aWZmOlhSZXNvbHV0aW9uPjI4ODwvdGlmZjpYUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6T3JpZW50YXRpb24+MTwvdGlmZjpPcmllbnRhdGlvbj4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+Mjg4PC90aWZmOllSZXNvbHV0aW9uPgogICAgICAgICA8ZXhpZjpQaXhlbFhEaW1lbnNpb24+NTA8L2V4aWY6UGl4ZWxYRGltZW5zaW9uPgogICAgICAgICA8ZXhpZjpDb2xvclNwYWNlPjE8L2V4aWY6Q29sb3JTcGFjZT4KICAgICAgICAgPGV4aWY6UGl4ZWxZRGltZW5zaW9uPjUwPC9leGlmOlBpeGVsWURpbWVuc2lvbj4KICAgICAgICAgPGRjOnN1YmplY3Q+CiAgICAgICAgICAgIDxyZGY6QmFnLz4KICAgICAgICAgPC9kYzpzdWJqZWN0PgogICAgICAgICA8eG1wOk1vZGlmeURhdGU+MjAxOC0wOC0wMlQxMjowODo5NzwveG1wOk1vZGlmeURhdGU+CiAgICAgICAgIDx4bXA6Q3JlYXRvclRvb2w+UGl4ZWxtYXRvciAzLjM8L3htcDpDcmVhdG9yVG9vbD4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgIDwvcmRmOlJERj4KPC94OnhtcG1ldGE+CpRxQsEAAAJLSURBVGgF7VoxTgMxEMwBHWlAaeABVCEtBcoD+EBewCdCyQsQtLyAPCBvCBSRIBUPCF1ogqBJjlkrezGr6HTrO98lhy1Z9trr2VmvnbMNjUadUhzHLeQB8hw5LS3QOUbubvIf7X3kKXIZibgS51bCZdWgMT6D8nECgArkngagQN0B8dhbkblalVmLIyheCGUthhjuLBq77MihA0xTjHHBEBBOorHLjjghbNOg4Mg2RYO4hIiEiHiaAV5aSwf8hRgjZdHtTTTc2ZFXpZkY+hMx5k3IZYlr7jgudJHp2JElLaF0K1mirYn8nAWgQB3ibM59ERNCA52d6Nghv9isQiUtn0kURe92I9eBcYA6YZxym8dyDuwRuMw82gjQYQbsPdLDdNCROO0US3uEfp3usTZpjf5J2CNtNFwjl7FHvmBnCB5PCQkQoJudJtGvE23sJEFuI39rQArS7dskXK6nlwkAKiB1VxAxLcyUePAH8cQmlbEul4+UM8LkVjPc2ZHcaFUDBEeqjoC0HyIiZ6RqOUSk6ghI+xyRD9mRQTYfIktPylaX16rhzo48KE29QH8kxjxC/hFtZYiGe70OjWVMW7Dx32bA3iO7//iAC8DOPweZFQhH6O+CmkRvW2f28oV8owEoUHdMPPg70rFJZajTkqT7uZ3ObaHEuuHOjnCpsb8vlKUsur2JhruLA94Y5QEOjuSZPR9jQ0R8zGoezNpFhN5RtUm+/bpgaG1u0jd2OSLDTRopbZ/okxcrLUYKvKprbRfHhXr8m5PK/y1V/gWRKLfiNSmxEAAAAABJRU5ErkJggg==" - webUI["html/img/users.png"] = "iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAAAXNSR0IArs4c6QAAAAlwSFlzAAAsSwAALEsBpT2WqQAABCRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IlhNUCBDb3JlIDUuNC4wIj4KICAgPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIgogICAgICAgICAgICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgICAgICAgICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyI+CiAgICAgICAgIDx0aWZmOlJlc29sdXRpb25Vbml0PjI8L3RpZmY6UmVzb2x1dGlvblVuaXQ+CiAgICAgICAgIDx0aWZmOkNvbXByZXNzaW9uPjU8L3RpZmY6Q29tcHJlc3Npb24+CiAgICAgICAgIDx0aWZmOlhSZXNvbHV0aW9uPjI4ODwvdGlmZjpYUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6T3JpZW50YXRpb24+MTwvdGlmZjpPcmllbnRhdGlvbj4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+Mjg4PC90aWZmOllSZXNvbHV0aW9uPgogICAgICAgICA8ZXhpZjpQaXhlbFhEaW1lbnNpb24+NTA8L2V4aWY6UGl4ZWxYRGltZW5zaW9uPgogICAgICAgICA8ZXhpZjpDb2xvclNwYWNlPjE8L2V4aWY6Q29sb3JTcGFjZT4KICAgICAgICAgPGV4aWY6UGl4ZWxZRGltZW5zaW9uPjUwPC9leGlmOlBpeGVsWURpbWVuc2lvbj4KICAgICAgICAgPGRjOnN1YmplY3Q+CiAgICAgICAgICAgIDxyZGY6QmFnLz4KICAgICAgICAgPC9kYzpzdWJqZWN0PgogICAgICAgICA8eG1wOk1vZGlmeURhdGU+MjAxOC0wOC0zMFQxNzowODozODwveG1wOk1vZGlmeURhdGU+CiAgICAgICAgIDx4bXA6Q3JlYXRvclRvb2w+UGl4ZWxtYXRvciAzLjM8L3htcDpDcmVhdG9yVG9vbD4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgIDwvcmRmOlJERj4KPC94OnhtcG1ldGE+CjU01MMAAANJSURBVGgF1ZnLaxNRFMYz2rpoFbW+SCsihaJQRMT6rPhAXAq6c+HChSguRFd1oRtd+A/oWhQ3oiiWFB91UbqRqlXXgoIIQhFbQTTQao2/GzLDZEjIPefO7SQHPjJz55zzfd/MZCa5N8h5ilKptJvWp8FekAed4Bv4Cj6Dh2A4CIJZPpszMHEV2MQ0SZdB0DROENMHjoEzQBoFCpZnbgYR58E/qfpE/kv2F2dmBvJ94G9ClHb3SiZGUBuASa3qGnVzjG3RmFmkKYrVHGB7e2zfdbOdBhc1TVyNnNSQNqg5wVURf/FdjRxpIEpzuIOio9JCtRHO2hrINkgJLfPFt6vaCII2WYrSpPVJi1RGuBrmTbxeSibIX5j3CUauAfOo9BXzNH4nMJ5TXREI1gHzqPQVRtc2zCyxJdAaGbclcMj7zi/jOdt6rZFhCH7akijznknqVEY4U78heSAhUuTekNSojFQIChIiYe57TtZrSY2LkecQzUjIBLljglz3VJ4qg+AXSDNGabbWXZ2wA6Qjabqg136hhHK6y60V8o2EGyl8/qHHpKZPGkYeQzyvIa9RM86XvFhjvOGQsxGIp2B50ZDJLuG2XZqnLO5rM3viGh9o0OZJon1bRLxxdHLcns1jJiYOAu2U0D2P0uStMXJdcVU+UdMlZ/NYgaA28ERg5ge5/R4l6VsjrANMWJiZJWeXnqm60vnxW90ul6u8ByaS4zX2i+S+qjGuGkrdSEWFzT1vlhlSC19Gui0UtnNriSfi6vX1ZWRjPcLEeGrzYqkb4SyvQGxvQnC93cF6BzIfx8gpYBsfSdycuei4AAR1ggugCCRh1lbugIF4vwXbhtisjfSDc+ARSOOf4lv6mNWv1VIj1ouQNF9K851gDzArtWbV1uYxS5o4zB+sp+AuKPC+cVv5RXwPuATMmUpreY1Wopgh+ybYKj4dFHWB+8DMwTZTjCHmsJUhEgfAF9DMcQtx9V8dHMyDqWZ2ENM2FL8yVV92kkY56GM5Lc6Z1vY0jbp5EJQnuqPLg4kdLWTCnIxVIJoDi4wweNYcbbGIfuLEjRxqMRNGbvTvsmyE22oZg70taKQn1BxekXw40GKfK0O9oZHsJ8ZCRbLPaI3xP7YzeQoHxWckAAAAAElFTkSuQmCC" webUI["html/img/xmltv.png"] = "iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAAAXNSR0IArs4c6QAAAAlwSFlzAAAsSwAALEsBpT2WqQAABCRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IlhNUCBDb3JlIDUuNC4wIj4KICAgPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIgogICAgICAgICAgICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgICAgICAgICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyI+CiAgICAgICAgIDx0aWZmOlJlc29sdXRpb25Vbml0PjI8L3RpZmY6UmVzb2x1dGlvblVuaXQ+CiAgICAgICAgIDx0aWZmOkNvbXByZXNzaW9uPjU8L3RpZmY6Q29tcHJlc3Npb24+CiAgICAgICAgIDx0aWZmOlhSZXNvbHV0aW9uPjI4ODwvdGlmZjpYUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6T3JpZW50YXRpb24+MTwvdGlmZjpPcmllbnRhdGlvbj4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+Mjg4PC90aWZmOllSZXNvbHV0aW9uPgogICAgICAgICA8ZXhpZjpQaXhlbFhEaW1lbnNpb24+NTA8L2V4aWY6UGl4ZWxYRGltZW5zaW9uPgogICAgICAgICA8ZXhpZjpDb2xvclNwYWNlPjE8L2V4aWY6Q29sb3JTcGFjZT4KICAgICAgICAgPGV4aWY6UGl4ZWxZRGltZW5zaW9uPjUwPC9leGlmOlBpeGVsWURpbWVuc2lvbj4KICAgICAgICAgPGRjOnN1YmplY3Q+CiAgICAgICAgICAgIDxyZGY6QmFnLz4KICAgICAgICAgPC9kYzpzdWJqZWN0PgogICAgICAgICA8eG1wOk1vZGlmeURhdGU+MjAxOC0wNy0yOFQyMDowNzozMzwveG1wOk1vZGlmeURhdGU+CiAgICAgICAgIDx4bXA6Q3JlYXRvclRvb2w+UGl4ZWxtYXRvciAzLjM8L3htcDpDcmVhdG9yVG9vbD4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgIDwvcmRmOlJERj4KPC94OnhtcG1ldGE+Co6j9bsAAAGgSURBVGgF7VqxTsNADL0gYGEon8DOwsbAAH8BYmJn6cYIn8DC3h0+oixISFRiYYCJL0AwMMBAeK5w2rpV6uikxHfYknW98+vds18TK21DWGBlWR7CH+BfcEv2AzLP8HP42gLqkyUATuEp2PWEdQjF9ATs1zF/g29Mrxt+vVcUxR3xWxEktzFPJQmivsv8ZSI9DiQyVnxlIonwn6fpiczXpNuVVXH8O+a3Ys3y9NUyuf/NTTbEHZTjUlGSRzSiPhroUIENwB4AS/vS/susDwDhTpYBER9g7wHh5DWyibV9CiitCZbIafDEYUuJHQI3Nr/9ciWsjK6IFSWYhyvClbAyZqOIlYJG84jq7E1Ot97Zm+TinV1TrWwudk9EI3ebGFekzWprzspGEU2ySWCiOrs/s9dr7M/s9fVJJJrNXcsTsfaJc0WsKZINH+/sf1Jqvl1n1f2ZnStRN/pdq646XcSkIh9dkIg4s+IrE3nCpp8RG7f91ns+cCYR/LD4jcAZB42PN+A7/mcQ8ZxJhBYQvMJwBB/BKTFLVoLMC/wCfgyv7BesTKUC2LKM3wAAAABJRU5ErkJggg==" webUI["html/js/configuration_ts.js"] = "Y2xhc3MgV2l6YXJkQ2F0ZWdvcnkgew0KICAgIGNvbnN0cnVjdG9yKCkgew0KICAgICAgICB0aGlzLkRvY3VtZW50SUQgPSAiY29udGVudCI7DQogICAgfQ0KICAgIGNyZWF0ZUNhdGVnb3J5SGVhZGxpbmUodmFsdWUpIHsNCiAgICAgICAgdmFyIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJINCIpOw0KICAgICAgICBlbGVtZW50LmlubmVySFRNTCA9IHZhbHVlOw0KICAgICAgICByZXR1cm4gZWxlbWVudDsNCiAgICB9DQp9DQpjbGFzcyBXaXphcmRJdGVtIGV4dGVuZHMgV2l6YXJkQ2F0ZWdvcnkgew0KICAgIGNvbnN0cnVjdG9yKGtleSwgaGVhZGxpbmUpIHsNCiAgICAgICAgc3VwZXIoKTsNCiAgICAgICAgdGhpcy5oZWFkbGluZSA9IGhlYWRsaW5lOw0KICAgICAgICB0aGlzLmtleSA9IGtleTsNCiAgICB9DQogICAgY3JlYXRlV2l6YXJkKCkgew0KICAgICAgICB2YXIgaGVhZGxpbmUgPSB0aGlzLmNyZWF0ZUNhdGVnb3J5SGVhZGxpbmUodGhpcy5oZWFkbGluZSk7DQogICAgICAgIHZhciBrZXkgPSB0aGlzLmtleTsNCiAgICAgICAgdmFyIGNvbnRlbnQgPSBuZXcgUG9wdXBDb250ZW50KCk7DQogICAgICAgIHZhciBkZXNjcmlwdGlvbjsNCiAgICAgICAgdmFyIGRvYyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHRoaXMuRG9jdW1lbnRJRCk7DQogICAgICAgIGRvYy5pbm5lckhUTUwgPSAiIjsNCiAgICAgICAgZG9jLmFwcGVuZENoaWxkKGhlYWRsaW5lKTsNCiAgICAgICAgc3dpdGNoIChrZXkpIHsNCiAgICAgICAgICAgIGNhc2UgInR1bmVyIjoNCiAgICAgICAgICAgICAgICB2YXIgdGV4dCA9IG5ldyBBcnJheSgpOw0KICAgICAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBuZXcgQXJyYXkoKTsNCiAgICAgICAgICAgICAgICBmb3IgKHZhciBpID0gMTsgaSA8PSAxMDA7IGkrKykgew0KICAgICAgICAgICAgICAgICAgICB0ZXh0LnB1c2goaSk7DQogICAgICAgICAgICAgICAgICAgIHZhbHVlcy5wdXNoKGkpOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCAiMSIsIGtleSk7DQogICAgICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgiY2xhc3MiLCAid2l6YXJkIik7DQogICAgICAgICAgICAgICAgc2VsZWN0LmlkID0ga2V5Ow0KICAgICAgICAgICAgICAgIGRvYy5hcHBlbmRDaGlsZChzZWxlY3QpOw0KICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uID0gInt7LndpemFyZC50dW5lci5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImVwZ1NvdXJjZSI6DQogICAgICAgICAgICAgICAgdmFyIHRleHQgPSBbIlBNUyIsICJYRVBHIl07DQogICAgICAgICAgICAgICAgdmFyIHZhbHVlcyA9IFsiUE1TIiwgIlhFUEciXTsNCiAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCAiWEVQRyIsIGtleSk7DQogICAgICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgiY2xhc3MiLCAid2l6YXJkIik7DQogICAgICAgICAgICAgICAgc2VsZWN0LmlkID0ga2V5Ow0KICAgICAgICAgICAgICAgIGRvYy5hcHBlbmRDaGlsZChzZWxlY3QpOw0KICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uID0gInt7LndpemFyZC5lcGdTb3VyY2UuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJtM3UiOg0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBrZXksICIiKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LndpemFyZC5tM3UucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgiY2xhc3MiLCAid2l6YXJkIik7DQogICAgICAgICAgICAgICAgaW5wdXQuaWQgPSBrZXk7DQogICAgICAgICAgICAgICAgZG9jLmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbiA9ICJ7ey53aXphcmQubTN1LmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAieG1sdHYiOg0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBrZXksICIiKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LndpemFyZC54bWx0di5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJjbGFzcyIsICJ3aXphcmQiKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5pZCA9IGtleTsNCiAgICAgICAgICAgICAgICBkb2MuYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uID0gInt7LndpemFyZC54bWx0di5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICAgICAgY29uc29sZS5sb2coa2V5KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgfQ0KICAgICAgICB2YXIgcHJlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiUFJFIik7DQogICAgICAgIHByZS5pbm5lckhUTUwgPSBkZXNjcmlwdGlvbjsNCiAgICAgICAgZG9jLmFwcGVuZENoaWxkKHByZSk7DQogICAgICAgIGNvbnNvbGUubG9nKGhlYWRsaW5lLCBrZXkpOw0KICAgIH0NCn0NCmZ1bmN0aW9uIHJlYWR5Rm9yQ29uZmlndXJhdGlvbih3aXphcmQpIHsNCiAgICB2YXIgc2VydmVyID0gbmV3IFNlcnZlcigiZ2V0U2VydmVyQ29uZmlnIik7DQogICAgc2VydmVyLnJlcXVlc3QobmV3IE9iamVjdCgpKTsNCiAgICBzaG93RWxlbWVudCgibG9hZGluZyIsIGZhbHNlKTsNCiAgICBjb25maWd1cmF0aW9uV2l6YXJkW3dpemFyZF0uY3JlYXRlV2l6YXJkKCk7DQp9DQpmdW5jdGlvbiBzYXZlV2l6YXJkKCkgew0KICAgIHZhciBjbWQgPSAic2F2ZVdpemFyZCI7DQogICAgdmFyIGRpdiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb250ZW50Iik7DQogICAgdmFyIGNvbmZpZyA9IGRpdi5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCJ3aXphcmQiKTsNCiAgICB2YXIgd2l6YXJkID0gbmV3IE9iamVjdCgpOw0KICAgIGZvciAodmFyIGkgPSAwOyBpIDwgY29uZmlnLmxlbmd0aDsgaSsrKSB7DQogICAgICAgIHZhciBuYW1lOw0KICAgICAgICB2YXIgdmFsdWU7DQogICAgICAgIHN3aXRjaCAoY29uZmlnW2ldLnRhZ05hbWUpIHsNCiAgICAgICAgICAgIGNhc2UgIlNFTEVDVCI6DQogICAgICAgICAgICAgICAgbmFtZSA9IGNvbmZpZ1tpXS5uYW1lOw0KICAgICAgICAgICAgICAgIHZhbHVlID0gY29uZmlnW2ldLnZhbHVlOw0KICAgICAgICAgICAgICAgIC8vIFdlbm4gZGVyIFdlcnQgZWluZSBaYWhsIGlzdCwgd2lyZCBkaWVzZXIgYWxzIFphaGwgZ2VzcGVpY2hlcnQNCiAgICAgICAgICAgICAgICBpZiAoaXNOYU4odmFsdWUpKSB7DQogICAgICAgICAgICAgICAgICAgIHdpemFyZFtuYW1lXSA9IHZhbHVlOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICAgICAgd2l6YXJkW25hbWVdID0gcGFyc2VJbnQodmFsdWUpOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgIklOUFVUIjoNCiAgICAgICAgICAgICAgICBzd2l0Y2ggKGNvbmZpZ1tpXS50eXBlKSB7DQogICAgICAgICAgICAgICAgICAgIGNhc2UgInRleHQiOg0KICAgICAgICAgICAgICAgICAgICAgICAgbmFtZSA9IGNvbmZpZ1tpXS5uYW1lOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSBjb25maWdbaV0udmFsdWU7DQogICAgICAgICAgICAgICAgICAgICAgICBpZiAodmFsdWUubGVuZ3RoID09IDApIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgbXNnID0gbmFtZS50b1VwcGVyQ2FzZSgpICsgIjogIiArICJ7ey5hbGVydC5taXNzaW5nSW5wdXR9fSI7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgYWxlcnQobXNnKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICB3aXphcmRbbmFtZV0gPSB2YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICAgICAgLy8gY29kZS4uLg0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICB9DQogICAgfQ0KICAgIHZhciBkYXRhID0gbmV3IE9iamVjdCgpOw0KICAgIGRhdGFbIndpemFyZCJdID0gd2l6YXJkOw0KICAgIHZhciBzZXJ2ZXIgPSBuZXcgU2VydmVyKGNtZCk7DQogICAgc2VydmVyLnJlcXVlc3QoZGF0YSk7DQogICAgY29uc29sZS5sb2coZGF0YSk7DQp9DQovLyBXaXphcmQNCnZhciBjb25maWd1cmF0aW9uV2l6YXJkID0gbmV3IEFycmF5KCk7DQpjb25maWd1cmF0aW9uV2l6YXJkLnB1c2gobmV3IFdpemFyZEl0ZW0oInR1bmVyIiwgInt7LndpemFyZC50dW5lci50aXRsZX19IikpOw0KY29uZmlndXJhdGlvbldpemFyZC5wdXNoKG5ldyBXaXphcmRJdGVtKCJlcGdTb3VyY2UiLCAie3sud2l6YXJkLmVwZ1NvdXJjZS50aXRsZX19IikpOw0KY29uZmlndXJhdGlvbldpemFyZC5wdXNoKG5ldyBXaXphcmRJdGVtKCJtM3UiLCAie3sud2l6YXJkLm0zdS50aXRsZX19IikpOw0KY29uZmlndXJhdGlvbldpemFyZC5wdXNoKG5ldyBXaXphcmRJdGVtKCJ4bWx0diIsICJ7ey53aXphcmQueG1sdHYudGl0bGV9fSIpKTsNCg==" - webUI["html/img/logo_b_880x200.jpg"] = "/9j/4AAQSkZJRgABAQABLAEsAAD/4QDIRXhpZgAATU0AKgAAAAgABwESAAMAAAABAAEAAAEaAAUAAAABAAAAYgEbAAUAAAABAAAAagEoAAMAAAABAAIAAAExAAIAAAAPAAAAcgEyAAIAAAAUAAAAgodpAAQAAAABAAAAlgAAAAAAAAEsAAAAAQAAASwAAAABUGl4ZWxtYXRvciAzLjMAADIwMTk6MDg6MDIgMjA6MDg6MTQAAAOgAQADAAAAAQABAACgAgAEAAAAAQAAA3CgAwAEAAAAAQAAAMgAAAAA/+EJkGh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8APD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iWE1QIENvcmUgNS40LjAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcDpDcmVhdG9yVG9vbD0iUGl4ZWxtYXRvciAzLjMiIHhtcDpNb2RpZnlEYXRlPSIyMDE5LTA4LTAyVDIwOjA4OjE0Ii8+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPD94cGFja2V0IGVuZD0idyI/PgD/7QA4UGhvdG9zaG9wIDMuMAA4QklNBAQAAAAAAAA4QklNBCUAAAAAABDUHYzZjwCyBOmACZjs+EJ+/8AAEQgAyANwAwERAAIRAQMRAf/EAB8AAAEFAQEBAQEBAAAAAAAAAAABAgMEBQYHCAkKC//EALUQAAIBAwMCBAMFBQQEAAABfQECAwAEEQUSITFBBhNRYQcicRQygZGhCCNCscEVUtHwJDNicoIJChYXGBkaJSYnKCkqNDU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6g4SFhoeIiYqSk5SVlpeYmZqio6Slpqeoqaqys7S1tre4ubrCw8TFxsfIycrS09TV1tfY2drh4uPk5ebn6Onq8fLz9PX29/j5+v/EAB8BAAMBAQEBAQEBAQEAAAAAAAABAgMEBQYHCAkKC//EALURAAIBAgQEAwQHBQQEAAECdwABAgMRBAUhMQYSQVEHYXETIjKBCBRCkaGxwQkjM1LwFWJy0QoWJDThJfEXGBkaJicoKSo1Njc4OTpDREVGR0hJSlNUVVZXWFlaY2RlZmdoaWpzdHV2d3h5eoKDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uLj5OXm5+jp6vLz9PX29/j5+v/bAEMAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAf/bAEMBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAf/dAAQAbv/aAAwDAQACEQMRAD8A/iHoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKAP/9D+IegAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoA//0f4h6ACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgD//S/iHoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKAP/9P+IegAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoA//1P4h6ACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgDvPDXws+J3jPT31bwf8OfHnivSo7mSyfU/DXhDxBrunpeQpFLNaPe6Xp11bLcxRzwSSQNL5saTROyhZUNAHQf8M//AB4/6In8XP8Aw23jL/5TUAH/AAz/APHj/oifxc/8Nt4y/wDl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f/E3xn4o+IPjnxDLaafp8mveMPGet33iPxNrMlhpNpYaVZPqmtale3z2mmWNlp9s05hsrS2tkjhQA4ygAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgD//S/iHoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAczu+N7M2BgbmLYHoM9BnJxx1/FgBtABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAOLuwVWZiq/dUsSFz12joM4HQduc4FADaACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgD//0/4h6ACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgD//U/iHoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKAP/9X+IegAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoA//1v4h6ACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgD//X/iHoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKAP/9k=" + webUI["html/img/x_ transparent.png"] = "iVBORw0KGgoAAAANSUhEUgAAAQAAAAEACAYAAABccqhmAAAAAXNSR0IArs4c6QAAAAlwSFlzAAAWJQAAFiUBSVIk8AAAA6ppVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IlhNUCBDb3JlIDUuNC4wIj4KICAgPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIgogICAgICAgICAgICB4bWxuczp0aWZmPSJodHRwOi8vbnMuYWRvYmUuY29tL3RpZmYvMS4wLyIKICAgICAgICAgICAgeG1sbnM6ZXhpZj0iaHR0cDovL25zLmFkb2JlLmNvbS9leGlmLzEuMC8iPgogICAgICAgICA8eG1wOk1vZGlmeURhdGU+MjAxOC0xMS0xNVQxNzoxMTo3NjwveG1wOk1vZGlmeURhdGU+CiAgICAgICAgIDx4bXA6Q3JlYXRvclRvb2w+UGl4ZWxtYXRvciAzLjM8L3htcDpDcmVhdG9yVG9vbD4KICAgICAgICAgPHRpZmY6T3JpZW50YXRpb24+MTwvdGlmZjpPcmllbnRhdGlvbj4KICAgICAgICAgPHRpZmY6Q29tcHJlc3Npb24+NTwvdGlmZjpDb21wcmVzc2lvbj4KICAgICAgICAgPHRpZmY6UmVzb2x1dGlvblVuaXQ+MjwvdGlmZjpSZXNvbHV0aW9uVW5pdD4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+MTQ0PC90aWZmOllSZXNvbHV0aW9uPgogICAgICAgICA8dGlmZjpYUmVzb2x1dGlvbj4xNDQ8L3RpZmY6WFJlc29sdXRpb24+CiAgICAgICAgIDxleGlmOlBpeGVsWERpbWVuc2lvbj4yNTY8L2V4aWY6UGl4ZWxYRGltZW5zaW9uPgogICAgICAgICA8ZXhpZjpDb2xvclNwYWNlPjE8L2V4aWY6Q29sb3JTcGFjZT4KICAgICAgICAgPGV4aWY6UGl4ZWxZRGltZW5zaW9uPjI1NjwvZXhpZjpQaXhlbFlEaW1lbnNpb24+CiAgICAgIDwvcmRmOkRlc2NyaXB0aW9uPgogICA8L3JkZjpSREY+CjwveDp4bXBtZXRhPgoeXQb1AAAaJElEQVR4Ae2dCZhcVZXHz+1KSFiGkISkqyIoOgI68EkgOBNkEcQRlIFRZDGABAQEhInGbxw+RUZRNhWRLawDYR0GHAaHUVkGvwGURUcgwIiAOGxjV3UHAslHQrbuM/9TlQ6d7qruWt527/u/7+uuqvvucu7vvnveuffde54IDxIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARLwiIDzQtayHi0q23shaydCOnlISu7nnWThRdrFOkPWyCleyNqJkF1yjhTd8k6yiDvtuLgLiCR/lVnIZ14keWU7k2Xyuu4oU92r2RazQ+nWypXI4W86zCXbyZ28KBvJ97MtpEhX1gWsyleS08TJU17I2omQKpvLarmqkywyn7ZHPw9rLvTOvwbX6xEyxS3Nenv4oQCcWwmQc/D3dtaBdiyfyv5S1mM7zieLGSzWEsS6KIuiRSzTGTD9H404z1iy80MBWNVL7hn8nx8LhaxlqnKBvKbvyppYHctTM/0nd5xPljNwcrcUs2/6DyL0RwGYxDOcjR3vGBQ+4M8tMElmdQ3n6NGjYPofGE6F6tTESRmm/1xxTuuczWSQH08BhqJbqlNkuTyJoK2GBgf53S6mkrvB+7qZ6b9Gfod6hHv3dzKAGbX9pNvd51N7+WUBGNlJbgm07FH4G/AJdFuyqlwotXFzW8kzk2itXAFZwu38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" + webUI["html/js/menu_ts.js"] = "Y2xhc3MgTWFpbk1lbnUgew0KICAgIGNvbnN0cnVjdG9yKCkgew0KICAgICAgICB0aGlzLkRvY3VtZW50SUQgPSAibWFpbi1tZW51IjsNCiAgICAgICAgdGhpcy5IVE1MVGFnID0gIkxJIjsNCiAgICAgICAgdGhpcy5JbWFnZVBhdGggPSAiaW1nLyI7DQogICAgfQ0KICAgIGNyZWF0ZUlNRyhzcmMpIHsNCiAgICAgICAgbGV0IGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJJTUciKTsNCiAgICAgICAgZWxlbWVudC5zZXRBdHRyaWJ1dGUoInNyYyIsIHRoaXMuSW1hZ2VQYXRoICsgc3JjKTsNCiAgICAgICAgcmV0dXJuIGVsZW1lbnQ7DQogICAgfQ0KICAgIGNyZWF0ZVZhbHVlKHZhbHVlKSB7DQogICAgICAgIGxldCBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiUCIpOw0KICAgICAgICBlbGVtZW50LmlubmVySFRNTCA9IHZhbHVlOw0KICAgICAgICByZXR1cm4gZWxlbWVudDsNCiAgICB9DQp9DQpjbGFzcyBNYWluTWVudUl0ZW0gZXh0ZW5kcyBNYWluTWVudSB7DQogICAgY29uc3RydWN0b3IobWVudUtleSwgdmFsdWUsIGltYWdlLCBoZWFkbGluZSkgew0KICAgICAgICBzdXBlcigpOw0KICAgICAgICB0aGlzLm1lbnVLZXkgPSBtZW51S2V5Ow0KICAgICAgICB0aGlzLnZhbHVlID0gdmFsdWU7DQogICAgICAgIHRoaXMuaW1nU3JjID0gaW1hZ2U7DQogICAgICAgIHRoaXMuaGVhZGxpbmUgPSBoZWFkbGluZTsNCiAgICB9DQogICAgY3JlYXRlSXRlbSgpIHsNCiAgICAgICAgbGV0IGl0ZW0gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJMSSIpOw0KICAgICAgICBpdGVtLnNldEF0dHJpYnV0ZSgib25jbGljayIsICJqYXZhc2NyaXB0OiBvcGVuVGhpc01lbnUodGhpcykiKTsNCiAgICAgICAgaXRlbS5zZXRBdHRyaWJ1dGUoImlkIiwgdGhpcy5pZCk7DQogICAgICAgIGxldCBpbWcgPSB0aGlzLmNyZWF0ZUlNRyh0aGlzLmltZ1NyYyk7DQogICAgICAgIGxldCB2YWx1ZSA9IHRoaXMuY3JlYXRlVmFsdWUodGhpcy52YWx1ZSk7DQogICAgICAgIGl0ZW0uYXBwZW5kQ2hpbGQoaW1nKTsNCiAgICAgICAgaXRlbS5hcHBlbmRDaGlsZCh2YWx1ZSk7DQogICAgICAgIGxldCBkb2MgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCh0aGlzLkRvY3VtZW50SUQpOw0KICAgICAgICBkb2MuYXBwZW5kQ2hpbGQoaXRlbSk7DQogICAgICAgIHN3aXRjaCAodGhpcy5tZW51S2V5KSB7DQogICAgICAgICAgICBjYXNlICJwbGF5bGlzdCI6DQogICAgICAgICAgICAgICAgdGhpcy50YWJsZUhlYWRlciA9IFsie3sucGxheWxpc3QudGFibGUucGxheWxpc3R9fSIsICJ7ey5wbGF5bGlzdC50YWJsZS50dW5lcn19IiwgInt7LnBsYXlsaXN0LnRhYmxlLmxhc3RVcGRhdGV9fSIsICJ7ey5wbGF5bGlzdC50YWJsZS5hdmFpbGFiaWxpdHl9fSAlIiwgInt7LnBsYXlsaXN0LnRhYmxlLnR5cGV9fSIsICJ7ey5wbGF5bGlzdC50YWJsZS5zdHJlYW1zfX0iLCAie3sucGxheWxpc3QudGFibGUuZ3JvdXBUaXRsZX19ICUiLCAie3sucGxheWxpc3QudGFibGUudHZnSUR9fSAlIiwgInt7LnBsYXlsaXN0LnRhYmxlLnVuaXF1ZUlEfX0gJSJdOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAieG1sdHYiOg0KICAgICAgICAgICAgICAgIHRoaXMudGFibGVIZWFkZXIgPSBbInt7LnhtbHR2LnRhYmxlLmd1aWRlfX0iLCAie3sueG1sdHYudGFibGUubGFzdFVwZGF0ZX19IiwgInt7LnhtbHR2LnRhYmxlLmF2YWlsYWJpbGl0eX19ICUiLCAie3sueG1sdHYudGFibGUuY2hhbm5lbHN9fSIsICJ7ey54bWx0di50YWJsZS5wcm9ncmFtc319Il07DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJmaWx0ZXIiOg0KICAgICAgICAgICAgICAgIHRoaXMudGFibGVIZWFkZXIgPSBbInt7LmZpbHRlci50YWJsZS5uYW1lfX0iLCAie3suZmlsdGVyLnRhYmxlLnR5cGV9fSIsICJ7ey5maWx0ZXIudGFibGUuZmlsdGVyfX0iXTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInVzZXJzIjoNCiAgICAgICAgICAgICAgICB0aGlzLnRhYmxlSGVhZGVyID0gWyJ7ey51c2Vycy50YWJsZS51c2VybmFtZX19IiwgInt7LnVzZXJzLnRhYmxlLnBhc3N3b3JkfX0iLCAie3sudXNlcnMudGFibGUud2VifX0iLCAie3sudXNlcnMudGFibGUucG1zfX0iLCAie3sudXNlcnMudGFibGUubTN1fX0iLCAie3sudXNlcnMudGFibGUueG1sfX0iLCAie3sudXNlcnMudGFibGUuYXBpfX0iXTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgIm1hcHBpbmciOg0KICAgICAgICAgICAgICAgIHRoaXMudGFibGVIZWFkZXIgPSBbIkJVTEsiLCAie3subWFwcGluZy50YWJsZS5jaE5vfX0iLCAie3subWFwcGluZy50YWJsZS5sb2dvfX0iLCAie3subWFwcGluZy50YWJsZS5jaGFubmVsTmFtZX19IiwgInt7Lm1hcHBpbmcudGFibGUucGxheWxpc3R9fSIsICJ7ey5tYXBwaW5nLnRhYmxlLmdyb3VwVGl0bGV9fSIsICJ7ey5tYXBwaW5nLnRhYmxlLnhtbHR2RmlsZX19IiwgInt7Lm1hcHBpbmcudGFibGUueG1sdHZJRH19IiwgInt7Lm1hcHBpbmcudGFibGUudGltZXNoaWZ0fX0iXTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgfQ0KICAgICAgICAvL2NvbnNvbGUubG9nKHRoaXMubWVudUtleSwgdGhpcy50YWJsZUhlYWRlcik7DQogICAgfQ0KfQ0KY2xhc3MgQ29udGVudCB7DQogICAgY29uc3RydWN0b3IoKSB7DQogICAgICAgIHRoaXMuRG9jdW1lbnRJRCA9ICJjb250ZW50IjsNCiAgICAgICAgdGhpcy5UYWJsZUlEID0gImNvbnRlbnRfdGFibGUiOw0KICAgICAgICB0aGlzLmhlYWRlckNsYXNzID0gImNvbnRlbnRfdGFibGVfaGVhZGVyIjsNCiAgICAgICAgdGhpcy5pbnRlcmFjdGlvbklEID0gImNvbnRlbnQtaW50ZXJhY3Rpb24iOw0KICAgIH0NCiAgICBjcmVhdGVIZWFkbGluZSh2YWx1ZSkgew0KICAgICAgICBsZXQgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIkgzIik7DQogICAgICAgIGVsZW1lbnQuaW5uZXJIVE1MID0gdmFsdWU7DQogICAgICAgIHJldHVybiBlbGVtZW50Ow0KICAgIH0NCiAgICBjcmVhdGVIUigpIHsNCiAgICAgICAgcmV0dXJuIGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIkhSIik7DQogICAgfQ0KICAgIGNyZWF0ZUludGVyYWN0aW9uKCkgew0KICAgICAgICBsZXQgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIkRJViIpOw0KICAgICAgICBlbGVtZW50LnNldEF0dHJpYnV0ZSgiaWQiLCB0aGlzLmludGVyYWN0aW9uSUQpOw0KICAgICAgICByZXR1cm4gZWxlbWVudDsNCiAgICB9DQogICAgY3JlYXRlRElWKCkgew0KICAgICAgICBsZXQgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIkRJViIpOw0KICAgICAgICBlbGVtZW50LmlkID0gdGhpcy5EaXZJRDsNCiAgICAgICAgcmV0dXJuIGVsZW1lbnQ7DQogICAgfQ0KICAgIGNyZWF0ZVRBQkxFKCkgew0KICAgICAgICBsZXQgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlRBQkxFIik7DQogICAgICAgIGVsZW1lbnQuaWQgPSB0aGlzLlRhYmxlSUQ7DQogICAgICAgIHJldHVybiBlbGVtZW50Ow0KICAgIH0NCiAgICBjcmVhdGVUYWJsZVJvdygpIHsNCiAgICAgICAgbGV0IGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJUUiIpOw0KICAgICAgICBlbGVtZW50LmNsYXNzTmFtZSA9IHRoaXMuaGVhZGVyQ2xhc3M7DQogICAgICAgIHJldHVybiBlbGVtZW50Ow0KICAgIH0NCiAgICBjcmVhdGVUYWJsZUNvbnRlbnQobWVudUtleSkgew0KICAgICAgICBsZXQgZGF0YSA9IHt9Ow0KICAgICAgICBsZXQgcm93cyA9IFtdOw0KICAgICAgICBsZXQgZmlsZVR5cGVzID0gW107DQogICAgICAgIHN3aXRjaCAobWVudUtleSkgew0KICAgICAgICAgICAgY2FzZSAicGxheWxpc3QiOg0KICAgICAgICAgICAgICAgIGZpbGVUeXBlcyA9IFsibTN1IiwgImhkaHIiXTsNCiAgICAgICAgICAgICAgICBmaWxlVHlwZXMuZm9yRWFjaChmaWxlVHlwZSA9PiB7DQogICAgICAgICAgICAgICAgICAgIGRhdGEgPSBTRVJWRVJbInNldHRpbmdzIl1bImZpbGVzIl1bZmlsZVR5cGVdOw0KICAgICAgICAgICAgICAgICAgICB2YXIga2V5cyA9IGdldE9iaktleXMoZGF0YSk7DQogICAgICAgICAgICAgICAgICAgIGtleXMuZm9yRWFjaChrZXkgPT4gew0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVFIiKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmlkID0ga2V5Ow0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgiJyArIGZpbGVUeXBlICsgJyIsIHRoaXMpJyk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsibmFtZSJdOw0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChTRVJWRVJbInNldHRpbmdzIl1bImJ1ZmZlciJdICE9ICItIikgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bInR1bmVyIl07DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gIi0iOw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bImxhc3QudXBkYXRlIl07DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsicHJvdmlkZXIuYXZhaWxhYmlsaXR5Il07DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsidHlwZSJdLnRvVXBwZXJDYXNlKCk7DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsiY29tcGF0aWJpbGl0eSJdWyJzdHJlYW1zIl07DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsiY29tcGF0aWJpbGl0eSJdWyJncm91cC50aXRsZSJdOw0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bImNvbXBhdGliaWxpdHkiXVsidHZnLmlkIl07DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsiY29tcGF0aWJpbGl0eSJdWyJzdHJlYW0uaWQiXTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHJvd3MucHVzaCh0cik7DQogICAgICAgICAgICAgICAgICAgIH0pOw0KICAgICAgICAgICAgICAgIH0pOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiZmlsdGVyIjoNCiAgICAgICAgICAgICAgICBkZWxldGUgU0VSVkVSWyJzZXR0aW5ncyJdWyJmaWx0ZXIiXVstMV07DQogICAgICAgICAgICAgICAgZGF0YSA9IFNFUlZFUlsic2V0dGluZ3MiXVsiZmlsdGVyIl07DQogICAgICAgICAgICAgICAgdmFyIGtleXMgPSBnZXRPYmpLZXlzKGRhdGEpOw0KICAgICAgICAgICAgICAgIGtleXMuZm9yRWFjaChrZXkgPT4gew0KICAgICAgICAgICAgICAgICAgICB2YXIgdHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJUUiIpOw0KICAgICAgICAgICAgICAgICAgICB0ci5pZCA9IGtleTsNCiAgICAgICAgICAgICAgICAgICAgdHIuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgiJyArIGRhdGFba2V5XVsidHlwZSJdICsgJyIsIHRoaXMpJyk7DQogICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJuYW1lIl07DQogICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgIHN3aXRjaCAoZGF0YVtrZXldWyJ0eXBlIl0pIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgImN1c3RvbS1maWx0ZXIiOg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSAie3suZmlsdGVyLmN1c3RvbX19IjsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgImdyb3VwLXRpdGxlIjoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gInt7LmZpbHRlci5ncm91cH19IjsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsiZmlsdGVyIl07DQogICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgcm93cy5wdXNoKHRyKTsNCiAgICAgICAgICAgICAgICB9KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInhtbHR2IjoNCiAgICAgICAgICAgICAgICBmaWxlVHlwZXMgPSBuZXcgQXJyYXkoInhtbHR2Iik7DQogICAgICAgICAgICAgICAgZmlsZVR5cGVzLmZvckVhY2goZmlsZVR5cGUgPT4gew0KICAgICAgICAgICAgICAgICAgICBkYXRhID0gU0VSVkVSWyJzZXR0aW5ncyJdWyJmaWxlcyJdW2ZpbGVUeXBlXTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGtleXMgPSBnZXRPYmpLZXlzKGRhdGEpOw0KICAgICAgICAgICAgICAgICAgICBrZXlzLmZvckVhY2goa2V5ID0+IHsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciB0ciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlRSIik7DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5pZCA9IGtleTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoIicgKyBmaWxlVHlwZSArICciLCB0aGlzKScpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bIm5hbWUiXTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJsYXN0LnVwZGF0ZSJdOw0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bInByb3ZpZGVyLmF2YWlsYWJpbGl0eSJdOw0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bImNvbXBhdGliaWxpdHkiXVsieG1sdHYuY2hhbm5lbHMiXTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJjb21wYXRpYmlsaXR5Il1bInhtbHR2LnByb2dyYW1zIl07DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICByb3dzLnB1c2godHIpOw0KICAgICAgICAgICAgICAgICAgICB9KTsNCiAgICAgICAgICAgICAgICB9KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInVzZXJzIjoNCiAgICAgICAgICAgICAgICBmaWxlVHlwZXMgPSBuZXcgQXJyYXkoInVzZXJzIik7DQogICAgICAgICAgICAgICAgZmlsZVR5cGVzLmZvckVhY2goZmlsZVR5cGUgPT4gew0KICAgICAgICAgICAgICAgICAgICBkYXRhID0gU0VSVkVSW2ZpbGVUeXBlXTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGtleXMgPSBnZXRPYmpLZXlzKGRhdGEpOw0KICAgICAgICAgICAgICAgICAgICBrZXlzLmZvckVhY2goa2V5ID0+IHsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciB0ciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlRSIik7DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5pZCA9IGtleTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoIicgKyBmaWxlVHlwZSArICciLCB0aGlzKScpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bImRhdGEiXVsidXNlcm5hbWUiXTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gIioqKioqKiI7DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGRhdGFba2V5XVsiZGF0YSJdWyJhdXRoZW50aWNhdGlvbi53ZWIiXSA9PSB0cnVlKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9ICLinJMiOw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9ICItIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgICAgICBpZiAoZGF0YVtrZXldWyJkYXRhIl1bImF1dGhlbnRpY2F0aW9uLnBtcyJdID09IHRydWUpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gIuKckyI7DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gIi0iOw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChkYXRhW2tleV1bImRhdGEiXVsiYXV0aGVudGljYXRpb24ubTN1Il0gPT0gdHJ1ZSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSAi4pyTIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSAiLSI7DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGRhdGFba2V5XVsiZGF0YSJdWyJhdXRoZW50aWNhdGlvbi54bWwiXSA9PSB0cnVlKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9ICLinJMiOw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9ICItIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgICAgICBpZiAoZGF0YVtrZXldWyJkYXRhIl1bImF1dGhlbnRpY2F0aW9uLmFwaSJdID09IHRydWUpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gIuKckyI7DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gIi0iOw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgcm93cy5wdXNoKHRyKTsNCiAgICAgICAgICAgICAgICAgICAgfSk7DQogICAgICAgICAgICAgICAgfSk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJtYXBwaW5nIjoNCiAgICAgICAgICAgICAgICBCVUxLX0VESVQgPSBmYWxzZTsNCiAgICAgICAgICAgICAgICBjcmVhdGVTZWFyY2hPYmooKTsNCiAgICAgICAgICAgICAgICBjaGVja1VuZG8oImVwZ01hcHBpbmciKTsNCiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZygiTUFQUElORyIpOw0KICAgICAgICAgICAgICAgIGRhdGEgPSBTRVJWRVJbInhlcGciXVsiZXBnTWFwcGluZyJdOw0KICAgICAgICAgICAgICAgIHZhciBrZXlzID0gZ2V0T2JqS2V5cyhkYXRhKTsNCiAgICAgICAgICAgICAgICBrZXlzLmZvckVhY2goa2V5ID0+IHsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVFIiKTsNCiAgICAgICAgICAgICAgICAgICAgdHIuaWQgPSBrZXk7DQogICAgICAgICAgICAgICAgICAgIC8vdHIuc2V0QXR0cmlidXRlKCdvbmNvbnRleHRtZW51JywgJ2phdmFzY3JpcHQ6IHJpZ2h0Q2xpY2sodGhpcyknKQ0KICAgICAgICAgICAgICAgICAgICBzd2l0Y2ggKGRhdGFba2V5XVsieC1hY3RpdmUiXSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSB0cnVlOg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyLmNsYXNzTmFtZSA9ICJhY3RpdmVFUEciOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSBmYWxzZToNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ci5jbGFzc05hbWUgPSAibm90QWN0aXZlRVBHIjsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAvLyBCdWxrDQogICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIkJVTEsiOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZmFsc2U7DQogICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgLy8gS2FuYWxudW1tZXINCiAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiSU5QVVRDSEFOTkVMIjsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsieC1jaGFubmVsSUQiXTsNCiAgICAgICAgICAgICAgICAgICAgLy90ZC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogY2hhbmdlQ2hhbm5lbE51bWJlcigiJyArIGtleSArICciLCB0aGlzKScpDQogICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgLy8gTG9nbw0KICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJJTUciOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmltYWdlVVJMID0gZGF0YVtrZXldWyJ0dmctbG9nbyJdOw0KICAgICAgICAgICAgICAgICAgICB2YXIgdGQgPSBjZWxsLmNyZWF0ZUNlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgdGQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgibWFwcGluZyIsIHRoaXMpJyk7DQogICAgICAgICAgICAgICAgICAgIHRkLmlkID0ga2V5Ow0KICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZCh0ZCk7DQogICAgICAgICAgICAgICAgICAgIC8vIEthbmFsbmFtZQ0KICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jbGFzc05hbWUgPSBkYXRhW2tleV1bIngtY2F0ZWdvcnkiXTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsieC1uYW1lIl07DQogICAgICAgICAgICAgICAgICAgIHZhciB0ZCA9IGNlbGwuY3JlYXRlQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICB0ZC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJtYXBwaW5nIiwgdGhpcyknKTsNCiAgICAgICAgICAgICAgICAgICAgdGQuaWQgPSBrZXk7DQogICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKHRkKTsNCiAgICAgICAgICAgICAgICAgICAgLy8gUGxheWxpc3QNCiAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgIC8vY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsiX2ZpbGUubTN1Lm5hbWUiXSANCiAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGdldFZhbHVlRnJvbVByb3ZpZGVyRmlsZShkYXRhW2tleV1bIl9maWxlLm0zdS5pZCJdLCAibTN1IiwgIm5hbWUiKTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHRkID0gY2VsbC5jcmVhdGVDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgIHRkLnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoIm1hcHBpbmciLCB0aGlzKScpOw0KICAgICAgICAgICAgICAgICAgICB0ZC5pZCA9IGtleTsNCiAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQodGQpOw0KICAgICAgICAgICAgICAgICAgICAvLyBHcnVwcGUgKGdyb3VwLXRpdGxlKQ0KICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsieC1ncm91cC10aXRsZSJdOw0KICAgICAgICAgICAgICAgICAgICB2YXIgdGQgPSBjZWxsLmNyZWF0ZUNlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgdGQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgibWFwcGluZyIsIHRoaXMpJyk7DQogICAgICAgICAgICAgICAgICAgIHRkLmlkID0ga2V5Ow0KICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZCh0ZCk7DQogICAgICAgICAgICAgICAgICAgIC8vIFhNTFRWIERhdGVpDQogICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICBpZiAoZGF0YVtrZXldWyJ4LXhtbHR2LWZpbGUiXSAhPSAiLSIpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBnZXRWYWx1ZUZyb21Qcm92aWRlckZpbGUoZGF0YVtrZXldWyJ4LXhtbHR2LWZpbGUiXSwgInhtbHR2IiwgIm5hbWUiKTsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bIngteG1sdHYtZmlsZSJdOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIHZhciB0ZCA9IGNlbGwuY3JlYXRlQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICB0ZC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJtYXBwaW5nIiwgdGhpcyknKTsNCiAgICAgICAgICAgICAgICAgICAgdGQuaWQgPSBrZXk7DQogICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKHRkKTsNCiAgICAgICAgICAgICAgICAgICAgLy8gWE1MVFYgS2FuYWwNCiAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgIC8vdmFyIHZhbHVlID0gc3RyLnN1YnN0cmluZygxLCA0KTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHZhbHVlID0gZGF0YVtrZXldWyJ4LW1hcHBpbmciXTsNCiAgICAgICAgICAgICAgICAgICAgaWYgKHZhbHVlLmxlbmd0aCA+IDIwKSB7DQogICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IGRhdGFba2V5XVsieC1tYXBwaW5nIl0uc3Vic3RyaW5nKDAsIDIwKSArICIuLi4iOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSB2YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHRkID0gY2VsbC5jcmVhdGVDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgIHRkLnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoIm1hcHBpbmciLCB0aGlzKScpOw0KICAgICAgICAgICAgICAgICAgICB0ZC5pZCA9IGtleTsNCiAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQodGQpOw0KICAgICAgICAgICAgICAgICAgICAvLyBUaW1lU2hpZnQNCiAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bIngtdGltZXNoaWZ0Il07DQogICAgICAgICAgICAgICAgICAgIHZhciB0ZCA9IGNlbGwuY3JlYXRlQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICB0ZC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJtYXBwaW5nIiwgdGhpcyknKTsNCiAgICAgICAgICAgICAgICAgICAgdGQuaWQgPSBrZXk7DQogICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKHRkKTsNCiAgICAgICAgICAgICAgICAgICAgcm93cy5wdXNoKHRyKTsNCiAgICAgICAgICAgICAgICB9KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInNldHRpbmdzIjoNCiAgICAgICAgICAgICAgICBhbGVydCgpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZygiVGFibGUgY29udGVudCAobWVudUtleSk6IiwgbWVudUtleSk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIH0NCiAgICAgICAgcmV0dXJuIHJvd3M7DQogICAgfQ0KfQ0KY2xhc3MgQ2VsbCB7DQogICAgY3JlYXRlQ2VsbCgpIHsNCiAgICAgICAgbGV0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgaWYgKHRoaXMuY2hpbGQgPT0gdHJ1ZSkgew0KICAgICAgICAgICAgdmFyIGVsZW1lbnQ7DQogICAgICAgICAgICBzd2l0Y2ggKHRoaXMuY2hpbGRUeXBlKSB7DQogICAgICAgICAgICAgICAgY2FzZSAiUCI6DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KHRoaXMuY2hpbGRUeXBlKTsNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC5pbm5lckhUTUwgPSB0aGlzLnZhbHVlOw0KICAgICAgICAgICAgICAgICAgICBlbGVtZW50LmNsYXNzTmFtZSA9IHRoaXMuY2xhc3NOYW1lOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBjYXNlICJJTlBVVCI6DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KHRoaXMuY2hpbGRUeXBlKTsNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC52YWx1ZSA9IHRoaXMudmFsdWU7DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQudHlwZSA9ICJ0ZXh0IjsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAiSU5QVVRDSEFOTkVMIjoNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIklOUFVUIik7DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZzY3JpcHQ6IGNoYW5nZUNoYW5uZWxOdW1iZXIodGhpcykiKTsNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC52YWx1ZSA9IHRoaXMudmFsdWU7DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQudHlwZSA9ICJ0ZXh0IjsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAiQlVMSyI6DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJJTlBVVCIpOw0KICAgICAgICAgICAgICAgICAgICBlbGVtZW50LmNoZWNrZWQgPSB0aGlzLnZhbHVlOw0KICAgICAgICAgICAgICAgICAgICBlbGVtZW50LnR5cGUgPSAiY2hlY2tib3giOw0KICAgICAgICAgICAgICAgICAgICBlbGVtZW50LmNsYXNzTmFtZSA9ICJidWxrIGhpZGVCdWxrIjsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAiQlVMS19IRUFEIjoNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIklOUFVUIik7DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQuY2hlY2tlZCA9IHRoaXMudmFsdWU7DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQudHlwZSA9ICJjaGVja2JveCI7DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQuY2xhc3NOYW1lID0gImJ1bGsgaGlkZUJ1bGsiOw0KICAgICAgICAgICAgICAgICAgICBlbGVtZW50LnNldEF0dHJpYnV0ZSgib25jbGljayIsICJqYXZhc2NyaXB0OiBzZWxlY3RBbGxDaGFubmVscygpIik7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgIklNRyI6DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KHRoaXMuY2hpbGRUeXBlKTsNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC5zZXRBdHRyaWJ1dGUoInNyYyIsIHRoaXMuaW1hZ2VVUkwpOw0KICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5pbWFnZVVSTCAhPSAiIikgew0KICAgICAgICAgICAgICAgICAgICAgICAgZWxlbWVudC5zZXRBdHRyaWJ1dGUoIm9uZXJyb3IiLCAiamF2YXNjcmlwdDogdGhpcy5vbmVycm9yPW51bGw7dGhpcy5zcmM9JyciKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIC8vb25lcnJvcj0idGhpcy5vbmVycm9yPW51bGw7dGhpcy5zcmM9J21pc3NpbmcuZ2lmJzsiDQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIHRkLmFwcGVuZENoaWxkKGVsZW1lbnQpOw0KICAgICAgICB9DQogICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgdGQuaW5uZXJIVE1MID0gdGhpcy52YWx1ZTsNCiAgICAgICAgfQ0KICAgICAgICBpZiAodGhpcy5vbmNsaWNrID09IHRydWUpIHsNCiAgICAgICAgICAgIHRkLnNldEF0dHJpYnV0ZSgib25jbGljayIsIHRoaXMub25jbGlja0Z1bmt0aW9uKTsNCiAgICAgICAgICAgIHRkLmNsYXNzTmFtZSA9ICJwb2ludGVyIjsNCiAgICAgICAgfQ0KICAgICAgICBpZiAodGhpcy50ZENsYXNzTmFtZSAhPSB1bmRlZmluZWQpIHsNCiAgICAgICAgICAgIHRkLmNsYXNzTmFtZSA9IHRoaXMudGRDbGFzc05hbWU7DQogICAgICAgIH0NCiAgICAgICAgcmV0dXJuIHRkOw0KICAgIH0NCn0NCmNsYXNzIFNob3dDb250ZW50IGV4dGVuZHMgQ29udGVudCB7DQogICAgY29uc3RydWN0b3IobWVudUlEKSB7DQogICAgICAgIHN1cGVyKCk7DQogICAgICAgIHRoaXMubWVudUlEID0gbWVudUlEOw0KICAgIH0NCiAgICBjcmVhdGVJbnB1dCh0eXBlLCBuYW1lLCB2YWx1ZSkgew0KICAgICAgICBsZXQgaW5wdXQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJJTlBVVCIpOw0KICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInR5cGUiLCB0eXBlKTsNCiAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJuYW1lIiwgbmFtZSk7DQogICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgidmFsdWUiLCB2YWx1ZSk7DQogICAgICAgIHJldHVybiBpbnB1dDsNCiAgICB9DQogICAgc2hvdygpIHsNCiAgICAgICAgQ09MVU1OX1RPX1NPUlQgPSAtMTsNCiAgICAgICAgLy8gQWx0ZW4gSW5oYWx0IGzDtnNjaGVuDQogICAgICAgIGxldCBkb2MgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCh0aGlzLkRvY3VtZW50SUQpOw0KICAgICAgICBkb2MuaW5uZXJIVE1MID0gIiI7DQogICAgICAgIHNob3dQcmV2aWV3KGZhbHNlKTsNCiAgICAgICAgLy8gw5xiZXJzY2hyaWZ0DQogICAgICAgIGxldCBoZWFkbGluZSA9IG1lbnVJdGVtc1t0aGlzLm1lbnVJRF0uaGVhZGxpbmU7DQogICAgICAgIGxldCBtZW51S2V5ID0gbWVudUl0ZW1zW3RoaXMubWVudUlEXS5tZW51S2V5Ow0KICAgICAgICBsZXQgaCA9IHRoaXMuY3JlYXRlSGVhZGxpbmUoaGVhZGxpbmUpOw0KICAgICAgICBkb2MuYXBwZW5kQ2hpbGQoaCk7DQogICAgICAgIGxldCBociA9IHRoaXMuY3JlYXRlSFIoKTsNCiAgICAgICAgZG9jLmFwcGVuZENoaWxkKGhyKTsNCiAgICAgICAgLy8gSW50ZXJha3Rpb24NCiAgICAgICAgbGV0IGRpdiA9IHRoaXMuY3JlYXRlSW50ZXJhY3Rpb24oKTsNCiAgICAgICAgZG9jLmFwcGVuZENoaWxkKGRpdik7DQogICAgICAgIGxldCBpbnRlcmFjdGlvbiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHRoaXMuaW50ZXJhY3Rpb25JRCk7DQogICAgICAgIHN3aXRjaCAobWVudUtleSkgew0KICAgICAgICAgICAgY2FzZSAicGxheWxpc3QiOg0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IHRoaXMuY3JlYXRlSW5wdXQoImJ1dHRvbiIsIG1lbnVLZXksICJ7ey5idXR0b24ubmV3fX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoImlkIiwgIi0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJwbGF5bGlzdCIpJyk7DQogICAgICAgICAgICAgICAgaW50ZXJhY3Rpb24uYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiZmlsdGVyIjoNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSB0aGlzLmNyZWF0ZUlucHV0KCJidXR0b24iLCBtZW51S2V5LCAie3suYnV0dG9uLm5ld319Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJpZCIsIC0xKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJmaWx0ZXIiLCB0aGlzKScpOw0KICAgICAgICAgICAgICAgIGludGVyYWN0aW9uLmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInhtbHR2IjoNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSB0aGlzLmNyZWF0ZUlucHV0KCJidXR0b24iLCBtZW51S2V5LCAie3suYnV0dG9uLm5ld319Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJpZCIsICJ4bWx0diIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoInhtbHR2IiknKTsNCiAgICAgICAgICAgICAgICBpbnRlcmFjdGlvbi5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ1c2VycyI6DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gdGhpcy5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgbWVudUtleSwgInt7LmJ1dHRvbi5uZXd9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgiaWQiLCAidXNlcnMiKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJ1c2VycyIpJyk7DQogICAgICAgICAgICAgICAgaW50ZXJhY3Rpb24uYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAibWFwcGluZyI6DQogICAgICAgICAgICAgICAgc2hvd0VsZW1lbnQoImxvYWRpbmciLCB0cnVlKTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSB0aGlzLmNyZWF0ZUlucHV0KCJidXR0b24iLCBtZW51S2V5LCAie3suYnV0dG9uLnNhdmV9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBzYXZlUG9wdXBEYXRhKCJtYXBwaW5nIiwgIiIsICIiKScpOw0KICAgICAgICAgICAgICAgIGludGVyYWN0aW9uLmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSB0aGlzLmNyZWF0ZUlucHV0KCJidXR0b24iLCBtZW51S2V5LCAie3suYnV0dG9uLmJ1bGtFZGl0fX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogYnVsa0VkaXQoKScpOw0KICAgICAgICAgICAgICAgIGludGVyYWN0aW9uLmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSB0aGlzLmNyZWF0ZUlucHV0KCJzZWFyY2giLCAic2VhcmNoIiwgIiIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgiaWQiLCAic2VhcmNoTWFwcGluZyIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3suYnV0dG9uLnNlYXJjaH19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuY2xhc3NOYW1lID0gInNlYXJjaCI7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICdqYXZhc2NyaXB0OiBzZWFyY2hJbk1hcHBpbmcoKScpOw0KICAgICAgICAgICAgICAgIGludGVyYWN0aW9uLmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInNldHRpbmdzIjoNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSB0aGlzLmNyZWF0ZUlucHV0KCJidXR0b24iLCBtZW51S2V5LCAie3suYnV0dG9uLnNhdmV9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBzYXZlU2V0dGluZ3MoKTsnKTsNCiAgICAgICAgICAgICAgICBpbnRlcmFjdGlvbi5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gdGhpcy5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgbWVudUtleSwgInt7LmJ1dHRvbi5iYWNrdXB9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBiYWNrdXAoKTsnKTsNCiAgICAgICAgICAgICAgICBpbnRlcmFjdGlvbi5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gdGhpcy5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgbWVudUtleSwgInt7LmJ1dHRvbi5yZXN0b3JlfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogcmVzdG9yZSgpOycpOw0KICAgICAgICAgICAgICAgIGludGVyYWN0aW9uLmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICB2YXIgd3JhcHBlciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIkRJViIpOw0KICAgICAgICAgICAgICAgIHdyYXBwZXIuc2V0QXR0cmlidXRlKCJpZCIsICJib3gtd3JhcHBlciIpOw0KICAgICAgICAgICAgICAgIGRvYy5hcHBlbmRDaGlsZCh3cmFwcGVyKTsNCiAgICAgICAgICAgICAgICB0aGlzLkRpdklEID0gImNvbnRlbnRfc2V0dGluZ3MiOw0KICAgICAgICAgICAgICAgIHZhciBzZXR0aW5ncyA9IHRoaXMuY3JlYXRlRElWKCk7DQogICAgICAgICAgICAgICAgd3JhcHBlci5hcHBlbmRDaGlsZChzZXR0aW5ncyk7DQogICAgICAgICAgICAgICAgc2hvd1NldHRpbmdzKCk7DQogICAgICAgICAgICAgICAgcmV0dXJuOw0KICAgICAgICAgICAgY2FzZSAibG9nIjoNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSB0aGlzLmNyZWF0ZUlucHV0KCJidXR0b24iLCBtZW51S2V5LCAie3suYnV0dG9uLnJlc2V0TG9nc319Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IHJlc2V0TG9ncygpOycpOw0KICAgICAgICAgICAgICAgIGludGVyYWN0aW9uLmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICB2YXIgd3JhcHBlciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIkRJViIpOw0KICAgICAgICAgICAgICAgIHdyYXBwZXIuc2V0QXR0cmlidXRlKCJpZCIsICJib3gtd3JhcHBlciIpOw0KICAgICAgICAgICAgICAgIGRvYy5hcHBlbmRDaGlsZCh3cmFwcGVyKTsNCiAgICAgICAgICAgICAgICB0aGlzLkRpdklEID0gImNvbnRlbnRfbG9nIjsNCiAgICAgICAgICAgICAgICB2YXIgbG9ncyA9IHRoaXMuY3JlYXRlRElWKCk7DQogICAgICAgICAgICAgICAgd3JhcHBlci5hcHBlbmRDaGlsZChsb2dzKTsNCiAgICAgICAgICAgICAgICBzaG93TG9ncyh0cnVlKTsNCiAgICAgICAgICAgICAgICByZXR1cm47DQogICAgICAgICAgICBjYXNlICJsb2dvdXQiOg0KICAgICAgICAgICAgICAgIGxvY2F0aW9uLnJlbG9hZCgpOw0KICAgICAgICAgICAgICAgIGRvY3VtZW50LmNvb2tpZSA9ICJUb2tlbj0gOyBleHBpcmVzID0gVGh1LCAwMSBKYW4gMTk3MCAwMDowMDowMCBHTVQiOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZygiU2hvdyBjb250ZW50IChtZW51S2V5KToiLCBtZW51S2V5KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgfQ0KICAgICAgICAvLyBUYWJlbGxlIGVyc3RlbGxlbiAoZmFsbHMgYmVuw7Z0aWd0KQ0KICAgICAgICB2YXIgdGFibGVIZWFkZXIgPSBtZW51SXRlbXNbdGhpcy5tZW51SURdLnRhYmxlSGVhZGVyOw0KICAgICAgICBpZiAodGFibGVIZWFkZXIubGVuZ3RoID4gMCkgew0KICAgICAgICAgICAgdmFyIHdyYXBwZXIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJESVYiKTsNCiAgICAgICAgICAgIGRvYy5hcHBlbmRDaGlsZCh3cmFwcGVyKTsNCiAgICAgICAgICAgIHdyYXBwZXIuc2V0QXR0cmlidXRlKCJpZCIsICJib3gtd3JhcHBlciIpOw0KICAgICAgICAgICAgdmFyIHRhYmxlID0gdGhpcy5jcmVhdGVUQUJMRSgpOw0KICAgICAgICAgICAgd3JhcHBlci5hcHBlbmRDaGlsZCh0YWJsZSk7DQogICAgICAgICAgICB2YXIgaGVhZGVyID0gdGhpcy5jcmVhdGVUYWJsZVJvdygpOw0KICAgICAgICAgICAgdGFibGUuYXBwZW5kQ2hpbGQoaGVhZGVyKTsNCiAgICAgICAgICAgIC8vIEtvcGZ6ZWlsZSBkZXIgVGFibGxlDQogICAgICAgICAgICB0YWJsZUhlYWRlci5mb3JFYWNoKGVsZW1lbnQgPT4gew0KICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZWxlbWVudDsNCiAgICAgICAgICAgICAgICBpZiAoZWxlbWVudCA9PSAiQlVMSyIpIHsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiQlVMS19IRUFEIjsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGZhbHNlOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBpZiAobWVudUtleSA9PSAibWFwcGluZyIpIHsNCiAgICAgICAgICAgICAgICAgICAgaWYgKGVsZW1lbnQgPT0gInt7Lm1hcHBpbmcudGFibGUuY2hOb319Iikgew0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5vbmNsaWNrID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwub25jbGlja0Z1bmt0aW9uID0gImphdmFzY3JpcHQ6IHNvcnRUYWJsZSgxKTsiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC50ZENsYXNzTmFtZSA9ICJzb3J0VGhpcyI7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgaWYgKGVsZW1lbnQgPT0gInt7Lm1hcHBpbmcudGFibGUuY2hhbm5lbE5hbWV9fSIpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwub25jbGljayA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLm9uY2xpY2tGdW5rdGlvbiA9ICJqYXZhc2NyaXB0OiBzb3J0VGFibGUoMyk7IjsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBpZiAoZWxlbWVudCA9PSAie3subWFwcGluZy50YWJsZS5wbGF5bGlzdH19Iikgew0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5vbmNsaWNrID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwub25jbGlja0Z1bmt0aW9uID0gImphdmFzY3JpcHQ6IHNvcnRUYWJsZSg0KTsiOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIGlmIChlbGVtZW50ID09ICJ7ey5tYXBwaW5nLnRhYmxlLmdyb3VwVGl0bGV9fSIpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwub25jbGljayA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLm9uY2xpY2tGdW5rdGlvbiA9ICJqYXZhc2NyaXB0OiBzb3J0VGFibGUoNSk7IjsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBpZiAoZWxlbWVudCA9PSAie3subWFwcGluZy50YWJsZS50aW1lc2hpZnR9fSIpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwub25jbGljayA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLm9uY2xpY2tGdW5rdGlvbiA9ICJqYXZhc2NyaXB0OiBzb3J0VGFibGUoOCk7IjsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBoZWFkZXIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgfSk7DQogICAgICAgICAgICB0YWJsZS5hcHBlbmRDaGlsZChoZWFkZXIpOw0KICAgICAgICAgICAgLy8gSW5oYWx0IGRlciBUYWJlbGxlDQogICAgICAgICAgICB2YXIgcm93cyA9IHRoaXMuY3JlYXRlVGFibGVDb250ZW50KG1lbnVLZXkpOw0KICAgICAgICAgICAgcm93cy5mb3JFYWNoKHRyID0+IHsNCiAgICAgICAgICAgICAgICB0YWJsZS5hcHBlbmRDaGlsZCh0cik7DQogICAgICAgICAgICB9KTsNCiAgICAgICAgfQ0KICAgICAgICBzd2l0Y2ggKG1lbnVLZXkpIHsNCiAgICAgICAgICAgIGNhc2UgIm1hcHBpbmciOg0KICAgICAgICAgICAgICAgIHNvcnRUYWJsZSgxKTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImZpbHRlciI6DQogICAgICAgICAgICAgICAgc2hvd1ByZXZpZXcodHJ1ZSk7DQogICAgICAgICAgICAgICAgc29ydFRhYmxlKDApOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgICAgICBDT0xVTU5fVE9fU09SVCA9IC0xOw0KICAgICAgICAgICAgICAgIHNvcnRUYWJsZSgwKTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgfQ0KICAgICAgICBzaG93RWxlbWVudCgibG9hZGluZyIsIGZhbHNlKTsNCiAgICB9DQp9DQpmdW5jdGlvbiBQYWdlUmVhZHkoKSB7DQogICAgbGV0IHNlcnZlciA9IG5ldyBTZXJ2ZXIoImdldFNlcnZlckNvbmZpZyIpOw0KICAgIHNlcnZlci5yZXF1ZXN0KHt9KTsNCiAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigicmVzaXplIiwgZnVuY3Rpb24gKCkgew0KICAgICAgICBjYWxjdWxhdGVXcmFwcGVySGVpZ2h0KCk7DQogICAgfSwgdHJ1ZSk7DQogICAgc2V0SW50ZXJ2YWwoZnVuY3Rpb24gKCkgew0KICAgICAgICB1cGRhdGVMb2coKTsNCiAgICB9LCAxMDAwMCk7DQogICAgcmV0dXJuOw0KfQ0KZnVuY3Rpb24gY3JlYXRlTGF5b3V0KCkgew0KICAgIC8vIENsaWVudCBJbmZvDQogICAgbGV0IG9iaiA9IFNFUlZFUlsiY2xpZW50SW5mbyJdOw0KICAgIGxldCBrZXlzID0gZ2V0T2JqS2V5cyhvYmopOw0KICAgIGZvciAodmFyIGkgPSAwOyBpIDwga2V5cy5sZW5ndGg7IGkrKykgew0KICAgICAgICBpZiAoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoa2V5c1tpXSkpIHsNCiAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGtleXNbaV0pLmlubmVySFRNTCA9IG9ialtrZXlzW2ldXTsNCiAgICAgICAgfQ0KICAgIH0NCiAgICBpZiAoIWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJtYWluLW1lbnUiKSkgew0KICAgICAgICByZXR1cm47DQogICAgfQ0KICAgIC8vIE1lbsO8IGVyc3RlbGxlbg0KICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJtYWluLW1lbnUiKS5pbm5lckhUTUwgPSAiIjsNCiAgICBmb3IgKGxldCBpID0gMDsgaSA8IG1lbnVJdGVtcy5sZW5ndGg7IGkrKykgew0KICAgICAgICBtZW51SXRlbXNbaV0uaWQgPSBpOw0KICAgICAgICBzd2l0Y2ggKG1lbnVJdGVtc1tpXVsibWVudUtleSJdKSB7DQogICAgICAgICAgICBjYXNlICJ1c2VycyI6DQogICAgICAgICAgICBjYXNlICJsb2dvdXQiOg0KICAgICAgICAgICAgICAgIGlmIChTRVJWRVJbInNldHRpbmdzIl1bImF1dGhlbnRpY2F0aW9uLndlYiJdID09IHRydWUpIHsNCiAgICAgICAgICAgICAgICAgICAgbWVudUl0ZW1zW2ldLmNyZWF0ZUl0ZW0oKTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJtYXBwaW5nIjoNCiAgICAgICAgICAgIGNhc2UgInhtbHR2IjoNCiAgICAgICAgICAgICAgICBpZiAoU0VSVkVSWyJjbGllbnRJbmZvIl1bImVwZ1NvdXJjZSJdID09ICJYRVBHIikgew0KICAgICAgICAgICAgICAgICAgICBtZW51SXRlbXNbaV0uY3JlYXRlSXRlbSgpOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICAgICAgbWVudUl0ZW1zW2ldLmNyZWF0ZUl0ZW0oKTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgfQ0KICAgIH0NCiAgICByZXR1cm47DQp9DQpmdW5jdGlvbiBvcGVuVGhpc01lbnUoZWxlbWVudCkgew0KICAgIGxldCBpZCA9IGVsZW1lbnQuaWQ7DQogICAgbGV0IGNvbnRlbnQgPSBuZXcgU2hvd0NvbnRlbnQoaWQpOw0KICAgIGNvbnRlbnQuc2hvdygpOw0KICAgIGNhbGN1bGF0ZVdyYXBwZXJIZWlnaHQoKTsNCiAgICByZXR1cm47DQp9DQpjbGFzcyBQb3B1cFdpbmRvdyB7DQogICAgY29uc3RydWN0b3IoKSB7DQogICAgICAgIHRoaXMuRG9jdW1lbnRJRCA9ICJwb3B1cC1jdXN0b20iOw0KICAgICAgICB0aGlzLkludGVyYWN0aW9uSUQgPSAiaW50ZXJhY3Rpb24iOw0KICAgICAgICB0aGlzLmRvYyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHRoaXMuRG9jdW1lbnRJRCk7DQogICAgfQ0KICAgIGNyZWF0ZVRpdGxlKHRpdGxlKSB7DQogICAgICAgIGxldCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgIHRkLmNsYXNzTmFtZSA9ICJsZWZ0IjsNCiAgICAgICAgdGQuaW5uZXJIVE1MID0gdGl0bGUgKyAiOiI7DQogICAgICAgIHJldHVybiB0ZDsNCiAgICB9DQogICAgY3JlYXRlQ29udGVudChlbGVtZW50KSB7DQogICAgICAgIGxldCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgIHRkLmFwcGVuZENoaWxkKGVsZW1lbnQpOw0KICAgICAgICByZXR1cm4gdGQ7DQogICAgfQ0KICAgIGNyZWF0ZUludGVyYWN0aW9uKCkgew0KICAgICAgICBsZXQgZGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7DQogICAgICAgIGRpdi5zZXRBdHRyaWJ1dGUoImlkIiwgInBvcHVwLWludGVyYWN0aW9uIik7DQogICAgICAgIGRpdi5jbGFzc05hbWUgPSAiaW50ZXJhY3Rpb24iOw0KICAgICAgICB0aGlzLmRvYy5hcHBlbmRDaGlsZChkaXYpOw0KICAgIH0NCn0NCmNsYXNzIFBvcHVwQ29udGVudCBleHRlbmRzIFBvcHVwV2luZG93IHsNCiAgICBjb25zdHJ1Y3RvcigpIHsNCiAgICAgICAgc3VwZXIoLi4uYXJndW1lbnRzKTsNCiAgICAgICAgdGhpcy50YWJsZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlRBQkxFIik7DQogICAgfQ0KICAgIGNyZWF0ZUhlYWRsaW5lKGhlYWRsaW5lKSB7DQogICAgICAgIHRoaXMuZG9jLmlubmVySFRNTCA9ICIiOw0KICAgICAgICB2YXIgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIkgzIik7DQogICAgICAgIGVsZW1lbnQuaW5uZXJIVE1MID0gaGVhZGxpbmUudG9VcHBlckNhc2UoKTsNCiAgICAgICAgdGhpcy5kb2MuYXBwZW5kQ2hpbGQoZWxlbWVudCk7DQogICAgICAgIC8vIFRhYmVsbGUgZXJzdGVsbGVuDQogICAgICAgIHRoaXMudGFibGUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJUQUJMRSIpOw0KICAgICAgICB0aGlzLmRvYy5hcHBlbmRDaGlsZCh0aGlzLnRhYmxlKTsNCiAgICB9DQogICAgYXBwZW5kUm93KHRpdGxlLCBlbGVtZW50KSB7DQogICAgICAgIGxldCB0ciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlRSIik7DQogICAgICAgIC8vIEJlemVpY2hudW5nDQogICAgICAgIGlmICh0aXRsZS5sZW5ndGggIT0gMCkgew0KICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQodGhpcy5jcmVhdGVUaXRsZSh0aXRsZSkpOw0KICAgICAgICB9DQogICAgICAgIC8vIENvbnRlbnQNCiAgICAgICAgdHIuYXBwZW5kQ2hpbGQodGhpcy5jcmVhdGVDb250ZW50KGVsZW1lbnQpKTsNCiAgICAgICAgdGhpcy50YWJsZS5hcHBlbmRDaGlsZCh0cik7DQogICAgfQ0KICAgIGNyZWF0ZUlucHV0KHR5cGUsIG5hbWUsIHZhbHVlKSB7DQogICAgICAgIGxldCBpbnB1dCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIklOUFVUIik7DQogICAgICAgIGlmICh2YWx1ZSA9PSB1bmRlZmluZWQpIHsNCiAgICAgICAgICAgIHZhbHVlID0gIiI7DQogICAgICAgIH0NCiAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJ0eXBlIiwgdHlwZSk7DQogICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgibmFtZSIsIG5hbWUpOw0KICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInZhbHVlIiwgdmFsdWUpOw0KICAgICAgICByZXR1cm4gaW5wdXQ7DQogICAgfQ0KICAgIGNyZWF0ZUNoZWNrYm94KG5hbWUpIHsNCiAgICAgICAgbGV0IGlucHV0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiSU5QVVQiKTsNCiAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJ0eXBlIiwgImNoZWNrYm94Iik7DQogICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgibmFtZSIsIG5hbWUpOw0KICAgICAgICByZXR1cm4gaW5wdXQ7DQogICAgfQ0KICAgIC8vIENyZWF0ZXMgYSBzZWxlY3Rpb24gb2YgbXVsdGlwbGUgb3B0aW9ucyB2YWx1ZXMgd2l0aCB0ZXh0IGRlc2NyaXB0aW9ucw0KICAgIGNyZWF0ZVNlbGVjdCh0ZXh0LCB2YWx1ZXMsIHNldCwgZGJLZXkpIHsNCiAgICAgICAgbGV0IHNlbGVjdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlNFTEVDVCIpOw0KICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJuYW1lIiwgZGJLZXkpOw0KICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRleHQubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgICAgIGxldCBvcHRpb24gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJPUFRJT04iKTsNCiAgICAgICAgICAgIG9wdGlvbi5zZXRBdHRyaWJ1dGUoInZhbHVlIiwgdmFsdWVzW2ldKTsNCiAgICAgICAgICAgIG9wdGlvbi5pbm5lclRleHQgPSB0ZXh0W2ldOw0KICAgICAgICAgICAgc2VsZWN0LmFwcGVuZENoaWxkKG9wdGlvbik7DQogICAgICAgIH0NCiAgICAgICAgaWYgKHNldCAhPSAiIikgew0KICAgICAgICAgICAgc2VsZWN0LnZhbHVlID0gc2V0Ow0KICAgICAgICB9DQogICAgICAgIGlmIChzZXQgPT0gdW5kZWZpbmVkKSB7DQogICAgICAgICAgICBzZWxlY3QudmFsdWUgPSB2YWx1ZXNbMF07DQogICAgICAgIH0NCiAgICAgICAgcmV0dXJuIHNlbGVjdDsNCiAgICB9DQogICAgc2VsZWN0T3B0aW9uKHNlbGVjdCwgdmFsdWUpIHsNCiAgICAgICAgLy9zZWxlY3Quc2VsZWN0ZWRPcHRpb25zID0gdmFsdWUNCiAgICAgICAgbGV0IHMgPSBzZWxlY3Q7DQogICAgICAgIHMub3B0aW9uc1tzLnNlbGVjdGVkSW5kZXhdLnZhbHVlID0gdmFsdWU7DQogICAgICAgIHJldHVybiBzZWxlY3Q7DQogICAgfQ0KICAgIGRlc2NyaXB0aW9uKHZhbHVlKSB7DQogICAgICAgIGxldCB0ciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlRSIik7DQogICAgICAgIGxldCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgIGxldCBzcGFuID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiUFJFIik7DQogICAgICAgIHNwYW4uaW5uZXJIVE1MID0gdmFsdWU7DQogICAgICAgIHRyLmFwcGVuZENoaWxkKHRkKTsNCiAgICAgICAgdHIuYXBwZW5kQ2hpbGQodGhpcy5jcmVhdGVDb250ZW50KHNwYW4pKTsNCiAgICAgICAgdGhpcy50YWJsZS5hcHBlbmRDaGlsZCh0cik7DQogICAgfQ0KICAgIC8vIEludGVyYWt0aW9uDQogICAgYWRkSW50ZXJhY3Rpb24oZWxlbWVudCkgew0KICAgICAgICBsZXQgaW50ZXJhY3Rpb24gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicG9wdXAtaW50ZXJhY3Rpb24iKTsNCiAgICAgICAgaW50ZXJhY3Rpb24uYXBwZW5kQ2hpbGQoZWxlbWVudCk7DQogICAgfQ0KfQ0KZnVuY3Rpb24gb3BlblBvcFVwKGRhdGFUeXBlLCBlbGVtZW50KSB7DQogICAgbGV0IGRhdGEgPSB7fTsNCiAgICBsZXQgaWQ7DQogICAgc3dpdGNoIChlbGVtZW50KSB7DQogICAgICAgIGNhc2UgdW5kZWZpbmVkOg0KICAgICAgICAgICAgc3dpdGNoIChkYXRhVHlwZSkgew0KICAgICAgICAgICAgICAgIGNhc2UgImdyb3VwLXRpdGxlIjoNCiAgICAgICAgICAgICAgICAgICAgaWYgKGlkID09IHVuZGVmaW5lZCkgew0KICAgICAgICAgICAgICAgICAgICAgICAgaWQgPSAtMTsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBkYXRhID0gZ2V0TG9jYWxEYXRhKCJmaWx0ZXIiLCBpZCk7DQogICAgICAgICAgICAgICAgICAgIGRhdGFbInR5cGUiXSA9ICJncm91cC10aXRsZSI7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgImN1c3RvbS1maWx0ZXIiOg0KICAgICAgICAgICAgICAgICAgICBpZiAoaWQgPT0gdW5kZWZpbmVkKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBpZCA9IC0xOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIGRhdGEgPSBnZXRMb2NhbERhdGEoImZpbHRlciIsIGlkKTsNCiAgICAgICAgICAgICAgICAgICAgZGF0YVsidHlwZSJdID0gImN1c3RvbS1maWx0ZXIiOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBkZWZhdWx0Og0KICAgICAgICAgICAgICAgICAgICBkYXRhWyJpZC5wcm92aWRlciJdID0gIi0iOw0KICAgICAgICAgICAgICAgICAgICBkYXRhWyJ0eXBlIl0gPSBkYXRhVHlwZTsNCiAgICAgICAgICAgICAgICAgICAgaWQgPSAiLSI7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICBpZCA9IGVsZW1lbnQuaWQ7DQogICAgICAgICAgICBkYXRhID0gZ2V0TG9jYWxEYXRhKGRhdGFUeXBlLCBpZCk7DQogICAgICAgICAgICBicmVhazsNCiAgICB9DQogICAgbGV0IGNvbnRlbnQgPSBuZXcgUG9wdXBDb250ZW50KCk7DQogICAgc3dpdGNoIChkYXRhVHlwZSkgew0KICAgICAgICBjYXNlICJwbGF5bGlzdCI6DQogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUhlYWRsaW5lKCJ7ey5wbGF5bGlzdC5wbGF5bGlzdFR5cGUudGl0bGV9fSIpOw0KICAgICAgICAgICAgLy8gVHlwZQ0KICAgICAgICAgICAgdmFyIHRleHQgPSBbIk0zVSIsICJIREhvbWVSdW4iXTsNCiAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBbImphdmFzY3JpcHQ6IG9wZW5Qb3BVcCgnbTN1JykiLCAiamF2YXNjcmlwdDogb3BlblBvcFVwKCdoZGhyJykiXTsNCiAgICAgICAgICAgIHZhciBzZWxlY3QgPSBjb250ZW50LmNyZWF0ZVNlbGVjdCh0ZXh0LCB2YWx1ZXMsICIiLCAidHlwZSIpOw0KICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgiaWQiLCAidHlwZSIpOw0KICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAnamF2YXNjcmlwdDogY2hhbmdlQnV0dG9uQWN0aW9uKHRoaXMsICJuZXh0IiwgIm9uY2xpY2siKScpOyAvLyBjaGFuZ2VCdXR0b25BY3Rpb24NCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5wbGF5bGlzdC50eXBlLnRpdGxlfX0iLCBzZWxlY3QpOw0KICAgICAgICAgICAgLy8gSW50ZXJha3Rpb24NCiAgICAgICAgICAgIGNvbnRlbnQuY3JlYXRlSW50ZXJhY3Rpb24oKTsNCiAgICAgICAgICAgIC8vIEFiYnJlY2hlbg0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImNhbmNlbCIsICJ7ey5idXR0b24uY2FuY2VsfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBzaG93RWxlbWVudCgicG9wdXAiLCBmYWxzZSk7Jyk7DQogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIC8vIFdlaXRlcg0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgIm5leHQiLCAie3suYnV0dG9uLm5leHR9fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgibTN1IiknKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgiaWQiLCAnbmV4dCcpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSAibTN1IjoNCiAgICAgICAgICAgIGNvbnRlbnQuY3JlYXRlSGVhZGxpbmUoZGF0YVR5cGUpOw0KICAgICAgICAgICAgLy8gTmFtZQ0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gIm5hbWUiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnBsYXlsaXN0Lm5hbWUucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnBsYXlsaXN0Lm5hbWUudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIEJlc2NocmVpYnVuZw0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gImRlc2NyaXB0aW9uIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5wbGF5bGlzdC5kZXNjcmlwdGlvbi5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sucGxheWxpc3QuZGVzY3JpcHRpb24udGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIFVSTA0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gImZpbGUuc291cmNlIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5wbGF5bGlzdC5maWxlTTNVLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5wbGF5bGlzdC5maWxlTTNVLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBUdW5lcg0KICAgICAgICAgICAgaWYgKFNFUlZFUlsic2V0dGluZ3MiXVsiYnVmZmVyIl0gIT0gIi0iKSB7DQogICAgICAgICAgICAgICAgdmFyIHRleHQgPSBbXTsNCiAgICAgICAgICAgICAgICB2YXIgdmFsdWVzID0gW107DQogICAgICAgICAgICAgICAgZm9yICh2YXIgaSA9IDE7IGkgPD0gMTAwOyBpKyspIHsNCiAgICAgICAgICAgICAgICAgICAgdGV4dC5wdXNoKGkudG9TdHJpbmcoKSk7DQogICAgICAgICAgICAgICAgICAgIHZhbHVlcy5wdXNoKGkudG9TdHJpbmcoKSk7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIHZhciBkYktleSA9ICJ0dW5lciI7DQogICAgICAgICAgICAgICAgdmFyIHNlbGVjdCA9IGNvbnRlbnQuY3JlYXRlU2VsZWN0KHRleHQsIHZhbHVlcywgZGF0YVtkYktleV0sIGRiS2V5KTsNCiAgICAgICAgICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJvbmZvY3VzIiwgImphdmFzY3JpcHQ6IHJldHVybjsiKTsNCiAgICAgICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sucGxheWxpc3QudHVuZXIudGl0bGV9fSIsIHNlbGVjdCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICB2YXIgZGJLZXkgPSAidHVuZXIiOw0KICAgICAgICAgICAgICAgIGlmIChkYXRhW2RiS2V5XSA9PSB1bmRlZmluZWQpIHsNCiAgICAgICAgICAgICAgICAgICAgZGF0YVtkYktleV0gPSAxOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInJlYWRvbmx5IiwgInRydWUiKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5jbGFzc05hbWUgPSAibm90QXZhaWxhYmxlIjsNCiAgICAgICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sucGxheWxpc3QudHVuZXIudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGNvbnRlbnQuZGVzY3JpcHRpb24oInt7LnBsYXlsaXN0LnR1bmVyLmRlc2NyaXB0aW9ufX0iKTsNCiAgICAgICAgICAgIC8vIEludGVyYWt0aW9uDQogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUludGVyYWN0aW9uKCk7DQogICAgICAgICAgICAvLyBMw7ZzY2hlbg0KICAgICAgICAgICAgaWYgKGRhdGFbImlkLnByb3ZpZGVyIl0gIT0gIi0iKSB7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImRlbGV0ZSIsICJ7ey5idXR0b24uZGVsZXRlfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5jbGFzc05hbWUgPSAiZGVsZXRlIjsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogc2F2ZVBvcHVwRGF0YSgibTN1IiwgIicgKyBpZCArICciLCB0cnVlLCAwKScpOw0KICAgICAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgZWxzZSB7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImJhY2siLCAie3suYnV0dG9uLmJhY2t9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoInBsYXlsaXN0IiknKTsNCiAgICAgICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIC8vIEFiYnJlY2hlbg0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImNhbmNlbCIsICJ7ey5idXR0b24uY2FuY2VsfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBzaG93RWxlbWVudCgicG9wdXAiLCBmYWxzZSk7Jyk7DQogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIC8vIEFrdHVhbGlzaWVyZW4NCiAgICAgICAgICAgIGlmIChkYXRhWyJpZC5wcm92aWRlciJdICE9ICItIikgew0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJ1cGRhdGUiLCAie3suYnV0dG9uLnVwZGF0ZX19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoIm0zdSIsICInICsgaWQgKyAnIiwgZmFsc2UsIDEpJyk7DQogICAgICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICAvLyBTcGVpY2hlcm4NCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJzYXZlIiwgInt7LmJ1dHRvbi5zYXZlfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBzYXZlUG9wdXBEYXRhKCJtM3UiLCAiJyArIGlkICsgJyIsIGZhbHNlLCAwKScpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSAiaGRociI6DQogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUhlYWRsaW5lKGRhdGFUeXBlKTsNCiAgICAgICAgICAgIC8vIE5hbWUNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJuYW1lIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5wbGF5bGlzdC5uYW1lLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5wbGF5bGlzdC5uYW1lLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBCZXNjaHJlaWJ1bmcNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJkZXNjcmlwdGlvbiI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3sucGxheWxpc3QuZGVzY3JpcHRpb24ucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnBsYXlsaXN0LmRlc2NyaXB0aW9uLnBsYWNlaG9sZGVyfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBVUkwNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJmaWxlLnNvdXJjZSI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3sucGxheWxpc3QuZmlsZUhESFIucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnBsYXlsaXN0LmZpbGVIREhSLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBUdW5lcg0KICAgICAgICAgICAgaWYgKFNFUlZFUlsic2V0dGluZ3MiXVsiYnVmZmVyIl0gIT0gIi0iKSB7DQogICAgICAgICAgICAgICAgdmFyIHRleHQgPSBbXTsNCiAgICAgICAgICAgICAgICB2YXIgdmFsdWVzID0gW107DQogICAgICAgICAgICAgICAgZm9yICh2YXIgaSA9IDE7IGkgPD0gMTAwOyBpKyspIHsNCiAgICAgICAgICAgICAgICAgICAgdGV4dC5wdXNoKGkudG9TdHJpbmcoKSk7DQogICAgICAgICAgICAgICAgICAgIHZhbHVlcy5wdXNoKGkudG9TdHJpbmcoKSk7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIHZhciBkYktleSA9ICJ0dW5lciI7DQogICAgICAgICAgICAgICAgdmFyIHNlbGVjdCA9IGNvbnRlbnQuY3JlYXRlU2VsZWN0KHRleHQsIHZhbHVlcywgZGF0YVtkYktleV0sIGRiS2V5KTsNCiAgICAgICAgICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJvbmZvY3VzIiwgImphdmFzY3JpcHQ6IHJldHVybjsiKTsNCiAgICAgICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sucGxheWxpc3QudHVuZXIudGl0bGV9fSIsIHNlbGVjdCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICB2YXIgZGJLZXkgPSAidHVuZXIiOw0KICAgICAgICAgICAgICAgIGlmIChkYXRhW2RiS2V5XSA9PSB1bmRlZmluZWQpIHsNCiAgICAgICAgICAgICAgICAgICAgZGF0YVtkYktleV0gPSAxOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInJlYWRvbmx5IiwgInRydWUiKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5jbGFzc05hbWUgPSAibm90QXZhaWxhYmxlIjsNCiAgICAgICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sucGxheWxpc3QudHVuZXIudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGNvbnRlbnQuZGVzY3JpcHRpb24oInt7LnBsYXlsaXN0LnR1bmVyLmRlc2NyaXB0aW9ufX0iKTsNCiAgICAgICAgICAgIC8vIEludGVyYWt0aW9uDQogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUludGVyYWN0aW9uKCk7DQogICAgICAgICAgICAvLyBMw7ZzY2hlbg0KICAgICAgICAgICAgaWYgKGRhdGFbImlkLnByb3ZpZGVyIl0gIT0gIi0iKSB7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImRlbGV0ZSIsICJ7ey5idXR0b24uZGVsZXRlfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogc2F2ZVBvcHVwRGF0YSgiaGRociIsICInICsgaWQgKyAnIiwgdHJ1ZSwgMCknKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5jbGFzc05hbWUgPSAiZGVsZXRlIjsNCiAgICAgICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJiYWNrIiwgInt7LmJ1dHRvbi5iYWNrfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJwbGF5bGlzdCIpJyk7DQogICAgICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICAvLyBBYmJyZWNoZW4NCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJjYW5jZWwiLCAie3suYnV0dG9uLmNhbmNlbH19Iik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogc2hvd0VsZW1lbnQoInBvcHVwIiwgZmFsc2UpOycpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICAvLyBBa3R1YWxpc2llcmVuDQogICAgICAgICAgICBpZiAoZGF0YVsiaWQucHJvdmlkZXIiXSAhPSAiLSIpIHsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAidXBkYXRlIiwgInt7LmJ1dHRvbi51cGRhdGV9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBzYXZlUG9wdXBEYXRhKCJoZGhyIiwgIicgKyBpZCArICciLCBmYWxzZSwgMSknKTsNCiAgICAgICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIC8vIFNwZWljaGVybg0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgInNhdmUiLCAie3suYnV0dG9uLnNhdmV9fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoImhkaHIiLCAiJyArIGlkICsgJyIsIGZhbHNlLCAwKScpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSAiZmlsdGVyIjoNCiAgICAgICAgICAgIGNvbnRlbnQuY3JlYXRlSGVhZGxpbmUoZGF0YVR5cGUpOw0KICAgICAgICAgICAgLy8gVHlwZQ0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gInR5cGUiOw0KICAgICAgICAgICAgdmFyIHRleHQgPSBbIk0zVTogIiArICJ7ey5maWx0ZXIudHlwZS5ncm91cFRpdGxlfX0iLCAieFRlVmU6ICIgKyAie3suZmlsdGVyLnR5cGUuY3VzdG9tRmlsdGVyfX0iXTsNCiAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBbImphdmFzY3JpcHQ6IG9wZW5Qb3BVcCgnZ3JvdXAtdGl0bGUnKSIsICJqYXZhc2NyaXB0OiBvcGVuUG9wVXAoJ2N1c3RvbS1maWx0ZXInKSJdOw0KICAgICAgICAgICAgdmFyIHNlbGVjdCA9IGNvbnRlbnQuY3JlYXRlU2VsZWN0KHRleHQsIHZhbHVlcywgImphdmFzY3JpcHQ6IG9wZW5Qb3BVcCgnZ3JvdXAtdGl0bGUnKSIsIGRiS2V5KTsNCiAgICAgICAgICAgIHNlbGVjdC5zZXRBdHRyaWJ1dGUoImlkIiwgaWQpOw0KICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAnamF2YXNjcmlwdDogY2hhbmdlQnV0dG9uQWN0aW9uKHRoaXMsICJuZXh0IiwgIm9uY2xpY2siKTsnKTsgLy8gY2hhbmdlQnV0dG9uQWN0aW9uDQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3suZmlsdGVyLnR5cGUudGl0bGV9fSIsIHNlbGVjdCk7DQogICAgICAgICAgICAvLyBJbnRlcmFrdGlvbg0KICAgICAgICAgICAgY29udGVudC5jcmVhdGVJbnRlcmFjdGlvbigpOw0KICAgICAgICAgICAgLy8gQWJicmVjaGVuDQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAiY2FuY2VsIiwgInt7LmJ1dHRvbi5jYW5jZWx9fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IHNob3dFbGVtZW50KCJwb3B1cCIsIGZhbHNlKTsnKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgLy8gV2VpdGVyDQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAibmV4dCIsICJ7ey5idXR0b24ubmV4dH19Iik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJncm91cC10aXRsZSIpJyk7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoImlkIiwgJ25leHQnKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGNhc2UgImN1c3RvbS1maWx0ZXIiOg0KICAgICAgICBjYXNlICJncm91cC10aXRsZSI6DQogICAgICAgICAgICBzd2l0Y2ggKGRhdGFUeXBlKSB7DQogICAgICAgICAgICAgICAgY2FzZSAiY3VzdG9tLWZpbHRlciI6DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuY3JlYXRlSGVhZGxpbmUoInt7LmZpbHRlci5jdXN0b219fSIgKyAiIEZpbHRlciIpOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBjYXNlICJncm91cC10aXRsZSI6DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuY3JlYXRlSGVhZGxpbmUoInt7LmZpbHRlci5ncm91cH19IiArICIgRmlsdGVyIik7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgLy8gTmFtZSAgICAgIA0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gIm5hbWUiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LmZpbHRlci5uYW1lLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5maWx0ZXIubmFtZS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgLy8gQmVzY2hyZWlidW5nDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAiZGVzY3JpcHRpb24iOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LmZpbHRlci5kZXNjcmlwdGlvbi5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3suZmlsdGVyLmRlc2NyaXB0aW9uLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBUeXANCiAgICAgICAgICAgIHZhciBkYktleSA9ICJ0eXBlIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImhpZGRlbiIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygiIiwgaW5wdXQpOw0KICAgICAgICAgICAgdmFyIGZpbHRlclR5cGUgPSBkYXRhW2RiS2V5XTsNCiAgICAgICAgICAgIHN3aXRjaCAoZmlsdGVyVHlwZSkgew0KICAgICAgICAgICAgICAgIGNhc2UgImN1c3RvbS1maWx0ZXIiOg0KICAgICAgICAgICAgICAgICAgICAvLyBHcm/Dny0gS2xlaW5zY2hyZWlidW5nIGJlYWNodGVuDQogICAgICAgICAgICAgICAgICAgIHZhciBkYktleSA9ICJjYXNlU2Vuc2l0aXZlIjsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChkYktleSk7DQogICAgICAgICAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhW2RiS2V5XTsNCiAgICAgICAgICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LmZpbHRlci5jYXNlU2Vuc2l0aXZlLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAgICAgICAgIC8vIEZpbHRlcnJlZ2VsIChCZW51dHplcmRlZmluaWVydCkNCiAgICAgICAgICAgICAgICAgICAgdmFyIGRiS2V5ID0gImZpbHRlciI7DQogICAgICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LmZpbHRlci5maWx0ZXJSdWxlLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LmZpbHRlci5maWx0ZXJSdWxlLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgImdyb3VwLXRpdGxlIjoNCiAgICAgICAgICAgICAgICAgICAgLy9hbGVydChkYktleSArICIgIiArIGZpbHRlclR5cGUpDQogICAgICAgICAgICAgICAgICAgIC8vIEZpbHRlciBiYXNpZXJlbmQgYXVmIGRlbiBHcnVwcGVuIGluIGRlciBNM1UNCiAgICAgICAgICAgICAgICAgICAgdmFyIGRiS2V5ID0gImZpbHRlciI7DQogICAgICAgICAgICAgICAgICAgIHZhciBncm91cHNNM1UgPSBnZXRMb2NhbERhdGEoIm0zdUdyb3VwcyIsICIiKTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHRleHQgPSBncm91cHNNM1VbInRleHQiXTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHZhbHVlcyA9IGdyb3Vwc00zVVsidmFsdWUiXTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHNlbGVjdCA9IGNvbnRlbnQuY3JlYXRlU2VsZWN0KHRleHQsIHZhbHVlcywgZGF0YVtkYktleV0sIGRiS2V5KTsNCiAgICAgICAgICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LmZpbHRlci5maWx0ZXJHcm91cC50aXRsZX19Iiwgc2VsZWN0KTsNCiAgICAgICAgICAgICAgICAgICAgY29udGVudC5kZXNjcmlwdGlvbigie3suZmlsdGVyLmZpbHRlckdyb3VwLmRlc2NyaXB0aW9ufX0iKTsNCiAgICAgICAgICAgICAgICAgICAgLy8gR3Jvw58tIEtsZWluc2NocmVpYnVuZyBiZWFjaHRlbg0KICAgICAgICAgICAgICAgICAgICB2YXIgZGJLZXkgPSAiY2FzZVNlbnNpdGl2ZSI7DQogICAgICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goZGJLZXkpOw0KICAgICAgICAgICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YVtkYktleV07DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5maWx0ZXIuY2FzZVNlbnNpdGl2ZS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgICAgICAgICB2YXIgZGJLZXkgPSAiaW5jbHVkZSI7DQogICAgICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LmZpbHRlci5pbmNsdWRlLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LmZpbHRlci5pbmNsdWRlLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuZGVzY3JpcHRpb24oInt7LmZpbHRlci5pbmNsdWRlLmRlc2NyaXB0aW9ufX0iKTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGRiS2V5ID0gImV4Y2x1ZGUiOw0KICAgICAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5maWx0ZXIuZXhjbHVkZS5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5maWx0ZXIuZXhjbHVkZS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgICAgICAgICBjb250ZW50LmRlc2NyaXB0aW9uKCJ7ey5maWx0ZXIuZXhjbHVkZS5kZXNjcmlwdGlvbn19Iik7DQogICAgICAgICAgICAgICAgICAgIC8vIFByZXNlcnZlIE0zVSBQbGF5bGlzdCBDaGFubmVsIE1hcHBpbmcNCiAgICAgICAgICAgICAgICAgICAgdmFyIGRiS2V5ID0gInByZXNlcnZlTWFwcGluZyI7DQogICAgICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goZGJLZXkpOw0KICAgICAgICAgICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YVtkYktleV07DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5maWx0ZXIucHJlc2VydmVNYXBwaW5nLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAgICAgICAgIC8vIFN0YXJ0aW5nIENoYW5uZWwgTnVtYmVyIE1hcHBpbmcNCiAgICAgICAgICAgICAgICAgICAgdmFyIGRiS2V5ID0gInN0YXJ0aW5nQ2hhbm5lbCI7DQogICAgICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LmZpbHRlci5zdGFydGluZ0NoYW5uZWwucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3suZmlsdGVyLnN0YXJ0aW5nQ2hhbm5lbC50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgICAgICAgICAvLyBGaWxsIE1pc3NpbmcgRVBHIERhdGENCiAgICAgICAgICAgICAgICAgICAgLy8gVGhlIGZvbGxvd2luZyBjb2RlIG9ubHkgd29ya3Mgd2hlbiB4VGVWZSBEdW1teSBhbHJlYWR5IGV4aXN0cw0KICAgICAgICAgICAgICAgICAgICAvLyB2YXIgZGJLZXk6c3RyaW5nID0gImRlZmF1bHRNaXNzaW5nRVBHIg0KICAgICAgICAgICAgICAgICAgICAvLyB2YXIgeG1sdHY6WE1MVFZGaWxlID0gbmV3IFhNTFRWRmlsZSgpDQogICAgICAgICAgICAgICAgICAgIC8vIHZhciBzZWxlY3QgPSB4bWx0di5nZXRQcm9ncmFtcygieFRlVmUgRHVtbXkiLCBkYXRhW2RiS2V5XSkNCiAgICAgICAgICAgICAgICAgICAgLy8gc2VsZWN0LnNldEF0dHJpYnV0ZSgibmFtZSIsIGRiS2V5KQ0KICAgICAgICAgICAgICAgICAgICAvLyBzZWxlY3Quc2V0QXR0cmlidXRlKCJpZCIsICJwb3B1cC1taXNzaW5nLWVwZyIpDQogICAgICAgICAgICAgICAgICAgIC8vIFRoZSB3b3JrYXJvdW5kIGlzIGN1cnJlbnRseSB0byBoYXJkIGNvZGUgdGhlIHhUZVZlIER1bW15IGRhdGENCiAgICAgICAgICAgICAgICAgICAgdmFyIGRiS2V5ID0gImRlZmF1bHRNaXNzaW5nRVBHIjsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGxpc3RPcHRpb25zID0geyAidGV4dCI6IFsiLSIsICIzMCBNaW51dGVzICgzMF9NaW51dGVzKSIsICI2MCBNaW51dGVzICg2MF9NaW51dGVzKSIsICI5MCBNaW51dGVzICg5MF9NaW51dGVzKSIsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgIjEyMCBNaW51dGVzICgxMjBfTWludXRlcykiLCAiMTgwIE1pbnV0ZXMgKDMwX01pbnV0ZXMpIiwgIjI0MCBNaW51dGVzICgzMF9NaW51dGVzKSIsICIzNjAgTWludXRlcyAoMzBfTWludXRlcykiXSwNCiAgICAgICAgICAgICAgICAgICAgICAgICJ2YWx1ZSI6IFsiLSIsICIzMF9NaW51dGVzIiwgIjYwX01pbnV0ZXMiLCAiOTBfTWludXRlcyIsICIxMjBfTWludXRlcyIsICIxODBfTWludXRlcyIsICIyNDBfTWludXRlcyIsICIzNjBfTWludXRlcyIsXSB9Ow0KICAgICAgICAgICAgICAgICAgICB2YXIgdGV4dCA9IGxpc3RPcHRpb25zWyJ0ZXh0Il07DQogICAgICAgICAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBsaXN0T3B0aW9uc1sidmFsdWUiXTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHNlbGVjdCA9IGNvbnRlbnQuY3JlYXRlU2VsZWN0KHRleHQsIHZhbHVlcywgZGF0YVtkYktleV0sIGRiS2V5KTsNCiAgICAgICAgICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LmZpbHRlci5kZWZhdWx0TWlzc2luZ0VQRy50aXRsZX19Iiwgc2VsZWN0KTsNCiAgICAgICAgICAgICAgICAgICAgY29udGVudC5kZXNjcmlwdGlvbigie3suZmlsdGVyLmRlZmF1bHRNaXNzaW5nRVBHLmRlc2NyaXB0aW9ufX0iKTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICB9DQogICAgICAgICAgICAvLyBJbnRlcmFrdGlvbg0KICAgICAgICAgICAgY29udGVudC5jcmVhdGVJbnRlcmFjdGlvbigpOw0KICAgICAgICAgICAgLy8gTMO2c2NoZW4NCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJkZWxldGUiLCAie3suYnV0dG9uLmRlbGV0ZX19Iik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogc2F2ZVBvcHVwRGF0YSgiZmlsdGVyIiwgIicgKyBpZCArICciLCB0cnVlLCAwKScpOw0KICAgICAgICAgICAgaW5wdXQuY2xhc3NOYW1lID0gImRlbGV0ZSI7DQogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIC8vIEFiYnJlY2hlbg0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImNhbmNlbCIsICJ7ey5idXR0b24uY2FuY2VsfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBzaG93RWxlbWVudCgicG9wdXAiLCBmYWxzZSk7Jyk7DQogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIC8vIFNwZWljaGVybg0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgInNhdmUiLCAie3suYnV0dG9uLnNhdmV9fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoImZpbHRlciIsICInICsgaWQgKyAnIiwgZmFsc2UsIDApJyk7DQogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJ4bWx0diI6DQogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUhlYWRsaW5lKGRhdGFUeXBlKTsNCiAgICAgICAgICAgIC8vIE5hbWUNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJuYW1lIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey54bWx0di5uYW1lLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey54bWx0di5uYW1lLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBCZXNjaHJlaWJ1bmcNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJkZXNjcmlwdGlvbiI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3sueG1sdHYuZGVzY3JpcHRpb24ucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnhtbHR2LmRlc2NyaXB0aW9uLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBVUkwNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJmaWxlLnNvdXJjZSI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3sueG1sdHYuZmlsZVhNTFRWLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey54bWx0di5maWxlWE1MVFYudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIEludGVyYWt0aW9uDQogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUludGVyYWN0aW9uKCk7DQogICAgICAgICAgICAvLyBMw7ZzY2hlbg0KICAgICAgICAgICAgaWYgKGRhdGFbImlkLnByb3ZpZGVyIl0gIT0gIi0iKSB7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImRlbGV0ZSIsICJ7ey5idXR0b24uZGVsZXRlfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogc2F2ZVBvcHVwRGF0YSgieG1sdHYiLCAiJyArIGlkICsgJyIsIHRydWUsIDApJyk7DQogICAgICAgICAgICAgICAgaW5wdXQuY2xhc3NOYW1lID0gImRlbGV0ZSI7DQogICAgICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICAvLyBBYmJyZWNoZW4NCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJjYW5jZWwiLCAie3suYnV0dG9uLmNhbmNlbH19Iik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogc2hvd0VsZW1lbnQoInBvcHVwIiwgZmFsc2UpOycpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICAvLyBBa3R1YWxpc2llcmVuDQogICAgICAgICAgICBpZiAoZGF0YVsiaWQucHJvdmlkZXIiXSAhPSAiLSIpIHsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAidXBkYXRlIiwgInt7LmJ1dHRvbi51cGRhdGV9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBzYXZlUG9wdXBEYXRhKCJ4bWx0diIsICInICsgaWQgKyAnIiwgZmFsc2UsIDEpJyk7DQogICAgICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICAvLyBTcGVpY2hlcm4NCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJzYXZlIiwgInt7LmJ1dHRvbi5zYXZlfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBzYXZlUG9wdXBEYXRhKCJ4bWx0diIsICInICsgaWQgKyAnIiwgZmFsc2UsIDApJyk7DQogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJ1c2VycyI6DQogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUhlYWRsaW5lKCJ7ey5tYWluTWVudS5pdGVtLnVzZXJzfX0iKTsNCiAgICAgICAgICAgIC8vIEJlbnV0emVybmFtZSANCiAgICAgICAgICAgIHZhciBkYktleSA9ICJ1c2VybmFtZSI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3sudXNlcnMudXNlcm5hbWUucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnVzZXJzLnVzZXJuYW1lLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBOZXVlcyBQYXNzd29ydCANCiAgICAgICAgICAgIHZhciBkYktleSA9ICJwYXNzd29yZCI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJwYXNzd29yZCIsIGRiS2V5LCAiIik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnVzZXJzLnBhc3N3b3JkLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey51c2Vycy5wYXNzd29yZC50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgLy8gQmVzdMOkdGlndW5nIA0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gImNvbmZpcm0iOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgicGFzc3dvcmQiLCBkYktleSwgIiIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey51c2Vycy5jb25maXJtLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey51c2Vycy5jb25maXJtLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBCZXJlY2h0aWd1bmcgV0VCDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAiYXV0aGVudGljYXRpb24ud2ViIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goZGJLZXkpOw0KICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGFbZGJLZXldOw0KICAgICAgICAgICAgaWYgKGRhdGFbImRlZmF1bHRVc2VyIl0gPT0gdHJ1ZSkgew0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICJqYXZhc2NyaXB0OiByZXR1cm4gZmFsc2UiKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey51c2Vycy53ZWIudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIEJlcmVjaHRpZ3VuZyBQTVMNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJhdXRoZW50aWNhdGlvbi5wbXMiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChkYktleSk7DQogICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YVtkYktleV07DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sudXNlcnMucG1zLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBCZXJlY2h0aWd1bmcgTTNVDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAiYXV0aGVudGljYXRpb24ubTN1IjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goZGJLZXkpOw0KICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGFbZGJLZXldOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnVzZXJzLm0zdS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgLy8gQmVyZWNodGlndW5nIFhNTA0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gImF1dGhlbnRpY2F0aW9uLnhtbCI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KGRiS2V5KTsNCiAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhW2RiS2V5XTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey51c2Vycy54bWwudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIEJlcmVjaHRpZ3VuZyBBUEkNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJhdXRoZW50aWNhdGlvbi5hcGkiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChkYktleSk7DQogICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YVtkYktleV07DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sudXNlcnMuYXBpLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBJbnRlcmFrdGlvbg0KICAgICAgICAgICAgY29udGVudC5jcmVhdGVJbnRlcmFjdGlvbigpOw0KICAgICAgICAgICAgLy8gTMO2c2NoZW4NCiAgICAgICAgICAgIGlmIChkYXRhWyJkZWZhdWx0VXNlciJdICE9IHRydWUgJiYgaWQgIT0gIi0iKSB7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImRlbGV0ZSIsICJ7ey5idXR0b24uZGVsZXRlfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5jbGFzc05hbWUgPSAiZGVsZXRlIjsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogc2F2ZVBvcHVwRGF0YSgiJyArIGRhdGFUeXBlICsgJyIsICInICsgaWQgKyAnIiwgdHJ1ZSwgMCknKTsNCiAgICAgICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIC8vIEFiYnJlY2hlbg0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImNhbmNlbCIsICJ7ey5idXR0b24uY2FuY2VsfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBzaG93RWxlbWVudCgicG9wdXAiLCBmYWxzZSk7Jyk7DQogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIC8vIFNwZWljaGVybg0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgInNhdmUiLCAie3suYnV0dG9uLnNhdmV9fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoIicgKyBkYXRhVHlwZSArICciLCAiJyArIGlkICsgJyIsICJmYWxzZSIpOycpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSAibWFwcGluZyI6DQogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUhlYWRsaW5lKCJ7ey5tYWluTWVudS5pdGVtLm1hcHBpbmd9fSIpOw0KICAgICAgICAgICAgLy8gQWt0aXYgDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAieC1hY3RpdmUiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChkYktleSk7DQogICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YVtkYktleV07DQogICAgICAgICAgICBpbnB1dC5pZCA9ICJhY3RpdmUiOw0KICAgICAgICAgICAgLy9pbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIikNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdG9nZ2xlQ2hhbm5lbFN0YXR1cygnIiArIGlkICsgIicsIHRoaXMpIik7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3subWFwcGluZy5hY3RpdmUudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIEthbmFsbmFtZSANCiAgICAgICAgICAgIHZhciBkYktleSA9ICJ4LW5hbWUiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICBpZiAoQlVMS19FRElUID09IHRydWUpIHsNCiAgICAgICAgICAgICAgICBpbnB1dC5zdHlsZS5ib3JkZXIgPSAic29saWQgMXB4IHJlZCI7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJyZWFkb25seSIsICJ0cnVlIik7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3subWFwcGluZy5jaGFubmVsTmFtZS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgY29udGVudC5kZXNjcmlwdGlvbihkYXRhWyJuYW1lIl0pOw0KICAgICAgICAgICAgLy8gQmVzY2hyZWlidW5nIA0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gIngtZGVzY3JpcHRpb24iOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7Lm1hcHBpbmcuZGVzY3JpcHRpb24ucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7Lm1hcHBpbmcuZGVzY3JpcHRpb24udGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIEFrdHVhbGlzaWVydW5nIGRlcyBLYW5hbG5hbWVucw0KICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoIl91dWlkLmtleSIpKSB7DQogICAgICAgICAgICAgICAgaWYgKGRhdGFbIl91dWlkLmtleSJdICE9ICIiKSB7DQogICAgICAgICAgICAgICAgICAgIHZhciBkYktleSA9ICJ4LXVwZGF0ZS1jaGFubmVsLW5hbWUiOw0KICAgICAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KGRiS2V5KTsNCiAgICAgICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YVtkYktleV07DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5tYXBwaW5nLnVwZGF0ZUNoYW5uZWxOYW1lLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgLy8gTG9nbyBVUkwgKEthbmFsKSANCiAgICAgICAgICAgIHZhciBkYktleSA9ICJ0dmctbG9nbyI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgiaWQiLCAiY2hhbm5lbC1pY29uIik7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3subWFwcGluZy5jaGFubmVsTG9nby50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgLy8gQWt0dWFsaXNpZXJ1bmcgZGVzIEthbmFsbG9nb3MNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJ4LXVwZGF0ZS1jaGFubmVsLWljb24iOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChkYktleSk7DQogICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YVtkYktleV07DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoImlkIiwgInVwZGF0ZS1pY29uIik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnOyBjaGFuZ2VDaGFubmVsTG9nbygnIiArIGlkICsgIicpOyIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7Lm1hcHBpbmcudXBkYXRlQ2hhbm5lbExvZ28udGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIEVyd2VpdGVybiBkZXIgRVBHIEthdGVnb3JpZQ0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gIngtY2F0ZWdvcnkiOw0KICAgICAgICAgICAgdmFyIHRleHQgPSBbIi0iLCAiS2lkcyAoRW1ieSBvbmx5KSIsICJOZXdzIiwgIk1vdmllIiwgIlNlcmllcyIsICJTcG9ydHMiXTsNCiAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBbIiIsICJLaWRzIiwgIk5ld3MiLCAiTW92aWUiLCAiU2VyaWVzIiwgIlNwb3J0cyJdOw0KICAgICAgICAgICAgdmFyIHNlbGVjdCA9IGNvbnRlbnQuY3JlYXRlU2VsZWN0KHRleHQsIHZhbHVlcywgZGF0YVtkYktleV0sIGRiS2V5KTsNCiAgICAgICAgICAgIHNlbGVjdC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3subWFwcGluZy5lcGdDYXRlZ29yeS50aXRsZX19Iiwgc2VsZWN0KTsNCiAgICAgICAgICAgIC8vIE0zVSBHcnVwcGVudGl0ZWwNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJ4LWdyb3VwLXRpdGxlIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7Lm1hcHBpbmcubTN1R3JvdXBUaXRsZS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgaWYgKGRhdGFbImdyb3VwLXRpdGxlIl0gIT0gdW5kZWZpbmVkKSB7DQogICAgICAgICAgICAgICAgY29udGVudC5kZXNjcmlwdGlvbihkYXRhWyJncm91cC10aXRsZSJdKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIC8vIFhNTFRWIERhdGVpDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAieC14bWx0di1maWxlIjsNCiAgICAgICAgICAgIHZhciB4bWxGaWxlID0gZGF0YVtkYktleV07DQogICAgICAgICAgICB2YXIgeG1sdHYgPSBuZXcgWE1MVFZGaWxlKCk7DQogICAgICAgICAgICB2YXIgc2VsZWN0ID0geG1sdHYuZ2V0RmlsZXMoZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgibmFtZSIsIGRiS2V5KTsNCiAgICAgICAgICAgIHNlbGVjdC5zZXRBdHRyaWJ1dGUoImlkIiwgInBvcHVwLXhtbHR2Iik7DQogICAgICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJzsgc2V0WG1sdHZDaGFubmVsKCciICsgaWQgKyAiJyx0aGlzKTsiKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5tYXBwaW5nLnhtbHR2RmlsZS50aXRsZX19Iiwgc2VsZWN0KTsNCiAgICAgICAgICAgIHZhciBmaWxlID0gZGF0YVtkYktleV07DQogICAgICAgICAgICAvLyBYTUxUViBNYXBwaW5nDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAieC1tYXBwaW5nIjsNCiAgICAgICAgICAgIHZhciB4bWx0diA9IG5ldyBYTUxUVkZpbGUoKTsNCiAgICAgICAgICAgIHZhciBzZWxlY3QgPSB4bWx0di5nZXRQcm9ncmFtcyhmaWxlLCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJuYW1lIiwgZGJLZXkpOw0KICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgiaWQiLCAicG9wdXAtbWFwcGluZyIpOw0KICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCc7IGNoZWNrWG1sdHZDaGFubmVsKCciICsgaWQgKyAiJyx0aGlzLCciICsgeG1sRmlsZSArICInKTsiKTsNCiAgICAgICAgICAgIHNvcnRTZWxlY3Qoc2VsZWN0KTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5tYXBwaW5nLnhtbHR2Q2hhbm5lbC50aXRsZX19Iiwgc2VsZWN0KTsNCiAgICAgICAgICAgIC8vIFRpbWVzaGlmdA0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gIngtdGltZXNoaWZ0IjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5tYXBwaW5nLnRpbWVzaGlmdC5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoImlkIiwgInRpbWVzaGlmdCIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7Lm1hcHBpbmcudGltZXNoaWZ0LnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBJbnRlcmFrdGlvbg0KICAgICAgICAgICAgY29udGVudC5jcmVhdGVJbnRlcmFjdGlvbigpOw0KICAgICAgICAgICAgLy8gTG9nbyBob2NobGFkZW4NCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJjYW5jZWwiLCAie3suYnV0dG9uLnVwbG9hZExvZ299fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IHVwbG9hZExvZ28oKTsnKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgLy8gQWJicmVjaGVuDQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAiY2FuY2VsIiwgInt7LmJ1dHRvbi5jYW5jZWx9fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IHNob3dFbGVtZW50KCJwb3B1cCIsIGZhbHNlKTsnKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgLy8gRmVydGlnDQogICAgICAgICAgICB2YXIgaWRzID0gW107DQogICAgICAgICAgICBpZHMgPSBnZXRBbGxTZWxlY3RlZENoYW5uZWxzKCk7DQogICAgICAgICAgICBpZiAoaWRzLmxlbmd0aCA9PSAwKSB7DQogICAgICAgICAgICAgICAgaWRzLnB1c2goaWQpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgInNhdmUiLCAie3suYnV0dG9uLmRvbmV9fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IGRvbmVQb3B1cERhdGEoIicgKyBkYXRhVHlwZSArICciLCAiJyArIGlkcyArICciLCAiZmFsc2UiKTsnKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICBicmVhazsNCiAgICB9DQogICAgc2hvd1BvcFVwRWxlbWVudCgncG9wdXAtY3VzdG9tJyk7DQp9DQpjbGFzcyBYTUxUVkZpbGUgew0KICAgIGdldEZpbGVzKHNldCkgew0KICAgICAgICBsZXQgZmlsZUlEcyA9IGdldE9iaktleXMoU0VSVkVSWyJ4ZXBnIl1bInhtbHR2TWFwIl0pOw0KICAgICAgICBsZXQgdmFsdWVzID0gbmV3IEFycmF5KCItIik7DQogICAgICAgIGxldCB0ZXh0ID0gbmV3IEFycmF5KCItIik7DQogICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgZmlsZUlEcy5sZW5ndGg7IGkrKykgew0KICAgICAgICAgICAgaWYgKGZpbGVJRHNbaV0gIT0gInhUZVZlIER1bW15Iikgew0KICAgICAgICAgICAgICAgIHZhbHVlcy5wdXNoKGdldFZhbHVlRnJvbVByb3ZpZGVyRmlsZShmaWxlSURzW2ldLCAieG1sdHYiLCAiZmlsZS54dGV2ZSIpKTsNCiAgICAgICAgICAgICAgICB0ZXh0LnB1c2goZ2V0VmFsdWVGcm9tUHJvdmlkZXJGaWxlKGZpbGVJRHNbaV0sICJ4bWx0diIsICJuYW1lIikpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgZWxzZSB7DQogICAgICAgICAgICAgICAgdmFsdWVzLnB1c2goZmlsZUlEc1tpXSk7DQogICAgICAgICAgICAgICAgdGV4dC5wdXNoKGZpbGVJRHNbaV0pOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQogICAgICAgIGxldCBzZWxlY3QgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJTRUxFQ1QiKTsNCiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0ZXh0Lmxlbmd0aDsgaSsrKSB7DQogICAgICAgICAgICB2YXIgb3B0aW9uID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiT1BUSU9OIik7DQogICAgICAgICAgICBvcHRpb24uc2V0QXR0cmlidXRlKCJ2YWx1ZSIsIHZhbHVlc1tpXSk7DQogICAgICAgICAgICBvcHRpb24uaW5uZXJUZXh0ID0gdGV4dFtpXTsNCiAgICAgICAgICAgIHNlbGVjdC5hcHBlbmRDaGlsZChvcHRpb24pOw0KICAgICAgICB9DQogICAgICAgIGlmIChzZXQgIT0gIiIpIHsNCiAgICAgICAgICAgIHNlbGVjdC52YWx1ZSA9IHNldDsNCiAgICAgICAgfQ0KICAgICAgICByZXR1cm4gc2VsZWN0Ow0KICAgIH0NCiAgICBnZXRQcm9ncmFtcyhmaWxlLCBzZXQpIHsNCiAgICAgICAgLy92YXIgZmlsZUlEczpzdHJpbmdbXSA9IGdldE9iaktleXMoU0VSVkVSWyJ4ZXBnIl1bInhtbHR2TWFwIl0pDQogICAgICAgIGxldCB2YWx1ZXMgPSBnZXRPYmpLZXlzKFNFUlZFUlsieGVwZyJdWyJ4bWx0dk1hcCJdW2ZpbGVdKTsNCiAgICAgICAgbGV0IHRleHQgPSBbXTsNCiAgICAgICAgbGV0IGRpc3BsYXlOYW1lOw0KICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHZhbHVlcy5sZW5ndGg7IGkrKykgew0KICAgICAgICAgICAgaWYgKFNFUlZFUlsieGVwZyJdWyJ4bWx0dk1hcCJdW2ZpbGVdW3ZhbHVlc1tpXV0uaGFzT3duUHJvcGVydHkoJ2Rpc3BsYXktbmFtZScpID09IHRydWUpIHsNCiAgICAgICAgICAgICAgICBkaXNwbGF5TmFtZSA9IFNFUlZFUlsieGVwZyJdWyJ4bWx0dk1hcCJdW2ZpbGVdW3ZhbHVlc1tpXV1bImRpc3BsYXktbmFtZSJdOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgZWxzZSB7DQogICAgICAgICAgICAgICAgZGlzcGxheU5hbWUgPSAiLSI7DQogICAgICAgICAgICB9DQogICAgICAgICAgICB0ZXh0W2ldID0gZGlzcGxheU5hbWUgKyAiICgiICsgdmFsdWVzW2ldICsgIikiOw0KICAgICAgICB9DQogICAgICAgIHRleHQudW5zaGlmdCgiLSIpOw0KICAgICAgICB2YWx1ZXMudW5zaGlmdCgiLSIpOw0KICAgICAgICBsZXQgc2VsZWN0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiU0VMRUNUIik7DQogICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGV4dC5sZW5ndGg7IGkrKykgew0KICAgICAgICAgICAgdmFyIG9wdGlvbiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIk9QVElPTiIpOw0KICAgICAgICAgICAgb3B0aW9uLnNldEF0dHJpYnV0ZSgidmFsdWUiLCB2YWx1ZXNbaV0pOw0KICAgICAgICAgICAgb3B0aW9uLmlubmVyVGV4dCA9IHRleHRbaV07DQogICAgICAgICAgICBzZWxlY3QuYXBwZW5kQ2hpbGQob3B0aW9uKTsNCiAgICAgICAgfQ0KICAgICAgICBpZiAoc2V0ICE9ICIiKSB7DQogICAgICAgICAgICBzZWxlY3QudmFsdWUgPSBzZXQ7DQogICAgICAgIH0NCiAgICAgICAgaWYgKHNlbGVjdC52YWx1ZSAhPSBzZXQpIHsNCiAgICAgICAgICAgIHNlbGVjdC52YWx1ZSA9ICItIjsNCiAgICAgICAgfQ0KICAgICAgICByZXR1cm4gc2VsZWN0Ow0KICAgIH0NCn0NCmZ1bmN0aW9uIGdldFZhbHVlRnJvbVByb3ZpZGVyRmlsZShmaWxlLCBmaWxlVHlwZSwga2V5KSB7DQogICAgaWYgKGZpbGUgPT0gInhUZVZlIER1bW15Iikgew0KICAgICAgICByZXR1cm4gZmlsZTsNCiAgICB9DQogICAgbGV0IGZpbGVJRDsNCiAgICBsZXQgaW5kaWNhdG9yID0gZmlsZS5jaGFyQXQoMCk7DQogICAgc3dpdGNoIChpbmRpY2F0b3IpIHsNCiAgICAgICAgY2FzZSAiTSI6DQogICAgICAgICAgICBmaWxlVHlwZSA9ICJtM3UiOw0KICAgICAgICAgICAgZmlsZUlEID0gZmlsZTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJIIjoNCiAgICAgICAgICAgIGZpbGVUeXBlID0gImhkaHIiOw0KICAgICAgICAgICAgZmlsZUlEID0gZmlsZTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJYIjoNCiAgICAgICAgICAgIGZpbGVUeXBlID0gInhtbHR2IjsNCiAgICAgICAgICAgIGZpbGVJRCA9IGZpbGUuc3Vic3RyaW5nKDAsIGZpbGUubGFzdEluZGV4T2YoJy4nKSk7DQogICAgICAgICAgICBicmVhazsNCiAgICB9DQogICAgaWYgKFNFUlZFUlsic2V0dGluZ3MiXVsiZmlsZXMiXVtmaWxlVHlwZV0uaGFzT3duUHJvcGVydHkoZmlsZUlEKSA9PSB0cnVlKSB7DQogICAgICAgIHZhciBkYXRhID0gU0VSVkVSWyJzZXR0aW5ncyJdWyJmaWxlcyJdW2ZpbGVUeXBlXVtmaWxlSURdOw0KICAgICAgICByZXR1cm4gZGF0YVtrZXldOw0KICAgIH0NCiAgICByZXR1cm47DQp9DQpmdW5jdGlvbiBzZXRYbWx0dkNoYW5uZWwoaWQsIGVsZW1lbnQpIHsNCiAgICBsZXQgeG1sdHYgPSBuZXcgWE1MVFZGaWxlKCk7DQogICAgbGV0IHhtbEZpbGUgPSBlbGVtZW50LnZhbHVlOw0KICAgIGxldCB0dmdJZCA9IFNFUlZFUlsieGVwZyJdWyJlcGdNYXBwaW5nIl1baWRdWyJ0dmctaWQiXTsNCiAgICBsZXQgdGQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicG9wdXAtbWFwcGluZyIpLnBhcmVudEVsZW1lbnQ7DQogICAgdGQuaW5uZXJIVE1MID0gIiI7DQogICAgbGV0IHNlbGVjdCA9IHhtbHR2LmdldFByb2dyYW1zKGVsZW1lbnQudmFsdWUsIHR2Z0lkKTsNCiAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJuYW1lIiwgIngtbWFwcGluZyIpOw0KICAgIHNlbGVjdC5zZXRBdHRyaWJ1dGUoImlkIiwgInBvcHVwLW1hcHBpbmciKTsNCiAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJzsgY2hlY2tYbWx0dkNoYW5uZWwoJyIgKyBpZCArICInLHRoaXMsJyIgKyB4bWxGaWxlICsgIicpOyIpOw0KICAgIHNlbGVjdC5jbGFzc05hbWUgPSAiY2hhbmdlZCI7DQogICAgc29ydFNlbGVjdChzZWxlY3QpOw0KICAgIHRkLmFwcGVuZENoaWxkKHNlbGVjdCk7DQogICAgY2hlY2tYbWx0dkNoYW5uZWwoaWQsIHNlbGVjdCwgeG1sRmlsZSk7DQp9DQpmdW5jdGlvbiBjaGVja1htbHR2Q2hhbm5lbChpZCwgZWxlbWVudCwgeG1sRmlsZSkgew0KICAgIGxldCB2YWx1ZSA9IGVsZW1lbnQudmFsdWU7DQogICAgbGV0IGJvb2w7DQogICAgbGV0IGNoZWNrYm94ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2FjdGl2ZScpOw0KICAgIGxldCBjaGFubmVsID0gU0VSVkVSWyJ4ZXBnIl1bImVwZ01hcHBpbmciXVtpZF07DQogICAgbGV0IHVwZGF0ZUxvZ287DQogICAgYm9vbCA9IHZhbHVlICE9ICItIjsNCiAgICBjaGVja2JveC5jaGVja2VkID0gYm9vbDsNCiAgICBjaGVja2JveC5jbGFzc05hbWUgPSAiY2hhbmdlZCI7DQogICAgY29uc29sZS5sb2coeG1sRmlsZSk7DQogICAgLy8gS2FuYWxsb2dvIGFrdHVhbGlzaWVyZW4NCiAgICAvKg0KICAgIHVwZGF0ZUxvZ28gPSAoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInVwZGF0ZS1pY29uIikgYXMgSFRNTElucHV0RWxlbWVudCkuY2hlY2tlZA0KICAgIGNvbnNvbGUubG9nKHVwZGF0ZUxvZ28pOw0KICAgICovDQogICAgaWYgKHhtbEZpbGUgIT0gInhUZVZlIER1bW15IiAmJiBib29sID09IHRydWUpIHsNCiAgICAgICAgLy8oZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInVwZGF0ZS1pY29uIikgYXMgSFRNTElucHV0RWxlbWVudCkuY2hlY2tlZCA9IHRydWU7DQogICAgICAgIC8vKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ1cGRhdGUtaWNvbiIpIGFzIEhUTUxJbnB1dEVsZW1lbnQpLmNsYXNzTmFtZSA9ICJjaGFuZ2VkIjsNCiAgICAgICAgY29uc29sZS5sb2coIklEIiwgaWQpOw0KICAgICAgICBjaGFuZ2VDaGFubmVsTG9nbyhpZCk7DQogICAgICAgIHJldHVybjsNCiAgICB9DQogICAgaWYgKHhtbEZpbGUgPT0gInhUZVZlIER1bW15Iikgew0KICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidXBkYXRlLWljb24iKS5jaGVja2VkID0gZmFsc2U7DQogICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ1cGRhdGUtaWNvbiIpLmNsYXNzTmFtZSA9ICJjaGFuZ2VkIjsNCiAgICB9DQogICAgcmV0dXJuOw0KfQ0KZnVuY3Rpb24gY2hhbmdlQ2hhbm5lbExvZ28oaWQpIHsNCiAgICBsZXQgdXBkYXRlTG9nbzsNCiAgICBsZXQgY2hhbm5lbCA9IFNFUlZFUlsieGVwZyJdWyJlcGdNYXBwaW5nIl1baWRdOw0KICAgIGxldCBmID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInBvcHVwLXhtbHR2Iik7DQogICAgbGV0IHhtbHR2RmlsZSA9IGYub3B0aW9uc1tmLnNlbGVjdGVkSW5kZXhdLnZhbHVlOw0KICAgIGxldCBtID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInBvcHVwLW1hcHBpbmciKTsNCiAgICBsZXQgeE1hcHBpbmcgPSBtLm9wdGlvbnNbbS5zZWxlY3RlZEluZGV4XS52YWx1ZTsNCiAgICBsZXQgeG1sdHZMb2dvID0gU0VSVkVSWyJ4ZXBnIl1bInhtbHR2TWFwIl1beG1sdHZGaWxlXVt4TWFwcGluZ11bImljb24iXTsNCiAgICB1cGRhdGVMb2dvID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInVwZGF0ZS1pY29uIikuY2hlY2tlZDsNCiAgICBpZiAodXBkYXRlTG9nbyA9PSB0cnVlICYmIHhtbHR2RmlsZSAhPSAieFRlVmUgRHVtbXkiKSB7DQogICAgICAgIGlmIChTRVJWRVJbInhlcGciXVsieG1sdHZNYXAiXVt4bWx0dkZpbGVdLmhhc093blByb3BlcnR5KHhNYXBwaW5nKSkgew0KICAgICAgICAgICAgdmFyIGxvZ28gPSB4bWx0dkxvZ287DQogICAgICAgIH0NCiAgICAgICAgZWxzZSB7DQogICAgICAgICAgICBsb2dvID0gY2hhbm5lbFsidHZnLWxvZ28iXTsNCiAgICAgICAgfQ0KICAgICAgICB2YXIgbG9nb0lucHV0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNoYW5uZWwtaWNvbiIpOw0KICAgICAgICBsb2dvSW5wdXQudmFsdWUgPSBsb2dvOw0KICAgICAgICBpZiAoQlVMS19FRElUID09IGZhbHNlKSB7DQogICAgICAgICAgICBsb2dvSW5wdXQuY2xhc3NOYW1lID0gImNoYW5nZWQiOw0KICAgICAgICB9DQogICAgfQ0KfQ0KZnVuY3Rpb24gc2F2ZVBvcHVwRGF0YShkYXRhVHlwZSwgaWQsIHJlbW92ZSwgb3B0aW9uKSB7DQogICAgaWYgKGRhdGFUeXBlID09ICJtYXBwaW5nIikgew0KICAgICAgICBsZXQgZGF0YSA9IHt9Ow0KICAgICAgICBjb25zb2xlLmxvZygiU2F2ZSBtYXBwaW5nIGRhdGEiKTsNCiAgICAgICAgbGV0IGNtZCA9ICJzYXZlRXBnTWFwcGluZyI7DQogICAgICAgIGRhdGFbImVwZ01hcHBpbmciXSA9IFNFUlZFUlsieGVwZyJdWyJlcGdNYXBwaW5nIl07DQogICAgICAgIGNvbnNvbGUubG9nKCJTRU5EIFRPIFNFUlZFUiIpOw0KICAgICAgICBsZXQgc2VydmVyID0gbmV3IFNlcnZlcihjbWQpOw0KICAgICAgICBzZXJ2ZXIucmVxdWVzdChkYXRhKTsNCiAgICAgICAgZGVsZXRlIFVORE9bImVwZ01hcHBpbmciXTsNCiAgICAgICAgcmV0dXJuOw0KICAgIH0NCiAgICBjb25zb2xlLmxvZygiU2F2ZSBwb3B1cCBkYXRhIik7DQogICAgbGV0IGRpdiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJwb3B1cC1jdXN0b20iKTsNCiAgICBsZXQgaW5wdXRzID0gZGl2LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJUQUJMRSIpWzBdLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJJTlBVVCIpOw0KICAgIGxldCBzZWxlY3RzID0gZGl2LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJUQUJMRSIpWzBdLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJTRUxFQ1QiKTsNCiAgICBsZXQgaW5wdXQgPSB7fTsNCiAgICBsZXQgY29uZmlybU1zZzsNCiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHNlbGVjdHMubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgdmFyIG5hbWU7DQogICAgICAgIG5hbWUgPSBzZWxlY3RzW2ldLm5hbWU7DQogICAgICAgIHZhciB2YWx1ZSA9IHNlbGVjdHNbaV0udmFsdWU7DQogICAgICAgIHN3aXRjaCAobmFtZSkgew0KICAgICAgICAgICAgY2FzZSAidHVuZXIiOg0KICAgICAgICAgICAgICAgIGlucHV0W25hbWVdID0gcGFyc2VJbnQodmFsdWUpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgICAgICBpbnB1dFtuYW1lXSA9IHZhbHVlOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICB9DQogICAgfQ0KICAgIGZvciAobGV0IGkgPSAwOyBpIDwgaW5wdXRzLmxlbmd0aDsgaSsrKSB7DQogICAgICAgIHN3aXRjaCAoaW5wdXRzW2ldLnR5cGUpIHsNCiAgICAgICAgICAgIGNhc2UgImNoZWNrYm94IjoNCiAgICAgICAgICAgICAgICBuYW1lID0gaW5wdXRzW2ldLm5hbWU7DQogICAgICAgICAgICAgICAgaW5wdXRbbmFtZV0gPSBpbnB1dHNbaV0uY2hlY2tlZDsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInRleHQiOg0KICAgICAgICAgICAgY2FzZSAiaGlkZGVuIjoNCiAgICAgICAgICAgIGNhc2UgInBhc3N3b3JkIjoNCiAgICAgICAgICAgICAgICBuYW1lID0gaW5wdXRzW2ldLm5hbWU7DQogICAgICAgICAgICAgICAgc3dpdGNoIChuYW1lKSB7DQogICAgICAgICAgICAgICAgICAgIGNhc2UgInR1bmVyIjoNCiAgICAgICAgICAgICAgICAgICAgICAgIGlucHV0W25hbWVdID0gcGFyc2VJbnQoaW5wdXRzW2ldLnZhbHVlKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgICAgICBkZWZhdWx0Og0KICAgICAgICAgICAgICAgICAgICAgICAgaW5wdXRbbmFtZV0gPSBpbnB1dHNbaV0udmFsdWU7DQogICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIH0NCiAgICB9DQogICAgbGV0IGRhdGEgPSB7fTsNCiAgICBsZXQgY21kOw0KICAgIGlmIChyZW1vdmUgPT0gdHJ1ZSkgew0KICAgICAgICBpbnB1dFsiZGVsZXRlIl0gPSB0cnVlOw0KICAgIH0NCiAgICBzd2l0Y2ggKGRhdGFUeXBlKSB7DQogICAgICAgIGNhc2UgInVzZXJzIjoNCiAgICAgICAgICAgIGNvbmZpcm1Nc2cgPSAiRGVsZXRlIHRoaXMgdXNlcj8iOw0KICAgICAgICAgICAgaWYgKGlkID09ICItIikgew0KICAgICAgICAgICAgICAgIGNtZCA9ICJzYXZlTmV3VXNlciI7DQogICAgICAgICAgICAgICAgZGF0YVsidXNlckRhdGEiXSA9IGlucHV0Ow0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgZWxzZSB7DQogICAgICAgICAgICAgICAgY21kID0gInNhdmVVc2VyRGF0YSI7DQogICAgICAgICAgICAgICAgbGV0IGQgPSB7fTsNCiAgICAgICAgICAgICAgICBkW2lkXSA9IGlucHV0Ow0KICAgICAgICAgICAgICAgIGRhdGFbInVzZXJEYXRhIl0gPSBkOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGNhc2UgIm0zdSI6DQogICAgICAgICAgICBjb25maXJtTXNnID0gIkRlbGV0ZSB0aGlzIHBsYXlsaXN0PyI7DQogICAgICAgICAgICBzd2l0Y2ggKG9wdGlvbikgew0KICAgICAgICAgICAgICAgIC8vIFBvcHVwOiBTYXZlDQogICAgICAgICAgICAgICAgY2FzZSAwOg0KICAgICAgICAgICAgICAgICAgICBjbWQgPSAic2F2ZUZpbGVzTTNVIjsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgLy8gUG9wdXA6IFVwZGF0ZQ0KICAgICAgICAgICAgICAgIGNhc2UgMToNCiAgICAgICAgICAgICAgICAgICAgY21kID0gInVwZGF0ZUZpbGVNM1UiOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGRhdGFbImZpbGVzIl0gPSB7fTsNCiAgICAgICAgICAgIGRhdGFbImZpbGVzIl1bZGF0YVR5cGVdID0ge307DQogICAgICAgICAgICBkYXRhWyJmaWxlcyJdW2RhdGFUeXBlXVtpZF0gPSBpbnB1dDsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJoZGhyIjoNCiAgICAgICAgICAgIGNvbmZpcm1Nc2cgPSAiRGVsZXRlIHRoaXMgSERIb21lUnVuIHR1bmVyPyI7DQogICAgICAgICAgICBzd2l0Y2ggKG9wdGlvbikgew0KICAgICAgICAgICAgICAgIC8vIFBvcHVwOiBTYXZlDQogICAgICAgICAgICAgICAgY2FzZSAwOg0KICAgICAgICAgICAgICAgICAgICBjbWQgPSAic2F2ZUZpbGVzSERIUiI7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIC8vIFBvcHVwOiBVcGRhdGUNCiAgICAgICAgICAgICAgICBjYXNlIDE6DQogICAgICAgICAgICAgICAgICAgIGNtZCA9ICJ1cGRhdGVGaWxlSERIUiI7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgZGF0YVsiZmlsZXMiXSA9IHt9Ow0KICAgICAgICAgICAgZGF0YVsiZmlsZXMiXVtkYXRhVHlwZV0gPSB7fTsNCiAgICAgICAgICAgIGRhdGFbImZpbGVzIl1bZGF0YVR5cGVdW2lkXSA9IGlucHV0Ow0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGNhc2UgInhtbHR2IjoNCiAgICAgICAgICAgIGNvbmZpcm1Nc2cgPSAiRGVsZXRlIHRoaXMgWE1MVFYgZmlsZT8iOw0KICAgICAgICAgICAgc3dpdGNoIChvcHRpb24pIHsNCiAgICAgICAgICAgICAgICAvLyBQb3B1cDogU2F2ZQ0KICAgICAgICAgICAgICAgIGNhc2UgMDoNCiAgICAgICAgICAgICAgICAgICAgY21kID0gInNhdmVGaWxlc1hNTFRWIjsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgLy8gUG9wdXA6IFVwZGF0ZQ0KICAgICAgICAgICAgICAgIGNhc2UgMToNCiAgICAgICAgICAgICAgICAgICAgY21kID0gInVwZGF0ZUZpbGVYTUxUViI7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgZGF0YVsiZmlsZXMiXSA9IHt9Ow0KICAgICAgICAgICAgZGF0YVsiZmlsZXMiXVtkYXRhVHlwZV0gPSB7fTsNCiAgICAgICAgICAgIGRhdGFbImZpbGVzIl1bZGF0YVR5cGVdW2lkXSA9IGlucHV0Ow0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGNhc2UgImZpbHRlciI6DQogICAgICAgICAgICBjb25maXJtTXNnID0gIkRlbGV0ZSB0aGlzIGZpbHRlcj8iOw0KICAgICAgICAgICAgY21kID0gInNhdmVGaWx0ZXIiOw0KICAgICAgICAgICAgZGF0YVsiZmlsdGVyIl0gPSB7fTsNCiAgICAgICAgICAgIGRhdGFbImZpbHRlciJdW2lkXSA9IGlucHV0Ow0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICBjb25zb2xlLmxvZyhkYXRhVHlwZSwgaWQpOw0KICAgICAgICAgICAgcmV0dXJuOw0KICAgIH0NCiAgICBpZiAocmVtb3ZlID09IHRydWUpIHsNCiAgICAgICAgaWYgKCFjb25maXJtKGNvbmZpcm1Nc2cpKSB7DQogICAgICAgICAgICBzaG93RWxlbWVudCgicG9wdXAiLCBmYWxzZSk7DQogICAgICAgICAgICByZXR1cm47DQogICAgICAgIH0NCiAgICB9DQogICAgY29uc29sZS5sb2coIlNFTkQgVE8gU0VSVkVSIik7DQogICAgY29uc29sZS5sb2coZGF0YSk7DQogICAgbGV0IHNlcnZlciA9IG5ldyBTZXJ2ZXIoY21kKTsNCiAgICBzZXJ2ZXIucmVxdWVzdChkYXRhKTsNCn0NCmZ1bmN0aW9uIGRvbmVQb3B1cERhdGEoZGF0YVR5cGUsIGlkc1N0cikgew0KICAgIGxldCBpZHMgPSBpZHNTdHIuc3BsaXQoJywnKTsNCiAgICBsZXQgZGl2ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInBvcHVwLWN1c3RvbSIpOw0KICAgIGxldCBpbnB1dHMgPSBkaXYuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSgiY2hhbmdlZCIpOw0KICAgIGlkcy5mb3JFYWNoKGlkID0+IHsNCiAgICAgICAgbGV0IGlucHV0Ow0KICAgICAgICBpbnB1dCA9IFNFUlZFUlsieGVwZyJdWyJlcGdNYXBwaW5nIl1baWRdOw0KICAgICAgICBjb25zb2xlLmxvZyhpbnB1dCk7DQogICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgaW5wdXRzLmxlbmd0aDsgaSsrKSB7DQogICAgICAgICAgICBsZXQgbmFtZTsNCiAgICAgICAgICAgIGxldCB2YWx1ZTsNCiAgICAgICAgICAgIHN3aXRjaCAoaW5wdXRzW2ldLnRhZ05hbWUpIHsNCiAgICAgICAgICAgICAgICBjYXNlICJJTlBVVCI6DQogICAgICAgICAgICAgICAgICAgIHN3aXRjaCAoaW5wdXRzW2ldLnR5cGUpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgImNoZWNrYm94IjoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lID0gaW5wdXRzW2ldLm5hbWU7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSBpbnB1dHNbaV0uY2hlY2tlZDsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnB1dFtuYW1lXSA9IHZhbHVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAidGV4dCI6DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZSA9IGlucHV0c1tpXS5uYW1lOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlID0gaW5wdXRzW2ldLnZhbHVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlucHV0W25hbWVdID0gdmFsdWU7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAiU0VMRUNUIjoNCiAgICAgICAgICAgICAgICAgICAgbmFtZSA9IGlucHV0c1tpXS5uYW1lOw0KICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IGlucHV0c1tpXS52YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgaW5wdXRbbmFtZV0gPSB2YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBzd2l0Y2ggKG5hbWUpIHsNCiAgICAgICAgICAgICAgICBjYXNlICJ0dmctbG9nbyI6DQogICAgICAgICAgICAgICAgICAgIC8vKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5jaGlsZE5vZGVzWzJdLmZpcnN0Q2hpbGQgYXMgSFRNTEVsZW1lbnQpLnNldEF0dHJpYnV0ZSgic3JjIiwgdmFsdWUpDQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgIngtbmFtZSI6DQogICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5jaGlsZE5vZGVzWzNdLmZpcnN0Q2hpbGQuaW5uZXJIVE1MID0gdmFsdWU7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgIngtY2F0ZWdvcnkiOg0KICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkuY2hpbGROb2Rlc1szXS5maXJzdENoaWxkLmNsYXNzTmFtZSA9IHZhbHVlOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBjYXNlICJ4LWdyb3VwLXRpdGxlIjoNCiAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpLmNoaWxkTm9kZXNbNV0uZmlyc3RDaGlsZC5pbm5lckhUTUwgPSB2YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAieC14bWx0di1maWxlIjoNCiAgICAgICAgICAgICAgICAgICAgaWYgKHZhbHVlICE9ICJ4VGVWZSBEdW1teSIgJiYgdmFsdWUgIT0gIi0iKSB7DQogICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IGdldFZhbHVlRnJvbVByb3ZpZGVyRmlsZSh2YWx1ZSwgInhtbHR2IiwgIm5hbWUiKTsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBpZiAodmFsdWUgPT0gIi0iKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBpbnB1dFsieC1hY3RpdmUiXSA9IGZhbHNlOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5jaGlsZE5vZGVzWzZdLmZpcnN0Q2hpbGQuaW5uZXJIVE1MID0gdmFsdWU7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgIngtbWFwcGluZyI6DQogICAgICAgICAgICAgICAgICAgIGlmICh2YWx1ZSA9PSAiLSIpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGlucHV0WyJ4LWFjdGl2ZSJdID0gZmFsc2U7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpLmNoaWxkTm9kZXNbN10uZmlyc3RDaGlsZC5pbm5lckhUTUwgPSB2YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAieC10aW1lc2hpZnQiOg0KICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkuY2hpbGROb2Rlc1s4XS5maXJzdENoaWxkLmlubmVySFRNTCA9IHZhbHVlOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBkZWZhdWx0Og0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgY3JlYXRlU2VhcmNoT2JqKCk7DQogICAgICAgICAgICBzZWFyY2hJbk1hcHBpbmcoKTsNCiAgICAgICAgfQ0KICAgICAgICBpZiAoaW5wdXRbIngtYWN0aXZlIl0gPT0gZmFsc2UpIHsNCiAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5jbGFzc05hbWUgPSAibm90QWN0aXZlRVBHIjsNCiAgICAgICAgfQ0KICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5jbGFzc05hbWUgPSAiYWN0aXZlRVBHIjsNCiAgICAgICAgfQ0KICAgICAgICBjb25zb2xlLmxvZyhpbnB1dFsidHZnLWxvZ28iXSk7DQogICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5jaGlsZE5vZGVzWzJdLmZpcnN0Q2hpbGQuc2V0QXR0cmlidXRlKCJzcmMiLCBpbnB1dFsidHZnLWxvZ28iXSk7DQogICAgfSk7DQogICAgc2hvd0VsZW1lbnQoInBvcHVwIiwgZmFsc2UpOw0KICAgIHJldHVybjsNCn0NCmZ1bmN0aW9uIHNob3dQcmV2aWV3KGVsZW1lbnQpIHsNCiAgICBsZXQgZGl2ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm15U3RyZWFtc0JveCIpOw0KICAgIHN3aXRjaCAoZWxlbWVudCkgew0KICAgICAgICBjYXNlIGZhbHNlOg0KICAgICAgICAgICAgZGl2LmNsYXNzTmFtZSA9ICJub3RWaXNpYmxlIjsNCiAgICAgICAgICAgIHJldHVybjsNCiAgICB9DQogICAgbGV0IHN0cmVhbXMgPSBbImFjdGl2ZVN0cmVhbXMiLCAiaW5hY3RpdmVTdHJlYW1zIl07DQogICAgc3RyZWFtcy5mb3JFYWNoKHByZXZpZXcgPT4gew0KICAgICAgICBsZXQgdGFibGUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChwcmV2aWV3KTsNCiAgICAgICAgdGFibGUuaW5uZXJIVE1MID0gIiI7DQogICAgICAgIGxldCBvYmogPSBTRVJWRVJbImRhdGEiXVsiU3RyZWFtUHJldmlld1VJIl1bcHJldmlld107DQogICAgICAgIG9iai5mb3JFYWNoKGNoYW5uZWwgPT4gew0KICAgICAgICAgICAgbGV0IHRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVFIiKTsNCiAgICAgICAgICAgIGxldCB0ZEtleSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICBsZXQgdGRWYWwgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgdGRLZXkuY2xhc3NOYW1lID0gInRkS2V5IjsNCiAgICAgICAgICAgIHRkVmFsLmNsYXNzTmFtZSA9ICJ0ZFZhbCI7DQogICAgICAgICAgICBzd2l0Y2ggKHByZXZpZXcpIHsNCiAgICAgICAgICAgICAgICBjYXNlICJhY3RpdmVTdHJlYW1zIjoNCiAgICAgICAgICAgICAgICAgICAgdGRLZXkuaW5uZXJUZXh0ID0gIkNoYW5uZWw6ICgrKSI7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgImluYWN0aXZlU3RyZWFtcyI6DQogICAgICAgICAgICAgICAgICAgIHRkS2V5LmlubmVyVGV4dCA9ICJDaGFubmVsOiAoLSkiOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIHRkVmFsLmlubmVyVGV4dCA9IGNoYW5uZWw7DQogICAgICAgICAgICB0ci5hcHBlbmRDaGlsZCh0ZEtleSk7DQogICAgICAgICAgICB0ci5hcHBlbmRDaGlsZCh0ZFZhbCk7DQogICAgICAgICAgICB0YWJsZS5hcHBlbmRDaGlsZCh0cik7DQogICAgICAgIH0pOw0KICAgIH0pOw0KICAgIHNob3dFbGVtZW50KCJsb2FkaW5nIiwgZmFsc2UpOw0KICAgIGRpdi5jbGFzc05hbWUgPSAidmlzaWJsZSI7DQogICAgcmV0dXJuOw0KfQ0K" + webUI["html/js/settings_ts.js"] = "Y2xhc3MgU2V0dGluZ3NDYXRlZ29yeSB7DQogICAgY29uc3RydWN0b3IoKSB7DQogICAgICAgIHRoaXMuRG9jdW1lbnRJRCA9ICJjb250ZW50X3NldHRpbmdzIjsNCiAgICB9DQogICAgY3JlYXRlQ2F0ZWdvcnlIZWFkbGluZSh2YWx1ZSkgew0KICAgICAgICB2YXIgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIkg0Iik7DQogICAgICAgIGVsZW1lbnQuaW5uZXJIVE1MID0gdmFsdWU7DQogICAgICAgIHJldHVybiBlbGVtZW50Ow0KICAgIH0NCiAgICBjcmVhdGVIUigpIHsNCiAgICAgICAgdmFyIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJIUiIpOw0KICAgICAgICByZXR1cm4gZWxlbWVudDsNCiAgICB9DQogICAgY3JlYXRlU2V0dGluZ3Moc2V0dGluZ3NLZXkpIHsNCiAgICAgICAgdmFyIHNldHRpbmcgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJUUiIpOw0KICAgICAgICB2YXIgY29udGVudCA9IG5ldyBQb3B1cENvbnRlbnQoKTsNCiAgICAgICAgdmFyIGRhdGEgPSBTRVJWRVJbInNldHRpbmdzIl1bc2V0dGluZ3NLZXldOw0KICAgICAgICBzd2l0Y2ggKHNldHRpbmdzS2V5KSB7DQogICAgICAgICAgICAvLyBUZXh0ZWluZ2FiZW4NCiAgICAgICAgICAgIGNhc2UgInVwZGF0ZSI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy51cGRhdGUudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCAidXBkYXRlIiwgZGF0YS50b1N0cmluZygpKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnNldHRpbmdzLnVwZGF0ZS5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiYmFja3VwLnBhdGgiOg0KICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MuYmFja3VwUGF0aC50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsICJiYWNrdXAucGF0aCIsIGRhdGEpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3suc2V0dGluZ3MuYmFja3VwUGF0aC5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAidGVtcC5wYXRoIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLnRlbXBQYXRoLnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgInRlbXAucGF0aCIsIGRhdGEpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3suc2V0dGluZ3MudG1wUGF0aC5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAidXNlci5hZ2VudCI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy51c2VyQWdlbnQudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCAidXNlci5hZ2VudCIsIGRhdGEpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3suc2V0dGluZ3MudXNlckFnZW50LnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJidWZmZXIudGltZW91dCI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5idWZmZXJUaW1lb3V0LnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgImJ1ZmZlci50aW1lb3V0IiwgZGF0YSk7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5zZXR0aW5ncy5idWZmZXJUaW1lb3V0LnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJmZm1wZWcucGF0aCI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5mZm1wZWdQYXRoLnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgImZmbXBlZy5wYXRoIiwgZGF0YSk7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5zZXR0aW5ncy5mZm1wZWdQYXRoLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJmZm1wZWcub3B0aW9ucyI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5mZm1wZWdPcHRpb25zLnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgImZmbXBlZy5vcHRpb25zIiwgZGF0YSk7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5zZXR0aW5ncy5mZm1wZWdPcHRpb25zLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ2bGMucGF0aCI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy52bGNQYXRoLnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgInZsYy5wYXRoIiwgZGF0YSk7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5zZXR0aW5ncy52bGNQYXRoLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ2bGMub3B0aW9ucyI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy52bGNPcHRpb25zLnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgInZsYy5vcHRpb25zIiwgZGF0YSk7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5zZXR0aW5ncy52bGNPcHRpb25zLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAvLyBDaGVja2JveGVuDQogICAgICAgICAgICBjYXNlICJhdXRoZW50aWNhdGlvbi53ZWIiOg0KICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MuYXV0aGVudGljYXRpb25XRUIudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goc2V0dGluZ3NLZXkpOw0KICAgICAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImF1dGhlbnRpY2F0aW9uLnBtcyI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5hdXRoZW50aWNhdGlvblBNUy50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChzZXR0aW5nc0tleSk7DQogICAgICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGE7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiYXV0aGVudGljYXRpb24ubTN1IjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmF1dGhlbnRpY2F0aW9uTTNVLnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KHNldHRpbmdzS2V5KTsNCiAgICAgICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJhdXRoZW50aWNhdGlvbi54bWwiOg0KICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MuYXV0aGVudGljYXRpb25YTUwudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goc2V0dGluZ3NLZXkpOw0KICAgICAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImF1dGhlbnRpY2F0aW9uLmFwaSI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5hdXRoZW50aWNhdGlvbkFQSS50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChzZXR0aW5nc0tleSk7DQogICAgICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGE7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiZmlsZXMudXBkYXRlIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmZpbGVzVXBkYXRlLnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KHNldHRpbmdzS2V5KTsNCiAgICAgICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJjYWNoZS5pbWFnZXMiOg0KICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MuY2FjaGVJbWFnZXMudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goc2V0dGluZ3NLZXkpOw0KICAgICAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInhlcGcucmVwbGFjZS5taXNzaW5nLmltYWdlcyI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5yZXBsYWNlRW1wdHlJbWFnZXMudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goc2V0dGluZ3NLZXkpOw0KICAgICAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInh0ZXZlQXV0b1VwZGF0ZSI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy54dGV2ZUF1dG9VcGRhdGUudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goc2V0dGluZ3NLZXkpOw0KICAgICAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImFwaSI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5hcGkudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goc2V0dGluZ3NLZXkpOw0KICAgICAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIC8vIFNlbGVjdA0KICAgICAgICAgICAgY2FzZSAidHVuZXIiOg0KICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MudHVuZXIudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciB0ZXh0ID0gbmV3IEFycmF5KCk7DQogICAgICAgICAgICAgICAgdmFyIHZhbHVlcyA9IG5ldyBBcnJheSgpOw0KICAgICAgICAgICAgICAgIGZvciAodmFyIGkgPSAxOyBpIDw9IDEwMDsgaSsrKSB7DQogICAgICAgICAgICAgICAgICAgIHRleHQucHVzaChpKTsNCiAgICAgICAgICAgICAgICAgICAgdmFsdWVzLnB1c2goaSk7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIHZhciBzZWxlY3QgPSBjb250ZW50LmNyZWF0ZVNlbGVjdCh0ZXh0LCB2YWx1ZXMsIGRhdGEsIHNldHRpbmdzS2V5KTsNCiAgICAgICAgICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQoc2VsZWN0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImVwZ1NvdXJjZSI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5lcGdTb3VyY2UudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciB0ZXh0ID0gWyJQTVMiLCAiWEVQRyJdOw0KICAgICAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBbIlBNUyIsICJYRVBHIl07DQogICAgICAgICAgICAgICAgdmFyIHNlbGVjdCA9IGNvbnRlbnQuY3JlYXRlU2VsZWN0KHRleHQsIHZhbHVlcywgZGF0YSwgc2V0dGluZ3NLZXkpOw0KICAgICAgICAgICAgICAgIHNlbGVjdC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChzZWxlY3QpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiYmFja3VwLmtlZXAiOg0KICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MuYmFja3VwS2VlcC50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIHRleHQgPSBbIjUiLCAiMTAiLCAiMjAiLCAiMzAiLCAiNDAiLCAiNTAiXTsNCiAgICAgICAgICAgICAgICB2YXIgdmFsdWVzID0gWyI1IiwgIjEwIiwgIjIwIiwgIjMwIiwgIjQwIiwgIjUwIl07DQogICAgICAgICAgICAgICAgdmFyIHNlbGVjdCA9IGNvbnRlbnQuY3JlYXRlU2VsZWN0KHRleHQsIHZhbHVlcywgZGF0YSwgc2V0dGluZ3NLZXkpOw0KICAgICAgICAgICAgICAgIHNlbGVjdC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChzZWxlY3QpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiYnVmZmVyLnNpemUua2IiOg0KICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MuYnVmZmVyU2l6ZS50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIHRleHQgPSBbIjAuNSBNQiIsICIxIE1CIiwgIjIgTUIiLCAiMyBNQiIsICI0IE1CIiwgIjUgTUIiLCAiNiBNQiIsICI3IE1CIiwgIjggTUIiXTsNCiAgICAgICAgICAgICAgICB2YXIgdmFsdWVzID0gWyI1MTIiLCAiMTAyNCIsICIyMDQ4IiwgIjMwNzIiLCAiNDA5NiIsICI1MTIwIiwgIjYxNDQiLCAiNzE2OCIsICI4MTkyIl07DQogICAgICAgICAgICAgICAgdmFyIHNlbGVjdCA9IGNvbnRlbnQuY3JlYXRlU2VsZWN0KHRleHQsIHZhbHVlcywgZGF0YSwgc2V0dGluZ3NLZXkpOw0KICAgICAgICAgICAgICAgIHNlbGVjdC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChzZWxlY3QpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiYnVmZmVyIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLnN0cmVhbUJ1ZmZlcmluZy50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIHRleHQgPSBbInt7LnNldHRpbmdzLnN0cmVhbUJ1ZmZlcmluZy5pbmZvX2ZhbHNlfX0iLCAieFRlVmU6ICh7ey5zZXR0aW5ncy5zdHJlYW1CdWZmZXJpbmcuaW5mb194dGV2ZX19KSIsICJGRm1wZWc6ICh7ey5zZXR0aW5ncy5zdHJlYW1CdWZmZXJpbmcuaW5mb19mZm1wZWd9fSkiLCAiVkxDOiAoe3suc2V0dGluZ3Muc3RyZWFtQnVmZmVyaW5nLmluZm9fdmxjfX0pIl07DQogICAgICAgICAgICAgICAgdmFyIHZhbHVlcyA9IFsiLSIsICJ4dGV2ZSIsICJmZm1wZWciLCAidmxjIl07DQogICAgICAgICAgICAgICAgdmFyIHNlbGVjdCA9IGNvbnRlbnQuY3JlYXRlU2VsZWN0KHRleHQsIHZhbHVlcywgZGF0YSwgc2V0dGluZ3NLZXkpOw0KICAgICAgICAgICAgICAgIHNlbGVjdC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChzZWxlY3QpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAidWRweHkiOg0KICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MudWRweHkudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCAidWRweHkiLCBkYXRhKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnNldHRpbmdzLnVkcHh5LnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIH0NCiAgICAgICAgcmV0dXJuIHNldHRpbmc7DQogICAgfQ0KICAgIGNyZWF0ZURlc2NyaXB0aW9uKHNldHRpbmdzS2V5KSB7DQogICAgICAgIHZhciBkZXNjcmlwdGlvbiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlRSIik7DQogICAgICAgIHZhciB0ZXh0Ow0KICAgICAgICBzd2l0Y2ggKHNldHRpbmdzS2V5KSB7DQogICAgICAgICAgICBjYXNlICJhdXRoZW50aWNhdGlvbi53ZWIiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MuYXV0aGVudGljYXRpb25XRUIuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJhdXRoZW50aWNhdGlvbi5tM3UiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MuYXV0aGVudGljYXRpb25NM1UuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJhdXRoZW50aWNhdGlvbi5wbXMiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MuYXV0aGVudGljYXRpb25QTVMuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJhdXRoZW50aWNhdGlvbi54bWwiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MuYXV0aGVudGljYXRpb25YTUwuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJhdXRoZW50aWNhdGlvbi5hcGkiOg0KICAgICAgICAgICAgICAgIGlmIChTRVJWRVJbInNldHRpbmdzIl1bImF1dGhlbnRpY2F0aW9uLndlYiJdID09IHRydWUpIHsNCiAgICAgICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5hdXRoZW50aWNhdGlvbkFQSS5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ4dGV2ZUF1dG9VcGRhdGUiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MueHRldmVBdXRvVXBkYXRlLmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiYmFja3VwLmtlZXAiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MuYmFja3VwS2VlcC5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImJhY2t1cC5wYXRoIjoNCiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLmJhY2t1cFBhdGguZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ0ZW1wLnBhdGgiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MudGVtcFBhdGguZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJidWZmZXIiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3Muc3RyZWFtQnVmZmVyaW5nLmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiYnVmZmVyLnNpemUua2IiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MuYnVmZmVyU2l6ZS5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImJ1ZmZlci50aW1lb3V0IjoNCiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLmJ1ZmZlclRpbWVvdXQuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ1c2VyLmFnZW50IjoNCiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLnVzZXJBZ2VudC5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImZmbXBlZy5wYXRoIjoNCiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLmZmbXBlZ1BhdGguZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJmZm1wZWcub3B0aW9ucyI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5mZm1wZWdPcHRpb25zLmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAidmxjLnBhdGgiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MudmxjUGF0aC5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInZsYy5vcHRpb25zIjoNCiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLnZsY09wdGlvbnMuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJlcGdTb3VyY2UiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MuZXBnU291cmNlLmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAidHVuZXIiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MudHVuZXIuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ1cGRhdGUiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MudXBkYXRlLmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiYXBpIjoNCiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLmFwaS5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImZpbGVzLnVwZGF0ZSI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5maWxlc1VwZGF0ZS5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImNhY2hlLmltYWdlcyI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5jYWNoZUltYWdlcy5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInhlcGcucmVwbGFjZS5taXNzaW5nLmltYWdlcyI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5yZXBsYWNlRW1wdHlJbWFnZXMuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ1ZHB4eSI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy51ZHB4eS5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICAgICAgdGV4dCA9ICIiOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICB9DQogICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gIiI7DQogICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgdmFyIHByZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlBSRSIpOw0KICAgICAgICBwcmUuaW5uZXJIVE1MID0gdGV4dDsNCiAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChwcmUpOw0KICAgICAgICBkZXNjcmlwdGlvbi5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICBkZXNjcmlwdGlvbi5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgcmV0dXJuIGRlc2NyaXB0aW9uOw0KICAgIH0NCn0NCmNsYXNzIFNldHRpbmdzQ2F0ZWdvcnlJdGVtIGV4dGVuZHMgU2V0dGluZ3NDYXRlZ29yeSB7DQogICAgY29uc3RydWN0b3IoaGVhZGxpbmUsIHNldHRpbmdzS2V5cykgew0KICAgICAgICBzdXBlcigpOw0KICAgICAgICB0aGlzLmhlYWRsaW5lID0gaGVhZGxpbmU7DQogICAgICAgIHRoaXMuc2V0dGluZ3NLZXlzID0gc2V0dGluZ3NLZXlzOw0KICAgIH0NCiAgICBjcmVhdGVDYXRlZ29yeSgpIHsNCiAgICAgICAgdmFyIGhlYWRsaW5lID0gdGhpcy5jcmVhdGVDYXRlZ29yeUhlYWRsaW5lKHRoaXMuaGVhZGxpbmUpOw0KICAgICAgICB2YXIgc2V0dGluZ3NLZXlzID0gdGhpcy5zZXR0aW5nc0tleXM7DQogICAgICAgIHZhciBkb2MgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCh0aGlzLkRvY3VtZW50SUQpOw0KICAgICAgICBkb2MuYXBwZW5kQ2hpbGQoaGVhZGxpbmUpOw0KICAgICAgICAvLyBUYWJlbGxlIGbDvHIgZGllIEthdGVnb3JpZSBlcnN0ZWxsZW4NCiAgICAgICAgdmFyIHRhYmxlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEFCTEUiKTsNCiAgICAgICAgdmFyIGtleXMgPSBzZXR0aW5nc0tleXMuc3BsaXQoIiwiKTsNCiAgICAgICAga2V5cy5mb3JFYWNoKHNldHRpbmdzS2V5ID0+IHsNCiAgICAgICAgICAgIHN3aXRjaCAoc2V0dGluZ3NLZXkpIHsNCiAgICAgICAgICAgICAgICBjYXNlICJhdXRoZW50aWNhdGlvbi5wbXMiOg0KICAgICAgICAgICAgICAgIGNhc2UgImF1dGhlbnRpY2F0aW9uLm0zdSI6DQogICAgICAgICAgICAgICAgY2FzZSAiYXV0aGVudGljYXRpb24ueG1sIjoNCiAgICAgICAgICAgICAgICBjYXNlICJhdXRoZW50aWNhdGlvbi5hcGkiOg0KICAgICAgICAgICAgICAgICAgICBpZiAoU0VSVkVSWyJzZXR0aW5ncyJdWyJhdXRoZW50aWNhdGlvbi53ZWIiXSA9PSBmYWxzZSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBkZWZhdWx0Og0KICAgICAgICAgICAgICAgICAgICB2YXIgaXRlbSA9IHRoaXMuY3JlYXRlU2V0dGluZ3Moc2V0dGluZ3NLZXkpOw0KICAgICAgICAgICAgICAgICAgICB2YXIgZGVzY3JpcHRpb24gPSB0aGlzLmNyZWF0ZURlc2NyaXB0aW9uKHNldHRpbmdzS2V5KTsNCiAgICAgICAgICAgICAgICAgICAgdGFibGUuYXBwZW5kQ2hpbGQoaXRlbSk7DQogICAgICAgICAgICAgICAgICAgIHRhYmxlLmFwcGVuZENoaWxkKGRlc2NyaXB0aW9uKTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICB9DQogICAgICAgIH0pOw0KICAgICAgICBkb2MuYXBwZW5kQ2hpbGQodGFibGUpOw0KICAgICAgICBkb2MuYXBwZW5kQ2hpbGQodGhpcy5jcmVhdGVIUigpKTsNCiAgICB9DQp9DQpmdW5jdGlvbiBzaG93U2V0dGluZ3MoKSB7DQogICAgY29uc29sZS5sb2coIlNFVFRJTkdTIik7DQogICAgZm9yIChsZXQgaSA9IDA7IGkgPCBzZXR0aW5nc0NhdGVnb3J5Lmxlbmd0aDsgaSsrKSB7DQogICAgICAgIHNldHRpbmdzQ2F0ZWdvcnlbaV0uY3JlYXRlQ2F0ZWdvcnkoKTsNCiAgICB9DQp9DQpmdW5jdGlvbiBzYXZlU2V0dGluZ3MoKSB7DQogICAgY29uc29sZS5sb2coIlNhdmUgU2V0dGluZ3MiKTsNCiAgICB2YXIgY21kID0gInNhdmVTZXR0aW5ncyI7DQogICAgdmFyIGRpdiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb250ZW50X3NldHRpbmdzIik7DQogICAgdmFyIHNldHRpbmdzID0gZGl2LmdldEVsZW1lbnRzQnlDbGFzc05hbWUoImNoYW5nZWQiKTsNCiAgICB2YXIgbmV3U2V0dGluZ3MgPSBuZXcgT2JqZWN0KCk7DQogICAgZm9yIChsZXQgaSA9IDA7IGkgPCBzZXR0aW5ncy5sZW5ndGg7IGkrKykgew0KICAgICAgICB2YXIgbmFtZTsNCiAgICAgICAgdmFyIHZhbHVlOw0KICAgICAgICBzd2l0Y2ggKHNldHRpbmdzW2ldLnRhZ05hbWUpIHsNCiAgICAgICAgICAgIGNhc2UgIklOUFVUIjoNCiAgICAgICAgICAgICAgICBzd2l0Y2ggKHNldHRpbmdzW2ldLnR5cGUpIHsNCiAgICAgICAgICAgICAgICAgICAgY2FzZSAiY2hlY2tib3giOg0KICAgICAgICAgICAgICAgICAgICAgICAgbmFtZSA9IHNldHRpbmdzW2ldLm5hbWU7DQogICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IHNldHRpbmdzW2ldLmNoZWNrZWQ7DQogICAgICAgICAgICAgICAgICAgICAgICBuZXdTZXR0aW5nc1tuYW1lXSA9IHZhbHVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgICAgIGNhc2UgInRleHQiOg0KICAgICAgICAgICAgICAgICAgICAgICAgbmFtZSA9IHNldHRpbmdzW2ldLm5hbWU7DQogICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IHNldHRpbmdzW2ldLnZhbHVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgc3dpdGNoIChuYW1lKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAidXBkYXRlIjoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSB2YWx1ZS5zcGxpdCgiLCIpOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IHZhbHVlLmZpbHRlcihmdW5jdGlvbiAoZSkgeyByZXR1cm4gZTsgfSk7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgImJ1ZmZlci50aW1lb3V0IjoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSBwYXJzZUZsb2F0KHZhbHVlKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgIG5ld1NldHRpbmdzW25hbWVdID0gdmFsdWU7DQogICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJTRUxFQ1QiOg0KICAgICAgICAgICAgICAgIG5hbWUgPSBzZXR0aW5nc1tpXS5uYW1lOw0KICAgICAgICAgICAgICAgIHZhbHVlID0gc2V0dGluZ3NbaV0udmFsdWU7DQogICAgICAgICAgICAgICAgLy8gV2VubiBkZXIgV2VydCBlaW5lIFphaGwgaXN0LCB3aXJkIGRpZXNlciBhbHMgWmFobCBnZXNwZWljaGVydA0KICAgICAgICAgICAgICAgIGlmIChpc05hTih2YWx1ZSkpIHsNCiAgICAgICAgICAgICAgICAgICAgbmV3U2V0dGluZ3NbbmFtZV0gPSB2YWx1ZTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgZWxzZSB7DQogICAgICAgICAgICAgICAgICAgIG5ld1NldHRpbmdzW25hbWVdID0gcGFyc2VJbnQodmFsdWUpOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgfQ0KICAgIH0NCiAgICB2YXIgZGF0YSA9IG5ldyBPYmplY3QoKTsNCiAgICBkYXRhWyJzZXR0aW5ncyJdID0gbmV3U2V0dGluZ3M7DQogICAgdmFyIHNlcnZlciA9IG5ldyBTZXJ2ZXIoY21kKTsNCiAgICBzZXJ2ZXIucmVxdWVzdChkYXRhKTsNCn0NCg==" + webUI["html/video/stream-limit.ts"] = "R0AREABC8CUAAcEAAP8B/wAB/IAUSBIBBkZGbXBlZwlTZXJ2aWNlMDF3fEPK//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////9HQAAQAACwDQABwQAAAAHwACqxBLL//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////0dQABAAArASAAHBAADhAPAAG+EA8AAVvU1W////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////R0EAMAdQAAB7DH4AAAAB4AAAgMAKMQAJEKERAAfYYQAAAAEJ8AAAAAFnZAAorNlAeAIn5cBEAAADAAQAAAMAyDxgxlgAAAABaOvjyyLAAAABBgX//6rcRem95tlIt5Ys2CDZI+7veDI2NCAtIGNvcmUgMTUyIHIyODU0IGU5YTU5MDMgLSBILjI2NC9NUEVHLTQgQVZDIGNvZGVjIC0gQ29weWxlZnQgMjAwMy0yMDE3IC0gaHR0cDovL3dHAQARd3cudmlkZW9sYW4ub3JnL3gyNjQuaHRtbCAtIG9wdGlvbnM6IGNhYmFjPTEgcmVmPTMgZGVibG9jaz0xOjA6MCBhbmFseXNlPTB4MzoweDExMyBtZT1oZXggc3VibWU9NyBwc3k9MSBwc3lfcmQ9MS4wMDowLjAwIG1peGVkX3JlZj0xIG1lX3JhbmdlPTE2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ACqxBLL//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////0dQABEAArASAAHBAADhAPAAG+EA8AAVvU1W////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////RwEAGO10tGlFAwyE91Tzg8923ovJk1dv2xh1gVlYQFtWdZ6NSQ8vgHM7/tMfIZPsqgCU856rdBJJRMDaor/oWA7pkvSmC2aqaC5fd/mkWUPTuG8fRhGqOY1rKxLNSI3HtTQAcuVBxRM0NfMw0ky/JMJYZiCgXcNsxpxl+khr/9fKtO5Fg2VNBti92xcZimHUZDJMQTBOY6vSR9L1N2O/kJQCpdfuc9bkcUTMjH/es/lAySxvbiislkohqkpHAQAZVatwHI0t9eHCUfDyWUEtuCNyDwQFOVMtaYEQJrTrhQX0VduT86F0u0wN9ag0uPsrmX6Rid/x5S7KI1SkS+qP6cdmgSP57uiF4dG6IKsWNfGBLY09H/CFlrg73WINQkkp2diKkdEmtZetn8+ZAKzR5eXN5FebiKt6pIkNLuSofjosypEs2o6boKsfpmbtOV0idOeWDM9C8EIcn3aZwk1s2KBDvt1DlY+i2Cuvhk3XoKLT+pq/bOC5QkcBABolcOXneZXLoQw9W1PH1f/of92Ytjj8okrWijcQAKlE5l8XoTb9qrOiZnDOhqwcMlB9H9rorq041I89hChohYoSkJElcM8V+r8WYN5axD1BNyfwaHAOm4UN2/VEYOkNSfMjmx2S0WW/F2ha8Jj4fc4QgqcXr+TnnbwqLkLTValK4Qa1pcv7PIbDq6zCUfxe04guZ8xEhPQjp17/G6IB/6uq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wnibxQ/cXEblVnM47wbCN3iy4eHjYB5MoIICrSYmd8nt4V0toLs084KJlmnur5FbApYM4W79ff4oZkW88Cg8Fv8TnWhh1Hqc4UlhMbRKm2QxDgfBxar3U7BwNR6prrXXjqfR7ja3tPli+H7Jez/xcTg32QpHAQAdTa7pSSgBvmOqzz175NAFIhwE9p3d71F9jLvhaPv8q1iKopL0kizwzEWElnXWmNhfLkl/Au8KujnoKUaxVdTe+zAZm2dOkejnpNVtVj0Aw9wKcG3ZQ1iRZrUFRIoPKYlmR+oi0LrupuhYABtgPbdCbDtezGTr0nw9wVd/rZ6V+1wcoJ6+8VAVueIdwI3brqm6EoFHiI8L6lER+9SefB8fHo4NYgr/I8jSxaa/2PLX2K/DjrlY6bN8fEcBAB7DXsuh8DITF6CYWj2HTFvqfzlic3QHXnHtvsTFNpyVY1LY8y/fRK2mwALN6IB5W3OuyoKiA3K0lJdQUv2gYhHWvPTV218HYrD0rkbMxRH0SiEEkrHDeOt5T1HtWD13D2/QvMu535fsfZyeaFDjdCE9M0Xi8Lfc7Xj1ZNGend7Jo7/cEiczFkc1vB4z2JpFGZreV2EdquyEzC2STFJtfimyx8QlLngEuR1cxH+lWEcFX+mvBa/eqktIRwEAH6VazFLPNsnHZqsI66TVoArQuUUGFAzr8MT8GZ9V6qpZa5D0jA/4eGi6Kq0smUgRExnqIbSMLWqDf/Pk2YT3MpHTu9VE3Dn9blgB6KsVIkWnB98Y2n/6DrZDcF94Ndu0Ka4U/RZwdV5O5KcO+lU2ZiIOYTYZ6Ie0d+tApxYxJ+YmxaDoCyRNe6crw/yzR5SflT8ddi/E2BM+l+nwVDiKZ/714fmrBxFKWuqLiQNHV19o1cZ8Ubun+ZtHQAASAACwDQABwQAAAAHwACqxBLL//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////0dQABIAArASAAHBAADhAPAAG+EA8AAVvU1W////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////RwEAEH1s3BdtHdF1ln55B24wdACF/ggcRtPmB4IUB6cZJ+m32I4R48ZkdhAFBulgWcsv0wZwH0o1yi3i4qm3rJ98AUKdB9PsNyG9gURV0bTw4myAj6g5Dgodfv6w9bsbOxsGUWkvgAJ3rrR010BvZbIa6CMRCQRjxkCfRF77ansRJZT0JzhtYeSS/ZJob8Rr2jrng3W2rkmHtE+rdqlPiHxmwkRZvYGhBxwiJO2L6f+l/cABsfs09rA+A0pHAQAREZay3TBUIAfMWhApE+LaPgeyOYtaPFONA9aC0h4QrFkaLZfb86678MK+zLgqDBsDoj50eZHMVcczRjs4sYlv7RG8RIWKb5lB9Kn/8+CkxiiA11cHH1yzLX2SKCmhsak/+P/zYQ1EDvEj33bl9e3Jd62cTI+Qw99KrsWnUMN8hFNeXzoGHA3aec+Li4NFboF8sa6lCPR6Csxsvxw8DJaWCnER5Z0p+nKhXavF/eNHQ0DX47ohycc87UcBABKsYHCHXXe3vK1cFYDWO6rhwM6hxCdJ+/X+VB1akQejL6iBMdUPuadUqBnbprwJM0dWpSSn9uuZZeqe46iZOGIJUo69d8x+ZSvPcBH/dK1Y0LJnoWdgWH51SQg7eYqcwjQW3BOy7ZF02Hn1EhTuhsN7ms8zv3WIeEBDBq0T3Idl+Tmw9iJU9skVYiwygHG2+0XwrLa6y+uiQPwMzrnEr1kuf24XoAqrJTZQiVH3aQF4d94yDreWu2KPRwEAE2FsynHZaUcBXEFbeX0nSxZ7sRcRjJvc7RYOny6N8QFwKDVO7jpRWWYM55kuepBOyZ+7BFYeG+FU1kR+ZfmqyDNkD4D1IPwNh6u9JQxDymfN/aMcQC3WxdvCKquPsAut6dugpGkOFtIe+W3ayc4V/J978P+h1EDFMbFjxRPuXht0K2dBQZCJ0ybISUDqWzhPuep8CdxSU4MvMVfdXh7FLl/BqKJUTT+vM+Pz3XnqCQQmH5TjQ4CK55VHAQAUEtgfkBwIYgtwHkhjmtLw7HNTeJeMfTjATEKcyuKzItSeYxHBmGzQ/+G2otpPCOkVAXJ9mfx7LxrW4joZ0ttTRQJ/wqMUK1IN349LiJoo8y/+FwN4jPNDwIleJG697riqnmLOweFW8spHKLBfnHcyC1pG6EIxFpTqUQ0KHqXD/KXIHKioJNAOVwQ1Gfloxebo/Tdtd00dpHP3gcsAOnV75APCYOjVIlwm2X6ViDeZw6Btdb/Br/+yokcBABU3+eOESLlneGbR5SLiL8wPkoRaZ5X7xFlMTMvsv9yHk26bVdmsubSdbYS1Hy64n0+NnL7C1aLD7aJxOudMjVW5goZbfO2KxBQkCD4HFA284wbaB5vOL7mRilCn6YEs1kiwf22+fBLNUmXDb2p353wrD/ygTDhlki66USvUmd/ZAs9uzAddegEzy7Xn00YysWTu/hegYyZtWFC+X5dhLubWJ7n96y5wjrP7PAOXoQQtFUH9j/rBiP/7RwEAFnL/wYKYuj80mPGtimSbF/E9K7XwjwBz8yHZubmVMTCmwkZBM4h0FR1thnUGiSjqjJT6SfunWCZ/dZDQplrzS00UKcUP399SyM+nNG1br8Za0ZYwWch8nyLHYXSRuxdnrfUUespsOQo1cWSLGf0pV2HIcHoiAAEKwPU6irB5BSoFvB1qKVjgEk+QwAEYAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAABHAQA3pAD/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////AwAAAwAAAwAAAwAAAwAAAwBbwUdBABgAAAHgAACAwAoxAAmBIREAB/SBAAAAAQnwAAAAAUGaJGxDv/6plgAAAwAAAwAAAwAAAwAAAwAAAwAAAwAKCKB0AIhy1ftwLNISWucTFC7xeBcaIzP3oZjZo8uT9hqZVstWGnrPz+vjaA5FuCO+K2w7/o39LygDO7aL+0zSrN90LW7r133x8+f+PEKk8d7pd2fj4RYuMOXOYunzFzRX/4IvR1XsK5WJYwVkOca3yfo7DTvUBP9rgSiTRwEAGQD6CFK1PBC4qYCa+coLVnX+jgODNrau5YJXIekDI4+wUNV+5T5HE4e2t5EGAjn77+kC1Vghmvx8KqPnylVUvsaTofheggxHsPuxn1zQt6nA59UglrRUMn8b4pmrvfqTBSqU949+AcNAI6M/eAqz6r0RG5KNeBhx8R2f0x2kujwHU3pc3rlPb6ZrFM/2HiG97eEIezrvWFG7YAAAAwAAAwAE1KRo1VfbdZQ/tOpNGxFmTcQoFidyD2tHAQAapTTIErUKA2Rc9uIzGJu+oW0uNOxRyl6oJNUNJp5L9TIshNS1CmUKgdCaE3LkLwdE8iUkUnIGfWLiWpWmjzsINYC8dnDaSptB53yJkBu0SsR00oo1PZ0pl4ZzoXGSYQJTPaVCbj6FNqm5wcnUqKTB/rgHdPdnDj0K8asLABeo/n3XCXrDorI+LYSD1FBgmV9O7RZdjfL0NnXOQkiq/ZGirwVV0cUF1aHtZx1yHlAAZKuuu7TqB13CAUcBADuRAP///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////yj/IrOvAEoXDNGy+nrxWN0l8cmuqWYaUJpuM9XgAAADAAADAAKmR0EAPAcQAACJHH4AAAAB4AAAgMAKMQAJSOERAAkQoQAAAAEJ8AAAAAFBnkJ4hf8AAAMAAAMAAAMAAAMAAAMAAAMAAAMAC/BmhyuvLmkCgKTgACEXfOVvHRHdpBEEmTTz9pIZCa2FD0CXukzDCakOHekTpJQSdsfd7a/jjM1/5lBtKCAGQ6zOCSQ6DeKtyw+CugDuuglGipwmvQW+FIDjnZ6HRd0uaSOGy6VB3h9MI1o4nqaCqVwwIgubYZFHAQA9XgD////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////WcZrO6BEiqf8pCxYwlz2mkdUzY/ipM/TIHS4m5xQAAAMAAAMAAA5sVm90p14dlvWgBgY7XQ9KVOJKLtaMAN5KiffVQtNuzW5DfL+RewZpAAADAAADAAAQMUdBAB4AAAHgAACAgAUhAAkswQAAAAEJ8AAAAAEBnmF0Qr8AAAMAAAMAAAMAAAMAAAMAAAMAAAMAABJfBjP2+4+W7ZybyT130+Ma4WSqICfd/dS4YtjrLlmh5VBlfrtwJqdN1PBTYDkwGOOONqZQeFN6lLGJoDzvuh3kv1aDBLqug+JhvrSeu5ebnvcrtQzb2REwJL3h9mvtkr0WfDu4AAADAAADAAs32Y4C/6Ns79oCGj6oqLltY3T4I0/QRwEAP5wA//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////8BeoWLRnKQmVgO/RBoBfcK85AAAAMAAAMACFhHQQAwBxAAAJcsfgAAAAHgAACAwAoxAAllAREACUjhAAAAAQnwAAAAAQGeY2pCvwAAAwAAAwAAAwAAAwAAAwAAAwAAAwAAEmDKfLGXsvBBQPNYXlEd6WueJ4deApfcHESlG+7V6u0AiWQqJvNZYM+3Js3Lj9Ldc9yYIHqruVwfMtCYGlX3wMavI/DrhMuJw+RreIF8SKsJD8CMccAAAAMAAAMACrFZOBgEqaP/8EyWsAHV6CgcAgfyox/roEcBADGuAP//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////AAADAAADAHTBR0EAEgAAAeAAAIDACjEACfGhEQAJZQEAAAABCfAAAAABQZpoSahBaJlMCHf//qmWAAADAAADAAADAAADAAADAAADAAADAAALf8A2bry6lUyIAQGNFfVK2Cd7h4qDqmqpvmXfkfTwo2Ab79AHhajxJ4MPWIgAAA84xLRIx7I2CrWjWe96OvgkzgS9mtvhuxdzAgpuIOJI3DEY9mviDDZz8XSAAAADAAADAB7AZkj9AAHHGvk+Pzlku8UkWa5HAQAzogD//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////6HjAkbF/gsWuvw4QAAAAwAAAwAccUdBADQHEAAApTx+AAAAAeAAAIDACjEACblhEQAJgSEAAAABCfAAAAABQZ6GRREsL/8AAAMAAAMAAAMAAAMAAAMAAAMAAAMAAA3URJB/3lMHSmOd0GYZnfpoR80WdqxlyHzPX+V81VUMeXIGrRgq5agd+ACdjoGI036yQ/rmpGw0CmMBrKwpI+nwFo3SP0s1rI2yHBZaiPJjSUgw33rBkxXcq55kfLf2sAAAAwAAAwACBWolidWDnIeQAAADRwEANbEA//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////8AAAMADulHQQA2NAD///////////////////////////////////////////////////////////////////8AAAHgAACAgAUhAAmdQQAAAAEJ8AAAAAEBnqV0Qr8AAAMAAAMAAAMAAAMAAAMAAAMAAAMAABJXNihCnx11JUosH2hBE53O/YN+GPHqcnJiQBIf3maTAAj5iRt+7GYUKBAU9iCXTiouCjGYgAAAAwAAAwA9p4HQBg2cAAADAAADAADGgUdBADc4EAAAs0x+AP////////////////////////////////////////////////////////////////8AAAHgAACAwAoxAAnVgREACblhAAAAAQnwAAAAAQGep2pCvwAAAwAAAwAAAwAAAwAAAwAAAwAAAwAAAwBR6/L83y+ZevtMZ0FW4lp8qV7fVXQAhLAWlS6mDxvpaSUgChorvgTMXtxJEIAAAAMAAAMACqFCAAADAAADAAADAAz4R0EAOCsA////////////////////////////////////////////////////////AAAB4AAAgMAKMQALYiERAAnVgQAAAAEJ8AAAAAFBmqxJqEFsmUwId//+qZYAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAApQTq0hABLvkcWCYrAaRRPNDrECJGlF/11BYvG9+JJ9Y86nxnmQzPxtAAe1UgOsXAAADAAADAAADAAADAAADAAADAAADA/JHQQA5JhAAAMFcfgD/////////////////////////////////////////AAAB4AAAgMAKMQALKeERAAnxoQAAAAEJ8AAAAAFBnspFFSwv/wAAAwAAAwAAAwAAAwAAAwAAAwAAAwAADdRFmvrVE0KXDOGwWddlwYa1foib7tXZKmkua6R4APb4b8+tXwdSNNqgf2IVNwGTohgQAcMvp6SiQxpiQym4AAADAAADAANUNUAAAAMAAAMAAAMBN0dBADo8AP//////////////////////////////////////////////////////////////////////////////AAAB4AAAgIAFIQALDcEAAAABCfAAAAABAZ7pdEK/AAADAAADAAADAAADAAADAAADAAADAAADAFHTAfujIUaaLSuklb9y0/so9AEtQAqkAxOviALQZ5jNt/iOkABrCOZ4md0iUnFwAAADAAADAALwckAAAAMAAAMAAATcR0EAO0IQAADPbH4A//////////////////////////////////////////////////////////////////////////////8AAAHgAACAwAoxAAtGAREACynhAAAAAQnwAAAAAQGe62pCvwAAAwAAAwAAAwAAAwAAAwAAAwAAAwAAAwBR6/L83y+WryR9gmVKPGbIhJpkgAFgHCej3gB6rAHPgHHAAAADAAADAAAYIV0AAAMAAAMAAAMABnxHQQA8UQD//////////////////////////////////////////////////////////////////////////////////////////////////////////wAAAeAAAIDACjEAC9KhEQALRgEAAAABCfAAAAABQZrwSahBbJlMCG///qeEAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAAZ8UdBAD00EAAA3Xx+AP///////////////////////////////////////////////////////////wAAAeAAAIDACjEAC5phEQALYiEAAAABCfAAAAABQZ8ORRUsL/8AAAMAAAMAAAMAAAMAAAMAAAMAAAMAAA3URZr61RNClwzhI2ZXdRHYLZWc1yTgKRhTIXBNABHQKIIyYNyc+AaEn1jhATEAAAMAAAMAAAMAckkIAAADAAADAAADAEbBR0EAPkYA////////////////////////////////////////////////////////////////////////////////////////////AAAB4AAAgIAFIQALfkEAAAABCfAAAAABAZ8tdEK/AAADAAADAAADAAADAAADAAADAAADAAADAFHTAfujIUAYRtY0f/43cIs2OjxACR2hMR1QBGYX+34JGAAAAwAAAwAAAwKEJ6AAAAMAAAMAAAMA3oFHQQA/QhAAAOuMfgD//////////////////////////////////////////////////////////////////////////////wAAAeAAAIDACjEAC7aBEQALmmEAAAABCfAAAAABAZ8vakK/AAADAAADAAADAAADAAADAAADAAADAAADAFHr8vzfL5avJH2CZUo8ZsiEmmSAAWAcJ6PeAHqsAc+AccAAAAMAAAMAABghXQAAAwAAAwAAAwAGfEdBADBRAP//////////////////////////////////////////////////////////////////////////////////////////////////////////AAAB4AAAgMAKMQANQyERAAu2gQAAAAEJ8AAAAAFBmzRJqEFsmUwIZ//+nhAAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAGVAR0EAMTQQAAD5nH4A////////////////////////////////////////////////////////////AAAB4AAAgMAKMQANCuERAAvSoQAAAAEJ8AAAAAFBn1JFFSwv/wAAAwAAAwAAAwAAAwAAAwAAAwAAAwAADdRFmvrVE0KXDOEjZld1EdgtlZzXJOApGFMhcE0AEdAogjJg3Jz4BoSfWOEBMQAAAwAAAwAAAwBySQgAAAMAAAMAAAMARsFHQQAyRgD///////////////////////////////////////////////////////////////////////////////////////////8AAAHgAACAgAUhAAvuwQAAAAEJ8AAAAAEBn3F0Qr8AAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAUdMB+6MhQBhG1jR//jdwizY6PEAJHaExHVAEZhf7fgkYAAADAAADAAADAoQnoAAAAwAAAwAAAwDegEdBADNCEAABB6x+AP//////////////////////////////////////////////////////////////////////////////AAAB4AAAgMAKMQANJwERAA0K4QAAAAEJ8AAAAAEBn3NqQr8AAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAUevy/N8vlq8kfYJlSjxmyISaZIABYBwno94AeqwBz4BxwAAAAwAAAwAAGCFdAAADAAADAAADAAZ8R0EANFIA////////////////////////////////////////////////////////////////////////////////////////////////////////////AAAB4AAAgMAKMQANs6ERAA0nAQAAAAEJ8AAAAAFBm3hJqEFsmUwIV//+OEAAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAYtHQQA1NBAAARW8fgD///////////////////////////////////////////////////////////8AAAHgAACAwAoxAA17YREADUMhAAAAAQnwAAAAAUGflkUVLC//AAADAAADAAADAAADAAADAAADAAADAAAN1EWa+tUTQpcM4SNmV3UR2C2VnNck4CkYUyFwTQAR0CiCMmDcnPgGhJ9Y4QExAAADAAADAAADAHJJCAAAAwAAAwAAAwBGwEdBADZGAP///////////////////////////////////////////////////////////////////////////////////////////wAAAeAAAICABSEADV9BAAAAAQnwAAAAAQGftXRCvwAAAwAAAwAAAwAAAwAAAwAAAwAAAwAAAwBR0wH7oyFAGEbWNH/+N3CLNjo8QAkdoTEdUARmF/t+CRgAAAMAAAMAAAMChCegAAADAAADAAADAN6BR0EAN0IQAAEjzH4A//////////////////////////////////////////////////////////////////////////////8AAAHgAACAwAoxAA2XgREADXthAAAAAQnwAAAAAQGft2pCvwAAAwAAAwAAAwAAAwAAAwAAAwAAAwAAAwBR6/L83y+WryR9gmVKPGbIhJpkgAFgHCej3gB6rAHPgHHAAAADAAADAAAYIV0AAAMAAAMAAAMABn0=" } diff --git a/ts/base_ts.ts b/ts/base_ts.ts index cdf101c..647faf0 100644 --- a/ts/base_ts.ts +++ b/ts/base_ts.ts @@ -258,7 +258,7 @@ function sortTable(column) { } else { - switch(isNaN(xValue)) { + switch(isNaN(xValue) || typeof xValue == "string") { case false: xValue = parseFloat(xValue); diff --git a/ts/menu_ts.ts b/ts/menu_ts.ts index 82038c9..a308f9b 100644 --- a/ts/menu_ts.ts +++ b/ts/menu_ts.ts @@ -796,6 +796,11 @@ class ShowContent extends Content { cell.onclickFunktion = "javascript: sortTable(5);" } + if (element == "{{.mapping.table.timeshift}}") { + cell.onclick = true + cell.onclickFunktion = "javascript: sortTable(8);" + } + } header.appendChild(cell.createCell()) From e37915642d0e335e453a90d9b40a305627452bfe Mon Sep 17 00:00:00 2001 From: SCP002 Date: Mon, 28 Mar 2022 14:08:14 +0300 Subject: [PATCH 046/189] Increase program version to "2.2.2.0300" --- xteve.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/xteve.go b/xteve.go index e6b3a5c..5d5783c 100644 --- a/xteve.go +++ b/xteve.go @@ -39,7 +39,7 @@ var GitHub = GitHubStruct{Branch: "master", User: "SCP002", Repo: "xTeVe", Updat const Name = "xTeVe" // Version : Version, the Build Number is parsed in the main func -const Version = "2.2.2.0200" +const Version = "2.2.2.0300" // DBVersion : Database Version const DBVersion = "2.1.1" From 73d5af3f56957ccd8ab67afad4d7e959b076ab19 Mon Sep 17 00:00:00 2001 From: SCP002 Date: Mon, 28 Mar 2022 15:34:58 +0300 Subject: [PATCH 047/189] Remove unused private functions --- src/internal/authentication/authentication.go | 8 -- src/internal/up2date/client/update.go | 9 --- src/toolchain.go | 25 ------ src/xepg.go | 76 ------------------- 4 files changed, 118 deletions(-) diff --git a/src/internal/authentication/authentication.go b/src/internal/authentication/authentication.go index 0f6bae4..14ff38b 100755 --- a/src/internal/authentication/authentication.go +++ b/src/internal/authentication/authentication.go @@ -575,14 +575,6 @@ loopToken: return } -func mapToJSON(tmpMap interface{}) string { - jsonString, err := json.MarshalIndent(tmpMap, "", " ") - if err != nil { - return "{}" - } - return string(jsonString) -} - // SetCookieToken : set cookie func SetCookieToken(w http.ResponseWriter, token string) http.ResponseWriter { expiration := time.Now().Add(time.Minute * time.Duration(tokenValidity)) diff --git a/src/internal/up2date/client/update.go b/src/internal/up2date/client/update.go index 7b3b15b..0418ecc 100755 --- a/src/internal/up2date/client/update.go +++ b/src/internal/up2date/client/update.go @@ -187,15 +187,6 @@ func restorOldBinary(oldBinary, newBinary string) { os.Rename(oldBinary, newBinary) } -func getPlatformFile(filename string) string { - - path, file := filepath.Split(filename) - var newPath = filepath.Dir(path) - var newFileName = newPath + string(os.PathSeparator) + file - - return newFileName -} - func getFilenameFromPath(path string) string { file := filepath.Base(path) diff --git a/src/toolchain.go b/src/toolchain.go index a31de80..c2bf8aa 100644 --- a/src/toolchain.go +++ b/src/toolchain.go @@ -125,12 +125,6 @@ func getFilenameFromPath(path string) (file string) { return filepath.Base(path) } -// Delete System Data that is no longer used -func removeOldSystemData() { - // Delete Temporary folder - os.RemoveAll(System.Folder.Temp) -} - // Searches for a File in the OS func searchFileInOS(file string) (path string) { @@ -198,14 +192,6 @@ func jsonToMap(content string) map[string]interface{} { return (tmpMap) } -func jsonToMapInt64(content string) map[int64]interface{} { - - var tmpMap = make(map[int64]interface{}) - json.Unmarshal([]byte(content), &tmpMap) - - return (tmpMap) -} - func jsonToInterface(content string) (tmpMap interface{}, err error) { err = json.Unmarshal([]byte(content), &tmpMap) @@ -396,17 +382,6 @@ func indexOfFloat64(element float64, data []float64) int { return -1 } -func indexOfInt(element int, data []int) int { - - for k, v := range data { - if element == v { - return (k) - } - } - - return -1 -} - func getMD5(str string) string { md5Hasher := md5.New() diff --git a/src/xepg.go b/src/xepg.go index 29e1a83..d3edb4d 100644 --- a/src/xepg.go +++ b/src/xepg.go @@ -156,53 +156,6 @@ func buildXEPG(background bool) { } -// Update XEPG Data -func updateXEPG(background bool) { - - if System.ScanInProgress == 1 { - return - } - - System.ScanInProgress = 1 - - if Settings.EpgSource == "XEPG" { - - switch background { - - case false: - - createXEPGDatabase() - mapping() - cleanupXEPG() - - go func() { - - createXMLTVFile() - createM3UFile() - showInfo("XEPG:" + fmt.Sprintf("Ready to use")) - - System.ScanInProgress = 0 - - }() - - case true: - System.ScanInProgress = 0 - - } - - } else { - - System.ScanInProgress = 0 - - } - - // Clearing the Cache - //Data.Cache.XMLTV = nil //make(map[string]XMLTV) - //Data.Cache.XMLTV = make(map[string]XMLTV) - - return -} - // Create Mapping Menu for the XMLTV Files func createXEPGMapping() { @@ -1121,32 +1074,3 @@ func cleanupXEPG() { return } - -// Generate Streaming URL for the Channels App -func getStreamByChannelID(channelID string) (playlistID, streamURL string, err error) { - - err = errors.New("Channel not found") - - for _, dxc := range Data.XEPG.Channels { - - var xepgChannel XEPGChannelStruct - err := json.Unmarshal([]byte(mapToJSON(dxc)), &xepgChannel) - - fmt.Println(xepgChannel.XChannelID) - - if err == nil { - - if channelID == xepgChannel.XChannelID { - - playlistID = xepgChannel.FileM3UID - streamURL = xepgChannel.URL - - return playlistID, streamURL, nil - } - - } - - } - - return -} From 3d55857fba408905332ea29c4088e39c45b75c7a Mon Sep 17 00:00:00 2001 From: SCP002 Date: Mon, 28 Mar 2022 17:53:56 +0300 Subject: [PATCH 048/189] Translate comments to English --- html/js/base_ts.js | 4 +- html/js/configuration_ts.js | 2 +- html/js/menu_ts.js | 150 ++++++++++----------- html/js/settings_ts.js | 8 +- src/buffer.go | 24 ++-- src/compression.go | 2 +- src/internal/imgcache/cache.go | 2 +- src/internal/m3u-parser/xteve_m3uParser.go | 14 +- src/internal/up2date/client/client.go | 2 +- src/update.go | 4 +- src/webUI.go | 44 +++--- src/xepg.go | 30 ++--- ts/base_ts.ts | 4 +- ts/configuration_ts.ts | 2 +- ts/menu_ts.ts | 150 ++++++++++----------- ts/settings_ts.ts | 8 +- 16 files changed, 225 insertions(+), 225 deletions(-) diff --git a/html/js/base_ts.js b/html/js/base_ts.js index 1e654ec..b2fa0fd 100644 --- a/html/js/base_ts.js +++ b/html/js/base_ts.js @@ -5,7 +5,7 @@ var SEARCH_MAPPING = new Object(); var UNDO = new Object(); var SERVER_CONNECTION = false; var WS_AVAILABLE = false; -// Menü +// Menu var menuItems = new Array(); menuItems.push(new MainMenuItem("playlist", "{{.mainMenu.item.playlist}}", "m3u.png", "{{.mainMenu.headline.playlist}}")); //menuItems.push(new MainMenuItem("pmsID", "{{.mainMenu.item.pmsID}}", "number.png", "{{.mainMenu.headline.pmsID}}")) @@ -16,7 +16,7 @@ menuItems.push(new MainMenuItem("users", "{{.mainMenu.item.users}}", "users.png" menuItems.push(new MainMenuItem("settings", "{{.mainMenu.item.settings}}", "settings.png", "{{.mainMenu.headline.settings}}")); menuItems.push(new MainMenuItem("log", "{{.mainMenu.item.log}}", "log.png", "{{.mainMenu.headline.log}}")); menuItems.push(new MainMenuItem("logout", "{{.mainMenu.item.logout}}", "logout.png", "{{.mainMenu.headline.logout}}")); -// Kategorien für die Einstellungen +// Settings categories var settingsCategory = new Array(); settingsCategory.push(new SettingsCategoryItem("{{.settings.category.general}}", "xteveAutoUpdate,tuner,epgSource,api")); settingsCategory.push(new SettingsCategoryItem("{{.settings.category.files}}", "update,files.update,temp.path,cache.images,xepg.replace.missing.images")); diff --git a/html/js/configuration_ts.js b/html/js/configuration_ts.js index 9c9c40f..db6bff1 100644 --- a/html/js/configuration_ts.js +++ b/html/js/configuration_ts.js @@ -89,7 +89,7 @@ function saveWizard() { case "SELECT": name = config[i].name; value = config[i].value; - // Wenn der Wert eine Zahl ist, wird dieser als Zahl gespeichert + // If the value is a number, store it as a number if (isNaN(value)) { wizard[name] = value; } diff --git a/html/js/menu_ts.js b/html/js/menu_ts.js index fd6ab15..c1ca56a 100644 --- a/html/js/menu_ts.js +++ b/html/js/menu_ts.js @@ -327,7 +327,7 @@ class Content { cell.childType = "BULK"; cell.value = false; tr.appendChild(cell.createCell()); - // Kanalnummer + // Channel number var cell = new Cell(); cell.child = true; cell.childType = "INPUTCHANNEL"; @@ -343,7 +343,7 @@ class Content { td.setAttribute('onclick', 'javascript: openPopUp("mapping", this)'); td.id = key; tr.appendChild(td); - // Kanalname + // Channel name var cell = new Cell(); cell.child = true; cell.childType = "P"; @@ -363,7 +363,7 @@ class Content { td.setAttribute('onclick', 'javascript: openPopUp("mapping", this)'); td.id = key; tr.appendChild(td); - // Gruppe (group-title) + // Group (group-title) var cell = new Cell(); cell.child = true; cell.childType = "P"; @@ -372,7 +372,7 @@ class Content { td.setAttribute('onclick', 'javascript: openPopUp("mapping", this)'); td.id = key; tr.appendChild(td); - // XMLTV Datei + // XMLTV file var cell = new Cell(); cell.child = true; cell.childType = "P"; @@ -386,7 +386,7 @@ class Content { td.setAttribute('onclick', 'javascript: openPopUp("mapping", this)'); td.id = key; tr.appendChild(td); - // XMLTV Kanal + // XMLTV Channel var cell = new Cell(); cell.child = true; cell.childType = "P"; @@ -494,18 +494,18 @@ class ShowContent extends Content { } show() { COLUMN_TO_SORT = -1; - // Alten Inhalt löschen + // Delete old content let doc = document.getElementById(this.DocumentID); doc.innerHTML = ""; showPreview(false); - // Überschrift + // Headline let headline = menuItems[this.menuID].headline; let menuKey = menuItems[this.menuID].menuKey; let h = this.createHeadline(headline); doc.appendChild(h); let hr = this.createHR(); doc.appendChild(hr); - // Interaktion + // Interaction let div = this.createInteraction(); doc.appendChild(div); let interaction = document.getElementById(this.interactionID); @@ -587,7 +587,7 @@ class ShowContent extends Content { console.log("Show content (menuKey):", menuKey); break; } - // Tabelle erstellen (falls benötigt) + // Create table (if needed) var tableHeader = menuItems[this.menuID].tableHeader; if (tableHeader.length > 0) { var wrapper = document.createElement("DIV"); @@ -597,7 +597,7 @@ class ShowContent extends Content { wrapper.appendChild(table); var header = this.createTableRow(); table.appendChild(header); - // Kopfzeile der Tablle + // Table header tableHeader.forEach(element => { var cell = new Cell(); cell.child = true; @@ -633,7 +633,7 @@ class ShowContent extends Content { header.appendChild(cell.createCell()); }); table.appendChild(header); - // Inhalt der Tabelle + // Content of the table var rows = this.createTableContent(menuKey); rows.forEach(tr => { table.appendChild(tr); @@ -678,7 +678,7 @@ function createLayout() { if (!document.getElementById("main-menu")) { return; } - // Menü erstellen + // Create menu document.getElementById("main-menu").innerHTML = ""; for (let i = 0; i < menuItems.length; i++) { menuItems[i].id = i; @@ -743,13 +743,13 @@ class PopupContent extends PopupWindow { var element = document.createElement("H3"); element.innerHTML = headline.toUpperCase(); this.doc.appendChild(element); - // Tabelle erstellen + // Create table this.table = document.createElement("TABLE"); this.doc.appendChild(this.table); } appendRow(title, element) { let tr = document.createElement("TR"); - // Bezeichnung + // Title if (title.length != 0) { tr.appendChild(this.createTitle(title)); } @@ -806,7 +806,7 @@ class PopupContent extends PopupWindow { tr.appendChild(this.createContent(span)); this.table.appendChild(tr); } - // Interaktion + // Interaction addInteraction(element) { let interaction = document.getElementById("popup-interaction"); interaction.appendChild(element); @@ -855,13 +855,13 @@ function openPopUp(dataType, element) { select.setAttribute("id", "type"); select.setAttribute("onchange", 'javascript: changeButtonAction(this, "next", "onclick")'); // changeButtonAction content.appendRow("{{.playlist.type.title}}", select); - // Interaktion + // Interaction content.createInteraction(); - // Abbrechen + // Abort var input = content.createInput("button", "cancel", "{{.button.cancel}}"); input.setAttribute("onclick", 'javascript: showElement("popup", false);'); content.addInteraction(input); - // Weiter + // Next var input = content.createInput("button", "next", "{{.button.next}}"); input.setAttribute("onclick", 'javascript: openPopUp("m3u")'); input.setAttribute("id", 'next'); @@ -874,7 +874,7 @@ function openPopUp(dataType, element) { var input = content.createInput("text", dbKey, data[dbKey]); input.setAttribute("placeholder", "{{.playlist.name.placeholder}}"); content.appendRow("{{.playlist.name.title}}", input); - // Beschreibung + // Description var dbKey = "description"; var input = content.createInput("text", dbKey, data[dbKey]); input.setAttribute("placeholder", "{{.playlist.description.placeholder}}"); @@ -908,9 +908,9 @@ function openPopUp(dataType, element) { content.appendRow("{{.playlist.tuner.title}}", input); } content.description("{{.playlist.tuner.description}}"); - // Interaktion + // Interation content.createInteraction(); - // Löschen + // Delete if (data["id.provider"] != "-") { var input = content.createInput("button", "delete", "{{.button.delete}}"); input.className = "delete"; @@ -922,17 +922,17 @@ function openPopUp(dataType, element) { input.setAttribute("onclick", 'javascript: openPopUp("playlist")'); content.addInteraction(input); } - // Abbrechen + // Abort var input = content.createInput("button", "cancel", "{{.button.cancel}}"); input.setAttribute("onclick", 'javascript: showElement("popup", false);'); content.addInteraction(input); - // Aktualisieren + // Update if (data["id.provider"] != "-") { var input = content.createInput("button", "update", "{{.button.update}}"); input.setAttribute('onclick', 'javascript: savePopupData("m3u", "' + id + '", false, 1)'); content.addInteraction(input); } - // Speichern + // Save var input = content.createInput("button", "save", "{{.button.save}}"); input.setAttribute('onclick', 'javascript: savePopupData("m3u", "' + id + '", false, 0)'); content.addInteraction(input); @@ -944,7 +944,7 @@ function openPopUp(dataType, element) { var input = content.createInput("text", dbKey, data[dbKey]); input.setAttribute("placeholder", "{{.playlist.name.placeholder}}"); content.appendRow("{{.playlist.name.title}}", input); - // Beschreibung + // Description var dbKey = "description"; var input = content.createInput("text", dbKey, data[dbKey]); input.setAttribute("placeholder", "{{.playlist.description.placeholder}}"); @@ -978,9 +978,9 @@ function openPopUp(dataType, element) { content.appendRow("{{.playlist.tuner.title}}", input); } content.description("{{.playlist.tuner.description}}"); - // Interaktion + // Interaction content.createInteraction(); - // Löschen + // Delete if (data["id.provider"] != "-") { var input = content.createInput("button", "delete", "{{.button.delete}}"); input.setAttribute('onclick', 'javascript: savePopupData("hdhr", "' + id + '", true, 0)'); @@ -992,17 +992,17 @@ function openPopUp(dataType, element) { input.setAttribute("onclick", 'javascript: openPopUp("playlist")'); content.addInteraction(input); } - // Abbrechen + // Abort var input = content.createInput("button", "cancel", "{{.button.cancel}}"); input.setAttribute("onclick", 'javascript: showElement("popup", false);'); content.addInteraction(input); - // Aktualisieren + // Update if (data["id.provider"] != "-") { var input = content.createInput("button", "update", "{{.button.update}}"); input.setAttribute('onclick', 'javascript: savePopupData("hdhr", "' + id + '", false, 1)'); content.addInteraction(input); } - // Speichern + // Save var input = content.createInput("button", "save", "{{.button.save}}"); input.setAttribute('onclick', 'javascript: savePopupData("hdhr", "' + id + '", false, 0)'); content.addInteraction(input); @@ -1017,13 +1017,13 @@ function openPopUp(dataType, element) { select.setAttribute("id", id); select.setAttribute("onchange", 'javascript: changeButtonAction(this, "next", "onclick");'); // changeButtonAction content.appendRow("{{.filter.type.title}}", select); - // Interaktion + // Interaction content.createInteraction(); - // Abbrechen + // Abort var input = content.createInput("button", "cancel", "{{.button.cancel}}"); input.setAttribute("onclick", 'javascript: showElement("popup", false);'); content.addInteraction(input); - // Weiter + // Next var input = content.createInput("button", "next", "{{.button.next}}"); input.setAttribute("onclick", 'javascript: openPopUp("group-title")'); input.setAttribute("id", 'next'); @@ -1044,24 +1044,24 @@ function openPopUp(dataType, element) { var input = content.createInput("text", dbKey, data[dbKey]); input.setAttribute("placeholder", "{{.filter.name.placeholder}}"); content.appendRow("{{.filter.name.title}}", input); - // Beschreibung + // Description var dbKey = "description"; var input = content.createInput("text", dbKey, data[dbKey]); input.setAttribute("placeholder", "{{.filter.description.placeholder}}"); content.appendRow("{{.filter.description.title}}", input); - // Typ + // Type var dbKey = "type"; var input = content.createInput("hidden", dbKey, data[dbKey]); content.appendRow("", input); var filterType = data[dbKey]; switch (filterType) { case "custom-filter": - // Groß- Kleinschreibung beachten + // Case sensitive var dbKey = "caseSensitive"; var input = content.createCheckbox(dbKey); input.checked = data[dbKey]; content.appendRow("{{.filter.caseSensitive.title}}", input); - // Filterregel (Benutzerdefiniert) + // Filter Rule (Custom) var dbKey = "filter"; var input = content.createInput("text", dbKey, data[dbKey]); input.setAttribute("placeholder", "{{.filter.filterRule.placeholder}}"); @@ -1069,7 +1069,7 @@ function openPopUp(dataType, element) { break; case "group-title": //alert(dbKey + " " + filterType) - // Filter basierend auf den Gruppen in der M3U + // Filter based on the groups in the M3U var dbKey = "filter"; var groupsM3U = getLocalData("m3uGroups", ""); var text = groupsM3U["text"]; @@ -1078,7 +1078,7 @@ function openPopUp(dataType, element) { select.setAttribute("onchange", "javascript: this.className = 'changed'"); content.appendRow("{{.filter.filterGroup.title}}", select); content.description("{{.filter.filterGroup.description}}"); - // Groß- Kleinschreibung beachten + // Case sensetive var dbKey = "caseSensitive"; var input = content.createCheckbox(dbKey); input.checked = data[dbKey]; @@ -1125,18 +1125,18 @@ function openPopUp(dataType, element) { default: break; } - // Interaktion + // Interaction content.createInteraction(); - // Löschen + // Delete var input = content.createInput("button", "delete", "{{.button.delete}}"); input.setAttribute('onclick', 'javascript: savePopupData("filter", "' + id + '", true, 0)'); input.className = "delete"; content.addInteraction(input); - // Abbrechen + // Abort var input = content.createInput("button", "cancel", "{{.button.cancel}}"); input.setAttribute("onclick", 'javascript: showElement("popup", false);'); content.addInteraction(input); - // Speichern + // Save var input = content.createInput("button", "save", "{{.button.save}}"); input.setAttribute('onclick', 'javascript: savePopupData("filter", "' + id + '", false, 0)'); content.addInteraction(input); @@ -1148,7 +1148,7 @@ function openPopUp(dataType, element) { var input = content.createInput("text", dbKey, data[dbKey]); input.setAttribute("placeholder", "{{.xmltv.name.placeholder}}"); content.appendRow("{{.xmltv.name.title}}", input); - // Beschreibung + // Description var dbKey = "description"; var input = content.createInput("text", dbKey, data[dbKey]); input.setAttribute("placeholder", "{{.xmltv.description.placeholder}}"); @@ -1158,48 +1158,48 @@ function openPopUp(dataType, element) { var input = content.createInput("text", dbKey, data[dbKey]); input.setAttribute("placeholder", "{{.xmltv.fileXMLTV.placeholder}}"); content.appendRow("{{.xmltv.fileXMLTV.title}}", input); - // Interaktion + // Interaction content.createInteraction(); - // Löschen + // Delete if (data["id.provider"] != "-") { var input = content.createInput("button", "delete", "{{.button.delete}}"); input.setAttribute('onclick', 'javascript: savePopupData("xmltv", "' + id + '", true, 0)'); input.className = "delete"; content.addInteraction(input); } - // Abbrechen + // Abort var input = content.createInput("button", "cancel", "{{.button.cancel}}"); input.setAttribute("onclick", 'javascript: showElement("popup", false);'); content.addInteraction(input); - // Aktualisieren + // Update if (data["id.provider"] != "-") { var input = content.createInput("button", "update", "{{.button.update}}"); input.setAttribute('onclick', 'javascript: savePopupData("xmltv", "' + id + '", false, 1)'); content.addInteraction(input); } - // Speichern + // Save var input = content.createInput("button", "save", "{{.button.save}}"); input.setAttribute('onclick', 'javascript: savePopupData("xmltv", "' + id + '", false, 0)'); content.addInteraction(input); break; case "users": content.createHeadline("{{.mainMenu.item.users}}"); - // Benutzername + // User name var dbKey = "username"; var input = content.createInput("text", dbKey, data[dbKey]); input.setAttribute("placeholder", "{{.users.username.placeholder}}"); content.appendRow("{{.users.username.title}}", input); - // Neues Passwort + // New Parssword var dbKey = "password"; var input = content.createInput("password", dbKey, ""); input.setAttribute("placeholder", "{{.users.password.placeholder}}"); content.appendRow("{{.users.password.title}}", input); - // Bestätigung + // Confirmation var dbKey = "confirm"; var input = content.createInput("password", dbKey, ""); input.setAttribute("placeholder", "{{.users.confirm.placeholder}}"); content.appendRow("{{.users.confirm.title}}", input); - // Berechtigung WEB + // Authentication WEB var dbKey = "authentication.web"; var input = content.createCheckbox(dbKey); input.checked = data[dbKey]; @@ -1207,47 +1207,47 @@ function openPopUp(dataType, element) { input.setAttribute("onclick", "javascript: return false"); } content.appendRow("{{.users.web.title}}", input); - // Berechtigung PMS + // Authentication PMS var dbKey = "authentication.pms"; var input = content.createCheckbox(dbKey); input.checked = data[dbKey]; content.appendRow("{{.users.pms.title}}", input); - // Berechtigung M3U + // Authentication M3U var dbKey = "authentication.m3u"; var input = content.createCheckbox(dbKey); input.checked = data[dbKey]; content.appendRow("{{.users.m3u.title}}", input); - // Berechtigung XML + // Authentication XML var dbKey = "authentication.xml"; var input = content.createCheckbox(dbKey); input.checked = data[dbKey]; content.appendRow("{{.users.xml.title}}", input); - // Berechtigung API + // Authentication API var dbKey = "authentication.api"; var input = content.createCheckbox(dbKey); input.checked = data[dbKey]; content.appendRow("{{.users.api.title}}", input); - // Interaktion + // Interaction content.createInteraction(); - // Löschen + // Delete if (data["defaultUser"] != true && id != "-") { var input = content.createInput("button", "delete", "{{.button.delete}}"); input.className = "delete"; input.setAttribute('onclick', 'javascript: savePopupData("' + dataType + '", "' + id + '", true, 0)'); content.addInteraction(input); } - // Abbrechen + // Abort var input = content.createInput("button", "cancel", "{{.button.cancel}}"); input.setAttribute("onclick", 'javascript: showElement("popup", false);'); content.addInteraction(input); - // Speichern + // Save var input = content.createInput("button", "save", "{{.button.save}}"); input.setAttribute("onclick", 'javascript: savePopupData("' + dataType + '", "' + id + '", "false");'); content.addInteraction(input); break; case "mapping": content.createHeadline("{{.mainMenu.item.mapping}}"); - // Aktiv + // Active var dbKey = "x-active"; var input = content.createCheckbox(dbKey); input.checked = data[dbKey]; @@ -1255,7 +1255,7 @@ function openPopUp(dataType, element) { //input.setAttribute("onchange", "javascript: this.className = 'changed'") input.setAttribute("onchange", "javascript: toggleChannelStatus('" + id + "', this)"); content.appendRow("{{.mapping.active.title}}", input); - // Kanalname + // Channel name var dbKey = "x-name"; var input = content.createInput("text", dbKey, data[dbKey]); input.setAttribute("onchange", "javascript: this.className = 'changed'"); @@ -1265,13 +1265,13 @@ function openPopUp(dataType, element) { } content.appendRow("{{.mapping.channelName.title}}", input); content.description(data["name"]); - // Beschreibung + // Description var dbKey = "x-description"; var input = content.createInput("text", dbKey, data[dbKey]); input.setAttribute("placeholder", "{{.mapping.description.placeholder}}"); input.setAttribute("onchange", "javascript: this.className = 'changed'"); content.appendRow("{{.mapping.description.title}}", input); - // Aktualisierung des Kanalnamens + // Update the channel name if (data.hasOwnProperty("_uuid.key")) { if (data["_uuid.key"] != "") { var dbKey = "x-update-channel-name"; @@ -1281,27 +1281,27 @@ function openPopUp(dataType, element) { content.appendRow("{{.mapping.updateChannelName.title}}", input); } } - // Logo URL (Kanal) + // Logo URL (Channel) var dbKey = "tvg-logo"; var input = content.createInput("text", dbKey, data[dbKey]); input.setAttribute("onchange", "javascript: this.className = 'changed'"); input.setAttribute("id", "channel-icon"); content.appendRow("{{.mapping.channelLogo.title}}", input); - // Aktualisierung des Kanallogos + // Channel logo update var dbKey = "x-update-channel-icon"; var input = content.createCheckbox(dbKey); input.checked = data[dbKey]; input.setAttribute("id", "update-icon"); input.setAttribute("onchange", "javascript: this.className = 'changed'; changeChannelLogo('" + id + "');"); content.appendRow("{{.mapping.updateChannelLogo.title}}", input); - // Erweitern der EPG Kategorie + // Expand EPG category var dbKey = "x-category"; var text = ["-", "Kids (Emby only)", "News", "Movie", "Series", "Sports"]; var values = ["", "Kids", "News", "Movie", "Series", "Sports"]; var select = content.createSelect(text, values, data[dbKey], dbKey); select.setAttribute("onchange", "javascript: this.className = 'changed'"); content.appendRow("{{.mapping.epgCategory.title}}", select); - // M3U Gruppentitel + // M3U group title var dbKey = "x-group-title"; var input = content.createInput("text", dbKey, data[dbKey]); input.setAttribute("onchange", "javascript: this.className = 'changed'"); @@ -1309,7 +1309,7 @@ function openPopUp(dataType, element) { if (data["group-title"] != undefined) { content.description(data["group-title"]); } - // XMLTV Datei + // XMLTV file var dbKey = "x-xmltv-file"; var xmlFile = data[dbKey]; var xmltv = new XMLTVFile(); @@ -1335,17 +1335,17 @@ function openPopUp(dataType, element) { input.setAttribute("placeholder", "{{.mapping.timeshift.placeholder}}"); input.setAttribute("id", "timeshift"); content.appendRow("{{.mapping.timeshift.title}}", input); - // Interaktion + // Interaction content.createInteraction(); - // Logo hochladen + // Upload logo var input = content.createInput("button", "cancel", "{{.button.uploadLogo}}"); input.setAttribute("onclick", 'javascript: uploadLogo();'); content.addInteraction(input); - // Abbrechen + // Abort var input = content.createInput("button", "cancel", "{{.button.cancel}}"); input.setAttribute("onclick", 'javascript: showElement("popup", false);'); content.addInteraction(input); - // Fertig + // Finished var ids = []; ids = getAllSelectedChannels(); if (ids.length == 0) { @@ -1470,7 +1470,7 @@ function checkXmltvChannel(id, element, xmlFile) { checkbox.checked = bool; checkbox.className = "changed"; console.log(xmlFile); - // Kanallogo aktualisieren + // Update channel logo /* updateLogo = (document.getElementById("update-icon") as HTMLInputElement).checked console.log(updateLogo); diff --git a/html/js/settings_ts.js b/html/js/settings_ts.js index b601752..07e05e5 100644 --- a/html/js/settings_ts.js +++ b/html/js/settings_ts.js @@ -16,7 +16,7 @@ class SettingsCategory { var content = new PopupContent(); var data = SERVER["settings"][settingsKey]; switch (settingsKey) { - // Texteingaben + // Text inputs case "update": var tdLeft = document.createElement("TD"); tdLeft.innerHTML = "{{.settings.update.title}}" + ":"; @@ -116,7 +116,7 @@ class SettingsCategory { setting.appendChild(tdLeft); setting.appendChild(tdRight); break; - // Checkboxen + // Checkboxes case "authentication.web": var tdLeft = document.createElement("TD"); tdLeft.innerHTML = "{{.settings.authenticationWEB.title}}" + ":"; @@ -413,7 +413,7 @@ class SettingsCategoryItem extends SettingsCategory { var settingsKeys = this.settingsKeys; var doc = document.getElementById(this.DocumentID); doc.appendChild(headline); - // Tabelle für die Kategorie erstellen + // Create a table for the category var table = document.createElement("TABLE"); var keys = settingsKeys.split(","); keys.forEach(settingsKey => { @@ -478,7 +478,7 @@ function saveSettings() { case "SELECT": name = settings[i].name; value = settings[i].value; - // Wenn der Wert eine Zahl ist, wird dieser als Zahl gespeichert + // If the value is a number, store it as a number if (isNaN(value)) { newSettings[name] = value; } diff --git a/src/buffer.go b/src/buffer.go index 40c3bdc..e6f3cbb 100644 --- a/src/buffer.go +++ b/src/buffer.go @@ -385,11 +385,11 @@ func bufferingStream(playlistID, streamingURL, channelName string, w http.Respon time.Sleep(time.Duration(100) * time.Millisecond) } - } // Ende Loop 2 + } // End of Loop 2 } else { - // Stream nicht vorhanden + // Stream not available killClientConnection(streamID, stream.PlaylistID, false) showInfo(fmt.Sprintf("Streaming Status:Playlist: %s - Tuner: %d / %d", playlist.PlaylistName, len(playlist.Streams), playlist.Tuner)) return @@ -736,7 +736,7 @@ func connectToStreamingServer(streamID int, playlistID string) { defer resp.Body.Close() - // HTTP Status überprüfen, bei Fehlern wird der Stream beendet + // Check HTTP Status, in case of errors the stream is terminated var contentType = resp.Header.Get("Content-Type") var httpStatusCode = resp.StatusCode var httpStatusInfo = fmt.Sprintf("HTTP Response Status [%d] %s", httpStatusCode, http.StatusText(resp.StatusCode)) @@ -1024,9 +1024,9 @@ func connectToStreamingServer(streamID int, playlistID string) { resp.Body.Close() - } // Ende for loop + } // End for loop - } // Ende BufferInformation + } // End of BufferInformation } @@ -1125,7 +1125,7 @@ func parseM3U8(stream *ThisStream) (err error) { var parseURL = func(line string, segment *Segment) { - // Prüfen ob die Adresse eine gültige URL ist (http://... oder /path/to/stream) + // Check if the address is a valid URL (http://... or /path/to/stream) _, err := url.ParseRequestURI(line) if err == nil { @@ -1133,16 +1133,16 @@ func parseM3U8(stream *ThisStream) (err error) { u, _ := url.Parse(line) if len(u.Host) == 0 { - // Adresse enthällt nicht die Domain, Redirect wird der Adresse hinzugefügt + // Check whether the domain is included in the address segment.URL = stream.URLStreamingServer + line } else { - // Domain in der Adresse enthalten + // Domain included in the address segment.URL = line } } else { - // keine URL, sondern ein Dateipfad (media/file-01.ts) + // not URL, but a file path (media/file-01.ts) var serverURLPath = strings.Replace(stream.M3U8URL, path.Base(stream.M3U8URL), line, -1) segment.URL = serverURLPath @@ -1195,7 +1195,7 @@ func parseM3U8(stream *ThisStream) (err error) { } - // Segment mit TS Stream + // Segment with TS Stream if segment.Duration > 0 && line[0:1] != "#" { parseURL(line, &segment) @@ -1239,7 +1239,7 @@ func parseM3U8(stream *ThisStream) (err error) { noNewSegment = false stream.LastSequence = segment.Sequence - // Stream ist vom Typ VOD. Es muss das erste Segment der M3U8 Playlist verwendet werden. + // Stream is of type VOD. The first segment of the M3U8 playlist must be used. if strings.ToUpper(segment.PlaylistType) == "VOD" { break } @@ -1341,7 +1341,7 @@ func switchBandwidth(stream *ThisStream) (err error) { return } -// Buffer mit FFMPEG +// Buffer with FFMPEG func thirdPartyBuffer(streamID int, playlistID string) { if p, ok := BufferInformation.Load(playlistID); ok { diff --git a/src/compression.go b/src/compression.go index ba76626..83b19c5 100644 --- a/src/compression.go +++ b/src/compression.go @@ -127,7 +127,7 @@ func extractGZIP(gzipBody []byte, fileSource string) (body []byte, err error) { var r io.Reader r, err = gzip.NewReader(b) if err != nil { - // Keine gzip Datei + // Not a gzip file body = gzipBody err = nil return diff --git a/src/internal/imgcache/cache.go b/src/internal/imgcache/cache.go index 0337dcc..9a2f3ce 100644 --- a/src/internal/imgcache/cache.go +++ b/src/internal/imgcache/cache.go @@ -30,7 +30,7 @@ type imageFunc struct { Remove func() } -// New : New cahce +// New : New cache func New(path, chacheURL string, caching bool) (c *Cache, err error) { c = &Cache{} diff --git a/src/internal/m3u-parser/xteve_m3uParser.go b/src/internal/m3u-parser/xteve_m3uParser.go index 79641b3..db0c3be 100755 --- a/src/internal/m3u-parser/xteve_m3uParser.go +++ b/src/internal/m3u-parser/xteve_m3uParser.go @@ -24,7 +24,7 @@ func MakeInterfaceFromM3U(byteStream []byte) (allChannels []interface{}, err err var lines = strings.Split(strings.Replace(channel, "\r\n", "\n", -1), "\n") - // Zeilen mit # und leerer Zeilen entfernen + // Remove lines with # and blank lines for i := len(lines) - 1; i >= 0; i-- { if len(lines[i]) == 0 || lines[i][0:1] == "#" { @@ -47,7 +47,7 @@ func MakeInterfaceFromM3U(byteStream []byte) (allChannels []interface{}, err err default: var value string - // Alle Parameter parsen + // Parse all parameters var p = regexp.MustCompile(exceptForParameter) var streamParameter = p.FindAllString(line, -1) @@ -60,7 +60,7 @@ func MakeInterfaceFromM3U(byteStream []byte) (allChannels []interface{}, err err if len(parameter) == 2 { - // TVG Key als Kleinbuchstaben speichern + // Set TVG Key as lowercase switch strings.Contains(parameter[0], "tvg") { case true: @@ -70,7 +70,7 @@ func MakeInterfaceFromM3U(byteStream []byte) (allChannels []interface{}, err err } - // URL's nicht an die Filterfunktion übergeben + // URL's are not passed to the filter function if !strings.Contains(parameter[1], "://") && len(parameter[1]) > 0 { value = value + parameter[1] + " " } @@ -79,7 +79,7 @@ func MakeInterfaceFromM3U(byteStream []byte) (allChannels []interface{}, err err } - // Kanalnamen parsen + // Parse channel names n := regexp.MustCompile(exceptForChannelName) var name = n.FindAllString(line, 1) @@ -100,7 +100,7 @@ func MakeInterfaceFromM3U(byteStream []byte) (allChannels []interface{}, err err channelName = strings.TrimRight(channelName, " ") - // Kanäle ohne Namen werden augelassen + // Channels without names are skipped if len(channelName) == 0 { return } @@ -116,7 +116,7 @@ func MakeInterfaceFromM3U(byteStream []byte) (allChannels []interface{}, err err } - // Nach eindeutiger ID im Stream suchen + // Search for a unique ID in the stream for key, value := range stream { if !strings.Contains(strings.ToLower(key), "tvg-id") { diff --git a/src/internal/up2date/client/client.go b/src/internal/up2date/client/client.go index 13eeccc..433db84 100755 --- a/src/internal/up2date/client/client.go +++ b/src/internal/up2date/client/client.go @@ -61,7 +61,7 @@ func serverRequest() (err error) { jsonByte, err := json.MarshalIndent(Updater, "", " ") if err == nil { - // Serververbindung prüfen + // Check server connection u, err := url.Parse(Updater.URL) if err != nil { return err diff --git a/src/update.go b/src/update.go index edd2418..e3dcf59 100644 --- a/src/update.go +++ b/src/update.go @@ -30,7 +30,7 @@ func BinaryUpdate() (err error) { switch System.Branch { - // Update von GitHub + // Update from GitHub case "master", "beta": var gitInfo = fmt.Sprintf("%s/%s/info.json?raw=true", System.Update.Git, System.Branch) @@ -245,7 +245,7 @@ checkVersion: } } else { - // settings.json ist zu alt (älter als Version 1.4.4) + // settings.json is too old (older than Version 1.4.4) err = errors.New(getErrMsg(1013)) } diff --git a/src/webUI.go b/src/webUI.go index 7ed2f33..2013982 100644 --- a/src/webUI.go +++ b/src/webUI.go @@ -4,38 +4,38 @@ var webUI = make(map[string]interface{}) func loadHTMLMap() { - webUI["html/configuration.html"] = "PCFkb2N0eXBlIGh0bWw+DQo8aHRtbD4NCiAgPGhlYWQ+DQogICAgPG1ldGEgY2hhcnNldD0idXRmLTgiPg0KICAgIDxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgsIGluaXRpYWwtc2NhbGU9MS4wIiAvPiANCiAgICA8dGl0bGU+eFRlVmU8L3RpdGxlPg0KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iY3NzL3NjcmVlbi5jc3MiIHR5cGU9InRleHQvY3NzIj4NCiAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9ImNzcy9iYXNlLmNzcyIgdHlwZT0idGV4dC9jc3MiPg0KICAgIDxzY3JpcHQgbGFuZ3VhZ2U9ImphdmFzY3JpcHQiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJqcy9jb25maWd1cmF0aW9uX3RzLmpzIj48L3NjcmlwdD4NCiAgICA8c2NyaXB0IGxhbmd1YWdlPSJqYXZhc2NyaXB0IiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ianMvbmV0d29ya190cy5qcyI+PC9zY3JpcHQ+DQogICAgPHNjcmlwdCBsYW5ndWFnZT0iamF2YXNjcmlwdCIgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9ImpzL21lbnVfdHMuanMiPjwvc2NyaXB0Pg0KICAgIDxzY3JpcHQgbGFuZ3VhZ2U9ImphdmFzY3JpcHQiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJqcy9zZXR0aW5nc190cy5qcyI+PC9zY3JpcHQ+DQogICAgPHNjcmlwdCBsYW5ndWFnZT0iamF2YXNjcmlwdCIgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9ImpzL2Jhc2VfdHMuanMiPjwvc2NyaXB0Pg0KICA8L2hlYWQ+DQoNCiAgICA8Ym9keSBvbmxvYWQ9ImphdmFzY3JpcHQ6IHJlYWR5Rm9yQ29uZmlndXJhdGlvbigwKTsiPg0KICAgICAgICAgIA0KICAgICAgPGRpdiBpZD0ibG9hZGluZyIgY2xhc3M9ImJsb2NrIj4NCiAgICAgICAgPGRpdiBjbGFzcz0ibG9hZGVyIj48L2Rpdj4NCiAgICAgIDwvZGl2Pg0KDQogICAgICA8ZGl2IGlkPSJoZWFkZXIiIGNsYXNzPSJpbWdDZW50ZXIiPjwvZGl2Pg0KICAgICAgPGRpdiBpZD0iYm94Ij4NCiAgICAgICAgDQogICAgICAgIDx0YWJsZSBpZD0iY2xpZW50SW5mbyIgY2xhc3M9InZpc2libGUiPg0KICAgICAgICAgIDx0cj4NCiAgICAgICAgICAgIDx0ZCBjbGFzcz0idGRLZXkiPlZlcnNpb246PC90ZD4NCiAgICAgICAgICAgIDx0ZCBpZD0idmVyc2lvbiIgY2xhc3M9InRkVmFsIj4mbmJzcDs8L3RkPg0KICAgICAgICAgICAgPHRkIGNsYXNzPSJ0ZEtleSI+T1M6PC90ZD4NCiAgICAgICAgICAgIDx0ZCBpZD0ib3MiIGNsYXNzPSJ0ZFZhbCI+Jm5ic3A7PC90ZD4NCiAgICAgICAgICA8L3RyPg0KICAgICAgICAgIDx0cj4NCiAgICAgICAgICAgIDx0ZCBjbGFzcz0idGRLZXkiPlVVSUQ6PC90ZD4NCiAgICAgICAgICAgIDx0ZCBpZD0idXVpZCIgY2xhc3M9InRkVmFsIj4mbmJzcDs8L3RkPg0KICAgICAgICAgICAgPHRkIGNsYXNzPSJ0ZEtleSI+QXJjaDo8L3RkPg0KICAgICAgICAgICAgPHRkIGlkPSJhcmNoIiBjbGFzcz0idGRWYWwiPiZuYnNwOzwvdGQ+DQogICAgICAgICAgPC90cj4NCiAgICAgICAgICA8dHI+DQogICAgICAgICAgICA8dGQgY2xhc3M9InRkS2V5Ij5TdHJlYW1zOjwvdGQ+DQogICAgICAgICAgICA8dGQgaWQ9InN0cmVhbXMiIGNsYXNzPSJ0ZFZhbCI+Jm5ic3A7PC90ZD4NCiAgICAgICAgICAgIDx0ZCBjbGFzcz0idGRLZXkiPkRWUjo8L3RkPg0KICAgICAgICAgICAgPHRkIGlkPSJEVlIiIGNsYXNzPSJ0ZFZhbCI+Jm5ic3A7PC90ZD4NCiAgICAgICAgICA8L3RyPg0KICAgICAgICA8L3RhYmxlPg0KICAgICAgICANCiAgICAgICAgPGRpdiBpZD0iaGVhZGxpbmUiPg0KICAgICAgICAgIDxoMSBpZD0iaGVhZC10ZXh0IiBjbGFzcz0iY2VudGVyIj5Db25maWd1cmF0aW9uPC9oMT4gICAgICANCiAgICAgICAgPC9kaXY+DQogICAgICAgIDxwIGlkPSJlcnIiIGNsYXNzPSJlcnJvck1zZyBjZW50ZXIiPjwvcD4gICANCiAgICAgICAgPGRpdiBpZD0iY29udGVudCI+DQogICAgICAgICAgICANCiAgICAgICAgPC9kaXY+DQogICAgICAgIDxkaXYgaWQ9ImJveC1mb290ZXIiPg0KICAgICAgICAgIDxpbnB1dCBpZD0ibmV4dCIgY2xhc3M9IiIgdHlwZT0iYnV0dG9uIiBuYW1lPSJuZXh0IiB2YWx1ZT0iTmV4dCIgb25jbGljaz0iamF2YXNjcmlwdDogc2F2ZVdpemFyZCgpOyI+DQogICAgICAgIDwvZGl2Pg0KICAgICAgPC9kaXY+DQogICAgPC9ib2R5Pg0KPC9odG1sPg==" - webUI["html/img/logo_w_600x200.png"] = "iVBORw0KGgoAAAANSUhEUgAAAlgAAADICAYAAAA0n5+2AAAAAXNSR0IArs4c6QAAAAlwSFlzAAAuIwAALiMBeKU/dgAABCZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IlhNUCBDb3JlIDUuNC4wIj4KICAgPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIgogICAgICAgICAgICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgICAgICAgICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyI+CiAgICAgICAgIDx0aWZmOlJlc29sdXRpb25Vbml0PjI8L3RpZmY6UmVzb2x1dGlvblVuaXQ+CiAgICAgICAgIDx0aWZmOkNvbXByZXNzaW9uPjU8L3RpZmY6Q29tcHJlc3Npb24+CiAgICAgICAgIDx0aWZmOlhSZXNvbHV0aW9uPjMwMDwvdGlmZjpYUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6T3JpZW50YXRpb24+MTwvdGlmZjpPcmllbnRhdGlvbj4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+MzAwPC90aWZmOllSZXNvbHV0aW9uPgogICAgICAgICA8ZXhpZjpQaXhlbFhEaW1lbnNpb24+NjAwPC9leGlmOlBpeGVsWERpbWVuc2lvbj4KICAgICAgICAgPGV4aWY6Q29sb3JTcGFjZT4xPC9leGlmOkNvbG9yU3BhY2U+CiAgICAgICAgIDxleGlmOlBpeGVsWURpbWVuc2lvbj4yMDA8L2V4aWY6UGl4ZWxZRGltZW5zaW9uPgogICAg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" - webUI["html/js/classes_ts.js"] = "dmFyIF9fZXh0ZW5kcyA9ICh0aGlzICYmIHRoaXMuX19leHRlbmRzKSB8fCAoZnVuY3Rpb24gKCkgew0KICAgIHZhciBleHRlbmRTdGF0aWNzID0gZnVuY3Rpb24gKGQsIGIpIHsNCiAgICAgICAgZXh0ZW5kU3RhdGljcyA9IE9iamVjdC5zZXRQcm90b3R5cGVPZiB8fA0KICAgICAgICAgICAgKHsgX19wcm90b19fOiBbXSB9IGluc3RhbmNlb2YgQXJyYXkgJiYgZnVuY3Rpb24gKGQsIGIpIHsgZC5fX3Byb3RvX18gPSBiOyB9KSB8fA0KICAgICAgICAgICAgZnVuY3Rpb24gKGQsIGIpIHsgZm9yICh2YXIgcCBpbiBiKSBpZiAoYi5oYXNPd25Qcm9wZXJ0eShwKSkgZFtwXSA9IGJbcF07IH07DQogICAgICAgIHJldHVybiBleHRlbmRTdGF0aWNzKGQsIGIpOw0KICAgIH07DQogICAgcmV0dXJuIGZ1bmN0aW9uIChkLCBiKSB7DQogICAgICAgIGV4dGVuZFN0YXRpY3MoZCwgYik7DQogICAgICAgIGZ1bmN0aW9uIF9fKCkgeyB0aGlzLmNvbnN0cnVjdG9yID0gZDsgfQ0KICAgICAgICBkLnByb3RvdHlwZSA9IGIgPT09IG51bGwgPyBPYmplY3QuY3JlYXRlKGIpIDogKF9fLnByb3RvdHlwZSA9IGIucHJvdG90eXBlLCBuZXcgX18oKSk7DQogICAgfTsNCn0pKCk7DQp2YXIgTWFpbk1lbnUgPSAvKiogQGNsYXNzICovIChmdW5jdGlvbiAoKSB7DQogICAgZnVuY3Rpb24gTWFpbk1lbnUoKSB7DQogICAgICAgIHRoaXMuRG9jdW1lbnRJRCA9ICJtYWluLW1lbnUiOw0KICAgICAgICB0aGlzLkhUTUxUYWcgPSAiTEkiOw0KICAgIH0NCiAgICBNYWluTWVudS5wcm90b3R5cGUuY3JlYXRlID0gZnVuY3Rpb24gKCkgew0KICAgICAgICBjb25zb2xlLmxvZyh0aGlzLkRvY3VtZW50SUQpOw0KICAgIH07DQogICAgcmV0dXJuIE1haW5NZW51Ow0KfSgpKTsNCnZhciBNYWluTWVudUl0ZW0gPSAvKiogQGNsYXNzICovIChmdW5jdGlvbiAoX3N1cGVyKSB7DQogICAgX19leHRlbmRzKE1haW5NZW51SXRlbSwgX3N1cGVyKTsNCiAgICBmdW5jdGlvbiBNYWluTWVudUl0ZW0oKSB7DQogICAgICAgIHJldHVybiBfc3VwZXIgIT09IG51bGwgJiYgX3N1cGVyLmFwcGx5KHRoaXMsIGFyZ3VtZW50cykgfHwgdGhpczsNCiAgICB9DQogICAgTWFpbk1lbnVJdGVtLnByb3RvdHlwZS5jcmVhdGUyID0gZnVuY3Rpb24gKCkgew0KICAgICAgICB2YXIgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQodGhpcy5IVE1MVGFnKTsNCiAgICAgICAgZWxlbWVudC5pbm5lclRleHQgPSB0aGlzLlZhbHVlOw0KICAgICAgICBjb25zb2xlLmxvZyhlbGVtZW50KTsNCiAgICB9Ow0KICAgIHJldHVybiBNYWluTWVudUl0ZW07DQp9KE1haW5NZW51KSk7DQpmdW5jdGlvbiBwYWdlUmVhZHkoKSB7DQogICAgdmFyIGl0ZW0gPSBuZXcgTWFpbk1lbnVJdGVtKCk7DQogICAgaXRlbS5WYWx1ZSA9ICJUZXN0IjsNCiAgICBpdGVtLmNyZWF0ZTIoKTsNCn0NCg==" - webUI["html/img/log.png"] = "iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAAAXNSR0IArs4c6QAAAAlwSFlzAAAsSwAALEsBpT2WqQAABCRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IlhNUCBDb3JlIDUuNC4wIj4KICAgPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIgogICAgICAgICAgICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgICAgICAgICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyI+CiAgICAgICAgIDx0aWZmOlJlc29sdXRpb25Vbml0PjI8L3RpZmY6UmVzb2x1dGlvblVuaXQ+CiAgICAgICAgIDx0aWZmOkNvbXByZXNzaW9uPjU8L3RpZmY6Q29tcHJlc3Npb24+CiAgICAgICAgIDx0aWZmOlhSZXNvbHV0aW9uPjI4ODwvdGlmZjpYUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6T3JpZW50YXRpb24+MTwvdGlmZjpPcmllbnRhdGlvbj4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+Mjg4PC90aWZmOllSZXNvbHV0aW9uPgogICAgICAgICA8ZXhpZjpQaXhlbFhEaW1lbnNpb24+NTA8L2V4aWY6UGl4ZWxYRGltZW5zaW9uPgogICAgICAgICA8ZXhpZjpDb2xvclNwYWNlPjE8L2V4aWY6Q29sb3JTcGFjZT4KICAgICAgICAgPGV4aWY6UGl4ZWxZRGltZW5zaW9uPjUwPC9leGlmOlBpeGVsWURpbWVuc2lvbj4KICAgICAgICAgPGRjOnN1YmplY3Q+CiAgICAgICAgICAgIDxyZGY6QmFnLz4KICAgICAgICAgPC9kYzpzdWJqZWN0PgogICAgICAgICA8eG1wOk1vZGlmeURhdGU+MjAxOC0xMC0xNFQxMToxMDo0MjwveG1wOk1vZGlmeURhdGU+CiAgICAgICAgIDx4bXA6Q3JlYXRvclRvb2w+UGl4ZWxtYXRvciAzLjM8L3htcDpDcmVhdG9yVG9vbD4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgIDwvcmRmOlJERj4KPC94OnhtcG1ldGE+CkP32mEAAANASURBVGgF7ZlPiE1RHMffw1AYhiL5k1HEijJiYaFZiHoyFspW2RFRkkSZGgtFWJIwi9FYmo0VOywkKTbKgjSlWcifRCPX51dv6s2d33md77vvXjfmV9859/7u93x/v98959x73p1KRbAkSargAhgDH0E/qIYkuHYEvAPGvwbmNOEerXM/0Q6BRSFuZj/ix0DaDnvCkGppIucDAe4OhzvkcUO+GaELAf8ux7/b8Zlrr+Pvc3zm6nX8NccXdKmFLHaUPJ/Ruhyu5zNap8Nd6PiCLrUQTyi0Rjy/5/M0Zd+smB7M32XwtgBr07aC6yfSTs7XO77OALfH4VbgHsD/HLytVquJx4nyIdQFBsHftscksK5Z0sGhpuN8Or4Aa5sJFHjtO7G2MjKvvZjN1sglOpSlCMt9LrDZ4S4Hd0Qg24vrK+gAZbPtjMqTdFKhEdkIsYxFWP720JlioUK6pzDL41jtpRIqxOOWxecuB3fhRGT8E85YBK8VygI6GSRTCxlH3TaJgyw4O2678aCxO94LbNPovYDdmOrUukIBN/MqwjJEOwGPOHR31W4VONVCLEBR9lAJpBbSrYhn5K5R+quFnGUOr1ICtMIlxjz6XVb6qot9JeKvCPSAdlQJJHDtd8hOIN0wtRDLxx6Ntr0ulalTq1TJNyYzXUjj3SjD8X87Iva7uR8s5+2bi6FtX1oOgi8g2tSn1g2yPx+t3gIR/c90s1+C1vuO/YkxdWrdjxFtE2dE0VELWaqIZ+QuUfqrhZxmyKUvgEoyE1xizOR4YOI8plXXyAZEbYsyTJvXFsUW+x6wGUSbWogJ237rZHSEgojq1CooLT3MdCH6Pcu3xz8zIq0s9lvc2+sgz6dWH/rnQPB/jlybZGoh99hCHJqk0P6TD0jaI/4b7dVYeXVq2bemokyKpRZiHwWKMimWWshxhryjoEpOKXHUNbIN8WcUc5s2r8Vue7l9oAaiTS3EhDeB6EUYnUlGojq1MobLr3uokB/5hcys7OYWKuRl5nD5Cbi5uYXw0ntPHoay2S8Seuol5RZSJ0r/n/DEc/BdrN9kTZrH7BkwDspgwyQxW6uggU3nHnAXvAG/QZE2SrARsL8hJffwDxM0mNDPvT8IAAAAAElFTkSuQmCC" - webUI["html/img/m3u.png"] = "iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAAAXNSR0IArs4c6QAAAAlwSFlzAAAsSwAALEsBpT2WqQAABCRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IlhNUCBDb3JlIDUuNC4wIj4KICAgPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIgogICAgICAgICAgICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgICAgICAgICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyI+CiAgICAgICAgIDx0aWZmOlJlc29sdXRpb25Vbml0PjI8L3RpZmY6UmVzb2x1dGlvblVuaXQ+CiAgICAgICAgIDx0aWZmOkNvbXByZXNzaW9uPjU8L3RpZmY6Q29tcHJlc3Npb24+CiAgICAgICAgIDx0aWZmOlhSZXNvbHV0aW9uPjI4ODwvdGlmZjpYUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6T3JpZW50YXRpb24+MTwvdGlmZjpPcmllbnRhdGlvbj4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+Mjg4PC90aWZmOllSZXNvbHV0aW9uPgogICAgICAgICA8ZXhpZjpQaXhlbFhEaW1lbnNpb24+NTA8L2V4aWY6UGl4ZWxYRGltZW5zaW9uPgogICAgICAgICA8ZXhpZjpDb2xvclNwYWNlPjE8L2V4aWY6Q29sb3JTcGFjZT4KICAgICAgICAgPGV4aWY6UGl4ZWxZRGltZW5zaW9uPjUwPC9leGlmOlBpeGVsWURpbWVuc2lvbj4KICAgICAgICAgPGRjOnN1YmplY3Q+CiAgICAgICAgICAgIDxyZGY6QmFnLz4KICAgICAgICAgPC9kYzpzdWJqZWN0PgogICAgICAgICA8eG1wOk1vZGlmeURhdGU+MjAxOC0wNy0yOFQxOTowNzozMTwveG1wOk1vZGlmeURhdGU+CiAgICAgICAgIDx4bXA6Q3JlYXRvclRvb2w+UGl4ZWxtYXRvciAzLjM8L3htcDpDcmVhdG9yVG9vbD4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgIDwvcmRmOlJERj4KPC94OnhtcG1ldGE+CumjVbcAAAGWSURBVGgF7VoxTgJRFGTFaGKBFnbEcABjb0fiBego7D2ABYmn8ARKRWFNQ6gx4QRQGWJJoY2VhXGdl7Dkh7Dsx3ns3yXvJ5P97L6d92bmhwYqlcWK43gK5L2enP51NP8F7pN721wPnOITZx9qG6HxI8QIZO+9XCHeL+VQKKm8QMyxb6+iCpH528AQYs58xIQWknV8mhDxCjEXWWJCC8maT55fAmOIudpUXAYhMn8dGEHMTZqYsgiR+U+BAcTcrhNTJiEy/xHQg5jOqpjD1RsBP3+id8u3P8TUoij6SuoLIwRDfWOofjLYtteyHa1UfcvvcUT1jqpGauVuHnyAdragjv/TAkley3uhj9Y5ZhDQa2+Olgmhz4IygSWibChNZ4nQFioTWCLKhtJ0lghtoTKBJaJsKE1nidAWKhNYIsqG0nSWCG2hMoElomwoTWeJ0BYqE1giyobSdJYIbaEygSWibChNZ4nQFioTWCLKhtJ0biJzmi1/guXMrpDn/OegO3bXMuAH0TtgAvwARV3y57Q34AGoJkL+AErKZ9cqbH7AAAAAAElFTkSuQmCC" - webUI["html/img/users.png"] = "iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAAAXNSR0IArs4c6QAAAAlwSFlzAAAsSwAALEsBpT2WqQAABCRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IlhNUCBDb3JlIDUuNC4wIj4KICAgPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIgogICAgICAgICAgICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgICAgICAgICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyI+CiAgICAgICAgIDx0aWZmOlJlc29sdXRpb25Vbml0PjI8L3RpZmY6UmVzb2x1dGlvblVuaXQ+CiAgICAgICAgIDx0aWZmOkNvbXByZXNzaW9uPjU8L3RpZmY6Q29tcHJlc3Npb24+CiAgICAgICAgIDx0aWZmOlhSZXNvbHV0aW9uPjI4ODwvdGlmZjpYUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6T3JpZW50YXRpb24+MTwvdGlmZjpPcmllbnRhdGlvbj4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+Mjg4PC90aWZmOllSZXNvbHV0aW9uPgogICAgICAgICA8ZXhpZjpQaXhlbFhEaW1lbnNpb24+NTA8L2V4aWY6UGl4ZWxYRGltZW5zaW9uPgogICAgICAgICA8ZXhpZjpDb2xvclNwYWNlPjE8L2V4aWY6Q29sb3JTcGFjZT4KICAgICAgICAgPGV4aWY6UGl4ZWxZRGltZW5zaW9uPjUwPC9leGlmOlBpeGVsWURpbWVuc2lvbj4KICAgICAgICAgPGRjOnN1YmplY3Q+CiAgICAgICAgICAgIDxyZGY6QmFnLz4KICAgICAgICAgPC9kYzpzdWJqZWN0PgogICAgICAgICA8eG1wOk1vZGlmeURhdGU+MjAxOC0wOC0zMFQxNzowODozODwveG1wOk1vZGlmeURhdGU+CiAgICAgICAgIDx4bXA6Q3JlYXRvclRvb2w+UGl4ZWxtYXRvciAzLjM8L3htcDpDcmVhdG9yVG9vbD4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgIDwvcmRmOlJERj4KPC94OnhtcG1ldGE+CjU01MMAAANJSURBVGgF1ZnLaxNRFMYz2rpoFbW+SCsihaJQRMT6rPhAXAq6c+HChSguRFd1oRtd+A/oWhQ3oiiWFB91UbqRqlXXgoIIQhFbQTTQao2/GzLDZEjIPefO7SQHPjJz55zzfd/MZCa5N8h5ilKptJvWp8FekAed4Bv4Cj6Dh2A4CIJZPpszMHEV2MQ0SZdB0DROENMHjoEzQBoFCpZnbgYR58E/qfpE/kv2F2dmBvJ94G9ClHb3SiZGUBuASa3qGnVzjG3RmFmkKYrVHGB7e2zfdbOdBhc1TVyNnNSQNqg5wVURf/FdjRxpIEpzuIOio9JCtRHO2hrINkgJLfPFt6vaCII2WYrSpPVJi1RGuBrmTbxeSibIX5j3CUauAfOo9BXzNH4nMJ5TXREI1gHzqPQVRtc2zCyxJdAaGbclcMj7zi/jOdt6rZFhCH7akijznknqVEY4U78heSAhUuTekNSojFQIChIiYe57TtZrSY2LkecQzUjIBLljglz3VJ4qg+AXSDNGabbWXZ2wA6Qjabqg136hhHK6y60V8o2EGyl8/qHHpKZPGkYeQzyvIa9RM86XvFhjvOGQsxGIp2B50ZDJLuG2XZqnLO5rM3viGh9o0OZJon1bRLxxdHLcns1jJiYOAu2U0D2P0uStMXJdcVU+UdMlZ/NYgaA28ERg5ge5/R4l6VsjrANMWJiZJWeXnqm60vnxW90ul6u8ByaS4zX2i+S+qjGuGkrdSEWFzT1vlhlSC19Gui0UtnNriSfi6vX1ZWRjPcLEeGrzYqkb4SyvQGxvQnC93cF6BzIfx8gpYBsfSdycuei4AAR1ggugCCRh1lbugIF4vwXbhtisjfSDc+ARSOOf4lv6mNWv1VIj1ouQNF9K851gDzArtWbV1uYxS5o4zB+sp+AuKPC+cVv5RXwPuATMmUpreY1Wopgh+ybYKj4dFHWB+8DMwTZTjCHmsJUhEgfAF9DMcQtx9V8dHMyDqWZ2ENM2FL8yVV92kkY56GM5Lc6Z1vY0jbp5EJQnuqPLg4kdLWTCnIxVIJoDi4wweNYcbbGIfuLEjRxqMRNGbvTvsmyE22oZg70taKQn1BxekXw40GKfK0O9oZHsJ8ZCRbLPaI3xP7YzeQoHxWckAAAAAElFTkSuQmCC" - webUI["html/index.html"] = "PCFkb2N0eXBlIGh0bWw+DQo8aHRtbD4NCiAgPGhlYWQ+DQogICAgPG1ldGEgY2hhcnNldD0idXRmLTgiPg0KICAgIDwhLS0tDQogICAgPG1ldGEgbmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9IndpZHRoPWRldmljZS13aWR0aCwgaW5pdGlhbC1zY2FsZT0xLjAiIC8+IA0KICAgIC0tPg0KICAgIDx0aXRsZT54VGVWZTwvdGl0bGU+DQogICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJjc3Mvc2NyZWVuLmNzcyIgdHlwZT0idGV4dC9jc3MiPg0KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iY3NzL2Jhc2UuY3NzIiB0eXBlPSJ0ZXh0L2NzcyI+DQoNCiAgICA8c2NyaXB0IGxhbmd1YWdlPSJqYXZhc2NyaXB0IiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ianMvbmV0d29ya190cy5qcyI+PC9zY3JpcHQ+DQogICAgPHNjcmlwdCBsYW5ndWFnZT0iamF2YXNjcmlwdCIgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9ImpzL21lbnVfdHMuanMiPjwvc2NyaXB0Pg0KICAgIDxzY3JpcHQgbGFuZ3VhZ2U9ImphdmFzY3JpcHQiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJqcy9zZXR0aW5nc190cy5qcyI+PC9zY3JpcHQ+DQogICAgPHNjcmlwdCBsYW5ndWFnZT0iamF2YXNjcmlwdCIgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9ImpzL2xvZ3NfdHMuanMiPjwvc2NyaXB0Pg0KICAgIDxzY3JpcHQgbGFuZ3VhZ2U9ImphdmFzY3JpcHQiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJqcy9iYXNlX3RzLmpzIj48L3NjcmlwdD4NCg0KICA8L2hlYWQ+DQoNCiAgICA8Ym9keSBvbmxvYWQ9ImphdmFzY3JpcHQ6IFBhZ2VSZWFkeSgpOyI+DQoNCiAgICAgIDxkaXYgaWQ9ImxvYWRpbmciIGNsYXNzPSJub25lIj4NCiAgICAgICAgPGRpdiBjbGFzcz0ibG9hZGVyIj48L2Rpdj4NCiAgICAgIDwvZGl2Pg0KDQogICAgICA8ZGl2IGlkPSJwb3B1cCIgY2xhc3M9Im5vbmUiPg0KICAgICAgICA8ZGl2IGlkPSJwb3B1cC1jdXN0b20iPjwvZGl2Pg0KICAgICAgPC9kaXY+DQoNCiAgICAgIDxkaXYgaWQ9ImxheW91dCI+DQoNCiAgICAgICAgPCEtLQ0KICAgICAgICA8ZGl2IGlkPSJub3RpZmljYXRpb24iPg0KICAgICAgICAgIDxkaXYgY2xhc3M9ImVsZW1lbnQiPg0KICAgICAgICAgICAgPGg1PlhFUEc8L2g1Pg0KICAgICAgICAgICAgPHByZT4xMS4wNS4yMDE5IC0gMjA6MjE8L3ByZT4NCiAgICAgICAgICAgIDxocj4NCiAgICAgICAgICAgIDxwPkhhbGxvIGRhcyBpc3QgZWluIFRlc3QuIFVuZCBub2NoIG1laHIgVGV4dC48L3A+DQogICAgICAgICAgPC9kaXY+DQogICAgICAgIDwvZGl2Pg0KICAgICAgLS0+DQoNCiAgICAgICAgPGRpdiBpZD0ibWVudS13cmFwcGVyIiBjbGFzcz0ibGF5b3V0LWxlZnQiPg0KICAgICAgICAgIDxkaXYgaWQ9ICJicmFuY2giPjwvZGl2Pg0KICAgICAgICAgIDxkaXYgaWQ9ImxvZ28iPjwvZGl2Pg0KICAgICAgICAgIDxuYXYgaWQ9Im1haW4tbWVudSI+PC9uYXY+DQogICAgICAgIDwvZGl2Pg0KDQogICAgICAgIDxkaXYgY2xhc3M9ImxheW91dC1yaWdodCI+DQoNCiAgICAgICAgICA8dGFibGUgaWQ9ImNsaWVudEluZm8iIGNsYXNzPSIiPg0KDQogICAgICAgICAgICA8dHI+DQogICAgICAgICAgICAgIDx0ZCBjbGFzcz0idGRLZXkiPnhUZVZlOjwvdGQ+DQogICAgICAgICAgICAgIDx0ZCBpZD0idmVyc2lvbiIgY2xhc3M9InRkVmFsIj4mbmJzcDs8L3RkPg0KICAgICAgICAgICAgICA8dGQgY2xhc3M9InRkS2V5Ij5PUzo8L3RkPg0KICAgICAgICAgICAgICA8dGQgaWQ9Im9zIiBjbGFzcz0idGRWYWwiPiZuYnNwOzwvdGQ+DQogICAgICAgICAgICAgIDx0ZCBjbGFzcz0idGRLZXkgcGhvbmUiPkRWUiBJUDo8L3RkPg0KICAgICAgICAgICAgICA8dGQgaWQ9IkRWUiIgY2xhc3M9InRkVmFsIHBob25lIj4mbmJzcDs8L3RkPg0KICAgICAgICAgICAgPC90cj4NCg0KICAgICAgICAgICAgPHRyPg0KICAgICAgICAgICAgICA8dGQgY2xhc3M9InRkS2V5Ij5VVUlEOjwvdGQ+DQogICAgICAgICAgICAgIDx0ZCBpZD0idXVpZCIgY2xhc3M9InRkVmFsIj4mbmJzcDs8L3RkPg0KICAgICAgICAgICAgICA8dGQgY2xhc3M9InRkS2V5Ij5BcmNoOjwvdGQ+DQogICAgICAgICAgICAgIDx0ZCBpZD0iYXJjaCIgY2xhc3M9InRkVmFsIj4mbmJzcDs8L3RkPg0KICAgICAgICAgICAgICA8dGQgY2xhc3M9InRkS2V5IHBob25lIj5NM1UgVVJMOjwvdGQ+DQogICAgICAgICAgICAgIDx0ZCBpZD0ibTN1LXVybCIgY2xhc3M9InRkVmFsIHBob25lIj4mbmJzcDs8L3RkPg0KICAgICAgICAgICAgPC90cj4NCg0KICAgICAgICAgICAgPHRyPg0KICAgICAgICAgICAgICA8dGQgY2xhc3M9InRkS2V5Ij5BdmFpbGFibGUgU3RyZWFtczo8L3RkPg0KICAgICAgICAgICAgICA8dGQgaWQ9InN0cmVhbXMiIGNsYXNzPSJ0ZFZhbCI+Jm5ic3A7PC90ZD4NCiAgICAgICAgICAgICAgPHRkIGNsYXNzPSJ0ZEtleSI+RVBHIFNvdXJjZTo8L3RkPg0KICAgICAgICAgICAgICA8dGQgaWQ9ImVwZ1NvdXJjZSIgY2xhc3M9InRkVmFsIj4mbmJzcDs8L3RkPg0KICAgICAgICAgICAgICA8dGQgY2xhc3M9InRkS2V5IHBob25lIj5YRVBHIFVSTDo8L3RkPg0KICAgICAgICAgICAgICA8dGQgaWQ9InhlcGctdXJsIiBjbGFzcz0idGRWYWwgcGhvbmUiPiZuYnNwOzwvdGQ+DQogICAgICAgICAgICA8L3RyPg0KDQogICAgICAgICAgICA8dHI+DQogICAgICAgICAgICAgIDx0ZCBjbGFzcz0idGRLZXkiPlhFUEcgQ2hhbm5lbHM6PC90ZD4NCiAgICAgICAgICAgICAgPHRkIGlkPSJ4ZXBnIiBjbGFzcz0idGRWYWwiPiZuYnNwOzwvdGQ+DQogICAgICAgICAgICAgIDx0ZCBjbGFzcz0idGRLZXkiPkVycm9yczo8L3RkPg0KICAgICAgICAgICAgICA8dGQgaWQ9ImVycm9ycyIgY2xhc3M9InRkVmFsIj4mbmJzcDs8L3RkPg0KICAgICAgICAgICAgICA8dGQgY2xhc3M9InRkS2V5Ij5XYXJuaW5nczo8L3RkPg0KICAgICAgICAgICAgICA8dGQgaWQ9Indhcm5pbmdzIiBjbGFzcz0idGRWYWwiPiZuYnNwOzwvdGQ+DQogICAgICAgICAgICA8L3RyPg0KDQogICAgICAgICAgPC90YWJsZT4NCiAgICAgICAgIA0KICAgICAgICAgIDxkaXYgaWQ9Im15U3RyZWFtc0JveCIgY2xhc3M9Im5vdFZpc2libGUiPg0KDQogICAgICAgICAgICA8ZGl2IGlkPSJhbGxTdHJlYW1zIj4NCiAgICAgICAgICAgICAgPHRhYmxlIGlkPSJhY3RpdmVTdHJlYW1zIj48L3RhYmxlPg0KICAgICAgICAgICAgICA8dGFibGUgaWQ9ImluYWN0aXZlU3RyZWFtcyI+PC90YWJsZT4NCiAgICAgICAgICAgIDwvZGl2Pg0KDQogICAgICAgICAgPC9kaXY+DQogICAgICAgICAgDQogICAgICAgICAgPGRpdiBpZD0iY29udGVudCIgY2xhc3M9IiI+PC9kaXY+DQogICAgICAgICAgICANCiAgICAgICAgPC9kaXY+DQoNCiAgICAgIDwvZGl2Pg0KICAgICAgDQogICAgPC9ib2R5Pg0KICAgIA0KPC9odG1sPg==" - webUI["html/js/logs_ts.js"] = "Y2xhc3MgTG9nIHsNCiAgICBjcmVhdGVMb2coZW50cnkpIHsNCiAgICAgICAgdmFyIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJQUkUiKTsNCiAgICAgICAgaWYgKGVudHJ5LmluZGV4T2YoIldBUk5JTkciKSAhPSAtMSkgew0KICAgICAgICAgICAgZWxlbWVudC5jbGFzc05hbWUgPSAid2FybmluZ01zZyI7DQogICAgICAgIH0NCiAgICAgICAgaWYgKGVudHJ5LmluZGV4T2YoIkVSUk9SIikgIT0gLTEpIHsNCiAgICAgICAgICAgIGVsZW1lbnQuY2xhc3NOYW1lID0gImVycm9yTXNnIjsNCiAgICAgICAgfQ0KICAgICAgICBpZiAoZW50cnkuaW5kZXhPZigiREVCVUciKSAhPSAtMSkgew0KICAgICAgICAgICAgZWxlbWVudC5jbGFzc05hbWUgPSAiZGVidWdNc2ciOw0KICAgICAgICB9DQogICAgICAgIGVsZW1lbnQuaW5uZXJIVE1MID0gZW50cnk7DQogICAgICAgIHJldHVybiBlbGVtZW50Ow0KICAgIH0NCn0NCmZ1bmN0aW9uIHNob3dMb2dzKGJvdHRvbSkgew0KICAgIHZhciBsb2cgPSBuZXcgTG9nKCk7DQogICAgdmFyIGxvZ3MgPSBTRVJWRVJbImxvZyJdWyJsb2ciXTsNCiAgICB2YXIgZGl2ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnRlbnRfbG9nIik7DQogICAgZGl2LmlubmVySFRNTCA9ICIiOw0KICAgIHZhciBrZXlzID0gZ2V0T2JqS2V5cyhsb2dzKTsNCiAgICBrZXlzLmZvckVhY2gobG9nSUQgPT4gew0KICAgICAgICB2YXIgZW50cnkgPSBsb2cuY3JlYXRlTG9nKGxvZ3NbbG9nSURdKTsNCiAgICAgICAgZGl2LmFwcGVuZChlbnRyeSk7DQogICAgfSk7DQogICAgc2V0VGltZW91dChmdW5jdGlvbiAoKSB7DQogICAgICAgIGlmIChib3R0b20gPT0gdHJ1ZSkgew0KICAgICAgICAgICAgdmFyIHdyYXBwZXIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYm94LXdyYXBwZXIiKTsNCiAgICAgICAgICAgIHdyYXBwZXIuc2Nyb2xsVG9wID0gd3JhcHBlci5zY3JvbGxIZWlnaHQ7DQogICAgICAgIH0NCiAgICB9LCAxMCk7DQp9DQpmdW5jdGlvbiByZXNldExvZ3MoKSB7DQogICAgdmFyIGNtZCA9ICJyZXNldExvZ3MiOw0KICAgIHZhciBkYXRhID0gbmV3IE9iamVjdCgpOw0KICAgIHZhciBzZXJ2ZXIgPSBuZXcgU2VydmVyKGNtZCk7DQogICAgc2VydmVyLnJlcXVlc3QoZGF0YSk7DQp9DQo=" - webUI["html/css/base.css"] = "KiB7DQogIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTsNCiAgLW1vei1hcHBlYXJhbmNlOiBub25lOw0KICAtbXMtYXBwZWFyYW5jZTogbm9uZTsNCiAgZm9udC1mYW1pbHk6ICJBcmlhbCIsIHNhbnMtc2VyaWY7DQogIGxldHRlci1zcGFjaW5nOiAycHg7IA0KfQ0KDQovKg0KOjotd2Via2l0LXNjcm9sbGJhciB7IA0KICAgIGRpc3BsYXk6IG5vbmU7IA0KfQ0KKi8NCg0KOjotd2Via2l0LXNjcm9sbGJhciB7DQogIHdpZHRoOiAxMnB4Ow0KICBoZWlnaHQ6IDEycHg7DQp9DQoNCiANCjo6LXdlYmtpdC1zY3JvbGxiYXItdHJhY2sgew0KICAtd2Via2l0LWJveC1zaGFkb3c6IGluc2V0IDAgMCA2cHggcmdiYSgwLDAsMCwwLjMpOyANCiAgYm9yZGVyLXJhZGl1czogNXB4Ow0KICAgIA0KfQ0KIA0KOjotd2Via2l0LXNjcm9sbGJhci10aHVtYiB7DQogIGJvcmRlci1yYWRpdXM6IDVweDsNCiAgLXdlYmtpdC1ib3gtc2hhZG93OiBpbnNldCAwIDAgNnB4IHJnYmEoMCwgMCwgMCwwLjYpOyANCiAgYmFja2dyb3VuZC1jb2xvcjogIzQ0NDsNCn0NCg0KOjotd2Via2l0LXNjcm9sbGJhci10aHVtYjpob3ZlciB7DQogIGJhY2tncm91bmQ6ICMzMzM7IA0KfQ0KDQo6Oi13ZWJraXQtc2Nyb2xsYmFyLWNvcm5lciB7IA0KICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsgDQp9DQoNCmEgew0KICBjb2xvcjogIzAwRTZGRjsNCn0NCg0KaHRtbCwgYm9keSB7DQogIGNvbG9yOiAjZmZmOw0KICBtYXJnaW46IDBweCBhdXRvOw0KICBoZWlnaHQ6IDEwMCU7DQogIGZvbnQtc2l6ZTogMTRweDsNCn0NCg0KaDIgew0KICBmb250LXNpemU6IDI0cHg7DQogIGxldHRlci1zcGFjaW5nOiAycHg7DQp9DQoNCmgzIHsNCiAgZm9udC1zaXplOiAyMnB4Ow0KICBsZXR0ZXItc3BhY2luZzogMXB4Ow0KfQ0KDQpoNCB7DQogIGZvbnQtc2l6ZTogMjBweDsNCiAgbGV0dGVyLXNwYWNpbmc6IDFweDsNCiAgbGluZS1oZWlnaHQ6IDEuNWVtOw0KDQp9DQoNCmg1IHsNCiAgZm9udC1zaXplOiAxNnB4Ow0KICBsZXR0ZXItc3BhY2luZzogMXB4Ow0KICBsaW5lLWhlaWdodDogMS4yZW07DQogIG1hcmdpbjogMjVweCAwcHggMTBweCAwcHg7DQp9DQoNCmhyIHsNCiAgYm9yZGVyOiAwOw0KICBoZWlnaHQ6IDFweDsNCiAgYmFja2dyb3VuZDogIzMzMzsNCiAgbWFyZ2luOiAxMHB4IDBweDsNCn0NCg0KcCB7DQogIG1hcmdpbjogMnB4Ow0KICBwYWRkaW5nOiAycHggNXB4Ow0KfQ0KDQpwcmUgew0KICBtYXJnaW46IDBweCAwcHggNXB4IDBweDsNCiAgZm9udC1zaXplOiAxMnB4Ow0KICBjb2xvcjogI2RkZDsNCiAgbGV0dGVyLXNwYWNpbmc6IDFweDsNCiAgd2hpdGUtc3BhY2U6IHByZS13cmFwOw0KICBmb250LWZhbWlseTogbW9ub3NwYWNlOyANCiAgZm9udC1zaXplOiAxMnB4OyANCiAgZm9udC1zdHlsZTogbm9ybWFsOyANCiAgZm9udC12YXJpYW50OiBub3JtYWw7IA0KICBsaW5lLWhlaWdodDogMS42ZW07IA0KfQ0KDQpsYWJlbCB7DQogIG1hcmdpbi1ib3R0b206IDIwcHg7DQogIGRpc3BsYXk6IGJsb2NrOw0KfQ0KDQpsaSB7DQogIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTsNCiAgYmFja2dyb3VuZC1jb2xvcjogIzExMTsNCiAgcGFkZGluZzogMTBweCAyMHB4Ow0KICBjdXJzb3I6IHBvaW50ZXI7DQogIGJvcmRlci1sZWZ0OiBzb2xpZCAycHggIzExMTsNCiAgdHJhbnNpdGlvbjogYWxsIDAuMzsNCn0NCg0KbGk6aG92ZXIgew0KICBib3JkZXItY29sb3I6ICMwMEU2RkYNCn0NCg0Kc2VsZWN0IHsNCiAgY3Vyc29yOiBwb2ludGVyOw0KICB3aWR0aDogY2FsYygxMDAlICsgMnB4KTsNCiAgYm9yZGVyOiBzb2xpZCAwcHggIzAwRTZGRjsNCiAgYm9yZGVyLXJhZGl1czogMHB4Ow0KICBvdXRsaW5lOiBub25lOw0KICBjb2xvcjogI2ZmZjsNCiAgcGFkZGluZzogOXB4IDEwcHg7DQogIGRpc3BsYXk6YmxvY2s7DQogIGJhY2tncm91bmQtY29sb3I6ICMzMzM7DQogIGZvbnQtc2l6ZTogMTRweDsNCiAgbWFyZ2luOiA1cHggMHB4IDVweCAwcHg7DQp9DQoNCnNlbGVjdDpmb2N1cyB7DQogIG91dGxpbmU6IG5vbmU7DQp9DQoNCmlucHV0IHsNCiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lOw0KICBtYXJnaW46IDVweCAwcHg7DQogIHBhZGRpbmc6IDIuNXB4IDEwcHg7DQogIG91dGxpbmU6IG5vbmU7DQogIGZvbnQtc2l6ZTogMTRweDsNCn0NCg0KaW5wdXRbdHlwZT1idXR0b25dLCBpbnB1dFt0eXBlPXN1Ym1pdF0gew0KICBjdXJzb3I6IHBvaW50ZXI7DQogIGJhY2tncm91bmQtY29sb3I6ICMwMDA7DQogIG1hcmdpbjogMTBweCAxMHB4Ow0KICBwYWRkaW5nOiAxMHB4IDI1cHg7DQogIGJvcmRlcjogc29saWQgMHB4Ow0KICBib3JkZXItY29sb3I6ICMwMDA7DQogIGJvcmRlci1yYWRpdXM6IDNweDsNCiAgb3V0bGluZTogbm9uZTsNCiAgY29sb3I6ICNmZmY7DQp9DQoNCmlucHV0W3R5cGU9YnV0dG9uXTpmb2N1cyB7IA0KICAgb3V0bGluZTogbm9uZTsNCn0NCg0KaW5wdXRbdHlwZT1idXR0b25dOmhvdmVyIHsNCiAgYmFja2dyb3VuZC1jb2xvcjogIzAwRTZGRjsNCiAgY29sb3I6ICMwMDA7DQp9DQoNCmlucHV0W3R5cGU9YnV0dG9uXTpob3Zlci5kZWxldGUgIHsNCiAgYmFja2dyb3VuZC1jb2xvcjogcmVkOw0KICBjb2xvcjogI2ZmZjsNCn0NCg0KaW5wdXRbdHlwZT10ZXh0XSwgaW5wdXRbdHlwZT1zZWFyY2hdLCBpbnB1dFt0eXBlPXBhc3N3b3JkXSB7DQogIGNvbG9yOiAjZmZmOw0KICB3aWR0aDogLXdlYmtpdC1jYWxjKDEwMCUgLSAwcHgpOw0KICB3aWR0aDogLW1vei1jYWxjKDEwMCUgLSAwcHgpOw0KICB3aWR0aDogY2FsYygxMDAlIC0gMHB4KTsNCiAgb3V0bGluZTogbm9uZTsNCiAgYm9yZGVyOiBzb2xpZCAxcHggdHJhbnNwYXJlbnQ7DQogIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50Ow0KICBib3JkZXItYm90dG9tLWNvbG9yOiAjNTU1Ow0KICBib3JkZXItcmFkaXVzOiAwcHg7DQogIHBhZGRpbmc6IDhweCAxMHB4Ow0KfQ0KDQppbnB1dFt0eXBlPSJjaGVja2JveCJdIHsNCiAgYm9yZGVyOiBzb2xpZCAxcHggIzAwRTZGRjsNCiAgYmFja2dyb3VuZC1jb2xvcjogIzMzMzsNCiAgaGVpZ2h0OiAyNXB4Ow0KICB3aWR0aDogMjVweDsNCiAgY3Vyc29yOiBwb2ludGVyOw0KICAvKg0KICAtd2Via2l0LWFwcGVhcmFuY2U6IGNoZWNrYm94Ow0KICAqLw0KfQ0KDQppbnB1dFt0eXBlPSJjaGVja2JveCJdOmNoZWNrZWQgew0KICBjb2xvcjogI2ZmZjsNCiAgYmFja2dyb3VuZC1jb2xvcjogIzAwRTZGRjsNCiAgLypkaXNwbGF5OiBpbmxpbmUtYmxvY2s7Ki8NCn0NCg0KaW5wdXRbdHlwZT0iY2hlY2tib3giXTpiZWZvcmUgew0KICBwb3NpdGlvbjogaW5pdGlhbDsNCiAgbGVmdDogMHB4Ow0KICBtYXJnaW4tbGVmdDogLTRweDsNCiAgY29udGVudDogIiAiOw0KfQ0KDQppbnB1dFt0eXBlPSJjaGVja2JveCJdOmNoZWNrZWQ6YmVmb3JlIHsNCiAgcG9zaXRpb246IGluaXRpYWw7DQogIGxlZnQ6IDBweDsNCiAgbWFyZ2luLWxlZnQ6IC0zcHg7DQogIGNvbnRlbnQ6ICLinJMiOw0KICBjb2xvcjogIzAwMDsNCn0NCg0KDQppbnB1dFt0eXBlPWJ1dHRvbl0uY2FuY2VsIHsNCiAgDQogIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50Ow0KICBib3JkZXItY29sb3I6IHJlZDsNCn0NCg0KaW5wdXRbdHlwZT1idXR0b25dLnNhdmV7DQogIGJhY2tncm91bmQtY29sb3I6ICMxMTE7DQogIGZsb2F0OiByaWdodDsNCn0NCg0KDQppbnB1dFt0eXBlPWJ1dHRvbl0uYmxhY2ssIGlucHV0W3R5cGU9c3VibWl0XS5ibGFja3sNCiAgYmFja2dyb3VuZC1jb2xvcjogIzAwMDsNCiAgYm9yZGVyLWNvbG9yOiAjMDAwOw0KfQ0KDQppbnB1dFt0eXBlPWJ1dHRvbl0uY2VudGVyew0KICBtYXJnaW4tcmlnaHQ6IGF1dG87DQogIG1hcmdpbi1sZWZ0OiBhdXRvOw0KICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDAwOw0KICBib3JkZXItY29sb3I6ICMwMDA7DQp9DQoNCi5wb2ludGVyIHsNCiAgY3Vyc29yOiBwb2ludGVyOw0KfQ0KDQoucG9pbnRlcjpob3ZlciB7DQogIGNvbG9yOiAjMDBFNkZGOw0KICBjdXJzb3I6IHBvaW50ZXI7DQp9DQoNCi5zb3J0VGhpcyB7DQogIGNvbG9yOiAjMDBFNkZGOw0KfQ0KDQoudzQwcHggew0KICBtYXgtd2lkdGg6IDQwcHg7DQp9DQoNCi53NTBweCB7DQogIG1heC13aWR0aDogNTBweDsNCn0NCg0KLnc4MHB4IHsNCiAgbWF4LXdpZHRoOiA4MHB4Ow0KfQ0KDQoudzE1MHB4IHsNCiAgbWF4LXdpZHRoOiAxNTBweDsNCn0NCg0KLncyMDBweCB7DQogIG1heC13aWR0aDogMjAwcHg7DQogIG1pbi13aWR0aDogMTAwcHg7DQogIHdpZHRoOiAyMDBweDsNCiAgb3ZlcmZsb3cteDogaGlkZGVuOw0KICB3aGl0ZS1zcGFjZTogbm93cmFwOw0KICBvdmVyZmxvdzogaGlkZGVuOw0KICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsNCn0NCg0KLnczMDBweCB7DQogIG1heC13aWR0aDogMzAwcHg7DQp9DQoNCi53MjIwcHggew0KICBtYXgtd2lkdGg6IDIyMHB4Ow0KICBjdXJzb3I6IGFsaWFzOw0KfQ0KDQouZm9vdGVyIHsNCiAgZm9udC1zaXplOiAxMHB4Ow0KfQ0KDQouY2VudGVyIHsNCiAgdGV4dC1hbGlnbjogY2VudGVyOw0KfQ0KDQouc2NyZWVuTG9nSGlkZGVuIHsNCiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMHB4LCAtMTEwcHgpOw0KfQ0KDQouYm9yZGVyU3BhY2Ugew0KICBtYXJnaW4tYm90dG9tOiAzMHB4Ow0KfQ0KDQouYmxvY2sgew0KDQp9DQoNCi5ub25lIHsNCiAgZGlzcGxheTogbm9uZTsNCn0NCg0KDQoubm90VmlzaWJsZSB7DQogIGhlaWdodDogMHB4Ow0KICBkaXNwbGF5OiBub25lOw0KICBvcGFjaXR5OiAwOw0KICBib3JkZXItYm90dG9tOiAjMDAwIHNvbGlkIDBweDsNCiAgDQp9DQoNCi52aXNpYmxlIHsNCiAgb3BhY2l0eTogMTsNCiAgZGlzcGxheTogYmxvY2s7DQogIGJvcmRlci1ib3R0b206ICM0NDQgc29saWQgMXB4OyANCiAgcGFkZGluZzogMTBweDsNCn0NCg0KLmZsb2F0UmlnaHQgew0KICBmbG9hdDogcmlnaHQ7DQp9DQoNCi5mbG9hdExlZnQgew0KICBmbG9hdDogbGVmdDsNCn0NCg0KLm1lbnUtYWN0aXZlIHsNCiAgYmFja2dyb3VuZC1jb2xvcjogIzAwRTZGRjsNCn0NCg0KLm1lbnUtbm90QWN0aXZlIHsNCiAgDQp9DQoNCiNicmFuY2ggew0KICBkaXNwbGF5OiB0YWJsZTsNCiAgbWFyZ2luOiBhdXRvOw0KICBjb2xvcjogcmVkOw0KfQ0KDQojaW50ZXJhY3Rpb24gew0KICBtYXJnaW4tYm90dG9tOiAxMDBweDsNCiAgdGV4dC1hbGlnbjogY2VudGVyOw0KICBib3JkZXItYm90dG9tOiBzb2xpZCAwcHggIzc3NzsNCn0NCg0KDQouaGFsZiB7DQogIGRpc3BsYXk6IGJsb2NrOw0KICB3aWR0aDogNDUlOw0KfQ0KDQoubWVudSB7DQogIGJvcmRlcjogc29saWQgMXB4ICMwMEU2RkY7DQp9DQoNCi5pbmZvTXNnIHsNCiAgY29sb3I6ICNhYWE7DQp9DQoNCi5lcnJvck1zZyB7DQogIGNvbG9yOiByZWQ7DQp9DQoNCi53YXJuaW5nTXNnIHsNCiAgY29sb3I6IHllbGxvdzsNCn0NCg0KLmRlYnVnTXNnIHsNCiAgY29sb3I6IG1hZ2VudGE7DQp9DQoNCi5OZXdzLCAuTW92aWUsIC5TZXJpZXMsIC5TcG9ydHMsIC5LaWRzIHsNCiAgYm9yZGVyLWxlZnQ6IHNvbGlkIDJweA0KfQ0KDQouTmV3cyB7DQogIGJvcmRlci1jb2xvcjogdG9tYXRvDQp9DQoNCi5Nb3ZpZSB7DQogIGJvcmRlci1jb2xvcjogcm95YWxibHVlOw0KfQ0KDQouU2VyaWVzIHsNCiAgYm9yZGVyLWNvbG9yOiBnb2xkOw0KfQ0KDQouU3BvcnRzIHsNCiAgYm9yZGVyLWNvbG9yOiB5ZWxsb3dncmVlbjsNCn0NCg0KLktpZHMgew0KICBib3JkZXItY29sb3I6IG1lZGl1bXB1cnBsZTsNCn0NCg0KLyogTG9hZGluZyAqLw0KI2xvYWRpbmcgew0KICBsZWZ0OiAwcHg7DQogIHRvcDogMHB4Ow0KICB6LWluZGV4OiAxMDAwMDsNCiAgcG9zaXRpb246IGFic29sdXRlOw0KICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsMCwwLCAwLjgpOw0KICBtYXJnaW46IGF1dG87DQogIHdpZHRoOiAxMDAlOw0KICBoZWlnaHQ6IDEwMCU7DQp9DQoNCg0KLmxvYWRlciB7DQogIGJvcmRlcjogNXB4IHNvbGlkIHRyYW5zcGFyZW50Ow0KICBib3JkZXItcmFkaXVzOiA1MCU7DQogIGJvcmRlci10b3A6IDVweCBzb2xpZCAjMDBFNkZGOw0KICBib3JkZXItYm90dG9tOiA1cHggc29saWQgIzAwRTZGRjsNCiAgd2lkdGg6IDUwcHg7DQogIGhlaWdodDogNTBweDsNCiAgLXdlYmtpdC1hbmltYXRpb246IHNwaW4gMS4ycyBsaW5lYXIgaW5maW5pdGU7DQogIGFuaW1hdGlvbjogc3BpbiAxLjJzIGxpbmVhciBpbmZpbml0ZTsNCg0KICBwb3NpdGlvbjogZml4ZWQ7DQogIG1hcmdpbjogYXV0bzsNCg0KICB0b3A6IDA7DQogIHJpZ2h0OiAwOw0KICBib3R0b206IDA7DQogIGxlZnQ6IDA7DQogIA0KfQ0KDQpALXdlYmtpdC1rZXlmcmFtZXMgc3BpbiB7DQogIDAlIHsgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTsgfQ0KICAxMDAlIHsgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpOyB9DQp9DQoNCkBrZXlmcmFtZXMgc3BpbiB7DQogIDAlIHsgdHJhbnNmb3JtOiByb3RhdGUoMGRlZyk7IH0NCiAgMTAwJSB7IHRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7IH0NCn0NCg==" + webUI["html/img/logo_b_880x200.jpg"] = "/9j/4AAQSkZJRgABAQABLAEsAAD/4QDIRXhpZgAATU0AKgAAAAgABwESAAMAAAABAAEAAAEaAAUAAAABAAAAYgEbAAUAAAABAAAAagEoAAMAAAABAAIAAAExAAIAAAAPAAAAcgEyAAIAAAAUAAAAgodpAAQAAAABAAAAlgAAAAAAAAEsAAAAAQAAASwAAAABUGl4ZWxtYXRvciAzLjMAADIwMTk6MDg6MDIgMjA6MDg6MTQAAAOgAQADAAAAAQABAACgAgAEAAAAAQAAA3CgAwAEAAAAAQAAAMgAAAAA/+EJkGh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8APD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iWE1QIENvcmUgNS40LjAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcDpDcmVhdG9yVG9vbD0iUGl4ZWxtYXRvciAzLjMiIHhtcDpNb2RpZnlEYXRlPSIyMDE5LTA4LTAyVDIwOjA4OjE0Ii8+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPD94cGFja2V0IGVuZD0idyI/PgD/7QA4UGhvdG9zaG9wIDMuMAA4QklNBAQAAAAAAAA4QklNBCUAAAAAABDUHYzZjwCyBOmACZjs+EJ+/8AAEQgAyANwAwERAAIRAQMRAf/EAB8AAAEFAQEBAQEBAAAAAAAAAAABAgMEBQYHCAkKC//EALUQAAIBAwMCBAMFBQQEAAABfQECAwAEEQUSITFBBhNRYQcicRQygZGhCCNCscEVUtHwJDNicoIJChYXGBkaJSYnKCkqNDU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6g4SFhoeIiYqSk5SVlpeYmZqio6Slpqeoqaqys7S1tre4ubrCw8TFxsfIycrS09TV1tfY2drh4uPk5ebn6Onq8fLz9PX29/j5+v/EAB8BAAMBAQEBAQEBAQEAAAAAAAABAgMEBQYHCAkKC//EALURAAIBAgQEAwQHBQQEAAECdwABAgMRBAUhMQYSQVEHYXETIjKBCBRCkaGxwQkjM1LwFWJy0QoWJDThJfEXGBkaJicoKSo1Njc4OTpDREVGR0hJSlNUVVZXWFlaY2RlZmdoaWpzdHV2d3h5eoKDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uLj5OXm5+jp6vLz9PX29/j5+v/bAEMAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAf/bAEMBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAf/dAAQAbv/aAAwDAQACEQMRAD8A/iHoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKAP/9D+IegAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoA//0f4h6ACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgD//S/iHoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKAP/9P+IegAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoA//1P4h6ACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgDvPDXws+J3jPT31bwf8OfHnivSo7mSyfU/DXhDxBrunpeQpFLNaPe6Xp11bLcxRzwSSQNL5saTROyhZUNAHQf8M//AB4/6In8XP8Aw23jL/5TUAH/AAz/APHj/oifxc/8Nt4y/wDl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f/E3xn4o+IPjnxDLaafp8mveMPGet33iPxNrMlhpNpYaVZPqmtale3z2mmWNlp9s05hsrS2tkjhQA4ygAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgD//S/iHoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAczu+N7M2BgbmLYHoM9BnJxx1/FgBtABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAOLuwVWZiq/dUsSFz12joM4HQduc4FADaACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgD//0/4h6ACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgD//U/iHoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKAP/9X+IegAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoA//1v4h6ACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgD//X/iHoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKAP/9k=" webUI["html/img/settings.png"] = "iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAAAXNSR0IArs4c6QAAAAlwSFlzAAAsSwAALEsBpT2WqQAABCRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IlhNUCBDb3JlIDUuNC4wIj4KICAgPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIgogICAgICAgICAgICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgICAgICAgICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyI+CiAgICAgICAgIDx0aWZmOlJlc29sdXRpb25Vbml0PjI8L3RpZmY6UmVzb2x1dGlvblVuaXQ+CiAgICAgICAgIDx0aWZmOkNvbXByZXNzaW9uPjU8L3RpZmY6Q29tcHJlc3Npb24+CiAgICAgICAgIDx0aWZmOlhSZXNvbHV0aW9uPjI4ODwvdGlmZjpYUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6T3JpZW50YXRpb24+MTwvdGlmZjpPcmllbnRhdGlvbj4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+Mjg4PC90aWZmOllSZXNvbHV0aW9uPgogICAgICAgICA8ZXhpZjpQaXhlbFhEaW1lbnNpb24+NTA8L2V4aWY6UGl4ZWxYRGltZW5zaW9uPgogICAgICAgICA8ZXhpZjpDb2xvclNwYWNlPjE8L2V4aWY6Q29sb3JTcGFjZT4KICAgICAgICAgPGV4aWY6UGl4ZWxZRGltZW5zaW9uPjUwPC9leGlmOlBpeGVsWURpbWVuc2lvbj4KICAgICAgICAgPGRjOnN1YmplY3Q+CiAgICAgICAgICAgIDxyZGY6QmFnLz4KICAgICAgICAgPC9kYzpzdWJqZWN0PgogICAgICAgICA8eG1wOk1vZGlmeURhdGU+MjAxOC0wOC0xMFQxODowODo4OTwveG1wOk1vZGlmeURhdGU+CiAgICAgICAgIDx4bXA6Q3JlYXRvclRvb2w+UGl4ZWxtYXRvciAzLjM8L3htcDpDcmVhdG9yVG9vbD4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgIDwvcmRmOlJERj4KPC94OnhtcG1ldGE+Ckxt87EAAAS7SURBVGgFzZpdiFVVGIbn5N+IMgVhaRLqWI7mQIJoIVRgOhQZNDAhWcbcVuPV3BRE6I14440iQQSaN0p6kz8zI0k5inUhZSSaYOVYODMo5eiMOOPf+LzH2cPMPmvttdbe53jOBy9rr2+938/ae51vr733qaoqgQwPD68B/wDJfXAP3AE94JMShCy+SxJ9CvSDJFlU7MiPFdsh/hrBdIffBsd48HApJjLPI4tnPThBlFJMZI5HBuWZCIt9AmgEzeAJR6JzHeMadnKI8wbYCz4Fkz18JlNwMgf8BCL5j4O3bVaMdUfEhPZqgv1U7HbEbDvoT7HZOPUYNwAlHheV09a4A3RTgMqtj9QY7JdgeM5i3I4+fDIYrQeq/UnyNYOTlBDtS+BwEjk2doz+KyO2OY5bwVCME+/qylTHT4C1D3k+uB33Yul3ov/eMuajlu1RH+II5wtT4hNNSnQ6U/kzbRkfq351bCfF8apAm7kmvq38njWRK0S305SHcSK5XO4U5O9MBmXWbSe3E6YccialdKzH2TTnQEF10XgZ5DdivsxEhkyxjVdERAwu03xmMiqD7hYx19km4cyHq6KyeHKkWpSz+ciVrHVpRYZk/wLHp0H2bULkNKzt4Eq86TKxLq3IECf6nXwV9QPbAfjHQSfoD7SN6L63gYhvbrkiTwKf/dPYpbdPVxKMnigdg0VAG8FQye8AzBl6aIk2A+wPiNoHd63LNZx3wbUAvz/CfTzJb/43AmkGpLfAi0DPE/NALQgtve+xFPdi5xRiNkHa5ySOJ/TR7RrBJdqL4AAxL+p+8ToYAFklNCnF3pM1KPba2L6v8vons5oPsko9ZyZoa0PsOoKezxoY+y5N5DYHWSvDTXzUMJH7IUkRW0tbyyV0CcfDDKmqDMe1KfqnQyehGNgo9q8p4hWYFGsiBY4fsSK/BRkkaPgj5PhMy720BnVFesfnlKo3Das0bw8XYJf196GEuzWRLSDoRypLg2w06FyqTS6Cx7iK1eeqGqrnugmuBgvB8+A5UAuqQYiU+oZ4h2T+BV3gAlDp/pai0U1rFpVGMAv8AHzFd4vShMOQLcoB+DNB/sSbM3ZoMV4BQsW0adSJSbNp1Hu1mY40/YZxpPdJaUSfFzrBMXAjjQNsdvll6cHCWVvKJIphdhcny11pqmolCk5aIDif0BKdZBucgPlO8kh/r8O4HtwClSCbk86HtQqQuUrvKVCf5OARjt0lll4H/WKKmbS0tmJQKZNQ7nq9+w0n2LhTN04E8jKMPpZ1hcli8tGTZYEYJwJrZQGzchTGz3a2ifwdkHc73LYAfpx6DcWXQK1LeiDsdpFGx7UOwUGQJKpmGyIjjvWh50iSQWzsZ/ofgvx+jnYp+B/YpJcB7QXDBKPJ4JDF6+/oCwoBuhoL36R+Jp4RJH16u2IgaxJpHhMehsBY3wTjV2YbOuuumLHrwCW6msbSj74O/DHGgV4Ohl8Jw1nSMmsB+tL6Wnw83odzBrhEr2GtgvFE8A74ADxtJZZygMC25cjQqBwqdg62qpUlziUP45Cq6OGuqqoUE/FJ8i+v7MpJYvEsHl1A5gNty2vLmaN3bBLdAvqB3svqXxLRvyEuc9zs7SiA+ACpw05pJx8SoAAAAABJRU5ErkJggg==" - webUI["html/js/authentication_ts.js"] = "ZnVuY3Rpb24gbG9naW4oKSB7DQogICAgdmFyIGVyciA9IGZhbHNlOw0KICAgIHZhciBkYXRhID0gbmV3IE9iamVjdCgpOw0KICAgIHZhciBkaXYgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29udGVudCIpOw0KICAgIHZhciBmb3JtID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImF1dGhlbnRpY2F0aW9uIik7DQogICAgdmFyIGlucHV0cyA9IGRpdi5nZXRFbGVtZW50c0J5VGFnTmFtZSgiSU5QVVQiKTsNCiAgICBjb25zb2xlLmxvZyhpbnB1dHMpOw0KICAgIGZvciAodmFyIGkgPSBpbnB1dHMubGVuZ3RoIC0gMTsgaSA+PSAwOyBpLS0pIHsNCiAgICAgICAgdmFyIGtleSA9IGlucHV0c1tpXS5uYW1lOw0KICAgICAgICB2YXIgdmFsdWUgPSBpbnB1dHNbaV0udmFsdWU7DQogICAgICAgIGlmICh2YWx1ZS5sZW5ndGggPT0gMCkgew0KICAgICAgICAgICAgaW5wdXRzW2ldLnN0eWxlLmJvcmRlckNvbG9yID0gInJlZCI7DQogICAgICAgICAgICBlcnIgPSB0cnVlOw0KICAgICAgICB9DQogICAgICAgIGRhdGFba2V5XSA9IHZhbHVlOw0KICAgIH0NCiAgICBpZiAoZXJyID09IHRydWUpIHsNCiAgICAgICAgZGF0YSA9IG5ldyBPYmplY3QoKTsNCiAgICAgICAgcmV0dXJuOw0KICAgIH0NCiAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgiY29uZmlybSIpKSB7DQogICAgICAgIGlmIChkYXRhWyJjb25maXJtIl0gIT0gZGF0YVsicGFzc3dvcmQiXSkgew0KICAgICAgICAgICAgYWxlcnQoInNkYWZzZCIpOw0KICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Bhc3N3b3JkJykuc3R5bGUuYm9yZGVyQ29sb3IgPSAicmVkIjsNCiAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjb25maXJtJykuc3R5bGUuYm9yZGVyQ29sb3IgPSAicmVkIjsNCiAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJlcnIiKS5pbm5lckhUTUwgPSAie3suYWNjb3VudC5mYWlsZWR9fSI7DQogICAgICAgICAgICByZXR1cm47DQogICAgICAgIH0NCiAgICB9DQogICAgY29uc29sZS5sb2coZGF0YSk7DQogICAgZm9ybS5zdWJtaXQoKTsNCn0NCg==" - webUI["html/create-first-user.html"] = "PCFkb2N0eXBlIGh0bWw+DQo8aHRtbD4NCiAgPGhlYWQ+DQogICAgPG1ldGEgY2hhcnNldD0idXRmLTgiPg0KICAgIDxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgsIGluaXRpYWwtc2NhbGU9MS4wIiAvPiANCiAgICA8dGl0bGU+eFRlVmU8L3RpdGxlPg0KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iY3NzL3NjcmVlbi5jc3MiIHR5cGU9InRleHQvY3NzIj4NCiAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9ImNzcy9iYXNlLmNzcyIgdHlwZT0idGV4dC9jc3MiPg0KICAgIDxzY3JpcHQgbGFuZ3VhZ2U9ImphdmFzY3JpcHQiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJqcy9uZXR3b3JrX3RzLmpzIj48L3NjcmlwdD4NCiAgICA8c2NyaXB0IGxhbmd1YWdlPSJqYXZhc2NyaXB0IiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ianMvYXV0aGVudGljYXRpb25fdHMuanMiPjwvc2NyaXB0Pg0KICA8L2hlYWQ+DQoNCiAgICA8Ym9keT4NCiAgICAgICAgICANCiAgICAgIDxkaXYgaWQ9ImhlYWRlciIgY2xhc3M9ImltZ0NlbnRlciI+PC9kaXY+DQoNCiAgICAgIDxkaXYgaWQ9ImJveCI+DQoNCiAgICAgICAgPGRpdiBpZD0iaGVhZGxpbmUiPg0KICAgICAgICAgIDxoMSBpZD0iaGVhZC10ZXh0IiBjbGFzcz0iY2VudGVyIj57ey5hY2NvdW50LmhlYWRsaW5lfX08L2gxPg0KICAgICAgICA8L2Rpdj4NCg0KICAgICAgICA8cCBpZD0iZXJyIiBjbGFzcz0iZXJyb3JNc2cgY2VudGVyIj48L3A+DQoNCiAgICAgICAgPGRpdiBpZD0iY29udGVudCI+DQoNCiAgICAgICAgICAgIDxmb3JtIGlkPSJhdXRoZW50aWNhdGlvbiIgYWN0aW9uPSIiIG1ldGhvZD0icG9zdCI+DQoNCiAgICAgICAgICAgICAgPGg1Pnt7LmFjY291bnQudXNlcm5hbWUudGl0bGV9fTo8L2g1Pg0KICAgICAgICAgICAgICA8aW5wdXQgaWQ9InVzZXJuYW1lIiB0eXBlPSJ0ZXh0IiBuYW1lPSJ1c2VybmFtZSIgcGxhY2Vob2xkZXI9IlVzZXJuYW1lIiB2YWx1ZT0iIj4NCiAgICAgICAgICAgICAgPGg1Pnt7LmFjY291bnQucGFzc3dvcmQudGl0bGV9fTo8L2g1Pg0KICAgICAgICAgICAgICA8aW5wdXQgaWQ9InBhc3N3b3JkIiB0eXBlPSJwYXNzd29yZCIgbmFtZT0icGFzc3dvcmQiIHBsYWNlaG9sZGVyPSJQYXNzd29yZCIgdmFsdWU9IiI+DQogICAgICAgICAgICAgIDxoNT57ey5hY2NvdW50LmNvbmZpcm0udGl0bGV9fTo8L2g1Pg0KICAgICAgICAgICAgICA8aW5wdXQgaWQ9ImNvbmZpcm0iICB0eXBlPSJwYXNzd29yZCIgbmFtZT0iY29uZmlybSIgIHBsYWNlaG9sZGVyPSJDb25maXJtIiB2YWx1ZT0iIj4NCiAgICAgICAgICAgICAgDQogICAgICAgICAgICA8L2Zvcm0+DQoNCiAgICAgICAgPC9kaXY+DQogICAgICAgIA0KICAgICAgICA8ZGl2IGlkPSJib3gtZm9vdGVyIj4NCiAgICAgICAgICA8aW5wdXQgaWQ9InN1Ym1pdCIgY2xhc3M9IiIgdHlwZT0iYnV0dG9uIiB2YWx1ZT0ie3suYnV0dG9uLmNyYWV0ZUFjY291bnR9fSIgb25jbGljaz0iamF2YXNjcmlwdDogbG9naW4oKTsiPg0KICAgICAgICA8L2Rpdj4NCiAgICAgIA0KICAgICAgICANCiAgICAgIDwvZGl2Pg0KICAgIDwvYm9keT4NCjwvaHRtbD4=" - webUI["html/img/x_black.png"] = "iVBORw0KGgoAAAANSUhEUgAAAQAAAAEACAIAAADTED8xAAAAAXNSR0IArs4c6QAAAAlwSFlzAAAWJQAAFiUBSVIk8AAAA6ppVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IlhNUCBDb3JlIDUuNC4wIj4KICAgPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIgogICAgICAgICAgICB4bWxuczp0aWZmPSJodHRwOi8vbnMuYWRvYmUuY29tL3RpZmYvMS4wLyIKICAgICAgICAgICAgeG1sbnM6ZXhpZj0iaHR0cDovL25zLmFkb2JlLmNvbS9leGlmLzEuMC8iPgogICAgICAgICA8eG1wOk1vZGlmeURhdGU+MjAxOC0xMS0xNVQxNzoxMTozNzwveG1wOk1vZGlmeURhdGU+CiAgICAgICAgIDx4bXA6Q3JlYXRvclRvb2w+UGl4ZWxtYXRvciAzLjM8L3htcDpDcmVhdG9yVG9vbD4KICAgICAgICAgPHRpZmY6T3JpZW50YXRpb24+MTwvdGlmZjpPcmllbnRhdGlvbj4KICAgICAgICAgPHRpZmY6Q29tcHJlc3Npb24+NTwvdGlmZjpDb21wcmVzc2lvbj4KICAgICAgICAgPHRpZmY6UmVzb2x1dGlvblVuaXQ+MjwvdGlmZjpSZXNvbHV0aW9uVW5pdD4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+MTQ0PC90aWZmOllSZXNvbHV0aW9uPgogICAgICAgICA8dGlmZjpYUmVzb2x1dGlvbj4xNDQ8L3RpZmY6WFJlc29sdXRpb24+CiAgICAgICAgIDxleGlmOlBpeGVsWERpbWVuc2lvbj4yNTY8L2V4aWY6UGl4ZWxYRGltZW5zaW9uPgogICAgICAgICA8ZXhpZjpDb2xvclNwYWNlPjE8L2V4aWY6Q29sb3JTcGFj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a1jSekqmtA1rrGsx7JYkDuvrVahwRdgVXD1xcwri6mmYRULLe4CuPc2wfrGo4U+7Y/3S9ZHD+GcflbnfiCJbr77whoaS6ucCXVkVkuLKgORQwNJFygRDJnqwb9i3b0HxkqjT0L4erGy5Rh1IRnhXrpaZq6GZCyRLf6cvhoTY6V9koX8bGdEUlyWVm6W5q1GuostihNm97L/dpm5k+QHCbDna0zRzgSS/lRHWL7iHPOa+9YsYkpttoCwSMcQRkrWioz5Qsc7aFJ1coHY3QyJ9jSjfJEOCfTUpWzehVBnUbqCJOCHEkB1xsmXDwq9DnObUz9q4QOUqYPaPKFzUKcVj6Eeu461q67Vhlqy6+Xo11G52JhRZNNW1FRbN00FWPVwguSa+8YEZ1i+D9vQjelm/iHTwAB69Vwd7CkuGLOcWtxfR4o+dHhNg4DNmhDvJ8M6ehknvhTXMDp8kQQgT33W4z+i7k/2gho+Jvrp1NTVwgW5opV76yl8F/cufe9CyJiRllZ6lYCHMXWPAXmNp9CRb8Pi30r658sHtCSCPsZNXQDYdMaLIek/No13V/rBfGMFSCXnsKNo1dDelnKt/dyUH8uvjjLH+zyfpbv1iUl/NVBt4mVJy58HoDyFZLt0rrj4G7TfIjARvMjy7d6JnR/UXS/+yeD5kLYkETxpRZL2jZJVzb7cl9yZA/cYqh4z+20AEzOj+BKxbZYRFqXQssvLs5gQzpBUp616rNsX55WdXBHbPBRrwlBm5v2VYJo1FsjmOtQg8ezo+fd8Ve4qy04HPRlmR1UiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABGwg8D8UnyVeZFwGAQAAAABJRU5ErkJggg==" webUI["html/img/x_white.png"] = "iVBORw0KGgoAAAANSUhEUgAAAQAAAAEACAIAAADTED8xAAAAAXNSR0IArs4c6QAAAAlwSFlzAAAWJQAAFiUBSVIk8AAAA6ppVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IlhNUCBDb3JlIDUuNC4wIj4KICAgPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIgogICAgICAgICAgICB4bWxuczp0aWZmPSJodHRwOi8vbnMuYWRvYmUuY29tL3RpZmYvMS4wLyIKICAgICAgICAgICAgeG1sbnM6ZXhpZj0iaHR0cDovL25zLmFkb2JlLmNvbS9leGlmLzEuMC8iPgogICAgICAgICA8eG1wOk1vZGlmeURhdGU+MjAxOC0xMS0xNVQxNzoxMToyNTwveG1wOk1vZGlmeURhdGU+CiAgICAgICAgIDx4bXA6Q3JlYXRvclRvb2w+UGl4ZWxtYXRvciAzLjM8L3htcDpDcmVhdG9yVG9vbD4KICAgICAgICAgPHRpZmY6T3JpZW50YXRpb24+MTwvdGlmZjpPcmllbnRhdGlvbj4KICAgICAgICAgPHRpZmY6Q29tcHJlc3Npb24+NTwvdGlmZjpDb21wcmVzc2lvbj4KICAgICAgICAgPHRpZmY6UmVzb2x1dGlvblVuaXQ+MjwvdGlmZjpSZXNvbHV0aW9uVW5pdD4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+MTQ0PC90aWZmOllSZXNvbHV0aW9uPgogICAgICAgICA8dGlmZjpYUmVzb2x1dGlvbj4xNDQ8L3RpZmY6WFJlc29sdXRpb24+CiAgICAgICAgIDxleGlmOlBpeGVsWERpbWVuc2lvbj4yNTY8L2V4aWY6UGl4ZWxYRGltZW5zaW9uPgogICAgICAgICA8ZXhpZjpDb2xvclNwYWNlPjE8L2V4aWY6Q29sb3JTcGFj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" + webUI["html/js/base_ts.js"] = "dmFyIFNFUlZFUiA9IG5ldyBPYmplY3QoKTsNCnZhciBCVUxLX0VESVQgPSBmYWxzZTsNCnZhciBDT0xVTU5fVE9fU09SVDsNCnZhciBTRUFSQ0hfTUFQUElORyA9IG5ldyBPYmplY3QoKTsNCnZhciBVTkRPID0gbmV3IE9iamVjdCgpOw0KdmFyIFNFUlZFUl9DT05ORUNUSU9OID0gZmFsc2U7DQp2YXIgV1NfQVZBSUxBQkxFID0gZmFsc2U7DQovLyBNZW51DQp2YXIgbWVudUl0ZW1zID0gbmV3IEFycmF5KCk7DQptZW51SXRlbXMucHVzaChuZXcgTWFpbk1lbnVJdGVtKCJwbGF5bGlzdCIsICJ7ey5tYWluTWVudS5pdGVtLnBsYXlsaXN0fX0iLCAibTN1LnBuZyIsICJ7ey5tYWluTWVudS5oZWFkbGluZS5wbGF5bGlzdH19IikpOw0KLy9tZW51SXRlbXMucHVzaChuZXcgTWFpbk1lbnVJdGVtKCJwbXNJRCIsICJ7ey5tYWluTWVudS5pdGVtLnBtc0lEfX0iLCAibnVtYmVyLnBuZyIsICJ7ey5tYWluTWVudS5oZWFkbGluZS5wbXNJRH19IikpDQptZW51SXRlbXMucHVzaChuZXcgTWFpbk1lbnVJdGVtKCJmaWx0ZXIiLCAie3subWFpbk1lbnUuaXRlbS5maWx0ZXJ9fSIsICJmaWx0ZXIucG5nIiwgInt7Lm1haW5NZW51LmhlYWRsaW5lLmZpbHRlcn19IikpOw0KbWVudUl0ZW1zLnB1c2gobmV3IE1haW5NZW51SXRlbSgieG1sdHYiLCAie3subWFpbk1lbnUuaXRlbS54bWx0dn19IiwgInhtbHR2LnBuZyIsICJ7ey5tYWluTWVudS5oZWFkbGluZS54bWx0dn19IikpOw0KbWVudUl0ZW1zLnB1c2gobmV3IE1haW5NZW51SXRlbSgibWFwcGluZyIsICJ7ey5tYWluTWVudS5pdGVtLm1hcHBpbmd9fSIsICJtYXBwaW5nLnBuZyIsICJ7ey5tYWluTWVudS5oZWFkbGluZS5tYXBwaW5nfX0iKSk7DQptZW51SXRlbXMucHVzaChuZXcgTWFpbk1lbnVJdGVtKCJ1c2VycyIsICJ7ey5tYWluTWVudS5pdGVtLnVzZXJzfX0iLCAidXNlcnMucG5nIiwgInt7Lm1haW5NZW51LmhlYWRsaW5lLnVzZXJzfX0iKSk7DQptZW51SXRlbXMucHVzaChuZXcgTWFpbk1lbnVJdGVtKCJzZXR0aW5ncyIsICJ7ey5tYWluTWVudS5pdGVtLnNldHRpbmdzfX0iLCAic2V0dGluZ3MucG5nIiwgInt7Lm1haW5NZW51LmhlYWRsaW5lLnNldHRpbmdzfX0iKSk7DQptZW51SXRlbXMucHVzaChuZXcgTWFpbk1lbnVJdGVtKCJsb2ciLCAie3subWFpbk1lbnUuaXRlbS5sb2d9fSIsICJsb2cucG5nIiwgInt7Lm1haW5NZW51LmhlYWRsaW5lLmxvZ319IikpOw0KbWVudUl0ZW1zLnB1c2gobmV3IE1haW5NZW51SXRlbSgibG9nb3V0IiwgInt7Lm1haW5NZW51Lml0ZW0ubG9nb3V0fX0iLCAibG9nb3V0LnBuZyIsICJ7ey5tYWluTWVudS5oZWFkbGluZS5sb2dvdXR9fSIpKTsNCi8vIFNldHRpbmdzIGNhdGVnb3JpZXMNCnZhciBzZXR0aW5nc0NhdGVnb3J5ID0gbmV3IEFycmF5KCk7DQpzZXR0aW5nc0NhdGVnb3J5LnB1c2gobmV3IFNldHRpbmdzQ2F0ZWdvcnlJdGVtKCJ7ey5zZXR0aW5ncy5jYXRlZ29yeS5nZW5lcmFsfX0iLCAieHRldmVBdXRvVXBkYXRlLHR1bmVyLGVwZ1NvdXJjZSxhcGkiKSk7DQpzZXR0aW5nc0NhdGVnb3J5LnB1c2gobmV3IFNldHRpbmdzQ2F0ZWdvcnlJdGVtKCJ7ey5zZXR0aW5ncy5jYXRlZ29yeS5maWxlc319IiwgInVwZGF0ZSxmaWxlcy51cGRhdGUsdGVtcC5wYXRoLGNhY2hlLmltYWdlcyx4ZXBnLnJlcGxhY2UubWlzc2luZy5pbWFnZXMiKSk7DQpzZXR0aW5nc0NhdGVnb3J5LnB1c2gobmV3IFNldHRpbmdzQ2F0ZWdvcnlJdGVtKCJ7ey5zZXR0aW5ncy5jYXRlZ29yeS5zdHJlYW1pbmd9fSIsICJidWZmZXIsdWRweHksYnVmZmVyLnNpemUua2IsYnVmZmVyLnRpbWVvdXQsdXNlci5hZ2VudCxmZm1wZWcucGF0aCxmZm1wZWcub3B0aW9ucyx2bGMucGF0aCx2bGMub3B0aW9ucyIpKTsNCnNldHRpbmdzQ2F0ZWdvcnkucHVzaChuZXcgU2V0dGluZ3NDYXRlZ29yeUl0ZW0oInt7LnNldHRpbmdzLmNhdGVnb3J5LmJhY2t1cH19IiwgImJhY2t1cC5wYXRoLGJhY2t1cC5rZWVwIikpOw0Kc2V0dGluZ3NDYXRlZ29yeS5wdXNoKG5ldyBTZXR0aW5nc0NhdGVnb3J5SXRlbSgie3suc2V0dGluZ3MuY2F0ZWdvcnkuYXV0aGVudGljYXRpb259fSIsICJhdXRoZW50aWNhdGlvbi53ZWIsYXV0aGVudGljYXRpb24ucG1zLGF1dGhlbnRpY2F0aW9uLm0zdSxhdXRoZW50aWNhdGlvbi54bWwsYXV0aGVudGljYXRpb24uYXBpIikpOw0KZnVuY3Rpb24gc2hvd1BvcFVwRWxlbWVudChlbG0pIHsNCiAgICB2YXIgYWxsRWxlbWVudHMgPSBuZXcgQXJyYXkoInBvcHVwLWN1c3RvbSIpOw0KICAgIGZvciAodmFyIGkgPSAwOyBpIDwgYWxsRWxlbWVudHMubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgc2hvd0VsZW1lbnQoYWxsRWxlbWVudHNbaV0sIGZhbHNlKTsNCiAgICB9DQogICAgc2hvd0VsZW1lbnQoZWxtLCB0cnVlKTsNCiAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsNCiAgICAgICAgc2hvd0VsZW1lbnQoInBvcHVwIiwgdHJ1ZSk7DQogICAgfSwgMTApOw0KICAgIHJldHVybjsNCn0NCmZ1bmN0aW9uIHNob3dFbGVtZW50KGVsbUlELCB0eXBlKSB7DQogICAgdmFyIGNzc0NsYXNzOw0KICAgIHN3aXRjaCAodHlwZSkgew0KICAgICAgICBjYXNlIHRydWU6DQogICAgICAgICAgICBjc3NDbGFzcyA9ICJibG9jayI7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSBmYWxzZToNCiAgICAgICAgICAgIGNzc0NsYXNzID0gIm5vbmUiOw0KICAgICAgICAgICAgYnJlYWs7DQogICAgfQ0KICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGVsbUlEKS5jbGFzc05hbWUgPSBjc3NDbGFzczsNCn0NCmZ1bmN0aW9uIGNoYW5nZUJ1dHRvbkFjdGlvbihlbGVtZW50LCBidXR0b25JRCwgYXR0cmlidXRlKSB7DQogICAgdmFyIHZhbHVlID0gZWxlbWVudC5vcHRpb25zW2VsZW1lbnQuc2VsZWN0ZWRJbmRleF0udmFsdWU7DQogICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoYnV0dG9uSUQpLnNldEF0dHJpYnV0ZShhdHRyaWJ1dGUsIHZhbHVlKTsNCn0NCmZ1bmN0aW9uIGdldExvY2FsRGF0YShkYXRhVHlwZSwgaWQpIHsNCiAgICBsZXQgZGF0YSA9IHt9Ow0KICAgIHN3aXRjaCAoZGF0YVR5cGUpIHsNCiAgICAgICAgY2FzZSAibTN1IjoNCiAgICAgICAgICAgIGRhdGEgPSBTRVJWRVJbInNldHRpbmdzIl1bImZpbGVzIl1bZGF0YVR5cGVdW2lkXTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJoZGhyIjoNCiAgICAgICAgICAgIGRhdGEgPSBTRVJWRVJbInNldHRpbmdzIl1bImZpbGVzIl1bZGF0YVR5cGVdW2lkXTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJmaWx0ZXIiOg0KICAgICAgICBjYXNlICJjdXN0b20tZmlsdGVyIjoNCiAgICAgICAgY2FzZSAiZ3JvdXAtdGl0bGUiOg0KICAgICAgICAgICAgaWYgKGlkID09IC0xKSB7DQogICAgICAgICAgICAgICAgZGF0YVsiYWN0aXZlIl0gPSB0cnVlOw0KICAgICAgICAgICAgICAgIGRhdGFbImNhc2VTZW5zaXRpdmUiXSA9IGZhbHNlOw0KICAgICAgICAgICAgICAgIGRhdGFbImRlc2NyaXB0aW9uIl0gPSAiIjsNCiAgICAgICAgICAgICAgICBkYXRhWyJleGNsdWRlIl0gPSAiIjsNCiAgICAgICAgICAgICAgICBkYXRhWyJmaWx0ZXIiXSA9ICIiOw0KICAgICAgICAgICAgICAgIGRhdGFbImluY2x1ZGUiXSA9ICIiOw0KICAgICAgICAgICAgICAgIGRhdGFbIm5hbWUiXSA9ICIiOw0KICAgICAgICAgICAgICAgIGRhdGFbInR5cGUiXSA9ICJncm91cC10aXRsZSI7DQogICAgICAgICAgICAgICAgZGF0YVsicHJlc2VydmVNYXBwaW5nIl0gPSB0cnVlOw0KICAgICAgICAgICAgICAgIGRhdGFbInN0YXJ0aW5nQ2hhbm5lbCJdID0gU0VSVkVSWyJzZXR0aW5ncyJdWyJtYXBwaW5nLmZpcnN0LmNoYW5uZWwiXTsNCiAgICAgICAgICAgICAgICBkYXRhWyJkZWZhdWx0TWlzc2luZ0VQRyJdID0gIi0iOw0KICAgICAgICAgICAgICAgIFNFUlZFUlsic2V0dGluZ3MiXVsiZmlsdGVyIl1baWRdID0gZGF0YTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGRhdGEgPSBTRVJWRVJbInNldHRpbmdzIl1bImZpbHRlciJdW2lkXTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJ4bWx0diI6DQogICAgICAgICAgICBkYXRhID0gU0VSVkVSWyJzZXR0aW5ncyJdWyJmaWxlcyJdW2RhdGFUeXBlXVtpZF07DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSAidXNlcnMiOg0KICAgICAgICAgICAgZGF0YSA9IFNFUlZFUlsidXNlcnMiXVtpZF1bImRhdGEiXTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJtYXBwaW5nIjoNCiAgICAgICAgICAgIGRhdGEgPSBTRVJWRVJbInhlcGciXVsiZXBnTWFwcGluZyJdW2lkXTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJtM3VHcm91cHMiOg0KICAgICAgICAgICAgZGF0YSA9IFNFUlZFUlsiZGF0YSJdWyJwbGF5bGlzdCJdWyJtM3UiXVsiZ3JvdXBzIl07DQogICAgICAgICAgICBicmVhazsNCiAgICB9DQogICAgcmV0dXJuIGRhdGE7DQp9DQpmdW5jdGlvbiBnZXRPYmpLZXlzKG9iaikgew0KICAgIHZhciBrZXlzID0gbmV3IEFycmF5KCk7DQogICAgZm9yICh2YXIgaSBpbiBvYmopIHsNCiAgICAgICAgaWYgKG9iai5oYXNPd25Qcm9wZXJ0eShpKSkgew0KICAgICAgICAgICAga2V5cy5wdXNoKGkpOw0KICAgICAgICB9DQogICAgfQ0KICAgIHJldHVybiBrZXlzOw0KfQ0KZnVuY3Rpb24gZ2V0QWxsU2VsZWN0ZWRDaGFubmVscygpIHsNCiAgICB2YXIgY2hhbm5lbHMgPSBuZXcgQXJyYXkoKTsNCiAgICBpZiAoQlVMS19FRElUID09IGZhbHNlKSB7DQogICAgICAgIHJldHVybiBjaGFubmVsczsNCiAgICB9DQogICAgdmFyIHRycyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb250ZW50X3RhYmxlIikuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlRSIik7DQogICAgZm9yICh2YXIgaSA9IDE7IGkgPCB0cnMubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgaWYgKHRyc1tpXS5zdHlsZS5kaXNwbGF5ICE9ICJub25lIikgew0KICAgICAgICAgICAgaWYgKHRyc1tpXS5maXJzdENoaWxkLmZpcnN0Q2hpbGQuY2hlY2tlZCA9PSB0cnVlKSB7DQogICAgICAgICAgICAgICAgY2hhbm5lbHMucHVzaCh0cnNbaV0uaWQpOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQogICAgfQ0KICAgIHJldHVybiBjaGFubmVsczsNCn0NCmZ1bmN0aW9uIHNlbGVjdEFsbENoYW5uZWxzKCkgew0KICAgIHZhciBidWxrID0gZmFsc2U7DQogICAgdmFyIHRycyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb250ZW50X3RhYmxlIikuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlRSIik7DQogICAgaWYgKHRyc1swXS5maXJzdENoaWxkLmZpcnN0Q2hpbGQuY2hlY2tlZCA9PSB0cnVlKSB7DQogICAgICAgIGJ1bGsgPSB0cnVlOw0KICAgIH0NCiAgICBmb3IgKHZhciBpID0gMTsgaSA8IHRycy5sZW5ndGg7IGkrKykgew0KICAgICAgICBpZiAodHJzW2ldLnN0eWxlLmRpc3BsYXkgIT0gIm5vbmUiKSB7DQogICAgICAgICAgICBzd2l0Y2ggKGJ1bGspIHsNCiAgICAgICAgICAgICAgICBjYXNlIHRydWU6DQogICAgICAgICAgICAgICAgICAgIHRyc1tpXS5maXJzdENoaWxkLmZpcnN0Q2hpbGQuY2hlY2tlZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgZmFsc2U6DQogICAgICAgICAgICAgICAgICAgIHRyc1tpXS5maXJzdENoaWxkLmZpcnN0Q2hpbGQuY2hlY2tlZCA9IGZhbHNlOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KICAgIH0NCiAgICByZXR1cm47DQp9DQpmdW5jdGlvbiBidWxrRWRpdCgpIHsNCiAgICBCVUxLX0VESVQgPSAhQlVMS19FRElUOw0KICAgIHZhciBjbGFzc05hbWU7DQogICAgdmFyIHJvd3MgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCJidWxrIik7DQogICAgc3dpdGNoIChCVUxLX0VESVQpIHsNCiAgICAgICAgY2FzZSB0cnVlOg0KICAgICAgICAgICAgY2xhc3NOYW1lID0gImJ1bGsgc2hvd0J1bGsiOw0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGNhc2UgZmFsc2U6DQogICAgICAgICAgICBjbGFzc05hbWUgPSAiYnVsayBoaWRlQnVsayI7DQogICAgICAgICAgICBicmVhazsNCiAgICB9DQogICAgZm9yICh2YXIgaSA9IDA7IGkgPCByb3dzLmxlbmd0aDsgaSsrKSB7DQogICAgICAgIHJvd3NbaV0uY2xhc3NOYW1lID0gY2xhc3NOYW1lOw0KICAgICAgICByb3dzW2ldLmNoZWNrZWQgPSBmYWxzZTsNCiAgICB9DQogICAgcmV0dXJuOw0KfQ0KZnVuY3Rpb24gc29ydFRhYmxlKGNvbHVtbikgew0KICAgIC8vY29uc29sZS5sb2coY29sdW1tKTsNCiAgICBpZiAoY29sdW1uID09IENPTFVNTl9UT19TT1JUKSB7DQogICAgICAgIHJldHVybjsNCiAgICB9DQogICAgdmFyIHRhYmxlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnRlbnRfdGFibGUiKTsNCiAgICB2YXIgdGFibGVIZWFkID0gdGFibGUuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlRSIilbMF07DQogICAgdmFyIHRhYmxlSXRlbXMgPSB0YWJsZUhlYWQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlREIik7DQogICAgdmFyIHNvcnRPYmogPSBuZXcgT2JqZWN0KCk7DQogICAgdmFyIHgsIHhWYWx1ZTsNCiAgICB2YXIgdGFibGVIZWFkZXI7DQogICAgdmFyIHNvcnRCeVN0cmluZyA9IGZhbHNlOw0KICAgIGlmIChjb2x1bW4gPiAwICYmIENPTFVNTl9UT19TT1JUID4gMCkgew0KICAgICAgICB0YWJsZUl0ZW1zW0NPTFVNTl9UT19TT1JUXS5jbGFzc05hbWUgPSAicG9pbnRlciI7DQogICAgICAgIHRhYmxlSXRlbXNbY29sdW1uXS5jbGFzc05hbWUgPSAic29ydFRoaXMiOw0KICAgIH0NCiAgICBDT0xVTU5fVE9fU09SVCA9IGNvbHVtbjsNCiAgICB2YXIgcm93cyA9IHRhYmxlLnJvd3M7DQogICAgaWYgKHJvd3NbMV0gIT0gdW5kZWZpbmVkKSB7DQogICAgICAgIHRhYmxlSGVhZGVyID0gcm93c1swXTsNCiAgICAgICAgeCA9IHJvd3NbMV0uZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlREIilbY29sdW1uXTsNCiAgICAgICAgZm9yIChpID0gMTsgaSA8IHJvd3MubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgICAgIHggPSByb3dzW2ldLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJURCIpW2NvbHVtbl07DQogICAgICAgICAgICBzd2l0Y2ggKHguY2hpbGROb2Rlc1swXS50YWdOYW1lLnRvTG93ZXJDYXNlKCkpIHsNCiAgICAgICAgICAgICAgICBjYXNlICJpbnB1dCI6DQogICAgICAgICAgICAgICAgICAgIHhWYWx1ZSA9IHguZ2V0RWxlbWVudHNCeVRhZ05hbWUoIklOUFVUIilbMF0udmFsdWUudG9Mb3dlckNhc2UoKTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAicCI6DQogICAgICAgICAgICAgICAgICAgIHhWYWx1ZSA9IHguZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlAiKVswXS5pbm5lclRleHQudG9Mb3dlckNhc2UoKTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgZGVmYXVsdDogY29uc29sZS5sb2coeC5jaGlsZE5vZGVzWzBdLnRhZ05hbWUpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgaWYgKHhWYWx1ZSA9PSAiIiB8fCB4VmFsdWUgPT0gTmFOKSB7DQogICAgICAgICAgICAgICAgeFZhbHVlID0gaTsNCiAgICAgICAgICAgICAgICBzb3J0T2JqW2ldID0gcm93c1tpXTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgICAgIHN3aXRjaCAoaXNOYU4oeFZhbHVlKSB8fCB0eXBlb2YgeFZhbHVlID09ICJzdHJpbmciKSB7DQogICAgICAgICAgICAgICAgICAgIGNhc2UgZmFsc2U6DQogICAgICAgICAgICAgICAgICAgICAgICB4VmFsdWUgPSBwYXJzZUZsb2F0KHhWYWx1ZSk7DQogICAgICAgICAgICAgICAgICAgICAgICBzb3J0T2JqW3hWYWx1ZV0gPSByb3dzW2ldOw0KICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgICAgIGNhc2UgdHJ1ZToNCiAgICAgICAgICAgICAgICAgICAgICAgIHNvcnRCeVN0cmluZyA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBzb3J0T2JqW3hWYWx1ZS50b0xvd2VyQ2FzZSgpICsgaV0gPSByb3dzW2ldOw0KICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQogICAgICAgIHdoaWxlICh0YWJsZS5maXJzdENoaWxkKSB7DQogICAgICAgICAgICB0YWJsZS5yZW1vdmVDaGlsZCh0YWJsZS5maXJzdENoaWxkKTsNCiAgICAgICAgfQ0KICAgICAgICB2YXIgc29ydFZhbHVlcyA9IGdldE9iaktleXMoc29ydE9iaik7DQogICAgICAgIGlmIChzb3J0QnlTdHJpbmcgPT0gdHJ1ZSkgew0KICAgICAgICAgICAgc29ydFZhbHVlcy5zb3J0KCk7DQogICAgICAgICAgICBjb25zb2xlLmxvZyhzb3J0VmFsdWVzKTsNCiAgICAgICAgfQ0KICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgIGZ1bmN0aW9uIHNvcnRGbG9hdChhLCBiKSB7DQogICAgICAgICAgICAgICAgcmV0dXJuIGEgLSBiOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgc29ydFZhbHVlcy5zb3J0KHNvcnRGbG9hdCk7DQogICAgICAgIH0NCiAgICAgICAgdGFibGUuYXBwZW5kQ2hpbGQodGFibGVIZWFkZXIpOw0KICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHNvcnRWYWx1ZXMubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgICAgIHRhYmxlLmFwcGVuZENoaWxkKHNvcnRPYmpbc29ydFZhbHVlc1tpXV0pOw0KICAgICAgICB9DQogICAgfQ0KICAgIHJldHVybjsNCn0NCmZ1bmN0aW9uIGNyZWF0ZVNlYXJjaE9iaigpIHsNCiAgICBTRUFSQ0hfTUFQUElORyA9IG5ldyBPYmplY3QoKTsNCiAgICB2YXIgZGF0YSA9IFNFUlZFUlsieGVwZyJdWyJlcGdNYXBwaW5nIl07DQogICAgdmFyIGNoYW5uZWxzID0gZ2V0T2JqS2V5cyhkYXRhKTsNCiAgICB2YXIgY2hhbm5lbEtleXMgPSBbIngtYWN0aXZlIiwgIngtY2hhbm5lbElEIiwgIngtbmFtZSIsICJfZmlsZS5tM3UubmFtZSIsICJ4LWdyb3VwLXRpdGxlIiwgIngteG1sdHYtZmlsZSJdOw0KICAgIGNoYW5uZWxzLmZvckVhY2goaWQgPT4gew0KICAgICAgICBjaGFubmVsS2V5cy5mb3JFYWNoKGtleSA9PiB7DQogICAgICAgICAgICBpZiAoa2V5ID09ICJ4LWFjdGl2ZSIpIHsNCiAgICAgICAgICAgICAgICBzd2l0Y2ggKGRhdGFbaWRdW2tleV0pIHsNCiAgICAgICAgICAgICAgICAgICAgY2FzZSB0cnVlOg0KICAgICAgICAgICAgICAgICAgICAgICAgU0VBUkNIX01BUFBJTkdbaWRdID0gIm9ubGluZSAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgICAgIGNhc2UgZmFsc2U6DQogICAgICAgICAgICAgICAgICAgICAgICBTRUFSQ0hfTUFQUElOR1tpZF0gPSAib2ZmbGluZSAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgZWxzZSB7DQogICAgICAgICAgICAgICAgaWYgKGtleSA9PSAieC14bWx0di1maWxlIikgew0KICAgICAgICAgICAgICAgICAgICB2YXIgeG1sdHZGaWxlID0gZ2V0VmFsdWVGcm9tUHJvdmlkZXJGaWxlKGRhdGFbaWRdW2tleV0sICJ4bWx0diIsICJuYW1lIik7DQogICAgICAgICAgICAgICAgICAgIGlmICh4bWx0dkZpbGUgIT0gdW5kZWZpbmVkKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBTRUFSQ0hfTUFQUElOR1tpZF0gPSBTRUFSQ0hfTUFQUElOR1tpZF0gKyB4bWx0dkZpbGUgKyAiICI7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgZWxzZSB7DQogICAgICAgICAgICAgICAgICAgIFNFQVJDSF9NQVBQSU5HW2lkXSA9IFNFQVJDSF9NQVBQSU5HW2lkXSArIGRhdGFbaWRdW2tleV0gKyAiICI7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfQ0KICAgICAgICB9KTsNCiAgICB9KTsNCiAgICByZXR1cm47DQp9DQpmdW5jdGlvbiBzZWFyY2hJbk1hcHBpbmcoKSB7DQogICAgdmFyIHNlYXJjaFZhbHVlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNlYXJjaE1hcHBpbmciKS52YWx1ZTsNCiAgICB2YXIgdHJzID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnRlbnRfdGFibGUiKS5nZXRFbGVtZW50c0J5VGFnTmFtZSgiVFIiKTsNCiAgICBmb3IgKHZhciBpID0gMTsgaSA8IHRycy5sZW5ndGg7ICsraSkgew0KICAgICAgICB2YXIgaWQgPSB0cnNbaV0uZ2V0QXR0cmlidXRlKCJpZCIpOw0KICAgICAgICB2YXIgZWxlbWVudCA9IFNFQVJDSF9NQVBQSU5HW2lkXTsNCiAgICAgICAgc3dpdGNoIChlbGVtZW50LnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoc2VhcmNoVmFsdWUudG9Mb3dlckNhc2UoKSkpIHsNCiAgICAgICAgICAgIGNhc2UgdHJ1ZToNCiAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkuc3R5bGUuZGlzcGxheSA9ICIiOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSBmYWxzZToNCiAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkuc3R5bGUuZGlzcGxheSA9ICJub25lIjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgfQ0KICAgIH0NCiAgICByZXR1cm47DQp9DQpmdW5jdGlvbiBjYWxjdWxhdGVXcmFwcGVySGVpZ2h0KCkgew0KICAgIGlmIChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYm94LXdyYXBwZXIiKSkgew0KICAgICAgICB2YXIgZWxtID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImJveC13cmFwcGVyIik7DQogICAgICAgIHZhciBkaXZzID0gbmV3IEFycmF5KCJteVN0cmVhbXNCb3giLCAiY2xpZW50SW5mbyIsICJjb250ZW50Iik7DQogICAgICAgIHZhciBlbGVtZW50c0hlaWdodCA9IDAgLSBlbG0ub2Zmc2V0SGVpZ2h0Ow0KICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGRpdnMubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgICAgIGVsZW1lbnRzSGVpZ2h0ID0gZWxlbWVudHNIZWlnaHQgKyBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChkaXZzW2ldKS5vZmZzZXRIZWlnaHQ7DQogICAgICAgIH0NCiAgICAgICAgZWxtLnN0eWxlLmhlaWdodCA9IHdpbmRvdy5pbm5lckhlaWdodCAtIGVsZW1lbnRzSGVpZ2h0ICsgInB4IjsNCiAgICB9DQogICAgcmV0dXJuOw0KfQ0KZnVuY3Rpb24gY2hhbmdlQ2hhbm5lbE51bWJlcihlbGVtZW50KSB7DQogICAgdmFyIGRiSUQgPSBlbGVtZW50LnBhcmVudE5vZGUucGFyZW50Tm9kZS5pZDsNCiAgICB2YXIgbmV3TnVtYmVyID0gcGFyc2VGbG9hdChlbGVtZW50LnZhbHVlKTsNCiAgICB2YXIgY2hhbm5lbE51bWJlcnMgPSBbXTsNCiAgICB2YXIgZGF0YSA9IFNFUlZFUlsieGVwZyJdWyJlcGdNYXBwaW5nIl07DQogICAgdmFyIGNoYW5uZWxzID0gZ2V0T2JqS2V5cyhkYXRhKTsNCiAgICBpZiAoaXNOYU4obmV3TnVtYmVyKSkgew0KICAgICAgICBhbGVydCgie3suYWxlcnQuaW52YWxpZENoYW5uZWxOdW1iZXJ9fSIpOw0KICAgICAgICByZXR1cm47DQogICAgfQ0KICAgIGNoYW5uZWxzLmZvckVhY2goaWQgPT4gew0KICAgICAgICB2YXIgY2hhbm5lbE51bWJlciA9IHBhcnNlRmxvYXQoZGF0YVtpZF1bIngtY2hhbm5lbElEIl0pOw0KICAgICAgICBjaGFubmVsTnVtYmVycy5wdXNoKGNoYW5uZWxOdW1iZXIpOw0KICAgIH0pOw0KICAgIGZvciAodmFyIGkgPSAwOyBpIDwgY2hhbm5lbE51bWJlcnMubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgaWYgKGNoYW5uZWxOdW1iZXJzLmluZGV4T2YobmV3TnVtYmVyKSA9PSAtMSkgew0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIH0NCiAgICAgICAgaWYgKE1hdGguZmxvb3IobmV3TnVtYmVyKSA9PSBuZXdOdW1iZXIpIHsNCiAgICAgICAgICAgIG5ld051bWJlciA9IG5ld051bWJlciArIDE7DQogICAgICAgIH0NCiAgICAgICAgZWxzZSB7DQogICAgICAgICAgICBuZXdOdW1iZXIgPSBuZXdOdW1iZXIgKyAwLjE7DQogICAgICAgICAgICBuZXdOdW1iZXIudG9GaXhlZCgxKTsNCiAgICAgICAgICAgIG5ld051bWJlciA9IE1hdGgucm91bmQobmV3TnVtYmVyICogMTApIC8gMTA7DQogICAgICAgIH0NCiAgICB9DQogICAgZGF0YVtkYklEXVsieC1jaGFubmVsSUQiXSA9IG5ld051bWJlci50b1N0cmluZygpOw0KICAgIGVsZW1lbnQudmFsdWUgPSBuZXdOdW1iZXI7DQogICAgY29uc29sZS5sb2coZGF0YVtkYklEXVsieC1jaGFubmVsSUQiXSk7DQogICAgaWYgKENPTFVNTl9UT19TT1JUID09IDEpIHsNCiAgICAgICAgQ09MVU1OX1RPX1NPUlQgPSAtMTsNCiAgICAgICAgc29ydFRhYmxlKDEpOw0KICAgIH0NCiAgICByZXR1cm47DQp9DQpmdW5jdGlvbiBiYWNrdXAoKSB7DQogICAgdmFyIGRhdGEgPSBuZXcgT2JqZWN0KCk7DQogICAgY29uc29sZS5sb2coIkJhY2t1cCBkYXRhIik7DQogICAgdmFyIGNtZCA9ICJ4dGV2ZUJhY2t1cCI7DQogICAgY29uc29sZS5sb2coIlNFTkQgVE8gU0VSVkVSIik7DQogICAgY29uc29sZS5sb2coZGF0YSk7DQogICAgdmFyIHNlcnZlciA9IG5ldyBTZXJ2ZXIoY21kKTsNCiAgICBzZXJ2ZXIucmVxdWVzdChkYXRhKTsNCiAgICByZXR1cm47DQp9DQpmdW5jdGlvbiB0b2dnbGVDaGFubmVsU3RhdHVzKGlkKSB7DQogICAgdmFyIGVsZW1lbnQ7DQogICAgdmFyIHN0YXR1czsNCiAgICBpZiAoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImFjdGl2ZSIpKSB7DQogICAgICAgIHZhciBjaGVja2JveCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJhY3RpdmUiKTsNCiAgICAgICAgc3RhdHVzID0gKGNoZWNrYm94KS5jaGVja2VkOw0KICAgIH0NCiAgICB2YXIgaWRzID0gZ2V0QWxsU2VsZWN0ZWRDaGFubmVscygpOw0KICAgIGlmIChpZHMubGVuZ3RoID09IDApIHsNCiAgICAgICAgaWRzLnB1c2goaWQpOw0KICAgIH0NCiAgICBpZHMuZm9yRWFjaChpZCA9PiB7DQogICAgICAgIHZhciBjaGFubmVsID0gU0VSVkVSWyJ4ZXBnIl1bImVwZ01hcHBpbmciXVtpZF07DQogICAgICAgIGNoYW5uZWxbIngtYWN0aXZlIl0gPSBzdGF0dXM7DQogICAgICAgIHN3aXRjaCAoY2hhbm5lbFsieC1hY3RpdmUiXSkgew0KICAgICAgICAgICAgY2FzZSB0cnVlOg0KICAgICAgICAgICAgICAgIGlmIChjaGFubmVsWyJ4LXhtbHR2LWZpbGUiXSA9PSAiLSIgfHwgY2hhbm5lbFsieC1tYXBwaW5nIl0gPT0gIi0iKSB7DQogICAgICAgICAgICAgICAgICAgIGlmIChCVUxLX0VESVQgPT0gZmFsc2UpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGFsZXJ0KGNoYW5uZWxbIngtbmFtZSJdICsgIjogTWlzc2luZyBYTUxUViBmaWxlIC8gY2hhbm5lbCIpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2hlY2tib3guY2hlY2tlZCA9IGZhbHNlOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIGNoYW5uZWxbIngtYWN0aXZlIl0gPSBmYWxzZTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlIGZhbHNlOg0KICAgICAgICAgICAgICAgIC8vIGNvZGUuLi4NCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgfQ0KICAgICAgICBpZiAoY2hhbm5lbFsieC1hY3RpdmUiXSA9PSBmYWxzZSkgew0KICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpLmNsYXNzTmFtZSA9ICJub3RBY3RpdmVFUEciOw0KICAgICAgICB9DQogICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpLmNsYXNzTmFtZSA9ICJhY3RpdmVFUEciOw0KICAgICAgICB9DQogICAgfSk7DQp9DQpmdW5jdGlvbiByZXN0b3JlKCkgew0KICAgIGlmIChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndXBsb2FkJykpIHsNCiAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3VwbG9hZCcpLnJlbW92ZSgpOw0KICAgIH0NCiAgICB2YXIgcmVzdG9yZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIklOUFVUIik7DQogICAgcmVzdG9yZS5zZXRBdHRyaWJ1dGUoInR5cGUiLCAiZmlsZSIpOw0KICAgIHJlc3RvcmUuc2V0QXR0cmlidXRlKCJjbGFzcyIsICJub3RWaXNpYmxlIik7DQogICAgcmVzdG9yZS5zZXRBdHRyaWJ1dGUoIm5hbWUiLCAiIik7DQogICAgcmVzdG9yZS5pZCA9ICJ1cGxvYWQiOw0KICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQocmVzdG9yZSk7DQogICAgcmVzdG9yZS5jbGljaygpOw0KICAgIHJlc3RvcmUub25jaGFuZ2UgPSBmdW5jdGlvbiAoKSB7DQogICAgICAgIHZhciBmaWxlbmFtZSA9IHJlc3RvcmUuZmlsZXNbMF0ubmFtZTsNCiAgICAgICAgdmFyIGNoZWNrID0gY29uZmlybSgiRmlsZTogIiArIGZpbGVuYW1lICsgIlxue3suY29uZmlybS5yZXN0b3JlfX0iKTsNCiAgICAgICAgaWYgKGNoZWNrID09IHRydWUpIHsNCiAgICAgICAgICAgIHZhciByZWFkZXIgPSBuZXcgRmlsZVJlYWRlcigpOw0KICAgICAgICAgICAgdmFyIGZpbGUgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCdpbnB1dFt0eXBlPWZpbGVdJykuZmlsZXNbMF07DQogICAgICAgICAgICBpZiAoZmlsZSkgew0KICAgICAgICAgICAgICAgIHJlYWRlci5yZWFkQXNEYXRhVVJMKGZpbGUpOw0KICAgICAgICAgICAgICAgIHJlYWRlci5vbmxvYWQgPSBmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKHJlYWRlci5yZXN1bHQpOw0KICAgICAgICAgICAgICAgICAgICB2YXIgZGF0YSA9IG5ldyBPYmplY3QoKTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGNtZCA9ICJ4dGV2ZVJlc3RvcmUiOw0KICAgICAgICAgICAgICAgICAgICBkYXRhWyJiYXNlNjQiXSA9IHJlYWRlci5yZXN1bHQ7DQogICAgICAgICAgICAgICAgICAgIHZhciBzZXJ2ZXIgPSBuZXcgU2VydmVyKGNtZCk7DQogICAgICAgICAgICAgICAgICAgIHNlcnZlci5yZXF1ZXN0KGRhdGEpOw0KICAgICAgICAgICAgICAgIH07DQogICAgICAgICAgICB9DQogICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICBhbGVydCgiRmlsZSBjb3VsZCBub3QgYmUgbG9hZGVkIik7DQogICAgICAgICAgICB9DQogICAgICAgICAgICByZXN0b3JlLnJlbW92ZSgpOw0KICAgICAgICAgICAgcmV0dXJuOw0KICAgICAgICB9DQogICAgfTsNCiAgICByZXR1cm47DQp9DQpmdW5jdGlvbiB1cGxvYWRMb2dvKCkgew0KICAgIGlmIChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndXBsb2FkJykpIHsNCiAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3VwbG9hZCcpLnJlbW92ZSgpOw0KICAgIH0NCiAgICB2YXIgdXBsb2FkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiSU5QVVQiKTsNCiAgICB1cGxvYWQuc2V0QXR0cmlidXRlKCJ0eXBlIiwgImZpbGUiKTsNCiAgICB1cGxvYWQuc2V0QXR0cmlidXRlKCJjbGFzcyIsICJub3RWaXNpYmxlIik7DQogICAgdXBsb2FkLnNldEF0dHJpYnV0ZSgibmFtZSIsICIiKTsNCiAgICB1cGxvYWQuaWQgPSAidXBsb2FkIjsNCiAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHVwbG9hZCk7DQogICAgdXBsb2FkLmNsaWNrKCk7DQogICAgdXBsb2FkLm9uYmx1ciA9IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgYWxlcnQoKTsNCiAgICB9Ow0KICAgIHVwbG9hZC5vbmNoYW5nZSA9IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgdmFyIGZpbGVuYW1lID0gdXBsb2FkLmZpbGVzWzBdLm5hbWU7DQogICAgICAgIHZhciByZWFkZXIgPSBuZXcgRmlsZVJlYWRlcigpOw0KICAgICAgICB2YXIgZmlsZSA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ2lucHV0W3R5cGU9ZmlsZV0nKS5maWxlc1swXTsNCiAgICAgICAgaWYgKGZpbGUpIHsNCiAgICAgICAgICAgIHJlYWRlci5yZWFkQXNEYXRhVVJMKGZpbGUpOw0KICAgICAgICAgICAgcmVhZGVyLm9ubG9hZCA9IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhyZWFkZXIucmVzdWx0KTsNCiAgICAgICAgICAgICAgICB2YXIgZGF0YSA9IG5ldyBPYmplY3QoKTsNCiAgICAgICAgICAgICAgICB2YXIgY21kID0gInVwbG9hZExvZ28iOw0KICAgICAgICAgICAgICAgIGRhdGFbImJhc2U2NCJdID0gcmVhZGVyLnJlc3VsdDsNCiAgICAgICAgICAgICAgICBkYXRhWyJmaWxlbmFtZSJdID0gZmlsZS5uYW1lOw0KICAgICAgICAgICAgICAgIHZhciBzZXJ2ZXIgPSBuZXcgU2VydmVyKGNtZCk7DQogICAgICAgICAgICAgICAgc2VydmVyLnJlcXVlc3QoZGF0YSk7DQogICAgICAgICAgICAgICAgdmFyIHVwZGF0ZUxvZ28gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndXBkYXRlLWljb24nKTsNCiAgICAgICAgICAgICAgICB1cGRhdGVMb2dvLmNoZWNrZWQgPSBmYWxzZTsNCiAgICAgICAgICAgICAgICB1cGRhdGVMb2dvLmNsYXNzTmFtZSA9ICJjaGFuZ2VkIjsNCiAgICAgICAgICAgIH07DQogICAgICAgIH0NCiAgICAgICAgZWxzZSB7DQogICAgICAgICAgICBhbGVydCgiRmlsZSBjb3VsZCBub3QgYmUgbG9hZGVkIik7DQogICAgICAgIH0NCiAgICAgICAgdXBsb2FkLnJlbW92ZSgpOw0KICAgICAgICByZXR1cm47DQogICAgfTsNCn0NCmZ1bmN0aW9uIGNoZWNrVW5kbyhrZXkpIHsNCiAgICBzd2l0Y2ggKGtleSkgew0KICAgICAgICBjYXNlICJlcGdNYXBwaW5nIjoNCiAgICAgICAgICAgIGlmIChVTkRPLmhhc093blByb3BlcnR5KGtleSkpIHsNCiAgICAgICAgICAgICAgICBTRVJWRVJbInhlcGciXVtrZXldID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeShVTkRPW2tleV0pKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgICAgIFVORE9ba2V5XSA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkoU0VSVkVSWyJ4ZXBnIl1ba2V5XSkpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICBicmVhazsNCiAgICB9DQogICAgcmV0dXJuOw0KfQ0KZnVuY3Rpb24gc29ydFNlbGVjdChlbGVtKSB7DQogICAgdmFyIHRtcEFyeSA9IFtdOw0KICAgIHZhciBzZWxlY3RlZFZhbHVlID0gZWxlbVtlbGVtLnNlbGVjdGVkSW5kZXhdLnZhbHVlOw0KICAgIGZvciAodmFyIGkgPSAwOyBpIDwgZWxlbS5vcHRpb25zLmxlbmd0aDsgaSsrKQ0KICAgICAgICB0bXBBcnkucHVzaChlbGVtLm9wdGlvbnNbaV0pOw0KICAgIHRtcEFyeS5zb3J0KGZ1bmN0aW9uIChhLCBiKSB7IHJldHVybiAoYS50ZXh0IDwgYi50ZXh0KSA/IC0xIDogMTsgfSk7DQogICAgd2hpbGUgKGVsZW0ub3B0aW9ucy5sZW5ndGggPiAwKQ0KICAgICAgICBlbGVtLm9wdGlvbnNbMF0gPSBudWxsOw0KICAgIHZhciBuZXdTZWxlY3RlZEluZGV4ID0gMDsNCiAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRtcEFyeS5sZW5ndGg7IGkrKykgew0KICAgICAgICBlbGVtLm9wdGlvbnNbaV0gPSB0bXBBcnlbaV07DQogICAgICAgIGlmIChlbGVtLm9wdGlvbnNbaV0udmFsdWUgPT0gc2VsZWN0ZWRWYWx1ZSkNCiAgICAgICAgICAgIG5ld1NlbGVjdGVkSW5kZXggPSBpOw0KICAgIH0NCiAgICBlbGVtLnNlbGVjdGVkSW5kZXggPSBuZXdTZWxlY3RlZEluZGV4OyAvLyBTZXQgbmV3IHNlbGVjdGVkIGluZGV4IGFmdGVyIHNvcnRpbmcNCiAgICByZXR1cm47DQp9DQpmdW5jdGlvbiB1cGRhdGVMb2coKSB7DQogICAgY29uc29sZS5sb2coIlRPS0VOIik7DQogICAgdmFyIHNlcnZlciA9IG5ldyBTZXJ2ZXIoInVwZGF0ZUxvZyIpOw0KICAgIHNlcnZlci5yZXF1ZXN0KG5ldyBPYmplY3QoKSk7DQp9DQo=" + webUI["html/js/menu_ts.js"] = "Y2xhc3MgTWFpbk1lbnUgew0KICAgIGNvbnN0cnVjdG9yKCkgew0KICAgICAgICB0aGlzLkRvY3VtZW50SUQgPSAibWFpbi1tZW51IjsNCiAgICAgICAgdGhpcy5IVE1MVGFnID0gIkxJIjsNCiAgICAgICAgdGhpcy5JbWFnZVBhdGggPSAiaW1nLyI7DQogICAgfQ0KICAgIGNyZWF0ZUlNRyhzcmMpIHsNCiAgICAgICAgbGV0IGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJJTUciKTsNCiAgICAgICAgZWxlbWVudC5zZXRBdHRyaWJ1dGUoInNyYyIsIHRoaXMuSW1hZ2VQYXRoICsgc3JjKTsNCiAgICAgICAgcmV0dXJuIGVsZW1lbnQ7DQogICAgfQ0KICAgIGNyZWF0ZVZhbHVlKHZhbHVlKSB7DQogICAgICAgIGxldCBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiUCIpOw0KICAgICAgICBlbGVtZW50LmlubmVySFRNTCA9IHZhbHVlOw0KICAgICAgICByZXR1cm4gZWxlbWVudDsNCiAgICB9DQp9DQpjbGFzcyBNYWluTWVudUl0ZW0gZXh0ZW5kcyBNYWluTWVudSB7DQogICAgY29uc3RydWN0b3IobWVudUtleSwgdmFsdWUsIGltYWdlLCBoZWFkbGluZSkgew0KICAgICAgICBzdXBlcigpOw0KICAgICAgICB0aGlzLm1lbnVLZXkgPSBtZW51S2V5Ow0KICAgICAgICB0aGlzLnZhbHVlID0gdmFsdWU7DQogICAgICAgIHRoaXMuaW1nU3JjID0gaW1hZ2U7DQogICAgICAgIHRoaXMuaGVhZGxpbmUgPSBoZWFkbGluZTsNCiAgICB9DQogICAgY3JlYXRlSXRlbSgpIHsNCiAgICAgICAgbGV0IGl0ZW0gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJMSSIpOw0KICAgICAgICBpdGVtLnNldEF0dHJpYnV0ZSgib25jbGljayIsICJqYXZhc2NyaXB0OiBvcGVuVGhpc01lbnUodGhpcykiKTsNCiAgICAgICAgaXRlbS5zZXRBdHRyaWJ1dGUoImlkIiwgdGhpcy5pZCk7DQogICAgICAgIGxldCBpbWcgPSB0aGlzLmNyZWF0ZUlNRyh0aGlzLmltZ1NyYyk7DQogICAgICAgIGxldCB2YWx1ZSA9IHRoaXMuY3JlYXRlVmFsdWUodGhpcy52YWx1ZSk7DQogICAgICAgIGl0ZW0uYXBwZW5kQ2hpbGQoaW1nKTsNCiAgICAgICAgaXRlbS5hcHBlbmRDaGlsZCh2YWx1ZSk7DQogICAgICAgIGxldCBkb2MgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCh0aGlzLkRvY3VtZW50SUQpOw0KICAgICAgICBkb2MuYXBwZW5kQ2hpbGQoaXRlbSk7DQogICAgICAgIHN3aXRjaCAodGhpcy5tZW51S2V5KSB7DQogICAgICAgICAgICBjYXNlICJwbGF5bGlzdCI6DQogICAgICAgICAgICAgICAgdGhpcy50YWJsZUhlYWRlciA9IFsie3sucGxheWxpc3QudGFibGUucGxheWxpc3R9fSIsICJ7ey5wbGF5bGlzdC50YWJsZS50dW5lcn19IiwgInt7LnBsYXlsaXN0LnRhYmxlLmxhc3RVcGRhdGV9fSIsICJ7ey5wbGF5bGlzdC50YWJsZS5hdmFpbGFiaWxpdHl9fSAlIiwgInt7LnBsYXlsaXN0LnRhYmxlLnR5cGV9fSIsICJ7ey5wbGF5bGlzdC50YWJsZS5zdHJlYW1zfX0iLCAie3sucGxheWxpc3QudGFibGUuZ3JvdXBUaXRsZX19ICUiLCAie3sucGxheWxpc3QudGFibGUudHZnSUR9fSAlIiwgInt7LnBsYXlsaXN0LnRhYmxlLnVuaXF1ZUlEfX0gJSJdOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAieG1sdHYiOg0KICAgICAgICAgICAgICAgIHRoaXMudGFibGVIZWFkZXIgPSBbInt7LnhtbHR2LnRhYmxlLmd1aWRlfX0iLCAie3sueG1sdHYudGFibGUubGFzdFVwZGF0ZX19IiwgInt7LnhtbHR2LnRhYmxlLmF2YWlsYWJpbGl0eX19ICUiLCAie3sueG1sdHYudGFibGUuY2hhbm5lbHN9fSIsICJ7ey54bWx0di50YWJsZS5wcm9ncmFtc319Il07DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJmaWx0ZXIiOg0KICAgICAgICAgICAgICAgIHRoaXMudGFibGVIZWFkZXIgPSBbInt7LmZpbHRlci50YWJsZS5uYW1lfX0iLCAie3suZmlsdGVyLnRhYmxlLnR5cGV9fSIsICJ7ey5maWx0ZXIudGFibGUuZmlsdGVyfX0iXTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInVzZXJzIjoNCiAgICAgICAgICAgICAgICB0aGlzLnRhYmxlSGVhZGVyID0gWyJ7ey51c2Vycy50YWJsZS51c2VybmFtZX19IiwgInt7LnVzZXJzLnRhYmxlLnBhc3N3b3JkfX0iLCAie3sudXNlcnMudGFibGUud2VifX0iLCAie3sudXNlcnMudGFibGUucG1zfX0iLCAie3sudXNlcnMudGFibGUubTN1fX0iLCAie3sudXNlcnMudGFibGUueG1sfX0iLCAie3sudXNlcnMudGFibGUuYXBpfX0iXTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgIm1hcHBpbmciOg0KICAgICAgICAgICAgICAgIHRoaXMudGFibGVIZWFkZXIgPSBbIkJVTEsiLCAie3subWFwcGluZy50YWJsZS5jaE5vfX0iLCAie3subWFwcGluZy50YWJsZS5sb2dvfX0iLCAie3subWFwcGluZy50YWJsZS5jaGFubmVsTmFtZX19IiwgInt7Lm1hcHBpbmcudGFibGUucGxheWxpc3R9fSIsICJ7ey5tYXBwaW5nLnRhYmxlLmdyb3VwVGl0bGV9fSIsICJ7ey5tYXBwaW5nLnRhYmxlLnhtbHR2RmlsZX19IiwgInt7Lm1hcHBpbmcudGFibGUueG1sdHZJRH19IiwgInt7Lm1hcHBpbmcudGFibGUudGltZXNoaWZ0fX0iXTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgfQ0KICAgICAgICAvL2NvbnNvbGUubG9nKHRoaXMubWVudUtleSwgdGhpcy50YWJsZUhlYWRlcik7DQogICAgfQ0KfQ0KY2xhc3MgQ29udGVudCB7DQogICAgY29uc3RydWN0b3IoKSB7DQogICAgICAgIHRoaXMuRG9jdW1lbnRJRCA9ICJjb250ZW50IjsNCiAgICAgICAgdGhpcy5UYWJsZUlEID0gImNvbnRlbnRfdGFibGUiOw0KICAgICAgICB0aGlzLmhlYWRlckNsYXNzID0gImNvbnRlbnRfdGFibGVfaGVhZGVyIjsNCiAgICAgICAgdGhpcy5pbnRlcmFjdGlvbklEID0gImNvbnRlbnQtaW50ZXJhY3Rpb24iOw0KICAgIH0NCiAgICBjcmVhdGVIZWFkbGluZSh2YWx1ZSkgew0KICAgICAgICBsZXQgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIkgzIik7DQogICAgICAgIGVsZW1lbnQuaW5uZXJIVE1MID0gdmFsdWU7DQogICAgICAgIHJldHVybiBlbGVtZW50Ow0KICAgIH0NCiAgICBjcmVhdGVIUigpIHsNCiAgICAgICAgcmV0dXJuIGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIkhSIik7DQogICAgfQ0KICAgIGNyZWF0ZUludGVyYWN0aW9uKCkgew0KICAgICAgICBsZXQgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIkRJViIpOw0KICAgICAgICBlbGVtZW50LnNldEF0dHJpYnV0ZSgiaWQiLCB0aGlzLmludGVyYWN0aW9uSUQpOw0KICAgICAgICByZXR1cm4gZWxlbWVudDsNCiAgICB9DQogICAgY3JlYXRlRElWKCkgew0KICAgICAgICBsZXQgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIkRJViIpOw0KICAgICAgICBlbGVtZW50LmlkID0gdGhpcy5EaXZJRDsNCiAgICAgICAgcmV0dXJuIGVsZW1lbnQ7DQogICAgfQ0KICAgIGNyZWF0ZVRBQkxFKCkgew0KICAgICAgICBsZXQgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlRBQkxFIik7DQogICAgICAgIGVsZW1lbnQuaWQgPSB0aGlzLlRhYmxlSUQ7DQogICAgICAgIHJldHVybiBlbGVtZW50Ow0KICAgIH0NCiAgICBjcmVhdGVUYWJsZVJvdygpIHsNCiAgICAgICAgbGV0IGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJUUiIpOw0KICAgICAgICBlbGVtZW50LmNsYXNzTmFtZSA9IHRoaXMuaGVhZGVyQ2xhc3M7DQogICAgICAgIHJldHVybiBlbGVtZW50Ow0KICAgIH0NCiAgICBjcmVhdGVUYWJsZUNvbnRlbnQobWVudUtleSkgew0KICAgICAgICBsZXQgZGF0YSA9IHt9Ow0KICAgICAgICBsZXQgcm93cyA9IFtdOw0KICAgICAgICBsZXQgZmlsZVR5cGVzID0gW107DQogICAgICAgIHN3aXRjaCAobWVudUtleSkgew0KICAgICAgICAgICAgY2FzZSAicGxheWxpc3QiOg0KICAgICAgICAgICAgICAgIGZpbGVUeXBlcyA9IFsibTN1IiwgImhkaHIiXTsNCiAgICAgICAgICAgICAgICBmaWxlVHlwZXMuZm9yRWFjaChmaWxlVHlwZSA9PiB7DQogICAgICAgICAgICAgICAgICAgIGRhdGEgPSBTRVJWRVJbInNldHRpbmdzIl1bImZpbGVzIl1bZmlsZVR5cGVdOw0KICAgICAgICAgICAgICAgICAgICB2YXIga2V5cyA9IGdldE9iaktleXMoZGF0YSk7DQogICAgICAgICAgICAgICAgICAgIGtleXMuZm9yRWFjaChrZXkgPT4gew0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVFIiKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmlkID0ga2V5Ow0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgiJyArIGZpbGVUeXBlICsgJyIsIHRoaXMpJyk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsibmFtZSJdOw0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChTRVJWRVJbInNldHRpbmdzIl1bImJ1ZmZlciJdICE9ICItIikgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bInR1bmVyIl07DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gIi0iOw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bImxhc3QudXBkYXRlIl07DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsicHJvdmlkZXIuYXZhaWxhYmlsaXR5Il07DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsidHlwZSJdLnRvVXBwZXJDYXNlKCk7DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsiY29tcGF0aWJpbGl0eSJdWyJzdHJlYW1zIl07DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsiY29tcGF0aWJpbGl0eSJdWyJncm91cC50aXRsZSJdOw0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bImNvbXBhdGliaWxpdHkiXVsidHZnLmlkIl07DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsiY29tcGF0aWJpbGl0eSJdWyJzdHJlYW0uaWQiXTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHJvd3MucHVzaCh0cik7DQogICAgICAgICAgICAgICAgICAgIH0pOw0KICAgICAgICAgICAgICAgIH0pOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiZmlsdGVyIjoNCiAgICAgICAgICAgICAgICBkZWxldGUgU0VSVkVSWyJzZXR0aW5ncyJdWyJmaWx0ZXIiXVstMV07DQogICAgICAgICAgICAgICAgZGF0YSA9IFNFUlZFUlsic2V0dGluZ3MiXVsiZmlsdGVyIl07DQogICAgICAgICAgICAgICAgdmFyIGtleXMgPSBnZXRPYmpLZXlzKGRhdGEpOw0KICAgICAgICAgICAgICAgIGtleXMuZm9yRWFjaChrZXkgPT4gew0KICAgICAgICAgICAgICAgICAgICB2YXIgdHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJUUiIpOw0KICAgICAgICAgICAgICAgICAgICB0ci5pZCA9IGtleTsNCiAgICAgICAgICAgICAgICAgICAgdHIuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgiJyArIGRhdGFba2V5XVsidHlwZSJdICsgJyIsIHRoaXMpJyk7DQogICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJuYW1lIl07DQogICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgIHN3aXRjaCAoZGF0YVtrZXldWyJ0eXBlIl0pIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgImN1c3RvbS1maWx0ZXIiOg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSAie3suZmlsdGVyLmN1c3RvbX19IjsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgImdyb3VwLXRpdGxlIjoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gInt7LmZpbHRlci5ncm91cH19IjsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsiZmlsdGVyIl07DQogICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgcm93cy5wdXNoKHRyKTsNCiAgICAgICAgICAgICAgICB9KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInhtbHR2IjoNCiAgICAgICAgICAgICAgICBmaWxlVHlwZXMgPSBuZXcgQXJyYXkoInhtbHR2Iik7DQogICAgICAgICAgICAgICAgZmlsZVR5cGVzLmZvckVhY2goZmlsZVR5cGUgPT4gew0KICAgICAgICAgICAgICAgICAgICBkYXRhID0gU0VSVkVSWyJzZXR0aW5ncyJdWyJmaWxlcyJdW2ZpbGVUeXBlXTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGtleXMgPSBnZXRPYmpLZXlzKGRhdGEpOw0KICAgICAgICAgICAgICAgICAgICBrZXlzLmZvckVhY2goa2V5ID0+IHsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciB0ciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlRSIik7DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5pZCA9IGtleTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoIicgKyBmaWxlVHlwZSArICciLCB0aGlzKScpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bIm5hbWUiXTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJsYXN0LnVwZGF0ZSJdOw0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bInByb3ZpZGVyLmF2YWlsYWJpbGl0eSJdOw0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bImNvbXBhdGliaWxpdHkiXVsieG1sdHYuY2hhbm5lbHMiXTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJjb21wYXRpYmlsaXR5Il1bInhtbHR2LnByb2dyYW1zIl07DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICByb3dzLnB1c2godHIpOw0KICAgICAgICAgICAgICAgICAgICB9KTsNCiAgICAgICAgICAgICAgICB9KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInVzZXJzIjoNCiAgICAgICAgICAgICAgICBmaWxlVHlwZXMgPSBuZXcgQXJyYXkoInVzZXJzIik7DQogICAgICAgICAgICAgICAgZmlsZVR5cGVzLmZvckVhY2goZmlsZVR5cGUgPT4gew0KICAgICAgICAgICAgICAgICAgICBkYXRhID0gU0VSVkVSW2ZpbGVUeXBlXTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGtleXMgPSBnZXRPYmpLZXlzKGRhdGEpOw0KICAgICAgICAgICAgICAgICAgICBrZXlzLmZvckVhY2goa2V5ID0+IHsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciB0ciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlRSIik7DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5pZCA9IGtleTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoIicgKyBmaWxlVHlwZSArICciLCB0aGlzKScpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bImRhdGEiXVsidXNlcm5hbWUiXTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gIioqKioqKiI7DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGRhdGFba2V5XVsiZGF0YSJdWyJhdXRoZW50aWNhdGlvbi53ZWIiXSA9PSB0cnVlKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9ICLinJMiOw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9ICItIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgICAgICBpZiAoZGF0YVtrZXldWyJkYXRhIl1bImF1dGhlbnRpY2F0aW9uLnBtcyJdID09IHRydWUpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gIuKckyI7DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gIi0iOw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChkYXRhW2tleV1bImRhdGEiXVsiYXV0aGVudGljYXRpb24ubTN1Il0gPT0gdHJ1ZSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSAi4pyTIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSAiLSI7DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGRhdGFba2V5XVsiZGF0YSJdWyJhdXRoZW50aWNhdGlvbi54bWwiXSA9PSB0cnVlKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9ICLinJMiOw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9ICItIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgICAgICBpZiAoZGF0YVtrZXldWyJkYXRhIl1bImF1dGhlbnRpY2F0aW9uLmFwaSJdID09IHRydWUpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gIuKckyI7DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gIi0iOw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgcm93cy5wdXNoKHRyKTsNCiAgICAgICAgICAgICAgICAgICAgfSk7DQogICAgICAgICAgICAgICAgfSk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJtYXBwaW5nIjoNCiAgICAgICAgICAgICAgICBCVUxLX0VESVQgPSBmYWxzZTsNCiAgICAgICAgICAgICAgICBjcmVhdGVTZWFyY2hPYmooKTsNCiAgICAgICAgICAgICAgICBjaGVja1VuZG8oImVwZ01hcHBpbmciKTsNCiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZygiTUFQUElORyIpOw0KICAgICAgICAgICAgICAgIGRhdGEgPSBTRVJWRVJbInhlcGciXVsiZXBnTWFwcGluZyJdOw0KICAgICAgICAgICAgICAgIHZhciBrZXlzID0gZ2V0T2JqS2V5cyhkYXRhKTsNCiAgICAgICAgICAgICAgICBrZXlzLmZvckVhY2goa2V5ID0+IHsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVFIiKTsNCiAgICAgICAgICAgICAgICAgICAgdHIuaWQgPSBrZXk7DQogICAgICAgICAgICAgICAgICAgIC8vdHIuc2V0QXR0cmlidXRlKCdvbmNvbnRleHRtZW51JywgJ2phdmFzY3JpcHQ6IHJpZ2h0Q2xpY2sodGhpcyknKQ0KICAgICAgICAgICAgICAgICAgICBzd2l0Y2ggKGRhdGFba2V5XVsieC1hY3RpdmUiXSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSB0cnVlOg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyLmNsYXNzTmFtZSA9ICJhY3RpdmVFUEciOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSBmYWxzZToNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ci5jbGFzc05hbWUgPSAibm90QWN0aXZlRVBHIjsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAvLyBCdWxrDQogICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIkJVTEsiOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZmFsc2U7DQogICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgLy8gQ2hhbm5lbCBudW1iZXINCiAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiSU5QVVRDSEFOTkVMIjsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsieC1jaGFubmVsSUQiXTsNCiAgICAgICAgICAgICAgICAgICAgLy90ZC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogY2hhbmdlQ2hhbm5lbE51bWJlcigiJyArIGtleSArICciLCB0aGlzKScpDQogICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgLy8gTG9nbw0KICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJJTUciOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmltYWdlVVJMID0gZGF0YVtrZXldWyJ0dmctbG9nbyJdOw0KICAgICAgICAgICAgICAgICAgICB2YXIgdGQgPSBjZWxsLmNyZWF0ZUNlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgdGQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgibWFwcGluZyIsIHRoaXMpJyk7DQogICAgICAgICAgICAgICAgICAgIHRkLmlkID0ga2V5Ow0KICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZCh0ZCk7DQogICAgICAgICAgICAgICAgICAgIC8vIENoYW5uZWwgbmFtZQ0KICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jbGFzc05hbWUgPSBkYXRhW2tleV1bIngtY2F0ZWdvcnkiXTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsieC1uYW1lIl07DQogICAgICAgICAgICAgICAgICAgIHZhciB0ZCA9IGNlbGwuY3JlYXRlQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICB0ZC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJtYXBwaW5nIiwgdGhpcyknKTsNCiAgICAgICAgICAgICAgICAgICAgdGQuaWQgPSBrZXk7DQogICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKHRkKTsNCiAgICAgICAgICAgICAgICAgICAgLy8gUGxheWxpc3QNCiAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgIC8vY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsiX2ZpbGUubTN1Lm5hbWUiXSANCiAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGdldFZhbHVlRnJvbVByb3ZpZGVyRmlsZShkYXRhW2tleV1bIl9maWxlLm0zdS5pZCJdLCAibTN1IiwgIm5hbWUiKTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHRkID0gY2VsbC5jcmVhdGVDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgIHRkLnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoIm1hcHBpbmciLCB0aGlzKScpOw0KICAgICAgICAgICAgICAgICAgICB0ZC5pZCA9IGtleTsNCiAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQodGQpOw0KICAgICAgICAgICAgICAgICAgICAvLyBHcm91cCAoZ3JvdXAtdGl0bGUpDQogICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJ4LWdyb3VwLXRpdGxlIl07DQogICAgICAgICAgICAgICAgICAgIHZhciB0ZCA9IGNlbGwuY3JlYXRlQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICB0ZC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJtYXBwaW5nIiwgdGhpcyknKTsNCiAgICAgICAgICAgICAgICAgICAgdGQuaWQgPSBrZXk7DQogICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKHRkKTsNCiAgICAgICAgICAgICAgICAgICAgLy8gWE1MVFYgZmlsZQ0KICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgaWYgKGRhdGFba2V5XVsieC14bWx0di1maWxlIl0gIT0gIi0iKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZ2V0VmFsdWVGcm9tUHJvdmlkZXJGaWxlKGRhdGFba2V5XVsieC14bWx0di1maWxlIl0sICJ4bWx0diIsICJuYW1lIik7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgZWxzZSB7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJ4LXhtbHR2LWZpbGUiXTsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICB2YXIgdGQgPSBjZWxsLmNyZWF0ZUNlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgdGQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgibWFwcGluZyIsIHRoaXMpJyk7DQogICAgICAgICAgICAgICAgICAgIHRkLmlkID0ga2V5Ow0KICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZCh0ZCk7DQogICAgICAgICAgICAgICAgICAgIC8vIFhNTFRWIENoYW5uZWwNCiAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgIC8vdmFyIHZhbHVlID0gc3RyLnN1YnN0cmluZygxLCA0KTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHZhbHVlID0gZGF0YVtrZXldWyJ4LW1hcHBpbmciXTsNCiAgICAgICAgICAgICAgICAgICAgaWYgKHZhbHVlLmxlbmd0aCA+IDIwKSB7DQogICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IGRhdGFba2V5XVsieC1tYXBwaW5nIl0uc3Vic3RyaW5nKDAsIDIwKSArICIuLi4iOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSB2YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHRkID0gY2VsbC5jcmVhdGVDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgIHRkLnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoIm1hcHBpbmciLCB0aGlzKScpOw0KICAgICAgICAgICAgICAgICAgICB0ZC5pZCA9IGtleTsNCiAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQodGQpOw0KICAgICAgICAgICAgICAgICAgICAvLyBUaW1lU2hpZnQNCiAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bIngtdGltZXNoaWZ0Il07DQogICAgICAgICAgICAgICAgICAgIHZhciB0ZCA9IGNlbGwuY3JlYXRlQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICB0ZC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJtYXBwaW5nIiwgdGhpcyknKTsNCiAgICAgICAgICAgICAgICAgICAgdGQuaWQgPSBrZXk7DQogICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKHRkKTsNCiAgICAgICAgICAgICAgICAgICAgcm93cy5wdXNoKHRyKTsNCiAgICAgICAgICAgICAgICB9KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInNldHRpbmdzIjoNCiAgICAgICAgICAgICAgICBhbGVydCgpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZygiVGFibGUgY29udGVudCAobWVudUtleSk6IiwgbWVudUtleSk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIH0NCiAgICAgICAgcmV0dXJuIHJvd3M7DQogICAgfQ0KfQ0KY2xhc3MgQ2VsbCB7DQogICAgY3JlYXRlQ2VsbCgpIHsNCiAgICAgICAgbGV0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgaWYgKHRoaXMuY2hpbGQgPT0gdHJ1ZSkgew0KICAgICAgICAgICAgdmFyIGVsZW1lbnQ7DQogICAgICAgICAgICBzd2l0Y2ggKHRoaXMuY2hpbGRUeXBlKSB7DQogICAgICAgICAgICAgICAgY2FzZSAiUCI6DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KHRoaXMuY2hpbGRUeXBlKTsNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC5pbm5lckhUTUwgPSB0aGlzLnZhbHVlOw0KICAgICAgICAgICAgICAgICAgICBlbGVtZW50LmNsYXNzTmFtZSA9IHRoaXMuY2xhc3NOYW1lOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBjYXNlICJJTlBVVCI6DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KHRoaXMuY2hpbGRUeXBlKTsNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC52YWx1ZSA9IHRoaXMudmFsdWU7DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQudHlwZSA9ICJ0ZXh0IjsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAiSU5QVVRDSEFOTkVMIjoNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIklOUFVUIik7DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZzY3JpcHQ6IGNoYW5nZUNoYW5uZWxOdW1iZXIodGhpcykiKTsNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC52YWx1ZSA9IHRoaXMudmFsdWU7DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQudHlwZSA9ICJ0ZXh0IjsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAiQlVMSyI6DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJJTlBVVCIpOw0KICAgICAgICAgICAgICAgICAgICBlbGVtZW50LmNoZWNrZWQgPSB0aGlzLnZhbHVlOw0KICAgICAgICAgICAgICAgICAgICBlbGVtZW50LnR5cGUgPSAiY2hlY2tib3giOw0KICAgICAgICAgICAgICAgICAgICBlbGVtZW50LmNsYXNzTmFtZSA9ICJidWxrIGhpZGVCdWxrIjsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAiQlVMS19IRUFEIjoNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIklOUFVUIik7DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQuY2hlY2tlZCA9IHRoaXMudmFsdWU7DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQudHlwZSA9ICJjaGVja2JveCI7DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQuY2xhc3NOYW1lID0gImJ1bGsgaGlkZUJ1bGsiOw0KICAgICAgICAgICAgICAgICAgICBlbGVtZW50LnNldEF0dHJpYnV0ZSgib25jbGljayIsICJqYXZhc2NyaXB0OiBzZWxlY3RBbGxDaGFubmVscygpIik7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgIklNRyI6DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KHRoaXMuY2hpbGRUeXBlKTsNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC5zZXRBdHRyaWJ1dGUoInNyYyIsIHRoaXMuaW1hZ2VVUkwpOw0KICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5pbWFnZVVSTCAhPSAiIikgew0KICAgICAgICAgICAgICAgICAgICAgICAgZWxlbWVudC5zZXRBdHRyaWJ1dGUoIm9uZXJyb3IiLCAiamF2YXNjcmlwdDogdGhpcy5vbmVycm9yPW51bGw7dGhpcy5zcmM9JyciKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIC8vb25lcnJvcj0idGhpcy5vbmVycm9yPW51bGw7dGhpcy5zcmM9J21pc3NpbmcuZ2lmJzsiDQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIHRkLmFwcGVuZENoaWxkKGVsZW1lbnQpOw0KICAgICAgICB9DQogICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgdGQuaW5uZXJIVE1MID0gdGhpcy52YWx1ZTsNCiAgICAgICAgfQ0KICAgICAgICBpZiAodGhpcy5vbmNsaWNrID09IHRydWUpIHsNCiAgICAgICAgICAgIHRkLnNldEF0dHJpYnV0ZSgib25jbGljayIsIHRoaXMub25jbGlja0Z1bmt0aW9uKTsNCiAgICAgICAgICAgIHRkLmNsYXNzTmFtZSA9ICJwb2ludGVyIjsNCiAgICAgICAgfQ0KICAgICAgICBpZiAodGhpcy50ZENsYXNzTmFtZSAhPSB1bmRlZmluZWQpIHsNCiAgICAgICAgICAgIHRkLmNsYXNzTmFtZSA9IHRoaXMudGRDbGFzc05hbWU7DQogICAgICAgIH0NCiAgICAgICAgcmV0dXJuIHRkOw0KICAgIH0NCn0NCmNsYXNzIFNob3dDb250ZW50IGV4dGVuZHMgQ29udGVudCB7DQogICAgY29uc3RydWN0b3IobWVudUlEKSB7DQogICAgICAgIHN1cGVyKCk7DQogICAgICAgIHRoaXMubWVudUlEID0gbWVudUlEOw0KICAgIH0NCiAgICBjcmVhdGVJbnB1dCh0eXBlLCBuYW1lLCB2YWx1ZSkgew0KICAgICAgICBsZXQgaW5wdXQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJJTlBVVCIpOw0KICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInR5cGUiLCB0eXBlKTsNCiAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJuYW1lIiwgbmFtZSk7DQogICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgidmFsdWUiLCB2YWx1ZSk7DQogICAgICAgIHJldHVybiBpbnB1dDsNCiAgICB9DQogICAgc2hvdygpIHsNCiAgICAgICAgQ09MVU1OX1RPX1NPUlQgPSAtMTsNCiAgICAgICAgLy8gRGVsZXRlIG9sZCBjb250ZW50DQogICAgICAgIGxldCBkb2MgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCh0aGlzLkRvY3VtZW50SUQpOw0KICAgICAgICBkb2MuaW5uZXJIVE1MID0gIiI7DQogICAgICAgIHNob3dQcmV2aWV3KGZhbHNlKTsNCiAgICAgICAgLy8gSGVhZGxpbmUNCiAgICAgICAgbGV0IGhlYWRsaW5lID0gbWVudUl0ZW1zW3RoaXMubWVudUlEXS5oZWFkbGluZTsNCiAgICAgICAgbGV0IG1lbnVLZXkgPSBtZW51SXRlbXNbdGhpcy5tZW51SURdLm1lbnVLZXk7DQogICAgICAgIGxldCBoID0gdGhpcy5jcmVhdGVIZWFkbGluZShoZWFkbGluZSk7DQogICAgICAgIGRvYy5hcHBlbmRDaGlsZChoKTsNCiAgICAgICAgbGV0IGhyID0gdGhpcy5jcmVhdGVIUigpOw0KICAgICAgICBkb2MuYXBwZW5kQ2hpbGQoaHIpOw0KICAgICAgICAvLyBJbnRlcmFjdGlvbg0KICAgICAgICBsZXQgZGl2ID0gdGhpcy5jcmVhdGVJbnRlcmFjdGlvbigpOw0KICAgICAgICBkb2MuYXBwZW5kQ2hpbGQoZGl2KTsNCiAgICAgICAgbGV0IGludGVyYWN0aW9uID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQodGhpcy5pbnRlcmFjdGlvbklEKTsNCiAgICAgICAgc3dpdGNoIChtZW51S2V5KSB7DQogICAgICAgICAgICBjYXNlICJwbGF5bGlzdCI6DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gdGhpcy5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgbWVudUtleSwgInt7LmJ1dHRvbi5uZXd9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgiaWQiLCAiLSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoInBsYXlsaXN0IiknKTsNCiAgICAgICAgICAgICAgICBpbnRlcmFjdGlvbi5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJmaWx0ZXIiOg0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IHRoaXMuY3JlYXRlSW5wdXQoImJ1dHRvbiIsIG1lbnVLZXksICJ7ey5idXR0b24ubmV3fX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoImlkIiwgLTEpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoImZpbHRlciIsIHRoaXMpJyk7DQogICAgICAgICAgICAgICAgaW50ZXJhY3Rpb24uYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAieG1sdHYiOg0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IHRoaXMuY3JlYXRlSW5wdXQoImJ1dHRvbiIsIG1lbnVLZXksICJ7ey5idXR0b24ubmV3fX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoImlkIiwgInhtbHR2Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgieG1sdHYiKScpOw0KICAgICAgICAgICAgICAgIGludGVyYWN0aW9uLmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInVzZXJzIjoNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSB0aGlzLmNyZWF0ZUlucHV0KCJidXR0b24iLCBtZW51S2V5LCAie3suYnV0dG9uLm5ld319Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJpZCIsICJ1c2VycyIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoInVzZXJzIiknKTsNCiAgICAgICAgICAgICAgICBpbnRlcmFjdGlvbi5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJtYXBwaW5nIjoNCiAgICAgICAgICAgICAgICBzaG93RWxlbWVudCgibG9hZGluZyIsIHRydWUpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IHRoaXMuY3JlYXRlSW5wdXQoImJ1dHRvbiIsIG1lbnVLZXksICJ7ey5idXR0b24uc2F2ZX19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoIm1hcHBpbmciLCAiIiwgIiIpJyk7DQogICAgICAgICAgICAgICAgaW50ZXJhY3Rpb24uYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IHRoaXMuY3JlYXRlSW5wdXQoImJ1dHRvbiIsIG1lbnVLZXksICJ7ey5idXR0b24uYnVsa0VkaXR9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBidWxrRWRpdCgpJyk7DQogICAgICAgICAgICAgICAgaW50ZXJhY3Rpb24uYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IHRoaXMuY3JlYXRlSW5wdXQoInNlYXJjaCIsICJzZWFyY2giLCAiIik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJpZCIsICJzZWFyY2hNYXBwaW5nIik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5idXR0b24uc2VhcmNofX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5jbGFzc05hbWUgPSAic2VhcmNoIjsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgJ2phdmFzY3JpcHQ6IHNlYXJjaEluTWFwcGluZygpJyk7DQogICAgICAgICAgICAgICAgaW50ZXJhY3Rpb24uYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAic2V0dGluZ3MiOg0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IHRoaXMuY3JlYXRlSW5wdXQoImJ1dHRvbiIsIG1lbnVLZXksICJ7ey5idXR0b24uc2F2ZX19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IHNhdmVTZXR0aW5ncygpOycpOw0KICAgICAgICAgICAgICAgIGludGVyYWN0aW9uLmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSB0aGlzLmNyZWF0ZUlucHV0KCJidXR0b24iLCBtZW51S2V5LCAie3suYnV0dG9uLmJhY2t1cH19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IGJhY2t1cCgpOycpOw0KICAgICAgICAgICAgICAgIGludGVyYWN0aW9uLmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSB0aGlzLmNyZWF0ZUlucHV0KCJidXR0b24iLCBtZW51S2V5LCAie3suYnV0dG9uLnJlc3RvcmV9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiByZXN0b3JlKCk7Jyk7DQogICAgICAgICAgICAgICAgaW50ZXJhY3Rpb24uYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIHZhciB3cmFwcGVyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiRElWIik7DQogICAgICAgICAgICAgICAgd3JhcHBlci5zZXRBdHRyaWJ1dGUoImlkIiwgImJveC13cmFwcGVyIik7DQogICAgICAgICAgICAgICAgZG9jLmFwcGVuZENoaWxkKHdyYXBwZXIpOw0KICAgICAgICAgICAgICAgIHRoaXMuRGl2SUQgPSAiY29udGVudF9zZXR0aW5ncyI7DQogICAgICAgICAgICAgICAgdmFyIHNldHRpbmdzID0gdGhpcy5jcmVhdGVESVYoKTsNCiAgICAgICAgICAgICAgICB3cmFwcGVyLmFwcGVuZENoaWxkKHNldHRpbmdzKTsNCiAgICAgICAgICAgICAgICBzaG93U2V0dGluZ3MoKTsNCiAgICAgICAgICAgICAgICByZXR1cm47DQogICAgICAgICAgICBjYXNlICJsb2ciOg0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IHRoaXMuY3JlYXRlSW5wdXQoImJ1dHRvbiIsIG1lbnVLZXksICJ7ey5idXR0b24ucmVzZXRMb2dzfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogcmVzZXRMb2dzKCk7Jyk7DQogICAgICAgICAgICAgICAgaW50ZXJhY3Rpb24uYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIHZhciB3cmFwcGVyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiRElWIik7DQogICAgICAgICAgICAgICAgd3JhcHBlci5zZXRBdHRyaWJ1dGUoImlkIiwgImJveC13cmFwcGVyIik7DQogICAgICAgICAgICAgICAgZG9jLmFwcGVuZENoaWxkKHdyYXBwZXIpOw0KICAgICAgICAgICAgICAgIHRoaXMuRGl2SUQgPSAiY29udGVudF9sb2ciOw0KICAgICAgICAgICAgICAgIHZhciBsb2dzID0gdGhpcy5jcmVhdGVESVYoKTsNCiAgICAgICAgICAgICAgICB3cmFwcGVyLmFwcGVuZENoaWxkKGxvZ3MpOw0KICAgICAgICAgICAgICAgIHNob3dMb2dzKHRydWUpOw0KICAgICAgICAgICAgICAgIHJldHVybjsNCiAgICAgICAgICAgIGNhc2UgImxvZ291dCI6DQogICAgICAgICAgICAgICAgbG9jYXRpb24ucmVsb2FkKCk7DQogICAgICAgICAgICAgICAgZG9jdW1lbnQuY29va2llID0gIlRva2VuPSA7IGV4cGlyZXMgPSBUaHUsIDAxIEphbiAxOTcwIDAwOjAwOjAwIEdNVCI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBkZWZhdWx0Og0KICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKCJTaG93IGNvbnRlbnQgKG1lbnVLZXkpOiIsIG1lbnVLZXkpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICB9DQogICAgICAgIC8vIENyZWF0ZSB0YWJsZSAoaWYgbmVlZGVkKQ0KICAgICAgICB2YXIgdGFibGVIZWFkZXIgPSBtZW51SXRlbXNbdGhpcy5tZW51SURdLnRhYmxlSGVhZGVyOw0KICAgICAgICBpZiAodGFibGVIZWFkZXIubGVuZ3RoID4gMCkgew0KICAgICAgICAgICAgdmFyIHdyYXBwZXIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJESVYiKTsNCiAgICAgICAgICAgIGRvYy5hcHBlbmRDaGlsZCh3cmFwcGVyKTsNCiAgICAgICAgICAgIHdyYXBwZXIuc2V0QXR0cmlidXRlKCJpZCIsICJib3gtd3JhcHBlciIpOw0KICAgICAgICAgICAgdmFyIHRhYmxlID0gdGhpcy5jcmVhdGVUQUJMRSgpOw0KICAgICAgICAgICAgd3JhcHBlci5hcHBlbmRDaGlsZCh0YWJsZSk7DQogICAgICAgICAgICB2YXIgaGVhZGVyID0gdGhpcy5jcmVhdGVUYWJsZVJvdygpOw0KICAgICAgICAgICAgdGFibGUuYXBwZW5kQ2hpbGQoaGVhZGVyKTsNCiAgICAgICAgICAgIC8vIFRhYmxlIGhlYWRlcg0KICAgICAgICAgICAgdGFibGVIZWFkZXIuZm9yRWFjaChlbGVtZW50ID0+IHsNCiAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGVsZW1lbnQ7DQogICAgICAgICAgICAgICAgaWYgKGVsZW1lbnQgPT0gIkJVTEsiKSB7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIkJVTEtfSEVBRCI7DQogICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBmYWxzZTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgaWYgKG1lbnVLZXkgPT0gIm1hcHBpbmciKSB7DQogICAgICAgICAgICAgICAgICAgIGlmIChlbGVtZW50ID09ICJ7ey5tYXBwaW5nLnRhYmxlLmNoTm99fSIpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwub25jbGljayA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLm9uY2xpY2tGdW5rdGlvbiA9ICJqYXZhc2NyaXB0OiBzb3J0VGFibGUoMSk7IjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudGRDbGFzc05hbWUgPSAic29ydFRoaXMiOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIGlmIChlbGVtZW50ID09ICJ7ey5tYXBwaW5nLnRhYmxlLmNoYW5uZWxOYW1lfX0iKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLm9uY2xpY2sgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5vbmNsaWNrRnVua3Rpb24gPSAiamF2YXNjcmlwdDogc29ydFRhYmxlKDMpOyI7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgaWYgKGVsZW1lbnQgPT0gInt7Lm1hcHBpbmcudGFibGUucGxheWxpc3R9fSIpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwub25jbGljayA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLm9uY2xpY2tGdW5rdGlvbiA9ICJqYXZhc2NyaXB0OiBzb3J0VGFibGUoNCk7IjsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBpZiAoZWxlbWVudCA9PSAie3subWFwcGluZy50YWJsZS5ncm91cFRpdGxlfX0iKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLm9uY2xpY2sgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5vbmNsaWNrRnVua3Rpb24gPSAiamF2YXNjcmlwdDogc29ydFRhYmxlKDUpOyI7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgaWYgKGVsZW1lbnQgPT0gInt7Lm1hcHBpbmcudGFibGUudGltZXNoaWZ0fX0iKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLm9uY2xpY2sgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5vbmNsaWNrRnVua3Rpb24gPSAiamF2YXNjcmlwdDogc29ydFRhYmxlKDgpOyI7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgaGVhZGVyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgIH0pOw0KICAgICAgICAgICAgdGFibGUuYXBwZW5kQ2hpbGQoaGVhZGVyKTsNCiAgICAgICAgICAgIC8vIENvbnRlbnQgb2YgdGhlIHRhYmxlDQogICAgICAgICAgICB2YXIgcm93cyA9IHRoaXMuY3JlYXRlVGFibGVDb250ZW50KG1lbnVLZXkpOw0KICAgICAgICAgICAgcm93cy5mb3JFYWNoKHRyID0+IHsNCiAgICAgICAgICAgICAgICB0YWJsZS5hcHBlbmRDaGlsZCh0cik7DQogICAgICAgICAgICB9KTsNCiAgICAgICAgfQ0KICAgICAgICBzd2l0Y2ggKG1lbnVLZXkpIHsNCiAgICAgICAgICAgIGNhc2UgIm1hcHBpbmciOg0KICAgICAgICAgICAgICAgIHNvcnRUYWJsZSgxKTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImZpbHRlciI6DQogICAgICAgICAgICAgICAgc2hvd1ByZXZpZXcodHJ1ZSk7DQogICAgICAgICAgICAgICAgc29ydFRhYmxlKDApOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgICAgICBDT0xVTU5fVE9fU09SVCA9IC0xOw0KICAgICAgICAgICAgICAgIHNvcnRUYWJsZSgwKTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgfQ0KICAgICAgICBzaG93RWxlbWVudCgibG9hZGluZyIsIGZhbHNlKTsNCiAgICB9DQp9DQpmdW5jdGlvbiBQYWdlUmVhZHkoKSB7DQogICAgbGV0IHNlcnZlciA9IG5ldyBTZXJ2ZXIoImdldFNlcnZlckNvbmZpZyIpOw0KICAgIHNlcnZlci5yZXF1ZXN0KHt9KTsNCiAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigicmVzaXplIiwgZnVuY3Rpb24gKCkgew0KICAgICAgICBjYWxjdWxhdGVXcmFwcGVySGVpZ2h0KCk7DQogICAgfSwgdHJ1ZSk7DQogICAgc2V0SW50ZXJ2YWwoZnVuY3Rpb24gKCkgew0KICAgICAgICB1cGRhdGVMb2coKTsNCiAgICB9LCAxMDAwMCk7DQogICAgcmV0dXJuOw0KfQ0KZnVuY3Rpb24gY3JlYXRlTGF5b3V0KCkgew0KICAgIC8vIENsaWVudCBJbmZvDQogICAgbGV0IG9iaiA9IFNFUlZFUlsiY2xpZW50SW5mbyJdOw0KICAgIGxldCBrZXlzID0gZ2V0T2JqS2V5cyhvYmopOw0KICAgIGZvciAodmFyIGkgPSAwOyBpIDwga2V5cy5sZW5ndGg7IGkrKykgew0KICAgICAgICBpZiAoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoa2V5c1tpXSkpIHsNCiAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGtleXNbaV0pLmlubmVySFRNTCA9IG9ialtrZXlzW2ldXTsNCiAgICAgICAgfQ0KICAgIH0NCiAgICBpZiAoIWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJtYWluLW1lbnUiKSkgew0KICAgICAgICByZXR1cm47DQogICAgfQ0KICAgIC8vIENyZWF0ZSBtZW51DQogICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm1haW4tbWVudSIpLmlubmVySFRNTCA9ICIiOw0KICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbWVudUl0ZW1zLmxlbmd0aDsgaSsrKSB7DQogICAgICAgIG1lbnVJdGVtc1tpXS5pZCA9IGk7DQogICAgICAgIHN3aXRjaCAobWVudUl0ZW1zW2ldWyJtZW51S2V5Il0pIHsNCiAgICAgICAgICAgIGNhc2UgInVzZXJzIjoNCiAgICAgICAgICAgIGNhc2UgImxvZ291dCI6DQogICAgICAgICAgICAgICAgaWYgKFNFUlZFUlsic2V0dGluZ3MiXVsiYXV0aGVudGljYXRpb24ud2ViIl0gPT0gdHJ1ZSkgew0KICAgICAgICAgICAgICAgICAgICBtZW51SXRlbXNbaV0uY3JlYXRlSXRlbSgpOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgIm1hcHBpbmciOg0KICAgICAgICAgICAgY2FzZSAieG1sdHYiOg0KICAgICAgICAgICAgICAgIGlmIChTRVJWRVJbImNsaWVudEluZm8iXVsiZXBnU291cmNlIl0gPT0gIlhFUEciKSB7DQogICAgICAgICAgICAgICAgICAgIG1lbnVJdGVtc1tpXS5jcmVhdGVJdGVtKCk7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgICAgICBtZW51SXRlbXNbaV0uY3JlYXRlSXRlbSgpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICB9DQogICAgfQ0KICAgIHJldHVybjsNCn0NCmZ1bmN0aW9uIG9wZW5UaGlzTWVudShlbGVtZW50KSB7DQogICAgbGV0IGlkID0gZWxlbWVudC5pZDsNCiAgICBsZXQgY29udGVudCA9IG5ldyBTaG93Q29udGVudChpZCk7DQogICAgY29udGVudC5zaG93KCk7DQogICAgY2FsY3VsYXRlV3JhcHBlckhlaWdodCgpOw0KICAgIHJldHVybjsNCn0NCmNsYXNzIFBvcHVwV2luZG93IHsNCiAgICBjb25zdHJ1Y3RvcigpIHsNCiAgICAgICAgdGhpcy5Eb2N1bWVudElEID0gInBvcHVwLWN1c3RvbSI7DQogICAgICAgIHRoaXMuSW50ZXJhY3Rpb25JRCA9ICJpbnRlcmFjdGlvbiI7DQogICAgICAgIHRoaXMuZG9jID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQodGhpcy5Eb2N1bWVudElEKTsNCiAgICB9DQogICAgY3JlYXRlVGl0bGUodGl0bGUpIHsNCiAgICAgICAgbGV0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgdGQuY2xhc3NOYW1lID0gImxlZnQiOw0KICAgICAgICB0ZC5pbm5lckhUTUwgPSB0aXRsZSArICI6IjsNCiAgICAgICAgcmV0dXJuIHRkOw0KICAgIH0NCiAgICBjcmVhdGVDb250ZW50KGVsZW1lbnQpIHsNCiAgICAgICAgbGV0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgdGQuYXBwZW5kQ2hpbGQoZWxlbWVudCk7DQogICAgICAgIHJldHVybiB0ZDsNCiAgICB9DQogICAgY3JlYXRlSW50ZXJhY3Rpb24oKSB7DQogICAgICAgIGxldCBkaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsNCiAgICAgICAgZGl2LnNldEF0dHJpYnV0ZSgiaWQiLCAicG9wdXAtaW50ZXJhY3Rpb24iKTsNCiAgICAgICAgZGl2LmNsYXNzTmFtZSA9ICJpbnRlcmFjdGlvbiI7DQogICAgICAgIHRoaXMuZG9jLmFwcGVuZENoaWxkKGRpdik7DQogICAgfQ0KfQ0KY2xhc3MgUG9wdXBDb250ZW50IGV4dGVuZHMgUG9wdXBXaW5kb3cgew0KICAgIGNvbnN0cnVjdG9yKCkgew0KICAgICAgICBzdXBlciguLi5hcmd1bWVudHMpOw0KICAgICAgICB0aGlzLnRhYmxlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEFCTEUiKTsNCiAgICB9DQogICAgY3JlYXRlSGVhZGxpbmUoaGVhZGxpbmUpIHsNCiAgICAgICAgdGhpcy5kb2MuaW5uZXJIVE1MID0gIiI7DQogICAgICAgIHZhciBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiSDMiKTsNCiAgICAgICAgZWxlbWVudC5pbm5lckhUTUwgPSBoZWFkbGluZS50b1VwcGVyQ2FzZSgpOw0KICAgICAgICB0aGlzLmRvYy5hcHBlbmRDaGlsZChlbGVtZW50KTsNCiAgICAgICAgLy8gQ3JlYXRlIHRhYmxlDQogICAgICAgIHRoaXMudGFibGUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJUQUJMRSIpOw0KICAgICAgICB0aGlzLmRvYy5hcHBlbmRDaGlsZCh0aGlzLnRhYmxlKTsNCiAgICB9DQogICAgYXBwZW5kUm93KHRpdGxlLCBlbGVtZW50KSB7DQogICAgICAgIGxldCB0ciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlRSIik7DQogICAgICAgIC8vIFRpdGxlDQogICAgICAgIGlmICh0aXRsZS5sZW5ndGggIT0gMCkgew0KICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQodGhpcy5jcmVhdGVUaXRsZSh0aXRsZSkpOw0KICAgICAgICB9DQogICAgICAgIC8vIENvbnRlbnQNCiAgICAgICAgdHIuYXBwZW5kQ2hpbGQodGhpcy5jcmVhdGVDb250ZW50KGVsZW1lbnQpKTsNCiAgICAgICAgdGhpcy50YWJsZS5hcHBlbmRDaGlsZCh0cik7DQogICAgfQ0KICAgIGNyZWF0ZUlucHV0KHR5cGUsIG5hbWUsIHZhbHVlKSB7DQogICAgICAgIGxldCBpbnB1dCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIklOUFVUIik7DQogICAgICAgIGlmICh2YWx1ZSA9PSB1bmRlZmluZWQpIHsNCiAgICAgICAgICAgIHZhbHVlID0gIiI7DQogICAgICAgIH0NCiAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJ0eXBlIiwgdHlwZSk7DQogICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgibmFtZSIsIG5hbWUpOw0KICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInZhbHVlIiwgdmFsdWUpOw0KICAgICAgICByZXR1cm4gaW5wdXQ7DQogICAgfQ0KICAgIGNyZWF0ZUNoZWNrYm94KG5hbWUpIHsNCiAgICAgICAgbGV0IGlucHV0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiSU5QVVQiKTsNCiAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJ0eXBlIiwgImNoZWNrYm94Iik7DQogICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgibmFtZSIsIG5hbWUpOw0KICAgICAgICByZXR1cm4gaW5wdXQ7DQogICAgfQ0KICAgIC8vIENyZWF0ZXMgYSBzZWxlY3Rpb24gb2YgbXVsdGlwbGUgb3B0aW9ucyB2YWx1ZXMgd2l0aCB0ZXh0IGRlc2NyaXB0aW9ucw0KICAgIGNyZWF0ZVNlbGVjdCh0ZXh0LCB2YWx1ZXMsIHNldCwgZGJLZXkpIHsNCiAgICAgICAgbGV0IHNlbGVjdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlNFTEVDVCIpOw0KICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJuYW1lIiwgZGJLZXkpOw0KICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRleHQubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgICAgIGxldCBvcHRpb24gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJPUFRJT04iKTsNCiAgICAgICAgICAgIG9wdGlvbi5zZXRBdHRyaWJ1dGUoInZhbHVlIiwgdmFsdWVzW2ldKTsNCiAgICAgICAgICAgIG9wdGlvbi5pbm5lclRleHQgPSB0ZXh0W2ldOw0KICAgICAgICAgICAgc2VsZWN0LmFwcGVuZENoaWxkKG9wdGlvbik7DQogICAgICAgIH0NCiAgICAgICAgaWYgKHNldCAhPSAiIikgew0KICAgICAgICAgICAgc2VsZWN0LnZhbHVlID0gc2V0Ow0KICAgICAgICB9DQogICAgICAgIGlmIChzZXQgPT0gdW5kZWZpbmVkKSB7DQogICAgICAgICAgICBzZWxlY3QudmFsdWUgPSB2YWx1ZXNbMF07DQogICAgICAgIH0NCiAgICAgICAgcmV0dXJuIHNlbGVjdDsNCiAgICB9DQogICAgc2VsZWN0T3B0aW9uKHNlbGVjdCwgdmFsdWUpIHsNCiAgICAgICAgLy9zZWxlY3Quc2VsZWN0ZWRPcHRpb25zID0gdmFsdWUNCiAgICAgICAgbGV0IHMgPSBzZWxlY3Q7DQogICAgICAgIHMub3B0aW9uc1tzLnNlbGVjdGVkSW5kZXhdLnZhbHVlID0gdmFsdWU7DQogICAgICAgIHJldHVybiBzZWxlY3Q7DQogICAgfQ0KICAgIGRlc2NyaXB0aW9uKHZhbHVlKSB7DQogICAgICAgIGxldCB0ciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlRSIik7DQogICAgICAgIGxldCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgIGxldCBzcGFuID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiUFJFIik7DQogICAgICAgIHNwYW4uaW5uZXJIVE1MID0gdmFsdWU7DQogICAgICAgIHRyLmFwcGVuZENoaWxkKHRkKTsNCiAgICAgICAgdHIuYXBwZW5kQ2hpbGQodGhpcy5jcmVhdGVDb250ZW50KHNwYW4pKTsNCiAgICAgICAgdGhpcy50YWJsZS5hcHBlbmRDaGlsZCh0cik7DQogICAgfQ0KICAgIC8vIEludGVyYWN0aW9uDQogICAgYWRkSW50ZXJhY3Rpb24oZWxlbWVudCkgew0KICAgICAgICBsZXQgaW50ZXJhY3Rpb24gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicG9wdXAtaW50ZXJhY3Rpb24iKTsNCiAgICAgICAgaW50ZXJhY3Rpb24uYXBwZW5kQ2hpbGQoZWxlbWVudCk7DQogICAgfQ0KfQ0KZnVuY3Rpb24gb3BlblBvcFVwKGRhdGFUeXBlLCBlbGVtZW50KSB7DQogICAgbGV0IGRhdGEgPSB7fTsNCiAgICBsZXQgaWQ7DQogICAgc3dpdGNoIChlbGVtZW50KSB7DQogICAgICAgIGNhc2UgdW5kZWZpbmVkOg0KICAgICAgICAgICAgc3dpdGNoIChkYXRhVHlwZSkgew0KICAgICAgICAgICAgICAgIGNhc2UgImdyb3VwLXRpdGxlIjoNCiAgICAgICAgICAgICAgICAgICAgaWYgKGlkID09IHVuZGVmaW5lZCkgew0KICAgICAgICAgICAgICAgICAgICAgICAgaWQgPSAtMTsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBkYXRhID0gZ2V0TG9jYWxEYXRhKCJmaWx0ZXIiLCBpZCk7DQogICAgICAgICAgICAgICAgICAgIGRhdGFbInR5cGUiXSA9ICJncm91cC10aXRsZSI7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgImN1c3RvbS1maWx0ZXIiOg0KICAgICAgICAgICAgICAgICAgICBpZiAoaWQgPT0gdW5kZWZpbmVkKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBpZCA9IC0xOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIGRhdGEgPSBnZXRMb2NhbERhdGEoImZpbHRlciIsIGlkKTsNCiAgICAgICAgICAgICAgICAgICAgZGF0YVsidHlwZSJdID0gImN1c3RvbS1maWx0ZXIiOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBkZWZhdWx0Og0KICAgICAgICAgICAgICAgICAgICBkYXRhWyJpZC5wcm92aWRlciJdID0gIi0iOw0KICAgICAgICAgICAgICAgICAgICBkYXRhWyJ0eXBlIl0gPSBkYXRhVHlwZTsNCiAgICAgICAgICAgICAgICAgICAgaWQgPSAiLSI7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICBpZCA9IGVsZW1lbnQuaWQ7DQogICAgICAgICAgICBkYXRhID0gZ2V0TG9jYWxEYXRhKGRhdGFUeXBlLCBpZCk7DQogICAgICAgICAgICBicmVhazsNCiAgICB9DQogICAgbGV0IGNvbnRlbnQgPSBuZXcgUG9wdXBDb250ZW50KCk7DQogICAgc3dpdGNoIChkYXRhVHlwZSkgew0KICAgICAgICBjYXNlICJwbGF5bGlzdCI6DQogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUhlYWRsaW5lKCJ7ey5wbGF5bGlzdC5wbGF5bGlzdFR5cGUudGl0bGV9fSIpOw0KICAgICAgICAgICAgLy8gVHlwZQ0KICAgICAgICAgICAgdmFyIHRleHQgPSBbIk0zVSIsICJIREhvbWVSdW4iXTsNCiAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBbImphdmFzY3JpcHQ6IG9wZW5Qb3BVcCgnbTN1JykiLCAiamF2YXNjcmlwdDogb3BlblBvcFVwKCdoZGhyJykiXTsNCiAgICAgICAgICAgIHZhciBzZWxlY3QgPSBjb250ZW50LmNyZWF0ZVNlbGVjdCh0ZXh0LCB2YWx1ZXMsICIiLCAidHlwZSIpOw0KICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgiaWQiLCAidHlwZSIpOw0KICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAnamF2YXNjcmlwdDogY2hhbmdlQnV0dG9uQWN0aW9uKHRoaXMsICJuZXh0IiwgIm9uY2xpY2siKScpOyAvLyBjaGFuZ2VCdXR0b25BY3Rpb24NCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5wbGF5bGlzdC50eXBlLnRpdGxlfX0iLCBzZWxlY3QpOw0KICAgICAgICAgICAgLy8gSW50ZXJhY3Rpb24NCiAgICAgICAgICAgIGNvbnRlbnQuY3JlYXRlSW50ZXJhY3Rpb24oKTsNCiAgICAgICAgICAgIC8vIEFib3J0DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAiY2FuY2VsIiwgInt7LmJ1dHRvbi5jYW5jZWx9fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IHNob3dFbGVtZW50KCJwb3B1cCIsIGZhbHNlKTsnKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgLy8gTmV4dA0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgIm5leHQiLCAie3suYnV0dG9uLm5leHR9fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgibTN1IiknKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgiaWQiLCAnbmV4dCcpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSAibTN1IjoNCiAgICAgICAgICAgIGNvbnRlbnQuY3JlYXRlSGVhZGxpbmUoZGF0YVR5cGUpOw0KICAgICAgICAgICAgLy8gTmFtZQ0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gIm5hbWUiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnBsYXlsaXN0Lm5hbWUucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnBsYXlsaXN0Lm5hbWUudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIERlc2NyaXB0aW9uDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAiZGVzY3JpcHRpb24iOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnBsYXlsaXN0LmRlc2NyaXB0aW9uLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5wbGF5bGlzdC5kZXNjcmlwdGlvbi50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgLy8gVVJMDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAiZmlsZS5zb3VyY2UiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnBsYXlsaXN0LmZpbGVNM1UucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnBsYXlsaXN0LmZpbGVNM1UudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIFR1bmVyDQogICAgICAgICAgICBpZiAoU0VSVkVSWyJzZXR0aW5ncyJdWyJidWZmZXIiXSAhPSAiLSIpIHsNCiAgICAgICAgICAgICAgICB2YXIgdGV4dCA9IFtdOw0KICAgICAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBbXTsNCiAgICAgICAgICAgICAgICBmb3IgKHZhciBpID0gMTsgaSA8PSAxMDA7IGkrKykgew0KICAgICAgICAgICAgICAgICAgICB0ZXh0LnB1c2goaS50b1N0cmluZygpKTsNCiAgICAgICAgICAgICAgICAgICAgdmFsdWVzLnB1c2goaS50b1N0cmluZygpKTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgdmFyIGRiS2V5ID0gInR1bmVyIjsNCiAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCBkYXRhW2RiS2V5XSwgZGJLZXkpOw0KICAgICAgICAgICAgICAgIHNlbGVjdC5zZXRBdHRyaWJ1dGUoIm9uZm9jdXMiLCAiamF2YXNjcmlwdDogcmV0dXJuOyIpOw0KICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5wbGF5bGlzdC50dW5lci50aXRsZX19Iiwgc2VsZWN0KTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgICAgIHZhciBkYktleSA9ICJ0dW5lciI7DQogICAgICAgICAgICAgICAgaWYgKGRhdGFbZGJLZXldID09IHVuZGVmaW5lZCkgew0KICAgICAgICAgICAgICAgICAgICBkYXRhW2RiS2V5XSA9IDE7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicmVhZG9ubHkiLCAidHJ1ZSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LmNsYXNzTmFtZSA9ICJub3RBdmFpbGFibGUiOw0KICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5wbGF5bGlzdC50dW5lci50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgY29udGVudC5kZXNjcmlwdGlvbigie3sucGxheWxpc3QudHVuZXIuZGVzY3JpcHRpb259fSIpOw0KICAgICAgICAgICAgLy8gSW50ZXJhdGlvbg0KICAgICAgICAgICAgY29udGVudC5jcmVhdGVJbnRlcmFjdGlvbigpOw0KICAgICAgICAgICAgLy8gRGVsZXRlDQogICAgICAgICAgICBpZiAoZGF0YVsiaWQucHJvdmlkZXIiXSAhPSAiLSIpIHsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAiZGVsZXRlIiwgInt7LmJ1dHRvbi5kZWxldGV9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LmNsYXNzTmFtZSA9ICJkZWxldGUiOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBzYXZlUG9wdXBEYXRhKCJtM3UiLCAiJyArIGlkICsgJyIsIHRydWUsIDApJyk7DQogICAgICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAiYmFjayIsICJ7ey5idXR0b24uYmFja319Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgicGxheWxpc3QiKScpOw0KICAgICAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgLy8gQWJvcnQNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJjYW5jZWwiLCAie3suYnV0dG9uLmNhbmNlbH19Iik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogc2hvd0VsZW1lbnQoInBvcHVwIiwgZmFsc2UpOycpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICAvLyBVcGRhdGUNCiAgICAgICAgICAgIGlmIChkYXRhWyJpZC5wcm92aWRlciJdICE9ICItIikgew0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJ1cGRhdGUiLCAie3suYnV0dG9uLnVwZGF0ZX19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoIm0zdSIsICInICsgaWQgKyAnIiwgZmFsc2UsIDEpJyk7DQogICAgICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICAvLyBTYXZlDQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAic2F2ZSIsICJ7ey5idXR0b24uc2F2ZX19Iik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogc2F2ZVBvcHVwRGF0YSgibTN1IiwgIicgKyBpZCArICciLCBmYWxzZSwgMCknKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGNhc2UgImhkaHIiOg0KICAgICAgICAgICAgY29udGVudC5jcmVhdGVIZWFkbGluZShkYXRhVHlwZSk7DQogICAgICAgICAgICAvLyBOYW1lDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAibmFtZSI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3sucGxheWxpc3QubmFtZS5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sucGxheWxpc3QubmFtZS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgLy8gRGVzY3JpcHRpb24NCiAgICAgICAgICAgIHZhciBkYktleSA9ICJkZXNjcmlwdGlvbiI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3sucGxheWxpc3QuZGVzY3JpcHRpb24ucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnBsYXlsaXN0LmRlc2NyaXB0aW9uLnBsYWNlaG9sZGVyfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBVUkwNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJmaWxlLnNvdXJjZSI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3sucGxheWxpc3QuZmlsZUhESFIucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnBsYXlsaXN0LmZpbGVIREhSLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBUdW5lcg0KICAgICAgICAgICAgaWYgKFNFUlZFUlsic2V0dGluZ3MiXVsiYnVmZmVyIl0gIT0gIi0iKSB7DQogICAgICAgICAgICAgICAgdmFyIHRleHQgPSBbXTsNCiAgICAgICAgICAgICAgICB2YXIgdmFsdWVzID0gW107DQogICAgICAgICAgICAgICAgZm9yICh2YXIgaSA9IDE7IGkgPD0gMTAwOyBpKyspIHsNCiAgICAgICAgICAgICAgICAgICAgdGV4dC5wdXNoKGkudG9TdHJpbmcoKSk7DQogICAgICAgICAgICAgICAgICAgIHZhbHVlcy5wdXNoKGkudG9TdHJpbmcoKSk7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIHZhciBkYktleSA9ICJ0dW5lciI7DQogICAgICAgICAgICAgICAgdmFyIHNlbGVjdCA9IGNvbnRlbnQuY3JlYXRlU2VsZWN0KHRleHQsIHZhbHVlcywgZGF0YVtkYktleV0sIGRiS2V5KTsNCiAgICAgICAgICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJvbmZvY3VzIiwgImphdmFzY3JpcHQ6IHJldHVybjsiKTsNCiAgICAgICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sucGxheWxpc3QudHVuZXIudGl0bGV9fSIsIHNlbGVjdCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICB2YXIgZGJLZXkgPSAidHVuZXIiOw0KICAgICAgICAgICAgICAgIGlmIChkYXRhW2RiS2V5XSA9PSB1bmRlZmluZWQpIHsNCiAgICAgICAgICAgICAgICAgICAgZGF0YVtkYktleV0gPSAxOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInJlYWRvbmx5IiwgInRydWUiKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5jbGFzc05hbWUgPSAibm90QXZhaWxhYmxlIjsNCiAgICAgICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sucGxheWxpc3QudHVuZXIudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGNvbnRlbnQuZGVzY3JpcHRpb24oInt7LnBsYXlsaXN0LnR1bmVyLmRlc2NyaXB0aW9ufX0iKTsNCiAgICAgICAgICAgIC8vIEludGVyYWN0aW9uDQogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUludGVyYWN0aW9uKCk7DQogICAgICAgICAgICAvLyBEZWxldGUNCiAgICAgICAgICAgIGlmIChkYXRhWyJpZC5wcm92aWRlciJdICE9ICItIikgew0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJkZWxldGUiLCAie3suYnV0dG9uLmRlbGV0ZX19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoImhkaHIiLCAiJyArIGlkICsgJyIsIHRydWUsIDApJyk7DQogICAgICAgICAgICAgICAgaW5wdXQuY2xhc3NOYW1lID0gImRlbGV0ZSI7DQogICAgICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAiYmFjayIsICJ7ey5idXR0b24uYmFja319Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgicGxheWxpc3QiKScpOw0KICAgICAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgLy8gQWJvcnQNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJjYW5jZWwiLCAie3suYnV0dG9uLmNhbmNlbH19Iik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogc2hvd0VsZW1lbnQoInBvcHVwIiwgZmFsc2UpOycpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICAvLyBVcGRhdGUNCiAgICAgICAgICAgIGlmIChkYXRhWyJpZC5wcm92aWRlciJdICE9ICItIikgew0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJ1cGRhdGUiLCAie3suYnV0dG9uLnVwZGF0ZX19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoImhkaHIiLCAiJyArIGlkICsgJyIsIGZhbHNlLCAxKScpOw0KICAgICAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgLy8gU2F2ZQ0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgInNhdmUiLCAie3suYnV0dG9uLnNhdmV9fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoImhkaHIiLCAiJyArIGlkICsgJyIsIGZhbHNlLCAwKScpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSAiZmlsdGVyIjoNCiAgICAgICAgICAgIGNvbnRlbnQuY3JlYXRlSGVhZGxpbmUoZGF0YVR5cGUpOw0KICAgICAgICAgICAgLy8gVHlwZQ0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gInR5cGUiOw0KICAgICAgICAgICAgdmFyIHRleHQgPSBbIk0zVTogIiArICJ7ey5maWx0ZXIudHlwZS5ncm91cFRpdGxlfX0iLCAieFRlVmU6ICIgKyAie3suZmlsdGVyLnR5cGUuY3VzdG9tRmlsdGVyfX0iXTsNCiAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBbImphdmFzY3JpcHQ6IG9wZW5Qb3BVcCgnZ3JvdXAtdGl0bGUnKSIsICJqYXZhc2NyaXB0OiBvcGVuUG9wVXAoJ2N1c3RvbS1maWx0ZXInKSJdOw0KICAgICAgICAgICAgdmFyIHNlbGVjdCA9IGNvbnRlbnQuY3JlYXRlU2VsZWN0KHRleHQsIHZhbHVlcywgImphdmFzY3JpcHQ6IG9wZW5Qb3BVcCgnZ3JvdXAtdGl0bGUnKSIsIGRiS2V5KTsNCiAgICAgICAgICAgIHNlbGVjdC5zZXRBdHRyaWJ1dGUoImlkIiwgaWQpOw0KICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAnamF2YXNjcmlwdDogY2hhbmdlQnV0dG9uQWN0aW9uKHRoaXMsICJuZXh0IiwgIm9uY2xpY2siKTsnKTsgLy8gY2hhbmdlQnV0dG9uQWN0aW9uDQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3suZmlsdGVyLnR5cGUudGl0bGV9fSIsIHNlbGVjdCk7DQogICAgICAgICAgICAvLyBJbnRlcmFjdGlvbg0KICAgICAgICAgICAgY29udGVudC5jcmVhdGVJbnRlcmFjdGlvbigpOw0KICAgICAgICAgICAgLy8gQWJvcnQNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJjYW5jZWwiLCAie3suYnV0dG9uLmNhbmNlbH19Iik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogc2hvd0VsZW1lbnQoInBvcHVwIiwgZmFsc2UpOycpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICAvLyBOZXh0DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAibmV4dCIsICJ7ey5idXR0b24ubmV4dH19Iik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJncm91cC10aXRsZSIpJyk7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoImlkIiwgJ25leHQnKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGNhc2UgImN1c3RvbS1maWx0ZXIiOg0KICAgICAgICBjYXNlICJncm91cC10aXRsZSI6DQogICAgICAgICAgICBzd2l0Y2ggKGRhdGFUeXBlKSB7DQogICAgICAgICAgICAgICAgY2FzZSAiY3VzdG9tLWZpbHRlciI6DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuY3JlYXRlSGVhZGxpbmUoInt7LmZpbHRlci5jdXN0b219fSIgKyAiIEZpbHRlciIpOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBjYXNlICJncm91cC10aXRsZSI6DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuY3JlYXRlSGVhZGxpbmUoInt7LmZpbHRlci5ncm91cH19IiArICIgRmlsdGVyIik7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgLy8gTmFtZSAgICAgIA0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gIm5hbWUiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LmZpbHRlci5uYW1lLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5maWx0ZXIubmFtZS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgLy8gRGVzY3JpcHRpb24NCiAgICAgICAgICAgIHZhciBkYktleSA9ICJkZXNjcmlwdGlvbiI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3suZmlsdGVyLmRlc2NyaXB0aW9uLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5maWx0ZXIuZGVzY3JpcHRpb24udGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIFR5cGUNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJ0eXBlIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImhpZGRlbiIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygiIiwgaW5wdXQpOw0KICAgICAgICAgICAgdmFyIGZpbHRlclR5cGUgPSBkYXRhW2RiS2V5XTsNCiAgICAgICAgICAgIHN3aXRjaCAoZmlsdGVyVHlwZSkgew0KICAgICAgICAgICAgICAgIGNhc2UgImN1c3RvbS1maWx0ZXIiOg0KICAgICAgICAgICAgICAgICAgICAvLyBDYXNlIHNlbnNpdGl2ZQ0KICAgICAgICAgICAgICAgICAgICB2YXIgZGJLZXkgPSAiY2FzZVNlbnNpdGl2ZSI7DQogICAgICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goZGJLZXkpOw0KICAgICAgICAgICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YVtkYktleV07DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5maWx0ZXIuY2FzZVNlbnNpdGl2ZS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgICAgICAgICAvLyBGaWx0ZXIgUnVsZSAoQ3VzdG9tKQ0KICAgICAgICAgICAgICAgICAgICB2YXIgZGJLZXkgPSAiZmlsdGVyIjsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3suZmlsdGVyLmZpbHRlclJ1bGUucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3suZmlsdGVyLmZpbHRlclJ1bGUudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAiZ3JvdXAtdGl0bGUiOg0KICAgICAgICAgICAgICAgICAgICAvL2FsZXJ0KGRiS2V5ICsgIiAiICsgZmlsdGVyVHlwZSkNCiAgICAgICAgICAgICAgICAgICAgLy8gRmlsdGVyIGJhc2VkIG9uIHRoZSBncm91cHMgaW4gdGhlIE0zVQ0KICAgICAgICAgICAgICAgICAgICB2YXIgZGJLZXkgPSAiZmlsdGVyIjsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGdyb3Vwc00zVSA9IGdldExvY2FsRGF0YSgibTN1R3JvdXBzIiwgIiIpOw0KICAgICAgICAgICAgICAgICAgICB2YXIgdGV4dCA9IGdyb3Vwc00zVVsidGV4dCJdOw0KICAgICAgICAgICAgICAgICAgICB2YXIgdmFsdWVzID0gZ3JvdXBzTTNVWyJ2YWx1ZSJdOw0KICAgICAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCBkYXRhW2RiS2V5XSwgZGJLZXkpOw0KICAgICAgICAgICAgICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3suZmlsdGVyLmZpbHRlckdyb3VwLnRpdGxlfX0iLCBzZWxlY3QpOw0KICAgICAgICAgICAgICAgICAgICBjb250ZW50LmRlc2NyaXB0aW9uKCJ7ey5maWx0ZXIuZmlsdGVyR3JvdXAuZGVzY3JpcHRpb259fSIpOw0KICAgICAgICAgICAgICAgICAgICAvLyBDYXNlIHNlbnNldGl2ZQ0KICAgICAgICAgICAgICAgICAgICB2YXIgZGJLZXkgPSAiY2FzZVNlbnNpdGl2ZSI7DQogICAgICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goZGJLZXkpOw0KICAgICAgICAgICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YVtkYktleV07DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5maWx0ZXIuY2FzZVNlbnNpdGl2ZS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgICAgICAgICB2YXIgZGJLZXkgPSAiaW5jbHVkZSI7DQogICAgICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LmZpbHRlci5pbmNsdWRlLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LmZpbHRlci5pbmNsdWRlLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuZGVzY3JpcHRpb24oInt7LmZpbHRlci5pbmNsdWRlLmRlc2NyaXB0aW9ufX0iKTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGRiS2V5ID0gImV4Y2x1ZGUiOw0KICAgICAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5maWx0ZXIuZXhjbHVkZS5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5maWx0ZXIuZXhjbHVkZS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgICAgICAgICBjb250ZW50LmRlc2NyaXB0aW9uKCJ7ey5maWx0ZXIuZXhjbHVkZS5kZXNjcmlwdGlvbn19Iik7DQogICAgICAgICAgICAgICAgICAgIC8vIFByZXNlcnZlIE0zVSBQbGF5bGlzdCBDaGFubmVsIE1hcHBpbmcNCiAgICAgICAgICAgICAgICAgICAgdmFyIGRiS2V5ID0gInByZXNlcnZlTWFwcGluZyI7DQogICAgICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goZGJLZXkpOw0KICAgICAgICAgICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YVtkYktleV07DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5maWx0ZXIucHJlc2VydmVNYXBwaW5nLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAgICAgICAgIC8vIFN0YXJ0aW5nIENoYW5uZWwgTnVtYmVyIE1hcHBpbmcNCiAgICAgICAgICAgICAgICAgICAgdmFyIGRiS2V5ID0gInN0YXJ0aW5nQ2hhbm5lbCI7DQogICAgICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LmZpbHRlci5zdGFydGluZ0NoYW5uZWwucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3suZmlsdGVyLnN0YXJ0aW5nQ2hhbm5lbC50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgICAgICAgICAvLyBGaWxsIE1pc3NpbmcgRVBHIERhdGENCiAgICAgICAgICAgICAgICAgICAgLy8gVGhlIGZvbGxvd2luZyBjb2RlIG9ubHkgd29ya3Mgd2hlbiB4VGVWZSBEdW1teSBhbHJlYWR5IGV4aXN0cw0KICAgICAgICAgICAgICAgICAgICAvLyB2YXIgZGJLZXk6c3RyaW5nID0gImRlZmF1bHRNaXNzaW5nRVBHIg0KICAgICAgICAgICAgICAgICAgICAvLyB2YXIgeG1sdHY6WE1MVFZGaWxlID0gbmV3IFhNTFRWRmlsZSgpDQogICAgICAgICAgICAgICAgICAgIC8vIHZhciBzZWxlY3QgPSB4bWx0di5nZXRQcm9ncmFtcygieFRlVmUgRHVtbXkiLCBkYXRhW2RiS2V5XSkNCiAgICAgICAgICAgICAgICAgICAgLy8gc2VsZWN0LnNldEF0dHJpYnV0ZSgibmFtZSIsIGRiS2V5KQ0KICAgICAgICAgICAgICAgICAgICAvLyBzZWxlY3Quc2V0QXR0cmlidXRlKCJpZCIsICJwb3B1cC1taXNzaW5nLWVwZyIpDQogICAgICAgICAgICAgICAgICAgIC8vIFRoZSB3b3JrYXJvdW5kIGlzIGN1cnJlbnRseSB0byBoYXJkIGNvZGUgdGhlIHhUZVZlIER1bW15IGRhdGENCiAgICAgICAgICAgICAgICAgICAgdmFyIGRiS2V5ID0gImRlZmF1bHRNaXNzaW5nRVBHIjsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGxpc3RPcHRpb25zID0geyAidGV4dCI6IFsiLSIsICIzMCBNaW51dGVzICgzMF9NaW51dGVzKSIsICI2MCBNaW51dGVzICg2MF9NaW51dGVzKSIsICI5MCBNaW51dGVzICg5MF9NaW51dGVzKSIsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgIjEyMCBNaW51dGVzICgxMjBfTWludXRlcykiLCAiMTgwIE1pbnV0ZXMgKDMwX01pbnV0ZXMpIiwgIjI0MCBNaW51dGVzICgzMF9NaW51dGVzKSIsICIzNjAgTWludXRlcyAoMzBfTWludXRlcykiXSwNCiAgICAgICAgICAgICAgICAgICAgICAgICJ2YWx1ZSI6IFsiLSIsICIzMF9NaW51dGVzIiwgIjYwX01pbnV0ZXMiLCAiOTBfTWludXRlcyIsICIxMjBfTWludXRlcyIsICIxODBfTWludXRlcyIsICIyNDBfTWludXRlcyIsICIzNjBfTWludXRlcyIsXSB9Ow0KICAgICAgICAgICAgICAgICAgICB2YXIgdGV4dCA9IGxpc3RPcHRpb25zWyJ0ZXh0Il07DQogICAgICAgICAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBsaXN0T3B0aW9uc1sidmFsdWUiXTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHNlbGVjdCA9IGNvbnRlbnQuY3JlYXRlU2VsZWN0KHRleHQsIHZhbHVlcywgZGF0YVtkYktleV0sIGRiS2V5KTsNCiAgICAgICAgICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LmZpbHRlci5kZWZhdWx0TWlzc2luZ0VQRy50aXRsZX19Iiwgc2VsZWN0KTsNCiAgICAgICAgICAgICAgICAgICAgY29udGVudC5kZXNjcmlwdGlvbigie3suZmlsdGVyLmRlZmF1bHRNaXNzaW5nRVBHLmRlc2NyaXB0aW9ufX0iKTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICB9DQogICAgICAgICAgICAvLyBJbnRlcmFjdGlvbg0KICAgICAgICAgICAgY29udGVudC5jcmVhdGVJbnRlcmFjdGlvbigpOw0KICAgICAgICAgICAgLy8gRGVsZXRlDQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAiZGVsZXRlIiwgInt7LmJ1dHRvbi5kZWxldGV9fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoImZpbHRlciIsICInICsgaWQgKyAnIiwgdHJ1ZSwgMCknKTsNCiAgICAgICAgICAgIGlucHV0LmNsYXNzTmFtZSA9ICJkZWxldGUiOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICAvLyBBYm9ydA0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImNhbmNlbCIsICJ7ey5idXR0b24uY2FuY2VsfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBzaG93RWxlbWVudCgicG9wdXAiLCBmYWxzZSk7Jyk7DQogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIC8vIFNhdmUNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJzYXZlIiwgInt7LmJ1dHRvbi5zYXZlfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBzYXZlUG9wdXBEYXRhKCJmaWx0ZXIiLCAiJyArIGlkICsgJyIsIGZhbHNlLCAwKScpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSAieG1sdHYiOg0KICAgICAgICAgICAgY29udGVudC5jcmVhdGVIZWFkbGluZShkYXRhVHlwZSk7DQogICAgICAgICAgICAvLyBOYW1lDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAibmFtZSI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3sueG1sdHYubmFtZS5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sueG1sdHYubmFtZS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgLy8gRGVzY3JpcHRpb24NCiAgICAgICAgICAgIHZhciBkYktleSA9ICJkZXNjcmlwdGlvbiI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3sueG1sdHYuZGVzY3JpcHRpb24ucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnhtbHR2LmRlc2NyaXB0aW9uLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBVUkwNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJmaWxlLnNvdXJjZSI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3sueG1sdHYuZmlsZVhNTFRWLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey54bWx0di5maWxlWE1MVFYudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIEludGVyYWN0aW9uDQogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUludGVyYWN0aW9uKCk7DQogICAgICAgICAgICAvLyBEZWxldGUNCiAgICAgICAgICAgIGlmIChkYXRhWyJpZC5wcm92aWRlciJdICE9ICItIikgew0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJkZWxldGUiLCAie3suYnV0dG9uLmRlbGV0ZX19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoInhtbHR2IiwgIicgKyBpZCArICciLCB0cnVlLCAwKScpOw0KICAgICAgICAgICAgICAgIGlucHV0LmNsYXNzTmFtZSA9ICJkZWxldGUiOw0KICAgICAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgLy8gQWJvcnQNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJjYW5jZWwiLCAie3suYnV0dG9uLmNhbmNlbH19Iik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogc2hvd0VsZW1lbnQoInBvcHVwIiwgZmFsc2UpOycpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICAvLyBVcGRhdGUNCiAgICAgICAgICAgIGlmIChkYXRhWyJpZC5wcm92aWRlciJdICE9ICItIikgew0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJ1cGRhdGUiLCAie3suYnV0dG9uLnVwZGF0ZX19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoInhtbHR2IiwgIicgKyBpZCArICciLCBmYWxzZSwgMSknKTsNCiAgICAgICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIC8vIFNhdmUNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJzYXZlIiwgInt7LmJ1dHRvbi5zYXZlfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBzYXZlUG9wdXBEYXRhKCJ4bWx0diIsICInICsgaWQgKyAnIiwgZmFsc2UsIDApJyk7DQogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJ1c2VycyI6DQogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUhlYWRsaW5lKCJ7ey5tYWluTWVudS5pdGVtLnVzZXJzfX0iKTsNCiAgICAgICAgICAgIC8vIFVzZXIgbmFtZQ0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gInVzZXJuYW1lIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey51c2Vycy51c2VybmFtZS5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sudXNlcnMudXNlcm5hbWUudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIE5ldyBQYXJzc3dvcmQNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJwYXNzd29yZCI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJwYXNzd29yZCIsIGRiS2V5LCAiIik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnVzZXJzLnBhc3N3b3JkLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey51c2Vycy5wYXNzd29yZC50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgLy8gQ29uZmlybWF0aW9uDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAiY29uZmlybSI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJwYXNzd29yZCIsIGRiS2V5LCAiIik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnVzZXJzLmNvbmZpcm0ucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnVzZXJzLmNvbmZpcm0udGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIEF1dGhlbnRpY2F0aW9uIFdFQg0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gImF1dGhlbnRpY2F0aW9uLndlYiI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KGRiS2V5KTsNCiAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhW2RiS2V5XTsNCiAgICAgICAgICAgIGlmIChkYXRhWyJkZWZhdWx0VXNlciJdID09IHRydWUpIHsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAiamF2YXNjcmlwdDogcmV0dXJuIGZhbHNlIik7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sudXNlcnMud2ViLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBBdXRoZW50aWNhdGlvbiBQTVMNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJhdXRoZW50aWNhdGlvbi5wbXMiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChkYktleSk7DQogICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YVtkYktleV07DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sudXNlcnMucG1zLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBBdXRoZW50aWNhdGlvbiBNM1UNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJhdXRoZW50aWNhdGlvbi5tM3UiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChkYktleSk7DQogICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YVtkYktleV07DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sudXNlcnMubTN1LnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBBdXRoZW50aWNhdGlvbiBYTUwNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJhdXRoZW50aWNhdGlvbi54bWwiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChkYktleSk7DQogICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YVtkYktleV07DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sudXNlcnMueG1sLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBBdXRoZW50aWNhdGlvbiBBUEkNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJhdXRoZW50aWNhdGlvbi5hcGkiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChkYktleSk7DQogICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YVtkYktleV07DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sudXNlcnMuYXBpLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBJbnRlcmFjdGlvbg0KICAgICAgICAgICAgY29udGVudC5jcmVhdGVJbnRlcmFjdGlvbigpOw0KICAgICAgICAgICAgLy8gRGVsZXRlDQogICAgICAgICAgICBpZiAoZGF0YVsiZGVmYXVsdFVzZXIiXSAhPSB0cnVlICYmIGlkICE9ICItIikgew0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJkZWxldGUiLCAie3suYnV0dG9uLmRlbGV0ZX19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuY2xhc3NOYW1lID0gImRlbGV0ZSI7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoIicgKyBkYXRhVHlwZSArICciLCAiJyArIGlkICsgJyIsIHRydWUsIDApJyk7DQogICAgICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICAvLyBBYm9ydA0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImNhbmNlbCIsICJ7ey5idXR0b24uY2FuY2VsfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBzaG93RWxlbWVudCgicG9wdXAiLCBmYWxzZSk7Jyk7DQogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIC8vIFNhdmUNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJzYXZlIiwgInt7LmJ1dHRvbi5zYXZlfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBzYXZlUG9wdXBEYXRhKCInICsgZGF0YVR5cGUgKyAnIiwgIicgKyBpZCArICciLCAiZmFsc2UiKTsnKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGNhc2UgIm1hcHBpbmciOg0KICAgICAgICAgICAgY29udGVudC5jcmVhdGVIZWFkbGluZSgie3subWFpbk1lbnUuaXRlbS5tYXBwaW5nfX0iKTsNCiAgICAgICAgICAgIC8vIEFjdGl2ZQ0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gIngtYWN0aXZlIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goZGJLZXkpOw0KICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGFbZGJLZXldOw0KICAgICAgICAgICAgaW5wdXQuaWQgPSAiYWN0aXZlIjsNCiAgICAgICAgICAgIC8vaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpDQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRvZ2dsZUNoYW5uZWxTdGF0dXMoJyIgKyBpZCArICInLCB0aGlzKSIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7Lm1hcHBpbmcuYWN0aXZlLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBDaGFubmVsIG5hbWUNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJ4LW5hbWUiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICBpZiAoQlVMS19FRElUID09IHRydWUpIHsNCiAgICAgICAgICAgICAgICBpbnB1dC5zdHlsZS5ib3JkZXIgPSAic29saWQgMXB4IHJlZCI7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJyZWFkb25seSIsICJ0cnVlIik7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3subWFwcGluZy5jaGFubmVsTmFtZS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgY29udGVudC5kZXNjcmlwdGlvbihkYXRhWyJuYW1lIl0pOw0KICAgICAgICAgICAgLy8gRGVzY3JpcHRpb24NCiAgICAgICAgICAgIHZhciBkYktleSA9ICJ4LWRlc2NyaXB0aW9uIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5tYXBwaW5nLmRlc2NyaXB0aW9uLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5tYXBwaW5nLmRlc2NyaXB0aW9uLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBVcGRhdGUgdGhlIGNoYW5uZWwgbmFtZQ0KICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoIl91dWlkLmtleSIpKSB7DQogICAgICAgICAgICAgICAgaWYgKGRhdGFbIl91dWlkLmtleSJdICE9ICIiKSB7DQogICAgICAgICAgICAgICAgICAgIHZhciBkYktleSA9ICJ4LXVwZGF0ZS1jaGFubmVsLW5hbWUiOw0KICAgICAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KGRiS2V5KTsNCiAgICAgICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YVtkYktleV07DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5tYXBwaW5nLnVwZGF0ZUNoYW5uZWxOYW1lLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgLy8gTG9nbyBVUkwgKENoYW5uZWwpIA0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gInR2Zy1sb2dvIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJpZCIsICJjaGFubmVsLWljb24iKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5tYXBwaW5nLmNoYW5uZWxMb2dvLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBDaGFubmVsIGxvZ28gdXBkYXRlDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAieC11cGRhdGUtY2hhbm5lbC1pY29uIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goZGJLZXkpOw0KICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGFbZGJLZXldOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJpZCIsICJ1cGRhdGUtaWNvbiIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJzsgY2hhbmdlQ2hhbm5lbExvZ28oJyIgKyBpZCArICInKTsiKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5tYXBwaW5nLnVwZGF0ZUNoYW5uZWxMb2dvLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBFeHBhbmQgRVBHIGNhdGVnb3J5DQogICAgICAgICAgICB2YXIgZGJLZXkgPSAieC1jYXRlZ29yeSI7DQogICAgICAgICAgICB2YXIgdGV4dCA9IFsiLSIsICJLaWRzIChFbWJ5IG9ubHkpIiwgIk5ld3MiLCAiTW92aWUiLCAiU2VyaWVzIiwgIlNwb3J0cyJdOw0KICAgICAgICAgICAgdmFyIHZhbHVlcyA9IFsiIiwgIktpZHMiLCAiTmV3cyIsICJNb3ZpZSIsICJTZXJpZXMiLCAiU3BvcnRzIl07DQogICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCBkYXRhW2RiS2V5XSwgZGJLZXkpOw0KICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5tYXBwaW5nLmVwZ0NhdGVnb3J5LnRpdGxlfX0iLCBzZWxlY3QpOw0KICAgICAgICAgICAgLy8gTTNVIGdyb3VwIHRpdGxlDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAieC1ncm91cC10aXRsZSI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5tYXBwaW5nLm0zdUdyb3VwVGl0bGUudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIGlmIChkYXRhWyJncm91cC10aXRsZSJdICE9IHVuZGVmaW5lZCkgew0KICAgICAgICAgICAgICAgIGNvbnRlbnQuZGVzY3JpcHRpb24oZGF0YVsiZ3JvdXAtdGl0bGUiXSk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICAvLyBYTUxUViBmaWxlDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAieC14bWx0di1maWxlIjsNCiAgICAgICAgICAgIHZhciB4bWxGaWxlID0gZGF0YVtkYktleV07DQogICAgICAgICAgICB2YXIgeG1sdHYgPSBuZXcgWE1MVFZGaWxlKCk7DQogICAgICAgICAgICB2YXIgc2VsZWN0ID0geG1sdHYuZ2V0RmlsZXMoZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgibmFtZSIsIGRiS2V5KTsNCiAgICAgICAgICAgIHNlbGVjdC5zZXRBdHRyaWJ1dGUoImlkIiwgInBvcHVwLXhtbHR2Iik7DQogICAgICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJzsgc2V0WG1sdHZDaGFubmVsKCciICsgaWQgKyAiJyx0aGlzKTsiKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5tYXBwaW5nLnhtbHR2RmlsZS50aXRsZX19Iiwgc2VsZWN0KTsNCiAgICAgICAgICAgIHZhciBmaWxlID0gZGF0YVtkYktleV07DQogICAgICAgICAgICAvLyBYTUxUViBNYXBwaW5nDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAieC1tYXBwaW5nIjsNCiAgICAgICAgICAgIHZhciB4bWx0diA9IG5ldyBYTUxUVkZpbGUoKTsNCiAgICAgICAgICAgIHZhciBzZWxlY3QgPSB4bWx0di5nZXRQcm9ncmFtcyhmaWxlLCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJuYW1lIiwgZGJLZXkpOw0KICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgiaWQiLCAicG9wdXAtbWFwcGluZyIpOw0KICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCc7IGNoZWNrWG1sdHZDaGFubmVsKCciICsgaWQgKyAiJyx0aGlzLCciICsgeG1sRmlsZSArICInKTsiKTsNCiAgICAgICAgICAgIHNvcnRTZWxlY3Qoc2VsZWN0KTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5tYXBwaW5nLnhtbHR2Q2hhbm5lbC50aXRsZX19Iiwgc2VsZWN0KTsNCiAgICAgICAgICAgIC8vIFRpbWVzaGlmdA0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gIngtdGltZXNoaWZ0IjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5tYXBwaW5nLnRpbWVzaGlmdC5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoImlkIiwgInRpbWVzaGlmdCIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7Lm1hcHBpbmcudGltZXNoaWZ0LnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBJbnRlcmFjdGlvbg0KICAgICAgICAgICAgY29udGVudC5jcmVhdGVJbnRlcmFjdGlvbigpOw0KICAgICAgICAgICAgLy8gVXBsb2FkIGxvZ28NCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJjYW5jZWwiLCAie3suYnV0dG9uLnVwbG9hZExvZ299fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IHVwbG9hZExvZ28oKTsnKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgLy8gQWJvcnQNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJjYW5jZWwiLCAie3suYnV0dG9uLmNhbmNlbH19Iik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogc2hvd0VsZW1lbnQoInBvcHVwIiwgZmFsc2UpOycpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICAvLyBGaW5pc2hlZA0KICAgICAgICAgICAgdmFyIGlkcyA9IFtdOw0KICAgICAgICAgICAgaWRzID0gZ2V0QWxsU2VsZWN0ZWRDaGFubmVscygpOw0KICAgICAgICAgICAgaWYgKGlkcy5sZW5ndGggPT0gMCkgew0KICAgICAgICAgICAgICAgIGlkcy5wdXNoKGlkKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJzYXZlIiwgInt7LmJ1dHRvbi5kb25lfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBkb25lUG9wdXBEYXRhKCInICsgZGF0YVR5cGUgKyAnIiwgIicgKyBpZHMgKyAnIiwgImZhbHNlIik7Jyk7DQogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBkZWZhdWx0Og0KICAgICAgICAgICAgYnJlYWs7DQogICAgfQ0KICAgIHNob3dQb3BVcEVsZW1lbnQoJ3BvcHVwLWN1c3RvbScpOw0KfQ0KY2xhc3MgWE1MVFZGaWxlIHsNCiAgICBnZXRGaWxlcyhzZXQpIHsNCiAgICAgICAgbGV0IGZpbGVJRHMgPSBnZXRPYmpLZXlzKFNFUlZFUlsieGVwZyJdWyJ4bWx0dk1hcCJdKTsNCiAgICAgICAgbGV0IHZhbHVlcyA9IG5ldyBBcnJheSgiLSIpOw0KICAgICAgICBsZXQgdGV4dCA9IG5ldyBBcnJheSgiLSIpOw0KICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGZpbGVJRHMubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgICAgIGlmIChmaWxlSURzW2ldICE9ICJ4VGVWZSBEdW1teSIpIHsNCiAgICAgICAgICAgICAgICB2YWx1ZXMucHVzaChnZXRWYWx1ZUZyb21Qcm92aWRlckZpbGUoZmlsZUlEc1tpXSwgInhtbHR2IiwgImZpbGUueHRldmUiKSk7DQogICAgICAgICAgICAgICAgdGV4dC5wdXNoKGdldFZhbHVlRnJvbVByb3ZpZGVyRmlsZShmaWxlSURzW2ldLCAieG1sdHYiLCAibmFtZSIpKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgICAgIHZhbHVlcy5wdXNoKGZpbGVJRHNbaV0pOw0KICAgICAgICAgICAgICAgIHRleHQucHVzaChmaWxlSURzW2ldKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KICAgICAgICBsZXQgc2VsZWN0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiU0VMRUNUIik7DQogICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGV4dC5sZW5ndGg7IGkrKykgew0KICAgICAgICAgICAgdmFyIG9wdGlvbiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIk9QVElPTiIpOw0KICAgICAgICAgICAgb3B0aW9uLnNldEF0dHJpYnV0ZSgidmFsdWUiLCB2YWx1ZXNbaV0pOw0KICAgICAgICAgICAgb3B0aW9uLmlubmVyVGV4dCA9IHRleHRbaV07DQogICAgICAgICAgICBzZWxlY3QuYXBwZW5kQ2hpbGQob3B0aW9uKTsNCiAgICAgICAgfQ0KICAgICAgICBpZiAoc2V0ICE9ICIiKSB7DQogICAgICAgICAgICBzZWxlY3QudmFsdWUgPSBzZXQ7DQogICAgICAgIH0NCiAgICAgICAgcmV0dXJuIHNlbGVjdDsNCiAgICB9DQogICAgZ2V0UHJvZ3JhbXMoZmlsZSwgc2V0KSB7DQogICAgICAgIC8vdmFyIGZpbGVJRHM6c3RyaW5nW10gPSBnZXRPYmpLZXlzKFNFUlZFUlsieGVwZyJdWyJ4bWx0dk1hcCJdKQ0KICAgICAgICBsZXQgdmFsdWVzID0gZ2V0T2JqS2V5cyhTRVJWRVJbInhlcGciXVsieG1sdHZNYXAiXVtmaWxlXSk7DQogICAgICAgIGxldCB0ZXh0ID0gW107DQogICAgICAgIGxldCBkaXNwbGF5TmFtZTsNCiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB2YWx1ZXMubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgICAgIGlmIChTRVJWRVJbInhlcGciXVsieG1sdHZNYXAiXVtmaWxlXVt2YWx1ZXNbaV1dLmhhc093blByb3BlcnR5KCdkaXNwbGF5LW5hbWUnKSA9PSB0cnVlKSB7DQogICAgICAgICAgICAgICAgZGlzcGxheU5hbWUgPSBTRVJWRVJbInhlcGciXVsieG1sdHZNYXAiXVtmaWxlXVt2YWx1ZXNbaV1dWyJkaXNwbGF5LW5hbWUiXTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgICAgIGRpc3BsYXlOYW1lID0gIi0iOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgdGV4dFtpXSA9IGRpc3BsYXlOYW1lICsgIiAoIiArIHZhbHVlc1tpXSArICIpIjsNCiAgICAgICAgfQ0KICAgICAgICB0ZXh0LnVuc2hpZnQoIi0iKTsNCiAgICAgICAgdmFsdWVzLnVuc2hpZnQoIi0iKTsNCiAgICAgICAgbGV0IHNlbGVjdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlNFTEVDVCIpOw0KICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRleHQubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgICAgIHZhciBvcHRpb24gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJPUFRJT04iKTsNCiAgICAgICAgICAgIG9wdGlvbi5zZXRBdHRyaWJ1dGUoInZhbHVlIiwgdmFsdWVzW2ldKTsNCiAgICAgICAgICAgIG9wdGlvbi5pbm5lclRleHQgPSB0ZXh0W2ldOw0KICAgICAgICAgICAgc2VsZWN0LmFwcGVuZENoaWxkKG9wdGlvbik7DQogICAgICAgIH0NCiAgICAgICAgaWYgKHNldCAhPSAiIikgew0KICAgICAgICAgICAgc2VsZWN0LnZhbHVlID0gc2V0Ow0KICAgICAgICB9DQogICAgICAgIGlmIChzZWxlY3QudmFsdWUgIT0gc2V0KSB7DQogICAgICAgICAgICBzZWxlY3QudmFsdWUgPSAiLSI7DQogICAgICAgIH0NCiAgICAgICAgcmV0dXJuIHNlbGVjdDsNCiAgICB9DQp9DQpmdW5jdGlvbiBnZXRWYWx1ZUZyb21Qcm92aWRlckZpbGUoZmlsZSwgZmlsZVR5cGUsIGtleSkgew0KICAgIGlmIChmaWxlID09ICJ4VGVWZSBEdW1teSIpIHsNCiAgICAgICAgcmV0dXJuIGZpbGU7DQogICAgfQ0KICAgIGxldCBmaWxlSUQ7DQogICAgbGV0IGluZGljYXRvciA9IGZpbGUuY2hhckF0KDApOw0KICAgIHN3aXRjaCAoaW5kaWNhdG9yKSB7DQogICAgICAgIGNhc2UgIk0iOg0KICAgICAgICAgICAgZmlsZVR5cGUgPSAibTN1IjsNCiAgICAgICAgICAgIGZpbGVJRCA9IGZpbGU7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSAiSCI6DQogICAgICAgICAgICBmaWxlVHlwZSA9ICJoZGhyIjsNCiAgICAgICAgICAgIGZpbGVJRCA9IGZpbGU7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSAiWCI6DQogICAgICAgICAgICBmaWxlVHlwZSA9ICJ4bWx0diI7DQogICAgICAgICAgICBmaWxlSUQgPSBmaWxlLnN1YnN0cmluZygwLCBmaWxlLmxhc3RJbmRleE9mKCcuJykpOw0KICAgICAgICAgICAgYnJlYWs7DQogICAgfQ0KICAgIGlmIChTRVJWRVJbInNldHRpbmdzIl1bImZpbGVzIl1bZmlsZVR5cGVdLmhhc093blByb3BlcnR5KGZpbGVJRCkgPT0gdHJ1ZSkgew0KICAgICAgICB2YXIgZGF0YSA9IFNFUlZFUlsic2V0dGluZ3MiXVsiZmlsZXMiXVtmaWxlVHlwZV1bZmlsZUlEXTsNCiAgICAgICAgcmV0dXJuIGRhdGFba2V5XTsNCiAgICB9DQogICAgcmV0dXJuOw0KfQ0KZnVuY3Rpb24gc2V0WG1sdHZDaGFubmVsKGlkLCBlbGVtZW50KSB7DQogICAgbGV0IHhtbHR2ID0gbmV3IFhNTFRWRmlsZSgpOw0KICAgIGxldCB4bWxGaWxlID0gZWxlbWVudC52YWx1ZTsNCiAgICBsZXQgdHZnSWQgPSBTRVJWRVJbInhlcGciXVsiZXBnTWFwcGluZyJdW2lkXVsidHZnLWlkIl07DQogICAgbGV0IHRkID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInBvcHVwLW1hcHBpbmciKS5wYXJlbnRFbGVtZW50Ow0KICAgIHRkLmlubmVySFRNTCA9ICIiOw0KICAgIGxldCBzZWxlY3QgPSB4bWx0di5nZXRQcm9ncmFtcyhlbGVtZW50LnZhbHVlLCB0dmdJZCk7DQogICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgibmFtZSIsICJ4LW1hcHBpbmciKTsNCiAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJpZCIsICJwb3B1cC1tYXBwaW5nIik7DQogICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCc7IGNoZWNrWG1sdHZDaGFubmVsKCciICsgaWQgKyAiJyx0aGlzLCciICsgeG1sRmlsZSArICInKTsiKTsNCiAgICBzZWxlY3QuY2xhc3NOYW1lID0gImNoYW5nZWQiOw0KICAgIHNvcnRTZWxlY3Qoc2VsZWN0KTsNCiAgICB0ZC5hcHBlbmRDaGlsZChzZWxlY3QpOw0KICAgIGNoZWNrWG1sdHZDaGFubmVsKGlkLCBzZWxlY3QsIHhtbEZpbGUpOw0KfQ0KZnVuY3Rpb24gY2hlY2tYbWx0dkNoYW5uZWwoaWQsIGVsZW1lbnQsIHhtbEZpbGUpIHsNCiAgICBsZXQgdmFsdWUgPSBlbGVtZW50LnZhbHVlOw0KICAgIGxldCBib29sOw0KICAgIGxldCBjaGVja2JveCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdhY3RpdmUnKTsNCiAgICBsZXQgY2hhbm5lbCA9IFNFUlZFUlsieGVwZyJdWyJlcGdNYXBwaW5nIl1baWRdOw0KICAgIGxldCB1cGRhdGVMb2dvOw0KICAgIGJvb2wgPSB2YWx1ZSAhPSAiLSI7DQogICAgY2hlY2tib3guY2hlY2tlZCA9IGJvb2w7DQogICAgY2hlY2tib3guY2xhc3NOYW1lID0gImNoYW5nZWQiOw0KICAgIGNvbnNvbGUubG9nKHhtbEZpbGUpOw0KICAgIC8vIFVwZGF0ZSBjaGFubmVsIGxvZ28NCiAgICAvKg0KICAgIHVwZGF0ZUxvZ28gPSAoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInVwZGF0ZS1pY29uIikgYXMgSFRNTElucHV0RWxlbWVudCkuY2hlY2tlZA0KICAgIGNvbnNvbGUubG9nKHVwZGF0ZUxvZ28pOw0KICAgICovDQogICAgaWYgKHhtbEZpbGUgIT0gInhUZVZlIER1bW15IiAmJiBib29sID09IHRydWUpIHsNCiAgICAgICAgLy8oZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInVwZGF0ZS1pY29uIikgYXMgSFRNTElucHV0RWxlbWVudCkuY2hlY2tlZCA9IHRydWU7DQogICAgICAgIC8vKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ1cGRhdGUtaWNvbiIpIGFzIEhUTUxJbnB1dEVsZW1lbnQpLmNsYXNzTmFtZSA9ICJjaGFuZ2VkIjsNCiAgICAgICAgY29uc29sZS5sb2coIklEIiwgaWQpOw0KICAgICAgICBjaGFuZ2VDaGFubmVsTG9nbyhpZCk7DQogICAgICAgIHJldHVybjsNCiAgICB9DQogICAgaWYgKHhtbEZpbGUgPT0gInhUZVZlIER1bW15Iikgew0KICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidXBkYXRlLWljb24iKS5jaGVja2VkID0gZmFsc2U7DQogICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ1cGRhdGUtaWNvbiIpLmNsYXNzTmFtZSA9ICJjaGFuZ2VkIjsNCiAgICB9DQogICAgcmV0dXJuOw0KfQ0KZnVuY3Rpb24gY2hhbmdlQ2hhbm5lbExvZ28oaWQpIHsNCiAgICBsZXQgdXBkYXRlTG9nbzsNCiAgICBsZXQgY2hhbm5lbCA9IFNFUlZFUlsieGVwZyJdWyJlcGdNYXBwaW5nIl1baWRdOw0KICAgIGxldCBmID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInBvcHVwLXhtbHR2Iik7DQogICAgbGV0IHhtbHR2RmlsZSA9IGYub3B0aW9uc1tmLnNlbGVjdGVkSW5kZXhdLnZhbHVlOw0KICAgIGxldCBtID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInBvcHVwLW1hcHBpbmciKTsNCiAgICBsZXQgeE1hcHBpbmcgPSBtLm9wdGlvbnNbbS5zZWxlY3RlZEluZGV4XS52YWx1ZTsNCiAgICBsZXQgeG1sdHZMb2dvID0gU0VSVkVSWyJ4ZXBnIl1bInhtbHR2TWFwIl1beG1sdHZGaWxlXVt4TWFwcGluZ11bImljb24iXTsNCiAgICB1cGRhdGVMb2dvID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInVwZGF0ZS1pY29uIikuY2hlY2tlZDsNCiAgICBpZiAodXBkYXRlTG9nbyA9PSB0cnVlICYmIHhtbHR2RmlsZSAhPSAieFRlVmUgRHVtbXkiKSB7DQogICAgICAgIGlmIChTRVJWRVJbInhlcGciXVsieG1sdHZNYXAiXVt4bWx0dkZpbGVdLmhhc093blByb3BlcnR5KHhNYXBwaW5nKSkgew0KICAgICAgICAgICAgdmFyIGxvZ28gPSB4bWx0dkxvZ287DQogICAgICAgIH0NCiAgICAgICAgZWxzZSB7DQogICAgICAgICAgICBsb2dvID0gY2hhbm5lbFsidHZnLWxvZ28iXTsNCiAgICAgICAgfQ0KICAgICAgICB2YXIgbG9nb0lucHV0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNoYW5uZWwtaWNvbiIpOw0KICAgICAgICBsb2dvSW5wdXQudmFsdWUgPSBsb2dvOw0KICAgICAgICBpZiAoQlVMS19FRElUID09IGZhbHNlKSB7DQogICAgICAgICAgICBsb2dvSW5wdXQuY2xhc3NOYW1lID0gImNoYW5nZWQiOw0KICAgICAgICB9DQogICAgfQ0KfQ0KZnVuY3Rpb24gc2F2ZVBvcHVwRGF0YShkYXRhVHlwZSwgaWQsIHJlbW92ZSwgb3B0aW9uKSB7DQogICAgaWYgKGRhdGFUeXBlID09ICJtYXBwaW5nIikgew0KICAgICAgICBsZXQgZGF0YSA9IHt9Ow0KICAgICAgICBjb25zb2xlLmxvZygiU2F2ZSBtYXBwaW5nIGRhdGEiKTsNCiAgICAgICAgbGV0IGNtZCA9ICJzYXZlRXBnTWFwcGluZyI7DQogICAgICAgIGRhdGFbImVwZ01hcHBpbmciXSA9IFNFUlZFUlsieGVwZyJdWyJlcGdNYXBwaW5nIl07DQogICAgICAgIGNvbnNvbGUubG9nKCJTRU5EIFRPIFNFUlZFUiIpOw0KICAgICAgICBsZXQgc2VydmVyID0gbmV3IFNlcnZlcihjbWQpOw0KICAgICAgICBzZXJ2ZXIucmVxdWVzdChkYXRhKTsNCiAgICAgICAgZGVsZXRlIFVORE9bImVwZ01hcHBpbmciXTsNCiAgICAgICAgcmV0dXJuOw0KICAgIH0NCiAgICBjb25zb2xlLmxvZygiU2F2ZSBwb3B1cCBkYXRhIik7DQogICAgbGV0IGRpdiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJwb3B1cC1jdXN0b20iKTsNCiAgICBsZXQgaW5wdXRzID0gZGl2LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJUQUJMRSIpWzBdLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJJTlBVVCIpOw0KICAgIGxldCBzZWxlY3RzID0gZGl2LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJUQUJMRSIpWzBdLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJTRUxFQ1QiKTsNCiAgICBsZXQgaW5wdXQgPSB7fTsNCiAgICBsZXQgY29uZmlybU1zZzsNCiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHNlbGVjdHMubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgdmFyIG5hbWU7DQogICAgICAgIG5hbWUgPSBzZWxlY3RzW2ldLm5hbWU7DQogICAgICAgIHZhciB2YWx1ZSA9IHNlbGVjdHNbaV0udmFsdWU7DQogICAgICAgIHN3aXRjaCAobmFtZSkgew0KICAgICAgICAgICAgY2FzZSAidHVuZXIiOg0KICAgICAgICAgICAgICAgIGlucHV0W25hbWVdID0gcGFyc2VJbnQodmFsdWUpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgICAgICBpbnB1dFtuYW1lXSA9IHZhbHVlOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICB9DQogICAgfQ0KICAgIGZvciAobGV0IGkgPSAwOyBpIDwgaW5wdXRzLmxlbmd0aDsgaSsrKSB7DQogICAgICAgIHN3aXRjaCAoaW5wdXRzW2ldLnR5cGUpIHsNCiAgICAgICAgICAgIGNhc2UgImNoZWNrYm94IjoNCiAgICAgICAgICAgICAgICBuYW1lID0gaW5wdXRzW2ldLm5hbWU7DQogICAgICAgICAgICAgICAgaW5wdXRbbmFtZV0gPSBpbnB1dHNbaV0uY2hlY2tlZDsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInRleHQiOg0KICAgICAgICAgICAgY2FzZSAiaGlkZGVuIjoNCiAgICAgICAgICAgIGNhc2UgInBhc3N3b3JkIjoNCiAgICAgICAgICAgICAgICBuYW1lID0gaW5wdXRzW2ldLm5hbWU7DQogICAgICAgICAgICAgICAgc3dpdGNoIChuYW1lKSB7DQogICAgICAgICAgICAgICAgICAgIGNhc2UgInR1bmVyIjoNCiAgICAgICAgICAgICAgICAgICAgICAgIGlucHV0W25hbWVdID0gcGFyc2VJbnQoaW5wdXRzW2ldLnZhbHVlKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgICAgICBkZWZhdWx0Og0KICAgICAgICAgICAgICAgICAgICAgICAgaW5wdXRbbmFtZV0gPSBpbnB1dHNbaV0udmFsdWU7DQogICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIH0NCiAgICB9DQogICAgbGV0IGRhdGEgPSB7fTsNCiAgICBsZXQgY21kOw0KICAgIGlmIChyZW1vdmUgPT0gdHJ1ZSkgew0KICAgICAgICBpbnB1dFsiZGVsZXRlIl0gPSB0cnVlOw0KICAgIH0NCiAgICBzd2l0Y2ggKGRhdGFUeXBlKSB7DQogICAgICAgIGNhc2UgInVzZXJzIjoNCiAgICAgICAgICAgIGNvbmZpcm1Nc2cgPSAiRGVsZXRlIHRoaXMgdXNlcj8iOw0KICAgICAgICAgICAgaWYgKGlkID09ICItIikgew0KICAgICAgICAgICAgICAgIGNtZCA9ICJzYXZlTmV3VXNlciI7DQogICAgICAgICAgICAgICAgZGF0YVsidXNlckRhdGEiXSA9IGlucHV0Ow0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgZWxzZSB7DQogICAgICAgICAgICAgICAgY21kID0gInNhdmVVc2VyRGF0YSI7DQogICAgICAgICAgICAgICAgbGV0IGQgPSB7fTsNCiAgICAgICAgICAgICAgICBkW2lkXSA9IGlucHV0Ow0KICAgICAgICAgICAgICAgIGRhdGFbInVzZXJEYXRhIl0gPSBkOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGNhc2UgIm0zdSI6DQogICAgICAgICAgICBjb25maXJtTXNnID0gIkRlbGV0ZSB0aGlzIHBsYXlsaXN0PyI7DQogICAgICAgICAgICBzd2l0Y2ggKG9wdGlvbikgew0KICAgICAgICAgICAgICAgIC8vIFBvcHVwOiBTYXZlDQogICAgICAgICAgICAgICAgY2FzZSAwOg0KICAgICAgICAgICAgICAgICAgICBjbWQgPSAic2F2ZUZpbGVzTTNVIjsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgLy8gUG9wdXA6IFVwZGF0ZQ0KICAgICAgICAgICAgICAgIGNhc2UgMToNCiAgICAgICAgICAgICAgICAgICAgY21kID0gInVwZGF0ZUZpbGVNM1UiOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGRhdGFbImZpbGVzIl0gPSB7fTsNCiAgICAgICAgICAgIGRhdGFbImZpbGVzIl1bZGF0YVR5cGVdID0ge307DQogICAgICAgICAgICBkYXRhWyJmaWxlcyJdW2RhdGFUeXBlXVtpZF0gPSBpbnB1dDsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJoZGhyIjoNCiAgICAgICAgICAgIGNvbmZpcm1Nc2cgPSAiRGVsZXRlIHRoaXMgSERIb21lUnVuIHR1bmVyPyI7DQogICAgICAgICAgICBzd2l0Y2ggKG9wdGlvbikgew0KICAgICAgICAgICAgICAgIC8vIFBvcHVwOiBTYXZlDQogICAgICAgICAgICAgICAgY2FzZSAwOg0KICAgICAgICAgICAgICAgICAgICBjbWQgPSAic2F2ZUZpbGVzSERIUiI7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIC8vIFBvcHVwOiBVcGRhdGUNCiAgICAgICAgICAgICAgICBjYXNlIDE6DQogICAgICAgICAgICAgICAgICAgIGNtZCA9ICJ1cGRhdGVGaWxlSERIUiI7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgZGF0YVsiZmlsZXMiXSA9IHt9Ow0KICAgICAgICAgICAgZGF0YVsiZmlsZXMiXVtkYXRhVHlwZV0gPSB7fTsNCiAgICAgICAgICAgIGRhdGFbImZpbGVzIl1bZGF0YVR5cGVdW2lkXSA9IGlucHV0Ow0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGNhc2UgInhtbHR2IjoNCiAgICAgICAgICAgIGNvbmZpcm1Nc2cgPSAiRGVsZXRlIHRoaXMgWE1MVFYgZmlsZT8iOw0KICAgICAgICAgICAgc3dpdGNoIChvcHRpb24pIHsNCiAgICAgICAgICAgICAgICAvLyBQb3B1cDogU2F2ZQ0KICAgICAgICAgICAgICAgIGNhc2UgMDoNCiAgICAgICAgICAgICAgICAgICAgY21kID0gInNhdmVGaWxlc1hNTFRWIjsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgLy8gUG9wdXA6IFVwZGF0ZQ0KICAgICAgICAgICAgICAgIGNhc2UgMToNCiAgICAgICAgICAgICAgICAgICAgY21kID0gInVwZGF0ZUZpbGVYTUxUViI7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgZGF0YVsiZmlsZXMiXSA9IHt9Ow0KICAgICAgICAgICAgZGF0YVsiZmlsZXMiXVtkYXRhVHlwZV0gPSB7fTsNCiAgICAgICAgICAgIGRhdGFbImZpbGVzIl1bZGF0YVR5cGVdW2lkXSA9IGlucHV0Ow0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGNhc2UgImZpbHRlciI6DQogICAgICAgICAgICBjb25maXJtTXNnID0gIkRlbGV0ZSB0aGlzIGZpbHRlcj8iOw0KICAgICAgICAgICAgY21kID0gInNhdmVGaWx0ZXIiOw0KICAgICAgICAgICAgZGF0YVsiZmlsdGVyIl0gPSB7fTsNCiAgICAgICAgICAgIGRhdGFbImZpbHRlciJdW2lkXSA9IGlucHV0Ow0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICBjb25zb2xlLmxvZyhkYXRhVHlwZSwgaWQpOw0KICAgICAgICAgICAgcmV0dXJuOw0KICAgIH0NCiAgICBpZiAocmVtb3ZlID09IHRydWUpIHsNCiAgICAgICAgaWYgKCFjb25maXJtKGNvbmZpcm1Nc2cpKSB7DQogICAgICAgICAgICBzaG93RWxlbWVudCgicG9wdXAiLCBmYWxzZSk7DQogICAgICAgICAgICByZXR1cm47DQogICAgICAgIH0NCiAgICB9DQogICAgY29uc29sZS5sb2coIlNFTkQgVE8gU0VSVkVSIik7DQogICAgY29uc29sZS5sb2coZGF0YSk7DQogICAgbGV0IHNlcnZlciA9IG5ldyBTZXJ2ZXIoY21kKTsNCiAgICBzZXJ2ZXIucmVxdWVzdChkYXRhKTsNCn0NCmZ1bmN0aW9uIGRvbmVQb3B1cERhdGEoZGF0YVR5cGUsIGlkc1N0cikgew0KICAgIGxldCBpZHMgPSBpZHNTdHIuc3BsaXQoJywnKTsNCiAgICBsZXQgZGl2ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInBvcHVwLWN1c3RvbSIpOw0KICAgIGxldCBpbnB1dHMgPSBkaXYuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSgiY2hhbmdlZCIpOw0KICAgIGlkcy5mb3JFYWNoKGlkID0+IHsNCiAgICAgICAgbGV0IGlucHV0Ow0KICAgICAgICBpbnB1dCA9IFNFUlZFUlsieGVwZyJdWyJlcGdNYXBwaW5nIl1baWRdOw0KICAgICAgICBjb25zb2xlLmxvZyhpbnB1dCk7DQogICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgaW5wdXRzLmxlbmd0aDsgaSsrKSB7DQogICAgICAgICAgICBsZXQgbmFtZTsNCiAgICAgICAgICAgIGxldCB2YWx1ZTsNCiAgICAgICAgICAgIHN3aXRjaCAoaW5wdXRzW2ldLnRhZ05hbWUpIHsNCiAgICAgICAgICAgICAgICBjYXNlICJJTlBVVCI6DQogICAgICAgICAgICAgICAgICAgIHN3aXRjaCAoaW5wdXRzW2ldLnR5cGUpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgImNoZWNrYm94IjoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lID0gaW5wdXRzW2ldLm5hbWU7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSBpbnB1dHNbaV0uY2hlY2tlZDsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnB1dFtuYW1lXSA9IHZhbHVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAidGV4dCI6DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZSA9IGlucHV0c1tpXS5uYW1lOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlID0gaW5wdXRzW2ldLnZhbHVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlucHV0W25hbWVdID0gdmFsdWU7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAiU0VMRUNUIjoNCiAgICAgICAgICAgICAgICAgICAgbmFtZSA9IGlucHV0c1tpXS5uYW1lOw0KICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IGlucHV0c1tpXS52YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgaW5wdXRbbmFtZV0gPSB2YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBzd2l0Y2ggKG5hbWUpIHsNCiAgICAgICAgICAgICAgICBjYXNlICJ0dmctbG9nbyI6DQogICAgICAgICAgICAgICAgICAgIC8vKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5jaGlsZE5vZGVzWzJdLmZpcnN0Q2hpbGQgYXMgSFRNTEVsZW1lbnQpLnNldEF0dHJpYnV0ZSgic3JjIiwgdmFsdWUpDQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgIngtbmFtZSI6DQogICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5jaGlsZE5vZGVzWzNdLmZpcnN0Q2hpbGQuaW5uZXJIVE1MID0gdmFsdWU7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgIngtY2F0ZWdvcnkiOg0KICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkuY2hpbGROb2Rlc1szXS5maXJzdENoaWxkLmNsYXNzTmFtZSA9IHZhbHVlOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBjYXNlICJ4LWdyb3VwLXRpdGxlIjoNCiAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpLmNoaWxkTm9kZXNbNV0uZmlyc3RDaGlsZC5pbm5lckhUTUwgPSB2YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAieC14bWx0di1maWxlIjoNCiAgICAgICAgICAgICAgICAgICAgaWYgKHZhbHVlICE9ICJ4VGVWZSBEdW1teSIgJiYgdmFsdWUgIT0gIi0iKSB7DQogICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IGdldFZhbHVlRnJvbVByb3ZpZGVyRmlsZSh2YWx1ZSwgInhtbHR2IiwgIm5hbWUiKTsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBpZiAodmFsdWUgPT0gIi0iKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBpbnB1dFsieC1hY3RpdmUiXSA9IGZhbHNlOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5jaGlsZE5vZGVzWzZdLmZpcnN0Q2hpbGQuaW5uZXJIVE1MID0gdmFsdWU7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgIngtbWFwcGluZyI6DQogICAgICAgICAgICAgICAgICAgIGlmICh2YWx1ZSA9PSAiLSIpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGlucHV0WyJ4LWFjdGl2ZSJdID0gZmFsc2U7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpLmNoaWxkTm9kZXNbN10uZmlyc3RDaGlsZC5pbm5lckhUTUwgPSB2YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAieC10aW1lc2hpZnQiOg0KICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkuY2hpbGROb2Rlc1s4XS5maXJzdENoaWxkLmlubmVySFRNTCA9IHZhbHVlOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBkZWZhdWx0Og0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgY3JlYXRlU2VhcmNoT2JqKCk7DQogICAgICAgICAgICBzZWFyY2hJbk1hcHBpbmcoKTsNCiAgICAgICAgfQ0KICAgICAgICBpZiAoaW5wdXRbIngtYWN0aXZlIl0gPT0gZmFsc2UpIHsNCiAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5jbGFzc05hbWUgPSAibm90QWN0aXZlRVBHIjsNCiAgICAgICAgfQ0KICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5jbGFzc05hbWUgPSAiYWN0aXZlRVBHIjsNCiAgICAgICAgfQ0KICAgICAgICBjb25zb2xlLmxvZyhpbnB1dFsidHZnLWxvZ28iXSk7DQogICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5jaGlsZE5vZGVzWzJdLmZpcnN0Q2hpbGQuc2V0QXR0cmlidXRlKCJzcmMiLCBpbnB1dFsidHZnLWxvZ28iXSk7DQogICAgfSk7DQogICAgc2hvd0VsZW1lbnQoInBvcHVwIiwgZmFsc2UpOw0KICAgIHJldHVybjsNCn0NCmZ1bmN0aW9uIHNob3dQcmV2aWV3KGVsZW1lbnQpIHsNCiAgICBsZXQgZGl2ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm15U3RyZWFtc0JveCIpOw0KICAgIHN3aXRjaCAoZWxlbWVudCkgew0KICAgICAgICBjYXNlIGZhbHNlOg0KICAgICAgICAgICAgZGl2LmNsYXNzTmFtZSA9ICJub3RWaXNpYmxlIjsNCiAgICAgICAgICAgIHJldHVybjsNCiAgICB9DQogICAgbGV0IHN0cmVhbXMgPSBbImFjdGl2ZVN0cmVhbXMiLCAiaW5hY3RpdmVTdHJlYW1zIl07DQogICAgc3RyZWFtcy5mb3JFYWNoKHByZXZpZXcgPT4gew0KICAgICAgICBsZXQgdGFibGUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChwcmV2aWV3KTsNCiAgICAgICAgdGFibGUuaW5uZXJIVE1MID0gIiI7DQogICAgICAgIGxldCBvYmogPSBTRVJWRVJbImRhdGEiXVsiU3RyZWFtUHJldmlld1VJIl1bcHJldmlld107DQogICAgICAgIG9iai5mb3JFYWNoKGNoYW5uZWwgPT4gew0KICAgICAgICAgICAgbGV0IHRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVFIiKTsNCiAgICAgICAgICAgIGxldCB0ZEtleSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICBsZXQgdGRWYWwgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgdGRLZXkuY2xhc3NOYW1lID0gInRkS2V5IjsNCiAgICAgICAgICAgIHRkVmFsLmNsYXNzTmFtZSA9ICJ0ZFZhbCI7DQogICAgICAgICAgICBzd2l0Y2ggKHByZXZpZXcpIHsNCiAgICAgICAgICAgICAgICBjYXNlICJhY3RpdmVTdHJlYW1zIjoNCiAgICAgICAgICAgICAgICAgICAgdGRLZXkuaW5uZXJUZXh0ID0gIkNoYW5uZWw6ICgrKSI7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgImluYWN0aXZlU3RyZWFtcyI6DQogICAgICAgICAgICAgICAgICAgIHRkS2V5LmlubmVyVGV4dCA9ICJDaGFubmVsOiAoLSkiOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIHRkVmFsLmlubmVyVGV4dCA9IGNoYW5uZWw7DQogICAgICAgICAgICB0ci5hcHBlbmRDaGlsZCh0ZEtleSk7DQogICAgICAgICAgICB0ci5hcHBlbmRDaGlsZCh0ZFZhbCk7DQogICAgICAgICAgICB0YWJsZS5hcHBlbmRDaGlsZCh0cik7DQogICAgICAgIH0pOw0KICAgIH0pOw0KICAgIHNob3dFbGVtZW50KCJsb2FkaW5nIiwgZmFsc2UpOw0KICAgIGRpdi5jbGFzc05hbWUgPSAidmlzaWJsZSI7DQogICAgcmV0dXJuOw0KfQ0K" + webUI["html/create-first-user.html"] = "PCFkb2N0eXBlIGh0bWw+DQo8aHRtbD4NCiAgPGhlYWQ+DQogICAgPG1ldGEgY2hhcnNldD0idXRmLTgiPg0KICAgIDxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgsIGluaXRpYWwtc2NhbGU9MS4wIiAvPiANCiAgICA8dGl0bGU+eFRlVmU8L3RpdGxlPg0KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iY3NzL3NjcmVlbi5jc3MiIHR5cGU9InRleHQvY3NzIj4NCiAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9ImNzcy9iYXNlLmNzcyIgdHlwZT0idGV4dC9jc3MiPg0KICAgIDxzY3JpcHQgbGFuZ3VhZ2U9ImphdmFzY3JpcHQiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJqcy9uZXR3b3JrX3RzLmpzIj48L3NjcmlwdD4NCiAgICA8c2NyaXB0IGxhbmd1YWdlPSJqYXZhc2NyaXB0IiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ianMvYXV0aGVudGljYXRpb25fdHMuanMiPjwvc2NyaXB0Pg0KICA8L2hlYWQ+DQoNCiAgICA8Ym9keT4NCiAgICAgICAgICANCiAgICAgIDxkaXYgaWQ9ImhlYWRlciIgY2xhc3M9ImltZ0NlbnRlciI+PC9kaXY+DQoNCiAgICAgIDxkaXYgaWQ9ImJveCI+DQoNCiAgICAgICAgPGRpdiBpZD0iaGVhZGxpbmUiPg0KICAgICAgICAgIDxoMSBpZD0iaGVhZC10ZXh0IiBjbGFzcz0iY2VudGVyIj57ey5hY2NvdW50LmhlYWRsaW5lfX08L2gxPg0KICAgICAgICA8L2Rpdj4NCg0KICAgICAgICA8cCBpZD0iZXJyIiBjbGFzcz0iZXJyb3JNc2cgY2VudGVyIj48L3A+DQoNCiAgICAgICAgPGRpdiBpZD0iY29udGVudCI+DQoNCiAgICAgICAgICAgIDxmb3JtIGlkPSJhdXRoZW50aWNhdGlvbiIgYWN0aW9uPSIiIG1ldGhvZD0icG9zdCI+DQoNCiAgICAgICAgICAgICAgPGg1Pnt7LmFjY291bnQudXNlcm5hbWUudGl0bGV9fTo8L2g1Pg0KICAgICAgICAgICAgICA8aW5wdXQgaWQ9InVzZXJuYW1lIiB0eXBlPSJ0ZXh0IiBuYW1lPSJ1c2VybmFtZSIgcGxhY2Vob2xkZXI9IlVzZXJuYW1lIiB2YWx1ZT0iIj4NCiAgICAgICAgICAgICAgPGg1Pnt7LmFjY291bnQucGFzc3dvcmQudGl0bGV9fTo8L2g1Pg0KICAgICAgICAgICAgICA8aW5wdXQgaWQ9InBhc3N3b3JkIiB0eXBlPSJwYXNzd29yZCIgbmFtZT0icGFzc3dvcmQiIHBsYWNlaG9sZGVyPSJQYXNzd29yZCIgdmFsdWU9IiI+DQogICAgICAgICAgICAgIDxoNT57ey5hY2NvdW50LmNvbmZpcm0udGl0bGV9fTo8L2g1Pg0KICAgICAgICAgICAgICA8aW5wdXQgaWQ9ImNvbmZpcm0iICB0eXBlPSJwYXNzd29yZCIgbmFtZT0iY29uZmlybSIgIHBsYWNlaG9sZGVyPSJDb25maXJtIiB2YWx1ZT0iIj4NCiAgICAgICAgICAgICAgDQogICAgICAgICAgICA8L2Zvcm0+DQoNCiAgICAgICAgPC9kaXY+DQogICAgICAgIA0KICAgICAgICA8ZGl2IGlkPSJib3gtZm9vdGVyIj4NCiAgICAgICAgICA8aW5wdXQgaWQ9InN1Ym1pdCIgY2xhc3M9IiIgdHlwZT0iYnV0dG9uIiB2YWx1ZT0ie3suYnV0dG9uLmNyYWV0ZUFjY291bnR9fSIgb25jbGljaz0iamF2YXNjcmlwdDogbG9naW4oKTsiPg0KICAgICAgICA8L2Rpdj4NCiAgICAgIA0KICAgICAgICANCiAgICAgIDwvZGl2Pg0KICAgIDwvYm9keT4NCjwvaHRtbD4=" + webUI["html/img/users.png"] = "iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAAAXNSR0IArs4c6QAAAAlwSFlzAAAsSwAALEsBpT2WqQAABCRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IlhNUCBDb3JlIDUuNC4wIj4KICAgPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIgogICAgICAgICAgICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgICAgICAgICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyI+CiAgICAgICAgIDx0aWZmOlJlc29sdXRpb25Vbml0PjI8L3RpZmY6UmVzb2x1dGlvblVuaXQ+CiAgICAgICAgIDx0aWZmOkNvbXByZXNzaW9uPjU8L3RpZmY6Q29tcHJlc3Npb24+CiAgICAgICAgIDx0aWZmOlhSZXNvbHV0aW9uPjI4ODwvdGlmZjpYUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6T3JpZW50YXRpb24+MTwvdGlmZjpPcmllbnRhdGlvbj4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+Mjg4PC90aWZmOllSZXNvbHV0aW9uPgogICAgICAgICA8ZXhpZjpQaXhlbFhEaW1lbnNpb24+NTA8L2V4aWY6UGl4ZWxYRGltZW5zaW9uPgogICAgICAgICA8ZXhpZjpDb2xvclNwYWNlPjE8L2V4aWY6Q29sb3JTcGFjZT4KICAgICAgICAgPGV4aWY6UGl4ZWxZRGltZW5zaW9uPjUwPC9leGlmOlBpeGVsWURpbWVuc2lvbj4KICAgICAgICAgPGRjOnN1YmplY3Q+CiAgICAgICAgICAgIDxyZGY6QmFnLz4KICAgICAgICAgPC9kYzpzdWJqZWN0PgogICAgICAgICA8eG1wOk1vZGlmeURhdGU+MjAxOC0wOC0zMFQxNzowODozODwveG1wOk1vZGlmeURhdGU+CiAgICAgICAgIDx4bXA6Q3JlYXRvclRvb2w+UGl4ZWxtYXRvciAzLjM8L3htcDpDcmVhdG9yVG9vbD4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgIDwvcmRmOlJERj4KPC94OnhtcG1ldGE+CjU01MMAAANJSURBVGgF1ZnLaxNRFMYz2rpoFbW+SCsihaJQRMT6rPhAXAq6c+HChSguRFd1oRtd+A/oWhQ3oiiWFB91UbqRqlXXgoIIQhFbQTTQao2/GzLDZEjIPefO7SQHPjJz55zzfd/MZCa5N8h5ilKptJvWp8FekAed4Bv4Cj6Dh2A4CIJZPpszMHEV2MQ0SZdB0DROENMHjoEzQBoFCpZnbgYR58E/qfpE/kv2F2dmBvJ94G9ClHb3SiZGUBuASa3qGnVzjG3RmFmkKYrVHGB7e2zfdbOdBhc1TVyNnNSQNqg5wVURf/FdjRxpIEpzuIOio9JCtRHO2hrINkgJLfPFt6vaCII2WYrSpPVJi1RGuBrmTbxeSibIX5j3CUauAfOo9BXzNH4nMJ5TXREI1gHzqPQVRtc2zCyxJdAaGbclcMj7zi/jOdt6rZFhCH7akijznknqVEY4U78heSAhUuTekNSojFQIChIiYe57TtZrSY2LkecQzUjIBLljglz3VJ4qg+AXSDNGabbWXZ2wA6Qjabqg136hhHK6y60V8o2EGyl8/qHHpKZPGkYeQzyvIa9RM86XvFhjvOGQsxGIp2B50ZDJLuG2XZqnLO5rM3viGh9o0OZJon1bRLxxdHLcns1jJiYOAu2U0D2P0uStMXJdcVU+UdMlZ/NYgaA28ERg5ge5/R4l6VsjrANMWJiZJWeXnqm60vnxW90ul6u8ByaS4zX2i+S+qjGuGkrdSEWFzT1vlhlSC19Gui0UtnNriSfi6vX1ZWRjPcLEeGrzYqkb4SyvQGxvQnC93cF6BzIfx8gpYBsfSdycuei4AAR1ggugCCRh1lbugIF4vwXbhtisjfSDc+ARSOOf4lv6mNWv1VIj1ouQNF9K851gDzArtWbV1uYxS5o4zB+sp+AuKPC+cVv5RXwPuATMmUpreY1Wopgh+ybYKj4dFHWB+8DMwTZTjCHmsJUhEgfAF9DMcQtx9V8dHMyDqWZ2ENM2FL8yVV92kkY56GM5Lc6Z1vY0jbp5EJQnuqPLg4kdLWTCnIxVIJoDi4wweNYcbbGIfuLEjRxqMRNGbvTvsmyE22oZg70taKQn1BxekXw40GKfK0O9oZHsJ8ZCRbLPaI3xP7YzeQoHxWckAAAAAElFTkSuQmCC" + webUI["html/js/configuration_ts.js"] = "Y2xhc3MgV2l6YXJkQ2F0ZWdvcnkgew0KICAgIGNvbnN0cnVjdG9yKCkgew0KICAgICAgICB0aGlzLkRvY3VtZW50SUQgPSAiY29udGVudCI7DQogICAgfQ0KICAgIGNyZWF0ZUNhdGVnb3J5SGVhZGxpbmUodmFsdWUpIHsNCiAgICAgICAgdmFyIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJINCIpOw0KICAgICAgICBlbGVtZW50LmlubmVySFRNTCA9IHZhbHVlOw0KICAgICAgICByZXR1cm4gZWxlbWVudDsNCiAgICB9DQp9DQpjbGFzcyBXaXphcmRJdGVtIGV4dGVuZHMgV2l6YXJkQ2F0ZWdvcnkgew0KICAgIGNvbnN0cnVjdG9yKGtleSwgaGVhZGxpbmUpIHsNCiAgICAgICAgc3VwZXIoKTsNCiAgICAgICAgdGhpcy5oZWFkbGluZSA9IGhlYWRsaW5lOw0KICAgICAgICB0aGlzLmtleSA9IGtleTsNCiAgICB9DQogICAgY3JlYXRlV2l6YXJkKCkgew0KICAgICAgICB2YXIgaGVhZGxpbmUgPSB0aGlzLmNyZWF0ZUNhdGVnb3J5SGVhZGxpbmUodGhpcy5oZWFkbGluZSk7DQogICAgICAgIHZhciBrZXkgPSB0aGlzLmtleTsNCiAgICAgICAgdmFyIGNvbnRlbnQgPSBuZXcgUG9wdXBDb250ZW50KCk7DQogICAgICAgIHZhciBkZXNjcmlwdGlvbjsNCiAgICAgICAgdmFyIGRvYyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHRoaXMuRG9jdW1lbnRJRCk7DQogICAgICAgIGRvYy5pbm5lckhUTUwgPSAiIjsNCiAgICAgICAgZG9jLmFwcGVuZENoaWxkKGhlYWRsaW5lKTsNCiAgICAgICAgc3dpdGNoIChrZXkpIHsNCiAgICAgICAgICAgIGNhc2UgInR1bmVyIjoNCiAgICAgICAgICAgICAgICB2YXIgdGV4dCA9IG5ldyBBcnJheSgpOw0KICAgICAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBuZXcgQXJyYXkoKTsNCiAgICAgICAgICAgICAgICBmb3IgKHZhciBpID0gMTsgaSA8PSAxMDA7IGkrKykgew0KICAgICAgICAgICAgICAgICAgICB0ZXh0LnB1c2goaSk7DQogICAgICAgICAgICAgICAgICAgIHZhbHVlcy5wdXNoKGkpOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCAiMSIsIGtleSk7DQogICAgICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgiY2xhc3MiLCAid2l6YXJkIik7DQogICAgICAgICAgICAgICAgc2VsZWN0LmlkID0ga2V5Ow0KICAgICAgICAgICAgICAgIGRvYy5hcHBlbmRDaGlsZChzZWxlY3QpOw0KICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uID0gInt7LndpemFyZC50dW5lci5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImVwZ1NvdXJjZSI6DQogICAgICAgICAgICAgICAgdmFyIHRleHQgPSBbIlBNUyIsICJYRVBHIl07DQogICAgICAgICAgICAgICAgdmFyIHZhbHVlcyA9IFsiUE1TIiwgIlhFUEciXTsNCiAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCAiWEVQRyIsIGtleSk7DQogICAgICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgiY2xhc3MiLCAid2l6YXJkIik7DQogICAgICAgICAgICAgICAgc2VsZWN0LmlkID0ga2V5Ow0KICAgICAgICAgICAgICAgIGRvYy5hcHBlbmRDaGlsZChzZWxlY3QpOw0KICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uID0gInt7LndpemFyZC5lcGdTb3VyY2UuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJtM3UiOg0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBrZXksICIiKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LndpemFyZC5tM3UucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgiY2xhc3MiLCAid2l6YXJkIik7DQogICAgICAgICAgICAgICAgaW5wdXQuaWQgPSBrZXk7DQogICAgICAgICAgICAgICAgZG9jLmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbiA9ICJ7ey53aXphcmQubTN1LmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAieG1sdHYiOg0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBrZXksICIiKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LndpemFyZC54bWx0di5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJjbGFzcyIsICJ3aXphcmQiKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5pZCA9IGtleTsNCiAgICAgICAgICAgICAgICBkb2MuYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uID0gInt7LndpemFyZC54bWx0di5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICAgICAgY29uc29sZS5sb2coa2V5KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgfQ0KICAgICAgICB2YXIgcHJlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiUFJFIik7DQogICAgICAgIHByZS5pbm5lckhUTUwgPSBkZXNjcmlwdGlvbjsNCiAgICAgICAgZG9jLmFwcGVuZENoaWxkKHByZSk7DQogICAgICAgIGNvbnNvbGUubG9nKGhlYWRsaW5lLCBrZXkpOw0KICAgIH0NCn0NCmZ1bmN0aW9uIHJlYWR5Rm9yQ29uZmlndXJhdGlvbih3aXphcmQpIHsNCiAgICB2YXIgc2VydmVyID0gbmV3IFNlcnZlcigiZ2V0U2VydmVyQ29uZmlnIik7DQogICAgc2VydmVyLnJlcXVlc3QobmV3IE9iamVjdCgpKTsNCiAgICBzaG93RWxlbWVudCgibG9hZGluZyIsIGZhbHNlKTsNCiAgICBjb25maWd1cmF0aW9uV2l6YXJkW3dpemFyZF0uY3JlYXRlV2l6YXJkKCk7DQp9DQpmdW5jdGlvbiBzYXZlV2l6YXJkKCkgew0KICAgIHZhciBjbWQgPSAic2F2ZVdpemFyZCI7DQogICAgdmFyIGRpdiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb250ZW50Iik7DQogICAgdmFyIGNvbmZpZyA9IGRpdi5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCJ3aXphcmQiKTsNCiAgICB2YXIgd2l6YXJkID0gbmV3IE9iamVjdCgpOw0KICAgIGZvciAodmFyIGkgPSAwOyBpIDwgY29uZmlnLmxlbmd0aDsgaSsrKSB7DQogICAgICAgIHZhciBuYW1lOw0KICAgICAgICB2YXIgdmFsdWU7DQogICAgICAgIHN3aXRjaCAoY29uZmlnW2ldLnRhZ05hbWUpIHsNCiAgICAgICAgICAgIGNhc2UgIlNFTEVDVCI6DQogICAgICAgICAgICAgICAgbmFtZSA9IGNvbmZpZ1tpXS5uYW1lOw0KICAgICAgICAgICAgICAgIHZhbHVlID0gY29uZmlnW2ldLnZhbHVlOw0KICAgICAgICAgICAgICAgIC8vIElmIHRoZSB2YWx1ZSBpcyBhIG51bWJlciwgc3RvcmUgaXQgYXMgYSBudW1iZXINCiAgICAgICAgICAgICAgICBpZiAoaXNOYU4odmFsdWUpKSB7DQogICAgICAgICAgICAgICAgICAgIHdpemFyZFtuYW1lXSA9IHZhbHVlOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICAgICAgd2l6YXJkW25hbWVdID0gcGFyc2VJbnQodmFsdWUpOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgIklOUFVUIjoNCiAgICAgICAgICAgICAgICBzd2l0Y2ggKGNvbmZpZ1tpXS50eXBlKSB7DQogICAgICAgICAgICAgICAgICAgIGNhc2UgInRleHQiOg0KICAgICAgICAgICAgICAgICAgICAgICAgbmFtZSA9IGNvbmZpZ1tpXS5uYW1lOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSBjb25maWdbaV0udmFsdWU7DQogICAgICAgICAgICAgICAgICAgICAgICBpZiAodmFsdWUubGVuZ3RoID09IDApIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgbXNnID0gbmFtZS50b1VwcGVyQ2FzZSgpICsgIjogIiArICJ7ey5hbGVydC5taXNzaW5nSW5wdXR9fSI7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgYWxlcnQobXNnKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICB3aXphcmRbbmFtZV0gPSB2YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICAgICAgLy8gY29kZS4uLg0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICB9DQogICAgfQ0KICAgIHZhciBkYXRhID0gbmV3IE9iamVjdCgpOw0KICAgIGRhdGFbIndpemFyZCJdID0gd2l6YXJkOw0KICAgIHZhciBzZXJ2ZXIgPSBuZXcgU2VydmVyKGNtZCk7DQogICAgc2VydmVyLnJlcXVlc3QoZGF0YSk7DQogICAgY29uc29sZS5sb2coZGF0YSk7DQp9DQovLyBXaXphcmQNCnZhciBjb25maWd1cmF0aW9uV2l6YXJkID0gbmV3IEFycmF5KCk7DQpjb25maWd1cmF0aW9uV2l6YXJkLnB1c2gobmV3IFdpemFyZEl0ZW0oInR1bmVyIiwgInt7LndpemFyZC50dW5lci50aXRsZX19IikpOw0KY29uZmlndXJhdGlvbldpemFyZC5wdXNoKG5ldyBXaXphcmRJdGVtKCJlcGdTb3VyY2UiLCAie3sud2l6YXJkLmVwZ1NvdXJjZS50aXRsZX19IikpOw0KY29uZmlndXJhdGlvbldpemFyZC5wdXNoKG5ldyBXaXphcmRJdGVtKCJtM3UiLCAie3sud2l6YXJkLm0zdS50aXRsZX19IikpOw0KY29uZmlndXJhdGlvbldpemFyZC5wdXNoKG5ldyBXaXphcmRJdGVtKCJ4bWx0diIsICJ7ey53aXphcmQueG1sdHYudGl0bGV9fSIpKTsNCg==" + webUI["html/img/xmltv.png"] = "iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAAAXNSR0IArs4c6QAAAAlwSFlzAAAsSwAALEsBpT2WqQAABCRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IlhNUCBDb3JlIDUuNC4wIj4KICAgPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIgogICAgICAgICAgICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgICAgICAgICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyI+CiAgICAgICAgIDx0aWZmOlJlc29sdXRpb25Vbml0PjI8L3RpZmY6UmVzb2x1dGlvblVuaXQ+CiAgICAgICAgIDx0aWZmOkNvbXByZXNzaW9uPjU8L3RpZmY6Q29tcHJlc3Npb24+CiAgICAgICAgIDx0aWZmOlhSZXNvbHV0aW9uPjI4ODwvdGlmZjpYUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6T3JpZW50YXRpb24+MTwvdGlmZjpPcmllbnRhdGlvbj4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+Mjg4PC90aWZmOllSZXNvbHV0aW9uPgogICAgICAgICA8ZXhpZjpQaXhlbFhEaW1lbnNpb24+NTA8L2V4aWY6UGl4ZWxYRGltZW5zaW9uPgogICAgICAgICA8ZXhpZjpDb2xvclNwYWNlPjE8L2V4aWY6Q29sb3JTcGFjZT4KICAgICAgICAgPGV4aWY6UGl4ZWxZRGltZW5zaW9uPjUwPC9leGlmOlBpeGVsWURpbWVuc2lvbj4KICAgICAgICAgPGRjOnN1YmplY3Q+CiAgICAgICAgICAgIDxyZGY6QmFnLz4KICAgICAgICAgPC9kYzpzdWJqZWN0PgogICAgICAgICA8eG1wOk1vZGlmeURhdGU+MjAxOC0wNy0yOFQyMDowNzozMzwveG1wOk1vZGlmeURhdGU+CiAgICAgICAgIDx4bXA6Q3JlYXRvclRvb2w+UGl4ZWxtYXRvciAzLjM8L3htcDpDcmVhdG9yVG9vbD4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgIDwvcmRmOlJERj4KPC94OnhtcG1ldGE+Co6j9bsAAAGgSURBVGgF7VqxTsNADL0gYGEon8DOwsbAAH8BYmJn6cYIn8DC3h0+oixISFRiYYCJL0AwMMBAeK5w2rpV6uikxHfYknW98+vds18TK21DWGBlWR7CH+BfcEv2AzLP8HP42gLqkyUATuEp2PWEdQjF9ATs1zF/g29Mrxt+vVcUxR3xWxEktzFPJQmivsv8ZSI9DiQyVnxlIonwn6fpiczXpNuVVXH8O+a3Ys3y9NUyuf/NTTbEHZTjUlGSRzSiPhroUIENwB4AS/vS/susDwDhTpYBER9g7wHh5DWyibV9CiitCZbIafDEYUuJHQI3Nr/9ciWsjK6IFSWYhyvClbAyZqOIlYJG84jq7E1Ot97Zm+TinV1TrWwudk9EI3ebGFekzWprzspGEU2ySWCiOrs/s9dr7M/s9fVJJJrNXcsTsfaJc0WsKZINH+/sf1Jqvl1n1f2ZnStRN/pdq646XcSkIh9dkIg4s+IrE3nCpp8RG7f91ns+cCYR/LD4jcAZB42PN+A7/mcQ8ZxJhBYQvMJwBB/BKTFLVoLMC/wCfgyv7BesTKUC2LKM3wAAAABJRU5ErkJggg==" webUI["html/lang/en.json"] = "ew0KICAibWFpbk1lbnUiOg0KICB7DQogICAgIml0ZW0iOg0KICAgIHsNCiAgICAgICJwbGF5bGlzdCI6ICJQbGF5bGlzdCIsDQogICAgICAicG1zSUQiOiAiUE1TIElEIiwNCiAgICAgICJmaWx0ZXIiOiAiRmlsdGVyIiwNCiAgICAgICJ4bWx0diI6ICJYTUxUViIsDQogICAgICAibWFwcGluZyI6ICJNYXBwaW5nIiwNCiAgICAgICJ1c2VycyI6ICJVc2VycyIsDQogICAgICAic2V0dGluZ3MiOiAiU2V0dGluZ3MiLA0KICAgICAgImxvZyI6ICJMb2ciLA0KICAgICAgImxvZ291dCI6ICJMb2dvdXQiDQogICAgfSwNCiAgICAiaGVhZGxpbmUiOg0KICAgIHsNCiAgICAgICJwbGF5bGlzdCI6ICJMb2NhbCBvciByZW1vdGUgcGxheWxpc3RzIiwNCiAgICAgICJmaWx0ZXIiOiAiRmlsdGVyIHBsYXlsaXN0IiwNCiAgICAgICJ4bWx0diI6ICJMb2NhbCBvciByZW1vdGUgWE1MVFYgZmlsZXMiLA0KICAgICAgIm1hcHBpbmciOiAiTWFwIHBsYXlsaXN0IGNoYW5uZWxzIHRvIEVQRyBjaGFubmVscyIsDQogICAgICAidXNlcnMiOiAiVXNlciBtYW5hZ2VtZW50IiwNCiAgICAgICJzZXR0aW5ncyI6ICJTZXR0aW5ncyIsDQogICAgICAibG9nIjogIkxvZyIsDQogICAgICAibG9nb3V0IjogIkxvZ291dCINCiAgICB9DQogIH0sDQogICJjb25maXJtIjoNCiAgew0KICAgICJyZXN0b3JlIjogIkFsbCBkYXRhIHdpbGwgYmUgcmVwbGFjZWQgd2l0aCB0aG9zZSBmcm9tIHRoZSBiYWNrdXAuIFNob3VsZCB0aGUgZmlsZXMgYmUgcmVzdG9yZWQ/Ig0KICB9LA0KICAiYWxlcnQiOg0KICB7DQogICAgImZpbGVMb2FkaW5nRXJyb3IiOiAiRmlsZSBjb3VsZG4ndCBiZSBsb2FkZWQiLA0KICAgICJpbnZhbGlkQ2hhbm5lbE51bWJlciI6ICJJbnZhbGlkIGNoYW5uZWwgbnVtYmVyIiwNCiAgICAibWlzc2luZ0lucHV0IjogIk1pc3NpbmcgaW5wdXQiDQogIH0sDQogICJidXR0b24iOg0KICB7DQogICAgImJhY2siOiAiQmFjayIsDQogICAgImJhY2t1cCI6ICJCYWNrdXAiLA0KICAgICJidWxrRWRpdCI6ICJCdWxrIEVkaXQiLA0KICAgICJjYW5jZWwiOiAiQ2FuY2VsIiwNCiAgICAiZGVsZXRlIjogIkRlbGV0ZSIsDQogICAgImRvbmUiOiAiRG9uZSIsDQogICAgImxvZ2luIjogIkxvZ2luIiwNCiAgICAibmV3IjogIk5ldyIsDQogICAgIm5leHQiOiAiTmV4dCIsDQogICAgInJlc3RvcmUiOiAiUmVzdG9yZSIsDQogICAgInNhdmUiOiAiU2F2ZSIsDQogICAgInNlYXJjaCI6ICJTZWFyY2giLA0KICAgICJ1cGRhdGUiOiAiVXBkYXRlIiwNCiAgICAiY3JhZXRlQWNjb3VudCI6ICJDcmVhdGUgQWNjb3VudCIsDQogICAgInJlc2V0TG9ncyI6ICJSZXNldCBMb2dzIiwNCiAgICAidXBsb2FkTG9nbyI6ICJVcGxvYWQgTG9nbyINCiAgfSwNCiAgImZpbHRlciI6DQogIHsNCiAgICAidGFibGUiOg0KICAgIHsNCiAgICAgICJuYW1lIjogIkZpbHRlciBOYW1lIiwNCiAgICAgICJ0eXBlIjogIkZpbHRlciBUeXBlIiwNCiAgICAgICJmaWx0ZXIiOiAiRmlsdGVyIg0KICAgIH0sDQogICAgImN1c3RvbSI6ICJDdXN0b20iLA0KICAgICJncm91cCI6ICJNM1UgR3JvdXAiLA0KICAgICJuYW1lIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiRmlsdGVyIE5hbWUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIkZpbHRlciBuYW1lIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAiZGVzY3JpcHRpb24iOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJEZXNjcmlwdGlvbiIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiRGVzY3JpcHRpb24iLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJ0eXBlIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiVHlwZSIsDQogICAgICAiZ3JvdXBUaXRsZSI6ICJHcm91cCBUaXRsZSIsDQogICAgICAiY3VzdG9tRmlsdGVyIjogIkN1c3RvbSBGaWx0ZXIiDQogICAgfSwNCiAgICAiY2FzZVNlbnNpdGl2ZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIkNhc2UgU2Vuc2l0aXZlIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJmaWx0ZXJSdWxlIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiRmlsdGVyIFJ1bGUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIlNwb3J0IHtIRH0gIXtFUyxJVH0iLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJmaWx0ZXJHcm91cCI6DQogICAgew0KICAgICAgInRpdGxlIjogIkdyb3VwIFRpdGxlIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIlNlbGVjdCBhIE0zVSBncm91cC4gKENvdW50ZXIpPGJyPkNoYW5naW5nIHRoZSBncm91cCB0aXRsZSBpbiB0aGUgTTNVIGludmFsaWRhdGVzIHRoZSBmaWx0ZXIuIg0KICAgIH0sDQogICAgImluY2x1ZGUiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJJbmNsdWRlIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJGSEQsVUhEIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJDaGFubmVsIG5hbWUgbXVzdCBpbmNsdWRlLjxicj4oQ29tbWEgc2VwYXJhdGVkKSBDb21tYSBtZWFucyBvciINCiAgICB9LA0KICAgICJleGNsdWRlIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiRXhjbHVkZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiRVMsSVQiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIkNoYW5uZWwgbmFtZSBtdXN0IG5vdCBjb250YWluLjxicj4oQ29tbWEgc2VwYXJhdGVkKSBDb21tYSBtZWFucyBvciINCiAgICB9LA0KICAgICJwcmVzZXJ2ZU1hcHBpbmciOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJQcmVzZXJ2ZSBFeGlzdGluZyBNM1U8YnI+Q2hhbm5lbCBOdW1iZXJzIiwNCiAgICAgICJwYWxjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIlByZXNlcnZlIGV4aXN0aW5nIE0zVSBwbGF5bGlzdCBjaGFubmVsIG51bWJlcnM/Ig0KICAgIH0sDQogICAgInN0YXJ0aW5nQ2hhbm5lbCI6DQogICAgew0KICAgICAgInRpdGxlIjogIlN0YXJ0aW5nIENoYW5uZWwgTnVtYmVyIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJkZWZhdWx0TWlzc2luZ0VQRyI6DQogICAgew0KICAgICAgInRpdGxlIjogIkZpbGwgTWlzc2luZyBFUEcgRGF0YSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJXaGVuIHRoZXJlIGlzIG5vIG1hdGNoaW5nIEVQRyBkYXRhIGZvciBjaGFubmVsLCA8YnI+YXV0b2ZpbGwgd2l0aCB4VGVWZSBkdW1teSBFUEcgZGF0YT8iDQogICAgfQ0KDQogIH0sDQogICJwbGF5bGlzdCI6DQogIHsNCiAgICAidGFibGUiOg0KICAgIHsNCiAgICAgICJwbGF5bGlzdCI6ICJQbGF5bGlzdCIsDQogICAgICAidHVuZXIiOiAiVHVuZXIiLA0KICAgICAgImxhc3RVcGRhdGUiOiAiTGFzdCBVcGRhdGUiLA0KICAgICAgImF2YWlsYWJpbGl0eSI6ICJBdmFpbGFiaWxpdHkiLA0KICAgICAgInR5cGUiOiAiVHlwZSIsDQogICAgICAic3RyZWFtcyI6ICJTdHJlYW1zIiwNCiAgICAgICJncm91cFRpdGxlIjogImdyb3VwLXRpdGxlIiwNCiAgICAgICJ0dmdJRCI6ICJ0dmctaWQiLA0KICAgICAgInVuaXF1ZUlEIjogIlVuaXF1ZSBJRCINCiAgICB9LA0KICAgICJwbGF5bGlzdFR5cGUiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJQbGF5bGlzdCB0eXBlIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJ0eXBlIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiVHlwZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAibmFtZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIk5hbWUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIlBsYXlsaXN0IG5hbWUiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJkZXNjcmlwdGlvbiI6DQogICAgew0KICAgICAgInRpdGxlIjogIkRlc2NyaXB0aW9uIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJEZXNjcmlwdGlvbiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgImZpbGVNM1UiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJNM1UgRmlsZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiRmlsZSBwYXRoIG9yIFVSTCBvZiB0aGUgTTNVIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAiZmlsZUhESFIiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJIREhvbWVSdW4gSVAiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIklQIGFkZHJlc3MgYW5kIHBvcnQgKDE5Mi4xNjguMS4xMDo1MDA0KSIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgInR1bmVyIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiVHVuZXIgLyBTdHJlYW1zIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIk51bWJlciBvZiBwYXJhbGxlbCBjb25uZWN0aW9ucyB0aGF0IGNhbiBiZSBlc3RhYmxpc2hlZCB0byB0aGUgcHJvdmlkZXIuIDxicj5Pbmx5IGF2YWlsYWJsZSB3aXRoIGFjdGl2YXRlZCBidWZmZXIuPGJyPk5ldyBzZXR0aW5ncyB3aWxsIG9ubHkgYmUgYXBwbGllZCBhZnRlciBxdWl0dGluZyBhbGwgc3RyZWFtcy4iDQogICAgfQ0KICB9LA0KICAieG1sdHYiOg0KICB7DQogICAgInRhYmxlIjoNCiAgICB7DQogICAgICAiZ3VpZGUiOiAiR3VpZGUiLA0KICAgICAgImxhc3RVcGRhdGUiOiAiTGFzdCBVcGRhdGUiLA0KICAgICAgImF2YWlsYWJpbGl0eSI6ICJBdmFpbGFiaWxpdHkiLA0KICAgICAgImNoYW5uZWxzIjogIkNoYW5uZWxzIiwNCiAgICAgICJwcm9ncmFtcyI6ICJQcm9ncmFtcyINCiAgICB9LA0KICAgICJuYW1lIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiTmFtZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiR3VpZGUgbmFtZSIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgImRlc2NyaXB0aW9uIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiRGVzY3JpcHRpb24iLA0KICAgICAgInBsYWNlaG9sZGVyIjogIkRlc2NyaXB0aW9uIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAiZmlsZVhNTFRWIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiWE1MVFYgRmlsZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiRmlsZSBwYXRoIG9yIFVSTCBvZiB0aGUgWE1MVFYiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9DQogIH0sDQogICJtYXBwaW5nIjoNCiAgew0KICAgICJ0YWJsZSI6DQogICAgew0KICAgICAgImNoTm8iOiAiQ2guIE5vLiIsDQogICAgICAibG9nbyI6ICJMb2dvIiwNCiAgICAgICJjaGFubmVsTmFtZSI6ICJDaGFubmVsIE5hbWUiLA0KICAgICAgInBsYXlsaXN0IjogIlBsYXlsaXN0IiwNCiAgICAgICJncm91cFRpdGxlIjogIkdyb3VwIFRpdGxlIiwNCiAgICAgICJ4bWx0dkZpbGUiOiAiWE1MVFYgRmlsZSIsDQogICAgICAieG1sdHZJRCI6ICJYTUxUViBJRCIsDQogICAgICAidGltZXNoaWZ0IjogIlRpbWVzaGlmdCINCiAgICB9LA0KICAgICJhY3RpdmUiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJBY3RpdmUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgImNoYW5uZWxOYW1lIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiQ2hhbm5lbCBOYW1lIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJkZXNjcmlwdGlvbiI6DQogICAgew0KICAgICAgInRpdGxlIjogIkNoYW5uZWwgRGVzY3JpcHRpb24iLA0KICAgICAgInBsYWNlaG9sZGVyIjogIlVzZWQgYnkgdGhlIER1bW15IGFzIGFuIFhNTCBkZXNjcmlwdGlvbiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgInVwZGF0ZUNoYW5uZWxOYW1lIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiVXBkYXRlIENoYW5uZWwgTmFtZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAiY2hhbm5lbExvZ28iOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJMb2dvIFVSTCIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAidXBkYXRlQ2hhbm5lbExvZ28iOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJVcGRhdGUgQ2hhbm5lbCBMb2dvIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJlcGdDYXRlZ29yeSI6DQogICAgew0KICAgICAgInRpdGxlIjogIkVQRyBDYXRlZ29yeSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAibTN1R3JvdXBUaXRsZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIkdyb3VwIFRpdGxlICh4dGV2ZS5tM3UpIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJ4bWx0dkZpbGUiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJYTUxUViBGaWxlIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJ4bWx0dkNoYW5uZWwiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJYTUxUViBDaGFubmVsIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJ0aW1lc2hpZnQiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJUaW1lc2hpZnQiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIjAiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9DQogIH0sDQogICJ1c2VycyI6DQogIHsNCiAgICAidGFibGUiOg0KICAgIHsNCiAgICAgICJ1c2VybmFtZSI6ICJVc2VybmFtZSIsDQogICAgICAicGFzc3dvcmQiOiAiUGFzc3dvcmQiLA0KICAgICAgIndlYiI6ICJXRUIiLA0KICAgICAgInBtcyI6ICJQTVMiLA0KICAgICAgIm0zdSI6ICJNM1UiLA0KICAgICAgInhtbCI6ICJYTUwiLA0KICAgICAgImFwaSI6ICJBUEkiDQogICAgfSwNCiAgICAidXNlcm5hbWUiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJVc2VybmFtZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiVXNlcm5hbWUiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJwYXNzd29yZCI6DQogICAgew0KICAgICAgInRpdGxlIjogIlBhc3N3b3JkIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJQYXNzd29yZCIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgImNvbmZpcm0iOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJDb25maXJtIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJQYXNzd29yZCBjb25maXJtIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAid2ViIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiV2ViIEFjY2VzcyIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAicG1zIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiUE1TIEFjY2VzcyIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAibTN1IjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiTTNVIEFjY2VzcyIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAieG1sIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiWE1MIEFjY2VzcyIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAiYXBpIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiQVBJIEFjY2VzcyIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfQ0KICB9LA0KICAic2V0dGluZ3MiOg0KICB7DQogICAgImNhdGVnb3J5IjoNCiAgICB7DQogICAgICAiZ2VuZXJhbCI6ICJHZW5lcmFsIiwNCiAgICAgICJmaWxlcyI6ICJGaWxlcyIsDQogICAgICAic3RyZWFtaW5nIjogIlN0cmVhbWluZyIsDQogICAgICAiYmFja3VwIjogIkJhY2t1cCIsDQogICAgICAiYXV0aGVudGljYXRpb24iOiAiQXV0aGVudGljYXRpb24iDQogICAgfSwNCiAgICAidXBkYXRlIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiU2NoZWR1bGUgZm9yIHVwZGF0aW5nIChQbGF5bGlzdCwgWE1MVFYsIEJhY2t1cCkiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIjAwMDAsMTAwMCwyMDAwIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJUaW1lIGluIDI0IGhvdXIgZm9ybWF0ICgwODAwID0gODowMCBhbSkuIE1vcmUgdGltZXMgY2FuIGJlIGVudGVyZWQgY29tbWEgc2VwYXJhdGVkLiBMZWF2ZSB0aGlzIGZpZWxkIGVtcHR5IGlmIG5vIHVwZGF0ZXMgYXJlIHRvIGJlIGNhcnJpZWQgb3V0LiINCiAgICB9LA0KICAgICJhcGkiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJBUEkgSW50ZXJmYWNlIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJWaWEgQVBJIGludGVyZmFjZSBpdCBpcyBwb3NzaWJsZSB0byBzZW5kIGNvbW1hbmRzIHRvIHhUZVZlLiBBUEkgZG9jdW1lbnRhdGlvbiBpcyA8YSBocmVmPSdodHRwczovL2dpdGh1Yi5jb20veHRldmUtcHJvamVjdC94VGVWZS1Eb2N1bWVudGF0aW9uL2Jsb2IvbWFzdGVyL2VuL2NvbmZpZ3VyYXRpb24ubWQjYXBpJz5oZXJlPC9hPiINCiAgICB9LA0KICAgICJlcGdTb3VyY2UiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJFUEcgU291cmNlIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJQTVM6PGJyPi0gVXNlIEVQRyBkYXRhIGZyb20gUGxleCBvciBFbWJ5IDxicj48YnI+WEVQRzo8YnI+LSBVc2Ugb2Ygb25lIG9yIG1vcmUgWE1MVFYgZmlsZXM8YnI+LSBDaGFubmVsIG1hbmFnZW1lbnQ8YnI+LSBNM1UgLyBYTUxUViBleHBvcnQgKEhUVFAgbGluayBmb3IgSVBUViBhcHBzKSINCiAgICB9LA0KICAgICJ0dW5lciI6DQogICAgew0KICAgICAgInRpdGxlIjogIk51bWJlciBvZiBUdW5lcnMiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIk51bWJlciBvZiBwYXJhbGxlbCBjb25uZWN0aW9ucyB0aGF0IGNhbiBiZSBlc3RhYmxpc2hlZCB0byB0aGUgcHJvdmlkZXIuPGJyPkF2YWlsYWJsZSBmb3I6IFBsZXgsIEVtYnkgKEhESFIpLCBNM1UgKHdpdGggYWN0aXZlIGJ1ZmZlcikuPGJyPkFmdGVyIGEgY2hhbmdlLCB4VGVWZSBtdXN0IGJlIGRlbGV0ZSBpbiB0aGUgUGxleCAvIEVtYnkgRFZSIHNldHRpbmdzIGFuZCBzZXQgdXAgYWdhaW4uIg0KICAgIH0sDQogICAgImZpbGVzVXBkYXRlIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiVXBkYXRlcyBhbGwgZmlsZXMgYXQgc3RhcnR1cCIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiVXBkYXRlcyBhbGwgcGxheWxpc3RzLCB0dW5lciBhbmQgWE1MVFYgZmlsZXMgYXQgc3RhcnR1cC4iDQogICAgfSwNCiAgICAiY2FjaGVJbWFnZXMiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJJbWFnZSBDYWNoaW5nIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJBbGwgaW1hZ2VzIGZyb20gdGhlIFhNTFRWIGZpbGUgYXJlIGNhY2hlZCwgYWxsb3dpbmcgZmFzdGVyIHJlbmRlcmluZyBvZiB0aGUgZ3JpZCBpbiB0aGUgY2xpZW50Ljxicj5Eb3dubG9hZGluZyB0aGUgaW1hZ2VzIG1heSB0YWtlIGEgd2hpbGUgYW5kIHdpbGwgYmUgZG9uZSBpbiB0aGUgYmFja2dyb3VuZC4iDQogICAgfSwNCiAgICAicmVwbGFjZUVtcHR5SW1hZ2VzIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiUmVwbGFjZSBtaXNzaW5nIHByb2dyYW0gaW1hZ2VzIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJJZiB0aGUgcG9zdGVyIGluIHRoZSBYTUxUViBwcm9ncmFtIGlzIG1pc3NpbmcsIHRoZSBjaGFubmVsIGxvZ28gd2lsbCBiZSB1c2VkLiINCiAgICB9LA0KICAgICJ4dGV2ZUF1dG9VcGRhdGUiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJBdXRvbWF0aWMgdXBkYXRlIG9mIHhUZVZlIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJJZiBhIG5ldyB2ZXJzaW9uIG9mIHhUZVZlIGlzIGF2YWlsYWJsZSwgaXQgd2lsbCBiZSBhdXRvbWF0aWNhbGx5IGluc3RhbGxlZC4gVGhlIHVwZGF0ZXMgYXJlIGRvd25sb2FkZWQgZnJvbSBHaXRIdWIuIg0KICAgIH0sDQogICAgInN0cmVhbUJ1ZmZlcmluZyI6DQogICAgew0KICAgICAgInRpdGxlIjogIlN0cmVhbSBCdWZmZXIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIkZ1bmN0aW9ucyBvZiB0aGUgYnVmZmVyOjxicj4tIFRoZSBzdHJlYW0gaXMgcGFzc2VkIGZyb20geFRlVmUsIEZGbXBlZyBvciBWTEMgdG8gUGxleCwgRW1ieSBvciBNM1UgUGxheWVyPGJyPi0gU21hbGwgamVya2luZyBvZiB0aGUgc3RyZWFtcyBjYW4gYmUgY29tcGVuc2F0ZWQ8YnI+LSBITFMgLyBNM1U4IHN1cHBvcnQ8YnI+LSBSVFAgLyBSVFBTIHN1cHBvcnQgKG9ubHkgRkZtcGVnIG9yIFZMQyk8YnI+LSBSZS1zdHJlYW1pbmc8YnI+LSBTZXBhcmF0ZSB0dW5lciBsaW1pdCBmb3IgZWFjaCBwbGF5bGlzdCIsDQogICAgICAiaW5mb19mYWxzZSI6ICJObyBCdWZmZXIgKENsaWVudCBjb25uZWN0cyB0byB0aGUgc3RyZWFtaW5nIHNlcnZlcikiLA0KICAgICAgImluZm9feHRldmUiOiAieFRlVmUgY29ubmVjdHMgdG8gdGhlIHN0cmVhbWluZyBzZXJ2ZXIiLA0KICAgICAgImluZm9fZmZtcGVnIjogIkZGbXBlZyBjb25uZWN0cyB0byB0aGUgc3RyZWFtaW5nIHNlcnZlciIsDQogICAgICAiaW5mb192bGMiOiAiVkxDIGNvbm5lY3RzIHRvIHRoZSBzdHJlYW1pbmcgc2VydmVyIg0KDQogICAgfSwNCiAgICAidWRweHkiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJVRFB4eSBhZGRyZXNzIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJUaGUgYWRkcmVzcyBvZiB5b3VyIFVEUHh5IHNlcnZlci4gSWYgc2V0LCBhbmQgdGhlIGNoYW5uZWwgVVJMcyBpbiB0aGUgbTN1IGlzIG11bHRpY2FzdCwgeFRlVmUgd2lsbCByZXdyaXRlIGl0IHNvIHRoYXQgaXQgaXMgYWNjZXNzZWQgdmlhIHRoZSBVRFB4eSBzZXJ2aWNlLiIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiaG9zdDpwb3J0Ig0KICAgIH0sDQogICAgImZmbXBlZ1BhdGgiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJGRm1wZWcgQmluYXJ5IFBhdGgiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIlBhdGggdG8gRkZtcGVnIGJpbmFyeS4iLA0KICAgICAgInBsYWNlaG9sZGVyIjogIi9wYXRoL3RvL2ZmbXBlZyINCiAgICB9LA0KICAgICJmZm1wZWdPcHRpb25zIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiRkZtcGVnIE9wdGlvbnMiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIkZGbXBlZyBvcHRpb25zLjxicj5Pbmx5IGNoYW5nZSBpZiB5b3Uga25vdyB3aGF0IHlvdSBhcmUgZG9pbmcuPGJyPkxlYXZlIGJsYW5rIHRvIHNldCBkZWZhdWx0IHNldHRpbmdzLiIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiTGVhdmUgYmxhbmsgdG8gc2V0IGRlZmF1bHQgc2V0dGluZ3MiDQogICAgfSwNCiAgICAidmxjUGF0aCI6DQogICAgew0KICAgICAgInRpdGxlIjogIlZMQyAvIENWTEMgQmluYXJ5IFBhdGgiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIlBhdGggdG8gVkxDIC8gQ1ZMQyBiaW5hcnkuIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIvcGF0aC90by9jdmxjIg0KICAgIH0sDQogICAgInZsY09wdGlvbnMiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJWTEMgLyBDVkxDIE9wdGlvbnMiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIlZMQyAvIENWTEMgb3B0aW9ucy48YnI+T25seSBjaGFuZ2UgaWYgeW91IGtub3cgd2hhdCB5b3UgYXJlIGRvaW5nLjxicj5MZWF2ZSBibGFuayB0byBzZXQgZGVmYXVsdCBzZXR0aW5ncy4iLA0KICAgICAgInBsYWNlaG9sZGVyIjogIkxlYXZlIGJsYW5rIHRvIHNldCBkZWZhdWx0IHNldHRpbmdzIg0KICAgIH0sDQogICAgImJ1ZmZlclNpemUiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJCdWZmZXIgU2l6ZSIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiQnVmZmVyIHNpemUgaW4gTUIuPGJyPk0zVTg6IElmIHRoZSBUUyBzZWdtZW50IHNtYWxsZXIgdGhlbiB0aGUgYnVmZmVyIHNpemUsIHRoZSBmaWxlIHNpemUgb2YgdGhlIHNlZ21lbnQgaXMgdXNlZC4iDQogICAgfSwNCiAgICAiYnVmZmVyVGltZW91dCI6DQogICAgew0KICAgICAgInRpdGxlIjogIlRpbWVvdXQgZm9yIG5ldyBjbGllbnQgY29ubmVjdGlvbnMiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIlRoZSB4VGVWZSBidWZmZXIgd2FpdHMgdW50aWwgbmV3IGNsaWVudCBjb25uZWN0aW9ucyBhcmUgZXN0YWJsaXNoZWQuIEhlbHBmdWwgZm9yIGZhc3QgY2hhbm5lbCBzd2l0Y2hpbmcuIFZhbHVlIGluIG1pbGxpc2Vjb25kcy4iLA0KICAgICAgInBsYWNlaG9sZGVyIjogIjEwMCINCiAgICB9LA0KICAgICJ1c2VyQWdlbnQiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJVc2VyIEFnZW50IiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJVc2VyIEFnZW50IGZvciBIVFRQIHJlcXVlc3RzLiBGb3IgZXZlcnkgSFRUUCBjb25uZWN0aW9uLCB0aGlzIHZhbHVlIGlzIHVzZWQgZm9yIHRoZSB1c2VyIGFnZW50LiBTaG91bGQgb25seSBiZSBjaGFuZ2VkIGlmIHhUZVZlIGlzIGJsb2NrZWQuIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJ4VGVWZSINCiAgICB9LA0KICAgICJiYWNrdXBQYXRoIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiTG9jYXRpb24gZm9yIGF1dG9tYXRpYyBiYWNrdXBzIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIvbW50L2RhdGEvYmFja3VwL3h0ZXZlLyIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiQmVmb3JlIGFueSB1cGRhdGUgb2YgdGhlIHByb3ZpZGVyIGRhdGEgYnkgdGhlIHNjaGVkdWxlLCB4VGVWZSBjcmVhdGVzIGEgYmFja3VwLiBUaGUgcGF0aCBmb3IgdGhlIGF1dG9tYXRpYyBiYWNrdXBzIGNhbiBiZSBjaGFuZ2VkLiB4VGVWZSByZXF1aXJlcyB3cml0ZSBwZXJtaXNzaW9uIGZvciB0aGlzIGZvbGRlci4iDQogICAgfSwNCiAgICAidGVtcFBhdGgiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJMb2NhdGlvbiBmb3IgdGhlIHRlbXBvcmFyeSBmaWxlcyIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiL3RtcC94dGV2ZS8iLA0KICAgICAgImRlc2NyaXB0aW9uIjogIkxvY2F0aW9uIGZvciB0aGUgYnVmZmVyIGZpbGVzLiINCiAgICB9LA0KICAgICJiYWNrdXBLZWVwIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiTnVtYmVyIG9mIGJhY2t1cHMgdG8ga2VlcCIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiTnVtYmVyIG9mIGJhY2t1cHMgdG8ga2VlcC4gT2xkZXIgYmFja3VwcyBhcmUgYXV0b21hdGljYWxseSBkZWxldGVkLiINCiAgICB9LA0KICAgICJhdXRoZW50aWNhdGlvbldFQiI6DQogICAgew0KICAgICAgInRpdGxlIjogIldFQiBBdXRoZW50aWNhdGlvbiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiQWNjZXNzIHRvIHRoZSB3ZWIgaW50ZXJmYWNlIG9ubHkgcG9zc2libGUgd2l0aCBjcmVkZW50aWFscy4iDQogICAgfSwNCiAgICAiYXV0aGVudGljYXRpb25QTVMiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJQTVMgQXV0aGVudGljYXRpb24iLA0KICAgICAgImRlc2NyaXB0aW9uIjogIlBsZXggcmVxdWVzdHMgYXJlIG9ubHkgcG9zc2libGUgd2l0aCBhdXRoZW50aWNhdGlvbi4gPGJyPjxiPldhcm5pbmchISE8L2I+IEFmdGVyIGFjdGl2YXRpbmcgdGhpcyBmdW5jdGlvbiB4VGVWZSBtdXN0IGJlIGRlbGV0ZSBpbiB0aGUgUE1TIERWUiBzZXR0aW5ncyBhbmQgc2V0IHVwIGFnYWluLiINCiAgICB9LA0KICAgICJhdXRoZW50aWNhdGlvbk0zVSI6DQogICAgew0KICAgICAgInRpdGxlIjogIk0zVSBBdXRoZW50aWNhdGlvbiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiRG93bmxvYWRpbmcgdGhlIHh0ZXZlLm0zdSBmaWxlIHZpYSBhbiBIVFRQIHJlcXVlc3QgaXMgb25seSBwb3NzaWJsZSB3aXRoIGF1dGhlbnRpY2F0aW9uLiINCiAgICB9LA0KICAgICJhdXRoZW50aWNhdGlvblhNTCI6DQogICAgew0KICAgICAgInRpdGxlIjogIlhNTCBBdXRoZW50aWNhdGlvbiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiRG93bmxvYWRpbmcgdGhlIHh0ZXZlLnhtbCBmaWxlIHZpYSBhbiBIVFRQIHJlcXVlc3QgaXMgb25seSBwb3NzaWJsZSB3aXRoIGF1dGhlbnRpY2F0aW9uIg0KICAgIH0sDQogICAgImF1dGhlbnRpY2F0aW9uQVBJIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiQVBJIEF1dGhlbnRpY2F0aW9uIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJBY2Nlc3MgdG8gdGhlIEFQSSBpbnRlcmZhY2UgaXMgb25seSBwb3NzaWJsZSB3aXRoIGF1dGhlbnRpY2F0aW9uLiINCiAgICB9DQogIH0sDQogICJ3aXphcmQiOg0KICB7DQogICAgImVwZ1NvdXJjZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIkVQRyBTb3VyY2UiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIlBNUzo8YnI+LSBVc2UgRVBHIGRhdGEgZnJvbSBQbGV4IG9yIEVtYnkgPGJyPjxicj5YRVBHOjxicj4tIFVzZSBvZiBvbmUgb3IgbW9yZSBYTUxUViBmaWxlczxicj4tIENoYW5uZWwgbWFuYWdlbWVudDxicj4tIE0zVSAvIFhNTFRWIGV4cG9ydCAoSFRUUCBsaW5rIGZvciBJUFRWIGFwcHMpIg0KICAgIH0sDQogICAgInR1bmVyIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiTnVtYmVyIG9mIHR1bmVycyIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiTnVtYmVyIG9mIHBhcmFsbGVsIGNvbm5lY3Rpb25zIHRoYXQgY2FuIGJlIGVzdGFibGlzaGVkIHRvIHRoZSBwcm92aWRlci48YnI+QXZhaWxhYmxlIGZvcjogUGxleCwgRW1ieSAoSERIUiksIE0zVSAod2l0aCBhY3RpdmUgYnVmZmVyKS48YnI+QWZ0ZXIgYSBjaGFuZ2UsIHhUZVZlIG11c3QgYmUgZGVsZXRlIGluIHRoZSBQbGV4IC8gRW1ieSBEVlIgc2V0dGluZ3MgYW5kIHNldCB1cCBhZ2Fpbi4iDQogICAgfSwNCiAgICAibTN1IjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiTTNVIFBsYXlsaXN0IiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJGaWxlIHBhdGggb3IgVVJMIG9mIHRoZSBNM1UiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIkxvY2FsIG9yIHJlbW90ZSBwbGF5bGlzdHMiDQogICAgfSwNCiAgICAieG1sdHYiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJYTUxUViBGaWxlIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJGaWxlIHBhdGggb3IgVVJMIG9mIHRoZSBYTUxUViIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiTG9jYWwgb3IgcmVtb3RlIFhNTFRWIGZpbGUiDQogICAgfQ0KICB9LA0KICAibG9naW4iOg0KICB7DQogICAgImZhaWxlZCI6ICJVc2VyIGF1dGhlbnRpY2F0aW9uIGZhaWxlZCIsDQogICAgImhlYWRsaW5lIjogIkxvZ2luIiwNCiAgICAidXNlcm5hbWUiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJVc2VybmFtZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiVXNlcm5hbWUiDQogICAgfSwNCiAgICAicGFzc3dvcmQiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJQYXNzd29yZCIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiUGFzc3dvcmQiDQogICAgfQ0KICB9LA0KICAiYWNjb3VudCI6DQogIHsNCiAgICAiZmFpbGVkIjogIlBhc3N3b3JkIGRvZXMgbm90IG1hdGNoIiwNCiAgICAiaGVhZGxpbmUiOiAiQ3JlYXRlIHVzZXIgYWNjb3VudCIsDQogICAgInVzZXJuYW1lIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiVXNlcm5hbWUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIlVzZXJuYW1lIg0KICAgIH0sDQogICAgInBhc3N3b3JkIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiUGFzc3dvcmQiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIlBhc3N3b3JkIg0KICAgIH0sDQogICAgImNvbmZpcm0iOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJDb25maXJtIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJDb25maXJtIg0KICAgIH0NCiAgfQ0KfQ==" webUI["html/css/screen.css"] = "bmF2IGltZyB7DQogIGRpc3BsYXk6IGJsb2NrOw0KICBtYXgtaGVpZ2h0OiAyMHB4Ow0KICBtYXgtd2lkdGg6IDIwcHg7DQogIGZsb2F0OiBsZWZ0Ow0KfQ0KDQpuYXYgcCB7DQogIHRleHQtYWxpZ246IGxlZnQ7DQogIHBhZGRpbmc6IDBweCAzMHB4Ow0KfQ0KDQojbGF5b3V0IHsNCiAgZGlzcGxheTogYmxvY2s7DQogIGhlaWdodDogMTAwJTsNCn0NCg0KDQoubGF5b3V0LWxlZnQgew0KICBkaXNwbGF5OiBibG9jazsNCiAgbWluLXdpZHRoOiAxNTBweDsNCiAgbWF4LXdpZHRoOiAyMCU7DQogIGJhY2tncm91bmQtY29sb3I6ICMxMTE7DQogIGhlaWdodDogaW5oZXJpdDsNCiAgZmxvYXQ6IGxlZnQ7DQp9DQoNCi5sYXlvdXQtcmlnaHQgew0KICBkaXNwbGF5OiBibG9jazsNCiAgYmFja2dyb3VuZC1jb2xvcjogIzQ0NDsNCn0NCg0KI21lbnUtd3JhcHBlciB7DQogIGhlaWdodDogMTAwJTsNCn0NCg0KDQojbG9nbyB7DQogIGRpc3BsYXk6IGJsb2NrOw0KICBtaW4td2lkdGg6IDE4MHB4Ow0KICB3aWR0aDogMTAwJTsNCiAgaGVpZ2h0OiAxMDBweDsNCiAgYmFja2dyb3VuZDogdXJsKCIuLi9pbWcvbG9nb193XzYwMHgyMDAucG5nIik7DQogIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7DQogIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjsgDQogIGJhY2tncm91bmQtc2l6ZTogMTAwJTsNCn0NCg0KDQojcGFnZSB7DQogIG1heC13aWR0aDogOTUwcHg7DQogIG1hcmdpbjogYXV0bzsNCiAgYmFja2dyb3VuZC1jb2xvcjogIzQ0NDsNCg0KICAvKg0KICBoZWlnaHQ6IC13ZWJraXQtY2FsYygxMDAlIC0gMTMwcHgpOw0KICBoZWlnaHQ6IC1tb3otY2FsYygxMDAlIC0gMTMwcHgpOw0KICBoZWlnaHQ6IGNhbGMoMTAwJSAtIDEzMHB4KTsNCiAgKi8NCiAgDQogIG1pbi1oZWlnaHQ6IC13ZWJraXQtY2FsYygxMDAlIC0gMTIwcHgpOw0KICBtaW4taGVpZ2h0OiAtbW96LWNhbGMoMTAwJSAtIDEyMHB4KTsNCiAgbWluLWhlaWdodDogY2FsYygxMDAlIC0gMTIwcHgpOw0KICANCiAgDQogIGJveC1zaGFkb3c6IDBweCA1cHggNXB4ICMyMjI7DQogIA0KfQ0KDQojdWlTZXR0aW5nIHsNCiAgZmxvYXQ6IHJpZ2h0Ow0KICBtYXJnaW4tcmlnaHQ6IDI1cHg7DQp9DQoNCiNib3ggaW5wdXRbdHlwZT10ZXh0XSwgI2JveCBpbnB1dFt0eXBlPXBhc3N3b3JkXSB7DQogIHdpZHRoOiAtd2Via2l0LWNhbGMoMTAwJSAtIDIwcHgpOw0KICB3aWR0aDogLW1vei1jYWxjKDEwMCUgLSAyMHB4KTsNCiAgd2lkdGg6IGNhbGMoMTAwJSAtIDIwcHgpOw0KfQ0KDQojYm94IGlucHV0W3R5cGU9c3VibWl0XXsNCiAgbWFyZ2luOiA1MHB4IGF1dG87DQp9DQoNCiNzZXR0aW5ncyB7DQogIGRpc3BsYXk6IGJsb2NrOw0KICBwYWRkaW5nOiAxMHB4IDEwcHg7DQp9DQoNCiNzZXR0aW5ncyBoNSB7DQogIG1hcmdpbjogNTBweCAwcHggMTBweCAwcHg7DQp9DQoNCiNjb250ZW50LWludGVyYWN0aW9uIC5zZWFyY2ggew0KICB3aWR0aDogMjAwcHg7DQogIGJvcmRlcjogMXB4IHNvbGlkICMwMDA7DQogIHBhZGRpbmc6IDlweDsNCiAgYmFja2dyb3VuZC1jb2xvcjogIzMzMzsNCiAgbWFyZ2luOiAxMHB4Ow0KICBmbG9hdDogcmlnaHQ7DQogIGJvcmRlci1yYWRpdXM6IDNweDsNCg0KfQ0KDQojbXlTdHJlYW1zIHsNCiAgcG9zaXRpb246IGZpeGVkOw0KICBib3R0b206IDBweDsNCiAgYmFja2dyb3VuZC1jb2xvcjogIzExMTsNCiAgd2lkdGg6IDEwMCU7DQogIG1heC13aWR0aDogOTUwcHg7DQoNCiAgLyoNCiAgbWF4LWhlaWdodDogMTAwcHg7DQogICovDQogIG1hcmdpbi1ib3R0b206IDBweDsNCn0NCg0KI215U3RyZWFtcyBpbWcgew0KICB3aWR0aDogNCU7DQogIHBhZGRpbmc6IDJweCA1cHg7DQogIGN1cnNvcjogcG9pbnRlcjsNCiAgZmxvYXQ6IHJpZ2h0Ow0KfQ0KDQojc2V0dGluZ3MtZm9vdGVyIHsNCg0KfQ0KDQoNCi8qIFdpemFyZCovDQojYm94IHsNCiAgYmFja2dyb3VuZC1jb2xvcjogIzQ0NDsNCiAgbWluLWhlaWdodDogNDAwcHg7DQogIA0KICBkaXNwbGF5OiBmbGV4Ow0KICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOw0KICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47DQp9DQoNCiNib3ggcHsNCiAgcGFkZGluZzogMTBweCAwcHg7DQp9DQoNCiNib3gtZm9vdGVyIHsNCiAgbWFyZ2luLXRvcDogYXV0bzsNCn0NCg0KI2JveC1mb290ZXIgew0KICBtYXJnaW46IGF1dG87DQogIHBhZGRpbmc6IDEwcHg7DQp9DQoNCiNoZWFkbGluZSB7DQogIGJhY2tncm91bmQtY29sb3I6ICMyMjI7DQogIGJvcmRlci1ib3R0b206IHNvbGlkIDJweCAjMjIyOw0KICB0cmFuc2l0aW9uOiBhbGwgMC41czsNCiAgcGFkZGluZzogMTBweCAwcHg7DQogIGRpc3BsYXk6IGJsb2NrOw0KfQ0KDQojY29udGVudCB7DQogIGRpc3BsYXk6IGJsb2NrOw0KICBvdmVyZmxvdzogYXV0bzsNCiAgcGFkZGluZzogMTBweDsNCn0NCg0KLyogLS0tICovDQoNCg0KI2NsaWVudEluZm8sICNhY3RpdmVTdHJlYW1zLCAjaW5hY3RpdmVTdHJlYW1zIHsNCiAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZTsNCiAgZGlzcGxheTogYmxvY2s7DQogIGZvbnQtc2l6ZTogOXB4Ow0KICBiYWNrZ3JvdW5kLWNvbG9yOiAjMTExOw0KICBjb2xvcjogIzAwRTZGRjsNCiAgYm9yZGVyLWJvdHRvbTogc29saWQgMHB4OzsNCiAgcGFkZGluZzogMHB4Ow0KICBsZXR0ZXItc3BhY2luZzogMXB4Ow0KICBvdmVyZmxvdy14OiBoaWRkZW47DQogIGJvcmRlci1zcGFjaW5nOiA0cHggNHB4Ow0KICBib3JkZXItYm90dG9tOiBzb2xpZCAxcHggIzQ0NDsNCn0NCg0KI215U3RyZWFtc0JveCB7DQogIHBvc2l0aW9uOiByZWxhdGl2ZTsNCiAgcGFkZGluZzogMHB4Ow0KICAvKmhlaWdodDogMTAwcHg7Ki8NCiAgbWF4LWhlaWdodDogMTUwcHg7DQogIGJhY2tncm91bmQtY29sb3I6ICMxMTE7DQogIGNvbG9yOiB3aGl0ZTsNCiAgZGlzcGxheTpmbGV4Ow0KICBqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyOw0KICBhbGlnbi1pdGVtczpjZW50ZXI7DQp9DQoNCiNvcGVuU3RyZWFtcyB7DQogIHdpZHRoOiAyMHB4Ow0KICBoZWlnaHQ6IDIwcHg7DQogIGN1cnNvcjogcG9pbnRlcjsNCiAgZmxvYXQ6IHJpZ2h0Ow0KICBwb3NpdGlvbjogYWJzb2x1dGU7DQogIHJpZ2h0OiAwcHg7DQogIGJvdHRvbTogMHB4Ow0KICBiYWNrZ3JvdW5kOiB1cmwoIi4uL2ltZy90b3VjaC5wbmciKTsNCiAgYmFja2dyb3VuZC1jb2xvcjogIzExMTsNCiAgDQogIGJhY2tncm91bmQtcG9zaXRpb246IGJvdHRvbSByaWdodDsgIA0KfQ0KDQojYWxsU3RyZWFtcyB7DQogIHdpZHRoOiAxMDAlOw0KICBoZWlnaHQ6IDEwMCU7DQogIHBhZGRpbmc6IDJweDsgICAgIA0KfQ0KDQojYWN0aXZlU3RyZWFtcywgI2luYWN0aXZlU3RyZWFtcyB7DQogIG92ZXJmbG93LXk6IHNjcm9sbDsNCiAgd2lkdGg6IDUwJTsNCiAgbWF4LWhlaWdodDogMTAwcHg7DQogIGZsb2F0OiBsZWZ0Ow0KfQ0KDQojYWN0aXZlU3RyZWFtcyAudGRLZXksICNpbmFjdGl2ZVN0cmVhbXMgLnRkS2V5IHsNCiAgd2lkdGg6IDc1cHg7DQp9DQoNCg0KDQoNCiNpbmFjdGl2ZVN0cmVhbXMgLnRkS2V5IHsNCiAgY29sb3I6IHJlZDsNCn0NCg0KI2NsaWVudEluZm8gLnRkVmFsLCAjbG9nSW5mbyAudGRWYWwsICNhY3RpdmVTdHJlYW1zIC50ZFZhbCwgI2luYWN0aXZlU3RyZWFtcyAudGRWYWwsICNtYXBwaW5nSW5mbyAudGRWYWx7DQogIGNvbG9yOiAjYWFhOw0KICB3aGl0ZS1zcGFjZTogaW5oZXJpdDsNCn0NCg0KI2JveC13cmFwcGVyIHsNCiAgZGlzcGxheTogaW5saW5lLWJsb2NrOw0KICB3aWR0aDogMTAwJTsNCiAgDQogIG92ZXJmbG93LXk6IHNjcm9sbDsNCn0NCg0KI2NvbnRlbnRfdGFibGUsICNtYXBwaW5nLWRldGFpbC10YWJsZSwgI2NvbnRlbnRfdGFibGUgew0KICBkaXNwbGF5OiB0YWJsZTsNCiAgDQogIGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7DQogIG92ZXJmbG93LXk6IHNjcm9sbDsNCiAgd2lkdGg6IDEwMCU7DQp9DQoNCg0KI2NvbnRlbnRfdGFibGUgLmNvbnRlbnRfdGFibGVfaGVhZGVyIHsNCiAgYmFja2dyb3VuZC1jb2xvcjogIzMzMzsNCiAgaGVpZ2h0OiA1MHB4Ow0KICBib3JkZXItYm90dG9tOiBzb2xpZCAxcHggIzExMTsNCiAgYm9yZGVyLWxlZnQ6IHNvbGlkIDNweCAjMzMzOw0KICBjdXJzb3I6IGF1dG87DQoNCn0NCg0KDQp0Ym9keSB7DQogIHdpZHRoOiAxMDAlOw0KfQ0KDQoNCi50YWJsZUVsbGlwc2lzIHsNCiAgd2lkdGg6IDE1MHB4Ow0KICBvdmVyZmxvdzogaGlkZGVuOw0KICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsNCiAgd2hpdGUtc3BhY2U6IG5vd3JhcDsNCn0NCg0KI2NvbnRlbnRfdGFibGUgaW1nIHsNCiAgZGlzcGxheTogYmxvY2s7DQogIG1heC1oZWlnaHQ6IDI4cHg7DQogIG1hcmdpbi1sZWZ0OiBhdXRvOw0KICBtYXJnaW4tcmlnaHQ6IGF1dG87DQogIG1heC13aWR0aDogMzBweDsNCn0NCg0KI2NvbnRlbnRfdGFibGUgdHJ7DQogIGJvcmRlci1sZWZ0OiBzb2xpZCAzcHggNDQ0Ow0KICBib3JkZXItYm90dG9tOiBzb2xpZCAxcHggIzMzMzsNCiAgY3Vyc29yOiBwb2ludGVyOw0KfQ0KDQojY29udGVudF90YWJsZSB0cjpob3ZlciB7DQogIGJhY2tncm91bmQtY29sb3I6ICMzMzM7DQp9DQoNCiNjb250ZW50X3RhYmxlIHRkIHsNCg0KICBwYWRkaW5nOiAwcHggMnB4Ow0KfQ0KDQojY29udGVudF90YWJsZSBpbnB1dFt0eXBlPXRleHRdew0KICB3aWR0aDogODAlOw0KICBtaW4td2lkdGg6IDM1cHg7DQogIG1heC13aWR0aDogNjBweDsNCiAgYm9yZGVyOiAwcHg7DQogIGJhY2tncm91bmQtY29sb3I6ICMzMzM7DQogIG1hcmdpbi1sZWZ0OiA1cHg7DQogIHRleHQtYWxpZ246IGxlZnQ7DQp9DQoNCiNjb250ZW50X3RhYmxlIGlucHV0W3R5cGU9Y2hlY2tib3hdew0KICBtYXgtd2lkdGg6IDI1cHg7DQogIG1hcmdpbjogYXV0bzsNCn0NCg0KDQouc2hvd0J1bGsgew0KICBkaXNwbGF5OiBibG9jazsNCn0NCg0KLmhpZGVCdWxrIHsNCiAgZGlzcGxheTogbm9uZTsNCn0NCg0KLm5vQnVsayB7DQoNCn0NCg0KI2NvbnRlbnRfdGFibGUgdHIuYWN0aXZlRVBHew0KICBib3JkZXItbGVmdDogc29saWQgM3B4IGxhd25ncmVlbjsNCn0NCg0KI2NvbnRlbnRfdGFibGUgdHIubm90QWN0aXZlRVBHew0KICBib3JkZXItbGVmdDogc29saWQgM3B4IHJlZDsNCn0NCg0KDQojbG9nU2NyZWVuIHB7DQogIHdoaXRlLXNwYWNlOiBwcmU7DQogIGZvbnQtc2l6ZTogMTBweDsNCiAgLyoNCiAgbGluZS1oZWlnaHQ6IDEuNmVtOw0KICBmb250LWZhbWlseTogIkFyaWFsIiwgc2Fucy1zZXJpZjsNCiAgKi8NCiAgbGV0dGVyLXNwYWNpbmc6IDFweDsNCiAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZTsgDQogIGZvbnQtc2l6ZTogMTJweDsgDQogIGZvbnQtc3R5bGU6IG5vcm1hbDsgDQogIGZvbnQtdmFyaWFudDogbm9ybWFsOyANCiAgbGluZS1oZWlnaHQ6IDEuNmVtOyANCn0NCg0KI3BvcHVwIHsNCiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjQpOw0KICBwb3NpdGlvbjogZml4ZWQ7DQogIGxlZnQ6IDBweDsNCiAgd2lkdGg6IDEwMCU7DQogIHotaW5kZXg6IDEwMDsNCiAgaGVpZ2h0OiAxMDAlOw0KfQ0KDQojbWFwcGluZy1kZXRhaWwsICN1c2VyLWRldGFpbCwgI2ZpbGUtZGV0YWlsLCAjcG9wdXAtY3VzdG9tIHsNCiAgYm94LXNoYWRvdzogMHB4IDVweCA0MHB4ICMwMDA7DQogIG1hcmdpbi10b3A6IDIwcHg7DQogIG1hcmdpbi1sZWZ0OiBhdXRvOw0KICBtYXJnaW4tcmlnaHQ6IGF1dG87DQogIA0KICBtYXgtd2lkdGg6IDYwMHB4Ow0KICBiYWNrZ3JvdW5kLWNvbG9yOiAjMjIyOw0KICBwYWRkaW5nOiAxMHB4Ow0KICBvdmVyZmxvdzphdXRvOw0KfQ0KDQojcG9wdXAtY3VzdG9tIGgzIHsNCiAgdGV4dC1hbGlnbjogY2VudGVyOw0KfQ0KDQojZmlsZS1kZXRhaWwgaW5wdXRbdHlwZT10ZXh0XSB7DQogIHdpZHRoOiAtd2Via2l0LWNhbGMoMTAwJSAtIDIwcHgpOw0KICB3aWR0aDogLW1vei1jYWxjKDEwMCUgLSAyMHB4KTsNCiAgd2lkdGg6IGNhbGMoMTAwJSAtIDIwcHgpOw0KfQ0KDQojbWFwcGluZy1kZXRhaWwgaW1nIHsNCiAgZGlzcGxheTogYmxvY2s7DQogIG1heC1oZWlnaHQ6IDMwcHg7DQogIG1hcmdpbi1ib3R0b206IDIwcHg7DQogIG1hcmdpbi1sZWZ0OiBhdXRvOw0KICBtYXJnaW4tcmlnaHQ6IGF1dG87DQp9DQoNCiNwb3B1cC1jdXN0b20gaW5wdXRbdHlwZT10ZXh0XSwgI3BvcHVwLWN1c3RvbSBpbnB1dFt0eXBlPXBhc3N3b3JkXSwgI21hcHBpbmctZGV0YWlsIGlucHV0W3R5cGU9dGV4dF0sICNjb250ZW50X3NldHRpbmdzIGlucHV0W3R5cGU9dGV4dF0sICNjb250ZW50X3NldHRpbmdzIGlucHV0W3R5cGU9cGFzc3dvcmRdew0KICBib3JkZXI6IHNvbGlkIDFweDsNCiAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDsNCiAgYmFja2dyb3VuZC1jb2xvcjogIzMzMzsNCiAgdGV4dC1hbGlnbjogbGVmdDsNCiAgd2lkdGg6IC13ZWJraXQtY2FsYygxMDAlIC0gMjBweCk7DQogIHdpZHRoOiAgICAtbW96LWNhbGMoMTAwJSAtIDIwcHgpOw0KICB3aWR0aDogICAgICAgICBjYWxjKDEwMCUgLSAyMHB4KTsNCn0NCg0KI3BvcHVwLWN1c3RvbSBpbnB1dFt0eXBlPXRleHRdLm5vdEF2YWlsYWJsZSB7DQogIGJvcmRlci1jb2xvcjogcmVkOw0KICBjb2xvcjogIzY2NjsNCiAgY3Vyc29yOiBub3QtYWxsb3dlZDsNCn0NCg0KI21hcHBpbmctZGV0YWlsLXRhYmxlLCAjdXNlci1kZXRhaWwtdGFibGUgew0KICBkaXNwbGF5OiBpbmxpbmUtdGFibGU7DQogIHdpZHRoOiAxMDAlOw0KfQ0KDQojcG9wdXAtY3VzdG9tIHRhYmxlLCAjY29udGVudF9zZXR0aW5ncyB0YWJsZSB7DQogIGRpc3BsYXk6IGlubGluZS10YWJsZTsNCiAgdGFibGUtbGF5b3V0OiBmaXhlZDsNCiAgd2lkdGg6IDEwMCU7DQp9DQoNCg0KI21hcHBpbmctZGV0YWlsLXRhYmxlIHRkLCAjdXNlci1kZXRhaWwtdGFibGUgdGQgew0KICBwYWRkaW5nOiAxMHB4IDBweDsNCg0KfQ0KDQojbWFwcGluZy1kZXRhaWwtdGFibGUgdGQubGVmdCwgI3VzZXItZGV0YWlsLXRhYmxlIHRkLmxlZnQsICNwb3B1cC1jdXN0b20gdGQubGVmdCB7DQogIHdpZHRoOiAzOCU7DQp9DQoNCi5pbnRlcmFjdGlvbiwgI2ludGVyYWN0aW9uIHsNCiAgbWFyZ2luLXRvcDogMjBweDsNCiAgZGlzcGxheTogaW5saW5lLWZsZXg7DQogIGZsb2F0OiByaWdodDsNCn0NCg0KLmludGVyYWN0aW9uIGlucHV0W3R5cGU9YnV0dG9uXSwgLmludGVyYWN0aW9uIGlucHV0W3R5cGU9c3VibWl0XSB7DQogIGJhY2tncm91bmQtY29sb3I6ICMwMDA7DQogIG1pbi13aWR0aDogMTAwcHg7DQogIG1hcmdpbjogMHB4IDEwcHg7DQogIHRleHQtYWxpZ246IGNlbnRlcjsNCn0NCg0KI25vdGlmaWNhdGlvbiB7DQogIGRpc3BsYXk6IGJsb2NrOw0KICBwb3NpdGlvbjogZml4ZWQ7DQogIHJpZ2h0OiAwcHg7DQogIGhlaWdodDogMTAwJTsNCiAgd2lkdGg6IDI1MHB4Ow0KICANCiAgYmFja2dyb3VuZC1jb2xvcjogIzIyMjsNCiAgYm94LXNoYWRvdzogMHB4IDBweCAyMHB4ICMwMDA7DQp9DQoNCiNub3RpZmljYXRpb24gaDUgew0KICBiYWNrZ3JvdW5kLWNvbG9yOiAjMTIxMjEyOw0KICBwYWRkaW5nOiA1cHggMTBweCA1cHggMTBweDsNCn0NCg0KI25vdGlmaWNhdGlvbiBwcmUgew0KICBwYWRkaW5nOiAwcHggMTBweCAwcHggMTBweDsNCn0NCg0KI25vdGlmaWNhdGlvbiBwIHsNCiAgZm9udC1zaXplOiAxMCBweDsNCiAgbWFyZ2luOiAwcHg7DQogIHBhZGRpbmc6IDBweCAxMHB4IDVweCAxMHB4Ow0KfQ0KDQojbm90aWZpY2F0aW9uIC5lbGVtZW50IHsNCiAgLypwYWRkaW5nOiAwcHggNXB4OyovDQogIG1hcmdpbjogNXB4IDVweDsNCiAgYm9yZGVyLXJhZGl1czogNXB4Ow0KICBiYWNrZ3JvdW5kLWNvbG9yOiAjMTgxODE4Ow0KICBib3JkZXItbGVmdDogMTBweCBzb2xpZCBncmVlbjsNCn0NCg0KDQpAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDYyMHB4KXsNCiAgYm9keSB7DQogICAgd2lkdGg6IDEwMCU7DQogICAgYmFja2dyb3VuZC1jb2xvcjogIzQ0NDsNCiAgfQ0KDQogIGgxIHsNCiAgICBmb250LXNpemU6IDI2cHg7DQogICAgbGV0dGVyLXNwYWNpbmc6IDNweDsNCiAgfQ0KDQogIG5hdiBwIHsNCiAgICBkaXNwbGF5OiBibG9jazsNCiAgfQ0KDQoNCg0KICAjaGVhZGVyX2NvbmZpZyB7DQogICAgZGlzcGxheTogYmxvY2s7DQogICAgaGVpZ2h0OiAxMDBweDsNCiAgICBiYWNrZ3JvdW5kOiB1cmwoIi4uL2ltZy9sb2dvX3dfNjAweDIwMC5wbmciKTsNCiAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0Ow0KICAgIA0KICAgIGJhY2tncm91bmQtc2l6ZTogMzAwcHggMTAwcHg7DQogIH0NCg0KICAjc2NyZWVuTG9nIHsNCiAgICBtYXJnaW4tbGVmdDogMzAwcHg7DQoNCiAgICB0cmFuc2l0aW9uOiBub25lOw0KICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50Ow0KICAgIGJvcmRlci1ib3R0b206IHNvbGlkIDFweCB0cmFuc3BhcmVudDsNCiAgICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAjMjIyOw0KICB9DQoNCiAgI3NldHRpbmdzIHsNCiAgICAvKg0KICAgIGhlaWdodDogLXdlYmtpdC1jYWxjKDEwMCUgLSAxMDBweCk7DQogICAgaGVpZ2h0OiAtbW96LWNhbGMoMTAwJSAtIDEwMHB4KTsNCiAgICBoZWlnaHQ6IGNhbGMoMTAwJSAtIDEwMHB4KTsNCiAgICAqLw0KICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsNCiAgICBvdmVyZmxvdzogYXV0bzsNCiAgfQ0KDQoNCiAgLnNjcmVlbkxvZ0hpZGRlbiB7DQogICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMHB4LCAwcHgpOw0KICB9DQoNCg0KICAjYm94IHsNCiAgICBkaXNwbGF5OiBibG9jazsNCiAgICBtaW4taGVpZ2h0OiA1MDBweDsNCiAgICBtYXgtd2lkdGg6IDUwMHB4Ow0KICAgIG1hcmdpbjogMTBweCBhdXRvOw0KICAgIGJhY2tncm91bmQtY29sb3I6ICM0NDQ7DQogICAgYm94LXNoYWRvdzogMHB4IDVweCA1cHggIzIyMjsNCg0KICAgIGRpc3BsYXk6IGZsZXg7DQogICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsNCiAgfQ0KDQogICNzZXR0aW5ncywgI3NldHRpbmdzLWZvb3RlciB7DQogICAgDQogIH0NCn0NCg==" + webUI["html/img/log.png"] = "iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAAAXNSR0IArs4c6QAAAAlwSFlzAAAsSwAALEsBpT2WqQAABCRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IlhNUCBDb3JlIDUuNC4wIj4KICAgPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIgogICAgICAgICAgICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgICAgICAgICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyI+CiAgICAgICAgIDx0aWZmOlJlc29sdXRpb25Vbml0PjI8L3RpZmY6UmVzb2x1dGlvblVuaXQ+CiAgICAgICAgIDx0aWZmOkNvbXByZXNzaW9uPjU8L3RpZmY6Q29tcHJlc3Npb24+CiAgICAgICAgIDx0aWZmOlhSZXNvbHV0aW9uPjI4ODwvdGlmZjpYUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6T3JpZW50YXRpb24+MTwvdGlmZjpPcmllbnRhdGlvbj4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+Mjg4PC90aWZmOllSZXNvbHV0aW9uPgogICAgICAgICA8ZXhpZjpQaXhlbFhEaW1lbnNpb24+NTA8L2V4aWY6UGl4ZWxYRGltZW5zaW9uPgogICAgICAgICA8ZXhpZjpDb2xvclNwYWNlPjE8L2V4aWY6Q29sb3JTcGFjZT4KICAgICAgICAgPGV4aWY6UGl4ZWxZRGltZW5zaW9uPjUwPC9leGlmOlBpeGVsWURpbWVuc2lvbj4KICAgICAgICAgPGRjOnN1YmplY3Q+CiAgICAgICAgICAgIDxyZGY6QmFnLz4KICAgICAgICAgPC9kYzpzdWJqZWN0PgogICAgICAgICA8eG1wOk1vZGlmeURhdGU+MjAxOC0xMC0xNFQxMToxMDo0MjwveG1wOk1vZGlmeURhdGU+CiAgICAgICAgIDx4bXA6Q3JlYXRvclRvb2w+UGl4ZWxtYXRvciAzLjM8L3htcDpDcmVhdG9yVG9vbD4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgIDwvcmRmOlJERj4KPC94OnhtcG1ldGE+CkP32mEAAANASURBVGgF7ZlPiE1RHMffw1AYhiL5k1HEijJiYaFZiHoyFspW2RFRkkSZGgtFWJIwi9FYmo0VOywkKTbKgjSlWcifRCPX51dv6s2d33md77vvXjfmV9859/7u93x/v98959x73p1KRbAkSargAhgDH0E/qIYkuHYEvAPGvwbmNOEerXM/0Q6BRSFuZj/ix0DaDnvCkGppIucDAe4OhzvkcUO+GaELAf8ux7/b8Zlrr+Pvc3zm6nX8NccXdKmFLHaUPJ/Ruhyu5zNap8Nd6PiCLrUQTyi0Rjy/5/M0Zd+smB7M32XwtgBr07aC6yfSTs7XO77OALfH4VbgHsD/HLytVquJx4nyIdQFBsHftscksK5Z0sGhpuN8Or4Aa5sJFHjtO7G2MjKvvZjN1sglOpSlCMt9LrDZ4S4Hd0Qg24vrK+gAZbPtjMqTdFKhEdkIsYxFWP720JlioUK6pzDL41jtpRIqxOOWxecuB3fhRGT8E85YBK8VygI6GSRTCxlH3TaJgyw4O2678aCxO94LbNPovYDdmOrUukIBN/MqwjJEOwGPOHR31W4VONVCLEBR9lAJpBbSrYhn5K5R+quFnGUOr1ICtMIlxjz6XVb6qot9JeKvCPSAdlQJJHDtd8hOIN0wtRDLxx6Ntr0ulalTq1TJNyYzXUjj3SjD8X87Iva7uR8s5+2bi6FtX1oOgi8g2tSn1g2yPx+t3gIR/c90s1+C1vuO/YkxdWrdjxFtE2dE0VELWaqIZ+QuUfqrhZxmyKUvgEoyE1xizOR4YOI8plXXyAZEbYsyTJvXFsUW+x6wGUSbWogJ237rZHSEgojq1CooLT3MdCH6Pcu3xz8zIq0s9lvc2+sgz6dWH/rnQPB/jlybZGoh99hCHJqk0P6TD0jaI/4b7dVYeXVq2bemokyKpRZiHwWKMimWWshxhryjoEpOKXHUNbIN8WcUc5s2r8Vue7l9oAaiTS3EhDeB6EUYnUlGojq1MobLr3uokB/5hcys7OYWKuRl5nD5Cbi5uYXw0ntPHoay2S8Seuol5RZSJ0r/n/DEc/BdrN9kTZrH7BkwDspgwyQxW6uggU3nHnAXvAG/QZE2SrARsL8hJffwDxM0mNDPvT8IAAAAAElFTkSuQmCC" webUI["html/img/stream-limit.jpg"] = "/9j/4AAQSkZJRgABAQAAAQABAAD/4gJoSUNDX1BST0ZJTEUAAQEAAAJYbGNtcwQwAABtbnRyUkdCIFhZWiAH4wAFABcAFgAuAAphY3NwQVBQTAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA9tYAAQAAAADTLWxjbXMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAtkZXNjAAABCAAAAEBjcHJ0AAABSAAAAE53dHB0AAABmAAAABRjaGFkAAABrAAAACxyWFlaAAAB2AAAABRiWFlaAAAB7AAAABRnWFlaAAACAAAAABRyVFJDAAACFAAAACBnVFJDAAACFAAAACBiVFJDAAACFAAAACBjaHJtAAACNAAAACRtbHVjAAAAAAAAAAEAAAAMZW5VUwAAACQAAAAcAHMAUgBHAEIAIABJAEUAQwA2ADEAOQA2ADYALQAyAC4AMQAAbWx1YwAAAAAAAAABAAAADGVuVVMAAAAyAAAAHABOAG8AIABjAG8AcAB5AHIAaQBnAGgAdAAsACAAdQBzAGUAIABmAHIAZQBlAGwAeQAAAABYWVogAAAAAAAA9tYAAQAAAADTLXNmMzIAAAAAAAEMSgAABeP///MqAAAHmwAA/Yf///ui///9owAAA9gAAMCUWFlaIAAAAAAAAG+UAAA47gAAA5BYWVogAAAAAAAAJJ0AAA+DAAC2vlhZWiAAAAAAAABipQAAt5AAABjecGFyYQAAAAAAAwAAAAJmZgAA8qcAAA1ZAAAT0AAACltjaHJtAAAAAAADAAAAAKPXAABUewAATM0AAJmaAAAmZgAAD1z/2wBDAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQH/2wBDAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQH/wAARCAQ4B4ADASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD/AD/6KKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigD9PvBf/AARa/wCCrXxF8HeE/iD4G/YM/aL8UeCfHfhrQvGXg/xNpHgia50nxF4W8T6Xa634f13TLkTgXGn6vpN9aahZTgAS21xFIAN1dL/w4o/4LB/9I7/2m/8AwgZ//kiv9b3/AIJp/wDKOX9gH/syf9lX/wBUV4Dr7YoA/wAWr/hxR/wWD/6R3/tN/wDhAz//ACRR/wAOKP8AgsH/ANI7/wBpv/wgZ/8A5Ir/AGlaKAP8Wr/hxR/wWD/6R3/tN/8AhAz/APyRR/w4o/4LB/8ASO/9pv8A8IGf/wCSK/2laKAP8Wr/AIcUf8Fg/wDpHf8AtN/+EDP/APJFH/Dij/gsH/0jv/ab/wDCBn/+SK/2laKAP8Wr/hxR/wAFg/8ApHf+03/4QM//AMkUf8OKP+Cwf/SO/wDab/8ACBn/APkiv9pWigD/ABav+HFH/BYP/pHf+03/AOEDP/8AJFH/AA4o/wCCwf8A0jv/AGm//CBn/wDkiv8AaVooA/xav+HFH/BYP/pHf+03/wCEDP8A/JFH/Dij/gsH/wBI7/2m/wDwgZ//AJIr/aVooA/xav8AhxR/wWD/AOkd/wC03/4QM/8A8kUf8OKP+Cwf/SO/9pv/AMIGf/5Ir/aVooA/xav+HFH/AAWD/wCkd/7Tf/hAz/8AyRR/w4o/4LB/9I7/ANpv/wAIGf8A+SK/2laKAP8AFq/4cUf8Fg/+kd/7Tf8A4QM//wAkUf8ADij/AILB/wDSO/8Aab/8IGf/AOSK/wBpWigD/Fq/4cUf8Fg/+kd/7Tf/AIQM/wD8kUf8OKP+Cwf/AEjv/ab/APCBn/8Akiv9pWigD/Fq/wCHFH/BYP8A6R3/ALTf/hAz/wDyRR/w4o/4LB/9I7/2m/8AwgZ//kiv9pWigD/E88f/APBGT/gqj8K/AnjT4nfEX9hL9ofwf8P/AIdeFPEPjnxz4t1zwTNaaL4X8IeE9Ju9d8SeIdXujORbaZo2j2F5qN9OQRDa20shB24r8yq/28f+Ctf/ACit/wCClX/ZhH7Xv/rP/wAQK/xDqACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooA+j/ANmj9kL9pr9snxbrvgL9lr4K+Ovjn408M+HH8X6/4Y+H2ljWdZ0vwvFqen6NLr1zYrNHMNMh1XVtL0+a7RWihu9RsoZSj3MIf7U/4cUf8Fg/+kd/7Tf/AIQM/wD8kV2v/BAD9sj/AIYi/wCCrf7K/wATNW1X+yvh98QPFw+AHxWklm+z6f8A8IJ8aWg8HjU9Xl3Ls0rwd4wufCPxAuz82B4RQlJACjf7MFAH+LV/w4o/4LB/9I7/ANpv/wAIGf8A+SKP+HFH/BYP/pHf+03/AOEDP/8AJFf7StFAH+LV/wAOKP8AgsH/ANI7/wBpv/wgZ/8A5Io/4cUf8Fg/+kd/7Tf/AIQM/wD8kV/tK0UAf4tX/Dij/gsH/wBI7/2m/wDwgZ//AJIo/wCHFH/BYP8A6R3/ALTf/hAz/wDyRX+0rRQB/gx/HT4CfGb9mT4n+Ivgt+0B8NfFnwj+K3hJNHl8SeA/G2lzaP4i0iLxBomneI9Emu7KbJWLU9C1bTtTs5UZ45rW7idWySB5HX9yX/B69+yL/wAIr8eP2V/22/D2meXpfxb8Da18BfiPd2sOy3i8afDG9k8U+BdR1OXbiXVPFHg/xZrukWzB2P8AZnw0jjZIxEjS/wANtABRRRQAUUUUAFFFFABRRRQAUUUUAPRHldIokeSSR1SONFLu7uQqIiKCzOzEKqqCWJAAJNfq8n/BCv8A4LBSIki/8E7/ANp3a6q67vh/dI21gGG5HnV0bB5V1VlPDAEEVv8A/BBj9kX/AIbU/wCCrf7Ivwo1PTP7T8DeGPiFb/Gz4nRTQ+fpzeAvgpE3xDv9L1hQrEaZ4w1nRdD8BSkAFp/FdvH5kO/zo/8AZ4oA/wAWr/hxR/wWD/6R3/tN/wDhAz//ACRR/wAOKP8AgsH/ANI7/wBpv/wgZ/8A5Ir/AGlaKAP8Wr/hxR/wWD/6R3/tN/8AhAz/APyRR/w4o/4LB/8ASO/9pv8A8IGf/wCSK/2laKAP8Wr/AIcUf8Fg/wDpHf8AtN/+EDP/APJFH/Dij/gsH/0jv/ab/wDCBn/+SK/2laKAP8Kz9p39iX9rL9i7UfCOkftV/AT4ifAfVPHtlq+o+DtO+IejjRb3xDp+gz2Ntq97p1s00k0lrY3GpWUEs7IkbSz+XGztHKI/lqv6F/8Ag5+/bI/4a5/4K2/HDTNF1X+0fh7+y5aaZ+y74KEU261GofDq61K8+KVz5UbG3N0fi9r3jnSTexl5bzSdE0USybLeCGD+eigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigD/cg/4Jp/8o5f2Af+zJ/2Vf8A1RXgOvtivif/AIJp/wDKOX9gH/syf9lX/wBUV4Dr7YoAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigD8+P8AgrX/AMorf+ClX/ZhH7Xv/rP/AMQK/wAQ6v8Abx/4K1/8orf+ClX/AGYR+17/AOs//ECv8Q6gAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAHI7xOkkbtHJGyvHIjFHR0IZXRlIZWVgGVlIIIBBBFf7Z//BIH9sRP28f+Cbv7J37St5qS6n4x8VfC/TPDXxTmMqvc/wDC3PhxNcfD/wCJdxdQ5Mtp/bPi7w3qfiLT7e4zK2jazplyHnhuIrib/Eur/QW/4Mm/2yPteh/tZfsE+JNV3T6PeaT+1D8KNPml3yNp2pDRvht8YrW381t0NrYahB8JtRtLK33Rtda5r980cUjzyzgH98VFFFABRRRQAUUUUAfhR/wcifsif8Ngf8Eif2ndD0vTP7T8dfAvSbH9p74ehYvPuINW+DCXur+MUs4FUzXF/qvwjvfiRoFhb25E819q9skazn/R5v8AHer/AH6NW0rTdd0rU9D1mxtdU0fWdPvNK1bTL6FLmy1HTdRtpLS+sby3kDRz2t3azS29xDIrJLFI6OCrEV/hv/8ABQv9lrUv2J/23/2ov2V9Riuo4Pgv8Y/GHhbwzPe7/tWqeAJdQbWfhrr83mfPu8R/D7VPDOvjcWO3Uh88n32APjeiiigAooooAKKKKACiiigAooooA/0D/wDgyU/ZE+z6T+19+3Xr+mYl1G70D9lz4Y6lJFtdbSwTSfif8YfKaRd0lvd3Vz8HreC4g2xifS9VtneSRHSD++mvyl/4Ih/sif8ADEf/AAS3/ZB+B2o6X/ZXjV/hhYfE/wCKEEsPlahH8S/jDNN8SfFmmaq21WnvfCl14ki8EpKw+Ww8M2MCExQxmv1aoAKKKKACiiigAr5A/b+/ao0X9iP9iv8AaZ/as1xrRk+Cfwi8V+LdCsr5gtrrfjk2R0j4c+GZWLKF/wCEq8f6n4a8NodwxJqqdeh+v6/ib/4PTP2yP+EA/Za/Z5/Yk8N6r5WvftCfEG7+LPxGtLWb98nww+Dogh8OaVqtvuA+weKviT4g03W9Nk2uWvvhfdrujEZEoB/nB+IfEGteLPEGueKvEup3eteIvE2san4g1/WL+Uz32ra1rN7PqOq6nezNzNd399cz3VzKeZJpXc8mseiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigD/cg/4Jp/8AKOX9gH/syf8AZV/9UV4Dr7Yr4n/4Jp/8o5f2Af8Asyf9lX/1RXgOvtigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAPz4/4K1/8orf+ClX/AGYR+17/AOs//ECv8Q6v9vH/AIK1/wDKK3/gpV/2YR+17/6z/wDECv8AEOoAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAr9V/+CJP7ZH/DCn/BT39k348anqv9leA2+Itp8Mvi1NNN5Onp8LPi3FJ8P/F+qaou5RPaeEbfXYPHcMLMB/aXhXT5R80Sg/lRRQB/v8UV+TP/AAQ5/bI/4bo/4JdfsnfG7VNV/tXx9p/w+tfhN8WpZZvO1Fvid8IJG8A+JNV1f5m8u/8AGUWi6d8QFjDECx8W2TgRh/LT9ZqACiiigAooooAK/wA07/g9I/ZE/wCFcftj/AD9sXQNM8jQP2lfhZdfD7xtd28O5H+KPwOnsbO31HUp1A8q41z4a+KvBmkaXDN808HgPUnhZ1tplh/0sa/nd/4Oi/2RP+Gq/wDgkT8cNZ0fS/7R8dfsuapoP7T/AITMUO64TS/ACahpXxSVp0Bnjsbf4ReJvHOuz26hoLi+0HS2nQG3iuLcA/yKaKKKACiiigAooooAKKKKACv02/4I3fsi/wDDcf8AwUy/ZC/Z3vtM/tXwfr3xX0nxh8TrWSLfaS/Cr4XQ3PxJ+IlleyMGhto9d8L+FtQ8NWk04MbaprWn2yxzz3EUEv5k1/eL/wAGTH7In9reP/2uf259f0zdZ+D9A0H9mf4Z6hND5sEmveK7jTviL8VprV3Gy21LQ9E0b4YWSTwlp207xnqVsWhgnkS5AP8AQzooooAKKKKACiiigAr/AB3f+DkD9sj/AIbN/wCCtf7SWvaRqv8Aanw9+BGpWv7MPw1aOf7RaJovwcudR0zxfd2E6MYLnT9d+LV/8RfEWm3dsPJuNM1axZJJ1VbiX/Ux/wCCnv7XVn+wl+wF+1T+1TLdW1trXws+E2vXHgJbsRtBe/FTxOYPBnwo02aKQMJbe/8AiN4h8MW16qxysti9zN5UixMp/wAQK+vr3U7281LUru5v9R1C6uL6/vryaS5u729u5XuLq7uriZnlnubieR5p5pXaSWV2d2ZmJIBVooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooA/sa/Z9/4PGv2mv2ffgJ8EPgJo37HXwJ8QaP8EPhD8NfhDpOv6n43+IFtqWt6b8NfBmi+DLHV9Qt7QfZbe+1K10WK9u4bb/R4riaSOH92q169/xG8ftWf9GRfs9/+F98R/8ACv4h6KAP7eP+I3j9qz/oyL9nv/wvviP/AIUf8RvH7Vn/AEZF+z3/AOF98R/8K/iHooA/t4/4jeP2rP8AoyL9nv8A8L74j/4Uf8RvH7Vn/RkX7Pf/AIX3xH/wr+IeigD+3j/iN4/as/6Mi/Z7/wDC++I/+FH/ABG8ftWf9GRfs9/+F98R/wDCv4h6KAP9GT/gmX/wdhftE/t2/t3fs3/skeLv2T/gt4E8N/G/xpf+F9W8XeHPGPjnUNb0O3tPCviHxCt1p9lqY+wXEzzaNFbslz8gimkYfOq1/cpX+NT/AMG73/KaX9gD/srmtf8AqtPHVf7K1ABRRRQAUUUUAFFFFAH8KH/BRT/g7X/aN/Yq/bf/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WOj6BoOn3Gq6xql5Jg+Xaafp1pcXdw+DshhdsHGKAP8AN2/4PR/2yP8AhY37XHwD/Yq8N6r53h/9m34dT/Er4g2dtNiP/hanxqFlcaTpmqW4Yh7rw38MdB8M6zpUzhWitviTqKICJmJ/itr6y/bt/ah179tX9sf9pP8Aaq8RG6juvjh8XfF/jbS7C9fzLjQfCN1qUln4D8LF98m6Lwl4IsvD/hm2Jkc/ZtJiBdj8x+TaACiiigAooooAK/2Hv+DZvSf7G/4Id/sIWe3Z53hv40atjGM/29+0r8Ztc3f8D/tHfnvuzzmv8eGv9kD/AINw7+HUv+CJ37A1xAqqkfw58c2DBOhm0r40fEvTLhj/ALb3FnKz/wC2WoA/biiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAr/JJ/4Ow/+U2X7Q//AGTv9nj/ANUr4Nr/AFtq/wAkn/g7D/5TZftD/wDZO/2eP/VK+DaAP5vaKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKK6vwJ4G8W/E3xn4X+HngLQdQ8UeNPGmu6b4a8L+HtLi86/1fWtXuo7OwsrdCVRTLPKoeaZ47e3iD3FzLFBFJIt06dSrUhSpQnUq1Zwp06dOMp1KlSpOMKdOEIKUpznOcIQhGMpSlKMYpuST58Xi8LgMJisfjsTh8FgcDhsRjcbjcXXpYXCYPB4OhWxWLxeKxOIqUaGHw2Fw2GxGIxGIr1aVGhQoVq1WpTp0pzj9Y/sAfsT+O/27/wBofw38HvC32vSfCtqY/EXxU8cx2/nWvgfwDZ3MMep6gDIpgm13VHkTR/C2myZ+361dwPcCLSrTVL2z/wBHr4T/AAs8CfBD4beC/hL8MtAtPDHgPwBoNl4c8NaJZj5LWwskOZriZv3t7qV/cvPqOr6ndNJe6rqt3eal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gAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAr+z7/ggp/wTT/4VH4Psf20vjV4f8r4n/ELRXX4K+HtVtsXPgT4d6zbFJvGk8E6brXxN8QbCXZpbIqz6X4Hn/17P4t1GysPyI/4Ip/8E13/AGxfjB/wuX4r6G837N3wa1q0m1S1voD9h+KPxAtlg1HSvAMXmL5V3oOmRyWmt+O8ear6bNpfh14h/wAJK95p/wDedHGkSJFEiRxxoscccahEjRAFRERQFVFUBVVQAoAAAAr+o/AXw29vUpcdZ3h/3FGclw3ha0NK1eDlTq5zOE1rTw8lOjlzaaniFXxkbxw+Hkf4Nfta/psf2Tg8d9FLwvzi2aZlh6E/GrPctxHv5dleIhRxeC8NsPiKFS8Mbm1KWFzPjSMKkZ4bKJZTw5VUKub5vRT6KKK/rU/55AooooAKKKr3d3a2Frc319c29lY2VvNd3l5dzR21raWttG01xc3NxMyQwW8EKPLNNK6RxRozuyqpIG0k22kkm220kkk2222kkkm220kk22km04xlOUYQjKc5yjCEIRlOc5zlGMIQhGMpSnKUoxjGMZSlKUYxjKUoxlYoqlpuo6frGn2Gr6TfWeqaVqlla6jpmp6fcw3un6jp99AlzZX1jeWzyW93Z3dtLHcW1zBJJDPDIksTsjqxu0k1JKUWnFpNNNNNNJppptNNNNNNpppptNNucJ0pzp1ITp1Kc506lOpCdOpTqU5zp1KdSnUjCpTqU6lOdOpTqQhOE4ThOEJwnCBRRRTJCiiigD8if+Cvv/BOiw/bq+A0ms+CNNtIv2i/hFZalrXwv1HENtN4u00p9q1z4X6pdvsRrXxCIRc+Gp7yRIdI8Vw2j/arDS9W8QPcf59Ooaff6Tf32larZXem6npl5c6fqWnX9vNZ31hf2Uz215ZXtpcJHPa3drcRyQXNvPGk0E0bxSIrqyj/AFjK/kJ/4L+/8E2P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/DSP/BUjUvgr4f1X7d4A/Y18AaL8IbSK3m87TpviZ4mSHx78VtVhBYmPULa61fw18PtYjCoEvPh1sCsVMsoB/LfRRRQAUUUUAFFFFABRRRQAUUUUAFf6lH/BsR/wW/h/bw+Ddn+xj+0n4qib9sH4C+E7ePwt4i1m7Vb/APaF+D2gQwWFp4kW4nYPqXxM8BWv2TS/H9u5k1LxFpA03x8kmp3U3jWXRP8ALXr0j4P/ABg+J3wA+J/gf4z/AAY8b6/8OPil8N/EFl4o8E+NvDF61jrWg61YMTFcW8oDxT288TzWWpabew3OmavplzeaVqtneabeXVrMAf72FFfzsf8ABCH/AIL2fCb/AIKr/DKw+GXxPvvDPwy/bk8CaKg8e/DJbqLTdK+K+nadbZuvil8HrW8nM9/pc8cL3fi7wbBJeav4DvTKZvtnhqfStbu/6J6ACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooA+HP8Agp3/AMo1v+Chf/Zjn7WX/qhPH9f4dVf7iv8AwU7/AOUa3/BQv/sxz9rL/wBUJ4/r/DqoAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKtWNje6ne2em6bZ3WoajqF1b2NhYWNvLd3t9e3cqQWtnaWsCST3N1czyRw29vCjyzSukcaM7AFpNtJJttpJJNtttJJJJtttpJJNttJJtpOZzhThKpUlGEIRlOc5yjCEIQjKc5znOUIQhCEJznOc4QhCE5znGMZSj7x+y5+zX8Sf2t/jj4G+BHwr0/7V4l8ZaksdzqVxHK2keFPDtpifxB4v8AEM0SsbbRPD+nCW8uiM3F5MLbStOjudV1CxtLj/SQ/ZX/AGZ/ht+yJ8DPA/wH+Flh9n8O+D9PAvtWniiTV/F3iW8CzeIfGHiGWIYuNZ1+/wB9zMNxgsLUWej6ctvpWm2FrB+fv/BHj/gnDZfs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FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF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FFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFAH//Z" - webUI["html/js/base_ts.js"] = "dmFyIFNFUlZFUiA9IG5ldyBPYmplY3QoKTsNCnZhciBCVUxLX0VESVQgPSBmYWxzZTsNCnZhciBDT0xVTU5fVE9fU09SVDsNCnZhciBTRUFSQ0hfTUFQUElORyA9IG5ldyBPYmplY3QoKTsNCnZhciBVTkRPID0gbmV3IE9iamVjdCgpOw0KdmFyIFNFUlZFUl9DT05ORUNUSU9OID0gZmFsc2U7DQp2YXIgV1NfQVZBSUxBQkxFID0gZmFsc2U7DQovLyBNZW7DvA0KdmFyIG1lbnVJdGVtcyA9IG5ldyBBcnJheSgpOw0KbWVudUl0ZW1zLnB1c2gobmV3IE1haW5NZW51SXRlbSgicGxheWxpc3QiLCAie3subWFpbk1lbnUuaXRlbS5wbGF5bGlzdH19IiwgIm0zdS5wbmciLCAie3subWFpbk1lbnUuaGVhZGxpbmUucGxheWxpc3R9fSIpKTsNCi8vbWVudUl0ZW1zLnB1c2gobmV3IE1haW5NZW51SXRlbSgicG1zSUQiLCAie3subWFpbk1lbnUuaXRlbS5wbXNJRH19IiwgIm51bWJlci5wbmciLCAie3subWFpbk1lbnUuaGVhZGxpbmUucG1zSUR9fSIpKQ0KbWVudUl0ZW1zLnB1c2gobmV3IE1haW5NZW51SXRlbSgiZmlsdGVyIiwgInt7Lm1haW5NZW51Lml0ZW0uZmlsdGVyfX0iLCAiZmlsdGVyLnBuZyIsICJ7ey5tYWluTWVudS5oZWFkbGluZS5maWx0ZXJ9fSIpKTsNCm1lbnVJdGVtcy5wdXNoKG5ldyBNYWluTWVudUl0ZW0oInhtbHR2IiwgInt7Lm1haW5NZW51Lml0ZW0ueG1sdHZ9fSIsICJ4bWx0di5wbmciLCAie3subWFpbk1lbnUuaGVhZGxpbmUueG1sdHZ9fSIpKTsNCm1lbnVJdGVtcy5wdXNoKG5ldyBNYWluTWVudUl0ZW0oIm1hcHBpbmciLCAie3subWFpbk1lbnUuaXRlbS5tYXBwaW5nfX0iLCAibWFwcGluZy5wbmciLCAie3subWFpbk1lbnUuaGVhZGxpbmUubWFwcGluZ319IikpOw0KbWVudUl0ZW1zLnB1c2gobmV3IE1haW5NZW51SXRlbSgidXNlcnMiLCAie3subWFpbk1lbnUuaXRlbS51c2Vyc319IiwgInVzZXJzLnBuZyIsICJ7ey5tYWluTWVudS5oZWFkbGluZS51c2Vyc319IikpOw0KbWVudUl0ZW1zLnB1c2gobmV3IE1haW5NZW51SXRlbSgic2V0dGluZ3MiLCAie3subWFpbk1lbnUuaXRlbS5zZXR0aW5nc319IiwgInNldHRpbmdzLnBuZyIsICJ7ey5tYWluTWVudS5oZWFkbGluZS5zZXR0aW5nc319IikpOw0KbWVudUl0ZW1zLnB1c2gobmV3IE1haW5NZW51SXRlbSgibG9nIiwgInt7Lm1haW5NZW51Lml0ZW0ubG9nfX0iLCAibG9nLnBuZyIsICJ7ey5tYWluTWVudS5oZWFkbGluZS5sb2d9fSIpKTsNCm1lbnVJdGVtcy5wdXNoKG5ldyBNYWluTWVudUl0ZW0oImxvZ291dCIsICJ7ey5tYWluTWVudS5pdGVtLmxvZ291dH19IiwgImxvZ291dC5wbmciLCAie3subWFpbk1lbnUuaGVhZGxpbmUubG9nb3V0fX0iKSk7DQovLyBLYXRlZ29yaWVuIGbDvHIgZGllIEVpbnN0ZWxsdW5nZW4NCnZhciBzZXR0aW5nc0NhdGVnb3J5ID0gbmV3IEFycmF5KCk7DQpzZXR0aW5nc0NhdGVnb3J5LnB1c2gobmV3IFNldHRpbmdzQ2F0ZWdvcnlJdGVtKCJ7ey5zZXR0aW5ncy5jYXRlZ29yeS5nZW5lcmFsfX0iLCAieHRldmVBdXRvVXBkYXRlLHR1bmVyLGVwZ1NvdXJjZSxhcGkiKSk7DQpzZXR0aW5nc0NhdGVnb3J5LnB1c2gobmV3IFNldHRpbmdzQ2F0ZWdvcnlJdGVtKCJ7ey5zZXR0aW5ncy5jYXRlZ29yeS5maWxlc319IiwgInVwZGF0ZSxmaWxlcy51cGRhdGUsdGVtcC5wYXRoLGNhY2hlLmltYWdlcyx4ZXBnLnJlcGxhY2UubWlzc2luZy5pbWFnZXMiKSk7DQpzZXR0aW5nc0NhdGVnb3J5LnB1c2gobmV3IFNldHRpbmdzQ2F0ZWdvcnlJdGVtKCJ7ey5zZXR0aW5ncy5jYXRlZ29yeS5zdHJlYW1pbmd9fSIsICJidWZmZXIsdWRweHksYnVmZmVyLnNpemUua2IsYnVmZmVyLnRpbWVvdXQsdXNlci5hZ2VudCxmZm1wZWcucGF0aCxmZm1wZWcub3B0aW9ucyx2bGMucGF0aCx2bGMub3B0aW9ucyIpKTsNCnNldHRpbmdzQ2F0ZWdvcnkucHVzaChuZXcgU2V0dGluZ3NDYXRlZ29yeUl0ZW0oInt7LnNldHRpbmdzLmNhdGVnb3J5LmJhY2t1cH19IiwgImJhY2t1cC5wYXRoLGJhY2t1cC5rZWVwIikpOw0Kc2V0dGluZ3NDYXRlZ29yeS5wdXNoKG5ldyBTZXR0aW5nc0NhdGVnb3J5SXRlbSgie3suc2V0dGluZ3MuY2F0ZWdvcnkuYXV0aGVudGljYXRpb259fSIsICJhdXRoZW50aWNhdGlvbi53ZWIsYXV0aGVudGljYXRpb24ucG1zLGF1dGhlbnRpY2F0aW9uLm0zdSxhdXRoZW50aWNhdGlvbi54bWwsYXV0aGVudGljYXRpb24uYXBpIikpOw0KZnVuY3Rpb24gc2hvd1BvcFVwRWxlbWVudChlbG0pIHsNCiAgICB2YXIgYWxsRWxlbWVudHMgPSBuZXcgQXJyYXkoInBvcHVwLWN1c3RvbSIpOw0KICAgIGZvciAodmFyIGkgPSAwOyBpIDwgYWxsRWxlbWVudHMubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgc2hvd0VsZW1lbnQoYWxsRWxlbWVudHNbaV0sIGZhbHNlKTsNCiAgICB9DQogICAgc2hvd0VsZW1lbnQoZWxtLCB0cnVlKTsNCiAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsNCiAgICAgICAgc2hvd0VsZW1lbnQoInBvcHVwIiwgdHJ1ZSk7DQogICAgfSwgMTApOw0KICAgIHJldHVybjsNCn0NCmZ1bmN0aW9uIHNob3dFbGVtZW50KGVsbUlELCB0eXBlKSB7DQogICAgdmFyIGNzc0NsYXNzOw0KICAgIHN3aXRjaCAodHlwZSkgew0KICAgICAgICBjYXNlIHRydWU6DQogICAgICAgICAgICBjc3NDbGFzcyA9ICJibG9jayI7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSBmYWxzZToNCiAgICAgICAgICAgIGNzc0NsYXNzID0gIm5vbmUiOw0KICAgICAgICAgICAgYnJlYWs7DQogICAgfQ0KICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGVsbUlEKS5jbGFzc05hbWUgPSBjc3NDbGFzczsNCn0NCmZ1bmN0aW9uIGNoYW5nZUJ1dHRvbkFjdGlvbihlbGVtZW50LCBidXR0b25JRCwgYXR0cmlidXRlKSB7DQogICAgdmFyIHZhbHVlID0gZWxlbWVudC5vcHRpb25zW2VsZW1lbnQuc2VsZWN0ZWRJbmRleF0udmFsdWU7DQogICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoYnV0dG9uSUQpLnNldEF0dHJpYnV0ZShhdHRyaWJ1dGUsIHZhbHVlKTsNCn0NCmZ1bmN0aW9uIGdldExvY2FsRGF0YShkYXRhVHlwZSwgaWQpIHsNCiAgICBsZXQgZGF0YSA9IHt9Ow0KICAgIHN3aXRjaCAoZGF0YVR5cGUpIHsNCiAgICAgICAgY2FzZSAibTN1IjoNCiAgICAgICAgICAgIGRhdGEgPSBTRVJWRVJbInNldHRpbmdzIl1bImZpbGVzIl1bZGF0YVR5cGVdW2lkXTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJoZGhyIjoNCiAgICAgICAgICAgIGRhdGEgPSBTRVJWRVJbInNldHRpbmdzIl1bImZpbGVzIl1bZGF0YVR5cGVdW2lkXTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJmaWx0ZXIiOg0KICAgICAgICBjYXNlICJjdXN0b20tZmlsdGVyIjoNCiAgICAgICAgY2FzZSAiZ3JvdXAtdGl0bGUiOg0KICAgICAgICAgICAgaWYgKGlkID09IC0xKSB7DQogICAgICAgICAgICAgICAgZGF0YVsiYWN0aXZlIl0gPSB0cnVlOw0KICAgICAgICAgICAgICAgIGRhdGFbImNhc2VTZW5zaXRpdmUiXSA9IGZhbHNlOw0KICAgICAgICAgICAgICAgIGRhdGFbImRlc2NyaXB0aW9uIl0gPSAiIjsNCiAgICAgICAgICAgICAgICBkYXRhWyJleGNsdWRlIl0gPSAiIjsNCiAgICAgICAgICAgICAgICBkYXRhWyJmaWx0ZXIiXSA9ICIiOw0KICAgICAgICAgICAgICAgIGRhdGFbImluY2x1ZGUiXSA9ICIiOw0KICAgICAgICAgICAgICAgIGRhdGFbIm5hbWUiXSA9ICIiOw0KICAgICAgICAgICAgICAgIGRhdGFbInR5cGUiXSA9ICJncm91cC10aXRsZSI7DQogICAgICAgICAgICAgICAgZGF0YVsicHJlc2VydmVNYXBwaW5nIl0gPSB0cnVlOw0KICAgICAgICAgICAgICAgIGRhdGFbInN0YXJ0aW5nQ2hhbm5lbCJdID0gU0VSVkVSWyJzZXR0aW5ncyJdWyJtYXBwaW5nLmZpcnN0LmNoYW5uZWwiXTsNCiAgICAgICAgICAgICAgICBkYXRhWyJkZWZhdWx0TWlzc2luZ0VQRyJdID0gIi0iOw0KICAgICAgICAgICAgICAgIFNFUlZFUlsic2V0dGluZ3MiXVsiZmlsdGVyIl1baWRdID0gZGF0YTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGRhdGEgPSBTRVJWRVJbInNldHRpbmdzIl1bImZpbHRlciJdW2lkXTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJ4bWx0diI6DQogICAgICAgICAgICBkYXRhID0gU0VSVkVSWyJzZXR0aW5ncyJdWyJmaWxlcyJdW2RhdGFUeXBlXVtpZF07DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSAidXNlcnMiOg0KICAgICAgICAgICAgZGF0YSA9IFNFUlZFUlsidXNlcnMiXVtpZF1bImRhdGEiXTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJtYXBwaW5nIjoNCiAgICAgICAgICAgIGRhdGEgPSBTRVJWRVJbInhlcGciXVsiZXBnTWFwcGluZyJdW2lkXTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJtM3VHcm91cHMiOg0KICAgICAgICAgICAgZGF0YSA9IFNFUlZFUlsiZGF0YSJdWyJwbGF5bGlzdCJdWyJtM3UiXVsiZ3JvdXBzIl07DQogICAgICAgICAgICBicmVhazsNCiAgICB9DQogICAgcmV0dXJuIGRhdGE7DQp9DQpmdW5jdGlvbiBnZXRPYmpLZXlzKG9iaikgew0KICAgIHZhciBrZXlzID0gbmV3IEFycmF5KCk7DQogICAgZm9yICh2YXIgaSBpbiBvYmopIHsNCiAgICAgICAgaWYgKG9iai5oYXNPd25Qcm9wZXJ0eShpKSkgew0KICAgICAgICAgICAga2V5cy5wdXNoKGkpOw0KICAgICAgICB9DQogICAgfQ0KICAgIHJldHVybiBrZXlzOw0KfQ0KZnVuY3Rpb24gZ2V0QWxsU2VsZWN0ZWRDaGFubmVscygpIHsNCiAgICB2YXIgY2hhbm5lbHMgPSBuZXcgQXJyYXkoKTsNCiAgICBpZiAoQlVMS19FRElUID09IGZhbHNlKSB7DQogICAgICAgIHJldHVybiBjaGFubmVsczsNCiAgICB9DQogICAgdmFyIHRycyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb250ZW50X3RhYmxlIikuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlRSIik7DQogICAgZm9yICh2YXIgaSA9IDE7IGkgPCB0cnMubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgaWYgKHRyc1tpXS5zdHlsZS5kaXNwbGF5ICE9ICJub25lIikgew0KICAgICAgICAgICAgaWYgKHRyc1tpXS5maXJzdENoaWxkLmZpcnN0Q2hpbGQuY2hlY2tlZCA9PSB0cnVlKSB7DQogICAgICAgICAgICAgICAgY2hhbm5lbHMucHVzaCh0cnNbaV0uaWQpOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQogICAgfQ0KICAgIHJldHVybiBjaGFubmVsczsNCn0NCmZ1bmN0aW9uIHNlbGVjdEFsbENoYW5uZWxzKCkgew0KICAgIHZhciBidWxrID0gZmFsc2U7DQogICAgdmFyIHRycyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb250ZW50X3RhYmxlIikuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlRSIik7DQogICAgaWYgKHRyc1swXS5maXJzdENoaWxkLmZpcnN0Q2hpbGQuY2hlY2tlZCA9PSB0cnVlKSB7DQogICAgICAgIGJ1bGsgPSB0cnVlOw0KICAgIH0NCiAgICBmb3IgKHZhciBpID0gMTsgaSA8IHRycy5sZW5ndGg7IGkrKykgew0KICAgICAgICBpZiAodHJzW2ldLnN0eWxlLmRpc3BsYXkgIT0gIm5vbmUiKSB7DQogICAgICAgICAgICBzd2l0Y2ggKGJ1bGspIHsNCiAgICAgICAgICAgICAgICBjYXNlIHRydWU6DQogICAgICAgICAgICAgICAgICAgIHRyc1tpXS5maXJzdENoaWxkLmZpcnN0Q2hpbGQuY2hlY2tlZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgZmFsc2U6DQogICAgICAgICAgICAgICAgICAgIHRyc1tpXS5maXJzdENoaWxkLmZpcnN0Q2hpbGQuY2hlY2tlZCA9IGZhbHNlOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KICAgIH0NCiAgICByZXR1cm47DQp9DQpmdW5jdGlvbiBidWxrRWRpdCgpIHsNCiAgICBCVUxLX0VESVQgPSAhQlVMS19FRElUOw0KICAgIHZhciBjbGFzc05hbWU7DQogICAgdmFyIHJvd3MgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCJidWxrIik7DQogICAgc3dpdGNoIChCVUxLX0VESVQpIHsNCiAgICAgICAgY2FzZSB0cnVlOg0KICAgICAgICAgICAgY2xhc3NOYW1lID0gImJ1bGsgc2hvd0J1bGsiOw0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGNhc2UgZmFsc2U6DQogICAgICAgICAgICBjbGFzc05hbWUgPSAiYnVsayBoaWRlQnVsayI7DQogICAgICAgICAgICBicmVhazsNCiAgICB9DQogICAgZm9yICh2YXIgaSA9IDA7IGkgPCByb3dzLmxlbmd0aDsgaSsrKSB7DQogICAgICAgIHJvd3NbaV0uY2xhc3NOYW1lID0gY2xhc3NOYW1lOw0KICAgICAgICByb3dzW2ldLmNoZWNrZWQgPSBmYWxzZTsNCiAgICB9DQogICAgcmV0dXJuOw0KfQ0KZnVuY3Rpb24gc29ydFRhYmxlKGNvbHVtbikgew0KICAgIC8vY29uc29sZS5sb2coY29sdW1tKTsNCiAgICBpZiAoY29sdW1uID09IENPTFVNTl9UT19TT1JUKSB7DQogICAgICAgIHJldHVybjsNCiAgICB9DQogICAgdmFyIHRhYmxlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnRlbnRfdGFibGUiKTsNCiAgICB2YXIgdGFibGVIZWFkID0gdGFibGUuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlRSIilbMF07DQogICAgdmFyIHRhYmxlSXRlbXMgPSB0YWJsZUhlYWQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlREIik7DQogICAgdmFyIHNvcnRPYmogPSBuZXcgT2JqZWN0KCk7DQogICAgdmFyIHgsIHhWYWx1ZTsNCiAgICB2YXIgdGFibGVIZWFkZXI7DQogICAgdmFyIHNvcnRCeVN0cmluZyA9IGZhbHNlOw0KICAgIGlmIChjb2x1bW4gPiAwICYmIENPTFVNTl9UT19TT1JUID4gMCkgew0KICAgICAgICB0YWJsZUl0ZW1zW0NPTFVNTl9UT19TT1JUXS5jbGFzc05hbWUgPSAicG9pbnRlciI7DQogICAgICAgIHRhYmxlSXRlbXNbY29sdW1uXS5jbGFzc05hbWUgPSAic29ydFRoaXMiOw0KICAgIH0NCiAgICBDT0xVTU5fVE9fU09SVCA9IGNvbHVtbjsNCiAgICB2YXIgcm93cyA9IHRhYmxlLnJvd3M7DQogICAgaWYgKHJvd3NbMV0gIT0gdW5kZWZpbmVkKSB7DQogICAgICAgIHRhYmxlSGVhZGVyID0gcm93c1swXTsNCiAgICAgICAgeCA9IHJvd3NbMV0uZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlREIilbY29sdW1uXTsNCiAgICAgICAgZm9yIChpID0gMTsgaSA8IHJvd3MubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgICAgIHggPSByb3dzW2ldLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJURCIpW2NvbHVtbl07DQogICAgICAgICAgICBzd2l0Y2ggKHguY2hpbGROb2Rlc1swXS50YWdOYW1lLnRvTG93ZXJDYXNlKCkpIHsNCiAgICAgICAgICAgICAgICBjYXNlICJpbnB1dCI6DQogICAgICAgICAgICAgICAgICAgIHhWYWx1ZSA9IHguZ2V0RWxlbWVudHNCeVRhZ05hbWUoIklOUFVUIilbMF0udmFsdWUudG9Mb3dlckNhc2UoKTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAicCI6DQogICAgICAgICAgICAgICAgICAgIHhWYWx1ZSA9IHguZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlAiKVswXS5pbm5lclRleHQudG9Mb3dlckNhc2UoKTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgZGVmYXVsdDogY29uc29sZS5sb2coeC5jaGlsZE5vZGVzWzBdLnRhZ05hbWUpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgaWYgKHhWYWx1ZSA9PSAiIiB8fCB4VmFsdWUgPT0gTmFOKSB7DQogICAgICAgICAgICAgICAgeFZhbHVlID0gaTsNCiAgICAgICAgICAgICAgICBzb3J0T2JqW2ldID0gcm93c1tpXTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgICAgIHN3aXRjaCAoaXNOYU4oeFZhbHVlKSB8fCB0eXBlb2YgeFZhbHVlID09ICJzdHJpbmciKSB7DQogICAgICAgICAgICAgICAgICAgIGNhc2UgZmFsc2U6DQogICAgICAgICAgICAgICAgICAgICAgICB4VmFsdWUgPSBwYXJzZUZsb2F0KHhWYWx1ZSk7DQogICAgICAgICAgICAgICAgICAgICAgICBzb3J0T2JqW3hWYWx1ZV0gPSByb3dzW2ldOw0KICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgICAgIGNhc2UgdHJ1ZToNCiAgICAgICAgICAgICAgICAgICAgICAgIHNvcnRCeVN0cmluZyA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBzb3J0T2JqW3hWYWx1ZS50b0xvd2VyQ2FzZSgpICsgaV0gPSByb3dzW2ldOw0KICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQogICAgICAgIHdoaWxlICh0YWJsZS5maXJzdENoaWxkKSB7DQogICAgICAgICAgICB0YWJsZS5yZW1vdmVDaGlsZCh0YWJsZS5maXJzdENoaWxkKTsNCiAgICAgICAgfQ0KICAgICAgICB2YXIgc29ydFZhbHVlcyA9IGdldE9iaktleXMoc29ydE9iaik7DQogICAgICAgIGlmIChzb3J0QnlTdHJpbmcgPT0gdHJ1ZSkgew0KICAgICAgICAgICAgc29ydFZhbHVlcy5zb3J0KCk7DQogICAgICAgICAgICBjb25zb2xlLmxvZyhzb3J0VmFsdWVzKTsNCiAgICAgICAgfQ0KICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgIGZ1bmN0aW9uIHNvcnRGbG9hdChhLCBiKSB7DQogICAgICAgICAgICAgICAgcmV0dXJuIGEgLSBiOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgc29ydFZhbHVlcy5zb3J0KHNvcnRGbG9hdCk7DQogICAgICAgIH0NCiAgICAgICAgdGFibGUuYXBwZW5kQ2hpbGQodGFibGVIZWFkZXIpOw0KICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHNvcnRWYWx1ZXMubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgICAgIHRhYmxlLmFwcGVuZENoaWxkKHNvcnRPYmpbc29ydFZhbHVlc1tpXV0pOw0KICAgICAgICB9DQogICAgfQ0KICAgIHJldHVybjsNCn0NCmZ1bmN0aW9uIGNyZWF0ZVNlYXJjaE9iaigpIHsNCiAgICBTRUFSQ0hfTUFQUElORyA9IG5ldyBPYmplY3QoKTsNCiAgICB2YXIgZGF0YSA9IFNFUlZFUlsieGVwZyJdWyJlcGdNYXBwaW5nIl07DQogICAgdmFyIGNoYW5uZWxzID0gZ2V0T2JqS2V5cyhkYXRhKTsNCiAgICB2YXIgY2hhbm5lbEtleXMgPSBbIngtYWN0aXZlIiwgIngtY2hhbm5lbElEIiwgIngtbmFtZSIsICJfZmlsZS5tM3UubmFtZSIsICJ4LWdyb3VwLXRpdGxlIiwgIngteG1sdHYtZmlsZSJdOw0KICAgIGNoYW5uZWxzLmZvckVhY2goaWQgPT4gew0KICAgICAgICBjaGFubmVsS2V5cy5mb3JFYWNoKGtleSA9PiB7DQogICAgICAgICAgICBpZiAoa2V5ID09ICJ4LWFjdGl2ZSIpIHsNCiAgICAgICAgICAgICAgICBzd2l0Y2ggKGRhdGFbaWRdW2tleV0pIHsNCiAgICAgICAgICAgICAgICAgICAgY2FzZSB0cnVlOg0KICAgICAgICAgICAgICAgICAgICAgICAgU0VBUkNIX01BUFBJTkdbaWRdID0gIm9ubGluZSAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgICAgIGNhc2UgZmFsc2U6DQogICAgICAgICAgICAgICAgICAgICAgICBTRUFSQ0hfTUFQUElOR1tpZF0gPSAib2ZmbGluZSAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgZWxzZSB7DQogICAgICAgICAgICAgICAgaWYgKGtleSA9PSAieC14bWx0di1maWxlIikgew0KICAgICAgICAgICAgICAgICAgICB2YXIgeG1sdHZGaWxlID0gZ2V0VmFsdWVGcm9tUHJvdmlkZXJGaWxlKGRhdGFbaWRdW2tleV0sICJ4bWx0diIsICJuYW1lIik7DQogICAgICAgICAgICAgICAgICAgIGlmICh4bWx0dkZpbGUgIT0gdW5kZWZpbmVkKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBTRUFSQ0hfTUFQUElOR1tpZF0gPSBTRUFSQ0hfTUFQUElOR1tpZF0gKyB4bWx0dkZpbGUgKyAiICI7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgZWxzZSB7DQogICAgICAgICAgICAgICAgICAgIFNFQVJDSF9NQVBQSU5HW2lkXSA9IFNFQVJDSF9NQVBQSU5HW2lkXSArIGRhdGFbaWRdW2tleV0gKyAiICI7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfQ0KICAgICAgICB9KTsNCiAgICB9KTsNCiAgICByZXR1cm47DQp9DQpmdW5jdGlvbiBzZWFyY2hJbk1hcHBpbmcoKSB7DQogICAgdmFyIHNlYXJjaFZhbHVlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNlYXJjaE1hcHBpbmciKS52YWx1ZTsNCiAgICB2YXIgdHJzID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnRlbnRfdGFibGUiKS5nZXRFbGVtZW50c0J5VGFnTmFtZSgiVFIiKTsNCiAgICBmb3IgKHZhciBpID0gMTsgaSA8IHRycy5sZW5ndGg7ICsraSkgew0KICAgICAgICB2YXIgaWQgPSB0cnNbaV0uZ2V0QXR0cmlidXRlKCJpZCIpOw0KICAgICAgICB2YXIgZWxlbWVudCA9IFNFQVJDSF9NQVBQSU5HW2lkXTsNCiAgICAgICAgc3dpdGNoIChlbGVtZW50LnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoc2VhcmNoVmFsdWUudG9Mb3dlckNhc2UoKSkpIHsNCiAgICAgICAgICAgIGNhc2UgdHJ1ZToNCiAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkuc3R5bGUuZGlzcGxheSA9ICIiOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSBmYWxzZToNCiAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkuc3R5bGUuZGlzcGxheSA9ICJub25lIjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgfQ0KICAgIH0NCiAgICByZXR1cm47DQp9DQpmdW5jdGlvbiBjYWxjdWxhdGVXcmFwcGVySGVpZ2h0KCkgew0KICAgIGlmIChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYm94LXdyYXBwZXIiKSkgew0KICAgICAgICB2YXIgZWxtID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImJveC13cmFwcGVyIik7DQogICAgICAgIHZhciBkaXZzID0gbmV3IEFycmF5KCJteVN0cmVhbXNCb3giLCAiY2xpZW50SW5mbyIsICJjb250ZW50Iik7DQogICAgICAgIHZhciBlbGVtZW50c0hlaWdodCA9IDAgLSBlbG0ub2Zmc2V0SGVpZ2h0Ow0KICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGRpdnMubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgICAgIGVsZW1lbnRzSGVpZ2h0ID0gZWxlbWVudHNIZWlnaHQgKyBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChkaXZzW2ldKS5vZmZzZXRIZWlnaHQ7DQogICAgICAgIH0NCiAgICAgICAgZWxtLnN0eWxlLmhlaWdodCA9IHdpbmRvdy5pbm5lckhlaWdodCAtIGVsZW1lbnRzSGVpZ2h0ICsgInB4IjsNCiAgICB9DQogICAgcmV0dXJuOw0KfQ0KZnVuY3Rpb24gY2hhbmdlQ2hhbm5lbE51bWJlcihlbGVtZW50KSB7DQogICAgdmFyIGRiSUQgPSBlbGVtZW50LnBhcmVudE5vZGUucGFyZW50Tm9kZS5pZDsNCiAgICB2YXIgbmV3TnVtYmVyID0gcGFyc2VGbG9hdChlbGVtZW50LnZhbHVlKTsNCiAgICB2YXIgY2hhbm5lbE51bWJlcnMgPSBbXTsNCiAgICB2YXIgZGF0YSA9IFNFUlZFUlsieGVwZyJdWyJlcGdNYXBwaW5nIl07DQogICAgdmFyIGNoYW5uZWxzID0gZ2V0T2JqS2V5cyhkYXRhKTsNCiAgICBpZiAoaXNOYU4obmV3TnVtYmVyKSkgew0KICAgICAgICBhbGVydCgie3suYWxlcnQuaW52YWxpZENoYW5uZWxOdW1iZXJ9fSIpOw0KICAgICAgICByZXR1cm47DQogICAgfQ0KICAgIGNoYW5uZWxzLmZvckVhY2goaWQgPT4gew0KICAgICAgICB2YXIgY2hhbm5lbE51bWJlciA9IHBhcnNlRmxvYXQoZGF0YVtpZF1bIngtY2hhbm5lbElEIl0pOw0KICAgICAgICBjaGFubmVsTnVtYmVycy5wdXNoKGNoYW5uZWxOdW1iZXIpOw0KICAgIH0pOw0KICAgIGZvciAodmFyIGkgPSAwOyBpIDwgY2hhbm5lbE51bWJlcnMubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgaWYgKGNoYW5uZWxOdW1iZXJzLmluZGV4T2YobmV3TnVtYmVyKSA9PSAtMSkgew0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIH0NCiAgICAgICAgaWYgKE1hdGguZmxvb3IobmV3TnVtYmVyKSA9PSBuZXdOdW1iZXIpIHsNCiAgICAgICAgICAgIG5ld051bWJlciA9IG5ld051bWJlciArIDE7DQogICAgICAgIH0NCiAgICAgICAgZWxzZSB7DQogICAgICAgICAgICBuZXdOdW1iZXIgPSBuZXdOdW1iZXIgKyAwLjE7DQogICAgICAgICAgICBuZXdOdW1iZXIudG9GaXhlZCgxKTsNCiAgICAgICAgICAgIG5ld051bWJlciA9IE1hdGgucm91bmQobmV3TnVtYmVyICogMTApIC8gMTA7DQogICAgICAgIH0NCiAgICB9DQogICAgZGF0YVtkYklEXVsieC1jaGFubmVsSUQiXSA9IG5ld051bWJlci50b1N0cmluZygpOw0KICAgIGVsZW1lbnQudmFsdWUgPSBuZXdOdW1iZXI7DQogICAgY29uc29sZS5sb2coZGF0YVtkYklEXVsieC1jaGFubmVsSUQiXSk7DQogICAgaWYgKENPTFVNTl9UT19TT1JUID09IDEpIHsNCiAgICAgICAgQ09MVU1OX1RPX1NPUlQgPSAtMTsNCiAgICAgICAgc29ydFRhYmxlKDEpOw0KICAgIH0NCiAgICByZXR1cm47DQp9DQpmdW5jdGlvbiBiYWNrdXAoKSB7DQogICAgdmFyIGRhdGEgPSBuZXcgT2JqZWN0KCk7DQogICAgY29uc29sZS5sb2coIkJhY2t1cCBkYXRhIik7DQogICAgdmFyIGNtZCA9ICJ4dGV2ZUJhY2t1cCI7DQogICAgY29uc29sZS5sb2coIlNFTkQgVE8gU0VSVkVSIik7DQogICAgY29uc29sZS5sb2coZGF0YSk7DQogICAgdmFyIHNlcnZlciA9IG5ldyBTZXJ2ZXIoY21kKTsNCiAgICBzZXJ2ZXIucmVxdWVzdChkYXRhKTsNCiAgICByZXR1cm47DQp9DQpmdW5jdGlvbiB0b2dnbGVDaGFubmVsU3RhdHVzKGlkKSB7DQogICAgdmFyIGVsZW1lbnQ7DQogICAgdmFyIHN0YXR1czsNCiAgICBpZiAoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImFjdGl2ZSIpKSB7DQogICAgICAgIHZhciBjaGVja2JveCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJhY3RpdmUiKTsNCiAgICAgICAgc3RhdHVzID0gKGNoZWNrYm94KS5jaGVja2VkOw0KICAgIH0NCiAgICB2YXIgaWRzID0gZ2V0QWxsU2VsZWN0ZWRDaGFubmVscygpOw0KICAgIGlmIChpZHMubGVuZ3RoID09IDApIHsNCiAgICAgICAgaWRzLnB1c2goaWQpOw0KICAgIH0NCiAgICBpZHMuZm9yRWFjaChpZCA9PiB7DQogICAgICAgIHZhciBjaGFubmVsID0gU0VSVkVSWyJ4ZXBnIl1bImVwZ01hcHBpbmciXVtpZF07DQogICAgICAgIGNoYW5uZWxbIngtYWN0aXZlIl0gPSBzdGF0dXM7DQogICAgICAgIHN3aXRjaCAoY2hhbm5lbFsieC1hY3RpdmUiXSkgew0KICAgICAgICAgICAgY2FzZSB0cnVlOg0KICAgICAgICAgICAgICAgIGlmIChjaGFubmVsWyJ4LXhtbHR2LWZpbGUiXSA9PSAiLSIgfHwgY2hhbm5lbFsieC1tYXBwaW5nIl0gPT0gIi0iKSB7DQogICAgICAgICAgICAgICAgICAgIGlmIChCVUxLX0VESVQgPT0gZmFsc2UpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGFsZXJ0KGNoYW5uZWxbIngtbmFtZSJdICsgIjogTWlzc2luZyBYTUxUViBmaWxlIC8gY2hhbm5lbCIpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2hlY2tib3guY2hlY2tlZCA9IGZhbHNlOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIGNoYW5uZWxbIngtYWN0aXZlIl0gPSBmYWxzZTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlIGZhbHNlOg0KICAgICAgICAgICAgICAgIC8vIGNvZGUuLi4NCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgfQ0KICAgICAgICBpZiAoY2hhbm5lbFsieC1hY3RpdmUiXSA9PSBmYWxzZSkgew0KICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpLmNsYXNzTmFtZSA9ICJub3RBY3RpdmVFUEciOw0KICAgICAgICB9DQogICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpLmNsYXNzTmFtZSA9ICJhY3RpdmVFUEciOw0KICAgICAgICB9DQogICAgfSk7DQp9DQpmdW5jdGlvbiByZXN0b3JlKCkgew0KICAgIGlmIChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndXBsb2FkJykpIHsNCiAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3VwbG9hZCcpLnJlbW92ZSgpOw0KICAgIH0NCiAgICB2YXIgcmVzdG9yZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIklOUFVUIik7DQogICAgcmVzdG9yZS5zZXRBdHRyaWJ1dGUoInR5cGUiLCAiZmlsZSIpOw0KICAgIHJlc3RvcmUuc2V0QXR0cmlidXRlKCJjbGFzcyIsICJub3RWaXNpYmxlIik7DQogICAgcmVzdG9yZS5zZXRBdHRyaWJ1dGUoIm5hbWUiLCAiIik7DQogICAgcmVzdG9yZS5pZCA9ICJ1cGxvYWQiOw0KICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQocmVzdG9yZSk7DQogICAgcmVzdG9yZS5jbGljaygpOw0KICAgIHJlc3RvcmUub25jaGFuZ2UgPSBmdW5jdGlvbiAoKSB7DQogICAgICAgIHZhciBmaWxlbmFtZSA9IHJlc3RvcmUuZmlsZXNbMF0ubmFtZTsNCiAgICAgICAgdmFyIGNoZWNrID0gY29uZmlybSgiRmlsZTogIiArIGZpbGVuYW1lICsgIlxue3suY29uZmlybS5yZXN0b3JlfX0iKTsNCiAgICAgICAgaWYgKGNoZWNrID09IHRydWUpIHsNCiAgICAgICAgICAgIHZhciByZWFkZXIgPSBuZXcgRmlsZVJlYWRlcigpOw0KICAgICAgICAgICAgdmFyIGZpbGUgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCdpbnB1dFt0eXBlPWZpbGVdJykuZmlsZXNbMF07DQogICAgICAgICAgICBpZiAoZmlsZSkgew0KICAgICAgICAgICAgICAgIHJlYWRlci5yZWFkQXNEYXRhVVJMKGZpbGUpOw0KICAgICAgICAgICAgICAgIHJlYWRlci5vbmxvYWQgPSBmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKHJlYWRlci5yZXN1bHQpOw0KICAgICAgICAgICAgICAgICAgICB2YXIgZGF0YSA9IG5ldyBPYmplY3QoKTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGNtZCA9ICJ4dGV2ZVJlc3RvcmUiOw0KICAgICAgICAgICAgICAgICAgICBkYXRhWyJiYXNlNjQiXSA9IHJlYWRlci5yZXN1bHQ7DQogICAgICAgICAgICAgICAgICAgIHZhciBzZXJ2ZXIgPSBuZXcgU2VydmVyKGNtZCk7DQogICAgICAgICAgICAgICAgICAgIHNlcnZlci5yZXF1ZXN0KGRhdGEpOw0KICAgICAgICAgICAgICAgIH07DQogICAgICAgICAgICB9DQogICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICBhbGVydCgiRmlsZSBjb3VsZCBub3QgYmUgbG9hZGVkIik7DQogICAgICAgICAgICB9DQogICAgICAgICAgICByZXN0b3JlLnJlbW92ZSgpOw0KICAgICAgICAgICAgcmV0dXJuOw0KICAgICAgICB9DQogICAgfTsNCiAgICByZXR1cm47DQp9DQpmdW5jdGlvbiB1cGxvYWRMb2dvKCkgew0KICAgIGlmIChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndXBsb2FkJykpIHsNCiAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3VwbG9hZCcpLnJlbW92ZSgpOw0KICAgIH0NCiAgICB2YXIgdXBsb2FkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiSU5QVVQiKTsNCiAgICB1cGxvYWQuc2V0QXR0cmlidXRlKCJ0eXBlIiwgImZpbGUiKTsNCiAgICB1cGxvYWQuc2V0QXR0cmlidXRlKCJjbGFzcyIsICJub3RWaXNpYmxlIik7DQogICAgdXBsb2FkLnNldEF0dHJpYnV0ZSgibmFtZSIsICIiKTsNCiAgICB1cGxvYWQuaWQgPSAidXBsb2FkIjsNCiAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHVwbG9hZCk7DQogICAgdXBsb2FkLmNsaWNrKCk7DQogICAgdXBsb2FkLm9uYmx1ciA9IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgYWxlcnQoKTsNCiAgICB9Ow0KICAgIHVwbG9hZC5vbmNoYW5nZSA9IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgdmFyIGZpbGVuYW1lID0gdXBsb2FkLmZpbGVzWzBdLm5hbWU7DQogICAgICAgIHZhciByZWFkZXIgPSBuZXcgRmlsZVJlYWRlcigpOw0KICAgICAgICB2YXIgZmlsZSA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ2lucHV0W3R5cGU9ZmlsZV0nKS5maWxlc1swXTsNCiAgICAgICAgaWYgKGZpbGUpIHsNCiAgICAgICAgICAgIHJlYWRlci5yZWFkQXNEYXRhVVJMKGZpbGUpOw0KICAgICAgICAgICAgcmVhZGVyLm9ubG9hZCA9IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhyZWFkZXIucmVzdWx0KTsNCiAgICAgICAgICAgICAgICB2YXIgZGF0YSA9IG5ldyBPYmplY3QoKTsNCiAgICAgICAgICAgICAgICB2YXIgY21kID0gInVwbG9hZExvZ28iOw0KICAgICAgICAgICAgICAgIGRhdGFbImJhc2U2NCJdID0gcmVhZGVyLnJlc3VsdDsNCiAgICAgICAgICAgICAgICBkYXRhWyJmaWxlbmFtZSJdID0gZmlsZS5uYW1lOw0KICAgICAgICAgICAgICAgIHZhciBzZXJ2ZXIgPSBuZXcgU2VydmVyKGNtZCk7DQogICAgICAgICAgICAgICAgc2VydmVyLnJlcXVlc3QoZGF0YSk7DQogICAgICAgICAgICAgICAgdmFyIHVwZGF0ZUxvZ28gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndXBkYXRlLWljb24nKTsNCiAgICAgICAgICAgICAgICB1cGRhdGVMb2dvLmNoZWNrZWQgPSBmYWxzZTsNCiAgICAgICAgICAgICAgICB1cGRhdGVMb2dvLmNsYXNzTmFtZSA9ICJjaGFuZ2VkIjsNCiAgICAgICAgICAgIH07DQogICAgICAgIH0NCiAgICAgICAgZWxzZSB7DQogICAgICAgICAgICBhbGVydCgiRmlsZSBjb3VsZCBub3QgYmUgbG9hZGVkIik7DQogICAgICAgIH0NCiAgICAgICAgdXBsb2FkLnJlbW92ZSgpOw0KICAgICAgICByZXR1cm47DQogICAgfTsNCn0NCmZ1bmN0aW9uIGNoZWNrVW5kbyhrZXkpIHsNCiAgICBzd2l0Y2ggKGtleSkgew0KICAgICAgICBjYXNlICJlcGdNYXBwaW5nIjoNCiAgICAgICAgICAgIGlmIChVTkRPLmhhc093blByb3BlcnR5KGtleSkpIHsNCiAgICAgICAgICAgICAgICBTRVJWRVJbInhlcGciXVtrZXldID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeShVTkRPW2tleV0pKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgICAgIFVORE9ba2V5XSA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkoU0VSVkVSWyJ4ZXBnIl1ba2V5XSkpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICBicmVhazsNCiAgICB9DQogICAgcmV0dXJuOw0KfQ0KZnVuY3Rpb24gc29ydFNlbGVjdChlbGVtKSB7DQogICAgdmFyIHRtcEFyeSA9IFtdOw0KICAgIHZhciBzZWxlY3RlZFZhbHVlID0gZWxlbVtlbGVtLnNlbGVjdGVkSW5kZXhdLnZhbHVlOw0KICAgIGZvciAodmFyIGkgPSAwOyBpIDwgZWxlbS5vcHRpb25zLmxlbmd0aDsgaSsrKQ0KICAgICAgICB0bXBBcnkucHVzaChlbGVtLm9wdGlvbnNbaV0pOw0KICAgIHRtcEFyeS5zb3J0KGZ1bmN0aW9uIChhLCBiKSB7IHJldHVybiAoYS50ZXh0IDwgYi50ZXh0KSA/IC0xIDogMTsgfSk7DQogICAgd2hpbGUgKGVsZW0ub3B0aW9ucy5sZW5ndGggPiAwKQ0KICAgICAgICBlbGVtLm9wdGlvbnNbMF0gPSBudWxsOw0KICAgIHZhciBuZXdTZWxlY3RlZEluZGV4ID0gMDsNCiAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRtcEFyeS5sZW5ndGg7IGkrKykgew0KICAgICAgICBlbGVtLm9wdGlvbnNbaV0gPSB0bXBBcnlbaV07DQogICAgICAgIGlmIChlbGVtLm9wdGlvbnNbaV0udmFsdWUgPT0gc2VsZWN0ZWRWYWx1ZSkNCiAgICAgICAgICAgIG5ld1NlbGVjdGVkSW5kZXggPSBpOw0KICAgIH0NCiAgICBlbGVtLnNlbGVjdGVkSW5kZXggPSBuZXdTZWxlY3RlZEluZGV4OyAvLyBTZXQgbmV3IHNlbGVjdGVkIGluZGV4IGFmdGVyIHNvcnRpbmcNCiAgICByZXR1cm47DQp9DQpmdW5jdGlvbiB1cGRhdGVMb2coKSB7DQogICAgY29uc29sZS5sb2coIlRPS0VOIik7DQogICAgdmFyIHNlcnZlciA9IG5ldyBTZXJ2ZXIoInVwZGF0ZUxvZyIpOw0KICAgIHNlcnZlci5yZXF1ZXN0KG5ldyBPYmplY3QoKSk7DQp9DQo=" + webUI["html/js/authentication_ts.js"] = "ZnVuY3Rpb24gbG9naW4oKSB7DQogICAgdmFyIGVyciA9IGZhbHNlOw0KICAgIHZhciBkYXRhID0gbmV3IE9iamVjdCgpOw0KICAgIHZhciBkaXYgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29udGVudCIpOw0KICAgIHZhciBmb3JtID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImF1dGhlbnRpY2F0aW9uIik7DQogICAgdmFyIGlucHV0cyA9IGRpdi5nZXRFbGVtZW50c0J5VGFnTmFtZSgiSU5QVVQiKTsNCiAgICBjb25zb2xlLmxvZyhpbnB1dHMpOw0KICAgIGZvciAodmFyIGkgPSBpbnB1dHMubGVuZ3RoIC0gMTsgaSA+PSAwOyBpLS0pIHsNCiAgICAgICAgdmFyIGtleSA9IGlucHV0c1tpXS5uYW1lOw0KICAgICAgICB2YXIgdmFsdWUgPSBpbnB1dHNbaV0udmFsdWU7DQogICAgICAgIGlmICh2YWx1ZS5sZW5ndGggPT0gMCkgew0KICAgICAgICAgICAgaW5wdXRzW2ldLnN0eWxlLmJvcmRlckNvbG9yID0gInJlZCI7DQogICAgICAgICAgICBlcnIgPSB0cnVlOw0KICAgICAgICB9DQogICAgICAgIGRhdGFba2V5XSA9IHZhbHVlOw0KICAgIH0NCiAgICBpZiAoZXJyID09IHRydWUpIHsNCiAgICAgICAgZGF0YSA9IG5ldyBPYmplY3QoKTsNCiAgICAgICAgcmV0dXJuOw0KICAgIH0NCiAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgiY29uZmlybSIpKSB7DQogICAgICAgIGlmIChkYXRhWyJjb25maXJtIl0gIT0gZGF0YVsicGFzc3dvcmQiXSkgew0KICAgICAgICAgICAgYWxlcnQoInNkYWZzZCIpOw0KICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Bhc3N3b3JkJykuc3R5bGUuYm9yZGVyQ29sb3IgPSAicmVkIjsNCiAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjb25maXJtJykuc3R5bGUuYm9yZGVyQ29sb3IgPSAicmVkIjsNCiAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJlcnIiKS5pbm5lckhUTUwgPSAie3suYWNjb3VudC5mYWlsZWR9fSI7DQogICAgICAgICAgICByZXR1cm47DQogICAgICAgIH0NCiAgICB9DQogICAgY29uc29sZS5sb2coZGF0YSk7DQogICAgZm9ybS5zdWJtaXQoKTsNCn0NCg==" webUI["html/js/network_ts.js"] = "Y2xhc3MgU2VydmVyIHsNCiAgICBjb25zdHJ1Y3RvcihjbWQpIHsNCiAgICAgICAgdGhpcy5jbWQgPSBjbWQ7DQogICAgfQ0KICAgIHJlcXVlc3QoZGF0YSkgew0KICAgICAgICBpZiAoU0VSVkVSX0NPTk5FQ1RJT04gPT0gdHJ1ZSkgew0KICAgICAgICAgICAgcmV0dXJuOw0KICAgICAgICB9DQogICAgICAgIFNFUlZFUl9DT05ORUNUSU9OID0gdHJ1ZTsNCiAgICAgICAgY29uc29sZS5sb2coZGF0YSk7DQogICAgICAgIGlmICh0aGlzLmNtZCAhPSAidXBkYXRlTG9nIikgew0KICAgICAgICAgICAgc2hvd0VsZW1lbnQoImxvYWRpbmciLCB0cnVlKTsNCiAgICAgICAgICAgIFVORE8gPSBuZXcgT2JqZWN0KCk7DQogICAgICAgIH0NCiAgICAgICAgc3dpdGNoICh3aW5kb3cubG9jYXRpb24ucHJvdG9jb2wpIHsNCiAgICAgICAgICAgIGNhc2UgImh0dHA6IjoNCiAgICAgICAgICAgICAgICB0aGlzLnByb3RvY29sID0gIndzOi8vIjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImh0dHBzOiI6DQogICAgICAgICAgICAgICAgdGhpcy5wcm90b2NvbCA9ICJ3c3M6Ly8iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICB9DQogICAgICAgIHZhciB1cmwgPSB0aGlzLnByb3RvY29sICsgd2luZG93LmxvY2F0aW9uLmhvc3RuYW1lICsgIjoiICsgd2luZG93LmxvY2F0aW9uLnBvcnQgKyAiL2RhdGEvIiArICI/VG9rZW49IiArIGdldENvb2tpZSgiVG9rZW4iKTsNCiAgICAgICAgZGF0YVsiY21kIl0gPSB0aGlzLmNtZDsNCiAgICAgICAgdmFyIHdzID0gbmV3IFdlYlNvY2tldCh1cmwpOw0KICAgICAgICB3cy5vbm9wZW4gPSBmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICBXU19BVkFJTEFCTEUgPSB0cnVlOw0KICAgICAgICAgICAgY29uc29sZS5sb2coIlJFUVVFU1QgKEpTKToiKTsNCiAgICAgICAgICAgIGNvbnNvbGUubG9nKGRhdGEpOw0KICAgICAgICAgICAgY29uc29sZS5sb2coIlJFUVVFU1Q6IChKU09OKSIpOw0KICAgICAgICAgICAgY29uc29sZS5sb2coSlNPTi5zdHJpbmdpZnkoZGF0YSkpOw0KICAgICAgICAgICAgdGhpcy5zZW5kKEpTT04uc3RyaW5naWZ5KGRhdGEpKTsNCiAgICAgICAgfTsNCiAgICAgICAgd3Mub25lcnJvciA9IGZ1bmN0aW9uIChlKSB7DQogICAgICAgICAgICBjb25zb2xlLmxvZygiTm8gd2Vic29ja2V0IGNvbm5lY3Rpb24gdG8geFRlVmUgY291bGQgYmUgZXN0YWJsaXNoZWQuIENoZWNrIHlvdXIgbmV0d29yayBjb25maWd1cmF0aW9uLiIpOw0KICAgICAgICAgICAgU0VSVkVSX0NPTk5FQ1RJT04gPSBmYWxzZTsNCiAgICAgICAgICAgIGlmIChXU19BVkFJTEFCTEUgPT0gZmFsc2UpIHsNCiAgICAgICAgICAgICAgICBhbGVydCgiTm8gd2Vic29ja2V0IGNvbm5lY3Rpb24gdG8geFRlVmUgY291bGQgYmUgZXN0YWJsaXNoZWQuIENoZWNrIHlvdXIgbmV0d29yayBjb25maWd1cmF0aW9uLiIpOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9Ow0KICAgICAgICB3cy5vbm1lc3NhZ2UgPSBmdW5jdGlvbiAoZSkgew0KICAgICAgICAgICAgU0VSVkVSX0NPTk5FQ1RJT04gPSBmYWxzZTsNCiAgICAgICAgICAgIHNob3dFbGVtZW50KCJsb2FkaW5nIiwgZmFsc2UpOw0KICAgICAgICAgICAgY29uc29sZS5sb2coIlJFU1BPTlNFOiIpOw0KICAgICAgICAgICAgdmFyIHJlc3BvbnNlID0gSlNPTi5wYXJzZShlLmRhdGEpOw0KICAgICAgICAgICAgY29uc29sZS5sb2cocmVzcG9uc2UpOw0KICAgICAgICAgICAgaWYgKHJlc3BvbnNlLmhhc093blByb3BlcnR5KCJ0b2tlbiIpKSB7DQogICAgICAgICAgICAgICAgZG9jdW1lbnQuY29va2llID0gIlRva2VuPSIgKyByZXNwb25zZVsidG9rZW4iXTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGlmIChyZXNwb25zZVsic3RhdHVzIl0gPT0gZmFsc2UpIHsNCiAgICAgICAgICAgICAgICBhbGVydChyZXNwb25zZVsiZXJyIl0pOw0KICAgICAgICAgICAgICAgIGlmIChyZXNwb25zZS5oYXNPd25Qcm9wZXJ0eSgicmVsb2FkIikpIHsNCiAgICAgICAgICAgICAgICAgICAgbG9jYXRpb24ucmVsb2FkKCk7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIHJldHVybjsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGlmIChyZXNwb25zZS5oYXNPd25Qcm9wZXJ0eSgibG9nb1VSTCIpKSB7DQogICAgICAgICAgICAgICAgdmFyIGRpdiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjaGFubmVsLWljb24iKTsNCiAgICAgICAgICAgICAgICBkaXYudmFsdWUgPSByZXNwb25zZVsibG9nb1VSTCJdOw0KICAgICAgICAgICAgICAgIGRpdi5jbGFzc05hbWUgPSAiY2hhbmdlZCI7DQogICAgICAgICAgICAgICAgcmV0dXJuOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgc3dpdGNoIChkYXRhWyJjbWQiXSkgew0KICAgICAgICAgICAgICAgIGNhc2UgInVwZGF0ZUxvZyI6DQogICAgICAgICAgICAgICAgICAgIFNFUlZFUlsibG9nIl0gPSByZXNwb25zZVsibG9nIl07DQogICAgICAgICAgICAgICAgICAgIGlmIChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29udGVudF9sb2ciKSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgc2hvd0xvZ3MoZmFsc2UpOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIHJldHVybjsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgICAgICAgICAgU0VSVkVSID0gbmV3IE9iamVjdCgpOw0KICAgICAgICAgICAgICAgICAgICBTRVJWRVIgPSByZXNwb25zZTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBpZiAocmVzcG9uc2UuaGFzT3duUHJvcGVydHkoIm9wZW5NZW51IikpIHsNCiAgICAgICAgICAgICAgICB2YXIgbWVudSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHJlc3BvbnNlWyJvcGVuTWVudSJdKTsNCiAgICAgICAgICAgICAgICBtZW51LmNsaWNrKCk7DQogICAgICAgICAgICAgICAgc2hvd0VsZW1lbnQoInBvcHVwIiwgZmFsc2UpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgaWYgKHJlc3BvbnNlLmhhc093blByb3BlcnR5KCJvcGVuTGluayIpKSB7DQogICAgICAgICAgICAgICAgd2luZG93LmxvY2F0aW9uID0gcmVzcG9uc2VbIm9wZW5MaW5rIl07DQogICAgICAgICAgICB9DQogICAgICAgICAgICBpZiAocmVzcG9uc2UuaGFzT3duUHJvcGVydHkoImFsZXJ0IikpIHsNCiAgICAgICAgICAgICAgICBhbGVydChyZXNwb25zZVsiYWxlcnQiXSk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBpZiAocmVzcG9uc2UuaGFzT3duUHJvcGVydHkoInJlbG9hZCIpKSB7DQogICAgICAgICAgICAgICAgbG9jYXRpb24ucmVsb2FkKCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBpZiAocmVzcG9uc2UuaGFzT3duUHJvcGVydHkoIndpemFyZCIpKSB7DQogICAgICAgICAgICAgICAgY3JlYXRlTGF5b3V0KCk7DQogICAgICAgICAgICAgICAgY29uZmlndXJhdGlvbldpemFyZFtyZXNwb25zZVsid2l6YXJkIl1dLmNyZWF0ZVdpemFyZCgpOw0KICAgICAgICAgICAgICAgIHJldHVybjsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGNyZWF0ZUxheW91dCgpOw0KICAgICAgICB9Ow0KICAgIH0NCn0NCmZ1bmN0aW9uIGdldENvb2tpZShuYW1lKSB7DQogICAgdmFyIHZhbHVlID0gIjsgIiArIGRvY3VtZW50LmNvb2tpZTsNCiAgICB2YXIgcGFydHMgPSB2YWx1ZS5zcGxpdCgiOyAiICsgbmFtZSArICI9Iik7DQogICAgaWYgKHBhcnRzLmxlbmd0aCA9PSAyKQ0KICAgICAgICByZXR1cm4gcGFydHMucG9wKCkuc3BsaXQoIjsiKS5zaGlmdCgpOw0KfQ0K" - webUI["html/login.html"] = "PCFkb2N0eXBlIGh0bWw+DQo8aHRtbD4NCiAgPGhlYWQ+DQogICAgPG1ldGEgY2hhcnNldD0idXRmLTgiPg0KICAgIDxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgsIGluaXRpYWwtc2NhbGU9MS4wIiAvPiANCiAgICA8dGl0bGU+eFRlVmU8L3RpdGxlPg0KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iY3NzL3NjcmVlbi5jc3MiIHR5cGU9InRleHQvY3NzIj4NCiAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9ImNzcy9iYXNlLmNzcyIgdHlwZT0idGV4dC9jc3MiPg0KICAgIDxzY3JpcHQgbGFuZ3VhZ2U9ImphdmFzY3JpcHQiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJqcy9uZXR3b3JrX3RzLmpzIj48L3NjcmlwdD4NCiAgICA8c2NyaXB0IGxhbmd1YWdlPSJqYXZhc2NyaXB0IiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ianMvYXV0aGVudGljYXRpb25fdHMuanMiPjwvc2NyaXB0Pg0KICA8L2hlYWQ+DQoNCiAgICA8Ym9keT4NCiAgICAgICAgICANCiAgICAgIDxkaXYgaWQ9ImhlYWRlciIgY2xhc3M9ImltZ0NlbnRlciI+PC9kaXY+DQoNCiAgICAgIDxkaXYgaWQ9ImJveCI+DQoNCiAgICAgICAgPGRpdiBpZD0iaGVhZGxpbmUiPg0KICAgICAgICAgIDxoMSBpZD0iaGVhZC10ZXh0IiBjbGFzcz0iY2VudGVyIj57ey5sb2dpbi5oZWFkbGluZX19PC9oMT4NCiAgICAgICAgPC9kaXY+DQoNCiAgICAgICAgPHAgaWQ9ImVyciIgY2xhc3M9ImVycm9yTXNnIGNlbnRlciI+e3suYXV0aGVudGljYXRpb25FcnJ9fTwvcD4NCg0KICAgICAgICA8ZGl2IGlkPSJjb250ZW50Ij4NCg0KICAgICAgICAgICAgPGZvcm0gaWQ9ImF1dGhlbnRpY2F0aW9uIiBhY3Rpb249IiIgbWV0aG9kPSJwb3N0Ij4NCg0KICAgICAgICAgICAgICA8aDU+e3subG9naW4udXNlcm5hbWUudGl0bGV9fTo8L2g1Pg0KICAgICAgICAgICAgICA8aW5wdXQgaWQ9InVzZXJuYW1lIiB0eXBlPSJ0ZXh0IiBuYW1lPSJ1c2VybmFtZSIgcGxhY2Vob2xkZXI9IlVzZXJuYW1lIiB2YWx1ZT0iIj4NCiAgICAgICAgICAgICAgPGg1Pnt7LmxvZ2luLnBhc3N3b3JkLnRpdGxlfX06PC9oNT4NCiAgICAgICAgICAgICAgPGlucHV0IGlkPSJwYXNzd29yZCIgdHlwZT0icGFzc3dvcmQiIG5hbWU9InBhc3N3b3JkIiBwbGFjZWhvbGRlcj0iUGFzc3dvcmQiIHZhbHVlPSIiPg0KDQogICAgICAgICAgICA8L2Zvcm0+DQoNCiAgICAgICAgPC9kaXY+DQoNCiAgICAgICAgPGRpdiBpZD0iYm94LWZvb3RlciI+DQogICAgICAgICAgPGlucHV0IGlkPSJzdWJtaXQiIGNsYXNzPSIiIHR5cGU9ImJ1dHRvbiIgdmFsdWU9Int7LmJ1dHRvbi5sb2dpbn19IiBvbmNsaWNrPSJqYXZhc2NyaXB0OiBsb2dpbigpOyI+DQogICAgICAgIDwvZGl2Pg0KICAgICAgICANCiAgICAgIDwvZGl2Pg0KDQogICAgPC9ib2R5Pg0KICAgIA0KPC9odG1sPg==" + webUI["html/img/mapping.png"] = "iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAAAXNSR0IArs4c6QAAAAlwSFlzAAAsSwAALEsBpT2WqQAABCRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IlhNUCBDb3JlIDUuNC4wIj4KICAgPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIgogICAgICAgICAgICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgICAgICAgICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyI+CiAgICAgICAgIDx0aWZmOlJlc29sdXRpb25Vbml0PjI8L3RpZmY6UmVzb2x1dGlvblVuaXQ+CiAgICAgICAgIDx0aWZmOkNvbXByZXNzaW9uPjU8L3RpZmY6Q29tcHJlc3Npb24+CiAgICAgICAgIDx0aWZmOlhSZXNvbHV0aW9uPjI4ODwvdGlmZjpYUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6T3JpZW50YXRpb24+MTwvdGlmZjpPcmllbnRhdGlvbj4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+Mjg4PC90aWZmOllSZXNvbHV0aW9uPgogICAgICAgICA8ZXhpZjpQaXhlbFhEaW1lbnNpb24+NTA8L2V4aWY6UGl4ZWxYRGltZW5zaW9uPgogICAgICAgICA8ZXhpZjpDb2xvclNwYWNlPjE8L2V4aWY6Q29sb3JTcGFjZT4KICAgICAgICAgPGV4aWY6UGl4ZWxZRGltZW5zaW9uPjUwPC9leGlmOlBpeGVsWURpbWVuc2lvbj4KICAgICAgICAgPGRjOnN1YmplY3Q+CiAgICAgICAgICAgIDxyZGY6QmFnLz4KICAgICAgICAgPC9kYzpzdWJqZWN0PgogICAgICAgICA8eG1wOk1vZGlmeURhdGU+MjAxOC0wOC0wMlQxMjowODo5NzwveG1wOk1vZGlmeURhdGU+CiAgICAgICAgIDx4bXA6Q3JlYXRvclRvb2w+UGl4ZWxtYXRvciAzLjM8L3htcDpDcmVhdG9yVG9vbD4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgIDwvcmRmOlJERj4KPC94OnhtcG1ldGE+CpRxQsEAAAJLSURBVGgF7VoxTgMxEMwBHWlAaeABVCEtBcoD+EBewCdCyQsQtLyAPCBvCBSRIBUPCF1ogqBJjlkrezGr6HTrO98lhy1Z9trr2VmvnbMNjUadUhzHLeQB8hw5LS3QOUbubvIf7X3kKXIZibgS51bCZdWgMT6D8nECgArkngagQN0B8dhbkblalVmLIyheCGUthhjuLBq77MihA0xTjHHBEBBOorHLjjghbNOg4Mg2RYO4hIiEiHiaAV5aSwf8hRgjZdHtTTTc2ZFXpZkY+hMx5k3IZYlr7jgudJHp2JElLaF0K1mirYn8nAWgQB3ibM59ERNCA52d6Nghv9isQiUtn0kURe92I9eBcYA6YZxym8dyDuwRuMw82gjQYQbsPdLDdNCROO0US3uEfp3usTZpjf5J2CNtNFwjl7FHvmBnCB5PCQkQoJudJtGvE23sJEFuI39rQArS7dskXK6nlwkAKiB1VxAxLcyUePAH8cQmlbEul4+UM8LkVjPc2ZHcaFUDBEeqjoC0HyIiZ6RqOUSk6ghI+xyRD9mRQTYfIktPylaX16rhzo48KE29QH8kxjxC/hFtZYiGe70OjWVMW7Dx32bA3iO7//iAC8DOPweZFQhH6O+CmkRvW2f28oV8owEoUHdMPPg70rFJZajTkqT7uZ3ObaHEuuHOjnCpsb8vlKUsur2JhruLA94Y5QEOjuSZPR9jQ0R8zGoezNpFhN5RtUm+/bpgaG1u0jd2OSLDTRopbZ/okxcrLUYKvKprbRfHhXr8m5PK/y1V/gWRKLfiNSmxEAAAAABJRU5ErkJggg==" webUI["html/maintenance.html"] = "PCFkb2N0eXBlIGh0bWw+DQo8aHRtbD4NCiAgPGhlYWQ+DQogICAgPG1ldGEgY2hhcnNldD0idXRmLTgiPg0KICAgIDxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgsIGluaXRpYWwtc2NhbGU9MS4wIiAvPiANCiAgICA8dGl0bGU+eFRlVmU8L3RpdGxlPg0KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iY3NzL3NjcmVlbi5jc3MiIHR5cGU9InRleHQvY3NzIj4NCiAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9ImNzcy9iYXNlLmNzcyIgdHlwZT0idGV4dC9jc3MiPg0KICA8L2hlYWQ+DQoNCiAgICA8Ym9keT4NCiAgICAgICAgICANCiAgICAgIDxkaXYgaWQ9ImhlYWRlciIgY2xhc3M9ImltZ0NlbnRlciI+PC9kaXY+DQoNCiAgICAgIDxkaXYgaWQ9ImJveCI+DQoNCiAgICAgICAgPGRpdiBpZD0iaGVhZGxpbmUiPg0KICAgICAgICAgIDxoMSBpZD0iaGVhZC10ZXh0IiBjbGFzcz0iY2VudGVyIj5NYWludGVuYW5jZTwvaDE+ICAgICAgDQogICAgICAgIDwvZGl2PiAgDQoNCiAgICAgICAgPGRpdiBpZD0iY29udGVudCI+DQogICAgICAgICAgeFRlVmUgaXMgdXBkYXRpbmcgdGhlIGRhdGFiYXNlLCBwbGVhc2UgdHJ5IGFnYWluIGxhdGVyLg0KICAgICAgICA8L2Rpdj4NCg0KICAgICAgICA8ZGl2IGlkPSJib3gtZm9vdGVyIj48L2Rpdj4NCiAgICAgICAgDQogICAgICA8L2Rpdj4NCg0KICAgIDwvYm9keT4NCjwvaHRtbD4=" + webUI["html/video/stream-limit.ts"] = "R0AREABC8CUAAcEAAP8B/wAB/IAUSBIBBkZGbXBlZwlTZXJ2aWNlMDF3fEPK//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////9HQAAQAACwDQABwQAAAAHwACqxBLL//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////0dQABAAArASAAHBAADhAPAAG+EA8AAVvU1W////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////R0EAMAdQAAB7DH4AAAAB4AAAgMAKMQAJEKERAAfYYQAAAAEJ8AAAAAFnZAAorNlAeAIn5cBEAAADAAQAAAMAyDxgxlgAAAABaOvjyyLAAAABBgX//6rcRem95tlIt5Ys2CDZI+7veDI2NCAtIGNvcmUgMTUyIHIyODU0IGU5YTU5MDMgLSBILjI2NC9NUEVHLTQgQVZDIGNvZGVjIC0gQ29weWxlZnQgMjAwMy0yMDE3IC0gaHR0cDovL3dHAQARd3cudmlkZW9sYW4ub3JnL3gyNjQuaHRtbCAtIG9wdGlvbnM6IGNhYmFjPTEgcmVmPTMgZGVibG9jaz0xOjA6MCBhbmFseXNlPTB4MzoweDExMyBtZT1oZXggc3VibWU9NyBwc3k9MSBwc3lfcmQ9MS4wMDowLjAwIG1peGVkX3JlZj0xIG1lX3JhbmdlPTE2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ACqxBLL//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////0dQABEAArASAAHBAADhAPAAG+EA8AAVvU1W////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////RwEAGO10tGlFAwyE91Tzg8923ovJk1dv2xh1gVlYQFtWdZ6NSQ8vgHM7/tMfIZPsqgCU856rdBJJRMDaor/oWA7pkvSmC2aqaC5fd/mkWUPTuG8fRhGqOY1rKxLNSI3HtTQAcuVBxRM0NfMw0ky/JMJYZiCgXcNsxpxl+khr/9fKtO5Fg2VNBti92xcZimHUZDJMQTBOY6vSR9L1N2O/kJQCpdfuc9bkcUTMjH/es/lAySxvbiislkohqkpHAQAZVatwHI0t9eHCUfDyWUEtuCNyDwQFOVMtaYEQJrTrhQX0VduT86F0u0wN9ag0uPsrmX6Rid/x5S7KI1SkS+qP6cdmgSP57uiF4dG6IKsWNfGBLY09H/CFlrg73WINQkkp2diKkdEmtZetn8+ZAKzR5eXN5FebiKt6pIkNLuSofjosypEs2o6boKsfpmbtOV0idOeWDM9C8EIcn3aZwk1s2KBDvt1DlY+i2Cuvhk3XoKLT+pq/bOC5QkcBABolcOXneZXLoQw9W1PH1f/of92Ytjj8okrWijcQAKlE5l8XoTb9qrOiZnDOhqwcMlB9H9rorq041I89hChohYoSkJElcM8V+r8WYN5axD1BNyfwaHAOm4UN2/VEYOkNSfMjmx2S0WW/F2ha8Jj4fc4QgqcXr+TnnbwqLkLTValK4Qa1pcv7PIbDq6zCUfxe04guZ8xEhPQjp17/G6IB/6uq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wnibxQ/cXEblVnM47wbCN3iy4eHjYB5MoIICrSYmd8nt4V0toLs084KJlmnur5FbApYM4W79ff4oZkW88Cg8Fv8TnWhh1Hqc4UlhMbRKm2QxDgfBxar3U7BwNR6prrXXjqfR7ja3tPli+H7Jez/xcTg32QpHAQAdTa7pSSgBvmOqzz175NAFIhwE9p3d71F9jLvhaPv8q1iKopL0kizwzEWElnXWmNhfLkl/Au8KujnoKUaxVdTe+zAZm2dOkejnpNVtVj0Aw9wKcG3ZQ1iRZrUFRIoPKYlmR+oi0LrupuhYABtgPbdCbDtezGTr0nw9wVd/rZ6V+1wcoJ6+8VAVueIdwI3brqm6EoFHiI8L6lER+9SefB8fHo4NYgr/I8jSxaa/2PLX2K/DjrlY6bN8fEcBAB7DXsuh8DITF6CYWj2HTFvqfzlic3QHXnHtvsTFNpyVY1LY8y/fRK2mwALN6IB5W3OuyoKiA3K0lJdQUv2gYhHWvPTV218HYrD0rkbMxRH0SiEEkrHDeOt5T1HtWD13D2/QvMu535fsfZyeaFDjdCE9M0Xi8Lfc7Xj1ZNGend7Jo7/cEiczFkc1vB4z2JpFGZreV2EdquyEzC2STFJtfimyx8QlLngEuR1cxH+lWEcFX+mvBa/eqktIRwEAH6VazFLPNsnHZqsI66TVoArQuUUGFAzr8MT8GZ9V6qpZa5D0jA/4eGi6Kq0smUgRExnqIbSMLWqDf/Pk2YT3MpHTu9VE3Dn9blgB6KsVIkWnB98Y2n/6DrZDcF94Ndu0Ka4U/RZwdV5O5KcO+lU2ZiIOYTYZ6Ie0d+tApxYxJ+YmxaDoCyRNe6crw/yzR5SflT8ddi/E2BM+l+nwVDiKZ/714fmrBxFKWuqLiQNHV19o1cZ8Ubun+ZtHQAASAACwDQABwQAAAAHwACqxBLL//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////0dQABIAArASAAHBAADhAPAAG+EA8AAVvU1W////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////RwEAEH1s3BdtHdF1ln55B24wdACF/ggcRtPmB4IUB6cZJ+m32I4R48ZkdhAFBulgWcsv0wZwH0o1yi3i4qm3rJ98AUKdB9PsNyG9gURV0bTw4myAj6g5Dgodfv6w9bsbOxsGUWkvgAJ3rrR010BvZbIa6CMRCQRjxkCfRF77ansRJZT0JzhtYeSS/ZJob8Rr2jrng3W2rkmHtE+rdqlPiHxmwkRZvYGhBxwiJO2L6f+l/cABsfs09rA+A0pHAQAREZay3TBUIAfMWhApE+LaPgeyOYtaPFONA9aC0h4QrFkaLZfb86678MK+zLgqDBsDoj50eZHMVcczRjs4sYlv7RG8RIWKb5lB9Kn/8+CkxiiA11cHH1yzLX2SKCmhsak/+P/zYQ1EDvEj33bl9e3Jd62cTI+Qw99KrsWnUMN8hFNeXzoGHA3aec+Li4NFboF8sa6lCPR6Csxsvxw8DJaWCnER5Z0p+nKhXavF/eNHQ0DX47ohycc87UcBABKsYHCHXXe3vK1cFYDWO6rhwM6hxCdJ+/X+VB1akQejL6iBMdUPuadUqBnbprwJM0dWpSSn9uuZZeqe46iZOGIJUo69d8x+ZSvPcBH/dK1Y0LJnoWdgWH51SQg7eYqcwjQW3BOy7ZF02Hn1EhTuhsN7ms8zv3WIeEBDBq0T3Idl+Tmw9iJU9skVYiwygHG2+0XwrLa6y+uiQPwMzrnEr1kuf24XoAqrJTZQiVH3aQF4d94yDreWu2KPRwEAE2FsynHZaUcBXEFbeX0nSxZ7sRcRjJvc7RYOny6N8QFwKDVO7jpRWWYM55kuepBOyZ+7BFYeG+FU1kR+ZfmqyDNkD4D1IPwNh6u9JQxDymfN/aMcQC3WxdvCKquPsAut6dugpGkOFtIe+W3ayc4V/J978P+h1EDFMbFjxRPuXht0K2dBQZCJ0ybISUDqWzhPuep8CdxSU4MvMVfdXh7FLl/BqKJUTT+vM+Pz3XnqCQQmH5TjQ4CK55VHAQAUEtgfkBwIYgtwHkhjmtLw7HNTeJeMfTjATEKcyuKzItSeYxHBmGzQ/+G2otpPCOkVAXJ9mfx7LxrW4joZ0ttTRQJ/wqMUK1IN349LiJoo8y/+FwN4jPNDwIleJG697riqnmLOweFW8spHKLBfnHcyC1pG6EIxFpTqUQ0KHqXD/KXIHKioJNAOVwQ1Gfloxebo/Tdtd00dpHP3gcsAOnV75APCYOjVIlwm2X6ViDeZw6Btdb/Br/+yokcBABU3+eOESLlneGbR5SLiL8wPkoRaZ5X7xFlMTMvsv9yHk26bVdmsubSdbYS1Hy64n0+NnL7C1aLD7aJxOudMjVW5goZbfO2KxBQkCD4HFA284wbaB5vOL7mRilCn6YEs1kiwf22+fBLNUmXDb2p353wrD/ygTDhlki66USvUmd/ZAs9uzAddegEzy7Xn00YysWTu/hegYyZtWFC+X5dhLubWJ7n96y5wjrP7PAOXoQQtFUH9j/rBiP/7RwEAFnL/wYKYuj80mPGtimSbF/E9K7XwjwBz8yHZubmVMTCmwkZBM4h0FR1thnUGiSjqjJT6SfunWCZ/dZDQplrzS00UKcUP399SyM+nNG1br8Za0ZYwWch8nyLHYXSRuxdnrfUUespsOQo1cWSLGf0pV2HIcHoiAAEKwPU6irB5BSoFvB1qKVjgEk+QwAEYAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAABHAQA3pAD/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////AwAAAwAAAwAAAwAAAwAAAwBbwUdBABgAAAHgAACAwAoxAAmBIREAB/SBAAAAAQnwAAAAAUGaJGxDv/6plgAAAwAAAwAAAwAAAwAAAwAAAwAAAwAKCKB0AIhy1ftwLNISWucTFC7xeBcaIzP3oZjZo8uT9hqZVstWGnrPz+vjaA5FuCO+K2w7/o39LygDO7aL+0zSrN90LW7r133x8+f+PEKk8d7pd2fj4RYuMOXOYunzFzRX/4IvR1XsK5WJYwVkOca3yfo7DTvUBP9rgSiTRwEAGQD6CFK1PBC4qYCa+coLVnX+jgODNrau5YJXIekDI4+wUNV+5T5HE4e2t5EGAjn77+kC1Vghmvx8KqPnylVUvsaTofheggxHsPuxn1zQt6nA59UglrRUMn8b4pmrvfqTBSqU949+AcNAI6M/eAqz6r0RG5KNeBhx8R2f0x2kujwHU3pc3rlPb6ZrFM/2HiG97eEIezrvWFG7YAAAAwAAAwAE1KRo1VfbdZQ/tOpNGxFmTcQoFidyD2tHAQAapTTIErUKA2Rc9uIzGJu+oW0uNOxRyl6oJNUNJp5L9TIshNS1CmUKgdCaE3LkLwdE8iUkUnIGfWLiWpWmjzsINYC8dnDaSptB53yJkBu0SsR00oo1PZ0pl4ZzoXGSYQJTPaVCbj6FNqm5wcnUqKTB/rgHdPdnDj0K8asLABeo/n3XCXrDorI+LYSD1FBgmV9O7RZdjfL0NnXOQkiq/ZGirwVV0cUF1aHtZx1yHlAAZKuuu7TqB13CAUcBADuRAP///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////yj/IrOvAEoXDNGy+nrxWN0l8cmuqWYaUJpuM9XgAAADAAADAAKmR0EAPAcQAACJHH4AAAAB4AAAgMAKMQAJSOERAAkQoQAAAAEJ8AAAAAFBnkJ4hf8AAAMAAAMAAAMAAAMAAAMAAAMAAAMAC/BmhyuvLmkCgKTgACEXfOVvHRHdpBEEmTTz9pIZCa2FD0CXukzDCakOHekTpJQSdsfd7a/jjM1/5lBtKCAGQ6zOCSQ6DeKtyw+CugDuuglGipwmvQW+FIDjnZ6HRd0uaSOGy6VB3h9MI1o4nqaCqVwwIgubYZFHAQA9XgD////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////WcZrO6BEiqf8pCxYwlz2mkdUzY/ipM/TIHS4m5xQAAAMAAAMAAA5sVm90p14dlvWgBgY7XQ9KVOJKLtaMAN5KiffVQtNuzW5DfL+RewZpAAADAAADAAAQMUdBAB4AAAHgAACAgAUhAAkswQAAAAEJ8AAAAAEBnmF0Qr8AAAMAAAMAAAMAAAMAAAMAAAMAAAMAABJfBjP2+4+W7ZybyT130+Ma4WSqICfd/dS4YtjrLlmh5VBlfrtwJqdN1PBTYDkwGOOONqZQeFN6lLGJoDzvuh3kv1aDBLqug+JhvrSeu5ebnvcrtQzb2REwJL3h9mvtkr0WfDu4AAADAAADAAs32Y4C/6Ns79oCGj6oqLltY3T4I0/QRwEAP5wA//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////8BeoWLRnKQmVgO/RBoBfcK85AAAAMAAAMACFhHQQAwBxAAAJcsfgAAAAHgAACAwAoxAAllAREACUjhAAAAAQnwAAAAAQGeY2pCvwAAAwAAAwAAAwAAAwAAAwAAAwAAAwAAEmDKfLGXsvBBQPNYXlEd6WueJ4deApfcHESlG+7V6u0AiWQqJvNZYM+3Js3Lj9Ldc9yYIHqruVwfMtCYGlX3wMavI/DrhMuJw+RreIF8SKsJD8CMccAAAAMAAAMACrFZOBgEqaP/8EyWsAHV6CgcAgfyox/roEcBADGuAP//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////AAADAAADAHTBR0EAEgAAAeAAAIDACjEACfGhEQAJZQEAAAABCfAAAAABQZpoSahBaJlMCHf//qmWAAADAAADAAADAAADAAADAAADAAADAAALf8A2bry6lUyIAQGNFfVK2Cd7h4qDqmqpvmXfkfTwo2Ab79AHhajxJ4MPWIgAAA84xLRIx7I2CrWjWe96OvgkzgS9mtvhuxdzAgpuIOJI3DEY9mviDDZz8XSAAAADAAADAB7AZkj9AAHHGvk+Pzlku8UkWa5HAQAzogD//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////6HjAkbF/gsWuvw4QAAAAwAAAwAccUdBADQHEAAApTx+AAAAAeAAAIDACjEACblhEQAJgSEAAAABCfAAAAABQZ6GRREsL/8AAAMAAAMAAAMAAAMAAAMAAAMAAAMAAA3URJB/3lMHSmOd0GYZnfpoR80WdqxlyHzPX+V81VUMeXIGrRgq5agd+ACdjoGI036yQ/rmpGw0CmMBrKwpI+nwFo3SP0s1rI2yHBZaiPJjSUgw33rBkxXcq55kfLf2sAAAAwAAAwACBWolidWDnIeQAAADRwEANbEA//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////8AAAMADulHQQA2NAD///////////////////////////////////////////////////////////////////8AAAHgAACAgAUhAAmdQQAAAAEJ8AAAAAEBnqV0Qr8AAAMAAAMAAAMAAAMAAAMAAAMAAAMAABJXNihCnx11JUosH2hBE53O/YN+GPHqcnJiQBIf3maTAAj5iRt+7GYUKBAU9iCXTiouCjGYgAAAAwAAAwA9p4HQBg2cAAADAAADAADGgUdBADc4EAAAs0x+AP////////////////////////////////////////////////////////////////8AAAHgAACAwAoxAAnVgREACblhAAAAAQnwAAAAAQGep2pCvwAAAwAAAwAAAwAAAwAAAwAAAwAAAwAAAwBR6/L83y+ZevtMZ0FW4lp8qV7fVXQAhLAWlS6mDxvpaSUgChorvgTMXtxJEIAAAAMAAAMACqFCAAADAAADAAADAAz4R0EAOCsA////////////////////////////////////////////////////////AAAB4AAAgMAKMQALYiERAAnVgQAAAAEJ8AAAAAFBmqxJqEFsmUwId//+qZYAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAApQTq0hABLvkcWCYrAaRRPNDrECJGlF/11BYvG9+JJ9Y86nxnmQzPxtAAe1UgOsXAAADAAADAAADAAADAAADAAADAAADA/JHQQA5JhAAAMFcfgD/////////////////////////////////////////AAAB4AAAgMAKMQALKeERAAnxoQAAAAEJ8AAAAAFBnspFFSwv/wAAAwAAAwAAAwAAAwAAAwAAAwAAAwAADdRFmvrVE0KXDOGwWddlwYa1foib7tXZKmkua6R4APb4b8+tXwdSNNqgf2IVNwGTohgQAcMvp6SiQxpiQym4AAADAAADAANUNUAAAAMAAAMAAAMBN0dBADo8AP//////////////////////////////////////////////////////////////////////////////AAAB4AAAgIAFIQALDcEAAAABCfAAAAABAZ7pdEK/AAADAAADAAADAAADAAADAAADAAADAAADAFHTAfujIUaaLSuklb9y0/so9AEtQAqkAxOviALQZ5jNt/iOkABrCOZ4md0iUnFwAAADAAADAALwckAAAAMAAAMAAATcR0EAO0IQAADPbH4A//////////////////////////////////////////////////////////////////////////////8AAAHgAACAwAoxAAtGAREACynhAAAAAQnwAAAAAQGe62pCvwAAAwAAAwAAAwAAAwAAAwAAAwAAAwAAAwBR6/L83y+WryR9gmVKPGbIhJpkgAFgHCej3gB6rAHPgHHAAAADAAADAAAYIV0AAAMAAAMAAAMABnxHQQA8UQD//////////////////////////////////////////////////////////////////////////////////////////////////////////wAAAeAAAIDACjEAC9KhEQALRgEAAAABCfAAAAABQZrwSahBbJlMCG///qeEAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAAZ8UdBAD00EAAA3Xx+AP///////////////////////////////////////////////////////////wAAAeAAAIDACjEAC5phEQALYiEAAAABCfAAAAABQZ8ORRUsL/8AAAMAAAMAAAMAAAMAAAMAAAMAAAMAAA3URZr61RNClwzhI2ZXdRHYLZWc1yTgKRhTIXBNABHQKIIyYNyc+AaEn1jhATEAAAMAAAMAAAMAckkIAAADAAADAAADAEbBR0EAPkYA////////////////////////////////////////////////////////////////////////////////////////////AAAB4AAAgIAFIQALfkEAAAABCfAAAAABAZ8tdEK/AAADAAADAAADAAADAAADAAADAAADAAADAFHTAfujIUAYRtY0f/43cIs2OjxACR2hMR1QBGYX+34JGAAAAwAAAwAAAwKEJ6AAAAMAAAMAAAMA3oFHQQA/QhAAAOuMfgD//////////////////////////////////////////////////////////////////////////////wAAAeAAAIDACjEAC7aBEQALmmEAAAABCfAAAAABAZ8vakK/AAADAAADAAADAAADAAADAAADAAADAAADAFHr8vzfL5avJH2CZUo8ZsiEmmSAAWAcJ6PeAHqsAc+AccAAAAMAAAMAABghXQAAAwAAAwAAAwAGfEdBADBRAP//////////////////////////////////////////////////////////////////////////////////////////////////////////AAAB4AAAgMAKMQANQyERAAu2gQAAAAEJ8AAAAAFBmzRJqEFsmUwIZ//+nhAAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAGVAR0EAMTQQAAD5nH4A////////////////////////////////////////////////////////////AAAB4AAAgMAKMQANCuERAAvSoQAAAAEJ8AAAAAFBn1JFFSwv/wAAAwAAAwAAAwAAAwAAAwAAAwAAAwAADdRFmvrVE0KXDOEjZld1EdgtlZzXJOApGFMhcE0AEdAogjJg3Jz4BoSfWOEBMQAAAwAAAwAAAwBySQgAAAMAAAMAAAMARsFHQQAyRgD///////////////////////////////////////////////////////////////////////////////////////////8AAAHgAACAgAUhAAvuwQAAAAEJ8AAAAAEBn3F0Qr8AAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAUdMB+6MhQBhG1jR//jdwizY6PEAJHaExHVAEZhf7fgkYAAADAAADAAADAoQnoAAAAwAAAwAAAwDegEdBADNCEAABB6x+AP//////////////////////////////////////////////////////////////////////////////AAAB4AAAgMAKMQANJwERAA0K4QAAAAEJ8AAAAAEBn3NqQr8AAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAUevy/N8vlq8kfYJlSjxmyISaZIABYBwno94AeqwBz4BxwAAAAwAAAwAAGCFdAAADAAADAAADAAZ8R0EANFIA////////////////////////////////////////////////////////////////////////////////////////////////////////////AAAB4AAAgMAKMQANs6ERAA0nAQAAAAEJ8AAAAAFBm3hJqEFsmUwIV//+OEAAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAYtHQQA1NBAAARW8fgD///////////////////////////////////////////////////////////8AAAHgAACAwAoxAA17YREADUMhAAAAAQnwAAAAAUGflkUVLC//AAADAAADAAADAAADAAADAAADAAADAAAN1EWa+tUTQpcM4SNmV3UR2C2VnNck4CkYUyFwTQAR0CiCMmDcnPgGhJ9Y4QExAAADAAADAAADAHJJCAAAAwAAAwAAAwBGwEdBADZGAP///////////////////////////////////////////////////////////////////////////////////////////wAAAeAAAICABSEADV9BAAAAAQnwAAAAAQGftXRCvwAAAwAAAwAAAwAAAwAAAwAAAwAAAwAAAwBR0wH7oyFAGEbWNH/+N3CLNjo8QAkdoTEdUARmF/t+CRgAAAMAAAMAAAMChCegAAADAAADAAADAN6BR0EAN0IQAAEjzH4A//////////////////////////////////////////////////////////////////////////////8AAAHgAACAwAoxAA2XgREADXthAAAAAQnwAAAAAQGft2pCvwAAAwAAAwAAAwAAAwAAAwAAAwAAAwAAAwBR6/L83y+WryR9gmVKPGbIhJpkgAFgHCej3gB6rAHPgHHAAAADAAADAAAYIV0AAAMAAAMAAAMABn0=" + webUI["html/configuration.html"] = "PCFkb2N0eXBlIGh0bWw+DQo8aHRtbD4NCiAgPGhlYWQ+DQogICAgPG1ldGEgY2hhcnNldD0idXRmLTgiPg0KICAgIDxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgsIGluaXRpYWwtc2NhbGU9MS4wIiAvPiANCiAgICA8dGl0bGU+eFRlVmU8L3RpdGxlPg0KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iY3NzL3NjcmVlbi5jc3MiIHR5cGU9InRleHQvY3NzIj4NCiAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9ImNzcy9iYXNlLmNzcyIgdHlwZT0idGV4dC9jc3MiPg0KICAgIDxzY3JpcHQgbGFuZ3VhZ2U9ImphdmFzY3JpcHQiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJqcy9jb25maWd1cmF0aW9uX3RzLmpzIj48L3NjcmlwdD4NCiAgICA8c2NyaXB0IGxhbmd1YWdlPSJqYXZhc2NyaXB0IiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ianMvbmV0d29ya190cy5qcyI+PC9zY3JpcHQ+DQogICAgPHNjcmlwdCBsYW5ndWFnZT0iamF2YXNjcmlwdCIgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9ImpzL21lbnVfdHMuanMiPjwvc2NyaXB0Pg0KICAgIDxzY3JpcHQgbGFuZ3VhZ2U9ImphdmFzY3JpcHQiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJqcy9zZXR0aW5nc190cy5qcyI+PC9zY3JpcHQ+DQogICAgPHNjcmlwdCBsYW5ndWFnZT0iamF2YXNjcmlwdCIgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9ImpzL2Jhc2VfdHMuanMiPjwvc2NyaXB0Pg0KICA8L2hlYWQ+DQoNCiAgICA8Ym9keSBvbmxvYWQ9ImphdmFzY3JpcHQ6IHJlYWR5Rm9yQ29uZmlndXJhdGlvbigwKTsiPg0KICAgICAgICAgIA0KICAgICAgPGRpdiBpZD0ibG9hZGluZyIgY2xhc3M9ImJsb2NrIj4NCiAgICAgICAgPGRpdiBjbGFzcz0ibG9hZGVyIj48L2Rpdj4NCiAgICAgIDwvZGl2Pg0KDQogICAgICA8ZGl2IGlkPSJoZWFkZXIiIGNsYXNzPSJpbWdDZW50ZXIiPjwvZGl2Pg0KICAgICAgPGRpdiBpZD0iYm94Ij4NCiAgICAgICAgDQogICAgICAgIDx0YWJsZSBpZD0iY2xpZW50SW5mbyIgY2xhc3M9InZpc2libGUiPg0KICAgICAgICAgIDx0cj4NCiAgICAgICAgICAgIDx0ZCBjbGFzcz0idGRLZXkiPlZlcnNpb246PC90ZD4NCiAgICAgICAgICAgIDx0ZCBpZD0idmVyc2lvbiIgY2xhc3M9InRkVmFsIj4mbmJzcDs8L3RkPg0KICAgICAgICAgICAgPHRkIGNsYXNzPSJ0ZEtleSI+T1M6PC90ZD4NCiAgICAgICAgICAgIDx0ZCBpZD0ib3MiIGNsYXNzPSJ0ZFZhbCI+Jm5ic3A7PC90ZD4NCiAgICAgICAgICA8L3RyPg0KICAgICAgICAgIDx0cj4NCiAgICAgICAgICAgIDx0ZCBjbGFzcz0idGRLZXkiPlVVSUQ6PC90ZD4NCiAgICAgICAgICAgIDx0ZCBpZD0idXVpZCIgY2xhc3M9InRkVmFsIj4mbmJzcDs8L3RkPg0KICAgICAgICAgICAgPHRkIGNsYXNzPSJ0ZEtleSI+QXJjaDo8L3RkPg0KICAgICAgICAgICAgPHRkIGlkPSJhcmNoIiBjbGFzcz0idGRWYWwiPiZuYnNwOzwvdGQ+DQogICAgICAgICAgPC90cj4NCiAgICAgICAgICA8dHI+DQogICAgICAgICAgICA8dGQgY2xhc3M9InRkS2V5Ij5TdHJlYW1zOjwvdGQ+DQogICAgICAgICAgICA8dGQgaWQ9InN0cmVhbXMiIGNsYXNzPSJ0ZFZhbCI+Jm5ic3A7PC90ZD4NCiAgICAgICAgICAgIDx0ZCBjbGFzcz0idGRLZXkiPkRWUjo8L3RkPg0KICAgICAgICAgICAgPHRkIGlkPSJEVlIiIGNsYXNzPSJ0ZFZhbCI+Jm5ic3A7PC90ZD4NCiAgICAgICAgICA8L3RyPg0KICAgICAgICA8L3RhYmxlPg0KICAgICAgICANCiAgICAgICAgPGRpdiBpZD0iaGVhZGxpbmUiPg0KICAgICAgICAgIDxoMSBpZD0iaGVhZC10ZXh0IiBjbGFzcz0iY2VudGVyIj5Db25maWd1cmF0aW9uPC9oMT4gICAgICANCiAgICAgICAgPC9kaXY+DQogICAgICAgIDxwIGlkPSJlcnIiIGNsYXNzPSJlcnJvck1zZyBjZW50ZXIiPjwvcD4gICANCiAgICAgICAgPGRpdiBpZD0iY29udGVudCI+DQogICAgICAgICAgICANCiAgICAgICAgPC9kaXY+DQogICAgICAgIDxkaXYgaWQ9ImJveC1mb290ZXIiPg0KICAgICAgICAgIDxpbnB1dCBpZD0ibmV4dCIgY2xhc3M9IiIgdHlwZT0iYnV0dG9uIiBuYW1lPSJuZXh0IiB2YWx1ZT0iTmV4dCIgb25jbGljaz0iamF2YXNjcmlwdDogc2F2ZVdpemFyZCgpOyI+DQogICAgICAgIDwvZGl2Pg0KICAgICAgPC9kaXY+DQogICAgPC9ib2R5Pg0KPC9odG1sPg==" webUI["html/img/BC-QR.jpg"] = "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" - webUI["html/img/filter.png"] = "iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAAAXNSR0IArs4c6QAAAAlwSFlzAAAsSwAALEsBpT2WqQAABCRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IlhNUCBDb3JlIDUuNC4wIj4KICAgPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIgogICAgICAgICAgICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgICAgICAgICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyI+CiAgICAgICAgIDx0aWZmOlJlc29sdXRpb25Vbml0PjI8L3RpZmY6UmVzb2x1dGlvblVuaXQ+CiAgICAgICAgIDx0aWZmOkNvbXByZXNzaW9uPjU8L3RpZmY6Q29tcHJlc3Npb24+CiAgICAgICAgIDx0aWZmOlhSZXNvbHV0aW9uPjI4ODwvdGlmZjpYUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6T3JpZW50YXRpb24+MTwvdGlmZjpPcmllbnRhdGlvbj4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+Mjg4PC90aWZmOllSZXNvbHV0aW9uPgogICAgICAgICA8ZXhpZjpQaXhlbFhEaW1lbnNpb24+NTA8L2V4aWY6UGl4ZWxYRGltZW5zaW9uPgogICAgICAgICA8ZXhpZjpDb2xvclNwYWNlPjE8L2V4aWY6Q29sb3JTcGFjZT4KICAgICAgICAgPGV4aWY6UGl4ZWxZRGltZW5zaW9uPjUwPC9leGlmOlBpeGVsWURpbWVuc2lvbj4KICAgICAgICAgPGRjOnN1YmplY3Q+CiAgICAgICAgICAgIDxyZGY6QmFnLz4KICAgICAgICAgPC9kYzpzdWJqZWN0PgogICAgICAgICA8eG1wOk1vZGlmeURhdGU+MjAxOC0wNy0yOFQxOTowNzo2OTwveG1wOk1vZGlmeURhdGU+CiAgICAgICAgIDx4bXA6Q3JlYXRvclRvb2w+UGl4ZWxtYXRvciAzLjM8L3htcDpDcmVhdG9yVG9vbD4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgIDwvcmRmOlJERj4KPC94OnhtcG1ldGE+Cs038OQAAAOISURBVGgF5ZpLSBVRGMfvvfmqCKKiKCqKtE3SQ8haJJm1ctPCZYHrFhXtohcUBLVsU1BRBJKLXpsSKs1aCL1oUUhvMgIloodZKmLZ72+OzNVx7jzOXGfqg/89Z875zv/7f35n7px7vanUP2JptzyGhoYKmK8GW0EZmA/mgW7wHrwDN0BTOp0epPVtxBBnLdgIVoE5YBboBR2gDTTA/5DWn0FeDPaBz8CLdeF0EBR5jYRvKbgABoAXa8Opwit/CudK8NoLs4PPM8ZyBsNnB/jpsD7X0C8cjgDXnaQkqkEPCGMSuGWivxxzx8OQj6xtpHWuPhPloHfEMWzTD0HN2GQY2xuW2Lb+/Fh+VaIQPLE5meh+gmSxFYz+BjBogtjGscfiH26Z2GmbNNltVQAIpwDdP6ZNO2iRYqTpZGhfgWUaiMC2w1kCzkbALcqLvDVvUyK6MW9HFES0b8BvsFwXEZi4F+iBtykCcjtlqf0igr52VJ1eqiIgzzdlrRIZfWfJd3SD8ZbqHvkB4XSDpJNB9V0VcX/cT4Ys/zEzSuSj/3WxW9GpRD7ETpZ/QcOJ6LyfdHugitxNehbob9G7lo4PXWBmQhPqQ/fsDOeUfjqNCU1Csi+TQ5+2luzc3yaRr6elevQZwhZr4bomYam0U41yabYqov5hvSTMjlp6RyuiAarSTLPZmox5246+lVREx/isiuh6NxhUJwF2yEpCWu1bK8WEsjyRgCSa0XrVrjNra2mC7TWD5ilYAuJoA4jSlnppF5dVEU3g0ENTD4b3nsZiZsfGJuGqj8qY+CINGqP2GLZCJ+HjtpblxAJ9k3cPrLfGJrnVUaSCarxw0jFua1lOLNBerANx+byya6IkLM2uLZWpAl6/Mcc1EjvjKtLrJNLqI5HnjfQ+bsVeteb0g2y/t7hGvd7CNjenOL8OkJ40KtOdTF+Cl/nV6Mkf4gxocI9vZPYLLKs9iQrqRIACcM2IXGeSboYrg+rztY5ARaDJWUeo0W+sXudLTFhnApaAW6FkZy/+yuXasLoCrSfwVHAnW0+gK93YawKJMLUIAdNAKwhqnSxcYUpPKB6EBE2mg7VR///EX24jybTQerXnOC70FyVP3gjTPXPTQyaP8NFPNeJrCNTPP667JKOq6VNo/A2hes5ccUjmEmPmDoD5+FMgWCcA+3FG57QJP//kQ1PgGBIOToEDgUn+t4V/AJeGknwARIKLAAAAAElFTkSuQmCC" - webUI["html/img/logo_b_880x200.jpg"] = "/9j/4AAQSkZJRgABAQABLAEsAAD/4QDIRXhpZgAATU0AKgAAAAgABwESAAMAAAABAAEAAAEaAAUAAAABAAAAYgEbAAUAAAABAAAAagEoAAMAAAABAAIAAAExAAIAAAAPAAAAcgEyAAIAAAAUAAAAgodpAAQAAAABAAAAlgAAAAAAAAEsAAAAAQAAASwAAAABUGl4ZWxtYXRvciAzLjMAADIwMTk6MDg6MDIgMjA6MDg6MTQAAAOgAQADAAAAAQABAACgAgAEAAAAAQAAA3CgAwAEAAAAAQAAAMgAAAAA/+EJkGh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8APD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iWE1QIENvcmUgNS40LjAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcDpDcmVhdG9yVG9vbD0iUGl4ZWxtYXRvciAzLjMiIHhtcDpNb2RpZnlEYXRlPSIyMDE5LTA4LTAyVDIwOjA4OjE0Ii8+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPD94cGFja2V0IGVuZD0idyI/PgD/7QA4UGhvdG9zaG9wIDMuMAA4QklNBAQAAAAAAAA4QklNBCUAAAAAABDUHYzZjwCyBOmACZjs+EJ+/8AAEQgAyANwAwERAAIRAQMRAf/EAB8AAAEFAQEBAQEBAAAAAAAAAAABAgMEBQYHCAkKC//EALUQAAIBAwMCBAMFBQQEAAABfQECAwAEEQUSITFBBhNRYQcicRQygZGhCCNCscEVUtHwJDNicoIJChYXGBkaJSYnKCkqNDU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6g4SFhoeIiYqSk5SVlpeYmZqio6Slpqeoqaqys7S1tre4ubrCw8TFxsfIycrS09TV1tfY2drh4uPk5ebn6Onq8fLz9PX29/j5+v/EAB8BAAMBAQEBAQEBAQEAAAAAAAABAgMEBQYHCAkKC//EALURAAIBAgQEAwQHBQQEAAECdwABAgMRBAUhMQYSQVEHYXETIjKBCBRCkaGxwQkjM1LwFWJy0QoWJDThJfEXGBkaJicoKSo1Njc4OTpDREVGR0hJSlNUVVZXWFlaY2RlZmdoaWpzdHV2d3h5eoKDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uLj5OXm5+jp6vLz9PX29/j5+v/bAEMAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAf/bAEMBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAf/dAAQAbv/aAAwDAQACEQMRAD8A/iHoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKAP/9D+IegAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoA//0f4h6ACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgD//S/iHoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKAP/9P+IegAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoA//1P4h6ACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgDvPDXws+J3jPT31bwf8OfHnivSo7mSyfU/DXhDxBrunpeQpFLNaPe6Xp11bLcxRzwSSQNL5saTROyhZUNAHQf8M//AB4/6In8XP8Aw23jL/5TUAH/AAz/APHj/oifxc/8Nt4y/wDl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f/E3xn4o+IPjnxDLaafp8mveMPGet33iPxNrMlhpNpYaVZPqmtale3z2mmWNlp9s05hsrS2tkjhQA4ygAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgD//S/iHoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAczu+N7M2BgbmLYHoM9BnJxx1/FgBtABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAOLuwVWZiq/dUsSFz12joM4HQduc4FADaACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgD//0/4h6ACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgD//U/iHoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKAP/9X+IegAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoA//1v4h6ACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgD//X/iHoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKAP/9k=" webUI["html/img/logout.png"] = "iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAAAXNSR0IArs4c6QAAAAlwSFlzAAAsSwAALEsBpT2WqQAABCRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IlhNUCBDb3JlIDUuNC4wIj4KICAgPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIgogICAgICAgICAgICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgICAgICAgICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyI+CiAgICAgICAgIDx0aWZmOlJlc29sdXRpb25Vbml0PjI8L3RpZmY6UmVzb2x1dGlvblVuaXQ+CiAgICAgICAgIDx0aWZmOkNvbXByZXNzaW9uPjU8L3RpZmY6Q29tcHJlc3Npb24+CiAgICAgICAgIDx0aWZmOlhSZXNvbHV0aW9uPjI4ODwvdGlmZjpYUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6T3JpZW50YXRpb24+MTwvdGlmZjpPcmllbnRhdGlvbj4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+Mjg4PC90aWZmOllSZXNvbHV0aW9uPgogICAgICAgICA8ZXhpZjpQaXhlbFhEaW1lbnNpb24+NTA8L2V4aWY6UGl4ZWxYRGltZW5zaW9uPgogICAgICAgICA8ZXhpZjpDb2xvclNwYWNlPjE8L2V4aWY6Q29sb3JTcGFjZT4KICAgICAgICAgPGV4aWY6UGl4ZWxZRGltZW5zaW9uPjUwPC9leGlmOlBpeGVsWURpbWVuc2lvbj4KICAgICAgICAgPGRjOnN1YmplY3Q+CiAgICAgICAgICAgIDxyZGY6QmFnLz4KICAgICAgICAgPC9kYzpzdWJqZWN0PgogICAgICAgICA8eG1wOk1vZGlmeURhdGU+MjAxOC0xMC0xM1QxMToxMDoxODwveG1wOk1vZGlmeURhdGU+CiAgICAgICAgIDx4bXA6Q3JlYXRvclRvb2w+UGl4ZWxtYXRvciAzLjM8L3htcDpDcmVhdG9yVG9vbD4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgIDwvcmRmOlJERj4KPC94OnhtcG1ldGE+Cg27QeEAAANQSURBVGgF7Zk9aBRBGIZzSRSN8YdoCpEkghCCqK1o4g9IsBCCNmIniCAiWAhqI8G02qiIoqCCWggSEcFKEFPYpVAU8QdFUyiKRpRokBjP55OdZDLZvZnZ7N3Ngh887M7sN/O9797t7c5eTc3/8D8DxWKxGS5Ai//oAEYgvB4OwleQaAtAlp8ERG+Bp6Jei/wYQfRy6NfE67vhG0FtA/TBqK7c2A/bCGJ3wpAhOq4ZphGUroEHcYoT+sIygsgmOAu/EwQndYdhBHV1sB8+Jym19Lf6/faVIRuBG+GRRajtcPWMoKwFbtgUOh6vvBGEzYFj8MNRpEtaZY2gaAe8cVHmmXOc/K3QXIZv/+SUFFgJ96AS8ZwiZ6Ab6iZVzGCPiRbCKRiDasQHip6EdD/PDKyFvfAJQgg5kVfB/VoieT0MQojxE1G9UG/7otWS0A7pPkrb7DM/Ppcp+mAAM/bFGEmL4RL8gVDjI8JWOZ0bEjvhSahO0CXXsLMZWZYegREIMV4jaoHTJyNJJLfC7RCdoOm6sxGVyKAeeBegoU6l0XmLiXlwAqp1o4w7j3d1AwW9YdtnNrnQzkOXLddyfAPHv8Ey6ABpd8N88In2QqHwymfARC5mCrAH0i6qGDr9jk3fbNgFz8A1DkwIS7tDpSVwGdLcexIfPZhPHpf2wS+wRX9a/dPGUakLzBdwNgGJRlQBJtgMw5aJ3qr8TLYUmwVHwXXxZTUiwphvHYxDUnzPxIA5CdXa4E5SVa3fyUhkRtYqpSKbNYxpJiq+ncpDJar7GGlknvcl5mqM05BZH4Xl3iOLpLh7j7OR6MScSzAykplg20QIWA0PDSG+RuTdQVy8sNXP9DgK5N4jK9AvkRpfI4sYF/c2836mQl0nQ4zce66AfZFkTMqYl2DGaSMt/CYOHpsuaPco5bLUzUuMGkLHaQ+ovjwZUZrVdpAHRnnw/Bd5MrJCiY62t4x2+E2uBfkfRg95TdSkK8/LJ7JWF83+Nb5Ww0Zf+E3OviwXVMgT8dLwVRsKEd0A+uP8biMlH01MHAYVF/Oh2lCJenkDqpbUN9nPyzU91QnCRbyEPEXn1sQhxMv7tG1T7cW3rK/r44eVtxfxm6gwBh38zJqPJuUtXu3Z/wLwuBaBLgMkKwAAAABJRU5ErkJggg==" - webUI["html/img/mapping.png"] = "iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAAAXNSR0IArs4c6QAAAAlwSFlzAAAsSwAALEsBpT2WqQAABCRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IlhNUCBDb3JlIDUuNC4wIj4KICAgPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIgogICAgICAgICAgICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgICAgICAgICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyI+CiAgICAgICAgIDx0aWZmOlJlc29sdXRpb25Vbml0PjI8L3RpZmY6UmVzb2x1dGlvblVuaXQ+CiAgICAgICAgIDx0aWZmOkNvbXByZXNzaW9uPjU8L3RpZmY6Q29tcHJlc3Npb24+CiAgICAgICAgIDx0aWZmOlhSZXNvbHV0aW9uPjI4ODwvdGlmZjpYUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6T3JpZW50YXRpb24+MTwvdGlmZjpPcmllbnRhdGlvbj4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+Mjg4PC90aWZmOllSZXNvbHV0aW9uPgogICAgICAgICA8ZXhpZjpQaXhlbFhEaW1lbnNpb24+NTA8L2V4aWY6UGl4ZWxYRGltZW5zaW9uPgogICAgICAgICA8ZXhpZjpDb2xvclNwYWNlPjE8L2V4aWY6Q29sb3JTcGFjZT4KICAgICAgICAgPGV4aWY6UGl4ZWxZRGltZW5zaW9uPjUwPC9leGlmOlBpeGVsWURpbWVuc2lvbj4KICAgICAgICAgPGRjOnN1YmplY3Q+CiAgICAgICAgICAgIDxyZGY6QmFnLz4KICAgICAgICAgPC9kYzpzdWJqZWN0PgogICAgICAgICA8eG1wOk1vZGlmeURhdGU+MjAxOC0wOC0wMlQxMjowODo5NzwveG1wOk1vZGlmeURhdGU+CiAgICAgICAgIDx4bXA6Q3JlYXRvclRvb2w+UGl4ZWxtYXRvciAzLjM8L3htcDpDcmVhdG9yVG9vbD4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgIDwvcmRmOlJERj4KPC94OnhtcG1ldGE+CpRxQsEAAAJLSURBVGgF7VoxTgMxEMwBHWlAaeABVCEtBcoD+EBewCdCyQsQtLyAPCBvCBSRIBUPCF1ogqBJjlkrezGr6HTrO98lhy1Z9trr2VmvnbMNjUadUhzHLeQB8hw5LS3QOUbubvIf7X3kKXIZibgS51bCZdWgMT6D8nECgArkngagQN0B8dhbkblalVmLIyheCGUthhjuLBq77MihA0xTjHHBEBBOorHLjjghbNOg4Mg2RYO4hIiEiHiaAV5aSwf8hRgjZdHtTTTc2ZFXpZkY+hMx5k3IZYlr7jgudJHp2JElLaF0K1mirYn8nAWgQB3ibM59ERNCA52d6Nghv9isQiUtn0kURe92I9eBcYA6YZxym8dyDuwRuMw82gjQYQbsPdLDdNCROO0US3uEfp3usTZpjf5J2CNtNFwjl7FHvmBnCB5PCQkQoJudJtGvE23sJEFuI39rQArS7dskXK6nlwkAKiB1VxAxLcyUePAH8cQmlbEul4+UM8LkVjPc2ZHcaFUDBEeqjoC0HyIiZ6RqOUSk6ghI+xyRD9mRQTYfIktPylaX16rhzo48KE29QH8kxjxC/hFtZYiGe70OjWVMW7Dx32bA3iO7//iAC8DOPweZFQhH6O+CmkRvW2f28oV8owEoUHdMPPg70rFJZajTkqT7uZ3ObaHEuuHOjnCpsb8vlKUsur2JhruLA94Y5QEOjuSZPR9jQ0R8zGoezNpFhN5RtUm+/bpgaG1u0jd2OSLDTRopbZ/okxcrLUYKvKprbRfHhXr8m5PK/y1V/gWRKLfiNSmxEAAAAABJRU5ErkJggg==" - webUI["html/img/xmltv.png"] = "iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAAAXNSR0IArs4c6QAAAAlwSFlzAAAsSwAALEsBpT2WqQAABCRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IlhNUCBDb3JlIDUuNC4wIj4KICAgPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIgogICAgICAgICAgICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgICAgICAgICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyI+CiAgICAgICAgIDx0aWZmOlJlc29sdXRpb25Vbml0PjI8L3RpZmY6UmVzb2x1dGlvblVuaXQ+CiAgICAgICAgIDx0aWZmOkNvbXByZXNzaW9uPjU8L3RpZmY6Q29tcHJlc3Npb24+CiAgICAgICAgIDx0aWZmOlhSZXNvbHV0aW9uPjI4ODwvdGlmZjpYUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6T3JpZW50YXRpb24+MTwvdGlmZjpPcmllbnRhdGlvbj4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+Mjg4PC90aWZmOllSZXNvbHV0aW9uPgogICAgICAgICA8ZXhpZjpQaXhlbFhEaW1lbnNpb24+NTA8L2V4aWY6UGl4ZWxYRGltZW5zaW9uPgogICAgICAgICA8ZXhpZjpDb2xvclNwYWNlPjE8L2V4aWY6Q29sb3JTcGFjZT4KICAgICAgICAgPGV4aWY6UGl4ZWxZRGltZW5zaW9uPjUwPC9leGlmOlBpeGVsWURpbWVuc2lvbj4KICAgICAgICAgPGRjOnN1YmplY3Q+CiAgICAgICAgICAgIDxyZGY6QmFnLz4KICAgICAgICAgPC9kYzpzdWJqZWN0PgogICAgICAgICA8eG1wOk1vZGlmeURhdGU+MjAxOC0wNy0yOFQyMDowNzozMzwveG1wOk1vZGlmeURhdGU+CiAgICAgICAgIDx4bXA6Q3JlYXRvclRvb2w+UGl4ZWxtYXRvciAzLjM8L3htcDpDcmVhdG9yVG9vbD4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgIDwvcmRmOlJERj4KPC94OnhtcG1ldGE+Co6j9bsAAAGgSURBVGgF7VqxTsNADL0gYGEon8DOwsbAAH8BYmJn6cYIn8DC3h0+oixISFRiYYCJL0AwMMBAeK5w2rpV6uikxHfYknW98+vds18TK21DWGBlWR7CH+BfcEv2AzLP8HP42gLqkyUATuEp2PWEdQjF9ATs1zF/g29Mrxt+vVcUxR3xWxEktzFPJQmivsv8ZSI9DiQyVnxlIonwn6fpiczXpNuVVXH8O+a3Ys3y9NUyuf/NTTbEHZTjUlGSRzSiPhroUIENwB4AS/vS/susDwDhTpYBER9g7wHh5DWyibV9CiitCZbIafDEYUuJHQI3Nr/9ciWsjK6IFSWYhyvClbAyZqOIlYJG84jq7E1Ot97Zm+TinV1TrWwudk9EI3ebGFekzWprzspGEU2ySWCiOrs/s9dr7M/s9fVJJJrNXcsTsfaJc0WsKZINH+/sf1Jqvl1n1f2ZnStRN/pdq646XcSkIh9dkIg4s+IrE3nCpp8RG7f91ns+cCYR/LD4jcAZB42PN+A7/mcQ8ZxJhBYQvMJwBB/BKTFLVoLMC/wCfgyv7BesTKUC2LKM3wAAAABJRU5ErkJggg==" - webUI["html/js/configuration_ts.js"] = "Y2xhc3MgV2l6YXJkQ2F0ZWdvcnkgew0KICAgIGNvbnN0cnVjdG9yKCkgew0KICAgICAgICB0aGlzLkRvY3VtZW50SUQgPSAiY29udGVudCI7DQogICAgfQ0KICAgIGNyZWF0ZUNhdGVnb3J5SGVhZGxpbmUodmFsdWUpIHsNCiAgICAgICAgdmFyIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJINCIpOw0KICAgICAgICBlbGVtZW50LmlubmVySFRNTCA9IHZhbHVlOw0KICAgICAgICByZXR1cm4gZWxlbWVudDsNCiAgICB9DQp9DQpjbGFzcyBXaXphcmRJdGVtIGV4dGVuZHMgV2l6YXJkQ2F0ZWdvcnkgew0KICAgIGNvbnN0cnVjdG9yKGtleSwgaGVhZGxpbmUpIHsNCiAgICAgICAgc3VwZXIoKTsNCiAgICAgICAgdGhpcy5oZWFkbGluZSA9IGhlYWRsaW5lOw0KICAgICAgICB0aGlzLmtleSA9IGtleTsNCiAgICB9DQogICAgY3JlYXRlV2l6YXJkKCkgew0KICAgICAgICB2YXIgaGVhZGxpbmUgPSB0aGlzLmNyZWF0ZUNhdGVnb3J5SGVhZGxpbmUodGhpcy5oZWFkbGluZSk7DQogICAgICAgIHZhciBrZXkgPSB0aGlzLmtleTsNCiAgICAgICAgdmFyIGNvbnRlbnQgPSBuZXcgUG9wdXBDb250ZW50KCk7DQogICAgICAgIHZhciBkZXNjcmlwdGlvbjsNCiAgICAgICAgdmFyIGRvYyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHRoaXMuRG9jdW1lbnRJRCk7DQogICAgICAgIGRvYy5pbm5lckhUTUwgPSAiIjsNCiAgICAgICAgZG9jLmFwcGVuZENoaWxkKGhlYWRsaW5lKTsNCiAgICAgICAgc3dpdGNoIChrZXkpIHsNCiAgICAgICAgICAgIGNhc2UgInR1bmVyIjoNCiAgICAgICAgICAgICAgICB2YXIgdGV4dCA9IG5ldyBBcnJheSgpOw0KICAgICAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBuZXcgQXJyYXkoKTsNCiAgICAgICAgICAgICAgICBmb3IgKHZhciBpID0gMTsgaSA8PSAxMDA7IGkrKykgew0KICAgICAgICAgICAgICAgICAgICB0ZXh0LnB1c2goaSk7DQogICAgICAgICAgICAgICAgICAgIHZhbHVlcy5wdXNoKGkpOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCAiMSIsIGtleSk7DQogICAgICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgiY2xhc3MiLCAid2l6YXJkIik7DQogICAgICAgICAgICAgICAgc2VsZWN0LmlkID0ga2V5Ow0KICAgICAgICAgICAgICAgIGRvYy5hcHBlbmRDaGlsZChzZWxlY3QpOw0KICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uID0gInt7LndpemFyZC50dW5lci5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImVwZ1NvdXJjZSI6DQogICAgICAgICAgICAgICAgdmFyIHRleHQgPSBbIlBNUyIsICJYRVBHIl07DQogICAgICAgICAgICAgICAgdmFyIHZhbHVlcyA9IFsiUE1TIiwgIlhFUEciXTsNCiAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCAiWEVQRyIsIGtleSk7DQogICAgICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgiY2xhc3MiLCAid2l6YXJkIik7DQogICAgICAgICAgICAgICAgc2VsZWN0LmlkID0ga2V5Ow0KICAgICAgICAgICAgICAgIGRvYy5hcHBlbmRDaGlsZChzZWxlY3QpOw0KICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uID0gInt7LndpemFyZC5lcGdTb3VyY2UuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJtM3UiOg0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBrZXksICIiKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LndpemFyZC5tM3UucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgiY2xhc3MiLCAid2l6YXJkIik7DQogICAgICAgICAgICAgICAgaW5wdXQuaWQgPSBrZXk7DQogICAgICAgICAgICAgICAgZG9jLmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbiA9ICJ7ey53aXphcmQubTN1LmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAieG1sdHYiOg0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBrZXksICIiKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LndpemFyZC54bWx0di5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJjbGFzcyIsICJ3aXphcmQiKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5pZCA9IGtleTsNCiAgICAgICAgICAgICAgICBkb2MuYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uID0gInt7LndpemFyZC54bWx0di5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICAgICAgY29uc29sZS5sb2coa2V5KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgfQ0KICAgICAgICB2YXIgcHJlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiUFJFIik7DQogICAgICAgIHByZS5pbm5lckhUTUwgPSBkZXNjcmlwdGlvbjsNCiAgICAgICAgZG9jLmFwcGVuZENoaWxkKHByZSk7DQogICAgICAgIGNvbnNvbGUubG9nKGhlYWRsaW5lLCBrZXkpOw0KICAgIH0NCn0NCmZ1bmN0aW9uIHJlYWR5Rm9yQ29uZmlndXJhdGlvbih3aXphcmQpIHsNCiAgICB2YXIgc2VydmVyID0gbmV3IFNlcnZlcigiZ2V0U2VydmVyQ29uZmlnIik7DQogICAgc2VydmVyLnJlcXVlc3QobmV3IE9iamVjdCgpKTsNCiAgICBzaG93RWxlbWVudCgibG9hZGluZyIsIGZhbHNlKTsNCiAgICBjb25maWd1cmF0aW9uV2l6YXJkW3dpemFyZF0uY3JlYXRlV2l6YXJkKCk7DQp9DQpmdW5jdGlvbiBzYXZlV2l6YXJkKCkgew0KICAgIHZhciBjbWQgPSAic2F2ZVdpemFyZCI7DQogICAgdmFyIGRpdiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb250ZW50Iik7DQogICAgdmFyIGNvbmZpZyA9IGRpdi5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCJ3aXphcmQiKTsNCiAgICB2YXIgd2l6YXJkID0gbmV3IE9iamVjdCgpOw0KICAgIGZvciAodmFyIGkgPSAwOyBpIDwgY29uZmlnLmxlbmd0aDsgaSsrKSB7DQogICAgICAgIHZhciBuYW1lOw0KICAgICAgICB2YXIgdmFsdWU7DQogICAgICAgIHN3aXRjaCAoY29uZmlnW2ldLnRhZ05hbWUpIHsNCiAgICAgICAgICAgIGNhc2UgIlNFTEVDVCI6DQogICAgICAgICAgICAgICAgbmFtZSA9IGNvbmZpZ1tpXS5uYW1lOw0KICAgICAgICAgICAgICAgIHZhbHVlID0gY29uZmlnW2ldLnZhbHVlOw0KICAgICAgICAgICAgICAgIC8vIFdlbm4gZGVyIFdlcnQgZWluZSBaYWhsIGlzdCwgd2lyZCBkaWVzZXIgYWxzIFphaGwgZ2VzcGVpY2hlcnQNCiAgICAgICAgICAgICAgICBpZiAoaXNOYU4odmFsdWUpKSB7DQogICAgICAgICAgICAgICAgICAgIHdpemFyZFtuYW1lXSA9IHZhbHVlOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICAgICAgd2l6YXJkW25hbWVdID0gcGFyc2VJbnQodmFsdWUpOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgIklOUFVUIjoNCiAgICAgICAgICAgICAgICBzd2l0Y2ggKGNvbmZpZ1tpXS50eXBlKSB7DQogICAgICAgICAgICAgICAgICAgIGNhc2UgInRleHQiOg0KICAgICAgICAgICAgICAgICAgICAgICAgbmFtZSA9IGNvbmZpZ1tpXS5uYW1lOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSBjb25maWdbaV0udmFsdWU7DQogICAgICAgICAgICAgICAgICAgICAgICBpZiAodmFsdWUubGVuZ3RoID09IDApIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgbXNnID0gbmFtZS50b1VwcGVyQ2FzZSgpICsgIjogIiArICJ7ey5hbGVydC5taXNzaW5nSW5wdXR9fSI7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgYWxlcnQobXNnKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICB3aXphcmRbbmFtZV0gPSB2YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICAgICAgLy8gY29kZS4uLg0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICB9DQogICAgfQ0KICAgIHZhciBkYXRhID0gbmV3IE9iamVjdCgpOw0KICAgIGRhdGFbIndpemFyZCJdID0gd2l6YXJkOw0KICAgIHZhciBzZXJ2ZXIgPSBuZXcgU2VydmVyKGNtZCk7DQogICAgc2VydmVyLnJlcXVlc3QoZGF0YSk7DQogICAgY29uc29sZS5sb2coZGF0YSk7DQp9DQovLyBXaXphcmQNCnZhciBjb25maWd1cmF0aW9uV2l6YXJkID0gbmV3IEFycmF5KCk7DQpjb25maWd1cmF0aW9uV2l6YXJkLnB1c2gobmV3IFdpemFyZEl0ZW0oInR1bmVyIiwgInt7LndpemFyZC50dW5lci50aXRsZX19IikpOw0KY29uZmlndXJhdGlvbldpemFyZC5wdXNoKG5ldyBXaXphcmRJdGVtKCJlcGdTb3VyY2UiLCAie3sud2l6YXJkLmVwZ1NvdXJjZS50aXRsZX19IikpOw0KY29uZmlndXJhdGlvbldpemFyZC5wdXNoKG5ldyBXaXphcmRJdGVtKCJtM3UiLCAie3sud2l6YXJkLm0zdS50aXRsZX19IikpOw0KY29uZmlndXJhdGlvbldpemFyZC5wdXNoKG5ldyBXaXphcmRJdGVtKCJ4bWx0diIsICJ7ey53aXphcmQueG1sdHYudGl0bGV9fSIpKTsNCg==" webUI["html/img/x_ transparent.png"] = "iVBORw0KGgoAAAANSUhEUgAAAQAAAAEACAYAAABccqhmAAAAAXNSR0IArs4c6QAAAAlwSFlzAAAWJQAAFiUBSVIk8AAAA6ppVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IlhNUCBDb3JlIDUuNC4wIj4KICAgPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIgogICAgICAgICAgICB4bWxuczp0aWZmPSJodHRwOi8vbnMuYWRvYmUuY29tL3RpZmYvMS4wLyIKICAgICAgICAgICAgeG1sbnM6ZXhpZj0iaHR0cDovL25zLmFkb2JlLmNvbS9leGlmLzEuMC8iPgogICAgICAgICA8eG1wOk1vZGlmeURhdGU+MjAxOC0xMS0xNVQxNzoxMTo3NjwveG1wOk1vZGlmeURhdGU+CiAgICAgICAgIDx4bXA6Q3JlYXRvclRvb2w+UGl4ZWxtYXRvciAzLjM8L3htcDpDcmVhdG9yVG9vbD4KICAgICAgICAgPHRpZmY6T3JpZW50YXRpb24+MTwvdGlmZjpPcmllbnRhdGlvbj4KICAgICAgICAgPHRpZmY6Q29tcHJlc3Npb24+NTwvdGlmZjpDb21wcmVzc2lvbj4KICAgICAgICAgPHRpZmY6UmVzb2x1dGlvblVuaXQ+MjwvdGlmZjpSZXNvbHV0aW9uVW5pdD4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+MTQ0PC90aWZmOllSZXNvbHV0aW9uPgogICAgICAgICA8dGlmZjpYUmVzb2x1dGlvbj4xNDQ8L3RpZmY6WFJlc29sdXRpb24+CiAgICAgICAgIDxleGlmOlBpeGVsWERpbWVuc2lvbj4yNTY8L2V4aWY6UGl4ZWxYRGltZW5zaW9uPgogICAgICAgICA8ZXhpZjpDb2xvclNwYWNlPjE8L2V4aWY6Q29sb3JTcGFjZT4KICAgICAgICAgPGV4aWY6UGl4ZWxZRGltZW5zaW9uPjI1NjwvZXhpZjpQaXhlbFlEaW1lbnNpb24+CiAgICAgIDwvcmRmOkRlc2NyaXB0aW9uPgogICA8L3JkZjpSREY+CjwveDp4bXBtZXRhPgoeXQb1AAAaJElEQVR4Ae2dCZhcVZXHz+1KSFiGkISkqyIoOgI68EkgOBNkEcQRlIFRZDGABAQEhInGbxw+RUZRNhWRLawDYR0GHAaHUVkGvwGURUcgwIiAOGxjV3UHAslHQrbuM/9TlQ6d7qruWt527/u/7+uuqvvucu7vvnveuffde54IDxIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARLwiIDzQtayHi0q23shaydCOnlISu7nnWThRdrFOkPWyCleyNqJkF1yjhTd8k6yiDvtuLgLiCR/lVnIZ14keWU7k2Xyuu4oU92r2RazQ+nWypXI4W86zCXbyZ28KBvJ97MtpEhX1gWsyleS08TJU17I2omQKpvLarmqkywyn7ZHPw9rLvTOvwbX6xEyxS3Nenv4oQCcWwmQc/D3dtaBdiyfyv5S1mM7zieLGSzWEsS6KIuiRSzTGTD9H404z1iy80MBWNVL7hn8nx8LhaxlqnKBvKbvyppYHctTM/0nd5xPljNwcrcUs2/6DyL0RwGYxDOcjR3vGBQ+4M8tMElmdQ3n6NGjYPofGE6F6tTESRmm/1xxTuuczWSQH08BhqJbqlNkuTyJoK2GBgf53S6mkrvB+7qZ6b9Gfod6hHv3dzKAGbX9pNvd51N7+WUBGNlJbgm07FH4G/AJdFuyqlwotXFzW8kzk2itXAFZwu38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" - webUI["html/js/menu_ts.js"] = "Y2xhc3MgTWFpbk1lbnUgew0KICAgIGNvbnN0cnVjdG9yKCkgew0KICAgICAgICB0aGlzLkRvY3VtZW50SUQgPSAibWFpbi1tZW51IjsNCiAgICAgICAgdGhpcy5IVE1MVGFnID0gIkxJIjsNCiAgICAgICAgdGhpcy5JbWFnZVBhdGggPSAiaW1nLyI7DQogICAgfQ0KICAgIGNyZWF0ZUlNRyhzcmMpIHsNCiAgICAgICAgbGV0IGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJJTUciKTsNCiAgICAgICAgZWxlbWVudC5zZXRBdHRyaWJ1dGUoInNyYyIsIHRoaXMuSW1hZ2VQYXRoICsgc3JjKTsNCiAgICAgICAgcmV0dXJuIGVsZW1lbnQ7DQogICAgfQ0KICAgIGNyZWF0ZVZhbHVlKHZhbHVlKSB7DQogICAgICAgIGxldCBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiUCIpOw0KICAgICAgICBlbGVtZW50LmlubmVySFRNTCA9IHZhbHVlOw0KICAgICAgICByZXR1cm4gZWxlbWVudDsNCiAgICB9DQp9DQpjbGFzcyBNYWluTWVudUl0ZW0gZXh0ZW5kcyBNYWluTWVudSB7DQogICAgY29uc3RydWN0b3IobWVudUtleSwgdmFsdWUsIGltYWdlLCBoZWFkbGluZSkgew0KICAgICAgICBzdXBlcigpOw0KICAgICAgICB0aGlzLm1lbnVLZXkgPSBtZW51S2V5Ow0KICAgICAgICB0aGlzLnZhbHVlID0gdmFsdWU7DQogICAgICAgIHRoaXMuaW1nU3JjID0gaW1hZ2U7DQogICAgICAgIHRoaXMuaGVhZGxpbmUgPSBoZWFkbGluZTsNCiAgICB9DQogICAgY3JlYXRlSXRlbSgpIHsNCiAgICAgICAgbGV0IGl0ZW0gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJMSSIpOw0KICAgICAgICBpdGVtLnNldEF0dHJpYnV0ZSgib25jbGljayIsICJqYXZhc2NyaXB0OiBvcGVuVGhpc01lbnUodGhpcykiKTsNCiAgICAgICAgaXRlbS5zZXRBdHRyaWJ1dGUoImlkIiwgdGhpcy5pZCk7DQogICAgICAgIGxldCBpbWcgPSB0aGlzLmNyZWF0ZUlNRyh0aGlzLmltZ1NyYyk7DQogICAgICAgIGxldCB2YWx1ZSA9IHRoaXMuY3JlYXRlVmFsdWUodGhpcy52YWx1ZSk7DQogICAgICAgIGl0ZW0uYXBwZW5kQ2hpbGQoaW1nKTsNCiAgICAgICAgaXRlbS5hcHBlbmRDaGlsZCh2YWx1ZSk7DQogICAgICAgIGxldCBkb2MgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCh0aGlzLkRvY3VtZW50SUQpOw0KICAgICAgICBkb2MuYXBwZW5kQ2hpbGQoaXRlbSk7DQogICAgICAgIHN3aXRjaCAodGhpcy5tZW51S2V5KSB7DQogICAgICAgICAgICBjYXNlICJwbGF5bGlzdCI6DQogICAgICAgICAgICAgICAgdGhpcy50YWJsZUhlYWRlciA9IFsie3sucGxheWxpc3QudGFibGUucGxheWxpc3R9fSIsICJ7ey5wbGF5bGlzdC50YWJsZS50dW5lcn19IiwgInt7LnBsYXlsaXN0LnRhYmxlLmxhc3RVcGRhdGV9fSIsICJ7ey5wbGF5bGlzdC50YWJsZS5hdmFpbGFiaWxpdHl9fSAlIiwgInt7LnBsYXlsaXN0LnRhYmxlLnR5cGV9fSIsICJ7ey5wbGF5bGlzdC50YWJsZS5zdHJlYW1zfX0iLCAie3sucGxheWxpc3QudGFibGUuZ3JvdXBUaXRsZX19ICUiLCAie3sucGxheWxpc3QudGFibGUudHZnSUR9fSAlIiwgInt7LnBsYXlsaXN0LnRhYmxlLnVuaXF1ZUlEfX0gJSJdOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAieG1sdHYiOg0KICAgICAgICAgICAgICAgIHRoaXMudGFibGVIZWFkZXIgPSBbInt7LnhtbHR2LnRhYmxlLmd1aWRlfX0iLCAie3sueG1sdHYudGFibGUubGFzdFVwZGF0ZX19IiwgInt7LnhtbHR2LnRhYmxlLmF2YWlsYWJpbGl0eX19ICUiLCAie3sueG1sdHYudGFibGUuY2hhbm5lbHN9fSIsICJ7ey54bWx0di50YWJsZS5wcm9ncmFtc319Il07DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJmaWx0ZXIiOg0KICAgICAgICAgICAgICAgIHRoaXMudGFibGVIZWFkZXIgPSBbInt7LmZpbHRlci50YWJsZS5uYW1lfX0iLCAie3suZmlsdGVyLnRhYmxlLnR5cGV9fSIsICJ7ey5maWx0ZXIudGFibGUuZmlsdGVyfX0iXTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInVzZXJzIjoNCiAgICAgICAgICAgICAgICB0aGlzLnRhYmxlSGVhZGVyID0gWyJ7ey51c2Vycy50YWJsZS51c2VybmFtZX19IiwgInt7LnVzZXJzLnRhYmxlLnBhc3N3b3JkfX0iLCAie3sudXNlcnMudGFibGUud2VifX0iLCAie3sudXNlcnMudGFibGUucG1zfX0iLCAie3sudXNlcnMudGFibGUubTN1fX0iLCAie3sudXNlcnMudGFibGUueG1sfX0iLCAie3sudXNlcnMudGFibGUuYXBpfX0iXTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgIm1hcHBpbmciOg0KICAgICAgICAgICAgICAgIHRoaXMudGFibGVIZWFkZXIgPSBbIkJVTEsiLCAie3subWFwcGluZy50YWJsZS5jaE5vfX0iLCAie3subWFwcGluZy50YWJsZS5sb2dvfX0iLCAie3subWFwcGluZy50YWJsZS5jaGFubmVsTmFtZX19IiwgInt7Lm1hcHBpbmcudGFibGUucGxheWxpc3R9fSIsICJ7ey5tYXBwaW5nLnRhYmxlLmdyb3VwVGl0bGV9fSIsICJ7ey5tYXBwaW5nLnRhYmxlLnhtbHR2RmlsZX19IiwgInt7Lm1hcHBpbmcudGFibGUueG1sdHZJRH19IiwgInt7Lm1hcHBpbmcudGFibGUudGltZXNoaWZ0fX0iXTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgfQ0KICAgICAgICAvL2NvbnNvbGUubG9nKHRoaXMubWVudUtleSwgdGhpcy50YWJsZUhlYWRlcik7DQogICAgfQ0KfQ0KY2xhc3MgQ29udGVudCB7DQogICAgY29uc3RydWN0b3IoKSB7DQogICAgICAgIHRoaXMuRG9jdW1lbnRJRCA9ICJjb250ZW50IjsNCiAgICAgICAgdGhpcy5UYWJsZUlEID0gImNvbnRlbnRfdGFibGUiOw0KICAgICAgICB0aGlzLmhlYWRlckNsYXNzID0gImNvbnRlbnRfdGFibGVfaGVhZGVyIjsNCiAgICAgICAgdGhpcy5pbnRlcmFjdGlvbklEID0gImNvbnRlbnQtaW50ZXJhY3Rpb24iOw0KICAgIH0NCiAgICBjcmVhdGVIZWFkbGluZSh2YWx1ZSkgew0KICAgICAgICBsZXQgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIkgzIik7DQogICAgICAgIGVsZW1lbnQuaW5uZXJIVE1MID0gdmFsdWU7DQogICAgICAgIHJldHVybiBlbGVtZW50Ow0KICAgIH0NCiAgICBjcmVhdGVIUigpIHsNCiAgICAgICAgcmV0dXJuIGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIkhSIik7DQogICAgfQ0KICAgIGNyZWF0ZUludGVyYWN0aW9uKCkgew0KICAgICAgICBsZXQgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIkRJViIpOw0KICAgICAgICBlbGVtZW50LnNldEF0dHJpYnV0ZSgiaWQiLCB0aGlzLmludGVyYWN0aW9uSUQpOw0KICAgICAgICByZXR1cm4gZWxlbWVudDsNCiAgICB9DQogICAgY3JlYXRlRElWKCkgew0KICAgICAgICBsZXQgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIkRJViIpOw0KICAgICAgICBlbGVtZW50LmlkID0gdGhpcy5EaXZJRDsNCiAgICAgICAgcmV0dXJuIGVsZW1lbnQ7DQogICAgfQ0KICAgIGNyZWF0ZVRBQkxFKCkgew0KICAgICAgICBsZXQgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlRBQkxFIik7DQogICAgICAgIGVsZW1lbnQuaWQgPSB0aGlzLlRhYmxlSUQ7DQogICAgICAgIHJldHVybiBlbGVtZW50Ow0KICAgIH0NCiAgICBjcmVhdGVUYWJsZVJvdygpIHsNCiAgICAgICAgbGV0IGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJUUiIpOw0KICAgICAgICBlbGVtZW50LmNsYXNzTmFtZSA9IHRoaXMuaGVhZGVyQ2xhc3M7DQogICAgICAgIHJldHVybiBlbGVtZW50Ow0KICAgIH0NCiAgICBjcmVhdGVUYWJsZUNvbnRlbnQobWVudUtleSkgew0KICAgICAgICBsZXQgZGF0YSA9IHt9Ow0KICAgICAgICBsZXQgcm93cyA9IFtdOw0KICAgICAgICBsZXQgZmlsZVR5cGVzID0gW107DQogICAgICAgIHN3aXRjaCAobWVudUtleSkgew0KICAgICAgICAgICAgY2FzZSAicGxheWxpc3QiOg0KICAgICAgICAgICAgICAgIGZpbGVUeXBlcyA9IFsibTN1IiwgImhkaHIiXTsNCiAgICAgICAgICAgICAgICBmaWxlVHlwZXMuZm9yRWFjaChmaWxlVHlwZSA9PiB7DQogICAgICAgICAgICAgICAgICAgIGRhdGEgPSBTRVJWRVJbInNldHRpbmdzIl1bImZpbGVzIl1bZmlsZVR5cGVdOw0KICAgICAgICAgICAgICAgICAgICB2YXIga2V5cyA9IGdldE9iaktleXMoZGF0YSk7DQogICAgICAgICAgICAgICAgICAgIGtleXMuZm9yRWFjaChrZXkgPT4gew0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVFIiKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmlkID0ga2V5Ow0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgiJyArIGZpbGVUeXBlICsgJyIsIHRoaXMpJyk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsibmFtZSJdOw0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChTRVJWRVJbInNldHRpbmdzIl1bImJ1ZmZlciJdICE9ICItIikgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bInR1bmVyIl07DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gIi0iOw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bImxhc3QudXBkYXRlIl07DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsicHJvdmlkZXIuYXZhaWxhYmlsaXR5Il07DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsidHlwZSJdLnRvVXBwZXJDYXNlKCk7DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsiY29tcGF0aWJpbGl0eSJdWyJzdHJlYW1zIl07DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsiY29tcGF0aWJpbGl0eSJdWyJncm91cC50aXRsZSJdOw0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bImNvbXBhdGliaWxpdHkiXVsidHZnLmlkIl07DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsiY29tcGF0aWJpbGl0eSJdWyJzdHJlYW0uaWQiXTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHJvd3MucHVzaCh0cik7DQogICAgICAgICAgICAgICAgICAgIH0pOw0KICAgICAgICAgICAgICAgIH0pOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiZmlsdGVyIjoNCiAgICAgICAgICAgICAgICBkZWxldGUgU0VSVkVSWyJzZXR0aW5ncyJdWyJmaWx0ZXIiXVstMV07DQogICAgICAgICAgICAgICAgZGF0YSA9IFNFUlZFUlsic2V0dGluZ3MiXVsiZmlsdGVyIl07DQogICAgICAgICAgICAgICAgdmFyIGtleXMgPSBnZXRPYmpLZXlzKGRhdGEpOw0KICAgICAgICAgICAgICAgIGtleXMuZm9yRWFjaChrZXkgPT4gew0KICAgICAgICAgICAgICAgICAgICB2YXIgdHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJUUiIpOw0KICAgICAgICAgICAgICAgICAgICB0ci5pZCA9IGtleTsNCiAgICAgICAgICAgICAgICAgICAgdHIuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgiJyArIGRhdGFba2V5XVsidHlwZSJdICsgJyIsIHRoaXMpJyk7DQogICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJuYW1lIl07DQogICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgIHN3aXRjaCAoZGF0YVtrZXldWyJ0eXBlIl0pIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgImN1c3RvbS1maWx0ZXIiOg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSAie3suZmlsdGVyLmN1c3RvbX19IjsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgImdyb3VwLXRpdGxlIjoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gInt7LmZpbHRlci5ncm91cH19IjsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsiZmlsdGVyIl07DQogICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgcm93cy5wdXNoKHRyKTsNCiAgICAgICAgICAgICAgICB9KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInhtbHR2IjoNCiAgICAgICAgICAgICAgICBmaWxlVHlwZXMgPSBuZXcgQXJyYXkoInhtbHR2Iik7DQogICAgICAgICAgICAgICAgZmlsZVR5cGVzLmZvckVhY2goZmlsZVR5cGUgPT4gew0KICAgICAgICAgICAgICAgICAgICBkYXRhID0gU0VSVkVSWyJzZXR0aW5ncyJdWyJmaWxlcyJdW2ZpbGVUeXBlXTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGtleXMgPSBnZXRPYmpLZXlzKGRhdGEpOw0KICAgICAgICAgICAgICAgICAgICBrZXlzLmZvckVhY2goa2V5ID0+IHsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciB0ciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlRSIik7DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5pZCA9IGtleTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoIicgKyBmaWxlVHlwZSArICciLCB0aGlzKScpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bIm5hbWUiXTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJsYXN0LnVwZGF0ZSJdOw0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bInByb3ZpZGVyLmF2YWlsYWJpbGl0eSJdOw0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bImNvbXBhdGliaWxpdHkiXVsieG1sdHYuY2hhbm5lbHMiXTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJjb21wYXRpYmlsaXR5Il1bInhtbHR2LnByb2dyYW1zIl07DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICByb3dzLnB1c2godHIpOw0KICAgICAgICAgICAgICAgICAgICB9KTsNCiAgICAgICAgICAgICAgICB9KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInVzZXJzIjoNCiAgICAgICAgICAgICAgICBmaWxlVHlwZXMgPSBuZXcgQXJyYXkoInVzZXJzIik7DQogICAgICAgICAgICAgICAgZmlsZVR5cGVzLmZvckVhY2goZmlsZVR5cGUgPT4gew0KICAgICAgICAgICAgICAgICAgICBkYXRhID0gU0VSVkVSW2ZpbGVUeXBlXTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGtleXMgPSBnZXRPYmpLZXlzKGRhdGEpOw0KICAgICAgICAgICAgICAgICAgICBrZXlzLmZvckVhY2goa2V5ID0+IHsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciB0ciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlRSIik7DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5pZCA9IGtleTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoIicgKyBmaWxlVHlwZSArICciLCB0aGlzKScpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bImRhdGEiXVsidXNlcm5hbWUiXTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gIioqKioqKiI7DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGRhdGFba2V5XVsiZGF0YSJdWyJhdXRoZW50aWNhdGlvbi53ZWIiXSA9PSB0cnVlKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9ICLinJMiOw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9ICItIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgICAgICBpZiAoZGF0YVtrZXldWyJkYXRhIl1bImF1dGhlbnRpY2F0aW9uLnBtcyJdID09IHRydWUpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gIuKckyI7DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gIi0iOw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChkYXRhW2tleV1bImRhdGEiXVsiYXV0aGVudGljYXRpb24ubTN1Il0gPT0gdHJ1ZSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSAi4pyTIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSAiLSI7DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGRhdGFba2V5XVsiZGF0YSJdWyJhdXRoZW50aWNhdGlvbi54bWwiXSA9PSB0cnVlKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9ICLinJMiOw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9ICItIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgICAgICBpZiAoZGF0YVtrZXldWyJkYXRhIl1bImF1dGhlbnRpY2F0aW9uLmFwaSJdID09IHRydWUpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gIuKckyI7DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gIi0iOw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgcm93cy5wdXNoKHRyKTsNCiAgICAgICAgICAgICAgICAgICAgfSk7DQogICAgICAgICAgICAgICAgfSk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJtYXBwaW5nIjoNCiAgICAgICAgICAgICAgICBCVUxLX0VESVQgPSBmYWxzZTsNCiAgICAgICAgICAgICAgICBjcmVhdGVTZWFyY2hPYmooKTsNCiAgICAgICAgICAgICAgICBjaGVja1VuZG8oImVwZ01hcHBpbmciKTsNCiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZygiTUFQUElORyIpOw0KICAgICAgICAgICAgICAgIGRhdGEgPSBTRVJWRVJbInhlcGciXVsiZXBnTWFwcGluZyJdOw0KICAgICAgICAgICAgICAgIHZhciBrZXlzID0gZ2V0T2JqS2V5cyhkYXRhKTsNCiAgICAgICAgICAgICAgICBrZXlzLmZvckVhY2goa2V5ID0+IHsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVFIiKTsNCiAgICAgICAgICAgICAgICAgICAgdHIuaWQgPSBrZXk7DQogICAgICAgICAgICAgICAgICAgIC8vdHIuc2V0QXR0cmlidXRlKCdvbmNvbnRleHRtZW51JywgJ2phdmFzY3JpcHQ6IHJpZ2h0Q2xpY2sodGhpcyknKQ0KICAgICAgICAgICAgICAgICAgICBzd2l0Y2ggKGRhdGFba2V5XVsieC1hY3RpdmUiXSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSB0cnVlOg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyLmNsYXNzTmFtZSA9ICJhY3RpdmVFUEciOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSBmYWxzZToNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ci5jbGFzc05hbWUgPSAibm90QWN0aXZlRVBHIjsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAvLyBCdWxrDQogICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIkJVTEsiOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZmFsc2U7DQogICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgLy8gS2FuYWxudW1tZXINCiAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiSU5QVVRDSEFOTkVMIjsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsieC1jaGFubmVsSUQiXTsNCiAgICAgICAgICAgICAgICAgICAgLy90ZC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogY2hhbmdlQ2hhbm5lbE51bWJlcigiJyArIGtleSArICciLCB0aGlzKScpDQogICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgLy8gTG9nbw0KICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJJTUciOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmltYWdlVVJMID0gZGF0YVtrZXldWyJ0dmctbG9nbyJdOw0KICAgICAgICAgICAgICAgICAgICB2YXIgdGQgPSBjZWxsLmNyZWF0ZUNlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgdGQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgibWFwcGluZyIsIHRoaXMpJyk7DQogICAgICAgICAgICAgICAgICAgIHRkLmlkID0ga2V5Ow0KICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZCh0ZCk7DQogICAgICAgICAgICAgICAgICAgIC8vIEthbmFsbmFtZQ0KICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jbGFzc05hbWUgPSBkYXRhW2tleV1bIngtY2F0ZWdvcnkiXTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsieC1uYW1lIl07DQogICAgICAgICAgICAgICAgICAgIHZhciB0ZCA9IGNlbGwuY3JlYXRlQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICB0ZC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJtYXBwaW5nIiwgdGhpcyknKTsNCiAgICAgICAgICAgICAgICAgICAgdGQuaWQgPSBrZXk7DQogICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKHRkKTsNCiAgICAgICAgICAgICAgICAgICAgLy8gUGxheWxpc3QNCiAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgIC8vY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsiX2ZpbGUubTN1Lm5hbWUiXSANCiAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGdldFZhbHVlRnJvbVByb3ZpZGVyRmlsZShkYXRhW2tleV1bIl9maWxlLm0zdS5pZCJdLCAibTN1IiwgIm5hbWUiKTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHRkID0gY2VsbC5jcmVhdGVDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgIHRkLnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoIm1hcHBpbmciLCB0aGlzKScpOw0KICAgICAgICAgICAgICAgICAgICB0ZC5pZCA9IGtleTsNCiAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQodGQpOw0KICAgICAgICAgICAgICAgICAgICAvLyBHcnVwcGUgKGdyb3VwLXRpdGxlKQ0KICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsieC1ncm91cC10aXRsZSJdOw0KICAgICAgICAgICAgICAgICAgICB2YXIgdGQgPSBjZWxsLmNyZWF0ZUNlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgdGQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgibWFwcGluZyIsIHRoaXMpJyk7DQogICAgICAgICAgICAgICAgICAgIHRkLmlkID0ga2V5Ow0KICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZCh0ZCk7DQogICAgICAgICAgICAgICAgICAgIC8vIFhNTFRWIERhdGVpDQogICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICBpZiAoZGF0YVtrZXldWyJ4LXhtbHR2LWZpbGUiXSAhPSAiLSIpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBnZXRWYWx1ZUZyb21Qcm92aWRlckZpbGUoZGF0YVtrZXldWyJ4LXhtbHR2LWZpbGUiXSwgInhtbHR2IiwgIm5hbWUiKTsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bIngteG1sdHYtZmlsZSJdOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIHZhciB0ZCA9IGNlbGwuY3JlYXRlQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICB0ZC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJtYXBwaW5nIiwgdGhpcyknKTsNCiAgICAgICAgICAgICAgICAgICAgdGQuaWQgPSBrZXk7DQogICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKHRkKTsNCiAgICAgICAgICAgICAgICAgICAgLy8gWE1MVFYgS2FuYWwNCiAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgIC8vdmFyIHZhbHVlID0gc3RyLnN1YnN0cmluZygxLCA0KTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHZhbHVlID0gZGF0YVtrZXldWyJ4LW1hcHBpbmciXTsNCiAgICAgICAgICAgICAgICAgICAgaWYgKHZhbHVlLmxlbmd0aCA+IDIwKSB7DQogICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IGRhdGFba2V5XVsieC1tYXBwaW5nIl0uc3Vic3RyaW5nKDAsIDIwKSArICIuLi4iOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSB2YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHRkID0gY2VsbC5jcmVhdGVDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgIHRkLnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoIm1hcHBpbmciLCB0aGlzKScpOw0KICAgICAgICAgICAgICAgICAgICB0ZC5pZCA9IGtleTsNCiAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQodGQpOw0KICAgICAgICAgICAgICAgICAgICAvLyBUaW1lU2hpZnQNCiAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bIngtdGltZXNoaWZ0Il07DQogICAgICAgICAgICAgICAgICAgIHZhciB0ZCA9IGNlbGwuY3JlYXRlQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICB0ZC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJtYXBwaW5nIiwgdGhpcyknKTsNCiAgICAgICAgICAgICAgICAgICAgdGQuaWQgPSBrZXk7DQogICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKHRkKTsNCiAgICAgICAgICAgICAgICAgICAgcm93cy5wdXNoKHRyKTsNCiAgICAgICAgICAgICAgICB9KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInNldHRpbmdzIjoNCiAgICAgICAgICAgICAgICBhbGVydCgpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZygiVGFibGUgY29udGVudCAobWVudUtleSk6IiwgbWVudUtleSk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIH0NCiAgICAgICAgcmV0dXJuIHJvd3M7DQogICAgfQ0KfQ0KY2xhc3MgQ2VsbCB7DQogICAgY3JlYXRlQ2VsbCgpIHsNCiAgICAgICAgbGV0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgaWYgKHRoaXMuY2hpbGQgPT0gdHJ1ZSkgew0KICAgICAgICAgICAgdmFyIGVsZW1lbnQ7DQogICAgICAgICAgICBzd2l0Y2ggKHRoaXMuY2hpbGRUeXBlKSB7DQogICAgICAgICAgICAgICAgY2FzZSAiUCI6DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KHRoaXMuY2hpbGRUeXBlKTsNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC5pbm5lckhUTUwgPSB0aGlzLnZhbHVlOw0KICAgICAgICAgICAgICAgICAgICBlbGVtZW50LmNsYXNzTmFtZSA9IHRoaXMuY2xhc3NOYW1lOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBjYXNlICJJTlBVVCI6DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KHRoaXMuY2hpbGRUeXBlKTsNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC52YWx1ZSA9IHRoaXMudmFsdWU7DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQudHlwZSA9ICJ0ZXh0IjsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAiSU5QVVRDSEFOTkVMIjoNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIklOUFVUIik7DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZzY3JpcHQ6IGNoYW5nZUNoYW5uZWxOdW1iZXIodGhpcykiKTsNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC52YWx1ZSA9IHRoaXMudmFsdWU7DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQudHlwZSA9ICJ0ZXh0IjsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAiQlVMSyI6DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJJTlBVVCIpOw0KICAgICAgICAgICAgICAgICAgICBlbGVtZW50LmNoZWNrZWQgPSB0aGlzLnZhbHVlOw0KICAgICAgICAgICAgICAgICAgICBlbGVtZW50LnR5cGUgPSAiY2hlY2tib3giOw0KICAgICAgICAgICAgICAgICAgICBlbGVtZW50LmNsYXNzTmFtZSA9ICJidWxrIGhpZGVCdWxrIjsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAiQlVMS19IRUFEIjoNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIklOUFVUIik7DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQuY2hlY2tlZCA9IHRoaXMudmFsdWU7DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQudHlwZSA9ICJjaGVja2JveCI7DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQuY2xhc3NOYW1lID0gImJ1bGsgaGlkZUJ1bGsiOw0KICAgICAgICAgICAgICAgICAgICBlbGVtZW50LnNldEF0dHJpYnV0ZSgib25jbGljayIsICJqYXZhc2NyaXB0OiBzZWxlY3RBbGxDaGFubmVscygpIik7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgIklNRyI6DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KHRoaXMuY2hpbGRUeXBlKTsNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC5zZXRBdHRyaWJ1dGUoInNyYyIsIHRoaXMuaW1hZ2VVUkwpOw0KICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5pbWFnZVVSTCAhPSAiIikgew0KICAgICAgICAgICAgICAgICAgICAgICAgZWxlbWVudC5zZXRBdHRyaWJ1dGUoIm9uZXJyb3IiLCAiamF2YXNjcmlwdDogdGhpcy5vbmVycm9yPW51bGw7dGhpcy5zcmM9JyciKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIC8vb25lcnJvcj0idGhpcy5vbmVycm9yPW51bGw7dGhpcy5zcmM9J21pc3NpbmcuZ2lmJzsiDQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIHRkLmFwcGVuZENoaWxkKGVsZW1lbnQpOw0KICAgICAgICB9DQogICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgdGQuaW5uZXJIVE1MID0gdGhpcy52YWx1ZTsNCiAgICAgICAgfQ0KICAgICAgICBpZiAodGhpcy5vbmNsaWNrID09IHRydWUpIHsNCiAgICAgICAgICAgIHRkLnNldEF0dHJpYnV0ZSgib25jbGljayIsIHRoaXMub25jbGlja0Z1bmt0aW9uKTsNCiAgICAgICAgICAgIHRkLmNsYXNzTmFtZSA9ICJwb2ludGVyIjsNCiAgICAgICAgfQ0KICAgICAgICBpZiAodGhpcy50ZENsYXNzTmFtZSAhPSB1bmRlZmluZWQpIHsNCiAgICAgICAgICAgIHRkLmNsYXNzTmFtZSA9IHRoaXMudGRDbGFzc05hbWU7DQogICAgICAgIH0NCiAgICAgICAgcmV0dXJuIHRkOw0KICAgIH0NCn0NCmNsYXNzIFNob3dDb250ZW50IGV4dGVuZHMgQ29udGVudCB7DQogICAgY29uc3RydWN0b3IobWVudUlEKSB7DQogICAgICAgIHN1cGVyKCk7DQogICAgICAgIHRoaXMubWVudUlEID0gbWVudUlEOw0KICAgIH0NCiAgICBjcmVhdGVJbnB1dCh0eXBlLCBuYW1lLCB2YWx1ZSkgew0KICAgICAgICBsZXQgaW5wdXQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJJTlBVVCIpOw0KICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInR5cGUiLCB0eXBlKTsNCiAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJuYW1lIiwgbmFtZSk7DQogICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgidmFsdWUiLCB2YWx1ZSk7DQogICAgICAgIHJldHVybiBpbnB1dDsNCiAgICB9DQogICAgc2hvdygpIHsNCiAgICAgICAgQ09MVU1OX1RPX1NPUlQgPSAtMTsNCiAgICAgICAgLy8gQWx0ZW4gSW5oYWx0IGzDtnNjaGVuDQogICAgICAgIGxldCBkb2MgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCh0aGlzLkRvY3VtZW50SUQpOw0KICAgICAgICBkb2MuaW5uZXJIVE1MID0gIiI7DQogICAgICAgIHNob3dQcmV2aWV3KGZhbHNlKTsNCiAgICAgICAgLy8gw5xiZXJzY2hyaWZ0DQogICAgICAgIGxldCBoZWFkbGluZSA9IG1lbnVJdGVtc1t0aGlzLm1lbnVJRF0uaGVhZGxpbmU7DQogICAgICAgIGxldCBtZW51S2V5ID0gbWVudUl0ZW1zW3RoaXMubWVudUlEXS5tZW51S2V5Ow0KICAgICAgICBsZXQgaCA9IHRoaXMuY3JlYXRlSGVhZGxpbmUoaGVhZGxpbmUpOw0KICAgICAgICBkb2MuYXBwZW5kQ2hpbGQoaCk7DQogICAgICAgIGxldCBociA9IHRoaXMuY3JlYXRlSFIoKTsNCiAgICAgICAgZG9jLmFwcGVuZENoaWxkKGhyKTsNCiAgICAgICAgLy8gSW50ZXJha3Rpb24NCiAgICAgICAgbGV0IGRpdiA9IHRoaXMuY3JlYXRlSW50ZXJhY3Rpb24oKTsNCiAgICAgICAgZG9jLmFwcGVuZENoaWxkKGRpdik7DQogICAgICAgIGxldCBpbnRlcmFjdGlvbiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHRoaXMuaW50ZXJhY3Rpb25JRCk7DQogICAgICAgIHN3aXRjaCAobWVudUtleSkgew0KICAgICAgICAgICAgY2FzZSAicGxheWxpc3QiOg0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IHRoaXMuY3JlYXRlSW5wdXQoImJ1dHRvbiIsIG1lbnVLZXksICJ7ey5idXR0b24ubmV3fX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoImlkIiwgIi0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJwbGF5bGlzdCIpJyk7DQogICAgICAgICAgICAgICAgaW50ZXJhY3Rpb24uYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiZmlsdGVyIjoNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSB0aGlzLmNyZWF0ZUlucHV0KCJidXR0b24iLCBtZW51S2V5LCAie3suYnV0dG9uLm5ld319Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJpZCIsIC0xKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJmaWx0ZXIiLCB0aGlzKScpOw0KICAgICAgICAgICAgICAgIGludGVyYWN0aW9uLmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInhtbHR2IjoNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSB0aGlzLmNyZWF0ZUlucHV0KCJidXR0b24iLCBtZW51S2V5LCAie3suYnV0dG9uLm5ld319Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJpZCIsICJ4bWx0diIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoInhtbHR2IiknKTsNCiAgICAgICAgICAgICAgICBpbnRlcmFjdGlvbi5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ1c2VycyI6DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gdGhpcy5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgbWVudUtleSwgInt7LmJ1dHRvbi5uZXd9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgiaWQiLCAidXNlcnMiKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJ1c2VycyIpJyk7DQogICAgICAgICAgICAgICAgaW50ZXJhY3Rpb24uYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAibWFwcGluZyI6DQogICAgICAgICAgICAgICAgc2hvd0VsZW1lbnQoImxvYWRpbmciLCB0cnVlKTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSB0aGlzLmNyZWF0ZUlucHV0KCJidXR0b24iLCBtZW51S2V5LCAie3suYnV0dG9uLnNhdmV9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBzYXZlUG9wdXBEYXRhKCJtYXBwaW5nIiwgIiIsICIiKScpOw0KICAgICAgICAgICAgICAgIGludGVyYWN0aW9uLmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSB0aGlzLmNyZWF0ZUlucHV0KCJidXR0b24iLCBtZW51S2V5LCAie3suYnV0dG9uLmJ1bGtFZGl0fX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogYnVsa0VkaXQoKScpOw0KICAgICAgICAgICAgICAgIGludGVyYWN0aW9uLmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSB0aGlzLmNyZWF0ZUlucHV0KCJzZWFyY2giLCAic2VhcmNoIiwgIiIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgiaWQiLCAic2VhcmNoTWFwcGluZyIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3suYnV0dG9uLnNlYXJjaH19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuY2xhc3NOYW1lID0gInNlYXJjaCI7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICdqYXZhc2NyaXB0OiBzZWFyY2hJbk1hcHBpbmcoKScpOw0KICAgICAgICAgICAgICAgIGludGVyYWN0aW9uLmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInNldHRpbmdzIjoNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSB0aGlzLmNyZWF0ZUlucHV0KCJidXR0b24iLCBtZW51S2V5LCAie3suYnV0dG9uLnNhdmV9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBzYXZlU2V0dGluZ3MoKTsnKTsNCiAgICAgICAgICAgICAgICBpbnRlcmFjdGlvbi5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gdGhpcy5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgbWVudUtleSwgInt7LmJ1dHRvbi5iYWNrdXB9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBiYWNrdXAoKTsnKTsNCiAgICAgICAgICAgICAgICBpbnRlcmFjdGlvbi5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gdGhpcy5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgbWVudUtleSwgInt7LmJ1dHRvbi5yZXN0b3JlfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogcmVzdG9yZSgpOycpOw0KICAgICAgICAgICAgICAgIGludGVyYWN0aW9uLmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICB2YXIgd3JhcHBlciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIkRJViIpOw0KICAgICAgICAgICAgICAgIHdyYXBwZXIuc2V0QXR0cmlidXRlKCJpZCIsICJib3gtd3JhcHBlciIpOw0KICAgICAgICAgICAgICAgIGRvYy5hcHBlbmRDaGlsZCh3cmFwcGVyKTsNCiAgICAgICAgICAgICAgICB0aGlzLkRpdklEID0gImNvbnRlbnRfc2V0dGluZ3MiOw0KICAgICAgICAgICAgICAgIHZhciBzZXR0aW5ncyA9IHRoaXMuY3JlYXRlRElWKCk7DQogICAgICAgICAgICAgICAgd3JhcHBlci5hcHBlbmRDaGlsZChzZXR0aW5ncyk7DQogICAgICAgICAgICAgICAgc2hvd1NldHRpbmdzKCk7DQogICAgICAgICAgICAgICAgcmV0dXJuOw0KICAgICAgICAgICAgY2FzZSAibG9nIjoNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSB0aGlzLmNyZWF0ZUlucHV0KCJidXR0b24iLCBtZW51S2V5LCAie3suYnV0dG9uLnJlc2V0TG9nc319Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IHJlc2V0TG9ncygpOycpOw0KICAgICAgICAgICAgICAgIGludGVyYWN0aW9uLmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICB2YXIgd3JhcHBlciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIkRJViIpOw0KICAgICAgICAgICAgICAgIHdyYXBwZXIuc2V0QXR0cmlidXRlKCJpZCIsICJib3gtd3JhcHBlciIpOw0KICAgICAgICAgICAgICAgIGRvYy5hcHBlbmRDaGlsZCh3cmFwcGVyKTsNCiAgICAgICAgICAgICAgICB0aGlzLkRpdklEID0gImNvbnRlbnRfbG9nIjsNCiAgICAgICAgICAgICAgICB2YXIgbG9ncyA9IHRoaXMuY3JlYXRlRElWKCk7DQogICAgICAgICAgICAgICAgd3JhcHBlci5hcHBlbmRDaGlsZChsb2dzKTsNCiAgICAgICAgICAgICAgICBzaG93TG9ncyh0cnVlKTsNCiAgICAgICAgICAgICAgICByZXR1cm47DQogICAgICAgICAgICBjYXNlICJsb2dvdXQiOg0KICAgICAgICAgICAgICAgIGxvY2F0aW9uLnJlbG9hZCgpOw0KICAgICAgICAgICAgICAgIGRvY3VtZW50LmNvb2tpZSA9ICJUb2tlbj0gOyBleHBpcmVzID0gVGh1LCAwMSBKYW4gMTk3MCAwMDowMDowMCBHTVQiOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZygiU2hvdyBjb250ZW50IChtZW51S2V5KToiLCBtZW51S2V5KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgfQ0KICAgICAgICAvLyBUYWJlbGxlIGVyc3RlbGxlbiAoZmFsbHMgYmVuw7Z0aWd0KQ0KICAgICAgICB2YXIgdGFibGVIZWFkZXIgPSBtZW51SXRlbXNbdGhpcy5tZW51SURdLnRhYmxlSGVhZGVyOw0KICAgICAgICBpZiAodGFibGVIZWFkZXIubGVuZ3RoID4gMCkgew0KICAgICAgICAgICAgdmFyIHdyYXBwZXIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJESVYiKTsNCiAgICAgICAgICAgIGRvYy5hcHBlbmRDaGlsZCh3cmFwcGVyKTsNCiAgICAgICAgICAgIHdyYXBwZXIuc2V0QXR0cmlidXRlKCJpZCIsICJib3gtd3JhcHBlciIpOw0KICAgICAgICAgICAgdmFyIHRhYmxlID0gdGhpcy5jcmVhdGVUQUJMRSgpOw0KICAgICAgICAgICAgd3JhcHBlci5hcHBlbmRDaGlsZCh0YWJsZSk7DQogICAgICAgICAgICB2YXIgaGVhZGVyID0gdGhpcy5jcmVhdGVUYWJsZVJvdygpOw0KICAgICAgICAgICAgdGFibGUuYXBwZW5kQ2hpbGQoaGVhZGVyKTsNCiAgICAgICAgICAgIC8vIEtvcGZ6ZWlsZSBkZXIgVGFibGxlDQogICAgICAgICAgICB0YWJsZUhlYWRlci5mb3JFYWNoKGVsZW1lbnQgPT4gew0KICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZWxlbWVudDsNCiAgICAgICAgICAgICAgICBpZiAoZWxlbWVudCA9PSAiQlVMSyIpIHsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiQlVMS19IRUFEIjsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGZhbHNlOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBpZiAobWVudUtleSA9PSAibWFwcGluZyIpIHsNCiAgICAgICAgICAgICAgICAgICAgaWYgKGVsZW1lbnQgPT0gInt7Lm1hcHBpbmcudGFibGUuY2hOb319Iikgew0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5vbmNsaWNrID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwub25jbGlja0Z1bmt0aW9uID0gImphdmFzY3JpcHQ6IHNvcnRUYWJsZSgxKTsiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC50ZENsYXNzTmFtZSA9ICJzb3J0VGhpcyI7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgaWYgKGVsZW1lbnQgPT0gInt7Lm1hcHBpbmcudGFibGUuY2hhbm5lbE5hbWV9fSIpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwub25jbGljayA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLm9uY2xpY2tGdW5rdGlvbiA9ICJqYXZhc2NyaXB0OiBzb3J0VGFibGUoMyk7IjsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBpZiAoZWxlbWVudCA9PSAie3subWFwcGluZy50YWJsZS5wbGF5bGlzdH19Iikgew0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5vbmNsaWNrID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwub25jbGlja0Z1bmt0aW9uID0gImphdmFzY3JpcHQ6IHNvcnRUYWJsZSg0KTsiOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIGlmIChlbGVtZW50ID09ICJ7ey5tYXBwaW5nLnRhYmxlLmdyb3VwVGl0bGV9fSIpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwub25jbGljayA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLm9uY2xpY2tGdW5rdGlvbiA9ICJqYXZhc2NyaXB0OiBzb3J0VGFibGUoNSk7IjsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBpZiAoZWxlbWVudCA9PSAie3subWFwcGluZy50YWJsZS50aW1lc2hpZnR9fSIpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwub25jbGljayA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLm9uY2xpY2tGdW5rdGlvbiA9ICJqYXZhc2NyaXB0OiBzb3J0VGFibGUoOCk7IjsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBoZWFkZXIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgfSk7DQogICAgICAgICAgICB0YWJsZS5hcHBlbmRDaGlsZChoZWFkZXIpOw0KICAgICAgICAgICAgLy8gSW5oYWx0IGRlciBUYWJlbGxlDQogICAgICAgICAgICB2YXIgcm93cyA9IHRoaXMuY3JlYXRlVGFibGVDb250ZW50KG1lbnVLZXkpOw0KICAgICAgICAgICAgcm93cy5mb3JFYWNoKHRyID0+IHsNCiAgICAgICAgICAgICAgICB0YWJsZS5hcHBlbmRDaGlsZCh0cik7DQogICAgICAgICAgICB9KTsNCiAgICAgICAgfQ0KICAgICAgICBzd2l0Y2ggKG1lbnVLZXkpIHsNCiAgICAgICAgICAgIGNhc2UgIm1hcHBpbmciOg0KICAgICAgICAgICAgICAgIHNvcnRUYWJsZSgxKTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImZpbHRlciI6DQogICAgICAgICAgICAgICAgc2hvd1ByZXZpZXcodHJ1ZSk7DQogICAgICAgICAgICAgICAgc29ydFRhYmxlKDApOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgICAgICBDT0xVTU5fVE9fU09SVCA9IC0xOw0KICAgICAgICAgICAgICAgIHNvcnRUYWJsZSgwKTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgfQ0KICAgICAgICBzaG93RWxlbWVudCgibG9hZGluZyIsIGZhbHNlKTsNCiAgICB9DQp9DQpmdW5jdGlvbiBQYWdlUmVhZHkoKSB7DQogICAgbGV0IHNlcnZlciA9IG5ldyBTZXJ2ZXIoImdldFNlcnZlckNvbmZpZyIpOw0KICAgIHNlcnZlci5yZXF1ZXN0KHt9KTsNCiAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigicmVzaXplIiwgZnVuY3Rpb24gKCkgew0KICAgICAgICBjYWxjdWxhdGVXcmFwcGVySGVpZ2h0KCk7DQogICAgfSwgdHJ1ZSk7DQogICAgc2V0SW50ZXJ2YWwoZnVuY3Rpb24gKCkgew0KICAgICAgICB1cGRhdGVMb2coKTsNCiAgICB9LCAxMDAwMCk7DQogICAgcmV0dXJuOw0KfQ0KZnVuY3Rpb24gY3JlYXRlTGF5b3V0KCkgew0KICAgIC8vIENsaWVudCBJbmZvDQogICAgbGV0IG9iaiA9IFNFUlZFUlsiY2xpZW50SW5mbyJdOw0KICAgIGxldCBrZXlzID0gZ2V0T2JqS2V5cyhvYmopOw0KICAgIGZvciAodmFyIGkgPSAwOyBpIDwga2V5cy5sZW5ndGg7IGkrKykgew0KICAgICAgICBpZiAoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoa2V5c1tpXSkpIHsNCiAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGtleXNbaV0pLmlubmVySFRNTCA9IG9ialtrZXlzW2ldXTsNCiAgICAgICAgfQ0KICAgIH0NCiAgICBpZiAoIWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJtYWluLW1lbnUiKSkgew0KICAgICAgICByZXR1cm47DQogICAgfQ0KICAgIC8vIE1lbsO8IGVyc3RlbGxlbg0KICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJtYWluLW1lbnUiKS5pbm5lckhUTUwgPSAiIjsNCiAgICBmb3IgKGxldCBpID0gMDsgaSA8IG1lbnVJdGVtcy5sZW5ndGg7IGkrKykgew0KICAgICAgICBtZW51SXRlbXNbaV0uaWQgPSBpOw0KICAgICAgICBzd2l0Y2ggKG1lbnVJdGVtc1tpXVsibWVudUtleSJdKSB7DQogICAgICAgICAgICBjYXNlICJ1c2VycyI6DQogICAgICAgICAgICBjYXNlICJsb2dvdXQiOg0KICAgICAgICAgICAgICAgIGlmIChTRVJWRVJbInNldHRpbmdzIl1bImF1dGhlbnRpY2F0aW9uLndlYiJdID09IHRydWUpIHsNCiAgICAgICAgICAgICAgICAgICAgbWVudUl0ZW1zW2ldLmNyZWF0ZUl0ZW0oKTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJtYXBwaW5nIjoNCiAgICAgICAgICAgIGNhc2UgInhtbHR2IjoNCiAgICAgICAgICAgICAgICBpZiAoU0VSVkVSWyJjbGllbnRJbmZvIl1bImVwZ1NvdXJjZSJdID09ICJYRVBHIikgew0KICAgICAgICAgICAgICAgICAgICBtZW51SXRlbXNbaV0uY3JlYXRlSXRlbSgpOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICAgICAgbWVudUl0ZW1zW2ldLmNyZWF0ZUl0ZW0oKTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgfQ0KICAgIH0NCiAgICByZXR1cm47DQp9DQpmdW5jdGlvbiBvcGVuVGhpc01lbnUoZWxlbWVudCkgew0KICAgIGxldCBpZCA9IGVsZW1lbnQuaWQ7DQogICAgbGV0IGNvbnRlbnQgPSBuZXcgU2hvd0NvbnRlbnQoaWQpOw0KICAgIGNvbnRlbnQuc2hvdygpOw0KICAgIGNhbGN1bGF0ZVdyYXBwZXJIZWlnaHQoKTsNCiAgICByZXR1cm47DQp9DQpjbGFzcyBQb3B1cFdpbmRvdyB7DQogICAgY29uc3RydWN0b3IoKSB7DQogICAgICAgIHRoaXMuRG9jdW1lbnRJRCA9ICJwb3B1cC1jdXN0b20iOw0KICAgICAgICB0aGlzLkludGVyYWN0aW9uSUQgPSAiaW50ZXJhY3Rpb24iOw0KICAgICAgICB0aGlzLmRvYyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHRoaXMuRG9jdW1lbnRJRCk7DQogICAgfQ0KICAgIGNyZWF0ZVRpdGxlKHRpdGxlKSB7DQogICAgICAgIGxldCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgIHRkLmNsYXNzTmFtZSA9ICJsZWZ0IjsNCiAgICAgICAgdGQuaW5uZXJIVE1MID0gdGl0bGUgKyAiOiI7DQogICAgICAgIHJldHVybiB0ZDsNCiAgICB9DQogICAgY3JlYXRlQ29udGVudChlbGVtZW50KSB7DQogICAgICAgIGxldCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgIHRkLmFwcGVuZENoaWxkKGVsZW1lbnQpOw0KICAgICAgICByZXR1cm4gdGQ7DQogICAgfQ0KICAgIGNyZWF0ZUludGVyYWN0aW9uKCkgew0KICAgICAgICBsZXQgZGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7DQogICAgICAgIGRpdi5zZXRBdHRyaWJ1dGUoImlkIiwgInBvcHVwLWludGVyYWN0aW9uIik7DQogICAgICAgIGRpdi5jbGFzc05hbWUgPSAiaW50ZXJhY3Rpb24iOw0KICAgICAgICB0aGlzLmRvYy5hcHBlbmRDaGlsZChkaXYpOw0KICAgIH0NCn0NCmNsYXNzIFBvcHVwQ29udGVudCBleHRlbmRzIFBvcHVwV2luZG93IHsNCiAgICBjb25zdHJ1Y3RvcigpIHsNCiAgICAgICAgc3VwZXIoLi4uYXJndW1lbnRzKTsNCiAgICAgICAgdGhpcy50YWJsZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlRBQkxFIik7DQogICAgfQ0KICAgIGNyZWF0ZUhlYWRsaW5lKGhlYWRsaW5lKSB7DQogICAgICAgIHRoaXMuZG9jLmlubmVySFRNTCA9ICIiOw0KICAgICAgICB2YXIgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIkgzIik7DQogICAgICAgIGVsZW1lbnQuaW5uZXJIVE1MID0gaGVhZGxpbmUudG9VcHBlckNhc2UoKTsNCiAgICAgICAgdGhpcy5kb2MuYXBwZW5kQ2hpbGQoZWxlbWVudCk7DQogICAgICAgIC8vIFRhYmVsbGUgZXJzdGVsbGVuDQogICAgICAgIHRoaXMudGFibGUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJUQUJMRSIpOw0KICAgICAgICB0aGlzLmRvYy5hcHBlbmRDaGlsZCh0aGlzLnRhYmxlKTsNCiAgICB9DQogICAgYXBwZW5kUm93KHRpdGxlLCBlbGVtZW50KSB7DQogICAgICAgIGxldCB0ciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlRSIik7DQogICAgICAgIC8vIEJlemVpY2hudW5nDQogICAgICAgIGlmICh0aXRsZS5sZW5ndGggIT0gMCkgew0KICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQodGhpcy5jcmVhdGVUaXRsZSh0aXRsZSkpOw0KICAgICAgICB9DQogICAgICAgIC8vIENvbnRlbnQNCiAgICAgICAgdHIuYXBwZW5kQ2hpbGQodGhpcy5jcmVhdGVDb250ZW50KGVsZW1lbnQpKTsNCiAgICAgICAgdGhpcy50YWJsZS5hcHBlbmRDaGlsZCh0cik7DQogICAgfQ0KICAgIGNyZWF0ZUlucHV0KHR5cGUsIG5hbWUsIHZhbHVlKSB7DQogICAgICAgIGxldCBpbnB1dCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIklOUFVUIik7DQogICAgICAgIGlmICh2YWx1ZSA9PSB1bmRlZmluZWQpIHsNCiAgICAgICAgICAgIHZhbHVlID0gIiI7DQogICAgICAgIH0NCiAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJ0eXBlIiwgdHlwZSk7DQogICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgibmFtZSIsIG5hbWUpOw0KICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInZhbHVlIiwgdmFsdWUpOw0KICAgICAgICByZXR1cm4gaW5wdXQ7DQogICAgfQ0KICAgIGNyZWF0ZUNoZWNrYm94KG5hbWUpIHsNCiAgICAgICAgbGV0IGlucHV0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiSU5QVVQiKTsNCiAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJ0eXBlIiwgImNoZWNrYm94Iik7DQogICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgibmFtZSIsIG5hbWUpOw0KICAgICAgICByZXR1cm4gaW5wdXQ7DQogICAgfQ0KICAgIC8vIENyZWF0ZXMgYSBzZWxlY3Rpb24gb2YgbXVsdGlwbGUgb3B0aW9ucyB2YWx1ZXMgd2l0aCB0ZXh0IGRlc2NyaXB0aW9ucw0KICAgIGNyZWF0ZVNlbGVjdCh0ZXh0LCB2YWx1ZXMsIHNldCwgZGJLZXkpIHsNCiAgICAgICAgbGV0IHNlbGVjdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlNFTEVDVCIpOw0KICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJuYW1lIiwgZGJLZXkpOw0KICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRleHQubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgICAgIGxldCBvcHRpb24gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJPUFRJT04iKTsNCiAgICAgICAgICAgIG9wdGlvbi5zZXRBdHRyaWJ1dGUoInZhbHVlIiwgdmFsdWVzW2ldKTsNCiAgICAgICAgICAgIG9wdGlvbi5pbm5lclRleHQgPSB0ZXh0W2ldOw0KICAgICAgICAgICAgc2VsZWN0LmFwcGVuZENoaWxkKG9wdGlvbik7DQogICAgICAgIH0NCiAgICAgICAgaWYgKHNldCAhPSAiIikgew0KICAgICAgICAgICAgc2VsZWN0LnZhbHVlID0gc2V0Ow0KICAgICAgICB9DQogICAgICAgIGlmIChzZXQgPT0gdW5kZWZpbmVkKSB7DQogICAgICAgICAgICBzZWxlY3QudmFsdWUgPSB2YWx1ZXNbMF07DQogICAgICAgIH0NCiAgICAgICAgcmV0dXJuIHNlbGVjdDsNCiAgICB9DQogICAgc2VsZWN0T3B0aW9uKHNlbGVjdCwgdmFsdWUpIHsNCiAgICAgICAgLy9zZWxlY3Quc2VsZWN0ZWRPcHRpb25zID0gdmFsdWUNCiAgICAgICAgbGV0IHMgPSBzZWxlY3Q7DQogICAgICAgIHMub3B0aW9uc1tzLnNlbGVjdGVkSW5kZXhdLnZhbHVlID0gdmFsdWU7DQogICAgICAgIHJldHVybiBzZWxlY3Q7DQogICAgfQ0KICAgIGRlc2NyaXB0aW9uKHZhbHVlKSB7DQogICAgICAgIGxldCB0ciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlRSIik7DQogICAgICAgIGxldCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgIGxldCBzcGFuID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiUFJFIik7DQogICAgICAgIHNwYW4uaW5uZXJIVE1MID0gdmFsdWU7DQogICAgICAgIHRyLmFwcGVuZENoaWxkKHRkKTsNCiAgICAgICAgdHIuYXBwZW5kQ2hpbGQodGhpcy5jcmVhdGVDb250ZW50KHNwYW4pKTsNCiAgICAgICAgdGhpcy50YWJsZS5hcHBlbmRDaGlsZCh0cik7DQogICAgfQ0KICAgIC8vIEludGVyYWt0aW9uDQogICAgYWRkSW50ZXJhY3Rpb24oZWxlbWVudCkgew0KICAgICAgICBsZXQgaW50ZXJhY3Rpb24gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicG9wdXAtaW50ZXJhY3Rpb24iKTsNCiAgICAgICAgaW50ZXJhY3Rpb24uYXBwZW5kQ2hpbGQoZWxlbWVudCk7DQogICAgfQ0KfQ0KZnVuY3Rpb24gb3BlblBvcFVwKGRhdGFUeXBlLCBlbGVtZW50KSB7DQogICAgbGV0IGRhdGEgPSB7fTsNCiAgICBsZXQgaWQ7DQogICAgc3dpdGNoIChlbGVtZW50KSB7DQogICAgICAgIGNhc2UgdW5kZWZpbmVkOg0KICAgICAgICAgICAgc3dpdGNoIChkYXRhVHlwZSkgew0KICAgICAgICAgICAgICAgIGNhc2UgImdyb3VwLXRpdGxlIjoNCiAgICAgICAgICAgICAgICAgICAgaWYgKGlkID09IHVuZGVmaW5lZCkgew0KICAgICAgICAgICAgICAgICAgICAgICAgaWQgPSAtMTsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBkYXRhID0gZ2V0TG9jYWxEYXRhKCJmaWx0ZXIiLCBpZCk7DQogICAgICAgICAgICAgICAgICAgIGRhdGFbInR5cGUiXSA9ICJncm91cC10aXRsZSI7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgImN1c3RvbS1maWx0ZXIiOg0KICAgICAgICAgICAgICAgICAgICBpZiAoaWQgPT0gdW5kZWZpbmVkKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBpZCA9IC0xOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIGRhdGEgPSBnZXRMb2NhbERhdGEoImZpbHRlciIsIGlkKTsNCiAgICAgICAgICAgICAgICAgICAgZGF0YVsidHlwZSJdID0gImN1c3RvbS1maWx0ZXIiOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBkZWZhdWx0Og0KICAgICAgICAgICAgICAgICAgICBkYXRhWyJpZC5wcm92aWRlciJdID0gIi0iOw0KICAgICAgICAgICAgICAgICAgICBkYXRhWyJ0eXBlIl0gPSBkYXRhVHlwZTsNCiAgICAgICAgICAgICAgICAgICAgaWQgPSAiLSI7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICBpZCA9IGVsZW1lbnQuaWQ7DQogICAgICAgICAgICBkYXRhID0gZ2V0TG9jYWxEYXRhKGRhdGFUeXBlLCBpZCk7DQogICAgICAgICAgICBicmVhazsNCiAgICB9DQogICAgbGV0IGNvbnRlbnQgPSBuZXcgUG9wdXBDb250ZW50KCk7DQogICAgc3dpdGNoIChkYXRhVHlwZSkgew0KICAgICAgICBjYXNlICJwbGF5bGlzdCI6DQogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUhlYWRsaW5lKCJ7ey5wbGF5bGlzdC5wbGF5bGlzdFR5cGUudGl0bGV9fSIpOw0KICAgICAgICAgICAgLy8gVHlwZQ0KICAgICAgICAgICAgdmFyIHRleHQgPSBbIk0zVSIsICJIREhvbWVSdW4iXTsNCiAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBbImphdmFzY3JpcHQ6IG9wZW5Qb3BVcCgnbTN1JykiLCAiamF2YXNjcmlwdDogb3BlblBvcFVwKCdoZGhyJykiXTsNCiAgICAgICAgICAgIHZhciBzZWxlY3QgPSBjb250ZW50LmNyZWF0ZVNlbGVjdCh0ZXh0LCB2YWx1ZXMsICIiLCAidHlwZSIpOw0KICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgiaWQiLCAidHlwZSIpOw0KICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAnamF2YXNjcmlwdDogY2hhbmdlQnV0dG9uQWN0aW9uKHRoaXMsICJuZXh0IiwgIm9uY2xpY2siKScpOyAvLyBjaGFuZ2VCdXR0b25BY3Rpb24NCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5wbGF5bGlzdC50eXBlLnRpdGxlfX0iLCBzZWxlY3QpOw0KICAgICAgICAgICAgLy8gSW50ZXJha3Rpb24NCiAgICAgICAgICAgIGNvbnRlbnQuY3JlYXRlSW50ZXJhY3Rpb24oKTsNCiAgICAgICAgICAgIC8vIEFiYnJlY2hlbg0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImNhbmNlbCIsICJ7ey5idXR0b24uY2FuY2VsfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBzaG93RWxlbWVudCgicG9wdXAiLCBmYWxzZSk7Jyk7DQogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIC8vIFdlaXRlcg0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgIm5leHQiLCAie3suYnV0dG9uLm5leHR9fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgibTN1IiknKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgiaWQiLCAnbmV4dCcpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSAibTN1IjoNCiAgICAgICAgICAgIGNvbnRlbnQuY3JlYXRlSGVhZGxpbmUoZGF0YVR5cGUpOw0KICAgICAgICAgICAgLy8gTmFtZQ0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gIm5hbWUiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnBsYXlsaXN0Lm5hbWUucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnBsYXlsaXN0Lm5hbWUudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIEJlc2NocmVpYnVuZw0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gImRlc2NyaXB0aW9uIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5wbGF5bGlzdC5kZXNjcmlwdGlvbi5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sucGxheWxpc3QuZGVzY3JpcHRpb24udGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIFVSTA0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gImZpbGUuc291cmNlIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5wbGF5bGlzdC5maWxlTTNVLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5wbGF5bGlzdC5maWxlTTNVLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBUdW5lcg0KICAgICAgICAgICAgaWYgKFNFUlZFUlsic2V0dGluZ3MiXVsiYnVmZmVyIl0gIT0gIi0iKSB7DQogICAgICAgICAgICAgICAgdmFyIHRleHQgPSBbXTsNCiAgICAgICAgICAgICAgICB2YXIgdmFsdWVzID0gW107DQogICAgICAgICAgICAgICAgZm9yICh2YXIgaSA9IDE7IGkgPD0gMTAwOyBpKyspIHsNCiAgICAgICAgICAgICAgICAgICAgdGV4dC5wdXNoKGkudG9TdHJpbmcoKSk7DQogICAgICAgICAgICAgICAgICAgIHZhbHVlcy5wdXNoKGkudG9TdHJpbmcoKSk7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIHZhciBkYktleSA9ICJ0dW5lciI7DQogICAgICAgICAgICAgICAgdmFyIHNlbGVjdCA9IGNvbnRlbnQuY3JlYXRlU2VsZWN0KHRleHQsIHZhbHVlcywgZGF0YVtkYktleV0sIGRiS2V5KTsNCiAgICAgICAgICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJvbmZvY3VzIiwgImphdmFzY3JpcHQ6IHJldHVybjsiKTsNCiAgICAgICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sucGxheWxpc3QudHVuZXIudGl0bGV9fSIsIHNlbGVjdCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICB2YXIgZGJLZXkgPSAidHVuZXIiOw0KICAgICAgICAgICAgICAgIGlmIChkYXRhW2RiS2V5XSA9PSB1bmRlZmluZWQpIHsNCiAgICAgICAgICAgICAgICAgICAgZGF0YVtkYktleV0gPSAxOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInJlYWRvbmx5IiwgInRydWUiKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5jbGFzc05hbWUgPSAibm90QXZhaWxhYmxlIjsNCiAgICAgICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sucGxheWxpc3QudHVuZXIudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGNvbnRlbnQuZGVzY3JpcHRpb24oInt7LnBsYXlsaXN0LnR1bmVyLmRlc2NyaXB0aW9ufX0iKTsNCiAgICAgICAgICAgIC8vIEludGVyYWt0aW9uDQogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUludGVyYWN0aW9uKCk7DQogICAgICAgICAgICAvLyBMw7ZzY2hlbg0KICAgICAgICAgICAgaWYgKGRhdGFbImlkLnByb3ZpZGVyIl0gIT0gIi0iKSB7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImRlbGV0ZSIsICJ7ey5idXR0b24uZGVsZXRlfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5jbGFzc05hbWUgPSAiZGVsZXRlIjsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogc2F2ZVBvcHVwRGF0YSgibTN1IiwgIicgKyBpZCArICciLCB0cnVlLCAwKScpOw0KICAgICAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgZWxzZSB7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImJhY2siLCAie3suYnV0dG9uLmJhY2t9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoInBsYXlsaXN0IiknKTsNCiAgICAgICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIC8vIEFiYnJlY2hlbg0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImNhbmNlbCIsICJ7ey5idXR0b24uY2FuY2VsfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBzaG93RWxlbWVudCgicG9wdXAiLCBmYWxzZSk7Jyk7DQogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIC8vIEFrdHVhbGlzaWVyZW4NCiAgICAgICAgICAgIGlmIChkYXRhWyJpZC5wcm92aWRlciJdICE9ICItIikgew0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJ1cGRhdGUiLCAie3suYnV0dG9uLnVwZGF0ZX19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoIm0zdSIsICInICsgaWQgKyAnIiwgZmFsc2UsIDEpJyk7DQogICAgICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICAvLyBTcGVpY2hlcm4NCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJzYXZlIiwgInt7LmJ1dHRvbi5zYXZlfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBzYXZlUG9wdXBEYXRhKCJtM3UiLCAiJyArIGlkICsgJyIsIGZhbHNlLCAwKScpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSAiaGRociI6DQogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUhlYWRsaW5lKGRhdGFUeXBlKTsNCiAgICAgICAgICAgIC8vIE5hbWUNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJuYW1lIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5wbGF5bGlzdC5uYW1lLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5wbGF5bGlzdC5uYW1lLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBCZXNjaHJlaWJ1bmcNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJkZXNjcmlwdGlvbiI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3sucGxheWxpc3QuZGVzY3JpcHRpb24ucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnBsYXlsaXN0LmRlc2NyaXB0aW9uLnBsYWNlaG9sZGVyfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBVUkwNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJmaWxlLnNvdXJjZSI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3sucGxheWxpc3QuZmlsZUhESFIucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnBsYXlsaXN0LmZpbGVIREhSLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBUdW5lcg0KICAgICAgICAgICAgaWYgKFNFUlZFUlsic2V0dGluZ3MiXVsiYnVmZmVyIl0gIT0gIi0iKSB7DQogICAgICAgICAgICAgICAgdmFyIHRleHQgPSBbXTsNCiAgICAgICAgICAgICAgICB2YXIgdmFsdWVzID0gW107DQogICAgICAgICAgICAgICAgZm9yICh2YXIgaSA9IDE7IGkgPD0gMTAwOyBpKyspIHsNCiAgICAgICAgICAgICAgICAgICAgdGV4dC5wdXNoKGkudG9TdHJpbmcoKSk7DQogICAgICAgICAgICAgICAgICAgIHZhbHVlcy5wdXNoKGkudG9TdHJpbmcoKSk7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIHZhciBkYktleSA9ICJ0dW5lciI7DQogICAgICAgICAgICAgICAgdmFyIHNlbGVjdCA9IGNvbnRlbnQuY3JlYXRlU2VsZWN0KHRleHQsIHZhbHVlcywgZGF0YVtkYktleV0sIGRiS2V5KTsNCiAgICAgICAgICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJvbmZvY3VzIiwgImphdmFzY3JpcHQ6IHJldHVybjsiKTsNCiAgICAgICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sucGxheWxpc3QudHVuZXIudGl0bGV9fSIsIHNlbGVjdCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICB2YXIgZGJLZXkgPSAidHVuZXIiOw0KICAgICAgICAgICAgICAgIGlmIChkYXRhW2RiS2V5XSA9PSB1bmRlZmluZWQpIHsNCiAgICAgICAgICAgICAgICAgICAgZGF0YVtkYktleV0gPSAxOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInJlYWRvbmx5IiwgInRydWUiKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5jbGFzc05hbWUgPSAibm90QXZhaWxhYmxlIjsNCiAgICAgICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sucGxheWxpc3QudHVuZXIudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGNvbnRlbnQuZGVzY3JpcHRpb24oInt7LnBsYXlsaXN0LnR1bmVyLmRlc2NyaXB0aW9ufX0iKTsNCiAgICAgICAgICAgIC8vIEludGVyYWt0aW9uDQogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUludGVyYWN0aW9uKCk7DQogICAgICAgICAgICAvLyBMw7ZzY2hlbg0KICAgICAgICAgICAgaWYgKGRhdGFbImlkLnByb3ZpZGVyIl0gIT0gIi0iKSB7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImRlbGV0ZSIsICJ7ey5idXR0b24uZGVsZXRlfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogc2F2ZVBvcHVwRGF0YSgiaGRociIsICInICsgaWQgKyAnIiwgdHJ1ZSwgMCknKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5jbGFzc05hbWUgPSAiZGVsZXRlIjsNCiAgICAgICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJiYWNrIiwgInt7LmJ1dHRvbi5iYWNrfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJwbGF5bGlzdCIpJyk7DQogICAgICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICAvLyBBYmJyZWNoZW4NCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJjYW5jZWwiLCAie3suYnV0dG9uLmNhbmNlbH19Iik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogc2hvd0VsZW1lbnQoInBvcHVwIiwgZmFsc2UpOycpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICAvLyBBa3R1YWxpc2llcmVuDQogICAgICAgICAgICBpZiAoZGF0YVsiaWQucHJvdmlkZXIiXSAhPSAiLSIpIHsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAidXBkYXRlIiwgInt7LmJ1dHRvbi51cGRhdGV9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBzYXZlUG9wdXBEYXRhKCJoZGhyIiwgIicgKyBpZCArICciLCBmYWxzZSwgMSknKTsNCiAgICAgICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIC8vIFNwZWljaGVybg0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgInNhdmUiLCAie3suYnV0dG9uLnNhdmV9fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoImhkaHIiLCAiJyArIGlkICsgJyIsIGZhbHNlLCAwKScpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSAiZmlsdGVyIjoNCiAgICAgICAgICAgIGNvbnRlbnQuY3JlYXRlSGVhZGxpbmUoZGF0YVR5cGUpOw0KICAgICAgICAgICAgLy8gVHlwZQ0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gInR5cGUiOw0KICAgICAgICAgICAgdmFyIHRleHQgPSBbIk0zVTogIiArICJ7ey5maWx0ZXIudHlwZS5ncm91cFRpdGxlfX0iLCAieFRlVmU6ICIgKyAie3suZmlsdGVyLnR5cGUuY3VzdG9tRmlsdGVyfX0iXTsNCiAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBbImphdmFzY3JpcHQ6IG9wZW5Qb3BVcCgnZ3JvdXAtdGl0bGUnKSIsICJqYXZhc2NyaXB0OiBvcGVuUG9wVXAoJ2N1c3RvbS1maWx0ZXInKSJdOw0KICAgICAgICAgICAgdmFyIHNlbGVjdCA9IGNvbnRlbnQuY3JlYXRlU2VsZWN0KHRleHQsIHZhbHVlcywgImphdmFzY3JpcHQ6IG9wZW5Qb3BVcCgnZ3JvdXAtdGl0bGUnKSIsIGRiS2V5KTsNCiAgICAgICAgICAgIHNlbGVjdC5zZXRBdHRyaWJ1dGUoImlkIiwgaWQpOw0KICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAnamF2YXNjcmlwdDogY2hhbmdlQnV0dG9uQWN0aW9uKHRoaXMsICJuZXh0IiwgIm9uY2xpY2siKTsnKTsgLy8gY2hhbmdlQnV0dG9uQWN0aW9uDQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3suZmlsdGVyLnR5cGUudGl0bGV9fSIsIHNlbGVjdCk7DQogICAgICAgICAgICAvLyBJbnRlcmFrdGlvbg0KICAgICAgICAgICAgY29udGVudC5jcmVhdGVJbnRlcmFjdGlvbigpOw0KICAgICAgICAgICAgLy8gQWJicmVjaGVuDQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAiY2FuY2VsIiwgInt7LmJ1dHRvbi5jYW5jZWx9fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IHNob3dFbGVtZW50KCJwb3B1cCIsIGZhbHNlKTsnKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgLy8gV2VpdGVyDQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAibmV4dCIsICJ7ey5idXR0b24ubmV4dH19Iik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJncm91cC10aXRsZSIpJyk7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoImlkIiwgJ25leHQnKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGNhc2UgImN1c3RvbS1maWx0ZXIiOg0KICAgICAgICBjYXNlICJncm91cC10aXRsZSI6DQogICAgICAgICAgICBzd2l0Y2ggKGRhdGFUeXBlKSB7DQogICAgICAgICAgICAgICAgY2FzZSAiY3VzdG9tLWZpbHRlciI6DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuY3JlYXRlSGVhZGxpbmUoInt7LmZpbHRlci5jdXN0b219fSIgKyAiIEZpbHRlciIpOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBjYXNlICJncm91cC10aXRsZSI6DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuY3JlYXRlSGVhZGxpbmUoInt7LmZpbHRlci5ncm91cH19IiArICIgRmlsdGVyIik7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgLy8gTmFtZSAgICAgIA0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gIm5hbWUiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LmZpbHRlci5uYW1lLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5maWx0ZXIubmFtZS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgLy8gQmVzY2hyZWlidW5nDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAiZGVzY3JpcHRpb24iOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LmZpbHRlci5kZXNjcmlwdGlvbi5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3suZmlsdGVyLmRlc2NyaXB0aW9uLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBUeXANCiAgICAgICAgICAgIHZhciBkYktleSA9ICJ0eXBlIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImhpZGRlbiIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygiIiwgaW5wdXQpOw0KICAgICAgICAgICAgdmFyIGZpbHRlclR5cGUgPSBkYXRhW2RiS2V5XTsNCiAgICAgICAgICAgIHN3aXRjaCAoZmlsdGVyVHlwZSkgew0KICAgICAgICAgICAgICAgIGNhc2UgImN1c3RvbS1maWx0ZXIiOg0KICAgICAgICAgICAgICAgICAgICAvLyBHcm/Dny0gS2xlaW5zY2hyZWlidW5nIGJlYWNodGVuDQogICAgICAgICAgICAgICAgICAgIHZhciBkYktleSA9ICJjYXNlU2Vuc2l0aXZlIjsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChkYktleSk7DQogICAgICAgICAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhW2RiS2V5XTsNCiAgICAgICAgICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LmZpbHRlci5jYXNlU2Vuc2l0aXZlLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAgICAgICAgIC8vIEZpbHRlcnJlZ2VsIChCZW51dHplcmRlZmluaWVydCkNCiAgICAgICAgICAgICAgICAgICAgdmFyIGRiS2V5ID0gImZpbHRlciI7DQogICAgICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LmZpbHRlci5maWx0ZXJSdWxlLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LmZpbHRlci5maWx0ZXJSdWxlLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgImdyb3VwLXRpdGxlIjoNCiAgICAgICAgICAgICAgICAgICAgLy9hbGVydChkYktleSArICIgIiArIGZpbHRlclR5cGUpDQogICAgICAgICAgICAgICAgICAgIC8vIEZpbHRlciBiYXNpZXJlbmQgYXVmIGRlbiBHcnVwcGVuIGluIGRlciBNM1UNCiAgICAgICAgICAgICAgICAgICAgdmFyIGRiS2V5ID0gImZpbHRlciI7DQogICAgICAgICAgICAgICAgICAgIHZhciBncm91cHNNM1UgPSBnZXRMb2NhbERhdGEoIm0zdUdyb3VwcyIsICIiKTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHRleHQgPSBncm91cHNNM1VbInRleHQiXTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHZhbHVlcyA9IGdyb3Vwc00zVVsidmFsdWUiXTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHNlbGVjdCA9IGNvbnRlbnQuY3JlYXRlU2VsZWN0KHRleHQsIHZhbHVlcywgZGF0YVtkYktleV0sIGRiS2V5KTsNCiAgICAgICAgICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LmZpbHRlci5maWx0ZXJHcm91cC50aXRsZX19Iiwgc2VsZWN0KTsNCiAgICAgICAgICAgICAgICAgICAgY29udGVudC5kZXNjcmlwdGlvbigie3suZmlsdGVyLmZpbHRlckdyb3VwLmRlc2NyaXB0aW9ufX0iKTsNCiAgICAgICAgICAgICAgICAgICAgLy8gR3Jvw58tIEtsZWluc2NocmVpYnVuZyBiZWFjaHRlbg0KICAgICAgICAgICAgICAgICAgICB2YXIgZGJLZXkgPSAiY2FzZVNlbnNpdGl2ZSI7DQogICAgICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goZGJLZXkpOw0KICAgICAgICAgICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YVtkYktleV07DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5maWx0ZXIuY2FzZVNlbnNpdGl2ZS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgICAgICAgICB2YXIgZGJLZXkgPSAiaW5jbHVkZSI7DQogICAgICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LmZpbHRlci5pbmNsdWRlLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LmZpbHRlci5pbmNsdWRlLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuZGVzY3JpcHRpb24oInt7LmZpbHRlci5pbmNsdWRlLmRlc2NyaXB0aW9ufX0iKTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGRiS2V5ID0gImV4Y2x1ZGUiOw0KICAgICAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5maWx0ZXIuZXhjbHVkZS5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5maWx0ZXIuZXhjbHVkZS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgICAgICAgICBjb250ZW50LmRlc2NyaXB0aW9uKCJ7ey5maWx0ZXIuZXhjbHVkZS5kZXNjcmlwdGlvbn19Iik7DQogICAgICAgICAgICAgICAgICAgIC8vIFByZXNlcnZlIE0zVSBQbGF5bGlzdCBDaGFubmVsIE1hcHBpbmcNCiAgICAgICAgICAgICAgICAgICAgdmFyIGRiS2V5ID0gInByZXNlcnZlTWFwcGluZyI7DQogICAgICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goZGJLZXkpOw0KICAgICAgICAgICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YVtkYktleV07DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5maWx0ZXIucHJlc2VydmVNYXBwaW5nLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAgICAgICAgIC8vIFN0YXJ0aW5nIENoYW5uZWwgTnVtYmVyIE1hcHBpbmcNCiAgICAgICAgICAgICAgICAgICAgdmFyIGRiS2V5ID0gInN0YXJ0aW5nQ2hhbm5lbCI7DQogICAgICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LmZpbHRlci5zdGFydGluZ0NoYW5uZWwucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3suZmlsdGVyLnN0YXJ0aW5nQ2hhbm5lbC50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgICAgICAgICAvLyBGaWxsIE1pc3NpbmcgRVBHIERhdGENCiAgICAgICAgICAgICAgICAgICAgLy8gVGhlIGZvbGxvd2luZyBjb2RlIG9ubHkgd29ya3Mgd2hlbiB4VGVWZSBEdW1teSBhbHJlYWR5IGV4aXN0cw0KICAgICAgICAgICAgICAgICAgICAvLyB2YXIgZGJLZXk6c3RyaW5nID0gImRlZmF1bHRNaXNzaW5nRVBHIg0KICAgICAgICAgICAgICAgICAgICAvLyB2YXIgeG1sdHY6WE1MVFZGaWxlID0gbmV3IFhNTFRWRmlsZSgpDQogICAgICAgICAgICAgICAgICAgIC8vIHZhciBzZWxlY3QgPSB4bWx0di5nZXRQcm9ncmFtcygieFRlVmUgRHVtbXkiLCBkYXRhW2RiS2V5XSkNCiAgICAgICAgICAgICAgICAgICAgLy8gc2VsZWN0LnNldEF0dHJpYnV0ZSgibmFtZSIsIGRiS2V5KQ0KICAgICAgICAgICAgICAgICAgICAvLyBzZWxlY3Quc2V0QXR0cmlidXRlKCJpZCIsICJwb3B1cC1taXNzaW5nLWVwZyIpDQogICAgICAgICAgICAgICAgICAgIC8vIFRoZSB3b3JrYXJvdW5kIGlzIGN1cnJlbnRseSB0byBoYXJkIGNvZGUgdGhlIHhUZVZlIER1bW15IGRhdGENCiAgICAgICAgICAgICAgICAgICAgdmFyIGRiS2V5ID0gImRlZmF1bHRNaXNzaW5nRVBHIjsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGxpc3RPcHRpb25zID0geyAidGV4dCI6IFsiLSIsICIzMCBNaW51dGVzICgzMF9NaW51dGVzKSIsICI2MCBNaW51dGVzICg2MF9NaW51dGVzKSIsICI5MCBNaW51dGVzICg5MF9NaW51dGVzKSIsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgIjEyMCBNaW51dGVzICgxMjBfTWludXRlcykiLCAiMTgwIE1pbnV0ZXMgKDMwX01pbnV0ZXMpIiwgIjI0MCBNaW51dGVzICgzMF9NaW51dGVzKSIsICIzNjAgTWludXRlcyAoMzBfTWludXRlcykiXSwNCiAgICAgICAgICAgICAgICAgICAgICAgICJ2YWx1ZSI6IFsiLSIsICIzMF9NaW51dGVzIiwgIjYwX01pbnV0ZXMiLCAiOTBfTWludXRlcyIsICIxMjBfTWludXRlcyIsICIxODBfTWludXRlcyIsICIyNDBfTWludXRlcyIsICIzNjBfTWludXRlcyIsXSB9Ow0KICAgICAgICAgICAgICAgICAgICB2YXIgdGV4dCA9IGxpc3RPcHRpb25zWyJ0ZXh0Il07DQogICAgICAgICAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBsaXN0T3B0aW9uc1sidmFsdWUiXTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHNlbGVjdCA9IGNvbnRlbnQuY3JlYXRlU2VsZWN0KHRleHQsIHZhbHVlcywgZGF0YVtkYktleV0sIGRiS2V5KTsNCiAgICAgICAgICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LmZpbHRlci5kZWZhdWx0TWlzc2luZ0VQRy50aXRsZX19Iiwgc2VsZWN0KTsNCiAgICAgICAgICAgICAgICAgICAgY29udGVudC5kZXNjcmlwdGlvbigie3suZmlsdGVyLmRlZmF1bHRNaXNzaW5nRVBHLmRlc2NyaXB0aW9ufX0iKTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICB9DQogICAgICAgICAgICAvLyBJbnRlcmFrdGlvbg0KICAgICAgICAgICAgY29udGVudC5jcmVhdGVJbnRlcmFjdGlvbigpOw0KICAgICAgICAgICAgLy8gTMO2c2NoZW4NCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJkZWxldGUiLCAie3suYnV0dG9uLmRlbGV0ZX19Iik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogc2F2ZVBvcHVwRGF0YSgiZmlsdGVyIiwgIicgKyBpZCArICciLCB0cnVlLCAwKScpOw0KICAgICAgICAgICAgaW5wdXQuY2xhc3NOYW1lID0gImRlbGV0ZSI7DQogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIC8vIEFiYnJlY2hlbg0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImNhbmNlbCIsICJ7ey5idXR0b24uY2FuY2VsfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBzaG93RWxlbWVudCgicG9wdXAiLCBmYWxzZSk7Jyk7DQogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIC8vIFNwZWljaGVybg0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgInNhdmUiLCAie3suYnV0dG9uLnNhdmV9fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoImZpbHRlciIsICInICsgaWQgKyAnIiwgZmFsc2UsIDApJyk7DQogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJ4bWx0diI6DQogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUhlYWRsaW5lKGRhdGFUeXBlKTsNCiAgICAgICAgICAgIC8vIE5hbWUNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJuYW1lIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey54bWx0di5uYW1lLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey54bWx0di5uYW1lLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBCZXNjaHJlaWJ1bmcNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJkZXNjcmlwdGlvbiI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3sueG1sdHYuZGVzY3JpcHRpb24ucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnhtbHR2LmRlc2NyaXB0aW9uLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBVUkwNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJmaWxlLnNvdXJjZSI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3sueG1sdHYuZmlsZVhNTFRWLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey54bWx0di5maWxlWE1MVFYudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIEludGVyYWt0aW9uDQogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUludGVyYWN0aW9uKCk7DQogICAgICAgICAgICAvLyBMw7ZzY2hlbg0KICAgICAgICAgICAgaWYgKGRhdGFbImlkLnByb3ZpZGVyIl0gIT0gIi0iKSB7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImRlbGV0ZSIsICJ7ey5idXR0b24uZGVsZXRlfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogc2F2ZVBvcHVwRGF0YSgieG1sdHYiLCAiJyArIGlkICsgJyIsIHRydWUsIDApJyk7DQogICAgICAgICAgICAgICAgaW5wdXQuY2xhc3NOYW1lID0gImRlbGV0ZSI7DQogICAgICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICAvLyBBYmJyZWNoZW4NCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJjYW5jZWwiLCAie3suYnV0dG9uLmNhbmNlbH19Iik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogc2hvd0VsZW1lbnQoInBvcHVwIiwgZmFsc2UpOycpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICAvLyBBa3R1YWxpc2llcmVuDQogICAgICAgICAgICBpZiAoZGF0YVsiaWQucHJvdmlkZXIiXSAhPSAiLSIpIHsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAidXBkYXRlIiwgInt7LmJ1dHRvbi51cGRhdGV9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBzYXZlUG9wdXBEYXRhKCJ4bWx0diIsICInICsgaWQgKyAnIiwgZmFsc2UsIDEpJyk7DQogICAgICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICAvLyBTcGVpY2hlcm4NCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJzYXZlIiwgInt7LmJ1dHRvbi5zYXZlfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBzYXZlUG9wdXBEYXRhKCJ4bWx0diIsICInICsgaWQgKyAnIiwgZmFsc2UsIDApJyk7DQogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJ1c2VycyI6DQogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUhlYWRsaW5lKCJ7ey5tYWluTWVudS5pdGVtLnVzZXJzfX0iKTsNCiAgICAgICAgICAgIC8vIEJlbnV0emVybmFtZSANCiAgICAgICAgICAgIHZhciBkYktleSA9ICJ1c2VybmFtZSI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3sudXNlcnMudXNlcm5hbWUucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnVzZXJzLnVzZXJuYW1lLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBOZXVlcyBQYXNzd29ydCANCiAgICAgICAgICAgIHZhciBkYktleSA9ICJwYXNzd29yZCI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJwYXNzd29yZCIsIGRiS2V5LCAiIik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnVzZXJzLnBhc3N3b3JkLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey51c2Vycy5wYXNzd29yZC50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgLy8gQmVzdMOkdGlndW5nIA0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gImNvbmZpcm0iOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgicGFzc3dvcmQiLCBkYktleSwgIiIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey51c2Vycy5jb25maXJtLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey51c2Vycy5jb25maXJtLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBCZXJlY2h0aWd1bmcgV0VCDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAiYXV0aGVudGljYXRpb24ud2ViIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goZGJLZXkpOw0KICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGFbZGJLZXldOw0KICAgICAgICAgICAgaWYgKGRhdGFbImRlZmF1bHRVc2VyIl0gPT0gdHJ1ZSkgew0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICJqYXZhc2NyaXB0OiByZXR1cm4gZmFsc2UiKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey51c2Vycy53ZWIudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIEJlcmVjaHRpZ3VuZyBQTVMNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJhdXRoZW50aWNhdGlvbi5wbXMiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChkYktleSk7DQogICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YVtkYktleV07DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sudXNlcnMucG1zLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBCZXJlY2h0aWd1bmcgTTNVDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAiYXV0aGVudGljYXRpb24ubTN1IjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goZGJLZXkpOw0KICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGFbZGJLZXldOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnVzZXJzLm0zdS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgLy8gQmVyZWNodGlndW5nIFhNTA0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gImF1dGhlbnRpY2F0aW9uLnhtbCI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KGRiS2V5KTsNCiAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhW2RiS2V5XTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey51c2Vycy54bWwudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIEJlcmVjaHRpZ3VuZyBBUEkNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJhdXRoZW50aWNhdGlvbi5hcGkiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChkYktleSk7DQogICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YVtkYktleV07DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sudXNlcnMuYXBpLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBJbnRlcmFrdGlvbg0KICAgICAgICAgICAgY29udGVudC5jcmVhdGVJbnRlcmFjdGlvbigpOw0KICAgICAgICAgICAgLy8gTMO2c2NoZW4NCiAgICAgICAgICAgIGlmIChkYXRhWyJkZWZhdWx0VXNlciJdICE9IHRydWUgJiYgaWQgIT0gIi0iKSB7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImRlbGV0ZSIsICJ7ey5idXR0b24uZGVsZXRlfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5jbGFzc05hbWUgPSAiZGVsZXRlIjsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogc2F2ZVBvcHVwRGF0YSgiJyArIGRhdGFUeXBlICsgJyIsICInICsgaWQgKyAnIiwgdHJ1ZSwgMCknKTsNCiAgICAgICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIC8vIEFiYnJlY2hlbg0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImNhbmNlbCIsICJ7ey5idXR0b24uY2FuY2VsfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBzaG93RWxlbWVudCgicG9wdXAiLCBmYWxzZSk7Jyk7DQogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIC8vIFNwZWljaGVybg0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgInNhdmUiLCAie3suYnV0dG9uLnNhdmV9fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoIicgKyBkYXRhVHlwZSArICciLCAiJyArIGlkICsgJyIsICJmYWxzZSIpOycpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSAibWFwcGluZyI6DQogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUhlYWRsaW5lKCJ7ey5tYWluTWVudS5pdGVtLm1hcHBpbmd9fSIpOw0KICAgICAgICAgICAgLy8gQWt0aXYgDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAieC1hY3RpdmUiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChkYktleSk7DQogICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YVtkYktleV07DQogICAgICAgICAgICBpbnB1dC5pZCA9ICJhY3RpdmUiOw0KICAgICAgICAgICAgLy9pbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIikNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdG9nZ2xlQ2hhbm5lbFN0YXR1cygnIiArIGlkICsgIicsIHRoaXMpIik7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3subWFwcGluZy5hY3RpdmUudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIEthbmFsbmFtZSANCiAgICAgICAgICAgIHZhciBkYktleSA9ICJ4LW5hbWUiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICBpZiAoQlVMS19FRElUID09IHRydWUpIHsNCiAgICAgICAgICAgICAgICBpbnB1dC5zdHlsZS5ib3JkZXIgPSAic29saWQgMXB4IHJlZCI7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJyZWFkb25seSIsICJ0cnVlIik7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3subWFwcGluZy5jaGFubmVsTmFtZS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgY29udGVudC5kZXNjcmlwdGlvbihkYXRhWyJuYW1lIl0pOw0KICAgICAgICAgICAgLy8gQmVzY2hyZWlidW5nIA0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gIngtZGVzY3JpcHRpb24iOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7Lm1hcHBpbmcuZGVzY3JpcHRpb24ucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7Lm1hcHBpbmcuZGVzY3JpcHRpb24udGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIEFrdHVhbGlzaWVydW5nIGRlcyBLYW5hbG5hbWVucw0KICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoIl91dWlkLmtleSIpKSB7DQogICAgICAgICAgICAgICAgaWYgKGRhdGFbIl91dWlkLmtleSJdICE9ICIiKSB7DQogICAgICAgICAgICAgICAgICAgIHZhciBkYktleSA9ICJ4LXVwZGF0ZS1jaGFubmVsLW5hbWUiOw0KICAgICAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KGRiS2V5KTsNCiAgICAgICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YVtkYktleV07DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5tYXBwaW5nLnVwZGF0ZUNoYW5uZWxOYW1lLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgLy8gTG9nbyBVUkwgKEthbmFsKSANCiAgICAgICAgICAgIHZhciBkYktleSA9ICJ0dmctbG9nbyI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgiaWQiLCAiY2hhbm5lbC1pY29uIik7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3subWFwcGluZy5jaGFubmVsTG9nby50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgLy8gQWt0dWFsaXNpZXJ1bmcgZGVzIEthbmFsbG9nb3MNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJ4LXVwZGF0ZS1jaGFubmVsLWljb24iOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChkYktleSk7DQogICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YVtkYktleV07DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoImlkIiwgInVwZGF0ZS1pY29uIik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnOyBjaGFuZ2VDaGFubmVsTG9nbygnIiArIGlkICsgIicpOyIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7Lm1hcHBpbmcudXBkYXRlQ2hhbm5lbExvZ28udGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIEVyd2VpdGVybiBkZXIgRVBHIEthdGVnb3JpZQ0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gIngtY2F0ZWdvcnkiOw0KICAgICAgICAgICAgdmFyIHRleHQgPSBbIi0iLCAiS2lkcyAoRW1ieSBvbmx5KSIsICJOZXdzIiwgIk1vdmllIiwgIlNlcmllcyIsICJTcG9ydHMiXTsNCiAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBbIiIsICJLaWRzIiwgIk5ld3MiLCAiTW92aWUiLCAiU2VyaWVzIiwgIlNwb3J0cyJdOw0KICAgICAgICAgICAgdmFyIHNlbGVjdCA9IGNvbnRlbnQuY3JlYXRlU2VsZWN0KHRleHQsIHZhbHVlcywgZGF0YVtkYktleV0sIGRiS2V5KTsNCiAgICAgICAgICAgIHNlbGVjdC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3subWFwcGluZy5lcGdDYXRlZ29yeS50aXRsZX19Iiwgc2VsZWN0KTsNCiAgICAgICAgICAgIC8vIE0zVSBHcnVwcGVudGl0ZWwNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJ4LWdyb3VwLXRpdGxlIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7Lm1hcHBpbmcubTN1R3JvdXBUaXRsZS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgaWYgKGRhdGFbImdyb3VwLXRpdGxlIl0gIT0gdW5kZWZpbmVkKSB7DQogICAgICAgICAgICAgICAgY29udGVudC5kZXNjcmlwdGlvbihkYXRhWyJncm91cC10aXRsZSJdKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIC8vIFhNTFRWIERhdGVpDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAieC14bWx0di1maWxlIjsNCiAgICAgICAgICAgIHZhciB4bWxGaWxlID0gZGF0YVtkYktleV07DQogICAgICAgICAgICB2YXIgeG1sdHYgPSBuZXcgWE1MVFZGaWxlKCk7DQogICAgICAgICAgICB2YXIgc2VsZWN0ID0geG1sdHYuZ2V0RmlsZXMoZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgibmFtZSIsIGRiS2V5KTsNCiAgICAgICAgICAgIHNlbGVjdC5zZXRBdHRyaWJ1dGUoImlkIiwgInBvcHVwLXhtbHR2Iik7DQogICAgICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJzsgc2V0WG1sdHZDaGFubmVsKCciICsgaWQgKyAiJyx0aGlzKTsiKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5tYXBwaW5nLnhtbHR2RmlsZS50aXRsZX19Iiwgc2VsZWN0KTsNCiAgICAgICAgICAgIHZhciBmaWxlID0gZGF0YVtkYktleV07DQogICAgICAgICAgICAvLyBYTUxUViBNYXBwaW5nDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAieC1tYXBwaW5nIjsNCiAgICAgICAgICAgIHZhciB4bWx0diA9IG5ldyBYTUxUVkZpbGUoKTsNCiAgICAgICAgICAgIHZhciBzZWxlY3QgPSB4bWx0di5nZXRQcm9ncmFtcyhmaWxlLCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJuYW1lIiwgZGJLZXkpOw0KICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgiaWQiLCAicG9wdXAtbWFwcGluZyIpOw0KICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCc7IGNoZWNrWG1sdHZDaGFubmVsKCciICsgaWQgKyAiJyx0aGlzLCciICsgeG1sRmlsZSArICInKTsiKTsNCiAgICAgICAgICAgIHNvcnRTZWxlY3Qoc2VsZWN0KTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5tYXBwaW5nLnhtbHR2Q2hhbm5lbC50aXRsZX19Iiwgc2VsZWN0KTsNCiAgICAgICAgICAgIC8vIFRpbWVzaGlmdA0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gIngtdGltZXNoaWZ0IjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5tYXBwaW5nLnRpbWVzaGlmdC5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoImlkIiwgInRpbWVzaGlmdCIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7Lm1hcHBpbmcudGltZXNoaWZ0LnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBJbnRlcmFrdGlvbg0KICAgICAgICAgICAgY29udGVudC5jcmVhdGVJbnRlcmFjdGlvbigpOw0KICAgICAgICAgICAgLy8gTG9nbyBob2NobGFkZW4NCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJjYW5jZWwiLCAie3suYnV0dG9uLnVwbG9hZExvZ299fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IHVwbG9hZExvZ28oKTsnKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgLy8gQWJicmVjaGVuDQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAiY2FuY2VsIiwgInt7LmJ1dHRvbi5jYW5jZWx9fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IHNob3dFbGVtZW50KCJwb3B1cCIsIGZhbHNlKTsnKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgLy8gRmVydGlnDQogICAgICAgICAgICB2YXIgaWRzID0gW107DQogICAgICAgICAgICBpZHMgPSBnZXRBbGxTZWxlY3RlZENoYW5uZWxzKCk7DQogICAgICAgICAgICBpZiAoaWRzLmxlbmd0aCA9PSAwKSB7DQogICAgICAgICAgICAgICAgaWRzLnB1c2goaWQpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgInNhdmUiLCAie3suYnV0dG9uLmRvbmV9fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IGRvbmVQb3B1cERhdGEoIicgKyBkYXRhVHlwZSArICciLCAiJyArIGlkcyArICciLCAiZmFsc2UiKTsnKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICBicmVhazsNCiAgICB9DQogICAgc2hvd1BvcFVwRWxlbWVudCgncG9wdXAtY3VzdG9tJyk7DQp9DQpjbGFzcyBYTUxUVkZpbGUgew0KICAgIGdldEZpbGVzKHNldCkgew0KICAgICAgICBsZXQgZmlsZUlEcyA9IGdldE9iaktleXMoU0VSVkVSWyJ4ZXBnIl1bInhtbHR2TWFwIl0pOw0KICAgICAgICBsZXQgdmFsdWVzID0gbmV3IEFycmF5KCItIik7DQogICAgICAgIGxldCB0ZXh0ID0gbmV3IEFycmF5KCItIik7DQogICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgZmlsZUlEcy5sZW5ndGg7IGkrKykgew0KICAgICAgICAgICAgaWYgKGZpbGVJRHNbaV0gIT0gInhUZVZlIER1bW15Iikgew0KICAgICAgICAgICAgICAgIHZhbHVlcy5wdXNoKGdldFZhbHVlRnJvbVByb3ZpZGVyRmlsZShmaWxlSURzW2ldLCAieG1sdHYiLCAiZmlsZS54dGV2ZSIpKTsNCiAgICAgICAgICAgICAgICB0ZXh0LnB1c2goZ2V0VmFsdWVGcm9tUHJvdmlkZXJGaWxlKGZpbGVJRHNbaV0sICJ4bWx0diIsICJuYW1lIikpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgZWxzZSB7DQogICAgICAgICAgICAgICAgdmFsdWVzLnB1c2goZmlsZUlEc1tpXSk7DQogICAgICAgICAgICAgICAgdGV4dC5wdXNoKGZpbGVJRHNbaV0pOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQogICAgICAgIGxldCBzZWxlY3QgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJTRUxFQ1QiKTsNCiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0ZXh0Lmxlbmd0aDsgaSsrKSB7DQogICAgICAgICAgICB2YXIgb3B0aW9uID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiT1BUSU9OIik7DQogICAgICAgICAgICBvcHRpb24uc2V0QXR0cmlidXRlKCJ2YWx1ZSIsIHZhbHVlc1tpXSk7DQogICAgICAgICAgICBvcHRpb24uaW5uZXJUZXh0ID0gdGV4dFtpXTsNCiAgICAgICAgICAgIHNlbGVjdC5hcHBlbmRDaGlsZChvcHRpb24pOw0KICAgICAgICB9DQogICAgICAgIGlmIChzZXQgIT0gIiIpIHsNCiAgICAgICAgICAgIHNlbGVjdC52YWx1ZSA9IHNldDsNCiAgICAgICAgfQ0KICAgICAgICByZXR1cm4gc2VsZWN0Ow0KICAgIH0NCiAgICBnZXRQcm9ncmFtcyhmaWxlLCBzZXQpIHsNCiAgICAgICAgLy92YXIgZmlsZUlEczpzdHJpbmdbXSA9IGdldE9iaktleXMoU0VSVkVSWyJ4ZXBnIl1bInhtbHR2TWFwIl0pDQogICAgICAgIGxldCB2YWx1ZXMgPSBnZXRPYmpLZXlzKFNFUlZFUlsieGVwZyJdWyJ4bWx0dk1hcCJdW2ZpbGVdKTsNCiAgICAgICAgbGV0IHRleHQgPSBbXTsNCiAgICAgICAgbGV0IGRpc3BsYXlOYW1lOw0KICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHZhbHVlcy5sZW5ndGg7IGkrKykgew0KICAgICAgICAgICAgaWYgKFNFUlZFUlsieGVwZyJdWyJ4bWx0dk1hcCJdW2ZpbGVdW3ZhbHVlc1tpXV0uaGFzT3duUHJvcGVydHkoJ2Rpc3BsYXktbmFtZScpID09IHRydWUpIHsNCiAgICAgICAgICAgICAgICBkaXNwbGF5TmFtZSA9IFNFUlZFUlsieGVwZyJdWyJ4bWx0dk1hcCJdW2ZpbGVdW3ZhbHVlc1tpXV1bImRpc3BsYXktbmFtZSJdOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgZWxzZSB7DQogICAgICAgICAgICAgICAgZGlzcGxheU5hbWUgPSAiLSI7DQogICAgICAgICAgICB9DQogICAgICAgICAgICB0ZXh0W2ldID0gZGlzcGxheU5hbWUgKyAiICgiICsgdmFsdWVzW2ldICsgIikiOw0KICAgICAgICB9DQogICAgICAgIHRleHQudW5zaGlmdCgiLSIpOw0KICAgICAgICB2YWx1ZXMudW5zaGlmdCgiLSIpOw0KICAgICAgICBsZXQgc2VsZWN0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiU0VMRUNUIik7DQogICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGV4dC5sZW5ndGg7IGkrKykgew0KICAgICAgICAgICAgdmFyIG9wdGlvbiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIk9QVElPTiIpOw0KICAgICAgICAgICAgb3B0aW9uLnNldEF0dHJpYnV0ZSgidmFsdWUiLCB2YWx1ZXNbaV0pOw0KICAgICAgICAgICAgb3B0aW9uLmlubmVyVGV4dCA9IHRleHRbaV07DQogICAgICAgICAgICBzZWxlY3QuYXBwZW5kQ2hpbGQob3B0aW9uKTsNCiAgICAgICAgfQ0KICAgICAgICBpZiAoc2V0ICE9ICIiKSB7DQogICAgICAgICAgICBzZWxlY3QudmFsdWUgPSBzZXQ7DQogICAgICAgIH0NCiAgICAgICAgaWYgKHNlbGVjdC52YWx1ZSAhPSBzZXQpIHsNCiAgICAgICAgICAgIHNlbGVjdC52YWx1ZSA9ICItIjsNCiAgICAgICAgfQ0KICAgICAgICByZXR1cm4gc2VsZWN0Ow0KICAgIH0NCn0NCmZ1bmN0aW9uIGdldFZhbHVlRnJvbVByb3ZpZGVyRmlsZShmaWxlLCBmaWxlVHlwZSwga2V5KSB7DQogICAgaWYgKGZpbGUgPT0gInhUZVZlIER1bW15Iikgew0KICAgICAgICByZXR1cm4gZmlsZTsNCiAgICB9DQogICAgbGV0IGZpbGVJRDsNCiAgICBsZXQgaW5kaWNhdG9yID0gZmlsZS5jaGFyQXQoMCk7DQogICAgc3dpdGNoIChpbmRpY2F0b3IpIHsNCiAgICAgICAgY2FzZSAiTSI6DQogICAgICAgICAgICBmaWxlVHlwZSA9ICJtM3UiOw0KICAgICAgICAgICAgZmlsZUlEID0gZmlsZTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJIIjoNCiAgICAgICAgICAgIGZpbGVUeXBlID0gImhkaHIiOw0KICAgICAgICAgICAgZmlsZUlEID0gZmlsZTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJYIjoNCiAgICAgICAgICAgIGZpbGVUeXBlID0gInhtbHR2IjsNCiAgICAgICAgICAgIGZpbGVJRCA9IGZpbGUuc3Vic3RyaW5nKDAsIGZpbGUubGFzdEluZGV4T2YoJy4nKSk7DQogICAgICAgICAgICBicmVhazsNCiAgICB9DQogICAgaWYgKFNFUlZFUlsic2V0dGluZ3MiXVsiZmlsZXMiXVtmaWxlVHlwZV0uaGFzT3duUHJvcGVydHkoZmlsZUlEKSA9PSB0cnVlKSB7DQogICAgICAgIHZhciBkYXRhID0gU0VSVkVSWyJzZXR0aW5ncyJdWyJmaWxlcyJdW2ZpbGVUeXBlXVtmaWxlSURdOw0KICAgICAgICByZXR1cm4gZGF0YVtrZXldOw0KICAgIH0NCiAgICByZXR1cm47DQp9DQpmdW5jdGlvbiBzZXRYbWx0dkNoYW5uZWwoaWQsIGVsZW1lbnQpIHsNCiAgICBsZXQgeG1sdHYgPSBuZXcgWE1MVFZGaWxlKCk7DQogICAgbGV0IHhtbEZpbGUgPSBlbGVtZW50LnZhbHVlOw0KICAgIGxldCB0dmdJZCA9IFNFUlZFUlsieGVwZyJdWyJlcGdNYXBwaW5nIl1baWRdWyJ0dmctaWQiXTsNCiAgICBsZXQgdGQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicG9wdXAtbWFwcGluZyIpLnBhcmVudEVsZW1lbnQ7DQogICAgdGQuaW5uZXJIVE1MID0gIiI7DQogICAgbGV0IHNlbGVjdCA9IHhtbHR2LmdldFByb2dyYW1zKGVsZW1lbnQudmFsdWUsIHR2Z0lkKTsNCiAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJuYW1lIiwgIngtbWFwcGluZyIpOw0KICAgIHNlbGVjdC5zZXRBdHRyaWJ1dGUoImlkIiwgInBvcHVwLW1hcHBpbmciKTsNCiAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJzsgY2hlY2tYbWx0dkNoYW5uZWwoJyIgKyBpZCArICInLHRoaXMsJyIgKyB4bWxGaWxlICsgIicpOyIpOw0KICAgIHNlbGVjdC5jbGFzc05hbWUgPSAiY2hhbmdlZCI7DQogICAgc29ydFNlbGVjdChzZWxlY3QpOw0KICAgIHRkLmFwcGVuZENoaWxkKHNlbGVjdCk7DQogICAgY2hlY2tYbWx0dkNoYW5uZWwoaWQsIHNlbGVjdCwgeG1sRmlsZSk7DQp9DQpmdW5jdGlvbiBjaGVja1htbHR2Q2hhbm5lbChpZCwgZWxlbWVudCwgeG1sRmlsZSkgew0KICAgIGxldCB2YWx1ZSA9IGVsZW1lbnQudmFsdWU7DQogICAgbGV0IGJvb2w7DQogICAgbGV0IGNoZWNrYm94ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2FjdGl2ZScpOw0KICAgIGxldCBjaGFubmVsID0gU0VSVkVSWyJ4ZXBnIl1bImVwZ01hcHBpbmciXVtpZF07DQogICAgbGV0IHVwZGF0ZUxvZ287DQogICAgYm9vbCA9IHZhbHVlICE9ICItIjsNCiAgICBjaGVja2JveC5jaGVja2VkID0gYm9vbDsNCiAgICBjaGVja2JveC5jbGFzc05hbWUgPSAiY2hhbmdlZCI7DQogICAgY29uc29sZS5sb2coeG1sRmlsZSk7DQogICAgLy8gS2FuYWxsb2dvIGFrdHVhbGlzaWVyZW4NCiAgICAvKg0KICAgIHVwZGF0ZUxvZ28gPSAoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInVwZGF0ZS1pY29uIikgYXMgSFRNTElucHV0RWxlbWVudCkuY2hlY2tlZA0KICAgIGNvbnNvbGUubG9nKHVwZGF0ZUxvZ28pOw0KICAgICovDQogICAgaWYgKHhtbEZpbGUgIT0gInhUZVZlIER1bW15IiAmJiBib29sID09IHRydWUpIHsNCiAgICAgICAgLy8oZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInVwZGF0ZS1pY29uIikgYXMgSFRNTElucHV0RWxlbWVudCkuY2hlY2tlZCA9IHRydWU7DQogICAgICAgIC8vKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ1cGRhdGUtaWNvbiIpIGFzIEhUTUxJbnB1dEVsZW1lbnQpLmNsYXNzTmFtZSA9ICJjaGFuZ2VkIjsNCiAgICAgICAgY29uc29sZS5sb2coIklEIiwgaWQpOw0KICAgICAgICBjaGFuZ2VDaGFubmVsTG9nbyhpZCk7DQogICAgICAgIHJldHVybjsNCiAgICB9DQogICAgaWYgKHhtbEZpbGUgPT0gInhUZVZlIER1bW15Iikgew0KICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidXBkYXRlLWljb24iKS5jaGVja2VkID0gZmFsc2U7DQogICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ1cGRhdGUtaWNvbiIpLmNsYXNzTmFtZSA9ICJjaGFuZ2VkIjsNCiAgICB9DQogICAgcmV0dXJuOw0KfQ0KZnVuY3Rpb24gY2hhbmdlQ2hhbm5lbExvZ28oaWQpIHsNCiAgICBsZXQgdXBkYXRlTG9nbzsNCiAgICBsZXQgY2hhbm5lbCA9IFNFUlZFUlsieGVwZyJdWyJlcGdNYXBwaW5nIl1baWRdOw0KICAgIGxldCBmID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInBvcHVwLXhtbHR2Iik7DQogICAgbGV0IHhtbHR2RmlsZSA9IGYub3B0aW9uc1tmLnNlbGVjdGVkSW5kZXhdLnZhbHVlOw0KICAgIGxldCBtID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInBvcHVwLW1hcHBpbmciKTsNCiAgICBsZXQgeE1hcHBpbmcgPSBtLm9wdGlvbnNbbS5zZWxlY3RlZEluZGV4XS52YWx1ZTsNCiAgICBsZXQgeG1sdHZMb2dvID0gU0VSVkVSWyJ4ZXBnIl1bInhtbHR2TWFwIl1beG1sdHZGaWxlXVt4TWFwcGluZ11bImljb24iXTsNCiAgICB1cGRhdGVMb2dvID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInVwZGF0ZS1pY29uIikuY2hlY2tlZDsNCiAgICBpZiAodXBkYXRlTG9nbyA9PSB0cnVlICYmIHhtbHR2RmlsZSAhPSAieFRlVmUgRHVtbXkiKSB7DQogICAgICAgIGlmIChTRVJWRVJbInhlcGciXVsieG1sdHZNYXAiXVt4bWx0dkZpbGVdLmhhc093blByb3BlcnR5KHhNYXBwaW5nKSkgew0KICAgICAgICAgICAgdmFyIGxvZ28gPSB4bWx0dkxvZ287DQogICAgICAgIH0NCiAgICAgICAgZWxzZSB7DQogICAgICAgICAgICBsb2dvID0gY2hhbm5lbFsidHZnLWxvZ28iXTsNCiAgICAgICAgfQ0KICAgICAgICB2YXIgbG9nb0lucHV0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNoYW5uZWwtaWNvbiIpOw0KICAgICAgICBsb2dvSW5wdXQudmFsdWUgPSBsb2dvOw0KICAgICAgICBpZiAoQlVMS19FRElUID09IGZhbHNlKSB7DQogICAgICAgICAgICBsb2dvSW5wdXQuY2xhc3NOYW1lID0gImNoYW5nZWQiOw0KICAgICAgICB9DQogICAgfQ0KfQ0KZnVuY3Rpb24gc2F2ZVBvcHVwRGF0YShkYXRhVHlwZSwgaWQsIHJlbW92ZSwgb3B0aW9uKSB7DQogICAgaWYgKGRhdGFUeXBlID09ICJtYXBwaW5nIikgew0KICAgICAgICBsZXQgZGF0YSA9IHt9Ow0KICAgICAgICBjb25zb2xlLmxvZygiU2F2ZSBtYXBwaW5nIGRhdGEiKTsNCiAgICAgICAgbGV0IGNtZCA9ICJzYXZlRXBnTWFwcGluZyI7DQogICAgICAgIGRhdGFbImVwZ01hcHBpbmciXSA9IFNFUlZFUlsieGVwZyJdWyJlcGdNYXBwaW5nIl07DQogICAgICAgIGNvbnNvbGUubG9nKCJTRU5EIFRPIFNFUlZFUiIpOw0KICAgICAgICBsZXQgc2VydmVyID0gbmV3IFNlcnZlcihjbWQpOw0KICAgICAgICBzZXJ2ZXIucmVxdWVzdChkYXRhKTsNCiAgICAgICAgZGVsZXRlIFVORE9bImVwZ01hcHBpbmciXTsNCiAgICAgICAgcmV0dXJuOw0KICAgIH0NCiAgICBjb25zb2xlLmxvZygiU2F2ZSBwb3B1cCBkYXRhIik7DQogICAgbGV0IGRpdiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJwb3B1cC1jdXN0b20iKTsNCiAgICBsZXQgaW5wdXRzID0gZGl2LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJUQUJMRSIpWzBdLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJJTlBVVCIpOw0KICAgIGxldCBzZWxlY3RzID0gZGl2LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJUQUJMRSIpWzBdLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJTRUxFQ1QiKTsNCiAgICBsZXQgaW5wdXQgPSB7fTsNCiAgICBsZXQgY29uZmlybU1zZzsNCiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHNlbGVjdHMubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgdmFyIG5hbWU7DQogICAgICAgIG5hbWUgPSBzZWxlY3RzW2ldLm5hbWU7DQogICAgICAgIHZhciB2YWx1ZSA9IHNlbGVjdHNbaV0udmFsdWU7DQogICAgICAgIHN3aXRjaCAobmFtZSkgew0KICAgICAgICAgICAgY2FzZSAidHVuZXIiOg0KICAgICAgICAgICAgICAgIGlucHV0W25hbWVdID0gcGFyc2VJbnQodmFsdWUpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgICAgICBpbnB1dFtuYW1lXSA9IHZhbHVlOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICB9DQogICAgfQ0KICAgIGZvciAobGV0IGkgPSAwOyBpIDwgaW5wdXRzLmxlbmd0aDsgaSsrKSB7DQogICAgICAgIHN3aXRjaCAoaW5wdXRzW2ldLnR5cGUpIHsNCiAgICAgICAgICAgIGNhc2UgImNoZWNrYm94IjoNCiAgICAgICAgICAgICAgICBuYW1lID0gaW5wdXRzW2ldLm5hbWU7DQogICAgICAgICAgICAgICAgaW5wdXRbbmFtZV0gPSBpbnB1dHNbaV0uY2hlY2tlZDsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInRleHQiOg0KICAgICAgICAgICAgY2FzZSAiaGlkZGVuIjoNCiAgICAgICAgICAgIGNhc2UgInBhc3N3b3JkIjoNCiAgICAgICAgICAgICAgICBuYW1lID0gaW5wdXRzW2ldLm5hbWU7DQogICAgICAgICAgICAgICAgc3dpdGNoIChuYW1lKSB7DQogICAgICAgICAgICAgICAgICAgIGNhc2UgInR1bmVyIjoNCiAgICAgICAgICAgICAgICAgICAgICAgIGlucHV0W25hbWVdID0gcGFyc2VJbnQoaW5wdXRzW2ldLnZhbHVlKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgICAgICBkZWZhdWx0Og0KICAgICAgICAgICAgICAgICAgICAgICAgaW5wdXRbbmFtZV0gPSBpbnB1dHNbaV0udmFsdWU7DQogICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIH0NCiAgICB9DQogICAgbGV0IGRhdGEgPSB7fTsNCiAgICBsZXQgY21kOw0KICAgIGlmIChyZW1vdmUgPT0gdHJ1ZSkgew0KICAgICAgICBpbnB1dFsiZGVsZXRlIl0gPSB0cnVlOw0KICAgIH0NCiAgICBzd2l0Y2ggKGRhdGFUeXBlKSB7DQogICAgICAgIGNhc2UgInVzZXJzIjoNCiAgICAgICAgICAgIGNvbmZpcm1Nc2cgPSAiRGVsZXRlIHRoaXMgdXNlcj8iOw0KICAgICAgICAgICAgaWYgKGlkID09ICItIikgew0KICAgICAgICAgICAgICAgIGNtZCA9ICJzYXZlTmV3VXNlciI7DQogICAgICAgICAgICAgICAgZGF0YVsidXNlckRhdGEiXSA9IGlucHV0Ow0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgZWxzZSB7DQogICAgICAgICAgICAgICAgY21kID0gInNhdmVVc2VyRGF0YSI7DQogICAgICAgICAgICAgICAgbGV0IGQgPSB7fTsNCiAgICAgICAgICAgICAgICBkW2lkXSA9IGlucHV0Ow0KICAgICAgICAgICAgICAgIGRhdGFbInVzZXJEYXRhIl0gPSBkOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGNhc2UgIm0zdSI6DQogICAgICAgICAgICBjb25maXJtTXNnID0gIkRlbGV0ZSB0aGlzIHBsYXlsaXN0PyI7DQogICAgICAgICAgICBzd2l0Y2ggKG9wdGlvbikgew0KICAgICAgICAgICAgICAgIC8vIFBvcHVwOiBTYXZlDQogICAgICAgICAgICAgICAgY2FzZSAwOg0KICAgICAgICAgICAgICAgICAgICBjbWQgPSAic2F2ZUZpbGVzTTNVIjsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgLy8gUG9wdXA6IFVwZGF0ZQ0KICAgICAgICAgICAgICAgIGNhc2UgMToNCiAgICAgICAgICAgICAgICAgICAgY21kID0gInVwZGF0ZUZpbGVNM1UiOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGRhdGFbImZpbGVzIl0gPSB7fTsNCiAgICAgICAgICAgIGRhdGFbImZpbGVzIl1bZGF0YVR5cGVdID0ge307DQogICAgICAgICAgICBkYXRhWyJmaWxlcyJdW2RhdGFUeXBlXVtpZF0gPSBpbnB1dDsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJoZGhyIjoNCiAgICAgICAgICAgIGNvbmZpcm1Nc2cgPSAiRGVsZXRlIHRoaXMgSERIb21lUnVuIHR1bmVyPyI7DQogICAgICAgICAgICBzd2l0Y2ggKG9wdGlvbikgew0KICAgICAgICAgICAgICAgIC8vIFBvcHVwOiBTYXZlDQogICAgICAgICAgICAgICAgY2FzZSAwOg0KICAgICAgICAgICAgICAgICAgICBjbWQgPSAic2F2ZUZpbGVzSERIUiI7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIC8vIFBvcHVwOiBVcGRhdGUNCiAgICAgICAgICAgICAgICBjYXNlIDE6DQogICAgICAgICAgICAgICAgICAgIGNtZCA9ICJ1cGRhdGVGaWxlSERIUiI7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgZGF0YVsiZmlsZXMiXSA9IHt9Ow0KICAgICAgICAgICAgZGF0YVsiZmlsZXMiXVtkYXRhVHlwZV0gPSB7fTsNCiAgICAgICAgICAgIGRhdGFbImZpbGVzIl1bZGF0YVR5cGVdW2lkXSA9IGlucHV0Ow0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGNhc2UgInhtbHR2IjoNCiAgICAgICAgICAgIGNvbmZpcm1Nc2cgPSAiRGVsZXRlIHRoaXMgWE1MVFYgZmlsZT8iOw0KICAgICAgICAgICAgc3dpdGNoIChvcHRpb24pIHsNCiAgICAgICAgICAgICAgICAvLyBQb3B1cDogU2F2ZQ0KICAgICAgICAgICAgICAgIGNhc2UgMDoNCiAgICAgICAgICAgICAgICAgICAgY21kID0gInNhdmVGaWxlc1hNTFRWIjsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgLy8gUG9wdXA6IFVwZGF0ZQ0KICAgICAgICAgICAgICAgIGNhc2UgMToNCiAgICAgICAgICAgICAgICAgICAgY21kID0gInVwZGF0ZUZpbGVYTUxUViI7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgZGF0YVsiZmlsZXMiXSA9IHt9Ow0KICAgICAgICAgICAgZGF0YVsiZmlsZXMiXVtkYXRhVHlwZV0gPSB7fTsNCiAgICAgICAgICAgIGRhdGFbImZpbGVzIl1bZGF0YVR5cGVdW2lkXSA9IGlucHV0Ow0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGNhc2UgImZpbHRlciI6DQogICAgICAgICAgICBjb25maXJtTXNnID0gIkRlbGV0ZSB0aGlzIGZpbHRlcj8iOw0KICAgICAgICAgICAgY21kID0gInNhdmVGaWx0ZXIiOw0KICAgICAgICAgICAgZGF0YVsiZmlsdGVyIl0gPSB7fTsNCiAgICAgICAgICAgIGRhdGFbImZpbHRlciJdW2lkXSA9IGlucHV0Ow0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICBjb25zb2xlLmxvZyhkYXRhVHlwZSwgaWQpOw0KICAgICAgICAgICAgcmV0dXJuOw0KICAgIH0NCiAgICBpZiAocmVtb3ZlID09IHRydWUpIHsNCiAgICAgICAgaWYgKCFjb25maXJtKGNvbmZpcm1Nc2cpKSB7DQogICAgICAgICAgICBzaG93RWxlbWVudCgicG9wdXAiLCBmYWxzZSk7DQogICAgICAgICAgICByZXR1cm47DQogICAgICAgIH0NCiAgICB9DQogICAgY29uc29sZS5sb2coIlNFTkQgVE8gU0VSVkVSIik7DQogICAgY29uc29sZS5sb2coZGF0YSk7DQogICAgbGV0IHNlcnZlciA9IG5ldyBTZXJ2ZXIoY21kKTsNCiAgICBzZXJ2ZXIucmVxdWVzdChkYXRhKTsNCn0NCmZ1bmN0aW9uIGRvbmVQb3B1cERhdGEoZGF0YVR5cGUsIGlkc1N0cikgew0KICAgIGxldCBpZHMgPSBpZHNTdHIuc3BsaXQoJywnKTsNCiAgICBsZXQgZGl2ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInBvcHVwLWN1c3RvbSIpOw0KICAgIGxldCBpbnB1dHMgPSBkaXYuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSgiY2hhbmdlZCIpOw0KICAgIGlkcy5mb3JFYWNoKGlkID0+IHsNCiAgICAgICAgbGV0IGlucHV0Ow0KICAgICAgICBpbnB1dCA9IFNFUlZFUlsieGVwZyJdWyJlcGdNYXBwaW5nIl1baWRdOw0KICAgICAgICBjb25zb2xlLmxvZyhpbnB1dCk7DQogICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgaW5wdXRzLmxlbmd0aDsgaSsrKSB7DQogICAgICAgICAgICBsZXQgbmFtZTsNCiAgICAgICAgICAgIGxldCB2YWx1ZTsNCiAgICAgICAgICAgIHN3aXRjaCAoaW5wdXRzW2ldLnRhZ05hbWUpIHsNCiAgICAgICAgICAgICAgICBjYXNlICJJTlBVVCI6DQogICAgICAgICAgICAgICAgICAgIHN3aXRjaCAoaW5wdXRzW2ldLnR5cGUpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgImNoZWNrYm94IjoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lID0gaW5wdXRzW2ldLm5hbWU7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSBpbnB1dHNbaV0uY2hlY2tlZDsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnB1dFtuYW1lXSA9IHZhbHVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAidGV4dCI6DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZSA9IGlucHV0c1tpXS5uYW1lOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlID0gaW5wdXRzW2ldLnZhbHVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlucHV0W25hbWVdID0gdmFsdWU7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAiU0VMRUNUIjoNCiAgICAgICAgICAgICAgICAgICAgbmFtZSA9IGlucHV0c1tpXS5uYW1lOw0KICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IGlucHV0c1tpXS52YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgaW5wdXRbbmFtZV0gPSB2YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBzd2l0Y2ggKG5hbWUpIHsNCiAgICAgICAgICAgICAgICBjYXNlICJ0dmctbG9nbyI6DQogICAgICAgICAgICAgICAgICAgIC8vKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5jaGlsZE5vZGVzWzJdLmZpcnN0Q2hpbGQgYXMgSFRNTEVsZW1lbnQpLnNldEF0dHJpYnV0ZSgic3JjIiwgdmFsdWUpDQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgIngtbmFtZSI6DQogICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5jaGlsZE5vZGVzWzNdLmZpcnN0Q2hpbGQuaW5uZXJIVE1MID0gdmFsdWU7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgIngtY2F0ZWdvcnkiOg0KICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkuY2hpbGROb2Rlc1szXS5maXJzdENoaWxkLmNsYXNzTmFtZSA9IHZhbHVlOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBjYXNlICJ4LWdyb3VwLXRpdGxlIjoNCiAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpLmNoaWxkTm9kZXNbNV0uZmlyc3RDaGlsZC5pbm5lckhUTUwgPSB2YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAieC14bWx0di1maWxlIjoNCiAgICAgICAgICAgICAgICAgICAgaWYgKHZhbHVlICE9ICJ4VGVWZSBEdW1teSIgJiYgdmFsdWUgIT0gIi0iKSB7DQogICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IGdldFZhbHVlRnJvbVByb3ZpZGVyRmlsZSh2YWx1ZSwgInhtbHR2IiwgIm5hbWUiKTsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBpZiAodmFsdWUgPT0gIi0iKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBpbnB1dFsieC1hY3RpdmUiXSA9IGZhbHNlOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5jaGlsZE5vZGVzWzZdLmZpcnN0Q2hpbGQuaW5uZXJIVE1MID0gdmFsdWU7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgIngtbWFwcGluZyI6DQogICAgICAgICAgICAgICAgICAgIGlmICh2YWx1ZSA9PSAiLSIpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGlucHV0WyJ4LWFjdGl2ZSJdID0gZmFsc2U7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpLmNoaWxkTm9kZXNbN10uZmlyc3RDaGlsZC5pbm5lckhUTUwgPSB2YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAieC10aW1lc2hpZnQiOg0KICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkuY2hpbGROb2Rlc1s4XS5maXJzdENoaWxkLmlubmVySFRNTCA9IHZhbHVlOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBkZWZhdWx0Og0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgY3JlYXRlU2VhcmNoT2JqKCk7DQogICAgICAgICAgICBzZWFyY2hJbk1hcHBpbmcoKTsNCiAgICAgICAgfQ0KICAgICAgICBpZiAoaW5wdXRbIngtYWN0aXZlIl0gPT0gZmFsc2UpIHsNCiAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5jbGFzc05hbWUgPSAibm90QWN0aXZlRVBHIjsNCiAgICAgICAgfQ0KICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5jbGFzc05hbWUgPSAiYWN0aXZlRVBHIjsNCiAgICAgICAgfQ0KICAgICAgICBjb25zb2xlLmxvZyhpbnB1dFsidHZnLWxvZ28iXSk7DQogICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5jaGlsZE5vZGVzWzJdLmZpcnN0Q2hpbGQuc2V0QXR0cmlidXRlKCJzcmMiLCBpbnB1dFsidHZnLWxvZ28iXSk7DQogICAgfSk7DQogICAgc2hvd0VsZW1lbnQoInBvcHVwIiwgZmFsc2UpOw0KICAgIHJldHVybjsNCn0NCmZ1bmN0aW9uIHNob3dQcmV2aWV3KGVsZW1lbnQpIHsNCiAgICBsZXQgZGl2ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm15U3RyZWFtc0JveCIpOw0KICAgIHN3aXRjaCAoZWxlbWVudCkgew0KICAgICAgICBjYXNlIGZhbHNlOg0KICAgICAgICAgICAgZGl2LmNsYXNzTmFtZSA9ICJub3RWaXNpYmxlIjsNCiAgICAgICAgICAgIHJldHVybjsNCiAgICB9DQogICAgbGV0IHN0cmVhbXMgPSBbImFjdGl2ZVN0cmVhbXMiLCAiaW5hY3RpdmVTdHJlYW1zIl07DQogICAgc3RyZWFtcy5mb3JFYWNoKHByZXZpZXcgPT4gew0KICAgICAgICBsZXQgdGFibGUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChwcmV2aWV3KTsNCiAgICAgICAgdGFibGUuaW5uZXJIVE1MID0gIiI7DQogICAgICAgIGxldCBvYmogPSBTRVJWRVJbImRhdGEiXVsiU3RyZWFtUHJldmlld1VJIl1bcHJldmlld107DQogICAgICAgIG9iai5mb3JFYWNoKGNoYW5uZWwgPT4gew0KICAgICAgICAgICAgbGV0IHRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVFIiKTsNCiAgICAgICAgICAgIGxldCB0ZEtleSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICBsZXQgdGRWYWwgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgdGRLZXkuY2xhc3NOYW1lID0gInRkS2V5IjsNCiAgICAgICAgICAgIHRkVmFsLmNsYXNzTmFtZSA9ICJ0ZFZhbCI7DQogICAgICAgICAgICBzd2l0Y2ggKHByZXZpZXcpIHsNCiAgICAgICAgICAgICAgICBjYXNlICJhY3RpdmVTdHJlYW1zIjoNCiAgICAgICAgICAgICAgICAgICAgdGRLZXkuaW5uZXJUZXh0ID0gIkNoYW5uZWw6ICgrKSI7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgImluYWN0aXZlU3RyZWFtcyI6DQogICAgICAgICAgICAgICAgICAgIHRkS2V5LmlubmVyVGV4dCA9ICJDaGFubmVsOiAoLSkiOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIHRkVmFsLmlubmVyVGV4dCA9IGNoYW5uZWw7DQogICAgICAgICAgICB0ci5hcHBlbmRDaGlsZCh0ZEtleSk7DQogICAgICAgICAgICB0ci5hcHBlbmRDaGlsZCh0ZFZhbCk7DQogICAgICAgICAgICB0YWJsZS5hcHBlbmRDaGlsZCh0cik7DQogICAgICAgIH0pOw0KICAgIH0pOw0KICAgIHNob3dFbGVtZW50KCJsb2FkaW5nIiwgZmFsc2UpOw0KICAgIGRpdi5jbGFzc05hbWUgPSAidmlzaWJsZSI7DQogICAgcmV0dXJuOw0KfQ0K" - webUI["html/js/settings_ts.js"] = "Y2xhc3MgU2V0dGluZ3NDYXRlZ29yeSB7DQogICAgY29uc3RydWN0b3IoKSB7DQogICAgICAgIHRoaXMuRG9jdW1lbnRJRCA9ICJjb250ZW50X3NldHRpbmdzIjsNCiAgICB9DQogICAgY3JlYXRlQ2F0ZWdvcnlIZWFkbGluZSh2YWx1ZSkgew0KICAgICAgICB2YXIgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIkg0Iik7DQogICAgICAgIGVsZW1lbnQuaW5uZXJIVE1MID0gdmFsdWU7DQogICAgICAgIHJldHVybiBlbGVtZW50Ow0KICAgIH0NCiAgICBjcmVhdGVIUigpIHsNCiAgICAgICAgdmFyIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJIUiIpOw0KICAgICAgICByZXR1cm4gZWxlbWVudDsNCiAgICB9DQogICAgY3JlYXRlU2V0dGluZ3Moc2V0dGluZ3NLZXkpIHsNCiAgICAgICAgdmFyIHNldHRpbmcgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJUUiIpOw0KICAgICAgICB2YXIgY29udGVudCA9IG5ldyBQb3B1cENvbnRlbnQoKTsNCiAgICAgICAgdmFyIGRhdGEgPSBTRVJWRVJbInNldHRpbmdzIl1bc2V0dGluZ3NLZXldOw0KICAgICAgICBzd2l0Y2ggKHNldHRpbmdzS2V5KSB7DQogICAgICAgICAgICAvLyBUZXh0ZWluZ2FiZW4NCiAgICAgICAgICAgIGNhc2UgInVwZGF0ZSI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy51cGRhdGUudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCAidXBkYXRlIiwgZGF0YS50b1N0cmluZygpKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnNldHRpbmdzLnVwZGF0ZS5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiYmFja3VwLnBhdGgiOg0KICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MuYmFja3VwUGF0aC50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsICJiYWNrdXAucGF0aCIsIGRhdGEpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3suc2V0dGluZ3MuYmFja3VwUGF0aC5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAidGVtcC5wYXRoIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLnRlbXBQYXRoLnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgInRlbXAucGF0aCIsIGRhdGEpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3suc2V0dGluZ3MudG1wUGF0aC5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAidXNlci5hZ2VudCI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy51c2VyQWdlbnQudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCAidXNlci5hZ2VudCIsIGRhdGEpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3suc2V0dGluZ3MudXNlckFnZW50LnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJidWZmZXIudGltZW91dCI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5idWZmZXJUaW1lb3V0LnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgImJ1ZmZlci50aW1lb3V0IiwgZGF0YSk7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5zZXR0aW5ncy5idWZmZXJUaW1lb3V0LnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJmZm1wZWcucGF0aCI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5mZm1wZWdQYXRoLnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgImZmbXBlZy5wYXRoIiwgZGF0YSk7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5zZXR0aW5ncy5mZm1wZWdQYXRoLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJmZm1wZWcub3B0aW9ucyI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5mZm1wZWdPcHRpb25zLnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgImZmbXBlZy5vcHRpb25zIiwgZGF0YSk7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5zZXR0aW5ncy5mZm1wZWdPcHRpb25zLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ2bGMucGF0aCI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy52bGNQYXRoLnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgInZsYy5wYXRoIiwgZGF0YSk7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5zZXR0aW5ncy52bGNQYXRoLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ2bGMub3B0aW9ucyI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy52bGNPcHRpb25zLnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgInZsYy5vcHRpb25zIiwgZGF0YSk7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5zZXR0aW5ncy52bGNPcHRpb25zLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAvLyBDaGVja2JveGVuDQogICAgICAgICAgICBjYXNlICJhdXRoZW50aWNhdGlvbi53ZWIiOg0KICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MuYXV0aGVudGljYXRpb25XRUIudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goc2V0dGluZ3NLZXkpOw0KICAgICAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImF1dGhlbnRpY2F0aW9uLnBtcyI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5hdXRoZW50aWNhdGlvblBNUy50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChzZXR0aW5nc0tleSk7DQogICAgICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGE7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiYXV0aGVudGljYXRpb24ubTN1IjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmF1dGhlbnRpY2F0aW9uTTNVLnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KHNldHRpbmdzS2V5KTsNCiAgICAgICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJhdXRoZW50aWNhdGlvbi54bWwiOg0KICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MuYXV0aGVudGljYXRpb25YTUwudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goc2V0dGluZ3NLZXkpOw0KICAgICAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImF1dGhlbnRpY2F0aW9uLmFwaSI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5hdXRoZW50aWNhdGlvbkFQSS50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChzZXR0aW5nc0tleSk7DQogICAgICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGE7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiZmlsZXMudXBkYXRlIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmZpbGVzVXBkYXRlLnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KHNldHRpbmdzS2V5KTsNCiAgICAgICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJjYWNoZS5pbWFnZXMiOg0KICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MuY2FjaGVJbWFnZXMudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goc2V0dGluZ3NLZXkpOw0KICAgICAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInhlcGcucmVwbGFjZS5taXNzaW5nLmltYWdlcyI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5yZXBsYWNlRW1wdHlJbWFnZXMudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goc2V0dGluZ3NLZXkpOw0KICAgICAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInh0ZXZlQXV0b1VwZGF0ZSI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy54dGV2ZUF1dG9VcGRhdGUudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goc2V0dGluZ3NLZXkpOw0KICAgICAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImFwaSI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5hcGkudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goc2V0dGluZ3NLZXkpOw0KICAgICAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIC8vIFNlbGVjdA0KICAgICAgICAgICAgY2FzZSAidHVuZXIiOg0KICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MudHVuZXIudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciB0ZXh0ID0gbmV3IEFycmF5KCk7DQogICAgICAgICAgICAgICAgdmFyIHZhbHVlcyA9IG5ldyBBcnJheSgpOw0KICAgICAgICAgICAgICAgIGZvciAodmFyIGkgPSAxOyBpIDw9IDEwMDsgaSsrKSB7DQogICAgICAgICAgICAgICAgICAgIHRleHQucHVzaChpKTsNCiAgICAgICAgICAgICAgICAgICAgdmFsdWVzLnB1c2goaSk7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIHZhciBzZWxlY3QgPSBjb250ZW50LmNyZWF0ZVNlbGVjdCh0ZXh0LCB2YWx1ZXMsIGRhdGEsIHNldHRpbmdzS2V5KTsNCiAgICAgICAgICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQoc2VsZWN0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImVwZ1NvdXJjZSI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5lcGdTb3VyY2UudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciB0ZXh0ID0gWyJQTVMiLCAiWEVQRyJdOw0KICAgICAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBbIlBNUyIsICJYRVBHIl07DQogICAgICAgICAgICAgICAgdmFyIHNlbGVjdCA9IGNvbnRlbnQuY3JlYXRlU2VsZWN0KHRleHQsIHZhbHVlcywgZGF0YSwgc2V0dGluZ3NLZXkpOw0KICAgICAgICAgICAgICAgIHNlbGVjdC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChzZWxlY3QpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiYmFja3VwLmtlZXAiOg0KICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MuYmFja3VwS2VlcC50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIHRleHQgPSBbIjUiLCAiMTAiLCAiMjAiLCAiMzAiLCAiNDAiLCAiNTAiXTsNCiAgICAgICAgICAgICAgICB2YXIgdmFsdWVzID0gWyI1IiwgIjEwIiwgIjIwIiwgIjMwIiwgIjQwIiwgIjUwIl07DQogICAgICAgICAgICAgICAgdmFyIHNlbGVjdCA9IGNvbnRlbnQuY3JlYXRlU2VsZWN0KHRleHQsIHZhbHVlcywgZGF0YSwgc2V0dGluZ3NLZXkpOw0KICAgICAgICAgICAgICAgIHNlbGVjdC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChzZWxlY3QpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiYnVmZmVyLnNpemUua2IiOg0KICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MuYnVmZmVyU2l6ZS50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIHRleHQgPSBbIjAuNSBNQiIsICIxIE1CIiwgIjIgTUIiLCAiMyBNQiIsICI0IE1CIiwgIjUgTUIiLCAiNiBNQiIsICI3IE1CIiwgIjggTUIiXTsNCiAgICAgICAgICAgICAgICB2YXIgdmFsdWVzID0gWyI1MTIiLCAiMTAyNCIsICIyMDQ4IiwgIjMwNzIiLCAiNDA5NiIsICI1MTIwIiwgIjYxNDQiLCAiNzE2OCIsICI4MTkyIl07DQogICAgICAgICAgICAgICAgdmFyIHNlbGVjdCA9IGNvbnRlbnQuY3JlYXRlU2VsZWN0KHRleHQsIHZhbHVlcywgZGF0YSwgc2V0dGluZ3NLZXkpOw0KICAgICAgICAgICAgICAgIHNlbGVjdC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChzZWxlY3QpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiYnVmZmVyIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLnN0cmVhbUJ1ZmZlcmluZy50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIHRleHQgPSBbInt7LnNldHRpbmdzLnN0cmVhbUJ1ZmZlcmluZy5pbmZvX2ZhbHNlfX0iLCAieFRlVmU6ICh7ey5zZXR0aW5ncy5zdHJlYW1CdWZmZXJpbmcuaW5mb194dGV2ZX19KSIsICJGRm1wZWc6ICh7ey5zZXR0aW5ncy5zdHJlYW1CdWZmZXJpbmcuaW5mb19mZm1wZWd9fSkiLCAiVkxDOiAoe3suc2V0dGluZ3Muc3RyZWFtQnVmZmVyaW5nLmluZm9fdmxjfX0pIl07DQogICAgICAgICAgICAgICAgdmFyIHZhbHVlcyA9IFsiLSIsICJ4dGV2ZSIsICJmZm1wZWciLCAidmxjIl07DQogICAgICAgICAgICAgICAgdmFyIHNlbGVjdCA9IGNvbnRlbnQuY3JlYXRlU2VsZWN0KHRleHQsIHZhbHVlcywgZGF0YSwgc2V0dGluZ3NLZXkpOw0KICAgICAgICAgICAgICAgIHNlbGVjdC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChzZWxlY3QpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAidWRweHkiOg0KICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MudWRweHkudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCAidWRweHkiLCBkYXRhKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnNldHRpbmdzLnVkcHh5LnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIH0NCiAgICAgICAgcmV0dXJuIHNldHRpbmc7DQogICAgfQ0KICAgIGNyZWF0ZURlc2NyaXB0aW9uKHNldHRpbmdzS2V5KSB7DQogICAgICAgIHZhciBkZXNjcmlwdGlvbiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlRSIik7DQogICAgICAgIHZhciB0ZXh0Ow0KICAgICAgICBzd2l0Y2ggKHNldHRpbmdzS2V5KSB7DQogICAgICAgICAgICBjYXNlICJhdXRoZW50aWNhdGlvbi53ZWIiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MuYXV0aGVudGljYXRpb25XRUIuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJhdXRoZW50aWNhdGlvbi5tM3UiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MuYXV0aGVudGljYXRpb25NM1UuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJhdXRoZW50aWNhdGlvbi5wbXMiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MuYXV0aGVudGljYXRpb25QTVMuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJhdXRoZW50aWNhdGlvbi54bWwiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MuYXV0aGVudGljYXRpb25YTUwuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJhdXRoZW50aWNhdGlvbi5hcGkiOg0KICAgICAgICAgICAgICAgIGlmIChTRVJWRVJbInNldHRpbmdzIl1bImF1dGhlbnRpY2F0aW9uLndlYiJdID09IHRydWUpIHsNCiAgICAgICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5hdXRoZW50aWNhdGlvbkFQSS5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ4dGV2ZUF1dG9VcGRhdGUiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MueHRldmVBdXRvVXBkYXRlLmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiYmFja3VwLmtlZXAiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MuYmFja3VwS2VlcC5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImJhY2t1cC5wYXRoIjoNCiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLmJhY2t1cFBhdGguZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ0ZW1wLnBhdGgiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MudGVtcFBhdGguZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJidWZmZXIiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3Muc3RyZWFtQnVmZmVyaW5nLmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiYnVmZmVyLnNpemUua2IiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MuYnVmZmVyU2l6ZS5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImJ1ZmZlci50aW1lb3V0IjoNCiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLmJ1ZmZlclRpbWVvdXQuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ1c2VyLmFnZW50IjoNCiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLnVzZXJBZ2VudC5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImZmbXBlZy5wYXRoIjoNCiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLmZmbXBlZ1BhdGguZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJmZm1wZWcub3B0aW9ucyI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5mZm1wZWdPcHRpb25zLmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAidmxjLnBhdGgiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MudmxjUGF0aC5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInZsYy5vcHRpb25zIjoNCiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLnZsY09wdGlvbnMuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJlcGdTb3VyY2UiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MuZXBnU291cmNlLmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAidHVuZXIiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MudHVuZXIuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ1cGRhdGUiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MudXBkYXRlLmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiYXBpIjoNCiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLmFwaS5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImZpbGVzLnVwZGF0ZSI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5maWxlc1VwZGF0ZS5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImNhY2hlLmltYWdlcyI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5jYWNoZUltYWdlcy5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInhlcGcucmVwbGFjZS5taXNzaW5nLmltYWdlcyI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5yZXBsYWNlRW1wdHlJbWFnZXMuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ1ZHB4eSI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy51ZHB4eS5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICAgICAgdGV4dCA9ICIiOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICB9DQogICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gIiI7DQogICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgdmFyIHByZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlBSRSIpOw0KICAgICAgICBwcmUuaW5uZXJIVE1MID0gdGV4dDsNCiAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChwcmUpOw0KICAgICAgICBkZXNjcmlwdGlvbi5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICBkZXNjcmlwdGlvbi5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgcmV0dXJuIGRlc2NyaXB0aW9uOw0KICAgIH0NCn0NCmNsYXNzIFNldHRpbmdzQ2F0ZWdvcnlJdGVtIGV4dGVuZHMgU2V0dGluZ3NDYXRlZ29yeSB7DQogICAgY29uc3RydWN0b3IoaGVhZGxpbmUsIHNldHRpbmdzS2V5cykgew0KICAgICAgICBzdXBlcigpOw0KICAgICAgICB0aGlzLmhlYWRsaW5lID0gaGVhZGxpbmU7DQogICAgICAgIHRoaXMuc2V0dGluZ3NLZXlzID0gc2V0dGluZ3NLZXlzOw0KICAgIH0NCiAgICBjcmVhdGVDYXRlZ29yeSgpIHsNCiAgICAgICAgdmFyIGhlYWRsaW5lID0gdGhpcy5jcmVhdGVDYXRlZ29yeUhlYWRsaW5lKHRoaXMuaGVhZGxpbmUpOw0KICAgICAgICB2YXIgc2V0dGluZ3NLZXlzID0gdGhpcy5zZXR0aW5nc0tleXM7DQogICAgICAgIHZhciBkb2MgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCh0aGlzLkRvY3VtZW50SUQpOw0KICAgICAgICBkb2MuYXBwZW5kQ2hpbGQoaGVhZGxpbmUpOw0KICAgICAgICAvLyBUYWJlbGxlIGbDvHIgZGllIEthdGVnb3JpZSBlcnN0ZWxsZW4NCiAgICAgICAgdmFyIHRhYmxlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEFCTEUiKTsNCiAgICAgICAgdmFyIGtleXMgPSBzZXR0aW5nc0tleXMuc3BsaXQoIiwiKTsNCiAgICAgICAga2V5cy5mb3JFYWNoKHNldHRpbmdzS2V5ID0+IHsNCiAgICAgICAgICAgIHN3aXRjaCAoc2V0dGluZ3NLZXkpIHsNCiAgICAgICAgICAgICAgICBjYXNlICJhdXRoZW50aWNhdGlvbi5wbXMiOg0KICAgICAgICAgICAgICAgIGNhc2UgImF1dGhlbnRpY2F0aW9uLm0zdSI6DQogICAgICAgICAgICAgICAgY2FzZSAiYXV0aGVudGljYXRpb24ueG1sIjoNCiAgICAgICAgICAgICAgICBjYXNlICJhdXRoZW50aWNhdGlvbi5hcGkiOg0KICAgICAgICAgICAgICAgICAgICBpZiAoU0VSVkVSWyJzZXR0aW5ncyJdWyJhdXRoZW50aWNhdGlvbi53ZWIiXSA9PSBmYWxzZSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBkZWZhdWx0Og0KICAgICAgICAgICAgICAgICAgICB2YXIgaXRlbSA9IHRoaXMuY3JlYXRlU2V0dGluZ3Moc2V0dGluZ3NLZXkpOw0KICAgICAgICAgICAgICAgICAgICB2YXIgZGVzY3JpcHRpb24gPSB0aGlzLmNyZWF0ZURlc2NyaXB0aW9uKHNldHRpbmdzS2V5KTsNCiAgICAgICAgICAgICAgICAgICAgdGFibGUuYXBwZW5kQ2hpbGQoaXRlbSk7DQogICAgICAgICAgICAgICAgICAgIHRhYmxlLmFwcGVuZENoaWxkKGRlc2NyaXB0aW9uKTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICB9DQogICAgICAgIH0pOw0KICAgICAgICBkb2MuYXBwZW5kQ2hpbGQodGFibGUpOw0KICAgICAgICBkb2MuYXBwZW5kQ2hpbGQodGhpcy5jcmVhdGVIUigpKTsNCiAgICB9DQp9DQpmdW5jdGlvbiBzaG93U2V0dGluZ3MoKSB7DQogICAgY29uc29sZS5sb2coIlNFVFRJTkdTIik7DQogICAgZm9yIChsZXQgaSA9IDA7IGkgPCBzZXR0aW5nc0NhdGVnb3J5Lmxlbmd0aDsgaSsrKSB7DQogICAgICAgIHNldHRpbmdzQ2F0ZWdvcnlbaV0uY3JlYXRlQ2F0ZWdvcnkoKTsNCiAgICB9DQp9DQpmdW5jdGlvbiBzYXZlU2V0dGluZ3MoKSB7DQogICAgY29uc29sZS5sb2coIlNhdmUgU2V0dGluZ3MiKTsNCiAgICB2YXIgY21kID0gInNhdmVTZXR0aW5ncyI7DQogICAgdmFyIGRpdiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb250ZW50X3NldHRpbmdzIik7DQogICAgdmFyIHNldHRpbmdzID0gZGl2LmdldEVsZW1lbnRzQnlDbGFzc05hbWUoImNoYW5nZWQiKTsNCiAgICB2YXIgbmV3U2V0dGluZ3MgPSBuZXcgT2JqZWN0KCk7DQogICAgZm9yIChsZXQgaSA9IDA7IGkgPCBzZXR0aW5ncy5sZW5ndGg7IGkrKykgew0KICAgICAgICB2YXIgbmFtZTsNCiAgICAgICAgdmFyIHZhbHVlOw0KICAgICAgICBzd2l0Y2ggKHNldHRpbmdzW2ldLnRhZ05hbWUpIHsNCiAgICAgICAgICAgIGNhc2UgIklOUFVUIjoNCiAgICAgICAgICAgICAgICBzd2l0Y2ggKHNldHRpbmdzW2ldLnR5cGUpIHsNCiAgICAgICAgICAgICAgICAgICAgY2FzZSAiY2hlY2tib3giOg0KICAgICAgICAgICAgICAgICAgICAgICAgbmFtZSA9IHNldHRpbmdzW2ldLm5hbWU7DQogICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IHNldHRpbmdzW2ldLmNoZWNrZWQ7DQogICAgICAgICAgICAgICAgICAgICAgICBuZXdTZXR0aW5nc1tuYW1lXSA9IHZhbHVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgICAgIGNhc2UgInRleHQiOg0KICAgICAgICAgICAgICAgICAgICAgICAgbmFtZSA9IHNldHRpbmdzW2ldLm5hbWU7DQogICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IHNldHRpbmdzW2ldLnZhbHVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgc3dpdGNoIChuYW1lKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAidXBkYXRlIjoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSB2YWx1ZS5zcGxpdCgiLCIpOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IHZhbHVlLmZpbHRlcihmdW5jdGlvbiAoZSkgeyByZXR1cm4gZTsgfSk7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgImJ1ZmZlci50aW1lb3V0IjoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSBwYXJzZUZsb2F0KHZhbHVlKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgIG5ld1NldHRpbmdzW25hbWVdID0gdmFsdWU7DQogICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJTRUxFQ1QiOg0KICAgICAgICAgICAgICAgIG5hbWUgPSBzZXR0aW5nc1tpXS5uYW1lOw0KICAgICAgICAgICAgICAgIHZhbHVlID0gc2V0dGluZ3NbaV0udmFsdWU7DQogICAgICAgICAgICAgICAgLy8gV2VubiBkZXIgV2VydCBlaW5lIFphaGwgaXN0LCB3aXJkIGRpZXNlciBhbHMgWmFobCBnZXNwZWljaGVydA0KICAgICAgICAgICAgICAgIGlmIChpc05hTih2YWx1ZSkpIHsNCiAgICAgICAgICAgICAgICAgICAgbmV3U2V0dGluZ3NbbmFtZV0gPSB2YWx1ZTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgZWxzZSB7DQogICAgICAgICAgICAgICAgICAgIG5ld1NldHRpbmdzW25hbWVdID0gcGFyc2VJbnQodmFsdWUpOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgfQ0KICAgIH0NCiAgICB2YXIgZGF0YSA9IG5ldyBPYmplY3QoKTsNCiAgICBkYXRhWyJzZXR0aW5ncyJdID0gbmV3U2V0dGluZ3M7DQogICAgdmFyIHNlcnZlciA9IG5ldyBTZXJ2ZXIoY21kKTsNCiAgICBzZXJ2ZXIucmVxdWVzdChkYXRhKTsNCn0NCg==" - webUI["html/video/stream-limit.ts"] = "R0AREABC8CUAAcEAAP8B/wAB/IAUSBIBBkZGbXBlZwlTZXJ2aWNlMDF3fEPK//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////9HQAAQAACwDQABwQAAAAHwACqxBLL//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////0dQABAAArASAAHBAADhAPAAG+EA8AAVvU1W////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////R0EAMAdQAAB7DH4AAAAB4AAAgMAKMQAJEKERAAfYYQAAAAEJ8AAAAAFnZAAorNlAeAIn5cBEAAADAAQAAAMAyDxgxlgAAAABaOvjyyLAAAABBgX//6rcRem95tlIt5Ys2CDZI+7veDI2NCAtIGNvcmUgMTUyIHIyODU0IGU5YTU5MDMgLSBILjI2NC9NUEVHLTQgQVZDIGNvZGVjIC0gQ29weWxlZnQgMjAwMy0yMDE3IC0gaHR0cDovL3dHAQARd3cudmlkZW9sYW4ub3JnL3gyNjQuaHRtbCAtIG9wdGlvbnM6IGNhYmFjPTEgcmVmPTMgZGVibG9jaz0xOjA6MCBhbmFseXNlPTB4MzoweDExMyBtZT1oZXggc3VibWU9NyBwc3k9MSBwc3lfcmQ9MS4wMDowLjAwIG1peGVkX3JlZj0xIG1lX3JhbmdlPTE2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ACqxBLL//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////0dQABEAArASAAHBAADhAPAAG+EA8AAVvU1W////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////RwEAGO10tGlFAwyE91Tzg8923ovJk1dv2xh1gVlYQFtWdZ6NSQ8vgHM7/tMfIZPsqgCU856rdBJJRMDaor/oWA7pkvSmC2aqaC5fd/mkWUPTuG8fRhGqOY1rKxLNSI3HtTQAcuVBxRM0NfMw0ky/JMJYZiCgXcNsxpxl+khr/9fKtO5Fg2VNBti92xcZimHUZDJMQTBOY6vSR9L1N2O/kJQCpdfuc9bkcUTMjH/es/lAySxvbiislkohqkpHAQAZVatwHI0t9eHCUfDyWUEtuCNyDwQFOVMtaYEQJrTrhQX0VduT86F0u0wN9ag0uPsrmX6Rid/x5S7KI1SkS+qP6cdmgSP57uiF4dG6IKsWNfGBLY09H/CFlrg73WINQkkp2diKkdEmtZetn8+ZAKzR5eXN5FebiKt6pIkNLuSofjosypEs2o6boKsfpmbtOV0idOeWDM9C8EIcn3aZwk1s2KBDvt1DlY+i2Cuvhk3XoKLT+pq/bOC5QkcBABolcOXneZXLoQw9W1PH1f/of92Ytjj8okrWijcQAKlE5l8XoTb9qrOiZnDOhqwcMlB9H9rorq041I89hChohYoSkJElcM8V+r8WYN5axD1BNyfwaHAOm4UN2/VEYOkNSfMjmx2S0WW/F2ha8Jj4fc4QgqcXr+TnnbwqLkLTValK4Qa1pcv7PIbDq6zCUfxe04guZ8xEhPQjp17/G6IB/6uq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wnibxQ/cXEblVnM47wbCN3iy4eHjYB5MoIICrSYmd8nt4V0toLs084KJlmnur5FbApYM4W79ff4oZkW88Cg8Fv8TnWhh1Hqc4UlhMbRKm2QxDgfBxar3U7BwNR6prrXXjqfR7ja3tPli+H7Jez/xcTg32QpHAQAdTa7pSSgBvmOqzz175NAFIhwE9p3d71F9jLvhaPv8q1iKopL0kizwzEWElnXWmNhfLkl/Au8KujnoKUaxVdTe+zAZm2dOkejnpNVtVj0Aw9wKcG3ZQ1iRZrUFRIoPKYlmR+oi0LrupuhYABtgPbdCbDtezGTr0nw9wVd/rZ6V+1wcoJ6+8VAVueIdwI3brqm6EoFHiI8L6lER+9SefB8fHo4NYgr/I8jSxaa/2PLX2K/DjrlY6bN8fEcBAB7DXsuh8DITF6CYWj2HTFvqfzlic3QHXnHtvsTFNpyVY1LY8y/fRK2mwALN6IB5W3OuyoKiA3K0lJdQUv2gYhHWvPTV218HYrD0rkbMxRH0SiEEkrHDeOt5T1HtWD13D2/QvMu535fsfZyeaFDjdCE9M0Xi8Lfc7Xj1ZNGend7Jo7/cEiczFkc1vB4z2JpFGZreV2EdquyEzC2STFJtfimyx8QlLngEuR1cxH+lWEcFX+mvBa/eqktIRwEAH6VazFLPNsnHZqsI66TVoArQuUUGFAzr8MT8GZ9V6qpZa5D0jA/4eGi6Kq0smUgRExnqIbSMLWqDf/Pk2YT3MpHTu9VE3Dn9blgB6KsVIkWnB98Y2n/6DrZDcF94Ndu0Ka4U/RZwdV5O5KcO+lU2ZiIOYTYZ6Ie0d+tApxYxJ+YmxaDoCyRNe6crw/yzR5SflT8ddi/E2BM+l+nwVDiKZ/714fmrBxFKWuqLiQNHV19o1cZ8Ubun+ZtHQAASAACwDQABwQAAAAHwACqxBLL//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////0dQABIAArASAAHBAADhAPAAG+EA8AAVvU1W////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////RwEAEH1s3BdtHdF1ln55B24wdACF/ggcRtPmB4IUB6cZJ+m32I4R48ZkdhAFBulgWcsv0wZwH0o1yi3i4qm3rJ98AUKdB9PsNyG9gURV0bTw4myAj6g5Dgodfv6w9bsbOxsGUWkvgAJ3rrR010BvZbIa6CMRCQRjxkCfRF77ansRJZT0JzhtYeSS/ZJob8Rr2jrng3W2rkmHtE+rdqlPiHxmwkRZvYGhBxwiJO2L6f+l/cABsfs09rA+A0pHAQAREZay3TBUIAfMWhApE+LaPgeyOYtaPFONA9aC0h4QrFkaLZfb86678MK+zLgqDBsDoj50eZHMVcczRjs4sYlv7RG8RIWKb5lB9Kn/8+CkxiiA11cHH1yzLX2SKCmhsak/+P/zYQ1EDvEj33bl9e3Jd62cTI+Qw99KrsWnUMN8hFNeXzoGHA3aec+Li4NFboF8sa6lCPR6Csxsvxw8DJaWCnER5Z0p+nKhXavF/eNHQ0DX47ohycc87UcBABKsYHCHXXe3vK1cFYDWO6rhwM6hxCdJ+/X+VB1akQejL6iBMdUPuadUqBnbprwJM0dWpSSn9uuZZeqe46iZOGIJUo69d8x+ZSvPcBH/dK1Y0LJnoWdgWH51SQg7eYqcwjQW3BOy7ZF02Hn1EhTuhsN7ms8zv3WIeEBDBq0T3Idl+Tmw9iJU9skVYiwygHG2+0XwrLa6y+uiQPwMzrnEr1kuf24XoAqrJTZQiVH3aQF4d94yDreWu2KPRwEAE2FsynHZaUcBXEFbeX0nSxZ7sRcRjJvc7RYOny6N8QFwKDVO7jpRWWYM55kuepBOyZ+7BFYeG+FU1kR+ZfmqyDNkD4D1IPwNh6u9JQxDymfN/aMcQC3WxdvCKquPsAut6dugpGkOFtIe+W3ayc4V/J978P+h1EDFMbFjxRPuXht0K2dBQZCJ0ybISUDqWzhPuep8CdxSU4MvMVfdXh7FLl/BqKJUTT+vM+Pz3XnqCQQmH5TjQ4CK55VHAQAUEtgfkBwIYgtwHkhjmtLw7HNTeJeMfTjATEKcyuKzItSeYxHBmGzQ/+G2otpPCOkVAXJ9mfx7LxrW4joZ0ttTRQJ/wqMUK1IN349LiJoo8y/+FwN4jPNDwIleJG697riqnmLOweFW8spHKLBfnHcyC1pG6EIxFpTqUQ0KHqXD/KXIHKioJNAOVwQ1Gfloxebo/Tdtd00dpHP3gcsAOnV75APCYOjVIlwm2X6ViDeZw6Btdb/Br/+yokcBABU3+eOESLlneGbR5SLiL8wPkoRaZ5X7xFlMTMvsv9yHk26bVdmsubSdbYS1Hy64n0+NnL7C1aLD7aJxOudMjVW5goZbfO2KxBQkCD4HFA284wbaB5vOL7mRilCn6YEs1kiwf22+fBLNUmXDb2p353wrD/ygTDhlki66USvUmd/ZAs9uzAddegEzy7Xn00YysWTu/hegYyZtWFC+X5dhLubWJ7n96y5wjrP7PAOXoQQtFUH9j/rBiP/7RwEAFnL/wYKYuj80mPGtimSbF/E9K7XwjwBz8yHZubmVMTCmwkZBM4h0FR1thnUGiSjqjJT6SfunWCZ/dZDQplrzS00UKcUP399SyM+nNG1br8Za0ZYwWch8nyLHYXSRuxdnrfUUespsOQo1cWSLGf0pV2HIcHoiAAEKwPU6irB5BSoFvB1qKVjgEk+QwAEYAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAABHAQA3pAD/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////AwAAAwAAAwAAAwAAAwAAAwBbwUdBABgAAAHgAACAwAoxAAmBIREAB/SBAAAAAQnwAAAAAUGaJGxDv/6plgAAAwAAAwAAAwAAAwAAAwAAAwAAAwAKCKB0AIhy1ftwLNISWucTFC7xeBcaIzP3oZjZo8uT9hqZVstWGnrPz+vjaA5FuCO+K2w7/o39LygDO7aL+0zSrN90LW7r133x8+f+PEKk8d7pd2fj4RYuMOXOYunzFzRX/4IvR1XsK5WJYwVkOca3yfo7DTvUBP9rgSiTRwEAGQD6CFK1PBC4qYCa+coLVnX+jgODNrau5YJXIekDI4+wUNV+5T5HE4e2t5EGAjn77+kC1Vghmvx8KqPnylVUvsaTofheggxHsPuxn1zQt6nA59UglrRUMn8b4pmrvfqTBSqU949+AcNAI6M/eAqz6r0RG5KNeBhx8R2f0x2kujwHU3pc3rlPb6ZrFM/2HiG97eEIezrvWFG7YAAAAwAAAwAE1KRo1VfbdZQ/tOpNGxFmTcQoFidyD2tHAQAapTTIErUKA2Rc9uIzGJu+oW0uNOxRyl6oJNUNJp5L9TIshNS1CmUKgdCaE3LkLwdE8iUkUnIGfWLiWpWmjzsINYC8dnDaSptB53yJkBu0SsR00oo1PZ0pl4ZzoXGSYQJTPaVCbj6FNqm5wcnUqKTB/rgHdPdnDj0K8asLABeo/n3XCXrDorI+LYSD1FBgmV9O7RZdjfL0NnXOQkiq/ZGirwVV0cUF1aHtZx1yHlAAZKuuu7TqB13CAUcBADuRAP///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////yj/IrOvAEoXDNGy+nrxWN0l8cmuqWYaUJpuM9XgAAADAAADAAKmR0EAPAcQAACJHH4AAAAB4AAAgMAKMQAJSOERAAkQoQAAAAEJ8AAAAAFBnkJ4hf8AAAMAAAMAAAMAAAMAAAMAAAMAAAMAC/BmhyuvLmkCgKTgACEXfOVvHRHdpBEEmTTz9pIZCa2FD0CXukzDCakOHekTpJQSdsfd7a/jjM1/5lBtKCAGQ6zOCSQ6DeKtyw+CugDuuglGipwmvQW+FIDjnZ6HRd0uaSOGy6VB3h9MI1o4nqaCqVwwIgubYZFHAQA9XgD////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////WcZrO6BEiqf8pCxYwlz2mkdUzY/ipM/TIHS4m5xQAAAMAAAMAAA5sVm90p14dlvWgBgY7XQ9KVOJKLtaMAN5KiffVQtNuzW5DfL+RewZpAAADAAADAAAQMUdBAB4AAAHgAACAgAUhAAkswQAAAAEJ8AAAAAEBnmF0Qr8AAAMAAAMAAAMAAAMAAAMAAAMAAAMAABJfBjP2+4+W7ZybyT130+Ma4WSqICfd/dS4YtjrLlmh5VBlfrtwJqdN1PBTYDkwGOOONqZQeFN6lLGJoDzvuh3kv1aDBLqug+JhvrSeu5ebnvcrtQzb2REwJL3h9mvtkr0WfDu4AAADAAADAAs32Y4C/6Ns79oCGj6oqLltY3T4I0/QRwEAP5wA//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////8BeoWLRnKQmVgO/RBoBfcK85AAAAMAAAMACFhHQQAwBxAAAJcsfgAAAAHgAACAwAoxAAllAREACUjhAAAAAQnwAAAAAQGeY2pCvwAAAwAAAwAAAwAAAwAAAwAAAwAAAwAAEmDKfLGXsvBBQPNYXlEd6WueJ4deApfcHESlG+7V6u0AiWQqJvNZYM+3Js3Lj9Ldc9yYIHqruVwfMtCYGlX3wMavI/DrhMuJw+RreIF8SKsJD8CMccAAAAMAAAMACrFZOBgEqaP/8EyWsAHV6CgcAgfyox/roEcBADGuAP//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////AAADAAADAHTBR0EAEgAAAeAAAIDACjEACfGhEQAJZQEAAAABCfAAAAABQZpoSahBaJlMCHf//qmWAAADAAADAAADAAADAAADAAADAAADAAALf8A2bry6lUyIAQGNFfVK2Cd7h4qDqmqpvmXfkfTwo2Ab79AHhajxJ4MPWIgAAA84xLRIx7I2CrWjWe96OvgkzgS9mtvhuxdzAgpuIOJI3DEY9mviDDZz8XSAAAADAAADAB7AZkj9AAHHGvk+Pzlku8UkWa5HAQAzogD//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////6HjAkbF/gsWuvw4QAAAAwAAAwAccUdBADQHEAAApTx+AAAAAeAAAIDACjEACblhEQAJgSEAAAABCfAAAAABQZ6GRREsL/8AAAMAAAMAAAMAAAMAAAMAAAMAAAMAAA3URJB/3lMHSmOd0GYZnfpoR80WdqxlyHzPX+V81VUMeXIGrRgq5agd+ACdjoGI036yQ/rmpGw0CmMBrKwpI+nwFo3SP0s1rI2yHBZaiPJjSUgw33rBkxXcq55kfLf2sAAAAwAAAwACBWolidWDnIeQAAADRwEANbEA//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////8AAAMADulHQQA2NAD///////////////////////////////////////////////////////////////////8AAAHgAACAgAUhAAmdQQAAAAEJ8AAAAAEBnqV0Qr8AAAMAAAMAAAMAAAMAAAMAAAMAAAMAABJXNihCnx11JUosH2hBE53O/YN+GPHqcnJiQBIf3maTAAj5iRt+7GYUKBAU9iCXTiouCjGYgAAAAwAAAwA9p4HQBg2cAAADAAADAADGgUdBADc4EAAAs0x+AP////////////////////////////////////////////////////////////////8AAAHgAACAwAoxAAnVgREACblhAAAAAQnwAAAAAQGep2pCvwAAAwAAAwAAAwAAAwAAAwAAAwAAAwAAAwBR6/L83y+ZevtMZ0FW4lp8qV7fVXQAhLAWlS6mDxvpaSUgChorvgTMXtxJEIAAAAMAAAMACqFCAAADAAADAAADAAz4R0EAOCsA////////////////////////////////////////////////////////AAAB4AAAgMAKMQALYiERAAnVgQAAAAEJ8AAAAAFBmqxJqEFsmUwId//+qZYAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAApQTq0hABLvkcWCYrAaRRPNDrECJGlF/11BYvG9+JJ9Y86nxnmQzPxtAAe1UgOsXAAADAAADAAADAAADAAADAAADAAADA/JHQQA5JhAAAMFcfgD/////////////////////////////////////////AAAB4AAAgMAKMQALKeERAAnxoQAAAAEJ8AAAAAFBnspFFSwv/wAAAwAAAwAAAwAAAwAAAwAAAwAAAwAADdRFmvrVE0KXDOGwWddlwYa1foib7tXZKmkua6R4APb4b8+tXwdSNNqgf2IVNwGTohgQAcMvp6SiQxpiQym4AAADAAADAANUNUAAAAMAAAMAAAMBN0dBADo8AP//////////////////////////////////////////////////////////////////////////////AAAB4AAAgIAFIQALDcEAAAABCfAAAAABAZ7pdEK/AAADAAADAAADAAADAAADAAADAAADAAADAFHTAfujIUaaLSuklb9y0/so9AEtQAqkAxOviALQZ5jNt/iOkABrCOZ4md0iUnFwAAADAAADAALwckAAAAMAAAMAAATcR0EAO0IQAADPbH4A//////////////////////////////////////////////////////////////////////////////8AAAHgAACAwAoxAAtGAREACynhAAAAAQnwAAAAAQGe62pCvwAAAwAAAwAAAwAAAwAAAwAAAwAAAwAAAwBR6/L83y+WryR9gmVKPGbIhJpkgAFgHCej3gB6rAHPgHHAAAADAAADAAAYIV0AAAMAAAMAAAMABnxHQQA8UQD//////////////////////////////////////////////////////////////////////////////////////////////////////////wAAAeAAAIDACjEAC9KhEQALRgEAAAABCfAAAAABQZrwSahBbJlMCG///qeEAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAAZ8UdBAD00EAAA3Xx+AP///////////////////////////////////////////////////////////wAAAeAAAIDACjEAC5phEQALYiEAAAABCfAAAAABQZ8ORRUsL/8AAAMAAAMAAAMAAAMAAAMAAAMAAAMAAA3URZr61RNClwzhI2ZXdRHYLZWc1yTgKRhTIXBNABHQKIIyYNyc+AaEn1jhATEAAAMAAAMAAAMAckkIAAADAAADAAADAEbBR0EAPkYA////////////////////////////////////////////////////////////////////////////////////////////AAAB4AAAgIAFIQALfkEAAAABCfAAAAABAZ8tdEK/AAADAAADAAADAAADAAADAAADAAADAAADAFHTAfujIUAYRtY0f/43cIs2OjxACR2hMR1QBGYX+34JGAAAAwAAAwAAAwKEJ6AAAAMAAAMAAAMA3oFHQQA/QhAAAOuMfgD//////////////////////////////////////////////////////////////////////////////wAAAeAAAIDACjEAC7aBEQALmmEAAAABCfAAAAABAZ8vakK/AAADAAADAAADAAADAAADAAADAAADAAADAFHr8vzfL5avJH2CZUo8ZsiEmmSAAWAcJ6PeAHqsAc+AccAAAAMAAAMAABghXQAAAwAAAwAAAwAGfEdBADBRAP//////////////////////////////////////////////////////////////////////////////////////////////////////////AAAB4AAAgMAKMQANQyERAAu2gQAAAAEJ8AAAAAFBmzRJqEFsmUwIZ//+nhAAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAGVAR0EAMTQQAAD5nH4A////////////////////////////////////////////////////////////AAAB4AAAgMAKMQANCuERAAvSoQAAAAEJ8AAAAAFBn1JFFSwv/wAAAwAAAwAAAwAAAwAAAwAAAwAAAwAADdRFmvrVE0KXDOEjZld1EdgtlZzXJOApGFMhcE0AEdAogjJg3Jz4BoSfWOEBMQAAAwAAAwAAAwBySQgAAAMAAAMAAAMARsFHQQAyRgD///////////////////////////////////////////////////////////////////////////////////////////8AAAHgAACAgAUhAAvuwQAAAAEJ8AAAAAEBn3F0Qr8AAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAUdMB+6MhQBhG1jR//jdwizY6PEAJHaExHVAEZhf7fgkYAAADAAADAAADAoQnoAAAAwAAAwAAAwDegEdBADNCEAABB6x+AP//////////////////////////////////////////////////////////////////////////////AAAB4AAAgMAKMQANJwERAA0K4QAAAAEJ8AAAAAEBn3NqQr8AAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAUevy/N8vlq8kfYJlSjxmyISaZIABYBwno94AeqwBz4BxwAAAAwAAAwAAGCFdAAADAAADAAADAAZ8R0EANFIA////////////////////////////////////////////////////////////////////////////////////////////////////////////AAAB4AAAgMAKMQANs6ERAA0nAQAAAAEJ8AAAAAFBm3hJqEFsmUwIV//+OEAAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAYtHQQA1NBAAARW8fgD///////////////////////////////////////////////////////////8AAAHgAACAwAoxAA17YREADUMhAAAAAQnwAAAAAUGflkUVLC//AAADAAADAAADAAADAAADAAADAAADAAAN1EWa+tUTQpcM4SNmV3UR2C2VnNck4CkYUyFwTQAR0CiCMmDcnPgGhJ9Y4QExAAADAAADAAADAHJJCAAAAwAAAwAAAwBGwEdBADZGAP///////////////////////////////////////////////////////////////////////////////////////////wAAAeAAAICABSEADV9BAAAAAQnwAAAAAQGftXRCvwAAAwAAAwAAAwAAAwAAAwAAAwAAAwAAAwBR0wH7oyFAGEbWNH/+N3CLNjo8QAkdoTEdUARmF/t+CRgAAAMAAAMAAAMChCegAAADAAADAAADAN6BR0EAN0IQAAEjzH4A//////////////////////////////////////////////////////////////////////////////8AAAHgAACAwAoxAA2XgREADXthAAAAAQnwAAAAAQGft2pCvwAAAwAAAwAAAwAAAwAAAwAAAwAAAwAAAwBR6/L83y+WryR9gmVKPGbIhJpkgAFgHCej3gB6rAHPgHHAAAADAAADAAAYIV0AAAMAAAMAAAMABn0=" + webUI["html/img/x_black.png"] = "iVBORw0KGgoAAAANSUhEUgAAAQAAAAEACAIAAADTED8xAAAAAXNSR0IArs4c6QAAAAlwSFlzAAAWJQAAFiUBSVIk8AAAA6ppVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IlhNUCBDb3JlIDUuNC4wIj4KICAgPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIgogICAgICAgICAgICB4bWxuczp0aWZmPSJodHRwOi8vbnMuYWRvYmUuY29tL3RpZmYvMS4wLyIKICAgICAgICAgICAgeG1sbnM6ZXhpZj0iaHR0cDovL25zLmFkb2JlLmNvbS9leGlmLzEuMC8iPgogICAgICAgICA8eG1wOk1vZGlmeURhdGU+MjAxOC0xMS0xNVQxNzoxMTozNzwveG1wOk1vZGlmeURhdGU+CiAgICAgICAgIDx4bXA6Q3JlYXRvclRvb2w+UGl4ZWxtYXRvciAzLjM8L3htcDpDcmVhdG9yVG9vbD4KICAgICAgICAgPHRpZmY6T3JpZW50YXRpb24+MTwvdGlmZjpPcmllbnRhdGlvbj4KICAgICAgICAgPHRpZmY6Q29tcHJlc3Npb24+NTwvdGlmZjpDb21wcmVzc2lvbj4KICAgICAgICAgPHRpZmY6UmVzb2x1dGlvblVuaXQ+MjwvdGlmZjpSZXNvbHV0aW9uVW5pdD4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+MTQ0PC90aWZmOllSZXNvbHV0aW9uPgogICAgICAgICA8dGlmZjpYUmVzb2x1dGlvbj4xNDQ8L3RpZmY6WFJlc29sdXRpb24+CiAgICAgICAgIDxleGlmOlBpeGVsWERpbWVuc2lvbj4yNTY8L2V4aWY6UGl4ZWxYRGltZW5zaW9uPgogICAgICAgICA8ZXhpZjpDb2xvclNwYWNlPjE8L2V4aWY6Q29sb3JTcGFj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a1jSekqmtA1rrGsx7JYkDuvrVahwRdgVXD1xcwri6mmYRULLe4CuPc2wfrGo4U+7Y/3S9ZHD+GcflbnfiCJbr77whoaS6ucCXVkVkuLKgORQwNJFygRDJnqwb9i3b0HxkqjT0L4erGy5Rh1IRnhXrpaZq6GZCyRLf6cvhoTY6V9koX8bGdEUlyWVm6W5q1GuostihNm97L/dpm5k+QHCbDna0zRzgSS/lRHWL7iHPOa+9YsYkpttoCwSMcQRkrWioz5Qsc7aFJ1coHY3QyJ9jSjfJEOCfTUpWzehVBnUbqCJOCHEkB1xsmXDwq9DnObUz9q4QOUqYPaPKFzUKcVj6Eeu461q67Vhlqy6+Xo11G52JhRZNNW1FRbN00FWPVwguSa+8YEZ1i+D9vQjelm/iHTwAB69Vwd7CkuGLOcWtxfR4o+dHhNg4DNmhDvJ8M6ehknvhTXMDp8kQQgT33W4z+i7k/2gho+Jvrp1NTVwgW5opV76yl8F/cufe9CyJiRllZ6lYCHMXWPAXmNp9CRb8Pi30r658sHtCSCPsZNXQDYdMaLIek/No13V/rBfGMFSCXnsKNo1dDelnKt/dyUH8uvjjLH+zyfpbv1iUl/NVBt4mVJy58HoDyFZLt0rrj4G7TfIjARvMjy7d6JnR/UXS/+yeD5kLYkETxpRZL2jZJVzb7cl9yZA/cYqh4z+20AEzOj+BKxbZYRFqXQssvLs5gQzpBUp616rNsX55WdXBHbPBRrwlBm5v2VYJo1FsjmOtQg8ezo+fd8Ve4qy04HPRlmR1UiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABGwg8D8UnyVeZFwGAQAAAABJRU5ErkJggg==" + webUI["html/index.html"] = "PCFkb2N0eXBlIGh0bWw+DQo8aHRtbD4NCiAgPGhlYWQ+DQogICAgPG1ldGEgY2hhcnNldD0idXRmLTgiPg0KICAgIDwhLS0tDQogICAgPG1ldGEgbmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9IndpZHRoPWRldmljZS13aWR0aCwgaW5pdGlhbC1zY2FsZT0xLjAiIC8+IA0KICAgIC0tPg0KICAgIDx0aXRsZT54VGVWZTwvdGl0bGU+DQogICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJjc3Mvc2NyZWVuLmNzcyIgdHlwZT0idGV4dC9jc3MiPg0KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iY3NzL2Jhc2UuY3NzIiB0eXBlPSJ0ZXh0L2NzcyI+DQoNCiAgICA8c2NyaXB0IGxhbmd1YWdlPSJqYXZhc2NyaXB0IiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ianMvbmV0d29ya190cy5qcyI+PC9zY3JpcHQ+DQogICAgPHNjcmlwdCBsYW5ndWFnZT0iamF2YXNjcmlwdCIgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9ImpzL21lbnVfdHMuanMiPjwvc2NyaXB0Pg0KICAgIDxzY3JpcHQgbGFuZ3VhZ2U9ImphdmFzY3JpcHQiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJqcy9zZXR0aW5nc190cy5qcyI+PC9zY3JpcHQ+DQogICAgPHNjcmlwdCBsYW5ndWFnZT0iamF2YXNjcmlwdCIgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9ImpzL2xvZ3NfdHMuanMiPjwvc2NyaXB0Pg0KICAgIDxzY3JpcHQgbGFuZ3VhZ2U9ImphdmFzY3JpcHQiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJqcy9iYXNlX3RzLmpzIj48L3NjcmlwdD4NCg0KICA8L2hlYWQ+DQoNCiAgICA8Ym9keSBvbmxvYWQ9ImphdmFzY3JpcHQ6IFBhZ2VSZWFkeSgpOyI+DQoNCiAgICAgIDxkaXYgaWQ9ImxvYWRpbmciIGNsYXNzPSJub25lIj4NCiAgICAgICAgPGRpdiBjbGFzcz0ibG9hZGVyIj48L2Rpdj4NCiAgICAgIDwvZGl2Pg0KDQogICAgICA8ZGl2IGlkPSJwb3B1cCIgY2xhc3M9Im5vbmUiPg0KICAgICAgICA8ZGl2IGlkPSJwb3B1cC1jdXN0b20iPjwvZGl2Pg0KICAgICAgPC9kaXY+DQoNCiAgICAgIDxkaXYgaWQ9ImxheW91dCI+DQoNCiAgICAgICAgPCEtLQ0KICAgICAgICA8ZGl2IGlkPSJub3RpZmljYXRpb24iPg0KICAgICAgICAgIDxkaXYgY2xhc3M9ImVsZW1lbnQiPg0KICAgICAgICAgICAgPGg1PlhFUEc8L2g1Pg0KICAgICAgICAgICAgPHByZT4xMS4wNS4yMDE5IC0gMjA6MjE8L3ByZT4NCiAgICAgICAgICAgIDxocj4NCiAgICAgICAgICAgIDxwPkhhbGxvIGRhcyBpc3QgZWluIFRlc3QuIFVuZCBub2NoIG1laHIgVGV4dC48L3A+DQogICAgICAgICAgPC9kaXY+DQogICAgICAgIDwvZGl2Pg0KICAgICAgLS0+DQoNCiAgICAgICAgPGRpdiBpZD0ibWVudS13cmFwcGVyIiBjbGFzcz0ibGF5b3V0LWxlZnQiPg0KICAgICAgICAgIDxkaXYgaWQ9ICJicmFuY2giPjwvZGl2Pg0KICAgICAgICAgIDxkaXYgaWQ9ImxvZ28iPjwvZGl2Pg0KICAgICAgICAgIDxuYXYgaWQ9Im1haW4tbWVudSI+PC9uYXY+DQogICAgICAgIDwvZGl2Pg0KDQogICAgICAgIDxkaXYgY2xhc3M9ImxheW91dC1yaWdodCI+DQoNCiAgICAgICAgICA8dGFibGUgaWQ9ImNsaWVudEluZm8iIGNsYXNzPSIiPg0KDQogICAgICAgICAgICA8dHI+DQogICAgICAgICAgICAgIDx0ZCBjbGFzcz0idGRLZXkiPnhUZVZlOjwvdGQ+DQogICAgICAgICAgICAgIDx0ZCBpZD0idmVyc2lvbiIgY2xhc3M9InRkVmFsIj4mbmJzcDs8L3RkPg0KICAgICAgICAgICAgICA8dGQgY2xhc3M9InRkS2V5Ij5PUzo8L3RkPg0KICAgICAgICAgICAgICA8dGQgaWQ9Im9zIiBjbGFzcz0idGRWYWwiPiZuYnNwOzwvdGQ+DQogICAgICAgICAgICAgIDx0ZCBjbGFzcz0idGRLZXkgcGhvbmUiPkRWUiBJUDo8L3RkPg0KICAgICAgICAgICAgICA8dGQgaWQ9IkRWUiIgY2xhc3M9InRkVmFsIHBob25lIj4mbmJzcDs8L3RkPg0KICAgICAgICAgICAgPC90cj4NCg0KICAgICAgICAgICAgPHRyPg0KICAgICAgICAgICAgICA8dGQgY2xhc3M9InRkS2V5Ij5VVUlEOjwvdGQ+DQogICAgICAgICAgICAgIDx0ZCBpZD0idXVpZCIgY2xhc3M9InRkVmFsIj4mbmJzcDs8L3RkPg0KICAgICAgICAgICAgICA8dGQgY2xhc3M9InRkS2V5Ij5BcmNoOjwvdGQ+DQogICAgICAgICAgICAgIDx0ZCBpZD0iYXJjaCIgY2xhc3M9InRkVmFsIj4mbmJzcDs8L3RkPg0KICAgICAgICAgICAgICA8dGQgY2xhc3M9InRkS2V5IHBob25lIj5NM1UgVVJMOjwvdGQ+DQogICAgICAgICAgICAgIDx0ZCBpZD0ibTN1LXVybCIgY2xhc3M9InRkVmFsIHBob25lIj4mbmJzcDs8L3RkPg0KICAgICAgICAgICAgPC90cj4NCg0KICAgICAgICAgICAgPHRyPg0KICAgICAgICAgICAgICA8dGQgY2xhc3M9InRkS2V5Ij5BdmFpbGFibGUgU3RyZWFtczo8L3RkPg0KICAgICAgICAgICAgICA8dGQgaWQ9InN0cmVhbXMiIGNsYXNzPSJ0ZFZhbCI+Jm5ic3A7PC90ZD4NCiAgICAgICAgICAgICAgPHRkIGNsYXNzPSJ0ZEtleSI+RVBHIFNvdXJjZTo8L3RkPg0KICAgICAgICAgICAgICA8dGQgaWQ9ImVwZ1NvdXJjZSIgY2xhc3M9InRkVmFsIj4mbmJzcDs8L3RkPg0KICAgICAgICAgICAgICA8dGQgY2xhc3M9InRkS2V5IHBob25lIj5YRVBHIFVSTDo8L3RkPg0KICAgICAgICAgICAgICA8dGQgaWQ9InhlcGctdXJsIiBjbGFzcz0idGRWYWwgcGhvbmUiPiZuYnNwOzwvdGQ+DQogICAgICAgICAgICA8L3RyPg0KDQogICAgICAgICAgICA8dHI+DQogICAgICAgICAgICAgIDx0ZCBjbGFzcz0idGRLZXkiPlhFUEcgQ2hhbm5lbHM6PC90ZD4NCiAgICAgICAgICAgICAgPHRkIGlkPSJ4ZXBnIiBjbGFzcz0idGRWYWwiPiZuYnNwOzwvdGQ+DQogICAgICAgICAgICAgIDx0ZCBjbGFzcz0idGRLZXkiPkVycm9yczo8L3RkPg0KICAgICAgICAgICAgICA8dGQgaWQ9ImVycm9ycyIgY2xhc3M9InRkVmFsIj4mbmJzcDs8L3RkPg0KICAgICAgICAgICAgICA8dGQgY2xhc3M9InRkS2V5Ij5XYXJuaW5nczo8L3RkPg0KICAgICAgICAgICAgICA8dGQgaWQ9Indhcm5pbmdzIiBjbGFzcz0idGRWYWwiPiZuYnNwOzwvdGQ+DQogICAgICAgICAgICA8L3RyPg0KDQogICAgICAgICAgPC90YWJsZT4NCiAgICAgICAgIA0KICAgICAgICAgIDxkaXYgaWQ9Im15U3RyZWFtc0JveCIgY2xhc3M9Im5vdFZpc2libGUiPg0KDQogICAgICAgICAgICA8ZGl2IGlkPSJhbGxTdHJlYW1zIj4NCiAgICAgICAgICAgICAgPHRhYmxlIGlkPSJhY3RpdmVTdHJlYW1zIj48L3RhYmxlPg0KICAgICAgICAgICAgICA8dGFibGUgaWQ9ImluYWN0aXZlU3RyZWFtcyI+PC90YWJsZT4NCiAgICAgICAgICAgIDwvZGl2Pg0KDQogICAgICAgICAgPC9kaXY+DQogICAgICAgICAgDQogICAgICAgICAgPGRpdiBpZD0iY29udGVudCIgY2xhc3M9IiI+PC9kaXY+DQogICAgICAgICAgICANCiAgICAgICAgPC9kaXY+DQoNCiAgICAgIDwvZGl2Pg0KICAgICAgDQogICAgPC9ib2R5Pg0KICAgIA0KPC9odG1sPg==" + webUI["html/js/logs_ts.js"] = "Y2xhc3MgTG9nIHsNCiAgICBjcmVhdGVMb2coZW50cnkpIHsNCiAgICAgICAgdmFyIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJQUkUiKTsNCiAgICAgICAgaWYgKGVudHJ5LmluZGV4T2YoIldBUk5JTkciKSAhPSAtMSkgew0KICAgICAgICAgICAgZWxlbWVudC5jbGFzc05hbWUgPSAid2FybmluZ01zZyI7DQogICAgICAgIH0NCiAgICAgICAgaWYgKGVudHJ5LmluZGV4T2YoIkVSUk9SIikgIT0gLTEpIHsNCiAgICAgICAgICAgIGVsZW1lbnQuY2xhc3NOYW1lID0gImVycm9yTXNnIjsNCiAgICAgICAgfQ0KICAgICAgICBpZiAoZW50cnkuaW5kZXhPZigiREVCVUciKSAhPSAtMSkgew0KICAgICAgICAgICAgZWxlbWVudC5jbGFzc05hbWUgPSAiZGVidWdNc2ciOw0KICAgICAgICB9DQogICAgICAgIGVsZW1lbnQuaW5uZXJIVE1MID0gZW50cnk7DQogICAgICAgIHJldHVybiBlbGVtZW50Ow0KICAgIH0NCn0NCmZ1bmN0aW9uIHNob3dMb2dzKGJvdHRvbSkgew0KICAgIHZhciBsb2cgPSBuZXcgTG9nKCk7DQogICAgdmFyIGxvZ3MgPSBTRVJWRVJbImxvZyJdWyJsb2ciXTsNCiAgICB2YXIgZGl2ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnRlbnRfbG9nIik7DQogICAgZGl2LmlubmVySFRNTCA9ICIiOw0KICAgIHZhciBrZXlzID0gZ2V0T2JqS2V5cyhsb2dzKTsNCiAgICBrZXlzLmZvckVhY2gobG9nSUQgPT4gew0KICAgICAgICB2YXIgZW50cnkgPSBsb2cuY3JlYXRlTG9nKGxvZ3NbbG9nSURdKTsNCiAgICAgICAgZGl2LmFwcGVuZChlbnRyeSk7DQogICAgfSk7DQogICAgc2V0VGltZW91dChmdW5jdGlvbiAoKSB7DQogICAgICAgIGlmIChib3R0b20gPT0gdHJ1ZSkgew0KICAgICAgICAgICAgdmFyIHdyYXBwZXIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYm94LXdyYXBwZXIiKTsNCiAgICAgICAgICAgIHdyYXBwZXIuc2Nyb2xsVG9wID0gd3JhcHBlci5zY3JvbGxIZWlnaHQ7DQogICAgICAgIH0NCiAgICB9LCAxMCk7DQp9DQpmdW5jdGlvbiByZXNldExvZ3MoKSB7DQogICAgdmFyIGNtZCA9ICJyZXNldExvZ3MiOw0KICAgIHZhciBkYXRhID0gbmV3IE9iamVjdCgpOw0KICAgIHZhciBzZXJ2ZXIgPSBuZXcgU2VydmVyKGNtZCk7DQogICAgc2VydmVyLnJlcXVlc3QoZGF0YSk7DQp9DQo=" + webUI["html/img/filter.png"] = "iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAAAXNSR0IArs4c6QAAAAlwSFlzAAAsSwAALEsBpT2WqQAABCRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IlhNUCBDb3JlIDUuNC4wIj4KICAgPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIgogICAgICAgICAgICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgICAgICAgICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyI+CiAgICAgICAgIDx0aWZmOlJlc29sdXRpb25Vbml0PjI8L3RpZmY6UmVzb2x1dGlvblVuaXQ+CiAgICAgICAgIDx0aWZmOkNvbXByZXNzaW9uPjU8L3RpZmY6Q29tcHJlc3Npb24+CiAgICAgICAgIDx0aWZmOlhSZXNvbHV0aW9uPjI4ODwvdGlmZjpYUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6T3JpZW50YXRpb24+MTwvdGlmZjpPcmllbnRhdGlvbj4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+Mjg4PC90aWZmOllSZXNvbHV0aW9uPgogICAgICAgICA8ZXhpZjpQaXhlbFhEaW1lbnNpb24+NTA8L2V4aWY6UGl4ZWxYRGltZW5zaW9uPgogICAgICAgICA8ZXhpZjpDb2xvclNwYWNlPjE8L2V4aWY6Q29sb3JTcGFjZT4KICAgICAgICAgPGV4aWY6UGl4ZWxZRGltZW5zaW9uPjUwPC9leGlmOlBpeGVsWURpbWVuc2lvbj4KICAgICAgICAgPGRjOnN1YmplY3Q+CiAgICAgICAgICAgIDxyZGY6QmFnLz4KICAgICAgICAgPC9kYzpzdWJqZWN0PgogICAgICAgICA8eG1wOk1vZGlmeURhdGU+MjAxOC0wNy0yOFQxOTowNzo2OTwveG1wOk1vZGlmeURhdGU+CiAgICAgICAgIDx4bXA6Q3JlYXRvclRvb2w+UGl4ZWxtYXRvciAzLjM8L3htcDpDcmVhdG9yVG9vbD4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgIDwvcmRmOlJERj4KPC94OnhtcG1ldGE+Cs038OQAAAOISURBVGgF5ZpLSBVRGMfvvfmqCKKiKCqKtE3SQ8haJJm1ctPCZYHrFhXtohcUBLVsU1BRBJKLXpsSKs1aCL1oUUhvMgIloodZKmLZ72+OzNVx7jzOXGfqg/89Z875zv/7f35n7px7vanUP2JptzyGhoYKmK8GW0EZmA/mgW7wHrwDN0BTOp0epPVtxBBnLdgIVoE5YBboBR2gDTTA/5DWn0FeDPaBz8CLdeF0EBR5jYRvKbgABoAXa8Opwit/CudK8NoLs4PPM8ZyBsNnB/jpsD7X0C8cjgDXnaQkqkEPCGMSuGWivxxzx8OQj6xtpHWuPhPloHfEMWzTD0HN2GQY2xuW2Lb+/Fh+VaIQPLE5meh+gmSxFYz+BjBogtjGscfiH26Z2GmbNNltVQAIpwDdP6ZNO2iRYqTpZGhfgWUaiMC2w1kCzkbALcqLvDVvUyK6MW9HFES0b8BvsFwXEZi4F+iBtykCcjtlqf0igr52VJ1eqiIgzzdlrRIZfWfJd3SD8ZbqHvkB4XSDpJNB9V0VcX/cT4Ys/zEzSuSj/3WxW9GpRD7ETpZ/QcOJ6LyfdHugitxNehbob9G7lo4PXWBmQhPqQ/fsDOeUfjqNCU1Csi+TQ5+2luzc3yaRr6elevQZwhZr4bomYam0U41yabYqov5hvSTMjlp6RyuiAarSTLPZmox5246+lVREx/isiuh6NxhUJwF2yEpCWu1bK8WEsjyRgCSa0XrVrjNra2mC7TWD5ilYAuJoA4jSlnppF5dVEU3g0ENTD4b3nsZiZsfGJuGqj8qY+CINGqP2GLZCJ+HjtpblxAJ9k3cPrLfGJrnVUaSCarxw0jFua1lOLNBerANx+byya6IkLM2uLZWpAl6/Mcc1EjvjKtLrJNLqI5HnjfQ+bsVeteb0g2y/t7hGvd7CNjenOL8OkJ40KtOdTF+Cl/nV6Mkf4gxocI9vZPYLLKs9iQrqRIACcM2IXGeSboYrg+rztY5ARaDJWUeo0W+sXudLTFhnApaAW6FkZy/+yuXasLoCrSfwVHAnW0+gK93YawKJMLUIAdNAKwhqnSxcYUpPKB6EBE2mg7VR///EX24jybTQerXnOC70FyVP3gjTPXPTQyaP8NFPNeJrCNTPP667JKOq6VNo/A2hes5ccUjmEmPmDoD5+FMgWCcA+3FG57QJP//kQ1PgGBIOToEDgUn+t4V/AJeGknwARIKLAAAAAElFTkSuQmCC" + webUI["html/img/m3u.png"] = "iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAAAXNSR0IArs4c6QAAAAlwSFlzAAAsSwAALEsBpT2WqQAABCRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IlhNUCBDb3JlIDUuNC4wIj4KICAgPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIgogICAgICAgICAgICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgICAgICAgICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyI+CiAgICAgICAgIDx0aWZmOlJlc29sdXRpb25Vbml0PjI8L3RpZmY6UmVzb2x1dGlvblVuaXQ+CiAgICAgICAgIDx0aWZmOkNvbXByZXNzaW9uPjU8L3RpZmY6Q29tcHJlc3Npb24+CiAgICAgICAgIDx0aWZmOlhSZXNvbHV0aW9uPjI4ODwvdGlmZjpYUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6T3JpZW50YXRpb24+MTwvdGlmZjpPcmllbnRhdGlvbj4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+Mjg4PC90aWZmOllSZXNvbHV0aW9uPgogICAgICAgICA8ZXhpZjpQaXhlbFhEaW1lbnNpb24+NTA8L2V4aWY6UGl4ZWxYRGltZW5zaW9uPgogICAgICAgICA8ZXhpZjpDb2xvclNwYWNlPjE8L2V4aWY6Q29sb3JTcGFjZT4KICAgICAgICAgPGV4aWY6UGl4ZWxZRGltZW5zaW9uPjUwPC9leGlmOlBpeGVsWURpbWVuc2lvbj4KICAgICAgICAgPGRjOnN1YmplY3Q+CiAgICAgICAgICAgIDxyZGY6QmFnLz4KICAgICAgICAgPC9kYzpzdWJqZWN0PgogICAgICAgICA8eG1wOk1vZGlmeURhdGU+MjAxOC0wNy0yOFQxOTowNzozMTwveG1wOk1vZGlmeURhdGU+CiAgICAgICAgIDx4bXA6Q3JlYXRvclRvb2w+UGl4ZWxtYXRvciAzLjM8L3htcDpDcmVhdG9yVG9vbD4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgIDwvcmRmOlJERj4KPC94OnhtcG1ldGE+CumjVbcAAAGWSURBVGgF7VoxTgJRFGTFaGKBFnbEcABjb0fiBego7D2ABYmn8ARKRWFNQ6gx4QRQGWJJoY2VhXGdl7Dkh7Dsx3ns3yXvJ5P97L6d92bmhwYqlcWK43gK5L2enP51NP8F7pN721wPnOITZx9qG6HxI8QIZO+9XCHeL+VQKKm8QMyxb6+iCpH528AQYs58xIQWknV8mhDxCjEXWWJCC8maT55fAmOIudpUXAYhMn8dGEHMTZqYsgiR+U+BAcTcrhNTJiEy/xHQg5jOqpjD1RsBP3+id8u3P8TUoij6SuoLIwRDfWOofjLYtteyHa1UfcvvcUT1jqpGauVuHnyAdragjv/TAkley3uhj9Y5ZhDQa2+Olgmhz4IygSWibChNZ4nQFioTWCLKhtJ0lghtoTKBJaJsKE1nidAWKhNYIsqG0nSWCG2hMoElomwoTWeJ0BYqE1giyobSdJYIbaEygSWibChNZ4nQFioTWCLKhtJ0biJzmi1/guXMrpDn/OegO3bXMuAH0TtgAvwARV3y57Q34AGoJkL+AErKZ9cqbH7AAAAAAElFTkSuQmCC" + webUI["html/js/settings_ts.js"] = "Y2xhc3MgU2V0dGluZ3NDYXRlZ29yeSB7DQogICAgY29uc3RydWN0b3IoKSB7DQogICAgICAgIHRoaXMuRG9jdW1lbnRJRCA9ICJjb250ZW50X3NldHRpbmdzIjsNCiAgICB9DQogICAgY3JlYXRlQ2F0ZWdvcnlIZWFkbGluZSh2YWx1ZSkgew0KICAgICAgICB2YXIgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIkg0Iik7DQogICAgICAgIGVsZW1lbnQuaW5uZXJIVE1MID0gdmFsdWU7DQogICAgICAgIHJldHVybiBlbGVtZW50Ow0KICAgIH0NCiAgICBjcmVhdGVIUigpIHsNCiAgICAgICAgdmFyIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJIUiIpOw0KICAgICAgICByZXR1cm4gZWxlbWVudDsNCiAgICB9DQogICAgY3JlYXRlU2V0dGluZ3Moc2V0dGluZ3NLZXkpIHsNCiAgICAgICAgdmFyIHNldHRpbmcgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJUUiIpOw0KICAgICAgICB2YXIgY29udGVudCA9IG5ldyBQb3B1cENvbnRlbnQoKTsNCiAgICAgICAgdmFyIGRhdGEgPSBTRVJWRVJbInNldHRpbmdzIl1bc2V0dGluZ3NLZXldOw0KICAgICAgICBzd2l0Y2ggKHNldHRpbmdzS2V5KSB7DQogICAgICAgICAgICAvLyBUZXh0IGlucHV0cw0KICAgICAgICAgICAgY2FzZSAidXBkYXRlIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLnVwZGF0ZS50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsICJ1cGRhdGUiLCBkYXRhLnRvU3RyaW5nKCkpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3suc2V0dGluZ3MudXBkYXRlLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJiYWNrdXAucGF0aCI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5iYWNrdXBQYXRoLnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgImJhY2t1cC5wYXRoIiwgZGF0YSk7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5zZXR0aW5ncy5iYWNrdXBQYXRoLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ0ZW1wLnBhdGgiOg0KICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MudGVtcFBhdGgudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCAidGVtcC5wYXRoIiwgZGF0YSk7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5zZXR0aW5ncy50bXBQYXRoLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ1c2VyLmFnZW50IjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLnVzZXJBZ2VudC50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsICJ1c2VyLmFnZW50IiwgZGF0YSk7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5zZXR0aW5ncy51c2VyQWdlbnQucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImJ1ZmZlci50aW1lb3V0IjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmJ1ZmZlclRpbWVvdXQudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCAiYnVmZmVyLnRpbWVvdXQiLCBkYXRhKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnNldHRpbmdzLmJ1ZmZlclRpbWVvdXQucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImZmbXBlZy5wYXRoIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmZmbXBlZ1BhdGgudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCAiZmZtcGVnLnBhdGgiLCBkYXRhKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnNldHRpbmdzLmZmbXBlZ1BhdGgucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImZmbXBlZy5vcHRpb25zIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmZmbXBlZ09wdGlvbnMudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCAiZmZtcGVnLm9wdGlvbnMiLCBkYXRhKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnNldHRpbmdzLmZmbXBlZ09wdGlvbnMucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInZsYy5wYXRoIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLnZsY1BhdGgudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCAidmxjLnBhdGgiLCBkYXRhKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnNldHRpbmdzLnZsY1BhdGgucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInZsYy5vcHRpb25zIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLnZsY09wdGlvbnMudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCAidmxjLm9wdGlvbnMiLCBkYXRhKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnNldHRpbmdzLnZsY09wdGlvbnMucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIC8vIENoZWNrYm94ZXMNCiAgICAgICAgICAgIGNhc2UgImF1dGhlbnRpY2F0aW9uLndlYiI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5hdXRoZW50aWNhdGlvbldFQi50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChzZXR0aW5nc0tleSk7DQogICAgICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGE7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiYXV0aGVudGljYXRpb24ucG1zIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmF1dGhlbnRpY2F0aW9uUE1TLnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KHNldHRpbmdzS2V5KTsNCiAgICAgICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJhdXRoZW50aWNhdGlvbi5tM3UiOg0KICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MuYXV0aGVudGljYXRpb25NM1UudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goc2V0dGluZ3NLZXkpOw0KICAgICAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImF1dGhlbnRpY2F0aW9uLnhtbCI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5hdXRoZW50aWNhdGlvblhNTC50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChzZXR0aW5nc0tleSk7DQogICAgICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGE7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiYXV0aGVudGljYXRpb24uYXBpIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmF1dGhlbnRpY2F0aW9uQVBJLnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KHNldHRpbmdzS2V5KTsNCiAgICAgICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJmaWxlcy51cGRhdGUiOg0KICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MuZmlsZXNVcGRhdGUudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goc2V0dGluZ3NLZXkpOw0KICAgICAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImNhY2hlLmltYWdlcyI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5jYWNoZUltYWdlcy50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChzZXR0aW5nc0tleSk7DQogICAgICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGE7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAieGVwZy5yZXBsYWNlLm1pc3NpbmcuaW1hZ2VzIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLnJlcGxhY2VFbXB0eUltYWdlcy50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChzZXR0aW5nc0tleSk7DQogICAgICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGE7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAieHRldmVBdXRvVXBkYXRlIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLnh0ZXZlQXV0b1VwZGF0ZS50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChzZXR0aW5nc0tleSk7DQogICAgICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGE7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiYXBpIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmFwaS50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChzZXR0aW5nc0tleSk7DQogICAgICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGE7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgLy8gU2VsZWN0DQogICAgICAgICAgICBjYXNlICJ0dW5lciI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy50dW5lci50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIHRleHQgPSBuZXcgQXJyYXkoKTsNCiAgICAgICAgICAgICAgICB2YXIgdmFsdWVzID0gbmV3IEFycmF5KCk7DQogICAgICAgICAgICAgICAgZm9yICh2YXIgaSA9IDE7IGkgPD0gMTAwOyBpKyspIHsNCiAgICAgICAgICAgICAgICAgICAgdGV4dC5wdXNoKGkpOw0KICAgICAgICAgICAgICAgICAgICB2YWx1ZXMucHVzaChpKTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgdmFyIHNlbGVjdCA9IGNvbnRlbnQuY3JlYXRlU2VsZWN0KHRleHQsIHZhbHVlcywgZGF0YSwgc2V0dGluZ3NLZXkpOw0KICAgICAgICAgICAgICAgIHNlbGVjdC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChzZWxlY3QpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiZXBnU291cmNlIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmVwZ1NvdXJjZS50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIHRleHQgPSBbIlBNUyIsICJYRVBHIl07DQogICAgICAgICAgICAgICAgdmFyIHZhbHVlcyA9IFsiUE1TIiwgIlhFUEciXTsNCiAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCBkYXRhLCBzZXR0aW5nc0tleSk7DQogICAgICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKHNlbGVjdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJiYWNrdXAua2VlcCI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5iYWNrdXBLZWVwLnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgdGV4dCA9IFsiNSIsICIxMCIsICIyMCIsICIzMCIsICI0MCIsICI1MCJdOw0KICAgICAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBbIjUiLCAiMTAiLCAiMjAiLCAiMzAiLCAiNDAiLCAiNTAiXTsNCiAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCBkYXRhLCBzZXR0aW5nc0tleSk7DQogICAgICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKHNlbGVjdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJidWZmZXIuc2l6ZS5rYiI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5idWZmZXJTaXplLnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgdGV4dCA9IFsiMC41IE1CIiwgIjEgTUIiLCAiMiBNQiIsICIzIE1CIiwgIjQgTUIiLCAiNSBNQiIsICI2IE1CIiwgIjcgTUIiLCAiOCBNQiJdOw0KICAgICAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBbIjUxMiIsICIxMDI0IiwgIjIwNDgiLCAiMzA3MiIsICI0MDk2IiwgIjUxMjAiLCAiNjE0NCIsICI3MTY4IiwgIjgxOTIiXTsNCiAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCBkYXRhLCBzZXR0aW5nc0tleSk7DQogICAgICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKHNlbGVjdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJidWZmZXIiOg0KICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3Muc3RyZWFtQnVmZmVyaW5nLnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgdGV4dCA9IFsie3suc2V0dGluZ3Muc3RyZWFtQnVmZmVyaW5nLmluZm9fZmFsc2V9fSIsICJ4VGVWZTogKHt7LnNldHRpbmdzLnN0cmVhbUJ1ZmZlcmluZy5pbmZvX3h0ZXZlfX0pIiwgIkZGbXBlZzogKHt7LnNldHRpbmdzLnN0cmVhbUJ1ZmZlcmluZy5pbmZvX2ZmbXBlZ319KSIsICJWTEM6ICh7ey5zZXR0aW5ncy5zdHJlYW1CdWZmZXJpbmcuaW5mb192bGN9fSkiXTsNCiAgICAgICAgICAgICAgICB2YXIgdmFsdWVzID0gWyItIiwgInh0ZXZlIiwgImZmbXBlZyIsICJ2bGMiXTsNCiAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCBkYXRhLCBzZXR0aW5nc0tleSk7DQogICAgICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKHNlbGVjdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ1ZHB4eSI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy51ZHB4eS50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsICJ1ZHB4eSIsIGRhdGEpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3suc2V0dGluZ3MudWRweHkucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgfQ0KICAgICAgICByZXR1cm4gc2V0dGluZzsNCiAgICB9DQogICAgY3JlYXRlRGVzY3JpcHRpb24oc2V0dGluZ3NLZXkpIHsNCiAgICAgICAgdmFyIGRlc2NyaXB0aW9uID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVFIiKTsNCiAgICAgICAgdmFyIHRleHQ7DQogICAgICAgIHN3aXRjaCAoc2V0dGluZ3NLZXkpIHsNCiAgICAgICAgICAgIGNhc2UgImF1dGhlbnRpY2F0aW9uLndlYiI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5hdXRoZW50aWNhdGlvbldFQi5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImF1dGhlbnRpY2F0aW9uLm0zdSI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5hdXRoZW50aWNhdGlvbk0zVS5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImF1dGhlbnRpY2F0aW9uLnBtcyI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5hdXRoZW50aWNhdGlvblBNUy5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImF1dGhlbnRpY2F0aW9uLnhtbCI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5hdXRoZW50aWNhdGlvblhNTC5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImF1dGhlbnRpY2F0aW9uLmFwaSI6DQogICAgICAgICAgICAgICAgaWYgKFNFUlZFUlsic2V0dGluZ3MiXVsiYXV0aGVudGljYXRpb24ud2ViIl0gPT0gdHJ1ZSkgew0KICAgICAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLmF1dGhlbnRpY2F0aW9uQVBJLmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInh0ZXZlQXV0b1VwZGF0ZSI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy54dGV2ZUF1dG9VcGRhdGUuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJiYWNrdXAua2VlcCI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5iYWNrdXBLZWVwLmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiYmFja3VwLnBhdGgiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MuYmFja3VwUGF0aC5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInRlbXAucGF0aCI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy50ZW1wUGF0aC5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImJ1ZmZlciI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5zdHJlYW1CdWZmZXJpbmcuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJidWZmZXIuc2l6ZS5rYiI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5idWZmZXJTaXplLmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiYnVmZmVyLnRpbWVvdXQiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MuYnVmZmVyVGltZW91dC5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInVzZXIuYWdlbnQiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MudXNlckFnZW50LmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiZmZtcGVnLnBhdGgiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MuZmZtcGVnUGF0aC5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImZmbXBlZy5vcHRpb25zIjoNCiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLmZmbXBlZ09wdGlvbnMuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ2bGMucGF0aCI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy52bGNQYXRoLmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAidmxjLm9wdGlvbnMiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MudmxjT3B0aW9ucy5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImVwZ1NvdXJjZSI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5lcGdTb3VyY2UuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ0dW5lciI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy50dW5lci5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInVwZGF0ZSI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy51cGRhdGUuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJhcGkiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MuYXBpLmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiZmlsZXMudXBkYXRlIjoNCiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLmZpbGVzVXBkYXRlLmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiY2FjaGUuaW1hZ2VzIjoNCiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLmNhY2hlSW1hZ2VzLmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAieGVwZy5yZXBsYWNlLm1pc3NpbmcuaW1hZ2VzIjoNCiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLnJlcGxhY2VFbXB0eUltYWdlcy5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInVkcHh5IjoNCiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLnVkcHh5LmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgICAgICB0ZXh0ID0gIiI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIH0NCiAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAiIjsNCiAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICB2YXIgcHJlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiUFJFIik7DQogICAgICAgIHByZS5pbm5lckhUTUwgPSB0ZXh0Ow0KICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKHByZSk7DQogICAgICAgIGRlc2NyaXB0aW9uLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgIGRlc2NyaXB0aW9uLmFwcGVuZENoaWxkKHRkUmlnaHQpOw0KICAgICAgICByZXR1cm4gZGVzY3JpcHRpb247DQogICAgfQ0KfQ0KY2xhc3MgU2V0dGluZ3NDYXRlZ29yeUl0ZW0gZXh0ZW5kcyBTZXR0aW5nc0NhdGVnb3J5IHsNCiAgICBjb25zdHJ1Y3RvcihoZWFkbGluZSwgc2V0dGluZ3NLZXlzKSB7DQogICAgICAgIHN1cGVyKCk7DQogICAgICAgIHRoaXMuaGVhZGxpbmUgPSBoZWFkbGluZTsNCiAgICAgICAgdGhpcy5zZXR0aW5nc0tleXMgPSBzZXR0aW5nc0tleXM7DQogICAgfQ0KICAgIGNyZWF0ZUNhdGVnb3J5KCkgew0KICAgICAgICB2YXIgaGVhZGxpbmUgPSB0aGlzLmNyZWF0ZUNhdGVnb3J5SGVhZGxpbmUodGhpcy5oZWFkbGluZSk7DQogICAgICAgIHZhciBzZXR0aW5nc0tleXMgPSB0aGlzLnNldHRpbmdzS2V5czsNCiAgICAgICAgdmFyIGRvYyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHRoaXMuRG9jdW1lbnRJRCk7DQogICAgICAgIGRvYy5hcHBlbmRDaGlsZChoZWFkbGluZSk7DQogICAgICAgIC8vIENyZWF0ZSBhIHRhYmxlIGZvciB0aGUgY2F0ZWdvcnkNCiAgICAgICAgdmFyIHRhYmxlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEFCTEUiKTsNCiAgICAgICAgdmFyIGtleXMgPSBzZXR0aW5nc0tleXMuc3BsaXQoIiwiKTsNCiAgICAgICAga2V5cy5mb3JFYWNoKHNldHRpbmdzS2V5ID0+IHsNCiAgICAgICAgICAgIHN3aXRjaCAoc2V0dGluZ3NLZXkpIHsNCiAgICAgICAgICAgICAgICBjYXNlICJhdXRoZW50aWNhdGlvbi5wbXMiOg0KICAgICAgICAgICAgICAgIGNhc2UgImF1dGhlbnRpY2F0aW9uLm0zdSI6DQogICAgICAgICAgICAgICAgY2FzZSAiYXV0aGVudGljYXRpb24ueG1sIjoNCiAgICAgICAgICAgICAgICBjYXNlICJhdXRoZW50aWNhdGlvbi5hcGkiOg0KICAgICAgICAgICAgICAgICAgICBpZiAoU0VSVkVSWyJzZXR0aW5ncyJdWyJhdXRoZW50aWNhdGlvbi53ZWIiXSA9PSBmYWxzZSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBkZWZhdWx0Og0KICAgICAgICAgICAgICAgICAgICB2YXIgaXRlbSA9IHRoaXMuY3JlYXRlU2V0dGluZ3Moc2V0dGluZ3NLZXkpOw0KICAgICAgICAgICAgICAgICAgICB2YXIgZGVzY3JpcHRpb24gPSB0aGlzLmNyZWF0ZURlc2NyaXB0aW9uKHNldHRpbmdzS2V5KTsNCiAgICAgICAgICAgICAgICAgICAgdGFibGUuYXBwZW5kQ2hpbGQoaXRlbSk7DQogICAgICAgICAgICAgICAgICAgIHRhYmxlLmFwcGVuZENoaWxkKGRlc2NyaXB0aW9uKTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICB9DQogICAgICAgIH0pOw0KICAgICAgICBkb2MuYXBwZW5kQ2hpbGQodGFibGUpOw0KICAgICAgICBkb2MuYXBwZW5kQ2hpbGQodGhpcy5jcmVhdGVIUigpKTsNCiAgICB9DQp9DQpmdW5jdGlvbiBzaG93U2V0dGluZ3MoKSB7DQogICAgY29uc29sZS5sb2coIlNFVFRJTkdTIik7DQogICAgZm9yIChsZXQgaSA9IDA7IGkgPCBzZXR0aW5nc0NhdGVnb3J5Lmxlbmd0aDsgaSsrKSB7DQogICAgICAgIHNldHRpbmdzQ2F0ZWdvcnlbaV0uY3JlYXRlQ2F0ZWdvcnkoKTsNCiAgICB9DQp9DQpmdW5jdGlvbiBzYXZlU2V0dGluZ3MoKSB7DQogICAgY29uc29sZS5sb2coIlNhdmUgU2V0dGluZ3MiKTsNCiAgICB2YXIgY21kID0gInNhdmVTZXR0aW5ncyI7DQogICAgdmFyIGRpdiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb250ZW50X3NldHRpbmdzIik7DQogICAgdmFyIHNldHRpbmdzID0gZGl2LmdldEVsZW1lbnRzQnlDbGFzc05hbWUoImNoYW5nZWQiKTsNCiAgICB2YXIgbmV3U2V0dGluZ3MgPSBuZXcgT2JqZWN0KCk7DQogICAgZm9yIChsZXQgaSA9IDA7IGkgPCBzZXR0aW5ncy5sZW5ndGg7IGkrKykgew0KICAgICAgICB2YXIgbmFtZTsNCiAgICAgICAgdmFyIHZhbHVlOw0KICAgICAgICBzd2l0Y2ggKHNldHRpbmdzW2ldLnRhZ05hbWUpIHsNCiAgICAgICAgICAgIGNhc2UgIklOUFVUIjoNCiAgICAgICAgICAgICAgICBzd2l0Y2ggKHNldHRpbmdzW2ldLnR5cGUpIHsNCiAgICAgICAgICAgICAgICAgICAgY2FzZSAiY2hlY2tib3giOg0KICAgICAgICAgICAgICAgICAgICAgICAgbmFtZSA9IHNldHRpbmdzW2ldLm5hbWU7DQogICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IHNldHRpbmdzW2ldLmNoZWNrZWQ7DQogICAgICAgICAgICAgICAgICAgICAgICBuZXdTZXR0aW5nc1tuYW1lXSA9IHZhbHVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgICAgIGNhc2UgInRleHQiOg0KICAgICAgICAgICAgICAgICAgICAgICAgbmFtZSA9IHNldHRpbmdzW2ldLm5hbWU7DQogICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IHNldHRpbmdzW2ldLnZhbHVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgc3dpdGNoIChuYW1lKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAidXBkYXRlIjoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSB2YWx1ZS5zcGxpdCgiLCIpOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IHZhbHVlLmZpbHRlcihmdW5jdGlvbiAoZSkgeyByZXR1cm4gZTsgfSk7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgImJ1ZmZlci50aW1lb3V0IjoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSBwYXJzZUZsb2F0KHZhbHVlKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgIG5ld1NldHRpbmdzW25hbWVdID0gdmFsdWU7DQogICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJTRUxFQ1QiOg0KICAgICAgICAgICAgICAgIG5hbWUgPSBzZXR0aW5nc1tpXS5uYW1lOw0KICAgICAgICAgICAgICAgIHZhbHVlID0gc2V0dGluZ3NbaV0udmFsdWU7DQogICAgICAgICAgICAgICAgLy8gSWYgdGhlIHZhbHVlIGlzIGEgbnVtYmVyLCBzdG9yZSBpdCBhcyBhIG51bWJlcg0KICAgICAgICAgICAgICAgIGlmIChpc05hTih2YWx1ZSkpIHsNCiAgICAgICAgICAgICAgICAgICAgbmV3U2V0dGluZ3NbbmFtZV0gPSB2YWx1ZTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgZWxzZSB7DQogICAgICAgICAgICAgICAgICAgIG5ld1NldHRpbmdzW25hbWVdID0gcGFyc2VJbnQodmFsdWUpOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgfQ0KICAgIH0NCiAgICB2YXIgZGF0YSA9IG5ldyBPYmplY3QoKTsNCiAgICBkYXRhWyJzZXR0aW5ncyJdID0gbmV3U2V0dGluZ3M7DQogICAgdmFyIHNlcnZlciA9IG5ldyBTZXJ2ZXIoY21kKTsNCiAgICBzZXJ2ZXIucmVxdWVzdChkYXRhKTsNCn0NCg==" + webUI["html/login.html"] = "PCFkb2N0eXBlIGh0bWw+DQo8aHRtbD4NCiAgPGhlYWQ+DQogICAgPG1ldGEgY2hhcnNldD0idXRmLTgiPg0KICAgIDxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgsIGluaXRpYWwtc2NhbGU9MS4wIiAvPiANCiAgICA8dGl0bGU+eFRlVmU8L3RpdGxlPg0KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iY3NzL3NjcmVlbi5jc3MiIHR5cGU9InRleHQvY3NzIj4NCiAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9ImNzcy9iYXNlLmNzcyIgdHlwZT0idGV4dC9jc3MiPg0KICAgIDxzY3JpcHQgbGFuZ3VhZ2U9ImphdmFzY3JpcHQiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJqcy9uZXR3b3JrX3RzLmpzIj48L3NjcmlwdD4NCiAgICA8c2NyaXB0IGxhbmd1YWdlPSJqYXZhc2NyaXB0IiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ianMvYXV0aGVudGljYXRpb25fdHMuanMiPjwvc2NyaXB0Pg0KICA8L2hlYWQ+DQoNCiAgICA8Ym9keT4NCiAgICAgICAgICANCiAgICAgIDxkaXYgaWQ9ImhlYWRlciIgY2xhc3M9ImltZ0NlbnRlciI+PC9kaXY+DQoNCiAgICAgIDxkaXYgaWQ9ImJveCI+DQoNCiAgICAgICAgPGRpdiBpZD0iaGVhZGxpbmUiPg0KICAgICAgICAgIDxoMSBpZD0iaGVhZC10ZXh0IiBjbGFzcz0iY2VudGVyIj57ey5sb2dpbi5oZWFkbGluZX19PC9oMT4NCiAgICAgICAgPC9kaXY+DQoNCiAgICAgICAgPHAgaWQ9ImVyciIgY2xhc3M9ImVycm9yTXNnIGNlbnRlciI+e3suYXV0aGVudGljYXRpb25FcnJ9fTwvcD4NCg0KICAgICAgICA8ZGl2IGlkPSJjb250ZW50Ij4NCg0KICAgICAgICAgICAgPGZvcm0gaWQ9ImF1dGhlbnRpY2F0aW9uIiBhY3Rpb249IiIgbWV0aG9kPSJwb3N0Ij4NCg0KICAgICAgICAgICAgICA8aDU+e3subG9naW4udXNlcm5hbWUudGl0bGV9fTo8L2g1Pg0KICAgICAgICAgICAgICA8aW5wdXQgaWQ9InVzZXJuYW1lIiB0eXBlPSJ0ZXh0IiBuYW1lPSJ1c2VybmFtZSIgcGxhY2Vob2xkZXI9IlVzZXJuYW1lIiB2YWx1ZT0iIj4NCiAgICAgICAgICAgICAgPGg1Pnt7LmxvZ2luLnBhc3N3b3JkLnRpdGxlfX06PC9oNT4NCiAgICAgICAgICAgICAgPGlucHV0IGlkPSJwYXNzd29yZCIgdHlwZT0icGFzc3dvcmQiIG5hbWU9InBhc3N3b3JkIiBwbGFjZWhvbGRlcj0iUGFzc3dvcmQiIHZhbHVlPSIiPg0KDQogICAgICAgICAgICA8L2Zvcm0+DQoNCiAgICAgICAgPC9kaXY+DQoNCiAgICAgICAgPGRpdiBpZD0iYm94LWZvb3RlciI+DQogICAgICAgICAgPGlucHV0IGlkPSJzdWJtaXQiIGNsYXNzPSIiIHR5cGU9ImJ1dHRvbiIgdmFsdWU9Int7LmJ1dHRvbi5sb2dpbn19IiBvbmNsaWNrPSJqYXZhc2NyaXB0OiBsb2dpbigpOyI+DQogICAgICAgIDwvZGl2Pg0KICAgICAgICANCiAgICAgIDwvZGl2Pg0KDQogICAgPC9ib2R5Pg0KICAgIA0KPC9odG1sPg==" + webUI["html/css/base.css"] = "KiB7DQogIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTsNCiAgLW1vei1hcHBlYXJhbmNlOiBub25lOw0KICAtbXMtYXBwZWFyYW5jZTogbm9uZTsNCiAgZm9udC1mYW1pbHk6ICJBcmlhbCIsIHNhbnMtc2VyaWY7DQogIGxldHRlci1zcGFjaW5nOiAycHg7IA0KfQ0KDQovKg0KOjotd2Via2l0LXNjcm9sbGJhciB7IA0KICAgIGRpc3BsYXk6IG5vbmU7IA0KfQ0KKi8NCg0KOjotd2Via2l0LXNjcm9sbGJhciB7DQogIHdpZHRoOiAxMnB4Ow0KICBoZWlnaHQ6IDEycHg7DQp9DQoNCiANCjo6LXdlYmtpdC1zY3JvbGxiYXItdHJhY2sgew0KICAtd2Via2l0LWJveC1zaGFkb3c6IGluc2V0IDAgMCA2cHggcmdiYSgwLDAsMCwwLjMpOyANCiAgYm9yZGVyLXJhZGl1czogNXB4Ow0KICAgIA0KfQ0KIA0KOjotd2Via2l0LXNjcm9sbGJhci10aHVtYiB7DQogIGJvcmRlci1yYWRpdXM6IDVweDsNCiAgLXdlYmtpdC1ib3gtc2hhZG93OiBpbnNldCAwIDAgNnB4IHJnYmEoMCwgMCwgMCwwLjYpOyANCiAgYmFja2dyb3VuZC1jb2xvcjogIzQ0NDsNCn0NCg0KOjotd2Via2l0LXNjcm9sbGJhci10aHVtYjpob3ZlciB7DQogIGJhY2tncm91bmQ6ICMzMzM7IA0KfQ0KDQo6Oi13ZWJraXQtc2Nyb2xsYmFyLWNvcm5lciB7IA0KICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsgDQp9DQoNCmEgew0KICBjb2xvcjogIzAwRTZGRjsNCn0NCg0KaHRtbCwgYm9keSB7DQogIGNvbG9yOiAjZmZmOw0KICBtYXJnaW46IDBweCBhdXRvOw0KICBoZWlnaHQ6IDEwMCU7DQogIGZvbnQtc2l6ZTogMTRweDsNCn0NCg0KaDIgew0KICBmb250LXNpemU6IDI0cHg7DQogIGxldHRlci1zcGFjaW5nOiAycHg7DQp9DQoNCmgzIHsNCiAgZm9udC1zaXplOiAyMnB4Ow0KICBsZXR0ZXItc3BhY2luZzogMXB4Ow0KfQ0KDQpoNCB7DQogIGZvbnQtc2l6ZTogMjBweDsNCiAgbGV0dGVyLXNwYWNpbmc6IDFweDsNCiAgbGluZS1oZWlnaHQ6IDEuNWVtOw0KDQp9DQoNCmg1IHsNCiAgZm9udC1zaXplOiAxNnB4Ow0KICBsZXR0ZXItc3BhY2luZzogMXB4Ow0KICBsaW5lLWhlaWdodDogMS4yZW07DQogIG1hcmdpbjogMjVweCAwcHggMTBweCAwcHg7DQp9DQoNCmhyIHsNCiAgYm9yZGVyOiAwOw0KICBoZWlnaHQ6IDFweDsNCiAgYmFja2dyb3VuZDogIzMzMzsNCiAgbWFyZ2luOiAxMHB4IDBweDsNCn0NCg0KcCB7DQogIG1hcmdpbjogMnB4Ow0KICBwYWRkaW5nOiAycHggNXB4Ow0KfQ0KDQpwcmUgew0KICBtYXJnaW46IDBweCAwcHggNXB4IDBweDsNCiAgZm9udC1zaXplOiAxMnB4Ow0KICBjb2xvcjogI2RkZDsNCiAgbGV0dGVyLXNwYWNpbmc6IDFweDsNCiAgd2hpdGUtc3BhY2U6IHByZS13cmFwOw0KICBmb250LWZhbWlseTogbW9ub3NwYWNlOyANCiAgZm9udC1zaXplOiAxMnB4OyANCiAgZm9udC1zdHlsZTogbm9ybWFsOyANCiAgZm9udC12YXJpYW50OiBub3JtYWw7IA0KICBsaW5lLWhlaWdodDogMS42ZW07IA0KfQ0KDQpsYWJlbCB7DQogIG1hcmdpbi1ib3R0b206IDIwcHg7DQogIGRpc3BsYXk6IGJsb2NrOw0KfQ0KDQpsaSB7DQogIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTsNCiAgYmFja2dyb3VuZC1jb2xvcjogIzExMTsNCiAgcGFkZGluZzogMTBweCAyMHB4Ow0KICBjdXJzb3I6IHBvaW50ZXI7DQogIGJvcmRlci1sZWZ0OiBzb2xpZCAycHggIzExMTsNCiAgdHJhbnNpdGlvbjogYWxsIDAuMzsNCn0NCg0KbGk6aG92ZXIgew0KICBib3JkZXItY29sb3I6ICMwMEU2RkYNCn0NCg0Kc2VsZWN0IHsNCiAgY3Vyc29yOiBwb2ludGVyOw0KICB3aWR0aDogY2FsYygxMDAlICsgMnB4KTsNCiAgYm9yZGVyOiBzb2xpZCAwcHggIzAwRTZGRjsNCiAgYm9yZGVyLXJhZGl1czogMHB4Ow0KICBvdXRsaW5lOiBub25lOw0KICBjb2xvcjogI2ZmZjsNCiAgcGFkZGluZzogOXB4IDEwcHg7DQogIGRpc3BsYXk6YmxvY2s7DQogIGJhY2tncm91bmQtY29sb3I6ICMzMzM7DQogIGZvbnQtc2l6ZTogMTRweDsNCiAgbWFyZ2luOiA1cHggMHB4IDVweCAwcHg7DQp9DQoNCnNlbGVjdDpmb2N1cyB7DQogIG91dGxpbmU6IG5vbmU7DQp9DQoNCmlucHV0IHsNCiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lOw0KICBtYXJnaW46IDVweCAwcHg7DQogIHBhZGRpbmc6IDIuNXB4IDEwcHg7DQogIG91dGxpbmU6IG5vbmU7DQogIGZvbnQtc2l6ZTogMTRweDsNCn0NCg0KaW5wdXRbdHlwZT1idXR0b25dLCBpbnB1dFt0eXBlPXN1Ym1pdF0gew0KICBjdXJzb3I6IHBvaW50ZXI7DQogIGJhY2tncm91bmQtY29sb3I6ICMwMDA7DQogIG1hcmdpbjogMTBweCAxMHB4Ow0KICBwYWRkaW5nOiAxMHB4IDI1cHg7DQogIGJvcmRlcjogc29saWQgMHB4Ow0KICBib3JkZXItY29sb3I6ICMwMDA7DQogIGJvcmRlci1yYWRpdXM6IDNweDsNCiAgb3V0bGluZTogbm9uZTsNCiAgY29sb3I6ICNmZmY7DQp9DQoNCmlucHV0W3R5cGU9YnV0dG9uXTpmb2N1cyB7IA0KICAgb3V0bGluZTogbm9uZTsNCn0NCg0KaW5wdXRbdHlwZT1idXR0b25dOmhvdmVyIHsNCiAgYmFja2dyb3VuZC1jb2xvcjogIzAwRTZGRjsNCiAgY29sb3I6ICMwMDA7DQp9DQoNCmlucHV0W3R5cGU9YnV0dG9uXTpob3Zlci5kZWxldGUgIHsNCiAgYmFja2dyb3VuZC1jb2xvcjogcmVkOw0KICBjb2xvcjogI2ZmZjsNCn0NCg0KaW5wdXRbdHlwZT10ZXh0XSwgaW5wdXRbdHlwZT1zZWFyY2hdLCBpbnB1dFt0eXBlPXBhc3N3b3JkXSB7DQogIGNvbG9yOiAjZmZmOw0KICB3aWR0aDogLXdlYmtpdC1jYWxjKDEwMCUgLSAwcHgpOw0KICB3aWR0aDogLW1vei1jYWxjKDEwMCUgLSAwcHgpOw0KICB3aWR0aDogY2FsYygxMDAlIC0gMHB4KTsNCiAgb3V0bGluZTogbm9uZTsNCiAgYm9yZGVyOiBzb2xpZCAxcHggdHJhbnNwYXJlbnQ7DQogIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50Ow0KICBib3JkZXItYm90dG9tLWNvbG9yOiAjNTU1Ow0KICBib3JkZXItcmFkaXVzOiAwcHg7DQogIHBhZGRpbmc6IDhweCAxMHB4Ow0KfQ0KDQppbnB1dFt0eXBlPSJjaGVja2JveCJdIHsNCiAgYm9yZGVyOiBzb2xpZCAxcHggIzAwRTZGRjsNCiAgYmFja2dyb3VuZC1jb2xvcjogIzMzMzsNCiAgaGVpZ2h0OiAyNXB4Ow0KICB3aWR0aDogMjVweDsNCiAgY3Vyc29yOiBwb2ludGVyOw0KICAvKg0KICAtd2Via2l0LWFwcGVhcmFuY2U6IGNoZWNrYm94Ow0KICAqLw0KfQ0KDQppbnB1dFt0eXBlPSJjaGVja2JveCJdOmNoZWNrZWQgew0KICBjb2xvcjogI2ZmZjsNCiAgYmFja2dyb3VuZC1jb2xvcjogIzAwRTZGRjsNCiAgLypkaXNwbGF5OiBpbmxpbmUtYmxvY2s7Ki8NCn0NCg0KaW5wdXRbdHlwZT0iY2hlY2tib3giXTpiZWZvcmUgew0KICBwb3NpdGlvbjogaW5pdGlhbDsNCiAgbGVmdDogMHB4Ow0KICBtYXJnaW4tbGVmdDogLTRweDsNCiAgY29udGVudDogIiAiOw0KfQ0KDQppbnB1dFt0eXBlPSJjaGVja2JveCJdOmNoZWNrZWQ6YmVmb3JlIHsNCiAgcG9zaXRpb246IGluaXRpYWw7DQogIGxlZnQ6IDBweDsNCiAgbWFyZ2luLWxlZnQ6IC0zcHg7DQogIGNvbnRlbnQ6ICLinJMiOw0KICBjb2xvcjogIzAwMDsNCn0NCg0KDQppbnB1dFt0eXBlPWJ1dHRvbl0uY2FuY2VsIHsNCiAgDQogIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50Ow0KICBib3JkZXItY29sb3I6IHJlZDsNCn0NCg0KaW5wdXRbdHlwZT1idXR0b25dLnNhdmV7DQogIGJhY2tncm91bmQtY29sb3I6ICMxMTE7DQogIGZsb2F0OiByaWdodDsNCn0NCg0KDQppbnB1dFt0eXBlPWJ1dHRvbl0uYmxhY2ssIGlucHV0W3R5cGU9c3VibWl0XS5ibGFja3sNCiAgYmFja2dyb3VuZC1jb2xvcjogIzAwMDsNCiAgYm9yZGVyLWNvbG9yOiAjMDAwOw0KfQ0KDQppbnB1dFt0eXBlPWJ1dHRvbl0uY2VudGVyew0KICBtYXJnaW4tcmlnaHQ6IGF1dG87DQogIG1hcmdpbi1sZWZ0OiBhdXRvOw0KICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDAwOw0KICBib3JkZXItY29sb3I6ICMwMDA7DQp9DQoNCi5wb2ludGVyIHsNCiAgY3Vyc29yOiBwb2ludGVyOw0KfQ0KDQoucG9pbnRlcjpob3ZlciB7DQogIGNvbG9yOiAjMDBFNkZGOw0KICBjdXJzb3I6IHBvaW50ZXI7DQp9DQoNCi5zb3J0VGhpcyB7DQogIGNvbG9yOiAjMDBFNkZGOw0KfQ0KDQoudzQwcHggew0KICBtYXgtd2lkdGg6IDQwcHg7DQp9DQoNCi53NTBweCB7DQogIG1heC13aWR0aDogNTBweDsNCn0NCg0KLnc4MHB4IHsNCiAgbWF4LXdpZHRoOiA4MHB4Ow0KfQ0KDQoudzE1MHB4IHsNCiAgbWF4LXdpZHRoOiAxNTBweDsNCn0NCg0KLncyMDBweCB7DQogIG1heC13aWR0aDogMjAwcHg7DQogIG1pbi13aWR0aDogMTAwcHg7DQogIHdpZHRoOiAyMDBweDsNCiAgb3ZlcmZsb3cteDogaGlkZGVuOw0KICB3aGl0ZS1zcGFjZTogbm93cmFwOw0KICBvdmVyZmxvdzogaGlkZGVuOw0KICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsNCn0NCg0KLnczMDBweCB7DQogIG1heC13aWR0aDogMzAwcHg7DQp9DQoNCi53MjIwcHggew0KICBtYXgtd2lkdGg6IDIyMHB4Ow0KICBjdXJzb3I6IGFsaWFzOw0KfQ0KDQouZm9vdGVyIHsNCiAgZm9udC1zaXplOiAxMHB4Ow0KfQ0KDQouY2VudGVyIHsNCiAgdGV4dC1hbGlnbjogY2VudGVyOw0KfQ0KDQouc2NyZWVuTG9nSGlkZGVuIHsNCiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMHB4LCAtMTEwcHgpOw0KfQ0KDQouYm9yZGVyU3BhY2Ugew0KICBtYXJnaW4tYm90dG9tOiAzMHB4Ow0KfQ0KDQouYmxvY2sgew0KDQp9DQoNCi5ub25lIHsNCiAgZGlzcGxheTogbm9uZTsNCn0NCg0KDQoubm90VmlzaWJsZSB7DQogIGhlaWdodDogMHB4Ow0KICBkaXNwbGF5OiBub25lOw0KICBvcGFjaXR5OiAwOw0KICBib3JkZXItYm90dG9tOiAjMDAwIHNvbGlkIDBweDsNCiAgDQp9DQoNCi52aXNpYmxlIHsNCiAgb3BhY2l0eTogMTsNCiAgZGlzcGxheTogYmxvY2s7DQogIGJvcmRlci1ib3R0b206ICM0NDQgc29saWQgMXB4OyANCiAgcGFkZGluZzogMTBweDsNCn0NCg0KLmZsb2F0UmlnaHQgew0KICBmbG9hdDogcmlnaHQ7DQp9DQoNCi5mbG9hdExlZnQgew0KICBmbG9hdDogbGVmdDsNCn0NCg0KLm1lbnUtYWN0aXZlIHsNCiAgYmFja2dyb3VuZC1jb2xvcjogIzAwRTZGRjsNCn0NCg0KLm1lbnUtbm90QWN0aXZlIHsNCiAgDQp9DQoNCiNicmFuY2ggew0KICBkaXNwbGF5OiB0YWJsZTsNCiAgbWFyZ2luOiBhdXRvOw0KICBjb2xvcjogcmVkOw0KfQ0KDQojaW50ZXJhY3Rpb24gew0KICBtYXJnaW4tYm90dG9tOiAxMDBweDsNCiAgdGV4dC1hbGlnbjogY2VudGVyOw0KICBib3JkZXItYm90dG9tOiBzb2xpZCAwcHggIzc3NzsNCn0NCg0KDQouaGFsZiB7DQogIGRpc3BsYXk6IGJsb2NrOw0KICB3aWR0aDogNDUlOw0KfQ0KDQoubWVudSB7DQogIGJvcmRlcjogc29saWQgMXB4ICMwMEU2RkY7DQp9DQoNCi5pbmZvTXNnIHsNCiAgY29sb3I6ICNhYWE7DQp9DQoNCi5lcnJvck1zZyB7DQogIGNvbG9yOiByZWQ7DQp9DQoNCi53YXJuaW5nTXNnIHsNCiAgY29sb3I6IHllbGxvdzsNCn0NCg0KLmRlYnVnTXNnIHsNCiAgY29sb3I6IG1hZ2VudGE7DQp9DQoNCi5OZXdzLCAuTW92aWUsIC5TZXJpZXMsIC5TcG9ydHMsIC5LaWRzIHsNCiAgYm9yZGVyLWxlZnQ6IHNvbGlkIDJweA0KfQ0KDQouTmV3cyB7DQogIGJvcmRlci1jb2xvcjogdG9tYXRvDQp9DQoNCi5Nb3ZpZSB7DQogIGJvcmRlci1jb2xvcjogcm95YWxibHVlOw0KfQ0KDQouU2VyaWVzIHsNCiAgYm9yZGVyLWNvbG9yOiBnb2xkOw0KfQ0KDQouU3BvcnRzIHsNCiAgYm9yZGVyLWNvbG9yOiB5ZWxsb3dncmVlbjsNCn0NCg0KLktpZHMgew0KICBib3JkZXItY29sb3I6IG1lZGl1bXB1cnBsZTsNCn0NCg0KLyogTG9hZGluZyAqLw0KI2xvYWRpbmcgew0KICBsZWZ0OiAwcHg7DQogIHRvcDogMHB4Ow0KICB6LWluZGV4OiAxMDAwMDsNCiAgcG9zaXRpb246IGFic29sdXRlOw0KICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsMCwwLCAwLjgpOw0KICBtYXJnaW46IGF1dG87DQogIHdpZHRoOiAxMDAlOw0KICBoZWlnaHQ6IDEwMCU7DQp9DQoNCg0KLmxvYWRlciB7DQogIGJvcmRlcjogNXB4IHNvbGlkIHRyYW5zcGFyZW50Ow0KICBib3JkZXItcmFkaXVzOiA1MCU7DQogIGJvcmRlci10b3A6IDVweCBzb2xpZCAjMDBFNkZGOw0KICBib3JkZXItYm90dG9tOiA1cHggc29saWQgIzAwRTZGRjsNCiAgd2lkdGg6IDUwcHg7DQogIGhlaWdodDogNTBweDsNCiAgLXdlYmtpdC1hbmltYXRpb246IHNwaW4gMS4ycyBsaW5lYXIgaW5maW5pdGU7DQogIGFuaW1hdGlvbjogc3BpbiAxLjJzIGxpbmVhciBpbmZpbml0ZTsNCg0KICBwb3NpdGlvbjogZml4ZWQ7DQogIG1hcmdpbjogYXV0bzsNCg0KICB0b3A6IDA7DQogIHJpZ2h0OiAwOw0KICBib3R0b206IDA7DQogIGxlZnQ6IDA7DQogIA0KfQ0KDQpALXdlYmtpdC1rZXlmcmFtZXMgc3BpbiB7DQogIDAlIHsgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTsgfQ0KICAxMDAlIHsgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpOyB9DQp9DQoNCkBrZXlmcmFtZXMgc3BpbiB7DQogIDAlIHsgdHJhbnNmb3JtOiByb3RhdGUoMGRlZyk7IH0NCiAgMTAwJSB7IHRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7IH0NCn0NCg==" + webUI["html/img/logo_w_600x200.png"] = "iVBORw0KGgoAAAANSUhEUgAAAlgAAADICAYAAAA0n5+2AAAAAXNSR0IArs4c6QAAAAlwSFlzAAAuIwAALiMBeKU/dgAABCZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IlhNUCBDb3JlIDUuNC4wIj4KICAgPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIgogICAgICAgICAgICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgICAgICAgICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyI+CiAgICAgICAgIDx0aWZmOlJlc29sdXRpb25Vbml0PjI8L3RpZmY6UmVzb2x1dGlvblVuaXQ+CiAgICAgICAgIDx0aWZmOkNvbXByZXNzaW9uPjU8L3RpZmY6Q29tcHJlc3Npb24+CiAgICAgICAgIDx0aWZmOlhSZXNvbHV0aW9uPjMwMDwvdGlmZjpYUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6T3JpZW50YXRpb24+MTwvdGlmZjpPcmllbnRhdGlvbj4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+MzAwPC90aWZmOllSZXNvbHV0aW9uPgogICAgICAgICA8ZXhpZjpQaXhlbFhEaW1lbnNpb24+NjAwPC9leGlmOlBpeGVsWERpbWVuc2lvbj4KICAgICAgICAgPGV4aWY6Q29sb3JTcGFjZT4xPC9leGlmOkNvbG9yU3BhY2U+CiAgICAgICAgIDxleGlmOlBpeGVsWURpbWVuc2lvbj4yMDA8L2V4aWY6UGl4ZWxZRGltZW5zaW9uPgogICAg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" + webUI["html/js/classes_ts.js"] = "dmFyIF9fZXh0ZW5kcyA9ICh0aGlzICYmIHRoaXMuX19leHRlbmRzKSB8fCAoZnVuY3Rpb24gKCkgew0KICAgIHZhciBleHRlbmRTdGF0aWNzID0gZnVuY3Rpb24gKGQsIGIpIHsNCiAgICAgICAgZXh0ZW5kU3RhdGljcyA9IE9iamVjdC5zZXRQcm90b3R5cGVPZiB8fA0KICAgICAgICAgICAgKHsgX19wcm90b19fOiBbXSB9IGluc3RhbmNlb2YgQXJyYXkgJiYgZnVuY3Rpb24gKGQsIGIpIHsgZC5fX3Byb3RvX18gPSBiOyB9KSB8fA0KICAgICAgICAgICAgZnVuY3Rpb24gKGQsIGIpIHsgZm9yICh2YXIgcCBpbiBiKSBpZiAoYi5oYXNPd25Qcm9wZXJ0eShwKSkgZFtwXSA9IGJbcF07IH07DQogICAgICAgIHJldHVybiBleHRlbmRTdGF0aWNzKGQsIGIpOw0KICAgIH07DQogICAgcmV0dXJuIGZ1bmN0aW9uIChkLCBiKSB7DQogICAgICAgIGV4dGVuZFN0YXRpY3MoZCwgYik7DQogICAgICAgIGZ1bmN0aW9uIF9fKCkgeyB0aGlzLmNvbnN0cnVjdG9yID0gZDsgfQ0KICAgICAgICBkLnByb3RvdHlwZSA9IGIgPT09IG51bGwgPyBPYmplY3QuY3JlYXRlKGIpIDogKF9fLnByb3RvdHlwZSA9IGIucHJvdG90eXBlLCBuZXcgX18oKSk7DQogICAgfTsNCn0pKCk7DQp2YXIgTWFpbk1lbnUgPSAvKiogQGNsYXNzICovIChmdW5jdGlvbiAoKSB7DQogICAgZnVuY3Rpb24gTWFpbk1lbnUoKSB7DQogICAgICAgIHRoaXMuRG9jdW1lbnRJRCA9ICJtYWluLW1lbnUiOw0KICAgICAgICB0aGlzLkhUTUxUYWcgPSAiTEkiOw0KICAgIH0NCiAgICBNYWluTWVudS5wcm90b3R5cGUuY3JlYXRlID0gZnVuY3Rpb24gKCkgew0KICAgICAgICBjb25zb2xlLmxvZyh0aGlzLkRvY3VtZW50SUQpOw0KICAgIH07DQogICAgcmV0dXJuIE1haW5NZW51Ow0KfSgpKTsNCnZhciBNYWluTWVudUl0ZW0gPSAvKiogQGNsYXNzICovIChmdW5jdGlvbiAoX3N1cGVyKSB7DQogICAgX19leHRlbmRzKE1haW5NZW51SXRlbSwgX3N1cGVyKTsNCiAgICBmdW5jdGlvbiBNYWluTWVudUl0ZW0oKSB7DQogICAgICAgIHJldHVybiBfc3VwZXIgIT09IG51bGwgJiYgX3N1cGVyLmFwcGx5KHRoaXMsIGFyZ3VtZW50cykgfHwgdGhpczsNCiAgICB9DQogICAgTWFpbk1lbnVJdGVtLnByb3RvdHlwZS5jcmVhdGUyID0gZnVuY3Rpb24gKCkgew0KICAgICAgICB2YXIgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQodGhpcy5IVE1MVGFnKTsNCiAgICAgICAgZWxlbWVudC5pbm5lclRleHQgPSB0aGlzLlZhbHVlOw0KICAgICAgICBjb25zb2xlLmxvZyhlbGVtZW50KTsNCiAgICB9Ow0KICAgIHJldHVybiBNYWluTWVudUl0ZW07DQp9KE1haW5NZW51KSk7DQpmdW5jdGlvbiBwYWdlUmVhZHkoKSB7DQogICAgdmFyIGl0ZW0gPSBuZXcgTWFpbk1lbnVJdGVtKCk7DQogICAgaXRlbS5WYWx1ZSA9ICJUZXN0IjsNCiAgICBpdGVtLmNyZWF0ZTIoKTsNCn0NCg==" } diff --git a/src/xepg.go b/src/xepg.go index d3edb4d..6d319ac 100644 --- a/src/xepg.go +++ b/src/xepg.go @@ -438,7 +438,7 @@ func createXEPGDatabase() (err error) { Data.XEPG.Channels[currentXEPGID] = xepgChannel case false: - // Neuer Kanal + // New Channel var xepg = createNewID() xChannelID := func() string { if m3uChannel.PreserveMapping == "true" { @@ -755,46 +755,46 @@ func getProgramData(xepgChannel XEPGChannelStruct) (xepgXML XMLTV, err error) { // Title program.Title = xmltvProgram.Title - // Sub title (Untertitel) + // Subtitle program.SubTitle = xmltvProgram.SubTitle - // Description (Beschreibung) + // Description program.Desc = xmltvProgram.Desc - // Category (Kategorie) + // Category getCategory(program, xmltvProgram, xepgChannel) - // Credits : (Credits) + // Credits program.Credits = xmltvProgram.Credits - // Rating (Bewertung) + // Rating program.Rating = xmltvProgram.Rating - // StarRating (Bewertung / Kritiken) + // StarRating program.StarRating = xmltvProgram.StarRating - // Country (Länder) + // Country program.Country = xmltvProgram.Country - // Program icon (Poster / Cover) + // Program icon getPoster(program, xmltvProgram, xepgChannel) - // Language (Sprache) + // Language program.Language = xmltvProgram.Language - // Episodes numbers (Episodennummern) + // Episodes numbers getEpisodeNum(program, xmltvProgram, xepgChannel) - // Video (Videoparameter) + // Video getVideo(program, xmltvProgram, xepgChannel) - // Date (Datum) + // Date program.Date = xmltvProgram.Date - // Previously shown (Wiederholung) + // Previously shown program.PreviouslyShown = xmltvProgram.PreviouslyShown - // New (Neu) + // New program.New = xmltvProgram.New // Live diff --git a/ts/base_ts.ts b/ts/base_ts.ts index 647faf0..596fbae 100644 --- a/ts/base_ts.ts +++ b/ts/base_ts.ts @@ -7,7 +7,7 @@ var SERVER_CONNECTION = false var WS_AVAILABLE = false -// Menü +// Menu var menuItems = new Array() menuItems.push(new MainMenuItem("playlist", "{{.mainMenu.item.playlist}}", "m3u.png", "{{.mainMenu.headline.playlist}}")) //menuItems.push(new MainMenuItem("pmsID", "{{.mainMenu.item.pmsID}}", "number.png", "{{.mainMenu.headline.pmsID}}")) @@ -19,7 +19,7 @@ menuItems.push(new MainMenuItem("settings", "{{.mainMenu.item.settings}}", "sett menuItems.push(new MainMenuItem("log", "{{.mainMenu.item.log}}", "log.png", "{{.mainMenu.headline.log}}")) menuItems.push(new MainMenuItem("logout", "{{.mainMenu.item.logout}}", "logout.png", "{{.mainMenu.headline.logout}}")) -// Kategorien für die Einstellungen +// Settings categories var settingsCategory = new Array() settingsCategory.push(new SettingsCategoryItem("{{.settings.category.general}}", "xteveAutoUpdate,tuner,epgSource,api"));settingsCategory.push(new SettingsCategoryItem("{{.settings.category.files}}", "update,files.update,temp.path,cache.images,xepg.replace.missing.images")) settingsCategory.push(new SettingsCategoryItem("{{.settings.category.streaming}}", "buffer,udpxy,buffer.size.kb,buffer.timeout,user.agent,ffmpeg.path,ffmpeg.options,vlc.path,vlc.options")) diff --git a/ts/configuration_ts.ts b/ts/configuration_ts.ts index 573015f..e81db2f 100644 --- a/ts/configuration_ts.ts +++ b/ts/configuration_ts.ts @@ -127,7 +127,7 @@ function saveWizard() { name = (config[i] as HTMLSelectElement).name value = (config[i] as HTMLSelectElement).value - // Wenn der Wert eine Zahl ist, wird dieser als Zahl gespeichert + // If the value is a number, store it as a number if(isNaN(value)){ wizard[name] = value } else { diff --git a/ts/menu_ts.ts b/ts/menu_ts.ts index a308f9b..8d22adf 100644 --- a/ts/menu_ts.ts +++ b/ts/menu_ts.ts @@ -411,7 +411,7 @@ class Content { cell.value = false tr.appendChild(cell.createCell()) - // Kanalnummer + // Channel number var cell:Cell = new Cell() cell.child = true cell.childType = "INPUTCHANNEL" @@ -430,7 +430,7 @@ class Content { tr.appendChild(td) - // Kanalname + // Channel name var cell:Cell = new Cell() cell.child = true cell.childType = "P" @@ -454,7 +454,7 @@ class Content { tr.appendChild(td) - // Gruppe (group-title) + // Group (group-title) var cell:Cell = new Cell() cell.child = true cell.childType = "P" @@ -464,7 +464,7 @@ class Content { td.id = key tr.appendChild(td) - // XMLTV Datei + // XMLTV file var cell:Cell = new Cell() cell.child = true cell.childType = "P" @@ -480,7 +480,7 @@ class Content { td.id = key tr.appendChild(td) - // XMLTV Kanal + // XMLTV Channel var cell:Cell = new Cell() cell.child = true cell.childType = "P" @@ -630,12 +630,12 @@ class ShowContent extends Content { show():void { COLUMN_TO_SORT = -1 - // Alten Inhalt löschen + // Delete old content let doc = document.getElementById(this.DocumentID) doc.innerHTML = "" showPreview(false) - // Überschrift + // Headline let headline:string[] = menuItems[this.menuID].headline let menuKey = menuItems[this.menuID].menuKey @@ -645,7 +645,7 @@ class ShowContent extends Content { let hr = this.createHR() doc.appendChild(hr) - // Interaktion + // Interaction let div =this.createInteraction() doc.appendChild(div) let interaction = document.getElementById(this.interactionID) @@ -749,7 +749,7 @@ class ShowContent extends Content { break; } - // Tabelle erstellen (falls benötigt) + // Create table (if needed) var tableHeader:string[] = menuItems[this.menuID].tableHeader if (tableHeader.length > 0) { var wrapper = document.createElement("DIV") @@ -762,7 +762,7 @@ class ShowContent extends Content { var header = this.createTableRow() table.appendChild(header) - // Kopfzeile der Tablle + // Table header tableHeader.forEach(element => { var cell:Cell = new Cell() cell.child = true @@ -808,7 +808,7 @@ class ShowContent extends Content { table.appendChild(header) - // Inhalt der Tabelle + // Content of the table var rows:any = this.createTableContent(menuKey) rows.forEach(tr => { table.appendChild(tr) @@ -873,7 +873,7 @@ function createLayout() { - // Menü erstellen + // Create menu document.getElementById("main-menu").innerHTML = "" for (let i = 0; i < menuItems.length; i++) { @@ -950,7 +950,7 @@ class PopupContent extends PopupWindow{ element.innerHTML = headline.toUpperCase() this.doc.appendChild(element) - // Tabelle erstellen + // Create table this.table = document.createElement("TABLE") this.doc.appendChild(this.table) } @@ -958,7 +958,7 @@ class PopupContent extends PopupWindow{ appendRow(title:string, element:any):void { let tr = document.createElement("TR") - // Bezeichnung + // Title if (title.length != 0) { tr.appendChild(this.createTitle(title)) } @@ -1033,7 +1033,7 @@ class PopupContent extends PopupWindow{ this.table.appendChild(tr) } - // Interaktion + // Interaction addInteraction(element:any) { let interaction = document.getElementById("popup-interaction") interaction.appendChild(element) @@ -1092,14 +1092,14 @@ function openPopUp(dataType, element) { select.setAttribute("onchange", 'javascript: changeButtonAction(this, "next", "onclick")') // changeButtonAction content.appendRow("{{.playlist.type.title}}", select) - // Interaktion + // Interaction content.createInteraction() - // Abbrechen + // Abort var input = content.createInput("button", "cancel", "{{.button.cancel}}") input.setAttribute("onclick", 'javascript: showElement("popup", false);') content.addInteraction(input) - // Weiter + // Next var input = content.createInput("button", "next", "{{.button.next}}") input.setAttribute("onclick", 'javascript: openPopUp("m3u")') input.setAttribute("id", 'next') @@ -1114,7 +1114,7 @@ function openPopUp(dataType, element) { input.setAttribute("placeholder", "{{.playlist.name.placeholder}}") content.appendRow("{{.playlist.name.title}}", input) - // Beschreibung + // Description var dbKey:string = "description" var input = content.createInput("text", dbKey, data[dbKey]) input.setAttribute("placeholder", "{{.playlist.description.placeholder}}") @@ -1153,9 +1153,9 @@ function openPopUp(dataType, element) { content.description("{{.playlist.tuner.description}}") - // Interaktion + // Interation content.createInteraction() - // Löschen + // Delete if (data["id.provider"]!= "-") { var input = content.createInput("button", "delete", "{{.button.delete}}") input.className = "delete" @@ -1167,19 +1167,19 @@ function openPopUp(dataType, element) { content.addInteraction(input) } - // Abbrechen + // Abort var input = content.createInput("button", "cancel", "{{.button.cancel}}") input.setAttribute("onclick", 'javascript: showElement("popup", false);') content.addInteraction(input) - // Aktualisieren + // Update if (data["id.provider"]!= "-") { var input = content.createInput("button", "update", "{{.button.update}}") input.setAttribute('onclick', 'javascript: savePopupData("m3u", "' + id + '", false, 1)') content.addInteraction(input) } - // Speichern + // Save var input = content.createInput("button", "save", "{{.button.save}}") input.setAttribute('onclick', 'javascript: savePopupData("m3u", "' + id + '", false, 0)') content.addInteraction(input) @@ -1193,7 +1193,7 @@ function openPopUp(dataType, element) { input.setAttribute("placeholder", "{{.playlist.name.placeholder}}") content.appendRow("{{.playlist.name.title}}", input) - // Beschreibung + // Description var dbKey:string = "description" var input = content.createInput("text", dbKey, data[dbKey]) input.setAttribute("placeholder", "{{.playlist.description.placeholder}}") @@ -1232,9 +1232,9 @@ function openPopUp(dataType, element) { content.description("{{.playlist.tuner.description}}") - // Interaktion + // Interaction content.createInteraction() - // Löschen + // Delete if (data["id.provider"]!= "-") { var input = content.createInput("button", "delete", "{{.button.delete}}") input.setAttribute('onclick', 'javascript: savePopupData("hdhr", "' + id + '", true, 0)') @@ -1246,19 +1246,19 @@ function openPopUp(dataType, element) { content.addInteraction(input) } - // Abbrechen + // Abort var input = content.createInput("button", "cancel", "{{.button.cancel}}") input.setAttribute("onclick", 'javascript: showElement("popup", false);') content.addInteraction(input) - // Aktualisieren + // Update if (data["id.provider"]!= "-") { var input = content.createInput("button", "update", "{{.button.update}}") input.setAttribute('onclick', 'javascript: savePopupData("hdhr", "' + id + '", false, 1)') content.addInteraction(input) } - // Speichern + // Save var input = content.createInput("button", "save", "{{.button.save}}") input.setAttribute('onclick', 'javascript: savePopupData("hdhr", "' + id + '", false, 0)') content.addInteraction(input) @@ -1276,14 +1276,14 @@ function openPopUp(dataType, element) { select.setAttribute("onchange", 'javascript: changeButtonAction(this, "next", "onclick");') // changeButtonAction content.appendRow("{{.filter.type.title}}", select) - // Interaktion + // Interaction content.createInteraction() - // Abbrechen + // Abort var input = content.createInput("button", "cancel", "{{.button.cancel}}") input.setAttribute("onclick", 'javascript: showElement("popup", false);') content.addInteraction(input) - // Weiter + // Next var input = content.createInput("button", "next", "{{.button.next}}") input.setAttribute("onclick", 'javascript: openPopUp("group-title")') input.setAttribute("id", 'next') @@ -1309,13 +1309,13 @@ function openPopUp(dataType, element) { input.setAttribute("placeholder", "{{.filter.name.placeholder}}") content.appendRow("{{.filter.name.title}}", input) - // Beschreibung + // Description var dbKey:string = "description" var input = content.createInput("text", dbKey, data[dbKey]) input.setAttribute("placeholder", "{{.filter.description.placeholder}}") content.appendRow("{{.filter.description.title}}", input) - // Typ + // Type var dbKey:string = "type" var input = content.createInput("hidden", dbKey, data[dbKey]) content.appendRow("", input) @@ -1325,13 +1325,13 @@ function openPopUp(dataType, element) { switch (filterType) { case "custom-filter": - // Groß- Kleinschreibung beachten + // Case sensitive var dbKey:string = "caseSensitive" var input = content.createCheckbox(dbKey) input.checked = data[dbKey] content.appendRow("{{.filter.caseSensitive.title}}", input) - // Filterregel (Benutzerdefiniert) + // Filter Rule (Custom) var dbKey:string = "filter" var input = content.createInput("text", dbKey, data[dbKey]) input.setAttribute("placeholder", "{{.filter.filterRule.placeholder}}") @@ -1341,7 +1341,7 @@ function openPopUp(dataType, element) { case "group-title": //alert(dbKey + " " + filterType) - // Filter basierend auf den Gruppen in der M3U + // Filter based on the groups in the M3U var dbKey:string = "filter" var groupsM3U = getLocalData("m3uGroups", "") var text:string[] = groupsM3U["text"] @@ -1352,7 +1352,7 @@ function openPopUp(dataType, element) { content.appendRow("{{.filter.filterGroup.title}}", select) content.description("{{.filter.filterGroup.description}}") - // Groß- Kleinschreibung beachten + // Case sensetive var dbKey:string = "caseSensitive" var input = content.createCheckbox(dbKey) input.checked = data[dbKey] @@ -1412,21 +1412,21 @@ function openPopUp(dataType, element) { break; } - // Interaktion + // Interaction content.createInteraction() - // Löschen + // Delete var input = content.createInput("button", "delete", "{{.button.delete}}") input.setAttribute('onclick', 'javascript: savePopupData("filter", "' + id + '", true, 0)') input.className = "delete" content.addInteraction(input) - // Abbrechen + // Abort var input = content.createInput("button", "cancel", "{{.button.cancel}}") input.setAttribute("onclick", 'javascript: showElement("popup", false);') content.addInteraction(input) - // Speichern + // Save var input = content.createInput("button", "save", "{{.button.save}}") input.setAttribute('onclick', 'javascript: savePopupData("filter", "' + id + '", false, 0)') content.addInteraction(input) @@ -1441,7 +1441,7 @@ function openPopUp(dataType, element) { input.setAttribute("placeholder", "{{.xmltv.name.placeholder}}") content.appendRow("{{.xmltv.name.title}}", input) - // Beschreibung + // Description var dbKey:string = "description" var input = content.createInput("text", dbKey, data[dbKey]) input.setAttribute("placeholder", "{{.xmltv.description.placeholder}}") @@ -1453,9 +1453,9 @@ function openPopUp(dataType, element) { input.setAttribute("placeholder", "{{.xmltv.fileXMLTV.placeholder}}") content.appendRow("{{.xmltv.fileXMLTV.title}}", input) - // Interaktion + // Interaction content.createInteraction() - // Löschen + // Delete if (data["id.provider"]!= "-") { var input = content.createInput("button", "delete", "{{.button.delete}}") input.setAttribute('onclick', 'javascript: savePopupData("xmltv", "' + id + '", true, 0)') @@ -1463,19 +1463,19 @@ function openPopUp(dataType, element) { content.addInteraction(input) } - // Abbrechen + // Abort var input = content.createInput("button", "cancel", "{{.button.cancel}}") input.setAttribute("onclick", 'javascript: showElement("popup", false);') content.addInteraction(input) - // Aktualisieren + // Update if (data["id.provider"]!= "-") { var input = content.createInput("button", "update", "{{.button.update}}") input.setAttribute('onclick', 'javascript: savePopupData("xmltv", "' + id + '", false, 1)') content.addInteraction(input) } - // Speichern + // Save var input = content.createInput("button", "save", "{{.button.save}}") input.setAttribute('onclick', 'javascript: savePopupData("xmltv", "' + id + '", false, 0)') content.addInteraction(input) @@ -1483,25 +1483,25 @@ function openPopUp(dataType, element) { case "users": content.createHeadline("{{.mainMenu.item.users}}") - // Benutzername + // User name var dbKey:string = "username" var input = content.createInput("text", dbKey, data[dbKey]) input.setAttribute("placeholder", "{{.users.username.placeholder}}") content.appendRow("{{.users.username.title}}", input) - // Neues Passwort + // New Parssword var dbKey:string = "password" var input = content.createInput("password", dbKey, "") input.setAttribute("placeholder", "{{.users.password.placeholder}}") content.appendRow("{{.users.password.title}}", input) - // Bestätigung + // Confirmation var dbKey:string = "confirm" var input = content.createInput("password", dbKey, "") input.setAttribute("placeholder", "{{.users.confirm.placeholder}}") content.appendRow("{{.users.confirm.title}}", input) - // Berechtigung WEB + // Authentication WEB var dbKey:string = "authentication.web" var input = content.createCheckbox(dbKey) input.checked = data[dbKey] @@ -1510,34 +1510,34 @@ function openPopUp(dataType, element) { } content.appendRow("{{.users.web.title}}", input) - // Berechtigung PMS + // Authentication PMS var dbKey:string = "authentication.pms" var input = content.createCheckbox(dbKey) input.checked = data[dbKey] content.appendRow("{{.users.pms.title}}", input) - // Berechtigung M3U + // Authentication M3U var dbKey:string = "authentication.m3u" var input = content.createCheckbox(dbKey) input.checked = data[dbKey] content.appendRow("{{.users.m3u.title}}", input) - // Berechtigung XML + // Authentication XML var dbKey:string = "authentication.xml" var input = content.createCheckbox(dbKey) input.checked = data[dbKey] content.appendRow("{{.users.xml.title}}", input) - // Berechtigung API + // Authentication API var dbKey:string = "authentication.api" var input = content.createCheckbox(dbKey) input.checked = data[dbKey] content.appendRow("{{.users.api.title}}", input) - // Interaktion + // Interaction content.createInteraction() - // Löschen + // Delete if (data["defaultUser"]!= true && id != "-") { var input = content.createInput("button", "delete", "{{.button.delete}}") input.className = "delete" @@ -1545,12 +1545,12 @@ function openPopUp(dataType, element) { content.addInteraction(input) } - // Abbrechen + // Abort var input = content.createInput("button", "cancel", "{{.button.cancel}}") input.setAttribute("onclick", 'javascript: showElement("popup", false);') content.addInteraction(input) - // Speichern + // Save var input = content.createInput("button", "save", "{{.button.save}}") input.setAttribute("onclick", 'javascript: savePopupData("' + dataType + '", "' + id + '", "false");') content.addInteraction(input) @@ -1559,7 +1559,7 @@ function openPopUp(dataType, element) { case "mapping": content.createHeadline("{{.mainMenu.item.mapping}}") - // Aktiv + // Active var dbKey:string = "x-active" var input = content.createCheckbox(dbKey) input.checked = data[dbKey] @@ -1568,7 +1568,7 @@ function openPopUp(dataType, element) { input.setAttribute("onchange", "javascript: toggleChannelStatus('" + id + "', this)") content.appendRow("{{.mapping.active.title}}", input) - // Kanalname + // Channel name var dbKey:string = "x-name" var input = content.createInput("text", dbKey, data[dbKey]) input.setAttribute("onchange", "javascript: this.className = 'changed'") @@ -1580,14 +1580,14 @@ function openPopUp(dataType, element) { content.description(data["name"]) - // Beschreibung + // Description var dbKey:string = "x-description" var input = content.createInput("text", dbKey, data[dbKey]) input.setAttribute("placeholder", "{{.mapping.description.placeholder}}") input.setAttribute("onchange", "javascript: this.className = 'changed'") content.appendRow("{{.mapping.description.title}}", input) - // Aktualisierung des Kanalnamens + // Update the channel name if (data.hasOwnProperty("_uuid.key")) { if (data["_uuid.key"] != "") { var dbKey:string = "x-update-channel-name" @@ -1598,14 +1598,14 @@ function openPopUp(dataType, element) { } } - // Logo URL (Kanal) + // Logo URL (Channel) var dbKey:string = "tvg-logo" var input = content.createInput("text", dbKey, data[dbKey]) input.setAttribute("onchange", "javascript: this.className = 'changed'") input.setAttribute("id", "channel-icon") content.appendRow("{{.mapping.channelLogo.title}}", input) - // Aktualisierung des Kanallogos + // Channel logo update var dbKey:string = "x-update-channel-icon" var input = content.createCheckbox(dbKey) input.checked = data[dbKey] @@ -1613,7 +1613,7 @@ function openPopUp(dataType, element) { input.setAttribute("onchange", "javascript: this.className = 'changed'; changeChannelLogo('" + id + "');") content.appendRow("{{.mapping.updateChannelLogo.title}}", input) - // Erweitern der EPG Kategorie + // Expand EPG category var dbKey:string = "x-category" var text:string[] = ["-", "Kids (Emby only)", "News", "Movie", "Series", "Sports"] var values:string[] = ["", "Kids", "News", "Movie", "Series", "Sports"] @@ -1621,7 +1621,7 @@ function openPopUp(dataType, element) { select.setAttribute("onchange", "javascript: this.className = 'changed'") content.appendRow("{{.mapping.epgCategory.title}}", select) - // M3U Gruppentitel + // M3U group title var dbKey:string = "x-group-title" var input = content.createInput("text", dbKey, data[dbKey]) input.setAttribute("onchange", "javascript: this.className = 'changed'") @@ -1631,7 +1631,7 @@ function openPopUp(dataType, element) { content.description(data["group-title"]) } - // XMLTV Datei + // XMLTV file var dbKey:string = "x-xmltv-file" var xmlFile = data[dbKey] var xmltv:XMLTVFile = new XMLTVFile() @@ -1661,20 +1661,20 @@ function openPopUp(dataType, element) { input.setAttribute("id", "timeshift") content.appendRow("{{.mapping.timeshift.title}}", input) - // Interaktion + // Interaction content.createInteraction() - // Logo hochladen + // Upload logo var input = content.createInput("button", "cancel", "{{.button.uploadLogo}}") input.setAttribute("onclick", 'javascript: uploadLogo();') content.addInteraction(input) - // Abbrechen + // Abort var input = content.createInput("button", "cancel", "{{.button.cancel}}") input.setAttribute("onclick", 'javascript: showElement("popup", false);') content.addInteraction(input) - // Fertig + // Finished var ids:string[] = [] ids = getAllSelectedChannels() if (ids.length == 0) { @@ -1839,7 +1839,7 @@ function checkXmltvChannel(id:string, element:any, xmlFile) { checkbox.className = "changed" console.log(xmlFile); - // Kanallogo aktualisieren + // Update channel logo /* updateLogo = (document.getElementById("update-icon") as HTMLInputElement).checked console.log(updateLogo); diff --git a/ts/settings_ts.ts b/ts/settings_ts.ts index 432f91a..f350aa8 100644 --- a/ts/settings_ts.ts +++ b/ts/settings_ts.ts @@ -18,7 +18,7 @@ class SettingsCategory { switch (settingsKey) { - // Texteingaben + // Text inputs case "update": var tdLeft = document.createElement("TD") tdLeft.innerHTML = "{{.settings.update.title}}" + ":" @@ -145,7 +145,7 @@ class SettingsCategory { setting.appendChild(tdRight) break - // Checkboxen + // Checkboxes case "authentication.web": var tdLeft = document.createElement("TD") tdLeft.innerHTML = "{{.settings.authenticationWEB.title}}" + ":" @@ -542,7 +542,7 @@ class SettingsCategoryItem extends SettingsCategory { var doc = document.getElementById(this.DocumentID) doc.appendChild(headline) - // Tabelle für die Kategorie erstellen + // Create a table for the category var table = document.createElement("TABLE") @@ -636,7 +636,7 @@ function saveSettings() { name = (settings[i] as HTMLSelectElement).name value = (settings[i] as HTMLSelectElement).value - // Wenn der Wert eine Zahl ist, wird dieser als Zahl gespeichert + // If the value is a number, store it as a number if(isNaN(value)){ newSettings[name] = value } else { From 4b8659754fd8c42d06ba422d4c5b764253c2d86d Mon Sep 17 00:00:00 2001 From: SCP002 Date: Mon, 28 Mar 2022 18:00:16 +0300 Subject: [PATCH 049/189] Rename onclickFunktion to onclickFunction --- ts/menu_ts.ts | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/ts/menu_ts.ts b/ts/menu_ts.ts index 8d22adf..dc15209 100644 --- a/ts/menu_ts.ts +++ b/ts/menu_ts.ts @@ -537,7 +537,7 @@ class Cell { tdClassName:string imageURL:string onclick:boolean - onclickFunktion:string + onclickFunction:string createCell():any { let td = document.createElement("TD") @@ -597,7 +597,7 @@ class Cell { } if (this.onclick == true) { - td.setAttribute("onclick", this.onclickFunktion) + td.setAttribute("onclick", this.onclickFunction) td.className = "pointer" } @@ -777,28 +777,28 @@ class ShowContent extends Content { if (element == "{{.mapping.table.chNo}}") { cell.onclick = true - cell.onclickFunktion = "javascript: sortTable(1);" + cell.onclickFunction = "javascript: sortTable(1);" cell.tdClassName = "sortThis" } if (element == "{{.mapping.table.channelName}}") { cell.onclick = true - cell.onclickFunktion = "javascript: sortTable(3);" + cell.onclickFunction = "javascript: sortTable(3);" } if (element == "{{.mapping.table.playlist}}") { cell.onclick = true - cell.onclickFunktion = "javascript: sortTable(4);" + cell.onclickFunction = "javascript: sortTable(4);" } if (element == "{{.mapping.table.groupTitle}}") { cell.onclick = true - cell.onclickFunktion = "javascript: sortTable(5);" + cell.onclickFunction = "javascript: sortTable(5);" } if (element == "{{.mapping.table.timeshift}}") { cell.onclick = true - cell.onclickFunktion = "javascript: sortTable(8);" + cell.onclickFunction = "javascript: sortTable(8);" } } From d227e9341430314c3949cd2ed068e8671d6fab37 Mon Sep 17 00:00:00 2001 From: SCP002 Date: Mon, 28 Mar 2022 22:14:41 +0300 Subject: [PATCH 050/189] Run tsc, update webUI.go --- html/js/menu_ts.js | 12 ++++++------ src/webUI.go | 48 +++++++++++++++++++++++----------------------- 2 files changed, 30 insertions(+), 30 deletions(-) diff --git a/html/js/menu_ts.js b/html/js/menu_ts.js index c1ca56a..b7c51fe 100644 --- a/html/js/menu_ts.js +++ b/html/js/menu_ts.js @@ -471,7 +471,7 @@ class Cell { td.innerHTML = this.value; } if (this.onclick == true) { - td.setAttribute("onclick", this.onclickFunktion); + td.setAttribute("onclick", this.onclickFunction); td.className = "pointer"; } if (this.tdClassName != undefined) { @@ -610,24 +610,24 @@ class ShowContent extends Content { if (menuKey == "mapping") { if (element == "{{.mapping.table.chNo}}") { cell.onclick = true; - cell.onclickFunktion = "javascript: sortTable(1);"; + cell.onclickFunction = "javascript: sortTable(1);"; cell.tdClassName = "sortThis"; } if (element == "{{.mapping.table.channelName}}") { cell.onclick = true; - cell.onclickFunktion = "javascript: sortTable(3);"; + cell.onclickFunction = "javascript: sortTable(3);"; } if (element == "{{.mapping.table.playlist}}") { cell.onclick = true; - cell.onclickFunktion = "javascript: sortTable(4);"; + cell.onclickFunction = "javascript: sortTable(4);"; } if (element == "{{.mapping.table.groupTitle}}") { cell.onclick = true; - cell.onclickFunktion = "javascript: sortTable(5);"; + cell.onclickFunction = "javascript: sortTable(5);"; } if (element == "{{.mapping.table.timeshift}}") { cell.onclick = true; - cell.onclickFunktion = "javascript: sortTable(8);"; + cell.onclickFunction = "javascript: sortTable(8);"; } } header.appendChild(cell.createCell()); diff --git a/src/webUI.go b/src/webUI.go index 2013982..8aa8dfa 100644 --- a/src/webUI.go +++ b/src/webUI.go @@ -4,38 +4,38 @@ var webUI = make(map[string]interface{}) func loadHTMLMap() { - webUI["html/img/logo_b_880x200.jpg"] = "/9j/4AAQSkZJRgABAQABLAEsAAD/4QDIRXhpZgAATU0AKgAAAAgABwESAAMAAAABAAEAAAEaAAUAAAABAAAAYgEbAAUAAAABAAAAagEoAAMAAAABAAIAAAExAAIAAAAPAAAAcgEyAAIAAAAUAAAAgodpAAQAAAABAAAAlgAAAAAAAAEsAAAAAQAAASwAAAABUGl4ZWxtYXRvciAzLjMAADIwMTk6MDg6MDIgMjA6MDg6MTQAAAOgAQADAAAAAQABAACgAgAEAAAAAQAAA3CgAwAEAAAAAQAAAMgAAAAA/+EJkGh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8APD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iWE1QIENvcmUgNS40LjAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcDpDcmVhdG9yVG9vbD0iUGl4ZWxtYXRvciAzLjMiIHhtcDpNb2RpZnlEYXRlPSIyMDE5LTA4LTAyVDIwOjA4OjE0Ii8+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPD94cGFja2V0IGVuZD0idyI/PgD/7QA4UGhvdG9zaG9wIDMuMAA4QklNBAQAAAAAAAA4QklNBCUAAAAAABDUHYzZjwCyBOmACZjs+EJ+/8AAEQgAyANwAwERAAIRAQMRAf/EAB8AAAEFAQEBAQEBAAAAAAAAAAABAgMEBQYHCAkKC//EALUQAAIBAwMCBAMFBQQEAAABfQECAwAEEQUSITFBBhNRYQcicRQygZGhCCNCscEVUtHwJDNicoIJChYXGBkaJSYnKCkqNDU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6g4SFhoeIiYqSk5SVlpeYmZqio6Slpqeoqaqys7S1tre4ubrCw8TFxsfIycrS09TV1tfY2drh4uPk5ebn6Onq8fLz9PX29/j5+v/EAB8BAAMBAQEBAQEBAQEAAAAAAAABAgMEBQYHCAkKC//EALURAAIBAgQEAwQHBQQEAAECdwABAgMRBAUhMQYSQVEHYXETIjKBCBRCkaGxwQkjM1LwFWJy0QoWJDThJfEXGBkaJicoKSo1Njc4OTpDREVGR0hJSlNUVVZXWFlaY2RlZmdoaWpzdHV2d3h5eoKDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uLj5OXm5+jp6vLz9PX29/j5+v/bAEMAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAf/bAEMBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAf/dAAQAbv/aAAwDAQACEQMRAD8A/iHoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKAP/9D+IegAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoA//0f4h6ACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgD//S/iHoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKAP/9P+IegAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoA//1P4h6ACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgDvPDXws+J3jPT31bwf8OfHnivSo7mSyfU/DXhDxBrunpeQpFLNaPe6Xp11bLcxRzwSSQNL5saTROyhZUNAHQf8M//AB4/6In8XP8Aw23jL/5TUAH/AAz/APHj/oifxc/8Nt4y/wDl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f/E3xn4o+IPjnxDLaafp8mveMPGet33iPxNrMlhpNpYaVZPqmtale3z2mmWNlp9s05hsrS2tkjhQA4ygAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgD//S/iHoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAczu+N7M2BgbmLYHoM9BnJxx1/FgBtABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAOLuwVWZiq/dUsSFz12joM4HQduc4FADaACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgD//0/4h6ACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgD//U/iHoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKAP/9X+IegAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoA//1v4h6ACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgD//X/iHoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKAP/9k=" - webUI["html/img/settings.png"] = "iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAAAXNSR0IArs4c6QAAAAlwSFlzAAAsSwAALEsBpT2WqQAABCRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IlhNUCBDb3JlIDUuNC4wIj4KICAgPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIgogICAgICAgICAgICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgICAgICAgICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyI+CiAgICAgICAgIDx0aWZmOlJlc29sdXRpb25Vbml0PjI8L3RpZmY6UmVzb2x1dGlvblVuaXQ+CiAgICAgICAgIDx0aWZmOkNvbXByZXNzaW9uPjU8L3RpZmY6Q29tcHJlc3Npb24+CiAgICAgICAgIDx0aWZmOlhSZXNvbHV0aW9uPjI4ODwvdGlmZjpYUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6T3JpZW50YXRpb24+MTwvdGlmZjpPcmllbnRhdGlvbj4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+Mjg4PC90aWZmOllSZXNvbHV0aW9uPgogICAgICAgICA8ZXhpZjpQaXhlbFhEaW1lbnNpb24+NTA8L2V4aWY6UGl4ZWxYRGltZW5zaW9uPgogICAgICAgICA8ZXhpZjpDb2xvclNwYWNlPjE8L2V4aWY6Q29sb3JTcGFjZT4KICAgICAgICAgPGV4aWY6UGl4ZWxZRGltZW5zaW9uPjUwPC9leGlmOlBpeGVsWURpbWVuc2lvbj4KICAgICAgICAgPGRjOnN1YmplY3Q+CiAgICAgICAgICAgIDxyZGY6QmFnLz4KICAgICAgICAgPC9kYzpzdWJqZWN0PgogICAgICAgICA8eG1wOk1vZGlmeURhdGU+MjAxOC0wOC0xMFQxODowODo4OTwveG1wOk1vZGlmeURhdGU+CiAgICAgICAgIDx4bXA6Q3JlYXRvclRvb2w+UGl4ZWxtYXRvciAzLjM8L3htcDpDcmVhdG9yVG9vbD4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgIDwvcmRmOlJERj4KPC94OnhtcG1ldGE+Ckxt87EAAAS7SURBVGgFzZpdiFVVGIbn5N+IMgVhaRLqWI7mQIJoIVRgOhQZNDAhWcbcVuPV3BRE6I14440iQQSaN0p6kz8zI0k5inUhZSSaYOVYODMo5eiMOOPf+LzH2cPMPmvttdbe53jOBy9rr2+938/ae51vr733qaoqgQwPD68B/wDJfXAP3AE94JMShCy+SxJ9CvSDJFlU7MiPFdsh/hrBdIffBsd48HApJjLPI4tnPThBlFJMZI5HBuWZCIt9AmgEzeAJR6JzHeMadnKI8wbYCz4Fkz18JlNwMgf8BCL5j4O3bVaMdUfEhPZqgv1U7HbEbDvoT7HZOPUYNwAlHheV09a4A3RTgMqtj9QY7JdgeM5i3I4+fDIYrQeq/UnyNYOTlBDtS+BwEjk2doz+KyO2OY5bwVCME+/qylTHT4C1D3k+uB33Yul3ov/eMuajlu1RH+II5wtT4hNNSnQ6U/kzbRkfq351bCfF8apAm7kmvq38njWRK0S305SHcSK5XO4U5O9MBmXWbSe3E6YccialdKzH2TTnQEF10XgZ5DdivsxEhkyxjVdERAwu03xmMiqD7hYx19km4cyHq6KyeHKkWpSz+ciVrHVpRYZk/wLHp0H2bULkNKzt4Eq86TKxLq3IECf6nXwV9QPbAfjHQSfoD7SN6L63gYhvbrkiTwKf/dPYpbdPVxKMnigdg0VAG8FQye8AzBl6aIk2A+wPiNoHd63LNZx3wbUAvz/CfTzJb/43AmkGpLfAi0DPE/NALQgtve+xFPdi5xRiNkHa5ySOJ/TR7RrBJdqL4AAxL+p+8ToYAFklNCnF3pM1KPba2L6v8vons5oPsko9ZyZoa0PsOoKezxoY+y5N5DYHWSvDTXzUMJH7IUkRW0tbyyV0CcfDDKmqDMe1KfqnQyehGNgo9q8p4hWYFGsiBY4fsSK/BRkkaPgj5PhMy720BnVFesfnlKo3Das0bw8XYJf196GEuzWRLSDoRypLg2w06FyqTS6Cx7iK1eeqGqrnugmuBgvB8+A5UAuqQYiU+oZ4h2T+BV3gAlDp/pai0U1rFpVGMAv8AHzFd4vShMOQLcoB+DNB/sSbM3ZoMV4BQsW0adSJSbNp1Hu1mY40/YZxpPdJaUSfFzrBMXAjjQNsdvll6cHCWVvKJIphdhcny11pqmolCk5aIDif0BKdZBucgPlO8kh/r8O4HtwClSCbk86HtQqQuUrvKVCf5OARjt0lll4H/WKKmbS0tmJQKZNQ7nq9+w0n2LhTN04E8jKMPpZ1hcli8tGTZYEYJwJrZQGzchTGz3a2ifwdkHc73LYAfpx6DcWXQK1LeiDsdpFGx7UOwUGQJKpmGyIjjvWh50iSQWzsZ/ofgvx+jnYp+B/YpJcB7QXDBKPJ4JDF6+/oCwoBuhoL36R+Jp4RJH16u2IgaxJpHhMehsBY3wTjV2YbOuuumLHrwCW6msbSj74O/DHGgV4Ohl8Jw1nSMmsB+tL6Wnw83odzBrhEr2GtgvFE8A74ADxtJZZygMC25cjQqBwqdg62qpUlziUP45Cq6OGuqqoUE/FJ8i+v7MpJYvEsHl1A5gNty2vLmaN3bBLdAvqB3svqXxLRvyEuc9zs7SiA+ACpw05pJx8SoAAAAABJRU5ErkJggg==" - webUI["html/img/x_white.png"] = "iVBORw0KGgoAAAANSUhEUgAAAQAAAAEACAIAAADTED8xAAAAAXNSR0IArs4c6QAAAAlwSFlzAAAWJQAAFiUBSVIk8AAAA6ppVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IlhNUCBDb3JlIDUuNC4wIj4KICAgPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIgogICAgICAgICAgICB4bWxuczp0aWZmPSJodHRwOi8vbnMuYWRvYmUuY29tL3RpZmYvMS4wLyIKICAgICAgICAgICAgeG1sbnM6ZXhpZj0iaHR0cDovL25zLmFkb2JlLmNvbS9leGlmLzEuMC8iPgogICAgICAgICA8eG1wOk1vZGlmeURhdGU+MjAxOC0xMS0xNVQxNzoxMToyNTwveG1wOk1vZGlmeURhdGU+CiAgICAgICAgIDx4bXA6Q3JlYXRvclRvb2w+UGl4ZWxtYXRvciAzLjM8L3htcDpDcmVhdG9yVG9vbD4KICAgICAgICAgPHRpZmY6T3JpZW50YXRpb24+MTwvdGlmZjpPcmllbnRhdGlvbj4KICAgICAgICAgPHRpZmY6Q29tcHJlc3Npb24+NTwvdGlmZjpDb21wcmVzc2lvbj4KICAgICAgICAgPHRpZmY6UmVzb2x1dGlvblVuaXQ+MjwvdGlmZjpSZXNvbHV0aW9uVW5pdD4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+MTQ0PC90aWZmOllSZXNvbHV0aW9uPgogICAgICAgICA8dGlmZjpYUmVzb2x1dGlvbj4xNDQ8L3RpZmY6WFJlc29sdXRpb24+CiAgICAgICAgIDxleGlmOlBpeGVsWERpbWVuc2lvbj4yNTY8L2V4aWY6UGl4ZWxYRGltZW5zaW9uPgogICAgICAgICA8ZXhpZjpDb2xvclNwYWNlPjE8L2V4aWY6Q29sb3JTcGFj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" - webUI["html/js/base_ts.js"] = "dmFyIFNFUlZFUiA9IG5ldyBPYmplY3QoKTsNCnZhciBCVUxLX0VESVQgPSBmYWxzZTsNCnZhciBDT0xVTU5fVE9fU09SVDsNCnZhciBTRUFSQ0hfTUFQUElORyA9IG5ldyBPYmplY3QoKTsNCnZhciBVTkRPID0gbmV3IE9iamVjdCgpOw0KdmFyIFNFUlZFUl9DT05ORUNUSU9OID0gZmFsc2U7DQp2YXIgV1NfQVZBSUxBQkxFID0gZmFsc2U7DQovLyBNZW51DQp2YXIgbWVudUl0ZW1zID0gbmV3IEFycmF5KCk7DQptZW51SXRlbXMucHVzaChuZXcgTWFpbk1lbnVJdGVtKCJwbGF5bGlzdCIsICJ7ey5tYWluTWVudS5pdGVtLnBsYXlsaXN0fX0iLCAibTN1LnBuZyIsICJ7ey5tYWluTWVudS5oZWFkbGluZS5wbGF5bGlzdH19IikpOw0KLy9tZW51SXRlbXMucHVzaChuZXcgTWFpbk1lbnVJdGVtKCJwbXNJRCIsICJ7ey5tYWluTWVudS5pdGVtLnBtc0lEfX0iLCAibnVtYmVyLnBuZyIsICJ7ey5tYWluTWVudS5oZWFkbGluZS5wbXNJRH19IikpDQptZW51SXRlbXMucHVzaChuZXcgTWFpbk1lbnVJdGVtKCJmaWx0ZXIiLCAie3subWFpbk1lbnUuaXRlbS5maWx0ZXJ9fSIsICJmaWx0ZXIucG5nIiwgInt7Lm1haW5NZW51LmhlYWRsaW5lLmZpbHRlcn19IikpOw0KbWVudUl0ZW1zLnB1c2gobmV3IE1haW5NZW51SXRlbSgieG1sdHYiLCAie3subWFpbk1lbnUuaXRlbS54bWx0dn19IiwgInhtbHR2LnBuZyIsICJ7ey5tYWluTWVudS5oZWFkbGluZS54bWx0dn19IikpOw0KbWVudUl0ZW1zLnB1c2gobmV3IE1haW5NZW51SXRlbSgibWFwcGluZyIsICJ7ey5tYWluTWVudS5pdGVtLm1hcHBpbmd9fSIsICJtYXBwaW5nLnBuZyIsICJ7ey5tYWluTWVudS5oZWFkbGluZS5tYXBwaW5nfX0iKSk7DQptZW51SXRlbXMucHVzaChuZXcgTWFpbk1lbnVJdGVtKCJ1c2VycyIsICJ7ey5tYWluTWVudS5pdGVtLnVzZXJzfX0iLCAidXNlcnMucG5nIiwgInt7Lm1haW5NZW51LmhlYWRsaW5lLnVzZXJzfX0iKSk7DQptZW51SXRlbXMucHVzaChuZXcgTWFpbk1lbnVJdGVtKCJzZXR0aW5ncyIsICJ7ey5tYWluTWVudS5pdGVtLnNldHRpbmdzfX0iLCAic2V0dGluZ3MucG5nIiwgInt7Lm1haW5NZW51LmhlYWRsaW5lLnNldHRpbmdzfX0iKSk7DQptZW51SXRlbXMucHVzaChuZXcgTWFpbk1lbnVJdGVtKCJsb2ciLCAie3subWFpbk1lbnUuaXRlbS5sb2d9fSIsICJsb2cucG5nIiwgInt7Lm1haW5NZW51LmhlYWRsaW5lLmxvZ319IikpOw0KbWVudUl0ZW1zLnB1c2gobmV3IE1haW5NZW51SXRlbSgibG9nb3V0IiwgInt7Lm1haW5NZW51Lml0ZW0ubG9nb3V0fX0iLCAibG9nb3V0LnBuZyIsICJ7ey5tYWluTWVudS5oZWFkbGluZS5sb2dvdXR9fSIpKTsNCi8vIFNldHRpbmdzIGNhdGVnb3JpZXMNCnZhciBzZXR0aW5nc0NhdGVnb3J5ID0gbmV3IEFycmF5KCk7DQpzZXR0aW5nc0NhdGVnb3J5LnB1c2gobmV3IFNldHRpbmdzQ2F0ZWdvcnlJdGVtKCJ7ey5zZXR0aW5ncy5jYXRlZ29yeS5nZW5lcmFsfX0iLCAieHRldmVBdXRvVXBkYXRlLHR1bmVyLGVwZ1NvdXJjZSxhcGkiKSk7DQpzZXR0aW5nc0NhdGVnb3J5LnB1c2gobmV3IFNldHRpbmdzQ2F0ZWdvcnlJdGVtKCJ7ey5zZXR0aW5ncy5jYXRlZ29yeS5maWxlc319IiwgInVwZGF0ZSxmaWxlcy51cGRhdGUsdGVtcC5wYXRoLGNhY2hlLmltYWdlcyx4ZXBnLnJlcGxhY2UubWlzc2luZy5pbWFnZXMiKSk7DQpzZXR0aW5nc0NhdGVnb3J5LnB1c2gobmV3IFNldHRpbmdzQ2F0ZWdvcnlJdGVtKCJ7ey5zZXR0aW5ncy5jYXRlZ29yeS5zdHJlYW1pbmd9fSIsICJidWZmZXIsdWRweHksYnVmZmVyLnNpemUua2IsYnVmZmVyLnRpbWVvdXQsdXNlci5hZ2VudCxmZm1wZWcucGF0aCxmZm1wZWcub3B0aW9ucyx2bGMucGF0aCx2bGMub3B0aW9ucyIpKTsNCnNldHRpbmdzQ2F0ZWdvcnkucHVzaChuZXcgU2V0dGluZ3NDYXRlZ29yeUl0ZW0oInt7LnNldHRpbmdzLmNhdGVnb3J5LmJhY2t1cH19IiwgImJhY2t1cC5wYXRoLGJhY2t1cC5rZWVwIikpOw0Kc2V0dGluZ3NDYXRlZ29yeS5wdXNoKG5ldyBTZXR0aW5nc0NhdGVnb3J5SXRlbSgie3suc2V0dGluZ3MuY2F0ZWdvcnkuYXV0aGVudGljYXRpb259fSIsICJhdXRoZW50aWNhdGlvbi53ZWIsYXV0aGVudGljYXRpb24ucG1zLGF1dGhlbnRpY2F0aW9uLm0zdSxhdXRoZW50aWNhdGlvbi54bWwsYXV0aGVudGljYXRpb24uYXBpIikpOw0KZnVuY3Rpb24gc2hvd1BvcFVwRWxlbWVudChlbG0pIHsNCiAgICB2YXIgYWxsRWxlbWVudHMgPSBuZXcgQXJyYXkoInBvcHVwLWN1c3RvbSIpOw0KICAgIGZvciAodmFyIGkgPSAwOyBpIDwgYWxsRWxlbWVudHMubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgc2hvd0VsZW1lbnQoYWxsRWxlbWVudHNbaV0sIGZhbHNlKTsNCiAgICB9DQogICAgc2hvd0VsZW1lbnQoZWxtLCB0cnVlKTsNCiAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsNCiAgICAgICAgc2hvd0VsZW1lbnQoInBvcHVwIiwgdHJ1ZSk7DQogICAgfSwgMTApOw0KICAgIHJldHVybjsNCn0NCmZ1bmN0aW9uIHNob3dFbGVtZW50KGVsbUlELCB0eXBlKSB7DQogICAgdmFyIGNzc0NsYXNzOw0KICAgIHN3aXRjaCAodHlwZSkgew0KICAgICAgICBjYXNlIHRydWU6DQogICAgICAgICAgICBjc3NDbGFzcyA9ICJibG9jayI7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSBmYWxzZToNCiAgICAgICAgICAgIGNzc0NsYXNzID0gIm5vbmUiOw0KICAgICAgICAgICAgYnJlYWs7DQogICAgfQ0KICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGVsbUlEKS5jbGFzc05hbWUgPSBjc3NDbGFzczsNCn0NCmZ1bmN0aW9uIGNoYW5nZUJ1dHRvbkFjdGlvbihlbGVtZW50LCBidXR0b25JRCwgYXR0cmlidXRlKSB7DQogICAgdmFyIHZhbHVlID0gZWxlbWVudC5vcHRpb25zW2VsZW1lbnQuc2VsZWN0ZWRJbmRleF0udmFsdWU7DQogICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoYnV0dG9uSUQpLnNldEF0dHJpYnV0ZShhdHRyaWJ1dGUsIHZhbHVlKTsNCn0NCmZ1bmN0aW9uIGdldExvY2FsRGF0YShkYXRhVHlwZSwgaWQpIHsNCiAgICBsZXQgZGF0YSA9IHt9Ow0KICAgIHN3aXRjaCAoZGF0YVR5cGUpIHsNCiAgICAgICAgY2FzZSAibTN1IjoNCiAgICAgICAgICAgIGRhdGEgPSBTRVJWRVJbInNldHRpbmdzIl1bImZpbGVzIl1bZGF0YVR5cGVdW2lkXTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJoZGhyIjoNCiAgICAgICAgICAgIGRhdGEgPSBTRVJWRVJbInNldHRpbmdzIl1bImZpbGVzIl1bZGF0YVR5cGVdW2lkXTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJmaWx0ZXIiOg0KICAgICAgICBjYXNlICJjdXN0b20tZmlsdGVyIjoNCiAgICAgICAgY2FzZSAiZ3JvdXAtdGl0bGUiOg0KICAgICAgICAgICAgaWYgKGlkID09IC0xKSB7DQogICAgICAgICAgICAgICAgZGF0YVsiYWN0aXZlIl0gPSB0cnVlOw0KICAgICAgICAgICAgICAgIGRhdGFbImNhc2VTZW5zaXRpdmUiXSA9IGZhbHNlOw0KICAgICAgICAgICAgICAgIGRhdGFbImRlc2NyaXB0aW9uIl0gPSAiIjsNCiAgICAgICAgICAgICAgICBkYXRhWyJleGNsdWRlIl0gPSAiIjsNCiAgICAgICAgICAgICAgICBkYXRhWyJmaWx0ZXIiXSA9ICIiOw0KICAgICAgICAgICAgICAgIGRhdGFbImluY2x1ZGUiXSA9ICIiOw0KICAgICAgICAgICAgICAgIGRhdGFbIm5hbWUiXSA9ICIiOw0KICAgICAgICAgICAgICAgIGRhdGFbInR5cGUiXSA9ICJncm91cC10aXRsZSI7DQogICAgICAgICAgICAgICAgZGF0YVsicHJlc2VydmVNYXBwaW5nIl0gPSB0cnVlOw0KICAgICAgICAgICAgICAgIGRhdGFbInN0YXJ0aW5nQ2hhbm5lbCJdID0gU0VSVkVSWyJzZXR0aW5ncyJdWyJtYXBwaW5nLmZpcnN0LmNoYW5uZWwiXTsNCiAgICAgICAgICAgICAgICBkYXRhWyJkZWZhdWx0TWlzc2luZ0VQRyJdID0gIi0iOw0KICAgICAgICAgICAgICAgIFNFUlZFUlsic2V0dGluZ3MiXVsiZmlsdGVyIl1baWRdID0gZGF0YTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGRhdGEgPSBTRVJWRVJbInNldHRpbmdzIl1bImZpbHRlciJdW2lkXTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJ4bWx0diI6DQogICAgICAgICAgICBkYXRhID0gU0VSVkVSWyJzZXR0aW5ncyJdWyJmaWxlcyJdW2RhdGFUeXBlXVtpZF07DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSAidXNlcnMiOg0KICAgICAgICAgICAgZGF0YSA9IFNFUlZFUlsidXNlcnMiXVtpZF1bImRhdGEiXTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJtYXBwaW5nIjoNCiAgICAgICAgICAgIGRhdGEgPSBTRVJWRVJbInhlcGciXVsiZXBnTWFwcGluZyJdW2lkXTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJtM3VHcm91cHMiOg0KICAgICAgICAgICAgZGF0YSA9IFNFUlZFUlsiZGF0YSJdWyJwbGF5bGlzdCJdWyJtM3UiXVsiZ3JvdXBzIl07DQogICAgICAgICAgICBicmVhazsNCiAgICB9DQogICAgcmV0dXJuIGRhdGE7DQp9DQpmdW5jdGlvbiBnZXRPYmpLZXlzKG9iaikgew0KICAgIHZhciBrZXlzID0gbmV3IEFycmF5KCk7DQogICAgZm9yICh2YXIgaSBpbiBvYmopIHsNCiAgICAgICAgaWYgKG9iai5oYXNPd25Qcm9wZXJ0eShpKSkgew0KICAgICAgICAgICAga2V5cy5wdXNoKGkpOw0KICAgICAgICB9DQogICAgfQ0KICAgIHJldHVybiBrZXlzOw0KfQ0KZnVuY3Rpb24gZ2V0QWxsU2VsZWN0ZWRDaGFubmVscygpIHsNCiAgICB2YXIgY2hhbm5lbHMgPSBuZXcgQXJyYXkoKTsNCiAgICBpZiAoQlVMS19FRElUID09IGZhbHNlKSB7DQogICAgICAgIHJldHVybiBjaGFubmVsczsNCiAgICB9DQogICAgdmFyIHRycyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb250ZW50X3RhYmxlIikuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlRSIik7DQogICAgZm9yICh2YXIgaSA9IDE7IGkgPCB0cnMubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgaWYgKHRyc1tpXS5zdHlsZS5kaXNwbGF5ICE9ICJub25lIikgew0KICAgICAgICAgICAgaWYgKHRyc1tpXS5maXJzdENoaWxkLmZpcnN0Q2hpbGQuY2hlY2tlZCA9PSB0cnVlKSB7DQogICAgICAgICAgICAgICAgY2hhbm5lbHMucHVzaCh0cnNbaV0uaWQpOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQogICAgfQ0KICAgIHJldHVybiBjaGFubmVsczsNCn0NCmZ1bmN0aW9uIHNlbGVjdEFsbENoYW5uZWxzKCkgew0KICAgIHZhciBidWxrID0gZmFsc2U7DQogICAgdmFyIHRycyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb250ZW50X3RhYmxlIikuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlRSIik7DQogICAgaWYgKHRyc1swXS5maXJzdENoaWxkLmZpcnN0Q2hpbGQuY2hlY2tlZCA9PSB0cnVlKSB7DQogICAgICAgIGJ1bGsgPSB0cnVlOw0KICAgIH0NCiAgICBmb3IgKHZhciBpID0gMTsgaSA8IHRycy5sZW5ndGg7IGkrKykgew0KICAgICAgICBpZiAodHJzW2ldLnN0eWxlLmRpc3BsYXkgIT0gIm5vbmUiKSB7DQogICAgICAgICAgICBzd2l0Y2ggKGJ1bGspIHsNCiAgICAgICAgICAgICAgICBjYXNlIHRydWU6DQogICAgICAgICAgICAgICAgICAgIHRyc1tpXS5maXJzdENoaWxkLmZpcnN0Q2hpbGQuY2hlY2tlZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgZmFsc2U6DQogICAgICAgICAgICAgICAgICAgIHRyc1tpXS5maXJzdENoaWxkLmZpcnN0Q2hpbGQuY2hlY2tlZCA9IGZhbHNlOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KICAgIH0NCiAgICByZXR1cm47DQp9DQpmdW5jdGlvbiBidWxrRWRpdCgpIHsNCiAgICBCVUxLX0VESVQgPSAhQlVMS19FRElUOw0KICAgIHZhciBjbGFzc05hbWU7DQogICAgdmFyIHJvd3MgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCJidWxrIik7DQogICAgc3dpdGNoIChCVUxLX0VESVQpIHsNCiAgICAgICAgY2FzZSB0cnVlOg0KICAgICAgICAgICAgY2xhc3NOYW1lID0gImJ1bGsgc2hvd0J1bGsiOw0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGNhc2UgZmFsc2U6DQogICAgICAgICAgICBjbGFzc05hbWUgPSAiYnVsayBoaWRlQnVsayI7DQogICAgICAgICAgICBicmVhazsNCiAgICB9DQogICAgZm9yICh2YXIgaSA9IDA7IGkgPCByb3dzLmxlbmd0aDsgaSsrKSB7DQogICAgICAgIHJvd3NbaV0uY2xhc3NOYW1lID0gY2xhc3NOYW1lOw0KICAgICAgICByb3dzW2ldLmNoZWNrZWQgPSBmYWxzZTsNCiAgICB9DQogICAgcmV0dXJuOw0KfQ0KZnVuY3Rpb24gc29ydFRhYmxlKGNvbHVtbikgew0KICAgIC8vY29uc29sZS5sb2coY29sdW1tKTsNCiAgICBpZiAoY29sdW1uID09IENPTFVNTl9UT19TT1JUKSB7DQogICAgICAgIHJldHVybjsNCiAgICB9DQogICAgdmFyIHRhYmxlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnRlbnRfdGFibGUiKTsNCiAgICB2YXIgdGFibGVIZWFkID0gdGFibGUuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlRSIilbMF07DQogICAgdmFyIHRhYmxlSXRlbXMgPSB0YWJsZUhlYWQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlREIik7DQogICAgdmFyIHNvcnRPYmogPSBuZXcgT2JqZWN0KCk7DQogICAgdmFyIHgsIHhWYWx1ZTsNCiAgICB2YXIgdGFibGVIZWFkZXI7DQogICAgdmFyIHNvcnRCeVN0cmluZyA9IGZhbHNlOw0KICAgIGlmIChjb2x1bW4gPiAwICYmIENPTFVNTl9UT19TT1JUID4gMCkgew0KICAgICAgICB0YWJsZUl0ZW1zW0NPTFVNTl9UT19TT1JUXS5jbGFzc05hbWUgPSAicG9pbnRlciI7DQogICAgICAgIHRhYmxlSXRlbXNbY29sdW1uXS5jbGFzc05hbWUgPSAic29ydFRoaXMiOw0KICAgIH0NCiAgICBDT0xVTU5fVE9fU09SVCA9IGNvbHVtbjsNCiAgICB2YXIgcm93cyA9IHRhYmxlLnJvd3M7DQogICAgaWYgKHJvd3NbMV0gIT0gdW5kZWZpbmVkKSB7DQogICAgICAgIHRhYmxlSGVhZGVyID0gcm93c1swXTsNCiAgICAgICAgeCA9IHJvd3NbMV0uZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlREIilbY29sdW1uXTsNCiAgICAgICAgZm9yIChpID0gMTsgaSA8IHJvd3MubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgICAgIHggPSByb3dzW2ldLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJURCIpW2NvbHVtbl07DQogICAgICAgICAgICBzd2l0Y2ggKHguY2hpbGROb2Rlc1swXS50YWdOYW1lLnRvTG93ZXJDYXNlKCkpIHsNCiAgICAgICAgICAgICAgICBjYXNlICJpbnB1dCI6DQogICAgICAgICAgICAgICAgICAgIHhWYWx1ZSA9IHguZ2V0RWxlbWVudHNCeVRhZ05hbWUoIklOUFVUIilbMF0udmFsdWUudG9Mb3dlckNhc2UoKTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAicCI6DQogICAgICAgICAgICAgICAgICAgIHhWYWx1ZSA9IHguZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlAiKVswXS5pbm5lclRleHQudG9Mb3dlckNhc2UoKTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgZGVmYXVsdDogY29uc29sZS5sb2coeC5jaGlsZE5vZGVzWzBdLnRhZ05hbWUpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgaWYgKHhWYWx1ZSA9PSAiIiB8fCB4VmFsdWUgPT0gTmFOKSB7DQogICAgICAgICAgICAgICAgeFZhbHVlID0gaTsNCiAgICAgICAgICAgICAgICBzb3J0T2JqW2ldID0gcm93c1tpXTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgICAgIHN3aXRjaCAoaXNOYU4oeFZhbHVlKSB8fCB0eXBlb2YgeFZhbHVlID09ICJzdHJpbmciKSB7DQogICAgICAgICAgICAgICAgICAgIGNhc2UgZmFsc2U6DQogICAgICAgICAgICAgICAgICAgICAgICB4VmFsdWUgPSBwYXJzZUZsb2F0KHhWYWx1ZSk7DQogICAgICAgICAgICAgICAgICAgICAgICBzb3J0T2JqW3hWYWx1ZV0gPSByb3dzW2ldOw0KICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgICAgIGNhc2UgdHJ1ZToNCiAgICAgICAgICAgICAgICAgICAgICAgIHNvcnRCeVN0cmluZyA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBzb3J0T2JqW3hWYWx1ZS50b0xvd2VyQ2FzZSgpICsgaV0gPSByb3dzW2ldOw0KICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQogICAgICAgIHdoaWxlICh0YWJsZS5maXJzdENoaWxkKSB7DQogICAgICAgICAgICB0YWJsZS5yZW1vdmVDaGlsZCh0YWJsZS5maXJzdENoaWxkKTsNCiAgICAgICAgfQ0KICAgICAgICB2YXIgc29ydFZhbHVlcyA9IGdldE9iaktleXMoc29ydE9iaik7DQogICAgICAgIGlmIChzb3J0QnlTdHJpbmcgPT0gdHJ1ZSkgew0KICAgICAgICAgICAgc29ydFZhbHVlcy5zb3J0KCk7DQogICAgICAgICAgICBjb25zb2xlLmxvZyhzb3J0VmFsdWVzKTsNCiAgICAgICAgfQ0KICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgIGZ1bmN0aW9uIHNvcnRGbG9hdChhLCBiKSB7DQogICAgICAgICAgICAgICAgcmV0dXJuIGEgLSBiOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgc29ydFZhbHVlcy5zb3J0KHNvcnRGbG9hdCk7DQogICAgICAgIH0NCiAgICAgICAgdGFibGUuYXBwZW5kQ2hpbGQodGFibGVIZWFkZXIpOw0KICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHNvcnRWYWx1ZXMubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgICAgIHRhYmxlLmFwcGVuZENoaWxkKHNvcnRPYmpbc29ydFZhbHVlc1tpXV0pOw0KICAgICAgICB9DQogICAgfQ0KICAgIHJldHVybjsNCn0NCmZ1bmN0aW9uIGNyZWF0ZVNlYXJjaE9iaigpIHsNCiAgICBTRUFSQ0hfTUFQUElORyA9IG5ldyBPYmplY3QoKTsNCiAgICB2YXIgZGF0YSA9IFNFUlZFUlsieGVwZyJdWyJlcGdNYXBwaW5nIl07DQogICAgdmFyIGNoYW5uZWxzID0gZ2V0T2JqS2V5cyhkYXRhKTsNCiAgICB2YXIgY2hhbm5lbEtleXMgPSBbIngtYWN0aXZlIiwgIngtY2hhbm5lbElEIiwgIngtbmFtZSIsICJfZmlsZS5tM3UubmFtZSIsICJ4LWdyb3VwLXRpdGxlIiwgIngteG1sdHYtZmlsZSJdOw0KICAgIGNoYW5uZWxzLmZvckVhY2goaWQgPT4gew0KICAgICAgICBjaGFubmVsS2V5cy5mb3JFYWNoKGtleSA9PiB7DQogICAgICAgICAgICBpZiAoa2V5ID09ICJ4LWFjdGl2ZSIpIHsNCiAgICAgICAgICAgICAgICBzd2l0Y2ggKGRhdGFbaWRdW2tleV0pIHsNCiAgICAgICAgICAgICAgICAgICAgY2FzZSB0cnVlOg0KICAgICAgICAgICAgICAgICAgICAgICAgU0VBUkNIX01BUFBJTkdbaWRdID0gIm9ubGluZSAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgICAgIGNhc2UgZmFsc2U6DQogICAgICAgICAgICAgICAgICAgICAgICBTRUFSQ0hfTUFQUElOR1tpZF0gPSAib2ZmbGluZSAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgZWxzZSB7DQogICAgICAgICAgICAgICAgaWYgKGtleSA9PSAieC14bWx0di1maWxlIikgew0KICAgICAgICAgICAgICAgICAgICB2YXIgeG1sdHZGaWxlID0gZ2V0VmFsdWVGcm9tUHJvdmlkZXJGaWxlKGRhdGFbaWRdW2tleV0sICJ4bWx0diIsICJuYW1lIik7DQogICAgICAgICAgICAgICAgICAgIGlmICh4bWx0dkZpbGUgIT0gdW5kZWZpbmVkKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBTRUFSQ0hfTUFQUElOR1tpZF0gPSBTRUFSQ0hfTUFQUElOR1tpZF0gKyB4bWx0dkZpbGUgKyAiICI7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgZWxzZSB7DQogICAgICAgICAgICAgICAgICAgIFNFQVJDSF9NQVBQSU5HW2lkXSA9IFNFQVJDSF9NQVBQSU5HW2lkXSArIGRhdGFbaWRdW2tleV0gKyAiICI7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfQ0KICAgICAgICB9KTsNCiAgICB9KTsNCiAgICByZXR1cm47DQp9DQpmdW5jdGlvbiBzZWFyY2hJbk1hcHBpbmcoKSB7DQogICAgdmFyIHNlYXJjaFZhbHVlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNlYXJjaE1hcHBpbmciKS52YWx1ZTsNCiAgICB2YXIgdHJzID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnRlbnRfdGFibGUiKS5nZXRFbGVtZW50c0J5VGFnTmFtZSgiVFIiKTsNCiAgICBmb3IgKHZhciBpID0gMTsgaSA8IHRycy5sZW5ndGg7ICsraSkgew0KICAgICAgICB2YXIgaWQgPSB0cnNbaV0uZ2V0QXR0cmlidXRlKCJpZCIpOw0KICAgICAgICB2YXIgZWxlbWVudCA9IFNFQVJDSF9NQVBQSU5HW2lkXTsNCiAgICAgICAgc3dpdGNoIChlbGVtZW50LnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoc2VhcmNoVmFsdWUudG9Mb3dlckNhc2UoKSkpIHsNCiAgICAgICAgICAgIGNhc2UgdHJ1ZToNCiAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkuc3R5bGUuZGlzcGxheSA9ICIiOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSBmYWxzZToNCiAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkuc3R5bGUuZGlzcGxheSA9ICJub25lIjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgfQ0KICAgIH0NCiAgICByZXR1cm47DQp9DQpmdW5jdGlvbiBjYWxjdWxhdGVXcmFwcGVySGVpZ2h0KCkgew0KICAgIGlmIChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYm94LXdyYXBwZXIiKSkgew0KICAgICAgICB2YXIgZWxtID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImJveC13cmFwcGVyIik7DQogICAgICAgIHZhciBkaXZzID0gbmV3IEFycmF5KCJteVN0cmVhbXNCb3giLCAiY2xpZW50SW5mbyIsICJjb250ZW50Iik7DQogICAgICAgIHZhciBlbGVtZW50c0hlaWdodCA9IDAgLSBlbG0ub2Zmc2V0SGVpZ2h0Ow0KICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGRpdnMubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgICAgIGVsZW1lbnRzSGVpZ2h0ID0gZWxlbWVudHNIZWlnaHQgKyBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChkaXZzW2ldKS5vZmZzZXRIZWlnaHQ7DQogICAgICAgIH0NCiAgICAgICAgZWxtLnN0eWxlLmhlaWdodCA9IHdpbmRvdy5pbm5lckhlaWdodCAtIGVsZW1lbnRzSGVpZ2h0ICsgInB4IjsNCiAgICB9DQogICAgcmV0dXJuOw0KfQ0KZnVuY3Rpb24gY2hhbmdlQ2hhbm5lbE51bWJlcihlbGVtZW50KSB7DQogICAgdmFyIGRiSUQgPSBlbGVtZW50LnBhcmVudE5vZGUucGFyZW50Tm9kZS5pZDsNCiAgICB2YXIgbmV3TnVtYmVyID0gcGFyc2VGbG9hdChlbGVtZW50LnZhbHVlKTsNCiAgICB2YXIgY2hhbm5lbE51bWJlcnMgPSBbXTsNCiAgICB2YXIgZGF0YSA9IFNFUlZFUlsieGVwZyJdWyJlcGdNYXBwaW5nIl07DQogICAgdmFyIGNoYW5uZWxzID0gZ2V0T2JqS2V5cyhkYXRhKTsNCiAgICBpZiAoaXNOYU4obmV3TnVtYmVyKSkgew0KICAgICAgICBhbGVydCgie3suYWxlcnQuaW52YWxpZENoYW5uZWxOdW1iZXJ9fSIpOw0KICAgICAgICByZXR1cm47DQogICAgfQ0KICAgIGNoYW5uZWxzLmZvckVhY2goaWQgPT4gew0KICAgICAgICB2YXIgY2hhbm5lbE51bWJlciA9IHBhcnNlRmxvYXQoZGF0YVtpZF1bIngtY2hhbm5lbElEIl0pOw0KICAgICAgICBjaGFubmVsTnVtYmVycy5wdXNoKGNoYW5uZWxOdW1iZXIpOw0KICAgIH0pOw0KICAgIGZvciAodmFyIGkgPSAwOyBpIDwgY2hhbm5lbE51bWJlcnMubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgaWYgKGNoYW5uZWxOdW1iZXJzLmluZGV4T2YobmV3TnVtYmVyKSA9PSAtMSkgew0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIH0NCiAgICAgICAgaWYgKE1hdGguZmxvb3IobmV3TnVtYmVyKSA9PSBuZXdOdW1iZXIpIHsNCiAgICAgICAgICAgIG5ld051bWJlciA9IG5ld051bWJlciArIDE7DQogICAgICAgIH0NCiAgICAgICAgZWxzZSB7DQogICAgICAgICAgICBuZXdOdW1iZXIgPSBuZXdOdW1iZXIgKyAwLjE7DQogICAgICAgICAgICBuZXdOdW1iZXIudG9GaXhlZCgxKTsNCiAgICAgICAgICAgIG5ld051bWJlciA9IE1hdGgucm91bmQobmV3TnVtYmVyICogMTApIC8gMTA7DQogICAgICAgIH0NCiAgICB9DQogICAgZGF0YVtkYklEXVsieC1jaGFubmVsSUQiXSA9IG5ld051bWJlci50b1N0cmluZygpOw0KICAgIGVsZW1lbnQudmFsdWUgPSBuZXdOdW1iZXI7DQogICAgY29uc29sZS5sb2coZGF0YVtkYklEXVsieC1jaGFubmVsSUQiXSk7DQogICAgaWYgKENPTFVNTl9UT19TT1JUID09IDEpIHsNCiAgICAgICAgQ09MVU1OX1RPX1NPUlQgPSAtMTsNCiAgICAgICAgc29ydFRhYmxlKDEpOw0KICAgIH0NCiAgICByZXR1cm47DQp9DQpmdW5jdGlvbiBiYWNrdXAoKSB7DQogICAgdmFyIGRhdGEgPSBuZXcgT2JqZWN0KCk7DQogICAgY29uc29sZS5sb2coIkJhY2t1cCBkYXRhIik7DQogICAgdmFyIGNtZCA9ICJ4dGV2ZUJhY2t1cCI7DQogICAgY29uc29sZS5sb2coIlNFTkQgVE8gU0VSVkVSIik7DQogICAgY29uc29sZS5sb2coZGF0YSk7DQogICAgdmFyIHNlcnZlciA9IG5ldyBTZXJ2ZXIoY21kKTsNCiAgICBzZXJ2ZXIucmVxdWVzdChkYXRhKTsNCiAgICByZXR1cm47DQp9DQpmdW5jdGlvbiB0b2dnbGVDaGFubmVsU3RhdHVzKGlkKSB7DQogICAgdmFyIGVsZW1lbnQ7DQogICAgdmFyIHN0YXR1czsNCiAgICBpZiAoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImFjdGl2ZSIpKSB7DQogICAgICAgIHZhciBjaGVja2JveCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJhY3RpdmUiKTsNCiAgICAgICAgc3RhdHVzID0gKGNoZWNrYm94KS5jaGVja2VkOw0KICAgIH0NCiAgICB2YXIgaWRzID0gZ2V0QWxsU2VsZWN0ZWRDaGFubmVscygpOw0KICAgIGlmIChpZHMubGVuZ3RoID09IDApIHsNCiAgICAgICAgaWRzLnB1c2goaWQpOw0KICAgIH0NCiAgICBpZHMuZm9yRWFjaChpZCA9PiB7DQogICAgICAgIHZhciBjaGFubmVsID0gU0VSVkVSWyJ4ZXBnIl1bImVwZ01hcHBpbmciXVtpZF07DQogICAgICAgIGNoYW5uZWxbIngtYWN0aXZlIl0gPSBzdGF0dXM7DQogICAgICAgIHN3aXRjaCAoY2hhbm5lbFsieC1hY3RpdmUiXSkgew0KICAgICAgICAgICAgY2FzZSB0cnVlOg0KICAgICAgICAgICAgICAgIGlmIChjaGFubmVsWyJ4LXhtbHR2LWZpbGUiXSA9PSAiLSIgfHwgY2hhbm5lbFsieC1tYXBwaW5nIl0gPT0gIi0iKSB7DQogICAgICAgICAgICAgICAgICAgIGlmIChCVUxLX0VESVQgPT0gZmFsc2UpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGFsZXJ0KGNoYW5uZWxbIngtbmFtZSJdICsgIjogTWlzc2luZyBYTUxUViBmaWxlIC8gY2hhbm5lbCIpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2hlY2tib3guY2hlY2tlZCA9IGZhbHNlOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIGNoYW5uZWxbIngtYWN0aXZlIl0gPSBmYWxzZTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlIGZhbHNlOg0KICAgICAgICAgICAgICAgIC8vIGNvZGUuLi4NCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgfQ0KICAgICAgICBpZiAoY2hhbm5lbFsieC1hY3RpdmUiXSA9PSBmYWxzZSkgew0KICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpLmNsYXNzTmFtZSA9ICJub3RBY3RpdmVFUEciOw0KICAgICAgICB9DQogICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpLmNsYXNzTmFtZSA9ICJhY3RpdmVFUEciOw0KICAgICAgICB9DQogICAgfSk7DQp9DQpmdW5jdGlvbiByZXN0b3JlKCkgew0KICAgIGlmIChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndXBsb2FkJykpIHsNCiAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3VwbG9hZCcpLnJlbW92ZSgpOw0KICAgIH0NCiAgICB2YXIgcmVzdG9yZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIklOUFVUIik7DQogICAgcmVzdG9yZS5zZXRBdHRyaWJ1dGUoInR5cGUiLCAiZmlsZSIpOw0KICAgIHJlc3RvcmUuc2V0QXR0cmlidXRlKCJjbGFzcyIsICJub3RWaXNpYmxlIik7DQogICAgcmVzdG9yZS5zZXRBdHRyaWJ1dGUoIm5hbWUiLCAiIik7DQogICAgcmVzdG9yZS5pZCA9ICJ1cGxvYWQiOw0KICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQocmVzdG9yZSk7DQogICAgcmVzdG9yZS5jbGljaygpOw0KICAgIHJlc3RvcmUub25jaGFuZ2UgPSBmdW5jdGlvbiAoKSB7DQogICAgICAgIHZhciBmaWxlbmFtZSA9IHJlc3RvcmUuZmlsZXNbMF0ubmFtZTsNCiAgICAgICAgdmFyIGNoZWNrID0gY29uZmlybSgiRmlsZTogIiArIGZpbGVuYW1lICsgIlxue3suY29uZmlybS5yZXN0b3JlfX0iKTsNCiAgICAgICAgaWYgKGNoZWNrID09IHRydWUpIHsNCiAgICAgICAgICAgIHZhciByZWFkZXIgPSBuZXcgRmlsZVJlYWRlcigpOw0KICAgICAgICAgICAgdmFyIGZpbGUgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCdpbnB1dFt0eXBlPWZpbGVdJykuZmlsZXNbMF07DQogICAgICAgICAgICBpZiAoZmlsZSkgew0KICAgICAgICAgICAgICAgIHJlYWRlci5yZWFkQXNEYXRhVVJMKGZpbGUpOw0KICAgICAgICAgICAgICAgIHJlYWRlci5vbmxvYWQgPSBmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKHJlYWRlci5yZXN1bHQpOw0KICAgICAgICAgICAgICAgICAgICB2YXIgZGF0YSA9IG5ldyBPYmplY3QoKTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGNtZCA9ICJ4dGV2ZVJlc3RvcmUiOw0KICAgICAgICAgICAgICAgICAgICBkYXRhWyJiYXNlNjQiXSA9IHJlYWRlci5yZXN1bHQ7DQogICAgICAgICAgICAgICAgICAgIHZhciBzZXJ2ZXIgPSBuZXcgU2VydmVyKGNtZCk7DQogICAgICAgICAgICAgICAgICAgIHNlcnZlci5yZXF1ZXN0KGRhdGEpOw0KICAgICAgICAgICAgICAgIH07DQogICAgICAgICAgICB9DQogICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICBhbGVydCgiRmlsZSBjb3VsZCBub3QgYmUgbG9hZGVkIik7DQogICAgICAgICAgICB9DQogICAgICAgICAgICByZXN0b3JlLnJlbW92ZSgpOw0KICAgICAgICAgICAgcmV0dXJuOw0KICAgICAgICB9DQogICAgfTsNCiAgICByZXR1cm47DQp9DQpmdW5jdGlvbiB1cGxvYWRMb2dvKCkgew0KICAgIGlmIChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndXBsb2FkJykpIHsNCiAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3VwbG9hZCcpLnJlbW92ZSgpOw0KICAgIH0NCiAgICB2YXIgdXBsb2FkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiSU5QVVQiKTsNCiAgICB1cGxvYWQuc2V0QXR0cmlidXRlKCJ0eXBlIiwgImZpbGUiKTsNCiAgICB1cGxvYWQuc2V0QXR0cmlidXRlKCJjbGFzcyIsICJub3RWaXNpYmxlIik7DQogICAgdXBsb2FkLnNldEF0dHJpYnV0ZSgibmFtZSIsICIiKTsNCiAgICB1cGxvYWQuaWQgPSAidXBsb2FkIjsNCiAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHVwbG9hZCk7DQogICAgdXBsb2FkLmNsaWNrKCk7DQogICAgdXBsb2FkLm9uYmx1ciA9IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgYWxlcnQoKTsNCiAgICB9Ow0KICAgIHVwbG9hZC5vbmNoYW5nZSA9IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgdmFyIGZpbGVuYW1lID0gdXBsb2FkLmZpbGVzWzBdLm5hbWU7DQogICAgICAgIHZhciByZWFkZXIgPSBuZXcgRmlsZVJlYWRlcigpOw0KICAgICAgICB2YXIgZmlsZSA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ2lucHV0W3R5cGU9ZmlsZV0nKS5maWxlc1swXTsNCiAgICAgICAgaWYgKGZpbGUpIHsNCiAgICAgICAgICAgIHJlYWRlci5yZWFkQXNEYXRhVVJMKGZpbGUpOw0KICAgICAgICAgICAgcmVhZGVyLm9ubG9hZCA9IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhyZWFkZXIucmVzdWx0KTsNCiAgICAgICAgICAgICAgICB2YXIgZGF0YSA9IG5ldyBPYmplY3QoKTsNCiAgICAgICAgICAgICAgICB2YXIgY21kID0gInVwbG9hZExvZ28iOw0KICAgICAgICAgICAgICAgIGRhdGFbImJhc2U2NCJdID0gcmVhZGVyLnJlc3VsdDsNCiAgICAgICAgICAgICAgICBkYXRhWyJmaWxlbmFtZSJdID0gZmlsZS5uYW1lOw0KICAgICAgICAgICAgICAgIHZhciBzZXJ2ZXIgPSBuZXcgU2VydmVyKGNtZCk7DQogICAgICAgICAgICAgICAgc2VydmVyLnJlcXVlc3QoZGF0YSk7DQogICAgICAgICAgICAgICAgdmFyIHVwZGF0ZUxvZ28gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndXBkYXRlLWljb24nKTsNCiAgICAgICAgICAgICAgICB1cGRhdGVMb2dvLmNoZWNrZWQgPSBmYWxzZTsNCiAgICAgICAgICAgICAgICB1cGRhdGVMb2dvLmNsYXNzTmFtZSA9ICJjaGFuZ2VkIjsNCiAgICAgICAgICAgIH07DQogICAgICAgIH0NCiAgICAgICAgZWxzZSB7DQogICAgICAgICAgICBhbGVydCgiRmlsZSBjb3VsZCBub3QgYmUgbG9hZGVkIik7DQogICAgICAgIH0NCiAgICAgICAgdXBsb2FkLnJlbW92ZSgpOw0KICAgICAgICByZXR1cm47DQogICAgfTsNCn0NCmZ1bmN0aW9uIGNoZWNrVW5kbyhrZXkpIHsNCiAgICBzd2l0Y2ggKGtleSkgew0KICAgICAgICBjYXNlICJlcGdNYXBwaW5nIjoNCiAgICAgICAgICAgIGlmIChVTkRPLmhhc093blByb3BlcnR5KGtleSkpIHsNCiAgICAgICAgICAgICAgICBTRVJWRVJbInhlcGciXVtrZXldID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeShVTkRPW2tleV0pKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgICAgIFVORE9ba2V5XSA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkoU0VSVkVSWyJ4ZXBnIl1ba2V5XSkpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICBicmVhazsNCiAgICB9DQogICAgcmV0dXJuOw0KfQ0KZnVuY3Rpb24gc29ydFNlbGVjdChlbGVtKSB7DQogICAgdmFyIHRtcEFyeSA9IFtdOw0KICAgIHZhciBzZWxlY3RlZFZhbHVlID0gZWxlbVtlbGVtLnNlbGVjdGVkSW5kZXhdLnZhbHVlOw0KICAgIGZvciAodmFyIGkgPSAwOyBpIDwgZWxlbS5vcHRpb25zLmxlbmd0aDsgaSsrKQ0KICAgICAgICB0bXBBcnkucHVzaChlbGVtLm9wdGlvbnNbaV0pOw0KICAgIHRtcEFyeS5zb3J0KGZ1bmN0aW9uIChhLCBiKSB7IHJldHVybiAoYS50ZXh0IDwgYi50ZXh0KSA/IC0xIDogMTsgfSk7DQogICAgd2hpbGUgKGVsZW0ub3B0aW9ucy5sZW5ndGggPiAwKQ0KICAgICAgICBlbGVtLm9wdGlvbnNbMF0gPSBudWxsOw0KICAgIHZhciBuZXdTZWxlY3RlZEluZGV4ID0gMDsNCiAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRtcEFyeS5sZW5ndGg7IGkrKykgew0KICAgICAgICBlbGVtLm9wdGlvbnNbaV0gPSB0bXBBcnlbaV07DQogICAgICAgIGlmIChlbGVtLm9wdGlvbnNbaV0udmFsdWUgPT0gc2VsZWN0ZWRWYWx1ZSkNCiAgICAgICAgICAgIG5ld1NlbGVjdGVkSW5kZXggPSBpOw0KICAgIH0NCiAgICBlbGVtLnNlbGVjdGVkSW5kZXggPSBuZXdTZWxlY3RlZEluZGV4OyAvLyBTZXQgbmV3IHNlbGVjdGVkIGluZGV4IGFmdGVyIHNvcnRpbmcNCiAgICByZXR1cm47DQp9DQpmdW5jdGlvbiB1cGRhdGVMb2coKSB7DQogICAgY29uc29sZS5sb2coIlRPS0VOIik7DQogICAgdmFyIHNlcnZlciA9IG5ldyBTZXJ2ZXIoInVwZGF0ZUxvZyIpOw0KICAgIHNlcnZlci5yZXF1ZXN0KG5ldyBPYmplY3QoKSk7DQp9DQo=" - webUI["html/js/menu_ts.js"] = "Y2xhc3MgTWFpbk1lbnUgew0KICAgIGNvbnN0cnVjdG9yKCkgew0KICAgICAgICB0aGlzLkRvY3VtZW50SUQgPSAibWFpbi1tZW51IjsNCiAgICAgICAgdGhpcy5IVE1MVGFnID0gIkxJIjsNCiAgICAgICAgdGhpcy5JbWFnZVBhdGggPSAiaW1nLyI7DQogICAgfQ0KICAgIGNyZWF0ZUlNRyhzcmMpIHsNCiAgICAgICAgbGV0IGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJJTUciKTsNCiAgICAgICAgZWxlbWVudC5zZXRBdHRyaWJ1dGUoInNyYyIsIHRoaXMuSW1hZ2VQYXRoICsgc3JjKTsNCiAgICAgICAgcmV0dXJuIGVsZW1lbnQ7DQogICAgfQ0KICAgIGNyZWF0ZVZhbHVlKHZhbHVlKSB7DQogICAgICAgIGxldCBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiUCIpOw0KICAgICAgICBlbGVtZW50LmlubmVySFRNTCA9IHZhbHVlOw0KICAgICAgICByZXR1cm4gZWxlbWVudDsNCiAgICB9DQp9DQpjbGFzcyBNYWluTWVudUl0ZW0gZXh0ZW5kcyBNYWluTWVudSB7DQogICAgY29uc3RydWN0b3IobWVudUtleSwgdmFsdWUsIGltYWdlLCBoZWFkbGluZSkgew0KICAgICAgICBzdXBlcigpOw0KICAgICAgICB0aGlzLm1lbnVLZXkgPSBtZW51S2V5Ow0KICAgICAgICB0aGlzLnZhbHVlID0gdmFsdWU7DQogICAgICAgIHRoaXMuaW1nU3JjID0gaW1hZ2U7DQogICAgICAgIHRoaXMuaGVhZGxpbmUgPSBoZWFkbGluZTsNCiAgICB9DQogICAgY3JlYXRlSXRlbSgpIHsNCiAgICAgICAgbGV0IGl0ZW0gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJMSSIpOw0KICAgICAgICBpdGVtLnNldEF0dHJpYnV0ZSgib25jbGljayIsICJqYXZhc2NyaXB0OiBvcGVuVGhpc01lbnUodGhpcykiKTsNCiAgICAgICAgaXRlbS5zZXRBdHRyaWJ1dGUoImlkIiwgdGhpcy5pZCk7DQogICAgICAgIGxldCBpbWcgPSB0aGlzLmNyZWF0ZUlNRyh0aGlzLmltZ1NyYyk7DQogICAgICAgIGxldCB2YWx1ZSA9IHRoaXMuY3JlYXRlVmFsdWUodGhpcy52YWx1ZSk7DQogICAgICAgIGl0ZW0uYXBwZW5kQ2hpbGQoaW1nKTsNCiAgICAgICAgaXRlbS5hcHBlbmRDaGlsZCh2YWx1ZSk7DQogICAgICAgIGxldCBkb2MgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCh0aGlzLkRvY3VtZW50SUQpOw0KICAgICAgICBkb2MuYXBwZW5kQ2hpbGQoaXRlbSk7DQogICAgICAgIHN3aXRjaCAodGhpcy5tZW51S2V5KSB7DQogICAgICAgICAgICBjYXNlICJwbGF5bGlzdCI6DQogICAgICAgICAgICAgICAgdGhpcy50YWJsZUhlYWRlciA9IFsie3sucGxheWxpc3QudGFibGUucGxheWxpc3R9fSIsICJ7ey5wbGF5bGlzdC50YWJsZS50dW5lcn19IiwgInt7LnBsYXlsaXN0LnRhYmxlLmxhc3RVcGRhdGV9fSIsICJ7ey5wbGF5bGlzdC50YWJsZS5hdmFpbGFiaWxpdHl9fSAlIiwgInt7LnBsYXlsaXN0LnRhYmxlLnR5cGV9fSIsICJ7ey5wbGF5bGlzdC50YWJsZS5zdHJlYW1zfX0iLCAie3sucGxheWxpc3QudGFibGUuZ3JvdXBUaXRsZX19ICUiLCAie3sucGxheWxpc3QudGFibGUudHZnSUR9fSAlIiwgInt7LnBsYXlsaXN0LnRhYmxlLnVuaXF1ZUlEfX0gJSJdOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAieG1sdHYiOg0KICAgICAgICAgICAgICAgIHRoaXMudGFibGVIZWFkZXIgPSBbInt7LnhtbHR2LnRhYmxlLmd1aWRlfX0iLCAie3sueG1sdHYudGFibGUubGFzdFVwZGF0ZX19IiwgInt7LnhtbHR2LnRhYmxlLmF2YWlsYWJpbGl0eX19ICUiLCAie3sueG1sdHYudGFibGUuY2hhbm5lbHN9fSIsICJ7ey54bWx0di50YWJsZS5wcm9ncmFtc319Il07DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJmaWx0ZXIiOg0KICAgICAgICAgICAgICAgIHRoaXMudGFibGVIZWFkZXIgPSBbInt7LmZpbHRlci50YWJsZS5uYW1lfX0iLCAie3suZmlsdGVyLnRhYmxlLnR5cGV9fSIsICJ7ey5maWx0ZXIudGFibGUuZmlsdGVyfX0iXTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInVzZXJzIjoNCiAgICAgICAgICAgICAgICB0aGlzLnRhYmxlSGVhZGVyID0gWyJ7ey51c2Vycy50YWJsZS51c2VybmFtZX19IiwgInt7LnVzZXJzLnRhYmxlLnBhc3N3b3JkfX0iLCAie3sudXNlcnMudGFibGUud2VifX0iLCAie3sudXNlcnMudGFibGUucG1zfX0iLCAie3sudXNlcnMudGFibGUubTN1fX0iLCAie3sudXNlcnMudGFibGUueG1sfX0iLCAie3sudXNlcnMudGFibGUuYXBpfX0iXTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgIm1hcHBpbmciOg0KICAgICAgICAgICAgICAgIHRoaXMudGFibGVIZWFkZXIgPSBbIkJVTEsiLCAie3subWFwcGluZy50YWJsZS5jaE5vfX0iLCAie3subWFwcGluZy50YWJsZS5sb2dvfX0iLCAie3subWFwcGluZy50YWJsZS5jaGFubmVsTmFtZX19IiwgInt7Lm1hcHBpbmcudGFibGUucGxheWxpc3R9fSIsICJ7ey5tYXBwaW5nLnRhYmxlLmdyb3VwVGl0bGV9fSIsICJ7ey5tYXBwaW5nLnRhYmxlLnhtbHR2RmlsZX19IiwgInt7Lm1hcHBpbmcudGFibGUueG1sdHZJRH19IiwgInt7Lm1hcHBpbmcudGFibGUudGltZXNoaWZ0fX0iXTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgfQ0KICAgICAgICAvL2NvbnNvbGUubG9nKHRoaXMubWVudUtleSwgdGhpcy50YWJsZUhlYWRlcik7DQogICAgfQ0KfQ0KY2xhc3MgQ29udGVudCB7DQogICAgY29uc3RydWN0b3IoKSB7DQogICAgICAgIHRoaXMuRG9jdW1lbnRJRCA9ICJjb250ZW50IjsNCiAgICAgICAgdGhpcy5UYWJsZUlEID0gImNvbnRlbnRfdGFibGUiOw0KICAgICAgICB0aGlzLmhlYWRlckNsYXNzID0gImNvbnRlbnRfdGFibGVfaGVhZGVyIjsNCiAgICAgICAgdGhpcy5pbnRlcmFjdGlvbklEID0gImNvbnRlbnQtaW50ZXJhY3Rpb24iOw0KICAgIH0NCiAgICBjcmVhdGVIZWFkbGluZSh2YWx1ZSkgew0KICAgICAgICBsZXQgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIkgzIik7DQogICAgICAgIGVsZW1lbnQuaW5uZXJIVE1MID0gdmFsdWU7DQogICAgICAgIHJldHVybiBlbGVtZW50Ow0KICAgIH0NCiAgICBjcmVhdGVIUigpIHsNCiAgICAgICAgcmV0dXJuIGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIkhSIik7DQogICAgfQ0KICAgIGNyZWF0ZUludGVyYWN0aW9uKCkgew0KICAgICAgICBsZXQgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIkRJViIpOw0KICAgICAgICBlbGVtZW50LnNldEF0dHJpYnV0ZSgiaWQiLCB0aGlzLmludGVyYWN0aW9uSUQpOw0KICAgICAgICByZXR1cm4gZWxlbWVudDsNCiAgICB9DQogICAgY3JlYXRlRElWKCkgew0KICAgICAgICBsZXQgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIkRJViIpOw0KICAgICAgICBlbGVtZW50LmlkID0gdGhpcy5EaXZJRDsNCiAgICAgICAgcmV0dXJuIGVsZW1lbnQ7DQogICAgfQ0KICAgIGNyZWF0ZVRBQkxFKCkgew0KICAgICAgICBsZXQgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlRBQkxFIik7DQogICAgICAgIGVsZW1lbnQuaWQgPSB0aGlzLlRhYmxlSUQ7DQogICAgICAgIHJldHVybiBlbGVtZW50Ow0KICAgIH0NCiAgICBjcmVhdGVUYWJsZVJvdygpIHsNCiAgICAgICAgbGV0IGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJUUiIpOw0KICAgICAgICBlbGVtZW50LmNsYXNzTmFtZSA9IHRoaXMuaGVhZGVyQ2xhc3M7DQogICAgICAgIHJldHVybiBlbGVtZW50Ow0KICAgIH0NCiAgICBjcmVhdGVUYWJsZUNvbnRlbnQobWVudUtleSkgew0KICAgICAgICBsZXQgZGF0YSA9IHt9Ow0KICAgICAgICBsZXQgcm93cyA9IFtdOw0KICAgICAgICBsZXQgZmlsZVR5cGVzID0gW107DQogICAgICAgIHN3aXRjaCAobWVudUtleSkgew0KICAgICAgICAgICAgY2FzZSAicGxheWxpc3QiOg0KICAgICAgICAgICAgICAgIGZpbGVUeXBlcyA9IFsibTN1IiwgImhkaHIiXTsNCiAgICAgICAgICAgICAgICBmaWxlVHlwZXMuZm9yRWFjaChmaWxlVHlwZSA9PiB7DQogICAgICAgICAgICAgICAgICAgIGRhdGEgPSBTRVJWRVJbInNldHRpbmdzIl1bImZpbGVzIl1bZmlsZVR5cGVdOw0KICAgICAgICAgICAgICAgICAgICB2YXIga2V5cyA9IGdldE9iaktleXMoZGF0YSk7DQogICAgICAgICAgICAgICAgICAgIGtleXMuZm9yRWFjaChrZXkgPT4gew0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVFIiKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmlkID0ga2V5Ow0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgiJyArIGZpbGVUeXBlICsgJyIsIHRoaXMpJyk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsibmFtZSJdOw0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChTRVJWRVJbInNldHRpbmdzIl1bImJ1ZmZlciJdICE9ICItIikgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bInR1bmVyIl07DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gIi0iOw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bImxhc3QudXBkYXRlIl07DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsicHJvdmlkZXIuYXZhaWxhYmlsaXR5Il07DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsidHlwZSJdLnRvVXBwZXJDYXNlKCk7DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsiY29tcGF0aWJpbGl0eSJdWyJzdHJlYW1zIl07DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsiY29tcGF0aWJpbGl0eSJdWyJncm91cC50aXRsZSJdOw0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bImNvbXBhdGliaWxpdHkiXVsidHZnLmlkIl07DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsiY29tcGF0aWJpbGl0eSJdWyJzdHJlYW0uaWQiXTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHJvd3MucHVzaCh0cik7DQogICAgICAgICAgICAgICAgICAgIH0pOw0KICAgICAgICAgICAgICAgIH0pOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiZmlsdGVyIjoNCiAgICAgICAgICAgICAgICBkZWxldGUgU0VSVkVSWyJzZXR0aW5ncyJdWyJmaWx0ZXIiXVstMV07DQogICAgICAgICAgICAgICAgZGF0YSA9IFNFUlZFUlsic2V0dGluZ3MiXVsiZmlsdGVyIl07DQogICAgICAgICAgICAgICAgdmFyIGtleXMgPSBnZXRPYmpLZXlzKGRhdGEpOw0KICAgICAgICAgICAgICAgIGtleXMuZm9yRWFjaChrZXkgPT4gew0KICAgICAgICAgICAgICAgICAgICB2YXIgdHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJUUiIpOw0KICAgICAgICAgICAgICAgICAgICB0ci5pZCA9IGtleTsNCiAgICAgICAgICAgICAgICAgICAgdHIuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgiJyArIGRhdGFba2V5XVsidHlwZSJdICsgJyIsIHRoaXMpJyk7DQogICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJuYW1lIl07DQogICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgIHN3aXRjaCAoZGF0YVtrZXldWyJ0eXBlIl0pIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgImN1c3RvbS1maWx0ZXIiOg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSAie3suZmlsdGVyLmN1c3RvbX19IjsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgImdyb3VwLXRpdGxlIjoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gInt7LmZpbHRlci5ncm91cH19IjsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsiZmlsdGVyIl07DQogICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgcm93cy5wdXNoKHRyKTsNCiAgICAgICAgICAgICAgICB9KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInhtbHR2IjoNCiAgICAgICAgICAgICAgICBmaWxlVHlwZXMgPSBuZXcgQXJyYXkoInhtbHR2Iik7DQogICAgICAgICAgICAgICAgZmlsZVR5cGVzLmZvckVhY2goZmlsZVR5cGUgPT4gew0KICAgICAgICAgICAgICAgICAgICBkYXRhID0gU0VSVkVSWyJzZXR0aW5ncyJdWyJmaWxlcyJdW2ZpbGVUeXBlXTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGtleXMgPSBnZXRPYmpLZXlzKGRhdGEpOw0KICAgICAgICAgICAgICAgICAgICBrZXlzLmZvckVhY2goa2V5ID0+IHsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciB0ciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlRSIik7DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5pZCA9IGtleTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoIicgKyBmaWxlVHlwZSArICciLCB0aGlzKScpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bIm5hbWUiXTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJsYXN0LnVwZGF0ZSJdOw0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bInByb3ZpZGVyLmF2YWlsYWJpbGl0eSJdOw0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bImNvbXBhdGliaWxpdHkiXVsieG1sdHYuY2hhbm5lbHMiXTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJjb21wYXRpYmlsaXR5Il1bInhtbHR2LnByb2dyYW1zIl07DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICByb3dzLnB1c2godHIpOw0KICAgICAgICAgICAgICAgICAgICB9KTsNCiAgICAgICAgICAgICAgICB9KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInVzZXJzIjoNCiAgICAgICAgICAgICAgICBmaWxlVHlwZXMgPSBuZXcgQXJyYXkoInVzZXJzIik7DQogICAgICAgICAgICAgICAgZmlsZVR5cGVzLmZvckVhY2goZmlsZVR5cGUgPT4gew0KICAgICAgICAgICAgICAgICAgICBkYXRhID0gU0VSVkVSW2ZpbGVUeXBlXTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGtleXMgPSBnZXRPYmpLZXlzKGRhdGEpOw0KICAgICAgICAgICAgICAgICAgICBrZXlzLmZvckVhY2goa2V5ID0+IHsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciB0ciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlRSIik7DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5pZCA9IGtleTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoIicgKyBmaWxlVHlwZSArICciLCB0aGlzKScpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bImRhdGEiXVsidXNlcm5hbWUiXTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gIioqKioqKiI7DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGRhdGFba2V5XVsiZGF0YSJdWyJhdXRoZW50aWNhdGlvbi53ZWIiXSA9PSB0cnVlKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9ICLinJMiOw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9ICItIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgICAgICBpZiAoZGF0YVtrZXldWyJkYXRhIl1bImF1dGhlbnRpY2F0aW9uLnBtcyJdID09IHRydWUpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gIuKckyI7DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gIi0iOw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChkYXRhW2tleV1bImRhdGEiXVsiYXV0aGVudGljYXRpb24ubTN1Il0gPT0gdHJ1ZSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSAi4pyTIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSAiLSI7DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGRhdGFba2V5XVsiZGF0YSJdWyJhdXRoZW50aWNhdGlvbi54bWwiXSA9PSB0cnVlKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9ICLinJMiOw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9ICItIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgICAgICBpZiAoZGF0YVtrZXldWyJkYXRhIl1bImF1dGhlbnRpY2F0aW9uLmFwaSJdID09IHRydWUpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gIuKckyI7DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gIi0iOw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgcm93cy5wdXNoKHRyKTsNCiAgICAgICAgICAgICAgICAgICAgfSk7DQogICAgICAgICAgICAgICAgfSk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJtYXBwaW5nIjoNCiAgICAgICAgICAgICAgICBCVUxLX0VESVQgPSBmYWxzZTsNCiAgICAgICAgICAgICAgICBjcmVhdGVTZWFyY2hPYmooKTsNCiAgICAgICAgICAgICAgICBjaGVja1VuZG8oImVwZ01hcHBpbmciKTsNCiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZygiTUFQUElORyIpOw0KICAgICAgICAgICAgICAgIGRhdGEgPSBTRVJWRVJbInhlcGciXVsiZXBnTWFwcGluZyJdOw0KICAgICAgICAgICAgICAgIHZhciBrZXlzID0gZ2V0T2JqS2V5cyhkYXRhKTsNCiAgICAgICAgICAgICAgICBrZXlzLmZvckVhY2goa2V5ID0+IHsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVFIiKTsNCiAgICAgICAgICAgICAgICAgICAgdHIuaWQgPSBrZXk7DQogICAgICAgICAgICAgICAgICAgIC8vdHIuc2V0QXR0cmlidXRlKCdvbmNvbnRleHRtZW51JywgJ2phdmFzY3JpcHQ6IHJpZ2h0Q2xpY2sodGhpcyknKQ0KICAgICAgICAgICAgICAgICAgICBzd2l0Y2ggKGRhdGFba2V5XVsieC1hY3RpdmUiXSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSB0cnVlOg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyLmNsYXNzTmFtZSA9ICJhY3RpdmVFUEciOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSBmYWxzZToNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ci5jbGFzc05hbWUgPSAibm90QWN0aXZlRVBHIjsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAvLyBCdWxrDQogICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIkJVTEsiOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZmFsc2U7DQogICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgLy8gQ2hhbm5lbCBudW1iZXINCiAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiSU5QVVRDSEFOTkVMIjsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsieC1jaGFubmVsSUQiXTsNCiAgICAgICAgICAgICAgICAgICAgLy90ZC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogY2hhbmdlQ2hhbm5lbE51bWJlcigiJyArIGtleSArICciLCB0aGlzKScpDQogICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgLy8gTG9nbw0KICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJJTUciOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmltYWdlVVJMID0gZGF0YVtrZXldWyJ0dmctbG9nbyJdOw0KICAgICAgICAgICAgICAgICAgICB2YXIgdGQgPSBjZWxsLmNyZWF0ZUNlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgdGQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgibWFwcGluZyIsIHRoaXMpJyk7DQogICAgICAgICAgICAgICAgICAgIHRkLmlkID0ga2V5Ow0KICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZCh0ZCk7DQogICAgICAgICAgICAgICAgICAgIC8vIENoYW5uZWwgbmFtZQ0KICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jbGFzc05hbWUgPSBkYXRhW2tleV1bIngtY2F0ZWdvcnkiXTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsieC1uYW1lIl07DQogICAgICAgICAgICAgICAgICAgIHZhciB0ZCA9IGNlbGwuY3JlYXRlQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICB0ZC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJtYXBwaW5nIiwgdGhpcyknKTsNCiAgICAgICAgICAgICAgICAgICAgdGQuaWQgPSBrZXk7DQogICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKHRkKTsNCiAgICAgICAgICAgICAgICAgICAgLy8gUGxheWxpc3QNCiAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgIC8vY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsiX2ZpbGUubTN1Lm5hbWUiXSANCiAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGdldFZhbHVlRnJvbVByb3ZpZGVyRmlsZShkYXRhW2tleV1bIl9maWxlLm0zdS5pZCJdLCAibTN1IiwgIm5hbWUiKTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHRkID0gY2VsbC5jcmVhdGVDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgIHRkLnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoIm1hcHBpbmciLCB0aGlzKScpOw0KICAgICAgICAgICAgICAgICAgICB0ZC5pZCA9IGtleTsNCiAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQodGQpOw0KICAgICAgICAgICAgICAgICAgICAvLyBHcm91cCAoZ3JvdXAtdGl0bGUpDQogICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJ4LWdyb3VwLXRpdGxlIl07DQogICAgICAgICAgICAgICAgICAgIHZhciB0ZCA9IGNlbGwuY3JlYXRlQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICB0ZC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJtYXBwaW5nIiwgdGhpcyknKTsNCiAgICAgICAgICAgICAgICAgICAgdGQuaWQgPSBrZXk7DQogICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKHRkKTsNCiAgICAgICAgICAgICAgICAgICAgLy8gWE1MVFYgZmlsZQ0KICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgaWYgKGRhdGFba2V5XVsieC14bWx0di1maWxlIl0gIT0gIi0iKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZ2V0VmFsdWVGcm9tUHJvdmlkZXJGaWxlKGRhdGFba2V5XVsieC14bWx0di1maWxlIl0sICJ4bWx0diIsICJuYW1lIik7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgZWxzZSB7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJ4LXhtbHR2LWZpbGUiXTsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICB2YXIgdGQgPSBjZWxsLmNyZWF0ZUNlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgdGQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgibWFwcGluZyIsIHRoaXMpJyk7DQogICAgICAgICAgICAgICAgICAgIHRkLmlkID0ga2V5Ow0KICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZCh0ZCk7DQogICAgICAgICAgICAgICAgICAgIC8vIFhNTFRWIENoYW5uZWwNCiAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgIC8vdmFyIHZhbHVlID0gc3RyLnN1YnN0cmluZygxLCA0KTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHZhbHVlID0gZGF0YVtrZXldWyJ4LW1hcHBpbmciXTsNCiAgICAgICAgICAgICAgICAgICAgaWYgKHZhbHVlLmxlbmd0aCA+IDIwKSB7DQogICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IGRhdGFba2V5XVsieC1tYXBwaW5nIl0uc3Vic3RyaW5nKDAsIDIwKSArICIuLi4iOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSB2YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHRkID0gY2VsbC5jcmVhdGVDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgIHRkLnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoIm1hcHBpbmciLCB0aGlzKScpOw0KICAgICAgICAgICAgICAgICAgICB0ZC5pZCA9IGtleTsNCiAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQodGQpOw0KICAgICAgICAgICAgICAgICAgICAvLyBUaW1lU2hpZnQNCiAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bIngtdGltZXNoaWZ0Il07DQogICAgICAgICAgICAgICAgICAgIHZhciB0ZCA9IGNlbGwuY3JlYXRlQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICB0ZC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJtYXBwaW5nIiwgdGhpcyknKTsNCiAgICAgICAgICAgICAgICAgICAgdGQuaWQgPSBrZXk7DQogICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKHRkKTsNCiAgICAgICAgICAgICAgICAgICAgcm93cy5wdXNoKHRyKTsNCiAgICAgICAgICAgICAgICB9KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInNldHRpbmdzIjoNCiAgICAgICAgICAgICAgICBhbGVydCgpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZygiVGFibGUgY29udGVudCAobWVudUtleSk6IiwgbWVudUtleSk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIH0NCiAgICAgICAgcmV0dXJuIHJvd3M7DQogICAgfQ0KfQ0KY2xhc3MgQ2VsbCB7DQogICAgY3JlYXRlQ2VsbCgpIHsNCiAgICAgICAgbGV0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgaWYgKHRoaXMuY2hpbGQgPT0gdHJ1ZSkgew0KICAgICAgICAgICAgdmFyIGVsZW1lbnQ7DQogICAgICAgICAgICBzd2l0Y2ggKHRoaXMuY2hpbGRUeXBlKSB7DQogICAgICAgICAgICAgICAgY2FzZSAiUCI6DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KHRoaXMuY2hpbGRUeXBlKTsNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC5pbm5lckhUTUwgPSB0aGlzLnZhbHVlOw0KICAgICAgICAgICAgICAgICAgICBlbGVtZW50LmNsYXNzTmFtZSA9IHRoaXMuY2xhc3NOYW1lOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBjYXNlICJJTlBVVCI6DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KHRoaXMuY2hpbGRUeXBlKTsNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC52YWx1ZSA9IHRoaXMudmFsdWU7DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQudHlwZSA9ICJ0ZXh0IjsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAiSU5QVVRDSEFOTkVMIjoNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIklOUFVUIik7DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZzY3JpcHQ6IGNoYW5nZUNoYW5uZWxOdW1iZXIodGhpcykiKTsNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC52YWx1ZSA9IHRoaXMudmFsdWU7DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQudHlwZSA9ICJ0ZXh0IjsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAiQlVMSyI6DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJJTlBVVCIpOw0KICAgICAgICAgICAgICAgICAgICBlbGVtZW50LmNoZWNrZWQgPSB0aGlzLnZhbHVlOw0KICAgICAgICAgICAgICAgICAgICBlbGVtZW50LnR5cGUgPSAiY2hlY2tib3giOw0KICAgICAgICAgICAgICAgICAgICBlbGVtZW50LmNsYXNzTmFtZSA9ICJidWxrIGhpZGVCdWxrIjsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAiQlVMS19IRUFEIjoNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIklOUFVUIik7DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQuY2hlY2tlZCA9IHRoaXMudmFsdWU7DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQudHlwZSA9ICJjaGVja2JveCI7DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQuY2xhc3NOYW1lID0gImJ1bGsgaGlkZUJ1bGsiOw0KICAgICAgICAgICAgICAgICAgICBlbGVtZW50LnNldEF0dHJpYnV0ZSgib25jbGljayIsICJqYXZhc2NyaXB0OiBzZWxlY3RBbGxDaGFubmVscygpIik7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgIklNRyI6DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KHRoaXMuY2hpbGRUeXBlKTsNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC5zZXRBdHRyaWJ1dGUoInNyYyIsIHRoaXMuaW1hZ2VVUkwpOw0KICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5pbWFnZVVSTCAhPSAiIikgew0KICAgICAgICAgICAgICAgICAgICAgICAgZWxlbWVudC5zZXRBdHRyaWJ1dGUoIm9uZXJyb3IiLCAiamF2YXNjcmlwdDogdGhpcy5vbmVycm9yPW51bGw7dGhpcy5zcmM9JyciKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIC8vb25lcnJvcj0idGhpcy5vbmVycm9yPW51bGw7dGhpcy5zcmM9J21pc3NpbmcuZ2lmJzsiDQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIHRkLmFwcGVuZENoaWxkKGVsZW1lbnQpOw0KICAgICAgICB9DQogICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgdGQuaW5uZXJIVE1MID0gdGhpcy52YWx1ZTsNCiAgICAgICAgfQ0KICAgICAgICBpZiAodGhpcy5vbmNsaWNrID09IHRydWUpIHsNCiAgICAgICAgICAgIHRkLnNldEF0dHJpYnV0ZSgib25jbGljayIsIHRoaXMub25jbGlja0Z1bmt0aW9uKTsNCiAgICAgICAgICAgIHRkLmNsYXNzTmFtZSA9ICJwb2ludGVyIjsNCiAgICAgICAgfQ0KICAgICAgICBpZiAodGhpcy50ZENsYXNzTmFtZSAhPSB1bmRlZmluZWQpIHsNCiAgICAgICAgICAgIHRkLmNsYXNzTmFtZSA9IHRoaXMudGRDbGFzc05hbWU7DQogICAgICAgIH0NCiAgICAgICAgcmV0dXJuIHRkOw0KICAgIH0NCn0NCmNsYXNzIFNob3dDb250ZW50IGV4dGVuZHMgQ29udGVudCB7DQogICAgY29uc3RydWN0b3IobWVudUlEKSB7DQogICAgICAgIHN1cGVyKCk7DQogICAgICAgIHRoaXMubWVudUlEID0gbWVudUlEOw0KICAgIH0NCiAgICBjcmVhdGVJbnB1dCh0eXBlLCBuYW1lLCB2YWx1ZSkgew0KICAgICAgICBsZXQgaW5wdXQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJJTlBVVCIpOw0KICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInR5cGUiLCB0eXBlKTsNCiAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJuYW1lIiwgbmFtZSk7DQogICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgidmFsdWUiLCB2YWx1ZSk7DQogICAgICAgIHJldHVybiBpbnB1dDsNCiAgICB9DQogICAgc2hvdygpIHsNCiAgICAgICAgQ09MVU1OX1RPX1NPUlQgPSAtMTsNCiAgICAgICAgLy8gRGVsZXRlIG9sZCBjb250ZW50DQogICAgICAgIGxldCBkb2MgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCh0aGlzLkRvY3VtZW50SUQpOw0KICAgICAgICBkb2MuaW5uZXJIVE1MID0gIiI7DQogICAgICAgIHNob3dQcmV2aWV3KGZhbHNlKTsNCiAgICAgICAgLy8gSGVhZGxpbmUNCiAgICAgICAgbGV0IGhlYWRsaW5lID0gbWVudUl0ZW1zW3RoaXMubWVudUlEXS5oZWFkbGluZTsNCiAgICAgICAgbGV0IG1lbnVLZXkgPSBtZW51SXRlbXNbdGhpcy5tZW51SURdLm1lbnVLZXk7DQogICAgICAgIGxldCBoID0gdGhpcy5jcmVhdGVIZWFkbGluZShoZWFkbGluZSk7DQogICAgICAgIGRvYy5hcHBlbmRDaGlsZChoKTsNCiAgICAgICAgbGV0IGhyID0gdGhpcy5jcmVhdGVIUigpOw0KICAgICAgICBkb2MuYXBwZW5kQ2hpbGQoaHIpOw0KICAgICAgICAvLyBJbnRlcmFjdGlvbg0KICAgICAgICBsZXQgZGl2ID0gdGhpcy5jcmVhdGVJbnRlcmFjdGlvbigpOw0KICAgICAgICBkb2MuYXBwZW5kQ2hpbGQoZGl2KTsNCiAgICAgICAgbGV0IGludGVyYWN0aW9uID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQodGhpcy5pbnRlcmFjdGlvbklEKTsNCiAgICAgICAgc3dpdGNoIChtZW51S2V5KSB7DQogICAgICAgICAgICBjYXNlICJwbGF5bGlzdCI6DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gdGhpcy5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgbWVudUtleSwgInt7LmJ1dHRvbi5uZXd9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgiaWQiLCAiLSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoInBsYXlsaXN0IiknKTsNCiAgICAgICAgICAgICAgICBpbnRlcmFjdGlvbi5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJmaWx0ZXIiOg0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IHRoaXMuY3JlYXRlSW5wdXQoImJ1dHRvbiIsIG1lbnVLZXksICJ7ey5idXR0b24ubmV3fX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoImlkIiwgLTEpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoImZpbHRlciIsIHRoaXMpJyk7DQogICAgICAgICAgICAgICAgaW50ZXJhY3Rpb24uYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAieG1sdHYiOg0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IHRoaXMuY3JlYXRlSW5wdXQoImJ1dHRvbiIsIG1lbnVLZXksICJ7ey5idXR0b24ubmV3fX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoImlkIiwgInhtbHR2Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgieG1sdHYiKScpOw0KICAgICAgICAgICAgICAgIGludGVyYWN0aW9uLmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInVzZXJzIjoNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSB0aGlzLmNyZWF0ZUlucHV0KCJidXR0b24iLCBtZW51S2V5LCAie3suYnV0dG9uLm5ld319Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJpZCIsICJ1c2VycyIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoInVzZXJzIiknKTsNCiAgICAgICAgICAgICAgICBpbnRlcmFjdGlvbi5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJtYXBwaW5nIjoNCiAgICAgICAgICAgICAgICBzaG93RWxlbWVudCgibG9hZGluZyIsIHRydWUpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IHRoaXMuY3JlYXRlSW5wdXQoImJ1dHRvbiIsIG1lbnVLZXksICJ7ey5idXR0b24uc2F2ZX19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoIm1hcHBpbmciLCAiIiwgIiIpJyk7DQogICAgICAgICAgICAgICAgaW50ZXJhY3Rpb24uYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IHRoaXMuY3JlYXRlSW5wdXQoImJ1dHRvbiIsIG1lbnVLZXksICJ7ey5idXR0b24uYnVsa0VkaXR9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBidWxrRWRpdCgpJyk7DQogICAgICAgICAgICAgICAgaW50ZXJhY3Rpb24uYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IHRoaXMuY3JlYXRlSW5wdXQoInNlYXJjaCIsICJzZWFyY2giLCAiIik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJpZCIsICJzZWFyY2hNYXBwaW5nIik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5idXR0b24uc2VhcmNofX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5jbGFzc05hbWUgPSAic2VhcmNoIjsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgJ2phdmFzY3JpcHQ6IHNlYXJjaEluTWFwcGluZygpJyk7DQogICAgICAgICAgICAgICAgaW50ZXJhY3Rpb24uYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAic2V0dGluZ3MiOg0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IHRoaXMuY3JlYXRlSW5wdXQoImJ1dHRvbiIsIG1lbnVLZXksICJ7ey5idXR0b24uc2F2ZX19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IHNhdmVTZXR0aW5ncygpOycpOw0KICAgICAgICAgICAgICAgIGludGVyYWN0aW9uLmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSB0aGlzLmNyZWF0ZUlucHV0KCJidXR0b24iLCBtZW51S2V5LCAie3suYnV0dG9uLmJhY2t1cH19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IGJhY2t1cCgpOycpOw0KICAgICAgICAgICAgICAgIGludGVyYWN0aW9uLmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSB0aGlzLmNyZWF0ZUlucHV0KCJidXR0b24iLCBtZW51S2V5LCAie3suYnV0dG9uLnJlc3RvcmV9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiByZXN0b3JlKCk7Jyk7DQogICAgICAgICAgICAgICAgaW50ZXJhY3Rpb24uYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIHZhciB3cmFwcGVyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiRElWIik7DQogICAgICAgICAgICAgICAgd3JhcHBlci5zZXRBdHRyaWJ1dGUoImlkIiwgImJveC13cmFwcGVyIik7DQogICAgICAgICAgICAgICAgZG9jLmFwcGVuZENoaWxkKHdyYXBwZXIpOw0KICAgICAgICAgICAgICAgIHRoaXMuRGl2SUQgPSAiY29udGVudF9zZXR0aW5ncyI7DQogICAgICAgICAgICAgICAgdmFyIHNldHRpbmdzID0gdGhpcy5jcmVhdGVESVYoKTsNCiAgICAgICAgICAgICAgICB3cmFwcGVyLmFwcGVuZENoaWxkKHNldHRpbmdzKTsNCiAgICAgICAgICAgICAgICBzaG93U2V0dGluZ3MoKTsNCiAgICAgICAgICAgICAgICByZXR1cm47DQogICAgICAgICAgICBjYXNlICJsb2ciOg0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IHRoaXMuY3JlYXRlSW5wdXQoImJ1dHRvbiIsIG1lbnVLZXksICJ7ey5idXR0b24ucmVzZXRMb2dzfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogcmVzZXRMb2dzKCk7Jyk7DQogICAgICAgICAgICAgICAgaW50ZXJhY3Rpb24uYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIHZhciB3cmFwcGVyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiRElWIik7DQogICAgICAgICAgICAgICAgd3JhcHBlci5zZXRBdHRyaWJ1dGUoImlkIiwgImJveC13cmFwcGVyIik7DQogICAgICAgICAgICAgICAgZG9jLmFwcGVuZENoaWxkKHdyYXBwZXIpOw0KICAgICAgICAgICAgICAgIHRoaXMuRGl2SUQgPSAiY29udGVudF9sb2ciOw0KICAgICAgICAgICAgICAgIHZhciBsb2dzID0gdGhpcy5jcmVhdGVESVYoKTsNCiAgICAgICAgICAgICAgICB3cmFwcGVyLmFwcGVuZENoaWxkKGxvZ3MpOw0KICAgICAgICAgICAgICAgIHNob3dMb2dzKHRydWUpOw0KICAgICAgICAgICAgICAgIHJldHVybjsNCiAgICAgICAgICAgIGNhc2UgImxvZ291dCI6DQogICAgICAgICAgICAgICAgbG9jYXRpb24ucmVsb2FkKCk7DQogICAgICAgICAgICAgICAgZG9jdW1lbnQuY29va2llID0gIlRva2VuPSA7IGV4cGlyZXMgPSBUaHUsIDAxIEphbiAxOTcwIDAwOjAwOjAwIEdNVCI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBkZWZhdWx0Og0KICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKCJTaG93IGNvbnRlbnQgKG1lbnVLZXkpOiIsIG1lbnVLZXkpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICB9DQogICAgICAgIC8vIENyZWF0ZSB0YWJsZSAoaWYgbmVlZGVkKQ0KICAgICAgICB2YXIgdGFibGVIZWFkZXIgPSBtZW51SXRlbXNbdGhpcy5tZW51SURdLnRhYmxlSGVhZGVyOw0KICAgICAgICBpZiAodGFibGVIZWFkZXIubGVuZ3RoID4gMCkgew0KICAgICAgICAgICAgdmFyIHdyYXBwZXIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJESVYiKTsNCiAgICAgICAgICAgIGRvYy5hcHBlbmRDaGlsZCh3cmFwcGVyKTsNCiAgICAgICAgICAgIHdyYXBwZXIuc2V0QXR0cmlidXRlKCJpZCIsICJib3gtd3JhcHBlciIpOw0KICAgICAgICAgICAgdmFyIHRhYmxlID0gdGhpcy5jcmVhdGVUQUJMRSgpOw0KICAgICAgICAgICAgd3JhcHBlci5hcHBlbmRDaGlsZCh0YWJsZSk7DQogICAgICAgICAgICB2YXIgaGVhZGVyID0gdGhpcy5jcmVhdGVUYWJsZVJvdygpOw0KICAgICAgICAgICAgdGFibGUuYXBwZW5kQ2hpbGQoaGVhZGVyKTsNCiAgICAgICAgICAgIC8vIFRhYmxlIGhlYWRlcg0KICAgICAgICAgICAgdGFibGVIZWFkZXIuZm9yRWFjaChlbGVtZW50ID0+IHsNCiAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGVsZW1lbnQ7DQogICAgICAgICAgICAgICAgaWYgKGVsZW1lbnQgPT0gIkJVTEsiKSB7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIkJVTEtfSEVBRCI7DQogICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBmYWxzZTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgaWYgKG1lbnVLZXkgPT0gIm1hcHBpbmciKSB7DQogICAgICAgICAgICAgICAgICAgIGlmIChlbGVtZW50ID09ICJ7ey5tYXBwaW5nLnRhYmxlLmNoTm99fSIpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwub25jbGljayA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLm9uY2xpY2tGdW5rdGlvbiA9ICJqYXZhc2NyaXB0OiBzb3J0VGFibGUoMSk7IjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudGRDbGFzc05hbWUgPSAic29ydFRoaXMiOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIGlmIChlbGVtZW50ID09ICJ7ey5tYXBwaW5nLnRhYmxlLmNoYW5uZWxOYW1lfX0iKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLm9uY2xpY2sgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5vbmNsaWNrRnVua3Rpb24gPSAiamF2YXNjcmlwdDogc29ydFRhYmxlKDMpOyI7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgaWYgKGVsZW1lbnQgPT0gInt7Lm1hcHBpbmcudGFibGUucGxheWxpc3R9fSIpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwub25jbGljayA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLm9uY2xpY2tGdW5rdGlvbiA9ICJqYXZhc2NyaXB0OiBzb3J0VGFibGUoNCk7IjsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBpZiAoZWxlbWVudCA9PSAie3subWFwcGluZy50YWJsZS5ncm91cFRpdGxlfX0iKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLm9uY2xpY2sgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5vbmNsaWNrRnVua3Rpb24gPSAiamF2YXNjcmlwdDogc29ydFRhYmxlKDUpOyI7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgaWYgKGVsZW1lbnQgPT0gInt7Lm1hcHBpbmcudGFibGUudGltZXNoaWZ0fX0iKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLm9uY2xpY2sgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5vbmNsaWNrRnVua3Rpb24gPSAiamF2YXNjcmlwdDogc29ydFRhYmxlKDgpOyI7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgaGVhZGVyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgIH0pOw0KICAgICAgICAgICAgdGFibGUuYXBwZW5kQ2hpbGQoaGVhZGVyKTsNCiAgICAgICAgICAgIC8vIENvbnRlbnQgb2YgdGhlIHRhYmxlDQogICAgICAgICAgICB2YXIgcm93cyA9IHRoaXMuY3JlYXRlVGFibGVDb250ZW50KG1lbnVLZXkpOw0KICAgICAgICAgICAgcm93cy5mb3JFYWNoKHRyID0+IHsNCiAgICAgICAgICAgICAgICB0YWJsZS5hcHBlbmRDaGlsZCh0cik7DQogICAgICAgICAgICB9KTsNCiAgICAgICAgfQ0KICAgICAgICBzd2l0Y2ggKG1lbnVLZXkpIHsNCiAgICAgICAgICAgIGNhc2UgIm1hcHBpbmciOg0KICAgICAgICAgICAgICAgIHNvcnRUYWJsZSgxKTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImZpbHRlciI6DQogICAgICAgICAgICAgICAgc2hvd1ByZXZpZXcodHJ1ZSk7DQogICAgICAgICAgICAgICAgc29ydFRhYmxlKDApOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgICAgICBDT0xVTU5fVE9fU09SVCA9IC0xOw0KICAgICAgICAgICAgICAgIHNvcnRUYWJsZSgwKTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgfQ0KICAgICAgICBzaG93RWxlbWVudCgibG9hZGluZyIsIGZhbHNlKTsNCiAgICB9DQp9DQpmdW5jdGlvbiBQYWdlUmVhZHkoKSB7DQogICAgbGV0IHNlcnZlciA9IG5ldyBTZXJ2ZXIoImdldFNlcnZlckNvbmZpZyIpOw0KICAgIHNlcnZlci5yZXF1ZXN0KHt9KTsNCiAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigicmVzaXplIiwgZnVuY3Rpb24gKCkgew0KICAgICAgICBjYWxjdWxhdGVXcmFwcGVySGVpZ2h0KCk7DQogICAgfSwgdHJ1ZSk7DQogICAgc2V0SW50ZXJ2YWwoZnVuY3Rpb24gKCkgew0KICAgICAgICB1cGRhdGVMb2coKTsNCiAgICB9LCAxMDAwMCk7DQogICAgcmV0dXJuOw0KfQ0KZnVuY3Rpb24gY3JlYXRlTGF5b3V0KCkgew0KICAgIC8vIENsaWVudCBJbmZvDQogICAgbGV0IG9iaiA9IFNFUlZFUlsiY2xpZW50SW5mbyJdOw0KICAgIGxldCBrZXlzID0gZ2V0T2JqS2V5cyhvYmopOw0KICAgIGZvciAodmFyIGkgPSAwOyBpIDwga2V5cy5sZW5ndGg7IGkrKykgew0KICAgICAgICBpZiAoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoa2V5c1tpXSkpIHsNCiAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGtleXNbaV0pLmlubmVySFRNTCA9IG9ialtrZXlzW2ldXTsNCiAgICAgICAgfQ0KICAgIH0NCiAgICBpZiAoIWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJtYWluLW1lbnUiKSkgew0KICAgICAgICByZXR1cm47DQogICAgfQ0KICAgIC8vIENyZWF0ZSBtZW51DQogICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm1haW4tbWVudSIpLmlubmVySFRNTCA9ICIiOw0KICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbWVudUl0ZW1zLmxlbmd0aDsgaSsrKSB7DQogICAgICAgIG1lbnVJdGVtc1tpXS5pZCA9IGk7DQogICAgICAgIHN3aXRjaCAobWVudUl0ZW1zW2ldWyJtZW51S2V5Il0pIHsNCiAgICAgICAgICAgIGNhc2UgInVzZXJzIjoNCiAgICAgICAgICAgIGNhc2UgImxvZ291dCI6DQogICAgICAgICAgICAgICAgaWYgKFNFUlZFUlsic2V0dGluZ3MiXVsiYXV0aGVudGljYXRpb24ud2ViIl0gPT0gdHJ1ZSkgew0KICAgICAgICAgICAgICAgICAgICBtZW51SXRlbXNbaV0uY3JlYXRlSXRlbSgpOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgIm1hcHBpbmciOg0KICAgICAgICAgICAgY2FzZSAieG1sdHYiOg0KICAgICAgICAgICAgICAgIGlmIChTRVJWRVJbImNsaWVudEluZm8iXVsiZXBnU291cmNlIl0gPT0gIlhFUEciKSB7DQogICAgICAgICAgICAgICAgICAgIG1lbnVJdGVtc1tpXS5jcmVhdGVJdGVtKCk7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgICAgICBtZW51SXRlbXNbaV0uY3JlYXRlSXRlbSgpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICB9DQogICAgfQ0KICAgIHJldHVybjsNCn0NCmZ1bmN0aW9uIG9wZW5UaGlzTWVudShlbGVtZW50KSB7DQogICAgbGV0IGlkID0gZWxlbWVudC5pZDsNCiAgICBsZXQgY29udGVudCA9IG5ldyBTaG93Q29udGVudChpZCk7DQogICAgY29udGVudC5zaG93KCk7DQogICAgY2FsY3VsYXRlV3JhcHBlckhlaWdodCgpOw0KICAgIHJldHVybjsNCn0NCmNsYXNzIFBvcHVwV2luZG93IHsNCiAgICBjb25zdHJ1Y3RvcigpIHsNCiAgICAgICAgdGhpcy5Eb2N1bWVudElEID0gInBvcHVwLWN1c3RvbSI7DQogICAgICAgIHRoaXMuSW50ZXJhY3Rpb25JRCA9ICJpbnRlcmFjdGlvbiI7DQogICAgICAgIHRoaXMuZG9jID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQodGhpcy5Eb2N1bWVudElEKTsNCiAgICB9DQogICAgY3JlYXRlVGl0bGUodGl0bGUpIHsNCiAgICAgICAgbGV0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgdGQuY2xhc3NOYW1lID0gImxlZnQiOw0KICAgICAgICB0ZC5pbm5lckhUTUwgPSB0aXRsZSArICI6IjsNCiAgICAgICAgcmV0dXJuIHRkOw0KICAgIH0NCiAgICBjcmVhdGVDb250ZW50KGVsZW1lbnQpIHsNCiAgICAgICAgbGV0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgdGQuYXBwZW5kQ2hpbGQoZWxlbWVudCk7DQogICAgICAgIHJldHVybiB0ZDsNCiAgICB9DQogICAgY3JlYXRlSW50ZXJhY3Rpb24oKSB7DQogICAgICAgIGxldCBkaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsNCiAgICAgICAgZGl2LnNldEF0dHJpYnV0ZSgiaWQiLCAicG9wdXAtaW50ZXJhY3Rpb24iKTsNCiAgICAgICAgZGl2LmNsYXNzTmFtZSA9ICJpbnRlcmFjdGlvbiI7DQogICAgICAgIHRoaXMuZG9jLmFwcGVuZENoaWxkKGRpdik7DQogICAgfQ0KfQ0KY2xhc3MgUG9wdXBDb250ZW50IGV4dGVuZHMgUG9wdXBXaW5kb3cgew0KICAgIGNvbnN0cnVjdG9yKCkgew0KICAgICAgICBzdXBlciguLi5hcmd1bWVudHMpOw0KICAgICAgICB0aGlzLnRhYmxlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEFCTEUiKTsNCiAgICB9DQogICAgY3JlYXRlSGVhZGxpbmUoaGVhZGxpbmUpIHsNCiAgICAgICAgdGhpcy5kb2MuaW5uZXJIVE1MID0gIiI7DQogICAgICAgIHZhciBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiSDMiKTsNCiAgICAgICAgZWxlbWVudC5pbm5lckhUTUwgPSBoZWFkbGluZS50b1VwcGVyQ2FzZSgpOw0KICAgICAgICB0aGlzLmRvYy5hcHBlbmRDaGlsZChlbGVtZW50KTsNCiAgICAgICAgLy8gQ3JlYXRlIHRhYmxlDQogICAgICAgIHRoaXMudGFibGUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJUQUJMRSIpOw0KICAgICAgICB0aGlzLmRvYy5hcHBlbmRDaGlsZCh0aGlzLnRhYmxlKTsNCiAgICB9DQogICAgYXBwZW5kUm93KHRpdGxlLCBlbGVtZW50KSB7DQogICAgICAgIGxldCB0ciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlRSIik7DQogICAgICAgIC8vIFRpdGxlDQogICAgICAgIGlmICh0aXRsZS5sZW5ndGggIT0gMCkgew0KICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQodGhpcy5jcmVhdGVUaXRsZSh0aXRsZSkpOw0KICAgICAgICB9DQogICAgICAgIC8vIENvbnRlbnQNCiAgICAgICAgdHIuYXBwZW5kQ2hpbGQodGhpcy5jcmVhdGVDb250ZW50KGVsZW1lbnQpKTsNCiAgICAgICAgdGhpcy50YWJsZS5hcHBlbmRDaGlsZCh0cik7DQogICAgfQ0KICAgIGNyZWF0ZUlucHV0KHR5cGUsIG5hbWUsIHZhbHVlKSB7DQogICAgICAgIGxldCBpbnB1dCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIklOUFVUIik7DQogICAgICAgIGlmICh2YWx1ZSA9PSB1bmRlZmluZWQpIHsNCiAgICAgICAgICAgIHZhbHVlID0gIiI7DQogICAgICAgIH0NCiAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJ0eXBlIiwgdHlwZSk7DQogICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgibmFtZSIsIG5hbWUpOw0KICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInZhbHVlIiwgdmFsdWUpOw0KICAgICAgICByZXR1cm4gaW5wdXQ7DQogICAgfQ0KICAgIGNyZWF0ZUNoZWNrYm94KG5hbWUpIHsNCiAgICAgICAgbGV0IGlucHV0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiSU5QVVQiKTsNCiAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJ0eXBlIiwgImNoZWNrYm94Iik7DQogICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgibmFtZSIsIG5hbWUpOw0KICAgICAgICByZXR1cm4gaW5wdXQ7DQogICAgfQ0KICAgIC8vIENyZWF0ZXMgYSBzZWxlY3Rpb24gb2YgbXVsdGlwbGUgb3B0aW9ucyB2YWx1ZXMgd2l0aCB0ZXh0IGRlc2NyaXB0aW9ucw0KICAgIGNyZWF0ZVNlbGVjdCh0ZXh0LCB2YWx1ZXMsIHNldCwgZGJLZXkpIHsNCiAgICAgICAgbGV0IHNlbGVjdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlNFTEVDVCIpOw0KICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJuYW1lIiwgZGJLZXkpOw0KICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRleHQubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgICAgIGxldCBvcHRpb24gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJPUFRJT04iKTsNCiAgICAgICAgICAgIG9wdGlvbi5zZXRBdHRyaWJ1dGUoInZhbHVlIiwgdmFsdWVzW2ldKTsNCiAgICAgICAgICAgIG9wdGlvbi5pbm5lclRleHQgPSB0ZXh0W2ldOw0KICAgICAgICAgICAgc2VsZWN0LmFwcGVuZENoaWxkKG9wdGlvbik7DQogICAgICAgIH0NCiAgICAgICAgaWYgKHNldCAhPSAiIikgew0KICAgICAgICAgICAgc2VsZWN0LnZhbHVlID0gc2V0Ow0KICAgICAgICB9DQogICAgICAgIGlmIChzZXQgPT0gdW5kZWZpbmVkKSB7DQogICAgICAgICAgICBzZWxlY3QudmFsdWUgPSB2YWx1ZXNbMF07DQogICAgICAgIH0NCiAgICAgICAgcmV0dXJuIHNlbGVjdDsNCiAgICB9DQogICAgc2VsZWN0T3B0aW9uKHNlbGVjdCwgdmFsdWUpIHsNCiAgICAgICAgLy9zZWxlY3Quc2VsZWN0ZWRPcHRpb25zID0gdmFsdWUNCiAgICAgICAgbGV0IHMgPSBzZWxlY3Q7DQogICAgICAgIHMub3B0aW9uc1tzLnNlbGVjdGVkSW5kZXhdLnZhbHVlID0gdmFsdWU7DQogICAgICAgIHJldHVybiBzZWxlY3Q7DQogICAgfQ0KICAgIGRlc2NyaXB0aW9uKHZhbHVlKSB7DQogICAgICAgIGxldCB0ciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlRSIik7DQogICAgICAgIGxldCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgIGxldCBzcGFuID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiUFJFIik7DQogICAgICAgIHNwYW4uaW5uZXJIVE1MID0gdmFsdWU7DQogICAgICAgIHRyLmFwcGVuZENoaWxkKHRkKTsNCiAgICAgICAgdHIuYXBwZW5kQ2hpbGQodGhpcy5jcmVhdGVDb250ZW50KHNwYW4pKTsNCiAgICAgICAgdGhpcy50YWJsZS5hcHBlbmRDaGlsZCh0cik7DQogICAgfQ0KICAgIC8vIEludGVyYWN0aW9uDQogICAgYWRkSW50ZXJhY3Rpb24oZWxlbWVudCkgew0KICAgICAgICBsZXQgaW50ZXJhY3Rpb24gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicG9wdXAtaW50ZXJhY3Rpb24iKTsNCiAgICAgICAgaW50ZXJhY3Rpb24uYXBwZW5kQ2hpbGQoZWxlbWVudCk7DQogICAgfQ0KfQ0KZnVuY3Rpb24gb3BlblBvcFVwKGRhdGFUeXBlLCBlbGVtZW50KSB7DQogICAgbGV0IGRhdGEgPSB7fTsNCiAgICBsZXQgaWQ7DQogICAgc3dpdGNoIChlbGVtZW50KSB7DQogICAgICAgIGNhc2UgdW5kZWZpbmVkOg0KICAgICAgICAgICAgc3dpdGNoIChkYXRhVHlwZSkgew0KICAgICAgICAgICAgICAgIGNhc2UgImdyb3VwLXRpdGxlIjoNCiAgICAgICAgICAgICAgICAgICAgaWYgKGlkID09IHVuZGVmaW5lZCkgew0KICAgICAgICAgICAgICAgICAgICAgICAgaWQgPSAtMTsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBkYXRhID0gZ2V0TG9jYWxEYXRhKCJmaWx0ZXIiLCBpZCk7DQogICAgICAgICAgICAgICAgICAgIGRhdGFbInR5cGUiXSA9ICJncm91cC10aXRsZSI7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgImN1c3RvbS1maWx0ZXIiOg0KICAgICAgICAgICAgICAgICAgICBpZiAoaWQgPT0gdW5kZWZpbmVkKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBpZCA9IC0xOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIGRhdGEgPSBnZXRMb2NhbERhdGEoImZpbHRlciIsIGlkKTsNCiAgICAgICAgICAgICAgICAgICAgZGF0YVsidHlwZSJdID0gImN1c3RvbS1maWx0ZXIiOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBkZWZhdWx0Og0KICAgICAgICAgICAgICAgICAgICBkYXRhWyJpZC5wcm92aWRlciJdID0gIi0iOw0KICAgICAgICAgICAgICAgICAgICBkYXRhWyJ0eXBlIl0gPSBkYXRhVHlwZTsNCiAgICAgICAgICAgICAgICAgICAgaWQgPSAiLSI7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICBpZCA9IGVsZW1lbnQuaWQ7DQogICAgICAgICAgICBkYXRhID0gZ2V0TG9jYWxEYXRhKGRhdGFUeXBlLCBpZCk7DQogICAgICAgICAgICBicmVhazsNCiAgICB9DQogICAgbGV0IGNvbnRlbnQgPSBuZXcgUG9wdXBDb250ZW50KCk7DQogICAgc3dpdGNoIChkYXRhVHlwZSkgew0KICAgICAgICBjYXNlICJwbGF5bGlzdCI6DQogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUhlYWRsaW5lKCJ7ey5wbGF5bGlzdC5wbGF5bGlzdFR5cGUudGl0bGV9fSIpOw0KICAgICAgICAgICAgLy8gVHlwZQ0KICAgICAgICAgICAgdmFyIHRleHQgPSBbIk0zVSIsICJIREhvbWVSdW4iXTsNCiAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBbImphdmFzY3JpcHQ6IG9wZW5Qb3BVcCgnbTN1JykiLCAiamF2YXNjcmlwdDogb3BlblBvcFVwKCdoZGhyJykiXTsNCiAgICAgICAgICAgIHZhciBzZWxlY3QgPSBjb250ZW50LmNyZWF0ZVNlbGVjdCh0ZXh0LCB2YWx1ZXMsICIiLCAidHlwZSIpOw0KICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgiaWQiLCAidHlwZSIpOw0KICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAnamF2YXNjcmlwdDogY2hhbmdlQnV0dG9uQWN0aW9uKHRoaXMsICJuZXh0IiwgIm9uY2xpY2siKScpOyAvLyBjaGFuZ2VCdXR0b25BY3Rpb24NCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5wbGF5bGlzdC50eXBlLnRpdGxlfX0iLCBzZWxlY3QpOw0KICAgICAgICAgICAgLy8gSW50ZXJhY3Rpb24NCiAgICAgICAgICAgIGNvbnRlbnQuY3JlYXRlSW50ZXJhY3Rpb24oKTsNCiAgICAgICAgICAgIC8vIEFib3J0DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAiY2FuY2VsIiwgInt7LmJ1dHRvbi5jYW5jZWx9fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IHNob3dFbGVtZW50KCJwb3B1cCIsIGZhbHNlKTsnKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgLy8gTmV4dA0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgIm5leHQiLCAie3suYnV0dG9uLm5leHR9fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgibTN1IiknKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgiaWQiLCAnbmV4dCcpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSAibTN1IjoNCiAgICAgICAgICAgIGNvbnRlbnQuY3JlYXRlSGVhZGxpbmUoZGF0YVR5cGUpOw0KICAgICAgICAgICAgLy8gTmFtZQ0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gIm5hbWUiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnBsYXlsaXN0Lm5hbWUucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnBsYXlsaXN0Lm5hbWUudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIERlc2NyaXB0aW9uDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAiZGVzY3JpcHRpb24iOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnBsYXlsaXN0LmRlc2NyaXB0aW9uLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5wbGF5bGlzdC5kZXNjcmlwdGlvbi50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgLy8gVVJMDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAiZmlsZS5zb3VyY2UiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnBsYXlsaXN0LmZpbGVNM1UucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnBsYXlsaXN0LmZpbGVNM1UudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIFR1bmVyDQogICAgICAgICAgICBpZiAoU0VSVkVSWyJzZXR0aW5ncyJdWyJidWZmZXIiXSAhPSAiLSIpIHsNCiAgICAgICAgICAgICAgICB2YXIgdGV4dCA9IFtdOw0KICAgICAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBbXTsNCiAgICAgICAgICAgICAgICBmb3IgKHZhciBpID0gMTsgaSA8PSAxMDA7IGkrKykgew0KICAgICAgICAgICAgICAgICAgICB0ZXh0LnB1c2goaS50b1N0cmluZygpKTsNCiAgICAgICAgICAgICAgICAgICAgdmFsdWVzLnB1c2goaS50b1N0cmluZygpKTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgdmFyIGRiS2V5ID0gInR1bmVyIjsNCiAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCBkYXRhW2RiS2V5XSwgZGJLZXkpOw0KICAgICAgICAgICAgICAgIHNlbGVjdC5zZXRBdHRyaWJ1dGUoIm9uZm9jdXMiLCAiamF2YXNjcmlwdDogcmV0dXJuOyIpOw0KICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5wbGF5bGlzdC50dW5lci50aXRsZX19Iiwgc2VsZWN0KTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgICAgIHZhciBkYktleSA9ICJ0dW5lciI7DQogICAgICAgICAgICAgICAgaWYgKGRhdGFbZGJLZXldID09IHVuZGVmaW5lZCkgew0KICAgICAgICAgICAgICAgICAgICBkYXRhW2RiS2V5XSA9IDE7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicmVhZG9ubHkiLCAidHJ1ZSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LmNsYXNzTmFtZSA9ICJub3RBdmFpbGFibGUiOw0KICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5wbGF5bGlzdC50dW5lci50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgY29udGVudC5kZXNjcmlwdGlvbigie3sucGxheWxpc3QudHVuZXIuZGVzY3JpcHRpb259fSIpOw0KICAgICAgICAgICAgLy8gSW50ZXJhdGlvbg0KICAgICAgICAgICAgY29udGVudC5jcmVhdGVJbnRlcmFjdGlvbigpOw0KICAgICAgICAgICAgLy8gRGVsZXRlDQogICAgICAgICAgICBpZiAoZGF0YVsiaWQucHJvdmlkZXIiXSAhPSAiLSIpIHsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAiZGVsZXRlIiwgInt7LmJ1dHRvbi5kZWxldGV9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LmNsYXNzTmFtZSA9ICJkZWxldGUiOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBzYXZlUG9wdXBEYXRhKCJtM3UiLCAiJyArIGlkICsgJyIsIHRydWUsIDApJyk7DQogICAgICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAiYmFjayIsICJ7ey5idXR0b24uYmFja319Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgicGxheWxpc3QiKScpOw0KICAgICAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgLy8gQWJvcnQNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJjYW5jZWwiLCAie3suYnV0dG9uLmNhbmNlbH19Iik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogc2hvd0VsZW1lbnQoInBvcHVwIiwgZmFsc2UpOycpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICAvLyBVcGRhdGUNCiAgICAgICAgICAgIGlmIChkYXRhWyJpZC5wcm92aWRlciJdICE9ICItIikgew0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJ1cGRhdGUiLCAie3suYnV0dG9uLnVwZGF0ZX19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoIm0zdSIsICInICsgaWQgKyAnIiwgZmFsc2UsIDEpJyk7DQogICAgICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICAvLyBTYXZlDQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAic2F2ZSIsICJ7ey5idXR0b24uc2F2ZX19Iik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogc2F2ZVBvcHVwRGF0YSgibTN1IiwgIicgKyBpZCArICciLCBmYWxzZSwgMCknKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGNhc2UgImhkaHIiOg0KICAgICAgICAgICAgY29udGVudC5jcmVhdGVIZWFkbGluZShkYXRhVHlwZSk7DQogICAgICAgICAgICAvLyBOYW1lDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAibmFtZSI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3sucGxheWxpc3QubmFtZS5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sucGxheWxpc3QubmFtZS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgLy8gRGVzY3JpcHRpb24NCiAgICAgICAgICAgIHZhciBkYktleSA9ICJkZXNjcmlwdGlvbiI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3sucGxheWxpc3QuZGVzY3JpcHRpb24ucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnBsYXlsaXN0LmRlc2NyaXB0aW9uLnBsYWNlaG9sZGVyfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBVUkwNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJmaWxlLnNvdXJjZSI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3sucGxheWxpc3QuZmlsZUhESFIucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnBsYXlsaXN0LmZpbGVIREhSLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBUdW5lcg0KICAgICAgICAgICAgaWYgKFNFUlZFUlsic2V0dGluZ3MiXVsiYnVmZmVyIl0gIT0gIi0iKSB7DQogICAgICAgICAgICAgICAgdmFyIHRleHQgPSBbXTsNCiAgICAgICAgICAgICAgICB2YXIgdmFsdWVzID0gW107DQogICAgICAgICAgICAgICAgZm9yICh2YXIgaSA9IDE7IGkgPD0gMTAwOyBpKyspIHsNCiAgICAgICAgICAgICAgICAgICAgdGV4dC5wdXNoKGkudG9TdHJpbmcoKSk7DQogICAgICAgICAgICAgICAgICAgIHZhbHVlcy5wdXNoKGkudG9TdHJpbmcoKSk7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIHZhciBkYktleSA9ICJ0dW5lciI7DQogICAgICAgICAgICAgICAgdmFyIHNlbGVjdCA9IGNvbnRlbnQuY3JlYXRlU2VsZWN0KHRleHQsIHZhbHVlcywgZGF0YVtkYktleV0sIGRiS2V5KTsNCiAgICAgICAgICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJvbmZvY3VzIiwgImphdmFzY3JpcHQ6IHJldHVybjsiKTsNCiAgICAgICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sucGxheWxpc3QudHVuZXIudGl0bGV9fSIsIHNlbGVjdCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICB2YXIgZGJLZXkgPSAidHVuZXIiOw0KICAgICAgICAgICAgICAgIGlmIChkYXRhW2RiS2V5XSA9PSB1bmRlZmluZWQpIHsNCiAgICAgICAgICAgICAgICAgICAgZGF0YVtkYktleV0gPSAxOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInJlYWRvbmx5IiwgInRydWUiKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5jbGFzc05hbWUgPSAibm90QXZhaWxhYmxlIjsNCiAgICAgICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sucGxheWxpc3QudHVuZXIudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGNvbnRlbnQuZGVzY3JpcHRpb24oInt7LnBsYXlsaXN0LnR1bmVyLmRlc2NyaXB0aW9ufX0iKTsNCiAgICAgICAgICAgIC8vIEludGVyYWN0aW9uDQogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUludGVyYWN0aW9uKCk7DQogICAgICAgICAgICAvLyBEZWxldGUNCiAgICAgICAgICAgIGlmIChkYXRhWyJpZC5wcm92aWRlciJdICE9ICItIikgew0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJkZWxldGUiLCAie3suYnV0dG9uLmRlbGV0ZX19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoImhkaHIiLCAiJyArIGlkICsgJyIsIHRydWUsIDApJyk7DQogICAgICAgICAgICAgICAgaW5wdXQuY2xhc3NOYW1lID0gImRlbGV0ZSI7DQogICAgICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAiYmFjayIsICJ7ey5idXR0b24uYmFja319Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgicGxheWxpc3QiKScpOw0KICAgICAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgLy8gQWJvcnQNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJjYW5jZWwiLCAie3suYnV0dG9uLmNhbmNlbH19Iik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogc2hvd0VsZW1lbnQoInBvcHVwIiwgZmFsc2UpOycpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICAvLyBVcGRhdGUNCiAgICAgICAgICAgIGlmIChkYXRhWyJpZC5wcm92aWRlciJdICE9ICItIikgew0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJ1cGRhdGUiLCAie3suYnV0dG9uLnVwZGF0ZX19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoImhkaHIiLCAiJyArIGlkICsgJyIsIGZhbHNlLCAxKScpOw0KICAgICAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgLy8gU2F2ZQ0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgInNhdmUiLCAie3suYnV0dG9uLnNhdmV9fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoImhkaHIiLCAiJyArIGlkICsgJyIsIGZhbHNlLCAwKScpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSAiZmlsdGVyIjoNCiAgICAgICAgICAgIGNvbnRlbnQuY3JlYXRlSGVhZGxpbmUoZGF0YVR5cGUpOw0KICAgICAgICAgICAgLy8gVHlwZQ0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gInR5cGUiOw0KICAgICAgICAgICAgdmFyIHRleHQgPSBbIk0zVTogIiArICJ7ey5maWx0ZXIudHlwZS5ncm91cFRpdGxlfX0iLCAieFRlVmU6ICIgKyAie3suZmlsdGVyLnR5cGUuY3VzdG9tRmlsdGVyfX0iXTsNCiAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBbImphdmFzY3JpcHQ6IG9wZW5Qb3BVcCgnZ3JvdXAtdGl0bGUnKSIsICJqYXZhc2NyaXB0OiBvcGVuUG9wVXAoJ2N1c3RvbS1maWx0ZXInKSJdOw0KICAgICAgICAgICAgdmFyIHNlbGVjdCA9IGNvbnRlbnQuY3JlYXRlU2VsZWN0KHRleHQsIHZhbHVlcywgImphdmFzY3JpcHQ6IG9wZW5Qb3BVcCgnZ3JvdXAtdGl0bGUnKSIsIGRiS2V5KTsNCiAgICAgICAgICAgIHNlbGVjdC5zZXRBdHRyaWJ1dGUoImlkIiwgaWQpOw0KICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAnamF2YXNjcmlwdDogY2hhbmdlQnV0dG9uQWN0aW9uKHRoaXMsICJuZXh0IiwgIm9uY2xpY2siKTsnKTsgLy8gY2hhbmdlQnV0dG9uQWN0aW9uDQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3suZmlsdGVyLnR5cGUudGl0bGV9fSIsIHNlbGVjdCk7DQogICAgICAgICAgICAvLyBJbnRlcmFjdGlvbg0KICAgICAgICAgICAgY29udGVudC5jcmVhdGVJbnRlcmFjdGlvbigpOw0KICAgICAgICAgICAgLy8gQWJvcnQNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJjYW5jZWwiLCAie3suYnV0dG9uLmNhbmNlbH19Iik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogc2hvd0VsZW1lbnQoInBvcHVwIiwgZmFsc2UpOycpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICAvLyBOZXh0DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAibmV4dCIsICJ7ey5idXR0b24ubmV4dH19Iik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJncm91cC10aXRsZSIpJyk7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoImlkIiwgJ25leHQnKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGNhc2UgImN1c3RvbS1maWx0ZXIiOg0KICAgICAgICBjYXNlICJncm91cC10aXRsZSI6DQogICAgICAgICAgICBzd2l0Y2ggKGRhdGFUeXBlKSB7DQogICAgICAgICAgICAgICAgY2FzZSAiY3VzdG9tLWZpbHRlciI6DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuY3JlYXRlSGVhZGxpbmUoInt7LmZpbHRlci5jdXN0b219fSIgKyAiIEZpbHRlciIpOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBjYXNlICJncm91cC10aXRsZSI6DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuY3JlYXRlSGVhZGxpbmUoInt7LmZpbHRlci5ncm91cH19IiArICIgRmlsdGVyIik7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgLy8gTmFtZSAgICAgIA0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gIm5hbWUiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LmZpbHRlci5uYW1lLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5maWx0ZXIubmFtZS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgLy8gRGVzY3JpcHRpb24NCiAgICAgICAgICAgIHZhciBkYktleSA9ICJkZXNjcmlwdGlvbiI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3suZmlsdGVyLmRlc2NyaXB0aW9uLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5maWx0ZXIuZGVzY3JpcHRpb24udGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIFR5cGUNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJ0eXBlIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImhpZGRlbiIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygiIiwgaW5wdXQpOw0KICAgICAgICAgICAgdmFyIGZpbHRlclR5cGUgPSBkYXRhW2RiS2V5XTsNCiAgICAgICAgICAgIHN3aXRjaCAoZmlsdGVyVHlwZSkgew0KICAgICAgICAgICAgICAgIGNhc2UgImN1c3RvbS1maWx0ZXIiOg0KICAgICAgICAgICAgICAgICAgICAvLyBDYXNlIHNlbnNpdGl2ZQ0KICAgICAgICAgICAgICAgICAgICB2YXIgZGJLZXkgPSAiY2FzZVNlbnNpdGl2ZSI7DQogICAgICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goZGJLZXkpOw0KICAgICAgICAgICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YVtkYktleV07DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5maWx0ZXIuY2FzZVNlbnNpdGl2ZS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgICAgICAgICAvLyBGaWx0ZXIgUnVsZSAoQ3VzdG9tKQ0KICAgICAgICAgICAgICAgICAgICB2YXIgZGJLZXkgPSAiZmlsdGVyIjsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3suZmlsdGVyLmZpbHRlclJ1bGUucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3suZmlsdGVyLmZpbHRlclJ1bGUudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAiZ3JvdXAtdGl0bGUiOg0KICAgICAgICAgICAgICAgICAgICAvL2FsZXJ0KGRiS2V5ICsgIiAiICsgZmlsdGVyVHlwZSkNCiAgICAgICAgICAgICAgICAgICAgLy8gRmlsdGVyIGJhc2VkIG9uIHRoZSBncm91cHMgaW4gdGhlIE0zVQ0KICAgICAgICAgICAgICAgICAgICB2YXIgZGJLZXkgPSAiZmlsdGVyIjsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGdyb3Vwc00zVSA9IGdldExvY2FsRGF0YSgibTN1R3JvdXBzIiwgIiIpOw0KICAgICAgICAgICAgICAgICAgICB2YXIgdGV4dCA9IGdyb3Vwc00zVVsidGV4dCJdOw0KICAgICAgICAgICAgICAgICAgICB2YXIgdmFsdWVzID0gZ3JvdXBzTTNVWyJ2YWx1ZSJdOw0KICAgICAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCBkYXRhW2RiS2V5XSwgZGJLZXkpOw0KICAgICAgICAgICAgICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3suZmlsdGVyLmZpbHRlckdyb3VwLnRpdGxlfX0iLCBzZWxlY3QpOw0KICAgICAgICAgICAgICAgICAgICBjb250ZW50LmRlc2NyaXB0aW9uKCJ7ey5maWx0ZXIuZmlsdGVyR3JvdXAuZGVzY3JpcHRpb259fSIpOw0KICAgICAgICAgICAgICAgICAgICAvLyBDYXNlIHNlbnNldGl2ZQ0KICAgICAgICAgICAgICAgICAgICB2YXIgZGJLZXkgPSAiY2FzZVNlbnNpdGl2ZSI7DQogICAgICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goZGJLZXkpOw0KICAgICAgICAgICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YVtkYktleV07DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5maWx0ZXIuY2FzZVNlbnNpdGl2ZS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgICAgICAgICB2YXIgZGJLZXkgPSAiaW5jbHVkZSI7DQogICAgICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LmZpbHRlci5pbmNsdWRlLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LmZpbHRlci5pbmNsdWRlLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuZGVzY3JpcHRpb24oInt7LmZpbHRlci5pbmNsdWRlLmRlc2NyaXB0aW9ufX0iKTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGRiS2V5ID0gImV4Y2x1ZGUiOw0KICAgICAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5maWx0ZXIuZXhjbHVkZS5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5maWx0ZXIuZXhjbHVkZS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgICAgICAgICBjb250ZW50LmRlc2NyaXB0aW9uKCJ7ey5maWx0ZXIuZXhjbHVkZS5kZXNjcmlwdGlvbn19Iik7DQogICAgICAgICAgICAgICAgICAgIC8vIFByZXNlcnZlIE0zVSBQbGF5bGlzdCBDaGFubmVsIE1hcHBpbmcNCiAgICAgICAgICAgICAgICAgICAgdmFyIGRiS2V5ID0gInByZXNlcnZlTWFwcGluZyI7DQogICAgICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goZGJLZXkpOw0KICAgICAgICAgICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YVtkYktleV07DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5maWx0ZXIucHJlc2VydmVNYXBwaW5nLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAgICAgICAgIC8vIFN0YXJ0aW5nIENoYW5uZWwgTnVtYmVyIE1hcHBpbmcNCiAgICAgICAgICAgICAgICAgICAgdmFyIGRiS2V5ID0gInN0YXJ0aW5nQ2hhbm5lbCI7DQogICAgICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LmZpbHRlci5zdGFydGluZ0NoYW5uZWwucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3suZmlsdGVyLnN0YXJ0aW5nQ2hhbm5lbC50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgICAgICAgICAvLyBGaWxsIE1pc3NpbmcgRVBHIERhdGENCiAgICAgICAgICAgICAgICAgICAgLy8gVGhlIGZvbGxvd2luZyBjb2RlIG9ubHkgd29ya3Mgd2hlbiB4VGVWZSBEdW1teSBhbHJlYWR5IGV4aXN0cw0KICAgICAgICAgICAgICAgICAgICAvLyB2YXIgZGJLZXk6c3RyaW5nID0gImRlZmF1bHRNaXNzaW5nRVBHIg0KICAgICAgICAgICAgICAgICAgICAvLyB2YXIgeG1sdHY6WE1MVFZGaWxlID0gbmV3IFhNTFRWRmlsZSgpDQogICAgICAgICAgICAgICAgICAgIC8vIHZhciBzZWxlY3QgPSB4bWx0di5nZXRQcm9ncmFtcygieFRlVmUgRHVtbXkiLCBkYXRhW2RiS2V5XSkNCiAgICAgICAgICAgICAgICAgICAgLy8gc2VsZWN0LnNldEF0dHJpYnV0ZSgibmFtZSIsIGRiS2V5KQ0KICAgICAgICAgICAgICAgICAgICAvLyBzZWxlY3Quc2V0QXR0cmlidXRlKCJpZCIsICJwb3B1cC1taXNzaW5nLWVwZyIpDQogICAgICAgICAgICAgICAgICAgIC8vIFRoZSB3b3JrYXJvdW5kIGlzIGN1cnJlbnRseSB0byBoYXJkIGNvZGUgdGhlIHhUZVZlIER1bW15IGRhdGENCiAgICAgICAgICAgICAgICAgICAgdmFyIGRiS2V5ID0gImRlZmF1bHRNaXNzaW5nRVBHIjsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGxpc3RPcHRpb25zID0geyAidGV4dCI6IFsiLSIsICIzMCBNaW51dGVzICgzMF9NaW51dGVzKSIsICI2MCBNaW51dGVzICg2MF9NaW51dGVzKSIsICI5MCBNaW51dGVzICg5MF9NaW51dGVzKSIsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgIjEyMCBNaW51dGVzICgxMjBfTWludXRlcykiLCAiMTgwIE1pbnV0ZXMgKDMwX01pbnV0ZXMpIiwgIjI0MCBNaW51dGVzICgzMF9NaW51dGVzKSIsICIzNjAgTWludXRlcyAoMzBfTWludXRlcykiXSwNCiAgICAgICAgICAgICAgICAgICAgICAgICJ2YWx1ZSI6IFsiLSIsICIzMF9NaW51dGVzIiwgIjYwX01pbnV0ZXMiLCAiOTBfTWludXRlcyIsICIxMjBfTWludXRlcyIsICIxODBfTWludXRlcyIsICIyNDBfTWludXRlcyIsICIzNjBfTWludXRlcyIsXSB9Ow0KICAgICAgICAgICAgICAgICAgICB2YXIgdGV4dCA9IGxpc3RPcHRpb25zWyJ0ZXh0Il07DQogICAgICAgICAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBsaXN0T3B0aW9uc1sidmFsdWUiXTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHNlbGVjdCA9IGNvbnRlbnQuY3JlYXRlU2VsZWN0KHRleHQsIHZhbHVlcywgZGF0YVtkYktleV0sIGRiS2V5KTsNCiAgICAgICAgICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LmZpbHRlci5kZWZhdWx0TWlzc2luZ0VQRy50aXRsZX19Iiwgc2VsZWN0KTsNCiAgICAgICAgICAgICAgICAgICAgY29udGVudC5kZXNjcmlwdGlvbigie3suZmlsdGVyLmRlZmF1bHRNaXNzaW5nRVBHLmRlc2NyaXB0aW9ufX0iKTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICB9DQogICAgICAgICAgICAvLyBJbnRlcmFjdGlvbg0KICAgICAgICAgICAgY29udGVudC5jcmVhdGVJbnRlcmFjdGlvbigpOw0KICAgICAgICAgICAgLy8gRGVsZXRlDQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAiZGVsZXRlIiwgInt7LmJ1dHRvbi5kZWxldGV9fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoImZpbHRlciIsICInICsgaWQgKyAnIiwgdHJ1ZSwgMCknKTsNCiAgICAgICAgICAgIGlucHV0LmNsYXNzTmFtZSA9ICJkZWxldGUiOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICAvLyBBYm9ydA0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImNhbmNlbCIsICJ7ey5idXR0b24uY2FuY2VsfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBzaG93RWxlbWVudCgicG9wdXAiLCBmYWxzZSk7Jyk7DQogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIC8vIFNhdmUNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJzYXZlIiwgInt7LmJ1dHRvbi5zYXZlfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBzYXZlUG9wdXBEYXRhKCJmaWx0ZXIiLCAiJyArIGlkICsgJyIsIGZhbHNlLCAwKScpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSAieG1sdHYiOg0KICAgICAgICAgICAgY29udGVudC5jcmVhdGVIZWFkbGluZShkYXRhVHlwZSk7DQogICAgICAgICAgICAvLyBOYW1lDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAibmFtZSI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3sueG1sdHYubmFtZS5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sueG1sdHYubmFtZS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgLy8gRGVzY3JpcHRpb24NCiAgICAgICAgICAgIHZhciBkYktleSA9ICJkZXNjcmlwdGlvbiI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3sueG1sdHYuZGVzY3JpcHRpb24ucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnhtbHR2LmRlc2NyaXB0aW9uLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBVUkwNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJmaWxlLnNvdXJjZSI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3sueG1sdHYuZmlsZVhNTFRWLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey54bWx0di5maWxlWE1MVFYudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIEludGVyYWN0aW9uDQogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUludGVyYWN0aW9uKCk7DQogICAgICAgICAgICAvLyBEZWxldGUNCiAgICAgICAgICAgIGlmIChkYXRhWyJpZC5wcm92aWRlciJdICE9ICItIikgew0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJkZWxldGUiLCAie3suYnV0dG9uLmRlbGV0ZX19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoInhtbHR2IiwgIicgKyBpZCArICciLCB0cnVlLCAwKScpOw0KICAgICAgICAgICAgICAgIGlucHV0LmNsYXNzTmFtZSA9ICJkZWxldGUiOw0KICAgICAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgLy8gQWJvcnQNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJjYW5jZWwiLCAie3suYnV0dG9uLmNhbmNlbH19Iik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogc2hvd0VsZW1lbnQoInBvcHVwIiwgZmFsc2UpOycpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICAvLyBVcGRhdGUNCiAgICAgICAgICAgIGlmIChkYXRhWyJpZC5wcm92aWRlciJdICE9ICItIikgew0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJ1cGRhdGUiLCAie3suYnV0dG9uLnVwZGF0ZX19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoInhtbHR2IiwgIicgKyBpZCArICciLCBmYWxzZSwgMSknKTsNCiAgICAgICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIC8vIFNhdmUNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJzYXZlIiwgInt7LmJ1dHRvbi5zYXZlfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBzYXZlUG9wdXBEYXRhKCJ4bWx0diIsICInICsgaWQgKyAnIiwgZmFsc2UsIDApJyk7DQogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJ1c2VycyI6DQogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUhlYWRsaW5lKCJ7ey5tYWluTWVudS5pdGVtLnVzZXJzfX0iKTsNCiAgICAgICAgICAgIC8vIFVzZXIgbmFtZQ0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gInVzZXJuYW1lIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey51c2Vycy51c2VybmFtZS5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sudXNlcnMudXNlcm5hbWUudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIE5ldyBQYXJzc3dvcmQNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJwYXNzd29yZCI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJwYXNzd29yZCIsIGRiS2V5LCAiIik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnVzZXJzLnBhc3N3b3JkLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey51c2Vycy5wYXNzd29yZC50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgLy8gQ29uZmlybWF0aW9uDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAiY29uZmlybSI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJwYXNzd29yZCIsIGRiS2V5LCAiIik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnVzZXJzLmNvbmZpcm0ucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnVzZXJzLmNvbmZpcm0udGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIEF1dGhlbnRpY2F0aW9uIFdFQg0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gImF1dGhlbnRpY2F0aW9uLndlYiI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KGRiS2V5KTsNCiAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhW2RiS2V5XTsNCiAgICAgICAgICAgIGlmIChkYXRhWyJkZWZhdWx0VXNlciJdID09IHRydWUpIHsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAiamF2YXNjcmlwdDogcmV0dXJuIGZhbHNlIik7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sudXNlcnMud2ViLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBBdXRoZW50aWNhdGlvbiBQTVMNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJhdXRoZW50aWNhdGlvbi5wbXMiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChkYktleSk7DQogICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YVtkYktleV07DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sudXNlcnMucG1zLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBBdXRoZW50aWNhdGlvbiBNM1UNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJhdXRoZW50aWNhdGlvbi5tM3UiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChkYktleSk7DQogICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YVtkYktleV07DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sudXNlcnMubTN1LnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBBdXRoZW50aWNhdGlvbiBYTUwNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJhdXRoZW50aWNhdGlvbi54bWwiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChkYktleSk7DQogICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YVtkYktleV07DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sudXNlcnMueG1sLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBBdXRoZW50aWNhdGlvbiBBUEkNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJhdXRoZW50aWNhdGlvbi5hcGkiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChkYktleSk7DQogICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YVtkYktleV07DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sudXNlcnMuYXBpLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBJbnRlcmFjdGlvbg0KICAgICAgICAgICAgY29udGVudC5jcmVhdGVJbnRlcmFjdGlvbigpOw0KICAgICAgICAgICAgLy8gRGVsZXRlDQogICAgICAgICAgICBpZiAoZGF0YVsiZGVmYXVsdFVzZXIiXSAhPSB0cnVlICYmIGlkICE9ICItIikgew0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJkZWxldGUiLCAie3suYnV0dG9uLmRlbGV0ZX19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuY2xhc3NOYW1lID0gImRlbGV0ZSI7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoIicgKyBkYXRhVHlwZSArICciLCAiJyArIGlkICsgJyIsIHRydWUsIDApJyk7DQogICAgICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICAvLyBBYm9ydA0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImNhbmNlbCIsICJ7ey5idXR0b24uY2FuY2VsfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBzaG93RWxlbWVudCgicG9wdXAiLCBmYWxzZSk7Jyk7DQogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIC8vIFNhdmUNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJzYXZlIiwgInt7LmJ1dHRvbi5zYXZlfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBzYXZlUG9wdXBEYXRhKCInICsgZGF0YVR5cGUgKyAnIiwgIicgKyBpZCArICciLCAiZmFsc2UiKTsnKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGNhc2UgIm1hcHBpbmciOg0KICAgICAgICAgICAgY29udGVudC5jcmVhdGVIZWFkbGluZSgie3subWFpbk1lbnUuaXRlbS5tYXBwaW5nfX0iKTsNCiAgICAgICAgICAgIC8vIEFjdGl2ZQ0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gIngtYWN0aXZlIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goZGJLZXkpOw0KICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGFbZGJLZXldOw0KICAgICAgICAgICAgaW5wdXQuaWQgPSAiYWN0aXZlIjsNCiAgICAgICAgICAgIC8vaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpDQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRvZ2dsZUNoYW5uZWxTdGF0dXMoJyIgKyBpZCArICInLCB0aGlzKSIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7Lm1hcHBpbmcuYWN0aXZlLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBDaGFubmVsIG5hbWUNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJ4LW5hbWUiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICBpZiAoQlVMS19FRElUID09IHRydWUpIHsNCiAgICAgICAgICAgICAgICBpbnB1dC5zdHlsZS5ib3JkZXIgPSAic29saWQgMXB4IHJlZCI7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJyZWFkb25seSIsICJ0cnVlIik7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3subWFwcGluZy5jaGFubmVsTmFtZS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgY29udGVudC5kZXNjcmlwdGlvbihkYXRhWyJuYW1lIl0pOw0KICAgICAgICAgICAgLy8gRGVzY3JpcHRpb24NCiAgICAgICAgICAgIHZhciBkYktleSA9ICJ4LWRlc2NyaXB0aW9uIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5tYXBwaW5nLmRlc2NyaXB0aW9uLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5tYXBwaW5nLmRlc2NyaXB0aW9uLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBVcGRhdGUgdGhlIGNoYW5uZWwgbmFtZQ0KICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoIl91dWlkLmtleSIpKSB7DQogICAgICAgICAgICAgICAgaWYgKGRhdGFbIl91dWlkLmtleSJdICE9ICIiKSB7DQogICAgICAgICAgICAgICAgICAgIHZhciBkYktleSA9ICJ4LXVwZGF0ZS1jaGFubmVsLW5hbWUiOw0KICAgICAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KGRiS2V5KTsNCiAgICAgICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YVtkYktleV07DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5tYXBwaW5nLnVwZGF0ZUNoYW5uZWxOYW1lLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgLy8gTG9nbyBVUkwgKENoYW5uZWwpIA0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gInR2Zy1sb2dvIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJpZCIsICJjaGFubmVsLWljb24iKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5tYXBwaW5nLmNoYW5uZWxMb2dvLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBDaGFubmVsIGxvZ28gdXBkYXRlDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAieC11cGRhdGUtY2hhbm5lbC1pY29uIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goZGJLZXkpOw0KICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGFbZGJLZXldOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJpZCIsICJ1cGRhdGUtaWNvbiIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJzsgY2hhbmdlQ2hhbm5lbExvZ28oJyIgKyBpZCArICInKTsiKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5tYXBwaW5nLnVwZGF0ZUNoYW5uZWxMb2dvLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBFeHBhbmQgRVBHIGNhdGVnb3J5DQogICAgICAgICAgICB2YXIgZGJLZXkgPSAieC1jYXRlZ29yeSI7DQogICAgICAgICAgICB2YXIgdGV4dCA9IFsiLSIsICJLaWRzIChFbWJ5IG9ubHkpIiwgIk5ld3MiLCAiTW92aWUiLCAiU2VyaWVzIiwgIlNwb3J0cyJdOw0KICAgICAgICAgICAgdmFyIHZhbHVlcyA9IFsiIiwgIktpZHMiLCAiTmV3cyIsICJNb3ZpZSIsICJTZXJpZXMiLCAiU3BvcnRzIl07DQogICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCBkYXRhW2RiS2V5XSwgZGJLZXkpOw0KICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5tYXBwaW5nLmVwZ0NhdGVnb3J5LnRpdGxlfX0iLCBzZWxlY3QpOw0KICAgICAgICAgICAgLy8gTTNVIGdyb3VwIHRpdGxlDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAieC1ncm91cC10aXRsZSI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5tYXBwaW5nLm0zdUdyb3VwVGl0bGUudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIGlmIChkYXRhWyJncm91cC10aXRsZSJdICE9IHVuZGVmaW5lZCkgew0KICAgICAgICAgICAgICAgIGNvbnRlbnQuZGVzY3JpcHRpb24oZGF0YVsiZ3JvdXAtdGl0bGUiXSk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICAvLyBYTUxUViBmaWxlDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAieC14bWx0di1maWxlIjsNCiAgICAgICAgICAgIHZhciB4bWxGaWxlID0gZGF0YVtkYktleV07DQogICAgICAgICAgICB2YXIgeG1sdHYgPSBuZXcgWE1MVFZGaWxlKCk7DQogICAgICAgICAgICB2YXIgc2VsZWN0ID0geG1sdHYuZ2V0RmlsZXMoZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgibmFtZSIsIGRiS2V5KTsNCiAgICAgICAgICAgIHNlbGVjdC5zZXRBdHRyaWJ1dGUoImlkIiwgInBvcHVwLXhtbHR2Iik7DQogICAgICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJzsgc2V0WG1sdHZDaGFubmVsKCciICsgaWQgKyAiJyx0aGlzKTsiKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5tYXBwaW5nLnhtbHR2RmlsZS50aXRsZX19Iiwgc2VsZWN0KTsNCiAgICAgICAgICAgIHZhciBmaWxlID0gZGF0YVtkYktleV07DQogICAgICAgICAgICAvLyBYTUxUViBNYXBwaW5nDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAieC1tYXBwaW5nIjsNCiAgICAgICAgICAgIHZhciB4bWx0diA9IG5ldyBYTUxUVkZpbGUoKTsNCiAgICAgICAgICAgIHZhciBzZWxlY3QgPSB4bWx0di5nZXRQcm9ncmFtcyhmaWxlLCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJuYW1lIiwgZGJLZXkpOw0KICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgiaWQiLCAicG9wdXAtbWFwcGluZyIpOw0KICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCc7IGNoZWNrWG1sdHZDaGFubmVsKCciICsgaWQgKyAiJyx0aGlzLCciICsgeG1sRmlsZSArICInKTsiKTsNCiAgICAgICAgICAgIHNvcnRTZWxlY3Qoc2VsZWN0KTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5tYXBwaW5nLnhtbHR2Q2hhbm5lbC50aXRsZX19Iiwgc2VsZWN0KTsNCiAgICAgICAgICAgIC8vIFRpbWVzaGlmdA0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gIngtdGltZXNoaWZ0IjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5tYXBwaW5nLnRpbWVzaGlmdC5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoImlkIiwgInRpbWVzaGlmdCIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7Lm1hcHBpbmcudGltZXNoaWZ0LnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBJbnRlcmFjdGlvbg0KICAgICAgICAgICAgY29udGVudC5jcmVhdGVJbnRlcmFjdGlvbigpOw0KICAgICAgICAgICAgLy8gVXBsb2FkIGxvZ28NCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJjYW5jZWwiLCAie3suYnV0dG9uLnVwbG9hZExvZ299fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IHVwbG9hZExvZ28oKTsnKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgLy8gQWJvcnQNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJjYW5jZWwiLCAie3suYnV0dG9uLmNhbmNlbH19Iik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogc2hvd0VsZW1lbnQoInBvcHVwIiwgZmFsc2UpOycpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICAvLyBGaW5pc2hlZA0KICAgICAgICAgICAgdmFyIGlkcyA9IFtdOw0KICAgICAgICAgICAgaWRzID0gZ2V0QWxsU2VsZWN0ZWRDaGFubmVscygpOw0KICAgICAgICAgICAgaWYgKGlkcy5sZW5ndGggPT0gMCkgew0KICAgICAgICAgICAgICAgIGlkcy5wdXNoKGlkKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJzYXZlIiwgInt7LmJ1dHRvbi5kb25lfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBkb25lUG9wdXBEYXRhKCInICsgZGF0YVR5cGUgKyAnIiwgIicgKyBpZHMgKyAnIiwgImZhbHNlIik7Jyk7DQogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBkZWZhdWx0Og0KICAgICAgICAgICAgYnJlYWs7DQogICAgfQ0KICAgIHNob3dQb3BVcEVsZW1lbnQoJ3BvcHVwLWN1c3RvbScpOw0KfQ0KY2xhc3MgWE1MVFZGaWxlIHsNCiAgICBnZXRGaWxlcyhzZXQpIHsNCiAgICAgICAgbGV0IGZpbGVJRHMgPSBnZXRPYmpLZXlzKFNFUlZFUlsieGVwZyJdWyJ4bWx0dk1hcCJdKTsNCiAgICAgICAgbGV0IHZhbHVlcyA9IG5ldyBBcnJheSgiLSIpOw0KICAgICAgICBsZXQgdGV4dCA9IG5ldyBBcnJheSgiLSIpOw0KICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGZpbGVJRHMubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgICAgIGlmIChmaWxlSURzW2ldICE9ICJ4VGVWZSBEdW1teSIpIHsNCiAgICAgICAgICAgICAgICB2YWx1ZXMucHVzaChnZXRWYWx1ZUZyb21Qcm92aWRlckZpbGUoZmlsZUlEc1tpXSwgInhtbHR2IiwgImZpbGUueHRldmUiKSk7DQogICAgICAgICAgICAgICAgdGV4dC5wdXNoKGdldFZhbHVlRnJvbVByb3ZpZGVyRmlsZShmaWxlSURzW2ldLCAieG1sdHYiLCAibmFtZSIpKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgICAgIHZhbHVlcy5wdXNoKGZpbGVJRHNbaV0pOw0KICAgICAgICAgICAgICAgIHRleHQucHVzaChmaWxlSURzW2ldKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KICAgICAgICBsZXQgc2VsZWN0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiU0VMRUNUIik7DQogICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGV4dC5sZW5ndGg7IGkrKykgew0KICAgICAgICAgICAgdmFyIG9wdGlvbiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIk9QVElPTiIpOw0KICAgICAgICAgICAgb3B0aW9uLnNldEF0dHJpYnV0ZSgidmFsdWUiLCB2YWx1ZXNbaV0pOw0KICAgICAgICAgICAgb3B0aW9uLmlubmVyVGV4dCA9IHRleHRbaV07DQogICAgICAgICAgICBzZWxlY3QuYXBwZW5kQ2hpbGQob3B0aW9uKTsNCiAgICAgICAgfQ0KICAgICAgICBpZiAoc2V0ICE9ICIiKSB7DQogICAgICAgICAgICBzZWxlY3QudmFsdWUgPSBzZXQ7DQogICAgICAgIH0NCiAgICAgICAgcmV0dXJuIHNlbGVjdDsNCiAgICB9DQogICAgZ2V0UHJvZ3JhbXMoZmlsZSwgc2V0KSB7DQogICAgICAgIC8vdmFyIGZpbGVJRHM6c3RyaW5nW10gPSBnZXRPYmpLZXlzKFNFUlZFUlsieGVwZyJdWyJ4bWx0dk1hcCJdKQ0KICAgICAgICBsZXQgdmFsdWVzID0gZ2V0T2JqS2V5cyhTRVJWRVJbInhlcGciXVsieG1sdHZNYXAiXVtmaWxlXSk7DQogICAgICAgIGxldCB0ZXh0ID0gW107DQogICAgICAgIGxldCBkaXNwbGF5TmFtZTsNCiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB2YWx1ZXMubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgICAgIGlmIChTRVJWRVJbInhlcGciXVsieG1sdHZNYXAiXVtmaWxlXVt2YWx1ZXNbaV1dLmhhc093blByb3BlcnR5KCdkaXNwbGF5LW5hbWUnKSA9PSB0cnVlKSB7DQogICAgICAgICAgICAgICAgZGlzcGxheU5hbWUgPSBTRVJWRVJbInhlcGciXVsieG1sdHZNYXAiXVtmaWxlXVt2YWx1ZXNbaV1dWyJkaXNwbGF5LW5hbWUiXTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgICAgIGRpc3BsYXlOYW1lID0gIi0iOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgdGV4dFtpXSA9IGRpc3BsYXlOYW1lICsgIiAoIiArIHZhbHVlc1tpXSArICIpIjsNCiAgICAgICAgfQ0KICAgICAgICB0ZXh0LnVuc2hpZnQoIi0iKTsNCiAgICAgICAgdmFsdWVzLnVuc2hpZnQoIi0iKTsNCiAgICAgICAgbGV0IHNlbGVjdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlNFTEVDVCIpOw0KICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRleHQubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgICAgIHZhciBvcHRpb24gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJPUFRJT04iKTsNCiAgICAgICAgICAgIG9wdGlvbi5zZXRBdHRyaWJ1dGUoInZhbHVlIiwgdmFsdWVzW2ldKTsNCiAgICAgICAgICAgIG9wdGlvbi5pbm5lclRleHQgPSB0ZXh0W2ldOw0KICAgICAgICAgICAgc2VsZWN0LmFwcGVuZENoaWxkKG9wdGlvbik7DQogICAgICAgIH0NCiAgICAgICAgaWYgKHNldCAhPSAiIikgew0KICAgICAgICAgICAgc2VsZWN0LnZhbHVlID0gc2V0Ow0KICAgICAgICB9DQogICAgICAgIGlmIChzZWxlY3QudmFsdWUgIT0gc2V0KSB7DQogICAgICAgICAgICBzZWxlY3QudmFsdWUgPSAiLSI7DQogICAgICAgIH0NCiAgICAgICAgcmV0dXJuIHNlbGVjdDsNCiAgICB9DQp9DQpmdW5jdGlvbiBnZXRWYWx1ZUZyb21Qcm92aWRlckZpbGUoZmlsZSwgZmlsZVR5cGUsIGtleSkgew0KICAgIGlmIChmaWxlID09ICJ4VGVWZSBEdW1teSIpIHsNCiAgICAgICAgcmV0dXJuIGZpbGU7DQogICAgfQ0KICAgIGxldCBmaWxlSUQ7DQogICAgbGV0IGluZGljYXRvciA9IGZpbGUuY2hhckF0KDApOw0KICAgIHN3aXRjaCAoaW5kaWNhdG9yKSB7DQogICAgICAgIGNhc2UgIk0iOg0KICAgICAgICAgICAgZmlsZVR5cGUgPSAibTN1IjsNCiAgICAgICAgICAgIGZpbGVJRCA9IGZpbGU7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSAiSCI6DQogICAgICAgICAgICBmaWxlVHlwZSA9ICJoZGhyIjsNCiAgICAgICAgICAgIGZpbGVJRCA9IGZpbGU7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSAiWCI6DQogICAgICAgICAgICBmaWxlVHlwZSA9ICJ4bWx0diI7DQogICAgICAgICAgICBmaWxlSUQgPSBmaWxlLnN1YnN0cmluZygwLCBmaWxlLmxhc3RJbmRleE9mKCcuJykpOw0KICAgICAgICAgICAgYnJlYWs7DQogICAgfQ0KICAgIGlmIChTRVJWRVJbInNldHRpbmdzIl1bImZpbGVzIl1bZmlsZVR5cGVdLmhhc093blByb3BlcnR5KGZpbGVJRCkgPT0gdHJ1ZSkgew0KICAgICAgICB2YXIgZGF0YSA9IFNFUlZFUlsic2V0dGluZ3MiXVsiZmlsZXMiXVtmaWxlVHlwZV1bZmlsZUlEXTsNCiAgICAgICAgcmV0dXJuIGRhdGFba2V5XTsNCiAgICB9DQogICAgcmV0dXJuOw0KfQ0KZnVuY3Rpb24gc2V0WG1sdHZDaGFubmVsKGlkLCBlbGVtZW50KSB7DQogICAgbGV0IHhtbHR2ID0gbmV3IFhNTFRWRmlsZSgpOw0KICAgIGxldCB4bWxGaWxlID0gZWxlbWVudC52YWx1ZTsNCiAgICBsZXQgdHZnSWQgPSBTRVJWRVJbInhlcGciXVsiZXBnTWFwcGluZyJdW2lkXVsidHZnLWlkIl07DQogICAgbGV0IHRkID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInBvcHVwLW1hcHBpbmciKS5wYXJlbnRFbGVtZW50Ow0KICAgIHRkLmlubmVySFRNTCA9ICIiOw0KICAgIGxldCBzZWxlY3QgPSB4bWx0di5nZXRQcm9ncmFtcyhlbGVtZW50LnZhbHVlLCB0dmdJZCk7DQogICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgibmFtZSIsICJ4LW1hcHBpbmciKTsNCiAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJpZCIsICJwb3B1cC1tYXBwaW5nIik7DQogICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCc7IGNoZWNrWG1sdHZDaGFubmVsKCciICsgaWQgKyAiJyx0aGlzLCciICsgeG1sRmlsZSArICInKTsiKTsNCiAgICBzZWxlY3QuY2xhc3NOYW1lID0gImNoYW5nZWQiOw0KICAgIHNvcnRTZWxlY3Qoc2VsZWN0KTsNCiAgICB0ZC5hcHBlbmRDaGlsZChzZWxlY3QpOw0KICAgIGNoZWNrWG1sdHZDaGFubmVsKGlkLCBzZWxlY3QsIHhtbEZpbGUpOw0KfQ0KZnVuY3Rpb24gY2hlY2tYbWx0dkNoYW5uZWwoaWQsIGVsZW1lbnQsIHhtbEZpbGUpIHsNCiAgICBsZXQgdmFsdWUgPSBlbGVtZW50LnZhbHVlOw0KICAgIGxldCBib29sOw0KICAgIGxldCBjaGVja2JveCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdhY3RpdmUnKTsNCiAgICBsZXQgY2hhbm5lbCA9IFNFUlZFUlsieGVwZyJdWyJlcGdNYXBwaW5nIl1baWRdOw0KICAgIGxldCB1cGRhdGVMb2dvOw0KICAgIGJvb2wgPSB2YWx1ZSAhPSAiLSI7DQogICAgY2hlY2tib3guY2hlY2tlZCA9IGJvb2w7DQogICAgY2hlY2tib3guY2xhc3NOYW1lID0gImNoYW5nZWQiOw0KICAgIGNvbnNvbGUubG9nKHhtbEZpbGUpOw0KICAgIC8vIFVwZGF0ZSBjaGFubmVsIGxvZ28NCiAgICAvKg0KICAgIHVwZGF0ZUxvZ28gPSAoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInVwZGF0ZS1pY29uIikgYXMgSFRNTElucHV0RWxlbWVudCkuY2hlY2tlZA0KICAgIGNvbnNvbGUubG9nKHVwZGF0ZUxvZ28pOw0KICAgICovDQogICAgaWYgKHhtbEZpbGUgIT0gInhUZVZlIER1bW15IiAmJiBib29sID09IHRydWUpIHsNCiAgICAgICAgLy8oZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInVwZGF0ZS1pY29uIikgYXMgSFRNTElucHV0RWxlbWVudCkuY2hlY2tlZCA9IHRydWU7DQogICAgICAgIC8vKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ1cGRhdGUtaWNvbiIpIGFzIEhUTUxJbnB1dEVsZW1lbnQpLmNsYXNzTmFtZSA9ICJjaGFuZ2VkIjsNCiAgICAgICAgY29uc29sZS5sb2coIklEIiwgaWQpOw0KICAgICAgICBjaGFuZ2VDaGFubmVsTG9nbyhpZCk7DQogICAgICAgIHJldHVybjsNCiAgICB9DQogICAgaWYgKHhtbEZpbGUgPT0gInhUZVZlIER1bW15Iikgew0KICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidXBkYXRlLWljb24iKS5jaGVja2VkID0gZmFsc2U7DQogICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ1cGRhdGUtaWNvbiIpLmNsYXNzTmFtZSA9ICJjaGFuZ2VkIjsNCiAgICB9DQogICAgcmV0dXJuOw0KfQ0KZnVuY3Rpb24gY2hhbmdlQ2hhbm5lbExvZ28oaWQpIHsNCiAgICBsZXQgdXBkYXRlTG9nbzsNCiAgICBsZXQgY2hhbm5lbCA9IFNFUlZFUlsieGVwZyJdWyJlcGdNYXBwaW5nIl1baWRdOw0KICAgIGxldCBmID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInBvcHVwLXhtbHR2Iik7DQogICAgbGV0IHhtbHR2RmlsZSA9IGYub3B0aW9uc1tmLnNlbGVjdGVkSW5kZXhdLnZhbHVlOw0KICAgIGxldCBtID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInBvcHVwLW1hcHBpbmciKTsNCiAgICBsZXQgeE1hcHBpbmcgPSBtLm9wdGlvbnNbbS5zZWxlY3RlZEluZGV4XS52YWx1ZTsNCiAgICBsZXQgeG1sdHZMb2dvID0gU0VSVkVSWyJ4ZXBnIl1bInhtbHR2TWFwIl1beG1sdHZGaWxlXVt4TWFwcGluZ11bImljb24iXTsNCiAgICB1cGRhdGVMb2dvID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInVwZGF0ZS1pY29uIikuY2hlY2tlZDsNCiAgICBpZiAodXBkYXRlTG9nbyA9PSB0cnVlICYmIHhtbHR2RmlsZSAhPSAieFRlVmUgRHVtbXkiKSB7DQogICAgICAgIGlmIChTRVJWRVJbInhlcGciXVsieG1sdHZNYXAiXVt4bWx0dkZpbGVdLmhhc093blByb3BlcnR5KHhNYXBwaW5nKSkgew0KICAgICAgICAgICAgdmFyIGxvZ28gPSB4bWx0dkxvZ287DQogICAgICAgIH0NCiAgICAgICAgZWxzZSB7DQogICAgICAgICAgICBsb2dvID0gY2hhbm5lbFsidHZnLWxvZ28iXTsNCiAgICAgICAgfQ0KICAgICAgICB2YXIgbG9nb0lucHV0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNoYW5uZWwtaWNvbiIpOw0KICAgICAgICBsb2dvSW5wdXQudmFsdWUgPSBsb2dvOw0KICAgICAgICBpZiAoQlVMS19FRElUID09IGZhbHNlKSB7DQogICAgICAgICAgICBsb2dvSW5wdXQuY2xhc3NOYW1lID0gImNoYW5nZWQiOw0KICAgICAgICB9DQogICAgfQ0KfQ0KZnVuY3Rpb24gc2F2ZVBvcHVwRGF0YShkYXRhVHlwZSwgaWQsIHJlbW92ZSwgb3B0aW9uKSB7DQogICAgaWYgKGRhdGFUeXBlID09ICJtYXBwaW5nIikgew0KICAgICAgICBsZXQgZGF0YSA9IHt9Ow0KICAgICAgICBjb25zb2xlLmxvZygiU2F2ZSBtYXBwaW5nIGRhdGEiKTsNCiAgICAgICAgbGV0IGNtZCA9ICJzYXZlRXBnTWFwcGluZyI7DQogICAgICAgIGRhdGFbImVwZ01hcHBpbmciXSA9IFNFUlZFUlsieGVwZyJdWyJlcGdNYXBwaW5nIl07DQogICAgICAgIGNvbnNvbGUubG9nKCJTRU5EIFRPIFNFUlZFUiIpOw0KICAgICAgICBsZXQgc2VydmVyID0gbmV3IFNlcnZlcihjbWQpOw0KICAgICAgICBzZXJ2ZXIucmVxdWVzdChkYXRhKTsNCiAgICAgICAgZGVsZXRlIFVORE9bImVwZ01hcHBpbmciXTsNCiAgICAgICAgcmV0dXJuOw0KICAgIH0NCiAgICBjb25zb2xlLmxvZygiU2F2ZSBwb3B1cCBkYXRhIik7DQogICAgbGV0IGRpdiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJwb3B1cC1jdXN0b20iKTsNCiAgICBsZXQgaW5wdXRzID0gZGl2LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJUQUJMRSIpWzBdLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJJTlBVVCIpOw0KICAgIGxldCBzZWxlY3RzID0gZGl2LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJUQUJMRSIpWzBdLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJTRUxFQ1QiKTsNCiAgICBsZXQgaW5wdXQgPSB7fTsNCiAgICBsZXQgY29uZmlybU1zZzsNCiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHNlbGVjdHMubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgdmFyIG5hbWU7DQogICAgICAgIG5hbWUgPSBzZWxlY3RzW2ldLm5hbWU7DQogICAgICAgIHZhciB2YWx1ZSA9IHNlbGVjdHNbaV0udmFsdWU7DQogICAgICAgIHN3aXRjaCAobmFtZSkgew0KICAgICAgICAgICAgY2FzZSAidHVuZXIiOg0KICAgICAgICAgICAgICAgIGlucHV0W25hbWVdID0gcGFyc2VJbnQodmFsdWUpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgICAgICBpbnB1dFtuYW1lXSA9IHZhbHVlOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICB9DQogICAgfQ0KICAgIGZvciAobGV0IGkgPSAwOyBpIDwgaW5wdXRzLmxlbmd0aDsgaSsrKSB7DQogICAgICAgIHN3aXRjaCAoaW5wdXRzW2ldLnR5cGUpIHsNCiAgICAgICAgICAgIGNhc2UgImNoZWNrYm94IjoNCiAgICAgICAgICAgICAgICBuYW1lID0gaW5wdXRzW2ldLm5hbWU7DQogICAgICAgICAgICAgICAgaW5wdXRbbmFtZV0gPSBpbnB1dHNbaV0uY2hlY2tlZDsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInRleHQiOg0KICAgICAgICAgICAgY2FzZSAiaGlkZGVuIjoNCiAgICAgICAgICAgIGNhc2UgInBhc3N3b3JkIjoNCiAgICAgICAgICAgICAgICBuYW1lID0gaW5wdXRzW2ldLm5hbWU7DQogICAgICAgICAgICAgICAgc3dpdGNoIChuYW1lKSB7DQogICAgICAgICAgICAgICAgICAgIGNhc2UgInR1bmVyIjoNCiAgICAgICAgICAgICAgICAgICAgICAgIGlucHV0W25hbWVdID0gcGFyc2VJbnQoaW5wdXRzW2ldLnZhbHVlKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgICAgICBkZWZhdWx0Og0KICAgICAgICAgICAgICAgICAgICAgICAgaW5wdXRbbmFtZV0gPSBpbnB1dHNbaV0udmFsdWU7DQogICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIH0NCiAgICB9DQogICAgbGV0IGRhdGEgPSB7fTsNCiAgICBsZXQgY21kOw0KICAgIGlmIChyZW1vdmUgPT0gdHJ1ZSkgew0KICAgICAgICBpbnB1dFsiZGVsZXRlIl0gPSB0cnVlOw0KICAgIH0NCiAgICBzd2l0Y2ggKGRhdGFUeXBlKSB7DQogICAgICAgIGNhc2UgInVzZXJzIjoNCiAgICAgICAgICAgIGNvbmZpcm1Nc2cgPSAiRGVsZXRlIHRoaXMgdXNlcj8iOw0KICAgICAgICAgICAgaWYgKGlkID09ICItIikgew0KICAgICAgICAgICAgICAgIGNtZCA9ICJzYXZlTmV3VXNlciI7DQogICAgICAgICAgICAgICAgZGF0YVsidXNlckRhdGEiXSA9IGlucHV0Ow0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgZWxzZSB7DQogICAgICAgICAgICAgICAgY21kID0gInNhdmVVc2VyRGF0YSI7DQogICAgICAgICAgICAgICAgbGV0IGQgPSB7fTsNCiAgICAgICAgICAgICAgICBkW2lkXSA9IGlucHV0Ow0KICAgICAgICAgICAgICAgIGRhdGFbInVzZXJEYXRhIl0gPSBkOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGNhc2UgIm0zdSI6DQogICAgICAgICAgICBjb25maXJtTXNnID0gIkRlbGV0ZSB0aGlzIHBsYXlsaXN0PyI7DQogICAgICAgICAgICBzd2l0Y2ggKG9wdGlvbikgew0KICAgICAgICAgICAgICAgIC8vIFBvcHVwOiBTYXZlDQogICAgICAgICAgICAgICAgY2FzZSAwOg0KICAgICAgICAgICAgICAgICAgICBjbWQgPSAic2F2ZUZpbGVzTTNVIjsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgLy8gUG9wdXA6IFVwZGF0ZQ0KICAgICAgICAgICAgICAgIGNhc2UgMToNCiAgICAgICAgICAgICAgICAgICAgY21kID0gInVwZGF0ZUZpbGVNM1UiOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGRhdGFbImZpbGVzIl0gPSB7fTsNCiAgICAgICAgICAgIGRhdGFbImZpbGVzIl1bZGF0YVR5cGVdID0ge307DQogICAgICAgICAgICBkYXRhWyJmaWxlcyJdW2RhdGFUeXBlXVtpZF0gPSBpbnB1dDsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJoZGhyIjoNCiAgICAgICAgICAgIGNvbmZpcm1Nc2cgPSAiRGVsZXRlIHRoaXMgSERIb21lUnVuIHR1bmVyPyI7DQogICAgICAgICAgICBzd2l0Y2ggKG9wdGlvbikgew0KICAgICAgICAgICAgICAgIC8vIFBvcHVwOiBTYXZlDQogICAgICAgICAgICAgICAgY2FzZSAwOg0KICAgICAgICAgICAgICAgICAgICBjbWQgPSAic2F2ZUZpbGVzSERIUiI7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIC8vIFBvcHVwOiBVcGRhdGUNCiAgICAgICAgICAgICAgICBjYXNlIDE6DQogICAgICAgICAgICAgICAgICAgIGNtZCA9ICJ1cGRhdGVGaWxlSERIUiI7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgZGF0YVsiZmlsZXMiXSA9IHt9Ow0KICAgICAgICAgICAgZGF0YVsiZmlsZXMiXVtkYXRhVHlwZV0gPSB7fTsNCiAgICAgICAgICAgIGRhdGFbImZpbGVzIl1bZGF0YVR5cGVdW2lkXSA9IGlucHV0Ow0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGNhc2UgInhtbHR2IjoNCiAgICAgICAgICAgIGNvbmZpcm1Nc2cgPSAiRGVsZXRlIHRoaXMgWE1MVFYgZmlsZT8iOw0KICAgICAgICAgICAgc3dpdGNoIChvcHRpb24pIHsNCiAgICAgICAgICAgICAgICAvLyBQb3B1cDogU2F2ZQ0KICAgICAgICAgICAgICAgIGNhc2UgMDoNCiAgICAgICAgICAgICAgICAgICAgY21kID0gInNhdmVGaWxlc1hNTFRWIjsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgLy8gUG9wdXA6IFVwZGF0ZQ0KICAgICAgICAgICAgICAgIGNhc2UgMToNCiAgICAgICAgICAgICAgICAgICAgY21kID0gInVwZGF0ZUZpbGVYTUxUViI7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgZGF0YVsiZmlsZXMiXSA9IHt9Ow0KICAgICAgICAgICAgZGF0YVsiZmlsZXMiXVtkYXRhVHlwZV0gPSB7fTsNCiAgICAgICAgICAgIGRhdGFbImZpbGVzIl1bZGF0YVR5cGVdW2lkXSA9IGlucHV0Ow0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGNhc2UgImZpbHRlciI6DQogICAgICAgICAgICBjb25maXJtTXNnID0gIkRlbGV0ZSB0aGlzIGZpbHRlcj8iOw0KICAgICAgICAgICAgY21kID0gInNhdmVGaWx0ZXIiOw0KICAgICAgICAgICAgZGF0YVsiZmlsdGVyIl0gPSB7fTsNCiAgICAgICAgICAgIGRhdGFbImZpbHRlciJdW2lkXSA9IGlucHV0Ow0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICBjb25zb2xlLmxvZyhkYXRhVHlwZSwgaWQpOw0KICAgICAgICAgICAgcmV0dXJuOw0KICAgIH0NCiAgICBpZiAocmVtb3ZlID09IHRydWUpIHsNCiAgICAgICAgaWYgKCFjb25maXJtKGNvbmZpcm1Nc2cpKSB7DQogICAgICAgICAgICBzaG93RWxlbWVudCgicG9wdXAiLCBmYWxzZSk7DQogICAgICAgICAgICByZXR1cm47DQogICAgICAgIH0NCiAgICB9DQogICAgY29uc29sZS5sb2coIlNFTkQgVE8gU0VSVkVSIik7DQogICAgY29uc29sZS5sb2coZGF0YSk7DQogICAgbGV0IHNlcnZlciA9IG5ldyBTZXJ2ZXIoY21kKTsNCiAgICBzZXJ2ZXIucmVxdWVzdChkYXRhKTsNCn0NCmZ1bmN0aW9uIGRvbmVQb3B1cERhdGEoZGF0YVR5cGUsIGlkc1N0cikgew0KICAgIGxldCBpZHMgPSBpZHNTdHIuc3BsaXQoJywnKTsNCiAgICBsZXQgZGl2ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInBvcHVwLWN1c3RvbSIpOw0KICAgIGxldCBpbnB1dHMgPSBkaXYuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSgiY2hhbmdlZCIpOw0KICAgIGlkcy5mb3JFYWNoKGlkID0+IHsNCiAgICAgICAgbGV0IGlucHV0Ow0KICAgICAgICBpbnB1dCA9IFNFUlZFUlsieGVwZyJdWyJlcGdNYXBwaW5nIl1baWRdOw0KICAgICAgICBjb25zb2xlLmxvZyhpbnB1dCk7DQogICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgaW5wdXRzLmxlbmd0aDsgaSsrKSB7DQogICAgICAgICAgICBsZXQgbmFtZTsNCiAgICAgICAgICAgIGxldCB2YWx1ZTsNCiAgICAgICAgICAgIHN3aXRjaCAoaW5wdXRzW2ldLnRhZ05hbWUpIHsNCiAgICAgICAgICAgICAgICBjYXNlICJJTlBVVCI6DQogICAgICAgICAgICAgICAgICAgIHN3aXRjaCAoaW5wdXRzW2ldLnR5cGUpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgImNoZWNrYm94IjoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lID0gaW5wdXRzW2ldLm5hbWU7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSBpbnB1dHNbaV0uY2hlY2tlZDsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnB1dFtuYW1lXSA9IHZhbHVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAidGV4dCI6DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZSA9IGlucHV0c1tpXS5uYW1lOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlID0gaW5wdXRzW2ldLnZhbHVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlucHV0W25hbWVdID0gdmFsdWU7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAiU0VMRUNUIjoNCiAgICAgICAgICAgICAgICAgICAgbmFtZSA9IGlucHV0c1tpXS5uYW1lOw0KICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IGlucHV0c1tpXS52YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgaW5wdXRbbmFtZV0gPSB2YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBzd2l0Y2ggKG5hbWUpIHsNCiAgICAgICAgICAgICAgICBjYXNlICJ0dmctbG9nbyI6DQogICAgICAgICAgICAgICAgICAgIC8vKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5jaGlsZE5vZGVzWzJdLmZpcnN0Q2hpbGQgYXMgSFRNTEVsZW1lbnQpLnNldEF0dHJpYnV0ZSgic3JjIiwgdmFsdWUpDQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgIngtbmFtZSI6DQogICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5jaGlsZE5vZGVzWzNdLmZpcnN0Q2hpbGQuaW5uZXJIVE1MID0gdmFsdWU7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgIngtY2F0ZWdvcnkiOg0KICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkuY2hpbGROb2Rlc1szXS5maXJzdENoaWxkLmNsYXNzTmFtZSA9IHZhbHVlOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBjYXNlICJ4LWdyb3VwLXRpdGxlIjoNCiAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpLmNoaWxkTm9kZXNbNV0uZmlyc3RDaGlsZC5pbm5lckhUTUwgPSB2YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAieC14bWx0di1maWxlIjoNCiAgICAgICAgICAgICAgICAgICAgaWYgKHZhbHVlICE9ICJ4VGVWZSBEdW1teSIgJiYgdmFsdWUgIT0gIi0iKSB7DQogICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IGdldFZhbHVlRnJvbVByb3ZpZGVyRmlsZSh2YWx1ZSwgInhtbHR2IiwgIm5hbWUiKTsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBpZiAodmFsdWUgPT0gIi0iKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBpbnB1dFsieC1hY3RpdmUiXSA9IGZhbHNlOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5jaGlsZE5vZGVzWzZdLmZpcnN0Q2hpbGQuaW5uZXJIVE1MID0gdmFsdWU7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgIngtbWFwcGluZyI6DQogICAgICAgICAgICAgICAgICAgIGlmICh2YWx1ZSA9PSAiLSIpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGlucHV0WyJ4LWFjdGl2ZSJdID0gZmFsc2U7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpLmNoaWxkTm9kZXNbN10uZmlyc3RDaGlsZC5pbm5lckhUTUwgPSB2YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAieC10aW1lc2hpZnQiOg0KICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkuY2hpbGROb2Rlc1s4XS5maXJzdENoaWxkLmlubmVySFRNTCA9IHZhbHVlOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBkZWZhdWx0Og0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgY3JlYXRlU2VhcmNoT2JqKCk7DQogICAgICAgICAgICBzZWFyY2hJbk1hcHBpbmcoKTsNCiAgICAgICAgfQ0KICAgICAgICBpZiAoaW5wdXRbIngtYWN0aXZlIl0gPT0gZmFsc2UpIHsNCiAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5jbGFzc05hbWUgPSAibm90QWN0aXZlRVBHIjsNCiAgICAgICAgfQ0KICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5jbGFzc05hbWUgPSAiYWN0aXZlRVBHIjsNCiAgICAgICAgfQ0KICAgICAgICBjb25zb2xlLmxvZyhpbnB1dFsidHZnLWxvZ28iXSk7DQogICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5jaGlsZE5vZGVzWzJdLmZpcnN0Q2hpbGQuc2V0QXR0cmlidXRlKCJzcmMiLCBpbnB1dFsidHZnLWxvZ28iXSk7DQogICAgfSk7DQogICAgc2hvd0VsZW1lbnQoInBvcHVwIiwgZmFsc2UpOw0KICAgIHJldHVybjsNCn0NCmZ1bmN0aW9uIHNob3dQcmV2aWV3KGVsZW1lbnQpIHsNCiAgICBsZXQgZGl2ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm15U3RyZWFtc0JveCIpOw0KICAgIHN3aXRjaCAoZWxlbWVudCkgew0KICAgICAgICBjYXNlIGZhbHNlOg0KICAgICAgICAgICAgZGl2LmNsYXNzTmFtZSA9ICJub3RWaXNpYmxlIjsNCiAgICAgICAgICAgIHJldHVybjsNCiAgICB9DQogICAgbGV0IHN0cmVhbXMgPSBbImFjdGl2ZVN0cmVhbXMiLCAiaW5hY3RpdmVTdHJlYW1zIl07DQogICAgc3RyZWFtcy5mb3JFYWNoKHByZXZpZXcgPT4gew0KICAgICAgICBsZXQgdGFibGUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChwcmV2aWV3KTsNCiAgICAgICAgdGFibGUuaW5uZXJIVE1MID0gIiI7DQogICAgICAgIGxldCBvYmogPSBTRVJWRVJbImRhdGEiXVsiU3RyZWFtUHJldmlld1VJIl1bcHJldmlld107DQogICAgICAgIG9iai5mb3JFYWNoKGNoYW5uZWwgPT4gew0KICAgICAgICAgICAgbGV0IHRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVFIiKTsNCiAgICAgICAgICAgIGxldCB0ZEtleSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICBsZXQgdGRWYWwgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgdGRLZXkuY2xhc3NOYW1lID0gInRkS2V5IjsNCiAgICAgICAgICAgIHRkVmFsLmNsYXNzTmFtZSA9ICJ0ZFZhbCI7DQogICAgICAgICAgICBzd2l0Y2ggKHByZXZpZXcpIHsNCiAgICAgICAgICAgICAgICBjYXNlICJhY3RpdmVTdHJlYW1zIjoNCiAgICAgICAgICAgICAgICAgICAgdGRLZXkuaW5uZXJUZXh0ID0gIkNoYW5uZWw6ICgrKSI7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgImluYWN0aXZlU3RyZWFtcyI6DQogICAgICAgICAgICAgICAgICAgIHRkS2V5LmlubmVyVGV4dCA9ICJDaGFubmVsOiAoLSkiOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIHRkVmFsLmlubmVyVGV4dCA9IGNoYW5uZWw7DQogICAgICAgICAgICB0ci5hcHBlbmRDaGlsZCh0ZEtleSk7DQogICAgICAgICAgICB0ci5hcHBlbmRDaGlsZCh0ZFZhbCk7DQogICAgICAgICAgICB0YWJsZS5hcHBlbmRDaGlsZCh0cik7DQogICAgICAgIH0pOw0KICAgIH0pOw0KICAgIHNob3dFbGVtZW50KCJsb2FkaW5nIiwgZmFsc2UpOw0KICAgIGRpdi5jbGFzc05hbWUgPSAidmlzaWJsZSI7DQogICAgcmV0dXJuOw0KfQ0K" - webUI["html/create-first-user.html"] = "PCFkb2N0eXBlIGh0bWw+DQo8aHRtbD4NCiAgPGhlYWQ+DQogICAgPG1ldGEgY2hhcnNldD0idXRmLTgiPg0KICAgIDxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgsIGluaXRpYWwtc2NhbGU9MS4wIiAvPiANCiAgICA8dGl0bGU+eFRlVmU8L3RpdGxlPg0KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iY3NzL3NjcmVlbi5jc3MiIHR5cGU9InRleHQvY3NzIj4NCiAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9ImNzcy9iYXNlLmNzcyIgdHlwZT0idGV4dC9jc3MiPg0KICAgIDxzY3JpcHQgbGFuZ3VhZ2U9ImphdmFzY3JpcHQiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJqcy9uZXR3b3JrX3RzLmpzIj48L3NjcmlwdD4NCiAgICA8c2NyaXB0IGxhbmd1YWdlPSJqYXZhc2NyaXB0IiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ianMvYXV0aGVudGljYXRpb25fdHMuanMiPjwvc2NyaXB0Pg0KICA8L2hlYWQ+DQoNCiAgICA8Ym9keT4NCiAgICAgICAgICANCiAgICAgIDxkaXYgaWQ9ImhlYWRlciIgY2xhc3M9ImltZ0NlbnRlciI+PC9kaXY+DQoNCiAgICAgIDxkaXYgaWQ9ImJveCI+DQoNCiAgICAgICAgPGRpdiBpZD0iaGVhZGxpbmUiPg0KICAgICAgICAgIDxoMSBpZD0iaGVhZC10ZXh0IiBjbGFzcz0iY2VudGVyIj57ey5hY2NvdW50LmhlYWRsaW5lfX08L2gxPg0KICAgICAgICA8L2Rpdj4NCg0KICAgICAgICA8cCBpZD0iZXJyIiBjbGFzcz0iZXJyb3JNc2cgY2VudGVyIj48L3A+DQoNCiAgICAgICAgPGRpdiBpZD0iY29udGVudCI+DQoNCiAgICAgICAgICAgIDxmb3JtIGlkPSJhdXRoZW50aWNhdGlvbiIgYWN0aW9uPSIiIG1ldGhvZD0icG9zdCI+DQoNCiAgICAgICAgICAgICAgPGg1Pnt7LmFjY291bnQudXNlcm5hbWUudGl0bGV9fTo8L2g1Pg0KICAgICAgICAgICAgICA8aW5wdXQgaWQ9InVzZXJuYW1lIiB0eXBlPSJ0ZXh0IiBuYW1lPSJ1c2VybmFtZSIgcGxhY2Vob2xkZXI9IlVzZXJuYW1lIiB2YWx1ZT0iIj4NCiAgICAgICAgICAgICAgPGg1Pnt7LmFjY291bnQucGFzc3dvcmQudGl0bGV9fTo8L2g1Pg0KICAgICAgICAgICAgICA8aW5wdXQgaWQ9InBhc3N3b3JkIiB0eXBlPSJwYXNzd29yZCIgbmFtZT0icGFzc3dvcmQiIHBsYWNlaG9sZGVyPSJQYXNzd29yZCIgdmFsdWU9IiI+DQogICAgICAgICAgICAgIDxoNT57ey5hY2NvdW50LmNvbmZpcm0udGl0bGV9fTo8L2g1Pg0KICAgICAgICAgICAgICA8aW5wdXQgaWQ9ImNvbmZpcm0iICB0eXBlPSJwYXNzd29yZCIgbmFtZT0iY29uZmlybSIgIHBsYWNlaG9sZGVyPSJDb25maXJtIiB2YWx1ZT0iIj4NCiAgICAgICAgICAgICAgDQogICAgICAgICAgICA8L2Zvcm0+DQoNCiAgICAgICAgPC9kaXY+DQogICAgICAgIA0KICAgICAgICA8ZGl2IGlkPSJib3gtZm9vdGVyIj4NCiAgICAgICAgICA8aW5wdXQgaWQ9InN1Ym1pdCIgY2xhc3M9IiIgdHlwZT0iYnV0dG9uIiB2YWx1ZT0ie3suYnV0dG9uLmNyYWV0ZUFjY291bnR9fSIgb25jbGljaz0iamF2YXNjcmlwdDogbG9naW4oKTsiPg0KICAgICAgICA8L2Rpdj4NCiAgICAgIA0KICAgICAgICANCiAgICAgIDwvZGl2Pg0KICAgIDwvYm9keT4NCjwvaHRtbD4=" + webUI["html/img/mapping.png"] = "iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAAAXNSR0IArs4c6QAAAAlwSFlzAAAsSwAALEsBpT2WqQAABCRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IlhNUCBDb3JlIDUuNC4wIj4KICAgPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIgogICAgICAgICAgICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgICAgICAgICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyI+CiAgICAgICAgIDx0aWZmOlJlc29sdXRpb25Vbml0PjI8L3RpZmY6UmVzb2x1dGlvblVuaXQ+CiAgICAgICAgIDx0aWZmOkNvbXByZXNzaW9uPjU8L3RpZmY6Q29tcHJlc3Npb24+CiAgICAgICAgIDx0aWZmOlhSZXNvbHV0aW9uPjI4ODwvdGlmZjpYUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6T3JpZW50YXRpb24+MTwvdGlmZjpPcmllbnRhdGlvbj4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+Mjg4PC90aWZmOllSZXNvbHV0aW9uPgogICAgICAgICA8ZXhpZjpQaXhlbFhEaW1lbnNpb24+NTA8L2V4aWY6UGl4ZWxYRGltZW5zaW9uPgogICAgICAgICA8ZXhpZjpDb2xvclNwYWNlPjE8L2V4aWY6Q29sb3JTcGFjZT4KICAgICAgICAgPGV4aWY6UGl4ZWxZRGltZW5zaW9uPjUwPC9leGlmOlBpeGVsWURpbWVuc2lvbj4KICAgICAgICAgPGRjOnN1YmplY3Q+CiAgICAgICAgICAgIDxyZGY6QmFnLz4KICAgICAgICAgPC9kYzpzdWJqZWN0PgogICAgICAgICA8eG1wOk1vZGlmeURhdGU+MjAxOC0wOC0wMlQxMjowODo5NzwveG1wOk1vZGlmeURhdGU+CiAgICAgICAgIDx4bXA6Q3JlYXRvclRvb2w+UGl4ZWxtYXRvciAzLjM8L3htcDpDcmVhdG9yVG9vbD4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgIDwvcmRmOlJERj4KPC94OnhtcG1ldGE+CpRxQsEAAAJLSURBVGgF7VoxTgMxEMwBHWlAaeABVCEtBcoD+EBewCdCyQsQtLyAPCBvCBSRIBUPCF1ogqBJjlkrezGr6HTrO98lhy1Z9trr2VmvnbMNjUadUhzHLeQB8hw5LS3QOUbubvIf7X3kKXIZibgS51bCZdWgMT6D8nECgArkngagQN0B8dhbkblalVmLIyheCGUthhjuLBq77MihA0xTjHHBEBBOorHLjjghbNOg4Mg2RYO4hIiEiHiaAV5aSwf8hRgjZdHtTTTc2ZFXpZkY+hMx5k3IZYlr7jgudJHp2JElLaF0K1mirYn8nAWgQB3ibM59ERNCA52d6Nghv9isQiUtn0kURe92I9eBcYA6YZxym8dyDuwRuMw82gjQYQbsPdLDdNCROO0US3uEfp3usTZpjf5J2CNtNFwjl7FHvmBnCB5PCQkQoJudJtGvE23sJEFuI39rQArS7dskXK6nlwkAKiB1VxAxLcyUePAH8cQmlbEul4+UM8LkVjPc2ZHcaFUDBEeqjoC0HyIiZ6RqOUSk6ghI+xyRD9mRQTYfIktPylaX16rhzo48KE29QH8kxjxC/hFtZYiGe70OjWVMW7Dx32bA3iO7//iAC8DOPweZFQhH6O+CmkRvW2f28oV8owEoUHdMPPg70rFJZajTkqT7uZ3ObaHEuuHOjnCpsb8vlKUsur2JhruLA94Y5QEOjuSZPR9jQ0R8zGoezNpFhN5RtUm+/bpgaG1u0jd2OSLDTRopbZ/okxcrLUYKvKprbRfHhXr8m5PK/y1V/gWRKLfiNSmxEAAAAABJRU5ErkJggg==" webUI["html/img/users.png"] = "iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAAAXNSR0IArs4c6QAAAAlwSFlzAAAsSwAALEsBpT2WqQAABCRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IlhNUCBDb3JlIDUuNC4wIj4KICAgPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIgogICAgICAgICAgICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgICAgICAgICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyI+CiAgICAgICAgIDx0aWZmOlJlc29sdXRpb25Vbml0PjI8L3RpZmY6UmVzb2x1dGlvblVuaXQ+CiAgICAgICAgIDx0aWZmOkNvbXByZXNzaW9uPjU8L3RpZmY6Q29tcHJlc3Npb24+CiAgICAgICAgIDx0aWZmOlhSZXNvbHV0aW9uPjI4ODwvdGlmZjpYUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6T3JpZW50YXRpb24+MTwvdGlmZjpPcmllbnRhdGlvbj4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+Mjg4PC90aWZmOllSZXNvbHV0aW9uPgogICAgICAgICA8ZXhpZjpQaXhlbFhEaW1lbnNpb24+NTA8L2V4aWY6UGl4ZWxYRGltZW5zaW9uPgogICAgICAgICA8ZXhpZjpDb2xvclNwYWNlPjE8L2V4aWY6Q29sb3JTcGFjZT4KICAgICAgICAgPGV4aWY6UGl4ZWxZRGltZW5zaW9uPjUwPC9leGlmOlBpeGVsWURpbWVuc2lvbj4KICAgICAgICAgPGRjOnN1YmplY3Q+CiAgICAgICAgICAgIDxyZGY6QmFnLz4KICAgICAgICAgPC9kYzpzdWJqZWN0PgogICAgICAgICA8eG1wOk1vZGlmeURhdGU+MjAxOC0wOC0zMFQxNzowODozODwveG1wOk1vZGlmeURhdGU+CiAgICAgICAgIDx4bXA6Q3JlYXRvclRvb2w+UGl4ZWxtYXRvciAzLjM8L3htcDpDcmVhdG9yVG9vbD4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgIDwvcmRmOlJERj4KPC94OnhtcG1ldGE+CjU01MMAAANJSURBVGgF1ZnLaxNRFMYz2rpoFbW+SCsihaJQRMT6rPhAXAq6c+HChSguRFd1oRtd+A/oWhQ3oiiWFB91UbqRqlXXgoIIQhFbQTTQao2/GzLDZEjIPefO7SQHPjJz55zzfd/MZCa5N8h5ilKptJvWp8FekAed4Bv4Cj6Dh2A4CIJZPpszMHEV2MQ0SZdB0DROENMHjoEzQBoFCpZnbgYR58E/qfpE/kv2F2dmBvJ94G9ClHb3SiZGUBuASa3qGnVzjG3RmFmkKYrVHGB7e2zfdbOdBhc1TVyNnNSQNqg5wVURf/FdjRxpIEpzuIOio9JCtRHO2hrINkgJLfPFt6vaCII2WYrSpPVJi1RGuBrmTbxeSibIX5j3CUauAfOo9BXzNH4nMJ5TXREI1gHzqPQVRtc2zCyxJdAaGbclcMj7zi/jOdt6rZFhCH7akijznknqVEY4U78heSAhUuTekNSojFQIChIiYe57TtZrSY2LkecQzUjIBLljglz3VJ4qg+AXSDNGabbWXZ2wA6Qjabqg136hhHK6y60V8o2EGyl8/qHHpKZPGkYeQzyvIa9RM86XvFhjvOGQsxGIp2B50ZDJLuG2XZqnLO5rM3viGh9o0OZJon1bRLxxdHLcns1jJiYOAu2U0D2P0uStMXJdcVU+UdMlZ/NYgaA28ERg5ge5/R4l6VsjrANMWJiZJWeXnqm60vnxW90ul6u8ByaS4zX2i+S+qjGuGkrdSEWFzT1vlhlSC19Gui0UtnNriSfi6vX1ZWRjPcLEeGrzYqkb4SyvQGxvQnC93cF6BzIfx8gpYBsfSdycuei4AAR1ggugCCRh1lbugIF4vwXbhtisjfSDc+ARSOOf4lv6mNWv1VIj1ouQNF9K851gDzArtWbV1uYxS5o4zB+sp+AuKPC+cVv5RXwPuATMmUpreY1Wopgh+ybYKj4dFHWB+8DMwTZTjCHmsJUhEgfAF9DMcQtx9V8dHMyDqWZ2ENM2FL8yVV92kkY56GM5Lc6Z1vY0jbp5EJQnuqPLg4kdLWTCnIxVIJoDi4wweNYcbbGIfuLEjRxqMRNGbvTvsmyE22oZg70taKQn1BxekXw40GKfK0O9oZHsJ8ZCRbLPaI3xP7YzeQoHxWckAAAAAElFTkSuQmCC" - webUI["html/js/configuration_ts.js"] = "Y2xhc3MgV2l6YXJkQ2F0ZWdvcnkgew0KICAgIGNvbnN0cnVjdG9yKCkgew0KICAgICAgICB0aGlzLkRvY3VtZW50SUQgPSAiY29udGVudCI7DQogICAgfQ0KICAgIGNyZWF0ZUNhdGVnb3J5SGVhZGxpbmUodmFsdWUpIHsNCiAgICAgICAgdmFyIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJINCIpOw0KICAgICAgICBlbGVtZW50LmlubmVySFRNTCA9IHZhbHVlOw0KICAgICAgICByZXR1cm4gZWxlbWVudDsNCiAgICB9DQp9DQpjbGFzcyBXaXphcmRJdGVtIGV4dGVuZHMgV2l6YXJkQ2F0ZWdvcnkgew0KICAgIGNvbnN0cnVjdG9yKGtleSwgaGVhZGxpbmUpIHsNCiAgICAgICAgc3VwZXIoKTsNCiAgICAgICAgdGhpcy5oZWFkbGluZSA9IGhlYWRsaW5lOw0KICAgICAgICB0aGlzLmtleSA9IGtleTsNCiAgICB9DQogICAgY3JlYXRlV2l6YXJkKCkgew0KICAgICAgICB2YXIgaGVhZGxpbmUgPSB0aGlzLmNyZWF0ZUNhdGVnb3J5SGVhZGxpbmUodGhpcy5oZWFkbGluZSk7DQogICAgICAgIHZhciBrZXkgPSB0aGlzLmtleTsNCiAgICAgICAgdmFyIGNvbnRlbnQgPSBuZXcgUG9wdXBDb250ZW50KCk7DQogICAgICAgIHZhciBkZXNjcmlwdGlvbjsNCiAgICAgICAgdmFyIGRvYyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHRoaXMuRG9jdW1lbnRJRCk7DQogICAgICAgIGRvYy5pbm5lckhUTUwgPSAiIjsNCiAgICAgICAgZG9jLmFwcGVuZENoaWxkKGhlYWRsaW5lKTsNCiAgICAgICAgc3dpdGNoIChrZXkpIHsNCiAgICAgICAgICAgIGNhc2UgInR1bmVyIjoNCiAgICAgICAgICAgICAgICB2YXIgdGV4dCA9IG5ldyBBcnJheSgpOw0KICAgICAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBuZXcgQXJyYXkoKTsNCiAgICAgICAgICAgICAgICBmb3IgKHZhciBpID0gMTsgaSA8PSAxMDA7IGkrKykgew0KICAgICAgICAgICAgICAgICAgICB0ZXh0LnB1c2goaSk7DQogICAgICAgICAgICAgICAgICAgIHZhbHVlcy5wdXNoKGkpOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCAiMSIsIGtleSk7DQogICAgICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgiY2xhc3MiLCAid2l6YXJkIik7DQogICAgICAgICAgICAgICAgc2VsZWN0LmlkID0ga2V5Ow0KICAgICAgICAgICAgICAgIGRvYy5hcHBlbmRDaGlsZChzZWxlY3QpOw0KICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uID0gInt7LndpemFyZC50dW5lci5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImVwZ1NvdXJjZSI6DQogICAgICAgICAgICAgICAgdmFyIHRleHQgPSBbIlBNUyIsICJYRVBHIl07DQogICAgICAgICAgICAgICAgdmFyIHZhbHVlcyA9IFsiUE1TIiwgIlhFUEciXTsNCiAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCAiWEVQRyIsIGtleSk7DQogICAgICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgiY2xhc3MiLCAid2l6YXJkIik7DQogICAgICAgICAgICAgICAgc2VsZWN0LmlkID0ga2V5Ow0KICAgICAgICAgICAgICAgIGRvYy5hcHBlbmRDaGlsZChzZWxlY3QpOw0KICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uID0gInt7LndpemFyZC5lcGdTb3VyY2UuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJtM3UiOg0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBrZXksICIiKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LndpemFyZC5tM3UucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgiY2xhc3MiLCAid2l6YXJkIik7DQogICAgICAgICAgICAgICAgaW5wdXQuaWQgPSBrZXk7DQogICAgICAgICAgICAgICAgZG9jLmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbiA9ICJ7ey53aXphcmQubTN1LmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAieG1sdHYiOg0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBrZXksICIiKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LndpemFyZC54bWx0di5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJjbGFzcyIsICJ3aXphcmQiKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5pZCA9IGtleTsNCiAgICAgICAgICAgICAgICBkb2MuYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uID0gInt7LndpemFyZC54bWx0di5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICAgICAgY29uc29sZS5sb2coa2V5KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgfQ0KICAgICAgICB2YXIgcHJlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiUFJFIik7DQogICAgICAgIHByZS5pbm5lckhUTUwgPSBkZXNjcmlwdGlvbjsNCiAgICAgICAgZG9jLmFwcGVuZENoaWxkKHByZSk7DQogICAgICAgIGNvbnNvbGUubG9nKGhlYWRsaW5lLCBrZXkpOw0KICAgIH0NCn0NCmZ1bmN0aW9uIHJlYWR5Rm9yQ29uZmlndXJhdGlvbih3aXphcmQpIHsNCiAgICB2YXIgc2VydmVyID0gbmV3IFNlcnZlcigiZ2V0U2VydmVyQ29uZmlnIik7DQogICAgc2VydmVyLnJlcXVlc3QobmV3IE9iamVjdCgpKTsNCiAgICBzaG93RWxlbWVudCgibG9hZGluZyIsIGZhbHNlKTsNCiAgICBjb25maWd1cmF0aW9uV2l6YXJkW3dpemFyZF0uY3JlYXRlV2l6YXJkKCk7DQp9DQpmdW5jdGlvbiBzYXZlV2l6YXJkKCkgew0KICAgIHZhciBjbWQgPSAic2F2ZVdpemFyZCI7DQogICAgdmFyIGRpdiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb250ZW50Iik7DQogICAgdmFyIGNvbmZpZyA9IGRpdi5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCJ3aXphcmQiKTsNCiAgICB2YXIgd2l6YXJkID0gbmV3IE9iamVjdCgpOw0KICAgIGZvciAodmFyIGkgPSAwOyBpIDwgY29uZmlnLmxlbmd0aDsgaSsrKSB7DQogICAgICAgIHZhciBuYW1lOw0KICAgICAgICB2YXIgdmFsdWU7DQogICAgICAgIHN3aXRjaCAoY29uZmlnW2ldLnRhZ05hbWUpIHsNCiAgICAgICAgICAgIGNhc2UgIlNFTEVDVCI6DQogICAgICAgICAgICAgICAgbmFtZSA9IGNvbmZpZ1tpXS5uYW1lOw0KICAgICAgICAgICAgICAgIHZhbHVlID0gY29uZmlnW2ldLnZhbHVlOw0KICAgICAgICAgICAgICAgIC8vIElmIHRoZSB2YWx1ZSBpcyBhIG51bWJlciwgc3RvcmUgaXQgYXMgYSBudW1iZXINCiAgICAgICAgICAgICAgICBpZiAoaXNOYU4odmFsdWUpKSB7DQogICAgICAgICAgICAgICAgICAgIHdpemFyZFtuYW1lXSA9IHZhbHVlOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICAgICAgd2l6YXJkW25hbWVdID0gcGFyc2VJbnQodmFsdWUpOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgIklOUFVUIjoNCiAgICAgICAgICAgICAgICBzd2l0Y2ggKGNvbmZpZ1tpXS50eXBlKSB7DQogICAgICAgICAgICAgICAgICAgIGNhc2UgInRleHQiOg0KICAgICAgICAgICAgICAgICAgICAgICAgbmFtZSA9IGNvbmZpZ1tpXS5uYW1lOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSBjb25maWdbaV0udmFsdWU7DQogICAgICAgICAgICAgICAgICAgICAgICBpZiAodmFsdWUubGVuZ3RoID09IDApIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgbXNnID0gbmFtZS50b1VwcGVyQ2FzZSgpICsgIjogIiArICJ7ey5hbGVydC5taXNzaW5nSW5wdXR9fSI7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgYWxlcnQobXNnKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICB3aXphcmRbbmFtZV0gPSB2YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICAgICAgLy8gY29kZS4uLg0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICB9DQogICAgfQ0KICAgIHZhciBkYXRhID0gbmV3IE9iamVjdCgpOw0KICAgIGRhdGFbIndpemFyZCJdID0gd2l6YXJkOw0KICAgIHZhciBzZXJ2ZXIgPSBuZXcgU2VydmVyKGNtZCk7DQogICAgc2VydmVyLnJlcXVlc3QoZGF0YSk7DQogICAgY29uc29sZS5sb2coZGF0YSk7DQp9DQovLyBXaXphcmQNCnZhciBjb25maWd1cmF0aW9uV2l6YXJkID0gbmV3IEFycmF5KCk7DQpjb25maWd1cmF0aW9uV2l6YXJkLnB1c2gobmV3IFdpemFyZEl0ZW0oInR1bmVyIiwgInt7LndpemFyZC50dW5lci50aXRsZX19IikpOw0KY29uZmlndXJhdGlvbldpemFyZC5wdXNoKG5ldyBXaXphcmRJdGVtKCJlcGdTb3VyY2UiLCAie3sud2l6YXJkLmVwZ1NvdXJjZS50aXRsZX19IikpOw0KY29uZmlndXJhdGlvbldpemFyZC5wdXNoKG5ldyBXaXphcmRJdGVtKCJtM3UiLCAie3sud2l6YXJkLm0zdS50aXRsZX19IikpOw0KY29uZmlndXJhdGlvbldpemFyZC5wdXNoKG5ldyBXaXphcmRJdGVtKCJ4bWx0diIsICJ7ey53aXphcmQueG1sdHYudGl0bGV9fSIpKTsNCg==" - webUI["html/img/xmltv.png"] = "iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAAAXNSR0IArs4c6QAAAAlwSFlzAAAsSwAALEsBpT2WqQAABCRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IlhNUCBDb3JlIDUuNC4wIj4KICAgPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIgogICAgICAgICAgICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgICAgICAgICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyI+CiAgICAgICAgIDx0aWZmOlJlc29sdXRpb25Vbml0PjI8L3RpZmY6UmVzb2x1dGlvblVuaXQ+CiAgICAgICAgIDx0aWZmOkNvbXByZXNzaW9uPjU8L3RpZmY6Q29tcHJlc3Npb24+CiAgICAgICAgIDx0aWZmOlhSZXNvbHV0aW9uPjI4ODwvdGlmZjpYUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6T3JpZW50YXRpb24+MTwvdGlmZjpPcmllbnRhdGlvbj4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+Mjg4PC90aWZmOllSZXNvbHV0aW9uPgogICAgICAgICA8ZXhpZjpQaXhlbFhEaW1lbnNpb24+NTA8L2V4aWY6UGl4ZWxYRGltZW5zaW9uPgogICAgICAgICA8ZXhpZjpDb2xvclNwYWNlPjE8L2V4aWY6Q29sb3JTcGFjZT4KICAgICAgICAgPGV4aWY6UGl4ZWxZRGltZW5zaW9uPjUwPC9leGlmOlBpeGVsWURpbWVuc2lvbj4KICAgICAgICAgPGRjOnN1YmplY3Q+CiAgICAgICAgICAgIDxyZGY6QmFnLz4KICAgICAgICAgPC9kYzpzdWJqZWN0PgogICAgICAgICA8eG1wOk1vZGlmeURhdGU+MjAxOC0wNy0yOFQyMDowNzozMzwveG1wOk1vZGlmeURhdGU+CiAgICAgICAgIDx4bXA6Q3JlYXRvclRvb2w+UGl4ZWxtYXRvciAzLjM8L3htcDpDcmVhdG9yVG9vbD4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgIDwvcmRmOlJERj4KPC94OnhtcG1ldGE+Co6j9bsAAAGgSURBVGgF7VqxTsNADL0gYGEon8DOwsbAAH8BYmJn6cYIn8DC3h0+oixISFRiYYCJL0AwMMBAeK5w2rpV6uikxHfYknW98+vds18TK21DWGBlWR7CH+BfcEv2AzLP8HP42gLqkyUATuEp2PWEdQjF9ATs1zF/g29Mrxt+vVcUxR3xWxEktzFPJQmivsv8ZSI9DiQyVnxlIonwn6fpiczXpNuVVXH8O+a3Ys3y9NUyuf/NTTbEHZTjUlGSRzSiPhroUIENwB4AS/vS/susDwDhTpYBER9g7wHh5DWyibV9CiitCZbIafDEYUuJHQI3Nr/9ciWsjK6IFSWYhyvClbAyZqOIlYJG84jq7E1Ot97Zm+TinV1TrWwudk9EI3ebGFekzWprzspGEU2ySWCiOrs/s9dr7M/s9fVJJJrNXcsTsfaJc0WsKZINH+/sf1Jqvl1n1f2ZnStRN/pdq646XcSkIh9dkIg4s+IrE3nCpp8RG7f91ns+cCYR/LD4jcAZB42PN+A7/mcQ8ZxJhBYQvMJwBB/BKTFLVoLMC/wCfgyv7BesTKUC2LKM3wAAAABJRU5ErkJggg==" - webUI["html/lang/en.json"] = "ew0KICAibWFpbk1lbnUiOg0KICB7DQogICAgIml0ZW0iOg0KICAgIHsNCiAgICAgICJwbGF5bGlzdCI6ICJQbGF5bGlzdCIsDQogICAgICAicG1zSUQiOiAiUE1TIElEIiwNCiAgICAgICJmaWx0ZXIiOiAiRmlsdGVyIiwNCiAgICAgICJ4bWx0diI6ICJYTUxUViIsDQogICAgICAibWFwcGluZyI6ICJNYXBwaW5nIiwNCiAgICAgICJ1c2VycyI6ICJVc2VycyIsDQogICAgICAic2V0dGluZ3MiOiAiU2V0dGluZ3MiLA0KICAgICAgImxvZyI6ICJMb2ciLA0KICAgICAgImxvZ291dCI6ICJMb2dvdXQiDQogICAgfSwNCiAgICAiaGVhZGxpbmUiOg0KICAgIHsNCiAgICAgICJwbGF5bGlzdCI6ICJMb2NhbCBvciByZW1vdGUgcGxheWxpc3RzIiwNCiAgICAgICJmaWx0ZXIiOiAiRmlsdGVyIHBsYXlsaXN0IiwNCiAgICAgICJ4bWx0diI6ICJMb2NhbCBvciByZW1vdGUgWE1MVFYgZmlsZXMiLA0KICAgICAgIm1hcHBpbmciOiAiTWFwIHBsYXlsaXN0IGNoYW5uZWxzIHRvIEVQRyBjaGFubmVscyIsDQogICAgICAidXNlcnMiOiAiVXNlciBtYW5hZ2VtZW50IiwNCiAgICAgICJzZXR0aW5ncyI6ICJTZXR0aW5ncyIsDQogICAgICAibG9nIjogIkxvZyIsDQogICAgICAibG9nb3V0IjogIkxvZ291dCINCiAgICB9DQogIH0sDQogICJjb25maXJtIjoNCiAgew0KICAgICJyZXN0b3JlIjogIkFsbCBkYXRhIHdpbGwgYmUgcmVwbGFjZWQgd2l0aCB0aG9zZSBmcm9tIHRoZSBiYWNrdXAuIFNob3VsZCB0aGUgZmlsZXMgYmUgcmVzdG9yZWQ/Ig0KICB9LA0KICAiYWxlcnQiOg0KICB7DQogICAgImZpbGVMb2FkaW5nRXJyb3IiOiAiRmlsZSBjb3VsZG4ndCBiZSBsb2FkZWQiLA0KICAgICJpbnZhbGlkQ2hhbm5lbE51bWJlciI6ICJJbnZhbGlkIGNoYW5uZWwgbnVtYmVyIiwNCiAgICAibWlzc2luZ0lucHV0IjogIk1pc3NpbmcgaW5wdXQiDQogIH0sDQogICJidXR0b24iOg0KICB7DQogICAgImJhY2siOiAiQmFjayIsDQogICAgImJhY2t1cCI6ICJCYWNrdXAiLA0KICAgICJidWxrRWRpdCI6ICJCdWxrIEVkaXQiLA0KICAgICJjYW5jZWwiOiAiQ2FuY2VsIiwNCiAgICAiZGVsZXRlIjogIkRlbGV0ZSIsDQogICAgImRvbmUiOiAiRG9uZSIsDQogICAgImxvZ2luIjogIkxvZ2luIiwNCiAgICAibmV3IjogIk5ldyIsDQogICAgIm5leHQiOiAiTmV4dCIsDQogICAgInJlc3RvcmUiOiAiUmVzdG9yZSIsDQogICAgInNhdmUiOiAiU2F2ZSIsDQogICAgInNlYXJjaCI6ICJTZWFyY2giLA0KICAgICJ1cGRhdGUiOiAiVXBkYXRlIiwNCiAgICAiY3JhZXRlQWNjb3VudCI6ICJDcmVhdGUgQWNjb3VudCIsDQogICAgInJlc2V0TG9ncyI6ICJSZXNldCBMb2dzIiwNCiAgICAidXBsb2FkTG9nbyI6ICJVcGxvYWQgTG9nbyINCiAgfSwNCiAgImZpbHRlciI6DQogIHsNCiAgICAidGFibGUiOg0KICAgIHsNCiAgICAgICJuYW1lIjogIkZpbHRlciBOYW1lIiwNCiAgICAgICJ0eXBlIjogIkZpbHRlciBUeXBlIiwNCiAgICAgICJmaWx0ZXIiOiAiRmlsdGVyIg0KICAgIH0sDQogICAgImN1c3RvbSI6ICJDdXN0b20iLA0KICAgICJncm91cCI6ICJNM1UgR3JvdXAiLA0KICAgICJuYW1lIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiRmlsdGVyIE5hbWUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIkZpbHRlciBuYW1lIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAiZGVzY3JpcHRpb24iOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJEZXNjcmlwdGlvbiIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiRGVzY3JpcHRpb24iLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJ0eXBlIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiVHlwZSIsDQogICAgICAiZ3JvdXBUaXRsZSI6ICJHcm91cCBUaXRsZSIsDQogICAgICAiY3VzdG9tRmlsdGVyIjogIkN1c3RvbSBGaWx0ZXIiDQogICAgfSwNCiAgICAiY2FzZVNlbnNpdGl2ZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIkNhc2UgU2Vuc2l0aXZlIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJmaWx0ZXJSdWxlIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiRmlsdGVyIFJ1bGUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIlNwb3J0IHtIRH0gIXtFUyxJVH0iLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJmaWx0ZXJHcm91cCI6DQogICAgew0KICAgICAgInRpdGxlIjogIkdyb3VwIFRpdGxlIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIlNlbGVjdCBhIE0zVSBncm91cC4gKENvdW50ZXIpPGJyPkNoYW5naW5nIHRoZSBncm91cCB0aXRsZSBpbiB0aGUgTTNVIGludmFsaWRhdGVzIHRoZSBmaWx0ZXIuIg0KICAgIH0sDQogICAgImluY2x1ZGUiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJJbmNsdWRlIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJGSEQsVUhEIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJDaGFubmVsIG5hbWUgbXVzdCBpbmNsdWRlLjxicj4oQ29tbWEgc2VwYXJhdGVkKSBDb21tYSBtZWFucyBvciINCiAgICB9LA0KICAgICJleGNsdWRlIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiRXhjbHVkZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiRVMsSVQiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIkNoYW5uZWwgbmFtZSBtdXN0IG5vdCBjb250YWluLjxicj4oQ29tbWEgc2VwYXJhdGVkKSBDb21tYSBtZWFucyBvciINCiAgICB9LA0KICAgICJwcmVzZXJ2ZU1hcHBpbmciOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJQcmVzZXJ2ZSBFeGlzdGluZyBNM1U8YnI+Q2hhbm5lbCBOdW1iZXJzIiwNCiAgICAgICJwYWxjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIlByZXNlcnZlIGV4aXN0aW5nIE0zVSBwbGF5bGlzdCBjaGFubmVsIG51bWJlcnM/Ig0KICAgIH0sDQogICAgInN0YXJ0aW5nQ2hhbm5lbCI6DQogICAgew0KICAgICAgInRpdGxlIjogIlN0YXJ0aW5nIENoYW5uZWwgTnVtYmVyIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJkZWZhdWx0TWlzc2luZ0VQRyI6DQogICAgew0KICAgICAgInRpdGxlIjogIkZpbGwgTWlzc2luZyBFUEcgRGF0YSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJXaGVuIHRoZXJlIGlzIG5vIG1hdGNoaW5nIEVQRyBkYXRhIGZvciBjaGFubmVsLCA8YnI+YXV0b2ZpbGwgd2l0aCB4VGVWZSBkdW1teSBFUEcgZGF0YT8iDQogICAgfQ0KDQogIH0sDQogICJwbGF5bGlzdCI6DQogIHsNCiAgICAidGFibGUiOg0KICAgIHsNCiAgICAgICJwbGF5bGlzdCI6ICJQbGF5bGlzdCIsDQogICAgICAidHVuZXIiOiAiVHVuZXIiLA0KICAgICAgImxhc3RVcGRhdGUiOiAiTGFzdCBVcGRhdGUiLA0KICAgICAgImF2YWlsYWJpbGl0eSI6ICJBdmFpbGFiaWxpdHkiLA0KICAgICAgInR5cGUiOiAiVHlwZSIsDQogICAgICAic3RyZWFtcyI6ICJTdHJlYW1zIiwNCiAgICAgICJncm91cFRpdGxlIjogImdyb3VwLXRpdGxlIiwNCiAgICAgICJ0dmdJRCI6ICJ0dmctaWQiLA0KICAgICAgInVuaXF1ZUlEIjogIlVuaXF1ZSBJRCINCiAgICB9LA0KICAgICJwbGF5bGlzdFR5cGUiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJQbGF5bGlzdCB0eXBlIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJ0eXBlIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiVHlwZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAibmFtZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIk5hbWUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIlBsYXlsaXN0IG5hbWUiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJkZXNjcmlwdGlvbiI6DQogICAgew0KICAgICAgInRpdGxlIjogIkRlc2NyaXB0aW9uIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJEZXNjcmlwdGlvbiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgImZpbGVNM1UiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJNM1UgRmlsZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiRmlsZSBwYXRoIG9yIFVSTCBvZiB0aGUgTTNVIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAiZmlsZUhESFIiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJIREhvbWVSdW4gSVAiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIklQIGFkZHJlc3MgYW5kIHBvcnQgKDE5Mi4xNjguMS4xMDo1MDA0KSIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgInR1bmVyIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiVHVuZXIgLyBTdHJlYW1zIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIk51bWJlciBvZiBwYXJhbGxlbCBjb25uZWN0aW9ucyB0aGF0IGNhbiBiZSBlc3RhYmxpc2hlZCB0byB0aGUgcHJvdmlkZXIuIDxicj5Pbmx5IGF2YWlsYWJsZSB3aXRoIGFjdGl2YXRlZCBidWZmZXIuPGJyPk5ldyBzZXR0aW5ncyB3aWxsIG9ubHkgYmUgYXBwbGllZCBhZnRlciBxdWl0dGluZyBhbGwgc3RyZWFtcy4iDQogICAgfQ0KICB9LA0KICAieG1sdHYiOg0KICB7DQogICAgInRhYmxlIjoNCiAgICB7DQogICAgICAiZ3VpZGUiOiAiR3VpZGUiLA0KICAgICAgImxhc3RVcGRhdGUiOiAiTGFzdCBVcGRhdGUiLA0KICAgICAgImF2YWlsYWJpbGl0eSI6ICJBdmFpbGFiaWxpdHkiLA0KICAgICAgImNoYW5uZWxzIjogIkNoYW5uZWxzIiwNCiAgICAgICJwcm9ncmFtcyI6ICJQcm9ncmFtcyINCiAgICB9LA0KICAgICJuYW1lIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiTmFtZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiR3VpZGUgbmFtZSIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgImRlc2NyaXB0aW9uIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiRGVzY3JpcHRpb24iLA0KICAgICAgInBsYWNlaG9sZGVyIjogIkRlc2NyaXB0aW9uIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAiZmlsZVhNTFRWIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiWE1MVFYgRmlsZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiRmlsZSBwYXRoIG9yIFVSTCBvZiB0aGUgWE1MVFYiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9DQogIH0sDQogICJtYXBwaW5nIjoNCiAgew0KICAgICJ0YWJsZSI6DQogICAgew0KICAgICAgImNoTm8iOiAiQ2guIE5vLiIsDQogICAgICAibG9nbyI6ICJMb2dvIiwNCiAgICAgICJjaGFubmVsTmFtZSI6ICJDaGFubmVsIE5hbWUiLA0KICAgICAgInBsYXlsaXN0IjogIlBsYXlsaXN0IiwNCiAgICAgICJncm91cFRpdGxlIjogIkdyb3VwIFRpdGxlIiwNCiAgICAgICJ4bWx0dkZpbGUiOiAiWE1MVFYgRmlsZSIsDQogICAgICAieG1sdHZJRCI6ICJYTUxUViBJRCIsDQogICAgICAidGltZXNoaWZ0IjogIlRpbWVzaGlmdCINCiAgICB9LA0KICAgICJhY3RpdmUiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJBY3RpdmUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgImNoYW5uZWxOYW1lIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiQ2hhbm5lbCBOYW1lIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJkZXNjcmlwdGlvbiI6DQogICAgew0KICAgICAgInRpdGxlIjogIkNoYW5uZWwgRGVzY3JpcHRpb24iLA0KICAgICAgInBsYWNlaG9sZGVyIjogIlVzZWQgYnkgdGhlIER1bW15IGFzIGFuIFhNTCBkZXNjcmlwdGlvbiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgInVwZGF0ZUNoYW5uZWxOYW1lIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiVXBkYXRlIENoYW5uZWwgTmFtZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAiY2hhbm5lbExvZ28iOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJMb2dvIFVSTCIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAidXBkYXRlQ2hhbm5lbExvZ28iOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJVcGRhdGUgQ2hhbm5lbCBMb2dvIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJlcGdDYXRlZ29yeSI6DQogICAgew0KICAgICAgInRpdGxlIjogIkVQRyBDYXRlZ29yeSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAibTN1R3JvdXBUaXRsZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIkdyb3VwIFRpdGxlICh4dGV2ZS5tM3UpIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJ4bWx0dkZpbGUiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJYTUxUViBGaWxlIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJ4bWx0dkNoYW5uZWwiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJYTUxUViBDaGFubmVsIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJ0aW1lc2hpZnQiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJUaW1lc2hpZnQiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIjAiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9DQogIH0sDQogICJ1c2VycyI6DQogIHsNCiAgICAidGFibGUiOg0KICAgIHsNCiAgICAgICJ1c2VybmFtZSI6ICJVc2VybmFtZSIsDQogICAgICAicGFzc3dvcmQiOiAiUGFzc3dvcmQiLA0KICAgICAgIndlYiI6ICJXRUIiLA0KICAgICAgInBtcyI6ICJQTVMiLA0KICAgICAgIm0zdSI6ICJNM1UiLA0KICAgICAgInhtbCI6ICJYTUwiLA0KICAgICAgImFwaSI6ICJBUEkiDQogICAgfSwNCiAgICAidXNlcm5hbWUiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJVc2VybmFtZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiVXNlcm5hbWUiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJwYXNzd29yZCI6DQogICAgew0KICAgICAgInRpdGxlIjogIlBhc3N3b3JkIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJQYXNzd29yZCIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgImNvbmZpcm0iOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJDb25maXJtIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJQYXNzd29yZCBjb25maXJtIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAid2ViIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiV2ViIEFjY2VzcyIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAicG1zIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiUE1TIEFjY2VzcyIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAibTN1IjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiTTNVIEFjY2VzcyIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAieG1sIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiWE1MIEFjY2VzcyIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAiYXBpIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiQVBJIEFjY2VzcyIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfQ0KICB9LA0KICAic2V0dGluZ3MiOg0KICB7DQogICAgImNhdGVnb3J5IjoNCiAgICB7DQogICAgICAiZ2VuZXJhbCI6ICJHZW5lcmFsIiwNCiAgICAgICJmaWxlcyI6ICJGaWxlcyIsDQogICAgICAic3RyZWFtaW5nIjogIlN0cmVhbWluZyIsDQogICAgICAiYmFja3VwIjogIkJhY2t1cCIsDQogICAgICAiYXV0aGVudGljYXRpb24iOiAiQXV0aGVudGljYXRpb24iDQogICAgfSwNCiAgICAidXBkYXRlIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiU2NoZWR1bGUgZm9yIHVwZGF0aW5nIChQbGF5bGlzdCwgWE1MVFYsIEJhY2t1cCkiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIjAwMDAsMTAwMCwyMDAwIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJUaW1lIGluIDI0IGhvdXIgZm9ybWF0ICgwODAwID0gODowMCBhbSkuIE1vcmUgdGltZXMgY2FuIGJlIGVudGVyZWQgY29tbWEgc2VwYXJhdGVkLiBMZWF2ZSB0aGlzIGZpZWxkIGVtcHR5IGlmIG5vIHVwZGF0ZXMgYXJlIHRvIGJlIGNhcnJpZWQgb3V0LiINCiAgICB9LA0KICAgICJhcGkiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJBUEkgSW50ZXJmYWNlIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJWaWEgQVBJIGludGVyZmFjZSBpdCBpcyBwb3NzaWJsZSB0byBzZW5kIGNvbW1hbmRzIHRvIHhUZVZlLiBBUEkgZG9jdW1lbnRhdGlvbiBpcyA8YSBocmVmPSdodHRwczovL2dpdGh1Yi5jb20veHRldmUtcHJvamVjdC94VGVWZS1Eb2N1bWVudGF0aW9uL2Jsb2IvbWFzdGVyL2VuL2NvbmZpZ3VyYXRpb24ubWQjYXBpJz5oZXJlPC9hPiINCiAgICB9LA0KICAgICJlcGdTb3VyY2UiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJFUEcgU291cmNlIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJQTVM6PGJyPi0gVXNlIEVQRyBkYXRhIGZyb20gUGxleCBvciBFbWJ5IDxicj48YnI+WEVQRzo8YnI+LSBVc2Ugb2Ygb25lIG9yIG1vcmUgWE1MVFYgZmlsZXM8YnI+LSBDaGFubmVsIG1hbmFnZW1lbnQ8YnI+LSBNM1UgLyBYTUxUViBleHBvcnQgKEhUVFAgbGluayBmb3IgSVBUViBhcHBzKSINCiAgICB9LA0KICAgICJ0dW5lciI6DQogICAgew0KICAgICAgInRpdGxlIjogIk51bWJlciBvZiBUdW5lcnMiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIk51bWJlciBvZiBwYXJhbGxlbCBjb25uZWN0aW9ucyB0aGF0IGNhbiBiZSBlc3RhYmxpc2hlZCB0byB0aGUgcHJvdmlkZXIuPGJyPkF2YWlsYWJsZSBmb3I6IFBsZXgsIEVtYnkgKEhESFIpLCBNM1UgKHdpdGggYWN0aXZlIGJ1ZmZlcikuPGJyPkFmdGVyIGEgY2hhbmdlLCB4VGVWZSBtdXN0IGJlIGRlbGV0ZSBpbiB0aGUgUGxleCAvIEVtYnkgRFZSIHNldHRpbmdzIGFuZCBzZXQgdXAgYWdhaW4uIg0KICAgIH0sDQogICAgImZpbGVzVXBkYXRlIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiVXBkYXRlcyBhbGwgZmlsZXMgYXQgc3RhcnR1cCIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiVXBkYXRlcyBhbGwgcGxheWxpc3RzLCB0dW5lciBhbmQgWE1MVFYgZmlsZXMgYXQgc3RhcnR1cC4iDQogICAgfSwNCiAgICAiY2FjaGVJbWFnZXMiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJJbWFnZSBDYWNoaW5nIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJBbGwgaW1hZ2VzIGZyb20gdGhlIFhNTFRWIGZpbGUgYXJlIGNhY2hlZCwgYWxsb3dpbmcgZmFzdGVyIHJlbmRlcmluZyBvZiB0aGUgZ3JpZCBpbiB0aGUgY2xpZW50Ljxicj5Eb3dubG9hZGluZyB0aGUgaW1hZ2VzIG1heSB0YWtlIGEgd2hpbGUgYW5kIHdpbGwgYmUgZG9uZSBpbiB0aGUgYmFja2dyb3VuZC4iDQogICAgfSwNCiAgICAicmVwbGFjZUVtcHR5SW1hZ2VzIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiUmVwbGFjZSBtaXNzaW5nIHByb2dyYW0gaW1hZ2VzIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJJZiB0aGUgcG9zdGVyIGluIHRoZSBYTUxUViBwcm9ncmFtIGlzIG1pc3NpbmcsIHRoZSBjaGFubmVsIGxvZ28gd2lsbCBiZSB1c2VkLiINCiAgICB9LA0KICAgICJ4dGV2ZUF1dG9VcGRhdGUiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJBdXRvbWF0aWMgdXBkYXRlIG9mIHhUZVZlIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJJZiBhIG5ldyB2ZXJzaW9uIG9mIHhUZVZlIGlzIGF2YWlsYWJsZSwgaXQgd2lsbCBiZSBhdXRvbWF0aWNhbGx5IGluc3RhbGxlZC4gVGhlIHVwZGF0ZXMgYXJlIGRvd25sb2FkZWQgZnJvbSBHaXRIdWIuIg0KICAgIH0sDQogICAgInN0cmVhbUJ1ZmZlcmluZyI6DQogICAgew0KICAgICAgInRpdGxlIjogIlN0cmVhbSBCdWZmZXIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIkZ1bmN0aW9ucyBvZiB0aGUgYnVmZmVyOjxicj4tIFRoZSBzdHJlYW0gaXMgcGFzc2VkIGZyb20geFRlVmUsIEZGbXBlZyBvciBWTEMgdG8gUGxleCwgRW1ieSBvciBNM1UgUGxheWVyPGJyPi0gU21hbGwgamVya2luZyBvZiB0aGUgc3RyZWFtcyBjYW4gYmUgY29tcGVuc2F0ZWQ8YnI+LSBITFMgLyBNM1U4IHN1cHBvcnQ8YnI+LSBSVFAgLyBSVFBTIHN1cHBvcnQgKG9ubHkgRkZtcGVnIG9yIFZMQyk8YnI+LSBSZS1zdHJlYW1pbmc8YnI+LSBTZXBhcmF0ZSB0dW5lciBsaW1pdCBmb3IgZWFjaCBwbGF5bGlzdCIsDQogICAgICAiaW5mb19mYWxzZSI6ICJObyBCdWZmZXIgKENsaWVudCBjb25uZWN0cyB0byB0aGUgc3RyZWFtaW5nIHNlcnZlcikiLA0KICAgICAgImluZm9feHRldmUiOiAieFRlVmUgY29ubmVjdHMgdG8gdGhlIHN0cmVhbWluZyBzZXJ2ZXIiLA0KICAgICAgImluZm9fZmZtcGVnIjogIkZGbXBlZyBjb25uZWN0cyB0byB0aGUgc3RyZWFtaW5nIHNlcnZlciIsDQogICAgICAiaW5mb192bGMiOiAiVkxDIGNvbm5lY3RzIHRvIHRoZSBzdHJlYW1pbmcgc2VydmVyIg0KDQogICAgfSwNCiAgICAidWRweHkiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJVRFB4eSBhZGRyZXNzIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJUaGUgYWRkcmVzcyBvZiB5b3VyIFVEUHh5IHNlcnZlci4gSWYgc2V0LCBhbmQgdGhlIGNoYW5uZWwgVVJMcyBpbiB0aGUgbTN1IGlzIG11bHRpY2FzdCwgeFRlVmUgd2lsbCByZXdyaXRlIGl0IHNvIHRoYXQgaXQgaXMgYWNjZXNzZWQgdmlhIHRoZSBVRFB4eSBzZXJ2aWNlLiIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiaG9zdDpwb3J0Ig0KICAgIH0sDQogICAgImZmbXBlZ1BhdGgiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJGRm1wZWcgQmluYXJ5IFBhdGgiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIlBhdGggdG8gRkZtcGVnIGJpbmFyeS4iLA0KICAgICAgInBsYWNlaG9sZGVyIjogIi9wYXRoL3RvL2ZmbXBlZyINCiAgICB9LA0KICAgICJmZm1wZWdPcHRpb25zIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiRkZtcGVnIE9wdGlvbnMiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIkZGbXBlZyBvcHRpb25zLjxicj5Pbmx5IGNoYW5nZSBpZiB5b3Uga25vdyB3aGF0IHlvdSBhcmUgZG9pbmcuPGJyPkxlYXZlIGJsYW5rIHRvIHNldCBkZWZhdWx0IHNldHRpbmdzLiIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiTGVhdmUgYmxhbmsgdG8gc2V0IGRlZmF1bHQgc2V0dGluZ3MiDQogICAgfSwNCiAgICAidmxjUGF0aCI6DQogICAgew0KICAgICAgInRpdGxlIjogIlZMQyAvIENWTEMgQmluYXJ5IFBhdGgiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIlBhdGggdG8gVkxDIC8gQ1ZMQyBiaW5hcnkuIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIvcGF0aC90by9jdmxjIg0KICAgIH0sDQogICAgInZsY09wdGlvbnMiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJWTEMgLyBDVkxDIE9wdGlvbnMiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIlZMQyAvIENWTEMgb3B0aW9ucy48YnI+T25seSBjaGFuZ2UgaWYgeW91IGtub3cgd2hhdCB5b3UgYXJlIGRvaW5nLjxicj5MZWF2ZSBibGFuayB0byBzZXQgZGVmYXVsdCBzZXR0aW5ncy4iLA0KICAgICAgInBsYWNlaG9sZGVyIjogIkxlYXZlIGJsYW5rIHRvIHNldCBkZWZhdWx0IHNldHRpbmdzIg0KICAgIH0sDQogICAgImJ1ZmZlclNpemUiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJCdWZmZXIgU2l6ZSIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiQnVmZmVyIHNpemUgaW4gTUIuPGJyPk0zVTg6IElmIHRoZSBUUyBzZWdtZW50IHNtYWxsZXIgdGhlbiB0aGUgYnVmZmVyIHNpemUsIHRoZSBmaWxlIHNpemUgb2YgdGhlIHNlZ21lbnQgaXMgdXNlZC4iDQogICAgfSwNCiAgICAiYnVmZmVyVGltZW91dCI6DQogICAgew0KICAgICAgInRpdGxlIjogIlRpbWVvdXQgZm9yIG5ldyBjbGllbnQgY29ubmVjdGlvbnMiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIlRoZSB4VGVWZSBidWZmZXIgd2FpdHMgdW50aWwgbmV3IGNsaWVudCBjb25uZWN0aW9ucyBhcmUgZXN0YWJsaXNoZWQuIEhlbHBmdWwgZm9yIGZhc3QgY2hhbm5lbCBzd2l0Y2hpbmcuIFZhbHVlIGluIG1pbGxpc2Vjb25kcy4iLA0KICAgICAgInBsYWNlaG9sZGVyIjogIjEwMCINCiAgICB9LA0KICAgICJ1c2VyQWdlbnQiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJVc2VyIEFnZW50IiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJVc2VyIEFnZW50IGZvciBIVFRQIHJlcXVlc3RzLiBGb3IgZXZlcnkgSFRUUCBjb25uZWN0aW9uLCB0aGlzIHZhbHVlIGlzIHVzZWQgZm9yIHRoZSB1c2VyIGFnZW50LiBTaG91bGQgb25seSBiZSBjaGFuZ2VkIGlmIHhUZVZlIGlzIGJsb2NrZWQuIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJ4VGVWZSINCiAgICB9LA0KICAgICJiYWNrdXBQYXRoIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiTG9jYXRpb24gZm9yIGF1dG9tYXRpYyBiYWNrdXBzIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIvbW50L2RhdGEvYmFja3VwL3h0ZXZlLyIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiQmVmb3JlIGFueSB1cGRhdGUgb2YgdGhlIHByb3ZpZGVyIGRhdGEgYnkgdGhlIHNjaGVkdWxlLCB4VGVWZSBjcmVhdGVzIGEgYmFja3VwLiBUaGUgcGF0aCBmb3IgdGhlIGF1dG9tYXRpYyBiYWNrdXBzIGNhbiBiZSBjaGFuZ2VkLiB4VGVWZSByZXF1aXJlcyB3cml0ZSBwZXJtaXNzaW9uIGZvciB0aGlzIGZvbGRlci4iDQogICAgfSwNCiAgICAidGVtcFBhdGgiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJMb2NhdGlvbiBmb3IgdGhlIHRlbXBvcmFyeSBmaWxlcyIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiL3RtcC94dGV2ZS8iLA0KICAgICAgImRlc2NyaXB0aW9uIjogIkxvY2F0aW9uIGZvciB0aGUgYnVmZmVyIGZpbGVzLiINCiAgICB9LA0KICAgICJiYWNrdXBLZWVwIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiTnVtYmVyIG9mIGJhY2t1cHMgdG8ga2VlcCIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiTnVtYmVyIG9mIGJhY2t1cHMgdG8ga2VlcC4gT2xkZXIgYmFja3VwcyBhcmUgYXV0b21hdGljYWxseSBkZWxldGVkLiINCiAgICB9LA0KICAgICJhdXRoZW50aWNhdGlvbldFQiI6DQogICAgew0KICAgICAgInRpdGxlIjogIldFQiBBdXRoZW50aWNhdGlvbiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiQWNjZXNzIHRvIHRoZSB3ZWIgaW50ZXJmYWNlIG9ubHkgcG9zc2libGUgd2l0aCBjcmVkZW50aWFscy4iDQogICAgfSwNCiAgICAiYXV0aGVudGljYXRpb25QTVMiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJQTVMgQXV0aGVudGljYXRpb24iLA0KICAgICAgImRlc2NyaXB0aW9uIjogIlBsZXggcmVxdWVzdHMgYXJlIG9ubHkgcG9zc2libGUgd2l0aCBhdXRoZW50aWNhdGlvbi4gPGJyPjxiPldhcm5pbmchISE8L2I+IEFmdGVyIGFjdGl2YXRpbmcgdGhpcyBmdW5jdGlvbiB4VGVWZSBtdXN0IGJlIGRlbGV0ZSBpbiB0aGUgUE1TIERWUiBzZXR0aW5ncyBhbmQgc2V0IHVwIGFnYWluLiINCiAgICB9LA0KICAgICJhdXRoZW50aWNhdGlvbk0zVSI6DQogICAgew0KICAgICAgInRpdGxlIjogIk0zVSBBdXRoZW50aWNhdGlvbiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiRG93bmxvYWRpbmcgdGhlIHh0ZXZlLm0zdSBmaWxlIHZpYSBhbiBIVFRQIHJlcXVlc3QgaXMgb25seSBwb3NzaWJsZSB3aXRoIGF1dGhlbnRpY2F0aW9uLiINCiAgICB9LA0KICAgICJhdXRoZW50aWNhdGlvblhNTCI6DQogICAgew0KICAgICAgInRpdGxlIjogIlhNTCBBdXRoZW50aWNhdGlvbiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiRG93bmxvYWRpbmcgdGhlIHh0ZXZlLnhtbCBmaWxlIHZpYSBhbiBIVFRQIHJlcXVlc3QgaXMgb25seSBwb3NzaWJsZSB3aXRoIGF1dGhlbnRpY2F0aW9uIg0KICAgIH0sDQogICAgImF1dGhlbnRpY2F0aW9uQVBJIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiQVBJIEF1dGhlbnRpY2F0aW9uIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJBY2Nlc3MgdG8gdGhlIEFQSSBpbnRlcmZhY2UgaXMgb25seSBwb3NzaWJsZSB3aXRoIGF1dGhlbnRpY2F0aW9uLiINCiAgICB9DQogIH0sDQogICJ3aXphcmQiOg0KICB7DQogICAgImVwZ1NvdXJjZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIkVQRyBTb3VyY2UiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIlBNUzo8YnI+LSBVc2UgRVBHIGRhdGEgZnJvbSBQbGV4IG9yIEVtYnkgPGJyPjxicj5YRVBHOjxicj4tIFVzZSBvZiBvbmUgb3IgbW9yZSBYTUxUViBmaWxlczxicj4tIENoYW5uZWwgbWFuYWdlbWVudDxicj4tIE0zVSAvIFhNTFRWIGV4cG9ydCAoSFRUUCBsaW5rIGZvciBJUFRWIGFwcHMpIg0KICAgIH0sDQogICAgInR1bmVyIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiTnVtYmVyIG9mIHR1bmVycyIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiTnVtYmVyIG9mIHBhcmFsbGVsIGNvbm5lY3Rpb25zIHRoYXQgY2FuIGJlIGVzdGFibGlzaGVkIHRvIHRoZSBwcm92aWRlci48YnI+QXZhaWxhYmxlIGZvcjogUGxleCwgRW1ieSAoSERIUiksIE0zVSAod2l0aCBhY3RpdmUgYnVmZmVyKS48YnI+QWZ0ZXIgYSBjaGFuZ2UsIHhUZVZlIG11c3QgYmUgZGVsZXRlIGluIHRoZSBQbGV4IC8gRW1ieSBEVlIgc2V0dGluZ3MgYW5kIHNldCB1cCBhZ2Fpbi4iDQogICAgfSwNCiAgICAibTN1IjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiTTNVIFBsYXlsaXN0IiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJGaWxlIHBhdGggb3IgVVJMIG9mIHRoZSBNM1UiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIkxvY2FsIG9yIHJlbW90ZSBwbGF5bGlzdHMiDQogICAgfSwNCiAgICAieG1sdHYiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJYTUxUViBGaWxlIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJGaWxlIHBhdGggb3IgVVJMIG9mIHRoZSBYTUxUViIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiTG9jYWwgb3IgcmVtb3RlIFhNTFRWIGZpbGUiDQogICAgfQ0KICB9LA0KICAibG9naW4iOg0KICB7DQogICAgImZhaWxlZCI6ICJVc2VyIGF1dGhlbnRpY2F0aW9uIGZhaWxlZCIsDQogICAgImhlYWRsaW5lIjogIkxvZ2luIiwNCiAgICAidXNlcm5hbWUiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJVc2VybmFtZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiVXNlcm5hbWUiDQogICAgfSwNCiAgICAicGFzc3dvcmQiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJQYXNzd29yZCIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiUGFzc3dvcmQiDQogICAgfQ0KICB9LA0KICAiYWNjb3VudCI6DQogIHsNCiAgICAiZmFpbGVkIjogIlBhc3N3b3JkIGRvZXMgbm90IG1hdGNoIiwNCiAgICAiaGVhZGxpbmUiOiAiQ3JlYXRlIHVzZXIgYWNjb3VudCIsDQogICAgInVzZXJuYW1lIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiVXNlcm5hbWUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIlVzZXJuYW1lIg0KICAgIH0sDQogICAgInBhc3N3b3JkIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiUGFzc3dvcmQiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIlBhc3N3b3JkIg0KICAgIH0sDQogICAgImNvbmZpcm0iOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJDb25maXJtIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJDb25maXJtIg0KICAgIH0NCiAgfQ0KfQ==" - webUI["html/css/screen.css"] = "bmF2IGltZyB7DQogIGRpc3BsYXk6IGJsb2NrOw0KICBtYXgtaGVpZ2h0OiAyMHB4Ow0KICBtYXgtd2lkdGg6IDIwcHg7DQogIGZsb2F0OiBsZWZ0Ow0KfQ0KDQpuYXYgcCB7DQogIHRleHQtYWxpZ246IGxlZnQ7DQogIHBhZGRpbmc6IDBweCAzMHB4Ow0KfQ0KDQojbGF5b3V0IHsNCiAgZGlzcGxheTogYmxvY2s7DQogIGhlaWdodDogMTAwJTsNCn0NCg0KDQoubGF5b3V0LWxlZnQgew0KICBkaXNwbGF5OiBibG9jazsNCiAgbWluLXdpZHRoOiAxNTBweDsNCiAgbWF4LXdpZHRoOiAyMCU7DQogIGJhY2tncm91bmQtY29sb3I6ICMxMTE7DQogIGhlaWdodDogaW5oZXJpdDsNCiAgZmxvYXQ6IGxlZnQ7DQp9DQoNCi5sYXlvdXQtcmlnaHQgew0KICBkaXNwbGF5OiBibG9jazsNCiAgYmFja2dyb3VuZC1jb2xvcjogIzQ0NDsNCn0NCg0KI21lbnUtd3JhcHBlciB7DQogIGhlaWdodDogMTAwJTsNCn0NCg0KDQojbG9nbyB7DQogIGRpc3BsYXk6IGJsb2NrOw0KICBtaW4td2lkdGg6IDE4MHB4Ow0KICB3aWR0aDogMTAwJTsNCiAgaGVpZ2h0OiAxMDBweDsNCiAgYmFja2dyb3VuZDogdXJsKCIuLi9pbWcvbG9nb193XzYwMHgyMDAucG5nIik7DQogIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7DQogIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjsgDQogIGJhY2tncm91bmQtc2l6ZTogMTAwJTsNCn0NCg0KDQojcGFnZSB7DQogIG1heC13aWR0aDogOTUwcHg7DQogIG1hcmdpbjogYXV0bzsNCiAgYmFja2dyb3VuZC1jb2xvcjogIzQ0NDsNCg0KICAvKg0KICBoZWlnaHQ6IC13ZWJraXQtY2FsYygxMDAlIC0gMTMwcHgpOw0KICBoZWlnaHQ6IC1tb3otY2FsYygxMDAlIC0gMTMwcHgpOw0KICBoZWlnaHQ6IGNhbGMoMTAwJSAtIDEzMHB4KTsNCiAgKi8NCiAgDQogIG1pbi1oZWlnaHQ6IC13ZWJraXQtY2FsYygxMDAlIC0gMTIwcHgpOw0KICBtaW4taGVpZ2h0OiAtbW96LWNhbGMoMTAwJSAtIDEyMHB4KTsNCiAgbWluLWhlaWdodDogY2FsYygxMDAlIC0gMTIwcHgpOw0KICANCiAgDQogIGJveC1zaGFkb3c6IDBweCA1cHggNXB4ICMyMjI7DQogIA0KfQ0KDQojdWlTZXR0aW5nIHsNCiAgZmxvYXQ6IHJpZ2h0Ow0KICBtYXJnaW4tcmlnaHQ6IDI1cHg7DQp9DQoNCiNib3ggaW5wdXRbdHlwZT10ZXh0XSwgI2JveCBpbnB1dFt0eXBlPXBhc3N3b3JkXSB7DQogIHdpZHRoOiAtd2Via2l0LWNhbGMoMTAwJSAtIDIwcHgpOw0KICB3aWR0aDogLW1vei1jYWxjKDEwMCUgLSAyMHB4KTsNCiAgd2lkdGg6IGNhbGMoMTAwJSAtIDIwcHgpOw0KfQ0KDQojYm94IGlucHV0W3R5cGU9c3VibWl0XXsNCiAgbWFyZ2luOiA1MHB4IGF1dG87DQp9DQoNCiNzZXR0aW5ncyB7DQogIGRpc3BsYXk6IGJsb2NrOw0KICBwYWRkaW5nOiAxMHB4IDEwcHg7DQp9DQoNCiNzZXR0aW5ncyBoNSB7DQogIG1hcmdpbjogNTBweCAwcHggMTBweCAwcHg7DQp9DQoNCiNjb250ZW50LWludGVyYWN0aW9uIC5zZWFyY2ggew0KICB3aWR0aDogMjAwcHg7DQogIGJvcmRlcjogMXB4IHNvbGlkICMwMDA7DQogIHBhZGRpbmc6IDlweDsNCiAgYmFja2dyb3VuZC1jb2xvcjogIzMzMzsNCiAgbWFyZ2luOiAxMHB4Ow0KICBmbG9hdDogcmlnaHQ7DQogIGJvcmRlci1yYWRpdXM6IDNweDsNCg0KfQ0KDQojbXlTdHJlYW1zIHsNCiAgcG9zaXRpb246IGZpeGVkOw0KICBib3R0b206IDBweDsNCiAgYmFja2dyb3VuZC1jb2xvcjogIzExMTsNCiAgd2lkdGg6IDEwMCU7DQogIG1heC13aWR0aDogOTUwcHg7DQoNCiAgLyoNCiAgbWF4LWhlaWdodDogMTAwcHg7DQogICovDQogIG1hcmdpbi1ib3R0b206IDBweDsNCn0NCg0KI215U3RyZWFtcyBpbWcgew0KICB3aWR0aDogNCU7DQogIHBhZGRpbmc6IDJweCA1cHg7DQogIGN1cnNvcjogcG9pbnRlcjsNCiAgZmxvYXQ6IHJpZ2h0Ow0KfQ0KDQojc2V0dGluZ3MtZm9vdGVyIHsNCg0KfQ0KDQoNCi8qIFdpemFyZCovDQojYm94IHsNCiAgYmFja2dyb3VuZC1jb2xvcjogIzQ0NDsNCiAgbWluLWhlaWdodDogNDAwcHg7DQogIA0KICBkaXNwbGF5OiBmbGV4Ow0KICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOw0KICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47DQp9DQoNCiNib3ggcHsNCiAgcGFkZGluZzogMTBweCAwcHg7DQp9DQoNCiNib3gtZm9vdGVyIHsNCiAgbWFyZ2luLXRvcDogYXV0bzsNCn0NCg0KI2JveC1mb290ZXIgew0KICBtYXJnaW46IGF1dG87DQogIHBhZGRpbmc6IDEwcHg7DQp9DQoNCiNoZWFkbGluZSB7DQogIGJhY2tncm91bmQtY29sb3I6ICMyMjI7DQogIGJvcmRlci1ib3R0b206IHNvbGlkIDJweCAjMjIyOw0KICB0cmFuc2l0aW9uOiBhbGwgMC41czsNCiAgcGFkZGluZzogMTBweCAwcHg7DQogIGRpc3BsYXk6IGJsb2NrOw0KfQ0KDQojY29udGVudCB7DQogIGRpc3BsYXk6IGJsb2NrOw0KICBvdmVyZmxvdzogYXV0bzsNCiAgcGFkZGluZzogMTBweDsNCn0NCg0KLyogLS0tICovDQoNCg0KI2NsaWVudEluZm8sICNhY3RpdmVTdHJlYW1zLCAjaW5hY3RpdmVTdHJlYW1zIHsNCiAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZTsNCiAgZGlzcGxheTogYmxvY2s7DQogIGZvbnQtc2l6ZTogOXB4Ow0KICBiYWNrZ3JvdW5kLWNvbG9yOiAjMTExOw0KICBjb2xvcjogIzAwRTZGRjsNCiAgYm9yZGVyLWJvdHRvbTogc29saWQgMHB4OzsNCiAgcGFkZGluZzogMHB4Ow0KICBsZXR0ZXItc3BhY2luZzogMXB4Ow0KICBvdmVyZmxvdy14OiBoaWRkZW47DQogIGJvcmRlci1zcGFjaW5nOiA0cHggNHB4Ow0KICBib3JkZXItYm90dG9tOiBzb2xpZCAxcHggIzQ0NDsNCn0NCg0KI215U3RyZWFtc0JveCB7DQogIHBvc2l0aW9uOiByZWxhdGl2ZTsNCiAgcGFkZGluZzogMHB4Ow0KICAvKmhlaWdodDogMTAwcHg7Ki8NCiAgbWF4LWhlaWdodDogMTUwcHg7DQogIGJhY2tncm91bmQtY29sb3I6ICMxMTE7DQogIGNvbG9yOiB3aGl0ZTsNCiAgZGlzcGxheTpmbGV4Ow0KICBqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyOw0KICBhbGlnbi1pdGVtczpjZW50ZXI7DQp9DQoNCiNvcGVuU3RyZWFtcyB7DQogIHdpZHRoOiAyMHB4Ow0KICBoZWlnaHQ6IDIwcHg7DQogIGN1cnNvcjogcG9pbnRlcjsNCiAgZmxvYXQ6IHJpZ2h0Ow0KICBwb3NpdGlvbjogYWJzb2x1dGU7DQogIHJpZ2h0OiAwcHg7DQogIGJvdHRvbTogMHB4Ow0KICBiYWNrZ3JvdW5kOiB1cmwoIi4uL2ltZy90b3VjaC5wbmciKTsNCiAgYmFja2dyb3VuZC1jb2xvcjogIzExMTsNCiAgDQogIGJhY2tncm91bmQtcG9zaXRpb246IGJvdHRvbSByaWdodDsgIA0KfQ0KDQojYWxsU3RyZWFtcyB7DQogIHdpZHRoOiAxMDAlOw0KICBoZWlnaHQ6IDEwMCU7DQogIHBhZGRpbmc6IDJweDsgICAgIA0KfQ0KDQojYWN0aXZlU3RyZWFtcywgI2luYWN0aXZlU3RyZWFtcyB7DQogIG92ZXJmbG93LXk6IHNjcm9sbDsNCiAgd2lkdGg6IDUwJTsNCiAgbWF4LWhlaWdodDogMTAwcHg7DQogIGZsb2F0OiBsZWZ0Ow0KfQ0KDQojYWN0aXZlU3RyZWFtcyAudGRLZXksICNpbmFjdGl2ZVN0cmVhbXMgLnRkS2V5IHsNCiAgd2lkdGg6IDc1cHg7DQp9DQoNCg0KDQoNCiNpbmFjdGl2ZVN0cmVhbXMgLnRkS2V5IHsNCiAgY29sb3I6IHJlZDsNCn0NCg0KI2NsaWVudEluZm8gLnRkVmFsLCAjbG9nSW5mbyAudGRWYWwsICNhY3RpdmVTdHJlYW1zIC50ZFZhbCwgI2luYWN0aXZlU3RyZWFtcyAudGRWYWwsICNtYXBwaW5nSW5mbyAudGRWYWx7DQogIGNvbG9yOiAjYWFhOw0KICB3aGl0ZS1zcGFjZTogaW5oZXJpdDsNCn0NCg0KI2JveC13cmFwcGVyIHsNCiAgZGlzcGxheTogaW5saW5lLWJsb2NrOw0KICB3aWR0aDogMTAwJTsNCiAgDQogIG92ZXJmbG93LXk6IHNjcm9sbDsNCn0NCg0KI2NvbnRlbnRfdGFibGUsICNtYXBwaW5nLWRldGFpbC10YWJsZSwgI2NvbnRlbnRfdGFibGUgew0KICBkaXNwbGF5OiB0YWJsZTsNCiAgDQogIGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7DQogIG92ZXJmbG93LXk6IHNjcm9sbDsNCiAgd2lkdGg6IDEwMCU7DQp9DQoNCg0KI2NvbnRlbnRfdGFibGUgLmNvbnRlbnRfdGFibGVfaGVhZGVyIHsNCiAgYmFja2dyb3VuZC1jb2xvcjogIzMzMzsNCiAgaGVpZ2h0OiA1MHB4Ow0KICBib3JkZXItYm90dG9tOiBzb2xpZCAxcHggIzExMTsNCiAgYm9yZGVyLWxlZnQ6IHNvbGlkIDNweCAjMzMzOw0KICBjdXJzb3I6IGF1dG87DQoNCn0NCg0KDQp0Ym9keSB7DQogIHdpZHRoOiAxMDAlOw0KfQ0KDQoNCi50YWJsZUVsbGlwc2lzIHsNCiAgd2lkdGg6IDE1MHB4Ow0KICBvdmVyZmxvdzogaGlkZGVuOw0KICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsNCiAgd2hpdGUtc3BhY2U6IG5vd3JhcDsNCn0NCg0KI2NvbnRlbnRfdGFibGUgaW1nIHsNCiAgZGlzcGxheTogYmxvY2s7DQogIG1heC1oZWlnaHQ6IDI4cHg7DQogIG1hcmdpbi1sZWZ0OiBhdXRvOw0KICBtYXJnaW4tcmlnaHQ6IGF1dG87DQogIG1heC13aWR0aDogMzBweDsNCn0NCg0KI2NvbnRlbnRfdGFibGUgdHJ7DQogIGJvcmRlci1sZWZ0OiBzb2xpZCAzcHggNDQ0Ow0KICBib3JkZXItYm90dG9tOiBzb2xpZCAxcHggIzMzMzsNCiAgY3Vyc29yOiBwb2ludGVyOw0KfQ0KDQojY29udGVudF90YWJsZSB0cjpob3ZlciB7DQogIGJhY2tncm91bmQtY29sb3I6ICMzMzM7DQp9DQoNCiNjb250ZW50X3RhYmxlIHRkIHsNCg0KICBwYWRkaW5nOiAwcHggMnB4Ow0KfQ0KDQojY29udGVudF90YWJsZSBpbnB1dFt0eXBlPXRleHRdew0KICB3aWR0aDogODAlOw0KICBtaW4td2lkdGg6IDM1cHg7DQogIG1heC13aWR0aDogNjBweDsNCiAgYm9yZGVyOiAwcHg7DQogIGJhY2tncm91bmQtY29sb3I6ICMzMzM7DQogIG1hcmdpbi1sZWZ0OiA1cHg7DQogIHRleHQtYWxpZ246IGxlZnQ7DQp9DQoNCiNjb250ZW50X3RhYmxlIGlucHV0W3R5cGU9Y2hlY2tib3hdew0KICBtYXgtd2lkdGg6IDI1cHg7DQogIG1hcmdpbjogYXV0bzsNCn0NCg0KDQouc2hvd0J1bGsgew0KICBkaXNwbGF5OiBibG9jazsNCn0NCg0KLmhpZGVCdWxrIHsNCiAgZGlzcGxheTogbm9uZTsNCn0NCg0KLm5vQnVsayB7DQoNCn0NCg0KI2NvbnRlbnRfdGFibGUgdHIuYWN0aXZlRVBHew0KICBib3JkZXItbGVmdDogc29saWQgM3B4IGxhd25ncmVlbjsNCn0NCg0KI2NvbnRlbnRfdGFibGUgdHIubm90QWN0aXZlRVBHew0KICBib3JkZXItbGVmdDogc29saWQgM3B4IHJlZDsNCn0NCg0KDQojbG9nU2NyZWVuIHB7DQogIHdoaXRlLXNwYWNlOiBwcmU7DQogIGZvbnQtc2l6ZTogMTBweDsNCiAgLyoNCiAgbGluZS1oZWlnaHQ6IDEuNmVtOw0KICBmb250LWZhbWlseTogIkFyaWFsIiwgc2Fucy1zZXJpZjsNCiAgKi8NCiAgbGV0dGVyLXNwYWNpbmc6IDFweDsNCiAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZTsgDQogIGZvbnQtc2l6ZTogMTJweDsgDQogIGZvbnQtc3R5bGU6IG5vcm1hbDsgDQogIGZvbnQtdmFyaWFudDogbm9ybWFsOyANCiAgbGluZS1oZWlnaHQ6IDEuNmVtOyANCn0NCg0KI3BvcHVwIHsNCiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjQpOw0KICBwb3NpdGlvbjogZml4ZWQ7DQogIGxlZnQ6IDBweDsNCiAgd2lkdGg6IDEwMCU7DQogIHotaW5kZXg6IDEwMDsNCiAgaGVpZ2h0OiAxMDAlOw0KfQ0KDQojbWFwcGluZy1kZXRhaWwsICN1c2VyLWRldGFpbCwgI2ZpbGUtZGV0YWlsLCAjcG9wdXAtY3VzdG9tIHsNCiAgYm94LXNoYWRvdzogMHB4IDVweCA0MHB4ICMwMDA7DQogIG1hcmdpbi10b3A6IDIwcHg7DQogIG1hcmdpbi1sZWZ0OiBhdXRvOw0KICBtYXJnaW4tcmlnaHQ6IGF1dG87DQogIA0KICBtYXgtd2lkdGg6IDYwMHB4Ow0KICBiYWNrZ3JvdW5kLWNvbG9yOiAjMjIyOw0KICBwYWRkaW5nOiAxMHB4Ow0KICBvdmVyZmxvdzphdXRvOw0KfQ0KDQojcG9wdXAtY3VzdG9tIGgzIHsNCiAgdGV4dC1hbGlnbjogY2VudGVyOw0KfQ0KDQojZmlsZS1kZXRhaWwgaW5wdXRbdHlwZT10ZXh0XSB7DQogIHdpZHRoOiAtd2Via2l0LWNhbGMoMTAwJSAtIDIwcHgpOw0KICB3aWR0aDogLW1vei1jYWxjKDEwMCUgLSAyMHB4KTsNCiAgd2lkdGg6IGNhbGMoMTAwJSAtIDIwcHgpOw0KfQ0KDQojbWFwcGluZy1kZXRhaWwgaW1nIHsNCiAgZGlzcGxheTogYmxvY2s7DQogIG1heC1oZWlnaHQ6IDMwcHg7DQogIG1hcmdpbi1ib3R0b206IDIwcHg7DQogIG1hcmdpbi1sZWZ0OiBhdXRvOw0KICBtYXJnaW4tcmlnaHQ6IGF1dG87DQp9DQoNCiNwb3B1cC1jdXN0b20gaW5wdXRbdHlwZT10ZXh0XSwgI3BvcHVwLWN1c3RvbSBpbnB1dFt0eXBlPXBhc3N3b3JkXSwgI21hcHBpbmctZGV0YWlsIGlucHV0W3R5cGU9dGV4dF0sICNjb250ZW50X3NldHRpbmdzIGlucHV0W3R5cGU9dGV4dF0sICNjb250ZW50X3NldHRpbmdzIGlucHV0W3R5cGU9cGFzc3dvcmRdew0KICBib3JkZXI6IHNvbGlkIDFweDsNCiAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDsNCiAgYmFja2dyb3VuZC1jb2xvcjogIzMzMzsNCiAgdGV4dC1hbGlnbjogbGVmdDsNCiAgd2lkdGg6IC13ZWJraXQtY2FsYygxMDAlIC0gMjBweCk7DQogIHdpZHRoOiAgICAtbW96LWNhbGMoMTAwJSAtIDIwcHgpOw0KICB3aWR0aDogICAgICAgICBjYWxjKDEwMCUgLSAyMHB4KTsNCn0NCg0KI3BvcHVwLWN1c3RvbSBpbnB1dFt0eXBlPXRleHRdLm5vdEF2YWlsYWJsZSB7DQogIGJvcmRlci1jb2xvcjogcmVkOw0KICBjb2xvcjogIzY2NjsNCiAgY3Vyc29yOiBub3QtYWxsb3dlZDsNCn0NCg0KI21hcHBpbmctZGV0YWlsLXRhYmxlLCAjdXNlci1kZXRhaWwtdGFibGUgew0KICBkaXNwbGF5OiBpbmxpbmUtdGFibGU7DQogIHdpZHRoOiAxMDAlOw0KfQ0KDQojcG9wdXAtY3VzdG9tIHRhYmxlLCAjY29udGVudF9zZXR0aW5ncyB0YWJsZSB7DQogIGRpc3BsYXk6IGlubGluZS10YWJsZTsNCiAgdGFibGUtbGF5b3V0OiBmaXhlZDsNCiAgd2lkdGg6IDEwMCU7DQp9DQoNCg0KI21hcHBpbmctZGV0YWlsLXRhYmxlIHRkLCAjdXNlci1kZXRhaWwtdGFibGUgdGQgew0KICBwYWRkaW5nOiAxMHB4IDBweDsNCg0KfQ0KDQojbWFwcGluZy1kZXRhaWwtdGFibGUgdGQubGVmdCwgI3VzZXItZGV0YWlsLXRhYmxlIHRkLmxlZnQsICNwb3B1cC1jdXN0b20gdGQubGVmdCB7DQogIHdpZHRoOiAzOCU7DQp9DQoNCi5pbnRlcmFjdGlvbiwgI2ludGVyYWN0aW9uIHsNCiAgbWFyZ2luLXRvcDogMjBweDsNCiAgZGlzcGxheTogaW5saW5lLWZsZXg7DQogIGZsb2F0OiByaWdodDsNCn0NCg0KLmludGVyYWN0aW9uIGlucHV0W3R5cGU9YnV0dG9uXSwgLmludGVyYWN0aW9uIGlucHV0W3R5cGU9c3VibWl0XSB7DQogIGJhY2tncm91bmQtY29sb3I6ICMwMDA7DQogIG1pbi13aWR0aDogMTAwcHg7DQogIG1hcmdpbjogMHB4IDEwcHg7DQogIHRleHQtYWxpZ246IGNlbnRlcjsNCn0NCg0KI25vdGlmaWNhdGlvbiB7DQogIGRpc3BsYXk6IGJsb2NrOw0KICBwb3NpdGlvbjogZml4ZWQ7DQogIHJpZ2h0OiAwcHg7DQogIGhlaWdodDogMTAwJTsNCiAgd2lkdGg6IDI1MHB4Ow0KICANCiAgYmFja2dyb3VuZC1jb2xvcjogIzIyMjsNCiAgYm94LXNoYWRvdzogMHB4IDBweCAyMHB4ICMwMDA7DQp9DQoNCiNub3RpZmljYXRpb24gaDUgew0KICBiYWNrZ3JvdW5kLWNvbG9yOiAjMTIxMjEyOw0KICBwYWRkaW5nOiA1cHggMTBweCA1cHggMTBweDsNCn0NCg0KI25vdGlmaWNhdGlvbiBwcmUgew0KICBwYWRkaW5nOiAwcHggMTBweCAwcHggMTBweDsNCn0NCg0KI25vdGlmaWNhdGlvbiBwIHsNCiAgZm9udC1zaXplOiAxMCBweDsNCiAgbWFyZ2luOiAwcHg7DQogIHBhZGRpbmc6IDBweCAxMHB4IDVweCAxMHB4Ow0KfQ0KDQojbm90aWZpY2F0aW9uIC5lbGVtZW50IHsNCiAgLypwYWRkaW5nOiAwcHggNXB4OyovDQogIG1hcmdpbjogNXB4IDVweDsNCiAgYm9yZGVyLXJhZGl1czogNXB4Ow0KICBiYWNrZ3JvdW5kLWNvbG9yOiAjMTgxODE4Ow0KICBib3JkZXItbGVmdDogMTBweCBzb2xpZCBncmVlbjsNCn0NCg0KDQpAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDYyMHB4KXsNCiAgYm9keSB7DQogICAgd2lkdGg6IDEwMCU7DQogICAgYmFja2dyb3VuZC1jb2xvcjogIzQ0NDsNCiAgfQ0KDQogIGgxIHsNCiAgICBmb250LXNpemU6IDI2cHg7DQogICAgbGV0dGVyLXNwYWNpbmc6IDNweDsNCiAgfQ0KDQogIG5hdiBwIHsNCiAgICBkaXNwbGF5OiBibG9jazsNCiAgfQ0KDQoNCg0KICAjaGVhZGVyX2NvbmZpZyB7DQogICAgZGlzcGxheTogYmxvY2s7DQogICAgaGVpZ2h0OiAxMDBweDsNCiAgICBiYWNrZ3JvdW5kOiB1cmwoIi4uL2ltZy9sb2dvX3dfNjAweDIwMC5wbmciKTsNCiAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0Ow0KICAgIA0KICAgIGJhY2tncm91bmQtc2l6ZTogMzAwcHggMTAwcHg7DQogIH0NCg0KICAjc2NyZWVuTG9nIHsNCiAgICBtYXJnaW4tbGVmdDogMzAwcHg7DQoNCiAgICB0cmFuc2l0aW9uOiBub25lOw0KICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50Ow0KICAgIGJvcmRlci1ib3R0b206IHNvbGlkIDFweCB0cmFuc3BhcmVudDsNCiAgICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAjMjIyOw0KICB9DQoNCiAgI3NldHRpbmdzIHsNCiAgICAvKg0KICAgIGhlaWdodDogLXdlYmtpdC1jYWxjKDEwMCUgLSAxMDBweCk7DQogICAgaGVpZ2h0OiAtbW96LWNhbGMoMTAwJSAtIDEwMHB4KTsNCiAgICBoZWlnaHQ6IGNhbGMoMTAwJSAtIDEwMHB4KTsNCiAgICAqLw0KICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsNCiAgICBvdmVyZmxvdzogYXV0bzsNCiAgfQ0KDQoNCiAgLnNjcmVlbkxvZ0hpZGRlbiB7DQogICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMHB4LCAwcHgpOw0KICB9DQoNCg0KICAjYm94IHsNCiAgICBkaXNwbGF5OiBibG9jazsNCiAgICBtaW4taGVpZ2h0OiA1MDBweDsNCiAgICBtYXgtd2lkdGg6IDUwMHB4Ow0KICAgIG1hcmdpbjogMTBweCBhdXRvOw0KICAgIGJhY2tncm91bmQtY29sb3I6ICM0NDQ7DQogICAgYm94LXNoYWRvdzogMHB4IDVweCA1cHggIzIyMjsNCg0KICAgIGRpc3BsYXk6IGZsZXg7DQogICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsNCiAgfQ0KDQogICNzZXR0aW5ncywgI3NldHRpbmdzLWZvb3RlciB7DQogICAgDQogIH0NCn0NCg==" - webUI["html/img/log.png"] = "iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAAAXNSR0IArs4c6QAAAAlwSFlzAAAsSwAALEsBpT2WqQAABCRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IlhNUCBDb3JlIDUuNC4wIj4KICAgPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIgogICAgICAgICAgICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgICAgICAgICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyI+CiAgICAgICAgIDx0aWZmOlJlc29sdXRpb25Vbml0PjI8L3RpZmY6UmVzb2x1dGlvblVuaXQ+CiAgICAgICAgIDx0aWZmOkNvbXByZXNzaW9uPjU8L3RpZmY6Q29tcHJlc3Npb24+CiAgICAgICAgIDx0aWZmOlhSZXNvbHV0aW9uPjI4ODwvdGlmZjpYUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6T3JpZW50YXRpb24+MTwvdGlmZjpPcmllbnRhdGlvbj4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+Mjg4PC90aWZmOllSZXNvbHV0aW9uPgogICAgICAgICA8ZXhpZjpQaXhlbFhEaW1lbnNpb24+NTA8L2V4aWY6UGl4ZWxYRGltZW5zaW9uPgogICAgICAgICA8ZXhpZjpDb2xvclNwYWNlPjE8L2V4aWY6Q29sb3JTcGFjZT4KICAgICAgICAgPGV4aWY6UGl4ZWxZRGltZW5zaW9uPjUwPC9leGlmOlBpeGVsWURpbWVuc2lvbj4KICAgICAgICAgPGRjOnN1YmplY3Q+CiAgICAgICAgICAgIDxyZGY6QmFnLz4KICAgICAgICAgPC9kYzpzdWJqZWN0PgogICAgICAgICA8eG1wOk1vZGlmeURhdGU+MjAxOC0xMC0xNFQxMToxMDo0MjwveG1wOk1vZGlmeURhdGU+CiAgICAgICAgIDx4bXA6Q3JlYXRvclRvb2w+UGl4ZWxtYXRvciAzLjM8L3htcDpDcmVhdG9yVG9vbD4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgIDwvcmRmOlJERj4KPC94OnhtcG1ldGE+CkP32mEAAANASURBVGgF7ZlPiE1RHMffw1AYhiL5k1HEijJiYaFZiHoyFspW2RFRkkSZGgtFWJIwi9FYmo0VOywkKTbKgjSlWcifRCPX51dv6s2d33md77vvXjfmV9859/7u93x/v98959x73p1KRbAkSargAhgDH0E/qIYkuHYEvAPGvwbmNOEerXM/0Q6BRSFuZj/ix0DaDnvCkGppIucDAe4OhzvkcUO+GaELAf8ux7/b8Zlrr+Pvc3zm6nX8NccXdKmFLHaUPJ/Ruhyu5zNap8Nd6PiCLrUQTyi0Rjy/5/M0Zd+smB7M32XwtgBr07aC6yfSTs7XO77OALfH4VbgHsD/HLytVquJx4nyIdQFBsHftscksK5Z0sGhpuN8Or4Aa5sJFHjtO7G2MjKvvZjN1sglOpSlCMt9LrDZ4S4Hd0Qg24vrK+gAZbPtjMqTdFKhEdkIsYxFWP720JlioUK6pzDL41jtpRIqxOOWxecuB3fhRGT8E85YBK8VygI6GSRTCxlH3TaJgyw4O2678aCxO94LbNPovYDdmOrUukIBN/MqwjJEOwGPOHR31W4VONVCLEBR9lAJpBbSrYhn5K5R+quFnGUOr1ICtMIlxjz6XVb6qot9JeKvCPSAdlQJJHDtd8hOIN0wtRDLxx6Ntr0ulalTq1TJNyYzXUjj3SjD8X87Iva7uR8s5+2bi6FtX1oOgi8g2tSn1g2yPx+t3gIR/c90s1+C1vuO/YkxdWrdjxFtE2dE0VELWaqIZ+QuUfqrhZxmyKUvgEoyE1xizOR4YOI8plXXyAZEbYsyTJvXFsUW+x6wGUSbWogJ237rZHSEgojq1CooLT3MdCH6Pcu3xz8zIq0s9lvc2+sgz6dWH/rnQPB/jlybZGoh99hCHJqk0P6TD0jaI/4b7dVYeXVq2bemokyKpRZiHwWKMimWWshxhryjoEpOKXHUNbIN8WcUc5s2r8Vue7l9oAaiTS3EhDeB6EUYnUlGojq1MobLr3uokB/5hcys7OYWKuRl5nD5Cbi5uYXw0ntPHoay2S8Seuol5RZSJ0r/n/DEc/BdrN9kTZrH7BkwDspgwyQxW6uggU3nHnAXvAG/QZE2SrARsL8hJffwDxM0mNDPvT8IAAAAAElFTkSuQmCC" - webUI["html/img/stream-limit.jpg"] = "/9j/4AAQSkZJRgABAQAAAQABAAD/4gJoSUNDX1BST0ZJTEUAAQEAAAJYbGNtcwQwAABtbnRyUkdCIFhZWiAH4wAFABcAFgAuAAphY3NwQVBQTAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA9tYAAQAAAADTLWxjbXMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAtkZXNjAAABCAAAAEBjcHJ0AAABSAAAAE53dHB0AAABmAAAABRjaGFkAAABrAAAACxyWFlaAAAB2AAAABRiWFlaAAAB7AAAABRnWFlaAAACAAAAABRyVFJDAAACFAAAACBnVFJDAAACFAAAACBiVFJDAAACFAAAACBjaHJtAAACNAAAACRtbHVjAAAAAAAAAAEAAAAMZW5VUwAAACQAAAAcAHMAUgBHAEIAIABJAEUAQwA2ADEAOQA2ADYALQAyAC4AMQAAbWx1YwAAAAAAAAABAAAADGVuVVMAAAAyAAAAHABOAG8AIABjAG8AcAB5AHIAaQBnAGgAdAAsACAAdQBzAGUAIABmAHIAZQBlAGwAeQAAAABYWVogAAAAAAAA9tYAAQAAAADTLXNmMzIAAAAAAAEMSgAABeP///MqAAAHmwAA/Yf///ui///9owAAA9gAAMCUWFlaIAAAAAAAAG+UAAA47gAAA5BYWVogAAAAAAAAJJ0AAA+DAAC2vlhZWiAAAAAAAABipQAAt5AAABjecGFyYQAAAAAAAwAAAAJmZgAA8qcAAA1ZAAAT0AAACltjaHJtAAAAAAADAAAAAKPXAABUewAATM0AAJmaAAAmZgAAD1z/2wBDAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQH/2wBDAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQH/wAARCAQ4B4ADASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD/AD/6KKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigD9PvBf/AARa/wCCrXxF8HeE/iD4G/YM/aL8UeCfHfhrQvGXg/xNpHgia50nxF4W8T6Xa634f13TLkTgXGn6vpN9aahZTgAS21xFIAN1dL/w4o/4LB/9I7/2m/8AwgZ//kiv9b3/AIJp/wDKOX9gH/syf9lX/wBUV4Dr7YoA/wAWr/hxR/wWD/6R3/tN/wDhAz//ACRR/wAOKP8AgsH/ANI7/wBpv/wgZ/8A5Ir/AGlaKAP8Wr/hxR/wWD/6R3/tN/8AhAz/APyRR/w4o/4LB/8ASO/9pv8A8IGf/wCSK/2laKAP8Wr/AIcUf8Fg/wDpHf8AtN/+EDP/APJFH/Dij/gsH/0jv/ab/wDCBn/+SK/2laKAP8Wr/hxR/wAFg/8ApHf+03/4QM//AMkUf8OKP+Cwf/SO/wDab/8ACBn/APkiv9pWigD/ABav+HFH/BYP/pHf+03/AOEDP/8AJFH/AA4o/wCCwf8A0jv/AGm//CBn/wDkiv8AaVooA/xav+HFH/BYP/pHf+03/wCEDP8A/JFH/Dij/gsH/wBI7/2m/wDwgZ//AJIr/aVooA/xav8AhxR/wWD/AOkd/wC03/4QM/8A8kUf8OKP+Cwf/SO/9pv/AMIGf/5Ir/aVooA/xav+HFH/AAWD/wCkd/7Tf/hAz/8AyRR/w4o/4LB/9I7/ANpv/wAIGf8A+SK/2laKAP8AFq/4cUf8Fg/+kd/7Tf8A4QM//wAkUf8ADij/AILB/wDSO/8Aab/8IGf/AOSK/wBpWigD/Fq/4cUf8Fg/+kd/7Tf/AIQM/wD8kUf8OKP+Cwf/AEjv/ab/APCBn/8Akiv9pWigD/Fq/wCHFH/BYP8A6R3/ALTf/hAz/wDyRR/w4o/4LB/9I7/2m/8AwgZ//kiv9pWigD/E88f/APBGT/gqj8K/AnjT4nfEX9hL9ofwf8P/AIdeFPEPjnxz4t1zwTNaaL4X8IeE9Ju9d8SeIdXujORbaZo2j2F5qN9OQRDa20shB24r8yq/28f+Ctf/ACit/wCClX/ZhH7Xv/rP/wAQK/xDqACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooA+j/ANmj9kL9pr9snxbrvgL9lr4K+Ovjn408M+HH8X6/4Y+H2ljWdZ0vwvFqen6NLr1zYrNHMNMh1XVtL0+a7RWihu9RsoZSj3MIf7U/4cUf8Fg/+kd/7Tf/AIQM/wD8kV2v/BAD9sj/AIYi/wCCrf7K/wATNW1X+yvh98QPFw+AHxWklm+z6f8A8IJ8aWg8HjU9Xl3Ls0rwd4wufCPxAuz82B4RQlJACjf7MFAH+LV/w4o/4LB/9I7/ANpv/wAIGf8A+SKP+HFH/BYP/pHf+03/AOEDP/8AJFf7StFAH+LV/wAOKP8AgsH/ANI7/wBpv/wgZ/8A5Io/4cUf8Fg/+kd/7Tf/AIQM/wD8kV/tK0UAf4tX/Dij/gsH/wBI7/2m/wDwgZ//AJIo/wCHFH/BYP8A6R3/ALTf/hAz/wDyRX+0rRQB/gx/HT4CfGb9mT4n+Ivgt+0B8NfFnwj+K3hJNHl8SeA/G2lzaP4i0iLxBomneI9Emu7KbJWLU9C1bTtTs5UZ45rW7idWySB5HX9yX/B69+yL/wAIr8eP2V/22/D2meXpfxb8Da18BfiPd2sOy3i8afDG9k8U+BdR1OXbiXVPFHg/xZrukWzB2P8AZnw0jjZIxEjS/wANtABRRRQAUUUUAFFFFABRRRQAUUUUAPRHldIokeSSR1SONFLu7uQqIiKCzOzEKqqCWJAAJNfq8n/BCv8A4LBSIki/8E7/ANp3a6q67vh/dI21gGG5HnV0bB5V1VlPDAEEVv8A/BBj9kX/AIbU/wCCrf7Ivwo1PTP7T8DeGPiFb/Gz4nRTQ+fpzeAvgpE3xDv9L1hQrEaZ4w1nRdD8BSkAFp/FdvH5kO/zo/8AZ4oA/wAWr/hxR/wWD/6R3/tN/wDhAz//ACRR/wAOKP8AgsH/ANI7/wBpv/wgZ/8A5Ir/AGlaKAP8Wr/hxR/wWD/6R3/tN/8AhAz/APyRR/w4o/4LB/8ASO/9pv8A8IGf/wCSK/2laKAP8Wr/AIcUf8Fg/wDpHf8AtN/+EDP/APJFH/Dij/gsH/0jv/ab/wDCBn/+SK/2laKAP8Kz9p39iX9rL9i7UfCOkftV/AT4ifAfVPHtlq+o+DtO+IejjRb3xDp+gz2Ntq97p1s00k0lrY3GpWUEs7IkbSz+XGztHKI/lqv6F/8Ag5+/bI/4a5/4K2/HDTNF1X+0fh7+y5aaZ+y74KEU261GofDq61K8+KVz5UbG3N0fi9r3jnSTexl5bzSdE0USybLeCGD+eigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigD/cg/4Jp/8o5f2Af+zJ/2Vf8A1RXgOvtivif/AIJp/wDKOX9gH/syf9lX/wBUV4Dr7YoAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigD8+P8AgrX/AMorf+ClX/ZhH7Xv/rP/AMQK/wAQ6v8Abx/4K1/8orf+ClX/AGYR+17/AOs//ECv8Q6gAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAHI7xOkkbtHJGyvHIjFHR0IZXRlIZWVgGVlIIIBBBFf7Z//BIH9sRP28f+Cbv7J37St5qS6n4x8VfC/TPDXxTmMqvc/wDC3PhxNcfD/wCJdxdQ5Mtp/bPi7w3qfiLT7e4zK2jazplyHnhuIrib/Eur/QW/4Mm/2yPteh/tZfsE+JNV3T6PeaT+1D8KNPml3yNp2pDRvht8YrW381t0NrYahB8JtRtLK33Rtda5r980cUjzyzgH98VFFFABRRRQAUUUUAfhR/wcifsif8Ngf8Eif2ndD0vTP7T8dfAvSbH9p74ehYvPuINW+DCXur+MUs4FUzXF/qvwjvfiRoFhb25E819q9skazn/R5v8AHer/AH6NW0rTdd0rU9D1mxtdU0fWdPvNK1bTL6FLmy1HTdRtpLS+sby3kDRz2t3azS29xDIrJLFI6OCrEV/hv/8ABQv9lrUv2J/23/2ov2V9Riuo4Pgv8Y/GHhbwzPe7/tWqeAJdQbWfhrr83mfPu8R/D7VPDOvjcWO3Uh88n32APjeiiigAooooAKKKKACiiigAooooA/0D/wDgyU/ZE+z6T+19+3Xr+mYl1G70D9lz4Y6lJFtdbSwTSfif8YfKaRd0lvd3Vz8HreC4g2xifS9VtneSRHSD++mvyl/4Ih/sif8ADEf/AAS3/ZB+B2o6X/ZXjV/hhYfE/wCKEEsPlahH8S/jDNN8SfFmmaq21WnvfCl14ki8EpKw+Ww8M2MCExQxmv1aoAKKKKACiiigAr5A/b+/ao0X9iP9iv8AaZ/as1xrRk+Cfwi8V+LdCsr5gtrrfjk2R0j4c+GZWLKF/wCEq8f6n4a8NodwxJqqdeh+v6/ib/4PTP2yP+EA/Za/Z5/Yk8N6r5WvftCfEG7+LPxGtLWb98nww+Dogh8OaVqtvuA+weKviT4g03W9Nk2uWvvhfdrujEZEoB/nB+IfEGteLPEGueKvEup3eteIvE2san4g1/WL+Uz32ra1rN7PqOq6nezNzNd399cz3VzKeZJpXc8mseiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigD/cg/4Jp/8AKOX9gH/syf8AZV/9UV4Dr7Yr4n/4Jp/8o5f2Af8Asyf9lX/1RXgOvtigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAPz4/4K1/8orf+ClX/AGYR+17/AOs//ECv8Q6v9vH/AIK1/wDKK3/gpV/2YR+17/6z/wDECv8AEOoAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAr9V/+CJP7ZH/DCn/BT39k348anqv9leA2+Itp8Mvi1NNN5Onp8LPi3FJ8P/F+qaou5RPaeEbfXYPHcMLMB/aXhXT5R80Sg/lRRQB/v8UV+TP/AAQ5/bI/4bo/4JdfsnfG7VNV/tXx9p/w+tfhN8WpZZvO1Fvid8IJG8A+JNV1f5m8u/8AGUWi6d8QFjDECx8W2TgRh/LT9ZqACiiigAooooAK/wA07/g9I/ZE/wCFcftj/AD9sXQNM8jQP2lfhZdfD7xtd28O5H+KPwOnsbO31HUp1A8q41z4a+KvBmkaXDN808HgPUnhZ1tplh/0sa/nd/4Oi/2RP+Gq/wDgkT8cNZ0fS/7R8dfsuapoP7T/AITMUO64TS/ACahpXxSVp0Bnjsbf4ReJvHOuz26hoLi+0HS2nQG3iuLcA/yKaKKKACiiigAooooAKKKKACv02/4I3fsi/wDDcf8AwUy/ZC/Z3vtM/tXwfr3xX0nxh8TrWSLfaS/Cr4XQ3PxJ+IlleyMGhto9d8L+FtQ8NWk04MbaprWn2yxzz3EUEv5k1/eL/wAGTH7In9reP/2uf259f0zdZ+D9A0H9mf4Z6hND5sEmveK7jTviL8VprV3Gy21LQ9E0b4YWSTwlp207xnqVsWhgnkS5AP8AQzooooAKKKKACiiigAr/AB3f+DkD9sj/AIbN/wCCtf7SWvaRqv8Aanw9+BGpWv7MPw1aOf7RaJovwcudR0zxfd2E6MYLnT9d+LV/8RfEWm3dsPJuNM1axZJJ1VbiX/Ux/wCCnv7XVn+wl+wF+1T+1TLdW1trXws+E2vXHgJbsRtBe/FTxOYPBnwo02aKQMJbe/8AiN4h8MW16qxysti9zN5UixMp/wAQK+vr3U7281LUru5v9R1C6uL6/vryaS5u729u5XuLq7uriZnlnubieR5p5pXaSWV2d2ZmJIBVooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooA/sa/Z9/4PGv2mv2ffgJ8EPgJo37HXwJ8QaP8EPhD8NfhDpOv6n43+IFtqWt6b8NfBmi+DLHV9Qt7QfZbe+1K10WK9u4bb/R4riaSOH92q169/xG8ftWf9GRfs9/+F98R/8ACv4h6KAP7eP+I3j9qz/oyL9nv/wvviP/AIUf8RvH7Vn/AEZF+z3/AOF98R/8K/iHooA/t4/4jeP2rP8AoyL9nv8A8L74j/4Uf8RvH7Vn/RkX7Pf/AIX3xH/wr+IeigD+3j/iN4/as/6Mi/Z7/wDC++I/+FH/ABG8ftWf9GRfs9/+F98R/wDCv4h6KAP9GT/gmX/wdhftE/t2/t3fs3/skeLv2T/gt4E8N/G/xpf+F9W8XeHPGPjnUNb0O3tPCviHxCt1p9lqY+wXEzzaNFbslz8gimkYfOq1/cpX+NT/AMG73/KaX9gD/srmtf8AqtPHVf7K1ABRRRQAUUUUAFFFFAH8KH/BRT/g7X/aN/Yq/bf/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WOj6BoOn3Gq6xql5Jg+Xaafp1pcXdw+DshhdsHGKAP8AN2/4PR/2yP8AhY37XHwD/Yq8N6r53h/9m34dT/Er4g2dtNiP/hanxqFlcaTpmqW4Yh7rw38MdB8M6zpUzhWitviTqKICJmJ/itr6y/bt/ah179tX9sf9pP8Aaq8RG6juvjh8XfF/jbS7C9fzLjQfCN1qUln4D8LF98m6Lwl4IsvD/hm2Jkc/ZtJiBdj8x+TaACiiigAooooAK/2Hv+DZvSf7G/4Id/sIWe3Z53hv40atjGM/29+0r8Ztc3f8D/tHfnvuzzmv8eGv9kD/AINw7+HUv+CJ37A1xAqqkfw58c2DBOhm0r40fEvTLhj/ALb3FnKz/wC2WoA/biiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAr/JJ/4Ow/+U2X7Q//AGTv9nj/ANUr4Nr/AFtq/wAkn/g7D/5TZftD/wDZO/2eP/VK+DaAP5vaKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKK6vwJ4G8W/E3xn4X+HngLQdQ8UeNPGmu6b4a8L+HtLi86/1fWtXuo7OwsrdCVRTLPKoeaZ47e3iD3FzLFBFJIt06dSrUhSpQnUq1Zwp06dOMp1KlSpOMKdOEIKUpznOcIQhGMpSlKMYpuST58Xi8LgMJisfjsTh8FgcDhsRjcbjcXXpYXCYPB4OhWxWLxeKxOIqUaGHw2Fw2GxGIxGIr1aVGhQoVq1WpTp0pzj9Y/sAfsT+O/27/wBofw38HvC32vSfCtqY/EXxU8cx2/nWvgfwDZ3MMep6gDIpgm13VHkTR/C2myZ+361dwPcCLSrTVL2z/wBHr4T/AAs8CfBD4beC/hL8MtAtPDHgPwBoNl4c8NaJZj5LWwskOZriZv3t7qV/cvPqOr6ndNJe6rqt3eal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gAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAr+z7/ggp/wTT/4VH4Psf20vjV4f8r4n/ELRXX4K+HtVtsXPgT4d6zbFJvGk8E6brXxN8QbCXZpbIqz6X4Hn/17P4t1GysPyI/4Ip/8E13/AGxfjB/wuX4r6G837N3wa1q0m1S1voD9h+KPxAtlg1HSvAMXmL5V3oOmRyWmt+O8ear6bNpfh14h/wAJK95p/wDedHGkSJFEiRxxoscccahEjRAFRERQFVFUBVVQAoAAAAr+o/AXw29vUpcdZ3h/3FGclw3ha0NK1eDlTq5zOE1rTw8lOjlzaaniFXxkbxw+Hkf4Nfta/psf2Tg8d9FLwvzi2aZlh6E/GrPctxHv5dleIhRxeC8NsPiKFS8Mbm1KWFzPjSMKkZ4bKJZTw5VUKub5vRT6KKK/rU/55AooooAKKKr3d3a2Frc319c29lY2VvNd3l5dzR21raWttG01xc3NxMyQwW8EKPLNNK6RxRozuyqpIG0k22kkm220kkk2222kkkm220kk22km04xlOUYQjKc5yjCEIRlOc5zlGMIQhGMpSnKUoxjGMZSlKUYxjKUoxlYoqlpuo6frGn2Gr6TfWeqaVqlla6jpmp6fcw3un6jp99AlzZX1jeWzyW93Z3dtLHcW1zBJJDPDIksTsjqxu0k1JKUWnFpNNNNNNJppptNNNNNNpppptNNucJ0pzp1ITp1Kc506lOpCdOpTqU5zp1KdSnUjCpTqU6lOdOpTqQhOE4ThOEJwnCBRRRTJCiiigD8if+Cvv/BOiw/bq+A0ms+CNNtIv2i/hFZalrXwv1HENtN4u00p9q1z4X6pdvsRrXxCIRc+Gp7yRIdI8Vw2j/arDS9W8QPcf59Ooaff6Tf32larZXem6npl5c6fqWnX9vNZ31hf2Uz215ZXtpcJHPa3drcRyQXNvPGk0E0bxSIrqyj/AFjK/kJ/4L+/8E2P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/DSP/BUjUvgr4f1X7d4A/Y18AaL8IbSK3m87TpviZ4mSHx78VtVhBYmPULa61fw18PtYjCoEvPh1sCsVMsoB/LfRRRQAUUUUAFFFFABRRRQAUUUUAFf6lH/BsR/wW/h/bw+Ddn+xj+0n4qib9sH4C+E7ePwt4i1m7Vb/APaF+D2gQwWFp4kW4nYPqXxM8BWv2TS/H9u5k1LxFpA03x8kmp3U3jWXRP8ALXr0j4P/ABg+J3wA+J/gf4z/AAY8b6/8OPil8N/EFl4o8E+NvDF61jrWg61YMTFcW8oDxT288TzWWpabew3OmavplzeaVqtneabeXVrMAf72FFfzsf8ABCH/AIL2fCb/AIKr/DKw+GXxPvvDPwy/bk8CaKg8e/DJbqLTdK+K+nadbZuvil8HrW8nM9/pc8cL3fi7wbBJeav4DvTKZvtnhqfStbu/6J6ACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooA+HP8Agp3/AMo1v+Chf/Zjn7WX/qhPH9f4dVf7iv8AwU7/AOUa3/BQv/sxz9rL/wBUJ4/r/DqoAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKtWNje6ne2em6bZ3WoajqF1b2NhYWNvLd3t9e3cqQWtnaWsCST3N1czyRw29vCjyzSukcaM7AFpNtJJttpJJNtttJJJJtttpJJNttJJtpOZzhThKpUlGEIRlOc5yjCEIQjKc5znOUIQhCEJznOc4QhCE5znGMZSj7x+y5+zX8Sf2t/jj4G+BHwr0/7V4l8ZaksdzqVxHK2keFPDtpifxB4v8AEM0SsbbRPD+nCW8uiM3F5MLbStOjudV1CxtLj/SQ/ZX/AGZ/ht+yJ8DPA/wH+Flh9n8O+D9PAvtWniiTV/F3iW8CzeIfGHiGWIYuNZ1+/wB9zMNxgsLUWej6ctvpWm2FrB+fv/BHj/gnDZfs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FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF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FFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFAH//Z" + webUI["html/img/x_black.png"] = "iVBORw0KGgoAAAANSUhEUgAAAQAAAAEACAIAAADTED8xAAAAAXNSR0IArs4c6QAAAAlwSFlzAAAWJQAAFiUBSVIk8AAAA6ppVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IlhNUCBDb3JlIDUuNC4wIj4KICAgPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIgogICAgICAgICAgICB4bWxuczp0aWZmPSJodHRwOi8vbnMuYWRvYmUuY29tL3RpZmYvMS4wLyIKICAgICAgICAgICAgeG1sbnM6ZXhpZj0iaHR0cDovL25zLmFkb2JlLmNvbS9leGlmLzEuMC8iPgogICAgICAgICA8eG1wOk1vZGlmeURhdGU+MjAxOC0xMS0xNVQxNzoxMTozNzwveG1wOk1vZGlmeURhdGU+CiAgICAgICAgIDx4bXA6Q3JlYXRvclRvb2w+UGl4ZWxtYXRvciAzLjM8L3htcDpDcmVhdG9yVG9vbD4KICAgICAgICAgPHRpZmY6T3JpZW50YXRpb24+MTwvdGlmZjpPcmllbnRhdGlvbj4KICAgICAgICAgPHRpZmY6Q29tcHJlc3Npb24+NTwvdGlmZjpDb21wcmVzc2lvbj4KICAgICAgICAgPHRpZmY6UmVzb2x1dGlvblVuaXQ+MjwvdGlmZjpSZXNvbHV0aW9uVW5pdD4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+MTQ0PC90aWZmOllSZXNvbHV0aW9uPgogICAgICAgICA8dGlmZjpYUmVzb2x1dGlvbj4xNDQ8L3RpZmY6WFJlc29sdXRpb24+CiAgICAgICAgIDxleGlmOlBpeGVsWERpbWVuc2lvbj4yNTY8L2V4aWY6UGl4ZWxYRGltZW5zaW9uPgogICAgICAgICA8ZXhpZjpDb2xvclNwYWNlPjE8L2V4aWY6Q29sb3JTcGFjZT4KICAgICAgICAgPGV4aWY6UGl4ZWxZRGltZW5zaW9uPjI1NjwvZXhpZjpQaXhlbFlEaW1lbnNpb24+CiAgICAgIDwvcmRmOkRlc2NyaXB0aW9uPgogICA8L3JkZjpSREY+CjwveDp4bXBtZXRhPgoZIUJ+AAAXy0lEQVR4Ae2dCbhO1RrH/+Z5noUolDFjSBkuTsbUEXUoVG5JXZVLw71pvLqSBokGTzqkSAMhHZwyJFTITB2ZT6LIPA/3Xb6cew7f8U17WGvv/3o8j+/b315rve9vvevsd++93ncBLCRAAiRAAiRAAiRAAiRAAiRAAiRAAiRAAiRAAiRAAiRAAiRAAiRAAiRAAiRAAiRAAiRAAiRAAiRAAiRAAiRAAiRAAiRAAiRAAiRAAiRAAiRAAiRAAiRAAiRAAiRAAiRAAiRAAiRAAiRAAiRAAiRAAiRAAiRAAiRAAiRAAiRAAiRAAiRAAiRAAiRAAiRAAiRAAiRAAiRAAiRAAiRAAiRAAiRAAiRAAiRAAiRAAiRAAiRAAiRAAiRAAiRAAiRAAiRAAiRAAiRAAiRAAiRAAiRAAiRAAiRAAiRAAiSQjkCWdJ8d/9i1J668yvFeo+3wh2/x1cxoKzter3RZ9H7A8V6j7fD1F3DkcLSVY6qXPabaMVauXR/39I+xDeeqHzqAljWRut25HmPpadjbaN0xlgacq7t9M0YPc667jD1lzfjV2W9DHsP6Vc52GUNv+QvipXdiqO9g1VvvNMb6T51Ev+44sN9BOhm6cnUCHDuG+xNw7GgGiXT+0qItbr9LZwGVbKXK4PkRuguZJt+wwVi2JO2b8x+yOd9lhh73/I69f6CNIRdrEb1Jc3w6AYcOZtBCqy+jP0T1a7SSKFNh5iXh8X6Z/urID25PAFFy1TI1YFWqOaJvzJ3kyo3KV2HKhzE3ZE8DXe7Ag4/b07TVre7eiYS2bt37pimjwQQQWb6Zg/geKFAwTSytP1xRFds2Y91K7YQU52f8DOTOo51gFwt09gz6dMH61Rf/4vARV+8B0nT9cy8evAMCxZTy3GvK1datvPgWChXRTajg8owcigXJwX9y9qgeVwDRecdW5MyJRs2cVT/a3uSv7BVVMHVStPVtqCfOzz+esKFdG5qUNyoP98YZLf7eaTMBhPOSBWjWBmXL24DchiblFd6WjTpcxJVuJUtj/HQznJ99e5EQh31/2jAk0TSphwsUkPzUKTzQA/K+yZTy3AiUKKWFsOL8FC6qhSQhhRjYBzu2hTzLsRN0mgCitNxcPtbXMeVj7ahIMQwdHWsjsdfv0gM3do69GSdaSByFmVOc6CjsPnRygQJCb1iDCpVQo07YKrh6ojy93bgBP611TQjl/Bjy5GftCtzXDadPu8YqWMeuLoYLJpA6li8/5vyIipUz+12v4/Iir3l1yBs9V8rYKWh7sys9R9bpkUNo2wAbf4qslv1na+YCBRQ+fEgtkZBVIkaUosXx31HuSBrf3QzrFzr/elBD6xe59HOBAqa061ccP6YeChlRqtZQXtDP6xwVVpyfcdORJ6+jnUbX2SfjMfyZ6KraXUtLFyigdJYsmDjLmDmwZzda1MCeP+wesP+3b4rz88tPyvmRq7qWRUsXKEDq7Fk81At7XfKtIx2tYiXxn5GRVor+/FsSzHB+ThxHvwRtrV/46+oCBUxD/myIX3FL9+gNxcmaV9dU4Q0pG2zvU14+yJMfI5yfZwYg6XPbgcTQgd4TQBTblKJe8dRrFIOODlaVxdIfvWd7hMPI91GrnoNaRdtV0lTIBNC7aHwPkAYuVy7M/B7Vaqcd0PrDZx+ohX32lZtvx+iJ9jVvWcup2xBXF7LMUe9iwgQQglWrI2mpGWtdRNq7OmPWNFvGXZyfeWshb6A1L6dP4daW+G6h5mKKeBrfBKeHJ3cCTz+S/oDWn9XKHHuWJcvKC/2tX8bm5WeNsH6RVPt7gDRLV4Fjtc0IHMtXQEULfDk1TXZrPnS+DQ8PtqYpW1tZ+BUG3Qt5iGdCMcQFCqAsUhTJK1GmnAlggTs7WJlHqHhJ5fzIW2fNi7wPaV0Hu3ZqLmaaeIa4QAF5zQockxwqBQulgY71gzg/+ls/zqJ/L4OsXwbFHBcoYEESOJYjBxqbEDgmeYTkz7Yld8M3dcMjT8U6hRyo/+ZwjHvTgX4s7MIoFyigd/bsmLIA9ZtYSMHGpnq0xdxZMbVvivOzfAluaYaThixhPD8kBk4AEb18RSSvQAHrHIzzOKz//9ftKqHiwQPRtzzmY3S4NfrqztQ8sA9x9VQ8k2nFNBcowFdw79higFmItDJLxXefMz1Kw+jUFQOejrKuk9X694SEuhtYzJwAAloCx+Q6YETgmOQAFuPYuili8yhWAhO+QJ58EVd0uMKEdzDqRYf7tKo7M12ggPYSODZ7OSpVsYqFje2kbkWLmhEvinxnMjp2tVEqS5resBodGuGoOQleM2pt1GPQjKIrezIlcOyyy/HUSxeIH+KrOD/6W//RI+h7u7nWL0NgrAsUMB954SLJpZvHhTAmHX6+pr5KfLR9S1iymOL8PHE/5s0OSyNdTzLZBQowNShwTHaCaFkrrHSwb3+ETt10tZnzck2dqFL7G15MdoEC6GXNiTyCMCJwrHwl/HtoaIPpeKsB1r/1F5MyOGUO3fwrQEC31h1UkJQB5Sy6tMTi+ZlKWqy4WvMjAZY6l5MncFNTrFyqs4xhymb+FSCgaPIXePf1MHV29bQseOVd5M08lcOQN3S3fsH3whPesH5RxfCb4PS2vGgu4jqhROn0x3T8LBGeefNjblIQ2Tp0waDnghzX6lDyDAx+SCuJYhHGKy5QgIEkKpTAMf2jxWUnhPjmF4aMGOH8/JaKNnUczf4Si3WHUdcrLlBA1ZT1ZgSOZcmKl99Fnoxbuejv/Jw5rcKdncx9FIYFx3iKh1ygAAlTAsckslEmQNpD9PbxBjg/rz6PjxJjNDjdqnvLBQrQlXhcCRzTf6MNcYQ6X4+li2GE87NkPrq20i23c+zTyVsuUICH7D5ixI5j4gi9Mha5c6uUcpo/95QM2LJ3iWaZzWO3fmnBcy5QgIoEjkncTOPmljCysRFZKX1zggE7o/W9DSuX2cjBvaa96AIFaGbLpgLHGlznHluv9DzmNTMeLUTF27sTQHAYFDgW1eA5UWnVUvXS98QJJ/pyow+PukABlBI4JuvPZGkNS3QEZMPC2+Nc2/wmOpkjrOXpCSAsZN+KcpejZt0IsfD0cwQG3H2pZUuegORpFygwQnnzqcCxK6p6YrwcVGLSWAy4x8H+3OnKBxNAwEpU7vRFyJHTHcYm9pqyDu0a4sgRE2WPSGavu0ABGAYFjkU0ejadLEF23dtiZ6pNzWvVrD8mgCBftgQNmqDilVrR11SYJ/tbmdVUUyX/EssfLlBAWdlW8auVur9zdd1cZnyMe7WPxrSOkp8mgFBr1R7vS+CYz7QO31x2bEGbuti/L/wapp/pGxcoMFCbU1CoCOo1Nn3YbJFfdia/syM2b7SlcV0b9eJiuEuzHvIY1q649Ck+/XXYYHWn5LPiS2egytVIWmZA4JiTtjhvFnq0M2VbFwvB+MwFCpCTxb2SRqVNJws5mt3U778h4cawEhaZrWcQ6X05AYTDquWoVgtVqgdB4rdDEpdzTzzWr/ab3gF9/XcPkDbOA/8OSd7PMnIoFiT7FoMv7wHSRrvxDfhkLrL69TIoHCRve5cWOHUqDYnfPvh47GWod2yDxM000T5wzCar3LcXCXGQCFIfF39fAWTgZQJ8Nh8Nm/rRBvrEY+YUPyqeTmcf3wMEKEigt4R7H9yfjok/PiaOovXLSPvbBQqY+oH92LbJgN0oLJyY8irwvm6ezPIQKSROgHPEJHDssgp+CRw7cki5/r/vitRWPHm+7+8B0kbVP4FjD/fG5HFpevv8g+/vAdLG/8hh9EuAZL73dvlkPK0//QjTBUpHw/OBY5t+Ru/O3p/k6YY05EdOgIyIZDlk/caoWDnjUU98O3FcLXeTVx8s6QjQBUoHQz7KjmMP9cKe3RmPeuLb84Ow+kdPaGKlEpwAF9GUxyMP9ZapcNEPJh9Imop3R5qsgF2y0wUKRlaiogoWVr6QN0rqNtzZXm2ozHIRAT4GvQhJ4ECuXJixBDXqZPKzOYdlWxdZ7vbdQnMkdlRSukCZ4D5+XD0VPWp+Zqjhz9D6MxljdZguUOZwJHBM7objbsr8DO1/WfgVBt3rw0DH8AeGE+CSrFYvx9U1UdXMwDGZvRLoeOjgJTX0+490gUJZgASOyU2kiSVxNOTVHsslCXACXBKP/ChZomTxjImlWy8ULGSi4E7KzAkQBu0bWoVxkn6nlK+EoW/qJ5ZeEvEeINR4NGuNYW8ji5nPi6+uBdkvkInAMh9kM8c1c30s/qV4SZVPt0Rpi5t1sjlZ/R9XD5tSnOzToL7oAmU+WPJX//XxZlu/KJc3P0Z/iJzcHCT4QNMFCs5FHX3gUfTsm/nP5vxSqixy58H8OeZI7JykdIEyYS0LgWSb4ew5MvnZuMNn1aYv82YbJ7fdAnMCBCNcqDDm/IhyFYP9ZuwxSQDa6hr84cWV3jGMCe8BgsEbPsZr1i9ayq38q2ODaevrY7wHuGj4xe/v9+hFRz1xQPaKlc3Dl3/nCWWsUYIuUEaO1Wvji++QK3fGox76JoGRHRtjDbcI+WtMOQHSGXfevEhaisrV0h3y4seN69G2gR/2AA5n8OgCpaP04ltoFpfuu0c/Fi2htsqcM92j6kWmFifAeV7x3fHof85/8fr/tetjwxqkrPe6nqH1owt0jlGlypi9HPkKhAbmmTP2/4nW1yB1u2cUik4RPgaFWibw5iR/Wb8Yi2wX+8YElR3e38Xv+qvRf2o42sf70QzKXQ4JmV8834+6n9fZ9y5QXCckTjtPw3//ywSIb47vv/Wf5n9p7O8JULYc5qxAkWK+HX6l+I4taFNXBb75svjYBRL3d9w07z/1D2nWkgKsQiXM+CTkiZ48wccT4J9Po2svTw5qxEpdVVPtGLvGj5lD/eoCNW2JycnIwodg5yfL0cO4sT42/nT+u1/+9+UEKFYCySsgYSIs6QlIEqROTXDC61uEpFfZj5nhJNDxncmoVS8jB34DSpWB7BPls6AZ/90D3DcAdz1Iew9OQOLgZLH0lo3Bf/XiUZ+5QHUaYtq3Hgp0tMEk/9ilAsd8s4ekn+4CCxTEW5No/SEmTfFSeO09U/MghdAtyM9+coFGJKLRDUEY8NAFBCpVwcH9kO3SfFB84wL16IOXxvhgQC1SUQLH5ImQD/YU88cEuKoGZn6PPHktsg5/NLNxw7nAscPe1tYHLlCePJg4C6Uv8/ZAWq9d0eIoUQqzPb5S0AcT4IVR+Fs76+3DDy3K25Kf16l/3i1ed4E636aCXViiJiBpVFrXUSmmPVo8PQEuv0IFOhbgJhGxGe/3C9U+k6dPx9aKprW96wLlyIEJM3H5lZqCN0isyyqobcMXzTNI5PBF9e4EePJFdOwaPgh3zhw3GqdOomx5d3oPv1d5f7JoLnZsC7+GKWd61AVq1R7vzwD01m7Tz4irq6xfotL0z0WXulXdDHgucMyLV4DSZTExCXnyaf1HSIJxe3fG1s3Yuwfy1qm59gm5JHCs4pWY/rHWVCMXznMTIGtWvDcVVWtEjsLZGqNfwkeJf3X543doEYcy5ZyVIPLehOpvqZCwAQ8VvZ2EKEA/MhiDnouinqNVNqxWL1nTh55UqaZ2JMiZy1ExouhMAsdE8pQNUVTVs4q3rgCNm51byaj3Ele5672jPXamZjCIvX+ou+EbWmc4qOGXHDnRsCkmJ3rmqaiHJkDRYpg0B+Kqal5efhbTJgeRUVZftmpnwJKNkmWQLz/mzQqigoGHPOQCJX6OuJt0H4IV3+Ompjh1KricV9fErGWQv7K6l7O4owO+/lJ3McOQzytXgD790efhMPR19ZTjx9Cj3aV26ZINvM6ewfWtXJUynM6zoHkbfDoBhw+Fc7bO5+jtLodJTpJ9D34pzHPdPG3ov0NnJB81zIzHLLLDwGuJHggcM/8KkL8AJs1WOz5oXpbMx+P34+zZEGKeOYPlS9C9D7JqPzQVK+PwQSxdHEIjvX/WnnJIfK+MxXUtQp7l8glHDiGhLfb9GZYYEpAuuVuuaxnWye6eJOS/noldO92VIpbeDXeBbuuN+B6x6O9Q3WcHYtvmCPoa+V+sNWEfO7lfH/WhyiZkbDH5KZC8PEr6QfclD2IZ85LQPfKInFp11X6VRmxV/9F7eORuQ6eAsS5Q7twq0LGM9usoZSciefJz6GDE9rH7N2TPjibNI67ofIWadSEBxD+tdb7n2Hs01gV65hVUqx27/ra38GT/C1/6ht/liCGQRRNGFNlgs3xFIyS9QEgzJ0CHLuh5/wWa6Ph15qfqYXnURRYLPXwXTmfy1izqZu2oKC/gzdxxzEAXSP7SSKiX/gvo9+xWr0uPHonJ3uQBS65caNQspkacqSyBY1mz4Nu5zvRmVS+m3QSLWzxlAeo3sUp/G9vpE4+ZUyxoXyaArI/Qf4G3qCpBDrf+DUsWWKC1U02Y5gI9+rwZ1v/ZBGusX+zg+HH1jEVsS/8iL+/EESpcRH9J0yQ0ygWSqBG52dI80FHQ7tyBXp0gK3+sKhKGImntrr3eqvZsbEdycMiu40GXu9rYa/RNmzMBSpZWzz3z5o9eV8dq9u2GDVY/E/xhIeTWv2gJx5SIvqMq1dW74VXLom/BwZqGuEAS6DjyfUjmbv3LhLcx14a18seOKUdI1ooaUZ59FfKa0oRiyBXgH4+jx98N4Ln1F9wTj5P2bLMlnpWs/GtwnQEcJClTo+shb4i1T6dlwgS4tilGjINcBDQv8uf57luweaONYkqStk5dzdjZu0RpyI4kc5NspGFF09pblTxSkOVW2bJboazNbYx5DUu+sbePo0cxwBxH6J7+aN3BXiAxt679FUCsv17jmNW0v4GUdeh7W6axjhb2n7odhQqb8SxYtNY+cEzvK8BdD6DdLRYaj11NyWqF/r0g96nOlBefNGYjR3lspXfgmMZXgJp18M7HZjg/rw/BZx84Y/yql5MnsXYlJBZC/1ciIq3kk5NsQj8sUpLrV3SdAJJ4QwIdZYcS/YtkSuvfExLK6GSRhP1FiqFuIyf7jL6v6yRw7Evs+jX6FmyrqetaoBGJ6NrLNq2ta1jSekqmtA1rrGsx7JYkDuvrVahwRdgVXD1xcwri6mmYRULLe4CuPc2wfrGo4U+7Y/3S9ZHD+GcflbnfiCJbr77whoaS6ucCXVkVkuLKgORQwNJFygRDJnqwb9i3b0HxkqjT0L4erGy5Rh1IRnhXrpaZq6GZCyRLf6cvhoTY6V9koX8bGdEUlyWVm6W5q1GuostihNm97L/dpm5k+QHCbDna0zRzgSS/lRHWL7iHPOa+9YsYkpttoCwSMcQRkrWioz5Qsc7aFJ1coHY3QyJ9jSjfJEOCfTUpWzehVBnUbqCJOCHEkB1xsmXDwq9DnObUz9q4QOUqYPaPKFzUKcVj6Eeu461q67Vhlqy6+Xo11G52JhRZNNW1FRbN00FWPVwguSa+8YEZ1i+D9vQjelm/iHTwAB69Vwd7CkuGLOcWtxfR4o+dHhNg4DNmhDvJ8M6ehknvhTXMDp8kQQgT33W4z+i7k/2gho+Jvrp1NTVwgW5opV76yl8F/cufe9CyJiRllZ6lYCHMXWPAXmNp9CRb8Pi30r658sHtCSCPsZNXQDYdMaLIek/No13V/rBfGMFSCXnsKNo1dDelnKt/dyUH8uvjjLH+zyfpbv1iUl/NVBt4mVJy58HoDyFZLt0rrj4G7TfIjARvMjy7d6JnR/UXS/+yeD5kLYkETxpRZL2jZJVzb7cl9yZA/cYqh4z+20AEzOj+BKxbZYRFqXQssvLs5gQzpBUp616rNsX55WdXBHbPBRrwlBm5v2VYJo1FsjmOtQg8ezo+fd8Ve4qy04HPRlmR1UiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABGwg8D8UnyVeZFwGAQAAAABJRU5ErkJggg==" webUI["html/js/authentication_ts.js"] = "ZnVuY3Rpb24gbG9naW4oKSB7DQogICAgdmFyIGVyciA9IGZhbHNlOw0KICAgIHZhciBkYXRhID0gbmV3IE9iamVjdCgpOw0KICAgIHZhciBkaXYgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29udGVudCIpOw0KICAgIHZhciBmb3JtID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImF1dGhlbnRpY2F0aW9uIik7DQogICAgdmFyIGlucHV0cyA9IGRpdi5nZXRFbGVtZW50c0J5VGFnTmFtZSgiSU5QVVQiKTsNCiAgICBjb25zb2xlLmxvZyhpbnB1dHMpOw0KICAgIGZvciAodmFyIGkgPSBpbnB1dHMubGVuZ3RoIC0gMTsgaSA+PSAwOyBpLS0pIHsNCiAgICAgICAgdmFyIGtleSA9IGlucHV0c1tpXS5uYW1lOw0KICAgICAgICB2YXIgdmFsdWUgPSBpbnB1dHNbaV0udmFsdWU7DQogICAgICAgIGlmICh2YWx1ZS5sZW5ndGggPT0gMCkgew0KICAgICAgICAgICAgaW5wdXRzW2ldLnN0eWxlLmJvcmRlckNvbG9yID0gInJlZCI7DQogICAgICAgICAgICBlcnIgPSB0cnVlOw0KICAgICAgICB9DQogICAgICAgIGRhdGFba2V5XSA9IHZhbHVlOw0KICAgIH0NCiAgICBpZiAoZXJyID09IHRydWUpIHsNCiAgICAgICAgZGF0YSA9IG5ldyBPYmplY3QoKTsNCiAgICAgICAgcmV0dXJuOw0KICAgIH0NCiAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgiY29uZmlybSIpKSB7DQogICAgICAgIGlmIChkYXRhWyJjb25maXJtIl0gIT0gZGF0YVsicGFzc3dvcmQiXSkgew0KICAgICAgICAgICAgYWxlcnQoInNkYWZzZCIpOw0KICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Bhc3N3b3JkJykuc3R5bGUuYm9yZGVyQ29sb3IgPSAicmVkIjsNCiAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjb25maXJtJykuc3R5bGUuYm9yZGVyQ29sb3IgPSAicmVkIjsNCiAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJlcnIiKS5pbm5lckhUTUwgPSAie3suYWNjb3VudC5mYWlsZWR9fSI7DQogICAgICAgICAgICByZXR1cm47DQogICAgICAgIH0NCiAgICB9DQogICAgY29uc29sZS5sb2coZGF0YSk7DQogICAgZm9ybS5zdWJtaXQoKTsNCn0NCg==" - webUI["html/js/network_ts.js"] = "Y2xhc3MgU2VydmVyIHsNCiAgICBjb25zdHJ1Y3RvcihjbWQpIHsNCiAgICAgICAgdGhpcy5jbWQgPSBjbWQ7DQogICAgfQ0KICAgIHJlcXVlc3QoZGF0YSkgew0KICAgICAgICBpZiAoU0VSVkVSX0NPTk5FQ1RJT04gPT0gdHJ1ZSkgew0KICAgICAgICAgICAgcmV0dXJuOw0KICAgICAgICB9DQogICAgICAgIFNFUlZFUl9DT05ORUNUSU9OID0gdHJ1ZTsNCiAgICAgICAgY29uc29sZS5sb2coZGF0YSk7DQogICAgICAgIGlmICh0aGlzLmNtZCAhPSAidXBkYXRlTG9nIikgew0KICAgICAgICAgICAgc2hvd0VsZW1lbnQoImxvYWRpbmciLCB0cnVlKTsNCiAgICAgICAgICAgIFVORE8gPSBuZXcgT2JqZWN0KCk7DQogICAgICAgIH0NCiAgICAgICAgc3dpdGNoICh3aW5kb3cubG9jYXRpb24ucHJvdG9jb2wpIHsNCiAgICAgICAgICAgIGNhc2UgImh0dHA6IjoNCiAgICAgICAgICAgICAgICB0aGlzLnByb3RvY29sID0gIndzOi8vIjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImh0dHBzOiI6DQogICAgICAgICAgICAgICAgdGhpcy5wcm90b2NvbCA9ICJ3c3M6Ly8iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICB9DQogICAgICAgIHZhciB1cmwgPSB0aGlzLnByb3RvY29sICsgd2luZG93LmxvY2F0aW9uLmhvc3RuYW1lICsgIjoiICsgd2luZG93LmxvY2F0aW9uLnBvcnQgKyAiL2RhdGEvIiArICI/VG9rZW49IiArIGdldENvb2tpZSgiVG9rZW4iKTsNCiAgICAgICAgZGF0YVsiY21kIl0gPSB0aGlzLmNtZDsNCiAgICAgICAgdmFyIHdzID0gbmV3IFdlYlNvY2tldCh1cmwpOw0KICAgICAgICB3cy5vbm9wZW4gPSBmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICBXU19BVkFJTEFCTEUgPSB0cnVlOw0KICAgICAgICAgICAgY29uc29sZS5sb2coIlJFUVVFU1QgKEpTKToiKTsNCiAgICAgICAgICAgIGNvbnNvbGUubG9nKGRhdGEpOw0KICAgICAgICAgICAgY29uc29sZS5sb2coIlJFUVVFU1Q6IChKU09OKSIpOw0KICAgICAgICAgICAgY29uc29sZS5sb2coSlNPTi5zdHJpbmdpZnkoZGF0YSkpOw0KICAgICAgICAgICAgdGhpcy5zZW5kKEpTT04uc3RyaW5naWZ5KGRhdGEpKTsNCiAgICAgICAgfTsNCiAgICAgICAgd3Mub25lcnJvciA9IGZ1bmN0aW9uIChlKSB7DQogICAgICAgICAgICBjb25zb2xlLmxvZygiTm8gd2Vic29ja2V0IGNvbm5lY3Rpb24gdG8geFRlVmUgY291bGQgYmUgZXN0YWJsaXNoZWQuIENoZWNrIHlvdXIgbmV0d29yayBjb25maWd1cmF0aW9uLiIpOw0KICAgICAgICAgICAgU0VSVkVSX0NPTk5FQ1RJT04gPSBmYWxzZTsNCiAgICAgICAgICAgIGlmIChXU19BVkFJTEFCTEUgPT0gZmFsc2UpIHsNCiAgICAgICAgICAgICAgICBhbGVydCgiTm8gd2Vic29ja2V0IGNvbm5lY3Rpb24gdG8geFRlVmUgY291bGQgYmUgZXN0YWJsaXNoZWQuIENoZWNrIHlvdXIgbmV0d29yayBjb25maWd1cmF0aW9uLiIpOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9Ow0KICAgICAgICB3cy5vbm1lc3NhZ2UgPSBmdW5jdGlvbiAoZSkgew0KICAgICAgICAgICAgU0VSVkVSX0NPTk5FQ1RJT04gPSBmYWxzZTsNCiAgICAgICAgICAgIHNob3dFbGVtZW50KCJsb2FkaW5nIiwgZmFsc2UpOw0KICAgICAgICAgICAgY29uc29sZS5sb2coIlJFU1BPTlNFOiIpOw0KICAgICAgICAgICAgdmFyIHJlc3BvbnNlID0gSlNPTi5wYXJzZShlLmRhdGEpOw0KICAgICAgICAgICAgY29uc29sZS5sb2cocmVzcG9uc2UpOw0KICAgICAgICAgICAgaWYgKHJlc3BvbnNlLmhhc093blByb3BlcnR5KCJ0b2tlbiIpKSB7DQogICAgICAgICAgICAgICAgZG9jdW1lbnQuY29va2llID0gIlRva2VuPSIgKyByZXNwb25zZVsidG9rZW4iXTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGlmIChyZXNwb25zZVsic3RhdHVzIl0gPT0gZmFsc2UpIHsNCiAgICAgICAgICAgICAgICBhbGVydChyZXNwb25zZVsiZXJyIl0pOw0KICAgICAgICAgICAgICAgIGlmIChyZXNwb25zZS5oYXNPd25Qcm9wZXJ0eSgicmVsb2FkIikpIHsNCiAgICAgICAgICAgICAgICAgICAgbG9jYXRpb24ucmVsb2FkKCk7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIHJldHVybjsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGlmIChyZXNwb25zZS5oYXNPd25Qcm9wZXJ0eSgibG9nb1VSTCIpKSB7DQogICAgICAgICAgICAgICAgdmFyIGRpdiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjaGFubmVsLWljb24iKTsNCiAgICAgICAgICAgICAgICBkaXYudmFsdWUgPSByZXNwb25zZVsibG9nb1VSTCJdOw0KICAgICAgICAgICAgICAgIGRpdi5jbGFzc05hbWUgPSAiY2hhbmdlZCI7DQogICAgICAgICAgICAgICAgcmV0dXJuOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgc3dpdGNoIChkYXRhWyJjbWQiXSkgew0KICAgICAgICAgICAgICAgIGNhc2UgInVwZGF0ZUxvZyI6DQogICAgICAgICAgICAgICAgICAgIFNFUlZFUlsibG9nIl0gPSByZXNwb25zZVsibG9nIl07DQogICAgICAgICAgICAgICAgICAgIGlmIChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29udGVudF9sb2ciKSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgc2hvd0xvZ3MoZmFsc2UpOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIHJldHVybjsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgICAgICAgICAgU0VSVkVSID0gbmV3IE9iamVjdCgpOw0KICAgICAgICAgICAgICAgICAgICBTRVJWRVIgPSByZXNwb25zZTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBpZiAocmVzcG9uc2UuaGFzT3duUHJvcGVydHkoIm9wZW5NZW51IikpIHsNCiAgICAgICAgICAgICAgICB2YXIgbWVudSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHJlc3BvbnNlWyJvcGVuTWVudSJdKTsNCiAgICAgICAgICAgICAgICBtZW51LmNsaWNrKCk7DQogICAgICAgICAgICAgICAgc2hvd0VsZW1lbnQoInBvcHVwIiwgZmFsc2UpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgaWYgKHJlc3BvbnNlLmhhc093blByb3BlcnR5KCJvcGVuTGluayIpKSB7DQogICAgICAgICAgICAgICAgd2luZG93LmxvY2F0aW9uID0gcmVzcG9uc2VbIm9wZW5MaW5rIl07DQogICAgICAgICAgICB9DQogICAgICAgICAgICBpZiAocmVzcG9uc2UuaGFzT3duUHJvcGVydHkoImFsZXJ0IikpIHsNCiAgICAgICAgICAgICAgICBhbGVydChyZXNwb25zZVsiYWxlcnQiXSk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBpZiAocmVzcG9uc2UuaGFzT3duUHJvcGVydHkoInJlbG9hZCIpKSB7DQogICAgICAgICAgICAgICAgbG9jYXRpb24ucmVsb2FkKCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBpZiAocmVzcG9uc2UuaGFzT3duUHJvcGVydHkoIndpemFyZCIpKSB7DQogICAgICAgICAgICAgICAgY3JlYXRlTGF5b3V0KCk7DQogICAgICAgICAgICAgICAgY29uZmlndXJhdGlvbldpemFyZFtyZXNwb25zZVsid2l6YXJkIl1dLmNyZWF0ZVdpemFyZCgpOw0KICAgICAgICAgICAgICAgIHJldHVybjsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGNyZWF0ZUxheW91dCgpOw0KICAgICAgICB9Ow0KICAgIH0NCn0NCmZ1bmN0aW9uIGdldENvb2tpZShuYW1lKSB7DQogICAgdmFyIHZhbHVlID0gIjsgIiArIGRvY3VtZW50LmNvb2tpZTsNCiAgICB2YXIgcGFydHMgPSB2YWx1ZS5zcGxpdCgiOyAiICsgbmFtZSArICI9Iik7DQogICAgaWYgKHBhcnRzLmxlbmd0aCA9PSAyKQ0KICAgICAgICByZXR1cm4gcGFydHMucG9wKCkuc3BsaXQoIjsiKS5zaGlmdCgpOw0KfQ0K" - webUI["html/img/mapping.png"] = "iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAAAXNSR0IArs4c6QAAAAlwSFlzAAAsSwAALEsBpT2WqQAABCRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IlhNUCBDb3JlIDUuNC4wIj4KICAgPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIgogICAgICAgICAgICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgICAgICAgICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyI+CiAgICAgICAgIDx0aWZmOlJlc29sdXRpb25Vbml0PjI8L3RpZmY6UmVzb2x1dGlvblVuaXQ+CiAgICAgICAgIDx0aWZmOkNvbXByZXNzaW9uPjU8L3RpZmY6Q29tcHJlc3Npb24+CiAgICAgICAgIDx0aWZmOlhSZXNvbHV0aW9uPjI4ODwvdGlmZjpYUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6T3JpZW50YXRpb24+MTwvdGlmZjpPcmllbnRhdGlvbj4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+Mjg4PC90aWZmOllSZXNvbHV0aW9uPgogICAgICAgICA8ZXhpZjpQaXhlbFhEaW1lbnNpb24+NTA8L2V4aWY6UGl4ZWxYRGltZW5zaW9uPgogICAgICAgICA8ZXhpZjpDb2xvclNwYWNlPjE8L2V4aWY6Q29sb3JTcGFjZT4KICAgICAgICAgPGV4aWY6UGl4ZWxZRGltZW5zaW9uPjUwPC9leGlmOlBpeGVsWURpbWVuc2lvbj4KICAgICAgICAgPGRjOnN1YmplY3Q+CiAgICAgICAgICAgIDxyZGY6QmFnLz4KICAgICAgICAgPC9kYzpzdWJqZWN0PgogICAgICAgICA8eG1wOk1vZGlmeURhdGU+MjAxOC0wOC0wMlQxMjowODo5NzwveG1wOk1vZGlmeURhdGU+CiAgICAgICAgIDx4bXA6Q3JlYXRvclRvb2w+UGl4ZWxtYXRvciAzLjM8L3htcDpDcmVhdG9yVG9vbD4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgIDwvcmRmOlJERj4KPC94OnhtcG1ldGE+CpRxQsEAAAJLSURBVGgF7VoxTgMxEMwBHWlAaeABVCEtBcoD+EBewCdCyQsQtLyAPCBvCBSRIBUPCF1ogqBJjlkrezGr6HTrO98lhy1Z9trr2VmvnbMNjUadUhzHLeQB8hw5LS3QOUbubvIf7X3kKXIZibgS51bCZdWgMT6D8nECgArkngagQN0B8dhbkblalVmLIyheCGUthhjuLBq77MihA0xTjHHBEBBOorHLjjghbNOg4Mg2RYO4hIiEiHiaAV5aSwf8hRgjZdHtTTTc2ZFXpZkY+hMx5k3IZYlr7jgudJHp2JElLaF0K1mirYn8nAWgQB3ibM59ERNCA52d6Nghv9isQiUtn0kURe92I9eBcYA6YZxym8dyDuwRuMw82gjQYQbsPdLDdNCROO0US3uEfp3usTZpjf5J2CNtNFwjl7FHvmBnCB5PCQkQoJudJtGvE23sJEFuI39rQArS7dskXK6nlwkAKiB1VxAxLcyUePAH8cQmlbEul4+UM8LkVjPc2ZHcaFUDBEeqjoC0HyIiZ6RqOUSk6ghI+xyRD9mRQTYfIktPylaX16rhzo48KE29QH8kxjxC/hFtZYiGe70OjWVMW7Dx32bA3iO7//iAC8DOPweZFQhH6O+CmkRvW2f28oV8owEoUHdMPPg70rFJZajTkqT7uZ3ObaHEuuHOjnCpsb8vlKUsur2JhruLA94Y5QEOjuSZPR9jQ0R8zGoezNpFhN5RtUm+/bpgaG1u0jd2OSLDTRopbZ/okxcrLUYKvKprbRfHhXr8m5PK/y1V/gWRKLfiNSmxEAAAAABJRU5ErkJggg==" - webUI["html/maintenance.html"] = "PCFkb2N0eXBlIGh0bWw+DQo8aHRtbD4NCiAgPGhlYWQ+DQogICAgPG1ldGEgY2hhcnNldD0idXRmLTgiPg0KICAgIDxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgsIGluaXRpYWwtc2NhbGU9MS4wIiAvPiANCiAgICA8dGl0bGU+eFRlVmU8L3RpdGxlPg0KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iY3NzL3NjcmVlbi5jc3MiIHR5cGU9InRleHQvY3NzIj4NCiAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9ImNzcy9iYXNlLmNzcyIgdHlwZT0idGV4dC9jc3MiPg0KICA8L2hlYWQ+DQoNCiAgICA8Ym9keT4NCiAgICAgICAgICANCiAgICAgIDxkaXYgaWQ9ImhlYWRlciIgY2xhc3M9ImltZ0NlbnRlciI+PC9kaXY+DQoNCiAgICAgIDxkaXYgaWQ9ImJveCI+DQoNCiAgICAgICAgPGRpdiBpZD0iaGVhZGxpbmUiPg0KICAgICAgICAgIDxoMSBpZD0iaGVhZC10ZXh0IiBjbGFzcz0iY2VudGVyIj5NYWludGVuYW5jZTwvaDE+ICAgICAgDQogICAgICAgIDwvZGl2PiAgDQoNCiAgICAgICAgPGRpdiBpZD0iY29udGVudCI+DQogICAgICAgICAgeFRlVmUgaXMgdXBkYXRpbmcgdGhlIGRhdGFiYXNlLCBwbGVhc2UgdHJ5IGFnYWluIGxhdGVyLg0KICAgICAgICA8L2Rpdj4NCg0KICAgICAgICA8ZGl2IGlkPSJib3gtZm9vdGVyIj48L2Rpdj4NCiAgICAgICAgDQogICAgICA8L2Rpdj4NCg0KICAgIDwvYm9keT4NCjwvaHRtbD4=" + webUI["html/js/base_ts.js"] = "dmFyIFNFUlZFUiA9IG5ldyBPYmplY3QoKTsNCnZhciBCVUxLX0VESVQgPSBmYWxzZTsNCnZhciBDT0xVTU5fVE9fU09SVDsNCnZhciBTRUFSQ0hfTUFQUElORyA9IG5ldyBPYmplY3QoKTsNCnZhciBVTkRPID0gbmV3IE9iamVjdCgpOw0KdmFyIFNFUlZFUl9DT05ORUNUSU9OID0gZmFsc2U7DQp2YXIgV1NfQVZBSUxBQkxFID0gZmFsc2U7DQovLyBNZW51DQp2YXIgbWVudUl0ZW1zID0gbmV3IEFycmF5KCk7DQptZW51SXRlbXMucHVzaChuZXcgTWFpbk1lbnVJdGVtKCJwbGF5bGlzdCIsICJ7ey5tYWluTWVudS5pdGVtLnBsYXlsaXN0fX0iLCAibTN1LnBuZyIsICJ7ey5tYWluTWVudS5oZWFkbGluZS5wbGF5bGlzdH19IikpOw0KLy9tZW51SXRlbXMucHVzaChuZXcgTWFpbk1lbnVJdGVtKCJwbXNJRCIsICJ7ey5tYWluTWVudS5pdGVtLnBtc0lEfX0iLCAibnVtYmVyLnBuZyIsICJ7ey5tYWluTWVudS5oZWFkbGluZS5wbXNJRH19IikpDQptZW51SXRlbXMucHVzaChuZXcgTWFpbk1lbnVJdGVtKCJmaWx0ZXIiLCAie3subWFpbk1lbnUuaXRlbS5maWx0ZXJ9fSIsICJmaWx0ZXIucG5nIiwgInt7Lm1haW5NZW51LmhlYWRsaW5lLmZpbHRlcn19IikpOw0KbWVudUl0ZW1zLnB1c2gobmV3IE1haW5NZW51SXRlbSgieG1sdHYiLCAie3subWFpbk1lbnUuaXRlbS54bWx0dn19IiwgInhtbHR2LnBuZyIsICJ7ey5tYWluTWVudS5oZWFkbGluZS54bWx0dn19IikpOw0KbWVudUl0ZW1zLnB1c2gobmV3IE1haW5NZW51SXRlbSgibWFwcGluZyIsICJ7ey5tYWluTWVudS5pdGVtLm1hcHBpbmd9fSIsICJtYXBwaW5nLnBuZyIsICJ7ey5tYWluTWVudS5oZWFkbGluZS5tYXBwaW5nfX0iKSk7DQptZW51SXRlbXMucHVzaChuZXcgTWFpbk1lbnVJdGVtKCJ1c2VycyIsICJ7ey5tYWluTWVudS5pdGVtLnVzZXJzfX0iLCAidXNlcnMucG5nIiwgInt7Lm1haW5NZW51LmhlYWRsaW5lLnVzZXJzfX0iKSk7DQptZW51SXRlbXMucHVzaChuZXcgTWFpbk1lbnVJdGVtKCJzZXR0aW5ncyIsICJ7ey5tYWluTWVudS5pdGVtLnNldHRpbmdzfX0iLCAic2V0dGluZ3MucG5nIiwgInt7Lm1haW5NZW51LmhlYWRsaW5lLnNldHRpbmdzfX0iKSk7DQptZW51SXRlbXMucHVzaChuZXcgTWFpbk1lbnVJdGVtKCJsb2ciLCAie3subWFpbk1lbnUuaXRlbS5sb2d9fSIsICJsb2cucG5nIiwgInt7Lm1haW5NZW51LmhlYWRsaW5lLmxvZ319IikpOw0KbWVudUl0ZW1zLnB1c2gobmV3IE1haW5NZW51SXRlbSgibG9nb3V0IiwgInt7Lm1haW5NZW51Lml0ZW0ubG9nb3V0fX0iLCAibG9nb3V0LnBuZyIsICJ7ey5tYWluTWVudS5oZWFkbGluZS5sb2dvdXR9fSIpKTsNCi8vIFNldHRpbmdzIGNhdGVnb3JpZXMNCnZhciBzZXR0aW5nc0NhdGVnb3J5ID0gbmV3IEFycmF5KCk7DQpzZXR0aW5nc0NhdGVnb3J5LnB1c2gobmV3IFNldHRpbmdzQ2F0ZWdvcnlJdGVtKCJ7ey5zZXR0aW5ncy5jYXRlZ29yeS5nZW5lcmFsfX0iLCAieHRldmVBdXRvVXBkYXRlLHR1bmVyLGVwZ1NvdXJjZSxhcGkiKSk7DQpzZXR0aW5nc0NhdGVnb3J5LnB1c2gobmV3IFNldHRpbmdzQ2F0ZWdvcnlJdGVtKCJ7ey5zZXR0aW5ncy5jYXRlZ29yeS5maWxlc319IiwgInVwZGF0ZSxmaWxlcy51cGRhdGUsdGVtcC5wYXRoLGNhY2hlLmltYWdlcyx4ZXBnLnJlcGxhY2UubWlzc2luZy5pbWFnZXMiKSk7DQpzZXR0aW5nc0NhdGVnb3J5LnB1c2gobmV3IFNldHRpbmdzQ2F0ZWdvcnlJdGVtKCJ7ey5zZXR0aW5ncy5jYXRlZ29yeS5zdHJlYW1pbmd9fSIsICJidWZmZXIsdWRweHksYnVmZmVyLnNpemUua2IsYnVmZmVyLnRpbWVvdXQsdXNlci5hZ2VudCxmZm1wZWcucGF0aCxmZm1wZWcub3B0aW9ucyx2bGMucGF0aCx2bGMub3B0aW9ucyIpKTsNCnNldHRpbmdzQ2F0ZWdvcnkucHVzaChuZXcgU2V0dGluZ3NDYXRlZ29yeUl0ZW0oInt7LnNldHRpbmdzLmNhdGVnb3J5LmJhY2t1cH19IiwgImJhY2t1cC5wYXRoLGJhY2t1cC5rZWVwIikpOw0Kc2V0dGluZ3NDYXRlZ29yeS5wdXNoKG5ldyBTZXR0aW5nc0NhdGVnb3J5SXRlbSgie3suc2V0dGluZ3MuY2F0ZWdvcnkuYXV0aGVudGljYXRpb259fSIsICJhdXRoZW50aWNhdGlvbi53ZWIsYXV0aGVudGljYXRpb24ucG1zLGF1dGhlbnRpY2F0aW9uLm0zdSxhdXRoZW50aWNhdGlvbi54bWwsYXV0aGVudGljYXRpb24uYXBpIikpOw0KZnVuY3Rpb24gc2hvd1BvcFVwRWxlbWVudChlbG0pIHsNCiAgICB2YXIgYWxsRWxlbWVudHMgPSBuZXcgQXJyYXkoInBvcHVwLWN1c3RvbSIpOw0KICAgIGZvciAodmFyIGkgPSAwOyBpIDwgYWxsRWxlbWVudHMubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgc2hvd0VsZW1lbnQoYWxsRWxlbWVudHNbaV0sIGZhbHNlKTsNCiAgICB9DQogICAgc2hvd0VsZW1lbnQoZWxtLCB0cnVlKTsNCiAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsNCiAgICAgICAgc2hvd0VsZW1lbnQoInBvcHVwIiwgdHJ1ZSk7DQogICAgfSwgMTApOw0KICAgIHJldHVybjsNCn0NCmZ1bmN0aW9uIHNob3dFbGVtZW50KGVsbUlELCB0eXBlKSB7DQogICAgdmFyIGNzc0NsYXNzOw0KICAgIHN3aXRjaCAodHlwZSkgew0KICAgICAgICBjYXNlIHRydWU6DQogICAgICAgICAgICBjc3NDbGFzcyA9ICJibG9jayI7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSBmYWxzZToNCiAgICAgICAgICAgIGNzc0NsYXNzID0gIm5vbmUiOw0KICAgICAgICAgICAgYnJlYWs7DQogICAgfQ0KICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGVsbUlEKS5jbGFzc05hbWUgPSBjc3NDbGFzczsNCn0NCmZ1bmN0aW9uIGNoYW5nZUJ1dHRvbkFjdGlvbihlbGVtZW50LCBidXR0b25JRCwgYXR0cmlidXRlKSB7DQogICAgdmFyIHZhbHVlID0gZWxlbWVudC5vcHRpb25zW2VsZW1lbnQuc2VsZWN0ZWRJbmRleF0udmFsdWU7DQogICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoYnV0dG9uSUQpLnNldEF0dHJpYnV0ZShhdHRyaWJ1dGUsIHZhbHVlKTsNCn0NCmZ1bmN0aW9uIGdldExvY2FsRGF0YShkYXRhVHlwZSwgaWQpIHsNCiAgICBsZXQgZGF0YSA9IHt9Ow0KICAgIHN3aXRjaCAoZGF0YVR5cGUpIHsNCiAgICAgICAgY2FzZSAibTN1IjoNCiAgICAgICAgICAgIGRhdGEgPSBTRVJWRVJbInNldHRpbmdzIl1bImZpbGVzIl1bZGF0YVR5cGVdW2lkXTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJoZGhyIjoNCiAgICAgICAgICAgIGRhdGEgPSBTRVJWRVJbInNldHRpbmdzIl1bImZpbGVzIl1bZGF0YVR5cGVdW2lkXTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJmaWx0ZXIiOg0KICAgICAgICBjYXNlICJjdXN0b20tZmlsdGVyIjoNCiAgICAgICAgY2FzZSAiZ3JvdXAtdGl0bGUiOg0KICAgICAgICAgICAgaWYgKGlkID09IC0xKSB7DQogICAgICAgICAgICAgICAgZGF0YVsiYWN0aXZlIl0gPSB0cnVlOw0KICAgICAgICAgICAgICAgIGRhdGFbImNhc2VTZW5zaXRpdmUiXSA9IGZhbHNlOw0KICAgICAgICAgICAgICAgIGRhdGFbImRlc2NyaXB0aW9uIl0gPSAiIjsNCiAgICAgICAgICAgICAgICBkYXRhWyJleGNsdWRlIl0gPSAiIjsNCiAgICAgICAgICAgICAgICBkYXRhWyJmaWx0ZXIiXSA9ICIiOw0KICAgICAgICAgICAgICAgIGRhdGFbImluY2x1ZGUiXSA9ICIiOw0KICAgICAgICAgICAgICAgIGRhdGFbIm5hbWUiXSA9ICIiOw0KICAgICAgICAgICAgICAgIGRhdGFbInR5cGUiXSA9ICJncm91cC10aXRsZSI7DQogICAgICAgICAgICAgICAgZGF0YVsicHJlc2VydmVNYXBwaW5nIl0gPSB0cnVlOw0KICAgICAgICAgICAgICAgIGRhdGFbInN0YXJ0aW5nQ2hhbm5lbCJdID0gU0VSVkVSWyJzZXR0aW5ncyJdWyJtYXBwaW5nLmZpcnN0LmNoYW5uZWwiXTsNCiAgICAgICAgICAgICAgICBkYXRhWyJkZWZhdWx0TWlzc2luZ0VQRyJdID0gIi0iOw0KICAgICAgICAgICAgICAgIFNFUlZFUlsic2V0dGluZ3MiXVsiZmlsdGVyIl1baWRdID0gZGF0YTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGRhdGEgPSBTRVJWRVJbInNldHRpbmdzIl1bImZpbHRlciJdW2lkXTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJ4bWx0diI6DQogICAgICAgICAgICBkYXRhID0gU0VSVkVSWyJzZXR0aW5ncyJdWyJmaWxlcyJdW2RhdGFUeXBlXVtpZF07DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSAidXNlcnMiOg0KICAgICAgICAgICAgZGF0YSA9IFNFUlZFUlsidXNlcnMiXVtpZF1bImRhdGEiXTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJtYXBwaW5nIjoNCiAgICAgICAgICAgIGRhdGEgPSBTRVJWRVJbInhlcGciXVsiZXBnTWFwcGluZyJdW2lkXTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJtM3VHcm91cHMiOg0KICAgICAgICAgICAgZGF0YSA9IFNFUlZFUlsiZGF0YSJdWyJwbGF5bGlzdCJdWyJtM3UiXVsiZ3JvdXBzIl07DQogICAgICAgICAgICBicmVhazsNCiAgICB9DQogICAgcmV0dXJuIGRhdGE7DQp9DQpmdW5jdGlvbiBnZXRPYmpLZXlzKG9iaikgew0KICAgIHZhciBrZXlzID0gbmV3IEFycmF5KCk7DQogICAgZm9yICh2YXIgaSBpbiBvYmopIHsNCiAgICAgICAgaWYgKG9iai5oYXNPd25Qcm9wZXJ0eShpKSkgew0KICAgICAgICAgICAga2V5cy5wdXNoKGkpOw0KICAgICAgICB9DQogICAgfQ0KICAgIHJldHVybiBrZXlzOw0KfQ0KZnVuY3Rpb24gZ2V0QWxsU2VsZWN0ZWRDaGFubmVscygpIHsNCiAgICB2YXIgY2hhbm5lbHMgPSBuZXcgQXJyYXkoKTsNCiAgICBpZiAoQlVMS19FRElUID09IGZhbHNlKSB7DQogICAgICAgIHJldHVybiBjaGFubmVsczsNCiAgICB9DQogICAgdmFyIHRycyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb250ZW50X3RhYmxlIikuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlRSIik7DQogICAgZm9yICh2YXIgaSA9IDE7IGkgPCB0cnMubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgaWYgKHRyc1tpXS5zdHlsZS5kaXNwbGF5ICE9ICJub25lIikgew0KICAgICAgICAgICAgaWYgKHRyc1tpXS5maXJzdENoaWxkLmZpcnN0Q2hpbGQuY2hlY2tlZCA9PSB0cnVlKSB7DQogICAgICAgICAgICAgICAgY2hhbm5lbHMucHVzaCh0cnNbaV0uaWQpOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQogICAgfQ0KICAgIHJldHVybiBjaGFubmVsczsNCn0NCmZ1bmN0aW9uIHNlbGVjdEFsbENoYW5uZWxzKCkgew0KICAgIHZhciBidWxrID0gZmFsc2U7DQogICAgdmFyIHRycyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb250ZW50X3RhYmxlIikuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlRSIik7DQogICAgaWYgKHRyc1swXS5maXJzdENoaWxkLmZpcnN0Q2hpbGQuY2hlY2tlZCA9PSB0cnVlKSB7DQogICAgICAgIGJ1bGsgPSB0cnVlOw0KICAgIH0NCiAgICBmb3IgKHZhciBpID0gMTsgaSA8IHRycy5sZW5ndGg7IGkrKykgew0KICAgICAgICBpZiAodHJzW2ldLnN0eWxlLmRpc3BsYXkgIT0gIm5vbmUiKSB7DQogICAgICAgICAgICBzd2l0Y2ggKGJ1bGspIHsNCiAgICAgICAgICAgICAgICBjYXNlIHRydWU6DQogICAgICAgICAgICAgICAgICAgIHRyc1tpXS5maXJzdENoaWxkLmZpcnN0Q2hpbGQuY2hlY2tlZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgZmFsc2U6DQogICAgICAgICAgICAgICAgICAgIHRyc1tpXS5maXJzdENoaWxkLmZpcnN0Q2hpbGQuY2hlY2tlZCA9IGZhbHNlOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KICAgIH0NCiAgICByZXR1cm47DQp9DQpmdW5jdGlvbiBidWxrRWRpdCgpIHsNCiAgICBCVUxLX0VESVQgPSAhQlVMS19FRElUOw0KICAgIHZhciBjbGFzc05hbWU7DQogICAgdmFyIHJvd3MgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCJidWxrIik7DQogICAgc3dpdGNoIChCVUxLX0VESVQpIHsNCiAgICAgICAgY2FzZSB0cnVlOg0KICAgICAgICAgICAgY2xhc3NOYW1lID0gImJ1bGsgc2hvd0J1bGsiOw0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGNhc2UgZmFsc2U6DQogICAgICAgICAgICBjbGFzc05hbWUgPSAiYnVsayBoaWRlQnVsayI7DQogICAgICAgICAgICBicmVhazsNCiAgICB9DQogICAgZm9yICh2YXIgaSA9IDA7IGkgPCByb3dzLmxlbmd0aDsgaSsrKSB7DQogICAgICAgIHJvd3NbaV0uY2xhc3NOYW1lID0gY2xhc3NOYW1lOw0KICAgICAgICByb3dzW2ldLmNoZWNrZWQgPSBmYWxzZTsNCiAgICB9DQogICAgcmV0dXJuOw0KfQ0KZnVuY3Rpb24gc29ydFRhYmxlKGNvbHVtbikgew0KICAgIC8vY29uc29sZS5sb2coY29sdW1tKTsNCiAgICBpZiAoY29sdW1uID09IENPTFVNTl9UT19TT1JUKSB7DQogICAgICAgIHJldHVybjsNCiAgICB9DQogICAgdmFyIHRhYmxlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnRlbnRfdGFibGUiKTsNCiAgICB2YXIgdGFibGVIZWFkID0gdGFibGUuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlRSIilbMF07DQogICAgdmFyIHRhYmxlSXRlbXMgPSB0YWJsZUhlYWQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlREIik7DQogICAgdmFyIHNvcnRPYmogPSBuZXcgT2JqZWN0KCk7DQogICAgdmFyIHgsIHhWYWx1ZTsNCiAgICB2YXIgdGFibGVIZWFkZXI7DQogICAgdmFyIHNvcnRCeVN0cmluZyA9IGZhbHNlOw0KICAgIGlmIChjb2x1bW4gPiAwICYmIENPTFVNTl9UT19TT1JUID4gMCkgew0KICAgICAgICB0YWJsZUl0ZW1zW0NPTFVNTl9UT19TT1JUXS5jbGFzc05hbWUgPSAicG9pbnRlciI7DQogICAgICAgIHRhYmxlSXRlbXNbY29sdW1uXS5jbGFzc05hbWUgPSAic29ydFRoaXMiOw0KICAgIH0NCiAgICBDT0xVTU5fVE9fU09SVCA9IGNvbHVtbjsNCiAgICB2YXIgcm93cyA9IHRhYmxlLnJvd3M7DQogICAgaWYgKHJvd3NbMV0gIT0gdW5kZWZpbmVkKSB7DQogICAgICAgIHRhYmxlSGVhZGVyID0gcm93c1swXTsNCiAgICAgICAgeCA9IHJvd3NbMV0uZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlREIilbY29sdW1uXTsNCiAgICAgICAgZm9yIChpID0gMTsgaSA8IHJvd3MubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgICAgIHggPSByb3dzW2ldLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJURCIpW2NvbHVtbl07DQogICAgICAgICAgICBzd2l0Y2ggKHguY2hpbGROb2Rlc1swXS50YWdOYW1lLnRvTG93ZXJDYXNlKCkpIHsNCiAgICAgICAgICAgICAgICBjYXNlICJpbnB1dCI6DQogICAgICAgICAgICAgICAgICAgIHhWYWx1ZSA9IHguZ2V0RWxlbWVudHNCeVRhZ05hbWUoIklOUFVUIilbMF0udmFsdWUudG9Mb3dlckNhc2UoKTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAicCI6DQogICAgICAgICAgICAgICAgICAgIHhWYWx1ZSA9IHguZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlAiKVswXS5pbm5lclRleHQudG9Mb3dlckNhc2UoKTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgZGVmYXVsdDogY29uc29sZS5sb2coeC5jaGlsZE5vZGVzWzBdLnRhZ05hbWUpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgaWYgKHhWYWx1ZSA9PSAiIiB8fCB4VmFsdWUgPT0gTmFOKSB7DQogICAgICAgICAgICAgICAgeFZhbHVlID0gaTsNCiAgICAgICAgICAgICAgICBzb3J0T2JqW2ldID0gcm93c1tpXTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgICAgIHN3aXRjaCAoaXNOYU4oeFZhbHVlKSB8fCB0eXBlb2YgeFZhbHVlID09ICJzdHJpbmciKSB7DQogICAgICAgICAgICAgICAgICAgIGNhc2UgZmFsc2U6DQogICAgICAgICAgICAgICAgICAgICAgICB4VmFsdWUgPSBwYXJzZUZsb2F0KHhWYWx1ZSk7DQogICAgICAgICAgICAgICAgICAgICAgICBzb3J0T2JqW3hWYWx1ZV0gPSByb3dzW2ldOw0KICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgICAgIGNhc2UgdHJ1ZToNCiAgICAgICAgICAgICAgICAgICAgICAgIHNvcnRCeVN0cmluZyA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBzb3J0T2JqW3hWYWx1ZS50b0xvd2VyQ2FzZSgpICsgaV0gPSByb3dzW2ldOw0KICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQogICAgICAgIHdoaWxlICh0YWJsZS5maXJzdENoaWxkKSB7DQogICAgICAgICAgICB0YWJsZS5yZW1vdmVDaGlsZCh0YWJsZS5maXJzdENoaWxkKTsNCiAgICAgICAgfQ0KICAgICAgICB2YXIgc29ydFZhbHVlcyA9IGdldE9iaktleXMoc29ydE9iaik7DQogICAgICAgIGlmIChzb3J0QnlTdHJpbmcgPT0gdHJ1ZSkgew0KICAgICAgICAgICAgc29ydFZhbHVlcy5zb3J0KCk7DQogICAgICAgICAgICBjb25zb2xlLmxvZyhzb3J0VmFsdWVzKTsNCiAgICAgICAgfQ0KICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgIGZ1bmN0aW9uIHNvcnRGbG9hdChhLCBiKSB7DQogICAgICAgICAgICAgICAgcmV0dXJuIGEgLSBiOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgc29ydFZhbHVlcy5zb3J0KHNvcnRGbG9hdCk7DQogICAgICAgIH0NCiAgICAgICAgdGFibGUuYXBwZW5kQ2hpbGQodGFibGVIZWFkZXIpOw0KICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHNvcnRWYWx1ZXMubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgICAgIHRhYmxlLmFwcGVuZENoaWxkKHNvcnRPYmpbc29ydFZhbHVlc1tpXV0pOw0KICAgICAgICB9DQogICAgfQ0KICAgIHJldHVybjsNCn0NCmZ1bmN0aW9uIGNyZWF0ZVNlYXJjaE9iaigpIHsNCiAgICBTRUFSQ0hfTUFQUElORyA9IG5ldyBPYmplY3QoKTsNCiAgICB2YXIgZGF0YSA9IFNFUlZFUlsieGVwZyJdWyJlcGdNYXBwaW5nIl07DQogICAgdmFyIGNoYW5uZWxzID0gZ2V0T2JqS2V5cyhkYXRhKTsNCiAgICB2YXIgY2hhbm5lbEtleXMgPSBbIngtYWN0aXZlIiwgIngtY2hhbm5lbElEIiwgIngtbmFtZSIsICJfZmlsZS5tM3UubmFtZSIsICJ4LWdyb3VwLXRpdGxlIiwgIngteG1sdHYtZmlsZSJdOw0KICAgIGNoYW5uZWxzLmZvckVhY2goaWQgPT4gew0KICAgICAgICBjaGFubmVsS2V5cy5mb3JFYWNoKGtleSA9PiB7DQogICAgICAgICAgICBpZiAoa2V5ID09ICJ4LWFjdGl2ZSIpIHsNCiAgICAgICAgICAgICAgICBzd2l0Y2ggKGRhdGFbaWRdW2tleV0pIHsNCiAgICAgICAgICAgICAgICAgICAgY2FzZSB0cnVlOg0KICAgICAgICAgICAgICAgICAgICAgICAgU0VBUkNIX01BUFBJTkdbaWRdID0gIm9ubGluZSAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgICAgIGNhc2UgZmFsc2U6DQogICAgICAgICAgICAgICAgICAgICAgICBTRUFSQ0hfTUFQUElOR1tpZF0gPSAib2ZmbGluZSAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgZWxzZSB7DQogICAgICAgICAgICAgICAgaWYgKGtleSA9PSAieC14bWx0di1maWxlIikgew0KICAgICAgICAgICAgICAgICAgICB2YXIgeG1sdHZGaWxlID0gZ2V0VmFsdWVGcm9tUHJvdmlkZXJGaWxlKGRhdGFbaWRdW2tleV0sICJ4bWx0diIsICJuYW1lIik7DQogICAgICAgICAgICAgICAgICAgIGlmICh4bWx0dkZpbGUgIT0gdW5kZWZpbmVkKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBTRUFSQ0hfTUFQUElOR1tpZF0gPSBTRUFSQ0hfTUFQUElOR1tpZF0gKyB4bWx0dkZpbGUgKyAiICI7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgZWxzZSB7DQogICAgICAgICAgICAgICAgICAgIFNFQVJDSF9NQVBQSU5HW2lkXSA9IFNFQVJDSF9NQVBQSU5HW2lkXSArIGRhdGFbaWRdW2tleV0gKyAiICI7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfQ0KICAgICAgICB9KTsNCiAgICB9KTsNCiAgICByZXR1cm47DQp9DQpmdW5jdGlvbiBzZWFyY2hJbk1hcHBpbmcoKSB7DQogICAgdmFyIHNlYXJjaFZhbHVlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNlYXJjaE1hcHBpbmciKS52YWx1ZTsNCiAgICB2YXIgdHJzID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnRlbnRfdGFibGUiKS5nZXRFbGVtZW50c0J5VGFnTmFtZSgiVFIiKTsNCiAgICBmb3IgKHZhciBpID0gMTsgaSA8IHRycy5sZW5ndGg7ICsraSkgew0KICAgICAgICB2YXIgaWQgPSB0cnNbaV0uZ2V0QXR0cmlidXRlKCJpZCIpOw0KICAgICAgICB2YXIgZWxlbWVudCA9IFNFQVJDSF9NQVBQSU5HW2lkXTsNCiAgICAgICAgc3dpdGNoIChlbGVtZW50LnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoc2VhcmNoVmFsdWUudG9Mb3dlckNhc2UoKSkpIHsNCiAgICAgICAgICAgIGNhc2UgdHJ1ZToNCiAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkuc3R5bGUuZGlzcGxheSA9ICIiOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSBmYWxzZToNCiAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkuc3R5bGUuZGlzcGxheSA9ICJub25lIjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgfQ0KICAgIH0NCiAgICByZXR1cm47DQp9DQpmdW5jdGlvbiBjYWxjdWxhdGVXcmFwcGVySGVpZ2h0KCkgew0KICAgIGlmIChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYm94LXdyYXBwZXIiKSkgew0KICAgICAgICB2YXIgZWxtID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImJveC13cmFwcGVyIik7DQogICAgICAgIHZhciBkaXZzID0gbmV3IEFycmF5KCJteVN0cmVhbXNCb3giLCAiY2xpZW50SW5mbyIsICJjb250ZW50Iik7DQogICAgICAgIHZhciBlbGVtZW50c0hlaWdodCA9IDAgLSBlbG0ub2Zmc2V0SGVpZ2h0Ow0KICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGRpdnMubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgICAgIGVsZW1lbnRzSGVpZ2h0ID0gZWxlbWVudHNIZWlnaHQgKyBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChkaXZzW2ldKS5vZmZzZXRIZWlnaHQ7DQogICAgICAgIH0NCiAgICAgICAgZWxtLnN0eWxlLmhlaWdodCA9IHdpbmRvdy5pbm5lckhlaWdodCAtIGVsZW1lbnRzSGVpZ2h0ICsgInB4IjsNCiAgICB9DQogICAgcmV0dXJuOw0KfQ0KZnVuY3Rpb24gY2hhbmdlQ2hhbm5lbE51bWJlcihlbGVtZW50KSB7DQogICAgdmFyIGRiSUQgPSBlbGVtZW50LnBhcmVudE5vZGUucGFyZW50Tm9kZS5pZDsNCiAgICB2YXIgbmV3TnVtYmVyID0gcGFyc2VGbG9hdChlbGVtZW50LnZhbHVlKTsNCiAgICB2YXIgY2hhbm5lbE51bWJlcnMgPSBbXTsNCiAgICB2YXIgZGF0YSA9IFNFUlZFUlsieGVwZyJdWyJlcGdNYXBwaW5nIl07DQogICAgdmFyIGNoYW5uZWxzID0gZ2V0T2JqS2V5cyhkYXRhKTsNCiAgICBpZiAoaXNOYU4obmV3TnVtYmVyKSkgew0KICAgICAgICBhbGVydCgie3suYWxlcnQuaW52YWxpZENoYW5uZWxOdW1iZXJ9fSIpOw0KICAgICAgICByZXR1cm47DQogICAgfQ0KICAgIGNoYW5uZWxzLmZvckVhY2goaWQgPT4gew0KICAgICAgICB2YXIgY2hhbm5lbE51bWJlciA9IHBhcnNlRmxvYXQoZGF0YVtpZF1bIngtY2hhbm5lbElEIl0pOw0KICAgICAgICBjaGFubmVsTnVtYmVycy5wdXNoKGNoYW5uZWxOdW1iZXIpOw0KICAgIH0pOw0KICAgIGZvciAodmFyIGkgPSAwOyBpIDwgY2hhbm5lbE51bWJlcnMubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgaWYgKGNoYW5uZWxOdW1iZXJzLmluZGV4T2YobmV3TnVtYmVyKSA9PSAtMSkgew0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIH0NCiAgICAgICAgaWYgKE1hdGguZmxvb3IobmV3TnVtYmVyKSA9PSBuZXdOdW1iZXIpIHsNCiAgICAgICAgICAgIG5ld051bWJlciA9IG5ld051bWJlciArIDE7DQogICAgICAgIH0NCiAgICAgICAgZWxzZSB7DQogICAgICAgICAgICBuZXdOdW1iZXIgPSBuZXdOdW1iZXIgKyAwLjE7DQogICAgICAgICAgICBuZXdOdW1iZXIudG9GaXhlZCgxKTsNCiAgICAgICAgICAgIG5ld051bWJlciA9IE1hdGgucm91bmQobmV3TnVtYmVyICogMTApIC8gMTA7DQogICAgICAgIH0NCiAgICB9DQogICAgZGF0YVtkYklEXVsieC1jaGFubmVsSUQiXSA9IG5ld051bWJlci50b1N0cmluZygpOw0KICAgIGVsZW1lbnQudmFsdWUgPSBuZXdOdW1iZXI7DQogICAgY29uc29sZS5sb2coZGF0YVtkYklEXVsieC1jaGFubmVsSUQiXSk7DQogICAgaWYgKENPTFVNTl9UT19TT1JUID09IDEpIHsNCiAgICAgICAgQ09MVU1OX1RPX1NPUlQgPSAtMTsNCiAgICAgICAgc29ydFRhYmxlKDEpOw0KICAgIH0NCiAgICByZXR1cm47DQp9DQpmdW5jdGlvbiBiYWNrdXAoKSB7DQogICAgdmFyIGRhdGEgPSBuZXcgT2JqZWN0KCk7DQogICAgY29uc29sZS5sb2coIkJhY2t1cCBkYXRhIik7DQogICAgdmFyIGNtZCA9ICJ4dGV2ZUJhY2t1cCI7DQogICAgY29uc29sZS5sb2coIlNFTkQgVE8gU0VSVkVSIik7DQogICAgY29uc29sZS5sb2coZGF0YSk7DQogICAgdmFyIHNlcnZlciA9IG5ldyBTZXJ2ZXIoY21kKTsNCiAgICBzZXJ2ZXIucmVxdWVzdChkYXRhKTsNCiAgICByZXR1cm47DQp9DQpmdW5jdGlvbiB0b2dnbGVDaGFubmVsU3RhdHVzKGlkKSB7DQogICAgdmFyIGVsZW1lbnQ7DQogICAgdmFyIHN0YXR1czsNCiAgICBpZiAoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImFjdGl2ZSIpKSB7DQogICAgICAgIHZhciBjaGVja2JveCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJhY3RpdmUiKTsNCiAgICAgICAgc3RhdHVzID0gKGNoZWNrYm94KS5jaGVja2VkOw0KICAgIH0NCiAgICB2YXIgaWRzID0gZ2V0QWxsU2VsZWN0ZWRDaGFubmVscygpOw0KICAgIGlmIChpZHMubGVuZ3RoID09IDApIHsNCiAgICAgICAgaWRzLnB1c2goaWQpOw0KICAgIH0NCiAgICBpZHMuZm9yRWFjaChpZCA9PiB7DQogICAgICAgIHZhciBjaGFubmVsID0gU0VSVkVSWyJ4ZXBnIl1bImVwZ01hcHBpbmciXVtpZF07DQogICAgICAgIGNoYW5uZWxbIngtYWN0aXZlIl0gPSBzdGF0dXM7DQogICAgICAgIHN3aXRjaCAoY2hhbm5lbFsieC1hY3RpdmUiXSkgew0KICAgICAgICAgICAgY2FzZSB0cnVlOg0KICAgICAgICAgICAgICAgIGlmIChjaGFubmVsWyJ4LXhtbHR2LWZpbGUiXSA9PSAiLSIgfHwgY2hhbm5lbFsieC1tYXBwaW5nIl0gPT0gIi0iKSB7DQogICAgICAgICAgICAgICAgICAgIGlmIChCVUxLX0VESVQgPT0gZmFsc2UpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGFsZXJ0KGNoYW5uZWxbIngtbmFtZSJdICsgIjogTWlzc2luZyBYTUxUViBmaWxlIC8gY2hhbm5lbCIpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2hlY2tib3guY2hlY2tlZCA9IGZhbHNlOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIGNoYW5uZWxbIngtYWN0aXZlIl0gPSBmYWxzZTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlIGZhbHNlOg0KICAgICAgICAgICAgICAgIC8vIGNvZGUuLi4NCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgfQ0KICAgICAgICBpZiAoY2hhbm5lbFsieC1hY3RpdmUiXSA9PSBmYWxzZSkgew0KICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpLmNsYXNzTmFtZSA9ICJub3RBY3RpdmVFUEciOw0KICAgICAgICB9DQogICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpLmNsYXNzTmFtZSA9ICJhY3RpdmVFUEciOw0KICAgICAgICB9DQogICAgfSk7DQp9DQpmdW5jdGlvbiByZXN0b3JlKCkgew0KICAgIGlmIChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndXBsb2FkJykpIHsNCiAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3VwbG9hZCcpLnJlbW92ZSgpOw0KICAgIH0NCiAgICB2YXIgcmVzdG9yZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIklOUFVUIik7DQogICAgcmVzdG9yZS5zZXRBdHRyaWJ1dGUoInR5cGUiLCAiZmlsZSIpOw0KICAgIHJlc3RvcmUuc2V0QXR0cmlidXRlKCJjbGFzcyIsICJub3RWaXNpYmxlIik7DQogICAgcmVzdG9yZS5zZXRBdHRyaWJ1dGUoIm5hbWUiLCAiIik7DQogICAgcmVzdG9yZS5pZCA9ICJ1cGxvYWQiOw0KICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQocmVzdG9yZSk7DQogICAgcmVzdG9yZS5jbGljaygpOw0KICAgIHJlc3RvcmUub25jaGFuZ2UgPSBmdW5jdGlvbiAoKSB7DQogICAgICAgIHZhciBmaWxlbmFtZSA9IHJlc3RvcmUuZmlsZXNbMF0ubmFtZTsNCiAgICAgICAgdmFyIGNoZWNrID0gY29uZmlybSgiRmlsZTogIiArIGZpbGVuYW1lICsgIlxue3suY29uZmlybS5yZXN0b3JlfX0iKTsNCiAgICAgICAgaWYgKGNoZWNrID09IHRydWUpIHsNCiAgICAgICAgICAgIHZhciByZWFkZXIgPSBuZXcgRmlsZVJlYWRlcigpOw0KICAgICAgICAgICAgdmFyIGZpbGUgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCdpbnB1dFt0eXBlPWZpbGVdJykuZmlsZXNbMF07DQogICAgICAgICAgICBpZiAoZmlsZSkgew0KICAgICAgICAgICAgICAgIHJlYWRlci5yZWFkQXNEYXRhVVJMKGZpbGUpOw0KICAgICAgICAgICAgICAgIHJlYWRlci5vbmxvYWQgPSBmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKHJlYWRlci5yZXN1bHQpOw0KICAgICAgICAgICAgICAgICAgICB2YXIgZGF0YSA9IG5ldyBPYmplY3QoKTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGNtZCA9ICJ4dGV2ZVJlc3RvcmUiOw0KICAgICAgICAgICAgICAgICAgICBkYXRhWyJiYXNlNjQiXSA9IHJlYWRlci5yZXN1bHQ7DQogICAgICAgICAgICAgICAgICAgIHZhciBzZXJ2ZXIgPSBuZXcgU2VydmVyKGNtZCk7DQogICAgICAgICAgICAgICAgICAgIHNlcnZlci5yZXF1ZXN0KGRhdGEpOw0KICAgICAgICAgICAgICAgIH07DQogICAgICAgICAgICB9DQogICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICBhbGVydCgiRmlsZSBjb3VsZCBub3QgYmUgbG9hZGVkIik7DQogICAgICAgICAgICB9DQogICAgICAgICAgICByZXN0b3JlLnJlbW92ZSgpOw0KICAgICAgICAgICAgcmV0dXJuOw0KICAgICAgICB9DQogICAgfTsNCiAgICByZXR1cm47DQp9DQpmdW5jdGlvbiB1cGxvYWRMb2dvKCkgew0KICAgIGlmIChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndXBsb2FkJykpIHsNCiAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3VwbG9hZCcpLnJlbW92ZSgpOw0KICAgIH0NCiAgICB2YXIgdXBsb2FkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiSU5QVVQiKTsNCiAgICB1cGxvYWQuc2V0QXR0cmlidXRlKCJ0eXBlIiwgImZpbGUiKTsNCiAgICB1cGxvYWQuc2V0QXR0cmlidXRlKCJjbGFzcyIsICJub3RWaXNpYmxlIik7DQogICAgdXBsb2FkLnNldEF0dHJpYnV0ZSgibmFtZSIsICIiKTsNCiAgICB1cGxvYWQuaWQgPSAidXBsb2FkIjsNCiAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHVwbG9hZCk7DQogICAgdXBsb2FkLmNsaWNrKCk7DQogICAgdXBsb2FkLm9uYmx1ciA9IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgYWxlcnQoKTsNCiAgICB9Ow0KICAgIHVwbG9hZC5vbmNoYW5nZSA9IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgdmFyIGZpbGVuYW1lID0gdXBsb2FkLmZpbGVzWzBdLm5hbWU7DQogICAgICAgIHZhciByZWFkZXIgPSBuZXcgRmlsZVJlYWRlcigpOw0KICAgICAgICB2YXIgZmlsZSA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ2lucHV0W3R5cGU9ZmlsZV0nKS5maWxlc1swXTsNCiAgICAgICAgaWYgKGZpbGUpIHsNCiAgICAgICAgICAgIHJlYWRlci5yZWFkQXNEYXRhVVJMKGZpbGUpOw0KICAgICAgICAgICAgcmVhZGVyLm9ubG9hZCA9IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhyZWFkZXIucmVzdWx0KTsNCiAgICAgICAgICAgICAgICB2YXIgZGF0YSA9IG5ldyBPYmplY3QoKTsNCiAgICAgICAgICAgICAgICB2YXIgY21kID0gInVwbG9hZExvZ28iOw0KICAgICAgICAgICAgICAgIGRhdGFbImJhc2U2NCJdID0gcmVhZGVyLnJlc3VsdDsNCiAgICAgICAgICAgICAgICBkYXRhWyJmaWxlbmFtZSJdID0gZmlsZS5uYW1lOw0KICAgICAgICAgICAgICAgIHZhciBzZXJ2ZXIgPSBuZXcgU2VydmVyKGNtZCk7DQogICAgICAgICAgICAgICAgc2VydmVyLnJlcXVlc3QoZGF0YSk7DQogICAgICAgICAgICAgICAgdmFyIHVwZGF0ZUxvZ28gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndXBkYXRlLWljb24nKTsNCiAgICAgICAgICAgICAgICB1cGRhdGVMb2dvLmNoZWNrZWQgPSBmYWxzZTsNCiAgICAgICAgICAgICAgICB1cGRhdGVMb2dvLmNsYXNzTmFtZSA9ICJjaGFuZ2VkIjsNCiAgICAgICAgICAgIH07DQogICAgICAgIH0NCiAgICAgICAgZWxzZSB7DQogICAgICAgICAgICBhbGVydCgiRmlsZSBjb3VsZCBub3QgYmUgbG9hZGVkIik7DQogICAgICAgIH0NCiAgICAgICAgdXBsb2FkLnJlbW92ZSgpOw0KICAgICAgICByZXR1cm47DQogICAgfTsNCn0NCmZ1bmN0aW9uIGNoZWNrVW5kbyhrZXkpIHsNCiAgICBzd2l0Y2ggKGtleSkgew0KICAgICAgICBjYXNlICJlcGdNYXBwaW5nIjoNCiAgICAgICAgICAgIGlmIChVTkRPLmhhc093blByb3BlcnR5KGtleSkpIHsNCiAgICAgICAgICAgICAgICBTRVJWRVJbInhlcGciXVtrZXldID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeShVTkRPW2tleV0pKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgICAgIFVORE9ba2V5XSA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkoU0VSVkVSWyJ4ZXBnIl1ba2V5XSkpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICBicmVhazsNCiAgICB9DQogICAgcmV0dXJuOw0KfQ0KZnVuY3Rpb24gc29ydFNlbGVjdChlbGVtKSB7DQogICAgdmFyIHRtcEFyeSA9IFtdOw0KICAgIHZhciBzZWxlY3RlZFZhbHVlID0gZWxlbVtlbGVtLnNlbGVjdGVkSW5kZXhdLnZhbHVlOw0KICAgIGZvciAodmFyIGkgPSAwOyBpIDwgZWxlbS5vcHRpb25zLmxlbmd0aDsgaSsrKQ0KICAgICAgICB0bXBBcnkucHVzaChlbGVtLm9wdGlvbnNbaV0pOw0KICAgIHRtcEFyeS5zb3J0KGZ1bmN0aW9uIChhLCBiKSB7IHJldHVybiAoYS50ZXh0IDwgYi50ZXh0KSA/IC0xIDogMTsgfSk7DQogICAgd2hpbGUgKGVsZW0ub3B0aW9ucy5sZW5ndGggPiAwKQ0KICAgICAgICBlbGVtLm9wdGlvbnNbMF0gPSBudWxsOw0KICAgIHZhciBuZXdTZWxlY3RlZEluZGV4ID0gMDsNCiAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRtcEFyeS5sZW5ndGg7IGkrKykgew0KICAgICAgICBlbGVtLm9wdGlvbnNbaV0gPSB0bXBBcnlbaV07DQogICAgICAgIGlmIChlbGVtLm9wdGlvbnNbaV0udmFsdWUgPT0gc2VsZWN0ZWRWYWx1ZSkNCiAgICAgICAgICAgIG5ld1NlbGVjdGVkSW5kZXggPSBpOw0KICAgIH0NCiAgICBlbGVtLnNlbGVjdGVkSW5kZXggPSBuZXdTZWxlY3RlZEluZGV4OyAvLyBTZXQgbmV3IHNlbGVjdGVkIGluZGV4IGFmdGVyIHNvcnRpbmcNCiAgICByZXR1cm47DQp9DQpmdW5jdGlvbiB1cGRhdGVMb2coKSB7DQogICAgY29uc29sZS5sb2coIlRPS0VOIik7DQogICAgdmFyIHNlcnZlciA9IG5ldyBTZXJ2ZXIoInVwZGF0ZUxvZyIpOw0KICAgIHNlcnZlci5yZXF1ZXN0KG5ldyBPYmplY3QoKSk7DQp9DQo=" webUI["html/video/stream-limit.ts"] = "R0AREABC8CUAAcEAAP8B/wAB/IAUSBIBBkZGbXBlZwlTZXJ2aWNlMDF3fEPK//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////9HQAAQAACwDQABwQAAAAHwACqxBLL//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////0dQABAAArASAAHBAADhAPAAG+EA8AAVvU1W////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////R0EAMAdQAAB7DH4AAAAB4AAAgMAKMQAJEKERAAfYYQAAAAEJ8AAAAAFnZAAorNlAeAIn5cBEAAADAAQAAAMAyDxgxlgAAAABaOvjyyLAAAABBgX//6rcRem95tlIt5Ys2CDZI+7veDI2NCAtIGNvcmUgMTUyIHIyODU0IGU5YTU5MDMgLSBILjI2NC9NUEVHLTQgQVZDIGNvZGVjIC0gQ29weWxlZnQgMjAwMy0yMDE3IC0gaHR0cDovL3dHAQARd3cudmlkZW9sYW4ub3JnL3gyNjQuaHRtbCAtIG9wdGlvbnM6IGNhYmFjPTEgcmVmPTMgZGVibG9jaz0xOjA6MCBhbmFseXNlPTB4MzoweDExMyBtZT1oZXggc3VibWU9NyBwc3k9MSBwc3lfcmQ9MS4wMDowLjAwIG1peGVkX3JlZj0xIG1lX3JhbmdlPTE2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ACqxBLL//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////0dQABEAArASAAHBAADhAPAAG+EA8AAVvU1W////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////RwEAGO10tGlFAwyE91Tzg8923ovJk1dv2xh1gVlYQFtWdZ6NSQ8vgHM7/tMfIZPsqgCU856rdBJJRMDaor/oWA7pkvSmC2aqaC5fd/mkWUPTuG8fRhGqOY1rKxLNSI3HtTQAcuVBxRM0NfMw0ky/JMJYZiCgXcNsxpxl+khr/9fKtO5Fg2VNBti92xcZimHUZDJMQTBOY6vSR9L1N2O/kJQCpdfuc9bkcUTMjH/es/lAySxvbiislkohqkpHAQAZVatwHI0t9eHCUfDyWUEtuCNyDwQFOVMtaYEQJrTrhQX0VduT86F0u0wN9ag0uPsrmX6Rid/x5S7KI1SkS+qP6cdmgSP57uiF4dG6IKsWNfGBLY09H/CFlrg73WINQkkp2diKkdEmtZetn8+ZAKzR5eXN5FebiKt6pIkNLuSofjosypEs2o6boKsfpmbtOV0idOeWDM9C8EIcn3aZwk1s2KBDvt1DlY+i2Cuvhk3XoKLT+pq/bOC5QkcBABolcOXneZXLoQw9W1PH1f/of92Ytjj8okrWijcQAKlE5l8XoTb9qrOiZnDOhqwcMlB9H9rorq041I89hChohYoSkJElcM8V+r8WYN5axD1BNyfwaHAOm4UN2/VEYOkNSfMjmx2S0WW/F2ha8Jj4fc4QgqcXr+TnnbwqLkLTValK4Qa1pcv7PIbDq6zCUfxe04guZ8xEhPQjp17/G6IB/6uq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wnibxQ/cXEblVnM47wbCN3iy4eHjYB5MoIICrSYmd8nt4V0toLs084KJlmnur5FbApYM4W79ff4oZkW88Cg8Fv8TnWhh1Hqc4UlhMbRKm2QxDgfBxar3U7BwNR6prrXXjqfR7ja3tPli+H7Jez/xcTg32QpHAQAdTa7pSSgBvmOqzz175NAFIhwE9p3d71F9jLvhaPv8q1iKopL0kizwzEWElnXWmNhfLkl/Au8KujnoKUaxVdTe+zAZm2dOkejnpNVtVj0Aw9wKcG3ZQ1iRZrUFRIoPKYlmR+oi0LrupuhYABtgPbdCbDtezGTr0nw9wVd/rZ6V+1wcoJ6+8VAVueIdwI3brqm6EoFHiI8L6lER+9SefB8fHo4NYgr/I8jSxaa/2PLX2K/DjrlY6bN8fEcBAB7DXsuh8DITF6CYWj2HTFvqfzlic3QHXnHtvsTFNpyVY1LY8y/fRK2mwALN6IB5W3OuyoKiA3K0lJdQUv2gYhHWvPTV218HYrD0rkbMxRH0SiEEkrHDeOt5T1HtWD13D2/QvMu535fsfZyeaFDjdCE9M0Xi8Lfc7Xj1ZNGend7Jo7/cEiczFkc1vB4z2JpFGZreV2EdquyEzC2STFJtfimyx8QlLngEuR1cxH+lWEcFX+mvBa/eqktIRwEAH6VazFLPNsnHZqsI66TVoArQuUUGFAzr8MT8GZ9V6qpZa5D0jA/4eGi6Kq0smUgRExnqIbSMLWqDf/Pk2YT3MpHTu9VE3Dn9blgB6KsVIkWnB98Y2n/6DrZDcF94Ndu0Ka4U/RZwdV5O5KcO+lU2ZiIOYTYZ6Ie0d+tApxYxJ+YmxaDoCyRNe6crw/yzR5SflT8ddi/E2BM+l+nwVDiKZ/714fmrBxFKWuqLiQNHV19o1cZ8Ubun+ZtHQAASAACwDQABwQAAAAHwACqxBLL//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////0dQABIAArASAAHBAADhAPAAG+EA8AAVvU1W////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////RwEAEH1s3BdtHdF1ln55B24wdACF/ggcRtPmB4IUB6cZJ+m32I4R48ZkdhAFBulgWcsv0wZwH0o1yi3i4qm3rJ98AUKdB9PsNyG9gURV0bTw4myAj6g5Dgodfv6w9bsbOxsGUWkvgAJ3rrR010BvZbIa6CMRCQRjxkCfRF77ansRJZT0JzhtYeSS/ZJob8Rr2jrng3W2rkmHtE+rdqlPiHxmwkRZvYGhBxwiJO2L6f+l/cABsfs09rA+A0pHAQAREZay3TBUIAfMWhApE+LaPgeyOYtaPFONA9aC0h4QrFkaLZfb86678MK+zLgqDBsDoj50eZHMVcczRjs4sYlv7RG8RIWKb5lB9Kn/8+CkxiiA11cHH1yzLX2SKCmhsak/+P/zYQ1EDvEj33bl9e3Jd62cTI+Qw99KrsWnUMN8hFNeXzoGHA3aec+Li4NFboF8sa6lCPR6Csxsvxw8DJaWCnER5Z0p+nKhXavF/eNHQ0DX47ohycc87UcBABKsYHCHXXe3vK1cFYDWO6rhwM6hxCdJ+/X+VB1akQejL6iBMdUPuadUqBnbprwJM0dWpSSn9uuZZeqe46iZOGIJUo69d8x+ZSvPcBH/dK1Y0LJnoWdgWH51SQg7eYqcwjQW3BOy7ZF02Hn1EhTuhsN7ms8zv3WIeEBDBq0T3Idl+Tmw9iJU9skVYiwygHG2+0XwrLa6y+uiQPwMzrnEr1kuf24XoAqrJTZQiVH3aQF4d94yDreWu2KPRwEAE2FsynHZaUcBXEFbeX0nSxZ7sRcRjJvc7RYOny6N8QFwKDVO7jpRWWYM55kuepBOyZ+7BFYeG+FU1kR+ZfmqyDNkD4D1IPwNh6u9JQxDymfN/aMcQC3WxdvCKquPsAut6dugpGkOFtIe+W3ayc4V/J978P+h1EDFMbFjxRPuXht0K2dBQZCJ0ybISUDqWzhPuep8CdxSU4MvMVfdXh7FLl/BqKJUTT+vM+Pz3XnqCQQmH5TjQ4CK55VHAQAUEtgfkBwIYgtwHkhjmtLw7HNTeJeMfTjATEKcyuKzItSeYxHBmGzQ/+G2otpPCOkVAXJ9mfx7LxrW4joZ0ttTRQJ/wqMUK1IN349LiJoo8y/+FwN4jPNDwIleJG697riqnmLOweFW8spHKLBfnHcyC1pG6EIxFpTqUQ0KHqXD/KXIHKioJNAOVwQ1Gfloxebo/Tdtd00dpHP3gcsAOnV75APCYOjVIlwm2X6ViDeZw6Btdb/Br/+yokcBABU3+eOESLlneGbR5SLiL8wPkoRaZ5X7xFlMTMvsv9yHk26bVdmsubSdbYS1Hy64n0+NnL7C1aLD7aJxOudMjVW5goZbfO2KxBQkCD4HFA284wbaB5vOL7mRilCn6YEs1kiwf22+fBLNUmXDb2p353wrD/ygTDhlki66USvUmd/ZAs9uzAddegEzy7Xn00YysWTu/hegYyZtWFC+X5dhLubWJ7n96y5wjrP7PAOXoQQtFUH9j/rBiP/7RwEAFnL/wYKYuj80mPGtimSbF/E9K7XwjwBz8yHZubmVMTCmwkZBM4h0FR1thnUGiSjqjJT6SfunWCZ/dZDQplrzS00UKcUP399SyM+nNG1br8Za0ZYwWch8nyLHYXSRuxdnrfUUespsOQo1cWSLGf0pV2HIcHoiAAEKwPU6irB5BSoFvB1qKVjgEk+QwAEYAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAABHAQA3pAD/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////AwAAAwAAAwAAAwAAAwAAAwBbwUdBABgAAAHgAACAwAoxAAmBIREAB/SBAAAAAQnwAAAAAUGaJGxDv/6plgAAAwAAAwAAAwAAAwAAAwAAAwAAAwAKCKB0AIhy1ftwLNISWucTFC7xeBcaIzP3oZjZo8uT9hqZVstWGnrPz+vjaA5FuCO+K2w7/o39LygDO7aL+0zSrN90LW7r133x8+f+PEKk8d7pd2fj4RYuMOXOYunzFzRX/4IvR1XsK5WJYwVkOca3yfo7DTvUBP9rgSiTRwEAGQD6CFK1PBC4qYCa+coLVnX+jgODNrau5YJXIekDI4+wUNV+5T5HE4e2t5EGAjn77+kC1Vghmvx8KqPnylVUvsaTofheggxHsPuxn1zQt6nA59UglrRUMn8b4pmrvfqTBSqU949+AcNAI6M/eAqz6r0RG5KNeBhx8R2f0x2kujwHU3pc3rlPb6ZrFM/2HiG97eEIezrvWFG7YAAAAwAAAwAE1KRo1VfbdZQ/tOpNGxFmTcQoFidyD2tHAQAapTTIErUKA2Rc9uIzGJu+oW0uNOxRyl6oJNUNJp5L9TIshNS1CmUKgdCaE3LkLwdE8iUkUnIGfWLiWpWmjzsINYC8dnDaSptB53yJkBu0SsR00oo1PZ0pl4ZzoXGSYQJTPaVCbj6FNqm5wcnUqKTB/rgHdPdnDj0K8asLABeo/n3XCXrDorI+LYSD1FBgmV9O7RZdjfL0NnXOQkiq/ZGirwVV0cUF1aHtZx1yHlAAZKuuu7TqB13CAUcBADuRAP///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////yj/IrOvAEoXDNGy+nrxWN0l8cmuqWYaUJpuM9XgAAADAAADAAKmR0EAPAcQAACJHH4AAAAB4AAAgMAKMQAJSOERAAkQoQAAAAEJ8AAAAAFBnkJ4hf8AAAMAAAMAAAMAAAMAAAMAAAMAAAMAC/BmhyuvLmkCgKTgACEXfOVvHRHdpBEEmTTz9pIZCa2FD0CXukzDCakOHekTpJQSdsfd7a/jjM1/5lBtKCAGQ6zOCSQ6DeKtyw+CugDuuglGipwmvQW+FIDjnZ6HRd0uaSOGy6VB3h9MI1o4nqaCqVwwIgubYZFHAQA9XgD////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////WcZrO6BEiqf8pCxYwlz2mkdUzY/ipM/TIHS4m5xQAAAMAAAMAAA5sVm90p14dlvWgBgY7XQ9KVOJKLtaMAN5KiffVQtNuzW5DfL+RewZpAAADAAADAAAQMUdBAB4AAAHgAACAgAUhAAkswQAAAAEJ8AAAAAEBnmF0Qr8AAAMAAAMAAAMAAAMAAAMAAAMAAAMAABJfBjP2+4+W7ZybyT130+Ma4WSqICfd/dS4YtjrLlmh5VBlfrtwJqdN1PBTYDkwGOOONqZQeFN6lLGJoDzvuh3kv1aDBLqug+JhvrSeu5ebnvcrtQzb2REwJL3h9mvtkr0WfDu4AAADAAADAAs32Y4C/6Ns79oCGj6oqLltY3T4I0/QRwEAP5wA//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////8BeoWLRnKQmVgO/RBoBfcK85AAAAMAAAMACFhHQQAwBxAAAJcsfgAAAAHgAACAwAoxAAllAREACUjhAAAAAQnwAAAAAQGeY2pCvwAAAwAAAwAAAwAAAwAAAwAAAwAAAwAAEmDKfLGXsvBBQPNYXlEd6WueJ4deApfcHESlG+7V6u0AiWQqJvNZYM+3Js3Lj9Ldc9yYIHqruVwfMtCYGlX3wMavI/DrhMuJw+RreIF8SKsJD8CMccAAAAMAAAMACrFZOBgEqaP/8EyWsAHV6CgcAgfyox/roEcBADGuAP//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////AAADAAADAHTBR0EAEgAAAeAAAIDACjEACfGhEQAJZQEAAAABCfAAAAABQZpoSahBaJlMCHf//qmWAAADAAADAAADAAADAAADAAADAAADAAALf8A2bry6lUyIAQGNFfVK2Cd7h4qDqmqpvmXfkfTwo2Ab79AHhajxJ4MPWIgAAA84xLRIx7I2CrWjWe96OvgkzgS9mtvhuxdzAgpuIOJI3DEY9mviDDZz8XSAAAADAAADAB7AZkj9AAHHGvk+Pzlku8UkWa5HAQAzogD//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////6HjAkbF/gsWuvw4QAAAAwAAAwAccUdBADQHEAAApTx+AAAAAeAAAIDACjEACblhEQAJgSEAAAABCfAAAAABQZ6GRREsL/8AAAMAAAMAAAMAAAMAAAMAAAMAAAMAAA3URJB/3lMHSmOd0GYZnfpoR80WdqxlyHzPX+V81VUMeXIGrRgq5agd+ACdjoGI036yQ/rmpGw0CmMBrKwpI+nwFo3SP0s1rI2yHBZaiPJjSUgw33rBkxXcq55kfLf2sAAAAwAAAwACBWolidWDnIeQAAADRwEANbEA//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////8AAAMADulHQQA2NAD///////////////////////////////////////////////////////////////////8AAAHgAACAgAUhAAmdQQAAAAEJ8AAAAAEBnqV0Qr8AAAMAAAMAAAMAAAMAAAMAAAMAAAMAABJXNihCnx11JUosH2hBE53O/YN+GPHqcnJiQBIf3maTAAj5iRt+7GYUKBAU9iCXTiouCjGYgAAAAwAAAwA9p4HQBg2cAAADAAADAADGgUdBADc4EAAAs0x+AP////////////////////////////////////////////////////////////////8AAAHgAACAwAoxAAnVgREACblhAAAAAQnwAAAAAQGep2pCvwAAAwAAAwAAAwAAAwAAAwAAAwAAAwAAAwBR6/L83y+ZevtMZ0FW4lp8qV7fVXQAhLAWlS6mDxvpaSUgChorvgTMXtxJEIAAAAMAAAMACqFCAAADAAADAAADAAz4R0EAOCsA////////////////////////////////////////////////////////AAAB4AAAgMAKMQALYiERAAnVgQAAAAEJ8AAAAAFBmqxJqEFsmUwId//+qZYAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAApQTq0hABLvkcWCYrAaRRPNDrECJGlF/11BYvG9+JJ9Y86nxnmQzPxtAAe1UgOsXAAADAAADAAADAAADAAADAAADAAADA/JHQQA5JhAAAMFcfgD/////////////////////////////////////////AAAB4AAAgMAKMQALKeERAAnxoQAAAAEJ8AAAAAFBnspFFSwv/wAAAwAAAwAAAwAAAwAAAwAAAwAAAwAADdRFmvrVE0KXDOGwWddlwYa1foib7tXZKmkua6R4APb4b8+tXwdSNNqgf2IVNwGTohgQAcMvp6SiQxpiQym4AAADAAADAANUNUAAAAMAAAMAAAMBN0dBADo8AP//////////////////////////////////////////////////////////////////////////////AAAB4AAAgIAFIQALDcEAAAABCfAAAAABAZ7pdEK/AAADAAADAAADAAADAAADAAADAAADAAADAFHTAfujIUaaLSuklb9y0/so9AEtQAqkAxOviALQZ5jNt/iOkABrCOZ4md0iUnFwAAADAAADAALwckAAAAMAAAMAAATcR0EAO0IQAADPbH4A//////////////////////////////////////////////////////////////////////////////8AAAHgAACAwAoxAAtGAREACynhAAAAAQnwAAAAAQGe62pCvwAAAwAAAwAAAwAAAwAAAwAAAwAAAwAAAwBR6/L83y+WryR9gmVKPGbIhJpkgAFgHCej3gB6rAHPgHHAAAADAAADAAAYIV0AAAMAAAMAAAMABnxHQQA8UQD//////////////////////////////////////////////////////////////////////////////////////////////////////////wAAAeAAAIDACjEAC9KhEQALRgEAAAABCfAAAAABQZrwSahBbJlMCG///qeEAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAAZ8UdBAD00EAAA3Xx+AP///////////////////////////////////////////////////////////wAAAeAAAIDACjEAC5phEQALYiEAAAABCfAAAAABQZ8ORRUsL/8AAAMAAAMAAAMAAAMAAAMAAAMAAAMAAA3URZr61RNClwzhI2ZXdRHYLZWc1yTgKRhTIXBNABHQKIIyYNyc+AaEn1jhATEAAAMAAAMAAAMAckkIAAADAAADAAADAEbBR0EAPkYA////////////////////////////////////////////////////////////////////////////////////////////AAAB4AAAgIAFIQALfkEAAAABCfAAAAABAZ8tdEK/AAADAAADAAADAAADAAADAAADAAADAAADAFHTAfujIUAYRtY0f/43cIs2OjxACR2hMR1QBGYX+34JGAAAAwAAAwAAAwKEJ6AAAAMAAAMAAAMA3oFHQQA/QhAAAOuMfgD//////////////////////////////////////////////////////////////////////////////wAAAeAAAIDACjEAC7aBEQALmmEAAAABCfAAAAABAZ8vakK/AAADAAADAAADAAADAAADAAADAAADAAADAFHr8vzfL5avJH2CZUo8ZsiEmmSAAWAcJ6PeAHqsAc+AccAAAAMAAAMAABghXQAAAwAAAwAAAwAGfEdBADBRAP//////////////////////////////////////////////////////////////////////////////////////////////////////////AAAB4AAAgMAKMQANQyERAAu2gQAAAAEJ8AAAAAFBmzRJqEFsmUwIZ//+nhAAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAGVAR0EAMTQQAAD5nH4A////////////////////////////////////////////////////////////AAAB4AAAgMAKMQANCuERAAvSoQAAAAEJ8AAAAAFBn1JFFSwv/wAAAwAAAwAAAwAAAwAAAwAAAwAAAwAADdRFmvrVE0KXDOEjZld1EdgtlZzXJOApGFMhcE0AEdAogjJg3Jz4BoSfWOEBMQAAAwAAAwAAAwBySQgAAAMAAAMAAAMARsFHQQAyRgD///////////////////////////////////////////////////////////////////////////////////////////8AAAHgAACAgAUhAAvuwQAAAAEJ8AAAAAEBn3F0Qr8AAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAUdMB+6MhQBhG1jR//jdwizY6PEAJHaExHVAEZhf7fgkYAAADAAADAAADAoQnoAAAAwAAAwAAAwDegEdBADNCEAABB6x+AP//////////////////////////////////////////////////////////////////////////////AAAB4AAAgMAKMQANJwERAA0K4QAAAAEJ8AAAAAEBn3NqQr8AAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAUevy/N8vlq8kfYJlSjxmyISaZIABYBwno94AeqwBz4BxwAAAAwAAAwAAGCFdAAADAAADAAADAAZ8R0EANFIA////////////////////////////////////////////////////////////////////////////////////////////////////////////AAAB4AAAgMAKMQANs6ERAA0nAQAAAAEJ8AAAAAFBm3hJqEFsmUwIV//+OEAAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAYtHQQA1NBAAARW8fgD///////////////////////////////////////////////////////////8AAAHgAACAwAoxAA17YREADUMhAAAAAQnwAAAAAUGflkUVLC//AAADAAADAAADAAADAAADAAADAAADAAAN1EWa+tUTQpcM4SNmV3UR2C2VnNck4CkYUyFwTQAR0CiCMmDcnPgGhJ9Y4QExAAADAAADAAADAHJJCAAAAwAAAwAAAwBGwEdBADZGAP///////////////////////////////////////////////////////////////////////////////////////////wAAAeAAAICABSEADV9BAAAAAQnwAAAAAQGftXRCvwAAAwAAAwAAAwAAAwAAAwAAAwAAAwAAAwBR0wH7oyFAGEbWNH/+N3CLNjo8QAkdoTEdUARmF/t+CRgAAAMAAAMAAAMChCegAAADAAADAAADAN6BR0EAN0IQAAEjzH4A//////////////////////////////////////////////////////////////////////////////8AAAHgAACAwAoxAA2XgREADXthAAAAAQnwAAAAAQGft2pCvwAAAwAAAwAAAwAAAwAAAwAAAwAAAwAAAwBR6/L83y+WryR9gmVKPGbIhJpkgAFgHCej3gB6rAHPgHHAAAADAAADAAAYIV0AAAMAAAMAAAMABn0=" - webUI["html/configuration.html"] = "PCFkb2N0eXBlIGh0bWw+DQo8aHRtbD4NCiAgPGhlYWQ+DQogICAgPG1ldGEgY2hhcnNldD0idXRmLTgiPg0KICAgIDxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgsIGluaXRpYWwtc2NhbGU9MS4wIiAvPiANCiAgICA8dGl0bGU+eFRlVmU8L3RpdGxlPg0KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iY3NzL3NjcmVlbi5jc3MiIHR5cGU9InRleHQvY3NzIj4NCiAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9ImNzcy9iYXNlLmNzcyIgdHlwZT0idGV4dC9jc3MiPg0KICAgIDxzY3JpcHQgbGFuZ3VhZ2U9ImphdmFzY3JpcHQiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJqcy9jb25maWd1cmF0aW9uX3RzLmpzIj48L3NjcmlwdD4NCiAgICA8c2NyaXB0IGxhbmd1YWdlPSJqYXZhc2NyaXB0IiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ianMvbmV0d29ya190cy5qcyI+PC9zY3JpcHQ+DQogICAgPHNjcmlwdCBsYW5ndWFnZT0iamF2YXNjcmlwdCIgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9ImpzL21lbnVfdHMuanMiPjwvc2NyaXB0Pg0KICAgIDxzY3JpcHQgbGFuZ3VhZ2U9ImphdmFzY3JpcHQiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJqcy9zZXR0aW5nc190cy5qcyI+PC9zY3JpcHQ+DQogICAgPHNjcmlwdCBsYW5ndWFnZT0iamF2YXNjcmlwdCIgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9ImpzL2Jhc2VfdHMuanMiPjwvc2NyaXB0Pg0KICA8L2hlYWQ+DQoNCiAgICA8Ym9keSBvbmxvYWQ9ImphdmFzY3JpcHQ6IHJlYWR5Rm9yQ29uZmlndXJhdGlvbigwKTsiPg0KICAgICAgICAgIA0KICAgICAgPGRpdiBpZD0ibG9hZGluZyIgY2xhc3M9ImJsb2NrIj4NCiAgICAgICAgPGRpdiBjbGFzcz0ibG9hZGVyIj48L2Rpdj4NCiAgICAgIDwvZGl2Pg0KDQogICAgICA8ZGl2IGlkPSJoZWFkZXIiIGNsYXNzPSJpbWdDZW50ZXIiPjwvZGl2Pg0KICAgICAgPGRpdiBpZD0iYm94Ij4NCiAgICAgICAgDQogICAgICAgIDx0YWJsZSBpZD0iY2xpZW50SW5mbyIgY2xhc3M9InZpc2libGUiPg0KICAgICAgICAgIDx0cj4NCiAgICAgICAgICAgIDx0ZCBjbGFzcz0idGRLZXkiPlZlcnNpb246PC90ZD4NCiAgICAgICAgICAgIDx0ZCBpZD0idmVyc2lvbiIgY2xhc3M9InRkVmFsIj4mbmJzcDs8L3RkPg0KICAgICAgICAgICAgPHRkIGNsYXNzPSJ0ZEtleSI+T1M6PC90ZD4NCiAgICAgICAgICAgIDx0ZCBpZD0ib3MiIGNsYXNzPSJ0ZFZhbCI+Jm5ic3A7PC90ZD4NCiAgICAgICAgICA8L3RyPg0KICAgICAgICAgIDx0cj4NCiAgICAgICAgICAgIDx0ZCBjbGFzcz0idGRLZXkiPlVVSUQ6PC90ZD4NCiAgICAgICAgICAgIDx0ZCBpZD0idXVpZCIgY2xhc3M9InRkVmFsIj4mbmJzcDs8L3RkPg0KICAgICAgICAgICAgPHRkIGNsYXNzPSJ0ZEtleSI+QXJjaDo8L3RkPg0KICAgICAgICAgICAgPHRkIGlkPSJhcmNoIiBjbGFzcz0idGRWYWwiPiZuYnNwOzwvdGQ+DQogICAgICAgICAgPC90cj4NCiAgICAgICAgICA8dHI+DQogICAgICAgICAgICA8dGQgY2xhc3M9InRkS2V5Ij5TdHJlYW1zOjwvdGQ+DQogICAgICAgICAgICA8dGQgaWQ9InN0cmVhbXMiIGNsYXNzPSJ0ZFZhbCI+Jm5ic3A7PC90ZD4NCiAgICAgICAgICAgIDx0ZCBjbGFzcz0idGRLZXkiPkRWUjo8L3RkPg0KICAgICAgICAgICAgPHRkIGlkPSJEVlIiIGNsYXNzPSJ0ZFZhbCI+Jm5ic3A7PC90ZD4NCiAgICAgICAgICA8L3RyPg0KICAgICAgICA8L3RhYmxlPg0KICAgICAgICANCiAgICAgICAgPGRpdiBpZD0iaGVhZGxpbmUiPg0KICAgICAgICAgIDxoMSBpZD0iaGVhZC10ZXh0IiBjbGFzcz0iY2VudGVyIj5Db25maWd1cmF0aW9uPC9oMT4gICAgICANCiAgICAgICAgPC9kaXY+DQogICAgICAgIDxwIGlkPSJlcnIiIGNsYXNzPSJlcnJvck1zZyBjZW50ZXIiPjwvcD4gICANCiAgICAgICAgPGRpdiBpZD0iY29udGVudCI+DQogICAgICAgICAgICANCiAgICAgICAgPC9kaXY+DQogICAgICAgIDxkaXYgaWQ9ImJveC1mb290ZXIiPg0KICAgICAgICAgIDxpbnB1dCBpZD0ibmV4dCIgY2xhc3M9IiIgdHlwZT0iYnV0dG9uIiBuYW1lPSJuZXh0IiB2YWx1ZT0iTmV4dCIgb25jbGljaz0iamF2YXNjcmlwdDogc2F2ZVdpemFyZCgpOyI+DQogICAgICAgIDwvZGl2Pg0KICAgICAgPC9kaXY+DQogICAgPC9ib2R5Pg0KPC9odG1sPg==" - webUI["html/img/BC-QR.jpg"] = "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" webUI["html/img/logout.png"] = "iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAAAXNSR0IArs4c6QAAAAlwSFlzAAAsSwAALEsBpT2WqQAABCRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IlhNUCBDb3JlIDUuNC4wIj4KICAgPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIgogICAgICAgICAgICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgICAgICAgICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyI+CiAgICAgICAgIDx0aWZmOlJlc29sdXRpb25Vbml0PjI8L3RpZmY6UmVzb2x1dGlvblVuaXQ+CiAgICAgICAgIDx0aWZmOkNvbXByZXNzaW9uPjU8L3RpZmY6Q29tcHJlc3Npb24+CiAgICAgICAgIDx0aWZmOlhSZXNvbHV0aW9uPjI4ODwvdGlmZjpYUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6T3JpZW50YXRpb24+MTwvdGlmZjpPcmllbnRhdGlvbj4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+Mjg4PC90aWZmOllSZXNvbHV0aW9uPgogICAgICAgICA8ZXhpZjpQaXhlbFhEaW1lbnNpb24+NTA8L2V4aWY6UGl4ZWxYRGltZW5zaW9uPgogICAgICAgICA8ZXhpZjpDb2xvclNwYWNlPjE8L2V4aWY6Q29sb3JTcGFjZT4KICAgICAgICAgPGV4aWY6UGl4ZWxZRGltZW5zaW9uPjUwPC9leGlmOlBpeGVsWURpbWVuc2lvbj4KICAgICAgICAgPGRjOnN1YmplY3Q+CiAgICAgICAgICAgIDxyZGY6QmFnLz4KICAgICAgICAgPC9kYzpzdWJqZWN0PgogICAgICAgICA8eG1wOk1vZGlmeURhdGU+MjAxOC0xMC0xM1QxMToxMDoxODwveG1wOk1vZGlmeURhdGU+CiAgICAgICAgIDx4bXA6Q3JlYXRvclRvb2w+UGl4ZWxtYXRvciAzLjM8L3htcDpDcmVhdG9yVG9vbD4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgIDwvcmRmOlJERj4KPC94OnhtcG1ldGE+Cg27QeEAAANQSURBVGgF7Zk9aBRBGIZzSRSN8YdoCpEkghCCqK1o4g9IsBCCNmIniCAiWAhqI8G02qiIoqCCWggSEcFKEFPYpVAU8QdFUyiKRpRokBjP55OdZDLZvZnZ7N3Ngh887M7sN/O9797t7c5eTc3/8D8DxWKxGS5Ai//oAEYgvB4OwleQaAtAlp8ERG+Bp6Jei/wYQfRy6NfE67vhG0FtA/TBqK7c2A/bCGJ3wpAhOq4ZphGUroEHcYoT+sIygsgmOAu/EwQndYdhBHV1sB8+Jym19Lf6/faVIRuBG+GRRajtcPWMoKwFbtgUOh6vvBGEzYFj8MNRpEtaZY2gaAe8cVHmmXOc/K3QXIZv/+SUFFgJ96AS8ZwiZ6Ab6iZVzGCPiRbCKRiDasQHip6EdD/PDKyFvfAJQgg5kVfB/VoieT0MQojxE1G9UG/7otWS0A7pPkrb7DM/Ppcp+mAAM/bFGEmL4RL8gVDjI8JWOZ0bEjvhSahO0CXXsLMZWZYegREIMV4jaoHTJyNJJLfC7RCdoOm6sxGVyKAeeBegoU6l0XmLiXlwAqp1o4w7j3d1AwW9YdtnNrnQzkOXLddyfAPHv8Ey6ABpd8N88In2QqHwymfARC5mCrAH0i6qGDr9jk3fbNgFz8A1DkwIS7tDpSVwGdLcexIfPZhPHpf2wS+wRX9a/dPGUakLzBdwNgGJRlQBJtgMw5aJ3qr8TLYUmwVHwXXxZTUiwphvHYxDUnzPxIA5CdXa4E5SVa3fyUhkRtYqpSKbNYxpJiq+ncpDJar7GGlknvcl5mqM05BZH4Xl3iOLpLh7j7OR6MScSzAykplg20QIWA0PDSG+RuTdQVy8sNXP9DgK5N4jK9AvkRpfI4sYF/c2836mQl0nQ4zce66AfZFkTMqYl2DGaSMt/CYOHpsuaPco5bLUzUuMGkLHaQ+ovjwZUZrVdpAHRnnw/Bd5MrJCiY62t4x2+E2uBfkfRg95TdSkK8/LJ7JWF83+Nb5Ww0Zf+E3OviwXVMgT8dLwVRsKEd0A+uP8biMlH01MHAYVF/Oh2lCJenkDqpbUN9nPyzU91QnCRbyEPEXn1sQhxMv7tG1T7cW3rK/r44eVtxfxm6gwBh38zJqPJuUtXu3Z/wLwuBaBLgMkKwAAAABJRU5ErkJggg==" - webUI["html/img/x_ transparent.png"] = "iVBORw0KGgoAAAANSUhEUgAAAQAAAAEACAYAAABccqhmAAAAAXNSR0IArs4c6QAAAAlwSFlzAAAWJQAAFiUBSVIk8AAAA6ppVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IlhNUCBDb3JlIDUuNC4wIj4KICAgPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIgogICAgICAgICAgICB4bWxuczp0aWZmPSJodHRwOi8vbnMuYWRvYmUuY29tL3RpZmYvMS4wLyIKICAgICAgICAgICAgeG1sbnM6ZXhpZj0iaHR0cDovL25zLmFkb2JlLmNvbS9leGlmLzEuMC8iPgogICAgICAgICA8eG1wOk1vZGlmeURhdGU+MjAxOC0xMS0xNVQxNzoxMTo3NjwveG1wOk1vZGlmeURhdGU+CiAgICAgICAgIDx4bXA6Q3JlYXRvclRvb2w+UGl4ZWxtYXRvciAzLjM8L3htcDpDcmVhdG9yVG9vbD4KICAgICAgICAgPHRpZmY6T3JpZW50YXRpb24+MTwvdGlmZjpPcmllbnRhdGlvbj4KICAgICAgICAgPHRpZmY6Q29tcHJlc3Npb24+NTwvdGlmZjpDb21wcmVzc2lvbj4KICAgICAgICAgPHRpZmY6UmVzb2x1dGlvblVuaXQ+MjwvdGlmZjpSZXNvbHV0aW9uVW5pdD4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+MTQ0PC90aWZmOllSZXNvbHV0aW9uPgogICAgICAgICA8dGlmZjpYUmVzb2x1dGlvbj4xNDQ8L3RpZmY6WFJlc29sdXRpb24+CiAgICAgICAgIDxleGlmOlBpeGVsWERpbWVuc2lvbj4yNTY8L2V4aWY6UGl4ZWxYRGltZW5zaW9uPgogICAgICAgICA8ZXhpZjpDb2xvclNwYWNlPjE8L2V4aWY6Q29sb3JTcGFjZT4KICAgICAgICAgPGV4aWY6UGl4ZWxZRGltZW5zaW9uPjI1NjwvZXhpZjpQaXhlbFlEaW1lbnNpb24+CiAgICAgIDwvcmRmOkRlc2NyaXB0aW9uPgogICA8L3JkZjpSREY+CjwveDp4bXBtZXRhPgoeXQb1AAAaJElEQVR4Ae2dCZhcVZXHz+1KSFiGkISkqyIoOgI68EkgOBNkEcQRlIFRZDGABAQEhInGbxw+RUZRNhWRLawDYR0GHAaHUVkGvwGURUcgwIiAOGxjV3UHAslHQrbuM/9TlQ6d7qruWt527/u/7+uuqvvucu7vvnveuffde54IDxIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARLwiIDzQtayHi0q23shaydCOnlISu7nnWThRdrFOkPWyCleyNqJkF1yjhTd8k6yiDvtuLgLiCR/lVnIZ14keWU7k2Xyuu4oU92r2RazQ+nWypXI4W86zCXbyZ28KBvJ97MtpEhX1gWsyleS08TJU17I2omQKpvLarmqkywyn7ZHPw9rLvTOvwbX6xEyxS3Nenv4oQCcWwmQc/D3dtaBdiyfyv5S1mM7zieLGSzWEsS6KIuiRSzTGTD9H404z1iy80MBWNVL7hn8nx8LhaxlqnKBvKbvyppYHctTM/0nd5xPljNwcrcUs2/6DyL0RwGYxDOcjR3vGBQ+4M8tMElmdQ3n6NGjYPofGE6F6tTESRmm/1xxTuuczWSQH08BhqJbqlNkuTyJoK2GBgf53S6mkrvB+7qZ6b9Gfod6hHv3dzKAGbX9pNvd51N7+WUBGNlJbgm07FH4G/AJdFuyqlwotXFzW8kzk2itXAFZwu38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" - webUI["html/img/x_black.png"] = "iVBORw0KGgoAAAANSUhEUgAAAQAAAAEACAIAAADTED8xAAAAAXNSR0IArs4c6QAAAAlwSFlzAAAWJQAAFiUBSVIk8AAAA6ppVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IlhNUCBDb3JlIDUuNC4wIj4KICAgPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIgogICAgICAgICAgICB4bWxuczp0aWZmPSJodHRwOi8vbnMuYWRvYmUuY29tL3RpZmYvMS4wLyIKICAgICAgICAgICAgeG1sbnM6ZXhpZj0iaHR0cDovL25zLmFkb2JlLmNvbS9leGlmLzEuMC8iPgogICAgICAgICA8eG1wOk1vZGlmeURhdGU+MjAxOC0xMS0xNVQxNzoxMTozNzwveG1wOk1vZGlmeURhdGU+CiAgICAgICAgIDx4bXA6Q3JlYXRvclRvb2w+UGl4ZWxtYXRvciAzLjM8L3htcDpDcmVhdG9yVG9vbD4KICAgICAgICAgPHRpZmY6T3JpZW50YXRpb24+MTwvdGlmZjpPcmllbnRhdGlvbj4KICAgICAgICAgPHRpZmY6Q29tcHJlc3Npb24+NTwvdGlmZjpDb21wcmVzc2lvbj4KICAgICAgICAgPHRpZmY6UmVzb2x1dGlvblVuaXQ+MjwvdGlmZjpSZXNvbHV0aW9uVW5pdD4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+MTQ0PC90aWZmOllSZXNvbHV0aW9uPgogICAgICAgICA8dGlmZjpYUmVzb2x1dGlvbj4xNDQ8L3RpZmY6WFJlc29sdXRpb24+CiAgICAgICAgIDxleGlmOlBpeGVsWERpbWVuc2lvbj4yNTY8L2V4aWY6UGl4ZWxYRGltZW5zaW9uPgogICAgICAgICA8ZXhpZjpDb2xvclNwYWNlPjE8L2V4aWY6Q29sb3JTcGFj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a1jSekqmtA1rrGsx7JYkDuvrVahwRdgVXD1xcwri6mmYRULLe4CuPc2wfrGo4U+7Y/3S9ZHD+GcflbnfiCJbr77whoaS6ucCXVkVkuLKgORQwNJFygRDJnqwb9i3b0HxkqjT0L4erGy5Rh1IRnhXrpaZq6GZCyRLf6cvhoTY6V9koX8bGdEUlyWVm6W5q1GuostihNm97L/dpm5k+QHCbDna0zRzgSS/lRHWL7iHPOa+9YsYkpttoCwSMcQRkrWioz5Qsc7aFJ1coHY3QyJ9jSjfJEOCfTUpWzehVBnUbqCJOCHEkB1xsmXDwq9DnObUz9q4QOUqYPaPKFzUKcVj6Eeu461q67Vhlqy6+Xo11G52JhRZNNW1FRbN00FWPVwguSa+8YEZ1i+D9vQjelm/iHTwAB69Vwd7CkuGLOcWtxfR4o+dHhNg4DNmhDvJ8M6ehknvhTXMDp8kQQgT33W4z+i7k/2gho+Jvrp1NTVwgW5opV76yl8F/cufe9CyJiRllZ6lYCHMXWPAXmNp9CRb8Pi30r658sHtCSCPsZNXQDYdMaLIek/No13V/rBfGMFSCXnsKNo1dDelnKt/dyUH8uvjjLH+zyfpbv1iUl/NVBt4mVJy58HoDyFZLt0rrj4G7TfIjARvMjy7d6JnR/UXS/+yeD5kLYkETxpRZL2jZJVzb7cl9yZA/cYqh4z+20AEzOj+BKxbZYRFqXQssvLs5gQzpBUp616rNsX55WdXBHbPBRrwlBm5v2VYJo1FsjmOtQg8ezo+fd8Ve4qy04HPRlmR1UiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABGwg8D8UnyVeZFwGAQAAAABJRU5ErkJggg==" - webUI["html/index.html"] = "PCFkb2N0eXBlIGh0bWw+DQo8aHRtbD4NCiAgPGhlYWQ+DQogICAgPG1ldGEgY2hhcnNldD0idXRmLTgiPg0KICAgIDwhLS0tDQogICAgPG1ldGEgbmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9IndpZHRoPWRldmljZS13aWR0aCwgaW5pdGlhbC1zY2FsZT0xLjAiIC8+IA0KICAgIC0tPg0KICAgIDx0aXRsZT54VGVWZTwvdGl0bGU+DQogICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJjc3Mvc2NyZWVuLmNzcyIgdHlwZT0idGV4dC9jc3MiPg0KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iY3NzL2Jhc2UuY3NzIiB0eXBlPSJ0ZXh0L2NzcyI+DQoNCiAgICA8c2NyaXB0IGxhbmd1YWdlPSJqYXZhc2NyaXB0IiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ianMvbmV0d29ya190cy5qcyI+PC9zY3JpcHQ+DQogICAgPHNjcmlwdCBsYW5ndWFnZT0iamF2YXNjcmlwdCIgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9ImpzL21lbnVfdHMuanMiPjwvc2NyaXB0Pg0KICAgIDxzY3JpcHQgbGFuZ3VhZ2U9ImphdmFzY3JpcHQiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJqcy9zZXR0aW5nc190cy5qcyI+PC9zY3JpcHQ+DQogICAgPHNjcmlwdCBsYW5ndWFnZT0iamF2YXNjcmlwdCIgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9ImpzL2xvZ3NfdHMuanMiPjwvc2NyaXB0Pg0KICAgIDxzY3JpcHQgbGFuZ3VhZ2U9ImphdmFzY3JpcHQiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJqcy9iYXNlX3RzLmpzIj48L3NjcmlwdD4NCg0KICA8L2hlYWQ+DQoNCiAgICA8Ym9keSBvbmxvYWQ9ImphdmFzY3JpcHQ6IFBhZ2VSZWFkeSgpOyI+DQoNCiAgICAgIDxkaXYgaWQ9ImxvYWRpbmciIGNsYXNzPSJub25lIj4NCiAgICAgICAgPGRpdiBjbGFzcz0ibG9hZGVyIj48L2Rpdj4NCiAgICAgIDwvZGl2Pg0KDQogICAgICA8ZGl2IGlkPSJwb3B1cCIgY2xhc3M9Im5vbmUiPg0KICAgICAgICA8ZGl2IGlkPSJwb3B1cC1jdXN0b20iPjwvZGl2Pg0KICAgICAgPC9kaXY+DQoNCiAgICAgIDxkaXYgaWQ9ImxheW91dCI+DQoNCiAgICAgICAgPCEtLQ0KICAgICAgICA8ZGl2IGlkPSJub3RpZmljYXRpb24iPg0KICAgICAgICAgIDxkaXYgY2xhc3M9ImVsZW1lbnQiPg0KICAgICAgICAgICAgPGg1PlhFUEc8L2g1Pg0KICAgICAgICAgICAgPHByZT4xMS4wNS4yMDE5IC0gMjA6MjE8L3ByZT4NCiAgICAgICAgICAgIDxocj4NCiAgICAgICAgICAgIDxwPkhhbGxvIGRhcyBpc3QgZWluIFRlc3QuIFVuZCBub2NoIG1laHIgVGV4dC48L3A+DQogICAgICAgICAgPC9kaXY+DQogICAgICAgIDwvZGl2Pg0KICAgICAgLS0+DQoNCiAgICAgICAgPGRpdiBpZD0ibWVudS13cmFwcGVyIiBjbGFzcz0ibGF5b3V0LWxlZnQiPg0KICAgICAgICAgIDxkaXYgaWQ9ICJicmFuY2giPjwvZGl2Pg0KICAgICAgICAgIDxkaXYgaWQ9ImxvZ28iPjwvZGl2Pg0KICAgICAgICAgIDxuYXYgaWQ9Im1haW4tbWVudSI+PC9uYXY+DQogICAgICAgIDwvZGl2Pg0KDQogICAgICAgIDxkaXYgY2xhc3M9ImxheW91dC1yaWdodCI+DQoNCiAgICAgICAgICA8dGFibGUgaWQ9ImNsaWVudEluZm8iIGNsYXNzPSIiPg0KDQogICAgICAgICAgICA8dHI+DQogICAgICAgICAgICAgIDx0ZCBjbGFzcz0idGRLZXkiPnhUZVZlOjwvdGQ+DQogICAgICAgICAgICAgIDx0ZCBpZD0idmVyc2lvbiIgY2xhc3M9InRkVmFsIj4mbmJzcDs8L3RkPg0KICAgICAgICAgICAgICA8dGQgY2xhc3M9InRkS2V5Ij5PUzo8L3RkPg0KICAgICAgICAgICAgICA8dGQgaWQ9Im9zIiBjbGFzcz0idGRWYWwiPiZuYnNwOzwvdGQ+DQogICAgICAgICAgICAgIDx0ZCBjbGFzcz0idGRLZXkgcGhvbmUiPkRWUiBJUDo8L3RkPg0KICAgICAgICAgICAgICA8dGQgaWQ9IkRWUiIgY2xhc3M9InRkVmFsIHBob25lIj4mbmJzcDs8L3RkPg0KICAgICAgICAgICAgPC90cj4NCg0KICAgICAgICAgICAgPHRyPg0KICAgICAgICAgICAgICA8dGQgY2xhc3M9InRkS2V5Ij5VVUlEOjwvdGQ+DQogICAgICAgICAgICAgIDx0ZCBpZD0idXVpZCIgY2xhc3M9InRkVmFsIj4mbmJzcDs8L3RkPg0KICAgICAgICAgICAgICA8dGQgY2xhc3M9InRkS2V5Ij5BcmNoOjwvdGQ+DQogICAgICAgICAgICAgIDx0ZCBpZD0iYXJjaCIgY2xhc3M9InRkVmFsIj4mbmJzcDs8L3RkPg0KICAgICAgICAgICAgICA8dGQgY2xhc3M9InRkS2V5IHBob25lIj5NM1UgVVJMOjwvdGQ+DQogICAgICAgICAgICAgIDx0ZCBpZD0ibTN1LXVybCIgY2xhc3M9InRkVmFsIHBob25lIj4mbmJzcDs8L3RkPg0KICAgICAgICAgICAgPC90cj4NCg0KICAgICAgICAgICAgPHRyPg0KICAgICAgICAgICAgICA8dGQgY2xhc3M9InRkS2V5Ij5BdmFpbGFibGUgU3RyZWFtczo8L3RkPg0KICAgICAgICAgICAgICA8dGQgaWQ9InN0cmVhbXMiIGNsYXNzPSJ0ZFZhbCI+Jm5ic3A7PC90ZD4NCiAgICAgICAgICAgICAgPHRkIGNsYXNzPSJ0ZEtleSI+RVBHIFNvdXJjZTo8L3RkPg0KICAgICAgICAgICAgICA8dGQgaWQ9ImVwZ1NvdXJjZSIgY2xhc3M9InRkVmFsIj4mbmJzcDs8L3RkPg0KICAgICAgICAgICAgICA8dGQgY2xhc3M9InRkS2V5IHBob25lIj5YRVBHIFVSTDo8L3RkPg0KICAgICAgICAgICAgICA8dGQgaWQ9InhlcGctdXJsIiBjbGFzcz0idGRWYWwgcGhvbmUiPiZuYnNwOzwvdGQ+DQogICAgICAgICAgICA8L3RyPg0KDQogICAgICAgICAgICA8dHI+DQogICAgICAgICAgICAgIDx0ZCBjbGFzcz0idGRLZXkiPlhFUEcgQ2hhbm5lbHM6PC90ZD4NCiAgICAgICAgICAgICAgPHRkIGlkPSJ4ZXBnIiBjbGFzcz0idGRWYWwiPiZuYnNwOzwvdGQ+DQogICAgICAgICAgICAgIDx0ZCBjbGFzcz0idGRLZXkiPkVycm9yczo8L3RkPg0KICAgICAgICAgICAgICA8dGQgaWQ9ImVycm9ycyIgY2xhc3M9InRkVmFsIj4mbmJzcDs8L3RkPg0KICAgICAgICAgICAgICA8dGQgY2xhc3M9InRkS2V5Ij5XYXJuaW5nczo8L3RkPg0KICAgICAgICAgICAgICA8dGQgaWQ9Indhcm5pbmdzIiBjbGFzcz0idGRWYWwiPiZuYnNwOzwvdGQ+DQogICAgICAgICAgICA8L3RyPg0KDQogICAgICAgICAgPC90YWJsZT4NCiAgICAgICAgIA0KICAgICAgICAgIDxkaXYgaWQ9Im15U3RyZWFtc0JveCIgY2xhc3M9Im5vdFZpc2libGUiPg0KDQogICAgICAgICAgICA8ZGl2IGlkPSJhbGxTdHJlYW1zIj4NCiAgICAgICAgICAgICAgPHRhYmxlIGlkPSJhY3RpdmVTdHJlYW1zIj48L3RhYmxlPg0KICAgICAgICAgICAgICA8dGFibGUgaWQ9ImluYWN0aXZlU3RyZWFtcyI+PC90YWJsZT4NCiAgICAgICAgICAgIDwvZGl2Pg0KDQogICAgICAgICAgPC9kaXY+DQogICAgICAgICAgDQogICAgICAgICAgPGRpdiBpZD0iY29udGVudCIgY2xhc3M9IiI+PC9kaXY+DQogICAgICAgICAgICANCiAgICAgICAgPC9kaXY+DQoNCiAgICAgIDwvZGl2Pg0KICAgICAgDQogICAgPC9ib2R5Pg0KICAgIA0KPC9odG1sPg==" - webUI["html/js/logs_ts.js"] = "Y2xhc3MgTG9nIHsNCiAgICBjcmVhdGVMb2coZW50cnkpIHsNCiAgICAgICAgdmFyIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJQUkUiKTsNCiAgICAgICAgaWYgKGVudHJ5LmluZGV4T2YoIldBUk5JTkciKSAhPSAtMSkgew0KICAgICAgICAgICAgZWxlbWVudC5jbGFzc05hbWUgPSAid2FybmluZ01zZyI7DQogICAgICAgIH0NCiAgICAgICAgaWYgKGVudHJ5LmluZGV4T2YoIkVSUk9SIikgIT0gLTEpIHsNCiAgICAgICAgICAgIGVsZW1lbnQuY2xhc3NOYW1lID0gImVycm9yTXNnIjsNCiAgICAgICAgfQ0KICAgICAgICBpZiAoZW50cnkuaW5kZXhPZigiREVCVUciKSAhPSAtMSkgew0KICAgICAgICAgICAgZWxlbWVudC5jbGFzc05hbWUgPSAiZGVidWdNc2ciOw0KICAgICAgICB9DQogICAgICAgIGVsZW1lbnQuaW5uZXJIVE1MID0gZW50cnk7DQogICAgICAgIHJldHVybiBlbGVtZW50Ow0KICAgIH0NCn0NCmZ1bmN0aW9uIHNob3dMb2dzKGJvdHRvbSkgew0KICAgIHZhciBsb2cgPSBuZXcgTG9nKCk7DQogICAgdmFyIGxvZ3MgPSBTRVJWRVJbImxvZyJdWyJsb2ciXTsNCiAgICB2YXIgZGl2ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnRlbnRfbG9nIik7DQogICAgZGl2LmlubmVySFRNTCA9ICIiOw0KICAgIHZhciBrZXlzID0gZ2V0T2JqS2V5cyhsb2dzKTsNCiAgICBrZXlzLmZvckVhY2gobG9nSUQgPT4gew0KICAgICAgICB2YXIgZW50cnkgPSBsb2cuY3JlYXRlTG9nKGxvZ3NbbG9nSURdKTsNCiAgICAgICAgZGl2LmFwcGVuZChlbnRyeSk7DQogICAgfSk7DQogICAgc2V0VGltZW91dChmdW5jdGlvbiAoKSB7DQogICAgICAgIGlmIChib3R0b20gPT0gdHJ1ZSkgew0KICAgICAgICAgICAgdmFyIHdyYXBwZXIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYm94LXdyYXBwZXIiKTsNCiAgICAgICAgICAgIHdyYXBwZXIuc2Nyb2xsVG9wID0gd3JhcHBlci5zY3JvbGxIZWlnaHQ7DQogICAgICAgIH0NCiAgICB9LCAxMCk7DQp9DQpmdW5jdGlvbiByZXNldExvZ3MoKSB7DQogICAgdmFyIGNtZCA9ICJyZXNldExvZ3MiOw0KICAgIHZhciBkYXRhID0gbmV3IE9iamVjdCgpOw0KICAgIHZhciBzZXJ2ZXIgPSBuZXcgU2VydmVyKGNtZCk7DQogICAgc2VydmVyLnJlcXVlc3QoZGF0YSk7DQp9DQo=" - webUI["html/img/filter.png"] = "iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAAAXNSR0IArs4c6QAAAAlwSFlzAAAsSwAALEsBpT2WqQAABCRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IlhNUCBDb3JlIDUuNC4wIj4KICAgPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIgogICAgICAgICAgICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgICAgICAgICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyI+CiAgICAgICAgIDx0aWZmOlJlc29sdXRpb25Vbml0PjI8L3RpZmY6UmVzb2x1dGlvblVuaXQ+CiAgICAgICAgIDx0aWZmOkNvbXByZXNzaW9uPjU8L3RpZmY6Q29tcHJlc3Npb24+CiAgICAgICAgIDx0aWZmOlhSZXNvbHV0aW9uPjI4ODwvdGlmZjpYUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6T3JpZW50YXRpb24+MTwvdGlmZjpPcmllbnRhdGlvbj4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+Mjg4PC90aWZmOllSZXNvbHV0aW9uPgogICAgICAgICA8ZXhpZjpQaXhlbFhEaW1lbnNpb24+NTA8L2V4aWY6UGl4ZWxYRGltZW5zaW9uPgogICAgICAgICA8ZXhpZjpDb2xvclNwYWNlPjE8L2V4aWY6Q29sb3JTcGFjZT4KICAgICAgICAgPGV4aWY6UGl4ZWxZRGltZW5zaW9uPjUwPC9leGlmOlBpeGVsWURpbWVuc2lvbj4KICAgICAgICAgPGRjOnN1YmplY3Q+CiAgICAgICAgICAgIDxyZGY6QmFnLz4KICAgICAgICAgPC9kYzpzdWJqZWN0PgogICAgICAgICA8eG1wOk1vZGlmeURhdGU+MjAxOC0wNy0yOFQxOTowNzo2OTwveG1wOk1vZGlmeURhdGU+CiAgICAgICAgIDx4bXA6Q3JlYXRvclRvb2w+UGl4ZWxtYXRvciAzLjM8L3htcDpDcmVhdG9yVG9vbD4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgIDwvcmRmOlJERj4KPC94OnhtcG1ldGE+Cs038OQAAAOISURBVGgF5ZpLSBVRGMfvvfmqCKKiKCqKtE3SQ8haJJm1ctPCZYHrFhXtohcUBLVsU1BRBJKLXpsSKs1aCL1oUUhvMgIloodZKmLZ72+OzNVx7jzOXGfqg/89Z875zv/7f35n7px7vanUP2JptzyGhoYKmK8GW0EZmA/mgW7wHrwDN0BTOp0epPVtxBBnLdgIVoE5YBboBR2gDTTA/5DWn0FeDPaBz8CLdeF0EBR5jYRvKbgABoAXa8Opwit/CudK8NoLs4PPM8ZyBsNnB/jpsD7X0C8cjgDXnaQkqkEPCGMSuGWivxxzx8OQj6xtpHWuPhPloHfEMWzTD0HN2GQY2xuW2Lb+/Fh+VaIQPLE5meh+gmSxFYz+BjBogtjGscfiH26Z2GmbNNltVQAIpwDdP6ZNO2iRYqTpZGhfgWUaiMC2w1kCzkbALcqLvDVvUyK6MW9HFES0b8BvsFwXEZi4F+iBtykCcjtlqf0igr52VJ1eqiIgzzdlrRIZfWfJd3SD8ZbqHvkB4XSDpJNB9V0VcX/cT4Ys/zEzSuSj/3WxW9GpRD7ETpZ/QcOJ6LyfdHugitxNehbob9G7lo4PXWBmQhPqQ/fsDOeUfjqNCU1Csi+TQ5+2luzc3yaRr6elevQZwhZr4bomYam0U41yabYqov5hvSTMjlp6RyuiAarSTLPZmox5246+lVREx/isiuh6NxhUJwF2yEpCWu1bK8WEsjyRgCSa0XrVrjNra2mC7TWD5ilYAuJoA4jSlnppF5dVEU3g0ENTD4b3nsZiZsfGJuGqj8qY+CINGqP2GLZCJ+HjtpblxAJ9k3cPrLfGJrnVUaSCarxw0jFua1lOLNBerANx+byya6IkLM2uLZWpAl6/Mcc1EjvjKtLrJNLqI5HnjfQ+bsVeteb0g2y/t7hGvd7CNjenOL8OkJ40KtOdTF+Cl/nV6Mkf4gxocI9vZPYLLKs9iQrqRIACcM2IXGeSboYrg+rztY5ARaDJWUeo0W+sXudLTFhnApaAW6FkZy/+yuXasLoCrSfwVHAnW0+gK93YawKJMLUIAdNAKwhqnSxcYUpPKB6EBE2mg7VR///EX24jybTQerXnOC70FyVP3gjTPXPTQyaP8NFPNeJrCNTPP667JKOq6VNo/A2hes5ccUjmEmPmDoD5+FMgWCcA+3FG57QJP//kQ1PgGBIOToEDgUn+t4V/AJeGknwARIKLAAAAAElFTkSuQmCC" + webUI["html/img/logo_w_600x200.png"] = "iVBORw0KGgoAAAANSUhEUgAAAlgAAADICAYAAAA0n5+2AAAAAXNSR0IArs4c6QAAAAlwSFlzAAAuIwAALiMBeKU/dgAABCZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IlhNUCBDb3JlIDUuNC4wIj4KICAgPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIgogICAgICAgICAgICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgICAgICAgICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyI+CiAgICAgICAgIDx0aWZmOlJlc29sdXRpb25Vbml0PjI8L3RpZmY6UmVzb2x1dGlvblVuaXQ+CiAgICAgICAgIDx0aWZmOkNvbXByZXNzaW9uPjU8L3RpZmY6Q29tcHJlc3Npb24+CiAgICAgICAgIDx0aWZmOlhSZXNvbHV0aW9uPjMwMDwvdGlmZjpYUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6T3JpZW50YXRpb24+MTwvdGlmZjpPcmllbnRhdGlvbj4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+MzAwPC90aWZmOllSZXNvbHV0aW9uPgogICAgICAgICA8ZXhpZjpQaXhlbFhEaW1lbnNpb24+NjAwPC9leGlmOlBpeGVsWERpbWVuc2lvbj4KICAgICAgICAgPGV4aWY6Q29sb3JTcGFjZT4xPC9leGlmOkNvbG9yU3BhY2U+CiAgICAgICAgIDxleGlmOlBpeGVsWURpbWVuc2lvbj4yMDA8L2V4aWY6UGl4ZWxZRGltZW5zaW9uPgogICAg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" + webUI["html/js/configuration_ts.js"] = "Y2xhc3MgV2l6YXJkQ2F0ZWdvcnkgew0KICAgIGNvbnN0cnVjdG9yKCkgew0KICAgICAgICB0aGlzLkRvY3VtZW50SUQgPSAiY29udGVudCI7DQogICAgfQ0KICAgIGNyZWF0ZUNhdGVnb3J5SGVhZGxpbmUodmFsdWUpIHsNCiAgICAgICAgdmFyIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJINCIpOw0KICAgICAgICBlbGVtZW50LmlubmVySFRNTCA9IHZhbHVlOw0KICAgICAgICByZXR1cm4gZWxlbWVudDsNCiAgICB9DQp9DQpjbGFzcyBXaXphcmRJdGVtIGV4dGVuZHMgV2l6YXJkQ2F0ZWdvcnkgew0KICAgIGNvbnN0cnVjdG9yKGtleSwgaGVhZGxpbmUpIHsNCiAgICAgICAgc3VwZXIoKTsNCiAgICAgICAgdGhpcy5oZWFkbGluZSA9IGhlYWRsaW5lOw0KICAgICAgICB0aGlzLmtleSA9IGtleTsNCiAgICB9DQogICAgY3JlYXRlV2l6YXJkKCkgew0KICAgICAgICB2YXIgaGVhZGxpbmUgPSB0aGlzLmNyZWF0ZUNhdGVnb3J5SGVhZGxpbmUodGhpcy5oZWFkbGluZSk7DQogICAgICAgIHZhciBrZXkgPSB0aGlzLmtleTsNCiAgICAgICAgdmFyIGNvbnRlbnQgPSBuZXcgUG9wdXBDb250ZW50KCk7DQogICAgICAgIHZhciBkZXNjcmlwdGlvbjsNCiAgICAgICAgdmFyIGRvYyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHRoaXMuRG9jdW1lbnRJRCk7DQogICAgICAgIGRvYy5pbm5lckhUTUwgPSAiIjsNCiAgICAgICAgZG9jLmFwcGVuZENoaWxkKGhlYWRsaW5lKTsNCiAgICAgICAgc3dpdGNoIChrZXkpIHsNCiAgICAgICAgICAgIGNhc2UgInR1bmVyIjoNCiAgICAgICAgICAgICAgICB2YXIgdGV4dCA9IG5ldyBBcnJheSgpOw0KICAgICAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBuZXcgQXJyYXkoKTsNCiAgICAgICAgICAgICAgICBmb3IgKHZhciBpID0gMTsgaSA8PSAxMDA7IGkrKykgew0KICAgICAgICAgICAgICAgICAgICB0ZXh0LnB1c2goaSk7DQogICAgICAgICAgICAgICAgICAgIHZhbHVlcy5wdXNoKGkpOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCAiMSIsIGtleSk7DQogICAgICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgiY2xhc3MiLCAid2l6YXJkIik7DQogICAgICAgICAgICAgICAgc2VsZWN0LmlkID0ga2V5Ow0KICAgICAgICAgICAgICAgIGRvYy5hcHBlbmRDaGlsZChzZWxlY3QpOw0KICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uID0gInt7LndpemFyZC50dW5lci5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImVwZ1NvdXJjZSI6DQogICAgICAgICAgICAgICAgdmFyIHRleHQgPSBbIlBNUyIsICJYRVBHIl07DQogICAgICAgICAgICAgICAgdmFyIHZhbHVlcyA9IFsiUE1TIiwgIlhFUEciXTsNCiAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCAiWEVQRyIsIGtleSk7DQogICAgICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgiY2xhc3MiLCAid2l6YXJkIik7DQogICAgICAgICAgICAgICAgc2VsZWN0LmlkID0ga2V5Ow0KICAgICAgICAgICAgICAgIGRvYy5hcHBlbmRDaGlsZChzZWxlY3QpOw0KICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uID0gInt7LndpemFyZC5lcGdTb3VyY2UuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJtM3UiOg0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBrZXksICIiKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LndpemFyZC5tM3UucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgiY2xhc3MiLCAid2l6YXJkIik7DQogICAgICAgICAgICAgICAgaW5wdXQuaWQgPSBrZXk7DQogICAgICAgICAgICAgICAgZG9jLmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbiA9ICJ7ey53aXphcmQubTN1LmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAieG1sdHYiOg0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBrZXksICIiKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LndpemFyZC54bWx0di5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJjbGFzcyIsICJ3aXphcmQiKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5pZCA9IGtleTsNCiAgICAgICAgICAgICAgICBkb2MuYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uID0gInt7LndpemFyZC54bWx0di5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICAgICAgY29uc29sZS5sb2coa2V5KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgfQ0KICAgICAgICB2YXIgcHJlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiUFJFIik7DQogICAgICAgIHByZS5pbm5lckhUTUwgPSBkZXNjcmlwdGlvbjsNCiAgICAgICAgZG9jLmFwcGVuZENoaWxkKHByZSk7DQogICAgICAgIGNvbnNvbGUubG9nKGhlYWRsaW5lLCBrZXkpOw0KICAgIH0NCn0NCmZ1bmN0aW9uIHJlYWR5Rm9yQ29uZmlndXJhdGlvbih3aXphcmQpIHsNCiAgICB2YXIgc2VydmVyID0gbmV3IFNlcnZlcigiZ2V0U2VydmVyQ29uZmlnIik7DQogICAgc2VydmVyLnJlcXVlc3QobmV3IE9iamVjdCgpKTsNCiAgICBzaG93RWxlbWVudCgibG9hZGluZyIsIGZhbHNlKTsNCiAgICBjb25maWd1cmF0aW9uV2l6YXJkW3dpemFyZF0uY3JlYXRlV2l6YXJkKCk7DQp9DQpmdW5jdGlvbiBzYXZlV2l6YXJkKCkgew0KICAgIHZhciBjbWQgPSAic2F2ZVdpemFyZCI7DQogICAgdmFyIGRpdiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb250ZW50Iik7DQogICAgdmFyIGNvbmZpZyA9IGRpdi5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCJ3aXphcmQiKTsNCiAgICB2YXIgd2l6YXJkID0gbmV3IE9iamVjdCgpOw0KICAgIGZvciAodmFyIGkgPSAwOyBpIDwgY29uZmlnLmxlbmd0aDsgaSsrKSB7DQogICAgICAgIHZhciBuYW1lOw0KICAgICAgICB2YXIgdmFsdWU7DQogICAgICAgIHN3aXRjaCAoY29uZmlnW2ldLnRhZ05hbWUpIHsNCiAgICAgICAgICAgIGNhc2UgIlNFTEVDVCI6DQogICAgICAgICAgICAgICAgbmFtZSA9IGNvbmZpZ1tpXS5uYW1lOw0KICAgICAgICAgICAgICAgIHZhbHVlID0gY29uZmlnW2ldLnZhbHVlOw0KICAgICAgICAgICAgICAgIC8vIElmIHRoZSB2YWx1ZSBpcyBhIG51bWJlciwgc3RvcmUgaXQgYXMgYSBudW1iZXINCiAgICAgICAgICAgICAgICBpZiAoaXNOYU4odmFsdWUpKSB7DQogICAgICAgICAgICAgICAgICAgIHdpemFyZFtuYW1lXSA9IHZhbHVlOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICAgICAgd2l6YXJkW25hbWVdID0gcGFyc2VJbnQodmFsdWUpOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgIklOUFVUIjoNCiAgICAgICAgICAgICAgICBzd2l0Y2ggKGNvbmZpZ1tpXS50eXBlKSB7DQogICAgICAgICAgICAgICAgICAgIGNhc2UgInRleHQiOg0KICAgICAgICAgICAgICAgICAgICAgICAgbmFtZSA9IGNvbmZpZ1tpXS5uYW1lOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSBjb25maWdbaV0udmFsdWU7DQogICAgICAgICAgICAgICAgICAgICAgICBpZiAodmFsdWUubGVuZ3RoID09IDApIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgbXNnID0gbmFtZS50b1VwcGVyQ2FzZSgpICsgIjogIiArICJ7ey5hbGVydC5taXNzaW5nSW5wdXR9fSI7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgYWxlcnQobXNnKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICB3aXphcmRbbmFtZV0gPSB2YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICAgICAgLy8gY29kZS4uLg0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICB9DQogICAgfQ0KICAgIHZhciBkYXRhID0gbmV3IE9iamVjdCgpOw0KICAgIGRhdGFbIndpemFyZCJdID0gd2l6YXJkOw0KICAgIHZhciBzZXJ2ZXIgPSBuZXcgU2VydmVyKGNtZCk7DQogICAgc2VydmVyLnJlcXVlc3QoZGF0YSk7DQogICAgY29uc29sZS5sb2coZGF0YSk7DQp9DQovLyBXaXphcmQNCnZhciBjb25maWd1cmF0aW9uV2l6YXJkID0gbmV3IEFycmF5KCk7DQpjb25maWd1cmF0aW9uV2l6YXJkLnB1c2gobmV3IFdpemFyZEl0ZW0oInR1bmVyIiwgInt7LndpemFyZC50dW5lci50aXRsZX19IikpOw0KY29uZmlndXJhdGlvbldpemFyZC5wdXNoKG5ldyBXaXphcmRJdGVtKCJlcGdTb3VyY2UiLCAie3sud2l6YXJkLmVwZ1NvdXJjZS50aXRsZX19IikpOw0KY29uZmlndXJhdGlvbldpemFyZC5wdXNoKG5ldyBXaXphcmRJdGVtKCJtM3UiLCAie3sud2l6YXJkLm0zdS50aXRsZX19IikpOw0KY29uZmlndXJhdGlvbldpemFyZC5wdXNoKG5ldyBXaXphcmRJdGVtKCJ4bWx0diIsICJ7ey53aXphcmQueG1sdHYudGl0bGV9fSIpKTsNCg==" + webUI["html/img/BC-QR.jpg"] = "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" webUI["html/img/m3u.png"] = "iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAAAXNSR0IArs4c6QAAAAlwSFlzAAAsSwAALEsBpT2WqQAABCRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IlhNUCBDb3JlIDUuNC4wIj4KICAgPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIgogICAgICAgICAgICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgICAgICAgICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyI+CiAgICAgICAgIDx0aWZmOlJlc29sdXRpb25Vbml0PjI8L3RpZmY6UmVzb2x1dGlvblVuaXQ+CiAgICAgICAgIDx0aWZmOkNvbXByZXNzaW9uPjU8L3RpZmY6Q29tcHJlc3Npb24+CiAgICAgICAgIDx0aWZmOlhSZXNvbHV0aW9uPjI4ODwvdGlmZjpYUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6T3JpZW50YXRpb24+MTwvdGlmZjpPcmllbnRhdGlvbj4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+Mjg4PC90aWZmOllSZXNvbHV0aW9uPgogICAgICAgICA8ZXhpZjpQaXhlbFhEaW1lbnNpb24+NTA8L2V4aWY6UGl4ZWxYRGltZW5zaW9uPgogICAgICAgICA8ZXhpZjpDb2xvclNwYWNlPjE8L2V4aWY6Q29sb3JTcGFjZT4KICAgICAgICAgPGV4aWY6UGl4ZWxZRGltZW5zaW9uPjUwPC9leGlmOlBpeGVsWURpbWVuc2lvbj4KICAgICAgICAgPGRjOnN1YmplY3Q+CiAgICAgICAgICAgIDxyZGY6QmFnLz4KICAgICAgICAgPC9kYzpzdWJqZWN0PgogICAgICAgICA8eG1wOk1vZGlmeURhdGU+MjAxOC0wNy0yOFQxOTowNzozMTwveG1wOk1vZGlmeURhdGU+CiAgICAgICAgIDx4bXA6Q3JlYXRvclRvb2w+UGl4ZWxtYXRvciAzLjM8L3htcDpDcmVhdG9yVG9vbD4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgIDwvcmRmOlJERj4KPC94OnhtcG1ldGE+CumjVbcAAAGWSURBVGgF7VoxTgJRFGTFaGKBFnbEcABjb0fiBego7D2ABYmn8ARKRWFNQ6gx4QRQGWJJoY2VhXGdl7Dkh7Dsx3ns3yXvJ5P97L6d92bmhwYqlcWK43gK5L2enP51NP8F7pN721wPnOITZx9qG6HxI8QIZO+9XCHeL+VQKKm8QMyxb6+iCpH528AQYs58xIQWknV8mhDxCjEXWWJCC8maT55fAmOIudpUXAYhMn8dGEHMTZqYsgiR+U+BAcTcrhNTJiEy/xHQg5jOqpjD1RsBP3+id8u3P8TUoij6SuoLIwRDfWOofjLYtteyHa1UfcvvcUT1jqpGauVuHnyAdragjv/TAkley3uhj9Y5ZhDQa2+Olgmhz4IygSWibChNZ4nQFioTWCLKhtJ0lghtoTKBJaJsKE1nidAWKhNYIsqG0nSWCG2hMoElomwoTWeJ0BYqE1giyobSdJYIbaEygSWibChNZ4nQFioTWCLKhtJ0biJzmi1/guXMrpDn/OegO3bXMuAH0TtgAvwARV3y57Q34AGoJkL+AErKZ9cqbH7AAAAAAElFTkSuQmCC" - webUI["html/js/settings_ts.js"] = "Y2xhc3MgU2V0dGluZ3NDYXRlZ29yeSB7DQogICAgY29uc3RydWN0b3IoKSB7DQogICAgICAgIHRoaXMuRG9jdW1lbnRJRCA9ICJjb250ZW50X3NldHRpbmdzIjsNCiAgICB9DQogICAgY3JlYXRlQ2F0ZWdvcnlIZWFkbGluZSh2YWx1ZSkgew0KICAgICAgICB2YXIgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIkg0Iik7DQogICAgICAgIGVsZW1lbnQuaW5uZXJIVE1MID0gdmFsdWU7DQogICAgICAgIHJldHVybiBlbGVtZW50Ow0KICAgIH0NCiAgICBjcmVhdGVIUigpIHsNCiAgICAgICAgdmFyIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJIUiIpOw0KICAgICAgICByZXR1cm4gZWxlbWVudDsNCiAgICB9DQogICAgY3JlYXRlU2V0dGluZ3Moc2V0dGluZ3NLZXkpIHsNCiAgICAgICAgdmFyIHNldHRpbmcgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJUUiIpOw0KICAgICAgICB2YXIgY29udGVudCA9IG5ldyBQb3B1cENvbnRlbnQoKTsNCiAgICAgICAgdmFyIGRhdGEgPSBTRVJWRVJbInNldHRpbmdzIl1bc2V0dGluZ3NLZXldOw0KICAgICAgICBzd2l0Y2ggKHNldHRpbmdzS2V5KSB7DQogICAgICAgICAgICAvLyBUZXh0IGlucHV0cw0KICAgICAgICAgICAgY2FzZSAidXBkYXRlIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLnVwZGF0ZS50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsICJ1cGRhdGUiLCBkYXRhLnRvU3RyaW5nKCkpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3suc2V0dGluZ3MudXBkYXRlLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJiYWNrdXAucGF0aCI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5iYWNrdXBQYXRoLnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgImJhY2t1cC5wYXRoIiwgZGF0YSk7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5zZXR0aW5ncy5iYWNrdXBQYXRoLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ0ZW1wLnBhdGgiOg0KICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MudGVtcFBhdGgudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCAidGVtcC5wYXRoIiwgZGF0YSk7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5zZXR0aW5ncy50bXBQYXRoLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ1c2VyLmFnZW50IjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLnVzZXJBZ2VudC50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsICJ1c2VyLmFnZW50IiwgZGF0YSk7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5zZXR0aW5ncy51c2VyQWdlbnQucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImJ1ZmZlci50aW1lb3V0IjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmJ1ZmZlclRpbWVvdXQudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCAiYnVmZmVyLnRpbWVvdXQiLCBkYXRhKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnNldHRpbmdzLmJ1ZmZlclRpbWVvdXQucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImZmbXBlZy5wYXRoIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmZmbXBlZ1BhdGgudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCAiZmZtcGVnLnBhdGgiLCBkYXRhKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnNldHRpbmdzLmZmbXBlZ1BhdGgucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImZmbXBlZy5vcHRpb25zIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmZmbXBlZ09wdGlvbnMudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCAiZmZtcGVnLm9wdGlvbnMiLCBkYXRhKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnNldHRpbmdzLmZmbXBlZ09wdGlvbnMucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInZsYy5wYXRoIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLnZsY1BhdGgudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCAidmxjLnBhdGgiLCBkYXRhKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnNldHRpbmdzLnZsY1BhdGgucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInZsYy5vcHRpb25zIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLnZsY09wdGlvbnMudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCAidmxjLm9wdGlvbnMiLCBkYXRhKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnNldHRpbmdzLnZsY09wdGlvbnMucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIC8vIENoZWNrYm94ZXMNCiAgICAgICAgICAgIGNhc2UgImF1dGhlbnRpY2F0aW9uLndlYiI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5hdXRoZW50aWNhdGlvbldFQi50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChzZXR0aW5nc0tleSk7DQogICAgICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGE7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiYXV0aGVudGljYXRpb24ucG1zIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmF1dGhlbnRpY2F0aW9uUE1TLnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KHNldHRpbmdzS2V5KTsNCiAgICAgICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJhdXRoZW50aWNhdGlvbi5tM3UiOg0KICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MuYXV0aGVudGljYXRpb25NM1UudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goc2V0dGluZ3NLZXkpOw0KICAgICAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImF1dGhlbnRpY2F0aW9uLnhtbCI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5hdXRoZW50aWNhdGlvblhNTC50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChzZXR0aW5nc0tleSk7DQogICAgICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGE7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiYXV0aGVudGljYXRpb24uYXBpIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmF1dGhlbnRpY2F0aW9uQVBJLnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KHNldHRpbmdzS2V5KTsNCiAgICAgICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJmaWxlcy51cGRhdGUiOg0KICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MuZmlsZXNVcGRhdGUudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goc2V0dGluZ3NLZXkpOw0KICAgICAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImNhY2hlLmltYWdlcyI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5jYWNoZUltYWdlcy50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChzZXR0aW5nc0tleSk7DQogICAgICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGE7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAieGVwZy5yZXBsYWNlLm1pc3NpbmcuaW1hZ2VzIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLnJlcGxhY2VFbXB0eUltYWdlcy50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChzZXR0aW5nc0tleSk7DQogICAgICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGE7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAieHRldmVBdXRvVXBkYXRlIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLnh0ZXZlQXV0b1VwZGF0ZS50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChzZXR0aW5nc0tleSk7DQogICAgICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGE7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiYXBpIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmFwaS50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChzZXR0aW5nc0tleSk7DQogICAgICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGE7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgLy8gU2VsZWN0DQogICAgICAgICAgICBjYXNlICJ0dW5lciI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy50dW5lci50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIHRleHQgPSBuZXcgQXJyYXkoKTsNCiAgICAgICAgICAgICAgICB2YXIgdmFsdWVzID0gbmV3IEFycmF5KCk7DQogICAgICAgICAgICAgICAgZm9yICh2YXIgaSA9IDE7IGkgPD0gMTAwOyBpKyspIHsNCiAgICAgICAgICAgICAgICAgICAgdGV4dC5wdXNoKGkpOw0KICAgICAgICAgICAgICAgICAgICB2YWx1ZXMucHVzaChpKTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgdmFyIHNlbGVjdCA9IGNvbnRlbnQuY3JlYXRlU2VsZWN0KHRleHQsIHZhbHVlcywgZGF0YSwgc2V0dGluZ3NLZXkpOw0KICAgICAgICAgICAgICAgIHNlbGVjdC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChzZWxlY3QpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiZXBnU291cmNlIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmVwZ1NvdXJjZS50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIHRleHQgPSBbIlBNUyIsICJYRVBHIl07DQogICAgICAgICAgICAgICAgdmFyIHZhbHVlcyA9IFsiUE1TIiwgIlhFUEciXTsNCiAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCBkYXRhLCBzZXR0aW5nc0tleSk7DQogICAgICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKHNlbGVjdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJiYWNrdXAua2VlcCI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5iYWNrdXBLZWVwLnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgdGV4dCA9IFsiNSIsICIxMCIsICIyMCIsICIzMCIsICI0MCIsICI1MCJdOw0KICAgICAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBbIjUiLCAiMTAiLCAiMjAiLCAiMzAiLCAiNDAiLCAiNTAiXTsNCiAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCBkYXRhLCBzZXR0aW5nc0tleSk7DQogICAgICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKHNlbGVjdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJidWZmZXIuc2l6ZS5rYiI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5idWZmZXJTaXplLnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgdGV4dCA9IFsiMC41IE1CIiwgIjEgTUIiLCAiMiBNQiIsICIzIE1CIiwgIjQgTUIiLCAiNSBNQiIsICI2IE1CIiwgIjcgTUIiLCAiOCBNQiJdOw0KICAgICAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBbIjUxMiIsICIxMDI0IiwgIjIwNDgiLCAiMzA3MiIsICI0MDk2IiwgIjUxMjAiLCAiNjE0NCIsICI3MTY4IiwgIjgxOTIiXTsNCiAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCBkYXRhLCBzZXR0aW5nc0tleSk7DQogICAgICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKHNlbGVjdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJidWZmZXIiOg0KICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3Muc3RyZWFtQnVmZmVyaW5nLnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgdGV4dCA9IFsie3suc2V0dGluZ3Muc3RyZWFtQnVmZmVyaW5nLmluZm9fZmFsc2V9fSIsICJ4VGVWZTogKHt7LnNldHRpbmdzLnN0cmVhbUJ1ZmZlcmluZy5pbmZvX3h0ZXZlfX0pIiwgIkZGbXBlZzogKHt7LnNldHRpbmdzLnN0cmVhbUJ1ZmZlcmluZy5pbmZvX2ZmbXBlZ319KSIsICJWTEM6ICh7ey5zZXR0aW5ncy5zdHJlYW1CdWZmZXJpbmcuaW5mb192bGN9fSkiXTsNCiAgICAgICAgICAgICAgICB2YXIgdmFsdWVzID0gWyItIiwgInh0ZXZlIiwgImZmbXBlZyIsICJ2bGMiXTsNCiAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCBkYXRhLCBzZXR0aW5nc0tleSk7DQogICAgICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKHNlbGVjdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ1ZHB4eSI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy51ZHB4eS50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsICJ1ZHB4eSIsIGRhdGEpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3suc2V0dGluZ3MudWRweHkucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgfQ0KICAgICAgICByZXR1cm4gc2V0dGluZzsNCiAgICB9DQogICAgY3JlYXRlRGVzY3JpcHRpb24oc2V0dGluZ3NLZXkpIHsNCiAgICAgICAgdmFyIGRlc2NyaXB0aW9uID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVFIiKTsNCiAgICAgICAgdmFyIHRleHQ7DQogICAgICAgIHN3aXRjaCAoc2V0dGluZ3NLZXkpIHsNCiAgICAgICAgICAgIGNhc2UgImF1dGhlbnRpY2F0aW9uLndlYiI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5hdXRoZW50aWNhdGlvbldFQi5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImF1dGhlbnRpY2F0aW9uLm0zdSI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5hdXRoZW50aWNhdGlvbk0zVS5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImF1dGhlbnRpY2F0aW9uLnBtcyI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5hdXRoZW50aWNhdGlvblBNUy5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImF1dGhlbnRpY2F0aW9uLnhtbCI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5hdXRoZW50aWNhdGlvblhNTC5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImF1dGhlbnRpY2F0aW9uLmFwaSI6DQogICAgICAgICAgICAgICAgaWYgKFNFUlZFUlsic2V0dGluZ3MiXVsiYXV0aGVudGljYXRpb24ud2ViIl0gPT0gdHJ1ZSkgew0KICAgICAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLmF1dGhlbnRpY2F0aW9uQVBJLmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInh0ZXZlQXV0b1VwZGF0ZSI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy54dGV2ZUF1dG9VcGRhdGUuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJiYWNrdXAua2VlcCI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5iYWNrdXBLZWVwLmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiYmFja3VwLnBhdGgiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MuYmFja3VwUGF0aC5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInRlbXAucGF0aCI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy50ZW1wUGF0aC5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImJ1ZmZlciI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5zdHJlYW1CdWZmZXJpbmcuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJidWZmZXIuc2l6ZS5rYiI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5idWZmZXJTaXplLmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiYnVmZmVyLnRpbWVvdXQiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MuYnVmZmVyVGltZW91dC5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInVzZXIuYWdlbnQiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MudXNlckFnZW50LmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiZmZtcGVnLnBhdGgiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MuZmZtcGVnUGF0aC5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImZmbXBlZy5vcHRpb25zIjoNCiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLmZmbXBlZ09wdGlvbnMuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ2bGMucGF0aCI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy52bGNQYXRoLmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAidmxjLm9wdGlvbnMiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MudmxjT3B0aW9ucy5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImVwZ1NvdXJjZSI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5lcGdTb3VyY2UuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ0dW5lciI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy50dW5lci5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInVwZGF0ZSI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy51cGRhdGUuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJhcGkiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MuYXBpLmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiZmlsZXMudXBkYXRlIjoNCiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLmZpbGVzVXBkYXRlLmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiY2FjaGUuaW1hZ2VzIjoNCiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLmNhY2hlSW1hZ2VzLmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAieGVwZy5yZXBsYWNlLm1pc3NpbmcuaW1hZ2VzIjoNCiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLnJlcGxhY2VFbXB0eUltYWdlcy5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInVkcHh5IjoNCiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLnVkcHh5LmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgICAgICB0ZXh0ID0gIiI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIH0NCiAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAiIjsNCiAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICB2YXIgcHJlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiUFJFIik7DQogICAgICAgIHByZS5pbm5lckhUTUwgPSB0ZXh0Ow0KICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKHByZSk7DQogICAgICAgIGRlc2NyaXB0aW9uLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgIGRlc2NyaXB0aW9uLmFwcGVuZENoaWxkKHRkUmlnaHQpOw0KICAgICAgICByZXR1cm4gZGVzY3JpcHRpb247DQogICAgfQ0KfQ0KY2xhc3MgU2V0dGluZ3NDYXRlZ29yeUl0ZW0gZXh0ZW5kcyBTZXR0aW5nc0NhdGVnb3J5IHsNCiAgICBjb25zdHJ1Y3RvcihoZWFkbGluZSwgc2V0dGluZ3NLZXlzKSB7DQogICAgICAgIHN1cGVyKCk7DQogICAgICAgIHRoaXMuaGVhZGxpbmUgPSBoZWFkbGluZTsNCiAgICAgICAgdGhpcy5zZXR0aW5nc0tleXMgPSBzZXR0aW5nc0tleXM7DQogICAgfQ0KICAgIGNyZWF0ZUNhdGVnb3J5KCkgew0KICAgICAgICB2YXIgaGVhZGxpbmUgPSB0aGlzLmNyZWF0ZUNhdGVnb3J5SGVhZGxpbmUodGhpcy5oZWFkbGluZSk7DQogICAgICAgIHZhciBzZXR0aW5nc0tleXMgPSB0aGlzLnNldHRpbmdzS2V5czsNCiAgICAgICAgdmFyIGRvYyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHRoaXMuRG9jdW1lbnRJRCk7DQogICAgICAgIGRvYy5hcHBlbmRDaGlsZChoZWFkbGluZSk7DQogICAgICAgIC8vIENyZWF0ZSBhIHRhYmxlIGZvciB0aGUgY2F0ZWdvcnkNCiAgICAgICAgdmFyIHRhYmxlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEFCTEUiKTsNCiAgICAgICAgdmFyIGtleXMgPSBzZXR0aW5nc0tleXMuc3BsaXQoIiwiKTsNCiAgICAgICAga2V5cy5mb3JFYWNoKHNldHRpbmdzS2V5ID0+IHsNCiAgICAgICAgICAgIHN3aXRjaCAoc2V0dGluZ3NLZXkpIHsNCiAgICAgICAgICAgICAgICBjYXNlICJhdXRoZW50aWNhdGlvbi5wbXMiOg0KICAgICAgICAgICAgICAgIGNhc2UgImF1dGhlbnRpY2F0aW9uLm0zdSI6DQogICAgICAgICAgICAgICAgY2FzZSAiYXV0aGVudGljYXRpb24ueG1sIjoNCiAgICAgICAgICAgICAgICBjYXNlICJhdXRoZW50aWNhdGlvbi5hcGkiOg0KICAgICAgICAgICAgICAgICAgICBpZiAoU0VSVkVSWyJzZXR0aW5ncyJdWyJhdXRoZW50aWNhdGlvbi53ZWIiXSA9PSBmYWxzZSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBkZWZhdWx0Og0KICAgICAgICAgICAgICAgICAgICB2YXIgaXRlbSA9IHRoaXMuY3JlYXRlU2V0dGluZ3Moc2V0dGluZ3NLZXkpOw0KICAgICAgICAgICAgICAgICAgICB2YXIgZGVzY3JpcHRpb24gPSB0aGlzLmNyZWF0ZURlc2NyaXB0aW9uKHNldHRpbmdzS2V5KTsNCiAgICAgICAgICAgICAgICAgICAgdGFibGUuYXBwZW5kQ2hpbGQoaXRlbSk7DQogICAgICAgICAgICAgICAgICAgIHRhYmxlLmFwcGVuZENoaWxkKGRlc2NyaXB0aW9uKTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICB9DQogICAgICAgIH0pOw0KICAgICAgICBkb2MuYXBwZW5kQ2hpbGQodGFibGUpOw0KICAgICAgICBkb2MuYXBwZW5kQ2hpbGQodGhpcy5jcmVhdGVIUigpKTsNCiAgICB9DQp9DQpmdW5jdGlvbiBzaG93U2V0dGluZ3MoKSB7DQogICAgY29uc29sZS5sb2coIlNFVFRJTkdTIik7DQogICAgZm9yIChsZXQgaSA9IDA7IGkgPCBzZXR0aW5nc0NhdGVnb3J5Lmxlbmd0aDsgaSsrKSB7DQogICAgICAgIHNldHRpbmdzQ2F0ZWdvcnlbaV0uY3JlYXRlQ2F0ZWdvcnkoKTsNCiAgICB9DQp9DQpmdW5jdGlvbiBzYXZlU2V0dGluZ3MoKSB7DQogICAgY29uc29sZS5sb2coIlNhdmUgU2V0dGluZ3MiKTsNCiAgICB2YXIgY21kID0gInNhdmVTZXR0aW5ncyI7DQogICAgdmFyIGRpdiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb250ZW50X3NldHRpbmdzIik7DQogICAgdmFyIHNldHRpbmdzID0gZGl2LmdldEVsZW1lbnRzQnlDbGFzc05hbWUoImNoYW5nZWQiKTsNCiAgICB2YXIgbmV3U2V0dGluZ3MgPSBuZXcgT2JqZWN0KCk7DQogICAgZm9yIChsZXQgaSA9IDA7IGkgPCBzZXR0aW5ncy5sZW5ndGg7IGkrKykgew0KICAgICAgICB2YXIgbmFtZTsNCiAgICAgICAgdmFyIHZhbHVlOw0KICAgICAgICBzd2l0Y2ggKHNldHRpbmdzW2ldLnRhZ05hbWUpIHsNCiAgICAgICAgICAgIGNhc2UgIklOUFVUIjoNCiAgICAgICAgICAgICAgICBzd2l0Y2ggKHNldHRpbmdzW2ldLnR5cGUpIHsNCiAgICAgICAgICAgICAgICAgICAgY2FzZSAiY2hlY2tib3giOg0KICAgICAgICAgICAgICAgICAgICAgICAgbmFtZSA9IHNldHRpbmdzW2ldLm5hbWU7DQogICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IHNldHRpbmdzW2ldLmNoZWNrZWQ7DQogICAgICAgICAgICAgICAgICAgICAgICBuZXdTZXR0aW5nc1tuYW1lXSA9IHZhbHVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgICAgIGNhc2UgInRleHQiOg0KICAgICAgICAgICAgICAgICAgICAgICAgbmFtZSA9IHNldHRpbmdzW2ldLm5hbWU7DQogICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IHNldHRpbmdzW2ldLnZhbHVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgc3dpdGNoIChuYW1lKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAidXBkYXRlIjoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSB2YWx1ZS5zcGxpdCgiLCIpOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IHZhbHVlLmZpbHRlcihmdW5jdGlvbiAoZSkgeyByZXR1cm4gZTsgfSk7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgImJ1ZmZlci50aW1lb3V0IjoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSBwYXJzZUZsb2F0KHZhbHVlKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgIG5ld1NldHRpbmdzW25hbWVdID0gdmFsdWU7DQogICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJTRUxFQ1QiOg0KICAgICAgICAgICAgICAgIG5hbWUgPSBzZXR0aW5nc1tpXS5uYW1lOw0KICAgICAgICAgICAgICAgIHZhbHVlID0gc2V0dGluZ3NbaV0udmFsdWU7DQogICAgICAgICAgICAgICAgLy8gSWYgdGhlIHZhbHVlIGlzIGEgbnVtYmVyLCBzdG9yZSBpdCBhcyBhIG51bWJlcg0KICAgICAgICAgICAgICAgIGlmIChpc05hTih2YWx1ZSkpIHsNCiAgICAgICAgICAgICAgICAgICAgbmV3U2V0dGluZ3NbbmFtZV0gPSB2YWx1ZTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgZWxzZSB7DQogICAgICAgICAgICAgICAgICAgIG5ld1NldHRpbmdzW25hbWVdID0gcGFyc2VJbnQodmFsdWUpOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgfQ0KICAgIH0NCiAgICB2YXIgZGF0YSA9IG5ldyBPYmplY3QoKTsNCiAgICBkYXRhWyJzZXR0aW5ncyJdID0gbmV3U2V0dGluZ3M7DQogICAgdmFyIHNlcnZlciA9IG5ldyBTZXJ2ZXIoY21kKTsNCiAgICBzZXJ2ZXIucmVxdWVzdChkYXRhKTsNCn0NCg==" + webUI["html/img/x_white.png"] = "iVBORw0KGgoAAAANSUhEUgAAAQAAAAEACAIAAADTED8xAAAAAXNSR0IArs4c6QAAAAlwSFlzAAAWJQAAFiUBSVIk8AAAA6ppVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IlhNUCBDb3JlIDUuNC4wIj4KICAgPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIgogICAgICAgICAgICB4bWxuczp0aWZmPSJodHRwOi8vbnMuYWRvYmUuY29tL3RpZmYvMS4wLyIKICAgICAgICAgICAgeG1sbnM6ZXhpZj0iaHR0cDovL25zLmFkb2JlLmNvbS9leGlmLzEuMC8iPgogICAgICAgICA8eG1wOk1vZGlmeURhdGU+MjAxOC0xMS0xNVQxNzoxMToyNTwveG1wOk1vZGlmeURhdGU+CiAgICAgICAgIDx4bXA6Q3JlYXRvclRvb2w+UGl4ZWxtYXRvciAzLjM8L3htcDpDcmVhdG9yVG9vbD4KICAgICAgICAgPHRpZmY6T3JpZW50YXRpb24+MTwvdGlmZjpPcmllbnRhdGlvbj4KICAgICAgICAgPHRpZmY6Q29tcHJlc3Npb24+NTwvdGlmZjpDb21wcmVzc2lvbj4KICAgICAgICAgPHRpZmY6UmVzb2x1dGlvblVuaXQ+MjwvdGlmZjpSZXNvbHV0aW9uVW5pdD4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+MTQ0PC90aWZmOllSZXNvbHV0aW9uPgogICAgICAgICA8dGlmZjpYUmVzb2x1dGlvbj4xNDQ8L3RpZmY6WFJlc29sdXRpb24+CiAgICAgICAgIDxleGlmOlBpeGVsWERpbWVuc2lvbj4yNTY8L2V4aWY6UGl4ZWxYRGltZW5zaW9uPgogICAgICAgICA8ZXhpZjpDb2xvclNwYWNlPjE8L2V4aWY6Q29sb3JTcGFj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" + webUI["html/js/network_ts.js"] = "Y2xhc3MgU2VydmVyIHsNCiAgICBjb25zdHJ1Y3RvcihjbWQpIHsNCiAgICAgICAgdGhpcy5jbWQgPSBjbWQ7DQogICAgfQ0KICAgIHJlcXVlc3QoZGF0YSkgew0KICAgICAgICBpZiAoU0VSVkVSX0NPTk5FQ1RJT04gPT0gdHJ1ZSkgew0KICAgICAgICAgICAgcmV0dXJuOw0KICAgICAgICB9DQogICAgICAgIFNFUlZFUl9DT05ORUNUSU9OID0gdHJ1ZTsNCiAgICAgICAgY29uc29sZS5sb2coZGF0YSk7DQogICAgICAgIGlmICh0aGlzLmNtZCAhPSAidXBkYXRlTG9nIikgew0KICAgICAgICAgICAgc2hvd0VsZW1lbnQoImxvYWRpbmciLCB0cnVlKTsNCiAgICAgICAgICAgIFVORE8gPSBuZXcgT2JqZWN0KCk7DQogICAgICAgIH0NCiAgICAgICAgc3dpdGNoICh3aW5kb3cubG9jYXRpb24ucHJvdG9jb2wpIHsNCiAgICAgICAgICAgIGNhc2UgImh0dHA6IjoNCiAgICAgICAgICAgICAgICB0aGlzLnByb3RvY29sID0gIndzOi8vIjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImh0dHBzOiI6DQogICAgICAgICAgICAgICAgdGhpcy5wcm90b2NvbCA9ICJ3c3M6Ly8iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICB9DQogICAgICAgIHZhciB1cmwgPSB0aGlzLnByb3RvY29sICsgd2luZG93LmxvY2F0aW9uLmhvc3RuYW1lICsgIjoiICsgd2luZG93LmxvY2F0aW9uLnBvcnQgKyAiL2RhdGEvIiArICI/VG9rZW49IiArIGdldENvb2tpZSgiVG9rZW4iKTsNCiAgICAgICAgZGF0YVsiY21kIl0gPSB0aGlzLmNtZDsNCiAgICAgICAgdmFyIHdzID0gbmV3IFdlYlNvY2tldCh1cmwpOw0KICAgICAgICB3cy5vbm9wZW4gPSBmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICBXU19BVkFJTEFCTEUgPSB0cnVlOw0KICAgICAgICAgICAgY29uc29sZS5sb2coIlJFUVVFU1QgKEpTKToiKTsNCiAgICAgICAgICAgIGNvbnNvbGUubG9nKGRhdGEpOw0KICAgICAgICAgICAgY29uc29sZS5sb2coIlJFUVVFU1Q6IChKU09OKSIpOw0KICAgICAgICAgICAgY29uc29sZS5sb2coSlNPTi5zdHJpbmdpZnkoZGF0YSkpOw0KICAgICAgICAgICAgdGhpcy5zZW5kKEpTT04uc3RyaW5naWZ5KGRhdGEpKTsNCiAgICAgICAgfTsNCiAgICAgICAgd3Mub25lcnJvciA9IGZ1bmN0aW9uIChlKSB7DQogICAgICAgICAgICBjb25zb2xlLmxvZygiTm8gd2Vic29ja2V0IGNvbm5lY3Rpb24gdG8geFRlVmUgY291bGQgYmUgZXN0YWJsaXNoZWQuIENoZWNrIHlvdXIgbmV0d29yayBjb25maWd1cmF0aW9uLiIpOw0KICAgICAgICAgICAgU0VSVkVSX0NPTk5FQ1RJT04gPSBmYWxzZTsNCiAgICAgICAgICAgIGlmIChXU19BVkFJTEFCTEUgPT0gZmFsc2UpIHsNCiAgICAgICAgICAgICAgICBhbGVydCgiTm8gd2Vic29ja2V0IGNvbm5lY3Rpb24gdG8geFRlVmUgY291bGQgYmUgZXN0YWJsaXNoZWQuIENoZWNrIHlvdXIgbmV0d29yayBjb25maWd1cmF0aW9uLiIpOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9Ow0KICAgICAgICB3cy5vbm1lc3NhZ2UgPSBmdW5jdGlvbiAoZSkgew0KICAgICAgICAgICAgU0VSVkVSX0NPTk5FQ1RJT04gPSBmYWxzZTsNCiAgICAgICAgICAgIHNob3dFbGVtZW50KCJsb2FkaW5nIiwgZmFsc2UpOw0KICAgICAgICAgICAgY29uc29sZS5sb2coIlJFU1BPTlNFOiIpOw0KICAgICAgICAgICAgdmFyIHJlc3BvbnNlID0gSlNPTi5wYXJzZShlLmRhdGEpOw0KICAgICAgICAgICAgY29uc29sZS5sb2cocmVzcG9uc2UpOw0KICAgICAgICAgICAgaWYgKHJlc3BvbnNlLmhhc093blByb3BlcnR5KCJ0b2tlbiIpKSB7DQogICAgICAgICAgICAgICAgZG9jdW1lbnQuY29va2llID0gIlRva2VuPSIgKyByZXNwb25zZVsidG9rZW4iXTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGlmIChyZXNwb25zZVsic3RhdHVzIl0gPT0gZmFsc2UpIHsNCiAgICAgICAgICAgICAgICBhbGVydChyZXNwb25zZVsiZXJyIl0pOw0KICAgICAgICAgICAgICAgIGlmIChyZXNwb25zZS5oYXNPd25Qcm9wZXJ0eSgicmVsb2FkIikpIHsNCiAgICAgICAgICAgICAgICAgICAgbG9jYXRpb24ucmVsb2FkKCk7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIHJldHVybjsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGlmIChyZXNwb25zZS5oYXNPd25Qcm9wZXJ0eSgibG9nb1VSTCIpKSB7DQogICAgICAgICAgICAgICAgdmFyIGRpdiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjaGFubmVsLWljb24iKTsNCiAgICAgICAgICAgICAgICBkaXYudmFsdWUgPSByZXNwb25zZVsibG9nb1VSTCJdOw0KICAgICAgICAgICAgICAgIGRpdi5jbGFzc05hbWUgPSAiY2hhbmdlZCI7DQogICAgICAgICAgICAgICAgcmV0dXJuOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgc3dpdGNoIChkYXRhWyJjbWQiXSkgew0KICAgICAgICAgICAgICAgIGNhc2UgInVwZGF0ZUxvZyI6DQogICAgICAgICAgICAgICAgICAgIFNFUlZFUlsibG9nIl0gPSByZXNwb25zZVsibG9nIl07DQogICAgICAgICAgICAgICAgICAgIGlmIChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29udGVudF9sb2ciKSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgc2hvd0xvZ3MoZmFsc2UpOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIHJldHVybjsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgICAgICAgICAgU0VSVkVSID0gbmV3IE9iamVjdCgpOw0KICAgICAgICAgICAgICAgICAgICBTRVJWRVIgPSByZXNwb25zZTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBpZiAocmVzcG9uc2UuaGFzT3duUHJvcGVydHkoIm9wZW5NZW51IikpIHsNCiAgICAgICAgICAgICAgICB2YXIgbWVudSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHJlc3BvbnNlWyJvcGVuTWVudSJdKTsNCiAgICAgICAgICAgICAgICBtZW51LmNsaWNrKCk7DQogICAgICAgICAgICAgICAgc2hvd0VsZW1lbnQoInBvcHVwIiwgZmFsc2UpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgaWYgKHJlc3BvbnNlLmhhc093blByb3BlcnR5KCJvcGVuTGluayIpKSB7DQogICAgICAgICAgICAgICAgd2luZG93LmxvY2F0aW9uID0gcmVzcG9uc2VbIm9wZW5MaW5rIl07DQogICAgICAgICAgICB9DQogICAgICAgICAgICBpZiAocmVzcG9uc2UuaGFzT3duUHJvcGVydHkoImFsZXJ0IikpIHsNCiAgICAgICAgICAgICAgICBhbGVydChyZXNwb25zZVsiYWxlcnQiXSk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBpZiAocmVzcG9uc2UuaGFzT3duUHJvcGVydHkoInJlbG9hZCIpKSB7DQogICAgICAgICAgICAgICAgbG9jYXRpb24ucmVsb2FkKCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBpZiAocmVzcG9uc2UuaGFzT3duUHJvcGVydHkoIndpemFyZCIpKSB7DQogICAgICAgICAgICAgICAgY3JlYXRlTGF5b3V0KCk7DQogICAgICAgICAgICAgICAgY29uZmlndXJhdGlvbldpemFyZFtyZXNwb25zZVsid2l6YXJkIl1dLmNyZWF0ZVdpemFyZCgpOw0KICAgICAgICAgICAgICAgIHJldHVybjsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGNyZWF0ZUxheW91dCgpOw0KICAgICAgICB9Ow0KICAgIH0NCn0NCmZ1bmN0aW9uIGdldENvb2tpZShuYW1lKSB7DQogICAgdmFyIHZhbHVlID0gIjsgIiArIGRvY3VtZW50LmNvb2tpZTsNCiAgICB2YXIgcGFydHMgPSB2YWx1ZS5zcGxpdCgiOyAiICsgbmFtZSArICI9Iik7DQogICAgaWYgKHBhcnRzLmxlbmd0aCA9PSAyKQ0KICAgICAgICByZXR1cm4gcGFydHMucG9wKCkuc3BsaXQoIjsiKS5zaGlmdCgpOw0KfQ0K" webUI["html/login.html"] = "PCFkb2N0eXBlIGh0bWw+DQo8aHRtbD4NCiAgPGhlYWQ+DQogICAgPG1ldGEgY2hhcnNldD0idXRmLTgiPg0KICAgIDxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgsIGluaXRpYWwtc2NhbGU9MS4wIiAvPiANCiAgICA8dGl0bGU+eFRlVmU8L3RpdGxlPg0KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iY3NzL3NjcmVlbi5jc3MiIHR5cGU9InRleHQvY3NzIj4NCiAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9ImNzcy9iYXNlLmNzcyIgdHlwZT0idGV4dC9jc3MiPg0KICAgIDxzY3JpcHQgbGFuZ3VhZ2U9ImphdmFzY3JpcHQiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJqcy9uZXR3b3JrX3RzLmpzIj48L3NjcmlwdD4NCiAgICA8c2NyaXB0IGxhbmd1YWdlPSJqYXZhc2NyaXB0IiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ianMvYXV0aGVudGljYXRpb25fdHMuanMiPjwvc2NyaXB0Pg0KICA8L2hlYWQ+DQoNCiAgICA8Ym9keT4NCiAgICAgICAgICANCiAgICAgIDxkaXYgaWQ9ImhlYWRlciIgY2xhc3M9ImltZ0NlbnRlciI+PC9kaXY+DQoNCiAgICAgIDxkaXYgaWQ9ImJveCI+DQoNCiAgICAgICAgPGRpdiBpZD0iaGVhZGxpbmUiPg0KICAgICAgICAgIDxoMSBpZD0iaGVhZC10ZXh0IiBjbGFzcz0iY2VudGVyIj57ey5sb2dpbi5oZWFkbGluZX19PC9oMT4NCiAgICAgICAgPC9kaXY+DQoNCiAgICAgICAgPHAgaWQ9ImVyciIgY2xhc3M9ImVycm9yTXNnIGNlbnRlciI+e3suYXV0aGVudGljYXRpb25FcnJ9fTwvcD4NCg0KICAgICAgICA8ZGl2IGlkPSJjb250ZW50Ij4NCg0KICAgICAgICAgICAgPGZvcm0gaWQ9ImF1dGhlbnRpY2F0aW9uIiBhY3Rpb249IiIgbWV0aG9kPSJwb3N0Ij4NCg0KICAgICAgICAgICAgICA8aDU+e3subG9naW4udXNlcm5hbWUudGl0bGV9fTo8L2g1Pg0KICAgICAgICAgICAgICA8aW5wdXQgaWQ9InVzZXJuYW1lIiB0eXBlPSJ0ZXh0IiBuYW1lPSJ1c2VybmFtZSIgcGxhY2Vob2xkZXI9IlVzZXJuYW1lIiB2YWx1ZT0iIj4NCiAgICAgICAgICAgICAgPGg1Pnt7LmxvZ2luLnBhc3N3b3JkLnRpdGxlfX06PC9oNT4NCiAgICAgICAgICAgICAgPGlucHV0IGlkPSJwYXNzd29yZCIgdHlwZT0icGFzc3dvcmQiIG5hbWU9InBhc3N3b3JkIiBwbGFjZWhvbGRlcj0iUGFzc3dvcmQiIHZhbHVlPSIiPg0KDQogICAgICAgICAgICA8L2Zvcm0+DQoNCiAgICAgICAgPC9kaXY+DQoNCiAgICAgICAgPGRpdiBpZD0iYm94LWZvb3RlciI+DQogICAgICAgICAgPGlucHV0IGlkPSJzdWJtaXQiIGNsYXNzPSIiIHR5cGU9ImJ1dHRvbiIgdmFsdWU9Int7LmJ1dHRvbi5sb2dpbn19IiBvbmNsaWNrPSJqYXZhc2NyaXB0OiBsb2dpbigpOyI+DQogICAgICAgIDwvZGl2Pg0KICAgICAgICANCiAgICAgIDwvZGl2Pg0KDQogICAgPC9ib2R5Pg0KICAgIA0KPC9odG1sPg==" + webUI["html/img/filter.png"] = "iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAAAXNSR0IArs4c6QAAAAlwSFlzAAAsSwAALEsBpT2WqQAABCRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IlhNUCBDb3JlIDUuNC4wIj4KICAgPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIgogICAgICAgICAgICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgICAgICAgICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyI+CiAgICAgICAgIDx0aWZmOlJlc29sdXRpb25Vbml0PjI8L3RpZmY6UmVzb2x1dGlvblVuaXQ+CiAgICAgICAgIDx0aWZmOkNvbXByZXNzaW9uPjU8L3RpZmY6Q29tcHJlc3Npb24+CiAgICAgICAgIDx0aWZmOlhSZXNvbHV0aW9uPjI4ODwvdGlmZjpYUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6T3JpZW50YXRpb24+MTwvdGlmZjpPcmllbnRhdGlvbj4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+Mjg4PC90aWZmOllSZXNvbHV0aW9uPgogICAgICAgICA8ZXhpZjpQaXhlbFhEaW1lbnNpb24+NTA8L2V4aWY6UGl4ZWxYRGltZW5zaW9uPgogICAgICAgICA8ZXhpZjpDb2xvclNwYWNlPjE8L2V4aWY6Q29sb3JTcGFjZT4KICAgICAgICAgPGV4aWY6UGl4ZWxZRGltZW5zaW9uPjUwPC9leGlmOlBpeGVsWURpbWVuc2lvbj4KICAgICAgICAgPGRjOnN1YmplY3Q+CiAgICAgICAgICAgIDxyZGY6QmFnLz4KICAgICAgICAgPC9kYzpzdWJqZWN0PgogICAgICAgICA8eG1wOk1vZGlmeURhdGU+MjAxOC0wNy0yOFQxOTowNzo2OTwveG1wOk1vZGlmeURhdGU+CiAgICAgICAgIDx4bXA6Q3JlYXRvclRvb2w+UGl4ZWxtYXRvciAzLjM8L3htcDpDcmVhdG9yVG9vbD4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgIDwvcmRmOlJERj4KPC94OnhtcG1ldGE+Cs038OQAAAOISURBVGgF5ZpLSBVRGMfvvfmqCKKiKCqKtE3SQ8haJJm1ctPCZYHrFhXtohcUBLVsU1BRBJKLXpsSKs1aCL1oUUhvMgIloodZKmLZ72+OzNVx7jzOXGfqg/89Z875zv/7f35n7px7vanUP2JptzyGhoYKmK8GW0EZmA/mgW7wHrwDN0BTOp0epPVtxBBnLdgIVoE5YBboBR2gDTTA/5DWn0FeDPaBz8CLdeF0EBR5jYRvKbgABoAXa8Opwit/CudK8NoLs4PPM8ZyBsNnB/jpsD7X0C8cjgDXnaQkqkEPCGMSuGWivxxzx8OQj6xtpHWuPhPloHfEMWzTD0HN2GQY2xuW2Lb+/Fh+VaIQPLE5meh+gmSxFYz+BjBogtjGscfiH26Z2GmbNNltVQAIpwDdP6ZNO2iRYqTpZGhfgWUaiMC2w1kCzkbALcqLvDVvUyK6MW9HFES0b8BvsFwXEZi4F+iBtykCcjtlqf0igr52VJ1eqiIgzzdlrRIZfWfJd3SD8ZbqHvkB4XSDpJNB9V0VcX/cT4Ys/zEzSuSj/3WxW9GpRD7ETpZ/QcOJ6LyfdHugitxNehbob9G7lo4PXWBmQhPqQ/fsDOeUfjqNCU1Csi+TQ5+2luzc3yaRr6elevQZwhZr4bomYam0U41yabYqov5hvSTMjlp6RyuiAarSTLPZmox5246+lVREx/isiuh6NxhUJwF2yEpCWu1bK8WEsjyRgCSa0XrVrjNra2mC7TWD5ilYAuJoA4jSlnppF5dVEU3g0ENTD4b3nsZiZsfGJuGqj8qY+CINGqP2GLZCJ+HjtpblxAJ9k3cPrLfGJrnVUaSCarxw0jFua1lOLNBerANx+byya6IkLM2uLZWpAl6/Mcc1EjvjKtLrJNLqI5HnjfQ+bsVeteb0g2y/t7hGvd7CNjenOL8OkJ40KtOdTF+Cl/nV6Mkf4gxocI9vZPYLLKs9iQrqRIACcM2IXGeSboYrg+rztY5ARaDJWUeo0W+sXudLTFhnApaAW6FkZy/+yuXasLoCrSfwVHAnW0+gK93YawKJMLUIAdNAKwhqnSxcYUpPKB6EBE2mg7VR///EX24jybTQerXnOC70FyVP3gjTPXPTQyaP8NFPNeJrCNTPP667JKOq6VNo/A2hes5ccUjmEmPmDoD5+FMgWCcA+3FG57QJP//kQ1PgGBIOToEDgUn+t4V/AJeGknwARIKLAAAAAElFTkSuQmCC" webUI["html/css/base.css"] = "KiB7DQogIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTsNCiAgLW1vei1hcHBlYXJhbmNlOiBub25lOw0KICAtbXMtYXBwZWFyYW5jZTogbm9uZTsNCiAgZm9udC1mYW1pbHk6ICJBcmlhbCIsIHNhbnMtc2VyaWY7DQogIGxldHRlci1zcGFjaW5nOiAycHg7IA0KfQ0KDQovKg0KOjotd2Via2l0LXNjcm9sbGJhciB7IA0KICAgIGRpc3BsYXk6IG5vbmU7IA0KfQ0KKi8NCg0KOjotd2Via2l0LXNjcm9sbGJhciB7DQogIHdpZHRoOiAxMnB4Ow0KICBoZWlnaHQ6IDEycHg7DQp9DQoNCiANCjo6LXdlYmtpdC1zY3JvbGxiYXItdHJhY2sgew0KICAtd2Via2l0LWJveC1zaGFkb3c6IGluc2V0IDAgMCA2cHggcmdiYSgwLDAsMCwwLjMpOyANCiAgYm9yZGVyLXJhZGl1czogNXB4Ow0KICAgIA0KfQ0KIA0KOjotd2Via2l0LXNjcm9sbGJhci10aHVtYiB7DQogIGJvcmRlci1yYWRpdXM6IDVweDsNCiAgLXdlYmtpdC1ib3gtc2hhZG93OiBpbnNldCAwIDAgNnB4IHJnYmEoMCwgMCwgMCwwLjYpOyANCiAgYmFja2dyb3VuZC1jb2xvcjogIzQ0NDsNCn0NCg0KOjotd2Via2l0LXNjcm9sbGJhci10aHVtYjpob3ZlciB7DQogIGJhY2tncm91bmQ6ICMzMzM7IA0KfQ0KDQo6Oi13ZWJraXQtc2Nyb2xsYmFyLWNvcm5lciB7IA0KICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsgDQp9DQoNCmEgew0KICBjb2xvcjogIzAwRTZGRjsNCn0NCg0KaHRtbCwgYm9keSB7DQogIGNvbG9yOiAjZmZmOw0KICBtYXJnaW46IDBweCBhdXRvOw0KICBoZWlnaHQ6IDEwMCU7DQogIGZvbnQtc2l6ZTogMTRweDsNCn0NCg0KaDIgew0KICBmb250LXNpemU6IDI0cHg7DQogIGxldHRlci1zcGFjaW5nOiAycHg7DQp9DQoNCmgzIHsNCiAgZm9udC1zaXplOiAyMnB4Ow0KICBsZXR0ZXItc3BhY2luZzogMXB4Ow0KfQ0KDQpoNCB7DQogIGZvbnQtc2l6ZTogMjBweDsNCiAgbGV0dGVyLXNwYWNpbmc6IDFweDsNCiAgbGluZS1oZWlnaHQ6IDEuNWVtOw0KDQp9DQoNCmg1IHsNCiAgZm9udC1zaXplOiAxNnB4Ow0KICBsZXR0ZXItc3BhY2luZzogMXB4Ow0KICBsaW5lLWhlaWdodDogMS4yZW07DQogIG1hcmdpbjogMjVweCAwcHggMTBweCAwcHg7DQp9DQoNCmhyIHsNCiAgYm9yZGVyOiAwOw0KICBoZWlnaHQ6IDFweDsNCiAgYmFja2dyb3VuZDogIzMzMzsNCiAgbWFyZ2luOiAxMHB4IDBweDsNCn0NCg0KcCB7DQogIG1hcmdpbjogMnB4Ow0KICBwYWRkaW5nOiAycHggNXB4Ow0KfQ0KDQpwcmUgew0KICBtYXJnaW46IDBweCAwcHggNXB4IDBweDsNCiAgZm9udC1zaXplOiAxMnB4Ow0KICBjb2xvcjogI2RkZDsNCiAgbGV0dGVyLXNwYWNpbmc6IDFweDsNCiAgd2hpdGUtc3BhY2U6IHByZS13cmFwOw0KICBmb250LWZhbWlseTogbW9ub3NwYWNlOyANCiAgZm9udC1zaXplOiAxMnB4OyANCiAgZm9udC1zdHlsZTogbm9ybWFsOyANCiAgZm9udC12YXJpYW50OiBub3JtYWw7IA0KICBsaW5lLWhlaWdodDogMS42ZW07IA0KfQ0KDQpsYWJlbCB7DQogIG1hcmdpbi1ib3R0b206IDIwcHg7DQogIGRpc3BsYXk6IGJsb2NrOw0KfQ0KDQpsaSB7DQogIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTsNCiAgYmFja2dyb3VuZC1jb2xvcjogIzExMTsNCiAgcGFkZGluZzogMTBweCAyMHB4Ow0KICBjdXJzb3I6IHBvaW50ZXI7DQogIGJvcmRlci1sZWZ0OiBzb2xpZCAycHggIzExMTsNCiAgdHJhbnNpdGlvbjogYWxsIDAuMzsNCn0NCg0KbGk6aG92ZXIgew0KICBib3JkZXItY29sb3I6ICMwMEU2RkYNCn0NCg0Kc2VsZWN0IHsNCiAgY3Vyc29yOiBwb2ludGVyOw0KICB3aWR0aDogY2FsYygxMDAlICsgMnB4KTsNCiAgYm9yZGVyOiBzb2xpZCAwcHggIzAwRTZGRjsNCiAgYm9yZGVyLXJhZGl1czogMHB4Ow0KICBvdXRsaW5lOiBub25lOw0KICBjb2xvcjogI2ZmZjsNCiAgcGFkZGluZzogOXB4IDEwcHg7DQogIGRpc3BsYXk6YmxvY2s7DQogIGJhY2tncm91bmQtY29sb3I6ICMzMzM7DQogIGZvbnQtc2l6ZTogMTRweDsNCiAgbWFyZ2luOiA1cHggMHB4IDVweCAwcHg7DQp9DQoNCnNlbGVjdDpmb2N1cyB7DQogIG91dGxpbmU6IG5vbmU7DQp9DQoNCmlucHV0IHsNCiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lOw0KICBtYXJnaW46IDVweCAwcHg7DQogIHBhZGRpbmc6IDIuNXB4IDEwcHg7DQogIG91dGxpbmU6IG5vbmU7DQogIGZvbnQtc2l6ZTogMTRweDsNCn0NCg0KaW5wdXRbdHlwZT1idXR0b25dLCBpbnB1dFt0eXBlPXN1Ym1pdF0gew0KICBjdXJzb3I6IHBvaW50ZXI7DQogIGJhY2tncm91bmQtY29sb3I6ICMwMDA7DQogIG1hcmdpbjogMTBweCAxMHB4Ow0KICBwYWRkaW5nOiAxMHB4IDI1cHg7DQogIGJvcmRlcjogc29saWQgMHB4Ow0KICBib3JkZXItY29sb3I6ICMwMDA7DQogIGJvcmRlci1yYWRpdXM6IDNweDsNCiAgb3V0bGluZTogbm9uZTsNCiAgY29sb3I6ICNmZmY7DQp9DQoNCmlucHV0W3R5cGU9YnV0dG9uXTpmb2N1cyB7IA0KICAgb3V0bGluZTogbm9uZTsNCn0NCg0KaW5wdXRbdHlwZT1idXR0b25dOmhvdmVyIHsNCiAgYmFja2dyb3VuZC1jb2xvcjogIzAwRTZGRjsNCiAgY29sb3I6ICMwMDA7DQp9DQoNCmlucHV0W3R5cGU9YnV0dG9uXTpob3Zlci5kZWxldGUgIHsNCiAgYmFja2dyb3VuZC1jb2xvcjogcmVkOw0KICBjb2xvcjogI2ZmZjsNCn0NCg0KaW5wdXRbdHlwZT10ZXh0XSwgaW5wdXRbdHlwZT1zZWFyY2hdLCBpbnB1dFt0eXBlPXBhc3N3b3JkXSB7DQogIGNvbG9yOiAjZmZmOw0KICB3aWR0aDogLXdlYmtpdC1jYWxjKDEwMCUgLSAwcHgpOw0KICB3aWR0aDogLW1vei1jYWxjKDEwMCUgLSAwcHgpOw0KICB3aWR0aDogY2FsYygxMDAlIC0gMHB4KTsNCiAgb3V0bGluZTogbm9uZTsNCiAgYm9yZGVyOiBzb2xpZCAxcHggdHJhbnNwYXJlbnQ7DQogIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50Ow0KICBib3JkZXItYm90dG9tLWNvbG9yOiAjNTU1Ow0KICBib3JkZXItcmFkaXVzOiAwcHg7DQogIHBhZGRpbmc6IDhweCAxMHB4Ow0KfQ0KDQppbnB1dFt0eXBlPSJjaGVja2JveCJdIHsNCiAgYm9yZGVyOiBzb2xpZCAxcHggIzAwRTZGRjsNCiAgYmFja2dyb3VuZC1jb2xvcjogIzMzMzsNCiAgaGVpZ2h0OiAyNXB4Ow0KICB3aWR0aDogMjVweDsNCiAgY3Vyc29yOiBwb2ludGVyOw0KICAvKg0KICAtd2Via2l0LWFwcGVhcmFuY2U6IGNoZWNrYm94Ow0KICAqLw0KfQ0KDQppbnB1dFt0eXBlPSJjaGVja2JveCJdOmNoZWNrZWQgew0KICBjb2xvcjogI2ZmZjsNCiAgYmFja2dyb3VuZC1jb2xvcjogIzAwRTZGRjsNCiAgLypkaXNwbGF5OiBpbmxpbmUtYmxvY2s7Ki8NCn0NCg0KaW5wdXRbdHlwZT0iY2hlY2tib3giXTpiZWZvcmUgew0KICBwb3NpdGlvbjogaW5pdGlhbDsNCiAgbGVmdDogMHB4Ow0KICBtYXJnaW4tbGVmdDogLTRweDsNCiAgY29udGVudDogIiAiOw0KfQ0KDQppbnB1dFt0eXBlPSJjaGVja2JveCJdOmNoZWNrZWQ6YmVmb3JlIHsNCiAgcG9zaXRpb246IGluaXRpYWw7DQogIGxlZnQ6IDBweDsNCiAgbWFyZ2luLWxlZnQ6IC0zcHg7DQogIGNvbnRlbnQ6ICLinJMiOw0KICBjb2xvcjogIzAwMDsNCn0NCg0KDQppbnB1dFt0eXBlPWJ1dHRvbl0uY2FuY2VsIHsNCiAgDQogIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50Ow0KICBib3JkZXItY29sb3I6IHJlZDsNCn0NCg0KaW5wdXRbdHlwZT1idXR0b25dLnNhdmV7DQogIGJhY2tncm91bmQtY29sb3I6ICMxMTE7DQogIGZsb2F0OiByaWdodDsNCn0NCg0KDQppbnB1dFt0eXBlPWJ1dHRvbl0uYmxhY2ssIGlucHV0W3R5cGU9c3VibWl0XS5ibGFja3sNCiAgYmFja2dyb3VuZC1jb2xvcjogIzAwMDsNCiAgYm9yZGVyLWNvbG9yOiAjMDAwOw0KfQ0KDQppbnB1dFt0eXBlPWJ1dHRvbl0uY2VudGVyew0KICBtYXJnaW4tcmlnaHQ6IGF1dG87DQogIG1hcmdpbi1sZWZ0OiBhdXRvOw0KICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDAwOw0KICBib3JkZXItY29sb3I6ICMwMDA7DQp9DQoNCi5wb2ludGVyIHsNCiAgY3Vyc29yOiBwb2ludGVyOw0KfQ0KDQoucG9pbnRlcjpob3ZlciB7DQogIGNvbG9yOiAjMDBFNkZGOw0KICBjdXJzb3I6IHBvaW50ZXI7DQp9DQoNCi5zb3J0VGhpcyB7DQogIGNvbG9yOiAjMDBFNkZGOw0KfQ0KDQoudzQwcHggew0KICBtYXgtd2lkdGg6IDQwcHg7DQp9DQoNCi53NTBweCB7DQogIG1heC13aWR0aDogNTBweDsNCn0NCg0KLnc4MHB4IHsNCiAgbWF4LXdpZHRoOiA4MHB4Ow0KfQ0KDQoudzE1MHB4IHsNCiAgbWF4LXdpZHRoOiAxNTBweDsNCn0NCg0KLncyMDBweCB7DQogIG1heC13aWR0aDogMjAwcHg7DQogIG1pbi13aWR0aDogMTAwcHg7DQogIHdpZHRoOiAyMDBweDsNCiAgb3ZlcmZsb3cteDogaGlkZGVuOw0KICB3aGl0ZS1zcGFjZTogbm93cmFwOw0KICBvdmVyZmxvdzogaGlkZGVuOw0KICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsNCn0NCg0KLnczMDBweCB7DQogIG1heC13aWR0aDogMzAwcHg7DQp9DQoNCi53MjIwcHggew0KICBtYXgtd2lkdGg6IDIyMHB4Ow0KICBjdXJzb3I6IGFsaWFzOw0KfQ0KDQouZm9vdGVyIHsNCiAgZm9udC1zaXplOiAxMHB4Ow0KfQ0KDQouY2VudGVyIHsNCiAgdGV4dC1hbGlnbjogY2VudGVyOw0KfQ0KDQouc2NyZWVuTG9nSGlkZGVuIHsNCiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMHB4LCAtMTEwcHgpOw0KfQ0KDQouYm9yZGVyU3BhY2Ugew0KICBtYXJnaW4tYm90dG9tOiAzMHB4Ow0KfQ0KDQouYmxvY2sgew0KDQp9DQoNCi5ub25lIHsNCiAgZGlzcGxheTogbm9uZTsNCn0NCg0KDQoubm90VmlzaWJsZSB7DQogIGhlaWdodDogMHB4Ow0KICBkaXNwbGF5OiBub25lOw0KICBvcGFjaXR5OiAwOw0KICBib3JkZXItYm90dG9tOiAjMDAwIHNvbGlkIDBweDsNCiAgDQp9DQoNCi52aXNpYmxlIHsNCiAgb3BhY2l0eTogMTsNCiAgZGlzcGxheTogYmxvY2s7DQogIGJvcmRlci1ib3R0b206ICM0NDQgc29saWQgMXB4OyANCiAgcGFkZGluZzogMTBweDsNCn0NCg0KLmZsb2F0UmlnaHQgew0KICBmbG9hdDogcmlnaHQ7DQp9DQoNCi5mbG9hdExlZnQgew0KICBmbG9hdDogbGVmdDsNCn0NCg0KLm1lbnUtYWN0aXZlIHsNCiAgYmFja2dyb3VuZC1jb2xvcjogIzAwRTZGRjsNCn0NCg0KLm1lbnUtbm90QWN0aXZlIHsNCiAgDQp9DQoNCiNicmFuY2ggew0KICBkaXNwbGF5OiB0YWJsZTsNCiAgbWFyZ2luOiBhdXRvOw0KICBjb2xvcjogcmVkOw0KfQ0KDQojaW50ZXJhY3Rpb24gew0KICBtYXJnaW4tYm90dG9tOiAxMDBweDsNCiAgdGV4dC1hbGlnbjogY2VudGVyOw0KICBib3JkZXItYm90dG9tOiBzb2xpZCAwcHggIzc3NzsNCn0NCg0KDQouaGFsZiB7DQogIGRpc3BsYXk6IGJsb2NrOw0KICB3aWR0aDogNDUlOw0KfQ0KDQoubWVudSB7DQogIGJvcmRlcjogc29saWQgMXB4ICMwMEU2RkY7DQp9DQoNCi5pbmZvTXNnIHsNCiAgY29sb3I6ICNhYWE7DQp9DQoNCi5lcnJvck1zZyB7DQogIGNvbG9yOiByZWQ7DQp9DQoNCi53YXJuaW5nTXNnIHsNCiAgY29sb3I6IHllbGxvdzsNCn0NCg0KLmRlYnVnTXNnIHsNCiAgY29sb3I6IG1hZ2VudGE7DQp9DQoNCi5OZXdzLCAuTW92aWUsIC5TZXJpZXMsIC5TcG9ydHMsIC5LaWRzIHsNCiAgYm9yZGVyLWxlZnQ6IHNvbGlkIDJweA0KfQ0KDQouTmV3cyB7DQogIGJvcmRlci1jb2xvcjogdG9tYXRvDQp9DQoNCi5Nb3ZpZSB7DQogIGJvcmRlci1jb2xvcjogcm95YWxibHVlOw0KfQ0KDQouU2VyaWVzIHsNCiAgYm9yZGVyLWNvbG9yOiBnb2xkOw0KfQ0KDQouU3BvcnRzIHsNCiAgYm9yZGVyLWNvbG9yOiB5ZWxsb3dncmVlbjsNCn0NCg0KLktpZHMgew0KICBib3JkZXItY29sb3I6IG1lZGl1bXB1cnBsZTsNCn0NCg0KLyogTG9hZGluZyAqLw0KI2xvYWRpbmcgew0KICBsZWZ0OiAwcHg7DQogIHRvcDogMHB4Ow0KICB6LWluZGV4OiAxMDAwMDsNCiAgcG9zaXRpb246IGFic29sdXRlOw0KICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsMCwwLCAwLjgpOw0KICBtYXJnaW46IGF1dG87DQogIHdpZHRoOiAxMDAlOw0KICBoZWlnaHQ6IDEwMCU7DQp9DQoNCg0KLmxvYWRlciB7DQogIGJvcmRlcjogNXB4IHNvbGlkIHRyYW5zcGFyZW50Ow0KICBib3JkZXItcmFkaXVzOiA1MCU7DQogIGJvcmRlci10b3A6IDVweCBzb2xpZCAjMDBFNkZGOw0KICBib3JkZXItYm90dG9tOiA1cHggc29saWQgIzAwRTZGRjsNCiAgd2lkdGg6IDUwcHg7DQogIGhlaWdodDogNTBweDsNCiAgLXdlYmtpdC1hbmltYXRpb246IHNwaW4gMS4ycyBsaW5lYXIgaW5maW5pdGU7DQogIGFuaW1hdGlvbjogc3BpbiAxLjJzIGxpbmVhciBpbmZpbml0ZTsNCg0KICBwb3NpdGlvbjogZml4ZWQ7DQogIG1hcmdpbjogYXV0bzsNCg0KICB0b3A6IDA7DQogIHJpZ2h0OiAwOw0KICBib3R0b206IDA7DQogIGxlZnQ6IDA7DQogIA0KfQ0KDQpALXdlYmtpdC1rZXlmcmFtZXMgc3BpbiB7DQogIDAlIHsgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTsgfQ0KICAxMDAlIHsgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpOyB9DQp9DQoNCkBrZXlmcmFtZXMgc3BpbiB7DQogIDAlIHsgdHJhbnNmb3JtOiByb3RhdGUoMGRlZyk7IH0NCiAgMTAwJSB7IHRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7IH0NCn0NCg==" - webUI["html/img/logo_w_600x200.png"] = "iVBORw0KGgoAAAANSUhEUgAAAlgAAADICAYAAAA0n5+2AAAAAXNSR0IArs4c6QAAAAlwSFlzAAAuIwAALiMBeKU/dgAABCZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IlhNUCBDb3JlIDUuNC4wIj4KICAgPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIgogICAgICAgICAgICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgICAgICAgICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyI+CiAgICAgICAgIDx0aWZmOlJlc29sdXRpb25Vbml0PjI8L3RpZmY6UmVzb2x1dGlvblVuaXQ+CiAgICAgICAgIDx0aWZmOkNvbXByZXNzaW9uPjU8L3RpZmY6Q29tcHJlc3Npb24+CiAgICAgICAgIDx0aWZmOlhSZXNvbHV0aW9uPjMwMDwvdGlmZjpYUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6T3JpZW50YXRpb24+MTwvdGlmZjpPcmllbnRhdGlvbj4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+MzAwPC90aWZmOllSZXNvbHV0aW9uPgogICAgICAgICA8ZXhpZjpQaXhlbFhEaW1lbnNpb24+NjAwPC9leGlmOlBpeGVsWERpbWVuc2lvbj4KICAgICAgICAgPGV4aWY6Q29sb3JTcGFjZT4xPC9leGlmOkNvbG9yU3BhY2U+CiAgICAgICAgIDxleGlmOlBpeGVsWURpbWVuc2lvbj4yMDA8L2V4aWY6UGl4ZWxZRGltZW5zaW9uPgogICAg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" + webUI["html/css/screen.css"] = "bmF2IGltZyB7DQogIGRpc3BsYXk6IGJsb2NrOw0KICBtYXgtaGVpZ2h0OiAyMHB4Ow0KICBtYXgtd2lkdGg6IDIwcHg7DQogIGZsb2F0OiBsZWZ0Ow0KfQ0KDQpuYXYgcCB7DQogIHRleHQtYWxpZ246IGxlZnQ7DQogIHBhZGRpbmc6IDBweCAzMHB4Ow0KfQ0KDQojbGF5b3V0IHsNCiAgZGlzcGxheTogYmxvY2s7DQogIGhlaWdodDogMTAwJTsNCn0NCg0KDQoubGF5b3V0LWxlZnQgew0KICBkaXNwbGF5OiBibG9jazsNCiAgbWluLXdpZHRoOiAxNTBweDsNCiAgbWF4LXdpZHRoOiAyMCU7DQogIGJhY2tncm91bmQtY29sb3I6ICMxMTE7DQogIGhlaWdodDogaW5oZXJpdDsNCiAgZmxvYXQ6IGxlZnQ7DQp9DQoNCi5sYXlvdXQtcmlnaHQgew0KICBkaXNwbGF5OiBibG9jazsNCiAgYmFja2dyb3VuZC1jb2xvcjogIzQ0NDsNCn0NCg0KI21lbnUtd3JhcHBlciB7DQogIGhlaWdodDogMTAwJTsNCn0NCg0KDQojbG9nbyB7DQogIGRpc3BsYXk6IGJsb2NrOw0KICBtaW4td2lkdGg6IDE4MHB4Ow0KICB3aWR0aDogMTAwJTsNCiAgaGVpZ2h0OiAxMDBweDsNCiAgYmFja2dyb3VuZDogdXJsKCIuLi9pbWcvbG9nb193XzYwMHgyMDAucG5nIik7DQogIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7DQogIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjsgDQogIGJhY2tncm91bmQtc2l6ZTogMTAwJTsNCn0NCg0KDQojcGFnZSB7DQogIG1heC13aWR0aDogOTUwcHg7DQogIG1hcmdpbjogYXV0bzsNCiAgYmFja2dyb3VuZC1jb2xvcjogIzQ0NDsNCg0KICAvKg0KICBoZWlnaHQ6IC13ZWJraXQtY2FsYygxMDAlIC0gMTMwcHgpOw0KICBoZWlnaHQ6IC1tb3otY2FsYygxMDAlIC0gMTMwcHgpOw0KICBoZWlnaHQ6IGNhbGMoMTAwJSAtIDEzMHB4KTsNCiAgKi8NCiAgDQogIG1pbi1oZWlnaHQ6IC13ZWJraXQtY2FsYygxMDAlIC0gMTIwcHgpOw0KICBtaW4taGVpZ2h0OiAtbW96LWNhbGMoMTAwJSAtIDEyMHB4KTsNCiAgbWluLWhlaWdodDogY2FsYygxMDAlIC0gMTIwcHgpOw0KICANCiAgDQogIGJveC1zaGFkb3c6IDBweCA1cHggNXB4ICMyMjI7DQogIA0KfQ0KDQojdWlTZXR0aW5nIHsNCiAgZmxvYXQ6IHJpZ2h0Ow0KICBtYXJnaW4tcmlnaHQ6IDI1cHg7DQp9DQoNCiNib3ggaW5wdXRbdHlwZT10ZXh0XSwgI2JveCBpbnB1dFt0eXBlPXBhc3N3b3JkXSB7DQogIHdpZHRoOiAtd2Via2l0LWNhbGMoMTAwJSAtIDIwcHgpOw0KICB3aWR0aDogLW1vei1jYWxjKDEwMCUgLSAyMHB4KTsNCiAgd2lkdGg6IGNhbGMoMTAwJSAtIDIwcHgpOw0KfQ0KDQojYm94IGlucHV0W3R5cGU9c3VibWl0XXsNCiAgbWFyZ2luOiA1MHB4IGF1dG87DQp9DQoNCiNzZXR0aW5ncyB7DQogIGRpc3BsYXk6IGJsb2NrOw0KICBwYWRkaW5nOiAxMHB4IDEwcHg7DQp9DQoNCiNzZXR0aW5ncyBoNSB7DQogIG1hcmdpbjogNTBweCAwcHggMTBweCAwcHg7DQp9DQoNCiNjb250ZW50LWludGVyYWN0aW9uIC5zZWFyY2ggew0KICB3aWR0aDogMjAwcHg7DQogIGJvcmRlcjogMXB4IHNvbGlkICMwMDA7DQogIHBhZGRpbmc6IDlweDsNCiAgYmFja2dyb3VuZC1jb2xvcjogIzMzMzsNCiAgbWFyZ2luOiAxMHB4Ow0KICBmbG9hdDogcmlnaHQ7DQogIGJvcmRlci1yYWRpdXM6IDNweDsNCg0KfQ0KDQojbXlTdHJlYW1zIHsNCiAgcG9zaXRpb246IGZpeGVkOw0KICBib3R0b206IDBweDsNCiAgYmFja2dyb3VuZC1jb2xvcjogIzExMTsNCiAgd2lkdGg6IDEwMCU7DQogIG1heC13aWR0aDogOTUwcHg7DQoNCiAgLyoNCiAgbWF4LWhlaWdodDogMTAwcHg7DQogICovDQogIG1hcmdpbi1ib3R0b206IDBweDsNCn0NCg0KI215U3RyZWFtcyBpbWcgew0KICB3aWR0aDogNCU7DQogIHBhZGRpbmc6IDJweCA1cHg7DQogIGN1cnNvcjogcG9pbnRlcjsNCiAgZmxvYXQ6IHJpZ2h0Ow0KfQ0KDQojc2V0dGluZ3MtZm9vdGVyIHsNCg0KfQ0KDQoNCi8qIFdpemFyZCovDQojYm94IHsNCiAgYmFja2dyb3VuZC1jb2xvcjogIzQ0NDsNCiAgbWluLWhlaWdodDogNDAwcHg7DQogIA0KICBkaXNwbGF5OiBmbGV4Ow0KICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOw0KICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47DQp9DQoNCiNib3ggcHsNCiAgcGFkZGluZzogMTBweCAwcHg7DQp9DQoNCiNib3gtZm9vdGVyIHsNCiAgbWFyZ2luLXRvcDogYXV0bzsNCn0NCg0KI2JveC1mb290ZXIgew0KICBtYXJnaW46IGF1dG87DQogIHBhZGRpbmc6IDEwcHg7DQp9DQoNCiNoZWFkbGluZSB7DQogIGJhY2tncm91bmQtY29sb3I6ICMyMjI7DQogIGJvcmRlci1ib3R0b206IHNvbGlkIDJweCAjMjIyOw0KICB0cmFuc2l0aW9uOiBhbGwgMC41czsNCiAgcGFkZGluZzogMTBweCAwcHg7DQogIGRpc3BsYXk6IGJsb2NrOw0KfQ0KDQojY29udGVudCB7DQogIGRpc3BsYXk6IGJsb2NrOw0KICBvdmVyZmxvdzogYXV0bzsNCiAgcGFkZGluZzogMTBweDsNCn0NCg0KLyogLS0tICovDQoNCg0KI2NsaWVudEluZm8sICNhY3RpdmVTdHJlYW1zLCAjaW5hY3RpdmVTdHJlYW1zIHsNCiAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZTsNCiAgZGlzcGxheTogYmxvY2s7DQogIGZvbnQtc2l6ZTogOXB4Ow0KICBiYWNrZ3JvdW5kLWNvbG9yOiAjMTExOw0KICBjb2xvcjogIzAwRTZGRjsNCiAgYm9yZGVyLWJvdHRvbTogc29saWQgMHB4OzsNCiAgcGFkZGluZzogMHB4Ow0KICBsZXR0ZXItc3BhY2luZzogMXB4Ow0KICBvdmVyZmxvdy14OiBoaWRkZW47DQogIGJvcmRlci1zcGFjaW5nOiA0cHggNHB4Ow0KICBib3JkZXItYm90dG9tOiBzb2xpZCAxcHggIzQ0NDsNCn0NCg0KI215U3RyZWFtc0JveCB7DQogIHBvc2l0aW9uOiByZWxhdGl2ZTsNCiAgcGFkZGluZzogMHB4Ow0KICAvKmhlaWdodDogMTAwcHg7Ki8NCiAgbWF4LWhlaWdodDogMTUwcHg7DQogIGJhY2tncm91bmQtY29sb3I6ICMxMTE7DQogIGNvbG9yOiB3aGl0ZTsNCiAgZGlzcGxheTpmbGV4Ow0KICBqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyOw0KICBhbGlnbi1pdGVtczpjZW50ZXI7DQp9DQoNCiNvcGVuU3RyZWFtcyB7DQogIHdpZHRoOiAyMHB4Ow0KICBoZWlnaHQ6IDIwcHg7DQogIGN1cnNvcjogcG9pbnRlcjsNCiAgZmxvYXQ6IHJpZ2h0Ow0KICBwb3NpdGlvbjogYWJzb2x1dGU7DQogIHJpZ2h0OiAwcHg7DQogIGJvdHRvbTogMHB4Ow0KICBiYWNrZ3JvdW5kOiB1cmwoIi4uL2ltZy90b3VjaC5wbmciKTsNCiAgYmFja2dyb3VuZC1jb2xvcjogIzExMTsNCiAgDQogIGJhY2tncm91bmQtcG9zaXRpb246IGJvdHRvbSByaWdodDsgIA0KfQ0KDQojYWxsU3RyZWFtcyB7DQogIHdpZHRoOiAxMDAlOw0KICBoZWlnaHQ6IDEwMCU7DQogIHBhZGRpbmc6IDJweDsgICAgIA0KfQ0KDQojYWN0aXZlU3RyZWFtcywgI2luYWN0aXZlU3RyZWFtcyB7DQogIG92ZXJmbG93LXk6IHNjcm9sbDsNCiAgd2lkdGg6IDUwJTsNCiAgbWF4LWhlaWdodDogMTAwcHg7DQogIGZsb2F0OiBsZWZ0Ow0KfQ0KDQojYWN0aXZlU3RyZWFtcyAudGRLZXksICNpbmFjdGl2ZVN0cmVhbXMgLnRkS2V5IHsNCiAgd2lkdGg6IDc1cHg7DQp9DQoNCg0KDQoNCiNpbmFjdGl2ZVN0cmVhbXMgLnRkS2V5IHsNCiAgY29sb3I6IHJlZDsNCn0NCg0KI2NsaWVudEluZm8gLnRkVmFsLCAjbG9nSW5mbyAudGRWYWwsICNhY3RpdmVTdHJlYW1zIC50ZFZhbCwgI2luYWN0aXZlU3RyZWFtcyAudGRWYWwsICNtYXBwaW5nSW5mbyAudGRWYWx7DQogIGNvbG9yOiAjYWFhOw0KICB3aGl0ZS1zcGFjZTogaW5oZXJpdDsNCn0NCg0KI2JveC13cmFwcGVyIHsNCiAgZGlzcGxheTogaW5saW5lLWJsb2NrOw0KICB3aWR0aDogMTAwJTsNCiAgDQogIG92ZXJmbG93LXk6IHNjcm9sbDsNCn0NCg0KI2NvbnRlbnRfdGFibGUsICNtYXBwaW5nLWRldGFpbC10YWJsZSwgI2NvbnRlbnRfdGFibGUgew0KICBkaXNwbGF5OiB0YWJsZTsNCiAgDQogIGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7DQogIG92ZXJmbG93LXk6IHNjcm9sbDsNCiAgd2lkdGg6IDEwMCU7DQp9DQoNCg0KI2NvbnRlbnRfdGFibGUgLmNvbnRlbnRfdGFibGVfaGVhZGVyIHsNCiAgYmFja2dyb3VuZC1jb2xvcjogIzMzMzsNCiAgaGVpZ2h0OiA1MHB4Ow0KICBib3JkZXItYm90dG9tOiBzb2xpZCAxcHggIzExMTsNCiAgYm9yZGVyLWxlZnQ6IHNvbGlkIDNweCAjMzMzOw0KICBjdXJzb3I6IGF1dG87DQoNCn0NCg0KDQp0Ym9keSB7DQogIHdpZHRoOiAxMDAlOw0KfQ0KDQoNCi50YWJsZUVsbGlwc2lzIHsNCiAgd2lkdGg6IDE1MHB4Ow0KICBvdmVyZmxvdzogaGlkZGVuOw0KICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsNCiAgd2hpdGUtc3BhY2U6IG5vd3JhcDsNCn0NCg0KI2NvbnRlbnRfdGFibGUgaW1nIHsNCiAgZGlzcGxheTogYmxvY2s7DQogIG1heC1oZWlnaHQ6IDI4cHg7DQogIG1hcmdpbi1sZWZ0OiBhdXRvOw0KICBtYXJnaW4tcmlnaHQ6IGF1dG87DQogIG1heC13aWR0aDogMzBweDsNCn0NCg0KI2NvbnRlbnRfdGFibGUgdHJ7DQogIGJvcmRlci1sZWZ0OiBzb2xpZCAzcHggNDQ0Ow0KICBib3JkZXItYm90dG9tOiBzb2xpZCAxcHggIzMzMzsNCiAgY3Vyc29yOiBwb2ludGVyOw0KfQ0KDQojY29udGVudF90YWJsZSB0cjpob3ZlciB7DQogIGJhY2tncm91bmQtY29sb3I6ICMzMzM7DQp9DQoNCiNjb250ZW50X3RhYmxlIHRkIHsNCg0KICBwYWRkaW5nOiAwcHggMnB4Ow0KfQ0KDQojY29udGVudF90YWJsZSBpbnB1dFt0eXBlPXRleHRdew0KICB3aWR0aDogODAlOw0KICBtaW4td2lkdGg6IDM1cHg7DQogIG1heC13aWR0aDogNjBweDsNCiAgYm9yZGVyOiAwcHg7DQogIGJhY2tncm91bmQtY29sb3I6ICMzMzM7DQogIG1hcmdpbi1sZWZ0OiA1cHg7DQogIHRleHQtYWxpZ246IGxlZnQ7DQp9DQoNCiNjb250ZW50X3RhYmxlIGlucHV0W3R5cGU9Y2hlY2tib3hdew0KICBtYXgtd2lkdGg6IDI1cHg7DQogIG1hcmdpbjogYXV0bzsNCn0NCg0KDQouc2hvd0J1bGsgew0KICBkaXNwbGF5OiBibG9jazsNCn0NCg0KLmhpZGVCdWxrIHsNCiAgZGlzcGxheTogbm9uZTsNCn0NCg0KLm5vQnVsayB7DQoNCn0NCg0KI2NvbnRlbnRfdGFibGUgdHIuYWN0aXZlRVBHew0KICBib3JkZXItbGVmdDogc29saWQgM3B4IGxhd25ncmVlbjsNCn0NCg0KI2NvbnRlbnRfdGFibGUgdHIubm90QWN0aXZlRVBHew0KICBib3JkZXItbGVmdDogc29saWQgM3B4IHJlZDsNCn0NCg0KDQojbG9nU2NyZWVuIHB7DQogIHdoaXRlLXNwYWNlOiBwcmU7DQogIGZvbnQtc2l6ZTogMTBweDsNCiAgLyoNCiAgbGluZS1oZWlnaHQ6IDEuNmVtOw0KICBmb250LWZhbWlseTogIkFyaWFsIiwgc2Fucy1zZXJpZjsNCiAgKi8NCiAgbGV0dGVyLXNwYWNpbmc6IDFweDsNCiAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZTsgDQogIGZvbnQtc2l6ZTogMTJweDsgDQogIGZvbnQtc3R5bGU6IG5vcm1hbDsgDQogIGZvbnQtdmFyaWFudDogbm9ybWFsOyANCiAgbGluZS1oZWlnaHQ6IDEuNmVtOyANCn0NCg0KI3BvcHVwIHsNCiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjQpOw0KICBwb3NpdGlvbjogZml4ZWQ7DQogIGxlZnQ6IDBweDsNCiAgd2lkdGg6IDEwMCU7DQogIHotaW5kZXg6IDEwMDsNCiAgaGVpZ2h0OiAxMDAlOw0KfQ0KDQojbWFwcGluZy1kZXRhaWwsICN1c2VyLWRldGFpbCwgI2ZpbGUtZGV0YWlsLCAjcG9wdXAtY3VzdG9tIHsNCiAgYm94LXNoYWRvdzogMHB4IDVweCA0MHB4ICMwMDA7DQogIG1hcmdpbi10b3A6IDIwcHg7DQogIG1hcmdpbi1sZWZ0OiBhdXRvOw0KICBtYXJnaW4tcmlnaHQ6IGF1dG87DQogIA0KICBtYXgtd2lkdGg6IDYwMHB4Ow0KICBiYWNrZ3JvdW5kLWNvbG9yOiAjMjIyOw0KICBwYWRkaW5nOiAxMHB4Ow0KICBvdmVyZmxvdzphdXRvOw0KfQ0KDQojcG9wdXAtY3VzdG9tIGgzIHsNCiAgdGV4dC1hbGlnbjogY2VudGVyOw0KfQ0KDQojZmlsZS1kZXRhaWwgaW5wdXRbdHlwZT10ZXh0XSB7DQogIHdpZHRoOiAtd2Via2l0LWNhbGMoMTAwJSAtIDIwcHgpOw0KICB3aWR0aDogLW1vei1jYWxjKDEwMCUgLSAyMHB4KTsNCiAgd2lkdGg6IGNhbGMoMTAwJSAtIDIwcHgpOw0KfQ0KDQojbWFwcGluZy1kZXRhaWwgaW1nIHsNCiAgZGlzcGxheTogYmxvY2s7DQogIG1heC1oZWlnaHQ6IDMwcHg7DQogIG1hcmdpbi1ib3R0b206IDIwcHg7DQogIG1hcmdpbi1sZWZ0OiBhdXRvOw0KICBtYXJnaW4tcmlnaHQ6IGF1dG87DQp9DQoNCiNwb3B1cC1jdXN0b20gaW5wdXRbdHlwZT10ZXh0XSwgI3BvcHVwLWN1c3RvbSBpbnB1dFt0eXBlPXBhc3N3b3JkXSwgI21hcHBpbmctZGV0YWlsIGlucHV0W3R5cGU9dGV4dF0sICNjb250ZW50X3NldHRpbmdzIGlucHV0W3R5cGU9dGV4dF0sICNjb250ZW50X3NldHRpbmdzIGlucHV0W3R5cGU9cGFzc3dvcmRdew0KICBib3JkZXI6IHNvbGlkIDFweDsNCiAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDsNCiAgYmFja2dyb3VuZC1jb2xvcjogIzMzMzsNCiAgdGV4dC1hbGlnbjogbGVmdDsNCiAgd2lkdGg6IC13ZWJraXQtY2FsYygxMDAlIC0gMjBweCk7DQogIHdpZHRoOiAgICAtbW96LWNhbGMoMTAwJSAtIDIwcHgpOw0KICB3aWR0aDogICAgICAgICBjYWxjKDEwMCUgLSAyMHB4KTsNCn0NCg0KI3BvcHVwLWN1c3RvbSBpbnB1dFt0eXBlPXRleHRdLm5vdEF2YWlsYWJsZSB7DQogIGJvcmRlci1jb2xvcjogcmVkOw0KICBjb2xvcjogIzY2NjsNCiAgY3Vyc29yOiBub3QtYWxsb3dlZDsNCn0NCg0KI21hcHBpbmctZGV0YWlsLXRhYmxlLCAjdXNlci1kZXRhaWwtdGFibGUgew0KICBkaXNwbGF5OiBpbmxpbmUtdGFibGU7DQogIHdpZHRoOiAxMDAlOw0KfQ0KDQojcG9wdXAtY3VzdG9tIHRhYmxlLCAjY29udGVudF9zZXR0aW5ncyB0YWJsZSB7DQogIGRpc3BsYXk6IGlubGluZS10YWJsZTsNCiAgdGFibGUtbGF5b3V0OiBmaXhlZDsNCiAgd2lkdGg6IDEwMCU7DQp9DQoNCg0KI21hcHBpbmctZGV0YWlsLXRhYmxlIHRkLCAjdXNlci1kZXRhaWwtdGFibGUgdGQgew0KICBwYWRkaW5nOiAxMHB4IDBweDsNCg0KfQ0KDQojbWFwcGluZy1kZXRhaWwtdGFibGUgdGQubGVmdCwgI3VzZXItZGV0YWlsLXRhYmxlIHRkLmxlZnQsICNwb3B1cC1jdXN0b20gdGQubGVmdCB7DQogIHdpZHRoOiAzOCU7DQp9DQoNCi5pbnRlcmFjdGlvbiwgI2ludGVyYWN0aW9uIHsNCiAgbWFyZ2luLXRvcDogMjBweDsNCiAgZGlzcGxheTogaW5saW5lLWZsZXg7DQogIGZsb2F0OiByaWdodDsNCn0NCg0KLmludGVyYWN0aW9uIGlucHV0W3R5cGU9YnV0dG9uXSwgLmludGVyYWN0aW9uIGlucHV0W3R5cGU9c3VibWl0XSB7DQogIGJhY2tncm91bmQtY29sb3I6ICMwMDA7DQogIG1pbi13aWR0aDogMTAwcHg7DQogIG1hcmdpbjogMHB4IDEwcHg7DQogIHRleHQtYWxpZ246IGNlbnRlcjsNCn0NCg0KI25vdGlmaWNhdGlvbiB7DQogIGRpc3BsYXk6IGJsb2NrOw0KICBwb3NpdGlvbjogZml4ZWQ7DQogIHJpZ2h0OiAwcHg7DQogIGhlaWdodDogMTAwJTsNCiAgd2lkdGg6IDI1MHB4Ow0KICANCiAgYmFja2dyb3VuZC1jb2xvcjogIzIyMjsNCiAgYm94LXNoYWRvdzogMHB4IDBweCAyMHB4ICMwMDA7DQp9DQoNCiNub3RpZmljYXRpb24gaDUgew0KICBiYWNrZ3JvdW5kLWNvbG9yOiAjMTIxMjEyOw0KICBwYWRkaW5nOiA1cHggMTBweCA1cHggMTBweDsNCn0NCg0KI25vdGlmaWNhdGlvbiBwcmUgew0KICBwYWRkaW5nOiAwcHggMTBweCAwcHggMTBweDsNCn0NCg0KI25vdGlmaWNhdGlvbiBwIHsNCiAgZm9udC1zaXplOiAxMCBweDsNCiAgbWFyZ2luOiAwcHg7DQogIHBhZGRpbmc6IDBweCAxMHB4IDVweCAxMHB4Ow0KfQ0KDQojbm90aWZpY2F0aW9uIC5lbGVtZW50IHsNCiAgLypwYWRkaW5nOiAwcHggNXB4OyovDQogIG1hcmdpbjogNXB4IDVweDsNCiAgYm9yZGVyLXJhZGl1czogNXB4Ow0KICBiYWNrZ3JvdW5kLWNvbG9yOiAjMTgxODE4Ow0KICBib3JkZXItbGVmdDogMTBweCBzb2xpZCBncmVlbjsNCn0NCg0KDQpAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDYyMHB4KXsNCiAgYm9keSB7DQogICAgd2lkdGg6IDEwMCU7DQogICAgYmFja2dyb3VuZC1jb2xvcjogIzQ0NDsNCiAgfQ0KDQogIGgxIHsNCiAgICBmb250LXNpemU6IDI2cHg7DQogICAgbGV0dGVyLXNwYWNpbmc6IDNweDsNCiAgfQ0KDQogIG5hdiBwIHsNCiAgICBkaXNwbGF5OiBibG9jazsNCiAgfQ0KDQoNCg0KICAjaGVhZGVyX2NvbmZpZyB7DQogICAgZGlzcGxheTogYmxvY2s7DQogICAgaGVpZ2h0OiAxMDBweDsNCiAgICBiYWNrZ3JvdW5kOiB1cmwoIi4uL2ltZy9sb2dvX3dfNjAweDIwMC5wbmciKTsNCiAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0Ow0KICAgIA0KICAgIGJhY2tncm91bmQtc2l6ZTogMzAwcHggMTAwcHg7DQogIH0NCg0KICAjc2NyZWVuTG9nIHsNCiAgICBtYXJnaW4tbGVmdDogMzAwcHg7DQoNCiAgICB0cmFuc2l0aW9uOiBub25lOw0KICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50Ow0KICAgIGJvcmRlci1ib3R0b206IHNvbGlkIDFweCB0cmFuc3BhcmVudDsNCiAgICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAjMjIyOw0KICB9DQoNCiAgI3NldHRpbmdzIHsNCiAgICAvKg0KICAgIGhlaWdodDogLXdlYmtpdC1jYWxjKDEwMCUgLSAxMDBweCk7DQogICAgaGVpZ2h0OiAtbW96LWNhbGMoMTAwJSAtIDEwMHB4KTsNCiAgICBoZWlnaHQ6IGNhbGMoMTAwJSAtIDEwMHB4KTsNCiAgICAqLw0KICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsNCiAgICBvdmVyZmxvdzogYXV0bzsNCiAgfQ0KDQoNCiAgLnNjcmVlbkxvZ0hpZGRlbiB7DQogICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMHB4LCAwcHgpOw0KICB9DQoNCg0KICAjYm94IHsNCiAgICBkaXNwbGF5OiBibG9jazsNCiAgICBtaW4taGVpZ2h0OiA1MDBweDsNCiAgICBtYXgtd2lkdGg6IDUwMHB4Ow0KICAgIG1hcmdpbjogMTBweCBhdXRvOw0KICAgIGJhY2tncm91bmQtY29sb3I6ICM0NDQ7DQogICAgYm94LXNoYWRvdzogMHB4IDVweCA1cHggIzIyMjsNCg0KICAgIGRpc3BsYXk6IGZsZXg7DQogICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsNCiAgfQ0KDQogICNzZXR0aW5ncywgI3NldHRpbmdzLWZvb3RlciB7DQogICAgDQogIH0NCn0NCg==" + webUI["html/img/log.png"] = "iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAAAXNSR0IArs4c6QAAAAlwSFlzAAAsSwAALEsBpT2WqQAABCRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IlhNUCBDb3JlIDUuNC4wIj4KICAgPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIgogICAgICAgICAgICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgICAgICAgICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyI+CiAgICAgICAgIDx0aWZmOlJlc29sdXRpb25Vbml0PjI8L3RpZmY6UmVzb2x1dGlvblVuaXQ+CiAgICAgICAgIDx0aWZmOkNvbXByZXNzaW9uPjU8L3RpZmY6Q29tcHJlc3Npb24+CiAgICAgICAgIDx0aWZmOlhSZXNvbHV0aW9uPjI4ODwvdGlmZjpYUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6T3JpZW50YXRpb24+MTwvdGlmZjpPcmllbnRhdGlvbj4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+Mjg4PC90aWZmOllSZXNvbHV0aW9uPgogICAgICAgICA8ZXhpZjpQaXhlbFhEaW1lbnNpb24+NTA8L2V4aWY6UGl4ZWxYRGltZW5zaW9uPgogICAgICAgICA8ZXhpZjpDb2xvclNwYWNlPjE8L2V4aWY6Q29sb3JTcGFjZT4KICAgICAgICAgPGV4aWY6UGl4ZWxZRGltZW5zaW9uPjUwPC9leGlmOlBpeGVsWURpbWVuc2lvbj4KICAgICAgICAgPGRjOnN1YmplY3Q+CiAgICAgICAgICAgIDxyZGY6QmFnLz4KICAgICAgICAgPC9kYzpzdWJqZWN0PgogICAgICAgICA8eG1wOk1vZGlmeURhdGU+MjAxOC0xMC0xNFQxMToxMDo0MjwveG1wOk1vZGlmeURhdGU+CiAgICAgICAgIDx4bXA6Q3JlYXRvclRvb2w+UGl4ZWxtYXRvciAzLjM8L3htcDpDcmVhdG9yVG9vbD4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgIDwvcmRmOlJERj4KPC94OnhtcG1ldGE+CkP32mEAAANASURBVGgF7ZlPiE1RHMffw1AYhiL5k1HEijJiYaFZiHoyFspW2RFRkkSZGgtFWJIwi9FYmo0VOywkKTbKgjSlWcifRCPX51dv6s2d33md77vvXjfmV9859/7u93x/v98959x73p1KRbAkSargAhgDH0E/qIYkuHYEvAPGvwbmNOEerXM/0Q6BRSFuZj/ix0DaDnvCkGppIucDAe4OhzvkcUO+GaELAf8ux7/b8Zlrr+Pvc3zm6nX8NccXdKmFLHaUPJ/Ruhyu5zNap8Nd6PiCLrUQTyi0Rjy/5/M0Zd+smB7M32XwtgBr07aC6yfSTs7XO77OALfH4VbgHsD/HLytVquJx4nyIdQFBsHftscksK5Z0sGhpuN8Or4Aa5sJFHjtO7G2MjKvvZjN1sglOpSlCMt9LrDZ4S4Hd0Qg24vrK+gAZbPtjMqTdFKhEdkIsYxFWP720JlioUK6pzDL41jtpRIqxOOWxecuB3fhRGT8E85YBK8VygI6GSRTCxlH3TaJgyw4O2678aCxO94LbNPovYDdmOrUukIBN/MqwjJEOwGPOHR31W4VONVCLEBR9lAJpBbSrYhn5K5R+quFnGUOr1ICtMIlxjz6XVb6qot9JeKvCPSAdlQJJHDtd8hOIN0wtRDLxx6Ntr0ulalTq1TJNyYzXUjj3SjD8X87Iva7uR8s5+2bi6FtX1oOgi8g2tSn1g2yPx+t3gIR/c90s1+C1vuO/YkxdWrdjxFtE2dE0VELWaqIZ+QuUfqrhZxmyKUvgEoyE1xizOR4YOI8plXXyAZEbYsyTJvXFsUW+x6wGUSbWogJ237rZHSEgojq1CooLT3MdCH6Pcu3xz8zIq0s9lvc2+sgz6dWH/rnQPB/jlybZGoh99hCHJqk0P6TD0jaI/4b7dVYeXVq2bemokyKpRZiHwWKMimWWshxhryjoEpOKXHUNbIN8WcUc5s2r8Vue7l9oAaiTS3EhDeB6EUYnUlGojq1MobLr3uokB/5hcys7OYWKuRl5nD5Cbi5uYXw0ntPHoay2S8Seuol5RZSJ0r/n/DEc/BdrN9kTZrH7BkwDspgwyQxW6uggU3nHnAXvAG/QZE2SrARsL8hJffwDxM0mNDPvT8IAAAAAElFTkSuQmCC" + webUI["html/img/stream-limit.jpg"] = "/9j/4AAQSkZJRgABAQAAAQABAAD/4gJoSUNDX1BST0ZJTEUAAQEAAAJYbGNtcwQwAABtbnRyUkdCIFhZWiAH4wAFABcAFgAuAAphY3NwQVBQTAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA9tYAAQAAAADTLWxjbXMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAtkZXNjAAABCAAAAEBjcHJ0AAABSAAAAE53dHB0AAABmAAAABRjaGFkAAABrAAAACxyWFlaAAAB2AAAABRiWFlaAAAB7AAAABRnWFlaAAACAAAAABRyVFJDAAACFAAAACBnVFJDAAACFAAAACBiVFJDAAACFAAAACBjaHJtAAACNAAAACRtbHVjAAAAAAAAAAEAAAAMZW5VUwAAACQAAAAcAHMAUgBHAEIAIABJAEUAQwA2ADEAOQA2ADYALQAyAC4AMQAAbWx1YwAAAAAAAAABAAAADGVuVVMAAAAyAAAAHABOAG8AIABjAG8AcAB5AHIAaQBnAGgAdAAsACAAdQBzAGUAIABmAHIAZQBlAGwAeQAAAABYWVogAAAAAAAA9tYAAQAAAADTLXNmMzIAAAAAAAEMSgAABeP///MqAAAHmwAA/Yf///ui///9owAAA9gAAMCUWFlaIAAAAAAAAG+UAAA47gAAA5BYWVogAAAAAAAAJJ0AAA+DAAC2vlhZWiAAAAAAAABipQAAt5AAABjecGFyYQAAAAAAAwAAAAJmZgAA8qcAAA1ZAAAT0AAACltjaHJtAAAAAAADAAAAAKPXAABUewAATM0AAJmaAAAmZgAAD1z/2wBDAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQH/2wBDAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQH/wAARCAQ4B4ADASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD/AD/6KKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigD9PvBf/AARa/wCCrXxF8HeE/iD4G/YM/aL8UeCfHfhrQvGXg/xNpHgia50nxF4W8T6Xa634f13TLkTgXGn6vpN9aahZTgAS21xFIAN1dL/w4o/4LB/9I7/2m/8AwgZ//kiv9b3/AIJp/wDKOX9gH/syf9lX/wBUV4Dr7YoA/wAWr/hxR/wWD/6R3/tN/wDhAz//ACRR/wAOKP8AgsH/ANI7/wBpv/wgZ/8A5Ir/AGlaKAP8Wr/hxR/wWD/6R3/tN/8AhAz/APyRR/w4o/4LB/8ASO/9pv8A8IGf/wCSK/2laKAP8Wr/AIcUf8Fg/wDpHf8AtN/+EDP/APJFH/Dij/gsH/0jv/ab/wDCBn/+SK/2laKAP8Wr/hxR/wAFg/8ApHf+03/4QM//AMkUf8OKP+Cwf/SO/wDab/8ACBn/APkiv9pWigD/ABav+HFH/BYP/pHf+03/AOEDP/8AJFH/AA4o/wCCwf8A0jv/AGm//CBn/wDkiv8AaVooA/xav+HFH/BYP/pHf+03/wCEDP8A/JFH/Dij/gsH/wBI7/2m/wDwgZ//AJIr/aVooA/xav8AhxR/wWD/AOkd/wC03/4QM/8A8kUf8OKP+Cwf/SO/9pv/AMIGf/5Ir/aVooA/xav+HFH/AAWD/wCkd/7Tf/hAz/8AyRR/w4o/4LB/9I7/ANpv/wAIGf8A+SK/2laKAP8AFq/4cUf8Fg/+kd/7Tf8A4QM//wAkUf8ADij/AILB/wDSO/8Aab/8IGf/AOSK/wBpWigD/Fq/4cUf8Fg/+kd/7Tf/AIQM/wD8kUf8OKP+Cwf/AEjv/ab/APCBn/8Akiv9pWigD/Fq/wCHFH/BYP8A6R3/ALTf/hAz/wDyRR/w4o/4LB/9I7/2m/8AwgZ//kiv9pWigD/E88f/APBGT/gqj8K/AnjT4nfEX9hL9ofwf8P/AIdeFPEPjnxz4t1zwTNaaL4X8IeE9Ju9d8SeIdXujORbaZo2j2F5qN9OQRDa20shB24r8yq/28f+Ctf/ACit/wCClX/ZhH7Xv/rP/wAQK/xDqACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooA+j/ANmj9kL9pr9snxbrvgL9lr4K+Ovjn408M+HH8X6/4Y+H2ljWdZ0vwvFqen6NLr1zYrNHMNMh1XVtL0+a7RWihu9RsoZSj3MIf7U/4cUf8Fg/+kd/7Tf/AIQM/wD8kV2v/BAD9sj/AIYi/wCCrf7K/wATNW1X+yvh98QPFw+AHxWklm+z6f8A8IJ8aWg8HjU9Xl3Ls0rwd4wufCPxAuz82B4RQlJACjf7MFAH+LV/w4o/4LB/9I7/ANpv/wAIGf8A+SKP+HFH/BYP/pHf+03/AOEDP/8AJFf7StFAH+LV/wAOKP8AgsH/ANI7/wBpv/wgZ/8A5Io/4cUf8Fg/+kd/7Tf/AIQM/wD8kV/tK0UAf4tX/Dij/gsH/wBI7/2m/wDwgZ//AJIo/wCHFH/BYP8A6R3/ALTf/hAz/wDyRX+0rRQB/gx/HT4CfGb9mT4n+Ivgt+0B8NfFnwj+K3hJNHl8SeA/G2lzaP4i0iLxBomneI9Emu7KbJWLU9C1bTtTs5UZ45rW7idWySB5HX9yX/B69+yL/wAIr8eP2V/22/D2meXpfxb8Da18BfiPd2sOy3i8afDG9k8U+BdR1OXbiXVPFHg/xZrukWzB2P8AZnw0jjZIxEjS/wANtABRRRQAUUUUAFFFFABRRRQAUUUUAPRHldIokeSSR1SONFLu7uQqIiKCzOzEKqqCWJAAJNfq8n/BCv8A4LBSIki/8E7/ANp3a6q67vh/dI21gGG5HnV0bB5V1VlPDAEEVv8A/BBj9kX/AIbU/wCCrf7Ivwo1PTP7T8DeGPiFb/Gz4nRTQ+fpzeAvgpE3xDv9L1hQrEaZ4w1nRdD8BSkAFp/FdvH5kO/zo/8AZ4oA/wAWr/hxR/wWD/6R3/tN/wDhAz//ACRR/wAOKP8AgsH/ANI7/wBpv/wgZ/8A5Ir/AGlaKAP8Wr/hxR/wWD/6R3/tN/8AhAz/APyRR/w4o/4LB/8ASO/9pv8A8IGf/wCSK/2laKAP8Wr/AIcUf8Fg/wDpHf8AtN/+EDP/APJFH/Dij/gsH/0jv/ab/wDCBn/+SK/2laKAP8Kz9p39iX9rL9i7UfCOkftV/AT4ifAfVPHtlq+o+DtO+IejjRb3xDp+gz2Ntq97p1s00k0lrY3GpWUEs7IkbSz+XGztHKI/lqv6F/8Ag5+/bI/4a5/4K2/HDTNF1X+0fh7+y5aaZ+y74KEU261GofDq61K8+KVz5UbG3N0fi9r3jnSTexl5bzSdE0USybLeCGD+eigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigD/cg/4Jp/8o5f2Af+zJ/2Vf8A1RXgOvtivif/AIJp/wDKOX9gH/syf9lX/wBUV4Dr7YoAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigD8+P8AgrX/AMorf+ClX/ZhH7Xv/rP/AMQK/wAQ6v8Abx/4K1/8orf+ClX/AGYR+17/AOs//ECv8Q6gAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAHI7xOkkbtHJGyvHIjFHR0IZXRlIZWVgGVlIIIBBBFf7Z//BIH9sRP28f+Cbv7J37St5qS6n4x8VfC/TPDXxTmMqvc/wDC3PhxNcfD/wCJdxdQ5Mtp/bPi7w3qfiLT7e4zK2jazplyHnhuIrib/Eur/QW/4Mm/2yPteh/tZfsE+JNV3T6PeaT+1D8KNPml3yNp2pDRvht8YrW381t0NrYahB8JtRtLK33Rtda5r980cUjzyzgH98VFFFABRRRQAUUUUAfhR/wcifsif8Ngf8Eif2ndD0vTP7T8dfAvSbH9p74ehYvPuINW+DCXur+MUs4FUzXF/qvwjvfiRoFhb25E819q9skazn/R5v8AHer/AH6NW0rTdd0rU9D1mxtdU0fWdPvNK1bTL6FLmy1HTdRtpLS+sby3kDRz2t3azS29xDIrJLFI6OCrEV/hv/8ABQv9lrUv2J/23/2ov2V9Riuo4Pgv8Y/GHhbwzPe7/tWqeAJdQbWfhrr83mfPu8R/D7VPDOvjcWO3Uh88n32APjeiiigAooooAKKKKACiiigAooooA/0D/wDgyU/ZE+z6T+19+3Xr+mYl1G70D9lz4Y6lJFtdbSwTSfif8YfKaRd0lvd3Vz8HreC4g2xifS9VtneSRHSD++mvyl/4Ih/sif8ADEf/AAS3/ZB+B2o6X/ZXjV/hhYfE/wCKEEsPlahH8S/jDNN8SfFmmaq21WnvfCl14ki8EpKw+Ww8M2MCExQxmv1aoAKKKKACiiigAr5A/b+/ao0X9iP9iv8AaZ/as1xrRk+Cfwi8V+LdCsr5gtrrfjk2R0j4c+GZWLKF/wCEq8f6n4a8NodwxJqqdeh+v6/ib/4PTP2yP+EA/Za/Z5/Yk8N6r5WvftCfEG7+LPxGtLWb98nww+Dogh8OaVqtvuA+weKviT4g03W9Nk2uWvvhfdrujEZEoB/nB+IfEGteLPEGueKvEup3eteIvE2san4g1/WL+Uz32ra1rN7PqOq6nezNzNd399cz3VzKeZJpXc8mseiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigD/cg/4Jp/8AKOX9gH/syf8AZV/9UV4Dr7Yr4n/4Jp/8o5f2Af8Asyf9lX/1RXgOvtigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAPz4/4K1/8orf+ClX/AGYR+17/AOs//ECv8Q6v9vH/AIK1/wDKK3/gpV/2YR+17/6z/wDECv8AEOoAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAr9V/+CJP7ZH/DCn/BT39k348anqv9leA2+Itp8Mvi1NNN5Onp8LPi3FJ8P/F+qaou5RPaeEbfXYPHcMLMB/aXhXT5R80Sg/lRRQB/v8UV+TP/AAQ5/bI/4bo/4JdfsnfG7VNV/tXx9p/w+tfhN8WpZZvO1Fvid8IJG8A+JNV1f5m8u/8AGUWi6d8QFjDECx8W2TgRh/LT9ZqACiiigAooooAK/wA07/g9I/ZE/wCFcftj/AD9sXQNM8jQP2lfhZdfD7xtd28O5H+KPwOnsbO31HUp1A8q41z4a+KvBmkaXDN808HgPUnhZ1tplh/0sa/nd/4Oi/2RP+Gq/wDgkT8cNZ0fS/7R8dfsuapoP7T/AITMUO64TS/ACahpXxSVp0Bnjsbf4ReJvHOuz26hoLi+0HS2nQG3iuLcA/yKaKKKACiiigAooooAKKKKACv02/4I3fsi/wDDcf8AwUy/ZC/Z3vtM/tXwfr3xX0nxh8TrWSLfaS/Cr4XQ3PxJ+IlleyMGhto9d8L+FtQ8NWk04MbaprWn2yxzz3EUEv5k1/eL/wAGTH7In9reP/2uf259f0zdZ+D9A0H9mf4Z6hND5sEmveK7jTviL8VprV3Gy21LQ9E0b4YWSTwlp207xnqVsWhgnkS5AP8AQzooooAKKKKACiiigAr/AB3f+DkD9sj/AIbN/wCCtf7SWvaRqv8Aanw9+BGpWv7MPw1aOf7RaJovwcudR0zxfd2E6MYLnT9d+LV/8RfEWm3dsPJuNM1axZJJ1VbiX/Ux/wCCnv7XVn+wl+wF+1T+1TLdW1trXws+E2vXHgJbsRtBe/FTxOYPBnwo02aKQMJbe/8AiN4h8MW16qxysti9zN5UixMp/wAQK+vr3U7281LUru5v9R1C6uL6/vryaS5u729u5XuLq7uriZnlnubieR5p5pXaSWV2d2ZmJIBVooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooA/sa/Z9/4PGv2mv2ffgJ8EPgJo37HXwJ8QaP8EPhD8NfhDpOv6n43+IFtqWt6b8NfBmi+DLHV9Qt7QfZbe+1K10WK9u4bb/R4riaSOH92q169/xG8ftWf9GRfs9/+F98R/8ACv4h6KAP7eP+I3j9qz/oyL9nv/wvviP/AIUf8RvH7Vn/AEZF+z3/AOF98R/8K/iHooA/t4/4jeP2rP8AoyL9nv8A8L74j/4Uf8RvH7Vn/RkX7Pf/AIX3xH/wr+IeigD+3j/iN4/as/6Mi/Z7/wDC++I/+FH/ABG8ftWf9GRfs9/+F98R/wDCv4h6KAP9GT/gmX/wdhftE/t2/t3fs3/skeLv2T/gt4E8N/G/xpf+F9W8XeHPGPjnUNb0O3tPCviHxCt1p9lqY+wXEzzaNFbslz8gimkYfOq1/cpX+NT/AMG73/KaX9gD/srmtf8AqtPHVf7K1ABRRRQAUUUUAFFFFAH8KH/BRT/g7X/aN/Yq/bf/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WOj6BoOn3Gq6xql5Jg+Xaafp1pcXdw+DshhdsHGKAP8AN2/4PR/2yP8AhY37XHwD/Yq8N6r53h/9m34dT/Er4g2dtNiP/hanxqFlcaTpmqW4Yh7rw38MdB8M6zpUzhWitviTqKICJmJ/itr6y/bt/ah179tX9sf9pP8Aaq8RG6juvjh8XfF/jbS7C9fzLjQfCN1qUln4D8LF98m6Lwl4IsvD/hm2Jkc/ZtJiBdj8x+TaACiiigAooooAK/2Hv+DZvSf7G/4Id/sIWe3Z53hv40atjGM/29+0r8Ztc3f8D/tHfnvuzzmv8eGv9kD/AINw7+HUv+CJ37A1xAqqkfw58c2DBOhm0r40fEvTLhj/ALb3FnKz/wC2WoA/biiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAr/JJ/4Ow/+U2X7Q//AGTv9nj/ANUr4Nr/AFtq/wAkn/g7D/5TZftD/wDZO/2eP/VK+DaAP5vaKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKK6vwJ4G8W/E3xn4X+HngLQdQ8UeNPGmu6b4a8L+HtLi86/1fWtXuo7OwsrdCVRTLPKoeaZ47e3iD3FzLFBFJIt06dSrUhSpQnUq1Zwp06dOMp1KlSpOMKdOEIKUpznOcIQhGMpSlKMYpuST58Xi8LgMJisfjsTh8FgcDhsRjcbjcXXpYXCYPB4OhWxWLxeKxOIqUaGHw2Fw2GxGIxGIr1aVGhQoVq1WpTp0pzj9Y/sAfsT+O/27/wBofw38HvC32vSfCtqY/EXxU8cx2/nWvgfwDZ3MMep6gDIpgm13VHkTR/C2myZ+361dwPcCLSrTVL2z/wBHr4T/AAs8CfBD4beC/hL8MtAtPDHgPwBoNl4c8NaJZj5LWwskOZriZv3t7qV/cvPqOr6ndNJe6rqt3eal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gAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAr+z7/ggp/wTT/4VH4Psf20vjV4f8r4n/ELRXX4K+HtVtsXPgT4d6zbFJvGk8E6brXxN8QbCXZpbIqz6X4Hn/17P4t1GysPyI/4Ip/8E13/AGxfjB/wuX4r6G837N3wa1q0m1S1voD9h+KPxAtlg1HSvAMXmL5V3oOmRyWmt+O8ear6bNpfh14h/wAJK95p/wDedHGkSJFEiRxxoscccahEjRAFRERQFVFUBVVQAoAAAAr+o/AXw29vUpcdZ3h/3FGclw3ha0NK1eDlTq5zOE1rTw8lOjlzaaniFXxkbxw+Hkf4Nfta/psf2Tg8d9FLwvzi2aZlh6E/GrPctxHv5dleIhRxeC8NsPiKFS8Mbm1KWFzPjSMKkZ4bKJZTw5VUKub5vRT6KKK/rU/55AooooAKKKr3d3a2Frc319c29lY2VvNd3l5dzR21raWttG01xc3NxMyQwW8EKPLNNK6RxRozuyqpIG0k22kkm220kkk2222kkkm220kk22km04xlOUYQjKc5yjCEIRlOc5zlGMIQhGMpSnKUoxjGMZSlKUYxjKUoxlYoqlpuo6frGn2Gr6TfWeqaVqlla6jpmp6fcw3un6jp99AlzZX1jeWzyW93Z3dtLHcW1zBJJDPDIksTsjqxu0k1JKUWnFpNNNNNNJppptNNNNNNpppptNNucJ0pzp1ITp1Kc506lOpCdOpTqU5zp1KdSnUjCpTqU6lOdOpTqQhOE4ThOEJwnCBRRRTJCiiigD8if+Cvv/BOiw/bq+A0ms+CNNtIv2i/hFZalrXwv1HENtN4u00p9q1z4X6pdvsRrXxCIRc+Gp7yRIdI8Vw2j/arDS9W8QPcf59Ooaff6Tf32larZXem6npl5c6fqWnX9vNZ31hf2Uz215ZXtpcJHPa3drcRyQXNvPGk0E0bxSIrqyj/AFjK/kJ/4L+/8E2P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/DSP/BUjUvgr4f1X7d4A/Y18AaL8IbSK3m87TpviZ4mSHx78VtVhBYmPULa61fw18PtYjCoEvPh1sCsVMsoB/LfRRRQAUUUUAFFFFABRRRQAUUUUAFf6lH/BsR/wW/h/bw+Ddn+xj+0n4qib9sH4C+E7ePwt4i1m7Vb/APaF+D2gQwWFp4kW4nYPqXxM8BWv2TS/H9u5k1LxFpA03x8kmp3U3jWXRP8ALXr0j4P/ABg+J3wA+J/gf4z/AAY8b6/8OPil8N/EFl4o8E+NvDF61jrWg61YMTFcW8oDxT288TzWWpabew3OmavplzeaVqtneabeXVrMAf72FFfzsf8ABCH/AIL2fCb/AIKr/DKw+GXxPvvDPwy/bk8CaKg8e/DJbqLTdK+K+nadbZuvil8HrW8nM9/pc8cL3fi7wbBJeav4DvTKZvtnhqfStbu/6J6ACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooA+HP8Agp3/AMo1v+Chf/Zjn7WX/qhPH9f4dVf7iv8AwU7/AOUa3/BQv/sxz9rL/wBUJ4/r/DqoAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKtWNje6ne2em6bZ3WoajqF1b2NhYWNvLd3t9e3cqQWtnaWsCST3N1czyRw29vCjyzSukcaM7AFpNtJJttpJJNtttJJJJtttpJJNttJJtpOZzhThKpUlGEIRlOc5yjCEIQjKc5znOUIQhCEJznOc4QhCE5znGMZSj7x+y5+zX8Sf2t/jj4G+BHwr0/7V4l8ZaksdzqVxHK2keFPDtpifxB4v8AEM0SsbbRPD+nCW8uiM3F5MLbStOjudV1CxtLj/SQ/ZX/AGZ/ht+yJ8DPA/wH+Flh9n8O+D9PAvtWniiTV/F3iW8CzeIfGHiGWIYuNZ1+/wB9zMNxgsLUWej6ctvpWm2FrB+fv/BHj/gnDZfs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FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF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FFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFAH//Z" + webUI["html/img/xmltv.png"] = "iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAAAXNSR0IArs4c6QAAAAlwSFlzAAAsSwAALEsBpT2WqQAABCRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IlhNUCBDb3JlIDUuNC4wIj4KICAgPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIgogICAgICAgICAgICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgICAgICAgICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyI+CiAgICAgICAgIDx0aWZmOlJlc29sdXRpb25Vbml0PjI8L3RpZmY6UmVzb2x1dGlvblVuaXQ+CiAgICAgICAgIDx0aWZmOkNvbXByZXNzaW9uPjU8L3RpZmY6Q29tcHJlc3Npb24+CiAgICAgICAgIDx0aWZmOlhSZXNvbHV0aW9uPjI4ODwvdGlmZjpYUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6T3JpZW50YXRpb24+MTwvdGlmZjpPcmllbnRhdGlvbj4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+Mjg4PC90aWZmOllSZXNvbHV0aW9uPgogICAgICAgICA8ZXhpZjpQaXhlbFhEaW1lbnNpb24+NTA8L2V4aWY6UGl4ZWxYRGltZW5zaW9uPgogICAgICAgICA8ZXhpZjpDb2xvclNwYWNlPjE8L2V4aWY6Q29sb3JTcGFjZT4KICAgICAgICAgPGV4aWY6UGl4ZWxZRGltZW5zaW9uPjUwPC9leGlmOlBpeGVsWURpbWVuc2lvbj4KICAgICAgICAgPGRjOnN1YmplY3Q+CiAgICAgICAgICAgIDxyZGY6QmFnLz4KICAgICAgICAgPC9kYzpzdWJqZWN0PgogICAgICAgICA8eG1wOk1vZGlmeURhdGU+MjAxOC0wNy0yOFQyMDowNzozMzwveG1wOk1vZGlmeURhdGU+CiAgICAgICAgIDx4bXA6Q3JlYXRvclRvb2w+UGl4ZWxtYXRvciAzLjM8L3htcDpDcmVhdG9yVG9vbD4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgIDwvcmRmOlJERj4KPC94OnhtcG1ldGE+Co6j9bsAAAGgSURBVGgF7VqxTsNADL0gYGEon8DOwsbAAH8BYmJn6cYIn8DC3h0+oixISFRiYYCJL0AwMMBAeK5w2rpV6uikxHfYknW98+vds18TK21DWGBlWR7CH+BfcEv2AzLP8HP42gLqkyUATuEp2PWEdQjF9ATs1zF/g29Mrxt+vVcUxR3xWxEktzFPJQmivsv8ZSI9DiQyVnxlIonwn6fpiczXpNuVVXH8O+a3Ys3y9NUyuf/NTTbEHZTjUlGSRzSiPhroUIENwB4AS/vS/susDwDhTpYBER9g7wHh5DWyibV9CiitCZbIafDEYUuJHQI3Nr/9ciWsjK6IFSWYhyvClbAyZqOIlYJG84jq7E1Ot97Zm+TinV1TrWwudk9EI3ebGFekzWprzspGEU2ySWCiOrs/s9dr7M/s9fVJJJrNXcsTsfaJc0WsKZINH+/sf1Jqvl1n1f2ZnStRN/pdq646XcSkIh9dkIg4s+IrE3nCpp8RG7f91ns+cCYR/LD4jcAZB42PN+A7/mcQ8ZxJhBYQvMJwBB/BKTFLVoLMC/wCfgyv7BesTKUC2LKM3wAAAABJRU5ErkJggg==" webUI["html/js/classes_ts.js"] = "dmFyIF9fZXh0ZW5kcyA9ICh0aGlzICYmIHRoaXMuX19leHRlbmRzKSB8fCAoZnVuY3Rpb24gKCkgew0KICAgIHZhciBleHRlbmRTdGF0aWNzID0gZnVuY3Rpb24gKGQsIGIpIHsNCiAgICAgICAgZXh0ZW5kU3RhdGljcyA9IE9iamVjdC5zZXRQcm90b3R5cGVPZiB8fA0KICAgICAgICAgICAgKHsgX19wcm90b19fOiBbXSB9IGluc3RhbmNlb2YgQXJyYXkgJiYgZnVuY3Rpb24gKGQsIGIpIHsgZC5fX3Byb3RvX18gPSBiOyB9KSB8fA0KICAgICAgICAgICAgZnVuY3Rpb24gKGQsIGIpIHsgZm9yICh2YXIgcCBpbiBiKSBpZiAoYi5oYXNPd25Qcm9wZXJ0eShwKSkgZFtwXSA9IGJbcF07IH07DQogICAgICAgIHJldHVybiBleHRlbmRTdGF0aWNzKGQsIGIpOw0KICAgIH07DQogICAgcmV0dXJuIGZ1bmN0aW9uIChkLCBiKSB7DQogICAgICAgIGV4dGVuZFN0YXRpY3MoZCwgYik7DQogICAgICAgIGZ1bmN0aW9uIF9fKCkgeyB0aGlzLmNvbnN0cnVjdG9yID0gZDsgfQ0KICAgICAgICBkLnByb3RvdHlwZSA9IGIgPT09IG51bGwgPyBPYmplY3QuY3JlYXRlKGIpIDogKF9fLnByb3RvdHlwZSA9IGIucHJvdG90eXBlLCBuZXcgX18oKSk7DQogICAgfTsNCn0pKCk7DQp2YXIgTWFpbk1lbnUgPSAvKiogQGNsYXNzICovIChmdW5jdGlvbiAoKSB7DQogICAgZnVuY3Rpb24gTWFpbk1lbnUoKSB7DQogICAgICAgIHRoaXMuRG9jdW1lbnRJRCA9ICJtYWluLW1lbnUiOw0KICAgICAgICB0aGlzLkhUTUxUYWcgPSAiTEkiOw0KICAgIH0NCiAgICBNYWluTWVudS5wcm90b3R5cGUuY3JlYXRlID0gZnVuY3Rpb24gKCkgew0KICAgICAgICBjb25zb2xlLmxvZyh0aGlzLkRvY3VtZW50SUQpOw0KICAgIH07DQogICAgcmV0dXJuIE1haW5NZW51Ow0KfSgpKTsNCnZhciBNYWluTWVudUl0ZW0gPSAvKiogQGNsYXNzICovIChmdW5jdGlvbiAoX3N1cGVyKSB7DQogICAgX19leHRlbmRzKE1haW5NZW51SXRlbSwgX3N1cGVyKTsNCiAgICBmdW5jdGlvbiBNYWluTWVudUl0ZW0oKSB7DQogICAgICAgIHJldHVybiBfc3VwZXIgIT09IG51bGwgJiYgX3N1cGVyLmFwcGx5KHRoaXMsIGFyZ3VtZW50cykgfHwgdGhpczsNCiAgICB9DQogICAgTWFpbk1lbnVJdGVtLnByb3RvdHlwZS5jcmVhdGUyID0gZnVuY3Rpb24gKCkgew0KICAgICAgICB2YXIgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQodGhpcy5IVE1MVGFnKTsNCiAgICAgICAgZWxlbWVudC5pbm5lclRleHQgPSB0aGlzLlZhbHVlOw0KICAgICAgICBjb25zb2xlLmxvZyhlbGVtZW50KTsNCiAgICB9Ow0KICAgIHJldHVybiBNYWluTWVudUl0ZW07DQp9KE1haW5NZW51KSk7DQpmdW5jdGlvbiBwYWdlUmVhZHkoKSB7DQogICAgdmFyIGl0ZW0gPSBuZXcgTWFpbk1lbnVJdGVtKCk7DQogICAgaXRlbS5WYWx1ZSA9ICJUZXN0IjsNCiAgICBpdGVtLmNyZWF0ZTIoKTsNCn0NCg==" + webUI["html/js/settings_ts.js"] = "Y2xhc3MgU2V0dGluZ3NDYXRlZ29yeSB7DQogICAgY29uc3RydWN0b3IoKSB7DQogICAgICAgIHRoaXMuRG9jdW1lbnRJRCA9ICJjb250ZW50X3NldHRpbmdzIjsNCiAgICB9DQogICAgY3JlYXRlQ2F0ZWdvcnlIZWFkbGluZSh2YWx1ZSkgew0KICAgICAgICB2YXIgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIkg0Iik7DQogICAgICAgIGVsZW1lbnQuaW5uZXJIVE1MID0gdmFsdWU7DQogICAgICAgIHJldHVybiBlbGVtZW50Ow0KICAgIH0NCiAgICBjcmVhdGVIUigpIHsNCiAgICAgICAgdmFyIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJIUiIpOw0KICAgICAgICByZXR1cm4gZWxlbWVudDsNCiAgICB9DQogICAgY3JlYXRlU2V0dGluZ3Moc2V0dGluZ3NLZXkpIHsNCiAgICAgICAgdmFyIHNldHRpbmcgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJUUiIpOw0KICAgICAgICB2YXIgY29udGVudCA9IG5ldyBQb3B1cENvbnRlbnQoKTsNCiAgICAgICAgdmFyIGRhdGEgPSBTRVJWRVJbInNldHRpbmdzIl1bc2V0dGluZ3NLZXldOw0KICAgICAgICBzd2l0Y2ggKHNldHRpbmdzS2V5KSB7DQogICAgICAgICAgICAvLyBUZXh0IGlucHV0cw0KICAgICAgICAgICAgY2FzZSAidXBkYXRlIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLnVwZGF0ZS50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsICJ1cGRhdGUiLCBkYXRhLnRvU3RyaW5nKCkpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3suc2V0dGluZ3MudXBkYXRlLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJiYWNrdXAucGF0aCI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5iYWNrdXBQYXRoLnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgImJhY2t1cC5wYXRoIiwgZGF0YSk7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5zZXR0aW5ncy5iYWNrdXBQYXRoLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ0ZW1wLnBhdGgiOg0KICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MudGVtcFBhdGgudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCAidGVtcC5wYXRoIiwgZGF0YSk7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5zZXR0aW5ncy50bXBQYXRoLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ1c2VyLmFnZW50IjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLnVzZXJBZ2VudC50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsICJ1c2VyLmFnZW50IiwgZGF0YSk7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5zZXR0aW5ncy51c2VyQWdlbnQucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImJ1ZmZlci50aW1lb3V0IjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmJ1ZmZlclRpbWVvdXQudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCAiYnVmZmVyLnRpbWVvdXQiLCBkYXRhKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnNldHRpbmdzLmJ1ZmZlclRpbWVvdXQucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImZmbXBlZy5wYXRoIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmZmbXBlZ1BhdGgudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCAiZmZtcGVnLnBhdGgiLCBkYXRhKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnNldHRpbmdzLmZmbXBlZ1BhdGgucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImZmbXBlZy5vcHRpb25zIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmZmbXBlZ09wdGlvbnMudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCAiZmZtcGVnLm9wdGlvbnMiLCBkYXRhKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnNldHRpbmdzLmZmbXBlZ09wdGlvbnMucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInZsYy5wYXRoIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLnZsY1BhdGgudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCAidmxjLnBhdGgiLCBkYXRhKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnNldHRpbmdzLnZsY1BhdGgucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInZsYy5vcHRpb25zIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLnZsY09wdGlvbnMudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCAidmxjLm9wdGlvbnMiLCBkYXRhKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnNldHRpbmdzLnZsY09wdGlvbnMucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIC8vIENoZWNrYm94ZXMNCiAgICAgICAgICAgIGNhc2UgImF1dGhlbnRpY2F0aW9uLndlYiI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5hdXRoZW50aWNhdGlvbldFQi50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChzZXR0aW5nc0tleSk7DQogICAgICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGE7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiYXV0aGVudGljYXRpb24ucG1zIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmF1dGhlbnRpY2F0aW9uUE1TLnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KHNldHRpbmdzS2V5KTsNCiAgICAgICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJhdXRoZW50aWNhdGlvbi5tM3UiOg0KICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MuYXV0aGVudGljYXRpb25NM1UudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goc2V0dGluZ3NLZXkpOw0KICAgICAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImF1dGhlbnRpY2F0aW9uLnhtbCI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5hdXRoZW50aWNhdGlvblhNTC50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChzZXR0aW5nc0tleSk7DQogICAgICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGE7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiYXV0aGVudGljYXRpb24uYXBpIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmF1dGhlbnRpY2F0aW9uQVBJLnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KHNldHRpbmdzS2V5KTsNCiAgICAgICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJmaWxlcy51cGRhdGUiOg0KICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MuZmlsZXNVcGRhdGUudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goc2V0dGluZ3NLZXkpOw0KICAgICAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImNhY2hlLmltYWdlcyI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5jYWNoZUltYWdlcy50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChzZXR0aW5nc0tleSk7DQogICAgICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGE7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAieGVwZy5yZXBsYWNlLm1pc3NpbmcuaW1hZ2VzIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLnJlcGxhY2VFbXB0eUltYWdlcy50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChzZXR0aW5nc0tleSk7DQogICAgICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGE7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAieHRldmVBdXRvVXBkYXRlIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLnh0ZXZlQXV0b1VwZGF0ZS50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChzZXR0aW5nc0tleSk7DQogICAgICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGE7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiYXBpIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmFwaS50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChzZXR0aW5nc0tleSk7DQogICAgICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGE7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgLy8gU2VsZWN0DQogICAgICAgICAgICBjYXNlICJ0dW5lciI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy50dW5lci50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIHRleHQgPSBuZXcgQXJyYXkoKTsNCiAgICAgICAgICAgICAgICB2YXIgdmFsdWVzID0gbmV3IEFycmF5KCk7DQogICAgICAgICAgICAgICAgZm9yICh2YXIgaSA9IDE7IGkgPD0gMTAwOyBpKyspIHsNCiAgICAgICAgICAgICAgICAgICAgdGV4dC5wdXNoKGkpOw0KICAgICAgICAgICAgICAgICAgICB2YWx1ZXMucHVzaChpKTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgdmFyIHNlbGVjdCA9IGNvbnRlbnQuY3JlYXRlU2VsZWN0KHRleHQsIHZhbHVlcywgZGF0YSwgc2V0dGluZ3NLZXkpOw0KICAgICAgICAgICAgICAgIHNlbGVjdC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChzZWxlY3QpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiZXBnU291cmNlIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmVwZ1NvdXJjZS50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIHRleHQgPSBbIlBNUyIsICJYRVBHIl07DQogICAgICAgICAgICAgICAgdmFyIHZhbHVlcyA9IFsiUE1TIiwgIlhFUEciXTsNCiAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCBkYXRhLCBzZXR0aW5nc0tleSk7DQogICAgICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKHNlbGVjdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJiYWNrdXAua2VlcCI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5iYWNrdXBLZWVwLnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgdGV4dCA9IFsiNSIsICIxMCIsICIyMCIsICIzMCIsICI0MCIsICI1MCJdOw0KICAgICAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBbIjUiLCAiMTAiLCAiMjAiLCAiMzAiLCAiNDAiLCAiNTAiXTsNCiAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCBkYXRhLCBzZXR0aW5nc0tleSk7DQogICAgICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKHNlbGVjdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJidWZmZXIuc2l6ZS5rYiI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5idWZmZXJTaXplLnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgdGV4dCA9IFsiMC41IE1CIiwgIjEgTUIiLCAiMiBNQiIsICIzIE1CIiwgIjQgTUIiLCAiNSBNQiIsICI2IE1CIiwgIjcgTUIiLCAiOCBNQiJdOw0KICAgICAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBbIjUxMiIsICIxMDI0IiwgIjIwNDgiLCAiMzA3MiIsICI0MDk2IiwgIjUxMjAiLCAiNjE0NCIsICI3MTY4IiwgIjgxOTIiXTsNCiAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCBkYXRhLCBzZXR0aW5nc0tleSk7DQogICAgICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKHNlbGVjdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJidWZmZXIiOg0KICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3Muc3RyZWFtQnVmZmVyaW5nLnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgdGV4dCA9IFsie3suc2V0dGluZ3Muc3RyZWFtQnVmZmVyaW5nLmluZm9fZmFsc2V9fSIsICJ4VGVWZTogKHt7LnNldHRpbmdzLnN0cmVhbUJ1ZmZlcmluZy5pbmZvX3h0ZXZlfX0pIiwgIkZGbXBlZzogKHt7LnNldHRpbmdzLnN0cmVhbUJ1ZmZlcmluZy5pbmZvX2ZmbXBlZ319KSIsICJWTEM6ICh7ey5zZXR0aW5ncy5zdHJlYW1CdWZmZXJpbmcuaW5mb192bGN9fSkiXTsNCiAgICAgICAgICAgICAgICB2YXIgdmFsdWVzID0gWyItIiwgInh0ZXZlIiwgImZmbXBlZyIsICJ2bGMiXTsNCiAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCBkYXRhLCBzZXR0aW5nc0tleSk7DQogICAgICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKHNlbGVjdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ1ZHB4eSI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy51ZHB4eS50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsICJ1ZHB4eSIsIGRhdGEpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3suc2V0dGluZ3MudWRweHkucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgfQ0KICAgICAgICByZXR1cm4gc2V0dGluZzsNCiAgICB9DQogICAgY3JlYXRlRGVzY3JpcHRpb24oc2V0dGluZ3NLZXkpIHsNCiAgICAgICAgdmFyIGRlc2NyaXB0aW9uID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVFIiKTsNCiAgICAgICAgdmFyIHRleHQ7DQogICAgICAgIHN3aXRjaCAoc2V0dGluZ3NLZXkpIHsNCiAgICAgICAgICAgIGNhc2UgImF1dGhlbnRpY2F0aW9uLndlYiI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5hdXRoZW50aWNhdGlvbldFQi5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImF1dGhlbnRpY2F0aW9uLm0zdSI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5hdXRoZW50aWNhdGlvbk0zVS5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImF1dGhlbnRpY2F0aW9uLnBtcyI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5hdXRoZW50aWNhdGlvblBNUy5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImF1dGhlbnRpY2F0aW9uLnhtbCI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5hdXRoZW50aWNhdGlvblhNTC5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImF1dGhlbnRpY2F0aW9uLmFwaSI6DQogICAgICAgICAgICAgICAgaWYgKFNFUlZFUlsic2V0dGluZ3MiXVsiYXV0aGVudGljYXRpb24ud2ViIl0gPT0gdHJ1ZSkgew0KICAgICAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLmF1dGhlbnRpY2F0aW9uQVBJLmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInh0ZXZlQXV0b1VwZGF0ZSI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy54dGV2ZUF1dG9VcGRhdGUuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJiYWNrdXAua2VlcCI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5iYWNrdXBLZWVwLmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiYmFja3VwLnBhdGgiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MuYmFja3VwUGF0aC5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInRlbXAucGF0aCI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy50ZW1wUGF0aC5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImJ1ZmZlciI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5zdHJlYW1CdWZmZXJpbmcuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJidWZmZXIuc2l6ZS5rYiI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5idWZmZXJTaXplLmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiYnVmZmVyLnRpbWVvdXQiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MuYnVmZmVyVGltZW91dC5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInVzZXIuYWdlbnQiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MudXNlckFnZW50LmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiZmZtcGVnLnBhdGgiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MuZmZtcGVnUGF0aC5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImZmbXBlZy5vcHRpb25zIjoNCiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLmZmbXBlZ09wdGlvbnMuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ2bGMucGF0aCI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy52bGNQYXRoLmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAidmxjLm9wdGlvbnMiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MudmxjT3B0aW9ucy5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImVwZ1NvdXJjZSI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5lcGdTb3VyY2UuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ0dW5lciI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy50dW5lci5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInVwZGF0ZSI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy51cGRhdGUuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJhcGkiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MuYXBpLmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiZmlsZXMudXBkYXRlIjoNCiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLmZpbGVzVXBkYXRlLmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiY2FjaGUuaW1hZ2VzIjoNCiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLmNhY2hlSW1hZ2VzLmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAieGVwZy5yZXBsYWNlLm1pc3NpbmcuaW1hZ2VzIjoNCiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLnJlcGxhY2VFbXB0eUltYWdlcy5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInVkcHh5IjoNCiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLnVkcHh5LmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgICAgICB0ZXh0ID0gIiI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIH0NCiAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAiIjsNCiAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICB2YXIgcHJlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiUFJFIik7DQogICAgICAgIHByZS5pbm5lckhUTUwgPSB0ZXh0Ow0KICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKHByZSk7DQogICAgICAgIGRlc2NyaXB0aW9uLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgIGRlc2NyaXB0aW9uLmFwcGVuZENoaWxkKHRkUmlnaHQpOw0KICAgICAgICByZXR1cm4gZGVzY3JpcHRpb247DQogICAgfQ0KfQ0KY2xhc3MgU2V0dGluZ3NDYXRlZ29yeUl0ZW0gZXh0ZW5kcyBTZXR0aW5nc0NhdGVnb3J5IHsNCiAgICBjb25zdHJ1Y3RvcihoZWFkbGluZSwgc2V0dGluZ3NLZXlzKSB7DQogICAgICAgIHN1cGVyKCk7DQogICAgICAgIHRoaXMuaGVhZGxpbmUgPSBoZWFkbGluZTsNCiAgICAgICAgdGhpcy5zZXR0aW5nc0tleXMgPSBzZXR0aW5nc0tleXM7DQogICAgfQ0KICAgIGNyZWF0ZUNhdGVnb3J5KCkgew0KICAgICAgICB2YXIgaGVhZGxpbmUgPSB0aGlzLmNyZWF0ZUNhdGVnb3J5SGVhZGxpbmUodGhpcy5oZWFkbGluZSk7DQogICAgICAgIHZhciBzZXR0aW5nc0tleXMgPSB0aGlzLnNldHRpbmdzS2V5czsNCiAgICAgICAgdmFyIGRvYyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHRoaXMuRG9jdW1lbnRJRCk7DQogICAgICAgIGRvYy5hcHBlbmRDaGlsZChoZWFkbGluZSk7DQogICAgICAgIC8vIENyZWF0ZSBhIHRhYmxlIGZvciB0aGUgY2F0ZWdvcnkNCiAgICAgICAgdmFyIHRhYmxlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEFCTEUiKTsNCiAgICAgICAgdmFyIGtleXMgPSBzZXR0aW5nc0tleXMuc3BsaXQoIiwiKTsNCiAgICAgICAga2V5cy5mb3JFYWNoKHNldHRpbmdzS2V5ID0+IHsNCiAgICAgICAgICAgIHN3aXRjaCAoc2V0dGluZ3NLZXkpIHsNCiAgICAgICAgICAgICAgICBjYXNlICJhdXRoZW50aWNhdGlvbi5wbXMiOg0KICAgICAgICAgICAgICAgIGNhc2UgImF1dGhlbnRpY2F0aW9uLm0zdSI6DQogICAgICAgICAgICAgICAgY2FzZSAiYXV0aGVudGljYXRpb24ueG1sIjoNCiAgICAgICAgICAgICAgICBjYXNlICJhdXRoZW50aWNhdGlvbi5hcGkiOg0KICAgICAgICAgICAgICAgICAgICBpZiAoU0VSVkVSWyJzZXR0aW5ncyJdWyJhdXRoZW50aWNhdGlvbi53ZWIiXSA9PSBmYWxzZSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBkZWZhdWx0Og0KICAgICAgICAgICAgICAgICAgICB2YXIgaXRlbSA9IHRoaXMuY3JlYXRlU2V0dGluZ3Moc2V0dGluZ3NLZXkpOw0KICAgICAgICAgICAgICAgICAgICB2YXIgZGVzY3JpcHRpb24gPSB0aGlzLmNyZWF0ZURlc2NyaXB0aW9uKHNldHRpbmdzS2V5KTsNCiAgICAgICAgICAgICAgICAgICAgdGFibGUuYXBwZW5kQ2hpbGQoaXRlbSk7DQogICAgICAgICAgICAgICAgICAgIHRhYmxlLmFwcGVuZENoaWxkKGRlc2NyaXB0aW9uKTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICB9DQogICAgICAgIH0pOw0KICAgICAgICBkb2MuYXBwZW5kQ2hpbGQodGFibGUpOw0KICAgICAgICBkb2MuYXBwZW5kQ2hpbGQodGhpcy5jcmVhdGVIUigpKTsNCiAgICB9DQp9DQpmdW5jdGlvbiBzaG93U2V0dGluZ3MoKSB7DQogICAgY29uc29sZS5sb2coIlNFVFRJTkdTIik7DQogICAgZm9yIChsZXQgaSA9IDA7IGkgPCBzZXR0aW5nc0NhdGVnb3J5Lmxlbmd0aDsgaSsrKSB7DQogICAgICAgIHNldHRpbmdzQ2F0ZWdvcnlbaV0uY3JlYXRlQ2F0ZWdvcnkoKTsNCiAgICB9DQp9DQpmdW5jdGlvbiBzYXZlU2V0dGluZ3MoKSB7DQogICAgY29uc29sZS5sb2coIlNhdmUgU2V0dGluZ3MiKTsNCiAgICB2YXIgY21kID0gInNhdmVTZXR0aW5ncyI7DQogICAgdmFyIGRpdiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb250ZW50X3NldHRpbmdzIik7DQogICAgdmFyIHNldHRpbmdzID0gZGl2LmdldEVsZW1lbnRzQnlDbGFzc05hbWUoImNoYW5nZWQiKTsNCiAgICB2YXIgbmV3U2V0dGluZ3MgPSBuZXcgT2JqZWN0KCk7DQogICAgZm9yIChsZXQgaSA9IDA7IGkgPCBzZXR0aW5ncy5sZW5ndGg7IGkrKykgew0KICAgICAgICB2YXIgbmFtZTsNCiAgICAgICAgdmFyIHZhbHVlOw0KICAgICAgICBzd2l0Y2ggKHNldHRpbmdzW2ldLnRhZ05hbWUpIHsNCiAgICAgICAgICAgIGNhc2UgIklOUFVUIjoNCiAgICAgICAgICAgICAgICBzd2l0Y2ggKHNldHRpbmdzW2ldLnR5cGUpIHsNCiAgICAgICAgICAgICAgICAgICAgY2FzZSAiY2hlY2tib3giOg0KICAgICAgICAgICAgICAgICAgICAgICAgbmFtZSA9IHNldHRpbmdzW2ldLm5hbWU7DQogICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IHNldHRpbmdzW2ldLmNoZWNrZWQ7DQogICAgICAgICAgICAgICAgICAgICAgICBuZXdTZXR0aW5nc1tuYW1lXSA9IHZhbHVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgICAgIGNhc2UgInRleHQiOg0KICAgICAgICAgICAgICAgICAgICAgICAgbmFtZSA9IHNldHRpbmdzW2ldLm5hbWU7DQogICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IHNldHRpbmdzW2ldLnZhbHVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgc3dpdGNoIChuYW1lKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAidXBkYXRlIjoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSB2YWx1ZS5zcGxpdCgiLCIpOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IHZhbHVlLmZpbHRlcihmdW5jdGlvbiAoZSkgeyByZXR1cm4gZTsgfSk7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgImJ1ZmZlci50aW1lb3V0IjoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSBwYXJzZUZsb2F0KHZhbHVlKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgIG5ld1NldHRpbmdzW25hbWVdID0gdmFsdWU7DQogICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJTRUxFQ1QiOg0KICAgICAgICAgICAgICAgIG5hbWUgPSBzZXR0aW5nc1tpXS5uYW1lOw0KICAgICAgICAgICAgICAgIHZhbHVlID0gc2V0dGluZ3NbaV0udmFsdWU7DQogICAgICAgICAgICAgICAgLy8gSWYgdGhlIHZhbHVlIGlzIGEgbnVtYmVyLCBzdG9yZSBpdCBhcyBhIG51bWJlcg0KICAgICAgICAgICAgICAgIGlmIChpc05hTih2YWx1ZSkpIHsNCiAgICAgICAgICAgICAgICAgICAgbmV3U2V0dGluZ3NbbmFtZV0gPSB2YWx1ZTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgZWxzZSB7DQogICAgICAgICAgICAgICAgICAgIG5ld1NldHRpbmdzW25hbWVdID0gcGFyc2VJbnQodmFsdWUpOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgfQ0KICAgIH0NCiAgICB2YXIgZGF0YSA9IG5ldyBPYmplY3QoKTsNCiAgICBkYXRhWyJzZXR0aW5ncyJdID0gbmV3U2V0dGluZ3M7DQogICAgdmFyIHNlcnZlciA9IG5ldyBTZXJ2ZXIoY21kKTsNCiAgICBzZXJ2ZXIucmVxdWVzdChkYXRhKTsNCn0NCg==" + webUI["html/configuration.html"] = "PCFkb2N0eXBlIGh0bWw+DQo8aHRtbD4NCiAgPGhlYWQ+DQogICAgPG1ldGEgY2hhcnNldD0idXRmLTgiPg0KICAgIDxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgsIGluaXRpYWwtc2NhbGU9MS4wIiAvPiANCiAgICA8dGl0bGU+eFRlVmU8L3RpdGxlPg0KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iY3NzL3NjcmVlbi5jc3MiIHR5cGU9InRleHQvY3NzIj4NCiAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9ImNzcy9iYXNlLmNzcyIgdHlwZT0idGV4dC9jc3MiPg0KICAgIDxzY3JpcHQgbGFuZ3VhZ2U9ImphdmFzY3JpcHQiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJqcy9jb25maWd1cmF0aW9uX3RzLmpzIj48L3NjcmlwdD4NCiAgICA8c2NyaXB0IGxhbmd1YWdlPSJqYXZhc2NyaXB0IiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ianMvbmV0d29ya190cy5qcyI+PC9zY3JpcHQ+DQogICAgPHNjcmlwdCBsYW5ndWFnZT0iamF2YXNjcmlwdCIgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9ImpzL21lbnVfdHMuanMiPjwvc2NyaXB0Pg0KICAgIDxzY3JpcHQgbGFuZ3VhZ2U9ImphdmFzY3JpcHQiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJqcy9zZXR0aW5nc190cy5qcyI+PC9zY3JpcHQ+DQogICAgPHNjcmlwdCBsYW5ndWFnZT0iamF2YXNjcmlwdCIgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9ImpzL2Jhc2VfdHMuanMiPjwvc2NyaXB0Pg0KICA8L2hlYWQ+DQoNCiAgICA8Ym9keSBvbmxvYWQ9ImphdmFzY3JpcHQ6IHJlYWR5Rm9yQ29uZmlndXJhdGlvbigwKTsiPg0KICAgICAgICAgIA0KICAgICAgPGRpdiBpZD0ibG9hZGluZyIgY2xhc3M9ImJsb2NrIj4NCiAgICAgICAgPGRpdiBjbGFzcz0ibG9hZGVyIj48L2Rpdj4NCiAgICAgIDwvZGl2Pg0KDQogICAgICA8ZGl2IGlkPSJoZWFkZXIiIGNsYXNzPSJpbWdDZW50ZXIiPjwvZGl2Pg0KICAgICAgPGRpdiBpZD0iYm94Ij4NCiAgICAgICAgDQogICAgICAgIDx0YWJsZSBpZD0iY2xpZW50SW5mbyIgY2xhc3M9InZpc2libGUiPg0KICAgICAgICAgIDx0cj4NCiAgICAgICAgICAgIDx0ZCBjbGFzcz0idGRLZXkiPlZlcnNpb246PC90ZD4NCiAgICAgICAgICAgIDx0ZCBpZD0idmVyc2lvbiIgY2xhc3M9InRkVmFsIj4mbmJzcDs8L3RkPg0KICAgICAgICAgICAgPHRkIGNsYXNzPSJ0ZEtleSI+T1M6PC90ZD4NCiAgICAgICAgICAgIDx0ZCBpZD0ib3MiIGNsYXNzPSJ0ZFZhbCI+Jm5ic3A7PC90ZD4NCiAgICAgICAgICA8L3RyPg0KICAgICAgICAgIDx0cj4NCiAgICAgICAgICAgIDx0ZCBjbGFzcz0idGRLZXkiPlVVSUQ6PC90ZD4NCiAgICAgICAgICAgIDx0ZCBpZD0idXVpZCIgY2xhc3M9InRkVmFsIj4mbmJzcDs8L3RkPg0KICAgICAgICAgICAgPHRkIGNsYXNzPSJ0ZEtleSI+QXJjaDo8L3RkPg0KICAgICAgICAgICAgPHRkIGlkPSJhcmNoIiBjbGFzcz0idGRWYWwiPiZuYnNwOzwvdGQ+DQogICAgICAgICAgPC90cj4NCiAgICAgICAgICA8dHI+DQogICAgICAgICAgICA8dGQgY2xhc3M9InRkS2V5Ij5TdHJlYW1zOjwvdGQ+DQogICAgICAgICAgICA8dGQgaWQ9InN0cmVhbXMiIGNsYXNzPSJ0ZFZhbCI+Jm5ic3A7PC90ZD4NCiAgICAgICAgICAgIDx0ZCBjbGFzcz0idGRLZXkiPkRWUjo8L3RkPg0KICAgICAgICAgICAgPHRkIGlkPSJEVlIiIGNsYXNzPSJ0ZFZhbCI+Jm5ic3A7PC90ZD4NCiAgICAgICAgICA8L3RyPg0KICAgICAgICA8L3RhYmxlPg0KICAgICAgICANCiAgICAgICAgPGRpdiBpZD0iaGVhZGxpbmUiPg0KICAgICAgICAgIDxoMSBpZD0iaGVhZC10ZXh0IiBjbGFzcz0iY2VudGVyIj5Db25maWd1cmF0aW9uPC9oMT4gICAgICANCiAgICAgICAgPC9kaXY+DQogICAgICAgIDxwIGlkPSJlcnIiIGNsYXNzPSJlcnJvck1zZyBjZW50ZXIiPjwvcD4gICANCiAgICAgICAgPGRpdiBpZD0iY29udGVudCI+DQogICAgICAgICAgICANCiAgICAgICAgPC9kaXY+DQogICAgICAgIDxkaXYgaWQ9ImJveC1mb290ZXIiPg0KICAgICAgICAgIDxpbnB1dCBpZD0ibmV4dCIgY2xhc3M9IiIgdHlwZT0iYnV0dG9uIiBuYW1lPSJuZXh0IiB2YWx1ZT0iTmV4dCIgb25jbGljaz0iamF2YXNjcmlwdDogc2F2ZVdpemFyZCgpOyI+DQogICAgICAgIDwvZGl2Pg0KICAgICAgPC9kaXY+DQogICAgPC9ib2R5Pg0KPC9odG1sPg==" + webUI["html/lang/en.json"] = "ew0KICAibWFpbk1lbnUiOg0KICB7DQogICAgIml0ZW0iOg0KICAgIHsNCiAgICAgICJwbGF5bGlzdCI6ICJQbGF5bGlzdCIsDQogICAgICAicG1zSUQiOiAiUE1TIElEIiwNCiAgICAgICJmaWx0ZXIiOiAiRmlsdGVyIiwNCiAgICAgICJ4bWx0diI6ICJYTUxUViIsDQogICAgICAibWFwcGluZyI6ICJNYXBwaW5nIiwNCiAgICAgICJ1c2VycyI6ICJVc2VycyIsDQogICAgICAic2V0dGluZ3MiOiAiU2V0dGluZ3MiLA0KICAgICAgImxvZyI6ICJMb2ciLA0KICAgICAgImxvZ291dCI6ICJMb2dvdXQiDQogICAgfSwNCiAgICAiaGVhZGxpbmUiOg0KICAgIHsNCiAgICAgICJwbGF5bGlzdCI6ICJMb2NhbCBvciByZW1vdGUgcGxheWxpc3RzIiwNCiAgICAgICJmaWx0ZXIiOiAiRmlsdGVyIHBsYXlsaXN0IiwNCiAgICAgICJ4bWx0diI6ICJMb2NhbCBvciByZW1vdGUgWE1MVFYgZmlsZXMiLA0KICAgICAgIm1hcHBpbmciOiAiTWFwIHBsYXlsaXN0IGNoYW5uZWxzIHRvIEVQRyBjaGFubmVscyIsDQogICAgICAidXNlcnMiOiAiVXNlciBtYW5hZ2VtZW50IiwNCiAgICAgICJzZXR0aW5ncyI6ICJTZXR0aW5ncyIsDQogICAgICAibG9nIjogIkxvZyIsDQogICAgICAibG9nb3V0IjogIkxvZ291dCINCiAgICB9DQogIH0sDQogICJjb25maXJtIjoNCiAgew0KICAgICJyZXN0b3JlIjogIkFsbCBkYXRhIHdpbGwgYmUgcmVwbGFjZWQgd2l0aCB0aG9zZSBmcm9tIHRoZSBiYWNrdXAuIFNob3VsZCB0aGUgZmlsZXMgYmUgcmVzdG9yZWQ/Ig0KICB9LA0KICAiYWxlcnQiOg0KICB7DQogICAgImZpbGVMb2FkaW5nRXJyb3IiOiAiRmlsZSBjb3VsZG4ndCBiZSBsb2FkZWQiLA0KICAgICJpbnZhbGlkQ2hhbm5lbE51bWJlciI6ICJJbnZhbGlkIGNoYW5uZWwgbnVtYmVyIiwNCiAgICAibWlzc2luZ0lucHV0IjogIk1pc3NpbmcgaW5wdXQiDQogIH0sDQogICJidXR0b24iOg0KICB7DQogICAgImJhY2siOiAiQmFjayIsDQogICAgImJhY2t1cCI6ICJCYWNrdXAiLA0KICAgICJidWxrRWRpdCI6ICJCdWxrIEVkaXQiLA0KICAgICJjYW5jZWwiOiAiQ2FuY2VsIiwNCiAgICAiZGVsZXRlIjogIkRlbGV0ZSIsDQogICAgImRvbmUiOiAiRG9uZSIsDQogICAgImxvZ2luIjogIkxvZ2luIiwNCiAgICAibmV3IjogIk5ldyIsDQogICAgIm5leHQiOiAiTmV4dCIsDQogICAgInJlc3RvcmUiOiAiUmVzdG9yZSIsDQogICAgInNhdmUiOiAiU2F2ZSIsDQogICAgInNlYXJjaCI6ICJTZWFyY2giLA0KICAgICJ1cGRhdGUiOiAiVXBkYXRlIiwNCiAgICAiY3JhZXRlQWNjb3VudCI6ICJDcmVhdGUgQWNjb3VudCIsDQogICAgInJlc2V0TG9ncyI6ICJSZXNldCBMb2dzIiwNCiAgICAidXBsb2FkTG9nbyI6ICJVcGxvYWQgTG9nbyINCiAgfSwNCiAgImZpbHRlciI6DQogIHsNCiAgICAidGFibGUiOg0KICAgIHsNCiAgICAgICJuYW1lIjogIkZpbHRlciBOYW1lIiwNCiAgICAgICJ0eXBlIjogIkZpbHRlciBUeXBlIiwNCiAgICAgICJmaWx0ZXIiOiAiRmlsdGVyIg0KICAgIH0sDQogICAgImN1c3RvbSI6ICJDdXN0b20iLA0KICAgICJncm91cCI6ICJNM1UgR3JvdXAiLA0KICAgICJuYW1lIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiRmlsdGVyIE5hbWUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIkZpbHRlciBuYW1lIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAiZGVzY3JpcHRpb24iOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJEZXNjcmlwdGlvbiIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiRGVzY3JpcHRpb24iLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJ0eXBlIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiVHlwZSIsDQogICAgICAiZ3JvdXBUaXRsZSI6ICJHcm91cCBUaXRsZSIsDQogICAgICAiY3VzdG9tRmlsdGVyIjogIkN1c3RvbSBGaWx0ZXIiDQogICAgfSwNCiAgICAiY2FzZVNlbnNpdGl2ZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIkNhc2UgU2Vuc2l0aXZlIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJmaWx0ZXJSdWxlIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiRmlsdGVyIFJ1bGUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIlNwb3J0IHtIRH0gIXtFUyxJVH0iLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJmaWx0ZXJHcm91cCI6DQogICAgew0KICAgICAgInRpdGxlIjogIkdyb3VwIFRpdGxlIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIlNlbGVjdCBhIE0zVSBncm91cC4gKENvdW50ZXIpPGJyPkNoYW5naW5nIHRoZSBncm91cCB0aXRsZSBpbiB0aGUgTTNVIGludmFsaWRhdGVzIHRoZSBmaWx0ZXIuIg0KICAgIH0sDQogICAgImluY2x1ZGUiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJJbmNsdWRlIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJGSEQsVUhEIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJDaGFubmVsIG5hbWUgbXVzdCBpbmNsdWRlLjxicj4oQ29tbWEgc2VwYXJhdGVkKSBDb21tYSBtZWFucyBvciINCiAgICB9LA0KICAgICJleGNsdWRlIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiRXhjbHVkZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiRVMsSVQiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIkNoYW5uZWwgbmFtZSBtdXN0IG5vdCBjb250YWluLjxicj4oQ29tbWEgc2VwYXJhdGVkKSBDb21tYSBtZWFucyBvciINCiAgICB9LA0KICAgICJwcmVzZXJ2ZU1hcHBpbmciOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJQcmVzZXJ2ZSBFeGlzdGluZyBNM1U8YnI+Q2hhbm5lbCBOdW1iZXJzIiwNCiAgICAgICJwYWxjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIlByZXNlcnZlIGV4aXN0aW5nIE0zVSBwbGF5bGlzdCBjaGFubmVsIG51bWJlcnM/Ig0KICAgIH0sDQogICAgInN0YXJ0aW5nQ2hhbm5lbCI6DQogICAgew0KICAgICAgInRpdGxlIjogIlN0YXJ0aW5nIENoYW5uZWwgTnVtYmVyIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJkZWZhdWx0TWlzc2luZ0VQRyI6DQogICAgew0KICAgICAgInRpdGxlIjogIkZpbGwgTWlzc2luZyBFUEcgRGF0YSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJXaGVuIHRoZXJlIGlzIG5vIG1hdGNoaW5nIEVQRyBkYXRhIGZvciBjaGFubmVsLCA8YnI+YXV0b2ZpbGwgd2l0aCB4VGVWZSBkdW1teSBFUEcgZGF0YT8iDQogICAgfQ0KDQogIH0sDQogICJwbGF5bGlzdCI6DQogIHsNCiAgICAidGFibGUiOg0KICAgIHsNCiAgICAgICJwbGF5bGlzdCI6ICJQbGF5bGlzdCIsDQogICAgICAidHVuZXIiOiAiVHVuZXIiLA0KICAgICAgImxhc3RVcGRhdGUiOiAiTGFzdCBVcGRhdGUiLA0KICAgICAgImF2YWlsYWJpbGl0eSI6ICJBdmFpbGFiaWxpdHkiLA0KICAgICAgInR5cGUiOiAiVHlwZSIsDQogICAgICAic3RyZWFtcyI6ICJTdHJlYW1zIiwNCiAgICAgICJncm91cFRpdGxlIjogImdyb3VwLXRpdGxlIiwNCiAgICAgICJ0dmdJRCI6ICJ0dmctaWQiLA0KICAgICAgInVuaXF1ZUlEIjogIlVuaXF1ZSBJRCINCiAgICB9LA0KICAgICJwbGF5bGlzdFR5cGUiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJQbGF5bGlzdCB0eXBlIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJ0eXBlIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiVHlwZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAibmFtZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIk5hbWUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIlBsYXlsaXN0IG5hbWUiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJkZXNjcmlwdGlvbiI6DQogICAgew0KICAgICAgInRpdGxlIjogIkRlc2NyaXB0aW9uIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJEZXNjcmlwdGlvbiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgImZpbGVNM1UiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJNM1UgRmlsZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiRmlsZSBwYXRoIG9yIFVSTCBvZiB0aGUgTTNVIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAiZmlsZUhESFIiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJIREhvbWVSdW4gSVAiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIklQIGFkZHJlc3MgYW5kIHBvcnQgKDE5Mi4xNjguMS4xMDo1MDA0KSIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgInR1bmVyIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiVHVuZXIgLyBTdHJlYW1zIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIk51bWJlciBvZiBwYXJhbGxlbCBjb25uZWN0aW9ucyB0aGF0IGNhbiBiZSBlc3RhYmxpc2hlZCB0byB0aGUgcHJvdmlkZXIuIDxicj5Pbmx5IGF2YWlsYWJsZSB3aXRoIGFjdGl2YXRlZCBidWZmZXIuPGJyPk5ldyBzZXR0aW5ncyB3aWxsIG9ubHkgYmUgYXBwbGllZCBhZnRlciBxdWl0dGluZyBhbGwgc3RyZWFtcy4iDQogICAgfQ0KICB9LA0KICAieG1sdHYiOg0KICB7DQogICAgInRhYmxlIjoNCiAgICB7DQogICAgICAiZ3VpZGUiOiAiR3VpZGUiLA0KICAgICAgImxhc3RVcGRhdGUiOiAiTGFzdCBVcGRhdGUiLA0KICAgICAgImF2YWlsYWJpbGl0eSI6ICJBdmFpbGFiaWxpdHkiLA0KICAgICAgImNoYW5uZWxzIjogIkNoYW5uZWxzIiwNCiAgICAgICJwcm9ncmFtcyI6ICJQcm9ncmFtcyINCiAgICB9LA0KICAgICJuYW1lIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiTmFtZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiR3VpZGUgbmFtZSIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgImRlc2NyaXB0aW9uIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiRGVzY3JpcHRpb24iLA0KICAgICAgInBsYWNlaG9sZGVyIjogIkRlc2NyaXB0aW9uIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAiZmlsZVhNTFRWIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiWE1MVFYgRmlsZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiRmlsZSBwYXRoIG9yIFVSTCBvZiB0aGUgWE1MVFYiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9DQogIH0sDQogICJtYXBwaW5nIjoNCiAgew0KICAgICJ0YWJsZSI6DQogICAgew0KICAgICAgImNoTm8iOiAiQ2guIE5vLiIsDQogICAgICAibG9nbyI6ICJMb2dvIiwNCiAgICAgICJjaGFubmVsTmFtZSI6ICJDaGFubmVsIE5hbWUiLA0KICAgICAgInBsYXlsaXN0IjogIlBsYXlsaXN0IiwNCiAgICAgICJncm91cFRpdGxlIjogIkdyb3VwIFRpdGxlIiwNCiAgICAgICJ4bWx0dkZpbGUiOiAiWE1MVFYgRmlsZSIsDQogICAgICAieG1sdHZJRCI6ICJYTUxUViBJRCIsDQogICAgICAidGltZXNoaWZ0IjogIlRpbWVzaGlmdCINCiAgICB9LA0KICAgICJhY3RpdmUiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJBY3RpdmUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgImNoYW5uZWxOYW1lIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiQ2hhbm5lbCBOYW1lIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJkZXNjcmlwdGlvbiI6DQogICAgew0KICAgICAgInRpdGxlIjogIkNoYW5uZWwgRGVzY3JpcHRpb24iLA0KICAgICAgInBsYWNlaG9sZGVyIjogIlVzZWQgYnkgdGhlIER1bW15IGFzIGFuIFhNTCBkZXNjcmlwdGlvbiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgInVwZGF0ZUNoYW5uZWxOYW1lIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiVXBkYXRlIENoYW5uZWwgTmFtZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAiY2hhbm5lbExvZ28iOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJMb2dvIFVSTCIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAidXBkYXRlQ2hhbm5lbExvZ28iOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJVcGRhdGUgQ2hhbm5lbCBMb2dvIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJlcGdDYXRlZ29yeSI6DQogICAgew0KICAgICAgInRpdGxlIjogIkVQRyBDYXRlZ29yeSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAibTN1R3JvdXBUaXRsZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIkdyb3VwIFRpdGxlICh4dGV2ZS5tM3UpIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJ4bWx0dkZpbGUiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJYTUxUViBGaWxlIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJ4bWx0dkNoYW5uZWwiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJYTUxUViBDaGFubmVsIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJ0aW1lc2hpZnQiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJUaW1lc2hpZnQiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIjAiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9DQogIH0sDQogICJ1c2VycyI6DQogIHsNCiAgICAidGFibGUiOg0KICAgIHsNCiAgICAgICJ1c2VybmFtZSI6ICJVc2VybmFtZSIsDQogICAgICAicGFzc3dvcmQiOiAiUGFzc3dvcmQiLA0KICAgICAgIndlYiI6ICJXRUIiLA0KICAgICAgInBtcyI6ICJQTVMiLA0KICAgICAgIm0zdSI6ICJNM1UiLA0KICAgICAgInhtbCI6ICJYTUwiLA0KICAgICAgImFwaSI6ICJBUEkiDQogICAgfSwNCiAgICAidXNlcm5hbWUiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJVc2VybmFtZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiVXNlcm5hbWUiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJwYXNzd29yZCI6DQogICAgew0KICAgICAgInRpdGxlIjogIlBhc3N3b3JkIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJQYXNzd29yZCIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgImNvbmZpcm0iOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJDb25maXJtIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJQYXNzd29yZCBjb25maXJtIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAid2ViIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiV2ViIEFjY2VzcyIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAicG1zIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiUE1TIEFjY2VzcyIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAibTN1IjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiTTNVIEFjY2VzcyIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAieG1sIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiWE1MIEFjY2VzcyIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAiYXBpIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiQVBJIEFjY2VzcyIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfQ0KICB9LA0KICAic2V0dGluZ3MiOg0KICB7DQogICAgImNhdGVnb3J5IjoNCiAgICB7DQogICAgICAiZ2VuZXJhbCI6ICJHZW5lcmFsIiwNCiAgICAgICJmaWxlcyI6ICJGaWxlcyIsDQogICAgICAic3RyZWFtaW5nIjogIlN0cmVhbWluZyIsDQogICAgICAiYmFja3VwIjogIkJhY2t1cCIsDQogICAgICAiYXV0aGVudGljYXRpb24iOiAiQXV0aGVudGljYXRpb24iDQogICAgfSwNCiAgICAidXBkYXRlIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiU2NoZWR1bGUgZm9yIHVwZGF0aW5nIChQbGF5bGlzdCwgWE1MVFYsIEJhY2t1cCkiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIjAwMDAsMTAwMCwyMDAwIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJUaW1lIGluIDI0IGhvdXIgZm9ybWF0ICgwODAwID0gODowMCBhbSkuIE1vcmUgdGltZXMgY2FuIGJlIGVudGVyZWQgY29tbWEgc2VwYXJhdGVkLiBMZWF2ZSB0aGlzIGZpZWxkIGVtcHR5IGlmIG5vIHVwZGF0ZXMgYXJlIHRvIGJlIGNhcnJpZWQgb3V0LiINCiAgICB9LA0KICAgICJhcGkiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJBUEkgSW50ZXJmYWNlIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJWaWEgQVBJIGludGVyZmFjZSBpdCBpcyBwb3NzaWJsZSB0byBzZW5kIGNvbW1hbmRzIHRvIHhUZVZlLiBBUEkgZG9jdW1lbnRhdGlvbiBpcyA8YSBocmVmPSdodHRwczovL2dpdGh1Yi5jb20veHRldmUtcHJvamVjdC94VGVWZS1Eb2N1bWVudGF0aW9uL2Jsb2IvbWFzdGVyL2VuL2NvbmZpZ3VyYXRpb24ubWQjYXBpJz5oZXJlPC9hPiINCiAgICB9LA0KICAgICJlcGdTb3VyY2UiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJFUEcgU291cmNlIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJQTVM6PGJyPi0gVXNlIEVQRyBkYXRhIGZyb20gUGxleCBvciBFbWJ5IDxicj48YnI+WEVQRzo8YnI+LSBVc2Ugb2Ygb25lIG9yIG1vcmUgWE1MVFYgZmlsZXM8YnI+LSBDaGFubmVsIG1hbmFnZW1lbnQ8YnI+LSBNM1UgLyBYTUxUViBleHBvcnQgKEhUVFAgbGluayBmb3IgSVBUViBhcHBzKSINCiAgICB9LA0KICAgICJ0dW5lciI6DQogICAgew0KICAgICAgInRpdGxlIjogIk51bWJlciBvZiBUdW5lcnMiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIk51bWJlciBvZiBwYXJhbGxlbCBjb25uZWN0aW9ucyB0aGF0IGNhbiBiZSBlc3RhYmxpc2hlZCB0byB0aGUgcHJvdmlkZXIuPGJyPkF2YWlsYWJsZSBmb3I6IFBsZXgsIEVtYnkgKEhESFIpLCBNM1UgKHdpdGggYWN0aXZlIGJ1ZmZlcikuPGJyPkFmdGVyIGEgY2hhbmdlLCB4VGVWZSBtdXN0IGJlIGRlbGV0ZSBpbiB0aGUgUGxleCAvIEVtYnkgRFZSIHNldHRpbmdzIGFuZCBzZXQgdXAgYWdhaW4uIg0KICAgIH0sDQogICAgImZpbGVzVXBkYXRlIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiVXBkYXRlcyBhbGwgZmlsZXMgYXQgc3RhcnR1cCIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiVXBkYXRlcyBhbGwgcGxheWxpc3RzLCB0dW5lciBhbmQgWE1MVFYgZmlsZXMgYXQgc3RhcnR1cC4iDQogICAgfSwNCiAgICAiY2FjaGVJbWFnZXMiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJJbWFnZSBDYWNoaW5nIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJBbGwgaW1hZ2VzIGZyb20gdGhlIFhNTFRWIGZpbGUgYXJlIGNhY2hlZCwgYWxsb3dpbmcgZmFzdGVyIHJlbmRlcmluZyBvZiB0aGUgZ3JpZCBpbiB0aGUgY2xpZW50Ljxicj5Eb3dubG9hZGluZyB0aGUgaW1hZ2VzIG1heSB0YWtlIGEgd2hpbGUgYW5kIHdpbGwgYmUgZG9uZSBpbiB0aGUgYmFja2dyb3VuZC4iDQogICAgfSwNCiAgICAicmVwbGFjZUVtcHR5SW1hZ2VzIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiUmVwbGFjZSBtaXNzaW5nIHByb2dyYW0gaW1hZ2VzIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJJZiB0aGUgcG9zdGVyIGluIHRoZSBYTUxUViBwcm9ncmFtIGlzIG1pc3NpbmcsIHRoZSBjaGFubmVsIGxvZ28gd2lsbCBiZSB1c2VkLiINCiAgICB9LA0KICAgICJ4dGV2ZUF1dG9VcGRhdGUiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJBdXRvbWF0aWMgdXBkYXRlIG9mIHhUZVZlIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJJZiBhIG5ldyB2ZXJzaW9uIG9mIHhUZVZlIGlzIGF2YWlsYWJsZSwgaXQgd2lsbCBiZSBhdXRvbWF0aWNhbGx5IGluc3RhbGxlZC4gVGhlIHVwZGF0ZXMgYXJlIGRvd25sb2FkZWQgZnJvbSBHaXRIdWIuIg0KICAgIH0sDQogICAgInN0cmVhbUJ1ZmZlcmluZyI6DQogICAgew0KICAgICAgInRpdGxlIjogIlN0cmVhbSBCdWZmZXIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIkZ1bmN0aW9ucyBvZiB0aGUgYnVmZmVyOjxicj4tIFRoZSBzdHJlYW0gaXMgcGFzc2VkIGZyb20geFRlVmUsIEZGbXBlZyBvciBWTEMgdG8gUGxleCwgRW1ieSBvciBNM1UgUGxheWVyPGJyPi0gU21hbGwgamVya2luZyBvZiB0aGUgc3RyZWFtcyBjYW4gYmUgY29tcGVuc2F0ZWQ8YnI+LSBITFMgLyBNM1U4IHN1cHBvcnQ8YnI+LSBSVFAgLyBSVFBTIHN1cHBvcnQgKG9ubHkgRkZtcGVnIG9yIFZMQyk8YnI+LSBSZS1zdHJlYW1pbmc8YnI+LSBTZXBhcmF0ZSB0dW5lciBsaW1pdCBmb3IgZWFjaCBwbGF5bGlzdCIsDQogICAgICAiaW5mb19mYWxzZSI6ICJObyBCdWZmZXIgKENsaWVudCBjb25uZWN0cyB0byB0aGUgc3RyZWFtaW5nIHNlcnZlcikiLA0KICAgICAgImluZm9feHRldmUiOiAieFRlVmUgY29ubmVjdHMgdG8gdGhlIHN0cmVhbWluZyBzZXJ2ZXIiLA0KICAgICAgImluZm9fZmZtcGVnIjogIkZGbXBlZyBjb25uZWN0cyB0byB0aGUgc3RyZWFtaW5nIHNlcnZlciIsDQogICAgICAiaW5mb192bGMiOiAiVkxDIGNvbm5lY3RzIHRvIHRoZSBzdHJlYW1pbmcgc2VydmVyIg0KDQogICAgfSwNCiAgICAidWRweHkiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJVRFB4eSBhZGRyZXNzIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJUaGUgYWRkcmVzcyBvZiB5b3VyIFVEUHh5IHNlcnZlci4gSWYgc2V0LCBhbmQgdGhlIGNoYW5uZWwgVVJMcyBpbiB0aGUgbTN1IGlzIG11bHRpY2FzdCwgeFRlVmUgd2lsbCByZXdyaXRlIGl0IHNvIHRoYXQgaXQgaXMgYWNjZXNzZWQgdmlhIHRoZSBVRFB4eSBzZXJ2aWNlLiIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiaG9zdDpwb3J0Ig0KICAgIH0sDQogICAgImZmbXBlZ1BhdGgiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJGRm1wZWcgQmluYXJ5IFBhdGgiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIlBhdGggdG8gRkZtcGVnIGJpbmFyeS4iLA0KICAgICAgInBsYWNlaG9sZGVyIjogIi9wYXRoL3RvL2ZmbXBlZyINCiAgICB9LA0KICAgICJmZm1wZWdPcHRpb25zIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiRkZtcGVnIE9wdGlvbnMiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIkZGbXBlZyBvcHRpb25zLjxicj5Pbmx5IGNoYW5nZSBpZiB5b3Uga25vdyB3aGF0IHlvdSBhcmUgZG9pbmcuPGJyPkxlYXZlIGJsYW5rIHRvIHNldCBkZWZhdWx0IHNldHRpbmdzLiIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiTGVhdmUgYmxhbmsgdG8gc2V0IGRlZmF1bHQgc2V0dGluZ3MiDQogICAgfSwNCiAgICAidmxjUGF0aCI6DQogICAgew0KICAgICAgInRpdGxlIjogIlZMQyAvIENWTEMgQmluYXJ5IFBhdGgiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIlBhdGggdG8gVkxDIC8gQ1ZMQyBiaW5hcnkuIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIvcGF0aC90by9jdmxjIg0KICAgIH0sDQogICAgInZsY09wdGlvbnMiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJWTEMgLyBDVkxDIE9wdGlvbnMiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIlZMQyAvIENWTEMgb3B0aW9ucy48YnI+T25seSBjaGFuZ2UgaWYgeW91IGtub3cgd2hhdCB5b3UgYXJlIGRvaW5nLjxicj5MZWF2ZSBibGFuayB0byBzZXQgZGVmYXVsdCBzZXR0aW5ncy4iLA0KICAgICAgInBsYWNlaG9sZGVyIjogIkxlYXZlIGJsYW5rIHRvIHNldCBkZWZhdWx0IHNldHRpbmdzIg0KICAgIH0sDQogICAgImJ1ZmZlclNpemUiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJCdWZmZXIgU2l6ZSIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiQnVmZmVyIHNpemUgaW4gTUIuPGJyPk0zVTg6IElmIHRoZSBUUyBzZWdtZW50IHNtYWxsZXIgdGhlbiB0aGUgYnVmZmVyIHNpemUsIHRoZSBmaWxlIHNpemUgb2YgdGhlIHNlZ21lbnQgaXMgdXNlZC4iDQogICAgfSwNCiAgICAiYnVmZmVyVGltZW91dCI6DQogICAgew0KICAgICAgInRpdGxlIjogIlRpbWVvdXQgZm9yIG5ldyBjbGllbnQgY29ubmVjdGlvbnMiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIlRoZSB4VGVWZSBidWZmZXIgd2FpdHMgdW50aWwgbmV3IGNsaWVudCBjb25uZWN0aW9ucyBhcmUgZXN0YWJsaXNoZWQuIEhlbHBmdWwgZm9yIGZhc3QgY2hhbm5lbCBzd2l0Y2hpbmcuIFZhbHVlIGluIG1pbGxpc2Vjb25kcy4iLA0KICAgICAgInBsYWNlaG9sZGVyIjogIjEwMCINCiAgICB9LA0KICAgICJ1c2VyQWdlbnQiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJVc2VyIEFnZW50IiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJVc2VyIEFnZW50IGZvciBIVFRQIHJlcXVlc3RzLiBGb3IgZXZlcnkgSFRUUCBjb25uZWN0aW9uLCB0aGlzIHZhbHVlIGlzIHVzZWQgZm9yIHRoZSB1c2VyIGFnZW50LiBTaG91bGQgb25seSBiZSBjaGFuZ2VkIGlmIHhUZVZlIGlzIGJsb2NrZWQuIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJ4VGVWZSINCiAgICB9LA0KICAgICJiYWNrdXBQYXRoIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiTG9jYXRpb24gZm9yIGF1dG9tYXRpYyBiYWNrdXBzIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIvbW50L2RhdGEvYmFja3VwL3h0ZXZlLyIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiQmVmb3JlIGFueSB1cGRhdGUgb2YgdGhlIHByb3ZpZGVyIGRhdGEgYnkgdGhlIHNjaGVkdWxlLCB4VGVWZSBjcmVhdGVzIGEgYmFja3VwLiBUaGUgcGF0aCBmb3IgdGhlIGF1dG9tYXRpYyBiYWNrdXBzIGNhbiBiZSBjaGFuZ2VkLiB4VGVWZSByZXF1aXJlcyB3cml0ZSBwZXJtaXNzaW9uIGZvciB0aGlzIGZvbGRlci4iDQogICAgfSwNCiAgICAidGVtcFBhdGgiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJMb2NhdGlvbiBmb3IgdGhlIHRlbXBvcmFyeSBmaWxlcyIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiL3RtcC94dGV2ZS8iLA0KICAgICAgImRlc2NyaXB0aW9uIjogIkxvY2F0aW9uIGZvciB0aGUgYnVmZmVyIGZpbGVzLiINCiAgICB9LA0KICAgICJiYWNrdXBLZWVwIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiTnVtYmVyIG9mIGJhY2t1cHMgdG8ga2VlcCIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiTnVtYmVyIG9mIGJhY2t1cHMgdG8ga2VlcC4gT2xkZXIgYmFja3VwcyBhcmUgYXV0b21hdGljYWxseSBkZWxldGVkLiINCiAgICB9LA0KICAgICJhdXRoZW50aWNhdGlvbldFQiI6DQogICAgew0KICAgICAgInRpdGxlIjogIldFQiBBdXRoZW50aWNhdGlvbiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiQWNjZXNzIHRvIHRoZSB3ZWIgaW50ZXJmYWNlIG9ubHkgcG9zc2libGUgd2l0aCBjcmVkZW50aWFscy4iDQogICAgfSwNCiAgICAiYXV0aGVudGljYXRpb25QTVMiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJQTVMgQXV0aGVudGljYXRpb24iLA0KICAgICAgImRlc2NyaXB0aW9uIjogIlBsZXggcmVxdWVzdHMgYXJlIG9ubHkgcG9zc2libGUgd2l0aCBhdXRoZW50aWNhdGlvbi4gPGJyPjxiPldhcm5pbmchISE8L2I+IEFmdGVyIGFjdGl2YXRpbmcgdGhpcyBmdW5jdGlvbiB4VGVWZSBtdXN0IGJlIGRlbGV0ZSBpbiB0aGUgUE1TIERWUiBzZXR0aW5ncyBhbmQgc2V0IHVwIGFnYWluLiINCiAgICB9LA0KICAgICJhdXRoZW50aWNhdGlvbk0zVSI6DQogICAgew0KICAgICAgInRpdGxlIjogIk0zVSBBdXRoZW50aWNhdGlvbiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiRG93bmxvYWRpbmcgdGhlIHh0ZXZlLm0zdSBmaWxlIHZpYSBhbiBIVFRQIHJlcXVlc3QgaXMgb25seSBwb3NzaWJsZSB3aXRoIGF1dGhlbnRpY2F0aW9uLiINCiAgICB9LA0KICAgICJhdXRoZW50aWNhdGlvblhNTCI6DQogICAgew0KICAgICAgInRpdGxlIjogIlhNTCBBdXRoZW50aWNhdGlvbiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiRG93bmxvYWRpbmcgdGhlIHh0ZXZlLnhtbCBmaWxlIHZpYSBhbiBIVFRQIHJlcXVlc3QgaXMgb25seSBwb3NzaWJsZSB3aXRoIGF1dGhlbnRpY2F0aW9uIg0KICAgIH0sDQogICAgImF1dGhlbnRpY2F0aW9uQVBJIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiQVBJIEF1dGhlbnRpY2F0aW9uIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJBY2Nlc3MgdG8gdGhlIEFQSSBpbnRlcmZhY2UgaXMgb25seSBwb3NzaWJsZSB3aXRoIGF1dGhlbnRpY2F0aW9uLiINCiAgICB9DQogIH0sDQogICJ3aXphcmQiOg0KICB7DQogICAgImVwZ1NvdXJjZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIkVQRyBTb3VyY2UiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIlBNUzo8YnI+LSBVc2UgRVBHIGRhdGEgZnJvbSBQbGV4IG9yIEVtYnkgPGJyPjxicj5YRVBHOjxicj4tIFVzZSBvZiBvbmUgb3IgbW9yZSBYTUxUViBmaWxlczxicj4tIENoYW5uZWwgbWFuYWdlbWVudDxicj4tIE0zVSAvIFhNTFRWIGV4cG9ydCAoSFRUUCBsaW5rIGZvciBJUFRWIGFwcHMpIg0KICAgIH0sDQogICAgInR1bmVyIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiTnVtYmVyIG9mIHR1bmVycyIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiTnVtYmVyIG9mIHBhcmFsbGVsIGNvbm5lY3Rpb25zIHRoYXQgY2FuIGJlIGVzdGFibGlzaGVkIHRvIHRoZSBwcm92aWRlci48YnI+QXZhaWxhYmxlIGZvcjogUGxleCwgRW1ieSAoSERIUiksIE0zVSAod2l0aCBhY3RpdmUgYnVmZmVyKS48YnI+QWZ0ZXIgYSBjaGFuZ2UsIHhUZVZlIG11c3QgYmUgZGVsZXRlIGluIHRoZSBQbGV4IC8gRW1ieSBEVlIgc2V0dGluZ3MgYW5kIHNldCB1cCBhZ2Fpbi4iDQogICAgfSwNCiAgICAibTN1IjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiTTNVIFBsYXlsaXN0IiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJGaWxlIHBhdGggb3IgVVJMIG9mIHRoZSBNM1UiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIkxvY2FsIG9yIHJlbW90ZSBwbGF5bGlzdHMiDQogICAgfSwNCiAgICAieG1sdHYiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJYTUxUViBGaWxlIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJGaWxlIHBhdGggb3IgVVJMIG9mIHRoZSBYTUxUViIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiTG9jYWwgb3IgcmVtb3RlIFhNTFRWIGZpbGUiDQogICAgfQ0KICB9LA0KICAibG9naW4iOg0KICB7DQogICAgImZhaWxlZCI6ICJVc2VyIGF1dGhlbnRpY2F0aW9uIGZhaWxlZCIsDQogICAgImhlYWRsaW5lIjogIkxvZ2luIiwNCiAgICAidXNlcm5hbWUiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJVc2VybmFtZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiVXNlcm5hbWUiDQogICAgfSwNCiAgICAicGFzc3dvcmQiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJQYXNzd29yZCIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiUGFzc3dvcmQiDQogICAgfQ0KICB9LA0KICAiYWNjb3VudCI6DQogIHsNCiAgICAiZmFpbGVkIjogIlBhc3N3b3JkIGRvZXMgbm90IG1hdGNoIiwNCiAgICAiaGVhZGxpbmUiOiAiQ3JlYXRlIHVzZXIgYWNjb3VudCIsDQogICAgInVzZXJuYW1lIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiVXNlcm5hbWUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIlVzZXJuYW1lIg0KICAgIH0sDQogICAgInBhc3N3b3JkIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiUGFzc3dvcmQiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIlBhc3N3b3JkIg0KICAgIH0sDQogICAgImNvbmZpcm0iOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJDb25maXJtIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJDb25maXJtIg0KICAgIH0NCiAgfQ0KfQ==" + webUI["html/index.html"] = "PCFkb2N0eXBlIGh0bWw+DQo8aHRtbD4NCiAgPGhlYWQ+DQogICAgPG1ldGEgY2hhcnNldD0idXRmLTgiPg0KICAgIDwhLS0tDQogICAgPG1ldGEgbmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9IndpZHRoPWRldmljZS13aWR0aCwgaW5pdGlhbC1zY2FsZT0xLjAiIC8+IA0KICAgIC0tPg0KICAgIDx0aXRsZT54VGVWZTwvdGl0bGU+DQogICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJjc3Mvc2NyZWVuLmNzcyIgdHlwZT0idGV4dC9jc3MiPg0KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iY3NzL2Jhc2UuY3NzIiB0eXBlPSJ0ZXh0L2NzcyI+DQoNCiAgICA8c2NyaXB0IGxhbmd1YWdlPSJqYXZhc2NyaXB0IiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ianMvbmV0d29ya190cy5qcyI+PC9zY3JpcHQ+DQogICAgPHNjcmlwdCBsYW5ndWFnZT0iamF2YXNjcmlwdCIgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9ImpzL21lbnVfdHMuanMiPjwvc2NyaXB0Pg0KICAgIDxzY3JpcHQgbGFuZ3VhZ2U9ImphdmFzY3JpcHQiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJqcy9zZXR0aW5nc190cy5qcyI+PC9zY3JpcHQ+DQogICAgPHNjcmlwdCBsYW5ndWFnZT0iamF2YXNjcmlwdCIgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9ImpzL2xvZ3NfdHMuanMiPjwvc2NyaXB0Pg0KICAgIDxzY3JpcHQgbGFuZ3VhZ2U9ImphdmFzY3JpcHQiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJqcy9iYXNlX3RzLmpzIj48L3NjcmlwdD4NCg0KICA8L2hlYWQ+DQoNCiAgICA8Ym9keSBvbmxvYWQ9ImphdmFzY3JpcHQ6IFBhZ2VSZWFkeSgpOyI+DQoNCiAgICAgIDxkaXYgaWQ9ImxvYWRpbmciIGNsYXNzPSJub25lIj4NCiAgICAgICAgPGRpdiBjbGFzcz0ibG9hZGVyIj48L2Rpdj4NCiAgICAgIDwvZGl2Pg0KDQogICAgICA8ZGl2IGlkPSJwb3B1cCIgY2xhc3M9Im5vbmUiPg0KICAgICAgICA8ZGl2IGlkPSJwb3B1cC1jdXN0b20iPjwvZGl2Pg0KICAgICAgPC9kaXY+DQoNCiAgICAgIDxkaXYgaWQ9ImxheW91dCI+DQoNCiAgICAgICAgPCEtLQ0KICAgICAgICA8ZGl2IGlkPSJub3RpZmljYXRpb24iPg0KICAgICAgICAgIDxkaXYgY2xhc3M9ImVsZW1lbnQiPg0KICAgICAgICAgICAgPGg1PlhFUEc8L2g1Pg0KICAgICAgICAgICAgPHByZT4xMS4wNS4yMDE5IC0gMjA6MjE8L3ByZT4NCiAgICAgICAgICAgIDxocj4NCiAgICAgICAgICAgIDxwPkhhbGxvIGRhcyBpc3QgZWluIFRlc3QuIFVuZCBub2NoIG1laHIgVGV4dC48L3A+DQogICAgICAgICAgPC9kaXY+DQogICAgICAgIDwvZGl2Pg0KICAgICAgLS0+DQoNCiAgICAgICAgPGRpdiBpZD0ibWVudS13cmFwcGVyIiBjbGFzcz0ibGF5b3V0LWxlZnQiPg0KICAgICAgICAgIDxkaXYgaWQ9ICJicmFuY2giPjwvZGl2Pg0KICAgICAgICAgIDxkaXYgaWQ9ImxvZ28iPjwvZGl2Pg0KICAgICAgICAgIDxuYXYgaWQ9Im1haW4tbWVudSI+PC9uYXY+DQogICAgICAgIDwvZGl2Pg0KDQogICAgICAgIDxkaXYgY2xhc3M9ImxheW91dC1yaWdodCI+DQoNCiAgICAgICAgICA8dGFibGUgaWQ9ImNsaWVudEluZm8iIGNsYXNzPSIiPg0KDQogICAgICAgICAgICA8dHI+DQogICAgICAgICAgICAgIDx0ZCBjbGFzcz0idGRLZXkiPnhUZVZlOjwvdGQ+DQogICAgICAgICAgICAgIDx0ZCBpZD0idmVyc2lvbiIgY2xhc3M9InRkVmFsIj4mbmJzcDs8L3RkPg0KICAgICAgICAgICAgICA8dGQgY2xhc3M9InRkS2V5Ij5PUzo8L3RkPg0KICAgICAgICAgICAgICA8dGQgaWQ9Im9zIiBjbGFzcz0idGRWYWwiPiZuYnNwOzwvdGQ+DQogICAgICAgICAgICAgIDx0ZCBjbGFzcz0idGRLZXkgcGhvbmUiPkRWUiBJUDo8L3RkPg0KICAgICAgICAgICAgICA8dGQgaWQ9IkRWUiIgY2xhc3M9InRkVmFsIHBob25lIj4mbmJzcDs8L3RkPg0KICAgICAgICAgICAgPC90cj4NCg0KICAgICAgICAgICAgPHRyPg0KICAgICAgICAgICAgICA8dGQgY2xhc3M9InRkS2V5Ij5VVUlEOjwvdGQ+DQogICAgICAgICAgICAgIDx0ZCBpZD0idXVpZCIgY2xhc3M9InRkVmFsIj4mbmJzcDs8L3RkPg0KICAgICAgICAgICAgICA8dGQgY2xhc3M9InRkS2V5Ij5BcmNoOjwvdGQ+DQogICAgICAgICAgICAgIDx0ZCBpZD0iYXJjaCIgY2xhc3M9InRkVmFsIj4mbmJzcDs8L3RkPg0KICAgICAgICAgICAgICA8dGQgY2xhc3M9InRkS2V5IHBob25lIj5NM1UgVVJMOjwvdGQ+DQogICAgICAgICAgICAgIDx0ZCBpZD0ibTN1LXVybCIgY2xhc3M9InRkVmFsIHBob25lIj4mbmJzcDs8L3RkPg0KICAgICAgICAgICAgPC90cj4NCg0KICAgICAgICAgICAgPHRyPg0KICAgICAgICAgICAgICA8dGQgY2xhc3M9InRkS2V5Ij5BdmFpbGFibGUgU3RyZWFtczo8L3RkPg0KICAgICAgICAgICAgICA8dGQgaWQ9InN0cmVhbXMiIGNsYXNzPSJ0ZFZhbCI+Jm5ic3A7PC90ZD4NCiAgICAgICAgICAgICAgPHRkIGNsYXNzPSJ0ZEtleSI+RVBHIFNvdXJjZTo8L3RkPg0KICAgICAgICAgICAgICA8dGQgaWQ9ImVwZ1NvdXJjZSIgY2xhc3M9InRkVmFsIj4mbmJzcDs8L3RkPg0KICAgICAgICAgICAgICA8dGQgY2xhc3M9InRkS2V5IHBob25lIj5YRVBHIFVSTDo8L3RkPg0KICAgICAgICAgICAgICA8dGQgaWQ9InhlcGctdXJsIiBjbGFzcz0idGRWYWwgcGhvbmUiPiZuYnNwOzwvdGQ+DQogICAgICAgICAgICA8L3RyPg0KDQogICAgICAgICAgICA8dHI+DQogICAgICAgICAgICAgIDx0ZCBjbGFzcz0idGRLZXkiPlhFUEcgQ2hhbm5lbHM6PC90ZD4NCiAgICAgICAgICAgICAgPHRkIGlkPSJ4ZXBnIiBjbGFzcz0idGRWYWwiPiZuYnNwOzwvdGQ+DQogICAgICAgICAgICAgIDx0ZCBjbGFzcz0idGRLZXkiPkVycm9yczo8L3RkPg0KICAgICAgICAgICAgICA8dGQgaWQ9ImVycm9ycyIgY2xhc3M9InRkVmFsIj4mbmJzcDs8L3RkPg0KICAgICAgICAgICAgICA8dGQgY2xhc3M9InRkS2V5Ij5XYXJuaW5nczo8L3RkPg0KICAgICAgICAgICAgICA8dGQgaWQ9Indhcm5pbmdzIiBjbGFzcz0idGRWYWwiPiZuYnNwOzwvdGQ+DQogICAgICAgICAgICA8L3RyPg0KDQogICAgICAgICAgPC90YWJsZT4NCiAgICAgICAgIA0KICAgICAgICAgIDxkaXYgaWQ9Im15U3RyZWFtc0JveCIgY2xhc3M9Im5vdFZpc2libGUiPg0KDQogICAgICAgICAgICA8ZGl2IGlkPSJhbGxTdHJlYW1zIj4NCiAgICAgICAgICAgICAgPHRhYmxlIGlkPSJhY3RpdmVTdHJlYW1zIj48L3RhYmxlPg0KICAgICAgICAgICAgICA8dGFibGUgaWQ9ImluYWN0aXZlU3RyZWFtcyI+PC90YWJsZT4NCiAgICAgICAgICAgIDwvZGl2Pg0KDQogICAgICAgICAgPC9kaXY+DQogICAgICAgICAgDQogICAgICAgICAgPGRpdiBpZD0iY29udGVudCIgY2xhc3M9IiI+PC9kaXY+DQogICAgICAgICAgICANCiAgICAgICAgPC9kaXY+DQoNCiAgICAgIDwvZGl2Pg0KICAgICAgDQogICAgPC9ib2R5Pg0KICAgIA0KPC9odG1sPg==" + webUI["html/create-first-user.html"] = "PCFkb2N0eXBlIGh0bWw+DQo8aHRtbD4NCiAgPGhlYWQ+DQogICAgPG1ldGEgY2hhcnNldD0idXRmLTgiPg0KICAgIDxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgsIGluaXRpYWwtc2NhbGU9MS4wIiAvPiANCiAgICA8dGl0bGU+eFRlVmU8L3RpdGxlPg0KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iY3NzL3NjcmVlbi5jc3MiIHR5cGU9InRleHQvY3NzIj4NCiAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9ImNzcy9iYXNlLmNzcyIgdHlwZT0idGV4dC9jc3MiPg0KICAgIDxzY3JpcHQgbGFuZ3VhZ2U9ImphdmFzY3JpcHQiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJqcy9uZXR3b3JrX3RzLmpzIj48L3NjcmlwdD4NCiAgICA8c2NyaXB0IGxhbmd1YWdlPSJqYXZhc2NyaXB0IiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ianMvYXV0aGVudGljYXRpb25fdHMuanMiPjwvc2NyaXB0Pg0KICA8L2hlYWQ+DQoNCiAgICA8Ym9keT4NCiAgICAgICAgICANCiAgICAgIDxkaXYgaWQ9ImhlYWRlciIgY2xhc3M9ImltZ0NlbnRlciI+PC9kaXY+DQoNCiAgICAgIDxkaXYgaWQ9ImJveCI+DQoNCiAgICAgICAgPGRpdiBpZD0iaGVhZGxpbmUiPg0KICAgICAgICAgIDxoMSBpZD0iaGVhZC10ZXh0IiBjbGFzcz0iY2VudGVyIj57ey5hY2NvdW50LmhlYWRsaW5lfX08L2gxPg0KICAgICAgICA8L2Rpdj4NCg0KICAgICAgICA8cCBpZD0iZXJyIiBjbGFzcz0iZXJyb3JNc2cgY2VudGVyIj48L3A+DQoNCiAgICAgICAgPGRpdiBpZD0iY29udGVudCI+DQoNCiAgICAgICAgICAgIDxmb3JtIGlkPSJhdXRoZW50aWNhdGlvbiIgYWN0aW9uPSIiIG1ldGhvZD0icG9zdCI+DQoNCiAgICAgICAgICAgICAgPGg1Pnt7LmFjY291bnQudXNlcm5hbWUudGl0bGV9fTo8L2g1Pg0KICAgICAgICAgICAgICA8aW5wdXQgaWQ9InVzZXJuYW1lIiB0eXBlPSJ0ZXh0IiBuYW1lPSJ1c2VybmFtZSIgcGxhY2Vob2xkZXI9IlVzZXJuYW1lIiB2YWx1ZT0iIj4NCiAgICAgICAgICAgICAgPGg1Pnt7LmFjY291bnQucGFzc3dvcmQudGl0bGV9fTo8L2g1Pg0KICAgICAgICAgICAgICA8aW5wdXQgaWQ9InBhc3N3b3JkIiB0eXBlPSJwYXNzd29yZCIgbmFtZT0icGFzc3dvcmQiIHBsYWNlaG9sZGVyPSJQYXNzd29yZCIgdmFsdWU9IiI+DQogICAgICAgICAgICAgIDxoNT57ey5hY2NvdW50LmNvbmZpcm0udGl0bGV9fTo8L2g1Pg0KICAgICAgICAgICAgICA8aW5wdXQgaWQ9ImNvbmZpcm0iICB0eXBlPSJwYXNzd29yZCIgbmFtZT0iY29uZmlybSIgIHBsYWNlaG9sZGVyPSJDb25maXJtIiB2YWx1ZT0iIj4NCiAgICAgICAgICAgICAgDQogICAgICAgICAgICA8L2Zvcm0+DQoNCiAgICAgICAgPC9kaXY+DQogICAgICAgIA0KICAgICAgICA8ZGl2IGlkPSJib3gtZm9vdGVyIj4NCiAgICAgICAgICA8aW5wdXQgaWQ9InN1Ym1pdCIgY2xhc3M9IiIgdHlwZT0iYnV0dG9uIiB2YWx1ZT0ie3suYnV0dG9uLmNyYWV0ZUFjY291bnR9fSIgb25jbGljaz0iamF2YXNjcmlwdDogbG9naW4oKTsiPg0KICAgICAgICA8L2Rpdj4NCiAgICAgIA0KICAgICAgICANCiAgICAgIDwvZGl2Pg0KICAgIDwvYm9keT4NCjwvaHRtbD4=" + webUI["html/maintenance.html"] = "PCFkb2N0eXBlIGh0bWw+DQo8aHRtbD4NCiAgPGhlYWQ+DQogICAgPG1ldGEgY2hhcnNldD0idXRmLTgiPg0KICAgIDxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgsIGluaXRpYWwtc2NhbGU9MS4wIiAvPiANCiAgICA8dGl0bGU+eFRlVmU8L3RpdGxlPg0KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iY3NzL3NjcmVlbi5jc3MiIHR5cGU9InRleHQvY3NzIj4NCiAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9ImNzcy9iYXNlLmNzcyIgdHlwZT0idGV4dC9jc3MiPg0KICA8L2hlYWQ+DQoNCiAgICA8Ym9keT4NCiAgICAgICAgICANCiAgICAgIDxkaXYgaWQ9ImhlYWRlciIgY2xhc3M9ImltZ0NlbnRlciI+PC9kaXY+DQoNCiAgICAgIDxkaXYgaWQ9ImJveCI+DQoNCiAgICAgICAgPGRpdiBpZD0iaGVhZGxpbmUiPg0KICAgICAgICAgIDxoMSBpZD0iaGVhZC10ZXh0IiBjbGFzcz0iY2VudGVyIj5NYWludGVuYW5jZTwvaDE+ICAgICAgDQogICAgICAgIDwvZGl2PiAgDQoNCiAgICAgICAgPGRpdiBpZD0iY29udGVudCI+DQogICAgICAgICAgeFRlVmUgaXMgdXBkYXRpbmcgdGhlIGRhdGFiYXNlLCBwbGVhc2UgdHJ5IGFnYWluIGxhdGVyLg0KICAgICAgICA8L2Rpdj4NCg0KICAgICAgICA8ZGl2IGlkPSJib3gtZm9vdGVyIj48L2Rpdj4NCiAgICAgICAgDQogICAgICA8L2Rpdj4NCg0KICAgIDwvYm9keT4NCjwvaHRtbD4=" + webUI["html/js/menu_ts.js"] = "Y2xhc3MgTWFpbk1lbnUgew0KICAgIGNvbnN0cnVjdG9yKCkgew0KICAgICAgICB0aGlzLkRvY3VtZW50SUQgPSAibWFpbi1tZW51IjsNCiAgICAgICAgdGhpcy5IVE1MVGFnID0gIkxJIjsNCiAgICAgICAgdGhpcy5JbWFnZVBhdGggPSAiaW1nLyI7DQogICAgfQ0KICAgIGNyZWF0ZUlNRyhzcmMpIHsNCiAgICAgICAgbGV0IGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJJTUciKTsNCiAgICAgICAgZWxlbWVudC5zZXRBdHRyaWJ1dGUoInNyYyIsIHRoaXMuSW1hZ2VQYXRoICsgc3JjKTsNCiAgICAgICAgcmV0dXJuIGVsZW1lbnQ7DQogICAgfQ0KICAgIGNyZWF0ZVZhbHVlKHZhbHVlKSB7DQogICAgICAgIGxldCBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiUCIpOw0KICAgICAgICBlbGVtZW50LmlubmVySFRNTCA9IHZhbHVlOw0KICAgICAgICByZXR1cm4gZWxlbWVudDsNCiAgICB9DQp9DQpjbGFzcyBNYWluTWVudUl0ZW0gZXh0ZW5kcyBNYWluTWVudSB7DQogICAgY29uc3RydWN0b3IobWVudUtleSwgdmFsdWUsIGltYWdlLCBoZWFkbGluZSkgew0KICAgICAgICBzdXBlcigpOw0KICAgICAgICB0aGlzLm1lbnVLZXkgPSBtZW51S2V5Ow0KICAgICAgICB0aGlzLnZhbHVlID0gdmFsdWU7DQogICAgICAgIHRoaXMuaW1nU3JjID0gaW1hZ2U7DQogICAgICAgIHRoaXMuaGVhZGxpbmUgPSBoZWFkbGluZTsNCiAgICB9DQogICAgY3JlYXRlSXRlbSgpIHsNCiAgICAgICAgbGV0IGl0ZW0gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJMSSIpOw0KICAgICAgICBpdGVtLnNldEF0dHJpYnV0ZSgib25jbGljayIsICJqYXZhc2NyaXB0OiBvcGVuVGhpc01lbnUodGhpcykiKTsNCiAgICAgICAgaXRlbS5zZXRBdHRyaWJ1dGUoImlkIiwgdGhpcy5pZCk7DQogICAgICAgIGxldCBpbWcgPSB0aGlzLmNyZWF0ZUlNRyh0aGlzLmltZ1NyYyk7DQogICAgICAgIGxldCB2YWx1ZSA9IHRoaXMuY3JlYXRlVmFsdWUodGhpcy52YWx1ZSk7DQogICAgICAgIGl0ZW0uYXBwZW5kQ2hpbGQoaW1nKTsNCiAgICAgICAgaXRlbS5hcHBlbmRDaGlsZCh2YWx1ZSk7DQogICAgICAgIGxldCBkb2MgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCh0aGlzLkRvY3VtZW50SUQpOw0KICAgICAgICBkb2MuYXBwZW5kQ2hpbGQoaXRlbSk7DQogICAgICAgIHN3aXRjaCAodGhpcy5tZW51S2V5KSB7DQogICAgICAgICAgICBjYXNlICJwbGF5bGlzdCI6DQogICAgICAgICAgICAgICAgdGhpcy50YWJsZUhlYWRlciA9IFsie3sucGxheWxpc3QudGFibGUucGxheWxpc3R9fSIsICJ7ey5wbGF5bGlzdC50YWJsZS50dW5lcn19IiwgInt7LnBsYXlsaXN0LnRhYmxlLmxhc3RVcGRhdGV9fSIsICJ7ey5wbGF5bGlzdC50YWJsZS5hdmFpbGFiaWxpdHl9fSAlIiwgInt7LnBsYXlsaXN0LnRhYmxlLnR5cGV9fSIsICJ7ey5wbGF5bGlzdC50YWJsZS5zdHJlYW1zfX0iLCAie3sucGxheWxpc3QudGFibGUuZ3JvdXBUaXRsZX19ICUiLCAie3sucGxheWxpc3QudGFibGUudHZnSUR9fSAlIiwgInt7LnBsYXlsaXN0LnRhYmxlLnVuaXF1ZUlEfX0gJSJdOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAieG1sdHYiOg0KICAgICAgICAgICAgICAgIHRoaXMudGFibGVIZWFkZXIgPSBbInt7LnhtbHR2LnRhYmxlLmd1aWRlfX0iLCAie3sueG1sdHYudGFibGUubGFzdFVwZGF0ZX19IiwgInt7LnhtbHR2LnRhYmxlLmF2YWlsYWJpbGl0eX19ICUiLCAie3sueG1sdHYudGFibGUuY2hhbm5lbHN9fSIsICJ7ey54bWx0di50YWJsZS5wcm9ncmFtc319Il07DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJmaWx0ZXIiOg0KICAgICAgICAgICAgICAgIHRoaXMudGFibGVIZWFkZXIgPSBbInt7LmZpbHRlci50YWJsZS5uYW1lfX0iLCAie3suZmlsdGVyLnRhYmxlLnR5cGV9fSIsICJ7ey5maWx0ZXIudGFibGUuZmlsdGVyfX0iXTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInVzZXJzIjoNCiAgICAgICAgICAgICAgICB0aGlzLnRhYmxlSGVhZGVyID0gWyJ7ey51c2Vycy50YWJsZS51c2VybmFtZX19IiwgInt7LnVzZXJzLnRhYmxlLnBhc3N3b3JkfX0iLCAie3sudXNlcnMudGFibGUud2VifX0iLCAie3sudXNlcnMudGFibGUucG1zfX0iLCAie3sudXNlcnMudGFibGUubTN1fX0iLCAie3sudXNlcnMudGFibGUueG1sfX0iLCAie3sudXNlcnMudGFibGUuYXBpfX0iXTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgIm1hcHBpbmciOg0KICAgICAgICAgICAgICAgIHRoaXMudGFibGVIZWFkZXIgPSBbIkJVTEsiLCAie3subWFwcGluZy50YWJsZS5jaE5vfX0iLCAie3subWFwcGluZy50YWJsZS5sb2dvfX0iLCAie3subWFwcGluZy50YWJsZS5jaGFubmVsTmFtZX19IiwgInt7Lm1hcHBpbmcudGFibGUucGxheWxpc3R9fSIsICJ7ey5tYXBwaW5nLnRhYmxlLmdyb3VwVGl0bGV9fSIsICJ7ey5tYXBwaW5nLnRhYmxlLnhtbHR2RmlsZX19IiwgInt7Lm1hcHBpbmcudGFibGUueG1sdHZJRH19IiwgInt7Lm1hcHBpbmcudGFibGUudGltZXNoaWZ0fX0iXTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgfQ0KICAgICAgICAvL2NvbnNvbGUubG9nKHRoaXMubWVudUtleSwgdGhpcy50YWJsZUhlYWRlcik7DQogICAgfQ0KfQ0KY2xhc3MgQ29udGVudCB7DQogICAgY29uc3RydWN0b3IoKSB7DQogICAgICAgIHRoaXMuRG9jdW1lbnRJRCA9ICJjb250ZW50IjsNCiAgICAgICAgdGhpcy5UYWJsZUlEID0gImNvbnRlbnRfdGFibGUiOw0KICAgICAgICB0aGlzLmhlYWRlckNsYXNzID0gImNvbnRlbnRfdGFibGVfaGVhZGVyIjsNCiAgICAgICAgdGhpcy5pbnRlcmFjdGlvbklEID0gImNvbnRlbnQtaW50ZXJhY3Rpb24iOw0KICAgIH0NCiAgICBjcmVhdGVIZWFkbGluZSh2YWx1ZSkgew0KICAgICAgICBsZXQgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIkgzIik7DQogICAgICAgIGVsZW1lbnQuaW5uZXJIVE1MID0gdmFsdWU7DQogICAgICAgIHJldHVybiBlbGVtZW50Ow0KICAgIH0NCiAgICBjcmVhdGVIUigpIHsNCiAgICAgICAgcmV0dXJuIGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIkhSIik7DQogICAgfQ0KICAgIGNyZWF0ZUludGVyYWN0aW9uKCkgew0KICAgICAgICBsZXQgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIkRJViIpOw0KICAgICAgICBlbGVtZW50LnNldEF0dHJpYnV0ZSgiaWQiLCB0aGlzLmludGVyYWN0aW9uSUQpOw0KICAgICAgICByZXR1cm4gZWxlbWVudDsNCiAgICB9DQogICAgY3JlYXRlRElWKCkgew0KICAgICAgICBsZXQgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIkRJViIpOw0KICAgICAgICBlbGVtZW50LmlkID0gdGhpcy5EaXZJRDsNCiAgICAgICAgcmV0dXJuIGVsZW1lbnQ7DQogICAgfQ0KICAgIGNyZWF0ZVRBQkxFKCkgew0KICAgICAgICBsZXQgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlRBQkxFIik7DQogICAgICAgIGVsZW1lbnQuaWQgPSB0aGlzLlRhYmxlSUQ7DQogICAgICAgIHJldHVybiBlbGVtZW50Ow0KICAgIH0NCiAgICBjcmVhdGVUYWJsZVJvdygpIHsNCiAgICAgICAgbGV0IGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJUUiIpOw0KICAgICAgICBlbGVtZW50LmNsYXNzTmFtZSA9IHRoaXMuaGVhZGVyQ2xhc3M7DQogICAgICAgIHJldHVybiBlbGVtZW50Ow0KICAgIH0NCiAgICBjcmVhdGVUYWJsZUNvbnRlbnQobWVudUtleSkgew0KICAgICAgICBsZXQgZGF0YSA9IHt9Ow0KICAgICAgICBsZXQgcm93cyA9IFtdOw0KICAgICAgICBsZXQgZmlsZVR5cGVzID0gW107DQogICAgICAgIHN3aXRjaCAobWVudUtleSkgew0KICAgICAgICAgICAgY2FzZSAicGxheWxpc3QiOg0KICAgICAgICAgICAgICAgIGZpbGVUeXBlcyA9IFsibTN1IiwgImhkaHIiXTsNCiAgICAgICAgICAgICAgICBmaWxlVHlwZXMuZm9yRWFjaChmaWxlVHlwZSA9PiB7DQogICAgICAgICAgICAgICAgICAgIGRhdGEgPSBTRVJWRVJbInNldHRpbmdzIl1bImZpbGVzIl1bZmlsZVR5cGVdOw0KICAgICAgICAgICAgICAgICAgICB2YXIga2V5cyA9IGdldE9iaktleXMoZGF0YSk7DQogICAgICAgICAgICAgICAgICAgIGtleXMuZm9yRWFjaChrZXkgPT4gew0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVFIiKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmlkID0ga2V5Ow0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgiJyArIGZpbGVUeXBlICsgJyIsIHRoaXMpJyk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsibmFtZSJdOw0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChTRVJWRVJbInNldHRpbmdzIl1bImJ1ZmZlciJdICE9ICItIikgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bInR1bmVyIl07DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gIi0iOw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bImxhc3QudXBkYXRlIl07DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsicHJvdmlkZXIuYXZhaWxhYmlsaXR5Il07DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsidHlwZSJdLnRvVXBwZXJDYXNlKCk7DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsiY29tcGF0aWJpbGl0eSJdWyJzdHJlYW1zIl07DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsiY29tcGF0aWJpbGl0eSJdWyJncm91cC50aXRsZSJdOw0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bImNvbXBhdGliaWxpdHkiXVsidHZnLmlkIl07DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsiY29tcGF0aWJpbGl0eSJdWyJzdHJlYW0uaWQiXTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHJvd3MucHVzaCh0cik7DQogICAgICAgICAgICAgICAgICAgIH0pOw0KICAgICAgICAgICAgICAgIH0pOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiZmlsdGVyIjoNCiAgICAgICAgICAgICAgICBkZWxldGUgU0VSVkVSWyJzZXR0aW5ncyJdWyJmaWx0ZXIiXVstMV07DQogICAgICAgICAgICAgICAgZGF0YSA9IFNFUlZFUlsic2V0dGluZ3MiXVsiZmlsdGVyIl07DQogICAgICAgICAgICAgICAgdmFyIGtleXMgPSBnZXRPYmpLZXlzKGRhdGEpOw0KICAgICAgICAgICAgICAgIGtleXMuZm9yRWFjaChrZXkgPT4gew0KICAgICAgICAgICAgICAgICAgICB2YXIgdHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJUUiIpOw0KICAgICAgICAgICAgICAgICAgICB0ci5pZCA9IGtleTsNCiAgICAgICAgICAgICAgICAgICAgdHIuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgiJyArIGRhdGFba2V5XVsidHlwZSJdICsgJyIsIHRoaXMpJyk7DQogICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJuYW1lIl07DQogICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgIHN3aXRjaCAoZGF0YVtrZXldWyJ0eXBlIl0pIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgImN1c3RvbS1maWx0ZXIiOg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSAie3suZmlsdGVyLmN1c3RvbX19IjsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgImdyb3VwLXRpdGxlIjoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gInt7LmZpbHRlci5ncm91cH19IjsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsiZmlsdGVyIl07DQogICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgcm93cy5wdXNoKHRyKTsNCiAgICAgICAgICAgICAgICB9KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInhtbHR2IjoNCiAgICAgICAgICAgICAgICBmaWxlVHlwZXMgPSBuZXcgQXJyYXkoInhtbHR2Iik7DQogICAgICAgICAgICAgICAgZmlsZVR5cGVzLmZvckVhY2goZmlsZVR5cGUgPT4gew0KICAgICAgICAgICAgICAgICAgICBkYXRhID0gU0VSVkVSWyJzZXR0aW5ncyJdWyJmaWxlcyJdW2ZpbGVUeXBlXTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGtleXMgPSBnZXRPYmpLZXlzKGRhdGEpOw0KICAgICAgICAgICAgICAgICAgICBrZXlzLmZvckVhY2goa2V5ID0+IHsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciB0ciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlRSIik7DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5pZCA9IGtleTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoIicgKyBmaWxlVHlwZSArICciLCB0aGlzKScpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bIm5hbWUiXTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJsYXN0LnVwZGF0ZSJdOw0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bInByb3ZpZGVyLmF2YWlsYWJpbGl0eSJdOw0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bImNvbXBhdGliaWxpdHkiXVsieG1sdHYuY2hhbm5lbHMiXTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJjb21wYXRpYmlsaXR5Il1bInhtbHR2LnByb2dyYW1zIl07DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICByb3dzLnB1c2godHIpOw0KICAgICAgICAgICAgICAgICAgICB9KTsNCiAgICAgICAgICAgICAgICB9KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInVzZXJzIjoNCiAgICAgICAgICAgICAgICBmaWxlVHlwZXMgPSBuZXcgQXJyYXkoInVzZXJzIik7DQogICAgICAgICAgICAgICAgZmlsZVR5cGVzLmZvckVhY2goZmlsZVR5cGUgPT4gew0KICAgICAgICAgICAgICAgICAgICBkYXRhID0gU0VSVkVSW2ZpbGVUeXBlXTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGtleXMgPSBnZXRPYmpLZXlzKGRhdGEpOw0KICAgICAgICAgICAgICAgICAgICBrZXlzLmZvckVhY2goa2V5ID0+IHsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciB0ciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlRSIik7DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5pZCA9IGtleTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoIicgKyBmaWxlVHlwZSArICciLCB0aGlzKScpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bImRhdGEiXVsidXNlcm5hbWUiXTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gIioqKioqKiI7DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGRhdGFba2V5XVsiZGF0YSJdWyJhdXRoZW50aWNhdGlvbi53ZWIiXSA9PSB0cnVlKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9ICLinJMiOw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9ICItIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgICAgICBpZiAoZGF0YVtrZXldWyJkYXRhIl1bImF1dGhlbnRpY2F0aW9uLnBtcyJdID09IHRydWUpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gIuKckyI7DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gIi0iOw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChkYXRhW2tleV1bImRhdGEiXVsiYXV0aGVudGljYXRpb24ubTN1Il0gPT0gdHJ1ZSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSAi4pyTIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSAiLSI7DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGRhdGFba2V5XVsiZGF0YSJdWyJhdXRoZW50aWNhdGlvbi54bWwiXSA9PSB0cnVlKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9ICLinJMiOw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9ICItIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgICAgICBpZiAoZGF0YVtrZXldWyJkYXRhIl1bImF1dGhlbnRpY2F0aW9uLmFwaSJdID09IHRydWUpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gIuKckyI7DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gIi0iOw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgcm93cy5wdXNoKHRyKTsNCiAgICAgICAgICAgICAgICAgICAgfSk7DQogICAgICAgICAgICAgICAgfSk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJtYXBwaW5nIjoNCiAgICAgICAgICAgICAgICBCVUxLX0VESVQgPSBmYWxzZTsNCiAgICAgICAgICAgICAgICBjcmVhdGVTZWFyY2hPYmooKTsNCiAgICAgICAgICAgICAgICBjaGVja1VuZG8oImVwZ01hcHBpbmciKTsNCiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZygiTUFQUElORyIpOw0KICAgICAgICAgICAgICAgIGRhdGEgPSBTRVJWRVJbInhlcGciXVsiZXBnTWFwcGluZyJdOw0KICAgICAgICAgICAgICAgIHZhciBrZXlzID0gZ2V0T2JqS2V5cyhkYXRhKTsNCiAgICAgICAgICAgICAgICBrZXlzLmZvckVhY2goa2V5ID0+IHsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVFIiKTsNCiAgICAgICAgICAgICAgICAgICAgdHIuaWQgPSBrZXk7DQogICAgICAgICAgICAgICAgICAgIC8vdHIuc2V0QXR0cmlidXRlKCdvbmNvbnRleHRtZW51JywgJ2phdmFzY3JpcHQ6IHJpZ2h0Q2xpY2sodGhpcyknKQ0KICAgICAgICAgICAgICAgICAgICBzd2l0Y2ggKGRhdGFba2V5XVsieC1hY3RpdmUiXSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSB0cnVlOg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyLmNsYXNzTmFtZSA9ICJhY3RpdmVFUEciOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSBmYWxzZToNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ci5jbGFzc05hbWUgPSAibm90QWN0aXZlRVBHIjsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAvLyBCdWxrDQogICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIkJVTEsiOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZmFsc2U7DQogICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgLy8gQ2hhbm5lbCBudW1iZXINCiAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiSU5QVVRDSEFOTkVMIjsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsieC1jaGFubmVsSUQiXTsNCiAgICAgICAgICAgICAgICAgICAgLy90ZC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogY2hhbmdlQ2hhbm5lbE51bWJlcigiJyArIGtleSArICciLCB0aGlzKScpDQogICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgLy8gTG9nbw0KICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJJTUciOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmltYWdlVVJMID0gZGF0YVtrZXldWyJ0dmctbG9nbyJdOw0KICAgICAgICAgICAgICAgICAgICB2YXIgdGQgPSBjZWxsLmNyZWF0ZUNlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgdGQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgibWFwcGluZyIsIHRoaXMpJyk7DQogICAgICAgICAgICAgICAgICAgIHRkLmlkID0ga2V5Ow0KICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZCh0ZCk7DQogICAgICAgICAgICAgICAgICAgIC8vIENoYW5uZWwgbmFtZQ0KICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jbGFzc05hbWUgPSBkYXRhW2tleV1bIngtY2F0ZWdvcnkiXTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsieC1uYW1lIl07DQogICAgICAgICAgICAgICAgICAgIHZhciB0ZCA9IGNlbGwuY3JlYXRlQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICB0ZC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJtYXBwaW5nIiwgdGhpcyknKTsNCiAgICAgICAgICAgICAgICAgICAgdGQuaWQgPSBrZXk7DQogICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKHRkKTsNCiAgICAgICAgICAgICAgICAgICAgLy8gUGxheWxpc3QNCiAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgIC8vY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsiX2ZpbGUubTN1Lm5hbWUiXSANCiAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGdldFZhbHVlRnJvbVByb3ZpZGVyRmlsZShkYXRhW2tleV1bIl9maWxlLm0zdS5pZCJdLCAibTN1IiwgIm5hbWUiKTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHRkID0gY2VsbC5jcmVhdGVDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgIHRkLnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoIm1hcHBpbmciLCB0aGlzKScpOw0KICAgICAgICAgICAgICAgICAgICB0ZC5pZCA9IGtleTsNCiAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQodGQpOw0KICAgICAgICAgICAgICAgICAgICAvLyBHcm91cCAoZ3JvdXAtdGl0bGUpDQogICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJ4LWdyb3VwLXRpdGxlIl07DQogICAgICAgICAgICAgICAgICAgIHZhciB0ZCA9IGNlbGwuY3JlYXRlQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICB0ZC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJtYXBwaW5nIiwgdGhpcyknKTsNCiAgICAgICAgICAgICAgICAgICAgdGQuaWQgPSBrZXk7DQogICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKHRkKTsNCiAgICAgICAgICAgICAgICAgICAgLy8gWE1MVFYgZmlsZQ0KICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgaWYgKGRhdGFba2V5XVsieC14bWx0di1maWxlIl0gIT0gIi0iKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZ2V0VmFsdWVGcm9tUHJvdmlkZXJGaWxlKGRhdGFba2V5XVsieC14bWx0di1maWxlIl0sICJ4bWx0diIsICJuYW1lIik7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgZWxzZSB7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJ4LXhtbHR2LWZpbGUiXTsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICB2YXIgdGQgPSBjZWxsLmNyZWF0ZUNlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgdGQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgibWFwcGluZyIsIHRoaXMpJyk7DQogICAgICAgICAgICAgICAgICAgIHRkLmlkID0ga2V5Ow0KICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZCh0ZCk7DQogICAgICAgICAgICAgICAgICAgIC8vIFhNTFRWIENoYW5uZWwNCiAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgIC8vdmFyIHZhbHVlID0gc3RyLnN1YnN0cmluZygxLCA0KTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHZhbHVlID0gZGF0YVtrZXldWyJ4LW1hcHBpbmciXTsNCiAgICAgICAgICAgICAgICAgICAgaWYgKHZhbHVlLmxlbmd0aCA+IDIwKSB7DQogICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IGRhdGFba2V5XVsieC1tYXBwaW5nIl0uc3Vic3RyaW5nKDAsIDIwKSArICIuLi4iOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSB2YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHRkID0gY2VsbC5jcmVhdGVDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgIHRkLnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoIm1hcHBpbmciLCB0aGlzKScpOw0KICAgICAgICAgICAgICAgICAgICB0ZC5pZCA9IGtleTsNCiAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQodGQpOw0KICAgICAgICAgICAgICAgICAgICAvLyBUaW1lU2hpZnQNCiAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bIngtdGltZXNoaWZ0Il07DQogICAgICAgICAgICAgICAgICAgIHZhciB0ZCA9IGNlbGwuY3JlYXRlQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICB0ZC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJtYXBwaW5nIiwgdGhpcyknKTsNCiAgICAgICAgICAgICAgICAgICAgdGQuaWQgPSBrZXk7DQogICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKHRkKTsNCiAgICAgICAgICAgICAgICAgICAgcm93cy5wdXNoKHRyKTsNCiAgICAgICAgICAgICAgICB9KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInNldHRpbmdzIjoNCiAgICAgICAgICAgICAgICBhbGVydCgpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZygiVGFibGUgY29udGVudCAobWVudUtleSk6IiwgbWVudUtleSk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIH0NCiAgICAgICAgcmV0dXJuIHJvd3M7DQogICAgfQ0KfQ0KY2xhc3MgQ2VsbCB7DQogICAgY3JlYXRlQ2VsbCgpIHsNCiAgICAgICAgbGV0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgaWYgKHRoaXMuY2hpbGQgPT0gdHJ1ZSkgew0KICAgICAgICAgICAgdmFyIGVsZW1lbnQ7DQogICAgICAgICAgICBzd2l0Y2ggKHRoaXMuY2hpbGRUeXBlKSB7DQogICAgICAgICAgICAgICAgY2FzZSAiUCI6DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KHRoaXMuY2hpbGRUeXBlKTsNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC5pbm5lckhUTUwgPSB0aGlzLnZhbHVlOw0KICAgICAgICAgICAgICAgICAgICBlbGVtZW50LmNsYXNzTmFtZSA9IHRoaXMuY2xhc3NOYW1lOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBjYXNlICJJTlBVVCI6DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KHRoaXMuY2hpbGRUeXBlKTsNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC52YWx1ZSA9IHRoaXMudmFsdWU7DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQudHlwZSA9ICJ0ZXh0IjsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAiSU5QVVRDSEFOTkVMIjoNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIklOUFVUIik7DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZzY3JpcHQ6IGNoYW5nZUNoYW5uZWxOdW1iZXIodGhpcykiKTsNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC52YWx1ZSA9IHRoaXMudmFsdWU7DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQudHlwZSA9ICJ0ZXh0IjsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAiQlVMSyI6DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJJTlBVVCIpOw0KICAgICAgICAgICAgICAgICAgICBlbGVtZW50LmNoZWNrZWQgPSB0aGlzLnZhbHVlOw0KICAgICAgICAgICAgICAgICAgICBlbGVtZW50LnR5cGUgPSAiY2hlY2tib3giOw0KICAgICAgICAgICAgICAgICAgICBlbGVtZW50LmNsYXNzTmFtZSA9ICJidWxrIGhpZGVCdWxrIjsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAiQlVMS19IRUFEIjoNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIklOUFVUIik7DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQuY2hlY2tlZCA9IHRoaXMudmFsdWU7DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQudHlwZSA9ICJjaGVja2JveCI7DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQuY2xhc3NOYW1lID0gImJ1bGsgaGlkZUJ1bGsiOw0KICAgICAgICAgICAgICAgICAgICBlbGVtZW50LnNldEF0dHJpYnV0ZSgib25jbGljayIsICJqYXZhc2NyaXB0OiBzZWxlY3RBbGxDaGFubmVscygpIik7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgIklNRyI6DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KHRoaXMuY2hpbGRUeXBlKTsNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC5zZXRBdHRyaWJ1dGUoInNyYyIsIHRoaXMuaW1hZ2VVUkwpOw0KICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5pbWFnZVVSTCAhPSAiIikgew0KICAgICAgICAgICAgICAgICAgICAgICAgZWxlbWVudC5zZXRBdHRyaWJ1dGUoIm9uZXJyb3IiLCAiamF2YXNjcmlwdDogdGhpcy5vbmVycm9yPW51bGw7dGhpcy5zcmM9JyciKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIC8vb25lcnJvcj0idGhpcy5vbmVycm9yPW51bGw7dGhpcy5zcmM9J21pc3NpbmcuZ2lmJzsiDQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIHRkLmFwcGVuZENoaWxkKGVsZW1lbnQpOw0KICAgICAgICB9DQogICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgdGQuaW5uZXJIVE1MID0gdGhpcy52YWx1ZTsNCiAgICAgICAgfQ0KICAgICAgICBpZiAodGhpcy5vbmNsaWNrID09IHRydWUpIHsNCiAgICAgICAgICAgIHRkLnNldEF0dHJpYnV0ZSgib25jbGljayIsIHRoaXMub25jbGlja0Z1bmN0aW9uKTsNCiAgICAgICAgICAgIHRkLmNsYXNzTmFtZSA9ICJwb2ludGVyIjsNCiAgICAgICAgfQ0KICAgICAgICBpZiAodGhpcy50ZENsYXNzTmFtZSAhPSB1bmRlZmluZWQpIHsNCiAgICAgICAgICAgIHRkLmNsYXNzTmFtZSA9IHRoaXMudGRDbGFzc05hbWU7DQogICAgICAgIH0NCiAgICAgICAgcmV0dXJuIHRkOw0KICAgIH0NCn0NCmNsYXNzIFNob3dDb250ZW50IGV4dGVuZHMgQ29udGVudCB7DQogICAgY29uc3RydWN0b3IobWVudUlEKSB7DQogICAgICAgIHN1cGVyKCk7DQogICAgICAgIHRoaXMubWVudUlEID0gbWVudUlEOw0KICAgIH0NCiAgICBjcmVhdGVJbnB1dCh0eXBlLCBuYW1lLCB2YWx1ZSkgew0KICAgICAgICBsZXQgaW5wdXQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJJTlBVVCIpOw0KICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInR5cGUiLCB0eXBlKTsNCiAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJuYW1lIiwgbmFtZSk7DQogICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgidmFsdWUiLCB2YWx1ZSk7DQogICAgICAgIHJldHVybiBpbnB1dDsNCiAgICB9DQogICAgc2hvdygpIHsNCiAgICAgICAgQ09MVU1OX1RPX1NPUlQgPSAtMTsNCiAgICAgICAgLy8gRGVsZXRlIG9sZCBjb250ZW50DQogICAgICAgIGxldCBkb2MgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCh0aGlzLkRvY3VtZW50SUQpOw0KICAgICAgICBkb2MuaW5uZXJIVE1MID0gIiI7DQogICAgICAgIHNob3dQcmV2aWV3KGZhbHNlKTsNCiAgICAgICAgLy8gSGVhZGxpbmUNCiAgICAgICAgbGV0IGhlYWRsaW5lID0gbWVudUl0ZW1zW3RoaXMubWVudUlEXS5oZWFkbGluZTsNCiAgICAgICAgbGV0IG1lbnVLZXkgPSBtZW51SXRlbXNbdGhpcy5tZW51SURdLm1lbnVLZXk7DQogICAgICAgIGxldCBoID0gdGhpcy5jcmVhdGVIZWFkbGluZShoZWFkbGluZSk7DQogICAgICAgIGRvYy5hcHBlbmRDaGlsZChoKTsNCiAgICAgICAgbGV0IGhyID0gdGhpcy5jcmVhdGVIUigpOw0KICAgICAgICBkb2MuYXBwZW5kQ2hpbGQoaHIpOw0KICAgICAgICAvLyBJbnRlcmFjdGlvbg0KICAgICAgICBsZXQgZGl2ID0gdGhpcy5jcmVhdGVJbnRlcmFjdGlvbigpOw0KICAgICAgICBkb2MuYXBwZW5kQ2hpbGQoZGl2KTsNCiAgICAgICAgbGV0IGludGVyYWN0aW9uID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQodGhpcy5pbnRlcmFjdGlvbklEKTsNCiAgICAgICAgc3dpdGNoIChtZW51S2V5KSB7DQogICAgICAgICAgICBjYXNlICJwbGF5bGlzdCI6DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gdGhpcy5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgbWVudUtleSwgInt7LmJ1dHRvbi5uZXd9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgiaWQiLCAiLSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoInBsYXlsaXN0IiknKTsNCiAgICAgICAgICAgICAgICBpbnRlcmFjdGlvbi5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJmaWx0ZXIiOg0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IHRoaXMuY3JlYXRlSW5wdXQoImJ1dHRvbiIsIG1lbnVLZXksICJ7ey5idXR0b24ubmV3fX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoImlkIiwgLTEpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoImZpbHRlciIsIHRoaXMpJyk7DQogICAgICAgICAgICAgICAgaW50ZXJhY3Rpb24uYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAieG1sdHYiOg0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IHRoaXMuY3JlYXRlSW5wdXQoImJ1dHRvbiIsIG1lbnVLZXksICJ7ey5idXR0b24ubmV3fX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoImlkIiwgInhtbHR2Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgieG1sdHYiKScpOw0KICAgICAgICAgICAgICAgIGludGVyYWN0aW9uLmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInVzZXJzIjoNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSB0aGlzLmNyZWF0ZUlucHV0KCJidXR0b24iLCBtZW51S2V5LCAie3suYnV0dG9uLm5ld319Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJpZCIsICJ1c2VycyIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoInVzZXJzIiknKTsNCiAgICAgICAgICAgICAgICBpbnRlcmFjdGlvbi5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJtYXBwaW5nIjoNCiAgICAgICAgICAgICAgICBzaG93RWxlbWVudCgibG9hZGluZyIsIHRydWUpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IHRoaXMuY3JlYXRlSW5wdXQoImJ1dHRvbiIsIG1lbnVLZXksICJ7ey5idXR0b24uc2F2ZX19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoIm1hcHBpbmciLCAiIiwgIiIpJyk7DQogICAgICAgICAgICAgICAgaW50ZXJhY3Rpb24uYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IHRoaXMuY3JlYXRlSW5wdXQoImJ1dHRvbiIsIG1lbnVLZXksICJ7ey5idXR0b24uYnVsa0VkaXR9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBidWxrRWRpdCgpJyk7DQogICAgICAgICAgICAgICAgaW50ZXJhY3Rpb24uYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IHRoaXMuY3JlYXRlSW5wdXQoInNlYXJjaCIsICJzZWFyY2giLCAiIik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJpZCIsICJzZWFyY2hNYXBwaW5nIik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5idXR0b24uc2VhcmNofX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5jbGFzc05hbWUgPSAic2VhcmNoIjsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgJ2phdmFzY3JpcHQ6IHNlYXJjaEluTWFwcGluZygpJyk7DQogICAgICAgICAgICAgICAgaW50ZXJhY3Rpb24uYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAic2V0dGluZ3MiOg0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IHRoaXMuY3JlYXRlSW5wdXQoImJ1dHRvbiIsIG1lbnVLZXksICJ7ey5idXR0b24uc2F2ZX19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IHNhdmVTZXR0aW5ncygpOycpOw0KICAgICAgICAgICAgICAgIGludGVyYWN0aW9uLmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSB0aGlzLmNyZWF0ZUlucHV0KCJidXR0b24iLCBtZW51S2V5LCAie3suYnV0dG9uLmJhY2t1cH19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IGJhY2t1cCgpOycpOw0KICAgICAgICAgICAgICAgIGludGVyYWN0aW9uLmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSB0aGlzLmNyZWF0ZUlucHV0KCJidXR0b24iLCBtZW51S2V5LCAie3suYnV0dG9uLnJlc3RvcmV9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiByZXN0b3JlKCk7Jyk7DQogICAgICAgICAgICAgICAgaW50ZXJhY3Rpb24uYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIHZhciB3cmFwcGVyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiRElWIik7DQogICAgICAgICAgICAgICAgd3JhcHBlci5zZXRBdHRyaWJ1dGUoImlkIiwgImJveC13cmFwcGVyIik7DQogICAgICAgICAgICAgICAgZG9jLmFwcGVuZENoaWxkKHdyYXBwZXIpOw0KICAgICAgICAgICAgICAgIHRoaXMuRGl2SUQgPSAiY29udGVudF9zZXR0aW5ncyI7DQogICAgICAgICAgICAgICAgdmFyIHNldHRpbmdzID0gdGhpcy5jcmVhdGVESVYoKTsNCiAgICAgICAgICAgICAgICB3cmFwcGVyLmFwcGVuZENoaWxkKHNldHRpbmdzKTsNCiAgICAgICAgICAgICAgICBzaG93U2V0dGluZ3MoKTsNCiAgICAgICAgICAgICAgICByZXR1cm47DQogICAgICAgICAgICBjYXNlICJsb2ciOg0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IHRoaXMuY3JlYXRlSW5wdXQoImJ1dHRvbiIsIG1lbnVLZXksICJ7ey5idXR0b24ucmVzZXRMb2dzfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogcmVzZXRMb2dzKCk7Jyk7DQogICAgICAgICAgICAgICAgaW50ZXJhY3Rpb24uYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIHZhciB3cmFwcGVyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiRElWIik7DQogICAgICAgICAgICAgICAgd3JhcHBlci5zZXRBdHRyaWJ1dGUoImlkIiwgImJveC13cmFwcGVyIik7DQogICAgICAgICAgICAgICAgZG9jLmFwcGVuZENoaWxkKHdyYXBwZXIpOw0KICAgICAgICAgICAgICAgIHRoaXMuRGl2SUQgPSAiY29udGVudF9sb2ciOw0KICAgICAgICAgICAgICAgIHZhciBsb2dzID0gdGhpcy5jcmVhdGVESVYoKTsNCiAgICAgICAgICAgICAgICB3cmFwcGVyLmFwcGVuZENoaWxkKGxvZ3MpOw0KICAgICAgICAgICAgICAgIHNob3dMb2dzKHRydWUpOw0KICAgICAgICAgICAgICAgIHJldHVybjsNCiAgICAgICAgICAgIGNhc2UgImxvZ291dCI6DQogICAgICAgICAgICAgICAgbG9jYXRpb24ucmVsb2FkKCk7DQogICAgICAgICAgICAgICAgZG9jdW1lbnQuY29va2llID0gIlRva2VuPSA7IGV4cGlyZXMgPSBUaHUsIDAxIEphbiAxOTcwIDAwOjAwOjAwIEdNVCI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBkZWZhdWx0Og0KICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKCJTaG93IGNvbnRlbnQgKG1lbnVLZXkpOiIsIG1lbnVLZXkpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICB9DQogICAgICAgIC8vIENyZWF0ZSB0YWJsZSAoaWYgbmVlZGVkKQ0KICAgICAgICB2YXIgdGFibGVIZWFkZXIgPSBtZW51SXRlbXNbdGhpcy5tZW51SURdLnRhYmxlSGVhZGVyOw0KICAgICAgICBpZiAodGFibGVIZWFkZXIubGVuZ3RoID4gMCkgew0KICAgICAgICAgICAgdmFyIHdyYXBwZXIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJESVYiKTsNCiAgICAgICAgICAgIGRvYy5hcHBlbmRDaGlsZCh3cmFwcGVyKTsNCiAgICAgICAgICAgIHdyYXBwZXIuc2V0QXR0cmlidXRlKCJpZCIsICJib3gtd3JhcHBlciIpOw0KICAgICAgICAgICAgdmFyIHRhYmxlID0gdGhpcy5jcmVhdGVUQUJMRSgpOw0KICAgICAgICAgICAgd3JhcHBlci5hcHBlbmRDaGlsZCh0YWJsZSk7DQogICAgICAgICAgICB2YXIgaGVhZGVyID0gdGhpcy5jcmVhdGVUYWJsZVJvdygpOw0KICAgICAgICAgICAgdGFibGUuYXBwZW5kQ2hpbGQoaGVhZGVyKTsNCiAgICAgICAgICAgIC8vIFRhYmxlIGhlYWRlcg0KICAgICAgICAgICAgdGFibGVIZWFkZXIuZm9yRWFjaChlbGVtZW50ID0+IHsNCiAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGVsZW1lbnQ7DQogICAgICAgICAgICAgICAgaWYgKGVsZW1lbnQgPT0gIkJVTEsiKSB7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIkJVTEtfSEVBRCI7DQogICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBmYWxzZTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgaWYgKG1lbnVLZXkgPT0gIm1hcHBpbmciKSB7DQogICAgICAgICAgICAgICAgICAgIGlmIChlbGVtZW50ID09ICJ7ey5tYXBwaW5nLnRhYmxlLmNoTm99fSIpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwub25jbGljayA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLm9uY2xpY2tGdW5jdGlvbiA9ICJqYXZhc2NyaXB0OiBzb3J0VGFibGUoMSk7IjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudGRDbGFzc05hbWUgPSAic29ydFRoaXMiOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIGlmIChlbGVtZW50ID09ICJ7ey5tYXBwaW5nLnRhYmxlLmNoYW5uZWxOYW1lfX0iKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLm9uY2xpY2sgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5vbmNsaWNrRnVuY3Rpb24gPSAiamF2YXNjcmlwdDogc29ydFRhYmxlKDMpOyI7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgaWYgKGVsZW1lbnQgPT0gInt7Lm1hcHBpbmcudGFibGUucGxheWxpc3R9fSIpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwub25jbGljayA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLm9uY2xpY2tGdW5jdGlvbiA9ICJqYXZhc2NyaXB0OiBzb3J0VGFibGUoNCk7IjsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBpZiAoZWxlbWVudCA9PSAie3subWFwcGluZy50YWJsZS5ncm91cFRpdGxlfX0iKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLm9uY2xpY2sgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5vbmNsaWNrRnVuY3Rpb24gPSAiamF2YXNjcmlwdDogc29ydFRhYmxlKDUpOyI7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgaWYgKGVsZW1lbnQgPT0gInt7Lm1hcHBpbmcudGFibGUudGltZXNoaWZ0fX0iKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLm9uY2xpY2sgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5vbmNsaWNrRnVuY3Rpb24gPSAiamF2YXNjcmlwdDogc29ydFRhYmxlKDgpOyI7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgaGVhZGVyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgIH0pOw0KICAgICAgICAgICAgdGFibGUuYXBwZW5kQ2hpbGQoaGVhZGVyKTsNCiAgICAgICAgICAgIC8vIENvbnRlbnQgb2YgdGhlIHRhYmxlDQogICAgICAgICAgICB2YXIgcm93cyA9IHRoaXMuY3JlYXRlVGFibGVDb250ZW50KG1lbnVLZXkpOw0KICAgICAgICAgICAgcm93cy5mb3JFYWNoKHRyID0+IHsNCiAgICAgICAgICAgICAgICB0YWJsZS5hcHBlbmRDaGlsZCh0cik7DQogICAgICAgICAgICB9KTsNCiAgICAgICAgfQ0KICAgICAgICBzd2l0Y2ggKG1lbnVLZXkpIHsNCiAgICAgICAgICAgIGNhc2UgIm1hcHBpbmciOg0KICAgICAgICAgICAgICAgIHNvcnRUYWJsZSgxKTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImZpbHRlciI6DQogICAgICAgICAgICAgICAgc2hvd1ByZXZpZXcodHJ1ZSk7DQogICAgICAgICAgICAgICAgc29ydFRhYmxlKDApOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgICAgICBDT0xVTU5fVE9fU09SVCA9IC0xOw0KICAgICAgICAgICAgICAgIHNvcnRUYWJsZSgwKTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgfQ0KICAgICAgICBzaG93RWxlbWVudCgibG9hZGluZyIsIGZhbHNlKTsNCiAgICB9DQp9DQpmdW5jdGlvbiBQYWdlUmVhZHkoKSB7DQogICAgbGV0IHNlcnZlciA9IG5ldyBTZXJ2ZXIoImdldFNlcnZlckNvbmZpZyIpOw0KICAgIHNlcnZlci5yZXF1ZXN0KHt9KTsNCiAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigicmVzaXplIiwgZnVuY3Rpb24gKCkgew0KICAgICAgICBjYWxjdWxhdGVXcmFwcGVySGVpZ2h0KCk7DQogICAgfSwgdHJ1ZSk7DQogICAgc2V0SW50ZXJ2YWwoZnVuY3Rpb24gKCkgew0KICAgICAgICB1cGRhdGVMb2coKTsNCiAgICB9LCAxMDAwMCk7DQogICAgcmV0dXJuOw0KfQ0KZnVuY3Rpb24gY3JlYXRlTGF5b3V0KCkgew0KICAgIC8vIENsaWVudCBJbmZvDQogICAgbGV0IG9iaiA9IFNFUlZFUlsiY2xpZW50SW5mbyJdOw0KICAgIGxldCBrZXlzID0gZ2V0T2JqS2V5cyhvYmopOw0KICAgIGZvciAodmFyIGkgPSAwOyBpIDwga2V5cy5sZW5ndGg7IGkrKykgew0KICAgICAgICBpZiAoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoa2V5c1tpXSkpIHsNCiAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGtleXNbaV0pLmlubmVySFRNTCA9IG9ialtrZXlzW2ldXTsNCiAgICAgICAgfQ0KICAgIH0NCiAgICBpZiAoIWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJtYWluLW1lbnUiKSkgew0KICAgICAgICByZXR1cm47DQogICAgfQ0KICAgIC8vIENyZWF0ZSBtZW51DQogICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm1haW4tbWVudSIpLmlubmVySFRNTCA9ICIiOw0KICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbWVudUl0ZW1zLmxlbmd0aDsgaSsrKSB7DQogICAgICAgIG1lbnVJdGVtc1tpXS5pZCA9IGk7DQogICAgICAgIHN3aXRjaCAobWVudUl0ZW1zW2ldWyJtZW51S2V5Il0pIHsNCiAgICAgICAgICAgIGNhc2UgInVzZXJzIjoNCiAgICAgICAgICAgIGNhc2UgImxvZ291dCI6DQogICAgICAgICAgICAgICAgaWYgKFNFUlZFUlsic2V0dGluZ3MiXVsiYXV0aGVudGljYXRpb24ud2ViIl0gPT0gdHJ1ZSkgew0KICAgICAgICAgICAgICAgICAgICBtZW51SXRlbXNbaV0uY3JlYXRlSXRlbSgpOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgIm1hcHBpbmciOg0KICAgICAgICAgICAgY2FzZSAieG1sdHYiOg0KICAgICAgICAgICAgICAgIGlmIChTRVJWRVJbImNsaWVudEluZm8iXVsiZXBnU291cmNlIl0gPT0gIlhFUEciKSB7DQogICAgICAgICAgICAgICAgICAgIG1lbnVJdGVtc1tpXS5jcmVhdGVJdGVtKCk7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgICAgICBtZW51SXRlbXNbaV0uY3JlYXRlSXRlbSgpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICB9DQogICAgfQ0KICAgIHJldHVybjsNCn0NCmZ1bmN0aW9uIG9wZW5UaGlzTWVudShlbGVtZW50KSB7DQogICAgbGV0IGlkID0gZWxlbWVudC5pZDsNCiAgICBsZXQgY29udGVudCA9IG5ldyBTaG93Q29udGVudChpZCk7DQogICAgY29udGVudC5zaG93KCk7DQogICAgY2FsY3VsYXRlV3JhcHBlckhlaWdodCgpOw0KICAgIHJldHVybjsNCn0NCmNsYXNzIFBvcHVwV2luZG93IHsNCiAgICBjb25zdHJ1Y3RvcigpIHsNCiAgICAgICAgdGhpcy5Eb2N1bWVudElEID0gInBvcHVwLWN1c3RvbSI7DQogICAgICAgIHRoaXMuSW50ZXJhY3Rpb25JRCA9ICJpbnRlcmFjdGlvbiI7DQogICAgICAgIHRoaXMuZG9jID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQodGhpcy5Eb2N1bWVudElEKTsNCiAgICB9DQogICAgY3JlYXRlVGl0bGUodGl0bGUpIHsNCiAgICAgICAgbGV0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgdGQuY2xhc3NOYW1lID0gImxlZnQiOw0KICAgICAgICB0ZC5pbm5lckhUTUwgPSB0aXRsZSArICI6IjsNCiAgICAgICAgcmV0dXJuIHRkOw0KICAgIH0NCiAgICBjcmVhdGVDb250ZW50KGVsZW1lbnQpIHsNCiAgICAgICAgbGV0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgdGQuYXBwZW5kQ2hpbGQoZWxlbWVudCk7DQogICAgICAgIHJldHVybiB0ZDsNCiAgICB9DQogICAgY3JlYXRlSW50ZXJhY3Rpb24oKSB7DQogICAgICAgIGxldCBkaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsNCiAgICAgICAgZGl2LnNldEF0dHJpYnV0ZSgiaWQiLCAicG9wdXAtaW50ZXJhY3Rpb24iKTsNCiAgICAgICAgZGl2LmNsYXNzTmFtZSA9ICJpbnRlcmFjdGlvbiI7DQogICAgICAgIHRoaXMuZG9jLmFwcGVuZENoaWxkKGRpdik7DQogICAgfQ0KfQ0KY2xhc3MgUG9wdXBDb250ZW50IGV4dGVuZHMgUG9wdXBXaW5kb3cgew0KICAgIGNvbnN0cnVjdG9yKCkgew0KICAgICAgICBzdXBlciguLi5hcmd1bWVudHMpOw0KICAgICAgICB0aGlzLnRhYmxlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEFCTEUiKTsNCiAgICB9DQogICAgY3JlYXRlSGVhZGxpbmUoaGVhZGxpbmUpIHsNCiAgICAgICAgdGhpcy5kb2MuaW5uZXJIVE1MID0gIiI7DQogICAgICAgIHZhciBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiSDMiKTsNCiAgICAgICAgZWxlbWVudC5pbm5lckhUTUwgPSBoZWFkbGluZS50b1VwcGVyQ2FzZSgpOw0KICAgICAgICB0aGlzLmRvYy5hcHBlbmRDaGlsZChlbGVtZW50KTsNCiAgICAgICAgLy8gQ3JlYXRlIHRhYmxlDQogICAgICAgIHRoaXMudGFibGUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJUQUJMRSIpOw0KICAgICAgICB0aGlzLmRvYy5hcHBlbmRDaGlsZCh0aGlzLnRhYmxlKTsNCiAgICB9DQogICAgYXBwZW5kUm93KHRpdGxlLCBlbGVtZW50KSB7DQogICAgICAgIGxldCB0ciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlRSIik7DQogICAgICAgIC8vIFRpdGxlDQogICAgICAgIGlmICh0aXRsZS5sZW5ndGggIT0gMCkgew0KICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQodGhpcy5jcmVhdGVUaXRsZSh0aXRsZSkpOw0KICAgICAgICB9DQogICAgICAgIC8vIENvbnRlbnQNCiAgICAgICAgdHIuYXBwZW5kQ2hpbGQodGhpcy5jcmVhdGVDb250ZW50KGVsZW1lbnQpKTsNCiAgICAgICAgdGhpcy50YWJsZS5hcHBlbmRDaGlsZCh0cik7DQogICAgfQ0KICAgIGNyZWF0ZUlucHV0KHR5cGUsIG5hbWUsIHZhbHVlKSB7DQogICAgICAgIGxldCBpbnB1dCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIklOUFVUIik7DQogICAgICAgIGlmICh2YWx1ZSA9PSB1bmRlZmluZWQpIHsNCiAgICAgICAgICAgIHZhbHVlID0gIiI7DQogICAgICAgIH0NCiAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJ0eXBlIiwgdHlwZSk7DQogICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgibmFtZSIsIG5hbWUpOw0KICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInZhbHVlIiwgdmFsdWUpOw0KICAgICAgICByZXR1cm4gaW5wdXQ7DQogICAgfQ0KICAgIGNyZWF0ZUNoZWNrYm94KG5hbWUpIHsNCiAgICAgICAgbGV0IGlucHV0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiSU5QVVQiKTsNCiAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJ0eXBlIiwgImNoZWNrYm94Iik7DQogICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgibmFtZSIsIG5hbWUpOw0KICAgICAgICByZXR1cm4gaW5wdXQ7DQogICAgfQ0KICAgIC8vIENyZWF0ZXMgYSBzZWxlY3Rpb24gb2YgbXVsdGlwbGUgb3B0aW9ucyB2YWx1ZXMgd2l0aCB0ZXh0IGRlc2NyaXB0aW9ucw0KICAgIGNyZWF0ZVNlbGVjdCh0ZXh0LCB2YWx1ZXMsIHNldCwgZGJLZXkpIHsNCiAgICAgICAgbGV0IHNlbGVjdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlNFTEVDVCIpOw0KICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJuYW1lIiwgZGJLZXkpOw0KICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRleHQubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgICAgIGxldCBvcHRpb24gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJPUFRJT04iKTsNCiAgICAgICAgICAgIG9wdGlvbi5zZXRBdHRyaWJ1dGUoInZhbHVlIiwgdmFsdWVzW2ldKTsNCiAgICAgICAgICAgIG9wdGlvbi5pbm5lclRleHQgPSB0ZXh0W2ldOw0KICAgICAgICAgICAgc2VsZWN0LmFwcGVuZENoaWxkKG9wdGlvbik7DQogICAgICAgIH0NCiAgICAgICAgaWYgKHNldCAhPSAiIikgew0KICAgICAgICAgICAgc2VsZWN0LnZhbHVlID0gc2V0Ow0KICAgICAgICB9DQogICAgICAgIGlmIChzZXQgPT0gdW5kZWZpbmVkKSB7DQogICAgICAgICAgICBzZWxlY3QudmFsdWUgPSB2YWx1ZXNbMF07DQogICAgICAgIH0NCiAgICAgICAgcmV0dXJuIHNlbGVjdDsNCiAgICB9DQogICAgc2VsZWN0T3B0aW9uKHNlbGVjdCwgdmFsdWUpIHsNCiAgICAgICAgLy9zZWxlY3Quc2VsZWN0ZWRPcHRpb25zID0gdmFsdWUNCiAgICAgICAgbGV0IHMgPSBzZWxlY3Q7DQogICAgICAgIHMub3B0aW9uc1tzLnNlbGVjdGVkSW5kZXhdLnZhbHVlID0gdmFsdWU7DQogICAgICAgIHJldHVybiBzZWxlY3Q7DQogICAgfQ0KICAgIGRlc2NyaXB0aW9uKHZhbHVlKSB7DQogICAgICAgIGxldCB0ciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlRSIik7DQogICAgICAgIGxldCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgIGxldCBzcGFuID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiUFJFIik7DQogICAgICAgIHNwYW4uaW5uZXJIVE1MID0gdmFsdWU7DQogICAgICAgIHRyLmFwcGVuZENoaWxkKHRkKTsNCiAgICAgICAgdHIuYXBwZW5kQ2hpbGQodGhpcy5jcmVhdGVDb250ZW50KHNwYW4pKTsNCiAgICAgICAgdGhpcy50YWJsZS5hcHBlbmRDaGlsZCh0cik7DQogICAgfQ0KICAgIC8vIEludGVyYWN0aW9uDQogICAgYWRkSW50ZXJhY3Rpb24oZWxlbWVudCkgew0KICAgICAgICBsZXQgaW50ZXJhY3Rpb24gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicG9wdXAtaW50ZXJhY3Rpb24iKTsNCiAgICAgICAgaW50ZXJhY3Rpb24uYXBwZW5kQ2hpbGQoZWxlbWVudCk7DQogICAgfQ0KfQ0KZnVuY3Rpb24gb3BlblBvcFVwKGRhdGFUeXBlLCBlbGVtZW50KSB7DQogICAgbGV0IGRhdGEgPSB7fTsNCiAgICBsZXQgaWQ7DQogICAgc3dpdGNoIChlbGVtZW50KSB7DQogICAgICAgIGNhc2UgdW5kZWZpbmVkOg0KICAgICAgICAgICAgc3dpdGNoIChkYXRhVHlwZSkgew0KICAgICAgICAgICAgICAgIGNhc2UgImdyb3VwLXRpdGxlIjoNCiAgICAgICAgICAgICAgICAgICAgaWYgKGlkID09IHVuZGVmaW5lZCkgew0KICAgICAgICAgICAgICAgICAgICAgICAgaWQgPSAtMTsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBkYXRhID0gZ2V0TG9jYWxEYXRhKCJmaWx0ZXIiLCBpZCk7DQogICAgICAgICAgICAgICAgICAgIGRhdGFbInR5cGUiXSA9ICJncm91cC10aXRsZSI7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgImN1c3RvbS1maWx0ZXIiOg0KICAgICAgICAgICAgICAgICAgICBpZiAoaWQgPT0gdW5kZWZpbmVkKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBpZCA9IC0xOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIGRhdGEgPSBnZXRMb2NhbERhdGEoImZpbHRlciIsIGlkKTsNCiAgICAgICAgICAgICAgICAgICAgZGF0YVsidHlwZSJdID0gImN1c3RvbS1maWx0ZXIiOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBkZWZhdWx0Og0KICAgICAgICAgICAgICAgICAgICBkYXRhWyJpZC5wcm92aWRlciJdID0gIi0iOw0KICAgICAgICAgICAgICAgICAgICBkYXRhWyJ0eXBlIl0gPSBkYXRhVHlwZTsNCiAgICAgICAgICAgICAgICAgICAgaWQgPSAiLSI7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICBpZCA9IGVsZW1lbnQuaWQ7DQogICAgICAgICAgICBkYXRhID0gZ2V0TG9jYWxEYXRhKGRhdGFUeXBlLCBpZCk7DQogICAgICAgICAgICBicmVhazsNCiAgICB9DQogICAgbGV0IGNvbnRlbnQgPSBuZXcgUG9wdXBDb250ZW50KCk7DQogICAgc3dpdGNoIChkYXRhVHlwZSkgew0KICAgICAgICBjYXNlICJwbGF5bGlzdCI6DQogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUhlYWRsaW5lKCJ7ey5wbGF5bGlzdC5wbGF5bGlzdFR5cGUudGl0bGV9fSIpOw0KICAgICAgICAgICAgLy8gVHlwZQ0KICAgICAgICAgICAgdmFyIHRleHQgPSBbIk0zVSIsICJIREhvbWVSdW4iXTsNCiAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBbImphdmFzY3JpcHQ6IG9wZW5Qb3BVcCgnbTN1JykiLCAiamF2YXNjcmlwdDogb3BlblBvcFVwKCdoZGhyJykiXTsNCiAgICAgICAgICAgIHZhciBzZWxlY3QgPSBjb250ZW50LmNyZWF0ZVNlbGVjdCh0ZXh0LCB2YWx1ZXMsICIiLCAidHlwZSIpOw0KICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgiaWQiLCAidHlwZSIpOw0KICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAnamF2YXNjcmlwdDogY2hhbmdlQnV0dG9uQWN0aW9uKHRoaXMsICJuZXh0IiwgIm9uY2xpY2siKScpOyAvLyBjaGFuZ2VCdXR0b25BY3Rpb24NCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5wbGF5bGlzdC50eXBlLnRpdGxlfX0iLCBzZWxlY3QpOw0KICAgICAgICAgICAgLy8gSW50ZXJhY3Rpb24NCiAgICAgICAgICAgIGNvbnRlbnQuY3JlYXRlSW50ZXJhY3Rpb24oKTsNCiAgICAgICAgICAgIC8vIEFib3J0DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAiY2FuY2VsIiwgInt7LmJ1dHRvbi5jYW5jZWx9fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IHNob3dFbGVtZW50KCJwb3B1cCIsIGZhbHNlKTsnKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgLy8gTmV4dA0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgIm5leHQiLCAie3suYnV0dG9uLm5leHR9fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgibTN1IiknKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgiaWQiLCAnbmV4dCcpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSAibTN1IjoNCiAgICAgICAgICAgIGNvbnRlbnQuY3JlYXRlSGVhZGxpbmUoZGF0YVR5cGUpOw0KICAgICAgICAgICAgLy8gTmFtZQ0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gIm5hbWUiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnBsYXlsaXN0Lm5hbWUucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnBsYXlsaXN0Lm5hbWUudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIERlc2NyaXB0aW9uDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAiZGVzY3JpcHRpb24iOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnBsYXlsaXN0LmRlc2NyaXB0aW9uLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5wbGF5bGlzdC5kZXNjcmlwdGlvbi50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgLy8gVVJMDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAiZmlsZS5zb3VyY2UiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnBsYXlsaXN0LmZpbGVNM1UucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnBsYXlsaXN0LmZpbGVNM1UudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIFR1bmVyDQogICAgICAgICAgICBpZiAoU0VSVkVSWyJzZXR0aW5ncyJdWyJidWZmZXIiXSAhPSAiLSIpIHsNCiAgICAgICAgICAgICAgICB2YXIgdGV4dCA9IFtdOw0KICAgICAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBbXTsNCiAgICAgICAgICAgICAgICBmb3IgKHZhciBpID0gMTsgaSA8PSAxMDA7IGkrKykgew0KICAgICAgICAgICAgICAgICAgICB0ZXh0LnB1c2goaS50b1N0cmluZygpKTsNCiAgICAgICAgICAgICAgICAgICAgdmFsdWVzLnB1c2goaS50b1N0cmluZygpKTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgdmFyIGRiS2V5ID0gInR1bmVyIjsNCiAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCBkYXRhW2RiS2V5XSwgZGJLZXkpOw0KICAgICAgICAgICAgICAgIHNlbGVjdC5zZXRBdHRyaWJ1dGUoIm9uZm9jdXMiLCAiamF2YXNjcmlwdDogcmV0dXJuOyIpOw0KICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5wbGF5bGlzdC50dW5lci50aXRsZX19Iiwgc2VsZWN0KTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgICAgIHZhciBkYktleSA9ICJ0dW5lciI7DQogICAgICAgICAgICAgICAgaWYgKGRhdGFbZGJLZXldID09IHVuZGVmaW5lZCkgew0KICAgICAgICAgICAgICAgICAgICBkYXRhW2RiS2V5XSA9IDE7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicmVhZG9ubHkiLCAidHJ1ZSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LmNsYXNzTmFtZSA9ICJub3RBdmFpbGFibGUiOw0KICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5wbGF5bGlzdC50dW5lci50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgY29udGVudC5kZXNjcmlwdGlvbigie3sucGxheWxpc3QudHVuZXIuZGVzY3JpcHRpb259fSIpOw0KICAgICAgICAgICAgLy8gSW50ZXJhdGlvbg0KICAgICAgICAgICAgY29udGVudC5jcmVhdGVJbnRlcmFjdGlvbigpOw0KICAgICAgICAgICAgLy8gRGVsZXRlDQogICAgICAgICAgICBpZiAoZGF0YVsiaWQucHJvdmlkZXIiXSAhPSAiLSIpIHsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAiZGVsZXRlIiwgInt7LmJ1dHRvbi5kZWxldGV9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LmNsYXNzTmFtZSA9ICJkZWxldGUiOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBzYXZlUG9wdXBEYXRhKCJtM3UiLCAiJyArIGlkICsgJyIsIHRydWUsIDApJyk7DQogICAgICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAiYmFjayIsICJ7ey5idXR0b24uYmFja319Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgicGxheWxpc3QiKScpOw0KICAgICAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgLy8gQWJvcnQNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJjYW5jZWwiLCAie3suYnV0dG9uLmNhbmNlbH19Iik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogc2hvd0VsZW1lbnQoInBvcHVwIiwgZmFsc2UpOycpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICAvLyBVcGRhdGUNCiAgICAgICAgICAgIGlmIChkYXRhWyJpZC5wcm92aWRlciJdICE9ICItIikgew0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJ1cGRhdGUiLCAie3suYnV0dG9uLnVwZGF0ZX19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoIm0zdSIsICInICsgaWQgKyAnIiwgZmFsc2UsIDEpJyk7DQogICAgICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICAvLyBTYXZlDQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAic2F2ZSIsICJ7ey5idXR0b24uc2F2ZX19Iik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogc2F2ZVBvcHVwRGF0YSgibTN1IiwgIicgKyBpZCArICciLCBmYWxzZSwgMCknKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGNhc2UgImhkaHIiOg0KICAgICAgICAgICAgY29udGVudC5jcmVhdGVIZWFkbGluZShkYXRhVHlwZSk7DQogICAgICAgICAgICAvLyBOYW1lDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAibmFtZSI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3sucGxheWxpc3QubmFtZS5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sucGxheWxpc3QubmFtZS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgLy8gRGVzY3JpcHRpb24NCiAgICAgICAgICAgIHZhciBkYktleSA9ICJkZXNjcmlwdGlvbiI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3sucGxheWxpc3QuZGVzY3JpcHRpb24ucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnBsYXlsaXN0LmRlc2NyaXB0aW9uLnBsYWNlaG9sZGVyfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBVUkwNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJmaWxlLnNvdXJjZSI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3sucGxheWxpc3QuZmlsZUhESFIucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnBsYXlsaXN0LmZpbGVIREhSLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBUdW5lcg0KICAgICAgICAgICAgaWYgKFNFUlZFUlsic2V0dGluZ3MiXVsiYnVmZmVyIl0gIT0gIi0iKSB7DQogICAgICAgICAgICAgICAgdmFyIHRleHQgPSBbXTsNCiAgICAgICAgICAgICAgICB2YXIgdmFsdWVzID0gW107DQogICAgICAgICAgICAgICAgZm9yICh2YXIgaSA9IDE7IGkgPD0gMTAwOyBpKyspIHsNCiAgICAgICAgICAgICAgICAgICAgdGV4dC5wdXNoKGkudG9TdHJpbmcoKSk7DQogICAgICAgICAgICAgICAgICAgIHZhbHVlcy5wdXNoKGkudG9TdHJpbmcoKSk7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIHZhciBkYktleSA9ICJ0dW5lciI7DQogICAgICAgICAgICAgICAgdmFyIHNlbGVjdCA9IGNvbnRlbnQuY3JlYXRlU2VsZWN0KHRleHQsIHZhbHVlcywgZGF0YVtkYktleV0sIGRiS2V5KTsNCiAgICAgICAgICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJvbmZvY3VzIiwgImphdmFzY3JpcHQ6IHJldHVybjsiKTsNCiAgICAgICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sucGxheWxpc3QudHVuZXIudGl0bGV9fSIsIHNlbGVjdCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICB2YXIgZGJLZXkgPSAidHVuZXIiOw0KICAgICAgICAgICAgICAgIGlmIChkYXRhW2RiS2V5XSA9PSB1bmRlZmluZWQpIHsNCiAgICAgICAgICAgICAgICAgICAgZGF0YVtkYktleV0gPSAxOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInJlYWRvbmx5IiwgInRydWUiKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5jbGFzc05hbWUgPSAibm90QXZhaWxhYmxlIjsNCiAgICAgICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sucGxheWxpc3QudHVuZXIudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGNvbnRlbnQuZGVzY3JpcHRpb24oInt7LnBsYXlsaXN0LnR1bmVyLmRlc2NyaXB0aW9ufX0iKTsNCiAgICAgICAgICAgIC8vIEludGVyYWN0aW9uDQogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUludGVyYWN0aW9uKCk7DQogICAgICAgICAgICAvLyBEZWxldGUNCiAgICAgICAgICAgIGlmIChkYXRhWyJpZC5wcm92aWRlciJdICE9ICItIikgew0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJkZWxldGUiLCAie3suYnV0dG9uLmRlbGV0ZX19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoImhkaHIiLCAiJyArIGlkICsgJyIsIHRydWUsIDApJyk7DQogICAgICAgICAgICAgICAgaW5wdXQuY2xhc3NOYW1lID0gImRlbGV0ZSI7DQogICAgICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAiYmFjayIsICJ7ey5idXR0b24uYmFja319Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgicGxheWxpc3QiKScpOw0KICAgICAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgLy8gQWJvcnQNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJjYW5jZWwiLCAie3suYnV0dG9uLmNhbmNlbH19Iik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogc2hvd0VsZW1lbnQoInBvcHVwIiwgZmFsc2UpOycpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICAvLyBVcGRhdGUNCiAgICAgICAgICAgIGlmIChkYXRhWyJpZC5wcm92aWRlciJdICE9ICItIikgew0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJ1cGRhdGUiLCAie3suYnV0dG9uLnVwZGF0ZX19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoImhkaHIiLCAiJyArIGlkICsgJyIsIGZhbHNlLCAxKScpOw0KICAgICAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgLy8gU2F2ZQ0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgInNhdmUiLCAie3suYnV0dG9uLnNhdmV9fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoImhkaHIiLCAiJyArIGlkICsgJyIsIGZhbHNlLCAwKScpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSAiZmlsdGVyIjoNCiAgICAgICAgICAgIGNvbnRlbnQuY3JlYXRlSGVhZGxpbmUoZGF0YVR5cGUpOw0KICAgICAgICAgICAgLy8gVHlwZQ0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gInR5cGUiOw0KICAgICAgICAgICAgdmFyIHRleHQgPSBbIk0zVTogIiArICJ7ey5maWx0ZXIudHlwZS5ncm91cFRpdGxlfX0iLCAieFRlVmU6ICIgKyAie3suZmlsdGVyLnR5cGUuY3VzdG9tRmlsdGVyfX0iXTsNCiAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBbImphdmFzY3JpcHQ6IG9wZW5Qb3BVcCgnZ3JvdXAtdGl0bGUnKSIsICJqYXZhc2NyaXB0OiBvcGVuUG9wVXAoJ2N1c3RvbS1maWx0ZXInKSJdOw0KICAgICAgICAgICAgdmFyIHNlbGVjdCA9IGNvbnRlbnQuY3JlYXRlU2VsZWN0KHRleHQsIHZhbHVlcywgImphdmFzY3JpcHQ6IG9wZW5Qb3BVcCgnZ3JvdXAtdGl0bGUnKSIsIGRiS2V5KTsNCiAgICAgICAgICAgIHNlbGVjdC5zZXRBdHRyaWJ1dGUoImlkIiwgaWQpOw0KICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAnamF2YXNjcmlwdDogY2hhbmdlQnV0dG9uQWN0aW9uKHRoaXMsICJuZXh0IiwgIm9uY2xpY2siKTsnKTsgLy8gY2hhbmdlQnV0dG9uQWN0aW9uDQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3suZmlsdGVyLnR5cGUudGl0bGV9fSIsIHNlbGVjdCk7DQogICAgICAgICAgICAvLyBJbnRlcmFjdGlvbg0KICAgICAgICAgICAgY29udGVudC5jcmVhdGVJbnRlcmFjdGlvbigpOw0KICAgICAgICAgICAgLy8gQWJvcnQNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJjYW5jZWwiLCAie3suYnV0dG9uLmNhbmNlbH19Iik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogc2hvd0VsZW1lbnQoInBvcHVwIiwgZmFsc2UpOycpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICAvLyBOZXh0DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAibmV4dCIsICJ7ey5idXR0b24ubmV4dH19Iik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJncm91cC10aXRsZSIpJyk7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoImlkIiwgJ25leHQnKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGNhc2UgImN1c3RvbS1maWx0ZXIiOg0KICAgICAgICBjYXNlICJncm91cC10aXRsZSI6DQogICAgICAgICAgICBzd2l0Y2ggKGRhdGFUeXBlKSB7DQogICAgICAgICAgICAgICAgY2FzZSAiY3VzdG9tLWZpbHRlciI6DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuY3JlYXRlSGVhZGxpbmUoInt7LmZpbHRlci5jdXN0b219fSIgKyAiIEZpbHRlciIpOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBjYXNlICJncm91cC10aXRsZSI6DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuY3JlYXRlSGVhZGxpbmUoInt7LmZpbHRlci5ncm91cH19IiArICIgRmlsdGVyIik7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgLy8gTmFtZSAgICAgIA0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gIm5hbWUiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LmZpbHRlci5uYW1lLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5maWx0ZXIubmFtZS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgLy8gRGVzY3JpcHRpb24NCiAgICAgICAgICAgIHZhciBkYktleSA9ICJkZXNjcmlwdGlvbiI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3suZmlsdGVyLmRlc2NyaXB0aW9uLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5maWx0ZXIuZGVzY3JpcHRpb24udGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIFR5cGUNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJ0eXBlIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImhpZGRlbiIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygiIiwgaW5wdXQpOw0KICAgICAgICAgICAgdmFyIGZpbHRlclR5cGUgPSBkYXRhW2RiS2V5XTsNCiAgICAgICAgICAgIHN3aXRjaCAoZmlsdGVyVHlwZSkgew0KICAgICAgICAgICAgICAgIGNhc2UgImN1c3RvbS1maWx0ZXIiOg0KICAgICAgICAgICAgICAgICAgICAvLyBDYXNlIHNlbnNpdGl2ZQ0KICAgICAgICAgICAgICAgICAgICB2YXIgZGJLZXkgPSAiY2FzZVNlbnNpdGl2ZSI7DQogICAgICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goZGJLZXkpOw0KICAgICAgICAgICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YVtkYktleV07DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5maWx0ZXIuY2FzZVNlbnNpdGl2ZS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgICAgICAgICAvLyBGaWx0ZXIgUnVsZSAoQ3VzdG9tKQ0KICAgICAgICAgICAgICAgICAgICB2YXIgZGJLZXkgPSAiZmlsdGVyIjsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3suZmlsdGVyLmZpbHRlclJ1bGUucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3suZmlsdGVyLmZpbHRlclJ1bGUudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAiZ3JvdXAtdGl0bGUiOg0KICAgICAgICAgICAgICAgICAgICAvL2FsZXJ0KGRiS2V5ICsgIiAiICsgZmlsdGVyVHlwZSkNCiAgICAgICAgICAgICAgICAgICAgLy8gRmlsdGVyIGJhc2VkIG9uIHRoZSBncm91cHMgaW4gdGhlIE0zVQ0KICAgICAgICAgICAgICAgICAgICB2YXIgZGJLZXkgPSAiZmlsdGVyIjsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGdyb3Vwc00zVSA9IGdldExvY2FsRGF0YSgibTN1R3JvdXBzIiwgIiIpOw0KICAgICAgICAgICAgICAgICAgICB2YXIgdGV4dCA9IGdyb3Vwc00zVVsidGV4dCJdOw0KICAgICAgICAgICAgICAgICAgICB2YXIgdmFsdWVzID0gZ3JvdXBzTTNVWyJ2YWx1ZSJdOw0KICAgICAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCBkYXRhW2RiS2V5XSwgZGJLZXkpOw0KICAgICAgICAgICAgICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3suZmlsdGVyLmZpbHRlckdyb3VwLnRpdGxlfX0iLCBzZWxlY3QpOw0KICAgICAgICAgICAgICAgICAgICBjb250ZW50LmRlc2NyaXB0aW9uKCJ7ey5maWx0ZXIuZmlsdGVyR3JvdXAuZGVzY3JpcHRpb259fSIpOw0KICAgICAgICAgICAgICAgICAgICAvLyBDYXNlIHNlbnNldGl2ZQ0KICAgICAgICAgICAgICAgICAgICB2YXIgZGJLZXkgPSAiY2FzZVNlbnNpdGl2ZSI7DQogICAgICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goZGJLZXkpOw0KICAgICAgICAgICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YVtkYktleV07DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5maWx0ZXIuY2FzZVNlbnNpdGl2ZS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgICAgICAgICB2YXIgZGJLZXkgPSAiaW5jbHVkZSI7DQogICAgICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LmZpbHRlci5pbmNsdWRlLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LmZpbHRlci5pbmNsdWRlLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuZGVzY3JpcHRpb24oInt7LmZpbHRlci5pbmNsdWRlLmRlc2NyaXB0aW9ufX0iKTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGRiS2V5ID0gImV4Y2x1ZGUiOw0KICAgICAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5maWx0ZXIuZXhjbHVkZS5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5maWx0ZXIuZXhjbHVkZS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgICAgICAgICBjb250ZW50LmRlc2NyaXB0aW9uKCJ7ey5maWx0ZXIuZXhjbHVkZS5kZXNjcmlwdGlvbn19Iik7DQogICAgICAgICAgICAgICAgICAgIC8vIFByZXNlcnZlIE0zVSBQbGF5bGlzdCBDaGFubmVsIE1hcHBpbmcNCiAgICAgICAgICAgICAgICAgICAgdmFyIGRiS2V5ID0gInByZXNlcnZlTWFwcGluZyI7DQogICAgICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goZGJLZXkpOw0KICAgICAgICAgICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YVtkYktleV07DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5maWx0ZXIucHJlc2VydmVNYXBwaW5nLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAgICAgICAgIC8vIFN0YXJ0aW5nIENoYW5uZWwgTnVtYmVyIE1hcHBpbmcNCiAgICAgICAgICAgICAgICAgICAgdmFyIGRiS2V5ID0gInN0YXJ0aW5nQ2hhbm5lbCI7DQogICAgICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LmZpbHRlci5zdGFydGluZ0NoYW5uZWwucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3suZmlsdGVyLnN0YXJ0aW5nQ2hhbm5lbC50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgICAgICAgICAvLyBGaWxsIE1pc3NpbmcgRVBHIERhdGENCiAgICAgICAgICAgICAgICAgICAgLy8gVGhlIGZvbGxvd2luZyBjb2RlIG9ubHkgd29ya3Mgd2hlbiB4VGVWZSBEdW1teSBhbHJlYWR5IGV4aXN0cw0KICAgICAgICAgICAgICAgICAgICAvLyB2YXIgZGJLZXk6c3RyaW5nID0gImRlZmF1bHRNaXNzaW5nRVBHIg0KICAgICAgICAgICAgICAgICAgICAvLyB2YXIgeG1sdHY6WE1MVFZGaWxlID0gbmV3IFhNTFRWRmlsZSgpDQogICAgICAgICAgICAgICAgICAgIC8vIHZhciBzZWxlY3QgPSB4bWx0di5nZXRQcm9ncmFtcygieFRlVmUgRHVtbXkiLCBkYXRhW2RiS2V5XSkNCiAgICAgICAgICAgICAgICAgICAgLy8gc2VsZWN0LnNldEF0dHJpYnV0ZSgibmFtZSIsIGRiS2V5KQ0KICAgICAgICAgICAgICAgICAgICAvLyBzZWxlY3Quc2V0QXR0cmlidXRlKCJpZCIsICJwb3B1cC1taXNzaW5nLWVwZyIpDQogICAgICAgICAgICAgICAgICAgIC8vIFRoZSB3b3JrYXJvdW5kIGlzIGN1cnJlbnRseSB0byBoYXJkIGNvZGUgdGhlIHhUZVZlIER1bW15IGRhdGENCiAgICAgICAgICAgICAgICAgICAgdmFyIGRiS2V5ID0gImRlZmF1bHRNaXNzaW5nRVBHIjsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGxpc3RPcHRpb25zID0geyAidGV4dCI6IFsiLSIsICIzMCBNaW51dGVzICgzMF9NaW51dGVzKSIsICI2MCBNaW51dGVzICg2MF9NaW51dGVzKSIsICI5MCBNaW51dGVzICg5MF9NaW51dGVzKSIsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgIjEyMCBNaW51dGVzICgxMjBfTWludXRlcykiLCAiMTgwIE1pbnV0ZXMgKDMwX01pbnV0ZXMpIiwgIjI0MCBNaW51dGVzICgzMF9NaW51dGVzKSIsICIzNjAgTWludXRlcyAoMzBfTWludXRlcykiXSwNCiAgICAgICAgICAgICAgICAgICAgICAgICJ2YWx1ZSI6IFsiLSIsICIzMF9NaW51dGVzIiwgIjYwX01pbnV0ZXMiLCAiOTBfTWludXRlcyIsICIxMjBfTWludXRlcyIsICIxODBfTWludXRlcyIsICIyNDBfTWludXRlcyIsICIzNjBfTWludXRlcyIsXSB9Ow0KICAgICAgICAgICAgICAgICAgICB2YXIgdGV4dCA9IGxpc3RPcHRpb25zWyJ0ZXh0Il07DQogICAgICAgICAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBsaXN0T3B0aW9uc1sidmFsdWUiXTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHNlbGVjdCA9IGNvbnRlbnQuY3JlYXRlU2VsZWN0KHRleHQsIHZhbHVlcywgZGF0YVtkYktleV0sIGRiS2V5KTsNCiAgICAgICAgICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LmZpbHRlci5kZWZhdWx0TWlzc2luZ0VQRy50aXRsZX19Iiwgc2VsZWN0KTsNCiAgICAgICAgICAgICAgICAgICAgY29udGVudC5kZXNjcmlwdGlvbigie3suZmlsdGVyLmRlZmF1bHRNaXNzaW5nRVBHLmRlc2NyaXB0aW9ufX0iKTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICB9DQogICAgICAgICAgICAvLyBJbnRlcmFjdGlvbg0KICAgICAgICAgICAgY29udGVudC5jcmVhdGVJbnRlcmFjdGlvbigpOw0KICAgICAgICAgICAgLy8gRGVsZXRlDQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAiZGVsZXRlIiwgInt7LmJ1dHRvbi5kZWxldGV9fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoImZpbHRlciIsICInICsgaWQgKyAnIiwgdHJ1ZSwgMCknKTsNCiAgICAgICAgICAgIGlucHV0LmNsYXNzTmFtZSA9ICJkZWxldGUiOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICAvLyBBYm9ydA0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImNhbmNlbCIsICJ7ey5idXR0b24uY2FuY2VsfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBzaG93RWxlbWVudCgicG9wdXAiLCBmYWxzZSk7Jyk7DQogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIC8vIFNhdmUNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJzYXZlIiwgInt7LmJ1dHRvbi5zYXZlfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBzYXZlUG9wdXBEYXRhKCJmaWx0ZXIiLCAiJyArIGlkICsgJyIsIGZhbHNlLCAwKScpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSAieG1sdHYiOg0KICAgICAgICAgICAgY29udGVudC5jcmVhdGVIZWFkbGluZShkYXRhVHlwZSk7DQogICAgICAgICAgICAvLyBOYW1lDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAibmFtZSI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3sueG1sdHYubmFtZS5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sueG1sdHYubmFtZS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgLy8gRGVzY3JpcHRpb24NCiAgICAgICAgICAgIHZhciBkYktleSA9ICJkZXNjcmlwdGlvbiI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3sueG1sdHYuZGVzY3JpcHRpb24ucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnhtbHR2LmRlc2NyaXB0aW9uLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBVUkwNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJmaWxlLnNvdXJjZSI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3sueG1sdHYuZmlsZVhNTFRWLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey54bWx0di5maWxlWE1MVFYudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIEludGVyYWN0aW9uDQogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUludGVyYWN0aW9uKCk7DQogICAgICAgICAgICAvLyBEZWxldGUNCiAgICAgICAgICAgIGlmIChkYXRhWyJpZC5wcm92aWRlciJdICE9ICItIikgew0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJkZWxldGUiLCAie3suYnV0dG9uLmRlbGV0ZX19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoInhtbHR2IiwgIicgKyBpZCArICciLCB0cnVlLCAwKScpOw0KICAgICAgICAgICAgICAgIGlucHV0LmNsYXNzTmFtZSA9ICJkZWxldGUiOw0KICAgICAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgLy8gQWJvcnQNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJjYW5jZWwiLCAie3suYnV0dG9uLmNhbmNlbH19Iik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogc2hvd0VsZW1lbnQoInBvcHVwIiwgZmFsc2UpOycpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICAvLyBVcGRhdGUNCiAgICAgICAgICAgIGlmIChkYXRhWyJpZC5wcm92aWRlciJdICE9ICItIikgew0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJ1cGRhdGUiLCAie3suYnV0dG9uLnVwZGF0ZX19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoInhtbHR2IiwgIicgKyBpZCArICciLCBmYWxzZSwgMSknKTsNCiAgICAgICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIC8vIFNhdmUNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJzYXZlIiwgInt7LmJ1dHRvbi5zYXZlfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBzYXZlUG9wdXBEYXRhKCJ4bWx0diIsICInICsgaWQgKyAnIiwgZmFsc2UsIDApJyk7DQogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJ1c2VycyI6DQogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUhlYWRsaW5lKCJ7ey5tYWluTWVudS5pdGVtLnVzZXJzfX0iKTsNCiAgICAgICAgICAgIC8vIFVzZXIgbmFtZQ0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gInVzZXJuYW1lIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey51c2Vycy51c2VybmFtZS5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sudXNlcnMudXNlcm5hbWUudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIE5ldyBQYXJzc3dvcmQNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJwYXNzd29yZCI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJwYXNzd29yZCIsIGRiS2V5LCAiIik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnVzZXJzLnBhc3N3b3JkLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey51c2Vycy5wYXNzd29yZC50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgLy8gQ29uZmlybWF0aW9uDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAiY29uZmlybSI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJwYXNzd29yZCIsIGRiS2V5LCAiIik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnVzZXJzLmNvbmZpcm0ucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnVzZXJzLmNvbmZpcm0udGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIEF1dGhlbnRpY2F0aW9uIFdFQg0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gImF1dGhlbnRpY2F0aW9uLndlYiI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KGRiS2V5KTsNCiAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhW2RiS2V5XTsNCiAgICAgICAgICAgIGlmIChkYXRhWyJkZWZhdWx0VXNlciJdID09IHRydWUpIHsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAiamF2YXNjcmlwdDogcmV0dXJuIGZhbHNlIik7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sudXNlcnMud2ViLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBBdXRoZW50aWNhdGlvbiBQTVMNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJhdXRoZW50aWNhdGlvbi5wbXMiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChkYktleSk7DQogICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YVtkYktleV07DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sudXNlcnMucG1zLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBBdXRoZW50aWNhdGlvbiBNM1UNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJhdXRoZW50aWNhdGlvbi5tM3UiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChkYktleSk7DQogICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YVtkYktleV07DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sudXNlcnMubTN1LnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBBdXRoZW50aWNhdGlvbiBYTUwNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJhdXRoZW50aWNhdGlvbi54bWwiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChkYktleSk7DQogICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YVtkYktleV07DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sudXNlcnMueG1sLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBBdXRoZW50aWNhdGlvbiBBUEkNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJhdXRoZW50aWNhdGlvbi5hcGkiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChkYktleSk7DQogICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YVtkYktleV07DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sudXNlcnMuYXBpLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBJbnRlcmFjdGlvbg0KICAgICAgICAgICAgY29udGVudC5jcmVhdGVJbnRlcmFjdGlvbigpOw0KICAgICAgICAgICAgLy8gRGVsZXRlDQogICAgICAgICAgICBpZiAoZGF0YVsiZGVmYXVsdFVzZXIiXSAhPSB0cnVlICYmIGlkICE9ICItIikgew0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJkZWxldGUiLCAie3suYnV0dG9uLmRlbGV0ZX19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuY2xhc3NOYW1lID0gImRlbGV0ZSI7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoIicgKyBkYXRhVHlwZSArICciLCAiJyArIGlkICsgJyIsIHRydWUsIDApJyk7DQogICAgICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICAvLyBBYm9ydA0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImNhbmNlbCIsICJ7ey5idXR0b24uY2FuY2VsfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBzaG93RWxlbWVudCgicG9wdXAiLCBmYWxzZSk7Jyk7DQogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIC8vIFNhdmUNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJzYXZlIiwgInt7LmJ1dHRvbi5zYXZlfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBzYXZlUG9wdXBEYXRhKCInICsgZGF0YVR5cGUgKyAnIiwgIicgKyBpZCArICciLCAiZmFsc2UiKTsnKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGNhc2UgIm1hcHBpbmciOg0KICAgICAgICAgICAgY29udGVudC5jcmVhdGVIZWFkbGluZSgie3subWFpbk1lbnUuaXRlbS5tYXBwaW5nfX0iKTsNCiAgICAgICAgICAgIC8vIEFjdGl2ZQ0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gIngtYWN0aXZlIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goZGJLZXkpOw0KICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGFbZGJLZXldOw0KICAgICAgICAgICAgaW5wdXQuaWQgPSAiYWN0aXZlIjsNCiAgICAgICAgICAgIC8vaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpDQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRvZ2dsZUNoYW5uZWxTdGF0dXMoJyIgKyBpZCArICInLCB0aGlzKSIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7Lm1hcHBpbmcuYWN0aXZlLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBDaGFubmVsIG5hbWUNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJ4LW5hbWUiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICBpZiAoQlVMS19FRElUID09IHRydWUpIHsNCiAgICAgICAgICAgICAgICBpbnB1dC5zdHlsZS5ib3JkZXIgPSAic29saWQgMXB4IHJlZCI7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJyZWFkb25seSIsICJ0cnVlIik7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3subWFwcGluZy5jaGFubmVsTmFtZS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgY29udGVudC5kZXNjcmlwdGlvbihkYXRhWyJuYW1lIl0pOw0KICAgICAgICAgICAgLy8gRGVzY3JpcHRpb24NCiAgICAgICAgICAgIHZhciBkYktleSA9ICJ4LWRlc2NyaXB0aW9uIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5tYXBwaW5nLmRlc2NyaXB0aW9uLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5tYXBwaW5nLmRlc2NyaXB0aW9uLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBVcGRhdGUgdGhlIGNoYW5uZWwgbmFtZQ0KICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoIl91dWlkLmtleSIpKSB7DQogICAgICAgICAgICAgICAgaWYgKGRhdGFbIl91dWlkLmtleSJdICE9ICIiKSB7DQogICAgICAgICAgICAgICAgICAgIHZhciBkYktleSA9ICJ4LXVwZGF0ZS1jaGFubmVsLW5hbWUiOw0KICAgICAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KGRiS2V5KTsNCiAgICAgICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YVtkYktleV07DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5tYXBwaW5nLnVwZGF0ZUNoYW5uZWxOYW1lLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgLy8gTG9nbyBVUkwgKENoYW5uZWwpIA0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gInR2Zy1sb2dvIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJpZCIsICJjaGFubmVsLWljb24iKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5tYXBwaW5nLmNoYW5uZWxMb2dvLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBDaGFubmVsIGxvZ28gdXBkYXRlDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAieC11cGRhdGUtY2hhbm5lbC1pY29uIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goZGJLZXkpOw0KICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGFbZGJLZXldOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJpZCIsICJ1cGRhdGUtaWNvbiIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJzsgY2hhbmdlQ2hhbm5lbExvZ28oJyIgKyBpZCArICInKTsiKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5tYXBwaW5nLnVwZGF0ZUNoYW5uZWxMb2dvLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBFeHBhbmQgRVBHIGNhdGVnb3J5DQogICAgICAgICAgICB2YXIgZGJLZXkgPSAieC1jYXRlZ29yeSI7DQogICAgICAgICAgICB2YXIgdGV4dCA9IFsiLSIsICJLaWRzIChFbWJ5IG9ubHkpIiwgIk5ld3MiLCAiTW92aWUiLCAiU2VyaWVzIiwgIlNwb3J0cyJdOw0KICAgICAgICAgICAgdmFyIHZhbHVlcyA9IFsiIiwgIktpZHMiLCAiTmV3cyIsICJNb3ZpZSIsICJTZXJpZXMiLCAiU3BvcnRzIl07DQogICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCBkYXRhW2RiS2V5XSwgZGJLZXkpOw0KICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5tYXBwaW5nLmVwZ0NhdGVnb3J5LnRpdGxlfX0iLCBzZWxlY3QpOw0KICAgICAgICAgICAgLy8gTTNVIGdyb3VwIHRpdGxlDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAieC1ncm91cC10aXRsZSI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5tYXBwaW5nLm0zdUdyb3VwVGl0bGUudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIGlmIChkYXRhWyJncm91cC10aXRsZSJdICE9IHVuZGVmaW5lZCkgew0KICAgICAgICAgICAgICAgIGNvbnRlbnQuZGVzY3JpcHRpb24oZGF0YVsiZ3JvdXAtdGl0bGUiXSk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICAvLyBYTUxUViBmaWxlDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAieC14bWx0di1maWxlIjsNCiAgICAgICAgICAgIHZhciB4bWxGaWxlID0gZGF0YVtkYktleV07DQogICAgICAgICAgICB2YXIgeG1sdHYgPSBuZXcgWE1MVFZGaWxlKCk7DQogICAgICAgICAgICB2YXIgc2VsZWN0ID0geG1sdHYuZ2V0RmlsZXMoZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgibmFtZSIsIGRiS2V5KTsNCiAgICAgICAgICAgIHNlbGVjdC5zZXRBdHRyaWJ1dGUoImlkIiwgInBvcHVwLXhtbHR2Iik7DQogICAgICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJzsgc2V0WG1sdHZDaGFubmVsKCciICsgaWQgKyAiJyx0aGlzKTsiKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5tYXBwaW5nLnhtbHR2RmlsZS50aXRsZX19Iiwgc2VsZWN0KTsNCiAgICAgICAgICAgIHZhciBmaWxlID0gZGF0YVtkYktleV07DQogICAgICAgICAgICAvLyBYTUxUViBNYXBwaW5nDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAieC1tYXBwaW5nIjsNCiAgICAgICAgICAgIHZhciB4bWx0diA9IG5ldyBYTUxUVkZpbGUoKTsNCiAgICAgICAgICAgIHZhciBzZWxlY3QgPSB4bWx0di5nZXRQcm9ncmFtcyhmaWxlLCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJuYW1lIiwgZGJLZXkpOw0KICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgiaWQiLCAicG9wdXAtbWFwcGluZyIpOw0KICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCc7IGNoZWNrWG1sdHZDaGFubmVsKCciICsgaWQgKyAiJyx0aGlzLCciICsgeG1sRmlsZSArICInKTsiKTsNCiAgICAgICAgICAgIHNvcnRTZWxlY3Qoc2VsZWN0KTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5tYXBwaW5nLnhtbHR2Q2hhbm5lbC50aXRsZX19Iiwgc2VsZWN0KTsNCiAgICAgICAgICAgIC8vIFRpbWVzaGlmdA0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gIngtdGltZXNoaWZ0IjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5tYXBwaW5nLnRpbWVzaGlmdC5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoImlkIiwgInRpbWVzaGlmdCIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7Lm1hcHBpbmcudGltZXNoaWZ0LnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBJbnRlcmFjdGlvbg0KICAgICAgICAgICAgY29udGVudC5jcmVhdGVJbnRlcmFjdGlvbigpOw0KICAgICAgICAgICAgLy8gVXBsb2FkIGxvZ28NCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJjYW5jZWwiLCAie3suYnV0dG9uLnVwbG9hZExvZ299fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IHVwbG9hZExvZ28oKTsnKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgLy8gQWJvcnQNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJjYW5jZWwiLCAie3suYnV0dG9uLmNhbmNlbH19Iik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogc2hvd0VsZW1lbnQoInBvcHVwIiwgZmFsc2UpOycpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICAvLyBGaW5pc2hlZA0KICAgICAgICAgICAgdmFyIGlkcyA9IFtdOw0KICAgICAgICAgICAgaWRzID0gZ2V0QWxsU2VsZWN0ZWRDaGFubmVscygpOw0KICAgICAgICAgICAgaWYgKGlkcy5sZW5ndGggPT0gMCkgew0KICAgICAgICAgICAgICAgIGlkcy5wdXNoKGlkKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJzYXZlIiwgInt7LmJ1dHRvbi5kb25lfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBkb25lUG9wdXBEYXRhKCInICsgZGF0YVR5cGUgKyAnIiwgIicgKyBpZHMgKyAnIiwgImZhbHNlIik7Jyk7DQogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBkZWZhdWx0Og0KICAgICAgICAgICAgYnJlYWs7DQogICAgfQ0KICAgIHNob3dQb3BVcEVsZW1lbnQoJ3BvcHVwLWN1c3RvbScpOw0KfQ0KY2xhc3MgWE1MVFZGaWxlIHsNCiAgICBnZXRGaWxlcyhzZXQpIHsNCiAgICAgICAgbGV0IGZpbGVJRHMgPSBnZXRPYmpLZXlzKFNFUlZFUlsieGVwZyJdWyJ4bWx0dk1hcCJdKTsNCiAgICAgICAgbGV0IHZhbHVlcyA9IG5ldyBBcnJheSgiLSIpOw0KICAgICAgICBsZXQgdGV4dCA9IG5ldyBBcnJheSgiLSIpOw0KICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGZpbGVJRHMubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgICAgIGlmIChmaWxlSURzW2ldICE9ICJ4VGVWZSBEdW1teSIpIHsNCiAgICAgICAgICAgICAgICB2YWx1ZXMucHVzaChnZXRWYWx1ZUZyb21Qcm92aWRlckZpbGUoZmlsZUlEc1tpXSwgInhtbHR2IiwgImZpbGUueHRldmUiKSk7DQogICAgICAgICAgICAgICAgdGV4dC5wdXNoKGdldFZhbHVlRnJvbVByb3ZpZGVyRmlsZShmaWxlSURzW2ldLCAieG1sdHYiLCAibmFtZSIpKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgICAgIHZhbHVlcy5wdXNoKGZpbGVJRHNbaV0pOw0KICAgICAgICAgICAgICAgIHRleHQucHVzaChmaWxlSURzW2ldKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KICAgICAgICBsZXQgc2VsZWN0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiU0VMRUNUIik7DQogICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGV4dC5sZW5ndGg7IGkrKykgew0KICAgICAgICAgICAgdmFyIG9wdGlvbiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIk9QVElPTiIpOw0KICAgICAgICAgICAgb3B0aW9uLnNldEF0dHJpYnV0ZSgidmFsdWUiLCB2YWx1ZXNbaV0pOw0KICAgICAgICAgICAgb3B0aW9uLmlubmVyVGV4dCA9IHRleHRbaV07DQogICAgICAgICAgICBzZWxlY3QuYXBwZW5kQ2hpbGQob3B0aW9uKTsNCiAgICAgICAgfQ0KICAgICAgICBpZiAoc2V0ICE9ICIiKSB7DQogICAgICAgICAgICBzZWxlY3QudmFsdWUgPSBzZXQ7DQogICAgICAgIH0NCiAgICAgICAgcmV0dXJuIHNlbGVjdDsNCiAgICB9DQogICAgZ2V0UHJvZ3JhbXMoZmlsZSwgc2V0KSB7DQogICAgICAgIC8vdmFyIGZpbGVJRHM6c3RyaW5nW10gPSBnZXRPYmpLZXlzKFNFUlZFUlsieGVwZyJdWyJ4bWx0dk1hcCJdKQ0KICAgICAgICBsZXQgdmFsdWVzID0gZ2V0T2JqS2V5cyhTRVJWRVJbInhlcGciXVsieG1sdHZNYXAiXVtmaWxlXSk7DQogICAgICAgIGxldCB0ZXh0ID0gW107DQogICAgICAgIGxldCBkaXNwbGF5TmFtZTsNCiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB2YWx1ZXMubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgICAgIGlmIChTRVJWRVJbInhlcGciXVsieG1sdHZNYXAiXVtmaWxlXVt2YWx1ZXNbaV1dLmhhc093blByb3BlcnR5KCdkaXNwbGF5LW5hbWUnKSA9PSB0cnVlKSB7DQogICAgICAgICAgICAgICAgZGlzcGxheU5hbWUgPSBTRVJWRVJbInhlcGciXVsieG1sdHZNYXAiXVtmaWxlXVt2YWx1ZXNbaV1dWyJkaXNwbGF5LW5hbWUiXTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgICAgIGRpc3BsYXlOYW1lID0gIi0iOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgdGV4dFtpXSA9IGRpc3BsYXlOYW1lICsgIiAoIiArIHZhbHVlc1tpXSArICIpIjsNCiAgICAgICAgfQ0KICAgICAgICB0ZXh0LnVuc2hpZnQoIi0iKTsNCiAgICAgICAgdmFsdWVzLnVuc2hpZnQoIi0iKTsNCiAgICAgICAgbGV0IHNlbGVjdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlNFTEVDVCIpOw0KICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRleHQubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgICAgIHZhciBvcHRpb24gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJPUFRJT04iKTsNCiAgICAgICAgICAgIG9wdGlvbi5zZXRBdHRyaWJ1dGUoInZhbHVlIiwgdmFsdWVzW2ldKTsNCiAgICAgICAgICAgIG9wdGlvbi5pbm5lclRleHQgPSB0ZXh0W2ldOw0KICAgICAgICAgICAgc2VsZWN0LmFwcGVuZENoaWxkKG9wdGlvbik7DQogICAgICAgIH0NCiAgICAgICAgaWYgKHNldCAhPSAiIikgew0KICAgICAgICAgICAgc2VsZWN0LnZhbHVlID0gc2V0Ow0KICAgICAgICB9DQogICAgICAgIGlmIChzZWxlY3QudmFsdWUgIT0gc2V0KSB7DQogICAgICAgICAgICBzZWxlY3QudmFsdWUgPSAiLSI7DQogICAgICAgIH0NCiAgICAgICAgcmV0dXJuIHNlbGVjdDsNCiAgICB9DQp9DQpmdW5jdGlvbiBnZXRWYWx1ZUZyb21Qcm92aWRlckZpbGUoZmlsZSwgZmlsZVR5cGUsIGtleSkgew0KICAgIGlmIChmaWxlID09ICJ4VGVWZSBEdW1teSIpIHsNCiAgICAgICAgcmV0dXJuIGZpbGU7DQogICAgfQ0KICAgIGxldCBmaWxlSUQ7DQogICAgbGV0IGluZGljYXRvciA9IGZpbGUuY2hhckF0KDApOw0KICAgIHN3aXRjaCAoaW5kaWNhdG9yKSB7DQogICAgICAgIGNhc2UgIk0iOg0KICAgICAgICAgICAgZmlsZVR5cGUgPSAibTN1IjsNCiAgICAgICAgICAgIGZpbGVJRCA9IGZpbGU7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSAiSCI6DQogICAgICAgICAgICBmaWxlVHlwZSA9ICJoZGhyIjsNCiAgICAgICAgICAgIGZpbGVJRCA9IGZpbGU7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSAiWCI6DQogICAgICAgICAgICBmaWxlVHlwZSA9ICJ4bWx0diI7DQogICAgICAgICAgICBmaWxlSUQgPSBmaWxlLnN1YnN0cmluZygwLCBmaWxlLmxhc3RJbmRleE9mKCcuJykpOw0KICAgICAgICAgICAgYnJlYWs7DQogICAgfQ0KICAgIGlmIChTRVJWRVJbInNldHRpbmdzIl1bImZpbGVzIl1bZmlsZVR5cGVdLmhhc093blByb3BlcnR5KGZpbGVJRCkgPT0gdHJ1ZSkgew0KICAgICAgICB2YXIgZGF0YSA9IFNFUlZFUlsic2V0dGluZ3MiXVsiZmlsZXMiXVtmaWxlVHlwZV1bZmlsZUlEXTsNCiAgICAgICAgcmV0dXJuIGRhdGFba2V5XTsNCiAgICB9DQogICAgcmV0dXJuOw0KfQ0KZnVuY3Rpb24gc2V0WG1sdHZDaGFubmVsKGlkLCBlbGVtZW50KSB7DQogICAgbGV0IHhtbHR2ID0gbmV3IFhNTFRWRmlsZSgpOw0KICAgIGxldCB4bWxGaWxlID0gZWxlbWVudC52YWx1ZTsNCiAgICBsZXQgdHZnSWQgPSBTRVJWRVJbInhlcGciXVsiZXBnTWFwcGluZyJdW2lkXVsidHZnLWlkIl07DQogICAgbGV0IHRkID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInBvcHVwLW1hcHBpbmciKS5wYXJlbnRFbGVtZW50Ow0KICAgIHRkLmlubmVySFRNTCA9ICIiOw0KICAgIGxldCBzZWxlY3QgPSB4bWx0di5nZXRQcm9ncmFtcyhlbGVtZW50LnZhbHVlLCB0dmdJZCk7DQogICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgibmFtZSIsICJ4LW1hcHBpbmciKTsNCiAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJpZCIsICJwb3B1cC1tYXBwaW5nIik7DQogICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCc7IGNoZWNrWG1sdHZDaGFubmVsKCciICsgaWQgKyAiJyx0aGlzLCciICsgeG1sRmlsZSArICInKTsiKTsNCiAgICBzZWxlY3QuY2xhc3NOYW1lID0gImNoYW5nZWQiOw0KICAgIHNvcnRTZWxlY3Qoc2VsZWN0KTsNCiAgICB0ZC5hcHBlbmRDaGlsZChzZWxlY3QpOw0KICAgIGNoZWNrWG1sdHZDaGFubmVsKGlkLCBzZWxlY3QsIHhtbEZpbGUpOw0KfQ0KZnVuY3Rpb24gY2hlY2tYbWx0dkNoYW5uZWwoaWQsIGVsZW1lbnQsIHhtbEZpbGUpIHsNCiAgICBsZXQgdmFsdWUgPSBlbGVtZW50LnZhbHVlOw0KICAgIGxldCBib29sOw0KICAgIGxldCBjaGVja2JveCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdhY3RpdmUnKTsNCiAgICBsZXQgY2hhbm5lbCA9IFNFUlZFUlsieGVwZyJdWyJlcGdNYXBwaW5nIl1baWRdOw0KICAgIGxldCB1cGRhdGVMb2dvOw0KICAgIGJvb2wgPSB2YWx1ZSAhPSAiLSI7DQogICAgY2hlY2tib3guY2hlY2tlZCA9IGJvb2w7DQogICAgY2hlY2tib3guY2xhc3NOYW1lID0gImNoYW5nZWQiOw0KICAgIGNvbnNvbGUubG9nKHhtbEZpbGUpOw0KICAgIC8vIFVwZGF0ZSBjaGFubmVsIGxvZ28NCiAgICAvKg0KICAgIHVwZGF0ZUxvZ28gPSAoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInVwZGF0ZS1pY29uIikgYXMgSFRNTElucHV0RWxlbWVudCkuY2hlY2tlZA0KICAgIGNvbnNvbGUubG9nKHVwZGF0ZUxvZ28pOw0KICAgICovDQogICAgaWYgKHhtbEZpbGUgIT0gInhUZVZlIER1bW15IiAmJiBib29sID09IHRydWUpIHsNCiAgICAgICAgLy8oZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInVwZGF0ZS1pY29uIikgYXMgSFRNTElucHV0RWxlbWVudCkuY2hlY2tlZCA9IHRydWU7DQogICAgICAgIC8vKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ1cGRhdGUtaWNvbiIpIGFzIEhUTUxJbnB1dEVsZW1lbnQpLmNsYXNzTmFtZSA9ICJjaGFuZ2VkIjsNCiAgICAgICAgY29uc29sZS5sb2coIklEIiwgaWQpOw0KICAgICAgICBjaGFuZ2VDaGFubmVsTG9nbyhpZCk7DQogICAgICAgIHJldHVybjsNCiAgICB9DQogICAgaWYgKHhtbEZpbGUgPT0gInhUZVZlIER1bW15Iikgew0KICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidXBkYXRlLWljb24iKS5jaGVja2VkID0gZmFsc2U7DQogICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ1cGRhdGUtaWNvbiIpLmNsYXNzTmFtZSA9ICJjaGFuZ2VkIjsNCiAgICB9DQogICAgcmV0dXJuOw0KfQ0KZnVuY3Rpb24gY2hhbmdlQ2hhbm5lbExvZ28oaWQpIHsNCiAgICBsZXQgdXBkYXRlTG9nbzsNCiAgICBsZXQgY2hhbm5lbCA9IFNFUlZFUlsieGVwZyJdWyJlcGdNYXBwaW5nIl1baWRdOw0KICAgIGxldCBmID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInBvcHVwLXhtbHR2Iik7DQogICAgbGV0IHhtbHR2RmlsZSA9IGYub3B0aW9uc1tmLnNlbGVjdGVkSW5kZXhdLnZhbHVlOw0KICAgIGxldCBtID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInBvcHVwLW1hcHBpbmciKTsNCiAgICBsZXQgeE1hcHBpbmcgPSBtLm9wdGlvbnNbbS5zZWxlY3RlZEluZGV4XS52YWx1ZTsNCiAgICBsZXQgeG1sdHZMb2dvID0gU0VSVkVSWyJ4ZXBnIl1bInhtbHR2TWFwIl1beG1sdHZGaWxlXVt4TWFwcGluZ11bImljb24iXTsNCiAgICB1cGRhdGVMb2dvID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInVwZGF0ZS1pY29uIikuY2hlY2tlZDsNCiAgICBpZiAodXBkYXRlTG9nbyA9PSB0cnVlICYmIHhtbHR2RmlsZSAhPSAieFRlVmUgRHVtbXkiKSB7DQogICAgICAgIGlmIChTRVJWRVJbInhlcGciXVsieG1sdHZNYXAiXVt4bWx0dkZpbGVdLmhhc093blByb3BlcnR5KHhNYXBwaW5nKSkgew0KICAgICAgICAgICAgdmFyIGxvZ28gPSB4bWx0dkxvZ287DQogICAgICAgIH0NCiAgICAgICAgZWxzZSB7DQogICAgICAgICAgICBsb2dvID0gY2hhbm5lbFsidHZnLWxvZ28iXTsNCiAgICAgICAgfQ0KICAgICAgICB2YXIgbG9nb0lucHV0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNoYW5uZWwtaWNvbiIpOw0KICAgICAgICBsb2dvSW5wdXQudmFsdWUgPSBsb2dvOw0KICAgICAgICBpZiAoQlVMS19FRElUID09IGZhbHNlKSB7DQogICAgICAgICAgICBsb2dvSW5wdXQuY2xhc3NOYW1lID0gImNoYW5nZWQiOw0KICAgICAgICB9DQogICAgfQ0KfQ0KZnVuY3Rpb24gc2F2ZVBvcHVwRGF0YShkYXRhVHlwZSwgaWQsIHJlbW92ZSwgb3B0aW9uKSB7DQogICAgaWYgKGRhdGFUeXBlID09ICJtYXBwaW5nIikgew0KICAgICAgICBsZXQgZGF0YSA9IHt9Ow0KICAgICAgICBjb25zb2xlLmxvZygiU2F2ZSBtYXBwaW5nIGRhdGEiKTsNCiAgICAgICAgbGV0IGNtZCA9ICJzYXZlRXBnTWFwcGluZyI7DQogICAgICAgIGRhdGFbImVwZ01hcHBpbmciXSA9IFNFUlZFUlsieGVwZyJdWyJlcGdNYXBwaW5nIl07DQogICAgICAgIGNvbnNvbGUubG9nKCJTRU5EIFRPIFNFUlZFUiIpOw0KICAgICAgICBsZXQgc2VydmVyID0gbmV3IFNlcnZlcihjbWQpOw0KICAgICAgICBzZXJ2ZXIucmVxdWVzdChkYXRhKTsNCiAgICAgICAgZGVsZXRlIFVORE9bImVwZ01hcHBpbmciXTsNCiAgICAgICAgcmV0dXJuOw0KICAgIH0NCiAgICBjb25zb2xlLmxvZygiU2F2ZSBwb3B1cCBkYXRhIik7DQogICAgbGV0IGRpdiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJwb3B1cC1jdXN0b20iKTsNCiAgICBsZXQgaW5wdXRzID0gZGl2LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJUQUJMRSIpWzBdLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJJTlBVVCIpOw0KICAgIGxldCBzZWxlY3RzID0gZGl2LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJUQUJMRSIpWzBdLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJTRUxFQ1QiKTsNCiAgICBsZXQgaW5wdXQgPSB7fTsNCiAgICBsZXQgY29uZmlybU1zZzsNCiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHNlbGVjdHMubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgdmFyIG5hbWU7DQogICAgICAgIG5hbWUgPSBzZWxlY3RzW2ldLm5hbWU7DQogICAgICAgIHZhciB2YWx1ZSA9IHNlbGVjdHNbaV0udmFsdWU7DQogICAgICAgIHN3aXRjaCAobmFtZSkgew0KICAgICAgICAgICAgY2FzZSAidHVuZXIiOg0KICAgICAgICAgICAgICAgIGlucHV0W25hbWVdID0gcGFyc2VJbnQodmFsdWUpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgICAgICBpbnB1dFtuYW1lXSA9IHZhbHVlOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICB9DQogICAgfQ0KICAgIGZvciAobGV0IGkgPSAwOyBpIDwgaW5wdXRzLmxlbmd0aDsgaSsrKSB7DQogICAgICAgIHN3aXRjaCAoaW5wdXRzW2ldLnR5cGUpIHsNCiAgICAgICAgICAgIGNhc2UgImNoZWNrYm94IjoNCiAgICAgICAgICAgICAgICBuYW1lID0gaW5wdXRzW2ldLm5hbWU7DQogICAgICAgICAgICAgICAgaW5wdXRbbmFtZV0gPSBpbnB1dHNbaV0uY2hlY2tlZDsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInRleHQiOg0KICAgICAgICAgICAgY2FzZSAiaGlkZGVuIjoNCiAgICAgICAgICAgIGNhc2UgInBhc3N3b3JkIjoNCiAgICAgICAgICAgICAgICBuYW1lID0gaW5wdXRzW2ldLm5hbWU7DQogICAgICAgICAgICAgICAgc3dpdGNoIChuYW1lKSB7DQogICAgICAgICAgICAgICAgICAgIGNhc2UgInR1bmVyIjoNCiAgICAgICAgICAgICAgICAgICAgICAgIGlucHV0W25hbWVdID0gcGFyc2VJbnQoaW5wdXRzW2ldLnZhbHVlKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgICAgICBkZWZhdWx0Og0KICAgICAgICAgICAgICAgICAgICAgICAgaW5wdXRbbmFtZV0gPSBpbnB1dHNbaV0udmFsdWU7DQogICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIH0NCiAgICB9DQogICAgbGV0IGRhdGEgPSB7fTsNCiAgICBsZXQgY21kOw0KICAgIGlmIChyZW1vdmUgPT0gdHJ1ZSkgew0KICAgICAgICBpbnB1dFsiZGVsZXRlIl0gPSB0cnVlOw0KICAgIH0NCiAgICBzd2l0Y2ggKGRhdGFUeXBlKSB7DQogICAgICAgIGNhc2UgInVzZXJzIjoNCiAgICAgICAgICAgIGNvbmZpcm1Nc2cgPSAiRGVsZXRlIHRoaXMgdXNlcj8iOw0KICAgICAgICAgICAgaWYgKGlkID09ICItIikgew0KICAgICAgICAgICAgICAgIGNtZCA9ICJzYXZlTmV3VXNlciI7DQogICAgICAgICAgICAgICAgZGF0YVsidXNlckRhdGEiXSA9IGlucHV0Ow0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgZWxzZSB7DQogICAgICAgICAgICAgICAgY21kID0gInNhdmVVc2VyRGF0YSI7DQogICAgICAgICAgICAgICAgbGV0IGQgPSB7fTsNCiAgICAgICAgICAgICAgICBkW2lkXSA9IGlucHV0Ow0KICAgICAgICAgICAgICAgIGRhdGFbInVzZXJEYXRhIl0gPSBkOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGNhc2UgIm0zdSI6DQogICAgICAgICAgICBjb25maXJtTXNnID0gIkRlbGV0ZSB0aGlzIHBsYXlsaXN0PyI7DQogICAgICAgICAgICBzd2l0Y2ggKG9wdGlvbikgew0KICAgICAgICAgICAgICAgIC8vIFBvcHVwOiBTYXZlDQogICAgICAgICAgICAgICAgY2FzZSAwOg0KICAgICAgICAgICAgICAgICAgICBjbWQgPSAic2F2ZUZpbGVzTTNVIjsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgLy8gUG9wdXA6IFVwZGF0ZQ0KICAgICAgICAgICAgICAgIGNhc2UgMToNCiAgICAgICAgICAgICAgICAgICAgY21kID0gInVwZGF0ZUZpbGVNM1UiOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGRhdGFbImZpbGVzIl0gPSB7fTsNCiAgICAgICAgICAgIGRhdGFbImZpbGVzIl1bZGF0YVR5cGVdID0ge307DQogICAgICAgICAgICBkYXRhWyJmaWxlcyJdW2RhdGFUeXBlXVtpZF0gPSBpbnB1dDsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJoZGhyIjoNCiAgICAgICAgICAgIGNvbmZpcm1Nc2cgPSAiRGVsZXRlIHRoaXMgSERIb21lUnVuIHR1bmVyPyI7DQogICAgICAgICAgICBzd2l0Y2ggKG9wdGlvbikgew0KICAgICAgICAgICAgICAgIC8vIFBvcHVwOiBTYXZlDQogICAgICAgICAgICAgICAgY2FzZSAwOg0KICAgICAgICAgICAgICAgICAgICBjbWQgPSAic2F2ZUZpbGVzSERIUiI7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIC8vIFBvcHVwOiBVcGRhdGUNCiAgICAgICAgICAgICAgICBjYXNlIDE6DQogICAgICAgICAgICAgICAgICAgIGNtZCA9ICJ1cGRhdGVGaWxlSERIUiI7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgZGF0YVsiZmlsZXMiXSA9IHt9Ow0KICAgICAgICAgICAgZGF0YVsiZmlsZXMiXVtkYXRhVHlwZV0gPSB7fTsNCiAgICAgICAgICAgIGRhdGFbImZpbGVzIl1bZGF0YVR5cGVdW2lkXSA9IGlucHV0Ow0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGNhc2UgInhtbHR2IjoNCiAgICAgICAgICAgIGNvbmZpcm1Nc2cgPSAiRGVsZXRlIHRoaXMgWE1MVFYgZmlsZT8iOw0KICAgICAgICAgICAgc3dpdGNoIChvcHRpb24pIHsNCiAgICAgICAgICAgICAgICAvLyBQb3B1cDogU2F2ZQ0KICAgICAgICAgICAgICAgIGNhc2UgMDoNCiAgICAgICAgICAgICAgICAgICAgY21kID0gInNhdmVGaWxlc1hNTFRWIjsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgLy8gUG9wdXA6IFVwZGF0ZQ0KICAgICAgICAgICAgICAgIGNhc2UgMToNCiAgICAgICAgICAgICAgICAgICAgY21kID0gInVwZGF0ZUZpbGVYTUxUViI7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgZGF0YVsiZmlsZXMiXSA9IHt9Ow0KICAgICAgICAgICAgZGF0YVsiZmlsZXMiXVtkYXRhVHlwZV0gPSB7fTsNCiAgICAgICAgICAgIGRhdGFbImZpbGVzIl1bZGF0YVR5cGVdW2lkXSA9IGlucHV0Ow0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGNhc2UgImZpbHRlciI6DQogICAgICAgICAgICBjb25maXJtTXNnID0gIkRlbGV0ZSB0aGlzIGZpbHRlcj8iOw0KICAgICAgICAgICAgY21kID0gInNhdmVGaWx0ZXIiOw0KICAgICAgICAgICAgZGF0YVsiZmlsdGVyIl0gPSB7fTsNCiAgICAgICAgICAgIGRhdGFbImZpbHRlciJdW2lkXSA9IGlucHV0Ow0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICBjb25zb2xlLmxvZyhkYXRhVHlwZSwgaWQpOw0KICAgICAgICAgICAgcmV0dXJuOw0KICAgIH0NCiAgICBpZiAocmVtb3ZlID09IHRydWUpIHsNCiAgICAgICAgaWYgKCFjb25maXJtKGNvbmZpcm1Nc2cpKSB7DQogICAgICAgICAgICBzaG93RWxlbWVudCgicG9wdXAiLCBmYWxzZSk7DQogICAgICAgICAgICByZXR1cm47DQogICAgICAgIH0NCiAgICB9DQogICAgY29uc29sZS5sb2coIlNFTkQgVE8gU0VSVkVSIik7DQogICAgY29uc29sZS5sb2coZGF0YSk7DQogICAgbGV0IHNlcnZlciA9IG5ldyBTZXJ2ZXIoY21kKTsNCiAgICBzZXJ2ZXIucmVxdWVzdChkYXRhKTsNCn0NCmZ1bmN0aW9uIGRvbmVQb3B1cERhdGEoZGF0YVR5cGUsIGlkc1N0cikgew0KICAgIGxldCBpZHMgPSBpZHNTdHIuc3BsaXQoJywnKTsNCiAgICBsZXQgZGl2ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInBvcHVwLWN1c3RvbSIpOw0KICAgIGxldCBpbnB1dHMgPSBkaXYuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSgiY2hhbmdlZCIpOw0KICAgIGlkcy5mb3JFYWNoKGlkID0+IHsNCiAgICAgICAgbGV0IGlucHV0Ow0KICAgICAgICBpbnB1dCA9IFNFUlZFUlsieGVwZyJdWyJlcGdNYXBwaW5nIl1baWRdOw0KICAgICAgICBjb25zb2xlLmxvZyhpbnB1dCk7DQogICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgaW5wdXRzLmxlbmd0aDsgaSsrKSB7DQogICAgICAgICAgICBsZXQgbmFtZTsNCiAgICAgICAgICAgIGxldCB2YWx1ZTsNCiAgICAgICAgICAgIHN3aXRjaCAoaW5wdXRzW2ldLnRhZ05hbWUpIHsNCiAgICAgICAgICAgICAgICBjYXNlICJJTlBVVCI6DQogICAgICAgICAgICAgICAgICAgIHN3aXRjaCAoaW5wdXRzW2ldLnR5cGUpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgImNoZWNrYm94IjoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lID0gaW5wdXRzW2ldLm5hbWU7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSBpbnB1dHNbaV0uY2hlY2tlZDsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnB1dFtuYW1lXSA9IHZhbHVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAidGV4dCI6DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZSA9IGlucHV0c1tpXS5uYW1lOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlID0gaW5wdXRzW2ldLnZhbHVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlucHV0W25hbWVdID0gdmFsdWU7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAiU0VMRUNUIjoNCiAgICAgICAgICAgICAgICAgICAgbmFtZSA9IGlucHV0c1tpXS5uYW1lOw0KICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IGlucHV0c1tpXS52YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgaW5wdXRbbmFtZV0gPSB2YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBzd2l0Y2ggKG5hbWUpIHsNCiAgICAgICAgICAgICAgICBjYXNlICJ0dmctbG9nbyI6DQogICAgICAgICAgICAgICAgICAgIC8vKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5jaGlsZE5vZGVzWzJdLmZpcnN0Q2hpbGQgYXMgSFRNTEVsZW1lbnQpLnNldEF0dHJpYnV0ZSgic3JjIiwgdmFsdWUpDQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgIngtbmFtZSI6DQogICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5jaGlsZE5vZGVzWzNdLmZpcnN0Q2hpbGQuaW5uZXJIVE1MID0gdmFsdWU7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgIngtY2F0ZWdvcnkiOg0KICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkuY2hpbGROb2Rlc1szXS5maXJzdENoaWxkLmNsYXNzTmFtZSA9IHZhbHVlOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBjYXNlICJ4LWdyb3VwLXRpdGxlIjoNCiAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpLmNoaWxkTm9kZXNbNV0uZmlyc3RDaGlsZC5pbm5lckhUTUwgPSB2YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAieC14bWx0di1maWxlIjoNCiAgICAgICAgICAgICAgICAgICAgaWYgKHZhbHVlICE9ICJ4VGVWZSBEdW1teSIgJiYgdmFsdWUgIT0gIi0iKSB7DQogICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IGdldFZhbHVlRnJvbVByb3ZpZGVyRmlsZSh2YWx1ZSwgInhtbHR2IiwgIm5hbWUiKTsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBpZiAodmFsdWUgPT0gIi0iKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBpbnB1dFsieC1hY3RpdmUiXSA9IGZhbHNlOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5jaGlsZE5vZGVzWzZdLmZpcnN0Q2hpbGQuaW5uZXJIVE1MID0gdmFsdWU7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgIngtbWFwcGluZyI6DQogICAgICAgICAgICAgICAgICAgIGlmICh2YWx1ZSA9PSAiLSIpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGlucHV0WyJ4LWFjdGl2ZSJdID0gZmFsc2U7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpLmNoaWxkTm9kZXNbN10uZmlyc3RDaGlsZC5pbm5lckhUTUwgPSB2YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAieC10aW1lc2hpZnQiOg0KICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkuY2hpbGROb2Rlc1s4XS5maXJzdENoaWxkLmlubmVySFRNTCA9IHZhbHVlOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBkZWZhdWx0Og0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgY3JlYXRlU2VhcmNoT2JqKCk7DQogICAgICAgICAgICBzZWFyY2hJbk1hcHBpbmcoKTsNCiAgICAgICAgfQ0KICAgICAgICBpZiAoaW5wdXRbIngtYWN0aXZlIl0gPT0gZmFsc2UpIHsNCiAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5jbGFzc05hbWUgPSAibm90QWN0aXZlRVBHIjsNCiAgICAgICAgfQ0KICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5jbGFzc05hbWUgPSAiYWN0aXZlRVBHIjsNCiAgICAgICAgfQ0KICAgICAgICBjb25zb2xlLmxvZyhpbnB1dFsidHZnLWxvZ28iXSk7DQogICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5jaGlsZE5vZGVzWzJdLmZpcnN0Q2hpbGQuc2V0QXR0cmlidXRlKCJzcmMiLCBpbnB1dFsidHZnLWxvZ28iXSk7DQogICAgfSk7DQogICAgc2hvd0VsZW1lbnQoInBvcHVwIiwgZmFsc2UpOw0KICAgIHJldHVybjsNCn0NCmZ1bmN0aW9uIHNob3dQcmV2aWV3KGVsZW1lbnQpIHsNCiAgICBsZXQgZGl2ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm15U3RyZWFtc0JveCIpOw0KICAgIHN3aXRjaCAoZWxlbWVudCkgew0KICAgICAgICBjYXNlIGZhbHNlOg0KICAgICAgICAgICAgZGl2LmNsYXNzTmFtZSA9ICJub3RWaXNpYmxlIjsNCiAgICAgICAgICAgIHJldHVybjsNCiAgICB9DQogICAgbGV0IHN0cmVhbXMgPSBbImFjdGl2ZVN0cmVhbXMiLCAiaW5hY3RpdmVTdHJlYW1zIl07DQogICAgc3RyZWFtcy5mb3JFYWNoKHByZXZpZXcgPT4gew0KICAgICAgICBsZXQgdGFibGUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChwcmV2aWV3KTsNCiAgICAgICAgdGFibGUuaW5uZXJIVE1MID0gIiI7DQogICAgICAgIGxldCBvYmogPSBTRVJWRVJbImRhdGEiXVsiU3RyZWFtUHJldmlld1VJIl1bcHJldmlld107DQogICAgICAgIG9iai5mb3JFYWNoKGNoYW5uZWwgPT4gew0KICAgICAgICAgICAgbGV0IHRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVFIiKTsNCiAgICAgICAgICAgIGxldCB0ZEtleSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICBsZXQgdGRWYWwgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgdGRLZXkuY2xhc3NOYW1lID0gInRkS2V5IjsNCiAgICAgICAgICAgIHRkVmFsLmNsYXNzTmFtZSA9ICJ0ZFZhbCI7DQogICAgICAgICAgICBzd2l0Y2ggKHByZXZpZXcpIHsNCiAgICAgICAgICAgICAgICBjYXNlICJhY3RpdmVTdHJlYW1zIjoNCiAgICAgICAgICAgICAgICAgICAgdGRLZXkuaW5uZXJUZXh0ID0gIkNoYW5uZWw6ICgrKSI7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgImluYWN0aXZlU3RyZWFtcyI6DQogICAgICAgICAgICAgICAgICAgIHRkS2V5LmlubmVyVGV4dCA9ICJDaGFubmVsOiAoLSkiOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIHRkVmFsLmlubmVyVGV4dCA9IGNoYW5uZWw7DQogICAgICAgICAgICB0ci5hcHBlbmRDaGlsZCh0ZEtleSk7DQogICAgICAgICAgICB0ci5hcHBlbmRDaGlsZCh0ZFZhbCk7DQogICAgICAgICAgICB0YWJsZS5hcHBlbmRDaGlsZCh0cik7DQogICAgICAgIH0pOw0KICAgIH0pOw0KICAgIHNob3dFbGVtZW50KCJsb2FkaW5nIiwgZmFsc2UpOw0KICAgIGRpdi5jbGFzc05hbWUgPSAidmlzaWJsZSI7DQogICAgcmV0dXJuOw0KfQ0K" + webUI["html/img/settings.png"] = "iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAAAXNSR0IArs4c6QAAAAlwSFlzAAAsSwAALEsBpT2WqQAABCRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IlhNUCBDb3JlIDUuNC4wIj4KICAgPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIgogICAgICAgICAgICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgICAgICAgICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyI+CiAgICAgICAgIDx0aWZmOlJlc29sdXRpb25Vbml0PjI8L3RpZmY6UmVzb2x1dGlvblVuaXQ+CiAgICAgICAgIDx0aWZmOkNvbXByZXNzaW9uPjU8L3RpZmY6Q29tcHJlc3Npb24+CiAgICAgICAgIDx0aWZmOlhSZXNvbHV0aW9uPjI4ODwvdGlmZjpYUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6T3JpZW50YXRpb24+MTwvdGlmZjpPcmllbnRhdGlvbj4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+Mjg4PC90aWZmOllSZXNvbHV0aW9uPgogICAgICAgICA8ZXhpZjpQaXhlbFhEaW1lbnNpb24+NTA8L2V4aWY6UGl4ZWxYRGltZW5zaW9uPgogICAgICAgICA8ZXhpZjpDb2xvclNwYWNlPjE8L2V4aWY6Q29sb3JTcGFjZT4KICAgICAgICAgPGV4aWY6UGl4ZWxZRGltZW5zaW9uPjUwPC9leGlmOlBpeGVsWURpbWVuc2lvbj4KICAgICAgICAgPGRjOnN1YmplY3Q+CiAgICAgICAgICAgIDxyZGY6QmFnLz4KICAgICAgICAgPC9kYzpzdWJqZWN0PgogICAgICAgICA8eG1wOk1vZGlmeURhdGU+MjAxOC0wOC0xMFQxODowODo4OTwveG1wOk1vZGlmeURhdGU+CiAgICAgICAgIDx4bXA6Q3JlYXRvclRvb2w+UGl4ZWxtYXRvciAzLjM8L3htcDpDcmVhdG9yVG9vbD4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgIDwvcmRmOlJERj4KPC94OnhtcG1ldGE+Ckxt87EAAAS7SURBVGgFzZpdiFVVGIbn5N+IMgVhaRLqWI7mQIJoIVRgOhQZNDAhWcbcVuPV3BRE6I14440iQQSaN0p6kz8zI0k5inUhZSSaYOVYODMo5eiMOOPf+LzH2cPMPmvttdbe53jOBy9rr2+938/ae51vr733qaoqgQwPD68B/wDJfXAP3AE94JMShCy+SxJ9CvSDJFlU7MiPFdsh/hrBdIffBsd48HApJjLPI4tnPThBlFJMZI5HBuWZCIt9AmgEzeAJR6JzHeMadnKI8wbYCz4Fkz18JlNwMgf8BCL5j4O3bVaMdUfEhPZqgv1U7HbEbDvoT7HZOPUYNwAlHheV09a4A3RTgMqtj9QY7JdgeM5i3I4+fDIYrQeq/UnyNYOTlBDtS+BwEjk2doz+KyO2OY5bwVCME+/qylTHT4C1D3k+uB33Yul3ov/eMuajlu1RH+II5wtT4hNNSnQ6U/kzbRkfq351bCfF8apAm7kmvq38njWRK0S305SHcSK5XO4U5O9MBmXWbSe3E6YccialdKzH2TTnQEF10XgZ5DdivsxEhkyxjVdERAwu03xmMiqD7hYx19km4cyHq6KyeHKkWpSz+ciVrHVpRYZk/wLHp0H2bULkNKzt4Eq86TKxLq3IECf6nXwV9QPbAfjHQSfoD7SN6L63gYhvbrkiTwKf/dPYpbdPVxKMnigdg0VAG8FQye8AzBl6aIk2A+wPiNoHd63LNZx3wbUAvz/CfTzJb/43AmkGpLfAi0DPE/NALQgtve+xFPdi5xRiNkHa5ySOJ/TR7RrBJdqL4AAxL+p+8ToYAFklNCnF3pM1KPba2L6v8vons5oPsko9ZyZoa0PsOoKezxoY+y5N5DYHWSvDTXzUMJH7IUkRW0tbyyV0CcfDDKmqDMe1KfqnQyehGNgo9q8p4hWYFGsiBY4fsSK/BRkkaPgj5PhMy720BnVFesfnlKo3Das0bw8XYJf196GEuzWRLSDoRypLg2w06FyqTS6Cx7iK1eeqGqrnugmuBgvB8+A5UAuqQYiU+oZ4h2T+BV3gAlDp/pai0U1rFpVGMAv8AHzFd4vShMOQLcoB+DNB/sSbM3ZoMV4BQsW0adSJSbNp1Hu1mY40/YZxpPdJaUSfFzrBMXAjjQNsdvll6cHCWVvKJIphdhcny11pqmolCk5aIDif0BKdZBucgPlO8kh/r8O4HtwClSCbk86HtQqQuUrvKVCf5OARjt0lll4H/WKKmbS0tmJQKZNQ7nq9+w0n2LhTN04E8jKMPpZ1hcli8tGTZYEYJwJrZQGzchTGz3a2ifwdkHc73LYAfpx6DcWXQK1LeiDsdpFGx7UOwUGQJKpmGyIjjvWh50iSQWzsZ/ofgvx+jnYp+B/YpJcB7QXDBKPJ4JDF6+/oCwoBuhoL36R+Jp4RJH16u2IgaxJpHhMehsBY3wTjV2YbOuuumLHrwCW6msbSj74O/DHGgV4Ohl8Jw1nSMmsB+tL6Wnw83odzBrhEr2GtgvFE8A74ADxtJZZygMC25cjQqBwqdg62qpUlziUP45Cq6OGuqqoUE/FJ8i+v7MpJYvEsHl1A5gNty2vLmaN3bBLdAvqB3svqXxLRvyEuc9zs7SiA+ACpw05pJx8SoAAAAABJRU5ErkJggg==" + webUI["html/img/x_ transparent.png"] = "iVBORw0KGgoAAAANSUhEUgAAAQAAAAEACAYAAABccqhmAAAAAXNSR0IArs4c6QAAAAlwSFlzAAAWJQAAFiUBSVIk8AAAA6ppVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IlhNUCBDb3JlIDUuNC4wIj4KICAgPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIgogICAgICAgICAgICB4bWxuczp0aWZmPSJodHRwOi8vbnMuYWRvYmUuY29tL3RpZmYvMS4wLyIKICAgICAgICAgICAgeG1sbnM6ZXhpZj0iaHR0cDovL25zLmFkb2JlLmNvbS9leGlmLzEuMC8iPgogICAgICAgICA8eG1wOk1vZGlmeURhdGU+MjAxOC0xMS0xNVQxNzoxMTo3NjwveG1wOk1vZGlmeURhdGU+CiAgICAgICAgIDx4bXA6Q3JlYXRvclRvb2w+UGl4ZWxtYXRvciAzLjM8L3htcDpDcmVhdG9yVG9vbD4KICAgICAgICAgPHRpZmY6T3JpZW50YXRpb24+MTwvdGlmZjpPcmllbnRhdGlvbj4KICAgICAgICAgPHRpZmY6Q29tcHJlc3Npb24+NTwvdGlmZjpDb21wcmVzc2lvbj4KICAgICAgICAgPHRpZmY6UmVzb2x1dGlvblVuaXQ+MjwvdGlmZjpSZXNvbHV0aW9uVW5pdD4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+MTQ0PC90aWZmOllSZXNvbHV0aW9uPgogICAgICAgICA8dGlmZjpYUmVzb2x1dGlvbj4xNDQ8L3RpZmY6WFJlc29sdXRpb24+CiAgICAgICAgIDxleGlmOlBpeGVsWERpbWVuc2lvbj4yNTY8L2V4aWY6UGl4ZWxYRGltZW5zaW9uPgogICAgICAgICA8ZXhpZjpDb2xvclNwYWNlPjE8L2V4aWY6Q29sb3JTcGFjZT4KICAgICAgICAgPGV4aWY6UGl4ZWxZRGltZW5zaW9uPjI1NjwvZXhpZjpQaXhlbFlEaW1lbnNpb24+CiAgICAgIDwvcmRmOkRlc2NyaXB0aW9uPgogICA8L3JkZjpSREY+CjwveDp4bXBtZXRhPgoeXQb1AAAaJElEQVR4Ae2dCZhcVZXHz+1KSFiGkISkqyIoOgI68EkgOBNkEcQRlIFRZDGABAQEhInGbxw+RUZRNhWRLawDYR0GHAaHUVkGvwGURUcgwIiAOGxjV3UHAslHQrbuM/9TlQ6d7qruWt527/u/7+uuqvvucu7vvnveuffde54IDxIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARLwiIDzQtayHi0q23shaydCOnlISu7nnWThRdrFOkPWyCleyNqJkF1yjhTd8k6yiDvtuLgLiCR/lVnIZ14keWU7k2Xyuu4oU92r2RazQ+nWypXI4W86zCXbyZ28KBvJ97MtpEhX1gWsyleS08TJU17I2omQKpvLarmqkywyn7ZHPw9rLvTOvwbX6xEyxS3Nenv4oQCcWwmQc/D3dtaBdiyfyv5S1mM7zieLGSzWEsS6KIuiRSzTGTD9H404z1iy80MBWNVL7hn8nx8LhaxlqnKBvKbvyppYHctTM/0nd5xPljNwcrcUs2/6DyL0RwGYxDOcjR3vGBQ+4M8tMElmdQ3n6NGjYPofGE6F6tTESRmm/1xxTuuczWSQH08BhqJbqlNkuTyJoK2GBgf53S6mkrvB+7qZ6b9Gfod6hHv3dzKAGbX9pNvd51N7+WUBGNlJbgm07FH4G/AJdFuyqlwotXFzW8kzk2itXAFZwu38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" + webUI["html/js/logs_ts.js"] = "Y2xhc3MgTG9nIHsNCiAgICBjcmVhdGVMb2coZW50cnkpIHsNCiAgICAgICAgdmFyIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJQUkUiKTsNCiAgICAgICAgaWYgKGVudHJ5LmluZGV4T2YoIldBUk5JTkciKSAhPSAtMSkgew0KICAgICAgICAgICAgZWxlbWVudC5jbGFzc05hbWUgPSAid2FybmluZ01zZyI7DQogICAgICAgIH0NCiAgICAgICAgaWYgKGVudHJ5LmluZGV4T2YoIkVSUk9SIikgIT0gLTEpIHsNCiAgICAgICAgICAgIGVsZW1lbnQuY2xhc3NOYW1lID0gImVycm9yTXNnIjsNCiAgICAgICAgfQ0KICAgICAgICBpZiAoZW50cnkuaW5kZXhPZigiREVCVUciKSAhPSAtMSkgew0KICAgICAgICAgICAgZWxlbWVudC5jbGFzc05hbWUgPSAiZGVidWdNc2ciOw0KICAgICAgICB9DQogICAgICAgIGVsZW1lbnQuaW5uZXJIVE1MID0gZW50cnk7DQogICAgICAgIHJldHVybiBlbGVtZW50Ow0KICAgIH0NCn0NCmZ1bmN0aW9uIHNob3dMb2dzKGJvdHRvbSkgew0KICAgIHZhciBsb2cgPSBuZXcgTG9nKCk7DQogICAgdmFyIGxvZ3MgPSBTRVJWRVJbImxvZyJdWyJsb2ciXTsNCiAgICB2YXIgZGl2ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnRlbnRfbG9nIik7DQogICAgZGl2LmlubmVySFRNTCA9ICIiOw0KICAgIHZhciBrZXlzID0gZ2V0T2JqS2V5cyhsb2dzKTsNCiAgICBrZXlzLmZvckVhY2gobG9nSUQgPT4gew0KICAgICAgICB2YXIgZW50cnkgPSBsb2cuY3JlYXRlTG9nKGxvZ3NbbG9nSURdKTsNCiAgICAgICAgZGl2LmFwcGVuZChlbnRyeSk7DQogICAgfSk7DQogICAgc2V0VGltZW91dChmdW5jdGlvbiAoKSB7DQogICAgICAgIGlmIChib3R0b20gPT0gdHJ1ZSkgew0KICAgICAgICAgICAgdmFyIHdyYXBwZXIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYm94LXdyYXBwZXIiKTsNCiAgICAgICAgICAgIHdyYXBwZXIuc2Nyb2xsVG9wID0gd3JhcHBlci5zY3JvbGxIZWlnaHQ7DQogICAgICAgIH0NCiAgICB9LCAxMCk7DQp9DQpmdW5jdGlvbiByZXNldExvZ3MoKSB7DQogICAgdmFyIGNtZCA9ICJyZXNldExvZ3MiOw0KICAgIHZhciBkYXRhID0gbmV3IE9iamVjdCgpOw0KICAgIHZhciBzZXJ2ZXIgPSBuZXcgU2VydmVyKGNtZCk7DQogICAgc2VydmVyLnJlcXVlc3QoZGF0YSk7DQp9DQo=" + webUI["html/img/logo_b_880x200.jpg"] = "/9j/4AAQSkZJRgABAQABLAEsAAD/4QDIRXhpZgAATU0AKgAAAAgABwESAAMAAAABAAEAAAEaAAUAAAABAAAAYgEbAAUAAAABAAAAagEoAAMAAAABAAIAAAExAAIAAAAPAAAAcgEyAAIAAAAUAAAAgodpAAQAAAABAAAAlgAAAAAAAAEsAAAAAQAAASwAAAABUGl4ZWxtYXRvciAzLjMAADIwMTk6MDg6MDIgMjA6MDg6MTQAAAOgAQADAAAAAQABAACgAgAEAAAAAQAAA3CgAwAEAAAAAQAAAMgAAAAA/+EJkGh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8APD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iWE1QIENvcmUgNS40LjAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcDpDcmVhdG9yVG9vbD0iUGl4ZWxtYXRvciAzLjMiIHhtcDpNb2RpZnlEYXRlPSIyMDE5LTA4LTAyVDIwOjA4OjE0Ii8+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPD94cGFja2V0IGVuZD0idyI/PgD/7QA4UGhvdG9zaG9wIDMuMAA4QklNBAQAAAAAAAA4QklNBCUAAAAAABDUHYzZjwCyBOmACZjs+EJ+/8AAEQgAyANwAwERAAIRAQMRAf/EAB8AAAEFAQEBAQEBAAAAAAAAAAABAgMEBQYHCAkKC//EALUQAAIBAwMCBAMFBQQEAAABfQECAwAEEQUSITFBBhNRYQcicRQygZGhCCNCscEVUtHwJDNicoIJChYXGBkaJSYnKCkqNDU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6g4SFhoeIiYqSk5SVlpeYmZqio6Slpqeoqaqys7S1tre4ubrCw8TFxsfIycrS09TV1tfY2drh4uPk5ebn6Onq8fLz9PX29/j5+v/EAB8BAAMBAQEBAQEBAQEAAAAAAAABAgMEBQYHCAkKC//EALURAAIBAgQEAwQHBQQEAAECdwABAgMRBAUhMQYSQVEHYXETIjKBCBRCkaGxwQkjM1LwFWJy0QoWJDThJfEXGBkaJicoKSo1Njc4OTpDREVGR0hJSlNUVVZXWFlaY2RlZmdoaWpzdHV2d3h5eoKDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uLj5OXm5+jp6vLz9PX29/j5+v/bAEMAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAf/bAEMBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAf/dAAQAbv/aAAwDAQACEQMRAD8A/iHoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKAP/9D+IegAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoA//0f4h6ACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgD//S/iHoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKAP/9P+IegAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoA//1P4h6ACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgDvPDXws+J3jPT31bwf8OfHnivSo7mSyfU/DXhDxBrunpeQpFLNaPe6Xp11bLcxRzwSSQNL5saTROyhZUNAHQf8M//AB4/6In8XP8Aw23jL/5TUAH/AAz/APHj/oifxc/8Nt4y/wDlNQAf8M//AB4/6In8XP8Aw23jL/5TUAH/AAz/APHj/oifxc/8Nt4y/wDlNQAf8M//AB4/6In8XP8Aw23jL/5TUAH/AAz/APHj/oifxc/8Nt4y/wDlNQAf8M//AB4/6In8XP8Aw23jL/5TUAH/AAz/APHj/oifxc/8Nt4y/wDlNQAf8M//AB4/6In8XP8Aw23jL/5TUAH/AAz/APHj/oifxc/8Nt4y/wDlNQB5bfWN9pd9eaZqdndadqWnXVxY6hp99bzWl9Y31pM9vd2d5aXCRz2t1azxvBcW80cc0MyPHIiurKoBVoAKACgAoAKACgAoAKACgDvPDXws+J3jPT31bwf8OfHnivSo7mSyfU/DXhDxBrunpeQpFLNaPe6Xp11bLcxRzwSSQNL5saTROyhZUNAHQf8ADP8A8eP+iJ/Fz/w23jL/AOU1AB/wz/8AHj/oifxc/wDDbeMv/lNQBja/8I/iv4T0ufXPFPwx+IfhrRbVoUudX1/wV4k0bS7d7mZLe3SfUNR0y3tIWnnljghWSZTLNIkabnZFoA88oAKACgAoAKAPTNK+Cvxk13TrPWNE+EvxM1jSNRgS60/VNK8B+KdR06/tZRmO5s7600qa2uoJByk0ErxsOVZuqgGh/wAM/wDx4/6In8XP/DbeMv8A5TUAH/DP/wAeP+iJ/Fz/AMNt4y/+U1AHG+KfAnjfwPLZweNfB3irwfPqEcsthD4p8Pav4flvooGRJ5bOPVrS0e5jheSNJXhV1jZ0VyCyCgDlaACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgD//1f4h6ACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgD/Tt/4NGv+UUWo/8AZ0/xh/8AUb+GlAH9QdABQAUAFABQAUAFABQAUAFAH+MF/wAFUP8AlJ1/wUX/AOz6f2tP/V9ePqAPgygAoAKACgAoAKACgAoAKAP7zP8AgzT/AGuRc6R+1P8AsNeIdTzNpt1pX7THwvsZpdzvZX66P8Ovi3bw+Y26O3sryD4VX1raW+5Gn1bXLxo0dpZJQD+6SgAoA+Kv+CjX7Ltp+2l+wx+1F+zHNbQXWp/FX4R+JdN8Hfatgt7X4kaJDH4q+F+pTGTCiLSviJoXhjUpfmiYxWrhZYmYSIAf4tl5Z3en3d1YX9tPZX1jcT2d5Z3UUkF1aXdtK0NxbXMEqrLDPBMjxTRSKskciMjqGUhQCvQAUAFAHpfwY+FXiv47fF/4WfBPwLa/bfGnxe+Ingz4Z+E7Uq7pN4i8c+ItO8M6OsojBYQC/wBTgadxxHCskjEKpKgH+2v8E/hN4V+Avwc+FPwP8C2/2TwZ8H/hz4K+GXhWAokbp4f8DeHNO8M6SZhH8puJLLTIZbl/mMlw8sjMzuzsAenUAFAH+Xh/wdWftdD9oj/gppqvwf0HU/tngX9kTwLo3wktI7eXzbCf4i6+sfjn4oanDzmO/tbzV9A8B6tGVQJd/D/aFbDTSgH8z1ABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQB//9b+IegAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoA/07f+DRr/lFFqP/AGdP8Yf/AFG/hpQB/UHQAUAFABQAUAFABQAUAFABQB/jBf8ABVD/AJSdf8FF/wDs+n9rT/1fXj6gD4MoAKACgAoAKACgAoAKACgD9P8A/gjR+11/wxH/AMFJ/wBln446lqf9l+B/+Fg2nw5+Kk0s3lWC/DH4qRSeA/FupakuQJrXwrba3D42hhZlH9peGLCUEtEooA/2MaACgAoA/wAib/gv3+yj/wAMif8ABVX9qDwdpumf2b4J+KPieP8AaF+HapF5FpL4b+M3neKdYttNgACQ6Z4e+IMnjfwjYwxZhig8OrHHtRQiAH40UAFABQB/TB/waofso/8ADQH/AAU90f4t61pv2zwX+yX8PPEnxbupbiHzdPl8fa/Cfh98ONNlOCU1CC78Ra7430lsoEuvAbSFmKLFKAf6iFABQB4r+0h8cfCn7M37P/xp/aG8cyBfCfwV+GPjX4ma3F5qwy39p4P8P32tDSbNmDbtR1me0i0nTIFV5bnUb21t4Y3llRGAP8Tb4qfEnxZ8Zfid8Rfi9481A6r44+Kfjrxb8RfGOpkMDqHijxrr1/4k169Cu8jKLnVNSupVQyOUVwu47QWAOCoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKAP/9f+IegAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoA/o6/wCCV3/BxX8T/wDglx+zDdfsy+E/2ZvAfxc0m4+Jviz4lDxV4i8f+IfDGox3PivTfDenzaUdO03QdUtnhs/+EeWaK6FwryfamjeJfKDuAfpL/wARo/x0/wCjFvhN/wCHh8Yf/MhQAf8AEaP8dP8Aoxb4Tf8Ah4fGH/zIUAH/ABGj/HT/AKMW+E3/AIeHxh/8yFAH91v7OnxSuvjl+z58CfjXe6PB4evfjD8G/hh8UrvQLW7kv7XQ7r4g+CdD8WXGj219LDbS3sGmS6u9lDdy28ElzHAszwxM7IoB7JQAUAfy3f8ABa//AIOEviT/AMEpP2rfBP7Ofg79mvwP8YNM8V/APwn8Y5/E/iXx9r3hi/tL/wASePvif4Ol0SLTtL0DU7eS0tbfwBa3sd29wJpJtRniaJUhjZgD8f8A/iNH+On/AEYt8Jv/AA8PjD/5kKAD/iNH+On/AEYt8Jv/AA8PjD/5kKAD/iNH+On/AEYt8Jv/AA8PjD/5kKAP5Df2l/jXqH7Sf7Rvx9/aK1fQrLwvqvx6+NPxR+M2p+GtOu57/T/D1/8AE/xvrnja80OxvrqOG5vbPSrjW5LC2u7iKKa4ht0mljR3ZKAPEqACgAoA+zPhF/wTp/b4+Pmj23iT4M/sZftOfEfwvebPsnizwt8E/iFqHhK68xd6fZ/FK6Avh+bKEP8AutSbajK5+RlLAH1no/8AwQL/AOCwuu2UmoWX7B/xdggjj81o9YvvAfh29K+kem6/4w03UZZP+mMVo8vovUqAeY+M/wDgjP8A8FV/ANreXviH9gH9qGS0sIpJ7ufw18LPEHjhIoIRulm/4oq38Ql4o0BkeSLeqxq0jEIpegD87PE3hbxP4L1q+8NeMfDmveE/EemS+RqWgeJtI1DQda0+YdYb7StUtrS+tJR/zznt439uu0AwaACgAoA/2IP+CKv7XX/DbH/BM/8AZa+M2pap/anjrTvAdv8ACr4qSyzedqDfEn4TOfAviDU9V+Z/LvvF0Okad48Ee4j7F4qs3AQOI0AP1QoAKAP4if8Ag8r/AGUf7a+Gn7K37aug6buvfA3iXW/2ePiNewQ+ZPJ4d8ZW1946+Gtzduo3W+m6Dr+g+PrDzpC0Laj44sYPkmmjEoB/ALQAUAFAH+mH/wAGjn7KP/Cmf+CeHi39ovWtN+y+Kv2tvipqetafdyReTcTfCz4RS6l4A8G28quPOx/wmjfFTV7aQ7YbnTtZsLiFDGyTSgH9VtABQB/KH/wdzftd/wDCmP2A/BX7Mmgap9l8XftcfEq1stZtYpvLuW+Enwfn0nxr4tkUxkTRC78c3Pwv0t1O2G+0y71q0kLxiaFwD/NLoAKACgAoA+pfgr+w7+2Z+0hYf2v8Av2Uv2iPjHogID+Ifhx8HfH3i3w3ES2wLP4j0bQbrQ7di2Qom1CMttfGNjUAfaHhz/ggt/wWA8Uw+fpn7BnxntU2GTb4j/4Q/wAHTbQNxH2fxd4o0SfeR0jERkY/KE3/ACMAcn4q/wCCJX/BWjwckz6v+wB+0ndiBXZ/+EW8B3XjpiEBLeSngmbxC9wxA+VbcSs5wEDEqtAH52+P/hn8R/hR4hufCPxS+H/jf4a+K7PP2vwx4/8ACmu+DfENrtYo32nRfEVhpupQ7XUofNtlwwKnkGgDiKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKAP/0P4h6ACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKAPpv9kP496V+zh8c/C3xF8TeCPDnxF8FHzNA8d+EvEfh/RvEKaj4R1ae1OqT6NDrdrcW9l4j0t7a21XRryJrVpbqyGmXdyul6jqEcv23h9xXQ4O4owOcY3LMHnGW64TNcvxmEw2LVbL686ft5YaOJhKFPGUHThiMNUi6blUpewqVFQrVoy/BfpK+DuY+OPhJxDwRkPFmecEcVLkznhDiXI85zTJZ4HiTLqOIWX0s0q5VXoV8VkmYRxFfLs0w1RV408Pi3j8NQlmOCwU4f28eCPhp+y98R/CHhvx74J+FnwX8Q+EvF2jWGv+HtasPh14Oe21DS9SgS4tp1DaIskUmx/LuLWdIrm0uEltbqGG5hliX/TTLMl4HznL8FmuWZFw3i8vzDDUsXhMTSyfLnCtQrQU4SX+zpxdnacJKM6c06dSMZxlE/5O+K+PfpA8D8S57wfxX4h+KmS8ScNZpjMmzrKsZxxxRDEYLMMDWlRxFKXLmk6dSHNHno16M6lDE0ZU8Rh6tSjUpzn1P/DP/wAB/wDoifwj/wDDbeDf/lNXd/qlwr/0TXD/AP4Zsu/+UHz/APxGfxg/6Ov4lf8Aid8U/wDzyD/hn/4D/wDRE/hH/wCG28G//Kaj/VLhX/omuH//AAzZd/8AKA/4jP4wf9HX8Sv/ABO+Kf8A55H873/BZ79gzS/BLWP7Vfwb8LWGi+E7k6b4d+Lvhjw3pltp2k6BqJ8rTvDfjiz03T4orOx0/Vz9m8PeIBBDbwR6yui3/lT3WuapcJ/IX0kPCuhljpcd8OYClhsBU9jg+IMDg6MKOHwlb3aODzSnQpQVOlRxPuYTFqKhCOJ+rVrSqYqvOP8Atl+y2+mFmHFkcX9HjxQ4hxma8R0Pr+eeGuf57j6+OzHOcD+8x2e8JYrH4yrUxWLxuWL2+dZM6069WplbzXB89HD5TgKEv55K/kQ/2sCgD+oP/gjn/wAE/wDQNO+H9x+0x8cPBej+INW+I+nfYvhb4W8W6JZatY6R4GklSWfxlcaVq1vcW/8Aafi6eCIaDO9sstr4YgF/aXEtt4odU/t/6O3hNhKOUz414ny3D4uvnFH2eRYHMMNTxFKhlcmpSzKdCvGUPb5hKKWFk4c0MDD2tOcoY1qP+AH7Tv6Zmc43jOh4DeEvFOZ5Nl/A+O+t+IXEPDea4vLcXmXF0Kc6dLhejmOW1qNf6hw1RrTecUY13TxGf1ng8TQpV+H4zq/tz/wz/wDAf/oifwj/APDbeDf/AJTV/TP+qXCv/RNcP/8Ahmy7/wCUH+UH/EZ/GD/o6/iV/wCJ3xT/APPIP+Gf/gP/ANET+Ef/AIbbwb/8pqP9UuFf+ia4f/8ADNl3/wAoD/iM/jB/0dfxK/8AE74p/wDnkeDftLT/ALJf7Lfwc8WfGP4g/Bz4RjS/D9r5Ok6ND8PfBMOp+LPE14ki6H4W0YSaI+/UNWuUIaQRyR6dp8N9q94EsNOu5U+V40lwBwNw7j+Is24c4f8AYYSHLh8NHKMtjXx+NqJrC4HDc1DWtiJrWVpKjRjVxFRKjRqSj+w+A9L6SH0g/E/hzww4L8UPEr+0M6xHtcyzSrxrxZUwHDmQYWUJZvxDmjhmkOXBZdQmnGnzxqY7G1cJlmFbxmNw8J/w9fFL4g6j8VviJ4w+I2q6V4f0G98X65eaw+h+FdIstB8OaLDOwSz0jRdKsIobe10/TbOOCytyyvdXCwfar+e6vp7i4l/zHz3Nq2fZxmOcV8PhMJUzDFVMQ8LgMPSwuDw0ZO1PD4ahSUYQpUaajTjvOaj7SrKdWU5y/wCszw94LwXh1wTwzwRl+Y51nGF4aynDZZHN+IszxWcZ5mtWlFyxOZZrmOMq1a2IxmOxU62KrJSjh6Mqv1fB0cPhKVHD0uBryT7EKACgAoAKACgAoAKAP9rb/gn7/wAmGfsSf9mi/s2/+qa8GUAfXVABQB/mmf8AB4n/AMpPvg7/ANmPfC7/ANXh+0fQB/KFQAUAFABQAUAf0n/8Egf+DcL9oL/go3oml/Hb406/q/7NH7Kl68E/h3xPdeHhf/Ev4yWfmZuJvhj4d1WW0s9M8LNErRR/EnxFHd6PPdSw/wDCN+H/ABlDBqj6aAf33/sY/wDBH7/gnl+wh4f0nTvgZ+zh4GufGGneRNc/GL4l6PpXxH+Muq6hEoV9Qk8eeI7Ce88P+eyLNJo3gi38K+GI51E1poVtIN1AH6ZUAFABQB4H+0F+yz+zj+1b4Mvvh/8AtH/BP4b/ABm8J31rLaHTvHnhbTNauNPWU7vtOgaxNb/234a1OGT99aav4d1HS9VsrgC4s7yCZVkUA/h0/wCCvn/BqldfCfwnr/7Qn/BM4eNfH3h/RFvtY8bfst+IdQfxV430nRYlM8t/8FNfkgXW/G0GmQLIZvAXiWbVvHF5BE8ugeIfFeqzW/h6gD+Jy4t57See1uoJra6tppLe5triN4Z7eeFzHNBPDIFkimikVo5I5FV0dSrAMCKAIaAP7kv+DNX9rv8As7xV+1J+w14i1TbbeJNO0r9pP4X2M03lwrrOhnSvh/8AFi1txISs9/qukXfwx1C3tYNkq2PhfWrtkmijle3AP73qACgD87P+Cs/7KQ/bV/4J1ftX/s9Wem/2p4q8UfCvV/EXw4tVi8y4k+KXw7lt/iD8Oba2kUGW3bVfF/hnSdEu5oMyHTdTvoDHNDNLbzgH+NGQQSCCCCQQRggjggg8gg9Qf6UAJQB1ngLwR4l+JnjnwX8N/BmnS6x4w+IPizw54I8KaRD/AK7VfEvivWLPQdC06LAJ82+1S/tbaPAPzyjg9KAP9s79l/4EeGv2Xv2cvgZ+zp4QEbeHfgn8KvA3w00+6jhEDaofCPh6w0e81y5Qcm/16/tbrWtRlcmS4v7+5nlZpJGZgD3agAoA/wArX/g5+/a6/wCGnP8AgqX8RvBGiap9u8Bfso+HtI/Z70BIJt1k/i3RpbnxF8V74wAlYtUtfH+vap4L1CTJee38EaaHCiFEQA/nZoAKAP3D/wCCR/8AwQo/ad/4Ko6zL4wsblvgb+y/oV/LY+I/j/4p8PXWq2+u6naSiK78LfCrwybzR38e+IbZw6avepqum+F/DIjlj1jXBrDWGgakAf6Dv7DH/BB3/gm5+wholg3g34FeH/jF8Too7eTUfjV+0BpWg/E7x5NfwYb7V4cttW0lfCXw/jSXzBAvgXw5oN/JaskGr6nrEsZunAP2Mhhit4ooIIo4YII0hhhhRY4oYo1CRxRRoAkccaKERFAVVUKoAGKAJKACgDzX4q/Br4R/HTwlf+AvjT8MfAPxZ8FapBPb3/hX4i+EtC8Y6DcR3MRhmzpmv2GoWqStGcLPFEk8ZCvHIrojKAfxw/8ABVj/AINOvhl4g8JeKvjV/wAEyv7U8GfEbTRc63e/sveKPEz6n4C8Y2iJLcXmn/CvxZ4lll1vwb4okfc2m6D4u8Qat4R1KR4tNs9S8FWsEZnAP4G/GHg7xZ8PfFXiLwL478Na74N8aeEdY1Dw94p8KeJ9KvdD8ReHdd0q5ks9T0fWtH1KG3v9N1KwuopLe7s7uCKeCZGSSNWGKAOboAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKAP//R/iHoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKAP3o/4I0/t5f8ACsPFlt+yr8VNa8r4eePNXZ/hZrOoz/6P4O8e6pN+88MySysBbaB43unH2JFYQWHi6RHEIXxJqd7b/wBU/Ry8VP7EzCnwJnuJ5cnzXEN5HiK0vcy7Na8tcE5SaUMJmdR/u0ny0swknyL65Xqw/wAe/wBqH9D/AP4iBw5X+kP4e5X7Tjbg/LYx8QsswVH9/wAT8H5fS9zPoU6Sbr5xwlhoP61KUXVxnDUJxda+RYDCV/6sK/u8/wCdsKAOc8X+EvDnj7wr4i8E+MNItNf8K+LNG1Hw/wCIdFv0Mlpqekaray2d9ZzKCrhZreZ1EkTpNE+2WGSOVEdePMMvwea4DGZZmOHp4vA4/DVsJi8NVV6dbD14OnVpyWjtKEmrpqUXaUXGSTPc4Z4kzzg7iHJOK+GcyxOT8Q8OZpgc6yXNMHPkxOAzLLsRTxWDxNJtSi5Uq1KEnCcZU6kb06sJU5ThL+Er9uD9k7xJ+x58evEnwx1L7Xf+Er0v4j+Gnie4jwviPwRqFxMunPNKiJCda0aSObRPEEKJDt1Oylu4IE06+sJZ/wDLXxO4Cxnh3xVjMkre0q4CpfGZLjpr/fMsqzkqLlJWj9Zw8oyw2LioxtXpSqRj7GpRnL/r0+ib9I3I/pN+D2R8fYH6tg+I8Ko5Jx3kFGd3kfFeCo0njYUqcpSqLK80pzp5tktSc6reAxdPDVqssbhMbCl61/wTQ/Ysu/2wfjtaQ+IrK5Hwa+G0lh4k+J+oKJYodUiM7tongW2uYyjJfeLbm1niu3ikims/D1nrd7DMl7FYpP8AQeC3htU8Q+KacMZTmuHMmdLG55WV1GvHmbw2VwmrNVcwnCUajjKMqeDpYqrGSqxpRn+b/Tx+lPhvoy+EOJq5Ji6L8UOOoY3IuAMG/Z1KmX1FRjHNuLq9CanGWE4boYmjUw0akJ0sVnWKyrCVaVTCTxs6H9utnZ2mnWdrp+n2ttY2FjbQWdjZWcEVtaWdpaxLBbWtrbQqkNvbW8KJFBBEiRRRIscaqiqK/wBM6dOnRp06NGnClSpQjTpUqcVCnTpwiowpwhFKMYQilGMYpKMUkkkrH/J9isVicdicRjcbiK+LxmLr1sVi8Vias6+JxOJxFSVWviMRXqylVrV61WcqlWrUlKdSpKU5ycpNys1ZgUtR1HT9H0+/1fVr600zStLsrrUdT1K/uIrSx0/T7GCS5vL69up3jgtrS0t4pJ7m4mdIoYY3kkdUVmrOtWo4ajVxGIq06FChTqVq9arONOlRo0oOdSrUqSajCnThFznOTUYxTbaSbOrA4HG5njcHluXYTE4/MMwxWHwOAwODo1MTi8bjcXWhQwuEwuHoxlVr4nE16lOjQo0oyqVas404RcpJS/id/wCCmP7cuoftifGN7LwveXdv8DvhvdX2k/DnTG823XX7kv5Gq/EDU7Vwj/btfMKpo8FyiS6R4ejtLbyLfUbzW3uv80vGnxPreInETp4GpUhwxk06tDJqD5oLFzvyV82r03Z+1xfKlh4TXNh8HGlBxhWqYlz/AOrL6Bv0ScF9GPwwhiuIMLhq3i1xzQwmY8cY+Ps60smoKPtsu4My/ERc4/VMmVRzzOth5zp5lnc8TXVavgsLlaw/5rV+MH92BQAUAFABQAUAFABQAUAf7W3/AAT9/wCTDP2JP+zRf2bf/VNeDKAPrqgAoA/zTP8Ag8T/AOUn3wd/7Me+F3/q8P2j6AP5QqACgAoAKAP6sv8Ag2w/4Ipwftu/EtP2xv2mvB8eofsl/B7xC1t4O8HeIbETaT+0D8VNJeOQ6XeWNyhi1b4YeAp2hu/GHnJJpXijxCLDwS6arp9v44sbAA/0trS0tdPtbawsba3srGyt4bSzs7SGO2tbS1to1ht7a2t4VWGC3ghRIoYYlWOKNFjjUIoCgFigDyz4v/HH4Mfs+eD7j4g/Hf4s/Dj4NeBrWZbWbxd8UPGnh3wL4e+2SRySw2EWreJdR02zuNRuUhlNpp1vLLe3bIUtreZ/kYA/N22/4L0/8Ef7zXU8Oxft5/BhNQeZLcXFyPGFloQd5PKDP4ovPC0HhmOENy9zJrC28cf76SVIRvoA/Tz4cfE/4a/GPwfpPxC+EfxB8E/FHwDr0ckuh+Nvh34q0Pxp4T1iOJzFK2meIvDl9qOkXwhlVopvs13J5UqtHJtdSKAO5oAKAP8AOy/4OtP+CUHh34AfETSP+CiXwN0WPSPh78ffGzeGPj94S02z8vTvDHxs1Wwv9Z074hafFbJ5VppXxTtdK1h/E8ckdvBa+PrB9TN1eXnjtLSwAP43KAP0H/4JVftayfsPf8FBv2W/2kbi/k0/wt4N+Jul6P8AEmRXYRv8KfHcVx4F+JbSwg+XdPY+DPEWsatp8E/7tdW07T7gNFNBHNEAf7M0UsU8Uc0MiTQzIksUsTrJFLFIoeOSORSVdHUhkdSVZSCCQQaAH0AFAH+O/wD8Frv2Uf8AhjX/AIKc/tY/B/T9N/s3wZqHxFvPip8NYoofJ09Ph98X4YviHoOm6VwoksfCr69e+Cd+Mi88MXcRaRomkYA/K+gD+hr/AINhv2Uf+Gl/+Cq/ws8V6vpv27wT+y34d8Q/tE+IWmizanxB4c+x+GvhhAtwymOPUrT4j+KPDniuygGZp7bwnqLxKEt5pogD/VWoAKAPnH9sD9orw5+yP+y38fv2mPFXkSaR8E/hV4x8fiwuJfJXXNY0TR7mXw34ZikBXF54q8RtpXhywG9N97qlunmR7t6gH+KH418YeI/iH4x8W+P/ABjqlxrfi7xz4m17xh4p1q7IN1q/iPxNqt1rWuapckcG4v8AU725u5iODJKxHWgDmaAP3l/4IMf8Ef8AX/8AgqH+0iNb+IOn6ppX7IfwP1TStY+N3iWE3Fg3jbU2YX2h/BbwvqMRim/trxXHF5/irUdPmSfwl4L+1X5urLXNY8JRakAf6sfgnwR4O+GvhHw34A+HvhbQPBHgfwfo9j4e8KeEfCuk2OheHPDmh6ZAttp+k6No+mw29hp1hZwIsUFtawRRRqOEGTQB1FAHIePPiF4B+FnhTWPHnxO8b+EPhx4G8PQC61/xn488S6N4Q8KaJatIkS3Or+IvEF7p+kabA0rpGJry8gjMjogbcyigD8vNX/4Lzf8ABIHRNdk8OXv7efwVm1CKeS2a40iTxZ4g0IyRPsZo/FOg+GNS8MTQE8x3UWrtbTJ+8hldDvoA/RL4KftB/Ar9pLwenxA/Z9+MXw0+NXgppxZv4n+F/jXw9430e1vxEk76ZqN34fv7+PTNWhilRrnSdQ+zalabttzbRPlVAPYKACgD+KD/AIOv/wDglB4d8X/De6/4KefBrRY9O+IXw+Xwx4Y/ac0XTbPEfjnwHd3lj4V8I/FB47ZC7eKPAt9eaN4Y8RXTxS/2n4GutMvru6sbbwHt1AA/z7qACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgD/0v4h6ACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgByO8TpJG7RyRsrxyIxR0dDuV0ZcMrKwDKynIIyMEU02mmm000007NNapprVNPZr9CZwjUjKE4xnCcXCcJpSjOMlaUZRd1KMk2mmrNOzvqf2Vf8Eov270/am+Ff8AwrX4h6us3x3+FOl2lvrM93MPtnj/AMHRNFY6V44j3kSXOqWrtb6R4xK+YRqr2OsyvGPEUVra/wCjPgN4prjrIv7FzfEKXFOQ0KcMTKpL95m2XRcaVDM1eXNOvBuGHzGyl+/dLEtx+uRhS/5e/wBot9EGX0e/EP8A184Ky2VPwh8RcwxNbK6WHpP6twbxRUVTF5hwnPk5oUMvxEI1sy4Y5vZJ5fHGZXThUeR1MTiP1sr9+P8AN0KAPgX/AIKJfsYab+2Z8C7vw3psen2XxY8FSXPiP4U6/fEQRRawYo01PwxqN4EaSHQvFtpBFZXbcxWep22i6zLHOulfZ5fyjxf8N6PiPwvUwdFUqef5a54zIcXVahGOIcUq+BrVLNxwuYU4RpVHpGnXhhcTLmVBwn/Y/wBCX6UuP+i54uYbPcfPG4rw54qhQyPxEybCp1qlTLFVnLAZ/gcM5RhVzfhvE1amKw0bKeKwFfNcrp1KMsxVel6n+xv+y54U/ZD+BPhX4SeHvs19q8Mf9t+PfE0MRjk8W+OdRggGtaw29VlWxh8iDStDtpR5lnoWnadbzNLcpcXE/u+HPA2A8PuFsDkGE5KuIivrOa42MeWWPzStCP1nEO/veyjyRoYWElenhaNGEnOanOX579KD6QXEX0lfF7iHxIzr2+EyyrP+yeDsgqVOenw3wlga1Z5Vli5ZSpyxdX2tXMc3r07QxOb43HVqShh5UaNL6nr7o/noKAP5uv8AgtD+3t5KX/7Hfwl1r97KtvL8dfEOmXHMcTCO6sPhjbXMTfemUw6j41ELDEJ0/wANyyv5viTTU/jX6SHityqr4d5BidWoS4pxdGVrRdp0skhOL3kuWtmXL9n2WCk3zY2if7nfstPod+0ng/pOeJGVfu6cq0PCLJcfR+OpFzw+M4+r4eopLlpNVcDwq6q1qfXc9p0oeyyPGy/msr+MT/doKACgAoAKACgAoAKACgAoA/2tv+Cfv/Jhn7En/Zov7Nv/AKprwZQB9dUAFAH+aZ/weJ/8pPvg7/2Y98Lv/V4ftH0AfyhUAFABQB6t8Cfg142/aJ+NPwo+Avw3s4r/AMe/GT4h+EPhr4RtriQw2Z17xlrtloOnTahcBJPsmmWlxfLd6nespjsrCC5u5cRwuVAP9pH9kn9mnwD+x1+zT8Ff2YvhjAI/BnwX8A6L4M0+7a3jtbrXtQtIjc+JPFupwwlol1rxn4mutY8Wa4Yj5b6xrN9JHhGUKAfRNAHzT+2N+1H8Pf2Kv2YPjX+1N8UXd/BvwY8Eaj4qutNguIrW98S6y0kGleEvBul3M6vBBrPjbxbqOh+EtGluFa3j1PWbV7nbAruoB/j6/t2/t7/tHf8ABRH47+Ivjv8AtF+Nb/XtSvry+h8GeC7a6uY/A3ws8JTXbzad4J8A6C0htdJ0fToPJiubzZJrPiK9il1zxLqGq63eXd/OAfF9AH6/f8EZP+CpXxQ/4Jk/tY+B/FNv4p1iT9m74heKND8NftIfDSS7uJ/DeteCtRuY9LufHVppGJoYfHPw7t7t/Evh3VLGK11K/j0+68KXV8uha/qcDgH+vZbXNveW1veWc8N1aXcMVza3VvKk1vc286LLBPBNGWjlhmjdZIpY2ZJEYMpKkGgCagD4i/4KR/st6H+2h+wt+0/+zdrOkprF58Q/hL4oXwXEVVpbH4neHLNvFXwu1i2JVmE2k/EHRfDl8UTabmCGaydhDcyBgD/FtIKkqwKspIZSMEEcEEHBBB4II49qAEoA/wBeX/ggl+11/wANl/8ABLb9mbx7qmp/2n49+G3hpv2f/ifJJN9ovR4w+Dsdr4Zsr/VJyS0uqeKvAy+DPG987BWabxQSVGaAP2LoAKAP4Q/+DzH9lHbL+yb+23oem8SLr37M3xJ1GOLA3p/avxL+EgkeMcs6t8XYZ5p+dsWmW8bkBEUA/hLoA/0ff+DPn9lH/hWf7Ffxj/au1zTPI8QftOfFIeGvCl5LFuaf4W/BFNR0G1u7KZ1DQpqPxK174jafqMMH7q4PhjS5JpJZII47UA/rzoAKAP5B/wDg8D/a6/4Vh+xn8IP2RfD+p+R4j/af+I//AAlHjK0hl3O/wo+Csmma7JZ30SMrwJrPxM1fwBfaZNNmO6HhHWYIo5Ghme3AP84egC1Y2V5qV7aadp9tPe3+oXVvZWNnaxPNc3d5dSpBbW1vDGGklnnmkSKGJFZ5JHVVBYgUAf7Hn/BI39hLS/8AgnT+wX8Ef2cfstkvxAg0b/hPfjdqtmYZBrfxo8cQ2up+NpDeQYj1G08Nsmn+A9A1AKjXXhfwloTyIJd9AH6VUAch8QfHvhL4V+AvG3xO8fa1aeG/Avw58JeI/HXjTxFfllsdB8KeEtHvNf8AEOsXZQM4ttM0nT7u8n2Kz+XC21WYqtAH+Qt/wVi/4KvfHr/gqR+0Dr/jjxpruu+HfgT4b1zUrf4D/AuPUGTwz8P/AAosjW1hqmqWFq62Ot/EbXrJEvvF3iu7F3eSXlxJo2kT2XhbTtH0myAPynoA+2f2Af29vj1/wTo/aN8G/tC/AnxJqFlPpOo6db+P/Aj6jPbeE/i14CW+hm13wB4zsVWe2u9N1a0WZNP1J7SfUfDOrmz8RaFJa6vp1rcIAf7I/wAEvi74N+P/AMHPhX8c/h5etqHgT4w/Dzwd8S/CN3IFWeTw9420Cw8RaUt3ErOLe+htNQigv7VmMlpeRz20uJInVQD1CgDz34tfC7wV8b/hb8Rvg38SNIi1/wCH/wAVfBHij4eeNNGlwF1Lwx4w0W90HW7RZCr+TNLp9/OLe5VTJbT+XcRYkiRlAP8AEk+Ofwr1r4FfGz4wfBLxJv8A+Eh+D3xR8f8Awt13zI/Kc6x4A8V6t4U1Jmj42FrzSZm2jgZ4yMGgDyygAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgD//T/iHoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgD1n4GfGnx1+zz8VPB3xf+HGpHTvFPg7VI763WQyGw1WxkU2+q6BrEETxtdaNrmnS3OmalbiSORra4d7ea3uo4LiL3+F+Jc04Rz3LuIcmrexx2XV1Vgnf2WIpP3MRhMRFNOphsVRlOjWgnGThNuE4TUJw/OPFvwr4R8avDzifw044wKxvD/E+XzwlaUFBYzLsXBqtl2c5ZVnCpHD5plGOp0MfgKzhOEa9CMK1Oth51qM/wC8P9mX9ojwL+1L8GvCXxj8AXAGneILXyNZ0WWeObUvCXiiySJNd8K6uECbb7SrqQeVMYoo9S02ew1i0Q2Go2jt/qdwTxhlfHXDmA4iymdqOLhyYnDSmpVsvx1NJYrA4iyVqtCb92XLFVqM6WJpp0q1Nn/ID49+CXF30e/FDiTww4yot43JsR7bK81p0p0sDxHw/ipVJZRxDljm5KWEzChB+0pqpUngcdSxuWYiaxmCxEI++V9WfjgUAFABQB+cX/BSj9uLTP2N/g1KPDt1Z3Xxt+Ilvf6P8M9HkENydI2xrFqnj3VbSTKHS/DSzxmwguEki1fX5tPsGgmsE1aay/HPGfxOoeHXDklg6lOfE2cQq4fJMO7T+r2SjXzWvBu3sMEpr2UZxksRi5UaXJKisRKl/cf0E/ol4/6T/ijTed4fFYfwp4IrYPM+Pczh7Sj/AGlzTdTL+D8vxEHCSzDPZUaixlajUp1MsyaljcYqtLGTy2niv4k9V1XU9d1TUtb1rULzVtY1i/vNU1bVNRuZbzUNS1LULiW7vr++u52ee6vLy6lluLm4md5ZppJJJGZ2Jr/M+vXrYqvWxOJq1K+IxNWpXxFetOVSrWrVpupVq1akm5TqVKkpTnOTcpSk2222z/q5y7L8BlGX4HKsrweGy7LMsweGy/LsvwVGnhsHgcBgqNPDYTB4TD0owpUMNhsPSp0aFGlCFOlShGnCMYxiihWR2BQAUAFABQAUAFABQAUAFAH+1t/wT9/5MM/Yk/7NF/Zt/wDVNeDKAPrqgAoA/wA0z/g8T/5SffB3/sx74Xf+rw/aPoA/lCoAKACgD+jz/g1c/Z9g+Nn/AAVp8A+L9RtorrR/2bfhX8TvjndQXAUwTaothp/wp8MDDctdad4i+KOneIrIIQ63GhLPykDqwB/qaUAFAH4u/wDBd/8AYR/ac/4KN/sR6d+zL+y74l+GvhjxFrHxt8CeLviBP8U/EviLwx4d1X4deEdF8Y3zaRBdeGvB/jO8u9TPjyXwHq0Fpcafa2nkaRc3DXizwW8E4B/G1/xB+f8ABUn/AKKN+xl/4df4q/8Azh6AD/iD8/4Kk/8ARRv2Mv8Aw6/xV/8AnD0AH/EH5/wVJ/6KN+xl/wCHX+Kv/wA4egD/AEUf2XPA/j74Y/sy/s6/Db4rajpWr/FH4e/Ar4R+B/iTq2g313qeh6p4+8J/D/w9oPjHUdG1LUNP0m/1DSr7xDYajc6dfXulabd3dpLDPc6fZTSPboAe7UAFAH+KD+3v4G0/4Yft0ftn/DbSLKPTdJ+H/wC1f+0T4K0rT4V2w2Wl+Fvi94w0TT7WBecQQWdjBHDgkGJVILAg0AfJtAH9q3/Bm/8Atdf8It8a/wBpP9ibxFqnl6V8WPCenfHT4a2lzNsgj8cfDt4PDfjzTdOi3fvdU8UeC9b0PWLgFPl034aTOJF2FHAP9BqgAoA/Kb/gtv8Aso/8Nk/8Ewv2sPhJp2m/2l400f4eXXxb+GsUUPnag/j74PSx/EHR9M0kYYJqHiy00LUvA6sRg23ii6jLRhzIoB/j+6Foer+J9c0bw14f0+61fXvEOq6doeiaTZRma81PV9WvIbDTdPtIhgy3V7e3EFtBGDl5ZEUYzQB/tbfsQ/s26R+x9+yH+zl+zJoy2rRfBf4R+DfBWq3lmoWDWfFllpMM/jbxGFAAEnifxjc674hnwFUz6nKQqghaAPqWgAoA/wAnn/g5L/a7/wCGsP8Agqr8brTR9U/tDwD+zZDp37M/goRTb7YXPw6udRn+JNyqITbtPL8Wda8c2S3kW57vStN0cPIyQQpEAfgrQB+p3/BEr9n2D9pv/gqr+xL8Lb+2iu9Eh+M2l/E3xJa3AU2l74c+COmap8Zda0y8D8Na61ZeBJNElj4ab+0RDGQ8isoB/sRUAFAH57f8FV/2cvjn+13/AME/f2k/2aP2cNd8H+G/i38ZfC3h/wAGaNrHj7W9Y8PeE4PD15478KXHxCtNW1TQfD3inVIU1f4d2virRreK30W6W6u9Qgtrh7a2lluEAP4Qf+IPz/gqT/0Ub9jL/wAOv8Vf/nD0AH/EH5/wVJ/6KN+xl/4df4q//OHoAP8AiD8/4Kk/9FG/Yy/8Ov8AFX/5w9AH93P/AASh/Zm+M/7G/wDwT4/Zs/Zj/aC1rwh4g+K/wd8OeK/C+v6r4C1nVtf8JTaU3xH8Zar4Jt9H1bXNA8L6pcx6d4E1Hw1p1ylzodkLS+tLqzgN1bW8N7cAH6HUAFAH+Rf/AMHDfgbT/h7/AMFlv25dC0uyjsLTUvHngXxy0US7Y5dQ+Jnwb+HHxF1m97hpL/WvFOoXtwwPNzPNna25VAPxfoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoA//9T+IegAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgD9Lv8AgmT+3He/se/GWPT/ABVe3MvwO+Jl1YaP8RdP/ezx+HbsP5GkfEHTrZNzi60Bpmi1uG2R5NU8OS3kQtrvUbHRPs/7T4KeJ9Xw84jVHH1Zy4YzqpSw+cUvemsHUvyYfN6ME7qphHJxxUYJyr4OVSKhUrUsMofwf9Pb6JWF+k14XTxnDuEw9Pxa4DoYzM+CMY/Z0Z53hnH2uZ8F43EScIvD5wqUamU1K8408vzylhqjr4XA4zNXiP7ZopY54o5oZElhmjSWKWNgySRyKHSRGGQyOpDKwOCCCM5Ff6XRlGUVKLUoySlGSd1KLV001dNNapp/fc/5SqlOdKpOlVhKnUpTlTqU5pxnCcJOM4Ti7OMoyTjJNXTTTtqSUyAoA89+LPxK0D4OfDLx58VfFMWoz+Hvh94W1nxZq9vpFlJqGp3Flo1lLeS29lax/fuJ/LESSTPDaW+/7TfXNtZxXFxF5Gf51hOHMkzXPsdGtLB5RgcTj8RDD03Vrzp4anKo4UoLec7cqcnGnC/PVnCnGc4/a+HHAmc+J/HvB/h3w9UwNHO+NOIcr4cyytmWKp4PAUcVmmKp4WnWxeIqfDRo+0dSUKUauJrcvsMJQr4qrRoT/gr/AGn/ANo7x3+1V8ZfFfxi8fTlb3W7gWmg6FFO82m+EfCli8q6F4W0kOqAWmm28jPcXCxRPqeq3Go6xdR/bdRuWr/KvjfjHNOO+I8fxFm07VcTP2eFwsZOVHL8BScvquBw97fu6MJNzmoxdevOtiZr2tacpf8AYZ4A+B/CH0ePC7h3wx4NoqWFymj9YzjN6lGFLHcS8RYqFN5vxDmXK5t4nHVqcY0KLq1YYDL6GCyzDzeFwWHR8+18kfs4UAFABQAUAFABQAUAFABQAUAf7W3/AAT9/wCTDP2JP+zRf2bf/VNeDKAPrqgAoA/zTP8Ag8T/AOUn3wd/7Me+F3/q8P2j6AP5QqACgAoA/s9/4MwvC32v9qH9s7xr5eT4f+Angbwt5uOU/wCEw+If9reXnqPM/wCEGDEd/KGegoA/0M6ACgAoAKACgAoAKACgAoA/xt/+Cx1pb2X/AAVW/wCChENtGI43/a1+Nd2yjobi/wDG2qX11J9Zbq4mlb/ac0AfmvQB9qf8E5/2qr/9iX9uL9mT9qC1nuodO+FPxV8P6j4yisxIbnUPhrrbS+FvihpECR7mafV/h5rniXTbcFJVW4uopDDLs8tgD/aQ07UbDWNPsNW0q8ttR0vVLO11HTdQspo7mzvrC9gS5s7y0uIi0U9tdW8sc8E0bNHLE6yISrA0AXKAEZVZSrAMrAqysAVZSMEEHIIIyCCMEcHNAH+bf+xH/wAEpT4V/wCDm/xX+zfc+HCvwh/ZQ+LXiz9rSwtTalrK2+FGlf2R8Rf2eIVLJ9ku47bxV49+EWg6mq/uHks9Zt/KWS2ltVAP9JGgAoA+Rv29v2n9I/Yv/Yz/AGkv2odXe1B+Dnwp8T+JfD9relRa6v46nthovw58PTFiFC+JfH2q+G/D4J3YbUgQjkbGAP8AFc1zW9X8Ta1rHiPX9RutX17xBqmoa3rerX0rT3uqavqt3Lf6lqN5O3zTXV7eXE1zcSt80k0rueSaAMugD+k//g1D8Lf8JB/wV58Eat5e/wD4Qb4GfG/xSGxnyvtfh+x8FeYPQkeMPKyO0uO9AH+pDQAUAFABQAUAFABQAUAFAH+VL/wdH2lvbf8ABZj9oaaGMJJf+BvgBd3TDrLcJ8FPBVisje4tbK2i/wB2Me9AH89NABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFAH//1f4h6ACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKAP24/wCCP/7BH/C9vHcP7RXxT0XzvhB8NNZT/hE9I1G33WfxD+IGnOk8IkglG298L+EJfJvdV3j7Hqmt/YdFb7baW3iGzi/pj6PXhV/rTmseMM9w3Nw9kuJX1DD1ofu83zai1KKcZK1XA5dLlq17v2dfE+ywz9rCGMpR/wAof2mX0xP+IQ8IVPBLw9zX2XiZx3lcv9Y8ywNa2J4K4MxsZ0arhVptSwnEHE1P2uFy7ll9Zy/Kfrmar6ria+SYmf8AXBX+gB/zahQAUAVryztNRtLrT9Qtbe+sL62ns72yvII7m0vLS5iaG5tbq2mV4bi3uIXeKeCVHjlido5FZGIqKlOnWp1KVWnCrSqwlTq0qkYzp1Kc4uM6dSEk4zhOLcZRknGUW0002jfC4rE4LE4fGYPEV8JjMJXpYrC4rDVZ0MThsTQqRq0MRh69KUatGvRqwjUpVacozp1IxnCSkk4/xUf8FPf2Gbv9kH4xNrXhDT7h/gX8Try+1TwBeKJJofC2phvtOr/Dy/uWLus2j+b9q8PS3LNJqXhySAfaL7UdK1uS3/zW8bvC+p4e8RPE5fSm+F87qVa+U1LSlHA1r8+IyirNtvmw/Nz4SU/erYOUffqVqGJkf9VP0A/pb4b6S/hjHKuJsZQj4ucA4bCZfxlhm6dKpxBgGvYZZxrg6EVCMqeZqH1fOqdCKp4DPIVX7HC4LMcqhX/MevxM/vgKACgAoAKACgAoAKACgAoAKAP9rb/gn7/yYZ+xJ/2aL+zb/wCqa8GUAfXVABQB/mmf8Hif/KT74O/9mPfC7/1eH7R9AH8oVABQAUAf2Yf8GY3iv7H+1j+2J4G83H/CRfs7+FPFfk7v9Z/whnxJ07SPN29/K/4TzZu/h87H8VAH+iBQAUAfmH/wVq/4KQf8Os/2XNM/acm+CV/8eNNuPix4S+Gmr+FtO8dwfD2bRbLxXoni3UIPFMms3HhLxlHdQ22q+HdN0Q6X/Zts00mvxXY1CL7CbW7AP5qf+I1Twb/0ju8Tf+JO6X/84ugA/wCI1Twb/wBI7vE3/iTul/8Azi6AD/iNU8G/9I7vE3/iTul//OLoAP8AiNU8G/8ASO7xN/4k7pf/AM4ugA/4jVPBv/SO7xN/4k7pf/zi6AD/AIjVPBv/AEju8Tf+JO6X/wDOLoA/i+/bS/aIh/a3/a0/aI/abtvCcvgS3+Ovxb8Z/E2DwbPrSeI5vDUPivWLnU4tHm11NM0VNVlskmWKS9TSrBJ3UstrEMLQB8xUAFAH+tT/AMG6v7XX/DXf/BKr9n7UNW1P+0vHvwEtrz9mj4gGSbzrlL74UW2nWvgm5upXY3Fxc6p8J9T+H+p315cDzLnVbrUS0kzo8rgH7j0AFAHgGhfs0/Crw7+0z8RP2tNN0TyvjD8TvhD8Nvgr4k1j9yID4P8Ahn4m8e+KdLa2jSBJl1PWLvxzFZ69dz3E4vNN8HeDbWGO2GkubgA9/oAKAP4zP+Dxf9rv/hCP2bv2ff2MPDup+Vrfx18dXnxa+IdrbTYmT4c/ChY7PwzpeqQZGbDxR8Qdftta0+QK5N98M5xmIIRKAf54VABQB/SF/wAGpniv/hHf+CwHw30fzfL/AOE8+DPxz8Kbd2PO+x+Dj458rH8WP+EM87b/ANMt38NAH+pdQAUAfGv/AAUG/a1n/YT/AGOvjd+1pD8NLr4wD4LaL4f8QXfw8svE8fg2513TNU8a+GfC+rzx+JJdA8Tx6aNB0vXbzxHJv0O9F5FpD2G60N0L21AP5N/+I1Twb/0ju8Tf+JO6X/8AOLoAP+I1Twb/ANI7vE3/AIk7pf8A84ugA/4jVPBv/SO7xN/4k7pf/wA4ugA/4jVPBv8A0ju8Tf8AiTul/wDzi6AD/iNU8G/9I7vE3/iTul//ADi6AD/iNU8G/wDSO7xN/wCJO6X/APOLoA/k6/4Kr/t52f8AwUo/bT+IX7Wun/DG6+EFp438PfD7QYfAt54ui8b3Onf8IP4L0fwpJdSeIYPDvhaK5/tKXS3vUhXR4fsscywGWdlaRwD85qACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKAP/9b+IegAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKAPrf9iv8AZM8Yfti/G/Qvhh4fNzpnhu18vXPiN4vSDzYPCXg21uIkvrtS4MMus6k7ppfh2wfP2vVbmKScR6ba6ld2n3/htwDmHiJxPhckwnPRwULYrOMxUOaGX5bTmlVqK/uyxNZtUMHSf8SvNOfLRhWqUv5u+lR9I7hn6MXhPm/H+dewx+e1+fKeCOGZ1eStxJxRiKM5YTCyUJRq08rwMYSzDO8ZD/dcvoVIUnPHYnBYfEf3WfDj4d+D/hL4E8K/DbwBott4e8HeDNGtNC0DSbUHZbWVomPMmlbMt1fXkzS3upX9w0l3qOoXF1fXks11cSyN/qNk2T5dkGV4DJcpw0MJl2W4anhcJh6e0KdNbyk/eqVaknKrWrTbqVq051akpTnKUv8AkS44424m8R+L+IeOuMs0r51xPxTmmJzfOcyxD96visTK/JSppRp4fCYalGnhcDg6MYYfBYKhQwmGpww9CnCPa16Z8qFABQAUAeE/tJ/s+eBP2oPg74u+DfxBts6T4ks9+mavDDHLqfhXxJZrJJofinRmkK+XqOkXbCTy98cWoWMl7pN6X0/UbuJ/luM+Ecr444dzDhzNoXw+Mp3oYiMYuvgMbTvLC47DN7VsPUd7XUa1KVXD1OajWqQl+veBXjRxf9H/AMTuGvE/gyvbMcjxPJj8tqVZ08BxDkWJcIZvw9mihzc+BzPDRcOfknUweLhhcxwvJjcFhq1L+Dz48/BDx3+zp8V/GHwf+I2n/YfE3hDU3tHniWT+z9a0yUCfSPEWjTSJG1zo+uafJBqFhKVWVIp/s11FBewXNvF/ljxVwzmnB+fZjw9nFH2WNy+s6blFS9jiaMvew+Mw0pWc8PiqLjWpSspKMuSpGFWM4Q/6/vB7xY4Q8b/DnhjxN4Hxv1vIeJsBHExpVHD67lWPpP2OZ5JmlKE5rD5nlONhWwWMpqUqcp0vb4apWwtbD15+QV88fpgUAFABQAUAFABQAUAFABQB/tbf8E/f+TDP2JP+zRf2bf8A1TXgygD66oAKAP8ANM/4PE/+Un3wd/7Me+F3/q8P2j6AP5QqACgAoA/oQ/4Nhf2j4v2fP+Ct3wc0XUruOy8OftHeEPHn7O2uXErKEW68UWVl4z8DwIr4DXGp/ErwD4M0SEqRIo1WTbuDNG4B/qwUAFAHwN/wU/8A2MbL/goB+wp+0P8Asss+m2viXx/4Ma++G2r6szw2Oh/FXwffWni34c6jeXkMNxdWGmSeK9G03TPEF1aQy3J8N6jrFusM6XD28oB/jd/EX4d+N/hH4+8Z/C74leGtV8G/EH4e+Jta8HeNPCmt25tdW8PeJfD1/PpmsaTfw5ZVns762mhZ43khlCrLBLLC6SMAcZQAUAFABQB+yn7FH/BBf/gpB+3f8Lr/AONfwn+FGkeC/hSlst14a8a/GnXpvh1pvxEgEU00118PbO40rU9Z8S6TbpEFbxJFptv4Wubh2srDXLq+tb+2tAD8a6ACgAoA/sb/AODO/wDa6/4V9+1V8df2OPEOp+VoP7Q/w+g+I3gK0uJsxj4nfB37XNq2m6ZbkgLdeI/hvrviHWNTmXcZLb4dWCMFESlgD/RVoAKACgAoAKAP8j3/AIOEf2uv+Gwv+CqX7RniPStT/tPwF8F9Vt/2bvhwyS+dapoXwgnv9K8TXVjOrGK50/XfiheeP/EunXUAWKbT9ZtChlUCecA/FGgAoA/SL/gkD+0fF+yb/wAFMv2MvjhfXcen6BoXxq0Dwn4xv5mVYbDwF8VYL34UePNRm34Rl0zwh421rUlViP3lpGVZHCugB/snUAFAHjn7Q3wR8HftK/Aj4w/s+/EGAz+C/jR8NvGPw08R7I0kuLXTfGGg32iS6lYb+I9U0lrxNU0q5UpJaalZ2t1DJHLCjqAf4vv7Wf7Lfxa/Yu/aH+KX7M/xv0NtE+Ifwr8S3OhakYlmOla9pjql54e8X+HLmeKGS/8ADHi/QrjT/EXh++aKKWfS9Rt/tMFteLcWsAB86UAFABQAUAfqb+wF/wAEav29/wDgpLZaz4k/Z1+FMNp8NtDW4iuPi98TtSm8B/DK/wBYt5lgk8OeHPEF1YX9z4s12Fy51C08L6Zq8OhhFHiC50lrvT1uwD8+fjF8LPFPwM+LvxT+Cfjkacvjb4PfEfxx8LPGC6ReHUNJXxT8PvE2p+EvEA0u/MVub7Thq2kXYsrwwQG5tvKmMUe8ooB5xQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQB//9f+IegAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoA6Twd4P8TfEDxX4d8D+DNGvfEPivxXrFhoPh7RNOj8281PVtTuEtbO1hUlUXzJZF3zSvHBBEJJ7iWKGN5F7cuy/G5tj8HlmW4apjMfj8RSwmEw1FXqV8RXmoU6ceivKSvKTUIxvKcoxTlHwuJ+Jsh4M4dzvizijNMLkvDvDmWYzOM6zXGz9nhcBl2AozxGJxFVpSlLkpwfJSpwnWrVOSjRp1Ks4Ql/c1+wZ+xx4Z/Yy+CGmeCLYWWp/EPxH9k8QfFXxbbx5OueKGtyq6ZY3EkcdwfDXhiKWXS9AgkWISKb3WZLW21DWtQRv9P8Awq8OsF4ccMUcsh7Ovm+M9ni89x8F/vOOcLKjSm1GX1PAxlKhhItRUl7XEunTq4mqpf8AJD9ML6T2ffSj8WMfxZiPrWA4KyP6xk3h3w3XnZZTw+q3NLHYujCUqP8Abuf1KVPMM5qwdRwksJllPEV8HlWDlH7ar9MP5SCgD8Mv+CxP7e+o/BDwvY/s6/B7xLd6P8W/Gtraaz4z8S6Dfy2mreAPBPnebZWNnfWkiT6d4l8YTQYjdJFutP8ADMF3cGKJte0i+T+X/pEeK1bhnA0uD+HcbUw+f5lCniMyxuEqyp4jKcs5ualSp1acoyo43MZR0cZe0o4KNSbUXisNUj/rf+zG+h1gfFnP8X43eJ2Q4bM/DfhTEYjK+FshzjBwxOW8ZcV+ydPFYvFYTEwnSx2RcM0qt5wnTlhsbn1XDUVOrHJ8zwkvs3/gnJ+2Xp37Y3wF07XdVurSL4teBBY+GPixo8IihZ9YFu/9meLrS1TaItI8ZWltNqEKxxpb2erwa5o1v5kWlJPL+j+DviNR8ReFaOKrzhHP8qVLA5/h48sb4lQfscwp01blw+ZU4SrRSjGFPEQxWGjeNBTl/Ln04fovY76MPjDjsoy6hiKnhvxe8XxB4c5nV56qjljrR+vcN4nET5nUzPhfEV6eCqudSVbFZbXynNK3JUzGVGl+gFfrJ/GYUAfk/wD8FVv2Eo/2rfhP/wAJ/wCANKSX48fCrTbu68OJbRKLvx34TjMt9qvgKZ1+ee/EjTar4P8AM3iHWmu9LTyIfEV5d2/4L47+Fq48yD+1spw6lxVkNGpPBqCSqZrgE5Va+VSaTc6qfNXy7mUuXEupQXJHG1Ksf9GP2d/0van0dfEb/U3jLMZ0/B/xEx+Gw+eSr1G8NwhxHNU8Jl3GNKLvGjg3BUsu4nVNRdXKo4bMJutUyPC4Wv8AxlyxSwSyQzRyQzQyPFLFKjRyxSxsUkjkjYBkkRgVdGAZWBBAIIr/ADilFxbjJOMotxlGSacWnZpp6pp6NPVPRn/UbTqU6tOFWlOFSlVhGpTqU5KdOpTmuaE4TjeM4Ti1KMou0k7q6ZHSLCgAoAKACgAoAKACgAoA/wBrb/gn7/yYZ+xJ/wBmi/s2/wDqmvBlAH11QAUAf5pn/B4n/wApPvg7/wBmPfC7/wBXh+0fQB/KFQAUAFAHafDf4heL/hJ8Q/AnxV+H2s3Hhzx58NPGXhjx/wCCvEFoEa60PxZ4O1qy8Q+HdXt1lVonm07V9OtLuNJEeN3hCyIyFlYA/wBl3/gnJ+2v4K/4KEfsb/BT9qfwb9js5/H3hqK28e+GLSYynwP8UfD7f2P8QvB0qySPdJBpPiS2u5NDnvRFcar4Yu9C10RC31WBqAPt+gAoA/D3/gqr/wAEF/2Qv+Co7P8AEHxBJqfwN/aXs9Hj0nS/jz8P9M0+9n123s4Vg0mw+K3gy6ksLH4jaZpMCLb6fcrq/hzxfZWcdrplp4ut9FtYtMYA/jl+O/8AwaO/8FPPhvqmo/8ACn9V+BH7Rnh2Mu+kXPhvx+vw68VXkALBE1Tw98T7Pw5oGlXz7c+RZ+ONbslV0zqRbeiAHx+v/BtP/wAFsGvfsP8AwxVcLJ1M7fH/APZaFkFz9/7YPjebY8fN5azGbHAiZ8LQB91/s7f8GhH/AAUS+JOq2Mvx++IPwN/Zr8KN5R1Nz4guvjD4+t1dhuXTvC3gpbXwdqEkKhvN+1fE/SU3mJYXuFZ3gAP6i/2DP+DZX/gnN+xfq+l+PvGnh/Wv2t/i3phtrmx8TfHm00S/8B+H9TgIb7f4U+EOn2Q8KxS+akVza3Hje48farpN3DHdaNq2nzKWoA/oN1iGK38PapBBFHDBBo17DDDCixxQxR2MqRxRRoAkccaKERFAVVUKoAGKAP8ACooAKACgD6n/AGIP2l9c/Y4/a7/Z1/af0A3T3PwX+K/hPxjqljZvsn1vwnb6gln458Mh98ZWPxV4LvNf8N3GHU/Z9UlAYdaAP9q7w14j0Pxj4c0Dxd4Y1O11rw14p0TSvEfh7WbGTzbLVtD1ywg1PSdTs5cDzLW/sLm3ureTA3xSo2BnFAG3QAUAFAHwv/wUx/avtf2If2Dv2n/2nHure11v4bfC3Wz4DFz5Ziu/ij4paDwb8LrKSKTPnQXPj/xB4dS8jRHZbD7VNsZImoA/xf7u7u9Qu7q/v7m4vb69uJ7u8vLqaS4uru7uZGmuLm5nlZpZ7ieZ3lmmkZpJJHZ3YsxLAFegAoAUEqQykqykFWBwQRyCCMEEHkEHj2oA/wBdT/ghF/wUXg/4KO/sC/D3x54n1iK++PPwiFt8HP2gbaSRP7QvPGvhnTbX+yPH00OVka2+Jnhh9M8VTXcdvBp6+J5vFeh6fvXQJ9gB+zdABQB+Wn/BTP8A4JB/sh/8FTPBemaZ8dvD+p+Gfih4Rsbqz+Hfx2+H72Gl/EjwnBOZbgaJe3F7Y3uneLvBb6hK17ceE/EVrc28E019c+Hrzw/q2oXGq0AfxT/tE/8ABoB/wUG+HerXs37PnxP+Bf7RvhNTMdNN5rOo/B3x/MqMfLXUPDHiqHVvBtm0qFRG1t8Tb8GRZRKsCBHlAPge5/4Npv8AgthbXi2X/DFc9wzsVjubb4//ALLktm4B4drn/hdqxwKeoF01s+Oqr92gD6x+BH/BpL/wVG+JeqacPi5L8Df2b/D8jq2r3fi74j2fxC8S2dtkBxpegfCeHxfomq34zuS2vPGWiWbqr7tUiYIkoB/S/wDsQf8ABqJ+wB+zNrOi+Ov2gda8V/tm+PtIMNxDpXxC0zT/AAf8EYdRhZZEvf8AhU2j3Wr3evhW3xSaX478ceMPDN3Ayi58OmZRLQB/TpoHh/QfCmiaV4a8L6JpHhvw5oVhbaXomgaBptno+iaNpllEsFnp2laVp8NvY6dYWkKJDbWdpBDbwRKscUaIAtAH+L//AMFLf+Ujf7f/AP2ez+1X/wCr18eUAfE1ABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFAH//0P4h6ACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgD+q3/gjZ+wT/AMKx8LWn7VfxX0Xy/iH440ll+FWiajb4uPBvgbVYMSeKZYZl3W3iDxtZyYsGVRNp/hKUDzg/iTULKy/u36OfhV/YuBp8eZ9huXN8zoNZDhq0fey7K68bSx0oyScMXmdN2pfao5fL4m8ZVpw/53v2oP0xP9fuIMT9Hbw6zX2nBXCeZRfiJmuCrXo8T8XZdWvT4ep1KbtWybhTFU3LGRlKVLHcSU7+yjHIsFisV+9df1Wf48BQB8x/te/tO+D/ANkj4G+Kvi94qMN5e2UX9keCvDTTCG48X+N9Rhn/ALC0CAhhIluzwTajrN1Esj6foNhqd+kU0lukEvxPiFxvl3h/wvj+Icfy1KlNfV8twTlyzzDM60ZfVcJF7qF4yrYipHWlhaVeqozlCMJfvn0afALib6SXi3w74acPKrhcLiqn9pcVZ9Gl7Wjw1wngatL+184rJ2hKso1aWCyvD1JRhjc3xmAwcqlGFadaH8HfxL+I3jD4u+PvFvxN8favNrvjHxtrd5r+vanNx515ePkQ20OWS00+xgWGw0ywh222n6dbWtjapHb28SL/AJY51nGY8QZtmGd5tiJYrMczxNTFYqvLTmqVH8MI7U6VKKjSoUo2hSowp0oJQhGMf+v/AID4H4Z8NeDeG+AuDctpZRwxwplWFyfJ8BS19nhcLCzq16loyxONxdZ1MZj8ZVvXxuOr4jF4iU61apOX0N+xB+1h4k/Y8+PXhv4n6b9rv/Cd2V8O/EvwxbyYXxJ4I1C4hOoxwxO8cR1nR5I4db8PzO8QXVLGK1nmXTr3UIp/rvDLj3G+HfFWCzuh7SrgKjWDzrAwemMyytOPtoxi7ReJw7jHE4STlG1elGEpexqVoS/FfpZfRzyP6Tfg9nvAGP8Aq2D4iwylnfAmf1oa5HxZgqFVYGdWpGE6qyvM4Tq5TnNKEKjll+MqYilSeNwuDnD+7fwf4u8N+PvCvh3xv4P1e01/wr4s0bTvEHh7WrBzJaanpGq2sV5Y3cJIV1E1vMjNHKqTQvuimjSVHRf9SsuzDBZtgMHmeXYini8Bj8NRxeExNJ3p1sPXhGpSqRejXNGSbjJKUXeMlGSaP+QribhrPeDeIs74T4ny3E5NxDw5mmNyXOsrxkOTE4DMsuxFTC4vDVUnKLdOtTko1KcpUqsLVKU5U5QnLo67DwwoA/lc/wCCzP7Bv/CuvE91+1j8K9G8vwJ421WOP4uaNp8H7jwp441ScJB4vjihULBofjW7fytVdlWKx8XSrI00p8T2tvZfwr9I7wr/ALHx0+Pciw1sqzOulxBhqMPcwGZ15JQzBRivcwuZVHau2kqeYSu5P69CFL/oZ/Zc/TB/13yDD/Ry8Q805+L+FMunPw2zTG1r1uI+E8vpOdbhqdSo062bcK4aHtMvjGUqmL4apuEaUFw/iK+L/Aqv5RP9jwoAKACgAoAKACgAoAKAP9rb/gn7/wAmGfsSf9mi/s2/+qa8GUAfXVABQB/mmf8AB4n/AMpPvg7/ANmPfC7/ANXh+0fQB/KFQAUAFABQB+4H/BEX/gsb8Qv+CVfx58jxBJrXjL9kv4r6tp1r8c/hjaSm5udJlHlWNr8Wfh/ZzyJbW3jzwzabUv7ES21n468OW58N6tLBe2nhjXfDYB/qkfs/ftE/BD9qn4V+GvjZ+zz8S/C3xY+F/i2DztG8WeFL77Va+fGkbXek6rZTLDqnh/xDpjSpBrPhvXrLTdf0W7zaarptncq0SgHtFABQAUAFABQAUAZWu/8AIE1n/sFaj/6SS0Af4UlABQAUAFAH+rd/wbPftd/8NUf8ErPhBoOs6p/aHj79l/UtU/Zs8WLNNuuv7G8E29hqfwtulgcmdbCP4Wa74S8Pw3TM8V3qXhvWBE6tby28AB/QFQAUAFAH8SP/AAeS/tdf2B8Lv2Y/2IfDuqeXqPxD8Q6n+0J8TbK3m8udPCXgxL7wb8NbG9jBLXGl+I/FWqeNdUEbBUTUvh7YTAu8ahAD/P8AaACgAoAKAP0j/wCCXP8AwUx+Nn/BLr9pbRfjh8Lpp9f8F6x9i8P/ABr+EV3qEtp4d+K3gBbrzp9Muj5c8WmeKtEMtxqfgfxYltNd+HdYeWOWLUPD+q+IdD1oA/1lP2Lv25v2Zv2//g5pXxt/Zi+JOleOvDNzHZweI9DMkdj42+HfiC5tvtE/hH4h+FZJX1Hwx4hsyJUWO4STTdXgh/tbw5qWs6Fc2eqXQB9c0AFABQAUAFABQAUAf4tH/BS3/lI3+3//ANns/tV/+r18eUAfE1ABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFAH/9H+IegAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgD7F/YbsP2XT8ddE8SftcePIPCXwr8Fxp4lGhS+FPGXisfEDxDZ3UH9keF7y28IeHfEElroSyltT159Qiig1Gxsv7DjDjVJri0/RfDClwO+KMNjfEDNY5fkWWpY36rLAZjj/7WxdOcfq+BqQy/B4x08KpXr4t1oKNalT+qq/t5TofzF9LXGfSBXhFmuR/Rt4QrcSeIfFU5ZE83p8RcL8OPgzJcVh639pcQYWvxNneSQxObumll+TxwVWpVwOLxf9rza/s6lQxX9Vaf8Fdv+CdsaLHH+0EqIiqiInwk+OCoiKMKqqvw2CqqgAKAAABgAdK/uxfSC8IEklxakkrJLIOJ0klskv7FVkl5fcf88Ev2av02pylOfgvKc5ycpzl4k+E8pSlJ3lKUnx025Ntttu7ervcd/wAPeP8Agnf/ANHC/wDmJvjj/wDO3p/8TB+EP/RXf+YDif8A+cxP/FNP6bH/AEZb/wA6P4Tf/R0H/D3j/gnf/wBHC/8AmJvjj/8AO3o/4mD8If8Aorv/ADAcT/8AzmD/AIpp/TY/6Mt/50fwm/8Ao6P5p/8AgpV+23d/tkfG2WfwzeXsfwU+HZvdC+F+mzx3Nn/ascskY1nx3qFhdJDcQal4qmtoGtLe7t7a603w/Z6RYXNrBqKak9x/F/jP4mVPEXiaU8FUqLhrJ3VwuR0ZKdP28ZSX1nNa1KoozhWx8oRdOFSMJ0cJTw9KdONZV3L/AHe+gl9FHD/Rg8KKdHPsNhZ+KvGywmceIGOpToYr+z504TeV8IYPGYedahWwPDtKvWjiK+Gr18Pj85xWZ4yhXq4GWBjS/OWvx0/uAKAP3n/4JQf8FMPBH7PfhfxF8Cv2kfFl5oPwysPtHiT4ZeLG0XxJ4mHhvULy7V9e8Fzab4X0rXNYGlavcXL+IdImh08Wum6kuupeTEaxZi1/qnwF8acs4RwOM4W4yx9TC5JS58ZkuPeGxmN+pVqlRPFZbKjgaGJxHsMROcsXh5Ro8lGt9aVSbWIpKH+Pn7Rf6BvFnjVxBkni74GcOYXN+PsX7DI+PeHFmuR5C89wWFw0o5PxTSx2f5jlOWf2jllChDJcyp1cZ9Yx2AeTywtJPLsXKv8AsX/w94/4J3/9HC/+Ym+OP/zt6/on/iYPwh/6K7/zAcT/APzmP8xP+Kaf02P+jLf+dH8Jv/o6D/h7x/wTv/6OF/8AMTfHH/529H/EwfhD/wBFd/5gOJ//AJzB/wAU0/psf9GW/wDOj+E3/wBHRzfjH/gqT/wTK+IHhTxF4H8Z/Gyy8Q+FPFmj3+geIdE1D4RfHGSz1PSdTt3tby1mA+G6uvmRSN5c0LxTwShJ7eWGeNJV4sx8cvBTN8BjMrzLiWnjMBj8PVwmLw1bh/id061CvBwqQl/wjXV4vSUWpwlacJRklKPu8Mfs+fp7cF8RZJxbwt4U4rJeI+HMzwecZLmuC8SvCaGJwGY4CvDEYbEUm+OnCXJUguelVjKjWpudGtCdKc4S/kF+N2gfDDwx8VvG2i/Bfx2/xK+FdrrDy+BvGM+i674fvNR0G9ghvrW11LS/Emk6Hq0Wq6Kbl9E1O4k0u0tdQv8ATrjUNOjGn3VqW/z34mwmSYHPszw3DeaPOsip4lvK8xnhsVhKlbCVIxq04VqGMw+Frxr4bneGrzdCnCrVozrUV7GcGf8AS94T5zx/n/h3wpmvinwhHgTxDxGWRp8W8MUs0yfOcLgc4wtWrhMRiMDmGRZlm+XVMvzX2Ec2y+jDMMRiMFg8dRwWNn9dw+IR5XXhH6GFABQAUAFABQAUAFAH+oP+x5/wcT/8Ec/hd+yP+y18MvHn7YB0Dxz8Ov2cvgj4E8Z6E37P/wC1Jqh0XxZ4R+Gfhjw/4i0g6nonwR1LRtROm6xp95Zm+0jUb/TLsw/aLC9urR4p3APo3/iJi/4Ij/8AR63/AJrh+1v/APOEoAP+ImL/AIIj/wDR63/muH7W/wD84SgD+Hj/AIOTf24v2Xv2/f27/hv8Zf2Sviafiv8ADXw9+yx4C+G2reJT4L+IXgQW3jPRfil8avEup6Ouj/Erwn4N1+cWujeL/D91/aMGlS6XM18be3vZrm1vIrcA/nyoAKACgAoAKAPuv9hL/gpH+17/AME4fiLc/EP9lr4oXnhVNZ8iLxp8P9cg/wCEj+F/xCtLbcLe38ZeCruaKxvrm0V5Y9N8QadLpfirRori7i0XXdOS9uxOAf2q/sV/8Hhf7OfjyxsfDf7dHwW8UfAbxakMcdz8SfhBb3/xL+FWqTqF+0Xl34TnlHxJ8GRsWK2ul6evxOLLE0lxrMJZIaAP6B/gb/wWK/4JeftGR23/AAqv9uP9n28v71Q1p4f8aeNbf4S+LLrI3FLbwf8AFmHwR4ouJYxzLFBpEkkSgs4RASwB9z+HPi58KfGHl/8ACJfE74e+KfNx5X/COeNPDet+Zu6eX/Zmp3W/PGNpbPagDuZr2ytojPcXdtbwKXDTTTxRRKYmKyAyO6oDGysrgtlWUggFSKAPmz4pftr/ALHXwQsbjUfjD+1V+zt8Mra23iT/AITj4zfDzw3cvIgybe2stU8RW97e3jY2x2VnbzXcr/JFE7lUoA/If9oH/g6B/wCCRXwNtb2Pw98aPGP7Q/iOz8xD4a+BHw18R6t5kq5EXleL/HsXw++Hl1BI/WfTvF+oNGgZ/KYmNZQD+aP9tr/g73/av+LtrrXgz9jX4R+EP2Y/Cd9FdWA+IHjN7H4t/F66tZVkhF5ptrqWm2nw18JPcQSMLjT7rwx49uLaRY5LHxFEwLUAfx/0AFABQAUAf0y/8G0P/BVb4I/8E4vjz8fPC/7VXxDuvhx+zv8AHD4c6NqEviWPwr458cQ6N8Wfh3rTf8Iju8PeAPDnizxFFa694X8V+NrDUNQsdFljN7ZeHY9RkS2hSe1AP7L/APiJi/4Ij/8AR63/AJrh+1v/APOEoAP+ImL/AIIj/wDR63/muH7W/wD84SgA/wCImL/giP8A9Hrf+a4ftb//ADhKAP8AO/8A+C0/7cWjf8FB/wDgov8AHr9oHwRrV1rvwij1DSfhv8EL25sNV0lbj4V/D3To9E0bWbXSNetNP13SLbxprA1/4g/2Vrenadq2n3Hi2e01DTrG7imtIAD8q6ACgAoAKACgD6a/ZO/bF/aR/Ye+LelfGz9mD4qeIfhd4805VtbyfSpYrrQvFGjGVJrjw1418L6jFdeH/F/hu7kjSWXSNe0+9tobqO31GyW21Szsr23AP7S/2H/+Dxfwjqsel+D/APgoH8AbzwpqISO2l+NH7O0c2teHLiXaEF14j+E3inVzr+iRKsZlvtQ8L+MfFslzcTlLHwnp1sirQB/Rj8Cf+C4n/BJ79or7HD8Pv24fgppep3vlxw6F8VtYv/gdrb3b4H9n29h8Y9N8DNqN75h8qOPSm1BLlxmzkuUKSMAfoT4c+OPwV8YeX/wiXxg+F3inzceV/wAI58QPCet+Znp5f9m6vdb85425z6cjaAekm7tVjaZrm3WFdu6UzRiNdyLIu59wUbo3SRcsMo6sMqwLAHhvxH/ap/Zh+Dtnd6j8Wv2jfgR8MLGxBN5d/EL4ueAPBtvbbc5E0viHxBp6xvxgI2HZvlA3YFAH5OfHr/g5O/4JA/Am2v41/aaPxo8Q2Icx+FvgL4H8V/EC51Ax5yLDxdLp2ifC9yzAIn2nx9bB94dSYg7oAfzlftm/8HjXxd8W2+p+Fv2FP2eNG+EmnzrNb2/xZ+O9zZ+OvHghkB8q80b4b+H7iPwL4Z1W2YKVbX/EXxN0uZWdZNMUqjsAfxqfEf4g+MPi38QvHnxV+Iesv4j8f/E3xn4o+IPjnxDLaafp8mveMPGet33iPxNrMlhpNpYaVZPqmtale3z2mmWNlp9s05hsrS2tkjhQA4ygAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgD//S/iHoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAczu+N7M2BgbmLYHoM9BnJxx1/FgBtABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAOLuwVWZiq/dUsSFz12joM4HQduc4FADaACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgD//0/4h6ACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgD//U/iHoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKAP/9X+IegAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoA//1v4h6ACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgD//X/iHoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKAP/9k=" } From 5072c7a4e5af44d27134469305f35d9b915667c9 Mon Sep 17 00:00:00 2001 From: SCP002 Date: Mon, 28 Mar 2022 22:21:40 +0300 Subject: [PATCH 051/189] Create test of main() function for profiling --- xteve_test.go | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 xteve_test.go diff --git a/xteve_test.go b/xteve_test.go new file mode 100644 index 0000000..ef64976 --- /dev/null +++ b/xteve_test.go @@ -0,0 +1,7 @@ +package main + +import "testing" + +func TestMain(t *testing.T) { + main() +} From ecb2526c06c46119f5e2d65afedd6bef359146a0 Mon Sep 17 00:00:00 2001 From: Ted Gould Date: Tue, 29 Mar 2022 19:09:59 +0000 Subject: [PATCH 052/189] Ignore snap stuff --- .gitignore | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index 8d7b0a2..3d697f2 100644 --- a/.gitignore +++ b/.gitignore @@ -6,4 +6,8 @@ files update_xteve*.sh xteve xteve.exe -de.json \ No newline at end of file +de.json +parts/ +prime/ +stage/ +xteve*.snap From be86042174ddf653c381bf585a836293668cc51e Mon Sep 17 00:00:00 2001 From: Ted Gould Date: Tue, 29 Mar 2022 19:13:22 +0000 Subject: [PATCH 053/189] Get some basic debug info out --- snap/snapcraft.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/snap/snapcraft.yaml b/snap/snapcraft.yaml index 9e023c2..706114a 100644 --- a/snap/snapcraft.yaml +++ b/snap/snapcraft.yaml @@ -33,7 +33,7 @@ parts: apps: xteve: daemon: simple - command: bin/xteve -port 8080 -config $SNAP_COMMON/config -no-updates + command: bin/xteve -port 8080 -config $SNAP_COMMON/config -no-updates -debug 1 environment: LD_LIBRARY_PATH: ${SNAP}/usr/lib/arm-linux-gnueabihf/pulseaudio/ plugs: From cf5704ca4d07615cabfffd673e89f7c7cdfd3368 Mon Sep 17 00:00:00 2001 From: SCP002 Date: Tue, 29 Mar 2022 23:49:26 +0300 Subject: [PATCH 054/189] Update dependencies --- go.mod | 8 +++++--- go.sum | 15 +++++++++++---- 2 files changed, 16 insertions(+), 7 deletions(-) diff --git a/go.mod b/go.mod index 3ae8132..d66bddd 100644 --- a/go.mod +++ b/go.mod @@ -3,7 +3,9 @@ module xteve go 1.16 require ( - github.com/gorilla/websocket v1.4.2 // indirect - github.com/kardianos/osext v0.0.0-20190222173326-2bc1f35cddc0 // indirect - github.com/koron/go-ssdp v0.0.2 // indirect + github.com/gorilla/websocket v1.5.0 + github.com/kardianos/osext v0.0.0-20190222173326-2bc1f35cddc0 + github.com/koron/go-ssdp v0.0.2 + golang.org/x/net v0.0.0-20220325170049-de3da57026de // indirect + golang.org/x/sys v0.0.0-20220329152356-43be30ef3008 // indirect ) diff --git a/go.sum b/go.sum index 55714e3..2859e7a 100644 --- a/go.sum +++ b/go.sum @@ -1,5 +1,5 @@ -github.com/gorilla/websocket v1.4.2 h1:+/TMaTYc4QFitKJxsQ7Yye35DkWvkdLcvGKqM+x0Ufc= -github.com/gorilla/websocket v1.4.2/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE= +github.com/gorilla/websocket v1.5.0 h1:PPwGk2jz7EePpoHN/+ClbZu8SPxiqlu12wZP/3sWmnc= +github.com/gorilla/websocket v1.5.0/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE= github.com/kardianos/osext v0.0.0-20190222173326-2bc1f35cddc0 h1:iQTw/8FWTuc7uiaSepXwyf3o52HaUYcV+Tu66S3F5GA= github.com/kardianos/osext v0.0.0-20190222173326-2bc1f35cddc0/go.mod h1:1NbS8ALrpOvjt0rHPNLyCIeMtbizbir8U//inJ+zuB8= github.com/koron/go-ssdp v0.0.2 h1:fL3wAoyT6hXHQlORyXUW4Q23kkQpJRgEAYcZB5BR71o= @@ -7,10 +7,17 @@ github.com/koron/go-ssdp v0.0.2/go.mod h1:XoLfkAiA2KeZsYh4DbHxD7h3nR2AZNqVQOa+LJ golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= -golang.org/x/net v0.0.0-20200904194848-62affa334b73 h1:MXfv8rhZWmFeqX3GNZRsd6vOLoaCHjYEX3qkRo3YBUA= golang.org/x/net v0.0.0-20200904194848-62affa334b73/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= +golang.org/x/net v0.0.0-20220325170049-de3da57026de h1:pZB1TWnKi+o4bENlbzAgLrEbY4RMYmUIRobMcSmfeYc= +golang.org/x/net v0.0.0-20220325170049-de3da57026de/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd h1:xhmwyvizuTgC2qz7ZlMluP20uW+C3Rm0FD/WLDX8884= golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20211216021012-1d35b9e2eb4e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220329152356-43be30ef3008 h1:pq9pwoi2rjLWvmiVser/lIOgiyA3fli4M+RfGVMA7nE= +golang.org/x/sys v0.0.0-20220329152356-43be30ef3008/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= +golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= +golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= From 9b2a06b1acfdc1a413a3050c7864c046d4fa7b87 Mon Sep 17 00:00:00 2001 From: Ted Gould Date: Tue, 29 Mar 2022 22:27:27 +0000 Subject: [PATCH 055/189] Update default ffmpeg options --- src/config.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/config.go b/src/config.go index 3584168..5c8b74b 100644 --- a/src/config.go +++ b/src/config.go @@ -51,7 +51,7 @@ func Init() (err error) { System.Compatibility = "1.4.4" // FFmpeg Default Einstellungen - System.FFmpeg.DefaultOptions = "-hide_banner -loglevel error -i [URL] -c copy -f mpegts pipe:1" + System.FFmpeg.DefaultOptions = "-hide_banner -err_detect ignore_err -reconnect 1 -reconnect_at_eof 1 -reconnect_streamed 1 -reconnect_delay_max 20 -loglevel error -i [URL] -c copy -f mpegts pipe:1" System.VLC.DefaultOptions = "-I dummy [URL] --sout #std{mux=ts,access=file,dst=-}" // Default Logeinträge, wird später von denen aus der settings.json überschrieben. Muss gemacht werden, damit die ersten Einträge auch im Log (webUI aangezeigt werden) From 0a09fe7382dff93d4140e2bd3c86f8078fa085e3 Mon Sep 17 00:00:00 2001 From: SCP002 Date: Wed, 30 Mar 2022 08:19:38 +0300 Subject: [PATCH 056/189] Fix git marks webUI.go as modified each time it rebuilds --- src/html-build.go | 10 +++++++++- src/webUI.go | 44 ++++++++++++++++++++++---------------------- 2 files changed, 31 insertions(+), 23 deletions(-) diff --git a/src/html-build.go b/src/html-build.go index ca85457..4010e21 100644 --- a/src/html-build.go +++ b/src/html-build.go @@ -9,6 +9,7 @@ import ( "os" "path/filepath" "runtime" + "sort" ) var htmlFolder string @@ -70,7 +71,14 @@ func createMapFromFiles(folder string) string { var content string - for key := range blankMap { + // Sort map keys before writing to file to prevent git mark webUI.go as modified when no real changes has been made + keys := make([]string, 0, len(blankMap)) + for k := range blankMap { + keys = append(keys, k) + } + sort.Strings(keys) + + for _, key := range keys { var newKey = key content += ` ` + mapName + `["` + newKey + `"` + `] = "` + blankMap[key].(string) + `"` + "\n" } diff --git a/src/webUI.go b/src/webUI.go index 8aa8dfa..0bfd0eb 100644 --- a/src/webUI.go +++ b/src/webUI.go @@ -4,38 +4,38 @@ var webUI = make(map[string]interface{}) func loadHTMLMap() { + webUI["html/configuration.html"] = "PCFkb2N0eXBlIGh0bWw+DQo8aHRtbD4NCiAgPGhlYWQ+DQogICAgPG1ldGEgY2hhcnNldD0idXRmLTgiPg0KICAgIDxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgsIGluaXRpYWwtc2NhbGU9MS4wIiAvPiANCiAgICA8dGl0bGU+eFRlVmU8L3RpdGxlPg0KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iY3NzL3NjcmVlbi5jc3MiIHR5cGU9InRleHQvY3NzIj4NCiAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9ImNzcy9iYXNlLmNzcyIgdHlwZT0idGV4dC9jc3MiPg0KICAgIDxzY3JpcHQgbGFuZ3VhZ2U9ImphdmFzY3JpcHQiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJqcy9jb25maWd1cmF0aW9uX3RzLmpzIj48L3NjcmlwdD4NCiAgICA8c2NyaXB0IGxhbmd1YWdlPSJqYXZhc2NyaXB0IiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ianMvbmV0d29ya190cy5qcyI+PC9zY3JpcHQ+DQogICAgPHNjcmlwdCBsYW5ndWFnZT0iamF2YXNjcmlwdCIgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9ImpzL21lbnVfdHMuanMiPjwvc2NyaXB0Pg0KICAgIDxzY3JpcHQgbGFuZ3VhZ2U9ImphdmFzY3JpcHQiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJqcy9zZXR0aW5nc190cy5qcyI+PC9zY3JpcHQ+DQogICAgPHNjcmlwdCBsYW5ndWFnZT0iamF2YXNjcmlwdCIgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9ImpzL2Jhc2VfdHMuanMiPjwvc2NyaXB0Pg0KICA8L2hlYWQ+DQoNCiAgICA8Ym9keSBvbmxvYWQ9ImphdmFzY3JpcHQ6IHJlYWR5Rm9yQ29uZmlndXJhdGlvbigwKTsiPg0KICAgICAgICAgIA0KICAgICAgPGRpdiBpZD0ibG9hZGluZyIgY2xhc3M9ImJsb2NrIj4NCiAgICAgICAgPGRpdiBjbGFzcz0ibG9hZGVyIj48L2Rpdj4NCiAgICAgIDwvZGl2Pg0KDQogICAgICA8ZGl2IGlkPSJoZWFkZXIiIGNsYXNzPSJpbWdDZW50ZXIiPjwvZGl2Pg0KICAgICAgPGRpdiBpZD0iYm94Ij4NCiAgICAgICAgDQogICAgICAgIDx0YWJsZSBpZD0iY2xpZW50SW5mbyIgY2xhc3M9InZpc2libGUiPg0KICAgICAgICAgIDx0cj4NCiAgICAgICAgICAgIDx0ZCBjbGFzcz0idGRLZXkiPlZlcnNpb246PC90ZD4NCiAgICAgICAgICAgIDx0ZCBpZD0idmVyc2lvbiIgY2xhc3M9InRkVmFsIj4mbmJzcDs8L3RkPg0KICAgICAgICAgICAgPHRkIGNsYXNzPSJ0ZEtleSI+T1M6PC90ZD4NCiAgICAgICAgICAgIDx0ZCBpZD0ib3MiIGNsYXNzPSJ0ZFZhbCI+Jm5ic3A7PC90ZD4NCiAgICAgICAgICA8L3RyPg0KICAgICAgICAgIDx0cj4NCiAgICAgICAgICAgIDx0ZCBjbGFzcz0idGRLZXkiPlVVSUQ6PC90ZD4NCiAgICAgICAgICAgIDx0ZCBpZD0idXVpZCIgY2xhc3M9InRkVmFsIj4mbmJzcDs8L3RkPg0KICAgICAgICAgICAgPHRkIGNsYXNzPSJ0ZEtleSI+QXJjaDo8L3RkPg0KICAgICAgICAgICAgPHRkIGlkPSJhcmNoIiBjbGFzcz0idGRWYWwiPiZuYnNwOzwvdGQ+DQogICAgICAgICAgPC90cj4NCiAgICAgICAgICA8dHI+DQogICAgICAgICAgICA8dGQgY2xhc3M9InRkS2V5Ij5TdHJlYW1zOjwvdGQ+DQogICAgICAgICAgICA8dGQgaWQ9InN0cmVhbXMiIGNsYXNzPSJ0ZFZhbCI+Jm5ic3A7PC90ZD4NCiAgICAgICAgICAgIDx0ZCBjbGFzcz0idGRLZXkiPkRWUjo8L3RkPg0KICAgICAgICAgICAgPHRkIGlkPSJEVlIiIGNsYXNzPSJ0ZFZhbCI+Jm5ic3A7PC90ZD4NCiAgICAgICAgICA8L3RyPg0KICAgICAgICA8L3RhYmxlPg0KICAgICAgICANCiAgICAgICAgPGRpdiBpZD0iaGVhZGxpbmUiPg0KICAgICAgICAgIDxoMSBpZD0iaGVhZC10ZXh0IiBjbGFzcz0iY2VudGVyIj5Db25maWd1cmF0aW9uPC9oMT4gICAgICANCiAgICAgICAgPC9kaXY+DQogICAgICAgIDxwIGlkPSJlcnIiIGNsYXNzPSJlcnJvck1zZyBjZW50ZXIiPjwvcD4gICANCiAgICAgICAgPGRpdiBpZD0iY29udGVudCI+DQogICAgICAgICAgICANCiAgICAgICAgPC9kaXY+DQogICAgICAgIDxkaXYgaWQ9ImJveC1mb290ZXIiPg0KICAgICAgICAgIDxpbnB1dCBpZD0ibmV4dCIgY2xhc3M9IiIgdHlwZT0iYnV0dG9uIiBuYW1lPSJuZXh0IiB2YWx1ZT0iTmV4dCIgb25jbGljaz0iamF2YXNjcmlwdDogc2F2ZVdpemFyZCgpOyI+DQogICAgICAgIDwvZGl2Pg0KICAgICAgPC9kaXY+DQogICAgPC9ib2R5Pg0KPC9odG1sPg==" + webUI["html/create-first-user.html"] = "PCFkb2N0eXBlIGh0bWw+DQo8aHRtbD4NCiAgPGhlYWQ+DQogICAgPG1ldGEgY2hhcnNldD0idXRmLTgiPg0KICAgIDxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgsIGluaXRpYWwtc2NhbGU9MS4wIiAvPiANCiAgICA8dGl0bGU+eFRlVmU8L3RpdGxlPg0KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iY3NzL3NjcmVlbi5jc3MiIHR5cGU9InRleHQvY3NzIj4NCiAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9ImNzcy9iYXNlLmNzcyIgdHlwZT0idGV4dC9jc3MiPg0KICAgIDxzY3JpcHQgbGFuZ3VhZ2U9ImphdmFzY3JpcHQiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJqcy9uZXR3b3JrX3RzLmpzIj48L3NjcmlwdD4NCiAgICA8c2NyaXB0IGxhbmd1YWdlPSJqYXZhc2NyaXB0IiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ianMvYXV0aGVudGljYXRpb25fdHMuanMiPjwvc2NyaXB0Pg0KICA8L2hlYWQ+DQoNCiAgICA8Ym9keT4NCiAgICAgICAgICANCiAgICAgIDxkaXYgaWQ9ImhlYWRlciIgY2xhc3M9ImltZ0NlbnRlciI+PC9kaXY+DQoNCiAgICAgIDxkaXYgaWQ9ImJveCI+DQoNCiAgICAgICAgPGRpdiBpZD0iaGVhZGxpbmUiPg0KICAgICAgICAgIDxoMSBpZD0iaGVhZC10ZXh0IiBjbGFzcz0iY2VudGVyIj57ey5hY2NvdW50LmhlYWRsaW5lfX08L2gxPg0KICAgICAgICA8L2Rpdj4NCg0KICAgICAgICA8cCBpZD0iZXJyIiBjbGFzcz0iZXJyb3JNc2cgY2VudGVyIj48L3A+DQoNCiAgICAgICAgPGRpdiBpZD0iY29udGVudCI+DQoNCiAgICAgICAgICAgIDxmb3JtIGlkPSJhdXRoZW50aWNhdGlvbiIgYWN0aW9uPSIiIG1ldGhvZD0icG9zdCI+DQoNCiAgICAgICAgICAgICAgPGg1Pnt7LmFjY291bnQudXNlcm5hbWUudGl0bGV9fTo8L2g1Pg0KICAgICAgICAgICAgICA8aW5wdXQgaWQ9InVzZXJuYW1lIiB0eXBlPSJ0ZXh0IiBuYW1lPSJ1c2VybmFtZSIgcGxhY2Vob2xkZXI9IlVzZXJuYW1lIiB2YWx1ZT0iIj4NCiAgICAgICAgICAgICAgPGg1Pnt7LmFjY291bnQucGFzc3dvcmQudGl0bGV9fTo8L2g1Pg0KICAgICAgICAgICAgICA8aW5wdXQgaWQ9InBhc3N3b3JkIiB0eXBlPSJwYXNzd29yZCIgbmFtZT0icGFzc3dvcmQiIHBsYWNlaG9sZGVyPSJQYXNzd29yZCIgdmFsdWU9IiI+DQogICAgICAgICAgICAgIDxoNT57ey5hY2NvdW50LmNvbmZpcm0udGl0bGV9fTo8L2g1Pg0KICAgICAgICAgICAgICA8aW5wdXQgaWQ9ImNvbmZpcm0iICB0eXBlPSJwYXNzd29yZCIgbmFtZT0iY29uZmlybSIgIHBsYWNlaG9sZGVyPSJDb25maXJtIiB2YWx1ZT0iIj4NCiAgICAgICAgICAgICAgDQogICAgICAgICAgICA8L2Zvcm0+DQoNCiAgICAgICAgPC9kaXY+DQogICAgICAgIA0KICAgICAgICA8ZGl2IGlkPSJib3gtZm9vdGVyIj4NCiAgICAgICAgICA8aW5wdXQgaWQ9InN1Ym1pdCIgY2xhc3M9IiIgdHlwZT0iYnV0dG9uIiB2YWx1ZT0ie3suYnV0dG9uLmNyYWV0ZUFjY291bnR9fSIgb25jbGljaz0iamF2YXNjcmlwdDogbG9naW4oKTsiPg0KICAgICAgICA8L2Rpdj4NCiAgICAgIA0KICAgICAgICANCiAgICAgIDwvZGl2Pg0KICAgIDwvYm9keT4NCjwvaHRtbD4=" + webUI["html/css/base.css"] = "KiB7DQogIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTsNCiAgLW1vei1hcHBlYXJhbmNlOiBub25lOw0KICAtbXMtYXBwZWFyYW5jZTogbm9uZTsNCiAgZm9udC1mYW1pbHk6ICJBcmlhbCIsIHNhbnMtc2VyaWY7DQogIGxldHRlci1zcGFjaW5nOiAycHg7IA0KfQ0KDQovKg0KOjotd2Via2l0LXNjcm9sbGJhciB7IA0KICAgIGRpc3BsYXk6IG5vbmU7IA0KfQ0KKi8NCg0KOjotd2Via2l0LXNjcm9sbGJhciB7DQogIHdpZHRoOiAxMnB4Ow0KICBoZWlnaHQ6IDEycHg7DQp9DQoNCiANCjo6LXdlYmtpdC1zY3JvbGxiYXItdHJhY2sgew0KICAtd2Via2l0LWJveC1zaGFkb3c6IGluc2V0IDAgMCA2cHggcmdiYSgwLDAsMCwwLjMpOyANCiAgYm9yZGVyLXJhZGl1czogNXB4Ow0KICAgIA0KfQ0KIA0KOjotd2Via2l0LXNjcm9sbGJhci10aHVtYiB7DQogIGJvcmRlci1yYWRpdXM6IDVweDsNCiAgLXdlYmtpdC1ib3gtc2hhZG93OiBpbnNldCAwIDAgNnB4IHJnYmEoMCwgMCwgMCwwLjYpOyANCiAgYmFja2dyb3VuZC1jb2xvcjogIzQ0NDsNCn0NCg0KOjotd2Via2l0LXNjcm9sbGJhci10aHVtYjpob3ZlciB7DQogIGJhY2tncm91bmQ6ICMzMzM7IA0KfQ0KDQo6Oi13ZWJraXQtc2Nyb2xsYmFyLWNvcm5lciB7IA0KICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsgDQp9DQoNCmEgew0KICBjb2xvcjogIzAwRTZGRjsNCn0NCg0KaHRtbCwgYm9keSB7DQogIGNvbG9yOiAjZmZmOw0KICBtYXJnaW46IDBweCBhdXRvOw0KICBoZWlnaHQ6IDEwMCU7DQogIGZvbnQtc2l6ZTogMTRweDsNCn0NCg0KaDIgew0KICBmb250LXNpemU6IDI0cHg7DQogIGxldHRlci1zcGFjaW5nOiAycHg7DQp9DQoNCmgzIHsNCiAgZm9udC1zaXplOiAyMnB4Ow0KICBsZXR0ZXItc3BhY2luZzogMXB4Ow0KfQ0KDQpoNCB7DQogIGZvbnQtc2l6ZTogMjBweDsNCiAgbGV0dGVyLXNwYWNpbmc6IDFweDsNCiAgbGluZS1oZWlnaHQ6IDEuNWVtOw0KDQp9DQoNCmg1IHsNCiAgZm9udC1zaXplOiAxNnB4Ow0KICBsZXR0ZXItc3BhY2luZzogMXB4Ow0KICBsaW5lLWhlaWdodDogMS4yZW07DQogIG1hcmdpbjogMjVweCAwcHggMTBweCAwcHg7DQp9DQoNCmhyIHsNCiAgYm9yZGVyOiAwOw0KICBoZWlnaHQ6IDFweDsNCiAgYmFja2dyb3VuZDogIzMzMzsNCiAgbWFyZ2luOiAxMHB4IDBweDsNCn0NCg0KcCB7DQogIG1hcmdpbjogMnB4Ow0KICBwYWRkaW5nOiAycHggNXB4Ow0KfQ0KDQpwcmUgew0KICBtYXJnaW46IDBweCAwcHggNXB4IDBweDsNCiAgZm9udC1zaXplOiAxMnB4Ow0KICBjb2xvcjogI2RkZDsNCiAgbGV0dGVyLXNwYWNpbmc6IDFweDsNCiAgd2hpdGUtc3BhY2U6IHByZS13cmFwOw0KICBmb250LWZhbWlseTogbW9ub3NwYWNlOyANCiAgZm9udC1zaXplOiAxMnB4OyANCiAgZm9udC1zdHlsZTogbm9ybWFsOyANCiAgZm9udC12YXJpYW50OiBub3JtYWw7IA0KICBsaW5lLWhlaWdodDogMS42ZW07IA0KfQ0KDQpsYWJlbCB7DQogIG1hcmdpbi1ib3R0b206IDIwcHg7DQogIGRpc3BsYXk6IGJsb2NrOw0KfQ0KDQpsaSB7DQogIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTsNCiAgYmFja2dyb3VuZC1jb2xvcjogIzExMTsNCiAgcGFkZGluZzogMTBweCAyMHB4Ow0KICBjdXJzb3I6IHBvaW50ZXI7DQogIGJvcmRlci1sZWZ0OiBzb2xpZCAycHggIzExMTsNCiAgdHJhbnNpdGlvbjogYWxsIDAuMzsNCn0NCg0KbGk6aG92ZXIgew0KICBib3JkZXItY29sb3I6ICMwMEU2RkYNCn0NCg0Kc2VsZWN0IHsNCiAgY3Vyc29yOiBwb2ludGVyOw0KICB3aWR0aDogY2FsYygxMDAlICsgMnB4KTsNCiAgYm9yZGVyOiBzb2xpZCAwcHggIzAwRTZGRjsNCiAgYm9yZGVyLXJhZGl1czogMHB4Ow0KICBvdXRsaW5lOiBub25lOw0KICBjb2xvcjogI2ZmZjsNCiAgcGFkZGluZzogOXB4IDEwcHg7DQogIGRpc3BsYXk6YmxvY2s7DQogIGJhY2tncm91bmQtY29sb3I6ICMzMzM7DQogIGZvbnQtc2l6ZTogMTRweDsNCiAgbWFyZ2luOiA1cHggMHB4IDVweCAwcHg7DQp9DQoNCnNlbGVjdDpmb2N1cyB7DQogIG91dGxpbmU6IG5vbmU7DQp9DQoNCmlucHV0IHsNCiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lOw0KICBtYXJnaW46IDVweCAwcHg7DQogIHBhZGRpbmc6IDIuNXB4IDEwcHg7DQogIG91dGxpbmU6IG5vbmU7DQogIGZvbnQtc2l6ZTogMTRweDsNCn0NCg0KaW5wdXRbdHlwZT1idXR0b25dLCBpbnB1dFt0eXBlPXN1Ym1pdF0gew0KICBjdXJzb3I6IHBvaW50ZXI7DQogIGJhY2tncm91bmQtY29sb3I6ICMwMDA7DQogIG1hcmdpbjogMTBweCAxMHB4Ow0KICBwYWRkaW5nOiAxMHB4IDI1cHg7DQogIGJvcmRlcjogc29saWQgMHB4Ow0KICBib3JkZXItY29sb3I6ICMwMDA7DQogIGJvcmRlci1yYWRpdXM6IDNweDsNCiAgb3V0bGluZTogbm9uZTsNCiAgY29sb3I6ICNmZmY7DQp9DQoNCmlucHV0W3R5cGU9YnV0dG9uXTpmb2N1cyB7IA0KICAgb3V0bGluZTogbm9uZTsNCn0NCg0KaW5wdXRbdHlwZT1idXR0b25dOmhvdmVyIHsNCiAgYmFja2dyb3VuZC1jb2xvcjogIzAwRTZGRjsNCiAgY29sb3I6ICMwMDA7DQp9DQoNCmlucHV0W3R5cGU9YnV0dG9uXTpob3Zlci5kZWxldGUgIHsNCiAgYmFja2dyb3VuZC1jb2xvcjogcmVkOw0KICBjb2xvcjogI2ZmZjsNCn0NCg0KaW5wdXRbdHlwZT10ZXh0XSwgaW5wdXRbdHlwZT1zZWFyY2hdLCBpbnB1dFt0eXBlPXBhc3N3b3JkXSB7DQogIGNvbG9yOiAjZmZmOw0KICB3aWR0aDogLXdlYmtpdC1jYWxjKDEwMCUgLSAwcHgpOw0KICB3aWR0aDogLW1vei1jYWxjKDEwMCUgLSAwcHgpOw0KICB3aWR0aDogY2FsYygxMDAlIC0gMHB4KTsNCiAgb3V0bGluZTogbm9uZTsNCiAgYm9yZGVyOiBzb2xpZCAxcHggdHJhbnNwYXJlbnQ7DQogIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50Ow0KICBib3JkZXItYm90dG9tLWNvbG9yOiAjNTU1Ow0KICBib3JkZXItcmFkaXVzOiAwcHg7DQogIHBhZGRpbmc6IDhweCAxMHB4Ow0KfQ0KDQppbnB1dFt0eXBlPSJjaGVja2JveCJdIHsNCiAgYm9yZGVyOiBzb2xpZCAxcHggIzAwRTZGRjsNCiAgYmFja2dyb3VuZC1jb2xvcjogIzMzMzsNCiAgaGVpZ2h0OiAyNXB4Ow0KICB3aWR0aDogMjVweDsNCiAgY3Vyc29yOiBwb2ludGVyOw0KICAvKg0KICAtd2Via2l0LWFwcGVhcmFuY2U6IGNoZWNrYm94Ow0KICAqLw0KfQ0KDQppbnB1dFt0eXBlPSJjaGVja2JveCJdOmNoZWNrZWQgew0KICBjb2xvcjogI2ZmZjsNCiAgYmFja2dyb3VuZC1jb2xvcjogIzAwRTZGRjsNCiAgLypkaXNwbGF5OiBpbmxpbmUtYmxvY2s7Ki8NCn0NCg0KaW5wdXRbdHlwZT0iY2hlY2tib3giXTpiZWZvcmUgew0KICBwb3NpdGlvbjogaW5pdGlhbDsNCiAgbGVmdDogMHB4Ow0KICBtYXJnaW4tbGVmdDogLTRweDsNCiAgY29udGVudDogIiAiOw0KfQ0KDQppbnB1dFt0eXBlPSJjaGVja2JveCJdOmNoZWNrZWQ6YmVmb3JlIHsNCiAgcG9zaXRpb246IGluaXRpYWw7DQogIGxlZnQ6IDBweDsNCiAgbWFyZ2luLWxlZnQ6IC0zcHg7DQogIGNvbnRlbnQ6ICLinJMiOw0KICBjb2xvcjogIzAwMDsNCn0NCg0KDQppbnB1dFt0eXBlPWJ1dHRvbl0uY2FuY2VsIHsNCiAgDQogIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50Ow0KICBib3JkZXItY29sb3I6IHJlZDsNCn0NCg0KaW5wdXRbdHlwZT1idXR0b25dLnNhdmV7DQogIGJhY2tncm91bmQtY29sb3I6ICMxMTE7DQogIGZsb2F0OiByaWdodDsNCn0NCg0KDQppbnB1dFt0eXBlPWJ1dHRvbl0uYmxhY2ssIGlucHV0W3R5cGU9c3VibWl0XS5ibGFja3sNCiAgYmFja2dyb3VuZC1jb2xvcjogIzAwMDsNCiAgYm9yZGVyLWNvbG9yOiAjMDAwOw0KfQ0KDQppbnB1dFt0eXBlPWJ1dHRvbl0uY2VudGVyew0KICBtYXJnaW4tcmlnaHQ6IGF1dG87DQogIG1hcmdpbi1sZWZ0OiBhdXRvOw0KICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDAwOw0KICBib3JkZXItY29sb3I6ICMwMDA7DQp9DQoNCi5wb2ludGVyIHsNCiAgY3Vyc29yOiBwb2ludGVyOw0KfQ0KDQoucG9pbnRlcjpob3ZlciB7DQogIGNvbG9yOiAjMDBFNkZGOw0KICBjdXJzb3I6IHBvaW50ZXI7DQp9DQoNCi5zb3J0VGhpcyB7DQogIGNvbG9yOiAjMDBFNkZGOw0KfQ0KDQoudzQwcHggew0KICBtYXgtd2lkdGg6IDQwcHg7DQp9DQoNCi53NTBweCB7DQogIG1heC13aWR0aDogNTBweDsNCn0NCg0KLnc4MHB4IHsNCiAgbWF4LXdpZHRoOiA4MHB4Ow0KfQ0KDQoudzE1MHB4IHsNCiAgbWF4LXdpZHRoOiAxNTBweDsNCn0NCg0KLncyMDBweCB7DQogIG1heC13aWR0aDogMjAwcHg7DQogIG1pbi13aWR0aDogMTAwcHg7DQogIHdpZHRoOiAyMDBweDsNCiAgb3ZlcmZsb3cteDogaGlkZGVuOw0KICB3aGl0ZS1zcGFjZTogbm93cmFwOw0KICBvdmVyZmxvdzogaGlkZGVuOw0KICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsNCn0NCg0KLnczMDBweCB7DQogIG1heC13aWR0aDogMzAwcHg7DQp9DQoNCi53MjIwcHggew0KICBtYXgtd2lkdGg6IDIyMHB4Ow0KICBjdXJzb3I6IGFsaWFzOw0KfQ0KDQouZm9vdGVyIHsNCiAgZm9udC1zaXplOiAxMHB4Ow0KfQ0KDQouY2VudGVyIHsNCiAgdGV4dC1hbGlnbjogY2VudGVyOw0KfQ0KDQouc2NyZWVuTG9nSGlkZGVuIHsNCiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMHB4LCAtMTEwcHgpOw0KfQ0KDQouYm9yZGVyU3BhY2Ugew0KICBtYXJnaW4tYm90dG9tOiAzMHB4Ow0KfQ0KDQouYmxvY2sgew0KDQp9DQoNCi5ub25lIHsNCiAgZGlzcGxheTogbm9uZTsNCn0NCg0KDQoubm90VmlzaWJsZSB7DQogIGhlaWdodDogMHB4Ow0KICBkaXNwbGF5OiBub25lOw0KICBvcGFjaXR5OiAwOw0KICBib3JkZXItYm90dG9tOiAjMDAwIHNvbGlkIDBweDsNCiAgDQp9DQoNCi52aXNpYmxlIHsNCiAgb3BhY2l0eTogMTsNCiAgZGlzcGxheTogYmxvY2s7DQogIGJvcmRlci1ib3R0b206ICM0NDQgc29saWQgMXB4OyANCiAgcGFkZGluZzogMTBweDsNCn0NCg0KLmZsb2F0UmlnaHQgew0KICBmbG9hdDogcmlnaHQ7DQp9DQoNCi5mbG9hdExlZnQgew0KICBmbG9hdDogbGVmdDsNCn0NCg0KLm1lbnUtYWN0aXZlIHsNCiAgYmFja2dyb3VuZC1jb2xvcjogIzAwRTZGRjsNCn0NCg0KLm1lbnUtbm90QWN0aXZlIHsNCiAgDQp9DQoNCiNicmFuY2ggew0KICBkaXNwbGF5OiB0YWJsZTsNCiAgbWFyZ2luOiBhdXRvOw0KICBjb2xvcjogcmVkOw0KfQ0KDQojaW50ZXJhY3Rpb24gew0KICBtYXJnaW4tYm90dG9tOiAxMDBweDsNCiAgdGV4dC1hbGlnbjogY2VudGVyOw0KICBib3JkZXItYm90dG9tOiBzb2xpZCAwcHggIzc3NzsNCn0NCg0KDQouaGFsZiB7DQogIGRpc3BsYXk6IGJsb2NrOw0KICB3aWR0aDogNDUlOw0KfQ0KDQoubWVudSB7DQogIGJvcmRlcjogc29saWQgMXB4ICMwMEU2RkY7DQp9DQoNCi5pbmZvTXNnIHsNCiAgY29sb3I6ICNhYWE7DQp9DQoNCi5lcnJvck1zZyB7DQogIGNvbG9yOiByZWQ7DQp9DQoNCi53YXJuaW5nTXNnIHsNCiAgY29sb3I6IHllbGxvdzsNCn0NCg0KLmRlYnVnTXNnIHsNCiAgY29sb3I6IG1hZ2VudGE7DQp9DQoNCi5OZXdzLCAuTW92aWUsIC5TZXJpZXMsIC5TcG9ydHMsIC5LaWRzIHsNCiAgYm9yZGVyLWxlZnQ6IHNvbGlkIDJweA0KfQ0KDQouTmV3cyB7DQogIGJvcmRlci1jb2xvcjogdG9tYXRvDQp9DQoNCi5Nb3ZpZSB7DQogIGJvcmRlci1jb2xvcjogcm95YWxibHVlOw0KfQ0KDQouU2VyaWVzIHsNCiAgYm9yZGVyLWNvbG9yOiBnb2xkOw0KfQ0KDQouU3BvcnRzIHsNCiAgYm9yZGVyLWNvbG9yOiB5ZWxsb3dncmVlbjsNCn0NCg0KLktpZHMgew0KICBib3JkZXItY29sb3I6IG1lZGl1bXB1cnBsZTsNCn0NCg0KLyogTG9hZGluZyAqLw0KI2xvYWRpbmcgew0KICBsZWZ0OiAwcHg7DQogIHRvcDogMHB4Ow0KICB6LWluZGV4OiAxMDAwMDsNCiAgcG9zaXRpb246IGFic29sdXRlOw0KICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsMCwwLCAwLjgpOw0KICBtYXJnaW46IGF1dG87DQogIHdpZHRoOiAxMDAlOw0KICBoZWlnaHQ6IDEwMCU7DQp9DQoNCg0KLmxvYWRlciB7DQogIGJvcmRlcjogNXB4IHNvbGlkIHRyYW5zcGFyZW50Ow0KICBib3JkZXItcmFkaXVzOiA1MCU7DQogIGJvcmRlci10b3A6IDVweCBzb2xpZCAjMDBFNkZGOw0KICBib3JkZXItYm90dG9tOiA1cHggc29saWQgIzAwRTZGRjsNCiAgd2lkdGg6IDUwcHg7DQogIGhlaWdodDogNTBweDsNCiAgLXdlYmtpdC1hbmltYXRpb246IHNwaW4gMS4ycyBsaW5lYXIgaW5maW5pdGU7DQogIGFuaW1hdGlvbjogc3BpbiAxLjJzIGxpbmVhciBpbmZpbml0ZTsNCg0KICBwb3NpdGlvbjogZml4ZWQ7DQogIG1hcmdpbjogYXV0bzsNCg0KICB0b3A6IDA7DQogIHJpZ2h0OiAwOw0KICBib3R0b206IDA7DQogIGxlZnQ6IDA7DQogIA0KfQ0KDQpALXdlYmtpdC1rZXlmcmFtZXMgc3BpbiB7DQogIDAlIHsgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTsgfQ0KICAxMDAlIHsgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpOyB9DQp9DQoNCkBrZXlmcmFtZXMgc3BpbiB7DQogIDAlIHsgdHJhbnNmb3JtOiByb3RhdGUoMGRlZyk7IH0NCiAgMTAwJSB7IHRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7IH0NCn0NCg==" + webUI["html/css/screen.css"] = "bmF2IGltZyB7DQogIGRpc3BsYXk6IGJsb2NrOw0KICBtYXgtaGVpZ2h0OiAyMHB4Ow0KICBtYXgtd2lkdGg6IDIwcHg7DQogIGZsb2F0OiBsZWZ0Ow0KfQ0KDQpuYXYgcCB7DQogIHRleHQtYWxpZ246IGxlZnQ7DQogIHBhZGRpbmc6IDBweCAzMHB4Ow0KfQ0KDQojbGF5b3V0IHsNCiAgZGlzcGxheTogYmxvY2s7DQogIGhlaWdodDogMTAwJTsNCn0NCg0KDQoubGF5b3V0LWxlZnQgew0KICBkaXNwbGF5OiBibG9jazsNCiAgbWluLXdpZHRoOiAxNTBweDsNCiAgbWF4LXdpZHRoOiAyMCU7DQogIGJhY2tncm91bmQtY29sb3I6ICMxMTE7DQogIGhlaWdodDogaW5oZXJpdDsNCiAgZmxvYXQ6IGxlZnQ7DQp9DQoNCi5sYXlvdXQtcmlnaHQgew0KICBkaXNwbGF5OiBibG9jazsNCiAgYmFja2dyb3VuZC1jb2xvcjogIzQ0NDsNCn0NCg0KI21lbnUtd3JhcHBlciB7DQogIGhlaWdodDogMTAwJTsNCn0NCg0KDQojbG9nbyB7DQogIGRpc3BsYXk6IGJsb2NrOw0KICBtaW4td2lkdGg6IDE4MHB4Ow0KICB3aWR0aDogMTAwJTsNCiAgaGVpZ2h0OiAxMDBweDsNCiAgYmFja2dyb3VuZDogdXJsKCIuLi9pbWcvbG9nb193XzYwMHgyMDAucG5nIik7DQogIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7DQogIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjsgDQogIGJhY2tncm91bmQtc2l6ZTogMTAwJTsNCn0NCg0KDQojcGFnZSB7DQogIG1heC13aWR0aDogOTUwcHg7DQogIG1hcmdpbjogYXV0bzsNCiAgYmFja2dyb3VuZC1jb2xvcjogIzQ0NDsNCg0KICAvKg0KICBoZWlnaHQ6IC13ZWJraXQtY2FsYygxMDAlIC0gMTMwcHgpOw0KICBoZWlnaHQ6IC1tb3otY2FsYygxMDAlIC0gMTMwcHgpOw0KICBoZWlnaHQ6IGNhbGMoMTAwJSAtIDEzMHB4KTsNCiAgKi8NCiAgDQogIG1pbi1oZWlnaHQ6IC13ZWJraXQtY2FsYygxMDAlIC0gMTIwcHgpOw0KICBtaW4taGVpZ2h0OiAtbW96LWNhbGMoMTAwJSAtIDEyMHB4KTsNCiAgbWluLWhlaWdodDogY2FsYygxMDAlIC0gMTIwcHgpOw0KICANCiAgDQogIGJveC1zaGFkb3c6IDBweCA1cHggNXB4ICMyMjI7DQogIA0KfQ0KDQojdWlTZXR0aW5nIHsNCiAgZmxvYXQ6IHJpZ2h0Ow0KICBtYXJnaW4tcmlnaHQ6IDI1cHg7DQp9DQoNCiNib3ggaW5wdXRbdHlwZT10ZXh0XSwgI2JveCBpbnB1dFt0eXBlPXBhc3N3b3JkXSB7DQogIHdpZHRoOiAtd2Via2l0LWNhbGMoMTAwJSAtIDIwcHgpOw0KICB3aWR0aDogLW1vei1jYWxjKDEwMCUgLSAyMHB4KTsNCiAgd2lkdGg6IGNhbGMoMTAwJSAtIDIwcHgpOw0KfQ0KDQojYm94IGlucHV0W3R5cGU9c3VibWl0XXsNCiAgbWFyZ2luOiA1MHB4IGF1dG87DQp9DQoNCiNzZXR0aW5ncyB7DQogIGRpc3BsYXk6IGJsb2NrOw0KICBwYWRkaW5nOiAxMHB4IDEwcHg7DQp9DQoNCiNzZXR0aW5ncyBoNSB7DQogIG1hcmdpbjogNTBweCAwcHggMTBweCAwcHg7DQp9DQoNCiNjb250ZW50LWludGVyYWN0aW9uIC5zZWFyY2ggew0KICB3aWR0aDogMjAwcHg7DQogIGJvcmRlcjogMXB4IHNvbGlkICMwMDA7DQogIHBhZGRpbmc6IDlweDsNCiAgYmFja2dyb3VuZC1jb2xvcjogIzMzMzsNCiAgbWFyZ2luOiAxMHB4Ow0KICBmbG9hdDogcmlnaHQ7DQogIGJvcmRlci1yYWRpdXM6IDNweDsNCg0KfQ0KDQojbXlTdHJlYW1zIHsNCiAgcG9zaXRpb246IGZpeGVkOw0KICBib3R0b206IDBweDsNCiAgYmFja2dyb3VuZC1jb2xvcjogIzExMTsNCiAgd2lkdGg6IDEwMCU7DQogIG1heC13aWR0aDogOTUwcHg7DQoNCiAgLyoNCiAgbWF4LWhlaWdodDogMTAwcHg7DQogICovDQogIG1hcmdpbi1ib3R0b206IDBweDsNCn0NCg0KI215U3RyZWFtcyBpbWcgew0KICB3aWR0aDogNCU7DQogIHBhZGRpbmc6IDJweCA1cHg7DQogIGN1cnNvcjogcG9pbnRlcjsNCiAgZmxvYXQ6IHJpZ2h0Ow0KfQ0KDQojc2V0dGluZ3MtZm9vdGVyIHsNCg0KfQ0KDQoNCi8qIFdpemFyZCovDQojYm94IHsNCiAgYmFja2dyb3VuZC1jb2xvcjogIzQ0NDsNCiAgbWluLWhlaWdodDogNDAwcHg7DQogIA0KICBkaXNwbGF5OiBmbGV4Ow0KICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOw0KICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47DQp9DQoNCiNib3ggcHsNCiAgcGFkZGluZzogMTBweCAwcHg7DQp9DQoNCiNib3gtZm9vdGVyIHsNCiAgbWFyZ2luLXRvcDogYXV0bzsNCn0NCg0KI2JveC1mb290ZXIgew0KICBtYXJnaW46IGF1dG87DQogIHBhZGRpbmc6IDEwcHg7DQp9DQoNCiNoZWFkbGluZSB7DQogIGJhY2tncm91bmQtY29sb3I6ICMyMjI7DQogIGJvcmRlci1ib3R0b206IHNvbGlkIDJweCAjMjIyOw0KICB0cmFuc2l0aW9uOiBhbGwgMC41czsNCiAgcGFkZGluZzogMTBweCAwcHg7DQogIGRpc3BsYXk6IGJsb2NrOw0KfQ0KDQojY29udGVudCB7DQogIGRpc3BsYXk6IGJsb2NrOw0KICBvdmVyZmxvdzogYXV0bzsNCiAgcGFkZGluZzogMTBweDsNCn0NCg0KLyogLS0tICovDQoNCg0KI2NsaWVudEluZm8sICNhY3RpdmVTdHJlYW1zLCAjaW5hY3RpdmVTdHJlYW1zIHsNCiAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZTsNCiAgZGlzcGxheTogYmxvY2s7DQogIGZvbnQtc2l6ZTogOXB4Ow0KICBiYWNrZ3JvdW5kLWNvbG9yOiAjMTExOw0KICBjb2xvcjogIzAwRTZGRjsNCiAgYm9yZGVyLWJvdHRvbTogc29saWQgMHB4OzsNCiAgcGFkZGluZzogMHB4Ow0KICBsZXR0ZXItc3BhY2luZzogMXB4Ow0KICBvdmVyZmxvdy14OiBoaWRkZW47DQogIGJvcmRlci1zcGFjaW5nOiA0cHggNHB4Ow0KICBib3JkZXItYm90dG9tOiBzb2xpZCAxcHggIzQ0NDsNCn0NCg0KI215U3RyZWFtc0JveCB7DQogIHBvc2l0aW9uOiByZWxhdGl2ZTsNCiAgcGFkZGluZzogMHB4Ow0KICAvKmhlaWdodDogMTAwcHg7Ki8NCiAgbWF4LWhlaWdodDogMTUwcHg7DQogIGJhY2tncm91bmQtY29sb3I6ICMxMTE7DQogIGNvbG9yOiB3aGl0ZTsNCiAgZGlzcGxheTpmbGV4Ow0KICBqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyOw0KICBhbGlnbi1pdGVtczpjZW50ZXI7DQp9DQoNCiNvcGVuU3RyZWFtcyB7DQogIHdpZHRoOiAyMHB4Ow0KICBoZWlnaHQ6IDIwcHg7DQogIGN1cnNvcjogcG9pbnRlcjsNCiAgZmxvYXQ6IHJpZ2h0Ow0KICBwb3NpdGlvbjogYWJzb2x1dGU7DQogIHJpZ2h0OiAwcHg7DQogIGJvdHRvbTogMHB4Ow0KICBiYWNrZ3JvdW5kOiB1cmwoIi4uL2ltZy90b3VjaC5wbmciKTsNCiAgYmFja2dyb3VuZC1jb2xvcjogIzExMTsNCiAgDQogIGJhY2tncm91bmQtcG9zaXRpb246IGJvdHRvbSByaWdodDsgIA0KfQ0KDQojYWxsU3RyZWFtcyB7DQogIHdpZHRoOiAxMDAlOw0KICBoZWlnaHQ6IDEwMCU7DQogIHBhZGRpbmc6IDJweDsgICAgIA0KfQ0KDQojYWN0aXZlU3RyZWFtcywgI2luYWN0aXZlU3RyZWFtcyB7DQogIG92ZXJmbG93LXk6IHNjcm9sbDsNCiAgd2lkdGg6IDUwJTsNCiAgbWF4LWhlaWdodDogMTAwcHg7DQogIGZsb2F0OiBsZWZ0Ow0KfQ0KDQojYWN0aXZlU3RyZWFtcyAudGRLZXksICNpbmFjdGl2ZVN0cmVhbXMgLnRkS2V5IHsNCiAgd2lkdGg6IDc1cHg7DQp9DQoNCg0KDQoNCiNpbmFjdGl2ZVN0cmVhbXMgLnRkS2V5IHsNCiAgY29sb3I6IHJlZDsNCn0NCg0KI2NsaWVudEluZm8gLnRkVmFsLCAjbG9nSW5mbyAudGRWYWwsICNhY3RpdmVTdHJlYW1zIC50ZFZhbCwgI2luYWN0aXZlU3RyZWFtcyAudGRWYWwsICNtYXBwaW5nSW5mbyAudGRWYWx7DQogIGNvbG9yOiAjYWFhOw0KICB3aGl0ZS1zcGFjZTogaW5oZXJpdDsNCn0NCg0KI2JveC13cmFwcGVyIHsNCiAgZGlzcGxheTogaW5saW5lLWJsb2NrOw0KICB3aWR0aDogMTAwJTsNCiAgDQogIG92ZXJmbG93LXk6IHNjcm9sbDsNCn0NCg0KI2NvbnRlbnRfdGFibGUsICNtYXBwaW5nLWRldGFpbC10YWJsZSwgI2NvbnRlbnRfdGFibGUgew0KICBkaXNwbGF5OiB0YWJsZTsNCiAgDQogIGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7DQogIG92ZXJmbG93LXk6IHNjcm9sbDsNCiAgd2lkdGg6IDEwMCU7DQp9DQoNCg0KI2NvbnRlbnRfdGFibGUgLmNvbnRlbnRfdGFibGVfaGVhZGVyIHsNCiAgYmFja2dyb3VuZC1jb2xvcjogIzMzMzsNCiAgaGVpZ2h0OiA1MHB4Ow0KICBib3JkZXItYm90dG9tOiBzb2xpZCAxcHggIzExMTsNCiAgYm9yZGVyLWxlZnQ6IHNvbGlkIDNweCAjMzMzOw0KICBjdXJzb3I6IGF1dG87DQoNCn0NCg0KDQp0Ym9keSB7DQogIHdpZHRoOiAxMDAlOw0KfQ0KDQoNCi50YWJsZUVsbGlwc2lzIHsNCiAgd2lkdGg6IDE1MHB4Ow0KICBvdmVyZmxvdzogaGlkZGVuOw0KICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsNCiAgd2hpdGUtc3BhY2U6IG5vd3JhcDsNCn0NCg0KI2NvbnRlbnRfdGFibGUgaW1nIHsNCiAgZGlzcGxheTogYmxvY2s7DQogIG1heC1oZWlnaHQ6IDI4cHg7DQogIG1hcmdpbi1sZWZ0OiBhdXRvOw0KICBtYXJnaW4tcmlnaHQ6IGF1dG87DQogIG1heC13aWR0aDogMzBweDsNCn0NCg0KI2NvbnRlbnRfdGFibGUgdHJ7DQogIGJvcmRlci1sZWZ0OiBzb2xpZCAzcHggNDQ0Ow0KICBib3JkZXItYm90dG9tOiBzb2xpZCAxcHggIzMzMzsNCiAgY3Vyc29yOiBwb2ludGVyOw0KfQ0KDQojY29udGVudF90YWJsZSB0cjpob3ZlciB7DQogIGJhY2tncm91bmQtY29sb3I6ICMzMzM7DQp9DQoNCiNjb250ZW50X3RhYmxlIHRkIHsNCg0KICBwYWRkaW5nOiAwcHggMnB4Ow0KfQ0KDQojY29udGVudF90YWJsZSBpbnB1dFt0eXBlPXRleHRdew0KICB3aWR0aDogODAlOw0KICBtaW4td2lkdGg6IDM1cHg7DQogIG1heC13aWR0aDogNjBweDsNCiAgYm9yZGVyOiAwcHg7DQogIGJhY2tncm91bmQtY29sb3I6ICMzMzM7DQogIG1hcmdpbi1sZWZ0OiA1cHg7DQogIHRleHQtYWxpZ246IGxlZnQ7DQp9DQoNCiNjb250ZW50X3RhYmxlIGlucHV0W3R5cGU9Y2hlY2tib3hdew0KICBtYXgtd2lkdGg6IDI1cHg7DQogIG1hcmdpbjogYXV0bzsNCn0NCg0KDQouc2hvd0J1bGsgew0KICBkaXNwbGF5OiBibG9jazsNCn0NCg0KLmhpZGVCdWxrIHsNCiAgZGlzcGxheTogbm9uZTsNCn0NCg0KLm5vQnVsayB7DQoNCn0NCg0KI2NvbnRlbnRfdGFibGUgdHIuYWN0aXZlRVBHew0KICBib3JkZXItbGVmdDogc29saWQgM3B4IGxhd25ncmVlbjsNCn0NCg0KI2NvbnRlbnRfdGFibGUgdHIubm90QWN0aXZlRVBHew0KICBib3JkZXItbGVmdDogc29saWQgM3B4IHJlZDsNCn0NCg0KDQojbG9nU2NyZWVuIHB7DQogIHdoaXRlLXNwYWNlOiBwcmU7DQogIGZvbnQtc2l6ZTogMTBweDsNCiAgLyoNCiAgbGluZS1oZWlnaHQ6IDEuNmVtOw0KICBmb250LWZhbWlseTogIkFyaWFsIiwgc2Fucy1zZXJpZjsNCiAgKi8NCiAgbGV0dGVyLXNwYWNpbmc6IDFweDsNCiAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZTsgDQogIGZvbnQtc2l6ZTogMTJweDsgDQogIGZvbnQtc3R5bGU6IG5vcm1hbDsgDQogIGZvbnQtdmFyaWFudDogbm9ybWFsOyANCiAgbGluZS1oZWlnaHQ6IDEuNmVtOyANCn0NCg0KI3BvcHVwIHsNCiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjQpOw0KICBwb3NpdGlvbjogZml4ZWQ7DQogIGxlZnQ6IDBweDsNCiAgd2lkdGg6IDEwMCU7DQogIHotaW5kZXg6IDEwMDsNCiAgaGVpZ2h0OiAxMDAlOw0KfQ0KDQojbWFwcGluZy1kZXRhaWwsICN1c2VyLWRldGFpbCwgI2ZpbGUtZGV0YWlsLCAjcG9wdXAtY3VzdG9tIHsNCiAgYm94LXNoYWRvdzogMHB4IDVweCA0MHB4ICMwMDA7DQogIG1hcmdpbi10b3A6IDIwcHg7DQogIG1hcmdpbi1sZWZ0OiBhdXRvOw0KICBtYXJnaW4tcmlnaHQ6IGF1dG87DQogIA0KICBtYXgtd2lkdGg6IDYwMHB4Ow0KICBiYWNrZ3JvdW5kLWNvbG9yOiAjMjIyOw0KICBwYWRkaW5nOiAxMHB4Ow0KICBvdmVyZmxvdzphdXRvOw0KfQ0KDQojcG9wdXAtY3VzdG9tIGgzIHsNCiAgdGV4dC1hbGlnbjogY2VudGVyOw0KfQ0KDQojZmlsZS1kZXRhaWwgaW5wdXRbdHlwZT10ZXh0XSB7DQogIHdpZHRoOiAtd2Via2l0LWNhbGMoMTAwJSAtIDIwcHgpOw0KICB3aWR0aDogLW1vei1jYWxjKDEwMCUgLSAyMHB4KTsNCiAgd2lkdGg6IGNhbGMoMTAwJSAtIDIwcHgpOw0KfQ0KDQojbWFwcGluZy1kZXRhaWwgaW1nIHsNCiAgZGlzcGxheTogYmxvY2s7DQogIG1heC1oZWlnaHQ6IDMwcHg7DQogIG1hcmdpbi1ib3R0b206IDIwcHg7DQogIG1hcmdpbi1sZWZ0OiBhdXRvOw0KICBtYXJnaW4tcmlnaHQ6IGF1dG87DQp9DQoNCiNwb3B1cC1jdXN0b20gaW5wdXRbdHlwZT10ZXh0XSwgI3BvcHVwLWN1c3RvbSBpbnB1dFt0eXBlPXBhc3N3b3JkXSwgI21hcHBpbmctZGV0YWlsIGlucHV0W3R5cGU9dGV4dF0sICNjb250ZW50X3NldHRpbmdzIGlucHV0W3R5cGU9dGV4dF0sICNjb250ZW50X3NldHRpbmdzIGlucHV0W3R5cGU9cGFzc3dvcmRdew0KICBib3JkZXI6IHNvbGlkIDFweDsNCiAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDsNCiAgYmFja2dyb3VuZC1jb2xvcjogIzMzMzsNCiAgdGV4dC1hbGlnbjogbGVmdDsNCiAgd2lkdGg6IC13ZWJraXQtY2FsYygxMDAlIC0gMjBweCk7DQogIHdpZHRoOiAgICAtbW96LWNhbGMoMTAwJSAtIDIwcHgpOw0KICB3aWR0aDogICAgICAgICBjYWxjKDEwMCUgLSAyMHB4KTsNCn0NCg0KI3BvcHVwLWN1c3RvbSBpbnB1dFt0eXBlPXRleHRdLm5vdEF2YWlsYWJsZSB7DQogIGJvcmRlci1jb2xvcjogcmVkOw0KICBjb2xvcjogIzY2NjsNCiAgY3Vyc29yOiBub3QtYWxsb3dlZDsNCn0NCg0KI21hcHBpbmctZGV0YWlsLXRhYmxlLCAjdXNlci1kZXRhaWwtdGFibGUgew0KICBkaXNwbGF5OiBpbmxpbmUtdGFibGU7DQogIHdpZHRoOiAxMDAlOw0KfQ0KDQojcG9wdXAtY3VzdG9tIHRhYmxlLCAjY29udGVudF9zZXR0aW5ncyB0YWJsZSB7DQogIGRpc3BsYXk6IGlubGluZS10YWJsZTsNCiAgdGFibGUtbGF5b3V0OiBmaXhlZDsNCiAgd2lkdGg6IDEwMCU7DQp9DQoNCg0KI21hcHBpbmctZGV0YWlsLXRhYmxlIHRkLCAjdXNlci1kZXRhaWwtdGFibGUgdGQgew0KICBwYWRkaW5nOiAxMHB4IDBweDsNCg0KfQ0KDQojbWFwcGluZy1kZXRhaWwtdGFibGUgdGQubGVmdCwgI3VzZXItZGV0YWlsLXRhYmxlIHRkLmxlZnQsICNwb3B1cC1jdXN0b20gdGQubGVmdCB7DQogIHdpZHRoOiAzOCU7DQp9DQoNCi5pbnRlcmFjdGlvbiwgI2ludGVyYWN0aW9uIHsNCiAgbWFyZ2luLXRvcDogMjBweDsNCiAgZGlzcGxheTogaW5saW5lLWZsZXg7DQogIGZsb2F0OiByaWdodDsNCn0NCg0KLmludGVyYWN0aW9uIGlucHV0W3R5cGU9YnV0dG9uXSwgLmludGVyYWN0aW9uIGlucHV0W3R5cGU9c3VibWl0XSB7DQogIGJhY2tncm91bmQtY29sb3I6ICMwMDA7DQogIG1pbi13aWR0aDogMTAwcHg7DQogIG1hcmdpbjogMHB4IDEwcHg7DQogIHRleHQtYWxpZ246IGNlbnRlcjsNCn0NCg0KI25vdGlmaWNhdGlvbiB7DQogIGRpc3BsYXk6IGJsb2NrOw0KICBwb3NpdGlvbjogZml4ZWQ7DQogIHJpZ2h0OiAwcHg7DQogIGhlaWdodDogMTAwJTsNCiAgd2lkdGg6IDI1MHB4Ow0KICANCiAgYmFja2dyb3VuZC1jb2xvcjogIzIyMjsNCiAgYm94LXNoYWRvdzogMHB4IDBweCAyMHB4ICMwMDA7DQp9DQoNCiNub3RpZmljYXRpb24gaDUgew0KICBiYWNrZ3JvdW5kLWNvbG9yOiAjMTIxMjEyOw0KICBwYWRkaW5nOiA1cHggMTBweCA1cHggMTBweDsNCn0NCg0KI25vdGlmaWNhdGlvbiBwcmUgew0KICBwYWRkaW5nOiAwcHggMTBweCAwcHggMTBweDsNCn0NCg0KI25vdGlmaWNhdGlvbiBwIHsNCiAgZm9udC1zaXplOiAxMCBweDsNCiAgbWFyZ2luOiAwcHg7DQogIHBhZGRpbmc6IDBweCAxMHB4IDVweCAxMHB4Ow0KfQ0KDQojbm90aWZpY2F0aW9uIC5lbGVtZW50IHsNCiAgLypwYWRkaW5nOiAwcHggNXB4OyovDQogIG1hcmdpbjogNXB4IDVweDsNCiAgYm9yZGVyLXJhZGl1czogNXB4Ow0KICBiYWNrZ3JvdW5kLWNvbG9yOiAjMTgxODE4Ow0KICBib3JkZXItbGVmdDogMTBweCBzb2xpZCBncmVlbjsNCn0NCg0KDQpAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDYyMHB4KXsNCiAgYm9keSB7DQogICAgd2lkdGg6IDEwMCU7DQogICAgYmFja2dyb3VuZC1jb2xvcjogIzQ0NDsNCiAgfQ0KDQogIGgxIHsNCiAgICBmb250LXNpemU6IDI2cHg7DQogICAgbGV0dGVyLXNwYWNpbmc6IDNweDsNCiAgfQ0KDQogIG5hdiBwIHsNCiAgICBkaXNwbGF5OiBibG9jazsNCiAgfQ0KDQoNCg0KICAjaGVhZGVyX2NvbmZpZyB7DQogICAgZGlzcGxheTogYmxvY2s7DQogICAgaGVpZ2h0OiAxMDBweDsNCiAgICBiYWNrZ3JvdW5kOiB1cmwoIi4uL2ltZy9sb2dvX3dfNjAweDIwMC5wbmciKTsNCiAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0Ow0KICAgIA0KICAgIGJhY2tncm91bmQtc2l6ZTogMzAwcHggMTAwcHg7DQogIH0NCg0KICAjc2NyZWVuTG9nIHsNCiAgICBtYXJnaW4tbGVmdDogMzAwcHg7DQoNCiAgICB0cmFuc2l0aW9uOiBub25lOw0KICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50Ow0KICAgIGJvcmRlci1ib3R0b206IHNvbGlkIDFweCB0cmFuc3BhcmVudDsNCiAgICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAjMjIyOw0KICB9DQoNCiAgI3NldHRpbmdzIHsNCiAgICAvKg0KICAgIGhlaWdodDogLXdlYmtpdC1jYWxjKDEwMCUgLSAxMDBweCk7DQogICAgaGVpZ2h0OiAtbW96LWNhbGMoMTAwJSAtIDEwMHB4KTsNCiAgICBoZWlnaHQ6IGNhbGMoMTAwJSAtIDEwMHB4KTsNCiAgICAqLw0KICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsNCiAgICBvdmVyZmxvdzogYXV0bzsNCiAgfQ0KDQoNCiAgLnNjcmVlbkxvZ0hpZGRlbiB7DQogICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMHB4LCAwcHgpOw0KICB9DQoNCg0KICAjYm94IHsNCiAgICBkaXNwbGF5OiBibG9jazsNCiAgICBtaW4taGVpZ2h0OiA1MDBweDsNCiAgICBtYXgtd2lkdGg6IDUwMHB4Ow0KICAgIG1hcmdpbjogMTBweCBhdXRvOw0KICAgIGJhY2tncm91bmQtY29sb3I6ICM0NDQ7DQogICAgYm94LXNoYWRvdzogMHB4IDVweCA1cHggIzIyMjsNCg0KICAgIGRpc3BsYXk6IGZsZXg7DQogICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsNCiAgfQ0KDQogICNzZXR0aW5ncywgI3NldHRpbmdzLWZvb3RlciB7DQogICAgDQogIH0NCn0NCg==" + webUI["html/img/BC-QR.jpg"] = "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" + webUI["html/img/filter.png"] = "iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAAAXNSR0IArs4c6QAAAAlwSFlzAAAsSwAALEsBpT2WqQAABCRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IlhNUCBDb3JlIDUuNC4wIj4KICAgPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIgogICAgICAgICAgICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgICAgICAgICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyI+CiAgICAgICAgIDx0aWZmOlJlc29sdXRpb25Vbml0PjI8L3RpZmY6UmVzb2x1dGlvblVuaXQ+CiAgICAgICAgIDx0aWZmOkNvbXByZXNzaW9uPjU8L3RpZmY6Q29tcHJlc3Npb24+CiAgICAgICAgIDx0aWZmOlhSZXNvbHV0aW9uPjI4ODwvdGlmZjpYUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6T3JpZW50YXRpb24+MTwvdGlmZjpPcmllbnRhdGlvbj4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+Mjg4PC90aWZmOllSZXNvbHV0aW9uPgogICAgICAgICA8ZXhpZjpQaXhlbFhEaW1lbnNpb24+NTA8L2V4aWY6UGl4ZWxYRGltZW5zaW9uPgogICAgICAgICA8ZXhpZjpDb2xvclNwYWNlPjE8L2V4aWY6Q29sb3JTcGFjZT4KICAgICAgICAgPGV4aWY6UGl4ZWxZRGltZW5zaW9uPjUwPC9leGlmOlBpeGVsWURpbWVuc2lvbj4KICAgICAgICAgPGRjOnN1YmplY3Q+CiAgICAgICAgICAgIDxyZGY6QmFnLz4KICAgICAgICAgPC9kYzpzdWJqZWN0PgogICAgICAgICA8eG1wOk1vZGlmeURhdGU+MjAxOC0wNy0yOFQxOTowNzo2OTwveG1wOk1vZGlmeURhdGU+CiAgICAgICAgIDx4bXA6Q3JlYXRvclRvb2w+UGl4ZWxtYXRvciAzLjM8L3htcDpDcmVhdG9yVG9vbD4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgIDwvcmRmOlJERj4KPC94OnhtcG1ldGE+Cs038OQAAAOISURBVGgF5ZpLSBVRGMfvvfmqCKKiKCqKtE3SQ8haJJm1ctPCZYHrFhXtohcUBLVsU1BRBJKLXpsSKs1aCL1oUUhvMgIloodZKmLZ72+OzNVx7jzOXGfqg/89Z875zv/7f35n7px7vanUP2JptzyGhoYKmK8GW0EZmA/mgW7wHrwDN0BTOp0epPVtxBBnLdgIVoE5YBboBR2gDTTA/5DWn0FeDPaBz8CLdeF0EBR5jYRvKbgABoAXa8Opwit/CudK8NoLs4PPM8ZyBsNnB/jpsD7X0C8cjgDXnaQkqkEPCGMSuGWivxxzx8OQj6xtpHWuPhPloHfEMWzTD0HN2GQY2xuW2Lb+/Fh+VaIQPLE5meh+gmSxFYz+BjBogtjGscfiH26Z2GmbNNltVQAIpwDdP6ZNO2iRYqTpZGhfgWUaiMC2w1kCzkbALcqLvDVvUyK6MW9HFES0b8BvsFwXEZi4F+iBtykCcjtlqf0igr52VJ1eqiIgzzdlrRIZfWfJd3SD8ZbqHvkB4XSDpJNB9V0VcX/cT4Ys/zEzSuSj/3WxW9GpRD7ETpZ/QcOJ6LyfdHugitxNehbob9G7lo4PXWBmQhPqQ/fsDOeUfjqNCU1Csi+TQ5+2luzc3yaRr6elevQZwhZr4bomYam0U41yabYqov5hvSTMjlp6RyuiAarSTLPZmox5246+lVREx/isiuh6NxhUJwF2yEpCWu1bK8WEsjyRgCSa0XrVrjNra2mC7TWD5ilYAuJoA4jSlnppF5dVEU3g0ENTD4b3nsZiZsfGJuGqj8qY+CINGqP2GLZCJ+HjtpblxAJ9k3cPrLfGJrnVUaSCarxw0jFua1lOLNBerANx+byya6IkLM2uLZWpAl6/Mcc1EjvjKtLrJNLqI5HnjfQ+bsVeteb0g2y/t7hGvd7CNjenOL8OkJ40KtOdTF+Cl/nV6Mkf4gxocI9vZPYLLKs9iQrqRIACcM2IXGeSboYrg+rztY5ARaDJWUeo0W+sXudLTFhnApaAW6FkZy/+yuXasLoCrSfwVHAnW0+gK93YawKJMLUIAdNAKwhqnSxcYUpPKB6EBE2mg7VR///EX24jybTQerXnOC70FyVP3gjTPXPTQyaP8NFPNeJrCNTPP667JKOq6VNo/A2hes5ccUjmEmPmDoD5+FMgWCcA+3FG57QJP//kQ1PgGBIOToEDgUn+t4V/AJeGknwARIKLAAAAAElFTkSuQmCC" + webUI["html/img/log.png"] = "iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAAAXNSR0IArs4c6QAAAAlwSFlzAAAsSwAALEsBpT2WqQAABCRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IlhNUCBDb3JlIDUuNC4wIj4KICAgPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIgogICAgICAgICAgICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgICAgICAgICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyI+CiAgICAgICAgIDx0aWZmOlJlc29sdXRpb25Vbml0PjI8L3RpZmY6UmVzb2x1dGlvblVuaXQ+CiAgICAgICAgIDx0aWZmOkNvbXByZXNzaW9uPjU8L3RpZmY6Q29tcHJlc3Npb24+CiAgICAgICAgIDx0aWZmOlhSZXNvbHV0aW9uPjI4ODwvdGlmZjpYUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6T3JpZW50YXRpb24+MTwvdGlmZjpPcmllbnRhdGlvbj4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+Mjg4PC90aWZmOllSZXNvbHV0aW9uPgogICAgICAgICA8ZXhpZjpQaXhlbFhEaW1lbnNpb24+NTA8L2V4aWY6UGl4ZWxYRGltZW5zaW9uPgogICAgICAgICA8ZXhpZjpDb2xvclNwYWNlPjE8L2V4aWY6Q29sb3JTcGFjZT4KICAgICAgICAgPGV4aWY6UGl4ZWxZRGltZW5zaW9uPjUwPC9leGlmOlBpeGVsWURpbWVuc2lvbj4KICAgICAgICAgPGRjOnN1YmplY3Q+CiAgICAgICAgICAgIDxyZGY6QmFnLz4KICAgICAgICAgPC9kYzpzdWJqZWN0PgogICAgICAgICA8eG1wOk1vZGlmeURhdGU+MjAxOC0xMC0xNFQxMToxMDo0MjwveG1wOk1vZGlmeURhdGU+CiAgICAgICAgIDx4bXA6Q3JlYXRvclRvb2w+UGl4ZWxtYXRvciAzLjM8L3htcDpDcmVhdG9yVG9vbD4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgIDwvcmRmOlJERj4KPC94OnhtcG1ldGE+CkP32mEAAANASURBVGgF7ZlPiE1RHMffw1AYhiL5k1HEijJiYaFZiHoyFspW2RFRkkSZGgtFWJIwi9FYmo0VOywkKTbKgjSlWcifRCPX51dv6s2d33md77vvXjfmV9859/7u93x/v98959x73p1KRbAkSargAhgDH0E/qIYkuHYEvAPGvwbmNOEerXM/0Q6BRSFuZj/ix0DaDnvCkGppIucDAe4OhzvkcUO+GaELAf8ux7/b8Zlrr+Pvc3zm6nX8NccXdKmFLHaUPJ/Ruhyu5zNap8Nd6PiCLrUQTyi0Rjy/5/M0Zd+smB7M32XwtgBr07aC6yfSTs7XO77OALfH4VbgHsD/HLytVquJx4nyIdQFBsHftscksK5Z0sGhpuN8Or4Aa5sJFHjtO7G2MjKvvZjN1sglOpSlCMt9LrDZ4S4Hd0Qg24vrK+gAZbPtjMqTdFKhEdkIsYxFWP720JlioUK6pzDL41jtpRIqxOOWxecuB3fhRGT8E85YBK8VygI6GSRTCxlH3TaJgyw4O2678aCxO94LbNPovYDdmOrUukIBN/MqwjJEOwGPOHR31W4VONVCLEBR9lAJpBbSrYhn5K5R+quFnGUOr1ICtMIlxjz6XVb6qot9JeKvCPSAdlQJJHDtd8hOIN0wtRDLxx6Ntr0ulalTq1TJNyYzXUjj3SjD8X87Iva7uR8s5+2bi6FtX1oOgi8g2tSn1g2yPx+t3gIR/c90s1+C1vuO/YkxdWrdjxFtE2dE0VELWaqIZ+QuUfqrhZxmyKUvgEoyE1xizOR4YOI8plXXyAZEbYsyTJvXFsUW+x6wGUSbWogJ237rZHSEgojq1CooLT3MdCH6Pcu3xz8zIq0s9lvc2+sgz6dWH/rnQPB/jlybZGoh99hCHJqk0P6TD0jaI/4b7dVYeXVq2bemokyKpRZiHwWKMimWWshxhryjoEpOKXHUNbIN8WcUc5s2r8Vue7l9oAaiTS3EhDeB6EUYnUlGojq1MobLr3uokB/5hcys7OYWKuRl5nD5Cbi5uYXw0ntPHoay2S8Seuol5RZSJ0r/n/DEc/BdrN9kTZrH7BkwDspgwyQxW6uggU3nHnAXvAG/QZE2SrARsL8hJffwDxM0mNDPvT8IAAAAAElFTkSuQmCC" + webUI["html/img/logo_b_880x200.jpg"] = "/9j/4AAQSkZJRgABAQABLAEsAAD/4QDIRXhpZgAATU0AKgAAAAgABwESAAMAAAABAAEAAAEaAAUAAAABAAAAYgEbAAUAAAABAAAAagEoAAMAAAABAAIAAAExAAIAAAAPAAAAcgEyAAIAAAAUAAAAgodpAAQAAAABAAAAlgAAAAAAAAEsAAAAAQAAASwAAAABUGl4ZWxtYXRvciAzLjMAADIwMTk6MDg6MDIgMjA6MDg6MTQAAAOgAQADAAAAAQABAACgAgAEAAAAAQAAA3CgAwAEAAAAAQAAAMgAAAAA/+EJkGh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8APD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iWE1QIENvcmUgNS40LjAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcDpDcmVhdG9yVG9vbD0iUGl4ZWxtYXRvciAzLjMiIHhtcDpNb2RpZnlEYXRlPSIyMDE5LTA4LTAyVDIwOjA4OjE0Ii8+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPD94cGFja2V0IGVuZD0idyI/PgD/7QA4UGhvdG9zaG9wIDMuMAA4QklNBAQAAAAAAAA4QklNBCUAAAAAABDUHYzZjwCyBOmACZjs+EJ+/8AAEQgAyANwAwERAAIRAQMRAf/EAB8AAAEFAQEBAQEBAAAAAAAAAAABAgMEBQYHCAkKC//EALUQAAIBAwMCBAMFBQQEAAABfQECAwAEEQUSITFBBhNRYQcicRQygZGhCCNCscEVUtHwJDNicoIJChYXGBkaJSYnKCkqNDU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6g4SFhoeIiYqSk5SVlpeYmZqio6Slpqeoqaqys7S1tre4ubrCw8TFxsfIycrS09TV1tfY2drh4uPk5ebn6Onq8fLz9PX29/j5+v/EAB8BAAMBAQEBAQEBAQEAAAAAAAABAgMEBQYHCAkKC//EALURAAIBAgQEAwQHBQQEAAECdwABAgMRBAUhMQYSQVEHYXETIjKBCBRCkaGxwQkjM1LwFWJy0QoWJDThJfEXGBkaJicoKSo1Njc4OTpDREVGR0hJSlNUVVZXWFlaY2RlZmdoaWpzdHV2d3h5eoKDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uLj5OXm5+jp6vLz9PX29/j5+v/bAEMAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAf/bAEMBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAf/dAAQAbv/aAAwDAQACEQMRAD8A/iHoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKAP/9D+IegAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoA//0f4h6ACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgD//S/iHoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKAP/9P+IegAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoA//1P4h6ACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgDvPDXws+J3jPT31bwf8OfHnivSo7mSyfU/DXhDxBrunpeQpFLNaPe6Xp11bLcxRzwSSQNL5saTROyhZUNAHQf8M//AB4/6In8XP8Aw23jL/5TUAH/AAz/APHj/oifxc/8Nt4y/wDl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f/E3xn4o+IPjnxDLaafp8mveMPGet33iPxNrMlhpNpYaVZPqmtale3z2mmWNlp9s05hsrS2tkjhQA4ygAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgD//S/iHoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAczu+N7M2BgbmLYHoM9BnJxx1/FgBtABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAOLuwVWZiq/dUsSFz12joM4HQduc4FADaACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgD//0/4h6ACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgD//U/iHoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKAP/9X+IegAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoA//1v4h6ACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgD//X/iHoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKAP/9k=" + webUI["html/img/logo_w_600x200.png"] = "iVBORw0KGgoAAAANSUhEUgAAAlgAAADICAYAAAA0n5+2AAAAAXNSR0IArs4c6QAAAAlwSFlzAAAuIwAALiMBeKU/dgAABCZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IlhNUCBDb3JlIDUuNC4wIj4KICAgPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIgogICAgICAgICAgICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgICAgICAgICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyI+CiAgICAgICAgIDx0aWZmOlJlc29sdXRpb25Vbml0PjI8L3RpZmY6UmVzb2x1dGlvblVuaXQ+CiAgICAgICAgIDx0aWZmOkNvbXByZXNzaW9uPjU8L3RpZmY6Q29tcHJlc3Npb24+CiAgICAgICAgIDx0aWZmOlhSZXNvbHV0aW9uPjMwMDwvdGlmZjpYUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6T3JpZW50YXRpb24+MTwvdGlmZjpPcmllbnRhdGlvbj4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+MzAwPC90aWZmOllSZXNvbHV0aW9uPgogICAgICAgICA8ZXhpZjpQaXhlbFhEaW1lbnNpb24+NjAwPC9leGlmOlBpeGVsWERpbWVuc2lvbj4KICAgICAgICAgPGV4aWY6Q29sb3JTcGFjZT4xPC9leGlmOkNvbG9yU3BhY2U+CiAgICAgICAgIDxleGlmOlBpeGVsWURpbWVuc2lvbj4yMDA8L2V4aWY6UGl4ZWxZRGltZW5zaW9uPgogICAg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" + webUI["html/img/logout.png"] = "iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAAAXNSR0IArs4c6QAAAAlwSFlzAAAsSwAALEsBpT2WqQAABCRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IlhNUCBDb3JlIDUuNC4wIj4KICAgPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIgogICAgICAgICAgICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgICAgICAgICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyI+CiAgICAgICAgIDx0aWZmOlJlc29sdXRpb25Vbml0PjI8L3RpZmY6UmVzb2x1dGlvblVuaXQ+CiAgICAgICAgIDx0aWZmOkNvbXByZXNzaW9uPjU8L3RpZmY6Q29tcHJlc3Npb24+CiAgICAgICAgIDx0aWZmOlhSZXNvbHV0aW9uPjI4ODwvdGlmZjpYUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6T3JpZW50YXRpb24+MTwvdGlmZjpPcmllbnRhdGlvbj4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+Mjg4PC90aWZmOllSZXNvbHV0aW9uPgogICAgICAgICA8ZXhpZjpQaXhlbFhEaW1lbnNpb24+NTA8L2V4aWY6UGl4ZWxYRGltZW5zaW9uPgogICAgICAgICA8ZXhpZjpDb2xvclNwYWNlPjE8L2V4aWY6Q29sb3JTcGFjZT4KICAgICAgICAgPGV4aWY6UGl4ZWxZRGltZW5zaW9uPjUwPC9leGlmOlBpeGVsWURpbWVuc2lvbj4KICAgICAgICAgPGRjOnN1YmplY3Q+CiAgICAgICAgICAgIDxyZGY6QmFnLz4KICAgICAgICAgPC9kYzpzdWJqZWN0PgogICAgICAgICA8eG1wOk1vZGlmeURhdGU+MjAxOC0xMC0xM1QxMToxMDoxODwveG1wOk1vZGlmeURhdGU+CiAgICAgICAgIDx4bXA6Q3JlYXRvclRvb2w+UGl4ZWxtYXRvciAzLjM8L3htcDpDcmVhdG9yVG9vbD4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgIDwvcmRmOlJERj4KPC94OnhtcG1ldGE+Cg27QeEAAANQSURBVGgF7Zk9aBRBGIZzSRSN8YdoCpEkghCCqK1o4g9IsBCCNmIniCAiWAhqI8G02qiIoqCCWggSEcFKEFPYpVAU8QdFUyiKRpRokBjP55OdZDLZvZnZ7N3Ngh887M7sN/O9797t7c5eTc3/8D8DxWKxGS5Ai//oAEYgvB4OwleQaAtAlp8ERG+Bp6Jei/wYQfRy6NfE67vhG0FtA/TBqK7c2A/bCGJ3wpAhOq4ZphGUroEHcYoT+sIygsgmOAu/EwQndYdhBHV1sB8+Jym19Lf6/faVIRuBG+GRRajtcPWMoKwFbtgUOh6vvBGEzYFj8MNRpEtaZY2gaAe8cVHmmXOc/K3QXIZv/+SUFFgJ96AS8ZwiZ6Ab6iZVzGCPiRbCKRiDasQHip6EdD/PDKyFvfAJQgg5kVfB/VoieT0MQojxE1G9UG/7otWS0A7pPkrb7DM/Ppcp+mAAM/bFGEmL4RL8gVDjI8JWOZ0bEjvhSahO0CXXsLMZWZYegREIMV4jaoHTJyNJJLfC7RCdoOm6sxGVyKAeeBegoU6l0XmLiXlwAqp1o4w7j3d1AwW9YdtnNrnQzkOXLddyfAPHv8Ey6ABpd8N88In2QqHwymfARC5mCrAH0i6qGDr9jk3fbNgFz8A1DkwIS7tDpSVwGdLcexIfPZhPHpf2wS+wRX9a/dPGUakLzBdwNgGJRlQBJtgMw5aJ3qr8TLYUmwVHwXXxZTUiwphvHYxDUnzPxIA5CdXa4E5SVa3fyUhkRtYqpSKbNYxpJiq+ncpDJar7GGlknvcl5mqM05BZH4Xl3iOLpLh7j7OR6MScSzAykplg20QIWA0PDSG+RuTdQVy8sNXP9DgK5N4jK9AvkRpfI4sYF/c2836mQl0nQ4zce66AfZFkTMqYl2DGaSMt/CYOHpsuaPco5bLUzUuMGkLHaQ+ovjwZUZrVdpAHRnnw/Bd5MrJCiY62t4x2+E2uBfkfRg95TdSkK8/LJ7JWF83+Nb5Ww0Zf+E3OviwXVMgT8dLwVRsKEd0A+uP8biMlH01MHAYVF/Oh2lCJenkDqpbUN9nPyzU91QnCRbyEPEXn1sQhxMv7tG1T7cW3rK/r44eVtxfxm6gwBh38zJqPJuUtXu3Z/wLwuBaBLgMkKwAAAABJRU5ErkJggg==" + webUI["html/img/m3u.png"] = "iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAAAXNSR0IArs4c6QAAAAlwSFlzAAAsSwAALEsBpT2WqQAABCRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IlhNUCBDb3JlIDUuNC4wIj4KICAgPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIgogICAgICAgICAgICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgICAgICAgICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyI+CiAgICAgICAgIDx0aWZmOlJlc29sdXRpb25Vbml0PjI8L3RpZmY6UmVzb2x1dGlvblVuaXQ+CiAgICAgICAgIDx0aWZmOkNvbXByZXNzaW9uPjU8L3RpZmY6Q29tcHJlc3Npb24+CiAgICAgICAgIDx0aWZmOlhSZXNvbHV0aW9uPjI4ODwvdGlmZjpYUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6T3JpZW50YXRpb24+MTwvdGlmZjpPcmllbnRhdGlvbj4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+Mjg4PC90aWZmOllSZXNvbHV0aW9uPgogICAgICAgICA8ZXhpZjpQaXhlbFhEaW1lbnNpb24+NTA8L2V4aWY6UGl4ZWxYRGltZW5zaW9uPgogICAgICAgICA8ZXhpZjpDb2xvclNwYWNlPjE8L2V4aWY6Q29sb3JTcGFjZT4KICAgICAgICAgPGV4aWY6UGl4ZWxZRGltZW5zaW9uPjUwPC9leGlmOlBpeGVsWURpbWVuc2lvbj4KICAgICAgICAgPGRjOnN1YmplY3Q+CiAgICAgICAgICAgIDxyZGY6QmFnLz4KICAgICAgICAgPC9kYzpzdWJqZWN0PgogICAgICAgICA8eG1wOk1vZGlmeURhdGU+MjAxOC0wNy0yOFQxOTowNzozMTwveG1wOk1vZGlmeURhdGU+CiAgICAgICAgIDx4bXA6Q3JlYXRvclRvb2w+UGl4ZWxtYXRvciAzLjM8L3htcDpDcmVhdG9yVG9vbD4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgIDwvcmRmOlJERj4KPC94OnhtcG1ldGE+CumjVbcAAAGWSURBVGgF7VoxTgJRFGTFaGKBFnbEcABjb0fiBego7D2ABYmn8ARKRWFNQ6gx4QRQGWJJoY2VhXGdl7Dkh7Dsx3ns3yXvJ5P97L6d92bmhwYqlcWK43gK5L2enP51NP8F7pN721wPnOITZx9qG6HxI8QIZO+9XCHeL+VQKKm8QMyxb6+iCpH528AQYs58xIQWknV8mhDxCjEXWWJCC8maT55fAmOIudpUXAYhMn8dGEHMTZqYsgiR+U+BAcTcrhNTJiEy/xHQg5jOqpjD1RsBP3+id8u3P8TUoij6SuoLIwRDfWOofjLYtteyHa1UfcvvcUT1jqpGauVuHnyAdragjv/TAkley3uhj9Y5ZhDQa2+Olgmhz4IygSWibChNZ4nQFioTWCLKhtJ0lghtoTKBJaJsKE1nidAWKhNYIsqG0nSWCG2hMoElomwoTWeJ0BYqE1giyobSdJYIbaEygSWibChNZ4nQFioTWCLKhtJ0biJzmi1/guXMrpDn/OegO3bXMuAH0TtgAvwARV3y57Q34AGoJkL+AErKZ9cqbH7AAAAAAElFTkSuQmCC" webUI["html/img/mapping.png"] = "iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAAAXNSR0IArs4c6QAAAAlwSFlzAAAsSwAALEsBpT2WqQAABCRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IlhNUCBDb3JlIDUuNC4wIj4KICAgPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIgogICAgICAgICAgICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgICAgICAgICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyI+CiAgICAgICAgIDx0aWZmOlJlc29sdXRpb25Vbml0PjI8L3RpZmY6UmVzb2x1dGlvblVuaXQ+CiAgICAgICAgIDx0aWZmOkNvbXByZXNzaW9uPjU8L3RpZmY6Q29tcHJlc3Npb24+CiAgICAgICAgIDx0aWZmOlhSZXNvbHV0aW9uPjI4ODwvdGlmZjpYUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6T3JpZW50YXRpb24+MTwvdGlmZjpPcmllbnRhdGlvbj4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+Mjg4PC90aWZmOllSZXNvbHV0aW9uPgogICAgICAgICA8ZXhpZjpQaXhlbFhEaW1lbnNpb24+NTA8L2V4aWY6UGl4ZWxYRGltZW5zaW9uPgogICAgICAgICA8ZXhpZjpDb2xvclNwYWNlPjE8L2V4aWY6Q29sb3JTcGFjZT4KICAgICAgICAgPGV4aWY6UGl4ZWxZRGltZW5zaW9uPjUwPC9leGlmOlBpeGVsWURpbWVuc2lvbj4KICAgICAgICAgPGRjOnN1YmplY3Q+CiAgICAgICAgICAgIDxyZGY6QmFnLz4KICAgICAgICAgPC9kYzpzdWJqZWN0PgogICAgICAgICA8eG1wOk1vZGlmeURhdGU+MjAxOC0wOC0wMlQxMjowODo5NzwveG1wOk1vZGlmeURhdGU+CiAgICAgICAgIDx4bXA6Q3JlYXRvclRvb2w+UGl4ZWxtYXRvciAzLjM8L3htcDpDcmVhdG9yVG9vbD4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgIDwvcmRmOlJERj4KPC94OnhtcG1ldGE+CpRxQsEAAAJLSURBVGgF7VoxTgMxEMwBHWlAaeABVCEtBcoD+EBewCdCyQsQtLyAPCBvCBSRIBUPCF1ogqBJjlkrezGr6HTrO98lhy1Z9trr2VmvnbMNjUadUhzHLeQB8hw5LS3QOUbubvIf7X3kKXIZibgS51bCZdWgMT6D8nECgArkngagQN0B8dhbkblalVmLIyheCGUthhjuLBq77MihA0xTjHHBEBBOorHLjjghbNOg4Mg2RYO4hIiEiHiaAV5aSwf8hRgjZdHtTTTc2ZFXpZkY+hMx5k3IZYlr7jgudJHp2JElLaF0K1mirYn8nAWgQB3ibM59ERNCA52d6Nghv9isQiUtn0kURe92I9eBcYA6YZxym8dyDuwRuMw82gjQYQbsPdLDdNCROO0US3uEfp3usTZpjf5J2CNtNFwjl7FHvmBnCB5PCQkQoJudJtGvE23sJEFuI39rQArS7dskXK6nlwkAKiB1VxAxLcyUePAH8cQmlbEul4+UM8LkVjPc2ZHcaFUDBEeqjoC0HyIiZ6RqOUSk6ghI+xyRD9mRQTYfIktPylaX16rhzo48KE29QH8kxjxC/hFtZYiGe70OjWVMW7Dx32bA3iO7//iAC8DOPweZFQhH6O+CmkRvW2f28oV8owEoUHdMPPg70rFJZajTkqT7uZ3ObaHEuuHOjnCpsb8vlKUsur2JhruLA94Y5QEOjuSZPR9jQ0R8zGoezNpFhN5RtUm+/bpgaG1u0jd2OSLDTRopbZ/okxcrLUYKvKprbRfHhXr8m5PK/y1V/gWRKLfiNSmxEAAAAABJRU5ErkJggg==" + webUI["html/img/settings.png"] = "iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAAAXNSR0IArs4c6QAAAAlwSFlzAAAsSwAALEsBpT2WqQAABCRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IlhNUCBDb3JlIDUuNC4wIj4KICAgPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIgogICAgICAgICAgICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgICAgICAgICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyI+CiAgICAgICAgIDx0aWZmOlJlc29sdXRpb25Vbml0PjI8L3RpZmY6UmVzb2x1dGlvblVuaXQ+CiAgICAgICAgIDx0aWZmOkNvbXByZXNzaW9uPjU8L3RpZmY6Q29tcHJlc3Npb24+CiAgICAgICAgIDx0aWZmOlhSZXNvbHV0aW9uPjI4ODwvdGlmZjpYUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6T3JpZW50YXRpb24+MTwvdGlmZjpPcmllbnRhdGlvbj4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+Mjg4PC90aWZmOllSZXNvbHV0aW9uPgogICAgICAgICA8ZXhpZjpQaXhlbFhEaW1lbnNpb24+NTA8L2V4aWY6UGl4ZWxYRGltZW5zaW9uPgogICAgICAgICA8ZXhpZjpDb2xvclNwYWNlPjE8L2V4aWY6Q29sb3JTcGFjZT4KICAgICAgICAgPGV4aWY6UGl4ZWxZRGltZW5zaW9uPjUwPC9leGlmOlBpeGVsWURpbWVuc2lvbj4KICAgICAgICAgPGRjOnN1YmplY3Q+CiAgICAgICAgICAgIDxyZGY6QmFnLz4KICAgICAgICAgPC9kYzpzdWJqZWN0PgogICAgICAgICA8eG1wOk1vZGlmeURhdGU+MjAxOC0wOC0xMFQxODowODo4OTwveG1wOk1vZGlmeURhdGU+CiAgICAgICAgIDx4bXA6Q3JlYXRvclRvb2w+UGl4ZWxtYXRvciAzLjM8L3htcDpDcmVhdG9yVG9vbD4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgIDwvcmRmOlJERj4KPC94OnhtcG1ldGE+Ckxt87EAAAS7SURBVGgFzZpdiFVVGIbn5N+IMgVhaRLqWI7mQIJoIVRgOhQZNDAhWcbcVuPV3BRE6I14440iQQSaN0p6kz8zI0k5inUhZSSaYOVYODMo5eiMOOPf+LzH2cPMPmvttdbe53jOBy9rr2+938/ae51vr733qaoqgQwPD68B/wDJfXAP3AE94JMShCy+SxJ9CvSDJFlU7MiPFdsh/hrBdIffBsd48HApJjLPI4tnPThBlFJMZI5HBuWZCIt9AmgEzeAJR6JzHeMadnKI8wbYCz4Fkz18JlNwMgf8BCL5j4O3bVaMdUfEhPZqgv1U7HbEbDvoT7HZOPUYNwAlHheV09a4A3RTgMqtj9QY7JdgeM5i3I4+fDIYrQeq/UnyNYOTlBDtS+BwEjk2doz+KyO2OY5bwVCME+/qylTHT4C1D3k+uB33Yul3ov/eMuajlu1RH+II5wtT4hNNSnQ6U/kzbRkfq351bCfF8apAm7kmvq38njWRK0S305SHcSK5XO4U5O9MBmXWbSe3E6YccialdKzH2TTnQEF10XgZ5DdivsxEhkyxjVdERAwu03xmMiqD7hYx19km4cyHq6KyeHKkWpSz+ciVrHVpRYZk/wLHp0H2bULkNKzt4Eq86TKxLq3IECf6nXwV9QPbAfjHQSfoD7SN6L63gYhvbrkiTwKf/dPYpbdPVxKMnigdg0VAG8FQye8AzBl6aIk2A+wPiNoHd63LNZx3wbUAvz/CfTzJb/43AmkGpLfAi0DPE/NALQgtve+xFPdi5xRiNkHa5ySOJ/TR7RrBJdqL4AAxL+p+8ToYAFklNCnF3pM1KPba2L6v8vons5oPsko9ZyZoa0PsOoKezxoY+y5N5DYHWSvDTXzUMJH7IUkRW0tbyyV0CcfDDKmqDMe1KfqnQyehGNgo9q8p4hWYFGsiBY4fsSK/BRkkaPgj5PhMy720BnVFesfnlKo3Das0bw8XYJf196GEuzWRLSDoRypLg2w06FyqTS6Cx7iK1eeqGqrnugmuBgvB8+A5UAuqQYiU+oZ4h2T+BV3gAlDp/pai0U1rFpVGMAv8AHzFd4vShMOQLcoB+DNB/sSbM3ZoMV4BQsW0adSJSbNp1Hu1mY40/YZxpPdJaUSfFzrBMXAjjQNsdvll6cHCWVvKJIphdhcny11pqmolCk5aIDif0BKdZBucgPlO8kh/r8O4HtwClSCbk86HtQqQuUrvKVCf5OARjt0lll4H/WKKmbS0tmJQKZNQ7nq9+w0n2LhTN04E8jKMPpZ1hcli8tGTZYEYJwJrZQGzchTGz3a2ifwdkHc73LYAfpx6DcWXQK1LeiDsdpFGx7UOwUGQJKpmGyIjjvWh50iSQWzsZ/ofgvx+jnYp+B/YpJcB7QXDBKPJ4JDF6+/oCwoBuhoL36R+Jp4RJH16u2IgaxJpHhMehsBY3wTjV2YbOuuumLHrwCW6msbSj74O/DHGgV4Ohl8Jw1nSMmsB+tL6Wnw83odzBrhEr2GtgvFE8A74ADxtJZZygMC25cjQqBwqdg62qpUlziUP45Cq6OGuqqoUE/FJ8i+v7MpJYvEsHl1A5gNty2vLmaN3bBLdAvqB3svqXxLRvyEuc9zs7SiA+ACpw05pJx8SoAAAAABJRU5ErkJggg==" + webUI["html/img/stream-limit.jpg"] = "/9j/4AAQSkZJRgABAQAAAQABAAD/4gJoSUNDX1BST0ZJTEUAAQEAAAJYbGNtcwQwAABtbnRyUkdCIFhZWiAH4wAFABcAFgAuAAphY3NwQVBQTAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA9tYAAQAAAADTLWxjbXMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAtkZXNjAAABCAAAAEBjcHJ0AAABSAAAAE53dHB0AAABmAAAABRjaGFkAAABrAAAACxyWFlaAAAB2AAAABRiWFlaAAAB7AAAABRnWFlaAAACAAAAABRyVFJDAAACFAAAACBnVFJDAAACFAAAACBiVFJDAAACFAAAACBjaHJtAAACNAAAACRtbHVjAAAAAAAAAAEAAAAMZW5VUwAAACQAAAAcAHMAUgBHAEIAIABJAEUAQwA2ADEAOQA2ADYALQAyAC4AMQAAbWx1YwAAAAAAAAABAAAADGVuVVMAAAAyAAAAHABOAG8AIABjAG8AcAB5AHIAaQBnAGgAdAAsACAAdQBzAGUAIABmAHIAZQBlAGwAeQAAAABYWVogAAAAAAAA9tYAAQAAAADTLXNmMzIAAAAAAAEMSgAABeP///MqAAAHmwAA/Yf///ui///9owAAA9gAAMCUWFlaIAAAAAAAAG+UAAA47gAAA5BYWVogAAAAAAAAJJ0AAA+DAAC2vlhZWiAAAAAAAABipQAAt5AAABjecGFyYQAAAAAAAwAAAAJmZgAA8qcAAA1ZAAAT0AAACltjaHJtAAAAAAADAAAAAKPXAABUewAATM0AAJmaAAAmZgAAD1z/2wBDAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQH/2wBDAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQH/wAARCAQ4B4ADASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD/AD/6KKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigD9PvBf/AARa/wCCrXxF8HeE/iD4G/YM/aL8UeCfHfhrQvGXg/xNpHgia50nxF4W8T6Xa634f13TLkTgXGn6vpN9aahZTgAS21xFIAN1dL/w4o/4LB/9I7/2m/8AwgZ//kiv9b3/AIJp/wDKOX9gH/syf9lX/wBUV4Dr7YoA/wAWr/hxR/wWD/6R3/tN/wDhAz//ACRR/wAOKP8AgsH/ANI7/wBpv/wgZ/8A5Ir/AGlaKAP8Wr/hxR/wWD/6R3/tN/8AhAz/APyRR/w4o/4LB/8ASO/9pv8A8IGf/wCSK/2laKAP8Wr/AIcUf8Fg/wDpHf8AtN/+EDP/APJFH/Dij/gsH/0jv/ab/wDCBn/+SK/2laKAP8Wr/hxR/wAFg/8ApHf+03/4QM//AMkUf8OKP+Cwf/SO/wDab/8ACBn/APkiv9pWigD/ABav+HFH/BYP/pHf+03/AOEDP/8AJFH/AA4o/wCCwf8A0jv/AGm//CBn/wDkiv8AaVooA/xav+HFH/BYP/pHf+03/wCEDP8A/JFH/Dij/gsH/wBI7/2m/wDwgZ//AJIr/aVooA/xav8AhxR/wWD/AOkd/wC03/4QM/8A8kUf8OKP+Cwf/SO/9pv/AMIGf/5Ir/aVooA/xav+HFH/AAWD/wCkd/7Tf/hAz/8AyRR/w4o/4LB/9I7/ANpv/wAIGf8A+SK/2laKAP8AFq/4cUf8Fg/+kd/7Tf8A4QM//wAkUf8ADij/AILB/wDSO/8Aab/8IGf/AOSK/wBpWigD/Fq/4cUf8Fg/+kd/7Tf/AIQM/wD8kUf8OKP+Cwf/AEjv/ab/APCBn/8Akiv9pWigD/Fq/wCHFH/BYP8A6R3/ALTf/hAz/wDyRR/w4o/4LB/9I7/2m/8AwgZ//kiv9pWigD/E88f/APBGT/gqj8K/AnjT4nfEX9hL9ofwf8P/AIdeFPEPjnxz4t1zwTNaaL4X8IeE9Ju9d8SeIdXujORbaZo2j2F5qN9OQRDa20shB24r8yq/28f+Ctf/ACit/wCClX/ZhH7Xv/rP/wAQK/xDqACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooA+j/ANmj9kL9pr9snxbrvgL9lr4K+Ovjn408M+HH8X6/4Y+H2ljWdZ0vwvFqen6NLr1zYrNHMNMh1XVtL0+a7RWihu9RsoZSj3MIf7U/4cUf8Fg/+kd/7Tf/AIQM/wD8kV2v/BAD9sj/AIYi/wCCrf7K/wATNW1X+yvh98QPFw+AHxWklm+z6f8A8IJ8aWg8HjU9Xl3Ls0rwd4wufCPxAuz82B4RQlJACjf7MFAH+LV/w4o/4LB/9I7/ANpv/wAIGf8A+SKP+HFH/BYP/pHf+03/AOEDP/8AJFf7StFAH+LV/wAOKP8AgsH/ANI7/wBpv/wgZ/8A5Io/4cUf8Fg/+kd/7Tf/AIQM/wD8kV/tK0UAf4tX/Dij/gsH/wBI7/2m/wDwgZ//AJIo/wCHFH/BYP8A6R3/ALTf/hAz/wDyRX+0rRQB/gx/HT4CfGb9mT4n+Ivgt+0B8NfFnwj+K3hJNHl8SeA/G2lzaP4i0iLxBomneI9Emu7KbJWLU9C1bTtTs5UZ45rW7idWySB5HX9yX/B69+yL/wAIr8eP2V/22/D2meXpfxb8Da18BfiPd2sOy3i8afDG9k8U+BdR1OXbiXVPFHg/xZrukWzB2P8AZnw0jjZIxEjS/wANtABRRRQAUUUUAFFFFABRRRQAUUUUAPRHldIokeSSR1SONFLu7uQqIiKCzOzEKqqCWJAAJNfq8n/BCv8A4LBSIki/8E7/ANp3a6q67vh/dI21gGG5HnV0bB5V1VlPDAEEVv8A/BBj9kX/AIbU/wCCrf7Ivwo1PTP7T8DeGPiFb/Gz4nRTQ+fpzeAvgpE3xDv9L1hQrEaZ4w1nRdD8BSkAFp/FdvH5kO/zo/8AZ4oA/wAWr/hxR/wWD/6R3/tN/wDhAz//ACRR/wAOKP8AgsH/ANI7/wBpv/wgZ/8A5Ir/AGlaKAP8Wr/hxR/wWD/6R3/tN/8AhAz/APyRR/w4o/4LB/8ASO/9pv8A8IGf/wCSK/2laKAP8Wr/AIcUf8Fg/wDpHf8AtN/+EDP/APJFH/Dij/gsH/0jv/ab/wDCBn/+SK/2laKAP8Kz9p39iX9rL9i7UfCOkftV/AT4ifAfVPHtlq+o+DtO+IejjRb3xDp+gz2Ntq97p1s00k0lrY3GpWUEs7IkbSz+XGztHKI/lqv6F/8Ag5+/bI/4a5/4K2/HDTNF1X+0fh7+y5aaZ+y74KEU261GofDq61K8+KVz5UbG3N0fi9r3jnSTexl5bzSdE0USybLeCGD+eigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigD/cg/4Jp/8o5f2Af+zJ/2Vf8A1RXgOvtivif/AIJp/wDKOX9gH/syf9lX/wBUV4Dr7YoAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigD8+P8AgrX/AMorf+ClX/ZhH7Xv/rP/AMQK/wAQ6v8Abx/4K1/8orf+ClX/AGYR+17/AOs//ECv8Q6gAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAHI7xOkkbtHJGyvHIjFHR0IZXRlIZWVgGVlIIIBBBFf7Z//BIH9sRP28f+Cbv7J37St5qS6n4x8VfC/TPDXxTmMqvc/wDC3PhxNcfD/wCJdxdQ5Mtp/bPi7w3qfiLT7e4zK2jazplyHnhuIrib/Eur/QW/4Mm/2yPteh/tZfsE+JNV3T6PeaT+1D8KNPml3yNp2pDRvht8YrW381t0NrYahB8JtRtLK33Rtda5r980cUjzyzgH98VFFFABRRRQAUUUUAfhR/wcifsif8Ngf8Eif2ndD0vTP7T8dfAvSbH9p74ehYvPuINW+DCXur+MUs4FUzXF/qvwjvfiRoFhb25E819q9skazn/R5v8AHer/AH6NW0rTdd0rU9D1mxtdU0fWdPvNK1bTL6FLmy1HTdRtpLS+sby3kDRz2t3azS29xDIrJLFI6OCrEV/hv/8ABQv9lrUv2J/23/2ov2V9Riuo4Pgv8Y/GHhbwzPe7/tWqeAJdQbWfhrr83mfPu8R/D7VPDOvjcWO3Uh88n32APjeiiigAooooAKKKKACiiigAooooA/0D/wDgyU/ZE+z6T+19+3Xr+mYl1G70D9lz4Y6lJFtdbSwTSfif8YfKaRd0lvd3Vz8HreC4g2xifS9VtneSRHSD++mvyl/4Ih/sif8ADEf/AAS3/ZB+B2o6X/ZXjV/hhYfE/wCKEEsPlahH8S/jDNN8SfFmmaq21WnvfCl14ki8EpKw+Ww8M2MCExQxmv1aoAKKKKACiiigAr5A/b+/ao0X9iP9iv8AaZ/as1xrRk+Cfwi8V+LdCsr5gtrrfjk2R0j4c+GZWLKF/wCEq8f6n4a8NodwxJqqdeh+v6/ib/4PTP2yP+EA/Za/Z5/Yk8N6r5WvftCfEG7+LPxGtLWb98nww+Dogh8OaVqtvuA+weKviT4g03W9Nk2uWvvhfdrujEZEoB/nB+IfEGteLPEGueKvEup3eteIvE2san4g1/WL+Uz32ra1rN7PqOq6nezNzNd399cz3VzKeZJpXc8mseiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigD/cg/4Jp/8AKOX9gH/syf8AZV/9UV4Dr7Yr4n/4Jp/8o5f2Af8Asyf9lX/1RXgOvtigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAPz4/4K1/8orf+ClX/AGYR+17/AOs//ECv8Q6v9vH/AIK1/wDKK3/gpV/2YR+17/6z/wDECv8AEOoAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAr9V/+CJP7ZH/DCn/BT39k348anqv9leA2+Itp8Mvi1NNN5Onp8LPi3FJ8P/F+qaou5RPaeEbfXYPHcMLMB/aXhXT5R80Sg/lRRQB/v8UV+TP/AAQ5/bI/4bo/4JdfsnfG7VNV/tXx9p/w+tfhN8WpZZvO1Fvid8IJG8A+JNV1f5m8u/8AGUWi6d8QFjDECx8W2TgRh/LT9ZqACiiigAooooAK/wA07/g9I/ZE/wCFcftj/AD9sXQNM8jQP2lfhZdfD7xtd28O5H+KPwOnsbO31HUp1A8q41z4a+KvBmkaXDN808HgPUnhZ1tplh/0sa/nd/4Oi/2RP+Gq/wDgkT8cNZ0fS/7R8dfsuapoP7T/AITMUO64TS/ACahpXxSVp0Bnjsbf4ReJvHOuz26hoLi+0HS2nQG3iuLcA/yKaKKKACiiigAooooAKKKKACv02/4I3fsi/wDDcf8AwUy/ZC/Z3vtM/tXwfr3xX0nxh8TrWSLfaS/Cr4XQ3PxJ+IlleyMGhto9d8L+FtQ8NWk04MbaprWn2yxzz3EUEv5k1/eL/wAGTH7In9reP/2uf259f0zdZ+D9A0H9mf4Z6hND5sEmveK7jTviL8VprV3Gy21LQ9E0b4YWSTwlp207xnqVsWhgnkS5AP8AQzooooAKKKKACiiigAr/AB3f+DkD9sj/AIbN/wCCtf7SWvaRqv8Aanw9+BGpWv7MPw1aOf7RaJovwcudR0zxfd2E6MYLnT9d+LV/8RfEWm3dsPJuNM1axZJJ1VbiX/Ux/wCCnv7XVn+wl+wF+1T+1TLdW1trXws+E2vXHgJbsRtBe/FTxOYPBnwo02aKQMJbe/8AiN4h8MW16qxysti9zN5UixMp/wAQK+vr3U7281LUru5v9R1C6uL6/vryaS5u729u5XuLq7uriZnlnubieR5p5pXaSWV2d2ZmJIBVooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooA/sa/Z9/4PGv2mv2ffgJ8EPgJo37HXwJ8QaP8EPhD8NfhDpOv6n43+IFtqWt6b8NfBmi+DLHV9Qt7QfZbe+1K10WK9u4bb/R4riaSOH92q169/xG8ftWf9GRfs9/+F98R/8ACv4h6KAP7eP+I3j9qz/oyL9nv/wvviP/AIUf8RvH7Vn/AEZF+z3/AOF98R/8K/iHooA/t4/4jeP2rP8AoyL9nv8A8L74j/4Uf8RvH7Vn/RkX7Pf/AIX3xH/wr+IeigD+3j/iN4/as/6Mi/Z7/wDC++I/+FH/ABG8ftWf9GRfs9/+F98R/wDCv4h6KAP9GT/gmX/wdhftE/t2/t3fs3/skeLv2T/gt4E8N/G/xpf+F9W8XeHPGPjnUNb0O3tPCviHxCt1p9lqY+wXEzzaNFbslz8gimkYfOq1/cpX+NT/AMG73/KaX9gD/srmtf8AqtPHVf7K1ABRRRQAUUUUAFFFFAH8KH/BRT/g7X/aN/Yq/bf/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WOj6BoOn3Gq6xql5Jg+Xaafp1pcXdw+DshhdsHGKAP8AN2/4PR/2yP8AhY37XHwD/Yq8N6r53h/9m34dT/Er4g2dtNiP/hanxqFlcaTpmqW4Yh7rw38MdB8M6zpUzhWitviTqKICJmJ/itr6y/bt/ah179tX9sf9pP8Aaq8RG6juvjh8XfF/jbS7C9fzLjQfCN1qUln4D8LF98m6Lwl4IsvD/hm2Jkc/ZtJiBdj8x+TaACiiigAooooAK/2Hv+DZvSf7G/4Id/sIWe3Z53hv40atjGM/29+0r8Ztc3f8D/tHfnvuzzmv8eGv9kD/AINw7+HUv+CJ37A1xAqqkfw58c2DBOhm0r40fEvTLhj/ALb3FnKz/wC2WoA/biiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAr/JJ/4Ow/+U2X7Q//AGTv9nj/ANUr4Nr/AFtq/wAkn/g7D/5TZftD/wDZO/2eP/VK+DaAP5vaKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKK6vwJ4G8W/E3xn4X+HngLQdQ8UeNPGmu6b4a8L+HtLi86/1fWtXuo7OwsrdCVRTLPKoeaZ47e3iD3FzLFBFJIt06dSrUhSpQnUq1Zwp06dOMp1KlSpOMKdOEIKUpznOcIQhGMpSlKMYpuST58Xi8LgMJisfjsTh8FgcDhsRjcbjcXXpYXCYPB4OhWxWLxeKxOIqUaGHw2Fw2GxGIxGIr1aVGhQoVq1WpTp0pzj9Y/sAfsT+O/27/wBofw38HvC32vSfCtqY/EXxU8cx2/nWvgfwDZ3MMep6gDIpgm13VHkTR/C2myZ+361dwPcCLSrTVL2z/wBHr4T/AAs8CfBD4beC/hL8MtAtPDHgPwBoNl4c8NaJZj5LWwskOZriZv3t7qV/cvPqOr6ndNJe6rqt3eal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gAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAr+z7/ggp/wTT/4VH4Psf20vjV4f8r4n/ELRXX4K+HtVtsXPgT4d6zbFJvGk8E6brXxN8QbCXZpbIqz6X4Hn/17P4t1GysPyI/4Ip/8E13/AGxfjB/wuX4r6G837N3wa1q0m1S1voD9h+KPxAtlg1HSvAMXmL5V3oOmRyWmt+O8ear6bNpfh14h/wAJK95p/wDedHGkSJFEiRxxoscccahEjRAFRERQFVFUBVVQAoAAAAr+o/AXw29vUpcdZ3h/3FGclw3ha0NK1eDlTq5zOE1rTw8lOjlzaaniFXxkbxw+Hkf4Nfta/psf2Tg8d9FLwvzi2aZlh6E/GrPctxHv5dleIhRxeC8NsPiKFS8Mbm1KWFzPjSMKkZ4bKJZTw5VUKub5vRT6KKK/rU/55AooooAKKKr3d3a2Frc319c29lY2VvNd3l5dzR21raWttG01xc3NxMyQwW8EKPLNNK6RxRozuyqpIG0k22kkm220kkk2222kkkm220kk22km04xlOUYQjKc5yjCEIRlOc5zlGMIQhGMpSnKUoxjGMZSlKUYxjKUoxlYoqlpuo6frGn2Gr6TfWeqaVqlla6jpmp6fcw3un6jp99AlzZX1jeWzyW93Z3dtLHcW1zBJJDPDIksTsjqxu0k1JKUWnFpNNNNNNJppptNNNNNNpppptNNucJ0pzp1ITp1Kc506lOpCdOpTqU5zp1KdSnUjCpTqU6lOdOpTqQhOE4ThOEJwnCBRRRTJCiiigD8if+Cvv/BOiw/bq+A0ms+CNNtIv2i/hFZalrXwv1HENtN4u00p9q1z4X6pdvsRrXxCIRc+Gp7yRIdI8Vw2j/arDS9W8QPcf59Ooaff6Tf32larZXem6npl5c6fqWnX9vNZ31hf2Uz215ZXtpcJHPa3drcRyQXNvPGk0E0bxSIrqyj/AFjK/kJ/4L+/8E2P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/DSP/BUjUvgr4f1X7d4A/Y18AaL8IbSK3m87TpviZ4mSHx78VtVhBYmPULa61fw18PtYjCoEvPh1sCsVMsoB/LfRRRQAUUUUAFFFFABRRRQAUUUUAFf6lH/BsR/wW/h/bw+Ddn+xj+0n4qib9sH4C+E7ePwt4i1m7Vb/APaF+D2gQwWFp4kW4nYPqXxM8BWv2TS/H9u5k1LxFpA03x8kmp3U3jWXRP8ALXr0j4P/ABg+J3wA+J/gf4z/AAY8b6/8OPil8N/EFl4o8E+NvDF61jrWg61YMTFcW8oDxT288TzWWpabew3OmavplzeaVqtneabeXVrMAf72FFfzsf8ABCH/AIL2fCb/AIKr/DKw+GXxPvvDPwy/bk8CaKg8e/DJbqLTdK+K+nadbZuvil8HrW8nM9/pc8cL3fi7wbBJeav4DvTKZvtnhqfStbu/6J6ACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooA+HP8Agp3/AMo1v+Chf/Zjn7WX/qhPH9f4dVf7iv8AwU7/AOUa3/BQv/sxz9rL/wBUJ4/r/DqoAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKtWNje6ne2em6bZ3WoajqF1b2NhYWNvLd3t9e3cqQWtnaWsCST3N1czyRw29vCjyzSukcaM7AFpNtJJttpJJNtttJJJJtttpJJNttJJtpOZzhThKpUlGEIRlOc5yjCEIQjKc5znOUIQhCEJznOc4QhCE5znGMZSj7x+y5+zX8Sf2t/jj4G+BHwr0/7V4l8ZaksdzqVxHK2keFPDtpifxB4v8AEM0SsbbRPD+nCW8uiM3F5MLbStOjudV1CxtLj/SQ/ZX/AGZ/ht+yJ8DPA/wH+Flh9n8O+D9PAvtWniiTV/F3iW8CzeIfGHiGWIYuNZ1+/wB9zMNxgsLUWej6ctvpWm2FrB+fv/BHj/gnDZfsNfA4eLPH+l2r/tI/GDTtP1P4iXbrFcT+BtAOy90X4W6bdruVF0tjHqHjCa0bydV8UkwG41HTPD2gXK/sRX90+C/huuD8o/tnNaCjxJnVCEqkKkV7TKcuny1aOXxum6eJrfu8RmLVpKp7HBt8uFqxl/ykftNfpqz+kd4i/wDEM/D/ADWVTwU8M81xNHBYnB1pfVPEDjPDe3wGY8YVHCUYYrJMtti8o4MjNTpTwf8AafEkIqtnuAq0iiiiv24/y4CiiigAoorn/Fnirw54F8L+IvGvjDWbDw54U8JaJqniPxLr+qzrbabouhaLZTahqup31w3EVrY2VvNcTvgkRxtgE4Bmc4U4TqVJRhTpxlOc5yjCEIQjKc5znJxjGEIQlOUpSjGMYylKSjFtbYfD4jF4jD4TCUK2KxWKr0MLhcLhqVXEYnE4nE1qWHw2Gw9CjTq1q+IxGIxFChQoUaVWtWr16NGlTqVatOnP4g/4KSfty+F/2DP2bfEXxPumsNT+JPiH7R4T+DXg+7fcfEXjq8tZGhv721R0nfwz4Ttydf8AE0yvAkltb22ixXlvqmuaWJf84vxn4x8UfEPxb4m8eeNtbv8AxL4w8Y67qniXxP4g1SYz6hrOu61eTahqeo3cuAGnu7ueWZwipGm7ZEiRqqD7q/4KZft2eI/29f2ktd+Ihkv9P+FXhL7X4S+C3hO7Zo/7G8GW90XbW7+zVjFF4n8Z3Ua674gfMs1srab4f+13Vh4f0+QfnhX8BeLviBPjjiGVLBVZf6vZNOthsqgnJQxdTm5MVms4u15YuVNQwvNHmpYCnRSUZYmqj/rw/Z0/Q/w/0WvB2lj+J8BRXjH4lYfLs84/xMo06mI4fwSp/Wch4Aw1ePPy0eHqWLlis99jV9ljuLMZmM3KvRybATZRRRX5Mf6FBRRRQB3/AMK/if43+C3xH8FfFj4b65c+HPHXw/8AEWm+J/DOs2py1pqemTrNGk8J/dXlhdxiSy1PTrgPZ6nptzdafexTWlzNE/8ApM/sLftf+CP23/2cfBPxz8IfZrDUtQhOh/ELwlFP58/gf4iaTBbDxJ4bnLM0zWge4t9W0C6nCTaj4a1TR9RljgmupbeH/Mnr9af+CQP/AAUDuv2Gv2jrS28Y6ncL+z/8YZ9L8K/FmzZpJLXw5Os8kXhr4mW1um5hc+ELq8nXWRCkkt74T1DW4Y7a61KDSPs/7J4M+IL4N4gWAzGu48PZ7Uo4fHOcn7PAY26pYPNFd2hCDmsNjmkk8HUjWld4O6/zV/aX/Q/j9JXwglxdwblka/jJ4UYLMc34XjhqMXjeLuGeWWO4j4Ek4RVTE4nEQw0874Vpyc3T4jwVXL6KjHiNwn/oX0VXtLu1v7W2vrG5t72yvbeG7s7y0mjuLW7tbiNZre5triFnint54nSWGaJ3jljdXRmVgTYr+9E00mmmmk000000mmmm0000002mmmm003/yVSjKEpQnGUJwlKE4TjKM4TjKUZRlGUYyjKMoyjKMoxlGUZRlGMoyjEooooEFFFFAHmfxk+EPgD4+fC7xx8HPijoUHiPwF8QdBu/D3iLSpsLI1tchXt76wuCrvYaxpN9Fa6tomqQAXOl6vZWWo2rJcW0Tj/N4/bq/Y38f/sNftDeLPgl41WfUdKgc678OvGZtmtrLx58P9RuLhND8Q2y8xxXyeRPpPiHT43lXS/EWnanYxTXNrFbXlz/pp1+Z/wDwVJ/4J/eH/wBvn9nm/wDDOnw6fp3xt+Hyaj4m+Cniq68uBYtda3j/ALR8GavesA0XhjxxBaW2nag5fy9L1W30TxC0dyNGeyu/x7xh8Oo8bZH9dy6jH/WTJaVWrl7ioqeYYXWriMpqS05pVOWVbAOTtTxq9mnGnjJ2/wBIf2b/ANM2v9F/xTXDHGWY1l4J+JmPwOA4vp1Z1KmH4Pz5ungcm8QMJRXP7KlglWp5ZxZChT5sbwzU+uuFbF8N4b2n+cvRW54n8M+IPBfiPXvCHizR9Q8PeKPC2sal4e8RaDq1tJZ6po2t6PeTafqml6haTBZba8sb23mtrmFwGjljZT0rDr+CpRlCUoTjKE4SlCcJxlGcJwlKE4TjJRlGUJxlGUZRjKMoyjKKlFpf9bVCvQxVChisLWo4nDYmjRxOGxOHq06+HxGGxFGliMPiMPXo1KtGvQr0K9CvQrUatWlWo1qNWlUqUqtOpMoooqTUKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigD9ov8Ag3e/5TS/sAf9lc1r/wBVp46r/ZWr/Gp/4N3v+U0v7AH/AGVzWv8A1Wnjqv8AZWoAKKKKACiiigAooooA/wAXn/gvT/ymL/4KGf8AZxnin/0j0uvyNr9cv+C9P/KYv/goZ/2cZ4p/9I9Lr8jaACiiigAooooAKKKKACiiigAooooAK+6P+Cf/APwUY/ap/wCCaPxw0745/sueP5/DmpubOz8ceBdXFzqnw1+K3hm2naZ/CnxF8KJdWsGtaawluRp+pW09h4k8N3NzLqXhfW9F1Mi8HwvRQB/sB/8ABJz/AIOHP2Jf+CoVh4f+H/8AbcH7PX7WFxaQxap+z38R9Zs4m8U6qkKtdy/BfxpMthpXxMsGImlh0SODR/iBa21veXN94OTSrVdYuv31r/AQs7y7067tdQ0+6ubG/sbmC8sr2znltruzu7aVZra6tbmFkmt7m3mRJYJ4nSWKVFkjZXUEf1K/8E5P+DsX/goD+x6ugfD/APaReH9tz4I6aLWwEPxI1mbR/jr4d0uELEP7A+M0Nnqd54laBC9xJb/FDRfGuoX3lQafZ+JPD9qPNjAP9Vqivwu/Ym/4ONf+CUX7bsei6N4e/aJ0v4E/E/Vkt42+FH7S6Wnwk19dQuFVY9N0rxbql/dfC3xTe3FyXt7DT/DHjzVNZu2WPdpVu9xDE/7mQTwXUEN1azRXNtcxRz29xBIk0E8EyCSGaGaMtHLFLGyvHIjMjowZSVINAEtFFFABRRRQAUUUUAFFFFABRRRQAUVXu7y00+1ub+/urexsbOCW6vLy7nitrW0toEaWe4ubiZkhgghjVpJZpXWONFZ3YKCa/GH9sb/g4O/4JPfsUR6lp3j/APan8KfFDx7p6Sj/AIVb+zqYfjZ40ku4c+Zpd/eeFLuTwH4T1RMDNl488beFJPnTswoA/aav4qv+D24/8YS/sejv/wANT6qcfT4S+L8/lkfmK/Ln9un/AIPPP2oPiZ/bHhD9gv4K+GP2bPC03n2tp8V/iommfFb4x3EB3C31PSfC0kH/AAqrwVdlWCz6Zq+n/FiJWjWS31aMsVX+R/8AaH/ao/aR/a18cTfEf9pn44fE744+NJTOINb+JHi/WPEzaVb3Egkk07w9Y39zJpnhnR1ZV8jRPD1lpmkWyoiW1lEiKoAPAqKKKACiiigAooooAKKKKACtfw/r2s+Fde0TxR4c1K70bxD4b1fTde0HWLCVoL7StZ0e8h1DS9Ssp1+aG7sb63guraVfmjmiRxyKyKKAP9zb/gn5+1To37bv7FH7Mn7VuivaAfGv4ReFfFXiCzsSDa6L47itP7F+JHhqEqzAjwt8QdK8TeHGOeX0tiQp+UfYVfxLf8GWP7ZH/Ce/sv8A7RP7EfiTVfN179n/AMf2fxd+HFpdTZmf4ZfGBZrbxNpWlQbiP7P8K/Efw9e63qUhVCL/AOKVsN0ocCH+2mgAooooAKKKKACiiigDxD9pj48eEP2Xf2ePjf8AtHePpAng/wCB3ws8c/FLX4vPS3mv7LwV4d1DXv7IsncMG1PWprKLSNKgVJJbrUr21toIpZpo42/wufi58UPF/wAbvit8TPjP8QdRbV/Hnxa8f+MPiX401Rt+dQ8VeOfEOoeJvEF4A7yOq3Gq6ndSojOxRGVNxxmv9Mv/AIPGf2yP+FH/APBO7wR+y34f1X7J4y/bH+J9np2s2sM3l3LfB74MT6P478ZSo8befF9r8d3Hwo0eRDshv9J1DXLSV5IhNBL/AJeNABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFAHVeB/HPjT4ZeMPDXxC+HXivxF4F8d+DdZsPEXhLxj4S1i/8P+JvDWvaXOl1p2saHrelz2uoaZqNlcIktvd2lxFNE65VxzX+h5/wRs/4O2/hz8RNI8I/s7/8FR9TtPhv8T4PsmheH/2tLLTYbT4YeORtjtbJvjLo+kwqPhr4onl2Le+M9H09vhzfmWbUdctvh7aWUlxqH+czRQB/vw+H/EGg+LND0jxP4W1vSPEvhrxBptnrOgeIfD+pWWs6Hrekajbx3en6rpGradNc2Gpabf2ssVzZ31lcTWt1byRzQSvG6sdev8Xf/gnP/wAFvP8AgoV/wTGurHR/2f8A4vSeIfg5HqMmoap+zx8WLe58cfBzUGuZ/tGoNpOjS31jrngK91GbM99qnw48QeEr7UbkJJq0upRK0D/3d/sF/wDB3p/wT1/aN07RPDH7WFj4j/Ys+LFx5Fne3XiKDU/iF8D9Wv3CRLPpHxG8MaOda8OQ3UoluLiLx94P8P6PocLxW8ni7Vysl4QD+s2ivO/hb8XvhR8cfB2m/ET4L/EzwB8W/AOsLu0rxr8NPGHh/wAc+FNRwiOy2ev+GdQ1PS55EWSMyxx3TSRb1EiqTivRKACiiigAooooAKKKKACiiigAooooAKK+Hf2rP+Cln7BP7EWnXt9+1H+1Z8HPhPf2MZlbwdqXiq2134mXaKnmE6V8KvCa6/8AEjWQF27m0rwteJGZIhIyGWPd/J3+3D/wepfCTwxDqvhP/gn1+zlrvxQ15RPbWvxf/aKM3gvwBb3CbhFf6N8L/C2qy+OPFunTqUdD4g8VfC/UIHV1m0uZCpIB/WH/AMFO/wDlGt/wUL/7Mc/az/8AVCeP6/w6q/S79t7/AILAf8FFP+Chl3fwftNftMeOfEPga8uDNB8HfCNzH8Pfg1YxpJ5lnCfhz4PXStB12bTx+7s9a8XQ+I/EioWM+tTySSu/5o0AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFd98Lfif42+DHxB8K/FL4carbaF478EapHrfhbW7rQvD/iRNH1iCORLTVINJ8U6VrWiS39g0n2rTbq602ebTdQittSsHt9QtLW5h4GitKVWrQq0q9CpOjWo1IVaNWlJwqUqtKcalOpTnG0oVKc4RnCcWpRnGMotSimuTMMBgc1wGNyvNMHhcxyzMsHisvzHL8bQp4rBY/AY3D1sLjMFjMNVTpYnCYvC4ivhsTh6sZUq9CvWo1Yyp1akJ/qb/AMPrf+Cnv/R1Gs/+G2+C/wD87ej/AIfW/wDBT3/o6jWf/DbfBf8A+dvX5ZUV9J/rvxp/0V3E3/h9zT/5rPxP/iVr6Mv/AEjv4Hf+Kn4D/wDoeP1N/wCH1v8AwU9/6Oo1n/w23wX/APnb0f8AD63/AIKe/wDR1Gs/+G2+C/8A87evyyoo/wBd+NP+iu4m/wDD7mn/AM1h/wAStfRl/wCkd/A7/wAVPwH/APQ8fqb/AMPrf+Cnv/R1Gs/+G2+C/wD87ej/AIfW/wDBT3/o6jWf/DbfBf8A+dvX5ZUUf678af8ARXcTf+H3NP8A5rD/AIla+jL/ANI7+B3/AIqfgP8A+h4/U3/h9b/wU9/6Oo1n/wANt8F//nb15X8af+CoX7eX7Q3w5134S/F/9ofxB4s+Hnic2H/CQ+G4vC/w98NQ6xHpt/b6nZ219feEvCGharPZJf2ltcy2DX32O5kgiF1BMqKo+BqKyr8YcW4qjVw2J4o4ixGHr050a9CtnWZVaNalUi4VKVWnPFuFSnUi3GcJJxlFuMk02n35V9G/6POR5nl+dZL4EeDeUZxlONw2Y5XmuWeGPBOBzHLcwwdWNfB47AY3D5BDEYTGYWvCFfDYmhOnWoVoQq0qlOpCE4FFFFfOH7QFFFFABRRRQAUUUUAfov8ADf8A4K0/8FD/AISeA/Cnwz8A/tLeItG8E+B9Fs/DnhbR7rwh8M/EEmkaHpyeTp2lx6t4l8FaxrVxaafbBLOwivNRuRZWMNvY2xis7a3gj7b/AIfW/wDBT3/o6jWf/DbfBf8A+dvX5ZUV9LS4z4wo06dGjxVxHSo0acKVKlTzvM4U6dKnCNOnTpwji+WEKcIQhCMbRjCMYpJRSX4ljfo0fRyzLG4zMsx8AfBbH5hmGLxOPx+OxnhbwNiMXjcdjcRWxeMxmLxFXh51cRisVisTiMTia9RupWr161apKVSrUlP9Tf8Ah9b/AMFPf+jqNZ/8Nt8F/wD529H/AA+t/wCCnv8A0dRrP/htvgv/APO3r8sqKv8A1340/wCiu4m/8Puaf/NZy/8AErX0Zf8ApHfwO/8AFT8B/wD0PH6m/wDD63/gp7/0dRrP/htvgv8A/O3o/wCH1v8AwU9/6Oo1n/w23wX/APnb1+WVFH+u/Gn/AEV3E3/h9zT/AOaw/wCJWvoy/wDSO/gd/wCKn4D/APoeP1N/4fW/8FPf+jqNZ/8ADbfBf/529H/D63/gp7/0dRrP/htvgv8A/O3r8sqKP9d+NP8AoruJv/D7mn/zWH/ErX0Zf+kd/A7/AMVPwH/9Dx6p8afjX8S/2hviLrvxZ+L/AIgg8V/ELxOLH/hIPEkXh7wx4am1iXTrGDTbS6v7Hwlo2g6VPfLY2ttby37WP226SCI3U8zIrDyuiivnK9etiq1XE4mtVxGIr1J1q9etOVWtWq1JOdSrVqTbnUqVJNynOTcpSblJttt/tGVZVlmR5Zl+S5Ll2CyjJ8pweGy7K8qy3C0cFl2W5fg6UaGEwOAwWHjDD4TB4WhCFHDYahCFGhRhClSp06cIQgUUUVkd4UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFAHsPwA+Pvxd/Zc+MXgT4/fAbxjP8P/AIu/DPVZtc8D+MbXStB1yfQdUuNOvdJmu49K8UaVregXrPp2o3tt5Wp6VewATmRYhKkcifrz/wARMf8AwXE/6Pv8Sf8AhmP2a/8A5zNfhLRQB+7X/ETH/wAFxP8Ao+/xJ/4Zj9mv/wCczR/xEx/8FxP+j7/En/hmP2a//nM1+EtFAH7tf8RMf/BcT/o+/wASf+GY/Zr/APnM0f8AETH/AMFxP+j7/En/AIZj9mv/AOczX4S0UAfu1/xEx/8ABcT/AKPv8Sf+GY/Zr/8AnM0f8RMf/BcT/o+/xJ/4Zj9mv/5zNfhLRQB6t8cvjf8AFL9pP4uePvjt8bPFc/jn4sfFDxDc+KvHfi650zRNGn1/X7xIo7nUJdL8N6bo+hWLypDGDBpml2Vqu3KQKSSfKaKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAr7w/Zg/4Kgf8ABQr9jFNPs/2Zv2wPjn8LfD2luJLLwLYeNb/X/hjHIHMm9/hZ4v8A+Eg+HNw5Ytua58LzMyu6MSjurfB9FAH9fv7PX/B5x/wUg+G9nZ6T8efhN+zt+0lZW3lef4gl0HXfhD4/1DaAs32nU/A+pXHgGPzAAyfYvhhaeVKzk+ZGUhj/AGC+DX/B7r+yvrgtY/2gP2KPj58NJHCpdXHwk8d/D/40WsbnCmZY/FqfAy58jd87IommijyqC5dRv/zgKKAP9YnwL/wdz/8ABGXxb5P9v/Ej44/C/wA3bv8A+E6+Avi/UPs+cZ87/hWj/ETds/i+z+fnB27uM/Veh/8AByT/AMESPEMENxYft6+BbeOcBkXXPhv8dvDM6g9prbxJ8K9KubdvVZ4oyOuMV/jl0UAf7PWnf8F9/wDgjbqgBtv+ChP7P8QIz/xMdZ1zSDgDPI1bQrIg+xGSeAM1Wv8A/g4C/wCCNGm7vtH/AAUG+BEm3r9gvPFGq5/3f7L8N3m//gOc9q/xjqKAP9ifxL/wcsf8ERPCts9zf/t3eEr8LuCQeGvhT+0B4suZXAyESHw18J9UK7zhVkmMUAJy8qKGYfJHjz/g76/4I5+EI7l/D/ib9or4ptArtFF4D+Bl/p8l4VBKpbH4neIPhzErSYwhvJbVASPMeMZI/wAo+igD/RE+Mf8AwfAfCDTvtdv+z9+wV8SPF+/eljrHxj+MPhj4cfZ/+edxd+G/BXhT4p/bP9uzh8V2PXK33y4b8Yv2hv8Ag8E/4Ky/Fz7dY/CaT4C/sv6PN5kVnP8ADb4Yw+NvF0VrJkYv9f8AjNqPxD0S4vQjFBfaT4Q0DYAkkFvDcL5x/lYooA+uf2kP2+v22P2vrqef9pr9qj46fGq1mn+0J4e8cfEbxJqXgywlD+YDo3gRL6DwZoSCQCQQ6LoNhCJBvEe7mvkaiigAooooAKKKKACiiigAooooAKKKKACiiigD6r/Y/wD23f2p/wBgf4oal8Zv2Rfi7q/wZ+JOs+DtT8Aat4k0rRPCfiP+0vB2s6pomtajoV9o/jbw/wCJtAubWfVvDmh6ikk2lPc213pttNazwurFv0v/AOImP/guJ/0ff4k/8Mx+zX/85mvwlooA/dr/AIiY/wDguJ/0ff4k/wDDMfs1/wDzmaP+ImP/AILif9H3+JP/AAzH7Nf/AM5mvwlooA/dr/iJj/4Lif8AR9/iT/wzH7Nf/wA5mj/iJj/4Lif9H3+JP/DMfs1//OZr8JaKAP3a/wCImP8A4Lif9H3+JP8AwzH7Nf8A85mj/iJj/wCC4n/R9/iT/wAMx+zX/wDOZr8JaKAPsj9s3/goH+2F/wAFCPGHhHx7+2J8bNZ+NPinwF4an8IeEL/UvD3gnwrbaF4futUuNZu7O00fwD4Z8KaK095qNy815qVxp02qXccVna3F7JaafYQW3xvRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFAHtnwP8A2lP2h/2ZvEreMf2dfjn8W/gZ4pl8lbnXfhL8Q/Ffw/1G/it2Z47XU5/C+q6YdUscs6vYaiLqymjkkimgeOSRG/fz9mj/AIO0f+CvfwEWw03x54/+Fv7UvhuzWO3GnfHb4bafHrsdkoAZYfGvwqu/hr4lvdQ+88ep+KrvxTMJGBuI7qJVhH8y9FAH+gl8Gv8Ag+D0KX7JZftC/sA6tYbdn27xN8GvjfZ6v5mcCQ2ngbxv4F0TyNmCyLN8Q7jzNwRmj2mR/wBNfAP/AAeMf8EjPF0dsfE2n/tV/CyaVE+0r4z+DegatDayEDzB53w4+I3juSeJGzskS2EkiAMYI3JjX/K4ooA/2DPCP/Bzp/wRA8YW6yQftt6b4fudqmWw8XfBX9onw3cQFsYRrnUPhMmlTsM/MbLUbpV5LMAK9c03/g4M/wCCMeq7fsv/AAUE+CMW7GP7SHjTRuv97+1/Cdjt992Md8V/jL0UAf7QF7/wXw/4I4WCh5/+ChX7PMgKhsWXiDVdSbBGeU07Rrpw3qpXcDwRniuG1X/g4z/4IpaPHLLd/t9/DKZYVZnGleEfi9rshCjJEUOifDrUJp2P8KQRyO54VSeK/wAbiigD/Wv8b/8AB2R/wRS8J+cND+PnxL+JbRbgq+CP2fPi9Z+cV7Qv8RPDHgGM5PCtI8aHru2/NX5/fGL/AIPZf2IfDYuYPgZ+yd+0x8V7yAOsU/xA1P4b/BvQ72UZ2tb3uk698XdZS1f5f3t34btblfmzZfKN3+ajRQB/Zn+0B/weqft2+OYrvT/2d/2bf2efgDp90six6r4tuvF/xx8aafnPlSafqlxdfDjwb5qAjedT+H2qQyEfLDGCRX4P/tKf8Fu/+Crn7WcV/YfGX9uH43T+HdSEsV74N+HWuWfwW8FXlnJwNP1Pwp8HdP8AA2i65ZRptVY9etNUdyqzTyTXO6ZvysooAlnnmuZpbi5mluLieV5p555HlmmmlYvLLLLIWeSWR2Z3kdizsSzEkk1FRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF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FFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFAH//Z" webUI["html/img/users.png"] = "iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAAAXNSR0IArs4c6QAAAAlwSFlzAAAsSwAALEsBpT2WqQAABCRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IlhNUCBDb3JlIDUuNC4wIj4KICAgPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIgogICAgICAgICAgICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgICAgICAgICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyI+CiAgICAgICAgIDx0aWZmOlJlc29sdXRpb25Vbml0PjI8L3RpZmY6UmVzb2x1dGlvblVuaXQ+CiAgICAgICAgIDx0aWZmOkNvbXByZXNzaW9uPjU8L3RpZmY6Q29tcHJlc3Npb24+CiAgICAgICAgIDx0aWZmOlhSZXNvbHV0aW9uPjI4ODwvdGlmZjpYUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6T3JpZW50YXRpb24+MTwvdGlmZjpPcmllbnRhdGlvbj4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+Mjg4PC90aWZmOllSZXNvbHV0aW9uPgogICAgICAgICA8ZXhpZjpQaXhlbFhEaW1lbnNpb24+NTA8L2V4aWY6UGl4ZWxYRGltZW5zaW9uPgogICAgICAgICA8ZXhpZjpDb2xvclNwYWNlPjE8L2V4aWY6Q29sb3JTcGFjZT4KICAgICAgICAgPGV4aWY6UGl4ZWxZRGltZW5zaW9uPjUwPC9leGlmOlBpeGVsWURpbWVuc2lvbj4KICAgICAgICAgPGRjOnN1YmplY3Q+CiAgICAgICAgICAgIDxyZGY6QmFnLz4KICAgICAgICAgPC9kYzpzdWJqZWN0PgogICAgICAgICA8eG1wOk1vZGlmeURhdGU+MjAxOC0wOC0zMFQxNzowODozODwveG1wOk1vZGlmeURhdGU+CiAgICAgICAgIDx4bXA6Q3JlYXRvclRvb2w+UGl4ZWxtYXRvciAzLjM8L3htcDpDcmVhdG9yVG9vbD4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgIDwvcmRmOlJERj4KPC94OnhtcG1ldGE+CjU01MMAAANJSURBVGgF1ZnLaxNRFMYz2rpoFbW+SCsihaJQRMT6rPhAXAq6c+HChSguRFd1oRtd+A/oWhQ3oiiWFB91UbqRqlXXgoIIQhFbQTTQao2/GzLDZEjIPefO7SQHPjJz55zzfd/MZCa5N8h5ilKptJvWp8FekAed4Bv4Cj6Dh2A4CIJZPpszMHEV2MQ0SZdB0DROENMHjoEzQBoFCpZnbgYR58E/qfpE/kv2F2dmBvJ94G9ClHb3SiZGUBuASa3qGnVzjG3RmFmkKYrVHGB7e2zfdbOdBhc1TVyNnNSQNqg5wVURf/FdjRxpIEpzuIOio9JCtRHO2hrINkgJLfPFt6vaCII2WYrSpPVJi1RGuBrmTbxeSibIX5j3CUauAfOo9BXzNH4nMJ5TXREI1gHzqPQVRtc2zCyxJdAaGbclcMj7zi/jOdt6rZFhCH7akijznknqVEY4U78heSAhUuTekNSojFQIChIiYe57TtZrSY2LkecQzUjIBLljglz3VJ4qg+AXSDNGabbWXZ2wA6Qjabqg136hhHK6y60V8o2EGyl8/qHHpKZPGkYeQzyvIa9RM86XvFhjvOGQsxGIp2B50ZDJLuG2XZqnLO5rM3viGh9o0OZJon1bRLxxdHLcns1jJiYOAu2U0D2P0uStMXJdcVU+UdMlZ/NYgaA28ERg5ge5/R4l6VsjrANMWJiZJWeXnqm60vnxW90ul6u8ByaS4zX2i+S+qjGuGkrdSEWFzT1vlhlSC19Gui0UtnNriSfi6vX1ZWRjPcLEeGrzYqkb4SyvQGxvQnC93cF6BzIfx8gpYBsfSdycuei4AAR1ggugCCRh1lbugIF4vwXbhtisjfSDc+ARSOOf4lv6mNWv1VIj1ouQNF9K851gDzArtWbV1uYxS5o4zB+sp+AuKPC+cVv5RXwPuATMmUpreY1Wopgh+ybYKj4dFHWB+8DMwTZTjCHmsJUhEgfAF9DMcQtx9V8dHMyDqWZ2ENM2FL8yVV92kkY56GM5Lc6Z1vY0jbp5EJQnuqPLg4kdLWTCnIxVIJoDi4wweNYcbbGIfuLEjRxqMRNGbvTvsmyE22oZg70taKQn1BxekXw40GKfK0O9oZHsJ8ZCRbLPaI3xP7YzeQoHxWckAAAAAElFTkSuQmCC" + webUI["html/img/x_ transparent.png"] = "iVBORw0KGgoAAAANSUhEUgAAAQAAAAEACAYAAABccqhmAAAAAXNSR0IArs4c6QAAAAlwSFlzAAAWJQAAFiUBSVIk8AAAA6ppVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IlhNUCBDb3JlIDUuNC4wIj4KICAgPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIgogICAgICAgICAgICB4bWxuczp0aWZmPSJodHRwOi8vbnMuYWRvYmUuY29tL3RpZmYvMS4wLyIKICAgICAgICAgICAgeG1sbnM6ZXhpZj0iaHR0cDovL25zLmFkb2JlLmNvbS9leGlmLzEuMC8iPgogICAgICAgICA8eG1wOk1vZGlmeURhdGU+MjAxOC0xMS0xNVQxNzoxMTo3NjwveG1wOk1vZGlmeURhdGU+CiAgICAgICAgIDx4bXA6Q3JlYXRvclRvb2w+UGl4ZWxtYXRvciAzLjM8L3htcDpDcmVhdG9yVG9vbD4KICAgICAgICAgPHRpZmY6T3JpZW50YXRpb24+MTwvdGlmZjpPcmllbnRhdGlvbj4KICAgICAgICAgPHRpZmY6Q29tcHJlc3Npb24+NTwvdGlmZjpDb21wcmVzc2lvbj4KICAgICAgICAgPHRpZmY6UmVzb2x1dGlvblVuaXQ+MjwvdGlmZjpSZXNvbHV0aW9uVW5pdD4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+MTQ0PC90aWZmOllSZXNvbHV0aW9uPgogICAgICAgICA8dGlmZjpYUmVzb2x1dGlvbj4xNDQ8L3RpZmY6WFJlc29sdXRpb24+CiAgICAgICAgIDxleGlmOlBpeGVsWERpbWVuc2lvbj4yNTY8L2V4aWY6UGl4ZWxYRGltZW5zaW9uPgogICAgICAgICA8ZXhpZjpDb2xvclNwYWNlPjE8L2V4aWY6Q29sb3JTcGFjZT4KICAgICAgICAgPGV4aWY6UGl4ZWxZRGltZW5zaW9uPjI1NjwvZXhpZjpQaXhlbFlEaW1lbnNpb24+CiAgICAgIDwvcmRmOkRlc2NyaXB0aW9uPgogICA8L3JkZjpSREY+CjwveDp4bXBtZXRhPgoeXQb1AAAaJElEQVR4Ae2dCZhcVZXHz+1KSFiGkISkqyIoOgI68EkgOBNkEcQRlIFRZDGABAQEhInGbxw+RUZRNhWRLawDYR0GHAaHUVkGvwGURUcgwIiAOGxjV3UHAslHQrbuM/9TlQ6d7qruWt527/u/7+uuqvvucu7vvnveuffde54IDxIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARLwiIDzQtayHi0q23shaydCOnlISu7nnWThRdrFOkPWyCleyNqJkF1yjhTd8k6yiDvtuLgLiCR/lVnIZ14keWU7k2Xyuu4oU92r2RazQ+nWypXI4W86zCXbyZ28KBvJ97MtpEhX1gWsyleS08TJU17I2omQKpvLarmqkywyn7ZHPw9rLvTOvwbX6xEyxS3Nenv4oQCcWwmQc/D3dtaBdiyfyv5S1mM7zieLGSzWEsS6KIuiRSzTGTD9H404z1iy80MBWNVL7hn8nx8LhaxlqnKBvKbvyppYHctTM/0nd5xPljNwcrcUs2/6DyL0RwGYxDOcjR3vGBQ+4M8tMElmdQ3n6NGjYPofGE6F6tTESRmm/1xxTuuczWSQH08BhqJbqlNkuTyJoK2GBgf53S6mkrvB+7qZ6b9Gfod6hHv3dzKAGbX9pNvd51N7+WUBGNlJbgm07FH4G/AJdFuyqlwotXFzW8kzk2itXAFZwu38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" webUI["html/img/x_black.png"] = "iVBORw0KGgoAAAANSUhEUgAAAQAAAAEACAIAAADTED8xAAAAAXNSR0IArs4c6QAAAAlwSFlzAAAWJQAAFiUBSVIk8AAAA6ppVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IlhNUCBDb3JlIDUuNC4wIj4KICAgPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIgogICAgICAgICAgICB4bWxuczp0aWZmPSJodHRwOi8vbnMuYWRvYmUuY29tL3RpZmYvMS4wLyIKICAgICAgICAgICAgeG1sbnM6ZXhpZj0iaHR0cDovL25zLmFkb2JlLmNvbS9leGlmLzEuMC8iPgogICAgICAgICA8eG1wOk1vZGlmeURhdGU+MjAxOC0xMS0xNVQxNzoxMTozNzwveG1wOk1vZGlmeURhdGU+CiAgICAgICAgIDx4bXA6Q3JlYXRvclRvb2w+UGl4ZWxtYXRvciAzLjM8L3htcDpDcmVhdG9yVG9vbD4KICAgICAgICAgPHRpZmY6T3JpZW50YXRpb24+MTwvdGlmZjpPcmllbnRhdGlvbj4KICAgICAgICAgPHRpZmY6Q29tcHJlc3Npb24+NTwvdGlmZjpDb21wcmVzc2lvbj4KICAgICAgICAgPHRpZmY6UmVzb2x1dGlvblVuaXQ+MjwvdGlmZjpSZXNvbHV0aW9uVW5pdD4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+MTQ0PC90aWZmOllSZXNvbHV0aW9uPgogICAgICAgICA8dGlmZjpYUmVzb2x1dGlvbj4xNDQ8L3RpZmY6WFJlc29sdXRpb24+CiAgICAgICAgIDxleGlmOlBpeGVsWERpbWVuc2lvbj4yNTY8L2V4aWY6UGl4ZWxYRGltZW5zaW9uPgogICAgICAgICA8ZXhpZjpDb2xvclNwYWNlPjE8L2V4aWY6Q29sb3JTcGFjZT4KICAgICAgICAgPGV4aWY6UGl4ZWxZRGltZW5zaW9uPjI1NjwvZXhpZjpQaXhlbFlEaW1lbnNpb24+CiAgICAgIDwvcmRmOkRlc2NyaXB0aW9uPgogICA8L3JkZjpSREY+CjwveDp4bXBtZXRhPgoZIUJ+AAAXy0lEQVR4Ae2dCbhO1RrH/+Z5noUolDFjSBkuTsbUEXUoVG5JXZVLw71pvLqSBokGTzqkSAMhHZwyJFTITB2ZT6LIPA/3Xb6cew7f8U17WGvv/3o8j+/b315rve9vvevsd++93ncBLCRAAiRAAiRAAiRAAiRAAiRAAiRAAiRAAiRAAiRAAiRAAiRAAiRAAiRAAiRAAiRAAiRAAiRAAiRAAiRAAiRAAiRAAiRAAiRAAiRAAiRAAiRAAiRAAiRAAiRAAiRAAiRAAiRAAiRAAiRAAiRAAiRAAiRAAiRAAiRAAiRAAiRAAiRAAiRAAiRAAiRAAiRAAiRAAiRAAiRAAiRAAiRAAiRAAiRAAiRAAiRAAiRAAiRAAiRAAiRAAiRAAiRAAiRAAiRAAiRAAiRAAiRAAiRAAiRAAiRAAiRAAiRAAiSQjkCWdJ8d/9i1J668yvFeo+3wh2/x1cxoKzter3RZ9H7A8V6j7fD1F3DkcLSVY6qXPabaMVauXR/39I+xDeeqHzqAljWRut25HmPpadjbaN0xlgacq7t9M0YPc667jD1lzfjV2W9DHsP6Vc52GUNv+QvipXdiqO9g1VvvNMb6T51Ev+44sN9BOhm6cnUCHDuG+xNw7GgGiXT+0qItbr9LZwGVbKXK4PkRuguZJt+wwVi2JO2b8x+yOd9lhh73/I69f6CNIRdrEb1Jc3w6AYcOZtBCqy+jP0T1a7SSKFNh5iXh8X6Z/urID25PAFFy1TI1YFWqOaJvzJ3kyo3KV2HKhzE3ZE8DXe7Ag4/b07TVre7eiYS2bt37pimjwQQQWb6Zg/geKFAwTSytP1xRFds2Y91K7YQU52f8DOTOo51gFwt09gz6dMH61Rf/4vARV+8B0nT9cy8evAMCxZTy3GvK1datvPgWChXRTajg8owcigXJwX9y9qgeVwDRecdW5MyJRs2cVT/a3uSv7BVVMHVStPVtqCfOzz+esKFdG5qUNyoP98YZLf7eaTMBhPOSBWjWBmXL24DchiblFd6WjTpcxJVuJUtj/HQznJ99e5EQh31/2jAk0TSphwsUkPzUKTzQA/K+yZTy3AiUKKWFsOL8FC6qhSQhhRjYBzu2hTzLsRN0mgCitNxcPtbXMeVj7ahIMQwdHWsjsdfv0gM3do69GSdaSByFmVOc6CjsPnRygQJCb1iDCpVQo07YKrh6ojy93bgBP611TQjl/Bjy5GftCtzXDadPu8YqWMeuLoYLJpA6li8/5vyIipUz+12v4/Iir3l1yBs9V8rYKWh7sys9R9bpkUNo2wAbf4qslv1na+YCBRQ+fEgtkZBVIkaUosXx31HuSBrf3QzrFzr/elBD6xe59HOBAqa061ccP6YeChlRqtZQXtDP6xwVVpyfcdORJ6+jnUbX2SfjMfyZ6KraXUtLFyigdJYsmDjLmDmwZzda1MCeP+wesP+3b4rz88tPyvmRq7qWRUsXKEDq7Fk81At7XfKtIx2tYiXxn5GRVor+/FsSzHB+ThxHvwRtrV/46+oCBUxD/myIX3FL9+gNxcmaV9dU4Q0pG2zvU14+yJMfI5yfZwYg6XPbgcTQgd4TQBTblKJe8dRrFIOODlaVxdIfvWd7hMPI91GrnoNaRdtV0lTIBNC7aHwPkAYuVy7M/B7Vaqcd0PrDZx+ohX32lZtvx+iJ9jVvWcup2xBXF7LMUe9iwgQQglWrI2mpGWtdRNq7OmPWNFvGXZyfeWshb6A1L6dP4daW+G6h5mKKeBrfBKeHJ3cCTz+S/oDWn9XKHHuWJcvKC/2tX8bm5WeNsH6RVPt7gDRLV4Fjtc0IHMtXQEULfDk1TXZrPnS+DQ8PtqYpW1tZ+BUG3Qt5iGdCMcQFCqAsUhTJK1GmnAlggTs7WJlHqHhJ5fzIW2fNi7wPaV0Hu3ZqLmaaeIa4QAF5zQockxwqBQulgY71gzg/+ls/zqJ/L4OsXwbFHBcoYEESOJYjBxqbEDgmeYTkz7Yld8M3dcMjT8U6hRyo/+ZwjHvTgX4s7MIoFyigd/bsmLIA9ZtYSMHGpnq0xdxZMbVvivOzfAluaYaThixhPD8kBk4AEb18RSSvQAHrHIzzOKz//9ftKqHiwQPRtzzmY3S4NfrqztQ8sA9x9VQ8k2nFNBcowFdw79higFmItDJLxXefMz1Kw+jUFQOejrKuk9X694SEuhtYzJwAAloCx+Q6YETgmOQAFuPYuili8yhWAhO+QJ58EVd0uMKEdzDqRYf7tKo7M12ggPYSODZ7OSpVsYqFje2kbkWLmhEvinxnMjp2tVEqS5resBodGuGoOQleM2pt1GPQjKIrezIlcOyyy/HUSxeIH+KrOD/6W//RI+h7u7nWL0NgrAsUMB954SLJpZvHhTAmHX6+pr5KfLR9S1iymOL8PHE/5s0OSyNdTzLZBQowNShwTHaCaFkrrHSwb3+ETt10tZnzck2dqFL7G15MdoEC6GXNiTyCMCJwrHwl/HtoaIPpeKsB1r/1F5MyOGUO3fwrQEC31h1UkJQB5Sy6tMTi+ZlKWqy4WvMjAZY6l5MncFNTrFyqs4xhymb+FSCgaPIXePf1MHV29bQseOVd5M08lcOQN3S3fsH3whPesH5RxfCb4PS2vGgu4jqhROn0x3T8LBGeefNjblIQ2Tp0waDnghzX6lDyDAx+SCuJYhHGKy5QgIEkKpTAMf2jxWUnhPjmF4aMGOH8/JaKNnUczf4Si3WHUdcrLlBA1ZT1ZgSOZcmKl99Fnoxbuejv/Jw5rcKdncx9FIYFx3iKh1ygAAlTAsckslEmQNpD9PbxBjg/rz6PjxJjNDjdqnvLBQrQlXhcCRzTf6MNcYQ6X4+li2GE87NkPrq20i23c+zTyVsuUICH7D5ixI5j4gi9Mha5c6uUcpo/95QM2LJ3iWaZzWO3fmnBcy5QgIoEjkncTOPmljCysRFZKX1zggE7o/W9DSuX2cjBvaa96AIFaGbLpgLHGlznHluv9DzmNTMeLUTF27sTQHAYFDgW1eA5UWnVUvXS98QJJ/pyow+PukABlBI4JuvPZGkNS3QEZMPC2+Nc2/wmOpkjrOXpCSAsZN+KcpejZt0IsfD0cwQG3H2pZUuegORpFygwQnnzqcCxK6p6YrwcVGLSWAy4x8H+3OnKBxNAwEpU7vRFyJHTHcYm9pqyDu0a4sgRE2WPSGavu0ABGAYFjkU0ejadLEF23dtiZ6pNzWvVrD8mgCBftgQNmqDilVrR11SYJ/tbmdVUUyX/EssfLlBAWdlW8auVur9zdd1cZnyMe7WPxrSOkp8mgFBr1R7vS+CYz7QO31x2bEGbuti/L/wapp/pGxcoMFCbU1CoCOo1Nn3YbJFfdia/syM2b7SlcV0b9eJiuEuzHvIY1q649Ck+/XXYYHWn5LPiS2egytVIWmZA4JiTtjhvFnq0M2VbFwvB+MwFCpCTxb2SRqVNJws5mt3U778h4cawEhaZrWcQ6X05AYTDquWoVgtVqgdB4rdDEpdzTzzWr/ab3gF9/XcPkDbOA/8OSd7PMnIoFiT7FoMv7wHSRrvxDfhkLrL69TIoHCRve5cWOHUqDYnfPvh47GWod2yDxM000T5wzCar3LcXCXGQCFIfF39fAWTgZQJ8Nh8Nm/rRBvrEY+YUPyqeTmcf3wMEKEigt4R7H9yfjok/PiaOovXLSPvbBQqY+oH92LbJgN0oLJyY8irwvm6ezPIQKSROgHPEJHDssgp+CRw7cki5/r/vitRWPHm+7+8B0kbVP4FjD/fG5HFpevv8g+/vAdLG/8hh9EuAZL73dvlkPK0//QjTBUpHw/OBY5t+Ru/O3p/k6YY05EdOgIyIZDlk/caoWDnjUU98O3FcLXeTVx8s6QjQBUoHQz7KjmMP9cKe3RmPeuLb84Ow+kdPaGKlEpwAF9GUxyMP9ZapcNEPJh9Imop3R5qsgF2y0wUKRlaiogoWVr6QN0rqNtzZXm2ozHIRAT4GvQhJ4ECuXJixBDXqZPKzOYdlWxdZ7vbdQnMkdlRSukCZ4D5+XD0VPWp+Zqjhz9D6MxljdZguUOZwJHBM7objbsr8DO1/WfgVBt3rw0DH8AeGE+CSrFYvx9U1UdXMwDGZvRLoeOjgJTX0+490gUJZgASOyU2kiSVxNOTVHsslCXACXBKP/ChZomTxjImlWy8ULGSi4E7KzAkQBu0bWoVxkn6nlK+EoW/qJ5ZeEvEeINR4NGuNYW8ji5nPi6+uBdkvkInAMh9kM8c1c30s/qV4SZVPt0Rpi5t1sjlZ/R9XD5tSnOzToL7oAmU+WPJX//XxZlu/KJc3P0Z/iJzcHCT4QNMFCs5FHX3gUfTsm/nP5vxSqixy58H8OeZI7JykdIEyYS0LgWSb4ew5MvnZuMNn1aYv82YbJ7fdAnMCBCNcqDDm/IhyFYP9ZuwxSQDa6hr84cWV3jGMCe8BgsEbPsZr1i9ayq38q2ODaevrY7wHuGj4xe/v9+hFRz1xQPaKlc3Dl3/nCWWsUYIuUEaO1Wvji++QK3fGox76JoGRHRtjDbcI+WtMOQHSGXfevEhaisrV0h3y4seN69G2gR/2AA5n8OgCpaP04ltoFpfuu0c/Fi2htsqcM92j6kWmFifAeV7x3fHof85/8fr/tetjwxqkrPe6nqH1owt0jlGlypi9HPkKhAbmmTP2/4nW1yB1u2cUik4RPgaFWibw5iR/Wb8Yi2wX+8YElR3e38Xv+qvRf2o42sf70QzKXQ4JmV8834+6n9fZ9y5QXCckTjtPw3//ywSIb47vv/Wf5n9p7O8JULYc5qxAkWK+HX6l+I4taFNXBb75svjYBRL3d9w07z/1D2nWkgKsQiXM+CTkiZ48wccT4J9Po2svTw5qxEpdVVPtGLvGj5lD/eoCNW2JycnIwodg5yfL0cO4sT42/nT+u1/+9+UEKFYCySsgYSIs6QlIEqROTXDC61uEpFfZj5nhJNDxncmoVS8jB34DSpWB7BPls6AZ/90D3DcAdz1Iew9OQOLgZLH0lo3Bf/XiUZ+5QHUaYtq3Hgp0tMEk/9ilAsd8s4ekn+4CCxTEW5No/SEmTfFSeO09U/MghdAtyM9+coFGJKLRDUEY8NAFBCpVwcH9kO3SfFB84wL16IOXxvhgQC1SUQLH5ImQD/YU88cEuKoGZn6PPHktsg5/NLNxw7nAscPe1tYHLlCePJg4C6Uv8/ZAWq9d0eIoUQqzPb5S0AcT4IVR+Fs76+3DDy3K25Kf16l/3i1ed4E636aCXViiJiBpVFrXUSmmPVo8PQEuv0IFOhbgJhGxGe/3C9U+k6dPx9aKprW96wLlyIEJM3H5lZqCN0isyyqobcMXzTNI5PBF9e4EePJFdOwaPgh3zhw3GqdOomx5d3oPv1d5f7JoLnZsC7+GKWd61AVq1R7vzwD01m7Tz4irq6xfotL0z0WXulXdDHgucMyLV4DSZTExCXnyaf1HSIJxe3fG1s3Yuwfy1qm59gm5JHCs4pWY/rHWVCMXznMTIGtWvDcVVWtEjsLZGqNfwkeJf3X543doEYcy5ZyVIPLehOpvqZCwAQ8VvZ2EKEA/MhiDnouinqNVNqxWL1nTh55UqaZ2JMiZy1ExouhMAsdE8pQNUVTVs4q3rgCNm51byaj3Ele5672jPXamZjCIvX+ou+EbWmc4qOGXHDnRsCkmJ3rmqaiHJkDRYpg0B+Kqal5efhbTJgeRUVZftmpnwJKNkmWQLz/mzQqigoGHPOQCJX6OuJt0H4IV3+Ompjh1KricV9fErGWQv7K6l7O4owO+/lJ3McOQzytXgD790efhMPR19ZTjx9Cj3aV26ZINvM6ewfWtXJUynM6zoHkbfDoBhw+Fc7bO5+jtLodJTpJ9D34pzHPdPG3ov0NnJB81zIzHLLLDwGuJHggcM/8KkL8AJs1WOz5oXpbMx+P34+zZEGKeOYPlS9C9D7JqPzQVK+PwQSxdHEIjvX/WnnJIfK+MxXUtQp7l8glHDiGhLfb9GZYYEpAuuVuuaxnWye6eJOS/noldO92VIpbeDXeBbuuN+B6x6O9Q3WcHYtvmCPoa+V+sNWEfO7lfH/WhyiZkbDH5KZC8PEr6QfclD2IZ85LQPfKInFp11X6VRmxV/9F7eORuQ6eAsS5Q7twq0LGM9usoZSciefJz6GDE9rH7N2TPjibNI67ofIWadSEBxD+tdb7n2Hs01gV65hVUqx27/ra38GT/C1/6ht/liCGQRRNGFNlgs3xFIyS9QEgzJ0CHLuh5/wWa6Ph15qfqYXnURRYLPXwXTmfy1izqZu2oKC/gzdxxzEAXSP7SSKiX/gvo9+xWr0uPHonJ3uQBS65caNQspkacqSyBY1mz4Nu5zvRmVS+m3QSLWzxlAeo3sUp/G9vpE4+ZUyxoXyaArI/Qf4G3qCpBDrf+DUsWWKC1U02Y5gI9+rwZ1v/ZBGusX+zg+HH1jEVsS/8iL+/EESpcRH9J0yQ0ygWSqBG52dI80FHQ7tyBXp0gK3+sKhKGImntrr3eqvZsbEdycMiu40GXu9rYa/RNmzMBSpZWzz3z5o9eV8dq9u2GDVY/E/xhIeTWv2gJx5SIvqMq1dW74VXLom/BwZqGuEAS6DjyfUjmbv3LhLcx14a18seOKUdI1ooaUZ59FfKa0oRiyBXgH4+jx98N4Ln1F9wTj5P2bLMlnpWs/GtwnQEcJClTo+shb4i1T6dlwgS4tilGjINcBDQv8uf57luweaONYkqStk5dzdjZu0RpyI4kc5NspGFF09pblTxSkOVW2bJboazNbYx5DUu+sbePo0cxwBxH6J7+aN3BXiAxt679FUCsv17jmNW0v4GUdeh7W6axjhb2n7odhQqb8SxYtNY+cEzvK8BdD6DdLRYaj11NyWqF/r0g96nOlBefNGYjR3lspXfgmMZXgJp18M7HZjg/rw/BZx84Y/yql5MnsXYlJBZC/1ciIq3kk5NsQj8sUpLrV3SdAJJ4QwIdZYcS/YtkSuvfExLK6GSRhP1FiqFuIyf7jL6v6yRw7Evs+jX6FmyrqetaoBGJ6NrLNq2ta1jSekqmtA1rrGsx7JYkDuvrVahwRdgVXD1xcwri6mmYRULLe4CuPc2wfrGo4U+7Y/3S9ZHD+GcflbnfiCJbr77whoaS6ucCXVkVkuLKgORQwNJFygRDJnqwb9i3b0HxkqjT0L4erGy5Rh1IRnhXrpaZq6GZCyRLf6cvhoTY6V9koX8bGdEUlyWVm6W5q1GuostihNm97L/dpm5k+QHCbDna0zRzgSS/lRHWL7iHPOa+9YsYkpttoCwSMcQRkrWioz5Qsc7aFJ1coHY3QyJ9jSjfJEOCfTUpWzehVBnUbqCJOCHEkB1xsmXDwq9DnObUz9q4QOUqYPaPKFzUKcVj6Eeu461q67Vhlqy6+Xo11G52JhRZNNW1FRbN00FWPVwguSa+8YEZ1i+D9vQjelm/iHTwAB69Vwd7CkuGLOcWtxfR4o+dHhNg4DNmhDvJ8M6ehknvhTXMDp8kQQgT33W4z+i7k/2gho+Jvrp1NTVwgW5opV76yl8F/cufe9CyJiRllZ6lYCHMXWPAXmNp9CRb8Pi30r658sHtCSCPsZNXQDYdMaLIek/No13V/rBfGMFSCXnsKNo1dDelnKt/dyUH8uvjjLH+zyfpbv1iUl/NVBt4mVJy58HoDyFZLt0rrj4G7TfIjARvMjy7d6JnR/UXS/+yeD5kLYkETxpRZL2jZJVzb7cl9yZA/cYqh4z+20AEzOj+BKxbZYRFqXQssvLs5gQzpBUp616rNsX55WdXBHbPBRrwlBm5v2VYJo1FsjmOtQg8ezo+fd8Ve4qy04HPRlmR1UiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABGwg8D8UnyVeZFwGAQAAAABJRU5ErkJggg==" + webUI["html/img/x_white.png"] = "iVBORw0KGgoAAAANSUhEUgAAAQAAAAEACAIAAADTED8xAAAAAXNSR0IArs4c6QAAAAlwSFlzAAAWJQAAFiUBSVIk8AAAA6ppVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IlhNUCBDb3JlIDUuNC4wIj4KICAgPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIgogICAgICAgICAgICB4bWxuczp0aWZmPSJodHRwOi8vbnMuYWRvYmUuY29tL3RpZmYvMS4wLyIKICAgICAgICAgICAgeG1sbnM6ZXhpZj0iaHR0cDovL25zLmFkb2JlLmNvbS9leGlmLzEuMC8iPgogICAgICAgICA8eG1wOk1vZGlmeURhdGU+MjAxOC0xMS0xNVQxNzoxMToyNTwveG1wOk1vZGlmeURhdGU+CiAgICAgICAgIDx4bXA6Q3JlYXRvclRvb2w+UGl4ZWxtYXRvciAzLjM8L3htcDpDcmVhdG9yVG9vbD4KICAgICAgICAgPHRpZmY6T3JpZW50YXRpb24+MTwvdGlmZjpPcmllbnRhdGlvbj4KICAgICAgICAgPHRpZmY6Q29tcHJlc3Npb24+NTwvdGlmZjpDb21wcmVzc2lvbj4KICAgICAgICAgPHRpZmY6UmVzb2x1dGlvblVuaXQ+MjwvdGlmZjpSZXNvbHV0aW9uVW5pdD4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+MTQ0PC90aWZmOllSZXNvbHV0aW9uPgogICAgICAgICA8dGlmZjpYUmVzb2x1dGlvbj4xNDQ8L3RpZmY6WFJlc29sdXRpb24+CiAgICAgICAgIDxleGlmOlBpeGVsWERpbWVuc2lvbj4yNTY8L2V4aWY6UGl4ZWxYRGltZW5zaW9uPgogICAgICAgICA8ZXhpZjpDb2xvclNwYWNlPjE8L2V4aWY6Q29sb3JTcGFj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" + webUI["html/img/xmltv.png"] = "iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAAAXNSR0IArs4c6QAAAAlwSFlzAAAsSwAALEsBpT2WqQAABCRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IlhNUCBDb3JlIDUuNC4wIj4KICAgPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIgogICAgICAgICAgICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgICAgICAgICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyI+CiAgICAgICAgIDx0aWZmOlJlc29sdXRpb25Vbml0PjI8L3RpZmY6UmVzb2x1dGlvblVuaXQ+CiAgICAgICAgIDx0aWZmOkNvbXByZXNzaW9uPjU8L3RpZmY6Q29tcHJlc3Npb24+CiAgICAgICAgIDx0aWZmOlhSZXNvbHV0aW9uPjI4ODwvdGlmZjpYUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6T3JpZW50YXRpb24+MTwvdGlmZjpPcmllbnRhdGlvbj4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+Mjg4PC90aWZmOllSZXNvbHV0aW9uPgogICAgICAgICA8ZXhpZjpQaXhlbFhEaW1lbnNpb24+NTA8L2V4aWY6UGl4ZWxYRGltZW5zaW9uPgogICAgICAgICA8ZXhpZjpDb2xvclNwYWNlPjE8L2V4aWY6Q29sb3JTcGFjZT4KICAgICAgICAgPGV4aWY6UGl4ZWxZRGltZW5zaW9uPjUwPC9leGlmOlBpeGVsWURpbWVuc2lvbj4KICAgICAgICAgPGRjOnN1YmplY3Q+CiAgICAgICAgICAgIDxyZGY6QmFnLz4KICAgICAgICAgPC9kYzpzdWJqZWN0PgogICAgICAgICA8eG1wOk1vZGlmeURhdGU+MjAxOC0wNy0yOFQyMDowNzozMzwveG1wOk1vZGlmeURhdGU+CiAgICAgICAgIDx4bXA6Q3JlYXRvclRvb2w+UGl4ZWxtYXRvciAzLjM8L3htcDpDcmVhdG9yVG9vbD4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgIDwvcmRmOlJERj4KPC94OnhtcG1ldGE+Co6j9bsAAAGgSURBVGgF7VqxTsNADL0gYGEon8DOwsbAAH8BYmJn6cYIn8DC3h0+oixISFRiYYCJL0AwMMBAeK5w2rpV6uikxHfYknW98+vds18TK21DWGBlWR7CH+BfcEv2AzLP8HP42gLqkyUATuEp2PWEdQjF9ATs1zF/g29Mrxt+vVcUxR3xWxEktzFPJQmivsv8ZSI9DiQyVnxlIonwn6fpiczXpNuVVXH8O+a3Ys3y9NUyuf/NTTbEHZTjUlGSRzSiPhroUIENwB4AS/vS/susDwDhTpYBER9g7wHh5DWyibV9CiitCZbIafDEYUuJHQI3Nr/9ciWsjK6IFSWYhyvClbAyZqOIlYJG84jq7E1Ot97Zm+TinV1TrWwudk9EI3ebGFekzWprzspGEU2ySWCiOrs/s9dr7M/s9fVJJJrNXcsTsfaJc0WsKZINH+/sf1Jqvl1n1f2ZnStRN/pdq646XcSkIh9dkIg4s+IrE3nCpp8RG7f91ns+cCYR/LD4jcAZB42PN+A7/mcQ8ZxJhBYQvMJwBB/BKTFLVoLMC/wCfgyv7BesTKUC2LKM3wAAAABJRU5ErkJggg==" + webUI["html/index.html"] = "PCFkb2N0eXBlIGh0bWw+DQo8aHRtbD4NCiAgPGhlYWQ+DQogICAgPG1ldGEgY2hhcnNldD0idXRmLTgiPg0KICAgIDwhLS0tDQogICAgPG1ldGEgbmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9IndpZHRoPWRldmljZS13aWR0aCwgaW5pdGlhbC1zY2FsZT0xLjAiIC8+IA0KICAgIC0tPg0KICAgIDx0aXRsZT54VGVWZTwvdGl0bGU+DQogICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJjc3Mvc2NyZWVuLmNzcyIgdHlwZT0idGV4dC9jc3MiPg0KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iY3NzL2Jhc2UuY3NzIiB0eXBlPSJ0ZXh0L2NzcyI+DQoNCiAgICA8c2NyaXB0IGxhbmd1YWdlPSJqYXZhc2NyaXB0IiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ianMvbmV0d29ya190cy5qcyI+PC9zY3JpcHQ+DQogICAgPHNjcmlwdCBsYW5ndWFnZT0iamF2YXNjcmlwdCIgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9ImpzL21lbnVfdHMuanMiPjwvc2NyaXB0Pg0KICAgIDxzY3JpcHQgbGFuZ3VhZ2U9ImphdmFzY3JpcHQiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJqcy9zZXR0aW5nc190cy5qcyI+PC9zY3JpcHQ+DQogICAgPHNjcmlwdCBsYW5ndWFnZT0iamF2YXNjcmlwdCIgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9ImpzL2xvZ3NfdHMuanMiPjwvc2NyaXB0Pg0KICAgIDxzY3JpcHQgbGFuZ3VhZ2U9ImphdmFzY3JpcHQiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJqcy9iYXNlX3RzLmpzIj48L3NjcmlwdD4NCg0KICA8L2hlYWQ+DQoNCiAgICA8Ym9keSBvbmxvYWQ9ImphdmFzY3JpcHQ6IFBhZ2VSZWFkeSgpOyI+DQoNCiAgICAgIDxkaXYgaWQ9ImxvYWRpbmciIGNsYXNzPSJub25lIj4NCiAgICAgICAgPGRpdiBjbGFzcz0ibG9hZGVyIj48L2Rpdj4NCiAgICAgIDwvZGl2Pg0KDQogICAgICA8ZGl2IGlkPSJwb3B1cCIgY2xhc3M9Im5vbmUiPg0KICAgICAgICA8ZGl2IGlkPSJwb3B1cC1jdXN0b20iPjwvZGl2Pg0KICAgICAgPC9kaXY+DQoNCiAgICAgIDxkaXYgaWQ9ImxheW91dCI+DQoNCiAgICAgICAgPCEtLQ0KICAgICAgICA8ZGl2IGlkPSJub3RpZmljYXRpb24iPg0KICAgICAgICAgIDxkaXYgY2xhc3M9ImVsZW1lbnQiPg0KICAgICAgICAgICAgPGg1PlhFUEc8L2g1Pg0KICAgICAgICAgICAgPHByZT4xMS4wNS4yMDE5IC0gMjA6MjE8L3ByZT4NCiAgICAgICAgICAgIDxocj4NCiAgICAgICAgICAgIDxwPkhhbGxvIGRhcyBpc3QgZWluIFRlc3QuIFVuZCBub2NoIG1laHIgVGV4dC48L3A+DQogICAgICAgICAgPC9kaXY+DQogICAgICAgIDwvZGl2Pg0KICAgICAgLS0+DQoNCiAgICAgICAgPGRpdiBpZD0ibWVudS13cmFwcGVyIiBjbGFzcz0ibGF5b3V0LWxlZnQiPg0KICAgICAgICAgIDxkaXYgaWQ9ICJicmFuY2giPjwvZGl2Pg0KICAgICAgICAgIDxkaXYgaWQ9ImxvZ28iPjwvZGl2Pg0KICAgICAgICAgIDxuYXYgaWQ9Im1haW4tbWVudSI+PC9uYXY+DQogICAgICAgIDwvZGl2Pg0KDQogICAgICAgIDxkaXYgY2xhc3M9ImxheW91dC1yaWdodCI+DQoNCiAgICAgICAgICA8dGFibGUgaWQ9ImNsaWVudEluZm8iIGNsYXNzPSIiPg0KDQogICAgICAgICAgICA8dHI+DQogICAgICAgICAgICAgIDx0ZCBjbGFzcz0idGRLZXkiPnhUZVZlOjwvdGQ+DQogICAgICAgICAgICAgIDx0ZCBpZD0idmVyc2lvbiIgY2xhc3M9InRkVmFsIj4mbmJzcDs8L3RkPg0KICAgICAgICAgICAgICA8dGQgY2xhc3M9InRkS2V5Ij5PUzo8L3RkPg0KICAgICAgICAgICAgICA8dGQgaWQ9Im9zIiBjbGFzcz0idGRWYWwiPiZuYnNwOzwvdGQ+DQogICAgICAgICAgICAgIDx0ZCBjbGFzcz0idGRLZXkgcGhvbmUiPkRWUiBJUDo8L3RkPg0KICAgICAgICAgICAgICA8dGQgaWQ9IkRWUiIgY2xhc3M9InRkVmFsIHBob25lIj4mbmJzcDs8L3RkPg0KICAgICAgICAgICAgPC90cj4NCg0KICAgICAgICAgICAgPHRyPg0KICAgICAgICAgICAgICA8dGQgY2xhc3M9InRkS2V5Ij5VVUlEOjwvdGQ+DQogICAgICAgICAgICAgIDx0ZCBpZD0idXVpZCIgY2xhc3M9InRkVmFsIj4mbmJzcDs8L3RkPg0KICAgICAgICAgICAgICA8dGQgY2xhc3M9InRkS2V5Ij5BcmNoOjwvdGQ+DQogICAgICAgICAgICAgIDx0ZCBpZD0iYXJjaCIgY2xhc3M9InRkVmFsIj4mbmJzcDs8L3RkPg0KICAgICAgICAgICAgICA8dGQgY2xhc3M9InRkS2V5IHBob25lIj5NM1UgVVJMOjwvdGQ+DQogICAgICAgICAgICAgIDx0ZCBpZD0ibTN1LXVybCIgY2xhc3M9InRkVmFsIHBob25lIj4mbmJzcDs8L3RkPg0KICAgICAgICAgICAgPC90cj4NCg0KICAgICAgICAgICAgPHRyPg0KICAgICAgICAgICAgICA8dGQgY2xhc3M9InRkS2V5Ij5BdmFpbGFibGUgU3RyZWFtczo8L3RkPg0KICAgICAgICAgICAgICA8dGQgaWQ9InN0cmVhbXMiIGNsYXNzPSJ0ZFZhbCI+Jm5ic3A7PC90ZD4NCiAgICAgICAgICAgICAgPHRkIGNsYXNzPSJ0ZEtleSI+RVBHIFNvdXJjZTo8L3RkPg0KICAgICAgICAgICAgICA8dGQgaWQ9ImVwZ1NvdXJjZSIgY2xhc3M9InRkVmFsIj4mbmJzcDs8L3RkPg0KICAgICAgICAgICAgICA8dGQgY2xhc3M9InRkS2V5IHBob25lIj5YRVBHIFVSTDo8L3RkPg0KICAgICAgICAgICAgICA8dGQgaWQ9InhlcGctdXJsIiBjbGFzcz0idGRWYWwgcGhvbmUiPiZuYnNwOzwvdGQ+DQogICAgICAgICAgICA8L3RyPg0KDQogICAgICAgICAgICA8dHI+DQogICAgICAgICAgICAgIDx0ZCBjbGFzcz0idGRLZXkiPlhFUEcgQ2hhbm5lbHM6PC90ZD4NCiAgICAgICAgICAgICAgPHRkIGlkPSJ4ZXBnIiBjbGFzcz0idGRWYWwiPiZuYnNwOzwvdGQ+DQogICAgICAgICAgICAgIDx0ZCBjbGFzcz0idGRLZXkiPkVycm9yczo8L3RkPg0KICAgICAgICAgICAgICA8dGQgaWQ9ImVycm9ycyIgY2xhc3M9InRkVmFsIj4mbmJzcDs8L3RkPg0KICAgICAgICAgICAgICA8dGQgY2xhc3M9InRkS2V5Ij5XYXJuaW5nczo8L3RkPg0KICAgICAgICAgICAgICA8dGQgaWQ9Indhcm5pbmdzIiBjbGFzcz0idGRWYWwiPiZuYnNwOzwvdGQ+DQogICAgICAgICAgICA8L3RyPg0KDQogICAgICAgICAgPC90YWJsZT4NCiAgICAgICAgIA0KICAgICAgICAgIDxkaXYgaWQ9Im15U3RyZWFtc0JveCIgY2xhc3M9Im5vdFZpc2libGUiPg0KDQogICAgICAgICAgICA8ZGl2IGlkPSJhbGxTdHJlYW1zIj4NCiAgICAgICAgICAgICAgPHRhYmxlIGlkPSJhY3RpdmVTdHJlYW1zIj48L3RhYmxlPg0KICAgICAgICAgICAgICA8dGFibGUgaWQ9ImluYWN0aXZlU3RyZWFtcyI+PC90YWJsZT4NCiAgICAgICAgICAgIDwvZGl2Pg0KDQogICAgICAgICAgPC9kaXY+DQogICAgICAgICAgDQogICAgICAgICAgPGRpdiBpZD0iY29udGVudCIgY2xhc3M9IiI+PC9kaXY+DQogICAgICAgICAgICANCiAgICAgICAgPC9kaXY+DQoNCiAgICAgIDwvZGl2Pg0KICAgICAgDQogICAgPC9ib2R5Pg0KICAgIA0KPC9odG1sPg==" webUI["html/js/authentication_ts.js"] = "ZnVuY3Rpb24gbG9naW4oKSB7DQogICAgdmFyIGVyciA9IGZhbHNlOw0KICAgIHZhciBkYXRhID0gbmV3IE9iamVjdCgpOw0KICAgIHZhciBkaXYgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29udGVudCIpOw0KICAgIHZhciBmb3JtID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImF1dGhlbnRpY2F0aW9uIik7DQogICAgdmFyIGlucHV0cyA9IGRpdi5nZXRFbGVtZW50c0J5VGFnTmFtZSgiSU5QVVQiKTsNCiAgICBjb25zb2xlLmxvZyhpbnB1dHMpOw0KICAgIGZvciAodmFyIGkgPSBpbnB1dHMubGVuZ3RoIC0gMTsgaSA+PSAwOyBpLS0pIHsNCiAgICAgICAgdmFyIGtleSA9IGlucHV0c1tpXS5uYW1lOw0KICAgICAgICB2YXIgdmFsdWUgPSBpbnB1dHNbaV0udmFsdWU7DQogICAgICAgIGlmICh2YWx1ZS5sZW5ndGggPT0gMCkgew0KICAgICAgICAgICAgaW5wdXRzW2ldLnN0eWxlLmJvcmRlckNvbG9yID0gInJlZCI7DQogICAgICAgICAgICBlcnIgPSB0cnVlOw0KICAgICAgICB9DQogICAgICAgIGRhdGFba2V5XSA9IHZhbHVlOw0KICAgIH0NCiAgICBpZiAoZXJyID09IHRydWUpIHsNCiAgICAgICAgZGF0YSA9IG5ldyBPYmplY3QoKTsNCiAgICAgICAgcmV0dXJuOw0KICAgIH0NCiAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgiY29uZmlybSIpKSB7DQogICAgICAgIGlmIChkYXRhWyJjb25maXJtIl0gIT0gZGF0YVsicGFzc3dvcmQiXSkgew0KICAgICAgICAgICAgYWxlcnQoInNkYWZzZCIpOw0KICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Bhc3N3b3JkJykuc3R5bGUuYm9yZGVyQ29sb3IgPSAicmVkIjsNCiAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjb25maXJtJykuc3R5bGUuYm9yZGVyQ29sb3IgPSAicmVkIjsNCiAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJlcnIiKS5pbm5lckhUTUwgPSAie3suYWNjb3VudC5mYWlsZWR9fSI7DQogICAgICAgICAgICByZXR1cm47DQogICAgICAgIH0NCiAgICB9DQogICAgY29uc29sZS5sb2coZGF0YSk7DQogICAgZm9ybS5zdWJtaXQoKTsNCn0NCg==" webUI["html/js/base_ts.js"] = "dmFyIFNFUlZFUiA9IG5ldyBPYmplY3QoKTsNCnZhciBCVUxLX0VESVQgPSBmYWxzZTsNCnZhciBDT0xVTU5fVE9fU09SVDsNCnZhciBTRUFSQ0hfTUFQUElORyA9IG5ldyBPYmplY3QoKTsNCnZhciBVTkRPID0gbmV3IE9iamVjdCgpOw0KdmFyIFNFUlZFUl9DT05ORUNUSU9OID0gZmFsc2U7DQp2YXIgV1NfQVZBSUxBQkxFID0gZmFsc2U7DQovLyBNZW51DQp2YXIgbWVudUl0ZW1zID0gbmV3IEFycmF5KCk7DQptZW51SXRlbXMucHVzaChuZXcgTWFpbk1lbnVJdGVtKCJwbGF5bGlzdCIsICJ7ey5tYWluTWVudS5pdGVtLnBsYXlsaXN0fX0iLCAibTN1LnBuZyIsICJ7ey5tYWluTWVudS5oZWFkbGluZS5wbGF5bGlzdH19IikpOw0KLy9tZW51SXRlbXMucHVzaChuZXcgTWFpbk1lbnVJdGVtKCJwbXNJRCIsICJ7ey5tYWluTWVudS5pdGVtLnBtc0lEfX0iLCAibnVtYmVyLnBuZyIsICJ7ey5tYWluTWVudS5oZWFkbGluZS5wbXNJRH19IikpDQptZW51SXRlbXMucHVzaChuZXcgTWFpbk1lbnVJdGVtKCJmaWx0ZXIiLCAie3subWFpbk1lbnUuaXRlbS5maWx0ZXJ9fSIsICJmaWx0ZXIucG5nIiwgInt7Lm1haW5NZW51LmhlYWRsaW5lLmZpbHRlcn19IikpOw0KbWVudUl0ZW1zLnB1c2gobmV3IE1haW5NZW51SXRlbSgieG1sdHYiLCAie3subWFpbk1lbnUuaXRlbS54bWx0dn19IiwgInhtbHR2LnBuZyIsICJ7ey5tYWluTWVudS5oZWFkbGluZS54bWx0dn19IikpOw0KbWVudUl0ZW1zLnB1c2gobmV3IE1haW5NZW51SXRlbSgibWFwcGluZyIsICJ7ey5tYWluTWVudS5pdGVtLm1hcHBpbmd9fSIsICJtYXBwaW5nLnBuZyIsICJ7ey5tYWluTWVudS5oZWFkbGluZS5tYXBwaW5nfX0iKSk7DQptZW51SXRlbXMucHVzaChuZXcgTWFpbk1lbnVJdGVtKCJ1c2VycyIsICJ7ey5tYWluTWVudS5pdGVtLnVzZXJzfX0iLCAidXNlcnMucG5nIiwgInt7Lm1haW5NZW51LmhlYWRsaW5lLnVzZXJzfX0iKSk7DQptZW51SXRlbXMucHVzaChuZXcgTWFpbk1lbnVJdGVtKCJzZXR0aW5ncyIsICJ7ey5tYWluTWVudS5pdGVtLnNldHRpbmdzfX0iLCAic2V0dGluZ3MucG5nIiwgInt7Lm1haW5NZW51LmhlYWRsaW5lLnNldHRpbmdzfX0iKSk7DQptZW51SXRlbXMucHVzaChuZXcgTWFpbk1lbnVJdGVtKCJsb2ciLCAie3subWFpbk1lbnUuaXRlbS5sb2d9fSIsICJsb2cucG5nIiwgInt7Lm1haW5NZW51LmhlYWRsaW5lLmxvZ319IikpOw0KbWVudUl0ZW1zLnB1c2gobmV3IE1haW5NZW51SXRlbSgibG9nb3V0IiwgInt7Lm1haW5NZW51Lml0ZW0ubG9nb3V0fX0iLCAibG9nb3V0LnBuZyIsICJ7ey5tYWluTWVudS5oZWFkbGluZS5sb2dvdXR9fSIpKTsNCi8vIFNldHRpbmdzIGNhdGVnb3JpZXMNCnZhciBzZXR0aW5nc0NhdGVnb3J5ID0gbmV3IEFycmF5KCk7DQpzZXR0aW5nc0NhdGVnb3J5LnB1c2gobmV3IFNldHRpbmdzQ2F0ZWdvcnlJdGVtKCJ7ey5zZXR0aW5ncy5jYXRlZ29yeS5nZW5lcmFsfX0iLCAieHRldmVBdXRvVXBkYXRlLHR1bmVyLGVwZ1NvdXJjZSxhcGkiKSk7DQpzZXR0aW5nc0NhdGVnb3J5LnB1c2gobmV3IFNldHRpbmdzQ2F0ZWdvcnlJdGVtKCJ7ey5zZXR0aW5ncy5jYXRlZ29yeS5maWxlc319IiwgInVwZGF0ZSxmaWxlcy51cGRhdGUsdGVtcC5wYXRoLGNhY2hlLmltYWdlcyx4ZXBnLnJlcGxhY2UubWlzc2luZy5pbWFnZXMiKSk7DQpzZXR0aW5nc0NhdGVnb3J5LnB1c2gobmV3IFNldHRpbmdzQ2F0ZWdvcnlJdGVtKCJ7ey5zZXR0aW5ncy5jYXRlZ29yeS5zdHJlYW1pbmd9fSIsICJidWZmZXIsdWRweHksYnVmZmVyLnNpemUua2IsYnVmZmVyLnRpbWVvdXQsdXNlci5hZ2VudCxmZm1wZWcucGF0aCxmZm1wZWcub3B0aW9ucyx2bGMucGF0aCx2bGMub3B0aW9ucyIpKTsNCnNldHRpbmdzQ2F0ZWdvcnkucHVzaChuZXcgU2V0dGluZ3NDYXRlZ29yeUl0ZW0oInt7LnNldHRpbmdzLmNhdGVnb3J5LmJhY2t1cH19IiwgImJhY2t1cC5wYXRoLGJhY2t1cC5rZWVwIikpOw0Kc2V0dGluZ3NDYXRlZ29yeS5wdXNoKG5ldyBTZXR0aW5nc0NhdGVnb3J5SXRlbSgie3suc2V0dGluZ3MuY2F0ZWdvcnkuYXV0aGVudGljYXRpb259fSIsICJhdXRoZW50aWNhdGlvbi53ZWIsYXV0aGVudGljYXRpb24ucG1zLGF1dGhlbnRpY2F0aW9uLm0zdSxhdXRoZW50aWNhdGlvbi54bWwsYXV0aGVudGljYXRpb24uYXBpIikpOw0KZnVuY3Rpb24gc2hvd1BvcFVwRWxlbWVudChlbG0pIHsNCiAgICB2YXIgYWxsRWxlbWVudHMgPSBuZXcgQXJyYXkoInBvcHVwLWN1c3RvbSIpOw0KICAgIGZvciAodmFyIGkgPSAwOyBpIDwgYWxsRWxlbWVudHMubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgc2hvd0VsZW1lbnQoYWxsRWxlbWVudHNbaV0sIGZhbHNlKTsNCiAgICB9DQogICAgc2hvd0VsZW1lbnQoZWxtLCB0cnVlKTsNCiAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsNCiAgICAgICAgc2hvd0VsZW1lbnQoInBvcHVwIiwgdHJ1ZSk7DQogICAgfSwgMTApOw0KICAgIHJldHVybjsNCn0NCmZ1bmN0aW9uIHNob3dFbGVtZW50KGVsbUlELCB0eXBlKSB7DQogICAgdmFyIGNzc0NsYXNzOw0KICAgIHN3aXRjaCAodHlwZSkgew0KICAgICAgICBjYXNlIHRydWU6DQogICAgICAgICAgICBjc3NDbGFzcyA9ICJibG9jayI7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSBmYWxzZToNCiAgICAgICAgICAgIGNzc0NsYXNzID0gIm5vbmUiOw0KICAgICAgICAgICAgYnJlYWs7DQogICAgfQ0KICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGVsbUlEKS5jbGFzc05hbWUgPSBjc3NDbGFzczsNCn0NCmZ1bmN0aW9uIGNoYW5nZUJ1dHRvbkFjdGlvbihlbGVtZW50LCBidXR0b25JRCwgYXR0cmlidXRlKSB7DQogICAgdmFyIHZhbHVlID0gZWxlbWVudC5vcHRpb25zW2VsZW1lbnQuc2VsZWN0ZWRJbmRleF0udmFsdWU7DQogICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoYnV0dG9uSUQpLnNldEF0dHJpYnV0ZShhdHRyaWJ1dGUsIHZhbHVlKTsNCn0NCmZ1bmN0aW9uIGdldExvY2FsRGF0YShkYXRhVHlwZSwgaWQpIHsNCiAgICBsZXQgZGF0YSA9IHt9Ow0KICAgIHN3aXRjaCAoZGF0YVR5cGUpIHsNCiAgICAgICAgY2FzZSAibTN1IjoNCiAgICAgICAgICAgIGRhdGEgPSBTRVJWRVJbInNldHRpbmdzIl1bImZpbGVzIl1bZGF0YVR5cGVdW2lkXTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJoZGhyIjoNCiAgICAgICAgICAgIGRhdGEgPSBTRVJWRVJbInNldHRpbmdzIl1bImZpbGVzIl1bZGF0YVR5cGVdW2lkXTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJmaWx0ZXIiOg0KICAgICAgICBjYXNlICJjdXN0b20tZmlsdGVyIjoNCiAgICAgICAgY2FzZSAiZ3JvdXAtdGl0bGUiOg0KICAgICAgICAgICAgaWYgKGlkID09IC0xKSB7DQogICAgICAgICAgICAgICAgZGF0YVsiYWN0aXZlIl0gPSB0cnVlOw0KICAgICAgICAgICAgICAgIGRhdGFbImNhc2VTZW5zaXRpdmUiXSA9IGZhbHNlOw0KICAgICAgICAgICAgICAgIGRhdGFbImRlc2NyaXB0aW9uIl0gPSAiIjsNCiAgICAgICAgICAgICAgICBkYXRhWyJleGNsdWRlIl0gPSAiIjsNCiAgICAgICAgICAgICAgICBkYXRhWyJmaWx0ZXIiXSA9ICIiOw0KICAgICAgICAgICAgICAgIGRhdGFbImluY2x1ZGUiXSA9ICIiOw0KICAgICAgICAgICAgICAgIGRhdGFbIm5hbWUiXSA9ICIiOw0KICAgICAgICAgICAgICAgIGRhdGFbInR5cGUiXSA9ICJncm91cC10aXRsZSI7DQogICAgICAgICAgICAgICAgZGF0YVsicHJlc2VydmVNYXBwaW5nIl0gPSB0cnVlOw0KICAgICAgICAgICAgICAgIGRhdGFbInN0YXJ0aW5nQ2hhbm5lbCJdID0gU0VSVkVSWyJzZXR0aW5ncyJdWyJtYXBwaW5nLmZpcnN0LmNoYW5uZWwiXTsNCiAgICAgICAgICAgICAgICBkYXRhWyJkZWZhdWx0TWlzc2luZ0VQRyJdID0gIi0iOw0KICAgICAgICAgICAgICAgIFNFUlZFUlsic2V0dGluZ3MiXVsiZmlsdGVyIl1baWRdID0gZGF0YTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGRhdGEgPSBTRVJWRVJbInNldHRpbmdzIl1bImZpbHRlciJdW2lkXTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJ4bWx0diI6DQogICAgICAgICAgICBkYXRhID0gU0VSVkVSWyJzZXR0aW5ncyJdWyJmaWxlcyJdW2RhdGFUeXBlXVtpZF07DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSAidXNlcnMiOg0KICAgICAgICAgICAgZGF0YSA9IFNFUlZFUlsidXNlcnMiXVtpZF1bImRhdGEiXTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJtYXBwaW5nIjoNCiAgICAgICAgICAgIGRhdGEgPSBTRVJWRVJbInhlcGciXVsiZXBnTWFwcGluZyJdW2lkXTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJtM3VHcm91cHMiOg0KICAgICAgICAgICAgZGF0YSA9IFNFUlZFUlsiZGF0YSJdWyJwbGF5bGlzdCJdWyJtM3UiXVsiZ3JvdXBzIl07DQogICAgICAgICAgICBicmVhazsNCiAgICB9DQogICAgcmV0dXJuIGRhdGE7DQp9DQpmdW5jdGlvbiBnZXRPYmpLZXlzKG9iaikgew0KICAgIHZhciBrZXlzID0gbmV3IEFycmF5KCk7DQogICAgZm9yICh2YXIgaSBpbiBvYmopIHsNCiAgICAgICAgaWYgKG9iai5oYXNPd25Qcm9wZXJ0eShpKSkgew0KICAgICAgICAgICAga2V5cy5wdXNoKGkpOw0KICAgICAgICB9DQogICAgfQ0KICAgIHJldHVybiBrZXlzOw0KfQ0KZnVuY3Rpb24gZ2V0QWxsU2VsZWN0ZWRDaGFubmVscygpIHsNCiAgICB2YXIgY2hhbm5lbHMgPSBuZXcgQXJyYXkoKTsNCiAgICBpZiAoQlVMS19FRElUID09IGZhbHNlKSB7DQogICAgICAgIHJldHVybiBjaGFubmVsczsNCiAgICB9DQogICAgdmFyIHRycyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb250ZW50X3RhYmxlIikuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlRSIik7DQogICAgZm9yICh2YXIgaSA9IDE7IGkgPCB0cnMubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgaWYgKHRyc1tpXS5zdHlsZS5kaXNwbGF5ICE9ICJub25lIikgew0KICAgICAgICAgICAgaWYgKHRyc1tpXS5maXJzdENoaWxkLmZpcnN0Q2hpbGQuY2hlY2tlZCA9PSB0cnVlKSB7DQogICAgICAgICAgICAgICAgY2hhbm5lbHMucHVzaCh0cnNbaV0uaWQpOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQogICAgfQ0KICAgIHJldHVybiBjaGFubmVsczsNCn0NCmZ1bmN0aW9uIHNlbGVjdEFsbENoYW5uZWxzKCkgew0KICAgIHZhciBidWxrID0gZmFsc2U7DQogICAgdmFyIHRycyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb250ZW50X3RhYmxlIikuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlRSIik7DQogICAgaWYgKHRyc1swXS5maXJzdENoaWxkLmZpcnN0Q2hpbGQuY2hlY2tlZCA9PSB0cnVlKSB7DQogICAgICAgIGJ1bGsgPSB0cnVlOw0KICAgIH0NCiAgICBmb3IgKHZhciBpID0gMTsgaSA8IHRycy5sZW5ndGg7IGkrKykgew0KICAgICAgICBpZiAodHJzW2ldLnN0eWxlLmRpc3BsYXkgIT0gIm5vbmUiKSB7DQogICAgICAgICAgICBzd2l0Y2ggKGJ1bGspIHsNCiAgICAgICAgICAgICAgICBjYXNlIHRydWU6DQogICAgICAgICAgICAgICAgICAgIHRyc1tpXS5maXJzdENoaWxkLmZpcnN0Q2hpbGQuY2hlY2tlZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgZmFsc2U6DQogICAgICAgICAgICAgICAgICAgIHRyc1tpXS5maXJzdENoaWxkLmZpcnN0Q2hpbGQuY2hlY2tlZCA9IGZhbHNlOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KICAgIH0NCiAgICByZXR1cm47DQp9DQpmdW5jdGlvbiBidWxrRWRpdCgpIHsNCiAgICBCVUxLX0VESVQgPSAhQlVMS19FRElUOw0KICAgIHZhciBjbGFzc05hbWU7DQogICAgdmFyIHJvd3MgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCJidWxrIik7DQogICAgc3dpdGNoIChCVUxLX0VESVQpIHsNCiAgICAgICAgY2FzZSB0cnVlOg0KICAgICAgICAgICAgY2xhc3NOYW1lID0gImJ1bGsgc2hvd0J1bGsiOw0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGNhc2UgZmFsc2U6DQogICAgICAgICAgICBjbGFzc05hbWUgPSAiYnVsayBoaWRlQnVsayI7DQogICAgICAgICAgICBicmVhazsNCiAgICB9DQogICAgZm9yICh2YXIgaSA9IDA7IGkgPCByb3dzLmxlbmd0aDsgaSsrKSB7DQogICAgICAgIHJvd3NbaV0uY2xhc3NOYW1lID0gY2xhc3NOYW1lOw0KICAgICAgICByb3dzW2ldLmNoZWNrZWQgPSBmYWxzZTsNCiAgICB9DQogICAgcmV0dXJuOw0KfQ0KZnVuY3Rpb24gc29ydFRhYmxlKGNvbHVtbikgew0KICAgIC8vY29uc29sZS5sb2coY29sdW1tKTsNCiAgICBpZiAoY29sdW1uID09IENPTFVNTl9UT19TT1JUKSB7DQogICAgICAgIHJldHVybjsNCiAgICB9DQogICAgdmFyIHRhYmxlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnRlbnRfdGFibGUiKTsNCiAgICB2YXIgdGFibGVIZWFkID0gdGFibGUuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlRSIilbMF07DQogICAgdmFyIHRhYmxlSXRlbXMgPSB0YWJsZUhlYWQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlREIik7DQogICAgdmFyIHNvcnRPYmogPSBuZXcgT2JqZWN0KCk7DQogICAgdmFyIHgsIHhWYWx1ZTsNCiAgICB2YXIgdGFibGVIZWFkZXI7DQogICAgdmFyIHNvcnRCeVN0cmluZyA9IGZhbHNlOw0KICAgIGlmIChjb2x1bW4gPiAwICYmIENPTFVNTl9UT19TT1JUID4gMCkgew0KICAgICAgICB0YWJsZUl0ZW1zW0NPTFVNTl9UT19TT1JUXS5jbGFzc05hbWUgPSAicG9pbnRlciI7DQogICAgICAgIHRhYmxlSXRlbXNbY29sdW1uXS5jbGFzc05hbWUgPSAic29ydFRoaXMiOw0KICAgIH0NCiAgICBDT0xVTU5fVE9fU09SVCA9IGNvbHVtbjsNCiAgICB2YXIgcm93cyA9IHRhYmxlLnJvd3M7DQogICAgaWYgKHJvd3NbMV0gIT0gdW5kZWZpbmVkKSB7DQogICAgICAgIHRhYmxlSGVhZGVyID0gcm93c1swXTsNCiAgICAgICAgeCA9IHJvd3NbMV0uZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlREIilbY29sdW1uXTsNCiAgICAgICAgZm9yIChpID0gMTsgaSA8IHJvd3MubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgICAgIHggPSByb3dzW2ldLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJURCIpW2NvbHVtbl07DQogICAgICAgICAgICBzd2l0Y2ggKHguY2hpbGROb2Rlc1swXS50YWdOYW1lLnRvTG93ZXJDYXNlKCkpIHsNCiAgICAgICAgICAgICAgICBjYXNlICJpbnB1dCI6DQogICAgICAgICAgICAgICAgICAgIHhWYWx1ZSA9IHguZ2V0RWxlbWVudHNCeVRhZ05hbWUoIklOUFVUIilbMF0udmFsdWUudG9Mb3dlckNhc2UoKTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAicCI6DQogICAgICAgICAgICAgICAgICAgIHhWYWx1ZSA9IHguZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlAiKVswXS5pbm5lclRleHQudG9Mb3dlckNhc2UoKTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgZGVmYXVsdDogY29uc29sZS5sb2coeC5jaGlsZE5vZGVzWzBdLnRhZ05hbWUpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgaWYgKHhWYWx1ZSA9PSAiIiB8fCB4VmFsdWUgPT0gTmFOKSB7DQogICAgICAgICAgICAgICAgeFZhbHVlID0gaTsNCiAgICAgICAgICAgICAgICBzb3J0T2JqW2ldID0gcm93c1tpXTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgICAgIHN3aXRjaCAoaXNOYU4oeFZhbHVlKSB8fCB0eXBlb2YgeFZhbHVlID09ICJzdHJpbmciKSB7DQogICAgICAgICAgICAgICAgICAgIGNhc2UgZmFsc2U6DQogICAgICAgICAgICAgICAgICAgICAgICB4VmFsdWUgPSBwYXJzZUZsb2F0KHhWYWx1ZSk7DQogICAgICAgICAgICAgICAgICAgICAgICBzb3J0T2JqW3hWYWx1ZV0gPSByb3dzW2ldOw0KICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgICAgIGNhc2UgdHJ1ZToNCiAgICAgICAgICAgICAgICAgICAgICAgIHNvcnRCeVN0cmluZyA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBzb3J0T2JqW3hWYWx1ZS50b0xvd2VyQ2FzZSgpICsgaV0gPSByb3dzW2ldOw0KICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQogICAgICAgIHdoaWxlICh0YWJsZS5maXJzdENoaWxkKSB7DQogICAgICAgICAgICB0YWJsZS5yZW1vdmVDaGlsZCh0YWJsZS5maXJzdENoaWxkKTsNCiAgICAgICAgfQ0KICAgICAgICB2YXIgc29ydFZhbHVlcyA9IGdldE9iaktleXMoc29ydE9iaik7DQogICAgICAgIGlmIChzb3J0QnlTdHJpbmcgPT0gdHJ1ZSkgew0KICAgICAgICAgICAgc29ydFZhbHVlcy5zb3J0KCk7DQogICAgICAgICAgICBjb25zb2xlLmxvZyhzb3J0VmFsdWVzKTsNCiAgICAgICAgfQ0KICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgIGZ1bmN0aW9uIHNvcnRGbG9hdChhLCBiKSB7DQogICAgICAgICAgICAgICAgcmV0dXJuIGEgLSBiOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgc29ydFZhbHVlcy5zb3J0KHNvcnRGbG9hdCk7DQogICAgICAgIH0NCiAgICAgICAgdGFibGUuYXBwZW5kQ2hpbGQodGFibGVIZWFkZXIpOw0KICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHNvcnRWYWx1ZXMubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgICAgIHRhYmxlLmFwcGVuZENoaWxkKHNvcnRPYmpbc29ydFZhbHVlc1tpXV0pOw0KICAgICAgICB9DQogICAgfQ0KICAgIHJldHVybjsNCn0NCmZ1bmN0aW9uIGNyZWF0ZVNlYXJjaE9iaigpIHsNCiAgICBTRUFSQ0hfTUFQUElORyA9IG5ldyBPYmplY3QoKTsNCiAgICB2YXIgZGF0YSA9IFNFUlZFUlsieGVwZyJdWyJlcGdNYXBwaW5nIl07DQogICAgdmFyIGNoYW5uZWxzID0gZ2V0T2JqS2V5cyhkYXRhKTsNCiAgICB2YXIgY2hhbm5lbEtleXMgPSBbIngtYWN0aXZlIiwgIngtY2hhbm5lbElEIiwgIngtbmFtZSIsICJfZmlsZS5tM3UubmFtZSIsICJ4LWdyb3VwLXRpdGxlIiwgIngteG1sdHYtZmlsZSJdOw0KICAgIGNoYW5uZWxzLmZvckVhY2goaWQgPT4gew0KICAgICAgICBjaGFubmVsS2V5cy5mb3JFYWNoKGtleSA9PiB7DQogICAgICAgICAgICBpZiAoa2V5ID09ICJ4LWFjdGl2ZSIpIHsNCiAgICAgICAgICAgICAgICBzd2l0Y2ggKGRhdGFbaWRdW2tleV0pIHsNCiAgICAgICAgICAgICAgICAgICAgY2FzZSB0cnVlOg0KICAgICAgICAgICAgICAgICAgICAgICAgU0VBUkNIX01BUFBJTkdbaWRdID0gIm9ubGluZSAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgICAgIGNhc2UgZmFsc2U6DQogICAgICAgICAgICAgICAgICAgICAgICBTRUFSQ0hfTUFQUElOR1tpZF0gPSAib2ZmbGluZSAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgZWxzZSB7DQogICAgICAgICAgICAgICAgaWYgKGtleSA9PSAieC14bWx0di1maWxlIikgew0KICAgICAgICAgICAgICAgICAgICB2YXIgeG1sdHZGaWxlID0gZ2V0VmFsdWVGcm9tUHJvdmlkZXJGaWxlKGRhdGFbaWRdW2tleV0sICJ4bWx0diIsICJuYW1lIik7DQogICAgICAgICAgICAgICAgICAgIGlmICh4bWx0dkZpbGUgIT0gdW5kZWZpbmVkKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBTRUFSQ0hfTUFQUElOR1tpZF0gPSBTRUFSQ0hfTUFQUElOR1tpZF0gKyB4bWx0dkZpbGUgKyAiICI7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgZWxzZSB7DQogICAgICAgICAgICAgICAgICAgIFNFQVJDSF9NQVBQSU5HW2lkXSA9IFNFQVJDSF9NQVBQSU5HW2lkXSArIGRhdGFbaWRdW2tleV0gKyAiICI7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfQ0KICAgICAgICB9KTsNCiAgICB9KTsNCiAgICByZXR1cm47DQp9DQpmdW5jdGlvbiBzZWFyY2hJbk1hcHBpbmcoKSB7DQogICAgdmFyIHNlYXJjaFZhbHVlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNlYXJjaE1hcHBpbmciKS52YWx1ZTsNCiAgICB2YXIgdHJzID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnRlbnRfdGFibGUiKS5nZXRFbGVtZW50c0J5VGFnTmFtZSgiVFIiKTsNCiAgICBmb3IgKHZhciBpID0gMTsgaSA8IHRycy5sZW5ndGg7ICsraSkgew0KICAgICAgICB2YXIgaWQgPSB0cnNbaV0uZ2V0QXR0cmlidXRlKCJpZCIpOw0KICAgICAgICB2YXIgZWxlbWVudCA9IFNFQVJDSF9NQVBQSU5HW2lkXTsNCiAgICAgICAgc3dpdGNoIChlbGVtZW50LnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoc2VhcmNoVmFsdWUudG9Mb3dlckNhc2UoKSkpIHsNCiAgICAgICAgICAgIGNhc2UgdHJ1ZToNCiAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkuc3R5bGUuZGlzcGxheSA9ICIiOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSBmYWxzZToNCiAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkuc3R5bGUuZGlzcGxheSA9ICJub25lIjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgfQ0KICAgIH0NCiAgICByZXR1cm47DQp9DQpmdW5jdGlvbiBjYWxjdWxhdGVXcmFwcGVySGVpZ2h0KCkgew0KICAgIGlmIChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYm94LXdyYXBwZXIiKSkgew0KICAgICAgICB2YXIgZWxtID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImJveC13cmFwcGVyIik7DQogICAgICAgIHZhciBkaXZzID0gbmV3IEFycmF5KCJteVN0cmVhbXNCb3giLCAiY2xpZW50SW5mbyIsICJjb250ZW50Iik7DQogICAgICAgIHZhciBlbGVtZW50c0hlaWdodCA9IDAgLSBlbG0ub2Zmc2V0SGVpZ2h0Ow0KICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGRpdnMubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgICAgIGVsZW1lbnRzSGVpZ2h0ID0gZWxlbWVudHNIZWlnaHQgKyBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChkaXZzW2ldKS5vZmZzZXRIZWlnaHQ7DQogICAgICAgIH0NCiAgICAgICAgZWxtLnN0eWxlLmhlaWdodCA9IHdpbmRvdy5pbm5lckhlaWdodCAtIGVsZW1lbnRzSGVpZ2h0ICsgInB4IjsNCiAgICB9DQogICAgcmV0dXJuOw0KfQ0KZnVuY3Rpb24gY2hhbmdlQ2hhbm5lbE51bWJlcihlbGVtZW50KSB7DQogICAgdmFyIGRiSUQgPSBlbGVtZW50LnBhcmVudE5vZGUucGFyZW50Tm9kZS5pZDsNCiAgICB2YXIgbmV3TnVtYmVyID0gcGFyc2VGbG9hdChlbGVtZW50LnZhbHVlKTsNCiAgICB2YXIgY2hhbm5lbE51bWJlcnMgPSBbXTsNCiAgICB2YXIgZGF0YSA9IFNFUlZFUlsieGVwZyJdWyJlcGdNYXBwaW5nIl07DQogICAgdmFyIGNoYW5uZWxzID0gZ2V0T2JqS2V5cyhkYXRhKTsNCiAgICBpZiAoaXNOYU4obmV3TnVtYmVyKSkgew0KICAgICAgICBhbGVydCgie3suYWxlcnQuaW52YWxpZENoYW5uZWxOdW1iZXJ9fSIpOw0KICAgICAgICByZXR1cm47DQogICAgfQ0KICAgIGNoYW5uZWxzLmZvckVhY2goaWQgPT4gew0KICAgICAgICB2YXIgY2hhbm5lbE51bWJlciA9IHBhcnNlRmxvYXQoZGF0YVtpZF1bIngtY2hhbm5lbElEIl0pOw0KICAgICAgICBjaGFubmVsTnVtYmVycy5wdXNoKGNoYW5uZWxOdW1iZXIpOw0KICAgIH0pOw0KICAgIGZvciAodmFyIGkgPSAwOyBpIDwgY2hhbm5lbE51bWJlcnMubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgaWYgKGNoYW5uZWxOdW1iZXJzLmluZGV4T2YobmV3TnVtYmVyKSA9PSAtMSkgew0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIH0NCiAgICAgICAgaWYgKE1hdGguZmxvb3IobmV3TnVtYmVyKSA9PSBuZXdOdW1iZXIpIHsNCiAgICAgICAgICAgIG5ld051bWJlciA9IG5ld051bWJlciArIDE7DQogICAgICAgIH0NCiAgICAgICAgZWxzZSB7DQogICAgICAgICAgICBuZXdOdW1iZXIgPSBuZXdOdW1iZXIgKyAwLjE7DQogICAgICAgICAgICBuZXdOdW1iZXIudG9GaXhlZCgxKTsNCiAgICAgICAgICAgIG5ld051bWJlciA9IE1hdGgucm91bmQobmV3TnVtYmVyICogMTApIC8gMTA7DQogICAgICAgIH0NCiAgICB9DQogICAgZGF0YVtkYklEXVsieC1jaGFubmVsSUQiXSA9IG5ld051bWJlci50b1N0cmluZygpOw0KICAgIGVsZW1lbnQudmFsdWUgPSBuZXdOdW1iZXI7DQogICAgY29uc29sZS5sb2coZGF0YVtkYklEXVsieC1jaGFubmVsSUQiXSk7DQogICAgaWYgKENPTFVNTl9UT19TT1JUID09IDEpIHsNCiAgICAgICAgQ09MVU1OX1RPX1NPUlQgPSAtMTsNCiAgICAgICAgc29ydFRhYmxlKDEpOw0KICAgIH0NCiAgICByZXR1cm47DQp9DQpmdW5jdGlvbiBiYWNrdXAoKSB7DQogICAgdmFyIGRhdGEgPSBuZXcgT2JqZWN0KCk7DQogICAgY29uc29sZS5sb2coIkJhY2t1cCBkYXRhIik7DQogICAgdmFyIGNtZCA9ICJ4dGV2ZUJhY2t1cCI7DQogICAgY29uc29sZS5sb2coIlNFTkQgVE8gU0VSVkVSIik7DQogICAgY29uc29sZS5sb2coZGF0YSk7DQogICAgdmFyIHNlcnZlciA9IG5ldyBTZXJ2ZXIoY21kKTsNCiAgICBzZXJ2ZXIucmVxdWVzdChkYXRhKTsNCiAgICByZXR1cm47DQp9DQpmdW5jdGlvbiB0b2dnbGVDaGFubmVsU3RhdHVzKGlkKSB7DQogICAgdmFyIGVsZW1lbnQ7DQogICAgdmFyIHN0YXR1czsNCiAgICBpZiAoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImFjdGl2ZSIpKSB7DQogICAgICAgIHZhciBjaGVja2JveCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJhY3RpdmUiKTsNCiAgICAgICAgc3RhdHVzID0gKGNoZWNrYm94KS5jaGVja2VkOw0KICAgIH0NCiAgICB2YXIgaWRzID0gZ2V0QWxsU2VsZWN0ZWRDaGFubmVscygpOw0KICAgIGlmIChpZHMubGVuZ3RoID09IDApIHsNCiAgICAgICAgaWRzLnB1c2goaWQpOw0KICAgIH0NCiAgICBpZHMuZm9yRWFjaChpZCA9PiB7DQogICAgICAgIHZhciBjaGFubmVsID0gU0VSVkVSWyJ4ZXBnIl1bImVwZ01hcHBpbmciXVtpZF07DQogICAgICAgIGNoYW5uZWxbIngtYWN0aXZlIl0gPSBzdGF0dXM7DQogICAgICAgIHN3aXRjaCAoY2hhbm5lbFsieC1hY3RpdmUiXSkgew0KICAgICAgICAgICAgY2FzZSB0cnVlOg0KICAgICAgICAgICAgICAgIGlmIChjaGFubmVsWyJ4LXhtbHR2LWZpbGUiXSA9PSAiLSIgfHwgY2hhbm5lbFsieC1tYXBwaW5nIl0gPT0gIi0iKSB7DQogICAgICAgICAgICAgICAgICAgIGlmIChCVUxLX0VESVQgPT0gZmFsc2UpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGFsZXJ0KGNoYW5uZWxbIngtbmFtZSJdICsgIjogTWlzc2luZyBYTUxUViBmaWxlIC8gY2hhbm5lbCIpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2hlY2tib3guY2hlY2tlZCA9IGZhbHNlOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIGNoYW5uZWxbIngtYWN0aXZlIl0gPSBmYWxzZTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlIGZhbHNlOg0KICAgICAgICAgICAgICAgIC8vIGNvZGUuLi4NCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgfQ0KICAgICAgICBpZiAoY2hhbm5lbFsieC1hY3RpdmUiXSA9PSBmYWxzZSkgew0KICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpLmNsYXNzTmFtZSA9ICJub3RBY3RpdmVFUEciOw0KICAgICAgICB9DQogICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpLmNsYXNzTmFtZSA9ICJhY3RpdmVFUEciOw0KICAgICAgICB9DQogICAgfSk7DQp9DQpmdW5jdGlvbiByZXN0b3JlKCkgew0KICAgIGlmIChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndXBsb2FkJykpIHsNCiAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3VwbG9hZCcpLnJlbW92ZSgpOw0KICAgIH0NCiAgICB2YXIgcmVzdG9yZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIklOUFVUIik7DQogICAgcmVzdG9yZS5zZXRBdHRyaWJ1dGUoInR5cGUiLCAiZmlsZSIpOw0KICAgIHJlc3RvcmUuc2V0QXR0cmlidXRlKCJjbGFzcyIsICJub3RWaXNpYmxlIik7DQogICAgcmVzdG9yZS5zZXRBdHRyaWJ1dGUoIm5hbWUiLCAiIik7DQogICAgcmVzdG9yZS5pZCA9ICJ1cGxvYWQiOw0KICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQocmVzdG9yZSk7DQogICAgcmVzdG9yZS5jbGljaygpOw0KICAgIHJlc3RvcmUub25jaGFuZ2UgPSBmdW5jdGlvbiAoKSB7DQogICAgICAgIHZhciBmaWxlbmFtZSA9IHJlc3RvcmUuZmlsZXNbMF0ubmFtZTsNCiAgICAgICAgdmFyIGNoZWNrID0gY29uZmlybSgiRmlsZTogIiArIGZpbGVuYW1lICsgIlxue3suY29uZmlybS5yZXN0b3JlfX0iKTsNCiAgICAgICAgaWYgKGNoZWNrID09IHRydWUpIHsNCiAgICAgICAgICAgIHZhciByZWFkZXIgPSBuZXcgRmlsZVJlYWRlcigpOw0KICAgICAgICAgICAgdmFyIGZpbGUgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCdpbnB1dFt0eXBlPWZpbGVdJykuZmlsZXNbMF07DQogICAgICAgICAgICBpZiAoZmlsZSkgew0KICAgICAgICAgICAgICAgIHJlYWRlci5yZWFkQXNEYXRhVVJMKGZpbGUpOw0KICAgICAgICAgICAgICAgIHJlYWRlci5vbmxvYWQgPSBmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKHJlYWRlci5yZXN1bHQpOw0KICAgICAgICAgICAgICAgICAgICB2YXIgZGF0YSA9IG5ldyBPYmplY3QoKTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGNtZCA9ICJ4dGV2ZVJlc3RvcmUiOw0KICAgICAgICAgICAgICAgICAgICBkYXRhWyJiYXNlNjQiXSA9IHJlYWRlci5yZXN1bHQ7DQogICAgICAgICAgICAgICAgICAgIHZhciBzZXJ2ZXIgPSBuZXcgU2VydmVyKGNtZCk7DQogICAgICAgICAgICAgICAgICAgIHNlcnZlci5yZXF1ZXN0KGRhdGEpOw0KICAgICAgICAgICAgICAgIH07DQogICAgICAgICAgICB9DQogICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICBhbGVydCgiRmlsZSBjb3VsZCBub3QgYmUgbG9hZGVkIik7DQogICAgICAgICAgICB9DQogICAgICAgICAgICByZXN0b3JlLnJlbW92ZSgpOw0KICAgICAgICAgICAgcmV0dXJuOw0KICAgICAgICB9DQogICAgfTsNCiAgICByZXR1cm47DQp9DQpmdW5jdGlvbiB1cGxvYWRMb2dvKCkgew0KICAgIGlmIChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndXBsb2FkJykpIHsNCiAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3VwbG9hZCcpLnJlbW92ZSgpOw0KICAgIH0NCiAgICB2YXIgdXBsb2FkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiSU5QVVQiKTsNCiAgICB1cGxvYWQuc2V0QXR0cmlidXRlKCJ0eXBlIiwgImZpbGUiKTsNCiAgICB1cGxvYWQuc2V0QXR0cmlidXRlKCJjbGFzcyIsICJub3RWaXNpYmxlIik7DQogICAgdXBsb2FkLnNldEF0dHJpYnV0ZSgibmFtZSIsICIiKTsNCiAgICB1cGxvYWQuaWQgPSAidXBsb2FkIjsNCiAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHVwbG9hZCk7DQogICAgdXBsb2FkLmNsaWNrKCk7DQogICAgdXBsb2FkLm9uYmx1ciA9IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgYWxlcnQoKTsNCiAgICB9Ow0KICAgIHVwbG9hZC5vbmNoYW5nZSA9IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgdmFyIGZpbGVuYW1lID0gdXBsb2FkLmZpbGVzWzBdLm5hbWU7DQogICAgICAgIHZhciByZWFkZXIgPSBuZXcgRmlsZVJlYWRlcigpOw0KICAgICAgICB2YXIgZmlsZSA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ2lucHV0W3R5cGU9ZmlsZV0nKS5maWxlc1swXTsNCiAgICAgICAgaWYgKGZpbGUpIHsNCiAgICAgICAgICAgIHJlYWRlci5yZWFkQXNEYXRhVVJMKGZpbGUpOw0KICAgICAgICAgICAgcmVhZGVyLm9ubG9hZCA9IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhyZWFkZXIucmVzdWx0KTsNCiAgICAgICAgICAgICAgICB2YXIgZGF0YSA9IG5ldyBPYmplY3QoKTsNCiAgICAgICAgICAgICAgICB2YXIgY21kID0gInVwbG9hZExvZ28iOw0KICAgICAgICAgICAgICAgIGRhdGFbImJhc2U2NCJdID0gcmVhZGVyLnJlc3VsdDsNCiAgICAgICAgICAgICAgICBkYXRhWyJmaWxlbmFtZSJdID0gZmlsZS5uYW1lOw0KICAgICAgICAgICAgICAgIHZhciBzZXJ2ZXIgPSBuZXcgU2VydmVyKGNtZCk7DQogICAgICAgICAgICAgICAgc2VydmVyLnJlcXVlc3QoZGF0YSk7DQogICAgICAgICAgICAgICAgdmFyIHVwZGF0ZUxvZ28gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndXBkYXRlLWljb24nKTsNCiAgICAgICAgICAgICAgICB1cGRhdGVMb2dvLmNoZWNrZWQgPSBmYWxzZTsNCiAgICAgICAgICAgICAgICB1cGRhdGVMb2dvLmNsYXNzTmFtZSA9ICJjaGFuZ2VkIjsNCiAgICAgICAgICAgIH07DQogICAgICAgIH0NCiAgICAgICAgZWxzZSB7DQogICAgICAgICAgICBhbGVydCgiRmlsZSBjb3VsZCBub3QgYmUgbG9hZGVkIik7DQogICAgICAgIH0NCiAgICAgICAgdXBsb2FkLnJlbW92ZSgpOw0KICAgICAgICByZXR1cm47DQogICAgfTsNCn0NCmZ1bmN0aW9uIGNoZWNrVW5kbyhrZXkpIHsNCiAgICBzd2l0Y2ggKGtleSkgew0KICAgICAgICBjYXNlICJlcGdNYXBwaW5nIjoNCiAgICAgICAgICAgIGlmIChVTkRPLmhhc093blByb3BlcnR5KGtleSkpIHsNCiAgICAgICAgICAgICAgICBTRVJWRVJbInhlcGciXVtrZXldID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeShVTkRPW2tleV0pKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgICAgIFVORE9ba2V5XSA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkoU0VSVkVSWyJ4ZXBnIl1ba2V5XSkpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICBicmVhazsNCiAgICB9DQogICAgcmV0dXJuOw0KfQ0KZnVuY3Rpb24gc29ydFNlbGVjdChlbGVtKSB7DQogICAgdmFyIHRtcEFyeSA9IFtdOw0KICAgIHZhciBzZWxlY3RlZFZhbHVlID0gZWxlbVtlbGVtLnNlbGVjdGVkSW5kZXhdLnZhbHVlOw0KICAgIGZvciAodmFyIGkgPSAwOyBpIDwgZWxlbS5vcHRpb25zLmxlbmd0aDsgaSsrKQ0KICAgICAgICB0bXBBcnkucHVzaChlbGVtLm9wdGlvbnNbaV0pOw0KICAgIHRtcEFyeS5zb3J0KGZ1bmN0aW9uIChhLCBiKSB7IHJldHVybiAoYS50ZXh0IDwgYi50ZXh0KSA/IC0xIDogMTsgfSk7DQogICAgd2hpbGUgKGVsZW0ub3B0aW9ucy5sZW5ndGggPiAwKQ0KICAgICAgICBlbGVtLm9wdGlvbnNbMF0gPSBudWxsOw0KICAgIHZhciBuZXdTZWxlY3RlZEluZGV4ID0gMDsNCiAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRtcEFyeS5sZW5ndGg7IGkrKykgew0KICAgICAgICBlbGVtLm9wdGlvbnNbaV0gPSB0bXBBcnlbaV07DQogICAgICAgIGlmIChlbGVtLm9wdGlvbnNbaV0udmFsdWUgPT0gc2VsZWN0ZWRWYWx1ZSkNCiAgICAgICAgICAgIG5ld1NlbGVjdGVkSW5kZXggPSBpOw0KICAgIH0NCiAgICBlbGVtLnNlbGVjdGVkSW5kZXggPSBuZXdTZWxlY3RlZEluZGV4OyAvLyBTZXQgbmV3IHNlbGVjdGVkIGluZGV4IGFmdGVyIHNvcnRpbmcNCiAgICByZXR1cm47DQp9DQpmdW5jdGlvbiB1cGRhdGVMb2coKSB7DQogICAgY29uc29sZS5sb2coIlRPS0VOIik7DQogICAgdmFyIHNlcnZlciA9IG5ldyBTZXJ2ZXIoInVwZGF0ZUxvZyIpOw0KICAgIHNlcnZlci5yZXF1ZXN0KG5ldyBPYmplY3QoKSk7DQp9DQo=" - webUI["html/video/stream-limit.ts"] = "R0AREABC8CUAAcEAAP8B/wAB/IAUSBIBBkZGbXBlZwlTZXJ2aWNlMDF3fEPK//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////9HQAAQAACwDQABwQAAAAHwACqxBLL//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////0dQABAAArASAAHBAADhAPAAG+EA8AAVvU1W////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////R0EAMAdQAAB7DH4AAAAB4AAAgMAKMQAJEKERAAfYYQAAAAEJ8AAAAAFnZAAorNlAeAIn5cBEAAADAAQAAAMAyDxgxlgAAAABaOvjyyLAAAABBgX//6rcRem95tlIt5Ys2CDZI+7veDI2NCAtIGNvcmUgMTUyIHIyODU0IGU5YTU5MDMgLSBILjI2NC9NUEVHLTQgQVZDIGNvZGVjIC0gQ29weWxlZnQgMjAwMy0yMDE3IC0gaHR0cDovL3dHAQARd3cudmlkZW9sYW4ub3JnL3gyNjQuaHRtbCAtIG9wdGlvbnM6IGNhYmFjPTEgcmVmPTMgZGVibG9jaz0xOjA6MCBhbmFseXNlPTB4MzoweDExMyBtZT1oZXggc3VibWU9NyBwc3k9MSBwc3lfcmQ9MS4wMDowLjAwIG1peGVkX3JlZj0xIG1lX3JhbmdlPTE2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ACqxBLL//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////0dQABEAArASAAHBAADhAPAAG+EA8AAVvU1W////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////RwEAGO10tGlFAwyE91Tzg8923ovJk1dv2xh1gVlYQFtWdZ6NSQ8vgHM7/tMfIZPsqgCU856rdBJJRMDaor/oWA7pkvSmC2aqaC5fd/mkWUPTuG8fRhGqOY1rKxLNSI3HtTQAcuVBxRM0NfMw0ky/JMJYZiCgXcNsxpxl+khr/9fKtO5Fg2VNBti92xcZimHUZDJMQTBOY6vSR9L1N2O/kJQCpdfuc9bkcUTMjH/es/lAySxvbiislkohqkpHAQAZVatwHI0t9eHCUfDyWUEtuCNyDwQFOVMtaYEQJrTrhQX0VduT86F0u0wN9ag0uPsrmX6Rid/x5S7KI1SkS+qP6cdmgSP57uiF4dG6IKsWNfGBLY09H/CFlrg73WINQkkp2diKkdEmtZetn8+ZAKzR5eXN5FebiKt6pIkNLuSofjosypEs2o6boKsfpmbtOV0idOeWDM9C8EIcn3aZwk1s2KBDvt1DlY+i2Cuvhk3XoKLT+pq/bOC5QkcBABolcOXneZXLoQw9W1PH1f/of92Ytjj8okrWijcQAKlE5l8XoTb9qrOiZnDOhqwcMlB9H9rorq041I89hChohYoSkJElcM8V+r8WYN5axD1BNyfwaHAOm4UN2/VEYOkNSfMjmx2S0WW/F2ha8Jj4fc4QgqcXr+TnnbwqLkLTValK4Qa1pcv7PIbDq6zCUfxe04guZ8xEhPQjp17/G6IB/6uq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wnibxQ/cXEblVnM47wbCN3iy4eHjYB5MoIICrSYmd8nt4V0toLs084KJlmnur5FbApYM4W79ff4oZkW88Cg8Fv8TnWhh1Hqc4UlhMbRKm2QxDgfBxar3U7BwNR6prrXXjqfR7ja3tPli+H7Jez/xcTg32QpHAQAdTa7pSSgBvmOqzz175NAFIhwE9p3d71F9jLvhaPv8q1iKopL0kizwzEWElnXWmNhfLkl/Au8KujnoKUaxVdTe+zAZm2dOkejnpNVtVj0Aw9wKcG3ZQ1iRZrUFRIoPKYlmR+oi0LrupuhYABtgPbdCbDtezGTr0nw9wVd/rZ6V+1wcoJ6+8VAVueIdwI3brqm6EoFHiI8L6lER+9SefB8fHo4NYgr/I8jSxaa/2PLX2K/DjrlY6bN8fEcBAB7DXsuh8DITF6CYWj2HTFvqfzlic3QHXnHtvsTFNpyVY1LY8y/fRK2mwALN6IB5W3OuyoKiA3K0lJdQUv2gYhHWvPTV218HYrD0rkbMxRH0SiEEkrHDeOt5T1HtWD13D2/QvMu535fsfZyeaFDjdCE9M0Xi8Lfc7Xj1ZNGend7Jo7/cEiczFkc1vB4z2JpFGZreV2EdquyEzC2STFJtfimyx8QlLngEuR1cxH+lWEcFX+mvBa/eqktIRwEAH6VazFLPNsnHZqsI66TVoArQuUUGFAzr8MT8GZ9V6qpZa5D0jA/4eGi6Kq0smUgRExnqIbSMLWqDf/Pk2YT3MpHTu9VE3Dn9blgB6KsVIkWnB98Y2n/6DrZDcF94Ndu0Ka4U/RZwdV5O5KcO+lU2ZiIOYTYZ6Ie0d+tApxYxJ+YmxaDoCyRNe6crw/yzR5SflT8ddi/E2BM+l+nwVDiKZ/714fmrBxFKWuqLiQNHV19o1cZ8Ubun+ZtHQAASAACwDQABwQAAAAHwACqxBLL//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////0dQABIAArASAAHBAADhAPAAG+EA8AAVvU1W////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////RwEAEH1s3BdtHdF1ln55B24wdACF/ggcRtPmB4IUB6cZJ+m32I4R48ZkdhAFBulgWcsv0wZwH0o1yi3i4qm3rJ98AUKdB9PsNyG9gURV0bTw4myAj6g5Dgodfv6w9bsbOxsGUWkvgAJ3rrR010BvZbIa6CMRCQRjxkCfRF77ansRJZT0JzhtYeSS/ZJob8Rr2jrng3W2rkmHtE+rdqlPiHxmwkRZvYGhBxwiJO2L6f+l/cABsfs09rA+A0pHAQAREZay3TBUIAfMWhApE+LaPgeyOYtaPFONA9aC0h4QrFkaLZfb86678MK+zLgqDBsDoj50eZHMVcczRjs4sYlv7RG8RIWKb5lB9Kn/8+CkxiiA11cHH1yzLX2SKCmhsak/+P/zYQ1EDvEj33bl9e3Jd62cTI+Qw99KrsWnUMN8hFNeXzoGHA3aec+Li4NFboF8sa6lCPR6Csxsvxw8DJaWCnER5Z0p+nKhXavF/eNHQ0DX47ohycc87UcBABKsYHCHXXe3vK1cFYDWO6rhwM6hxCdJ+/X+VB1akQejL6iBMdUPuadUqBnbprwJM0dWpSSn9uuZZeqe46iZOGIJUo69d8x+ZSvPcBH/dK1Y0LJnoWdgWH51SQg7eYqcwjQW3BOy7ZF02Hn1EhTuhsN7ms8zv3WIeEBDBq0T3Idl+Tmw9iJU9skVYiwygHG2+0XwrLa6y+uiQPwMzrnEr1kuf24XoAqrJTZQiVH3aQF4d94yDreWu2KPRwEAE2FsynHZaUcBXEFbeX0nSxZ7sRcRjJvc7RYOny6N8QFwKDVO7jpRWWYM55kuepBOyZ+7BFYeG+FU1kR+ZfmqyDNkD4D1IPwNh6u9JQxDymfN/aMcQC3WxdvCKquPsAut6dugpGkOFtIe+W3ayc4V/J978P+h1EDFMbFjxRPuXht0K2dBQZCJ0ybISUDqWzhPuep8CdxSU4MvMVfdXh7FLl/BqKJUTT+vM+Pz3XnqCQQmH5TjQ4CK55VHAQAUEtgfkBwIYgtwHkhjmtLw7HNTeJeMfTjATEKcyuKzItSeYxHBmGzQ/+G2otpPCOkVAXJ9mfx7LxrW4joZ0ttTRQJ/wqMUK1IN349LiJoo8y/+FwN4jPNDwIleJG697riqnmLOweFW8spHKLBfnHcyC1pG6EIxFpTqUQ0KHqXD/KXIHKioJNAOVwQ1Gfloxebo/Tdtd00dpHP3gcsAOnV75APCYOjVIlwm2X6ViDeZw6Btdb/Br/+yokcBABU3+eOESLlneGbR5SLiL8wPkoRaZ5X7xFlMTMvsv9yHk26bVdmsubSdbYS1Hy64n0+NnL7C1aLD7aJxOudMjVW5goZbfO2KxBQkCD4HFA284wbaB5vOL7mRilCn6YEs1kiwf22+fBLNUmXDb2p353wrD/ygTDhlki66USvUmd/ZAs9uzAddegEzy7Xn00YysWTu/hegYyZtWFC+X5dhLubWJ7n96y5wjrP7PAOXoQQtFUH9j/rBiP/7RwEAFnL/wYKYuj80mPGtimSbF/E9K7XwjwBz8yHZubmVMTCmwkZBM4h0FR1thnUGiSjqjJT6SfunWCZ/dZDQplrzS00UKcUP399SyM+nNG1br8Za0ZYwWch8nyLHYXSRuxdnrfUUespsOQo1cWSLGf0pV2HIcHoiAAEKwPU6irB5BSoFvB1qKVjgEk+QwAEYAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAABHAQA3pAD/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////AwAAAwAAAwAAAwAAAwAAAwBbwUdBABgAAAHgAACAwAoxAAmBIREAB/SBAAAAAQnwAAAAAUGaJGxDv/6plgAAAwAAAwAAAwAAAwAAAwAAAwAAAwAKCKB0AIhy1ftwLNISWucTFC7xeBcaIzP3oZjZo8uT9hqZVstWGnrPz+vjaA5FuCO+K2w7/o39LygDO7aL+0zSrN90LW7r133x8+f+PEKk8d7pd2fj4RYuMOXOYunzFzRX/4IvR1XsK5WJYwVkOca3yfo7DTvUBP9rgSiTRwEAGQD6CFK1PBC4qYCa+coLVnX+jgODNrau5YJXIekDI4+wUNV+5T5HE4e2t5EGAjn77+kC1Vghmvx8KqPnylVUvsaTofheggxHsPuxn1zQt6nA59UglrRUMn8b4pmrvfqTBSqU949+AcNAI6M/eAqz6r0RG5KNeBhx8R2f0x2kujwHU3pc3rlPb6ZrFM/2HiG97eEIezrvWFG7YAAAAwAAAwAE1KRo1VfbdZQ/tOpNGxFmTcQoFidyD2tHAQAapTTIErUKA2Rc9uIzGJu+oW0uNOxRyl6oJNUNJp5L9TIshNS1CmUKgdCaE3LkLwdE8iUkUnIGfWLiWpWmjzsINYC8dnDaSptB53yJkBu0SsR00oo1PZ0pl4ZzoXGSYQJTPaVCbj6FNqm5wcnUqKTB/rgHdPdnDj0K8asLABeo/n3XCXrDorI+LYSD1FBgmV9O7RZdjfL0NnXOQkiq/ZGirwVV0cUF1aHtZx1yHlAAZKuuu7TqB13CAUcBADuRAP///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////yj/IrOvAEoXDNGy+nrxWN0l8cmuqWYaUJpuM9XgAAADAAADAAKmR0EAPAcQAACJHH4AAAAB4AAAgMAKMQAJSOERAAkQoQAAAAEJ8AAAAAFBnkJ4hf8AAAMAAAMAAAMAAAMAAAMAAAMAAAMAC/BmhyuvLmkCgKTgACEXfOVvHRHdpBEEmTTz9pIZCa2FD0CXukzDCakOHekTpJQSdsfd7a/jjM1/5lBtKCAGQ6zOCSQ6DeKtyw+CugDuuglGipwmvQW+FIDjnZ6HRd0uaSOGy6VB3h9MI1o4nqaCqVwwIgubYZFHAQA9XgD////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////WcZrO6BEiqf8pCxYwlz2mkdUzY/ipM/TIHS4m5xQAAAMAAAMAAA5sVm90p14dlvWgBgY7XQ9KVOJKLtaMAN5KiffVQtNuzW5DfL+RewZpAAADAAADAAAQMUdBAB4AAAHgAACAgAUhAAkswQAAAAEJ8AAAAAEBnmF0Qr8AAAMAAAMAAAMAAAMAAAMAAAMAAAMAABJfBjP2+4+W7ZybyT130+Ma4WSqICfd/dS4YtjrLlmh5VBlfrtwJqdN1PBTYDkwGOOONqZQeFN6lLGJoDzvuh3kv1aDBLqug+JhvrSeu5ebnvcrtQzb2REwJL3h9mvtkr0WfDu4AAADAAADAAs32Y4C/6Ns79oCGj6oqLltY3T4I0/QRwEAP5wA//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////8BeoWLRnKQmVgO/RBoBfcK85AAAAMAAAMACFhHQQAwBxAAAJcsfgAAAAHgAACAwAoxAAllAREACUjhAAAAAQnwAAAAAQGeY2pCvwAAAwAAAwAAAwAAAwAAAwAAAwAAAwAAEmDKfLGXsvBBQPNYXlEd6WueJ4deApfcHESlG+7V6u0AiWQqJvNZYM+3Js3Lj9Ldc9yYIHqruVwfMtCYGlX3wMavI/DrhMuJw+RreIF8SKsJD8CMccAAAAMAAAMACrFZOBgEqaP/8EyWsAHV6CgcAgfyox/roEcBADGuAP//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////AAADAAADAHTBR0EAEgAAAeAAAIDACjEACfGhEQAJZQEAAAABCfAAAAABQZpoSahBaJlMCHf//qmWAAADAAADAAADAAADAAADAAADAAADAAALf8A2bry6lUyIAQGNFfVK2Cd7h4qDqmqpvmXfkfTwo2Ab79AHhajxJ4MPWIgAAA84xLRIx7I2CrWjWe96OvgkzgS9mtvhuxdzAgpuIOJI3DEY9mviDDZz8XSAAAADAAADAB7AZkj9AAHHGvk+Pzlku8UkWa5HAQAzogD//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////6HjAkbF/gsWuvw4QAAAAwAAAwAccUdBADQHEAAApTx+AAAAAeAAAIDACjEACblhEQAJgSEAAAABCfAAAAABQZ6GRREsL/8AAAMAAAMAAAMAAAMAAAMAAAMAAAMAAA3URJB/3lMHSmOd0GYZnfpoR80WdqxlyHzPX+V81VUMeXIGrRgq5agd+ACdjoGI036yQ/rmpGw0CmMBrKwpI+nwFo3SP0s1rI2yHBZaiPJjSUgw33rBkxXcq55kfLf2sAAAAwAAAwACBWolidWDnIeQAAADRwEANbEA//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////8AAAMADulHQQA2NAD///////////////////////////////////////////////////////////////////8AAAHgAACAgAUhAAmdQQAAAAEJ8AAAAAEBnqV0Qr8AAAMAAAMAAAMAAAMAAAMAAAMAAAMAABJXNihCnx11JUosH2hBE53O/YN+GPHqcnJiQBIf3maTAAj5iRt+7GYUKBAU9iCXTiouCjGYgAAAAwAAAwA9p4HQBg2cAAADAAADAADGgUdBADc4EAAAs0x+AP////////////////////////////////////////////////////////////////8AAAHgAACAwAoxAAnVgREACblhAAAAAQnwAAAAAQGep2pCvwAAAwAAAwAAAwAAAwAAAwAAAwAAAwAAAwBR6/L83y+ZevtMZ0FW4lp8qV7fVXQAhLAWlS6mDxvpaSUgChorvgTMXtxJEIAAAAMAAAMACqFCAAADAAADAAADAAz4R0EAOCsA////////////////////////////////////////////////////////AAAB4AAAgMAKMQALYiERAAnVgQAAAAEJ8AAAAAFBmqxJqEFsmUwId//+qZYAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAApQTq0hABLvkcWCYrAaRRPNDrECJGlF/11BYvG9+JJ9Y86nxnmQzPxtAAe1UgOsXAAADAAADAAADAAADAAADAAADAAADA/JHQQA5JhAAAMFcfgD/////////////////////////////////////////AAAB4AAAgMAKMQALKeERAAnxoQAAAAEJ8AAAAAFBnspFFSwv/wAAAwAAAwAAAwAAAwAAAwAAAwAAAwAADdRFmvrVE0KXDOGwWddlwYa1foib7tXZKmkua6R4APb4b8+tXwdSNNqgf2IVNwGTohgQAcMvp6SiQxpiQym4AAADAAADAANUNUAAAAMAAAMAAAMBN0dBADo8AP//////////////////////////////////////////////////////////////////////////////AAAB4AAAgIAFIQALDcEAAAABCfAAAAABAZ7pdEK/AAADAAADAAADAAADAAADAAADAAADAAADAFHTAfujIUaaLSuklb9y0/so9AEtQAqkAxOviALQZ5jNt/iOkABrCOZ4md0iUnFwAAADAAADAALwckAAAAMAAAMAAATcR0EAO0IQAADPbH4A//////////////////////////////////////////////////////////////////////////////8AAAHgAACAwAoxAAtGAREACynhAAAAAQnwAAAAAQGe62pCvwAAAwAAAwAAAwAAAwAAAwAAAwAAAwAAAwBR6/L83y+WryR9gmVKPGbIhJpkgAFgHCej3gB6rAHPgHHAAAADAAADAAAYIV0AAAMAAAMAAAMABnxHQQA8UQD//////////////////////////////////////////////////////////////////////////////////////////////////////////wAAAeAAAIDACjEAC9KhEQALRgEAAAABCfAAAAABQZrwSahBbJlMCG///qeEAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAAZ8UdBAD00EAAA3Xx+AP///////////////////////////////////////////////////////////wAAAeAAAIDACjEAC5phEQALYiEAAAABCfAAAAABQZ8ORRUsL/8AAAMAAAMAAAMAAAMAAAMAAAMAAAMAAA3URZr61RNClwzhI2ZXdRHYLZWc1yTgKRhTIXBNABHQKIIyYNyc+AaEn1jhATEAAAMAAAMAAAMAckkIAAADAAADAAADAEbBR0EAPkYA////////////////////////////////////////////////////////////////////////////////////////////AAAB4AAAgIAFIQALfkEAAAABCfAAAAABAZ8tdEK/AAADAAADAAADAAADAAADAAADAAADAAADAFHTAfujIUAYRtY0f/43cIs2OjxACR2hMR1QBGYX+34JGAAAAwAAAwAAAwKEJ6AAAAMAAAMAAAMA3oFHQQA/QhAAAOuMfgD//////////////////////////////////////////////////////////////////////////////wAAAeAAAIDACjEAC7aBEQALmmEAAAABCfAAAAABAZ8vakK/AAADAAADAAADAAADAAADAAADAAADAAADAFHr8vzfL5avJH2CZUo8ZsiEmmSAAWAcJ6PeAHqsAc+AccAAAAMAAAMAABghXQAAAwAAAwAAAwAGfEdBADBRAP//////////////////////////////////////////////////////////////////////////////////////////////////////////AAAB4AAAgMAKMQANQyERAAu2gQAAAAEJ8AAAAAFBmzRJqEFsmUwIZ//+nhAAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAGVAR0EAMTQQAAD5nH4A////////////////////////////////////////////////////////////AAAB4AAAgMAKMQANCuERAAvSoQAAAAEJ8AAAAAFBn1JFFSwv/wAAAwAAAwAAAwAAAwAAAwAAAwAAAwAADdRFmvrVE0KXDOEjZld1EdgtlZzXJOApGFMhcE0AEdAogjJg3Jz4BoSfWOEBMQAAAwAAAwAAAwBySQgAAAMAAAMAAAMARsFHQQAyRgD///////////////////////////////////////////////////////////////////////////////////////////8AAAHgAACAgAUhAAvuwQAAAAEJ8AAAAAEBn3F0Qr8AAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAUdMB+6MhQBhG1jR//jdwizY6PEAJHaExHVAEZhf7fgkYAAADAAADAAADAoQnoAAAAwAAAwAAAwDegEdBADNCEAABB6x+AP//////////////////////////////////////////////////////////////////////////////AAAB4AAAgMAKMQANJwERAA0K4QAAAAEJ8AAAAAEBn3NqQr8AAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAUevy/N8vlq8kfYJlSjxmyISaZIABYBwno94AeqwBz4BxwAAAAwAAAwAAGCFdAAADAAADAAADAAZ8R0EANFIA////////////////////////////////////////////////////////////////////////////////////////////////////////////AAAB4AAAgMAKMQANs6ERAA0nAQAAAAEJ8AAAAAFBm3hJqEFsmUwIV//+OEAAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAYtHQQA1NBAAARW8fgD///////////////////////////////////////////////////////////8AAAHgAACAwAoxAA17YREADUMhAAAAAQnwAAAAAUGflkUVLC//AAADAAADAAADAAADAAADAAADAAADAAAN1EWa+tUTQpcM4SNmV3UR2C2VnNck4CkYUyFwTQAR0CiCMmDcnPgGhJ9Y4QExAAADAAADAAADAHJJCAAAAwAAAwAAAwBGwEdBADZGAP///////////////////////////////////////////////////////////////////////////////////////////wAAAeAAAICABSEADV9BAAAAAQnwAAAAAQGftXRCvwAAAwAAAwAAAwAAAwAAAwAAAwAAAwAAAwBR0wH7oyFAGEbWNH/+N3CLNjo8QAkdoTEdUARmF/t+CRgAAAMAAAMAAAMChCegAAADAAADAAADAN6BR0EAN0IQAAEjzH4A//////////////////////////////////////////////////////////////////////////////8AAAHgAACAwAoxAA2XgREADXthAAAAAQnwAAAAAQGft2pCvwAAAwAAAwAAAwAAAwAAAwAAAwAAAwAAAwBR6/L83y+WryR9gmVKPGbIhJpkgAFgHCej3gB6rAHPgHHAAAADAAADAAAYIV0AAAMAAAMAAAMABn0=" - webUI["html/img/logout.png"] = "iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAAAXNSR0IArs4c6QAAAAlwSFlzAAAsSwAALEsBpT2WqQAABCRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IlhNUCBDb3JlIDUuNC4wIj4KICAgPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIgogICAgICAgICAgICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgICAgICAgICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyI+CiAgICAgICAgIDx0aWZmOlJlc29sdXRpb25Vbml0PjI8L3RpZmY6UmVzb2x1dGlvblVuaXQ+CiAgICAgICAgIDx0aWZmOkNvbXByZXNzaW9uPjU8L3RpZmY6Q29tcHJlc3Npb24+CiAgICAgICAgIDx0aWZmOlhSZXNvbHV0aW9uPjI4ODwvdGlmZjpYUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6T3JpZW50YXRpb24+MTwvdGlmZjpPcmllbnRhdGlvbj4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+Mjg4PC90aWZmOllSZXNvbHV0aW9uPgogICAgICAgICA8ZXhpZjpQaXhlbFhEaW1lbnNpb24+NTA8L2V4aWY6UGl4ZWxYRGltZW5zaW9uPgogICAgICAgICA8ZXhpZjpDb2xvclNwYWNlPjE8L2V4aWY6Q29sb3JTcGFjZT4KICAgICAgICAgPGV4aWY6UGl4ZWxZRGltZW5zaW9uPjUwPC9leGlmOlBpeGVsWURpbWVuc2lvbj4KICAgICAgICAgPGRjOnN1YmplY3Q+CiAgICAgICAgICAgIDxyZGY6QmFnLz4KICAgICAgICAgPC9kYzpzdWJqZWN0PgogICAgICAgICA8eG1wOk1vZGlmeURhdGU+MjAxOC0xMC0xM1QxMToxMDoxODwveG1wOk1vZGlmeURhdGU+CiAgICAgICAgIDx4bXA6Q3JlYXRvclRvb2w+UGl4ZWxtYXRvciAzLjM8L3htcDpDcmVhdG9yVG9vbD4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgIDwvcmRmOlJERj4KPC94OnhtcG1ldGE+Cg27QeEAAANQSURBVGgF7Zk9aBRBGIZzSRSN8YdoCpEkghCCqK1o4g9IsBCCNmIniCAiWAhqI8G02qiIoqCCWggSEcFKEFPYpVAU8QdFUyiKRpRokBjP55OdZDLZvZnZ7N3Ngh887M7sN/O9797t7c5eTc3/8D8DxWKxGS5Ai//oAEYgvB4OwleQaAtAlp8ERG+Bp6Jei/wYQfRy6NfE67vhG0FtA/TBqK7c2A/bCGJ3wpAhOq4ZphGUroEHcYoT+sIygsgmOAu/EwQndYdhBHV1sB8+Jym19Lf6/faVIRuBG+GRRajtcPWMoKwFbtgUOh6vvBGEzYFj8MNRpEtaZY2gaAe8cVHmmXOc/K3QXIZv/+SUFFgJ96AS8ZwiZ6Ab6iZVzGCPiRbCKRiDasQHip6EdD/PDKyFvfAJQgg5kVfB/VoieT0MQojxE1G9UG/7otWS0A7pPkrb7DM/Ppcp+mAAM/bFGEmL4RL8gVDjI8JWOZ0bEjvhSahO0CXXsLMZWZYegREIMV4jaoHTJyNJJLfC7RCdoOm6sxGVyKAeeBegoU6l0XmLiXlwAqp1o4w7j3d1AwW9YdtnNrnQzkOXLddyfAPHv8Ey6ABpd8N88In2QqHwymfARC5mCrAH0i6qGDr9jk3fbNgFz8A1DkwIS7tDpSVwGdLcexIfPZhPHpf2wS+wRX9a/dPGUakLzBdwNgGJRlQBJtgMw5aJ3qr8TLYUmwVHwXXxZTUiwphvHYxDUnzPxIA5CdXa4E5SVa3fyUhkRtYqpSKbNYxpJiq+ncpDJar7GGlknvcl5mqM05BZH4Xl3iOLpLh7j7OR6MScSzAykplg20QIWA0PDSG+RuTdQVy8sNXP9DgK5N4jK9AvkRpfI4sYF/c2836mQl0nQ4zce66AfZFkTMqYl2DGaSMt/CYOHpsuaPco5bLUzUuMGkLHaQ+ovjwZUZrVdpAHRnnw/Bd5MrJCiY62t4x2+E2uBfkfRg95TdSkK8/LJ7JWF83+Nb5Ww0Zf+E3OviwXVMgT8dLwVRsKEd0A+uP8biMlH01MHAYVF/Oh2lCJenkDqpbUN9nPyzU91QnCRbyEPEXn1sQhxMv7tG1T7cW3rK/r44eVtxfxm6gwBh38zJqPJuUtXu3Z/wLwuBaBLgMkKwAAAABJRU5ErkJggg==" - webUI["html/img/logo_w_600x200.png"] = "iVBORw0KGgoAAAANSUhEUgAAAlgAAADICAYAAAA0n5+2AAAAAXNSR0IArs4c6QAAAAlwSFlzAAAuIwAALiMBeKU/dgAABCZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IlhNUCBDb3JlIDUuNC4wIj4KICAgPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIgogICAgICAgICAgICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgICAgICAgICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyI+CiAgICAgICAgIDx0aWZmOlJlc29sdXRpb25Vbml0PjI8L3RpZmY6UmVzb2x1dGlvblVuaXQ+CiAgICAgICAgIDx0aWZmOkNvbXByZXNzaW9uPjU8L3RpZmY6Q29tcHJlc3Npb24+CiAgICAgICAgIDx0aWZmOlhSZXNvbHV0aW9uPjMwMDwvdGlmZjpYUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6T3JpZW50YXRpb24+MTwvdGlmZjpPcmllbnRhdGlvbj4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+MzAwPC90aWZmOllSZXNvbHV0aW9uPgogICAgICAgICA8ZXhpZjpQaXhlbFhEaW1lbnNpb24+NjAwPC9leGlmOlBpeGVsWERpbWVuc2lvbj4KICAgICAgICAgPGV4aWY6Q29sb3JTcGFjZT4xPC9leGlmOkNvbG9yU3BhY2U+CiAgICAgICAgIDxleGlmOlBpeGVsWURpbWVuc2lvbj4yMDA8L2V4aWY6UGl4ZWxZRGltZW5zaW9uPgogICAg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" + webUI["html/js/classes_ts.js"] = "dmFyIF9fZXh0ZW5kcyA9ICh0aGlzICYmIHRoaXMuX19leHRlbmRzKSB8fCAoZnVuY3Rpb24gKCkgew0KICAgIHZhciBleHRlbmRTdGF0aWNzID0gZnVuY3Rpb24gKGQsIGIpIHsNCiAgICAgICAgZXh0ZW5kU3RhdGljcyA9IE9iamVjdC5zZXRQcm90b3R5cGVPZiB8fA0KICAgICAgICAgICAgKHsgX19wcm90b19fOiBbXSB9IGluc3RhbmNlb2YgQXJyYXkgJiYgZnVuY3Rpb24gKGQsIGIpIHsgZC5fX3Byb3RvX18gPSBiOyB9KSB8fA0KICAgICAgICAgICAgZnVuY3Rpb24gKGQsIGIpIHsgZm9yICh2YXIgcCBpbiBiKSBpZiAoYi5oYXNPd25Qcm9wZXJ0eShwKSkgZFtwXSA9IGJbcF07IH07DQogICAgICAgIHJldHVybiBleHRlbmRTdGF0aWNzKGQsIGIpOw0KICAgIH07DQogICAgcmV0dXJuIGZ1bmN0aW9uIChkLCBiKSB7DQogICAgICAgIGV4dGVuZFN0YXRpY3MoZCwgYik7DQogICAgICAgIGZ1bmN0aW9uIF9fKCkgeyB0aGlzLmNvbnN0cnVjdG9yID0gZDsgfQ0KICAgICAgICBkLnByb3RvdHlwZSA9IGIgPT09IG51bGwgPyBPYmplY3QuY3JlYXRlKGIpIDogKF9fLnByb3RvdHlwZSA9IGIucHJvdG90eXBlLCBuZXcgX18oKSk7DQogICAgfTsNCn0pKCk7DQp2YXIgTWFpbk1lbnUgPSAvKiogQGNsYXNzICovIChmdW5jdGlvbiAoKSB7DQogICAgZnVuY3Rpb24gTWFpbk1lbnUoKSB7DQogICAgICAgIHRoaXMuRG9jdW1lbnRJRCA9ICJtYWluLW1lbnUiOw0KICAgICAgICB0aGlzLkhUTUxUYWcgPSAiTEkiOw0KICAgIH0NCiAgICBNYWluTWVudS5wcm90b3R5cGUuY3JlYXRlID0gZnVuY3Rpb24gKCkgew0KICAgICAgICBjb25zb2xlLmxvZyh0aGlzLkRvY3VtZW50SUQpOw0KICAgIH07DQogICAgcmV0dXJuIE1haW5NZW51Ow0KfSgpKTsNCnZhciBNYWluTWVudUl0ZW0gPSAvKiogQGNsYXNzICovIChmdW5jdGlvbiAoX3N1cGVyKSB7DQogICAgX19leHRlbmRzKE1haW5NZW51SXRlbSwgX3N1cGVyKTsNCiAgICBmdW5jdGlvbiBNYWluTWVudUl0ZW0oKSB7DQogICAgICAgIHJldHVybiBfc3VwZXIgIT09IG51bGwgJiYgX3N1cGVyLmFwcGx5KHRoaXMsIGFyZ3VtZW50cykgfHwgdGhpczsNCiAgICB9DQogICAgTWFpbk1lbnVJdGVtLnByb3RvdHlwZS5jcmVhdGUyID0gZnVuY3Rpb24gKCkgew0KICAgICAgICB2YXIgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQodGhpcy5IVE1MVGFnKTsNCiAgICAgICAgZWxlbWVudC5pbm5lclRleHQgPSB0aGlzLlZhbHVlOw0KICAgICAgICBjb25zb2xlLmxvZyhlbGVtZW50KTsNCiAgICB9Ow0KICAgIHJldHVybiBNYWluTWVudUl0ZW07DQp9KE1haW5NZW51KSk7DQpmdW5jdGlvbiBwYWdlUmVhZHkoKSB7DQogICAgdmFyIGl0ZW0gPSBuZXcgTWFpbk1lbnVJdGVtKCk7DQogICAgaXRlbS5WYWx1ZSA9ICJUZXN0IjsNCiAgICBpdGVtLmNyZWF0ZTIoKTsNCn0NCg==" webUI["html/js/configuration_ts.js"] = "Y2xhc3MgV2l6YXJkQ2F0ZWdvcnkgew0KICAgIGNvbnN0cnVjdG9yKCkgew0KICAgICAgICB0aGlzLkRvY3VtZW50SUQgPSAiY29udGVudCI7DQogICAgfQ0KICAgIGNyZWF0ZUNhdGVnb3J5SGVhZGxpbmUodmFsdWUpIHsNCiAgICAgICAgdmFyIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJINCIpOw0KICAgICAgICBlbGVtZW50LmlubmVySFRNTCA9IHZhbHVlOw0KICAgICAgICByZXR1cm4gZWxlbWVudDsNCiAgICB9DQp9DQpjbGFzcyBXaXphcmRJdGVtIGV4dGVuZHMgV2l6YXJkQ2F0ZWdvcnkgew0KICAgIGNvbnN0cnVjdG9yKGtleSwgaGVhZGxpbmUpIHsNCiAgICAgICAgc3VwZXIoKTsNCiAgICAgICAgdGhpcy5oZWFkbGluZSA9IGhlYWRsaW5lOw0KICAgICAgICB0aGlzLmtleSA9IGtleTsNCiAgICB9DQogICAgY3JlYXRlV2l6YXJkKCkgew0KICAgICAgICB2YXIgaGVhZGxpbmUgPSB0aGlzLmNyZWF0ZUNhdGVnb3J5SGVhZGxpbmUodGhpcy5oZWFkbGluZSk7DQogICAgICAgIHZhciBrZXkgPSB0aGlzLmtleTsNCiAgICAgICAgdmFyIGNvbnRlbnQgPSBuZXcgUG9wdXBDb250ZW50KCk7DQogICAgICAgIHZhciBkZXNjcmlwdGlvbjsNCiAgICAgICAgdmFyIGRvYyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHRoaXMuRG9jdW1lbnRJRCk7DQogICAgICAgIGRvYy5pbm5lckhUTUwgPSAiIjsNCiAgICAgICAgZG9jLmFwcGVuZENoaWxkKGhlYWRsaW5lKTsNCiAgICAgICAgc3dpdGNoIChrZXkpIHsNCiAgICAgICAgICAgIGNhc2UgInR1bmVyIjoNCiAgICAgICAgICAgICAgICB2YXIgdGV4dCA9IG5ldyBBcnJheSgpOw0KICAgICAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBuZXcgQXJyYXkoKTsNCiAgICAgICAgICAgICAgICBmb3IgKHZhciBpID0gMTsgaSA8PSAxMDA7IGkrKykgew0KICAgICAgICAgICAgICAgICAgICB0ZXh0LnB1c2goaSk7DQogICAgICAgICAgICAgICAgICAgIHZhbHVlcy5wdXNoKGkpOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCAiMSIsIGtleSk7DQogICAgICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgiY2xhc3MiLCAid2l6YXJkIik7DQogICAgICAgICAgICAgICAgc2VsZWN0LmlkID0ga2V5Ow0KICAgICAgICAgICAgICAgIGRvYy5hcHBlbmRDaGlsZChzZWxlY3QpOw0KICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uID0gInt7LndpemFyZC50dW5lci5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImVwZ1NvdXJjZSI6DQogICAgICAgICAgICAgICAgdmFyIHRleHQgPSBbIlBNUyIsICJYRVBHIl07DQogICAgICAgICAgICAgICAgdmFyIHZhbHVlcyA9IFsiUE1TIiwgIlhFUEciXTsNCiAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCAiWEVQRyIsIGtleSk7DQogICAgICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgiY2xhc3MiLCAid2l6YXJkIik7DQogICAgICAgICAgICAgICAgc2VsZWN0LmlkID0ga2V5Ow0KICAgICAgICAgICAgICAgIGRvYy5hcHBlbmRDaGlsZChzZWxlY3QpOw0KICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uID0gInt7LndpemFyZC5lcGdTb3VyY2UuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJtM3UiOg0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBrZXksICIiKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LndpemFyZC5tM3UucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgiY2xhc3MiLCAid2l6YXJkIik7DQogICAgICAgICAgICAgICAgaW5wdXQuaWQgPSBrZXk7DQogICAgICAgICAgICAgICAgZG9jLmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbiA9ICJ7ey53aXphcmQubTN1LmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAieG1sdHYiOg0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBrZXksICIiKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LndpemFyZC54bWx0di5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJjbGFzcyIsICJ3aXphcmQiKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5pZCA9IGtleTsNCiAgICAgICAgICAgICAgICBkb2MuYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uID0gInt7LndpemFyZC54bWx0di5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICAgICAgY29uc29sZS5sb2coa2V5KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgfQ0KICAgICAgICB2YXIgcHJlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiUFJFIik7DQogICAgICAgIHByZS5pbm5lckhUTUwgPSBkZXNjcmlwdGlvbjsNCiAgICAgICAgZG9jLmFwcGVuZENoaWxkKHByZSk7DQogICAgICAgIGNvbnNvbGUubG9nKGhlYWRsaW5lLCBrZXkpOw0KICAgIH0NCn0NCmZ1bmN0aW9uIHJlYWR5Rm9yQ29uZmlndXJhdGlvbih3aXphcmQpIHsNCiAgICB2YXIgc2VydmVyID0gbmV3IFNlcnZlcigiZ2V0U2VydmVyQ29uZmlnIik7DQogICAgc2VydmVyLnJlcXVlc3QobmV3IE9iamVjdCgpKTsNCiAgICBzaG93RWxlbWVudCgibG9hZGluZyIsIGZhbHNlKTsNCiAgICBjb25maWd1cmF0aW9uV2l6YXJkW3dpemFyZF0uY3JlYXRlV2l6YXJkKCk7DQp9DQpmdW5jdGlvbiBzYXZlV2l6YXJkKCkgew0KICAgIHZhciBjbWQgPSAic2F2ZVdpemFyZCI7DQogICAgdmFyIGRpdiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb250ZW50Iik7DQogICAgdmFyIGNvbmZpZyA9IGRpdi5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCJ3aXphcmQiKTsNCiAgICB2YXIgd2l6YXJkID0gbmV3IE9iamVjdCgpOw0KICAgIGZvciAodmFyIGkgPSAwOyBpIDwgY29uZmlnLmxlbmd0aDsgaSsrKSB7DQogICAgICAgIHZhciBuYW1lOw0KICAgICAgICB2YXIgdmFsdWU7DQogICAgICAgIHN3aXRjaCAoY29uZmlnW2ldLnRhZ05hbWUpIHsNCiAgICAgICAgICAgIGNhc2UgIlNFTEVDVCI6DQogICAgICAgICAgICAgICAgbmFtZSA9IGNvbmZpZ1tpXS5uYW1lOw0KICAgICAgICAgICAgICAgIHZhbHVlID0gY29uZmlnW2ldLnZhbHVlOw0KICAgICAgICAgICAgICAgIC8vIElmIHRoZSB2YWx1ZSBpcyBhIG51bWJlciwgc3RvcmUgaXQgYXMgYSBudW1iZXINCiAgICAgICAgICAgICAgICBpZiAoaXNOYU4odmFsdWUpKSB7DQogICAgICAgICAgICAgICAgICAgIHdpemFyZFtuYW1lXSA9IHZhbHVlOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICAgICAgd2l6YXJkW25hbWVdID0gcGFyc2VJbnQodmFsdWUpOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgIklOUFVUIjoNCiAgICAgICAgICAgICAgICBzd2l0Y2ggKGNvbmZpZ1tpXS50eXBlKSB7DQogICAgICAgICAgICAgICAgICAgIGNhc2UgInRleHQiOg0KICAgICAgICAgICAgICAgICAgICAgICAgbmFtZSA9IGNvbmZpZ1tpXS5uYW1lOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSBjb25maWdbaV0udmFsdWU7DQogICAgICAgICAgICAgICAgICAgICAgICBpZiAodmFsdWUubGVuZ3RoID09IDApIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgbXNnID0gbmFtZS50b1VwcGVyQ2FzZSgpICsgIjogIiArICJ7ey5hbGVydC5taXNzaW5nSW5wdXR9fSI7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgYWxlcnQobXNnKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICB3aXphcmRbbmFtZV0gPSB2YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICAgICAgLy8gY29kZS4uLg0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICB9DQogICAgfQ0KICAgIHZhciBkYXRhID0gbmV3IE9iamVjdCgpOw0KICAgIGRhdGFbIndpemFyZCJdID0gd2l6YXJkOw0KICAgIHZhciBzZXJ2ZXIgPSBuZXcgU2VydmVyKGNtZCk7DQogICAgc2VydmVyLnJlcXVlc3QoZGF0YSk7DQogICAgY29uc29sZS5sb2coZGF0YSk7DQp9DQovLyBXaXphcmQNCnZhciBjb25maWd1cmF0aW9uV2l6YXJkID0gbmV3IEFycmF5KCk7DQpjb25maWd1cmF0aW9uV2l6YXJkLnB1c2gobmV3IFdpemFyZEl0ZW0oInR1bmVyIiwgInt7LndpemFyZC50dW5lci50aXRsZX19IikpOw0KY29uZmlndXJhdGlvbldpemFyZC5wdXNoKG5ldyBXaXphcmRJdGVtKCJlcGdTb3VyY2UiLCAie3sud2l6YXJkLmVwZ1NvdXJjZS50aXRsZX19IikpOw0KY29uZmlndXJhdGlvbldpemFyZC5wdXNoKG5ldyBXaXphcmRJdGVtKCJtM3UiLCAie3sud2l6YXJkLm0zdS50aXRsZX19IikpOw0KY29uZmlndXJhdGlvbldpemFyZC5wdXNoKG5ldyBXaXphcmRJdGVtKCJ4bWx0diIsICJ7ey53aXphcmQueG1sdHYudGl0bGV9fSIpKTsNCg==" - webUI["html/img/BC-QR.jpg"] = "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" - webUI["html/img/m3u.png"] = "iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAAAXNSR0IArs4c6QAAAAlwSFlzAAAsSwAALEsBpT2WqQAABCRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IlhNUCBDb3JlIDUuNC4wIj4KICAgPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIgogICAgICAgICAgICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgICAgICAgICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyI+CiAgICAgICAgIDx0aWZmOlJlc29sdXRpb25Vbml0PjI8L3RpZmY6UmVzb2x1dGlvblVuaXQ+CiAgICAgICAgIDx0aWZmOkNvbXByZXNzaW9uPjU8L3RpZmY6Q29tcHJlc3Npb24+CiAgICAgICAgIDx0aWZmOlhSZXNvbHV0aW9uPjI4ODwvdGlmZjpYUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6T3JpZW50YXRpb24+MTwvdGlmZjpPcmllbnRhdGlvbj4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+Mjg4PC90aWZmOllSZXNvbHV0aW9uPgogICAgICAgICA8ZXhpZjpQaXhlbFhEaW1lbnNpb24+NTA8L2V4aWY6UGl4ZWxYRGltZW5zaW9uPgogICAgICAgICA8ZXhpZjpDb2xvclNwYWNlPjE8L2V4aWY6Q29sb3JTcGFjZT4KICAgICAgICAgPGV4aWY6UGl4ZWxZRGltZW5zaW9uPjUwPC9leGlmOlBpeGVsWURpbWVuc2lvbj4KICAgICAgICAgPGRjOnN1YmplY3Q+CiAgICAgICAgICAgIDxyZGY6QmFnLz4KICAgICAgICAgPC9kYzpzdWJqZWN0PgogICAgICAgICA8eG1wOk1vZGlmeURhdGU+MjAxOC0wNy0yOFQxOTowNzozMTwveG1wOk1vZGlmeURhdGU+CiAgICAgICAgIDx4bXA6Q3JlYXRvclRvb2w+UGl4ZWxtYXRvciAzLjM8L3htcDpDcmVhdG9yVG9vbD4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgIDwvcmRmOlJERj4KPC94OnhtcG1ldGE+CumjVbcAAAGWSURBVGgF7VoxTgJRFGTFaGKBFnbEcABjb0fiBego7D2ABYmn8ARKRWFNQ6gx4QRQGWJJoY2VhXGdl7Dkh7Dsx3ns3yXvJ5P97L6d92bmhwYqlcWK43gK5L2enP51NP8F7pN721wPnOITZx9qG6HxI8QIZO+9XCHeL+VQKKm8QMyxb6+iCpH528AQYs58xIQWknV8mhDxCjEXWWJCC8maT55fAmOIudpUXAYhMn8dGEHMTZqYsgiR+U+BAcTcrhNTJiEy/xHQg5jOqpjD1RsBP3+id8u3P8TUoij6SuoLIwRDfWOofjLYtteyHa1UfcvvcUT1jqpGauVuHnyAdragjv/TAkley3uhj9Y5ZhDQa2+Olgmhz4IygSWibChNZ4nQFioTWCLKhtJ0lghtoTKBJaJsKE1nidAWKhNYIsqG0nSWCG2hMoElomwoTWeJ0BYqE1giyobSdJYIbaEygSWibChNZ4nQFioTWCLKhtJ0biJzmi1/guXMrpDn/OegO3bXMuAH0TtgAvwARV3y57Q34AGoJkL+AErKZ9cqbH7AAAAAAElFTkSuQmCC" - webUI["html/img/x_white.png"] = "iVBORw0KGgoAAAANSUhEUgAAAQAAAAEACAIAAADTED8xAAAAAXNSR0IArs4c6QAAAAlwSFlzAAAWJQAAFiUBSVIk8AAAA6ppVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IlhNUCBDb3JlIDUuNC4wIj4KICAgPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIgogICAgICAgICAgICB4bWxuczp0aWZmPSJodHRwOi8vbnMuYWRvYmUuY29tL3RpZmYvMS4wLyIKICAgICAgICAgICAgeG1sbnM6ZXhpZj0iaHR0cDovL25zLmFkb2JlLmNvbS9leGlmLzEuMC8iPgogICAgICAgICA8eG1wOk1vZGlmeURhdGU+MjAxOC0xMS0xNVQxNzoxMToyNTwveG1wOk1vZGlmeURhdGU+CiAgICAgICAgIDx4bXA6Q3JlYXRvclRvb2w+UGl4ZWxtYXRvciAzLjM8L3htcDpDcmVhdG9yVG9vbD4KICAgICAgICAgPHRpZmY6T3JpZW50YXRpb24+MTwvdGlmZjpPcmllbnRhdGlvbj4KICAgICAgICAgPHRpZmY6Q29tcHJlc3Npb24+NTwvdGlmZjpDb21wcmVzc2lvbj4KICAgICAgICAgPHRpZmY6UmVzb2x1dGlvblVuaXQ+MjwvdGlmZjpSZXNvbHV0aW9uVW5pdD4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+MTQ0PC90aWZmOllSZXNvbHV0aW9uPgogICAgICAgICA8dGlmZjpYUmVzb2x1dGlvbj4xNDQ8L3RpZmY6WFJlc29sdXRpb24+CiAgICAgICAgIDxleGlmOlBpeGVsWERpbWVuc2lvbj4yNTY8L2V4aWY6UGl4ZWxYRGltZW5zaW9uPgogICAgICAgICA8ZXhpZjpDb2xvclNwYWNlPjE8L2V4aWY6Q29sb3JTcGFj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" + webUI["html/js/logs_ts.js"] = "Y2xhc3MgTG9nIHsNCiAgICBjcmVhdGVMb2coZW50cnkpIHsNCiAgICAgICAgdmFyIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJQUkUiKTsNCiAgICAgICAgaWYgKGVudHJ5LmluZGV4T2YoIldBUk5JTkciKSAhPSAtMSkgew0KICAgICAgICAgICAgZWxlbWVudC5jbGFzc05hbWUgPSAid2FybmluZ01zZyI7DQogICAgICAgIH0NCiAgICAgICAgaWYgKGVudHJ5LmluZGV4T2YoIkVSUk9SIikgIT0gLTEpIHsNCiAgICAgICAgICAgIGVsZW1lbnQuY2xhc3NOYW1lID0gImVycm9yTXNnIjsNCiAgICAgICAgfQ0KICAgICAgICBpZiAoZW50cnkuaW5kZXhPZigiREVCVUciKSAhPSAtMSkgew0KICAgICAgICAgICAgZWxlbWVudC5jbGFzc05hbWUgPSAiZGVidWdNc2ciOw0KICAgICAgICB9DQogICAgICAgIGVsZW1lbnQuaW5uZXJIVE1MID0gZW50cnk7DQogICAgICAgIHJldHVybiBlbGVtZW50Ow0KICAgIH0NCn0NCmZ1bmN0aW9uIHNob3dMb2dzKGJvdHRvbSkgew0KICAgIHZhciBsb2cgPSBuZXcgTG9nKCk7DQogICAgdmFyIGxvZ3MgPSBTRVJWRVJbImxvZyJdWyJsb2ciXTsNCiAgICB2YXIgZGl2ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnRlbnRfbG9nIik7DQogICAgZGl2LmlubmVySFRNTCA9ICIiOw0KICAgIHZhciBrZXlzID0gZ2V0T2JqS2V5cyhsb2dzKTsNCiAgICBrZXlzLmZvckVhY2gobG9nSUQgPT4gew0KICAgICAgICB2YXIgZW50cnkgPSBsb2cuY3JlYXRlTG9nKGxvZ3NbbG9nSURdKTsNCiAgICAgICAgZGl2LmFwcGVuZChlbnRyeSk7DQogICAgfSk7DQogICAgc2V0VGltZW91dChmdW5jdGlvbiAoKSB7DQogICAgICAgIGlmIChib3R0b20gPT0gdHJ1ZSkgew0KICAgICAgICAgICAgdmFyIHdyYXBwZXIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYm94LXdyYXBwZXIiKTsNCiAgICAgICAgICAgIHdyYXBwZXIuc2Nyb2xsVG9wID0gd3JhcHBlci5zY3JvbGxIZWlnaHQ7DQogICAgICAgIH0NCiAgICB9LCAxMCk7DQp9DQpmdW5jdGlvbiByZXNldExvZ3MoKSB7DQogICAgdmFyIGNtZCA9ICJyZXNldExvZ3MiOw0KICAgIHZhciBkYXRhID0gbmV3IE9iamVjdCgpOw0KICAgIHZhciBzZXJ2ZXIgPSBuZXcgU2VydmVyKGNtZCk7DQogICAgc2VydmVyLnJlcXVlc3QoZGF0YSk7DQp9DQo=" + webUI["html/js/menu_ts.js"] = "Y2xhc3MgTWFpbk1lbnUgew0KICAgIGNvbnN0cnVjdG9yKCkgew0KICAgICAgICB0aGlzLkRvY3VtZW50SUQgPSAibWFpbi1tZW51IjsNCiAgICAgICAgdGhpcy5IVE1MVGFnID0gIkxJIjsNCiAgICAgICAgdGhpcy5JbWFnZVBhdGggPSAiaW1nLyI7DQogICAgfQ0KICAgIGNyZWF0ZUlNRyhzcmMpIHsNCiAgICAgICAgbGV0IGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJJTUciKTsNCiAgICAgICAgZWxlbWVudC5zZXRBdHRyaWJ1dGUoInNyYyIsIHRoaXMuSW1hZ2VQYXRoICsgc3JjKTsNCiAgICAgICAgcmV0dXJuIGVsZW1lbnQ7DQogICAgfQ0KICAgIGNyZWF0ZVZhbHVlKHZhbHVlKSB7DQogICAgICAgIGxldCBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiUCIpOw0KICAgICAgICBlbGVtZW50LmlubmVySFRNTCA9IHZhbHVlOw0KICAgICAgICByZXR1cm4gZWxlbWVudDsNCiAgICB9DQp9DQpjbGFzcyBNYWluTWVudUl0ZW0gZXh0ZW5kcyBNYWluTWVudSB7DQogICAgY29uc3RydWN0b3IobWVudUtleSwgdmFsdWUsIGltYWdlLCBoZWFkbGluZSkgew0KICAgICAgICBzdXBlcigpOw0KICAgICAgICB0aGlzLm1lbnVLZXkgPSBtZW51S2V5Ow0KICAgICAgICB0aGlzLnZhbHVlID0gdmFsdWU7DQogICAgICAgIHRoaXMuaW1nU3JjID0gaW1hZ2U7DQogICAgICAgIHRoaXMuaGVhZGxpbmUgPSBoZWFkbGluZTsNCiAgICB9DQogICAgY3JlYXRlSXRlbSgpIHsNCiAgICAgICAgbGV0IGl0ZW0gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJMSSIpOw0KICAgICAgICBpdGVtLnNldEF0dHJpYnV0ZSgib25jbGljayIsICJqYXZhc2NyaXB0OiBvcGVuVGhpc01lbnUodGhpcykiKTsNCiAgICAgICAgaXRlbS5zZXRBdHRyaWJ1dGUoImlkIiwgdGhpcy5pZCk7DQogICAgICAgIGxldCBpbWcgPSB0aGlzLmNyZWF0ZUlNRyh0aGlzLmltZ1NyYyk7DQogICAgICAgIGxldCB2YWx1ZSA9IHRoaXMuY3JlYXRlVmFsdWUodGhpcy52YWx1ZSk7DQogICAgICAgIGl0ZW0uYXBwZW5kQ2hpbGQoaW1nKTsNCiAgICAgICAgaXRlbS5hcHBlbmRDaGlsZCh2YWx1ZSk7DQogICAgICAgIGxldCBkb2MgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCh0aGlzLkRvY3VtZW50SUQpOw0KICAgICAgICBkb2MuYXBwZW5kQ2hpbGQoaXRlbSk7DQogICAgICAgIHN3aXRjaCAodGhpcy5tZW51S2V5KSB7DQogICAgICAgICAgICBjYXNlICJwbGF5bGlzdCI6DQogICAgICAgICAgICAgICAgdGhpcy50YWJsZUhlYWRlciA9IFsie3sucGxheWxpc3QudGFibGUucGxheWxpc3R9fSIsICJ7ey5wbGF5bGlzdC50YWJsZS50dW5lcn19IiwgInt7LnBsYXlsaXN0LnRhYmxlLmxhc3RVcGRhdGV9fSIsICJ7ey5wbGF5bGlzdC50YWJsZS5hdmFpbGFiaWxpdHl9fSAlIiwgInt7LnBsYXlsaXN0LnRhYmxlLnR5cGV9fSIsICJ7ey5wbGF5bGlzdC50YWJsZS5zdHJlYW1zfX0iLCAie3sucGxheWxpc3QudGFibGUuZ3JvdXBUaXRsZX19ICUiLCAie3sucGxheWxpc3QudGFibGUudHZnSUR9fSAlIiwgInt7LnBsYXlsaXN0LnRhYmxlLnVuaXF1ZUlEfX0gJSJdOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAieG1sdHYiOg0KICAgICAgICAgICAgICAgIHRoaXMudGFibGVIZWFkZXIgPSBbInt7LnhtbHR2LnRhYmxlLmd1aWRlfX0iLCAie3sueG1sdHYudGFibGUubGFzdFVwZGF0ZX19IiwgInt7LnhtbHR2LnRhYmxlLmF2YWlsYWJpbGl0eX19ICUiLCAie3sueG1sdHYudGFibGUuY2hhbm5lbHN9fSIsICJ7ey54bWx0di50YWJsZS5wcm9ncmFtc319Il07DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJmaWx0ZXIiOg0KICAgICAgICAgICAgICAgIHRoaXMudGFibGVIZWFkZXIgPSBbInt7LmZpbHRlci50YWJsZS5uYW1lfX0iLCAie3suZmlsdGVyLnRhYmxlLnR5cGV9fSIsICJ7ey5maWx0ZXIudGFibGUuZmlsdGVyfX0iXTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInVzZXJzIjoNCiAgICAgICAgICAgICAgICB0aGlzLnRhYmxlSGVhZGVyID0gWyJ7ey51c2Vycy50YWJsZS51c2VybmFtZX19IiwgInt7LnVzZXJzLnRhYmxlLnBhc3N3b3JkfX0iLCAie3sudXNlcnMudGFibGUud2VifX0iLCAie3sudXNlcnMudGFibGUucG1zfX0iLCAie3sudXNlcnMudGFibGUubTN1fX0iLCAie3sudXNlcnMudGFibGUueG1sfX0iLCAie3sudXNlcnMudGFibGUuYXBpfX0iXTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgIm1hcHBpbmciOg0KICAgICAgICAgICAgICAgIHRoaXMudGFibGVIZWFkZXIgPSBbIkJVTEsiLCAie3subWFwcGluZy50YWJsZS5jaE5vfX0iLCAie3subWFwcGluZy50YWJsZS5sb2dvfX0iLCAie3subWFwcGluZy50YWJsZS5jaGFubmVsTmFtZX19IiwgInt7Lm1hcHBpbmcudGFibGUucGxheWxpc3R9fSIsICJ7ey5tYXBwaW5nLnRhYmxlLmdyb3VwVGl0bGV9fSIsICJ7ey5tYXBwaW5nLnRhYmxlLnhtbHR2RmlsZX19IiwgInt7Lm1hcHBpbmcudGFibGUueG1sdHZJRH19IiwgInt7Lm1hcHBpbmcudGFibGUudGltZXNoaWZ0fX0iXTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgfQ0KICAgICAgICAvL2NvbnNvbGUubG9nKHRoaXMubWVudUtleSwgdGhpcy50YWJsZUhlYWRlcik7DQogICAgfQ0KfQ0KY2xhc3MgQ29udGVudCB7DQogICAgY29uc3RydWN0b3IoKSB7DQogICAgICAgIHRoaXMuRG9jdW1lbnRJRCA9ICJjb250ZW50IjsNCiAgICAgICAgdGhpcy5UYWJsZUlEID0gImNvbnRlbnRfdGFibGUiOw0KICAgICAgICB0aGlzLmhlYWRlckNsYXNzID0gImNvbnRlbnRfdGFibGVfaGVhZGVyIjsNCiAgICAgICAgdGhpcy5pbnRlcmFjdGlvbklEID0gImNvbnRlbnQtaW50ZXJhY3Rpb24iOw0KICAgIH0NCiAgICBjcmVhdGVIZWFkbGluZSh2YWx1ZSkgew0KICAgICAgICBsZXQgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIkgzIik7DQogICAgICAgIGVsZW1lbnQuaW5uZXJIVE1MID0gdmFsdWU7DQogICAgICAgIHJldHVybiBlbGVtZW50Ow0KICAgIH0NCiAgICBjcmVhdGVIUigpIHsNCiAgICAgICAgcmV0dXJuIGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIkhSIik7DQogICAgfQ0KICAgIGNyZWF0ZUludGVyYWN0aW9uKCkgew0KICAgICAgICBsZXQgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIkRJViIpOw0KICAgICAgICBlbGVtZW50LnNldEF0dHJpYnV0ZSgiaWQiLCB0aGlzLmludGVyYWN0aW9uSUQpOw0KICAgICAgICByZXR1cm4gZWxlbWVudDsNCiAgICB9DQogICAgY3JlYXRlRElWKCkgew0KICAgICAgICBsZXQgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIkRJViIpOw0KICAgICAgICBlbGVtZW50LmlkID0gdGhpcy5EaXZJRDsNCiAgICAgICAgcmV0dXJuIGVsZW1lbnQ7DQogICAgfQ0KICAgIGNyZWF0ZVRBQkxFKCkgew0KICAgICAgICBsZXQgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlRBQkxFIik7DQogICAgICAgIGVsZW1lbnQuaWQgPSB0aGlzLlRhYmxlSUQ7DQogICAgICAgIHJldHVybiBlbGVtZW50Ow0KICAgIH0NCiAgICBjcmVhdGVUYWJsZVJvdygpIHsNCiAgICAgICAgbGV0IGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJUUiIpOw0KICAgICAgICBlbGVtZW50LmNsYXNzTmFtZSA9IHRoaXMuaGVhZGVyQ2xhc3M7DQogICAgICAgIHJldHVybiBlbGVtZW50Ow0KICAgIH0NCiAgICBjcmVhdGVUYWJsZUNvbnRlbnQobWVudUtleSkgew0KICAgICAgICBsZXQgZGF0YSA9IHt9Ow0KICAgICAgICBsZXQgcm93cyA9IFtdOw0KICAgICAgICBsZXQgZmlsZVR5cGVzID0gW107DQogICAgICAgIHN3aXRjaCAobWVudUtleSkgew0KICAgICAgICAgICAgY2FzZSAicGxheWxpc3QiOg0KICAgICAgICAgICAgICAgIGZpbGVUeXBlcyA9IFsibTN1IiwgImhkaHIiXTsNCiAgICAgICAgICAgICAgICBmaWxlVHlwZXMuZm9yRWFjaChmaWxlVHlwZSA9PiB7DQogICAgICAgICAgICAgICAgICAgIGRhdGEgPSBTRVJWRVJbInNldHRpbmdzIl1bImZpbGVzIl1bZmlsZVR5cGVdOw0KICAgICAgICAgICAgICAgICAgICB2YXIga2V5cyA9IGdldE9iaktleXMoZGF0YSk7DQogICAgICAgICAgICAgICAgICAgIGtleXMuZm9yRWFjaChrZXkgPT4gew0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVFIiKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmlkID0ga2V5Ow0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgiJyArIGZpbGVUeXBlICsgJyIsIHRoaXMpJyk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsibmFtZSJdOw0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChTRVJWRVJbInNldHRpbmdzIl1bImJ1ZmZlciJdICE9ICItIikgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bInR1bmVyIl07DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gIi0iOw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bImxhc3QudXBkYXRlIl07DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsicHJvdmlkZXIuYXZhaWxhYmlsaXR5Il07DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsidHlwZSJdLnRvVXBwZXJDYXNlKCk7DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsiY29tcGF0aWJpbGl0eSJdWyJzdHJlYW1zIl07DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsiY29tcGF0aWJpbGl0eSJdWyJncm91cC50aXRsZSJdOw0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bImNvbXBhdGliaWxpdHkiXVsidHZnLmlkIl07DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsiY29tcGF0aWJpbGl0eSJdWyJzdHJlYW0uaWQiXTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHJvd3MucHVzaCh0cik7DQogICAgICAgICAgICAgICAgICAgIH0pOw0KICAgICAgICAgICAgICAgIH0pOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiZmlsdGVyIjoNCiAgICAgICAgICAgICAgICBkZWxldGUgU0VSVkVSWyJzZXR0aW5ncyJdWyJmaWx0ZXIiXVstMV07DQogICAgICAgICAgICAgICAgZGF0YSA9IFNFUlZFUlsic2V0dGluZ3MiXVsiZmlsdGVyIl07DQogICAgICAgICAgICAgICAgdmFyIGtleXMgPSBnZXRPYmpLZXlzKGRhdGEpOw0KICAgICAgICAgICAgICAgIGtleXMuZm9yRWFjaChrZXkgPT4gew0KICAgICAgICAgICAgICAgICAgICB2YXIgdHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJUUiIpOw0KICAgICAgICAgICAgICAgICAgICB0ci5pZCA9IGtleTsNCiAgICAgICAgICAgICAgICAgICAgdHIuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgiJyArIGRhdGFba2V5XVsidHlwZSJdICsgJyIsIHRoaXMpJyk7DQogICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJuYW1lIl07DQogICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgIHN3aXRjaCAoZGF0YVtrZXldWyJ0eXBlIl0pIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgImN1c3RvbS1maWx0ZXIiOg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSAie3suZmlsdGVyLmN1c3RvbX19IjsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgImdyb3VwLXRpdGxlIjoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gInt7LmZpbHRlci5ncm91cH19IjsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsiZmlsdGVyIl07DQogICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgcm93cy5wdXNoKHRyKTsNCiAgICAgICAgICAgICAgICB9KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInhtbHR2IjoNCiAgICAgICAgICAgICAgICBmaWxlVHlwZXMgPSBuZXcgQXJyYXkoInhtbHR2Iik7DQogICAgICAgICAgICAgICAgZmlsZVR5cGVzLmZvckVhY2goZmlsZVR5cGUgPT4gew0KICAgICAgICAgICAgICAgICAgICBkYXRhID0gU0VSVkVSWyJzZXR0aW5ncyJdWyJmaWxlcyJdW2ZpbGVUeXBlXTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGtleXMgPSBnZXRPYmpLZXlzKGRhdGEpOw0KICAgICAgICAgICAgICAgICAgICBrZXlzLmZvckVhY2goa2V5ID0+IHsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciB0ciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlRSIik7DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5pZCA9IGtleTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoIicgKyBmaWxlVHlwZSArICciLCB0aGlzKScpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bIm5hbWUiXTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJsYXN0LnVwZGF0ZSJdOw0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bInByb3ZpZGVyLmF2YWlsYWJpbGl0eSJdOw0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bImNvbXBhdGliaWxpdHkiXVsieG1sdHYuY2hhbm5lbHMiXTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJjb21wYXRpYmlsaXR5Il1bInhtbHR2LnByb2dyYW1zIl07DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICByb3dzLnB1c2godHIpOw0KICAgICAgICAgICAgICAgICAgICB9KTsNCiAgICAgICAgICAgICAgICB9KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInVzZXJzIjoNCiAgICAgICAgICAgICAgICBmaWxlVHlwZXMgPSBuZXcgQXJyYXkoInVzZXJzIik7DQogICAgICAgICAgICAgICAgZmlsZVR5cGVzLmZvckVhY2goZmlsZVR5cGUgPT4gew0KICAgICAgICAgICAgICAgICAgICBkYXRhID0gU0VSVkVSW2ZpbGVUeXBlXTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGtleXMgPSBnZXRPYmpLZXlzKGRhdGEpOw0KICAgICAgICAgICAgICAgICAgICBrZXlzLmZvckVhY2goa2V5ID0+IHsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciB0ciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlRSIik7DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5pZCA9IGtleTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoIicgKyBmaWxlVHlwZSArICciLCB0aGlzKScpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bImRhdGEiXVsidXNlcm5hbWUiXTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gIioqKioqKiI7DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGRhdGFba2V5XVsiZGF0YSJdWyJhdXRoZW50aWNhdGlvbi53ZWIiXSA9PSB0cnVlKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9ICLinJMiOw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9ICItIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgICAgICBpZiAoZGF0YVtrZXldWyJkYXRhIl1bImF1dGhlbnRpY2F0aW9uLnBtcyJdID09IHRydWUpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gIuKckyI7DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gIi0iOw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChkYXRhW2tleV1bImRhdGEiXVsiYXV0aGVudGljYXRpb24ubTN1Il0gPT0gdHJ1ZSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSAi4pyTIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSAiLSI7DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGRhdGFba2V5XVsiZGF0YSJdWyJhdXRoZW50aWNhdGlvbi54bWwiXSA9PSB0cnVlKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9ICLinJMiOw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9ICItIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgICAgICBpZiAoZGF0YVtrZXldWyJkYXRhIl1bImF1dGhlbnRpY2F0aW9uLmFwaSJdID09IHRydWUpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gIuKckyI7DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gIi0iOw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgcm93cy5wdXNoKHRyKTsNCiAgICAgICAgICAgICAgICAgICAgfSk7DQogICAgICAgICAgICAgICAgfSk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJtYXBwaW5nIjoNCiAgICAgICAgICAgICAgICBCVUxLX0VESVQgPSBmYWxzZTsNCiAgICAgICAgICAgICAgICBjcmVhdGVTZWFyY2hPYmooKTsNCiAgICAgICAgICAgICAgICBjaGVja1VuZG8oImVwZ01hcHBpbmciKTsNCiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZygiTUFQUElORyIpOw0KICAgICAgICAgICAgICAgIGRhdGEgPSBTRVJWRVJbInhlcGciXVsiZXBnTWFwcGluZyJdOw0KICAgICAgICAgICAgICAgIHZhciBrZXlzID0gZ2V0T2JqS2V5cyhkYXRhKTsNCiAgICAgICAgICAgICAgICBrZXlzLmZvckVhY2goa2V5ID0+IHsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVFIiKTsNCiAgICAgICAgICAgICAgICAgICAgdHIuaWQgPSBrZXk7DQogICAgICAgICAgICAgICAgICAgIC8vdHIuc2V0QXR0cmlidXRlKCdvbmNvbnRleHRtZW51JywgJ2phdmFzY3JpcHQ6IHJpZ2h0Q2xpY2sodGhpcyknKQ0KICAgICAgICAgICAgICAgICAgICBzd2l0Y2ggKGRhdGFba2V5XVsieC1hY3RpdmUiXSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSB0cnVlOg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyLmNsYXNzTmFtZSA9ICJhY3RpdmVFUEciOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSBmYWxzZToNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ci5jbGFzc05hbWUgPSAibm90QWN0aXZlRVBHIjsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAvLyBCdWxrDQogICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIkJVTEsiOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZmFsc2U7DQogICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgLy8gQ2hhbm5lbCBudW1iZXINCiAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiSU5QVVRDSEFOTkVMIjsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsieC1jaGFubmVsSUQiXTsNCiAgICAgICAgICAgICAgICAgICAgLy90ZC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogY2hhbmdlQ2hhbm5lbE51bWJlcigiJyArIGtleSArICciLCB0aGlzKScpDQogICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgLy8gTG9nbw0KICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJJTUciOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmltYWdlVVJMID0gZGF0YVtrZXldWyJ0dmctbG9nbyJdOw0KICAgICAgICAgICAgICAgICAgICB2YXIgdGQgPSBjZWxsLmNyZWF0ZUNlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgdGQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgibWFwcGluZyIsIHRoaXMpJyk7DQogICAgICAgICAgICAgICAgICAgIHRkLmlkID0ga2V5Ow0KICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZCh0ZCk7DQogICAgICAgICAgICAgICAgICAgIC8vIENoYW5uZWwgbmFtZQ0KICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jbGFzc05hbWUgPSBkYXRhW2tleV1bIngtY2F0ZWdvcnkiXTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsieC1uYW1lIl07DQogICAgICAgICAgICAgICAgICAgIHZhciB0ZCA9IGNlbGwuY3JlYXRlQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICB0ZC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJtYXBwaW5nIiwgdGhpcyknKTsNCiAgICAgICAgICAgICAgICAgICAgdGQuaWQgPSBrZXk7DQogICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKHRkKTsNCiAgICAgICAgICAgICAgICAgICAgLy8gUGxheWxpc3QNCiAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgIC8vY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsiX2ZpbGUubTN1Lm5hbWUiXSANCiAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGdldFZhbHVlRnJvbVByb3ZpZGVyRmlsZShkYXRhW2tleV1bIl9maWxlLm0zdS5pZCJdLCAibTN1IiwgIm5hbWUiKTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHRkID0gY2VsbC5jcmVhdGVDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgIHRkLnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoIm1hcHBpbmciLCB0aGlzKScpOw0KICAgICAgICAgICAgICAgICAgICB0ZC5pZCA9IGtleTsNCiAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQodGQpOw0KICAgICAgICAgICAgICAgICAgICAvLyBHcm91cCAoZ3JvdXAtdGl0bGUpDQogICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJ4LWdyb3VwLXRpdGxlIl07DQogICAgICAgICAgICAgICAgICAgIHZhciB0ZCA9IGNlbGwuY3JlYXRlQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICB0ZC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJtYXBwaW5nIiwgdGhpcyknKTsNCiAgICAgICAgICAgICAgICAgICAgdGQuaWQgPSBrZXk7DQogICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKHRkKTsNCiAgICAgICAgICAgICAgICAgICAgLy8gWE1MVFYgZmlsZQ0KICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgaWYgKGRhdGFba2V5XVsieC14bWx0di1maWxlIl0gIT0gIi0iKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZ2V0VmFsdWVGcm9tUHJvdmlkZXJGaWxlKGRhdGFba2V5XVsieC14bWx0di1maWxlIl0sICJ4bWx0diIsICJuYW1lIik7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgZWxzZSB7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJ4LXhtbHR2LWZpbGUiXTsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICB2YXIgdGQgPSBjZWxsLmNyZWF0ZUNlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgdGQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgibWFwcGluZyIsIHRoaXMpJyk7DQogICAgICAgICAgICAgICAgICAgIHRkLmlkID0ga2V5Ow0KICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZCh0ZCk7DQogICAgICAgICAgICAgICAgICAgIC8vIFhNTFRWIENoYW5uZWwNCiAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgIC8vdmFyIHZhbHVlID0gc3RyLnN1YnN0cmluZygxLCA0KTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHZhbHVlID0gZGF0YVtrZXldWyJ4LW1hcHBpbmciXTsNCiAgICAgICAgICAgICAgICAgICAgaWYgKHZhbHVlLmxlbmd0aCA+IDIwKSB7DQogICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IGRhdGFba2V5XVsieC1tYXBwaW5nIl0uc3Vic3RyaW5nKDAsIDIwKSArICIuLi4iOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSB2YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHRkID0gY2VsbC5jcmVhdGVDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgIHRkLnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoIm1hcHBpbmciLCB0aGlzKScpOw0KICAgICAgICAgICAgICAgICAgICB0ZC5pZCA9IGtleTsNCiAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQodGQpOw0KICAgICAgICAgICAgICAgICAgICAvLyBUaW1lU2hpZnQNCiAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bIngtdGltZXNoaWZ0Il07DQogICAgICAgICAgICAgICAgICAgIHZhciB0ZCA9IGNlbGwuY3JlYXRlQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICB0ZC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJtYXBwaW5nIiwgdGhpcyknKTsNCiAgICAgICAgICAgICAgICAgICAgdGQuaWQgPSBrZXk7DQogICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKHRkKTsNCiAgICAgICAgICAgICAgICAgICAgcm93cy5wdXNoKHRyKTsNCiAgICAgICAgICAgICAgICB9KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInNldHRpbmdzIjoNCiAgICAgICAgICAgICAgICBhbGVydCgpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZygiVGFibGUgY29udGVudCAobWVudUtleSk6IiwgbWVudUtleSk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIH0NCiAgICAgICAgcmV0dXJuIHJvd3M7DQogICAgfQ0KfQ0KY2xhc3MgQ2VsbCB7DQogICAgY3JlYXRlQ2VsbCgpIHsNCiAgICAgICAgbGV0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgaWYgKHRoaXMuY2hpbGQgPT0gdHJ1ZSkgew0KICAgICAgICAgICAgdmFyIGVsZW1lbnQ7DQogICAgICAgICAgICBzd2l0Y2ggKHRoaXMuY2hpbGRUeXBlKSB7DQogICAgICAgICAgICAgICAgY2FzZSAiUCI6DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KHRoaXMuY2hpbGRUeXBlKTsNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC5pbm5lckhUTUwgPSB0aGlzLnZhbHVlOw0KICAgICAgICAgICAgICAgICAgICBlbGVtZW50LmNsYXNzTmFtZSA9IHRoaXMuY2xhc3NOYW1lOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBjYXNlICJJTlBVVCI6DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KHRoaXMuY2hpbGRUeXBlKTsNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC52YWx1ZSA9IHRoaXMudmFsdWU7DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQudHlwZSA9ICJ0ZXh0IjsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAiSU5QVVRDSEFOTkVMIjoNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIklOUFVUIik7DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZzY3JpcHQ6IGNoYW5nZUNoYW5uZWxOdW1iZXIodGhpcykiKTsNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC52YWx1ZSA9IHRoaXMudmFsdWU7DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQudHlwZSA9ICJ0ZXh0IjsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAiQlVMSyI6DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJJTlBVVCIpOw0KICAgICAgICAgICAgICAgICAgICBlbGVtZW50LmNoZWNrZWQgPSB0aGlzLnZhbHVlOw0KICAgICAgICAgICAgICAgICAgICBlbGVtZW50LnR5cGUgPSAiY2hlY2tib3giOw0KICAgICAgICAgICAgICAgICAgICBlbGVtZW50LmNsYXNzTmFtZSA9ICJidWxrIGhpZGVCdWxrIjsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAiQlVMS19IRUFEIjoNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIklOUFVUIik7DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQuY2hlY2tlZCA9IHRoaXMudmFsdWU7DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQudHlwZSA9ICJjaGVja2JveCI7DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQuY2xhc3NOYW1lID0gImJ1bGsgaGlkZUJ1bGsiOw0KICAgICAgICAgICAgICAgICAgICBlbGVtZW50LnNldEF0dHJpYnV0ZSgib25jbGljayIsICJqYXZhc2NyaXB0OiBzZWxlY3RBbGxDaGFubmVscygpIik7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgIklNRyI6DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KHRoaXMuY2hpbGRUeXBlKTsNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC5zZXRBdHRyaWJ1dGUoInNyYyIsIHRoaXMuaW1hZ2VVUkwpOw0KICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5pbWFnZVVSTCAhPSAiIikgew0KICAgICAgICAgICAgICAgICAgICAgICAgZWxlbWVudC5zZXRBdHRyaWJ1dGUoIm9uZXJyb3IiLCAiamF2YXNjcmlwdDogdGhpcy5vbmVycm9yPW51bGw7dGhpcy5zcmM9JyciKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIC8vb25lcnJvcj0idGhpcy5vbmVycm9yPW51bGw7dGhpcy5zcmM9J21pc3NpbmcuZ2lmJzsiDQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIHRkLmFwcGVuZENoaWxkKGVsZW1lbnQpOw0KICAgICAgICB9DQogICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgdGQuaW5uZXJIVE1MID0gdGhpcy52YWx1ZTsNCiAgICAgICAgfQ0KICAgICAgICBpZiAodGhpcy5vbmNsaWNrID09IHRydWUpIHsNCiAgICAgICAgICAgIHRkLnNldEF0dHJpYnV0ZSgib25jbGljayIsIHRoaXMub25jbGlja0Z1bmN0aW9uKTsNCiAgICAgICAgICAgIHRkLmNsYXNzTmFtZSA9ICJwb2ludGVyIjsNCiAgICAgICAgfQ0KICAgICAgICBpZiAodGhpcy50ZENsYXNzTmFtZSAhPSB1bmRlZmluZWQpIHsNCiAgICAgICAgICAgIHRkLmNsYXNzTmFtZSA9IHRoaXMudGRDbGFzc05hbWU7DQogICAgICAgIH0NCiAgICAgICAgcmV0dXJuIHRkOw0KICAgIH0NCn0NCmNsYXNzIFNob3dDb250ZW50IGV4dGVuZHMgQ29udGVudCB7DQogICAgY29uc3RydWN0b3IobWVudUlEKSB7DQogICAgICAgIHN1cGVyKCk7DQogICAgICAgIHRoaXMubWVudUlEID0gbWVudUlEOw0KICAgIH0NCiAgICBjcmVhdGVJbnB1dCh0eXBlLCBuYW1lLCB2YWx1ZSkgew0KICAgICAgICBsZXQgaW5wdXQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJJTlBVVCIpOw0KICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInR5cGUiLCB0eXBlKTsNCiAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJuYW1lIiwgbmFtZSk7DQogICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgidmFsdWUiLCB2YWx1ZSk7DQogICAgICAgIHJldHVybiBpbnB1dDsNCiAgICB9DQogICAgc2hvdygpIHsNCiAgICAgICAgQ09MVU1OX1RPX1NPUlQgPSAtMTsNCiAgICAgICAgLy8gRGVsZXRlIG9sZCBjb250ZW50DQogICAgICAgIGxldCBkb2MgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCh0aGlzLkRvY3VtZW50SUQpOw0KICAgICAgICBkb2MuaW5uZXJIVE1MID0gIiI7DQogICAgICAgIHNob3dQcmV2aWV3KGZhbHNlKTsNCiAgICAgICAgLy8gSGVhZGxpbmUNCiAgICAgICAgbGV0IGhlYWRsaW5lID0gbWVudUl0ZW1zW3RoaXMubWVudUlEXS5oZWFkbGluZTsNCiAgICAgICAgbGV0IG1lbnVLZXkgPSBtZW51SXRlbXNbdGhpcy5tZW51SURdLm1lbnVLZXk7DQogICAgICAgIGxldCBoID0gdGhpcy5jcmVhdGVIZWFkbGluZShoZWFkbGluZSk7DQogICAgICAgIGRvYy5hcHBlbmRDaGlsZChoKTsNCiAgICAgICAgbGV0IGhyID0gdGhpcy5jcmVhdGVIUigpOw0KICAgICAgICBkb2MuYXBwZW5kQ2hpbGQoaHIpOw0KICAgICAgICAvLyBJbnRlcmFjdGlvbg0KICAgICAgICBsZXQgZGl2ID0gdGhpcy5jcmVhdGVJbnRlcmFjdGlvbigpOw0KICAgICAgICBkb2MuYXBwZW5kQ2hpbGQoZGl2KTsNCiAgICAgICAgbGV0IGludGVyYWN0aW9uID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQodGhpcy5pbnRlcmFjdGlvbklEKTsNCiAgICAgICAgc3dpdGNoIChtZW51S2V5KSB7DQogICAgICAgICAgICBjYXNlICJwbGF5bGlzdCI6DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gdGhpcy5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgbWVudUtleSwgInt7LmJ1dHRvbi5uZXd9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgiaWQiLCAiLSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoInBsYXlsaXN0IiknKTsNCiAgICAgICAgICAgICAgICBpbnRlcmFjdGlvbi5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJmaWx0ZXIiOg0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IHRoaXMuY3JlYXRlSW5wdXQoImJ1dHRvbiIsIG1lbnVLZXksICJ7ey5idXR0b24ubmV3fX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoImlkIiwgLTEpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoImZpbHRlciIsIHRoaXMpJyk7DQogICAgICAgICAgICAgICAgaW50ZXJhY3Rpb24uYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAieG1sdHYiOg0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IHRoaXMuY3JlYXRlSW5wdXQoImJ1dHRvbiIsIG1lbnVLZXksICJ7ey5idXR0b24ubmV3fX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoImlkIiwgInhtbHR2Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgieG1sdHYiKScpOw0KICAgICAgICAgICAgICAgIGludGVyYWN0aW9uLmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInVzZXJzIjoNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSB0aGlzLmNyZWF0ZUlucHV0KCJidXR0b24iLCBtZW51S2V5LCAie3suYnV0dG9uLm5ld319Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJpZCIsICJ1c2VycyIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoInVzZXJzIiknKTsNCiAgICAgICAgICAgICAgICBpbnRlcmFjdGlvbi5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJtYXBwaW5nIjoNCiAgICAgICAgICAgICAgICBzaG93RWxlbWVudCgibG9hZGluZyIsIHRydWUpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IHRoaXMuY3JlYXRlSW5wdXQoImJ1dHRvbiIsIG1lbnVLZXksICJ7ey5idXR0b24uc2F2ZX19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoIm1hcHBpbmciLCAiIiwgIiIpJyk7DQogICAgICAgICAgICAgICAgaW50ZXJhY3Rpb24uYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IHRoaXMuY3JlYXRlSW5wdXQoImJ1dHRvbiIsIG1lbnVLZXksICJ7ey5idXR0b24uYnVsa0VkaXR9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBidWxrRWRpdCgpJyk7DQogICAgICAgICAgICAgICAgaW50ZXJhY3Rpb24uYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IHRoaXMuY3JlYXRlSW5wdXQoInNlYXJjaCIsICJzZWFyY2giLCAiIik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJpZCIsICJzZWFyY2hNYXBwaW5nIik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5idXR0b24uc2VhcmNofX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5jbGFzc05hbWUgPSAic2VhcmNoIjsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgJ2phdmFzY3JpcHQ6IHNlYXJjaEluTWFwcGluZygpJyk7DQogICAgICAgICAgICAgICAgaW50ZXJhY3Rpb24uYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAic2V0dGluZ3MiOg0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IHRoaXMuY3JlYXRlSW5wdXQoImJ1dHRvbiIsIG1lbnVLZXksICJ7ey5idXR0b24uc2F2ZX19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IHNhdmVTZXR0aW5ncygpOycpOw0KICAgICAgICAgICAgICAgIGludGVyYWN0aW9uLmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSB0aGlzLmNyZWF0ZUlucHV0KCJidXR0b24iLCBtZW51S2V5LCAie3suYnV0dG9uLmJhY2t1cH19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IGJhY2t1cCgpOycpOw0KICAgICAgICAgICAgICAgIGludGVyYWN0aW9uLmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSB0aGlzLmNyZWF0ZUlucHV0KCJidXR0b24iLCBtZW51S2V5LCAie3suYnV0dG9uLnJlc3RvcmV9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiByZXN0b3JlKCk7Jyk7DQogICAgICAgICAgICAgICAgaW50ZXJhY3Rpb24uYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIHZhciB3cmFwcGVyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiRElWIik7DQogICAgICAgICAgICAgICAgd3JhcHBlci5zZXRBdHRyaWJ1dGUoImlkIiwgImJveC13cmFwcGVyIik7DQogICAgICAgICAgICAgICAgZG9jLmFwcGVuZENoaWxkKHdyYXBwZXIpOw0KICAgICAgICAgICAgICAgIHRoaXMuRGl2SUQgPSAiY29udGVudF9zZXR0aW5ncyI7DQogICAgICAgICAgICAgICAgdmFyIHNldHRpbmdzID0gdGhpcy5jcmVhdGVESVYoKTsNCiAgICAgICAgICAgICAgICB3cmFwcGVyLmFwcGVuZENoaWxkKHNldHRpbmdzKTsNCiAgICAgICAgICAgICAgICBzaG93U2V0dGluZ3MoKTsNCiAgICAgICAgICAgICAgICByZXR1cm47DQogICAgICAgICAgICBjYXNlICJsb2ciOg0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IHRoaXMuY3JlYXRlSW5wdXQoImJ1dHRvbiIsIG1lbnVLZXksICJ7ey5idXR0b24ucmVzZXRMb2dzfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogcmVzZXRMb2dzKCk7Jyk7DQogICAgICAgICAgICAgICAgaW50ZXJhY3Rpb24uYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIHZhciB3cmFwcGVyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiRElWIik7DQogICAgICAgICAgICAgICAgd3JhcHBlci5zZXRBdHRyaWJ1dGUoImlkIiwgImJveC13cmFwcGVyIik7DQogICAgICAgICAgICAgICAgZG9jLmFwcGVuZENoaWxkKHdyYXBwZXIpOw0KICAgICAgICAgICAgICAgIHRoaXMuRGl2SUQgPSAiY29udGVudF9sb2ciOw0KICAgICAgICAgICAgICAgIHZhciBsb2dzID0gdGhpcy5jcmVhdGVESVYoKTsNCiAgICAgICAgICAgICAgICB3cmFwcGVyLmFwcGVuZENoaWxkKGxvZ3MpOw0KICAgICAgICAgICAgICAgIHNob3dMb2dzKHRydWUpOw0KICAgICAgICAgICAgICAgIHJldHVybjsNCiAgICAgICAgICAgIGNhc2UgImxvZ291dCI6DQogICAgICAgICAgICAgICAgbG9jYXRpb24ucmVsb2FkKCk7DQogICAgICAgICAgICAgICAgZG9jdW1lbnQuY29va2llID0gIlRva2VuPSA7IGV4cGlyZXMgPSBUaHUsIDAxIEphbiAxOTcwIDAwOjAwOjAwIEdNVCI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBkZWZhdWx0Og0KICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKCJTaG93IGNvbnRlbnQgKG1lbnVLZXkpOiIsIG1lbnVLZXkpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICB9DQogICAgICAgIC8vIENyZWF0ZSB0YWJsZSAoaWYgbmVlZGVkKQ0KICAgICAgICB2YXIgdGFibGVIZWFkZXIgPSBtZW51SXRlbXNbdGhpcy5tZW51SURdLnRhYmxlSGVhZGVyOw0KICAgICAgICBpZiAodGFibGVIZWFkZXIubGVuZ3RoID4gMCkgew0KICAgICAgICAgICAgdmFyIHdyYXBwZXIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJESVYiKTsNCiAgICAgICAgICAgIGRvYy5hcHBlbmRDaGlsZCh3cmFwcGVyKTsNCiAgICAgICAgICAgIHdyYXBwZXIuc2V0QXR0cmlidXRlKCJpZCIsICJib3gtd3JhcHBlciIpOw0KICAgICAgICAgICAgdmFyIHRhYmxlID0gdGhpcy5jcmVhdGVUQUJMRSgpOw0KICAgICAgICAgICAgd3JhcHBlci5hcHBlbmRDaGlsZCh0YWJsZSk7DQogICAgICAgICAgICB2YXIgaGVhZGVyID0gdGhpcy5jcmVhdGVUYWJsZVJvdygpOw0KICAgICAgICAgICAgdGFibGUuYXBwZW5kQ2hpbGQoaGVhZGVyKTsNCiAgICAgICAgICAgIC8vIFRhYmxlIGhlYWRlcg0KICAgICAgICAgICAgdGFibGVIZWFkZXIuZm9yRWFjaChlbGVtZW50ID0+IHsNCiAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGVsZW1lbnQ7DQogICAgICAgICAgICAgICAgaWYgKGVsZW1lbnQgPT0gIkJVTEsiKSB7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIkJVTEtfSEVBRCI7DQogICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBmYWxzZTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgaWYgKG1lbnVLZXkgPT0gIm1hcHBpbmciKSB7DQogICAgICAgICAgICAgICAgICAgIGlmIChlbGVtZW50ID09ICJ7ey5tYXBwaW5nLnRhYmxlLmNoTm99fSIpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwub25jbGljayA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLm9uY2xpY2tGdW5jdGlvbiA9ICJqYXZhc2NyaXB0OiBzb3J0VGFibGUoMSk7IjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudGRDbGFzc05hbWUgPSAic29ydFRoaXMiOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIGlmIChlbGVtZW50ID09ICJ7ey5tYXBwaW5nLnRhYmxlLmNoYW5uZWxOYW1lfX0iKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLm9uY2xpY2sgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5vbmNsaWNrRnVuY3Rpb24gPSAiamF2YXNjcmlwdDogc29ydFRhYmxlKDMpOyI7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgaWYgKGVsZW1lbnQgPT0gInt7Lm1hcHBpbmcudGFibGUucGxheWxpc3R9fSIpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwub25jbGljayA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLm9uY2xpY2tGdW5jdGlvbiA9ICJqYXZhc2NyaXB0OiBzb3J0VGFibGUoNCk7IjsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBpZiAoZWxlbWVudCA9PSAie3subWFwcGluZy50YWJsZS5ncm91cFRpdGxlfX0iKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLm9uY2xpY2sgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5vbmNsaWNrRnVuY3Rpb24gPSAiamF2YXNjcmlwdDogc29ydFRhYmxlKDUpOyI7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgaWYgKGVsZW1lbnQgPT0gInt7Lm1hcHBpbmcudGFibGUudGltZXNoaWZ0fX0iKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLm9uY2xpY2sgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5vbmNsaWNrRnVuY3Rpb24gPSAiamF2YXNjcmlwdDogc29ydFRhYmxlKDgpOyI7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgaGVhZGVyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgIH0pOw0KICAgICAgICAgICAgdGFibGUuYXBwZW5kQ2hpbGQoaGVhZGVyKTsNCiAgICAgICAgICAgIC8vIENvbnRlbnQgb2YgdGhlIHRhYmxlDQogICAgICAgICAgICB2YXIgcm93cyA9IHRoaXMuY3JlYXRlVGFibGVDb250ZW50KG1lbnVLZXkpOw0KICAgICAgICAgICAgcm93cy5mb3JFYWNoKHRyID0+IHsNCiAgICAgICAgICAgICAgICB0YWJsZS5hcHBlbmRDaGlsZCh0cik7DQogICAgICAgICAgICB9KTsNCiAgICAgICAgfQ0KICAgICAgICBzd2l0Y2ggKG1lbnVLZXkpIHsNCiAgICAgICAgICAgIGNhc2UgIm1hcHBpbmciOg0KICAgICAgICAgICAgICAgIHNvcnRUYWJsZSgxKTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImZpbHRlciI6DQogICAgICAgICAgICAgICAgc2hvd1ByZXZpZXcodHJ1ZSk7DQogICAgICAgICAgICAgICAgc29ydFRhYmxlKDApOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgICAgICBDT0xVTU5fVE9fU09SVCA9IC0xOw0KICAgICAgICAgICAgICAgIHNvcnRUYWJsZSgwKTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgfQ0KICAgICAgICBzaG93RWxlbWVudCgibG9hZGluZyIsIGZhbHNlKTsNCiAgICB9DQp9DQpmdW5jdGlvbiBQYWdlUmVhZHkoKSB7DQogICAgbGV0IHNlcnZlciA9IG5ldyBTZXJ2ZXIoImdldFNlcnZlckNvbmZpZyIpOw0KICAgIHNlcnZlci5yZXF1ZXN0KHt9KTsNCiAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigicmVzaXplIiwgZnVuY3Rpb24gKCkgew0KICAgICAgICBjYWxjdWxhdGVXcmFwcGVySGVpZ2h0KCk7DQogICAgfSwgdHJ1ZSk7DQogICAgc2V0SW50ZXJ2YWwoZnVuY3Rpb24gKCkgew0KICAgICAgICB1cGRhdGVMb2coKTsNCiAgICB9LCAxMDAwMCk7DQogICAgcmV0dXJuOw0KfQ0KZnVuY3Rpb24gY3JlYXRlTGF5b3V0KCkgew0KICAgIC8vIENsaWVudCBJbmZvDQogICAgbGV0IG9iaiA9IFNFUlZFUlsiY2xpZW50SW5mbyJdOw0KICAgIGxldCBrZXlzID0gZ2V0T2JqS2V5cyhvYmopOw0KICAgIGZvciAodmFyIGkgPSAwOyBpIDwga2V5cy5sZW5ndGg7IGkrKykgew0KICAgICAgICBpZiAoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoa2V5c1tpXSkpIHsNCiAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGtleXNbaV0pLmlubmVySFRNTCA9IG9ialtrZXlzW2ldXTsNCiAgICAgICAgfQ0KICAgIH0NCiAgICBpZiAoIWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJtYWluLW1lbnUiKSkgew0KICAgICAgICByZXR1cm47DQogICAgfQ0KICAgIC8vIENyZWF0ZSBtZW51DQogICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm1haW4tbWVudSIpLmlubmVySFRNTCA9ICIiOw0KICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbWVudUl0ZW1zLmxlbmd0aDsgaSsrKSB7DQogICAgICAgIG1lbnVJdGVtc1tpXS5pZCA9IGk7DQogICAgICAgIHN3aXRjaCAobWVudUl0ZW1zW2ldWyJtZW51S2V5Il0pIHsNCiAgICAgICAgICAgIGNhc2UgInVzZXJzIjoNCiAgICAgICAgICAgIGNhc2UgImxvZ291dCI6DQogICAgICAgICAgICAgICAgaWYgKFNFUlZFUlsic2V0dGluZ3MiXVsiYXV0aGVudGljYXRpb24ud2ViIl0gPT0gdHJ1ZSkgew0KICAgICAgICAgICAgICAgICAgICBtZW51SXRlbXNbaV0uY3JlYXRlSXRlbSgpOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgIm1hcHBpbmciOg0KICAgICAgICAgICAgY2FzZSAieG1sdHYiOg0KICAgICAgICAgICAgICAgIGlmIChTRVJWRVJbImNsaWVudEluZm8iXVsiZXBnU291cmNlIl0gPT0gIlhFUEciKSB7DQogICAgICAgICAgICAgICAgICAgIG1lbnVJdGVtc1tpXS5jcmVhdGVJdGVtKCk7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgICAgICBtZW51SXRlbXNbaV0uY3JlYXRlSXRlbSgpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICB9DQogICAgfQ0KICAgIHJldHVybjsNCn0NCmZ1bmN0aW9uIG9wZW5UaGlzTWVudShlbGVtZW50KSB7DQogICAgbGV0IGlkID0gZWxlbWVudC5pZDsNCiAgICBsZXQgY29udGVudCA9IG5ldyBTaG93Q29udGVudChpZCk7DQogICAgY29udGVudC5zaG93KCk7DQogICAgY2FsY3VsYXRlV3JhcHBlckhlaWdodCgpOw0KICAgIHJldHVybjsNCn0NCmNsYXNzIFBvcHVwV2luZG93IHsNCiAgICBjb25zdHJ1Y3RvcigpIHsNCiAgICAgICAgdGhpcy5Eb2N1bWVudElEID0gInBvcHVwLWN1c3RvbSI7DQogICAgICAgIHRoaXMuSW50ZXJhY3Rpb25JRCA9ICJpbnRlcmFjdGlvbiI7DQogICAgICAgIHRoaXMuZG9jID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQodGhpcy5Eb2N1bWVudElEKTsNCiAgICB9DQogICAgY3JlYXRlVGl0bGUodGl0bGUpIHsNCiAgICAgICAgbGV0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgdGQuY2xhc3NOYW1lID0gImxlZnQiOw0KICAgICAgICB0ZC5pbm5lckhUTUwgPSB0aXRsZSArICI6IjsNCiAgICAgICAgcmV0dXJuIHRkOw0KICAgIH0NCiAgICBjcmVhdGVDb250ZW50KGVsZW1lbnQpIHsNCiAgICAgICAgbGV0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgdGQuYXBwZW5kQ2hpbGQoZWxlbWVudCk7DQogICAgICAgIHJldHVybiB0ZDsNCiAgICB9DQogICAgY3JlYXRlSW50ZXJhY3Rpb24oKSB7DQogICAgICAgIGxldCBkaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsNCiAgICAgICAgZGl2LnNldEF0dHJpYnV0ZSgiaWQiLCAicG9wdXAtaW50ZXJhY3Rpb24iKTsNCiAgICAgICAgZGl2LmNsYXNzTmFtZSA9ICJpbnRlcmFjdGlvbiI7DQogICAgICAgIHRoaXMuZG9jLmFwcGVuZENoaWxkKGRpdik7DQogICAgfQ0KfQ0KY2xhc3MgUG9wdXBDb250ZW50IGV4dGVuZHMgUG9wdXBXaW5kb3cgew0KICAgIGNvbnN0cnVjdG9yKCkgew0KICAgICAgICBzdXBlciguLi5hcmd1bWVudHMpOw0KICAgICAgICB0aGlzLnRhYmxlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEFCTEUiKTsNCiAgICB9DQogICAgY3JlYXRlSGVhZGxpbmUoaGVhZGxpbmUpIHsNCiAgICAgICAgdGhpcy5kb2MuaW5uZXJIVE1MID0gIiI7DQogICAgICAgIHZhciBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiSDMiKTsNCiAgICAgICAgZWxlbWVudC5pbm5lckhUTUwgPSBoZWFkbGluZS50b1VwcGVyQ2FzZSgpOw0KICAgICAgICB0aGlzLmRvYy5hcHBlbmRDaGlsZChlbGVtZW50KTsNCiAgICAgICAgLy8gQ3JlYXRlIHRhYmxlDQogICAgICAgIHRoaXMudGFibGUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJUQUJMRSIpOw0KICAgICAgICB0aGlzLmRvYy5hcHBlbmRDaGlsZCh0aGlzLnRhYmxlKTsNCiAgICB9DQogICAgYXBwZW5kUm93KHRpdGxlLCBlbGVtZW50KSB7DQogICAgICAgIGxldCB0ciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlRSIik7DQogICAgICAgIC8vIFRpdGxlDQogICAgICAgIGlmICh0aXRsZS5sZW5ndGggIT0gMCkgew0KICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQodGhpcy5jcmVhdGVUaXRsZSh0aXRsZSkpOw0KICAgICAgICB9DQogICAgICAgIC8vIENvbnRlbnQNCiAgICAgICAgdHIuYXBwZW5kQ2hpbGQodGhpcy5jcmVhdGVDb250ZW50KGVsZW1lbnQpKTsNCiAgICAgICAgdGhpcy50YWJsZS5hcHBlbmRDaGlsZCh0cik7DQogICAgfQ0KICAgIGNyZWF0ZUlucHV0KHR5cGUsIG5hbWUsIHZhbHVlKSB7DQogICAgICAgIGxldCBpbnB1dCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIklOUFVUIik7DQogICAgICAgIGlmICh2YWx1ZSA9PSB1bmRlZmluZWQpIHsNCiAgICAgICAgICAgIHZhbHVlID0gIiI7DQogICAgICAgIH0NCiAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJ0eXBlIiwgdHlwZSk7DQogICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgibmFtZSIsIG5hbWUpOw0KICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInZhbHVlIiwgdmFsdWUpOw0KICAgICAgICByZXR1cm4gaW5wdXQ7DQogICAgfQ0KICAgIGNyZWF0ZUNoZWNrYm94KG5hbWUpIHsNCiAgICAgICAgbGV0IGlucHV0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiSU5QVVQiKTsNCiAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJ0eXBlIiwgImNoZWNrYm94Iik7DQogICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgibmFtZSIsIG5hbWUpOw0KICAgICAgICByZXR1cm4gaW5wdXQ7DQogICAgfQ0KICAgIC8vIENyZWF0ZXMgYSBzZWxlY3Rpb24gb2YgbXVsdGlwbGUgb3B0aW9ucyB2YWx1ZXMgd2l0aCB0ZXh0IGRlc2NyaXB0aW9ucw0KICAgIGNyZWF0ZVNlbGVjdCh0ZXh0LCB2YWx1ZXMsIHNldCwgZGJLZXkpIHsNCiAgICAgICAgbGV0IHNlbGVjdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlNFTEVDVCIpOw0KICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJuYW1lIiwgZGJLZXkpOw0KICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRleHQubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgICAgIGxldCBvcHRpb24gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJPUFRJT04iKTsNCiAgICAgICAgICAgIG9wdGlvbi5zZXRBdHRyaWJ1dGUoInZhbHVlIiwgdmFsdWVzW2ldKTsNCiAgICAgICAgICAgIG9wdGlvbi5pbm5lclRleHQgPSB0ZXh0W2ldOw0KICAgICAgICAgICAgc2VsZWN0LmFwcGVuZENoaWxkKG9wdGlvbik7DQogICAgICAgIH0NCiAgICAgICAgaWYgKHNldCAhPSAiIikgew0KICAgICAgICAgICAgc2VsZWN0LnZhbHVlID0gc2V0Ow0KICAgICAgICB9DQogICAgICAgIGlmIChzZXQgPT0gdW5kZWZpbmVkKSB7DQogICAgICAgICAgICBzZWxlY3QudmFsdWUgPSB2YWx1ZXNbMF07DQogICAgICAgIH0NCiAgICAgICAgcmV0dXJuIHNlbGVjdDsNCiAgICB9DQogICAgc2VsZWN0T3B0aW9uKHNlbGVjdCwgdmFsdWUpIHsNCiAgICAgICAgLy9zZWxlY3Quc2VsZWN0ZWRPcHRpb25zID0gdmFsdWUNCiAgICAgICAgbGV0IHMgPSBzZWxlY3Q7DQogICAgICAgIHMub3B0aW9uc1tzLnNlbGVjdGVkSW5kZXhdLnZhbHVlID0gdmFsdWU7DQogICAgICAgIHJldHVybiBzZWxlY3Q7DQogICAgfQ0KICAgIGRlc2NyaXB0aW9uKHZhbHVlKSB7DQogICAgICAgIGxldCB0ciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlRSIik7DQogICAgICAgIGxldCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgIGxldCBzcGFuID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiUFJFIik7DQogICAgICAgIHNwYW4uaW5uZXJIVE1MID0gdmFsdWU7DQogICAgICAgIHRyLmFwcGVuZENoaWxkKHRkKTsNCiAgICAgICAgdHIuYXBwZW5kQ2hpbGQodGhpcy5jcmVhdGVDb250ZW50KHNwYW4pKTsNCiAgICAgICAgdGhpcy50YWJsZS5hcHBlbmRDaGlsZCh0cik7DQogICAgfQ0KICAgIC8vIEludGVyYWN0aW9uDQogICAgYWRkSW50ZXJhY3Rpb24oZWxlbWVudCkgew0KICAgICAgICBsZXQgaW50ZXJhY3Rpb24gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicG9wdXAtaW50ZXJhY3Rpb24iKTsNCiAgICAgICAgaW50ZXJhY3Rpb24uYXBwZW5kQ2hpbGQoZWxlbWVudCk7DQogICAgfQ0KfQ0KZnVuY3Rpb24gb3BlblBvcFVwKGRhdGFUeXBlLCBlbGVtZW50KSB7DQogICAgbGV0IGRhdGEgPSB7fTsNCiAgICBsZXQgaWQ7DQogICAgc3dpdGNoIChlbGVtZW50KSB7DQogICAgICAgIGNhc2UgdW5kZWZpbmVkOg0KICAgICAgICAgICAgc3dpdGNoIChkYXRhVHlwZSkgew0KICAgICAgICAgICAgICAgIGNhc2UgImdyb3VwLXRpdGxlIjoNCiAgICAgICAgICAgICAgICAgICAgaWYgKGlkID09IHVuZGVmaW5lZCkgew0KICAgICAgICAgICAgICAgICAgICAgICAgaWQgPSAtMTsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBkYXRhID0gZ2V0TG9jYWxEYXRhKCJmaWx0ZXIiLCBpZCk7DQogICAgICAgICAgICAgICAgICAgIGRhdGFbInR5cGUiXSA9ICJncm91cC10aXRsZSI7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgImN1c3RvbS1maWx0ZXIiOg0KICAgICAgICAgICAgICAgICAgICBpZiAoaWQgPT0gdW5kZWZpbmVkKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBpZCA9IC0xOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIGRhdGEgPSBnZXRMb2NhbERhdGEoImZpbHRlciIsIGlkKTsNCiAgICAgICAgICAgICAgICAgICAgZGF0YVsidHlwZSJdID0gImN1c3RvbS1maWx0ZXIiOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBkZWZhdWx0Og0KICAgICAgICAgICAgICAgICAgICBkYXRhWyJpZC5wcm92aWRlciJdID0gIi0iOw0KICAgICAgICAgICAgICAgICAgICBkYXRhWyJ0eXBlIl0gPSBkYXRhVHlwZTsNCiAgICAgICAgICAgICAgICAgICAgaWQgPSAiLSI7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICBpZCA9IGVsZW1lbnQuaWQ7DQogICAgICAgICAgICBkYXRhID0gZ2V0TG9jYWxEYXRhKGRhdGFUeXBlLCBpZCk7DQogICAgICAgICAgICBicmVhazsNCiAgICB9DQogICAgbGV0IGNvbnRlbnQgPSBuZXcgUG9wdXBDb250ZW50KCk7DQogICAgc3dpdGNoIChkYXRhVHlwZSkgew0KICAgICAgICBjYXNlICJwbGF5bGlzdCI6DQogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUhlYWRsaW5lKCJ7ey5wbGF5bGlzdC5wbGF5bGlzdFR5cGUudGl0bGV9fSIpOw0KICAgICAgICAgICAgLy8gVHlwZQ0KICAgICAgICAgICAgdmFyIHRleHQgPSBbIk0zVSIsICJIREhvbWVSdW4iXTsNCiAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBbImphdmFzY3JpcHQ6IG9wZW5Qb3BVcCgnbTN1JykiLCAiamF2YXNjcmlwdDogb3BlblBvcFVwKCdoZGhyJykiXTsNCiAgICAgICAgICAgIHZhciBzZWxlY3QgPSBjb250ZW50LmNyZWF0ZVNlbGVjdCh0ZXh0LCB2YWx1ZXMsICIiLCAidHlwZSIpOw0KICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgiaWQiLCAidHlwZSIpOw0KICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAnamF2YXNjcmlwdDogY2hhbmdlQnV0dG9uQWN0aW9uKHRoaXMsICJuZXh0IiwgIm9uY2xpY2siKScpOyAvLyBjaGFuZ2VCdXR0b25BY3Rpb24NCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5wbGF5bGlzdC50eXBlLnRpdGxlfX0iLCBzZWxlY3QpOw0KICAgICAgICAgICAgLy8gSW50ZXJhY3Rpb24NCiAgICAgICAgICAgIGNvbnRlbnQuY3JlYXRlSW50ZXJhY3Rpb24oKTsNCiAgICAgICAgICAgIC8vIEFib3J0DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAiY2FuY2VsIiwgInt7LmJ1dHRvbi5jYW5jZWx9fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IHNob3dFbGVtZW50KCJwb3B1cCIsIGZhbHNlKTsnKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgLy8gTmV4dA0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgIm5leHQiLCAie3suYnV0dG9uLm5leHR9fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgibTN1IiknKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgiaWQiLCAnbmV4dCcpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSAibTN1IjoNCiAgICAgICAgICAgIGNvbnRlbnQuY3JlYXRlSGVhZGxpbmUoZGF0YVR5cGUpOw0KICAgICAgICAgICAgLy8gTmFtZQ0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gIm5hbWUiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnBsYXlsaXN0Lm5hbWUucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnBsYXlsaXN0Lm5hbWUudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIERlc2NyaXB0aW9uDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAiZGVzY3JpcHRpb24iOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnBsYXlsaXN0LmRlc2NyaXB0aW9uLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5wbGF5bGlzdC5kZXNjcmlwdGlvbi50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgLy8gVVJMDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAiZmlsZS5zb3VyY2UiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnBsYXlsaXN0LmZpbGVNM1UucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnBsYXlsaXN0LmZpbGVNM1UudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIFR1bmVyDQogICAgICAgICAgICBpZiAoU0VSVkVSWyJzZXR0aW5ncyJdWyJidWZmZXIiXSAhPSAiLSIpIHsNCiAgICAgICAgICAgICAgICB2YXIgdGV4dCA9IFtdOw0KICAgICAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBbXTsNCiAgICAgICAgICAgICAgICBmb3IgKHZhciBpID0gMTsgaSA8PSAxMDA7IGkrKykgew0KICAgICAgICAgICAgICAgICAgICB0ZXh0LnB1c2goaS50b1N0cmluZygpKTsNCiAgICAgICAgICAgICAgICAgICAgdmFsdWVzLnB1c2goaS50b1N0cmluZygpKTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgdmFyIGRiS2V5ID0gInR1bmVyIjsNCiAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCBkYXRhW2RiS2V5XSwgZGJLZXkpOw0KICAgICAgICAgICAgICAgIHNlbGVjdC5zZXRBdHRyaWJ1dGUoIm9uZm9jdXMiLCAiamF2YXNjcmlwdDogcmV0dXJuOyIpOw0KICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5wbGF5bGlzdC50dW5lci50aXRsZX19Iiwgc2VsZWN0KTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgICAgIHZhciBkYktleSA9ICJ0dW5lciI7DQogICAgICAgICAgICAgICAgaWYgKGRhdGFbZGJLZXldID09IHVuZGVmaW5lZCkgew0KICAgICAgICAgICAgICAgICAgICBkYXRhW2RiS2V5XSA9IDE7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicmVhZG9ubHkiLCAidHJ1ZSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LmNsYXNzTmFtZSA9ICJub3RBdmFpbGFibGUiOw0KICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5wbGF5bGlzdC50dW5lci50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgY29udGVudC5kZXNjcmlwdGlvbigie3sucGxheWxpc3QudHVuZXIuZGVzY3JpcHRpb259fSIpOw0KICAgICAgICAgICAgLy8gSW50ZXJhdGlvbg0KICAgICAgICAgICAgY29udGVudC5jcmVhdGVJbnRlcmFjdGlvbigpOw0KICAgICAgICAgICAgLy8gRGVsZXRlDQogICAgICAgICAgICBpZiAoZGF0YVsiaWQucHJvdmlkZXIiXSAhPSAiLSIpIHsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAiZGVsZXRlIiwgInt7LmJ1dHRvbi5kZWxldGV9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LmNsYXNzTmFtZSA9ICJkZWxldGUiOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBzYXZlUG9wdXBEYXRhKCJtM3UiLCAiJyArIGlkICsgJyIsIHRydWUsIDApJyk7DQogICAgICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAiYmFjayIsICJ7ey5idXR0b24uYmFja319Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgicGxheWxpc3QiKScpOw0KICAgICAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgLy8gQWJvcnQNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJjYW5jZWwiLCAie3suYnV0dG9uLmNhbmNlbH19Iik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogc2hvd0VsZW1lbnQoInBvcHVwIiwgZmFsc2UpOycpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICAvLyBVcGRhdGUNCiAgICAgICAgICAgIGlmIChkYXRhWyJpZC5wcm92aWRlciJdICE9ICItIikgew0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJ1cGRhdGUiLCAie3suYnV0dG9uLnVwZGF0ZX19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoIm0zdSIsICInICsgaWQgKyAnIiwgZmFsc2UsIDEpJyk7DQogICAgICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICAvLyBTYXZlDQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAic2F2ZSIsICJ7ey5idXR0b24uc2F2ZX19Iik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogc2F2ZVBvcHVwRGF0YSgibTN1IiwgIicgKyBpZCArICciLCBmYWxzZSwgMCknKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGNhc2UgImhkaHIiOg0KICAgICAgICAgICAgY29udGVudC5jcmVhdGVIZWFkbGluZShkYXRhVHlwZSk7DQogICAgICAgICAgICAvLyBOYW1lDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAibmFtZSI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3sucGxheWxpc3QubmFtZS5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sucGxheWxpc3QubmFtZS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgLy8gRGVzY3JpcHRpb24NCiAgICAgICAgICAgIHZhciBkYktleSA9ICJkZXNjcmlwdGlvbiI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3sucGxheWxpc3QuZGVzY3JpcHRpb24ucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnBsYXlsaXN0LmRlc2NyaXB0aW9uLnBsYWNlaG9sZGVyfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBVUkwNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJmaWxlLnNvdXJjZSI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3sucGxheWxpc3QuZmlsZUhESFIucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnBsYXlsaXN0LmZpbGVIREhSLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBUdW5lcg0KICAgICAgICAgICAgaWYgKFNFUlZFUlsic2V0dGluZ3MiXVsiYnVmZmVyIl0gIT0gIi0iKSB7DQogICAgICAgICAgICAgICAgdmFyIHRleHQgPSBbXTsNCiAgICAgICAgICAgICAgICB2YXIgdmFsdWVzID0gW107DQogICAgICAgICAgICAgICAgZm9yICh2YXIgaSA9IDE7IGkgPD0gMTAwOyBpKyspIHsNCiAgICAgICAgICAgICAgICAgICAgdGV4dC5wdXNoKGkudG9TdHJpbmcoKSk7DQogICAgICAgICAgICAgICAgICAgIHZhbHVlcy5wdXNoKGkudG9TdHJpbmcoKSk7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIHZhciBkYktleSA9ICJ0dW5lciI7DQogICAgICAgICAgICAgICAgdmFyIHNlbGVjdCA9IGNvbnRlbnQuY3JlYXRlU2VsZWN0KHRleHQsIHZhbHVlcywgZGF0YVtkYktleV0sIGRiS2V5KTsNCiAgICAgICAgICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJvbmZvY3VzIiwgImphdmFzY3JpcHQ6IHJldHVybjsiKTsNCiAgICAgICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sucGxheWxpc3QudHVuZXIudGl0bGV9fSIsIHNlbGVjdCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICB2YXIgZGJLZXkgPSAidHVuZXIiOw0KICAgICAgICAgICAgICAgIGlmIChkYXRhW2RiS2V5XSA9PSB1bmRlZmluZWQpIHsNCiAgICAgICAgICAgICAgICAgICAgZGF0YVtkYktleV0gPSAxOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInJlYWRvbmx5IiwgInRydWUiKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5jbGFzc05hbWUgPSAibm90QXZhaWxhYmxlIjsNCiAgICAgICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sucGxheWxpc3QudHVuZXIudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGNvbnRlbnQuZGVzY3JpcHRpb24oInt7LnBsYXlsaXN0LnR1bmVyLmRlc2NyaXB0aW9ufX0iKTsNCiAgICAgICAgICAgIC8vIEludGVyYWN0aW9uDQogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUludGVyYWN0aW9uKCk7DQogICAgICAgICAgICAvLyBEZWxldGUNCiAgICAgICAgICAgIGlmIChkYXRhWyJpZC5wcm92aWRlciJdICE9ICItIikgew0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJkZWxldGUiLCAie3suYnV0dG9uLmRlbGV0ZX19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoImhkaHIiLCAiJyArIGlkICsgJyIsIHRydWUsIDApJyk7DQogICAgICAgICAgICAgICAgaW5wdXQuY2xhc3NOYW1lID0gImRlbGV0ZSI7DQogICAgICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAiYmFjayIsICJ7ey5idXR0b24uYmFja319Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgicGxheWxpc3QiKScpOw0KICAgICAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgLy8gQWJvcnQNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJjYW5jZWwiLCAie3suYnV0dG9uLmNhbmNlbH19Iik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogc2hvd0VsZW1lbnQoInBvcHVwIiwgZmFsc2UpOycpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICAvLyBVcGRhdGUNCiAgICAgICAgICAgIGlmIChkYXRhWyJpZC5wcm92aWRlciJdICE9ICItIikgew0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJ1cGRhdGUiLCAie3suYnV0dG9uLnVwZGF0ZX19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoImhkaHIiLCAiJyArIGlkICsgJyIsIGZhbHNlLCAxKScpOw0KICAgICAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgLy8gU2F2ZQ0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgInNhdmUiLCAie3suYnV0dG9uLnNhdmV9fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoImhkaHIiLCAiJyArIGlkICsgJyIsIGZhbHNlLCAwKScpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSAiZmlsdGVyIjoNCiAgICAgICAgICAgIGNvbnRlbnQuY3JlYXRlSGVhZGxpbmUoZGF0YVR5cGUpOw0KICAgICAgICAgICAgLy8gVHlwZQ0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gInR5cGUiOw0KICAgICAgICAgICAgdmFyIHRleHQgPSBbIk0zVTogIiArICJ7ey5maWx0ZXIudHlwZS5ncm91cFRpdGxlfX0iLCAieFRlVmU6ICIgKyAie3suZmlsdGVyLnR5cGUuY3VzdG9tRmlsdGVyfX0iXTsNCiAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBbImphdmFzY3JpcHQ6IG9wZW5Qb3BVcCgnZ3JvdXAtdGl0bGUnKSIsICJqYXZhc2NyaXB0OiBvcGVuUG9wVXAoJ2N1c3RvbS1maWx0ZXInKSJdOw0KICAgICAgICAgICAgdmFyIHNlbGVjdCA9IGNvbnRlbnQuY3JlYXRlU2VsZWN0KHRleHQsIHZhbHVlcywgImphdmFzY3JpcHQ6IG9wZW5Qb3BVcCgnZ3JvdXAtdGl0bGUnKSIsIGRiS2V5KTsNCiAgICAgICAgICAgIHNlbGVjdC5zZXRBdHRyaWJ1dGUoImlkIiwgaWQpOw0KICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAnamF2YXNjcmlwdDogY2hhbmdlQnV0dG9uQWN0aW9uKHRoaXMsICJuZXh0IiwgIm9uY2xpY2siKTsnKTsgLy8gY2hhbmdlQnV0dG9uQWN0aW9uDQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3suZmlsdGVyLnR5cGUudGl0bGV9fSIsIHNlbGVjdCk7DQogICAgICAgICAgICAvLyBJbnRlcmFjdGlvbg0KICAgICAgICAgICAgY29udGVudC5jcmVhdGVJbnRlcmFjdGlvbigpOw0KICAgICAgICAgICAgLy8gQWJvcnQNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJjYW5jZWwiLCAie3suYnV0dG9uLmNhbmNlbH19Iik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogc2hvd0VsZW1lbnQoInBvcHVwIiwgZmFsc2UpOycpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICAvLyBOZXh0DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAibmV4dCIsICJ7ey5idXR0b24ubmV4dH19Iik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJncm91cC10aXRsZSIpJyk7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoImlkIiwgJ25leHQnKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGNhc2UgImN1c3RvbS1maWx0ZXIiOg0KICAgICAgICBjYXNlICJncm91cC10aXRsZSI6DQogICAgICAgICAgICBzd2l0Y2ggKGRhdGFUeXBlKSB7DQogICAgICAgICAgICAgICAgY2FzZSAiY3VzdG9tLWZpbHRlciI6DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuY3JlYXRlSGVhZGxpbmUoInt7LmZpbHRlci5jdXN0b219fSIgKyAiIEZpbHRlciIpOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBjYXNlICJncm91cC10aXRsZSI6DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuY3JlYXRlSGVhZGxpbmUoInt7LmZpbHRlci5ncm91cH19IiArICIgRmlsdGVyIik7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgLy8gTmFtZSAgICAgIA0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gIm5hbWUiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LmZpbHRlci5uYW1lLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5maWx0ZXIubmFtZS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgLy8gRGVzY3JpcHRpb24NCiAgICAgICAgICAgIHZhciBkYktleSA9ICJkZXNjcmlwdGlvbiI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3suZmlsdGVyLmRlc2NyaXB0aW9uLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5maWx0ZXIuZGVzY3JpcHRpb24udGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIFR5cGUNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJ0eXBlIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImhpZGRlbiIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygiIiwgaW5wdXQpOw0KICAgICAgICAgICAgdmFyIGZpbHRlclR5cGUgPSBkYXRhW2RiS2V5XTsNCiAgICAgICAgICAgIHN3aXRjaCAoZmlsdGVyVHlwZSkgew0KICAgICAgICAgICAgICAgIGNhc2UgImN1c3RvbS1maWx0ZXIiOg0KICAgICAgICAgICAgICAgICAgICAvLyBDYXNlIHNlbnNpdGl2ZQ0KICAgICAgICAgICAgICAgICAgICB2YXIgZGJLZXkgPSAiY2FzZVNlbnNpdGl2ZSI7DQogICAgICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goZGJLZXkpOw0KICAgICAgICAgICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YVtkYktleV07DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5maWx0ZXIuY2FzZVNlbnNpdGl2ZS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgICAgICAgICAvLyBGaWx0ZXIgUnVsZSAoQ3VzdG9tKQ0KICAgICAgICAgICAgICAgICAgICB2YXIgZGJLZXkgPSAiZmlsdGVyIjsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3suZmlsdGVyLmZpbHRlclJ1bGUucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3suZmlsdGVyLmZpbHRlclJ1bGUudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAiZ3JvdXAtdGl0bGUiOg0KICAgICAgICAgICAgICAgICAgICAvL2FsZXJ0KGRiS2V5ICsgIiAiICsgZmlsdGVyVHlwZSkNCiAgICAgICAgICAgICAgICAgICAgLy8gRmlsdGVyIGJhc2VkIG9uIHRoZSBncm91cHMgaW4gdGhlIE0zVQ0KICAgICAgICAgICAgICAgICAgICB2YXIgZGJLZXkgPSAiZmlsdGVyIjsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGdyb3Vwc00zVSA9IGdldExvY2FsRGF0YSgibTN1R3JvdXBzIiwgIiIpOw0KICAgICAgICAgICAgICAgICAgICB2YXIgdGV4dCA9IGdyb3Vwc00zVVsidGV4dCJdOw0KICAgICAgICAgICAgICAgICAgICB2YXIgdmFsdWVzID0gZ3JvdXBzTTNVWyJ2YWx1ZSJdOw0KICAgICAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCBkYXRhW2RiS2V5XSwgZGJLZXkpOw0KICAgICAgICAgICAgICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3suZmlsdGVyLmZpbHRlckdyb3VwLnRpdGxlfX0iLCBzZWxlY3QpOw0KICAgICAgICAgICAgICAgICAgICBjb250ZW50LmRlc2NyaXB0aW9uKCJ7ey5maWx0ZXIuZmlsdGVyR3JvdXAuZGVzY3JpcHRpb259fSIpOw0KICAgICAgICAgICAgICAgICAgICAvLyBDYXNlIHNlbnNldGl2ZQ0KICAgICAgICAgICAgICAgICAgICB2YXIgZGJLZXkgPSAiY2FzZVNlbnNpdGl2ZSI7DQogICAgICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goZGJLZXkpOw0KICAgICAgICAgICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YVtkYktleV07DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5maWx0ZXIuY2FzZVNlbnNpdGl2ZS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgICAgICAgICB2YXIgZGJLZXkgPSAiaW5jbHVkZSI7DQogICAgICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LmZpbHRlci5pbmNsdWRlLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LmZpbHRlci5pbmNsdWRlLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuZGVzY3JpcHRpb24oInt7LmZpbHRlci5pbmNsdWRlLmRlc2NyaXB0aW9ufX0iKTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGRiS2V5ID0gImV4Y2x1ZGUiOw0KICAgICAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5maWx0ZXIuZXhjbHVkZS5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5maWx0ZXIuZXhjbHVkZS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgICAgICAgICBjb250ZW50LmRlc2NyaXB0aW9uKCJ7ey5maWx0ZXIuZXhjbHVkZS5kZXNjcmlwdGlvbn19Iik7DQogICAgICAgICAgICAgICAgICAgIC8vIFByZXNlcnZlIE0zVSBQbGF5bGlzdCBDaGFubmVsIE1hcHBpbmcNCiAgICAgICAgICAgICAgICAgICAgdmFyIGRiS2V5ID0gInByZXNlcnZlTWFwcGluZyI7DQogICAgICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goZGJLZXkpOw0KICAgICAgICAgICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YVtkYktleV07DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5maWx0ZXIucHJlc2VydmVNYXBwaW5nLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAgICAgICAgIC8vIFN0YXJ0aW5nIENoYW5uZWwgTnVtYmVyIE1hcHBpbmcNCiAgICAgICAgICAgICAgICAgICAgdmFyIGRiS2V5ID0gInN0YXJ0aW5nQ2hhbm5lbCI7DQogICAgICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LmZpbHRlci5zdGFydGluZ0NoYW5uZWwucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3suZmlsdGVyLnN0YXJ0aW5nQ2hhbm5lbC50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgICAgICAgICAvLyBGaWxsIE1pc3NpbmcgRVBHIERhdGENCiAgICAgICAgICAgICAgICAgICAgLy8gVGhlIGZvbGxvd2luZyBjb2RlIG9ubHkgd29ya3Mgd2hlbiB4VGVWZSBEdW1teSBhbHJlYWR5IGV4aXN0cw0KICAgICAgICAgICAgICAgICAgICAvLyB2YXIgZGJLZXk6c3RyaW5nID0gImRlZmF1bHRNaXNzaW5nRVBHIg0KICAgICAgICAgICAgICAgICAgICAvLyB2YXIgeG1sdHY6WE1MVFZGaWxlID0gbmV3IFhNTFRWRmlsZSgpDQogICAgICAgICAgICAgICAgICAgIC8vIHZhciBzZWxlY3QgPSB4bWx0di5nZXRQcm9ncmFtcygieFRlVmUgRHVtbXkiLCBkYXRhW2RiS2V5XSkNCiAgICAgICAgICAgICAgICAgICAgLy8gc2VsZWN0LnNldEF0dHJpYnV0ZSgibmFtZSIsIGRiS2V5KQ0KICAgICAgICAgICAgICAgICAgICAvLyBzZWxlY3Quc2V0QXR0cmlidXRlKCJpZCIsICJwb3B1cC1taXNzaW5nLWVwZyIpDQogICAgICAgICAgICAgICAgICAgIC8vIFRoZSB3b3JrYXJvdW5kIGlzIGN1cnJlbnRseSB0byBoYXJkIGNvZGUgdGhlIHhUZVZlIER1bW15IGRhdGENCiAgICAgICAgICAgICAgICAgICAgdmFyIGRiS2V5ID0gImRlZmF1bHRNaXNzaW5nRVBHIjsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGxpc3RPcHRpb25zID0geyAidGV4dCI6IFsiLSIsICIzMCBNaW51dGVzICgzMF9NaW51dGVzKSIsICI2MCBNaW51dGVzICg2MF9NaW51dGVzKSIsICI5MCBNaW51dGVzICg5MF9NaW51dGVzKSIsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgIjEyMCBNaW51dGVzICgxMjBfTWludXRlcykiLCAiMTgwIE1pbnV0ZXMgKDMwX01pbnV0ZXMpIiwgIjI0MCBNaW51dGVzICgzMF9NaW51dGVzKSIsICIzNjAgTWludXRlcyAoMzBfTWludXRlcykiXSwNCiAgICAgICAgICAgICAgICAgICAgICAgICJ2YWx1ZSI6IFsiLSIsICIzMF9NaW51dGVzIiwgIjYwX01pbnV0ZXMiLCAiOTBfTWludXRlcyIsICIxMjBfTWludXRlcyIsICIxODBfTWludXRlcyIsICIyNDBfTWludXRlcyIsICIzNjBfTWludXRlcyIsXSB9Ow0KICAgICAgICAgICAgICAgICAgICB2YXIgdGV4dCA9IGxpc3RPcHRpb25zWyJ0ZXh0Il07DQogICAgICAgICAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBsaXN0T3B0aW9uc1sidmFsdWUiXTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHNlbGVjdCA9IGNvbnRlbnQuY3JlYXRlU2VsZWN0KHRleHQsIHZhbHVlcywgZGF0YVtkYktleV0sIGRiS2V5KTsNCiAgICAgICAgICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LmZpbHRlci5kZWZhdWx0TWlzc2luZ0VQRy50aXRsZX19Iiwgc2VsZWN0KTsNCiAgICAgICAgICAgICAgICAgICAgY29udGVudC5kZXNjcmlwdGlvbigie3suZmlsdGVyLmRlZmF1bHRNaXNzaW5nRVBHLmRlc2NyaXB0aW9ufX0iKTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICB9DQogICAgICAgICAgICAvLyBJbnRlcmFjdGlvbg0KICAgICAgICAgICAgY29udGVudC5jcmVhdGVJbnRlcmFjdGlvbigpOw0KICAgICAgICAgICAgLy8gRGVsZXRlDQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAiZGVsZXRlIiwgInt7LmJ1dHRvbi5kZWxldGV9fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoImZpbHRlciIsICInICsgaWQgKyAnIiwgdHJ1ZSwgMCknKTsNCiAgICAgICAgICAgIGlucHV0LmNsYXNzTmFtZSA9ICJkZWxldGUiOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICAvLyBBYm9ydA0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImNhbmNlbCIsICJ7ey5idXR0b24uY2FuY2VsfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBzaG93RWxlbWVudCgicG9wdXAiLCBmYWxzZSk7Jyk7DQogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIC8vIFNhdmUNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJzYXZlIiwgInt7LmJ1dHRvbi5zYXZlfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBzYXZlUG9wdXBEYXRhKCJmaWx0ZXIiLCAiJyArIGlkICsgJyIsIGZhbHNlLCAwKScpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSAieG1sdHYiOg0KICAgICAgICAgICAgY29udGVudC5jcmVhdGVIZWFkbGluZShkYXRhVHlwZSk7DQogICAgICAgICAgICAvLyBOYW1lDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAibmFtZSI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3sueG1sdHYubmFtZS5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sueG1sdHYubmFtZS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgLy8gRGVzY3JpcHRpb24NCiAgICAgICAgICAgIHZhciBkYktleSA9ICJkZXNjcmlwdGlvbiI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3sueG1sdHYuZGVzY3JpcHRpb24ucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnhtbHR2LmRlc2NyaXB0aW9uLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBVUkwNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJmaWxlLnNvdXJjZSI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3sueG1sdHYuZmlsZVhNTFRWLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey54bWx0di5maWxlWE1MVFYudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIEludGVyYWN0aW9uDQogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUludGVyYWN0aW9uKCk7DQogICAgICAgICAgICAvLyBEZWxldGUNCiAgICAgICAgICAgIGlmIChkYXRhWyJpZC5wcm92aWRlciJdICE9ICItIikgew0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJkZWxldGUiLCAie3suYnV0dG9uLmRlbGV0ZX19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoInhtbHR2IiwgIicgKyBpZCArICciLCB0cnVlLCAwKScpOw0KICAgICAgICAgICAgICAgIGlucHV0LmNsYXNzTmFtZSA9ICJkZWxldGUiOw0KICAgICAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgLy8gQWJvcnQNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJjYW5jZWwiLCAie3suYnV0dG9uLmNhbmNlbH19Iik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogc2hvd0VsZW1lbnQoInBvcHVwIiwgZmFsc2UpOycpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICAvLyBVcGRhdGUNCiAgICAgICAgICAgIGlmIChkYXRhWyJpZC5wcm92aWRlciJdICE9ICItIikgew0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJ1cGRhdGUiLCAie3suYnV0dG9uLnVwZGF0ZX19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoInhtbHR2IiwgIicgKyBpZCArICciLCBmYWxzZSwgMSknKTsNCiAgICAgICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIC8vIFNhdmUNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJzYXZlIiwgInt7LmJ1dHRvbi5zYXZlfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBzYXZlUG9wdXBEYXRhKCJ4bWx0diIsICInICsgaWQgKyAnIiwgZmFsc2UsIDApJyk7DQogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJ1c2VycyI6DQogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUhlYWRsaW5lKCJ7ey5tYWluTWVudS5pdGVtLnVzZXJzfX0iKTsNCiAgICAgICAgICAgIC8vIFVzZXIgbmFtZQ0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gInVzZXJuYW1lIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey51c2Vycy51c2VybmFtZS5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sudXNlcnMudXNlcm5hbWUudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIE5ldyBQYXJzc3dvcmQNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJwYXNzd29yZCI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJwYXNzd29yZCIsIGRiS2V5LCAiIik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnVzZXJzLnBhc3N3b3JkLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey51c2Vycy5wYXNzd29yZC50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgLy8gQ29uZmlybWF0aW9uDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAiY29uZmlybSI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJwYXNzd29yZCIsIGRiS2V5LCAiIik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnVzZXJzLmNvbmZpcm0ucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnVzZXJzLmNvbmZpcm0udGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIEF1dGhlbnRpY2F0aW9uIFdFQg0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gImF1dGhlbnRpY2F0aW9uLndlYiI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KGRiS2V5KTsNCiAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhW2RiS2V5XTsNCiAgICAgICAgICAgIGlmIChkYXRhWyJkZWZhdWx0VXNlciJdID09IHRydWUpIHsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAiamF2YXNjcmlwdDogcmV0dXJuIGZhbHNlIik7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sudXNlcnMud2ViLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBBdXRoZW50aWNhdGlvbiBQTVMNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJhdXRoZW50aWNhdGlvbi5wbXMiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChkYktleSk7DQogICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YVtkYktleV07DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sudXNlcnMucG1zLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBBdXRoZW50aWNhdGlvbiBNM1UNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJhdXRoZW50aWNhdGlvbi5tM3UiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChkYktleSk7DQogICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YVtkYktleV07DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sudXNlcnMubTN1LnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBBdXRoZW50aWNhdGlvbiBYTUwNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJhdXRoZW50aWNhdGlvbi54bWwiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChkYktleSk7DQogICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YVtkYktleV07DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sudXNlcnMueG1sLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBBdXRoZW50aWNhdGlvbiBBUEkNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJhdXRoZW50aWNhdGlvbi5hcGkiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChkYktleSk7DQogICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YVtkYktleV07DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sudXNlcnMuYXBpLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBJbnRlcmFjdGlvbg0KICAgICAgICAgICAgY29udGVudC5jcmVhdGVJbnRlcmFjdGlvbigpOw0KICAgICAgICAgICAgLy8gRGVsZXRlDQogICAgICAgICAgICBpZiAoZGF0YVsiZGVmYXVsdFVzZXIiXSAhPSB0cnVlICYmIGlkICE9ICItIikgew0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJkZWxldGUiLCAie3suYnV0dG9uLmRlbGV0ZX19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuY2xhc3NOYW1lID0gImRlbGV0ZSI7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoIicgKyBkYXRhVHlwZSArICciLCAiJyArIGlkICsgJyIsIHRydWUsIDApJyk7DQogICAgICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICAvLyBBYm9ydA0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImNhbmNlbCIsICJ7ey5idXR0b24uY2FuY2VsfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBzaG93RWxlbWVudCgicG9wdXAiLCBmYWxzZSk7Jyk7DQogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIC8vIFNhdmUNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJzYXZlIiwgInt7LmJ1dHRvbi5zYXZlfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBzYXZlUG9wdXBEYXRhKCInICsgZGF0YVR5cGUgKyAnIiwgIicgKyBpZCArICciLCAiZmFsc2UiKTsnKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGNhc2UgIm1hcHBpbmciOg0KICAgICAgICAgICAgY29udGVudC5jcmVhdGVIZWFkbGluZSgie3subWFpbk1lbnUuaXRlbS5tYXBwaW5nfX0iKTsNCiAgICAgICAgICAgIC8vIEFjdGl2ZQ0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gIngtYWN0aXZlIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goZGJLZXkpOw0KICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGFbZGJLZXldOw0KICAgICAgICAgICAgaW5wdXQuaWQgPSAiYWN0aXZlIjsNCiAgICAgICAgICAgIC8vaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpDQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRvZ2dsZUNoYW5uZWxTdGF0dXMoJyIgKyBpZCArICInLCB0aGlzKSIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7Lm1hcHBpbmcuYWN0aXZlLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBDaGFubmVsIG5hbWUNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJ4LW5hbWUiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICBpZiAoQlVMS19FRElUID09IHRydWUpIHsNCiAgICAgICAgICAgICAgICBpbnB1dC5zdHlsZS5ib3JkZXIgPSAic29saWQgMXB4IHJlZCI7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJyZWFkb25seSIsICJ0cnVlIik7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3subWFwcGluZy5jaGFubmVsTmFtZS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgY29udGVudC5kZXNjcmlwdGlvbihkYXRhWyJuYW1lIl0pOw0KICAgICAgICAgICAgLy8gRGVzY3JpcHRpb24NCiAgICAgICAgICAgIHZhciBkYktleSA9ICJ4LWRlc2NyaXB0aW9uIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5tYXBwaW5nLmRlc2NyaXB0aW9uLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5tYXBwaW5nLmRlc2NyaXB0aW9uLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBVcGRhdGUgdGhlIGNoYW5uZWwgbmFtZQ0KICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoIl91dWlkLmtleSIpKSB7DQogICAgICAgICAgICAgICAgaWYgKGRhdGFbIl91dWlkLmtleSJdICE9ICIiKSB7DQogICAgICAgICAgICAgICAgICAgIHZhciBkYktleSA9ICJ4LXVwZGF0ZS1jaGFubmVsLW5hbWUiOw0KICAgICAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KGRiS2V5KTsNCiAgICAgICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YVtkYktleV07DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5tYXBwaW5nLnVwZGF0ZUNoYW5uZWxOYW1lLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgLy8gTG9nbyBVUkwgKENoYW5uZWwpIA0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gInR2Zy1sb2dvIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJpZCIsICJjaGFubmVsLWljb24iKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5tYXBwaW5nLmNoYW5uZWxMb2dvLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBDaGFubmVsIGxvZ28gdXBkYXRlDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAieC11cGRhdGUtY2hhbm5lbC1pY29uIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goZGJLZXkpOw0KICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGFbZGJLZXldOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJpZCIsICJ1cGRhdGUtaWNvbiIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJzsgY2hhbmdlQ2hhbm5lbExvZ28oJyIgKyBpZCArICInKTsiKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5tYXBwaW5nLnVwZGF0ZUNoYW5uZWxMb2dvLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBFeHBhbmQgRVBHIGNhdGVnb3J5DQogICAgICAgICAgICB2YXIgZGJLZXkgPSAieC1jYXRlZ29yeSI7DQogICAgICAgICAgICB2YXIgdGV4dCA9IFsiLSIsICJLaWRzIChFbWJ5IG9ubHkpIiwgIk5ld3MiLCAiTW92aWUiLCAiU2VyaWVzIiwgIlNwb3J0cyJdOw0KICAgICAgICAgICAgdmFyIHZhbHVlcyA9IFsiIiwgIktpZHMiLCAiTmV3cyIsICJNb3ZpZSIsICJTZXJpZXMiLCAiU3BvcnRzIl07DQogICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCBkYXRhW2RiS2V5XSwgZGJLZXkpOw0KICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5tYXBwaW5nLmVwZ0NhdGVnb3J5LnRpdGxlfX0iLCBzZWxlY3QpOw0KICAgICAgICAgICAgLy8gTTNVIGdyb3VwIHRpdGxlDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAieC1ncm91cC10aXRsZSI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5tYXBwaW5nLm0zdUdyb3VwVGl0bGUudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIGlmIChkYXRhWyJncm91cC10aXRsZSJdICE9IHVuZGVmaW5lZCkgew0KICAgICAgICAgICAgICAgIGNvbnRlbnQuZGVzY3JpcHRpb24oZGF0YVsiZ3JvdXAtdGl0bGUiXSk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICAvLyBYTUxUViBmaWxlDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAieC14bWx0di1maWxlIjsNCiAgICAgICAgICAgIHZhciB4bWxGaWxlID0gZGF0YVtkYktleV07DQogICAgICAgICAgICB2YXIgeG1sdHYgPSBuZXcgWE1MVFZGaWxlKCk7DQogICAgICAgICAgICB2YXIgc2VsZWN0ID0geG1sdHYuZ2V0RmlsZXMoZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgibmFtZSIsIGRiS2V5KTsNCiAgICAgICAgICAgIHNlbGVjdC5zZXRBdHRyaWJ1dGUoImlkIiwgInBvcHVwLXhtbHR2Iik7DQogICAgICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJzsgc2V0WG1sdHZDaGFubmVsKCciICsgaWQgKyAiJyx0aGlzKTsiKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5tYXBwaW5nLnhtbHR2RmlsZS50aXRsZX19Iiwgc2VsZWN0KTsNCiAgICAgICAgICAgIHZhciBmaWxlID0gZGF0YVtkYktleV07DQogICAgICAgICAgICAvLyBYTUxUViBNYXBwaW5nDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAieC1tYXBwaW5nIjsNCiAgICAgICAgICAgIHZhciB4bWx0diA9IG5ldyBYTUxUVkZpbGUoKTsNCiAgICAgICAgICAgIHZhciBzZWxlY3QgPSB4bWx0di5nZXRQcm9ncmFtcyhmaWxlLCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJuYW1lIiwgZGJLZXkpOw0KICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgiaWQiLCAicG9wdXAtbWFwcGluZyIpOw0KICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCc7IGNoZWNrWG1sdHZDaGFubmVsKCciICsgaWQgKyAiJyx0aGlzLCciICsgeG1sRmlsZSArICInKTsiKTsNCiAgICAgICAgICAgIHNvcnRTZWxlY3Qoc2VsZWN0KTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5tYXBwaW5nLnhtbHR2Q2hhbm5lbC50aXRsZX19Iiwgc2VsZWN0KTsNCiAgICAgICAgICAgIC8vIFRpbWVzaGlmdA0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gIngtdGltZXNoaWZ0IjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5tYXBwaW5nLnRpbWVzaGlmdC5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoImlkIiwgInRpbWVzaGlmdCIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7Lm1hcHBpbmcudGltZXNoaWZ0LnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBJbnRlcmFjdGlvbg0KICAgICAgICAgICAgY29udGVudC5jcmVhdGVJbnRlcmFjdGlvbigpOw0KICAgICAgICAgICAgLy8gVXBsb2FkIGxvZ28NCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJjYW5jZWwiLCAie3suYnV0dG9uLnVwbG9hZExvZ299fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IHVwbG9hZExvZ28oKTsnKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgLy8gQWJvcnQNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJjYW5jZWwiLCAie3suYnV0dG9uLmNhbmNlbH19Iik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogc2hvd0VsZW1lbnQoInBvcHVwIiwgZmFsc2UpOycpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICAvLyBGaW5pc2hlZA0KICAgICAgICAgICAgdmFyIGlkcyA9IFtdOw0KICAgICAgICAgICAgaWRzID0gZ2V0QWxsU2VsZWN0ZWRDaGFubmVscygpOw0KICAgICAgICAgICAgaWYgKGlkcy5sZW5ndGggPT0gMCkgew0KICAgICAgICAgICAgICAgIGlkcy5wdXNoKGlkKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJzYXZlIiwgInt7LmJ1dHRvbi5kb25lfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBkb25lUG9wdXBEYXRhKCInICsgZGF0YVR5cGUgKyAnIiwgIicgKyBpZHMgKyAnIiwgImZhbHNlIik7Jyk7DQogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBkZWZhdWx0Og0KICAgICAgICAgICAgYnJlYWs7DQogICAgfQ0KICAgIHNob3dQb3BVcEVsZW1lbnQoJ3BvcHVwLWN1c3RvbScpOw0KfQ0KY2xhc3MgWE1MVFZGaWxlIHsNCiAgICBnZXRGaWxlcyhzZXQpIHsNCiAgICAgICAgbGV0IGZpbGVJRHMgPSBnZXRPYmpLZXlzKFNFUlZFUlsieGVwZyJdWyJ4bWx0dk1hcCJdKTsNCiAgICAgICAgbGV0IHZhbHVlcyA9IG5ldyBBcnJheSgiLSIpOw0KICAgICAgICBsZXQgdGV4dCA9IG5ldyBBcnJheSgiLSIpOw0KICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGZpbGVJRHMubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgICAgIGlmIChmaWxlSURzW2ldICE9ICJ4VGVWZSBEdW1teSIpIHsNCiAgICAgICAgICAgICAgICB2YWx1ZXMucHVzaChnZXRWYWx1ZUZyb21Qcm92aWRlckZpbGUoZmlsZUlEc1tpXSwgInhtbHR2IiwgImZpbGUueHRldmUiKSk7DQogICAgICAgICAgICAgICAgdGV4dC5wdXNoKGdldFZhbHVlRnJvbVByb3ZpZGVyRmlsZShmaWxlSURzW2ldLCAieG1sdHYiLCAibmFtZSIpKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgICAgIHZhbHVlcy5wdXNoKGZpbGVJRHNbaV0pOw0KICAgICAgICAgICAgICAgIHRleHQucHVzaChmaWxlSURzW2ldKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KICAgICAgICBsZXQgc2VsZWN0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiU0VMRUNUIik7DQogICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGV4dC5sZW5ndGg7IGkrKykgew0KICAgICAgICAgICAgdmFyIG9wdGlvbiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIk9QVElPTiIpOw0KICAgICAgICAgICAgb3B0aW9uLnNldEF0dHJpYnV0ZSgidmFsdWUiLCB2YWx1ZXNbaV0pOw0KICAgICAgICAgICAgb3B0aW9uLmlubmVyVGV4dCA9IHRleHRbaV07DQogICAgICAgICAgICBzZWxlY3QuYXBwZW5kQ2hpbGQob3B0aW9uKTsNCiAgICAgICAgfQ0KICAgICAgICBpZiAoc2V0ICE9ICIiKSB7DQogICAgICAgICAgICBzZWxlY3QudmFsdWUgPSBzZXQ7DQogICAgICAgIH0NCiAgICAgICAgcmV0dXJuIHNlbGVjdDsNCiAgICB9DQogICAgZ2V0UHJvZ3JhbXMoZmlsZSwgc2V0KSB7DQogICAgICAgIC8vdmFyIGZpbGVJRHM6c3RyaW5nW10gPSBnZXRPYmpLZXlzKFNFUlZFUlsieGVwZyJdWyJ4bWx0dk1hcCJdKQ0KICAgICAgICBsZXQgdmFsdWVzID0gZ2V0T2JqS2V5cyhTRVJWRVJbInhlcGciXVsieG1sdHZNYXAiXVtmaWxlXSk7DQogICAgICAgIGxldCB0ZXh0ID0gW107DQogICAgICAgIGxldCBkaXNwbGF5TmFtZTsNCiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB2YWx1ZXMubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgICAgIGlmIChTRVJWRVJbInhlcGciXVsieG1sdHZNYXAiXVtmaWxlXVt2YWx1ZXNbaV1dLmhhc093blByb3BlcnR5KCdkaXNwbGF5LW5hbWUnKSA9PSB0cnVlKSB7DQogICAgICAgICAgICAgICAgZGlzcGxheU5hbWUgPSBTRVJWRVJbInhlcGciXVsieG1sdHZNYXAiXVtmaWxlXVt2YWx1ZXNbaV1dWyJkaXNwbGF5LW5hbWUiXTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgICAgIGRpc3BsYXlOYW1lID0gIi0iOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgdGV4dFtpXSA9IGRpc3BsYXlOYW1lICsgIiAoIiArIHZhbHVlc1tpXSArICIpIjsNCiAgICAgICAgfQ0KICAgICAgICB0ZXh0LnVuc2hpZnQoIi0iKTsNCiAgICAgICAgdmFsdWVzLnVuc2hpZnQoIi0iKTsNCiAgICAgICAgbGV0IHNlbGVjdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlNFTEVDVCIpOw0KICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRleHQubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgICAgIHZhciBvcHRpb24gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJPUFRJT04iKTsNCiAgICAgICAgICAgIG9wdGlvbi5zZXRBdHRyaWJ1dGUoInZhbHVlIiwgdmFsdWVzW2ldKTsNCiAgICAgICAgICAgIG9wdGlvbi5pbm5lclRleHQgPSB0ZXh0W2ldOw0KICAgICAgICAgICAgc2VsZWN0LmFwcGVuZENoaWxkKG9wdGlvbik7DQogICAgICAgIH0NCiAgICAgICAgaWYgKHNldCAhPSAiIikgew0KICAgICAgICAgICAgc2VsZWN0LnZhbHVlID0gc2V0Ow0KICAgICAgICB9DQogICAgICAgIGlmIChzZWxlY3QudmFsdWUgIT0gc2V0KSB7DQogICAgICAgICAgICBzZWxlY3QudmFsdWUgPSAiLSI7DQogICAgICAgIH0NCiAgICAgICAgcmV0dXJuIHNlbGVjdDsNCiAgICB9DQp9DQpmdW5jdGlvbiBnZXRWYWx1ZUZyb21Qcm92aWRlckZpbGUoZmlsZSwgZmlsZVR5cGUsIGtleSkgew0KICAgIGlmIChmaWxlID09ICJ4VGVWZSBEdW1teSIpIHsNCiAgICAgICAgcmV0dXJuIGZpbGU7DQogICAgfQ0KICAgIGxldCBmaWxlSUQ7DQogICAgbGV0IGluZGljYXRvciA9IGZpbGUuY2hhckF0KDApOw0KICAgIHN3aXRjaCAoaW5kaWNhdG9yKSB7DQogICAgICAgIGNhc2UgIk0iOg0KICAgICAgICAgICAgZmlsZVR5cGUgPSAibTN1IjsNCiAgICAgICAgICAgIGZpbGVJRCA9IGZpbGU7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSAiSCI6DQogICAgICAgICAgICBmaWxlVHlwZSA9ICJoZGhyIjsNCiAgICAgICAgICAgIGZpbGVJRCA9IGZpbGU7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSAiWCI6DQogICAgICAgICAgICBmaWxlVHlwZSA9ICJ4bWx0diI7DQogICAgICAgICAgICBmaWxlSUQgPSBmaWxlLnN1YnN0cmluZygwLCBmaWxlLmxhc3RJbmRleE9mKCcuJykpOw0KICAgICAgICAgICAgYnJlYWs7DQogICAgfQ0KICAgIGlmIChTRVJWRVJbInNldHRpbmdzIl1bImZpbGVzIl1bZmlsZVR5cGVdLmhhc093blByb3BlcnR5KGZpbGVJRCkgPT0gdHJ1ZSkgew0KICAgICAgICB2YXIgZGF0YSA9IFNFUlZFUlsic2V0dGluZ3MiXVsiZmlsZXMiXVtmaWxlVHlwZV1bZmlsZUlEXTsNCiAgICAgICAgcmV0dXJuIGRhdGFba2V5XTsNCiAgICB9DQogICAgcmV0dXJuOw0KfQ0KZnVuY3Rpb24gc2V0WG1sdHZDaGFubmVsKGlkLCBlbGVtZW50KSB7DQogICAgbGV0IHhtbHR2ID0gbmV3IFhNTFRWRmlsZSgpOw0KICAgIGxldCB4bWxGaWxlID0gZWxlbWVudC52YWx1ZTsNCiAgICBsZXQgdHZnSWQgPSBTRVJWRVJbInhlcGciXVsiZXBnTWFwcGluZyJdW2lkXVsidHZnLWlkIl07DQogICAgbGV0IHRkID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInBvcHVwLW1hcHBpbmciKS5wYXJlbnRFbGVtZW50Ow0KICAgIHRkLmlubmVySFRNTCA9ICIiOw0KICAgIGxldCBzZWxlY3QgPSB4bWx0di5nZXRQcm9ncmFtcyhlbGVtZW50LnZhbHVlLCB0dmdJZCk7DQogICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgibmFtZSIsICJ4LW1hcHBpbmciKTsNCiAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJpZCIsICJwb3B1cC1tYXBwaW5nIik7DQogICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCc7IGNoZWNrWG1sdHZDaGFubmVsKCciICsgaWQgKyAiJyx0aGlzLCciICsgeG1sRmlsZSArICInKTsiKTsNCiAgICBzZWxlY3QuY2xhc3NOYW1lID0gImNoYW5nZWQiOw0KICAgIHNvcnRTZWxlY3Qoc2VsZWN0KTsNCiAgICB0ZC5hcHBlbmRDaGlsZChzZWxlY3QpOw0KICAgIGNoZWNrWG1sdHZDaGFubmVsKGlkLCBzZWxlY3QsIHhtbEZpbGUpOw0KfQ0KZnVuY3Rpb24gY2hlY2tYbWx0dkNoYW5uZWwoaWQsIGVsZW1lbnQsIHhtbEZpbGUpIHsNCiAgICBsZXQgdmFsdWUgPSBlbGVtZW50LnZhbHVlOw0KICAgIGxldCBib29sOw0KICAgIGxldCBjaGVja2JveCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdhY3RpdmUnKTsNCiAgICBsZXQgY2hhbm5lbCA9IFNFUlZFUlsieGVwZyJdWyJlcGdNYXBwaW5nIl1baWRdOw0KICAgIGxldCB1cGRhdGVMb2dvOw0KICAgIGJvb2wgPSB2YWx1ZSAhPSAiLSI7DQogICAgY2hlY2tib3guY2hlY2tlZCA9IGJvb2w7DQogICAgY2hlY2tib3guY2xhc3NOYW1lID0gImNoYW5nZWQiOw0KICAgIGNvbnNvbGUubG9nKHhtbEZpbGUpOw0KICAgIC8vIFVwZGF0ZSBjaGFubmVsIGxvZ28NCiAgICAvKg0KICAgIHVwZGF0ZUxvZ28gPSAoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInVwZGF0ZS1pY29uIikgYXMgSFRNTElucHV0RWxlbWVudCkuY2hlY2tlZA0KICAgIGNvbnNvbGUubG9nKHVwZGF0ZUxvZ28pOw0KICAgICovDQogICAgaWYgKHhtbEZpbGUgIT0gInhUZVZlIER1bW15IiAmJiBib29sID09IHRydWUpIHsNCiAgICAgICAgLy8oZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInVwZGF0ZS1pY29uIikgYXMgSFRNTElucHV0RWxlbWVudCkuY2hlY2tlZCA9IHRydWU7DQogICAgICAgIC8vKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ1cGRhdGUtaWNvbiIpIGFzIEhUTUxJbnB1dEVsZW1lbnQpLmNsYXNzTmFtZSA9ICJjaGFuZ2VkIjsNCiAgICAgICAgY29uc29sZS5sb2coIklEIiwgaWQpOw0KICAgICAgICBjaGFuZ2VDaGFubmVsTG9nbyhpZCk7DQogICAgICAgIHJldHVybjsNCiAgICB9DQogICAgaWYgKHhtbEZpbGUgPT0gInhUZVZlIER1bW15Iikgew0KICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidXBkYXRlLWljb24iKS5jaGVja2VkID0gZmFsc2U7DQogICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ1cGRhdGUtaWNvbiIpLmNsYXNzTmFtZSA9ICJjaGFuZ2VkIjsNCiAgICB9DQogICAgcmV0dXJuOw0KfQ0KZnVuY3Rpb24gY2hhbmdlQ2hhbm5lbExvZ28oaWQpIHsNCiAgICBsZXQgdXBkYXRlTG9nbzsNCiAgICBsZXQgY2hhbm5lbCA9IFNFUlZFUlsieGVwZyJdWyJlcGdNYXBwaW5nIl1baWRdOw0KICAgIGxldCBmID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInBvcHVwLXhtbHR2Iik7DQogICAgbGV0IHhtbHR2RmlsZSA9IGYub3B0aW9uc1tmLnNlbGVjdGVkSW5kZXhdLnZhbHVlOw0KICAgIGxldCBtID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInBvcHVwLW1hcHBpbmciKTsNCiAgICBsZXQgeE1hcHBpbmcgPSBtLm9wdGlvbnNbbS5zZWxlY3RlZEluZGV4XS52YWx1ZTsNCiAgICBsZXQgeG1sdHZMb2dvID0gU0VSVkVSWyJ4ZXBnIl1bInhtbHR2TWFwIl1beG1sdHZGaWxlXVt4TWFwcGluZ11bImljb24iXTsNCiAgICB1cGRhdGVMb2dvID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInVwZGF0ZS1pY29uIikuY2hlY2tlZDsNCiAgICBpZiAodXBkYXRlTG9nbyA9PSB0cnVlICYmIHhtbHR2RmlsZSAhPSAieFRlVmUgRHVtbXkiKSB7DQogICAgICAgIGlmIChTRVJWRVJbInhlcGciXVsieG1sdHZNYXAiXVt4bWx0dkZpbGVdLmhhc093blByb3BlcnR5KHhNYXBwaW5nKSkgew0KICAgICAgICAgICAgdmFyIGxvZ28gPSB4bWx0dkxvZ287DQogICAgICAgIH0NCiAgICAgICAgZWxzZSB7DQogICAgICAgICAgICBsb2dvID0gY2hhbm5lbFsidHZnLWxvZ28iXTsNCiAgICAgICAgfQ0KICAgICAgICB2YXIgbG9nb0lucHV0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNoYW5uZWwtaWNvbiIpOw0KICAgICAgICBsb2dvSW5wdXQudmFsdWUgPSBsb2dvOw0KICAgICAgICBpZiAoQlVMS19FRElUID09IGZhbHNlKSB7DQogICAgICAgICAgICBsb2dvSW5wdXQuY2xhc3NOYW1lID0gImNoYW5nZWQiOw0KICAgICAgICB9DQogICAgfQ0KfQ0KZnVuY3Rpb24gc2F2ZVBvcHVwRGF0YShkYXRhVHlwZSwgaWQsIHJlbW92ZSwgb3B0aW9uKSB7DQogICAgaWYgKGRhdGFUeXBlID09ICJtYXBwaW5nIikgew0KICAgICAgICBsZXQgZGF0YSA9IHt9Ow0KICAgICAgICBjb25zb2xlLmxvZygiU2F2ZSBtYXBwaW5nIGRhdGEiKTsNCiAgICAgICAgbGV0IGNtZCA9ICJzYXZlRXBnTWFwcGluZyI7DQogICAgICAgIGRhdGFbImVwZ01hcHBpbmciXSA9IFNFUlZFUlsieGVwZyJdWyJlcGdNYXBwaW5nIl07DQogICAgICAgIGNvbnNvbGUubG9nKCJTRU5EIFRPIFNFUlZFUiIpOw0KICAgICAgICBsZXQgc2VydmVyID0gbmV3IFNlcnZlcihjbWQpOw0KICAgICAgICBzZXJ2ZXIucmVxdWVzdChkYXRhKTsNCiAgICAgICAgZGVsZXRlIFVORE9bImVwZ01hcHBpbmciXTsNCiAgICAgICAgcmV0dXJuOw0KICAgIH0NCiAgICBjb25zb2xlLmxvZygiU2F2ZSBwb3B1cCBkYXRhIik7DQogICAgbGV0IGRpdiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJwb3B1cC1jdXN0b20iKTsNCiAgICBsZXQgaW5wdXRzID0gZGl2LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJUQUJMRSIpWzBdLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJJTlBVVCIpOw0KICAgIGxldCBzZWxlY3RzID0gZGl2LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJUQUJMRSIpWzBdLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJTRUxFQ1QiKTsNCiAgICBsZXQgaW5wdXQgPSB7fTsNCiAgICBsZXQgY29uZmlybU1zZzsNCiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHNlbGVjdHMubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgdmFyIG5hbWU7DQogICAgICAgIG5hbWUgPSBzZWxlY3RzW2ldLm5hbWU7DQogICAgICAgIHZhciB2YWx1ZSA9IHNlbGVjdHNbaV0udmFsdWU7DQogICAgICAgIHN3aXRjaCAobmFtZSkgew0KICAgICAgICAgICAgY2FzZSAidHVuZXIiOg0KICAgICAgICAgICAgICAgIGlucHV0W25hbWVdID0gcGFyc2VJbnQodmFsdWUpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgICAgICBpbnB1dFtuYW1lXSA9IHZhbHVlOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICB9DQogICAgfQ0KICAgIGZvciAobGV0IGkgPSAwOyBpIDwgaW5wdXRzLmxlbmd0aDsgaSsrKSB7DQogICAgICAgIHN3aXRjaCAoaW5wdXRzW2ldLnR5cGUpIHsNCiAgICAgICAgICAgIGNhc2UgImNoZWNrYm94IjoNCiAgICAgICAgICAgICAgICBuYW1lID0gaW5wdXRzW2ldLm5hbWU7DQogICAgICAgICAgICAgICAgaW5wdXRbbmFtZV0gPSBpbnB1dHNbaV0uY2hlY2tlZDsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInRleHQiOg0KICAgICAgICAgICAgY2FzZSAiaGlkZGVuIjoNCiAgICAgICAgICAgIGNhc2UgInBhc3N3b3JkIjoNCiAgICAgICAgICAgICAgICBuYW1lID0gaW5wdXRzW2ldLm5hbWU7DQogICAgICAgICAgICAgICAgc3dpdGNoIChuYW1lKSB7DQogICAgICAgICAgICAgICAgICAgIGNhc2UgInR1bmVyIjoNCiAgICAgICAgICAgICAgICAgICAgICAgIGlucHV0W25hbWVdID0gcGFyc2VJbnQoaW5wdXRzW2ldLnZhbHVlKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgICAgICBkZWZhdWx0Og0KICAgICAgICAgICAgICAgICAgICAgICAgaW5wdXRbbmFtZV0gPSBpbnB1dHNbaV0udmFsdWU7DQogICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIH0NCiAgICB9DQogICAgbGV0IGRhdGEgPSB7fTsNCiAgICBsZXQgY21kOw0KICAgIGlmIChyZW1vdmUgPT0gdHJ1ZSkgew0KICAgICAgICBpbnB1dFsiZGVsZXRlIl0gPSB0cnVlOw0KICAgIH0NCiAgICBzd2l0Y2ggKGRhdGFUeXBlKSB7DQogICAgICAgIGNhc2UgInVzZXJzIjoNCiAgICAgICAgICAgIGNvbmZpcm1Nc2cgPSAiRGVsZXRlIHRoaXMgdXNlcj8iOw0KICAgICAgICAgICAgaWYgKGlkID09ICItIikgew0KICAgICAgICAgICAgICAgIGNtZCA9ICJzYXZlTmV3VXNlciI7DQogICAgICAgICAgICAgICAgZGF0YVsidXNlckRhdGEiXSA9IGlucHV0Ow0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgZWxzZSB7DQogICAgICAgICAgICAgICAgY21kID0gInNhdmVVc2VyRGF0YSI7DQogICAgICAgICAgICAgICAgbGV0IGQgPSB7fTsNCiAgICAgICAgICAgICAgICBkW2lkXSA9IGlucHV0Ow0KICAgICAgICAgICAgICAgIGRhdGFbInVzZXJEYXRhIl0gPSBkOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGNhc2UgIm0zdSI6DQogICAgICAgICAgICBjb25maXJtTXNnID0gIkRlbGV0ZSB0aGlzIHBsYXlsaXN0PyI7DQogICAgICAgICAgICBzd2l0Y2ggKG9wdGlvbikgew0KICAgICAgICAgICAgICAgIC8vIFBvcHVwOiBTYXZlDQogICAgICAgICAgICAgICAgY2FzZSAwOg0KICAgICAgICAgICAgICAgICAgICBjbWQgPSAic2F2ZUZpbGVzTTNVIjsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgLy8gUG9wdXA6IFVwZGF0ZQ0KICAgICAgICAgICAgICAgIGNhc2UgMToNCiAgICAgICAgICAgICAgICAgICAgY21kID0gInVwZGF0ZUZpbGVNM1UiOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGRhdGFbImZpbGVzIl0gPSB7fTsNCiAgICAgICAgICAgIGRhdGFbImZpbGVzIl1bZGF0YVR5cGVdID0ge307DQogICAgICAgICAgICBkYXRhWyJmaWxlcyJdW2RhdGFUeXBlXVtpZF0gPSBpbnB1dDsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJoZGhyIjoNCiAgICAgICAgICAgIGNvbmZpcm1Nc2cgPSAiRGVsZXRlIHRoaXMgSERIb21lUnVuIHR1bmVyPyI7DQogICAgICAgICAgICBzd2l0Y2ggKG9wdGlvbikgew0KICAgICAgICAgICAgICAgIC8vIFBvcHVwOiBTYXZlDQogICAgICAgICAgICAgICAgY2FzZSAwOg0KICAgICAgICAgICAgICAgICAgICBjbWQgPSAic2F2ZUZpbGVzSERIUiI7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIC8vIFBvcHVwOiBVcGRhdGUNCiAgICAgICAgICAgICAgICBjYXNlIDE6DQogICAgICAgICAgICAgICAgICAgIGNtZCA9ICJ1cGRhdGVGaWxlSERIUiI7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgZGF0YVsiZmlsZXMiXSA9IHt9Ow0KICAgICAgICAgICAgZGF0YVsiZmlsZXMiXVtkYXRhVHlwZV0gPSB7fTsNCiAgICAgICAgICAgIGRhdGFbImZpbGVzIl1bZGF0YVR5cGVdW2lkXSA9IGlucHV0Ow0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGNhc2UgInhtbHR2IjoNCiAgICAgICAgICAgIGNvbmZpcm1Nc2cgPSAiRGVsZXRlIHRoaXMgWE1MVFYgZmlsZT8iOw0KICAgICAgICAgICAgc3dpdGNoIChvcHRpb24pIHsNCiAgICAgICAgICAgICAgICAvLyBQb3B1cDogU2F2ZQ0KICAgICAgICAgICAgICAgIGNhc2UgMDoNCiAgICAgICAgICAgICAgICAgICAgY21kID0gInNhdmVGaWxlc1hNTFRWIjsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgLy8gUG9wdXA6IFVwZGF0ZQ0KICAgICAgICAgICAgICAgIGNhc2UgMToNCiAgICAgICAgICAgICAgICAgICAgY21kID0gInVwZGF0ZUZpbGVYTUxUViI7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgZGF0YVsiZmlsZXMiXSA9IHt9Ow0KICAgICAgICAgICAgZGF0YVsiZmlsZXMiXVtkYXRhVHlwZV0gPSB7fTsNCiAgICAgICAgICAgIGRhdGFbImZpbGVzIl1bZGF0YVR5cGVdW2lkXSA9IGlucHV0Ow0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGNhc2UgImZpbHRlciI6DQogICAgICAgICAgICBjb25maXJtTXNnID0gIkRlbGV0ZSB0aGlzIGZpbHRlcj8iOw0KICAgICAgICAgICAgY21kID0gInNhdmVGaWx0ZXIiOw0KICAgICAgICAgICAgZGF0YVsiZmlsdGVyIl0gPSB7fTsNCiAgICAgICAgICAgIGRhdGFbImZpbHRlciJdW2lkXSA9IGlucHV0Ow0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICBjb25zb2xlLmxvZyhkYXRhVHlwZSwgaWQpOw0KICAgICAgICAgICAgcmV0dXJuOw0KICAgIH0NCiAgICBpZiAocmVtb3ZlID09IHRydWUpIHsNCiAgICAgICAgaWYgKCFjb25maXJtKGNvbmZpcm1Nc2cpKSB7DQogICAgICAgICAgICBzaG93RWxlbWVudCgicG9wdXAiLCBmYWxzZSk7DQogICAgICAgICAgICByZXR1cm47DQogICAgICAgIH0NCiAgICB9DQogICAgY29uc29sZS5sb2coIlNFTkQgVE8gU0VSVkVSIik7DQogICAgY29uc29sZS5sb2coZGF0YSk7DQogICAgbGV0IHNlcnZlciA9IG5ldyBTZXJ2ZXIoY21kKTsNCiAgICBzZXJ2ZXIucmVxdWVzdChkYXRhKTsNCn0NCmZ1bmN0aW9uIGRvbmVQb3B1cERhdGEoZGF0YVR5cGUsIGlkc1N0cikgew0KICAgIGxldCBpZHMgPSBpZHNTdHIuc3BsaXQoJywnKTsNCiAgICBsZXQgZGl2ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInBvcHVwLWN1c3RvbSIpOw0KICAgIGxldCBpbnB1dHMgPSBkaXYuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSgiY2hhbmdlZCIpOw0KICAgIGlkcy5mb3JFYWNoKGlkID0+IHsNCiAgICAgICAgbGV0IGlucHV0Ow0KICAgICAgICBpbnB1dCA9IFNFUlZFUlsieGVwZyJdWyJlcGdNYXBwaW5nIl1baWRdOw0KICAgICAgICBjb25zb2xlLmxvZyhpbnB1dCk7DQogICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgaW5wdXRzLmxlbmd0aDsgaSsrKSB7DQogICAgICAgICAgICBsZXQgbmFtZTsNCiAgICAgICAgICAgIGxldCB2YWx1ZTsNCiAgICAgICAgICAgIHN3aXRjaCAoaW5wdXRzW2ldLnRhZ05hbWUpIHsNCiAgICAgICAgICAgICAgICBjYXNlICJJTlBVVCI6DQogICAgICAgICAgICAgICAgICAgIHN3aXRjaCAoaW5wdXRzW2ldLnR5cGUpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgImNoZWNrYm94IjoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lID0gaW5wdXRzW2ldLm5hbWU7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSBpbnB1dHNbaV0uY2hlY2tlZDsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnB1dFtuYW1lXSA9IHZhbHVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAidGV4dCI6DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZSA9IGlucHV0c1tpXS5uYW1lOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlID0gaW5wdXRzW2ldLnZhbHVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlucHV0W25hbWVdID0gdmFsdWU7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAiU0VMRUNUIjoNCiAgICAgICAgICAgICAgICAgICAgbmFtZSA9IGlucHV0c1tpXS5uYW1lOw0KICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IGlucHV0c1tpXS52YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgaW5wdXRbbmFtZV0gPSB2YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBzd2l0Y2ggKG5hbWUpIHsNCiAgICAgICAgICAgICAgICBjYXNlICJ0dmctbG9nbyI6DQogICAgICAgICAgICAgICAgICAgIC8vKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5jaGlsZE5vZGVzWzJdLmZpcnN0Q2hpbGQgYXMgSFRNTEVsZW1lbnQpLnNldEF0dHJpYnV0ZSgic3JjIiwgdmFsdWUpDQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgIngtbmFtZSI6DQogICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5jaGlsZE5vZGVzWzNdLmZpcnN0Q2hpbGQuaW5uZXJIVE1MID0gdmFsdWU7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgIngtY2F0ZWdvcnkiOg0KICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkuY2hpbGROb2Rlc1szXS5maXJzdENoaWxkLmNsYXNzTmFtZSA9IHZhbHVlOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBjYXNlICJ4LWdyb3VwLXRpdGxlIjoNCiAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpLmNoaWxkTm9kZXNbNV0uZmlyc3RDaGlsZC5pbm5lckhUTUwgPSB2YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAieC14bWx0di1maWxlIjoNCiAgICAgICAgICAgICAgICAgICAgaWYgKHZhbHVlICE9ICJ4VGVWZSBEdW1teSIgJiYgdmFsdWUgIT0gIi0iKSB7DQogICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IGdldFZhbHVlRnJvbVByb3ZpZGVyRmlsZSh2YWx1ZSwgInhtbHR2IiwgIm5hbWUiKTsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBpZiAodmFsdWUgPT0gIi0iKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBpbnB1dFsieC1hY3RpdmUiXSA9IGZhbHNlOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5jaGlsZE5vZGVzWzZdLmZpcnN0Q2hpbGQuaW5uZXJIVE1MID0gdmFsdWU7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgIngtbWFwcGluZyI6DQogICAgICAgICAgICAgICAgICAgIGlmICh2YWx1ZSA9PSAiLSIpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGlucHV0WyJ4LWFjdGl2ZSJdID0gZmFsc2U7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpLmNoaWxkTm9kZXNbN10uZmlyc3RDaGlsZC5pbm5lckhUTUwgPSB2YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAieC10aW1lc2hpZnQiOg0KICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkuY2hpbGROb2Rlc1s4XS5maXJzdENoaWxkLmlubmVySFRNTCA9IHZhbHVlOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBkZWZhdWx0Og0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgY3JlYXRlU2VhcmNoT2JqKCk7DQogICAgICAgICAgICBzZWFyY2hJbk1hcHBpbmcoKTsNCiAgICAgICAgfQ0KICAgICAgICBpZiAoaW5wdXRbIngtYWN0aXZlIl0gPT0gZmFsc2UpIHsNCiAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5jbGFzc05hbWUgPSAibm90QWN0aXZlRVBHIjsNCiAgICAgICAgfQ0KICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5jbGFzc05hbWUgPSAiYWN0aXZlRVBHIjsNCiAgICAgICAgfQ0KICAgICAgICBjb25zb2xlLmxvZyhpbnB1dFsidHZnLWxvZ28iXSk7DQogICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5jaGlsZE5vZGVzWzJdLmZpcnN0Q2hpbGQuc2V0QXR0cmlidXRlKCJzcmMiLCBpbnB1dFsidHZnLWxvZ28iXSk7DQogICAgfSk7DQogICAgc2hvd0VsZW1lbnQoInBvcHVwIiwgZmFsc2UpOw0KICAgIHJldHVybjsNCn0NCmZ1bmN0aW9uIHNob3dQcmV2aWV3KGVsZW1lbnQpIHsNCiAgICBsZXQgZGl2ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm15U3RyZWFtc0JveCIpOw0KICAgIHN3aXRjaCAoZWxlbWVudCkgew0KICAgICAgICBjYXNlIGZhbHNlOg0KICAgICAgICAgICAgZGl2LmNsYXNzTmFtZSA9ICJub3RWaXNpYmxlIjsNCiAgICAgICAgICAgIHJldHVybjsNCiAgICB9DQogICAgbGV0IHN0cmVhbXMgPSBbImFjdGl2ZVN0cmVhbXMiLCAiaW5hY3RpdmVTdHJlYW1zIl07DQogICAgc3RyZWFtcy5mb3JFYWNoKHByZXZpZXcgPT4gew0KICAgICAgICBsZXQgdGFibGUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChwcmV2aWV3KTsNCiAgICAgICAgdGFibGUuaW5uZXJIVE1MID0gIiI7DQogICAgICAgIGxldCBvYmogPSBTRVJWRVJbImRhdGEiXVsiU3RyZWFtUHJldmlld1VJIl1bcHJldmlld107DQogICAgICAgIG9iai5mb3JFYWNoKGNoYW5uZWwgPT4gew0KICAgICAgICAgICAgbGV0IHRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVFIiKTsNCiAgICAgICAgICAgIGxldCB0ZEtleSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICBsZXQgdGRWYWwgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgdGRLZXkuY2xhc3NOYW1lID0gInRkS2V5IjsNCiAgICAgICAgICAgIHRkVmFsLmNsYXNzTmFtZSA9ICJ0ZFZhbCI7DQogICAgICAgICAgICBzd2l0Y2ggKHByZXZpZXcpIHsNCiAgICAgICAgICAgICAgICBjYXNlICJhY3RpdmVTdHJlYW1zIjoNCiAgICAgICAgICAgICAgICAgICAgdGRLZXkuaW5uZXJUZXh0ID0gIkNoYW5uZWw6ICgrKSI7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgImluYWN0aXZlU3RyZWFtcyI6DQogICAgICAgICAgICAgICAgICAgIHRkS2V5LmlubmVyVGV4dCA9ICJDaGFubmVsOiAoLSkiOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIHRkVmFsLmlubmVyVGV4dCA9IGNoYW5uZWw7DQogICAgICAgICAgICB0ci5hcHBlbmRDaGlsZCh0ZEtleSk7DQogICAgICAgICAgICB0ci5hcHBlbmRDaGlsZCh0ZFZhbCk7DQogICAgICAgICAgICB0YWJsZS5hcHBlbmRDaGlsZCh0cik7DQogICAgICAgIH0pOw0KICAgIH0pOw0KICAgIHNob3dFbGVtZW50KCJsb2FkaW5nIiwgZmFsc2UpOw0KICAgIGRpdi5jbGFzc05hbWUgPSAidmlzaWJsZSI7DQogICAgcmV0dXJuOw0KfQ0K" webUI["html/js/network_ts.js"] = "Y2xhc3MgU2VydmVyIHsNCiAgICBjb25zdHJ1Y3RvcihjbWQpIHsNCiAgICAgICAgdGhpcy5jbWQgPSBjbWQ7DQogICAgfQ0KICAgIHJlcXVlc3QoZGF0YSkgew0KICAgICAgICBpZiAoU0VSVkVSX0NPTk5FQ1RJT04gPT0gdHJ1ZSkgew0KICAgICAgICAgICAgcmV0dXJuOw0KICAgICAgICB9DQogICAgICAgIFNFUlZFUl9DT05ORUNUSU9OID0gdHJ1ZTsNCiAgICAgICAgY29uc29sZS5sb2coZGF0YSk7DQogICAgICAgIGlmICh0aGlzLmNtZCAhPSAidXBkYXRlTG9nIikgew0KICAgICAgICAgICAgc2hvd0VsZW1lbnQoImxvYWRpbmciLCB0cnVlKTsNCiAgICAgICAgICAgIFVORE8gPSBuZXcgT2JqZWN0KCk7DQogICAgICAgIH0NCiAgICAgICAgc3dpdGNoICh3aW5kb3cubG9jYXRpb24ucHJvdG9jb2wpIHsNCiAgICAgICAgICAgIGNhc2UgImh0dHA6IjoNCiAgICAgICAgICAgICAgICB0aGlzLnByb3RvY29sID0gIndzOi8vIjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImh0dHBzOiI6DQogICAgICAgICAgICAgICAgdGhpcy5wcm90b2NvbCA9ICJ3c3M6Ly8iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICB9DQogICAgICAgIHZhciB1cmwgPSB0aGlzLnByb3RvY29sICsgd2luZG93LmxvY2F0aW9uLmhvc3RuYW1lICsgIjoiICsgd2luZG93LmxvY2F0aW9uLnBvcnQgKyAiL2RhdGEvIiArICI/VG9rZW49IiArIGdldENvb2tpZSgiVG9rZW4iKTsNCiAgICAgICAgZGF0YVsiY21kIl0gPSB0aGlzLmNtZDsNCiAgICAgICAgdmFyIHdzID0gbmV3IFdlYlNvY2tldCh1cmwpOw0KICAgICAgICB3cy5vbm9wZW4gPSBmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICBXU19BVkFJTEFCTEUgPSB0cnVlOw0KICAgICAgICAgICAgY29uc29sZS5sb2coIlJFUVVFU1QgKEpTKToiKTsNCiAgICAgICAgICAgIGNvbnNvbGUubG9nKGRhdGEpOw0KICAgICAgICAgICAgY29uc29sZS5sb2coIlJFUVVFU1Q6IChKU09OKSIpOw0KICAgICAgICAgICAgY29uc29sZS5sb2coSlNPTi5zdHJpbmdpZnkoZGF0YSkpOw0KICAgICAgICAgICAgdGhpcy5zZW5kKEpTT04uc3RyaW5naWZ5KGRhdGEpKTsNCiAgICAgICAgfTsNCiAgICAgICAgd3Mub25lcnJvciA9IGZ1bmN0aW9uIChlKSB7DQogICAgICAgICAgICBjb25zb2xlLmxvZygiTm8gd2Vic29ja2V0IGNvbm5lY3Rpb24gdG8geFRlVmUgY291bGQgYmUgZXN0YWJsaXNoZWQuIENoZWNrIHlvdXIgbmV0d29yayBjb25maWd1cmF0aW9uLiIpOw0KICAgICAgICAgICAgU0VSVkVSX0NPTk5FQ1RJT04gPSBmYWxzZTsNCiAgICAgICAgICAgIGlmIChXU19BVkFJTEFCTEUgPT0gZmFsc2UpIHsNCiAgICAgICAgICAgICAgICBhbGVydCgiTm8gd2Vic29ja2V0IGNvbm5lY3Rpb24gdG8geFRlVmUgY291bGQgYmUgZXN0YWJsaXNoZWQuIENoZWNrIHlvdXIgbmV0d29yayBjb25maWd1cmF0aW9uLiIpOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9Ow0KICAgICAgICB3cy5vbm1lc3NhZ2UgPSBmdW5jdGlvbiAoZSkgew0KICAgICAgICAgICAgU0VSVkVSX0NPTk5FQ1RJT04gPSBmYWxzZTsNCiAgICAgICAgICAgIHNob3dFbGVtZW50KCJsb2FkaW5nIiwgZmFsc2UpOw0KICAgICAgICAgICAgY29uc29sZS5sb2coIlJFU1BPTlNFOiIpOw0KICAgICAgICAgICAgdmFyIHJlc3BvbnNlID0gSlNPTi5wYXJzZShlLmRhdGEpOw0KICAgICAgICAgICAgY29uc29sZS5sb2cocmVzcG9uc2UpOw0KICAgICAgICAgICAgaWYgKHJlc3BvbnNlLmhhc093blByb3BlcnR5KCJ0b2tlbiIpKSB7DQogICAgICAgICAgICAgICAgZG9jdW1lbnQuY29va2llID0gIlRva2VuPSIgKyByZXNwb25zZVsidG9rZW4iXTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGlmIChyZXNwb25zZVsic3RhdHVzIl0gPT0gZmFsc2UpIHsNCiAgICAgICAgICAgICAgICBhbGVydChyZXNwb25zZVsiZXJyIl0pOw0KICAgICAgICAgICAgICAgIGlmIChyZXNwb25zZS5oYXNPd25Qcm9wZXJ0eSgicmVsb2FkIikpIHsNCiAgICAgICAgICAgICAgICAgICAgbG9jYXRpb24ucmVsb2FkKCk7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIHJldHVybjsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGlmIChyZXNwb25zZS5oYXNPd25Qcm9wZXJ0eSgibG9nb1VSTCIpKSB7DQogICAgICAgICAgICAgICAgdmFyIGRpdiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjaGFubmVsLWljb24iKTsNCiAgICAgICAgICAgICAgICBkaXYudmFsdWUgPSByZXNwb25zZVsibG9nb1VSTCJdOw0KICAgICAgICAgICAgICAgIGRpdi5jbGFzc05hbWUgPSAiY2hhbmdlZCI7DQogICAgICAgICAgICAgICAgcmV0dXJuOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgc3dpdGNoIChkYXRhWyJjbWQiXSkgew0KICAgICAgICAgICAgICAgIGNhc2UgInVwZGF0ZUxvZyI6DQogICAgICAgICAgICAgICAgICAgIFNFUlZFUlsibG9nIl0gPSByZXNwb25zZVsibG9nIl07DQogICAgICAgICAgICAgICAgICAgIGlmIChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29udGVudF9sb2ciKSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgc2hvd0xvZ3MoZmFsc2UpOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIHJldHVybjsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgICAgICAgICAgU0VSVkVSID0gbmV3IE9iamVjdCgpOw0KICAgICAgICAgICAgICAgICAgICBTRVJWRVIgPSByZXNwb25zZTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBpZiAocmVzcG9uc2UuaGFzT3duUHJvcGVydHkoIm9wZW5NZW51IikpIHsNCiAgICAgICAgICAgICAgICB2YXIgbWVudSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHJlc3BvbnNlWyJvcGVuTWVudSJdKTsNCiAgICAgICAgICAgICAgICBtZW51LmNsaWNrKCk7DQogICAgICAgICAgICAgICAgc2hvd0VsZW1lbnQoInBvcHVwIiwgZmFsc2UpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgaWYgKHJlc3BvbnNlLmhhc093blByb3BlcnR5KCJvcGVuTGluayIpKSB7DQogICAgICAgICAgICAgICAgd2luZG93LmxvY2F0aW9uID0gcmVzcG9uc2VbIm9wZW5MaW5rIl07DQogICAgICAgICAgICB9DQogICAgICAgICAgICBpZiAocmVzcG9uc2UuaGFzT3duUHJvcGVydHkoImFsZXJ0IikpIHsNCiAgICAgICAgICAgICAgICBhbGVydChyZXNwb25zZVsiYWxlcnQiXSk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBpZiAocmVzcG9uc2UuaGFzT3duUHJvcGVydHkoInJlbG9hZCIpKSB7DQogICAgICAgICAgICAgICAgbG9jYXRpb24ucmVsb2FkKCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBpZiAocmVzcG9uc2UuaGFzT3duUHJvcGVydHkoIndpemFyZCIpKSB7DQogICAgICAgICAgICAgICAgY3JlYXRlTGF5b3V0KCk7DQogICAgICAgICAgICAgICAgY29uZmlndXJhdGlvbldpemFyZFtyZXNwb25zZVsid2l6YXJkIl1dLmNyZWF0ZVdpemFyZCgpOw0KICAgICAgICAgICAgICAgIHJldHVybjsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGNyZWF0ZUxheW91dCgpOw0KICAgICAgICB9Ow0KICAgIH0NCn0NCmZ1bmN0aW9uIGdldENvb2tpZShuYW1lKSB7DQogICAgdmFyIHZhbHVlID0gIjsgIiArIGRvY3VtZW50LmNvb2tpZTsNCiAgICB2YXIgcGFydHMgPSB2YWx1ZS5zcGxpdCgiOyAiICsgbmFtZSArICI9Iik7DQogICAgaWYgKHBhcnRzLmxlbmd0aCA9PSAyKQ0KICAgICAgICByZXR1cm4gcGFydHMucG9wKCkuc3BsaXQoIjsiKS5zaGlmdCgpOw0KfQ0K" - webUI["html/login.html"] = "PCFkb2N0eXBlIGh0bWw+DQo8aHRtbD4NCiAgPGhlYWQ+DQogICAgPG1ldGEgY2hhcnNldD0idXRmLTgiPg0KICAgIDxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgsIGluaXRpYWwtc2NhbGU9MS4wIiAvPiANCiAgICA8dGl0bGU+eFRlVmU8L3RpdGxlPg0KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iY3NzL3NjcmVlbi5jc3MiIHR5cGU9InRleHQvY3NzIj4NCiAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9ImNzcy9iYXNlLmNzcyIgdHlwZT0idGV4dC9jc3MiPg0KICAgIDxzY3JpcHQgbGFuZ3VhZ2U9ImphdmFzY3JpcHQiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJqcy9uZXR3b3JrX3RzLmpzIj48L3NjcmlwdD4NCiAgICA8c2NyaXB0IGxhbmd1YWdlPSJqYXZhc2NyaXB0IiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ianMvYXV0aGVudGljYXRpb25fdHMuanMiPjwvc2NyaXB0Pg0KICA8L2hlYWQ+DQoNCiAgICA8Ym9keT4NCiAgICAgICAgICANCiAgICAgIDxkaXYgaWQ9ImhlYWRlciIgY2xhc3M9ImltZ0NlbnRlciI+PC9kaXY+DQoNCiAgICAgIDxkaXYgaWQ9ImJveCI+DQoNCiAgICAgICAgPGRpdiBpZD0iaGVhZGxpbmUiPg0KICAgICAgICAgIDxoMSBpZD0iaGVhZC10ZXh0IiBjbGFzcz0iY2VudGVyIj57ey5sb2dpbi5oZWFkbGluZX19PC9oMT4NCiAgICAgICAgPC9kaXY+DQoNCiAgICAgICAgPHAgaWQ9ImVyciIgY2xhc3M9ImVycm9yTXNnIGNlbnRlciI+e3suYXV0aGVudGljYXRpb25FcnJ9fTwvcD4NCg0KICAgICAgICA8ZGl2IGlkPSJjb250ZW50Ij4NCg0KICAgICAgICAgICAgPGZvcm0gaWQ9ImF1dGhlbnRpY2F0aW9uIiBhY3Rpb249IiIgbWV0aG9kPSJwb3N0Ij4NCg0KICAgICAgICAgICAgICA8aDU+e3subG9naW4udXNlcm5hbWUudGl0bGV9fTo8L2g1Pg0KICAgICAgICAgICAgICA8aW5wdXQgaWQ9InVzZXJuYW1lIiB0eXBlPSJ0ZXh0IiBuYW1lPSJ1c2VybmFtZSIgcGxhY2Vob2xkZXI9IlVzZXJuYW1lIiB2YWx1ZT0iIj4NCiAgICAgICAgICAgICAgPGg1Pnt7LmxvZ2luLnBhc3N3b3JkLnRpdGxlfX06PC9oNT4NCiAgICAgICAgICAgICAgPGlucHV0IGlkPSJwYXNzd29yZCIgdHlwZT0icGFzc3dvcmQiIG5hbWU9InBhc3N3b3JkIiBwbGFjZWhvbGRlcj0iUGFzc3dvcmQiIHZhbHVlPSIiPg0KDQogICAgICAgICAgICA8L2Zvcm0+DQoNCiAgICAgICAgPC9kaXY+DQoNCiAgICAgICAgPGRpdiBpZD0iYm94LWZvb3RlciI+DQogICAgICAgICAgPGlucHV0IGlkPSJzdWJtaXQiIGNsYXNzPSIiIHR5cGU9ImJ1dHRvbiIgdmFsdWU9Int7LmJ1dHRvbi5sb2dpbn19IiBvbmNsaWNrPSJqYXZhc2NyaXB0OiBsb2dpbigpOyI+DQogICAgICAgIDwvZGl2Pg0KICAgICAgICANCiAgICAgIDwvZGl2Pg0KDQogICAgPC9ib2R5Pg0KICAgIA0KPC9odG1sPg==" - webUI["html/img/filter.png"] = "iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAAAXNSR0IArs4c6QAAAAlwSFlzAAAsSwAALEsBpT2WqQAABCRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IlhNUCBDb3JlIDUuNC4wIj4KICAgPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIgogICAgICAgICAgICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgICAgICAgICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyI+CiAgICAgICAgIDx0aWZmOlJlc29sdXRpb25Vbml0PjI8L3RpZmY6UmVzb2x1dGlvblVuaXQ+CiAgICAgICAgIDx0aWZmOkNvbXByZXNzaW9uPjU8L3RpZmY6Q29tcHJlc3Npb24+CiAgICAgICAgIDx0aWZmOlhSZXNvbHV0aW9uPjI4ODwvdGlmZjpYUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6T3JpZW50YXRpb24+MTwvdGlmZjpPcmllbnRhdGlvbj4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+Mjg4PC90aWZmOllSZXNvbHV0aW9uPgogICAgICAgICA8ZXhpZjpQaXhlbFhEaW1lbnNpb24+NTA8L2V4aWY6UGl4ZWxYRGltZW5zaW9uPgogICAgICAgICA8ZXhpZjpDb2xvclNwYWNlPjE8L2V4aWY6Q29sb3JTcGFjZT4KICAgICAgICAgPGV4aWY6UGl4ZWxZRGltZW5zaW9uPjUwPC9leGlmOlBpeGVsWURpbWVuc2lvbj4KICAgICAgICAgPGRjOnN1YmplY3Q+CiAgICAgICAgICAgIDxyZGY6QmFnLz4KICAgICAgICAgPC9kYzpzdWJqZWN0PgogICAgICAgICA8eG1wOk1vZGlmeURhdGU+MjAxOC0wNy0yOFQxOTowNzo2OTwveG1wOk1vZGlmeURhdGU+CiAgICAgICAgIDx4bXA6Q3JlYXRvclRvb2w+UGl4ZWxtYXRvciAzLjM8L3htcDpDcmVhdG9yVG9vbD4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgIDwvcmRmOlJERj4KPC94OnhtcG1ldGE+Cs038OQAAAOISURBVGgF5ZpLSBVRGMfvvfmqCKKiKCqKtE3SQ8haJJm1ctPCZYHrFhXtohcUBLVsU1BRBJKLXpsSKs1aCL1oUUhvMgIloodZKmLZ72+OzNVx7jzOXGfqg/89Z875zv/7f35n7px7vanUP2JptzyGhoYKmK8GW0EZmA/mgW7wHrwDN0BTOp0epPVtxBBnLdgIVoE5YBboBR2gDTTA/5DWn0FeDPaBz8CLdeF0EBR5jYRvKbgABoAXa8Opwit/CudK8NoLs4PPM8ZyBsNnB/jpsD7X0C8cjgDXnaQkqkEPCGMSuGWivxxzx8OQj6xtpHWuPhPloHfEMWzTD0HN2GQY2xuW2Lb+/Fh+VaIQPLE5meh+gmSxFYz+BjBogtjGscfiH26Z2GmbNNltVQAIpwDdP6ZNO2iRYqTpZGhfgWUaiMC2w1kCzkbALcqLvDVvUyK6MW9HFES0b8BvsFwXEZi4F+iBtykCcjtlqf0igr52VJ1eqiIgzzdlrRIZfWfJd3SD8ZbqHvkB4XSDpJNB9V0VcX/cT4Ys/zEzSuSj/3WxW9GpRD7ETpZ/QcOJ6LyfdHugitxNehbob9G7lo4PXWBmQhPqQ/fsDOeUfjqNCU1Csi+TQ5+2luzc3yaRr6elevQZwhZr4bomYam0U41yabYqov5hvSTMjlp6RyuiAarSTLPZmox5246+lVREx/isiuh6NxhUJwF2yEpCWu1bK8WEsjyRgCSa0XrVrjNra2mC7TWD5ilYAuJoA4jSlnppF5dVEU3g0ENTD4b3nsZiZsfGJuGqj8qY+CINGqP2GLZCJ+HjtpblxAJ9k3cPrLfGJrnVUaSCarxw0jFua1lOLNBerANx+byya6IkLM2uLZWpAl6/Mcc1EjvjKtLrJNLqI5HnjfQ+bsVeteb0g2y/t7hGvd7CNjenOL8OkJ40KtOdTF+Cl/nV6Mkf4gxocI9vZPYLLKs9iQrqRIACcM2IXGeSboYrg+rztY5ARaDJWUeo0W+sXudLTFhnApaAW6FkZy/+yuXasLoCrSfwVHAnW0+gK93YawKJMLUIAdNAKwhqnSxcYUpPKB6EBE2mg7VR///EX24jybTQerXnOC70FyVP3gjTPXPTQyaP8NFPNeJrCNTPP667JKOq6VNo/A2hes5ccUjmEmPmDoD5+FMgWCcA+3FG57QJP//kQ1PgGBIOToEDgUn+t4V/AJeGknwARIKLAAAAAElFTkSuQmCC" - webUI["html/css/base.css"] = "KiB7DQogIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTsNCiAgLW1vei1hcHBlYXJhbmNlOiBub25lOw0KICAtbXMtYXBwZWFyYW5jZTogbm9uZTsNCiAgZm9udC1mYW1pbHk6ICJBcmlhbCIsIHNhbnMtc2VyaWY7DQogIGxldHRlci1zcGFjaW5nOiAycHg7IA0KfQ0KDQovKg0KOjotd2Via2l0LXNjcm9sbGJhciB7IA0KICAgIGRpc3BsYXk6IG5vbmU7IA0KfQ0KKi8NCg0KOjotd2Via2l0LXNjcm9sbGJhciB7DQogIHdpZHRoOiAxMnB4Ow0KICBoZWlnaHQ6IDEycHg7DQp9DQoNCiANCjo6LXdlYmtpdC1zY3JvbGxiYXItdHJhY2sgew0KICAtd2Via2l0LWJveC1zaGFkb3c6IGluc2V0IDAgMCA2cHggcmdiYSgwLDAsMCwwLjMpOyANCiAgYm9yZGVyLXJhZGl1czogNXB4Ow0KICAgIA0KfQ0KIA0KOjotd2Via2l0LXNjcm9sbGJhci10aHVtYiB7DQogIGJvcmRlci1yYWRpdXM6IDVweDsNCiAgLXdlYmtpdC1ib3gtc2hhZG93OiBpbnNldCAwIDAgNnB4IHJnYmEoMCwgMCwgMCwwLjYpOyANCiAgYmFja2dyb3VuZC1jb2xvcjogIzQ0NDsNCn0NCg0KOjotd2Via2l0LXNjcm9sbGJhci10aHVtYjpob3ZlciB7DQogIGJhY2tncm91bmQ6ICMzMzM7IA0KfQ0KDQo6Oi13ZWJraXQtc2Nyb2xsYmFyLWNvcm5lciB7IA0KICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsgDQp9DQoNCmEgew0KICBjb2xvcjogIzAwRTZGRjsNCn0NCg0KaHRtbCwgYm9keSB7DQogIGNvbG9yOiAjZmZmOw0KICBtYXJnaW46IDBweCBhdXRvOw0KICBoZWlnaHQ6IDEwMCU7DQogIGZvbnQtc2l6ZTogMTRweDsNCn0NCg0KaDIgew0KICBmb250LXNpemU6IDI0cHg7DQogIGxldHRlci1zcGFjaW5nOiAycHg7DQp9DQoNCmgzIHsNCiAgZm9udC1zaXplOiAyMnB4Ow0KICBsZXR0ZXItc3BhY2luZzogMXB4Ow0KfQ0KDQpoNCB7DQogIGZvbnQtc2l6ZTogMjBweDsNCiAgbGV0dGVyLXNwYWNpbmc6IDFweDsNCiAgbGluZS1oZWlnaHQ6IDEuNWVtOw0KDQp9DQoNCmg1IHsNCiAgZm9udC1zaXplOiAxNnB4Ow0KICBsZXR0ZXItc3BhY2luZzogMXB4Ow0KICBsaW5lLWhlaWdodDogMS4yZW07DQogIG1hcmdpbjogMjVweCAwcHggMTBweCAwcHg7DQp9DQoNCmhyIHsNCiAgYm9yZGVyOiAwOw0KICBoZWlnaHQ6IDFweDsNCiAgYmFja2dyb3VuZDogIzMzMzsNCiAgbWFyZ2luOiAxMHB4IDBweDsNCn0NCg0KcCB7DQogIG1hcmdpbjogMnB4Ow0KICBwYWRkaW5nOiAycHggNXB4Ow0KfQ0KDQpwcmUgew0KICBtYXJnaW46IDBweCAwcHggNXB4IDBweDsNCiAgZm9udC1zaXplOiAxMnB4Ow0KICBjb2xvcjogI2RkZDsNCiAgbGV0dGVyLXNwYWNpbmc6IDFweDsNCiAgd2hpdGUtc3BhY2U6IHByZS13cmFwOw0KICBmb250LWZhbWlseTogbW9ub3NwYWNlOyANCiAgZm9udC1zaXplOiAxMnB4OyANCiAgZm9udC1zdHlsZTogbm9ybWFsOyANCiAgZm9udC12YXJpYW50OiBub3JtYWw7IA0KICBsaW5lLWhlaWdodDogMS42ZW07IA0KfQ0KDQpsYWJlbCB7DQogIG1hcmdpbi1ib3R0b206IDIwcHg7DQogIGRpc3BsYXk6IGJsb2NrOw0KfQ0KDQpsaSB7DQogIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTsNCiAgYmFja2dyb3VuZC1jb2xvcjogIzExMTsNCiAgcGFkZGluZzogMTBweCAyMHB4Ow0KICBjdXJzb3I6IHBvaW50ZXI7DQogIGJvcmRlci1sZWZ0OiBzb2xpZCAycHggIzExMTsNCiAgdHJhbnNpdGlvbjogYWxsIDAuMzsNCn0NCg0KbGk6aG92ZXIgew0KICBib3JkZXItY29sb3I6ICMwMEU2RkYNCn0NCg0Kc2VsZWN0IHsNCiAgY3Vyc29yOiBwb2ludGVyOw0KICB3aWR0aDogY2FsYygxMDAlICsgMnB4KTsNCiAgYm9yZGVyOiBzb2xpZCAwcHggIzAwRTZGRjsNCiAgYm9yZGVyLXJhZGl1czogMHB4Ow0KICBvdXRsaW5lOiBub25lOw0KICBjb2xvcjogI2ZmZjsNCiAgcGFkZGluZzogOXB4IDEwcHg7DQogIGRpc3BsYXk6YmxvY2s7DQogIGJhY2tncm91bmQtY29sb3I6ICMzMzM7DQogIGZvbnQtc2l6ZTogMTRweDsNCiAgbWFyZ2luOiA1cHggMHB4IDVweCAwcHg7DQp9DQoNCnNlbGVjdDpmb2N1cyB7DQogIG91dGxpbmU6IG5vbmU7DQp9DQoNCmlucHV0IHsNCiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lOw0KICBtYXJnaW46IDVweCAwcHg7DQogIHBhZGRpbmc6IDIuNXB4IDEwcHg7DQogIG91dGxpbmU6IG5vbmU7DQogIGZvbnQtc2l6ZTogMTRweDsNCn0NCg0KaW5wdXRbdHlwZT1idXR0b25dLCBpbnB1dFt0eXBlPXN1Ym1pdF0gew0KICBjdXJzb3I6IHBvaW50ZXI7DQogIGJhY2tncm91bmQtY29sb3I6ICMwMDA7DQogIG1hcmdpbjogMTBweCAxMHB4Ow0KICBwYWRkaW5nOiAxMHB4IDI1cHg7DQogIGJvcmRlcjogc29saWQgMHB4Ow0KICBib3JkZXItY29sb3I6ICMwMDA7DQogIGJvcmRlci1yYWRpdXM6IDNweDsNCiAgb3V0bGluZTogbm9uZTsNCiAgY29sb3I6ICNmZmY7DQp9DQoNCmlucHV0W3R5cGU9YnV0dG9uXTpmb2N1cyB7IA0KICAgb3V0bGluZTogbm9uZTsNCn0NCg0KaW5wdXRbdHlwZT1idXR0b25dOmhvdmVyIHsNCiAgYmFja2dyb3VuZC1jb2xvcjogIzAwRTZGRjsNCiAgY29sb3I6ICMwMDA7DQp9DQoNCmlucHV0W3R5cGU9YnV0dG9uXTpob3Zlci5kZWxldGUgIHsNCiAgYmFja2dyb3VuZC1jb2xvcjogcmVkOw0KICBjb2xvcjogI2ZmZjsNCn0NCg0KaW5wdXRbdHlwZT10ZXh0XSwgaW5wdXRbdHlwZT1zZWFyY2hdLCBpbnB1dFt0eXBlPXBhc3N3b3JkXSB7DQogIGNvbG9yOiAjZmZmOw0KICB3aWR0aDogLXdlYmtpdC1jYWxjKDEwMCUgLSAwcHgpOw0KICB3aWR0aDogLW1vei1jYWxjKDEwMCUgLSAwcHgpOw0KICB3aWR0aDogY2FsYygxMDAlIC0gMHB4KTsNCiAgb3V0bGluZTogbm9uZTsNCiAgYm9yZGVyOiBzb2xpZCAxcHggdHJhbnNwYXJlbnQ7DQogIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50Ow0KICBib3JkZXItYm90dG9tLWNvbG9yOiAjNTU1Ow0KICBib3JkZXItcmFkaXVzOiAwcHg7DQogIHBhZGRpbmc6IDhweCAxMHB4Ow0KfQ0KDQppbnB1dFt0eXBlPSJjaGVja2JveCJdIHsNCiAgYm9yZGVyOiBzb2xpZCAxcHggIzAwRTZGRjsNCiAgYmFja2dyb3VuZC1jb2xvcjogIzMzMzsNCiAgaGVpZ2h0OiAyNXB4Ow0KICB3aWR0aDogMjVweDsNCiAgY3Vyc29yOiBwb2ludGVyOw0KICAvKg0KICAtd2Via2l0LWFwcGVhcmFuY2U6IGNoZWNrYm94Ow0KICAqLw0KfQ0KDQppbnB1dFt0eXBlPSJjaGVja2JveCJdOmNoZWNrZWQgew0KICBjb2xvcjogI2ZmZjsNCiAgYmFja2dyb3VuZC1jb2xvcjogIzAwRTZGRjsNCiAgLypkaXNwbGF5OiBpbmxpbmUtYmxvY2s7Ki8NCn0NCg0KaW5wdXRbdHlwZT0iY2hlY2tib3giXTpiZWZvcmUgew0KICBwb3NpdGlvbjogaW5pdGlhbDsNCiAgbGVmdDogMHB4Ow0KICBtYXJnaW4tbGVmdDogLTRweDsNCiAgY29udGVudDogIiAiOw0KfQ0KDQppbnB1dFt0eXBlPSJjaGVja2JveCJdOmNoZWNrZWQ6YmVmb3JlIHsNCiAgcG9zaXRpb246IGluaXRpYWw7DQogIGxlZnQ6IDBweDsNCiAgbWFyZ2luLWxlZnQ6IC0zcHg7DQogIGNvbnRlbnQ6ICLinJMiOw0KICBjb2xvcjogIzAwMDsNCn0NCg0KDQppbnB1dFt0eXBlPWJ1dHRvbl0uY2FuY2VsIHsNCiAgDQogIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50Ow0KICBib3JkZXItY29sb3I6IHJlZDsNCn0NCg0KaW5wdXRbdHlwZT1idXR0b25dLnNhdmV7DQogIGJhY2tncm91bmQtY29sb3I6ICMxMTE7DQogIGZsb2F0OiByaWdodDsNCn0NCg0KDQppbnB1dFt0eXBlPWJ1dHRvbl0uYmxhY2ssIGlucHV0W3R5cGU9c3VibWl0XS5ibGFja3sNCiAgYmFja2dyb3VuZC1jb2xvcjogIzAwMDsNCiAgYm9yZGVyLWNvbG9yOiAjMDAwOw0KfQ0KDQppbnB1dFt0eXBlPWJ1dHRvbl0uY2VudGVyew0KICBtYXJnaW4tcmlnaHQ6IGF1dG87DQogIG1hcmdpbi1sZWZ0OiBhdXRvOw0KICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDAwOw0KICBib3JkZXItY29sb3I6ICMwMDA7DQp9DQoNCi5wb2ludGVyIHsNCiAgY3Vyc29yOiBwb2ludGVyOw0KfQ0KDQoucG9pbnRlcjpob3ZlciB7DQogIGNvbG9yOiAjMDBFNkZGOw0KICBjdXJzb3I6IHBvaW50ZXI7DQp9DQoNCi5zb3J0VGhpcyB7DQogIGNvbG9yOiAjMDBFNkZGOw0KfQ0KDQoudzQwcHggew0KICBtYXgtd2lkdGg6IDQwcHg7DQp9DQoNCi53NTBweCB7DQogIG1heC13aWR0aDogNTBweDsNCn0NCg0KLnc4MHB4IHsNCiAgbWF4LXdpZHRoOiA4MHB4Ow0KfQ0KDQoudzE1MHB4IHsNCiAgbWF4LXdpZHRoOiAxNTBweDsNCn0NCg0KLncyMDBweCB7DQogIG1heC13aWR0aDogMjAwcHg7DQogIG1pbi13aWR0aDogMTAwcHg7DQogIHdpZHRoOiAyMDBweDsNCiAgb3ZlcmZsb3cteDogaGlkZGVuOw0KICB3aGl0ZS1zcGFjZTogbm93cmFwOw0KICBvdmVyZmxvdzogaGlkZGVuOw0KICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsNCn0NCg0KLnczMDBweCB7DQogIG1heC13aWR0aDogMzAwcHg7DQp9DQoNCi53MjIwcHggew0KICBtYXgtd2lkdGg6IDIyMHB4Ow0KICBjdXJzb3I6IGFsaWFzOw0KfQ0KDQouZm9vdGVyIHsNCiAgZm9udC1zaXplOiAxMHB4Ow0KfQ0KDQouY2VudGVyIHsNCiAgdGV4dC1hbGlnbjogY2VudGVyOw0KfQ0KDQouc2NyZWVuTG9nSGlkZGVuIHsNCiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMHB4LCAtMTEwcHgpOw0KfQ0KDQouYm9yZGVyU3BhY2Ugew0KICBtYXJnaW4tYm90dG9tOiAzMHB4Ow0KfQ0KDQouYmxvY2sgew0KDQp9DQoNCi5ub25lIHsNCiAgZGlzcGxheTogbm9uZTsNCn0NCg0KDQoubm90VmlzaWJsZSB7DQogIGhlaWdodDogMHB4Ow0KICBkaXNwbGF5OiBub25lOw0KICBvcGFjaXR5OiAwOw0KICBib3JkZXItYm90dG9tOiAjMDAwIHNvbGlkIDBweDsNCiAgDQp9DQoNCi52aXNpYmxlIHsNCiAgb3BhY2l0eTogMTsNCiAgZGlzcGxheTogYmxvY2s7DQogIGJvcmRlci1ib3R0b206ICM0NDQgc29saWQgMXB4OyANCiAgcGFkZGluZzogMTBweDsNCn0NCg0KLmZsb2F0UmlnaHQgew0KICBmbG9hdDogcmlnaHQ7DQp9DQoNCi5mbG9hdExlZnQgew0KICBmbG9hdDogbGVmdDsNCn0NCg0KLm1lbnUtYWN0aXZlIHsNCiAgYmFja2dyb3VuZC1jb2xvcjogIzAwRTZGRjsNCn0NCg0KLm1lbnUtbm90QWN0aXZlIHsNCiAgDQp9DQoNCiNicmFuY2ggew0KICBkaXNwbGF5OiB0YWJsZTsNCiAgbWFyZ2luOiBhdXRvOw0KICBjb2xvcjogcmVkOw0KfQ0KDQojaW50ZXJhY3Rpb24gew0KICBtYXJnaW4tYm90dG9tOiAxMDBweDsNCiAgdGV4dC1hbGlnbjogY2VudGVyOw0KICBib3JkZXItYm90dG9tOiBzb2xpZCAwcHggIzc3NzsNCn0NCg0KDQouaGFsZiB7DQogIGRpc3BsYXk6IGJsb2NrOw0KICB3aWR0aDogNDUlOw0KfQ0KDQoubWVudSB7DQogIGJvcmRlcjogc29saWQgMXB4ICMwMEU2RkY7DQp9DQoNCi5pbmZvTXNnIHsNCiAgY29sb3I6ICNhYWE7DQp9DQoNCi5lcnJvck1zZyB7DQogIGNvbG9yOiByZWQ7DQp9DQoNCi53YXJuaW5nTXNnIHsNCiAgY29sb3I6IHllbGxvdzsNCn0NCg0KLmRlYnVnTXNnIHsNCiAgY29sb3I6IG1hZ2VudGE7DQp9DQoNCi5OZXdzLCAuTW92aWUsIC5TZXJpZXMsIC5TcG9ydHMsIC5LaWRzIHsNCiAgYm9yZGVyLWxlZnQ6IHNvbGlkIDJweA0KfQ0KDQouTmV3cyB7DQogIGJvcmRlci1jb2xvcjogdG9tYXRvDQp9DQoNCi5Nb3ZpZSB7DQogIGJvcmRlci1jb2xvcjogcm95YWxibHVlOw0KfQ0KDQouU2VyaWVzIHsNCiAgYm9yZGVyLWNvbG9yOiBnb2xkOw0KfQ0KDQouU3BvcnRzIHsNCiAgYm9yZGVyLWNvbG9yOiB5ZWxsb3dncmVlbjsNCn0NCg0KLktpZHMgew0KICBib3JkZXItY29sb3I6IG1lZGl1bXB1cnBsZTsNCn0NCg0KLyogTG9hZGluZyAqLw0KI2xvYWRpbmcgew0KICBsZWZ0OiAwcHg7DQogIHRvcDogMHB4Ow0KICB6LWluZGV4OiAxMDAwMDsNCiAgcG9zaXRpb246IGFic29sdXRlOw0KICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsMCwwLCAwLjgpOw0KICBtYXJnaW46IGF1dG87DQogIHdpZHRoOiAxMDAlOw0KICBoZWlnaHQ6IDEwMCU7DQp9DQoNCg0KLmxvYWRlciB7DQogIGJvcmRlcjogNXB4IHNvbGlkIHRyYW5zcGFyZW50Ow0KICBib3JkZXItcmFkaXVzOiA1MCU7DQogIGJvcmRlci10b3A6IDVweCBzb2xpZCAjMDBFNkZGOw0KICBib3JkZXItYm90dG9tOiA1cHggc29saWQgIzAwRTZGRjsNCiAgd2lkdGg6IDUwcHg7DQogIGhlaWdodDogNTBweDsNCiAgLXdlYmtpdC1hbmltYXRpb246IHNwaW4gMS4ycyBsaW5lYXIgaW5maW5pdGU7DQogIGFuaW1hdGlvbjogc3BpbiAxLjJzIGxpbmVhciBpbmZpbml0ZTsNCg0KICBwb3NpdGlvbjogZml4ZWQ7DQogIG1hcmdpbjogYXV0bzsNCg0KICB0b3A6IDA7DQogIHJpZ2h0OiAwOw0KICBib3R0b206IDA7DQogIGxlZnQ6IDA7DQogIA0KfQ0KDQpALXdlYmtpdC1rZXlmcmFtZXMgc3BpbiB7DQogIDAlIHsgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTsgfQ0KICAxMDAlIHsgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpOyB9DQp9DQoNCkBrZXlmcmFtZXMgc3BpbiB7DQogIDAlIHsgdHJhbnNmb3JtOiByb3RhdGUoMGRlZyk7IH0NCiAgMTAwJSB7IHRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7IH0NCn0NCg==" - webUI["html/css/screen.css"] = "bmF2IGltZyB7DQogIGRpc3BsYXk6IGJsb2NrOw0KICBtYXgtaGVpZ2h0OiAyMHB4Ow0KICBtYXgtd2lkdGg6IDIwcHg7DQogIGZsb2F0OiBsZWZ0Ow0KfQ0KDQpuYXYgcCB7DQogIHRleHQtYWxpZ246IGxlZnQ7DQogIHBhZGRpbmc6IDBweCAzMHB4Ow0KfQ0KDQojbGF5b3V0IHsNCiAgZGlzcGxheTogYmxvY2s7DQogIGhlaWdodDogMTAwJTsNCn0NCg0KDQoubGF5b3V0LWxlZnQgew0KICBkaXNwbGF5OiBibG9jazsNCiAgbWluLXdpZHRoOiAxNTBweDsNCiAgbWF4LXdpZHRoOiAyMCU7DQogIGJhY2tncm91bmQtY29sb3I6ICMxMTE7DQogIGhlaWdodDogaW5oZXJpdDsNCiAgZmxvYXQ6IGxlZnQ7DQp9DQoNCi5sYXlvdXQtcmlnaHQgew0KICBkaXNwbGF5OiBibG9jazsNCiAgYmFja2dyb3VuZC1jb2xvcjogIzQ0NDsNCn0NCg0KI21lbnUtd3JhcHBlciB7DQogIGhlaWdodDogMTAwJTsNCn0NCg0KDQojbG9nbyB7DQogIGRpc3BsYXk6IGJsb2NrOw0KICBtaW4td2lkdGg6IDE4MHB4Ow0KICB3aWR0aDogMTAwJTsNCiAgaGVpZ2h0OiAxMDBweDsNCiAgYmFja2dyb3VuZDogdXJsKCIuLi9pbWcvbG9nb193XzYwMHgyMDAucG5nIik7DQogIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7DQogIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjsgDQogIGJhY2tncm91bmQtc2l6ZTogMTAwJTsNCn0NCg0KDQojcGFnZSB7DQogIG1heC13aWR0aDogOTUwcHg7DQogIG1hcmdpbjogYXV0bzsNCiAgYmFja2dyb3VuZC1jb2xvcjogIzQ0NDsNCg0KICAvKg0KICBoZWlnaHQ6IC13ZWJraXQtY2FsYygxMDAlIC0gMTMwcHgpOw0KICBoZWlnaHQ6IC1tb3otY2FsYygxMDAlIC0gMTMwcHgpOw0KICBoZWlnaHQ6IGNhbGMoMTAwJSAtIDEzMHB4KTsNCiAgKi8NCiAgDQogIG1pbi1oZWlnaHQ6IC13ZWJraXQtY2FsYygxMDAlIC0gMTIwcHgpOw0KICBtaW4taGVpZ2h0OiAtbW96LWNhbGMoMTAwJSAtIDEyMHB4KTsNCiAgbWluLWhlaWdodDogY2FsYygxMDAlIC0gMTIwcHgpOw0KICANCiAgDQogIGJveC1zaGFkb3c6IDBweCA1cHggNXB4ICMyMjI7DQogIA0KfQ0KDQojdWlTZXR0aW5nIHsNCiAgZmxvYXQ6IHJpZ2h0Ow0KICBtYXJnaW4tcmlnaHQ6IDI1cHg7DQp9DQoNCiNib3ggaW5wdXRbdHlwZT10ZXh0XSwgI2JveCBpbnB1dFt0eXBlPXBhc3N3b3JkXSB7DQogIHdpZHRoOiAtd2Via2l0LWNhbGMoMTAwJSAtIDIwcHgpOw0KICB3aWR0aDogLW1vei1jYWxjKDEwMCUgLSAyMHB4KTsNCiAgd2lkdGg6IGNhbGMoMTAwJSAtIDIwcHgpOw0KfQ0KDQojYm94IGlucHV0W3R5cGU9c3VibWl0XXsNCiAgbWFyZ2luOiA1MHB4IGF1dG87DQp9DQoNCiNzZXR0aW5ncyB7DQogIGRpc3BsYXk6IGJsb2NrOw0KICBwYWRkaW5nOiAxMHB4IDEwcHg7DQp9DQoNCiNzZXR0aW5ncyBoNSB7DQogIG1hcmdpbjogNTBweCAwcHggMTBweCAwcHg7DQp9DQoNCiNjb250ZW50LWludGVyYWN0aW9uIC5zZWFyY2ggew0KICB3aWR0aDogMjAwcHg7DQogIGJvcmRlcjogMXB4IHNvbGlkICMwMDA7DQogIHBhZGRpbmc6IDlweDsNCiAgYmFja2dyb3VuZC1jb2xvcjogIzMzMzsNCiAgbWFyZ2luOiAxMHB4Ow0KICBmbG9hdDogcmlnaHQ7DQogIGJvcmRlci1yYWRpdXM6IDNweDsNCg0KfQ0KDQojbXlTdHJlYW1zIHsNCiAgcG9zaXRpb246IGZpeGVkOw0KICBib3R0b206IDBweDsNCiAgYmFja2dyb3VuZC1jb2xvcjogIzExMTsNCiAgd2lkdGg6IDEwMCU7DQogIG1heC13aWR0aDogOTUwcHg7DQoNCiAgLyoNCiAgbWF4LWhlaWdodDogMTAwcHg7DQogICovDQogIG1hcmdpbi1ib3R0b206IDBweDsNCn0NCg0KI215U3RyZWFtcyBpbWcgew0KICB3aWR0aDogNCU7DQogIHBhZGRpbmc6IDJweCA1cHg7DQogIGN1cnNvcjogcG9pbnRlcjsNCiAgZmxvYXQ6IHJpZ2h0Ow0KfQ0KDQojc2V0dGluZ3MtZm9vdGVyIHsNCg0KfQ0KDQoNCi8qIFdpemFyZCovDQojYm94IHsNCiAgYmFja2dyb3VuZC1jb2xvcjogIzQ0NDsNCiAgbWluLWhlaWdodDogNDAwcHg7DQogIA0KICBkaXNwbGF5OiBmbGV4Ow0KICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOw0KICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47DQp9DQoNCiNib3ggcHsNCiAgcGFkZGluZzogMTBweCAwcHg7DQp9DQoNCiNib3gtZm9vdGVyIHsNCiAgbWFyZ2luLXRvcDogYXV0bzsNCn0NCg0KI2JveC1mb290ZXIgew0KICBtYXJnaW46IGF1dG87DQogIHBhZGRpbmc6IDEwcHg7DQp9DQoNCiNoZWFkbGluZSB7DQogIGJhY2tncm91bmQtY29sb3I6ICMyMjI7DQogIGJvcmRlci1ib3R0b206IHNvbGlkIDJweCAjMjIyOw0KICB0cmFuc2l0aW9uOiBhbGwgMC41czsNCiAgcGFkZGluZzogMTBweCAwcHg7DQogIGRpc3BsYXk6IGJsb2NrOw0KfQ0KDQojY29udGVudCB7DQogIGRpc3BsYXk6IGJsb2NrOw0KICBvdmVyZmxvdzogYXV0bzsNCiAgcGFkZGluZzogMTBweDsNCn0NCg0KLyogLS0tICovDQoNCg0KI2NsaWVudEluZm8sICNhY3RpdmVTdHJlYW1zLCAjaW5hY3RpdmVTdHJlYW1zIHsNCiAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZTsNCiAgZGlzcGxheTogYmxvY2s7DQogIGZvbnQtc2l6ZTogOXB4Ow0KICBiYWNrZ3JvdW5kLWNvbG9yOiAjMTExOw0KICBjb2xvcjogIzAwRTZGRjsNCiAgYm9yZGVyLWJvdHRvbTogc29saWQgMHB4OzsNCiAgcGFkZGluZzogMHB4Ow0KICBsZXR0ZXItc3BhY2luZzogMXB4Ow0KICBvdmVyZmxvdy14OiBoaWRkZW47DQogIGJvcmRlci1zcGFjaW5nOiA0cHggNHB4Ow0KICBib3JkZXItYm90dG9tOiBzb2xpZCAxcHggIzQ0NDsNCn0NCg0KI215U3RyZWFtc0JveCB7DQogIHBvc2l0aW9uOiByZWxhdGl2ZTsNCiAgcGFkZGluZzogMHB4Ow0KICAvKmhlaWdodDogMTAwcHg7Ki8NCiAgbWF4LWhlaWdodDogMTUwcHg7DQogIGJhY2tncm91bmQtY29sb3I6ICMxMTE7DQogIGNvbG9yOiB3aGl0ZTsNCiAgZGlzcGxheTpmbGV4Ow0KICBqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyOw0KICBhbGlnbi1pdGVtczpjZW50ZXI7DQp9DQoNCiNvcGVuU3RyZWFtcyB7DQogIHdpZHRoOiAyMHB4Ow0KICBoZWlnaHQ6IDIwcHg7DQogIGN1cnNvcjogcG9pbnRlcjsNCiAgZmxvYXQ6IHJpZ2h0Ow0KICBwb3NpdGlvbjogYWJzb2x1dGU7DQogIHJpZ2h0OiAwcHg7DQogIGJvdHRvbTogMHB4Ow0KICBiYWNrZ3JvdW5kOiB1cmwoIi4uL2ltZy90b3VjaC5wbmciKTsNCiAgYmFja2dyb3VuZC1jb2xvcjogIzExMTsNCiAgDQogIGJhY2tncm91bmQtcG9zaXRpb246IGJvdHRvbSByaWdodDsgIA0KfQ0KDQojYWxsU3RyZWFtcyB7DQogIHdpZHRoOiAxMDAlOw0KICBoZWlnaHQ6IDEwMCU7DQogIHBhZGRpbmc6IDJweDsgICAgIA0KfQ0KDQojYWN0aXZlU3RyZWFtcywgI2luYWN0aXZlU3RyZWFtcyB7DQogIG92ZXJmbG93LXk6IHNjcm9sbDsNCiAgd2lkdGg6IDUwJTsNCiAgbWF4LWhlaWdodDogMTAwcHg7DQogIGZsb2F0OiBsZWZ0Ow0KfQ0KDQojYWN0aXZlU3RyZWFtcyAudGRLZXksICNpbmFjdGl2ZVN0cmVhbXMgLnRkS2V5IHsNCiAgd2lkdGg6IDc1cHg7DQp9DQoNCg0KDQoNCiNpbmFjdGl2ZVN0cmVhbXMgLnRkS2V5IHsNCiAgY29sb3I6IHJlZDsNCn0NCg0KI2NsaWVudEluZm8gLnRkVmFsLCAjbG9nSW5mbyAudGRWYWwsICNhY3RpdmVTdHJlYW1zIC50ZFZhbCwgI2luYWN0aXZlU3RyZWFtcyAudGRWYWwsICNtYXBwaW5nSW5mbyAudGRWYWx7DQogIGNvbG9yOiAjYWFhOw0KICB3aGl0ZS1zcGFjZTogaW5oZXJpdDsNCn0NCg0KI2JveC13cmFwcGVyIHsNCiAgZGlzcGxheTogaW5saW5lLWJsb2NrOw0KICB3aWR0aDogMTAwJTsNCiAgDQogIG92ZXJmbG93LXk6IHNjcm9sbDsNCn0NCg0KI2NvbnRlbnRfdGFibGUsICNtYXBwaW5nLWRldGFpbC10YWJsZSwgI2NvbnRlbnRfdGFibGUgew0KICBkaXNwbGF5OiB0YWJsZTsNCiAgDQogIGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7DQogIG92ZXJmbG93LXk6IHNjcm9sbDsNCiAgd2lkdGg6IDEwMCU7DQp9DQoNCg0KI2NvbnRlbnRfdGFibGUgLmNvbnRlbnRfdGFibGVfaGVhZGVyIHsNCiAgYmFja2dyb3VuZC1jb2xvcjogIzMzMzsNCiAgaGVpZ2h0OiA1MHB4Ow0KICBib3JkZXItYm90dG9tOiBzb2xpZCAxcHggIzExMTsNCiAgYm9yZGVyLWxlZnQ6IHNvbGlkIDNweCAjMzMzOw0KICBjdXJzb3I6IGF1dG87DQoNCn0NCg0KDQp0Ym9keSB7DQogIHdpZHRoOiAxMDAlOw0KfQ0KDQoNCi50YWJsZUVsbGlwc2lzIHsNCiAgd2lkdGg6IDE1MHB4Ow0KICBvdmVyZmxvdzogaGlkZGVuOw0KICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsNCiAgd2hpdGUtc3BhY2U6IG5vd3JhcDsNCn0NCg0KI2NvbnRlbnRfdGFibGUgaW1nIHsNCiAgZGlzcGxheTogYmxvY2s7DQogIG1heC1oZWlnaHQ6IDI4cHg7DQogIG1hcmdpbi1sZWZ0OiBhdXRvOw0KICBtYXJnaW4tcmlnaHQ6IGF1dG87DQogIG1heC13aWR0aDogMzBweDsNCn0NCg0KI2NvbnRlbnRfdGFibGUgdHJ7DQogIGJvcmRlci1sZWZ0OiBzb2xpZCAzcHggNDQ0Ow0KICBib3JkZXItYm90dG9tOiBzb2xpZCAxcHggIzMzMzsNCiAgY3Vyc29yOiBwb2ludGVyOw0KfQ0KDQojY29udGVudF90YWJsZSB0cjpob3ZlciB7DQogIGJhY2tncm91bmQtY29sb3I6ICMzMzM7DQp9DQoNCiNjb250ZW50X3RhYmxlIHRkIHsNCg0KICBwYWRkaW5nOiAwcHggMnB4Ow0KfQ0KDQojY29udGVudF90YWJsZSBpbnB1dFt0eXBlPXRleHRdew0KICB3aWR0aDogODAlOw0KICBtaW4td2lkdGg6IDM1cHg7DQogIG1heC13aWR0aDogNjBweDsNCiAgYm9yZGVyOiAwcHg7DQogIGJhY2tncm91bmQtY29sb3I6ICMzMzM7DQogIG1hcmdpbi1sZWZ0OiA1cHg7DQogIHRleHQtYWxpZ246IGxlZnQ7DQp9DQoNCiNjb250ZW50X3RhYmxlIGlucHV0W3R5cGU9Y2hlY2tib3hdew0KICBtYXgtd2lkdGg6IDI1cHg7DQogIG1hcmdpbjogYXV0bzsNCn0NCg0KDQouc2hvd0J1bGsgew0KICBkaXNwbGF5OiBibG9jazsNCn0NCg0KLmhpZGVCdWxrIHsNCiAgZGlzcGxheTogbm9uZTsNCn0NCg0KLm5vQnVsayB7DQoNCn0NCg0KI2NvbnRlbnRfdGFibGUgdHIuYWN0aXZlRVBHew0KICBib3JkZXItbGVmdDogc29saWQgM3B4IGxhd25ncmVlbjsNCn0NCg0KI2NvbnRlbnRfdGFibGUgdHIubm90QWN0aXZlRVBHew0KICBib3JkZXItbGVmdDogc29saWQgM3B4IHJlZDsNCn0NCg0KDQojbG9nU2NyZWVuIHB7DQogIHdoaXRlLXNwYWNlOiBwcmU7DQogIGZvbnQtc2l6ZTogMTBweDsNCiAgLyoNCiAgbGluZS1oZWlnaHQ6IDEuNmVtOw0KICBmb250LWZhbWlseTogIkFyaWFsIiwgc2Fucy1zZXJpZjsNCiAgKi8NCiAgbGV0dGVyLXNwYWNpbmc6IDFweDsNCiAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZTsgDQogIGZvbnQtc2l6ZTogMTJweDsgDQogIGZvbnQtc3R5bGU6IG5vcm1hbDsgDQogIGZvbnQtdmFyaWFudDogbm9ybWFsOyANCiAgbGluZS1oZWlnaHQ6IDEuNmVtOyANCn0NCg0KI3BvcHVwIHsNCiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjQpOw0KICBwb3NpdGlvbjogZml4ZWQ7DQogIGxlZnQ6IDBweDsNCiAgd2lkdGg6IDEwMCU7DQogIHotaW5kZXg6IDEwMDsNCiAgaGVpZ2h0OiAxMDAlOw0KfQ0KDQojbWFwcGluZy1kZXRhaWwsICN1c2VyLWRldGFpbCwgI2ZpbGUtZGV0YWlsLCAjcG9wdXAtY3VzdG9tIHsNCiAgYm94LXNoYWRvdzogMHB4IDVweCA0MHB4ICMwMDA7DQogIG1hcmdpbi10b3A6IDIwcHg7DQogIG1hcmdpbi1sZWZ0OiBhdXRvOw0KICBtYXJnaW4tcmlnaHQ6IGF1dG87DQogIA0KICBtYXgtd2lkdGg6IDYwMHB4Ow0KICBiYWNrZ3JvdW5kLWNvbG9yOiAjMjIyOw0KICBwYWRkaW5nOiAxMHB4Ow0KICBvdmVyZmxvdzphdXRvOw0KfQ0KDQojcG9wdXAtY3VzdG9tIGgzIHsNCiAgdGV4dC1hbGlnbjogY2VudGVyOw0KfQ0KDQojZmlsZS1kZXRhaWwgaW5wdXRbdHlwZT10ZXh0XSB7DQogIHdpZHRoOiAtd2Via2l0LWNhbGMoMTAwJSAtIDIwcHgpOw0KICB3aWR0aDogLW1vei1jYWxjKDEwMCUgLSAyMHB4KTsNCiAgd2lkdGg6IGNhbGMoMTAwJSAtIDIwcHgpOw0KfQ0KDQojbWFwcGluZy1kZXRhaWwgaW1nIHsNCiAgZGlzcGxheTogYmxvY2s7DQogIG1heC1oZWlnaHQ6IDMwcHg7DQogIG1hcmdpbi1ib3R0b206IDIwcHg7DQogIG1hcmdpbi1sZWZ0OiBhdXRvOw0KICBtYXJnaW4tcmlnaHQ6IGF1dG87DQp9DQoNCiNwb3B1cC1jdXN0b20gaW5wdXRbdHlwZT10ZXh0XSwgI3BvcHVwLWN1c3RvbSBpbnB1dFt0eXBlPXBhc3N3b3JkXSwgI21hcHBpbmctZGV0YWlsIGlucHV0W3R5cGU9dGV4dF0sICNjb250ZW50X3NldHRpbmdzIGlucHV0W3R5cGU9dGV4dF0sICNjb250ZW50X3NldHRpbmdzIGlucHV0W3R5cGU9cGFzc3dvcmRdew0KICBib3JkZXI6IHNvbGlkIDFweDsNCiAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDsNCiAgYmFja2dyb3VuZC1jb2xvcjogIzMzMzsNCiAgdGV4dC1hbGlnbjogbGVmdDsNCiAgd2lkdGg6IC13ZWJraXQtY2FsYygxMDAlIC0gMjBweCk7DQogIHdpZHRoOiAgICAtbW96LWNhbGMoMTAwJSAtIDIwcHgpOw0KICB3aWR0aDogICAgICAgICBjYWxjKDEwMCUgLSAyMHB4KTsNCn0NCg0KI3BvcHVwLWN1c3RvbSBpbnB1dFt0eXBlPXRleHRdLm5vdEF2YWlsYWJsZSB7DQogIGJvcmRlci1jb2xvcjogcmVkOw0KICBjb2xvcjogIzY2NjsNCiAgY3Vyc29yOiBub3QtYWxsb3dlZDsNCn0NCg0KI21hcHBpbmctZGV0YWlsLXRhYmxlLCAjdXNlci1kZXRhaWwtdGFibGUgew0KICBkaXNwbGF5OiBpbmxpbmUtdGFibGU7DQogIHdpZHRoOiAxMDAlOw0KfQ0KDQojcG9wdXAtY3VzdG9tIHRhYmxlLCAjY29udGVudF9zZXR0aW5ncyB0YWJsZSB7DQogIGRpc3BsYXk6IGlubGluZS10YWJsZTsNCiAgdGFibGUtbGF5b3V0OiBmaXhlZDsNCiAgd2lkdGg6IDEwMCU7DQp9DQoNCg0KI21hcHBpbmctZGV0YWlsLXRhYmxlIHRkLCAjdXNlci1kZXRhaWwtdGFibGUgdGQgew0KICBwYWRkaW5nOiAxMHB4IDBweDsNCg0KfQ0KDQojbWFwcGluZy1kZXRhaWwtdGFibGUgdGQubGVmdCwgI3VzZXItZGV0YWlsLXRhYmxlIHRkLmxlZnQsICNwb3B1cC1jdXN0b20gdGQubGVmdCB7DQogIHdpZHRoOiAzOCU7DQp9DQoNCi5pbnRlcmFjdGlvbiwgI2ludGVyYWN0aW9uIHsNCiAgbWFyZ2luLXRvcDogMjBweDsNCiAgZGlzcGxheTogaW5saW5lLWZsZXg7DQogIGZsb2F0OiByaWdodDsNCn0NCg0KLmludGVyYWN0aW9uIGlucHV0W3R5cGU9YnV0dG9uXSwgLmludGVyYWN0aW9uIGlucHV0W3R5cGU9c3VibWl0XSB7DQogIGJhY2tncm91bmQtY29sb3I6ICMwMDA7DQogIG1pbi13aWR0aDogMTAwcHg7DQogIG1hcmdpbjogMHB4IDEwcHg7DQogIHRleHQtYWxpZ246IGNlbnRlcjsNCn0NCg0KI25vdGlmaWNhdGlvbiB7DQogIGRpc3BsYXk6IGJsb2NrOw0KICBwb3NpdGlvbjogZml4ZWQ7DQogIHJpZ2h0OiAwcHg7DQogIGhlaWdodDogMTAwJTsNCiAgd2lkdGg6IDI1MHB4Ow0KICANCiAgYmFja2dyb3VuZC1jb2xvcjogIzIyMjsNCiAgYm94LXNoYWRvdzogMHB4IDBweCAyMHB4ICMwMDA7DQp9DQoNCiNub3RpZmljYXRpb24gaDUgew0KICBiYWNrZ3JvdW5kLWNvbG9yOiAjMTIxMjEyOw0KICBwYWRkaW5nOiA1cHggMTBweCA1cHggMTBweDsNCn0NCg0KI25vdGlmaWNhdGlvbiBwcmUgew0KICBwYWRkaW5nOiAwcHggMTBweCAwcHggMTBweDsNCn0NCg0KI25vdGlmaWNhdGlvbiBwIHsNCiAgZm9udC1zaXplOiAxMCBweDsNCiAgbWFyZ2luOiAwcHg7DQogIHBhZGRpbmc6IDBweCAxMHB4IDVweCAxMHB4Ow0KfQ0KDQojbm90aWZpY2F0aW9uIC5lbGVtZW50IHsNCiAgLypwYWRkaW5nOiAwcHggNXB4OyovDQogIG1hcmdpbjogNXB4IDVweDsNCiAgYm9yZGVyLXJhZGl1czogNXB4Ow0KICBiYWNrZ3JvdW5kLWNvbG9yOiAjMTgxODE4Ow0KICBib3JkZXItbGVmdDogMTBweCBzb2xpZCBncmVlbjsNCn0NCg0KDQpAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDYyMHB4KXsNCiAgYm9keSB7DQogICAgd2lkdGg6IDEwMCU7DQogICAgYmFja2dyb3VuZC1jb2xvcjogIzQ0NDsNCiAgfQ0KDQogIGgxIHsNCiAgICBmb250LXNpemU6IDI2cHg7DQogICAgbGV0dGVyLXNwYWNpbmc6IDNweDsNCiAgfQ0KDQogIG5hdiBwIHsNCiAgICBkaXNwbGF5OiBibG9jazsNCiAgfQ0KDQoNCg0KICAjaGVhZGVyX2NvbmZpZyB7DQogICAgZGlzcGxheTogYmxvY2s7DQogICAgaGVpZ2h0OiAxMDBweDsNCiAgICBiYWNrZ3JvdW5kOiB1cmwoIi4uL2ltZy9sb2dvX3dfNjAweDIwMC5wbmciKTsNCiAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0Ow0KICAgIA0KICAgIGJhY2tncm91bmQtc2l6ZTogMzAwcHggMTAwcHg7DQogIH0NCg0KICAjc2NyZWVuTG9nIHsNCiAgICBtYXJnaW4tbGVmdDogMzAwcHg7DQoNCiAgICB0cmFuc2l0aW9uOiBub25lOw0KICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50Ow0KICAgIGJvcmRlci1ib3R0b206IHNvbGlkIDFweCB0cmFuc3BhcmVudDsNCiAgICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAjMjIyOw0KICB9DQoNCiAgI3NldHRpbmdzIHsNCiAgICAvKg0KICAgIGhlaWdodDogLXdlYmtpdC1jYWxjKDEwMCUgLSAxMDBweCk7DQogICAgaGVpZ2h0OiAtbW96LWNhbGMoMTAwJSAtIDEwMHB4KTsNCiAgICBoZWlnaHQ6IGNhbGMoMTAwJSAtIDEwMHB4KTsNCiAgICAqLw0KICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsNCiAgICBvdmVyZmxvdzogYXV0bzsNCiAgfQ0KDQoNCiAgLnNjcmVlbkxvZ0hpZGRlbiB7DQogICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMHB4LCAwcHgpOw0KICB9DQoNCg0KICAjYm94IHsNCiAgICBkaXNwbGF5OiBibG9jazsNCiAgICBtaW4taGVpZ2h0OiA1MDBweDsNCiAgICBtYXgtd2lkdGg6IDUwMHB4Ow0KICAgIG1hcmdpbjogMTBweCBhdXRvOw0KICAgIGJhY2tncm91bmQtY29sb3I6ICM0NDQ7DQogICAgYm94LXNoYWRvdzogMHB4IDVweCA1cHggIzIyMjsNCg0KICAgIGRpc3BsYXk6IGZsZXg7DQogICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsNCiAgfQ0KDQogICNzZXR0aW5ncywgI3NldHRpbmdzLWZvb3RlciB7DQogICAgDQogIH0NCn0NCg==" - webUI["html/img/log.png"] = "iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAAAXNSR0IArs4c6QAAAAlwSFlzAAAsSwAALEsBpT2WqQAABCRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IlhNUCBDb3JlIDUuNC4wIj4KICAgPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIgogICAgICAgICAgICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgICAgICAgICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyI+CiAgICAgICAgIDx0aWZmOlJlc29sdXRpb25Vbml0PjI8L3RpZmY6UmVzb2x1dGlvblVuaXQ+CiAgICAgICAgIDx0aWZmOkNvbXByZXNzaW9uPjU8L3RpZmY6Q29tcHJlc3Npb24+CiAgICAgICAgIDx0aWZmOlhSZXNvbHV0aW9uPjI4ODwvdGlmZjpYUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6T3JpZW50YXRpb24+MTwvdGlmZjpPcmllbnRhdGlvbj4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+Mjg4PC90aWZmOllSZXNvbHV0aW9uPgogICAgICAgICA8ZXhpZjpQaXhlbFhEaW1lbnNpb24+NTA8L2V4aWY6UGl4ZWxYRGltZW5zaW9uPgogICAgICAgICA8ZXhpZjpDb2xvclNwYWNlPjE8L2V4aWY6Q29sb3JTcGFjZT4KICAgICAgICAgPGV4aWY6UGl4ZWxZRGltZW5zaW9uPjUwPC9leGlmOlBpeGVsWURpbWVuc2lvbj4KICAgICAgICAgPGRjOnN1YmplY3Q+CiAgICAgICAgICAgIDxyZGY6QmFnLz4KICAgICAgICAgPC9kYzpzdWJqZWN0PgogICAgICAgICA8eG1wOk1vZGlmeURhdGU+MjAxOC0xMC0xNFQxMToxMDo0MjwveG1wOk1vZGlmeURhdGU+CiAgICAgICAgIDx4bXA6Q3JlYXRvclRvb2w+UGl4ZWxtYXRvciAzLjM8L3htcDpDcmVhdG9yVG9vbD4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgIDwvcmRmOlJERj4KPC94OnhtcG1ldGE+CkP32mEAAANASURBVGgF7ZlPiE1RHMffw1AYhiL5k1HEijJiYaFZiHoyFspW2RFRkkSZGgtFWJIwi9FYmo0VOywkKTbKgjSlWcifRCPX51dv6s2d33md77vvXjfmV9859/7u93x/v98959x73p1KRbAkSargAhgDH0E/qIYkuHYEvAPGvwbmNOEerXM/0Q6BRSFuZj/ix0DaDnvCkGppIucDAe4OhzvkcUO+GaELAf8ux7/b8Zlrr+Pvc3zm6nX8NccXdKmFLHaUPJ/Ruhyu5zNap8Nd6PiCLrUQTyi0Rjy/5/M0Zd+smB7M32XwtgBr07aC6yfSTs7XO77OALfH4VbgHsD/HLytVquJx4nyIdQFBsHftscksK5Z0sGhpuN8Or4Aa5sJFHjtO7G2MjKvvZjN1sglOpSlCMt9LrDZ4S4Hd0Qg24vrK+gAZbPtjMqTdFKhEdkIsYxFWP720JlioUK6pzDL41jtpRIqxOOWxecuB3fhRGT8E85YBK8VygI6GSRTCxlH3TaJgyw4O2678aCxO94LbNPovYDdmOrUukIBN/MqwjJEOwGPOHR31W4VONVCLEBR9lAJpBbSrYhn5K5R+quFnGUOr1ICtMIlxjz6XVb6qot9JeKvCPSAdlQJJHDtd8hOIN0wtRDLxx6Ntr0ulalTq1TJNyYzXUjj3SjD8X87Iva7uR8s5+2bi6FtX1oOgi8g2tSn1g2yPx+t3gIR/c90s1+C1vuO/YkxdWrdjxFtE2dE0VELWaqIZ+QuUfqrhZxmyKUvgEoyE1xizOR4YOI8plXXyAZEbYsyTJvXFsUW+x6wGUSbWogJ237rZHSEgojq1CooLT3MdCH6Pcu3xz8zIq0s9lvc2+sgz6dWH/rnQPB/jlybZGoh99hCHJqk0P6TD0jaI/4b7dVYeXVq2bemokyKpRZiHwWKMimWWshxhryjoEpOKXHUNbIN8WcUc5s2r8Vue7l9oAaiTS3EhDeB6EUYnUlGojq1MobLr3uokB/5hcys7OYWKuRl5nD5Cbi5uYXw0ntPHoay2S8Seuol5RZSJ0r/n/DEc/BdrN9kTZrH7BkwDspgwyQxW6uggU3nHnAXvAG/QZE2SrARsL8hJffwDxM0mNDPvT8IAAAAAElFTkSuQmCC" - webUI["html/img/stream-limit.jpg"] = "/9j/4AAQSkZJRgABAQAAAQABAAD/4gJoSUNDX1BST0ZJTEUAAQEAAAJYbGNtcwQwAABtbnRyUkdCIFhZWiAH4wAFABcAFgAuAAphY3NwQVBQTAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA9tYAAQAAAADTLWxjbXMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAtkZXNjAAABCAAAAEBjcHJ0AAABSAAAAE53dHB0AAABmAAAABRjaGFkAAABrAAAACxyWFlaAAAB2AAAABRiWFlaAAAB7AAAABRnWFlaAAACAAAAABRyVFJDAAACFAAAACBnVFJDAAACFAAAACBiVFJDAAACFAAAACBjaHJtAAACNAAAACRtbHVjAAAAAAAAAAEAAAAMZW5VUwAAACQAAAAcAHMAUgBHAEIAIABJAEUAQwA2ADEAOQA2ADYALQAyAC4AMQAAbWx1YwAAAAAAAAABAAAADGVuVVMAAAAyAAAAHABOAG8AIABjAG8AcAB5AHIAaQBnAGgAdAAsACAAdQBzAGUAIABmAHIAZQBlAGwAeQAAAABYWVogAAAAAAAA9tYAAQAAAADTLXNmMzIAAAAAAAEMSgAABeP///MqAAAHmwAA/Yf///ui///9owAAA9gAAMCUWFlaIAAAAAAAAG+UAAA47gAAA5BYWVogAAAAAAAAJJ0AAA+DAAC2vlhZWiAAAAAAAABipQAAt5AAABjecGFyYQAAAAAAAwAAAAJmZgAA8qcAAA1ZAAAT0AAACltjaHJtAAAAAAADAAAAAKPXAABUewAATM0AAJmaAAAmZgAAD1z/2wBDAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQH/2wBDAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQH/wAARCAQ4B4ADASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD/AD/6KKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigD9PvBf/AARa/wCCrXxF8HeE/iD4G/YM/aL8UeCfHfhrQvGXg/xNpHgia50nxF4W8T6Xa634f13TLkTgXGn6vpN9aahZTgAS21xFIAN1dL/w4o/4LB/9I7/2m/8AwgZ//kiv9b3/AIJp/wDKOX9gH/syf9lX/wBUV4Dr7YoA/wAWr/hxR/wWD/6R3/tN/wDhAz//ACRR/wAOKP8AgsH/ANI7/wBpv/wgZ/8A5Ir/AGlaKAP8Wr/hxR/wWD/6R3/tN/8AhAz/APyRR/w4o/4LB/8ASO/9pv8A8IGf/wCSK/2laKAP8Wr/AIcUf8Fg/wDpHf8AtN/+EDP/APJFH/Dij/gsH/0jv/ab/wDCBn/+SK/2laKAP8Wr/hxR/wAFg/8ApHf+03/4QM//AMkUf8OKP+Cwf/SO/wDab/8ACBn/APkiv9pWigD/ABav+HFH/BYP/pHf+03/AOEDP/8AJFH/AA4o/wCCwf8A0jv/AGm//CBn/wDkiv8AaVooA/xav+HFH/BYP/pHf+03/wCEDP8A/JFH/Dij/gsH/wBI7/2m/wDwgZ//AJIr/aVooA/xav8AhxR/wWD/AOkd/wC03/4QM/8A8kUf8OKP+Cwf/SO/9pv/AMIGf/5Ir/aVooA/xav+HFH/AAWD/wCkd/7Tf/hAz/8AyRR/w4o/4LB/9I7/ANpv/wAIGf8A+SK/2laKAP8AFq/4cUf8Fg/+kd/7Tf8A4QM//wAkUf8ADij/AILB/wDSO/8Aab/8IGf/AOSK/wBpWigD/Fq/4cUf8Fg/+kd/7Tf/AIQM/wD8kUf8OKP+Cwf/AEjv/ab/APCBn/8Akiv9pWigD/Fq/wCHFH/BYP8A6R3/ALTf/hAz/wDyRR/w4o/4LB/9I7/2m/8AwgZ//kiv9pWigD/E88f/APBGT/gqj8K/AnjT4nfEX9hL9ofwf8P/AIdeFPEPjnxz4t1zwTNaaL4X8IeE9Ju9d8SeIdXujORbaZo2j2F5qN9OQRDa20shB24r8yq/28f+Ctf/ACit/wCClX/ZhH7Xv/rP/wAQK/xDqACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooA+j/ANmj9kL9pr9snxbrvgL9lr4K+Ovjn408M+HH8X6/4Y+H2ljWdZ0vwvFqen6NLr1zYrNHMNMh1XVtL0+a7RWihu9RsoZSj3MIf7U/4cUf8Fg/+kd/7Tf/AIQM/wD8kV2v/BAD9sj/AIYi/wCCrf7K/wATNW1X+yvh98QPFw+AHxWklm+z6f8A8IJ8aWg8HjU9Xl3Ls0rwd4wufCPxAuz82B4RQlJACjf7MFAH+LV/w4o/4LB/9I7/ANpv/wAIGf8A+SKP+HFH/BYP/pHf+03/AOEDP/8AJFf7StFAH+LV/wAOKP8AgsH/ANI7/wBpv/wgZ/8A5Io/4cUf8Fg/+kd/7Tf/AIQM/wD8kV/tK0UAf4tX/Dij/gsH/wBI7/2m/wDwgZ//AJIo/wCHFH/BYP8A6R3/ALTf/hAz/wDyRX+0rRQB/gx/HT4CfGb9mT4n+Ivgt+0B8NfFnwj+K3hJNHl8SeA/G2lzaP4i0iLxBomneI9Emu7KbJWLU9C1bTtTs5UZ45rW7idWySB5HX9yX/B69+yL/wAIr8eP2V/22/D2meXpfxb8Da18BfiPd2sOy3i8afDG9k8U+BdR1OXbiXVPFHg/xZrukWzB2P8AZnw0jjZIxEjS/wANtABRRRQAUUUUAFFFFABRRRQAUUUUAPRHldIokeSSR1SONFLu7uQqIiKCzOzEKqqCWJAAJNfq8n/BCv8A4LBSIki/8E7/ANp3a6q67vh/dI21gGG5HnV0bB5V1VlPDAEEVv8A/BBj9kX/AIbU/wCCrf7Ivwo1PTP7T8DeGPiFb/Gz4nRTQ+fpzeAvgpE3xDv9L1hQrEaZ4w1nRdD8BSkAFp/FdvH5kO/zo/8AZ4oA/wAWr/hxR/wWD/6R3/tN/wDhAz//ACRR/wAOKP8AgsH/ANI7/wBpv/wgZ/8A5Ir/AGlaKAP8Wr/hxR/wWD/6R3/tN/8AhAz/APyRR/w4o/4LB/8ASO/9pv8A8IGf/wCSK/2laKAP8Wr/AIcUf8Fg/wDpHf8AtN/+EDP/APJFH/Dij/gsH/0jv/ab/wDCBn/+SK/2laKAP8Kz9p39iX9rL9i7UfCOkftV/AT4ifAfVPHtlq+o+DtO+IejjRb3xDp+gz2Ntq97p1s00k0lrY3GpWUEs7IkbSz+XGztHKI/lqv6F/8Ag5+/bI/4a5/4K2/HDTNF1X+0fh7+y5aaZ+y74KEU261GofDq61K8+KVz5UbG3N0fi9r3jnSTexl5bzSdE0USybLeCGD+eigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigD/cg/4Jp/8o5f2Af+zJ/2Vf8A1RXgOvtivif/AIJp/wDKOX9gH/syf9lX/wBUV4Dr7YoAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigD8+P8AgrX/AMorf+ClX/ZhH7Xv/rP/AMQK/wAQ6v8Abx/4K1/8orf+ClX/AGYR+17/AOs//ECv8Q6gAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAHI7xOkkbtHJGyvHIjFHR0IZXRlIZWVgGVlIIIBBBFf7Z//BIH9sRP28f+Cbv7J37St5qS6n4x8VfC/TPDXxTmMqvc/wDC3PhxNcfD/wCJdxdQ5Mtp/bPi7w3qfiLT7e4zK2jazplyHnhuIrib/Eur/QW/4Mm/2yPteh/tZfsE+JNV3T6PeaT+1D8KNPml3yNp2pDRvht8YrW381t0NrYahB8JtRtLK33Rtda5r980cUjzyzgH98VFFFABRRRQAUUUUAfhR/wcifsif8Ngf8Eif2ndD0vTP7T8dfAvSbH9p74ehYvPuINW+DCXur+MUs4FUzXF/qvwjvfiRoFhb25E819q9skazn/R5v8AHer/AH6NW0rTdd0rU9D1mxtdU0fWdPvNK1bTL6FLmy1HTdRtpLS+sby3kDRz2t3azS29xDIrJLFI6OCrEV/hv/8ABQv9lrUv2J/23/2ov2V9Riuo4Pgv8Y/GHhbwzPe7/tWqeAJdQbWfhrr83mfPu8R/D7VPDOvjcWO3Uh88n32APjeiiigAooooAKKKKACiiigAooooA/0D/wDgyU/ZE+z6T+19+3Xr+mYl1G70D9lz4Y6lJFtdbSwTSfif8YfKaRd0lvd3Vz8HreC4g2xifS9VtneSRHSD++mvyl/4Ih/sif8ADEf/AAS3/ZB+B2o6X/ZXjV/hhYfE/wCKEEsPlahH8S/jDNN8SfFmmaq21WnvfCl14ki8EpKw+Ww8M2MCExQxmv1aoAKKKKACiiigAr5A/b+/ao0X9iP9iv8AaZ/as1xrRk+Cfwi8V+LdCsr5gtrrfjk2R0j4c+GZWLKF/wCEq8f6n4a8NodwxJqqdeh+v6/ib/4PTP2yP+EA/Za/Z5/Yk8N6r5WvftCfEG7+LPxGtLWb98nww+Dogh8OaVqtvuA+weKviT4g03W9Nk2uWvvhfdrujEZEoB/nB+IfEGteLPEGueKvEup3eteIvE2san4g1/WL+Uz32ra1rN7PqOq6nezNzNd399cz3VzKeZJpXc8mseiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigD/cg/4Jp/8AKOX9gH/syf8AZV/9UV4Dr7Yr4n/4Jp/8o5f2Af8Asyf9lX/1RXgOvtigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAPz4/4K1/8orf+ClX/AGYR+17/AOs//ECv8Q6v9vH/AIK1/wDKK3/gpV/2YR+17/6z/wDECv8AEOoAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAr9V/+CJP7ZH/DCn/BT39k348anqv9leA2+Itp8Mvi1NNN5Onp8LPi3FJ8P/F+qaou5RPaeEbfXYPHcMLMB/aXhXT5R80Sg/lRRQB/v8UV+TP/AAQ5/bI/4bo/4JdfsnfG7VNV/tXx9p/w+tfhN8WpZZvO1Fvid8IJG8A+JNV1f5m8u/8AGUWi6d8QFjDECx8W2TgRh/LT9ZqACiiigAooooAK/wA07/g9I/ZE/wCFcftj/AD9sXQNM8jQP2lfhZdfD7xtd28O5H+KPwOnsbO31HUp1A8q41z4a+KvBmkaXDN808HgPUnhZ1tplh/0sa/nd/4Oi/2RP+Gq/wDgkT8cNZ0fS/7R8dfsuapoP7T/AITMUO64TS/ACahpXxSVp0Bnjsbf4ReJvHOuz26hoLi+0HS2nQG3iuLcA/yKaKKKACiiigAooooAKKKKACv02/4I3fsi/wDDcf8AwUy/ZC/Z3vtM/tXwfr3xX0nxh8TrWSLfaS/Cr4XQ3PxJ+IlleyMGhto9d8L+FtQ8NWk04MbaprWn2yxzz3EUEv5k1/eL/wAGTH7In9reP/2uf259f0zdZ+D9A0H9mf4Z6hND5sEmveK7jTviL8VprV3Gy21LQ9E0b4YWSTwlp207xnqVsWhgnkS5AP8AQzooooAKKKKACiiigAr/AB3f+DkD9sj/AIbN/wCCtf7SWvaRqv8Aanw9+BGpWv7MPw1aOf7RaJovwcudR0zxfd2E6MYLnT9d+LV/8RfEWm3dsPJuNM1axZJJ1VbiX/Ux/wCCnv7XVn+wl+wF+1T+1TLdW1trXws+E2vXHgJbsRtBe/FTxOYPBnwo02aKQMJbe/8AiN4h8MW16qxysti9zN5UixMp/wAQK+vr3U7281LUru5v9R1C6uL6/vryaS5u729u5XuLq7uriZnlnubieR5p5pXaSWV2d2ZmJIBVooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooA/sa/Z9/4PGv2mv2ffgJ8EPgJo37HXwJ8QaP8EPhD8NfhDpOv6n43+IFtqWt6b8NfBmi+DLHV9Qt7QfZbe+1K10WK9u4bb/R4riaSOH92q169/xG8ftWf9GRfs9/+F98R/8ACv4h6KAP7eP+I3j9qz/oyL9nv/wvviP/AIUf8RvH7Vn/AEZF+z3/AOF98R/8K/iHooA/t4/4jeP2rP8AoyL9nv8A8L74j/4Uf8RvH7Vn/RkX7Pf/AIX3xH/wr+IeigD+3j/iN4/as/6Mi/Z7/wDC++I/+FH/ABG8ftWf9GRfs9/+F98R/wDCv4h6KAP9GT/gmX/wdhftE/t2/t3fs3/skeLv2T/gt4E8N/G/xpf+F9W8XeHPGPjnUNb0O3tPCviHxCt1p9lqY+wXEzzaNFbslz8gimkYfOq1/cpX+NT/AMG73/KaX9gD/srmtf8AqtPHVf7K1ABRRRQAUUUUAFFFFAH8KH/BRT/g7X/aN/Yq/bf/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WOj6BoOn3Gq6xql5Jg+Xaafp1pcXdw+DshhdsHGKAP8AN2/4PR/2yP8AhY37XHwD/Yq8N6r53h/9m34dT/Er4g2dtNiP/hanxqFlcaTpmqW4Yh7rw38MdB8M6zpUzhWitviTqKICJmJ/itr6y/bt/ah179tX9sf9pP8Aaq8RG6juvjh8XfF/jbS7C9fzLjQfCN1qUln4D8LF98m6Lwl4IsvD/hm2Jkc/ZtJiBdj8x+TaACiiigAooooAK/2Hv+DZvSf7G/4Id/sIWe3Z53hv40atjGM/29+0r8Ztc3f8D/tHfnvuzzmv8eGv9kD/AINw7+HUv+CJ37A1xAqqkfw58c2DBOhm0r40fEvTLhj/ALb3FnKz/wC2WoA/biiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAr/JJ/4Ow/+U2X7Q//AGTv9nj/ANUr4Nr/AFtq/wAkn/g7D/5TZftD/wDZO/2eP/VK+DaAP5vaKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKK6vwJ4G8W/E3xn4X+HngLQdQ8UeNPGmu6b4a8L+HtLi86/1fWtXuo7OwsrdCVRTLPKoeaZ47e3iD3FzLFBFJIt06dSrUhSpQnUq1Zwp06dOMp1KlSpOMKdOEIKUpznOcIQhGMpSlKMYpuST58Xi8LgMJisfjsTh8FgcDhsRjcbjcXXpYXCYPB4OhWxWLxeKxOIqUaGHw2Fw2GxGIxGIr1aVGhQoVq1WpTp0pzj9Y/sAfsT+O/27/wBofw38HvC32vSfCtqY/EXxU8cx2/nWvgfwDZ3MMep6gDIpgm13VHkTR/C2myZ+361dwPcCLSrTVL2z/wBHr4T/AAs8CfBD4beC/hL8MtAtPDHgPwBoNl4c8NaJZj5LWwskOZriZv3t7qV/cvPqOr6ndNJe6rqt3ealfTTXl1PM/wAbf8E1f2DPCX7Av7PGk/D61Gn6v8U/Fn2LxP8AGjxtaR5PiDxe1qVj0fTbmVEuT4T8HQzzaP4at5FgWbdqWvyWVpqXiDUoq/Quv748IfDqHA+R/WcfSg+JM4p0quZ1GoylgaGlTD5TSmr2VByVXGyhLlrY5yV50sJRv/yN/tFvpm4r6U/im8j4Sx2Ih4KeHGNx2X8EYWMqtGlxVm154LN/ELH4eXs3KebRoywPDNHEUvaZZwvToVPZ0MdxBmKplFFFfrp/nWFFFFABRRRQAUUUUAMliinikhmjSaGZHililRZIpYpFKSRyRuCro6kq6MCrKSCCCRX8Dv8AwWl/4Juy/sYfGn/hafww0SSH9m340ave3fhqK0hY2Pw18czLNqOtfDedkBjtdKmjW51vwJ5vlGXQk1DRIluJPCl3fXX98teH/tH/ALPnw4/am+C3jv4F/FbSv7T8H+O9IksJ5ohENT0LVIWFzonifQbiVJFs9e8O6pFa6rpdwySQm4thb3kNzYz3VrP+eeJXAmF494dq4G1Olm+C9pi8kxs0l7HGKDUsNVmk5LB4+MY4fErVU5Ohioxc8M+f+x/oQ/Sxz36JfjJl/Faljcw8O+JnhOH/ABQ4Zw8pT/tLhyeKUqOd5fhpVIUnxJwnXr1c4yap+7ni6Mc3yKrWjhs6pvDf5a9FfSn7W/7LnxH/AGOfjz44+A3xOtSNY8LXvnaJr0FvLBpPjXwhfvLJ4c8Z6E0hffpmt2Sb3hEssulanDqOh37Jqel3sMXzXX+eeMweKy/F4nAY2hUwuMwderhcVh60XCrQr0Jyp1ac4vaUZxeqbjKLhOEpQnCc/wDsf4b4jyLjDh7I+K+F81wWe8N8S5Tl+eZFnOXVo4jA5nlOaYWljMDjcNVj8VOtQrRbjONOrRqwr4bEUaGJwuKw+HKKKK5j2gooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAP2i/4N3v+U0v7AH/AGVzWv8A1Wnjqv8AZWr/ABqf+Dd7/lNL+wB/2VzWv/VaeOq/2VqACiiigAooooAKKKKAP8Xn/gvT/wApi/8AgoZ/2cZ4p/8ASPS6/I2v1y/4L0/8pi/+Chn/AGcZ4p/9I9Lr8jaACiiigAooooAKKKKACvZP2dfE1r4K/aC+BXjK+nFrY+EvjJ8MfE15cscLbWug+NtE1W4nJyMCGG0eQnIwF6143RQB/v8AFFeD/ssfEkfGb9mL9nL4wLci8X4rfAf4Q/ElbsOJBdDx18PvD3igXIkBIkE41TzQ4JDBtwJzXvFABRRRQAUUUUAfMf7avx28Rfsu/sg/tOftK+FPCVh481/9n/4E/FH4z2Pg3U9SudHsPEi/DPwdq/jK80m61Sztb66sY7qw0e6T7RBZ3MkZwVhc8V/CP/xHCfHP/owD4T/+Hx8Yf/MDX9//AMdvhdp3xw+CHxk+CusSLFpHxf8AhV8Q/hdqkrhmSPTviB4R1fwnfSOFBYqltq0rMFBYgEAE1/g6+I/D+seEvEOveFfENjPpev8AhnWdU8P65plypS507WNGvp9O1OxuEPKT2l7bT28qnlZI2B6UAf3F/wDEcJ8c/wDowD4T/wDh8fGH/wAwNH/EcJ8c/wDowD4T/wDh8fGH/wAwNfwt0UAf3Sf8Rwnxz/6MA+E//h8fGH/zA0f8Rwnxz/6MA+E//h8fGH/zA1/C3RQB/dJ/xHCfHP8A6MA+E/8A4fHxh/8AMDR/xHCfHP8A6MA+E/8A4fHxh/8AMDX8LdFAH90n/EcJ8c/+jAPhP/4fHxh/8wNH/EcJ8c/+jAPhP/4fHxh/8wNfwt0UAf3Sf8Rwnxz/AOjAPhP/AOHx8Yf/ADA0f8Rwnxz/AOjAPhP/AOHx8Yf/ADA1/C3RQB/dJ/xHCfHP/owD4T/+Hx8Yf/MDR/xHCfHP/owD4T/+Hx8Yf/MDX8LdFAH90n/EcJ8c/wDowD4T/wDh8fGH/wAwNZWvf8Ht/wAcNd0PWdEk/YF+FNumsaVqOlPcJ8b/ABfI8CahZzWjTKjeA1DtEJi6oWUMVAJAOa/hwooAKKKKACiiigAooooAK/1Uf+DQ/wDbI/4aJ/4Jhn4C6/qv23x5+xl8RdX+GjwTzefqEnwr8eS3vxA+F+p3LFiyWsF3feOfA2kQlVEGmeAbeJCyoMf5V1f1J/8ABo7+2R/wzf8A8FR9P+CfiDVfsPgH9sr4f618JLqK4m8nTofib4WSfx98KtVnwR5moXNxpPij4f6PHtcPe/EUIVUsJYwD/VlooooAKKKKACiiigD8jf2xP+CYHhL9qb/go9/wTa/bm1KHSs/sZX3xcm8aWFyE+3eLY77w8usfAxoWdWJ/4Vr8Wftvi21WMqwl1S4LAr88f65UUUAFFFFABRRRQAV/Ot/wdHftkf8ADJf/AASU+Mnh7Q9V/s74hftWappX7MXhFYZ9t2ND8c2+oar8WLtoEZZ30+T4T+H/ABh4bnukKQ2mp+KNGWZy1zDb3H9FNf5jP/B5b+2R/wALg/by+Fn7Ivh7VftPhT9kf4YRan4qs4Zv3afGH44w6R4t1iG5SJjFcf2X8M9M+FxspJi01jdazr9siQedOZwD+O2iiigAooooAKKKKACv9er/AINaPE1p4i/4Ic/sc2sM4mvPCuoftD+GdVUHJt7uH9pn4v6xZwNySCND1rSJQD/DKpAwRX+QrX+od/wZifElfFf/AAS5+KngK4uQ9/8ACv8Aa9+Ien29pvDNb+HPF3w5+E/ivTp9ud0aXWv3vi1FG0KzWsjKzMXCAH9dVFFFABRRRQAUUUUAfwxft6f8Hc/xy/Yu/bN/aX/ZUj/Yh+Gfi6z+A/xe8X/DvSvFWo/GDxVpF/4l0PRdRddB1+90u38FXlvp91rGjSWOoT2kF3cwwSXDRxTyxqrn5I/4jhPjn/0YB8J//D4+MP8A5ga/JL/g6w+Bs/wa/wCCzvx811LSW00X49+CPg/8cNAV0ZY5otT8C6f8PPEl1BIwAmS68efDjxbcOy5WOaWW3z+5xX85FAH90n/EcJ8c/wDowD4T/wDh8fGH/wAwNH/EcJ8c/wDowD4T/wDh8fGH/wAwNfwt0UAf3Sf8Rwnxz/6MA+E//h8fGH/zA0f8Rwnxz/6MA+E//h8fGH/zA1/C3RQB/dJ/xHCfHP8A6MA+E/8A4fHxh/8AMDR/xHCfHP8A6MA+E/8A4fHxh/8AMDX8LdFAH90n/EcJ8c/+jAPhP/4fHxh/8wNH/EcJ8c/+jAPhP/4fHxh/8wNfwt0UAf3Sf8Rwnxz/AOjAPhP/AOHx8Yf/ADA0f8Rwnxz/AOjAPhP/AOHx8Yf/ADA1/C3RQB/dJ/xHCfHP/owD4T/+Hx8Yf/MDR/xHCfHP/owD4T/+Hx8Yf/MDX8LdFAH90n/EcJ8c/wDowD4T/wDh8fGH/wAwNfyx/wDBUP8Ab/8AEP8AwU4/bG8fftgeKPhvo3wm1nx5oHgLQbjwToPiC98T6Zp0fgTwfpHhC3uYdY1DTdKup31GHSUvZo3so1glmaFGkRA5/PeigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAr+z7/ggp/wTT/4VH4Psf20vjV4f8r4n/ELRXX4K+HtVtsXPgT4d6zbFJvGk8E6brXxN8QbCXZpbIqz6X4Hn/17P4t1GysPyI/4Ip/8E13/AGxfjB/wuX4r6G837N3wa1q0m1S1voD9h+KPxAtlg1HSvAMXmL5V3oOmRyWmt+O8ear6bNpfh14h/wAJK95p/wDedHGkSJFEiRxxoscccahEjRAFRERQFVFUBVVQAoAAAAr+o/AXw29vUpcdZ3h/3FGclw3ha0NK1eDlTq5zOE1rTw8lOjlzaaniFXxkbxw+Hkf4Nfta/psf2Tg8d9FLwvzi2aZlh6E/GrPctxHv5dleIhRxeC8NsPiKFS8Mbm1KWFzPjSMKkZ4bKJZTw5VUKub5vRT6KKK/rU/55AooooAKKKr3d3a2Frc319c29lY2VvNd3l5dzR21raWttG01xc3NxMyQwW8EKPLNNK6RxRozuyqpIG0k22kkm220kkk2222kkkm220kk22km04xlOUYQjKc5yjCEIRlOc5zlGMIQhGMpSnKUoxjGMZSlKUYxjKUoxlYoqlpuo6frGn2Gr6TfWeqaVqlla6jpmp6fcw3un6jp99AlzZX1jeWzyW93Z3dtLHcW1zBJJDPDIksTsjqxu0k1JKUWnFpNNNNNNJppptNNNNNNpppptNNucJ0pzp1ITp1Kc506lOpCdOpTqU5zp1KdSnUjCpTqU6lOdOpTqQhOE4ThOEJwnCBRRRTJCiiigD8if+Cvv/BOiw/bq+A0ms+CNNtIv2i/hFZalrXwv1HENtN4u00p9q1z4X6pdvsRrXxCIRc+Gp7yRIdI8Vw2j/arDS9W8QPcf59Ooaff6Tf32larZXem6npl5c6fqWnX9vNZ31hf2Uz215ZXtpcJHPa3drcRyQXNvPGk0E0bxSIrqyj/AFjK/kJ/4L+/8E2P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/DSP/BUjUvgr4f1X7d4A/Y18AaL8IbSK3m87TpviZ4mSHx78VtVhBYmPULa61fw18PtYjCoEvPh1sCsVMsoB/LfRRRQAUUUUAFFFFABRRRQAUUUUAFf6lH/BsR/wW/h/bw+Ddn+xj+0n4qib9sH4C+E7ePwt4i1m7Vb/APaF+D2gQwWFp4kW4nYPqXxM8BWv2TS/H9u5k1LxFpA03x8kmp3U3jWXRP8ALXr0j4P/ABg+J3wA+J/gf4z/AAY8b6/8OPil8N/EFl4o8E+NvDF61jrWg61YMTFcW8oDxT288TzWWpabew3OmavplzeaVqtneabeXVrMAf72FFfzsf8ABCH/AIL2fCb/AIKr/DKw+GXxPvvDPwy/bk8CaKg8e/DJbqLTdK+K+nadbZuvil8HrW8nM9/pc8cL3fi7wbBJeav4DvTKZvtnhqfStbu/6J6ACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooA+HP8Agp3/AMo1v+Chf/Zjn7WX/qhPH9f4dVf7iv8AwU7/AOUa3/BQv/sxz9rL/wBUJ4/r/DqoAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKtWNje6ne2em6bZ3WoajqF1b2NhYWNvLd3t9e3cqQWtnaWsCST3N1czyRw29vCjyzSukcaM7AFpNtJJttpJJNtttJJJJtttpJJNttJJtpOZzhThKpUlGEIRlOc5yjCEIQjKc5znOUIQhCEJznOc4QhCE5znGMZSj7x+y5+zX8Sf2t/jj4G+BHwr0/7V4l8ZaksdzqVxHK2keFPDtpifxB4v8AEM0SsbbRPD+nCW8uiM3F5MLbStOjudV1CxtLj/SQ/ZX/AGZ/ht+yJ8DPA/wH+Flh9n8O+D9PAvtWniiTV/F3iW8CzeIfGHiGWIYuNZ1+/wB9zMNxgsLUWej6ctvpWm2FrB+fv/BHj/gnDZfs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FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF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FFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFAH//Z" - webUI["html/img/xmltv.png"] = "iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAAAXNSR0IArs4c6QAAAAlwSFlzAAAsSwAALEsBpT2WqQAABCRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IlhNUCBDb3JlIDUuNC4wIj4KICAgPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIgogICAgICAgICAgICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgICAgICAgICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyI+CiAgICAgICAgIDx0aWZmOlJlc29sdXRpb25Vbml0PjI8L3RpZmY6UmVzb2x1dGlvblVuaXQ+CiAgICAgICAgIDx0aWZmOkNvbXByZXNzaW9uPjU8L3RpZmY6Q29tcHJlc3Npb24+CiAgICAgICAgIDx0aWZmOlhSZXNvbHV0aW9uPjI4ODwvdGlmZjpYUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6T3JpZW50YXRpb24+MTwvdGlmZjpPcmllbnRhdGlvbj4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+Mjg4PC90aWZmOllSZXNvbHV0aW9uPgogICAgICAgICA8ZXhpZjpQaXhlbFhEaW1lbnNpb24+NTA8L2V4aWY6UGl4ZWxYRGltZW5zaW9uPgogICAgICAgICA8ZXhpZjpDb2xvclNwYWNlPjE8L2V4aWY6Q29sb3JTcGFjZT4KICAgICAgICAgPGV4aWY6UGl4ZWxZRGltZW5zaW9uPjUwPC9leGlmOlBpeGVsWURpbWVuc2lvbj4KICAgICAgICAgPGRjOnN1YmplY3Q+CiAgICAgICAgICAgIDxyZGY6QmFnLz4KICAgICAgICAgPC9kYzpzdWJqZWN0PgogICAgICAgICA8eG1wOk1vZGlmeURhdGU+MjAxOC0wNy0yOFQyMDowNzozMzwveG1wOk1vZGlmeURhdGU+CiAgICAgICAgIDx4bXA6Q3JlYXRvclRvb2w+UGl4ZWxtYXRvciAzLjM8L3htcDpDcmVhdG9yVG9vbD4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgIDwvcmRmOlJERj4KPC94OnhtcG1ldGE+Co6j9bsAAAGgSURBVGgF7VqxTsNADL0gYGEon8DOwsbAAH8BYmJn6cYIn8DC3h0+oixISFRiYYCJL0AwMMBAeK5w2rpV6uikxHfYknW98+vds18TK21DWGBlWR7CH+BfcEv2AzLP8HP42gLqkyUATuEp2PWEdQjF9ATs1zF/g29Mrxt+vVcUxR3xWxEktzFPJQmivsv8ZSI9DiQyVnxlIonwn6fpiczXpNuVVXH8O+a3Ys3y9NUyuf/NTTbEHZTjUlGSRzSiPhroUIENwB4AS/vS/susDwDhTpYBER9g7wHh5DWyibV9CiitCZbIafDEYUuJHQI3Nr/9ciWsjK6IFSWYhyvClbAyZqOIlYJG84jq7E1Ot97Zm+TinV1TrWwudk9EI3ebGFekzWprzspGEU2ySWCiOrs/s9dr7M/s9fVJJJrNXcsTsfaJc0WsKZINH+/sf1Jqvl1n1f2ZnStRN/pdq646XcSkIh9dkIg4s+IrE3nCpp8RG7f91ns+cCYR/LD4jcAZB42PN+A7/mcQ8ZxJhBYQvMJwBB/BKTFLVoLMC/wCfgyv7BesTKUC2LKM3wAAAABJRU5ErkJggg==" - webUI["html/js/classes_ts.js"] = "dmFyIF9fZXh0ZW5kcyA9ICh0aGlzICYmIHRoaXMuX19leHRlbmRzKSB8fCAoZnVuY3Rpb24gKCkgew0KICAgIHZhciBleHRlbmRTdGF0aWNzID0gZnVuY3Rpb24gKGQsIGIpIHsNCiAgICAgICAgZXh0ZW5kU3RhdGljcyA9IE9iamVjdC5zZXRQcm90b3R5cGVPZiB8fA0KICAgICAgICAgICAgKHsgX19wcm90b19fOiBbXSB9IGluc3RhbmNlb2YgQXJyYXkgJiYgZnVuY3Rpb24gKGQsIGIpIHsgZC5fX3Byb3RvX18gPSBiOyB9KSB8fA0KICAgICAgICAgICAgZnVuY3Rpb24gKGQsIGIpIHsgZm9yICh2YXIgcCBpbiBiKSBpZiAoYi5oYXNPd25Qcm9wZXJ0eShwKSkgZFtwXSA9IGJbcF07IH07DQogICAgICAgIHJldHVybiBleHRlbmRTdGF0aWNzKGQsIGIpOw0KICAgIH07DQogICAgcmV0dXJuIGZ1bmN0aW9uIChkLCBiKSB7DQogICAgICAgIGV4dGVuZFN0YXRpY3MoZCwgYik7DQogICAgICAgIGZ1bmN0aW9uIF9fKCkgeyB0aGlzLmNvbnN0cnVjdG9yID0gZDsgfQ0KICAgICAgICBkLnByb3RvdHlwZSA9IGIgPT09IG51bGwgPyBPYmplY3QuY3JlYXRlKGIpIDogKF9fLnByb3RvdHlwZSA9IGIucHJvdG90eXBlLCBuZXcgX18oKSk7DQogICAgfTsNCn0pKCk7DQp2YXIgTWFpbk1lbnUgPSAvKiogQGNsYXNzICovIChmdW5jdGlvbiAoKSB7DQogICAgZnVuY3Rpb24gTWFpbk1lbnUoKSB7DQogICAgICAgIHRoaXMuRG9jdW1lbnRJRCA9ICJtYWluLW1lbnUiOw0KICAgICAgICB0aGlzLkhUTUxUYWcgPSAiTEkiOw0KICAgIH0NCiAgICBNYWluTWVudS5wcm90b3R5cGUuY3JlYXRlID0gZnVuY3Rpb24gKCkgew0KICAgICAgICBjb25zb2xlLmxvZyh0aGlzLkRvY3VtZW50SUQpOw0KICAgIH07DQogICAgcmV0dXJuIE1haW5NZW51Ow0KfSgpKTsNCnZhciBNYWluTWVudUl0ZW0gPSAvKiogQGNsYXNzICovIChmdW5jdGlvbiAoX3N1cGVyKSB7DQogICAgX19leHRlbmRzKE1haW5NZW51SXRlbSwgX3N1cGVyKTsNCiAgICBmdW5jdGlvbiBNYWluTWVudUl0ZW0oKSB7DQogICAgICAgIHJldHVybiBfc3VwZXIgIT09IG51bGwgJiYgX3N1cGVyLmFwcGx5KHRoaXMsIGFyZ3VtZW50cykgfHwgdGhpczsNCiAgICB9DQogICAgTWFpbk1lbnVJdGVtLnByb3RvdHlwZS5jcmVhdGUyID0gZnVuY3Rpb24gKCkgew0KICAgICAgICB2YXIgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQodGhpcy5IVE1MVGFnKTsNCiAgICAgICAgZWxlbWVudC5pbm5lclRleHQgPSB0aGlzLlZhbHVlOw0KICAgICAgICBjb25zb2xlLmxvZyhlbGVtZW50KTsNCiAgICB9Ow0KICAgIHJldHVybiBNYWluTWVudUl0ZW07DQp9KE1haW5NZW51KSk7DQpmdW5jdGlvbiBwYWdlUmVhZHkoKSB7DQogICAgdmFyIGl0ZW0gPSBuZXcgTWFpbk1lbnVJdGVtKCk7DQogICAgaXRlbS5WYWx1ZSA9ICJUZXN0IjsNCiAgICBpdGVtLmNyZWF0ZTIoKTsNCn0NCg==" webUI["html/js/settings_ts.js"] = "Y2xhc3MgU2V0dGluZ3NDYXRlZ29yeSB7DQogICAgY29uc3RydWN0b3IoKSB7DQogICAgICAgIHRoaXMuRG9jdW1lbnRJRCA9ICJjb250ZW50X3NldHRpbmdzIjsNCiAgICB9DQogICAgY3JlYXRlQ2F0ZWdvcnlIZWFkbGluZSh2YWx1ZSkgew0KICAgICAgICB2YXIgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIkg0Iik7DQogICAgICAgIGVsZW1lbnQuaW5uZXJIVE1MID0gdmFsdWU7DQogICAgICAgIHJldHVybiBlbGVtZW50Ow0KICAgIH0NCiAgICBjcmVhdGVIUigpIHsNCiAgICAgICAgdmFyIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJIUiIpOw0KICAgICAgICByZXR1cm4gZWxlbWVudDsNCiAgICB9DQogICAgY3JlYXRlU2V0dGluZ3Moc2V0dGluZ3NLZXkpIHsNCiAgICAgICAgdmFyIHNldHRpbmcgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJUUiIpOw0KICAgICAgICB2YXIgY29udGVudCA9IG5ldyBQb3B1cENvbnRlbnQoKTsNCiAgICAgICAgdmFyIGRhdGEgPSBTRVJWRVJbInNldHRpbmdzIl1bc2V0dGluZ3NLZXldOw0KICAgICAgICBzd2l0Y2ggKHNldHRpbmdzS2V5KSB7DQogICAgICAgICAgICAvLyBUZXh0IGlucHV0cw0KICAgICAgICAgICAgY2FzZSAidXBkYXRlIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLnVwZGF0ZS50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsICJ1cGRhdGUiLCBkYXRhLnRvU3RyaW5nKCkpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3suc2V0dGluZ3MudXBkYXRlLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJiYWNrdXAucGF0aCI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5iYWNrdXBQYXRoLnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgImJhY2t1cC5wYXRoIiwgZGF0YSk7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5zZXR0aW5ncy5iYWNrdXBQYXRoLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ0ZW1wLnBhdGgiOg0KICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MudGVtcFBhdGgudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCAidGVtcC5wYXRoIiwgZGF0YSk7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5zZXR0aW5ncy50bXBQYXRoLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ1c2VyLmFnZW50IjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLnVzZXJBZ2VudC50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsICJ1c2VyLmFnZW50IiwgZGF0YSk7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5zZXR0aW5ncy51c2VyQWdlbnQucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImJ1ZmZlci50aW1lb3V0IjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmJ1ZmZlclRpbWVvdXQudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCAiYnVmZmVyLnRpbWVvdXQiLCBkYXRhKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnNldHRpbmdzLmJ1ZmZlclRpbWVvdXQucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImZmbXBlZy5wYXRoIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmZmbXBlZ1BhdGgudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCAiZmZtcGVnLnBhdGgiLCBkYXRhKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnNldHRpbmdzLmZmbXBlZ1BhdGgucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImZmbXBlZy5vcHRpb25zIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmZmbXBlZ09wdGlvbnMudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCAiZmZtcGVnLm9wdGlvbnMiLCBkYXRhKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnNldHRpbmdzLmZmbXBlZ09wdGlvbnMucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInZsYy5wYXRoIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLnZsY1BhdGgudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCAidmxjLnBhdGgiLCBkYXRhKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnNldHRpbmdzLnZsY1BhdGgucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInZsYy5vcHRpb25zIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLnZsY09wdGlvbnMudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCAidmxjLm9wdGlvbnMiLCBkYXRhKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnNldHRpbmdzLnZsY09wdGlvbnMucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIC8vIENoZWNrYm94ZXMNCiAgICAgICAgICAgIGNhc2UgImF1dGhlbnRpY2F0aW9uLndlYiI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5hdXRoZW50aWNhdGlvbldFQi50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChzZXR0aW5nc0tleSk7DQogICAgICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGE7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiYXV0aGVudGljYXRpb24ucG1zIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmF1dGhlbnRpY2F0aW9uUE1TLnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KHNldHRpbmdzS2V5KTsNCiAgICAgICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJhdXRoZW50aWNhdGlvbi5tM3UiOg0KICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MuYXV0aGVudGljYXRpb25NM1UudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goc2V0dGluZ3NLZXkpOw0KICAgICAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImF1dGhlbnRpY2F0aW9uLnhtbCI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5hdXRoZW50aWNhdGlvblhNTC50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChzZXR0aW5nc0tleSk7DQogICAgICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGE7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiYXV0aGVudGljYXRpb24uYXBpIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmF1dGhlbnRpY2F0aW9uQVBJLnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KHNldHRpbmdzS2V5KTsNCiAgICAgICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJmaWxlcy51cGRhdGUiOg0KICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MuZmlsZXNVcGRhdGUudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goc2V0dGluZ3NLZXkpOw0KICAgICAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImNhY2hlLmltYWdlcyI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5jYWNoZUltYWdlcy50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChzZXR0aW5nc0tleSk7DQogICAgICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGE7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAieGVwZy5yZXBsYWNlLm1pc3NpbmcuaW1hZ2VzIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLnJlcGxhY2VFbXB0eUltYWdlcy50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChzZXR0aW5nc0tleSk7DQogICAgICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGE7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAieHRldmVBdXRvVXBkYXRlIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLnh0ZXZlQXV0b1VwZGF0ZS50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChzZXR0aW5nc0tleSk7DQogICAgICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGE7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiYXBpIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmFwaS50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChzZXR0aW5nc0tleSk7DQogICAgICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGE7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgLy8gU2VsZWN0DQogICAgICAgICAgICBjYXNlICJ0dW5lciI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy50dW5lci50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIHRleHQgPSBuZXcgQXJyYXkoKTsNCiAgICAgICAgICAgICAgICB2YXIgdmFsdWVzID0gbmV3IEFycmF5KCk7DQogICAgICAgICAgICAgICAgZm9yICh2YXIgaSA9IDE7IGkgPD0gMTAwOyBpKyspIHsNCiAgICAgICAgICAgICAgICAgICAgdGV4dC5wdXNoKGkpOw0KICAgICAgICAgICAgICAgICAgICB2YWx1ZXMucHVzaChpKTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgdmFyIHNlbGVjdCA9IGNvbnRlbnQuY3JlYXRlU2VsZWN0KHRleHQsIHZhbHVlcywgZGF0YSwgc2V0dGluZ3NLZXkpOw0KICAgICAgICAgICAgICAgIHNlbGVjdC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChzZWxlY3QpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiZXBnU291cmNlIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmVwZ1NvdXJjZS50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIHRleHQgPSBbIlBNUyIsICJYRVBHIl07DQogICAgICAgICAgICAgICAgdmFyIHZhbHVlcyA9IFsiUE1TIiwgIlhFUEciXTsNCiAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCBkYXRhLCBzZXR0aW5nc0tleSk7DQogICAgICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKHNlbGVjdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJiYWNrdXAua2VlcCI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5iYWNrdXBLZWVwLnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgdGV4dCA9IFsiNSIsICIxMCIsICIyMCIsICIzMCIsICI0MCIsICI1MCJdOw0KICAgICAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBbIjUiLCAiMTAiLCAiMjAiLCAiMzAiLCAiNDAiLCAiNTAiXTsNCiAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCBkYXRhLCBzZXR0aW5nc0tleSk7DQogICAgICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKHNlbGVjdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJidWZmZXIuc2l6ZS5rYiI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5idWZmZXJTaXplLnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgdGV4dCA9IFsiMC41IE1CIiwgIjEgTUIiLCAiMiBNQiIsICIzIE1CIiwgIjQgTUIiLCAiNSBNQiIsICI2IE1CIiwgIjcgTUIiLCAiOCBNQiJdOw0KICAgICAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBbIjUxMiIsICIxMDI0IiwgIjIwNDgiLCAiMzA3MiIsICI0MDk2IiwgIjUxMjAiLCAiNjE0NCIsICI3MTY4IiwgIjgxOTIiXTsNCiAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCBkYXRhLCBzZXR0aW5nc0tleSk7DQogICAgICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKHNlbGVjdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJidWZmZXIiOg0KICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3Muc3RyZWFtQnVmZmVyaW5nLnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgdGV4dCA9IFsie3suc2V0dGluZ3Muc3RyZWFtQnVmZmVyaW5nLmluZm9fZmFsc2V9fSIsICJ4VGVWZTogKHt7LnNldHRpbmdzLnN0cmVhbUJ1ZmZlcmluZy5pbmZvX3h0ZXZlfX0pIiwgIkZGbXBlZzogKHt7LnNldHRpbmdzLnN0cmVhbUJ1ZmZlcmluZy5pbmZvX2ZmbXBlZ319KSIsICJWTEM6ICh7ey5zZXR0aW5ncy5zdHJlYW1CdWZmZXJpbmcuaW5mb192bGN9fSkiXTsNCiAgICAgICAgICAgICAgICB2YXIgdmFsdWVzID0gWyItIiwgInh0ZXZlIiwgImZmbXBlZyIsICJ2bGMiXTsNCiAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCBkYXRhLCBzZXR0aW5nc0tleSk7DQogICAgICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKHNlbGVjdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ1ZHB4eSI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy51ZHB4eS50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsICJ1ZHB4eSIsIGRhdGEpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3suc2V0dGluZ3MudWRweHkucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgfQ0KICAgICAgICByZXR1cm4gc2V0dGluZzsNCiAgICB9DQogICAgY3JlYXRlRGVzY3JpcHRpb24oc2V0dGluZ3NLZXkpIHsNCiAgICAgICAgdmFyIGRlc2NyaXB0aW9uID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVFIiKTsNCiAgICAgICAgdmFyIHRleHQ7DQogICAgICAgIHN3aXRjaCAoc2V0dGluZ3NLZXkpIHsNCiAgICAgICAgICAgIGNhc2UgImF1dGhlbnRpY2F0aW9uLndlYiI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5hdXRoZW50aWNhdGlvbldFQi5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImF1dGhlbnRpY2F0aW9uLm0zdSI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5hdXRoZW50aWNhdGlvbk0zVS5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImF1dGhlbnRpY2F0aW9uLnBtcyI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5hdXRoZW50aWNhdGlvblBNUy5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImF1dGhlbnRpY2F0aW9uLnhtbCI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5hdXRoZW50aWNhdGlvblhNTC5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImF1dGhlbnRpY2F0aW9uLmFwaSI6DQogICAgICAgICAgICAgICAgaWYgKFNFUlZFUlsic2V0dGluZ3MiXVsiYXV0aGVudGljYXRpb24ud2ViIl0gPT0gdHJ1ZSkgew0KICAgICAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLmF1dGhlbnRpY2F0aW9uQVBJLmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInh0ZXZlQXV0b1VwZGF0ZSI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy54dGV2ZUF1dG9VcGRhdGUuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJiYWNrdXAua2VlcCI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5iYWNrdXBLZWVwLmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiYmFja3VwLnBhdGgiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MuYmFja3VwUGF0aC5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInRlbXAucGF0aCI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy50ZW1wUGF0aC5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImJ1ZmZlciI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5zdHJlYW1CdWZmZXJpbmcuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJidWZmZXIuc2l6ZS5rYiI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5idWZmZXJTaXplLmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiYnVmZmVyLnRpbWVvdXQiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MuYnVmZmVyVGltZW91dC5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInVzZXIuYWdlbnQiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MudXNlckFnZW50LmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiZmZtcGVnLnBhdGgiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MuZmZtcGVnUGF0aC5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImZmbXBlZy5vcHRpb25zIjoNCiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLmZmbXBlZ09wdGlvbnMuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ2bGMucGF0aCI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy52bGNQYXRoLmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAidmxjLm9wdGlvbnMiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MudmxjT3B0aW9ucy5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImVwZ1NvdXJjZSI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5lcGdTb3VyY2UuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ0dW5lciI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy50dW5lci5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInVwZGF0ZSI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy51cGRhdGUuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJhcGkiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MuYXBpLmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiZmlsZXMudXBkYXRlIjoNCiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLmZpbGVzVXBkYXRlLmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiY2FjaGUuaW1hZ2VzIjoNCiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLmNhY2hlSW1hZ2VzLmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAieGVwZy5yZXBsYWNlLm1pc3NpbmcuaW1hZ2VzIjoNCiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLnJlcGxhY2VFbXB0eUltYWdlcy5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInVkcHh5IjoNCiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLnVkcHh5LmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgICAgICB0ZXh0ID0gIiI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIH0NCiAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAiIjsNCiAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICB2YXIgcHJlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiUFJFIik7DQogICAgICAgIHByZS5pbm5lckhUTUwgPSB0ZXh0Ow0KICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKHByZSk7DQogICAgICAgIGRlc2NyaXB0aW9uLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgIGRlc2NyaXB0aW9uLmFwcGVuZENoaWxkKHRkUmlnaHQpOw0KICAgICAgICByZXR1cm4gZGVzY3JpcHRpb247DQogICAgfQ0KfQ0KY2xhc3MgU2V0dGluZ3NDYXRlZ29yeUl0ZW0gZXh0ZW5kcyBTZXR0aW5nc0NhdGVnb3J5IHsNCiAgICBjb25zdHJ1Y3RvcihoZWFkbGluZSwgc2V0dGluZ3NLZXlzKSB7DQogICAgICAgIHN1cGVyKCk7DQogICAgICAgIHRoaXMuaGVhZGxpbmUgPSBoZWFkbGluZTsNCiAgICAgICAgdGhpcy5zZXR0aW5nc0tleXMgPSBzZXR0aW5nc0tleXM7DQogICAgfQ0KICAgIGNyZWF0ZUNhdGVnb3J5KCkgew0KICAgICAgICB2YXIgaGVhZGxpbmUgPSB0aGlzLmNyZWF0ZUNhdGVnb3J5SGVhZGxpbmUodGhpcy5oZWFkbGluZSk7DQogICAgICAgIHZhciBzZXR0aW5nc0tleXMgPSB0aGlzLnNldHRpbmdzS2V5czsNCiAgICAgICAgdmFyIGRvYyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHRoaXMuRG9jdW1lbnRJRCk7DQogICAgICAgIGRvYy5hcHBlbmRDaGlsZChoZWFkbGluZSk7DQogICAgICAgIC8vIENyZWF0ZSBhIHRhYmxlIGZvciB0aGUgY2F0ZWdvcnkNCiAgICAgICAgdmFyIHRhYmxlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEFCTEUiKTsNCiAgICAgICAgdmFyIGtleXMgPSBzZXR0aW5nc0tleXMuc3BsaXQoIiwiKTsNCiAgICAgICAga2V5cy5mb3JFYWNoKHNldHRpbmdzS2V5ID0+IHsNCiAgICAgICAgICAgIHN3aXRjaCAoc2V0dGluZ3NLZXkpIHsNCiAgICAgICAgICAgICAgICBjYXNlICJhdXRoZW50aWNhdGlvbi5wbXMiOg0KICAgICAgICAgICAgICAgIGNhc2UgImF1dGhlbnRpY2F0aW9uLm0zdSI6DQogICAgICAgICAgICAgICAgY2FzZSAiYXV0aGVudGljYXRpb24ueG1sIjoNCiAgICAgICAgICAgICAgICBjYXNlICJhdXRoZW50aWNhdGlvbi5hcGkiOg0KICAgICAgICAgICAgICAgICAgICBpZiAoU0VSVkVSWyJzZXR0aW5ncyJdWyJhdXRoZW50aWNhdGlvbi53ZWIiXSA9PSBmYWxzZSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBkZWZhdWx0Og0KICAgICAgICAgICAgICAgICAgICB2YXIgaXRlbSA9IHRoaXMuY3JlYXRlU2V0dGluZ3Moc2V0dGluZ3NLZXkpOw0KICAgICAgICAgICAgICAgICAgICB2YXIgZGVzY3JpcHRpb24gPSB0aGlzLmNyZWF0ZURlc2NyaXB0aW9uKHNldHRpbmdzS2V5KTsNCiAgICAgICAgICAgICAgICAgICAgdGFibGUuYXBwZW5kQ2hpbGQoaXRlbSk7DQogICAgICAgICAgICAgICAgICAgIHRhYmxlLmFwcGVuZENoaWxkKGRlc2NyaXB0aW9uKTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICB9DQogICAgICAgIH0pOw0KICAgICAgICBkb2MuYXBwZW5kQ2hpbGQodGFibGUpOw0KICAgICAgICBkb2MuYXBwZW5kQ2hpbGQodGhpcy5jcmVhdGVIUigpKTsNCiAgICB9DQp9DQpmdW5jdGlvbiBzaG93U2V0dGluZ3MoKSB7DQogICAgY29uc29sZS5sb2coIlNFVFRJTkdTIik7DQogICAgZm9yIChsZXQgaSA9IDA7IGkgPCBzZXR0aW5nc0NhdGVnb3J5Lmxlbmd0aDsgaSsrKSB7DQogICAgICAgIHNldHRpbmdzQ2F0ZWdvcnlbaV0uY3JlYXRlQ2F0ZWdvcnkoKTsNCiAgICB9DQp9DQpmdW5jdGlvbiBzYXZlU2V0dGluZ3MoKSB7DQogICAgY29uc29sZS5sb2coIlNhdmUgU2V0dGluZ3MiKTsNCiAgICB2YXIgY21kID0gInNhdmVTZXR0aW5ncyI7DQogICAgdmFyIGRpdiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb250ZW50X3NldHRpbmdzIik7DQogICAgdmFyIHNldHRpbmdzID0gZGl2LmdldEVsZW1lbnRzQnlDbGFzc05hbWUoImNoYW5nZWQiKTsNCiAgICB2YXIgbmV3U2V0dGluZ3MgPSBuZXcgT2JqZWN0KCk7DQogICAgZm9yIChsZXQgaSA9IDA7IGkgPCBzZXR0aW5ncy5sZW5ndGg7IGkrKykgew0KICAgICAgICB2YXIgbmFtZTsNCiAgICAgICAgdmFyIHZhbHVlOw0KICAgICAgICBzd2l0Y2ggKHNldHRpbmdzW2ldLnRhZ05hbWUpIHsNCiAgICAgICAgICAgIGNhc2UgIklOUFVUIjoNCiAgICAgICAgICAgICAgICBzd2l0Y2ggKHNldHRpbmdzW2ldLnR5cGUpIHsNCiAgICAgICAgICAgICAgICAgICAgY2FzZSAiY2hlY2tib3giOg0KICAgICAgICAgICAgICAgICAgICAgICAgbmFtZSA9IHNldHRpbmdzW2ldLm5hbWU7DQogICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IHNldHRpbmdzW2ldLmNoZWNrZWQ7DQogICAgICAgICAgICAgICAgICAgICAgICBuZXdTZXR0aW5nc1tuYW1lXSA9IHZhbHVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgICAgIGNhc2UgInRleHQiOg0KICAgICAgICAgICAgICAgICAgICAgICAgbmFtZSA9IHNldHRpbmdzW2ldLm5hbWU7DQogICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IHNldHRpbmdzW2ldLnZhbHVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgc3dpdGNoIChuYW1lKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAidXBkYXRlIjoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSB2YWx1ZS5zcGxpdCgiLCIpOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IHZhbHVlLmZpbHRlcihmdW5jdGlvbiAoZSkgeyByZXR1cm4gZTsgfSk7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgImJ1ZmZlci50aW1lb3V0IjoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSBwYXJzZUZsb2F0KHZhbHVlKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgIG5ld1NldHRpbmdzW25hbWVdID0gdmFsdWU7DQogICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJTRUxFQ1QiOg0KICAgICAgICAgICAgICAgIG5hbWUgPSBzZXR0aW5nc1tpXS5uYW1lOw0KICAgICAgICAgICAgICAgIHZhbHVlID0gc2V0dGluZ3NbaV0udmFsdWU7DQogICAgICAgICAgICAgICAgLy8gSWYgdGhlIHZhbHVlIGlzIGEgbnVtYmVyLCBzdG9yZSBpdCBhcyBhIG51bWJlcg0KICAgICAgICAgICAgICAgIGlmIChpc05hTih2YWx1ZSkpIHsNCiAgICAgICAgICAgICAgICAgICAgbmV3U2V0dGluZ3NbbmFtZV0gPSB2YWx1ZTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgZWxzZSB7DQogICAgICAgICAgICAgICAgICAgIG5ld1NldHRpbmdzW25hbWVdID0gcGFyc2VJbnQodmFsdWUpOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgfQ0KICAgIH0NCiAgICB2YXIgZGF0YSA9IG5ldyBPYmplY3QoKTsNCiAgICBkYXRhWyJzZXR0aW5ncyJdID0gbmV3U2V0dGluZ3M7DQogICAgdmFyIHNlcnZlciA9IG5ldyBTZXJ2ZXIoY21kKTsNCiAgICBzZXJ2ZXIucmVxdWVzdChkYXRhKTsNCn0NCg==" - webUI["html/configuration.html"] = "PCFkb2N0eXBlIGh0bWw+DQo8aHRtbD4NCiAgPGhlYWQ+DQogICAgPG1ldGEgY2hhcnNldD0idXRmLTgiPg0KICAgIDxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgsIGluaXRpYWwtc2NhbGU9MS4wIiAvPiANCiAgICA8dGl0bGU+eFRlVmU8L3RpdGxlPg0KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iY3NzL3NjcmVlbi5jc3MiIHR5cGU9InRleHQvY3NzIj4NCiAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9ImNzcy9iYXNlLmNzcyIgdHlwZT0idGV4dC9jc3MiPg0KICAgIDxzY3JpcHQgbGFuZ3VhZ2U9ImphdmFzY3JpcHQiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJqcy9jb25maWd1cmF0aW9uX3RzLmpzIj48L3NjcmlwdD4NCiAgICA8c2NyaXB0IGxhbmd1YWdlPSJqYXZhc2NyaXB0IiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ianMvbmV0d29ya190cy5qcyI+PC9zY3JpcHQ+DQogICAgPHNjcmlwdCBsYW5ndWFnZT0iamF2YXNjcmlwdCIgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9ImpzL21lbnVfdHMuanMiPjwvc2NyaXB0Pg0KICAgIDxzY3JpcHQgbGFuZ3VhZ2U9ImphdmFzY3JpcHQiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJqcy9zZXR0aW5nc190cy5qcyI+PC9zY3JpcHQ+DQogICAgPHNjcmlwdCBsYW5ndWFnZT0iamF2YXNjcmlwdCIgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9ImpzL2Jhc2VfdHMuanMiPjwvc2NyaXB0Pg0KICA8L2hlYWQ+DQoNCiAgICA8Ym9keSBvbmxvYWQ9ImphdmFzY3JpcHQ6IHJlYWR5Rm9yQ29uZmlndXJhdGlvbigwKTsiPg0KICAgICAgICAgIA0KICAgICAgPGRpdiBpZD0ibG9hZGluZyIgY2xhc3M9ImJsb2NrIj4NCiAgICAgICAgPGRpdiBjbGFzcz0ibG9hZGVyIj48L2Rpdj4NCiAgICAgIDwvZGl2Pg0KDQogICAgICA8ZGl2IGlkPSJoZWFkZXIiIGNsYXNzPSJpbWdDZW50ZXIiPjwvZGl2Pg0KICAgICAgPGRpdiBpZD0iYm94Ij4NCiAgICAgICAgDQogICAgICAgIDx0YWJsZSBpZD0iY2xpZW50SW5mbyIgY2xhc3M9InZpc2libGUiPg0KICAgICAgICAgIDx0cj4NCiAgICAgICAgICAgIDx0ZCBjbGFzcz0idGRLZXkiPlZlcnNpb246PC90ZD4NCiAgICAgICAgICAgIDx0ZCBpZD0idmVyc2lvbiIgY2xhc3M9InRkVmFsIj4mbmJzcDs8L3RkPg0KICAgICAgICAgICAgPHRkIGNsYXNzPSJ0ZEtleSI+T1M6PC90ZD4NCiAgICAgICAgICAgIDx0ZCBpZD0ib3MiIGNsYXNzPSJ0ZFZhbCI+Jm5ic3A7PC90ZD4NCiAgICAgICAgICA8L3RyPg0KICAgICAgICAgIDx0cj4NCiAgICAgICAgICAgIDx0ZCBjbGFzcz0idGRLZXkiPlVVSUQ6PC90ZD4NCiAgICAgICAgICAgIDx0ZCBpZD0idXVpZCIgY2xhc3M9InRkVmFsIj4mbmJzcDs8L3RkPg0KICAgICAgICAgICAgPHRkIGNsYXNzPSJ0ZEtleSI+QXJjaDo8L3RkPg0KICAgICAgICAgICAgPHRkIGlkPSJhcmNoIiBjbGFzcz0idGRWYWwiPiZuYnNwOzwvdGQ+DQogICAgICAgICAgPC90cj4NCiAgICAgICAgICA8dHI+DQogICAgICAgICAgICA8dGQgY2xhc3M9InRkS2V5Ij5TdHJlYW1zOjwvdGQ+DQogICAgICAgICAgICA8dGQgaWQ9InN0cmVhbXMiIGNsYXNzPSJ0ZFZhbCI+Jm5ic3A7PC90ZD4NCiAgICAgICAgICAgIDx0ZCBjbGFzcz0idGRLZXkiPkRWUjo8L3RkPg0KICAgICAgICAgICAgPHRkIGlkPSJEVlIiIGNsYXNzPSJ0ZFZhbCI+Jm5ic3A7PC90ZD4NCiAgICAgICAgICA8L3RyPg0KICAgICAgICA8L3RhYmxlPg0KICAgICAgICANCiAgICAgICAgPGRpdiBpZD0iaGVhZGxpbmUiPg0KICAgICAgICAgIDxoMSBpZD0iaGVhZC10ZXh0IiBjbGFzcz0iY2VudGVyIj5Db25maWd1cmF0aW9uPC9oMT4gICAgICANCiAgICAgICAgPC9kaXY+DQogICAgICAgIDxwIGlkPSJlcnIiIGNsYXNzPSJlcnJvck1zZyBjZW50ZXIiPjwvcD4gICANCiAgICAgICAgPGRpdiBpZD0iY29udGVudCI+DQogICAgICAgICAgICANCiAgICAgICAgPC9kaXY+DQogICAgICAgIDxkaXYgaWQ9ImJveC1mb290ZXIiPg0KICAgICAgICAgIDxpbnB1dCBpZD0ibmV4dCIgY2xhc3M9IiIgdHlwZT0iYnV0dG9uIiBuYW1lPSJuZXh0IiB2YWx1ZT0iTmV4dCIgb25jbGljaz0iamF2YXNjcmlwdDogc2F2ZVdpemFyZCgpOyI+DQogICAgICAgIDwvZGl2Pg0KICAgICAgPC9kaXY+DQogICAgPC9ib2R5Pg0KPC9odG1sPg==" webUI["html/lang/en.json"] = "ew0KICAibWFpbk1lbnUiOg0KICB7DQogICAgIml0ZW0iOg0KICAgIHsNCiAgICAgICJwbGF5bGlzdCI6ICJQbGF5bGlzdCIsDQogICAgICAicG1zSUQiOiAiUE1TIElEIiwNCiAgICAgICJmaWx0ZXIiOiAiRmlsdGVyIiwNCiAgICAgICJ4bWx0diI6ICJYTUxUViIsDQogICAgICAibWFwcGluZyI6ICJNYXBwaW5nIiwNCiAgICAgICJ1c2VycyI6ICJVc2VycyIsDQogICAgICAic2V0dGluZ3MiOiAiU2V0dGluZ3MiLA0KICAgICAgImxvZyI6ICJMb2ciLA0KICAgICAgImxvZ291dCI6ICJMb2dvdXQiDQogICAgfSwNCiAgICAiaGVhZGxpbmUiOg0KICAgIHsNCiAgICAgICJwbGF5bGlzdCI6ICJMb2NhbCBvciByZW1vdGUgcGxheWxpc3RzIiwNCiAgICAgICJmaWx0ZXIiOiAiRmlsdGVyIHBsYXlsaXN0IiwNCiAgICAgICJ4bWx0diI6ICJMb2NhbCBvciByZW1vdGUgWE1MVFYgZmlsZXMiLA0KICAgICAgIm1hcHBpbmciOiAiTWFwIHBsYXlsaXN0IGNoYW5uZWxzIHRvIEVQRyBjaGFubmVscyIsDQogICAgICAidXNlcnMiOiAiVXNlciBtYW5hZ2VtZW50IiwNCiAgICAgICJzZXR0aW5ncyI6ICJTZXR0aW5ncyIsDQogICAgICAibG9nIjogIkxvZyIsDQogICAgICAibG9nb3V0IjogIkxvZ291dCINCiAgICB9DQogIH0sDQogICJjb25maXJtIjoNCiAgew0KICAgICJyZXN0b3JlIjogIkFsbCBkYXRhIHdpbGwgYmUgcmVwbGFjZWQgd2l0aCB0aG9zZSBmcm9tIHRoZSBiYWNrdXAuIFNob3VsZCB0aGUgZmlsZXMgYmUgcmVzdG9yZWQ/Ig0KICB9LA0KICAiYWxlcnQiOg0KICB7DQogICAgImZpbGVMb2FkaW5nRXJyb3IiOiAiRmlsZSBjb3VsZG4ndCBiZSBsb2FkZWQiLA0KICAgICJpbnZhbGlkQ2hhbm5lbE51bWJlciI6ICJJbnZhbGlkIGNoYW5uZWwgbnVtYmVyIiwNCiAgICAibWlzc2luZ0lucHV0IjogIk1pc3NpbmcgaW5wdXQiDQogIH0sDQogICJidXR0b24iOg0KICB7DQogICAgImJhY2siOiAiQmFjayIsDQogICAgImJhY2t1cCI6ICJCYWNrdXAiLA0KICAgICJidWxrRWRpdCI6ICJCdWxrIEVkaXQiLA0KICAgICJjYW5jZWwiOiAiQ2FuY2VsIiwNCiAgICAiZGVsZXRlIjogIkRlbGV0ZSIsDQogICAgImRvbmUiOiAiRG9uZSIsDQogICAgImxvZ2luIjogIkxvZ2luIiwNCiAgICAibmV3IjogIk5ldyIsDQogICAgIm5leHQiOiAiTmV4dCIsDQogICAgInJlc3RvcmUiOiAiUmVzdG9yZSIsDQogICAgInNhdmUiOiAiU2F2ZSIsDQogICAgInNlYXJjaCI6ICJTZWFyY2giLA0KICAgICJ1cGRhdGUiOiAiVXBkYXRlIiwNCiAgICAiY3JhZXRlQWNjb3VudCI6ICJDcmVhdGUgQWNjb3VudCIsDQogICAgInJlc2V0TG9ncyI6ICJSZXNldCBMb2dzIiwNCiAgICAidXBsb2FkTG9nbyI6ICJVcGxvYWQgTG9nbyINCiAgfSwNCiAgImZpbHRlciI6DQogIHsNCiAgICAidGFibGUiOg0KICAgIHsNCiAgICAgICJuYW1lIjogIkZpbHRlciBOYW1lIiwNCiAgICAgICJ0eXBlIjogIkZpbHRlciBUeXBlIiwNCiAgICAgICJmaWx0ZXIiOiAiRmlsdGVyIg0KICAgIH0sDQogICAgImN1c3RvbSI6ICJDdXN0b20iLA0KICAgICJncm91cCI6ICJNM1UgR3JvdXAiLA0KICAgICJuYW1lIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiRmlsdGVyIE5hbWUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIkZpbHRlciBuYW1lIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAiZGVzY3JpcHRpb24iOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJEZXNjcmlwdGlvbiIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiRGVzY3JpcHRpb24iLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJ0eXBlIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiVHlwZSIsDQogICAgICAiZ3JvdXBUaXRsZSI6ICJHcm91cCBUaXRsZSIsDQogICAgICAiY3VzdG9tRmlsdGVyIjogIkN1c3RvbSBGaWx0ZXIiDQogICAgfSwNCiAgICAiY2FzZVNlbnNpdGl2ZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIkNhc2UgU2Vuc2l0aXZlIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJmaWx0ZXJSdWxlIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiRmlsdGVyIFJ1bGUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIlNwb3J0IHtIRH0gIXtFUyxJVH0iLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJmaWx0ZXJHcm91cCI6DQogICAgew0KICAgICAgInRpdGxlIjogIkdyb3VwIFRpdGxlIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIlNlbGVjdCBhIE0zVSBncm91cC4gKENvdW50ZXIpPGJyPkNoYW5naW5nIHRoZSBncm91cCB0aXRsZSBpbiB0aGUgTTNVIGludmFsaWRhdGVzIHRoZSBmaWx0ZXIuIg0KICAgIH0sDQogICAgImluY2x1ZGUiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJJbmNsdWRlIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJGSEQsVUhEIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJDaGFubmVsIG5hbWUgbXVzdCBpbmNsdWRlLjxicj4oQ29tbWEgc2VwYXJhdGVkKSBDb21tYSBtZWFucyBvciINCiAgICB9LA0KICAgICJleGNsdWRlIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiRXhjbHVkZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiRVMsSVQiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIkNoYW5uZWwgbmFtZSBtdXN0IG5vdCBjb250YWluLjxicj4oQ29tbWEgc2VwYXJhdGVkKSBDb21tYSBtZWFucyBvciINCiAgICB9LA0KICAgICJwcmVzZXJ2ZU1hcHBpbmciOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJQcmVzZXJ2ZSBFeGlzdGluZyBNM1U8YnI+Q2hhbm5lbCBOdW1iZXJzIiwNCiAgICAgICJwYWxjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIlByZXNlcnZlIGV4aXN0aW5nIE0zVSBwbGF5bGlzdCBjaGFubmVsIG51bWJlcnM/Ig0KICAgIH0sDQogICAgInN0YXJ0aW5nQ2hhbm5lbCI6DQogICAgew0KICAgICAgInRpdGxlIjogIlN0YXJ0aW5nIENoYW5uZWwgTnVtYmVyIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJkZWZhdWx0TWlzc2luZ0VQRyI6DQogICAgew0KICAgICAgInRpdGxlIjogIkZpbGwgTWlzc2luZyBFUEcgRGF0YSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJXaGVuIHRoZXJlIGlzIG5vIG1hdGNoaW5nIEVQRyBkYXRhIGZvciBjaGFubmVsLCA8YnI+YXV0b2ZpbGwgd2l0aCB4VGVWZSBkdW1teSBFUEcgZGF0YT8iDQogICAgfQ0KDQogIH0sDQogICJwbGF5bGlzdCI6DQogIHsNCiAgICAidGFibGUiOg0KICAgIHsNCiAgICAgICJwbGF5bGlzdCI6ICJQbGF5bGlzdCIsDQogICAgICAidHVuZXIiOiAiVHVuZXIiLA0KICAgICAgImxhc3RVcGRhdGUiOiAiTGFzdCBVcGRhdGUiLA0KICAgICAgImF2YWlsYWJpbGl0eSI6ICJBdmFpbGFiaWxpdHkiLA0KICAgICAgInR5cGUiOiAiVHlwZSIsDQogICAgICAic3RyZWFtcyI6ICJTdHJlYW1zIiwNCiAgICAgICJncm91cFRpdGxlIjogImdyb3VwLXRpdGxlIiwNCiAgICAgICJ0dmdJRCI6ICJ0dmctaWQiLA0KICAgICAgInVuaXF1ZUlEIjogIlVuaXF1ZSBJRCINCiAgICB9LA0KICAgICJwbGF5bGlzdFR5cGUiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJQbGF5bGlzdCB0eXBlIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJ0eXBlIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiVHlwZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAibmFtZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIk5hbWUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIlBsYXlsaXN0IG5hbWUiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJkZXNjcmlwdGlvbiI6DQogICAgew0KICAgICAgInRpdGxlIjogIkRlc2NyaXB0aW9uIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJEZXNjcmlwdGlvbiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgImZpbGVNM1UiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJNM1UgRmlsZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiRmlsZSBwYXRoIG9yIFVSTCBvZiB0aGUgTTNVIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAiZmlsZUhESFIiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJIREhvbWVSdW4gSVAiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIklQIGFkZHJlc3MgYW5kIHBvcnQgKDE5Mi4xNjguMS4xMDo1MDA0KSIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgInR1bmVyIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiVHVuZXIgLyBTdHJlYW1zIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIk51bWJlciBvZiBwYXJhbGxlbCBjb25uZWN0aW9ucyB0aGF0IGNhbiBiZSBlc3RhYmxpc2hlZCB0byB0aGUgcHJvdmlkZXIuIDxicj5Pbmx5IGF2YWlsYWJsZSB3aXRoIGFjdGl2YXRlZCBidWZmZXIuPGJyPk5ldyBzZXR0aW5ncyB3aWxsIG9ubHkgYmUgYXBwbGllZCBhZnRlciBxdWl0dGluZyBhbGwgc3RyZWFtcy4iDQogICAgfQ0KICB9LA0KICAieG1sdHYiOg0KICB7DQogICAgInRhYmxlIjoNCiAgICB7DQogICAgICAiZ3VpZGUiOiAiR3VpZGUiLA0KICAgICAgImxhc3RVcGRhdGUiOiAiTGFzdCBVcGRhdGUiLA0KICAgICAgImF2YWlsYWJpbGl0eSI6ICJBdmFpbGFiaWxpdHkiLA0KICAgICAgImNoYW5uZWxzIjogIkNoYW5uZWxzIiwNCiAgICAgICJwcm9ncmFtcyI6ICJQcm9ncmFtcyINCiAgICB9LA0KICAgICJuYW1lIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiTmFtZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiR3VpZGUgbmFtZSIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgImRlc2NyaXB0aW9uIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiRGVzY3JpcHRpb24iLA0KICAgICAgInBsYWNlaG9sZGVyIjogIkRlc2NyaXB0aW9uIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAiZmlsZVhNTFRWIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiWE1MVFYgRmlsZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiRmlsZSBwYXRoIG9yIFVSTCBvZiB0aGUgWE1MVFYiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9DQogIH0sDQogICJtYXBwaW5nIjoNCiAgew0KICAgICJ0YWJsZSI6DQogICAgew0KICAgICAgImNoTm8iOiAiQ2guIE5vLiIsDQogICAgICAibG9nbyI6ICJMb2dvIiwNCiAgICAgICJjaGFubmVsTmFtZSI6ICJDaGFubmVsIE5hbWUiLA0KICAgICAgInBsYXlsaXN0IjogIlBsYXlsaXN0IiwNCiAgICAgICJncm91cFRpdGxlIjogIkdyb3VwIFRpdGxlIiwNCiAgICAgICJ4bWx0dkZpbGUiOiAiWE1MVFYgRmlsZSIsDQogICAgICAieG1sdHZJRCI6ICJYTUxUViBJRCIsDQogICAgICAidGltZXNoaWZ0IjogIlRpbWVzaGlmdCINCiAgICB9LA0KICAgICJhY3RpdmUiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJBY3RpdmUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgImNoYW5uZWxOYW1lIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiQ2hhbm5lbCBOYW1lIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJkZXNjcmlwdGlvbiI6DQogICAgew0KICAgICAgInRpdGxlIjogIkNoYW5uZWwgRGVzY3JpcHRpb24iLA0KICAgICAgInBsYWNlaG9sZGVyIjogIlVzZWQgYnkgdGhlIER1bW15IGFzIGFuIFhNTCBkZXNjcmlwdGlvbiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgInVwZGF0ZUNoYW5uZWxOYW1lIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiVXBkYXRlIENoYW5uZWwgTmFtZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAiY2hhbm5lbExvZ28iOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJMb2dvIFVSTCIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAidXBkYXRlQ2hhbm5lbExvZ28iOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJVcGRhdGUgQ2hhbm5lbCBMb2dvIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJlcGdDYXRlZ29yeSI6DQogICAgew0KICAgICAgInRpdGxlIjogIkVQRyBDYXRlZ29yeSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAibTN1R3JvdXBUaXRsZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIkdyb3VwIFRpdGxlICh4dGV2ZS5tM3UpIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJ4bWx0dkZpbGUiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJYTUxUViBGaWxlIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJ4bWx0dkNoYW5uZWwiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJYTUxUViBDaGFubmVsIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJ0aW1lc2hpZnQiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJUaW1lc2hpZnQiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIjAiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9DQogIH0sDQogICJ1c2VycyI6DQogIHsNCiAgICAidGFibGUiOg0KICAgIHsNCiAgICAgICJ1c2VybmFtZSI6ICJVc2VybmFtZSIsDQogICAgICAicGFzc3dvcmQiOiAiUGFzc3dvcmQiLA0KICAgICAgIndlYiI6ICJXRUIiLA0KICAgICAgInBtcyI6ICJQTVMiLA0KICAgICAgIm0zdSI6ICJNM1UiLA0KICAgICAgInhtbCI6ICJYTUwiLA0KICAgICAgImFwaSI6ICJBUEkiDQogICAgfSwNCiAgICAidXNlcm5hbWUiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJVc2VybmFtZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiVXNlcm5hbWUiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJwYXNzd29yZCI6DQogICAgew0KICAgICAgInRpdGxlIjogIlBhc3N3b3JkIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJQYXNzd29yZCIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgImNvbmZpcm0iOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJDb25maXJtIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJQYXNzd29yZCBjb25maXJtIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAid2ViIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiV2ViIEFjY2VzcyIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAicG1zIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiUE1TIEFjY2VzcyIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAibTN1IjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiTTNVIEFjY2VzcyIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAieG1sIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiWE1MIEFjY2VzcyIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAiYXBpIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiQVBJIEFjY2VzcyIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfQ0KICB9LA0KICAic2V0dGluZ3MiOg0KICB7DQogICAgImNhdGVnb3J5IjoNCiAgICB7DQogICAgICAiZ2VuZXJhbCI6ICJHZW5lcmFsIiwNCiAgICAgICJmaWxlcyI6ICJGaWxlcyIsDQogICAgICAic3RyZWFtaW5nIjogIlN0cmVhbWluZyIsDQogICAgICAiYmFja3VwIjogIkJhY2t1cCIsDQogICAgICAiYXV0aGVudGljYXRpb24iOiAiQXV0aGVudGljYXRpb24iDQogICAgfSwNCiAgICAidXBkYXRlIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiU2NoZWR1bGUgZm9yIHVwZGF0aW5nIChQbGF5bGlzdCwgWE1MVFYsIEJhY2t1cCkiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIjAwMDAsMTAwMCwyMDAwIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJUaW1lIGluIDI0IGhvdXIgZm9ybWF0ICgwODAwID0gODowMCBhbSkuIE1vcmUgdGltZXMgY2FuIGJlIGVudGVyZWQgY29tbWEgc2VwYXJhdGVkLiBMZWF2ZSB0aGlzIGZpZWxkIGVtcHR5IGlmIG5vIHVwZGF0ZXMgYXJlIHRvIGJlIGNhcnJpZWQgb3V0LiINCiAgICB9LA0KICAgICJhcGkiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJBUEkgSW50ZXJmYWNlIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJWaWEgQVBJIGludGVyZmFjZSBpdCBpcyBwb3NzaWJsZSB0byBzZW5kIGNvbW1hbmRzIHRvIHhUZVZlLiBBUEkgZG9jdW1lbnRhdGlvbiBpcyA8YSBocmVmPSdodHRwczovL2dpdGh1Yi5jb20veHRldmUtcHJvamVjdC94VGVWZS1Eb2N1bWVudGF0aW9uL2Jsb2IvbWFzdGVyL2VuL2NvbmZpZ3VyYXRpb24ubWQjYXBpJz5oZXJlPC9hPiINCiAgICB9LA0KICAgICJlcGdTb3VyY2UiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJFUEcgU291cmNlIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJQTVM6PGJyPi0gVXNlIEVQRyBkYXRhIGZyb20gUGxleCBvciBFbWJ5IDxicj48YnI+WEVQRzo8YnI+LSBVc2Ugb2Ygb25lIG9yIG1vcmUgWE1MVFYgZmlsZXM8YnI+LSBDaGFubmVsIG1hbmFnZW1lbnQ8YnI+LSBNM1UgLyBYTUxUViBleHBvcnQgKEhUVFAgbGluayBmb3IgSVBUViBhcHBzKSINCiAgICB9LA0KICAgICJ0dW5lciI6DQogICAgew0KICAgICAgInRpdGxlIjogIk51bWJlciBvZiBUdW5lcnMiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIk51bWJlciBvZiBwYXJhbGxlbCBjb25uZWN0aW9ucyB0aGF0IGNhbiBiZSBlc3RhYmxpc2hlZCB0byB0aGUgcHJvdmlkZXIuPGJyPkF2YWlsYWJsZSBmb3I6IFBsZXgsIEVtYnkgKEhESFIpLCBNM1UgKHdpdGggYWN0aXZlIGJ1ZmZlcikuPGJyPkFmdGVyIGEgY2hhbmdlLCB4VGVWZSBtdXN0IGJlIGRlbGV0ZSBpbiB0aGUgUGxleCAvIEVtYnkgRFZSIHNldHRpbmdzIGFuZCBzZXQgdXAgYWdhaW4uIg0KICAgIH0sDQogICAgImZpbGVzVXBkYXRlIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiVXBkYXRlcyBhbGwgZmlsZXMgYXQgc3RhcnR1cCIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiVXBkYXRlcyBhbGwgcGxheWxpc3RzLCB0dW5lciBhbmQgWE1MVFYgZmlsZXMgYXQgc3RhcnR1cC4iDQogICAgfSwNCiAgICAiY2FjaGVJbWFnZXMiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJJbWFnZSBDYWNoaW5nIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJBbGwgaW1hZ2VzIGZyb20gdGhlIFhNTFRWIGZpbGUgYXJlIGNhY2hlZCwgYWxsb3dpbmcgZmFzdGVyIHJlbmRlcmluZyBvZiB0aGUgZ3JpZCBpbiB0aGUgY2xpZW50Ljxicj5Eb3dubG9hZGluZyB0aGUgaW1hZ2VzIG1heSB0YWtlIGEgd2hpbGUgYW5kIHdpbGwgYmUgZG9uZSBpbiB0aGUgYmFja2dyb3VuZC4iDQogICAgfSwNCiAgICAicmVwbGFjZUVtcHR5SW1hZ2VzIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiUmVwbGFjZSBtaXNzaW5nIHByb2dyYW0gaW1hZ2VzIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJJZiB0aGUgcG9zdGVyIGluIHRoZSBYTUxUViBwcm9ncmFtIGlzIG1pc3NpbmcsIHRoZSBjaGFubmVsIGxvZ28gd2lsbCBiZSB1c2VkLiINCiAgICB9LA0KICAgICJ4dGV2ZUF1dG9VcGRhdGUiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJBdXRvbWF0aWMgdXBkYXRlIG9mIHhUZVZlIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJJZiBhIG5ldyB2ZXJzaW9uIG9mIHhUZVZlIGlzIGF2YWlsYWJsZSwgaXQgd2lsbCBiZSBhdXRvbWF0aWNhbGx5IGluc3RhbGxlZC4gVGhlIHVwZGF0ZXMgYXJlIGRvd25sb2FkZWQgZnJvbSBHaXRIdWIuIg0KICAgIH0sDQogICAgInN0cmVhbUJ1ZmZlcmluZyI6DQogICAgew0KICAgICAgInRpdGxlIjogIlN0cmVhbSBCdWZmZXIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIkZ1bmN0aW9ucyBvZiB0aGUgYnVmZmVyOjxicj4tIFRoZSBzdHJlYW0gaXMgcGFzc2VkIGZyb20geFRlVmUsIEZGbXBlZyBvciBWTEMgdG8gUGxleCwgRW1ieSBvciBNM1UgUGxheWVyPGJyPi0gU21hbGwgamVya2luZyBvZiB0aGUgc3RyZWFtcyBjYW4gYmUgY29tcGVuc2F0ZWQ8YnI+LSBITFMgLyBNM1U4IHN1cHBvcnQ8YnI+LSBSVFAgLyBSVFBTIHN1cHBvcnQgKG9ubHkgRkZtcGVnIG9yIFZMQyk8YnI+LSBSZS1zdHJlYW1pbmc8YnI+LSBTZXBhcmF0ZSB0dW5lciBsaW1pdCBmb3IgZWFjaCBwbGF5bGlzdCIsDQogICAgICAiaW5mb19mYWxzZSI6ICJObyBCdWZmZXIgKENsaWVudCBjb25uZWN0cyB0byB0aGUgc3RyZWFtaW5nIHNlcnZlcikiLA0KICAgICAgImluZm9feHRldmUiOiAieFRlVmUgY29ubmVjdHMgdG8gdGhlIHN0cmVhbWluZyBzZXJ2ZXIiLA0KICAgICAgImluZm9fZmZtcGVnIjogIkZGbXBlZyBjb25uZWN0cyB0byB0aGUgc3RyZWFtaW5nIHNlcnZlciIsDQogICAgICAiaW5mb192bGMiOiAiVkxDIGNvbm5lY3RzIHRvIHRoZSBzdHJlYW1pbmcgc2VydmVyIg0KDQogICAgfSwNCiAgICAidWRweHkiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJVRFB4eSBhZGRyZXNzIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJUaGUgYWRkcmVzcyBvZiB5b3VyIFVEUHh5IHNlcnZlci4gSWYgc2V0LCBhbmQgdGhlIGNoYW5uZWwgVVJMcyBpbiB0aGUgbTN1IGlzIG11bHRpY2FzdCwgeFRlVmUgd2lsbCByZXdyaXRlIGl0IHNvIHRoYXQgaXQgaXMgYWNjZXNzZWQgdmlhIHRoZSBVRFB4eSBzZXJ2aWNlLiIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiaG9zdDpwb3J0Ig0KICAgIH0sDQogICAgImZmbXBlZ1BhdGgiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJGRm1wZWcgQmluYXJ5IFBhdGgiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIlBhdGggdG8gRkZtcGVnIGJpbmFyeS4iLA0KICAgICAgInBsYWNlaG9sZGVyIjogIi9wYXRoL3RvL2ZmbXBlZyINCiAgICB9LA0KICAgICJmZm1wZWdPcHRpb25zIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiRkZtcGVnIE9wdGlvbnMiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIkZGbXBlZyBvcHRpb25zLjxicj5Pbmx5IGNoYW5nZSBpZiB5b3Uga25vdyB3aGF0IHlvdSBhcmUgZG9pbmcuPGJyPkxlYXZlIGJsYW5rIHRvIHNldCBkZWZhdWx0IHNldHRpbmdzLiIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiTGVhdmUgYmxhbmsgdG8gc2V0IGRlZmF1bHQgc2V0dGluZ3MiDQogICAgfSwNCiAgICAidmxjUGF0aCI6DQogICAgew0KICAgICAgInRpdGxlIjogIlZMQyAvIENWTEMgQmluYXJ5IFBhdGgiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIlBhdGggdG8gVkxDIC8gQ1ZMQyBiaW5hcnkuIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIvcGF0aC90by9jdmxjIg0KICAgIH0sDQogICAgInZsY09wdGlvbnMiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJWTEMgLyBDVkxDIE9wdGlvbnMiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIlZMQyAvIENWTEMgb3B0aW9ucy48YnI+T25seSBjaGFuZ2UgaWYgeW91IGtub3cgd2hhdCB5b3UgYXJlIGRvaW5nLjxicj5MZWF2ZSBibGFuayB0byBzZXQgZGVmYXVsdCBzZXR0aW5ncy4iLA0KICAgICAgInBsYWNlaG9sZGVyIjogIkxlYXZlIGJsYW5rIHRvIHNldCBkZWZhdWx0IHNldHRpbmdzIg0KICAgIH0sDQogICAgImJ1ZmZlclNpemUiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJCdWZmZXIgU2l6ZSIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiQnVmZmVyIHNpemUgaW4gTUIuPGJyPk0zVTg6IElmIHRoZSBUUyBzZWdtZW50IHNtYWxsZXIgdGhlbiB0aGUgYnVmZmVyIHNpemUsIHRoZSBmaWxlIHNpemUgb2YgdGhlIHNlZ21lbnQgaXMgdXNlZC4iDQogICAgfSwNCiAgICAiYnVmZmVyVGltZW91dCI6DQogICAgew0KICAgICAgInRpdGxlIjogIlRpbWVvdXQgZm9yIG5ldyBjbGllbnQgY29ubmVjdGlvbnMiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIlRoZSB4VGVWZSBidWZmZXIgd2FpdHMgdW50aWwgbmV3IGNsaWVudCBjb25uZWN0aW9ucyBhcmUgZXN0YWJsaXNoZWQuIEhlbHBmdWwgZm9yIGZhc3QgY2hhbm5lbCBzd2l0Y2hpbmcuIFZhbHVlIGluIG1pbGxpc2Vjb25kcy4iLA0KICAgICAgInBsYWNlaG9sZGVyIjogIjEwMCINCiAgICB9LA0KICAgICJ1c2VyQWdlbnQiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJVc2VyIEFnZW50IiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJVc2VyIEFnZW50IGZvciBIVFRQIHJlcXVlc3RzLiBGb3IgZXZlcnkgSFRUUCBjb25uZWN0aW9uLCB0aGlzIHZhbHVlIGlzIHVzZWQgZm9yIHRoZSB1c2VyIGFnZW50LiBTaG91bGQgb25seSBiZSBjaGFuZ2VkIGlmIHhUZVZlIGlzIGJsb2NrZWQuIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJ4VGVWZSINCiAgICB9LA0KICAgICJiYWNrdXBQYXRoIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiTG9jYXRpb24gZm9yIGF1dG9tYXRpYyBiYWNrdXBzIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIvbW50L2RhdGEvYmFja3VwL3h0ZXZlLyIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiQmVmb3JlIGFueSB1cGRhdGUgb2YgdGhlIHByb3ZpZGVyIGRhdGEgYnkgdGhlIHNjaGVkdWxlLCB4VGVWZSBjcmVhdGVzIGEgYmFja3VwLiBUaGUgcGF0aCBmb3IgdGhlIGF1dG9tYXRpYyBiYWNrdXBzIGNhbiBiZSBjaGFuZ2VkLiB4VGVWZSByZXF1aXJlcyB3cml0ZSBwZXJtaXNzaW9uIGZvciB0aGlzIGZvbGRlci4iDQogICAgfSwNCiAgICAidGVtcFBhdGgiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJMb2NhdGlvbiBmb3IgdGhlIHRlbXBvcmFyeSBmaWxlcyIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiL3RtcC94dGV2ZS8iLA0KICAgICAgImRlc2NyaXB0aW9uIjogIkxvY2F0aW9uIGZvciB0aGUgYnVmZmVyIGZpbGVzLiINCiAgICB9LA0KICAgICJiYWNrdXBLZWVwIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiTnVtYmVyIG9mIGJhY2t1cHMgdG8ga2VlcCIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiTnVtYmVyIG9mIGJhY2t1cHMgdG8ga2VlcC4gT2xkZXIgYmFja3VwcyBhcmUgYXV0b21hdGljYWxseSBkZWxldGVkLiINCiAgICB9LA0KICAgICJhdXRoZW50aWNhdGlvbldFQiI6DQogICAgew0KICAgICAgInRpdGxlIjogIldFQiBBdXRoZW50aWNhdGlvbiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiQWNjZXNzIHRvIHRoZSB3ZWIgaW50ZXJmYWNlIG9ubHkgcG9zc2libGUgd2l0aCBjcmVkZW50aWFscy4iDQogICAgfSwNCiAgICAiYXV0aGVudGljYXRpb25QTVMiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJQTVMgQXV0aGVudGljYXRpb24iLA0KICAgICAgImRlc2NyaXB0aW9uIjogIlBsZXggcmVxdWVzdHMgYXJlIG9ubHkgcG9zc2libGUgd2l0aCBhdXRoZW50aWNhdGlvbi4gPGJyPjxiPldhcm5pbmchISE8L2I+IEFmdGVyIGFjdGl2YXRpbmcgdGhpcyBmdW5jdGlvbiB4VGVWZSBtdXN0IGJlIGRlbGV0ZSBpbiB0aGUgUE1TIERWUiBzZXR0aW5ncyBhbmQgc2V0IHVwIGFnYWluLiINCiAgICB9LA0KICAgICJhdXRoZW50aWNhdGlvbk0zVSI6DQogICAgew0KICAgICAgInRpdGxlIjogIk0zVSBBdXRoZW50aWNhdGlvbiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiRG93bmxvYWRpbmcgdGhlIHh0ZXZlLm0zdSBmaWxlIHZpYSBhbiBIVFRQIHJlcXVlc3QgaXMgb25seSBwb3NzaWJsZSB3aXRoIGF1dGhlbnRpY2F0aW9uLiINCiAgICB9LA0KICAgICJhdXRoZW50aWNhdGlvblhNTCI6DQogICAgew0KICAgICAgInRpdGxlIjogIlhNTCBBdXRoZW50aWNhdGlvbiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiRG93bmxvYWRpbmcgdGhlIHh0ZXZlLnhtbCBmaWxlIHZpYSBhbiBIVFRQIHJlcXVlc3QgaXMgb25seSBwb3NzaWJsZSB3aXRoIGF1dGhlbnRpY2F0aW9uIg0KICAgIH0sDQogICAgImF1dGhlbnRpY2F0aW9uQVBJIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiQVBJIEF1dGhlbnRpY2F0aW9uIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJBY2Nlc3MgdG8gdGhlIEFQSSBpbnRlcmZhY2UgaXMgb25seSBwb3NzaWJsZSB3aXRoIGF1dGhlbnRpY2F0aW9uLiINCiAgICB9DQogIH0sDQogICJ3aXphcmQiOg0KICB7DQogICAgImVwZ1NvdXJjZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIkVQRyBTb3VyY2UiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIlBNUzo8YnI+LSBVc2UgRVBHIGRhdGEgZnJvbSBQbGV4IG9yIEVtYnkgPGJyPjxicj5YRVBHOjxicj4tIFVzZSBvZiBvbmUgb3IgbW9yZSBYTUxUViBmaWxlczxicj4tIENoYW5uZWwgbWFuYWdlbWVudDxicj4tIE0zVSAvIFhNTFRWIGV4cG9ydCAoSFRUUCBsaW5rIGZvciBJUFRWIGFwcHMpIg0KICAgIH0sDQogICAgInR1bmVyIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiTnVtYmVyIG9mIHR1bmVycyIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiTnVtYmVyIG9mIHBhcmFsbGVsIGNvbm5lY3Rpb25zIHRoYXQgY2FuIGJlIGVzdGFibGlzaGVkIHRvIHRoZSBwcm92aWRlci48YnI+QXZhaWxhYmxlIGZvcjogUGxleCwgRW1ieSAoSERIUiksIE0zVSAod2l0aCBhY3RpdmUgYnVmZmVyKS48YnI+QWZ0ZXIgYSBjaGFuZ2UsIHhUZVZlIG11c3QgYmUgZGVsZXRlIGluIHRoZSBQbGV4IC8gRW1ieSBEVlIgc2V0dGluZ3MgYW5kIHNldCB1cCBhZ2Fpbi4iDQogICAgfSwNCiAgICAibTN1IjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiTTNVIFBsYXlsaXN0IiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJGaWxlIHBhdGggb3IgVVJMIG9mIHRoZSBNM1UiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIkxvY2FsIG9yIHJlbW90ZSBwbGF5bGlzdHMiDQogICAgfSwNCiAgICAieG1sdHYiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJYTUxUViBGaWxlIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJGaWxlIHBhdGggb3IgVVJMIG9mIHRoZSBYTUxUViIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiTG9jYWwgb3IgcmVtb3RlIFhNTFRWIGZpbGUiDQogICAgfQ0KICB9LA0KICAibG9naW4iOg0KICB7DQogICAgImZhaWxlZCI6ICJVc2VyIGF1dGhlbnRpY2F0aW9uIGZhaWxlZCIsDQogICAgImhlYWRsaW5lIjogIkxvZ2luIiwNCiAgICAidXNlcm5hbWUiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJVc2VybmFtZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiVXNlcm5hbWUiDQogICAgfSwNCiAgICAicGFzc3dvcmQiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJQYXNzd29yZCIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiUGFzc3dvcmQiDQogICAgfQ0KICB9LA0KICAiYWNjb3VudCI6DQogIHsNCiAgICAiZmFpbGVkIjogIlBhc3N3b3JkIGRvZXMgbm90IG1hdGNoIiwNCiAgICAiaGVhZGxpbmUiOiAiQ3JlYXRlIHVzZXIgYWNjb3VudCIsDQogICAgInVzZXJuYW1lIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiVXNlcm5hbWUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIlVzZXJuYW1lIg0KICAgIH0sDQogICAgInBhc3N3b3JkIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiUGFzc3dvcmQiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIlBhc3N3b3JkIg0KICAgIH0sDQogICAgImNvbmZpcm0iOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJDb25maXJtIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJDb25maXJtIg0KICAgIH0NCiAgfQ0KfQ==" - webUI["html/index.html"] = "PCFkb2N0eXBlIGh0bWw+DQo8aHRtbD4NCiAgPGhlYWQ+DQogICAgPG1ldGEgY2hhcnNldD0idXRmLTgiPg0KICAgIDwhLS0tDQogICAgPG1ldGEgbmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9IndpZHRoPWRldmljZS13aWR0aCwgaW5pdGlhbC1zY2FsZT0xLjAiIC8+IA0KICAgIC0tPg0KICAgIDx0aXRsZT54VGVWZTwvdGl0bGU+DQogICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJjc3Mvc2NyZWVuLmNzcyIgdHlwZT0idGV4dC9jc3MiPg0KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iY3NzL2Jhc2UuY3NzIiB0eXBlPSJ0ZXh0L2NzcyI+DQoNCiAgICA8c2NyaXB0IGxhbmd1YWdlPSJqYXZhc2NyaXB0IiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ianMvbmV0d29ya190cy5qcyI+PC9zY3JpcHQ+DQogICAgPHNjcmlwdCBsYW5ndWFnZT0iamF2YXNjcmlwdCIgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9ImpzL21lbnVfdHMuanMiPjwvc2NyaXB0Pg0KICAgIDxzY3JpcHQgbGFuZ3VhZ2U9ImphdmFzY3JpcHQiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJqcy9zZXR0aW5nc190cy5qcyI+PC9zY3JpcHQ+DQogICAgPHNjcmlwdCBsYW5ndWFnZT0iamF2YXNjcmlwdCIgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9ImpzL2xvZ3NfdHMuanMiPjwvc2NyaXB0Pg0KICAgIDxzY3JpcHQgbGFuZ3VhZ2U9ImphdmFzY3JpcHQiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJqcy9iYXNlX3RzLmpzIj48L3NjcmlwdD4NCg0KICA8L2hlYWQ+DQoNCiAgICA8Ym9keSBvbmxvYWQ9ImphdmFzY3JpcHQ6IFBhZ2VSZWFkeSgpOyI+DQoNCiAgICAgIDxkaXYgaWQ9ImxvYWRpbmciIGNsYXNzPSJub25lIj4NCiAgICAgICAgPGRpdiBjbGFzcz0ibG9hZGVyIj48L2Rpdj4NCiAgICAgIDwvZGl2Pg0KDQogICAgICA8ZGl2IGlkPSJwb3B1cCIgY2xhc3M9Im5vbmUiPg0KICAgICAgICA8ZGl2IGlkPSJwb3B1cC1jdXN0b20iPjwvZGl2Pg0KICAgICAgPC9kaXY+DQoNCiAgICAgIDxkaXYgaWQ9ImxheW91dCI+DQoNCiAgICAgICAgPCEtLQ0KICAgICAgICA8ZGl2IGlkPSJub3RpZmljYXRpb24iPg0KICAgICAgICAgIDxkaXYgY2xhc3M9ImVsZW1lbnQiPg0KICAgICAgICAgICAgPGg1PlhFUEc8L2g1Pg0KICAgICAgICAgICAgPHByZT4xMS4wNS4yMDE5IC0gMjA6MjE8L3ByZT4NCiAgICAgICAgICAgIDxocj4NCiAgICAgICAgICAgIDxwPkhhbGxvIGRhcyBpc3QgZWluIFRlc3QuIFVuZCBub2NoIG1laHIgVGV4dC48L3A+DQogICAgICAgICAgPC9kaXY+DQogICAgICAgIDwvZGl2Pg0KICAgICAgLS0+DQoNCiAgICAgICAgPGRpdiBpZD0ibWVudS13cmFwcGVyIiBjbGFzcz0ibGF5b3V0LWxlZnQiPg0KICAgICAgICAgIDxkaXYgaWQ9ICJicmFuY2giPjwvZGl2Pg0KICAgICAgICAgIDxkaXYgaWQ9ImxvZ28iPjwvZGl2Pg0KICAgICAgICAgIDxuYXYgaWQ9Im1haW4tbWVudSI+PC9uYXY+DQogICAgICAgIDwvZGl2Pg0KDQogICAgICAgIDxkaXYgY2xhc3M9ImxheW91dC1yaWdodCI+DQoNCiAgICAgICAgICA8dGFibGUgaWQ9ImNsaWVudEluZm8iIGNsYXNzPSIiPg0KDQogICAgICAgICAgICA8dHI+DQogICAgICAgICAgICAgIDx0ZCBjbGFzcz0idGRLZXkiPnhUZVZlOjwvdGQ+DQogICAgICAgICAgICAgIDx0ZCBpZD0idmVyc2lvbiIgY2xhc3M9InRkVmFsIj4mbmJzcDs8L3RkPg0KICAgICAgICAgICAgICA8dGQgY2xhc3M9InRkS2V5Ij5PUzo8L3RkPg0KICAgICAgICAgICAgICA8dGQgaWQ9Im9zIiBjbGFzcz0idGRWYWwiPiZuYnNwOzwvdGQ+DQogICAgICAgICAgICAgIDx0ZCBjbGFzcz0idGRLZXkgcGhvbmUiPkRWUiBJUDo8L3RkPg0KICAgICAgICAgICAgICA8dGQgaWQ9IkRWUiIgY2xhc3M9InRkVmFsIHBob25lIj4mbmJzcDs8L3RkPg0KICAgICAgICAgICAgPC90cj4NCg0KICAgICAgICAgICAgPHRyPg0KICAgICAgICAgICAgICA8dGQgY2xhc3M9InRkS2V5Ij5VVUlEOjwvdGQ+DQogICAgICAgICAgICAgIDx0ZCBpZD0idXVpZCIgY2xhc3M9InRkVmFsIj4mbmJzcDs8L3RkPg0KICAgICAgICAgICAgICA8dGQgY2xhc3M9InRkS2V5Ij5BcmNoOjwvdGQ+DQogICAgICAgICAgICAgIDx0ZCBpZD0iYXJjaCIgY2xhc3M9InRkVmFsIj4mbmJzcDs8L3RkPg0KICAgICAgICAgICAgICA8dGQgY2xhc3M9InRkS2V5IHBob25lIj5NM1UgVVJMOjwvdGQ+DQogICAgICAgICAgICAgIDx0ZCBpZD0ibTN1LXVybCIgY2xhc3M9InRkVmFsIHBob25lIj4mbmJzcDs8L3RkPg0KICAgICAgICAgICAgPC90cj4NCg0KICAgICAgICAgICAgPHRyPg0KICAgICAgICAgICAgICA8dGQgY2xhc3M9InRkS2V5Ij5BdmFpbGFibGUgU3RyZWFtczo8L3RkPg0KICAgICAgICAgICAgICA8dGQgaWQ9InN0cmVhbXMiIGNsYXNzPSJ0ZFZhbCI+Jm5ic3A7PC90ZD4NCiAgICAgICAgICAgICAgPHRkIGNsYXNzPSJ0ZEtleSI+RVBHIFNvdXJjZTo8L3RkPg0KICAgICAgICAgICAgICA8dGQgaWQ9ImVwZ1NvdXJjZSIgY2xhc3M9InRkVmFsIj4mbmJzcDs8L3RkPg0KICAgICAgICAgICAgICA8dGQgY2xhc3M9InRkS2V5IHBob25lIj5YRVBHIFVSTDo8L3RkPg0KICAgICAgICAgICAgICA8dGQgaWQ9InhlcGctdXJsIiBjbGFzcz0idGRWYWwgcGhvbmUiPiZuYnNwOzwvdGQ+DQogICAgICAgICAgICA8L3RyPg0KDQogICAgICAgICAgICA8dHI+DQogICAgICAgICAgICAgIDx0ZCBjbGFzcz0idGRLZXkiPlhFUEcgQ2hhbm5lbHM6PC90ZD4NCiAgICAgICAgICAgICAgPHRkIGlkPSJ4ZXBnIiBjbGFzcz0idGRWYWwiPiZuYnNwOzwvdGQ+DQogICAgICAgICAgICAgIDx0ZCBjbGFzcz0idGRLZXkiPkVycm9yczo8L3RkPg0KICAgICAgICAgICAgICA8dGQgaWQ9ImVycm9ycyIgY2xhc3M9InRkVmFsIj4mbmJzcDs8L3RkPg0KICAgICAgICAgICAgICA8dGQgY2xhc3M9InRkS2V5Ij5XYXJuaW5nczo8L3RkPg0KICAgICAgICAgICAgICA8dGQgaWQ9Indhcm5pbmdzIiBjbGFzcz0idGRWYWwiPiZuYnNwOzwvdGQ+DQogICAgICAgICAgICA8L3RyPg0KDQogICAgICAgICAgPC90YWJsZT4NCiAgICAgICAgIA0KICAgICAgICAgIDxkaXYgaWQ9Im15U3RyZWFtc0JveCIgY2xhc3M9Im5vdFZpc2libGUiPg0KDQogICAgICAgICAgICA8ZGl2IGlkPSJhbGxTdHJlYW1zIj4NCiAgICAgICAgICAgICAgPHRhYmxlIGlkPSJhY3RpdmVTdHJlYW1zIj48L3RhYmxlPg0KICAgICAgICAgICAgICA8dGFibGUgaWQ9ImluYWN0aXZlU3RyZWFtcyI+PC90YWJsZT4NCiAgICAgICAgICAgIDwvZGl2Pg0KDQogICAgICAgICAgPC9kaXY+DQogICAgICAgICAgDQogICAgICAgICAgPGRpdiBpZD0iY29udGVudCIgY2xhc3M9IiI+PC9kaXY+DQogICAgICAgICAgICANCiAgICAgICAgPC9kaXY+DQoNCiAgICAgIDwvZGl2Pg0KICAgICAgDQogICAgPC9ib2R5Pg0KICAgIA0KPC9odG1sPg==" - webUI["html/create-first-user.html"] = "PCFkb2N0eXBlIGh0bWw+DQo8aHRtbD4NCiAgPGhlYWQ+DQogICAgPG1ldGEgY2hhcnNldD0idXRmLTgiPg0KICAgIDxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgsIGluaXRpYWwtc2NhbGU9MS4wIiAvPiANCiAgICA8dGl0bGU+eFRlVmU8L3RpdGxlPg0KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iY3NzL3NjcmVlbi5jc3MiIHR5cGU9InRleHQvY3NzIj4NCiAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9ImNzcy9iYXNlLmNzcyIgdHlwZT0idGV4dC9jc3MiPg0KICAgIDxzY3JpcHQgbGFuZ3VhZ2U9ImphdmFzY3JpcHQiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJqcy9uZXR3b3JrX3RzLmpzIj48L3NjcmlwdD4NCiAgICA8c2NyaXB0IGxhbmd1YWdlPSJqYXZhc2NyaXB0IiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ianMvYXV0aGVudGljYXRpb25fdHMuanMiPjwvc2NyaXB0Pg0KICA8L2hlYWQ+DQoNCiAgICA8Ym9keT4NCiAgICAgICAgICANCiAgICAgIDxkaXYgaWQ9ImhlYWRlciIgY2xhc3M9ImltZ0NlbnRlciI+PC9kaXY+DQoNCiAgICAgIDxkaXYgaWQ9ImJveCI+DQoNCiAgICAgICAgPGRpdiBpZD0iaGVhZGxpbmUiPg0KICAgICAgICAgIDxoMSBpZD0iaGVhZC10ZXh0IiBjbGFzcz0iY2VudGVyIj57ey5hY2NvdW50LmhlYWRsaW5lfX08L2gxPg0KICAgICAgICA8L2Rpdj4NCg0KICAgICAgICA8cCBpZD0iZXJyIiBjbGFzcz0iZXJyb3JNc2cgY2VudGVyIj48L3A+DQoNCiAgICAgICAgPGRpdiBpZD0iY29udGVudCI+DQoNCiAgICAgICAgICAgIDxmb3JtIGlkPSJhdXRoZW50aWNhdGlvbiIgYWN0aW9uPSIiIG1ldGhvZD0icG9zdCI+DQoNCiAgICAgICAgICAgICAgPGg1Pnt7LmFjY291bnQudXNlcm5hbWUudGl0bGV9fTo8L2g1Pg0KICAgICAgICAgICAgICA8aW5wdXQgaWQ9InVzZXJuYW1lIiB0eXBlPSJ0ZXh0IiBuYW1lPSJ1c2VybmFtZSIgcGxhY2Vob2xkZXI9IlVzZXJuYW1lIiB2YWx1ZT0iIj4NCiAgICAgICAgICAgICAgPGg1Pnt7LmFjY291bnQucGFzc3dvcmQudGl0bGV9fTo8L2g1Pg0KICAgICAgICAgICAgICA8aW5wdXQgaWQ9InBhc3N3b3JkIiB0eXBlPSJwYXNzd29yZCIgbmFtZT0icGFzc3dvcmQiIHBsYWNlaG9sZGVyPSJQYXNzd29yZCIgdmFsdWU9IiI+DQogICAgICAgICAgICAgIDxoNT57ey5hY2NvdW50LmNvbmZpcm0udGl0bGV9fTo8L2g1Pg0KICAgICAgICAgICAgICA8aW5wdXQgaWQ9ImNvbmZpcm0iICB0eXBlPSJwYXNzd29yZCIgbmFtZT0iY29uZmlybSIgIHBsYWNlaG9sZGVyPSJDb25maXJtIiB2YWx1ZT0iIj4NCiAgICAgICAgICAgICAgDQogICAgICAgICAgICA8L2Zvcm0+DQoNCiAgICAgICAgPC9kaXY+DQogICAgICAgIA0KICAgICAgICA8ZGl2IGlkPSJib3gtZm9vdGVyIj4NCiAgICAgICAgICA8aW5wdXQgaWQ9InN1Ym1pdCIgY2xhc3M9IiIgdHlwZT0iYnV0dG9uIiB2YWx1ZT0ie3suYnV0dG9uLmNyYWV0ZUFjY291bnR9fSIgb25jbGljaz0iamF2YXNjcmlwdDogbG9naW4oKTsiPg0KICAgICAgICA8L2Rpdj4NCiAgICAgIA0KICAgICAgICANCiAgICAgIDwvZGl2Pg0KICAgIDwvYm9keT4NCjwvaHRtbD4=" + webUI["html/login.html"] = "PCFkb2N0eXBlIGh0bWw+DQo8aHRtbD4NCiAgPGhlYWQ+DQogICAgPG1ldGEgY2hhcnNldD0idXRmLTgiPg0KICAgIDxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgsIGluaXRpYWwtc2NhbGU9MS4wIiAvPiANCiAgICA8dGl0bGU+eFRlVmU8L3RpdGxlPg0KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iY3NzL3NjcmVlbi5jc3MiIHR5cGU9InRleHQvY3NzIj4NCiAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9ImNzcy9iYXNlLmNzcyIgdHlwZT0idGV4dC9jc3MiPg0KICAgIDxzY3JpcHQgbGFuZ3VhZ2U9ImphdmFzY3JpcHQiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJqcy9uZXR3b3JrX3RzLmpzIj48L3NjcmlwdD4NCiAgICA8c2NyaXB0IGxhbmd1YWdlPSJqYXZhc2NyaXB0IiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ianMvYXV0aGVudGljYXRpb25fdHMuanMiPjwvc2NyaXB0Pg0KICA8L2hlYWQ+DQoNCiAgICA8Ym9keT4NCiAgICAgICAgICANCiAgICAgIDxkaXYgaWQ9ImhlYWRlciIgY2xhc3M9ImltZ0NlbnRlciI+PC9kaXY+DQoNCiAgICAgIDxkaXYgaWQ9ImJveCI+DQoNCiAgICAgICAgPGRpdiBpZD0iaGVhZGxpbmUiPg0KICAgICAgICAgIDxoMSBpZD0iaGVhZC10ZXh0IiBjbGFzcz0iY2VudGVyIj57ey5sb2dpbi5oZWFkbGluZX19PC9oMT4NCiAgICAgICAgPC9kaXY+DQoNCiAgICAgICAgPHAgaWQ9ImVyciIgY2xhc3M9ImVycm9yTXNnIGNlbnRlciI+e3suYXV0aGVudGljYXRpb25FcnJ9fTwvcD4NCg0KICAgICAgICA8ZGl2IGlkPSJjb250ZW50Ij4NCg0KICAgICAgICAgICAgPGZvcm0gaWQ9ImF1dGhlbnRpY2F0aW9uIiBhY3Rpb249IiIgbWV0aG9kPSJwb3N0Ij4NCg0KICAgICAgICAgICAgICA8aDU+e3subG9naW4udXNlcm5hbWUudGl0bGV9fTo8L2g1Pg0KICAgICAgICAgICAgICA8aW5wdXQgaWQ9InVzZXJuYW1lIiB0eXBlPSJ0ZXh0IiBuYW1lPSJ1c2VybmFtZSIgcGxhY2Vob2xkZXI9IlVzZXJuYW1lIiB2YWx1ZT0iIj4NCiAgICAgICAgICAgICAgPGg1Pnt7LmxvZ2luLnBhc3N3b3JkLnRpdGxlfX06PC9oNT4NCiAgICAgICAgICAgICAgPGlucHV0IGlkPSJwYXNzd29yZCIgdHlwZT0icGFzc3dvcmQiIG5hbWU9InBhc3N3b3JkIiBwbGFjZWhvbGRlcj0iUGFzc3dvcmQiIHZhbHVlPSIiPg0KDQogICAgICAgICAgICA8L2Zvcm0+DQoNCiAgICAgICAgPC9kaXY+DQoNCiAgICAgICAgPGRpdiBpZD0iYm94LWZvb3RlciI+DQogICAgICAgICAgPGlucHV0IGlkPSJzdWJtaXQiIGNsYXNzPSIiIHR5cGU9ImJ1dHRvbiIgdmFsdWU9Int7LmJ1dHRvbi5sb2dpbn19IiBvbmNsaWNrPSJqYXZhc2NyaXB0OiBsb2dpbigpOyI+DQogICAgICAgIDwvZGl2Pg0KICAgICAgICANCiAgICAgIDwvZGl2Pg0KDQogICAgPC9ib2R5Pg0KICAgIA0KPC9odG1sPg==" webUI["html/maintenance.html"] = "PCFkb2N0eXBlIGh0bWw+DQo8aHRtbD4NCiAgPGhlYWQ+DQogICAgPG1ldGEgY2hhcnNldD0idXRmLTgiPg0KICAgIDxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgsIGluaXRpYWwtc2NhbGU9MS4wIiAvPiANCiAgICA8dGl0bGU+eFRlVmU8L3RpdGxlPg0KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iY3NzL3NjcmVlbi5jc3MiIHR5cGU9InRleHQvY3NzIj4NCiAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9ImNzcy9iYXNlLmNzcyIgdHlwZT0idGV4dC9jc3MiPg0KICA8L2hlYWQ+DQoNCiAgICA8Ym9keT4NCiAgICAgICAgICANCiAgICAgIDxkaXYgaWQ9ImhlYWRlciIgY2xhc3M9ImltZ0NlbnRlciI+PC9kaXY+DQoNCiAgICAgIDxkaXYgaWQ9ImJveCI+DQoNCiAgICAgICAgPGRpdiBpZD0iaGVhZGxpbmUiPg0KICAgICAgICAgIDxoMSBpZD0iaGVhZC10ZXh0IiBjbGFzcz0iY2VudGVyIj5NYWludGVuYW5jZTwvaDE+ICAgICAgDQogICAgICAgIDwvZGl2PiAgDQoNCiAgICAgICAgPGRpdiBpZD0iY29udGVudCI+DQogICAgICAgICAgeFRlVmUgaXMgdXBkYXRpbmcgdGhlIGRhdGFiYXNlLCBwbGVhc2UgdHJ5IGFnYWluIGxhdGVyLg0KICAgICAgICA8L2Rpdj4NCg0KICAgICAgICA8ZGl2IGlkPSJib3gtZm9vdGVyIj48L2Rpdj4NCiAgICAgICAgDQogICAgICA8L2Rpdj4NCg0KICAgIDwvYm9keT4NCjwvaHRtbD4=" - webUI["html/js/menu_ts.js"] = "Y2xhc3MgTWFpbk1lbnUgew0KICAgIGNvbnN0cnVjdG9yKCkgew0KICAgICAgICB0aGlzLkRvY3VtZW50SUQgPSAibWFpbi1tZW51IjsNCiAgICAgICAgdGhpcy5IVE1MVGFnID0gIkxJIjsNCiAgICAgICAgdGhpcy5JbWFnZVBhdGggPSAiaW1nLyI7DQogICAgfQ0KICAgIGNyZWF0ZUlNRyhzcmMpIHsNCiAgICAgICAgbGV0IGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJJTUciKTsNCiAgICAgICAgZWxlbWVudC5zZXRBdHRyaWJ1dGUoInNyYyIsIHRoaXMuSW1hZ2VQYXRoICsgc3JjKTsNCiAgICAgICAgcmV0dXJuIGVsZW1lbnQ7DQogICAgfQ0KICAgIGNyZWF0ZVZhbHVlKHZhbHVlKSB7DQogICAgICAgIGxldCBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiUCIpOw0KICAgICAgICBlbGVtZW50LmlubmVySFRNTCA9IHZhbHVlOw0KICAgICAgICByZXR1cm4gZWxlbWVudDsNCiAgICB9DQp9DQpjbGFzcyBNYWluTWVudUl0ZW0gZXh0ZW5kcyBNYWluTWVudSB7DQogICAgY29uc3RydWN0b3IobWVudUtleSwgdmFsdWUsIGltYWdlLCBoZWFkbGluZSkgew0KICAgICAgICBzdXBlcigpOw0KICAgICAgICB0aGlzLm1lbnVLZXkgPSBtZW51S2V5Ow0KICAgICAgICB0aGlzLnZhbHVlID0gdmFsdWU7DQogICAgICAgIHRoaXMuaW1nU3JjID0gaW1hZ2U7DQogICAgICAgIHRoaXMuaGVhZGxpbmUgPSBoZWFkbGluZTsNCiAgICB9DQogICAgY3JlYXRlSXRlbSgpIHsNCiAgICAgICAgbGV0IGl0ZW0gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJMSSIpOw0KICAgICAgICBpdGVtLnNldEF0dHJpYnV0ZSgib25jbGljayIsICJqYXZhc2NyaXB0OiBvcGVuVGhpc01lbnUodGhpcykiKTsNCiAgICAgICAgaXRlbS5zZXRBdHRyaWJ1dGUoImlkIiwgdGhpcy5pZCk7DQogICAgICAgIGxldCBpbWcgPSB0aGlzLmNyZWF0ZUlNRyh0aGlzLmltZ1NyYyk7DQogICAgICAgIGxldCB2YWx1ZSA9IHRoaXMuY3JlYXRlVmFsdWUodGhpcy52YWx1ZSk7DQogICAgICAgIGl0ZW0uYXBwZW5kQ2hpbGQoaW1nKTsNCiAgICAgICAgaXRlbS5hcHBlbmRDaGlsZCh2YWx1ZSk7DQogICAgICAgIGxldCBkb2MgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCh0aGlzLkRvY3VtZW50SUQpOw0KICAgICAgICBkb2MuYXBwZW5kQ2hpbGQoaXRlbSk7DQogICAgICAgIHN3aXRjaCAodGhpcy5tZW51S2V5KSB7DQogICAgICAgICAgICBjYXNlICJwbGF5bGlzdCI6DQogICAgICAgICAgICAgICAgdGhpcy50YWJsZUhlYWRlciA9IFsie3sucGxheWxpc3QudGFibGUucGxheWxpc3R9fSIsICJ7ey5wbGF5bGlzdC50YWJsZS50dW5lcn19IiwgInt7LnBsYXlsaXN0LnRhYmxlLmxhc3RVcGRhdGV9fSIsICJ7ey5wbGF5bGlzdC50YWJsZS5hdmFpbGFiaWxpdHl9fSAlIiwgInt7LnBsYXlsaXN0LnRhYmxlLnR5cGV9fSIsICJ7ey5wbGF5bGlzdC50YWJsZS5zdHJlYW1zfX0iLCAie3sucGxheWxpc3QudGFibGUuZ3JvdXBUaXRsZX19ICUiLCAie3sucGxheWxpc3QudGFibGUudHZnSUR9fSAlIiwgInt7LnBsYXlsaXN0LnRhYmxlLnVuaXF1ZUlEfX0gJSJdOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAieG1sdHYiOg0KICAgICAgICAgICAgICAgIHRoaXMudGFibGVIZWFkZXIgPSBbInt7LnhtbHR2LnRhYmxlLmd1aWRlfX0iLCAie3sueG1sdHYudGFibGUubGFzdFVwZGF0ZX19IiwgInt7LnhtbHR2LnRhYmxlLmF2YWlsYWJpbGl0eX19ICUiLCAie3sueG1sdHYudGFibGUuY2hhbm5lbHN9fSIsICJ7ey54bWx0di50YWJsZS5wcm9ncmFtc319Il07DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJmaWx0ZXIiOg0KICAgICAgICAgICAgICAgIHRoaXMudGFibGVIZWFkZXIgPSBbInt7LmZpbHRlci50YWJsZS5uYW1lfX0iLCAie3suZmlsdGVyLnRhYmxlLnR5cGV9fSIsICJ7ey5maWx0ZXIudGFibGUuZmlsdGVyfX0iXTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInVzZXJzIjoNCiAgICAgICAgICAgICAgICB0aGlzLnRhYmxlSGVhZGVyID0gWyJ7ey51c2Vycy50YWJsZS51c2VybmFtZX19IiwgInt7LnVzZXJzLnRhYmxlLnBhc3N3b3JkfX0iLCAie3sudXNlcnMudGFibGUud2VifX0iLCAie3sudXNlcnMudGFibGUucG1zfX0iLCAie3sudXNlcnMudGFibGUubTN1fX0iLCAie3sudXNlcnMudGFibGUueG1sfX0iLCAie3sudXNlcnMudGFibGUuYXBpfX0iXTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgIm1hcHBpbmciOg0KICAgICAgICAgICAgICAgIHRoaXMudGFibGVIZWFkZXIgPSBbIkJVTEsiLCAie3subWFwcGluZy50YWJsZS5jaE5vfX0iLCAie3subWFwcGluZy50YWJsZS5sb2dvfX0iLCAie3subWFwcGluZy50YWJsZS5jaGFubmVsTmFtZX19IiwgInt7Lm1hcHBpbmcudGFibGUucGxheWxpc3R9fSIsICJ7ey5tYXBwaW5nLnRhYmxlLmdyb3VwVGl0bGV9fSIsICJ7ey5tYXBwaW5nLnRhYmxlLnhtbHR2RmlsZX19IiwgInt7Lm1hcHBpbmcudGFibGUueG1sdHZJRH19IiwgInt7Lm1hcHBpbmcudGFibGUudGltZXNoaWZ0fX0iXTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgfQ0KICAgICAgICAvL2NvbnNvbGUubG9nKHRoaXMubWVudUtleSwgdGhpcy50YWJsZUhlYWRlcik7DQogICAgfQ0KfQ0KY2xhc3MgQ29udGVudCB7DQogICAgY29uc3RydWN0b3IoKSB7DQogICAgICAgIHRoaXMuRG9jdW1lbnRJRCA9ICJjb250ZW50IjsNCiAgICAgICAgdGhpcy5UYWJsZUlEID0gImNvbnRlbnRfdGFibGUiOw0KICAgICAgICB0aGlzLmhlYWRlckNsYXNzID0gImNvbnRlbnRfdGFibGVfaGVhZGVyIjsNCiAgICAgICAgdGhpcy5pbnRlcmFjdGlvbklEID0gImNvbnRlbnQtaW50ZXJhY3Rpb24iOw0KICAgIH0NCiAgICBjcmVhdGVIZWFkbGluZSh2YWx1ZSkgew0KICAgICAgICBsZXQgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIkgzIik7DQogICAgICAgIGVsZW1lbnQuaW5uZXJIVE1MID0gdmFsdWU7DQogICAgICAgIHJldHVybiBlbGVtZW50Ow0KICAgIH0NCiAgICBjcmVhdGVIUigpIHsNCiAgICAgICAgcmV0dXJuIGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIkhSIik7DQogICAgfQ0KICAgIGNyZWF0ZUludGVyYWN0aW9uKCkgew0KICAgICAgICBsZXQgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIkRJViIpOw0KICAgICAgICBlbGVtZW50LnNldEF0dHJpYnV0ZSgiaWQiLCB0aGlzLmludGVyYWN0aW9uSUQpOw0KICAgICAgICByZXR1cm4gZWxlbWVudDsNCiAgICB9DQogICAgY3JlYXRlRElWKCkgew0KICAgICAgICBsZXQgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIkRJViIpOw0KICAgICAgICBlbGVtZW50LmlkID0gdGhpcy5EaXZJRDsNCiAgICAgICAgcmV0dXJuIGVsZW1lbnQ7DQogICAgfQ0KICAgIGNyZWF0ZVRBQkxFKCkgew0KICAgICAgICBsZXQgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlRBQkxFIik7DQogICAgICAgIGVsZW1lbnQuaWQgPSB0aGlzLlRhYmxlSUQ7DQogICAgICAgIHJldHVybiBlbGVtZW50Ow0KICAgIH0NCiAgICBjcmVhdGVUYWJsZVJvdygpIHsNCiAgICAgICAgbGV0IGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJUUiIpOw0KICAgICAgICBlbGVtZW50LmNsYXNzTmFtZSA9IHRoaXMuaGVhZGVyQ2xhc3M7DQogICAgICAgIHJldHVybiBlbGVtZW50Ow0KICAgIH0NCiAgICBjcmVhdGVUYWJsZUNvbnRlbnQobWVudUtleSkgew0KICAgICAgICBsZXQgZGF0YSA9IHt9Ow0KICAgICAgICBsZXQgcm93cyA9IFtdOw0KICAgICAgICBsZXQgZmlsZVR5cGVzID0gW107DQogICAgICAgIHN3aXRjaCAobWVudUtleSkgew0KICAgICAgICAgICAgY2FzZSAicGxheWxpc3QiOg0KICAgICAgICAgICAgICAgIGZpbGVUeXBlcyA9IFsibTN1IiwgImhkaHIiXTsNCiAgICAgICAgICAgICAgICBmaWxlVHlwZXMuZm9yRWFjaChmaWxlVHlwZSA9PiB7DQogICAgICAgICAgICAgICAgICAgIGRhdGEgPSBTRVJWRVJbInNldHRpbmdzIl1bImZpbGVzIl1bZmlsZVR5cGVdOw0KICAgICAgICAgICAgICAgICAgICB2YXIga2V5cyA9IGdldE9iaktleXMoZGF0YSk7DQogICAgICAgICAgICAgICAgICAgIGtleXMuZm9yRWFjaChrZXkgPT4gew0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVFIiKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmlkID0ga2V5Ow0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgiJyArIGZpbGVUeXBlICsgJyIsIHRoaXMpJyk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsibmFtZSJdOw0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChTRVJWRVJbInNldHRpbmdzIl1bImJ1ZmZlciJdICE9ICItIikgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bInR1bmVyIl07DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gIi0iOw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bImxhc3QudXBkYXRlIl07DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsicHJvdmlkZXIuYXZhaWxhYmlsaXR5Il07DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsidHlwZSJdLnRvVXBwZXJDYXNlKCk7DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsiY29tcGF0aWJpbGl0eSJdWyJzdHJlYW1zIl07DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsiY29tcGF0aWJpbGl0eSJdWyJncm91cC50aXRsZSJdOw0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bImNvbXBhdGliaWxpdHkiXVsidHZnLmlkIl07DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsiY29tcGF0aWJpbGl0eSJdWyJzdHJlYW0uaWQiXTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHJvd3MucHVzaCh0cik7DQogICAgICAgICAgICAgICAgICAgIH0pOw0KICAgICAgICAgICAgICAgIH0pOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiZmlsdGVyIjoNCiAgICAgICAgICAgICAgICBkZWxldGUgU0VSVkVSWyJzZXR0aW5ncyJdWyJmaWx0ZXIiXVstMV07DQogICAgICAgICAgICAgICAgZGF0YSA9IFNFUlZFUlsic2V0dGluZ3MiXVsiZmlsdGVyIl07DQogICAgICAgICAgICAgICAgdmFyIGtleXMgPSBnZXRPYmpLZXlzKGRhdGEpOw0KICAgICAgICAgICAgICAgIGtleXMuZm9yRWFjaChrZXkgPT4gew0KICAgICAgICAgICAgICAgICAgICB2YXIgdHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJUUiIpOw0KICAgICAgICAgICAgICAgICAgICB0ci5pZCA9IGtleTsNCiAgICAgICAgICAgICAgICAgICAgdHIuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgiJyArIGRhdGFba2V5XVsidHlwZSJdICsgJyIsIHRoaXMpJyk7DQogICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJuYW1lIl07DQogICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgIHN3aXRjaCAoZGF0YVtrZXldWyJ0eXBlIl0pIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgImN1c3RvbS1maWx0ZXIiOg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSAie3suZmlsdGVyLmN1c3RvbX19IjsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgImdyb3VwLXRpdGxlIjoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gInt7LmZpbHRlci5ncm91cH19IjsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsiZmlsdGVyIl07DQogICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgcm93cy5wdXNoKHRyKTsNCiAgICAgICAgICAgICAgICB9KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInhtbHR2IjoNCiAgICAgICAgICAgICAgICBmaWxlVHlwZXMgPSBuZXcgQXJyYXkoInhtbHR2Iik7DQogICAgICAgICAgICAgICAgZmlsZVR5cGVzLmZvckVhY2goZmlsZVR5cGUgPT4gew0KICAgICAgICAgICAgICAgICAgICBkYXRhID0gU0VSVkVSWyJzZXR0aW5ncyJdWyJmaWxlcyJdW2ZpbGVUeXBlXTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGtleXMgPSBnZXRPYmpLZXlzKGRhdGEpOw0KICAgICAgICAgICAgICAgICAgICBrZXlzLmZvckVhY2goa2V5ID0+IHsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciB0ciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlRSIik7DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5pZCA9IGtleTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoIicgKyBmaWxlVHlwZSArICciLCB0aGlzKScpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bIm5hbWUiXTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJsYXN0LnVwZGF0ZSJdOw0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bInByb3ZpZGVyLmF2YWlsYWJpbGl0eSJdOw0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bImNvbXBhdGliaWxpdHkiXVsieG1sdHYuY2hhbm5lbHMiXTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJjb21wYXRpYmlsaXR5Il1bInhtbHR2LnByb2dyYW1zIl07DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICByb3dzLnB1c2godHIpOw0KICAgICAgICAgICAgICAgICAgICB9KTsNCiAgICAgICAgICAgICAgICB9KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInVzZXJzIjoNCiAgICAgICAgICAgICAgICBmaWxlVHlwZXMgPSBuZXcgQXJyYXkoInVzZXJzIik7DQogICAgICAgICAgICAgICAgZmlsZVR5cGVzLmZvckVhY2goZmlsZVR5cGUgPT4gew0KICAgICAgICAgICAgICAgICAgICBkYXRhID0gU0VSVkVSW2ZpbGVUeXBlXTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGtleXMgPSBnZXRPYmpLZXlzKGRhdGEpOw0KICAgICAgICAgICAgICAgICAgICBrZXlzLmZvckVhY2goa2V5ID0+IHsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciB0ciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlRSIik7DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5pZCA9IGtleTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoIicgKyBmaWxlVHlwZSArICciLCB0aGlzKScpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bImRhdGEiXVsidXNlcm5hbWUiXTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gIioqKioqKiI7DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGRhdGFba2V5XVsiZGF0YSJdWyJhdXRoZW50aWNhdGlvbi53ZWIiXSA9PSB0cnVlKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9ICLinJMiOw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9ICItIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgICAgICBpZiAoZGF0YVtrZXldWyJkYXRhIl1bImF1dGhlbnRpY2F0aW9uLnBtcyJdID09IHRydWUpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gIuKckyI7DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gIi0iOw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChkYXRhW2tleV1bImRhdGEiXVsiYXV0aGVudGljYXRpb24ubTN1Il0gPT0gdHJ1ZSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSAi4pyTIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSAiLSI7DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGRhdGFba2V5XVsiZGF0YSJdWyJhdXRoZW50aWNhdGlvbi54bWwiXSA9PSB0cnVlKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9ICLinJMiOw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9ICItIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgICAgICBpZiAoZGF0YVtrZXldWyJkYXRhIl1bImF1dGhlbnRpY2F0aW9uLmFwaSJdID09IHRydWUpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gIuKckyI7DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gIi0iOw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgcm93cy5wdXNoKHRyKTsNCiAgICAgICAgICAgICAgICAgICAgfSk7DQogICAgICAgICAgICAgICAgfSk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJtYXBwaW5nIjoNCiAgICAgICAgICAgICAgICBCVUxLX0VESVQgPSBmYWxzZTsNCiAgICAgICAgICAgICAgICBjcmVhdGVTZWFyY2hPYmooKTsNCiAgICAgICAgICAgICAgICBjaGVja1VuZG8oImVwZ01hcHBpbmciKTsNCiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZygiTUFQUElORyIpOw0KICAgICAgICAgICAgICAgIGRhdGEgPSBTRVJWRVJbInhlcGciXVsiZXBnTWFwcGluZyJdOw0KICAgICAgICAgICAgICAgIHZhciBrZXlzID0gZ2V0T2JqS2V5cyhkYXRhKTsNCiAgICAgICAgICAgICAgICBrZXlzLmZvckVhY2goa2V5ID0+IHsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVFIiKTsNCiAgICAgICAgICAgICAgICAgICAgdHIuaWQgPSBrZXk7DQogICAgICAgICAgICAgICAgICAgIC8vdHIuc2V0QXR0cmlidXRlKCdvbmNvbnRleHRtZW51JywgJ2phdmFzY3JpcHQ6IHJpZ2h0Q2xpY2sodGhpcyknKQ0KICAgICAgICAgICAgICAgICAgICBzd2l0Y2ggKGRhdGFba2V5XVsieC1hY3RpdmUiXSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSB0cnVlOg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyLmNsYXNzTmFtZSA9ICJhY3RpdmVFUEciOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSBmYWxzZToNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ci5jbGFzc05hbWUgPSAibm90QWN0aXZlRVBHIjsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAvLyBCdWxrDQogICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIkJVTEsiOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZmFsc2U7DQogICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgLy8gQ2hhbm5lbCBudW1iZXINCiAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiSU5QVVRDSEFOTkVMIjsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsieC1jaGFubmVsSUQiXTsNCiAgICAgICAgICAgICAgICAgICAgLy90ZC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogY2hhbmdlQ2hhbm5lbE51bWJlcigiJyArIGtleSArICciLCB0aGlzKScpDQogICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgLy8gTG9nbw0KICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJJTUciOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmltYWdlVVJMID0gZGF0YVtrZXldWyJ0dmctbG9nbyJdOw0KICAgICAgICAgICAgICAgICAgICB2YXIgdGQgPSBjZWxsLmNyZWF0ZUNlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgdGQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgibWFwcGluZyIsIHRoaXMpJyk7DQogICAgICAgICAgICAgICAgICAgIHRkLmlkID0ga2V5Ow0KICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZCh0ZCk7DQogICAgICAgICAgICAgICAgICAgIC8vIENoYW5uZWwgbmFtZQ0KICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jbGFzc05hbWUgPSBkYXRhW2tleV1bIngtY2F0ZWdvcnkiXTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsieC1uYW1lIl07DQogICAgICAgICAgICAgICAgICAgIHZhciB0ZCA9IGNlbGwuY3JlYXRlQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICB0ZC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJtYXBwaW5nIiwgdGhpcyknKTsNCiAgICAgICAgICAgICAgICAgICAgdGQuaWQgPSBrZXk7DQogICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKHRkKTsNCiAgICAgICAgICAgICAgICAgICAgLy8gUGxheWxpc3QNCiAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgIC8vY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsiX2ZpbGUubTN1Lm5hbWUiXSANCiAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGdldFZhbHVlRnJvbVByb3ZpZGVyRmlsZShkYXRhW2tleV1bIl9maWxlLm0zdS5pZCJdLCAibTN1IiwgIm5hbWUiKTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHRkID0gY2VsbC5jcmVhdGVDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgIHRkLnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoIm1hcHBpbmciLCB0aGlzKScpOw0KICAgICAgICAgICAgICAgICAgICB0ZC5pZCA9IGtleTsNCiAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQodGQpOw0KICAgICAgICAgICAgICAgICAgICAvLyBHcm91cCAoZ3JvdXAtdGl0bGUpDQogICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJ4LWdyb3VwLXRpdGxlIl07DQogICAgICAgICAgICAgICAgICAgIHZhciB0ZCA9IGNlbGwuY3JlYXRlQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICB0ZC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJtYXBwaW5nIiwgdGhpcyknKTsNCiAgICAgICAgICAgICAgICAgICAgdGQuaWQgPSBrZXk7DQogICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKHRkKTsNCiAgICAgICAgICAgICAgICAgICAgLy8gWE1MVFYgZmlsZQ0KICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgaWYgKGRhdGFba2V5XVsieC14bWx0di1maWxlIl0gIT0gIi0iKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZ2V0VmFsdWVGcm9tUHJvdmlkZXJGaWxlKGRhdGFba2V5XVsieC14bWx0di1maWxlIl0sICJ4bWx0diIsICJuYW1lIik7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgZWxzZSB7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJ4LXhtbHR2LWZpbGUiXTsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICB2YXIgdGQgPSBjZWxsLmNyZWF0ZUNlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgdGQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgibWFwcGluZyIsIHRoaXMpJyk7DQogICAgICAgICAgICAgICAgICAgIHRkLmlkID0ga2V5Ow0KICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZCh0ZCk7DQogICAgICAgICAgICAgICAgICAgIC8vIFhNTFRWIENoYW5uZWwNCiAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgIC8vdmFyIHZhbHVlID0gc3RyLnN1YnN0cmluZygxLCA0KTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHZhbHVlID0gZGF0YVtrZXldWyJ4LW1hcHBpbmciXTsNCiAgICAgICAgICAgICAgICAgICAgaWYgKHZhbHVlLmxlbmd0aCA+IDIwKSB7DQogICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IGRhdGFba2V5XVsieC1tYXBwaW5nIl0uc3Vic3RyaW5nKDAsIDIwKSArICIuLi4iOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSB2YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHRkID0gY2VsbC5jcmVhdGVDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgIHRkLnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoIm1hcHBpbmciLCB0aGlzKScpOw0KICAgICAgICAgICAgICAgICAgICB0ZC5pZCA9IGtleTsNCiAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQodGQpOw0KICAgICAgICAgICAgICAgICAgICAvLyBUaW1lU2hpZnQNCiAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bIngtdGltZXNoaWZ0Il07DQogICAgICAgICAgICAgICAgICAgIHZhciB0ZCA9IGNlbGwuY3JlYXRlQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICB0ZC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJtYXBwaW5nIiwgdGhpcyknKTsNCiAgICAgICAgICAgICAgICAgICAgdGQuaWQgPSBrZXk7DQogICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKHRkKTsNCiAgICAgICAgICAgICAgICAgICAgcm93cy5wdXNoKHRyKTsNCiAgICAgICAgICAgICAgICB9KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInNldHRpbmdzIjoNCiAgICAgICAgICAgICAgICBhbGVydCgpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZygiVGFibGUgY29udGVudCAobWVudUtleSk6IiwgbWVudUtleSk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIH0NCiAgICAgICAgcmV0dXJuIHJvd3M7DQogICAgfQ0KfQ0KY2xhc3MgQ2VsbCB7DQogICAgY3JlYXRlQ2VsbCgpIHsNCiAgICAgICAgbGV0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgaWYgKHRoaXMuY2hpbGQgPT0gdHJ1ZSkgew0KICAgICAgICAgICAgdmFyIGVsZW1lbnQ7DQogICAgICAgICAgICBzd2l0Y2ggKHRoaXMuY2hpbGRUeXBlKSB7DQogICAgICAgICAgICAgICAgY2FzZSAiUCI6DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KHRoaXMuY2hpbGRUeXBlKTsNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC5pbm5lckhUTUwgPSB0aGlzLnZhbHVlOw0KICAgICAgICAgICAgICAgICAgICBlbGVtZW50LmNsYXNzTmFtZSA9IHRoaXMuY2xhc3NOYW1lOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBjYXNlICJJTlBVVCI6DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KHRoaXMuY2hpbGRUeXBlKTsNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC52YWx1ZSA9IHRoaXMudmFsdWU7DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQudHlwZSA9ICJ0ZXh0IjsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAiSU5QVVRDSEFOTkVMIjoNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIklOUFVUIik7DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZzY3JpcHQ6IGNoYW5nZUNoYW5uZWxOdW1iZXIodGhpcykiKTsNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC52YWx1ZSA9IHRoaXMudmFsdWU7DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQudHlwZSA9ICJ0ZXh0IjsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAiQlVMSyI6DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJJTlBVVCIpOw0KICAgICAgICAgICAgICAgICAgICBlbGVtZW50LmNoZWNrZWQgPSB0aGlzLnZhbHVlOw0KICAgICAgICAgICAgICAgICAgICBlbGVtZW50LnR5cGUgPSAiY2hlY2tib3giOw0KICAgICAgICAgICAgICAgICAgICBlbGVtZW50LmNsYXNzTmFtZSA9ICJidWxrIGhpZGVCdWxrIjsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAiQlVMS19IRUFEIjoNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIklOUFVUIik7DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQuY2hlY2tlZCA9IHRoaXMudmFsdWU7DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQudHlwZSA9ICJjaGVja2JveCI7DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQuY2xhc3NOYW1lID0gImJ1bGsgaGlkZUJ1bGsiOw0KICAgICAgICAgICAgICAgICAgICBlbGVtZW50LnNldEF0dHJpYnV0ZSgib25jbGljayIsICJqYXZhc2NyaXB0OiBzZWxlY3RBbGxDaGFubmVscygpIik7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgIklNRyI6DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KHRoaXMuY2hpbGRUeXBlKTsNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC5zZXRBdHRyaWJ1dGUoInNyYyIsIHRoaXMuaW1hZ2VVUkwpOw0KICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5pbWFnZVVSTCAhPSAiIikgew0KICAgICAgICAgICAgICAgICAgICAgICAgZWxlbWVudC5zZXRBdHRyaWJ1dGUoIm9uZXJyb3IiLCAiamF2YXNjcmlwdDogdGhpcy5vbmVycm9yPW51bGw7dGhpcy5zcmM9JyciKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIC8vb25lcnJvcj0idGhpcy5vbmVycm9yPW51bGw7dGhpcy5zcmM9J21pc3NpbmcuZ2lmJzsiDQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIHRkLmFwcGVuZENoaWxkKGVsZW1lbnQpOw0KICAgICAgICB9DQogICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgdGQuaW5uZXJIVE1MID0gdGhpcy52YWx1ZTsNCiAgICAgICAgfQ0KICAgICAgICBpZiAodGhpcy5vbmNsaWNrID09IHRydWUpIHsNCiAgICAgICAgICAgIHRkLnNldEF0dHJpYnV0ZSgib25jbGljayIsIHRoaXMub25jbGlja0Z1bmN0aW9uKTsNCiAgICAgICAgICAgIHRkLmNsYXNzTmFtZSA9ICJwb2ludGVyIjsNCiAgICAgICAgfQ0KICAgICAgICBpZiAodGhpcy50ZENsYXNzTmFtZSAhPSB1bmRlZmluZWQpIHsNCiAgICAgICAgICAgIHRkLmNsYXNzTmFtZSA9IHRoaXMudGRDbGFzc05hbWU7DQogICAgICAgIH0NCiAgICAgICAgcmV0dXJuIHRkOw0KICAgIH0NCn0NCmNsYXNzIFNob3dDb250ZW50IGV4dGVuZHMgQ29udGVudCB7DQogICAgY29uc3RydWN0b3IobWVudUlEKSB7DQogICAgICAgIHN1cGVyKCk7DQogICAgICAgIHRoaXMubWVudUlEID0gbWVudUlEOw0KICAgIH0NCiAgICBjcmVhdGVJbnB1dCh0eXBlLCBuYW1lLCB2YWx1ZSkgew0KICAgICAgICBsZXQgaW5wdXQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJJTlBVVCIpOw0KICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInR5cGUiLCB0eXBlKTsNCiAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJuYW1lIiwgbmFtZSk7DQogICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgidmFsdWUiLCB2YWx1ZSk7DQogICAgICAgIHJldHVybiBpbnB1dDsNCiAgICB9DQogICAgc2hvdygpIHsNCiAgICAgICAgQ09MVU1OX1RPX1NPUlQgPSAtMTsNCiAgICAgICAgLy8gRGVsZXRlIG9sZCBjb250ZW50DQogICAgICAgIGxldCBkb2MgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCh0aGlzLkRvY3VtZW50SUQpOw0KICAgICAgICBkb2MuaW5uZXJIVE1MID0gIiI7DQogICAgICAgIHNob3dQcmV2aWV3KGZhbHNlKTsNCiAgICAgICAgLy8gSGVhZGxpbmUNCiAgICAgICAgbGV0IGhlYWRsaW5lID0gbWVudUl0ZW1zW3RoaXMubWVudUlEXS5oZWFkbGluZTsNCiAgICAgICAgbGV0IG1lbnVLZXkgPSBtZW51SXRlbXNbdGhpcy5tZW51SURdLm1lbnVLZXk7DQogICAgICAgIGxldCBoID0gdGhpcy5jcmVhdGVIZWFkbGluZShoZWFkbGluZSk7DQogICAgICAgIGRvYy5hcHBlbmRDaGlsZChoKTsNCiAgICAgICAgbGV0IGhyID0gdGhpcy5jcmVhdGVIUigpOw0KICAgICAgICBkb2MuYXBwZW5kQ2hpbGQoaHIpOw0KICAgICAgICAvLyBJbnRlcmFjdGlvbg0KICAgICAgICBsZXQgZGl2ID0gdGhpcy5jcmVhdGVJbnRlcmFjdGlvbigpOw0KICAgICAgICBkb2MuYXBwZW5kQ2hpbGQoZGl2KTsNCiAgICAgICAgbGV0IGludGVyYWN0aW9uID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQodGhpcy5pbnRlcmFjdGlvbklEKTsNCiAgICAgICAgc3dpdGNoIChtZW51S2V5KSB7DQogICAgICAgICAgICBjYXNlICJwbGF5bGlzdCI6DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gdGhpcy5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgbWVudUtleSwgInt7LmJ1dHRvbi5uZXd9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgiaWQiLCAiLSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoInBsYXlsaXN0IiknKTsNCiAgICAgICAgICAgICAgICBpbnRlcmFjdGlvbi5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJmaWx0ZXIiOg0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IHRoaXMuY3JlYXRlSW5wdXQoImJ1dHRvbiIsIG1lbnVLZXksICJ7ey5idXR0b24ubmV3fX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoImlkIiwgLTEpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoImZpbHRlciIsIHRoaXMpJyk7DQogICAgICAgICAgICAgICAgaW50ZXJhY3Rpb24uYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAieG1sdHYiOg0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IHRoaXMuY3JlYXRlSW5wdXQoImJ1dHRvbiIsIG1lbnVLZXksICJ7ey5idXR0b24ubmV3fX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoImlkIiwgInhtbHR2Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgieG1sdHYiKScpOw0KICAgICAgICAgICAgICAgIGludGVyYWN0aW9uLmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInVzZXJzIjoNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSB0aGlzLmNyZWF0ZUlucHV0KCJidXR0b24iLCBtZW51S2V5LCAie3suYnV0dG9uLm5ld319Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJpZCIsICJ1c2VycyIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoInVzZXJzIiknKTsNCiAgICAgICAgICAgICAgICBpbnRlcmFjdGlvbi5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJtYXBwaW5nIjoNCiAgICAgICAgICAgICAgICBzaG93RWxlbWVudCgibG9hZGluZyIsIHRydWUpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IHRoaXMuY3JlYXRlSW5wdXQoImJ1dHRvbiIsIG1lbnVLZXksICJ7ey5idXR0b24uc2F2ZX19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoIm1hcHBpbmciLCAiIiwgIiIpJyk7DQogICAgICAgICAgICAgICAgaW50ZXJhY3Rpb24uYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IHRoaXMuY3JlYXRlSW5wdXQoImJ1dHRvbiIsIG1lbnVLZXksICJ7ey5idXR0b24uYnVsa0VkaXR9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBidWxrRWRpdCgpJyk7DQogICAgICAgICAgICAgICAgaW50ZXJhY3Rpb24uYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IHRoaXMuY3JlYXRlSW5wdXQoInNlYXJjaCIsICJzZWFyY2giLCAiIik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJpZCIsICJzZWFyY2hNYXBwaW5nIik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5idXR0b24uc2VhcmNofX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5jbGFzc05hbWUgPSAic2VhcmNoIjsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgJ2phdmFzY3JpcHQ6IHNlYXJjaEluTWFwcGluZygpJyk7DQogICAgICAgICAgICAgICAgaW50ZXJhY3Rpb24uYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAic2V0dGluZ3MiOg0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IHRoaXMuY3JlYXRlSW5wdXQoImJ1dHRvbiIsIG1lbnVLZXksICJ7ey5idXR0b24uc2F2ZX19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IHNhdmVTZXR0aW5ncygpOycpOw0KICAgICAgICAgICAgICAgIGludGVyYWN0aW9uLmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSB0aGlzLmNyZWF0ZUlucHV0KCJidXR0b24iLCBtZW51S2V5LCAie3suYnV0dG9uLmJhY2t1cH19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IGJhY2t1cCgpOycpOw0KICAgICAgICAgICAgICAgIGludGVyYWN0aW9uLmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSB0aGlzLmNyZWF0ZUlucHV0KCJidXR0b24iLCBtZW51S2V5LCAie3suYnV0dG9uLnJlc3RvcmV9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiByZXN0b3JlKCk7Jyk7DQogICAgICAgICAgICAgICAgaW50ZXJhY3Rpb24uYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIHZhciB3cmFwcGVyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiRElWIik7DQogICAgICAgICAgICAgICAgd3JhcHBlci5zZXRBdHRyaWJ1dGUoImlkIiwgImJveC13cmFwcGVyIik7DQogICAgICAgICAgICAgICAgZG9jLmFwcGVuZENoaWxkKHdyYXBwZXIpOw0KICAgICAgICAgICAgICAgIHRoaXMuRGl2SUQgPSAiY29udGVudF9zZXR0aW5ncyI7DQogICAgICAgICAgICAgICAgdmFyIHNldHRpbmdzID0gdGhpcy5jcmVhdGVESVYoKTsNCiAgICAgICAgICAgICAgICB3cmFwcGVyLmFwcGVuZENoaWxkKHNldHRpbmdzKTsNCiAgICAgICAgICAgICAgICBzaG93U2V0dGluZ3MoKTsNCiAgICAgICAgICAgICAgICByZXR1cm47DQogICAgICAgICAgICBjYXNlICJsb2ciOg0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IHRoaXMuY3JlYXRlSW5wdXQoImJ1dHRvbiIsIG1lbnVLZXksICJ7ey5idXR0b24ucmVzZXRMb2dzfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogcmVzZXRMb2dzKCk7Jyk7DQogICAgICAgICAgICAgICAgaW50ZXJhY3Rpb24uYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIHZhciB3cmFwcGVyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiRElWIik7DQogICAgICAgICAgICAgICAgd3JhcHBlci5zZXRBdHRyaWJ1dGUoImlkIiwgImJveC13cmFwcGVyIik7DQogICAgICAgICAgICAgICAgZG9jLmFwcGVuZENoaWxkKHdyYXBwZXIpOw0KICAgICAgICAgICAgICAgIHRoaXMuRGl2SUQgPSAiY29udGVudF9sb2ciOw0KICAgICAgICAgICAgICAgIHZhciBsb2dzID0gdGhpcy5jcmVhdGVESVYoKTsNCiAgICAgICAgICAgICAgICB3cmFwcGVyLmFwcGVuZENoaWxkKGxvZ3MpOw0KICAgICAgICAgICAgICAgIHNob3dMb2dzKHRydWUpOw0KICAgICAgICAgICAgICAgIHJldHVybjsNCiAgICAgICAgICAgIGNhc2UgImxvZ291dCI6DQogICAgICAgICAgICAgICAgbG9jYXRpb24ucmVsb2FkKCk7DQogICAgICAgICAgICAgICAgZG9jdW1lbnQuY29va2llID0gIlRva2VuPSA7IGV4cGlyZXMgPSBUaHUsIDAxIEphbiAxOTcwIDAwOjAwOjAwIEdNVCI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBkZWZhdWx0Og0KICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKCJTaG93IGNvbnRlbnQgKG1lbnVLZXkpOiIsIG1lbnVLZXkpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICB9DQogICAgICAgIC8vIENyZWF0ZSB0YWJsZSAoaWYgbmVlZGVkKQ0KICAgICAgICB2YXIgdGFibGVIZWFkZXIgPSBtZW51SXRlbXNbdGhpcy5tZW51SURdLnRhYmxlSGVhZGVyOw0KICAgICAgICBpZiAodGFibGVIZWFkZXIubGVuZ3RoID4gMCkgew0KICAgICAgICAgICAgdmFyIHdyYXBwZXIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJESVYiKTsNCiAgICAgICAgICAgIGRvYy5hcHBlbmRDaGlsZCh3cmFwcGVyKTsNCiAgICAgICAgICAgIHdyYXBwZXIuc2V0QXR0cmlidXRlKCJpZCIsICJib3gtd3JhcHBlciIpOw0KICAgICAgICAgICAgdmFyIHRhYmxlID0gdGhpcy5jcmVhdGVUQUJMRSgpOw0KICAgICAgICAgICAgd3JhcHBlci5hcHBlbmRDaGlsZCh0YWJsZSk7DQogICAgICAgICAgICB2YXIgaGVhZGVyID0gdGhpcy5jcmVhdGVUYWJsZVJvdygpOw0KICAgICAgICAgICAgdGFibGUuYXBwZW5kQ2hpbGQoaGVhZGVyKTsNCiAgICAgICAgICAgIC8vIFRhYmxlIGhlYWRlcg0KICAgICAgICAgICAgdGFibGVIZWFkZXIuZm9yRWFjaChlbGVtZW50ID0+IHsNCiAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGVsZW1lbnQ7DQogICAgICAgICAgICAgICAgaWYgKGVsZW1lbnQgPT0gIkJVTEsiKSB7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIkJVTEtfSEVBRCI7DQogICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBmYWxzZTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgaWYgKG1lbnVLZXkgPT0gIm1hcHBpbmciKSB7DQogICAgICAgICAgICAgICAgICAgIGlmIChlbGVtZW50ID09ICJ7ey5tYXBwaW5nLnRhYmxlLmNoTm99fSIpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwub25jbGljayA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLm9uY2xpY2tGdW5jdGlvbiA9ICJqYXZhc2NyaXB0OiBzb3J0VGFibGUoMSk7IjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudGRDbGFzc05hbWUgPSAic29ydFRoaXMiOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIGlmIChlbGVtZW50ID09ICJ7ey5tYXBwaW5nLnRhYmxlLmNoYW5uZWxOYW1lfX0iKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLm9uY2xpY2sgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5vbmNsaWNrRnVuY3Rpb24gPSAiamF2YXNjcmlwdDogc29ydFRhYmxlKDMpOyI7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgaWYgKGVsZW1lbnQgPT0gInt7Lm1hcHBpbmcudGFibGUucGxheWxpc3R9fSIpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwub25jbGljayA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLm9uY2xpY2tGdW5jdGlvbiA9ICJqYXZhc2NyaXB0OiBzb3J0VGFibGUoNCk7IjsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBpZiAoZWxlbWVudCA9PSAie3subWFwcGluZy50YWJsZS5ncm91cFRpdGxlfX0iKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLm9uY2xpY2sgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5vbmNsaWNrRnVuY3Rpb24gPSAiamF2YXNjcmlwdDogc29ydFRhYmxlKDUpOyI7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgaWYgKGVsZW1lbnQgPT0gInt7Lm1hcHBpbmcudGFibGUudGltZXNoaWZ0fX0iKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLm9uY2xpY2sgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5vbmNsaWNrRnVuY3Rpb24gPSAiamF2YXNjcmlwdDogc29ydFRhYmxlKDgpOyI7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgaGVhZGVyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgIH0pOw0KICAgICAgICAgICAgdGFibGUuYXBwZW5kQ2hpbGQoaGVhZGVyKTsNCiAgICAgICAgICAgIC8vIENvbnRlbnQgb2YgdGhlIHRhYmxlDQogICAgICAgICAgICB2YXIgcm93cyA9IHRoaXMuY3JlYXRlVGFibGVDb250ZW50KG1lbnVLZXkpOw0KICAgICAgICAgICAgcm93cy5mb3JFYWNoKHRyID0+IHsNCiAgICAgICAgICAgICAgICB0YWJsZS5hcHBlbmRDaGlsZCh0cik7DQogICAgICAgICAgICB9KTsNCiAgICAgICAgfQ0KICAgICAgICBzd2l0Y2ggKG1lbnVLZXkpIHsNCiAgICAgICAgICAgIGNhc2UgIm1hcHBpbmciOg0KICAgICAgICAgICAgICAgIHNvcnRUYWJsZSgxKTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImZpbHRlciI6DQogICAgICAgICAgICAgICAgc2hvd1ByZXZpZXcodHJ1ZSk7DQogICAgICAgICAgICAgICAgc29ydFRhYmxlKDApOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgICAgICBDT0xVTU5fVE9fU09SVCA9IC0xOw0KICAgICAgICAgICAgICAgIHNvcnRUYWJsZSgwKTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgfQ0KICAgICAgICBzaG93RWxlbWVudCgibG9hZGluZyIsIGZhbHNlKTsNCiAgICB9DQp9DQpmdW5jdGlvbiBQYWdlUmVhZHkoKSB7DQogICAgbGV0IHNlcnZlciA9IG5ldyBTZXJ2ZXIoImdldFNlcnZlckNvbmZpZyIpOw0KICAgIHNlcnZlci5yZXF1ZXN0KHt9KTsNCiAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigicmVzaXplIiwgZnVuY3Rpb24gKCkgew0KICAgICAgICBjYWxjdWxhdGVXcmFwcGVySGVpZ2h0KCk7DQogICAgfSwgdHJ1ZSk7DQogICAgc2V0SW50ZXJ2YWwoZnVuY3Rpb24gKCkgew0KICAgICAgICB1cGRhdGVMb2coKTsNCiAgICB9LCAxMDAwMCk7DQogICAgcmV0dXJuOw0KfQ0KZnVuY3Rpb24gY3JlYXRlTGF5b3V0KCkgew0KICAgIC8vIENsaWVudCBJbmZvDQogICAgbGV0IG9iaiA9IFNFUlZFUlsiY2xpZW50SW5mbyJdOw0KICAgIGxldCBrZXlzID0gZ2V0T2JqS2V5cyhvYmopOw0KICAgIGZvciAodmFyIGkgPSAwOyBpIDwga2V5cy5sZW5ndGg7IGkrKykgew0KICAgICAgICBpZiAoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoa2V5c1tpXSkpIHsNCiAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGtleXNbaV0pLmlubmVySFRNTCA9IG9ialtrZXlzW2ldXTsNCiAgICAgICAgfQ0KICAgIH0NCiAgICBpZiAoIWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJtYWluLW1lbnUiKSkgew0KICAgICAgICByZXR1cm47DQogICAgfQ0KICAgIC8vIENyZWF0ZSBtZW51DQogICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm1haW4tbWVudSIpLmlubmVySFRNTCA9ICIiOw0KICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbWVudUl0ZW1zLmxlbmd0aDsgaSsrKSB7DQogICAgICAgIG1lbnVJdGVtc1tpXS5pZCA9IGk7DQogICAgICAgIHN3aXRjaCAobWVudUl0ZW1zW2ldWyJtZW51S2V5Il0pIHsNCiAgICAgICAgICAgIGNhc2UgInVzZXJzIjoNCiAgICAgICAgICAgIGNhc2UgImxvZ291dCI6DQogICAgICAgICAgICAgICAgaWYgKFNFUlZFUlsic2V0dGluZ3MiXVsiYXV0aGVudGljYXRpb24ud2ViIl0gPT0gdHJ1ZSkgew0KICAgICAgICAgICAgICAgICAgICBtZW51SXRlbXNbaV0uY3JlYXRlSXRlbSgpOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgIm1hcHBpbmciOg0KICAgICAgICAgICAgY2FzZSAieG1sdHYiOg0KICAgICAgICAgICAgICAgIGlmIChTRVJWRVJbImNsaWVudEluZm8iXVsiZXBnU291cmNlIl0gPT0gIlhFUEciKSB7DQogICAgICAgICAgICAgICAgICAgIG1lbnVJdGVtc1tpXS5jcmVhdGVJdGVtKCk7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgICAgICBtZW51SXRlbXNbaV0uY3JlYXRlSXRlbSgpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICB9DQogICAgfQ0KICAgIHJldHVybjsNCn0NCmZ1bmN0aW9uIG9wZW5UaGlzTWVudShlbGVtZW50KSB7DQogICAgbGV0IGlkID0gZWxlbWVudC5pZDsNCiAgICBsZXQgY29udGVudCA9IG5ldyBTaG93Q29udGVudChpZCk7DQogICAgY29udGVudC5zaG93KCk7DQogICAgY2FsY3VsYXRlV3JhcHBlckhlaWdodCgpOw0KICAgIHJldHVybjsNCn0NCmNsYXNzIFBvcHVwV2luZG93IHsNCiAgICBjb25zdHJ1Y3RvcigpIHsNCiAgICAgICAgdGhpcy5Eb2N1bWVudElEID0gInBvcHVwLWN1c3RvbSI7DQogICAgICAgIHRoaXMuSW50ZXJhY3Rpb25JRCA9ICJpbnRlcmFjdGlvbiI7DQogICAgICAgIHRoaXMuZG9jID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQodGhpcy5Eb2N1bWVudElEKTsNCiAgICB9DQogICAgY3JlYXRlVGl0bGUodGl0bGUpIHsNCiAgICAgICAgbGV0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgdGQuY2xhc3NOYW1lID0gImxlZnQiOw0KICAgICAgICB0ZC5pbm5lckhUTUwgPSB0aXRsZSArICI6IjsNCiAgICAgICAgcmV0dXJuIHRkOw0KICAgIH0NCiAgICBjcmVhdGVDb250ZW50KGVsZW1lbnQpIHsNCiAgICAgICAgbGV0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgdGQuYXBwZW5kQ2hpbGQoZWxlbWVudCk7DQogICAgICAgIHJldHVybiB0ZDsNCiAgICB9DQogICAgY3JlYXRlSW50ZXJhY3Rpb24oKSB7DQogICAgICAgIGxldCBkaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsNCiAgICAgICAgZGl2LnNldEF0dHJpYnV0ZSgiaWQiLCAicG9wdXAtaW50ZXJhY3Rpb24iKTsNCiAgICAgICAgZGl2LmNsYXNzTmFtZSA9ICJpbnRlcmFjdGlvbiI7DQogICAgICAgIHRoaXMuZG9jLmFwcGVuZENoaWxkKGRpdik7DQogICAgfQ0KfQ0KY2xhc3MgUG9wdXBDb250ZW50IGV4dGVuZHMgUG9wdXBXaW5kb3cgew0KICAgIGNvbnN0cnVjdG9yKCkgew0KICAgICAgICBzdXBlciguLi5hcmd1bWVudHMpOw0KICAgICAgICB0aGlzLnRhYmxlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEFCTEUiKTsNCiAgICB9DQogICAgY3JlYXRlSGVhZGxpbmUoaGVhZGxpbmUpIHsNCiAgICAgICAgdGhpcy5kb2MuaW5uZXJIVE1MID0gIiI7DQogICAgICAgIHZhciBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiSDMiKTsNCiAgICAgICAgZWxlbWVudC5pbm5lckhUTUwgPSBoZWFkbGluZS50b1VwcGVyQ2FzZSgpOw0KICAgICAgICB0aGlzLmRvYy5hcHBlbmRDaGlsZChlbGVtZW50KTsNCiAgICAgICAgLy8gQ3JlYXRlIHRhYmxlDQogICAgICAgIHRoaXMudGFibGUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJUQUJMRSIpOw0KICAgICAgICB0aGlzLmRvYy5hcHBlbmRDaGlsZCh0aGlzLnRhYmxlKTsNCiAgICB9DQogICAgYXBwZW5kUm93KHRpdGxlLCBlbGVtZW50KSB7DQogICAgICAgIGxldCB0ciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlRSIik7DQogICAgICAgIC8vIFRpdGxlDQogICAgICAgIGlmICh0aXRsZS5sZW5ndGggIT0gMCkgew0KICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQodGhpcy5jcmVhdGVUaXRsZSh0aXRsZSkpOw0KICAgICAgICB9DQogICAgICAgIC8vIENvbnRlbnQNCiAgICAgICAgdHIuYXBwZW5kQ2hpbGQodGhpcy5jcmVhdGVDb250ZW50KGVsZW1lbnQpKTsNCiAgICAgICAgdGhpcy50YWJsZS5hcHBlbmRDaGlsZCh0cik7DQogICAgfQ0KICAgIGNyZWF0ZUlucHV0KHR5cGUsIG5hbWUsIHZhbHVlKSB7DQogICAgICAgIGxldCBpbnB1dCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIklOUFVUIik7DQogICAgICAgIGlmICh2YWx1ZSA9PSB1bmRlZmluZWQpIHsNCiAgICAgICAgICAgIHZhbHVlID0gIiI7DQogICAgICAgIH0NCiAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJ0eXBlIiwgdHlwZSk7DQogICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgibmFtZSIsIG5hbWUpOw0KICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInZhbHVlIiwgdmFsdWUpOw0KICAgICAgICByZXR1cm4gaW5wdXQ7DQogICAgfQ0KICAgIGNyZWF0ZUNoZWNrYm94KG5hbWUpIHsNCiAgICAgICAgbGV0IGlucHV0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiSU5QVVQiKTsNCiAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJ0eXBlIiwgImNoZWNrYm94Iik7DQogICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgibmFtZSIsIG5hbWUpOw0KICAgICAgICByZXR1cm4gaW5wdXQ7DQogICAgfQ0KICAgIC8vIENyZWF0ZXMgYSBzZWxlY3Rpb24gb2YgbXVsdGlwbGUgb3B0aW9ucyB2YWx1ZXMgd2l0aCB0ZXh0IGRlc2NyaXB0aW9ucw0KICAgIGNyZWF0ZVNlbGVjdCh0ZXh0LCB2YWx1ZXMsIHNldCwgZGJLZXkpIHsNCiAgICAgICAgbGV0IHNlbGVjdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlNFTEVDVCIpOw0KICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJuYW1lIiwgZGJLZXkpOw0KICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRleHQubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgICAgIGxldCBvcHRpb24gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJPUFRJT04iKTsNCiAgICAgICAgICAgIG9wdGlvbi5zZXRBdHRyaWJ1dGUoInZhbHVlIiwgdmFsdWVzW2ldKTsNCiAgICAgICAgICAgIG9wdGlvbi5pbm5lclRleHQgPSB0ZXh0W2ldOw0KICAgICAgICAgICAgc2VsZWN0LmFwcGVuZENoaWxkKG9wdGlvbik7DQogICAgICAgIH0NCiAgICAgICAgaWYgKHNldCAhPSAiIikgew0KICAgICAgICAgICAgc2VsZWN0LnZhbHVlID0gc2V0Ow0KICAgICAgICB9DQogICAgICAgIGlmIChzZXQgPT0gdW5kZWZpbmVkKSB7DQogICAgICAgICAgICBzZWxlY3QudmFsdWUgPSB2YWx1ZXNbMF07DQogICAgICAgIH0NCiAgICAgICAgcmV0dXJuIHNlbGVjdDsNCiAgICB9DQogICAgc2VsZWN0T3B0aW9uKHNlbGVjdCwgdmFsdWUpIHsNCiAgICAgICAgLy9zZWxlY3Quc2VsZWN0ZWRPcHRpb25zID0gdmFsdWUNCiAgICAgICAgbGV0IHMgPSBzZWxlY3Q7DQogICAgICAgIHMub3B0aW9uc1tzLnNlbGVjdGVkSW5kZXhdLnZhbHVlID0gdmFsdWU7DQogICAgICAgIHJldHVybiBzZWxlY3Q7DQogICAgfQ0KICAgIGRlc2NyaXB0aW9uKHZhbHVlKSB7DQogICAgICAgIGxldCB0ciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlRSIik7DQogICAgICAgIGxldCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgIGxldCBzcGFuID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiUFJFIik7DQogICAgICAgIHNwYW4uaW5uZXJIVE1MID0gdmFsdWU7DQogICAgICAgIHRyLmFwcGVuZENoaWxkKHRkKTsNCiAgICAgICAgdHIuYXBwZW5kQ2hpbGQodGhpcy5jcmVhdGVDb250ZW50KHNwYW4pKTsNCiAgICAgICAgdGhpcy50YWJsZS5hcHBlbmRDaGlsZCh0cik7DQogICAgfQ0KICAgIC8vIEludGVyYWN0aW9uDQogICAgYWRkSW50ZXJhY3Rpb24oZWxlbWVudCkgew0KICAgICAgICBsZXQgaW50ZXJhY3Rpb24gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicG9wdXAtaW50ZXJhY3Rpb24iKTsNCiAgICAgICAgaW50ZXJhY3Rpb24uYXBwZW5kQ2hpbGQoZWxlbWVudCk7DQogICAgfQ0KfQ0KZnVuY3Rpb24gb3BlblBvcFVwKGRhdGFUeXBlLCBlbGVtZW50KSB7DQogICAgbGV0IGRhdGEgPSB7fTsNCiAgICBsZXQgaWQ7DQogICAgc3dpdGNoIChlbGVtZW50KSB7DQogICAgICAgIGNhc2UgdW5kZWZpbmVkOg0KICAgICAgICAgICAgc3dpdGNoIChkYXRhVHlwZSkgew0KICAgICAgICAgICAgICAgIGNhc2UgImdyb3VwLXRpdGxlIjoNCiAgICAgICAgICAgICAgICAgICAgaWYgKGlkID09IHVuZGVmaW5lZCkgew0KICAgICAgICAgICAgICAgICAgICAgICAgaWQgPSAtMTsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBkYXRhID0gZ2V0TG9jYWxEYXRhKCJmaWx0ZXIiLCBpZCk7DQogICAgICAgICAgICAgICAgICAgIGRhdGFbInR5cGUiXSA9ICJncm91cC10aXRsZSI7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgImN1c3RvbS1maWx0ZXIiOg0KICAgICAgICAgICAgICAgICAgICBpZiAoaWQgPT0gdW5kZWZpbmVkKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBpZCA9IC0xOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIGRhdGEgPSBnZXRMb2NhbERhdGEoImZpbHRlciIsIGlkKTsNCiAgICAgICAgICAgICAgICAgICAgZGF0YVsidHlwZSJdID0gImN1c3RvbS1maWx0ZXIiOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBkZWZhdWx0Og0KICAgICAgICAgICAgICAgICAgICBkYXRhWyJpZC5wcm92aWRlciJdID0gIi0iOw0KICAgICAgICAgICAgICAgICAgICBkYXRhWyJ0eXBlIl0gPSBkYXRhVHlwZTsNCiAgICAgICAgICAgICAgICAgICAgaWQgPSAiLSI7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICBpZCA9IGVsZW1lbnQuaWQ7DQogICAgICAgICAgICBkYXRhID0gZ2V0TG9jYWxEYXRhKGRhdGFUeXBlLCBpZCk7DQogICAgICAgICAgICBicmVhazsNCiAgICB9DQogICAgbGV0IGNvbnRlbnQgPSBuZXcgUG9wdXBDb250ZW50KCk7DQogICAgc3dpdGNoIChkYXRhVHlwZSkgew0KICAgICAgICBjYXNlICJwbGF5bGlzdCI6DQogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUhlYWRsaW5lKCJ7ey5wbGF5bGlzdC5wbGF5bGlzdFR5cGUudGl0bGV9fSIpOw0KICAgICAgICAgICAgLy8gVHlwZQ0KICAgICAgICAgICAgdmFyIHRleHQgPSBbIk0zVSIsICJIREhvbWVSdW4iXTsNCiAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBbImphdmFzY3JpcHQ6IG9wZW5Qb3BVcCgnbTN1JykiLCAiamF2YXNjcmlwdDogb3BlblBvcFVwKCdoZGhyJykiXTsNCiAgICAgICAgICAgIHZhciBzZWxlY3QgPSBjb250ZW50LmNyZWF0ZVNlbGVjdCh0ZXh0LCB2YWx1ZXMsICIiLCAidHlwZSIpOw0KICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgiaWQiLCAidHlwZSIpOw0KICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAnamF2YXNjcmlwdDogY2hhbmdlQnV0dG9uQWN0aW9uKHRoaXMsICJuZXh0IiwgIm9uY2xpY2siKScpOyAvLyBjaGFuZ2VCdXR0b25BY3Rpb24NCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5wbGF5bGlzdC50eXBlLnRpdGxlfX0iLCBzZWxlY3QpOw0KICAgICAgICAgICAgLy8gSW50ZXJhY3Rpb24NCiAgICAgICAgICAgIGNvbnRlbnQuY3JlYXRlSW50ZXJhY3Rpb24oKTsNCiAgICAgICAgICAgIC8vIEFib3J0DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAiY2FuY2VsIiwgInt7LmJ1dHRvbi5jYW5jZWx9fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IHNob3dFbGVtZW50KCJwb3B1cCIsIGZhbHNlKTsnKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgLy8gTmV4dA0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgIm5leHQiLCAie3suYnV0dG9uLm5leHR9fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgibTN1IiknKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgiaWQiLCAnbmV4dCcpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSAibTN1IjoNCiAgICAgICAgICAgIGNvbnRlbnQuY3JlYXRlSGVhZGxpbmUoZGF0YVR5cGUpOw0KICAgICAgICAgICAgLy8gTmFtZQ0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gIm5hbWUiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnBsYXlsaXN0Lm5hbWUucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnBsYXlsaXN0Lm5hbWUudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIERlc2NyaXB0aW9uDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAiZGVzY3JpcHRpb24iOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnBsYXlsaXN0LmRlc2NyaXB0aW9uLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5wbGF5bGlzdC5kZXNjcmlwdGlvbi50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgLy8gVVJMDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAiZmlsZS5zb3VyY2UiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnBsYXlsaXN0LmZpbGVNM1UucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnBsYXlsaXN0LmZpbGVNM1UudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIFR1bmVyDQogICAgICAgICAgICBpZiAoU0VSVkVSWyJzZXR0aW5ncyJdWyJidWZmZXIiXSAhPSAiLSIpIHsNCiAgICAgICAgICAgICAgICB2YXIgdGV4dCA9IFtdOw0KICAgICAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBbXTsNCiAgICAgICAgICAgICAgICBmb3IgKHZhciBpID0gMTsgaSA8PSAxMDA7IGkrKykgew0KICAgICAgICAgICAgICAgICAgICB0ZXh0LnB1c2goaS50b1N0cmluZygpKTsNCiAgICAgICAgICAgICAgICAgICAgdmFsdWVzLnB1c2goaS50b1N0cmluZygpKTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgdmFyIGRiS2V5ID0gInR1bmVyIjsNCiAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCBkYXRhW2RiS2V5XSwgZGJLZXkpOw0KICAgICAgICAgICAgICAgIHNlbGVjdC5zZXRBdHRyaWJ1dGUoIm9uZm9jdXMiLCAiamF2YXNjcmlwdDogcmV0dXJuOyIpOw0KICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5wbGF5bGlzdC50dW5lci50aXRsZX19Iiwgc2VsZWN0KTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgICAgIHZhciBkYktleSA9ICJ0dW5lciI7DQogICAgICAgICAgICAgICAgaWYgKGRhdGFbZGJLZXldID09IHVuZGVmaW5lZCkgew0KICAgICAgICAgICAgICAgICAgICBkYXRhW2RiS2V5XSA9IDE7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicmVhZG9ubHkiLCAidHJ1ZSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LmNsYXNzTmFtZSA9ICJub3RBdmFpbGFibGUiOw0KICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5wbGF5bGlzdC50dW5lci50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgY29udGVudC5kZXNjcmlwdGlvbigie3sucGxheWxpc3QudHVuZXIuZGVzY3JpcHRpb259fSIpOw0KICAgICAgICAgICAgLy8gSW50ZXJhdGlvbg0KICAgICAgICAgICAgY29udGVudC5jcmVhdGVJbnRlcmFjdGlvbigpOw0KICAgICAgICAgICAgLy8gRGVsZXRlDQogICAgICAgICAgICBpZiAoZGF0YVsiaWQucHJvdmlkZXIiXSAhPSAiLSIpIHsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAiZGVsZXRlIiwgInt7LmJ1dHRvbi5kZWxldGV9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LmNsYXNzTmFtZSA9ICJkZWxldGUiOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBzYXZlUG9wdXBEYXRhKCJtM3UiLCAiJyArIGlkICsgJyIsIHRydWUsIDApJyk7DQogICAgICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAiYmFjayIsICJ7ey5idXR0b24uYmFja319Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgicGxheWxpc3QiKScpOw0KICAgICAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgLy8gQWJvcnQNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJjYW5jZWwiLCAie3suYnV0dG9uLmNhbmNlbH19Iik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogc2hvd0VsZW1lbnQoInBvcHVwIiwgZmFsc2UpOycpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICAvLyBVcGRhdGUNCiAgICAgICAgICAgIGlmIChkYXRhWyJpZC5wcm92aWRlciJdICE9ICItIikgew0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJ1cGRhdGUiLCAie3suYnV0dG9uLnVwZGF0ZX19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoIm0zdSIsICInICsgaWQgKyAnIiwgZmFsc2UsIDEpJyk7DQogICAgICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICAvLyBTYXZlDQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAic2F2ZSIsICJ7ey5idXR0b24uc2F2ZX19Iik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogc2F2ZVBvcHVwRGF0YSgibTN1IiwgIicgKyBpZCArICciLCBmYWxzZSwgMCknKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGNhc2UgImhkaHIiOg0KICAgICAgICAgICAgY29udGVudC5jcmVhdGVIZWFkbGluZShkYXRhVHlwZSk7DQogICAgICAgICAgICAvLyBOYW1lDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAibmFtZSI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3sucGxheWxpc3QubmFtZS5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sucGxheWxpc3QubmFtZS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgLy8gRGVzY3JpcHRpb24NCiAgICAgICAgICAgIHZhciBkYktleSA9ICJkZXNjcmlwdGlvbiI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3sucGxheWxpc3QuZGVzY3JpcHRpb24ucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnBsYXlsaXN0LmRlc2NyaXB0aW9uLnBsYWNlaG9sZGVyfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBVUkwNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJmaWxlLnNvdXJjZSI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3sucGxheWxpc3QuZmlsZUhESFIucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnBsYXlsaXN0LmZpbGVIREhSLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBUdW5lcg0KICAgICAgICAgICAgaWYgKFNFUlZFUlsic2V0dGluZ3MiXVsiYnVmZmVyIl0gIT0gIi0iKSB7DQogICAgICAgICAgICAgICAgdmFyIHRleHQgPSBbXTsNCiAgICAgICAgICAgICAgICB2YXIgdmFsdWVzID0gW107DQogICAgICAgICAgICAgICAgZm9yICh2YXIgaSA9IDE7IGkgPD0gMTAwOyBpKyspIHsNCiAgICAgICAgICAgICAgICAgICAgdGV4dC5wdXNoKGkudG9TdHJpbmcoKSk7DQogICAgICAgICAgICAgICAgICAgIHZhbHVlcy5wdXNoKGkudG9TdHJpbmcoKSk7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIHZhciBkYktleSA9ICJ0dW5lciI7DQogICAgICAgICAgICAgICAgdmFyIHNlbGVjdCA9IGNvbnRlbnQuY3JlYXRlU2VsZWN0KHRleHQsIHZhbHVlcywgZGF0YVtkYktleV0sIGRiS2V5KTsNCiAgICAgICAgICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJvbmZvY3VzIiwgImphdmFzY3JpcHQ6IHJldHVybjsiKTsNCiAgICAgICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sucGxheWxpc3QudHVuZXIudGl0bGV9fSIsIHNlbGVjdCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICB2YXIgZGJLZXkgPSAidHVuZXIiOw0KICAgICAgICAgICAgICAgIGlmIChkYXRhW2RiS2V5XSA9PSB1bmRlZmluZWQpIHsNCiAgICAgICAgICAgICAgICAgICAgZGF0YVtkYktleV0gPSAxOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInJlYWRvbmx5IiwgInRydWUiKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5jbGFzc05hbWUgPSAibm90QXZhaWxhYmxlIjsNCiAgICAgICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sucGxheWxpc3QudHVuZXIudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGNvbnRlbnQuZGVzY3JpcHRpb24oInt7LnBsYXlsaXN0LnR1bmVyLmRlc2NyaXB0aW9ufX0iKTsNCiAgICAgICAgICAgIC8vIEludGVyYWN0aW9uDQogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUludGVyYWN0aW9uKCk7DQogICAgICAgICAgICAvLyBEZWxldGUNCiAgICAgICAgICAgIGlmIChkYXRhWyJpZC5wcm92aWRlciJdICE9ICItIikgew0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJkZWxldGUiLCAie3suYnV0dG9uLmRlbGV0ZX19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoImhkaHIiLCAiJyArIGlkICsgJyIsIHRydWUsIDApJyk7DQogICAgICAgICAgICAgICAgaW5wdXQuY2xhc3NOYW1lID0gImRlbGV0ZSI7DQogICAgICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAiYmFjayIsICJ7ey5idXR0b24uYmFja319Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgicGxheWxpc3QiKScpOw0KICAgICAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgLy8gQWJvcnQNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJjYW5jZWwiLCAie3suYnV0dG9uLmNhbmNlbH19Iik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogc2hvd0VsZW1lbnQoInBvcHVwIiwgZmFsc2UpOycpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICAvLyBVcGRhdGUNCiAgICAgICAgICAgIGlmIChkYXRhWyJpZC5wcm92aWRlciJdICE9ICItIikgew0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJ1cGRhdGUiLCAie3suYnV0dG9uLnVwZGF0ZX19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoImhkaHIiLCAiJyArIGlkICsgJyIsIGZhbHNlLCAxKScpOw0KICAgICAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgLy8gU2F2ZQ0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgInNhdmUiLCAie3suYnV0dG9uLnNhdmV9fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoImhkaHIiLCAiJyArIGlkICsgJyIsIGZhbHNlLCAwKScpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSAiZmlsdGVyIjoNCiAgICAgICAgICAgIGNvbnRlbnQuY3JlYXRlSGVhZGxpbmUoZGF0YVR5cGUpOw0KICAgICAgICAgICAgLy8gVHlwZQ0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gInR5cGUiOw0KICAgICAgICAgICAgdmFyIHRleHQgPSBbIk0zVTogIiArICJ7ey5maWx0ZXIudHlwZS5ncm91cFRpdGxlfX0iLCAieFRlVmU6ICIgKyAie3suZmlsdGVyLnR5cGUuY3VzdG9tRmlsdGVyfX0iXTsNCiAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBbImphdmFzY3JpcHQ6IG9wZW5Qb3BVcCgnZ3JvdXAtdGl0bGUnKSIsICJqYXZhc2NyaXB0OiBvcGVuUG9wVXAoJ2N1c3RvbS1maWx0ZXInKSJdOw0KICAgICAgICAgICAgdmFyIHNlbGVjdCA9IGNvbnRlbnQuY3JlYXRlU2VsZWN0KHRleHQsIHZhbHVlcywgImphdmFzY3JpcHQ6IG9wZW5Qb3BVcCgnZ3JvdXAtdGl0bGUnKSIsIGRiS2V5KTsNCiAgICAgICAgICAgIHNlbGVjdC5zZXRBdHRyaWJ1dGUoImlkIiwgaWQpOw0KICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAnamF2YXNjcmlwdDogY2hhbmdlQnV0dG9uQWN0aW9uKHRoaXMsICJuZXh0IiwgIm9uY2xpY2siKTsnKTsgLy8gY2hhbmdlQnV0dG9uQWN0aW9uDQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3suZmlsdGVyLnR5cGUudGl0bGV9fSIsIHNlbGVjdCk7DQogICAgICAgICAgICAvLyBJbnRlcmFjdGlvbg0KICAgICAgICAgICAgY29udGVudC5jcmVhdGVJbnRlcmFjdGlvbigpOw0KICAgICAgICAgICAgLy8gQWJvcnQNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJjYW5jZWwiLCAie3suYnV0dG9uLmNhbmNlbH19Iik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogc2hvd0VsZW1lbnQoInBvcHVwIiwgZmFsc2UpOycpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICAvLyBOZXh0DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAibmV4dCIsICJ7ey5idXR0b24ubmV4dH19Iik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJncm91cC10aXRsZSIpJyk7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoImlkIiwgJ25leHQnKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGNhc2UgImN1c3RvbS1maWx0ZXIiOg0KICAgICAgICBjYXNlICJncm91cC10aXRsZSI6DQogICAgICAgICAgICBzd2l0Y2ggKGRhdGFUeXBlKSB7DQogICAgICAgICAgICAgICAgY2FzZSAiY3VzdG9tLWZpbHRlciI6DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuY3JlYXRlSGVhZGxpbmUoInt7LmZpbHRlci5jdXN0b219fSIgKyAiIEZpbHRlciIpOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBjYXNlICJncm91cC10aXRsZSI6DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuY3JlYXRlSGVhZGxpbmUoInt7LmZpbHRlci5ncm91cH19IiArICIgRmlsdGVyIik7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgLy8gTmFtZSAgICAgIA0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gIm5hbWUiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LmZpbHRlci5uYW1lLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5maWx0ZXIubmFtZS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgLy8gRGVzY3JpcHRpb24NCiAgICAgICAgICAgIHZhciBkYktleSA9ICJkZXNjcmlwdGlvbiI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3suZmlsdGVyLmRlc2NyaXB0aW9uLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5maWx0ZXIuZGVzY3JpcHRpb24udGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIFR5cGUNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJ0eXBlIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImhpZGRlbiIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygiIiwgaW5wdXQpOw0KICAgICAgICAgICAgdmFyIGZpbHRlclR5cGUgPSBkYXRhW2RiS2V5XTsNCiAgICAgICAgICAgIHN3aXRjaCAoZmlsdGVyVHlwZSkgew0KICAgICAgICAgICAgICAgIGNhc2UgImN1c3RvbS1maWx0ZXIiOg0KICAgICAgICAgICAgICAgICAgICAvLyBDYXNlIHNlbnNpdGl2ZQ0KICAgICAgICAgICAgICAgICAgICB2YXIgZGJLZXkgPSAiY2FzZVNlbnNpdGl2ZSI7DQogICAgICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goZGJLZXkpOw0KICAgICAgICAgICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YVtkYktleV07DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5maWx0ZXIuY2FzZVNlbnNpdGl2ZS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgICAgICAgICAvLyBGaWx0ZXIgUnVsZSAoQ3VzdG9tKQ0KICAgICAgICAgICAgICAgICAgICB2YXIgZGJLZXkgPSAiZmlsdGVyIjsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3suZmlsdGVyLmZpbHRlclJ1bGUucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3suZmlsdGVyLmZpbHRlclJ1bGUudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAiZ3JvdXAtdGl0bGUiOg0KICAgICAgICAgICAgICAgICAgICAvL2FsZXJ0KGRiS2V5ICsgIiAiICsgZmlsdGVyVHlwZSkNCiAgICAgICAgICAgICAgICAgICAgLy8gRmlsdGVyIGJhc2VkIG9uIHRoZSBncm91cHMgaW4gdGhlIE0zVQ0KICAgICAgICAgICAgICAgICAgICB2YXIgZGJLZXkgPSAiZmlsdGVyIjsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGdyb3Vwc00zVSA9IGdldExvY2FsRGF0YSgibTN1R3JvdXBzIiwgIiIpOw0KICAgICAgICAgICAgICAgICAgICB2YXIgdGV4dCA9IGdyb3Vwc00zVVsidGV4dCJdOw0KICAgICAgICAgICAgICAgICAgICB2YXIgdmFsdWVzID0gZ3JvdXBzTTNVWyJ2YWx1ZSJdOw0KICAgICAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCBkYXRhW2RiS2V5XSwgZGJLZXkpOw0KICAgICAgICAgICAgICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3suZmlsdGVyLmZpbHRlckdyb3VwLnRpdGxlfX0iLCBzZWxlY3QpOw0KICAgICAgICAgICAgICAgICAgICBjb250ZW50LmRlc2NyaXB0aW9uKCJ7ey5maWx0ZXIuZmlsdGVyR3JvdXAuZGVzY3JpcHRpb259fSIpOw0KICAgICAgICAgICAgICAgICAgICAvLyBDYXNlIHNlbnNldGl2ZQ0KICAgICAgICAgICAgICAgICAgICB2YXIgZGJLZXkgPSAiY2FzZVNlbnNpdGl2ZSI7DQogICAgICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goZGJLZXkpOw0KICAgICAgICAgICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YVtkYktleV07DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5maWx0ZXIuY2FzZVNlbnNpdGl2ZS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgICAgICAgICB2YXIgZGJLZXkgPSAiaW5jbHVkZSI7DQogICAgICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LmZpbHRlci5pbmNsdWRlLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LmZpbHRlci5pbmNsdWRlLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuZGVzY3JpcHRpb24oInt7LmZpbHRlci5pbmNsdWRlLmRlc2NyaXB0aW9ufX0iKTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGRiS2V5ID0gImV4Y2x1ZGUiOw0KICAgICAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5maWx0ZXIuZXhjbHVkZS5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5maWx0ZXIuZXhjbHVkZS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgICAgICAgICBjb250ZW50LmRlc2NyaXB0aW9uKCJ7ey5maWx0ZXIuZXhjbHVkZS5kZXNjcmlwdGlvbn19Iik7DQogICAgICAgICAgICAgICAgICAgIC8vIFByZXNlcnZlIE0zVSBQbGF5bGlzdCBDaGFubmVsIE1hcHBpbmcNCiAgICAgICAgICAgICAgICAgICAgdmFyIGRiS2V5ID0gInByZXNlcnZlTWFwcGluZyI7DQogICAgICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goZGJLZXkpOw0KICAgICAgICAgICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YVtkYktleV07DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5maWx0ZXIucHJlc2VydmVNYXBwaW5nLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAgICAgICAgIC8vIFN0YXJ0aW5nIENoYW5uZWwgTnVtYmVyIE1hcHBpbmcNCiAgICAgICAgICAgICAgICAgICAgdmFyIGRiS2V5ID0gInN0YXJ0aW5nQ2hhbm5lbCI7DQogICAgICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LmZpbHRlci5zdGFydGluZ0NoYW5uZWwucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3suZmlsdGVyLnN0YXJ0aW5nQ2hhbm5lbC50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgICAgICAgICAvLyBGaWxsIE1pc3NpbmcgRVBHIERhdGENCiAgICAgICAgICAgICAgICAgICAgLy8gVGhlIGZvbGxvd2luZyBjb2RlIG9ubHkgd29ya3Mgd2hlbiB4VGVWZSBEdW1teSBhbHJlYWR5IGV4aXN0cw0KICAgICAgICAgICAgICAgICAgICAvLyB2YXIgZGJLZXk6c3RyaW5nID0gImRlZmF1bHRNaXNzaW5nRVBHIg0KICAgICAgICAgICAgICAgICAgICAvLyB2YXIgeG1sdHY6WE1MVFZGaWxlID0gbmV3IFhNTFRWRmlsZSgpDQogICAgICAgICAgICAgICAgICAgIC8vIHZhciBzZWxlY3QgPSB4bWx0di5nZXRQcm9ncmFtcygieFRlVmUgRHVtbXkiLCBkYXRhW2RiS2V5XSkNCiAgICAgICAgICAgICAgICAgICAgLy8gc2VsZWN0LnNldEF0dHJpYnV0ZSgibmFtZSIsIGRiS2V5KQ0KICAgICAgICAgICAgICAgICAgICAvLyBzZWxlY3Quc2V0QXR0cmlidXRlKCJpZCIsICJwb3B1cC1taXNzaW5nLWVwZyIpDQogICAgICAgICAgICAgICAgICAgIC8vIFRoZSB3b3JrYXJvdW5kIGlzIGN1cnJlbnRseSB0byBoYXJkIGNvZGUgdGhlIHhUZVZlIER1bW15IGRhdGENCiAgICAgICAgICAgICAgICAgICAgdmFyIGRiS2V5ID0gImRlZmF1bHRNaXNzaW5nRVBHIjsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGxpc3RPcHRpb25zID0geyAidGV4dCI6IFsiLSIsICIzMCBNaW51dGVzICgzMF9NaW51dGVzKSIsICI2MCBNaW51dGVzICg2MF9NaW51dGVzKSIsICI5MCBNaW51dGVzICg5MF9NaW51dGVzKSIsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgIjEyMCBNaW51dGVzICgxMjBfTWludXRlcykiLCAiMTgwIE1pbnV0ZXMgKDMwX01pbnV0ZXMpIiwgIjI0MCBNaW51dGVzICgzMF9NaW51dGVzKSIsICIzNjAgTWludXRlcyAoMzBfTWludXRlcykiXSwNCiAgICAgICAgICAgICAgICAgICAgICAgICJ2YWx1ZSI6IFsiLSIsICIzMF9NaW51dGVzIiwgIjYwX01pbnV0ZXMiLCAiOTBfTWludXRlcyIsICIxMjBfTWludXRlcyIsICIxODBfTWludXRlcyIsICIyNDBfTWludXRlcyIsICIzNjBfTWludXRlcyIsXSB9Ow0KICAgICAgICAgICAgICAgICAgICB2YXIgdGV4dCA9IGxpc3RPcHRpb25zWyJ0ZXh0Il07DQogICAgICAgICAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBsaXN0T3B0aW9uc1sidmFsdWUiXTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHNlbGVjdCA9IGNvbnRlbnQuY3JlYXRlU2VsZWN0KHRleHQsIHZhbHVlcywgZGF0YVtkYktleV0sIGRiS2V5KTsNCiAgICAgICAgICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LmZpbHRlci5kZWZhdWx0TWlzc2luZ0VQRy50aXRsZX19Iiwgc2VsZWN0KTsNCiAgICAgICAgICAgICAgICAgICAgY29udGVudC5kZXNjcmlwdGlvbigie3suZmlsdGVyLmRlZmF1bHRNaXNzaW5nRVBHLmRlc2NyaXB0aW9ufX0iKTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICB9DQogICAgICAgICAgICAvLyBJbnRlcmFjdGlvbg0KICAgICAgICAgICAgY29udGVudC5jcmVhdGVJbnRlcmFjdGlvbigpOw0KICAgICAgICAgICAgLy8gRGVsZXRlDQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAiZGVsZXRlIiwgInt7LmJ1dHRvbi5kZWxldGV9fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoImZpbHRlciIsICInICsgaWQgKyAnIiwgdHJ1ZSwgMCknKTsNCiAgICAgICAgICAgIGlucHV0LmNsYXNzTmFtZSA9ICJkZWxldGUiOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICAvLyBBYm9ydA0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImNhbmNlbCIsICJ7ey5idXR0b24uY2FuY2VsfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBzaG93RWxlbWVudCgicG9wdXAiLCBmYWxzZSk7Jyk7DQogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIC8vIFNhdmUNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJzYXZlIiwgInt7LmJ1dHRvbi5zYXZlfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBzYXZlUG9wdXBEYXRhKCJmaWx0ZXIiLCAiJyArIGlkICsgJyIsIGZhbHNlLCAwKScpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSAieG1sdHYiOg0KICAgICAgICAgICAgY29udGVudC5jcmVhdGVIZWFkbGluZShkYXRhVHlwZSk7DQogICAgICAgICAgICAvLyBOYW1lDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAibmFtZSI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3sueG1sdHYubmFtZS5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sueG1sdHYubmFtZS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgLy8gRGVzY3JpcHRpb24NCiAgICAgICAgICAgIHZhciBkYktleSA9ICJkZXNjcmlwdGlvbiI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3sueG1sdHYuZGVzY3JpcHRpb24ucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnhtbHR2LmRlc2NyaXB0aW9uLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBVUkwNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJmaWxlLnNvdXJjZSI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3sueG1sdHYuZmlsZVhNTFRWLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey54bWx0di5maWxlWE1MVFYudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIEludGVyYWN0aW9uDQogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUludGVyYWN0aW9uKCk7DQogICAgICAgICAgICAvLyBEZWxldGUNCiAgICAgICAgICAgIGlmIChkYXRhWyJpZC5wcm92aWRlciJdICE9ICItIikgew0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJkZWxldGUiLCAie3suYnV0dG9uLmRlbGV0ZX19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoInhtbHR2IiwgIicgKyBpZCArICciLCB0cnVlLCAwKScpOw0KICAgICAgICAgICAgICAgIGlucHV0LmNsYXNzTmFtZSA9ICJkZWxldGUiOw0KICAgICAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgLy8gQWJvcnQNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJjYW5jZWwiLCAie3suYnV0dG9uLmNhbmNlbH19Iik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogc2hvd0VsZW1lbnQoInBvcHVwIiwgZmFsc2UpOycpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICAvLyBVcGRhdGUNCiAgICAgICAgICAgIGlmIChkYXRhWyJpZC5wcm92aWRlciJdICE9ICItIikgew0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJ1cGRhdGUiLCAie3suYnV0dG9uLnVwZGF0ZX19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoInhtbHR2IiwgIicgKyBpZCArICciLCBmYWxzZSwgMSknKTsNCiAgICAgICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIC8vIFNhdmUNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJzYXZlIiwgInt7LmJ1dHRvbi5zYXZlfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBzYXZlUG9wdXBEYXRhKCJ4bWx0diIsICInICsgaWQgKyAnIiwgZmFsc2UsIDApJyk7DQogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJ1c2VycyI6DQogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUhlYWRsaW5lKCJ7ey5tYWluTWVudS5pdGVtLnVzZXJzfX0iKTsNCiAgICAgICAgICAgIC8vIFVzZXIgbmFtZQ0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gInVzZXJuYW1lIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey51c2Vycy51c2VybmFtZS5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sudXNlcnMudXNlcm5hbWUudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIE5ldyBQYXJzc3dvcmQNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJwYXNzd29yZCI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJwYXNzd29yZCIsIGRiS2V5LCAiIik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnVzZXJzLnBhc3N3b3JkLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey51c2Vycy5wYXNzd29yZC50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgLy8gQ29uZmlybWF0aW9uDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAiY29uZmlybSI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJwYXNzd29yZCIsIGRiS2V5LCAiIik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnVzZXJzLmNvbmZpcm0ucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnVzZXJzLmNvbmZpcm0udGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIEF1dGhlbnRpY2F0aW9uIFdFQg0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gImF1dGhlbnRpY2F0aW9uLndlYiI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KGRiS2V5KTsNCiAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhW2RiS2V5XTsNCiAgICAgICAgICAgIGlmIChkYXRhWyJkZWZhdWx0VXNlciJdID09IHRydWUpIHsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAiamF2YXNjcmlwdDogcmV0dXJuIGZhbHNlIik7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sudXNlcnMud2ViLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBBdXRoZW50aWNhdGlvbiBQTVMNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJhdXRoZW50aWNhdGlvbi5wbXMiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChkYktleSk7DQogICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YVtkYktleV07DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sudXNlcnMucG1zLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBBdXRoZW50aWNhdGlvbiBNM1UNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJhdXRoZW50aWNhdGlvbi5tM3UiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChkYktleSk7DQogICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YVtkYktleV07DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sudXNlcnMubTN1LnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBBdXRoZW50aWNhdGlvbiBYTUwNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJhdXRoZW50aWNhdGlvbi54bWwiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChkYktleSk7DQogICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YVtkYktleV07DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sudXNlcnMueG1sLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBBdXRoZW50aWNhdGlvbiBBUEkNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJhdXRoZW50aWNhdGlvbi5hcGkiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChkYktleSk7DQogICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YVtkYktleV07DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sudXNlcnMuYXBpLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBJbnRlcmFjdGlvbg0KICAgICAgICAgICAgY29udGVudC5jcmVhdGVJbnRlcmFjdGlvbigpOw0KICAgICAgICAgICAgLy8gRGVsZXRlDQogICAgICAgICAgICBpZiAoZGF0YVsiZGVmYXVsdFVzZXIiXSAhPSB0cnVlICYmIGlkICE9ICItIikgew0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJkZWxldGUiLCAie3suYnV0dG9uLmRlbGV0ZX19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuY2xhc3NOYW1lID0gImRlbGV0ZSI7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoIicgKyBkYXRhVHlwZSArICciLCAiJyArIGlkICsgJyIsIHRydWUsIDApJyk7DQogICAgICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICAvLyBBYm9ydA0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImNhbmNlbCIsICJ7ey5idXR0b24uY2FuY2VsfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBzaG93RWxlbWVudCgicG9wdXAiLCBmYWxzZSk7Jyk7DQogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIC8vIFNhdmUNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJzYXZlIiwgInt7LmJ1dHRvbi5zYXZlfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBzYXZlUG9wdXBEYXRhKCInICsgZGF0YVR5cGUgKyAnIiwgIicgKyBpZCArICciLCAiZmFsc2UiKTsnKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGNhc2UgIm1hcHBpbmciOg0KICAgICAgICAgICAgY29udGVudC5jcmVhdGVIZWFkbGluZSgie3subWFpbk1lbnUuaXRlbS5tYXBwaW5nfX0iKTsNCiAgICAgICAgICAgIC8vIEFjdGl2ZQ0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gIngtYWN0aXZlIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goZGJLZXkpOw0KICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGFbZGJLZXldOw0KICAgICAgICAgICAgaW5wdXQuaWQgPSAiYWN0aXZlIjsNCiAgICAgICAgICAgIC8vaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpDQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRvZ2dsZUNoYW5uZWxTdGF0dXMoJyIgKyBpZCArICInLCB0aGlzKSIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7Lm1hcHBpbmcuYWN0aXZlLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBDaGFubmVsIG5hbWUNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJ4LW5hbWUiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICBpZiAoQlVMS19FRElUID09IHRydWUpIHsNCiAgICAgICAgICAgICAgICBpbnB1dC5zdHlsZS5ib3JkZXIgPSAic29saWQgMXB4IHJlZCI7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJyZWFkb25seSIsICJ0cnVlIik7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3subWFwcGluZy5jaGFubmVsTmFtZS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgY29udGVudC5kZXNjcmlwdGlvbihkYXRhWyJuYW1lIl0pOw0KICAgICAgICAgICAgLy8gRGVzY3JpcHRpb24NCiAgICAgICAgICAgIHZhciBkYktleSA9ICJ4LWRlc2NyaXB0aW9uIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5tYXBwaW5nLmRlc2NyaXB0aW9uLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5tYXBwaW5nLmRlc2NyaXB0aW9uLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBVcGRhdGUgdGhlIGNoYW5uZWwgbmFtZQ0KICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoIl91dWlkLmtleSIpKSB7DQogICAgICAgICAgICAgICAgaWYgKGRhdGFbIl91dWlkLmtleSJdICE9ICIiKSB7DQogICAgICAgICAgICAgICAgICAgIHZhciBkYktleSA9ICJ4LXVwZGF0ZS1jaGFubmVsLW5hbWUiOw0KICAgICAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KGRiS2V5KTsNCiAgICAgICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YVtkYktleV07DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5tYXBwaW5nLnVwZGF0ZUNoYW5uZWxOYW1lLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgLy8gTG9nbyBVUkwgKENoYW5uZWwpIA0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gInR2Zy1sb2dvIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJpZCIsICJjaGFubmVsLWljb24iKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5tYXBwaW5nLmNoYW5uZWxMb2dvLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBDaGFubmVsIGxvZ28gdXBkYXRlDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAieC11cGRhdGUtY2hhbm5lbC1pY29uIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goZGJLZXkpOw0KICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGFbZGJLZXldOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJpZCIsICJ1cGRhdGUtaWNvbiIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJzsgY2hhbmdlQ2hhbm5lbExvZ28oJyIgKyBpZCArICInKTsiKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5tYXBwaW5nLnVwZGF0ZUNoYW5uZWxMb2dvLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBFeHBhbmQgRVBHIGNhdGVnb3J5DQogICAgICAgICAgICB2YXIgZGJLZXkgPSAieC1jYXRlZ29yeSI7DQogICAgICAgICAgICB2YXIgdGV4dCA9IFsiLSIsICJLaWRzIChFbWJ5IG9ubHkpIiwgIk5ld3MiLCAiTW92aWUiLCAiU2VyaWVzIiwgIlNwb3J0cyJdOw0KICAgICAgICAgICAgdmFyIHZhbHVlcyA9IFsiIiwgIktpZHMiLCAiTmV3cyIsICJNb3ZpZSIsICJTZXJpZXMiLCAiU3BvcnRzIl07DQogICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCBkYXRhW2RiS2V5XSwgZGJLZXkpOw0KICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5tYXBwaW5nLmVwZ0NhdGVnb3J5LnRpdGxlfX0iLCBzZWxlY3QpOw0KICAgICAgICAgICAgLy8gTTNVIGdyb3VwIHRpdGxlDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAieC1ncm91cC10aXRsZSI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5tYXBwaW5nLm0zdUdyb3VwVGl0bGUudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIGlmIChkYXRhWyJncm91cC10aXRsZSJdICE9IHVuZGVmaW5lZCkgew0KICAgICAgICAgICAgICAgIGNvbnRlbnQuZGVzY3JpcHRpb24oZGF0YVsiZ3JvdXAtdGl0bGUiXSk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICAvLyBYTUxUViBmaWxlDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAieC14bWx0di1maWxlIjsNCiAgICAgICAgICAgIHZhciB4bWxGaWxlID0gZGF0YVtkYktleV07DQogICAgICAgICAgICB2YXIgeG1sdHYgPSBuZXcgWE1MVFZGaWxlKCk7DQogICAgICAgICAgICB2YXIgc2VsZWN0ID0geG1sdHYuZ2V0RmlsZXMoZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgibmFtZSIsIGRiS2V5KTsNCiAgICAgICAgICAgIHNlbGVjdC5zZXRBdHRyaWJ1dGUoImlkIiwgInBvcHVwLXhtbHR2Iik7DQogICAgICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJzsgc2V0WG1sdHZDaGFubmVsKCciICsgaWQgKyAiJyx0aGlzKTsiKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5tYXBwaW5nLnhtbHR2RmlsZS50aXRsZX19Iiwgc2VsZWN0KTsNCiAgICAgICAgICAgIHZhciBmaWxlID0gZGF0YVtkYktleV07DQogICAgICAgICAgICAvLyBYTUxUViBNYXBwaW5nDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAieC1tYXBwaW5nIjsNCiAgICAgICAgICAgIHZhciB4bWx0diA9IG5ldyBYTUxUVkZpbGUoKTsNCiAgICAgICAgICAgIHZhciBzZWxlY3QgPSB4bWx0di5nZXRQcm9ncmFtcyhmaWxlLCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJuYW1lIiwgZGJLZXkpOw0KICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgiaWQiLCAicG9wdXAtbWFwcGluZyIpOw0KICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCc7IGNoZWNrWG1sdHZDaGFubmVsKCciICsgaWQgKyAiJyx0aGlzLCciICsgeG1sRmlsZSArICInKTsiKTsNCiAgICAgICAgICAgIHNvcnRTZWxlY3Qoc2VsZWN0KTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5tYXBwaW5nLnhtbHR2Q2hhbm5lbC50aXRsZX19Iiwgc2VsZWN0KTsNCiAgICAgICAgICAgIC8vIFRpbWVzaGlmdA0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gIngtdGltZXNoaWZ0IjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5tYXBwaW5nLnRpbWVzaGlmdC5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoImlkIiwgInRpbWVzaGlmdCIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7Lm1hcHBpbmcudGltZXNoaWZ0LnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBJbnRlcmFjdGlvbg0KICAgICAgICAgICAgY29udGVudC5jcmVhdGVJbnRlcmFjdGlvbigpOw0KICAgICAgICAgICAgLy8gVXBsb2FkIGxvZ28NCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJjYW5jZWwiLCAie3suYnV0dG9uLnVwbG9hZExvZ299fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IHVwbG9hZExvZ28oKTsnKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgLy8gQWJvcnQNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJjYW5jZWwiLCAie3suYnV0dG9uLmNhbmNlbH19Iik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogc2hvd0VsZW1lbnQoInBvcHVwIiwgZmFsc2UpOycpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICAvLyBGaW5pc2hlZA0KICAgICAgICAgICAgdmFyIGlkcyA9IFtdOw0KICAgICAgICAgICAgaWRzID0gZ2V0QWxsU2VsZWN0ZWRDaGFubmVscygpOw0KICAgICAgICAgICAgaWYgKGlkcy5sZW5ndGggPT0gMCkgew0KICAgICAgICAgICAgICAgIGlkcy5wdXNoKGlkKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJzYXZlIiwgInt7LmJ1dHRvbi5kb25lfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBkb25lUG9wdXBEYXRhKCInICsgZGF0YVR5cGUgKyAnIiwgIicgKyBpZHMgKyAnIiwgImZhbHNlIik7Jyk7DQogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBkZWZhdWx0Og0KICAgICAgICAgICAgYnJlYWs7DQogICAgfQ0KICAgIHNob3dQb3BVcEVsZW1lbnQoJ3BvcHVwLWN1c3RvbScpOw0KfQ0KY2xhc3MgWE1MVFZGaWxlIHsNCiAgICBnZXRGaWxlcyhzZXQpIHsNCiAgICAgICAgbGV0IGZpbGVJRHMgPSBnZXRPYmpLZXlzKFNFUlZFUlsieGVwZyJdWyJ4bWx0dk1hcCJdKTsNCiAgICAgICAgbGV0IHZhbHVlcyA9IG5ldyBBcnJheSgiLSIpOw0KICAgICAgICBsZXQgdGV4dCA9IG5ldyBBcnJheSgiLSIpOw0KICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGZpbGVJRHMubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgICAgIGlmIChmaWxlSURzW2ldICE9ICJ4VGVWZSBEdW1teSIpIHsNCiAgICAgICAgICAgICAgICB2YWx1ZXMucHVzaChnZXRWYWx1ZUZyb21Qcm92aWRlckZpbGUoZmlsZUlEc1tpXSwgInhtbHR2IiwgImZpbGUueHRldmUiKSk7DQogICAgICAgICAgICAgICAgdGV4dC5wdXNoKGdldFZhbHVlRnJvbVByb3ZpZGVyRmlsZShmaWxlSURzW2ldLCAieG1sdHYiLCAibmFtZSIpKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgICAgIHZhbHVlcy5wdXNoKGZpbGVJRHNbaV0pOw0KICAgICAgICAgICAgICAgIHRleHQucHVzaChmaWxlSURzW2ldKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KICAgICAgICBsZXQgc2VsZWN0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiU0VMRUNUIik7DQogICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGV4dC5sZW5ndGg7IGkrKykgew0KICAgICAgICAgICAgdmFyIG9wdGlvbiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIk9QVElPTiIpOw0KICAgICAgICAgICAgb3B0aW9uLnNldEF0dHJpYnV0ZSgidmFsdWUiLCB2YWx1ZXNbaV0pOw0KICAgICAgICAgICAgb3B0aW9uLmlubmVyVGV4dCA9IHRleHRbaV07DQogICAgICAgICAgICBzZWxlY3QuYXBwZW5kQ2hpbGQob3B0aW9uKTsNCiAgICAgICAgfQ0KICAgICAgICBpZiAoc2V0ICE9ICIiKSB7DQogICAgICAgICAgICBzZWxlY3QudmFsdWUgPSBzZXQ7DQogICAgICAgIH0NCiAgICAgICAgcmV0dXJuIHNlbGVjdDsNCiAgICB9DQogICAgZ2V0UHJvZ3JhbXMoZmlsZSwgc2V0KSB7DQogICAgICAgIC8vdmFyIGZpbGVJRHM6c3RyaW5nW10gPSBnZXRPYmpLZXlzKFNFUlZFUlsieGVwZyJdWyJ4bWx0dk1hcCJdKQ0KICAgICAgICBsZXQgdmFsdWVzID0gZ2V0T2JqS2V5cyhTRVJWRVJbInhlcGciXVsieG1sdHZNYXAiXVtmaWxlXSk7DQogICAgICAgIGxldCB0ZXh0ID0gW107DQogICAgICAgIGxldCBkaXNwbGF5TmFtZTsNCiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB2YWx1ZXMubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgICAgIGlmIChTRVJWRVJbInhlcGciXVsieG1sdHZNYXAiXVtmaWxlXVt2YWx1ZXNbaV1dLmhhc093blByb3BlcnR5KCdkaXNwbGF5LW5hbWUnKSA9PSB0cnVlKSB7DQogICAgICAgICAgICAgICAgZGlzcGxheU5hbWUgPSBTRVJWRVJbInhlcGciXVsieG1sdHZNYXAiXVtmaWxlXVt2YWx1ZXNbaV1dWyJkaXNwbGF5LW5hbWUiXTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgICAgIGRpc3BsYXlOYW1lID0gIi0iOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgdGV4dFtpXSA9IGRpc3BsYXlOYW1lICsgIiAoIiArIHZhbHVlc1tpXSArICIpIjsNCiAgICAgICAgfQ0KICAgICAgICB0ZXh0LnVuc2hpZnQoIi0iKTsNCiAgICAgICAgdmFsdWVzLnVuc2hpZnQoIi0iKTsNCiAgICAgICAgbGV0IHNlbGVjdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlNFTEVDVCIpOw0KICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRleHQubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgICAgIHZhciBvcHRpb24gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJPUFRJT04iKTsNCiAgICAgICAgICAgIG9wdGlvbi5zZXRBdHRyaWJ1dGUoInZhbHVlIiwgdmFsdWVzW2ldKTsNCiAgICAgICAgICAgIG9wdGlvbi5pbm5lclRleHQgPSB0ZXh0W2ldOw0KICAgICAgICAgICAgc2VsZWN0LmFwcGVuZENoaWxkKG9wdGlvbik7DQogICAgICAgIH0NCiAgICAgICAgaWYgKHNldCAhPSAiIikgew0KICAgICAgICAgICAgc2VsZWN0LnZhbHVlID0gc2V0Ow0KICAgICAgICB9DQogICAgICAgIGlmIChzZWxlY3QudmFsdWUgIT0gc2V0KSB7DQogICAgICAgICAgICBzZWxlY3QudmFsdWUgPSAiLSI7DQogICAgICAgIH0NCiAgICAgICAgcmV0dXJuIHNlbGVjdDsNCiAgICB9DQp9DQpmdW5jdGlvbiBnZXRWYWx1ZUZyb21Qcm92aWRlckZpbGUoZmlsZSwgZmlsZVR5cGUsIGtleSkgew0KICAgIGlmIChmaWxlID09ICJ4VGVWZSBEdW1teSIpIHsNCiAgICAgICAgcmV0dXJuIGZpbGU7DQogICAgfQ0KICAgIGxldCBmaWxlSUQ7DQogICAgbGV0IGluZGljYXRvciA9IGZpbGUuY2hhckF0KDApOw0KICAgIHN3aXRjaCAoaW5kaWNhdG9yKSB7DQogICAgICAgIGNhc2UgIk0iOg0KICAgICAgICAgICAgZmlsZVR5cGUgPSAibTN1IjsNCiAgICAgICAgICAgIGZpbGVJRCA9IGZpbGU7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSAiSCI6DQogICAgICAgICAgICBmaWxlVHlwZSA9ICJoZGhyIjsNCiAgICAgICAgICAgIGZpbGVJRCA9IGZpbGU7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSAiWCI6DQogICAgICAgICAgICBmaWxlVHlwZSA9ICJ4bWx0diI7DQogICAgICAgICAgICBmaWxlSUQgPSBmaWxlLnN1YnN0cmluZygwLCBmaWxlLmxhc3RJbmRleE9mKCcuJykpOw0KICAgICAgICAgICAgYnJlYWs7DQogICAgfQ0KICAgIGlmIChTRVJWRVJbInNldHRpbmdzIl1bImZpbGVzIl1bZmlsZVR5cGVdLmhhc093blByb3BlcnR5KGZpbGVJRCkgPT0gdHJ1ZSkgew0KICAgICAgICB2YXIgZGF0YSA9IFNFUlZFUlsic2V0dGluZ3MiXVsiZmlsZXMiXVtmaWxlVHlwZV1bZmlsZUlEXTsNCiAgICAgICAgcmV0dXJuIGRhdGFba2V5XTsNCiAgICB9DQogICAgcmV0dXJuOw0KfQ0KZnVuY3Rpb24gc2V0WG1sdHZDaGFubmVsKGlkLCBlbGVtZW50KSB7DQogICAgbGV0IHhtbHR2ID0gbmV3IFhNTFRWRmlsZSgpOw0KICAgIGxldCB4bWxGaWxlID0gZWxlbWVudC52YWx1ZTsNCiAgICBsZXQgdHZnSWQgPSBTRVJWRVJbInhlcGciXVsiZXBnTWFwcGluZyJdW2lkXVsidHZnLWlkIl07DQogICAgbGV0IHRkID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInBvcHVwLW1hcHBpbmciKS5wYXJlbnRFbGVtZW50Ow0KICAgIHRkLmlubmVySFRNTCA9ICIiOw0KICAgIGxldCBzZWxlY3QgPSB4bWx0di5nZXRQcm9ncmFtcyhlbGVtZW50LnZhbHVlLCB0dmdJZCk7DQogICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgibmFtZSIsICJ4LW1hcHBpbmciKTsNCiAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJpZCIsICJwb3B1cC1tYXBwaW5nIik7DQogICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCc7IGNoZWNrWG1sdHZDaGFubmVsKCciICsgaWQgKyAiJyx0aGlzLCciICsgeG1sRmlsZSArICInKTsiKTsNCiAgICBzZWxlY3QuY2xhc3NOYW1lID0gImNoYW5nZWQiOw0KICAgIHNvcnRTZWxlY3Qoc2VsZWN0KTsNCiAgICB0ZC5hcHBlbmRDaGlsZChzZWxlY3QpOw0KICAgIGNoZWNrWG1sdHZDaGFubmVsKGlkLCBzZWxlY3QsIHhtbEZpbGUpOw0KfQ0KZnVuY3Rpb24gY2hlY2tYbWx0dkNoYW5uZWwoaWQsIGVsZW1lbnQsIHhtbEZpbGUpIHsNCiAgICBsZXQgdmFsdWUgPSBlbGVtZW50LnZhbHVlOw0KICAgIGxldCBib29sOw0KICAgIGxldCBjaGVja2JveCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdhY3RpdmUnKTsNCiAgICBsZXQgY2hhbm5lbCA9IFNFUlZFUlsieGVwZyJdWyJlcGdNYXBwaW5nIl1baWRdOw0KICAgIGxldCB1cGRhdGVMb2dvOw0KICAgIGJvb2wgPSB2YWx1ZSAhPSAiLSI7DQogICAgY2hlY2tib3guY2hlY2tlZCA9IGJvb2w7DQogICAgY2hlY2tib3guY2xhc3NOYW1lID0gImNoYW5nZWQiOw0KICAgIGNvbnNvbGUubG9nKHhtbEZpbGUpOw0KICAgIC8vIFVwZGF0ZSBjaGFubmVsIGxvZ28NCiAgICAvKg0KICAgIHVwZGF0ZUxvZ28gPSAoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInVwZGF0ZS1pY29uIikgYXMgSFRNTElucHV0RWxlbWVudCkuY2hlY2tlZA0KICAgIGNvbnNvbGUubG9nKHVwZGF0ZUxvZ28pOw0KICAgICovDQogICAgaWYgKHhtbEZpbGUgIT0gInhUZVZlIER1bW15IiAmJiBib29sID09IHRydWUpIHsNCiAgICAgICAgLy8oZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInVwZGF0ZS1pY29uIikgYXMgSFRNTElucHV0RWxlbWVudCkuY2hlY2tlZCA9IHRydWU7DQogICAgICAgIC8vKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ1cGRhdGUtaWNvbiIpIGFzIEhUTUxJbnB1dEVsZW1lbnQpLmNsYXNzTmFtZSA9ICJjaGFuZ2VkIjsNCiAgICAgICAgY29uc29sZS5sb2coIklEIiwgaWQpOw0KICAgICAgICBjaGFuZ2VDaGFubmVsTG9nbyhpZCk7DQogICAgICAgIHJldHVybjsNCiAgICB9DQogICAgaWYgKHhtbEZpbGUgPT0gInhUZVZlIER1bW15Iikgew0KICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidXBkYXRlLWljb24iKS5jaGVja2VkID0gZmFsc2U7DQogICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ1cGRhdGUtaWNvbiIpLmNsYXNzTmFtZSA9ICJjaGFuZ2VkIjsNCiAgICB9DQogICAgcmV0dXJuOw0KfQ0KZnVuY3Rpb24gY2hhbmdlQ2hhbm5lbExvZ28oaWQpIHsNCiAgICBsZXQgdXBkYXRlTG9nbzsNCiAgICBsZXQgY2hhbm5lbCA9IFNFUlZFUlsieGVwZyJdWyJlcGdNYXBwaW5nIl1baWRdOw0KICAgIGxldCBmID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInBvcHVwLXhtbHR2Iik7DQogICAgbGV0IHhtbHR2RmlsZSA9IGYub3B0aW9uc1tmLnNlbGVjdGVkSW5kZXhdLnZhbHVlOw0KICAgIGxldCBtID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInBvcHVwLW1hcHBpbmciKTsNCiAgICBsZXQgeE1hcHBpbmcgPSBtLm9wdGlvbnNbbS5zZWxlY3RlZEluZGV4XS52YWx1ZTsNCiAgICBsZXQgeG1sdHZMb2dvID0gU0VSVkVSWyJ4ZXBnIl1bInhtbHR2TWFwIl1beG1sdHZGaWxlXVt4TWFwcGluZ11bImljb24iXTsNCiAgICB1cGRhdGVMb2dvID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInVwZGF0ZS1pY29uIikuY2hlY2tlZDsNCiAgICBpZiAodXBkYXRlTG9nbyA9PSB0cnVlICYmIHhtbHR2RmlsZSAhPSAieFRlVmUgRHVtbXkiKSB7DQogICAgICAgIGlmIChTRVJWRVJbInhlcGciXVsieG1sdHZNYXAiXVt4bWx0dkZpbGVdLmhhc093blByb3BlcnR5KHhNYXBwaW5nKSkgew0KICAgICAgICAgICAgdmFyIGxvZ28gPSB4bWx0dkxvZ287DQogICAgICAgIH0NCiAgICAgICAgZWxzZSB7DQogICAgICAgICAgICBsb2dvID0gY2hhbm5lbFsidHZnLWxvZ28iXTsNCiAgICAgICAgfQ0KICAgICAgICB2YXIgbG9nb0lucHV0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNoYW5uZWwtaWNvbiIpOw0KICAgICAgICBsb2dvSW5wdXQudmFsdWUgPSBsb2dvOw0KICAgICAgICBpZiAoQlVMS19FRElUID09IGZhbHNlKSB7DQogICAgICAgICAgICBsb2dvSW5wdXQuY2xhc3NOYW1lID0gImNoYW5nZWQiOw0KICAgICAgICB9DQogICAgfQ0KfQ0KZnVuY3Rpb24gc2F2ZVBvcHVwRGF0YShkYXRhVHlwZSwgaWQsIHJlbW92ZSwgb3B0aW9uKSB7DQogICAgaWYgKGRhdGFUeXBlID09ICJtYXBwaW5nIikgew0KICAgICAgICBsZXQgZGF0YSA9IHt9Ow0KICAgICAgICBjb25zb2xlLmxvZygiU2F2ZSBtYXBwaW5nIGRhdGEiKTsNCiAgICAgICAgbGV0IGNtZCA9ICJzYXZlRXBnTWFwcGluZyI7DQogICAgICAgIGRhdGFbImVwZ01hcHBpbmciXSA9IFNFUlZFUlsieGVwZyJdWyJlcGdNYXBwaW5nIl07DQogICAgICAgIGNvbnNvbGUubG9nKCJTRU5EIFRPIFNFUlZFUiIpOw0KICAgICAgICBsZXQgc2VydmVyID0gbmV3IFNlcnZlcihjbWQpOw0KICAgICAgICBzZXJ2ZXIucmVxdWVzdChkYXRhKTsNCiAgICAgICAgZGVsZXRlIFVORE9bImVwZ01hcHBpbmciXTsNCiAgICAgICAgcmV0dXJuOw0KICAgIH0NCiAgICBjb25zb2xlLmxvZygiU2F2ZSBwb3B1cCBkYXRhIik7DQogICAgbGV0IGRpdiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJwb3B1cC1jdXN0b20iKTsNCiAgICBsZXQgaW5wdXRzID0gZGl2LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJUQUJMRSIpWzBdLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJJTlBVVCIpOw0KICAgIGxldCBzZWxlY3RzID0gZGl2LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJUQUJMRSIpWzBdLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJTRUxFQ1QiKTsNCiAgICBsZXQgaW5wdXQgPSB7fTsNCiAgICBsZXQgY29uZmlybU1zZzsNCiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHNlbGVjdHMubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgdmFyIG5hbWU7DQogICAgICAgIG5hbWUgPSBzZWxlY3RzW2ldLm5hbWU7DQogICAgICAgIHZhciB2YWx1ZSA9IHNlbGVjdHNbaV0udmFsdWU7DQogICAgICAgIHN3aXRjaCAobmFtZSkgew0KICAgICAgICAgICAgY2FzZSAidHVuZXIiOg0KICAgICAgICAgICAgICAgIGlucHV0W25hbWVdID0gcGFyc2VJbnQodmFsdWUpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgICAgICBpbnB1dFtuYW1lXSA9IHZhbHVlOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICB9DQogICAgfQ0KICAgIGZvciAobGV0IGkgPSAwOyBpIDwgaW5wdXRzLmxlbmd0aDsgaSsrKSB7DQogICAgICAgIHN3aXRjaCAoaW5wdXRzW2ldLnR5cGUpIHsNCiAgICAgICAgICAgIGNhc2UgImNoZWNrYm94IjoNCiAgICAgICAgICAgICAgICBuYW1lID0gaW5wdXRzW2ldLm5hbWU7DQogICAgICAgICAgICAgICAgaW5wdXRbbmFtZV0gPSBpbnB1dHNbaV0uY2hlY2tlZDsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInRleHQiOg0KICAgICAgICAgICAgY2FzZSAiaGlkZGVuIjoNCiAgICAgICAgICAgIGNhc2UgInBhc3N3b3JkIjoNCiAgICAgICAgICAgICAgICBuYW1lID0gaW5wdXRzW2ldLm5hbWU7DQogICAgICAgICAgICAgICAgc3dpdGNoIChuYW1lKSB7DQogICAgICAgICAgICAgICAgICAgIGNhc2UgInR1bmVyIjoNCiAgICAgICAgICAgICAgICAgICAgICAgIGlucHV0W25hbWVdID0gcGFyc2VJbnQoaW5wdXRzW2ldLnZhbHVlKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgICAgICBkZWZhdWx0Og0KICAgICAgICAgICAgICAgICAgICAgICAgaW5wdXRbbmFtZV0gPSBpbnB1dHNbaV0udmFsdWU7DQogICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIH0NCiAgICB9DQogICAgbGV0IGRhdGEgPSB7fTsNCiAgICBsZXQgY21kOw0KICAgIGlmIChyZW1vdmUgPT0gdHJ1ZSkgew0KICAgICAgICBpbnB1dFsiZGVsZXRlIl0gPSB0cnVlOw0KICAgIH0NCiAgICBzd2l0Y2ggKGRhdGFUeXBlKSB7DQogICAgICAgIGNhc2UgInVzZXJzIjoNCiAgICAgICAgICAgIGNvbmZpcm1Nc2cgPSAiRGVsZXRlIHRoaXMgdXNlcj8iOw0KICAgICAgICAgICAgaWYgKGlkID09ICItIikgew0KICAgICAgICAgICAgICAgIGNtZCA9ICJzYXZlTmV3VXNlciI7DQogICAgICAgICAgICAgICAgZGF0YVsidXNlckRhdGEiXSA9IGlucHV0Ow0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgZWxzZSB7DQogICAgICAgICAgICAgICAgY21kID0gInNhdmVVc2VyRGF0YSI7DQogICAgICAgICAgICAgICAgbGV0IGQgPSB7fTsNCiAgICAgICAgICAgICAgICBkW2lkXSA9IGlucHV0Ow0KICAgICAgICAgICAgICAgIGRhdGFbInVzZXJEYXRhIl0gPSBkOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGNhc2UgIm0zdSI6DQogICAgICAgICAgICBjb25maXJtTXNnID0gIkRlbGV0ZSB0aGlzIHBsYXlsaXN0PyI7DQogICAgICAgICAgICBzd2l0Y2ggKG9wdGlvbikgew0KICAgICAgICAgICAgICAgIC8vIFBvcHVwOiBTYXZlDQogICAgICAgICAgICAgICAgY2FzZSAwOg0KICAgICAgICAgICAgICAgICAgICBjbWQgPSAic2F2ZUZpbGVzTTNVIjsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgLy8gUG9wdXA6IFVwZGF0ZQ0KICAgICAgICAgICAgICAgIGNhc2UgMToNCiAgICAgICAgICAgICAgICAgICAgY21kID0gInVwZGF0ZUZpbGVNM1UiOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGRhdGFbImZpbGVzIl0gPSB7fTsNCiAgICAgICAgICAgIGRhdGFbImZpbGVzIl1bZGF0YVR5cGVdID0ge307DQogICAgICAgICAgICBkYXRhWyJmaWxlcyJdW2RhdGFUeXBlXVtpZF0gPSBpbnB1dDsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJoZGhyIjoNCiAgICAgICAgICAgIGNvbmZpcm1Nc2cgPSAiRGVsZXRlIHRoaXMgSERIb21lUnVuIHR1bmVyPyI7DQogICAgICAgICAgICBzd2l0Y2ggKG9wdGlvbikgew0KICAgICAgICAgICAgICAgIC8vIFBvcHVwOiBTYXZlDQogICAgICAgICAgICAgICAgY2FzZSAwOg0KICAgICAgICAgICAgICAgICAgICBjbWQgPSAic2F2ZUZpbGVzSERIUiI7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIC8vIFBvcHVwOiBVcGRhdGUNCiAgICAgICAgICAgICAgICBjYXNlIDE6DQogICAgICAgICAgICAgICAgICAgIGNtZCA9ICJ1cGRhdGVGaWxlSERIUiI7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgZGF0YVsiZmlsZXMiXSA9IHt9Ow0KICAgICAgICAgICAgZGF0YVsiZmlsZXMiXVtkYXRhVHlwZV0gPSB7fTsNCiAgICAgICAgICAgIGRhdGFbImZpbGVzIl1bZGF0YVR5cGVdW2lkXSA9IGlucHV0Ow0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGNhc2UgInhtbHR2IjoNCiAgICAgICAgICAgIGNvbmZpcm1Nc2cgPSAiRGVsZXRlIHRoaXMgWE1MVFYgZmlsZT8iOw0KICAgICAgICAgICAgc3dpdGNoIChvcHRpb24pIHsNCiAgICAgICAgICAgICAgICAvLyBQb3B1cDogU2F2ZQ0KICAgICAgICAgICAgICAgIGNhc2UgMDoNCiAgICAgICAgICAgICAgICAgICAgY21kID0gInNhdmVGaWxlc1hNTFRWIjsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgLy8gUG9wdXA6IFVwZGF0ZQ0KICAgICAgICAgICAgICAgIGNhc2UgMToNCiAgICAgICAgICAgICAgICAgICAgY21kID0gInVwZGF0ZUZpbGVYTUxUViI7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgZGF0YVsiZmlsZXMiXSA9IHt9Ow0KICAgICAgICAgICAgZGF0YVsiZmlsZXMiXVtkYXRhVHlwZV0gPSB7fTsNCiAgICAgICAgICAgIGRhdGFbImZpbGVzIl1bZGF0YVR5cGVdW2lkXSA9IGlucHV0Ow0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGNhc2UgImZpbHRlciI6DQogICAgICAgICAgICBjb25maXJtTXNnID0gIkRlbGV0ZSB0aGlzIGZpbHRlcj8iOw0KICAgICAgICAgICAgY21kID0gInNhdmVGaWx0ZXIiOw0KICAgICAgICAgICAgZGF0YVsiZmlsdGVyIl0gPSB7fTsNCiAgICAgICAgICAgIGRhdGFbImZpbHRlciJdW2lkXSA9IGlucHV0Ow0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICBjb25zb2xlLmxvZyhkYXRhVHlwZSwgaWQpOw0KICAgICAgICAgICAgcmV0dXJuOw0KICAgIH0NCiAgICBpZiAocmVtb3ZlID09IHRydWUpIHsNCiAgICAgICAgaWYgKCFjb25maXJtKGNvbmZpcm1Nc2cpKSB7DQogICAgICAgICAgICBzaG93RWxlbWVudCgicG9wdXAiLCBmYWxzZSk7DQogICAgICAgICAgICByZXR1cm47DQogICAgICAgIH0NCiAgICB9DQogICAgY29uc29sZS5sb2coIlNFTkQgVE8gU0VSVkVSIik7DQogICAgY29uc29sZS5sb2coZGF0YSk7DQogICAgbGV0IHNlcnZlciA9IG5ldyBTZXJ2ZXIoY21kKTsNCiAgICBzZXJ2ZXIucmVxdWVzdChkYXRhKTsNCn0NCmZ1bmN0aW9uIGRvbmVQb3B1cERhdGEoZGF0YVR5cGUsIGlkc1N0cikgew0KICAgIGxldCBpZHMgPSBpZHNTdHIuc3BsaXQoJywnKTsNCiAgICBsZXQgZGl2ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInBvcHVwLWN1c3RvbSIpOw0KICAgIGxldCBpbnB1dHMgPSBkaXYuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSgiY2hhbmdlZCIpOw0KICAgIGlkcy5mb3JFYWNoKGlkID0+IHsNCiAgICAgICAgbGV0IGlucHV0Ow0KICAgICAgICBpbnB1dCA9IFNFUlZFUlsieGVwZyJdWyJlcGdNYXBwaW5nIl1baWRdOw0KICAgICAgICBjb25zb2xlLmxvZyhpbnB1dCk7DQogICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgaW5wdXRzLmxlbmd0aDsgaSsrKSB7DQogICAgICAgICAgICBsZXQgbmFtZTsNCiAgICAgICAgICAgIGxldCB2YWx1ZTsNCiAgICAgICAgICAgIHN3aXRjaCAoaW5wdXRzW2ldLnRhZ05hbWUpIHsNCiAgICAgICAgICAgICAgICBjYXNlICJJTlBVVCI6DQogICAgICAgICAgICAgICAgICAgIHN3aXRjaCAoaW5wdXRzW2ldLnR5cGUpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgImNoZWNrYm94IjoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lID0gaW5wdXRzW2ldLm5hbWU7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSBpbnB1dHNbaV0uY2hlY2tlZDsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnB1dFtuYW1lXSA9IHZhbHVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAidGV4dCI6DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZSA9IGlucHV0c1tpXS5uYW1lOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlID0gaW5wdXRzW2ldLnZhbHVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlucHV0W25hbWVdID0gdmFsdWU7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAiU0VMRUNUIjoNCiAgICAgICAgICAgICAgICAgICAgbmFtZSA9IGlucHV0c1tpXS5uYW1lOw0KICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IGlucHV0c1tpXS52YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgaW5wdXRbbmFtZV0gPSB2YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBzd2l0Y2ggKG5hbWUpIHsNCiAgICAgICAgICAgICAgICBjYXNlICJ0dmctbG9nbyI6DQogICAgICAgICAgICAgICAgICAgIC8vKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5jaGlsZE5vZGVzWzJdLmZpcnN0Q2hpbGQgYXMgSFRNTEVsZW1lbnQpLnNldEF0dHJpYnV0ZSgic3JjIiwgdmFsdWUpDQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgIngtbmFtZSI6DQogICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5jaGlsZE5vZGVzWzNdLmZpcnN0Q2hpbGQuaW5uZXJIVE1MID0gdmFsdWU7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgIngtY2F0ZWdvcnkiOg0KICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkuY2hpbGROb2Rlc1szXS5maXJzdENoaWxkLmNsYXNzTmFtZSA9IHZhbHVlOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBjYXNlICJ4LWdyb3VwLXRpdGxlIjoNCiAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpLmNoaWxkTm9kZXNbNV0uZmlyc3RDaGlsZC5pbm5lckhUTUwgPSB2YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAieC14bWx0di1maWxlIjoNCiAgICAgICAgICAgICAgICAgICAgaWYgKHZhbHVlICE9ICJ4VGVWZSBEdW1teSIgJiYgdmFsdWUgIT0gIi0iKSB7DQogICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IGdldFZhbHVlRnJvbVByb3ZpZGVyRmlsZSh2YWx1ZSwgInhtbHR2IiwgIm5hbWUiKTsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBpZiAodmFsdWUgPT0gIi0iKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBpbnB1dFsieC1hY3RpdmUiXSA9IGZhbHNlOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5jaGlsZE5vZGVzWzZdLmZpcnN0Q2hpbGQuaW5uZXJIVE1MID0gdmFsdWU7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgIngtbWFwcGluZyI6DQogICAgICAgICAgICAgICAgICAgIGlmICh2YWx1ZSA9PSAiLSIpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGlucHV0WyJ4LWFjdGl2ZSJdID0gZmFsc2U7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpLmNoaWxkTm9kZXNbN10uZmlyc3RDaGlsZC5pbm5lckhUTUwgPSB2YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAieC10aW1lc2hpZnQiOg0KICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkuY2hpbGROb2Rlc1s4XS5maXJzdENoaWxkLmlubmVySFRNTCA9IHZhbHVlOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBkZWZhdWx0Og0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgY3JlYXRlU2VhcmNoT2JqKCk7DQogICAgICAgICAgICBzZWFyY2hJbk1hcHBpbmcoKTsNCiAgICAgICAgfQ0KICAgICAgICBpZiAoaW5wdXRbIngtYWN0aXZlIl0gPT0gZmFsc2UpIHsNCiAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5jbGFzc05hbWUgPSAibm90QWN0aXZlRVBHIjsNCiAgICAgICAgfQ0KICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5jbGFzc05hbWUgPSAiYWN0aXZlRVBHIjsNCiAgICAgICAgfQ0KICAgICAgICBjb25zb2xlLmxvZyhpbnB1dFsidHZnLWxvZ28iXSk7DQogICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5jaGlsZE5vZGVzWzJdLmZpcnN0Q2hpbGQuc2V0QXR0cmlidXRlKCJzcmMiLCBpbnB1dFsidHZnLWxvZ28iXSk7DQogICAgfSk7DQogICAgc2hvd0VsZW1lbnQoInBvcHVwIiwgZmFsc2UpOw0KICAgIHJldHVybjsNCn0NCmZ1bmN0aW9uIHNob3dQcmV2aWV3KGVsZW1lbnQpIHsNCiAgICBsZXQgZGl2ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm15U3RyZWFtc0JveCIpOw0KICAgIHN3aXRjaCAoZWxlbWVudCkgew0KICAgICAgICBjYXNlIGZhbHNlOg0KICAgICAgICAgICAgZGl2LmNsYXNzTmFtZSA9ICJub3RWaXNpYmxlIjsNCiAgICAgICAgICAgIHJldHVybjsNCiAgICB9DQogICAgbGV0IHN0cmVhbXMgPSBbImFjdGl2ZVN0cmVhbXMiLCAiaW5hY3RpdmVTdHJlYW1zIl07DQogICAgc3RyZWFtcy5mb3JFYWNoKHByZXZpZXcgPT4gew0KICAgICAgICBsZXQgdGFibGUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChwcmV2aWV3KTsNCiAgICAgICAgdGFibGUuaW5uZXJIVE1MID0gIiI7DQogICAgICAgIGxldCBvYmogPSBTRVJWRVJbImRhdGEiXVsiU3RyZWFtUHJldmlld1VJIl1bcHJldmlld107DQogICAgICAgIG9iai5mb3JFYWNoKGNoYW5uZWwgPT4gew0KICAgICAgICAgICAgbGV0IHRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVFIiKTsNCiAgICAgICAgICAgIGxldCB0ZEtleSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICBsZXQgdGRWYWwgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgdGRLZXkuY2xhc3NOYW1lID0gInRkS2V5IjsNCiAgICAgICAgICAgIHRkVmFsLmNsYXNzTmFtZSA9ICJ0ZFZhbCI7DQogICAgICAgICAgICBzd2l0Y2ggKHByZXZpZXcpIHsNCiAgICAgICAgICAgICAgICBjYXNlICJhY3RpdmVTdHJlYW1zIjoNCiAgICAgICAgICAgICAgICAgICAgdGRLZXkuaW5uZXJUZXh0ID0gIkNoYW5uZWw6ICgrKSI7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgImluYWN0aXZlU3RyZWFtcyI6DQogICAgICAgICAgICAgICAgICAgIHRkS2V5LmlubmVyVGV4dCA9ICJDaGFubmVsOiAoLSkiOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIHRkVmFsLmlubmVyVGV4dCA9IGNoYW5uZWw7DQogICAgICAgICAgICB0ci5hcHBlbmRDaGlsZCh0ZEtleSk7DQogICAgICAgICAgICB0ci5hcHBlbmRDaGlsZCh0ZFZhbCk7DQogICAgICAgICAgICB0YWJsZS5hcHBlbmRDaGlsZCh0cik7DQogICAgICAgIH0pOw0KICAgIH0pOw0KICAgIHNob3dFbGVtZW50KCJsb2FkaW5nIiwgZmFsc2UpOw0KICAgIGRpdi5jbGFzc05hbWUgPSAidmlzaWJsZSI7DQogICAgcmV0dXJuOw0KfQ0K" - webUI["html/img/settings.png"] = "iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAAAXNSR0IArs4c6QAAAAlwSFlzAAAsSwAALEsBpT2WqQAABCRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IlhNUCBDb3JlIDUuNC4wIj4KICAgPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIgogICAgICAgICAgICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgICAgICAgICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyI+CiAgICAgICAgIDx0aWZmOlJlc29sdXRpb25Vbml0PjI8L3RpZmY6UmVzb2x1dGlvblVuaXQ+CiAgICAgICAgIDx0aWZmOkNvbXByZXNzaW9uPjU8L3RpZmY6Q29tcHJlc3Npb24+CiAgICAgICAgIDx0aWZmOlhSZXNvbHV0aW9uPjI4ODwvdGlmZjpYUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6T3JpZW50YXRpb24+MTwvdGlmZjpPcmllbnRhdGlvbj4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+Mjg4PC90aWZmOllSZXNvbHV0aW9uPgogICAgICAgICA8ZXhpZjpQaXhlbFhEaW1lbnNpb24+NTA8L2V4aWY6UGl4ZWxYRGltZW5zaW9uPgogICAgICAgICA8ZXhpZjpDb2xvclNwYWNlPjE8L2V4aWY6Q29sb3JTcGFjZT4KICAgICAgICAgPGV4aWY6UGl4ZWxZRGltZW5zaW9uPjUwPC9leGlmOlBpeGVsWURpbWVuc2lvbj4KICAgICAgICAgPGRjOnN1YmplY3Q+CiAgICAgICAgICAgIDxyZGY6QmFnLz4KICAgICAgICAgPC9kYzpzdWJqZWN0PgogICAgICAgICA8eG1wOk1vZGlmeURhdGU+MjAxOC0wOC0xMFQxODowODo4OTwveG1wOk1vZGlmeURhdGU+CiAgICAgICAgIDx4bXA6Q3JlYXRvclRvb2w+UGl4ZWxtYXRvciAzLjM8L3htcDpDcmVhdG9yVG9vbD4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgIDwvcmRmOlJERj4KPC94OnhtcG1ldGE+Ckxt87EAAAS7SURBVGgFzZpdiFVVGIbn5N+IMgVhaRLqWI7mQIJoIVRgOhQZNDAhWcbcVuPV3BRE6I14440iQQSaN0p6kz8zI0k5inUhZSSaYOVYODMo5eiMOOPf+LzH2cPMPmvttdbe53jOBy9rr2+938/ae51vr733qaoqgQwPD68B/wDJfXAP3AE94JMShCy+SxJ9CvSDJFlU7MiPFdsh/hrBdIffBsd48HApJjLPI4tnPThBlFJMZI5HBuWZCIt9AmgEzeAJR6JzHeMadnKI8wbYCz4Fkz18JlNwMgf8BCL5j4O3bVaMdUfEhPZqgv1U7HbEbDvoT7HZOPUYNwAlHheV09a4A3RTgMqtj9QY7JdgeM5i3I4+fDIYrQeq/UnyNYOTlBDtS+BwEjk2doz+KyO2OY5bwVCME+/qylTHT4C1D3k+uB33Yul3ov/eMuajlu1RH+II5wtT4hNNSnQ6U/kzbRkfq351bCfF8apAm7kmvq38njWRK0S305SHcSK5XO4U5O9MBmXWbSe3E6YccialdKzH2TTnQEF10XgZ5DdivsxEhkyxjVdERAwu03xmMiqD7hYx19km4cyHq6KyeHKkWpSz+ciVrHVpRYZk/wLHp0H2bULkNKzt4Eq86TKxLq3IECf6nXwV9QPbAfjHQSfoD7SN6L63gYhvbrkiTwKf/dPYpbdPVxKMnigdg0VAG8FQye8AzBl6aIk2A+wPiNoHd63LNZx3wbUAvz/CfTzJb/43AmkGpLfAi0DPE/NALQgtve+xFPdi5xRiNkHa5ySOJ/TR7RrBJdqL4AAxL+p+8ToYAFklNCnF3pM1KPba2L6v8vons5oPsko9ZyZoa0PsOoKezxoY+y5N5DYHWSvDTXzUMJH7IUkRW0tbyyV0CcfDDKmqDMe1KfqnQyehGNgo9q8p4hWYFGsiBY4fsSK/BRkkaPgj5PhMy720BnVFesfnlKo3Das0bw8XYJf196GEuzWRLSDoRypLg2w06FyqTS6Cx7iK1eeqGqrnugmuBgvB8+A5UAuqQYiU+oZ4h2T+BV3gAlDp/pai0U1rFpVGMAv8AHzFd4vShMOQLcoB+DNB/sSbM3ZoMV4BQsW0adSJSbNp1Hu1mY40/YZxpPdJaUSfFzrBMXAjjQNsdvll6cHCWVvKJIphdhcny11pqmolCk5aIDif0BKdZBucgPlO8kh/r8O4HtwClSCbk86HtQqQuUrvKVCf5OARjt0lll4H/WKKmbS0tmJQKZNQ7nq9+w0n2LhTN04E8jKMPpZ1hcli8tGTZYEYJwJrZQGzchTGz3a2ifwdkHc73LYAfpx6DcWXQK1LeiDsdpFGx7UOwUGQJKpmGyIjjvWh50iSQWzsZ/ofgvx+jnYp+B/YpJcB7QXDBKPJ4JDF6+/oCwoBuhoL36R+Jp4RJH16u2IgaxJpHhMehsBY3wTjV2YbOuuumLHrwCW6msbSj74O/DHGgV4Ohl8Jw1nSMmsB+tL6Wnw83odzBrhEr2GtgvFE8A74ADxtJZZygMC25cjQqBwqdg62qpUlziUP45Cq6OGuqqoUE/FJ8i+v7MpJYvEsHl1A5gNty2vLmaN3bBLdAvqB3svqXxLRvyEuc9zs7SiA+ACpw05pJx8SoAAAAABJRU5ErkJggg==" - webUI["html/img/x_ transparent.png"] = "iVBORw0KGgoAAAANSUhEUgAAAQAAAAEACAYAAABccqhmAAAAAXNSR0IArs4c6QAAAAlwSFlzAAAWJQAAFiUBSVIk8AAAA6ppVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IlhNUCBDb3JlIDUuNC4wIj4KICAgPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIgogICAgICAgICAgICB4bWxuczp0aWZmPSJodHRwOi8vbnMuYWRvYmUuY29tL3RpZmYvMS4wLyIKICAgICAgICAgICAgeG1sbnM6ZXhpZj0iaHR0cDovL25zLmFkb2JlLmNvbS9leGlmLzEuMC8iPgogICAgICAgICA8eG1wOk1vZGlmeURhdGU+MjAxOC0xMS0xNVQxNzoxMTo3NjwveG1wOk1vZGlmeURhdGU+CiAgICAgICAgIDx4bXA6Q3JlYXRvclRvb2w+UGl4ZWxtYXRvciAzLjM8L3htcDpDcmVhdG9yVG9vbD4KICAgICAgICAgPHRpZmY6T3JpZW50YXRpb24+MTwvdGlmZjpPcmllbnRhdGlvbj4KICAgICAgICAgPHRpZmY6Q29tcHJlc3Npb24+NTwvdGlmZjpDb21wcmVzc2lvbj4KICAgICAgICAgPHRpZmY6UmVzb2x1dGlvblVuaXQ+MjwvdGlmZjpSZXNvbHV0aW9uVW5pdD4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+MTQ0PC90aWZmOllSZXNvbHV0aW9uPgogICAgICAgICA8dGlmZjpYUmVzb2x1dGlvbj4xNDQ8L3RpZmY6WFJlc29sdXRpb24+CiAgICAgICAgIDxleGlmOlBpeGVsWERpbWVuc2lvbj4yNTY8L2V4aWY6UGl4ZWxYRGltZW5zaW9uPgogICAgICAgICA8ZXhpZjpDb2xvclNwYWNlPjE8L2V4aWY6Q29sb3JTcGFjZT4KICAgICAgICAgPGV4aWY6UGl4ZWxZRGltZW5zaW9uPjI1NjwvZXhpZjpQaXhlbFlEaW1lbnNpb24+CiAgICAgIDwvcmRmOkRlc2NyaXB0aW9uPgogICA8L3JkZjpSREY+CjwveDp4bXBtZXRhPgoeXQb1AAAaJElEQVR4Ae2dCZhcVZXHz+1KSFiGkISkqyIoOgI68EkgOBNkEcQRlIFRZDGABAQEhInGbxw+RUZRNhWRLawDYR0GHAaHUVkGvwGURUcgwIiAOGxjV3UHAslHQrbuM/9TlQ6d7qruWt527/u/7+uuqvvucu7vvnveuffde54IDxIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARLwiIDzQtayHi0q23shaydCOnlISu7nnWThRdrFOkPWyCleyNqJkF1yjhTd8k6yiDvtuLgLiCR/lVnIZ14keWU7k2Xyuu4oU92r2RazQ+nWypXI4W86zCXbyZ28KBvJ97MtpEhX1gWsyleS08TJU17I2omQKpvLarmqkywyn7ZHPw9rLvTOvwbX6xEyxS3Nenv4oQCcWwmQc/D3dtaBdiyfyv5S1mM7zieLGSzWEsS6KIuiRSzTGTD9H404z1iy80MBWNVL7hn8nx8LhaxlqnKBvKbvyppYHctTM/0nd5xPljNwcrcUs2/6DyL0RwGYxDOcjR3vGBQ+4M8tMElmdQ3n6NGjYPofGE6F6tTESRmm/1xxTuuczWSQH08BhqJbqlNkuTyJoK2GBgf53S6mkrvB+7qZ6b9Gfod6hHv3dzKAGbX9pNvd51N7+WUBGNlJbgm07FH4G/AJdFuyqlwotXFzW8kzk2itXAFZwu38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" - webUI["html/js/logs_ts.js"] = "Y2xhc3MgTG9nIHsNCiAgICBjcmVhdGVMb2coZW50cnkpIHsNCiAgICAgICAgdmFyIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJQUkUiKTsNCiAgICAgICAgaWYgKGVudHJ5LmluZGV4T2YoIldBUk5JTkciKSAhPSAtMSkgew0KICAgICAgICAgICAgZWxlbWVudC5jbGFzc05hbWUgPSAid2FybmluZ01zZyI7DQogICAgICAgIH0NCiAgICAgICAgaWYgKGVudHJ5LmluZGV4T2YoIkVSUk9SIikgIT0gLTEpIHsNCiAgICAgICAgICAgIGVsZW1lbnQuY2xhc3NOYW1lID0gImVycm9yTXNnIjsNCiAgICAgICAgfQ0KICAgICAgICBpZiAoZW50cnkuaW5kZXhPZigiREVCVUciKSAhPSAtMSkgew0KICAgICAgICAgICAgZWxlbWVudC5jbGFzc05hbWUgPSAiZGVidWdNc2ciOw0KICAgICAgICB9DQogICAgICAgIGVsZW1lbnQuaW5uZXJIVE1MID0gZW50cnk7DQogICAgICAgIHJldHVybiBlbGVtZW50Ow0KICAgIH0NCn0NCmZ1bmN0aW9uIHNob3dMb2dzKGJvdHRvbSkgew0KICAgIHZhciBsb2cgPSBuZXcgTG9nKCk7DQogICAgdmFyIGxvZ3MgPSBTRVJWRVJbImxvZyJdWyJsb2ciXTsNCiAgICB2YXIgZGl2ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnRlbnRfbG9nIik7DQogICAgZGl2LmlubmVySFRNTCA9ICIiOw0KICAgIHZhciBrZXlzID0gZ2V0T2JqS2V5cyhsb2dzKTsNCiAgICBrZXlzLmZvckVhY2gobG9nSUQgPT4gew0KICAgICAgICB2YXIgZW50cnkgPSBsb2cuY3JlYXRlTG9nKGxvZ3NbbG9nSURdKTsNCiAgICAgICAgZGl2LmFwcGVuZChlbnRyeSk7DQogICAgfSk7DQogICAgc2V0VGltZW91dChmdW5jdGlvbiAoKSB7DQogICAgICAgIGlmIChib3R0b20gPT0gdHJ1ZSkgew0KICAgICAgICAgICAgdmFyIHdyYXBwZXIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYm94LXdyYXBwZXIiKTsNCiAgICAgICAgICAgIHdyYXBwZXIuc2Nyb2xsVG9wID0gd3JhcHBlci5zY3JvbGxIZWlnaHQ7DQogICAgICAgIH0NCiAgICB9LCAxMCk7DQp9DQpmdW5jdGlvbiByZXNldExvZ3MoKSB7DQogICAgdmFyIGNtZCA9ICJyZXNldExvZ3MiOw0KICAgIHZhciBkYXRhID0gbmV3IE9iamVjdCgpOw0KICAgIHZhciBzZXJ2ZXIgPSBuZXcgU2VydmVyKGNtZCk7DQogICAgc2VydmVyLnJlcXVlc3QoZGF0YSk7DQp9DQo=" - webUI["html/img/logo_b_880x200.jpg"] = "/9j/4AAQSkZJRgABAQABLAEsAAD/4QDIRXhpZgAATU0AKgAAAAgABwESAAMAAAABAAEAAAEaAAUAAAABAAAAYgEbAAUAAAABAAAAagEoAAMAAAABAAIAAAExAAIAAAAPAAAAcgEyAAIAAAAUAAAAgodpAAQAAAABAAAAlgAAAAAAAAEsAAAAAQAAASwAAAABUGl4ZWxtYXRvciAzLjMAADIwMTk6MDg6MDIgMjA6MDg6MTQAAAOgAQADAAAAAQABAACgAgAEAAAAAQAAA3CgAwAEAAAAAQAAAMgAAAAA/+EJkGh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8APD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iWE1QIENvcmUgNS40LjAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcDpDcmVhdG9yVG9vbD0iUGl4ZWxtYXRvciAzLjMiIHhtcDpNb2RpZnlEYXRlPSIyMDE5LTA4LTAyVDIwOjA4OjE0Ii8+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPD94cGFja2V0IGVuZD0idyI/PgD/7QA4UGhvdG9zaG9wIDMuMAA4QklNBAQAAAAAAAA4QklNBCUAAAAAABDUHYzZjwCyBOmACZjs+EJ+/8AAEQgAyANwAwERAAIRAQMRAf/EAB8AAAEFAQEBAQEBAAAAAAAAAAABAgMEBQYHCAkKC//EALUQAAIBAwMCBAMFBQQEAAABfQECAwAEEQUSITFBBhNRYQcicRQygZGhCCNCscEVUtHwJDNicoIJChYXGBkaJSYnKCkqNDU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6g4SFhoeIiYqSk5SVlpeYmZqio6Slpqeoqaqys7S1tre4ubrCw8TFxsfIycrS09TV1tfY2drh4uPk5ebn6Onq8fLz9PX29/j5+v/EAB8BAAMBAQEBAQEBAQEAAAAAAAABAgMEBQYHCAkKC//EALURAAIBAgQEAwQHBQQEAAECdwABAgMRBAUhMQYSQVEHYXETIjKBCBRCkaGxwQkjM1LwFWJy0QoWJDThJfEXGBkaJicoKSo1Njc4OTpDREVGR0hJSlNUVVZXWFlaY2RlZmdoaWpzdHV2d3h5eoKDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uLj5OXm5+jp6vLz9PX29/j5+v/bAEMAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAf/bAEMBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAf/dAAQAbv/aAAwDAQACEQMRAD8A/iHoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKAP/9D+IegAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoA//0f4h6ACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgD//S/iHoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKAP/9P+IegAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoA//1P4h6ACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgDvPDXws+J3jPT31bwf8OfHnivSo7mSyfU/DXhDxBrunpeQpFLNaPe6Xp11bLcxRzwSSQNL5saTROyhZUNAHQf8M//AB4/6In8XP8Aw23jL/5TUAH/AAz/APHj/oifxc/8Nt4y/wDl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f/E3xn4o+IPjnxDLaafp8mveMPGet33iPxNrMlhpNpYaVZPqmtale3z2mmWNlp9s05hsrS2tkjhQA4ygAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgD//S/iHoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAczu+N7M2BgbmLYHoM9BnJxx1/FgBtABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAOLuwVWZiq/dUsSFz12joM4HQduc4FADaACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgD//0/4h6ACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgD//U/iHoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKAP/9X+IegAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoA//1v4h6ACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgD//X/iHoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKAP/9k=" + webUI["html/video/stream-limit.ts"] = "R0AREABC8CUAAcEAAP8B/wAB/IAUSBIBBkZGbXBlZwlTZXJ2aWNlMDF3fEPK//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////9HQAAQAACwDQABwQAAAAHwACqxBLL//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////0dQABAAArASAAHBAADhAPAAG+EA8AAVvU1W////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////R0EAMAdQAAB7DH4AAAAB4AAAgMAKMQAJEKERAAfYYQAAAAEJ8AAAAAFnZAAorNlAeAIn5cBEAAADAAQAAAMAyDxgxlgAAAABaOvjyyLAAAABBgX//6rcRem95tlIt5Ys2CDZI+7veDI2NCAtIGNvcmUgMTUyIHIyODU0IGU5YTU5MDMgLSBILjI2NC9NUEVHLTQgQVZDIGNvZGVjIC0gQ29weWxlZnQgMjAwMy0yMDE3IC0gaHR0cDovL3dHAQARd3cudmlkZW9sYW4ub3JnL3gyNjQuaHRtbCAtIG9wdGlvbnM6IGNhYmFjPTEgcmVmPTMgZGVibG9jaz0xOjA6MCBhbmFseXNlPTB4MzoweDExMyBtZT1oZXggc3VibWU9NyBwc3k9MSBwc3lfcmQ9MS4wMDowLjAwIG1peGVkX3JlZj0xIG1lX3JhbmdlPTE2IGNocm9tYV9tZT0xIHRyZWxsaXM9MSA4eDhkY3Q9MSBjcW09MCBkZUcBABJhZHpvbmU9MjEsMTEgZmFzdF9wc2tpcD0xIGNocm9tYV9xcF9vZmZzZXQ9LTIgdGhyZWFkcz02IGxvb2thaGVhZF90aHJlYWRzPTEgc2xpY2VkX3RocmVhZHM9MCBucj0wIGRlY2ltYXRlPTEgaW50ZXJsYWNlZD0wIGJsdXJheV9jb21wYXQ9MCBjb25zdHJhaW5lZF9pbnRyYT0wIGJmcmFtZXM9MyBiX3B5cmFtaWQ9MiBiX2FkRwEAE2FwdD0xIGJfYmlhcz0wIGRpcmVjdD0xIHdlaWdodGI9MSBvcGVuX2dvcD0wIHdlaWdodHA9MiBrZXlpbnQ9MjUwIGtleWludF9taW49MjUgc2NlbmVjdXQ9NDAgaW50cmFfcmVmcmVzaD0wIHJjX2xvb2thaGVhZD00MCByYz1jcmYgbWJ0cmVlPTEgY3JmPTIzLjAgcWNvbXA9MC42MCBxcG1pbj0wIHFwbWF4PTY5IHFwc3RlcD1HAQAUNCBpcF9yYXRpbz0xLjQwIGFxPTE6MS4wMACAAAABZYiEADv//vdOvwKbVMIqA5JXCvbKpCZZuVJrAfKmAAADAAADAAADAAADAAADAq7aiiFafTJvTQAAAwAAAwAAF1AAAAVUAAADAiYAAAMBNwAAAwDUAAADAMkAAAMA4gAAAwD+AAADATIAAAMCGgAABAQAAAYoAAAOwAAAAwAAAwAAAwAAAwAAAwAAAwAAAwAAAwAAAwAAAwAAA0cBABUAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAA2F55UwH3zADgCn7Xsg5urkZA62Mq62dWKwprJak9U0cjT1Yh9J7WRISuxmagZEf3SG5hJ5glLK+m1DQRdCFD2mN6YZGjkCTKwYyDxKlNHkaW8fuatJR0sAtCoVfOjRr2/NS+bw85zMQI7VFu7+JhD/Go1Q5RgMv5bIq0gpxJKRnF31ojI62CwCRiJ1dHa6nIwcU00zURwEAFhyu6/UdOQ6gXR/Fn3SkmUwkQsjmQF0XEAAAAwAAQkN8C3guxx7g23xd3I1uQvL9Dh+C+fpNfOmVma2q7DiUF3VD8o51I57iYniPq7fe7f2YnPwRwynt2WAsZSjTMgHnGbk5zsyy+rXIMy1p3notBIJkpSBHSuogn9FDL99PItYMLSYCXzbB1ngJo9jnaTgI0b904RmkSjuZtpKyt0ofkYfxNRrztwDGURi3JRPkpuouCWX8KWcxn8NHAQAXWrAsVbXQ0f+vby6QN9oHh0jRsBw7+79AAAsCUlIAAAMAAIGTVQt7SJOBNtpTiAsB1/AzhYzJ8lMVgRENWBT0VBkiPo9+OyjWfg6dlrISORs+GKnEy5aUKA1M9uXDtedogUi7S7uVd54Gj1Qb5NTw4Jix5w1Ejl/de0xvxERyv4b3rmZdsU72FOcfnbK1K8lG4wnxVzYPGiElBGSrNsWNXskCT++8dTbAQv4ejltKQDN2z2xpw5g1CkcBABjFGRM3p9Rp9BGLQ/gaCYSE37IZAAADAFsvgUK7rSLf56T0ZOVulX2oYo74ASEKbonCVfRcGAke05L38QhPtmJ8xRmebFR5/801CbQAWvnAOc2AWgY1coPTdBTZIfsBwU94Gu+qjaoR4dfBX9u8RZXmrbLBCqJ8wTgvf9kJu7/27gcTx8SsJfq40cjhNaRNiof2e8CF4imWObVdvBDpPRxSiR1tsORfA0r+gqjURLyvIwDsE+O9NkeiRwEAGZMG5kW8doFnKjj4QW/OIpFfzF+53Eb4LrnRmrkHqYA/RnqVvBWNpUSFdATxWKzy0MBYRpY4IoUCpCeWwgQ/9Ny0Yi1iQ++wmh1ay/SnYR5B8k+FpDYbWDODuSuCMmrTDKXjicAStFseuB4peB1Ufu7fitj0L0uZzCgGY5zkzbBp3bfXJQEGCnSwEtW+TY50gbhenVCesUfJKjvG6PshP5ScKPdVkZltrS4wx1CntFR+srvN3MjP6p1HAQAaM8+T4dTA6o28g/ki3+J9b5WD8oY+fVgTsb1jfV2GWWd2Hh8JK00uloyX94k2QHGzhbuiS1YKiEdCLz9Pt3RuxuTNm9XSlLwQvyRvfY6sKD8KIinvSq3XP//Kx5Ni82QOXvrn5eEmFlTGuT36Yax5OR4BI3UhdWSGGa0YoqeD7zcvWv64AAANbhz0PNupTjTGu6vxaQq6PcgarV8F7NT0zHSQCZ8KuEFdideJmx4581/BCMYXuJt5cEcBABufpZ3Gzdy5JLw0J2eg1hz70uf/nD82aqNxy/HUvEd6+w5woyIYb7nzl1eo/+ACzPidfiSKydCNxKh9e7tKjNNTJYRX+1f5A398n+2wKJPX7dRmPk4C0j/auaYtAMF+Ft5g6ZqxQuA071fEmj4uiYMR7F+JbZ7CjA98DObmNy/ZWoJQvMrvR3ep5XAmNFkqs1Ma20JWsiikVsr/jblTK0PBVnLul36knafsXUW38/19lMQo0HUcMvrmRwEAHI2OaNsvRTodm5RGcpDEKfXIqXsLfH53r0F3K+sfRvbk3u2ilZd/c5zH95TBbceTvFEt5mD6oPEhxHX3gId6ZBsNNUKUnWDxoX7MaYE38/ELMyIVzRxDCIEkf+q7aY6tcZEMrPBa352hxE6SJ+2y/zlDc8X4jSYerSPRgLBiUm/TSHdm/sHP7d/kl2fmIUNKBbeaghigfwmfDnaZ3wPkRi3oXIp3YypbLYpeup62X805+oYMAgynQd1HAQAdHLgV5nC45givqz8G4AAB0pcgXQpZhwRtJ0wE/aFEPMXugXV9NeZnpzJeXaijTBtaFonT4e+hZZXjLHhxTugKb085RNFOoT0GAB6b2twqc++PKcb796IKMKtNpGaUWjoFvBDGh4HrRguoZWCbLy2RFxUX8SmNUb7qfDXwIi4nY4i89/TcrSc0q64NPWA3SPmQ5D5/ZFbRzBtFuMVVmbEF0cxv9RoqLyW/VGkp+bBAmoMhAw82eI9VskcBAB7bidwIeUDbJvHb2Z8Ep/avJccAh157ZUytHDDW9DhmdbdBzT1TpsJFsFWe8FOQfaNpJVfj2nGqShY4+DhxRYxOpzXw2VF7hQpp6PqFUtyi4ib3VHETkSuHz+2uom/bMRbhw+hQ05xdXOHcFVpih+k58QKrhN+txmOmV3ULdeiVLUplf35jQJTUIZltXjTCZhljRc0sdqOZHDZjy58Sc6hmq8D6lztRR5jN6ifzzKdZbHOpMvK28A4ZRwEAHwyCdGDG4LksEyABPYPnzVuaVJHpUiKgtb3006VleBPo2EZenL5/vyGrjLMas0C6R0iyXZjr0xqvCfaFfxVO/+DQUMKaj0XLNNIrLqXxwzxzy2ENSUjNNySzfvDkpjuJVywa0uwsg60r6EURKgU15gAtbm3Kx4tjb3pRMM8SZHnsN075ztW98+aTrdbRryY9XR74p76dkImiqWIVRQAAAwAAerbiggDgwfd5iHYwqlkEXOqApTuXEhFHAQAQ1PUugOrA4HsFQsLzVf2RjOkhWvlC/kwNqqDXkwlUM6egLoIdgXAyBFgSXuM59iSh6DSi4LwFa/FhyGMrxPV0UF8QD9dGgSeXBUvExQHAGOHz98Mbwm3lBdIzxkzeGLDhi0wZ5SurQPpWomKoDW7t0a+GpQkmCEgVO7iBc/JrOFIt8BBRW1E3EOMv6Wpc5Bw9M2A1XVVaNSFyVkr4bJmsPdNLXAJ4UeKO9R1lUBhl+OhrxoG4RKVHp0cBABF4Om4vKIyHfOkDd6zL8NOXPLL7gS3TIX2EFGJwyyOzsp3WEnvyFp3pujaaLMn/lubQO3uY99+DKi2Io2lBhymLAR6LDBeQ7AhVrgnfiNz91OxGGiYYLcV2yR4f5zrcwMQZNJDrBZZB5gHIDL20vdPnM5RCWlhx/pWX/VbNt2slYDgCwcQp6S/f+sYDWW8d6kKnv4kberk4wmAhuvG6Y9SNfBDQ5l9qn/Obo+/QByc1yiGJRu8Gf6MCRwEAEoe8DYkkVe/6Ixqln5QQ/EQgnqBdcH9XhmfrybwZkozmwKLLqqVJH8KoMeYLCfFbfUaJbcR1M2fwEHGq8BQXjRJFgtHh3lCD2NBLo+9F2kwxA+U6o3SQoAiESygbnYzTRsRmJbxNCRKSLcIhfuhjjCaAi0Icfv4rxjBMuDTA3ZANJ/jmVtzwWUFolUII47bYNLfdylQl/XdlhiHX3vln9Ji8cLEbSL8BMxJ2EI8GBsnrIBeQBPJc+UNHAQATIY6b3+HKasi+GNJ2c21SbezgAtkzMWLCJOnux4sNbrOiNHjom7p+U1hZN9Nr5wuzsM8+1NBBB2pfg3/QKiCYs6b9pduydYs2HEo8FbJJO9uH/yhvTL9d6RHrHf9srnZkSZKhJ7J7mApu4eNNCFusU8sNmfV7H97V1FOBXT/6JShgEQxdnwWdgxDvO8PxjkwuGrYPamKBNG/zRiG5AbW+ikv3OBftfBdhuifSSqoWx0W/XRtyk55S8kcBABTW3x1rkDAHFUfqPG8dZSQWAtnA0fS2fwfdqEGWrbQvYFwWWVcRma+zWJHw2/lVzPD/mSdMieWiX8i5DWTg51gGKy0ftdjOBgAAAwAC/KwTiIpM5clRTlEEi87aAOb87wCHqn1gnPnLGPfQQiw2QYxiClSodV7wEhhJw6ToIwyUjyxYDwVnF2+7eRq7fijw2kLyk5C88BvU1OTdlPGHyBmiT3UXo3I7308/Mn49t3tnXLB8MdaOaVwaRwEAFbiVrH5lksx9oY9DCw61tAqU07scxCL86wtgcyZCmy2ZZ/2W79DRKs2QCu0op9Lw2QYj/OgOj6apaZTOtksj8+VKlTlQQnkV9sFudGr7gpsQoaxBjmrhVk1adbYaFkKCEUYRbDRJpZQDbv1RIRFlY/KmWweiUOZDX+3fplGzJs5LvbvgiM7THIlybfPIXTjS2SPmFm+rQ6T4X9BQocVCjzQvz6g2kp58j9jXT5sBBuu9tC7iTFfMEzZHAQAW0QFraUkCV6gEC2C8wvr2E+hXgJwCskVL+063JAWE9yhGOTyWD/fLQiiuxJ/88Zes8sHmBC+quRzE8SHNO8OIMMptzSvx1i2D8aBb0ksDLYEqwCXN8Lsz+71HkS8SdC0nDGQZqAm7DYd3/uBgR/J4FAOc0jvOUci0tSUbSVn2z+H03GNfHcZ+XgduswjjsUodtsUtRn4nXpryhElgMI3kr2OyFXf92YxZPgbhGubgcNlo+sZ4Z/ApNUcBABeS+kT7jvDiaynYNz51Kc4yccGFoXKWRhGdSRtXJFDck0iJWKT4opQng0gcHiUFaL9bf4jSqm56kxLcQ5YAgHkDZ0UGYh6QEEPPAfCpoDLCF9mL+/OEuHWZ9NOnW7TcJlKbhJOZEKkoE4KW3fDydJ3a3l4IOByTPx5LJAjAZoV1BtKInfF7g5OQU0G5EXJGhFWUsr8Sf48Q9LVjnWvDuawWdWPiS+BcWfUZoGIkK6NoPQR/qL1AIJhcRwEAGAOEUaznr61uMAnNb33549uKjSRk1nM/fUR2BA7+39FhNrmR3taY6qgM804qoHgCSbYS+YIKj8U9vxfATvknbWEZv4JF5hoFJaAN0bNc36f9VcnxAkGsb3r74Yko3jVackXvVrdcN76rT9izohLnH2yQem0zb5wOq7EtjPnGn2t4t4/9JDKIfVb2QikijBu8gHlSjvgVRWSYDIRCi2Zle5MtFyXOaIGwCRAv6PFD6mmJBUT2XimID7tHAQAZOkCES5EDxQ08m+f8cpxKkoyHem8Ex4m8xZ2DA4d39JDH02xtTRRfSfDrC/TqpIjzCtcVv/zzgSflzEbq/UKFH/Z7CbtsrVS2+ll2/CGSNsmOHGi5yrhPM/JSClEmt6IRtyk0FZ3r5cdREJwAKoXP4tNLpfjWSZbATEIGmr+OxqYxQMlzf/93+QrgM/g1HvmPFBPard2U8aKbHTEH3r/kFdkNmlE0EQi5b8TOCYIa/mpuWq/yMn7by0cBABrkhq6Rldw6p3qQyVsZsBpoW3OLgDe/7/pMx+iijZdk9jE9T0fcFh77YVfpjYex2//dcNszIlWr2vl65Z1+0cQQShk/R5GP20mU4dc78l3iyti4DcDCi6PdIU4nzdwZIpGFX9xIuPAHaNfyP4Nyr1K0j9h5STEAHsYX21+iN6CKiuWoWOm3ev+GGzt1NNmtc1W0OYicTiPoIVr1TGzQC+1Nd7izII3tPWn1PEtqM9+fXo32ibSZUvGsRwEAG28xtoQMOBX+QWzc6MLY+xdighCBxpzLcNRK09DBzvBjyt59TqRxzLpeKgJMb4hkrGZnI7ZB7k4WSdssIdlyXiqQOLW68TKxOi/m2l4eAg3OCdiWnrmhOdRSMVLPALUNPDXtBJE5hOD/rtb0FHxtGQKnmP64bBNEEEJCWqJO6W+Gy5Bj/1OPVO5Lb/mGT6SfZVe2RtKnX3ZVDyDZb1jHV0Y6RKS8+Ww1Ya57NIcyPDo3g06Ef4Vi2RpHAQAcWH+V9i+eiLHkvPKkSHT97ZZGFxrcu9T++hegAGupHOjZYoxGWV+zfmemcnV4Qc0p0Sb+bCBN/WYAmY2PsHr+MIroPJIqRxQacYxgv0Eh/ahn4Y8AHjDPnPRprvdugL71ZtfrhmqiLml/RA0I8xMa/JZ4jrmIOqM+Z+fLjB67UYM71w0xjsBG/PgXRORM5Qqkfa6vscWkOW3l2RaUeeyDnUES4bdGUahzOYND5CZ11DaxBi7FZpSS2kcBAB1UDuNag/7CUCi13BGNTDCy03A2H45ho7AAABa85YSo2ddxRWSmP/8M1+fhrnv2TvJk7zHcA5z9BfW6MKcG/ehOV8RoJWUXPPQvUS5U0mqa69CuPBPy9cA1FwAI3ipau/UmVf9WS+R7+XREZCdpkNc5acRUaY6VieEi58Gy3p/q3E9lT4f4oYx563YFbu2Mjwq/dN/ncWug4Nun06Ap71zELPDKDaexmC+kEhaf6dReVEeK+uZfg42ZRwEAHq4bLzMgvrZQb5Neabro0F+gcFiL7UdLm0y8LR7TPvIQ+Kevu6d1BghMMTKxPVSrBVH6F6mATlcYYyhZ6fc7mnHFrpCznzCepMqz3ro5tOUnl9iNq+BQQPFZZlKIVl/GEtg5jzNU88j4KpNvVAoa6Cb/P9X3gWXF7KWmnzgUsZM5mR4GvWJWIcg+IDfe/2FtphXajgL5wfiIK1jzzOr3tQ5xYrVpBvuyKmtdCfIrHoFt4i/42TRgGMJHAQAfCTLHw8EYKGd4hzY41zaYLjR4E4nuBnCtxuCX9FhYm/YnBE6exCJDSBtf1sfFAv5pgAOcF+CZrALrM4tRCUKQs0t0o0+8+ZU1dyyuCLBTtC+vJydoSGmMBg+XNyIPtNEtN7qGS9WWA81qcbxxzsc40CIJf78S26nBKAJuyPu+iX9ANPAyMrgOAVc95U6bJlSjLkP6CXXR2dJRvUv3raWkoAAOjJ71lTFvacoQwhCErx3cbavuczBzJ0cBABB+z7EDY6atdC4NZwX22iBmtZsaHUa3NaBIO7aD08FA7Kd0ugfbomTYomPBMuWwk/b3KMR0uhkyeHKC1RjYo4d/mMo97xS4ix+t+38cwQHmkYQH5Cm1BO6ezuTSevjTojq1hlXD39LxF8a/93o4Tojo+ZmPPJix6BuKlBIwjtpZb0M+nOEX8jPyyd96ytD4eWjOAt/heOiSF9hvmiN50BmkUiITCBF39iClDPO2k/Fag4BqTBbtubcLRwEAEUNMr0m0/lLKJ5ks1W5j+cRzJ3kSK0mRkjrPrr0eWASIwI6LNyATeQMrpq3uWQlAQ+9SdeWmTu5uHTgt+d8sFZe8JXcU+1JnZRSZ9yaoEC0i+bOkGfWyMpA85qtvAlKTBMOm6ub/5NMaKU/VAW9lEvkA9PprSonQVMnG4+BlH2JOh8TsTKkBZPVgILxDM8mFjQXm0TBsezlo4ABKvPWcftdHUaGyF7gP1XbV0exXEHfsSASfYRd0OZZHAQASC+/t5TafeJT36YiEZXYeQH2+IoK6ZxRnFgTmKOGcCCYd3KzwxTJp8XFrSbvg7LzTDnvjGYOaazdnbZt4/Jn3krhhlSRWjhWRqAyxMNVF8n18FXqTzJB1PKNbd7ax8R0AjZfFVC/ycdg6wATRrdRJSofJHpjwYHGQO+L2neTkvCrH/gUPD1U+SjdMlUvLS6vMXop0yzDX/L7HQcLXjKsR2lGDYBlM1UB2WHnq/qPBycWFFtPYyTlN90cBABPvVe8f0oNTNwJhtM/kLJBEZI3ZwCEWYk/wv9hIIWr3A4qkehY4+ptgTX/1///4JZ6dscO9HKuG6puRV3lR4ETvMwdKnHPSHjJF2aQeuvoGeA7yVT+AaeDi7V8ZlVYMc4uVncx1liUQapUssjXpK+2MxWQ7Cb5GU97Drj7W/oPo2Ptldofr3uIe6fvheMu/6aViZagqUWfdOTc0YXVHZzPFok9FEQJUWdUPZiJlfllKLIy/6aAyw8HuRwEAFKEU8CS7kA5ZslGAnKoBbCTNOXl4p9BBgCPqieSBknZibS3PcR/LjWgGifTDu5u2Wj+eAMmSM7P3HMAAAC+T9jKtui2s4cFmXoWX8va4/qVAzxWGs3w547v+Tmac4FyXAqNj0/rFe9k3Egw/P9Q1LxzxwDOEbknnvYdCGAAp8Ivp0KW4t+inn46uKR4RHHa3/VSY8znvIUPdudc1/K0jIEI/Q3pEL9pzjQZxtgqbGfHOMo5yI2dWIDlHAQAV/YbUhbsIYEjAICdYv/AE36OWoooY0Nf/2lmJx7BftLoE1dLDfZKeiAdmrhnpvihEEfTo0MaKnEoSfryZ2OAN9yMb5+fcL8FTpHFFCfvfivNdZyTFOvrxIc3hv+2TavaVMjhtrDqlErqEd/XPoVqKmAeHo/ORSn73CZ/cWNXX0JQ1pRuP8VvL2QwfnG2vq9nTXfiQrMzEeEpNIaeqZS29MfFP8+VCiKyM9p1vNhZC1NItrJ+gsFzJsEcBABbEKpgjE+ovbWLdj0EXyH8KO2Jmn2vTLCKigPqQhq3uaL/6o+uZWDa8dvkxNep66qHmLO7/821Audrn3I6tmZZWSE51J3/XYBVjpW9Fw0Bkr6GpAeDT7ybMGYdKJsd7/WZPZV+Db7zD1ZmulDiRnfN9EmSFStYYD0lEfqrCbP+xQuwtYvfYJsqIvl31t7RBZk/QV2ENWfDLEpMHt5tlrAv5w+3dl1lg2WcrFP2A/7e4sIIyRJo4HsLGRwEAFz/AGCMZq1GUNbPZoNkM+R2je+8sB+Gh/lgSXtAQZK4CwsR8tHn5hyV9QoAAAGJ3xJ/ZGmyBFBfvFt3Yyf/NFoecJXk49dlUxZvTtB0WRCewg6hn1yl3AH406dFPGEk44wMT7vPKyYJW4OT7kiDQvBsdpaU9TmUUKyup1MsILviQKXWAv+kecpWRTY51BniLudSBH3vmnE2l4hUOm7AVWQ3O8V048//RRvDBX7tSPIiWu+MxSSGZfLdHQAARAACwDQABwQAAAAHwACqxBLL//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////0dQABEAArASAAHBAADhAPAAG+EA8AAVvU1W////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////RwEAGO10tGlFAwyE91Tzg8923ovJk1dv2xh1gVlYQFtWdZ6NSQ8vgHM7/tMfIZPsqgCU856rdBJJRMDaor/oWA7pkvSmC2aqaC5fd/mkWUPTuG8fRhGqOY1rKxLNSI3HtTQAcuVBxRM0NfMw0ky/JMJYZiCgXcNsxpxl+khr/9fKtO5Fg2VNBti92xcZimHUZDJMQTBOY6vSR9L1N2O/kJQCpdfuc9bkcUTMjH/es/lAySxvbiislkohqkpHAQAZVatwHI0t9eHCUfDyWUEtuCNyDwQFOVMtaYEQJrTrhQX0VduT86F0u0wN9ag0uPsrmX6Rid/x5S7KI1SkS+qP6cdmgSP57uiF4dG6IKsWNfGBLY09H/CFlrg73WINQkkp2diKkdEmtZetn8+ZAKzR5eXN5FebiKt6pIkNLuSofjosypEs2o6boKsfpmbtOV0idOeWDM9C8EIcn3aZwk1s2KBDvt1DlY+i2Cuvhk3XoKLT+pq/bOC5QkcBABolcOXneZXLoQw9W1PH1f/of92Ytjj8okrWijcQAKlE5l8XoTb9qrOiZnDOhqwcMlB9H9rorq041I89hChohYoSkJElcM8V+r8WYN5axD1BNyfwaHAOm4UN2/VEYOkNSfMjmx2S0WW/F2ha8Jj4fc4QgqcXr+TnnbwqLkLTValK4Qa1pcv7PIbDq6zCUfxe04guZ8xEhPQjp17/G6IB/6uq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wnibxQ/cXEblVnM47wbCN3iy4eHjYB5MoIICrSYmd8nt4V0toLs084KJlmnur5FbApYM4W79ff4oZkW88Cg8Fv8TnWhh1Hqc4UlhMbRKm2QxDgfBxar3U7BwNR6prrXXjqfR7ja3tPli+H7Jez/xcTg32QpHAQAdTa7pSSgBvmOqzz175NAFIhwE9p3d71F9jLvhaPv8q1iKopL0kizwzEWElnXWmNhfLkl/Au8KujnoKUaxVdTe+zAZm2dOkejnpNVtVj0Aw9wKcG3ZQ1iRZrUFRIoPKYlmR+oi0LrupuhYABtgPbdCbDtezGTr0nw9wVd/rZ6V+1wcoJ6+8VAVueIdwI3brqm6EoFHiI8L6lER+9SefB8fHo4NYgr/I8jSxaa/2PLX2K/DjrlY6bN8fEcBAB7DXsuh8DITF6CYWj2HTFvqfzlic3QHXnHtvsTFNpyVY1LY8y/fRK2mwALN6IB5W3OuyoKiA3K0lJdQUv2gYhHWvPTV218HYrD0rkbMxRH0SiEEkrHDeOt5T1HtWD13D2/QvMu535fsfZyeaFDjdCE9M0Xi8Lfc7Xj1ZNGend7Jo7/cEiczFkc1vB4z2JpFGZreV2EdquyEzC2STFJtfimyx8QlLngEuR1cxH+lWEcFX+mvBa/eqktIRwEAH6VazFLPNsnHZqsI66TVoArQuUUGFAzr8MT8GZ9V6qpZa5D0jA/4eGi6Kq0smUgRExnqIbSMLWqDf/Pk2YT3MpHTu9VE3Dn9blgB6KsVIkWnB98Y2n/6DrZDcF94Ndu0Ka4U/RZwdV5O5KcO+lU2ZiIOYTYZ6Ie0d+tApxYxJ+YmxaDoCyRNe6crw/yzR5SflT8ddi/E2BM+l+nwVDiKZ/714fmrBxFKWuqLiQNHV19o1cZ8Ubun+ZtHQAASAACwDQABwQAAAAHwACqxBLL//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////0dQABIAArASAAHBAADhAPAAG+EA8AAVvU1W////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////RwEAEH1s3BdtHdF1ln55B24wdACF/ggcRtPmB4IUB6cZJ+m32I4R48ZkdhAFBulgWcsv0wZwH0o1yi3i4qm3rJ98AUKdB9PsNyG9gURV0bTw4myAj6g5Dgodfv6w9bsbOxsGUWkvgAJ3rrR010BvZbIa6CMRCQRjxkCfRF77ansRJZT0JzhtYeSS/ZJob8Rr2jrng3W2rkmHtE+rdqlPiHxmwkRZvYGhBxwiJO2L6f+l/cABsfs09rA+A0pHAQAREZay3TBUIAfMWhApE+LaPgeyOYtaPFONA9aC0h4QrFkaLZfb86678MK+zLgqDBsDoj50eZHMVcczRjs4sYlv7RG8RIWKb5lB9Kn/8+CkxiiA11cHH1yzLX2SKCmhsak/+P/zYQ1EDvEj33bl9e3Jd62cTI+Qw99KrsWnUMN8hFNeXzoGHA3aec+Li4NFboF8sa6lCPR6Csxsvxw8DJaWCnER5Z0p+nKhXavF/eNHQ0DX47ohycc87UcBABKsYHCHXXe3vK1cFYDWO6rhwM6hxCdJ+/X+VB1akQejL6iBMdUPuadUqBnbprwJM0dWpSSn9uuZZeqe46iZOGIJUo69d8x+ZSvPcBH/dK1Y0LJnoWdgWH51SQg7eYqcwjQW3BOy7ZF02Hn1EhTuhsN7ms8zv3WIeEBDBq0T3Idl+Tmw9iJU9skVYiwygHG2+0XwrLa6y+uiQPwMzrnEr1kuf24XoAqrJTZQiVH3aQF4d94yDreWu2KPRwEAE2FsynHZaUcBXEFbeX0nSxZ7sRcRjJvc7RYOny6N8QFwKDVO7jpRWWYM55kuepBOyZ+7BFYeG+FU1kR+ZfmqyDNkD4D1IPwNh6u9JQxDymfN/aMcQC3WxdvCKquPsAut6dugpGkOFtIe+W3ayc4V/J978P+h1EDFMbFjxRPuXht0K2dBQZCJ0ybISUDqWzhPuep8CdxSU4MvMVfdXh7FLl/BqKJUTT+vM+Pz3XnqCQQmH5TjQ4CK55VHAQAUEtgfkBwIYgtwHkhjmtLw7HNTeJeMfTjATEKcyuKzItSeYxHBmGzQ/+G2otpPCOkVAXJ9mfx7LxrW4joZ0ttTRQJ/wqMUK1IN349LiJoo8y/+FwN4jPNDwIleJG697riqnmLOweFW8spHKLBfnHcyC1pG6EIxFpTqUQ0KHqXD/KXIHKioJNAOVwQ1Gfloxebo/Tdtd00dpHP3gcsAOnV75APCYOjVIlwm2X6ViDeZw6Btdb/Br/+yokcBABU3+eOESLlneGbR5SLiL8wPkoRaZ5X7xFlMTMvsv9yHk26bVdmsubSdbYS1Hy64n0+NnL7C1aLD7aJxOudMjVW5goZbfO2KxBQkCD4HFA284wbaB5vOL7mRilCn6YEs1kiwf22+fBLNUmXDb2p353wrD/ygTDhlki66USvUmd/ZAs9uzAddegEzy7Xn00YysWTu/hegYyZtWFC+X5dhLubWJ7n96y5wjrP7PAOXoQQtFUH9j/rBiP/7RwEAFnL/wYKYuj80mPGtimSbF/E9K7XwjwBz8yHZubmVMTCmwkZBM4h0FR1thnUGiSjqjJT6SfunWCZ/dZDQplrzS00UKcUP399SyM+nNG1br8Za0ZYwWch8nyLHYXSRuxdnrfUUespsOQo1cWSLGf0pV2HIcHoiAAEKwPU6irB5BSoFvB1qKVjgEk+QwAEYAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAABHAQA3pAD/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////AwAAAwAAAwAAAwAAAwAAAwBbwUdBABgAAAHgAACAwAoxAAmBIREAB/SBAAAAAQnwAAAAAUGaJGxDv/6plgAAAwAAAwAAAwAAAwAAAwAAAwAAAwAKCKB0AIhy1ftwLNISWucTFC7xeBcaIzP3oZjZo8uT9hqZVstWGnrPz+vjaA5FuCO+K2w7/o39LygDO7aL+0zSrN90LW7r133x8+f+PEKk8d7pd2fj4RYuMOXOYunzFzRX/4IvR1XsK5WJYwVkOca3yfo7DTvUBP9rgSiTRwEAGQD6CFK1PBC4qYCa+coLVnX+jgODNrau5YJXIekDI4+wUNV+5T5HE4e2t5EGAjn77+kC1Vghmvx8KqPnylVUvsaTofheggxHsPuxn1zQt6nA59UglrRUMn8b4pmrvfqTBSqU949+AcNAI6M/eAqz6r0RG5KNeBhx8R2f0x2kujwHU3pc3rlPb6ZrFM/2HiG97eEIezrvWFG7YAAAAwAAAwAE1KRo1VfbdZQ/tOpNGxFmTcQoFidyD2tHAQAapTTIErUKA2Rc9uIzGJu+oW0uNOxRyl6oJNUNJp5L9TIshNS1CmUKgdCaE3LkLwdE8iUkUnIGfWLiWpWmjzsINYC8dnDaSptB53yJkBu0SsR00oo1PZ0pl4ZzoXGSYQJTPaVCbj6FNqm5wcnUqKTB/rgHdPdnDj0K8asLABeo/n3XCXrDorI+LYSD1FBgmV9O7RZdjfL0NnXOQkiq/ZGirwVV0cUF1aHtZx1yHlAAZKuuu7TqB13CAUcBADuRAP///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////yj/IrOvAEoXDNGy+nrxWN0l8cmuqWYaUJpuM9XgAAADAAADAAKmR0EAPAcQAACJHH4AAAAB4AAAgMAKMQAJSOERAAkQoQAAAAEJ8AAAAAFBnkJ4hf8AAAMAAAMAAAMAAAMAAAMAAAMAAAMAC/BmhyuvLmkCgKTgACEXfOVvHRHdpBEEmTTz9pIZCa2FD0CXukzDCakOHekTpJQSdsfd7a/jjM1/5lBtKCAGQ6zOCSQ6DeKtyw+CugDuuglGipwmvQW+FIDjnZ6HRd0uaSOGy6VB3h9MI1o4nqaCqVwwIgubYZFHAQA9XgD////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////WcZrO6BEiqf8pCxYwlz2mkdUzY/ipM/TIHS4m5xQAAAMAAAMAAA5sVm90p14dlvWgBgY7XQ9KVOJKLtaMAN5KiffVQtNuzW5DfL+RewZpAAADAAADAAAQMUdBAB4AAAHgAACAgAUhAAkswQAAAAEJ8AAAAAEBnmF0Qr8AAAMAAAMAAAMAAAMAAAMAAAMAAAMAABJfBjP2+4+W7ZybyT130+Ma4WSqICfd/dS4YtjrLlmh5VBlfrtwJqdN1PBTYDkwGOOONqZQeFN6lLGJoDzvuh3kv1aDBLqug+JhvrSeu5ebnvcrtQzb2REwJL3h9mvtkr0WfDu4AAADAAADAAs32Y4C/6Ns79oCGj6oqLltY3T4I0/QRwEAP5wA//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////8BeoWLRnKQmVgO/RBoBfcK85AAAAMAAAMACFhHQQAwBxAAAJcsfgAAAAHgAACAwAoxAAllAREACUjhAAAAAQnwAAAAAQGeY2pCvwAAAwAAAwAAAwAAAwAAAwAAAwAAAwAAEmDKfLGXsvBBQPNYXlEd6WueJ4deApfcHESlG+7V6u0AiWQqJvNZYM+3Js3Lj9Ldc9yYIHqruVwfMtCYGlX3wMavI/DrhMuJw+RreIF8SKsJD8CMccAAAAMAAAMACrFZOBgEqaP/8EyWsAHV6CgcAgfyox/roEcBADGuAP//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////AAADAAADAHTBR0EAEgAAAeAAAIDACjEACfGhEQAJZQEAAAABCfAAAAABQZpoSahBaJlMCHf//qmWAAADAAADAAADAAADAAADAAADAAADAAALf8A2bry6lUyIAQGNFfVK2Cd7h4qDqmqpvmXfkfTwo2Ab79AHhajxJ4MPWIgAAA84xLRIx7I2CrWjWe96OvgkzgS9mtvhuxdzAgpuIOJI3DEY9mviDDZz8XSAAAADAAADAB7AZkj9AAHHGvk+Pzlku8UkWa5HAQAzogD//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////6HjAkbF/gsWuvw4QAAAAwAAAwAccUdBADQHEAAApTx+AAAAAeAAAIDACjEACblhEQAJgSEAAAABCfAAAAABQZ6GRREsL/8AAAMAAAMAAAMAAAMAAAMAAAMAAAMAAA3URJB/3lMHSmOd0GYZnfpoR80WdqxlyHzPX+V81VUMeXIGrRgq5agd+ACdjoGI036yQ/rmpGw0CmMBrKwpI+nwFo3SP0s1rI2yHBZaiPJjSUgw33rBkxXcq55kfLf2sAAAAwAAAwACBWolidWDnIeQAAADRwEANbEA//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////8AAAMADulHQQA2NAD///////////////////////////////////////////////////////////////////8AAAHgAACAgAUhAAmdQQAAAAEJ8AAAAAEBnqV0Qr8AAAMAAAMAAAMAAAMAAAMAAAMAAAMAABJXNihCnx11JUosH2hBE53O/YN+GPHqcnJiQBIf3maTAAj5iRt+7GYUKBAU9iCXTiouCjGYgAAAAwAAAwA9p4HQBg2cAAADAAADAADGgUdBADc4EAAAs0x+AP////////////////////////////////////////////////////////////////8AAAHgAACAwAoxAAnVgREACblhAAAAAQnwAAAAAQGep2pCvwAAAwAAAwAAAwAAAwAAAwAAAwAAAwAAAwBR6/L83y+ZevtMZ0FW4lp8qV7fVXQAhLAWlS6mDxvpaSUgChorvgTMXtxJEIAAAAMAAAMACqFCAAADAAADAAADAAz4R0EAOCsA////////////////////////////////////////////////////////AAAB4AAAgMAKMQALYiERAAnVgQAAAAEJ8AAAAAFBmqxJqEFsmUwId//+qZYAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAApQTq0hABLvkcWCYrAaRRPNDrECJGlF/11BYvG9+JJ9Y86nxnmQzPxtAAe1UgOsXAAADAAADAAADAAADAAADAAADAAADA/JHQQA5JhAAAMFcfgD/////////////////////////////////////////AAAB4AAAgMAKMQALKeERAAnxoQAAAAEJ8AAAAAFBnspFFSwv/wAAAwAAAwAAAwAAAwAAAwAAAwAAAwAADdRFmvrVE0KXDOGwWddlwYa1foib7tXZKmkua6R4APb4b8+tXwdSNNqgf2IVNwGTohgQAcMvp6SiQxpiQym4AAADAAADAANUNUAAAAMAAAMAAAMBN0dBADo8AP//////////////////////////////////////////////////////////////////////////////AAAB4AAAgIAFIQALDcEAAAABCfAAAAABAZ7pdEK/AAADAAADAAADAAADAAADAAADAAADAAADAFHTAfujIUaaLSuklb9y0/so9AEtQAqkAxOviALQZ5jNt/iOkABrCOZ4md0iUnFwAAADAAADAALwckAAAAMAAAMAAATcR0EAO0IQAADPbH4A//////////////////////////////////////////////////////////////////////////////8AAAHgAACAwAoxAAtGAREACynhAAAAAQnwAAAAAQGe62pCvwAAAwAAAwAAAwAAAwAAAwAAAwAAAwAAAwBR6/L83y+WryR9gmVKPGbIhJpkgAFgHCej3gB6rAHPgHHAAAADAAADAAAYIV0AAAMAAAMAAAMABnxHQQA8UQD//////////////////////////////////////////////////////////////////////////////////////////////////////////wAAAeAAAIDACjEAC9KhEQALRgEAAAABCfAAAAABQZrwSahBbJlMCG///qeEAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAAZ8UdBAD00EAAA3Xx+AP///////////////////////////////////////////////////////////wAAAeAAAIDACjEAC5phEQALYiEAAAABCfAAAAABQZ8ORRUsL/8AAAMAAAMAAAMAAAMAAAMAAAMAAAMAAA3URZr61RNClwzhI2ZXdRHYLZWc1yTgKRhTIXBNABHQKIIyYNyc+AaEn1jhATEAAAMAAAMAAAMAckkIAAADAAADAAADAEbBR0EAPkYA////////////////////////////////////////////////////////////////////////////////////////////AAAB4AAAgIAFIQALfkEAAAABCfAAAAABAZ8tdEK/AAADAAADAAADAAADAAADAAADAAADAAADAFHTAfujIUAYRtY0f/43cIs2OjxACR2hMR1QBGYX+34JGAAAAwAAAwAAAwKEJ6AAAAMAAAMAAAMA3oFHQQA/QhAAAOuMfgD//////////////////////////////////////////////////////////////////////////////wAAAeAAAIDACjEAC7aBEQALmmEAAAABCfAAAAABAZ8vakK/AAADAAADAAADAAADAAADAAADAAADAAADAFHr8vzfL5avJH2CZUo8ZsiEmmSAAWAcJ6PeAHqsAc+AccAAAAMAAAMAABghXQAAAwAAAwAAAwAGfEdBADBRAP//////////////////////////////////////////////////////////////////////////////////////////////////////////AAAB4AAAgMAKMQANQyERAAu2gQAAAAEJ8AAAAAFBmzRJqEFsmUwIZ//+nhAAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAGVAR0EAMTQQAAD5nH4A////////////////////////////////////////////////////////////AAAB4AAAgMAKMQANCuERAAvSoQAAAAEJ8AAAAAFBn1JFFSwv/wAAAwAAAwAAAwAAAwAAAwAAAwAAAwAADdRFmvrVE0KXDOEjZld1EdgtlZzXJOApGFMhcE0AEdAogjJg3Jz4BoSfWOEBMQAAAwAAAwAAAwBySQgAAAMAAAMAAAMARsFHQQAyRgD///////////////////////////////////////////////////////////////////////////////////////////8AAAHgAACAgAUhAAvuwQAAAAEJ8AAAAAEBn3F0Qr8AAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAUdMB+6MhQBhG1jR//jdwizY6PEAJHaExHVAEZhf7fgkYAAADAAADAAADAoQnoAAAAwAAAwAAAwDegEdBADNCEAABB6x+AP//////////////////////////////////////////////////////////////////////////////AAAB4AAAgMAKMQANJwERAA0K4QAAAAEJ8AAAAAEBn3NqQr8AAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAUevy/N8vlq8kfYJlSjxmyISaZIABYBwno94AeqwBz4BxwAAAAwAAAwAAGCFdAAADAAADAAADAAZ8R0EANFIA////////////////////////////////////////////////////////////////////////////////////////////////////////////AAAB4AAAgMAKMQANs6ERAA0nAQAAAAEJ8AAAAAFBm3hJqEFsmUwIV//+OEAAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAYtHQQA1NBAAARW8fgD///////////////////////////////////////////////////////////8AAAHgAACAwAoxAA17YREADUMhAAAAAQnwAAAAAUGflkUVLC//AAADAAADAAADAAADAAADAAADAAADAAAN1EWa+tUTQpcM4SNmV3UR2C2VnNck4CkYUyFwTQAR0CiCMmDcnPgGhJ9Y4QExAAADAAADAAADAHJJCAAAAwAAAwAAAwBGwEdBADZGAP///////////////////////////////////////////////////////////////////////////////////////////wAAAeAAAICABSEADV9BAAAAAQnwAAAAAQGftXRCvwAAAwAAAwAAAwAAAwAAAwAAAwAAAwAAAwBR0wH7oyFAGEbWNH/+N3CLNjo8QAkdoTEdUARmF/t+CRgAAAMAAAMAAAMChCegAAADAAADAAADAN6BR0EAN0IQAAEjzH4A//////////////////////////////////////////////////////////////////////////////8AAAHgAACAwAoxAA2XgREADXthAAAAAQnwAAAAAQGft2pCvwAAAwAAAwAAAwAAAwAAAwAAAwAAAwAAAwBR6/L83y+WryR9gmVKPGbIhJpkgAFgHCej3gB6rAHPgHHAAAADAAADAAAYIV0AAAMAAAMAAAMABn0=" } From 866b55b44cae2fb8af048c7faba02c9ddef58a22 Mon Sep 17 00:00:00 2001 From: SCP002 Date: Wed, 30 Mar 2022 14:38:03 +0300 Subject: [PATCH 057/189] Fallback to default temp dir if specified is not found --- src/data.go | 7 ++++++- src/screen.go | 3 +++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/src/data.go b/src/data.go index 06343ab..af22646 100644 --- a/src/data.go +++ b/src/data.go @@ -98,7 +98,12 @@ func updateServerSettings(request RequestStruct) (settings SettingsStruct, err e } if err != nil { - return + showWarning(1015) + value = os.TempDir() + string(os.PathSeparator) + err = checkFilePermission(value.(string)) + if err != nil { + return + } } case "ffmpeg.path", "vlc.path": diff --git a/src/screen.go b/src/screen.go index 0cc3229..cf2db22 100644 --- a/src/screen.go +++ b/src/screen.go @@ -3,6 +3,7 @@ package src import ( "fmt" "log" + "os" "runtime" "strconv" "strings" @@ -247,6 +248,8 @@ func getErrMsg(errCode int) (errMsg string) { errMsg = fmt.Sprintf("Invalid settings file (settings.json), file must be at least version %s", System.Compatibility) case 1014: errMsg = fmt.Sprintf("Invalid filter rule") + case 1015: + errMsg = fmt.Sprintf("Specified temp folder path is invalid, fallback to %s", os.TempDir()) case 1020: errMsg = fmt.Sprintf("Data could not be saved, invalid keyword") From d2021692bca2477aa1c87f3fc0ca141bffce70c1 Mon Sep 17 00:00:00 2001 From: SCP002 Date: Wed, 30 Mar 2022 17:16:28 +0300 Subject: [PATCH 058/189] Fix on restore backup program search restore.zip at folder with wrong UUID --- src/system.go | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/system.go b/src/system.go index a355d82..73964a5 100644 --- a/src/system.go +++ b/src/system.go @@ -201,6 +201,10 @@ func saveSettings(settings SettingsStruct) (err error) { settings.BufferTimeout = 0 } + if System.Dev == true { + Settings.UUID = "2019-01-DEV-xTeVe!" + } + System.Folder.Temp = settings.TempPath + settings.UUID + string(os.PathSeparator) err = writeByteToFile(System.File.Settings, []byte(mapToJSON(settings))) @@ -210,10 +214,6 @@ func saveSettings(settings SettingsStruct) (err error) { Settings = settings - if System.Dev == true { - Settings.UUID = "2019-01-DEV-xTeVe!" - } - setDeviceID() return From 17c424da73e055b0fcd60c9e811b3ace083df178 Mon Sep 17 00:00:00 2001 From: SCP002 Date: Wed, 30 Mar 2022 17:19:19 +0300 Subject: [PATCH 059/189] Increase program version to "2.2.3.0000" --- xteve.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/xteve.go b/xteve.go index 5d5783c..41a432b 100644 --- a/xteve.go +++ b/xteve.go @@ -39,7 +39,7 @@ var GitHub = GitHubStruct{Branch: "master", User: "SCP002", Repo: "xTeVe", Updat const Name = "xTeVe" // Version : Version, the Build Number is parsed in the main func -const Version = "2.2.2.0300" +const Version = "2.2.3.0000" // DBVersion : Database Version const DBVersion = "2.1.1" From d5dd00ef41a57a9ead53532ce966e57d4560f6a2 Mon Sep 17 00:00:00 2001 From: SCP002 Date: Fri, 1 Apr 2022 11:13:37 +0300 Subject: [PATCH 060/189] Remove old data in settings before recovering from backup. Closes #9 --- src/backup.go | 4 ++++ src/data.go | 2 +- src/screen.go | 2 ++ 3 files changed, 7 insertions(+), 1 deletion(-) diff --git a/src/backup.go b/src/backup.go index 6031ebd..06946f5 100644 --- a/src/backup.go +++ b/src/backup.go @@ -155,6 +155,10 @@ func xteveRestore(archive string) (newWebURL string, err error) { return } + if err = os.RemoveAll(System.Folder.Config); err != nil { + ShowError(err, 1073) + } + // Extract the ZIP Archive into the Config Folder err = extractZIP(archive, System.Folder.Config) if err != nil { diff --git a/src/data.go b/src/data.go index af22646..5bacbe9 100644 --- a/src/data.go +++ b/src/data.go @@ -98,7 +98,7 @@ func updateServerSettings(request RequestStruct) (settings SettingsStruct, err e } if err != nil { - showWarning(1015) + ShowError(err, 1015) value = os.TempDir() + string(os.PathSeparator) err = checkFilePermission(value.(string)) if err != nil { diff --git a/src/screen.go b/src/screen.go index cf2db22..e0dedaf 100644 --- a/src/screen.go +++ b/src/screen.go @@ -274,6 +274,8 @@ func getErrMsg(errCode int) (errMsg string) { errMsg = fmt.Sprintf("File could not be created") case 1072: errMsg = fmt.Sprintf("File not found") + case 1073: + errMsg = fmt.Sprintf("Can not remove old config folder before recover") // Backup case 1090: From c6859b53d7be3ae2f8296698e194eae20084fa1c Mon Sep 17 00:00:00 2001 From: SCP002 Date: Fri, 1 Apr 2022 11:45:09 +0300 Subject: [PATCH 061/189] Remove old settings folder contents but not itself before recover. --- src/backup.go | 2 +- src/screen.go | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/backup.go b/src/backup.go index 06946f5..77b49c3 100644 --- a/src/backup.go +++ b/src/backup.go @@ -155,7 +155,7 @@ func xteveRestore(archive string) (newWebURL string, err error) { return } - if err = os.RemoveAll(System.Folder.Config); err != nil { + if err = removeChildItems(getPlatformPath(System.Folder.Config)); err != nil { ShowError(err, 1073) } diff --git a/src/screen.go b/src/screen.go index e0dedaf..37a0331 100644 --- a/src/screen.go +++ b/src/screen.go @@ -275,7 +275,7 @@ func getErrMsg(errCode int) (errMsg string) { case 1072: errMsg = fmt.Sprintf("File not found") case 1073: - errMsg = fmt.Sprintf("Can not remove old config folder before recover") + errMsg = fmt.Sprintf("Can not remove old config folder contents before recover") // Backup case 1090: From a53bc744af3a71f3df6fb6fbdfc2c9a622c7078e Mon Sep 17 00:00:00 2001 From: SCP002 Date: Sat, 2 Apr 2022 21:14:44 +0300 Subject: [PATCH 062/189] When loading settings from file, version number gets overriden by the current one. Closes #10 --- src/system.go | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/system.go b/src/system.go index 73964a5..6b72779 100644 --- a/src/system.go +++ b/src/system.go @@ -170,8 +170,6 @@ func loadSettings() (settings SettingsStruct, err error) { settings.VLCPath = searchFileInOS("cvlc") } - settings.Version = System.DBVersion - err = saveSettings(settings) // Warning if FFmpeg was not found From 265c63e24761d58c1d79cfcff59c533dabf8a7f2 Mon Sep 17 00:00:00 2001 From: SCP002 Date: Sun, 3 Apr 2022 08:05:57 +0300 Subject: [PATCH 063/189] Defer close zip file reader in extractZIP(). Closes #11 --- src/compression.go | 1 + 1 file changed, 1 insertion(+) diff --git a/src/compression.go b/src/compression.go index 83b19c5..67fbc89 100644 --- a/src/compression.go +++ b/src/compression.go @@ -86,6 +86,7 @@ func extractZIP(archive, target string) (err error) { if err != nil { return err } + defer reader.Close() if err := os.MkdirAll(target, 0755); err != nil { return err From ba7bbe3c6066bb04b027a4eb14096a92060930f0 Mon Sep 17 00:00:00 2001 From: SCP002 Date: Sun, 3 Apr 2022 19:29:27 +0300 Subject: [PATCH 064/189] Remove temporary archive after restore + remove temporary folder even if port has not changed. Closes #12 --- src/backup.go | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/backup.go b/src/backup.go index 77b49c3..e69ab2c 100644 --- a/src/backup.go +++ b/src/backup.go @@ -131,6 +131,9 @@ func xteveRestore(archive string) (newWebURL string, err error) { tmpRestore = System.Folder.Temp + "restore" + string(os.PathSeparator) + defer os.RemoveAll(tmpRestore) + defer os.Remove(archive) + err = checkFolder(tmpRestore) if err != nil { return @@ -201,8 +204,6 @@ func xteveRestore(archive string) (newWebURL string, err error) { var url = System.URLBase + "/web/" newWebURL = strings.Replace(url, ":"+oldPort, ":"+newPort, 1) - os.RemoveAll(tmpRestore) - return } From ac269c10c648c1ae23e40c627d5ab0ac400816d2 Mon Sep 17 00:00:00 2001 From: SCP002 Date: Mon, 4 Apr 2022 17:28:07 +0300 Subject: [PATCH 065/189] Create getDefaultTempDir and getValidTempDir functions. Closes #13 --- src/config.go | 5 +---- src/data.go | 20 +------------------- src/system.go | 5 +++-- src/toolchain.go | 34 ++++++++++++++++++++++++++++++++++ 4 files changed, 39 insertions(+), 25 deletions(-) diff --git a/src/config.go b/src/config.go index 57dc8fc..486d418 100644 --- a/src/config.go +++ b/src/config.go @@ -63,9 +63,6 @@ func Init() (err error) { System.Update.Name = "xteve_2" // Define folder paths - var tempFolder = os.TempDir() + string(os.PathSeparator) + System.AppName + string(os.PathSeparator) - tempFolder = getPlatformPath(strings.Replace(tempFolder, "//", "/", -1)) - if len(System.Folder.Config) == 0 { System.Folder.Config = GetUserHomeDirectory() + string(os.PathSeparator) + "." + System.AppName + string(os.PathSeparator) } else { @@ -79,7 +76,7 @@ func Init() (err error) { System.Folder.Cache = System.Folder.Config + "cache" + string(os.PathSeparator) System.Folder.ImagesCache = System.Folder.Cache + "images" + string(os.PathSeparator) System.Folder.ImagesUpload = System.Folder.Data + "images" + string(os.PathSeparator) - System.Folder.Temp = tempFolder + System.Folder.Temp = getDefaultTempDir() // Dev Info showDevInfo() diff --git a/src/data.go b/src/data.go index 5bacbe9..69a1b23 100644 --- a/src/data.go +++ b/src/data.go @@ -86,25 +86,7 @@ func updateServerSettings(request RequestStruct) (settings SettingsStruct, err e } case "temp.path": - value = strings.TrimRight(value.(string), string(os.PathSeparator)) + string(os.PathSeparator) - err = checkFolder(value.(string)) - if err == nil { - - err = checkFilePermission(value.(string)) - if err != nil { - return - } - - } - - if err != nil { - ShowError(err, 1015) - value = os.TempDir() + string(os.PathSeparator) - err = checkFilePermission(value.(string)) - if err != nil { - return - } - } + value = getValidTempDir(value.(string)) case "ffmpeg.path", "vlc.path": var path = value.(string) diff --git a/src/system.go b/src/system.go index 6b72779..dbf14f5 100644 --- a/src/system.go +++ b/src/system.go @@ -4,7 +4,6 @@ import ( "encoding/json" "errors" "fmt" - "os" "reflect" "strings" "time" @@ -170,6 +169,8 @@ func loadSettings() (settings SettingsStruct, err error) { settings.VLCPath = searchFileInOS("cvlc") } + settings.TempPath = getValidTempDir(settings.TempPath) + err = saveSettings(settings) // Warning if FFmpeg was not found @@ -203,7 +204,7 @@ func saveSettings(settings SettingsStruct) (err error) { Settings.UUID = "2019-01-DEV-xTeVe!" } - System.Folder.Temp = settings.TempPath + settings.UUID + string(os.PathSeparator) + System.Folder.Temp = getValidTempDir(settings.TempPath + settings.UUID) err = writeByteToFile(System.File.Settings, []byte(mapToJSON(settings))) if err != nil { diff --git a/src/toolchain.go b/src/toolchain.go index c2bf8aa..e891905 100644 --- a/src/toolchain.go +++ b/src/toolchain.go @@ -110,6 +110,40 @@ func getPlatformPath(path string) string { return filepath.Dir(path) + string(os.PathSeparator) } +// getDefaultTempDir returns default temporary folder path + application name, e.g.: "/tmp/xteve/" or %Tmp%\xteve. +// +// Function assumes default OS temporary folder exists and writable. +func getDefaultTempDir() string { + return os.TempDir() + string(os.PathSeparator) + System.AppName + string(os.PathSeparator) +} + +// getValidTempDir returns standartized temporary folder with trailing path separator: +// +// Slashes will be replaced with OS specific ones and duplicated slashes removed. +// +// On Windows, "/tmp" will be replaced with expanded system environment variable %Tmp%. +func getValidTempDir(path string) string { + if runtime.GOOS == "windows" { + if strings.HasPrefix(path, "/tmp") { + path = strings.Replace(path, "/tmp", os.TempDir(), 1) + } + } + path = filepath.Clean(path) + path = path + string(os.PathSeparator) + + err := checkFolder(path) + if err == nil { + err = checkFilePermission(path) + } + + if err != nil { + ShowError(err, 1015) + path = getDefaultTempDir() + } + + return path +} + // Generate File Path for the running OS func getPlatformFile(filename string) (osFilePath string) { From 755bd524cbe3416724e9581886597b7c459246a6 Mon Sep 17 00:00:00 2001 From: SCP002 Date: Wed, 6 Apr 2022 15:54:31 +0300 Subject: [PATCH 066/189] Clear malformed XEPG database in conditionalUpdateChanges() function. Increae program and database versions. Closes #6 --- src/screen.go | 2 ++ src/update.go | 28 +++++++++++++++++++++++++++- xteve.go | 4 ++-- 3 files changed, 31 insertions(+), 3 deletions(-) diff --git a/src/screen.go b/src/screen.go index 37a0331..d4d5f3c 100644 --- a/src/screen.go +++ b/src/screen.go @@ -322,6 +322,8 @@ func getErrMsg(errCode int) (errMsg string) { errMsg = fmt.Sprintf("FFmpeg binary was not found. Check the FFmpeg binary path in the xTeVe settings.") case 2021: errMsg = fmt.Sprintf("VLC binary was not found. Check the VLC path binary in the xTeVe settings.") + case 2022: + errMsg = fmt.Sprintf("Loaded database has broken XEPG mapping (version <= 2.1.1). Clearing it.") case 2099: errMsg = fmt.Sprintf("Updates have been disabled by the developer") diff --git a/src/update.go b/src/update.go index e3dcf59..77f210e 100644 --- a/src/update.go +++ b/src/update.go @@ -238,7 +238,33 @@ checkVersion: return } - case "2.1.0": + case "2.1.0", "2.1.1": + + // Database verison <= 2.1.1 has broken XEPG mapping + showWarning(2022) + + // Clear XEPG mapping + Data.XEPG.Channels = make(map[string]interface{}) + Data.XEPG.XEPGCount = 0 + Data.Cache.Streams = struct{ Active []string }{} + + err = saveMapToJSONFile(System.File.XEPG, Data.XEPG.Channels) + if err != nil { + ShowError(err, 000) + return err + } + + // Update database version + settingsMap["version"] = "2.2.0" + + err = saveMapToJSONFile(System.File.Settings, settingsMap) + if err != nil { + return + } + + goto checkVersion + + case "2.2.0": // If there are changes to the Database in a later update, continue here break diff --git a/xteve.go b/xteve.go index 41a432b..9f1514a 100644 --- a/xteve.go +++ b/xteve.go @@ -39,10 +39,10 @@ var GitHub = GitHubStruct{Branch: "master", User: "SCP002", Repo: "xTeVe", Updat const Name = "xTeVe" // Version : Version, the Build Number is parsed in the main func -const Version = "2.2.3.0000" +const Version = "2.2.4.0000" // DBVersion : Database Version -const DBVersion = "2.1.1" +const DBVersion = "2.2.0" // APIVersion : API Version const APIVersion = "1.1.0" From 4d4ac0e3d19e8058ba750ff975aafb2e3696797c Mon Sep 17 00:00:00 2001 From: SCP002 Date: Wed, 6 Apr 2022 16:23:32 +0300 Subject: [PATCH 067/189] Set Go version to 1.18 in go.mod --- go.mod | 9 ++++++--- go.sum | 13 ++++--------- 2 files changed, 10 insertions(+), 12 deletions(-) diff --git a/go.mod b/go.mod index d66bddd..e3b7333 100644 --- a/go.mod +++ b/go.mod @@ -1,11 +1,14 @@ module xteve -go 1.16 +go 1.18 require ( github.com/gorilla/websocket v1.5.0 github.com/kardianos/osext v0.0.0-20190222173326-2bc1f35cddc0 github.com/koron/go-ssdp v0.0.2 - golang.org/x/net v0.0.0-20220325170049-de3da57026de // indirect - golang.org/x/sys v0.0.0-20220329152356-43be30ef3008 // indirect +) + +require ( + golang.org/x/net v0.0.0-20220403103023-749bd193bc2b // indirect + golang.org/x/sys v0.0.0-20220405210540-1e041c57c461 // indirect ) diff --git a/go.sum b/go.sum index 2859e7a..77a78f2 100644 --- a/go.sum +++ b/go.sum @@ -8,16 +8,11 @@ golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACk golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20200904194848-62affa334b73/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= -golang.org/x/net v0.0.0-20220325170049-de3da57026de h1:pZB1TWnKi+o4bENlbzAgLrEbY4RMYmUIRobMcSmfeYc= -golang.org/x/net v0.0.0-20220325170049-de3da57026de/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= +golang.org/x/net v0.0.0-20220403103023-749bd193bc2b h1:vI32FkLJNAWtGD4BwkThwEy6XS7ZLLMHkSkYfF8M0W0= +golang.org/x/net v0.0.0-20220403103023-749bd193bc2b/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20211216021012-1d35b9e2eb4e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20220329152356-43be30ef3008 h1:pq9pwoi2rjLWvmiVser/lIOgiyA3fli4M+RfGVMA7nE= -golang.org/x/sys v0.0.0-20220329152356-43be30ef3008/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= +golang.org/x/sys v0.0.0-20220405210540-1e041c57c461 h1:kHVeDEnfKn3T238CvrUcz6KeEsFHVaKh4kMTt6Wsysg= +golang.org/x/sys v0.0.0-20220405210540-1e041c57c461/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= -golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= -golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= From 652efd02b6ee7b50bbafeb7abb9ce2876977b5cb Mon Sep 17 00:00:00 2001 From: SCP002 Date: Thu, 7 Apr 2022 00:13:18 +0300 Subject: [PATCH 068/189] Update README.md, README-DEV.md and changelog-beta.md --- README-DEV.md | 1 - README.md | 78 +++++++++++++++++++++++++++++++++++++++-------- changelog-beta.md | 3 ++ 3 files changed, 69 insertions(+), 13 deletions(-) diff --git a/README-DEV.md b/README-DEV.md index 4882217..e69de29 100644 --- a/README-DEV.md +++ b/README-DEV.md @@ -1 +0,0 @@ -# Information for the developers will come soon \ No newline at end of file diff --git a/README.md b/README.md index b262a9a..bbb72aa 100644 --- a/README.md +++ b/README.md @@ -1,10 +1,12 @@
- xTeVe + xTeVe

# xTeVe -## M3U Proxy and EPG aggregator for Plex DVR and Emby Live TV. +## M3U Proxy and EPG aggregator for Plex DVR and Emby Live TV. + +#### This is a fork of , all credit goes to the original author. Documentation for setup and configuration is [here](https://github.com/xteve-project/xTeVe-Documentation/blob/master/en/configuration.md). @@ -18,7 +20,7 @@ Documentation for setup and configuration is [here](https://github.com/xteve-pro #### Files * Merge external M3U files -* Merge external XMLTV files +* Merge external XMLTV files (EPG aggregation) * Automatic M3U and XMLTV update * M3U and XMLTV export @@ -55,8 +57,8 @@ With the command line argument `branch` the Git Branch can be changed. xTeVe mus xteve -branch beta ... -[xTeVe] GitHub: https://github.com/xteve-project -[xTeVe] Git Branch: beta [xteve-project] +[xTeVe] GitHub: https://github.com/SCP002 +[xTeVe] Git Branch: beta [SCP002] ... ``` @@ -65,8 +67,8 @@ xteve -branch beta xteve -branch master ... -[xTeVe] GitHub: https://github.com/xteve-project -[xTeVe] Git Branch: master [xteve-project] +[xTeVe] GitHub: https://github.com/SCP002 +[xTeVe] Git Branch: master [SCP002] ... ``` @@ -74,10 +76,16 @@ When the branch is changed, an update is only performed if there is a new versio --- +## Run + +#### Requirements + +--- + ## Build from source code [Go / Golang] #### Requirements -* [Go](https://golang.org) (go1.16.2 or newer) +* [Go](https://golang.org) (go1.18 or newer) #### Dependencies * [go-ssdp](https://github.com/koron/go-ssdp) @@ -85,14 +93,60 @@ When the branch is changed, an update is only performed if there is a new versio * [osext](https://github.com/kardianos/osext) #### Build -1. Download source code -2. Install dependencies -``` + +#### 1. Download source code + +#### 2. Install dependencies + +```sh go mod tidy ``` -3. Build xTeVe + +Or + +```sh +go get github.com/koron/go-ssdp +go get github.com/gorilla/websocket +go get github.com/kardianos/osext +``` + +#### 3. Update dependencies (optional) + +```sh +go get -u ./... +``` + +#### 4. Update web files (optional) + +If TypeScript files were changed, run: + +```sh +tsc -p ./ts/tsconfig.json ``` + +Then, to embed updated JavaScript files into the source code (src/webUI.go), run it in development mode at least once: + +```sh go build xteve.go +xteve -dev +``` + +:exclamation: To not to get CreateFile error, do not forget to switch your binary to "regular" mode after runnning with `-dev` flag: + +`xteve -branch master` or `xteve -branch beta` + +#### 4. Build xTeVe + +```sh +go build xteve.go +``` + +Or use convenient cross-compile tool. To build binaries for every OS / architecture pair into `./xteve-build/` folder: + +```sh +go get github.com/mitchellh/gox +go install github.com/mitchellh/gox +gox -output="./xteve-build/{{.Dir}}_{{.OS}}_{{.Arch}}" ./ ``` --- diff --git a/changelog-beta.md b/changelog-beta.md index dae577c..2135f54 100644 --- a/changelog-beta.md +++ b/changelog-beta.md @@ -1,3 +1,6 @@ +#### For any futurer changes, see https://github.com/SCP002/xTeVe/releases +--- + #### 2.1.1.0116-beta If no user agent is specified, the default FFmpeg or VLC user agent is used. From bdbbea813e0a59ec600110385644b2dcfc87cb4a Mon Sep 17 00:00:00 2001 From: SCP002 Date: Thu, 7 Apr 2022 00:18:32 +0300 Subject: [PATCH 069/189] Format README.md --- README.md | 44 +++++++++++++++++++++++++------------------- 1 file changed, 25 insertions(+), 19 deletions(-) diff --git a/README.md b/README.md index bbb72aa..ca66a07 100644 --- a/README.md +++ b/README.md @@ -4,27 +4,31 @@
# xTeVe -## M3U Proxy and EPG aggregator for Plex DVR and Emby Live TV. -#### This is a fork of , all credit goes to the original author. +## M3U Proxy and EPG aggregator for Plex DVR and Emby Live TV + +### This is a fork of , all credit goes to the original author Documentation for setup and configuration is [here](https://github.com/xteve-project/xTeVe-Documentation/blob/master/en/configuration.md). #### Donation + * **Bitcoin:** 1c1iCe4CJPfNUXtqxKBbW2Qd2EtqRPWme ![Bitcoin](html/img/BC-QR.jpg "Bitcoin - xTeVe") ---- +--- ## Features -#### Files +### Files + * Merge external M3U files * Merge external XMLTV files (EPG aggregation) * Automatic M3U and XMLTV update * M3U and XMLTV export #### Channel management + * Filtering streams * Teleguide timeshift * Channel mapping @@ -33,6 +37,7 @@ Documentation for setup and configuration is [here](https://github.com/xteve-pro * Channel categories #### Streaming + * Buffer with HLS / M3U8 support * Re-streaming * Number of tuners adjustable @@ -41,19 +46,22 @@ Documentation for setup and configuration is [here](https://github.com/xteve-pro --- ## Downloads + * See [releases page](https://github.com/SCP002/xTeVe/releases) --- ### xTeVe Beta branch + New features and bug fixes are only available in beta branch. Only after successful testing are they are merged into the master branch. **It is not recommended to use the beta version in a production system.** With the command line argument `branch` the Git Branch can be changed. xTeVe must be started via the terminal. -#### Switch from master to beta branch: -``` +#### Switch from master to beta branch + +```text xteve -branch beta ... @@ -62,8 +70,9 @@ xteve -branch beta ... ``` -#### Switch from beta to master branch: -``` +#### Switch from beta to master branch + +```text xteve -branch master ... @@ -76,23 +85,19 @@ When the branch is changed, an update is only performed if there is a new versio --- -## Run - -#### Requirements - ---- - ## Build from source code [Go / Golang] -#### Requirements +### Requirements + * [Go](https://golang.org) (go1.18 or newer) -#### Dependencies +### Dependencies + * [go-ssdp](https://github.com/koron/go-ssdp) * [websocket](https://github.com/gorilla/websocket) * [osext](https://github.com/kardianos/osext) -#### Build +### Build #### 1. Download source code @@ -152,11 +157,13 @@ gox -output="./xteve-build/{{.Dir}}_{{.OS}}_{{.Arch}}" ./ --- ## Fork without pull request :mega: + When creating a fork, the xTeVe GitHub account must be changed from the source code or the update function disabled. Future updates of the xteve-project would update your fork. :wink: xteve.go - Line: 29 -```Go + +```go var GitHub = GitHubStruct{Branch: "master", User: "xteve-project", Repo: "xTeVe-Downloads", Update: true} /* @@ -165,5 +172,4 @@ var GitHub = GitHubStruct{Branch: "master", User: "xteve-project", Repo: "xTeVe- Repo: GitHub Repository Update: Automatic updates from the GitHub repository [true|false] */ - ``` From 51869e84325ce373d6131f51c786960dc967d935 Mon Sep 17 00:00:00 2001 From: SCP002 Date: Sat, 9 Apr 2022 11:04:20 +0300 Subject: [PATCH 070/189] Implement automatic playlist to EPG mapping. Closes #16 --- html/js/menu_ts.js | 10 ++++----- src/struct-xml.go | 6 ++--- src/webUI.go | 2 +- src/xepg.go | 56 ++++++++++++++++++++++++++++++++++++---------- ts/menu_ts.ts | 10 ++++----- xteve.go | 2 +- 6 files changed, 59 insertions(+), 27 deletions(-) diff --git a/html/js/menu_ts.js b/html/js/menu_ts.js index b7c51fe..7f0c267 100644 --- a/html/js/menu_ts.js +++ b/html/js/menu_ts.js @@ -1391,15 +1391,15 @@ class XMLTVFile { //var fileIDs:string[] = getObjKeys(SERVER["xepg"]["xmltvMap"]) let values = getObjKeys(SERVER["xepg"]["xmltvMap"][file]); let text = []; - let displayName; + let friendlyName; for (let i = 0; i < values.length; i++) { - if (SERVER["xepg"]["xmltvMap"][file][values[i]].hasOwnProperty('display-name') == true) { - displayName = SERVER["xepg"]["xmltvMap"][file][values[i]]["display-name"]; + if (SERVER["xepg"]["xmltvMap"][file][values[i]].hasOwnProperty('friendly-name') == true) { + friendlyName = SERVER["xepg"]["xmltvMap"][file][values[i]]["friendly-name"]; } else { - displayName = "-"; + friendlyName = "-"; } - text[i] = displayName + " (" + values[i] + ")"; + text[i] = friendlyName + " (" + values[i] + ")"; } text.unshift("-"); values.unshift("-"); diff --git a/src/struct-xml.go b/src/struct-xml.go index e514b01..da9faa9 100644 --- a/src/struct-xml.go +++ b/src/struct-xml.go @@ -14,9 +14,9 @@ type XMLTV struct { // Channel : Channels type Channel struct { - ID string `xml:"id,attr"` - DisplayName []DisplayName `xml:"display-name"` - Icon Icon `xml:"icon"` + ID string `xml:"id,attr"` + DisplayNames []DisplayName `xml:"display-name"` + Icon Icon `xml:"icon"` } // DisplayName : Channel Name diff --git a/src/webUI.go b/src/webUI.go index 0bfd0eb..eeba2a3 100644 --- a/src/webUI.go +++ b/src/webUI.go @@ -29,7 +29,7 @@ func loadHTMLMap() { webUI["html/js/classes_ts.js"] = "dmFyIF9fZXh0ZW5kcyA9ICh0aGlzICYmIHRoaXMuX19leHRlbmRzKSB8fCAoZnVuY3Rpb24gKCkgew0KICAgIHZhciBleHRlbmRTdGF0aWNzID0gZnVuY3Rpb24gKGQsIGIpIHsNCiAgICAgICAgZXh0ZW5kU3RhdGljcyA9IE9iamVjdC5zZXRQcm90b3R5cGVPZiB8fA0KICAgICAgICAgICAgKHsgX19wcm90b19fOiBbXSB9IGluc3RhbmNlb2YgQXJyYXkgJiYgZnVuY3Rpb24gKGQsIGIpIHsgZC5fX3Byb3RvX18gPSBiOyB9KSB8fA0KICAgICAgICAgICAgZnVuY3Rpb24gKGQsIGIpIHsgZm9yICh2YXIgcCBpbiBiKSBpZiAoYi5oYXNPd25Qcm9wZXJ0eShwKSkgZFtwXSA9IGJbcF07IH07DQogICAgICAgIHJldHVybiBleHRlbmRTdGF0aWNzKGQsIGIpOw0KICAgIH07DQogICAgcmV0dXJuIGZ1bmN0aW9uIChkLCBiKSB7DQogICAgICAgIGV4dGVuZFN0YXRpY3MoZCwgYik7DQogICAgICAgIGZ1bmN0aW9uIF9fKCkgeyB0aGlzLmNvbnN0cnVjdG9yID0gZDsgfQ0KICAgICAgICBkLnByb3RvdHlwZSA9IGIgPT09IG51bGwgPyBPYmplY3QuY3JlYXRlKGIpIDogKF9fLnByb3RvdHlwZSA9IGIucHJvdG90eXBlLCBuZXcgX18oKSk7DQogICAgfTsNCn0pKCk7DQp2YXIgTWFpbk1lbnUgPSAvKiogQGNsYXNzICovIChmdW5jdGlvbiAoKSB7DQogICAgZnVuY3Rpb24gTWFpbk1lbnUoKSB7DQogICAgICAgIHRoaXMuRG9jdW1lbnRJRCA9ICJtYWluLW1lbnUiOw0KICAgICAgICB0aGlzLkhUTUxUYWcgPSAiTEkiOw0KICAgIH0NCiAgICBNYWluTWVudS5wcm90b3R5cGUuY3JlYXRlID0gZnVuY3Rpb24gKCkgew0KICAgICAgICBjb25zb2xlLmxvZyh0aGlzLkRvY3VtZW50SUQpOw0KICAgIH07DQogICAgcmV0dXJuIE1haW5NZW51Ow0KfSgpKTsNCnZhciBNYWluTWVudUl0ZW0gPSAvKiogQGNsYXNzICovIChmdW5jdGlvbiAoX3N1cGVyKSB7DQogICAgX19leHRlbmRzKE1haW5NZW51SXRlbSwgX3N1cGVyKTsNCiAgICBmdW5jdGlvbiBNYWluTWVudUl0ZW0oKSB7DQogICAgICAgIHJldHVybiBfc3VwZXIgIT09IG51bGwgJiYgX3N1cGVyLmFwcGx5KHRoaXMsIGFyZ3VtZW50cykgfHwgdGhpczsNCiAgICB9DQogICAgTWFpbk1lbnVJdGVtLnByb3RvdHlwZS5jcmVhdGUyID0gZnVuY3Rpb24gKCkgew0KICAgICAgICB2YXIgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQodGhpcy5IVE1MVGFnKTsNCiAgICAgICAgZWxlbWVudC5pbm5lclRleHQgPSB0aGlzLlZhbHVlOw0KICAgICAgICBjb25zb2xlLmxvZyhlbGVtZW50KTsNCiAgICB9Ow0KICAgIHJldHVybiBNYWluTWVudUl0ZW07DQp9KE1haW5NZW51KSk7DQpmdW5jdGlvbiBwYWdlUmVhZHkoKSB7DQogICAgdmFyIGl0ZW0gPSBuZXcgTWFpbk1lbnVJdGVtKCk7DQogICAgaXRlbS5WYWx1ZSA9ICJUZXN0IjsNCiAgICBpdGVtLmNyZWF0ZTIoKTsNCn0NCg==" webUI["html/js/configuration_ts.js"] = "Y2xhc3MgV2l6YXJkQ2F0ZWdvcnkgew0KICAgIGNvbnN0cnVjdG9yKCkgew0KICAgICAgICB0aGlzLkRvY3VtZW50SUQgPSAiY29udGVudCI7DQogICAgfQ0KICAgIGNyZWF0ZUNhdGVnb3J5SGVhZGxpbmUodmFsdWUpIHsNCiAgICAgICAgdmFyIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJINCIpOw0KICAgICAgICBlbGVtZW50LmlubmVySFRNTCA9IHZhbHVlOw0KICAgICAgICByZXR1cm4gZWxlbWVudDsNCiAgICB9DQp9DQpjbGFzcyBXaXphcmRJdGVtIGV4dGVuZHMgV2l6YXJkQ2F0ZWdvcnkgew0KICAgIGNvbnN0cnVjdG9yKGtleSwgaGVhZGxpbmUpIHsNCiAgICAgICAgc3VwZXIoKTsNCiAgICAgICAgdGhpcy5oZWFkbGluZSA9IGhlYWRsaW5lOw0KICAgICAgICB0aGlzLmtleSA9IGtleTsNCiAgICB9DQogICAgY3JlYXRlV2l6YXJkKCkgew0KICAgICAgICB2YXIgaGVhZGxpbmUgPSB0aGlzLmNyZWF0ZUNhdGVnb3J5SGVhZGxpbmUodGhpcy5oZWFkbGluZSk7DQogICAgICAgIHZhciBrZXkgPSB0aGlzLmtleTsNCiAgICAgICAgdmFyIGNvbnRlbnQgPSBuZXcgUG9wdXBDb250ZW50KCk7DQogICAgICAgIHZhciBkZXNjcmlwdGlvbjsNCiAgICAgICAgdmFyIGRvYyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHRoaXMuRG9jdW1lbnRJRCk7DQogICAgICAgIGRvYy5pbm5lckhUTUwgPSAiIjsNCiAgICAgICAgZG9jLmFwcGVuZENoaWxkKGhlYWRsaW5lKTsNCiAgICAgICAgc3dpdGNoIChrZXkpIHsNCiAgICAgICAgICAgIGNhc2UgInR1bmVyIjoNCiAgICAgICAgICAgICAgICB2YXIgdGV4dCA9IG5ldyBBcnJheSgpOw0KICAgICAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBuZXcgQXJyYXkoKTsNCiAgICAgICAgICAgICAgICBmb3IgKHZhciBpID0gMTsgaSA8PSAxMDA7IGkrKykgew0KICAgICAgICAgICAgICAgICAgICB0ZXh0LnB1c2goaSk7DQogICAgICAgICAgICAgICAgICAgIHZhbHVlcy5wdXNoKGkpOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCAiMSIsIGtleSk7DQogICAgICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgiY2xhc3MiLCAid2l6YXJkIik7DQogICAgICAgICAgICAgICAgc2VsZWN0LmlkID0ga2V5Ow0KICAgICAgICAgICAgICAgIGRvYy5hcHBlbmRDaGlsZChzZWxlY3QpOw0KICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uID0gInt7LndpemFyZC50dW5lci5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImVwZ1NvdXJjZSI6DQogICAgICAgICAgICAgICAgdmFyIHRleHQgPSBbIlBNUyIsICJYRVBHIl07DQogICAgICAgICAgICAgICAgdmFyIHZhbHVlcyA9IFsiUE1TIiwgIlhFUEciXTsNCiAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCAiWEVQRyIsIGtleSk7DQogICAgICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgiY2xhc3MiLCAid2l6YXJkIik7DQogICAgICAgICAgICAgICAgc2VsZWN0LmlkID0ga2V5Ow0KICAgICAgICAgICAgICAgIGRvYy5hcHBlbmRDaGlsZChzZWxlY3QpOw0KICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uID0gInt7LndpemFyZC5lcGdTb3VyY2UuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJtM3UiOg0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBrZXksICIiKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LndpemFyZC5tM3UucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgiY2xhc3MiLCAid2l6YXJkIik7DQogICAgICAgICAgICAgICAgaW5wdXQuaWQgPSBrZXk7DQogICAgICAgICAgICAgICAgZG9jLmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbiA9ICJ7ey53aXphcmQubTN1LmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAieG1sdHYiOg0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBrZXksICIiKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LndpemFyZC54bWx0di5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJjbGFzcyIsICJ3aXphcmQiKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5pZCA9IGtleTsNCiAgICAgICAgICAgICAgICBkb2MuYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uID0gInt7LndpemFyZC54bWx0di5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICAgICAgY29uc29sZS5sb2coa2V5KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgfQ0KICAgICAgICB2YXIgcHJlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiUFJFIik7DQogICAgICAgIHByZS5pbm5lckhUTUwgPSBkZXNjcmlwdGlvbjsNCiAgICAgICAgZG9jLmFwcGVuZENoaWxkKHByZSk7DQogICAgICAgIGNvbnNvbGUubG9nKGhlYWRsaW5lLCBrZXkpOw0KICAgIH0NCn0NCmZ1bmN0aW9uIHJlYWR5Rm9yQ29uZmlndXJhdGlvbih3aXphcmQpIHsNCiAgICB2YXIgc2VydmVyID0gbmV3IFNlcnZlcigiZ2V0U2VydmVyQ29uZmlnIik7DQogICAgc2VydmVyLnJlcXVlc3QobmV3IE9iamVjdCgpKTsNCiAgICBzaG93RWxlbWVudCgibG9hZGluZyIsIGZhbHNlKTsNCiAgICBjb25maWd1cmF0aW9uV2l6YXJkW3dpemFyZF0uY3JlYXRlV2l6YXJkKCk7DQp9DQpmdW5jdGlvbiBzYXZlV2l6YXJkKCkgew0KICAgIHZhciBjbWQgPSAic2F2ZVdpemFyZCI7DQogICAgdmFyIGRpdiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb250ZW50Iik7DQogICAgdmFyIGNvbmZpZyA9IGRpdi5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCJ3aXphcmQiKTsNCiAgICB2YXIgd2l6YXJkID0gbmV3IE9iamVjdCgpOw0KICAgIGZvciAodmFyIGkgPSAwOyBpIDwgY29uZmlnLmxlbmd0aDsgaSsrKSB7DQogICAgICAgIHZhciBuYW1lOw0KICAgICAgICB2YXIgdmFsdWU7DQogICAgICAgIHN3aXRjaCAoY29uZmlnW2ldLnRhZ05hbWUpIHsNCiAgICAgICAgICAgIGNhc2UgIlNFTEVDVCI6DQogICAgICAgICAgICAgICAgbmFtZSA9IGNvbmZpZ1tpXS5uYW1lOw0KICAgICAgICAgICAgICAgIHZhbHVlID0gY29uZmlnW2ldLnZhbHVlOw0KICAgICAgICAgICAgICAgIC8vIElmIHRoZSB2YWx1ZSBpcyBhIG51bWJlciwgc3RvcmUgaXQgYXMgYSBudW1iZXINCiAgICAgICAgICAgICAgICBpZiAoaXNOYU4odmFsdWUpKSB7DQogICAgICAgICAgICAgICAgICAgIHdpemFyZFtuYW1lXSA9IHZhbHVlOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICAgICAgd2l6YXJkW25hbWVdID0gcGFyc2VJbnQodmFsdWUpOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgIklOUFVUIjoNCiAgICAgICAgICAgICAgICBzd2l0Y2ggKGNvbmZpZ1tpXS50eXBlKSB7DQogICAgICAgICAgICAgICAgICAgIGNhc2UgInRleHQiOg0KICAgICAgICAgICAgICAgICAgICAgICAgbmFtZSA9IGNvbmZpZ1tpXS5uYW1lOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSBjb25maWdbaV0udmFsdWU7DQogICAgICAgICAgICAgICAgICAgICAgICBpZiAodmFsdWUubGVuZ3RoID09IDApIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgbXNnID0gbmFtZS50b1VwcGVyQ2FzZSgpICsgIjogIiArICJ7ey5hbGVydC5taXNzaW5nSW5wdXR9fSI7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgYWxlcnQobXNnKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICB3aXphcmRbbmFtZV0gPSB2YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICAgICAgLy8gY29kZS4uLg0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICB9DQogICAgfQ0KICAgIHZhciBkYXRhID0gbmV3IE9iamVjdCgpOw0KICAgIGRhdGFbIndpemFyZCJdID0gd2l6YXJkOw0KICAgIHZhciBzZXJ2ZXIgPSBuZXcgU2VydmVyKGNtZCk7DQogICAgc2VydmVyLnJlcXVlc3QoZGF0YSk7DQogICAgY29uc29sZS5sb2coZGF0YSk7DQp9DQovLyBXaXphcmQNCnZhciBjb25maWd1cmF0aW9uV2l6YXJkID0gbmV3IEFycmF5KCk7DQpjb25maWd1cmF0aW9uV2l6YXJkLnB1c2gobmV3IFdpemFyZEl0ZW0oInR1bmVyIiwgInt7LndpemFyZC50dW5lci50aXRsZX19IikpOw0KY29uZmlndXJhdGlvbldpemFyZC5wdXNoKG5ldyBXaXphcmRJdGVtKCJlcGdTb3VyY2UiLCAie3sud2l6YXJkLmVwZ1NvdXJjZS50aXRsZX19IikpOw0KY29uZmlndXJhdGlvbldpemFyZC5wdXNoKG5ldyBXaXphcmRJdGVtKCJtM3UiLCAie3sud2l6YXJkLm0zdS50aXRsZX19IikpOw0KY29uZmlndXJhdGlvbldpemFyZC5wdXNoKG5ldyBXaXphcmRJdGVtKCJ4bWx0diIsICJ7ey53aXphcmQueG1sdHYudGl0bGV9fSIpKTsNCg==" webUI["html/js/logs_ts.js"] = "Y2xhc3MgTG9nIHsNCiAgICBjcmVhdGVMb2coZW50cnkpIHsNCiAgICAgICAgdmFyIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJQUkUiKTsNCiAgICAgICAgaWYgKGVudHJ5LmluZGV4T2YoIldBUk5JTkciKSAhPSAtMSkgew0KICAgICAgICAgICAgZWxlbWVudC5jbGFzc05hbWUgPSAid2FybmluZ01zZyI7DQogICAgICAgIH0NCiAgICAgICAgaWYgKGVudHJ5LmluZGV4T2YoIkVSUk9SIikgIT0gLTEpIHsNCiAgICAgICAgICAgIGVsZW1lbnQuY2xhc3NOYW1lID0gImVycm9yTXNnIjsNCiAgICAgICAgfQ0KICAgICAgICBpZiAoZW50cnkuaW5kZXhPZigiREVCVUciKSAhPSAtMSkgew0KICAgICAgICAgICAgZWxlbWVudC5jbGFzc05hbWUgPSAiZGVidWdNc2ciOw0KICAgICAgICB9DQogICAgICAgIGVsZW1lbnQuaW5uZXJIVE1MID0gZW50cnk7DQogICAgICAgIHJldHVybiBlbGVtZW50Ow0KICAgIH0NCn0NCmZ1bmN0aW9uIHNob3dMb2dzKGJvdHRvbSkgew0KICAgIHZhciBsb2cgPSBuZXcgTG9nKCk7DQogICAgdmFyIGxvZ3MgPSBTRVJWRVJbImxvZyJdWyJsb2ciXTsNCiAgICB2YXIgZGl2ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnRlbnRfbG9nIik7DQogICAgZGl2LmlubmVySFRNTCA9ICIiOw0KICAgIHZhciBrZXlzID0gZ2V0T2JqS2V5cyhsb2dzKTsNCiAgICBrZXlzLmZvckVhY2gobG9nSUQgPT4gew0KICAgICAgICB2YXIgZW50cnkgPSBsb2cuY3JlYXRlTG9nKGxvZ3NbbG9nSURdKTsNCiAgICAgICAgZGl2LmFwcGVuZChlbnRyeSk7DQogICAgfSk7DQogICAgc2V0VGltZW91dChmdW5jdGlvbiAoKSB7DQogICAgICAgIGlmIChib3R0b20gPT0gdHJ1ZSkgew0KICAgICAgICAgICAgdmFyIHdyYXBwZXIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYm94LXdyYXBwZXIiKTsNCiAgICAgICAgICAgIHdyYXBwZXIuc2Nyb2xsVG9wID0gd3JhcHBlci5zY3JvbGxIZWlnaHQ7DQogICAgICAgIH0NCiAgICB9LCAxMCk7DQp9DQpmdW5jdGlvbiByZXNldExvZ3MoKSB7DQogICAgdmFyIGNtZCA9ICJyZXNldExvZ3MiOw0KICAgIHZhciBkYXRhID0gbmV3IE9iamVjdCgpOw0KICAgIHZhciBzZXJ2ZXIgPSBuZXcgU2VydmVyKGNtZCk7DQogICAgc2VydmVyLnJlcXVlc3QoZGF0YSk7DQp9DQo=" - webUI["html/js/menu_ts.js"] = "Y2xhc3MgTWFpbk1lbnUgew0KICAgIGNvbnN0cnVjdG9yKCkgew0KICAgICAgICB0aGlzLkRvY3VtZW50SUQgPSAibWFpbi1tZW51IjsNCiAgICAgICAgdGhpcy5IVE1MVGFnID0gIkxJIjsNCiAgICAgICAgdGhpcy5JbWFnZVBhdGggPSAiaW1nLyI7DQogICAgfQ0KICAgIGNyZWF0ZUlNRyhzcmMpIHsNCiAgICAgICAgbGV0IGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJJTUciKTsNCiAgICAgICAgZWxlbWVudC5zZXRBdHRyaWJ1dGUoInNyYyIsIHRoaXMuSW1hZ2VQYXRoICsgc3JjKTsNCiAgICAgICAgcmV0dXJuIGVsZW1lbnQ7DQogICAgfQ0KICAgIGNyZWF0ZVZhbHVlKHZhbHVlKSB7DQogICAgICAgIGxldCBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiUCIpOw0KICAgICAgICBlbGVtZW50LmlubmVySFRNTCA9IHZhbHVlOw0KICAgICAgICByZXR1cm4gZWxlbWVudDsNCiAgICB9DQp9DQpjbGFzcyBNYWluTWVudUl0ZW0gZXh0ZW5kcyBNYWluTWVudSB7DQogICAgY29uc3RydWN0b3IobWVudUtleSwgdmFsdWUsIGltYWdlLCBoZWFkbGluZSkgew0KICAgICAgICBzdXBlcigpOw0KICAgICAgICB0aGlzLm1lbnVLZXkgPSBtZW51S2V5Ow0KICAgICAgICB0aGlzLnZhbHVlID0gdmFsdWU7DQogICAgICAgIHRoaXMuaW1nU3JjID0gaW1hZ2U7DQogICAgICAgIHRoaXMuaGVhZGxpbmUgPSBoZWFkbGluZTsNCiAgICB9DQogICAgY3JlYXRlSXRlbSgpIHsNCiAgICAgICAgbGV0IGl0ZW0gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJMSSIpOw0KICAgICAgICBpdGVtLnNldEF0dHJpYnV0ZSgib25jbGljayIsICJqYXZhc2NyaXB0OiBvcGVuVGhpc01lbnUodGhpcykiKTsNCiAgICAgICAgaXRlbS5zZXRBdHRyaWJ1dGUoImlkIiwgdGhpcy5pZCk7DQogICAgICAgIGxldCBpbWcgPSB0aGlzLmNyZWF0ZUlNRyh0aGlzLmltZ1NyYyk7DQogICAgICAgIGxldCB2YWx1ZSA9IHRoaXMuY3JlYXRlVmFsdWUodGhpcy52YWx1ZSk7DQogICAgICAgIGl0ZW0uYXBwZW5kQ2hpbGQoaW1nKTsNCiAgICAgICAgaXRlbS5hcHBlbmRDaGlsZCh2YWx1ZSk7DQogICAgICAgIGxldCBkb2MgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCh0aGlzLkRvY3VtZW50SUQpOw0KICAgICAgICBkb2MuYXBwZW5kQ2hpbGQoaXRlbSk7DQogICAgICAgIHN3aXRjaCAodGhpcy5tZW51S2V5KSB7DQogICAgICAgICAgICBjYXNlICJwbGF5bGlzdCI6DQogICAgICAgICAgICAgICAgdGhpcy50YWJsZUhlYWRlciA9IFsie3sucGxheWxpc3QudGFibGUucGxheWxpc3R9fSIsICJ7ey5wbGF5bGlzdC50YWJsZS50dW5lcn19IiwgInt7LnBsYXlsaXN0LnRhYmxlLmxhc3RVcGRhdGV9fSIsICJ7ey5wbGF5bGlzdC50YWJsZS5hdmFpbGFiaWxpdHl9fSAlIiwgInt7LnBsYXlsaXN0LnRhYmxlLnR5cGV9fSIsICJ7ey5wbGF5bGlzdC50YWJsZS5zdHJlYW1zfX0iLCAie3sucGxheWxpc3QudGFibGUuZ3JvdXBUaXRsZX19ICUiLCAie3sucGxheWxpc3QudGFibGUudHZnSUR9fSAlIiwgInt7LnBsYXlsaXN0LnRhYmxlLnVuaXF1ZUlEfX0gJSJdOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAieG1sdHYiOg0KICAgICAgICAgICAgICAgIHRoaXMudGFibGVIZWFkZXIgPSBbInt7LnhtbHR2LnRhYmxlLmd1aWRlfX0iLCAie3sueG1sdHYudGFibGUubGFzdFVwZGF0ZX19IiwgInt7LnhtbHR2LnRhYmxlLmF2YWlsYWJpbGl0eX19ICUiLCAie3sueG1sdHYudGFibGUuY2hhbm5lbHN9fSIsICJ7ey54bWx0di50YWJsZS5wcm9ncmFtc319Il07DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJmaWx0ZXIiOg0KICAgICAgICAgICAgICAgIHRoaXMudGFibGVIZWFkZXIgPSBbInt7LmZpbHRlci50YWJsZS5uYW1lfX0iLCAie3suZmlsdGVyLnRhYmxlLnR5cGV9fSIsICJ7ey5maWx0ZXIudGFibGUuZmlsdGVyfX0iXTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInVzZXJzIjoNCiAgICAgICAgICAgICAgICB0aGlzLnRhYmxlSGVhZGVyID0gWyJ7ey51c2Vycy50YWJsZS51c2VybmFtZX19IiwgInt7LnVzZXJzLnRhYmxlLnBhc3N3b3JkfX0iLCAie3sudXNlcnMudGFibGUud2VifX0iLCAie3sudXNlcnMudGFibGUucG1zfX0iLCAie3sudXNlcnMudGFibGUubTN1fX0iLCAie3sudXNlcnMudGFibGUueG1sfX0iLCAie3sudXNlcnMudGFibGUuYXBpfX0iXTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgIm1hcHBpbmciOg0KICAgICAgICAgICAgICAgIHRoaXMudGFibGVIZWFkZXIgPSBbIkJVTEsiLCAie3subWFwcGluZy50YWJsZS5jaE5vfX0iLCAie3subWFwcGluZy50YWJsZS5sb2dvfX0iLCAie3subWFwcGluZy50YWJsZS5jaGFubmVsTmFtZX19IiwgInt7Lm1hcHBpbmcudGFibGUucGxheWxpc3R9fSIsICJ7ey5tYXBwaW5nLnRhYmxlLmdyb3VwVGl0bGV9fSIsICJ7ey5tYXBwaW5nLnRhYmxlLnhtbHR2RmlsZX19IiwgInt7Lm1hcHBpbmcudGFibGUueG1sdHZJRH19IiwgInt7Lm1hcHBpbmcudGFibGUudGltZXNoaWZ0fX0iXTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgfQ0KICAgICAgICAvL2NvbnNvbGUubG9nKHRoaXMubWVudUtleSwgdGhpcy50YWJsZUhlYWRlcik7DQogICAgfQ0KfQ0KY2xhc3MgQ29udGVudCB7DQogICAgY29uc3RydWN0b3IoKSB7DQogICAgICAgIHRoaXMuRG9jdW1lbnRJRCA9ICJjb250ZW50IjsNCiAgICAgICAgdGhpcy5UYWJsZUlEID0gImNvbnRlbnRfdGFibGUiOw0KICAgICAgICB0aGlzLmhlYWRlckNsYXNzID0gImNvbnRlbnRfdGFibGVfaGVhZGVyIjsNCiAgICAgICAgdGhpcy5pbnRlcmFjdGlvbklEID0gImNvbnRlbnQtaW50ZXJhY3Rpb24iOw0KICAgIH0NCiAgICBjcmVhdGVIZWFkbGluZSh2YWx1ZSkgew0KICAgICAgICBsZXQgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIkgzIik7DQogICAgICAgIGVsZW1lbnQuaW5uZXJIVE1MID0gdmFsdWU7DQogICAgICAgIHJldHVybiBlbGVtZW50Ow0KICAgIH0NCiAgICBjcmVhdGVIUigpIHsNCiAgICAgICAgcmV0dXJuIGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIkhSIik7DQogICAgfQ0KICAgIGNyZWF0ZUludGVyYWN0aW9uKCkgew0KICAgICAgICBsZXQgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIkRJViIpOw0KICAgICAgICBlbGVtZW50LnNldEF0dHJpYnV0ZSgiaWQiLCB0aGlzLmludGVyYWN0aW9uSUQpOw0KICAgICAgICByZXR1cm4gZWxlbWVudDsNCiAgICB9DQogICAgY3JlYXRlRElWKCkgew0KICAgICAgICBsZXQgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIkRJViIpOw0KICAgICAgICBlbGVtZW50LmlkID0gdGhpcy5EaXZJRDsNCiAgICAgICAgcmV0dXJuIGVsZW1lbnQ7DQogICAgfQ0KICAgIGNyZWF0ZVRBQkxFKCkgew0KICAgICAgICBsZXQgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlRBQkxFIik7DQogICAgICAgIGVsZW1lbnQuaWQgPSB0aGlzLlRhYmxlSUQ7DQogICAgICAgIHJldHVybiBlbGVtZW50Ow0KICAgIH0NCiAgICBjcmVhdGVUYWJsZVJvdygpIHsNCiAgICAgICAgbGV0IGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJUUiIpOw0KICAgICAgICBlbGVtZW50LmNsYXNzTmFtZSA9IHRoaXMuaGVhZGVyQ2xhc3M7DQogICAgICAgIHJldHVybiBlbGVtZW50Ow0KICAgIH0NCiAgICBjcmVhdGVUYWJsZUNvbnRlbnQobWVudUtleSkgew0KICAgICAgICBsZXQgZGF0YSA9IHt9Ow0KICAgICAgICBsZXQgcm93cyA9IFtdOw0KICAgICAgICBsZXQgZmlsZVR5cGVzID0gW107DQogICAgICAgIHN3aXRjaCAobWVudUtleSkgew0KICAgICAgICAgICAgY2FzZSAicGxheWxpc3QiOg0KICAgICAgICAgICAgICAgIGZpbGVUeXBlcyA9IFsibTN1IiwgImhkaHIiXTsNCiAgICAgICAgICAgICAgICBmaWxlVHlwZXMuZm9yRWFjaChmaWxlVHlwZSA9PiB7DQogICAgICAgICAgICAgICAgICAgIGRhdGEgPSBTRVJWRVJbInNldHRpbmdzIl1bImZpbGVzIl1bZmlsZVR5cGVdOw0KICAgICAgICAgICAgICAgICAgICB2YXIga2V5cyA9IGdldE9iaktleXMoZGF0YSk7DQogICAgICAgICAgICAgICAgICAgIGtleXMuZm9yRWFjaChrZXkgPT4gew0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVFIiKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmlkID0ga2V5Ow0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgiJyArIGZpbGVUeXBlICsgJyIsIHRoaXMpJyk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsibmFtZSJdOw0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChTRVJWRVJbInNldHRpbmdzIl1bImJ1ZmZlciJdICE9ICItIikgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bInR1bmVyIl07DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gIi0iOw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bImxhc3QudXBkYXRlIl07DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsicHJvdmlkZXIuYXZhaWxhYmlsaXR5Il07DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsidHlwZSJdLnRvVXBwZXJDYXNlKCk7DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsiY29tcGF0aWJpbGl0eSJdWyJzdHJlYW1zIl07DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsiY29tcGF0aWJpbGl0eSJdWyJncm91cC50aXRsZSJdOw0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bImNvbXBhdGliaWxpdHkiXVsidHZnLmlkIl07DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsiY29tcGF0aWJpbGl0eSJdWyJzdHJlYW0uaWQiXTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHJvd3MucHVzaCh0cik7DQogICAgICAgICAgICAgICAgICAgIH0pOw0KICAgICAgICAgICAgICAgIH0pOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiZmlsdGVyIjoNCiAgICAgICAgICAgICAgICBkZWxldGUgU0VSVkVSWyJzZXR0aW5ncyJdWyJmaWx0ZXIiXVstMV07DQogICAgICAgICAgICAgICAgZGF0YSA9IFNFUlZFUlsic2V0dGluZ3MiXVsiZmlsdGVyIl07DQogICAgICAgICAgICAgICAgdmFyIGtleXMgPSBnZXRPYmpLZXlzKGRhdGEpOw0KICAgICAgICAgICAgICAgIGtleXMuZm9yRWFjaChrZXkgPT4gew0KICAgICAgICAgICAgICAgICAgICB2YXIgdHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJUUiIpOw0KICAgICAgICAgICAgICAgICAgICB0ci5pZCA9IGtleTsNCiAgICAgICAgICAgICAgICAgICAgdHIuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgiJyArIGRhdGFba2V5XVsidHlwZSJdICsgJyIsIHRoaXMpJyk7DQogICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJuYW1lIl07DQogICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgIHN3aXRjaCAoZGF0YVtrZXldWyJ0eXBlIl0pIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgImN1c3RvbS1maWx0ZXIiOg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSAie3suZmlsdGVyLmN1c3RvbX19IjsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgImdyb3VwLXRpdGxlIjoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gInt7LmZpbHRlci5ncm91cH19IjsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsiZmlsdGVyIl07DQogICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgcm93cy5wdXNoKHRyKTsNCiAgICAgICAgICAgICAgICB9KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInhtbHR2IjoNCiAgICAgICAgICAgICAgICBmaWxlVHlwZXMgPSBuZXcgQXJyYXkoInhtbHR2Iik7DQogICAgICAgICAgICAgICAgZmlsZVR5cGVzLmZvckVhY2goZmlsZVR5cGUgPT4gew0KICAgICAgICAgICAgICAgICAgICBkYXRhID0gU0VSVkVSWyJzZXR0aW5ncyJdWyJmaWxlcyJdW2ZpbGVUeXBlXTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGtleXMgPSBnZXRPYmpLZXlzKGRhdGEpOw0KICAgICAgICAgICAgICAgICAgICBrZXlzLmZvckVhY2goa2V5ID0+IHsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciB0ciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlRSIik7DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5pZCA9IGtleTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoIicgKyBmaWxlVHlwZSArICciLCB0aGlzKScpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bIm5hbWUiXTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJsYXN0LnVwZGF0ZSJdOw0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bInByb3ZpZGVyLmF2YWlsYWJpbGl0eSJdOw0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bImNvbXBhdGliaWxpdHkiXVsieG1sdHYuY2hhbm5lbHMiXTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJjb21wYXRpYmlsaXR5Il1bInhtbHR2LnByb2dyYW1zIl07DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICByb3dzLnB1c2godHIpOw0KICAgICAgICAgICAgICAgICAgICB9KTsNCiAgICAgICAgICAgICAgICB9KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInVzZXJzIjoNCiAgICAgICAgICAgICAgICBmaWxlVHlwZXMgPSBuZXcgQXJyYXkoInVzZXJzIik7DQogICAgICAgICAgICAgICAgZmlsZVR5cGVzLmZvckVhY2goZmlsZVR5cGUgPT4gew0KICAgICAgICAgICAgICAgICAgICBkYXRhID0gU0VSVkVSW2ZpbGVUeXBlXTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGtleXMgPSBnZXRPYmpLZXlzKGRhdGEpOw0KICAgICAgICAgICAgICAgICAgICBrZXlzLmZvckVhY2goa2V5ID0+IHsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciB0ciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlRSIik7DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5pZCA9IGtleTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoIicgKyBmaWxlVHlwZSArICciLCB0aGlzKScpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bImRhdGEiXVsidXNlcm5hbWUiXTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gIioqKioqKiI7DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGRhdGFba2V5XVsiZGF0YSJdWyJhdXRoZW50aWNhdGlvbi53ZWIiXSA9PSB0cnVlKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9ICLinJMiOw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9ICItIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgICAgICBpZiAoZGF0YVtrZXldWyJkYXRhIl1bImF1dGhlbnRpY2F0aW9uLnBtcyJdID09IHRydWUpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gIuKckyI7DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gIi0iOw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChkYXRhW2tleV1bImRhdGEiXVsiYXV0aGVudGljYXRpb24ubTN1Il0gPT0gdHJ1ZSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSAi4pyTIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSAiLSI7DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGRhdGFba2V5XVsiZGF0YSJdWyJhdXRoZW50aWNhdGlvbi54bWwiXSA9PSB0cnVlKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9ICLinJMiOw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9ICItIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgICAgICBpZiAoZGF0YVtrZXldWyJkYXRhIl1bImF1dGhlbnRpY2F0aW9uLmFwaSJdID09IHRydWUpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gIuKckyI7DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gIi0iOw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgcm93cy5wdXNoKHRyKTsNCiAgICAgICAgICAgICAgICAgICAgfSk7DQogICAgICAgICAgICAgICAgfSk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJtYXBwaW5nIjoNCiAgICAgICAgICAgICAgICBCVUxLX0VESVQgPSBmYWxzZTsNCiAgICAgICAgICAgICAgICBjcmVhdGVTZWFyY2hPYmooKTsNCiAgICAgICAgICAgICAgICBjaGVja1VuZG8oImVwZ01hcHBpbmciKTsNCiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZygiTUFQUElORyIpOw0KICAgICAgICAgICAgICAgIGRhdGEgPSBTRVJWRVJbInhlcGciXVsiZXBnTWFwcGluZyJdOw0KICAgICAgICAgICAgICAgIHZhciBrZXlzID0gZ2V0T2JqS2V5cyhkYXRhKTsNCiAgICAgICAgICAgICAgICBrZXlzLmZvckVhY2goa2V5ID0+IHsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVFIiKTsNCiAgICAgICAgICAgICAgICAgICAgdHIuaWQgPSBrZXk7DQogICAgICAgICAgICAgICAgICAgIC8vdHIuc2V0QXR0cmlidXRlKCdvbmNvbnRleHRtZW51JywgJ2phdmFzY3JpcHQ6IHJpZ2h0Q2xpY2sodGhpcyknKQ0KICAgICAgICAgICAgICAgICAgICBzd2l0Y2ggKGRhdGFba2V5XVsieC1hY3RpdmUiXSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSB0cnVlOg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyLmNsYXNzTmFtZSA9ICJhY3RpdmVFUEciOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSBmYWxzZToNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ci5jbGFzc05hbWUgPSAibm90QWN0aXZlRVBHIjsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAvLyBCdWxrDQogICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIkJVTEsiOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZmFsc2U7DQogICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgLy8gQ2hhbm5lbCBudW1iZXINCiAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiSU5QVVRDSEFOTkVMIjsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsieC1jaGFubmVsSUQiXTsNCiAgICAgICAgICAgICAgICAgICAgLy90ZC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogY2hhbmdlQ2hhbm5lbE51bWJlcigiJyArIGtleSArICciLCB0aGlzKScpDQogICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgLy8gTG9nbw0KICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJJTUciOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmltYWdlVVJMID0gZGF0YVtrZXldWyJ0dmctbG9nbyJdOw0KICAgICAgICAgICAgICAgICAgICB2YXIgdGQgPSBjZWxsLmNyZWF0ZUNlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgdGQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgibWFwcGluZyIsIHRoaXMpJyk7DQogICAgICAgICAgICAgICAgICAgIHRkLmlkID0ga2V5Ow0KICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZCh0ZCk7DQogICAgICAgICAgICAgICAgICAgIC8vIENoYW5uZWwgbmFtZQ0KICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jbGFzc05hbWUgPSBkYXRhW2tleV1bIngtY2F0ZWdvcnkiXTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsieC1uYW1lIl07DQogICAgICAgICAgICAgICAgICAgIHZhciB0ZCA9IGNlbGwuY3JlYXRlQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICB0ZC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJtYXBwaW5nIiwgdGhpcyknKTsNCiAgICAgICAgICAgICAgICAgICAgdGQuaWQgPSBrZXk7DQogICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKHRkKTsNCiAgICAgICAgICAgICAgICAgICAgLy8gUGxheWxpc3QNCiAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgIC8vY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsiX2ZpbGUubTN1Lm5hbWUiXSANCiAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGdldFZhbHVlRnJvbVByb3ZpZGVyRmlsZShkYXRhW2tleV1bIl9maWxlLm0zdS5pZCJdLCAibTN1IiwgIm5hbWUiKTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHRkID0gY2VsbC5jcmVhdGVDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgIHRkLnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoIm1hcHBpbmciLCB0aGlzKScpOw0KICAgICAgICAgICAgICAgICAgICB0ZC5pZCA9IGtleTsNCiAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQodGQpOw0KICAgICAgICAgICAgICAgICAgICAvLyBHcm91cCAoZ3JvdXAtdGl0bGUpDQogICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJ4LWdyb3VwLXRpdGxlIl07DQogICAgICAgICAgICAgICAgICAgIHZhciB0ZCA9IGNlbGwuY3JlYXRlQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICB0ZC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJtYXBwaW5nIiwgdGhpcyknKTsNCiAgICAgICAgICAgICAgICAgICAgdGQuaWQgPSBrZXk7DQogICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKHRkKTsNCiAgICAgICAgICAgICAgICAgICAgLy8gWE1MVFYgZmlsZQ0KICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgaWYgKGRhdGFba2V5XVsieC14bWx0di1maWxlIl0gIT0gIi0iKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZ2V0VmFsdWVGcm9tUHJvdmlkZXJGaWxlKGRhdGFba2V5XVsieC14bWx0di1maWxlIl0sICJ4bWx0diIsICJuYW1lIik7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgZWxzZSB7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJ4LXhtbHR2LWZpbGUiXTsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICB2YXIgdGQgPSBjZWxsLmNyZWF0ZUNlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgdGQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgibWFwcGluZyIsIHRoaXMpJyk7DQogICAgICAgICAgICAgICAgICAgIHRkLmlkID0ga2V5Ow0KICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZCh0ZCk7DQogICAgICAgICAgICAgICAgICAgIC8vIFhNTFRWIENoYW5uZWwNCiAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgIC8vdmFyIHZhbHVlID0gc3RyLnN1YnN0cmluZygxLCA0KTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHZhbHVlID0gZGF0YVtrZXldWyJ4LW1hcHBpbmciXTsNCiAgICAgICAgICAgICAgICAgICAgaWYgKHZhbHVlLmxlbmd0aCA+IDIwKSB7DQogICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IGRhdGFba2V5XVsieC1tYXBwaW5nIl0uc3Vic3RyaW5nKDAsIDIwKSArICIuLi4iOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSB2YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHRkID0gY2VsbC5jcmVhdGVDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgIHRkLnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoIm1hcHBpbmciLCB0aGlzKScpOw0KICAgICAgICAgICAgICAgICAgICB0ZC5pZCA9IGtleTsNCiAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQodGQpOw0KICAgICAgICAgICAgICAgICAgICAvLyBUaW1lU2hpZnQNCiAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bIngtdGltZXNoaWZ0Il07DQogICAgICAgICAgICAgICAgICAgIHZhciB0ZCA9IGNlbGwuY3JlYXRlQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICB0ZC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJtYXBwaW5nIiwgdGhpcyknKTsNCiAgICAgICAgICAgICAgICAgICAgdGQuaWQgPSBrZXk7DQogICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKHRkKTsNCiAgICAgICAgICAgICAgICAgICAgcm93cy5wdXNoKHRyKTsNCiAgICAgICAgICAgICAgICB9KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInNldHRpbmdzIjoNCiAgICAgICAgICAgICAgICBhbGVydCgpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZygiVGFibGUgY29udGVudCAobWVudUtleSk6IiwgbWVudUtleSk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIH0NCiAgICAgICAgcmV0dXJuIHJvd3M7DQogICAgfQ0KfQ0KY2xhc3MgQ2VsbCB7DQogICAgY3JlYXRlQ2VsbCgpIHsNCiAgICAgICAgbGV0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgaWYgKHRoaXMuY2hpbGQgPT0gdHJ1ZSkgew0KICAgICAgICAgICAgdmFyIGVsZW1lbnQ7DQogICAgICAgICAgICBzd2l0Y2ggKHRoaXMuY2hpbGRUeXBlKSB7DQogICAgICAgICAgICAgICAgY2FzZSAiUCI6DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KHRoaXMuY2hpbGRUeXBlKTsNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC5pbm5lckhUTUwgPSB0aGlzLnZhbHVlOw0KICAgICAgICAgICAgICAgICAgICBlbGVtZW50LmNsYXNzTmFtZSA9IHRoaXMuY2xhc3NOYW1lOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBjYXNlICJJTlBVVCI6DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KHRoaXMuY2hpbGRUeXBlKTsNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC52YWx1ZSA9IHRoaXMudmFsdWU7DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQudHlwZSA9ICJ0ZXh0IjsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAiSU5QVVRDSEFOTkVMIjoNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIklOUFVUIik7DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZzY3JpcHQ6IGNoYW5nZUNoYW5uZWxOdW1iZXIodGhpcykiKTsNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC52YWx1ZSA9IHRoaXMudmFsdWU7DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQudHlwZSA9ICJ0ZXh0IjsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAiQlVMSyI6DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJJTlBVVCIpOw0KICAgICAgICAgICAgICAgICAgICBlbGVtZW50LmNoZWNrZWQgPSB0aGlzLnZhbHVlOw0KICAgICAgICAgICAgICAgICAgICBlbGVtZW50LnR5cGUgPSAiY2hlY2tib3giOw0KICAgICAgICAgICAgICAgICAgICBlbGVtZW50LmNsYXNzTmFtZSA9ICJidWxrIGhpZGVCdWxrIjsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAiQlVMS19IRUFEIjoNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIklOUFVUIik7DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQuY2hlY2tlZCA9IHRoaXMudmFsdWU7DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQudHlwZSA9ICJjaGVja2JveCI7DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQuY2xhc3NOYW1lID0gImJ1bGsgaGlkZUJ1bGsiOw0KICAgICAgICAgICAgICAgICAgICBlbGVtZW50LnNldEF0dHJpYnV0ZSgib25jbGljayIsICJqYXZhc2NyaXB0OiBzZWxlY3RBbGxDaGFubmVscygpIik7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgIklNRyI6DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KHRoaXMuY2hpbGRUeXBlKTsNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC5zZXRBdHRyaWJ1dGUoInNyYyIsIHRoaXMuaW1hZ2VVUkwpOw0KICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5pbWFnZVVSTCAhPSAiIikgew0KICAgICAgICAgICAgICAgICAgICAgICAgZWxlbWVudC5zZXRBdHRyaWJ1dGUoIm9uZXJyb3IiLCAiamF2YXNjcmlwdDogdGhpcy5vbmVycm9yPW51bGw7dGhpcy5zcmM9JyciKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIC8vb25lcnJvcj0idGhpcy5vbmVycm9yPW51bGw7dGhpcy5zcmM9J21pc3NpbmcuZ2lmJzsiDQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIHRkLmFwcGVuZENoaWxkKGVsZW1lbnQpOw0KICAgICAgICB9DQogICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgdGQuaW5uZXJIVE1MID0gdGhpcy52YWx1ZTsNCiAgICAgICAgfQ0KICAgICAgICBpZiAodGhpcy5vbmNsaWNrID09IHRydWUpIHsNCiAgICAgICAgICAgIHRkLnNldEF0dHJpYnV0ZSgib25jbGljayIsIHRoaXMub25jbGlja0Z1bmN0aW9uKTsNCiAgICAgICAgICAgIHRkLmNsYXNzTmFtZSA9ICJwb2ludGVyIjsNCiAgICAgICAgfQ0KICAgICAgICBpZiAodGhpcy50ZENsYXNzTmFtZSAhPSB1bmRlZmluZWQpIHsNCiAgICAgICAgICAgIHRkLmNsYXNzTmFtZSA9IHRoaXMudGRDbGFzc05hbWU7DQogICAgICAgIH0NCiAgICAgICAgcmV0dXJuIHRkOw0KICAgIH0NCn0NCmNsYXNzIFNob3dDb250ZW50IGV4dGVuZHMgQ29udGVudCB7DQogICAgY29uc3RydWN0b3IobWVudUlEKSB7DQogICAgICAgIHN1cGVyKCk7DQogICAgICAgIHRoaXMubWVudUlEID0gbWVudUlEOw0KICAgIH0NCiAgICBjcmVhdGVJbnB1dCh0eXBlLCBuYW1lLCB2YWx1ZSkgew0KICAgICAgICBsZXQgaW5wdXQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJJTlBVVCIpOw0KICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInR5cGUiLCB0eXBlKTsNCiAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJuYW1lIiwgbmFtZSk7DQogICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgidmFsdWUiLCB2YWx1ZSk7DQogICAgICAgIHJldHVybiBpbnB1dDsNCiAgICB9DQogICAgc2hvdygpIHsNCiAgICAgICAgQ09MVU1OX1RPX1NPUlQgPSAtMTsNCiAgICAgICAgLy8gRGVsZXRlIG9sZCBjb250ZW50DQogICAgICAgIGxldCBkb2MgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCh0aGlzLkRvY3VtZW50SUQpOw0KICAgICAgICBkb2MuaW5uZXJIVE1MID0gIiI7DQogICAgICAgIHNob3dQcmV2aWV3KGZhbHNlKTsNCiAgICAgICAgLy8gSGVhZGxpbmUNCiAgICAgICAgbGV0IGhlYWRsaW5lID0gbWVudUl0ZW1zW3RoaXMubWVudUlEXS5oZWFkbGluZTsNCiAgICAgICAgbGV0IG1lbnVLZXkgPSBtZW51SXRlbXNbdGhpcy5tZW51SURdLm1lbnVLZXk7DQogICAgICAgIGxldCBoID0gdGhpcy5jcmVhdGVIZWFkbGluZShoZWFkbGluZSk7DQogICAgICAgIGRvYy5hcHBlbmRDaGlsZChoKTsNCiAgICAgICAgbGV0IGhyID0gdGhpcy5jcmVhdGVIUigpOw0KICAgICAgICBkb2MuYXBwZW5kQ2hpbGQoaHIpOw0KICAgICAgICAvLyBJbnRlcmFjdGlvbg0KICAgICAgICBsZXQgZGl2ID0gdGhpcy5jcmVhdGVJbnRlcmFjdGlvbigpOw0KICAgICAgICBkb2MuYXBwZW5kQ2hpbGQoZGl2KTsNCiAgICAgICAgbGV0IGludGVyYWN0aW9uID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQodGhpcy5pbnRlcmFjdGlvbklEKTsNCiAgICAgICAgc3dpdGNoIChtZW51S2V5KSB7DQogICAgICAgICAgICBjYXNlICJwbGF5bGlzdCI6DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gdGhpcy5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgbWVudUtleSwgInt7LmJ1dHRvbi5uZXd9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgiaWQiLCAiLSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoInBsYXlsaXN0IiknKTsNCiAgICAgICAgICAgICAgICBpbnRlcmFjdGlvbi5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJmaWx0ZXIiOg0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IHRoaXMuY3JlYXRlSW5wdXQoImJ1dHRvbiIsIG1lbnVLZXksICJ7ey5idXR0b24ubmV3fX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoImlkIiwgLTEpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoImZpbHRlciIsIHRoaXMpJyk7DQogICAgICAgICAgICAgICAgaW50ZXJhY3Rpb24uYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAieG1sdHYiOg0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IHRoaXMuY3JlYXRlSW5wdXQoImJ1dHRvbiIsIG1lbnVLZXksICJ7ey5idXR0b24ubmV3fX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoImlkIiwgInhtbHR2Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgieG1sdHYiKScpOw0KICAgICAgICAgICAgICAgIGludGVyYWN0aW9uLmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInVzZXJzIjoNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSB0aGlzLmNyZWF0ZUlucHV0KCJidXR0b24iLCBtZW51S2V5LCAie3suYnV0dG9uLm5ld319Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJpZCIsICJ1c2VycyIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoInVzZXJzIiknKTsNCiAgICAgICAgICAgICAgICBpbnRlcmFjdGlvbi5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJtYXBwaW5nIjoNCiAgICAgICAgICAgICAgICBzaG93RWxlbWVudCgibG9hZGluZyIsIHRydWUpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IHRoaXMuY3JlYXRlSW5wdXQoImJ1dHRvbiIsIG1lbnVLZXksICJ7ey5idXR0b24uc2F2ZX19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoIm1hcHBpbmciLCAiIiwgIiIpJyk7DQogICAgICAgICAgICAgICAgaW50ZXJhY3Rpb24uYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IHRoaXMuY3JlYXRlSW5wdXQoImJ1dHRvbiIsIG1lbnVLZXksICJ7ey5idXR0b24uYnVsa0VkaXR9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBidWxrRWRpdCgpJyk7DQogICAgICAgICAgICAgICAgaW50ZXJhY3Rpb24uYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IHRoaXMuY3JlYXRlSW5wdXQoInNlYXJjaCIsICJzZWFyY2giLCAiIik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJpZCIsICJzZWFyY2hNYXBwaW5nIik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5idXR0b24uc2VhcmNofX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5jbGFzc05hbWUgPSAic2VhcmNoIjsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgJ2phdmFzY3JpcHQ6IHNlYXJjaEluTWFwcGluZygpJyk7DQogICAgICAgICAgICAgICAgaW50ZXJhY3Rpb24uYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAic2V0dGluZ3MiOg0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IHRoaXMuY3JlYXRlSW5wdXQoImJ1dHRvbiIsIG1lbnVLZXksICJ7ey5idXR0b24uc2F2ZX19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IHNhdmVTZXR0aW5ncygpOycpOw0KICAgICAgICAgICAgICAgIGludGVyYWN0aW9uLmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSB0aGlzLmNyZWF0ZUlucHV0KCJidXR0b24iLCBtZW51S2V5LCAie3suYnV0dG9uLmJhY2t1cH19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IGJhY2t1cCgpOycpOw0KICAgICAgICAgICAgICAgIGludGVyYWN0aW9uLmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSB0aGlzLmNyZWF0ZUlucHV0KCJidXR0b24iLCBtZW51S2V5LCAie3suYnV0dG9uLnJlc3RvcmV9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiByZXN0b3JlKCk7Jyk7DQogICAgICAgICAgICAgICAgaW50ZXJhY3Rpb24uYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIHZhciB3cmFwcGVyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiRElWIik7DQogICAgICAgICAgICAgICAgd3JhcHBlci5zZXRBdHRyaWJ1dGUoImlkIiwgImJveC13cmFwcGVyIik7DQogICAgICAgICAgICAgICAgZG9jLmFwcGVuZENoaWxkKHdyYXBwZXIpOw0KICAgICAgICAgICAgICAgIHRoaXMuRGl2SUQgPSAiY29udGVudF9zZXR0aW5ncyI7DQogICAgICAgICAgICAgICAgdmFyIHNldHRpbmdzID0gdGhpcy5jcmVhdGVESVYoKTsNCiAgICAgICAgICAgICAgICB3cmFwcGVyLmFwcGVuZENoaWxkKHNldHRpbmdzKTsNCiAgICAgICAgICAgICAgICBzaG93U2V0dGluZ3MoKTsNCiAgICAgICAgICAgICAgICByZXR1cm47DQogICAgICAgICAgICBjYXNlICJsb2ciOg0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IHRoaXMuY3JlYXRlSW5wdXQoImJ1dHRvbiIsIG1lbnVLZXksICJ7ey5idXR0b24ucmVzZXRMb2dzfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogcmVzZXRMb2dzKCk7Jyk7DQogICAgICAgICAgICAgICAgaW50ZXJhY3Rpb24uYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIHZhciB3cmFwcGVyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiRElWIik7DQogICAgICAgICAgICAgICAgd3JhcHBlci5zZXRBdHRyaWJ1dGUoImlkIiwgImJveC13cmFwcGVyIik7DQogICAgICAgICAgICAgICAgZG9jLmFwcGVuZENoaWxkKHdyYXBwZXIpOw0KICAgICAgICAgICAgICAgIHRoaXMuRGl2SUQgPSAiY29udGVudF9sb2ciOw0KICAgICAgICAgICAgICAgIHZhciBsb2dzID0gdGhpcy5jcmVhdGVESVYoKTsNCiAgICAgICAgICAgICAgICB3cmFwcGVyLmFwcGVuZENoaWxkKGxvZ3MpOw0KICAgICAgICAgICAgICAgIHNob3dMb2dzKHRydWUpOw0KICAgICAgICAgICAgICAgIHJldHVybjsNCiAgICAgICAgICAgIGNhc2UgImxvZ291dCI6DQogICAgICAgICAgICAgICAgbG9jYXRpb24ucmVsb2FkKCk7DQogICAgICAgICAgICAgICAgZG9jdW1lbnQuY29va2llID0gIlRva2VuPSA7IGV4cGlyZXMgPSBUaHUsIDAxIEphbiAxOTcwIDAwOjAwOjAwIEdNVCI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBkZWZhdWx0Og0KICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKCJTaG93IGNvbnRlbnQgKG1lbnVLZXkpOiIsIG1lbnVLZXkpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICB9DQogICAgICAgIC8vIENyZWF0ZSB0YWJsZSAoaWYgbmVlZGVkKQ0KICAgICAgICB2YXIgdGFibGVIZWFkZXIgPSBtZW51SXRlbXNbdGhpcy5tZW51SURdLnRhYmxlSGVhZGVyOw0KICAgICAgICBpZiAodGFibGVIZWFkZXIubGVuZ3RoID4gMCkgew0KICAgICAgICAgICAgdmFyIHdyYXBwZXIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJESVYiKTsNCiAgICAgICAgICAgIGRvYy5hcHBlbmRDaGlsZCh3cmFwcGVyKTsNCiAgICAgICAgICAgIHdyYXBwZXIuc2V0QXR0cmlidXRlKCJpZCIsICJib3gtd3JhcHBlciIpOw0KICAgICAgICAgICAgdmFyIHRhYmxlID0gdGhpcy5jcmVhdGVUQUJMRSgpOw0KICAgICAgICAgICAgd3JhcHBlci5hcHBlbmRDaGlsZCh0YWJsZSk7DQogICAgICAgICAgICB2YXIgaGVhZGVyID0gdGhpcy5jcmVhdGVUYWJsZVJvdygpOw0KICAgICAgICAgICAgdGFibGUuYXBwZW5kQ2hpbGQoaGVhZGVyKTsNCiAgICAgICAgICAgIC8vIFRhYmxlIGhlYWRlcg0KICAgICAgICAgICAgdGFibGVIZWFkZXIuZm9yRWFjaChlbGVtZW50ID0+IHsNCiAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGVsZW1lbnQ7DQogICAgICAgICAgICAgICAgaWYgKGVsZW1lbnQgPT0gIkJVTEsiKSB7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIkJVTEtfSEVBRCI7DQogICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBmYWxzZTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgaWYgKG1lbnVLZXkgPT0gIm1hcHBpbmciKSB7DQogICAgICAgICAgICAgICAgICAgIGlmIChlbGVtZW50ID09ICJ7ey5tYXBwaW5nLnRhYmxlLmNoTm99fSIpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwub25jbGljayA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLm9uY2xpY2tGdW5jdGlvbiA9ICJqYXZhc2NyaXB0OiBzb3J0VGFibGUoMSk7IjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudGRDbGFzc05hbWUgPSAic29ydFRoaXMiOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIGlmIChlbGVtZW50ID09ICJ7ey5tYXBwaW5nLnRhYmxlLmNoYW5uZWxOYW1lfX0iKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLm9uY2xpY2sgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5vbmNsaWNrRnVuY3Rpb24gPSAiamF2YXNjcmlwdDogc29ydFRhYmxlKDMpOyI7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgaWYgKGVsZW1lbnQgPT0gInt7Lm1hcHBpbmcudGFibGUucGxheWxpc3R9fSIpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwub25jbGljayA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLm9uY2xpY2tGdW5jdGlvbiA9ICJqYXZhc2NyaXB0OiBzb3J0VGFibGUoNCk7IjsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBpZiAoZWxlbWVudCA9PSAie3subWFwcGluZy50YWJsZS5ncm91cFRpdGxlfX0iKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLm9uY2xpY2sgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5vbmNsaWNrRnVuY3Rpb24gPSAiamF2YXNjcmlwdDogc29ydFRhYmxlKDUpOyI7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgaWYgKGVsZW1lbnQgPT0gInt7Lm1hcHBpbmcudGFibGUudGltZXNoaWZ0fX0iKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLm9uY2xpY2sgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5vbmNsaWNrRnVuY3Rpb24gPSAiamF2YXNjcmlwdDogc29ydFRhYmxlKDgpOyI7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgaGVhZGVyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgIH0pOw0KICAgICAgICAgICAgdGFibGUuYXBwZW5kQ2hpbGQoaGVhZGVyKTsNCiAgICAgICAgICAgIC8vIENvbnRlbnQgb2YgdGhlIHRhYmxlDQogICAgICAgICAgICB2YXIgcm93cyA9IHRoaXMuY3JlYXRlVGFibGVDb250ZW50KG1lbnVLZXkpOw0KICAgICAgICAgICAgcm93cy5mb3JFYWNoKHRyID0+IHsNCiAgICAgICAgICAgICAgICB0YWJsZS5hcHBlbmRDaGlsZCh0cik7DQogICAgICAgICAgICB9KTsNCiAgICAgICAgfQ0KICAgICAgICBzd2l0Y2ggKG1lbnVLZXkpIHsNCiAgICAgICAgICAgIGNhc2UgIm1hcHBpbmciOg0KICAgICAgICAgICAgICAgIHNvcnRUYWJsZSgxKTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImZpbHRlciI6DQogICAgICAgICAgICAgICAgc2hvd1ByZXZpZXcodHJ1ZSk7DQogICAgICAgICAgICAgICAgc29ydFRhYmxlKDApOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgICAgICBDT0xVTU5fVE9fU09SVCA9IC0xOw0KICAgICAgICAgICAgICAgIHNvcnRUYWJsZSgwKTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgfQ0KICAgICAgICBzaG93RWxlbWVudCgibG9hZGluZyIsIGZhbHNlKTsNCiAgICB9DQp9DQpmdW5jdGlvbiBQYWdlUmVhZHkoKSB7DQogICAgbGV0IHNlcnZlciA9IG5ldyBTZXJ2ZXIoImdldFNlcnZlckNvbmZpZyIpOw0KICAgIHNlcnZlci5yZXF1ZXN0KHt9KTsNCiAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigicmVzaXplIiwgZnVuY3Rpb24gKCkgew0KICAgICAgICBjYWxjdWxhdGVXcmFwcGVySGVpZ2h0KCk7DQogICAgfSwgdHJ1ZSk7DQogICAgc2V0SW50ZXJ2YWwoZnVuY3Rpb24gKCkgew0KICAgICAgICB1cGRhdGVMb2coKTsNCiAgICB9LCAxMDAwMCk7DQogICAgcmV0dXJuOw0KfQ0KZnVuY3Rpb24gY3JlYXRlTGF5b3V0KCkgew0KICAgIC8vIENsaWVudCBJbmZvDQogICAgbGV0IG9iaiA9IFNFUlZFUlsiY2xpZW50SW5mbyJdOw0KICAgIGxldCBrZXlzID0gZ2V0T2JqS2V5cyhvYmopOw0KICAgIGZvciAodmFyIGkgPSAwOyBpIDwga2V5cy5sZW5ndGg7IGkrKykgew0KICAgICAgICBpZiAoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoa2V5c1tpXSkpIHsNCiAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGtleXNbaV0pLmlubmVySFRNTCA9IG9ialtrZXlzW2ldXTsNCiAgICAgICAgfQ0KICAgIH0NCiAgICBpZiAoIWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJtYWluLW1lbnUiKSkgew0KICAgICAgICByZXR1cm47DQogICAgfQ0KICAgIC8vIENyZWF0ZSBtZW51DQogICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm1haW4tbWVudSIpLmlubmVySFRNTCA9ICIiOw0KICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbWVudUl0ZW1zLmxlbmd0aDsgaSsrKSB7DQogICAgICAgIG1lbnVJdGVtc1tpXS5pZCA9IGk7DQogICAgICAgIHN3aXRjaCAobWVudUl0ZW1zW2ldWyJtZW51S2V5Il0pIHsNCiAgICAgICAgICAgIGNhc2UgInVzZXJzIjoNCiAgICAgICAgICAgIGNhc2UgImxvZ291dCI6DQogICAgICAgICAgICAgICAgaWYgKFNFUlZFUlsic2V0dGluZ3MiXVsiYXV0aGVudGljYXRpb24ud2ViIl0gPT0gdHJ1ZSkgew0KICAgICAgICAgICAgICAgICAgICBtZW51SXRlbXNbaV0uY3JlYXRlSXRlbSgpOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgIm1hcHBpbmciOg0KICAgICAgICAgICAgY2FzZSAieG1sdHYiOg0KICAgICAgICAgICAgICAgIGlmIChTRVJWRVJbImNsaWVudEluZm8iXVsiZXBnU291cmNlIl0gPT0gIlhFUEciKSB7DQogICAgICAgICAgICAgICAgICAgIG1lbnVJdGVtc1tpXS5jcmVhdGVJdGVtKCk7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgICAgICBtZW51SXRlbXNbaV0uY3JlYXRlSXRlbSgpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICB9DQogICAgfQ0KICAgIHJldHVybjsNCn0NCmZ1bmN0aW9uIG9wZW5UaGlzTWVudShlbGVtZW50KSB7DQogICAgbGV0IGlkID0gZWxlbWVudC5pZDsNCiAgICBsZXQgY29udGVudCA9IG5ldyBTaG93Q29udGVudChpZCk7DQogICAgY29udGVudC5zaG93KCk7DQogICAgY2FsY3VsYXRlV3JhcHBlckhlaWdodCgpOw0KICAgIHJldHVybjsNCn0NCmNsYXNzIFBvcHVwV2luZG93IHsNCiAgICBjb25zdHJ1Y3RvcigpIHsNCiAgICAgICAgdGhpcy5Eb2N1bWVudElEID0gInBvcHVwLWN1c3RvbSI7DQogICAgICAgIHRoaXMuSW50ZXJhY3Rpb25JRCA9ICJpbnRlcmFjdGlvbiI7DQogICAgICAgIHRoaXMuZG9jID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQodGhpcy5Eb2N1bWVudElEKTsNCiAgICB9DQogICAgY3JlYXRlVGl0bGUodGl0bGUpIHsNCiAgICAgICAgbGV0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgdGQuY2xhc3NOYW1lID0gImxlZnQiOw0KICAgICAgICB0ZC5pbm5lckhUTUwgPSB0aXRsZSArICI6IjsNCiAgICAgICAgcmV0dXJuIHRkOw0KICAgIH0NCiAgICBjcmVhdGVDb250ZW50KGVsZW1lbnQpIHsNCiAgICAgICAgbGV0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgdGQuYXBwZW5kQ2hpbGQoZWxlbWVudCk7DQogICAgICAgIHJldHVybiB0ZDsNCiAgICB9DQogICAgY3JlYXRlSW50ZXJhY3Rpb24oKSB7DQogICAgICAgIGxldCBkaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsNCiAgICAgICAgZGl2LnNldEF0dHJpYnV0ZSgiaWQiLCAicG9wdXAtaW50ZXJhY3Rpb24iKTsNCiAgICAgICAgZGl2LmNsYXNzTmFtZSA9ICJpbnRlcmFjdGlvbiI7DQogICAgICAgIHRoaXMuZG9jLmFwcGVuZENoaWxkKGRpdik7DQogICAgfQ0KfQ0KY2xhc3MgUG9wdXBDb250ZW50IGV4dGVuZHMgUG9wdXBXaW5kb3cgew0KICAgIGNvbnN0cnVjdG9yKCkgew0KICAgICAgICBzdXBlciguLi5hcmd1bWVudHMpOw0KICAgICAgICB0aGlzLnRhYmxlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEFCTEUiKTsNCiAgICB9DQogICAgY3JlYXRlSGVhZGxpbmUoaGVhZGxpbmUpIHsNCiAgICAgICAgdGhpcy5kb2MuaW5uZXJIVE1MID0gIiI7DQogICAgICAgIHZhciBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiSDMiKTsNCiAgICAgICAgZWxlbWVudC5pbm5lckhUTUwgPSBoZWFkbGluZS50b1VwcGVyQ2FzZSgpOw0KICAgICAgICB0aGlzLmRvYy5hcHBlbmRDaGlsZChlbGVtZW50KTsNCiAgICAgICAgLy8gQ3JlYXRlIHRhYmxlDQogICAgICAgIHRoaXMudGFibGUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJUQUJMRSIpOw0KICAgICAgICB0aGlzLmRvYy5hcHBlbmRDaGlsZCh0aGlzLnRhYmxlKTsNCiAgICB9DQogICAgYXBwZW5kUm93KHRpdGxlLCBlbGVtZW50KSB7DQogICAgICAgIGxldCB0ciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlRSIik7DQogICAgICAgIC8vIFRpdGxlDQogICAgICAgIGlmICh0aXRsZS5sZW5ndGggIT0gMCkgew0KICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQodGhpcy5jcmVhdGVUaXRsZSh0aXRsZSkpOw0KICAgICAgICB9DQogICAgICAgIC8vIENvbnRlbnQNCiAgICAgICAgdHIuYXBwZW5kQ2hpbGQodGhpcy5jcmVhdGVDb250ZW50KGVsZW1lbnQpKTsNCiAgICAgICAgdGhpcy50YWJsZS5hcHBlbmRDaGlsZCh0cik7DQogICAgfQ0KICAgIGNyZWF0ZUlucHV0KHR5cGUsIG5hbWUsIHZhbHVlKSB7DQogICAgICAgIGxldCBpbnB1dCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIklOUFVUIik7DQogICAgICAgIGlmICh2YWx1ZSA9PSB1bmRlZmluZWQpIHsNCiAgICAgICAgICAgIHZhbHVlID0gIiI7DQogICAgICAgIH0NCiAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJ0eXBlIiwgdHlwZSk7DQogICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgibmFtZSIsIG5hbWUpOw0KICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInZhbHVlIiwgdmFsdWUpOw0KICAgICAgICByZXR1cm4gaW5wdXQ7DQogICAgfQ0KICAgIGNyZWF0ZUNoZWNrYm94KG5hbWUpIHsNCiAgICAgICAgbGV0IGlucHV0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiSU5QVVQiKTsNCiAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJ0eXBlIiwgImNoZWNrYm94Iik7DQogICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgibmFtZSIsIG5hbWUpOw0KICAgICAgICByZXR1cm4gaW5wdXQ7DQogICAgfQ0KICAgIC8vIENyZWF0ZXMgYSBzZWxlY3Rpb24gb2YgbXVsdGlwbGUgb3B0aW9ucyB2YWx1ZXMgd2l0aCB0ZXh0IGRlc2NyaXB0aW9ucw0KICAgIGNyZWF0ZVNlbGVjdCh0ZXh0LCB2YWx1ZXMsIHNldCwgZGJLZXkpIHsNCiAgICAgICAgbGV0IHNlbGVjdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlNFTEVDVCIpOw0KICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJuYW1lIiwgZGJLZXkpOw0KICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRleHQubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgICAgIGxldCBvcHRpb24gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJPUFRJT04iKTsNCiAgICAgICAgICAgIG9wdGlvbi5zZXRBdHRyaWJ1dGUoInZhbHVlIiwgdmFsdWVzW2ldKTsNCiAgICAgICAgICAgIG9wdGlvbi5pbm5lclRleHQgPSB0ZXh0W2ldOw0KICAgICAgICAgICAgc2VsZWN0LmFwcGVuZENoaWxkKG9wdGlvbik7DQogICAgICAgIH0NCiAgICAgICAgaWYgKHNldCAhPSAiIikgew0KICAgICAgICAgICAgc2VsZWN0LnZhbHVlID0gc2V0Ow0KICAgICAgICB9DQogICAgICAgIGlmIChzZXQgPT0gdW5kZWZpbmVkKSB7DQogICAgICAgICAgICBzZWxlY3QudmFsdWUgPSB2YWx1ZXNbMF07DQogICAgICAgIH0NCiAgICAgICAgcmV0dXJuIHNlbGVjdDsNCiAgICB9DQogICAgc2VsZWN0T3B0aW9uKHNlbGVjdCwgdmFsdWUpIHsNCiAgICAgICAgLy9zZWxlY3Quc2VsZWN0ZWRPcHRpb25zID0gdmFsdWUNCiAgICAgICAgbGV0IHMgPSBzZWxlY3Q7DQogICAgICAgIHMub3B0aW9uc1tzLnNlbGVjdGVkSW5kZXhdLnZhbHVlID0gdmFsdWU7DQogICAgICAgIHJldHVybiBzZWxlY3Q7DQogICAgfQ0KICAgIGRlc2NyaXB0aW9uKHZhbHVlKSB7DQogICAgICAgIGxldCB0ciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlRSIik7DQogICAgICAgIGxldCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgIGxldCBzcGFuID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiUFJFIik7DQogICAgICAgIHNwYW4uaW5uZXJIVE1MID0gdmFsdWU7DQogICAgICAgIHRyLmFwcGVuZENoaWxkKHRkKTsNCiAgICAgICAgdHIuYXBwZW5kQ2hpbGQodGhpcy5jcmVhdGVDb250ZW50KHNwYW4pKTsNCiAgICAgICAgdGhpcy50YWJsZS5hcHBlbmRDaGlsZCh0cik7DQogICAgfQ0KICAgIC8vIEludGVyYWN0aW9uDQogICAgYWRkSW50ZXJhY3Rpb24oZWxlbWVudCkgew0KICAgICAgICBsZXQgaW50ZXJhY3Rpb24gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicG9wdXAtaW50ZXJhY3Rpb24iKTsNCiAgICAgICAgaW50ZXJhY3Rpb24uYXBwZW5kQ2hpbGQoZWxlbWVudCk7DQogICAgfQ0KfQ0KZnVuY3Rpb24gb3BlblBvcFVwKGRhdGFUeXBlLCBlbGVtZW50KSB7DQogICAgbGV0IGRhdGEgPSB7fTsNCiAgICBsZXQgaWQ7DQogICAgc3dpdGNoIChlbGVtZW50KSB7DQogICAgICAgIGNhc2UgdW5kZWZpbmVkOg0KICAgICAgICAgICAgc3dpdGNoIChkYXRhVHlwZSkgew0KICAgICAgICAgICAgICAgIGNhc2UgImdyb3VwLXRpdGxlIjoNCiAgICAgICAgICAgICAgICAgICAgaWYgKGlkID09IHVuZGVmaW5lZCkgew0KICAgICAgICAgICAgICAgICAgICAgICAgaWQgPSAtMTsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBkYXRhID0gZ2V0TG9jYWxEYXRhKCJmaWx0ZXIiLCBpZCk7DQogICAgICAgICAgICAgICAgICAgIGRhdGFbInR5cGUiXSA9ICJncm91cC10aXRsZSI7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgImN1c3RvbS1maWx0ZXIiOg0KICAgICAgICAgICAgICAgICAgICBpZiAoaWQgPT0gdW5kZWZpbmVkKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBpZCA9IC0xOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIGRhdGEgPSBnZXRMb2NhbERhdGEoImZpbHRlciIsIGlkKTsNCiAgICAgICAgICAgICAgICAgICAgZGF0YVsidHlwZSJdID0gImN1c3RvbS1maWx0ZXIiOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBkZWZhdWx0Og0KICAgICAgICAgICAgICAgICAgICBkYXRhWyJpZC5wcm92aWRlciJdID0gIi0iOw0KICAgICAgICAgICAgICAgICAgICBkYXRhWyJ0eXBlIl0gPSBkYXRhVHlwZTsNCiAgICAgICAgICAgICAgICAgICAgaWQgPSAiLSI7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICBpZCA9IGVsZW1lbnQuaWQ7DQogICAgICAgICAgICBkYXRhID0gZ2V0TG9jYWxEYXRhKGRhdGFUeXBlLCBpZCk7DQogICAgICAgICAgICBicmVhazsNCiAgICB9DQogICAgbGV0IGNvbnRlbnQgPSBuZXcgUG9wdXBDb250ZW50KCk7DQogICAgc3dpdGNoIChkYXRhVHlwZSkgew0KICAgICAgICBjYXNlICJwbGF5bGlzdCI6DQogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUhlYWRsaW5lKCJ7ey5wbGF5bGlzdC5wbGF5bGlzdFR5cGUudGl0bGV9fSIpOw0KICAgICAgICAgICAgLy8gVHlwZQ0KICAgICAgICAgICAgdmFyIHRleHQgPSBbIk0zVSIsICJIREhvbWVSdW4iXTsNCiAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBbImphdmFzY3JpcHQ6IG9wZW5Qb3BVcCgnbTN1JykiLCAiamF2YXNjcmlwdDogb3BlblBvcFVwKCdoZGhyJykiXTsNCiAgICAgICAgICAgIHZhciBzZWxlY3QgPSBjb250ZW50LmNyZWF0ZVNlbGVjdCh0ZXh0LCB2YWx1ZXMsICIiLCAidHlwZSIpOw0KICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgiaWQiLCAidHlwZSIpOw0KICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAnamF2YXNjcmlwdDogY2hhbmdlQnV0dG9uQWN0aW9uKHRoaXMsICJuZXh0IiwgIm9uY2xpY2siKScpOyAvLyBjaGFuZ2VCdXR0b25BY3Rpb24NCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5wbGF5bGlzdC50eXBlLnRpdGxlfX0iLCBzZWxlY3QpOw0KICAgICAgICAgICAgLy8gSW50ZXJhY3Rpb24NCiAgICAgICAgICAgIGNvbnRlbnQuY3JlYXRlSW50ZXJhY3Rpb24oKTsNCiAgICAgICAgICAgIC8vIEFib3J0DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAiY2FuY2VsIiwgInt7LmJ1dHRvbi5jYW5jZWx9fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IHNob3dFbGVtZW50KCJwb3B1cCIsIGZhbHNlKTsnKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgLy8gTmV4dA0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgIm5leHQiLCAie3suYnV0dG9uLm5leHR9fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgibTN1IiknKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgiaWQiLCAnbmV4dCcpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSAibTN1IjoNCiAgICAgICAgICAgIGNvbnRlbnQuY3JlYXRlSGVhZGxpbmUoZGF0YVR5cGUpOw0KICAgICAgICAgICAgLy8gTmFtZQ0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gIm5hbWUiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnBsYXlsaXN0Lm5hbWUucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnBsYXlsaXN0Lm5hbWUudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIERlc2NyaXB0aW9uDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAiZGVzY3JpcHRpb24iOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnBsYXlsaXN0LmRlc2NyaXB0aW9uLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5wbGF5bGlzdC5kZXNjcmlwdGlvbi50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgLy8gVVJMDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAiZmlsZS5zb3VyY2UiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnBsYXlsaXN0LmZpbGVNM1UucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnBsYXlsaXN0LmZpbGVNM1UudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIFR1bmVyDQogICAgICAgICAgICBpZiAoU0VSVkVSWyJzZXR0aW5ncyJdWyJidWZmZXIiXSAhPSAiLSIpIHsNCiAgICAgICAgICAgICAgICB2YXIgdGV4dCA9IFtdOw0KICAgICAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBbXTsNCiAgICAgICAgICAgICAgICBmb3IgKHZhciBpID0gMTsgaSA8PSAxMDA7IGkrKykgew0KICAgICAgICAgICAgICAgICAgICB0ZXh0LnB1c2goaS50b1N0cmluZygpKTsNCiAgICAgICAgICAgICAgICAgICAgdmFsdWVzLnB1c2goaS50b1N0cmluZygpKTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgdmFyIGRiS2V5ID0gInR1bmVyIjsNCiAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCBkYXRhW2RiS2V5XSwgZGJLZXkpOw0KICAgICAgICAgICAgICAgIHNlbGVjdC5zZXRBdHRyaWJ1dGUoIm9uZm9jdXMiLCAiamF2YXNjcmlwdDogcmV0dXJuOyIpOw0KICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5wbGF5bGlzdC50dW5lci50aXRsZX19Iiwgc2VsZWN0KTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgICAgIHZhciBkYktleSA9ICJ0dW5lciI7DQogICAgICAgICAgICAgICAgaWYgKGRhdGFbZGJLZXldID09IHVuZGVmaW5lZCkgew0KICAgICAgICAgICAgICAgICAgICBkYXRhW2RiS2V5XSA9IDE7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicmVhZG9ubHkiLCAidHJ1ZSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LmNsYXNzTmFtZSA9ICJub3RBdmFpbGFibGUiOw0KICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5wbGF5bGlzdC50dW5lci50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgY29udGVudC5kZXNjcmlwdGlvbigie3sucGxheWxpc3QudHVuZXIuZGVzY3JpcHRpb259fSIpOw0KICAgICAgICAgICAgLy8gSW50ZXJhdGlvbg0KICAgICAgICAgICAgY29udGVudC5jcmVhdGVJbnRlcmFjdGlvbigpOw0KICAgICAgICAgICAgLy8gRGVsZXRlDQogICAgICAgICAgICBpZiAoZGF0YVsiaWQucHJvdmlkZXIiXSAhPSAiLSIpIHsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAiZGVsZXRlIiwgInt7LmJ1dHRvbi5kZWxldGV9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LmNsYXNzTmFtZSA9ICJkZWxldGUiOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBzYXZlUG9wdXBEYXRhKCJtM3UiLCAiJyArIGlkICsgJyIsIHRydWUsIDApJyk7DQogICAgICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAiYmFjayIsICJ7ey5idXR0b24uYmFja319Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgicGxheWxpc3QiKScpOw0KICAgICAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgLy8gQWJvcnQNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJjYW5jZWwiLCAie3suYnV0dG9uLmNhbmNlbH19Iik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogc2hvd0VsZW1lbnQoInBvcHVwIiwgZmFsc2UpOycpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICAvLyBVcGRhdGUNCiAgICAgICAgICAgIGlmIChkYXRhWyJpZC5wcm92aWRlciJdICE9ICItIikgew0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJ1cGRhdGUiLCAie3suYnV0dG9uLnVwZGF0ZX19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoIm0zdSIsICInICsgaWQgKyAnIiwgZmFsc2UsIDEpJyk7DQogICAgICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICAvLyBTYXZlDQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAic2F2ZSIsICJ7ey5idXR0b24uc2F2ZX19Iik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogc2F2ZVBvcHVwRGF0YSgibTN1IiwgIicgKyBpZCArICciLCBmYWxzZSwgMCknKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGNhc2UgImhkaHIiOg0KICAgICAgICAgICAgY29udGVudC5jcmVhdGVIZWFkbGluZShkYXRhVHlwZSk7DQogICAgICAgICAgICAvLyBOYW1lDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAibmFtZSI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3sucGxheWxpc3QubmFtZS5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sucGxheWxpc3QubmFtZS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgLy8gRGVzY3JpcHRpb24NCiAgICAgICAgICAgIHZhciBkYktleSA9ICJkZXNjcmlwdGlvbiI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3sucGxheWxpc3QuZGVzY3JpcHRpb24ucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnBsYXlsaXN0LmRlc2NyaXB0aW9uLnBsYWNlaG9sZGVyfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBVUkwNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJmaWxlLnNvdXJjZSI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3sucGxheWxpc3QuZmlsZUhESFIucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnBsYXlsaXN0LmZpbGVIREhSLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBUdW5lcg0KICAgICAgICAgICAgaWYgKFNFUlZFUlsic2V0dGluZ3MiXVsiYnVmZmVyIl0gIT0gIi0iKSB7DQogICAgICAgICAgICAgICAgdmFyIHRleHQgPSBbXTsNCiAgICAgICAgICAgICAgICB2YXIgdmFsdWVzID0gW107DQogICAgICAgICAgICAgICAgZm9yICh2YXIgaSA9IDE7IGkgPD0gMTAwOyBpKyspIHsNCiAgICAgICAgICAgICAgICAgICAgdGV4dC5wdXNoKGkudG9TdHJpbmcoKSk7DQogICAgICAgICAgICAgICAgICAgIHZhbHVlcy5wdXNoKGkudG9TdHJpbmcoKSk7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIHZhciBkYktleSA9ICJ0dW5lciI7DQogICAgICAgICAgICAgICAgdmFyIHNlbGVjdCA9IGNvbnRlbnQuY3JlYXRlU2VsZWN0KHRleHQsIHZhbHVlcywgZGF0YVtkYktleV0sIGRiS2V5KTsNCiAgICAgICAgICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJvbmZvY3VzIiwgImphdmFzY3JpcHQ6IHJldHVybjsiKTsNCiAgICAgICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sucGxheWxpc3QudHVuZXIudGl0bGV9fSIsIHNlbGVjdCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICB2YXIgZGJLZXkgPSAidHVuZXIiOw0KICAgICAgICAgICAgICAgIGlmIChkYXRhW2RiS2V5XSA9PSB1bmRlZmluZWQpIHsNCiAgICAgICAgICAgICAgICAgICAgZGF0YVtkYktleV0gPSAxOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInJlYWRvbmx5IiwgInRydWUiKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5jbGFzc05hbWUgPSAibm90QXZhaWxhYmxlIjsNCiAgICAgICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sucGxheWxpc3QudHVuZXIudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGNvbnRlbnQuZGVzY3JpcHRpb24oInt7LnBsYXlsaXN0LnR1bmVyLmRlc2NyaXB0aW9ufX0iKTsNCiAgICAgICAgICAgIC8vIEludGVyYWN0aW9uDQogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUludGVyYWN0aW9uKCk7DQogICAgICAgICAgICAvLyBEZWxldGUNCiAgICAgICAgICAgIGlmIChkYXRhWyJpZC5wcm92aWRlciJdICE9ICItIikgew0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJkZWxldGUiLCAie3suYnV0dG9uLmRlbGV0ZX19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoImhkaHIiLCAiJyArIGlkICsgJyIsIHRydWUsIDApJyk7DQogICAgICAgICAgICAgICAgaW5wdXQuY2xhc3NOYW1lID0gImRlbGV0ZSI7DQogICAgICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAiYmFjayIsICJ7ey5idXR0b24uYmFja319Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgicGxheWxpc3QiKScpOw0KICAgICAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgLy8gQWJvcnQNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJjYW5jZWwiLCAie3suYnV0dG9uLmNhbmNlbH19Iik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogc2hvd0VsZW1lbnQoInBvcHVwIiwgZmFsc2UpOycpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICAvLyBVcGRhdGUNCiAgICAgICAgICAgIGlmIChkYXRhWyJpZC5wcm92aWRlciJdICE9ICItIikgew0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJ1cGRhdGUiLCAie3suYnV0dG9uLnVwZGF0ZX19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoImhkaHIiLCAiJyArIGlkICsgJyIsIGZhbHNlLCAxKScpOw0KICAgICAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgLy8gU2F2ZQ0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgInNhdmUiLCAie3suYnV0dG9uLnNhdmV9fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoImhkaHIiLCAiJyArIGlkICsgJyIsIGZhbHNlLCAwKScpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSAiZmlsdGVyIjoNCiAgICAgICAgICAgIGNvbnRlbnQuY3JlYXRlSGVhZGxpbmUoZGF0YVR5cGUpOw0KICAgICAgICAgICAgLy8gVHlwZQ0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gInR5cGUiOw0KICAgICAgICAgICAgdmFyIHRleHQgPSBbIk0zVTogIiArICJ7ey5maWx0ZXIudHlwZS5ncm91cFRpdGxlfX0iLCAieFRlVmU6ICIgKyAie3suZmlsdGVyLnR5cGUuY3VzdG9tRmlsdGVyfX0iXTsNCiAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBbImphdmFzY3JpcHQ6IG9wZW5Qb3BVcCgnZ3JvdXAtdGl0bGUnKSIsICJqYXZhc2NyaXB0OiBvcGVuUG9wVXAoJ2N1c3RvbS1maWx0ZXInKSJdOw0KICAgICAgICAgICAgdmFyIHNlbGVjdCA9IGNvbnRlbnQuY3JlYXRlU2VsZWN0KHRleHQsIHZhbHVlcywgImphdmFzY3JpcHQ6IG9wZW5Qb3BVcCgnZ3JvdXAtdGl0bGUnKSIsIGRiS2V5KTsNCiAgICAgICAgICAgIHNlbGVjdC5zZXRBdHRyaWJ1dGUoImlkIiwgaWQpOw0KICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAnamF2YXNjcmlwdDogY2hhbmdlQnV0dG9uQWN0aW9uKHRoaXMsICJuZXh0IiwgIm9uY2xpY2siKTsnKTsgLy8gY2hhbmdlQnV0dG9uQWN0aW9uDQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3suZmlsdGVyLnR5cGUudGl0bGV9fSIsIHNlbGVjdCk7DQogICAgICAgICAgICAvLyBJbnRlcmFjdGlvbg0KICAgICAgICAgICAgY29udGVudC5jcmVhdGVJbnRlcmFjdGlvbigpOw0KICAgICAgICAgICAgLy8gQWJvcnQNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJjYW5jZWwiLCAie3suYnV0dG9uLmNhbmNlbH19Iik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogc2hvd0VsZW1lbnQoInBvcHVwIiwgZmFsc2UpOycpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICAvLyBOZXh0DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAibmV4dCIsICJ7ey5idXR0b24ubmV4dH19Iik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJncm91cC10aXRsZSIpJyk7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoImlkIiwgJ25leHQnKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGNhc2UgImN1c3RvbS1maWx0ZXIiOg0KICAgICAgICBjYXNlICJncm91cC10aXRsZSI6DQogICAgICAgICAgICBzd2l0Y2ggKGRhdGFUeXBlKSB7DQogICAgICAgICAgICAgICAgY2FzZSAiY3VzdG9tLWZpbHRlciI6DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuY3JlYXRlSGVhZGxpbmUoInt7LmZpbHRlci5jdXN0b219fSIgKyAiIEZpbHRlciIpOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBjYXNlICJncm91cC10aXRsZSI6DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuY3JlYXRlSGVhZGxpbmUoInt7LmZpbHRlci5ncm91cH19IiArICIgRmlsdGVyIik7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgLy8gTmFtZSAgICAgIA0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gIm5hbWUiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LmZpbHRlci5uYW1lLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5maWx0ZXIubmFtZS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgLy8gRGVzY3JpcHRpb24NCiAgICAgICAgICAgIHZhciBkYktleSA9ICJkZXNjcmlwdGlvbiI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3suZmlsdGVyLmRlc2NyaXB0aW9uLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5maWx0ZXIuZGVzY3JpcHRpb24udGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIFR5cGUNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJ0eXBlIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImhpZGRlbiIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygiIiwgaW5wdXQpOw0KICAgICAgICAgICAgdmFyIGZpbHRlclR5cGUgPSBkYXRhW2RiS2V5XTsNCiAgICAgICAgICAgIHN3aXRjaCAoZmlsdGVyVHlwZSkgew0KICAgICAgICAgICAgICAgIGNhc2UgImN1c3RvbS1maWx0ZXIiOg0KICAgICAgICAgICAgICAgICAgICAvLyBDYXNlIHNlbnNpdGl2ZQ0KICAgICAgICAgICAgICAgICAgICB2YXIgZGJLZXkgPSAiY2FzZVNlbnNpdGl2ZSI7DQogICAgICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goZGJLZXkpOw0KICAgICAgICAgICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YVtkYktleV07DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5maWx0ZXIuY2FzZVNlbnNpdGl2ZS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgICAgICAgICAvLyBGaWx0ZXIgUnVsZSAoQ3VzdG9tKQ0KICAgICAgICAgICAgICAgICAgICB2YXIgZGJLZXkgPSAiZmlsdGVyIjsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3suZmlsdGVyLmZpbHRlclJ1bGUucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3suZmlsdGVyLmZpbHRlclJ1bGUudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAiZ3JvdXAtdGl0bGUiOg0KICAgICAgICAgICAgICAgICAgICAvL2FsZXJ0KGRiS2V5ICsgIiAiICsgZmlsdGVyVHlwZSkNCiAgICAgICAgICAgICAgICAgICAgLy8gRmlsdGVyIGJhc2VkIG9uIHRoZSBncm91cHMgaW4gdGhlIE0zVQ0KICAgICAgICAgICAgICAgICAgICB2YXIgZGJLZXkgPSAiZmlsdGVyIjsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGdyb3Vwc00zVSA9IGdldExvY2FsRGF0YSgibTN1R3JvdXBzIiwgIiIpOw0KICAgICAgICAgICAgICAgICAgICB2YXIgdGV4dCA9IGdyb3Vwc00zVVsidGV4dCJdOw0KICAgICAgICAgICAgICAgICAgICB2YXIgdmFsdWVzID0gZ3JvdXBzTTNVWyJ2YWx1ZSJdOw0KICAgICAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCBkYXRhW2RiS2V5XSwgZGJLZXkpOw0KICAgICAgICAgICAgICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3suZmlsdGVyLmZpbHRlckdyb3VwLnRpdGxlfX0iLCBzZWxlY3QpOw0KICAgICAgICAgICAgICAgICAgICBjb250ZW50LmRlc2NyaXB0aW9uKCJ7ey5maWx0ZXIuZmlsdGVyR3JvdXAuZGVzY3JpcHRpb259fSIpOw0KICAgICAgICAgICAgICAgICAgICAvLyBDYXNlIHNlbnNldGl2ZQ0KICAgICAgICAgICAgICAgICAgICB2YXIgZGJLZXkgPSAiY2FzZVNlbnNpdGl2ZSI7DQogICAgICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goZGJLZXkpOw0KICAgICAgICAgICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YVtkYktleV07DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5maWx0ZXIuY2FzZVNlbnNpdGl2ZS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgICAgICAgICB2YXIgZGJLZXkgPSAiaW5jbHVkZSI7DQogICAgICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LmZpbHRlci5pbmNsdWRlLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LmZpbHRlci5pbmNsdWRlLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuZGVzY3JpcHRpb24oInt7LmZpbHRlci5pbmNsdWRlLmRlc2NyaXB0aW9ufX0iKTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGRiS2V5ID0gImV4Y2x1ZGUiOw0KICAgICAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5maWx0ZXIuZXhjbHVkZS5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5maWx0ZXIuZXhjbHVkZS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgICAgICAgICBjb250ZW50LmRlc2NyaXB0aW9uKCJ7ey5maWx0ZXIuZXhjbHVkZS5kZXNjcmlwdGlvbn19Iik7DQogICAgICAgICAgICAgICAgICAgIC8vIFByZXNlcnZlIE0zVSBQbGF5bGlzdCBDaGFubmVsIE1hcHBpbmcNCiAgICAgICAgICAgICAgICAgICAgdmFyIGRiS2V5ID0gInByZXNlcnZlTWFwcGluZyI7DQogICAgICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goZGJLZXkpOw0KICAgICAgICAgICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YVtkYktleV07DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5maWx0ZXIucHJlc2VydmVNYXBwaW5nLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAgICAgICAgIC8vIFN0YXJ0aW5nIENoYW5uZWwgTnVtYmVyIE1hcHBpbmcNCiAgICAgICAgICAgICAgICAgICAgdmFyIGRiS2V5ID0gInN0YXJ0aW5nQ2hhbm5lbCI7DQogICAgICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LmZpbHRlci5zdGFydGluZ0NoYW5uZWwucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3suZmlsdGVyLnN0YXJ0aW5nQ2hhbm5lbC50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgICAgICAgICAvLyBGaWxsIE1pc3NpbmcgRVBHIERhdGENCiAgICAgICAgICAgICAgICAgICAgLy8gVGhlIGZvbGxvd2luZyBjb2RlIG9ubHkgd29ya3Mgd2hlbiB4VGVWZSBEdW1teSBhbHJlYWR5IGV4aXN0cw0KICAgICAgICAgICAgICAgICAgICAvLyB2YXIgZGJLZXk6c3RyaW5nID0gImRlZmF1bHRNaXNzaW5nRVBHIg0KICAgICAgICAgICAgICAgICAgICAvLyB2YXIgeG1sdHY6WE1MVFZGaWxlID0gbmV3IFhNTFRWRmlsZSgpDQogICAgICAgICAgICAgICAgICAgIC8vIHZhciBzZWxlY3QgPSB4bWx0di5nZXRQcm9ncmFtcygieFRlVmUgRHVtbXkiLCBkYXRhW2RiS2V5XSkNCiAgICAgICAgICAgICAgICAgICAgLy8gc2VsZWN0LnNldEF0dHJpYnV0ZSgibmFtZSIsIGRiS2V5KQ0KICAgICAgICAgICAgICAgICAgICAvLyBzZWxlY3Quc2V0QXR0cmlidXRlKCJpZCIsICJwb3B1cC1taXNzaW5nLWVwZyIpDQogICAgICAgICAgICAgICAgICAgIC8vIFRoZSB3b3JrYXJvdW5kIGlzIGN1cnJlbnRseSB0byBoYXJkIGNvZGUgdGhlIHhUZVZlIER1bW15IGRhdGENCiAgICAgICAgICAgICAgICAgICAgdmFyIGRiS2V5ID0gImRlZmF1bHRNaXNzaW5nRVBHIjsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGxpc3RPcHRpb25zID0geyAidGV4dCI6IFsiLSIsICIzMCBNaW51dGVzICgzMF9NaW51dGVzKSIsICI2MCBNaW51dGVzICg2MF9NaW51dGVzKSIsICI5MCBNaW51dGVzICg5MF9NaW51dGVzKSIsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgIjEyMCBNaW51dGVzICgxMjBfTWludXRlcykiLCAiMTgwIE1pbnV0ZXMgKDMwX01pbnV0ZXMpIiwgIjI0MCBNaW51dGVzICgzMF9NaW51dGVzKSIsICIzNjAgTWludXRlcyAoMzBfTWludXRlcykiXSwNCiAgICAgICAgICAgICAgICAgICAgICAgICJ2YWx1ZSI6IFsiLSIsICIzMF9NaW51dGVzIiwgIjYwX01pbnV0ZXMiLCAiOTBfTWludXRlcyIsICIxMjBfTWludXRlcyIsICIxODBfTWludXRlcyIsICIyNDBfTWludXRlcyIsICIzNjBfTWludXRlcyIsXSB9Ow0KICAgICAgICAgICAgICAgICAgICB2YXIgdGV4dCA9IGxpc3RPcHRpb25zWyJ0ZXh0Il07DQogICAgICAgICAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBsaXN0T3B0aW9uc1sidmFsdWUiXTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHNlbGVjdCA9IGNvbnRlbnQuY3JlYXRlU2VsZWN0KHRleHQsIHZhbHVlcywgZGF0YVtkYktleV0sIGRiS2V5KTsNCiAgICAgICAgICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LmZpbHRlci5kZWZhdWx0TWlzc2luZ0VQRy50aXRsZX19Iiwgc2VsZWN0KTsNCiAgICAgICAgICAgICAgICAgICAgY29udGVudC5kZXNjcmlwdGlvbigie3suZmlsdGVyLmRlZmF1bHRNaXNzaW5nRVBHLmRlc2NyaXB0aW9ufX0iKTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICB9DQogICAgICAgICAgICAvLyBJbnRlcmFjdGlvbg0KICAgICAgICAgICAgY29udGVudC5jcmVhdGVJbnRlcmFjdGlvbigpOw0KICAgICAgICAgICAgLy8gRGVsZXRlDQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAiZGVsZXRlIiwgInt7LmJ1dHRvbi5kZWxldGV9fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoImZpbHRlciIsICInICsgaWQgKyAnIiwgdHJ1ZSwgMCknKTsNCiAgICAgICAgICAgIGlucHV0LmNsYXNzTmFtZSA9ICJkZWxldGUiOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICAvLyBBYm9ydA0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImNhbmNlbCIsICJ7ey5idXR0b24uY2FuY2VsfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBzaG93RWxlbWVudCgicG9wdXAiLCBmYWxzZSk7Jyk7DQogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIC8vIFNhdmUNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJzYXZlIiwgInt7LmJ1dHRvbi5zYXZlfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBzYXZlUG9wdXBEYXRhKCJmaWx0ZXIiLCAiJyArIGlkICsgJyIsIGZhbHNlLCAwKScpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSAieG1sdHYiOg0KICAgICAgICAgICAgY29udGVudC5jcmVhdGVIZWFkbGluZShkYXRhVHlwZSk7DQogICAgICAgICAgICAvLyBOYW1lDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAibmFtZSI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3sueG1sdHYubmFtZS5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sueG1sdHYubmFtZS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgLy8gRGVzY3JpcHRpb24NCiAgICAgICAgICAgIHZhciBkYktleSA9ICJkZXNjcmlwdGlvbiI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3sueG1sdHYuZGVzY3JpcHRpb24ucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnhtbHR2LmRlc2NyaXB0aW9uLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBVUkwNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJmaWxlLnNvdXJjZSI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3sueG1sdHYuZmlsZVhNTFRWLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey54bWx0di5maWxlWE1MVFYudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIEludGVyYWN0aW9uDQogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUludGVyYWN0aW9uKCk7DQogICAgICAgICAgICAvLyBEZWxldGUNCiAgICAgICAgICAgIGlmIChkYXRhWyJpZC5wcm92aWRlciJdICE9ICItIikgew0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJkZWxldGUiLCAie3suYnV0dG9uLmRlbGV0ZX19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoInhtbHR2IiwgIicgKyBpZCArICciLCB0cnVlLCAwKScpOw0KICAgICAgICAgICAgICAgIGlucHV0LmNsYXNzTmFtZSA9ICJkZWxldGUiOw0KICAgICAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgLy8gQWJvcnQNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJjYW5jZWwiLCAie3suYnV0dG9uLmNhbmNlbH19Iik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogc2hvd0VsZW1lbnQoInBvcHVwIiwgZmFsc2UpOycpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICAvLyBVcGRhdGUNCiAgICAgICAgICAgIGlmIChkYXRhWyJpZC5wcm92aWRlciJdICE9ICItIikgew0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJ1cGRhdGUiLCAie3suYnV0dG9uLnVwZGF0ZX19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoInhtbHR2IiwgIicgKyBpZCArICciLCBmYWxzZSwgMSknKTsNCiAgICAgICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIC8vIFNhdmUNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJzYXZlIiwgInt7LmJ1dHRvbi5zYXZlfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBzYXZlUG9wdXBEYXRhKCJ4bWx0diIsICInICsgaWQgKyAnIiwgZmFsc2UsIDApJyk7DQogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJ1c2VycyI6DQogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUhlYWRsaW5lKCJ7ey5tYWluTWVudS5pdGVtLnVzZXJzfX0iKTsNCiAgICAgICAgICAgIC8vIFVzZXIgbmFtZQ0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gInVzZXJuYW1lIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey51c2Vycy51c2VybmFtZS5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sudXNlcnMudXNlcm5hbWUudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIE5ldyBQYXJzc3dvcmQNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJwYXNzd29yZCI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJwYXNzd29yZCIsIGRiS2V5LCAiIik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnVzZXJzLnBhc3N3b3JkLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey51c2Vycy5wYXNzd29yZC50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgLy8gQ29uZmlybWF0aW9uDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAiY29uZmlybSI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJwYXNzd29yZCIsIGRiS2V5LCAiIik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnVzZXJzLmNvbmZpcm0ucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnVzZXJzLmNvbmZpcm0udGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIEF1dGhlbnRpY2F0aW9uIFdFQg0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gImF1dGhlbnRpY2F0aW9uLndlYiI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KGRiS2V5KTsNCiAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhW2RiS2V5XTsNCiAgICAgICAgICAgIGlmIChkYXRhWyJkZWZhdWx0VXNlciJdID09IHRydWUpIHsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAiamF2YXNjcmlwdDogcmV0dXJuIGZhbHNlIik7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sudXNlcnMud2ViLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBBdXRoZW50aWNhdGlvbiBQTVMNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJhdXRoZW50aWNhdGlvbi5wbXMiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChkYktleSk7DQogICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YVtkYktleV07DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sudXNlcnMucG1zLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBBdXRoZW50aWNhdGlvbiBNM1UNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJhdXRoZW50aWNhdGlvbi5tM3UiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChkYktleSk7DQogICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YVtkYktleV07DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sudXNlcnMubTN1LnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBBdXRoZW50aWNhdGlvbiBYTUwNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJhdXRoZW50aWNhdGlvbi54bWwiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChkYktleSk7DQogICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YVtkYktleV07DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sudXNlcnMueG1sLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBBdXRoZW50aWNhdGlvbiBBUEkNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJhdXRoZW50aWNhdGlvbi5hcGkiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChkYktleSk7DQogICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YVtkYktleV07DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sudXNlcnMuYXBpLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBJbnRlcmFjdGlvbg0KICAgICAgICAgICAgY29udGVudC5jcmVhdGVJbnRlcmFjdGlvbigpOw0KICAgICAgICAgICAgLy8gRGVsZXRlDQogICAgICAgICAgICBpZiAoZGF0YVsiZGVmYXVsdFVzZXIiXSAhPSB0cnVlICYmIGlkICE9ICItIikgew0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJkZWxldGUiLCAie3suYnV0dG9uLmRlbGV0ZX19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuY2xhc3NOYW1lID0gImRlbGV0ZSI7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoIicgKyBkYXRhVHlwZSArICciLCAiJyArIGlkICsgJyIsIHRydWUsIDApJyk7DQogICAgICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICAvLyBBYm9ydA0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImNhbmNlbCIsICJ7ey5idXR0b24uY2FuY2VsfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBzaG93RWxlbWVudCgicG9wdXAiLCBmYWxzZSk7Jyk7DQogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIC8vIFNhdmUNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJzYXZlIiwgInt7LmJ1dHRvbi5zYXZlfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBzYXZlUG9wdXBEYXRhKCInICsgZGF0YVR5cGUgKyAnIiwgIicgKyBpZCArICciLCAiZmFsc2UiKTsnKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGNhc2UgIm1hcHBpbmciOg0KICAgICAgICAgICAgY29udGVudC5jcmVhdGVIZWFkbGluZSgie3subWFpbk1lbnUuaXRlbS5tYXBwaW5nfX0iKTsNCiAgICAgICAgICAgIC8vIEFjdGl2ZQ0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gIngtYWN0aXZlIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goZGJLZXkpOw0KICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGFbZGJLZXldOw0KICAgICAgICAgICAgaW5wdXQuaWQgPSAiYWN0aXZlIjsNCiAgICAgICAgICAgIC8vaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpDQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRvZ2dsZUNoYW5uZWxTdGF0dXMoJyIgKyBpZCArICInLCB0aGlzKSIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7Lm1hcHBpbmcuYWN0aXZlLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBDaGFubmVsIG5hbWUNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJ4LW5hbWUiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICBpZiAoQlVMS19FRElUID09IHRydWUpIHsNCiAgICAgICAgICAgICAgICBpbnB1dC5zdHlsZS5ib3JkZXIgPSAic29saWQgMXB4IHJlZCI7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJyZWFkb25seSIsICJ0cnVlIik7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3subWFwcGluZy5jaGFubmVsTmFtZS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgY29udGVudC5kZXNjcmlwdGlvbihkYXRhWyJuYW1lIl0pOw0KICAgICAgICAgICAgLy8gRGVzY3JpcHRpb24NCiAgICAgICAgICAgIHZhciBkYktleSA9ICJ4LWRlc2NyaXB0aW9uIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5tYXBwaW5nLmRlc2NyaXB0aW9uLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5tYXBwaW5nLmRlc2NyaXB0aW9uLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBVcGRhdGUgdGhlIGNoYW5uZWwgbmFtZQ0KICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoIl91dWlkLmtleSIpKSB7DQogICAgICAgICAgICAgICAgaWYgKGRhdGFbIl91dWlkLmtleSJdICE9ICIiKSB7DQogICAgICAgICAgICAgICAgICAgIHZhciBkYktleSA9ICJ4LXVwZGF0ZS1jaGFubmVsLW5hbWUiOw0KICAgICAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KGRiS2V5KTsNCiAgICAgICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YVtkYktleV07DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5tYXBwaW5nLnVwZGF0ZUNoYW5uZWxOYW1lLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgLy8gTG9nbyBVUkwgKENoYW5uZWwpIA0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gInR2Zy1sb2dvIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJpZCIsICJjaGFubmVsLWljb24iKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5tYXBwaW5nLmNoYW5uZWxMb2dvLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBDaGFubmVsIGxvZ28gdXBkYXRlDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAieC11cGRhdGUtY2hhbm5lbC1pY29uIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goZGJLZXkpOw0KICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGFbZGJLZXldOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJpZCIsICJ1cGRhdGUtaWNvbiIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJzsgY2hhbmdlQ2hhbm5lbExvZ28oJyIgKyBpZCArICInKTsiKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5tYXBwaW5nLnVwZGF0ZUNoYW5uZWxMb2dvLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBFeHBhbmQgRVBHIGNhdGVnb3J5DQogICAgICAgICAgICB2YXIgZGJLZXkgPSAieC1jYXRlZ29yeSI7DQogICAgICAgICAgICB2YXIgdGV4dCA9IFsiLSIsICJLaWRzIChFbWJ5IG9ubHkpIiwgIk5ld3MiLCAiTW92aWUiLCAiU2VyaWVzIiwgIlNwb3J0cyJdOw0KICAgICAgICAgICAgdmFyIHZhbHVlcyA9IFsiIiwgIktpZHMiLCAiTmV3cyIsICJNb3ZpZSIsICJTZXJpZXMiLCAiU3BvcnRzIl07DQogICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCBkYXRhW2RiS2V5XSwgZGJLZXkpOw0KICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5tYXBwaW5nLmVwZ0NhdGVnb3J5LnRpdGxlfX0iLCBzZWxlY3QpOw0KICAgICAgICAgICAgLy8gTTNVIGdyb3VwIHRpdGxlDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAieC1ncm91cC10aXRsZSI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5tYXBwaW5nLm0zdUdyb3VwVGl0bGUudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIGlmIChkYXRhWyJncm91cC10aXRsZSJdICE9IHVuZGVmaW5lZCkgew0KICAgICAgICAgICAgICAgIGNvbnRlbnQuZGVzY3JpcHRpb24oZGF0YVsiZ3JvdXAtdGl0bGUiXSk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICAvLyBYTUxUViBmaWxlDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAieC14bWx0di1maWxlIjsNCiAgICAgICAgICAgIHZhciB4bWxGaWxlID0gZGF0YVtkYktleV07DQogICAgICAgICAgICB2YXIgeG1sdHYgPSBuZXcgWE1MVFZGaWxlKCk7DQogICAgICAgICAgICB2YXIgc2VsZWN0ID0geG1sdHYuZ2V0RmlsZXMoZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgibmFtZSIsIGRiS2V5KTsNCiAgICAgICAgICAgIHNlbGVjdC5zZXRBdHRyaWJ1dGUoImlkIiwgInBvcHVwLXhtbHR2Iik7DQogICAgICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJzsgc2V0WG1sdHZDaGFubmVsKCciICsgaWQgKyAiJyx0aGlzKTsiKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5tYXBwaW5nLnhtbHR2RmlsZS50aXRsZX19Iiwgc2VsZWN0KTsNCiAgICAgICAgICAgIHZhciBmaWxlID0gZGF0YVtkYktleV07DQogICAgICAgICAgICAvLyBYTUxUViBNYXBwaW5nDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAieC1tYXBwaW5nIjsNCiAgICAgICAgICAgIHZhciB4bWx0diA9IG5ldyBYTUxUVkZpbGUoKTsNCiAgICAgICAgICAgIHZhciBzZWxlY3QgPSB4bWx0di5nZXRQcm9ncmFtcyhmaWxlLCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJuYW1lIiwgZGJLZXkpOw0KICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgiaWQiLCAicG9wdXAtbWFwcGluZyIpOw0KICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCc7IGNoZWNrWG1sdHZDaGFubmVsKCciICsgaWQgKyAiJyx0aGlzLCciICsgeG1sRmlsZSArICInKTsiKTsNCiAgICAgICAgICAgIHNvcnRTZWxlY3Qoc2VsZWN0KTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5tYXBwaW5nLnhtbHR2Q2hhbm5lbC50aXRsZX19Iiwgc2VsZWN0KTsNCiAgICAgICAgICAgIC8vIFRpbWVzaGlmdA0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gIngtdGltZXNoaWZ0IjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5tYXBwaW5nLnRpbWVzaGlmdC5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoImlkIiwgInRpbWVzaGlmdCIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7Lm1hcHBpbmcudGltZXNoaWZ0LnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBJbnRlcmFjdGlvbg0KICAgICAgICAgICAgY29udGVudC5jcmVhdGVJbnRlcmFjdGlvbigpOw0KICAgICAgICAgICAgLy8gVXBsb2FkIGxvZ28NCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJjYW5jZWwiLCAie3suYnV0dG9uLnVwbG9hZExvZ299fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IHVwbG9hZExvZ28oKTsnKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgLy8gQWJvcnQNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJjYW5jZWwiLCAie3suYnV0dG9uLmNhbmNlbH19Iik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogc2hvd0VsZW1lbnQoInBvcHVwIiwgZmFsc2UpOycpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICAvLyBGaW5pc2hlZA0KICAgICAgICAgICAgdmFyIGlkcyA9IFtdOw0KICAgICAgICAgICAgaWRzID0gZ2V0QWxsU2VsZWN0ZWRDaGFubmVscygpOw0KICAgICAgICAgICAgaWYgKGlkcy5sZW5ndGggPT0gMCkgew0KICAgICAgICAgICAgICAgIGlkcy5wdXNoKGlkKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJzYXZlIiwgInt7LmJ1dHRvbi5kb25lfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBkb25lUG9wdXBEYXRhKCInICsgZGF0YVR5cGUgKyAnIiwgIicgKyBpZHMgKyAnIiwgImZhbHNlIik7Jyk7DQogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBkZWZhdWx0Og0KICAgICAgICAgICAgYnJlYWs7DQogICAgfQ0KICAgIHNob3dQb3BVcEVsZW1lbnQoJ3BvcHVwLWN1c3RvbScpOw0KfQ0KY2xhc3MgWE1MVFZGaWxlIHsNCiAgICBnZXRGaWxlcyhzZXQpIHsNCiAgICAgICAgbGV0IGZpbGVJRHMgPSBnZXRPYmpLZXlzKFNFUlZFUlsieGVwZyJdWyJ4bWx0dk1hcCJdKTsNCiAgICAgICAgbGV0IHZhbHVlcyA9IG5ldyBBcnJheSgiLSIpOw0KICAgICAgICBsZXQgdGV4dCA9IG5ldyBBcnJheSgiLSIpOw0KICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGZpbGVJRHMubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgICAgIGlmIChmaWxlSURzW2ldICE9ICJ4VGVWZSBEdW1teSIpIHsNCiAgICAgICAgICAgICAgICB2YWx1ZXMucHVzaChnZXRWYWx1ZUZyb21Qcm92aWRlckZpbGUoZmlsZUlEc1tpXSwgInhtbHR2IiwgImZpbGUueHRldmUiKSk7DQogICAgICAgICAgICAgICAgdGV4dC5wdXNoKGdldFZhbHVlRnJvbVByb3ZpZGVyRmlsZShmaWxlSURzW2ldLCAieG1sdHYiLCAibmFtZSIpKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgICAgIHZhbHVlcy5wdXNoKGZpbGVJRHNbaV0pOw0KICAgICAgICAgICAgICAgIHRleHQucHVzaChmaWxlSURzW2ldKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KICAgICAgICBsZXQgc2VsZWN0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiU0VMRUNUIik7DQogICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGV4dC5sZW5ndGg7IGkrKykgew0KICAgICAgICAgICAgdmFyIG9wdGlvbiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIk9QVElPTiIpOw0KICAgICAgICAgICAgb3B0aW9uLnNldEF0dHJpYnV0ZSgidmFsdWUiLCB2YWx1ZXNbaV0pOw0KICAgICAgICAgICAgb3B0aW9uLmlubmVyVGV4dCA9IHRleHRbaV07DQogICAgICAgICAgICBzZWxlY3QuYXBwZW5kQ2hpbGQob3B0aW9uKTsNCiAgICAgICAgfQ0KICAgICAgICBpZiAoc2V0ICE9ICIiKSB7DQogICAgICAgICAgICBzZWxlY3QudmFsdWUgPSBzZXQ7DQogICAgICAgIH0NCiAgICAgICAgcmV0dXJuIHNlbGVjdDsNCiAgICB9DQogICAgZ2V0UHJvZ3JhbXMoZmlsZSwgc2V0KSB7DQogICAgICAgIC8vdmFyIGZpbGVJRHM6c3RyaW5nW10gPSBnZXRPYmpLZXlzKFNFUlZFUlsieGVwZyJdWyJ4bWx0dk1hcCJdKQ0KICAgICAgICBsZXQgdmFsdWVzID0gZ2V0T2JqS2V5cyhTRVJWRVJbInhlcGciXVsieG1sdHZNYXAiXVtmaWxlXSk7DQogICAgICAgIGxldCB0ZXh0ID0gW107DQogICAgICAgIGxldCBkaXNwbGF5TmFtZTsNCiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB2YWx1ZXMubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgICAgIGlmIChTRVJWRVJbInhlcGciXVsieG1sdHZNYXAiXVtmaWxlXVt2YWx1ZXNbaV1dLmhhc093blByb3BlcnR5KCdkaXNwbGF5LW5hbWUnKSA9PSB0cnVlKSB7DQogICAgICAgICAgICAgICAgZGlzcGxheU5hbWUgPSBTRVJWRVJbInhlcGciXVsieG1sdHZNYXAiXVtmaWxlXVt2YWx1ZXNbaV1dWyJkaXNwbGF5LW5hbWUiXTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgICAgIGRpc3BsYXlOYW1lID0gIi0iOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgdGV4dFtpXSA9IGRpc3BsYXlOYW1lICsgIiAoIiArIHZhbHVlc1tpXSArICIpIjsNCiAgICAgICAgfQ0KICAgICAgICB0ZXh0LnVuc2hpZnQoIi0iKTsNCiAgICAgICAgdmFsdWVzLnVuc2hpZnQoIi0iKTsNCiAgICAgICAgbGV0IHNlbGVjdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlNFTEVDVCIpOw0KICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRleHQubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgICAgIHZhciBvcHRpb24gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJPUFRJT04iKTsNCiAgICAgICAgICAgIG9wdGlvbi5zZXRBdHRyaWJ1dGUoInZhbHVlIiwgdmFsdWVzW2ldKTsNCiAgICAgICAgICAgIG9wdGlvbi5pbm5lclRleHQgPSB0ZXh0W2ldOw0KICAgICAgICAgICAgc2VsZWN0LmFwcGVuZENoaWxkKG9wdGlvbik7DQogICAgICAgIH0NCiAgICAgICAgaWYgKHNldCAhPSAiIikgew0KICAgICAgICAgICAgc2VsZWN0LnZhbHVlID0gc2V0Ow0KICAgICAgICB9DQogICAgICAgIGlmIChzZWxlY3QudmFsdWUgIT0gc2V0KSB7DQogICAgICAgICAgICBzZWxlY3QudmFsdWUgPSAiLSI7DQogICAgICAgIH0NCiAgICAgICAgcmV0dXJuIHNlbGVjdDsNCiAgICB9DQp9DQpmdW5jdGlvbiBnZXRWYWx1ZUZyb21Qcm92aWRlckZpbGUoZmlsZSwgZmlsZVR5cGUsIGtleSkgew0KICAgIGlmIChmaWxlID09ICJ4VGVWZSBEdW1teSIpIHsNCiAgICAgICAgcmV0dXJuIGZpbGU7DQogICAgfQ0KICAgIGxldCBmaWxlSUQ7DQogICAgbGV0IGluZGljYXRvciA9IGZpbGUuY2hhckF0KDApOw0KICAgIHN3aXRjaCAoaW5kaWNhdG9yKSB7DQogICAgICAgIGNhc2UgIk0iOg0KICAgICAgICAgICAgZmlsZVR5cGUgPSAibTN1IjsNCiAgICAgICAgICAgIGZpbGVJRCA9IGZpbGU7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSAiSCI6DQogICAgICAgICAgICBmaWxlVHlwZSA9ICJoZGhyIjsNCiAgICAgICAgICAgIGZpbGVJRCA9IGZpbGU7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSAiWCI6DQogICAgICAgICAgICBmaWxlVHlwZSA9ICJ4bWx0diI7DQogICAgICAgICAgICBmaWxlSUQgPSBmaWxlLnN1YnN0cmluZygwLCBmaWxlLmxhc3RJbmRleE9mKCcuJykpOw0KICAgICAgICAgICAgYnJlYWs7DQogICAgfQ0KICAgIGlmIChTRVJWRVJbInNldHRpbmdzIl1bImZpbGVzIl1bZmlsZVR5cGVdLmhhc093blByb3BlcnR5KGZpbGVJRCkgPT0gdHJ1ZSkgew0KICAgICAgICB2YXIgZGF0YSA9IFNFUlZFUlsic2V0dGluZ3MiXVsiZmlsZXMiXVtmaWxlVHlwZV1bZmlsZUlEXTsNCiAgICAgICAgcmV0dXJuIGRhdGFba2V5XTsNCiAgICB9DQogICAgcmV0dXJuOw0KfQ0KZnVuY3Rpb24gc2V0WG1sdHZDaGFubmVsKGlkLCBlbGVtZW50KSB7DQogICAgbGV0IHhtbHR2ID0gbmV3IFhNTFRWRmlsZSgpOw0KICAgIGxldCB4bWxGaWxlID0gZWxlbWVudC52YWx1ZTsNCiAgICBsZXQgdHZnSWQgPSBTRVJWRVJbInhlcGciXVsiZXBnTWFwcGluZyJdW2lkXVsidHZnLWlkIl07DQogICAgbGV0IHRkID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInBvcHVwLW1hcHBpbmciKS5wYXJlbnRFbGVtZW50Ow0KICAgIHRkLmlubmVySFRNTCA9ICIiOw0KICAgIGxldCBzZWxlY3QgPSB4bWx0di5nZXRQcm9ncmFtcyhlbGVtZW50LnZhbHVlLCB0dmdJZCk7DQogICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgibmFtZSIsICJ4LW1hcHBpbmciKTsNCiAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJpZCIsICJwb3B1cC1tYXBwaW5nIik7DQogICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCc7IGNoZWNrWG1sdHZDaGFubmVsKCciICsgaWQgKyAiJyx0aGlzLCciICsgeG1sRmlsZSArICInKTsiKTsNCiAgICBzZWxlY3QuY2xhc3NOYW1lID0gImNoYW5nZWQiOw0KICAgIHNvcnRTZWxlY3Qoc2VsZWN0KTsNCiAgICB0ZC5hcHBlbmRDaGlsZChzZWxlY3QpOw0KICAgIGNoZWNrWG1sdHZDaGFubmVsKGlkLCBzZWxlY3QsIHhtbEZpbGUpOw0KfQ0KZnVuY3Rpb24gY2hlY2tYbWx0dkNoYW5uZWwoaWQsIGVsZW1lbnQsIHhtbEZpbGUpIHsNCiAgICBsZXQgdmFsdWUgPSBlbGVtZW50LnZhbHVlOw0KICAgIGxldCBib29sOw0KICAgIGxldCBjaGVja2JveCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdhY3RpdmUnKTsNCiAgICBsZXQgY2hhbm5lbCA9IFNFUlZFUlsieGVwZyJdWyJlcGdNYXBwaW5nIl1baWRdOw0KICAgIGxldCB1cGRhdGVMb2dvOw0KICAgIGJvb2wgPSB2YWx1ZSAhPSAiLSI7DQogICAgY2hlY2tib3guY2hlY2tlZCA9IGJvb2w7DQogICAgY2hlY2tib3guY2xhc3NOYW1lID0gImNoYW5nZWQiOw0KICAgIGNvbnNvbGUubG9nKHhtbEZpbGUpOw0KICAgIC8vIFVwZGF0ZSBjaGFubmVsIGxvZ28NCiAgICAvKg0KICAgIHVwZGF0ZUxvZ28gPSAoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInVwZGF0ZS1pY29uIikgYXMgSFRNTElucHV0RWxlbWVudCkuY2hlY2tlZA0KICAgIGNvbnNvbGUubG9nKHVwZGF0ZUxvZ28pOw0KICAgICovDQogICAgaWYgKHhtbEZpbGUgIT0gInhUZVZlIER1bW15IiAmJiBib29sID09IHRydWUpIHsNCiAgICAgICAgLy8oZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInVwZGF0ZS1pY29uIikgYXMgSFRNTElucHV0RWxlbWVudCkuY2hlY2tlZCA9IHRydWU7DQogICAgICAgIC8vKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ1cGRhdGUtaWNvbiIpIGFzIEhUTUxJbnB1dEVsZW1lbnQpLmNsYXNzTmFtZSA9ICJjaGFuZ2VkIjsNCiAgICAgICAgY29uc29sZS5sb2coIklEIiwgaWQpOw0KICAgICAgICBjaGFuZ2VDaGFubmVsTG9nbyhpZCk7DQogICAgICAgIHJldHVybjsNCiAgICB9DQogICAgaWYgKHhtbEZpbGUgPT0gInhUZVZlIER1bW15Iikgew0KICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidXBkYXRlLWljb24iKS5jaGVja2VkID0gZmFsc2U7DQogICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ1cGRhdGUtaWNvbiIpLmNsYXNzTmFtZSA9ICJjaGFuZ2VkIjsNCiAgICB9DQogICAgcmV0dXJuOw0KfQ0KZnVuY3Rpb24gY2hhbmdlQ2hhbm5lbExvZ28oaWQpIHsNCiAgICBsZXQgdXBkYXRlTG9nbzsNCiAgICBsZXQgY2hhbm5lbCA9IFNFUlZFUlsieGVwZyJdWyJlcGdNYXBwaW5nIl1baWRdOw0KICAgIGxldCBmID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInBvcHVwLXhtbHR2Iik7DQogICAgbGV0IHhtbHR2RmlsZSA9IGYub3B0aW9uc1tmLnNlbGVjdGVkSW5kZXhdLnZhbHVlOw0KICAgIGxldCBtID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInBvcHVwLW1hcHBpbmciKTsNCiAgICBsZXQgeE1hcHBpbmcgPSBtLm9wdGlvbnNbbS5zZWxlY3RlZEluZGV4XS52YWx1ZTsNCiAgICBsZXQgeG1sdHZMb2dvID0gU0VSVkVSWyJ4ZXBnIl1bInhtbHR2TWFwIl1beG1sdHZGaWxlXVt4TWFwcGluZ11bImljb24iXTsNCiAgICB1cGRhdGVMb2dvID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInVwZGF0ZS1pY29uIikuY2hlY2tlZDsNCiAgICBpZiAodXBkYXRlTG9nbyA9PSB0cnVlICYmIHhtbHR2RmlsZSAhPSAieFRlVmUgRHVtbXkiKSB7DQogICAgICAgIGlmIChTRVJWRVJbInhlcGciXVsieG1sdHZNYXAiXVt4bWx0dkZpbGVdLmhhc093blByb3BlcnR5KHhNYXBwaW5nKSkgew0KICAgICAgICAgICAgdmFyIGxvZ28gPSB4bWx0dkxvZ287DQogICAgICAgIH0NCiAgICAgICAgZWxzZSB7DQogICAgICAgICAgICBsb2dvID0gY2hhbm5lbFsidHZnLWxvZ28iXTsNCiAgICAgICAgfQ0KICAgICAgICB2YXIgbG9nb0lucHV0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNoYW5uZWwtaWNvbiIpOw0KICAgICAgICBsb2dvSW5wdXQudmFsdWUgPSBsb2dvOw0KICAgICAgICBpZiAoQlVMS19FRElUID09IGZhbHNlKSB7DQogICAgICAgICAgICBsb2dvSW5wdXQuY2xhc3NOYW1lID0gImNoYW5nZWQiOw0KICAgICAgICB9DQogICAgfQ0KfQ0KZnVuY3Rpb24gc2F2ZVBvcHVwRGF0YShkYXRhVHlwZSwgaWQsIHJlbW92ZSwgb3B0aW9uKSB7DQogICAgaWYgKGRhdGFUeXBlID09ICJtYXBwaW5nIikgew0KICAgICAgICBsZXQgZGF0YSA9IHt9Ow0KICAgICAgICBjb25zb2xlLmxvZygiU2F2ZSBtYXBwaW5nIGRhdGEiKTsNCiAgICAgICAgbGV0IGNtZCA9ICJzYXZlRXBnTWFwcGluZyI7DQogICAgICAgIGRhdGFbImVwZ01hcHBpbmciXSA9IFNFUlZFUlsieGVwZyJdWyJlcGdNYXBwaW5nIl07DQogICAgICAgIGNvbnNvbGUubG9nKCJTRU5EIFRPIFNFUlZFUiIpOw0KICAgICAgICBsZXQgc2VydmVyID0gbmV3IFNlcnZlcihjbWQpOw0KICAgICAgICBzZXJ2ZXIucmVxdWVzdChkYXRhKTsNCiAgICAgICAgZGVsZXRlIFVORE9bImVwZ01hcHBpbmciXTsNCiAgICAgICAgcmV0dXJuOw0KICAgIH0NCiAgICBjb25zb2xlLmxvZygiU2F2ZSBwb3B1cCBkYXRhIik7DQogICAgbGV0IGRpdiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJwb3B1cC1jdXN0b20iKTsNCiAgICBsZXQgaW5wdXRzID0gZGl2LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJUQUJMRSIpWzBdLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJJTlBVVCIpOw0KICAgIGxldCBzZWxlY3RzID0gZGl2LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJUQUJMRSIpWzBdLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJTRUxFQ1QiKTsNCiAgICBsZXQgaW5wdXQgPSB7fTsNCiAgICBsZXQgY29uZmlybU1zZzsNCiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHNlbGVjdHMubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgdmFyIG5hbWU7DQogICAgICAgIG5hbWUgPSBzZWxlY3RzW2ldLm5hbWU7DQogICAgICAgIHZhciB2YWx1ZSA9IHNlbGVjdHNbaV0udmFsdWU7DQogICAgICAgIHN3aXRjaCAobmFtZSkgew0KICAgICAgICAgICAgY2FzZSAidHVuZXIiOg0KICAgICAgICAgICAgICAgIGlucHV0W25hbWVdID0gcGFyc2VJbnQodmFsdWUpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgICAgICBpbnB1dFtuYW1lXSA9IHZhbHVlOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICB9DQogICAgfQ0KICAgIGZvciAobGV0IGkgPSAwOyBpIDwgaW5wdXRzLmxlbmd0aDsgaSsrKSB7DQogICAgICAgIHN3aXRjaCAoaW5wdXRzW2ldLnR5cGUpIHsNCiAgICAgICAgICAgIGNhc2UgImNoZWNrYm94IjoNCiAgICAgICAgICAgICAgICBuYW1lID0gaW5wdXRzW2ldLm5hbWU7DQogICAgICAgICAgICAgICAgaW5wdXRbbmFtZV0gPSBpbnB1dHNbaV0uY2hlY2tlZDsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInRleHQiOg0KICAgICAgICAgICAgY2FzZSAiaGlkZGVuIjoNCiAgICAgICAgICAgIGNhc2UgInBhc3N3b3JkIjoNCiAgICAgICAgICAgICAgICBuYW1lID0gaW5wdXRzW2ldLm5hbWU7DQogICAgICAgICAgICAgICAgc3dpdGNoIChuYW1lKSB7DQogICAgICAgICAgICAgICAgICAgIGNhc2UgInR1bmVyIjoNCiAgICAgICAgICAgICAgICAgICAgICAgIGlucHV0W25hbWVdID0gcGFyc2VJbnQoaW5wdXRzW2ldLnZhbHVlKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgICAgICBkZWZhdWx0Og0KICAgICAgICAgICAgICAgICAgICAgICAgaW5wdXRbbmFtZV0gPSBpbnB1dHNbaV0udmFsdWU7DQogICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIH0NCiAgICB9DQogICAgbGV0IGRhdGEgPSB7fTsNCiAgICBsZXQgY21kOw0KICAgIGlmIChyZW1vdmUgPT0gdHJ1ZSkgew0KICAgICAgICBpbnB1dFsiZGVsZXRlIl0gPSB0cnVlOw0KICAgIH0NCiAgICBzd2l0Y2ggKGRhdGFUeXBlKSB7DQogICAgICAgIGNhc2UgInVzZXJzIjoNCiAgICAgICAgICAgIGNvbmZpcm1Nc2cgPSAiRGVsZXRlIHRoaXMgdXNlcj8iOw0KICAgICAgICAgICAgaWYgKGlkID09ICItIikgew0KICAgICAgICAgICAgICAgIGNtZCA9ICJzYXZlTmV3VXNlciI7DQogICAgICAgICAgICAgICAgZGF0YVsidXNlckRhdGEiXSA9IGlucHV0Ow0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgZWxzZSB7DQogICAgICAgICAgICAgICAgY21kID0gInNhdmVVc2VyRGF0YSI7DQogICAgICAgICAgICAgICAgbGV0IGQgPSB7fTsNCiAgICAgICAgICAgICAgICBkW2lkXSA9IGlucHV0Ow0KICAgICAgICAgICAgICAgIGRhdGFbInVzZXJEYXRhIl0gPSBkOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGNhc2UgIm0zdSI6DQogICAgICAgICAgICBjb25maXJtTXNnID0gIkRlbGV0ZSB0aGlzIHBsYXlsaXN0PyI7DQogICAgICAgICAgICBzd2l0Y2ggKG9wdGlvbikgew0KICAgICAgICAgICAgICAgIC8vIFBvcHVwOiBTYXZlDQogICAgICAgICAgICAgICAgY2FzZSAwOg0KICAgICAgICAgICAgICAgICAgICBjbWQgPSAic2F2ZUZpbGVzTTNVIjsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgLy8gUG9wdXA6IFVwZGF0ZQ0KICAgICAgICAgICAgICAgIGNhc2UgMToNCiAgICAgICAgICAgICAgICAgICAgY21kID0gInVwZGF0ZUZpbGVNM1UiOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGRhdGFbImZpbGVzIl0gPSB7fTsNCiAgICAgICAgICAgIGRhdGFbImZpbGVzIl1bZGF0YVR5cGVdID0ge307DQogICAgICAgICAgICBkYXRhWyJmaWxlcyJdW2RhdGFUeXBlXVtpZF0gPSBpbnB1dDsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJoZGhyIjoNCiAgICAgICAgICAgIGNvbmZpcm1Nc2cgPSAiRGVsZXRlIHRoaXMgSERIb21lUnVuIHR1bmVyPyI7DQogICAgICAgICAgICBzd2l0Y2ggKG9wdGlvbikgew0KICAgICAgICAgICAgICAgIC8vIFBvcHVwOiBTYXZlDQogICAgICAgICAgICAgICAgY2FzZSAwOg0KICAgICAgICAgICAgICAgICAgICBjbWQgPSAic2F2ZUZpbGVzSERIUiI7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIC8vIFBvcHVwOiBVcGRhdGUNCiAgICAgICAgICAgICAgICBjYXNlIDE6DQogICAgICAgICAgICAgICAgICAgIGNtZCA9ICJ1cGRhdGVGaWxlSERIUiI7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgZGF0YVsiZmlsZXMiXSA9IHt9Ow0KICAgICAgICAgICAgZGF0YVsiZmlsZXMiXVtkYXRhVHlwZV0gPSB7fTsNCiAgICAgICAgICAgIGRhdGFbImZpbGVzIl1bZGF0YVR5cGVdW2lkXSA9IGlucHV0Ow0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGNhc2UgInhtbHR2IjoNCiAgICAgICAgICAgIGNvbmZpcm1Nc2cgPSAiRGVsZXRlIHRoaXMgWE1MVFYgZmlsZT8iOw0KICAgICAgICAgICAgc3dpdGNoIChvcHRpb24pIHsNCiAgICAgICAgICAgICAgICAvLyBQb3B1cDogU2F2ZQ0KICAgICAgICAgICAgICAgIGNhc2UgMDoNCiAgICAgICAgICAgICAgICAgICAgY21kID0gInNhdmVGaWxlc1hNTFRWIjsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgLy8gUG9wdXA6IFVwZGF0ZQ0KICAgICAgICAgICAgICAgIGNhc2UgMToNCiAgICAgICAgICAgICAgICAgICAgY21kID0gInVwZGF0ZUZpbGVYTUxUViI7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgZGF0YVsiZmlsZXMiXSA9IHt9Ow0KICAgICAgICAgICAgZGF0YVsiZmlsZXMiXVtkYXRhVHlwZV0gPSB7fTsNCiAgICAgICAgICAgIGRhdGFbImZpbGVzIl1bZGF0YVR5cGVdW2lkXSA9IGlucHV0Ow0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGNhc2UgImZpbHRlciI6DQogICAgICAgICAgICBjb25maXJtTXNnID0gIkRlbGV0ZSB0aGlzIGZpbHRlcj8iOw0KICAgICAgICAgICAgY21kID0gInNhdmVGaWx0ZXIiOw0KICAgICAgICAgICAgZGF0YVsiZmlsdGVyIl0gPSB7fTsNCiAgICAgICAgICAgIGRhdGFbImZpbHRlciJdW2lkXSA9IGlucHV0Ow0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICBjb25zb2xlLmxvZyhkYXRhVHlwZSwgaWQpOw0KICAgICAgICAgICAgcmV0dXJuOw0KICAgIH0NCiAgICBpZiAocmVtb3ZlID09IHRydWUpIHsNCiAgICAgICAgaWYgKCFjb25maXJtKGNvbmZpcm1Nc2cpKSB7DQogICAgICAgICAgICBzaG93RWxlbWVudCgicG9wdXAiLCBmYWxzZSk7DQogICAgICAgICAgICByZXR1cm47DQogICAgICAgIH0NCiAgICB9DQogICAgY29uc29sZS5sb2coIlNFTkQgVE8gU0VSVkVSIik7DQogICAgY29uc29sZS5sb2coZGF0YSk7DQogICAgbGV0IHNlcnZlciA9IG5ldyBTZXJ2ZXIoY21kKTsNCiAgICBzZXJ2ZXIucmVxdWVzdChkYXRhKTsNCn0NCmZ1bmN0aW9uIGRvbmVQb3B1cERhdGEoZGF0YVR5cGUsIGlkc1N0cikgew0KICAgIGxldCBpZHMgPSBpZHNTdHIuc3BsaXQoJywnKTsNCiAgICBsZXQgZGl2ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInBvcHVwLWN1c3RvbSIpOw0KICAgIGxldCBpbnB1dHMgPSBkaXYuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSgiY2hhbmdlZCIpOw0KICAgIGlkcy5mb3JFYWNoKGlkID0+IHsNCiAgICAgICAgbGV0IGlucHV0Ow0KICAgICAgICBpbnB1dCA9IFNFUlZFUlsieGVwZyJdWyJlcGdNYXBwaW5nIl1baWRdOw0KICAgICAgICBjb25zb2xlLmxvZyhpbnB1dCk7DQogICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgaW5wdXRzLmxlbmd0aDsgaSsrKSB7DQogICAgICAgICAgICBsZXQgbmFtZTsNCiAgICAgICAgICAgIGxldCB2YWx1ZTsNCiAgICAgICAgICAgIHN3aXRjaCAoaW5wdXRzW2ldLnRhZ05hbWUpIHsNCiAgICAgICAgICAgICAgICBjYXNlICJJTlBVVCI6DQogICAgICAgICAgICAgICAgICAgIHN3aXRjaCAoaW5wdXRzW2ldLnR5cGUpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgImNoZWNrYm94IjoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lID0gaW5wdXRzW2ldLm5hbWU7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSBpbnB1dHNbaV0uY2hlY2tlZDsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnB1dFtuYW1lXSA9IHZhbHVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAidGV4dCI6DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZSA9IGlucHV0c1tpXS5uYW1lOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlID0gaW5wdXRzW2ldLnZhbHVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlucHV0W25hbWVdID0gdmFsdWU7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAiU0VMRUNUIjoNCiAgICAgICAgICAgICAgICAgICAgbmFtZSA9IGlucHV0c1tpXS5uYW1lOw0KICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IGlucHV0c1tpXS52YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgaW5wdXRbbmFtZV0gPSB2YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBzd2l0Y2ggKG5hbWUpIHsNCiAgICAgICAgICAgICAgICBjYXNlICJ0dmctbG9nbyI6DQogICAgICAgICAgICAgICAgICAgIC8vKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5jaGlsZE5vZGVzWzJdLmZpcnN0Q2hpbGQgYXMgSFRNTEVsZW1lbnQpLnNldEF0dHJpYnV0ZSgic3JjIiwgdmFsdWUpDQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgIngtbmFtZSI6DQogICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5jaGlsZE5vZGVzWzNdLmZpcnN0Q2hpbGQuaW5uZXJIVE1MID0gdmFsdWU7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgIngtY2F0ZWdvcnkiOg0KICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkuY2hpbGROb2Rlc1szXS5maXJzdENoaWxkLmNsYXNzTmFtZSA9IHZhbHVlOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBjYXNlICJ4LWdyb3VwLXRpdGxlIjoNCiAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpLmNoaWxkTm9kZXNbNV0uZmlyc3RDaGlsZC5pbm5lckhUTUwgPSB2YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAieC14bWx0di1maWxlIjoNCiAgICAgICAgICAgICAgICAgICAgaWYgKHZhbHVlICE9ICJ4VGVWZSBEdW1teSIgJiYgdmFsdWUgIT0gIi0iKSB7DQogICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IGdldFZhbHVlRnJvbVByb3ZpZGVyRmlsZSh2YWx1ZSwgInhtbHR2IiwgIm5hbWUiKTsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBpZiAodmFsdWUgPT0gIi0iKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBpbnB1dFsieC1hY3RpdmUiXSA9IGZhbHNlOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5jaGlsZE5vZGVzWzZdLmZpcnN0Q2hpbGQuaW5uZXJIVE1MID0gdmFsdWU7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgIngtbWFwcGluZyI6DQogICAgICAgICAgICAgICAgICAgIGlmICh2YWx1ZSA9PSAiLSIpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGlucHV0WyJ4LWFjdGl2ZSJdID0gZmFsc2U7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpLmNoaWxkTm9kZXNbN10uZmlyc3RDaGlsZC5pbm5lckhUTUwgPSB2YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAieC10aW1lc2hpZnQiOg0KICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkuY2hpbGROb2Rlc1s4XS5maXJzdENoaWxkLmlubmVySFRNTCA9IHZhbHVlOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBkZWZhdWx0Og0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgY3JlYXRlU2VhcmNoT2JqKCk7DQogICAgICAgICAgICBzZWFyY2hJbk1hcHBpbmcoKTsNCiAgICAgICAgfQ0KICAgICAgICBpZiAoaW5wdXRbIngtYWN0aXZlIl0gPT0gZmFsc2UpIHsNCiAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5jbGFzc05hbWUgPSAibm90QWN0aXZlRVBHIjsNCiAgICAgICAgfQ0KICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5jbGFzc05hbWUgPSAiYWN0aXZlRVBHIjsNCiAgICAgICAgfQ0KICAgICAgICBjb25zb2xlLmxvZyhpbnB1dFsidHZnLWxvZ28iXSk7DQogICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5jaGlsZE5vZGVzWzJdLmZpcnN0Q2hpbGQuc2V0QXR0cmlidXRlKCJzcmMiLCBpbnB1dFsidHZnLWxvZ28iXSk7DQogICAgfSk7DQogICAgc2hvd0VsZW1lbnQoInBvcHVwIiwgZmFsc2UpOw0KICAgIHJldHVybjsNCn0NCmZ1bmN0aW9uIHNob3dQcmV2aWV3KGVsZW1lbnQpIHsNCiAgICBsZXQgZGl2ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm15U3RyZWFtc0JveCIpOw0KICAgIHN3aXRjaCAoZWxlbWVudCkgew0KICAgICAgICBjYXNlIGZhbHNlOg0KICAgICAgICAgICAgZGl2LmNsYXNzTmFtZSA9ICJub3RWaXNpYmxlIjsNCiAgICAgICAgICAgIHJldHVybjsNCiAgICB9DQogICAgbGV0IHN0cmVhbXMgPSBbImFjdGl2ZVN0cmVhbXMiLCAiaW5hY3RpdmVTdHJlYW1zIl07DQogICAgc3RyZWFtcy5mb3JFYWNoKHByZXZpZXcgPT4gew0KICAgICAgICBsZXQgdGFibGUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChwcmV2aWV3KTsNCiAgICAgICAgdGFibGUuaW5uZXJIVE1MID0gIiI7DQogICAgICAgIGxldCBvYmogPSBTRVJWRVJbImRhdGEiXVsiU3RyZWFtUHJldmlld1VJIl1bcHJldmlld107DQogICAgICAgIG9iai5mb3JFYWNoKGNoYW5uZWwgPT4gew0KICAgICAgICAgICAgbGV0IHRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVFIiKTsNCiAgICAgICAgICAgIGxldCB0ZEtleSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICBsZXQgdGRWYWwgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgdGRLZXkuY2xhc3NOYW1lID0gInRkS2V5IjsNCiAgICAgICAgICAgIHRkVmFsLmNsYXNzTmFtZSA9ICJ0ZFZhbCI7DQogICAgICAgICAgICBzd2l0Y2ggKHByZXZpZXcpIHsNCiAgICAgICAgICAgICAgICBjYXNlICJhY3RpdmVTdHJlYW1zIjoNCiAgICAgICAgICAgICAgICAgICAgdGRLZXkuaW5uZXJUZXh0ID0gIkNoYW5uZWw6ICgrKSI7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgImluYWN0aXZlU3RyZWFtcyI6DQogICAgICAgICAgICAgICAgICAgIHRkS2V5LmlubmVyVGV4dCA9ICJDaGFubmVsOiAoLSkiOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIHRkVmFsLmlubmVyVGV4dCA9IGNoYW5uZWw7DQogICAgICAgICAgICB0ci5hcHBlbmRDaGlsZCh0ZEtleSk7DQogICAgICAgICAgICB0ci5hcHBlbmRDaGlsZCh0ZFZhbCk7DQogICAgICAgICAgICB0YWJsZS5hcHBlbmRDaGlsZCh0cik7DQogICAgICAgIH0pOw0KICAgIH0pOw0KICAgIHNob3dFbGVtZW50KCJsb2FkaW5nIiwgZmFsc2UpOw0KICAgIGRpdi5jbGFzc05hbWUgPSAidmlzaWJsZSI7DQogICAgcmV0dXJuOw0KfQ0K" + webUI["html/js/menu_ts.js"] = "Y2xhc3MgTWFpbk1lbnUgew0KICAgIGNvbnN0cnVjdG9yKCkgew0KICAgICAgICB0aGlzLkRvY3VtZW50SUQgPSAibWFpbi1tZW51IjsNCiAgICAgICAgdGhpcy5IVE1MVGFnID0gIkxJIjsNCiAgICAgICAgdGhpcy5JbWFnZVBhdGggPSAiaW1nLyI7DQogICAgfQ0KICAgIGNyZWF0ZUlNRyhzcmMpIHsNCiAgICAgICAgbGV0IGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJJTUciKTsNCiAgICAgICAgZWxlbWVudC5zZXRBdHRyaWJ1dGUoInNyYyIsIHRoaXMuSW1hZ2VQYXRoICsgc3JjKTsNCiAgICAgICAgcmV0dXJuIGVsZW1lbnQ7DQogICAgfQ0KICAgIGNyZWF0ZVZhbHVlKHZhbHVlKSB7DQogICAgICAgIGxldCBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiUCIpOw0KICAgICAgICBlbGVtZW50LmlubmVySFRNTCA9IHZhbHVlOw0KICAgICAgICByZXR1cm4gZWxlbWVudDsNCiAgICB9DQp9DQpjbGFzcyBNYWluTWVudUl0ZW0gZXh0ZW5kcyBNYWluTWVudSB7DQogICAgY29uc3RydWN0b3IobWVudUtleSwgdmFsdWUsIGltYWdlLCBoZWFkbGluZSkgew0KICAgICAgICBzdXBlcigpOw0KICAgICAgICB0aGlzLm1lbnVLZXkgPSBtZW51S2V5Ow0KICAgICAgICB0aGlzLnZhbHVlID0gdmFsdWU7DQogICAgICAgIHRoaXMuaW1nU3JjID0gaW1hZ2U7DQogICAgICAgIHRoaXMuaGVhZGxpbmUgPSBoZWFkbGluZTsNCiAgICB9DQogICAgY3JlYXRlSXRlbSgpIHsNCiAgICAgICAgbGV0IGl0ZW0gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJMSSIpOw0KICAgICAgICBpdGVtLnNldEF0dHJpYnV0ZSgib25jbGljayIsICJqYXZhc2NyaXB0OiBvcGVuVGhpc01lbnUodGhpcykiKTsNCiAgICAgICAgaXRlbS5zZXRBdHRyaWJ1dGUoImlkIiwgdGhpcy5pZCk7DQogICAgICAgIGxldCBpbWcgPSB0aGlzLmNyZWF0ZUlNRyh0aGlzLmltZ1NyYyk7DQogICAgICAgIGxldCB2YWx1ZSA9IHRoaXMuY3JlYXRlVmFsdWUodGhpcy52YWx1ZSk7DQogICAgICAgIGl0ZW0uYXBwZW5kQ2hpbGQoaW1nKTsNCiAgICAgICAgaXRlbS5hcHBlbmRDaGlsZCh2YWx1ZSk7DQogICAgICAgIGxldCBkb2MgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCh0aGlzLkRvY3VtZW50SUQpOw0KICAgICAgICBkb2MuYXBwZW5kQ2hpbGQoaXRlbSk7DQogICAgICAgIHN3aXRjaCAodGhpcy5tZW51S2V5KSB7DQogICAgICAgICAgICBjYXNlICJwbGF5bGlzdCI6DQogICAgICAgICAgICAgICAgdGhpcy50YWJsZUhlYWRlciA9IFsie3sucGxheWxpc3QudGFibGUucGxheWxpc3R9fSIsICJ7ey5wbGF5bGlzdC50YWJsZS50dW5lcn19IiwgInt7LnBsYXlsaXN0LnRhYmxlLmxhc3RVcGRhdGV9fSIsICJ7ey5wbGF5bGlzdC50YWJsZS5hdmFpbGFiaWxpdHl9fSAlIiwgInt7LnBsYXlsaXN0LnRhYmxlLnR5cGV9fSIsICJ7ey5wbGF5bGlzdC50YWJsZS5zdHJlYW1zfX0iLCAie3sucGxheWxpc3QudGFibGUuZ3JvdXBUaXRsZX19ICUiLCAie3sucGxheWxpc3QudGFibGUudHZnSUR9fSAlIiwgInt7LnBsYXlsaXN0LnRhYmxlLnVuaXF1ZUlEfX0gJSJdOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAieG1sdHYiOg0KICAgICAgICAgICAgICAgIHRoaXMudGFibGVIZWFkZXIgPSBbInt7LnhtbHR2LnRhYmxlLmd1aWRlfX0iLCAie3sueG1sdHYudGFibGUubGFzdFVwZGF0ZX19IiwgInt7LnhtbHR2LnRhYmxlLmF2YWlsYWJpbGl0eX19ICUiLCAie3sueG1sdHYudGFibGUuY2hhbm5lbHN9fSIsICJ7ey54bWx0di50YWJsZS5wcm9ncmFtc319Il07DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJmaWx0ZXIiOg0KICAgICAgICAgICAgICAgIHRoaXMudGFibGVIZWFkZXIgPSBbInt7LmZpbHRlci50YWJsZS5uYW1lfX0iLCAie3suZmlsdGVyLnRhYmxlLnR5cGV9fSIsICJ7ey5maWx0ZXIudGFibGUuZmlsdGVyfX0iXTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInVzZXJzIjoNCiAgICAgICAgICAgICAgICB0aGlzLnRhYmxlSGVhZGVyID0gWyJ7ey51c2Vycy50YWJsZS51c2VybmFtZX19IiwgInt7LnVzZXJzLnRhYmxlLnBhc3N3b3JkfX0iLCAie3sudXNlcnMudGFibGUud2VifX0iLCAie3sudXNlcnMudGFibGUucG1zfX0iLCAie3sudXNlcnMudGFibGUubTN1fX0iLCAie3sudXNlcnMudGFibGUueG1sfX0iLCAie3sudXNlcnMudGFibGUuYXBpfX0iXTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgIm1hcHBpbmciOg0KICAgICAgICAgICAgICAgIHRoaXMudGFibGVIZWFkZXIgPSBbIkJVTEsiLCAie3subWFwcGluZy50YWJsZS5jaE5vfX0iLCAie3subWFwcGluZy50YWJsZS5sb2dvfX0iLCAie3subWFwcGluZy50YWJsZS5jaGFubmVsTmFtZX19IiwgInt7Lm1hcHBpbmcudGFibGUucGxheWxpc3R9fSIsICJ7ey5tYXBwaW5nLnRhYmxlLmdyb3VwVGl0bGV9fSIsICJ7ey5tYXBwaW5nLnRhYmxlLnhtbHR2RmlsZX19IiwgInt7Lm1hcHBpbmcudGFibGUueG1sdHZJRH19IiwgInt7Lm1hcHBpbmcudGFibGUudGltZXNoaWZ0fX0iXTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgfQ0KICAgICAgICAvL2NvbnNvbGUubG9nKHRoaXMubWVudUtleSwgdGhpcy50YWJsZUhlYWRlcik7DQogICAgfQ0KfQ0KY2xhc3MgQ29udGVudCB7DQogICAgY29uc3RydWN0b3IoKSB7DQogICAgICAgIHRoaXMuRG9jdW1lbnRJRCA9ICJjb250ZW50IjsNCiAgICAgICAgdGhpcy5UYWJsZUlEID0gImNvbnRlbnRfdGFibGUiOw0KICAgICAgICB0aGlzLmhlYWRlckNsYXNzID0gImNvbnRlbnRfdGFibGVfaGVhZGVyIjsNCiAgICAgICAgdGhpcy5pbnRlcmFjdGlvbklEID0gImNvbnRlbnQtaW50ZXJhY3Rpb24iOw0KICAgIH0NCiAgICBjcmVhdGVIZWFkbGluZSh2YWx1ZSkgew0KICAgICAgICBsZXQgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIkgzIik7DQogICAgICAgIGVsZW1lbnQuaW5uZXJIVE1MID0gdmFsdWU7DQogICAgICAgIHJldHVybiBlbGVtZW50Ow0KICAgIH0NCiAgICBjcmVhdGVIUigpIHsNCiAgICAgICAgcmV0dXJuIGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIkhSIik7DQogICAgfQ0KICAgIGNyZWF0ZUludGVyYWN0aW9uKCkgew0KICAgICAgICBsZXQgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIkRJViIpOw0KICAgICAgICBlbGVtZW50LnNldEF0dHJpYnV0ZSgiaWQiLCB0aGlzLmludGVyYWN0aW9uSUQpOw0KICAgICAgICByZXR1cm4gZWxlbWVudDsNCiAgICB9DQogICAgY3JlYXRlRElWKCkgew0KICAgICAgICBsZXQgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIkRJViIpOw0KICAgICAgICBlbGVtZW50LmlkID0gdGhpcy5EaXZJRDsNCiAgICAgICAgcmV0dXJuIGVsZW1lbnQ7DQogICAgfQ0KICAgIGNyZWF0ZVRBQkxFKCkgew0KICAgICAgICBsZXQgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlRBQkxFIik7DQogICAgICAgIGVsZW1lbnQuaWQgPSB0aGlzLlRhYmxlSUQ7DQogICAgICAgIHJldHVybiBlbGVtZW50Ow0KICAgIH0NCiAgICBjcmVhdGVUYWJsZVJvdygpIHsNCiAgICAgICAgbGV0IGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJUUiIpOw0KICAgICAgICBlbGVtZW50LmNsYXNzTmFtZSA9IHRoaXMuaGVhZGVyQ2xhc3M7DQogICAgICAgIHJldHVybiBlbGVtZW50Ow0KICAgIH0NCiAgICBjcmVhdGVUYWJsZUNvbnRlbnQobWVudUtleSkgew0KICAgICAgICBsZXQgZGF0YSA9IHt9Ow0KICAgICAgICBsZXQgcm93cyA9IFtdOw0KICAgICAgICBsZXQgZmlsZVR5cGVzID0gW107DQogICAgICAgIHN3aXRjaCAobWVudUtleSkgew0KICAgICAgICAgICAgY2FzZSAicGxheWxpc3QiOg0KICAgICAgICAgICAgICAgIGZpbGVUeXBlcyA9IFsibTN1IiwgImhkaHIiXTsNCiAgICAgICAgICAgICAgICBmaWxlVHlwZXMuZm9yRWFjaChmaWxlVHlwZSA9PiB7DQogICAgICAgICAgICAgICAgICAgIGRhdGEgPSBTRVJWRVJbInNldHRpbmdzIl1bImZpbGVzIl1bZmlsZVR5cGVdOw0KICAgICAgICAgICAgICAgICAgICB2YXIga2V5cyA9IGdldE9iaktleXMoZGF0YSk7DQogICAgICAgICAgICAgICAgICAgIGtleXMuZm9yRWFjaChrZXkgPT4gew0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVFIiKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmlkID0ga2V5Ow0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgiJyArIGZpbGVUeXBlICsgJyIsIHRoaXMpJyk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsibmFtZSJdOw0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChTRVJWRVJbInNldHRpbmdzIl1bImJ1ZmZlciJdICE9ICItIikgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bInR1bmVyIl07DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gIi0iOw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bImxhc3QudXBkYXRlIl07DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsicHJvdmlkZXIuYXZhaWxhYmlsaXR5Il07DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsidHlwZSJdLnRvVXBwZXJDYXNlKCk7DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsiY29tcGF0aWJpbGl0eSJdWyJzdHJlYW1zIl07DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsiY29tcGF0aWJpbGl0eSJdWyJncm91cC50aXRsZSJdOw0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bImNvbXBhdGliaWxpdHkiXVsidHZnLmlkIl07DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsiY29tcGF0aWJpbGl0eSJdWyJzdHJlYW0uaWQiXTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHJvd3MucHVzaCh0cik7DQogICAgICAgICAgICAgICAgICAgIH0pOw0KICAgICAgICAgICAgICAgIH0pOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiZmlsdGVyIjoNCiAgICAgICAgICAgICAgICBkZWxldGUgU0VSVkVSWyJzZXR0aW5ncyJdWyJmaWx0ZXIiXVstMV07DQogICAgICAgICAgICAgICAgZGF0YSA9IFNFUlZFUlsic2V0dGluZ3MiXVsiZmlsdGVyIl07DQogICAgICAgICAgICAgICAgdmFyIGtleXMgPSBnZXRPYmpLZXlzKGRhdGEpOw0KICAgICAgICAgICAgICAgIGtleXMuZm9yRWFjaChrZXkgPT4gew0KICAgICAgICAgICAgICAgICAgICB2YXIgdHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJUUiIpOw0KICAgICAgICAgICAgICAgICAgICB0ci5pZCA9IGtleTsNCiAgICAgICAgICAgICAgICAgICAgdHIuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgiJyArIGRhdGFba2V5XVsidHlwZSJdICsgJyIsIHRoaXMpJyk7DQogICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJuYW1lIl07DQogICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgIHN3aXRjaCAoZGF0YVtrZXldWyJ0eXBlIl0pIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgImN1c3RvbS1maWx0ZXIiOg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSAie3suZmlsdGVyLmN1c3RvbX19IjsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgImdyb3VwLXRpdGxlIjoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gInt7LmZpbHRlci5ncm91cH19IjsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsiZmlsdGVyIl07DQogICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgcm93cy5wdXNoKHRyKTsNCiAgICAgICAgICAgICAgICB9KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInhtbHR2IjoNCiAgICAgICAgICAgICAgICBmaWxlVHlwZXMgPSBuZXcgQXJyYXkoInhtbHR2Iik7DQogICAgICAgICAgICAgICAgZmlsZVR5cGVzLmZvckVhY2goZmlsZVR5cGUgPT4gew0KICAgICAgICAgICAgICAgICAgICBkYXRhID0gU0VSVkVSWyJzZXR0aW5ncyJdWyJmaWxlcyJdW2ZpbGVUeXBlXTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGtleXMgPSBnZXRPYmpLZXlzKGRhdGEpOw0KICAgICAgICAgICAgICAgICAgICBrZXlzLmZvckVhY2goa2V5ID0+IHsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciB0ciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlRSIik7DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5pZCA9IGtleTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoIicgKyBmaWxlVHlwZSArICciLCB0aGlzKScpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bIm5hbWUiXTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJsYXN0LnVwZGF0ZSJdOw0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bInByb3ZpZGVyLmF2YWlsYWJpbGl0eSJdOw0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bImNvbXBhdGliaWxpdHkiXVsieG1sdHYuY2hhbm5lbHMiXTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJjb21wYXRpYmlsaXR5Il1bInhtbHR2LnByb2dyYW1zIl07DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICByb3dzLnB1c2godHIpOw0KICAgICAgICAgICAgICAgICAgICB9KTsNCiAgICAgICAgICAgICAgICB9KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInVzZXJzIjoNCiAgICAgICAgICAgICAgICBmaWxlVHlwZXMgPSBuZXcgQXJyYXkoInVzZXJzIik7DQogICAgICAgICAgICAgICAgZmlsZVR5cGVzLmZvckVhY2goZmlsZVR5cGUgPT4gew0KICAgICAgICAgICAgICAgICAgICBkYXRhID0gU0VSVkVSW2ZpbGVUeXBlXTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGtleXMgPSBnZXRPYmpLZXlzKGRhdGEpOw0KICAgICAgICAgICAgICAgICAgICBrZXlzLmZvckVhY2goa2V5ID0+IHsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciB0ciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlRSIik7DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5pZCA9IGtleTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoIicgKyBmaWxlVHlwZSArICciLCB0aGlzKScpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bImRhdGEiXVsidXNlcm5hbWUiXTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gIioqKioqKiI7DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGRhdGFba2V5XVsiZGF0YSJdWyJhdXRoZW50aWNhdGlvbi53ZWIiXSA9PSB0cnVlKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9ICLinJMiOw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9ICItIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgICAgICBpZiAoZGF0YVtrZXldWyJkYXRhIl1bImF1dGhlbnRpY2F0aW9uLnBtcyJdID09IHRydWUpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gIuKckyI7DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gIi0iOw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChkYXRhW2tleV1bImRhdGEiXVsiYXV0aGVudGljYXRpb24ubTN1Il0gPT0gdHJ1ZSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSAi4pyTIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSAiLSI7DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGRhdGFba2V5XVsiZGF0YSJdWyJhdXRoZW50aWNhdGlvbi54bWwiXSA9PSB0cnVlKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9ICLinJMiOw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9ICItIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgICAgICBpZiAoZGF0YVtrZXldWyJkYXRhIl1bImF1dGhlbnRpY2F0aW9uLmFwaSJdID09IHRydWUpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gIuKckyI7DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gIi0iOw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgcm93cy5wdXNoKHRyKTsNCiAgICAgICAgICAgICAgICAgICAgfSk7DQogICAgICAgICAgICAgICAgfSk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJtYXBwaW5nIjoNCiAgICAgICAgICAgICAgICBCVUxLX0VESVQgPSBmYWxzZTsNCiAgICAgICAgICAgICAgICBjcmVhdGVTZWFyY2hPYmooKTsNCiAgICAgICAgICAgICAgICBjaGVja1VuZG8oImVwZ01hcHBpbmciKTsNCiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZygiTUFQUElORyIpOw0KICAgICAgICAgICAgICAgIGRhdGEgPSBTRVJWRVJbInhlcGciXVsiZXBnTWFwcGluZyJdOw0KICAgICAgICAgICAgICAgIHZhciBrZXlzID0gZ2V0T2JqS2V5cyhkYXRhKTsNCiAgICAgICAgICAgICAgICBrZXlzLmZvckVhY2goa2V5ID0+IHsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVFIiKTsNCiAgICAgICAgICAgICAgICAgICAgdHIuaWQgPSBrZXk7DQogICAgICAgICAgICAgICAgICAgIC8vdHIuc2V0QXR0cmlidXRlKCdvbmNvbnRleHRtZW51JywgJ2phdmFzY3JpcHQ6IHJpZ2h0Q2xpY2sodGhpcyknKQ0KICAgICAgICAgICAgICAgICAgICBzd2l0Y2ggKGRhdGFba2V5XVsieC1hY3RpdmUiXSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSB0cnVlOg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyLmNsYXNzTmFtZSA9ICJhY3RpdmVFUEciOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSBmYWxzZToNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ci5jbGFzc05hbWUgPSAibm90QWN0aXZlRVBHIjsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAvLyBCdWxrDQogICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIkJVTEsiOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZmFsc2U7DQogICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgLy8gQ2hhbm5lbCBudW1iZXINCiAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiSU5QVVRDSEFOTkVMIjsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsieC1jaGFubmVsSUQiXTsNCiAgICAgICAgICAgICAgICAgICAgLy90ZC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogY2hhbmdlQ2hhbm5lbE51bWJlcigiJyArIGtleSArICciLCB0aGlzKScpDQogICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgLy8gTG9nbw0KICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJJTUciOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmltYWdlVVJMID0gZGF0YVtrZXldWyJ0dmctbG9nbyJdOw0KICAgICAgICAgICAgICAgICAgICB2YXIgdGQgPSBjZWxsLmNyZWF0ZUNlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgdGQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgibWFwcGluZyIsIHRoaXMpJyk7DQogICAgICAgICAgICAgICAgICAgIHRkLmlkID0ga2V5Ow0KICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZCh0ZCk7DQogICAgICAgICAgICAgICAgICAgIC8vIENoYW5uZWwgbmFtZQ0KICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jbGFzc05hbWUgPSBkYXRhW2tleV1bIngtY2F0ZWdvcnkiXTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsieC1uYW1lIl07DQogICAgICAgICAgICAgICAgICAgIHZhciB0ZCA9IGNlbGwuY3JlYXRlQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICB0ZC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJtYXBwaW5nIiwgdGhpcyknKTsNCiAgICAgICAgICAgICAgICAgICAgdGQuaWQgPSBrZXk7DQogICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKHRkKTsNCiAgICAgICAgICAgICAgICAgICAgLy8gUGxheWxpc3QNCiAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgIC8vY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsiX2ZpbGUubTN1Lm5hbWUiXSANCiAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGdldFZhbHVlRnJvbVByb3ZpZGVyRmlsZShkYXRhW2tleV1bIl9maWxlLm0zdS5pZCJdLCAibTN1IiwgIm5hbWUiKTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHRkID0gY2VsbC5jcmVhdGVDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgIHRkLnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoIm1hcHBpbmciLCB0aGlzKScpOw0KICAgICAgICAgICAgICAgICAgICB0ZC5pZCA9IGtleTsNCiAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQodGQpOw0KICAgICAgICAgICAgICAgICAgICAvLyBHcm91cCAoZ3JvdXAtdGl0bGUpDQogICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJ4LWdyb3VwLXRpdGxlIl07DQogICAgICAgICAgICAgICAgICAgIHZhciB0ZCA9IGNlbGwuY3JlYXRlQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICB0ZC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJtYXBwaW5nIiwgdGhpcyknKTsNCiAgICAgICAgICAgICAgICAgICAgdGQuaWQgPSBrZXk7DQogICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKHRkKTsNCiAgICAgICAgICAgICAgICAgICAgLy8gWE1MVFYgZmlsZQ0KICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgaWYgKGRhdGFba2V5XVsieC14bWx0di1maWxlIl0gIT0gIi0iKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZ2V0VmFsdWVGcm9tUHJvdmlkZXJGaWxlKGRhdGFba2V5XVsieC14bWx0di1maWxlIl0sICJ4bWx0diIsICJuYW1lIik7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgZWxzZSB7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJ4LXhtbHR2LWZpbGUiXTsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICB2YXIgdGQgPSBjZWxsLmNyZWF0ZUNlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgdGQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgibWFwcGluZyIsIHRoaXMpJyk7DQogICAgICAgICAgICAgICAgICAgIHRkLmlkID0ga2V5Ow0KICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZCh0ZCk7DQogICAgICAgICAgICAgICAgICAgIC8vIFhNTFRWIENoYW5uZWwNCiAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgIC8vdmFyIHZhbHVlID0gc3RyLnN1YnN0cmluZygxLCA0KTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHZhbHVlID0gZGF0YVtrZXldWyJ4LW1hcHBpbmciXTsNCiAgICAgICAgICAgICAgICAgICAgaWYgKHZhbHVlLmxlbmd0aCA+IDIwKSB7DQogICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IGRhdGFba2V5XVsieC1tYXBwaW5nIl0uc3Vic3RyaW5nKDAsIDIwKSArICIuLi4iOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSB2YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHRkID0gY2VsbC5jcmVhdGVDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgIHRkLnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoIm1hcHBpbmciLCB0aGlzKScpOw0KICAgICAgICAgICAgICAgICAgICB0ZC5pZCA9IGtleTsNCiAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQodGQpOw0KICAgICAgICAgICAgICAgICAgICAvLyBUaW1lU2hpZnQNCiAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bIngtdGltZXNoaWZ0Il07DQogICAgICAgICAgICAgICAgICAgIHZhciB0ZCA9IGNlbGwuY3JlYXRlQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICB0ZC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJtYXBwaW5nIiwgdGhpcyknKTsNCiAgICAgICAgICAgICAgICAgICAgdGQuaWQgPSBrZXk7DQogICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKHRkKTsNCiAgICAgICAgICAgICAgICAgICAgcm93cy5wdXNoKHRyKTsNCiAgICAgICAgICAgICAgICB9KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInNldHRpbmdzIjoNCiAgICAgICAgICAgICAgICBhbGVydCgpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZygiVGFibGUgY29udGVudCAobWVudUtleSk6IiwgbWVudUtleSk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIH0NCiAgICAgICAgcmV0dXJuIHJvd3M7DQogICAgfQ0KfQ0KY2xhc3MgQ2VsbCB7DQogICAgY3JlYXRlQ2VsbCgpIHsNCiAgICAgICAgbGV0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgaWYgKHRoaXMuY2hpbGQgPT0gdHJ1ZSkgew0KICAgICAgICAgICAgdmFyIGVsZW1lbnQ7DQogICAgICAgICAgICBzd2l0Y2ggKHRoaXMuY2hpbGRUeXBlKSB7DQogICAgICAgICAgICAgICAgY2FzZSAiUCI6DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KHRoaXMuY2hpbGRUeXBlKTsNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC5pbm5lckhUTUwgPSB0aGlzLnZhbHVlOw0KICAgICAgICAgICAgICAgICAgICBlbGVtZW50LmNsYXNzTmFtZSA9IHRoaXMuY2xhc3NOYW1lOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBjYXNlICJJTlBVVCI6DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KHRoaXMuY2hpbGRUeXBlKTsNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC52YWx1ZSA9IHRoaXMudmFsdWU7DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQudHlwZSA9ICJ0ZXh0IjsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAiSU5QVVRDSEFOTkVMIjoNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIklOUFVUIik7DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZzY3JpcHQ6IGNoYW5nZUNoYW5uZWxOdW1iZXIodGhpcykiKTsNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC52YWx1ZSA9IHRoaXMudmFsdWU7DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQudHlwZSA9ICJ0ZXh0IjsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAiQlVMSyI6DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJJTlBVVCIpOw0KICAgICAgICAgICAgICAgICAgICBlbGVtZW50LmNoZWNrZWQgPSB0aGlzLnZhbHVlOw0KICAgICAgICAgICAgICAgICAgICBlbGVtZW50LnR5cGUgPSAiY2hlY2tib3giOw0KICAgICAgICAgICAgICAgICAgICBlbGVtZW50LmNsYXNzTmFtZSA9ICJidWxrIGhpZGVCdWxrIjsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAiQlVMS19IRUFEIjoNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIklOUFVUIik7DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQuY2hlY2tlZCA9IHRoaXMudmFsdWU7DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQudHlwZSA9ICJjaGVja2JveCI7DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQuY2xhc3NOYW1lID0gImJ1bGsgaGlkZUJ1bGsiOw0KICAgICAgICAgICAgICAgICAgICBlbGVtZW50LnNldEF0dHJpYnV0ZSgib25jbGljayIsICJqYXZhc2NyaXB0OiBzZWxlY3RBbGxDaGFubmVscygpIik7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgIklNRyI6DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KHRoaXMuY2hpbGRUeXBlKTsNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC5zZXRBdHRyaWJ1dGUoInNyYyIsIHRoaXMuaW1hZ2VVUkwpOw0KICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5pbWFnZVVSTCAhPSAiIikgew0KICAgICAgICAgICAgICAgICAgICAgICAgZWxlbWVudC5zZXRBdHRyaWJ1dGUoIm9uZXJyb3IiLCAiamF2YXNjcmlwdDogdGhpcy5vbmVycm9yPW51bGw7dGhpcy5zcmM9JyciKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIC8vb25lcnJvcj0idGhpcy5vbmVycm9yPW51bGw7dGhpcy5zcmM9J21pc3NpbmcuZ2lmJzsiDQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIHRkLmFwcGVuZENoaWxkKGVsZW1lbnQpOw0KICAgICAgICB9DQogICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgdGQuaW5uZXJIVE1MID0gdGhpcy52YWx1ZTsNCiAgICAgICAgfQ0KICAgICAgICBpZiAodGhpcy5vbmNsaWNrID09IHRydWUpIHsNCiAgICAgICAgICAgIHRkLnNldEF0dHJpYnV0ZSgib25jbGljayIsIHRoaXMub25jbGlja0Z1bmN0aW9uKTsNCiAgICAgICAgICAgIHRkLmNsYXNzTmFtZSA9ICJwb2ludGVyIjsNCiAgICAgICAgfQ0KICAgICAgICBpZiAodGhpcy50ZENsYXNzTmFtZSAhPSB1bmRlZmluZWQpIHsNCiAgICAgICAgICAgIHRkLmNsYXNzTmFtZSA9IHRoaXMudGRDbGFzc05hbWU7DQogICAgICAgIH0NCiAgICAgICAgcmV0dXJuIHRkOw0KICAgIH0NCn0NCmNsYXNzIFNob3dDb250ZW50IGV4dGVuZHMgQ29udGVudCB7DQogICAgY29uc3RydWN0b3IobWVudUlEKSB7DQogICAgICAgIHN1cGVyKCk7DQogICAgICAgIHRoaXMubWVudUlEID0gbWVudUlEOw0KICAgIH0NCiAgICBjcmVhdGVJbnB1dCh0eXBlLCBuYW1lLCB2YWx1ZSkgew0KICAgICAgICBsZXQgaW5wdXQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJJTlBVVCIpOw0KICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInR5cGUiLCB0eXBlKTsNCiAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJuYW1lIiwgbmFtZSk7DQogICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgidmFsdWUiLCB2YWx1ZSk7DQogICAgICAgIHJldHVybiBpbnB1dDsNCiAgICB9DQogICAgc2hvdygpIHsNCiAgICAgICAgQ09MVU1OX1RPX1NPUlQgPSAtMTsNCiAgICAgICAgLy8gRGVsZXRlIG9sZCBjb250ZW50DQogICAgICAgIGxldCBkb2MgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCh0aGlzLkRvY3VtZW50SUQpOw0KICAgICAgICBkb2MuaW5uZXJIVE1MID0gIiI7DQogICAgICAgIHNob3dQcmV2aWV3KGZhbHNlKTsNCiAgICAgICAgLy8gSGVhZGxpbmUNCiAgICAgICAgbGV0IGhlYWRsaW5lID0gbWVudUl0ZW1zW3RoaXMubWVudUlEXS5oZWFkbGluZTsNCiAgICAgICAgbGV0IG1lbnVLZXkgPSBtZW51SXRlbXNbdGhpcy5tZW51SURdLm1lbnVLZXk7DQogICAgICAgIGxldCBoID0gdGhpcy5jcmVhdGVIZWFkbGluZShoZWFkbGluZSk7DQogICAgICAgIGRvYy5hcHBlbmRDaGlsZChoKTsNCiAgICAgICAgbGV0IGhyID0gdGhpcy5jcmVhdGVIUigpOw0KICAgICAgICBkb2MuYXBwZW5kQ2hpbGQoaHIpOw0KICAgICAgICAvLyBJbnRlcmFjdGlvbg0KICAgICAgICBsZXQgZGl2ID0gdGhpcy5jcmVhdGVJbnRlcmFjdGlvbigpOw0KICAgICAgICBkb2MuYXBwZW5kQ2hpbGQoZGl2KTsNCiAgICAgICAgbGV0IGludGVyYWN0aW9uID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQodGhpcy5pbnRlcmFjdGlvbklEKTsNCiAgICAgICAgc3dpdGNoIChtZW51S2V5KSB7DQogICAgICAgICAgICBjYXNlICJwbGF5bGlzdCI6DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gdGhpcy5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgbWVudUtleSwgInt7LmJ1dHRvbi5uZXd9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgiaWQiLCAiLSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoInBsYXlsaXN0IiknKTsNCiAgICAgICAgICAgICAgICBpbnRlcmFjdGlvbi5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJmaWx0ZXIiOg0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IHRoaXMuY3JlYXRlSW5wdXQoImJ1dHRvbiIsIG1lbnVLZXksICJ7ey5idXR0b24ubmV3fX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoImlkIiwgLTEpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoImZpbHRlciIsIHRoaXMpJyk7DQogICAgICAgICAgICAgICAgaW50ZXJhY3Rpb24uYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAieG1sdHYiOg0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IHRoaXMuY3JlYXRlSW5wdXQoImJ1dHRvbiIsIG1lbnVLZXksICJ7ey5idXR0b24ubmV3fX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoImlkIiwgInhtbHR2Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgieG1sdHYiKScpOw0KICAgICAgICAgICAgICAgIGludGVyYWN0aW9uLmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInVzZXJzIjoNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSB0aGlzLmNyZWF0ZUlucHV0KCJidXR0b24iLCBtZW51S2V5LCAie3suYnV0dG9uLm5ld319Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJpZCIsICJ1c2VycyIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoInVzZXJzIiknKTsNCiAgICAgICAgICAgICAgICBpbnRlcmFjdGlvbi5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJtYXBwaW5nIjoNCiAgICAgICAgICAgICAgICBzaG93RWxlbWVudCgibG9hZGluZyIsIHRydWUpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IHRoaXMuY3JlYXRlSW5wdXQoImJ1dHRvbiIsIG1lbnVLZXksICJ7ey5idXR0b24uc2F2ZX19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoIm1hcHBpbmciLCAiIiwgIiIpJyk7DQogICAgICAgICAgICAgICAgaW50ZXJhY3Rpb24uYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IHRoaXMuY3JlYXRlSW5wdXQoImJ1dHRvbiIsIG1lbnVLZXksICJ7ey5idXR0b24uYnVsa0VkaXR9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBidWxrRWRpdCgpJyk7DQogICAgICAgICAgICAgICAgaW50ZXJhY3Rpb24uYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IHRoaXMuY3JlYXRlSW5wdXQoInNlYXJjaCIsICJzZWFyY2giLCAiIik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJpZCIsICJzZWFyY2hNYXBwaW5nIik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5idXR0b24uc2VhcmNofX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5jbGFzc05hbWUgPSAic2VhcmNoIjsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgJ2phdmFzY3JpcHQ6IHNlYXJjaEluTWFwcGluZygpJyk7DQogICAgICAgICAgICAgICAgaW50ZXJhY3Rpb24uYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAic2V0dGluZ3MiOg0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IHRoaXMuY3JlYXRlSW5wdXQoImJ1dHRvbiIsIG1lbnVLZXksICJ7ey5idXR0b24uc2F2ZX19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IHNhdmVTZXR0aW5ncygpOycpOw0KICAgICAgICAgICAgICAgIGludGVyYWN0aW9uLmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSB0aGlzLmNyZWF0ZUlucHV0KCJidXR0b24iLCBtZW51S2V5LCAie3suYnV0dG9uLmJhY2t1cH19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IGJhY2t1cCgpOycpOw0KICAgICAgICAgICAgICAgIGludGVyYWN0aW9uLmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSB0aGlzLmNyZWF0ZUlucHV0KCJidXR0b24iLCBtZW51S2V5LCAie3suYnV0dG9uLnJlc3RvcmV9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiByZXN0b3JlKCk7Jyk7DQogICAgICAgICAgICAgICAgaW50ZXJhY3Rpb24uYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIHZhciB3cmFwcGVyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiRElWIik7DQogICAgICAgICAgICAgICAgd3JhcHBlci5zZXRBdHRyaWJ1dGUoImlkIiwgImJveC13cmFwcGVyIik7DQogICAgICAgICAgICAgICAgZG9jLmFwcGVuZENoaWxkKHdyYXBwZXIpOw0KICAgICAgICAgICAgICAgIHRoaXMuRGl2SUQgPSAiY29udGVudF9zZXR0aW5ncyI7DQogICAgICAgICAgICAgICAgdmFyIHNldHRpbmdzID0gdGhpcy5jcmVhdGVESVYoKTsNCiAgICAgICAgICAgICAgICB3cmFwcGVyLmFwcGVuZENoaWxkKHNldHRpbmdzKTsNCiAgICAgICAgICAgICAgICBzaG93U2V0dGluZ3MoKTsNCiAgICAgICAgICAgICAgICByZXR1cm47DQogICAgICAgICAgICBjYXNlICJsb2ciOg0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IHRoaXMuY3JlYXRlSW5wdXQoImJ1dHRvbiIsIG1lbnVLZXksICJ7ey5idXR0b24ucmVzZXRMb2dzfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogcmVzZXRMb2dzKCk7Jyk7DQogICAgICAgICAgICAgICAgaW50ZXJhY3Rpb24uYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIHZhciB3cmFwcGVyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiRElWIik7DQogICAgICAgICAgICAgICAgd3JhcHBlci5zZXRBdHRyaWJ1dGUoImlkIiwgImJveC13cmFwcGVyIik7DQogICAgICAgICAgICAgICAgZG9jLmFwcGVuZENoaWxkKHdyYXBwZXIpOw0KICAgICAgICAgICAgICAgIHRoaXMuRGl2SUQgPSAiY29udGVudF9sb2ciOw0KICAgICAgICAgICAgICAgIHZhciBsb2dzID0gdGhpcy5jcmVhdGVESVYoKTsNCiAgICAgICAgICAgICAgICB3cmFwcGVyLmFwcGVuZENoaWxkKGxvZ3MpOw0KICAgICAgICAgICAgICAgIHNob3dMb2dzKHRydWUpOw0KICAgICAgICAgICAgICAgIHJldHVybjsNCiAgICAgICAgICAgIGNhc2UgImxvZ291dCI6DQogICAgICAgICAgICAgICAgbG9jYXRpb24ucmVsb2FkKCk7DQogICAgICAgICAgICAgICAgZG9jdW1lbnQuY29va2llID0gIlRva2VuPSA7IGV4cGlyZXMgPSBUaHUsIDAxIEphbiAxOTcwIDAwOjAwOjAwIEdNVCI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBkZWZhdWx0Og0KICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKCJTaG93IGNvbnRlbnQgKG1lbnVLZXkpOiIsIG1lbnVLZXkpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICB9DQogICAgICAgIC8vIENyZWF0ZSB0YWJsZSAoaWYgbmVlZGVkKQ0KICAgICAgICB2YXIgdGFibGVIZWFkZXIgPSBtZW51SXRlbXNbdGhpcy5tZW51SURdLnRhYmxlSGVhZGVyOw0KICAgICAgICBpZiAodGFibGVIZWFkZXIubGVuZ3RoID4gMCkgew0KICAgICAgICAgICAgdmFyIHdyYXBwZXIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJESVYiKTsNCiAgICAgICAgICAgIGRvYy5hcHBlbmRDaGlsZCh3cmFwcGVyKTsNCiAgICAgICAgICAgIHdyYXBwZXIuc2V0QXR0cmlidXRlKCJpZCIsICJib3gtd3JhcHBlciIpOw0KICAgICAgICAgICAgdmFyIHRhYmxlID0gdGhpcy5jcmVhdGVUQUJMRSgpOw0KICAgICAgICAgICAgd3JhcHBlci5hcHBlbmRDaGlsZCh0YWJsZSk7DQogICAgICAgICAgICB2YXIgaGVhZGVyID0gdGhpcy5jcmVhdGVUYWJsZVJvdygpOw0KICAgICAgICAgICAgdGFibGUuYXBwZW5kQ2hpbGQoaGVhZGVyKTsNCiAgICAgICAgICAgIC8vIFRhYmxlIGhlYWRlcg0KICAgICAgICAgICAgdGFibGVIZWFkZXIuZm9yRWFjaChlbGVtZW50ID0+IHsNCiAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGVsZW1lbnQ7DQogICAgICAgICAgICAgICAgaWYgKGVsZW1lbnQgPT0gIkJVTEsiKSB7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIkJVTEtfSEVBRCI7DQogICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBmYWxzZTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgaWYgKG1lbnVLZXkgPT0gIm1hcHBpbmciKSB7DQogICAgICAgICAgICAgICAgICAgIGlmIChlbGVtZW50ID09ICJ7ey5tYXBwaW5nLnRhYmxlLmNoTm99fSIpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwub25jbGljayA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLm9uY2xpY2tGdW5jdGlvbiA9ICJqYXZhc2NyaXB0OiBzb3J0VGFibGUoMSk7IjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudGRDbGFzc05hbWUgPSAic29ydFRoaXMiOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIGlmIChlbGVtZW50ID09ICJ7ey5tYXBwaW5nLnRhYmxlLmNoYW5uZWxOYW1lfX0iKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLm9uY2xpY2sgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5vbmNsaWNrRnVuY3Rpb24gPSAiamF2YXNjcmlwdDogc29ydFRhYmxlKDMpOyI7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgaWYgKGVsZW1lbnQgPT0gInt7Lm1hcHBpbmcudGFibGUucGxheWxpc3R9fSIpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwub25jbGljayA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLm9uY2xpY2tGdW5jdGlvbiA9ICJqYXZhc2NyaXB0OiBzb3J0VGFibGUoNCk7IjsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBpZiAoZWxlbWVudCA9PSAie3subWFwcGluZy50YWJsZS5ncm91cFRpdGxlfX0iKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLm9uY2xpY2sgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5vbmNsaWNrRnVuY3Rpb24gPSAiamF2YXNjcmlwdDogc29ydFRhYmxlKDUpOyI7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgaWYgKGVsZW1lbnQgPT0gInt7Lm1hcHBpbmcudGFibGUudGltZXNoaWZ0fX0iKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLm9uY2xpY2sgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5vbmNsaWNrRnVuY3Rpb24gPSAiamF2YXNjcmlwdDogc29ydFRhYmxlKDgpOyI7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgaGVhZGVyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgIH0pOw0KICAgICAgICAgICAgdGFibGUuYXBwZW5kQ2hpbGQoaGVhZGVyKTsNCiAgICAgICAgICAgIC8vIENvbnRlbnQgb2YgdGhlIHRhYmxlDQogICAgICAgICAgICB2YXIgcm93cyA9IHRoaXMuY3JlYXRlVGFibGVDb250ZW50KG1lbnVLZXkpOw0KICAgICAgICAgICAgcm93cy5mb3JFYWNoKHRyID0+IHsNCiAgICAgICAgICAgICAgICB0YWJsZS5hcHBlbmRDaGlsZCh0cik7DQogICAgICAgICAgICB9KTsNCiAgICAgICAgfQ0KICAgICAgICBzd2l0Y2ggKG1lbnVLZXkpIHsNCiAgICAgICAgICAgIGNhc2UgIm1hcHBpbmciOg0KICAgICAgICAgICAgICAgIHNvcnRUYWJsZSgxKTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImZpbHRlciI6DQogICAgICAgICAgICAgICAgc2hvd1ByZXZpZXcodHJ1ZSk7DQogICAgICAgICAgICAgICAgc29ydFRhYmxlKDApOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgICAgICBDT0xVTU5fVE9fU09SVCA9IC0xOw0KICAgICAgICAgICAgICAgIHNvcnRUYWJsZSgwKTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgfQ0KICAgICAgICBzaG93RWxlbWVudCgibG9hZGluZyIsIGZhbHNlKTsNCiAgICB9DQp9DQpmdW5jdGlvbiBQYWdlUmVhZHkoKSB7DQogICAgbGV0IHNlcnZlciA9IG5ldyBTZXJ2ZXIoImdldFNlcnZlckNvbmZpZyIpOw0KICAgIHNlcnZlci5yZXF1ZXN0KHt9KTsNCiAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigicmVzaXplIiwgZnVuY3Rpb24gKCkgew0KICAgICAgICBjYWxjdWxhdGVXcmFwcGVySGVpZ2h0KCk7DQogICAgfSwgdHJ1ZSk7DQogICAgc2V0SW50ZXJ2YWwoZnVuY3Rpb24gKCkgew0KICAgICAgICB1cGRhdGVMb2coKTsNCiAgICB9LCAxMDAwMCk7DQogICAgcmV0dXJuOw0KfQ0KZnVuY3Rpb24gY3JlYXRlTGF5b3V0KCkgew0KICAgIC8vIENsaWVudCBJbmZvDQogICAgbGV0IG9iaiA9IFNFUlZFUlsiY2xpZW50SW5mbyJdOw0KICAgIGxldCBrZXlzID0gZ2V0T2JqS2V5cyhvYmopOw0KICAgIGZvciAodmFyIGkgPSAwOyBpIDwga2V5cy5sZW5ndGg7IGkrKykgew0KICAgICAgICBpZiAoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoa2V5c1tpXSkpIHsNCiAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGtleXNbaV0pLmlubmVySFRNTCA9IG9ialtrZXlzW2ldXTsNCiAgICAgICAgfQ0KICAgIH0NCiAgICBpZiAoIWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJtYWluLW1lbnUiKSkgew0KICAgICAgICByZXR1cm47DQogICAgfQ0KICAgIC8vIENyZWF0ZSBtZW51DQogICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm1haW4tbWVudSIpLmlubmVySFRNTCA9ICIiOw0KICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbWVudUl0ZW1zLmxlbmd0aDsgaSsrKSB7DQogICAgICAgIG1lbnVJdGVtc1tpXS5pZCA9IGk7DQogICAgICAgIHN3aXRjaCAobWVudUl0ZW1zW2ldWyJtZW51S2V5Il0pIHsNCiAgICAgICAgICAgIGNhc2UgInVzZXJzIjoNCiAgICAgICAgICAgIGNhc2UgImxvZ291dCI6DQogICAgICAgICAgICAgICAgaWYgKFNFUlZFUlsic2V0dGluZ3MiXVsiYXV0aGVudGljYXRpb24ud2ViIl0gPT0gdHJ1ZSkgew0KICAgICAgICAgICAgICAgICAgICBtZW51SXRlbXNbaV0uY3JlYXRlSXRlbSgpOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgIm1hcHBpbmciOg0KICAgICAgICAgICAgY2FzZSAieG1sdHYiOg0KICAgICAgICAgICAgICAgIGlmIChTRVJWRVJbImNsaWVudEluZm8iXVsiZXBnU291cmNlIl0gPT0gIlhFUEciKSB7DQogICAgICAgICAgICAgICAgICAgIG1lbnVJdGVtc1tpXS5jcmVhdGVJdGVtKCk7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgICAgICBtZW51SXRlbXNbaV0uY3JlYXRlSXRlbSgpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICB9DQogICAgfQ0KICAgIHJldHVybjsNCn0NCmZ1bmN0aW9uIG9wZW5UaGlzTWVudShlbGVtZW50KSB7DQogICAgbGV0IGlkID0gZWxlbWVudC5pZDsNCiAgICBsZXQgY29udGVudCA9IG5ldyBTaG93Q29udGVudChpZCk7DQogICAgY29udGVudC5zaG93KCk7DQogICAgY2FsY3VsYXRlV3JhcHBlckhlaWdodCgpOw0KICAgIHJldHVybjsNCn0NCmNsYXNzIFBvcHVwV2luZG93IHsNCiAgICBjb25zdHJ1Y3RvcigpIHsNCiAgICAgICAgdGhpcy5Eb2N1bWVudElEID0gInBvcHVwLWN1c3RvbSI7DQogICAgICAgIHRoaXMuSW50ZXJhY3Rpb25JRCA9ICJpbnRlcmFjdGlvbiI7DQogICAgICAgIHRoaXMuZG9jID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQodGhpcy5Eb2N1bWVudElEKTsNCiAgICB9DQogICAgY3JlYXRlVGl0bGUodGl0bGUpIHsNCiAgICAgICAgbGV0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgdGQuY2xhc3NOYW1lID0gImxlZnQiOw0KICAgICAgICB0ZC5pbm5lckhUTUwgPSB0aXRsZSArICI6IjsNCiAgICAgICAgcmV0dXJuIHRkOw0KICAgIH0NCiAgICBjcmVhdGVDb250ZW50KGVsZW1lbnQpIHsNCiAgICAgICAgbGV0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgdGQuYXBwZW5kQ2hpbGQoZWxlbWVudCk7DQogICAgICAgIHJldHVybiB0ZDsNCiAgICB9DQogICAgY3JlYXRlSW50ZXJhY3Rpb24oKSB7DQogICAgICAgIGxldCBkaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsNCiAgICAgICAgZGl2LnNldEF0dHJpYnV0ZSgiaWQiLCAicG9wdXAtaW50ZXJhY3Rpb24iKTsNCiAgICAgICAgZGl2LmNsYXNzTmFtZSA9ICJpbnRlcmFjdGlvbiI7DQogICAgICAgIHRoaXMuZG9jLmFwcGVuZENoaWxkKGRpdik7DQogICAgfQ0KfQ0KY2xhc3MgUG9wdXBDb250ZW50IGV4dGVuZHMgUG9wdXBXaW5kb3cgew0KICAgIGNvbnN0cnVjdG9yKCkgew0KICAgICAgICBzdXBlciguLi5hcmd1bWVudHMpOw0KICAgICAgICB0aGlzLnRhYmxlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEFCTEUiKTsNCiAgICB9DQogICAgY3JlYXRlSGVhZGxpbmUoaGVhZGxpbmUpIHsNCiAgICAgICAgdGhpcy5kb2MuaW5uZXJIVE1MID0gIiI7DQogICAgICAgIHZhciBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiSDMiKTsNCiAgICAgICAgZWxlbWVudC5pbm5lckhUTUwgPSBoZWFkbGluZS50b1VwcGVyQ2FzZSgpOw0KICAgICAgICB0aGlzLmRvYy5hcHBlbmRDaGlsZChlbGVtZW50KTsNCiAgICAgICAgLy8gQ3JlYXRlIHRhYmxlDQogICAgICAgIHRoaXMudGFibGUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJUQUJMRSIpOw0KICAgICAgICB0aGlzLmRvYy5hcHBlbmRDaGlsZCh0aGlzLnRhYmxlKTsNCiAgICB9DQogICAgYXBwZW5kUm93KHRpdGxlLCBlbGVtZW50KSB7DQogICAgICAgIGxldCB0ciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlRSIik7DQogICAgICAgIC8vIFRpdGxlDQogICAgICAgIGlmICh0aXRsZS5sZW5ndGggIT0gMCkgew0KICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQodGhpcy5jcmVhdGVUaXRsZSh0aXRsZSkpOw0KICAgICAgICB9DQogICAgICAgIC8vIENvbnRlbnQNCiAgICAgICAgdHIuYXBwZW5kQ2hpbGQodGhpcy5jcmVhdGVDb250ZW50KGVsZW1lbnQpKTsNCiAgICAgICAgdGhpcy50YWJsZS5hcHBlbmRDaGlsZCh0cik7DQogICAgfQ0KICAgIGNyZWF0ZUlucHV0KHR5cGUsIG5hbWUsIHZhbHVlKSB7DQogICAgICAgIGxldCBpbnB1dCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIklOUFVUIik7DQogICAgICAgIGlmICh2YWx1ZSA9PSB1bmRlZmluZWQpIHsNCiAgICAgICAgICAgIHZhbHVlID0gIiI7DQogICAgICAgIH0NCiAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJ0eXBlIiwgdHlwZSk7DQogICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgibmFtZSIsIG5hbWUpOw0KICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInZhbHVlIiwgdmFsdWUpOw0KICAgICAgICByZXR1cm4gaW5wdXQ7DQogICAgfQ0KICAgIGNyZWF0ZUNoZWNrYm94KG5hbWUpIHsNCiAgICAgICAgbGV0IGlucHV0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiSU5QVVQiKTsNCiAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJ0eXBlIiwgImNoZWNrYm94Iik7DQogICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgibmFtZSIsIG5hbWUpOw0KICAgICAgICByZXR1cm4gaW5wdXQ7DQogICAgfQ0KICAgIC8vIENyZWF0ZXMgYSBzZWxlY3Rpb24gb2YgbXVsdGlwbGUgb3B0aW9ucyB2YWx1ZXMgd2l0aCB0ZXh0IGRlc2NyaXB0aW9ucw0KICAgIGNyZWF0ZVNlbGVjdCh0ZXh0LCB2YWx1ZXMsIHNldCwgZGJLZXkpIHsNCiAgICAgICAgbGV0IHNlbGVjdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlNFTEVDVCIpOw0KICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJuYW1lIiwgZGJLZXkpOw0KICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRleHQubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgICAgIGxldCBvcHRpb24gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJPUFRJT04iKTsNCiAgICAgICAgICAgIG9wdGlvbi5zZXRBdHRyaWJ1dGUoInZhbHVlIiwgdmFsdWVzW2ldKTsNCiAgICAgICAgICAgIG9wdGlvbi5pbm5lclRleHQgPSB0ZXh0W2ldOw0KICAgICAgICAgICAgc2VsZWN0LmFwcGVuZENoaWxkKG9wdGlvbik7DQogICAgICAgIH0NCiAgICAgICAgaWYgKHNldCAhPSAiIikgew0KICAgICAgICAgICAgc2VsZWN0LnZhbHVlID0gc2V0Ow0KICAgICAgICB9DQogICAgICAgIGlmIChzZXQgPT0gdW5kZWZpbmVkKSB7DQogICAgICAgICAgICBzZWxlY3QudmFsdWUgPSB2YWx1ZXNbMF07DQogICAgICAgIH0NCiAgICAgICAgcmV0dXJuIHNlbGVjdDsNCiAgICB9DQogICAgc2VsZWN0T3B0aW9uKHNlbGVjdCwgdmFsdWUpIHsNCiAgICAgICAgLy9zZWxlY3Quc2VsZWN0ZWRPcHRpb25zID0gdmFsdWUNCiAgICAgICAgbGV0IHMgPSBzZWxlY3Q7DQogICAgICAgIHMub3B0aW9uc1tzLnNlbGVjdGVkSW5kZXhdLnZhbHVlID0gdmFsdWU7DQogICAgICAgIHJldHVybiBzZWxlY3Q7DQogICAgfQ0KICAgIGRlc2NyaXB0aW9uKHZhbHVlKSB7DQogICAgICAgIGxldCB0ciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlRSIik7DQogICAgICAgIGxldCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgIGxldCBzcGFuID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiUFJFIik7DQogICAgICAgIHNwYW4uaW5uZXJIVE1MID0gdmFsdWU7DQogICAgICAgIHRyLmFwcGVuZENoaWxkKHRkKTsNCiAgICAgICAgdHIuYXBwZW5kQ2hpbGQodGhpcy5jcmVhdGVDb250ZW50KHNwYW4pKTsNCiAgICAgICAgdGhpcy50YWJsZS5hcHBlbmRDaGlsZCh0cik7DQogICAgfQ0KICAgIC8vIEludGVyYWN0aW9uDQogICAgYWRkSW50ZXJhY3Rpb24oZWxlbWVudCkgew0KICAgICAgICBsZXQgaW50ZXJhY3Rpb24gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicG9wdXAtaW50ZXJhY3Rpb24iKTsNCiAgICAgICAgaW50ZXJhY3Rpb24uYXBwZW5kQ2hpbGQoZWxlbWVudCk7DQogICAgfQ0KfQ0KZnVuY3Rpb24gb3BlblBvcFVwKGRhdGFUeXBlLCBlbGVtZW50KSB7DQogICAgbGV0IGRhdGEgPSB7fTsNCiAgICBsZXQgaWQ7DQogICAgc3dpdGNoIChlbGVtZW50KSB7DQogICAgICAgIGNhc2UgdW5kZWZpbmVkOg0KICAgICAgICAgICAgc3dpdGNoIChkYXRhVHlwZSkgew0KICAgICAgICAgICAgICAgIGNhc2UgImdyb3VwLXRpdGxlIjoNCiAgICAgICAgICAgICAgICAgICAgaWYgKGlkID09IHVuZGVmaW5lZCkgew0KICAgICAgICAgICAgICAgICAgICAgICAgaWQgPSAtMTsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBkYXRhID0gZ2V0TG9jYWxEYXRhKCJmaWx0ZXIiLCBpZCk7DQogICAgICAgICAgICAgICAgICAgIGRhdGFbInR5cGUiXSA9ICJncm91cC10aXRsZSI7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgImN1c3RvbS1maWx0ZXIiOg0KICAgICAgICAgICAgICAgICAgICBpZiAoaWQgPT0gdW5kZWZpbmVkKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBpZCA9IC0xOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIGRhdGEgPSBnZXRMb2NhbERhdGEoImZpbHRlciIsIGlkKTsNCiAgICAgICAgICAgICAgICAgICAgZGF0YVsidHlwZSJdID0gImN1c3RvbS1maWx0ZXIiOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBkZWZhdWx0Og0KICAgICAgICAgICAgICAgICAgICBkYXRhWyJpZC5wcm92aWRlciJdID0gIi0iOw0KICAgICAgICAgICAgICAgICAgICBkYXRhWyJ0eXBlIl0gPSBkYXRhVHlwZTsNCiAgICAgICAgICAgICAgICAgICAgaWQgPSAiLSI7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICBpZCA9IGVsZW1lbnQuaWQ7DQogICAgICAgICAgICBkYXRhID0gZ2V0TG9jYWxEYXRhKGRhdGFUeXBlLCBpZCk7DQogICAgICAgICAgICBicmVhazsNCiAgICB9DQogICAgbGV0IGNvbnRlbnQgPSBuZXcgUG9wdXBDb250ZW50KCk7DQogICAgc3dpdGNoIChkYXRhVHlwZSkgew0KICAgICAgICBjYXNlICJwbGF5bGlzdCI6DQogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUhlYWRsaW5lKCJ7ey5wbGF5bGlzdC5wbGF5bGlzdFR5cGUudGl0bGV9fSIpOw0KICAgICAgICAgICAgLy8gVHlwZQ0KICAgICAgICAgICAgdmFyIHRleHQgPSBbIk0zVSIsICJIREhvbWVSdW4iXTsNCiAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBbImphdmFzY3JpcHQ6IG9wZW5Qb3BVcCgnbTN1JykiLCAiamF2YXNjcmlwdDogb3BlblBvcFVwKCdoZGhyJykiXTsNCiAgICAgICAgICAgIHZhciBzZWxlY3QgPSBjb250ZW50LmNyZWF0ZVNlbGVjdCh0ZXh0LCB2YWx1ZXMsICIiLCAidHlwZSIpOw0KICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgiaWQiLCAidHlwZSIpOw0KICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAnamF2YXNjcmlwdDogY2hhbmdlQnV0dG9uQWN0aW9uKHRoaXMsICJuZXh0IiwgIm9uY2xpY2siKScpOyAvLyBjaGFuZ2VCdXR0b25BY3Rpb24NCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5wbGF5bGlzdC50eXBlLnRpdGxlfX0iLCBzZWxlY3QpOw0KICAgICAgICAgICAgLy8gSW50ZXJhY3Rpb24NCiAgICAgICAgICAgIGNvbnRlbnQuY3JlYXRlSW50ZXJhY3Rpb24oKTsNCiAgICAgICAgICAgIC8vIEFib3J0DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAiY2FuY2VsIiwgInt7LmJ1dHRvbi5jYW5jZWx9fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IHNob3dFbGVtZW50KCJwb3B1cCIsIGZhbHNlKTsnKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgLy8gTmV4dA0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgIm5leHQiLCAie3suYnV0dG9uLm5leHR9fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgibTN1IiknKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgiaWQiLCAnbmV4dCcpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSAibTN1IjoNCiAgICAgICAgICAgIGNvbnRlbnQuY3JlYXRlSGVhZGxpbmUoZGF0YVR5cGUpOw0KICAgICAgICAgICAgLy8gTmFtZQ0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gIm5hbWUiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnBsYXlsaXN0Lm5hbWUucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnBsYXlsaXN0Lm5hbWUudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIERlc2NyaXB0aW9uDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAiZGVzY3JpcHRpb24iOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnBsYXlsaXN0LmRlc2NyaXB0aW9uLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5wbGF5bGlzdC5kZXNjcmlwdGlvbi50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgLy8gVVJMDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAiZmlsZS5zb3VyY2UiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnBsYXlsaXN0LmZpbGVNM1UucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnBsYXlsaXN0LmZpbGVNM1UudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIFR1bmVyDQogICAgICAgICAgICBpZiAoU0VSVkVSWyJzZXR0aW5ncyJdWyJidWZmZXIiXSAhPSAiLSIpIHsNCiAgICAgICAgICAgICAgICB2YXIgdGV4dCA9IFtdOw0KICAgICAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBbXTsNCiAgICAgICAgICAgICAgICBmb3IgKHZhciBpID0gMTsgaSA8PSAxMDA7IGkrKykgew0KICAgICAgICAgICAgICAgICAgICB0ZXh0LnB1c2goaS50b1N0cmluZygpKTsNCiAgICAgICAgICAgICAgICAgICAgdmFsdWVzLnB1c2goaS50b1N0cmluZygpKTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgdmFyIGRiS2V5ID0gInR1bmVyIjsNCiAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCBkYXRhW2RiS2V5XSwgZGJLZXkpOw0KICAgICAgICAgICAgICAgIHNlbGVjdC5zZXRBdHRyaWJ1dGUoIm9uZm9jdXMiLCAiamF2YXNjcmlwdDogcmV0dXJuOyIpOw0KICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5wbGF5bGlzdC50dW5lci50aXRsZX19Iiwgc2VsZWN0KTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgICAgIHZhciBkYktleSA9ICJ0dW5lciI7DQogICAgICAgICAgICAgICAgaWYgKGRhdGFbZGJLZXldID09IHVuZGVmaW5lZCkgew0KICAgICAgICAgICAgICAgICAgICBkYXRhW2RiS2V5XSA9IDE7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicmVhZG9ubHkiLCAidHJ1ZSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LmNsYXNzTmFtZSA9ICJub3RBdmFpbGFibGUiOw0KICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5wbGF5bGlzdC50dW5lci50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgY29udGVudC5kZXNjcmlwdGlvbigie3sucGxheWxpc3QudHVuZXIuZGVzY3JpcHRpb259fSIpOw0KICAgICAgICAgICAgLy8gSW50ZXJhdGlvbg0KICAgICAgICAgICAgY29udGVudC5jcmVhdGVJbnRlcmFjdGlvbigpOw0KICAgICAgICAgICAgLy8gRGVsZXRlDQogICAgICAgICAgICBpZiAoZGF0YVsiaWQucHJvdmlkZXIiXSAhPSAiLSIpIHsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAiZGVsZXRlIiwgInt7LmJ1dHRvbi5kZWxldGV9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LmNsYXNzTmFtZSA9ICJkZWxldGUiOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBzYXZlUG9wdXBEYXRhKCJtM3UiLCAiJyArIGlkICsgJyIsIHRydWUsIDApJyk7DQogICAgICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAiYmFjayIsICJ7ey5idXR0b24uYmFja319Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgicGxheWxpc3QiKScpOw0KICAgICAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgLy8gQWJvcnQNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJjYW5jZWwiLCAie3suYnV0dG9uLmNhbmNlbH19Iik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogc2hvd0VsZW1lbnQoInBvcHVwIiwgZmFsc2UpOycpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICAvLyBVcGRhdGUNCiAgICAgICAgICAgIGlmIChkYXRhWyJpZC5wcm92aWRlciJdICE9ICItIikgew0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJ1cGRhdGUiLCAie3suYnV0dG9uLnVwZGF0ZX19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoIm0zdSIsICInICsgaWQgKyAnIiwgZmFsc2UsIDEpJyk7DQogICAgICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICAvLyBTYXZlDQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAic2F2ZSIsICJ7ey5idXR0b24uc2F2ZX19Iik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogc2F2ZVBvcHVwRGF0YSgibTN1IiwgIicgKyBpZCArICciLCBmYWxzZSwgMCknKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGNhc2UgImhkaHIiOg0KICAgICAgICAgICAgY29udGVudC5jcmVhdGVIZWFkbGluZShkYXRhVHlwZSk7DQogICAgICAgICAgICAvLyBOYW1lDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAibmFtZSI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3sucGxheWxpc3QubmFtZS5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sucGxheWxpc3QubmFtZS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgLy8gRGVzY3JpcHRpb24NCiAgICAgICAgICAgIHZhciBkYktleSA9ICJkZXNjcmlwdGlvbiI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3sucGxheWxpc3QuZGVzY3JpcHRpb24ucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnBsYXlsaXN0LmRlc2NyaXB0aW9uLnBsYWNlaG9sZGVyfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBVUkwNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJmaWxlLnNvdXJjZSI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3sucGxheWxpc3QuZmlsZUhESFIucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnBsYXlsaXN0LmZpbGVIREhSLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBUdW5lcg0KICAgICAgICAgICAgaWYgKFNFUlZFUlsic2V0dGluZ3MiXVsiYnVmZmVyIl0gIT0gIi0iKSB7DQogICAgICAgICAgICAgICAgdmFyIHRleHQgPSBbXTsNCiAgICAgICAgICAgICAgICB2YXIgdmFsdWVzID0gW107DQogICAgICAgICAgICAgICAgZm9yICh2YXIgaSA9IDE7IGkgPD0gMTAwOyBpKyspIHsNCiAgICAgICAgICAgICAgICAgICAgdGV4dC5wdXNoKGkudG9TdHJpbmcoKSk7DQogICAgICAgICAgICAgICAgICAgIHZhbHVlcy5wdXNoKGkudG9TdHJpbmcoKSk7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIHZhciBkYktleSA9ICJ0dW5lciI7DQogICAgICAgICAgICAgICAgdmFyIHNlbGVjdCA9IGNvbnRlbnQuY3JlYXRlU2VsZWN0KHRleHQsIHZhbHVlcywgZGF0YVtkYktleV0sIGRiS2V5KTsNCiAgICAgICAgICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJvbmZvY3VzIiwgImphdmFzY3JpcHQ6IHJldHVybjsiKTsNCiAgICAgICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sucGxheWxpc3QudHVuZXIudGl0bGV9fSIsIHNlbGVjdCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICB2YXIgZGJLZXkgPSAidHVuZXIiOw0KICAgICAgICAgICAgICAgIGlmIChkYXRhW2RiS2V5XSA9PSB1bmRlZmluZWQpIHsNCiAgICAgICAgICAgICAgICAgICAgZGF0YVtkYktleV0gPSAxOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInJlYWRvbmx5IiwgInRydWUiKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5jbGFzc05hbWUgPSAibm90QXZhaWxhYmxlIjsNCiAgICAgICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sucGxheWxpc3QudHVuZXIudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGNvbnRlbnQuZGVzY3JpcHRpb24oInt7LnBsYXlsaXN0LnR1bmVyLmRlc2NyaXB0aW9ufX0iKTsNCiAgICAgICAgICAgIC8vIEludGVyYWN0aW9uDQogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUludGVyYWN0aW9uKCk7DQogICAgICAgICAgICAvLyBEZWxldGUNCiAgICAgICAgICAgIGlmIChkYXRhWyJpZC5wcm92aWRlciJdICE9ICItIikgew0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJkZWxldGUiLCAie3suYnV0dG9uLmRlbGV0ZX19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoImhkaHIiLCAiJyArIGlkICsgJyIsIHRydWUsIDApJyk7DQogICAgICAgICAgICAgICAgaW5wdXQuY2xhc3NOYW1lID0gImRlbGV0ZSI7DQogICAgICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAiYmFjayIsICJ7ey5idXR0b24uYmFja319Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgicGxheWxpc3QiKScpOw0KICAgICAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgLy8gQWJvcnQNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJjYW5jZWwiLCAie3suYnV0dG9uLmNhbmNlbH19Iik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogc2hvd0VsZW1lbnQoInBvcHVwIiwgZmFsc2UpOycpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICAvLyBVcGRhdGUNCiAgICAgICAgICAgIGlmIChkYXRhWyJpZC5wcm92aWRlciJdICE9ICItIikgew0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJ1cGRhdGUiLCAie3suYnV0dG9uLnVwZGF0ZX19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoImhkaHIiLCAiJyArIGlkICsgJyIsIGZhbHNlLCAxKScpOw0KICAgICAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgLy8gU2F2ZQ0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgInNhdmUiLCAie3suYnV0dG9uLnNhdmV9fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoImhkaHIiLCAiJyArIGlkICsgJyIsIGZhbHNlLCAwKScpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSAiZmlsdGVyIjoNCiAgICAgICAgICAgIGNvbnRlbnQuY3JlYXRlSGVhZGxpbmUoZGF0YVR5cGUpOw0KICAgICAgICAgICAgLy8gVHlwZQ0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gInR5cGUiOw0KICAgICAgICAgICAgdmFyIHRleHQgPSBbIk0zVTogIiArICJ7ey5maWx0ZXIudHlwZS5ncm91cFRpdGxlfX0iLCAieFRlVmU6ICIgKyAie3suZmlsdGVyLnR5cGUuY3VzdG9tRmlsdGVyfX0iXTsNCiAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBbImphdmFzY3JpcHQ6IG9wZW5Qb3BVcCgnZ3JvdXAtdGl0bGUnKSIsICJqYXZhc2NyaXB0OiBvcGVuUG9wVXAoJ2N1c3RvbS1maWx0ZXInKSJdOw0KICAgICAgICAgICAgdmFyIHNlbGVjdCA9IGNvbnRlbnQuY3JlYXRlU2VsZWN0KHRleHQsIHZhbHVlcywgImphdmFzY3JpcHQ6IG9wZW5Qb3BVcCgnZ3JvdXAtdGl0bGUnKSIsIGRiS2V5KTsNCiAgICAgICAgICAgIHNlbGVjdC5zZXRBdHRyaWJ1dGUoImlkIiwgaWQpOw0KICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAnamF2YXNjcmlwdDogY2hhbmdlQnV0dG9uQWN0aW9uKHRoaXMsICJuZXh0IiwgIm9uY2xpY2siKTsnKTsgLy8gY2hhbmdlQnV0dG9uQWN0aW9uDQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3suZmlsdGVyLnR5cGUudGl0bGV9fSIsIHNlbGVjdCk7DQogICAgICAgICAgICAvLyBJbnRlcmFjdGlvbg0KICAgICAgICAgICAgY29udGVudC5jcmVhdGVJbnRlcmFjdGlvbigpOw0KICAgICAgICAgICAgLy8gQWJvcnQNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJjYW5jZWwiLCAie3suYnV0dG9uLmNhbmNlbH19Iik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogc2hvd0VsZW1lbnQoInBvcHVwIiwgZmFsc2UpOycpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICAvLyBOZXh0DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAibmV4dCIsICJ7ey5idXR0b24ubmV4dH19Iik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJncm91cC10aXRsZSIpJyk7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoImlkIiwgJ25leHQnKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGNhc2UgImN1c3RvbS1maWx0ZXIiOg0KICAgICAgICBjYXNlICJncm91cC10aXRsZSI6DQogICAgICAgICAgICBzd2l0Y2ggKGRhdGFUeXBlKSB7DQogICAgICAgICAgICAgICAgY2FzZSAiY3VzdG9tLWZpbHRlciI6DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuY3JlYXRlSGVhZGxpbmUoInt7LmZpbHRlci5jdXN0b219fSIgKyAiIEZpbHRlciIpOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBjYXNlICJncm91cC10aXRsZSI6DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuY3JlYXRlSGVhZGxpbmUoInt7LmZpbHRlci5ncm91cH19IiArICIgRmlsdGVyIik7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgLy8gTmFtZSAgICAgIA0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gIm5hbWUiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LmZpbHRlci5uYW1lLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5maWx0ZXIubmFtZS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgLy8gRGVzY3JpcHRpb24NCiAgICAgICAgICAgIHZhciBkYktleSA9ICJkZXNjcmlwdGlvbiI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3suZmlsdGVyLmRlc2NyaXB0aW9uLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5maWx0ZXIuZGVzY3JpcHRpb24udGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIFR5cGUNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJ0eXBlIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImhpZGRlbiIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygiIiwgaW5wdXQpOw0KICAgICAgICAgICAgdmFyIGZpbHRlclR5cGUgPSBkYXRhW2RiS2V5XTsNCiAgICAgICAgICAgIHN3aXRjaCAoZmlsdGVyVHlwZSkgew0KICAgICAgICAgICAgICAgIGNhc2UgImN1c3RvbS1maWx0ZXIiOg0KICAgICAgICAgICAgICAgICAgICAvLyBDYXNlIHNlbnNpdGl2ZQ0KICAgICAgICAgICAgICAgICAgICB2YXIgZGJLZXkgPSAiY2FzZVNlbnNpdGl2ZSI7DQogICAgICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goZGJLZXkpOw0KICAgICAgICAgICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YVtkYktleV07DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5maWx0ZXIuY2FzZVNlbnNpdGl2ZS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgICAgICAgICAvLyBGaWx0ZXIgUnVsZSAoQ3VzdG9tKQ0KICAgICAgICAgICAgICAgICAgICB2YXIgZGJLZXkgPSAiZmlsdGVyIjsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3suZmlsdGVyLmZpbHRlclJ1bGUucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3suZmlsdGVyLmZpbHRlclJ1bGUudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAiZ3JvdXAtdGl0bGUiOg0KICAgICAgICAgICAgICAgICAgICAvL2FsZXJ0KGRiS2V5ICsgIiAiICsgZmlsdGVyVHlwZSkNCiAgICAgICAgICAgICAgICAgICAgLy8gRmlsdGVyIGJhc2VkIG9uIHRoZSBncm91cHMgaW4gdGhlIE0zVQ0KICAgICAgICAgICAgICAgICAgICB2YXIgZGJLZXkgPSAiZmlsdGVyIjsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGdyb3Vwc00zVSA9IGdldExvY2FsRGF0YSgibTN1R3JvdXBzIiwgIiIpOw0KICAgICAgICAgICAgICAgICAgICB2YXIgdGV4dCA9IGdyb3Vwc00zVVsidGV4dCJdOw0KICAgICAgICAgICAgICAgICAgICB2YXIgdmFsdWVzID0gZ3JvdXBzTTNVWyJ2YWx1ZSJdOw0KICAgICAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCBkYXRhW2RiS2V5XSwgZGJLZXkpOw0KICAgICAgICAgICAgICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3suZmlsdGVyLmZpbHRlckdyb3VwLnRpdGxlfX0iLCBzZWxlY3QpOw0KICAgICAgICAgICAgICAgICAgICBjb250ZW50LmRlc2NyaXB0aW9uKCJ7ey5maWx0ZXIuZmlsdGVyR3JvdXAuZGVzY3JpcHRpb259fSIpOw0KICAgICAgICAgICAgICAgICAgICAvLyBDYXNlIHNlbnNldGl2ZQ0KICAgICAgICAgICAgICAgICAgICB2YXIgZGJLZXkgPSAiY2FzZVNlbnNpdGl2ZSI7DQogICAgICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goZGJLZXkpOw0KICAgICAgICAgICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YVtkYktleV07DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5maWx0ZXIuY2FzZVNlbnNpdGl2ZS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgICAgICAgICB2YXIgZGJLZXkgPSAiaW5jbHVkZSI7DQogICAgICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LmZpbHRlci5pbmNsdWRlLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LmZpbHRlci5pbmNsdWRlLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuZGVzY3JpcHRpb24oInt7LmZpbHRlci5pbmNsdWRlLmRlc2NyaXB0aW9ufX0iKTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGRiS2V5ID0gImV4Y2x1ZGUiOw0KICAgICAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5maWx0ZXIuZXhjbHVkZS5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5maWx0ZXIuZXhjbHVkZS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgICAgICAgICBjb250ZW50LmRlc2NyaXB0aW9uKCJ7ey5maWx0ZXIuZXhjbHVkZS5kZXNjcmlwdGlvbn19Iik7DQogICAgICAgICAgICAgICAgICAgIC8vIFByZXNlcnZlIE0zVSBQbGF5bGlzdCBDaGFubmVsIE1hcHBpbmcNCiAgICAgICAgICAgICAgICAgICAgdmFyIGRiS2V5ID0gInByZXNlcnZlTWFwcGluZyI7DQogICAgICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goZGJLZXkpOw0KICAgICAgICAgICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YVtkYktleV07DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5maWx0ZXIucHJlc2VydmVNYXBwaW5nLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAgICAgICAgIC8vIFN0YXJ0aW5nIENoYW5uZWwgTnVtYmVyIE1hcHBpbmcNCiAgICAgICAgICAgICAgICAgICAgdmFyIGRiS2V5ID0gInN0YXJ0aW5nQ2hhbm5lbCI7DQogICAgICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LmZpbHRlci5zdGFydGluZ0NoYW5uZWwucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3suZmlsdGVyLnN0YXJ0aW5nQ2hhbm5lbC50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgICAgICAgICAvLyBGaWxsIE1pc3NpbmcgRVBHIERhdGENCiAgICAgICAgICAgICAgICAgICAgLy8gVGhlIGZvbGxvd2luZyBjb2RlIG9ubHkgd29ya3Mgd2hlbiB4VGVWZSBEdW1teSBhbHJlYWR5IGV4aXN0cw0KICAgICAgICAgICAgICAgICAgICAvLyB2YXIgZGJLZXk6c3RyaW5nID0gImRlZmF1bHRNaXNzaW5nRVBHIg0KICAgICAgICAgICAgICAgICAgICAvLyB2YXIgeG1sdHY6WE1MVFZGaWxlID0gbmV3IFhNTFRWRmlsZSgpDQogICAgICAgICAgICAgICAgICAgIC8vIHZhciBzZWxlY3QgPSB4bWx0di5nZXRQcm9ncmFtcygieFRlVmUgRHVtbXkiLCBkYXRhW2RiS2V5XSkNCiAgICAgICAgICAgICAgICAgICAgLy8gc2VsZWN0LnNldEF0dHJpYnV0ZSgibmFtZSIsIGRiS2V5KQ0KICAgICAgICAgICAgICAgICAgICAvLyBzZWxlY3Quc2V0QXR0cmlidXRlKCJpZCIsICJwb3B1cC1taXNzaW5nLWVwZyIpDQogICAgICAgICAgICAgICAgICAgIC8vIFRoZSB3b3JrYXJvdW5kIGlzIGN1cnJlbnRseSB0byBoYXJkIGNvZGUgdGhlIHhUZVZlIER1bW15IGRhdGENCiAgICAgICAgICAgICAgICAgICAgdmFyIGRiS2V5ID0gImRlZmF1bHRNaXNzaW5nRVBHIjsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGxpc3RPcHRpb25zID0geyAidGV4dCI6IFsiLSIsICIzMCBNaW51dGVzICgzMF9NaW51dGVzKSIsICI2MCBNaW51dGVzICg2MF9NaW51dGVzKSIsICI5MCBNaW51dGVzICg5MF9NaW51dGVzKSIsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgIjEyMCBNaW51dGVzICgxMjBfTWludXRlcykiLCAiMTgwIE1pbnV0ZXMgKDMwX01pbnV0ZXMpIiwgIjI0MCBNaW51dGVzICgzMF9NaW51dGVzKSIsICIzNjAgTWludXRlcyAoMzBfTWludXRlcykiXSwNCiAgICAgICAgICAgICAgICAgICAgICAgICJ2YWx1ZSI6IFsiLSIsICIzMF9NaW51dGVzIiwgIjYwX01pbnV0ZXMiLCAiOTBfTWludXRlcyIsICIxMjBfTWludXRlcyIsICIxODBfTWludXRlcyIsICIyNDBfTWludXRlcyIsICIzNjBfTWludXRlcyIsXSB9Ow0KICAgICAgICAgICAgICAgICAgICB2YXIgdGV4dCA9IGxpc3RPcHRpb25zWyJ0ZXh0Il07DQogICAgICAgICAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBsaXN0T3B0aW9uc1sidmFsdWUiXTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHNlbGVjdCA9IGNvbnRlbnQuY3JlYXRlU2VsZWN0KHRleHQsIHZhbHVlcywgZGF0YVtkYktleV0sIGRiS2V5KTsNCiAgICAgICAgICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LmZpbHRlci5kZWZhdWx0TWlzc2luZ0VQRy50aXRsZX19Iiwgc2VsZWN0KTsNCiAgICAgICAgICAgICAgICAgICAgY29udGVudC5kZXNjcmlwdGlvbigie3suZmlsdGVyLmRlZmF1bHRNaXNzaW5nRVBHLmRlc2NyaXB0aW9ufX0iKTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICB9DQogICAgICAgICAgICAvLyBJbnRlcmFjdGlvbg0KICAgICAgICAgICAgY29udGVudC5jcmVhdGVJbnRlcmFjdGlvbigpOw0KICAgICAgICAgICAgLy8gRGVsZXRlDQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAiZGVsZXRlIiwgInt7LmJ1dHRvbi5kZWxldGV9fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoImZpbHRlciIsICInICsgaWQgKyAnIiwgdHJ1ZSwgMCknKTsNCiAgICAgICAgICAgIGlucHV0LmNsYXNzTmFtZSA9ICJkZWxldGUiOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICAvLyBBYm9ydA0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImNhbmNlbCIsICJ7ey5idXR0b24uY2FuY2VsfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBzaG93RWxlbWVudCgicG9wdXAiLCBmYWxzZSk7Jyk7DQogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIC8vIFNhdmUNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJzYXZlIiwgInt7LmJ1dHRvbi5zYXZlfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBzYXZlUG9wdXBEYXRhKCJmaWx0ZXIiLCAiJyArIGlkICsgJyIsIGZhbHNlLCAwKScpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSAieG1sdHYiOg0KICAgICAgICAgICAgY29udGVudC5jcmVhdGVIZWFkbGluZShkYXRhVHlwZSk7DQogICAgICAgICAgICAvLyBOYW1lDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAibmFtZSI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3sueG1sdHYubmFtZS5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sueG1sdHYubmFtZS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgLy8gRGVzY3JpcHRpb24NCiAgICAgICAgICAgIHZhciBkYktleSA9ICJkZXNjcmlwdGlvbiI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3sueG1sdHYuZGVzY3JpcHRpb24ucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnhtbHR2LmRlc2NyaXB0aW9uLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBVUkwNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJmaWxlLnNvdXJjZSI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3sueG1sdHYuZmlsZVhNTFRWLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey54bWx0di5maWxlWE1MVFYudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIEludGVyYWN0aW9uDQogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUludGVyYWN0aW9uKCk7DQogICAgICAgICAgICAvLyBEZWxldGUNCiAgICAgICAgICAgIGlmIChkYXRhWyJpZC5wcm92aWRlciJdICE9ICItIikgew0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJkZWxldGUiLCAie3suYnV0dG9uLmRlbGV0ZX19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoInhtbHR2IiwgIicgKyBpZCArICciLCB0cnVlLCAwKScpOw0KICAgICAgICAgICAgICAgIGlucHV0LmNsYXNzTmFtZSA9ICJkZWxldGUiOw0KICAgICAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgLy8gQWJvcnQNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJjYW5jZWwiLCAie3suYnV0dG9uLmNhbmNlbH19Iik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogc2hvd0VsZW1lbnQoInBvcHVwIiwgZmFsc2UpOycpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICAvLyBVcGRhdGUNCiAgICAgICAgICAgIGlmIChkYXRhWyJpZC5wcm92aWRlciJdICE9ICItIikgew0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJ1cGRhdGUiLCAie3suYnV0dG9uLnVwZGF0ZX19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoInhtbHR2IiwgIicgKyBpZCArICciLCBmYWxzZSwgMSknKTsNCiAgICAgICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIC8vIFNhdmUNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJzYXZlIiwgInt7LmJ1dHRvbi5zYXZlfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBzYXZlUG9wdXBEYXRhKCJ4bWx0diIsICInICsgaWQgKyAnIiwgZmFsc2UsIDApJyk7DQogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJ1c2VycyI6DQogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUhlYWRsaW5lKCJ7ey5tYWluTWVudS5pdGVtLnVzZXJzfX0iKTsNCiAgICAgICAgICAgIC8vIFVzZXIgbmFtZQ0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gInVzZXJuYW1lIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey51c2Vycy51c2VybmFtZS5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sudXNlcnMudXNlcm5hbWUudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIE5ldyBQYXJzc3dvcmQNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJwYXNzd29yZCI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJwYXNzd29yZCIsIGRiS2V5LCAiIik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnVzZXJzLnBhc3N3b3JkLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey51c2Vycy5wYXNzd29yZC50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgLy8gQ29uZmlybWF0aW9uDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAiY29uZmlybSI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJwYXNzd29yZCIsIGRiS2V5LCAiIik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnVzZXJzLmNvbmZpcm0ucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnVzZXJzLmNvbmZpcm0udGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIEF1dGhlbnRpY2F0aW9uIFdFQg0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gImF1dGhlbnRpY2F0aW9uLndlYiI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KGRiS2V5KTsNCiAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhW2RiS2V5XTsNCiAgICAgICAgICAgIGlmIChkYXRhWyJkZWZhdWx0VXNlciJdID09IHRydWUpIHsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAiamF2YXNjcmlwdDogcmV0dXJuIGZhbHNlIik7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sudXNlcnMud2ViLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBBdXRoZW50aWNhdGlvbiBQTVMNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJhdXRoZW50aWNhdGlvbi5wbXMiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChkYktleSk7DQogICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YVtkYktleV07DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sudXNlcnMucG1zLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBBdXRoZW50aWNhdGlvbiBNM1UNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJhdXRoZW50aWNhdGlvbi5tM3UiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChkYktleSk7DQogICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YVtkYktleV07DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sudXNlcnMubTN1LnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBBdXRoZW50aWNhdGlvbiBYTUwNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJhdXRoZW50aWNhdGlvbi54bWwiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChkYktleSk7DQogICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YVtkYktleV07DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sudXNlcnMueG1sLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBBdXRoZW50aWNhdGlvbiBBUEkNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJhdXRoZW50aWNhdGlvbi5hcGkiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChkYktleSk7DQogICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YVtkYktleV07DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sudXNlcnMuYXBpLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBJbnRlcmFjdGlvbg0KICAgICAgICAgICAgY29udGVudC5jcmVhdGVJbnRlcmFjdGlvbigpOw0KICAgICAgICAgICAgLy8gRGVsZXRlDQogICAgICAgICAgICBpZiAoZGF0YVsiZGVmYXVsdFVzZXIiXSAhPSB0cnVlICYmIGlkICE9ICItIikgew0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJkZWxldGUiLCAie3suYnV0dG9uLmRlbGV0ZX19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuY2xhc3NOYW1lID0gImRlbGV0ZSI7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoIicgKyBkYXRhVHlwZSArICciLCAiJyArIGlkICsgJyIsIHRydWUsIDApJyk7DQogICAgICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICAvLyBBYm9ydA0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImNhbmNlbCIsICJ7ey5idXR0b24uY2FuY2VsfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBzaG93RWxlbWVudCgicG9wdXAiLCBmYWxzZSk7Jyk7DQogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIC8vIFNhdmUNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJzYXZlIiwgInt7LmJ1dHRvbi5zYXZlfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBzYXZlUG9wdXBEYXRhKCInICsgZGF0YVR5cGUgKyAnIiwgIicgKyBpZCArICciLCAiZmFsc2UiKTsnKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGNhc2UgIm1hcHBpbmciOg0KICAgICAgICAgICAgY29udGVudC5jcmVhdGVIZWFkbGluZSgie3subWFpbk1lbnUuaXRlbS5tYXBwaW5nfX0iKTsNCiAgICAgICAgICAgIC8vIEFjdGl2ZQ0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gIngtYWN0aXZlIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goZGJLZXkpOw0KICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGFbZGJLZXldOw0KICAgICAgICAgICAgaW5wdXQuaWQgPSAiYWN0aXZlIjsNCiAgICAgICAgICAgIC8vaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpDQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRvZ2dsZUNoYW5uZWxTdGF0dXMoJyIgKyBpZCArICInLCB0aGlzKSIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7Lm1hcHBpbmcuYWN0aXZlLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBDaGFubmVsIG5hbWUNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJ4LW5hbWUiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICBpZiAoQlVMS19FRElUID09IHRydWUpIHsNCiAgICAgICAgICAgICAgICBpbnB1dC5zdHlsZS5ib3JkZXIgPSAic29saWQgMXB4IHJlZCI7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJyZWFkb25seSIsICJ0cnVlIik7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3subWFwcGluZy5jaGFubmVsTmFtZS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgY29udGVudC5kZXNjcmlwdGlvbihkYXRhWyJuYW1lIl0pOw0KICAgICAgICAgICAgLy8gRGVzY3JpcHRpb24NCiAgICAgICAgICAgIHZhciBkYktleSA9ICJ4LWRlc2NyaXB0aW9uIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5tYXBwaW5nLmRlc2NyaXB0aW9uLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5tYXBwaW5nLmRlc2NyaXB0aW9uLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBVcGRhdGUgdGhlIGNoYW5uZWwgbmFtZQ0KICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoIl91dWlkLmtleSIpKSB7DQogICAgICAgICAgICAgICAgaWYgKGRhdGFbIl91dWlkLmtleSJdICE9ICIiKSB7DQogICAgICAgICAgICAgICAgICAgIHZhciBkYktleSA9ICJ4LXVwZGF0ZS1jaGFubmVsLW5hbWUiOw0KICAgICAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KGRiS2V5KTsNCiAgICAgICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YVtkYktleV07DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5tYXBwaW5nLnVwZGF0ZUNoYW5uZWxOYW1lLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgLy8gTG9nbyBVUkwgKENoYW5uZWwpIA0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gInR2Zy1sb2dvIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJpZCIsICJjaGFubmVsLWljb24iKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5tYXBwaW5nLmNoYW5uZWxMb2dvLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBDaGFubmVsIGxvZ28gdXBkYXRlDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAieC11cGRhdGUtY2hhbm5lbC1pY29uIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goZGJLZXkpOw0KICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGFbZGJLZXldOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJpZCIsICJ1cGRhdGUtaWNvbiIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJzsgY2hhbmdlQ2hhbm5lbExvZ28oJyIgKyBpZCArICInKTsiKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5tYXBwaW5nLnVwZGF0ZUNoYW5uZWxMb2dvLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBFeHBhbmQgRVBHIGNhdGVnb3J5DQogICAgICAgICAgICB2YXIgZGJLZXkgPSAieC1jYXRlZ29yeSI7DQogICAgICAgICAgICB2YXIgdGV4dCA9IFsiLSIsICJLaWRzIChFbWJ5IG9ubHkpIiwgIk5ld3MiLCAiTW92aWUiLCAiU2VyaWVzIiwgIlNwb3J0cyJdOw0KICAgICAgICAgICAgdmFyIHZhbHVlcyA9IFsiIiwgIktpZHMiLCAiTmV3cyIsICJNb3ZpZSIsICJTZXJpZXMiLCAiU3BvcnRzIl07DQogICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCBkYXRhW2RiS2V5XSwgZGJLZXkpOw0KICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5tYXBwaW5nLmVwZ0NhdGVnb3J5LnRpdGxlfX0iLCBzZWxlY3QpOw0KICAgICAgICAgICAgLy8gTTNVIGdyb3VwIHRpdGxlDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAieC1ncm91cC10aXRsZSI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5tYXBwaW5nLm0zdUdyb3VwVGl0bGUudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIGlmIChkYXRhWyJncm91cC10aXRsZSJdICE9IHVuZGVmaW5lZCkgew0KICAgICAgICAgICAgICAgIGNvbnRlbnQuZGVzY3JpcHRpb24oZGF0YVsiZ3JvdXAtdGl0bGUiXSk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICAvLyBYTUxUViBmaWxlDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAieC14bWx0di1maWxlIjsNCiAgICAgICAgICAgIHZhciB4bWxGaWxlID0gZGF0YVtkYktleV07DQogICAgICAgICAgICB2YXIgeG1sdHYgPSBuZXcgWE1MVFZGaWxlKCk7DQogICAgICAgICAgICB2YXIgc2VsZWN0ID0geG1sdHYuZ2V0RmlsZXMoZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgibmFtZSIsIGRiS2V5KTsNCiAgICAgICAgICAgIHNlbGVjdC5zZXRBdHRyaWJ1dGUoImlkIiwgInBvcHVwLXhtbHR2Iik7DQogICAgICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJzsgc2V0WG1sdHZDaGFubmVsKCciICsgaWQgKyAiJyx0aGlzKTsiKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5tYXBwaW5nLnhtbHR2RmlsZS50aXRsZX19Iiwgc2VsZWN0KTsNCiAgICAgICAgICAgIHZhciBmaWxlID0gZGF0YVtkYktleV07DQogICAgICAgICAgICAvLyBYTUxUViBNYXBwaW5nDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAieC1tYXBwaW5nIjsNCiAgICAgICAgICAgIHZhciB4bWx0diA9IG5ldyBYTUxUVkZpbGUoKTsNCiAgICAgICAgICAgIHZhciBzZWxlY3QgPSB4bWx0di5nZXRQcm9ncmFtcyhmaWxlLCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJuYW1lIiwgZGJLZXkpOw0KICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgiaWQiLCAicG9wdXAtbWFwcGluZyIpOw0KICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCc7IGNoZWNrWG1sdHZDaGFubmVsKCciICsgaWQgKyAiJyx0aGlzLCciICsgeG1sRmlsZSArICInKTsiKTsNCiAgICAgICAgICAgIHNvcnRTZWxlY3Qoc2VsZWN0KTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5tYXBwaW5nLnhtbHR2Q2hhbm5lbC50aXRsZX19Iiwgc2VsZWN0KTsNCiAgICAgICAgICAgIC8vIFRpbWVzaGlmdA0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gIngtdGltZXNoaWZ0IjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5tYXBwaW5nLnRpbWVzaGlmdC5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoImlkIiwgInRpbWVzaGlmdCIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7Lm1hcHBpbmcudGltZXNoaWZ0LnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBJbnRlcmFjdGlvbg0KICAgICAgICAgICAgY29udGVudC5jcmVhdGVJbnRlcmFjdGlvbigpOw0KICAgICAgICAgICAgLy8gVXBsb2FkIGxvZ28NCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJjYW5jZWwiLCAie3suYnV0dG9uLnVwbG9hZExvZ299fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IHVwbG9hZExvZ28oKTsnKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgLy8gQWJvcnQNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJjYW5jZWwiLCAie3suYnV0dG9uLmNhbmNlbH19Iik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogc2hvd0VsZW1lbnQoInBvcHVwIiwgZmFsc2UpOycpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICAvLyBGaW5pc2hlZA0KICAgICAgICAgICAgdmFyIGlkcyA9IFtdOw0KICAgICAgICAgICAgaWRzID0gZ2V0QWxsU2VsZWN0ZWRDaGFubmVscygpOw0KICAgICAgICAgICAgaWYgKGlkcy5sZW5ndGggPT0gMCkgew0KICAgICAgICAgICAgICAgIGlkcy5wdXNoKGlkKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJzYXZlIiwgInt7LmJ1dHRvbi5kb25lfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBkb25lUG9wdXBEYXRhKCInICsgZGF0YVR5cGUgKyAnIiwgIicgKyBpZHMgKyAnIiwgImZhbHNlIik7Jyk7DQogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBkZWZhdWx0Og0KICAgICAgICAgICAgYnJlYWs7DQogICAgfQ0KICAgIHNob3dQb3BVcEVsZW1lbnQoJ3BvcHVwLWN1c3RvbScpOw0KfQ0KY2xhc3MgWE1MVFZGaWxlIHsNCiAgICBnZXRGaWxlcyhzZXQpIHsNCiAgICAgICAgbGV0IGZpbGVJRHMgPSBnZXRPYmpLZXlzKFNFUlZFUlsieGVwZyJdWyJ4bWx0dk1hcCJdKTsNCiAgICAgICAgbGV0IHZhbHVlcyA9IG5ldyBBcnJheSgiLSIpOw0KICAgICAgICBsZXQgdGV4dCA9IG5ldyBBcnJheSgiLSIpOw0KICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGZpbGVJRHMubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgICAgIGlmIChmaWxlSURzW2ldICE9ICJ4VGVWZSBEdW1teSIpIHsNCiAgICAgICAgICAgICAgICB2YWx1ZXMucHVzaChnZXRWYWx1ZUZyb21Qcm92aWRlckZpbGUoZmlsZUlEc1tpXSwgInhtbHR2IiwgImZpbGUueHRldmUiKSk7DQogICAgICAgICAgICAgICAgdGV4dC5wdXNoKGdldFZhbHVlRnJvbVByb3ZpZGVyRmlsZShmaWxlSURzW2ldLCAieG1sdHYiLCAibmFtZSIpKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgICAgIHZhbHVlcy5wdXNoKGZpbGVJRHNbaV0pOw0KICAgICAgICAgICAgICAgIHRleHQucHVzaChmaWxlSURzW2ldKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KICAgICAgICBsZXQgc2VsZWN0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiU0VMRUNUIik7DQogICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGV4dC5sZW5ndGg7IGkrKykgew0KICAgICAgICAgICAgdmFyIG9wdGlvbiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIk9QVElPTiIpOw0KICAgICAgICAgICAgb3B0aW9uLnNldEF0dHJpYnV0ZSgidmFsdWUiLCB2YWx1ZXNbaV0pOw0KICAgICAgICAgICAgb3B0aW9uLmlubmVyVGV4dCA9IHRleHRbaV07DQogICAgICAgICAgICBzZWxlY3QuYXBwZW5kQ2hpbGQob3B0aW9uKTsNCiAgICAgICAgfQ0KICAgICAgICBpZiAoc2V0ICE9ICIiKSB7DQogICAgICAgICAgICBzZWxlY3QudmFsdWUgPSBzZXQ7DQogICAgICAgIH0NCiAgICAgICAgcmV0dXJuIHNlbGVjdDsNCiAgICB9DQogICAgZ2V0UHJvZ3JhbXMoZmlsZSwgc2V0KSB7DQogICAgICAgIC8vdmFyIGZpbGVJRHM6c3RyaW5nW10gPSBnZXRPYmpLZXlzKFNFUlZFUlsieGVwZyJdWyJ4bWx0dk1hcCJdKQ0KICAgICAgICBsZXQgdmFsdWVzID0gZ2V0T2JqS2V5cyhTRVJWRVJbInhlcGciXVsieG1sdHZNYXAiXVtmaWxlXSk7DQogICAgICAgIGxldCB0ZXh0ID0gW107DQogICAgICAgIGxldCBmcmllbmRseU5hbWU7DQogICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdmFsdWVzLmxlbmd0aDsgaSsrKSB7DQogICAgICAgICAgICBpZiAoU0VSVkVSWyJ4ZXBnIl1bInhtbHR2TWFwIl1bZmlsZV1bdmFsdWVzW2ldXS5oYXNPd25Qcm9wZXJ0eSgnZnJpZW5kbHktbmFtZScpID09IHRydWUpIHsNCiAgICAgICAgICAgICAgICBmcmllbmRseU5hbWUgPSBTRVJWRVJbInhlcGciXVsieG1sdHZNYXAiXVtmaWxlXVt2YWx1ZXNbaV1dWyJmcmllbmRseS1uYW1lIl07DQogICAgICAgICAgICB9DQogICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICBmcmllbmRseU5hbWUgPSAiLSI7DQogICAgICAgICAgICB9DQogICAgICAgICAgICB0ZXh0W2ldID0gZnJpZW5kbHlOYW1lICsgIiAoIiArIHZhbHVlc1tpXSArICIpIjsNCiAgICAgICAgfQ0KICAgICAgICB0ZXh0LnVuc2hpZnQoIi0iKTsNCiAgICAgICAgdmFsdWVzLnVuc2hpZnQoIi0iKTsNCiAgICAgICAgbGV0IHNlbGVjdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlNFTEVDVCIpOw0KICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRleHQubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgICAgIHZhciBvcHRpb24gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJPUFRJT04iKTsNCiAgICAgICAgICAgIG9wdGlvbi5zZXRBdHRyaWJ1dGUoInZhbHVlIiwgdmFsdWVzW2ldKTsNCiAgICAgICAgICAgIG9wdGlvbi5pbm5lclRleHQgPSB0ZXh0W2ldOw0KICAgICAgICAgICAgc2VsZWN0LmFwcGVuZENoaWxkKG9wdGlvbik7DQogICAgICAgIH0NCiAgICAgICAgaWYgKHNldCAhPSAiIikgew0KICAgICAgICAgICAgc2VsZWN0LnZhbHVlID0gc2V0Ow0KICAgICAgICB9DQogICAgICAgIGlmIChzZWxlY3QudmFsdWUgIT0gc2V0KSB7DQogICAgICAgICAgICBzZWxlY3QudmFsdWUgPSAiLSI7DQogICAgICAgIH0NCiAgICAgICAgcmV0dXJuIHNlbGVjdDsNCiAgICB9DQp9DQpmdW5jdGlvbiBnZXRWYWx1ZUZyb21Qcm92aWRlckZpbGUoZmlsZSwgZmlsZVR5cGUsIGtleSkgew0KICAgIGlmIChmaWxlID09ICJ4VGVWZSBEdW1teSIpIHsNCiAgICAgICAgcmV0dXJuIGZpbGU7DQogICAgfQ0KICAgIGxldCBmaWxlSUQ7DQogICAgbGV0IGluZGljYXRvciA9IGZpbGUuY2hhckF0KDApOw0KICAgIHN3aXRjaCAoaW5kaWNhdG9yKSB7DQogICAgICAgIGNhc2UgIk0iOg0KICAgICAgICAgICAgZmlsZVR5cGUgPSAibTN1IjsNCiAgICAgICAgICAgIGZpbGVJRCA9IGZpbGU7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSAiSCI6DQogICAgICAgICAgICBmaWxlVHlwZSA9ICJoZGhyIjsNCiAgICAgICAgICAgIGZpbGVJRCA9IGZpbGU7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSAiWCI6DQogICAgICAgICAgICBmaWxlVHlwZSA9ICJ4bWx0diI7DQogICAgICAgICAgICBmaWxlSUQgPSBmaWxlLnN1YnN0cmluZygwLCBmaWxlLmxhc3RJbmRleE9mKCcuJykpOw0KICAgICAgICAgICAgYnJlYWs7DQogICAgfQ0KICAgIGlmIChTRVJWRVJbInNldHRpbmdzIl1bImZpbGVzIl1bZmlsZVR5cGVdLmhhc093blByb3BlcnR5KGZpbGVJRCkgPT0gdHJ1ZSkgew0KICAgICAgICB2YXIgZGF0YSA9IFNFUlZFUlsic2V0dGluZ3MiXVsiZmlsZXMiXVtmaWxlVHlwZV1bZmlsZUlEXTsNCiAgICAgICAgcmV0dXJuIGRhdGFba2V5XTsNCiAgICB9DQogICAgcmV0dXJuOw0KfQ0KZnVuY3Rpb24gc2V0WG1sdHZDaGFubmVsKGlkLCBlbGVtZW50KSB7DQogICAgbGV0IHhtbHR2ID0gbmV3IFhNTFRWRmlsZSgpOw0KICAgIGxldCB4bWxGaWxlID0gZWxlbWVudC52YWx1ZTsNCiAgICBsZXQgdHZnSWQgPSBTRVJWRVJbInhlcGciXVsiZXBnTWFwcGluZyJdW2lkXVsidHZnLWlkIl07DQogICAgbGV0IHRkID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInBvcHVwLW1hcHBpbmciKS5wYXJlbnRFbGVtZW50Ow0KICAgIHRkLmlubmVySFRNTCA9ICIiOw0KICAgIGxldCBzZWxlY3QgPSB4bWx0di5nZXRQcm9ncmFtcyhlbGVtZW50LnZhbHVlLCB0dmdJZCk7DQogICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgibmFtZSIsICJ4LW1hcHBpbmciKTsNCiAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJpZCIsICJwb3B1cC1tYXBwaW5nIik7DQogICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCc7IGNoZWNrWG1sdHZDaGFubmVsKCciICsgaWQgKyAiJyx0aGlzLCciICsgeG1sRmlsZSArICInKTsiKTsNCiAgICBzZWxlY3QuY2xhc3NOYW1lID0gImNoYW5nZWQiOw0KICAgIHNvcnRTZWxlY3Qoc2VsZWN0KTsNCiAgICB0ZC5hcHBlbmRDaGlsZChzZWxlY3QpOw0KICAgIGNoZWNrWG1sdHZDaGFubmVsKGlkLCBzZWxlY3QsIHhtbEZpbGUpOw0KfQ0KZnVuY3Rpb24gY2hlY2tYbWx0dkNoYW5uZWwoaWQsIGVsZW1lbnQsIHhtbEZpbGUpIHsNCiAgICBsZXQgdmFsdWUgPSBlbGVtZW50LnZhbHVlOw0KICAgIGxldCBib29sOw0KICAgIGxldCBjaGVja2JveCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdhY3RpdmUnKTsNCiAgICBsZXQgY2hhbm5lbCA9IFNFUlZFUlsieGVwZyJdWyJlcGdNYXBwaW5nIl1baWRdOw0KICAgIGxldCB1cGRhdGVMb2dvOw0KICAgIGJvb2wgPSB2YWx1ZSAhPSAiLSI7DQogICAgY2hlY2tib3guY2hlY2tlZCA9IGJvb2w7DQogICAgY2hlY2tib3guY2xhc3NOYW1lID0gImNoYW5nZWQiOw0KICAgIGNvbnNvbGUubG9nKHhtbEZpbGUpOw0KICAgIC8vIFVwZGF0ZSBjaGFubmVsIGxvZ28NCiAgICAvKg0KICAgIHVwZGF0ZUxvZ28gPSAoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInVwZGF0ZS1pY29uIikgYXMgSFRNTElucHV0RWxlbWVudCkuY2hlY2tlZA0KICAgIGNvbnNvbGUubG9nKHVwZGF0ZUxvZ28pOw0KICAgICovDQogICAgaWYgKHhtbEZpbGUgIT0gInhUZVZlIER1bW15IiAmJiBib29sID09IHRydWUpIHsNCiAgICAgICAgLy8oZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInVwZGF0ZS1pY29uIikgYXMgSFRNTElucHV0RWxlbWVudCkuY2hlY2tlZCA9IHRydWU7DQogICAgICAgIC8vKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ1cGRhdGUtaWNvbiIpIGFzIEhUTUxJbnB1dEVsZW1lbnQpLmNsYXNzTmFtZSA9ICJjaGFuZ2VkIjsNCiAgICAgICAgY29uc29sZS5sb2coIklEIiwgaWQpOw0KICAgICAgICBjaGFuZ2VDaGFubmVsTG9nbyhpZCk7DQogICAgICAgIHJldHVybjsNCiAgICB9DQogICAgaWYgKHhtbEZpbGUgPT0gInhUZVZlIER1bW15Iikgew0KICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidXBkYXRlLWljb24iKS5jaGVja2VkID0gZmFsc2U7DQogICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ1cGRhdGUtaWNvbiIpLmNsYXNzTmFtZSA9ICJjaGFuZ2VkIjsNCiAgICB9DQogICAgcmV0dXJuOw0KfQ0KZnVuY3Rpb24gY2hhbmdlQ2hhbm5lbExvZ28oaWQpIHsNCiAgICBsZXQgdXBkYXRlTG9nbzsNCiAgICBsZXQgY2hhbm5lbCA9IFNFUlZFUlsieGVwZyJdWyJlcGdNYXBwaW5nIl1baWRdOw0KICAgIGxldCBmID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInBvcHVwLXhtbHR2Iik7DQogICAgbGV0IHhtbHR2RmlsZSA9IGYub3B0aW9uc1tmLnNlbGVjdGVkSW5kZXhdLnZhbHVlOw0KICAgIGxldCBtID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInBvcHVwLW1hcHBpbmciKTsNCiAgICBsZXQgeE1hcHBpbmcgPSBtLm9wdGlvbnNbbS5zZWxlY3RlZEluZGV4XS52YWx1ZTsNCiAgICBsZXQgeG1sdHZMb2dvID0gU0VSVkVSWyJ4ZXBnIl1bInhtbHR2TWFwIl1beG1sdHZGaWxlXVt4TWFwcGluZ11bImljb24iXTsNCiAgICB1cGRhdGVMb2dvID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInVwZGF0ZS1pY29uIikuY2hlY2tlZDsNCiAgICBpZiAodXBkYXRlTG9nbyA9PSB0cnVlICYmIHhtbHR2RmlsZSAhPSAieFRlVmUgRHVtbXkiKSB7DQogICAgICAgIGlmIChTRVJWRVJbInhlcGciXVsieG1sdHZNYXAiXVt4bWx0dkZpbGVdLmhhc093blByb3BlcnR5KHhNYXBwaW5nKSkgew0KICAgICAgICAgICAgdmFyIGxvZ28gPSB4bWx0dkxvZ287DQogICAgICAgIH0NCiAgICAgICAgZWxzZSB7DQogICAgICAgICAgICBsb2dvID0gY2hhbm5lbFsidHZnLWxvZ28iXTsNCiAgICAgICAgfQ0KICAgICAgICB2YXIgbG9nb0lucHV0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNoYW5uZWwtaWNvbiIpOw0KICAgICAgICBsb2dvSW5wdXQudmFsdWUgPSBsb2dvOw0KICAgICAgICBpZiAoQlVMS19FRElUID09IGZhbHNlKSB7DQogICAgICAgICAgICBsb2dvSW5wdXQuY2xhc3NOYW1lID0gImNoYW5nZWQiOw0KICAgICAgICB9DQogICAgfQ0KfQ0KZnVuY3Rpb24gc2F2ZVBvcHVwRGF0YShkYXRhVHlwZSwgaWQsIHJlbW92ZSwgb3B0aW9uKSB7DQogICAgaWYgKGRhdGFUeXBlID09ICJtYXBwaW5nIikgew0KICAgICAgICBsZXQgZGF0YSA9IHt9Ow0KICAgICAgICBjb25zb2xlLmxvZygiU2F2ZSBtYXBwaW5nIGRhdGEiKTsNCiAgICAgICAgbGV0IGNtZCA9ICJzYXZlRXBnTWFwcGluZyI7DQogICAgICAgIGRhdGFbImVwZ01hcHBpbmciXSA9IFNFUlZFUlsieGVwZyJdWyJlcGdNYXBwaW5nIl07DQogICAgICAgIGNvbnNvbGUubG9nKCJTRU5EIFRPIFNFUlZFUiIpOw0KICAgICAgICBsZXQgc2VydmVyID0gbmV3IFNlcnZlcihjbWQpOw0KICAgICAgICBzZXJ2ZXIucmVxdWVzdChkYXRhKTsNCiAgICAgICAgZGVsZXRlIFVORE9bImVwZ01hcHBpbmciXTsNCiAgICAgICAgcmV0dXJuOw0KICAgIH0NCiAgICBjb25zb2xlLmxvZygiU2F2ZSBwb3B1cCBkYXRhIik7DQogICAgbGV0IGRpdiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJwb3B1cC1jdXN0b20iKTsNCiAgICBsZXQgaW5wdXRzID0gZGl2LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJUQUJMRSIpWzBdLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJJTlBVVCIpOw0KICAgIGxldCBzZWxlY3RzID0gZGl2LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJUQUJMRSIpWzBdLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJTRUxFQ1QiKTsNCiAgICBsZXQgaW5wdXQgPSB7fTsNCiAgICBsZXQgY29uZmlybU1zZzsNCiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHNlbGVjdHMubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgdmFyIG5hbWU7DQogICAgICAgIG5hbWUgPSBzZWxlY3RzW2ldLm5hbWU7DQogICAgICAgIHZhciB2YWx1ZSA9IHNlbGVjdHNbaV0udmFsdWU7DQogICAgICAgIHN3aXRjaCAobmFtZSkgew0KICAgICAgICAgICAgY2FzZSAidHVuZXIiOg0KICAgICAgICAgICAgICAgIGlucHV0W25hbWVdID0gcGFyc2VJbnQodmFsdWUpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgICAgICBpbnB1dFtuYW1lXSA9IHZhbHVlOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICB9DQogICAgfQ0KICAgIGZvciAobGV0IGkgPSAwOyBpIDwgaW5wdXRzLmxlbmd0aDsgaSsrKSB7DQogICAgICAgIHN3aXRjaCAoaW5wdXRzW2ldLnR5cGUpIHsNCiAgICAgICAgICAgIGNhc2UgImNoZWNrYm94IjoNCiAgICAgICAgICAgICAgICBuYW1lID0gaW5wdXRzW2ldLm5hbWU7DQogICAgICAgICAgICAgICAgaW5wdXRbbmFtZV0gPSBpbnB1dHNbaV0uY2hlY2tlZDsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInRleHQiOg0KICAgICAgICAgICAgY2FzZSAiaGlkZGVuIjoNCiAgICAgICAgICAgIGNhc2UgInBhc3N3b3JkIjoNCiAgICAgICAgICAgICAgICBuYW1lID0gaW5wdXRzW2ldLm5hbWU7DQogICAgICAgICAgICAgICAgc3dpdGNoIChuYW1lKSB7DQogICAgICAgICAgICAgICAgICAgIGNhc2UgInR1bmVyIjoNCiAgICAgICAgICAgICAgICAgICAgICAgIGlucHV0W25hbWVdID0gcGFyc2VJbnQoaW5wdXRzW2ldLnZhbHVlKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgICAgICBkZWZhdWx0Og0KICAgICAgICAgICAgICAgICAgICAgICAgaW5wdXRbbmFtZV0gPSBpbnB1dHNbaV0udmFsdWU7DQogICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIH0NCiAgICB9DQogICAgbGV0IGRhdGEgPSB7fTsNCiAgICBsZXQgY21kOw0KICAgIGlmIChyZW1vdmUgPT0gdHJ1ZSkgew0KICAgICAgICBpbnB1dFsiZGVsZXRlIl0gPSB0cnVlOw0KICAgIH0NCiAgICBzd2l0Y2ggKGRhdGFUeXBlKSB7DQogICAgICAgIGNhc2UgInVzZXJzIjoNCiAgICAgICAgICAgIGNvbmZpcm1Nc2cgPSAiRGVsZXRlIHRoaXMgdXNlcj8iOw0KICAgICAgICAgICAgaWYgKGlkID09ICItIikgew0KICAgICAgICAgICAgICAgIGNtZCA9ICJzYXZlTmV3VXNlciI7DQogICAgICAgICAgICAgICAgZGF0YVsidXNlckRhdGEiXSA9IGlucHV0Ow0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgZWxzZSB7DQogICAgICAgICAgICAgICAgY21kID0gInNhdmVVc2VyRGF0YSI7DQogICAgICAgICAgICAgICAgbGV0IGQgPSB7fTsNCiAgICAgICAgICAgICAgICBkW2lkXSA9IGlucHV0Ow0KICAgICAgICAgICAgICAgIGRhdGFbInVzZXJEYXRhIl0gPSBkOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGNhc2UgIm0zdSI6DQogICAgICAgICAgICBjb25maXJtTXNnID0gIkRlbGV0ZSB0aGlzIHBsYXlsaXN0PyI7DQogICAgICAgICAgICBzd2l0Y2ggKG9wdGlvbikgew0KICAgICAgICAgICAgICAgIC8vIFBvcHVwOiBTYXZlDQogICAgICAgICAgICAgICAgY2FzZSAwOg0KICAgICAgICAgICAgICAgICAgICBjbWQgPSAic2F2ZUZpbGVzTTNVIjsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgLy8gUG9wdXA6IFVwZGF0ZQ0KICAgICAgICAgICAgICAgIGNhc2UgMToNCiAgICAgICAgICAgICAgICAgICAgY21kID0gInVwZGF0ZUZpbGVNM1UiOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGRhdGFbImZpbGVzIl0gPSB7fTsNCiAgICAgICAgICAgIGRhdGFbImZpbGVzIl1bZGF0YVR5cGVdID0ge307DQogICAgICAgICAgICBkYXRhWyJmaWxlcyJdW2RhdGFUeXBlXVtpZF0gPSBpbnB1dDsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJoZGhyIjoNCiAgICAgICAgICAgIGNvbmZpcm1Nc2cgPSAiRGVsZXRlIHRoaXMgSERIb21lUnVuIHR1bmVyPyI7DQogICAgICAgICAgICBzd2l0Y2ggKG9wdGlvbikgew0KICAgICAgICAgICAgICAgIC8vIFBvcHVwOiBTYXZlDQogICAgICAgICAgICAgICAgY2FzZSAwOg0KICAgICAgICAgICAgICAgICAgICBjbWQgPSAic2F2ZUZpbGVzSERIUiI7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIC8vIFBvcHVwOiBVcGRhdGUNCiAgICAgICAgICAgICAgICBjYXNlIDE6DQogICAgICAgICAgICAgICAgICAgIGNtZCA9ICJ1cGRhdGVGaWxlSERIUiI7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgZGF0YVsiZmlsZXMiXSA9IHt9Ow0KICAgICAgICAgICAgZGF0YVsiZmlsZXMiXVtkYXRhVHlwZV0gPSB7fTsNCiAgICAgICAgICAgIGRhdGFbImZpbGVzIl1bZGF0YVR5cGVdW2lkXSA9IGlucHV0Ow0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGNhc2UgInhtbHR2IjoNCiAgICAgICAgICAgIGNvbmZpcm1Nc2cgPSAiRGVsZXRlIHRoaXMgWE1MVFYgZmlsZT8iOw0KICAgICAgICAgICAgc3dpdGNoIChvcHRpb24pIHsNCiAgICAgICAgICAgICAgICAvLyBQb3B1cDogU2F2ZQ0KICAgICAgICAgICAgICAgIGNhc2UgMDoNCiAgICAgICAgICAgICAgICAgICAgY21kID0gInNhdmVGaWxlc1hNTFRWIjsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgLy8gUG9wdXA6IFVwZGF0ZQ0KICAgICAgICAgICAgICAgIGNhc2UgMToNCiAgICAgICAgICAgICAgICAgICAgY21kID0gInVwZGF0ZUZpbGVYTUxUViI7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgZGF0YVsiZmlsZXMiXSA9IHt9Ow0KICAgICAgICAgICAgZGF0YVsiZmlsZXMiXVtkYXRhVHlwZV0gPSB7fTsNCiAgICAgICAgICAgIGRhdGFbImZpbGVzIl1bZGF0YVR5cGVdW2lkXSA9IGlucHV0Ow0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGNhc2UgImZpbHRlciI6DQogICAgICAgICAgICBjb25maXJtTXNnID0gIkRlbGV0ZSB0aGlzIGZpbHRlcj8iOw0KICAgICAgICAgICAgY21kID0gInNhdmVGaWx0ZXIiOw0KICAgICAgICAgICAgZGF0YVsiZmlsdGVyIl0gPSB7fTsNCiAgICAgICAgICAgIGRhdGFbImZpbHRlciJdW2lkXSA9IGlucHV0Ow0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICBjb25zb2xlLmxvZyhkYXRhVHlwZSwgaWQpOw0KICAgICAgICAgICAgcmV0dXJuOw0KICAgIH0NCiAgICBpZiAocmVtb3ZlID09IHRydWUpIHsNCiAgICAgICAgaWYgKCFjb25maXJtKGNvbmZpcm1Nc2cpKSB7DQogICAgICAgICAgICBzaG93RWxlbWVudCgicG9wdXAiLCBmYWxzZSk7DQogICAgICAgICAgICByZXR1cm47DQogICAgICAgIH0NCiAgICB9DQogICAgY29uc29sZS5sb2coIlNFTkQgVE8gU0VSVkVSIik7DQogICAgY29uc29sZS5sb2coZGF0YSk7DQogICAgbGV0IHNlcnZlciA9IG5ldyBTZXJ2ZXIoY21kKTsNCiAgICBzZXJ2ZXIucmVxdWVzdChkYXRhKTsNCn0NCmZ1bmN0aW9uIGRvbmVQb3B1cERhdGEoZGF0YVR5cGUsIGlkc1N0cikgew0KICAgIGxldCBpZHMgPSBpZHNTdHIuc3BsaXQoJywnKTsNCiAgICBsZXQgZGl2ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInBvcHVwLWN1c3RvbSIpOw0KICAgIGxldCBpbnB1dHMgPSBkaXYuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSgiY2hhbmdlZCIpOw0KICAgIGlkcy5mb3JFYWNoKGlkID0+IHsNCiAgICAgICAgbGV0IGlucHV0Ow0KICAgICAgICBpbnB1dCA9IFNFUlZFUlsieGVwZyJdWyJlcGdNYXBwaW5nIl1baWRdOw0KICAgICAgICBjb25zb2xlLmxvZyhpbnB1dCk7DQogICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgaW5wdXRzLmxlbmd0aDsgaSsrKSB7DQogICAgICAgICAgICBsZXQgbmFtZTsNCiAgICAgICAgICAgIGxldCB2YWx1ZTsNCiAgICAgICAgICAgIHN3aXRjaCAoaW5wdXRzW2ldLnRhZ05hbWUpIHsNCiAgICAgICAgICAgICAgICBjYXNlICJJTlBVVCI6DQogICAgICAgICAgICAgICAgICAgIHN3aXRjaCAoaW5wdXRzW2ldLnR5cGUpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgImNoZWNrYm94IjoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lID0gaW5wdXRzW2ldLm5hbWU7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSBpbnB1dHNbaV0uY2hlY2tlZDsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnB1dFtuYW1lXSA9IHZhbHVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAidGV4dCI6DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZSA9IGlucHV0c1tpXS5uYW1lOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlID0gaW5wdXRzW2ldLnZhbHVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlucHV0W25hbWVdID0gdmFsdWU7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAiU0VMRUNUIjoNCiAgICAgICAgICAgICAgICAgICAgbmFtZSA9IGlucHV0c1tpXS5uYW1lOw0KICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IGlucHV0c1tpXS52YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgaW5wdXRbbmFtZV0gPSB2YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBzd2l0Y2ggKG5hbWUpIHsNCiAgICAgICAgICAgICAgICBjYXNlICJ0dmctbG9nbyI6DQogICAgICAgICAgICAgICAgICAgIC8vKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5jaGlsZE5vZGVzWzJdLmZpcnN0Q2hpbGQgYXMgSFRNTEVsZW1lbnQpLnNldEF0dHJpYnV0ZSgic3JjIiwgdmFsdWUpDQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgIngtbmFtZSI6DQogICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5jaGlsZE5vZGVzWzNdLmZpcnN0Q2hpbGQuaW5uZXJIVE1MID0gdmFsdWU7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgIngtY2F0ZWdvcnkiOg0KICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkuY2hpbGROb2Rlc1szXS5maXJzdENoaWxkLmNsYXNzTmFtZSA9IHZhbHVlOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBjYXNlICJ4LWdyb3VwLXRpdGxlIjoNCiAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpLmNoaWxkTm9kZXNbNV0uZmlyc3RDaGlsZC5pbm5lckhUTUwgPSB2YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAieC14bWx0di1maWxlIjoNCiAgICAgICAgICAgICAgICAgICAgaWYgKHZhbHVlICE9ICJ4VGVWZSBEdW1teSIgJiYgdmFsdWUgIT0gIi0iKSB7DQogICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IGdldFZhbHVlRnJvbVByb3ZpZGVyRmlsZSh2YWx1ZSwgInhtbHR2IiwgIm5hbWUiKTsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBpZiAodmFsdWUgPT0gIi0iKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBpbnB1dFsieC1hY3RpdmUiXSA9IGZhbHNlOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5jaGlsZE5vZGVzWzZdLmZpcnN0Q2hpbGQuaW5uZXJIVE1MID0gdmFsdWU7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgIngtbWFwcGluZyI6DQogICAgICAgICAgICAgICAgICAgIGlmICh2YWx1ZSA9PSAiLSIpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGlucHV0WyJ4LWFjdGl2ZSJdID0gZmFsc2U7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpLmNoaWxkTm9kZXNbN10uZmlyc3RDaGlsZC5pbm5lckhUTUwgPSB2YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAieC10aW1lc2hpZnQiOg0KICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkuY2hpbGROb2Rlc1s4XS5maXJzdENoaWxkLmlubmVySFRNTCA9IHZhbHVlOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBkZWZhdWx0Og0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgY3JlYXRlU2VhcmNoT2JqKCk7DQogICAgICAgICAgICBzZWFyY2hJbk1hcHBpbmcoKTsNCiAgICAgICAgfQ0KICAgICAgICBpZiAoaW5wdXRbIngtYWN0aXZlIl0gPT0gZmFsc2UpIHsNCiAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5jbGFzc05hbWUgPSAibm90QWN0aXZlRVBHIjsNCiAgICAgICAgfQ0KICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5jbGFzc05hbWUgPSAiYWN0aXZlRVBHIjsNCiAgICAgICAgfQ0KICAgICAgICBjb25zb2xlLmxvZyhpbnB1dFsidHZnLWxvZ28iXSk7DQogICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5jaGlsZE5vZGVzWzJdLmZpcnN0Q2hpbGQuc2V0QXR0cmlidXRlKCJzcmMiLCBpbnB1dFsidHZnLWxvZ28iXSk7DQogICAgfSk7DQogICAgc2hvd0VsZW1lbnQoInBvcHVwIiwgZmFsc2UpOw0KICAgIHJldHVybjsNCn0NCmZ1bmN0aW9uIHNob3dQcmV2aWV3KGVsZW1lbnQpIHsNCiAgICBsZXQgZGl2ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm15U3RyZWFtc0JveCIpOw0KICAgIHN3aXRjaCAoZWxlbWVudCkgew0KICAgICAgICBjYXNlIGZhbHNlOg0KICAgICAgICAgICAgZGl2LmNsYXNzTmFtZSA9ICJub3RWaXNpYmxlIjsNCiAgICAgICAgICAgIHJldHVybjsNCiAgICB9DQogICAgbGV0IHN0cmVhbXMgPSBbImFjdGl2ZVN0cmVhbXMiLCAiaW5hY3RpdmVTdHJlYW1zIl07DQogICAgc3RyZWFtcy5mb3JFYWNoKHByZXZpZXcgPT4gew0KICAgICAgICBsZXQgdGFibGUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChwcmV2aWV3KTsNCiAgICAgICAgdGFibGUuaW5uZXJIVE1MID0gIiI7DQogICAgICAgIGxldCBvYmogPSBTRVJWRVJbImRhdGEiXVsiU3RyZWFtUHJldmlld1VJIl1bcHJldmlld107DQogICAgICAgIG9iai5mb3JFYWNoKGNoYW5uZWwgPT4gew0KICAgICAgICAgICAgbGV0IHRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVFIiKTsNCiAgICAgICAgICAgIGxldCB0ZEtleSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICBsZXQgdGRWYWwgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgdGRLZXkuY2xhc3NOYW1lID0gInRkS2V5IjsNCiAgICAgICAgICAgIHRkVmFsLmNsYXNzTmFtZSA9ICJ0ZFZhbCI7DQogICAgICAgICAgICBzd2l0Y2ggKHByZXZpZXcpIHsNCiAgICAgICAgICAgICAgICBjYXNlICJhY3RpdmVTdHJlYW1zIjoNCiAgICAgICAgICAgICAgICAgICAgdGRLZXkuaW5uZXJUZXh0ID0gIkNoYW5uZWw6ICgrKSI7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgImluYWN0aXZlU3RyZWFtcyI6DQogICAgICAgICAgICAgICAgICAgIHRkS2V5LmlubmVyVGV4dCA9ICJDaGFubmVsOiAoLSkiOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIHRkVmFsLmlubmVyVGV4dCA9IGNoYW5uZWw7DQogICAgICAgICAgICB0ci5hcHBlbmRDaGlsZCh0ZEtleSk7DQogICAgICAgICAgICB0ci5hcHBlbmRDaGlsZCh0ZFZhbCk7DQogICAgICAgICAgICB0YWJsZS5hcHBlbmRDaGlsZCh0cik7DQogICAgICAgIH0pOw0KICAgIH0pOw0KICAgIHNob3dFbGVtZW50KCJsb2FkaW5nIiwgZmFsc2UpOw0KICAgIGRpdi5jbGFzc05hbWUgPSAidmlzaWJsZSI7DQogICAgcmV0dXJuOw0KfQ0K" webUI["html/js/network_ts.js"] = "Y2xhc3MgU2VydmVyIHsNCiAgICBjb25zdHJ1Y3RvcihjbWQpIHsNCiAgICAgICAgdGhpcy5jbWQgPSBjbWQ7DQogICAgfQ0KICAgIHJlcXVlc3QoZGF0YSkgew0KICAgICAgICBpZiAoU0VSVkVSX0NPTk5FQ1RJT04gPT0gdHJ1ZSkgew0KICAgICAgICAgICAgcmV0dXJuOw0KICAgICAgICB9DQogICAgICAgIFNFUlZFUl9DT05ORUNUSU9OID0gdHJ1ZTsNCiAgICAgICAgY29uc29sZS5sb2coZGF0YSk7DQogICAgICAgIGlmICh0aGlzLmNtZCAhPSAidXBkYXRlTG9nIikgew0KICAgICAgICAgICAgc2hvd0VsZW1lbnQoImxvYWRpbmciLCB0cnVlKTsNCiAgICAgICAgICAgIFVORE8gPSBuZXcgT2JqZWN0KCk7DQogICAgICAgIH0NCiAgICAgICAgc3dpdGNoICh3aW5kb3cubG9jYXRpb24ucHJvdG9jb2wpIHsNCiAgICAgICAgICAgIGNhc2UgImh0dHA6IjoNCiAgICAgICAgICAgICAgICB0aGlzLnByb3RvY29sID0gIndzOi8vIjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImh0dHBzOiI6DQogICAgICAgICAgICAgICAgdGhpcy5wcm90b2NvbCA9ICJ3c3M6Ly8iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICB9DQogICAgICAgIHZhciB1cmwgPSB0aGlzLnByb3RvY29sICsgd2luZG93LmxvY2F0aW9uLmhvc3RuYW1lICsgIjoiICsgd2luZG93LmxvY2F0aW9uLnBvcnQgKyAiL2RhdGEvIiArICI/VG9rZW49IiArIGdldENvb2tpZSgiVG9rZW4iKTsNCiAgICAgICAgZGF0YVsiY21kIl0gPSB0aGlzLmNtZDsNCiAgICAgICAgdmFyIHdzID0gbmV3IFdlYlNvY2tldCh1cmwpOw0KICAgICAgICB3cy5vbm9wZW4gPSBmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICBXU19BVkFJTEFCTEUgPSB0cnVlOw0KICAgICAgICAgICAgY29uc29sZS5sb2coIlJFUVVFU1QgKEpTKToiKTsNCiAgICAgICAgICAgIGNvbnNvbGUubG9nKGRhdGEpOw0KICAgICAgICAgICAgY29uc29sZS5sb2coIlJFUVVFU1Q6IChKU09OKSIpOw0KICAgICAgICAgICAgY29uc29sZS5sb2coSlNPTi5zdHJpbmdpZnkoZGF0YSkpOw0KICAgICAgICAgICAgdGhpcy5zZW5kKEpTT04uc3RyaW5naWZ5KGRhdGEpKTsNCiAgICAgICAgfTsNCiAgICAgICAgd3Mub25lcnJvciA9IGZ1bmN0aW9uIChlKSB7DQogICAgICAgICAgICBjb25zb2xlLmxvZygiTm8gd2Vic29ja2V0IGNvbm5lY3Rpb24gdG8geFRlVmUgY291bGQgYmUgZXN0YWJsaXNoZWQuIENoZWNrIHlvdXIgbmV0d29yayBjb25maWd1cmF0aW9uLiIpOw0KICAgICAgICAgICAgU0VSVkVSX0NPTk5FQ1RJT04gPSBmYWxzZTsNCiAgICAgICAgICAgIGlmIChXU19BVkFJTEFCTEUgPT0gZmFsc2UpIHsNCiAgICAgICAgICAgICAgICBhbGVydCgiTm8gd2Vic29ja2V0IGNvbm5lY3Rpb24gdG8geFRlVmUgY291bGQgYmUgZXN0YWJsaXNoZWQuIENoZWNrIHlvdXIgbmV0d29yayBjb25maWd1cmF0aW9uLiIpOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9Ow0KICAgICAgICB3cy5vbm1lc3NhZ2UgPSBmdW5jdGlvbiAoZSkgew0KICAgICAgICAgICAgU0VSVkVSX0NPTk5FQ1RJT04gPSBmYWxzZTsNCiAgICAgICAgICAgIHNob3dFbGVtZW50KCJsb2FkaW5nIiwgZmFsc2UpOw0KICAgICAgICAgICAgY29uc29sZS5sb2coIlJFU1BPTlNFOiIpOw0KICAgICAgICAgICAgdmFyIHJlc3BvbnNlID0gSlNPTi5wYXJzZShlLmRhdGEpOw0KICAgICAgICAgICAgY29uc29sZS5sb2cocmVzcG9uc2UpOw0KICAgICAgICAgICAgaWYgKHJlc3BvbnNlLmhhc093blByb3BlcnR5KCJ0b2tlbiIpKSB7DQogICAgICAgICAgICAgICAgZG9jdW1lbnQuY29va2llID0gIlRva2VuPSIgKyByZXNwb25zZVsidG9rZW4iXTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGlmIChyZXNwb25zZVsic3RhdHVzIl0gPT0gZmFsc2UpIHsNCiAgICAgICAgICAgICAgICBhbGVydChyZXNwb25zZVsiZXJyIl0pOw0KICAgICAgICAgICAgICAgIGlmIChyZXNwb25zZS5oYXNPd25Qcm9wZXJ0eSgicmVsb2FkIikpIHsNCiAgICAgICAgICAgICAgICAgICAgbG9jYXRpb24ucmVsb2FkKCk7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIHJldHVybjsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGlmIChyZXNwb25zZS5oYXNPd25Qcm9wZXJ0eSgibG9nb1VSTCIpKSB7DQogICAgICAgICAgICAgICAgdmFyIGRpdiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjaGFubmVsLWljb24iKTsNCiAgICAgICAgICAgICAgICBkaXYudmFsdWUgPSByZXNwb25zZVsibG9nb1VSTCJdOw0KICAgICAgICAgICAgICAgIGRpdi5jbGFzc05hbWUgPSAiY2hhbmdlZCI7DQogICAgICAgICAgICAgICAgcmV0dXJuOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgc3dpdGNoIChkYXRhWyJjbWQiXSkgew0KICAgICAgICAgICAgICAgIGNhc2UgInVwZGF0ZUxvZyI6DQogICAgICAgICAgICAgICAgICAgIFNFUlZFUlsibG9nIl0gPSByZXNwb25zZVsibG9nIl07DQogICAgICAgICAgICAgICAgICAgIGlmIChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29udGVudF9sb2ciKSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgc2hvd0xvZ3MoZmFsc2UpOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIHJldHVybjsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgICAgICAgICAgU0VSVkVSID0gbmV3IE9iamVjdCgpOw0KICAgICAgICAgICAgICAgICAgICBTRVJWRVIgPSByZXNwb25zZTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBpZiAocmVzcG9uc2UuaGFzT3duUHJvcGVydHkoIm9wZW5NZW51IikpIHsNCiAgICAgICAgICAgICAgICB2YXIgbWVudSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHJlc3BvbnNlWyJvcGVuTWVudSJdKTsNCiAgICAgICAgICAgICAgICBtZW51LmNsaWNrKCk7DQogICAgICAgICAgICAgICAgc2hvd0VsZW1lbnQoInBvcHVwIiwgZmFsc2UpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgaWYgKHJlc3BvbnNlLmhhc093blByb3BlcnR5KCJvcGVuTGluayIpKSB7DQogICAgICAgICAgICAgICAgd2luZG93LmxvY2F0aW9uID0gcmVzcG9uc2VbIm9wZW5MaW5rIl07DQogICAgICAgICAgICB9DQogICAgICAgICAgICBpZiAocmVzcG9uc2UuaGFzT3duUHJvcGVydHkoImFsZXJ0IikpIHsNCiAgICAgICAgICAgICAgICBhbGVydChyZXNwb25zZVsiYWxlcnQiXSk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBpZiAocmVzcG9uc2UuaGFzT3duUHJvcGVydHkoInJlbG9hZCIpKSB7DQogICAgICAgICAgICAgICAgbG9jYXRpb24ucmVsb2FkKCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBpZiAocmVzcG9uc2UuaGFzT3duUHJvcGVydHkoIndpemFyZCIpKSB7DQogICAgICAgICAgICAgICAgY3JlYXRlTGF5b3V0KCk7DQogICAgICAgICAgICAgICAgY29uZmlndXJhdGlvbldpemFyZFtyZXNwb25zZVsid2l6YXJkIl1dLmNyZWF0ZVdpemFyZCgpOw0KICAgICAgICAgICAgICAgIHJldHVybjsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGNyZWF0ZUxheW91dCgpOw0KICAgICAgICB9Ow0KICAgIH0NCn0NCmZ1bmN0aW9uIGdldENvb2tpZShuYW1lKSB7DQogICAgdmFyIHZhbHVlID0gIjsgIiArIGRvY3VtZW50LmNvb2tpZTsNCiAgICB2YXIgcGFydHMgPSB2YWx1ZS5zcGxpdCgiOyAiICsgbmFtZSArICI9Iik7DQogICAgaWYgKHBhcnRzLmxlbmd0aCA9PSAyKQ0KICAgICAgICByZXR1cm4gcGFydHMucG9wKCkuc3BsaXQoIjsiKS5zaGlmdCgpOw0KfQ0K" webUI["html/js/settings_ts.js"] = "Y2xhc3MgU2V0dGluZ3NDYXRlZ29yeSB7DQogICAgY29uc3RydWN0b3IoKSB7DQogICAgICAgIHRoaXMuRG9jdW1lbnRJRCA9ICJjb250ZW50X3NldHRpbmdzIjsNCiAgICB9DQogICAgY3JlYXRlQ2F0ZWdvcnlIZWFkbGluZSh2YWx1ZSkgew0KICAgICAgICB2YXIgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIkg0Iik7DQogICAgICAgIGVsZW1lbnQuaW5uZXJIVE1MID0gdmFsdWU7DQogICAgICAgIHJldHVybiBlbGVtZW50Ow0KICAgIH0NCiAgICBjcmVhdGVIUigpIHsNCiAgICAgICAgdmFyIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJIUiIpOw0KICAgICAgICByZXR1cm4gZWxlbWVudDsNCiAgICB9DQogICAgY3JlYXRlU2V0dGluZ3Moc2V0dGluZ3NLZXkpIHsNCiAgICAgICAgdmFyIHNldHRpbmcgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJUUiIpOw0KICAgICAgICB2YXIgY29udGVudCA9IG5ldyBQb3B1cENvbnRlbnQoKTsNCiAgICAgICAgdmFyIGRhdGEgPSBTRVJWRVJbInNldHRpbmdzIl1bc2V0dGluZ3NLZXldOw0KICAgICAgICBzd2l0Y2ggKHNldHRpbmdzS2V5KSB7DQogICAgICAgICAgICAvLyBUZXh0IGlucHV0cw0KICAgICAgICAgICAgY2FzZSAidXBkYXRlIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLnVwZGF0ZS50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsICJ1cGRhdGUiLCBkYXRhLnRvU3RyaW5nKCkpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3suc2V0dGluZ3MudXBkYXRlLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJiYWNrdXAucGF0aCI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5iYWNrdXBQYXRoLnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgImJhY2t1cC5wYXRoIiwgZGF0YSk7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5zZXR0aW5ncy5iYWNrdXBQYXRoLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ0ZW1wLnBhdGgiOg0KICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MudGVtcFBhdGgudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCAidGVtcC5wYXRoIiwgZGF0YSk7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5zZXR0aW5ncy50bXBQYXRoLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ1c2VyLmFnZW50IjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLnVzZXJBZ2VudC50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsICJ1c2VyLmFnZW50IiwgZGF0YSk7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5zZXR0aW5ncy51c2VyQWdlbnQucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImJ1ZmZlci50aW1lb3V0IjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmJ1ZmZlclRpbWVvdXQudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCAiYnVmZmVyLnRpbWVvdXQiLCBkYXRhKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnNldHRpbmdzLmJ1ZmZlclRpbWVvdXQucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImZmbXBlZy5wYXRoIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmZmbXBlZ1BhdGgudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCAiZmZtcGVnLnBhdGgiLCBkYXRhKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnNldHRpbmdzLmZmbXBlZ1BhdGgucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImZmbXBlZy5vcHRpb25zIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmZmbXBlZ09wdGlvbnMudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCAiZmZtcGVnLm9wdGlvbnMiLCBkYXRhKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnNldHRpbmdzLmZmbXBlZ09wdGlvbnMucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInZsYy5wYXRoIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLnZsY1BhdGgudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCAidmxjLnBhdGgiLCBkYXRhKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnNldHRpbmdzLnZsY1BhdGgucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInZsYy5vcHRpb25zIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLnZsY09wdGlvbnMudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCAidmxjLm9wdGlvbnMiLCBkYXRhKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnNldHRpbmdzLnZsY09wdGlvbnMucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIC8vIENoZWNrYm94ZXMNCiAgICAgICAgICAgIGNhc2UgImF1dGhlbnRpY2F0aW9uLndlYiI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5hdXRoZW50aWNhdGlvbldFQi50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChzZXR0aW5nc0tleSk7DQogICAgICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGE7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiYXV0aGVudGljYXRpb24ucG1zIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmF1dGhlbnRpY2F0aW9uUE1TLnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KHNldHRpbmdzS2V5KTsNCiAgICAgICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJhdXRoZW50aWNhdGlvbi5tM3UiOg0KICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MuYXV0aGVudGljYXRpb25NM1UudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goc2V0dGluZ3NLZXkpOw0KICAgICAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImF1dGhlbnRpY2F0aW9uLnhtbCI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5hdXRoZW50aWNhdGlvblhNTC50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChzZXR0aW5nc0tleSk7DQogICAgICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGE7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiYXV0aGVudGljYXRpb24uYXBpIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmF1dGhlbnRpY2F0aW9uQVBJLnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KHNldHRpbmdzS2V5KTsNCiAgICAgICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJmaWxlcy51cGRhdGUiOg0KICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MuZmlsZXNVcGRhdGUudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goc2V0dGluZ3NLZXkpOw0KICAgICAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImNhY2hlLmltYWdlcyI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5jYWNoZUltYWdlcy50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChzZXR0aW5nc0tleSk7DQogICAgICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGE7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAieGVwZy5yZXBsYWNlLm1pc3NpbmcuaW1hZ2VzIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLnJlcGxhY2VFbXB0eUltYWdlcy50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChzZXR0aW5nc0tleSk7DQogICAgICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGE7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAieHRldmVBdXRvVXBkYXRlIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLnh0ZXZlQXV0b1VwZGF0ZS50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChzZXR0aW5nc0tleSk7DQogICAgICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGE7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiYXBpIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmFwaS50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChzZXR0aW5nc0tleSk7DQogICAgICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGE7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgLy8gU2VsZWN0DQogICAgICAgICAgICBjYXNlICJ0dW5lciI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy50dW5lci50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIHRleHQgPSBuZXcgQXJyYXkoKTsNCiAgICAgICAgICAgICAgICB2YXIgdmFsdWVzID0gbmV3IEFycmF5KCk7DQogICAgICAgICAgICAgICAgZm9yICh2YXIgaSA9IDE7IGkgPD0gMTAwOyBpKyspIHsNCiAgICAgICAgICAgICAgICAgICAgdGV4dC5wdXNoKGkpOw0KICAgICAgICAgICAgICAgICAgICB2YWx1ZXMucHVzaChpKTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgdmFyIHNlbGVjdCA9IGNvbnRlbnQuY3JlYXRlU2VsZWN0KHRleHQsIHZhbHVlcywgZGF0YSwgc2V0dGluZ3NLZXkpOw0KICAgICAgICAgICAgICAgIHNlbGVjdC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChzZWxlY3QpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiZXBnU291cmNlIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmVwZ1NvdXJjZS50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIHRleHQgPSBbIlBNUyIsICJYRVBHIl07DQogICAgICAgICAgICAgICAgdmFyIHZhbHVlcyA9IFsiUE1TIiwgIlhFUEciXTsNCiAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCBkYXRhLCBzZXR0aW5nc0tleSk7DQogICAgICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKHNlbGVjdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJiYWNrdXAua2VlcCI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5iYWNrdXBLZWVwLnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgdGV4dCA9IFsiNSIsICIxMCIsICIyMCIsICIzMCIsICI0MCIsICI1MCJdOw0KICAgICAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBbIjUiLCAiMTAiLCAiMjAiLCAiMzAiLCAiNDAiLCAiNTAiXTsNCiAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCBkYXRhLCBzZXR0aW5nc0tleSk7DQogICAgICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKHNlbGVjdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJidWZmZXIuc2l6ZS5rYiI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5idWZmZXJTaXplLnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgdGV4dCA9IFsiMC41IE1CIiwgIjEgTUIiLCAiMiBNQiIsICIzIE1CIiwgIjQgTUIiLCAiNSBNQiIsICI2IE1CIiwgIjcgTUIiLCAiOCBNQiJdOw0KICAgICAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBbIjUxMiIsICIxMDI0IiwgIjIwNDgiLCAiMzA3MiIsICI0MDk2IiwgIjUxMjAiLCAiNjE0NCIsICI3MTY4IiwgIjgxOTIiXTsNCiAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCBkYXRhLCBzZXR0aW5nc0tleSk7DQogICAgICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKHNlbGVjdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJidWZmZXIiOg0KICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3Muc3RyZWFtQnVmZmVyaW5nLnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgdGV4dCA9IFsie3suc2V0dGluZ3Muc3RyZWFtQnVmZmVyaW5nLmluZm9fZmFsc2V9fSIsICJ4VGVWZTogKHt7LnNldHRpbmdzLnN0cmVhbUJ1ZmZlcmluZy5pbmZvX3h0ZXZlfX0pIiwgIkZGbXBlZzogKHt7LnNldHRpbmdzLnN0cmVhbUJ1ZmZlcmluZy5pbmZvX2ZmbXBlZ319KSIsICJWTEM6ICh7ey5zZXR0aW5ncy5zdHJlYW1CdWZmZXJpbmcuaW5mb192bGN9fSkiXTsNCiAgICAgICAgICAgICAgICB2YXIgdmFsdWVzID0gWyItIiwgInh0ZXZlIiwgImZmbXBlZyIsICJ2bGMiXTsNCiAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCBkYXRhLCBzZXR0aW5nc0tleSk7DQogICAgICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKHNlbGVjdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ1ZHB4eSI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy51ZHB4eS50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsICJ1ZHB4eSIsIGRhdGEpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3suc2V0dGluZ3MudWRweHkucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgfQ0KICAgICAgICByZXR1cm4gc2V0dGluZzsNCiAgICB9DQogICAgY3JlYXRlRGVzY3JpcHRpb24oc2V0dGluZ3NLZXkpIHsNCiAgICAgICAgdmFyIGRlc2NyaXB0aW9uID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVFIiKTsNCiAgICAgICAgdmFyIHRleHQ7DQogICAgICAgIHN3aXRjaCAoc2V0dGluZ3NLZXkpIHsNCiAgICAgICAgICAgIGNhc2UgImF1dGhlbnRpY2F0aW9uLndlYiI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5hdXRoZW50aWNhdGlvbldFQi5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImF1dGhlbnRpY2F0aW9uLm0zdSI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5hdXRoZW50aWNhdGlvbk0zVS5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImF1dGhlbnRpY2F0aW9uLnBtcyI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5hdXRoZW50aWNhdGlvblBNUy5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImF1dGhlbnRpY2F0aW9uLnhtbCI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5hdXRoZW50aWNhdGlvblhNTC5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImF1dGhlbnRpY2F0aW9uLmFwaSI6DQogICAgICAgICAgICAgICAgaWYgKFNFUlZFUlsic2V0dGluZ3MiXVsiYXV0aGVudGljYXRpb24ud2ViIl0gPT0gdHJ1ZSkgew0KICAgICAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLmF1dGhlbnRpY2F0aW9uQVBJLmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInh0ZXZlQXV0b1VwZGF0ZSI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy54dGV2ZUF1dG9VcGRhdGUuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJiYWNrdXAua2VlcCI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5iYWNrdXBLZWVwLmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiYmFja3VwLnBhdGgiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MuYmFja3VwUGF0aC5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInRlbXAucGF0aCI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy50ZW1wUGF0aC5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImJ1ZmZlciI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5zdHJlYW1CdWZmZXJpbmcuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJidWZmZXIuc2l6ZS5rYiI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5idWZmZXJTaXplLmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiYnVmZmVyLnRpbWVvdXQiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MuYnVmZmVyVGltZW91dC5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInVzZXIuYWdlbnQiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MudXNlckFnZW50LmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiZmZtcGVnLnBhdGgiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MuZmZtcGVnUGF0aC5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImZmbXBlZy5vcHRpb25zIjoNCiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLmZmbXBlZ09wdGlvbnMuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ2bGMucGF0aCI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy52bGNQYXRoLmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAidmxjLm9wdGlvbnMiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MudmxjT3B0aW9ucy5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImVwZ1NvdXJjZSI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5lcGdTb3VyY2UuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ0dW5lciI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy50dW5lci5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInVwZGF0ZSI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy51cGRhdGUuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJhcGkiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MuYXBpLmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiZmlsZXMudXBkYXRlIjoNCiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLmZpbGVzVXBkYXRlLmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiY2FjaGUuaW1hZ2VzIjoNCiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLmNhY2hlSW1hZ2VzLmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAieGVwZy5yZXBsYWNlLm1pc3NpbmcuaW1hZ2VzIjoNCiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLnJlcGxhY2VFbXB0eUltYWdlcy5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInVkcHh5IjoNCiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLnVkcHh5LmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgICAgICB0ZXh0ID0gIiI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIH0NCiAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAiIjsNCiAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICB2YXIgcHJlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiUFJFIik7DQogICAgICAgIHByZS5pbm5lckhUTUwgPSB0ZXh0Ow0KICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKHByZSk7DQogICAgICAgIGRlc2NyaXB0aW9uLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgIGRlc2NyaXB0aW9uLmFwcGVuZENoaWxkKHRkUmlnaHQpOw0KICAgICAgICByZXR1cm4gZGVzY3JpcHRpb247DQogICAgfQ0KfQ0KY2xhc3MgU2V0dGluZ3NDYXRlZ29yeUl0ZW0gZXh0ZW5kcyBTZXR0aW5nc0NhdGVnb3J5IHsNCiAgICBjb25zdHJ1Y3RvcihoZWFkbGluZSwgc2V0dGluZ3NLZXlzKSB7DQogICAgICAgIHN1cGVyKCk7DQogICAgICAgIHRoaXMuaGVhZGxpbmUgPSBoZWFkbGluZTsNCiAgICAgICAgdGhpcy5zZXR0aW5nc0tleXMgPSBzZXR0aW5nc0tleXM7DQogICAgfQ0KICAgIGNyZWF0ZUNhdGVnb3J5KCkgew0KICAgICAgICB2YXIgaGVhZGxpbmUgPSB0aGlzLmNyZWF0ZUNhdGVnb3J5SGVhZGxpbmUodGhpcy5oZWFkbGluZSk7DQogICAgICAgIHZhciBzZXR0aW5nc0tleXMgPSB0aGlzLnNldHRpbmdzS2V5czsNCiAgICAgICAgdmFyIGRvYyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHRoaXMuRG9jdW1lbnRJRCk7DQogICAgICAgIGRvYy5hcHBlbmRDaGlsZChoZWFkbGluZSk7DQogICAgICAgIC8vIENyZWF0ZSBhIHRhYmxlIGZvciB0aGUgY2F0ZWdvcnkNCiAgICAgICAgdmFyIHRhYmxlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEFCTEUiKTsNCiAgICAgICAgdmFyIGtleXMgPSBzZXR0aW5nc0tleXMuc3BsaXQoIiwiKTsNCiAgICAgICAga2V5cy5mb3JFYWNoKHNldHRpbmdzS2V5ID0+IHsNCiAgICAgICAgICAgIHN3aXRjaCAoc2V0dGluZ3NLZXkpIHsNCiAgICAgICAgICAgICAgICBjYXNlICJhdXRoZW50aWNhdGlvbi5wbXMiOg0KICAgICAgICAgICAgICAgIGNhc2UgImF1dGhlbnRpY2F0aW9uLm0zdSI6DQogICAgICAgICAgICAgICAgY2FzZSAiYXV0aGVudGljYXRpb24ueG1sIjoNCiAgICAgICAgICAgICAgICBjYXNlICJhdXRoZW50aWNhdGlvbi5hcGkiOg0KICAgICAgICAgICAgICAgICAgICBpZiAoU0VSVkVSWyJzZXR0aW5ncyJdWyJhdXRoZW50aWNhdGlvbi53ZWIiXSA9PSBmYWxzZSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBkZWZhdWx0Og0KICAgICAgICAgICAgICAgICAgICB2YXIgaXRlbSA9IHRoaXMuY3JlYXRlU2V0dGluZ3Moc2V0dGluZ3NLZXkpOw0KICAgICAgICAgICAgICAgICAgICB2YXIgZGVzY3JpcHRpb24gPSB0aGlzLmNyZWF0ZURlc2NyaXB0aW9uKHNldHRpbmdzS2V5KTsNCiAgICAgICAgICAgICAgICAgICAgdGFibGUuYXBwZW5kQ2hpbGQoaXRlbSk7DQogICAgICAgICAgICAgICAgICAgIHRhYmxlLmFwcGVuZENoaWxkKGRlc2NyaXB0aW9uKTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICB9DQogICAgICAgIH0pOw0KICAgICAgICBkb2MuYXBwZW5kQ2hpbGQodGFibGUpOw0KICAgICAgICBkb2MuYXBwZW5kQ2hpbGQodGhpcy5jcmVhdGVIUigpKTsNCiAgICB9DQp9DQpmdW5jdGlvbiBzaG93U2V0dGluZ3MoKSB7DQogICAgY29uc29sZS5sb2coIlNFVFRJTkdTIik7DQogICAgZm9yIChsZXQgaSA9IDA7IGkgPCBzZXR0aW5nc0NhdGVnb3J5Lmxlbmd0aDsgaSsrKSB7DQogICAgICAgIHNldHRpbmdzQ2F0ZWdvcnlbaV0uY3JlYXRlQ2F0ZWdvcnkoKTsNCiAgICB9DQp9DQpmdW5jdGlvbiBzYXZlU2V0dGluZ3MoKSB7DQogICAgY29uc29sZS5sb2coIlNhdmUgU2V0dGluZ3MiKTsNCiAgICB2YXIgY21kID0gInNhdmVTZXR0aW5ncyI7DQogICAgdmFyIGRpdiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb250ZW50X3NldHRpbmdzIik7DQogICAgdmFyIHNldHRpbmdzID0gZGl2LmdldEVsZW1lbnRzQnlDbGFzc05hbWUoImNoYW5nZWQiKTsNCiAgICB2YXIgbmV3U2V0dGluZ3MgPSBuZXcgT2JqZWN0KCk7DQogICAgZm9yIChsZXQgaSA9IDA7IGkgPCBzZXR0aW5ncy5sZW5ndGg7IGkrKykgew0KICAgICAgICB2YXIgbmFtZTsNCiAgICAgICAgdmFyIHZhbHVlOw0KICAgICAgICBzd2l0Y2ggKHNldHRpbmdzW2ldLnRhZ05hbWUpIHsNCiAgICAgICAgICAgIGNhc2UgIklOUFVUIjoNCiAgICAgICAgICAgICAgICBzd2l0Y2ggKHNldHRpbmdzW2ldLnR5cGUpIHsNCiAgICAgICAgICAgICAgICAgICAgY2FzZSAiY2hlY2tib3giOg0KICAgICAgICAgICAgICAgICAgICAgICAgbmFtZSA9IHNldHRpbmdzW2ldLm5hbWU7DQogICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IHNldHRpbmdzW2ldLmNoZWNrZWQ7DQogICAgICAgICAgICAgICAgICAgICAgICBuZXdTZXR0aW5nc1tuYW1lXSA9IHZhbHVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgICAgIGNhc2UgInRleHQiOg0KICAgICAgICAgICAgICAgICAgICAgICAgbmFtZSA9IHNldHRpbmdzW2ldLm5hbWU7DQogICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IHNldHRpbmdzW2ldLnZhbHVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgc3dpdGNoIChuYW1lKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAidXBkYXRlIjoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSB2YWx1ZS5zcGxpdCgiLCIpOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IHZhbHVlLmZpbHRlcihmdW5jdGlvbiAoZSkgeyByZXR1cm4gZTsgfSk7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgImJ1ZmZlci50aW1lb3V0IjoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSBwYXJzZUZsb2F0KHZhbHVlKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgIG5ld1NldHRpbmdzW25hbWVdID0gdmFsdWU7DQogICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJTRUxFQ1QiOg0KICAgICAgICAgICAgICAgIG5hbWUgPSBzZXR0aW5nc1tpXS5uYW1lOw0KICAgICAgICAgICAgICAgIHZhbHVlID0gc2V0dGluZ3NbaV0udmFsdWU7DQogICAgICAgICAgICAgICAgLy8gSWYgdGhlIHZhbHVlIGlzIGEgbnVtYmVyLCBzdG9yZSBpdCBhcyBhIG51bWJlcg0KICAgICAgICAgICAgICAgIGlmIChpc05hTih2YWx1ZSkpIHsNCiAgICAgICAgICAgICAgICAgICAgbmV3U2V0dGluZ3NbbmFtZV0gPSB2YWx1ZTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgZWxzZSB7DQogICAgICAgICAgICAgICAgICAgIG5ld1NldHRpbmdzW25hbWVdID0gcGFyc2VJbnQodmFsdWUpOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgfQ0KICAgIH0NCiAgICB2YXIgZGF0YSA9IG5ldyBPYmplY3QoKTsNCiAgICBkYXRhWyJzZXR0aW5ncyJdID0gbmV3U2V0dGluZ3M7DQogICAgdmFyIHNlcnZlciA9IG5ldyBTZXJ2ZXIoY21kKTsNCiAgICBzZXJ2ZXIucmVxdWVzdChkYXRhKTsNCn0NCg==" webUI["html/lang/en.json"] = "ew0KICAibWFpbk1lbnUiOg0KICB7DQogICAgIml0ZW0iOg0KICAgIHsNCiAgICAgICJwbGF5bGlzdCI6ICJQbGF5bGlzdCIsDQogICAgICAicG1zSUQiOiAiUE1TIElEIiwNCiAgICAgICJmaWx0ZXIiOiAiRmlsdGVyIiwNCiAgICAgICJ4bWx0diI6ICJYTUxUViIsDQogICAgICAibWFwcGluZyI6ICJNYXBwaW5nIiwNCiAgICAgICJ1c2VycyI6ICJVc2VycyIsDQogICAgICAic2V0dGluZ3MiOiAiU2V0dGluZ3MiLA0KICAgICAgImxvZyI6ICJMb2ciLA0KICAgICAgImxvZ291dCI6ICJMb2dvdXQiDQogICAgfSwNCiAgICAiaGVhZGxpbmUiOg0KICAgIHsNCiAgICAgICJwbGF5bGlzdCI6ICJMb2NhbCBvciByZW1vdGUgcGxheWxpc3RzIiwNCiAgICAgICJmaWx0ZXIiOiAiRmlsdGVyIHBsYXlsaXN0IiwNCiAgICAgICJ4bWx0diI6ICJMb2NhbCBvciByZW1vdGUgWE1MVFYgZmlsZXMiLA0KICAgICAgIm1hcHBpbmciOiAiTWFwIHBsYXlsaXN0IGNoYW5uZWxzIHRvIEVQRyBjaGFubmVscyIsDQogICAgICAidXNlcnMiOiAiVXNlciBtYW5hZ2VtZW50IiwNCiAgICAgICJzZXR0aW5ncyI6ICJTZXR0aW5ncyIsDQogICAgICAibG9nIjogIkxvZyIsDQogICAgICAibG9nb3V0IjogIkxvZ291dCINCiAgICB9DQogIH0sDQogICJjb25maXJtIjoNCiAgew0KICAgICJyZXN0b3JlIjogIkFsbCBkYXRhIHdpbGwgYmUgcmVwbGFjZWQgd2l0aCB0aG9zZSBmcm9tIHRoZSBiYWNrdXAuIFNob3VsZCB0aGUgZmlsZXMgYmUgcmVzdG9yZWQ/Ig0KICB9LA0KICAiYWxlcnQiOg0KICB7DQogICAgImZpbGVMb2FkaW5nRXJyb3IiOiAiRmlsZSBjb3VsZG4ndCBiZSBsb2FkZWQiLA0KICAgICJpbnZhbGlkQ2hhbm5lbE51bWJlciI6ICJJbnZhbGlkIGNoYW5uZWwgbnVtYmVyIiwNCiAgICAibWlzc2luZ0lucHV0IjogIk1pc3NpbmcgaW5wdXQiDQogIH0sDQogICJidXR0b24iOg0KICB7DQogICAgImJhY2siOiAiQmFjayIsDQogICAgImJhY2t1cCI6ICJCYWNrdXAiLA0KICAgICJidWxrRWRpdCI6ICJCdWxrIEVkaXQiLA0KICAgICJjYW5jZWwiOiAiQ2FuY2VsIiwNCiAgICAiZGVsZXRlIjogIkRlbGV0ZSIsDQogICAgImRvbmUiOiAiRG9uZSIsDQogICAgImxvZ2luIjogIkxvZ2luIiwNCiAgICAibmV3IjogIk5ldyIsDQogICAgIm5leHQiOiAiTmV4dCIsDQogICAgInJlc3RvcmUiOiAiUmVzdG9yZSIsDQogICAgInNhdmUiOiAiU2F2ZSIsDQogICAgInNlYXJjaCI6ICJTZWFyY2giLA0KICAgICJ1cGRhdGUiOiAiVXBkYXRlIiwNCiAgICAiY3JhZXRlQWNjb3VudCI6ICJDcmVhdGUgQWNjb3VudCIsDQogICAgInJlc2V0TG9ncyI6ICJSZXNldCBMb2dzIiwNCiAgICAidXBsb2FkTG9nbyI6ICJVcGxvYWQgTG9nbyINCiAgfSwNCiAgImZpbHRlciI6DQogIHsNCiAgICAidGFibGUiOg0KICAgIHsNCiAgICAgICJuYW1lIjogIkZpbHRlciBOYW1lIiwNCiAgICAgICJ0eXBlIjogIkZpbHRlciBUeXBlIiwNCiAgICAgICJmaWx0ZXIiOiAiRmlsdGVyIg0KICAgIH0sDQogICAgImN1c3RvbSI6ICJDdXN0b20iLA0KICAgICJncm91cCI6ICJNM1UgR3JvdXAiLA0KICAgICJuYW1lIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiRmlsdGVyIE5hbWUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIkZpbHRlciBuYW1lIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAiZGVzY3JpcHRpb24iOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJEZXNjcmlwdGlvbiIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiRGVzY3JpcHRpb24iLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJ0eXBlIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiVHlwZSIsDQogICAgICAiZ3JvdXBUaXRsZSI6ICJHcm91cCBUaXRsZSIsDQogICAgICAiY3VzdG9tRmlsdGVyIjogIkN1c3RvbSBGaWx0ZXIiDQogICAgfSwNCiAgICAiY2FzZVNlbnNpdGl2ZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIkNhc2UgU2Vuc2l0aXZlIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJmaWx0ZXJSdWxlIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiRmlsdGVyIFJ1bGUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIlNwb3J0IHtIRH0gIXtFUyxJVH0iLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJmaWx0ZXJHcm91cCI6DQogICAgew0KICAgICAgInRpdGxlIjogIkdyb3VwIFRpdGxlIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIlNlbGVjdCBhIE0zVSBncm91cC4gKENvdW50ZXIpPGJyPkNoYW5naW5nIHRoZSBncm91cCB0aXRsZSBpbiB0aGUgTTNVIGludmFsaWRhdGVzIHRoZSBmaWx0ZXIuIg0KICAgIH0sDQogICAgImluY2x1ZGUiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJJbmNsdWRlIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJGSEQsVUhEIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJDaGFubmVsIG5hbWUgbXVzdCBpbmNsdWRlLjxicj4oQ29tbWEgc2VwYXJhdGVkKSBDb21tYSBtZWFucyBvciINCiAgICB9LA0KICAgICJleGNsdWRlIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiRXhjbHVkZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiRVMsSVQiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIkNoYW5uZWwgbmFtZSBtdXN0IG5vdCBjb250YWluLjxicj4oQ29tbWEgc2VwYXJhdGVkKSBDb21tYSBtZWFucyBvciINCiAgICB9LA0KICAgICJwcmVzZXJ2ZU1hcHBpbmciOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJQcmVzZXJ2ZSBFeGlzdGluZyBNM1U8YnI+Q2hhbm5lbCBOdW1iZXJzIiwNCiAgICAgICJwYWxjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIlByZXNlcnZlIGV4aXN0aW5nIE0zVSBwbGF5bGlzdCBjaGFubmVsIG51bWJlcnM/Ig0KICAgIH0sDQogICAgInN0YXJ0aW5nQ2hhbm5lbCI6DQogICAgew0KICAgICAgInRpdGxlIjogIlN0YXJ0aW5nIENoYW5uZWwgTnVtYmVyIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJkZWZhdWx0TWlzc2luZ0VQRyI6DQogICAgew0KICAgICAgInRpdGxlIjogIkZpbGwgTWlzc2luZyBFUEcgRGF0YSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJXaGVuIHRoZXJlIGlzIG5vIG1hdGNoaW5nIEVQRyBkYXRhIGZvciBjaGFubmVsLCA8YnI+YXV0b2ZpbGwgd2l0aCB4VGVWZSBkdW1teSBFUEcgZGF0YT8iDQogICAgfQ0KDQogIH0sDQogICJwbGF5bGlzdCI6DQogIHsNCiAgICAidGFibGUiOg0KICAgIHsNCiAgICAgICJwbGF5bGlzdCI6ICJQbGF5bGlzdCIsDQogICAgICAidHVuZXIiOiAiVHVuZXIiLA0KICAgICAgImxhc3RVcGRhdGUiOiAiTGFzdCBVcGRhdGUiLA0KICAgICAgImF2YWlsYWJpbGl0eSI6ICJBdmFpbGFiaWxpdHkiLA0KICAgICAgInR5cGUiOiAiVHlwZSIsDQogICAgICAic3RyZWFtcyI6ICJTdHJlYW1zIiwNCiAgICAgICJncm91cFRpdGxlIjogImdyb3VwLXRpdGxlIiwNCiAgICAgICJ0dmdJRCI6ICJ0dmctaWQiLA0KICAgICAgInVuaXF1ZUlEIjogIlVuaXF1ZSBJRCINCiAgICB9LA0KICAgICJwbGF5bGlzdFR5cGUiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJQbGF5bGlzdCB0eXBlIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJ0eXBlIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiVHlwZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAibmFtZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIk5hbWUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIlBsYXlsaXN0IG5hbWUiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJkZXNjcmlwdGlvbiI6DQogICAgew0KICAgICAgInRpdGxlIjogIkRlc2NyaXB0aW9uIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJEZXNjcmlwdGlvbiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgImZpbGVNM1UiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJNM1UgRmlsZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiRmlsZSBwYXRoIG9yIFVSTCBvZiB0aGUgTTNVIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAiZmlsZUhESFIiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJIREhvbWVSdW4gSVAiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIklQIGFkZHJlc3MgYW5kIHBvcnQgKDE5Mi4xNjguMS4xMDo1MDA0KSIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgInR1bmVyIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiVHVuZXIgLyBTdHJlYW1zIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIk51bWJlciBvZiBwYXJhbGxlbCBjb25uZWN0aW9ucyB0aGF0IGNhbiBiZSBlc3RhYmxpc2hlZCB0byB0aGUgcHJvdmlkZXIuIDxicj5Pbmx5IGF2YWlsYWJsZSB3aXRoIGFjdGl2YXRlZCBidWZmZXIuPGJyPk5ldyBzZXR0aW5ncyB3aWxsIG9ubHkgYmUgYXBwbGllZCBhZnRlciBxdWl0dGluZyBhbGwgc3RyZWFtcy4iDQogICAgfQ0KICB9LA0KICAieG1sdHYiOg0KICB7DQogICAgInRhYmxlIjoNCiAgICB7DQogICAgICAiZ3VpZGUiOiAiR3VpZGUiLA0KICAgICAgImxhc3RVcGRhdGUiOiAiTGFzdCBVcGRhdGUiLA0KICAgICAgImF2YWlsYWJpbGl0eSI6ICJBdmFpbGFiaWxpdHkiLA0KICAgICAgImNoYW5uZWxzIjogIkNoYW5uZWxzIiwNCiAgICAgICJwcm9ncmFtcyI6ICJQcm9ncmFtcyINCiAgICB9LA0KICAgICJuYW1lIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiTmFtZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiR3VpZGUgbmFtZSIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgImRlc2NyaXB0aW9uIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiRGVzY3JpcHRpb24iLA0KICAgICAgInBsYWNlaG9sZGVyIjogIkRlc2NyaXB0aW9uIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAiZmlsZVhNTFRWIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiWE1MVFYgRmlsZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiRmlsZSBwYXRoIG9yIFVSTCBvZiB0aGUgWE1MVFYiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9DQogIH0sDQogICJtYXBwaW5nIjoNCiAgew0KICAgICJ0YWJsZSI6DQogICAgew0KICAgICAgImNoTm8iOiAiQ2guIE5vLiIsDQogICAgICAibG9nbyI6ICJMb2dvIiwNCiAgICAgICJjaGFubmVsTmFtZSI6ICJDaGFubmVsIE5hbWUiLA0KICAgICAgInBsYXlsaXN0IjogIlBsYXlsaXN0IiwNCiAgICAgICJncm91cFRpdGxlIjogIkdyb3VwIFRpdGxlIiwNCiAgICAgICJ4bWx0dkZpbGUiOiAiWE1MVFYgRmlsZSIsDQogICAgICAieG1sdHZJRCI6ICJYTUxUViBJRCIsDQogICAgICAidGltZXNoaWZ0IjogIlRpbWVzaGlmdCINCiAgICB9LA0KICAgICJhY3RpdmUiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJBY3RpdmUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgImNoYW5uZWxOYW1lIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiQ2hhbm5lbCBOYW1lIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJkZXNjcmlwdGlvbiI6DQogICAgew0KICAgICAgInRpdGxlIjogIkNoYW5uZWwgRGVzY3JpcHRpb24iLA0KICAgICAgInBsYWNlaG9sZGVyIjogIlVzZWQgYnkgdGhlIER1bW15IGFzIGFuIFhNTCBkZXNjcmlwdGlvbiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgInVwZGF0ZUNoYW5uZWxOYW1lIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiVXBkYXRlIENoYW5uZWwgTmFtZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAiY2hhbm5lbExvZ28iOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJMb2dvIFVSTCIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAidXBkYXRlQ2hhbm5lbExvZ28iOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJVcGRhdGUgQ2hhbm5lbCBMb2dvIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJlcGdDYXRlZ29yeSI6DQogICAgew0KICAgICAgInRpdGxlIjogIkVQRyBDYXRlZ29yeSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAibTN1R3JvdXBUaXRsZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIkdyb3VwIFRpdGxlICh4dGV2ZS5tM3UpIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJ4bWx0dkZpbGUiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJYTUxUViBGaWxlIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJ4bWx0dkNoYW5uZWwiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJYTUxUViBDaGFubmVsIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJ0aW1lc2hpZnQiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJUaW1lc2hpZnQiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIjAiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9DQogIH0sDQogICJ1c2VycyI6DQogIHsNCiAgICAidGFibGUiOg0KICAgIHsNCiAgICAgICJ1c2VybmFtZSI6ICJVc2VybmFtZSIsDQogICAgICAicGFzc3dvcmQiOiAiUGFzc3dvcmQiLA0KICAgICAgIndlYiI6ICJXRUIiLA0KICAgICAgInBtcyI6ICJQTVMiLA0KICAgICAgIm0zdSI6ICJNM1UiLA0KICAgICAgInhtbCI6ICJYTUwiLA0KICAgICAgImFwaSI6ICJBUEkiDQogICAgfSwNCiAgICAidXNlcm5hbWUiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJVc2VybmFtZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiVXNlcm5hbWUiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJwYXNzd29yZCI6DQogICAgew0KICAgICAgInRpdGxlIjogIlBhc3N3b3JkIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJQYXNzd29yZCIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgImNvbmZpcm0iOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJDb25maXJtIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJQYXNzd29yZCBjb25maXJtIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAid2ViIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiV2ViIEFjY2VzcyIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAicG1zIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiUE1TIEFjY2VzcyIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAibTN1IjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiTTNVIEFjY2VzcyIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAieG1sIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiWE1MIEFjY2VzcyIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAiYXBpIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiQVBJIEFjY2VzcyIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfQ0KICB9LA0KICAic2V0dGluZ3MiOg0KICB7DQogICAgImNhdGVnb3J5IjoNCiAgICB7DQogICAgICAiZ2VuZXJhbCI6ICJHZW5lcmFsIiwNCiAgICAgICJmaWxlcyI6ICJGaWxlcyIsDQogICAgICAic3RyZWFtaW5nIjogIlN0cmVhbWluZyIsDQogICAgICAiYmFja3VwIjogIkJhY2t1cCIsDQogICAgICAiYXV0aGVudGljYXRpb24iOiAiQXV0aGVudGljYXRpb24iDQogICAgfSwNCiAgICAidXBkYXRlIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiU2NoZWR1bGUgZm9yIHVwZGF0aW5nIChQbGF5bGlzdCwgWE1MVFYsIEJhY2t1cCkiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIjAwMDAsMTAwMCwyMDAwIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJUaW1lIGluIDI0IGhvdXIgZm9ybWF0ICgwODAwID0gODowMCBhbSkuIE1vcmUgdGltZXMgY2FuIGJlIGVudGVyZWQgY29tbWEgc2VwYXJhdGVkLiBMZWF2ZSB0aGlzIGZpZWxkIGVtcHR5IGlmIG5vIHVwZGF0ZXMgYXJlIHRvIGJlIGNhcnJpZWQgb3V0LiINCiAgICB9LA0KICAgICJhcGkiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJBUEkgSW50ZXJmYWNlIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJWaWEgQVBJIGludGVyZmFjZSBpdCBpcyBwb3NzaWJsZSB0byBzZW5kIGNvbW1hbmRzIHRvIHhUZVZlLiBBUEkgZG9jdW1lbnRhdGlvbiBpcyA8YSBocmVmPSdodHRwczovL2dpdGh1Yi5jb20veHRldmUtcHJvamVjdC94VGVWZS1Eb2N1bWVudGF0aW9uL2Jsb2IvbWFzdGVyL2VuL2NvbmZpZ3VyYXRpb24ubWQjYXBpJz5oZXJlPC9hPiINCiAgICB9LA0KICAgICJlcGdTb3VyY2UiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJFUEcgU291cmNlIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJQTVM6PGJyPi0gVXNlIEVQRyBkYXRhIGZyb20gUGxleCBvciBFbWJ5IDxicj48YnI+WEVQRzo8YnI+LSBVc2Ugb2Ygb25lIG9yIG1vcmUgWE1MVFYgZmlsZXM8YnI+LSBDaGFubmVsIG1hbmFnZW1lbnQ8YnI+LSBNM1UgLyBYTUxUViBleHBvcnQgKEhUVFAgbGluayBmb3IgSVBUViBhcHBzKSINCiAgICB9LA0KICAgICJ0dW5lciI6DQogICAgew0KICAgICAgInRpdGxlIjogIk51bWJlciBvZiBUdW5lcnMiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIk51bWJlciBvZiBwYXJhbGxlbCBjb25uZWN0aW9ucyB0aGF0IGNhbiBiZSBlc3RhYmxpc2hlZCB0byB0aGUgcHJvdmlkZXIuPGJyPkF2YWlsYWJsZSBmb3I6IFBsZXgsIEVtYnkgKEhESFIpLCBNM1UgKHdpdGggYWN0aXZlIGJ1ZmZlcikuPGJyPkFmdGVyIGEgY2hhbmdlLCB4VGVWZSBtdXN0IGJlIGRlbGV0ZSBpbiB0aGUgUGxleCAvIEVtYnkgRFZSIHNldHRpbmdzIGFuZCBzZXQgdXAgYWdhaW4uIg0KICAgIH0sDQogICAgImZpbGVzVXBkYXRlIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiVXBkYXRlcyBhbGwgZmlsZXMgYXQgc3RhcnR1cCIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiVXBkYXRlcyBhbGwgcGxheWxpc3RzLCB0dW5lciBhbmQgWE1MVFYgZmlsZXMgYXQgc3RhcnR1cC4iDQogICAgfSwNCiAgICAiY2FjaGVJbWFnZXMiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJJbWFnZSBDYWNoaW5nIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJBbGwgaW1hZ2VzIGZyb20gdGhlIFhNTFRWIGZpbGUgYXJlIGNhY2hlZCwgYWxsb3dpbmcgZmFzdGVyIHJlbmRlcmluZyBvZiB0aGUgZ3JpZCBpbiB0aGUgY2xpZW50Ljxicj5Eb3dubG9hZGluZyB0aGUgaW1hZ2VzIG1heSB0YWtlIGEgd2hpbGUgYW5kIHdpbGwgYmUgZG9uZSBpbiB0aGUgYmFja2dyb3VuZC4iDQogICAgfSwNCiAgICAicmVwbGFjZUVtcHR5SW1hZ2VzIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiUmVwbGFjZSBtaXNzaW5nIHByb2dyYW0gaW1hZ2VzIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJJZiB0aGUgcG9zdGVyIGluIHRoZSBYTUxUViBwcm9ncmFtIGlzIG1pc3NpbmcsIHRoZSBjaGFubmVsIGxvZ28gd2lsbCBiZSB1c2VkLiINCiAgICB9LA0KICAgICJ4dGV2ZUF1dG9VcGRhdGUiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJBdXRvbWF0aWMgdXBkYXRlIG9mIHhUZVZlIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJJZiBhIG5ldyB2ZXJzaW9uIG9mIHhUZVZlIGlzIGF2YWlsYWJsZSwgaXQgd2lsbCBiZSBhdXRvbWF0aWNhbGx5IGluc3RhbGxlZC4gVGhlIHVwZGF0ZXMgYXJlIGRvd25sb2FkZWQgZnJvbSBHaXRIdWIuIg0KICAgIH0sDQogICAgInN0cmVhbUJ1ZmZlcmluZyI6DQogICAgew0KICAgICAgInRpdGxlIjogIlN0cmVhbSBCdWZmZXIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIkZ1bmN0aW9ucyBvZiB0aGUgYnVmZmVyOjxicj4tIFRoZSBzdHJlYW0gaXMgcGFzc2VkIGZyb20geFRlVmUsIEZGbXBlZyBvciBWTEMgdG8gUGxleCwgRW1ieSBvciBNM1UgUGxheWVyPGJyPi0gU21hbGwgamVya2luZyBvZiB0aGUgc3RyZWFtcyBjYW4gYmUgY29tcGVuc2F0ZWQ8YnI+LSBITFMgLyBNM1U4IHN1cHBvcnQ8YnI+LSBSVFAgLyBSVFBTIHN1cHBvcnQgKG9ubHkgRkZtcGVnIG9yIFZMQyk8YnI+LSBSZS1zdHJlYW1pbmc8YnI+LSBTZXBhcmF0ZSB0dW5lciBsaW1pdCBmb3IgZWFjaCBwbGF5bGlzdCIsDQogICAgICAiaW5mb19mYWxzZSI6ICJObyBCdWZmZXIgKENsaWVudCBjb25uZWN0cyB0byB0aGUgc3RyZWFtaW5nIHNlcnZlcikiLA0KICAgICAgImluZm9feHRldmUiOiAieFRlVmUgY29ubmVjdHMgdG8gdGhlIHN0cmVhbWluZyBzZXJ2ZXIiLA0KICAgICAgImluZm9fZmZtcGVnIjogIkZGbXBlZyBjb25uZWN0cyB0byB0aGUgc3RyZWFtaW5nIHNlcnZlciIsDQogICAgICAiaW5mb192bGMiOiAiVkxDIGNvbm5lY3RzIHRvIHRoZSBzdHJlYW1pbmcgc2VydmVyIg0KDQogICAgfSwNCiAgICAidWRweHkiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJVRFB4eSBhZGRyZXNzIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJUaGUgYWRkcmVzcyBvZiB5b3VyIFVEUHh5IHNlcnZlci4gSWYgc2V0LCBhbmQgdGhlIGNoYW5uZWwgVVJMcyBpbiB0aGUgbTN1IGlzIG11bHRpY2FzdCwgeFRlVmUgd2lsbCByZXdyaXRlIGl0IHNvIHRoYXQgaXQgaXMgYWNjZXNzZWQgdmlhIHRoZSBVRFB4eSBzZXJ2aWNlLiIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiaG9zdDpwb3J0Ig0KICAgIH0sDQogICAgImZmbXBlZ1BhdGgiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJGRm1wZWcgQmluYXJ5IFBhdGgiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIlBhdGggdG8gRkZtcGVnIGJpbmFyeS4iLA0KICAgICAgInBsYWNlaG9sZGVyIjogIi9wYXRoL3RvL2ZmbXBlZyINCiAgICB9LA0KICAgICJmZm1wZWdPcHRpb25zIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiRkZtcGVnIE9wdGlvbnMiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIkZGbXBlZyBvcHRpb25zLjxicj5Pbmx5IGNoYW5nZSBpZiB5b3Uga25vdyB3aGF0IHlvdSBhcmUgZG9pbmcuPGJyPkxlYXZlIGJsYW5rIHRvIHNldCBkZWZhdWx0IHNldHRpbmdzLiIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiTGVhdmUgYmxhbmsgdG8gc2V0IGRlZmF1bHQgc2V0dGluZ3MiDQogICAgfSwNCiAgICAidmxjUGF0aCI6DQogICAgew0KICAgICAgInRpdGxlIjogIlZMQyAvIENWTEMgQmluYXJ5IFBhdGgiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIlBhdGggdG8gVkxDIC8gQ1ZMQyBiaW5hcnkuIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIvcGF0aC90by9jdmxjIg0KICAgIH0sDQogICAgInZsY09wdGlvbnMiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJWTEMgLyBDVkxDIE9wdGlvbnMiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIlZMQyAvIENWTEMgb3B0aW9ucy48YnI+T25seSBjaGFuZ2UgaWYgeW91IGtub3cgd2hhdCB5b3UgYXJlIGRvaW5nLjxicj5MZWF2ZSBibGFuayB0byBzZXQgZGVmYXVsdCBzZXR0aW5ncy4iLA0KICAgICAgInBsYWNlaG9sZGVyIjogIkxlYXZlIGJsYW5rIHRvIHNldCBkZWZhdWx0IHNldHRpbmdzIg0KICAgIH0sDQogICAgImJ1ZmZlclNpemUiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJCdWZmZXIgU2l6ZSIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiQnVmZmVyIHNpemUgaW4gTUIuPGJyPk0zVTg6IElmIHRoZSBUUyBzZWdtZW50IHNtYWxsZXIgdGhlbiB0aGUgYnVmZmVyIHNpemUsIHRoZSBmaWxlIHNpemUgb2YgdGhlIHNlZ21lbnQgaXMgdXNlZC4iDQogICAgfSwNCiAgICAiYnVmZmVyVGltZW91dCI6DQogICAgew0KICAgICAgInRpdGxlIjogIlRpbWVvdXQgZm9yIG5ldyBjbGllbnQgY29ubmVjdGlvbnMiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIlRoZSB4VGVWZSBidWZmZXIgd2FpdHMgdW50aWwgbmV3IGNsaWVudCBjb25uZWN0aW9ucyBhcmUgZXN0YWJsaXNoZWQuIEhlbHBmdWwgZm9yIGZhc3QgY2hhbm5lbCBzd2l0Y2hpbmcuIFZhbHVlIGluIG1pbGxpc2Vjb25kcy4iLA0KICAgICAgInBsYWNlaG9sZGVyIjogIjEwMCINCiAgICB9LA0KICAgICJ1c2VyQWdlbnQiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJVc2VyIEFnZW50IiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJVc2VyIEFnZW50IGZvciBIVFRQIHJlcXVlc3RzLiBGb3IgZXZlcnkgSFRUUCBjb25uZWN0aW9uLCB0aGlzIHZhbHVlIGlzIHVzZWQgZm9yIHRoZSB1c2VyIGFnZW50LiBTaG91bGQgb25seSBiZSBjaGFuZ2VkIGlmIHhUZVZlIGlzIGJsb2NrZWQuIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJ4VGVWZSINCiAgICB9LA0KICAgICJiYWNrdXBQYXRoIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiTG9jYXRpb24gZm9yIGF1dG9tYXRpYyBiYWNrdXBzIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIvbW50L2RhdGEvYmFja3VwL3h0ZXZlLyIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiQmVmb3JlIGFueSB1cGRhdGUgb2YgdGhlIHByb3ZpZGVyIGRhdGEgYnkgdGhlIHNjaGVkdWxlLCB4VGVWZSBjcmVhdGVzIGEgYmFja3VwLiBUaGUgcGF0aCBmb3IgdGhlIGF1dG9tYXRpYyBiYWNrdXBzIGNhbiBiZSBjaGFuZ2VkLiB4VGVWZSByZXF1aXJlcyB3cml0ZSBwZXJtaXNzaW9uIGZvciB0aGlzIGZvbGRlci4iDQogICAgfSwNCiAgICAidGVtcFBhdGgiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJMb2NhdGlvbiBmb3IgdGhlIHRlbXBvcmFyeSBmaWxlcyIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiL3RtcC94dGV2ZS8iLA0KICAgICAgImRlc2NyaXB0aW9uIjogIkxvY2F0aW9uIGZvciB0aGUgYnVmZmVyIGZpbGVzLiINCiAgICB9LA0KICAgICJiYWNrdXBLZWVwIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiTnVtYmVyIG9mIGJhY2t1cHMgdG8ga2VlcCIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiTnVtYmVyIG9mIGJhY2t1cHMgdG8ga2VlcC4gT2xkZXIgYmFja3VwcyBhcmUgYXV0b21hdGljYWxseSBkZWxldGVkLiINCiAgICB9LA0KICAgICJhdXRoZW50aWNhdGlvbldFQiI6DQogICAgew0KICAgICAgInRpdGxlIjogIldFQiBBdXRoZW50aWNhdGlvbiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiQWNjZXNzIHRvIHRoZSB3ZWIgaW50ZXJmYWNlIG9ubHkgcG9zc2libGUgd2l0aCBjcmVkZW50aWFscy4iDQogICAgfSwNCiAgICAiYXV0aGVudGljYXRpb25QTVMiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJQTVMgQXV0aGVudGljYXRpb24iLA0KICAgICAgImRlc2NyaXB0aW9uIjogIlBsZXggcmVxdWVzdHMgYXJlIG9ubHkgcG9zc2libGUgd2l0aCBhdXRoZW50aWNhdGlvbi4gPGJyPjxiPldhcm5pbmchISE8L2I+IEFmdGVyIGFjdGl2YXRpbmcgdGhpcyBmdW5jdGlvbiB4VGVWZSBtdXN0IGJlIGRlbGV0ZSBpbiB0aGUgUE1TIERWUiBzZXR0aW5ncyBhbmQgc2V0IHVwIGFnYWluLiINCiAgICB9LA0KICAgICJhdXRoZW50aWNhdGlvbk0zVSI6DQogICAgew0KICAgICAgInRpdGxlIjogIk0zVSBBdXRoZW50aWNhdGlvbiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiRG93bmxvYWRpbmcgdGhlIHh0ZXZlLm0zdSBmaWxlIHZpYSBhbiBIVFRQIHJlcXVlc3QgaXMgb25seSBwb3NzaWJsZSB3aXRoIGF1dGhlbnRpY2F0aW9uLiINCiAgICB9LA0KICAgICJhdXRoZW50aWNhdGlvblhNTCI6DQogICAgew0KICAgICAgInRpdGxlIjogIlhNTCBBdXRoZW50aWNhdGlvbiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiRG93bmxvYWRpbmcgdGhlIHh0ZXZlLnhtbCBmaWxlIHZpYSBhbiBIVFRQIHJlcXVlc3QgaXMgb25seSBwb3NzaWJsZSB3aXRoIGF1dGhlbnRpY2F0aW9uIg0KICAgIH0sDQogICAgImF1dGhlbnRpY2F0aW9uQVBJIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiQVBJIEF1dGhlbnRpY2F0aW9uIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJBY2Nlc3MgdG8gdGhlIEFQSSBpbnRlcmZhY2UgaXMgb25seSBwb3NzaWJsZSB3aXRoIGF1dGhlbnRpY2F0aW9uLiINCiAgICB9DQogIH0sDQogICJ3aXphcmQiOg0KICB7DQogICAgImVwZ1NvdXJjZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIkVQRyBTb3VyY2UiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIlBNUzo8YnI+LSBVc2UgRVBHIGRhdGEgZnJvbSBQbGV4IG9yIEVtYnkgPGJyPjxicj5YRVBHOjxicj4tIFVzZSBvZiBvbmUgb3IgbW9yZSBYTUxUViBmaWxlczxicj4tIENoYW5uZWwgbWFuYWdlbWVudDxicj4tIE0zVSAvIFhNTFRWIGV4cG9ydCAoSFRUUCBsaW5rIGZvciBJUFRWIGFwcHMpIg0KICAgIH0sDQogICAgInR1bmVyIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiTnVtYmVyIG9mIHR1bmVycyIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiTnVtYmVyIG9mIHBhcmFsbGVsIGNvbm5lY3Rpb25zIHRoYXQgY2FuIGJlIGVzdGFibGlzaGVkIHRvIHRoZSBwcm92aWRlci48YnI+QXZhaWxhYmxlIGZvcjogUGxleCwgRW1ieSAoSERIUiksIE0zVSAod2l0aCBhY3RpdmUgYnVmZmVyKS48YnI+QWZ0ZXIgYSBjaGFuZ2UsIHhUZVZlIG11c3QgYmUgZGVsZXRlIGluIHRoZSBQbGV4IC8gRW1ieSBEVlIgc2V0dGluZ3MgYW5kIHNldCB1cCBhZ2Fpbi4iDQogICAgfSwNCiAgICAibTN1IjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiTTNVIFBsYXlsaXN0IiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJGaWxlIHBhdGggb3IgVVJMIG9mIHRoZSBNM1UiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIkxvY2FsIG9yIHJlbW90ZSBwbGF5bGlzdHMiDQogICAgfSwNCiAgICAieG1sdHYiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJYTUxUViBGaWxlIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJGaWxlIHBhdGggb3IgVVJMIG9mIHRoZSBYTUxUViIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiTG9jYWwgb3IgcmVtb3RlIFhNTFRWIGZpbGUiDQogICAgfQ0KICB9LA0KICAibG9naW4iOg0KICB7DQogICAgImZhaWxlZCI6ICJVc2VyIGF1dGhlbnRpY2F0aW9uIGZhaWxlZCIsDQogICAgImhlYWRsaW5lIjogIkxvZ2luIiwNCiAgICAidXNlcm5hbWUiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJVc2VybmFtZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiVXNlcm5hbWUiDQogICAgfSwNCiAgICAicGFzc3dvcmQiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJQYXNzd29yZCIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiUGFzc3dvcmQiDQogICAgfQ0KICB9LA0KICAiYWNjb3VudCI6DQogIHsNCiAgICAiZmFpbGVkIjogIlBhc3N3b3JkIGRvZXMgbm90IG1hdGNoIiwNCiAgICAiaGVhZGxpbmUiOiAiQ3JlYXRlIHVzZXIgYWNjb3VudCIsDQogICAgInVzZXJuYW1lIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiVXNlcm5hbWUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIlVzZXJuYW1lIg0KICAgIH0sDQogICAgInBhc3N3b3JkIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiUGFzc3dvcmQiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIlBhc3N3b3JkIg0KICAgIH0sDQogICAgImNvbmZpcm0iOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJDb25maXJtIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJDb25maXJtIg0KICAgIH0NCiAgfQ0KfQ==" diff --git a/src/xepg.go b/src/xepg.go index 6d319ac..b132a84 100644 --- a/src/xepg.go +++ b/src/xepg.go @@ -164,15 +164,12 @@ func createXEPGMapping() { var tmpMap = make(map[string]interface{}) - var friendlyDisplayName = func(channel Channel) (displayName string) { - var dn = channel.DisplayName - displayName = dn[0].Value - - switch len(dn) { + var getFriendlyName = func(channel Channel) (friendlyName string) { + switch len(channel.DisplayNames) { case 1: - displayName = dn[0].Value + friendlyName = channel.DisplayNames[0].Value default: - displayName = fmt.Sprintf("%s (%s)", dn[1].Value, dn[0].Value) + friendlyName = fmt.Sprintf("%s (%s)", channel.DisplayNames[1].Value, channel.DisplayNames[0].Value) } return @@ -209,7 +206,8 @@ func createXEPGMapping() { var channel = make(map[string]interface{}) channel["id"] = c.ID - channel["display-name"] = friendlyDisplayName(*c) + channel["display-names"] = c.DisplayNames + channel["friendly-name"] = getFriendlyName(*c) channel["icon"] = c.Icon.Src xmltvMap[c.ID] = channel @@ -240,12 +238,13 @@ func createXEPGMapping() { for _, i := range times { - var dummyChannel = make(map[string]string) - dummyChannel["display-name"] = i + " Minutes" + var dummyChannel = make(map[string]interface{}) + dummyChannel["friendly-name"] = i + " Minutes" + dummyChannel["display-names"] = []DisplayName{{Value: i + " Minutes"}} dummyChannel["id"] = i + "_Minutes" dummyChannel["icon"] = "" - dummy[dummyChannel["id"]] = dummyChannel + dummy[dummyChannel["id"].(string)] = dummyChannel } @@ -526,6 +525,7 @@ func mapping() (err error) { Data.XEPG.Channels[xepg] = xepgChannel + xmltvMapLoop: for file, xmltvChannels := range Data.XMLTV.Mapping { if channel, ok := xmltvChannels.(map[string]interface{})[tvgID]; ok { @@ -548,10 +548,42 @@ func mapping() (err error) { } + } else { + + // Search for the proper XEPG channel ID by comparing it's name with every alias in XML file + for _, xmltvChannel := range xmltvChannels.(map[string]interface{}) { + xmltvNames := xmltvChannel.(map[string]interface{})["display-names"].([]DisplayName) + + for _, xmltvName := range xmltvNames { + xmltvNameSolid := strings.ReplaceAll(xmltvName.Value, " ", "") + xepgNameSolid := strings.ReplaceAll(xepgChannel.Name, " ", "") + + if strings.EqualFold(xmltvNameSolid, xepgNameSolid) { + xepgChannel.XmltvFile = file + xepgChannel.XMapping = xmltvChannel.(map[string]interface{})["id"].(string) + // xepgChannel.XActive = true + + // If there is a Logo in the XMLTV file, this will be used. + // If not, then the Logo from the M3U file. + if icon, ok := xmltvChannel.(map[string]interface{})["icon"].(string); ok { + if len(icon) > 0 { + xepgChannel.TvgLogo = icon + } + } + + break xmltvMapLoop + } + + } + + } + } } + Data.XEPG.Channels[xepg] = xepgChannel + } } @@ -682,7 +714,7 @@ func createXMLTVFile() (err error) { var channel Channel channel.ID = xepgChannel.XChannelID channel.Icon = Icon{Src: imgc.Image.GetURL(xepgChannel.TvgLogo)} - channel.DisplayName = append(channel.DisplayName, DisplayName{Value: xepgChannel.XName}) + channel.DisplayNames = append(channel.DisplayNames, DisplayName{Value: xepgChannel.XName}) xepgXML.Channel = append(xepgXML.Channel, &channel) diff --git a/ts/menu_ts.ts b/ts/menu_ts.ts index dc15209..928bcec 100644 --- a/ts/menu_ts.ts +++ b/ts/menu_ts.ts @@ -1731,16 +1731,16 @@ class XMLTVFile { //var fileIDs:string[] = getObjKeys(SERVER["xepg"]["xmltvMap"]) let values = getObjKeys(SERVER["xepg"]["xmltvMap"][file]); let text = [] - let displayName:string + let friendlyName:string for (let i = 0; i < values.length; i++) { - if (SERVER["xepg"]["xmltvMap"][file][values[i]].hasOwnProperty('display-name') == true) { - displayName = SERVER["xepg"]["xmltvMap"][file][values[i]]["display-name"]; + if (SERVER["xepg"]["xmltvMap"][file][values[i]].hasOwnProperty('friendly-name') == true) { + friendlyName = SERVER["xepg"]["xmltvMap"][file][values[i]]["friendly-name"]; } else { - displayName = "-" + friendlyName = "-" } - text[i] = displayName + " (" + values[i] + ")"; + text[i] = friendlyName + " (" + values[i] + ")"; } text.unshift("-"); diff --git a/xteve.go b/xteve.go index 9f1514a..70156f1 100644 --- a/xteve.go +++ b/xteve.go @@ -39,7 +39,7 @@ var GitHub = GitHubStruct{Branch: "master", User: "SCP002", Repo: "xTeVe", Updat const Name = "xTeVe" // Version : Version, the Build Number is parsed in the main func -const Version = "2.2.4.0000" +const Version = "2.2.5.0000" // DBVersion : Database Version const DBVersion = "2.2.0" From fb272022f135a146a5d95557a86a538ff5bf57ed Mon Sep 17 00:00:00 2001 From: SCP002 Date: Mon, 11 Apr 2022 00:53:29 +0300 Subject: [PATCH 071/189] Clear XMLTV cache when it's no longer needed for a periodic use. Closes #2 . Will result in extra disk I/O when mapping gets updated by user but RAM useage in idle mode will drop significally. --- src/xepg.go | 18 ++++++++---------- 1 file changed, 8 insertions(+), 10 deletions(-) diff --git a/src/xepg.go b/src/xepg.go index b132a84..ae966f7 100644 --- a/src/xepg.go +++ b/src/xepg.go @@ -93,12 +93,7 @@ func buildXEPG(background bool) { System.ScanInProgress = 0 - // Clearing the Cache - /* - Data.Cache.XMLTV = make(map[string]XMLTV) - Data.Cache.XMLTV = nil - */ - runtime.GC() + clearXMLTVCache() }() @@ -138,10 +133,7 @@ func buildXEPG(background bool) { System.ScanInProgress = 0 - // Clearing the Cache - //Data.Cache.XMLTV = make(map[string]XMLTV) - //Data.Cache.XMLTV = nil - runtime.GC() + clearXMLTVCache() }() @@ -1106,3 +1098,9 @@ func cleanupXEPG() { return } + +// clearXMLTVCache empties XMLTV cache and runs a garbage collector +func clearXMLTVCache() { + Data.Cache.XMLTV = make(map[string]XMLTV) + runtime.GC() +} From b8307d54b39c2ff8811aa7d85817d9357903d81f Mon Sep 17 00:00:00 2001 From: SCP002 Date: Mon, 11 Apr 2022 13:38:14 +0300 Subject: [PATCH 072/189] Cosmetic changes in m3u parser package --- .../{test_list_1.m3u => test_playlist_1.m3u} | 3 +- src/internal/m3u-parser/xteve_m3uParser.go | 186 ------------------ src/internal/m3u-parser/xteve_m3u_parser.go | 186 ++++++++++++++++++ ...arser_test.go => xteve_m3u_parser_test.go} | 4 +- 4 files changed, 190 insertions(+), 189 deletions(-) rename src/internal/m3u-parser/{test_list_1.m3u => test_playlist_1.m3u} (89%) delete mode 100755 src/internal/m3u-parser/xteve_m3uParser.go create mode 100644 src/internal/m3u-parser/xteve_m3u_parser.go rename src/internal/m3u-parser/{m3u-parser_test.go => xteve_m3u_parser_test.go} (96%) diff --git a/src/internal/m3u-parser/test_list_1.m3u b/src/internal/m3u-parser/test_playlist_1.m3u similarity index 89% rename from src/internal/m3u-parser/test_list_1.m3u rename to src/internal/m3u-parser/test_playlist_1.m3u index 4566992..7790088 100644 --- a/src/internal/m3u-parser/test_list_1.m3u +++ b/src/internal/m3u-parser/test_playlist_1.m3u @@ -2,8 +2,9 @@ #EXTINF:0 channelID="1" tvg-chno="1" tvg-name="Channel.1" tvg-id="tvg.id.1" tvg-logo="https://example/logo.png" group-title="Group 1", Channel 1 http://example.com/stream/1 -#EXTINF:0 channelID="2" tvg-chno="2" tvg-name="Channel.2" tvg-id="tvg.id.2" tvg-logo="https://example/logo.png" group-title="Group 2",Channel 2 +#EXTINF:0 channelID="2" tvg-chno="2" tvg-name="Channel.2" tvg-id="tvg.id.2" tvg-logo="https://example/logo.png",Channel 2 #123 +#EXTGRP:Group 2 http://example.com/stream/2 #EXTINF:123, Sample artist - Sample title diff --git a/src/internal/m3u-parser/xteve_m3uParser.go b/src/internal/m3u-parser/xteve_m3uParser.go deleted file mode 100755 index db0c3be..0000000 --- a/src/internal/m3u-parser/xteve_m3uParser.go +++ /dev/null @@ -1,186 +0,0 @@ -package m3u - -import ( - "errors" - "fmt" - "log" - "net/url" - "regexp" - "strings" -) - -// MakeInterfaceFromM3U : -func MakeInterfaceFromM3U(byteStream []byte) (allChannels []interface{}, err error) { - - var content = string(byteStream) - var channelName string - var uuids []string - - var parseMetaData = func(channel string) (stream map[string]string) { - - stream = make(map[string]string) - var exceptForParameter = `[a-z-A-Z=]*(".*?")` - var exceptForChannelName = `,([^\n]*|,[^\r]*)` - - var lines = strings.Split(strings.Replace(channel, "\r\n", "\n", -1), "\n") - - // Remove lines with # and blank lines - for i := len(lines) - 1; i >= 0; i-- { - - if len(lines[i]) == 0 || lines[i][0:1] == "#" { - lines = append(lines[:i], lines[i+1:]...) - } - - } - - if len(lines) >= 2 { - - for _, line := range lines { - - _, err := url.ParseRequestURI(line) - - switch err { - - case nil: - stream["url"] = strings.Trim(line, "\r\n") - - default: - - var value string - // Parse all parameters - var p = regexp.MustCompile(exceptForParameter) - var streamParameter = p.FindAllString(line, -1) - - for _, p := range streamParameter { - - line = strings.Replace(line, p, "", 1) - - p = strings.Replace(p, `"`, "", -1) - var parameter = strings.SplitN(p, "=", 2) - - if len(parameter) == 2 { - - // Set TVG Key as lowercase - switch strings.Contains(parameter[0], "tvg") { - - case true: - stream[strings.ToLower(parameter[0])] = parameter[1] - case false: - stream[parameter[0]] = parameter[1] - - } - - // URL's are not passed to the filter function - if !strings.Contains(parameter[1], "://") && len(parameter[1]) > 0 { - value = value + parameter[1] + " " - } - - } - - } - - // Parse channel names - n := regexp.MustCompile(exceptForChannelName) - var name = n.FindAllString(line, 1) - - if len(name) > 0 { - channelName = name[0] - channelName = strings.Replace(channelName, `,`, "", 1) - channelName = strings.TrimRight(channelName, "\r\n") - channelName = strings.TrimRight(channelName, " ") - } - - if len(channelName) == 0 { - - if v, ok := stream["tvg-name"]; ok { - channelName = v - } - - } - - channelName = strings.TrimRight(channelName, " ") - - // Channels without names are skipped - if len(channelName) == 0 { - return - } - - stream["name"] = channelName - value = value + channelName - - stream["_values"] = value - - } - - } - - } - - // Search for a unique ID in the stream - for key, value := range stream { - - if !strings.Contains(strings.ToLower(key), "tvg-id") { - - if strings.Contains(strings.ToLower(key), "id") { - - if indexOfString(value, uuids) != -1 { - log.Println(fmt.Sprintf("Channel: %s - %s = %s ", stream["name"], key, value)) - break - } - - uuids = append(uuids, value) - - stream["_uuid.key"] = key - stream["_uuid.value"] = value - break - - } - - } - - } - - return - } - - //fmt.Println(content) - if strings.Contains(content, "#EXT-X-TARGETDURATION") || strings.Contains(content, "#EXT-X-MEDIA-SEQUENCE") { - err = errors.New("Invalid M3U file, an extended M3U file is required.") - return - } - - if strings.Contains(content, "#EXTM3U") { - - var channels = strings.Split(content, "#EXTINF") - - channels = append(channels[:0], channels[1:]...) - - for _, channel := range channels { - - var stream = parseMetaData(channel) - - if len(stream) > 0 && stream != nil { - allChannels = append(allChannels, stream) - } - - } - - } else { - - err = errors.New("Invalid M3U file, an extended M3U file is required.") - - } - - return -} - -func indexOfString(element string, data []string) int { - - for k, v := range data { - if element == v { - return k - } - } - - return -1 -} diff --git a/src/internal/m3u-parser/xteve_m3u_parser.go b/src/internal/m3u-parser/xteve_m3u_parser.go new file mode 100644 index 0000000..85a0322 --- /dev/null +++ b/src/internal/m3u-parser/xteve_m3u_parser.go @@ -0,0 +1,186 @@ +package m3u + +import ( + "errors" + "fmt" + "log" + "net/url" + "regexp" + "strings" +) + +// MakeInterfaceFromM3U : +func MakeInterfaceFromM3U(byteStream []byte) (allChannels []interface{}, err error) { + + var content = string(byteStream) + var channelName string + var uuids []string + + var parseMetaData = func(channel string) (stream map[string]string) { + + stream = make(map[string]string) + var exceptForParameter = `[a-z-A-Z=]*(".*?")` + var exceptForChannelName = `,([^\n]*|,[^\r]*)` + + var lines = strings.Split(strings.Replace(channel, "\r\n", "\n", -1), "\n") + + // Remove lines with # and blank lines + for i := len(lines) - 1; i >= 0; i-- { + + if len(lines[i]) == 0 || lines[i][0:1] == "#" { + lines = append(lines[:i], lines[i+1:]...) + } + + } + + if len(lines) >= 2 { + + for _, line := range lines { + + _, err := url.ParseRequestURI(line) + + switch err { + + case nil: + stream["url"] = strings.Trim(line, "\r\n") + + default: + + var value string + // Parse all parameters + var p = regexp.MustCompile(exceptForParameter) + var streamParameter = p.FindAllString(line, -1) + + for _, p := range streamParameter { + + line = strings.Replace(line, p, "", 1) + + p = strings.Replace(p, `"`, "", -1) + var parameter = strings.SplitN(p, "=", 2) + + if len(parameter) == 2 { + + // Set TVG Key as lowercase + switch strings.Contains(parameter[0], "tvg") { + + case true: + stream[strings.ToLower(parameter[0])] = parameter[1] + case false: + stream[parameter[0]] = parameter[1] + + } + + // URL's are not passed to the filter function + if !strings.Contains(parameter[1], "://") && len(parameter[1]) > 0 { + value = value + parameter[1] + " " + } + + } + + } + + // Parse channel names + n := regexp.MustCompile(exceptForChannelName) + var name = n.FindAllString(line, 1) + + if len(name) > 0 { + channelName = name[0] + channelName = strings.Replace(channelName, `,`, "", 1) + channelName = strings.TrimRight(channelName, "\r\n") + channelName = strings.TrimRight(channelName, " ") + } + + if len(channelName) == 0 { + + if v, ok := stream["tvg-name"]; ok { + channelName = v + } + + } + + channelName = strings.TrimRight(channelName, " ") + + // Channels without names are skipped + if len(channelName) == 0 { + return + } + + stream["name"] = channelName + value = value + channelName + + stream["_values"] = value + + } + + } + + } + + // Search for a unique ID in the stream + for key, value := range stream { + + if !strings.Contains(strings.ToLower(key), "tvg-id") { + + if strings.Contains(strings.ToLower(key), "id") { + + if indexOfString(value, uuids) != -1 { + log.Println(fmt.Sprintf("Channel: %s - %s = %s ", stream["name"], key, value)) + break + } + + uuids = append(uuids, value) + + stream["_uuid.key"] = key + stream["_uuid.value"] = value + break + + } + + } + + } + + return + } + + //fmt.Println(content) + if strings.Contains(content, "#EXT-X-TARGETDURATION") || strings.Contains(content, "#EXT-X-MEDIA-SEQUENCE") { + err = errors.New("Invalid M3U file, an extended M3U file is required.") + return + } + + if strings.Contains(content, "#EXTM3U") { + + var channels = strings.Split(content, "#EXTINF") + + channels = append(channels[:0], channels[1:]...) + + for _, channel := range channels { + + var stream = parseMetaData(channel) + + if len(stream) > 0 && stream != nil { + allChannels = append(allChannels, stream) + } + + } + + } else { + + err = errors.New("Invalid M3U file, an extended M3U file is required.") + + } + + return +} + +func indexOfString(element string, data []string) int { + + for k, v := range data { + if element == v { + return k + } + } + + return -1 +} diff --git a/src/internal/m3u-parser/m3u-parser_test.go b/src/internal/m3u-parser/xteve_m3u_parser_test.go similarity index 96% rename from src/internal/m3u-parser/m3u-parser_test.go rename to src/internal/m3u-parser/xteve_m3u_parser_test.go index fd44d8f..c476383 100644 --- a/src/internal/m3u-parser/m3u-parser_test.go +++ b/src/internal/m3u-parser/xteve_m3u_parser_test.go @@ -20,9 +20,9 @@ type M3UStream struct { UUIDValue string `json:"_uuid.value,omitempty"` } -func TestStream1(t *testing.T) { +func TestMakeInterfaceFromM3U(t *testing.T) { - var file = "test_list_1.m3u" + var file = "test_playlist_1.m3u" var content, err = ioutil.ReadFile(file) if err != nil { t.Error(err) From 50c74c72db575f50273b613dffc278af29a21b89 Mon Sep 17 00:00:00 2001 From: SCP002 Date: Mon, 11 Apr 2022 17:12:09 +0300 Subject: [PATCH 073/189] Add tests for MakeInterfaceFromM3U() --- go.mod | 5 + go.sum | 11 ++ src/internal/m3u-parser/test_playlist_1.m3u | 12 +- .../m3u-parser/xteve_m3u_parser_test.go | 116 +++++++++--------- 4 files changed, 81 insertions(+), 63 deletions(-) diff --git a/go.mod b/go.mod index e3b7333..8458d17 100644 --- a/go.mod +++ b/go.mod @@ -9,6 +9,11 @@ require ( ) require ( + github.com/davecgh/go-spew v1.1.0 // indirect + github.com/pmezard/go-difflib v1.0.0 // indirect + github.com/stretchr/objx v0.1.0 // indirect + github.com/stretchr/testify v1.7.1 // indirect golang.org/x/net v0.0.0-20220403103023-749bd193bc2b // indirect golang.org/x/sys v0.0.0-20220405210540-1e041c57c461 // indirect + gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c // indirect ) diff --git a/go.sum b/go.sum index 77a78f2..11b34f7 100644 --- a/go.sum +++ b/go.sum @@ -1,9 +1,17 @@ +github.com/davecgh/go-spew v1.1.0 h1:ZDRjVQ15GmhC3fiQ8ni8+OwkZQO4DARzQgrnXU1Liz8= +github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/gorilla/websocket v1.5.0 h1:PPwGk2jz7EePpoHN/+ClbZu8SPxiqlu12wZP/3sWmnc= github.com/gorilla/websocket v1.5.0/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE= github.com/kardianos/osext v0.0.0-20190222173326-2bc1f35cddc0 h1:iQTw/8FWTuc7uiaSepXwyf3o52HaUYcV+Tu66S3F5GA= github.com/kardianos/osext v0.0.0-20190222173326-2bc1f35cddc0/go.mod h1:1NbS8ALrpOvjt0rHPNLyCIeMtbizbir8U//inJ+zuB8= github.com/koron/go-ssdp v0.0.2 h1:fL3wAoyT6hXHQlORyXUW4Q23kkQpJRgEAYcZB5BR71o= github.com/koron/go-ssdp v0.0.2/go.mod h1:XoLfkAiA2KeZsYh4DbHxD7h3nR2AZNqVQOa+LJuqPYs= +github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= +github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/stretchr/objx v0.1.0 h1:4G4v2dO3VZwixGIRoQ5Lfboy6nUhCyYzaqnIAPPhYs4= +github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= +github.com/stretchr/testify v1.7.1 h1:5TQK59W5E3v0r2duFAb7P95B6hEeOyEnHRa8MjYSMTY= +github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= @@ -16,3 +24,6 @@ golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20220405210540-1e041c57c461 h1:kHVeDEnfKn3T238CvrUcz6KeEsFHVaKh4kMTt6Wsysg= golang.org/x/sys v0.0.0-20220405210540-1e041c57c461/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= +gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c h1:dUUwHk2QECo/6vqA44rthZ8ie2QXMNeKRTHCNY2nXvo= +gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= diff --git a/src/internal/m3u-parser/test_playlist_1.m3u b/src/internal/m3u-parser/test_playlist_1.m3u index 7790088..5b3de7c 100644 --- a/src/internal/m3u-parser/test_playlist_1.m3u +++ b/src/internal/m3u-parser/test_playlist_1.m3u @@ -2,16 +2,14 @@ #EXTINF:0 channelID="1" tvg-chno="1" tvg-name="Channel.1" tvg-id="tvg.id.1" tvg-logo="https://example/logo.png" group-title="Group 1", Channel 1 http://example.com/stream/1 -#EXTINF:0 channelID="2" tvg-chno="2" tvg-name="Channel.2" tvg-id="tvg.id.2" tvg-logo="https://example/logo.png",Channel 2 +#EXTINF:0 channelID="2" tvg-chno="2" tvg-name="Channel.2" tvg-id="tvg.id.2" tvg-logo="https://example/logo/2.png",Channel 2 +#EXTGRP: Group 2 #123 -#EXTGRP:Group 2 http://example.com/stream/2 -#EXTINF:123, Sample artist - Sample title +#EXTINF:123,,:It's - a difficult name | http://example.com/stream/3 -#EXTINF:321,Example Artist - Example title +#EXTINF:-1 tvg-id="tvg.id.4" tvg-name="Channel.4" tvg-logo="https://example/logo/4.png" tvg-chno="4" channel-id="4" tvg-shift="-5" group-title="Group 4",Channel 4 +#EXTGRP:Group 99 http://example.com/stream/4 - -#EXTINF:-1 tvg-id="tvg.id.3" tvg-name="Channel.3" tvg-logo="https://example/logo.png" tvg-chno="3" channel-id="3" tvg-shift="-3" group-title="Group 3",Channel 3 West -http://example.com/stream/5 diff --git a/src/internal/m3u-parser/xteve_m3u_parser_test.go b/src/internal/m3u-parser/xteve_m3u_parser_test.go index c476383..3fffcb8 100644 --- a/src/internal/m3u-parser/xteve_m3u_parser_test.go +++ b/src/internal/m3u-parser/xteve_m3u_parser_test.go @@ -2,13 +2,14 @@ package m3u import ( "encoding/json" - "fmt" "io/ioutil" - "log" "testing" + + "github.com/stretchr/testify/assert" ) type M3UStream struct { + ExtGrp string `json:"ext-grp,required"` GroupTitle string `json:"group-title,required"` Name string `json:"name,required"` TvgID string `json:"tvg-id,required"` @@ -22,65 +23,68 @@ type M3UStream struct { func TestMakeInterfaceFromM3U(t *testing.T) { - var file = "test_playlist_1.m3u" - var content, err = ioutil.ReadFile(file) - if err != nil { - t.Error(err) - return - } - - streams, err := MakeInterfaceFromM3U(content) - - if err != nil { - t.Error(err) - } - - err = checkStream(streams) - if err != nil { - t.Error(err) - } - - fmt.Println("Streams:", len(streams)) - t.Log(streams) - -} - -func checkStream(streamInterface []interface{}) (err error) { - - for i, s := range streamInterface { - - var stream = s.(map[string]string) - var m3uStream M3UStream - - jsonString, err := json.MarshalIndent(stream, "", " ") - - if err == nil { - - err = json.Unmarshal(jsonString, &m3uStream) - if err == nil { + // Read playlist + file := "test_playlist_1.m3u" + content, err := ioutil.ReadFile(file) + assert.NoError(t, err, "Should read playlist") - log.Print(fmt.Sprintf("Stream: %d", i)) - log.Print(fmt.Sprintf("Name*: %s", m3uStream.Name)) - log.Print(fmt.Sprintf("URL*: %s", m3uStream.URL)) - log.Print(fmt.Sprintf("tvg-name: %s", m3uStream.TvgName)) - log.Print(fmt.Sprintf("tvg-id**: %s", m3uStream.TvgID)) - log.Print(fmt.Sprintf("tvg-logo: %s", m3uStream.TvgLogo)) - log.Print(fmt.Sprintf("tvg-shift: %s", m3uStream.TvgShift)) - log.Print(fmt.Sprintf("group-title**: %s", m3uStream.GroupTitle)) + // Parse playlist into []interface{} + rawStreams, err := MakeInterfaceFromM3U(content) + assert.NoError(t, err, "Should parse playlist") - if len(m3uStream.UUIDKey) > 0 { - log.Print(fmt.Sprintf("UUID key***: %s", m3uStream.UUIDKey)) - log.Print(fmt.Sprintf("UUID value: %s", m3uStream.UUIDValue)) - } else { - log.Print(fmt.Sprintf("UUID key: false")) - } + // Build []M3UStream from []interface{} + streams := []M3UStream{} - } + for _, rawStream := range rawStreams { + jsonString, err := json.MarshalIndent(rawStream, "", " ") + assert.NoError(t, err, "Should convert from interface") - } + stream := M3UStream{} + err = json.Unmarshal(jsonString, &stream) + assert.NoError(t, err, "Should convert from interface") - log.Println(fmt.Sprintf("- - - - - (*: Required) | (**: Nice to have) | (***: Love it) - - - - -")) + streams = append(streams, stream) } - return + assert.Len(t, streams, 4, "Should be 4 streams in total") + + // Test stream 1 + assert.Equal(t, "Channel 1", streams[0].Name, "Names should match") + assert.Equal(t, "Group 1", streams[0].GroupTitle, "Groups should match") + assert.Empty(t, streams[0].ExtGrp, "Should not have EXTGRP attribute") + assert.Equal(t, "http://example.com/stream/1", streams[0].URL, "URL's should match") + assert.Equal(t, "Channel.1", streams[0].TvgName, "TVG names should match") + assert.Equal(t, "tvg.id.1", streams[0].TvgID, "TVG ID's should match") + assert.Equal(t, "https://example/logo.png", streams[0].TvgLogo, "TVG logos should match") + assert.Empty(t, streams[0].TvgShift, "Should not have tvg-shift tag") + + // Test stream 2 + assert.Equal(t, "Channel 2", streams[1].Name, "Names should match") + assert.Empty(t, streams[1].GroupTitle, "Should not have group-title tag") + assert.Equal(t, "Group 2", streams[1].ExtGrp, "Groups should match") + assert.Equal(t, "http://example.com/stream/2", streams[1].URL, "URL's should match") + assert.Equal(t, "Channel.2", streams[1].TvgName, "TVG names should match") + assert.Equal(t, "tvg.id.2", streams[1].TvgID, "TVG ID's should match") + assert.Equal(t, "https://example/logo/2.png", streams[1].TvgLogo, "TVG logos should match") + assert.Empty(t, streams[1].TvgShift, "Should not have tvg-shift tag") + + // Test stream 3 + assert.Equal(t, ",:It's - a difficult name |", streams[2].Name, "Names should match") + assert.Empty(t, streams[2].GroupTitle, "Should not have group-title tag") + assert.Equal(t, "Group 2", streams[2].ExtGrp, "Should have EXTGRP inherited from previous stream") + assert.Equal(t, "http://example.com/stream/3", streams[2].URL, "URL's should match") + assert.Empty(t, streams[2].TvgName, "Should not have tvg-name tag") + assert.Empty(t, streams[2].TvgID, "Should not have tvg-id tag") + assert.Empty(t, streams[2].TvgLogo, "Should not have tvg-logo tag") + assert.Empty(t, streams[2].TvgShift, "Should not have tvg-shift tag") + + // Test stream 4 + assert.Equal(t, "Channel 4", streams[3].Name, "Names should match") + assert.Equal(t, "Group 4", streams[3].GroupTitle, "Groups should match") + assert.Equal(t, "Group 99", streams[3].ExtGrp, "Groups should match") + assert.Equal(t, "http://example.com/stream/4", streams[3].URL, "URL's should match") + assert.Equal(t, "Channel.4", streams[3].TvgName, "TVG names should match") + assert.Equal(t, "tvg.id.4", streams[3].TvgID, "TVG ID's should match") + assert.Equal(t, "https://example/logo/4.png", streams[3].TvgLogo, "TVG logos should match") + assert.Equal(t, "-5", streams[3].TvgShift, "TVG shifts should match") } From 4769c358564a9f392f41b65b3083f509233bf70a Mon Sep 17 00:00:00 2001 From: SCP002 Date: Mon, 11 Apr 2022 17:30:49 +0300 Subject: [PATCH 074/189] Make parser trim space prefix from channel names. Closes #21 --- src/internal/m3u-parser/test_playlist_1.m3u | 2 +- src/internal/m3u-parser/xteve_m3u_parser.go | 5 ++--- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/src/internal/m3u-parser/test_playlist_1.m3u b/src/internal/m3u-parser/test_playlist_1.m3u index 5b3de7c..4ba02c0 100644 --- a/src/internal/m3u-parser/test_playlist_1.m3u +++ b/src/internal/m3u-parser/test_playlist_1.m3u @@ -2,7 +2,7 @@ #EXTINF:0 channelID="1" tvg-chno="1" tvg-name="Channel.1" tvg-id="tvg.id.1" tvg-logo="https://example/logo.png" group-title="Group 1", Channel 1 http://example.com/stream/1 -#EXTINF:0 channelID="2" tvg-chno="2" tvg-name="Channel.2" tvg-id="tvg.id.2" tvg-logo="https://example/logo/2.png",Channel 2 +#EXTINF:0 channelID="2" tvg-chno="2" tvg-name="Channel.2" tvg-id="tvg.id.2" tvg-logo="https://example/logo/2.png",Channel 2 #EXTGRP: Group 2 #123 http://example.com/stream/2 diff --git a/src/internal/m3u-parser/xteve_m3u_parser.go b/src/internal/m3u-parser/xteve_m3u_parser.go index 85a0322..aeb0602 100644 --- a/src/internal/m3u-parser/xteve_m3u_parser.go +++ b/src/internal/m3u-parser/xteve_m3u_parser.go @@ -87,7 +87,7 @@ func MakeInterfaceFromM3U(byteStream []byte) (allChannels []interface{}, err err channelName = name[0] channelName = strings.Replace(channelName, `,`, "", 1) channelName = strings.TrimRight(channelName, "\r\n") - channelName = strings.TrimRight(channelName, " ") + channelName = strings.Trim(channelName, " ") } if len(channelName) == 0 { @@ -98,7 +98,7 @@ func MakeInterfaceFromM3U(byteStream []byte) (allChannels []interface{}, err err } - channelName = strings.TrimRight(channelName, " ") + channelName = strings.Trim(channelName, " ") // Channels without names are skipped if len(channelName) == 0 { @@ -143,7 +143,6 @@ func MakeInterfaceFromM3U(byteStream []byte) (allChannels []interface{}, err err return } - //fmt.Println(content) if strings.Contains(content, "#EXT-X-TARGETDURATION") || strings.Contains(content, "#EXT-X-MEDIA-SEQUENCE") { err = errors.New("Invalid M3U file, an extended M3U file is required.") return From 5dedbf7956a138eae4913dc6c947b7be15801010 Mon Sep 17 00:00:00 2001 From: SCP002 Date: Mon, 11 Apr 2022 20:32:25 +0300 Subject: [PATCH 075/189] Use "github.com/samber/lo" in m3u parser, minor parser preformance improvements --- src/internal/m3u-parser/xteve_m3u_parser.go | 25 ++++++--------------- 1 file changed, 7 insertions(+), 18 deletions(-) diff --git a/src/internal/m3u-parser/xteve_m3u_parser.go b/src/internal/m3u-parser/xteve_m3u_parser.go index aeb0602..8b2368f 100644 --- a/src/internal/m3u-parser/xteve_m3u_parser.go +++ b/src/internal/m3u-parser/xteve_m3u_parser.go @@ -7,8 +7,12 @@ import ( "net/url" "regexp" "strings" + "github.com/samber/lo" ) +var exceptForParameterRx = regexp.MustCompile(`[a-z-A-Z=]*(".*?")`) +var exceptForChannelNameRx = regexp.MustCompile(`,([^\n]*|,[^\r]*)`) + // MakeInterfaceFromM3U : func MakeInterfaceFromM3U(byteStream []byte) (allChannels []interface{}, err error) { @@ -19,8 +23,6 @@ func MakeInterfaceFromM3U(byteStream []byte) (allChannels []interface{}, err err var parseMetaData = func(channel string) (stream map[string]string) { stream = make(map[string]string) - var exceptForParameter = `[a-z-A-Z=]*(".*?")` - var exceptForChannelName = `,([^\n]*|,[^\r]*)` var lines = strings.Split(strings.Replace(channel, "\r\n", "\n", -1), "\n") @@ -48,8 +50,7 @@ func MakeInterfaceFromM3U(byteStream []byte) (allChannels []interface{}, err err var value string // Parse all parameters - var p = regexp.MustCompile(exceptForParameter) - var streamParameter = p.FindAllString(line, -1) + var streamParameter = exceptForParameterRx.FindAllString(line, -1) for _, p := range streamParameter { @@ -80,8 +81,7 @@ func MakeInterfaceFromM3U(byteStream []byte) (allChannels []interface{}, err err } // Parse channel names - n := regexp.MustCompile(exceptForChannelName) - var name = n.FindAllString(line, 1) + var name = exceptForChannelNameRx.FindAllString(line, 1) if len(name) > 0 { channelName = name[0] @@ -123,7 +123,7 @@ func MakeInterfaceFromM3U(byteStream []byte) (allChannels []interface{}, err err if strings.Contains(strings.ToLower(key), "id") { - if indexOfString(value, uuids) != -1 { + if lo.IndexOf(uuids, value) != -1 { log.Println(fmt.Sprintf("Channel: %s - %s = %s ", stream["name"], key, value)) break } @@ -172,14 +172,3 @@ func MakeInterfaceFromM3U(byteStream []byte) (allChannels []interface{}, err err return } - -func indexOfString(element string, data []string) int { - - for k, v := range data { - if element == v { - return k - } - } - - return -1 -} From 2ec9ae008ec28d7a5bb5be78c3fd9ee8065d12a3 Mon Sep 17 00:00:00 2001 From: SCP002 Date: Mon, 11 Apr 2022 20:32:33 +0300 Subject: [PATCH 076/189] Update dependencies --- README.md | 8 ++++++-- go.mod | 9 +++++---- go.sum | 15 ++++++++++++--- 3 files changed, 23 insertions(+), 9 deletions(-) diff --git a/README.md b/README.md index ca66a07..23c6af0 100644 --- a/README.md +++ b/README.md @@ -94,8 +94,10 @@ When the branch is changed, an update is only performed if there is a new versio ### Dependencies * [go-ssdp](https://github.com/koron/go-ssdp) -* [websocket](https://github.com/gorilla/websocket) +* [lo](https://github.com/samber/lo) * [osext](https://github.com/kardianos/osext) +* [testify](https://github.com/stretchr/testify) +* [websocket](https://github.com/gorilla/websocket) ### Build @@ -111,8 +113,10 @@ Or ```sh go get github.com/koron/go-ssdp -go get github.com/gorilla/websocket +go get github.com/samber/lo go get github.com/kardianos/osext +go get github.com/stretchr/testify +go get github.com/gorilla/websocket ``` #### 3. Update dependencies (optional) diff --git a/go.mod b/go.mod index 8458d17..80be647 100644 --- a/go.mod +++ b/go.mod @@ -6,14 +6,15 @@ require ( github.com/gorilla/websocket v1.5.0 github.com/kardianos/osext v0.0.0-20190222173326-2bc1f35cddc0 github.com/koron/go-ssdp v0.0.2 + github.com/samber/lo v1.11.0 + github.com/stretchr/testify v1.7.1 ) require ( - github.com/davecgh/go-spew v1.1.0 // indirect + github.com/davecgh/go-spew v1.1.1 // indirect github.com/pmezard/go-difflib v1.0.0 // indirect - github.com/stretchr/objx v0.1.0 // indirect - github.com/stretchr/testify v1.7.1 // indirect + golang.org/x/exp v0.0.0-20220303212507-bbda1eaf7a17 // indirect golang.org/x/net v0.0.0-20220403103023-749bd193bc2b // indirect golang.org/x/sys v0.0.0-20220405210540-1e041c57c461 // indirect - gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c // indirect + gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b // indirect ) diff --git a/go.sum b/go.sum index 11b34f7..5da5a85 100644 --- a/go.sum +++ b/go.sum @@ -1,19 +1,26 @@ -github.com/davecgh/go-spew v1.1.0 h1:ZDRjVQ15GmhC3fiQ8ni8+OwkZQO4DARzQgrnXU1Liz8= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= +github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/gorilla/websocket v1.5.0 h1:PPwGk2jz7EePpoHN/+ClbZu8SPxiqlu12wZP/3sWmnc= github.com/gorilla/websocket v1.5.0/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE= github.com/kardianos/osext v0.0.0-20190222173326-2bc1f35cddc0 h1:iQTw/8FWTuc7uiaSepXwyf3o52HaUYcV+Tu66S3F5GA= github.com/kardianos/osext v0.0.0-20190222173326-2bc1f35cddc0/go.mod h1:1NbS8ALrpOvjt0rHPNLyCIeMtbizbir8U//inJ+zuB8= github.com/koron/go-ssdp v0.0.2 h1:fL3wAoyT6hXHQlORyXUW4Q23kkQpJRgEAYcZB5BR71o= github.com/koron/go-ssdp v0.0.2/go.mod h1:XoLfkAiA2KeZsYh4DbHxD7h3nR2AZNqVQOa+LJuqPYs= +github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= +github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e h1:fD57ERR4JtEqsWbfPhv4DMiApHyliiK5xCTNVSPiaAs= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= -github.com/stretchr/objx v0.1.0 h1:4G4v2dO3VZwixGIRoQ5Lfboy6nUhCyYzaqnIAPPhYs4= +github.com/samber/lo v1.11.0 h1:JfeYozXL1xfkhRUFOfH13ociyeiLSC/GRJjGKI668xM= +github.com/samber/lo v1.11.0/go.mod h1:2I7tgIv8Q1SG2xEIkRq0F2i2zgxVpnyPOP0d3Gj2r+A= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/testify v1.7.1 h1:5TQK59W5E3v0r2duFAb7P95B6hEeOyEnHRa8MjYSMTY= github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= +github.com/thoas/go-funk v0.9.1 h1:O549iLZqPpTUQ10ykd26sZhzD+rmR5pWhuElrhbC20M= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= +golang.org/x/exp v0.0.0-20220303212507-bbda1eaf7a17 h1:3MTrJm4PyNL9NBqvYDSj3DHl46qQakyfqfWo4jgfaEM= +golang.org/x/exp v0.0.0-20220303212507-bbda1eaf7a17/go.mod h1:lgLbSvA5ygNOMpwM/9anMpWVlVJ7Z+cHWq/eFuinpGE= golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20200904194848-62affa334b73/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= golang.org/x/net v0.0.0-20220403103023-749bd193bc2b h1:vI32FkLJNAWtGD4BwkThwEy6XS7ZLLMHkSkYfF8M0W0= @@ -25,5 +32,7 @@ golang.org/x/sys v0.0.0-20220405210540-1e041c57c461 h1:kHVeDEnfKn3T238CvrUcz6KeE golang.org/x/sys v0.0.0-20220405210540-1e041c57c461/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= -gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c h1:dUUwHk2QECo/6vqA44rthZ8ie2QXMNeKRTHCNY2nXvo= +gopkg.in/check.v1 v1.0.0-20200227125254-8fa46927fb4f h1:BLraFXnmrev5lT+xlilqcH8XK9/i0At2xKjWk4p6zsU= gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= +gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b h1:h8qDotaEPuJATrMmW04NCwg7v22aHH28wwpauUhK9Oo= +gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= From ce09dfc1bce91180a2cadbe70a8e5ddf7998caa7 Mon Sep 17 00:00:00 2001 From: SCP002 Date: Mon, 11 Apr 2022 22:39:12 +0300 Subject: [PATCH 077/189] Implement EXTGRP parsing in MakeInterfaceFromM3U() --- src/internal/m3u-parser/xteve_m3u_parser.go | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/src/internal/m3u-parser/xteve_m3u_parser.go b/src/internal/m3u-parser/xteve_m3u_parser.go index 8b2368f..cb0911f 100644 --- a/src/internal/m3u-parser/xteve_m3u_parser.go +++ b/src/internal/m3u-parser/xteve_m3u_parser.go @@ -12,6 +12,7 @@ import ( var exceptForParameterRx = regexp.MustCompile(`[a-z-A-Z=]*(".*?")`) var exceptForChannelNameRx = regexp.MustCompile(`,([^\n]*|,[^\r]*)`) +var extGrpRx = regexp.MustCompile(`#EXTGRP: *(.*)`) // MakeInterfaceFromM3U : func MakeInterfaceFromM3U(byteStream []byte) (allChannels []interface{}, err error) { @@ -154,10 +155,20 @@ func MakeInterfaceFromM3U(byteStream []byte) (allChannels []interface{}, err err channels = append(channels[:0], channels[1:]...) + var lastExtGrp string + for _, channel := range channels { var stream = parseMetaData(channel) + if extGrp := extGrpRx.FindStringSubmatch(channel); len(extGrp) > 1 { + lastExtGrp = strings.Trim(extGrp[1], "\r\n") + } + + if lastExtGrp != "" { + stream["ext-grp"] = lastExtGrp + } + if len(stream) > 0 && stream != nil { allChannels = append(allChannels, stream) } From 3704f9a3a0a913f257d954a149854d93ae165909 Mon Sep 17 00:00:00 2001 From: SCP002 Date: Mon, 11 Apr 2022 23:36:34 +0300 Subject: [PATCH 078/189] Remove separate "ext-grp" field, use "group-title" instead. Put group priority logic into MakeInterfaceFromM3U() --- src/internal/m3u-parser/xteve_m3u_parser.go | 6 ++++-- src/internal/m3u-parser/xteve_m3u_parser_test.go | 11 +++-------- 2 files changed, 7 insertions(+), 10 deletions(-) diff --git a/src/internal/m3u-parser/xteve_m3u_parser.go b/src/internal/m3u-parser/xteve_m3u_parser.go index cb0911f..60f93c9 100644 --- a/src/internal/m3u-parser/xteve_m3u_parser.go +++ b/src/internal/m3u-parser/xteve_m3u_parser.go @@ -162,11 +162,13 @@ func MakeInterfaceFromM3U(byteStream []byte) (allChannels []interface{}, err err var stream = parseMetaData(channel) if extGrp := extGrpRx.FindStringSubmatch(channel); len(extGrp) > 1 { + // EXTGRP applies to all subseqent channels until overriden lastExtGrp = strings.Trim(extGrp[1], "\r\n") } - if lastExtGrp != "" { - stream["ext-grp"] = lastExtGrp + // group-title has priority over EXTGRP + if stream["group-title"] == "" && lastExtGrp != "" { + stream["group-title"] = lastExtGrp } if len(stream) > 0 && stream != nil { diff --git a/src/internal/m3u-parser/xteve_m3u_parser_test.go b/src/internal/m3u-parser/xteve_m3u_parser_test.go index 3fffcb8..8ec353f 100644 --- a/src/internal/m3u-parser/xteve_m3u_parser_test.go +++ b/src/internal/m3u-parser/xteve_m3u_parser_test.go @@ -9,7 +9,6 @@ import ( ) type M3UStream struct { - ExtGrp string `json:"ext-grp,required"` GroupTitle string `json:"group-title,required"` Name string `json:"name,required"` TvgID string `json:"tvg-id,required"` @@ -51,7 +50,6 @@ func TestMakeInterfaceFromM3U(t *testing.T) { // Test stream 1 assert.Equal(t, "Channel 1", streams[0].Name, "Names should match") assert.Equal(t, "Group 1", streams[0].GroupTitle, "Groups should match") - assert.Empty(t, streams[0].ExtGrp, "Should not have EXTGRP attribute") assert.Equal(t, "http://example.com/stream/1", streams[0].URL, "URL's should match") assert.Equal(t, "Channel.1", streams[0].TvgName, "TVG names should match") assert.Equal(t, "tvg.id.1", streams[0].TvgID, "TVG ID's should match") @@ -60,8 +58,7 @@ func TestMakeInterfaceFromM3U(t *testing.T) { // Test stream 2 assert.Equal(t, "Channel 2", streams[1].Name, "Names should match") - assert.Empty(t, streams[1].GroupTitle, "Should not have group-title tag") - assert.Equal(t, "Group 2", streams[1].ExtGrp, "Groups should match") + assert.Equal(t, "Group 2", streams[1].GroupTitle, "Should have a GroupTitle set from EXTGRP") assert.Equal(t, "http://example.com/stream/2", streams[1].URL, "URL's should match") assert.Equal(t, "Channel.2", streams[1].TvgName, "TVG names should match") assert.Equal(t, "tvg.id.2", streams[1].TvgID, "TVG ID's should match") @@ -70,8 +67,7 @@ func TestMakeInterfaceFromM3U(t *testing.T) { // Test stream 3 assert.Equal(t, ",:It's - a difficult name |", streams[2].Name, "Names should match") - assert.Empty(t, streams[2].GroupTitle, "Should not have group-title tag") - assert.Equal(t, "Group 2", streams[2].ExtGrp, "Should have EXTGRP inherited from previous stream") + assert.Equal(t, "Group 2", streams[2].GroupTitle, "Should have a GroupTitle set from previous EXTGRP") assert.Equal(t, "http://example.com/stream/3", streams[2].URL, "URL's should match") assert.Empty(t, streams[2].TvgName, "Should not have tvg-name tag") assert.Empty(t, streams[2].TvgID, "Should not have tvg-id tag") @@ -80,8 +76,7 @@ func TestMakeInterfaceFromM3U(t *testing.T) { // Test stream 4 assert.Equal(t, "Channel 4", streams[3].Name, "Names should match") - assert.Equal(t, "Group 4", streams[3].GroupTitle, "Groups should match") - assert.Equal(t, "Group 99", streams[3].ExtGrp, "Groups should match") + assert.Equal(t, "Group 4", streams[3].GroupTitle, "Should have a GroupTitle set from group-title, over EXTGRP") assert.Equal(t, "http://example.com/stream/4", streams[3].URL, "URL's should match") assert.Equal(t, "Channel.4", streams[3].TvgName, "TVG names should match") assert.Equal(t, "tvg.id.4", streams[3].TvgID, "TVG ID's should match") From 3ee7d8b53e13b4b71ab82231538a8916a27950c6 Mon Sep 17 00:00:00 2001 From: SCP002 Date: Wed, 13 Apr 2022 11:52:20 +0300 Subject: [PATCH 079/189] Update mapping if it was changed in m3u playlist. Add checkbox for auto update. Closes #22 --- html/css/screen.css | 5 ++ html/js/base_ts.js | 15 ++++++ html/js/menu_ts.js | 11 +++++ html/lang/en.json | 6 +++ src/internal/m3u-parser/xteve_m3u_parser.go | 1 + src/struct-system.go | 53 +++++++++++---------- src/update.go | 2 +- src/webUI.go | 8 ++-- src/xepg.go | 7 +++ ts/base_ts.ts | 18 +++++++ ts/menu_ts.ts | 13 ++++- xteve.go | 2 +- 12 files changed, 108 insertions(+), 33 deletions(-) diff --git a/html/css/screen.css b/html/css/screen.css index 793e1b5..3e970af 100644 --- a/html/css/screen.css +++ b/html/css/screen.css @@ -404,6 +404,11 @@ tbody { cursor: not-allowed; } +#popup-custom input[type=text]:disabled { + color: #666; + cursor: not-allowed; +} + #mapping-detail-table, #user-detail-table { display: inline-table; width: 100%; diff --git a/html/js/base_ts.js b/html/js/base_ts.js index b2fa0fd..994db92 100644 --- a/html/js/base_ts.js +++ b/html/js/base_ts.js @@ -368,6 +368,21 @@ function toggleChannelStatus(id) { } }); } +function toggleGroupUpdateCb(xepgId, target) { + target.className = 'changed'; + const groupInput = document.querySelector('input[name="x-group-title"]'); + const mapping = getLocalData('mapping', xepgId); + if (target.checked) { + groupInput.dataset.oldValue = groupInput.value; + groupInput.value = mapping['group-title']; + groupInput.disabled = true; + } + else { + groupInput.value = groupInput.dataset.oldValue; + groupInput.disabled = false; + } + groupInput.className = 'changed'; +} function restore() { if (document.getElementById('upload')) { document.getElementById('upload').remove(); diff --git a/html/js/menu_ts.js b/html/js/menu_ts.js index 7f0c267..92edbec 100644 --- a/html/js/menu_ts.js +++ b/html/js/menu_ts.js @@ -1305,10 +1305,21 @@ function openPopUp(dataType, element) { var dbKey = "x-group-title"; var input = content.createInput("text", dbKey, data[dbKey]); input.setAttribute("onchange", "javascript: this.className = 'changed'"); + input.dataset.oldValue = data[dbKey]; content.appendRow("{{.mapping.m3uGroupTitle.title}}", input); if (data["group-title"] != undefined) { content.description(data["group-title"]); } + if (data["x-update-channel-group"] == true) { + input.disabled = true; + } + // Update channel group checkbox + var dbKey = "x-update-channel-group"; + var input = content.createCheckbox(dbKey); + input.setAttribute("onchange", "javascript: toggleGroupUpdateCb('" + id + "', this);"); + input.checked = data[dbKey]; + content.appendRow("{{.mapping.updateChannelGroup.title}}", input); + content.description("{{.mapping.updateChannelGroup.description}}"); // XMLTV file var dbKey = "x-xmltv-file"; var xmlFile = data[dbKey]; diff --git a/html/lang/en.json b/html/lang/en.json index b3204bb..e836f00 100644 --- a/html/lang/en.json +++ b/html/lang/en.json @@ -255,6 +255,12 @@ "placeholder": "", "description": "" }, + "updateChannelGroup": + { + "title": "Update Channel Group", + "placeholder": "", + "description": "If checked, use group from the database" + }, "channelLogo": { "title": "Logo URL", diff --git a/src/internal/m3u-parser/xteve_m3u_parser.go b/src/internal/m3u-parser/xteve_m3u_parser.go index 60f93c9..31b0654 100644 --- a/src/internal/m3u-parser/xteve_m3u_parser.go +++ b/src/internal/m3u-parser/xteve_m3u_parser.go @@ -7,6 +7,7 @@ import ( "net/url" "regexp" "strings" + "github.com/samber/lo" ) diff --git a/src/struct-system.go b/src/struct-system.go index 9fc15ad..f618ecc 100644 --- a/src/struct-system.go +++ b/src/struct-system.go @@ -177,32 +177,33 @@ type Filter struct { // XEPGChannelStruct : XEPG Structure type XEPGChannelStruct struct { - FileM3UID string `json:"_file.m3u.id,required"` - FileM3UName string `json:"_file.m3u.name,required"` - FileM3UPath string `json:"_file.m3u.path,required"` - GroupTitle string `json:"group-title,required"` - Name string `json:"name,required"` - TvgID string `json:"tvg-id,required"` - TvgLogo string `json:"tvg-logo,required"` - TvgName string `json:"tvg-name,required"` - TvgShift string `json:"tvg-shift,required"` - URL string `json:"url,required"` - UUIDKey string `json:"_uuid.key,required"` - UUIDValue string `json:"_uuid.value,omitempty"` - Values string `json:"_values,required"` - XActive bool `json:"x-active,required"` - XCategory string `json:"x-category,required"` - XChannelID string `json:"x-channelID,required"` - XEPG string `json:"x-epg,required"` - XGroupTitle string `json:"x-group-title,required"` - XMapping string `json:"x-mapping,required"` - XmltvFile string `json:"x-xmltv-file,required"` - XName string `json:"x-name,required"` - XUpdateChannelIcon bool `json:"x-update-channel-icon,required"` - XUpdateChannelName bool `json:"x-update-channel-name,required"` - XDescription string `json:"x-description,required"` - XTimeshift string `json:"x-timeshift,required"` - DefaultMissingEPG string `json:"x-default-missing-epg,required"` + FileM3UID string `json:"_file.m3u.id,required"` + FileM3UName string `json:"_file.m3u.name,required"` + FileM3UPath string `json:"_file.m3u.path,required"` + GroupTitle string `json:"group-title,required"` + Name string `json:"name,required"` + TvgID string `json:"tvg-id,required"` + TvgLogo string `json:"tvg-logo,required"` + TvgName string `json:"tvg-name,required"` + TvgShift string `json:"tvg-shift,required"` + URL string `json:"url,required"` + UUIDKey string `json:"_uuid.key,required"` + UUIDValue string `json:"_uuid.value,omitempty"` + Values string `json:"_values,required"` + XActive bool `json:"x-active,required"` + XCategory string `json:"x-category,required"` + XChannelID string `json:"x-channelID,required"` + XEPG string `json:"x-epg,required"` + XGroupTitle string `json:"x-group-title,required"` + XMapping string `json:"x-mapping,required"` + XmltvFile string `json:"x-xmltv-file,required"` + XName string `json:"x-name,required"` + XUpdateChannelIcon bool `json:"x-update-channel-icon,required"` + XUpdateChannelName bool `json:"x-update-channel-name,required"` + XUpdateChannelGroup bool `json:"x-update-channel-group,required"` + XDescription string `json:"x-description,required"` + XTimeshift string `json:"x-timeshift,required"` + DefaultMissingEPG string `json:"x-default-missing-epg,required"` } // M3UChannelStructXEPG : M3U Structure for XEPG diff --git a/src/update.go b/src/update.go index 77f210e..b9c78e6 100644 --- a/src/update.go +++ b/src/update.go @@ -264,7 +264,7 @@ checkVersion: goto checkVersion - case "2.2.0": + case "2.2.0", "2.2.1": // If there are changes to the Database in a later update, continue here break diff --git a/src/webUI.go b/src/webUI.go index eeba2a3..63af0c4 100644 --- a/src/webUI.go +++ b/src/webUI.go @@ -7,7 +7,7 @@ func loadHTMLMap() { webUI["html/configuration.html"] = "PCFkb2N0eXBlIGh0bWw+DQo8aHRtbD4NCiAgPGhlYWQ+DQogICAgPG1ldGEgY2hhcnNldD0idXRmLTgiPg0KICAgIDxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgsIGluaXRpYWwtc2NhbGU9MS4wIiAvPiANCiAgICA8dGl0bGU+eFRlVmU8L3RpdGxlPg0KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iY3NzL3NjcmVlbi5jc3MiIHR5cGU9InRleHQvY3NzIj4NCiAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9ImNzcy9iYXNlLmNzcyIgdHlwZT0idGV4dC9jc3MiPg0KICAgIDxzY3JpcHQgbGFuZ3VhZ2U9ImphdmFzY3JpcHQiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJqcy9jb25maWd1cmF0aW9uX3RzLmpzIj48L3NjcmlwdD4NCiAgICA8c2NyaXB0IGxhbmd1YWdlPSJqYXZhc2NyaXB0IiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ianMvbmV0d29ya190cy5qcyI+PC9zY3JpcHQ+DQogICAgPHNjcmlwdCBsYW5ndWFnZT0iamF2YXNjcmlwdCIgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9ImpzL21lbnVfdHMuanMiPjwvc2NyaXB0Pg0KICAgIDxzY3JpcHQgbGFuZ3VhZ2U9ImphdmFzY3JpcHQiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJqcy9zZXR0aW5nc190cy5qcyI+PC9zY3JpcHQ+DQogICAgPHNjcmlwdCBsYW5ndWFnZT0iamF2YXNjcmlwdCIgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9ImpzL2Jhc2VfdHMuanMiPjwvc2NyaXB0Pg0KICA8L2hlYWQ+DQoNCiAgICA8Ym9keSBvbmxvYWQ9ImphdmFzY3JpcHQ6IHJlYWR5Rm9yQ29uZmlndXJhdGlvbigwKTsiPg0KICAgICAgICAgIA0KICAgICAgPGRpdiBpZD0ibG9hZGluZyIgY2xhc3M9ImJsb2NrIj4NCiAgICAgICAgPGRpdiBjbGFzcz0ibG9hZGVyIj48L2Rpdj4NCiAgICAgIDwvZGl2Pg0KDQogICAgICA8ZGl2IGlkPSJoZWFkZXIiIGNsYXNzPSJpbWdDZW50ZXIiPjwvZGl2Pg0KICAgICAgPGRpdiBpZD0iYm94Ij4NCiAgICAgICAgDQogICAgICAgIDx0YWJsZSBpZD0iY2xpZW50SW5mbyIgY2xhc3M9InZpc2libGUiPg0KICAgICAgICAgIDx0cj4NCiAgICAgICAgICAgIDx0ZCBjbGFzcz0idGRLZXkiPlZlcnNpb246PC90ZD4NCiAgICAgICAgICAgIDx0ZCBpZD0idmVyc2lvbiIgY2xhc3M9InRkVmFsIj4mbmJzcDs8L3RkPg0KICAgICAgICAgICAgPHRkIGNsYXNzPSJ0ZEtleSI+T1M6PC90ZD4NCiAgICAgICAgICAgIDx0ZCBpZD0ib3MiIGNsYXNzPSJ0ZFZhbCI+Jm5ic3A7PC90ZD4NCiAgICAgICAgICA8L3RyPg0KICAgICAgICAgIDx0cj4NCiAgICAgICAgICAgIDx0ZCBjbGFzcz0idGRLZXkiPlVVSUQ6PC90ZD4NCiAgICAgICAgICAgIDx0ZCBpZD0idXVpZCIgY2xhc3M9InRkVmFsIj4mbmJzcDs8L3RkPg0KICAgICAgICAgICAgPHRkIGNsYXNzPSJ0ZEtleSI+QXJjaDo8L3RkPg0KICAgICAgICAgICAgPHRkIGlkPSJhcmNoIiBjbGFzcz0idGRWYWwiPiZuYnNwOzwvdGQ+DQogICAgICAgICAgPC90cj4NCiAgICAgICAgICA8dHI+DQogICAgICAgICAgICA8dGQgY2xhc3M9InRkS2V5Ij5TdHJlYW1zOjwvdGQ+DQogICAgICAgICAgICA8dGQgaWQ9InN0cmVhbXMiIGNsYXNzPSJ0ZFZhbCI+Jm5ic3A7PC90ZD4NCiAgICAgICAgICAgIDx0ZCBjbGFzcz0idGRLZXkiPkRWUjo8L3RkPg0KICAgICAgICAgICAgPHRkIGlkPSJEVlIiIGNsYXNzPSJ0ZFZhbCI+Jm5ic3A7PC90ZD4NCiAgICAgICAgICA8L3RyPg0KICAgICAgICA8L3RhYmxlPg0KICAgICAgICANCiAgICAgICAgPGRpdiBpZD0iaGVhZGxpbmUiPg0KICAgICAgICAgIDxoMSBpZD0iaGVhZC10ZXh0IiBjbGFzcz0iY2VudGVyIj5Db25maWd1cmF0aW9uPC9oMT4gICAgICANCiAgICAgICAgPC9kaXY+DQogICAgICAgIDxwIGlkPSJlcnIiIGNsYXNzPSJlcnJvck1zZyBjZW50ZXIiPjwvcD4gICANCiAgICAgICAgPGRpdiBpZD0iY29udGVudCI+DQogICAgICAgICAgICANCiAgICAgICAgPC9kaXY+DQogICAgICAgIDxkaXYgaWQ9ImJveC1mb290ZXIiPg0KICAgICAgICAgIDxpbnB1dCBpZD0ibmV4dCIgY2xhc3M9IiIgdHlwZT0iYnV0dG9uIiBuYW1lPSJuZXh0IiB2YWx1ZT0iTmV4dCIgb25jbGljaz0iamF2YXNjcmlwdDogc2F2ZVdpemFyZCgpOyI+DQogICAgICAgIDwvZGl2Pg0KICAgICAgPC9kaXY+DQogICAgPC9ib2R5Pg0KPC9odG1sPg==" webUI["html/create-first-user.html"] = "PCFkb2N0eXBlIGh0bWw+DQo8aHRtbD4NCiAgPGhlYWQ+DQogICAgPG1ldGEgY2hhcnNldD0idXRmLTgiPg0KICAgIDxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgsIGluaXRpYWwtc2NhbGU9MS4wIiAvPiANCiAgICA8dGl0bGU+eFRlVmU8L3RpdGxlPg0KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iY3NzL3NjcmVlbi5jc3MiIHR5cGU9InRleHQvY3NzIj4NCiAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9ImNzcy9iYXNlLmNzcyIgdHlwZT0idGV4dC9jc3MiPg0KICAgIDxzY3JpcHQgbGFuZ3VhZ2U9ImphdmFzY3JpcHQiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJqcy9uZXR3b3JrX3RzLmpzIj48L3NjcmlwdD4NCiAgICA8c2NyaXB0IGxhbmd1YWdlPSJqYXZhc2NyaXB0IiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ianMvYXV0aGVudGljYXRpb25fdHMuanMiPjwvc2NyaXB0Pg0KICA8L2hlYWQ+DQoNCiAgICA8Ym9keT4NCiAgICAgICAgICANCiAgICAgIDxkaXYgaWQ9ImhlYWRlciIgY2xhc3M9ImltZ0NlbnRlciI+PC9kaXY+DQoNCiAgICAgIDxkaXYgaWQ9ImJveCI+DQoNCiAgICAgICAgPGRpdiBpZD0iaGVhZGxpbmUiPg0KICAgICAgICAgIDxoMSBpZD0iaGVhZC10ZXh0IiBjbGFzcz0iY2VudGVyIj57ey5hY2NvdW50LmhlYWRsaW5lfX08L2gxPg0KICAgICAgICA8L2Rpdj4NCg0KICAgICAgICA8cCBpZD0iZXJyIiBjbGFzcz0iZXJyb3JNc2cgY2VudGVyIj48L3A+DQoNCiAgICAgICAgPGRpdiBpZD0iY29udGVudCI+DQoNCiAgICAgICAgICAgIDxmb3JtIGlkPSJhdXRoZW50aWNhdGlvbiIgYWN0aW9uPSIiIG1ldGhvZD0icG9zdCI+DQoNCiAgICAgICAgICAgICAgPGg1Pnt7LmFjY291bnQudXNlcm5hbWUudGl0bGV9fTo8L2g1Pg0KICAgICAgICAgICAgICA8aW5wdXQgaWQ9InVzZXJuYW1lIiB0eXBlPSJ0ZXh0IiBuYW1lPSJ1c2VybmFtZSIgcGxhY2Vob2xkZXI9IlVzZXJuYW1lIiB2YWx1ZT0iIj4NCiAgICAgICAgICAgICAgPGg1Pnt7LmFjY291bnQucGFzc3dvcmQudGl0bGV9fTo8L2g1Pg0KICAgICAgICAgICAgICA8aW5wdXQgaWQ9InBhc3N3b3JkIiB0eXBlPSJwYXNzd29yZCIgbmFtZT0icGFzc3dvcmQiIHBsYWNlaG9sZGVyPSJQYXNzd29yZCIgdmFsdWU9IiI+DQogICAgICAgICAgICAgIDxoNT57ey5hY2NvdW50LmNvbmZpcm0udGl0bGV9fTo8L2g1Pg0KICAgICAgICAgICAgICA8aW5wdXQgaWQ9ImNvbmZpcm0iICB0eXBlPSJwYXNzd29yZCIgbmFtZT0iY29uZmlybSIgIHBsYWNlaG9sZGVyPSJDb25maXJtIiB2YWx1ZT0iIj4NCiAgICAgICAgICAgICAgDQogICAgICAgICAgICA8L2Zvcm0+DQoNCiAgICAgICAgPC9kaXY+DQogICAgICAgIA0KICAgICAgICA8ZGl2IGlkPSJib3gtZm9vdGVyIj4NCiAgICAgICAgICA8aW5wdXQgaWQ9InN1Ym1pdCIgY2xhc3M9IiIgdHlwZT0iYnV0dG9uIiB2YWx1ZT0ie3suYnV0dG9uLmNyYWV0ZUFjY291bnR9fSIgb25jbGljaz0iamF2YXNjcmlwdDogbG9naW4oKTsiPg0KICAgICAgICA8L2Rpdj4NCiAgICAgIA0KICAgICAgICANCiAgICAgIDwvZGl2Pg0KICAgIDwvYm9keT4NCjwvaHRtbD4=" webUI["html/css/base.css"] = "KiB7DQogIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTsNCiAgLW1vei1hcHBlYXJhbmNlOiBub25lOw0KICAtbXMtYXBwZWFyYW5jZTogbm9uZTsNCiAgZm9udC1mYW1pbHk6ICJBcmlhbCIsIHNhbnMtc2VyaWY7DQogIGxldHRlci1zcGFjaW5nOiAycHg7IA0KfQ0KDQovKg0KOjotd2Via2l0LXNjcm9sbGJhciB7IA0KICAgIGRpc3BsYXk6IG5vbmU7IA0KfQ0KKi8NCg0KOjotd2Via2l0LXNjcm9sbGJhciB7DQogIHdpZHRoOiAxMnB4Ow0KICBoZWlnaHQ6IDEycHg7DQp9DQoNCiANCjo6LXdlYmtpdC1zY3JvbGxiYXItdHJhY2sgew0KICAtd2Via2l0LWJveC1zaGFkb3c6IGluc2V0IDAgMCA2cHggcmdiYSgwLDAsMCwwLjMpOyANCiAgYm9yZGVyLXJhZGl1czogNXB4Ow0KICAgIA0KfQ0KIA0KOjotd2Via2l0LXNjcm9sbGJhci10aHVtYiB7DQogIGJvcmRlci1yYWRpdXM6IDVweDsNCiAgLXdlYmtpdC1ib3gtc2hhZG93OiBpbnNldCAwIDAgNnB4IHJnYmEoMCwgMCwgMCwwLjYpOyANCiAgYmFja2dyb3VuZC1jb2xvcjogIzQ0NDsNCn0NCg0KOjotd2Via2l0LXNjcm9sbGJhci10aHVtYjpob3ZlciB7DQogIGJhY2tncm91bmQ6ICMzMzM7IA0KfQ0KDQo6Oi13ZWJraXQtc2Nyb2xsYmFyLWNvcm5lciB7IA0KICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsgDQp9DQoNCmEgew0KICBjb2xvcjogIzAwRTZGRjsNCn0NCg0KaHRtbCwgYm9keSB7DQogIGNvbG9yOiAjZmZmOw0KICBtYXJnaW46IDBweCBhdXRvOw0KICBoZWlnaHQ6IDEwMCU7DQogIGZvbnQtc2l6ZTogMTRweDsNCn0NCg0KaDIgew0KICBmb250LXNpemU6IDI0cHg7DQogIGxldHRlci1zcGFjaW5nOiAycHg7DQp9DQoNCmgzIHsNCiAgZm9udC1zaXplOiAyMnB4Ow0KICBsZXR0ZXItc3BhY2luZzogMXB4Ow0KfQ0KDQpoNCB7DQogIGZvbnQtc2l6ZTogMjBweDsNCiAgbGV0dGVyLXNwYWNpbmc6IDFweDsNCiAgbGluZS1oZWlnaHQ6IDEuNWVtOw0KDQp9DQoNCmg1IHsNCiAgZm9udC1zaXplOiAxNnB4Ow0KICBsZXR0ZXItc3BhY2luZzogMXB4Ow0KICBsaW5lLWhlaWdodDogMS4yZW07DQogIG1hcmdpbjogMjVweCAwcHggMTBweCAwcHg7DQp9DQoNCmhyIHsNCiAgYm9yZGVyOiAwOw0KICBoZWlnaHQ6IDFweDsNCiAgYmFja2dyb3VuZDogIzMzMzsNCiAgbWFyZ2luOiAxMHB4IDBweDsNCn0NCg0KcCB7DQogIG1hcmdpbjogMnB4Ow0KICBwYWRkaW5nOiAycHggNXB4Ow0KfQ0KDQpwcmUgew0KICBtYXJnaW46IDBweCAwcHggNXB4IDBweDsNCiAgZm9udC1zaXplOiAxMnB4Ow0KICBjb2xvcjogI2RkZDsNCiAgbGV0dGVyLXNwYWNpbmc6IDFweDsNCiAgd2hpdGUtc3BhY2U6IHByZS13cmFwOw0KICBmb250LWZhbWlseTogbW9ub3NwYWNlOyANCiAgZm9udC1zaXplOiAxMnB4OyANCiAgZm9udC1zdHlsZTogbm9ybWFsOyANCiAgZm9udC12YXJpYW50OiBub3JtYWw7IA0KICBsaW5lLWhlaWdodDogMS42ZW07IA0KfQ0KDQpsYWJlbCB7DQogIG1hcmdpbi1ib3R0b206IDIwcHg7DQogIGRpc3BsYXk6IGJsb2NrOw0KfQ0KDQpsaSB7DQogIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTsNCiAgYmFja2dyb3VuZC1jb2xvcjogIzExMTsNCiAgcGFkZGluZzogMTBweCAyMHB4Ow0KICBjdXJzb3I6IHBvaW50ZXI7DQogIGJvcmRlci1sZWZ0OiBzb2xpZCAycHggIzExMTsNCiAgdHJhbnNpdGlvbjogYWxsIDAuMzsNCn0NCg0KbGk6aG92ZXIgew0KICBib3JkZXItY29sb3I6ICMwMEU2RkYNCn0NCg0Kc2VsZWN0IHsNCiAgY3Vyc29yOiBwb2ludGVyOw0KICB3aWR0aDogY2FsYygxMDAlICsgMnB4KTsNCiAgYm9yZGVyOiBzb2xpZCAwcHggIzAwRTZGRjsNCiAgYm9yZGVyLXJhZGl1czogMHB4Ow0KICBvdXRsaW5lOiBub25lOw0KICBjb2xvcjogI2ZmZjsNCiAgcGFkZGluZzogOXB4IDEwcHg7DQogIGRpc3BsYXk6YmxvY2s7DQogIGJhY2tncm91bmQtY29sb3I6ICMzMzM7DQogIGZvbnQtc2l6ZTogMTRweDsNCiAgbWFyZ2luOiA1cHggMHB4IDVweCAwcHg7DQp9DQoNCnNlbGVjdDpmb2N1cyB7DQogIG91dGxpbmU6IG5vbmU7DQp9DQoNCmlucHV0IHsNCiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lOw0KICBtYXJnaW46IDVweCAwcHg7DQogIHBhZGRpbmc6IDIuNXB4IDEwcHg7DQogIG91dGxpbmU6IG5vbmU7DQogIGZvbnQtc2l6ZTogMTRweDsNCn0NCg0KaW5wdXRbdHlwZT1idXR0b25dLCBpbnB1dFt0eXBlPXN1Ym1pdF0gew0KICBjdXJzb3I6IHBvaW50ZXI7DQogIGJhY2tncm91bmQtY29sb3I6ICMwMDA7DQogIG1hcmdpbjogMTBweCAxMHB4Ow0KICBwYWRkaW5nOiAxMHB4IDI1cHg7DQogIGJvcmRlcjogc29saWQgMHB4Ow0KICBib3JkZXItY29sb3I6ICMwMDA7DQogIGJvcmRlci1yYWRpdXM6IDNweDsNCiAgb3V0bGluZTogbm9uZTsNCiAgY29sb3I6ICNmZmY7DQp9DQoNCmlucHV0W3R5cGU9YnV0dG9uXTpmb2N1cyB7IA0KICAgb3V0bGluZTogbm9uZTsNCn0NCg0KaW5wdXRbdHlwZT1idXR0b25dOmhvdmVyIHsNCiAgYmFja2dyb3VuZC1jb2xvcjogIzAwRTZGRjsNCiAgY29sb3I6ICMwMDA7DQp9DQoNCmlucHV0W3R5cGU9YnV0dG9uXTpob3Zlci5kZWxldGUgIHsNCiAgYmFja2dyb3VuZC1jb2xvcjogcmVkOw0KICBjb2xvcjogI2ZmZjsNCn0NCg0KaW5wdXRbdHlwZT10ZXh0XSwgaW5wdXRbdHlwZT1zZWFyY2hdLCBpbnB1dFt0eXBlPXBhc3N3b3JkXSB7DQogIGNvbG9yOiAjZmZmOw0KICB3aWR0aDogLXdlYmtpdC1jYWxjKDEwMCUgLSAwcHgpOw0KICB3aWR0aDogLW1vei1jYWxjKDEwMCUgLSAwcHgpOw0KICB3aWR0aDogY2FsYygxMDAlIC0gMHB4KTsNCiAgb3V0bGluZTogbm9uZTsNCiAgYm9yZGVyOiBzb2xpZCAxcHggdHJhbnNwYXJlbnQ7DQogIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50Ow0KICBib3JkZXItYm90dG9tLWNvbG9yOiAjNTU1Ow0KICBib3JkZXItcmFkaXVzOiAwcHg7DQogIHBhZGRpbmc6IDhweCAxMHB4Ow0KfQ0KDQppbnB1dFt0eXBlPSJjaGVja2JveCJdIHsNCiAgYm9yZGVyOiBzb2xpZCAxcHggIzAwRTZGRjsNCiAgYmFja2dyb3VuZC1jb2xvcjogIzMzMzsNCiAgaGVpZ2h0OiAyNXB4Ow0KICB3aWR0aDogMjVweDsNCiAgY3Vyc29yOiBwb2ludGVyOw0KICAvKg0KICAtd2Via2l0LWFwcGVhcmFuY2U6IGNoZWNrYm94Ow0KICAqLw0KfQ0KDQppbnB1dFt0eXBlPSJjaGVja2JveCJdOmNoZWNrZWQgew0KICBjb2xvcjogI2ZmZjsNCiAgYmFja2dyb3VuZC1jb2xvcjogIzAwRTZGRjsNCiAgLypkaXNwbGF5OiBpbmxpbmUtYmxvY2s7Ki8NCn0NCg0KaW5wdXRbdHlwZT0iY2hlY2tib3giXTpiZWZvcmUgew0KICBwb3NpdGlvbjogaW5pdGlhbDsNCiAgbGVmdDogMHB4Ow0KICBtYXJnaW4tbGVmdDogLTRweDsNCiAgY29udGVudDogIiAiOw0KfQ0KDQppbnB1dFt0eXBlPSJjaGVja2JveCJdOmNoZWNrZWQ6YmVmb3JlIHsNCiAgcG9zaXRpb246IGluaXRpYWw7DQogIGxlZnQ6IDBweDsNCiAgbWFyZ2luLWxlZnQ6IC0zcHg7DQogIGNvbnRlbnQ6ICLinJMiOw0KICBjb2xvcjogIzAwMDsNCn0NCg0KDQppbnB1dFt0eXBlPWJ1dHRvbl0uY2FuY2VsIHsNCiAgDQogIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50Ow0KICBib3JkZXItY29sb3I6IHJlZDsNCn0NCg0KaW5wdXRbdHlwZT1idXR0b25dLnNhdmV7DQogIGJhY2tncm91bmQtY29sb3I6ICMxMTE7DQogIGZsb2F0OiByaWdodDsNCn0NCg0KDQppbnB1dFt0eXBlPWJ1dHRvbl0uYmxhY2ssIGlucHV0W3R5cGU9c3VibWl0XS5ibGFja3sNCiAgYmFja2dyb3VuZC1jb2xvcjogIzAwMDsNCiAgYm9yZGVyLWNvbG9yOiAjMDAwOw0KfQ0KDQppbnB1dFt0eXBlPWJ1dHRvbl0uY2VudGVyew0KICBtYXJnaW4tcmlnaHQ6IGF1dG87DQogIG1hcmdpbi1sZWZ0OiBhdXRvOw0KICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDAwOw0KICBib3JkZXItY29sb3I6ICMwMDA7DQp9DQoNCi5wb2ludGVyIHsNCiAgY3Vyc29yOiBwb2ludGVyOw0KfQ0KDQoucG9pbnRlcjpob3ZlciB7DQogIGNvbG9yOiAjMDBFNkZGOw0KICBjdXJzb3I6IHBvaW50ZXI7DQp9DQoNCi5zb3J0VGhpcyB7DQogIGNvbG9yOiAjMDBFNkZGOw0KfQ0KDQoudzQwcHggew0KICBtYXgtd2lkdGg6IDQwcHg7DQp9DQoNCi53NTBweCB7DQogIG1heC13aWR0aDogNTBweDsNCn0NCg0KLnc4MHB4IHsNCiAgbWF4LXdpZHRoOiA4MHB4Ow0KfQ0KDQoudzE1MHB4IHsNCiAgbWF4LXdpZHRoOiAxNTBweDsNCn0NCg0KLncyMDBweCB7DQogIG1heC13aWR0aDogMjAwcHg7DQogIG1pbi13aWR0aDogMTAwcHg7DQogIHdpZHRoOiAyMDBweDsNCiAgb3ZlcmZsb3cteDogaGlkZGVuOw0KICB3aGl0ZS1zcGFjZTogbm93cmFwOw0KICBvdmVyZmxvdzogaGlkZGVuOw0KICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsNCn0NCg0KLnczMDBweCB7DQogIG1heC13aWR0aDogMzAwcHg7DQp9DQoNCi53MjIwcHggew0KICBtYXgtd2lkdGg6IDIyMHB4Ow0KICBjdXJzb3I6IGFsaWFzOw0KfQ0KDQouZm9vdGVyIHsNCiAgZm9udC1zaXplOiAxMHB4Ow0KfQ0KDQouY2VudGVyIHsNCiAgdGV4dC1hbGlnbjogY2VudGVyOw0KfQ0KDQouc2NyZWVuTG9nSGlkZGVuIHsNCiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMHB4LCAtMTEwcHgpOw0KfQ0KDQouYm9yZGVyU3BhY2Ugew0KICBtYXJnaW4tYm90dG9tOiAzMHB4Ow0KfQ0KDQouYmxvY2sgew0KDQp9DQoNCi5ub25lIHsNCiAgZGlzcGxheTogbm9uZTsNCn0NCg0KDQoubm90VmlzaWJsZSB7DQogIGhlaWdodDogMHB4Ow0KICBkaXNwbGF5OiBub25lOw0KICBvcGFjaXR5OiAwOw0KICBib3JkZXItYm90dG9tOiAjMDAwIHNvbGlkIDBweDsNCiAgDQp9DQoNCi52aXNpYmxlIHsNCiAgb3BhY2l0eTogMTsNCiAgZGlzcGxheTogYmxvY2s7DQogIGJvcmRlci1ib3R0b206ICM0NDQgc29saWQgMXB4OyANCiAgcGFkZGluZzogMTBweDsNCn0NCg0KLmZsb2F0UmlnaHQgew0KICBmbG9hdDogcmlnaHQ7DQp9DQoNCi5mbG9hdExlZnQgew0KICBmbG9hdDogbGVmdDsNCn0NCg0KLm1lbnUtYWN0aXZlIHsNCiAgYmFja2dyb3VuZC1jb2xvcjogIzAwRTZGRjsNCn0NCg0KLm1lbnUtbm90QWN0aXZlIHsNCiAgDQp9DQoNCiNicmFuY2ggew0KICBkaXNwbGF5OiB0YWJsZTsNCiAgbWFyZ2luOiBhdXRvOw0KICBjb2xvcjogcmVkOw0KfQ0KDQojaW50ZXJhY3Rpb24gew0KICBtYXJnaW4tYm90dG9tOiAxMDBweDsNCiAgdGV4dC1hbGlnbjogY2VudGVyOw0KICBib3JkZXItYm90dG9tOiBzb2xpZCAwcHggIzc3NzsNCn0NCg0KDQouaGFsZiB7DQogIGRpc3BsYXk6IGJsb2NrOw0KICB3aWR0aDogNDUlOw0KfQ0KDQoubWVudSB7DQogIGJvcmRlcjogc29saWQgMXB4ICMwMEU2RkY7DQp9DQoNCi5pbmZvTXNnIHsNCiAgY29sb3I6ICNhYWE7DQp9DQoNCi5lcnJvck1zZyB7DQogIGNvbG9yOiByZWQ7DQp9DQoNCi53YXJuaW5nTXNnIHsNCiAgY29sb3I6IHllbGxvdzsNCn0NCg0KLmRlYnVnTXNnIHsNCiAgY29sb3I6IG1hZ2VudGE7DQp9DQoNCi5OZXdzLCAuTW92aWUsIC5TZXJpZXMsIC5TcG9ydHMsIC5LaWRzIHsNCiAgYm9yZGVyLWxlZnQ6IHNvbGlkIDJweA0KfQ0KDQouTmV3cyB7DQogIGJvcmRlci1jb2xvcjogdG9tYXRvDQp9DQoNCi5Nb3ZpZSB7DQogIGJvcmRlci1jb2xvcjogcm95YWxibHVlOw0KfQ0KDQouU2VyaWVzIHsNCiAgYm9yZGVyLWNvbG9yOiBnb2xkOw0KfQ0KDQouU3BvcnRzIHsNCiAgYm9yZGVyLWNvbG9yOiB5ZWxsb3dncmVlbjsNCn0NCg0KLktpZHMgew0KICBib3JkZXItY29sb3I6IG1lZGl1bXB1cnBsZTsNCn0NCg0KLyogTG9hZGluZyAqLw0KI2xvYWRpbmcgew0KICBsZWZ0OiAwcHg7DQogIHRvcDogMHB4Ow0KICB6LWluZGV4OiAxMDAwMDsNCiAgcG9zaXRpb246IGFic29sdXRlOw0KICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsMCwwLCAwLjgpOw0KICBtYXJnaW46IGF1dG87DQogIHdpZHRoOiAxMDAlOw0KICBoZWlnaHQ6IDEwMCU7DQp9DQoNCg0KLmxvYWRlciB7DQogIGJvcmRlcjogNXB4IHNvbGlkIHRyYW5zcGFyZW50Ow0KICBib3JkZXItcmFkaXVzOiA1MCU7DQogIGJvcmRlci10b3A6IDVweCBzb2xpZCAjMDBFNkZGOw0KICBib3JkZXItYm90dG9tOiA1cHggc29saWQgIzAwRTZGRjsNCiAgd2lkdGg6IDUwcHg7DQogIGhlaWdodDogNTBweDsNCiAgLXdlYmtpdC1hbmltYXRpb246IHNwaW4gMS4ycyBsaW5lYXIgaW5maW5pdGU7DQogIGFuaW1hdGlvbjogc3BpbiAxLjJzIGxpbmVhciBpbmZpbml0ZTsNCg0KICBwb3NpdGlvbjogZml4ZWQ7DQogIG1hcmdpbjogYXV0bzsNCg0KICB0b3A6IDA7DQogIHJpZ2h0OiAwOw0KICBib3R0b206IDA7DQogIGxlZnQ6IDA7DQogIA0KfQ0KDQpALXdlYmtpdC1rZXlmcmFtZXMgc3BpbiB7DQogIDAlIHsgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTsgfQ0KICAxMDAlIHsgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpOyB9DQp9DQoNCkBrZXlmcmFtZXMgc3BpbiB7DQogIDAlIHsgdHJhbnNmb3JtOiByb3RhdGUoMGRlZyk7IH0NCiAgMTAwJSB7IHRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7IH0NCn0NCg==" - webUI["html/css/screen.css"] = "bmF2IGltZyB7DQogIGRpc3BsYXk6IGJsb2NrOw0KICBtYXgtaGVpZ2h0OiAyMHB4Ow0KICBtYXgtd2lkdGg6IDIwcHg7DQogIGZsb2F0OiBsZWZ0Ow0KfQ0KDQpuYXYgcCB7DQogIHRleHQtYWxpZ246IGxlZnQ7DQogIHBhZGRpbmc6IDBweCAzMHB4Ow0KfQ0KDQojbGF5b3V0IHsNCiAgZGlzcGxheTogYmxvY2s7DQogIGhlaWdodDogMTAwJTsNCn0NCg0KDQoubGF5b3V0LWxlZnQgew0KICBkaXNwbGF5OiBibG9jazsNCiAgbWluLXdpZHRoOiAxNTBweDsNCiAgbWF4LXdpZHRoOiAyMCU7DQogIGJhY2tncm91bmQtY29sb3I6ICMxMTE7DQogIGhlaWdodDogaW5oZXJpdDsNCiAgZmxvYXQ6IGxlZnQ7DQp9DQoNCi5sYXlvdXQtcmlnaHQgew0KICBkaXNwbGF5OiBibG9jazsNCiAgYmFja2dyb3VuZC1jb2xvcjogIzQ0NDsNCn0NCg0KI21lbnUtd3JhcHBlciB7DQogIGhlaWdodDogMTAwJTsNCn0NCg0KDQojbG9nbyB7DQogIGRpc3BsYXk6IGJsb2NrOw0KICBtaW4td2lkdGg6IDE4MHB4Ow0KICB3aWR0aDogMTAwJTsNCiAgaGVpZ2h0OiAxMDBweDsNCiAgYmFja2dyb3VuZDogdXJsKCIuLi9pbWcvbG9nb193XzYwMHgyMDAucG5nIik7DQogIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7DQogIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjsgDQogIGJhY2tncm91bmQtc2l6ZTogMTAwJTsNCn0NCg0KDQojcGFnZSB7DQogIG1heC13aWR0aDogOTUwcHg7DQogIG1hcmdpbjogYXV0bzsNCiAgYmFja2dyb3VuZC1jb2xvcjogIzQ0NDsNCg0KICAvKg0KICBoZWlnaHQ6IC13ZWJraXQtY2FsYygxMDAlIC0gMTMwcHgpOw0KICBoZWlnaHQ6IC1tb3otY2FsYygxMDAlIC0gMTMwcHgpOw0KICBoZWlnaHQ6IGNhbGMoMTAwJSAtIDEzMHB4KTsNCiAgKi8NCiAgDQogIG1pbi1oZWlnaHQ6IC13ZWJraXQtY2FsYygxMDAlIC0gMTIwcHgpOw0KICBtaW4taGVpZ2h0OiAtbW96LWNhbGMoMTAwJSAtIDEyMHB4KTsNCiAgbWluLWhlaWdodDogY2FsYygxMDAlIC0gMTIwcHgpOw0KICANCiAgDQogIGJveC1zaGFkb3c6IDBweCA1cHggNXB4ICMyMjI7DQogIA0KfQ0KDQojdWlTZXR0aW5nIHsNCiAgZmxvYXQ6IHJpZ2h0Ow0KICBtYXJnaW4tcmlnaHQ6IDI1cHg7DQp9DQoNCiNib3ggaW5wdXRbdHlwZT10ZXh0XSwgI2JveCBpbnB1dFt0eXBlPXBhc3N3b3JkXSB7DQogIHdpZHRoOiAtd2Via2l0LWNhbGMoMTAwJSAtIDIwcHgpOw0KICB3aWR0aDogLW1vei1jYWxjKDEwMCUgLSAyMHB4KTsNCiAgd2lkdGg6IGNhbGMoMTAwJSAtIDIwcHgpOw0KfQ0KDQojYm94IGlucHV0W3R5cGU9c3VibWl0XXsNCiAgbWFyZ2luOiA1MHB4IGF1dG87DQp9DQoNCiNzZXR0aW5ncyB7DQogIGRpc3BsYXk6IGJsb2NrOw0KICBwYWRkaW5nOiAxMHB4IDEwcHg7DQp9DQoNCiNzZXR0aW5ncyBoNSB7DQogIG1hcmdpbjogNTBweCAwcHggMTBweCAwcHg7DQp9DQoNCiNjb250ZW50LWludGVyYWN0aW9uIC5zZWFyY2ggew0KICB3aWR0aDogMjAwcHg7DQogIGJvcmRlcjogMXB4IHNvbGlkICMwMDA7DQogIHBhZGRpbmc6IDlweDsNCiAgYmFja2dyb3VuZC1jb2xvcjogIzMzMzsNCiAgbWFyZ2luOiAxMHB4Ow0KICBmbG9hdDogcmlnaHQ7DQogIGJvcmRlci1yYWRpdXM6IDNweDsNCg0KfQ0KDQojbXlTdHJlYW1zIHsNCiAgcG9zaXRpb246IGZpeGVkOw0KICBib3R0b206IDBweDsNCiAgYmFja2dyb3VuZC1jb2xvcjogIzExMTsNCiAgd2lkdGg6IDEwMCU7DQogIG1heC13aWR0aDogOTUwcHg7DQoNCiAgLyoNCiAgbWF4LWhlaWdodDogMTAwcHg7DQogICovDQogIG1hcmdpbi1ib3R0b206IDBweDsNCn0NCg0KI215U3RyZWFtcyBpbWcgew0KICB3aWR0aDogNCU7DQogIHBhZGRpbmc6IDJweCA1cHg7DQogIGN1cnNvcjogcG9pbnRlcjsNCiAgZmxvYXQ6IHJpZ2h0Ow0KfQ0KDQojc2V0dGluZ3MtZm9vdGVyIHsNCg0KfQ0KDQoNCi8qIFdpemFyZCovDQojYm94IHsNCiAgYmFja2dyb3VuZC1jb2xvcjogIzQ0NDsNCiAgbWluLWhlaWdodDogNDAwcHg7DQogIA0KICBkaXNwbGF5OiBmbGV4Ow0KICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOw0KICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47DQp9DQoNCiNib3ggcHsNCiAgcGFkZGluZzogMTBweCAwcHg7DQp9DQoNCiNib3gtZm9vdGVyIHsNCiAgbWFyZ2luLXRvcDogYXV0bzsNCn0NCg0KI2JveC1mb290ZXIgew0KICBtYXJnaW46IGF1dG87DQogIHBhZGRpbmc6IDEwcHg7DQp9DQoNCiNoZWFkbGluZSB7DQogIGJhY2tncm91bmQtY29sb3I6ICMyMjI7DQogIGJvcmRlci1ib3R0b206IHNvbGlkIDJweCAjMjIyOw0KICB0cmFuc2l0aW9uOiBhbGwgMC41czsNCiAgcGFkZGluZzogMTBweCAwcHg7DQogIGRpc3BsYXk6IGJsb2NrOw0KfQ0KDQojY29udGVudCB7DQogIGRpc3BsYXk6IGJsb2NrOw0KICBvdmVyZmxvdzogYXV0bzsNCiAgcGFkZGluZzogMTBweDsNCn0NCg0KLyogLS0tICovDQoNCg0KI2NsaWVudEluZm8sICNhY3RpdmVTdHJlYW1zLCAjaW5hY3RpdmVTdHJlYW1zIHsNCiAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZTsNCiAgZGlzcGxheTogYmxvY2s7DQogIGZvbnQtc2l6ZTogOXB4Ow0KICBiYWNrZ3JvdW5kLWNvbG9yOiAjMTExOw0KICBjb2xvcjogIzAwRTZGRjsNCiAgYm9yZGVyLWJvdHRvbTogc29saWQgMHB4OzsNCiAgcGFkZGluZzogMHB4Ow0KICBsZXR0ZXItc3BhY2luZzogMXB4Ow0KICBvdmVyZmxvdy14OiBoaWRkZW47DQogIGJvcmRlci1zcGFjaW5nOiA0cHggNHB4Ow0KICBib3JkZXItYm90dG9tOiBzb2xpZCAxcHggIzQ0NDsNCn0NCg0KI215U3RyZWFtc0JveCB7DQogIHBvc2l0aW9uOiByZWxhdGl2ZTsNCiAgcGFkZGluZzogMHB4Ow0KICAvKmhlaWdodDogMTAwcHg7Ki8NCiAgbWF4LWhlaWdodDogMTUwcHg7DQogIGJhY2tncm91bmQtY29sb3I6ICMxMTE7DQogIGNvbG9yOiB3aGl0ZTsNCiAgZGlzcGxheTpmbGV4Ow0KICBqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyOw0KICBhbGlnbi1pdGVtczpjZW50ZXI7DQp9DQoNCiNvcGVuU3RyZWFtcyB7DQogIHdpZHRoOiAyMHB4Ow0KICBoZWlnaHQ6IDIwcHg7DQogIGN1cnNvcjogcG9pbnRlcjsNCiAgZmxvYXQ6IHJpZ2h0Ow0KICBwb3NpdGlvbjogYWJzb2x1dGU7DQogIHJpZ2h0OiAwcHg7DQogIGJvdHRvbTogMHB4Ow0KICBiYWNrZ3JvdW5kOiB1cmwoIi4uL2ltZy90b3VjaC5wbmciKTsNCiAgYmFja2dyb3VuZC1jb2xvcjogIzExMTsNCiAgDQogIGJhY2tncm91bmQtcG9zaXRpb246IGJvdHRvbSByaWdodDsgIA0KfQ0KDQojYWxsU3RyZWFtcyB7DQogIHdpZHRoOiAxMDAlOw0KICBoZWlnaHQ6IDEwMCU7DQogIHBhZGRpbmc6IDJweDsgICAgIA0KfQ0KDQojYWN0aXZlU3RyZWFtcywgI2luYWN0aXZlU3RyZWFtcyB7DQogIG92ZXJmbG93LXk6IHNjcm9sbDsNCiAgd2lkdGg6IDUwJTsNCiAgbWF4LWhlaWdodDogMTAwcHg7DQogIGZsb2F0OiBsZWZ0Ow0KfQ0KDQojYWN0aXZlU3RyZWFtcyAudGRLZXksICNpbmFjdGl2ZVN0cmVhbXMgLnRkS2V5IHsNCiAgd2lkdGg6IDc1cHg7DQp9DQoNCg0KDQoNCiNpbmFjdGl2ZVN0cmVhbXMgLnRkS2V5IHsNCiAgY29sb3I6IHJlZDsNCn0NCg0KI2NsaWVudEluZm8gLnRkVmFsLCAjbG9nSW5mbyAudGRWYWwsICNhY3RpdmVTdHJlYW1zIC50ZFZhbCwgI2luYWN0aXZlU3RyZWFtcyAudGRWYWwsICNtYXBwaW5nSW5mbyAudGRWYWx7DQogIGNvbG9yOiAjYWFhOw0KICB3aGl0ZS1zcGFjZTogaW5oZXJpdDsNCn0NCg0KI2JveC13cmFwcGVyIHsNCiAgZGlzcGxheTogaW5saW5lLWJsb2NrOw0KICB3aWR0aDogMTAwJTsNCiAgDQogIG92ZXJmbG93LXk6IHNjcm9sbDsNCn0NCg0KI2NvbnRlbnRfdGFibGUsICNtYXBwaW5nLWRldGFpbC10YWJsZSwgI2NvbnRlbnRfdGFibGUgew0KICBkaXNwbGF5OiB0YWJsZTsNCiAgDQogIGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7DQogIG92ZXJmbG93LXk6IHNjcm9sbDsNCiAgd2lkdGg6IDEwMCU7DQp9DQoNCg0KI2NvbnRlbnRfdGFibGUgLmNvbnRlbnRfdGFibGVfaGVhZGVyIHsNCiAgYmFja2dyb3VuZC1jb2xvcjogIzMzMzsNCiAgaGVpZ2h0OiA1MHB4Ow0KICBib3JkZXItYm90dG9tOiBzb2xpZCAxcHggIzExMTsNCiAgYm9yZGVyLWxlZnQ6IHNvbGlkIDNweCAjMzMzOw0KICBjdXJzb3I6IGF1dG87DQoNCn0NCg0KDQp0Ym9keSB7DQogIHdpZHRoOiAxMDAlOw0KfQ0KDQoNCi50YWJsZUVsbGlwc2lzIHsNCiAgd2lkdGg6IDE1MHB4Ow0KICBvdmVyZmxvdzogaGlkZGVuOw0KICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsNCiAgd2hpdGUtc3BhY2U6IG5vd3JhcDsNCn0NCg0KI2NvbnRlbnRfdGFibGUgaW1nIHsNCiAgZGlzcGxheTogYmxvY2s7DQogIG1heC1oZWlnaHQ6IDI4cHg7DQogIG1hcmdpbi1sZWZ0OiBhdXRvOw0KICBtYXJnaW4tcmlnaHQ6IGF1dG87DQogIG1heC13aWR0aDogMzBweDsNCn0NCg0KI2NvbnRlbnRfdGFibGUgdHJ7DQogIGJvcmRlci1sZWZ0OiBzb2xpZCAzcHggNDQ0Ow0KICBib3JkZXItYm90dG9tOiBzb2xpZCAxcHggIzMzMzsNCiAgY3Vyc29yOiBwb2ludGVyOw0KfQ0KDQojY29udGVudF90YWJsZSB0cjpob3ZlciB7DQogIGJhY2tncm91bmQtY29sb3I6ICMzMzM7DQp9DQoNCiNjb250ZW50X3RhYmxlIHRkIHsNCg0KICBwYWRkaW5nOiAwcHggMnB4Ow0KfQ0KDQojY29udGVudF90YWJsZSBpbnB1dFt0eXBlPXRleHRdew0KICB3aWR0aDogODAlOw0KICBtaW4td2lkdGg6IDM1cHg7DQogIG1heC13aWR0aDogNjBweDsNCiAgYm9yZGVyOiAwcHg7DQogIGJhY2tncm91bmQtY29sb3I6ICMzMzM7DQogIG1hcmdpbi1sZWZ0OiA1cHg7DQogIHRleHQtYWxpZ246IGxlZnQ7DQp9DQoNCiNjb250ZW50X3RhYmxlIGlucHV0W3R5cGU9Y2hlY2tib3hdew0KICBtYXgtd2lkdGg6IDI1cHg7DQogIG1hcmdpbjogYXV0bzsNCn0NCg0KDQouc2hvd0J1bGsgew0KICBkaXNwbGF5OiBibG9jazsNCn0NCg0KLmhpZGVCdWxrIHsNCiAgZGlzcGxheTogbm9uZTsNCn0NCg0KLm5vQnVsayB7DQoNCn0NCg0KI2NvbnRlbnRfdGFibGUgdHIuYWN0aXZlRVBHew0KICBib3JkZXItbGVmdDogc29saWQgM3B4IGxhd25ncmVlbjsNCn0NCg0KI2NvbnRlbnRfdGFibGUgdHIubm90QWN0aXZlRVBHew0KICBib3JkZXItbGVmdDogc29saWQgM3B4IHJlZDsNCn0NCg0KDQojbG9nU2NyZWVuIHB7DQogIHdoaXRlLXNwYWNlOiBwcmU7DQogIGZvbnQtc2l6ZTogMTBweDsNCiAgLyoNCiAgbGluZS1oZWlnaHQ6IDEuNmVtOw0KICBmb250LWZhbWlseTogIkFyaWFsIiwgc2Fucy1zZXJpZjsNCiAgKi8NCiAgbGV0dGVyLXNwYWNpbmc6IDFweDsNCiAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZTsgDQogIGZvbnQtc2l6ZTogMTJweDsgDQogIGZvbnQtc3R5bGU6IG5vcm1hbDsgDQogIGZvbnQtdmFyaWFudDogbm9ybWFsOyANCiAgbGluZS1oZWlnaHQ6IDEuNmVtOyANCn0NCg0KI3BvcHVwIHsNCiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjQpOw0KICBwb3NpdGlvbjogZml4ZWQ7DQogIGxlZnQ6IDBweDsNCiAgd2lkdGg6IDEwMCU7DQogIHotaW5kZXg6IDEwMDsNCiAgaGVpZ2h0OiAxMDAlOw0KfQ0KDQojbWFwcGluZy1kZXRhaWwsICN1c2VyLWRldGFpbCwgI2ZpbGUtZGV0YWlsLCAjcG9wdXAtY3VzdG9tIHsNCiAgYm94LXNoYWRvdzogMHB4IDVweCA0MHB4ICMwMDA7DQogIG1hcmdpbi10b3A6IDIwcHg7DQogIG1hcmdpbi1sZWZ0OiBhdXRvOw0KICBtYXJnaW4tcmlnaHQ6IGF1dG87DQogIA0KICBtYXgtd2lkdGg6IDYwMHB4Ow0KICBiYWNrZ3JvdW5kLWNvbG9yOiAjMjIyOw0KICBwYWRkaW5nOiAxMHB4Ow0KICBvdmVyZmxvdzphdXRvOw0KfQ0KDQojcG9wdXAtY3VzdG9tIGgzIHsNCiAgdGV4dC1hbGlnbjogY2VudGVyOw0KfQ0KDQojZmlsZS1kZXRhaWwgaW5wdXRbdHlwZT10ZXh0XSB7DQogIHdpZHRoOiAtd2Via2l0LWNhbGMoMTAwJSAtIDIwcHgpOw0KICB3aWR0aDogLW1vei1jYWxjKDEwMCUgLSAyMHB4KTsNCiAgd2lkdGg6IGNhbGMoMTAwJSAtIDIwcHgpOw0KfQ0KDQojbWFwcGluZy1kZXRhaWwgaW1nIHsNCiAgZGlzcGxheTogYmxvY2s7DQogIG1heC1oZWlnaHQ6IDMwcHg7DQogIG1hcmdpbi1ib3R0b206IDIwcHg7DQogIG1hcmdpbi1sZWZ0OiBhdXRvOw0KICBtYXJnaW4tcmlnaHQ6IGF1dG87DQp9DQoNCiNwb3B1cC1jdXN0b20gaW5wdXRbdHlwZT10ZXh0XSwgI3BvcHVwLWN1c3RvbSBpbnB1dFt0eXBlPXBhc3N3b3JkXSwgI21hcHBpbmctZGV0YWlsIGlucHV0W3R5cGU9dGV4dF0sICNjb250ZW50X3NldHRpbmdzIGlucHV0W3R5cGU9dGV4dF0sICNjb250ZW50X3NldHRpbmdzIGlucHV0W3R5cGU9cGFzc3dvcmRdew0KICBib3JkZXI6IHNvbGlkIDFweDsNCiAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDsNCiAgYmFja2dyb3VuZC1jb2xvcjogIzMzMzsNCiAgdGV4dC1hbGlnbjogbGVmdDsNCiAgd2lkdGg6IC13ZWJraXQtY2FsYygxMDAlIC0gMjBweCk7DQogIHdpZHRoOiAgICAtbW96LWNhbGMoMTAwJSAtIDIwcHgpOw0KICB3aWR0aDogICAgICAgICBjYWxjKDEwMCUgLSAyMHB4KTsNCn0NCg0KI3BvcHVwLWN1c3RvbSBpbnB1dFt0eXBlPXRleHRdLm5vdEF2YWlsYWJsZSB7DQogIGJvcmRlci1jb2xvcjogcmVkOw0KICBjb2xvcjogIzY2NjsNCiAgY3Vyc29yOiBub3QtYWxsb3dlZDsNCn0NCg0KI21hcHBpbmctZGV0YWlsLXRhYmxlLCAjdXNlci1kZXRhaWwtdGFibGUgew0KICBkaXNwbGF5OiBpbmxpbmUtdGFibGU7DQogIHdpZHRoOiAxMDAlOw0KfQ0KDQojcG9wdXAtY3VzdG9tIHRhYmxlLCAjY29udGVudF9zZXR0aW5ncyB0YWJsZSB7DQogIGRpc3BsYXk6IGlubGluZS10YWJsZTsNCiAgdGFibGUtbGF5b3V0OiBmaXhlZDsNCiAgd2lkdGg6IDEwMCU7DQp9DQoNCg0KI21hcHBpbmctZGV0YWlsLXRhYmxlIHRkLCAjdXNlci1kZXRhaWwtdGFibGUgdGQgew0KICBwYWRkaW5nOiAxMHB4IDBweDsNCg0KfQ0KDQojbWFwcGluZy1kZXRhaWwtdGFibGUgdGQubGVmdCwgI3VzZXItZGV0YWlsLXRhYmxlIHRkLmxlZnQsICNwb3B1cC1jdXN0b20gdGQubGVmdCB7DQogIHdpZHRoOiAzOCU7DQp9DQoNCi5pbnRlcmFjdGlvbiwgI2ludGVyYWN0aW9uIHsNCiAgbWFyZ2luLXRvcDogMjBweDsNCiAgZGlzcGxheTogaW5saW5lLWZsZXg7DQogIGZsb2F0OiByaWdodDsNCn0NCg0KLmludGVyYWN0aW9uIGlucHV0W3R5cGU9YnV0dG9uXSwgLmludGVyYWN0aW9uIGlucHV0W3R5cGU9c3VibWl0XSB7DQogIGJhY2tncm91bmQtY29sb3I6ICMwMDA7DQogIG1pbi13aWR0aDogMTAwcHg7DQogIG1hcmdpbjogMHB4IDEwcHg7DQogIHRleHQtYWxpZ246IGNlbnRlcjsNCn0NCg0KI25vdGlmaWNhdGlvbiB7DQogIGRpc3BsYXk6IGJsb2NrOw0KICBwb3NpdGlvbjogZml4ZWQ7DQogIHJpZ2h0OiAwcHg7DQogIGhlaWdodDogMTAwJTsNCiAgd2lkdGg6IDI1MHB4Ow0KICANCiAgYmFja2dyb3VuZC1jb2xvcjogIzIyMjsNCiAgYm94LXNoYWRvdzogMHB4IDBweCAyMHB4ICMwMDA7DQp9DQoNCiNub3RpZmljYXRpb24gaDUgew0KICBiYWNrZ3JvdW5kLWNvbG9yOiAjMTIxMjEyOw0KICBwYWRkaW5nOiA1cHggMTBweCA1cHggMTBweDsNCn0NCg0KI25vdGlmaWNhdGlvbiBwcmUgew0KICBwYWRkaW5nOiAwcHggMTBweCAwcHggMTBweDsNCn0NCg0KI25vdGlmaWNhdGlvbiBwIHsNCiAgZm9udC1zaXplOiAxMCBweDsNCiAgbWFyZ2luOiAwcHg7DQogIHBhZGRpbmc6IDBweCAxMHB4IDVweCAxMHB4Ow0KfQ0KDQojbm90aWZpY2F0aW9uIC5lbGVtZW50IHsNCiAgLypwYWRkaW5nOiAwcHggNXB4OyovDQogIG1hcmdpbjogNXB4IDVweDsNCiAgYm9yZGVyLXJhZGl1czogNXB4Ow0KICBiYWNrZ3JvdW5kLWNvbG9yOiAjMTgxODE4Ow0KICBib3JkZXItbGVmdDogMTBweCBzb2xpZCBncmVlbjsNCn0NCg0KDQpAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDYyMHB4KXsNCiAgYm9keSB7DQogICAgd2lkdGg6IDEwMCU7DQogICAgYmFja2dyb3VuZC1jb2xvcjogIzQ0NDsNCiAgfQ0KDQogIGgxIHsNCiAgICBmb250LXNpemU6IDI2cHg7DQogICAgbGV0dGVyLXNwYWNpbmc6IDNweDsNCiAgfQ0KDQogIG5hdiBwIHsNCiAgICBkaXNwbGF5OiBibG9jazsNCiAgfQ0KDQoNCg0KICAjaGVhZGVyX2NvbmZpZyB7DQogICAgZGlzcGxheTogYmxvY2s7DQogICAgaGVpZ2h0OiAxMDBweDsNCiAgICBiYWNrZ3JvdW5kOiB1cmwoIi4uL2ltZy9sb2dvX3dfNjAweDIwMC5wbmciKTsNCiAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0Ow0KICAgIA0KICAgIGJhY2tncm91bmQtc2l6ZTogMzAwcHggMTAwcHg7DQogIH0NCg0KICAjc2NyZWVuTG9nIHsNCiAgICBtYXJnaW4tbGVmdDogMzAwcHg7DQoNCiAgICB0cmFuc2l0aW9uOiBub25lOw0KICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50Ow0KICAgIGJvcmRlci1ib3R0b206IHNvbGlkIDFweCB0cmFuc3BhcmVudDsNCiAgICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAjMjIyOw0KICB9DQoNCiAgI3NldHRpbmdzIHsNCiAgICAvKg0KICAgIGhlaWdodDogLXdlYmtpdC1jYWxjKDEwMCUgLSAxMDBweCk7DQogICAgaGVpZ2h0OiAtbW96LWNhbGMoMTAwJSAtIDEwMHB4KTsNCiAgICBoZWlnaHQ6IGNhbGMoMTAwJSAtIDEwMHB4KTsNCiAgICAqLw0KICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsNCiAgICBvdmVyZmxvdzogYXV0bzsNCiAgfQ0KDQoNCiAgLnNjcmVlbkxvZ0hpZGRlbiB7DQogICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMHB4LCAwcHgpOw0KICB9DQoNCg0KICAjYm94IHsNCiAgICBkaXNwbGF5OiBibG9jazsNCiAgICBtaW4taGVpZ2h0OiA1MDBweDsNCiAgICBtYXgtd2lkdGg6IDUwMHB4Ow0KICAgIG1hcmdpbjogMTBweCBhdXRvOw0KICAgIGJhY2tncm91bmQtY29sb3I6ICM0NDQ7DQogICAgYm94LXNoYWRvdzogMHB4IDVweCA1cHggIzIyMjsNCg0KICAgIGRpc3BsYXk6IGZsZXg7DQogICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsNCiAgfQ0KDQogICNzZXR0aW5ncywgI3NldHRpbmdzLWZvb3RlciB7DQogICAgDQogIH0NCn0NCg==" + webUI["html/css/screen.css"] = "bmF2IGltZyB7DQogIGRpc3BsYXk6IGJsb2NrOw0KICBtYXgtaGVpZ2h0OiAyMHB4Ow0KICBtYXgtd2lkdGg6IDIwcHg7DQogIGZsb2F0OiBsZWZ0Ow0KfQ0KDQpuYXYgcCB7DQogIHRleHQtYWxpZ246IGxlZnQ7DQogIHBhZGRpbmc6IDBweCAzMHB4Ow0KfQ0KDQojbGF5b3V0IHsNCiAgZGlzcGxheTogYmxvY2s7DQogIGhlaWdodDogMTAwJTsNCn0NCg0KDQoubGF5b3V0LWxlZnQgew0KICBkaXNwbGF5OiBibG9jazsNCiAgbWluLXdpZHRoOiAxNTBweDsNCiAgbWF4LXdpZHRoOiAyMCU7DQogIGJhY2tncm91bmQtY29sb3I6ICMxMTE7DQogIGhlaWdodDogaW5oZXJpdDsNCiAgZmxvYXQ6IGxlZnQ7DQp9DQoNCi5sYXlvdXQtcmlnaHQgew0KICBkaXNwbGF5OiBibG9jazsNCiAgYmFja2dyb3VuZC1jb2xvcjogIzQ0NDsNCn0NCg0KI21lbnUtd3JhcHBlciB7DQogIGhlaWdodDogMTAwJTsNCn0NCg0KDQojbG9nbyB7DQogIGRpc3BsYXk6IGJsb2NrOw0KICBtaW4td2lkdGg6IDE4MHB4Ow0KICB3aWR0aDogMTAwJTsNCiAgaGVpZ2h0OiAxMDBweDsNCiAgYmFja2dyb3VuZDogdXJsKCIuLi9pbWcvbG9nb193XzYwMHgyMDAucG5nIik7DQogIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7DQogIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjsgDQogIGJhY2tncm91bmQtc2l6ZTogMTAwJTsNCn0NCg0KDQojcGFnZSB7DQogIG1heC13aWR0aDogOTUwcHg7DQogIG1hcmdpbjogYXV0bzsNCiAgYmFja2dyb3VuZC1jb2xvcjogIzQ0NDsNCg0KICAvKg0KICBoZWlnaHQ6IC13ZWJraXQtY2FsYygxMDAlIC0gMTMwcHgpOw0KICBoZWlnaHQ6IC1tb3otY2FsYygxMDAlIC0gMTMwcHgpOw0KICBoZWlnaHQ6IGNhbGMoMTAwJSAtIDEzMHB4KTsNCiAgKi8NCiAgDQogIG1pbi1oZWlnaHQ6IC13ZWJraXQtY2FsYygxMDAlIC0gMTIwcHgpOw0KICBtaW4taGVpZ2h0OiAtbW96LWNhbGMoMTAwJSAtIDEyMHB4KTsNCiAgbWluLWhlaWdodDogY2FsYygxMDAlIC0gMTIwcHgpOw0KICANCiAgDQogIGJveC1zaGFkb3c6IDBweCA1cHggNXB4ICMyMjI7DQogIA0KfQ0KDQojdWlTZXR0aW5nIHsNCiAgZmxvYXQ6IHJpZ2h0Ow0KICBtYXJnaW4tcmlnaHQ6IDI1cHg7DQp9DQoNCiNib3ggaW5wdXRbdHlwZT10ZXh0XSwgI2JveCBpbnB1dFt0eXBlPXBhc3N3b3JkXSB7DQogIHdpZHRoOiAtd2Via2l0LWNhbGMoMTAwJSAtIDIwcHgpOw0KICB3aWR0aDogLW1vei1jYWxjKDEwMCUgLSAyMHB4KTsNCiAgd2lkdGg6IGNhbGMoMTAwJSAtIDIwcHgpOw0KfQ0KDQojYm94IGlucHV0W3R5cGU9c3VibWl0XXsNCiAgbWFyZ2luOiA1MHB4IGF1dG87DQp9DQoNCiNzZXR0aW5ncyB7DQogIGRpc3BsYXk6IGJsb2NrOw0KICBwYWRkaW5nOiAxMHB4IDEwcHg7DQp9DQoNCiNzZXR0aW5ncyBoNSB7DQogIG1hcmdpbjogNTBweCAwcHggMTBweCAwcHg7DQp9DQoNCiNjb250ZW50LWludGVyYWN0aW9uIC5zZWFyY2ggew0KICB3aWR0aDogMjAwcHg7DQogIGJvcmRlcjogMXB4IHNvbGlkICMwMDA7DQogIHBhZGRpbmc6IDlweDsNCiAgYmFja2dyb3VuZC1jb2xvcjogIzMzMzsNCiAgbWFyZ2luOiAxMHB4Ow0KICBmbG9hdDogcmlnaHQ7DQogIGJvcmRlci1yYWRpdXM6IDNweDsNCg0KfQ0KDQojbXlTdHJlYW1zIHsNCiAgcG9zaXRpb246IGZpeGVkOw0KICBib3R0b206IDBweDsNCiAgYmFja2dyb3VuZC1jb2xvcjogIzExMTsNCiAgd2lkdGg6IDEwMCU7DQogIG1heC13aWR0aDogOTUwcHg7DQoNCiAgLyoNCiAgbWF4LWhlaWdodDogMTAwcHg7DQogICovDQogIG1hcmdpbi1ib3R0b206IDBweDsNCn0NCg0KI215U3RyZWFtcyBpbWcgew0KICB3aWR0aDogNCU7DQogIHBhZGRpbmc6IDJweCA1cHg7DQogIGN1cnNvcjogcG9pbnRlcjsNCiAgZmxvYXQ6IHJpZ2h0Ow0KfQ0KDQojc2V0dGluZ3MtZm9vdGVyIHsNCg0KfQ0KDQoNCi8qIFdpemFyZCovDQojYm94IHsNCiAgYmFja2dyb3VuZC1jb2xvcjogIzQ0NDsNCiAgbWluLWhlaWdodDogNDAwcHg7DQogIA0KICBkaXNwbGF5OiBmbGV4Ow0KICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOw0KICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47DQp9DQoNCiNib3ggcHsNCiAgcGFkZGluZzogMTBweCAwcHg7DQp9DQoNCiNib3gtZm9vdGVyIHsNCiAgbWFyZ2luLXRvcDogYXV0bzsNCn0NCg0KI2JveC1mb290ZXIgew0KICBtYXJnaW46IGF1dG87DQogIHBhZGRpbmc6IDEwcHg7DQp9DQoNCiNoZWFkbGluZSB7DQogIGJhY2tncm91bmQtY29sb3I6ICMyMjI7DQogIGJvcmRlci1ib3R0b206IHNvbGlkIDJweCAjMjIyOw0KICB0cmFuc2l0aW9uOiBhbGwgMC41czsNCiAgcGFkZGluZzogMTBweCAwcHg7DQogIGRpc3BsYXk6IGJsb2NrOw0KfQ0KDQojY29udGVudCB7DQogIGRpc3BsYXk6IGJsb2NrOw0KICBvdmVyZmxvdzogYXV0bzsNCiAgcGFkZGluZzogMTBweDsNCn0NCg0KLyogLS0tICovDQoNCg0KI2NsaWVudEluZm8sICNhY3RpdmVTdHJlYW1zLCAjaW5hY3RpdmVTdHJlYW1zIHsNCiAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZTsNCiAgZGlzcGxheTogYmxvY2s7DQogIGZvbnQtc2l6ZTogOXB4Ow0KICBiYWNrZ3JvdW5kLWNvbG9yOiAjMTExOw0KICBjb2xvcjogIzAwRTZGRjsNCiAgYm9yZGVyLWJvdHRvbTogc29saWQgMHB4OzsNCiAgcGFkZGluZzogMHB4Ow0KICBsZXR0ZXItc3BhY2luZzogMXB4Ow0KICBvdmVyZmxvdy14OiBoaWRkZW47DQogIGJvcmRlci1zcGFjaW5nOiA0cHggNHB4Ow0KICBib3JkZXItYm90dG9tOiBzb2xpZCAxcHggIzQ0NDsNCn0NCg0KI215U3RyZWFtc0JveCB7DQogIHBvc2l0aW9uOiByZWxhdGl2ZTsNCiAgcGFkZGluZzogMHB4Ow0KICAvKmhlaWdodDogMTAwcHg7Ki8NCiAgbWF4LWhlaWdodDogMTUwcHg7DQogIGJhY2tncm91bmQtY29sb3I6ICMxMTE7DQogIGNvbG9yOiB3aGl0ZTsNCiAgZGlzcGxheTpmbGV4Ow0KICBqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyOw0KICBhbGlnbi1pdGVtczpjZW50ZXI7DQp9DQoNCiNvcGVuU3RyZWFtcyB7DQogIHdpZHRoOiAyMHB4Ow0KICBoZWlnaHQ6IDIwcHg7DQogIGN1cnNvcjogcG9pbnRlcjsNCiAgZmxvYXQ6IHJpZ2h0Ow0KICBwb3NpdGlvbjogYWJzb2x1dGU7DQogIHJpZ2h0OiAwcHg7DQogIGJvdHRvbTogMHB4Ow0KICBiYWNrZ3JvdW5kOiB1cmwoIi4uL2ltZy90b3VjaC5wbmciKTsNCiAgYmFja2dyb3VuZC1jb2xvcjogIzExMTsNCiAgDQogIGJhY2tncm91bmQtcG9zaXRpb246IGJvdHRvbSByaWdodDsgIA0KfQ0KDQojYWxsU3RyZWFtcyB7DQogIHdpZHRoOiAxMDAlOw0KICBoZWlnaHQ6IDEwMCU7DQogIHBhZGRpbmc6IDJweDsgICAgIA0KfQ0KDQojYWN0aXZlU3RyZWFtcywgI2luYWN0aXZlU3RyZWFtcyB7DQogIG92ZXJmbG93LXk6IHNjcm9sbDsNCiAgd2lkdGg6IDUwJTsNCiAgbWF4LWhlaWdodDogMTAwcHg7DQogIGZsb2F0OiBsZWZ0Ow0KfQ0KDQojYWN0aXZlU3RyZWFtcyAudGRLZXksICNpbmFjdGl2ZVN0cmVhbXMgLnRkS2V5IHsNCiAgd2lkdGg6IDc1cHg7DQp9DQoNCg0KDQoNCiNpbmFjdGl2ZVN0cmVhbXMgLnRkS2V5IHsNCiAgY29sb3I6IHJlZDsNCn0NCg0KI2NsaWVudEluZm8gLnRkVmFsLCAjbG9nSW5mbyAudGRWYWwsICNhY3RpdmVTdHJlYW1zIC50ZFZhbCwgI2luYWN0aXZlU3RyZWFtcyAudGRWYWwsICNtYXBwaW5nSW5mbyAudGRWYWx7DQogIGNvbG9yOiAjYWFhOw0KICB3aGl0ZS1zcGFjZTogaW5oZXJpdDsNCn0NCg0KI2JveC13cmFwcGVyIHsNCiAgZGlzcGxheTogaW5saW5lLWJsb2NrOw0KICB3aWR0aDogMTAwJTsNCiAgDQogIG92ZXJmbG93LXk6IHNjcm9sbDsNCn0NCg0KI2NvbnRlbnRfdGFibGUsICNtYXBwaW5nLWRldGFpbC10YWJsZSwgI2NvbnRlbnRfdGFibGUgew0KICBkaXNwbGF5OiB0YWJsZTsNCiAgDQogIGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7DQogIG92ZXJmbG93LXk6IHNjcm9sbDsNCiAgd2lkdGg6IDEwMCU7DQp9DQoNCg0KI2NvbnRlbnRfdGFibGUgLmNvbnRlbnRfdGFibGVfaGVhZGVyIHsNCiAgYmFja2dyb3VuZC1jb2xvcjogIzMzMzsNCiAgaGVpZ2h0OiA1MHB4Ow0KICBib3JkZXItYm90dG9tOiBzb2xpZCAxcHggIzExMTsNCiAgYm9yZGVyLWxlZnQ6IHNvbGlkIDNweCAjMzMzOw0KICBjdXJzb3I6IGF1dG87DQoNCn0NCg0KDQp0Ym9keSB7DQogIHdpZHRoOiAxMDAlOw0KfQ0KDQoNCi50YWJsZUVsbGlwc2lzIHsNCiAgd2lkdGg6IDE1MHB4Ow0KICBvdmVyZmxvdzogaGlkZGVuOw0KICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsNCiAgd2hpdGUtc3BhY2U6IG5vd3JhcDsNCn0NCg0KI2NvbnRlbnRfdGFibGUgaW1nIHsNCiAgZGlzcGxheTogYmxvY2s7DQogIG1heC1oZWlnaHQ6IDI4cHg7DQogIG1hcmdpbi1sZWZ0OiBhdXRvOw0KICBtYXJnaW4tcmlnaHQ6IGF1dG87DQogIG1heC13aWR0aDogMzBweDsNCn0NCg0KI2NvbnRlbnRfdGFibGUgdHJ7DQogIGJvcmRlci1sZWZ0OiBzb2xpZCAzcHggNDQ0Ow0KICBib3JkZXItYm90dG9tOiBzb2xpZCAxcHggIzMzMzsNCiAgY3Vyc29yOiBwb2ludGVyOw0KfQ0KDQojY29udGVudF90YWJsZSB0cjpob3ZlciB7DQogIGJhY2tncm91bmQtY29sb3I6ICMzMzM7DQp9DQoNCiNjb250ZW50X3RhYmxlIHRkIHsNCg0KICBwYWRkaW5nOiAwcHggMnB4Ow0KfQ0KDQojY29udGVudF90YWJsZSBpbnB1dFt0eXBlPXRleHRdew0KICB3aWR0aDogODAlOw0KICBtaW4td2lkdGg6IDM1cHg7DQogIG1heC13aWR0aDogNjBweDsNCiAgYm9yZGVyOiAwcHg7DQogIGJhY2tncm91bmQtY29sb3I6ICMzMzM7DQogIG1hcmdpbi1sZWZ0OiA1cHg7DQogIHRleHQtYWxpZ246IGxlZnQ7DQp9DQoNCiNjb250ZW50X3RhYmxlIGlucHV0W3R5cGU9Y2hlY2tib3hdew0KICBtYXgtd2lkdGg6IDI1cHg7DQogIG1hcmdpbjogYXV0bzsNCn0NCg0KDQouc2hvd0J1bGsgew0KICBkaXNwbGF5OiBibG9jazsNCn0NCg0KLmhpZGVCdWxrIHsNCiAgZGlzcGxheTogbm9uZTsNCn0NCg0KLm5vQnVsayB7DQoNCn0NCg0KI2NvbnRlbnRfdGFibGUgdHIuYWN0aXZlRVBHew0KICBib3JkZXItbGVmdDogc29saWQgM3B4IGxhd25ncmVlbjsNCn0NCg0KI2NvbnRlbnRfdGFibGUgdHIubm90QWN0aXZlRVBHew0KICBib3JkZXItbGVmdDogc29saWQgM3B4IHJlZDsNCn0NCg0KDQojbG9nU2NyZWVuIHB7DQogIHdoaXRlLXNwYWNlOiBwcmU7DQogIGZvbnQtc2l6ZTogMTBweDsNCiAgLyoNCiAgbGluZS1oZWlnaHQ6IDEuNmVtOw0KICBmb250LWZhbWlseTogIkFyaWFsIiwgc2Fucy1zZXJpZjsNCiAgKi8NCiAgbGV0dGVyLXNwYWNpbmc6IDFweDsNCiAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZTsgDQogIGZvbnQtc2l6ZTogMTJweDsgDQogIGZvbnQtc3R5bGU6IG5vcm1hbDsgDQogIGZvbnQtdmFyaWFudDogbm9ybWFsOyANCiAgbGluZS1oZWlnaHQ6IDEuNmVtOyANCn0NCg0KI3BvcHVwIHsNCiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjQpOw0KICBwb3NpdGlvbjogZml4ZWQ7DQogIGxlZnQ6IDBweDsNCiAgd2lkdGg6IDEwMCU7DQogIHotaW5kZXg6IDEwMDsNCiAgaGVpZ2h0OiAxMDAlOw0KfQ0KDQojbWFwcGluZy1kZXRhaWwsICN1c2VyLWRldGFpbCwgI2ZpbGUtZGV0YWlsLCAjcG9wdXAtY3VzdG9tIHsNCiAgYm94LXNoYWRvdzogMHB4IDVweCA0MHB4ICMwMDA7DQogIG1hcmdpbi10b3A6IDIwcHg7DQogIG1hcmdpbi1sZWZ0OiBhdXRvOw0KICBtYXJnaW4tcmlnaHQ6IGF1dG87DQogIA0KICBtYXgtd2lkdGg6IDYwMHB4Ow0KICBiYWNrZ3JvdW5kLWNvbG9yOiAjMjIyOw0KICBwYWRkaW5nOiAxMHB4Ow0KICBvdmVyZmxvdzphdXRvOw0KfQ0KDQojcG9wdXAtY3VzdG9tIGgzIHsNCiAgdGV4dC1hbGlnbjogY2VudGVyOw0KfQ0KDQojZmlsZS1kZXRhaWwgaW5wdXRbdHlwZT10ZXh0XSB7DQogIHdpZHRoOiAtd2Via2l0LWNhbGMoMTAwJSAtIDIwcHgpOw0KICB3aWR0aDogLW1vei1jYWxjKDEwMCUgLSAyMHB4KTsNCiAgd2lkdGg6IGNhbGMoMTAwJSAtIDIwcHgpOw0KfQ0KDQojbWFwcGluZy1kZXRhaWwgaW1nIHsNCiAgZGlzcGxheTogYmxvY2s7DQogIG1heC1oZWlnaHQ6IDMwcHg7DQogIG1hcmdpbi1ib3R0b206IDIwcHg7DQogIG1hcmdpbi1sZWZ0OiBhdXRvOw0KICBtYXJnaW4tcmlnaHQ6IGF1dG87DQp9DQoNCiNwb3B1cC1jdXN0b20gaW5wdXRbdHlwZT10ZXh0XSwgI3BvcHVwLWN1c3RvbSBpbnB1dFt0eXBlPXBhc3N3b3JkXSwgI21hcHBpbmctZGV0YWlsIGlucHV0W3R5cGU9dGV4dF0sICNjb250ZW50X3NldHRpbmdzIGlucHV0W3R5cGU9dGV4dF0sICNjb250ZW50X3NldHRpbmdzIGlucHV0W3R5cGU9cGFzc3dvcmRdew0KICBib3JkZXI6IHNvbGlkIDFweDsNCiAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDsNCiAgYmFja2dyb3VuZC1jb2xvcjogIzMzMzsNCiAgdGV4dC1hbGlnbjogbGVmdDsNCiAgd2lkdGg6IC13ZWJraXQtY2FsYygxMDAlIC0gMjBweCk7DQogIHdpZHRoOiAgICAtbW96LWNhbGMoMTAwJSAtIDIwcHgpOw0KICB3aWR0aDogICAgICAgICBjYWxjKDEwMCUgLSAyMHB4KTsNCn0NCg0KI3BvcHVwLWN1c3RvbSBpbnB1dFt0eXBlPXRleHRdLm5vdEF2YWlsYWJsZSB7DQogIGJvcmRlci1jb2xvcjogcmVkOw0KICBjb2xvcjogIzY2NjsNCiAgY3Vyc29yOiBub3QtYWxsb3dlZDsNCn0NCg0KI3BvcHVwLWN1c3RvbSBpbnB1dFt0eXBlPXRleHRdOmRpc2FibGVkIHsNCiAgY29sb3I6ICM2NjY7DQogIGN1cnNvcjogbm90LWFsbG93ZWQ7DQp9DQoNCiNtYXBwaW5nLWRldGFpbC10YWJsZSwgI3VzZXItZGV0YWlsLXRhYmxlIHsNCiAgZGlzcGxheTogaW5saW5lLXRhYmxlOw0KICB3aWR0aDogMTAwJTsNCn0NCg0KI3BvcHVwLWN1c3RvbSB0YWJsZSwgI2NvbnRlbnRfc2V0dGluZ3MgdGFibGUgew0KICBkaXNwbGF5OiBpbmxpbmUtdGFibGU7DQogIHRhYmxlLWxheW91dDogZml4ZWQ7DQogIHdpZHRoOiAxMDAlOw0KfQ0KDQoNCiNtYXBwaW5nLWRldGFpbC10YWJsZSB0ZCwgI3VzZXItZGV0YWlsLXRhYmxlIHRkIHsNCiAgcGFkZGluZzogMTBweCAwcHg7DQoNCn0NCg0KI21hcHBpbmctZGV0YWlsLXRhYmxlIHRkLmxlZnQsICN1c2VyLWRldGFpbC10YWJsZSB0ZC5sZWZ0LCAjcG9wdXAtY3VzdG9tIHRkLmxlZnQgew0KICB3aWR0aDogMzglOw0KfQ0KDQouaW50ZXJhY3Rpb24sICNpbnRlcmFjdGlvbiB7DQogIG1hcmdpbi10b3A6IDIwcHg7DQogIGRpc3BsYXk6IGlubGluZS1mbGV4Ow0KICBmbG9hdDogcmlnaHQ7DQp9DQoNCi5pbnRlcmFjdGlvbiBpbnB1dFt0eXBlPWJ1dHRvbl0sIC5pbnRlcmFjdGlvbiBpbnB1dFt0eXBlPXN1Ym1pdF0gew0KICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDAwOw0KICBtaW4td2lkdGg6IDEwMHB4Ow0KICBtYXJnaW46IDBweCAxMHB4Ow0KICB0ZXh0LWFsaWduOiBjZW50ZXI7DQp9DQoNCiNub3RpZmljYXRpb24gew0KICBkaXNwbGF5OiBibG9jazsNCiAgcG9zaXRpb246IGZpeGVkOw0KICByaWdodDogMHB4Ow0KICBoZWlnaHQ6IDEwMCU7DQogIHdpZHRoOiAyNTBweDsNCiAgDQogIGJhY2tncm91bmQtY29sb3I6ICMyMjI7DQogIGJveC1zaGFkb3c6IDBweCAwcHggMjBweCAjMDAwOw0KfQ0KDQojbm90aWZpY2F0aW9uIGg1IHsNCiAgYmFja2dyb3VuZC1jb2xvcjogIzEyMTIxMjsNCiAgcGFkZGluZzogNXB4IDEwcHggNXB4IDEwcHg7DQp9DQoNCiNub3RpZmljYXRpb24gcHJlIHsNCiAgcGFkZGluZzogMHB4IDEwcHggMHB4IDEwcHg7DQp9DQoNCiNub3RpZmljYXRpb24gcCB7DQogIGZvbnQtc2l6ZTogMTAgcHg7DQogIG1hcmdpbjogMHB4Ow0KICBwYWRkaW5nOiAwcHggMTBweCA1cHggMTBweDsNCn0NCg0KI25vdGlmaWNhdGlvbiAuZWxlbWVudCB7DQogIC8qcGFkZGluZzogMHB4IDVweDsqLw0KICBtYXJnaW46IDVweCA1cHg7DQogIGJvcmRlci1yYWRpdXM6IDVweDsNCiAgYmFja2dyb3VuZC1jb2xvcjogIzE4MTgxODsNCiAgYm9yZGVyLWxlZnQ6IDEwcHggc29saWQgZ3JlZW47DQp9DQoNCg0KQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2MjBweCl7DQogIGJvZHkgew0KICAgIHdpZHRoOiAxMDAlOw0KICAgIGJhY2tncm91bmQtY29sb3I6ICM0NDQ7DQogIH0NCg0KICBoMSB7DQogICAgZm9udC1zaXplOiAyNnB4Ow0KICAgIGxldHRlci1zcGFjaW5nOiAzcHg7DQogIH0NCg0KICBuYXYgcCB7DQogICAgZGlzcGxheTogYmxvY2s7DQogIH0NCg0KDQoNCiAgI2hlYWRlcl9jb25maWcgew0KICAgIGRpc3BsYXk6IGJsb2NrOw0KICAgIGhlaWdodDogMTAwcHg7DQogICAgYmFja2dyb3VuZDogdXJsKCIuLi9pbWcvbG9nb193XzYwMHgyMDAucG5nIik7DQogICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDsNCiAgICANCiAgICBiYWNrZ3JvdW5kLXNpemU6IDMwMHB4IDEwMHB4Ow0KICB9DQoNCiAgI3NjcmVlbkxvZyB7DQogICAgbWFyZ2luLWxlZnQ6IDMwMHB4Ow0KDQogICAgdHJhbnNpdGlvbjogbm9uZTsNCiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDsNCiAgICBib3JkZXItYm90dG9tOiBzb2xpZCAxcHggdHJhbnNwYXJlbnQ7DQogICAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggIzIyMjsNCiAgfQ0KDQogICNzZXR0aW5ncyB7DQogICAgLyoNCiAgICBoZWlnaHQ6IC13ZWJraXQtY2FsYygxMDAlIC0gMTAwcHgpOw0KICAgIGhlaWdodDogLW1vei1jYWxjKDEwMCUgLSAxMDBweCk7DQogICAgaGVpZ2h0OiBjYWxjKDEwMCUgLSAxMDBweCk7DQogICAgKi8NCiAgICBwb3NpdGlvbjogcmVsYXRpdmU7DQogICAgb3ZlcmZsb3c6IGF1dG87DQogIH0NCg0KDQogIC5zY3JlZW5Mb2dIaWRkZW4gew0KICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDBweCwgMHB4KTsNCiAgfQ0KDQoNCiAgI2JveCB7DQogICAgZGlzcGxheTogYmxvY2s7DQogICAgbWluLWhlaWdodDogNTAwcHg7DQogICAgbWF4LXdpZHRoOiA1MDBweDsNCiAgICBtYXJnaW46IDEwcHggYXV0bzsNCiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNDQ0Ow0KICAgIGJveC1zaGFkb3c6IDBweCA1cHggNXB4ICMyMjI7DQoNCiAgICBkaXNwbGF5OiBmbGV4Ow0KICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47DQogIH0NCg0KICAjc2V0dGluZ3MsICNzZXR0aW5ncy1mb290ZXIgew0KICAgIA0KICB9DQp9DQo=" webUI["html/img/BC-QR.jpg"] = "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" webUI["html/img/filter.png"] = "iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAAAXNSR0IArs4c6QAAAAlwSFlzAAAsSwAALEsBpT2WqQAABCRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IlhNUCBDb3JlIDUuNC4wIj4KICAgPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIgogICAgICAgICAgICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgICAgICAgICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyI+CiAgICAgICAgIDx0aWZmOlJlc29sdXRpb25Vbml0PjI8L3RpZmY6UmVzb2x1dGlvblVuaXQ+CiAgICAgICAgIDx0aWZmOkNvbXByZXNzaW9uPjU8L3RpZmY6Q29tcHJlc3Npb24+CiAgICAgICAgIDx0aWZmOlhSZXNvbHV0aW9uPjI4ODwvdGlmZjpYUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6T3JpZW50YXRpb24+MTwvdGlmZjpPcmllbnRhdGlvbj4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+Mjg4PC90aWZmOllSZXNvbHV0aW9uPgogICAgICAgICA8ZXhpZjpQaXhlbFhEaW1lbnNpb24+NTA8L2V4aWY6UGl4ZWxYRGltZW5zaW9uPgogICAgICAgICA8ZXhpZjpDb2xvclNwYWNlPjE8L2V4aWY6Q29sb3JTcGFjZT4KICAgICAgICAgPGV4aWY6UGl4ZWxZRGltZW5zaW9uPjUwPC9leGlmOlBpeGVsWURpbWVuc2lvbj4KICAgICAgICAgPGRjOnN1YmplY3Q+CiAgICAgICAgICAgIDxyZGY6QmFnLz4KICAgICAgICAgPC9kYzpzdWJqZWN0PgogICAgICAgICA8eG1wOk1vZGlmeURhdGU+MjAxOC0wNy0yOFQxOTowNzo2OTwveG1wOk1vZGlmeURhdGU+CiAgICAgICAgIDx4bXA6Q3JlYXRvclRvb2w+UGl4ZWxtYXRvciAzLjM8L3htcDpDcmVhdG9yVG9vbD4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgIDwvcmRmOlJERj4KPC94OnhtcG1ldGE+Cs038OQAAAOISURBVGgF5ZpLSBVRGMfvvfmqCKKiKCqKtE3SQ8haJJm1ctPCZYHrFhXtohcUBLVsU1BRBJKLXpsSKs1aCL1oUUhvMgIloodZKmLZ72+OzNVx7jzOXGfqg/89Z875zv/7f35n7px7vanUP2JptzyGhoYKmK8GW0EZmA/mgW7wHrwDN0BTOp0epPVtxBBnLdgIVoE5YBboBR2gDTTA/5DWn0FeDPaBz8CLdeF0EBR5jYRvKbgABoAXa8Opwit/CudK8NoLs4PPM8ZyBsNnB/jpsD7X0C8cjgDXnaQkqkEPCGMSuGWivxxzx8OQj6xtpHWuPhPloHfEMWzTD0HN2GQY2xuW2Lb+/Fh+VaIQPLE5meh+gmSxFYz+BjBogtjGscfiH26Z2GmbNNltVQAIpwDdP6ZNO2iRYqTpZGhfgWUaiMC2w1kCzkbALcqLvDVvUyK6MW9HFES0b8BvsFwXEZi4F+iBtykCcjtlqf0igr52VJ1eqiIgzzdlrRIZfWfJd3SD8ZbqHvkB4XSDpJNB9V0VcX/cT4Ys/zEzSuSj/3WxW9GpRD7ETpZ/QcOJ6LyfdHugitxNehbob9G7lo4PXWBmQhPqQ/fsDOeUfjqNCU1Csi+TQ5+2luzc3yaRr6elevQZwhZr4bomYam0U41yabYqov5hvSTMjlp6RyuiAarSTLPZmox5246+lVREx/isiuh6NxhUJwF2yEpCWu1bK8WEsjyRgCSa0XrVrjNra2mC7TWD5ilYAuJoA4jSlnppF5dVEU3g0ENTD4b3nsZiZsfGJuGqj8qY+CINGqP2GLZCJ+HjtpblxAJ9k3cPrLfGJrnVUaSCarxw0jFua1lOLNBerANx+byya6IkLM2uLZWpAl6/Mcc1EjvjKtLrJNLqI5HnjfQ+bsVeteb0g2y/t7hGvd7CNjenOL8OkJ40KtOdTF+Cl/nV6Mkf4gxocI9vZPYLLKs9iQrqRIACcM2IXGeSboYrg+rztY5ARaDJWUeo0W+sXudLTFhnApaAW6FkZy/+yuXasLoCrSfwVHAnW0+gK93YawKJMLUIAdNAKwhqnSxcYUpPKB6EBE2mg7VR///EX24jybTQerXnOC70FyVP3gjTPXPTQyaP8NFPNeJrCNTPP667JKOq6VNo/A2hes5ccUjmEmPmDoD5+FMgWCcA+3FG57QJP//kQ1PgGBIOToEDgUn+t4V/AJeGknwARIKLAAAAAElFTkSuQmCC" webUI["html/img/log.png"] = "iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAAAXNSR0IArs4c6QAAAAlwSFlzAAAsSwAALEsBpT2WqQAABCRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IlhNUCBDb3JlIDUuNC4wIj4KICAgPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIgogICAgICAgICAgICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgICAgICAgICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyI+CiAgICAgICAgIDx0aWZmOlJlc29sdXRpb25Vbml0PjI8L3RpZmY6UmVzb2x1dGlvblVuaXQ+CiAgICAgICAgIDx0aWZmOkNvbXByZXNzaW9uPjU8L3RpZmY6Q29tcHJlc3Npb24+CiAgICAgICAgIDx0aWZmOlhSZXNvbHV0aW9uPjI4ODwvdGlmZjpYUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6T3JpZW50YXRpb24+MTwvdGlmZjpPcmllbnRhdGlvbj4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+Mjg4PC90aWZmOllSZXNvbHV0aW9uPgogICAgICAgICA8ZXhpZjpQaXhlbFhEaW1lbnNpb24+NTA8L2V4aWY6UGl4ZWxYRGltZW5zaW9uPgogICAgICAgICA8ZXhpZjpDb2xvclNwYWNlPjE8L2V4aWY6Q29sb3JTcGFjZT4KICAgICAgICAgPGV4aWY6UGl4ZWxZRGltZW5zaW9uPjUwPC9leGlmOlBpeGVsWURpbWVuc2lvbj4KICAgICAgICAgPGRjOnN1YmplY3Q+CiAgICAgICAgICAgIDxyZGY6QmFnLz4KICAgICAgICAgPC9kYzpzdWJqZWN0PgogICAgICAgICA8eG1wOk1vZGlmeURhdGU+MjAxOC0xMC0xNFQxMToxMDo0MjwveG1wOk1vZGlmeURhdGU+CiAgICAgICAgIDx4bXA6Q3JlYXRvclRvb2w+UGl4ZWxtYXRvciAzLjM8L3htcDpDcmVhdG9yVG9vbD4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgIDwvcmRmOlJERj4KPC94OnhtcG1ldGE+CkP32mEAAANASURBVGgF7ZlPiE1RHMffw1AYhiL5k1HEijJiYaFZiHoyFspW2RFRkkSZGgtFWJIwi9FYmo0VOywkKTbKgjSlWcifRCPX51dv6s2d33md77vvXjfmV9859/7u93x/v98959x73p1KRbAkSargAhgDH0E/qIYkuHYEvAPGvwbmNOEerXM/0Q6BRSFuZj/ix0DaDnvCkGppIucDAe4OhzvkcUO+GaELAf8ux7/b8Zlrr+Pvc3zm6nX8NccXdKmFLHaUPJ/Ruhyu5zNap8Nd6PiCLrUQTyi0Rjy/5/M0Zd+smB7M32XwtgBr07aC6yfSTs7XO77OALfH4VbgHsD/HLytVquJx4nyIdQFBsHftscksK5Z0sGhpuN8Or4Aa5sJFHjtO7G2MjKvvZjN1sglOpSlCMt9LrDZ4S4Hd0Qg24vrK+gAZbPtjMqTdFKhEdkIsYxFWP720JlioUK6pzDL41jtpRIqxOOWxecuB3fhRGT8E85YBK8VygI6GSRTCxlH3TaJgyw4O2678aCxO94LbNPovYDdmOrUukIBN/MqwjJEOwGPOHR31W4VONVCLEBR9lAJpBbSrYhn5K5R+quFnGUOr1ICtMIlxjz6XVb6qot9JeKvCPSAdlQJJHDtd8hOIN0wtRDLxx6Ntr0ulalTq1TJNyYzXUjj3SjD8X87Iva7uR8s5+2bi6FtX1oOgi8g2tSn1g2yPx+t3gIR/c90s1+C1vuO/YkxdWrdjxFtE2dE0VELWaqIZ+QuUfqrhZxmyKUvgEoyE1xizOR4YOI8plXXyAZEbYsyTJvXFsUW+x6wGUSbWogJ237rZHSEgojq1CooLT3MdCH6Pcu3xz8zIq0s9lvc2+sgz6dWH/rnQPB/jlybZGoh99hCHJqk0P6TD0jaI/4b7dVYeXVq2bemokyKpRZiHwWKMimWWshxhryjoEpOKXHUNbIN8WcUc5s2r8Vue7l9oAaiTS3EhDeB6EUYnUlGojq1MobLr3uokB/5hcys7OYWKuRl5nD5Cbi5uYXw0ntPHoay2S8Seuol5RZSJ0r/n/DEc/BdrN9kTZrH7BkwDspgwyQxW6uggU3nHnAXvAG/QZE2SrARsL8hJffwDxM0mNDPvT8IAAAAAElFTkSuQmCC" @@ -25,14 +25,14 @@ func loadHTMLMap() { webUI["html/img/xmltv.png"] = "iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAAAXNSR0IArs4c6QAAAAlwSFlzAAAsSwAALEsBpT2WqQAABCRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IlhNUCBDb3JlIDUuNC4wIj4KICAgPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIgogICAgICAgICAgICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgICAgICAgICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyI+CiAgICAgICAgIDx0aWZmOlJlc29sdXRpb25Vbml0PjI8L3RpZmY6UmVzb2x1dGlvblVuaXQ+CiAgICAgICAgIDx0aWZmOkNvbXByZXNzaW9uPjU8L3RpZmY6Q29tcHJlc3Npb24+CiAgICAgICAgIDx0aWZmOlhSZXNvbHV0aW9uPjI4ODwvdGlmZjpYUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6T3JpZW50YXRpb24+MTwvdGlmZjpPcmllbnRhdGlvbj4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+Mjg4PC90aWZmOllSZXNvbHV0aW9uPgogICAgICAgICA8ZXhpZjpQaXhlbFhEaW1lbnNpb24+NTA8L2V4aWY6UGl4ZWxYRGltZW5zaW9uPgogICAgICAgICA8ZXhpZjpDb2xvclNwYWNlPjE8L2V4aWY6Q29sb3JTcGFjZT4KICAgICAgICAgPGV4aWY6UGl4ZWxZRGltZW5zaW9uPjUwPC9leGlmOlBpeGVsWURpbWVuc2lvbj4KICAgICAgICAgPGRjOnN1YmplY3Q+CiAgICAgICAgICAgIDxyZGY6QmFnLz4KICAgICAgICAgPC9kYzpzdWJqZWN0PgogICAgICAgICA8eG1wOk1vZGlmeURhdGU+MjAxOC0wNy0yOFQyMDowNzozMzwveG1wOk1vZGlmeURhdGU+CiAgICAgICAgIDx4bXA6Q3JlYXRvclRvb2w+UGl4ZWxtYXRvciAzLjM8L3htcDpDcmVhdG9yVG9vbD4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgIDwvcmRmOlJERj4KPC94OnhtcG1ldGE+Co6j9bsAAAGgSURBVGgF7VqxTsNADL0gYGEon8DOwsbAAH8BYmJn6cYIn8DC3h0+oixISFRiYYCJL0AwMMBAeK5w2rpV6uikxHfYknW98+vds18TK21DWGBlWR7CH+BfcEv2AzLP8HP42gLqkyUATuEp2PWEdQjF9ATs1zF/g29Mrxt+vVcUxR3xWxEktzFPJQmivsv8ZSI9DiQyVnxlIonwn6fpiczXpNuVVXH8O+a3Ys3y9NUyuf/NTTbEHZTjUlGSRzSiPhroUIENwB4AS/vS/susDwDhTpYBER9g7wHh5DWyibV9CiitCZbIafDEYUuJHQI3Nr/9ciWsjK6IFSWYhyvClbAyZqOIlYJG84jq7E1Ot97Zm+TinV1TrWwudk9EI3ebGFekzWprzspGEU2ySWCiOrs/s9dr7M/s9fVJJJrNXcsTsfaJc0WsKZINH+/sf1Jqvl1n1f2ZnStRN/pdq646XcSkIh9dkIg4s+IrE3nCpp8RG7f91ns+cCYR/LD4jcAZB42PN+A7/mcQ8ZxJhBYQvMJwBB/BKTFLVoLMC/wCfgyv7BesTKUC2LKM3wAAAABJRU5ErkJggg==" webUI["html/index.html"] = "PCFkb2N0eXBlIGh0bWw+DQo8aHRtbD4NCiAgPGhlYWQ+DQogICAgPG1ldGEgY2hhcnNldD0idXRmLTgiPg0KICAgIDwhLS0tDQogICAgPG1ldGEgbmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9IndpZHRoPWRldmljZS13aWR0aCwgaW5pdGlhbC1zY2FsZT0xLjAiIC8+IA0KICAgIC0tPg0KICAgIDx0aXRsZT54VGVWZTwvdGl0bGU+DQogICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJjc3Mvc2NyZWVuLmNzcyIgdHlwZT0idGV4dC9jc3MiPg0KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iY3NzL2Jhc2UuY3NzIiB0eXBlPSJ0ZXh0L2NzcyI+DQoNCiAgICA8c2NyaXB0IGxhbmd1YWdlPSJqYXZhc2NyaXB0IiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ianMvbmV0d29ya190cy5qcyI+PC9zY3JpcHQ+DQogICAgPHNjcmlwdCBsYW5ndWFnZT0iamF2YXNjcmlwdCIgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9ImpzL21lbnVfdHMuanMiPjwvc2NyaXB0Pg0KICAgIDxzY3JpcHQgbGFuZ3VhZ2U9ImphdmFzY3JpcHQiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJqcy9zZXR0aW5nc190cy5qcyI+PC9zY3JpcHQ+DQogICAgPHNjcmlwdCBsYW5ndWFnZT0iamF2YXNjcmlwdCIgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9ImpzL2xvZ3NfdHMuanMiPjwvc2NyaXB0Pg0KICAgIDxzY3JpcHQgbGFuZ3VhZ2U9ImphdmFzY3JpcHQiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJqcy9iYXNlX3RzLmpzIj48L3NjcmlwdD4NCg0KICA8L2hlYWQ+DQoNCiAgICA8Ym9keSBvbmxvYWQ9ImphdmFzY3JpcHQ6IFBhZ2VSZWFkeSgpOyI+DQoNCiAgICAgIDxkaXYgaWQ9ImxvYWRpbmciIGNsYXNzPSJub25lIj4NCiAgICAgICAgPGRpdiBjbGFzcz0ibG9hZGVyIj48L2Rpdj4NCiAgICAgIDwvZGl2Pg0KDQogICAgICA8ZGl2IGlkPSJwb3B1cCIgY2xhc3M9Im5vbmUiPg0KICAgICAgICA8ZGl2IGlkPSJwb3B1cC1jdXN0b20iPjwvZGl2Pg0KICAgICAgPC9kaXY+DQoNCiAgICAgIDxkaXYgaWQ9ImxheW91dCI+DQoNCiAgICAgICAgPCEtLQ0KICAgICAgICA8ZGl2IGlkPSJub3RpZmljYXRpb24iPg0KICAgICAgICAgIDxkaXYgY2xhc3M9ImVsZW1lbnQiPg0KICAgICAgICAgICAgPGg1PlhFUEc8L2g1Pg0KICAgICAgICAgICAgPHByZT4xMS4wNS4yMDE5IC0gMjA6MjE8L3ByZT4NCiAgICAgICAgICAgIDxocj4NCiAgICAgICAgICAgIDxwPkhhbGxvIGRhcyBpc3QgZWluIFRlc3QuIFVuZCBub2NoIG1laHIgVGV4dC48L3A+DQogICAgICAgICAgPC9kaXY+DQogICAgICAgIDwvZGl2Pg0KICAgICAgLS0+DQoNCiAgICAgICAgPGRpdiBpZD0ibWVudS13cmFwcGVyIiBjbGFzcz0ibGF5b3V0LWxlZnQiPg0KICAgICAgICAgIDxkaXYgaWQ9ICJicmFuY2giPjwvZGl2Pg0KICAgICAgICAgIDxkaXYgaWQ9ImxvZ28iPjwvZGl2Pg0KICAgICAgICAgIDxuYXYgaWQ9Im1haW4tbWVudSI+PC9uYXY+DQogICAgICAgIDwvZGl2Pg0KDQogICAgICAgIDxkaXYgY2xhc3M9ImxheW91dC1yaWdodCI+DQoNCiAgICAgICAgICA8dGFibGUgaWQ9ImNsaWVudEluZm8iIGNsYXNzPSIiPg0KDQogICAgICAgICAgICA8dHI+DQogICAgICAgICAgICAgIDx0ZCBjbGFzcz0idGRLZXkiPnhUZVZlOjwvdGQ+DQogICAgICAgICAgICAgIDx0ZCBpZD0idmVyc2lvbiIgY2xhc3M9InRkVmFsIj4mbmJzcDs8L3RkPg0KICAgICAgICAgICAgICA8dGQgY2xhc3M9InRkS2V5Ij5PUzo8L3RkPg0KICAgICAgICAgICAgICA8dGQgaWQ9Im9zIiBjbGFzcz0idGRWYWwiPiZuYnNwOzwvdGQ+DQogICAgICAgICAgICAgIDx0ZCBjbGFzcz0idGRLZXkgcGhvbmUiPkRWUiBJUDo8L3RkPg0KICAgICAgICAgICAgICA8dGQgaWQ9IkRWUiIgY2xhc3M9InRkVmFsIHBob25lIj4mbmJzcDs8L3RkPg0KICAgICAgICAgICAgPC90cj4NCg0KICAgICAgICAgICAgPHRyPg0KICAgICAgICAgICAgICA8dGQgY2xhc3M9InRkS2V5Ij5VVUlEOjwvdGQ+DQogICAgICAgICAgICAgIDx0ZCBpZD0idXVpZCIgY2xhc3M9InRkVmFsIj4mbmJzcDs8L3RkPg0KICAgICAgICAgICAgICA8dGQgY2xhc3M9InRkS2V5Ij5BcmNoOjwvdGQ+DQogICAgICAgICAgICAgIDx0ZCBpZD0iYXJjaCIgY2xhc3M9InRkVmFsIj4mbmJzcDs8L3RkPg0KICAgICAgICAgICAgICA8dGQgY2xhc3M9InRkS2V5IHBob25lIj5NM1UgVVJMOjwvdGQ+DQogICAgICAgICAgICAgIDx0ZCBpZD0ibTN1LXVybCIgY2xhc3M9InRkVmFsIHBob25lIj4mbmJzcDs8L3RkPg0KICAgICAgICAgICAgPC90cj4NCg0KICAgICAgICAgICAgPHRyPg0KICAgICAgICAgICAgICA8dGQgY2xhc3M9InRkS2V5Ij5BdmFpbGFibGUgU3RyZWFtczo8L3RkPg0KICAgICAgICAgICAgICA8dGQgaWQ9InN0cmVhbXMiIGNsYXNzPSJ0ZFZhbCI+Jm5ic3A7PC90ZD4NCiAgICAgICAgICAgICAgPHRkIGNsYXNzPSJ0ZEtleSI+RVBHIFNvdXJjZTo8L3RkPg0KICAgICAgICAgICAgICA8dGQgaWQ9ImVwZ1NvdXJjZSIgY2xhc3M9InRkVmFsIj4mbmJzcDs8L3RkPg0KICAgICAgICAgICAgICA8dGQgY2xhc3M9InRkS2V5IHBob25lIj5YRVBHIFVSTDo8L3RkPg0KICAgICAgICAgICAgICA8dGQgaWQ9InhlcGctdXJsIiBjbGFzcz0idGRWYWwgcGhvbmUiPiZuYnNwOzwvdGQ+DQogICAgICAgICAgICA8L3RyPg0KDQogICAgICAgICAgICA8dHI+DQogICAgICAgICAgICAgIDx0ZCBjbGFzcz0idGRLZXkiPlhFUEcgQ2hhbm5lbHM6PC90ZD4NCiAgICAgICAgICAgICAgPHRkIGlkPSJ4ZXBnIiBjbGFzcz0idGRWYWwiPiZuYnNwOzwvdGQ+DQogICAgICAgICAgICAgIDx0ZCBjbGFzcz0idGRLZXkiPkVycm9yczo8L3RkPg0KICAgICAgICAgICAgICA8dGQgaWQ9ImVycm9ycyIgY2xhc3M9InRkVmFsIj4mbmJzcDs8L3RkPg0KICAgICAgICAgICAgICA8dGQgY2xhc3M9InRkS2V5Ij5XYXJuaW5nczo8L3RkPg0KICAgICAgICAgICAgICA8dGQgaWQ9Indhcm5pbmdzIiBjbGFzcz0idGRWYWwiPiZuYnNwOzwvdGQ+DQogICAgICAgICAgICA8L3RyPg0KDQogICAgICAgICAgPC90YWJsZT4NCiAgICAgICAgIA0KICAgICAgICAgIDxkaXYgaWQ9Im15U3RyZWFtc0JveCIgY2xhc3M9Im5vdFZpc2libGUiPg0KDQogICAgICAgICAgICA8ZGl2IGlkPSJhbGxTdHJlYW1zIj4NCiAgICAgICAgICAgICAgPHRhYmxlIGlkPSJhY3RpdmVTdHJlYW1zIj48L3RhYmxlPg0KICAgICAgICAgICAgICA8dGFibGUgaWQ9ImluYWN0aXZlU3RyZWFtcyI+PC90YWJsZT4NCiAgICAgICAgICAgIDwvZGl2Pg0KDQogICAgICAgICAgPC9kaXY+DQogICAgICAgICAgDQogICAgICAgICAgPGRpdiBpZD0iY29udGVudCIgY2xhc3M9IiI+PC9kaXY+DQogICAgICAgICAgICANCiAgICAgICAgPC9kaXY+DQoNCiAgICAgIDwvZGl2Pg0KICAgICAgDQogICAgPC9ib2R5Pg0KICAgIA0KPC9odG1sPg==" webUI["html/js/authentication_ts.js"] = "ZnVuY3Rpb24gbG9naW4oKSB7DQogICAgdmFyIGVyciA9IGZhbHNlOw0KICAgIHZhciBkYXRhID0gbmV3IE9iamVjdCgpOw0KICAgIHZhciBkaXYgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29udGVudCIpOw0KICAgIHZhciBmb3JtID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImF1dGhlbnRpY2F0aW9uIik7DQogICAgdmFyIGlucHV0cyA9IGRpdi5nZXRFbGVtZW50c0J5VGFnTmFtZSgiSU5QVVQiKTsNCiAgICBjb25zb2xlLmxvZyhpbnB1dHMpOw0KICAgIGZvciAodmFyIGkgPSBpbnB1dHMubGVuZ3RoIC0gMTsgaSA+PSAwOyBpLS0pIHsNCiAgICAgICAgdmFyIGtleSA9IGlucHV0c1tpXS5uYW1lOw0KICAgICAgICB2YXIgdmFsdWUgPSBpbnB1dHNbaV0udmFsdWU7DQogICAgICAgIGlmICh2YWx1ZS5sZW5ndGggPT0gMCkgew0KICAgICAgICAgICAgaW5wdXRzW2ldLnN0eWxlLmJvcmRlckNvbG9yID0gInJlZCI7DQogICAgICAgICAgICBlcnIgPSB0cnVlOw0KICAgICAgICB9DQogICAgICAgIGRhdGFba2V5XSA9IHZhbHVlOw0KICAgIH0NCiAgICBpZiAoZXJyID09IHRydWUpIHsNCiAgICAgICAgZGF0YSA9IG5ldyBPYmplY3QoKTsNCiAgICAgICAgcmV0dXJuOw0KICAgIH0NCiAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgiY29uZmlybSIpKSB7DQogICAgICAgIGlmIChkYXRhWyJjb25maXJtIl0gIT0gZGF0YVsicGFzc3dvcmQiXSkgew0KICAgICAgICAgICAgYWxlcnQoInNkYWZzZCIpOw0KICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Bhc3N3b3JkJykuc3R5bGUuYm9yZGVyQ29sb3IgPSAicmVkIjsNCiAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjb25maXJtJykuc3R5bGUuYm9yZGVyQ29sb3IgPSAicmVkIjsNCiAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJlcnIiKS5pbm5lckhUTUwgPSAie3suYWNjb3VudC5mYWlsZWR9fSI7DQogICAgICAgICAgICByZXR1cm47DQogICAgICAgIH0NCiAgICB9DQogICAgY29uc29sZS5sb2coZGF0YSk7DQogICAgZm9ybS5zdWJtaXQoKTsNCn0NCg==" - webUI["html/js/base_ts.js"] = "dmFyIFNFUlZFUiA9IG5ldyBPYmplY3QoKTsNCnZhciBCVUxLX0VESVQgPSBmYWxzZTsNCnZhciBDT0xVTU5fVE9fU09SVDsNCnZhciBTRUFSQ0hfTUFQUElORyA9IG5ldyBPYmplY3QoKTsNCnZhciBVTkRPID0gbmV3IE9iamVjdCgpOw0KdmFyIFNFUlZFUl9DT05ORUNUSU9OID0gZmFsc2U7DQp2YXIgV1NfQVZBSUxBQkxFID0gZmFsc2U7DQovLyBNZW51DQp2YXIgbWVudUl0ZW1zID0gbmV3IEFycmF5KCk7DQptZW51SXRlbXMucHVzaChuZXcgTWFpbk1lbnVJdGVtKCJwbGF5bGlzdCIsICJ7ey5tYWluTWVudS5pdGVtLnBsYXlsaXN0fX0iLCAibTN1LnBuZyIsICJ7ey5tYWluTWVudS5oZWFkbGluZS5wbGF5bGlzdH19IikpOw0KLy9tZW51SXRlbXMucHVzaChuZXcgTWFpbk1lbnVJdGVtKCJwbXNJRCIsICJ7ey5tYWluTWVudS5pdGVtLnBtc0lEfX0iLCAibnVtYmVyLnBuZyIsICJ7ey5tYWluTWVudS5oZWFkbGluZS5wbXNJRH19IikpDQptZW51SXRlbXMucHVzaChuZXcgTWFpbk1lbnVJdGVtKCJmaWx0ZXIiLCAie3subWFpbk1lbnUuaXRlbS5maWx0ZXJ9fSIsICJmaWx0ZXIucG5nIiwgInt7Lm1haW5NZW51LmhlYWRsaW5lLmZpbHRlcn19IikpOw0KbWVudUl0ZW1zLnB1c2gobmV3IE1haW5NZW51SXRlbSgieG1sdHYiLCAie3subWFpbk1lbnUuaXRlbS54bWx0dn19IiwgInhtbHR2LnBuZyIsICJ7ey5tYWluTWVudS5oZWFkbGluZS54bWx0dn19IikpOw0KbWVudUl0ZW1zLnB1c2gobmV3IE1haW5NZW51SXRlbSgibWFwcGluZyIsICJ7ey5tYWluTWVudS5pdGVtLm1hcHBpbmd9fSIsICJtYXBwaW5nLnBuZyIsICJ7ey5tYWluTWVudS5oZWFkbGluZS5tYXBwaW5nfX0iKSk7DQptZW51SXRlbXMucHVzaChuZXcgTWFpbk1lbnVJdGVtKCJ1c2VycyIsICJ7ey5tYWluTWVudS5pdGVtLnVzZXJzfX0iLCAidXNlcnMucG5nIiwgInt7Lm1haW5NZW51LmhlYWRsaW5lLnVzZXJzfX0iKSk7DQptZW51SXRlbXMucHVzaChuZXcgTWFpbk1lbnVJdGVtKCJzZXR0aW5ncyIsICJ7ey5tYWluTWVudS5pdGVtLnNldHRpbmdzfX0iLCAic2V0dGluZ3MucG5nIiwgInt7Lm1haW5NZW51LmhlYWRsaW5lLnNldHRpbmdzfX0iKSk7DQptZW51SXRlbXMucHVzaChuZXcgTWFpbk1lbnVJdGVtKCJsb2ciLCAie3subWFpbk1lbnUuaXRlbS5sb2d9fSIsICJsb2cucG5nIiwgInt7Lm1haW5NZW51LmhlYWRsaW5lLmxvZ319IikpOw0KbWVudUl0ZW1zLnB1c2gobmV3IE1haW5NZW51SXRlbSgibG9nb3V0IiwgInt7Lm1haW5NZW51Lml0ZW0ubG9nb3V0fX0iLCAibG9nb3V0LnBuZyIsICJ7ey5tYWluTWVudS5oZWFkbGluZS5sb2dvdXR9fSIpKTsNCi8vIFNldHRpbmdzIGNhdGVnb3JpZXMNCnZhciBzZXR0aW5nc0NhdGVnb3J5ID0gbmV3IEFycmF5KCk7DQpzZXR0aW5nc0NhdGVnb3J5LnB1c2gobmV3IFNldHRpbmdzQ2F0ZWdvcnlJdGVtKCJ7ey5zZXR0aW5ncy5jYXRlZ29yeS5nZW5lcmFsfX0iLCAieHRldmVBdXRvVXBkYXRlLHR1bmVyLGVwZ1NvdXJjZSxhcGkiKSk7DQpzZXR0aW5nc0NhdGVnb3J5LnB1c2gobmV3IFNldHRpbmdzQ2F0ZWdvcnlJdGVtKCJ7ey5zZXR0aW5ncy5jYXRlZ29yeS5maWxlc319IiwgInVwZGF0ZSxmaWxlcy51cGRhdGUsdGVtcC5wYXRoLGNhY2hlLmltYWdlcyx4ZXBnLnJlcGxhY2UubWlzc2luZy5pbWFnZXMiKSk7DQpzZXR0aW5nc0NhdGVnb3J5LnB1c2gobmV3IFNldHRpbmdzQ2F0ZWdvcnlJdGVtKCJ7ey5zZXR0aW5ncy5jYXRlZ29yeS5zdHJlYW1pbmd9fSIsICJidWZmZXIsdWRweHksYnVmZmVyLnNpemUua2IsYnVmZmVyLnRpbWVvdXQsdXNlci5hZ2VudCxmZm1wZWcucGF0aCxmZm1wZWcub3B0aW9ucyx2bGMucGF0aCx2bGMub3B0aW9ucyIpKTsNCnNldHRpbmdzQ2F0ZWdvcnkucHVzaChuZXcgU2V0dGluZ3NDYXRlZ29yeUl0ZW0oInt7LnNldHRpbmdzLmNhdGVnb3J5LmJhY2t1cH19IiwgImJhY2t1cC5wYXRoLGJhY2t1cC5rZWVwIikpOw0Kc2V0dGluZ3NDYXRlZ29yeS5wdXNoKG5ldyBTZXR0aW5nc0NhdGVnb3J5SXRlbSgie3suc2V0dGluZ3MuY2F0ZWdvcnkuYXV0aGVudGljYXRpb259fSIsICJhdXRoZW50aWNhdGlvbi53ZWIsYXV0aGVudGljYXRpb24ucG1zLGF1dGhlbnRpY2F0aW9uLm0zdSxhdXRoZW50aWNhdGlvbi54bWwsYXV0aGVudGljYXRpb24uYXBpIikpOw0KZnVuY3Rpb24gc2hvd1BvcFVwRWxlbWVudChlbG0pIHsNCiAgICB2YXIgYWxsRWxlbWVudHMgPSBuZXcgQXJyYXkoInBvcHVwLWN1c3RvbSIpOw0KICAgIGZvciAodmFyIGkgPSAwOyBpIDwgYWxsRWxlbWVudHMubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgc2hvd0VsZW1lbnQoYWxsRWxlbWVudHNbaV0sIGZhbHNlKTsNCiAgICB9DQogICAgc2hvd0VsZW1lbnQoZWxtLCB0cnVlKTsNCiAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsNCiAgICAgICAgc2hvd0VsZW1lbnQoInBvcHVwIiwgdHJ1ZSk7DQogICAgfSwgMTApOw0KICAgIHJldHVybjsNCn0NCmZ1bmN0aW9uIHNob3dFbGVtZW50KGVsbUlELCB0eXBlKSB7DQogICAgdmFyIGNzc0NsYXNzOw0KICAgIHN3aXRjaCAodHlwZSkgew0KICAgICAgICBjYXNlIHRydWU6DQogICAgICAgICAgICBjc3NDbGFzcyA9ICJibG9jayI7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSBmYWxzZToNCiAgICAgICAgICAgIGNzc0NsYXNzID0gIm5vbmUiOw0KICAgICAgICAgICAgYnJlYWs7DQogICAgfQ0KICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGVsbUlEKS5jbGFzc05hbWUgPSBjc3NDbGFzczsNCn0NCmZ1bmN0aW9uIGNoYW5nZUJ1dHRvbkFjdGlvbihlbGVtZW50LCBidXR0b25JRCwgYXR0cmlidXRlKSB7DQogICAgdmFyIHZhbHVlID0gZWxlbWVudC5vcHRpb25zW2VsZW1lbnQuc2VsZWN0ZWRJbmRleF0udmFsdWU7DQogICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoYnV0dG9uSUQpLnNldEF0dHJpYnV0ZShhdHRyaWJ1dGUsIHZhbHVlKTsNCn0NCmZ1bmN0aW9uIGdldExvY2FsRGF0YShkYXRhVHlwZSwgaWQpIHsNCiAgICBsZXQgZGF0YSA9IHt9Ow0KICAgIHN3aXRjaCAoZGF0YVR5cGUpIHsNCiAgICAgICAgY2FzZSAibTN1IjoNCiAgICAgICAgICAgIGRhdGEgPSBTRVJWRVJbInNldHRpbmdzIl1bImZpbGVzIl1bZGF0YVR5cGVdW2lkXTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJoZGhyIjoNCiAgICAgICAgICAgIGRhdGEgPSBTRVJWRVJbInNldHRpbmdzIl1bImZpbGVzIl1bZGF0YVR5cGVdW2lkXTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJmaWx0ZXIiOg0KICAgICAgICBjYXNlICJjdXN0b20tZmlsdGVyIjoNCiAgICAgICAgY2FzZSAiZ3JvdXAtdGl0bGUiOg0KICAgICAgICAgICAgaWYgKGlkID09IC0xKSB7DQogICAgICAgICAgICAgICAgZGF0YVsiYWN0aXZlIl0gPSB0cnVlOw0KICAgICAgICAgICAgICAgIGRhdGFbImNhc2VTZW5zaXRpdmUiXSA9IGZhbHNlOw0KICAgICAgICAgICAgICAgIGRhdGFbImRlc2NyaXB0aW9uIl0gPSAiIjsNCiAgICAgICAgICAgICAgICBkYXRhWyJleGNsdWRlIl0gPSAiIjsNCiAgICAgICAgICAgICAgICBkYXRhWyJmaWx0ZXIiXSA9ICIiOw0KICAgICAgICAgICAgICAgIGRhdGFbImluY2x1ZGUiXSA9ICIiOw0KICAgICAgICAgICAgICAgIGRhdGFbIm5hbWUiXSA9ICIiOw0KICAgICAgICAgICAgICAgIGRhdGFbInR5cGUiXSA9ICJncm91cC10aXRsZSI7DQogICAgICAgICAgICAgICAgZGF0YVsicHJlc2VydmVNYXBwaW5nIl0gPSB0cnVlOw0KICAgICAgICAgICAgICAgIGRhdGFbInN0YXJ0aW5nQ2hhbm5lbCJdID0gU0VSVkVSWyJzZXR0aW5ncyJdWyJtYXBwaW5nLmZpcnN0LmNoYW5uZWwiXTsNCiAgICAgICAgICAgICAgICBkYXRhWyJkZWZhdWx0TWlzc2luZ0VQRyJdID0gIi0iOw0KICAgICAgICAgICAgICAgIFNFUlZFUlsic2V0dGluZ3MiXVsiZmlsdGVyIl1baWRdID0gZGF0YTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGRhdGEgPSBTRVJWRVJbInNldHRpbmdzIl1bImZpbHRlciJdW2lkXTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJ4bWx0diI6DQogICAgICAgICAgICBkYXRhID0gU0VSVkVSWyJzZXR0aW5ncyJdWyJmaWxlcyJdW2RhdGFUeXBlXVtpZF07DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSAidXNlcnMiOg0KICAgICAgICAgICAgZGF0YSA9IFNFUlZFUlsidXNlcnMiXVtpZF1bImRhdGEiXTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJtYXBwaW5nIjoNCiAgICAgICAgICAgIGRhdGEgPSBTRVJWRVJbInhlcGciXVsiZXBnTWFwcGluZyJdW2lkXTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJtM3VHcm91cHMiOg0KICAgICAgICAgICAgZGF0YSA9IFNFUlZFUlsiZGF0YSJdWyJwbGF5bGlzdCJdWyJtM3UiXVsiZ3JvdXBzIl07DQogICAgICAgICAgICBicmVhazsNCiAgICB9DQogICAgcmV0dXJuIGRhdGE7DQp9DQpmdW5jdGlvbiBnZXRPYmpLZXlzKG9iaikgew0KICAgIHZhciBrZXlzID0gbmV3IEFycmF5KCk7DQogICAgZm9yICh2YXIgaSBpbiBvYmopIHsNCiAgICAgICAgaWYgKG9iai5oYXNPd25Qcm9wZXJ0eShpKSkgew0KICAgICAgICAgICAga2V5cy5wdXNoKGkpOw0KICAgICAgICB9DQogICAgfQ0KICAgIHJldHVybiBrZXlzOw0KfQ0KZnVuY3Rpb24gZ2V0QWxsU2VsZWN0ZWRDaGFubmVscygpIHsNCiAgICB2YXIgY2hhbm5lbHMgPSBuZXcgQXJyYXkoKTsNCiAgICBpZiAoQlVMS19FRElUID09IGZhbHNlKSB7DQogICAgICAgIHJldHVybiBjaGFubmVsczsNCiAgICB9DQogICAgdmFyIHRycyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb250ZW50X3RhYmxlIikuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlRSIik7DQogICAgZm9yICh2YXIgaSA9IDE7IGkgPCB0cnMubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgaWYgKHRyc1tpXS5zdHlsZS5kaXNwbGF5ICE9ICJub25lIikgew0KICAgICAgICAgICAgaWYgKHRyc1tpXS5maXJzdENoaWxkLmZpcnN0Q2hpbGQuY2hlY2tlZCA9PSB0cnVlKSB7DQogICAgICAgICAgICAgICAgY2hhbm5lbHMucHVzaCh0cnNbaV0uaWQpOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQogICAgfQ0KICAgIHJldHVybiBjaGFubmVsczsNCn0NCmZ1bmN0aW9uIHNlbGVjdEFsbENoYW5uZWxzKCkgew0KICAgIHZhciBidWxrID0gZmFsc2U7DQogICAgdmFyIHRycyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb250ZW50X3RhYmxlIikuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlRSIik7DQogICAgaWYgKHRyc1swXS5maXJzdENoaWxkLmZpcnN0Q2hpbGQuY2hlY2tlZCA9PSB0cnVlKSB7DQogICAgICAgIGJ1bGsgPSB0cnVlOw0KICAgIH0NCiAgICBmb3IgKHZhciBpID0gMTsgaSA8IHRycy5sZW5ndGg7IGkrKykgew0KICAgICAgICBpZiAodHJzW2ldLnN0eWxlLmRpc3BsYXkgIT0gIm5vbmUiKSB7DQogICAgICAgICAgICBzd2l0Y2ggKGJ1bGspIHsNCiAgICAgICAgICAgICAgICBjYXNlIHRydWU6DQogICAgICAgICAgICAgICAgICAgIHRyc1tpXS5maXJzdENoaWxkLmZpcnN0Q2hpbGQuY2hlY2tlZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgZmFsc2U6DQogICAgICAgICAgICAgICAgICAgIHRyc1tpXS5maXJzdENoaWxkLmZpcnN0Q2hpbGQuY2hlY2tlZCA9IGZhbHNlOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KICAgIH0NCiAgICByZXR1cm47DQp9DQpmdW5jdGlvbiBidWxrRWRpdCgpIHsNCiAgICBCVUxLX0VESVQgPSAhQlVMS19FRElUOw0KICAgIHZhciBjbGFzc05hbWU7DQogICAgdmFyIHJvd3MgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCJidWxrIik7DQogICAgc3dpdGNoIChCVUxLX0VESVQpIHsNCiAgICAgICAgY2FzZSB0cnVlOg0KICAgICAgICAgICAgY2xhc3NOYW1lID0gImJ1bGsgc2hvd0J1bGsiOw0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGNhc2UgZmFsc2U6DQogICAgICAgICAgICBjbGFzc05hbWUgPSAiYnVsayBoaWRlQnVsayI7DQogICAgICAgICAgICBicmVhazsNCiAgICB9DQogICAgZm9yICh2YXIgaSA9IDA7IGkgPCByb3dzLmxlbmd0aDsgaSsrKSB7DQogICAgICAgIHJvd3NbaV0uY2xhc3NOYW1lID0gY2xhc3NOYW1lOw0KICAgICAgICByb3dzW2ldLmNoZWNrZWQgPSBmYWxzZTsNCiAgICB9DQogICAgcmV0dXJuOw0KfQ0KZnVuY3Rpb24gc29ydFRhYmxlKGNvbHVtbikgew0KICAgIC8vY29uc29sZS5sb2coY29sdW1tKTsNCiAgICBpZiAoY29sdW1uID09IENPTFVNTl9UT19TT1JUKSB7DQogICAgICAgIHJldHVybjsNCiAgICB9DQogICAgdmFyIHRhYmxlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnRlbnRfdGFibGUiKTsNCiAgICB2YXIgdGFibGVIZWFkID0gdGFibGUuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlRSIilbMF07DQogICAgdmFyIHRhYmxlSXRlbXMgPSB0YWJsZUhlYWQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlREIik7DQogICAgdmFyIHNvcnRPYmogPSBuZXcgT2JqZWN0KCk7DQogICAgdmFyIHgsIHhWYWx1ZTsNCiAgICB2YXIgdGFibGVIZWFkZXI7DQogICAgdmFyIHNvcnRCeVN0cmluZyA9IGZhbHNlOw0KICAgIGlmIChjb2x1bW4gPiAwICYmIENPTFVNTl9UT19TT1JUID4gMCkgew0KICAgICAgICB0YWJsZUl0ZW1zW0NPTFVNTl9UT19TT1JUXS5jbGFzc05hbWUgPSAicG9pbnRlciI7DQogICAgICAgIHRhYmxlSXRlbXNbY29sdW1uXS5jbGFzc05hbWUgPSAic29ydFRoaXMiOw0KICAgIH0NCiAgICBDT0xVTU5fVE9fU09SVCA9IGNvbHVtbjsNCiAgICB2YXIgcm93cyA9IHRhYmxlLnJvd3M7DQogICAgaWYgKHJvd3NbMV0gIT0gdW5kZWZpbmVkKSB7DQogICAgICAgIHRhYmxlSGVhZGVyID0gcm93c1swXTsNCiAgICAgICAgeCA9IHJvd3NbMV0uZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlREIilbY29sdW1uXTsNCiAgICAgICAgZm9yIChpID0gMTsgaSA8IHJvd3MubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgICAgIHggPSByb3dzW2ldLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJURCIpW2NvbHVtbl07DQogICAgICAgICAgICBzd2l0Y2ggKHguY2hpbGROb2Rlc1swXS50YWdOYW1lLnRvTG93ZXJDYXNlKCkpIHsNCiAgICAgICAgICAgICAgICBjYXNlICJpbnB1dCI6DQogICAgICAgICAgICAgICAgICAgIHhWYWx1ZSA9IHguZ2V0RWxlbWVudHNCeVRhZ05hbWUoIklOUFVUIilbMF0udmFsdWUudG9Mb3dlckNhc2UoKTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAicCI6DQogICAgICAgICAgICAgICAgICAgIHhWYWx1ZSA9IHguZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlAiKVswXS5pbm5lclRleHQudG9Mb3dlckNhc2UoKTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgZGVmYXVsdDogY29uc29sZS5sb2coeC5jaGlsZE5vZGVzWzBdLnRhZ05hbWUpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgaWYgKHhWYWx1ZSA9PSAiIiB8fCB4VmFsdWUgPT0gTmFOKSB7DQogICAgICAgICAgICAgICAgeFZhbHVlID0gaTsNCiAgICAgICAgICAgICAgICBzb3J0T2JqW2ldID0gcm93c1tpXTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgICAgIHN3aXRjaCAoaXNOYU4oeFZhbHVlKSB8fCB0eXBlb2YgeFZhbHVlID09ICJzdHJpbmciKSB7DQogICAgICAgICAgICAgICAgICAgIGNhc2UgZmFsc2U6DQogICAgICAgICAgICAgICAgICAgICAgICB4VmFsdWUgPSBwYXJzZUZsb2F0KHhWYWx1ZSk7DQogICAgICAgICAgICAgICAgICAgICAgICBzb3J0T2JqW3hWYWx1ZV0gPSByb3dzW2ldOw0KICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgICAgIGNhc2UgdHJ1ZToNCiAgICAgICAgICAgICAgICAgICAgICAgIHNvcnRCeVN0cmluZyA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBzb3J0T2JqW3hWYWx1ZS50b0xvd2VyQ2FzZSgpICsgaV0gPSByb3dzW2ldOw0KICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQogICAgICAgIHdoaWxlICh0YWJsZS5maXJzdENoaWxkKSB7DQogICAgICAgICAgICB0YWJsZS5yZW1vdmVDaGlsZCh0YWJsZS5maXJzdENoaWxkKTsNCiAgICAgICAgfQ0KICAgICAgICB2YXIgc29ydFZhbHVlcyA9IGdldE9iaktleXMoc29ydE9iaik7DQogICAgICAgIGlmIChzb3J0QnlTdHJpbmcgPT0gdHJ1ZSkgew0KICAgICAgICAgICAgc29ydFZhbHVlcy5zb3J0KCk7DQogICAgICAgICAgICBjb25zb2xlLmxvZyhzb3J0VmFsdWVzKTsNCiAgICAgICAgfQ0KICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgIGZ1bmN0aW9uIHNvcnRGbG9hdChhLCBiKSB7DQogICAgICAgICAgICAgICAgcmV0dXJuIGEgLSBiOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgc29ydFZhbHVlcy5zb3J0KHNvcnRGbG9hdCk7DQogICAgICAgIH0NCiAgICAgICAgdGFibGUuYXBwZW5kQ2hpbGQodGFibGVIZWFkZXIpOw0KICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHNvcnRWYWx1ZXMubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgICAgIHRhYmxlLmFwcGVuZENoaWxkKHNvcnRPYmpbc29ydFZhbHVlc1tpXV0pOw0KICAgICAgICB9DQogICAgfQ0KICAgIHJldHVybjsNCn0NCmZ1bmN0aW9uIGNyZWF0ZVNlYXJjaE9iaigpIHsNCiAgICBTRUFSQ0hfTUFQUElORyA9IG5ldyBPYmplY3QoKTsNCiAgICB2YXIgZGF0YSA9IFNFUlZFUlsieGVwZyJdWyJlcGdNYXBwaW5nIl07DQogICAgdmFyIGNoYW5uZWxzID0gZ2V0T2JqS2V5cyhkYXRhKTsNCiAgICB2YXIgY2hhbm5lbEtleXMgPSBbIngtYWN0aXZlIiwgIngtY2hhbm5lbElEIiwgIngtbmFtZSIsICJfZmlsZS5tM3UubmFtZSIsICJ4LWdyb3VwLXRpdGxlIiwgIngteG1sdHYtZmlsZSJdOw0KICAgIGNoYW5uZWxzLmZvckVhY2goaWQgPT4gew0KICAgICAgICBjaGFubmVsS2V5cy5mb3JFYWNoKGtleSA9PiB7DQogICAgICAgICAgICBpZiAoa2V5ID09ICJ4LWFjdGl2ZSIpIHsNCiAgICAgICAgICAgICAgICBzd2l0Y2ggKGRhdGFbaWRdW2tleV0pIHsNCiAgICAgICAgICAgICAgICAgICAgY2FzZSB0cnVlOg0KICAgICAgICAgICAgICAgICAgICAgICAgU0VBUkNIX01BUFBJTkdbaWRdID0gIm9ubGluZSAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgICAgIGNhc2UgZmFsc2U6DQogICAgICAgICAgICAgICAgICAgICAgICBTRUFSQ0hfTUFQUElOR1tpZF0gPSAib2ZmbGluZSAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgZWxzZSB7DQogICAgICAgICAgICAgICAgaWYgKGtleSA9PSAieC14bWx0di1maWxlIikgew0KICAgICAgICAgICAgICAgICAgICB2YXIgeG1sdHZGaWxlID0gZ2V0VmFsdWVGcm9tUHJvdmlkZXJGaWxlKGRhdGFbaWRdW2tleV0sICJ4bWx0diIsICJuYW1lIik7DQogICAgICAgICAgICAgICAgICAgIGlmICh4bWx0dkZpbGUgIT0gdW5kZWZpbmVkKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBTRUFSQ0hfTUFQUElOR1tpZF0gPSBTRUFSQ0hfTUFQUElOR1tpZF0gKyB4bWx0dkZpbGUgKyAiICI7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgZWxzZSB7DQogICAgICAgICAgICAgICAgICAgIFNFQVJDSF9NQVBQSU5HW2lkXSA9IFNFQVJDSF9NQVBQSU5HW2lkXSArIGRhdGFbaWRdW2tleV0gKyAiICI7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfQ0KICAgICAgICB9KTsNCiAgICB9KTsNCiAgICByZXR1cm47DQp9DQpmdW5jdGlvbiBzZWFyY2hJbk1hcHBpbmcoKSB7DQogICAgdmFyIHNlYXJjaFZhbHVlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNlYXJjaE1hcHBpbmciKS52YWx1ZTsNCiAgICB2YXIgdHJzID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnRlbnRfdGFibGUiKS5nZXRFbGVtZW50c0J5VGFnTmFtZSgiVFIiKTsNCiAgICBmb3IgKHZhciBpID0gMTsgaSA8IHRycy5sZW5ndGg7ICsraSkgew0KICAgICAgICB2YXIgaWQgPSB0cnNbaV0uZ2V0QXR0cmlidXRlKCJpZCIpOw0KICAgICAgICB2YXIgZWxlbWVudCA9IFNFQVJDSF9NQVBQSU5HW2lkXTsNCiAgICAgICAgc3dpdGNoIChlbGVtZW50LnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoc2VhcmNoVmFsdWUudG9Mb3dlckNhc2UoKSkpIHsNCiAgICAgICAgICAgIGNhc2UgdHJ1ZToNCiAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkuc3R5bGUuZGlzcGxheSA9ICIiOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSBmYWxzZToNCiAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkuc3R5bGUuZGlzcGxheSA9ICJub25lIjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgfQ0KICAgIH0NCiAgICByZXR1cm47DQp9DQpmdW5jdGlvbiBjYWxjdWxhdGVXcmFwcGVySGVpZ2h0KCkgew0KICAgIGlmIChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYm94LXdyYXBwZXIiKSkgew0KICAgICAgICB2YXIgZWxtID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImJveC13cmFwcGVyIik7DQogICAgICAgIHZhciBkaXZzID0gbmV3IEFycmF5KCJteVN0cmVhbXNCb3giLCAiY2xpZW50SW5mbyIsICJjb250ZW50Iik7DQogICAgICAgIHZhciBlbGVtZW50c0hlaWdodCA9IDAgLSBlbG0ub2Zmc2V0SGVpZ2h0Ow0KICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGRpdnMubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgICAgIGVsZW1lbnRzSGVpZ2h0ID0gZWxlbWVudHNIZWlnaHQgKyBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChkaXZzW2ldKS5vZmZzZXRIZWlnaHQ7DQogICAgICAgIH0NCiAgICAgICAgZWxtLnN0eWxlLmhlaWdodCA9IHdpbmRvdy5pbm5lckhlaWdodCAtIGVsZW1lbnRzSGVpZ2h0ICsgInB4IjsNCiAgICB9DQogICAgcmV0dXJuOw0KfQ0KZnVuY3Rpb24gY2hhbmdlQ2hhbm5lbE51bWJlcihlbGVtZW50KSB7DQogICAgdmFyIGRiSUQgPSBlbGVtZW50LnBhcmVudE5vZGUucGFyZW50Tm9kZS5pZDsNCiAgICB2YXIgbmV3TnVtYmVyID0gcGFyc2VGbG9hdChlbGVtZW50LnZhbHVlKTsNCiAgICB2YXIgY2hhbm5lbE51bWJlcnMgPSBbXTsNCiAgICB2YXIgZGF0YSA9IFNFUlZFUlsieGVwZyJdWyJlcGdNYXBwaW5nIl07DQogICAgdmFyIGNoYW5uZWxzID0gZ2V0T2JqS2V5cyhkYXRhKTsNCiAgICBpZiAoaXNOYU4obmV3TnVtYmVyKSkgew0KICAgICAgICBhbGVydCgie3suYWxlcnQuaW52YWxpZENoYW5uZWxOdW1iZXJ9fSIpOw0KICAgICAgICByZXR1cm47DQogICAgfQ0KICAgIGNoYW5uZWxzLmZvckVhY2goaWQgPT4gew0KICAgICAgICB2YXIgY2hhbm5lbE51bWJlciA9IHBhcnNlRmxvYXQoZGF0YVtpZF1bIngtY2hhbm5lbElEIl0pOw0KICAgICAgICBjaGFubmVsTnVtYmVycy5wdXNoKGNoYW5uZWxOdW1iZXIpOw0KICAgIH0pOw0KICAgIGZvciAodmFyIGkgPSAwOyBpIDwgY2hhbm5lbE51bWJlcnMubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgaWYgKGNoYW5uZWxOdW1iZXJzLmluZGV4T2YobmV3TnVtYmVyKSA9PSAtMSkgew0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIH0NCiAgICAgICAgaWYgKE1hdGguZmxvb3IobmV3TnVtYmVyKSA9PSBuZXdOdW1iZXIpIHsNCiAgICAgICAgICAgIG5ld051bWJlciA9IG5ld051bWJlciArIDE7DQogICAgICAgIH0NCiAgICAgICAgZWxzZSB7DQogICAgICAgICAgICBuZXdOdW1iZXIgPSBuZXdOdW1iZXIgKyAwLjE7DQogICAgICAgICAgICBuZXdOdW1iZXIudG9GaXhlZCgxKTsNCiAgICAgICAgICAgIG5ld051bWJlciA9IE1hdGgucm91bmQobmV3TnVtYmVyICogMTApIC8gMTA7DQogICAgICAgIH0NCiAgICB9DQogICAgZGF0YVtkYklEXVsieC1jaGFubmVsSUQiXSA9IG5ld051bWJlci50b1N0cmluZygpOw0KICAgIGVsZW1lbnQudmFsdWUgPSBuZXdOdW1iZXI7DQogICAgY29uc29sZS5sb2coZGF0YVtkYklEXVsieC1jaGFubmVsSUQiXSk7DQogICAgaWYgKENPTFVNTl9UT19TT1JUID09IDEpIHsNCiAgICAgICAgQ09MVU1OX1RPX1NPUlQgPSAtMTsNCiAgICAgICAgc29ydFRhYmxlKDEpOw0KICAgIH0NCiAgICByZXR1cm47DQp9DQpmdW5jdGlvbiBiYWNrdXAoKSB7DQogICAgdmFyIGRhdGEgPSBuZXcgT2JqZWN0KCk7DQogICAgY29uc29sZS5sb2coIkJhY2t1cCBkYXRhIik7DQogICAgdmFyIGNtZCA9ICJ4dGV2ZUJhY2t1cCI7DQogICAgY29uc29sZS5sb2coIlNFTkQgVE8gU0VSVkVSIik7DQogICAgY29uc29sZS5sb2coZGF0YSk7DQogICAgdmFyIHNlcnZlciA9IG5ldyBTZXJ2ZXIoY21kKTsNCiAgICBzZXJ2ZXIucmVxdWVzdChkYXRhKTsNCiAgICByZXR1cm47DQp9DQpmdW5jdGlvbiB0b2dnbGVDaGFubmVsU3RhdHVzKGlkKSB7DQogICAgdmFyIGVsZW1lbnQ7DQogICAgdmFyIHN0YXR1czsNCiAgICBpZiAoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImFjdGl2ZSIpKSB7DQogICAgICAgIHZhciBjaGVja2JveCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJhY3RpdmUiKTsNCiAgICAgICAgc3RhdHVzID0gKGNoZWNrYm94KS5jaGVja2VkOw0KICAgIH0NCiAgICB2YXIgaWRzID0gZ2V0QWxsU2VsZWN0ZWRDaGFubmVscygpOw0KICAgIGlmIChpZHMubGVuZ3RoID09IDApIHsNCiAgICAgICAgaWRzLnB1c2goaWQpOw0KICAgIH0NCiAgICBpZHMuZm9yRWFjaChpZCA9PiB7DQogICAgICAgIHZhciBjaGFubmVsID0gU0VSVkVSWyJ4ZXBnIl1bImVwZ01hcHBpbmciXVtpZF07DQogICAgICAgIGNoYW5uZWxbIngtYWN0aXZlIl0gPSBzdGF0dXM7DQogICAgICAgIHN3aXRjaCAoY2hhbm5lbFsieC1hY3RpdmUiXSkgew0KICAgICAgICAgICAgY2FzZSB0cnVlOg0KICAgICAgICAgICAgICAgIGlmIChjaGFubmVsWyJ4LXhtbHR2LWZpbGUiXSA9PSAiLSIgfHwgY2hhbm5lbFsieC1tYXBwaW5nIl0gPT0gIi0iKSB7DQogICAgICAgICAgICAgICAgICAgIGlmIChCVUxLX0VESVQgPT0gZmFsc2UpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGFsZXJ0KGNoYW5uZWxbIngtbmFtZSJdICsgIjogTWlzc2luZyBYTUxUViBmaWxlIC8gY2hhbm5lbCIpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2hlY2tib3guY2hlY2tlZCA9IGZhbHNlOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIGNoYW5uZWxbIngtYWN0aXZlIl0gPSBmYWxzZTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlIGZhbHNlOg0KICAgICAgICAgICAgICAgIC8vIGNvZGUuLi4NCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgfQ0KICAgICAgICBpZiAoY2hhbm5lbFsieC1hY3RpdmUiXSA9PSBmYWxzZSkgew0KICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpLmNsYXNzTmFtZSA9ICJub3RBY3RpdmVFUEciOw0KICAgICAgICB9DQogICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpLmNsYXNzTmFtZSA9ICJhY3RpdmVFUEciOw0KICAgICAgICB9DQogICAgfSk7DQp9DQpmdW5jdGlvbiByZXN0b3JlKCkgew0KICAgIGlmIChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndXBsb2FkJykpIHsNCiAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3VwbG9hZCcpLnJlbW92ZSgpOw0KICAgIH0NCiAgICB2YXIgcmVzdG9yZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIklOUFVUIik7DQogICAgcmVzdG9yZS5zZXRBdHRyaWJ1dGUoInR5cGUiLCAiZmlsZSIpOw0KICAgIHJlc3RvcmUuc2V0QXR0cmlidXRlKCJjbGFzcyIsICJub3RWaXNpYmxlIik7DQogICAgcmVzdG9yZS5zZXRBdHRyaWJ1dGUoIm5hbWUiLCAiIik7DQogICAgcmVzdG9yZS5pZCA9ICJ1cGxvYWQiOw0KICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQocmVzdG9yZSk7DQogICAgcmVzdG9yZS5jbGljaygpOw0KICAgIHJlc3RvcmUub25jaGFuZ2UgPSBmdW5jdGlvbiAoKSB7DQogICAgICAgIHZhciBmaWxlbmFtZSA9IHJlc3RvcmUuZmlsZXNbMF0ubmFtZTsNCiAgICAgICAgdmFyIGNoZWNrID0gY29uZmlybSgiRmlsZTogIiArIGZpbGVuYW1lICsgIlxue3suY29uZmlybS5yZXN0b3JlfX0iKTsNCiAgICAgICAgaWYgKGNoZWNrID09IHRydWUpIHsNCiAgICAgICAgICAgIHZhciByZWFkZXIgPSBuZXcgRmlsZVJlYWRlcigpOw0KICAgICAgICAgICAgdmFyIGZpbGUgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCdpbnB1dFt0eXBlPWZpbGVdJykuZmlsZXNbMF07DQogICAgICAgICAgICBpZiAoZmlsZSkgew0KICAgICAgICAgICAgICAgIHJlYWRlci5yZWFkQXNEYXRhVVJMKGZpbGUpOw0KICAgICAgICAgICAgICAgIHJlYWRlci5vbmxvYWQgPSBmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKHJlYWRlci5yZXN1bHQpOw0KICAgICAgICAgICAgICAgICAgICB2YXIgZGF0YSA9IG5ldyBPYmplY3QoKTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGNtZCA9ICJ4dGV2ZVJlc3RvcmUiOw0KICAgICAgICAgICAgICAgICAgICBkYXRhWyJiYXNlNjQiXSA9IHJlYWRlci5yZXN1bHQ7DQogICAgICAgICAgICAgICAgICAgIHZhciBzZXJ2ZXIgPSBuZXcgU2VydmVyKGNtZCk7DQogICAgICAgICAgICAgICAgICAgIHNlcnZlci5yZXF1ZXN0KGRhdGEpOw0KICAgICAgICAgICAgICAgIH07DQogICAgICAgICAgICB9DQogICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICBhbGVydCgiRmlsZSBjb3VsZCBub3QgYmUgbG9hZGVkIik7DQogICAgICAgICAgICB9DQogICAgICAgICAgICByZXN0b3JlLnJlbW92ZSgpOw0KICAgICAgICAgICAgcmV0dXJuOw0KICAgICAgICB9DQogICAgfTsNCiAgICByZXR1cm47DQp9DQpmdW5jdGlvbiB1cGxvYWRMb2dvKCkgew0KICAgIGlmIChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndXBsb2FkJykpIHsNCiAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3VwbG9hZCcpLnJlbW92ZSgpOw0KICAgIH0NCiAgICB2YXIgdXBsb2FkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiSU5QVVQiKTsNCiAgICB1cGxvYWQuc2V0QXR0cmlidXRlKCJ0eXBlIiwgImZpbGUiKTsNCiAgICB1cGxvYWQuc2V0QXR0cmlidXRlKCJjbGFzcyIsICJub3RWaXNpYmxlIik7DQogICAgdXBsb2FkLnNldEF0dHJpYnV0ZSgibmFtZSIsICIiKTsNCiAgICB1cGxvYWQuaWQgPSAidXBsb2FkIjsNCiAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHVwbG9hZCk7DQogICAgdXBsb2FkLmNsaWNrKCk7DQogICAgdXBsb2FkLm9uYmx1ciA9IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgYWxlcnQoKTsNCiAgICB9Ow0KICAgIHVwbG9hZC5vbmNoYW5nZSA9IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgdmFyIGZpbGVuYW1lID0gdXBsb2FkLmZpbGVzWzBdLm5hbWU7DQogICAgICAgIHZhciByZWFkZXIgPSBuZXcgRmlsZVJlYWRlcigpOw0KICAgICAgICB2YXIgZmlsZSA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ2lucHV0W3R5cGU9ZmlsZV0nKS5maWxlc1swXTsNCiAgICAgICAgaWYgKGZpbGUpIHsNCiAgICAgICAgICAgIHJlYWRlci5yZWFkQXNEYXRhVVJMKGZpbGUpOw0KICAgICAgICAgICAgcmVhZGVyLm9ubG9hZCA9IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhyZWFkZXIucmVzdWx0KTsNCiAgICAgICAgICAgICAgICB2YXIgZGF0YSA9IG5ldyBPYmplY3QoKTsNCiAgICAgICAgICAgICAgICB2YXIgY21kID0gInVwbG9hZExvZ28iOw0KICAgICAgICAgICAgICAgIGRhdGFbImJhc2U2NCJdID0gcmVhZGVyLnJlc3VsdDsNCiAgICAgICAgICAgICAgICBkYXRhWyJmaWxlbmFtZSJdID0gZmlsZS5uYW1lOw0KICAgICAgICAgICAgICAgIHZhciBzZXJ2ZXIgPSBuZXcgU2VydmVyKGNtZCk7DQogICAgICAgICAgICAgICAgc2VydmVyLnJlcXVlc3QoZGF0YSk7DQogICAgICAgICAgICAgICAgdmFyIHVwZGF0ZUxvZ28gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndXBkYXRlLWljb24nKTsNCiAgICAgICAgICAgICAgICB1cGRhdGVMb2dvLmNoZWNrZWQgPSBmYWxzZTsNCiAgICAgICAgICAgICAgICB1cGRhdGVMb2dvLmNsYXNzTmFtZSA9ICJjaGFuZ2VkIjsNCiAgICAgICAgICAgIH07DQogICAgICAgIH0NCiAgICAgICAgZWxzZSB7DQogICAgICAgICAgICBhbGVydCgiRmlsZSBjb3VsZCBub3QgYmUgbG9hZGVkIik7DQogICAgICAgIH0NCiAgICAgICAgdXBsb2FkLnJlbW92ZSgpOw0KICAgICAgICByZXR1cm47DQogICAgfTsNCn0NCmZ1bmN0aW9uIGNoZWNrVW5kbyhrZXkpIHsNCiAgICBzd2l0Y2ggKGtleSkgew0KICAgICAgICBjYXNlICJlcGdNYXBwaW5nIjoNCiAgICAgICAgICAgIGlmIChVTkRPLmhhc093blByb3BlcnR5KGtleSkpIHsNCiAgICAgICAgICAgICAgICBTRVJWRVJbInhlcGciXVtrZXldID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeShVTkRPW2tleV0pKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgICAgIFVORE9ba2V5XSA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkoU0VSVkVSWyJ4ZXBnIl1ba2V5XSkpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICBicmVhazsNCiAgICB9DQogICAgcmV0dXJuOw0KfQ0KZnVuY3Rpb24gc29ydFNlbGVjdChlbGVtKSB7DQogICAgdmFyIHRtcEFyeSA9IFtdOw0KICAgIHZhciBzZWxlY3RlZFZhbHVlID0gZWxlbVtlbGVtLnNlbGVjdGVkSW5kZXhdLnZhbHVlOw0KICAgIGZvciAodmFyIGkgPSAwOyBpIDwgZWxlbS5vcHRpb25zLmxlbmd0aDsgaSsrKQ0KICAgICAgICB0bXBBcnkucHVzaChlbGVtLm9wdGlvbnNbaV0pOw0KICAgIHRtcEFyeS5zb3J0KGZ1bmN0aW9uIChhLCBiKSB7IHJldHVybiAoYS50ZXh0IDwgYi50ZXh0KSA/IC0xIDogMTsgfSk7DQogICAgd2hpbGUgKGVsZW0ub3B0aW9ucy5sZW5ndGggPiAwKQ0KICAgICAgICBlbGVtLm9wdGlvbnNbMF0gPSBudWxsOw0KICAgIHZhciBuZXdTZWxlY3RlZEluZGV4ID0gMDsNCiAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRtcEFyeS5sZW5ndGg7IGkrKykgew0KICAgICAgICBlbGVtLm9wdGlvbnNbaV0gPSB0bXBBcnlbaV07DQogICAgICAgIGlmIChlbGVtLm9wdGlvbnNbaV0udmFsdWUgPT0gc2VsZWN0ZWRWYWx1ZSkNCiAgICAgICAgICAgIG5ld1NlbGVjdGVkSW5kZXggPSBpOw0KICAgIH0NCiAgICBlbGVtLnNlbGVjdGVkSW5kZXggPSBuZXdTZWxlY3RlZEluZGV4OyAvLyBTZXQgbmV3IHNlbGVjdGVkIGluZGV4IGFmdGVyIHNvcnRpbmcNCiAgICByZXR1cm47DQp9DQpmdW5jdGlvbiB1cGRhdGVMb2coKSB7DQogICAgY29uc29sZS5sb2coIlRPS0VOIik7DQogICAgdmFyIHNlcnZlciA9IG5ldyBTZXJ2ZXIoInVwZGF0ZUxvZyIpOw0KICAgIHNlcnZlci5yZXF1ZXN0KG5ldyBPYmplY3QoKSk7DQp9DQo=" + webUI["html/js/base_ts.js"] = "dmFyIFNFUlZFUiA9IG5ldyBPYmplY3QoKTsNCnZhciBCVUxLX0VESVQgPSBmYWxzZTsNCnZhciBDT0xVTU5fVE9fU09SVDsNCnZhciBTRUFSQ0hfTUFQUElORyA9IG5ldyBPYmplY3QoKTsNCnZhciBVTkRPID0gbmV3IE9iamVjdCgpOw0KdmFyIFNFUlZFUl9DT05ORUNUSU9OID0gZmFsc2U7DQp2YXIgV1NfQVZBSUxBQkxFID0gZmFsc2U7DQovLyBNZW51DQp2YXIgbWVudUl0ZW1zID0gbmV3IEFycmF5KCk7DQptZW51SXRlbXMucHVzaChuZXcgTWFpbk1lbnVJdGVtKCJwbGF5bGlzdCIsICJ7ey5tYWluTWVudS5pdGVtLnBsYXlsaXN0fX0iLCAibTN1LnBuZyIsICJ7ey5tYWluTWVudS5oZWFkbGluZS5wbGF5bGlzdH19IikpOw0KLy9tZW51SXRlbXMucHVzaChuZXcgTWFpbk1lbnVJdGVtKCJwbXNJRCIsICJ7ey5tYWluTWVudS5pdGVtLnBtc0lEfX0iLCAibnVtYmVyLnBuZyIsICJ7ey5tYWluTWVudS5oZWFkbGluZS5wbXNJRH19IikpDQptZW51SXRlbXMucHVzaChuZXcgTWFpbk1lbnVJdGVtKCJmaWx0ZXIiLCAie3subWFpbk1lbnUuaXRlbS5maWx0ZXJ9fSIsICJmaWx0ZXIucG5nIiwgInt7Lm1haW5NZW51LmhlYWRsaW5lLmZpbHRlcn19IikpOw0KbWVudUl0ZW1zLnB1c2gobmV3IE1haW5NZW51SXRlbSgieG1sdHYiLCAie3subWFpbk1lbnUuaXRlbS54bWx0dn19IiwgInhtbHR2LnBuZyIsICJ7ey5tYWluTWVudS5oZWFkbGluZS54bWx0dn19IikpOw0KbWVudUl0ZW1zLnB1c2gobmV3IE1haW5NZW51SXRlbSgibWFwcGluZyIsICJ7ey5tYWluTWVudS5pdGVtLm1hcHBpbmd9fSIsICJtYXBwaW5nLnBuZyIsICJ7ey5tYWluTWVudS5oZWFkbGluZS5tYXBwaW5nfX0iKSk7DQptZW51SXRlbXMucHVzaChuZXcgTWFpbk1lbnVJdGVtKCJ1c2VycyIsICJ7ey5tYWluTWVudS5pdGVtLnVzZXJzfX0iLCAidXNlcnMucG5nIiwgInt7Lm1haW5NZW51LmhlYWRsaW5lLnVzZXJzfX0iKSk7DQptZW51SXRlbXMucHVzaChuZXcgTWFpbk1lbnVJdGVtKCJzZXR0aW5ncyIsICJ7ey5tYWluTWVudS5pdGVtLnNldHRpbmdzfX0iLCAic2V0dGluZ3MucG5nIiwgInt7Lm1haW5NZW51LmhlYWRsaW5lLnNldHRpbmdzfX0iKSk7DQptZW51SXRlbXMucHVzaChuZXcgTWFpbk1lbnVJdGVtKCJsb2ciLCAie3subWFpbk1lbnUuaXRlbS5sb2d9fSIsICJsb2cucG5nIiwgInt7Lm1haW5NZW51LmhlYWRsaW5lLmxvZ319IikpOw0KbWVudUl0ZW1zLnB1c2gobmV3IE1haW5NZW51SXRlbSgibG9nb3V0IiwgInt7Lm1haW5NZW51Lml0ZW0ubG9nb3V0fX0iLCAibG9nb3V0LnBuZyIsICJ7ey5tYWluTWVudS5oZWFkbGluZS5sb2dvdXR9fSIpKTsNCi8vIFNldHRpbmdzIGNhdGVnb3JpZXMNCnZhciBzZXR0aW5nc0NhdGVnb3J5ID0gbmV3IEFycmF5KCk7DQpzZXR0aW5nc0NhdGVnb3J5LnB1c2gobmV3IFNldHRpbmdzQ2F0ZWdvcnlJdGVtKCJ7ey5zZXR0aW5ncy5jYXRlZ29yeS5nZW5lcmFsfX0iLCAieHRldmVBdXRvVXBkYXRlLHR1bmVyLGVwZ1NvdXJjZSxhcGkiKSk7DQpzZXR0aW5nc0NhdGVnb3J5LnB1c2gobmV3IFNldHRpbmdzQ2F0ZWdvcnlJdGVtKCJ7ey5zZXR0aW5ncy5jYXRlZ29yeS5maWxlc319IiwgInVwZGF0ZSxmaWxlcy51cGRhdGUsdGVtcC5wYXRoLGNhY2hlLmltYWdlcyx4ZXBnLnJlcGxhY2UubWlzc2luZy5pbWFnZXMiKSk7DQpzZXR0aW5nc0NhdGVnb3J5LnB1c2gobmV3IFNldHRpbmdzQ2F0ZWdvcnlJdGVtKCJ7ey5zZXR0aW5ncy5jYXRlZ29yeS5zdHJlYW1pbmd9fSIsICJidWZmZXIsdWRweHksYnVmZmVyLnNpemUua2IsYnVmZmVyLnRpbWVvdXQsdXNlci5hZ2VudCxmZm1wZWcucGF0aCxmZm1wZWcub3B0aW9ucyx2bGMucGF0aCx2bGMub3B0aW9ucyIpKTsNCnNldHRpbmdzQ2F0ZWdvcnkucHVzaChuZXcgU2V0dGluZ3NDYXRlZ29yeUl0ZW0oInt7LnNldHRpbmdzLmNhdGVnb3J5LmJhY2t1cH19IiwgImJhY2t1cC5wYXRoLGJhY2t1cC5rZWVwIikpOw0Kc2V0dGluZ3NDYXRlZ29yeS5wdXNoKG5ldyBTZXR0aW5nc0NhdGVnb3J5SXRlbSgie3suc2V0dGluZ3MuY2F0ZWdvcnkuYXV0aGVudGljYXRpb259fSIsICJhdXRoZW50aWNhdGlvbi53ZWIsYXV0aGVudGljYXRpb24ucG1zLGF1dGhlbnRpY2F0aW9uLm0zdSxhdXRoZW50aWNhdGlvbi54bWwsYXV0aGVudGljYXRpb24uYXBpIikpOw0KZnVuY3Rpb24gc2hvd1BvcFVwRWxlbWVudChlbG0pIHsNCiAgICB2YXIgYWxsRWxlbWVudHMgPSBuZXcgQXJyYXkoInBvcHVwLWN1c3RvbSIpOw0KICAgIGZvciAodmFyIGkgPSAwOyBpIDwgYWxsRWxlbWVudHMubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgc2hvd0VsZW1lbnQoYWxsRWxlbWVudHNbaV0sIGZhbHNlKTsNCiAgICB9DQogICAgc2hvd0VsZW1lbnQoZWxtLCB0cnVlKTsNCiAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsNCiAgICAgICAgc2hvd0VsZW1lbnQoInBvcHVwIiwgdHJ1ZSk7DQogICAgfSwgMTApOw0KICAgIHJldHVybjsNCn0NCmZ1bmN0aW9uIHNob3dFbGVtZW50KGVsbUlELCB0eXBlKSB7DQogICAgdmFyIGNzc0NsYXNzOw0KICAgIHN3aXRjaCAodHlwZSkgew0KICAgICAgICBjYXNlIHRydWU6DQogICAgICAgICAgICBjc3NDbGFzcyA9ICJibG9jayI7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSBmYWxzZToNCiAgICAgICAgICAgIGNzc0NsYXNzID0gIm5vbmUiOw0KICAgICAgICAgICAgYnJlYWs7DQogICAgfQ0KICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGVsbUlEKS5jbGFzc05hbWUgPSBjc3NDbGFzczsNCn0NCmZ1bmN0aW9uIGNoYW5nZUJ1dHRvbkFjdGlvbihlbGVtZW50LCBidXR0b25JRCwgYXR0cmlidXRlKSB7DQogICAgdmFyIHZhbHVlID0gZWxlbWVudC5vcHRpb25zW2VsZW1lbnQuc2VsZWN0ZWRJbmRleF0udmFsdWU7DQogICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoYnV0dG9uSUQpLnNldEF0dHJpYnV0ZShhdHRyaWJ1dGUsIHZhbHVlKTsNCn0NCmZ1bmN0aW9uIGdldExvY2FsRGF0YShkYXRhVHlwZSwgaWQpIHsNCiAgICBsZXQgZGF0YSA9IHt9Ow0KICAgIHN3aXRjaCAoZGF0YVR5cGUpIHsNCiAgICAgICAgY2FzZSAibTN1IjoNCiAgICAgICAgICAgIGRhdGEgPSBTRVJWRVJbInNldHRpbmdzIl1bImZpbGVzIl1bZGF0YVR5cGVdW2lkXTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJoZGhyIjoNCiAgICAgICAgICAgIGRhdGEgPSBTRVJWRVJbInNldHRpbmdzIl1bImZpbGVzIl1bZGF0YVR5cGVdW2lkXTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJmaWx0ZXIiOg0KICAgICAgICBjYXNlICJjdXN0b20tZmlsdGVyIjoNCiAgICAgICAgY2FzZSAiZ3JvdXAtdGl0bGUiOg0KICAgICAgICAgICAgaWYgKGlkID09IC0xKSB7DQogICAgICAgICAgICAgICAgZGF0YVsiYWN0aXZlIl0gPSB0cnVlOw0KICAgICAgICAgICAgICAgIGRhdGFbImNhc2VTZW5zaXRpdmUiXSA9IGZhbHNlOw0KICAgICAgICAgICAgICAgIGRhdGFbImRlc2NyaXB0aW9uIl0gPSAiIjsNCiAgICAgICAgICAgICAgICBkYXRhWyJleGNsdWRlIl0gPSAiIjsNCiAgICAgICAgICAgICAgICBkYXRhWyJmaWx0ZXIiXSA9ICIiOw0KICAgICAgICAgICAgICAgIGRhdGFbImluY2x1ZGUiXSA9ICIiOw0KICAgICAgICAgICAgICAgIGRhdGFbIm5hbWUiXSA9ICIiOw0KICAgICAgICAgICAgICAgIGRhdGFbInR5cGUiXSA9ICJncm91cC10aXRsZSI7DQogICAgICAgICAgICAgICAgZGF0YVsicHJlc2VydmVNYXBwaW5nIl0gPSB0cnVlOw0KICAgICAgICAgICAgICAgIGRhdGFbInN0YXJ0aW5nQ2hhbm5lbCJdID0gU0VSVkVSWyJzZXR0aW5ncyJdWyJtYXBwaW5nLmZpcnN0LmNoYW5uZWwiXTsNCiAgICAgICAgICAgICAgICBkYXRhWyJkZWZhdWx0TWlzc2luZ0VQRyJdID0gIi0iOw0KICAgICAgICAgICAgICAgIFNFUlZFUlsic2V0dGluZ3MiXVsiZmlsdGVyIl1baWRdID0gZGF0YTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGRhdGEgPSBTRVJWRVJbInNldHRpbmdzIl1bImZpbHRlciJdW2lkXTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJ4bWx0diI6DQogICAgICAgICAgICBkYXRhID0gU0VSVkVSWyJzZXR0aW5ncyJdWyJmaWxlcyJdW2RhdGFUeXBlXVtpZF07DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSAidXNlcnMiOg0KICAgICAgICAgICAgZGF0YSA9IFNFUlZFUlsidXNlcnMiXVtpZF1bImRhdGEiXTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJtYXBwaW5nIjoNCiAgICAgICAgICAgIGRhdGEgPSBTRVJWRVJbInhlcGciXVsiZXBnTWFwcGluZyJdW2lkXTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJtM3VHcm91cHMiOg0KICAgICAgICAgICAgZGF0YSA9IFNFUlZFUlsiZGF0YSJdWyJwbGF5bGlzdCJdWyJtM3UiXVsiZ3JvdXBzIl07DQogICAgICAgICAgICBicmVhazsNCiAgICB9DQogICAgcmV0dXJuIGRhdGE7DQp9DQpmdW5jdGlvbiBnZXRPYmpLZXlzKG9iaikgew0KICAgIHZhciBrZXlzID0gbmV3IEFycmF5KCk7DQogICAgZm9yICh2YXIgaSBpbiBvYmopIHsNCiAgICAgICAgaWYgKG9iai5oYXNPd25Qcm9wZXJ0eShpKSkgew0KICAgICAgICAgICAga2V5cy5wdXNoKGkpOw0KICAgICAgICB9DQogICAgfQ0KICAgIHJldHVybiBrZXlzOw0KfQ0KZnVuY3Rpb24gZ2V0QWxsU2VsZWN0ZWRDaGFubmVscygpIHsNCiAgICB2YXIgY2hhbm5lbHMgPSBuZXcgQXJyYXkoKTsNCiAgICBpZiAoQlVMS19FRElUID09IGZhbHNlKSB7DQogICAgICAgIHJldHVybiBjaGFubmVsczsNCiAgICB9DQogICAgdmFyIHRycyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb250ZW50X3RhYmxlIikuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlRSIik7DQogICAgZm9yICh2YXIgaSA9IDE7IGkgPCB0cnMubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgaWYgKHRyc1tpXS5zdHlsZS5kaXNwbGF5ICE9ICJub25lIikgew0KICAgICAgICAgICAgaWYgKHRyc1tpXS5maXJzdENoaWxkLmZpcnN0Q2hpbGQuY2hlY2tlZCA9PSB0cnVlKSB7DQogICAgICAgICAgICAgICAgY2hhbm5lbHMucHVzaCh0cnNbaV0uaWQpOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQogICAgfQ0KICAgIHJldHVybiBjaGFubmVsczsNCn0NCmZ1bmN0aW9uIHNlbGVjdEFsbENoYW5uZWxzKCkgew0KICAgIHZhciBidWxrID0gZmFsc2U7DQogICAgdmFyIHRycyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb250ZW50X3RhYmxlIikuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlRSIik7DQogICAgaWYgKHRyc1swXS5maXJzdENoaWxkLmZpcnN0Q2hpbGQuY2hlY2tlZCA9PSB0cnVlKSB7DQogICAgICAgIGJ1bGsgPSB0cnVlOw0KICAgIH0NCiAgICBmb3IgKHZhciBpID0gMTsgaSA8IHRycy5sZW5ndGg7IGkrKykgew0KICAgICAgICBpZiAodHJzW2ldLnN0eWxlLmRpc3BsYXkgIT0gIm5vbmUiKSB7DQogICAgICAgICAgICBzd2l0Y2ggKGJ1bGspIHsNCiAgICAgICAgICAgICAgICBjYXNlIHRydWU6DQogICAgICAgICAgICAgICAgICAgIHRyc1tpXS5maXJzdENoaWxkLmZpcnN0Q2hpbGQuY2hlY2tlZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgZmFsc2U6DQogICAgICAgICAgICAgICAgICAgIHRyc1tpXS5maXJzdENoaWxkLmZpcnN0Q2hpbGQuY2hlY2tlZCA9IGZhbHNlOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KICAgIH0NCiAgICByZXR1cm47DQp9DQpmdW5jdGlvbiBidWxrRWRpdCgpIHsNCiAgICBCVUxLX0VESVQgPSAhQlVMS19FRElUOw0KICAgIHZhciBjbGFzc05hbWU7DQogICAgdmFyIHJvd3MgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCJidWxrIik7DQogICAgc3dpdGNoIChCVUxLX0VESVQpIHsNCiAgICAgICAgY2FzZSB0cnVlOg0KICAgICAgICAgICAgY2xhc3NOYW1lID0gImJ1bGsgc2hvd0J1bGsiOw0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGNhc2UgZmFsc2U6DQogICAgICAgICAgICBjbGFzc05hbWUgPSAiYnVsayBoaWRlQnVsayI7DQogICAgICAgICAgICBicmVhazsNCiAgICB9DQogICAgZm9yICh2YXIgaSA9IDA7IGkgPCByb3dzLmxlbmd0aDsgaSsrKSB7DQogICAgICAgIHJvd3NbaV0uY2xhc3NOYW1lID0gY2xhc3NOYW1lOw0KICAgICAgICByb3dzW2ldLmNoZWNrZWQgPSBmYWxzZTsNCiAgICB9DQogICAgcmV0dXJuOw0KfQ0KZnVuY3Rpb24gc29ydFRhYmxlKGNvbHVtbikgew0KICAgIC8vY29uc29sZS5sb2coY29sdW1tKTsNCiAgICBpZiAoY29sdW1uID09IENPTFVNTl9UT19TT1JUKSB7DQogICAgICAgIHJldHVybjsNCiAgICB9DQogICAgdmFyIHRhYmxlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnRlbnRfdGFibGUiKTsNCiAgICB2YXIgdGFibGVIZWFkID0gdGFibGUuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlRSIilbMF07DQogICAgdmFyIHRhYmxlSXRlbXMgPSB0YWJsZUhlYWQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlREIik7DQogICAgdmFyIHNvcnRPYmogPSBuZXcgT2JqZWN0KCk7DQogICAgdmFyIHgsIHhWYWx1ZTsNCiAgICB2YXIgdGFibGVIZWFkZXI7DQogICAgdmFyIHNvcnRCeVN0cmluZyA9IGZhbHNlOw0KICAgIGlmIChjb2x1bW4gPiAwICYmIENPTFVNTl9UT19TT1JUID4gMCkgew0KICAgICAgICB0YWJsZUl0ZW1zW0NPTFVNTl9UT19TT1JUXS5jbGFzc05hbWUgPSAicG9pbnRlciI7DQogICAgICAgIHRhYmxlSXRlbXNbY29sdW1uXS5jbGFzc05hbWUgPSAic29ydFRoaXMiOw0KICAgIH0NCiAgICBDT0xVTU5fVE9fU09SVCA9IGNvbHVtbjsNCiAgICB2YXIgcm93cyA9IHRhYmxlLnJvd3M7DQogICAgaWYgKHJvd3NbMV0gIT0gdW5kZWZpbmVkKSB7DQogICAgICAgIHRhYmxlSGVhZGVyID0gcm93c1swXTsNCiAgICAgICAgeCA9IHJvd3NbMV0uZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlREIilbY29sdW1uXTsNCiAgICAgICAgZm9yIChpID0gMTsgaSA8IHJvd3MubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgICAgIHggPSByb3dzW2ldLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJURCIpW2NvbHVtbl07DQogICAgICAgICAgICBzd2l0Y2ggKHguY2hpbGROb2Rlc1swXS50YWdOYW1lLnRvTG93ZXJDYXNlKCkpIHsNCiAgICAgICAgICAgICAgICBjYXNlICJpbnB1dCI6DQogICAgICAgICAgICAgICAgICAgIHhWYWx1ZSA9IHguZ2V0RWxlbWVudHNCeVRhZ05hbWUoIklOUFVUIilbMF0udmFsdWUudG9Mb3dlckNhc2UoKTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAicCI6DQogICAgICAgICAgICAgICAgICAgIHhWYWx1ZSA9IHguZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlAiKVswXS5pbm5lclRleHQudG9Mb3dlckNhc2UoKTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgZGVmYXVsdDogY29uc29sZS5sb2coeC5jaGlsZE5vZGVzWzBdLnRhZ05hbWUpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgaWYgKHhWYWx1ZSA9PSAiIiB8fCB4VmFsdWUgPT0gTmFOKSB7DQogICAgICAgICAgICAgICAgeFZhbHVlID0gaTsNCiAgICAgICAgICAgICAgICBzb3J0T2JqW2ldID0gcm93c1tpXTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgICAgIHN3aXRjaCAoaXNOYU4oeFZhbHVlKSB8fCB0eXBlb2YgeFZhbHVlID09ICJzdHJpbmciKSB7DQogICAgICAgICAgICAgICAgICAgIGNhc2UgZmFsc2U6DQogICAgICAgICAgICAgICAgICAgICAgICB4VmFsdWUgPSBwYXJzZUZsb2F0KHhWYWx1ZSk7DQogICAgICAgICAgICAgICAgICAgICAgICBzb3J0T2JqW3hWYWx1ZV0gPSByb3dzW2ldOw0KICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgICAgIGNhc2UgdHJ1ZToNCiAgICAgICAgICAgICAgICAgICAgICAgIHNvcnRCeVN0cmluZyA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBzb3J0T2JqW3hWYWx1ZS50b0xvd2VyQ2FzZSgpICsgaV0gPSByb3dzW2ldOw0KICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQogICAgICAgIHdoaWxlICh0YWJsZS5maXJzdENoaWxkKSB7DQogICAgICAgICAgICB0YWJsZS5yZW1vdmVDaGlsZCh0YWJsZS5maXJzdENoaWxkKTsNCiAgICAgICAgfQ0KICAgICAgICB2YXIgc29ydFZhbHVlcyA9IGdldE9iaktleXMoc29ydE9iaik7DQogICAgICAgIGlmIChzb3J0QnlTdHJpbmcgPT0gdHJ1ZSkgew0KICAgICAgICAgICAgc29ydFZhbHVlcy5zb3J0KCk7DQogICAgICAgICAgICBjb25zb2xlLmxvZyhzb3J0VmFsdWVzKTsNCiAgICAgICAgfQ0KICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgIGZ1bmN0aW9uIHNvcnRGbG9hdChhLCBiKSB7DQogICAgICAgICAgICAgICAgcmV0dXJuIGEgLSBiOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgc29ydFZhbHVlcy5zb3J0KHNvcnRGbG9hdCk7DQogICAgICAgIH0NCiAgICAgICAgdGFibGUuYXBwZW5kQ2hpbGQodGFibGVIZWFkZXIpOw0KICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHNvcnRWYWx1ZXMubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgICAgIHRhYmxlLmFwcGVuZENoaWxkKHNvcnRPYmpbc29ydFZhbHVlc1tpXV0pOw0KICAgICAgICB9DQogICAgfQ0KICAgIHJldHVybjsNCn0NCmZ1bmN0aW9uIGNyZWF0ZVNlYXJjaE9iaigpIHsNCiAgICBTRUFSQ0hfTUFQUElORyA9IG5ldyBPYmplY3QoKTsNCiAgICB2YXIgZGF0YSA9IFNFUlZFUlsieGVwZyJdWyJlcGdNYXBwaW5nIl07DQogICAgdmFyIGNoYW5uZWxzID0gZ2V0T2JqS2V5cyhkYXRhKTsNCiAgICB2YXIgY2hhbm5lbEtleXMgPSBbIngtYWN0aXZlIiwgIngtY2hhbm5lbElEIiwgIngtbmFtZSIsICJfZmlsZS5tM3UubmFtZSIsICJ4LWdyb3VwLXRpdGxlIiwgIngteG1sdHYtZmlsZSJdOw0KICAgIGNoYW5uZWxzLmZvckVhY2goaWQgPT4gew0KICAgICAgICBjaGFubmVsS2V5cy5mb3JFYWNoKGtleSA9PiB7DQogICAgICAgICAgICBpZiAoa2V5ID09ICJ4LWFjdGl2ZSIpIHsNCiAgICAgICAgICAgICAgICBzd2l0Y2ggKGRhdGFbaWRdW2tleV0pIHsNCiAgICAgICAgICAgICAgICAgICAgY2FzZSB0cnVlOg0KICAgICAgICAgICAgICAgICAgICAgICAgU0VBUkNIX01BUFBJTkdbaWRdID0gIm9ubGluZSAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgICAgIGNhc2UgZmFsc2U6DQogICAgICAgICAgICAgICAgICAgICAgICBTRUFSQ0hfTUFQUElOR1tpZF0gPSAib2ZmbGluZSAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgZWxzZSB7DQogICAgICAgICAgICAgICAgaWYgKGtleSA9PSAieC14bWx0di1maWxlIikgew0KICAgICAgICAgICAgICAgICAgICB2YXIgeG1sdHZGaWxlID0gZ2V0VmFsdWVGcm9tUHJvdmlkZXJGaWxlKGRhdGFbaWRdW2tleV0sICJ4bWx0diIsICJuYW1lIik7DQogICAgICAgICAgICAgICAgICAgIGlmICh4bWx0dkZpbGUgIT0gdW5kZWZpbmVkKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBTRUFSQ0hfTUFQUElOR1tpZF0gPSBTRUFSQ0hfTUFQUElOR1tpZF0gKyB4bWx0dkZpbGUgKyAiICI7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgZWxzZSB7DQogICAgICAgICAgICAgICAgICAgIFNFQVJDSF9NQVBQSU5HW2lkXSA9IFNFQVJDSF9NQVBQSU5HW2lkXSArIGRhdGFbaWRdW2tleV0gKyAiICI7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfQ0KICAgICAgICB9KTsNCiAgICB9KTsNCiAgICByZXR1cm47DQp9DQpmdW5jdGlvbiBzZWFyY2hJbk1hcHBpbmcoKSB7DQogICAgdmFyIHNlYXJjaFZhbHVlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNlYXJjaE1hcHBpbmciKS52YWx1ZTsNCiAgICB2YXIgdHJzID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnRlbnRfdGFibGUiKS5nZXRFbGVtZW50c0J5VGFnTmFtZSgiVFIiKTsNCiAgICBmb3IgKHZhciBpID0gMTsgaSA8IHRycy5sZW5ndGg7ICsraSkgew0KICAgICAgICB2YXIgaWQgPSB0cnNbaV0uZ2V0QXR0cmlidXRlKCJpZCIpOw0KICAgICAgICB2YXIgZWxlbWVudCA9IFNFQVJDSF9NQVBQSU5HW2lkXTsNCiAgICAgICAgc3dpdGNoIChlbGVtZW50LnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoc2VhcmNoVmFsdWUudG9Mb3dlckNhc2UoKSkpIHsNCiAgICAgICAgICAgIGNhc2UgdHJ1ZToNCiAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkuc3R5bGUuZGlzcGxheSA9ICIiOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSBmYWxzZToNCiAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkuc3R5bGUuZGlzcGxheSA9ICJub25lIjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgfQ0KICAgIH0NCiAgICByZXR1cm47DQp9DQpmdW5jdGlvbiBjYWxjdWxhdGVXcmFwcGVySGVpZ2h0KCkgew0KICAgIGlmIChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYm94LXdyYXBwZXIiKSkgew0KICAgICAgICB2YXIgZWxtID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImJveC13cmFwcGVyIik7DQogICAgICAgIHZhciBkaXZzID0gbmV3IEFycmF5KCJteVN0cmVhbXNCb3giLCAiY2xpZW50SW5mbyIsICJjb250ZW50Iik7DQogICAgICAgIHZhciBlbGVtZW50c0hlaWdodCA9IDAgLSBlbG0ub2Zmc2V0SGVpZ2h0Ow0KICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGRpdnMubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgICAgIGVsZW1lbnRzSGVpZ2h0ID0gZWxlbWVudHNIZWlnaHQgKyBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChkaXZzW2ldKS5vZmZzZXRIZWlnaHQ7DQogICAgICAgIH0NCiAgICAgICAgZWxtLnN0eWxlLmhlaWdodCA9IHdpbmRvdy5pbm5lckhlaWdodCAtIGVsZW1lbnRzSGVpZ2h0ICsgInB4IjsNCiAgICB9DQogICAgcmV0dXJuOw0KfQ0KZnVuY3Rpb24gY2hhbmdlQ2hhbm5lbE51bWJlcihlbGVtZW50KSB7DQogICAgdmFyIGRiSUQgPSBlbGVtZW50LnBhcmVudE5vZGUucGFyZW50Tm9kZS5pZDsNCiAgICB2YXIgbmV3TnVtYmVyID0gcGFyc2VGbG9hdChlbGVtZW50LnZhbHVlKTsNCiAgICB2YXIgY2hhbm5lbE51bWJlcnMgPSBbXTsNCiAgICB2YXIgZGF0YSA9IFNFUlZFUlsieGVwZyJdWyJlcGdNYXBwaW5nIl07DQogICAgdmFyIGNoYW5uZWxzID0gZ2V0T2JqS2V5cyhkYXRhKTsNCiAgICBpZiAoaXNOYU4obmV3TnVtYmVyKSkgew0KICAgICAgICBhbGVydCgie3suYWxlcnQuaW52YWxpZENoYW5uZWxOdW1iZXJ9fSIpOw0KICAgICAgICByZXR1cm47DQogICAgfQ0KICAgIGNoYW5uZWxzLmZvckVhY2goaWQgPT4gew0KICAgICAgICB2YXIgY2hhbm5lbE51bWJlciA9IHBhcnNlRmxvYXQoZGF0YVtpZF1bIngtY2hhbm5lbElEIl0pOw0KICAgICAgICBjaGFubmVsTnVtYmVycy5wdXNoKGNoYW5uZWxOdW1iZXIpOw0KICAgIH0pOw0KICAgIGZvciAodmFyIGkgPSAwOyBpIDwgY2hhbm5lbE51bWJlcnMubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgaWYgKGNoYW5uZWxOdW1iZXJzLmluZGV4T2YobmV3TnVtYmVyKSA9PSAtMSkgew0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIH0NCiAgICAgICAgaWYgKE1hdGguZmxvb3IobmV3TnVtYmVyKSA9PSBuZXdOdW1iZXIpIHsNCiAgICAgICAgICAgIG5ld051bWJlciA9IG5ld051bWJlciArIDE7DQogICAgICAgIH0NCiAgICAgICAgZWxzZSB7DQogICAgICAgICAgICBuZXdOdW1iZXIgPSBuZXdOdW1iZXIgKyAwLjE7DQogICAgICAgICAgICBuZXdOdW1iZXIudG9GaXhlZCgxKTsNCiAgICAgICAgICAgIG5ld051bWJlciA9IE1hdGgucm91bmQobmV3TnVtYmVyICogMTApIC8gMTA7DQogICAgICAgIH0NCiAgICB9DQogICAgZGF0YVtkYklEXVsieC1jaGFubmVsSUQiXSA9IG5ld051bWJlci50b1N0cmluZygpOw0KICAgIGVsZW1lbnQudmFsdWUgPSBuZXdOdW1iZXI7DQogICAgY29uc29sZS5sb2coZGF0YVtkYklEXVsieC1jaGFubmVsSUQiXSk7DQogICAgaWYgKENPTFVNTl9UT19TT1JUID09IDEpIHsNCiAgICAgICAgQ09MVU1OX1RPX1NPUlQgPSAtMTsNCiAgICAgICAgc29ydFRhYmxlKDEpOw0KICAgIH0NCiAgICByZXR1cm47DQp9DQpmdW5jdGlvbiBiYWNrdXAoKSB7DQogICAgdmFyIGRhdGEgPSBuZXcgT2JqZWN0KCk7DQogICAgY29uc29sZS5sb2coIkJhY2t1cCBkYXRhIik7DQogICAgdmFyIGNtZCA9ICJ4dGV2ZUJhY2t1cCI7DQogICAgY29uc29sZS5sb2coIlNFTkQgVE8gU0VSVkVSIik7DQogICAgY29uc29sZS5sb2coZGF0YSk7DQogICAgdmFyIHNlcnZlciA9IG5ldyBTZXJ2ZXIoY21kKTsNCiAgICBzZXJ2ZXIucmVxdWVzdChkYXRhKTsNCiAgICByZXR1cm47DQp9DQpmdW5jdGlvbiB0b2dnbGVDaGFubmVsU3RhdHVzKGlkKSB7DQogICAgdmFyIGVsZW1lbnQ7DQogICAgdmFyIHN0YXR1czsNCiAgICBpZiAoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImFjdGl2ZSIpKSB7DQogICAgICAgIHZhciBjaGVja2JveCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJhY3RpdmUiKTsNCiAgICAgICAgc3RhdHVzID0gKGNoZWNrYm94KS5jaGVja2VkOw0KICAgIH0NCiAgICB2YXIgaWRzID0gZ2V0QWxsU2VsZWN0ZWRDaGFubmVscygpOw0KICAgIGlmIChpZHMubGVuZ3RoID09IDApIHsNCiAgICAgICAgaWRzLnB1c2goaWQpOw0KICAgIH0NCiAgICBpZHMuZm9yRWFjaChpZCA9PiB7DQogICAgICAgIHZhciBjaGFubmVsID0gU0VSVkVSWyJ4ZXBnIl1bImVwZ01hcHBpbmciXVtpZF07DQogICAgICAgIGNoYW5uZWxbIngtYWN0aXZlIl0gPSBzdGF0dXM7DQogICAgICAgIHN3aXRjaCAoY2hhbm5lbFsieC1hY3RpdmUiXSkgew0KICAgICAgICAgICAgY2FzZSB0cnVlOg0KICAgICAgICAgICAgICAgIGlmIChjaGFubmVsWyJ4LXhtbHR2LWZpbGUiXSA9PSAiLSIgfHwgY2hhbm5lbFsieC1tYXBwaW5nIl0gPT0gIi0iKSB7DQogICAgICAgICAgICAgICAgICAgIGlmIChCVUxLX0VESVQgPT0gZmFsc2UpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGFsZXJ0KGNoYW5uZWxbIngtbmFtZSJdICsgIjogTWlzc2luZyBYTUxUViBmaWxlIC8gY2hhbm5lbCIpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2hlY2tib3guY2hlY2tlZCA9IGZhbHNlOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIGNoYW5uZWxbIngtYWN0aXZlIl0gPSBmYWxzZTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlIGZhbHNlOg0KICAgICAgICAgICAgICAgIC8vIGNvZGUuLi4NCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgfQ0KICAgICAgICBpZiAoY2hhbm5lbFsieC1hY3RpdmUiXSA9PSBmYWxzZSkgew0KICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpLmNsYXNzTmFtZSA9ICJub3RBY3RpdmVFUEciOw0KICAgICAgICB9DQogICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpLmNsYXNzTmFtZSA9ICJhY3RpdmVFUEciOw0KICAgICAgICB9DQogICAgfSk7DQp9DQpmdW5jdGlvbiB0b2dnbGVHcm91cFVwZGF0ZUNiKHhlcGdJZCwgdGFyZ2V0KSB7DQogICAgdGFyZ2V0LmNsYXNzTmFtZSA9ICdjaGFuZ2VkJzsNCiAgICBjb25zdCBncm91cElucHV0ID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignaW5wdXRbbmFtZT0ieC1ncm91cC10aXRsZSJdJyk7DQogICAgY29uc3QgbWFwcGluZyA9IGdldExvY2FsRGF0YSgnbWFwcGluZycsIHhlcGdJZCk7DQogICAgaWYgKHRhcmdldC5jaGVja2VkKSB7DQogICAgICAgIGdyb3VwSW5wdXQuZGF0YXNldC5vbGRWYWx1ZSA9IGdyb3VwSW5wdXQudmFsdWU7DQogICAgICAgIGdyb3VwSW5wdXQudmFsdWUgPSBtYXBwaW5nWydncm91cC10aXRsZSddOw0KICAgICAgICBncm91cElucHV0LmRpc2FibGVkID0gdHJ1ZTsNCiAgICB9DQogICAgZWxzZSB7DQogICAgICAgIGdyb3VwSW5wdXQudmFsdWUgPSBncm91cElucHV0LmRhdGFzZXQub2xkVmFsdWU7DQogICAgICAgIGdyb3VwSW5wdXQuZGlzYWJsZWQgPSBmYWxzZTsNCiAgICB9DQogICAgZ3JvdXBJbnB1dC5jbGFzc05hbWUgPSAnY2hhbmdlZCc7DQp9DQpmdW5jdGlvbiByZXN0b3JlKCkgew0KICAgIGlmIChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndXBsb2FkJykpIHsNCiAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3VwbG9hZCcpLnJlbW92ZSgpOw0KICAgIH0NCiAgICB2YXIgcmVzdG9yZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIklOUFVUIik7DQogICAgcmVzdG9yZS5zZXRBdHRyaWJ1dGUoInR5cGUiLCAiZmlsZSIpOw0KICAgIHJlc3RvcmUuc2V0QXR0cmlidXRlKCJjbGFzcyIsICJub3RWaXNpYmxlIik7DQogICAgcmVzdG9yZS5zZXRBdHRyaWJ1dGUoIm5hbWUiLCAiIik7DQogICAgcmVzdG9yZS5pZCA9ICJ1cGxvYWQiOw0KICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQocmVzdG9yZSk7DQogICAgcmVzdG9yZS5jbGljaygpOw0KICAgIHJlc3RvcmUub25jaGFuZ2UgPSBmdW5jdGlvbiAoKSB7DQogICAgICAgIHZhciBmaWxlbmFtZSA9IHJlc3RvcmUuZmlsZXNbMF0ubmFtZTsNCiAgICAgICAgdmFyIGNoZWNrID0gY29uZmlybSgiRmlsZTogIiArIGZpbGVuYW1lICsgIlxue3suY29uZmlybS5yZXN0b3JlfX0iKTsNCiAgICAgICAgaWYgKGNoZWNrID09IHRydWUpIHsNCiAgICAgICAgICAgIHZhciByZWFkZXIgPSBuZXcgRmlsZVJlYWRlcigpOw0KICAgICAgICAgICAgdmFyIGZpbGUgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCdpbnB1dFt0eXBlPWZpbGVdJykuZmlsZXNbMF07DQogICAgICAgICAgICBpZiAoZmlsZSkgew0KICAgICAgICAgICAgICAgIHJlYWRlci5yZWFkQXNEYXRhVVJMKGZpbGUpOw0KICAgICAgICAgICAgICAgIHJlYWRlci5vbmxvYWQgPSBmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKHJlYWRlci5yZXN1bHQpOw0KICAgICAgICAgICAgICAgICAgICB2YXIgZGF0YSA9IG5ldyBPYmplY3QoKTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGNtZCA9ICJ4dGV2ZVJlc3RvcmUiOw0KICAgICAgICAgICAgICAgICAgICBkYXRhWyJiYXNlNjQiXSA9IHJlYWRlci5yZXN1bHQ7DQogICAgICAgICAgICAgICAgICAgIHZhciBzZXJ2ZXIgPSBuZXcgU2VydmVyKGNtZCk7DQogICAgICAgICAgICAgICAgICAgIHNlcnZlci5yZXF1ZXN0KGRhdGEpOw0KICAgICAgICAgICAgICAgIH07DQogICAgICAgICAgICB9DQogICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICBhbGVydCgiRmlsZSBjb3VsZCBub3QgYmUgbG9hZGVkIik7DQogICAgICAgICAgICB9DQogICAgICAgICAgICByZXN0b3JlLnJlbW92ZSgpOw0KICAgICAgICAgICAgcmV0dXJuOw0KICAgICAgICB9DQogICAgfTsNCiAgICByZXR1cm47DQp9DQpmdW5jdGlvbiB1cGxvYWRMb2dvKCkgew0KICAgIGlmIChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndXBsb2FkJykpIHsNCiAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3VwbG9hZCcpLnJlbW92ZSgpOw0KICAgIH0NCiAgICB2YXIgdXBsb2FkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiSU5QVVQiKTsNCiAgICB1cGxvYWQuc2V0QXR0cmlidXRlKCJ0eXBlIiwgImZpbGUiKTsNCiAgICB1cGxvYWQuc2V0QXR0cmlidXRlKCJjbGFzcyIsICJub3RWaXNpYmxlIik7DQogICAgdXBsb2FkLnNldEF0dHJpYnV0ZSgibmFtZSIsICIiKTsNCiAgICB1cGxvYWQuaWQgPSAidXBsb2FkIjsNCiAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHVwbG9hZCk7DQogICAgdXBsb2FkLmNsaWNrKCk7DQogICAgdXBsb2FkLm9uYmx1ciA9IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgYWxlcnQoKTsNCiAgICB9Ow0KICAgIHVwbG9hZC5vbmNoYW5nZSA9IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgdmFyIGZpbGVuYW1lID0gdXBsb2FkLmZpbGVzWzBdLm5hbWU7DQogICAgICAgIHZhciByZWFkZXIgPSBuZXcgRmlsZVJlYWRlcigpOw0KICAgICAgICB2YXIgZmlsZSA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ2lucHV0W3R5cGU9ZmlsZV0nKS5maWxlc1swXTsNCiAgICAgICAgaWYgKGZpbGUpIHsNCiAgICAgICAgICAgIHJlYWRlci5yZWFkQXNEYXRhVVJMKGZpbGUpOw0KICAgICAgICAgICAgcmVhZGVyLm9ubG9hZCA9IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhyZWFkZXIucmVzdWx0KTsNCiAgICAgICAgICAgICAgICB2YXIgZGF0YSA9IG5ldyBPYmplY3QoKTsNCiAgICAgICAgICAgICAgICB2YXIgY21kID0gInVwbG9hZExvZ28iOw0KICAgICAgICAgICAgICAgIGRhdGFbImJhc2U2NCJdID0gcmVhZGVyLnJlc3VsdDsNCiAgICAgICAgICAgICAgICBkYXRhWyJmaWxlbmFtZSJdID0gZmlsZS5uYW1lOw0KICAgICAgICAgICAgICAgIHZhciBzZXJ2ZXIgPSBuZXcgU2VydmVyKGNtZCk7DQogICAgICAgICAgICAgICAgc2VydmVyLnJlcXVlc3QoZGF0YSk7DQogICAgICAgICAgICAgICAgdmFyIHVwZGF0ZUxvZ28gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndXBkYXRlLWljb24nKTsNCiAgICAgICAgICAgICAgICB1cGRhdGVMb2dvLmNoZWNrZWQgPSBmYWxzZTsNCiAgICAgICAgICAgICAgICB1cGRhdGVMb2dvLmNsYXNzTmFtZSA9ICJjaGFuZ2VkIjsNCiAgICAgICAgICAgIH07DQogICAgICAgIH0NCiAgICAgICAgZWxzZSB7DQogICAgICAgICAgICBhbGVydCgiRmlsZSBjb3VsZCBub3QgYmUgbG9hZGVkIik7DQogICAgICAgIH0NCiAgICAgICAgdXBsb2FkLnJlbW92ZSgpOw0KICAgICAgICByZXR1cm47DQogICAgfTsNCn0NCmZ1bmN0aW9uIGNoZWNrVW5kbyhrZXkpIHsNCiAgICBzd2l0Y2ggKGtleSkgew0KICAgICAgICBjYXNlICJlcGdNYXBwaW5nIjoNCiAgICAgICAgICAgIGlmIChVTkRPLmhhc093blByb3BlcnR5KGtleSkpIHsNCiAgICAgICAgICAgICAgICBTRVJWRVJbInhlcGciXVtrZXldID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeShVTkRPW2tleV0pKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgICAgIFVORE9ba2V5XSA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkoU0VSVkVSWyJ4ZXBnIl1ba2V5XSkpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICBicmVhazsNCiAgICB9DQogICAgcmV0dXJuOw0KfQ0KZnVuY3Rpb24gc29ydFNlbGVjdChlbGVtKSB7DQogICAgdmFyIHRtcEFyeSA9IFtdOw0KICAgIHZhciBzZWxlY3RlZFZhbHVlID0gZWxlbVtlbGVtLnNlbGVjdGVkSW5kZXhdLnZhbHVlOw0KICAgIGZvciAodmFyIGkgPSAwOyBpIDwgZWxlbS5vcHRpb25zLmxlbmd0aDsgaSsrKQ0KICAgICAgICB0bXBBcnkucHVzaChlbGVtLm9wdGlvbnNbaV0pOw0KICAgIHRtcEFyeS5zb3J0KGZ1bmN0aW9uIChhLCBiKSB7IHJldHVybiAoYS50ZXh0IDwgYi50ZXh0KSA/IC0xIDogMTsgfSk7DQogICAgd2hpbGUgKGVsZW0ub3B0aW9ucy5sZW5ndGggPiAwKQ0KICAgICAgICBlbGVtLm9wdGlvbnNbMF0gPSBudWxsOw0KICAgIHZhciBuZXdTZWxlY3RlZEluZGV4ID0gMDsNCiAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRtcEFyeS5sZW5ndGg7IGkrKykgew0KICAgICAgICBlbGVtLm9wdGlvbnNbaV0gPSB0bXBBcnlbaV07DQogICAgICAgIGlmIChlbGVtLm9wdGlvbnNbaV0udmFsdWUgPT0gc2VsZWN0ZWRWYWx1ZSkNCiAgICAgICAgICAgIG5ld1NlbGVjdGVkSW5kZXggPSBpOw0KICAgIH0NCiAgICBlbGVtLnNlbGVjdGVkSW5kZXggPSBuZXdTZWxlY3RlZEluZGV4OyAvLyBTZXQgbmV3IHNlbGVjdGVkIGluZGV4IGFmdGVyIHNvcnRpbmcNCiAgICByZXR1cm47DQp9DQpmdW5jdGlvbiB1cGRhdGVMb2coKSB7DQogICAgY29uc29sZS5sb2coIlRPS0VOIik7DQogICAgdmFyIHNlcnZlciA9IG5ldyBTZXJ2ZXIoInVwZGF0ZUxvZyIpOw0KICAgIHNlcnZlci5yZXF1ZXN0KG5ldyBPYmplY3QoKSk7DQp9DQo=" webUI["html/js/classes_ts.js"] = "dmFyIF9fZXh0ZW5kcyA9ICh0aGlzICYmIHRoaXMuX19leHRlbmRzKSB8fCAoZnVuY3Rpb24gKCkgew0KICAgIHZhciBleHRlbmRTdGF0aWNzID0gZnVuY3Rpb24gKGQsIGIpIHsNCiAgICAgICAgZXh0ZW5kU3RhdGljcyA9IE9iamVjdC5zZXRQcm90b3R5cGVPZiB8fA0KICAgICAgICAgICAgKHsgX19wcm90b19fOiBbXSB9IGluc3RhbmNlb2YgQXJyYXkgJiYgZnVuY3Rpb24gKGQsIGIpIHsgZC5fX3Byb3RvX18gPSBiOyB9KSB8fA0KICAgICAgICAgICAgZnVuY3Rpb24gKGQsIGIpIHsgZm9yICh2YXIgcCBpbiBiKSBpZiAoYi5oYXNPd25Qcm9wZXJ0eShwKSkgZFtwXSA9IGJbcF07IH07DQogICAgICAgIHJldHVybiBleHRlbmRTdGF0aWNzKGQsIGIpOw0KICAgIH07DQogICAgcmV0dXJuIGZ1bmN0aW9uIChkLCBiKSB7DQogICAgICAgIGV4dGVuZFN0YXRpY3MoZCwgYik7DQogICAgICAgIGZ1bmN0aW9uIF9fKCkgeyB0aGlzLmNvbnN0cnVjdG9yID0gZDsgfQ0KICAgICAgICBkLnByb3RvdHlwZSA9IGIgPT09IG51bGwgPyBPYmplY3QuY3JlYXRlKGIpIDogKF9fLnByb3RvdHlwZSA9IGIucHJvdG90eXBlLCBuZXcgX18oKSk7DQogICAgfTsNCn0pKCk7DQp2YXIgTWFpbk1lbnUgPSAvKiogQGNsYXNzICovIChmdW5jdGlvbiAoKSB7DQogICAgZnVuY3Rpb24gTWFpbk1lbnUoKSB7DQogICAgICAgIHRoaXMuRG9jdW1lbnRJRCA9ICJtYWluLW1lbnUiOw0KICAgICAgICB0aGlzLkhUTUxUYWcgPSAiTEkiOw0KICAgIH0NCiAgICBNYWluTWVudS5wcm90b3R5cGUuY3JlYXRlID0gZnVuY3Rpb24gKCkgew0KICAgICAgICBjb25zb2xlLmxvZyh0aGlzLkRvY3VtZW50SUQpOw0KICAgIH07DQogICAgcmV0dXJuIE1haW5NZW51Ow0KfSgpKTsNCnZhciBNYWluTWVudUl0ZW0gPSAvKiogQGNsYXNzICovIChmdW5jdGlvbiAoX3N1cGVyKSB7DQogICAgX19leHRlbmRzKE1haW5NZW51SXRlbSwgX3N1cGVyKTsNCiAgICBmdW5jdGlvbiBNYWluTWVudUl0ZW0oKSB7DQogICAgICAgIHJldHVybiBfc3VwZXIgIT09IG51bGwgJiYgX3N1cGVyLmFwcGx5KHRoaXMsIGFyZ3VtZW50cykgfHwgdGhpczsNCiAgICB9DQogICAgTWFpbk1lbnVJdGVtLnByb3RvdHlwZS5jcmVhdGUyID0gZnVuY3Rpb24gKCkgew0KICAgICAgICB2YXIgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQodGhpcy5IVE1MVGFnKTsNCiAgICAgICAgZWxlbWVudC5pbm5lclRleHQgPSB0aGlzLlZhbHVlOw0KICAgICAgICBjb25zb2xlLmxvZyhlbGVtZW50KTsNCiAgICB9Ow0KICAgIHJldHVybiBNYWluTWVudUl0ZW07DQp9KE1haW5NZW51KSk7DQpmdW5jdGlvbiBwYWdlUmVhZHkoKSB7DQogICAgdmFyIGl0ZW0gPSBuZXcgTWFpbk1lbnVJdGVtKCk7DQogICAgaXRlbS5WYWx1ZSA9ICJUZXN0IjsNCiAgICBpdGVtLmNyZWF0ZTIoKTsNCn0NCg==" webUI["html/js/configuration_ts.js"] = "Y2xhc3MgV2l6YXJkQ2F0ZWdvcnkgew0KICAgIGNvbnN0cnVjdG9yKCkgew0KICAgICAgICB0aGlzLkRvY3VtZW50SUQgPSAiY29udGVudCI7DQogICAgfQ0KICAgIGNyZWF0ZUNhdGVnb3J5SGVhZGxpbmUodmFsdWUpIHsNCiAgICAgICAgdmFyIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJINCIpOw0KICAgICAgICBlbGVtZW50LmlubmVySFRNTCA9IHZhbHVlOw0KICAgICAgICByZXR1cm4gZWxlbWVudDsNCiAgICB9DQp9DQpjbGFzcyBXaXphcmRJdGVtIGV4dGVuZHMgV2l6YXJkQ2F0ZWdvcnkgew0KICAgIGNvbnN0cnVjdG9yKGtleSwgaGVhZGxpbmUpIHsNCiAgICAgICAgc3VwZXIoKTsNCiAgICAgICAgdGhpcy5oZWFkbGluZSA9IGhlYWRsaW5lOw0KICAgICAgICB0aGlzLmtleSA9IGtleTsNCiAgICB9DQogICAgY3JlYXRlV2l6YXJkKCkgew0KICAgICAgICB2YXIgaGVhZGxpbmUgPSB0aGlzLmNyZWF0ZUNhdGVnb3J5SGVhZGxpbmUodGhpcy5oZWFkbGluZSk7DQogICAgICAgIHZhciBrZXkgPSB0aGlzLmtleTsNCiAgICAgICAgdmFyIGNvbnRlbnQgPSBuZXcgUG9wdXBDb250ZW50KCk7DQogICAgICAgIHZhciBkZXNjcmlwdGlvbjsNCiAgICAgICAgdmFyIGRvYyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHRoaXMuRG9jdW1lbnRJRCk7DQogICAgICAgIGRvYy5pbm5lckhUTUwgPSAiIjsNCiAgICAgICAgZG9jLmFwcGVuZENoaWxkKGhlYWRsaW5lKTsNCiAgICAgICAgc3dpdGNoIChrZXkpIHsNCiAgICAgICAgICAgIGNhc2UgInR1bmVyIjoNCiAgICAgICAgICAgICAgICB2YXIgdGV4dCA9IG5ldyBBcnJheSgpOw0KICAgICAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBuZXcgQXJyYXkoKTsNCiAgICAgICAgICAgICAgICBmb3IgKHZhciBpID0gMTsgaSA8PSAxMDA7IGkrKykgew0KICAgICAgICAgICAgICAgICAgICB0ZXh0LnB1c2goaSk7DQogICAgICAgICAgICAgICAgICAgIHZhbHVlcy5wdXNoKGkpOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCAiMSIsIGtleSk7DQogICAgICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgiY2xhc3MiLCAid2l6YXJkIik7DQogICAgICAgICAgICAgICAgc2VsZWN0LmlkID0ga2V5Ow0KICAgICAgICAgICAgICAgIGRvYy5hcHBlbmRDaGlsZChzZWxlY3QpOw0KICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uID0gInt7LndpemFyZC50dW5lci5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImVwZ1NvdXJjZSI6DQogICAgICAgICAgICAgICAgdmFyIHRleHQgPSBbIlBNUyIsICJYRVBHIl07DQogICAgICAgICAgICAgICAgdmFyIHZhbHVlcyA9IFsiUE1TIiwgIlhFUEciXTsNCiAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCAiWEVQRyIsIGtleSk7DQogICAgICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgiY2xhc3MiLCAid2l6YXJkIik7DQogICAgICAgICAgICAgICAgc2VsZWN0LmlkID0ga2V5Ow0KICAgICAgICAgICAgICAgIGRvYy5hcHBlbmRDaGlsZChzZWxlY3QpOw0KICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uID0gInt7LndpemFyZC5lcGdTb3VyY2UuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJtM3UiOg0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBrZXksICIiKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LndpemFyZC5tM3UucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgiY2xhc3MiLCAid2l6YXJkIik7DQogICAgICAgICAgICAgICAgaW5wdXQuaWQgPSBrZXk7DQogICAgICAgICAgICAgICAgZG9jLmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbiA9ICJ7ey53aXphcmQubTN1LmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAieG1sdHYiOg0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBrZXksICIiKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LndpemFyZC54bWx0di5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJjbGFzcyIsICJ3aXphcmQiKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5pZCA9IGtleTsNCiAgICAgICAgICAgICAgICBkb2MuYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uID0gInt7LndpemFyZC54bWx0di5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICAgICAgY29uc29sZS5sb2coa2V5KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgfQ0KICAgICAgICB2YXIgcHJlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiUFJFIik7DQogICAgICAgIHByZS5pbm5lckhUTUwgPSBkZXNjcmlwdGlvbjsNCiAgICAgICAgZG9jLmFwcGVuZENoaWxkKHByZSk7DQogICAgICAgIGNvbnNvbGUubG9nKGhlYWRsaW5lLCBrZXkpOw0KICAgIH0NCn0NCmZ1bmN0aW9uIHJlYWR5Rm9yQ29uZmlndXJhdGlvbih3aXphcmQpIHsNCiAgICB2YXIgc2VydmVyID0gbmV3IFNlcnZlcigiZ2V0U2VydmVyQ29uZmlnIik7DQogICAgc2VydmVyLnJlcXVlc3QobmV3IE9iamVjdCgpKTsNCiAgICBzaG93RWxlbWVudCgibG9hZGluZyIsIGZhbHNlKTsNCiAgICBjb25maWd1cmF0aW9uV2l6YXJkW3dpemFyZF0uY3JlYXRlV2l6YXJkKCk7DQp9DQpmdW5jdGlvbiBzYXZlV2l6YXJkKCkgew0KICAgIHZhciBjbWQgPSAic2F2ZVdpemFyZCI7DQogICAgdmFyIGRpdiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb250ZW50Iik7DQogICAgdmFyIGNvbmZpZyA9IGRpdi5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCJ3aXphcmQiKTsNCiAgICB2YXIgd2l6YXJkID0gbmV3IE9iamVjdCgpOw0KICAgIGZvciAodmFyIGkgPSAwOyBpIDwgY29uZmlnLmxlbmd0aDsgaSsrKSB7DQogICAgICAgIHZhciBuYW1lOw0KICAgICAgICB2YXIgdmFsdWU7DQogICAgICAgIHN3aXRjaCAoY29uZmlnW2ldLnRhZ05hbWUpIHsNCiAgICAgICAgICAgIGNhc2UgIlNFTEVDVCI6DQogICAgICAgICAgICAgICAgbmFtZSA9IGNvbmZpZ1tpXS5uYW1lOw0KICAgICAgICAgICAgICAgIHZhbHVlID0gY29uZmlnW2ldLnZhbHVlOw0KICAgICAgICAgICAgICAgIC8vIElmIHRoZSB2YWx1ZSBpcyBhIG51bWJlciwgc3RvcmUgaXQgYXMgYSBudW1iZXINCiAgICAgICAgICAgICAgICBpZiAoaXNOYU4odmFsdWUpKSB7DQogICAgICAgICAgICAgICAgICAgIHdpemFyZFtuYW1lXSA9IHZhbHVlOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICAgICAgd2l6YXJkW25hbWVdID0gcGFyc2VJbnQodmFsdWUpOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgIklOUFVUIjoNCiAgICAgICAgICAgICAgICBzd2l0Y2ggKGNvbmZpZ1tpXS50eXBlKSB7DQogICAgICAgICAgICAgICAgICAgIGNhc2UgInRleHQiOg0KICAgICAgICAgICAgICAgICAgICAgICAgbmFtZSA9IGNvbmZpZ1tpXS5uYW1lOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSBjb25maWdbaV0udmFsdWU7DQogICAgICAgICAgICAgICAgICAgICAgICBpZiAodmFsdWUubGVuZ3RoID09IDApIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgbXNnID0gbmFtZS50b1VwcGVyQ2FzZSgpICsgIjogIiArICJ7ey5hbGVydC5taXNzaW5nSW5wdXR9fSI7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgYWxlcnQobXNnKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICB3aXphcmRbbmFtZV0gPSB2YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICAgICAgLy8gY29kZS4uLg0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICB9DQogICAgfQ0KICAgIHZhciBkYXRhID0gbmV3IE9iamVjdCgpOw0KICAgIGRhdGFbIndpemFyZCJdID0gd2l6YXJkOw0KICAgIHZhciBzZXJ2ZXIgPSBuZXcgU2VydmVyKGNtZCk7DQogICAgc2VydmVyLnJlcXVlc3QoZGF0YSk7DQogICAgY29uc29sZS5sb2coZGF0YSk7DQp9DQovLyBXaXphcmQNCnZhciBjb25maWd1cmF0aW9uV2l6YXJkID0gbmV3IEFycmF5KCk7DQpjb25maWd1cmF0aW9uV2l6YXJkLnB1c2gobmV3IFdpemFyZEl0ZW0oInR1bmVyIiwgInt7LndpemFyZC50dW5lci50aXRsZX19IikpOw0KY29uZmlndXJhdGlvbldpemFyZC5wdXNoKG5ldyBXaXphcmRJdGVtKCJlcGdTb3VyY2UiLCAie3sud2l6YXJkLmVwZ1NvdXJjZS50aXRsZX19IikpOw0KY29uZmlndXJhdGlvbldpemFyZC5wdXNoKG5ldyBXaXphcmRJdGVtKCJtM3UiLCAie3sud2l6YXJkLm0zdS50aXRsZX19IikpOw0KY29uZmlndXJhdGlvbldpemFyZC5wdXNoKG5ldyBXaXphcmRJdGVtKCJ4bWx0diIsICJ7ey53aXphcmQueG1sdHYudGl0bGV9fSIpKTsNCg==" webUI["html/js/logs_ts.js"] = "Y2xhc3MgTG9nIHsNCiAgICBjcmVhdGVMb2coZW50cnkpIHsNCiAgICAgICAgdmFyIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJQUkUiKTsNCiAgICAgICAgaWYgKGVudHJ5LmluZGV4T2YoIldBUk5JTkciKSAhPSAtMSkgew0KICAgICAgICAgICAgZWxlbWVudC5jbGFzc05hbWUgPSAid2FybmluZ01zZyI7DQogICAgICAgIH0NCiAgICAgICAgaWYgKGVudHJ5LmluZGV4T2YoIkVSUk9SIikgIT0gLTEpIHsNCiAgICAgICAgICAgIGVsZW1lbnQuY2xhc3NOYW1lID0gImVycm9yTXNnIjsNCiAgICAgICAgfQ0KICAgICAgICBpZiAoZW50cnkuaW5kZXhPZigiREVCVUciKSAhPSAtMSkgew0KICAgICAgICAgICAgZWxlbWVudC5jbGFzc05hbWUgPSAiZGVidWdNc2ciOw0KICAgICAgICB9DQogICAgICAgIGVsZW1lbnQuaW5uZXJIVE1MID0gZW50cnk7DQogICAgICAgIHJldHVybiBlbGVtZW50Ow0KICAgIH0NCn0NCmZ1bmN0aW9uIHNob3dMb2dzKGJvdHRvbSkgew0KICAgIHZhciBsb2cgPSBuZXcgTG9nKCk7DQogICAgdmFyIGxvZ3MgPSBTRVJWRVJbImxvZyJdWyJsb2ciXTsNCiAgICB2YXIgZGl2ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnRlbnRfbG9nIik7DQogICAgZGl2LmlubmVySFRNTCA9ICIiOw0KICAgIHZhciBrZXlzID0gZ2V0T2JqS2V5cyhsb2dzKTsNCiAgICBrZXlzLmZvckVhY2gobG9nSUQgPT4gew0KICAgICAgICB2YXIgZW50cnkgPSBsb2cuY3JlYXRlTG9nKGxvZ3NbbG9nSURdKTsNCiAgICAgICAgZGl2LmFwcGVuZChlbnRyeSk7DQogICAgfSk7DQogICAgc2V0VGltZW91dChmdW5jdGlvbiAoKSB7DQogICAgICAgIGlmIChib3R0b20gPT0gdHJ1ZSkgew0KICAgICAgICAgICAgdmFyIHdyYXBwZXIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYm94LXdyYXBwZXIiKTsNCiAgICAgICAgICAgIHdyYXBwZXIuc2Nyb2xsVG9wID0gd3JhcHBlci5zY3JvbGxIZWlnaHQ7DQogICAgICAgIH0NCiAgICB9LCAxMCk7DQp9DQpmdW5jdGlvbiByZXNldExvZ3MoKSB7DQogICAgdmFyIGNtZCA9ICJyZXNldExvZ3MiOw0KICAgIHZhciBkYXRhID0gbmV3IE9iamVjdCgpOw0KICAgIHZhciBzZXJ2ZXIgPSBuZXcgU2VydmVyKGNtZCk7DQogICAgc2VydmVyLnJlcXVlc3QoZGF0YSk7DQp9DQo=" - webUI["html/js/menu_ts.js"] = "Y2xhc3MgTWFpbk1lbnUgew0KICAgIGNvbnN0cnVjdG9yKCkgew0KICAgICAgICB0aGlzLkRvY3VtZW50SUQgPSAibWFpbi1tZW51IjsNCiAgICAgICAgdGhpcy5IVE1MVGFnID0gIkxJIjsNCiAgICAgICAgdGhpcy5JbWFnZVBhdGggPSAiaW1nLyI7DQogICAgfQ0KICAgIGNyZWF0ZUlNRyhzcmMpIHsNCiAgICAgICAgbGV0IGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJJTUciKTsNCiAgICAgICAgZWxlbWVudC5zZXRBdHRyaWJ1dGUoInNyYyIsIHRoaXMuSW1hZ2VQYXRoICsgc3JjKTsNCiAgICAgICAgcmV0dXJuIGVsZW1lbnQ7DQogICAgfQ0KICAgIGNyZWF0ZVZhbHVlKHZhbHVlKSB7DQogICAgICAgIGxldCBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiUCIpOw0KICAgICAgICBlbGVtZW50LmlubmVySFRNTCA9IHZhbHVlOw0KICAgICAgICByZXR1cm4gZWxlbWVudDsNCiAgICB9DQp9DQpjbGFzcyBNYWluTWVudUl0ZW0gZXh0ZW5kcyBNYWluTWVudSB7DQogICAgY29uc3RydWN0b3IobWVudUtleSwgdmFsdWUsIGltYWdlLCBoZWFkbGluZSkgew0KICAgICAgICBzdXBlcigpOw0KICAgICAgICB0aGlzLm1lbnVLZXkgPSBtZW51S2V5Ow0KICAgICAgICB0aGlzLnZhbHVlID0gdmFsdWU7DQogICAgICAgIHRoaXMuaW1nU3JjID0gaW1hZ2U7DQogICAgICAgIHRoaXMuaGVhZGxpbmUgPSBoZWFkbGluZTsNCiAgICB9DQogICAgY3JlYXRlSXRlbSgpIHsNCiAgICAgICAgbGV0IGl0ZW0gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJMSSIpOw0KICAgICAgICBpdGVtLnNldEF0dHJpYnV0ZSgib25jbGljayIsICJqYXZhc2NyaXB0OiBvcGVuVGhpc01lbnUodGhpcykiKTsNCiAgICAgICAgaXRlbS5zZXRBdHRyaWJ1dGUoImlkIiwgdGhpcy5pZCk7DQogICAgICAgIGxldCBpbWcgPSB0aGlzLmNyZWF0ZUlNRyh0aGlzLmltZ1NyYyk7DQogICAgICAgIGxldCB2YWx1ZSA9IHRoaXMuY3JlYXRlVmFsdWUodGhpcy52YWx1ZSk7DQogICAgICAgIGl0ZW0uYXBwZW5kQ2hpbGQoaW1nKTsNCiAgICAgICAgaXRlbS5hcHBlbmRDaGlsZCh2YWx1ZSk7DQogICAgICAgIGxldCBkb2MgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCh0aGlzLkRvY3VtZW50SUQpOw0KICAgICAgICBkb2MuYXBwZW5kQ2hpbGQoaXRlbSk7DQogICAgICAgIHN3aXRjaCAodGhpcy5tZW51S2V5KSB7DQogICAgICAgICAgICBjYXNlICJwbGF5bGlzdCI6DQogICAgICAgICAgICAgICAgdGhpcy50YWJsZUhlYWRlciA9IFsie3sucGxheWxpc3QudGFibGUucGxheWxpc3R9fSIsICJ7ey5wbGF5bGlzdC50YWJsZS50dW5lcn19IiwgInt7LnBsYXlsaXN0LnRhYmxlLmxhc3RVcGRhdGV9fSIsICJ7ey5wbGF5bGlzdC50YWJsZS5hdmFpbGFiaWxpdHl9fSAlIiwgInt7LnBsYXlsaXN0LnRhYmxlLnR5cGV9fSIsICJ7ey5wbGF5bGlzdC50YWJsZS5zdHJlYW1zfX0iLCAie3sucGxheWxpc3QudGFibGUuZ3JvdXBUaXRsZX19ICUiLCAie3sucGxheWxpc3QudGFibGUudHZnSUR9fSAlIiwgInt7LnBsYXlsaXN0LnRhYmxlLnVuaXF1ZUlEfX0gJSJdOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAieG1sdHYiOg0KICAgICAgICAgICAgICAgIHRoaXMudGFibGVIZWFkZXIgPSBbInt7LnhtbHR2LnRhYmxlLmd1aWRlfX0iLCAie3sueG1sdHYudGFibGUubGFzdFVwZGF0ZX19IiwgInt7LnhtbHR2LnRhYmxlLmF2YWlsYWJpbGl0eX19ICUiLCAie3sueG1sdHYudGFibGUuY2hhbm5lbHN9fSIsICJ7ey54bWx0di50YWJsZS5wcm9ncmFtc319Il07DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJmaWx0ZXIiOg0KICAgICAgICAgICAgICAgIHRoaXMudGFibGVIZWFkZXIgPSBbInt7LmZpbHRlci50YWJsZS5uYW1lfX0iLCAie3suZmlsdGVyLnRhYmxlLnR5cGV9fSIsICJ7ey5maWx0ZXIudGFibGUuZmlsdGVyfX0iXTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInVzZXJzIjoNCiAgICAgICAgICAgICAgICB0aGlzLnRhYmxlSGVhZGVyID0gWyJ7ey51c2Vycy50YWJsZS51c2VybmFtZX19IiwgInt7LnVzZXJzLnRhYmxlLnBhc3N3b3JkfX0iLCAie3sudXNlcnMudGFibGUud2VifX0iLCAie3sudXNlcnMudGFibGUucG1zfX0iLCAie3sudXNlcnMudGFibGUubTN1fX0iLCAie3sudXNlcnMudGFibGUueG1sfX0iLCAie3sudXNlcnMudGFibGUuYXBpfX0iXTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgIm1hcHBpbmciOg0KICAgICAgICAgICAgICAgIHRoaXMudGFibGVIZWFkZXIgPSBbIkJVTEsiLCAie3subWFwcGluZy50YWJsZS5jaE5vfX0iLCAie3subWFwcGluZy50YWJsZS5sb2dvfX0iLCAie3subWFwcGluZy50YWJsZS5jaGFubmVsTmFtZX19IiwgInt7Lm1hcHBpbmcudGFibGUucGxheWxpc3R9fSIsICJ7ey5tYXBwaW5nLnRhYmxlLmdyb3VwVGl0bGV9fSIsICJ7ey5tYXBwaW5nLnRhYmxlLnhtbHR2RmlsZX19IiwgInt7Lm1hcHBpbmcudGFibGUueG1sdHZJRH19IiwgInt7Lm1hcHBpbmcudGFibGUudGltZXNoaWZ0fX0iXTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgfQ0KICAgICAgICAvL2NvbnNvbGUubG9nKHRoaXMubWVudUtleSwgdGhpcy50YWJsZUhlYWRlcik7DQogICAgfQ0KfQ0KY2xhc3MgQ29udGVudCB7DQogICAgY29uc3RydWN0b3IoKSB7DQogICAgICAgIHRoaXMuRG9jdW1lbnRJRCA9ICJjb250ZW50IjsNCiAgICAgICAgdGhpcy5UYWJsZUlEID0gImNvbnRlbnRfdGFibGUiOw0KICAgICAgICB0aGlzLmhlYWRlckNsYXNzID0gImNvbnRlbnRfdGFibGVfaGVhZGVyIjsNCiAgICAgICAgdGhpcy5pbnRlcmFjdGlvbklEID0gImNvbnRlbnQtaW50ZXJhY3Rpb24iOw0KICAgIH0NCiAgICBjcmVhdGVIZWFkbGluZSh2YWx1ZSkgew0KICAgICAgICBsZXQgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIkgzIik7DQogICAgICAgIGVsZW1lbnQuaW5uZXJIVE1MID0gdmFsdWU7DQogICAgICAgIHJldHVybiBlbGVtZW50Ow0KICAgIH0NCiAgICBjcmVhdGVIUigpIHsNCiAgICAgICAgcmV0dXJuIGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIkhSIik7DQogICAgfQ0KICAgIGNyZWF0ZUludGVyYWN0aW9uKCkgew0KICAgICAgICBsZXQgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIkRJViIpOw0KICAgICAgICBlbGVtZW50LnNldEF0dHJpYnV0ZSgiaWQiLCB0aGlzLmludGVyYWN0aW9uSUQpOw0KICAgICAgICByZXR1cm4gZWxlbWVudDsNCiAgICB9DQogICAgY3JlYXRlRElWKCkgew0KICAgICAgICBsZXQgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIkRJViIpOw0KICAgICAgICBlbGVtZW50LmlkID0gdGhpcy5EaXZJRDsNCiAgICAgICAgcmV0dXJuIGVsZW1lbnQ7DQogICAgfQ0KICAgIGNyZWF0ZVRBQkxFKCkgew0KICAgICAgICBsZXQgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlRBQkxFIik7DQogICAgICAgIGVsZW1lbnQuaWQgPSB0aGlzLlRhYmxlSUQ7DQogICAgICAgIHJldHVybiBlbGVtZW50Ow0KICAgIH0NCiAgICBjcmVhdGVUYWJsZVJvdygpIHsNCiAgICAgICAgbGV0IGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJUUiIpOw0KICAgICAgICBlbGVtZW50LmNsYXNzTmFtZSA9IHRoaXMuaGVhZGVyQ2xhc3M7DQogICAgICAgIHJldHVybiBlbGVtZW50Ow0KICAgIH0NCiAgICBjcmVhdGVUYWJsZUNvbnRlbnQobWVudUtleSkgew0KICAgICAgICBsZXQgZGF0YSA9IHt9Ow0KICAgICAgICBsZXQgcm93cyA9IFtdOw0KICAgICAgICBsZXQgZmlsZVR5cGVzID0gW107DQogICAgICAgIHN3aXRjaCAobWVudUtleSkgew0KICAgICAgICAgICAgY2FzZSAicGxheWxpc3QiOg0KICAgICAgICAgICAgICAgIGZpbGVUeXBlcyA9IFsibTN1IiwgImhkaHIiXTsNCiAgICAgICAgICAgICAgICBmaWxlVHlwZXMuZm9yRWFjaChmaWxlVHlwZSA9PiB7DQogICAgICAgICAgICAgICAgICAgIGRhdGEgPSBTRVJWRVJbInNldHRpbmdzIl1bImZpbGVzIl1bZmlsZVR5cGVdOw0KICAgICAgICAgICAgICAgICAgICB2YXIga2V5cyA9IGdldE9iaktleXMoZGF0YSk7DQogICAgICAgICAgICAgICAgICAgIGtleXMuZm9yRWFjaChrZXkgPT4gew0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVFIiKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmlkID0ga2V5Ow0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgiJyArIGZpbGVUeXBlICsgJyIsIHRoaXMpJyk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsibmFtZSJdOw0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChTRVJWRVJbInNldHRpbmdzIl1bImJ1ZmZlciJdICE9ICItIikgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bInR1bmVyIl07DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gIi0iOw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bImxhc3QudXBkYXRlIl07DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsicHJvdmlkZXIuYXZhaWxhYmlsaXR5Il07DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsidHlwZSJdLnRvVXBwZXJDYXNlKCk7DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsiY29tcGF0aWJpbGl0eSJdWyJzdHJlYW1zIl07DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsiY29tcGF0aWJpbGl0eSJdWyJncm91cC50aXRsZSJdOw0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bImNvbXBhdGliaWxpdHkiXVsidHZnLmlkIl07DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsiY29tcGF0aWJpbGl0eSJdWyJzdHJlYW0uaWQiXTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHJvd3MucHVzaCh0cik7DQogICAgICAgICAgICAgICAgICAgIH0pOw0KICAgICAgICAgICAgICAgIH0pOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiZmlsdGVyIjoNCiAgICAgICAgICAgICAgICBkZWxldGUgU0VSVkVSWyJzZXR0aW5ncyJdWyJmaWx0ZXIiXVstMV07DQogICAgICAgICAgICAgICAgZGF0YSA9IFNFUlZFUlsic2V0dGluZ3MiXVsiZmlsdGVyIl07DQogICAgICAgICAgICAgICAgdmFyIGtleXMgPSBnZXRPYmpLZXlzKGRhdGEpOw0KICAgICAgICAgICAgICAgIGtleXMuZm9yRWFjaChrZXkgPT4gew0KICAgICAgICAgICAgICAgICAgICB2YXIgdHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJUUiIpOw0KICAgICAgICAgICAgICAgICAgICB0ci5pZCA9IGtleTsNCiAgICAgICAgICAgICAgICAgICAgdHIuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgiJyArIGRhdGFba2V5XVsidHlwZSJdICsgJyIsIHRoaXMpJyk7DQogICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJuYW1lIl07DQogICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgIHN3aXRjaCAoZGF0YVtrZXldWyJ0eXBlIl0pIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgImN1c3RvbS1maWx0ZXIiOg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSAie3suZmlsdGVyLmN1c3RvbX19IjsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgImdyb3VwLXRpdGxlIjoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gInt7LmZpbHRlci5ncm91cH19IjsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsiZmlsdGVyIl07DQogICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgcm93cy5wdXNoKHRyKTsNCiAgICAgICAgICAgICAgICB9KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInhtbHR2IjoNCiAgICAgICAgICAgICAgICBmaWxlVHlwZXMgPSBuZXcgQXJyYXkoInhtbHR2Iik7DQogICAgICAgICAgICAgICAgZmlsZVR5cGVzLmZvckVhY2goZmlsZVR5cGUgPT4gew0KICAgICAgICAgICAgICAgICAgICBkYXRhID0gU0VSVkVSWyJzZXR0aW5ncyJdWyJmaWxlcyJdW2ZpbGVUeXBlXTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGtleXMgPSBnZXRPYmpLZXlzKGRhdGEpOw0KICAgICAgICAgICAgICAgICAgICBrZXlzLmZvckVhY2goa2V5ID0+IHsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciB0ciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlRSIik7DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5pZCA9IGtleTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoIicgKyBmaWxlVHlwZSArICciLCB0aGlzKScpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bIm5hbWUiXTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJsYXN0LnVwZGF0ZSJdOw0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bInByb3ZpZGVyLmF2YWlsYWJpbGl0eSJdOw0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bImNvbXBhdGliaWxpdHkiXVsieG1sdHYuY2hhbm5lbHMiXTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJjb21wYXRpYmlsaXR5Il1bInhtbHR2LnByb2dyYW1zIl07DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICByb3dzLnB1c2godHIpOw0KICAgICAgICAgICAgICAgICAgICB9KTsNCiAgICAgICAgICAgICAgICB9KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInVzZXJzIjoNCiAgICAgICAgICAgICAgICBmaWxlVHlwZXMgPSBuZXcgQXJyYXkoInVzZXJzIik7DQogICAgICAgICAgICAgICAgZmlsZVR5cGVzLmZvckVhY2goZmlsZVR5cGUgPT4gew0KICAgICAgICAgICAgICAgICAgICBkYXRhID0gU0VSVkVSW2ZpbGVUeXBlXTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGtleXMgPSBnZXRPYmpLZXlzKGRhdGEpOw0KICAgICAgICAgICAgICAgICAgICBrZXlzLmZvckVhY2goa2V5ID0+IHsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciB0ciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlRSIik7DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5pZCA9IGtleTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoIicgKyBmaWxlVHlwZSArICciLCB0aGlzKScpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bImRhdGEiXVsidXNlcm5hbWUiXTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gIioqKioqKiI7DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGRhdGFba2V5XVsiZGF0YSJdWyJhdXRoZW50aWNhdGlvbi53ZWIiXSA9PSB0cnVlKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9ICLinJMiOw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9ICItIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgICAgICBpZiAoZGF0YVtrZXldWyJkYXRhIl1bImF1dGhlbnRpY2F0aW9uLnBtcyJdID09IHRydWUpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gIuKckyI7DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gIi0iOw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChkYXRhW2tleV1bImRhdGEiXVsiYXV0aGVudGljYXRpb24ubTN1Il0gPT0gdHJ1ZSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSAi4pyTIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSAiLSI7DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGRhdGFba2V5XVsiZGF0YSJdWyJhdXRoZW50aWNhdGlvbi54bWwiXSA9PSB0cnVlKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9ICLinJMiOw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9ICItIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgICAgICBpZiAoZGF0YVtrZXldWyJkYXRhIl1bImF1dGhlbnRpY2F0aW9uLmFwaSJdID09IHRydWUpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gIuKckyI7DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gIi0iOw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgcm93cy5wdXNoKHRyKTsNCiAgICAgICAgICAgICAgICAgICAgfSk7DQogICAgICAgICAgICAgICAgfSk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJtYXBwaW5nIjoNCiAgICAgICAgICAgICAgICBCVUxLX0VESVQgPSBmYWxzZTsNCiAgICAgICAgICAgICAgICBjcmVhdGVTZWFyY2hPYmooKTsNCiAgICAgICAgICAgICAgICBjaGVja1VuZG8oImVwZ01hcHBpbmciKTsNCiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZygiTUFQUElORyIpOw0KICAgICAgICAgICAgICAgIGRhdGEgPSBTRVJWRVJbInhlcGciXVsiZXBnTWFwcGluZyJdOw0KICAgICAgICAgICAgICAgIHZhciBrZXlzID0gZ2V0T2JqS2V5cyhkYXRhKTsNCiAgICAgICAgICAgICAgICBrZXlzLmZvckVhY2goa2V5ID0+IHsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVFIiKTsNCiAgICAgICAgICAgICAgICAgICAgdHIuaWQgPSBrZXk7DQogICAgICAgICAgICAgICAgICAgIC8vdHIuc2V0QXR0cmlidXRlKCdvbmNvbnRleHRtZW51JywgJ2phdmFzY3JpcHQ6IHJpZ2h0Q2xpY2sodGhpcyknKQ0KICAgICAgICAgICAgICAgICAgICBzd2l0Y2ggKGRhdGFba2V5XVsieC1hY3RpdmUiXSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSB0cnVlOg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyLmNsYXNzTmFtZSA9ICJhY3RpdmVFUEciOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSBmYWxzZToNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ci5jbGFzc05hbWUgPSAibm90QWN0aXZlRVBHIjsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAvLyBCdWxrDQogICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIkJVTEsiOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZmFsc2U7DQogICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgLy8gQ2hhbm5lbCBudW1iZXINCiAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiSU5QVVRDSEFOTkVMIjsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsieC1jaGFubmVsSUQiXTsNCiAgICAgICAgICAgICAgICAgICAgLy90ZC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogY2hhbmdlQ2hhbm5lbE51bWJlcigiJyArIGtleSArICciLCB0aGlzKScpDQogICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgLy8gTG9nbw0KICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJJTUciOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmltYWdlVVJMID0gZGF0YVtrZXldWyJ0dmctbG9nbyJdOw0KICAgICAgICAgICAgICAgICAgICB2YXIgdGQgPSBjZWxsLmNyZWF0ZUNlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgdGQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgibWFwcGluZyIsIHRoaXMpJyk7DQogICAgICAgICAgICAgICAgICAgIHRkLmlkID0ga2V5Ow0KICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZCh0ZCk7DQogICAgICAgICAgICAgICAgICAgIC8vIENoYW5uZWwgbmFtZQ0KICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jbGFzc05hbWUgPSBkYXRhW2tleV1bIngtY2F0ZWdvcnkiXTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsieC1uYW1lIl07DQogICAgICAgICAgICAgICAgICAgIHZhciB0ZCA9IGNlbGwuY3JlYXRlQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICB0ZC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJtYXBwaW5nIiwgdGhpcyknKTsNCiAgICAgICAgICAgICAgICAgICAgdGQuaWQgPSBrZXk7DQogICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKHRkKTsNCiAgICAgICAgICAgICAgICAgICAgLy8gUGxheWxpc3QNCiAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgIC8vY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsiX2ZpbGUubTN1Lm5hbWUiXSANCiAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGdldFZhbHVlRnJvbVByb3ZpZGVyRmlsZShkYXRhW2tleV1bIl9maWxlLm0zdS5pZCJdLCAibTN1IiwgIm5hbWUiKTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHRkID0gY2VsbC5jcmVhdGVDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgIHRkLnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoIm1hcHBpbmciLCB0aGlzKScpOw0KICAgICAgICAgICAgICAgICAgICB0ZC5pZCA9IGtleTsNCiAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQodGQpOw0KICAgICAgICAgICAgICAgICAgICAvLyBHcm91cCAoZ3JvdXAtdGl0bGUpDQogICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJ4LWdyb3VwLXRpdGxlIl07DQogICAgICAgICAgICAgICAgICAgIHZhciB0ZCA9IGNlbGwuY3JlYXRlQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICB0ZC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJtYXBwaW5nIiwgdGhpcyknKTsNCiAgICAgICAgICAgICAgICAgICAgdGQuaWQgPSBrZXk7DQogICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKHRkKTsNCiAgICAgICAgICAgICAgICAgICAgLy8gWE1MVFYgZmlsZQ0KICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgaWYgKGRhdGFba2V5XVsieC14bWx0di1maWxlIl0gIT0gIi0iKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZ2V0VmFsdWVGcm9tUHJvdmlkZXJGaWxlKGRhdGFba2V5XVsieC14bWx0di1maWxlIl0sICJ4bWx0diIsICJuYW1lIik7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgZWxzZSB7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJ4LXhtbHR2LWZpbGUiXTsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICB2YXIgdGQgPSBjZWxsLmNyZWF0ZUNlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgdGQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgibWFwcGluZyIsIHRoaXMpJyk7DQogICAgICAgICAgICAgICAgICAgIHRkLmlkID0ga2V5Ow0KICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZCh0ZCk7DQogICAgICAgICAgICAgICAgICAgIC8vIFhNTFRWIENoYW5uZWwNCiAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgIC8vdmFyIHZhbHVlID0gc3RyLnN1YnN0cmluZygxLCA0KTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHZhbHVlID0gZGF0YVtrZXldWyJ4LW1hcHBpbmciXTsNCiAgICAgICAgICAgICAgICAgICAgaWYgKHZhbHVlLmxlbmd0aCA+IDIwKSB7DQogICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IGRhdGFba2V5XVsieC1tYXBwaW5nIl0uc3Vic3RyaW5nKDAsIDIwKSArICIuLi4iOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSB2YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHRkID0gY2VsbC5jcmVhdGVDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgIHRkLnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoIm1hcHBpbmciLCB0aGlzKScpOw0KICAgICAgICAgICAgICAgICAgICB0ZC5pZCA9IGtleTsNCiAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQodGQpOw0KICAgICAgICAgICAgICAgICAgICAvLyBUaW1lU2hpZnQNCiAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bIngtdGltZXNoaWZ0Il07DQogICAgICAgICAgICAgICAgICAgIHZhciB0ZCA9IGNlbGwuY3JlYXRlQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICB0ZC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJtYXBwaW5nIiwgdGhpcyknKTsNCiAgICAgICAgICAgICAgICAgICAgdGQuaWQgPSBrZXk7DQogICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKHRkKTsNCiAgICAgICAgICAgICAgICAgICAgcm93cy5wdXNoKHRyKTsNCiAgICAgICAgICAgICAgICB9KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInNldHRpbmdzIjoNCiAgICAgICAgICAgICAgICBhbGVydCgpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZygiVGFibGUgY29udGVudCAobWVudUtleSk6IiwgbWVudUtleSk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIH0NCiAgICAgICAgcmV0dXJuIHJvd3M7DQogICAgfQ0KfQ0KY2xhc3MgQ2VsbCB7DQogICAgY3JlYXRlQ2VsbCgpIHsNCiAgICAgICAgbGV0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgaWYgKHRoaXMuY2hpbGQgPT0gdHJ1ZSkgew0KICAgICAgICAgICAgdmFyIGVsZW1lbnQ7DQogICAgICAgICAgICBzd2l0Y2ggKHRoaXMuY2hpbGRUeXBlKSB7DQogICAgICAgICAgICAgICAgY2FzZSAiUCI6DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KHRoaXMuY2hpbGRUeXBlKTsNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC5pbm5lckhUTUwgPSB0aGlzLnZhbHVlOw0KICAgICAgICAgICAgICAgICAgICBlbGVtZW50LmNsYXNzTmFtZSA9IHRoaXMuY2xhc3NOYW1lOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBjYXNlICJJTlBVVCI6DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KHRoaXMuY2hpbGRUeXBlKTsNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC52YWx1ZSA9IHRoaXMudmFsdWU7DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQudHlwZSA9ICJ0ZXh0IjsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAiSU5QVVRDSEFOTkVMIjoNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIklOUFVUIik7DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZzY3JpcHQ6IGNoYW5nZUNoYW5uZWxOdW1iZXIodGhpcykiKTsNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC52YWx1ZSA9IHRoaXMudmFsdWU7DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQudHlwZSA9ICJ0ZXh0IjsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAiQlVMSyI6DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJJTlBVVCIpOw0KICAgICAgICAgICAgICAgICAgICBlbGVtZW50LmNoZWNrZWQgPSB0aGlzLnZhbHVlOw0KICAgICAgICAgICAgICAgICAgICBlbGVtZW50LnR5cGUgPSAiY2hlY2tib3giOw0KICAgICAgICAgICAgICAgICAgICBlbGVtZW50LmNsYXNzTmFtZSA9ICJidWxrIGhpZGVCdWxrIjsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAiQlVMS19IRUFEIjoNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIklOUFVUIik7DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQuY2hlY2tlZCA9IHRoaXMudmFsdWU7DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQudHlwZSA9ICJjaGVja2JveCI7DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQuY2xhc3NOYW1lID0gImJ1bGsgaGlkZUJ1bGsiOw0KICAgICAgICAgICAgICAgICAgICBlbGVtZW50LnNldEF0dHJpYnV0ZSgib25jbGljayIsICJqYXZhc2NyaXB0OiBzZWxlY3RBbGxDaGFubmVscygpIik7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgIklNRyI6DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KHRoaXMuY2hpbGRUeXBlKTsNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC5zZXRBdHRyaWJ1dGUoInNyYyIsIHRoaXMuaW1hZ2VVUkwpOw0KICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5pbWFnZVVSTCAhPSAiIikgew0KICAgICAgICAgICAgICAgICAgICAgICAgZWxlbWVudC5zZXRBdHRyaWJ1dGUoIm9uZXJyb3IiLCAiamF2YXNjcmlwdDogdGhpcy5vbmVycm9yPW51bGw7dGhpcy5zcmM9JyciKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIC8vb25lcnJvcj0idGhpcy5vbmVycm9yPW51bGw7dGhpcy5zcmM9J21pc3NpbmcuZ2lmJzsiDQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIHRkLmFwcGVuZENoaWxkKGVsZW1lbnQpOw0KICAgICAgICB9DQogICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgdGQuaW5uZXJIVE1MID0gdGhpcy52YWx1ZTsNCiAgICAgICAgfQ0KICAgICAgICBpZiAodGhpcy5vbmNsaWNrID09IHRydWUpIHsNCiAgICAgICAgICAgIHRkLnNldEF0dHJpYnV0ZSgib25jbGljayIsIHRoaXMub25jbGlja0Z1bmN0aW9uKTsNCiAgICAgICAgICAgIHRkLmNsYXNzTmFtZSA9ICJwb2ludGVyIjsNCiAgICAgICAgfQ0KICAgICAgICBpZiAodGhpcy50ZENsYXNzTmFtZSAhPSB1bmRlZmluZWQpIHsNCiAgICAgICAgICAgIHRkLmNsYXNzTmFtZSA9IHRoaXMudGRDbGFzc05hbWU7DQogICAgICAgIH0NCiAgICAgICAgcmV0dXJuIHRkOw0KICAgIH0NCn0NCmNsYXNzIFNob3dDb250ZW50IGV4dGVuZHMgQ29udGVudCB7DQogICAgY29uc3RydWN0b3IobWVudUlEKSB7DQogICAgICAgIHN1cGVyKCk7DQogICAgICAgIHRoaXMubWVudUlEID0gbWVudUlEOw0KICAgIH0NCiAgICBjcmVhdGVJbnB1dCh0eXBlLCBuYW1lLCB2YWx1ZSkgew0KICAgICAgICBsZXQgaW5wdXQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJJTlBVVCIpOw0KICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInR5cGUiLCB0eXBlKTsNCiAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJuYW1lIiwgbmFtZSk7DQogICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgidmFsdWUiLCB2YWx1ZSk7DQogICAgICAgIHJldHVybiBpbnB1dDsNCiAgICB9DQogICAgc2hvdygpIHsNCiAgICAgICAgQ09MVU1OX1RPX1NPUlQgPSAtMTsNCiAgICAgICAgLy8gRGVsZXRlIG9sZCBjb250ZW50DQogICAgICAgIGxldCBkb2MgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCh0aGlzLkRvY3VtZW50SUQpOw0KICAgICAgICBkb2MuaW5uZXJIVE1MID0gIiI7DQogICAgICAgIHNob3dQcmV2aWV3KGZhbHNlKTsNCiAgICAgICAgLy8gSGVhZGxpbmUNCiAgICAgICAgbGV0IGhlYWRsaW5lID0gbWVudUl0ZW1zW3RoaXMubWVudUlEXS5oZWFkbGluZTsNCiAgICAgICAgbGV0IG1lbnVLZXkgPSBtZW51SXRlbXNbdGhpcy5tZW51SURdLm1lbnVLZXk7DQogICAgICAgIGxldCBoID0gdGhpcy5jcmVhdGVIZWFkbGluZShoZWFkbGluZSk7DQogICAgICAgIGRvYy5hcHBlbmRDaGlsZChoKTsNCiAgICAgICAgbGV0IGhyID0gdGhpcy5jcmVhdGVIUigpOw0KICAgICAgICBkb2MuYXBwZW5kQ2hpbGQoaHIpOw0KICAgICAgICAvLyBJbnRlcmFjdGlvbg0KICAgICAgICBsZXQgZGl2ID0gdGhpcy5jcmVhdGVJbnRlcmFjdGlvbigpOw0KICAgICAgICBkb2MuYXBwZW5kQ2hpbGQoZGl2KTsNCiAgICAgICAgbGV0IGludGVyYWN0aW9uID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQodGhpcy5pbnRlcmFjdGlvbklEKTsNCiAgICAgICAgc3dpdGNoIChtZW51S2V5KSB7DQogICAgICAgICAgICBjYXNlICJwbGF5bGlzdCI6DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gdGhpcy5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgbWVudUtleSwgInt7LmJ1dHRvbi5uZXd9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgiaWQiLCAiLSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoInBsYXlsaXN0IiknKTsNCiAgICAgICAgICAgICAgICBpbnRlcmFjdGlvbi5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJmaWx0ZXIiOg0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IHRoaXMuY3JlYXRlSW5wdXQoImJ1dHRvbiIsIG1lbnVLZXksICJ7ey5idXR0b24ubmV3fX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoImlkIiwgLTEpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoImZpbHRlciIsIHRoaXMpJyk7DQogICAgICAgICAgICAgICAgaW50ZXJhY3Rpb24uYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAieG1sdHYiOg0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IHRoaXMuY3JlYXRlSW5wdXQoImJ1dHRvbiIsIG1lbnVLZXksICJ7ey5idXR0b24ubmV3fX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoImlkIiwgInhtbHR2Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgieG1sdHYiKScpOw0KICAgICAgICAgICAgICAgIGludGVyYWN0aW9uLmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInVzZXJzIjoNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSB0aGlzLmNyZWF0ZUlucHV0KCJidXR0b24iLCBtZW51S2V5LCAie3suYnV0dG9uLm5ld319Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJpZCIsICJ1c2VycyIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoInVzZXJzIiknKTsNCiAgICAgICAgICAgICAgICBpbnRlcmFjdGlvbi5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJtYXBwaW5nIjoNCiAgICAgICAgICAgICAgICBzaG93RWxlbWVudCgibG9hZGluZyIsIHRydWUpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IHRoaXMuY3JlYXRlSW5wdXQoImJ1dHRvbiIsIG1lbnVLZXksICJ7ey5idXR0b24uc2F2ZX19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoIm1hcHBpbmciLCAiIiwgIiIpJyk7DQogICAgICAgICAgICAgICAgaW50ZXJhY3Rpb24uYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IHRoaXMuY3JlYXRlSW5wdXQoImJ1dHRvbiIsIG1lbnVLZXksICJ7ey5idXR0b24uYnVsa0VkaXR9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBidWxrRWRpdCgpJyk7DQogICAgICAgICAgICAgICAgaW50ZXJhY3Rpb24uYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IHRoaXMuY3JlYXRlSW5wdXQoInNlYXJjaCIsICJzZWFyY2giLCAiIik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJpZCIsICJzZWFyY2hNYXBwaW5nIik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5idXR0b24uc2VhcmNofX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5jbGFzc05hbWUgPSAic2VhcmNoIjsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgJ2phdmFzY3JpcHQ6IHNlYXJjaEluTWFwcGluZygpJyk7DQogICAgICAgICAgICAgICAgaW50ZXJhY3Rpb24uYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAic2V0dGluZ3MiOg0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IHRoaXMuY3JlYXRlSW5wdXQoImJ1dHRvbiIsIG1lbnVLZXksICJ7ey5idXR0b24uc2F2ZX19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IHNhdmVTZXR0aW5ncygpOycpOw0KICAgICAgICAgICAgICAgIGludGVyYWN0aW9uLmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSB0aGlzLmNyZWF0ZUlucHV0KCJidXR0b24iLCBtZW51S2V5LCAie3suYnV0dG9uLmJhY2t1cH19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IGJhY2t1cCgpOycpOw0KICAgICAgICAgICAgICAgIGludGVyYWN0aW9uLmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSB0aGlzLmNyZWF0ZUlucHV0KCJidXR0b24iLCBtZW51S2V5LCAie3suYnV0dG9uLnJlc3RvcmV9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiByZXN0b3JlKCk7Jyk7DQogICAgICAgICAgICAgICAgaW50ZXJhY3Rpb24uYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIHZhciB3cmFwcGVyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiRElWIik7DQogICAgICAgICAgICAgICAgd3JhcHBlci5zZXRBdHRyaWJ1dGUoImlkIiwgImJveC13cmFwcGVyIik7DQogICAgICAgICAgICAgICAgZG9jLmFwcGVuZENoaWxkKHdyYXBwZXIpOw0KICAgICAgICAgICAgICAgIHRoaXMuRGl2SUQgPSAiY29udGVudF9zZXR0aW5ncyI7DQogICAgICAgICAgICAgICAgdmFyIHNldHRpbmdzID0gdGhpcy5jcmVhdGVESVYoKTsNCiAgICAgICAgICAgICAgICB3cmFwcGVyLmFwcGVuZENoaWxkKHNldHRpbmdzKTsNCiAgICAgICAgICAgICAgICBzaG93U2V0dGluZ3MoKTsNCiAgICAgICAgICAgICAgICByZXR1cm47DQogICAgICAgICAgICBjYXNlICJsb2ciOg0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IHRoaXMuY3JlYXRlSW5wdXQoImJ1dHRvbiIsIG1lbnVLZXksICJ7ey5idXR0b24ucmVzZXRMb2dzfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogcmVzZXRMb2dzKCk7Jyk7DQogICAgICAgICAgICAgICAgaW50ZXJhY3Rpb24uYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIHZhciB3cmFwcGVyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiRElWIik7DQogICAgICAgICAgICAgICAgd3JhcHBlci5zZXRBdHRyaWJ1dGUoImlkIiwgImJveC13cmFwcGVyIik7DQogICAgICAgICAgICAgICAgZG9jLmFwcGVuZENoaWxkKHdyYXBwZXIpOw0KICAgICAgICAgICAgICAgIHRoaXMuRGl2SUQgPSAiY29udGVudF9sb2ciOw0KICAgICAgICAgICAgICAgIHZhciBsb2dzID0gdGhpcy5jcmVhdGVESVYoKTsNCiAgICAgICAgICAgICAgICB3cmFwcGVyLmFwcGVuZENoaWxkKGxvZ3MpOw0KICAgICAgICAgICAgICAgIHNob3dMb2dzKHRydWUpOw0KICAgICAgICAgICAgICAgIHJldHVybjsNCiAgICAgICAgICAgIGNhc2UgImxvZ291dCI6DQogICAgICAgICAgICAgICAgbG9jYXRpb24ucmVsb2FkKCk7DQogICAgICAgICAgICAgICAgZG9jdW1lbnQuY29va2llID0gIlRva2VuPSA7IGV4cGlyZXMgPSBUaHUsIDAxIEphbiAxOTcwIDAwOjAwOjAwIEdNVCI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBkZWZhdWx0Og0KICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKCJTaG93IGNvbnRlbnQgKG1lbnVLZXkpOiIsIG1lbnVLZXkpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICB9DQogICAgICAgIC8vIENyZWF0ZSB0YWJsZSAoaWYgbmVlZGVkKQ0KICAgICAgICB2YXIgdGFibGVIZWFkZXIgPSBtZW51SXRlbXNbdGhpcy5tZW51SURdLnRhYmxlSGVhZGVyOw0KICAgICAgICBpZiAodGFibGVIZWFkZXIubGVuZ3RoID4gMCkgew0KICAgICAgICAgICAgdmFyIHdyYXBwZXIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJESVYiKTsNCiAgICAgICAgICAgIGRvYy5hcHBlbmRDaGlsZCh3cmFwcGVyKTsNCiAgICAgICAgICAgIHdyYXBwZXIuc2V0QXR0cmlidXRlKCJpZCIsICJib3gtd3JhcHBlciIpOw0KICAgICAgICAgICAgdmFyIHRhYmxlID0gdGhpcy5jcmVhdGVUQUJMRSgpOw0KICAgICAgICAgICAgd3JhcHBlci5hcHBlbmRDaGlsZCh0YWJsZSk7DQogICAgICAgICAgICB2YXIgaGVhZGVyID0gdGhpcy5jcmVhdGVUYWJsZVJvdygpOw0KICAgICAgICAgICAgdGFibGUuYXBwZW5kQ2hpbGQoaGVhZGVyKTsNCiAgICAgICAgICAgIC8vIFRhYmxlIGhlYWRlcg0KICAgICAgICAgICAgdGFibGVIZWFkZXIuZm9yRWFjaChlbGVtZW50ID0+IHsNCiAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGVsZW1lbnQ7DQogICAgICAgICAgICAgICAgaWYgKGVsZW1lbnQgPT0gIkJVTEsiKSB7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIkJVTEtfSEVBRCI7DQogICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBmYWxzZTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgaWYgKG1lbnVLZXkgPT0gIm1hcHBpbmciKSB7DQogICAgICAgICAgICAgICAgICAgIGlmIChlbGVtZW50ID09ICJ7ey5tYXBwaW5nLnRhYmxlLmNoTm99fSIpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwub25jbGljayA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLm9uY2xpY2tGdW5jdGlvbiA9ICJqYXZhc2NyaXB0OiBzb3J0VGFibGUoMSk7IjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudGRDbGFzc05hbWUgPSAic29ydFRoaXMiOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIGlmIChlbGVtZW50ID09ICJ7ey5tYXBwaW5nLnRhYmxlLmNoYW5uZWxOYW1lfX0iKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLm9uY2xpY2sgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5vbmNsaWNrRnVuY3Rpb24gPSAiamF2YXNjcmlwdDogc29ydFRhYmxlKDMpOyI7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgaWYgKGVsZW1lbnQgPT0gInt7Lm1hcHBpbmcudGFibGUucGxheWxpc3R9fSIpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwub25jbGljayA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLm9uY2xpY2tGdW5jdGlvbiA9ICJqYXZhc2NyaXB0OiBzb3J0VGFibGUoNCk7IjsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBpZiAoZWxlbWVudCA9PSAie3subWFwcGluZy50YWJsZS5ncm91cFRpdGxlfX0iKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLm9uY2xpY2sgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5vbmNsaWNrRnVuY3Rpb24gPSAiamF2YXNjcmlwdDogc29ydFRhYmxlKDUpOyI7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgaWYgKGVsZW1lbnQgPT0gInt7Lm1hcHBpbmcudGFibGUudGltZXNoaWZ0fX0iKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLm9uY2xpY2sgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5vbmNsaWNrRnVuY3Rpb24gPSAiamF2YXNjcmlwdDogc29ydFRhYmxlKDgpOyI7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgaGVhZGVyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgIH0pOw0KICAgICAgICAgICAgdGFibGUuYXBwZW5kQ2hpbGQoaGVhZGVyKTsNCiAgICAgICAgICAgIC8vIENvbnRlbnQgb2YgdGhlIHRhYmxlDQogICAgICAgICAgICB2YXIgcm93cyA9IHRoaXMuY3JlYXRlVGFibGVDb250ZW50KG1lbnVLZXkpOw0KICAgICAgICAgICAgcm93cy5mb3JFYWNoKHRyID0+IHsNCiAgICAgICAgICAgICAgICB0YWJsZS5hcHBlbmRDaGlsZCh0cik7DQogICAgICAgICAgICB9KTsNCiAgICAgICAgfQ0KICAgICAgICBzd2l0Y2ggKG1lbnVLZXkpIHsNCiAgICAgICAgICAgIGNhc2UgIm1hcHBpbmciOg0KICAgICAgICAgICAgICAgIHNvcnRUYWJsZSgxKTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImZpbHRlciI6DQogICAgICAgICAgICAgICAgc2hvd1ByZXZpZXcodHJ1ZSk7DQogICAgICAgICAgICAgICAgc29ydFRhYmxlKDApOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgICAgICBDT0xVTU5fVE9fU09SVCA9IC0xOw0KICAgICAgICAgICAgICAgIHNvcnRUYWJsZSgwKTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgfQ0KICAgICAgICBzaG93RWxlbWVudCgibG9hZGluZyIsIGZhbHNlKTsNCiAgICB9DQp9DQpmdW5jdGlvbiBQYWdlUmVhZHkoKSB7DQogICAgbGV0IHNlcnZlciA9IG5ldyBTZXJ2ZXIoImdldFNlcnZlckNvbmZpZyIpOw0KICAgIHNlcnZlci5yZXF1ZXN0KHt9KTsNCiAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigicmVzaXplIiwgZnVuY3Rpb24gKCkgew0KICAgICAgICBjYWxjdWxhdGVXcmFwcGVySGVpZ2h0KCk7DQogICAgfSwgdHJ1ZSk7DQogICAgc2V0SW50ZXJ2YWwoZnVuY3Rpb24gKCkgew0KICAgICAgICB1cGRhdGVMb2coKTsNCiAgICB9LCAxMDAwMCk7DQogICAgcmV0dXJuOw0KfQ0KZnVuY3Rpb24gY3JlYXRlTGF5b3V0KCkgew0KICAgIC8vIENsaWVudCBJbmZvDQogICAgbGV0IG9iaiA9IFNFUlZFUlsiY2xpZW50SW5mbyJdOw0KICAgIGxldCBrZXlzID0gZ2V0T2JqS2V5cyhvYmopOw0KICAgIGZvciAodmFyIGkgPSAwOyBpIDwga2V5cy5sZW5ndGg7IGkrKykgew0KICAgICAgICBpZiAoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoa2V5c1tpXSkpIHsNCiAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGtleXNbaV0pLmlubmVySFRNTCA9IG9ialtrZXlzW2ldXTsNCiAgICAgICAgfQ0KICAgIH0NCiAgICBpZiAoIWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJtYWluLW1lbnUiKSkgew0KICAgICAgICByZXR1cm47DQogICAgfQ0KICAgIC8vIENyZWF0ZSBtZW51DQogICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm1haW4tbWVudSIpLmlubmVySFRNTCA9ICIiOw0KICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbWVudUl0ZW1zLmxlbmd0aDsgaSsrKSB7DQogICAgICAgIG1lbnVJdGVtc1tpXS5pZCA9IGk7DQogICAgICAgIHN3aXRjaCAobWVudUl0ZW1zW2ldWyJtZW51S2V5Il0pIHsNCiAgICAgICAgICAgIGNhc2UgInVzZXJzIjoNCiAgICAgICAgICAgIGNhc2UgImxvZ291dCI6DQogICAgICAgICAgICAgICAgaWYgKFNFUlZFUlsic2V0dGluZ3MiXVsiYXV0aGVudGljYXRpb24ud2ViIl0gPT0gdHJ1ZSkgew0KICAgICAgICAgICAgICAgICAgICBtZW51SXRlbXNbaV0uY3JlYXRlSXRlbSgpOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgIm1hcHBpbmciOg0KICAgICAgICAgICAgY2FzZSAieG1sdHYiOg0KICAgICAgICAgICAgICAgIGlmIChTRVJWRVJbImNsaWVudEluZm8iXVsiZXBnU291cmNlIl0gPT0gIlhFUEciKSB7DQogICAgICAgICAgICAgICAgICAgIG1lbnVJdGVtc1tpXS5jcmVhdGVJdGVtKCk7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgICAgICBtZW51SXRlbXNbaV0uY3JlYXRlSXRlbSgpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICB9DQogICAgfQ0KICAgIHJldHVybjsNCn0NCmZ1bmN0aW9uIG9wZW5UaGlzTWVudShlbGVtZW50KSB7DQogICAgbGV0IGlkID0gZWxlbWVudC5pZDsNCiAgICBsZXQgY29udGVudCA9IG5ldyBTaG93Q29udGVudChpZCk7DQogICAgY29udGVudC5zaG93KCk7DQogICAgY2FsY3VsYXRlV3JhcHBlckhlaWdodCgpOw0KICAgIHJldHVybjsNCn0NCmNsYXNzIFBvcHVwV2luZG93IHsNCiAgICBjb25zdHJ1Y3RvcigpIHsNCiAgICAgICAgdGhpcy5Eb2N1bWVudElEID0gInBvcHVwLWN1c3RvbSI7DQogICAgICAgIHRoaXMuSW50ZXJhY3Rpb25JRCA9ICJpbnRlcmFjdGlvbiI7DQogICAgICAgIHRoaXMuZG9jID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQodGhpcy5Eb2N1bWVudElEKTsNCiAgICB9DQogICAgY3JlYXRlVGl0bGUodGl0bGUpIHsNCiAgICAgICAgbGV0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgdGQuY2xhc3NOYW1lID0gImxlZnQiOw0KICAgICAgICB0ZC5pbm5lckhUTUwgPSB0aXRsZSArICI6IjsNCiAgICAgICAgcmV0dXJuIHRkOw0KICAgIH0NCiAgICBjcmVhdGVDb250ZW50KGVsZW1lbnQpIHsNCiAgICAgICAgbGV0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgdGQuYXBwZW5kQ2hpbGQoZWxlbWVudCk7DQogICAgICAgIHJldHVybiB0ZDsNCiAgICB9DQogICAgY3JlYXRlSW50ZXJhY3Rpb24oKSB7DQogICAgICAgIGxldCBkaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsNCiAgICAgICAgZGl2LnNldEF0dHJpYnV0ZSgiaWQiLCAicG9wdXAtaW50ZXJhY3Rpb24iKTsNCiAgICAgICAgZGl2LmNsYXNzTmFtZSA9ICJpbnRlcmFjdGlvbiI7DQogICAgICAgIHRoaXMuZG9jLmFwcGVuZENoaWxkKGRpdik7DQogICAgfQ0KfQ0KY2xhc3MgUG9wdXBDb250ZW50IGV4dGVuZHMgUG9wdXBXaW5kb3cgew0KICAgIGNvbnN0cnVjdG9yKCkgew0KICAgICAgICBzdXBlciguLi5hcmd1bWVudHMpOw0KICAgICAgICB0aGlzLnRhYmxlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEFCTEUiKTsNCiAgICB9DQogICAgY3JlYXRlSGVhZGxpbmUoaGVhZGxpbmUpIHsNCiAgICAgICAgdGhpcy5kb2MuaW5uZXJIVE1MID0gIiI7DQogICAgICAgIHZhciBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiSDMiKTsNCiAgICAgICAgZWxlbWVudC5pbm5lckhUTUwgPSBoZWFkbGluZS50b1VwcGVyQ2FzZSgpOw0KICAgICAgICB0aGlzLmRvYy5hcHBlbmRDaGlsZChlbGVtZW50KTsNCiAgICAgICAgLy8gQ3JlYXRlIHRhYmxlDQogICAgICAgIHRoaXMudGFibGUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJUQUJMRSIpOw0KICAgICAgICB0aGlzLmRvYy5hcHBlbmRDaGlsZCh0aGlzLnRhYmxlKTsNCiAgICB9DQogICAgYXBwZW5kUm93KHRpdGxlLCBlbGVtZW50KSB7DQogICAgICAgIGxldCB0ciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlRSIik7DQogICAgICAgIC8vIFRpdGxlDQogICAgICAgIGlmICh0aXRsZS5sZW5ndGggIT0gMCkgew0KICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQodGhpcy5jcmVhdGVUaXRsZSh0aXRsZSkpOw0KICAgICAgICB9DQogICAgICAgIC8vIENvbnRlbnQNCiAgICAgICAgdHIuYXBwZW5kQ2hpbGQodGhpcy5jcmVhdGVDb250ZW50KGVsZW1lbnQpKTsNCiAgICAgICAgdGhpcy50YWJsZS5hcHBlbmRDaGlsZCh0cik7DQogICAgfQ0KICAgIGNyZWF0ZUlucHV0KHR5cGUsIG5hbWUsIHZhbHVlKSB7DQogICAgICAgIGxldCBpbnB1dCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIklOUFVUIik7DQogICAgICAgIGlmICh2YWx1ZSA9PSB1bmRlZmluZWQpIHsNCiAgICAgICAgICAgIHZhbHVlID0gIiI7DQogICAgICAgIH0NCiAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJ0eXBlIiwgdHlwZSk7DQogICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgibmFtZSIsIG5hbWUpOw0KICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInZhbHVlIiwgdmFsdWUpOw0KICAgICAgICByZXR1cm4gaW5wdXQ7DQogICAgfQ0KICAgIGNyZWF0ZUNoZWNrYm94KG5hbWUpIHsNCiAgICAgICAgbGV0IGlucHV0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiSU5QVVQiKTsNCiAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJ0eXBlIiwgImNoZWNrYm94Iik7DQogICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgibmFtZSIsIG5hbWUpOw0KICAgICAgICByZXR1cm4gaW5wdXQ7DQogICAgfQ0KICAgIC8vIENyZWF0ZXMgYSBzZWxlY3Rpb24gb2YgbXVsdGlwbGUgb3B0aW9ucyB2YWx1ZXMgd2l0aCB0ZXh0IGRlc2NyaXB0aW9ucw0KICAgIGNyZWF0ZVNlbGVjdCh0ZXh0LCB2YWx1ZXMsIHNldCwgZGJLZXkpIHsNCiAgICAgICAgbGV0IHNlbGVjdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlNFTEVDVCIpOw0KICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJuYW1lIiwgZGJLZXkpOw0KICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRleHQubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgICAgIGxldCBvcHRpb24gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJPUFRJT04iKTsNCiAgICAgICAgICAgIG9wdGlvbi5zZXRBdHRyaWJ1dGUoInZhbHVlIiwgdmFsdWVzW2ldKTsNCiAgICAgICAgICAgIG9wdGlvbi5pbm5lclRleHQgPSB0ZXh0W2ldOw0KICAgICAgICAgICAgc2VsZWN0LmFwcGVuZENoaWxkKG9wdGlvbik7DQogICAgICAgIH0NCiAgICAgICAgaWYgKHNldCAhPSAiIikgew0KICAgICAgICAgICAgc2VsZWN0LnZhbHVlID0gc2V0Ow0KICAgICAgICB9DQogICAgICAgIGlmIChzZXQgPT0gdW5kZWZpbmVkKSB7DQogICAgICAgICAgICBzZWxlY3QudmFsdWUgPSB2YWx1ZXNbMF07DQogICAgICAgIH0NCiAgICAgICAgcmV0dXJuIHNlbGVjdDsNCiAgICB9DQogICAgc2VsZWN0T3B0aW9uKHNlbGVjdCwgdmFsdWUpIHsNCiAgICAgICAgLy9zZWxlY3Quc2VsZWN0ZWRPcHRpb25zID0gdmFsdWUNCiAgICAgICAgbGV0IHMgPSBzZWxlY3Q7DQogICAgICAgIHMub3B0aW9uc1tzLnNlbGVjdGVkSW5kZXhdLnZhbHVlID0gdmFsdWU7DQogICAgICAgIHJldHVybiBzZWxlY3Q7DQogICAgfQ0KICAgIGRlc2NyaXB0aW9uKHZhbHVlKSB7DQogICAgICAgIGxldCB0ciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlRSIik7DQogICAgICAgIGxldCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgIGxldCBzcGFuID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiUFJFIik7DQogICAgICAgIHNwYW4uaW5uZXJIVE1MID0gdmFsdWU7DQogICAgICAgIHRyLmFwcGVuZENoaWxkKHRkKTsNCiAgICAgICAgdHIuYXBwZW5kQ2hpbGQodGhpcy5jcmVhdGVDb250ZW50KHNwYW4pKTsNCiAgICAgICAgdGhpcy50YWJsZS5hcHBlbmRDaGlsZCh0cik7DQogICAgfQ0KICAgIC8vIEludGVyYWN0aW9uDQogICAgYWRkSW50ZXJhY3Rpb24oZWxlbWVudCkgew0KICAgICAgICBsZXQgaW50ZXJhY3Rpb24gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicG9wdXAtaW50ZXJhY3Rpb24iKTsNCiAgICAgICAgaW50ZXJhY3Rpb24uYXBwZW5kQ2hpbGQoZWxlbWVudCk7DQogICAgfQ0KfQ0KZnVuY3Rpb24gb3BlblBvcFVwKGRhdGFUeXBlLCBlbGVtZW50KSB7DQogICAgbGV0IGRhdGEgPSB7fTsNCiAgICBsZXQgaWQ7DQogICAgc3dpdGNoIChlbGVtZW50KSB7DQogICAgICAgIGNhc2UgdW5kZWZpbmVkOg0KICAgICAgICAgICAgc3dpdGNoIChkYXRhVHlwZSkgew0KICAgICAgICAgICAgICAgIGNhc2UgImdyb3VwLXRpdGxlIjoNCiAgICAgICAgICAgICAgICAgICAgaWYgKGlkID09IHVuZGVmaW5lZCkgew0KICAgICAgICAgICAgICAgICAgICAgICAgaWQgPSAtMTsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBkYXRhID0gZ2V0TG9jYWxEYXRhKCJmaWx0ZXIiLCBpZCk7DQogICAgICAgICAgICAgICAgICAgIGRhdGFbInR5cGUiXSA9ICJncm91cC10aXRsZSI7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgImN1c3RvbS1maWx0ZXIiOg0KICAgICAgICAgICAgICAgICAgICBpZiAoaWQgPT0gdW5kZWZpbmVkKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBpZCA9IC0xOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIGRhdGEgPSBnZXRMb2NhbERhdGEoImZpbHRlciIsIGlkKTsNCiAgICAgICAgICAgICAgICAgICAgZGF0YVsidHlwZSJdID0gImN1c3RvbS1maWx0ZXIiOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBkZWZhdWx0Og0KICAgICAgICAgICAgICAgICAgICBkYXRhWyJpZC5wcm92aWRlciJdID0gIi0iOw0KICAgICAgICAgICAgICAgICAgICBkYXRhWyJ0eXBlIl0gPSBkYXRhVHlwZTsNCiAgICAgICAgICAgICAgICAgICAgaWQgPSAiLSI7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICBpZCA9IGVsZW1lbnQuaWQ7DQogICAgICAgICAgICBkYXRhID0gZ2V0TG9jYWxEYXRhKGRhdGFUeXBlLCBpZCk7DQogICAgICAgICAgICBicmVhazsNCiAgICB9DQogICAgbGV0IGNvbnRlbnQgPSBuZXcgUG9wdXBDb250ZW50KCk7DQogICAgc3dpdGNoIChkYXRhVHlwZSkgew0KICAgICAgICBjYXNlICJwbGF5bGlzdCI6DQogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUhlYWRsaW5lKCJ7ey5wbGF5bGlzdC5wbGF5bGlzdFR5cGUudGl0bGV9fSIpOw0KICAgICAgICAgICAgLy8gVHlwZQ0KICAgICAgICAgICAgdmFyIHRleHQgPSBbIk0zVSIsICJIREhvbWVSdW4iXTsNCiAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBbImphdmFzY3JpcHQ6IG9wZW5Qb3BVcCgnbTN1JykiLCAiamF2YXNjcmlwdDogb3BlblBvcFVwKCdoZGhyJykiXTsNCiAgICAgICAgICAgIHZhciBzZWxlY3QgPSBjb250ZW50LmNyZWF0ZVNlbGVjdCh0ZXh0LCB2YWx1ZXMsICIiLCAidHlwZSIpOw0KICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgiaWQiLCAidHlwZSIpOw0KICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAnamF2YXNjcmlwdDogY2hhbmdlQnV0dG9uQWN0aW9uKHRoaXMsICJuZXh0IiwgIm9uY2xpY2siKScpOyAvLyBjaGFuZ2VCdXR0b25BY3Rpb24NCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5wbGF5bGlzdC50eXBlLnRpdGxlfX0iLCBzZWxlY3QpOw0KICAgICAgICAgICAgLy8gSW50ZXJhY3Rpb24NCiAgICAgICAgICAgIGNvbnRlbnQuY3JlYXRlSW50ZXJhY3Rpb24oKTsNCiAgICAgICAgICAgIC8vIEFib3J0DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAiY2FuY2VsIiwgInt7LmJ1dHRvbi5jYW5jZWx9fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IHNob3dFbGVtZW50KCJwb3B1cCIsIGZhbHNlKTsnKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgLy8gTmV4dA0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgIm5leHQiLCAie3suYnV0dG9uLm5leHR9fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgibTN1IiknKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgiaWQiLCAnbmV4dCcpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSAibTN1IjoNCiAgICAgICAgICAgIGNvbnRlbnQuY3JlYXRlSGVhZGxpbmUoZGF0YVR5cGUpOw0KICAgICAgICAgICAgLy8gTmFtZQ0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gIm5hbWUiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnBsYXlsaXN0Lm5hbWUucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnBsYXlsaXN0Lm5hbWUudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIERlc2NyaXB0aW9uDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAiZGVzY3JpcHRpb24iOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnBsYXlsaXN0LmRlc2NyaXB0aW9uLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5wbGF5bGlzdC5kZXNjcmlwdGlvbi50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgLy8gVVJMDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAiZmlsZS5zb3VyY2UiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnBsYXlsaXN0LmZpbGVNM1UucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnBsYXlsaXN0LmZpbGVNM1UudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIFR1bmVyDQogICAgICAgICAgICBpZiAoU0VSVkVSWyJzZXR0aW5ncyJdWyJidWZmZXIiXSAhPSAiLSIpIHsNCiAgICAgICAgICAgICAgICB2YXIgdGV4dCA9IFtdOw0KICAgICAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBbXTsNCiAgICAgICAgICAgICAgICBmb3IgKHZhciBpID0gMTsgaSA8PSAxMDA7IGkrKykgew0KICAgICAgICAgICAgICAgICAgICB0ZXh0LnB1c2goaS50b1N0cmluZygpKTsNCiAgICAgICAgICAgICAgICAgICAgdmFsdWVzLnB1c2goaS50b1N0cmluZygpKTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgdmFyIGRiS2V5ID0gInR1bmVyIjsNCiAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCBkYXRhW2RiS2V5XSwgZGJLZXkpOw0KICAgICAgICAgICAgICAgIHNlbGVjdC5zZXRBdHRyaWJ1dGUoIm9uZm9jdXMiLCAiamF2YXNjcmlwdDogcmV0dXJuOyIpOw0KICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5wbGF5bGlzdC50dW5lci50aXRsZX19Iiwgc2VsZWN0KTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgICAgIHZhciBkYktleSA9ICJ0dW5lciI7DQogICAgICAgICAgICAgICAgaWYgKGRhdGFbZGJLZXldID09IHVuZGVmaW5lZCkgew0KICAgICAgICAgICAgICAgICAgICBkYXRhW2RiS2V5XSA9IDE7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicmVhZG9ubHkiLCAidHJ1ZSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LmNsYXNzTmFtZSA9ICJub3RBdmFpbGFibGUiOw0KICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5wbGF5bGlzdC50dW5lci50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgY29udGVudC5kZXNjcmlwdGlvbigie3sucGxheWxpc3QudHVuZXIuZGVzY3JpcHRpb259fSIpOw0KICAgICAgICAgICAgLy8gSW50ZXJhdGlvbg0KICAgICAgICAgICAgY29udGVudC5jcmVhdGVJbnRlcmFjdGlvbigpOw0KICAgICAgICAgICAgLy8gRGVsZXRlDQogICAgICAgICAgICBpZiAoZGF0YVsiaWQucHJvdmlkZXIiXSAhPSAiLSIpIHsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAiZGVsZXRlIiwgInt7LmJ1dHRvbi5kZWxldGV9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LmNsYXNzTmFtZSA9ICJkZWxldGUiOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBzYXZlUG9wdXBEYXRhKCJtM3UiLCAiJyArIGlkICsgJyIsIHRydWUsIDApJyk7DQogICAgICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAiYmFjayIsICJ7ey5idXR0b24uYmFja319Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgicGxheWxpc3QiKScpOw0KICAgICAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgLy8gQWJvcnQNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJjYW5jZWwiLCAie3suYnV0dG9uLmNhbmNlbH19Iik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogc2hvd0VsZW1lbnQoInBvcHVwIiwgZmFsc2UpOycpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICAvLyBVcGRhdGUNCiAgICAgICAgICAgIGlmIChkYXRhWyJpZC5wcm92aWRlciJdICE9ICItIikgew0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJ1cGRhdGUiLCAie3suYnV0dG9uLnVwZGF0ZX19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoIm0zdSIsICInICsgaWQgKyAnIiwgZmFsc2UsIDEpJyk7DQogICAgICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICAvLyBTYXZlDQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAic2F2ZSIsICJ7ey5idXR0b24uc2F2ZX19Iik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogc2F2ZVBvcHVwRGF0YSgibTN1IiwgIicgKyBpZCArICciLCBmYWxzZSwgMCknKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGNhc2UgImhkaHIiOg0KICAgICAgICAgICAgY29udGVudC5jcmVhdGVIZWFkbGluZShkYXRhVHlwZSk7DQogICAgICAgICAgICAvLyBOYW1lDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAibmFtZSI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3sucGxheWxpc3QubmFtZS5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sucGxheWxpc3QubmFtZS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgLy8gRGVzY3JpcHRpb24NCiAgICAgICAgICAgIHZhciBkYktleSA9ICJkZXNjcmlwdGlvbiI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3sucGxheWxpc3QuZGVzY3JpcHRpb24ucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnBsYXlsaXN0LmRlc2NyaXB0aW9uLnBsYWNlaG9sZGVyfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBVUkwNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJmaWxlLnNvdXJjZSI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3sucGxheWxpc3QuZmlsZUhESFIucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnBsYXlsaXN0LmZpbGVIREhSLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBUdW5lcg0KICAgICAgICAgICAgaWYgKFNFUlZFUlsic2V0dGluZ3MiXVsiYnVmZmVyIl0gIT0gIi0iKSB7DQogICAgICAgICAgICAgICAgdmFyIHRleHQgPSBbXTsNCiAgICAgICAgICAgICAgICB2YXIgdmFsdWVzID0gW107DQogICAgICAgICAgICAgICAgZm9yICh2YXIgaSA9IDE7IGkgPD0gMTAwOyBpKyspIHsNCiAgICAgICAgICAgICAgICAgICAgdGV4dC5wdXNoKGkudG9TdHJpbmcoKSk7DQogICAgICAgICAgICAgICAgICAgIHZhbHVlcy5wdXNoKGkudG9TdHJpbmcoKSk7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIHZhciBkYktleSA9ICJ0dW5lciI7DQogICAgICAgICAgICAgICAgdmFyIHNlbGVjdCA9IGNvbnRlbnQuY3JlYXRlU2VsZWN0KHRleHQsIHZhbHVlcywgZGF0YVtkYktleV0sIGRiS2V5KTsNCiAgICAgICAgICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJvbmZvY3VzIiwgImphdmFzY3JpcHQ6IHJldHVybjsiKTsNCiAgICAgICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sucGxheWxpc3QudHVuZXIudGl0bGV9fSIsIHNlbGVjdCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICB2YXIgZGJLZXkgPSAidHVuZXIiOw0KICAgICAgICAgICAgICAgIGlmIChkYXRhW2RiS2V5XSA9PSB1bmRlZmluZWQpIHsNCiAgICAgICAgICAgICAgICAgICAgZGF0YVtkYktleV0gPSAxOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInJlYWRvbmx5IiwgInRydWUiKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5jbGFzc05hbWUgPSAibm90QXZhaWxhYmxlIjsNCiAgICAgICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sucGxheWxpc3QudHVuZXIudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGNvbnRlbnQuZGVzY3JpcHRpb24oInt7LnBsYXlsaXN0LnR1bmVyLmRlc2NyaXB0aW9ufX0iKTsNCiAgICAgICAgICAgIC8vIEludGVyYWN0aW9uDQogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUludGVyYWN0aW9uKCk7DQogICAgICAgICAgICAvLyBEZWxldGUNCiAgICAgICAgICAgIGlmIChkYXRhWyJpZC5wcm92aWRlciJdICE9ICItIikgew0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJkZWxldGUiLCAie3suYnV0dG9uLmRlbGV0ZX19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoImhkaHIiLCAiJyArIGlkICsgJyIsIHRydWUsIDApJyk7DQogICAgICAgICAgICAgICAgaW5wdXQuY2xhc3NOYW1lID0gImRlbGV0ZSI7DQogICAgICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAiYmFjayIsICJ7ey5idXR0b24uYmFja319Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgicGxheWxpc3QiKScpOw0KICAgICAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgLy8gQWJvcnQNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJjYW5jZWwiLCAie3suYnV0dG9uLmNhbmNlbH19Iik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogc2hvd0VsZW1lbnQoInBvcHVwIiwgZmFsc2UpOycpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICAvLyBVcGRhdGUNCiAgICAgICAgICAgIGlmIChkYXRhWyJpZC5wcm92aWRlciJdICE9ICItIikgew0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJ1cGRhdGUiLCAie3suYnV0dG9uLnVwZGF0ZX19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoImhkaHIiLCAiJyArIGlkICsgJyIsIGZhbHNlLCAxKScpOw0KICAgICAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgLy8gU2F2ZQ0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgInNhdmUiLCAie3suYnV0dG9uLnNhdmV9fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoImhkaHIiLCAiJyArIGlkICsgJyIsIGZhbHNlLCAwKScpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSAiZmlsdGVyIjoNCiAgICAgICAgICAgIGNvbnRlbnQuY3JlYXRlSGVhZGxpbmUoZGF0YVR5cGUpOw0KICAgICAgICAgICAgLy8gVHlwZQ0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gInR5cGUiOw0KICAgICAgICAgICAgdmFyIHRleHQgPSBbIk0zVTogIiArICJ7ey5maWx0ZXIudHlwZS5ncm91cFRpdGxlfX0iLCAieFRlVmU6ICIgKyAie3suZmlsdGVyLnR5cGUuY3VzdG9tRmlsdGVyfX0iXTsNCiAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBbImphdmFzY3JpcHQ6IG9wZW5Qb3BVcCgnZ3JvdXAtdGl0bGUnKSIsICJqYXZhc2NyaXB0OiBvcGVuUG9wVXAoJ2N1c3RvbS1maWx0ZXInKSJdOw0KICAgICAgICAgICAgdmFyIHNlbGVjdCA9IGNvbnRlbnQuY3JlYXRlU2VsZWN0KHRleHQsIHZhbHVlcywgImphdmFzY3JpcHQ6IG9wZW5Qb3BVcCgnZ3JvdXAtdGl0bGUnKSIsIGRiS2V5KTsNCiAgICAgICAgICAgIHNlbGVjdC5zZXRBdHRyaWJ1dGUoImlkIiwgaWQpOw0KICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAnamF2YXNjcmlwdDogY2hhbmdlQnV0dG9uQWN0aW9uKHRoaXMsICJuZXh0IiwgIm9uY2xpY2siKTsnKTsgLy8gY2hhbmdlQnV0dG9uQWN0aW9uDQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3suZmlsdGVyLnR5cGUudGl0bGV9fSIsIHNlbGVjdCk7DQogICAgICAgICAgICAvLyBJbnRlcmFjdGlvbg0KICAgICAgICAgICAgY29udGVudC5jcmVhdGVJbnRlcmFjdGlvbigpOw0KICAgICAgICAgICAgLy8gQWJvcnQNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJjYW5jZWwiLCAie3suYnV0dG9uLmNhbmNlbH19Iik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogc2hvd0VsZW1lbnQoInBvcHVwIiwgZmFsc2UpOycpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICAvLyBOZXh0DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAibmV4dCIsICJ7ey5idXR0b24ubmV4dH19Iik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJncm91cC10aXRsZSIpJyk7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoImlkIiwgJ25leHQnKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGNhc2UgImN1c3RvbS1maWx0ZXIiOg0KICAgICAgICBjYXNlICJncm91cC10aXRsZSI6DQogICAgICAgICAgICBzd2l0Y2ggKGRhdGFUeXBlKSB7DQogICAgICAgICAgICAgICAgY2FzZSAiY3VzdG9tLWZpbHRlciI6DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuY3JlYXRlSGVhZGxpbmUoInt7LmZpbHRlci5jdXN0b219fSIgKyAiIEZpbHRlciIpOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBjYXNlICJncm91cC10aXRsZSI6DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuY3JlYXRlSGVhZGxpbmUoInt7LmZpbHRlci5ncm91cH19IiArICIgRmlsdGVyIik7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgLy8gTmFtZSAgICAgIA0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gIm5hbWUiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LmZpbHRlci5uYW1lLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5maWx0ZXIubmFtZS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgLy8gRGVzY3JpcHRpb24NCiAgICAgICAgICAgIHZhciBkYktleSA9ICJkZXNjcmlwdGlvbiI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3suZmlsdGVyLmRlc2NyaXB0aW9uLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5maWx0ZXIuZGVzY3JpcHRpb24udGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIFR5cGUNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJ0eXBlIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImhpZGRlbiIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygiIiwgaW5wdXQpOw0KICAgICAgICAgICAgdmFyIGZpbHRlclR5cGUgPSBkYXRhW2RiS2V5XTsNCiAgICAgICAgICAgIHN3aXRjaCAoZmlsdGVyVHlwZSkgew0KICAgICAgICAgICAgICAgIGNhc2UgImN1c3RvbS1maWx0ZXIiOg0KICAgICAgICAgICAgICAgICAgICAvLyBDYXNlIHNlbnNpdGl2ZQ0KICAgICAgICAgICAgICAgICAgICB2YXIgZGJLZXkgPSAiY2FzZVNlbnNpdGl2ZSI7DQogICAgICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goZGJLZXkpOw0KICAgICAgICAgICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YVtkYktleV07DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5maWx0ZXIuY2FzZVNlbnNpdGl2ZS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgICAgICAgICAvLyBGaWx0ZXIgUnVsZSAoQ3VzdG9tKQ0KICAgICAgICAgICAgICAgICAgICB2YXIgZGJLZXkgPSAiZmlsdGVyIjsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3suZmlsdGVyLmZpbHRlclJ1bGUucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3suZmlsdGVyLmZpbHRlclJ1bGUudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAiZ3JvdXAtdGl0bGUiOg0KICAgICAgICAgICAgICAgICAgICAvL2FsZXJ0KGRiS2V5ICsgIiAiICsgZmlsdGVyVHlwZSkNCiAgICAgICAgICAgICAgICAgICAgLy8gRmlsdGVyIGJhc2VkIG9uIHRoZSBncm91cHMgaW4gdGhlIE0zVQ0KICAgICAgICAgICAgICAgICAgICB2YXIgZGJLZXkgPSAiZmlsdGVyIjsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGdyb3Vwc00zVSA9IGdldExvY2FsRGF0YSgibTN1R3JvdXBzIiwgIiIpOw0KICAgICAgICAgICAgICAgICAgICB2YXIgdGV4dCA9IGdyb3Vwc00zVVsidGV4dCJdOw0KICAgICAgICAgICAgICAgICAgICB2YXIgdmFsdWVzID0gZ3JvdXBzTTNVWyJ2YWx1ZSJdOw0KICAgICAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCBkYXRhW2RiS2V5XSwgZGJLZXkpOw0KICAgICAgICAgICAgICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3suZmlsdGVyLmZpbHRlckdyb3VwLnRpdGxlfX0iLCBzZWxlY3QpOw0KICAgICAgICAgICAgICAgICAgICBjb250ZW50LmRlc2NyaXB0aW9uKCJ7ey5maWx0ZXIuZmlsdGVyR3JvdXAuZGVzY3JpcHRpb259fSIpOw0KICAgICAgICAgICAgICAgICAgICAvLyBDYXNlIHNlbnNldGl2ZQ0KICAgICAgICAgICAgICAgICAgICB2YXIgZGJLZXkgPSAiY2FzZVNlbnNpdGl2ZSI7DQogICAgICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goZGJLZXkpOw0KICAgICAgICAgICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YVtkYktleV07DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5maWx0ZXIuY2FzZVNlbnNpdGl2ZS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgICAgICAgICB2YXIgZGJLZXkgPSAiaW5jbHVkZSI7DQogICAgICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LmZpbHRlci5pbmNsdWRlLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LmZpbHRlci5pbmNsdWRlLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuZGVzY3JpcHRpb24oInt7LmZpbHRlci5pbmNsdWRlLmRlc2NyaXB0aW9ufX0iKTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGRiS2V5ID0gImV4Y2x1ZGUiOw0KICAgICAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5maWx0ZXIuZXhjbHVkZS5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5maWx0ZXIuZXhjbHVkZS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgICAgICAgICBjb250ZW50LmRlc2NyaXB0aW9uKCJ7ey5maWx0ZXIuZXhjbHVkZS5kZXNjcmlwdGlvbn19Iik7DQogICAgICAgICAgICAgICAgICAgIC8vIFByZXNlcnZlIE0zVSBQbGF5bGlzdCBDaGFubmVsIE1hcHBpbmcNCiAgICAgICAgICAgICAgICAgICAgdmFyIGRiS2V5ID0gInByZXNlcnZlTWFwcGluZyI7DQogICAgICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goZGJLZXkpOw0KICAgICAgICAgICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YVtkYktleV07DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5maWx0ZXIucHJlc2VydmVNYXBwaW5nLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAgICAgICAgIC8vIFN0YXJ0aW5nIENoYW5uZWwgTnVtYmVyIE1hcHBpbmcNCiAgICAgICAgICAgICAgICAgICAgdmFyIGRiS2V5ID0gInN0YXJ0aW5nQ2hhbm5lbCI7DQogICAgICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LmZpbHRlci5zdGFydGluZ0NoYW5uZWwucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3suZmlsdGVyLnN0YXJ0aW5nQ2hhbm5lbC50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgICAgICAgICAvLyBGaWxsIE1pc3NpbmcgRVBHIERhdGENCiAgICAgICAgICAgICAgICAgICAgLy8gVGhlIGZvbGxvd2luZyBjb2RlIG9ubHkgd29ya3Mgd2hlbiB4VGVWZSBEdW1teSBhbHJlYWR5IGV4aXN0cw0KICAgICAgICAgICAgICAgICAgICAvLyB2YXIgZGJLZXk6c3RyaW5nID0gImRlZmF1bHRNaXNzaW5nRVBHIg0KICAgICAgICAgICAgICAgICAgICAvLyB2YXIgeG1sdHY6WE1MVFZGaWxlID0gbmV3IFhNTFRWRmlsZSgpDQogICAgICAgICAgICAgICAgICAgIC8vIHZhciBzZWxlY3QgPSB4bWx0di5nZXRQcm9ncmFtcygieFRlVmUgRHVtbXkiLCBkYXRhW2RiS2V5XSkNCiAgICAgICAgICAgICAgICAgICAgLy8gc2VsZWN0LnNldEF0dHJpYnV0ZSgibmFtZSIsIGRiS2V5KQ0KICAgICAgICAgICAgICAgICAgICAvLyBzZWxlY3Quc2V0QXR0cmlidXRlKCJpZCIsICJwb3B1cC1taXNzaW5nLWVwZyIpDQogICAgICAgICAgICAgICAgICAgIC8vIFRoZSB3b3JrYXJvdW5kIGlzIGN1cnJlbnRseSB0byBoYXJkIGNvZGUgdGhlIHhUZVZlIER1bW15IGRhdGENCiAgICAgICAgICAgICAgICAgICAgdmFyIGRiS2V5ID0gImRlZmF1bHRNaXNzaW5nRVBHIjsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGxpc3RPcHRpb25zID0geyAidGV4dCI6IFsiLSIsICIzMCBNaW51dGVzICgzMF9NaW51dGVzKSIsICI2MCBNaW51dGVzICg2MF9NaW51dGVzKSIsICI5MCBNaW51dGVzICg5MF9NaW51dGVzKSIsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgIjEyMCBNaW51dGVzICgxMjBfTWludXRlcykiLCAiMTgwIE1pbnV0ZXMgKDMwX01pbnV0ZXMpIiwgIjI0MCBNaW51dGVzICgzMF9NaW51dGVzKSIsICIzNjAgTWludXRlcyAoMzBfTWludXRlcykiXSwNCiAgICAgICAgICAgICAgICAgICAgICAgICJ2YWx1ZSI6IFsiLSIsICIzMF9NaW51dGVzIiwgIjYwX01pbnV0ZXMiLCAiOTBfTWludXRlcyIsICIxMjBfTWludXRlcyIsICIxODBfTWludXRlcyIsICIyNDBfTWludXRlcyIsICIzNjBfTWludXRlcyIsXSB9Ow0KICAgICAgICAgICAgICAgICAgICB2YXIgdGV4dCA9IGxpc3RPcHRpb25zWyJ0ZXh0Il07DQogICAgICAgICAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBsaXN0T3B0aW9uc1sidmFsdWUiXTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHNlbGVjdCA9IGNvbnRlbnQuY3JlYXRlU2VsZWN0KHRleHQsIHZhbHVlcywgZGF0YVtkYktleV0sIGRiS2V5KTsNCiAgICAgICAgICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LmZpbHRlci5kZWZhdWx0TWlzc2luZ0VQRy50aXRsZX19Iiwgc2VsZWN0KTsNCiAgICAgICAgICAgICAgICAgICAgY29udGVudC5kZXNjcmlwdGlvbigie3suZmlsdGVyLmRlZmF1bHRNaXNzaW5nRVBHLmRlc2NyaXB0aW9ufX0iKTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICB9DQogICAgICAgICAgICAvLyBJbnRlcmFjdGlvbg0KICAgICAgICAgICAgY29udGVudC5jcmVhdGVJbnRlcmFjdGlvbigpOw0KICAgICAgICAgICAgLy8gRGVsZXRlDQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAiZGVsZXRlIiwgInt7LmJ1dHRvbi5kZWxldGV9fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoImZpbHRlciIsICInICsgaWQgKyAnIiwgdHJ1ZSwgMCknKTsNCiAgICAgICAgICAgIGlucHV0LmNsYXNzTmFtZSA9ICJkZWxldGUiOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICAvLyBBYm9ydA0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImNhbmNlbCIsICJ7ey5idXR0b24uY2FuY2VsfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBzaG93RWxlbWVudCgicG9wdXAiLCBmYWxzZSk7Jyk7DQogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIC8vIFNhdmUNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJzYXZlIiwgInt7LmJ1dHRvbi5zYXZlfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBzYXZlUG9wdXBEYXRhKCJmaWx0ZXIiLCAiJyArIGlkICsgJyIsIGZhbHNlLCAwKScpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSAieG1sdHYiOg0KICAgICAgICAgICAgY29udGVudC5jcmVhdGVIZWFkbGluZShkYXRhVHlwZSk7DQogICAgICAgICAgICAvLyBOYW1lDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAibmFtZSI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3sueG1sdHYubmFtZS5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sueG1sdHYubmFtZS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgLy8gRGVzY3JpcHRpb24NCiAgICAgICAgICAgIHZhciBkYktleSA9ICJkZXNjcmlwdGlvbiI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3sueG1sdHYuZGVzY3JpcHRpb24ucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnhtbHR2LmRlc2NyaXB0aW9uLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBVUkwNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJmaWxlLnNvdXJjZSI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3sueG1sdHYuZmlsZVhNTFRWLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey54bWx0di5maWxlWE1MVFYudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIEludGVyYWN0aW9uDQogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUludGVyYWN0aW9uKCk7DQogICAgICAgICAgICAvLyBEZWxldGUNCiAgICAgICAgICAgIGlmIChkYXRhWyJpZC5wcm92aWRlciJdICE9ICItIikgew0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJkZWxldGUiLCAie3suYnV0dG9uLmRlbGV0ZX19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoInhtbHR2IiwgIicgKyBpZCArICciLCB0cnVlLCAwKScpOw0KICAgICAgICAgICAgICAgIGlucHV0LmNsYXNzTmFtZSA9ICJkZWxldGUiOw0KICAgICAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgLy8gQWJvcnQNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJjYW5jZWwiLCAie3suYnV0dG9uLmNhbmNlbH19Iik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogc2hvd0VsZW1lbnQoInBvcHVwIiwgZmFsc2UpOycpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICAvLyBVcGRhdGUNCiAgICAgICAgICAgIGlmIChkYXRhWyJpZC5wcm92aWRlciJdICE9ICItIikgew0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJ1cGRhdGUiLCAie3suYnV0dG9uLnVwZGF0ZX19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoInhtbHR2IiwgIicgKyBpZCArICciLCBmYWxzZSwgMSknKTsNCiAgICAgICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIC8vIFNhdmUNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJzYXZlIiwgInt7LmJ1dHRvbi5zYXZlfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBzYXZlUG9wdXBEYXRhKCJ4bWx0diIsICInICsgaWQgKyAnIiwgZmFsc2UsIDApJyk7DQogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJ1c2VycyI6DQogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUhlYWRsaW5lKCJ7ey5tYWluTWVudS5pdGVtLnVzZXJzfX0iKTsNCiAgICAgICAgICAgIC8vIFVzZXIgbmFtZQ0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gInVzZXJuYW1lIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey51c2Vycy51c2VybmFtZS5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sudXNlcnMudXNlcm5hbWUudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIE5ldyBQYXJzc3dvcmQNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJwYXNzd29yZCI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJwYXNzd29yZCIsIGRiS2V5LCAiIik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnVzZXJzLnBhc3N3b3JkLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey51c2Vycy5wYXNzd29yZC50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgLy8gQ29uZmlybWF0aW9uDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAiY29uZmlybSI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJwYXNzd29yZCIsIGRiS2V5LCAiIik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnVzZXJzLmNvbmZpcm0ucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnVzZXJzLmNvbmZpcm0udGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIEF1dGhlbnRpY2F0aW9uIFdFQg0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gImF1dGhlbnRpY2F0aW9uLndlYiI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KGRiS2V5KTsNCiAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhW2RiS2V5XTsNCiAgICAgICAgICAgIGlmIChkYXRhWyJkZWZhdWx0VXNlciJdID09IHRydWUpIHsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAiamF2YXNjcmlwdDogcmV0dXJuIGZhbHNlIik7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sudXNlcnMud2ViLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBBdXRoZW50aWNhdGlvbiBQTVMNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJhdXRoZW50aWNhdGlvbi5wbXMiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChkYktleSk7DQogICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YVtkYktleV07DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sudXNlcnMucG1zLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBBdXRoZW50aWNhdGlvbiBNM1UNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJhdXRoZW50aWNhdGlvbi5tM3UiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChkYktleSk7DQogICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YVtkYktleV07DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sudXNlcnMubTN1LnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBBdXRoZW50aWNhdGlvbiBYTUwNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJhdXRoZW50aWNhdGlvbi54bWwiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChkYktleSk7DQogICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YVtkYktleV07DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sudXNlcnMueG1sLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBBdXRoZW50aWNhdGlvbiBBUEkNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJhdXRoZW50aWNhdGlvbi5hcGkiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChkYktleSk7DQogICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YVtkYktleV07DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sudXNlcnMuYXBpLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBJbnRlcmFjdGlvbg0KICAgICAgICAgICAgY29udGVudC5jcmVhdGVJbnRlcmFjdGlvbigpOw0KICAgICAgICAgICAgLy8gRGVsZXRlDQogICAgICAgICAgICBpZiAoZGF0YVsiZGVmYXVsdFVzZXIiXSAhPSB0cnVlICYmIGlkICE9ICItIikgew0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJkZWxldGUiLCAie3suYnV0dG9uLmRlbGV0ZX19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuY2xhc3NOYW1lID0gImRlbGV0ZSI7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoIicgKyBkYXRhVHlwZSArICciLCAiJyArIGlkICsgJyIsIHRydWUsIDApJyk7DQogICAgICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICAvLyBBYm9ydA0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImNhbmNlbCIsICJ7ey5idXR0b24uY2FuY2VsfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBzaG93RWxlbWVudCgicG9wdXAiLCBmYWxzZSk7Jyk7DQogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIC8vIFNhdmUNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJzYXZlIiwgInt7LmJ1dHRvbi5zYXZlfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBzYXZlUG9wdXBEYXRhKCInICsgZGF0YVR5cGUgKyAnIiwgIicgKyBpZCArICciLCAiZmFsc2UiKTsnKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGNhc2UgIm1hcHBpbmciOg0KICAgICAgICAgICAgY29udGVudC5jcmVhdGVIZWFkbGluZSgie3subWFpbk1lbnUuaXRlbS5tYXBwaW5nfX0iKTsNCiAgICAgICAgICAgIC8vIEFjdGl2ZQ0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gIngtYWN0aXZlIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goZGJLZXkpOw0KICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGFbZGJLZXldOw0KICAgICAgICAgICAgaW5wdXQuaWQgPSAiYWN0aXZlIjsNCiAgICAgICAgICAgIC8vaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpDQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRvZ2dsZUNoYW5uZWxTdGF0dXMoJyIgKyBpZCArICInLCB0aGlzKSIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7Lm1hcHBpbmcuYWN0aXZlLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBDaGFubmVsIG5hbWUNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJ4LW5hbWUiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICBpZiAoQlVMS19FRElUID09IHRydWUpIHsNCiAgICAgICAgICAgICAgICBpbnB1dC5zdHlsZS5ib3JkZXIgPSAic29saWQgMXB4IHJlZCI7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJyZWFkb25seSIsICJ0cnVlIik7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3subWFwcGluZy5jaGFubmVsTmFtZS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgY29udGVudC5kZXNjcmlwdGlvbihkYXRhWyJuYW1lIl0pOw0KICAgICAgICAgICAgLy8gRGVzY3JpcHRpb24NCiAgICAgICAgICAgIHZhciBkYktleSA9ICJ4LWRlc2NyaXB0aW9uIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5tYXBwaW5nLmRlc2NyaXB0aW9uLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5tYXBwaW5nLmRlc2NyaXB0aW9uLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBVcGRhdGUgdGhlIGNoYW5uZWwgbmFtZQ0KICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoIl91dWlkLmtleSIpKSB7DQogICAgICAgICAgICAgICAgaWYgKGRhdGFbIl91dWlkLmtleSJdICE9ICIiKSB7DQogICAgICAgICAgICAgICAgICAgIHZhciBkYktleSA9ICJ4LXVwZGF0ZS1jaGFubmVsLW5hbWUiOw0KICAgICAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KGRiS2V5KTsNCiAgICAgICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YVtkYktleV07DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5tYXBwaW5nLnVwZGF0ZUNoYW5uZWxOYW1lLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgLy8gTG9nbyBVUkwgKENoYW5uZWwpIA0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gInR2Zy1sb2dvIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJpZCIsICJjaGFubmVsLWljb24iKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5tYXBwaW5nLmNoYW5uZWxMb2dvLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBDaGFubmVsIGxvZ28gdXBkYXRlDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAieC11cGRhdGUtY2hhbm5lbC1pY29uIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goZGJLZXkpOw0KICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGFbZGJLZXldOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJpZCIsICJ1cGRhdGUtaWNvbiIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJzsgY2hhbmdlQ2hhbm5lbExvZ28oJyIgKyBpZCArICInKTsiKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5tYXBwaW5nLnVwZGF0ZUNoYW5uZWxMb2dvLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBFeHBhbmQgRVBHIGNhdGVnb3J5DQogICAgICAgICAgICB2YXIgZGJLZXkgPSAieC1jYXRlZ29yeSI7DQogICAgICAgICAgICB2YXIgdGV4dCA9IFsiLSIsICJLaWRzIChFbWJ5IG9ubHkpIiwgIk5ld3MiLCAiTW92aWUiLCAiU2VyaWVzIiwgIlNwb3J0cyJdOw0KICAgICAgICAgICAgdmFyIHZhbHVlcyA9IFsiIiwgIktpZHMiLCAiTmV3cyIsICJNb3ZpZSIsICJTZXJpZXMiLCAiU3BvcnRzIl07DQogICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCBkYXRhW2RiS2V5XSwgZGJLZXkpOw0KICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5tYXBwaW5nLmVwZ0NhdGVnb3J5LnRpdGxlfX0iLCBzZWxlY3QpOw0KICAgICAgICAgICAgLy8gTTNVIGdyb3VwIHRpdGxlDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAieC1ncm91cC10aXRsZSI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5tYXBwaW5nLm0zdUdyb3VwVGl0bGUudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIGlmIChkYXRhWyJncm91cC10aXRsZSJdICE9IHVuZGVmaW5lZCkgew0KICAgICAgICAgICAgICAgIGNvbnRlbnQuZGVzY3JpcHRpb24oZGF0YVsiZ3JvdXAtdGl0bGUiXSk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICAvLyBYTUxUViBmaWxlDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAieC14bWx0di1maWxlIjsNCiAgICAgICAgICAgIHZhciB4bWxGaWxlID0gZGF0YVtkYktleV07DQogICAgICAgICAgICB2YXIgeG1sdHYgPSBuZXcgWE1MVFZGaWxlKCk7DQogICAgICAgICAgICB2YXIgc2VsZWN0ID0geG1sdHYuZ2V0RmlsZXMoZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgibmFtZSIsIGRiS2V5KTsNCiAgICAgICAgICAgIHNlbGVjdC5zZXRBdHRyaWJ1dGUoImlkIiwgInBvcHVwLXhtbHR2Iik7DQogICAgICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJzsgc2V0WG1sdHZDaGFubmVsKCciICsgaWQgKyAiJyx0aGlzKTsiKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5tYXBwaW5nLnhtbHR2RmlsZS50aXRsZX19Iiwgc2VsZWN0KTsNCiAgICAgICAgICAgIHZhciBmaWxlID0gZGF0YVtkYktleV07DQogICAgICAgICAgICAvLyBYTUxUViBNYXBwaW5nDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAieC1tYXBwaW5nIjsNCiAgICAgICAgICAgIHZhciB4bWx0diA9IG5ldyBYTUxUVkZpbGUoKTsNCiAgICAgICAgICAgIHZhciBzZWxlY3QgPSB4bWx0di5nZXRQcm9ncmFtcyhmaWxlLCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJuYW1lIiwgZGJLZXkpOw0KICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgiaWQiLCAicG9wdXAtbWFwcGluZyIpOw0KICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCc7IGNoZWNrWG1sdHZDaGFubmVsKCciICsgaWQgKyAiJyx0aGlzLCciICsgeG1sRmlsZSArICInKTsiKTsNCiAgICAgICAgICAgIHNvcnRTZWxlY3Qoc2VsZWN0KTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5tYXBwaW5nLnhtbHR2Q2hhbm5lbC50aXRsZX19Iiwgc2VsZWN0KTsNCiAgICAgICAgICAgIC8vIFRpbWVzaGlmdA0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gIngtdGltZXNoaWZ0IjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5tYXBwaW5nLnRpbWVzaGlmdC5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoImlkIiwgInRpbWVzaGlmdCIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7Lm1hcHBpbmcudGltZXNoaWZ0LnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBJbnRlcmFjdGlvbg0KICAgICAgICAgICAgY29udGVudC5jcmVhdGVJbnRlcmFjdGlvbigpOw0KICAgICAgICAgICAgLy8gVXBsb2FkIGxvZ28NCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJjYW5jZWwiLCAie3suYnV0dG9uLnVwbG9hZExvZ299fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IHVwbG9hZExvZ28oKTsnKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgLy8gQWJvcnQNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJjYW5jZWwiLCAie3suYnV0dG9uLmNhbmNlbH19Iik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogc2hvd0VsZW1lbnQoInBvcHVwIiwgZmFsc2UpOycpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICAvLyBGaW5pc2hlZA0KICAgICAgICAgICAgdmFyIGlkcyA9IFtdOw0KICAgICAgICAgICAgaWRzID0gZ2V0QWxsU2VsZWN0ZWRDaGFubmVscygpOw0KICAgICAgICAgICAgaWYgKGlkcy5sZW5ndGggPT0gMCkgew0KICAgICAgICAgICAgICAgIGlkcy5wdXNoKGlkKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJzYXZlIiwgInt7LmJ1dHRvbi5kb25lfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBkb25lUG9wdXBEYXRhKCInICsgZGF0YVR5cGUgKyAnIiwgIicgKyBpZHMgKyAnIiwgImZhbHNlIik7Jyk7DQogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBkZWZhdWx0Og0KICAgICAgICAgICAgYnJlYWs7DQogICAgfQ0KICAgIHNob3dQb3BVcEVsZW1lbnQoJ3BvcHVwLWN1c3RvbScpOw0KfQ0KY2xhc3MgWE1MVFZGaWxlIHsNCiAgICBnZXRGaWxlcyhzZXQpIHsNCiAgICAgICAgbGV0IGZpbGVJRHMgPSBnZXRPYmpLZXlzKFNFUlZFUlsieGVwZyJdWyJ4bWx0dk1hcCJdKTsNCiAgICAgICAgbGV0IHZhbHVlcyA9IG5ldyBBcnJheSgiLSIpOw0KICAgICAgICBsZXQgdGV4dCA9IG5ldyBBcnJheSgiLSIpOw0KICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGZpbGVJRHMubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgICAgIGlmIChmaWxlSURzW2ldICE9ICJ4VGVWZSBEdW1teSIpIHsNCiAgICAgICAgICAgICAgICB2YWx1ZXMucHVzaChnZXRWYWx1ZUZyb21Qcm92aWRlckZpbGUoZmlsZUlEc1tpXSwgInhtbHR2IiwgImZpbGUueHRldmUiKSk7DQogICAgICAgICAgICAgICAgdGV4dC5wdXNoKGdldFZhbHVlRnJvbVByb3ZpZGVyRmlsZShmaWxlSURzW2ldLCAieG1sdHYiLCAibmFtZSIpKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgICAgIHZhbHVlcy5wdXNoKGZpbGVJRHNbaV0pOw0KICAgICAgICAgICAgICAgIHRleHQucHVzaChmaWxlSURzW2ldKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KICAgICAgICBsZXQgc2VsZWN0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiU0VMRUNUIik7DQogICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGV4dC5sZW5ndGg7IGkrKykgew0KICAgICAgICAgICAgdmFyIG9wdGlvbiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIk9QVElPTiIpOw0KICAgICAgICAgICAgb3B0aW9uLnNldEF0dHJpYnV0ZSgidmFsdWUiLCB2YWx1ZXNbaV0pOw0KICAgICAgICAgICAgb3B0aW9uLmlubmVyVGV4dCA9IHRleHRbaV07DQogICAgICAgICAgICBzZWxlY3QuYXBwZW5kQ2hpbGQob3B0aW9uKTsNCiAgICAgICAgfQ0KICAgICAgICBpZiAoc2V0ICE9ICIiKSB7DQogICAgICAgICAgICBzZWxlY3QudmFsdWUgPSBzZXQ7DQogICAgICAgIH0NCiAgICAgICAgcmV0dXJuIHNlbGVjdDsNCiAgICB9DQogICAgZ2V0UHJvZ3JhbXMoZmlsZSwgc2V0KSB7DQogICAgICAgIC8vdmFyIGZpbGVJRHM6c3RyaW5nW10gPSBnZXRPYmpLZXlzKFNFUlZFUlsieGVwZyJdWyJ4bWx0dk1hcCJdKQ0KICAgICAgICBsZXQgdmFsdWVzID0gZ2V0T2JqS2V5cyhTRVJWRVJbInhlcGciXVsieG1sdHZNYXAiXVtmaWxlXSk7DQogICAgICAgIGxldCB0ZXh0ID0gW107DQogICAgICAgIGxldCBmcmllbmRseU5hbWU7DQogICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdmFsdWVzLmxlbmd0aDsgaSsrKSB7DQogICAgICAgICAgICBpZiAoU0VSVkVSWyJ4ZXBnIl1bInhtbHR2TWFwIl1bZmlsZV1bdmFsdWVzW2ldXS5oYXNPd25Qcm9wZXJ0eSgnZnJpZW5kbHktbmFtZScpID09IHRydWUpIHsNCiAgICAgICAgICAgICAgICBmcmllbmRseU5hbWUgPSBTRVJWRVJbInhlcGciXVsieG1sdHZNYXAiXVtmaWxlXVt2YWx1ZXNbaV1dWyJmcmllbmRseS1uYW1lIl07DQogICAgICAgICAgICB9DQogICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICBmcmllbmRseU5hbWUgPSAiLSI7DQogICAgICAgICAgICB9DQogICAgICAgICAgICB0ZXh0W2ldID0gZnJpZW5kbHlOYW1lICsgIiAoIiArIHZhbHVlc1tpXSArICIpIjsNCiAgICAgICAgfQ0KICAgICAgICB0ZXh0LnVuc2hpZnQoIi0iKTsNCiAgICAgICAgdmFsdWVzLnVuc2hpZnQoIi0iKTsNCiAgICAgICAgbGV0IHNlbGVjdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlNFTEVDVCIpOw0KICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRleHQubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgICAgIHZhciBvcHRpb24gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJPUFRJT04iKTsNCiAgICAgICAgICAgIG9wdGlvbi5zZXRBdHRyaWJ1dGUoInZhbHVlIiwgdmFsdWVzW2ldKTsNCiAgICAgICAgICAgIG9wdGlvbi5pbm5lclRleHQgPSB0ZXh0W2ldOw0KICAgICAgICAgICAgc2VsZWN0LmFwcGVuZENoaWxkKG9wdGlvbik7DQogICAgICAgIH0NCiAgICAgICAgaWYgKHNldCAhPSAiIikgew0KICAgICAgICAgICAgc2VsZWN0LnZhbHVlID0gc2V0Ow0KICAgICAgICB9DQogICAgICAgIGlmIChzZWxlY3QudmFsdWUgIT0gc2V0KSB7DQogICAgICAgICAgICBzZWxlY3QudmFsdWUgPSAiLSI7DQogICAgICAgIH0NCiAgICAgICAgcmV0dXJuIHNlbGVjdDsNCiAgICB9DQp9DQpmdW5jdGlvbiBnZXRWYWx1ZUZyb21Qcm92aWRlckZpbGUoZmlsZSwgZmlsZVR5cGUsIGtleSkgew0KICAgIGlmIChmaWxlID09ICJ4VGVWZSBEdW1teSIpIHsNCiAgICAgICAgcmV0dXJuIGZpbGU7DQogICAgfQ0KICAgIGxldCBmaWxlSUQ7DQogICAgbGV0IGluZGljYXRvciA9IGZpbGUuY2hhckF0KDApOw0KICAgIHN3aXRjaCAoaW5kaWNhdG9yKSB7DQogICAgICAgIGNhc2UgIk0iOg0KICAgICAgICAgICAgZmlsZVR5cGUgPSAibTN1IjsNCiAgICAgICAgICAgIGZpbGVJRCA9IGZpbGU7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSAiSCI6DQogICAgICAgICAgICBmaWxlVHlwZSA9ICJoZGhyIjsNCiAgICAgICAgICAgIGZpbGVJRCA9IGZpbGU7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSAiWCI6DQogICAgICAgICAgICBmaWxlVHlwZSA9ICJ4bWx0diI7DQogICAgICAgICAgICBmaWxlSUQgPSBmaWxlLnN1YnN0cmluZygwLCBmaWxlLmxhc3RJbmRleE9mKCcuJykpOw0KICAgICAgICAgICAgYnJlYWs7DQogICAgfQ0KICAgIGlmIChTRVJWRVJbInNldHRpbmdzIl1bImZpbGVzIl1bZmlsZVR5cGVdLmhhc093blByb3BlcnR5KGZpbGVJRCkgPT0gdHJ1ZSkgew0KICAgICAgICB2YXIgZGF0YSA9IFNFUlZFUlsic2V0dGluZ3MiXVsiZmlsZXMiXVtmaWxlVHlwZV1bZmlsZUlEXTsNCiAgICAgICAgcmV0dXJuIGRhdGFba2V5XTsNCiAgICB9DQogICAgcmV0dXJuOw0KfQ0KZnVuY3Rpb24gc2V0WG1sdHZDaGFubmVsKGlkLCBlbGVtZW50KSB7DQogICAgbGV0IHhtbHR2ID0gbmV3IFhNTFRWRmlsZSgpOw0KICAgIGxldCB4bWxGaWxlID0gZWxlbWVudC52YWx1ZTsNCiAgICBsZXQgdHZnSWQgPSBTRVJWRVJbInhlcGciXVsiZXBnTWFwcGluZyJdW2lkXVsidHZnLWlkIl07DQogICAgbGV0IHRkID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInBvcHVwLW1hcHBpbmciKS5wYXJlbnRFbGVtZW50Ow0KICAgIHRkLmlubmVySFRNTCA9ICIiOw0KICAgIGxldCBzZWxlY3QgPSB4bWx0di5nZXRQcm9ncmFtcyhlbGVtZW50LnZhbHVlLCB0dmdJZCk7DQogICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgibmFtZSIsICJ4LW1hcHBpbmciKTsNCiAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJpZCIsICJwb3B1cC1tYXBwaW5nIik7DQogICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCc7IGNoZWNrWG1sdHZDaGFubmVsKCciICsgaWQgKyAiJyx0aGlzLCciICsgeG1sRmlsZSArICInKTsiKTsNCiAgICBzZWxlY3QuY2xhc3NOYW1lID0gImNoYW5nZWQiOw0KICAgIHNvcnRTZWxlY3Qoc2VsZWN0KTsNCiAgICB0ZC5hcHBlbmRDaGlsZChzZWxlY3QpOw0KICAgIGNoZWNrWG1sdHZDaGFubmVsKGlkLCBzZWxlY3QsIHhtbEZpbGUpOw0KfQ0KZnVuY3Rpb24gY2hlY2tYbWx0dkNoYW5uZWwoaWQsIGVsZW1lbnQsIHhtbEZpbGUpIHsNCiAgICBsZXQgdmFsdWUgPSBlbGVtZW50LnZhbHVlOw0KICAgIGxldCBib29sOw0KICAgIGxldCBjaGVja2JveCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdhY3RpdmUnKTsNCiAgICBsZXQgY2hhbm5lbCA9IFNFUlZFUlsieGVwZyJdWyJlcGdNYXBwaW5nIl1baWRdOw0KICAgIGxldCB1cGRhdGVMb2dvOw0KICAgIGJvb2wgPSB2YWx1ZSAhPSAiLSI7DQogICAgY2hlY2tib3guY2hlY2tlZCA9IGJvb2w7DQogICAgY2hlY2tib3guY2xhc3NOYW1lID0gImNoYW5nZWQiOw0KICAgIGNvbnNvbGUubG9nKHhtbEZpbGUpOw0KICAgIC8vIFVwZGF0ZSBjaGFubmVsIGxvZ28NCiAgICAvKg0KICAgIHVwZGF0ZUxvZ28gPSAoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInVwZGF0ZS1pY29uIikgYXMgSFRNTElucHV0RWxlbWVudCkuY2hlY2tlZA0KICAgIGNvbnNvbGUubG9nKHVwZGF0ZUxvZ28pOw0KICAgICovDQogICAgaWYgKHhtbEZpbGUgIT0gInhUZVZlIER1bW15IiAmJiBib29sID09IHRydWUpIHsNCiAgICAgICAgLy8oZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInVwZGF0ZS1pY29uIikgYXMgSFRNTElucHV0RWxlbWVudCkuY2hlY2tlZCA9IHRydWU7DQogICAgICAgIC8vKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ1cGRhdGUtaWNvbiIpIGFzIEhUTUxJbnB1dEVsZW1lbnQpLmNsYXNzTmFtZSA9ICJjaGFuZ2VkIjsNCiAgICAgICAgY29uc29sZS5sb2coIklEIiwgaWQpOw0KICAgICAgICBjaGFuZ2VDaGFubmVsTG9nbyhpZCk7DQogICAgICAgIHJldHVybjsNCiAgICB9DQogICAgaWYgKHhtbEZpbGUgPT0gInhUZVZlIER1bW15Iikgew0KICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidXBkYXRlLWljb24iKS5jaGVja2VkID0gZmFsc2U7DQogICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ1cGRhdGUtaWNvbiIpLmNsYXNzTmFtZSA9ICJjaGFuZ2VkIjsNCiAgICB9DQogICAgcmV0dXJuOw0KfQ0KZnVuY3Rpb24gY2hhbmdlQ2hhbm5lbExvZ28oaWQpIHsNCiAgICBsZXQgdXBkYXRlTG9nbzsNCiAgICBsZXQgY2hhbm5lbCA9IFNFUlZFUlsieGVwZyJdWyJlcGdNYXBwaW5nIl1baWRdOw0KICAgIGxldCBmID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInBvcHVwLXhtbHR2Iik7DQogICAgbGV0IHhtbHR2RmlsZSA9IGYub3B0aW9uc1tmLnNlbGVjdGVkSW5kZXhdLnZhbHVlOw0KICAgIGxldCBtID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInBvcHVwLW1hcHBpbmciKTsNCiAgICBsZXQgeE1hcHBpbmcgPSBtLm9wdGlvbnNbbS5zZWxlY3RlZEluZGV4XS52YWx1ZTsNCiAgICBsZXQgeG1sdHZMb2dvID0gU0VSVkVSWyJ4ZXBnIl1bInhtbHR2TWFwIl1beG1sdHZGaWxlXVt4TWFwcGluZ11bImljb24iXTsNCiAgICB1cGRhdGVMb2dvID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInVwZGF0ZS1pY29uIikuY2hlY2tlZDsNCiAgICBpZiAodXBkYXRlTG9nbyA9PSB0cnVlICYmIHhtbHR2RmlsZSAhPSAieFRlVmUgRHVtbXkiKSB7DQogICAgICAgIGlmIChTRVJWRVJbInhlcGciXVsieG1sdHZNYXAiXVt4bWx0dkZpbGVdLmhhc093blByb3BlcnR5KHhNYXBwaW5nKSkgew0KICAgICAgICAgICAgdmFyIGxvZ28gPSB4bWx0dkxvZ287DQogICAgICAgIH0NCiAgICAgICAgZWxzZSB7DQogICAgICAgICAgICBsb2dvID0gY2hhbm5lbFsidHZnLWxvZ28iXTsNCiAgICAgICAgfQ0KICAgICAgICB2YXIgbG9nb0lucHV0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNoYW5uZWwtaWNvbiIpOw0KICAgICAgICBsb2dvSW5wdXQudmFsdWUgPSBsb2dvOw0KICAgICAgICBpZiAoQlVMS19FRElUID09IGZhbHNlKSB7DQogICAgICAgICAgICBsb2dvSW5wdXQuY2xhc3NOYW1lID0gImNoYW5nZWQiOw0KICAgICAgICB9DQogICAgfQ0KfQ0KZnVuY3Rpb24gc2F2ZVBvcHVwRGF0YShkYXRhVHlwZSwgaWQsIHJlbW92ZSwgb3B0aW9uKSB7DQogICAgaWYgKGRhdGFUeXBlID09ICJtYXBwaW5nIikgew0KICAgICAgICBsZXQgZGF0YSA9IHt9Ow0KICAgICAgICBjb25zb2xlLmxvZygiU2F2ZSBtYXBwaW5nIGRhdGEiKTsNCiAgICAgICAgbGV0IGNtZCA9ICJzYXZlRXBnTWFwcGluZyI7DQogICAgICAgIGRhdGFbImVwZ01hcHBpbmciXSA9IFNFUlZFUlsieGVwZyJdWyJlcGdNYXBwaW5nIl07DQogICAgICAgIGNvbnNvbGUubG9nKCJTRU5EIFRPIFNFUlZFUiIpOw0KICAgICAgICBsZXQgc2VydmVyID0gbmV3IFNlcnZlcihjbWQpOw0KICAgICAgICBzZXJ2ZXIucmVxdWVzdChkYXRhKTsNCiAgICAgICAgZGVsZXRlIFVORE9bImVwZ01hcHBpbmciXTsNCiAgICAgICAgcmV0dXJuOw0KICAgIH0NCiAgICBjb25zb2xlLmxvZygiU2F2ZSBwb3B1cCBkYXRhIik7DQogICAgbGV0IGRpdiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJwb3B1cC1jdXN0b20iKTsNCiAgICBsZXQgaW5wdXRzID0gZGl2LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJUQUJMRSIpWzBdLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJJTlBVVCIpOw0KICAgIGxldCBzZWxlY3RzID0gZGl2LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJUQUJMRSIpWzBdLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJTRUxFQ1QiKTsNCiAgICBsZXQgaW5wdXQgPSB7fTsNCiAgICBsZXQgY29uZmlybU1zZzsNCiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHNlbGVjdHMubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgdmFyIG5hbWU7DQogICAgICAgIG5hbWUgPSBzZWxlY3RzW2ldLm5hbWU7DQogICAgICAgIHZhciB2YWx1ZSA9IHNlbGVjdHNbaV0udmFsdWU7DQogICAgICAgIHN3aXRjaCAobmFtZSkgew0KICAgICAgICAgICAgY2FzZSAidHVuZXIiOg0KICAgICAgICAgICAgICAgIGlucHV0W25hbWVdID0gcGFyc2VJbnQodmFsdWUpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgICAgICBpbnB1dFtuYW1lXSA9IHZhbHVlOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICB9DQogICAgfQ0KICAgIGZvciAobGV0IGkgPSAwOyBpIDwgaW5wdXRzLmxlbmd0aDsgaSsrKSB7DQogICAgICAgIHN3aXRjaCAoaW5wdXRzW2ldLnR5cGUpIHsNCiAgICAgICAgICAgIGNhc2UgImNoZWNrYm94IjoNCiAgICAgICAgICAgICAgICBuYW1lID0gaW5wdXRzW2ldLm5hbWU7DQogICAgICAgICAgICAgICAgaW5wdXRbbmFtZV0gPSBpbnB1dHNbaV0uY2hlY2tlZDsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInRleHQiOg0KICAgICAgICAgICAgY2FzZSAiaGlkZGVuIjoNCiAgICAgICAgICAgIGNhc2UgInBhc3N3b3JkIjoNCiAgICAgICAgICAgICAgICBuYW1lID0gaW5wdXRzW2ldLm5hbWU7DQogICAgICAgICAgICAgICAgc3dpdGNoIChuYW1lKSB7DQogICAgICAgICAgICAgICAgICAgIGNhc2UgInR1bmVyIjoNCiAgICAgICAgICAgICAgICAgICAgICAgIGlucHV0W25hbWVdID0gcGFyc2VJbnQoaW5wdXRzW2ldLnZhbHVlKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgICAgICBkZWZhdWx0Og0KICAgICAgICAgICAgICAgICAgICAgICAgaW5wdXRbbmFtZV0gPSBpbnB1dHNbaV0udmFsdWU7DQogICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIH0NCiAgICB9DQogICAgbGV0IGRhdGEgPSB7fTsNCiAgICBsZXQgY21kOw0KICAgIGlmIChyZW1vdmUgPT0gdHJ1ZSkgew0KICAgICAgICBpbnB1dFsiZGVsZXRlIl0gPSB0cnVlOw0KICAgIH0NCiAgICBzd2l0Y2ggKGRhdGFUeXBlKSB7DQogICAgICAgIGNhc2UgInVzZXJzIjoNCiAgICAgICAgICAgIGNvbmZpcm1Nc2cgPSAiRGVsZXRlIHRoaXMgdXNlcj8iOw0KICAgICAgICAgICAgaWYgKGlkID09ICItIikgew0KICAgICAgICAgICAgICAgIGNtZCA9ICJzYXZlTmV3VXNlciI7DQogICAgICAgICAgICAgICAgZGF0YVsidXNlckRhdGEiXSA9IGlucHV0Ow0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgZWxzZSB7DQogICAgICAgICAgICAgICAgY21kID0gInNhdmVVc2VyRGF0YSI7DQogICAgICAgICAgICAgICAgbGV0IGQgPSB7fTsNCiAgICAgICAgICAgICAgICBkW2lkXSA9IGlucHV0Ow0KICAgICAgICAgICAgICAgIGRhdGFbInVzZXJEYXRhIl0gPSBkOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGNhc2UgIm0zdSI6DQogICAgICAgICAgICBjb25maXJtTXNnID0gIkRlbGV0ZSB0aGlzIHBsYXlsaXN0PyI7DQogICAgICAgICAgICBzd2l0Y2ggKG9wdGlvbikgew0KICAgICAgICAgICAgICAgIC8vIFBvcHVwOiBTYXZlDQogICAgICAgICAgICAgICAgY2FzZSAwOg0KICAgICAgICAgICAgICAgICAgICBjbWQgPSAic2F2ZUZpbGVzTTNVIjsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgLy8gUG9wdXA6IFVwZGF0ZQ0KICAgICAgICAgICAgICAgIGNhc2UgMToNCiAgICAgICAgICAgICAgICAgICAgY21kID0gInVwZGF0ZUZpbGVNM1UiOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGRhdGFbImZpbGVzIl0gPSB7fTsNCiAgICAgICAgICAgIGRhdGFbImZpbGVzIl1bZGF0YVR5cGVdID0ge307DQogICAgICAgICAgICBkYXRhWyJmaWxlcyJdW2RhdGFUeXBlXVtpZF0gPSBpbnB1dDsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJoZGhyIjoNCiAgICAgICAgICAgIGNvbmZpcm1Nc2cgPSAiRGVsZXRlIHRoaXMgSERIb21lUnVuIHR1bmVyPyI7DQogICAgICAgICAgICBzd2l0Y2ggKG9wdGlvbikgew0KICAgICAgICAgICAgICAgIC8vIFBvcHVwOiBTYXZlDQogICAgICAgICAgICAgICAgY2FzZSAwOg0KICAgICAgICAgICAgICAgICAgICBjbWQgPSAic2F2ZUZpbGVzSERIUiI7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIC8vIFBvcHVwOiBVcGRhdGUNCiAgICAgICAgICAgICAgICBjYXNlIDE6DQogICAgICAgICAgICAgICAgICAgIGNtZCA9ICJ1cGRhdGVGaWxlSERIUiI7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgZGF0YVsiZmlsZXMiXSA9IHt9Ow0KICAgICAgICAgICAgZGF0YVsiZmlsZXMiXVtkYXRhVHlwZV0gPSB7fTsNCiAgICAgICAgICAgIGRhdGFbImZpbGVzIl1bZGF0YVR5cGVdW2lkXSA9IGlucHV0Ow0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGNhc2UgInhtbHR2IjoNCiAgICAgICAgICAgIGNvbmZpcm1Nc2cgPSAiRGVsZXRlIHRoaXMgWE1MVFYgZmlsZT8iOw0KICAgICAgICAgICAgc3dpdGNoIChvcHRpb24pIHsNCiAgICAgICAgICAgICAgICAvLyBQb3B1cDogU2F2ZQ0KICAgICAgICAgICAgICAgIGNhc2UgMDoNCiAgICAgICAgICAgICAgICAgICAgY21kID0gInNhdmVGaWxlc1hNTFRWIjsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgLy8gUG9wdXA6IFVwZGF0ZQ0KICAgICAgICAgICAgICAgIGNhc2UgMToNCiAgICAgICAgICAgICAgICAgICAgY21kID0gInVwZGF0ZUZpbGVYTUxUViI7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgZGF0YVsiZmlsZXMiXSA9IHt9Ow0KICAgICAgICAgICAgZGF0YVsiZmlsZXMiXVtkYXRhVHlwZV0gPSB7fTsNCiAgICAgICAgICAgIGRhdGFbImZpbGVzIl1bZGF0YVR5cGVdW2lkXSA9IGlucHV0Ow0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGNhc2UgImZpbHRlciI6DQogICAgICAgICAgICBjb25maXJtTXNnID0gIkRlbGV0ZSB0aGlzIGZpbHRlcj8iOw0KICAgICAgICAgICAgY21kID0gInNhdmVGaWx0ZXIiOw0KICAgICAgICAgICAgZGF0YVsiZmlsdGVyIl0gPSB7fTsNCiAgICAgICAgICAgIGRhdGFbImZpbHRlciJdW2lkXSA9IGlucHV0Ow0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICBjb25zb2xlLmxvZyhkYXRhVHlwZSwgaWQpOw0KICAgICAgICAgICAgcmV0dXJuOw0KICAgIH0NCiAgICBpZiAocmVtb3ZlID09IHRydWUpIHsNCiAgICAgICAgaWYgKCFjb25maXJtKGNvbmZpcm1Nc2cpKSB7DQogICAgICAgICAgICBzaG93RWxlbWVudCgicG9wdXAiLCBmYWxzZSk7DQogICAgICAgICAgICByZXR1cm47DQogICAgICAgIH0NCiAgICB9DQogICAgY29uc29sZS5sb2coIlNFTkQgVE8gU0VSVkVSIik7DQogICAgY29uc29sZS5sb2coZGF0YSk7DQogICAgbGV0IHNlcnZlciA9IG5ldyBTZXJ2ZXIoY21kKTsNCiAgICBzZXJ2ZXIucmVxdWVzdChkYXRhKTsNCn0NCmZ1bmN0aW9uIGRvbmVQb3B1cERhdGEoZGF0YVR5cGUsIGlkc1N0cikgew0KICAgIGxldCBpZHMgPSBpZHNTdHIuc3BsaXQoJywnKTsNCiAgICBsZXQgZGl2ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInBvcHVwLWN1c3RvbSIpOw0KICAgIGxldCBpbnB1dHMgPSBkaXYuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSgiY2hhbmdlZCIpOw0KICAgIGlkcy5mb3JFYWNoKGlkID0+IHsNCiAgICAgICAgbGV0IGlucHV0Ow0KICAgICAgICBpbnB1dCA9IFNFUlZFUlsieGVwZyJdWyJlcGdNYXBwaW5nIl1baWRdOw0KICAgICAgICBjb25zb2xlLmxvZyhpbnB1dCk7DQogICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgaW5wdXRzLmxlbmd0aDsgaSsrKSB7DQogICAgICAgICAgICBsZXQgbmFtZTsNCiAgICAgICAgICAgIGxldCB2YWx1ZTsNCiAgICAgICAgICAgIHN3aXRjaCAoaW5wdXRzW2ldLnRhZ05hbWUpIHsNCiAgICAgICAgICAgICAgICBjYXNlICJJTlBVVCI6DQogICAgICAgICAgICAgICAgICAgIHN3aXRjaCAoaW5wdXRzW2ldLnR5cGUpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgImNoZWNrYm94IjoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lID0gaW5wdXRzW2ldLm5hbWU7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSBpbnB1dHNbaV0uY2hlY2tlZDsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnB1dFtuYW1lXSA9IHZhbHVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAidGV4dCI6DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZSA9IGlucHV0c1tpXS5uYW1lOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlID0gaW5wdXRzW2ldLnZhbHVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlucHV0W25hbWVdID0gdmFsdWU7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAiU0VMRUNUIjoNCiAgICAgICAgICAgICAgICAgICAgbmFtZSA9IGlucHV0c1tpXS5uYW1lOw0KICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IGlucHV0c1tpXS52YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgaW5wdXRbbmFtZV0gPSB2YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBzd2l0Y2ggKG5hbWUpIHsNCiAgICAgICAgICAgICAgICBjYXNlICJ0dmctbG9nbyI6DQogICAgICAgICAgICAgICAgICAgIC8vKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5jaGlsZE5vZGVzWzJdLmZpcnN0Q2hpbGQgYXMgSFRNTEVsZW1lbnQpLnNldEF0dHJpYnV0ZSgic3JjIiwgdmFsdWUpDQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgIngtbmFtZSI6DQogICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5jaGlsZE5vZGVzWzNdLmZpcnN0Q2hpbGQuaW5uZXJIVE1MID0gdmFsdWU7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgIngtY2F0ZWdvcnkiOg0KICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkuY2hpbGROb2Rlc1szXS5maXJzdENoaWxkLmNsYXNzTmFtZSA9IHZhbHVlOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBjYXNlICJ4LWdyb3VwLXRpdGxlIjoNCiAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpLmNoaWxkTm9kZXNbNV0uZmlyc3RDaGlsZC5pbm5lckhUTUwgPSB2YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAieC14bWx0di1maWxlIjoNCiAgICAgICAgICAgICAgICAgICAgaWYgKHZhbHVlICE9ICJ4VGVWZSBEdW1teSIgJiYgdmFsdWUgIT0gIi0iKSB7DQogICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IGdldFZhbHVlRnJvbVByb3ZpZGVyRmlsZSh2YWx1ZSwgInhtbHR2IiwgIm5hbWUiKTsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBpZiAodmFsdWUgPT0gIi0iKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBpbnB1dFsieC1hY3RpdmUiXSA9IGZhbHNlOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5jaGlsZE5vZGVzWzZdLmZpcnN0Q2hpbGQuaW5uZXJIVE1MID0gdmFsdWU7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgIngtbWFwcGluZyI6DQogICAgICAgICAgICAgICAgICAgIGlmICh2YWx1ZSA9PSAiLSIpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGlucHV0WyJ4LWFjdGl2ZSJdID0gZmFsc2U7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpLmNoaWxkTm9kZXNbN10uZmlyc3RDaGlsZC5pbm5lckhUTUwgPSB2YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAieC10aW1lc2hpZnQiOg0KICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkuY2hpbGROb2Rlc1s4XS5maXJzdENoaWxkLmlubmVySFRNTCA9IHZhbHVlOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBkZWZhdWx0Og0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgY3JlYXRlU2VhcmNoT2JqKCk7DQogICAgICAgICAgICBzZWFyY2hJbk1hcHBpbmcoKTsNCiAgICAgICAgfQ0KICAgICAgICBpZiAoaW5wdXRbIngtYWN0aXZlIl0gPT0gZmFsc2UpIHsNCiAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5jbGFzc05hbWUgPSAibm90QWN0aXZlRVBHIjsNCiAgICAgICAgfQ0KICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5jbGFzc05hbWUgPSAiYWN0aXZlRVBHIjsNCiAgICAgICAgfQ0KICAgICAgICBjb25zb2xlLmxvZyhpbnB1dFsidHZnLWxvZ28iXSk7DQogICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5jaGlsZE5vZGVzWzJdLmZpcnN0Q2hpbGQuc2V0QXR0cmlidXRlKCJzcmMiLCBpbnB1dFsidHZnLWxvZ28iXSk7DQogICAgfSk7DQogICAgc2hvd0VsZW1lbnQoInBvcHVwIiwgZmFsc2UpOw0KICAgIHJldHVybjsNCn0NCmZ1bmN0aW9uIHNob3dQcmV2aWV3KGVsZW1lbnQpIHsNCiAgICBsZXQgZGl2ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm15U3RyZWFtc0JveCIpOw0KICAgIHN3aXRjaCAoZWxlbWVudCkgew0KICAgICAgICBjYXNlIGZhbHNlOg0KICAgICAgICAgICAgZGl2LmNsYXNzTmFtZSA9ICJub3RWaXNpYmxlIjsNCiAgICAgICAgICAgIHJldHVybjsNCiAgICB9DQogICAgbGV0IHN0cmVhbXMgPSBbImFjdGl2ZVN0cmVhbXMiLCAiaW5hY3RpdmVTdHJlYW1zIl07DQogICAgc3RyZWFtcy5mb3JFYWNoKHByZXZpZXcgPT4gew0KICAgICAgICBsZXQgdGFibGUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChwcmV2aWV3KTsNCiAgICAgICAgdGFibGUuaW5uZXJIVE1MID0gIiI7DQogICAgICAgIGxldCBvYmogPSBTRVJWRVJbImRhdGEiXVsiU3RyZWFtUHJldmlld1VJIl1bcHJldmlld107DQogICAgICAgIG9iai5mb3JFYWNoKGNoYW5uZWwgPT4gew0KICAgICAgICAgICAgbGV0IHRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVFIiKTsNCiAgICAgICAgICAgIGxldCB0ZEtleSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICBsZXQgdGRWYWwgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgdGRLZXkuY2xhc3NOYW1lID0gInRkS2V5IjsNCiAgICAgICAgICAgIHRkVmFsLmNsYXNzTmFtZSA9ICJ0ZFZhbCI7DQogICAgICAgICAgICBzd2l0Y2ggKHByZXZpZXcpIHsNCiAgICAgICAgICAgICAgICBjYXNlICJhY3RpdmVTdHJlYW1zIjoNCiAgICAgICAgICAgICAgICAgICAgdGRLZXkuaW5uZXJUZXh0ID0gIkNoYW5uZWw6ICgrKSI7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgImluYWN0aXZlU3RyZWFtcyI6DQogICAgICAgICAgICAgICAgICAgIHRkS2V5LmlubmVyVGV4dCA9ICJDaGFubmVsOiAoLSkiOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIHRkVmFsLmlubmVyVGV4dCA9IGNoYW5uZWw7DQogICAgICAgICAgICB0ci5hcHBlbmRDaGlsZCh0ZEtleSk7DQogICAgICAgICAgICB0ci5hcHBlbmRDaGlsZCh0ZFZhbCk7DQogICAgICAgICAgICB0YWJsZS5hcHBlbmRDaGlsZCh0cik7DQogICAgICAgIH0pOw0KICAgIH0pOw0KICAgIHNob3dFbGVtZW50KCJsb2FkaW5nIiwgZmFsc2UpOw0KICAgIGRpdi5jbGFzc05hbWUgPSAidmlzaWJsZSI7DQogICAgcmV0dXJuOw0KfQ0K" + webUI["html/js/menu_ts.js"] = "Y2xhc3MgTWFpbk1lbnUgew0KICAgIGNvbnN0cnVjdG9yKCkgew0KICAgICAgICB0aGlzLkRvY3VtZW50SUQgPSAibWFpbi1tZW51IjsNCiAgICAgICAgdGhpcy5IVE1MVGFnID0gIkxJIjsNCiAgICAgICAgdGhpcy5JbWFnZVBhdGggPSAiaW1nLyI7DQogICAgfQ0KICAgIGNyZWF0ZUlNRyhzcmMpIHsNCiAgICAgICAgbGV0IGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJJTUciKTsNCiAgICAgICAgZWxlbWVudC5zZXRBdHRyaWJ1dGUoInNyYyIsIHRoaXMuSW1hZ2VQYXRoICsgc3JjKTsNCiAgICAgICAgcmV0dXJuIGVsZW1lbnQ7DQogICAgfQ0KICAgIGNyZWF0ZVZhbHVlKHZhbHVlKSB7DQogICAgICAgIGxldCBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiUCIpOw0KICAgICAgICBlbGVtZW50LmlubmVySFRNTCA9IHZhbHVlOw0KICAgICAgICByZXR1cm4gZWxlbWVudDsNCiAgICB9DQp9DQpjbGFzcyBNYWluTWVudUl0ZW0gZXh0ZW5kcyBNYWluTWVudSB7DQogICAgY29uc3RydWN0b3IobWVudUtleSwgdmFsdWUsIGltYWdlLCBoZWFkbGluZSkgew0KICAgICAgICBzdXBlcigpOw0KICAgICAgICB0aGlzLm1lbnVLZXkgPSBtZW51S2V5Ow0KICAgICAgICB0aGlzLnZhbHVlID0gdmFsdWU7DQogICAgICAgIHRoaXMuaW1nU3JjID0gaW1hZ2U7DQogICAgICAgIHRoaXMuaGVhZGxpbmUgPSBoZWFkbGluZTsNCiAgICB9DQogICAgY3JlYXRlSXRlbSgpIHsNCiAgICAgICAgbGV0IGl0ZW0gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJMSSIpOw0KICAgICAgICBpdGVtLnNldEF0dHJpYnV0ZSgib25jbGljayIsICJqYXZhc2NyaXB0OiBvcGVuVGhpc01lbnUodGhpcykiKTsNCiAgICAgICAgaXRlbS5zZXRBdHRyaWJ1dGUoImlkIiwgdGhpcy5pZCk7DQogICAgICAgIGxldCBpbWcgPSB0aGlzLmNyZWF0ZUlNRyh0aGlzLmltZ1NyYyk7DQogICAgICAgIGxldCB2YWx1ZSA9IHRoaXMuY3JlYXRlVmFsdWUodGhpcy52YWx1ZSk7DQogICAgICAgIGl0ZW0uYXBwZW5kQ2hpbGQoaW1nKTsNCiAgICAgICAgaXRlbS5hcHBlbmRDaGlsZCh2YWx1ZSk7DQogICAgICAgIGxldCBkb2MgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCh0aGlzLkRvY3VtZW50SUQpOw0KICAgICAgICBkb2MuYXBwZW5kQ2hpbGQoaXRlbSk7DQogICAgICAgIHN3aXRjaCAodGhpcy5tZW51S2V5KSB7DQogICAgICAgICAgICBjYXNlICJwbGF5bGlzdCI6DQogICAgICAgICAgICAgICAgdGhpcy50YWJsZUhlYWRlciA9IFsie3sucGxheWxpc3QudGFibGUucGxheWxpc3R9fSIsICJ7ey5wbGF5bGlzdC50YWJsZS50dW5lcn19IiwgInt7LnBsYXlsaXN0LnRhYmxlLmxhc3RVcGRhdGV9fSIsICJ7ey5wbGF5bGlzdC50YWJsZS5hdmFpbGFiaWxpdHl9fSAlIiwgInt7LnBsYXlsaXN0LnRhYmxlLnR5cGV9fSIsICJ7ey5wbGF5bGlzdC50YWJsZS5zdHJlYW1zfX0iLCAie3sucGxheWxpc3QudGFibGUuZ3JvdXBUaXRsZX19ICUiLCAie3sucGxheWxpc3QudGFibGUudHZnSUR9fSAlIiwgInt7LnBsYXlsaXN0LnRhYmxlLnVuaXF1ZUlEfX0gJSJdOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAieG1sdHYiOg0KICAgICAgICAgICAgICAgIHRoaXMudGFibGVIZWFkZXIgPSBbInt7LnhtbHR2LnRhYmxlLmd1aWRlfX0iLCAie3sueG1sdHYudGFibGUubGFzdFVwZGF0ZX19IiwgInt7LnhtbHR2LnRhYmxlLmF2YWlsYWJpbGl0eX19ICUiLCAie3sueG1sdHYudGFibGUuY2hhbm5lbHN9fSIsICJ7ey54bWx0di50YWJsZS5wcm9ncmFtc319Il07DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJmaWx0ZXIiOg0KICAgICAgICAgICAgICAgIHRoaXMudGFibGVIZWFkZXIgPSBbInt7LmZpbHRlci50YWJsZS5uYW1lfX0iLCAie3suZmlsdGVyLnRhYmxlLnR5cGV9fSIsICJ7ey5maWx0ZXIudGFibGUuZmlsdGVyfX0iXTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInVzZXJzIjoNCiAgICAgICAgICAgICAgICB0aGlzLnRhYmxlSGVhZGVyID0gWyJ7ey51c2Vycy50YWJsZS51c2VybmFtZX19IiwgInt7LnVzZXJzLnRhYmxlLnBhc3N3b3JkfX0iLCAie3sudXNlcnMudGFibGUud2VifX0iLCAie3sudXNlcnMudGFibGUucG1zfX0iLCAie3sudXNlcnMudGFibGUubTN1fX0iLCAie3sudXNlcnMudGFibGUueG1sfX0iLCAie3sudXNlcnMudGFibGUuYXBpfX0iXTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgIm1hcHBpbmciOg0KICAgICAgICAgICAgICAgIHRoaXMudGFibGVIZWFkZXIgPSBbIkJVTEsiLCAie3subWFwcGluZy50YWJsZS5jaE5vfX0iLCAie3subWFwcGluZy50YWJsZS5sb2dvfX0iLCAie3subWFwcGluZy50YWJsZS5jaGFubmVsTmFtZX19IiwgInt7Lm1hcHBpbmcudGFibGUucGxheWxpc3R9fSIsICJ7ey5tYXBwaW5nLnRhYmxlLmdyb3VwVGl0bGV9fSIsICJ7ey5tYXBwaW5nLnRhYmxlLnhtbHR2RmlsZX19IiwgInt7Lm1hcHBpbmcudGFibGUueG1sdHZJRH19IiwgInt7Lm1hcHBpbmcudGFibGUudGltZXNoaWZ0fX0iXTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgfQ0KICAgICAgICAvL2NvbnNvbGUubG9nKHRoaXMubWVudUtleSwgdGhpcy50YWJsZUhlYWRlcik7DQogICAgfQ0KfQ0KY2xhc3MgQ29udGVudCB7DQogICAgY29uc3RydWN0b3IoKSB7DQogICAgICAgIHRoaXMuRG9jdW1lbnRJRCA9ICJjb250ZW50IjsNCiAgICAgICAgdGhpcy5UYWJsZUlEID0gImNvbnRlbnRfdGFibGUiOw0KICAgICAgICB0aGlzLmhlYWRlckNsYXNzID0gImNvbnRlbnRfdGFibGVfaGVhZGVyIjsNCiAgICAgICAgdGhpcy5pbnRlcmFjdGlvbklEID0gImNvbnRlbnQtaW50ZXJhY3Rpb24iOw0KICAgIH0NCiAgICBjcmVhdGVIZWFkbGluZSh2YWx1ZSkgew0KICAgICAgICBsZXQgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIkgzIik7DQogICAgICAgIGVsZW1lbnQuaW5uZXJIVE1MID0gdmFsdWU7DQogICAgICAgIHJldHVybiBlbGVtZW50Ow0KICAgIH0NCiAgICBjcmVhdGVIUigpIHsNCiAgICAgICAgcmV0dXJuIGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIkhSIik7DQogICAgfQ0KICAgIGNyZWF0ZUludGVyYWN0aW9uKCkgew0KICAgICAgICBsZXQgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIkRJViIpOw0KICAgICAgICBlbGVtZW50LnNldEF0dHJpYnV0ZSgiaWQiLCB0aGlzLmludGVyYWN0aW9uSUQpOw0KICAgICAgICByZXR1cm4gZWxlbWVudDsNCiAgICB9DQogICAgY3JlYXRlRElWKCkgew0KICAgICAgICBsZXQgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIkRJViIpOw0KICAgICAgICBlbGVtZW50LmlkID0gdGhpcy5EaXZJRDsNCiAgICAgICAgcmV0dXJuIGVsZW1lbnQ7DQogICAgfQ0KICAgIGNyZWF0ZVRBQkxFKCkgew0KICAgICAgICBsZXQgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlRBQkxFIik7DQogICAgICAgIGVsZW1lbnQuaWQgPSB0aGlzLlRhYmxlSUQ7DQogICAgICAgIHJldHVybiBlbGVtZW50Ow0KICAgIH0NCiAgICBjcmVhdGVUYWJsZVJvdygpIHsNCiAgICAgICAgbGV0IGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJUUiIpOw0KICAgICAgICBlbGVtZW50LmNsYXNzTmFtZSA9IHRoaXMuaGVhZGVyQ2xhc3M7DQogICAgICAgIHJldHVybiBlbGVtZW50Ow0KICAgIH0NCiAgICBjcmVhdGVUYWJsZUNvbnRlbnQobWVudUtleSkgew0KICAgICAgICBsZXQgZGF0YSA9IHt9Ow0KICAgICAgICBsZXQgcm93cyA9IFtdOw0KICAgICAgICBsZXQgZmlsZVR5cGVzID0gW107DQogICAgICAgIHN3aXRjaCAobWVudUtleSkgew0KICAgICAgICAgICAgY2FzZSAicGxheWxpc3QiOg0KICAgICAgICAgICAgICAgIGZpbGVUeXBlcyA9IFsibTN1IiwgImhkaHIiXTsNCiAgICAgICAgICAgICAgICBmaWxlVHlwZXMuZm9yRWFjaChmaWxlVHlwZSA9PiB7DQogICAgICAgICAgICAgICAgICAgIGRhdGEgPSBTRVJWRVJbInNldHRpbmdzIl1bImZpbGVzIl1bZmlsZVR5cGVdOw0KICAgICAgICAgICAgICAgICAgICB2YXIga2V5cyA9IGdldE9iaktleXMoZGF0YSk7DQogICAgICAgICAgICAgICAgICAgIGtleXMuZm9yRWFjaChrZXkgPT4gew0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVFIiKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmlkID0ga2V5Ow0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgiJyArIGZpbGVUeXBlICsgJyIsIHRoaXMpJyk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsibmFtZSJdOw0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChTRVJWRVJbInNldHRpbmdzIl1bImJ1ZmZlciJdICE9ICItIikgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bInR1bmVyIl07DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gIi0iOw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bImxhc3QudXBkYXRlIl07DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsicHJvdmlkZXIuYXZhaWxhYmlsaXR5Il07DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsidHlwZSJdLnRvVXBwZXJDYXNlKCk7DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsiY29tcGF0aWJpbGl0eSJdWyJzdHJlYW1zIl07DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsiY29tcGF0aWJpbGl0eSJdWyJncm91cC50aXRsZSJdOw0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bImNvbXBhdGliaWxpdHkiXVsidHZnLmlkIl07DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsiY29tcGF0aWJpbGl0eSJdWyJzdHJlYW0uaWQiXTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHJvd3MucHVzaCh0cik7DQogICAgICAgICAgICAgICAgICAgIH0pOw0KICAgICAgICAgICAgICAgIH0pOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiZmlsdGVyIjoNCiAgICAgICAgICAgICAgICBkZWxldGUgU0VSVkVSWyJzZXR0aW5ncyJdWyJmaWx0ZXIiXVstMV07DQogICAgICAgICAgICAgICAgZGF0YSA9IFNFUlZFUlsic2V0dGluZ3MiXVsiZmlsdGVyIl07DQogICAgICAgICAgICAgICAgdmFyIGtleXMgPSBnZXRPYmpLZXlzKGRhdGEpOw0KICAgICAgICAgICAgICAgIGtleXMuZm9yRWFjaChrZXkgPT4gew0KICAgICAgICAgICAgICAgICAgICB2YXIgdHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJUUiIpOw0KICAgICAgICAgICAgICAgICAgICB0ci5pZCA9IGtleTsNCiAgICAgICAgICAgICAgICAgICAgdHIuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgiJyArIGRhdGFba2V5XVsidHlwZSJdICsgJyIsIHRoaXMpJyk7DQogICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJuYW1lIl07DQogICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgIHN3aXRjaCAoZGF0YVtrZXldWyJ0eXBlIl0pIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgImN1c3RvbS1maWx0ZXIiOg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSAie3suZmlsdGVyLmN1c3RvbX19IjsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgImdyb3VwLXRpdGxlIjoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gInt7LmZpbHRlci5ncm91cH19IjsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsiZmlsdGVyIl07DQogICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgcm93cy5wdXNoKHRyKTsNCiAgICAgICAgICAgICAgICB9KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInhtbHR2IjoNCiAgICAgICAgICAgICAgICBmaWxlVHlwZXMgPSBuZXcgQXJyYXkoInhtbHR2Iik7DQogICAgICAgICAgICAgICAgZmlsZVR5cGVzLmZvckVhY2goZmlsZVR5cGUgPT4gew0KICAgICAgICAgICAgICAgICAgICBkYXRhID0gU0VSVkVSWyJzZXR0aW5ncyJdWyJmaWxlcyJdW2ZpbGVUeXBlXTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGtleXMgPSBnZXRPYmpLZXlzKGRhdGEpOw0KICAgICAgICAgICAgICAgICAgICBrZXlzLmZvckVhY2goa2V5ID0+IHsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciB0ciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlRSIik7DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5pZCA9IGtleTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoIicgKyBmaWxlVHlwZSArICciLCB0aGlzKScpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bIm5hbWUiXTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJsYXN0LnVwZGF0ZSJdOw0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bInByb3ZpZGVyLmF2YWlsYWJpbGl0eSJdOw0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bImNvbXBhdGliaWxpdHkiXVsieG1sdHYuY2hhbm5lbHMiXTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJjb21wYXRpYmlsaXR5Il1bInhtbHR2LnByb2dyYW1zIl07DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICByb3dzLnB1c2godHIpOw0KICAgICAgICAgICAgICAgICAgICB9KTsNCiAgICAgICAgICAgICAgICB9KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInVzZXJzIjoNCiAgICAgICAgICAgICAgICBmaWxlVHlwZXMgPSBuZXcgQXJyYXkoInVzZXJzIik7DQogICAgICAgICAgICAgICAgZmlsZVR5cGVzLmZvckVhY2goZmlsZVR5cGUgPT4gew0KICAgICAgICAgICAgICAgICAgICBkYXRhID0gU0VSVkVSW2ZpbGVUeXBlXTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGtleXMgPSBnZXRPYmpLZXlzKGRhdGEpOw0KICAgICAgICAgICAgICAgICAgICBrZXlzLmZvckVhY2goa2V5ID0+IHsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciB0ciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlRSIik7DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5pZCA9IGtleTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoIicgKyBmaWxlVHlwZSArICciLCB0aGlzKScpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bImRhdGEiXVsidXNlcm5hbWUiXTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gIioqKioqKiI7DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGRhdGFba2V5XVsiZGF0YSJdWyJhdXRoZW50aWNhdGlvbi53ZWIiXSA9PSB0cnVlKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9ICLinJMiOw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9ICItIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgICAgICBpZiAoZGF0YVtrZXldWyJkYXRhIl1bImF1dGhlbnRpY2F0aW9uLnBtcyJdID09IHRydWUpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gIuKckyI7DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gIi0iOw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChkYXRhW2tleV1bImRhdGEiXVsiYXV0aGVudGljYXRpb24ubTN1Il0gPT0gdHJ1ZSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSAi4pyTIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSAiLSI7DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGRhdGFba2V5XVsiZGF0YSJdWyJhdXRoZW50aWNhdGlvbi54bWwiXSA9PSB0cnVlKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9ICLinJMiOw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9ICItIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgICAgICBpZiAoZGF0YVtrZXldWyJkYXRhIl1bImF1dGhlbnRpY2F0aW9uLmFwaSJdID09IHRydWUpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gIuKckyI7DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gIi0iOw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgcm93cy5wdXNoKHRyKTsNCiAgICAgICAgICAgICAgICAgICAgfSk7DQogICAgICAgICAgICAgICAgfSk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJtYXBwaW5nIjoNCiAgICAgICAgICAgICAgICBCVUxLX0VESVQgPSBmYWxzZTsNCiAgICAgICAgICAgICAgICBjcmVhdGVTZWFyY2hPYmooKTsNCiAgICAgICAgICAgICAgICBjaGVja1VuZG8oImVwZ01hcHBpbmciKTsNCiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZygiTUFQUElORyIpOw0KICAgICAgICAgICAgICAgIGRhdGEgPSBTRVJWRVJbInhlcGciXVsiZXBnTWFwcGluZyJdOw0KICAgICAgICAgICAgICAgIHZhciBrZXlzID0gZ2V0T2JqS2V5cyhkYXRhKTsNCiAgICAgICAgICAgICAgICBrZXlzLmZvckVhY2goa2V5ID0+IHsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVFIiKTsNCiAgICAgICAgICAgICAgICAgICAgdHIuaWQgPSBrZXk7DQogICAgICAgICAgICAgICAgICAgIC8vdHIuc2V0QXR0cmlidXRlKCdvbmNvbnRleHRtZW51JywgJ2phdmFzY3JpcHQ6IHJpZ2h0Q2xpY2sodGhpcyknKQ0KICAgICAgICAgICAgICAgICAgICBzd2l0Y2ggKGRhdGFba2V5XVsieC1hY3RpdmUiXSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSB0cnVlOg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyLmNsYXNzTmFtZSA9ICJhY3RpdmVFUEciOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSBmYWxzZToNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ci5jbGFzc05hbWUgPSAibm90QWN0aXZlRVBHIjsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAvLyBCdWxrDQogICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIkJVTEsiOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZmFsc2U7DQogICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgLy8gQ2hhbm5lbCBudW1iZXINCiAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiSU5QVVRDSEFOTkVMIjsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsieC1jaGFubmVsSUQiXTsNCiAgICAgICAgICAgICAgICAgICAgLy90ZC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogY2hhbmdlQ2hhbm5lbE51bWJlcigiJyArIGtleSArICciLCB0aGlzKScpDQogICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgLy8gTG9nbw0KICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJJTUciOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmltYWdlVVJMID0gZGF0YVtrZXldWyJ0dmctbG9nbyJdOw0KICAgICAgICAgICAgICAgICAgICB2YXIgdGQgPSBjZWxsLmNyZWF0ZUNlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgdGQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgibWFwcGluZyIsIHRoaXMpJyk7DQogICAgICAgICAgICAgICAgICAgIHRkLmlkID0ga2V5Ow0KICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZCh0ZCk7DQogICAgICAgICAgICAgICAgICAgIC8vIENoYW5uZWwgbmFtZQ0KICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jbGFzc05hbWUgPSBkYXRhW2tleV1bIngtY2F0ZWdvcnkiXTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsieC1uYW1lIl07DQogICAgICAgICAgICAgICAgICAgIHZhciB0ZCA9IGNlbGwuY3JlYXRlQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICB0ZC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJtYXBwaW5nIiwgdGhpcyknKTsNCiAgICAgICAgICAgICAgICAgICAgdGQuaWQgPSBrZXk7DQogICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKHRkKTsNCiAgICAgICAgICAgICAgICAgICAgLy8gUGxheWxpc3QNCiAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgIC8vY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsiX2ZpbGUubTN1Lm5hbWUiXSANCiAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGdldFZhbHVlRnJvbVByb3ZpZGVyRmlsZShkYXRhW2tleV1bIl9maWxlLm0zdS5pZCJdLCAibTN1IiwgIm5hbWUiKTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHRkID0gY2VsbC5jcmVhdGVDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgIHRkLnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoIm1hcHBpbmciLCB0aGlzKScpOw0KICAgICAgICAgICAgICAgICAgICB0ZC5pZCA9IGtleTsNCiAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQodGQpOw0KICAgICAgICAgICAgICAgICAgICAvLyBHcm91cCAoZ3JvdXAtdGl0bGUpDQogICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJ4LWdyb3VwLXRpdGxlIl07DQogICAgICAgICAgICAgICAgICAgIHZhciB0ZCA9IGNlbGwuY3JlYXRlQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICB0ZC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJtYXBwaW5nIiwgdGhpcyknKTsNCiAgICAgICAgICAgICAgICAgICAgdGQuaWQgPSBrZXk7DQogICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKHRkKTsNCiAgICAgICAgICAgICAgICAgICAgLy8gWE1MVFYgZmlsZQ0KICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgaWYgKGRhdGFba2V5XVsieC14bWx0di1maWxlIl0gIT0gIi0iKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZ2V0VmFsdWVGcm9tUHJvdmlkZXJGaWxlKGRhdGFba2V5XVsieC14bWx0di1maWxlIl0sICJ4bWx0diIsICJuYW1lIik7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgZWxzZSB7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJ4LXhtbHR2LWZpbGUiXTsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICB2YXIgdGQgPSBjZWxsLmNyZWF0ZUNlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgdGQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgibWFwcGluZyIsIHRoaXMpJyk7DQogICAgICAgICAgICAgICAgICAgIHRkLmlkID0ga2V5Ow0KICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZCh0ZCk7DQogICAgICAgICAgICAgICAgICAgIC8vIFhNTFRWIENoYW5uZWwNCiAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgIC8vdmFyIHZhbHVlID0gc3RyLnN1YnN0cmluZygxLCA0KTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHZhbHVlID0gZGF0YVtrZXldWyJ4LW1hcHBpbmciXTsNCiAgICAgICAgICAgICAgICAgICAgaWYgKHZhbHVlLmxlbmd0aCA+IDIwKSB7DQogICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IGRhdGFba2V5XVsieC1tYXBwaW5nIl0uc3Vic3RyaW5nKDAsIDIwKSArICIuLi4iOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSB2YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHRkID0gY2VsbC5jcmVhdGVDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgIHRkLnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoIm1hcHBpbmciLCB0aGlzKScpOw0KICAgICAgICAgICAgICAgICAgICB0ZC5pZCA9IGtleTsNCiAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQodGQpOw0KICAgICAgICAgICAgICAgICAgICAvLyBUaW1lU2hpZnQNCiAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bIngtdGltZXNoaWZ0Il07DQogICAgICAgICAgICAgICAgICAgIHZhciB0ZCA9IGNlbGwuY3JlYXRlQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICB0ZC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJtYXBwaW5nIiwgdGhpcyknKTsNCiAgICAgICAgICAgICAgICAgICAgdGQuaWQgPSBrZXk7DQogICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKHRkKTsNCiAgICAgICAgICAgICAgICAgICAgcm93cy5wdXNoKHRyKTsNCiAgICAgICAgICAgICAgICB9KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInNldHRpbmdzIjoNCiAgICAgICAgICAgICAgICBhbGVydCgpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZygiVGFibGUgY29udGVudCAobWVudUtleSk6IiwgbWVudUtleSk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIH0NCiAgICAgICAgcmV0dXJuIHJvd3M7DQogICAgfQ0KfQ0KY2xhc3MgQ2VsbCB7DQogICAgY3JlYXRlQ2VsbCgpIHsNCiAgICAgICAgbGV0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgaWYgKHRoaXMuY2hpbGQgPT0gdHJ1ZSkgew0KICAgICAgICAgICAgdmFyIGVsZW1lbnQ7DQogICAgICAgICAgICBzd2l0Y2ggKHRoaXMuY2hpbGRUeXBlKSB7DQogICAgICAgICAgICAgICAgY2FzZSAiUCI6DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KHRoaXMuY2hpbGRUeXBlKTsNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC5pbm5lckhUTUwgPSB0aGlzLnZhbHVlOw0KICAgICAgICAgICAgICAgICAgICBlbGVtZW50LmNsYXNzTmFtZSA9IHRoaXMuY2xhc3NOYW1lOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBjYXNlICJJTlBVVCI6DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KHRoaXMuY2hpbGRUeXBlKTsNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC52YWx1ZSA9IHRoaXMudmFsdWU7DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQudHlwZSA9ICJ0ZXh0IjsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAiSU5QVVRDSEFOTkVMIjoNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIklOUFVUIik7DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZzY3JpcHQ6IGNoYW5nZUNoYW5uZWxOdW1iZXIodGhpcykiKTsNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC52YWx1ZSA9IHRoaXMudmFsdWU7DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQudHlwZSA9ICJ0ZXh0IjsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAiQlVMSyI6DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJJTlBVVCIpOw0KICAgICAgICAgICAgICAgICAgICBlbGVtZW50LmNoZWNrZWQgPSB0aGlzLnZhbHVlOw0KICAgICAgICAgICAgICAgICAgICBlbGVtZW50LnR5cGUgPSAiY2hlY2tib3giOw0KICAgICAgICAgICAgICAgICAgICBlbGVtZW50LmNsYXNzTmFtZSA9ICJidWxrIGhpZGVCdWxrIjsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAiQlVMS19IRUFEIjoNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIklOUFVUIik7DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQuY2hlY2tlZCA9IHRoaXMudmFsdWU7DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQudHlwZSA9ICJjaGVja2JveCI7DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQuY2xhc3NOYW1lID0gImJ1bGsgaGlkZUJ1bGsiOw0KICAgICAgICAgICAgICAgICAgICBlbGVtZW50LnNldEF0dHJpYnV0ZSgib25jbGljayIsICJqYXZhc2NyaXB0OiBzZWxlY3RBbGxDaGFubmVscygpIik7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgIklNRyI6DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KHRoaXMuY2hpbGRUeXBlKTsNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC5zZXRBdHRyaWJ1dGUoInNyYyIsIHRoaXMuaW1hZ2VVUkwpOw0KICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5pbWFnZVVSTCAhPSAiIikgew0KICAgICAgICAgICAgICAgICAgICAgICAgZWxlbWVudC5zZXRBdHRyaWJ1dGUoIm9uZXJyb3IiLCAiamF2YXNjcmlwdDogdGhpcy5vbmVycm9yPW51bGw7dGhpcy5zcmM9JyciKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIC8vb25lcnJvcj0idGhpcy5vbmVycm9yPW51bGw7dGhpcy5zcmM9J21pc3NpbmcuZ2lmJzsiDQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIHRkLmFwcGVuZENoaWxkKGVsZW1lbnQpOw0KICAgICAgICB9DQogICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgdGQuaW5uZXJIVE1MID0gdGhpcy52YWx1ZTsNCiAgICAgICAgfQ0KICAgICAgICBpZiAodGhpcy5vbmNsaWNrID09IHRydWUpIHsNCiAgICAgICAgICAgIHRkLnNldEF0dHJpYnV0ZSgib25jbGljayIsIHRoaXMub25jbGlja0Z1bmN0aW9uKTsNCiAgICAgICAgICAgIHRkLmNsYXNzTmFtZSA9ICJwb2ludGVyIjsNCiAgICAgICAgfQ0KICAgICAgICBpZiAodGhpcy50ZENsYXNzTmFtZSAhPSB1bmRlZmluZWQpIHsNCiAgICAgICAgICAgIHRkLmNsYXNzTmFtZSA9IHRoaXMudGRDbGFzc05hbWU7DQogICAgICAgIH0NCiAgICAgICAgcmV0dXJuIHRkOw0KICAgIH0NCn0NCmNsYXNzIFNob3dDb250ZW50IGV4dGVuZHMgQ29udGVudCB7DQogICAgY29uc3RydWN0b3IobWVudUlEKSB7DQogICAgICAgIHN1cGVyKCk7DQogICAgICAgIHRoaXMubWVudUlEID0gbWVudUlEOw0KICAgIH0NCiAgICBjcmVhdGVJbnB1dCh0eXBlLCBuYW1lLCB2YWx1ZSkgew0KICAgICAgICBsZXQgaW5wdXQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJJTlBVVCIpOw0KICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInR5cGUiLCB0eXBlKTsNCiAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJuYW1lIiwgbmFtZSk7DQogICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgidmFsdWUiLCB2YWx1ZSk7DQogICAgICAgIHJldHVybiBpbnB1dDsNCiAgICB9DQogICAgc2hvdygpIHsNCiAgICAgICAgQ09MVU1OX1RPX1NPUlQgPSAtMTsNCiAgICAgICAgLy8gRGVsZXRlIG9sZCBjb250ZW50DQogICAgICAgIGxldCBkb2MgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCh0aGlzLkRvY3VtZW50SUQpOw0KICAgICAgICBkb2MuaW5uZXJIVE1MID0gIiI7DQogICAgICAgIHNob3dQcmV2aWV3KGZhbHNlKTsNCiAgICAgICAgLy8gSGVhZGxpbmUNCiAgICAgICAgbGV0IGhlYWRsaW5lID0gbWVudUl0ZW1zW3RoaXMubWVudUlEXS5oZWFkbGluZTsNCiAgICAgICAgbGV0IG1lbnVLZXkgPSBtZW51SXRlbXNbdGhpcy5tZW51SURdLm1lbnVLZXk7DQogICAgICAgIGxldCBoID0gdGhpcy5jcmVhdGVIZWFkbGluZShoZWFkbGluZSk7DQogICAgICAgIGRvYy5hcHBlbmRDaGlsZChoKTsNCiAgICAgICAgbGV0IGhyID0gdGhpcy5jcmVhdGVIUigpOw0KICAgICAgICBkb2MuYXBwZW5kQ2hpbGQoaHIpOw0KICAgICAgICAvLyBJbnRlcmFjdGlvbg0KICAgICAgICBsZXQgZGl2ID0gdGhpcy5jcmVhdGVJbnRlcmFjdGlvbigpOw0KICAgICAgICBkb2MuYXBwZW5kQ2hpbGQoZGl2KTsNCiAgICAgICAgbGV0IGludGVyYWN0aW9uID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQodGhpcy5pbnRlcmFjdGlvbklEKTsNCiAgICAgICAgc3dpdGNoIChtZW51S2V5KSB7DQogICAgICAgICAgICBjYXNlICJwbGF5bGlzdCI6DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gdGhpcy5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgbWVudUtleSwgInt7LmJ1dHRvbi5uZXd9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgiaWQiLCAiLSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoInBsYXlsaXN0IiknKTsNCiAgICAgICAgICAgICAgICBpbnRlcmFjdGlvbi5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJmaWx0ZXIiOg0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IHRoaXMuY3JlYXRlSW5wdXQoImJ1dHRvbiIsIG1lbnVLZXksICJ7ey5idXR0b24ubmV3fX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoImlkIiwgLTEpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoImZpbHRlciIsIHRoaXMpJyk7DQogICAgICAgICAgICAgICAgaW50ZXJhY3Rpb24uYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAieG1sdHYiOg0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IHRoaXMuY3JlYXRlSW5wdXQoImJ1dHRvbiIsIG1lbnVLZXksICJ7ey5idXR0b24ubmV3fX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoImlkIiwgInhtbHR2Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgieG1sdHYiKScpOw0KICAgICAgICAgICAgICAgIGludGVyYWN0aW9uLmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInVzZXJzIjoNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSB0aGlzLmNyZWF0ZUlucHV0KCJidXR0b24iLCBtZW51S2V5LCAie3suYnV0dG9uLm5ld319Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJpZCIsICJ1c2VycyIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoInVzZXJzIiknKTsNCiAgICAgICAgICAgICAgICBpbnRlcmFjdGlvbi5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJtYXBwaW5nIjoNCiAgICAgICAgICAgICAgICBzaG93RWxlbWVudCgibG9hZGluZyIsIHRydWUpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IHRoaXMuY3JlYXRlSW5wdXQoImJ1dHRvbiIsIG1lbnVLZXksICJ7ey5idXR0b24uc2F2ZX19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoIm1hcHBpbmciLCAiIiwgIiIpJyk7DQogICAgICAgICAgICAgICAgaW50ZXJhY3Rpb24uYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IHRoaXMuY3JlYXRlSW5wdXQoImJ1dHRvbiIsIG1lbnVLZXksICJ7ey5idXR0b24uYnVsa0VkaXR9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBidWxrRWRpdCgpJyk7DQogICAgICAgICAgICAgICAgaW50ZXJhY3Rpb24uYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IHRoaXMuY3JlYXRlSW5wdXQoInNlYXJjaCIsICJzZWFyY2giLCAiIik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJpZCIsICJzZWFyY2hNYXBwaW5nIik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5idXR0b24uc2VhcmNofX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5jbGFzc05hbWUgPSAic2VhcmNoIjsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgJ2phdmFzY3JpcHQ6IHNlYXJjaEluTWFwcGluZygpJyk7DQogICAgICAgICAgICAgICAgaW50ZXJhY3Rpb24uYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAic2V0dGluZ3MiOg0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IHRoaXMuY3JlYXRlSW5wdXQoImJ1dHRvbiIsIG1lbnVLZXksICJ7ey5idXR0b24uc2F2ZX19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IHNhdmVTZXR0aW5ncygpOycpOw0KICAgICAgICAgICAgICAgIGludGVyYWN0aW9uLmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSB0aGlzLmNyZWF0ZUlucHV0KCJidXR0b24iLCBtZW51S2V5LCAie3suYnV0dG9uLmJhY2t1cH19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IGJhY2t1cCgpOycpOw0KICAgICAgICAgICAgICAgIGludGVyYWN0aW9uLmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSB0aGlzLmNyZWF0ZUlucHV0KCJidXR0b24iLCBtZW51S2V5LCAie3suYnV0dG9uLnJlc3RvcmV9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiByZXN0b3JlKCk7Jyk7DQogICAgICAgICAgICAgICAgaW50ZXJhY3Rpb24uYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIHZhciB3cmFwcGVyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiRElWIik7DQogICAgICAgICAgICAgICAgd3JhcHBlci5zZXRBdHRyaWJ1dGUoImlkIiwgImJveC13cmFwcGVyIik7DQogICAgICAgICAgICAgICAgZG9jLmFwcGVuZENoaWxkKHdyYXBwZXIpOw0KICAgICAgICAgICAgICAgIHRoaXMuRGl2SUQgPSAiY29udGVudF9zZXR0aW5ncyI7DQogICAgICAgICAgICAgICAgdmFyIHNldHRpbmdzID0gdGhpcy5jcmVhdGVESVYoKTsNCiAgICAgICAgICAgICAgICB3cmFwcGVyLmFwcGVuZENoaWxkKHNldHRpbmdzKTsNCiAgICAgICAgICAgICAgICBzaG93U2V0dGluZ3MoKTsNCiAgICAgICAgICAgICAgICByZXR1cm47DQogICAgICAgICAgICBjYXNlICJsb2ciOg0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IHRoaXMuY3JlYXRlSW5wdXQoImJ1dHRvbiIsIG1lbnVLZXksICJ7ey5idXR0b24ucmVzZXRMb2dzfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogcmVzZXRMb2dzKCk7Jyk7DQogICAgICAgICAgICAgICAgaW50ZXJhY3Rpb24uYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIHZhciB3cmFwcGVyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiRElWIik7DQogICAgICAgICAgICAgICAgd3JhcHBlci5zZXRBdHRyaWJ1dGUoImlkIiwgImJveC13cmFwcGVyIik7DQogICAgICAgICAgICAgICAgZG9jLmFwcGVuZENoaWxkKHdyYXBwZXIpOw0KICAgICAgICAgICAgICAgIHRoaXMuRGl2SUQgPSAiY29udGVudF9sb2ciOw0KICAgICAgICAgICAgICAgIHZhciBsb2dzID0gdGhpcy5jcmVhdGVESVYoKTsNCiAgICAgICAgICAgICAgICB3cmFwcGVyLmFwcGVuZENoaWxkKGxvZ3MpOw0KICAgICAgICAgICAgICAgIHNob3dMb2dzKHRydWUpOw0KICAgICAgICAgICAgICAgIHJldHVybjsNCiAgICAgICAgICAgIGNhc2UgImxvZ291dCI6DQogICAgICAgICAgICAgICAgbG9jYXRpb24ucmVsb2FkKCk7DQogICAgICAgICAgICAgICAgZG9jdW1lbnQuY29va2llID0gIlRva2VuPSA7IGV4cGlyZXMgPSBUaHUsIDAxIEphbiAxOTcwIDAwOjAwOjAwIEdNVCI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBkZWZhdWx0Og0KICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKCJTaG93IGNvbnRlbnQgKG1lbnVLZXkpOiIsIG1lbnVLZXkpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICB9DQogICAgICAgIC8vIENyZWF0ZSB0YWJsZSAoaWYgbmVlZGVkKQ0KICAgICAgICB2YXIgdGFibGVIZWFkZXIgPSBtZW51SXRlbXNbdGhpcy5tZW51SURdLnRhYmxlSGVhZGVyOw0KICAgICAgICBpZiAodGFibGVIZWFkZXIubGVuZ3RoID4gMCkgew0KICAgICAgICAgICAgdmFyIHdyYXBwZXIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJESVYiKTsNCiAgICAgICAgICAgIGRvYy5hcHBlbmRDaGlsZCh3cmFwcGVyKTsNCiAgICAgICAgICAgIHdyYXBwZXIuc2V0QXR0cmlidXRlKCJpZCIsICJib3gtd3JhcHBlciIpOw0KICAgICAgICAgICAgdmFyIHRhYmxlID0gdGhpcy5jcmVhdGVUQUJMRSgpOw0KICAgICAgICAgICAgd3JhcHBlci5hcHBlbmRDaGlsZCh0YWJsZSk7DQogICAgICAgICAgICB2YXIgaGVhZGVyID0gdGhpcy5jcmVhdGVUYWJsZVJvdygpOw0KICAgICAgICAgICAgdGFibGUuYXBwZW5kQ2hpbGQoaGVhZGVyKTsNCiAgICAgICAgICAgIC8vIFRhYmxlIGhlYWRlcg0KICAgICAgICAgICAgdGFibGVIZWFkZXIuZm9yRWFjaChlbGVtZW50ID0+IHsNCiAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGVsZW1lbnQ7DQogICAgICAgICAgICAgICAgaWYgKGVsZW1lbnQgPT0gIkJVTEsiKSB7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIkJVTEtfSEVBRCI7DQogICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBmYWxzZTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgaWYgKG1lbnVLZXkgPT0gIm1hcHBpbmciKSB7DQogICAgICAgICAgICAgICAgICAgIGlmIChlbGVtZW50ID09ICJ7ey5tYXBwaW5nLnRhYmxlLmNoTm99fSIpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwub25jbGljayA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLm9uY2xpY2tGdW5jdGlvbiA9ICJqYXZhc2NyaXB0OiBzb3J0VGFibGUoMSk7IjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudGRDbGFzc05hbWUgPSAic29ydFRoaXMiOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIGlmIChlbGVtZW50ID09ICJ7ey5tYXBwaW5nLnRhYmxlLmNoYW5uZWxOYW1lfX0iKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLm9uY2xpY2sgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5vbmNsaWNrRnVuY3Rpb24gPSAiamF2YXNjcmlwdDogc29ydFRhYmxlKDMpOyI7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgaWYgKGVsZW1lbnQgPT0gInt7Lm1hcHBpbmcudGFibGUucGxheWxpc3R9fSIpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwub25jbGljayA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLm9uY2xpY2tGdW5jdGlvbiA9ICJqYXZhc2NyaXB0OiBzb3J0VGFibGUoNCk7IjsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBpZiAoZWxlbWVudCA9PSAie3subWFwcGluZy50YWJsZS5ncm91cFRpdGxlfX0iKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLm9uY2xpY2sgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5vbmNsaWNrRnVuY3Rpb24gPSAiamF2YXNjcmlwdDogc29ydFRhYmxlKDUpOyI7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgaWYgKGVsZW1lbnQgPT0gInt7Lm1hcHBpbmcudGFibGUudGltZXNoaWZ0fX0iKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLm9uY2xpY2sgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5vbmNsaWNrRnVuY3Rpb24gPSAiamF2YXNjcmlwdDogc29ydFRhYmxlKDgpOyI7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgaGVhZGVyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgIH0pOw0KICAgICAgICAgICAgdGFibGUuYXBwZW5kQ2hpbGQoaGVhZGVyKTsNCiAgICAgICAgICAgIC8vIENvbnRlbnQgb2YgdGhlIHRhYmxlDQogICAgICAgICAgICB2YXIgcm93cyA9IHRoaXMuY3JlYXRlVGFibGVDb250ZW50KG1lbnVLZXkpOw0KICAgICAgICAgICAgcm93cy5mb3JFYWNoKHRyID0+IHsNCiAgICAgICAgICAgICAgICB0YWJsZS5hcHBlbmRDaGlsZCh0cik7DQogICAgICAgICAgICB9KTsNCiAgICAgICAgfQ0KICAgICAgICBzd2l0Y2ggKG1lbnVLZXkpIHsNCiAgICAgICAgICAgIGNhc2UgIm1hcHBpbmciOg0KICAgICAgICAgICAgICAgIHNvcnRUYWJsZSgxKTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImZpbHRlciI6DQogICAgICAgICAgICAgICAgc2hvd1ByZXZpZXcodHJ1ZSk7DQogICAgICAgICAgICAgICAgc29ydFRhYmxlKDApOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgICAgICBDT0xVTU5fVE9fU09SVCA9IC0xOw0KICAgICAgICAgICAgICAgIHNvcnRUYWJsZSgwKTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgfQ0KICAgICAgICBzaG93RWxlbWVudCgibG9hZGluZyIsIGZhbHNlKTsNCiAgICB9DQp9DQpmdW5jdGlvbiBQYWdlUmVhZHkoKSB7DQogICAgbGV0IHNlcnZlciA9IG5ldyBTZXJ2ZXIoImdldFNlcnZlckNvbmZpZyIpOw0KICAgIHNlcnZlci5yZXF1ZXN0KHt9KTsNCiAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigicmVzaXplIiwgZnVuY3Rpb24gKCkgew0KICAgICAgICBjYWxjdWxhdGVXcmFwcGVySGVpZ2h0KCk7DQogICAgfSwgdHJ1ZSk7DQogICAgc2V0SW50ZXJ2YWwoZnVuY3Rpb24gKCkgew0KICAgICAgICB1cGRhdGVMb2coKTsNCiAgICB9LCAxMDAwMCk7DQogICAgcmV0dXJuOw0KfQ0KZnVuY3Rpb24gY3JlYXRlTGF5b3V0KCkgew0KICAgIC8vIENsaWVudCBJbmZvDQogICAgbGV0IG9iaiA9IFNFUlZFUlsiY2xpZW50SW5mbyJdOw0KICAgIGxldCBrZXlzID0gZ2V0T2JqS2V5cyhvYmopOw0KICAgIGZvciAodmFyIGkgPSAwOyBpIDwga2V5cy5sZW5ndGg7IGkrKykgew0KICAgICAgICBpZiAoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoa2V5c1tpXSkpIHsNCiAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGtleXNbaV0pLmlubmVySFRNTCA9IG9ialtrZXlzW2ldXTsNCiAgICAgICAgfQ0KICAgIH0NCiAgICBpZiAoIWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJtYWluLW1lbnUiKSkgew0KICAgICAgICByZXR1cm47DQogICAgfQ0KICAgIC8vIENyZWF0ZSBtZW51DQogICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm1haW4tbWVudSIpLmlubmVySFRNTCA9ICIiOw0KICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbWVudUl0ZW1zLmxlbmd0aDsgaSsrKSB7DQogICAgICAgIG1lbnVJdGVtc1tpXS5pZCA9IGk7DQogICAgICAgIHN3aXRjaCAobWVudUl0ZW1zW2ldWyJtZW51S2V5Il0pIHsNCiAgICAgICAgICAgIGNhc2UgInVzZXJzIjoNCiAgICAgICAgICAgIGNhc2UgImxvZ291dCI6DQogICAgICAgICAgICAgICAgaWYgKFNFUlZFUlsic2V0dGluZ3MiXVsiYXV0aGVudGljYXRpb24ud2ViIl0gPT0gdHJ1ZSkgew0KICAgICAgICAgICAgICAgICAgICBtZW51SXRlbXNbaV0uY3JlYXRlSXRlbSgpOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgIm1hcHBpbmciOg0KICAgICAgICAgICAgY2FzZSAieG1sdHYiOg0KICAgICAgICAgICAgICAgIGlmIChTRVJWRVJbImNsaWVudEluZm8iXVsiZXBnU291cmNlIl0gPT0gIlhFUEciKSB7DQogICAgICAgICAgICAgICAgICAgIG1lbnVJdGVtc1tpXS5jcmVhdGVJdGVtKCk7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgICAgICBtZW51SXRlbXNbaV0uY3JlYXRlSXRlbSgpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICB9DQogICAgfQ0KICAgIHJldHVybjsNCn0NCmZ1bmN0aW9uIG9wZW5UaGlzTWVudShlbGVtZW50KSB7DQogICAgbGV0IGlkID0gZWxlbWVudC5pZDsNCiAgICBsZXQgY29udGVudCA9IG5ldyBTaG93Q29udGVudChpZCk7DQogICAgY29udGVudC5zaG93KCk7DQogICAgY2FsY3VsYXRlV3JhcHBlckhlaWdodCgpOw0KICAgIHJldHVybjsNCn0NCmNsYXNzIFBvcHVwV2luZG93IHsNCiAgICBjb25zdHJ1Y3RvcigpIHsNCiAgICAgICAgdGhpcy5Eb2N1bWVudElEID0gInBvcHVwLWN1c3RvbSI7DQogICAgICAgIHRoaXMuSW50ZXJhY3Rpb25JRCA9ICJpbnRlcmFjdGlvbiI7DQogICAgICAgIHRoaXMuZG9jID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQodGhpcy5Eb2N1bWVudElEKTsNCiAgICB9DQogICAgY3JlYXRlVGl0bGUodGl0bGUpIHsNCiAgICAgICAgbGV0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgdGQuY2xhc3NOYW1lID0gImxlZnQiOw0KICAgICAgICB0ZC5pbm5lckhUTUwgPSB0aXRsZSArICI6IjsNCiAgICAgICAgcmV0dXJuIHRkOw0KICAgIH0NCiAgICBjcmVhdGVDb250ZW50KGVsZW1lbnQpIHsNCiAgICAgICAgbGV0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgdGQuYXBwZW5kQ2hpbGQoZWxlbWVudCk7DQogICAgICAgIHJldHVybiB0ZDsNCiAgICB9DQogICAgY3JlYXRlSW50ZXJhY3Rpb24oKSB7DQogICAgICAgIGxldCBkaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsNCiAgICAgICAgZGl2LnNldEF0dHJpYnV0ZSgiaWQiLCAicG9wdXAtaW50ZXJhY3Rpb24iKTsNCiAgICAgICAgZGl2LmNsYXNzTmFtZSA9ICJpbnRlcmFjdGlvbiI7DQogICAgICAgIHRoaXMuZG9jLmFwcGVuZENoaWxkKGRpdik7DQogICAgfQ0KfQ0KY2xhc3MgUG9wdXBDb250ZW50IGV4dGVuZHMgUG9wdXBXaW5kb3cgew0KICAgIGNvbnN0cnVjdG9yKCkgew0KICAgICAgICBzdXBlciguLi5hcmd1bWVudHMpOw0KICAgICAgICB0aGlzLnRhYmxlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEFCTEUiKTsNCiAgICB9DQogICAgY3JlYXRlSGVhZGxpbmUoaGVhZGxpbmUpIHsNCiAgICAgICAgdGhpcy5kb2MuaW5uZXJIVE1MID0gIiI7DQogICAgICAgIHZhciBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiSDMiKTsNCiAgICAgICAgZWxlbWVudC5pbm5lckhUTUwgPSBoZWFkbGluZS50b1VwcGVyQ2FzZSgpOw0KICAgICAgICB0aGlzLmRvYy5hcHBlbmRDaGlsZChlbGVtZW50KTsNCiAgICAgICAgLy8gQ3JlYXRlIHRhYmxlDQogICAgICAgIHRoaXMudGFibGUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJUQUJMRSIpOw0KICAgICAgICB0aGlzLmRvYy5hcHBlbmRDaGlsZCh0aGlzLnRhYmxlKTsNCiAgICB9DQogICAgYXBwZW5kUm93KHRpdGxlLCBlbGVtZW50KSB7DQogICAgICAgIGxldCB0ciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlRSIik7DQogICAgICAgIC8vIFRpdGxlDQogICAgICAgIGlmICh0aXRsZS5sZW5ndGggIT0gMCkgew0KICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQodGhpcy5jcmVhdGVUaXRsZSh0aXRsZSkpOw0KICAgICAgICB9DQogICAgICAgIC8vIENvbnRlbnQNCiAgICAgICAgdHIuYXBwZW5kQ2hpbGQodGhpcy5jcmVhdGVDb250ZW50KGVsZW1lbnQpKTsNCiAgICAgICAgdGhpcy50YWJsZS5hcHBlbmRDaGlsZCh0cik7DQogICAgfQ0KICAgIGNyZWF0ZUlucHV0KHR5cGUsIG5hbWUsIHZhbHVlKSB7DQogICAgICAgIGxldCBpbnB1dCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIklOUFVUIik7DQogICAgICAgIGlmICh2YWx1ZSA9PSB1bmRlZmluZWQpIHsNCiAgICAgICAgICAgIHZhbHVlID0gIiI7DQogICAgICAgIH0NCiAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJ0eXBlIiwgdHlwZSk7DQogICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgibmFtZSIsIG5hbWUpOw0KICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInZhbHVlIiwgdmFsdWUpOw0KICAgICAgICByZXR1cm4gaW5wdXQ7DQogICAgfQ0KICAgIGNyZWF0ZUNoZWNrYm94KG5hbWUpIHsNCiAgICAgICAgbGV0IGlucHV0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiSU5QVVQiKTsNCiAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJ0eXBlIiwgImNoZWNrYm94Iik7DQogICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgibmFtZSIsIG5hbWUpOw0KICAgICAgICByZXR1cm4gaW5wdXQ7DQogICAgfQ0KICAgIC8vIENyZWF0ZXMgYSBzZWxlY3Rpb24gb2YgbXVsdGlwbGUgb3B0aW9ucyB2YWx1ZXMgd2l0aCB0ZXh0IGRlc2NyaXB0aW9ucw0KICAgIGNyZWF0ZVNlbGVjdCh0ZXh0LCB2YWx1ZXMsIHNldCwgZGJLZXkpIHsNCiAgICAgICAgbGV0IHNlbGVjdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlNFTEVDVCIpOw0KICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJuYW1lIiwgZGJLZXkpOw0KICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRleHQubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgICAgIGxldCBvcHRpb24gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJPUFRJT04iKTsNCiAgICAgICAgICAgIG9wdGlvbi5zZXRBdHRyaWJ1dGUoInZhbHVlIiwgdmFsdWVzW2ldKTsNCiAgICAgICAgICAgIG9wdGlvbi5pbm5lclRleHQgPSB0ZXh0W2ldOw0KICAgICAgICAgICAgc2VsZWN0LmFwcGVuZENoaWxkKG9wdGlvbik7DQogICAgICAgIH0NCiAgICAgICAgaWYgKHNldCAhPSAiIikgew0KICAgICAgICAgICAgc2VsZWN0LnZhbHVlID0gc2V0Ow0KICAgICAgICB9DQogICAgICAgIGlmIChzZXQgPT0gdW5kZWZpbmVkKSB7DQogICAgICAgICAgICBzZWxlY3QudmFsdWUgPSB2YWx1ZXNbMF07DQogICAgICAgIH0NCiAgICAgICAgcmV0dXJuIHNlbGVjdDsNCiAgICB9DQogICAgc2VsZWN0T3B0aW9uKHNlbGVjdCwgdmFsdWUpIHsNCiAgICAgICAgLy9zZWxlY3Quc2VsZWN0ZWRPcHRpb25zID0gdmFsdWUNCiAgICAgICAgbGV0IHMgPSBzZWxlY3Q7DQogICAgICAgIHMub3B0aW9uc1tzLnNlbGVjdGVkSW5kZXhdLnZhbHVlID0gdmFsdWU7DQogICAgICAgIHJldHVybiBzZWxlY3Q7DQogICAgfQ0KICAgIGRlc2NyaXB0aW9uKHZhbHVlKSB7DQogICAgICAgIGxldCB0ciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlRSIik7DQogICAgICAgIGxldCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgIGxldCBzcGFuID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiUFJFIik7DQogICAgICAgIHNwYW4uaW5uZXJIVE1MID0gdmFsdWU7DQogICAgICAgIHRyLmFwcGVuZENoaWxkKHRkKTsNCiAgICAgICAgdHIuYXBwZW5kQ2hpbGQodGhpcy5jcmVhdGVDb250ZW50KHNwYW4pKTsNCiAgICAgICAgdGhpcy50YWJsZS5hcHBlbmRDaGlsZCh0cik7DQogICAgfQ0KICAgIC8vIEludGVyYWN0aW9uDQogICAgYWRkSW50ZXJhY3Rpb24oZWxlbWVudCkgew0KICAgICAgICBsZXQgaW50ZXJhY3Rpb24gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicG9wdXAtaW50ZXJhY3Rpb24iKTsNCiAgICAgICAgaW50ZXJhY3Rpb24uYXBwZW5kQ2hpbGQoZWxlbWVudCk7DQogICAgfQ0KfQ0KZnVuY3Rpb24gb3BlblBvcFVwKGRhdGFUeXBlLCBlbGVtZW50KSB7DQogICAgbGV0IGRhdGEgPSB7fTsNCiAgICBsZXQgaWQ7DQogICAgc3dpdGNoIChlbGVtZW50KSB7DQogICAgICAgIGNhc2UgdW5kZWZpbmVkOg0KICAgICAgICAgICAgc3dpdGNoIChkYXRhVHlwZSkgew0KICAgICAgICAgICAgICAgIGNhc2UgImdyb3VwLXRpdGxlIjoNCiAgICAgICAgICAgICAgICAgICAgaWYgKGlkID09IHVuZGVmaW5lZCkgew0KICAgICAgICAgICAgICAgICAgICAgICAgaWQgPSAtMTsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBkYXRhID0gZ2V0TG9jYWxEYXRhKCJmaWx0ZXIiLCBpZCk7DQogICAgICAgICAgICAgICAgICAgIGRhdGFbInR5cGUiXSA9ICJncm91cC10aXRsZSI7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgImN1c3RvbS1maWx0ZXIiOg0KICAgICAgICAgICAgICAgICAgICBpZiAoaWQgPT0gdW5kZWZpbmVkKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBpZCA9IC0xOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIGRhdGEgPSBnZXRMb2NhbERhdGEoImZpbHRlciIsIGlkKTsNCiAgICAgICAgICAgICAgICAgICAgZGF0YVsidHlwZSJdID0gImN1c3RvbS1maWx0ZXIiOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBkZWZhdWx0Og0KICAgICAgICAgICAgICAgICAgICBkYXRhWyJpZC5wcm92aWRlciJdID0gIi0iOw0KICAgICAgICAgICAgICAgICAgICBkYXRhWyJ0eXBlIl0gPSBkYXRhVHlwZTsNCiAgICAgICAgICAgICAgICAgICAgaWQgPSAiLSI7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICBpZCA9IGVsZW1lbnQuaWQ7DQogICAgICAgICAgICBkYXRhID0gZ2V0TG9jYWxEYXRhKGRhdGFUeXBlLCBpZCk7DQogICAgICAgICAgICBicmVhazsNCiAgICB9DQogICAgbGV0IGNvbnRlbnQgPSBuZXcgUG9wdXBDb250ZW50KCk7DQogICAgc3dpdGNoIChkYXRhVHlwZSkgew0KICAgICAgICBjYXNlICJwbGF5bGlzdCI6DQogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUhlYWRsaW5lKCJ7ey5wbGF5bGlzdC5wbGF5bGlzdFR5cGUudGl0bGV9fSIpOw0KICAgICAgICAgICAgLy8gVHlwZQ0KICAgICAgICAgICAgdmFyIHRleHQgPSBbIk0zVSIsICJIREhvbWVSdW4iXTsNCiAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBbImphdmFzY3JpcHQ6IG9wZW5Qb3BVcCgnbTN1JykiLCAiamF2YXNjcmlwdDogb3BlblBvcFVwKCdoZGhyJykiXTsNCiAgICAgICAgICAgIHZhciBzZWxlY3QgPSBjb250ZW50LmNyZWF0ZVNlbGVjdCh0ZXh0LCB2YWx1ZXMsICIiLCAidHlwZSIpOw0KICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgiaWQiLCAidHlwZSIpOw0KICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAnamF2YXNjcmlwdDogY2hhbmdlQnV0dG9uQWN0aW9uKHRoaXMsICJuZXh0IiwgIm9uY2xpY2siKScpOyAvLyBjaGFuZ2VCdXR0b25BY3Rpb24NCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5wbGF5bGlzdC50eXBlLnRpdGxlfX0iLCBzZWxlY3QpOw0KICAgICAgICAgICAgLy8gSW50ZXJhY3Rpb24NCiAgICAgICAgICAgIGNvbnRlbnQuY3JlYXRlSW50ZXJhY3Rpb24oKTsNCiAgICAgICAgICAgIC8vIEFib3J0DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAiY2FuY2VsIiwgInt7LmJ1dHRvbi5jYW5jZWx9fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IHNob3dFbGVtZW50KCJwb3B1cCIsIGZhbHNlKTsnKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgLy8gTmV4dA0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgIm5leHQiLCAie3suYnV0dG9uLm5leHR9fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgibTN1IiknKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgiaWQiLCAnbmV4dCcpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSAibTN1IjoNCiAgICAgICAgICAgIGNvbnRlbnQuY3JlYXRlSGVhZGxpbmUoZGF0YVR5cGUpOw0KICAgICAgICAgICAgLy8gTmFtZQ0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gIm5hbWUiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnBsYXlsaXN0Lm5hbWUucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnBsYXlsaXN0Lm5hbWUudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIERlc2NyaXB0aW9uDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAiZGVzY3JpcHRpb24iOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnBsYXlsaXN0LmRlc2NyaXB0aW9uLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5wbGF5bGlzdC5kZXNjcmlwdGlvbi50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgLy8gVVJMDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAiZmlsZS5zb3VyY2UiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnBsYXlsaXN0LmZpbGVNM1UucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnBsYXlsaXN0LmZpbGVNM1UudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIFR1bmVyDQogICAgICAgICAgICBpZiAoU0VSVkVSWyJzZXR0aW5ncyJdWyJidWZmZXIiXSAhPSAiLSIpIHsNCiAgICAgICAgICAgICAgICB2YXIgdGV4dCA9IFtdOw0KICAgICAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBbXTsNCiAgICAgICAgICAgICAgICBmb3IgKHZhciBpID0gMTsgaSA8PSAxMDA7IGkrKykgew0KICAgICAgICAgICAgICAgICAgICB0ZXh0LnB1c2goaS50b1N0cmluZygpKTsNCiAgICAgICAgICAgICAgICAgICAgdmFsdWVzLnB1c2goaS50b1N0cmluZygpKTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgdmFyIGRiS2V5ID0gInR1bmVyIjsNCiAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCBkYXRhW2RiS2V5XSwgZGJLZXkpOw0KICAgICAgICAgICAgICAgIHNlbGVjdC5zZXRBdHRyaWJ1dGUoIm9uZm9jdXMiLCAiamF2YXNjcmlwdDogcmV0dXJuOyIpOw0KICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5wbGF5bGlzdC50dW5lci50aXRsZX19Iiwgc2VsZWN0KTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgICAgIHZhciBkYktleSA9ICJ0dW5lciI7DQogICAgICAgICAgICAgICAgaWYgKGRhdGFbZGJLZXldID09IHVuZGVmaW5lZCkgew0KICAgICAgICAgICAgICAgICAgICBkYXRhW2RiS2V5XSA9IDE7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicmVhZG9ubHkiLCAidHJ1ZSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LmNsYXNzTmFtZSA9ICJub3RBdmFpbGFibGUiOw0KICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5wbGF5bGlzdC50dW5lci50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgY29udGVudC5kZXNjcmlwdGlvbigie3sucGxheWxpc3QudHVuZXIuZGVzY3JpcHRpb259fSIpOw0KICAgICAgICAgICAgLy8gSW50ZXJhdGlvbg0KICAgICAgICAgICAgY29udGVudC5jcmVhdGVJbnRlcmFjdGlvbigpOw0KICAgICAgICAgICAgLy8gRGVsZXRlDQogICAgICAgICAgICBpZiAoZGF0YVsiaWQucHJvdmlkZXIiXSAhPSAiLSIpIHsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAiZGVsZXRlIiwgInt7LmJ1dHRvbi5kZWxldGV9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LmNsYXNzTmFtZSA9ICJkZWxldGUiOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBzYXZlUG9wdXBEYXRhKCJtM3UiLCAiJyArIGlkICsgJyIsIHRydWUsIDApJyk7DQogICAgICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAiYmFjayIsICJ7ey5idXR0b24uYmFja319Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgicGxheWxpc3QiKScpOw0KICAgICAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgLy8gQWJvcnQNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJjYW5jZWwiLCAie3suYnV0dG9uLmNhbmNlbH19Iik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogc2hvd0VsZW1lbnQoInBvcHVwIiwgZmFsc2UpOycpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICAvLyBVcGRhdGUNCiAgICAgICAgICAgIGlmIChkYXRhWyJpZC5wcm92aWRlciJdICE9ICItIikgew0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJ1cGRhdGUiLCAie3suYnV0dG9uLnVwZGF0ZX19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoIm0zdSIsICInICsgaWQgKyAnIiwgZmFsc2UsIDEpJyk7DQogICAgICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICAvLyBTYXZlDQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAic2F2ZSIsICJ7ey5idXR0b24uc2F2ZX19Iik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogc2F2ZVBvcHVwRGF0YSgibTN1IiwgIicgKyBpZCArICciLCBmYWxzZSwgMCknKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGNhc2UgImhkaHIiOg0KICAgICAgICAgICAgY29udGVudC5jcmVhdGVIZWFkbGluZShkYXRhVHlwZSk7DQogICAgICAgICAgICAvLyBOYW1lDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAibmFtZSI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3sucGxheWxpc3QubmFtZS5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sucGxheWxpc3QubmFtZS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgLy8gRGVzY3JpcHRpb24NCiAgICAgICAgICAgIHZhciBkYktleSA9ICJkZXNjcmlwdGlvbiI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3sucGxheWxpc3QuZGVzY3JpcHRpb24ucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnBsYXlsaXN0LmRlc2NyaXB0aW9uLnBsYWNlaG9sZGVyfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBVUkwNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJmaWxlLnNvdXJjZSI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3sucGxheWxpc3QuZmlsZUhESFIucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnBsYXlsaXN0LmZpbGVIREhSLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBUdW5lcg0KICAgICAgICAgICAgaWYgKFNFUlZFUlsic2V0dGluZ3MiXVsiYnVmZmVyIl0gIT0gIi0iKSB7DQogICAgICAgICAgICAgICAgdmFyIHRleHQgPSBbXTsNCiAgICAgICAgICAgICAgICB2YXIgdmFsdWVzID0gW107DQogICAgICAgICAgICAgICAgZm9yICh2YXIgaSA9IDE7IGkgPD0gMTAwOyBpKyspIHsNCiAgICAgICAgICAgICAgICAgICAgdGV4dC5wdXNoKGkudG9TdHJpbmcoKSk7DQogICAgICAgICAgICAgICAgICAgIHZhbHVlcy5wdXNoKGkudG9TdHJpbmcoKSk7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIHZhciBkYktleSA9ICJ0dW5lciI7DQogICAgICAgICAgICAgICAgdmFyIHNlbGVjdCA9IGNvbnRlbnQuY3JlYXRlU2VsZWN0KHRleHQsIHZhbHVlcywgZGF0YVtkYktleV0sIGRiS2V5KTsNCiAgICAgICAgICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJvbmZvY3VzIiwgImphdmFzY3JpcHQ6IHJldHVybjsiKTsNCiAgICAgICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sucGxheWxpc3QudHVuZXIudGl0bGV9fSIsIHNlbGVjdCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICB2YXIgZGJLZXkgPSAidHVuZXIiOw0KICAgICAgICAgICAgICAgIGlmIChkYXRhW2RiS2V5XSA9PSB1bmRlZmluZWQpIHsNCiAgICAgICAgICAgICAgICAgICAgZGF0YVtkYktleV0gPSAxOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInJlYWRvbmx5IiwgInRydWUiKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5jbGFzc05hbWUgPSAibm90QXZhaWxhYmxlIjsNCiAgICAgICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sucGxheWxpc3QudHVuZXIudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGNvbnRlbnQuZGVzY3JpcHRpb24oInt7LnBsYXlsaXN0LnR1bmVyLmRlc2NyaXB0aW9ufX0iKTsNCiAgICAgICAgICAgIC8vIEludGVyYWN0aW9uDQogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUludGVyYWN0aW9uKCk7DQogICAgICAgICAgICAvLyBEZWxldGUNCiAgICAgICAgICAgIGlmIChkYXRhWyJpZC5wcm92aWRlciJdICE9ICItIikgew0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJkZWxldGUiLCAie3suYnV0dG9uLmRlbGV0ZX19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoImhkaHIiLCAiJyArIGlkICsgJyIsIHRydWUsIDApJyk7DQogICAgICAgICAgICAgICAgaW5wdXQuY2xhc3NOYW1lID0gImRlbGV0ZSI7DQogICAgICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAiYmFjayIsICJ7ey5idXR0b24uYmFja319Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgicGxheWxpc3QiKScpOw0KICAgICAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgLy8gQWJvcnQNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJjYW5jZWwiLCAie3suYnV0dG9uLmNhbmNlbH19Iik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogc2hvd0VsZW1lbnQoInBvcHVwIiwgZmFsc2UpOycpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICAvLyBVcGRhdGUNCiAgICAgICAgICAgIGlmIChkYXRhWyJpZC5wcm92aWRlciJdICE9ICItIikgew0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJ1cGRhdGUiLCAie3suYnV0dG9uLnVwZGF0ZX19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoImhkaHIiLCAiJyArIGlkICsgJyIsIGZhbHNlLCAxKScpOw0KICAgICAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgLy8gU2F2ZQ0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgInNhdmUiLCAie3suYnV0dG9uLnNhdmV9fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoImhkaHIiLCAiJyArIGlkICsgJyIsIGZhbHNlLCAwKScpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSAiZmlsdGVyIjoNCiAgICAgICAgICAgIGNvbnRlbnQuY3JlYXRlSGVhZGxpbmUoZGF0YVR5cGUpOw0KICAgICAgICAgICAgLy8gVHlwZQ0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gInR5cGUiOw0KICAgICAgICAgICAgdmFyIHRleHQgPSBbIk0zVTogIiArICJ7ey5maWx0ZXIudHlwZS5ncm91cFRpdGxlfX0iLCAieFRlVmU6ICIgKyAie3suZmlsdGVyLnR5cGUuY3VzdG9tRmlsdGVyfX0iXTsNCiAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBbImphdmFzY3JpcHQ6IG9wZW5Qb3BVcCgnZ3JvdXAtdGl0bGUnKSIsICJqYXZhc2NyaXB0OiBvcGVuUG9wVXAoJ2N1c3RvbS1maWx0ZXInKSJdOw0KICAgICAgICAgICAgdmFyIHNlbGVjdCA9IGNvbnRlbnQuY3JlYXRlU2VsZWN0KHRleHQsIHZhbHVlcywgImphdmFzY3JpcHQ6IG9wZW5Qb3BVcCgnZ3JvdXAtdGl0bGUnKSIsIGRiS2V5KTsNCiAgICAgICAgICAgIHNlbGVjdC5zZXRBdHRyaWJ1dGUoImlkIiwgaWQpOw0KICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAnamF2YXNjcmlwdDogY2hhbmdlQnV0dG9uQWN0aW9uKHRoaXMsICJuZXh0IiwgIm9uY2xpY2siKTsnKTsgLy8gY2hhbmdlQnV0dG9uQWN0aW9uDQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3suZmlsdGVyLnR5cGUudGl0bGV9fSIsIHNlbGVjdCk7DQogICAgICAgICAgICAvLyBJbnRlcmFjdGlvbg0KICAgICAgICAgICAgY29udGVudC5jcmVhdGVJbnRlcmFjdGlvbigpOw0KICAgICAgICAgICAgLy8gQWJvcnQNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJjYW5jZWwiLCAie3suYnV0dG9uLmNhbmNlbH19Iik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogc2hvd0VsZW1lbnQoInBvcHVwIiwgZmFsc2UpOycpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICAvLyBOZXh0DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAibmV4dCIsICJ7ey5idXR0b24ubmV4dH19Iik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJncm91cC10aXRsZSIpJyk7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoImlkIiwgJ25leHQnKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGNhc2UgImN1c3RvbS1maWx0ZXIiOg0KICAgICAgICBjYXNlICJncm91cC10aXRsZSI6DQogICAgICAgICAgICBzd2l0Y2ggKGRhdGFUeXBlKSB7DQogICAgICAgICAgICAgICAgY2FzZSAiY3VzdG9tLWZpbHRlciI6DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuY3JlYXRlSGVhZGxpbmUoInt7LmZpbHRlci5jdXN0b219fSIgKyAiIEZpbHRlciIpOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBjYXNlICJncm91cC10aXRsZSI6DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuY3JlYXRlSGVhZGxpbmUoInt7LmZpbHRlci5ncm91cH19IiArICIgRmlsdGVyIik7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgLy8gTmFtZSAgICAgIA0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gIm5hbWUiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LmZpbHRlci5uYW1lLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5maWx0ZXIubmFtZS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgLy8gRGVzY3JpcHRpb24NCiAgICAgICAgICAgIHZhciBkYktleSA9ICJkZXNjcmlwdGlvbiI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3suZmlsdGVyLmRlc2NyaXB0aW9uLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5maWx0ZXIuZGVzY3JpcHRpb24udGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIFR5cGUNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJ0eXBlIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImhpZGRlbiIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygiIiwgaW5wdXQpOw0KICAgICAgICAgICAgdmFyIGZpbHRlclR5cGUgPSBkYXRhW2RiS2V5XTsNCiAgICAgICAgICAgIHN3aXRjaCAoZmlsdGVyVHlwZSkgew0KICAgICAgICAgICAgICAgIGNhc2UgImN1c3RvbS1maWx0ZXIiOg0KICAgICAgICAgICAgICAgICAgICAvLyBDYXNlIHNlbnNpdGl2ZQ0KICAgICAgICAgICAgICAgICAgICB2YXIgZGJLZXkgPSAiY2FzZVNlbnNpdGl2ZSI7DQogICAgICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goZGJLZXkpOw0KICAgICAgICAgICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YVtkYktleV07DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5maWx0ZXIuY2FzZVNlbnNpdGl2ZS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgICAgICAgICAvLyBGaWx0ZXIgUnVsZSAoQ3VzdG9tKQ0KICAgICAgICAgICAgICAgICAgICB2YXIgZGJLZXkgPSAiZmlsdGVyIjsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3suZmlsdGVyLmZpbHRlclJ1bGUucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3suZmlsdGVyLmZpbHRlclJ1bGUudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAiZ3JvdXAtdGl0bGUiOg0KICAgICAgICAgICAgICAgICAgICAvL2FsZXJ0KGRiS2V5ICsgIiAiICsgZmlsdGVyVHlwZSkNCiAgICAgICAgICAgICAgICAgICAgLy8gRmlsdGVyIGJhc2VkIG9uIHRoZSBncm91cHMgaW4gdGhlIE0zVQ0KICAgICAgICAgICAgICAgICAgICB2YXIgZGJLZXkgPSAiZmlsdGVyIjsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGdyb3Vwc00zVSA9IGdldExvY2FsRGF0YSgibTN1R3JvdXBzIiwgIiIpOw0KICAgICAgICAgICAgICAgICAgICB2YXIgdGV4dCA9IGdyb3Vwc00zVVsidGV4dCJdOw0KICAgICAgICAgICAgICAgICAgICB2YXIgdmFsdWVzID0gZ3JvdXBzTTNVWyJ2YWx1ZSJdOw0KICAgICAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCBkYXRhW2RiS2V5XSwgZGJLZXkpOw0KICAgICAgICAgICAgICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3suZmlsdGVyLmZpbHRlckdyb3VwLnRpdGxlfX0iLCBzZWxlY3QpOw0KICAgICAgICAgICAgICAgICAgICBjb250ZW50LmRlc2NyaXB0aW9uKCJ7ey5maWx0ZXIuZmlsdGVyR3JvdXAuZGVzY3JpcHRpb259fSIpOw0KICAgICAgICAgICAgICAgICAgICAvLyBDYXNlIHNlbnNldGl2ZQ0KICAgICAgICAgICAgICAgICAgICB2YXIgZGJLZXkgPSAiY2FzZVNlbnNpdGl2ZSI7DQogICAgICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goZGJLZXkpOw0KICAgICAgICAgICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YVtkYktleV07DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5maWx0ZXIuY2FzZVNlbnNpdGl2ZS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgICAgICAgICB2YXIgZGJLZXkgPSAiaW5jbHVkZSI7DQogICAgICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LmZpbHRlci5pbmNsdWRlLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LmZpbHRlci5pbmNsdWRlLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuZGVzY3JpcHRpb24oInt7LmZpbHRlci5pbmNsdWRlLmRlc2NyaXB0aW9ufX0iKTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGRiS2V5ID0gImV4Y2x1ZGUiOw0KICAgICAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5maWx0ZXIuZXhjbHVkZS5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5maWx0ZXIuZXhjbHVkZS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgICAgICAgICBjb250ZW50LmRlc2NyaXB0aW9uKCJ7ey5maWx0ZXIuZXhjbHVkZS5kZXNjcmlwdGlvbn19Iik7DQogICAgICAgICAgICAgICAgICAgIC8vIFByZXNlcnZlIE0zVSBQbGF5bGlzdCBDaGFubmVsIE1hcHBpbmcNCiAgICAgICAgICAgICAgICAgICAgdmFyIGRiS2V5ID0gInByZXNlcnZlTWFwcGluZyI7DQogICAgICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goZGJLZXkpOw0KICAgICAgICAgICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YVtkYktleV07DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5maWx0ZXIucHJlc2VydmVNYXBwaW5nLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAgICAgICAgIC8vIFN0YXJ0aW5nIENoYW5uZWwgTnVtYmVyIE1hcHBpbmcNCiAgICAgICAgICAgICAgICAgICAgdmFyIGRiS2V5ID0gInN0YXJ0aW5nQ2hhbm5lbCI7DQogICAgICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LmZpbHRlci5zdGFydGluZ0NoYW5uZWwucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3suZmlsdGVyLnN0YXJ0aW5nQ2hhbm5lbC50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgICAgICAgICAvLyBGaWxsIE1pc3NpbmcgRVBHIERhdGENCiAgICAgICAgICAgICAgICAgICAgLy8gVGhlIGZvbGxvd2luZyBjb2RlIG9ubHkgd29ya3Mgd2hlbiB4VGVWZSBEdW1teSBhbHJlYWR5IGV4aXN0cw0KICAgICAgICAgICAgICAgICAgICAvLyB2YXIgZGJLZXk6c3RyaW5nID0gImRlZmF1bHRNaXNzaW5nRVBHIg0KICAgICAgICAgICAgICAgICAgICAvLyB2YXIgeG1sdHY6WE1MVFZGaWxlID0gbmV3IFhNTFRWRmlsZSgpDQogICAgICAgICAgICAgICAgICAgIC8vIHZhciBzZWxlY3QgPSB4bWx0di5nZXRQcm9ncmFtcygieFRlVmUgRHVtbXkiLCBkYXRhW2RiS2V5XSkNCiAgICAgICAgICAgICAgICAgICAgLy8gc2VsZWN0LnNldEF0dHJpYnV0ZSgibmFtZSIsIGRiS2V5KQ0KICAgICAgICAgICAgICAgICAgICAvLyBzZWxlY3Quc2V0QXR0cmlidXRlKCJpZCIsICJwb3B1cC1taXNzaW5nLWVwZyIpDQogICAgICAgICAgICAgICAgICAgIC8vIFRoZSB3b3JrYXJvdW5kIGlzIGN1cnJlbnRseSB0byBoYXJkIGNvZGUgdGhlIHhUZVZlIER1bW15IGRhdGENCiAgICAgICAgICAgICAgICAgICAgdmFyIGRiS2V5ID0gImRlZmF1bHRNaXNzaW5nRVBHIjsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGxpc3RPcHRpb25zID0geyAidGV4dCI6IFsiLSIsICIzMCBNaW51dGVzICgzMF9NaW51dGVzKSIsICI2MCBNaW51dGVzICg2MF9NaW51dGVzKSIsICI5MCBNaW51dGVzICg5MF9NaW51dGVzKSIsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgIjEyMCBNaW51dGVzICgxMjBfTWludXRlcykiLCAiMTgwIE1pbnV0ZXMgKDMwX01pbnV0ZXMpIiwgIjI0MCBNaW51dGVzICgzMF9NaW51dGVzKSIsICIzNjAgTWludXRlcyAoMzBfTWludXRlcykiXSwNCiAgICAgICAgICAgICAgICAgICAgICAgICJ2YWx1ZSI6IFsiLSIsICIzMF9NaW51dGVzIiwgIjYwX01pbnV0ZXMiLCAiOTBfTWludXRlcyIsICIxMjBfTWludXRlcyIsICIxODBfTWludXRlcyIsICIyNDBfTWludXRlcyIsICIzNjBfTWludXRlcyIsXSB9Ow0KICAgICAgICAgICAgICAgICAgICB2YXIgdGV4dCA9IGxpc3RPcHRpb25zWyJ0ZXh0Il07DQogICAgICAgICAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBsaXN0T3B0aW9uc1sidmFsdWUiXTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHNlbGVjdCA9IGNvbnRlbnQuY3JlYXRlU2VsZWN0KHRleHQsIHZhbHVlcywgZGF0YVtkYktleV0sIGRiS2V5KTsNCiAgICAgICAgICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LmZpbHRlci5kZWZhdWx0TWlzc2luZ0VQRy50aXRsZX19Iiwgc2VsZWN0KTsNCiAgICAgICAgICAgICAgICAgICAgY29udGVudC5kZXNjcmlwdGlvbigie3suZmlsdGVyLmRlZmF1bHRNaXNzaW5nRVBHLmRlc2NyaXB0aW9ufX0iKTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICB9DQogICAgICAgICAgICAvLyBJbnRlcmFjdGlvbg0KICAgICAgICAgICAgY29udGVudC5jcmVhdGVJbnRlcmFjdGlvbigpOw0KICAgICAgICAgICAgLy8gRGVsZXRlDQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAiZGVsZXRlIiwgInt7LmJ1dHRvbi5kZWxldGV9fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoImZpbHRlciIsICInICsgaWQgKyAnIiwgdHJ1ZSwgMCknKTsNCiAgICAgICAgICAgIGlucHV0LmNsYXNzTmFtZSA9ICJkZWxldGUiOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICAvLyBBYm9ydA0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImNhbmNlbCIsICJ7ey5idXR0b24uY2FuY2VsfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBzaG93RWxlbWVudCgicG9wdXAiLCBmYWxzZSk7Jyk7DQogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIC8vIFNhdmUNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJzYXZlIiwgInt7LmJ1dHRvbi5zYXZlfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBzYXZlUG9wdXBEYXRhKCJmaWx0ZXIiLCAiJyArIGlkICsgJyIsIGZhbHNlLCAwKScpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSAieG1sdHYiOg0KICAgICAgICAgICAgY29udGVudC5jcmVhdGVIZWFkbGluZShkYXRhVHlwZSk7DQogICAgICAgICAgICAvLyBOYW1lDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAibmFtZSI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3sueG1sdHYubmFtZS5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sueG1sdHYubmFtZS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgLy8gRGVzY3JpcHRpb24NCiAgICAgICAgICAgIHZhciBkYktleSA9ICJkZXNjcmlwdGlvbiI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3sueG1sdHYuZGVzY3JpcHRpb24ucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnhtbHR2LmRlc2NyaXB0aW9uLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBVUkwNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJmaWxlLnNvdXJjZSI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3sueG1sdHYuZmlsZVhNTFRWLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey54bWx0di5maWxlWE1MVFYudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIEludGVyYWN0aW9uDQogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUludGVyYWN0aW9uKCk7DQogICAgICAgICAgICAvLyBEZWxldGUNCiAgICAgICAgICAgIGlmIChkYXRhWyJpZC5wcm92aWRlciJdICE9ICItIikgew0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJkZWxldGUiLCAie3suYnV0dG9uLmRlbGV0ZX19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoInhtbHR2IiwgIicgKyBpZCArICciLCB0cnVlLCAwKScpOw0KICAgICAgICAgICAgICAgIGlucHV0LmNsYXNzTmFtZSA9ICJkZWxldGUiOw0KICAgICAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgLy8gQWJvcnQNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJjYW5jZWwiLCAie3suYnV0dG9uLmNhbmNlbH19Iik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogc2hvd0VsZW1lbnQoInBvcHVwIiwgZmFsc2UpOycpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICAvLyBVcGRhdGUNCiAgICAgICAgICAgIGlmIChkYXRhWyJpZC5wcm92aWRlciJdICE9ICItIikgew0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJ1cGRhdGUiLCAie3suYnV0dG9uLnVwZGF0ZX19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoInhtbHR2IiwgIicgKyBpZCArICciLCBmYWxzZSwgMSknKTsNCiAgICAgICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIC8vIFNhdmUNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJzYXZlIiwgInt7LmJ1dHRvbi5zYXZlfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBzYXZlUG9wdXBEYXRhKCJ4bWx0diIsICInICsgaWQgKyAnIiwgZmFsc2UsIDApJyk7DQogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJ1c2VycyI6DQogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUhlYWRsaW5lKCJ7ey5tYWluTWVudS5pdGVtLnVzZXJzfX0iKTsNCiAgICAgICAgICAgIC8vIFVzZXIgbmFtZQ0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gInVzZXJuYW1lIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey51c2Vycy51c2VybmFtZS5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sudXNlcnMudXNlcm5hbWUudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIE5ldyBQYXJzc3dvcmQNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJwYXNzd29yZCI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJwYXNzd29yZCIsIGRiS2V5LCAiIik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnVzZXJzLnBhc3N3b3JkLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey51c2Vycy5wYXNzd29yZC50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgLy8gQ29uZmlybWF0aW9uDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAiY29uZmlybSI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJwYXNzd29yZCIsIGRiS2V5LCAiIik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnVzZXJzLmNvbmZpcm0ucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnVzZXJzLmNvbmZpcm0udGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIEF1dGhlbnRpY2F0aW9uIFdFQg0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gImF1dGhlbnRpY2F0aW9uLndlYiI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KGRiS2V5KTsNCiAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhW2RiS2V5XTsNCiAgICAgICAgICAgIGlmIChkYXRhWyJkZWZhdWx0VXNlciJdID09IHRydWUpIHsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAiamF2YXNjcmlwdDogcmV0dXJuIGZhbHNlIik7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sudXNlcnMud2ViLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBBdXRoZW50aWNhdGlvbiBQTVMNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJhdXRoZW50aWNhdGlvbi5wbXMiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChkYktleSk7DQogICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YVtkYktleV07DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sudXNlcnMucG1zLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBBdXRoZW50aWNhdGlvbiBNM1UNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJhdXRoZW50aWNhdGlvbi5tM3UiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChkYktleSk7DQogICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YVtkYktleV07DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sudXNlcnMubTN1LnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBBdXRoZW50aWNhdGlvbiBYTUwNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJhdXRoZW50aWNhdGlvbi54bWwiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChkYktleSk7DQogICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YVtkYktleV07DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sudXNlcnMueG1sLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBBdXRoZW50aWNhdGlvbiBBUEkNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJhdXRoZW50aWNhdGlvbi5hcGkiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChkYktleSk7DQogICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YVtkYktleV07DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sudXNlcnMuYXBpLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBJbnRlcmFjdGlvbg0KICAgICAgICAgICAgY29udGVudC5jcmVhdGVJbnRlcmFjdGlvbigpOw0KICAgICAgICAgICAgLy8gRGVsZXRlDQogICAgICAgICAgICBpZiAoZGF0YVsiZGVmYXVsdFVzZXIiXSAhPSB0cnVlICYmIGlkICE9ICItIikgew0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJkZWxldGUiLCAie3suYnV0dG9uLmRlbGV0ZX19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuY2xhc3NOYW1lID0gImRlbGV0ZSI7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoIicgKyBkYXRhVHlwZSArICciLCAiJyArIGlkICsgJyIsIHRydWUsIDApJyk7DQogICAgICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICAvLyBBYm9ydA0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImNhbmNlbCIsICJ7ey5idXR0b24uY2FuY2VsfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBzaG93RWxlbWVudCgicG9wdXAiLCBmYWxzZSk7Jyk7DQogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIC8vIFNhdmUNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJzYXZlIiwgInt7LmJ1dHRvbi5zYXZlfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBzYXZlUG9wdXBEYXRhKCInICsgZGF0YVR5cGUgKyAnIiwgIicgKyBpZCArICciLCAiZmFsc2UiKTsnKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGNhc2UgIm1hcHBpbmciOg0KICAgICAgICAgICAgY29udGVudC5jcmVhdGVIZWFkbGluZSgie3subWFpbk1lbnUuaXRlbS5tYXBwaW5nfX0iKTsNCiAgICAgICAgICAgIC8vIEFjdGl2ZQ0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gIngtYWN0aXZlIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goZGJLZXkpOw0KICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGFbZGJLZXldOw0KICAgICAgICAgICAgaW5wdXQuaWQgPSAiYWN0aXZlIjsNCiAgICAgICAgICAgIC8vaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpDQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRvZ2dsZUNoYW5uZWxTdGF0dXMoJyIgKyBpZCArICInLCB0aGlzKSIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7Lm1hcHBpbmcuYWN0aXZlLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBDaGFubmVsIG5hbWUNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJ4LW5hbWUiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICBpZiAoQlVMS19FRElUID09IHRydWUpIHsNCiAgICAgICAgICAgICAgICBpbnB1dC5zdHlsZS5ib3JkZXIgPSAic29saWQgMXB4IHJlZCI7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJyZWFkb25seSIsICJ0cnVlIik7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3subWFwcGluZy5jaGFubmVsTmFtZS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgY29udGVudC5kZXNjcmlwdGlvbihkYXRhWyJuYW1lIl0pOw0KICAgICAgICAgICAgLy8gRGVzY3JpcHRpb24NCiAgICAgICAgICAgIHZhciBkYktleSA9ICJ4LWRlc2NyaXB0aW9uIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5tYXBwaW5nLmRlc2NyaXB0aW9uLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5tYXBwaW5nLmRlc2NyaXB0aW9uLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBVcGRhdGUgdGhlIGNoYW5uZWwgbmFtZQ0KICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoIl91dWlkLmtleSIpKSB7DQogICAgICAgICAgICAgICAgaWYgKGRhdGFbIl91dWlkLmtleSJdICE9ICIiKSB7DQogICAgICAgICAgICAgICAgICAgIHZhciBkYktleSA9ICJ4LXVwZGF0ZS1jaGFubmVsLW5hbWUiOw0KICAgICAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KGRiS2V5KTsNCiAgICAgICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YVtkYktleV07DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5tYXBwaW5nLnVwZGF0ZUNoYW5uZWxOYW1lLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgLy8gTG9nbyBVUkwgKENoYW5uZWwpIA0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gInR2Zy1sb2dvIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJpZCIsICJjaGFubmVsLWljb24iKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5tYXBwaW5nLmNoYW5uZWxMb2dvLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBDaGFubmVsIGxvZ28gdXBkYXRlDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAieC11cGRhdGUtY2hhbm5lbC1pY29uIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goZGJLZXkpOw0KICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGFbZGJLZXldOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJpZCIsICJ1cGRhdGUtaWNvbiIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJzsgY2hhbmdlQ2hhbm5lbExvZ28oJyIgKyBpZCArICInKTsiKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5tYXBwaW5nLnVwZGF0ZUNoYW5uZWxMb2dvLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBFeHBhbmQgRVBHIGNhdGVnb3J5DQogICAgICAgICAgICB2YXIgZGJLZXkgPSAieC1jYXRlZ29yeSI7DQogICAgICAgICAgICB2YXIgdGV4dCA9IFsiLSIsICJLaWRzIChFbWJ5IG9ubHkpIiwgIk5ld3MiLCAiTW92aWUiLCAiU2VyaWVzIiwgIlNwb3J0cyJdOw0KICAgICAgICAgICAgdmFyIHZhbHVlcyA9IFsiIiwgIktpZHMiLCAiTmV3cyIsICJNb3ZpZSIsICJTZXJpZXMiLCAiU3BvcnRzIl07DQogICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCBkYXRhW2RiS2V5XSwgZGJLZXkpOw0KICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5tYXBwaW5nLmVwZ0NhdGVnb3J5LnRpdGxlfX0iLCBzZWxlY3QpOw0KICAgICAgICAgICAgLy8gTTNVIGdyb3VwIHRpdGxlDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAieC1ncm91cC10aXRsZSI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgIGlucHV0LmRhdGFzZXQub2xkVmFsdWUgPSBkYXRhW2RiS2V5XTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5tYXBwaW5nLm0zdUdyb3VwVGl0bGUudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIGlmIChkYXRhWyJncm91cC10aXRsZSJdICE9IHVuZGVmaW5lZCkgew0KICAgICAgICAgICAgICAgIGNvbnRlbnQuZGVzY3JpcHRpb24oZGF0YVsiZ3JvdXAtdGl0bGUiXSk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBpZiAoZGF0YVsieC11cGRhdGUtY2hhbm5lbC1ncm91cCJdID09IHRydWUpIHsNCiAgICAgICAgICAgICAgICBpbnB1dC5kaXNhYmxlZCA9IHRydWU7DQogICAgICAgICAgICB9DQogICAgICAgICAgICAvLyBVcGRhdGUgY2hhbm5lbCBncm91cCBjaGVja2JveA0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gIngtdXBkYXRlLWNoYW5uZWwtZ3JvdXAiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChkYktleSk7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRvZ2dsZUdyb3VwVXBkYXRlQ2IoJyIgKyBpZCArICInLCB0aGlzKTsiKTsNCiAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhW2RiS2V5XTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5tYXBwaW5nLnVwZGF0ZUNoYW5uZWxHcm91cC50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgY29udGVudC5kZXNjcmlwdGlvbigie3subWFwcGluZy51cGRhdGVDaGFubmVsR3JvdXAuZGVzY3JpcHRpb259fSIpOw0KICAgICAgICAgICAgLy8gWE1MVFYgZmlsZQ0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gIngteG1sdHYtZmlsZSI7DQogICAgICAgICAgICB2YXIgeG1sRmlsZSA9IGRhdGFbZGJLZXldOw0KICAgICAgICAgICAgdmFyIHhtbHR2ID0gbmV3IFhNTFRWRmlsZSgpOw0KICAgICAgICAgICAgdmFyIHNlbGVjdCA9IHhtbHR2LmdldEZpbGVzKGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIHNlbGVjdC5zZXRBdHRyaWJ1dGUoIm5hbWUiLCBkYktleSk7DQogICAgICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJpZCIsICJwb3B1cC14bWx0diIpOw0KICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCc7IHNldFhtbHR2Q2hhbm5lbCgnIiArIGlkICsgIicsdGhpcyk7Iik7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3subWFwcGluZy54bWx0dkZpbGUudGl0bGV9fSIsIHNlbGVjdCk7DQogICAgICAgICAgICB2YXIgZmlsZSA9IGRhdGFbZGJLZXldOw0KICAgICAgICAgICAgLy8gWE1MVFYgTWFwcGluZw0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gIngtbWFwcGluZyI7DQogICAgICAgICAgICB2YXIgeG1sdHYgPSBuZXcgWE1MVFZGaWxlKCk7DQogICAgICAgICAgICB2YXIgc2VsZWN0ID0geG1sdHYuZ2V0UHJvZ3JhbXMoZmlsZSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgibmFtZSIsIGRiS2V5KTsNCiAgICAgICAgICAgIHNlbGVjdC5zZXRBdHRyaWJ1dGUoImlkIiwgInBvcHVwLW1hcHBpbmciKTsNCiAgICAgICAgICAgIHNlbGVjdC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnOyBjaGVja1htbHR2Q2hhbm5lbCgnIiArIGlkICsgIicsdGhpcywnIiArIHhtbEZpbGUgKyAiJyk7Iik7DQogICAgICAgICAgICBzb3J0U2VsZWN0KHNlbGVjdCk7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3subWFwcGluZy54bWx0dkNoYW5uZWwudGl0bGV9fSIsIHNlbGVjdCk7DQogICAgICAgICAgICAvLyBUaW1lc2hpZnQNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJ4LXRpbWVzaGlmdCI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3subWFwcGluZy50aW1lc2hpZnQucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJpZCIsICJ0aW1lc2hpZnQiKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5tYXBwaW5nLnRpbWVzaGlmdC50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgLy8gSW50ZXJhY3Rpb24NCiAgICAgICAgICAgIGNvbnRlbnQuY3JlYXRlSW50ZXJhY3Rpb24oKTsNCiAgICAgICAgICAgIC8vIFVwbG9hZCBsb2dvDQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAiY2FuY2VsIiwgInt7LmJ1dHRvbi51cGxvYWRMb2dvfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiB1cGxvYWRMb2dvKCk7Jyk7DQogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIC8vIEFib3J0DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAiY2FuY2VsIiwgInt7LmJ1dHRvbi5jYW5jZWx9fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IHNob3dFbGVtZW50KCJwb3B1cCIsIGZhbHNlKTsnKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgLy8gRmluaXNoZWQNCiAgICAgICAgICAgIHZhciBpZHMgPSBbXTsNCiAgICAgICAgICAgIGlkcyA9IGdldEFsbFNlbGVjdGVkQ2hhbm5lbHMoKTsNCiAgICAgICAgICAgIGlmIChpZHMubGVuZ3RoID09IDApIHsNCiAgICAgICAgICAgICAgICBpZHMucHVzaChpZCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAic2F2ZSIsICJ7ey5idXR0b24uZG9uZX19Iik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogZG9uZVBvcHVwRGF0YSgiJyArIGRhdGFUeXBlICsgJyIsICInICsgaWRzICsgJyIsICJmYWxzZSIpOycpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgIGJyZWFrOw0KICAgIH0NCiAgICBzaG93UG9wVXBFbGVtZW50KCdwb3B1cC1jdXN0b20nKTsNCn0NCmNsYXNzIFhNTFRWRmlsZSB7DQogICAgZ2V0RmlsZXMoc2V0KSB7DQogICAgICAgIGxldCBmaWxlSURzID0gZ2V0T2JqS2V5cyhTRVJWRVJbInhlcGciXVsieG1sdHZNYXAiXSk7DQogICAgICAgIGxldCB2YWx1ZXMgPSBuZXcgQXJyYXkoIi0iKTsNCiAgICAgICAgbGV0IHRleHQgPSBuZXcgQXJyYXkoIi0iKTsNCiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBmaWxlSURzLmxlbmd0aDsgaSsrKSB7DQogICAgICAgICAgICBpZiAoZmlsZUlEc1tpXSAhPSAieFRlVmUgRHVtbXkiKSB7DQogICAgICAgICAgICAgICAgdmFsdWVzLnB1c2goZ2V0VmFsdWVGcm9tUHJvdmlkZXJGaWxlKGZpbGVJRHNbaV0sICJ4bWx0diIsICJmaWxlLnh0ZXZlIikpOw0KICAgICAgICAgICAgICAgIHRleHQucHVzaChnZXRWYWx1ZUZyb21Qcm92aWRlckZpbGUoZmlsZUlEc1tpXSwgInhtbHR2IiwgIm5hbWUiKSk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICB2YWx1ZXMucHVzaChmaWxlSURzW2ldKTsNCiAgICAgICAgICAgICAgICB0ZXh0LnB1c2goZmlsZUlEc1tpXSk7DQogICAgICAgICAgICB9DQogICAgICAgIH0NCiAgICAgICAgbGV0IHNlbGVjdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlNFTEVDVCIpOw0KICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRleHQubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgICAgIHZhciBvcHRpb24gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJPUFRJT04iKTsNCiAgICAgICAgICAgIG9wdGlvbi5zZXRBdHRyaWJ1dGUoInZhbHVlIiwgdmFsdWVzW2ldKTsNCiAgICAgICAgICAgIG9wdGlvbi5pbm5lclRleHQgPSB0ZXh0W2ldOw0KICAgICAgICAgICAgc2VsZWN0LmFwcGVuZENoaWxkKG9wdGlvbik7DQogICAgICAgIH0NCiAgICAgICAgaWYgKHNldCAhPSAiIikgew0KICAgICAgICAgICAgc2VsZWN0LnZhbHVlID0gc2V0Ow0KICAgICAgICB9DQogICAgICAgIHJldHVybiBzZWxlY3Q7DQogICAgfQ0KICAgIGdldFByb2dyYW1zKGZpbGUsIHNldCkgew0KICAgICAgICAvL3ZhciBmaWxlSURzOnN0cmluZ1tdID0gZ2V0T2JqS2V5cyhTRVJWRVJbInhlcGciXVsieG1sdHZNYXAiXSkNCiAgICAgICAgbGV0IHZhbHVlcyA9IGdldE9iaktleXMoU0VSVkVSWyJ4ZXBnIl1bInhtbHR2TWFwIl1bZmlsZV0pOw0KICAgICAgICBsZXQgdGV4dCA9IFtdOw0KICAgICAgICBsZXQgZnJpZW5kbHlOYW1lOw0KICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHZhbHVlcy5sZW5ndGg7IGkrKykgew0KICAgICAgICAgICAgaWYgKFNFUlZFUlsieGVwZyJdWyJ4bWx0dk1hcCJdW2ZpbGVdW3ZhbHVlc1tpXV0uaGFzT3duUHJvcGVydHkoJ2ZyaWVuZGx5LW5hbWUnKSA9PSB0cnVlKSB7DQogICAgICAgICAgICAgICAgZnJpZW5kbHlOYW1lID0gU0VSVkVSWyJ4ZXBnIl1bInhtbHR2TWFwIl1bZmlsZV1bdmFsdWVzW2ldXVsiZnJpZW5kbHktbmFtZSJdOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgZWxzZSB7DQogICAgICAgICAgICAgICAgZnJpZW5kbHlOYW1lID0gIi0iOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgdGV4dFtpXSA9IGZyaWVuZGx5TmFtZSArICIgKCIgKyB2YWx1ZXNbaV0gKyAiKSI7DQogICAgICAgIH0NCiAgICAgICAgdGV4dC51bnNoaWZ0KCItIik7DQogICAgICAgIHZhbHVlcy51bnNoaWZ0KCItIik7DQogICAgICAgIGxldCBzZWxlY3QgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJTRUxFQ1QiKTsNCiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0ZXh0Lmxlbmd0aDsgaSsrKSB7DQogICAgICAgICAgICB2YXIgb3B0aW9uID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiT1BUSU9OIik7DQogICAgICAgICAgICBvcHRpb24uc2V0QXR0cmlidXRlKCJ2YWx1ZSIsIHZhbHVlc1tpXSk7DQogICAgICAgICAgICBvcHRpb24uaW5uZXJUZXh0ID0gdGV4dFtpXTsNCiAgICAgICAgICAgIHNlbGVjdC5hcHBlbmRDaGlsZChvcHRpb24pOw0KICAgICAgICB9DQogICAgICAgIGlmIChzZXQgIT0gIiIpIHsNCiAgICAgICAgICAgIHNlbGVjdC52YWx1ZSA9IHNldDsNCiAgICAgICAgfQ0KICAgICAgICBpZiAoc2VsZWN0LnZhbHVlICE9IHNldCkgew0KICAgICAgICAgICAgc2VsZWN0LnZhbHVlID0gIi0iOw0KICAgICAgICB9DQogICAgICAgIHJldHVybiBzZWxlY3Q7DQogICAgfQ0KfQ0KZnVuY3Rpb24gZ2V0VmFsdWVGcm9tUHJvdmlkZXJGaWxlKGZpbGUsIGZpbGVUeXBlLCBrZXkpIHsNCiAgICBpZiAoZmlsZSA9PSAieFRlVmUgRHVtbXkiKSB7DQogICAgICAgIHJldHVybiBmaWxlOw0KICAgIH0NCiAgICBsZXQgZmlsZUlEOw0KICAgIGxldCBpbmRpY2F0b3IgPSBmaWxlLmNoYXJBdCgwKTsNCiAgICBzd2l0Y2ggKGluZGljYXRvcikgew0KICAgICAgICBjYXNlICJNIjoNCiAgICAgICAgICAgIGZpbGVUeXBlID0gIm0zdSI7DQogICAgICAgICAgICBmaWxlSUQgPSBmaWxlOw0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGNhc2UgIkgiOg0KICAgICAgICAgICAgZmlsZVR5cGUgPSAiaGRociI7DQogICAgICAgICAgICBmaWxlSUQgPSBmaWxlOw0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGNhc2UgIlgiOg0KICAgICAgICAgICAgZmlsZVR5cGUgPSAieG1sdHYiOw0KICAgICAgICAgICAgZmlsZUlEID0gZmlsZS5zdWJzdHJpbmcoMCwgZmlsZS5sYXN0SW5kZXhPZignLicpKTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgIH0NCiAgICBpZiAoU0VSVkVSWyJzZXR0aW5ncyJdWyJmaWxlcyJdW2ZpbGVUeXBlXS5oYXNPd25Qcm9wZXJ0eShmaWxlSUQpID09IHRydWUpIHsNCiAgICAgICAgdmFyIGRhdGEgPSBTRVJWRVJbInNldHRpbmdzIl1bImZpbGVzIl1bZmlsZVR5cGVdW2ZpbGVJRF07DQogICAgICAgIHJldHVybiBkYXRhW2tleV07DQogICAgfQ0KICAgIHJldHVybjsNCn0NCmZ1bmN0aW9uIHNldFhtbHR2Q2hhbm5lbChpZCwgZWxlbWVudCkgew0KICAgIGxldCB4bWx0diA9IG5ldyBYTUxUVkZpbGUoKTsNCiAgICBsZXQgeG1sRmlsZSA9IGVsZW1lbnQudmFsdWU7DQogICAgbGV0IHR2Z0lkID0gU0VSVkVSWyJ4ZXBnIl1bImVwZ01hcHBpbmciXVtpZF1bInR2Zy1pZCJdOw0KICAgIGxldCB0ZCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJwb3B1cC1tYXBwaW5nIikucGFyZW50RWxlbWVudDsNCiAgICB0ZC5pbm5lckhUTUwgPSAiIjsNCiAgICBsZXQgc2VsZWN0ID0geG1sdHYuZ2V0UHJvZ3JhbXMoZWxlbWVudC52YWx1ZSwgdHZnSWQpOw0KICAgIHNlbGVjdC5zZXRBdHRyaWJ1dGUoIm5hbWUiLCAieC1tYXBwaW5nIik7DQogICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgiaWQiLCAicG9wdXAtbWFwcGluZyIpOw0KICAgIHNlbGVjdC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnOyBjaGVja1htbHR2Q2hhbm5lbCgnIiArIGlkICsgIicsdGhpcywnIiArIHhtbEZpbGUgKyAiJyk7Iik7DQogICAgc2VsZWN0LmNsYXNzTmFtZSA9ICJjaGFuZ2VkIjsNCiAgICBzb3J0U2VsZWN0KHNlbGVjdCk7DQogICAgdGQuYXBwZW5kQ2hpbGQoc2VsZWN0KTsNCiAgICBjaGVja1htbHR2Q2hhbm5lbChpZCwgc2VsZWN0LCB4bWxGaWxlKTsNCn0NCmZ1bmN0aW9uIGNoZWNrWG1sdHZDaGFubmVsKGlkLCBlbGVtZW50LCB4bWxGaWxlKSB7DQogICAgbGV0IHZhbHVlID0gZWxlbWVudC52YWx1ZTsNCiAgICBsZXQgYm9vbDsNCiAgICBsZXQgY2hlY2tib3ggPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYWN0aXZlJyk7DQogICAgbGV0IGNoYW5uZWwgPSBTRVJWRVJbInhlcGciXVsiZXBnTWFwcGluZyJdW2lkXTsNCiAgICBsZXQgdXBkYXRlTG9nbzsNCiAgICBib29sID0gdmFsdWUgIT0gIi0iOw0KICAgIGNoZWNrYm94LmNoZWNrZWQgPSBib29sOw0KICAgIGNoZWNrYm94LmNsYXNzTmFtZSA9ICJjaGFuZ2VkIjsNCiAgICBjb25zb2xlLmxvZyh4bWxGaWxlKTsNCiAgICAvLyBVcGRhdGUgY2hhbm5lbCBsb2dvDQogICAgLyoNCiAgICB1cGRhdGVMb2dvID0gKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ1cGRhdGUtaWNvbiIpIGFzIEhUTUxJbnB1dEVsZW1lbnQpLmNoZWNrZWQNCiAgICBjb25zb2xlLmxvZyh1cGRhdGVMb2dvKTsNCiAgICAqLw0KICAgIGlmICh4bWxGaWxlICE9ICJ4VGVWZSBEdW1teSIgJiYgYm9vbCA9PSB0cnVlKSB7DQogICAgICAgIC8vKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ1cGRhdGUtaWNvbiIpIGFzIEhUTUxJbnB1dEVsZW1lbnQpLmNoZWNrZWQgPSB0cnVlOw0KICAgICAgICAvLyhkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidXBkYXRlLWljb24iKSBhcyBIVE1MSW5wdXRFbGVtZW50KS5jbGFzc05hbWUgPSAiY2hhbmdlZCI7DQogICAgICAgIGNvbnNvbGUubG9nKCJJRCIsIGlkKTsNCiAgICAgICAgY2hhbmdlQ2hhbm5lbExvZ28oaWQpOw0KICAgICAgICByZXR1cm47DQogICAgfQ0KICAgIGlmICh4bWxGaWxlID09ICJ4VGVWZSBEdW1teSIpIHsNCiAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInVwZGF0ZS1pY29uIikuY2hlY2tlZCA9IGZhbHNlOw0KICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidXBkYXRlLWljb24iKS5jbGFzc05hbWUgPSAiY2hhbmdlZCI7DQogICAgfQ0KICAgIHJldHVybjsNCn0NCmZ1bmN0aW9uIGNoYW5nZUNoYW5uZWxMb2dvKGlkKSB7DQogICAgbGV0IHVwZGF0ZUxvZ287DQogICAgbGV0IGNoYW5uZWwgPSBTRVJWRVJbInhlcGciXVsiZXBnTWFwcGluZyJdW2lkXTsNCiAgICBsZXQgZiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJwb3B1cC14bWx0diIpOw0KICAgIGxldCB4bWx0dkZpbGUgPSBmLm9wdGlvbnNbZi5zZWxlY3RlZEluZGV4XS52YWx1ZTsNCiAgICBsZXQgbSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJwb3B1cC1tYXBwaW5nIik7DQogICAgbGV0IHhNYXBwaW5nID0gbS5vcHRpb25zW20uc2VsZWN0ZWRJbmRleF0udmFsdWU7DQogICAgbGV0IHhtbHR2TG9nbyA9IFNFUlZFUlsieGVwZyJdWyJ4bWx0dk1hcCJdW3htbHR2RmlsZV1beE1hcHBpbmddWyJpY29uIl07DQogICAgdXBkYXRlTG9nbyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ1cGRhdGUtaWNvbiIpLmNoZWNrZWQ7DQogICAgaWYgKHVwZGF0ZUxvZ28gPT0gdHJ1ZSAmJiB4bWx0dkZpbGUgIT0gInhUZVZlIER1bW15Iikgew0KICAgICAgICBpZiAoU0VSVkVSWyJ4ZXBnIl1bInhtbHR2TWFwIl1beG1sdHZGaWxlXS5oYXNPd25Qcm9wZXJ0eSh4TWFwcGluZykpIHsNCiAgICAgICAgICAgIHZhciBsb2dvID0geG1sdHZMb2dvOw0KICAgICAgICB9DQogICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgbG9nbyA9IGNoYW5uZWxbInR2Zy1sb2dvIl07DQogICAgICAgIH0NCiAgICAgICAgdmFyIGxvZ29JbnB1dCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjaGFubmVsLWljb24iKTsNCiAgICAgICAgbG9nb0lucHV0LnZhbHVlID0gbG9nbzsNCiAgICAgICAgaWYgKEJVTEtfRURJVCA9PSBmYWxzZSkgew0KICAgICAgICAgICAgbG9nb0lucHV0LmNsYXNzTmFtZSA9ICJjaGFuZ2VkIjsNCiAgICAgICAgfQ0KICAgIH0NCn0NCmZ1bmN0aW9uIHNhdmVQb3B1cERhdGEoZGF0YVR5cGUsIGlkLCByZW1vdmUsIG9wdGlvbikgew0KICAgIGlmIChkYXRhVHlwZSA9PSAibWFwcGluZyIpIHsNCiAgICAgICAgbGV0IGRhdGEgPSB7fTsNCiAgICAgICAgY29uc29sZS5sb2coIlNhdmUgbWFwcGluZyBkYXRhIik7DQogICAgICAgIGxldCBjbWQgPSAic2F2ZUVwZ01hcHBpbmciOw0KICAgICAgICBkYXRhWyJlcGdNYXBwaW5nIl0gPSBTRVJWRVJbInhlcGciXVsiZXBnTWFwcGluZyJdOw0KICAgICAgICBjb25zb2xlLmxvZygiU0VORCBUTyBTRVJWRVIiKTsNCiAgICAgICAgbGV0IHNlcnZlciA9IG5ldyBTZXJ2ZXIoY21kKTsNCiAgICAgICAgc2VydmVyLnJlcXVlc3QoZGF0YSk7DQogICAgICAgIGRlbGV0ZSBVTkRPWyJlcGdNYXBwaW5nIl07DQogICAgICAgIHJldHVybjsNCiAgICB9DQogICAgY29uc29sZS5sb2coIlNhdmUgcG9wdXAgZGF0YSIpOw0KICAgIGxldCBkaXYgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicG9wdXAtY3VzdG9tIik7DQogICAgbGV0IGlucHV0cyA9IGRpdi5nZXRFbGVtZW50c0J5VGFnTmFtZSgiVEFCTEUiKVswXS5nZXRFbGVtZW50c0J5VGFnTmFtZSgiSU5QVVQiKTsNCiAgICBsZXQgc2VsZWN0cyA9IGRpdi5nZXRFbGVtZW50c0J5VGFnTmFtZSgiVEFCTEUiKVswXS5nZXRFbGVtZW50c0J5VGFnTmFtZSgiU0VMRUNUIik7DQogICAgbGV0IGlucHV0ID0ge307DQogICAgbGV0IGNvbmZpcm1Nc2c7DQogICAgZm9yIChsZXQgaSA9IDA7IGkgPCBzZWxlY3RzLmxlbmd0aDsgaSsrKSB7DQogICAgICAgIHZhciBuYW1lOw0KICAgICAgICBuYW1lID0gc2VsZWN0c1tpXS5uYW1lOw0KICAgICAgICB2YXIgdmFsdWUgPSBzZWxlY3RzW2ldLnZhbHVlOw0KICAgICAgICBzd2l0Y2ggKG5hbWUpIHsNCiAgICAgICAgICAgIGNhc2UgInR1bmVyIjoNCiAgICAgICAgICAgICAgICBpbnB1dFtuYW1lXSA9IHBhcnNlSW50KHZhbHVlKTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICAgICAgaW5wdXRbbmFtZV0gPSB2YWx1ZTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgfQ0KICAgIH0NCiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGlucHV0cy5sZW5ndGg7IGkrKykgew0KICAgICAgICBzd2l0Y2ggKGlucHV0c1tpXS50eXBlKSB7DQogICAgICAgICAgICBjYXNlICJjaGVja2JveCI6DQogICAgICAgICAgICAgICAgbmFtZSA9IGlucHV0c1tpXS5uYW1lOw0KICAgICAgICAgICAgICAgIGlucHV0W25hbWVdID0gaW5wdXRzW2ldLmNoZWNrZWQ7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ0ZXh0IjoNCiAgICAgICAgICAgIGNhc2UgImhpZGRlbiI6DQogICAgICAgICAgICBjYXNlICJwYXNzd29yZCI6DQogICAgICAgICAgICAgICAgbmFtZSA9IGlucHV0c1tpXS5uYW1lOw0KICAgICAgICAgICAgICAgIHN3aXRjaCAobmFtZSkgew0KICAgICAgICAgICAgICAgICAgICBjYXNlICJ0dW5lciI6DQogICAgICAgICAgICAgICAgICAgICAgICBpbnB1dFtuYW1lXSA9IHBhcnNlSW50KGlucHV0c1tpXS52YWx1ZSk7DQogICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgICAgICAgICAgICAgIGlucHV0W25hbWVdID0gaW5wdXRzW2ldLnZhbHVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICB9DQogICAgfQ0KICAgIGxldCBkYXRhID0ge307DQogICAgbGV0IGNtZDsNCiAgICBpZiAocmVtb3ZlID09IHRydWUpIHsNCiAgICAgICAgaW5wdXRbImRlbGV0ZSJdID0gdHJ1ZTsNCiAgICB9DQogICAgc3dpdGNoIChkYXRhVHlwZSkgew0KICAgICAgICBjYXNlICJ1c2VycyI6DQogICAgICAgICAgICBjb25maXJtTXNnID0gIkRlbGV0ZSB0aGlzIHVzZXI/IjsNCiAgICAgICAgICAgIGlmIChpZCA9PSAiLSIpIHsNCiAgICAgICAgICAgICAgICBjbWQgPSAic2F2ZU5ld1VzZXIiOw0KICAgICAgICAgICAgICAgIGRhdGFbInVzZXJEYXRhIl0gPSBpbnB1dDsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgICAgIGNtZCA9ICJzYXZlVXNlckRhdGEiOw0KICAgICAgICAgICAgICAgIGxldCBkID0ge307DQogICAgICAgICAgICAgICAgZFtpZF0gPSBpbnB1dDsNCiAgICAgICAgICAgICAgICBkYXRhWyJ1c2VyRGF0YSJdID0gZDsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJtM3UiOg0KICAgICAgICAgICAgY29uZmlybU1zZyA9ICJEZWxldGUgdGhpcyBwbGF5bGlzdD8iOw0KICAgICAgICAgICAgc3dpdGNoIChvcHRpb24pIHsNCiAgICAgICAgICAgICAgICAvLyBQb3B1cDogU2F2ZQ0KICAgICAgICAgICAgICAgIGNhc2UgMDoNCiAgICAgICAgICAgICAgICAgICAgY21kID0gInNhdmVGaWxlc00zVSI7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIC8vIFBvcHVwOiBVcGRhdGUNCiAgICAgICAgICAgICAgICBjYXNlIDE6DQogICAgICAgICAgICAgICAgICAgIGNtZCA9ICJ1cGRhdGVGaWxlTTNVIjsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBkYXRhWyJmaWxlcyJdID0ge307DQogICAgICAgICAgICBkYXRhWyJmaWxlcyJdW2RhdGFUeXBlXSA9IHt9Ow0KICAgICAgICAgICAgZGF0YVsiZmlsZXMiXVtkYXRhVHlwZV1baWRdID0gaW5wdXQ7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSAiaGRociI6DQogICAgICAgICAgICBjb25maXJtTXNnID0gIkRlbGV0ZSB0aGlzIEhESG9tZVJ1biB0dW5lcj8iOw0KICAgICAgICAgICAgc3dpdGNoIChvcHRpb24pIHsNCiAgICAgICAgICAgICAgICAvLyBQb3B1cDogU2F2ZQ0KICAgICAgICAgICAgICAgIGNhc2UgMDoNCiAgICAgICAgICAgICAgICAgICAgY21kID0gInNhdmVGaWxlc0hESFIiOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICAvLyBQb3B1cDogVXBkYXRlDQogICAgICAgICAgICAgICAgY2FzZSAxOg0KICAgICAgICAgICAgICAgICAgICBjbWQgPSAidXBkYXRlRmlsZUhESFIiOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGRhdGFbImZpbGVzIl0gPSB7fTsNCiAgICAgICAgICAgIGRhdGFbImZpbGVzIl1bZGF0YVR5cGVdID0ge307DQogICAgICAgICAgICBkYXRhWyJmaWxlcyJdW2RhdGFUeXBlXVtpZF0gPSBpbnB1dDsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJ4bWx0diI6DQogICAgICAgICAgICBjb25maXJtTXNnID0gIkRlbGV0ZSB0aGlzIFhNTFRWIGZpbGU/IjsNCiAgICAgICAgICAgIHN3aXRjaCAob3B0aW9uKSB7DQogICAgICAgICAgICAgICAgLy8gUG9wdXA6IFNhdmUNCiAgICAgICAgICAgICAgICBjYXNlIDA6DQogICAgICAgICAgICAgICAgICAgIGNtZCA9ICJzYXZlRmlsZXNYTUxUViI7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIC8vIFBvcHVwOiBVcGRhdGUNCiAgICAgICAgICAgICAgICBjYXNlIDE6DQogICAgICAgICAgICAgICAgICAgIGNtZCA9ICJ1cGRhdGVGaWxlWE1MVFYiOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGRhdGFbImZpbGVzIl0gPSB7fTsNCiAgICAgICAgICAgIGRhdGFbImZpbGVzIl1bZGF0YVR5cGVdID0ge307DQogICAgICAgICAgICBkYXRhWyJmaWxlcyJdW2RhdGFUeXBlXVtpZF0gPSBpbnB1dDsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJmaWx0ZXIiOg0KICAgICAgICAgICAgY29uZmlybU1zZyA9ICJEZWxldGUgdGhpcyBmaWx0ZXI/IjsNCiAgICAgICAgICAgIGNtZCA9ICJzYXZlRmlsdGVyIjsNCiAgICAgICAgICAgIGRhdGFbImZpbHRlciJdID0ge307DQogICAgICAgICAgICBkYXRhWyJmaWx0ZXIiXVtpZF0gPSBpbnB1dDsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBkZWZhdWx0Og0KICAgICAgICAgICAgY29uc29sZS5sb2coZGF0YVR5cGUsIGlkKTsNCiAgICAgICAgICAgIHJldHVybjsNCiAgICB9DQogICAgaWYgKHJlbW92ZSA9PSB0cnVlKSB7DQogICAgICAgIGlmICghY29uZmlybShjb25maXJtTXNnKSkgew0KICAgICAgICAgICAgc2hvd0VsZW1lbnQoInBvcHVwIiwgZmFsc2UpOw0KICAgICAgICAgICAgcmV0dXJuOw0KICAgICAgICB9DQogICAgfQ0KICAgIGNvbnNvbGUubG9nKCJTRU5EIFRPIFNFUlZFUiIpOw0KICAgIGNvbnNvbGUubG9nKGRhdGEpOw0KICAgIGxldCBzZXJ2ZXIgPSBuZXcgU2VydmVyKGNtZCk7DQogICAgc2VydmVyLnJlcXVlc3QoZGF0YSk7DQp9DQpmdW5jdGlvbiBkb25lUG9wdXBEYXRhKGRhdGFUeXBlLCBpZHNTdHIpIHsNCiAgICBsZXQgaWRzID0gaWRzU3RyLnNwbGl0KCcsJyk7DQogICAgbGV0IGRpdiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJwb3B1cC1jdXN0b20iKTsNCiAgICBsZXQgaW5wdXRzID0gZGl2LmdldEVsZW1lbnRzQnlDbGFzc05hbWUoImNoYW5nZWQiKTsNCiAgICBpZHMuZm9yRWFjaChpZCA9PiB7DQogICAgICAgIGxldCBpbnB1dDsNCiAgICAgICAgaW5wdXQgPSBTRVJWRVJbInhlcGciXVsiZXBnTWFwcGluZyJdW2lkXTsNCiAgICAgICAgY29uc29sZS5sb2coaW5wdXQpOw0KICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGlucHV0cy5sZW5ndGg7IGkrKykgew0KICAgICAgICAgICAgbGV0IG5hbWU7DQogICAgICAgICAgICBsZXQgdmFsdWU7DQogICAgICAgICAgICBzd2l0Y2ggKGlucHV0c1tpXS50YWdOYW1lKSB7DQogICAgICAgICAgICAgICAgY2FzZSAiSU5QVVQiOg0KICAgICAgICAgICAgICAgICAgICBzd2l0Y2ggKGlucHV0c1tpXS50eXBlKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBjYXNlICJjaGVja2JveCI6DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZSA9IGlucHV0c1tpXS5uYW1lOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlID0gaW5wdXRzW2ldLmNoZWNrZWQ7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5wdXRbbmFtZV0gPSB2YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgInRleHQiOg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWUgPSBpbnB1dHNbaV0ubmFtZTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IGlucHV0c1tpXS52YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnB1dFtuYW1lXSA9IHZhbHVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgIlNFTEVDVCI6DQogICAgICAgICAgICAgICAgICAgIG5hbWUgPSBpbnB1dHNbaV0ubmFtZTsNCiAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSBpbnB1dHNbaV0udmFsdWU7DQogICAgICAgICAgICAgICAgICAgIGlucHV0W25hbWVdID0gdmFsdWU7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgc3dpdGNoIChuYW1lKSB7DQogICAgICAgICAgICAgICAgY2FzZSAidHZnLWxvZ28iOg0KICAgICAgICAgICAgICAgICAgICAvLyhkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkuY2hpbGROb2Rlc1syXS5maXJzdENoaWxkIGFzIEhUTUxFbGVtZW50KS5zZXRBdHRyaWJ1dGUoInNyYyIsIHZhbHVlKQ0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBjYXNlICJ4LW5hbWUiOg0KICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkuY2hpbGROb2Rlc1szXS5maXJzdENoaWxkLmlubmVySFRNTCA9IHZhbHVlOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBjYXNlICJ4LWNhdGVnb3J5IjoNCiAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpLmNoaWxkTm9kZXNbM10uZmlyc3RDaGlsZC5jbGFzc05hbWUgPSB2YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAieC1ncm91cC10aXRsZSI6DQogICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5jaGlsZE5vZGVzWzVdLmZpcnN0Q2hpbGQuaW5uZXJIVE1MID0gdmFsdWU7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgIngteG1sdHYtZmlsZSI6DQogICAgICAgICAgICAgICAgICAgIGlmICh2YWx1ZSAhPSAieFRlVmUgRHVtbXkiICYmIHZhbHVlICE9ICItIikgew0KICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSBnZXRWYWx1ZUZyb21Qcm92aWRlckZpbGUodmFsdWUsICJ4bWx0diIsICJuYW1lIik7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgaWYgKHZhbHVlID09ICItIikgew0KICAgICAgICAgICAgICAgICAgICAgICAgaW5wdXRbIngtYWN0aXZlIl0gPSBmYWxzZTsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkuY2hpbGROb2Rlc1s2XS5maXJzdENoaWxkLmlubmVySFRNTCA9IHZhbHVlOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBjYXNlICJ4LW1hcHBpbmciOg0KICAgICAgICAgICAgICAgICAgICBpZiAodmFsdWUgPT0gIi0iKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBpbnB1dFsieC1hY3RpdmUiXSA9IGZhbHNlOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5jaGlsZE5vZGVzWzddLmZpcnN0Q2hpbGQuaW5uZXJIVE1MID0gdmFsdWU7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgIngtdGltZXNoaWZ0IjoNCiAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpLmNoaWxkTm9kZXNbOF0uZmlyc3RDaGlsZC5pbm5lckhUTUwgPSB2YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGNyZWF0ZVNlYXJjaE9iaigpOw0KICAgICAgICAgICAgc2VhcmNoSW5NYXBwaW5nKCk7DQogICAgICAgIH0NCiAgICAgICAgaWYgKGlucHV0WyJ4LWFjdGl2ZSJdID09IGZhbHNlKSB7DQogICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkuY2xhc3NOYW1lID0gIm5vdEFjdGl2ZUVQRyI7DQogICAgICAgIH0NCiAgICAgICAgZWxzZSB7DQogICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkuY2xhc3NOYW1lID0gImFjdGl2ZUVQRyI7DQogICAgICAgIH0NCiAgICAgICAgY29uc29sZS5sb2coaW5wdXRbInR2Zy1sb2dvIl0pOw0KICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkuY2hpbGROb2Rlc1syXS5maXJzdENoaWxkLnNldEF0dHJpYnV0ZSgic3JjIiwgaW5wdXRbInR2Zy1sb2dvIl0pOw0KICAgIH0pOw0KICAgIHNob3dFbGVtZW50KCJwb3B1cCIsIGZhbHNlKTsNCiAgICByZXR1cm47DQp9DQpmdW5jdGlvbiBzaG93UHJldmlldyhlbGVtZW50KSB7DQogICAgbGV0IGRpdiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJteVN0cmVhbXNCb3giKTsNCiAgICBzd2l0Y2ggKGVsZW1lbnQpIHsNCiAgICAgICAgY2FzZSBmYWxzZToNCiAgICAgICAgICAgIGRpdi5jbGFzc05hbWUgPSAibm90VmlzaWJsZSI7DQogICAgICAgICAgICByZXR1cm47DQogICAgfQ0KICAgIGxldCBzdHJlYW1zID0gWyJhY3RpdmVTdHJlYW1zIiwgImluYWN0aXZlU3RyZWFtcyJdOw0KICAgIHN0cmVhbXMuZm9yRWFjaChwcmV2aWV3ID0+IHsNCiAgICAgICAgbGV0IHRhYmxlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQocHJldmlldyk7DQogICAgICAgIHRhYmxlLmlubmVySFRNTCA9ICIiOw0KICAgICAgICBsZXQgb2JqID0gU0VSVkVSWyJkYXRhIl1bIlN0cmVhbVByZXZpZXdVSSJdW3ByZXZpZXddOw0KICAgICAgICBvYmouZm9yRWFjaChjaGFubmVsID0+IHsNCiAgICAgICAgICAgIGxldCB0ciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlRSIik7DQogICAgICAgICAgICBsZXQgdGRLZXkgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgbGV0IHRkVmFsID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgIHRkS2V5LmNsYXNzTmFtZSA9ICJ0ZEtleSI7DQogICAgICAgICAgICB0ZFZhbC5jbGFzc05hbWUgPSAidGRWYWwiOw0KICAgICAgICAgICAgc3dpdGNoIChwcmV2aWV3KSB7DQogICAgICAgICAgICAgICAgY2FzZSAiYWN0aXZlU3RyZWFtcyI6DQogICAgICAgICAgICAgICAgICAgIHRkS2V5LmlubmVyVGV4dCA9ICJDaGFubmVsOiAoKykiOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBjYXNlICJpbmFjdGl2ZVN0cmVhbXMiOg0KICAgICAgICAgICAgICAgICAgICB0ZEtleS5pbm5lclRleHQgPSAiQ2hhbm5lbDogKC0pIjsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICB9DQogICAgICAgICAgICB0ZFZhbC5pbm5lclRleHQgPSBjaGFubmVsOw0KICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQodGRLZXkpOw0KICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQodGRWYWwpOw0KICAgICAgICAgICAgdGFibGUuYXBwZW5kQ2hpbGQodHIpOw0KICAgICAgICB9KTsNCiAgICB9KTsNCiAgICBzaG93RWxlbWVudCgibG9hZGluZyIsIGZhbHNlKTsNCiAgICBkaXYuY2xhc3NOYW1lID0gInZpc2libGUiOw0KICAgIHJldHVybjsNCn0NCg==" webUI["html/js/network_ts.js"] = "Y2xhc3MgU2VydmVyIHsNCiAgICBjb25zdHJ1Y3RvcihjbWQpIHsNCiAgICAgICAgdGhpcy5jbWQgPSBjbWQ7DQogICAgfQ0KICAgIHJlcXVlc3QoZGF0YSkgew0KICAgICAgICBpZiAoU0VSVkVSX0NPTk5FQ1RJT04gPT0gdHJ1ZSkgew0KICAgICAgICAgICAgcmV0dXJuOw0KICAgICAgICB9DQogICAgICAgIFNFUlZFUl9DT05ORUNUSU9OID0gdHJ1ZTsNCiAgICAgICAgY29uc29sZS5sb2coZGF0YSk7DQogICAgICAgIGlmICh0aGlzLmNtZCAhPSAidXBkYXRlTG9nIikgew0KICAgICAgICAgICAgc2hvd0VsZW1lbnQoImxvYWRpbmciLCB0cnVlKTsNCiAgICAgICAgICAgIFVORE8gPSBuZXcgT2JqZWN0KCk7DQogICAgICAgIH0NCiAgICAgICAgc3dpdGNoICh3aW5kb3cubG9jYXRpb24ucHJvdG9jb2wpIHsNCiAgICAgICAgICAgIGNhc2UgImh0dHA6IjoNCiAgICAgICAgICAgICAgICB0aGlzLnByb3RvY29sID0gIndzOi8vIjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImh0dHBzOiI6DQogICAgICAgICAgICAgICAgdGhpcy5wcm90b2NvbCA9ICJ3c3M6Ly8iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICB9DQogICAgICAgIHZhciB1cmwgPSB0aGlzLnByb3RvY29sICsgd2luZG93LmxvY2F0aW9uLmhvc3RuYW1lICsgIjoiICsgd2luZG93LmxvY2F0aW9uLnBvcnQgKyAiL2RhdGEvIiArICI/VG9rZW49IiArIGdldENvb2tpZSgiVG9rZW4iKTsNCiAgICAgICAgZGF0YVsiY21kIl0gPSB0aGlzLmNtZDsNCiAgICAgICAgdmFyIHdzID0gbmV3IFdlYlNvY2tldCh1cmwpOw0KICAgICAgICB3cy5vbm9wZW4gPSBmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICBXU19BVkFJTEFCTEUgPSB0cnVlOw0KICAgICAgICAgICAgY29uc29sZS5sb2coIlJFUVVFU1QgKEpTKToiKTsNCiAgICAgICAgICAgIGNvbnNvbGUubG9nKGRhdGEpOw0KICAgICAgICAgICAgY29uc29sZS5sb2coIlJFUVVFU1Q6IChKU09OKSIpOw0KICAgICAgICAgICAgY29uc29sZS5sb2coSlNPTi5zdHJpbmdpZnkoZGF0YSkpOw0KICAgICAgICAgICAgdGhpcy5zZW5kKEpTT04uc3RyaW5naWZ5KGRhdGEpKTsNCiAgICAgICAgfTsNCiAgICAgICAgd3Mub25lcnJvciA9IGZ1bmN0aW9uIChlKSB7DQogICAgICAgICAgICBjb25zb2xlLmxvZygiTm8gd2Vic29ja2V0IGNvbm5lY3Rpb24gdG8geFRlVmUgY291bGQgYmUgZXN0YWJsaXNoZWQuIENoZWNrIHlvdXIgbmV0d29yayBjb25maWd1cmF0aW9uLiIpOw0KICAgICAgICAgICAgU0VSVkVSX0NPTk5FQ1RJT04gPSBmYWxzZTsNCiAgICAgICAgICAgIGlmIChXU19BVkFJTEFCTEUgPT0gZmFsc2UpIHsNCiAgICAgICAgICAgICAgICBhbGVydCgiTm8gd2Vic29ja2V0IGNvbm5lY3Rpb24gdG8geFRlVmUgY291bGQgYmUgZXN0YWJsaXNoZWQuIENoZWNrIHlvdXIgbmV0d29yayBjb25maWd1cmF0aW9uLiIpOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9Ow0KICAgICAgICB3cy5vbm1lc3NhZ2UgPSBmdW5jdGlvbiAoZSkgew0KICAgICAgICAgICAgU0VSVkVSX0NPTk5FQ1RJT04gPSBmYWxzZTsNCiAgICAgICAgICAgIHNob3dFbGVtZW50KCJsb2FkaW5nIiwgZmFsc2UpOw0KICAgICAgICAgICAgY29uc29sZS5sb2coIlJFU1BPTlNFOiIpOw0KICAgICAgICAgICAgdmFyIHJlc3BvbnNlID0gSlNPTi5wYXJzZShlLmRhdGEpOw0KICAgICAgICAgICAgY29uc29sZS5sb2cocmVzcG9uc2UpOw0KICAgICAgICAgICAgaWYgKHJlc3BvbnNlLmhhc093blByb3BlcnR5KCJ0b2tlbiIpKSB7DQogICAgICAgICAgICAgICAgZG9jdW1lbnQuY29va2llID0gIlRva2VuPSIgKyByZXNwb25zZVsidG9rZW4iXTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGlmIChyZXNwb25zZVsic3RhdHVzIl0gPT0gZmFsc2UpIHsNCiAgICAgICAgICAgICAgICBhbGVydChyZXNwb25zZVsiZXJyIl0pOw0KICAgICAgICAgICAgICAgIGlmIChyZXNwb25zZS5oYXNPd25Qcm9wZXJ0eSgicmVsb2FkIikpIHsNCiAgICAgICAgICAgICAgICAgICAgbG9jYXRpb24ucmVsb2FkKCk7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIHJldHVybjsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGlmIChyZXNwb25zZS5oYXNPd25Qcm9wZXJ0eSgibG9nb1VSTCIpKSB7DQogICAgICAgICAgICAgICAgdmFyIGRpdiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjaGFubmVsLWljb24iKTsNCiAgICAgICAgICAgICAgICBkaXYudmFsdWUgPSByZXNwb25zZVsibG9nb1VSTCJdOw0KICAgICAgICAgICAgICAgIGRpdi5jbGFzc05hbWUgPSAiY2hhbmdlZCI7DQogICAgICAgICAgICAgICAgcmV0dXJuOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgc3dpdGNoIChkYXRhWyJjbWQiXSkgew0KICAgICAgICAgICAgICAgIGNhc2UgInVwZGF0ZUxvZyI6DQogICAgICAgICAgICAgICAgICAgIFNFUlZFUlsibG9nIl0gPSByZXNwb25zZVsibG9nIl07DQogICAgICAgICAgICAgICAgICAgIGlmIChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29udGVudF9sb2ciKSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgc2hvd0xvZ3MoZmFsc2UpOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIHJldHVybjsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgICAgICAgICAgU0VSVkVSID0gbmV3IE9iamVjdCgpOw0KICAgICAgICAgICAgICAgICAgICBTRVJWRVIgPSByZXNwb25zZTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBpZiAocmVzcG9uc2UuaGFzT3duUHJvcGVydHkoIm9wZW5NZW51IikpIHsNCiAgICAgICAgICAgICAgICB2YXIgbWVudSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHJlc3BvbnNlWyJvcGVuTWVudSJdKTsNCiAgICAgICAgICAgICAgICBtZW51LmNsaWNrKCk7DQogICAgICAgICAgICAgICAgc2hvd0VsZW1lbnQoInBvcHVwIiwgZmFsc2UpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgaWYgKHJlc3BvbnNlLmhhc093blByb3BlcnR5KCJvcGVuTGluayIpKSB7DQogICAgICAgICAgICAgICAgd2luZG93LmxvY2F0aW9uID0gcmVzcG9uc2VbIm9wZW5MaW5rIl07DQogICAgICAgICAgICB9DQogICAgICAgICAgICBpZiAocmVzcG9uc2UuaGFzT3duUHJvcGVydHkoImFsZXJ0IikpIHsNCiAgICAgICAgICAgICAgICBhbGVydChyZXNwb25zZVsiYWxlcnQiXSk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBpZiAocmVzcG9uc2UuaGFzT3duUHJvcGVydHkoInJlbG9hZCIpKSB7DQogICAgICAgICAgICAgICAgbG9jYXRpb24ucmVsb2FkKCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBpZiAocmVzcG9uc2UuaGFzT3duUHJvcGVydHkoIndpemFyZCIpKSB7DQogICAgICAgICAgICAgICAgY3JlYXRlTGF5b3V0KCk7DQogICAgICAgICAgICAgICAgY29uZmlndXJhdGlvbldpemFyZFtyZXNwb25zZVsid2l6YXJkIl1dLmNyZWF0ZVdpemFyZCgpOw0KICAgICAgICAgICAgICAgIHJldHVybjsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGNyZWF0ZUxheW91dCgpOw0KICAgICAgICB9Ow0KICAgIH0NCn0NCmZ1bmN0aW9uIGdldENvb2tpZShuYW1lKSB7DQogICAgdmFyIHZhbHVlID0gIjsgIiArIGRvY3VtZW50LmNvb2tpZTsNCiAgICB2YXIgcGFydHMgPSB2YWx1ZS5zcGxpdCgiOyAiICsgbmFtZSArICI9Iik7DQogICAgaWYgKHBhcnRzLmxlbmd0aCA9PSAyKQ0KICAgICAgICByZXR1cm4gcGFydHMucG9wKCkuc3BsaXQoIjsiKS5zaGlmdCgpOw0KfQ0K" webUI["html/js/settings_ts.js"] = "Y2xhc3MgU2V0dGluZ3NDYXRlZ29yeSB7DQogICAgY29uc3RydWN0b3IoKSB7DQogICAgICAgIHRoaXMuRG9jdW1lbnRJRCA9ICJjb250ZW50X3NldHRpbmdzIjsNCiAgICB9DQogICAgY3JlYXRlQ2F0ZWdvcnlIZWFkbGluZSh2YWx1ZSkgew0KICAgICAgICB2YXIgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIkg0Iik7DQogICAgICAgIGVsZW1lbnQuaW5uZXJIVE1MID0gdmFsdWU7DQogICAgICAgIHJldHVybiBlbGVtZW50Ow0KICAgIH0NCiAgICBjcmVhdGVIUigpIHsNCiAgICAgICAgdmFyIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJIUiIpOw0KICAgICAgICByZXR1cm4gZWxlbWVudDsNCiAgICB9DQogICAgY3JlYXRlU2V0dGluZ3Moc2V0dGluZ3NLZXkpIHsNCiAgICAgICAgdmFyIHNldHRpbmcgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJUUiIpOw0KICAgICAgICB2YXIgY29udGVudCA9IG5ldyBQb3B1cENvbnRlbnQoKTsNCiAgICAgICAgdmFyIGRhdGEgPSBTRVJWRVJbInNldHRpbmdzIl1bc2V0dGluZ3NLZXldOw0KICAgICAgICBzd2l0Y2ggKHNldHRpbmdzS2V5KSB7DQogICAgICAgICAgICAvLyBUZXh0IGlucHV0cw0KICAgICAgICAgICAgY2FzZSAidXBkYXRlIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLnVwZGF0ZS50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsICJ1cGRhdGUiLCBkYXRhLnRvU3RyaW5nKCkpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3suc2V0dGluZ3MudXBkYXRlLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJiYWNrdXAucGF0aCI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5iYWNrdXBQYXRoLnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgImJhY2t1cC5wYXRoIiwgZGF0YSk7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5zZXR0aW5ncy5iYWNrdXBQYXRoLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ0ZW1wLnBhdGgiOg0KICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MudGVtcFBhdGgudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCAidGVtcC5wYXRoIiwgZGF0YSk7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5zZXR0aW5ncy50bXBQYXRoLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ1c2VyLmFnZW50IjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLnVzZXJBZ2VudC50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsICJ1c2VyLmFnZW50IiwgZGF0YSk7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5zZXR0aW5ncy51c2VyQWdlbnQucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImJ1ZmZlci50aW1lb3V0IjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmJ1ZmZlclRpbWVvdXQudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCAiYnVmZmVyLnRpbWVvdXQiLCBkYXRhKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnNldHRpbmdzLmJ1ZmZlclRpbWVvdXQucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImZmbXBlZy5wYXRoIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmZmbXBlZ1BhdGgudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCAiZmZtcGVnLnBhdGgiLCBkYXRhKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnNldHRpbmdzLmZmbXBlZ1BhdGgucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImZmbXBlZy5vcHRpb25zIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmZmbXBlZ09wdGlvbnMudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCAiZmZtcGVnLm9wdGlvbnMiLCBkYXRhKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnNldHRpbmdzLmZmbXBlZ09wdGlvbnMucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInZsYy5wYXRoIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLnZsY1BhdGgudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCAidmxjLnBhdGgiLCBkYXRhKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnNldHRpbmdzLnZsY1BhdGgucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInZsYy5vcHRpb25zIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLnZsY09wdGlvbnMudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCAidmxjLm9wdGlvbnMiLCBkYXRhKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnNldHRpbmdzLnZsY09wdGlvbnMucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIC8vIENoZWNrYm94ZXMNCiAgICAgICAgICAgIGNhc2UgImF1dGhlbnRpY2F0aW9uLndlYiI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5hdXRoZW50aWNhdGlvbldFQi50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChzZXR0aW5nc0tleSk7DQogICAgICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGE7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiYXV0aGVudGljYXRpb24ucG1zIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmF1dGhlbnRpY2F0aW9uUE1TLnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KHNldHRpbmdzS2V5KTsNCiAgICAgICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJhdXRoZW50aWNhdGlvbi5tM3UiOg0KICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MuYXV0aGVudGljYXRpb25NM1UudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goc2V0dGluZ3NLZXkpOw0KICAgICAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImF1dGhlbnRpY2F0aW9uLnhtbCI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5hdXRoZW50aWNhdGlvblhNTC50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChzZXR0aW5nc0tleSk7DQogICAgICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGE7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiYXV0aGVudGljYXRpb24uYXBpIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmF1dGhlbnRpY2F0aW9uQVBJLnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KHNldHRpbmdzS2V5KTsNCiAgICAgICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJmaWxlcy51cGRhdGUiOg0KICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MuZmlsZXNVcGRhdGUudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goc2V0dGluZ3NLZXkpOw0KICAgICAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImNhY2hlLmltYWdlcyI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5jYWNoZUltYWdlcy50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChzZXR0aW5nc0tleSk7DQogICAgICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGE7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAieGVwZy5yZXBsYWNlLm1pc3NpbmcuaW1hZ2VzIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLnJlcGxhY2VFbXB0eUltYWdlcy50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChzZXR0aW5nc0tleSk7DQogICAgICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGE7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAieHRldmVBdXRvVXBkYXRlIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLnh0ZXZlQXV0b1VwZGF0ZS50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChzZXR0aW5nc0tleSk7DQogICAgICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGE7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiYXBpIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmFwaS50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChzZXR0aW5nc0tleSk7DQogICAgICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGE7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgLy8gU2VsZWN0DQogICAgICAgICAgICBjYXNlICJ0dW5lciI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy50dW5lci50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIHRleHQgPSBuZXcgQXJyYXkoKTsNCiAgICAgICAgICAgICAgICB2YXIgdmFsdWVzID0gbmV3IEFycmF5KCk7DQogICAgICAgICAgICAgICAgZm9yICh2YXIgaSA9IDE7IGkgPD0gMTAwOyBpKyspIHsNCiAgICAgICAgICAgICAgICAgICAgdGV4dC5wdXNoKGkpOw0KICAgICAgICAgICAgICAgICAgICB2YWx1ZXMucHVzaChpKTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgdmFyIHNlbGVjdCA9IGNvbnRlbnQuY3JlYXRlU2VsZWN0KHRleHQsIHZhbHVlcywgZGF0YSwgc2V0dGluZ3NLZXkpOw0KICAgICAgICAgICAgICAgIHNlbGVjdC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChzZWxlY3QpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiZXBnU291cmNlIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmVwZ1NvdXJjZS50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIHRleHQgPSBbIlBNUyIsICJYRVBHIl07DQogICAgICAgICAgICAgICAgdmFyIHZhbHVlcyA9IFsiUE1TIiwgIlhFUEciXTsNCiAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCBkYXRhLCBzZXR0aW5nc0tleSk7DQogICAgICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKHNlbGVjdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJiYWNrdXAua2VlcCI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5iYWNrdXBLZWVwLnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgdGV4dCA9IFsiNSIsICIxMCIsICIyMCIsICIzMCIsICI0MCIsICI1MCJdOw0KICAgICAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBbIjUiLCAiMTAiLCAiMjAiLCAiMzAiLCAiNDAiLCAiNTAiXTsNCiAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCBkYXRhLCBzZXR0aW5nc0tleSk7DQogICAgICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKHNlbGVjdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJidWZmZXIuc2l6ZS5rYiI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5idWZmZXJTaXplLnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgdGV4dCA9IFsiMC41IE1CIiwgIjEgTUIiLCAiMiBNQiIsICIzIE1CIiwgIjQgTUIiLCAiNSBNQiIsICI2IE1CIiwgIjcgTUIiLCAiOCBNQiJdOw0KICAgICAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBbIjUxMiIsICIxMDI0IiwgIjIwNDgiLCAiMzA3MiIsICI0MDk2IiwgIjUxMjAiLCAiNjE0NCIsICI3MTY4IiwgIjgxOTIiXTsNCiAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCBkYXRhLCBzZXR0aW5nc0tleSk7DQogICAgICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKHNlbGVjdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJidWZmZXIiOg0KICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3Muc3RyZWFtQnVmZmVyaW5nLnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgdGV4dCA9IFsie3suc2V0dGluZ3Muc3RyZWFtQnVmZmVyaW5nLmluZm9fZmFsc2V9fSIsICJ4VGVWZTogKHt7LnNldHRpbmdzLnN0cmVhbUJ1ZmZlcmluZy5pbmZvX3h0ZXZlfX0pIiwgIkZGbXBlZzogKHt7LnNldHRpbmdzLnN0cmVhbUJ1ZmZlcmluZy5pbmZvX2ZmbXBlZ319KSIsICJWTEM6ICh7ey5zZXR0aW5ncy5zdHJlYW1CdWZmZXJpbmcuaW5mb192bGN9fSkiXTsNCiAgICAgICAgICAgICAgICB2YXIgdmFsdWVzID0gWyItIiwgInh0ZXZlIiwgImZmbXBlZyIsICJ2bGMiXTsNCiAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCBkYXRhLCBzZXR0aW5nc0tleSk7DQogICAgICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKHNlbGVjdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ1ZHB4eSI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy51ZHB4eS50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsICJ1ZHB4eSIsIGRhdGEpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3suc2V0dGluZ3MudWRweHkucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgfQ0KICAgICAgICByZXR1cm4gc2V0dGluZzsNCiAgICB9DQogICAgY3JlYXRlRGVzY3JpcHRpb24oc2V0dGluZ3NLZXkpIHsNCiAgICAgICAgdmFyIGRlc2NyaXB0aW9uID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVFIiKTsNCiAgICAgICAgdmFyIHRleHQ7DQogICAgICAgIHN3aXRjaCAoc2V0dGluZ3NLZXkpIHsNCiAgICAgICAgICAgIGNhc2UgImF1dGhlbnRpY2F0aW9uLndlYiI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5hdXRoZW50aWNhdGlvbldFQi5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImF1dGhlbnRpY2F0aW9uLm0zdSI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5hdXRoZW50aWNhdGlvbk0zVS5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImF1dGhlbnRpY2F0aW9uLnBtcyI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5hdXRoZW50aWNhdGlvblBNUy5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImF1dGhlbnRpY2F0aW9uLnhtbCI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5hdXRoZW50aWNhdGlvblhNTC5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImF1dGhlbnRpY2F0aW9uLmFwaSI6DQogICAgICAgICAgICAgICAgaWYgKFNFUlZFUlsic2V0dGluZ3MiXVsiYXV0aGVudGljYXRpb24ud2ViIl0gPT0gdHJ1ZSkgew0KICAgICAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLmF1dGhlbnRpY2F0aW9uQVBJLmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInh0ZXZlQXV0b1VwZGF0ZSI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy54dGV2ZUF1dG9VcGRhdGUuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJiYWNrdXAua2VlcCI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5iYWNrdXBLZWVwLmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiYmFja3VwLnBhdGgiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MuYmFja3VwUGF0aC5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInRlbXAucGF0aCI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy50ZW1wUGF0aC5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImJ1ZmZlciI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5zdHJlYW1CdWZmZXJpbmcuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJidWZmZXIuc2l6ZS5rYiI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5idWZmZXJTaXplLmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiYnVmZmVyLnRpbWVvdXQiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MuYnVmZmVyVGltZW91dC5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInVzZXIuYWdlbnQiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MudXNlckFnZW50LmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiZmZtcGVnLnBhdGgiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MuZmZtcGVnUGF0aC5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImZmbXBlZy5vcHRpb25zIjoNCiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLmZmbXBlZ09wdGlvbnMuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ2bGMucGF0aCI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy52bGNQYXRoLmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAidmxjLm9wdGlvbnMiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MudmxjT3B0aW9ucy5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImVwZ1NvdXJjZSI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5lcGdTb3VyY2UuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ0dW5lciI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy50dW5lci5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInVwZGF0ZSI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy51cGRhdGUuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJhcGkiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MuYXBpLmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiZmlsZXMudXBkYXRlIjoNCiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLmZpbGVzVXBkYXRlLmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiY2FjaGUuaW1hZ2VzIjoNCiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLmNhY2hlSW1hZ2VzLmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAieGVwZy5yZXBsYWNlLm1pc3NpbmcuaW1hZ2VzIjoNCiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLnJlcGxhY2VFbXB0eUltYWdlcy5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInVkcHh5IjoNCiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLnVkcHh5LmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgICAgICB0ZXh0ID0gIiI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIH0NCiAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAiIjsNCiAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICB2YXIgcHJlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiUFJFIik7DQogICAgICAgIHByZS5pbm5lckhUTUwgPSB0ZXh0Ow0KICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKHByZSk7DQogICAgICAgIGRlc2NyaXB0aW9uLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgIGRlc2NyaXB0aW9uLmFwcGVuZENoaWxkKHRkUmlnaHQpOw0KICAgICAgICByZXR1cm4gZGVzY3JpcHRpb247DQogICAgfQ0KfQ0KY2xhc3MgU2V0dGluZ3NDYXRlZ29yeUl0ZW0gZXh0ZW5kcyBTZXR0aW5nc0NhdGVnb3J5IHsNCiAgICBjb25zdHJ1Y3RvcihoZWFkbGluZSwgc2V0dGluZ3NLZXlzKSB7DQogICAgICAgIHN1cGVyKCk7DQogICAgICAgIHRoaXMuaGVhZGxpbmUgPSBoZWFkbGluZTsNCiAgICAgICAgdGhpcy5zZXR0aW5nc0tleXMgPSBzZXR0aW5nc0tleXM7DQogICAgfQ0KICAgIGNyZWF0ZUNhdGVnb3J5KCkgew0KICAgICAgICB2YXIgaGVhZGxpbmUgPSB0aGlzLmNyZWF0ZUNhdGVnb3J5SGVhZGxpbmUodGhpcy5oZWFkbGluZSk7DQogICAgICAgIHZhciBzZXR0aW5nc0tleXMgPSB0aGlzLnNldHRpbmdzS2V5czsNCiAgICAgICAgdmFyIGRvYyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHRoaXMuRG9jdW1lbnRJRCk7DQogICAgICAgIGRvYy5hcHBlbmRDaGlsZChoZWFkbGluZSk7DQogICAgICAgIC8vIENyZWF0ZSBhIHRhYmxlIGZvciB0aGUgY2F0ZWdvcnkNCiAgICAgICAgdmFyIHRhYmxlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEFCTEUiKTsNCiAgICAgICAgdmFyIGtleXMgPSBzZXR0aW5nc0tleXMuc3BsaXQoIiwiKTsNCiAgICAgICAga2V5cy5mb3JFYWNoKHNldHRpbmdzS2V5ID0+IHsNCiAgICAgICAgICAgIHN3aXRjaCAoc2V0dGluZ3NLZXkpIHsNCiAgICAgICAgICAgICAgICBjYXNlICJhdXRoZW50aWNhdGlvbi5wbXMiOg0KICAgICAgICAgICAgICAgIGNhc2UgImF1dGhlbnRpY2F0aW9uLm0zdSI6DQogICAgICAgICAgICAgICAgY2FzZSAiYXV0aGVudGljYXRpb24ueG1sIjoNCiAgICAgICAgICAgICAgICBjYXNlICJhdXRoZW50aWNhdGlvbi5hcGkiOg0KICAgICAgICAgICAgICAgICAgICBpZiAoU0VSVkVSWyJzZXR0aW5ncyJdWyJhdXRoZW50aWNhdGlvbi53ZWIiXSA9PSBmYWxzZSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBkZWZhdWx0Og0KICAgICAgICAgICAgICAgICAgICB2YXIgaXRlbSA9IHRoaXMuY3JlYXRlU2V0dGluZ3Moc2V0dGluZ3NLZXkpOw0KICAgICAgICAgICAgICAgICAgICB2YXIgZGVzY3JpcHRpb24gPSB0aGlzLmNyZWF0ZURlc2NyaXB0aW9uKHNldHRpbmdzS2V5KTsNCiAgICAgICAgICAgICAgICAgICAgdGFibGUuYXBwZW5kQ2hpbGQoaXRlbSk7DQogICAgICAgICAgICAgICAgICAgIHRhYmxlLmFwcGVuZENoaWxkKGRlc2NyaXB0aW9uKTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICB9DQogICAgICAgIH0pOw0KICAgICAgICBkb2MuYXBwZW5kQ2hpbGQodGFibGUpOw0KICAgICAgICBkb2MuYXBwZW5kQ2hpbGQodGhpcy5jcmVhdGVIUigpKTsNCiAgICB9DQp9DQpmdW5jdGlvbiBzaG93U2V0dGluZ3MoKSB7DQogICAgY29uc29sZS5sb2coIlNFVFRJTkdTIik7DQogICAgZm9yIChsZXQgaSA9IDA7IGkgPCBzZXR0aW5nc0NhdGVnb3J5Lmxlbmd0aDsgaSsrKSB7DQogICAgICAgIHNldHRpbmdzQ2F0ZWdvcnlbaV0uY3JlYXRlQ2F0ZWdvcnkoKTsNCiAgICB9DQp9DQpmdW5jdGlvbiBzYXZlU2V0dGluZ3MoKSB7DQogICAgY29uc29sZS5sb2coIlNhdmUgU2V0dGluZ3MiKTsNCiAgICB2YXIgY21kID0gInNhdmVTZXR0aW5ncyI7DQogICAgdmFyIGRpdiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb250ZW50X3NldHRpbmdzIik7DQogICAgdmFyIHNldHRpbmdzID0gZGl2LmdldEVsZW1lbnRzQnlDbGFzc05hbWUoImNoYW5nZWQiKTsNCiAgICB2YXIgbmV3U2V0dGluZ3MgPSBuZXcgT2JqZWN0KCk7DQogICAgZm9yIChsZXQgaSA9IDA7IGkgPCBzZXR0aW5ncy5sZW5ndGg7IGkrKykgew0KICAgICAgICB2YXIgbmFtZTsNCiAgICAgICAgdmFyIHZhbHVlOw0KICAgICAgICBzd2l0Y2ggKHNldHRpbmdzW2ldLnRhZ05hbWUpIHsNCiAgICAgICAgICAgIGNhc2UgIklOUFVUIjoNCiAgICAgICAgICAgICAgICBzd2l0Y2ggKHNldHRpbmdzW2ldLnR5cGUpIHsNCiAgICAgICAgICAgICAgICAgICAgY2FzZSAiY2hlY2tib3giOg0KICAgICAgICAgICAgICAgICAgICAgICAgbmFtZSA9IHNldHRpbmdzW2ldLm5hbWU7DQogICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IHNldHRpbmdzW2ldLmNoZWNrZWQ7DQogICAgICAgICAgICAgICAgICAgICAgICBuZXdTZXR0aW5nc1tuYW1lXSA9IHZhbHVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgICAgIGNhc2UgInRleHQiOg0KICAgICAgICAgICAgICAgICAgICAgICAgbmFtZSA9IHNldHRpbmdzW2ldLm5hbWU7DQogICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IHNldHRpbmdzW2ldLnZhbHVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgc3dpdGNoIChuYW1lKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAidXBkYXRlIjoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSB2YWx1ZS5zcGxpdCgiLCIpOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IHZhbHVlLmZpbHRlcihmdW5jdGlvbiAoZSkgeyByZXR1cm4gZTsgfSk7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgImJ1ZmZlci50aW1lb3V0IjoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSBwYXJzZUZsb2F0KHZhbHVlKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgIG5ld1NldHRpbmdzW25hbWVdID0gdmFsdWU7DQogICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJTRUxFQ1QiOg0KICAgICAgICAgICAgICAgIG5hbWUgPSBzZXR0aW5nc1tpXS5uYW1lOw0KICAgICAgICAgICAgICAgIHZhbHVlID0gc2V0dGluZ3NbaV0udmFsdWU7DQogICAgICAgICAgICAgICAgLy8gSWYgdGhlIHZhbHVlIGlzIGEgbnVtYmVyLCBzdG9yZSBpdCBhcyBhIG51bWJlcg0KICAgICAgICAgICAgICAgIGlmIChpc05hTih2YWx1ZSkpIHsNCiAgICAgICAgICAgICAgICAgICAgbmV3U2V0dGluZ3NbbmFtZV0gPSB2YWx1ZTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgZWxzZSB7DQogICAgICAgICAgICAgICAgICAgIG5ld1NldHRpbmdzW25hbWVdID0gcGFyc2VJbnQodmFsdWUpOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgfQ0KICAgIH0NCiAgICB2YXIgZGF0YSA9IG5ldyBPYmplY3QoKTsNCiAgICBkYXRhWyJzZXR0aW5ncyJdID0gbmV3U2V0dGluZ3M7DQogICAgdmFyIHNlcnZlciA9IG5ldyBTZXJ2ZXIoY21kKTsNCiAgICBzZXJ2ZXIucmVxdWVzdChkYXRhKTsNCn0NCg==" - webUI["html/lang/en.json"] = "ew0KICAibWFpbk1lbnUiOg0KICB7DQogICAgIml0ZW0iOg0KICAgIHsNCiAgICAgICJwbGF5bGlzdCI6ICJQbGF5bGlzdCIsDQogICAgICAicG1zSUQiOiAiUE1TIElEIiwNCiAgICAgICJmaWx0ZXIiOiAiRmlsdGVyIiwNCiAgICAgICJ4bWx0diI6ICJYTUxUViIsDQogICAgICAibWFwcGluZyI6ICJNYXBwaW5nIiwNCiAgICAgICJ1c2VycyI6ICJVc2VycyIsDQogICAgICAic2V0dGluZ3MiOiAiU2V0dGluZ3MiLA0KICAgICAgImxvZyI6ICJMb2ciLA0KICAgICAgImxvZ291dCI6ICJMb2dvdXQiDQogICAgfSwNCiAgICAiaGVhZGxpbmUiOg0KICAgIHsNCiAgICAgICJwbGF5bGlzdCI6ICJMb2NhbCBvciByZW1vdGUgcGxheWxpc3RzIiwNCiAgICAgICJmaWx0ZXIiOiAiRmlsdGVyIHBsYXlsaXN0IiwNCiAgICAgICJ4bWx0diI6ICJMb2NhbCBvciByZW1vdGUgWE1MVFYgZmlsZXMiLA0KICAgICAgIm1hcHBpbmciOiAiTWFwIHBsYXlsaXN0IGNoYW5uZWxzIHRvIEVQRyBjaGFubmVscyIsDQogICAgICAidXNlcnMiOiAiVXNlciBtYW5hZ2VtZW50IiwNCiAgICAgICJzZXR0aW5ncyI6ICJTZXR0aW5ncyIsDQogICAgICAibG9nIjogIkxvZyIsDQogICAgICAibG9nb3V0IjogIkxvZ291dCINCiAgICB9DQogIH0sDQogICJjb25maXJtIjoNCiAgew0KICAgICJyZXN0b3JlIjogIkFsbCBkYXRhIHdpbGwgYmUgcmVwbGFjZWQgd2l0aCB0aG9zZSBmcm9tIHRoZSBiYWNrdXAuIFNob3VsZCB0aGUgZmlsZXMgYmUgcmVzdG9yZWQ/Ig0KICB9LA0KICAiYWxlcnQiOg0KICB7DQogICAgImZpbGVMb2FkaW5nRXJyb3IiOiAiRmlsZSBjb3VsZG4ndCBiZSBsb2FkZWQiLA0KICAgICJpbnZhbGlkQ2hhbm5lbE51bWJlciI6ICJJbnZhbGlkIGNoYW5uZWwgbnVtYmVyIiwNCiAgICAibWlzc2luZ0lucHV0IjogIk1pc3NpbmcgaW5wdXQiDQogIH0sDQogICJidXR0b24iOg0KICB7DQogICAgImJhY2siOiAiQmFjayIsDQogICAgImJhY2t1cCI6ICJCYWNrdXAiLA0KICAgICJidWxrRWRpdCI6ICJCdWxrIEVkaXQiLA0KICAgICJjYW5jZWwiOiAiQ2FuY2VsIiwNCiAgICAiZGVsZXRlIjogIkRlbGV0ZSIsDQogICAgImRvbmUiOiAiRG9uZSIsDQogICAgImxvZ2luIjogIkxvZ2luIiwNCiAgICAibmV3IjogIk5ldyIsDQogICAgIm5leHQiOiAiTmV4dCIsDQogICAgInJlc3RvcmUiOiAiUmVzdG9yZSIsDQogICAgInNhdmUiOiAiU2F2ZSIsDQogICAgInNlYXJjaCI6ICJTZWFyY2giLA0KICAgICJ1cGRhdGUiOiAiVXBkYXRlIiwNCiAgICAiY3JhZXRlQWNjb3VudCI6ICJDcmVhdGUgQWNjb3VudCIsDQogICAgInJlc2V0TG9ncyI6ICJSZXNldCBMb2dzIiwNCiAgICAidXBsb2FkTG9nbyI6ICJVcGxvYWQgTG9nbyINCiAgfSwNCiAgImZpbHRlciI6DQogIHsNCiAgICAidGFibGUiOg0KICAgIHsNCiAgICAgICJuYW1lIjogIkZpbHRlciBOYW1lIiwNCiAgICAgICJ0eXBlIjogIkZpbHRlciBUeXBlIiwNCiAgICAgICJmaWx0ZXIiOiAiRmlsdGVyIg0KICAgIH0sDQogICAgImN1c3RvbSI6ICJDdXN0b20iLA0KICAgICJncm91cCI6ICJNM1UgR3JvdXAiLA0KICAgICJuYW1lIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiRmlsdGVyIE5hbWUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIkZpbHRlciBuYW1lIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAiZGVzY3JpcHRpb24iOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJEZXNjcmlwdGlvbiIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiRGVzY3JpcHRpb24iLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJ0eXBlIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiVHlwZSIsDQogICAgICAiZ3JvdXBUaXRsZSI6ICJHcm91cCBUaXRsZSIsDQogICAgICAiY3VzdG9tRmlsdGVyIjogIkN1c3RvbSBGaWx0ZXIiDQogICAgfSwNCiAgICAiY2FzZVNlbnNpdGl2ZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIkNhc2UgU2Vuc2l0aXZlIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJmaWx0ZXJSdWxlIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiRmlsdGVyIFJ1bGUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIlNwb3J0IHtIRH0gIXtFUyxJVH0iLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJmaWx0ZXJHcm91cCI6DQogICAgew0KICAgICAgInRpdGxlIjogIkdyb3VwIFRpdGxlIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIlNlbGVjdCBhIE0zVSBncm91cC4gKENvdW50ZXIpPGJyPkNoYW5naW5nIHRoZSBncm91cCB0aXRsZSBpbiB0aGUgTTNVIGludmFsaWRhdGVzIHRoZSBmaWx0ZXIuIg0KICAgIH0sDQogICAgImluY2x1ZGUiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJJbmNsdWRlIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJGSEQsVUhEIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJDaGFubmVsIG5hbWUgbXVzdCBpbmNsdWRlLjxicj4oQ29tbWEgc2VwYXJhdGVkKSBDb21tYSBtZWFucyBvciINCiAgICB9LA0KICAgICJleGNsdWRlIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiRXhjbHVkZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiRVMsSVQiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIkNoYW5uZWwgbmFtZSBtdXN0IG5vdCBjb250YWluLjxicj4oQ29tbWEgc2VwYXJhdGVkKSBDb21tYSBtZWFucyBvciINCiAgICB9LA0KICAgICJwcmVzZXJ2ZU1hcHBpbmciOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJQcmVzZXJ2ZSBFeGlzdGluZyBNM1U8YnI+Q2hhbm5lbCBOdW1iZXJzIiwNCiAgICAgICJwYWxjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIlByZXNlcnZlIGV4aXN0aW5nIE0zVSBwbGF5bGlzdCBjaGFubmVsIG51bWJlcnM/Ig0KICAgIH0sDQogICAgInN0YXJ0aW5nQ2hhbm5lbCI6DQogICAgew0KICAgICAgInRpdGxlIjogIlN0YXJ0aW5nIENoYW5uZWwgTnVtYmVyIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJkZWZhdWx0TWlzc2luZ0VQRyI6DQogICAgew0KICAgICAgInRpdGxlIjogIkZpbGwgTWlzc2luZyBFUEcgRGF0YSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJXaGVuIHRoZXJlIGlzIG5vIG1hdGNoaW5nIEVQRyBkYXRhIGZvciBjaGFubmVsLCA8YnI+YXV0b2ZpbGwgd2l0aCB4VGVWZSBkdW1teSBFUEcgZGF0YT8iDQogICAgfQ0KDQogIH0sDQogICJwbGF5bGlzdCI6DQogIHsNCiAgICAidGFibGUiOg0KICAgIHsNCiAgICAgICJwbGF5bGlzdCI6ICJQbGF5bGlzdCIsDQogICAgICAidHVuZXIiOiAiVHVuZXIiLA0KICAgICAgImxhc3RVcGRhdGUiOiAiTGFzdCBVcGRhdGUiLA0KICAgICAgImF2YWlsYWJpbGl0eSI6ICJBdmFpbGFiaWxpdHkiLA0KICAgICAgInR5cGUiOiAiVHlwZSIsDQogICAgICAic3RyZWFtcyI6ICJTdHJlYW1zIiwNCiAgICAgICJncm91cFRpdGxlIjogImdyb3VwLXRpdGxlIiwNCiAgICAgICJ0dmdJRCI6ICJ0dmctaWQiLA0KICAgICAgInVuaXF1ZUlEIjogIlVuaXF1ZSBJRCINCiAgICB9LA0KICAgICJwbGF5bGlzdFR5cGUiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJQbGF5bGlzdCB0eXBlIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJ0eXBlIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiVHlwZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAibmFtZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIk5hbWUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIlBsYXlsaXN0IG5hbWUiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJkZXNjcmlwdGlvbiI6DQogICAgew0KICAgICAgInRpdGxlIjogIkRlc2NyaXB0aW9uIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJEZXNjcmlwdGlvbiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgImZpbGVNM1UiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJNM1UgRmlsZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiRmlsZSBwYXRoIG9yIFVSTCBvZiB0aGUgTTNVIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAiZmlsZUhESFIiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJIREhvbWVSdW4gSVAiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIklQIGFkZHJlc3MgYW5kIHBvcnQgKDE5Mi4xNjguMS4xMDo1MDA0KSIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgInR1bmVyIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiVHVuZXIgLyBTdHJlYW1zIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIk51bWJlciBvZiBwYXJhbGxlbCBjb25uZWN0aW9ucyB0aGF0IGNhbiBiZSBlc3RhYmxpc2hlZCB0byB0aGUgcHJvdmlkZXIuIDxicj5Pbmx5IGF2YWlsYWJsZSB3aXRoIGFjdGl2YXRlZCBidWZmZXIuPGJyPk5ldyBzZXR0aW5ncyB3aWxsIG9ubHkgYmUgYXBwbGllZCBhZnRlciBxdWl0dGluZyBhbGwgc3RyZWFtcy4iDQogICAgfQ0KICB9LA0KICAieG1sdHYiOg0KICB7DQogICAgInRhYmxlIjoNCiAgICB7DQogICAgICAiZ3VpZGUiOiAiR3VpZGUiLA0KICAgICAgImxhc3RVcGRhdGUiOiAiTGFzdCBVcGRhdGUiLA0KICAgICAgImF2YWlsYWJpbGl0eSI6ICJBdmFpbGFiaWxpdHkiLA0KICAgICAgImNoYW5uZWxzIjogIkNoYW5uZWxzIiwNCiAgICAgICJwcm9ncmFtcyI6ICJQcm9ncmFtcyINCiAgICB9LA0KICAgICJuYW1lIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiTmFtZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiR3VpZGUgbmFtZSIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgImRlc2NyaXB0aW9uIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiRGVzY3JpcHRpb24iLA0KICAgICAgInBsYWNlaG9sZGVyIjogIkRlc2NyaXB0aW9uIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAiZmlsZVhNTFRWIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiWE1MVFYgRmlsZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiRmlsZSBwYXRoIG9yIFVSTCBvZiB0aGUgWE1MVFYiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9DQogIH0sDQogICJtYXBwaW5nIjoNCiAgew0KICAgICJ0YWJsZSI6DQogICAgew0KICAgICAgImNoTm8iOiAiQ2guIE5vLiIsDQogICAgICAibG9nbyI6ICJMb2dvIiwNCiAgICAgICJjaGFubmVsTmFtZSI6ICJDaGFubmVsIE5hbWUiLA0KICAgICAgInBsYXlsaXN0IjogIlBsYXlsaXN0IiwNCiAgICAgICJncm91cFRpdGxlIjogIkdyb3VwIFRpdGxlIiwNCiAgICAgICJ4bWx0dkZpbGUiOiAiWE1MVFYgRmlsZSIsDQogICAgICAieG1sdHZJRCI6ICJYTUxUViBJRCIsDQogICAgICAidGltZXNoaWZ0IjogIlRpbWVzaGlmdCINCiAgICB9LA0KICAgICJhY3RpdmUiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJBY3RpdmUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgImNoYW5uZWxOYW1lIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiQ2hhbm5lbCBOYW1lIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJkZXNjcmlwdGlvbiI6DQogICAgew0KICAgICAgInRpdGxlIjogIkNoYW5uZWwgRGVzY3JpcHRpb24iLA0KICAgICAgInBsYWNlaG9sZGVyIjogIlVzZWQgYnkgdGhlIER1bW15IGFzIGFuIFhNTCBkZXNjcmlwdGlvbiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgInVwZGF0ZUNoYW5uZWxOYW1lIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiVXBkYXRlIENoYW5uZWwgTmFtZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAiY2hhbm5lbExvZ28iOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJMb2dvIFVSTCIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAidXBkYXRlQ2hhbm5lbExvZ28iOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJVcGRhdGUgQ2hhbm5lbCBMb2dvIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJlcGdDYXRlZ29yeSI6DQogICAgew0KICAgICAgInRpdGxlIjogIkVQRyBDYXRlZ29yeSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAibTN1R3JvdXBUaXRsZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIkdyb3VwIFRpdGxlICh4dGV2ZS5tM3UpIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJ4bWx0dkZpbGUiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJYTUxUViBGaWxlIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJ4bWx0dkNoYW5uZWwiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJYTUxUViBDaGFubmVsIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJ0aW1lc2hpZnQiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJUaW1lc2hpZnQiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIjAiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9DQogIH0sDQogICJ1c2VycyI6DQogIHsNCiAgICAidGFibGUiOg0KICAgIHsNCiAgICAgICJ1c2VybmFtZSI6ICJVc2VybmFtZSIsDQogICAgICAicGFzc3dvcmQiOiAiUGFzc3dvcmQiLA0KICAgICAgIndlYiI6ICJXRUIiLA0KICAgICAgInBtcyI6ICJQTVMiLA0KICAgICAgIm0zdSI6ICJNM1UiLA0KICAgICAgInhtbCI6ICJYTUwiLA0KICAgICAgImFwaSI6ICJBUEkiDQogICAgfSwNCiAgICAidXNlcm5hbWUiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJVc2VybmFtZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiVXNlcm5hbWUiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJwYXNzd29yZCI6DQogICAgew0KICAgICAgInRpdGxlIjogIlBhc3N3b3JkIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJQYXNzd29yZCIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgImNvbmZpcm0iOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJDb25maXJtIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJQYXNzd29yZCBjb25maXJtIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAid2ViIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiV2ViIEFjY2VzcyIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAicG1zIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiUE1TIEFjY2VzcyIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAibTN1IjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiTTNVIEFjY2VzcyIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAieG1sIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiWE1MIEFjY2VzcyIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAiYXBpIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiQVBJIEFjY2VzcyIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfQ0KICB9LA0KICAic2V0dGluZ3MiOg0KICB7DQogICAgImNhdGVnb3J5IjoNCiAgICB7DQogICAgICAiZ2VuZXJhbCI6ICJHZW5lcmFsIiwNCiAgICAgICJmaWxlcyI6ICJGaWxlcyIsDQogICAgICAic3RyZWFtaW5nIjogIlN0cmVhbWluZyIsDQogICAgICAiYmFja3VwIjogIkJhY2t1cCIsDQogICAgICAiYXV0aGVudGljYXRpb24iOiAiQXV0aGVudGljYXRpb24iDQogICAgfSwNCiAgICAidXBkYXRlIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiU2NoZWR1bGUgZm9yIHVwZGF0aW5nIChQbGF5bGlzdCwgWE1MVFYsIEJhY2t1cCkiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIjAwMDAsMTAwMCwyMDAwIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJUaW1lIGluIDI0IGhvdXIgZm9ybWF0ICgwODAwID0gODowMCBhbSkuIE1vcmUgdGltZXMgY2FuIGJlIGVudGVyZWQgY29tbWEgc2VwYXJhdGVkLiBMZWF2ZSB0aGlzIGZpZWxkIGVtcHR5IGlmIG5vIHVwZGF0ZXMgYXJlIHRvIGJlIGNhcnJpZWQgb3V0LiINCiAgICB9LA0KICAgICJhcGkiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJBUEkgSW50ZXJmYWNlIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJWaWEgQVBJIGludGVyZmFjZSBpdCBpcyBwb3NzaWJsZSB0byBzZW5kIGNvbW1hbmRzIHRvIHhUZVZlLiBBUEkgZG9jdW1lbnRhdGlvbiBpcyA8YSBocmVmPSdodHRwczovL2dpdGh1Yi5jb20veHRldmUtcHJvamVjdC94VGVWZS1Eb2N1bWVudGF0aW9uL2Jsb2IvbWFzdGVyL2VuL2NvbmZpZ3VyYXRpb24ubWQjYXBpJz5oZXJlPC9hPiINCiAgICB9LA0KICAgICJlcGdTb3VyY2UiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJFUEcgU291cmNlIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJQTVM6PGJyPi0gVXNlIEVQRyBkYXRhIGZyb20gUGxleCBvciBFbWJ5IDxicj48YnI+WEVQRzo8YnI+LSBVc2Ugb2Ygb25lIG9yIG1vcmUgWE1MVFYgZmlsZXM8YnI+LSBDaGFubmVsIG1hbmFnZW1lbnQ8YnI+LSBNM1UgLyBYTUxUViBleHBvcnQgKEhUVFAgbGluayBmb3IgSVBUViBhcHBzKSINCiAgICB9LA0KICAgICJ0dW5lciI6DQogICAgew0KICAgICAgInRpdGxlIjogIk51bWJlciBvZiBUdW5lcnMiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIk51bWJlciBvZiBwYXJhbGxlbCBjb25uZWN0aW9ucyB0aGF0IGNhbiBiZSBlc3RhYmxpc2hlZCB0byB0aGUgcHJvdmlkZXIuPGJyPkF2YWlsYWJsZSBmb3I6IFBsZXgsIEVtYnkgKEhESFIpLCBNM1UgKHdpdGggYWN0aXZlIGJ1ZmZlcikuPGJyPkFmdGVyIGEgY2hhbmdlLCB4VGVWZSBtdXN0IGJlIGRlbGV0ZSBpbiB0aGUgUGxleCAvIEVtYnkgRFZSIHNldHRpbmdzIGFuZCBzZXQgdXAgYWdhaW4uIg0KICAgIH0sDQogICAgImZpbGVzVXBkYXRlIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiVXBkYXRlcyBhbGwgZmlsZXMgYXQgc3RhcnR1cCIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiVXBkYXRlcyBhbGwgcGxheWxpc3RzLCB0dW5lciBhbmQgWE1MVFYgZmlsZXMgYXQgc3RhcnR1cC4iDQogICAgfSwNCiAgICAiY2FjaGVJbWFnZXMiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJJbWFnZSBDYWNoaW5nIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJBbGwgaW1hZ2VzIGZyb20gdGhlIFhNTFRWIGZpbGUgYXJlIGNhY2hlZCwgYWxsb3dpbmcgZmFzdGVyIHJlbmRlcmluZyBvZiB0aGUgZ3JpZCBpbiB0aGUgY2xpZW50Ljxicj5Eb3dubG9hZGluZyB0aGUgaW1hZ2VzIG1heSB0YWtlIGEgd2hpbGUgYW5kIHdpbGwgYmUgZG9uZSBpbiB0aGUgYmFja2dyb3VuZC4iDQogICAgfSwNCiAgICAicmVwbGFjZUVtcHR5SW1hZ2VzIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiUmVwbGFjZSBtaXNzaW5nIHByb2dyYW0gaW1hZ2VzIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJJZiB0aGUgcG9zdGVyIGluIHRoZSBYTUxUViBwcm9ncmFtIGlzIG1pc3NpbmcsIHRoZSBjaGFubmVsIGxvZ28gd2lsbCBiZSB1c2VkLiINCiAgICB9LA0KICAgICJ4dGV2ZUF1dG9VcGRhdGUiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJBdXRvbWF0aWMgdXBkYXRlIG9mIHhUZVZlIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJJZiBhIG5ldyB2ZXJzaW9uIG9mIHhUZVZlIGlzIGF2YWlsYWJsZSwgaXQgd2lsbCBiZSBhdXRvbWF0aWNhbGx5IGluc3RhbGxlZC4gVGhlIHVwZGF0ZXMgYXJlIGRvd25sb2FkZWQgZnJvbSBHaXRIdWIuIg0KICAgIH0sDQogICAgInN0cmVhbUJ1ZmZlcmluZyI6DQogICAgew0KICAgICAgInRpdGxlIjogIlN0cmVhbSBCdWZmZXIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIkZ1bmN0aW9ucyBvZiB0aGUgYnVmZmVyOjxicj4tIFRoZSBzdHJlYW0gaXMgcGFzc2VkIGZyb20geFRlVmUsIEZGbXBlZyBvciBWTEMgdG8gUGxleCwgRW1ieSBvciBNM1UgUGxheWVyPGJyPi0gU21hbGwgamVya2luZyBvZiB0aGUgc3RyZWFtcyBjYW4gYmUgY29tcGVuc2F0ZWQ8YnI+LSBITFMgLyBNM1U4IHN1cHBvcnQ8YnI+LSBSVFAgLyBSVFBTIHN1cHBvcnQgKG9ubHkgRkZtcGVnIG9yIFZMQyk8YnI+LSBSZS1zdHJlYW1pbmc8YnI+LSBTZXBhcmF0ZSB0dW5lciBsaW1pdCBmb3IgZWFjaCBwbGF5bGlzdCIsDQogICAgICAiaW5mb19mYWxzZSI6ICJObyBCdWZmZXIgKENsaWVudCBjb25uZWN0cyB0byB0aGUgc3RyZWFtaW5nIHNlcnZlcikiLA0KICAgICAgImluZm9feHRldmUiOiAieFRlVmUgY29ubmVjdHMgdG8gdGhlIHN0cmVhbWluZyBzZXJ2ZXIiLA0KICAgICAgImluZm9fZmZtcGVnIjogIkZGbXBlZyBjb25uZWN0cyB0byB0aGUgc3RyZWFtaW5nIHNlcnZlciIsDQogICAgICAiaW5mb192bGMiOiAiVkxDIGNvbm5lY3RzIHRvIHRoZSBzdHJlYW1pbmcgc2VydmVyIg0KDQogICAgfSwNCiAgICAidWRweHkiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJVRFB4eSBhZGRyZXNzIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJUaGUgYWRkcmVzcyBvZiB5b3VyIFVEUHh5IHNlcnZlci4gSWYgc2V0LCBhbmQgdGhlIGNoYW5uZWwgVVJMcyBpbiB0aGUgbTN1IGlzIG11bHRpY2FzdCwgeFRlVmUgd2lsbCByZXdyaXRlIGl0IHNvIHRoYXQgaXQgaXMgYWNjZXNzZWQgdmlhIHRoZSBVRFB4eSBzZXJ2aWNlLiIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiaG9zdDpwb3J0Ig0KICAgIH0sDQogICAgImZmbXBlZ1BhdGgiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJGRm1wZWcgQmluYXJ5IFBhdGgiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIlBhdGggdG8gRkZtcGVnIGJpbmFyeS4iLA0KICAgICAgInBsYWNlaG9sZGVyIjogIi9wYXRoL3RvL2ZmbXBlZyINCiAgICB9LA0KICAgICJmZm1wZWdPcHRpb25zIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiRkZtcGVnIE9wdGlvbnMiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIkZGbXBlZyBvcHRpb25zLjxicj5Pbmx5IGNoYW5nZSBpZiB5b3Uga25vdyB3aGF0IHlvdSBhcmUgZG9pbmcuPGJyPkxlYXZlIGJsYW5rIHRvIHNldCBkZWZhdWx0IHNldHRpbmdzLiIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiTGVhdmUgYmxhbmsgdG8gc2V0IGRlZmF1bHQgc2V0dGluZ3MiDQogICAgfSwNCiAgICAidmxjUGF0aCI6DQogICAgew0KICAgICAgInRpdGxlIjogIlZMQyAvIENWTEMgQmluYXJ5IFBhdGgiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIlBhdGggdG8gVkxDIC8gQ1ZMQyBiaW5hcnkuIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIvcGF0aC90by9jdmxjIg0KICAgIH0sDQogICAgInZsY09wdGlvbnMiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJWTEMgLyBDVkxDIE9wdGlvbnMiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIlZMQyAvIENWTEMgb3B0aW9ucy48YnI+T25seSBjaGFuZ2UgaWYgeW91IGtub3cgd2hhdCB5b3UgYXJlIGRvaW5nLjxicj5MZWF2ZSBibGFuayB0byBzZXQgZGVmYXVsdCBzZXR0aW5ncy4iLA0KICAgICAgInBsYWNlaG9sZGVyIjogIkxlYXZlIGJsYW5rIHRvIHNldCBkZWZhdWx0IHNldHRpbmdzIg0KICAgIH0sDQogICAgImJ1ZmZlclNpemUiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJCdWZmZXIgU2l6ZSIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiQnVmZmVyIHNpemUgaW4gTUIuPGJyPk0zVTg6IElmIHRoZSBUUyBzZWdtZW50IHNtYWxsZXIgdGhlbiB0aGUgYnVmZmVyIHNpemUsIHRoZSBmaWxlIHNpemUgb2YgdGhlIHNlZ21lbnQgaXMgdXNlZC4iDQogICAgfSwNCiAgICAiYnVmZmVyVGltZW91dCI6DQogICAgew0KICAgICAgInRpdGxlIjogIlRpbWVvdXQgZm9yIG5ldyBjbGllbnQgY29ubmVjdGlvbnMiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIlRoZSB4VGVWZSBidWZmZXIgd2FpdHMgdW50aWwgbmV3IGNsaWVudCBjb25uZWN0aW9ucyBhcmUgZXN0YWJsaXNoZWQuIEhlbHBmdWwgZm9yIGZhc3QgY2hhbm5lbCBzd2l0Y2hpbmcuIFZhbHVlIGluIG1pbGxpc2Vjb25kcy4iLA0KICAgICAgInBsYWNlaG9sZGVyIjogIjEwMCINCiAgICB9LA0KICAgICJ1c2VyQWdlbnQiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJVc2VyIEFnZW50IiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJVc2VyIEFnZW50IGZvciBIVFRQIHJlcXVlc3RzLiBGb3IgZXZlcnkgSFRUUCBjb25uZWN0aW9uLCB0aGlzIHZhbHVlIGlzIHVzZWQgZm9yIHRoZSB1c2VyIGFnZW50LiBTaG91bGQgb25seSBiZSBjaGFuZ2VkIGlmIHhUZVZlIGlzIGJsb2NrZWQuIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJ4VGVWZSINCiAgICB9LA0KICAgICJiYWNrdXBQYXRoIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiTG9jYXRpb24gZm9yIGF1dG9tYXRpYyBiYWNrdXBzIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIvbW50L2RhdGEvYmFja3VwL3h0ZXZlLyIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiQmVmb3JlIGFueSB1cGRhdGUgb2YgdGhlIHByb3ZpZGVyIGRhdGEgYnkgdGhlIHNjaGVkdWxlLCB4VGVWZSBjcmVhdGVzIGEgYmFja3VwLiBUaGUgcGF0aCBmb3IgdGhlIGF1dG9tYXRpYyBiYWNrdXBzIGNhbiBiZSBjaGFuZ2VkLiB4VGVWZSByZXF1aXJlcyB3cml0ZSBwZXJtaXNzaW9uIGZvciB0aGlzIGZvbGRlci4iDQogICAgfSwNCiAgICAidGVtcFBhdGgiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJMb2NhdGlvbiBmb3IgdGhlIHRlbXBvcmFyeSBmaWxlcyIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiL3RtcC94dGV2ZS8iLA0KICAgICAgImRlc2NyaXB0aW9uIjogIkxvY2F0aW9uIGZvciB0aGUgYnVmZmVyIGZpbGVzLiINCiAgICB9LA0KICAgICJiYWNrdXBLZWVwIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiTnVtYmVyIG9mIGJhY2t1cHMgdG8ga2VlcCIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiTnVtYmVyIG9mIGJhY2t1cHMgdG8ga2VlcC4gT2xkZXIgYmFja3VwcyBhcmUgYXV0b21hdGljYWxseSBkZWxldGVkLiINCiAgICB9LA0KICAgICJhdXRoZW50aWNhdGlvbldFQiI6DQogICAgew0KICAgICAgInRpdGxlIjogIldFQiBBdXRoZW50aWNhdGlvbiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiQWNjZXNzIHRvIHRoZSB3ZWIgaW50ZXJmYWNlIG9ubHkgcG9zc2libGUgd2l0aCBjcmVkZW50aWFscy4iDQogICAgfSwNCiAgICAiYXV0aGVudGljYXRpb25QTVMiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJQTVMgQXV0aGVudGljYXRpb24iLA0KICAgICAgImRlc2NyaXB0aW9uIjogIlBsZXggcmVxdWVzdHMgYXJlIG9ubHkgcG9zc2libGUgd2l0aCBhdXRoZW50aWNhdGlvbi4gPGJyPjxiPldhcm5pbmchISE8L2I+IEFmdGVyIGFjdGl2YXRpbmcgdGhpcyBmdW5jdGlvbiB4VGVWZSBtdXN0IGJlIGRlbGV0ZSBpbiB0aGUgUE1TIERWUiBzZXR0aW5ncyBhbmQgc2V0IHVwIGFnYWluLiINCiAgICB9LA0KICAgICJhdXRoZW50aWNhdGlvbk0zVSI6DQogICAgew0KICAgICAgInRpdGxlIjogIk0zVSBBdXRoZW50aWNhdGlvbiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiRG93bmxvYWRpbmcgdGhlIHh0ZXZlLm0zdSBmaWxlIHZpYSBhbiBIVFRQIHJlcXVlc3QgaXMgb25seSBwb3NzaWJsZSB3aXRoIGF1dGhlbnRpY2F0aW9uLiINCiAgICB9LA0KICAgICJhdXRoZW50aWNhdGlvblhNTCI6DQogICAgew0KICAgICAgInRpdGxlIjogIlhNTCBBdXRoZW50aWNhdGlvbiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiRG93bmxvYWRpbmcgdGhlIHh0ZXZlLnhtbCBmaWxlIHZpYSBhbiBIVFRQIHJlcXVlc3QgaXMgb25seSBwb3NzaWJsZSB3aXRoIGF1dGhlbnRpY2F0aW9uIg0KICAgIH0sDQogICAgImF1dGhlbnRpY2F0aW9uQVBJIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiQVBJIEF1dGhlbnRpY2F0aW9uIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJBY2Nlc3MgdG8gdGhlIEFQSSBpbnRlcmZhY2UgaXMgb25seSBwb3NzaWJsZSB3aXRoIGF1dGhlbnRpY2F0aW9uLiINCiAgICB9DQogIH0sDQogICJ3aXphcmQiOg0KICB7DQogICAgImVwZ1NvdXJjZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIkVQRyBTb3VyY2UiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIlBNUzo8YnI+LSBVc2UgRVBHIGRhdGEgZnJvbSBQbGV4IG9yIEVtYnkgPGJyPjxicj5YRVBHOjxicj4tIFVzZSBvZiBvbmUgb3IgbW9yZSBYTUxUViBmaWxlczxicj4tIENoYW5uZWwgbWFuYWdlbWVudDxicj4tIE0zVSAvIFhNTFRWIGV4cG9ydCAoSFRUUCBsaW5rIGZvciBJUFRWIGFwcHMpIg0KICAgIH0sDQogICAgInR1bmVyIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiTnVtYmVyIG9mIHR1bmVycyIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiTnVtYmVyIG9mIHBhcmFsbGVsIGNvbm5lY3Rpb25zIHRoYXQgY2FuIGJlIGVzdGFibGlzaGVkIHRvIHRoZSBwcm92aWRlci48YnI+QXZhaWxhYmxlIGZvcjogUGxleCwgRW1ieSAoSERIUiksIE0zVSAod2l0aCBhY3RpdmUgYnVmZmVyKS48YnI+QWZ0ZXIgYSBjaGFuZ2UsIHhUZVZlIG11c3QgYmUgZGVsZXRlIGluIHRoZSBQbGV4IC8gRW1ieSBEVlIgc2V0dGluZ3MgYW5kIHNldCB1cCBhZ2Fpbi4iDQogICAgfSwNCiAgICAibTN1IjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiTTNVIFBsYXlsaXN0IiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJGaWxlIHBhdGggb3IgVVJMIG9mIHRoZSBNM1UiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIkxvY2FsIG9yIHJlbW90ZSBwbGF5bGlzdHMiDQogICAgfSwNCiAgICAieG1sdHYiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJYTUxUViBGaWxlIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJGaWxlIHBhdGggb3IgVVJMIG9mIHRoZSBYTUxUViIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiTG9jYWwgb3IgcmVtb3RlIFhNTFRWIGZpbGUiDQogICAgfQ0KICB9LA0KICAibG9naW4iOg0KICB7DQogICAgImZhaWxlZCI6ICJVc2VyIGF1dGhlbnRpY2F0aW9uIGZhaWxlZCIsDQogICAgImhlYWRsaW5lIjogIkxvZ2luIiwNCiAgICAidXNlcm5hbWUiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJVc2VybmFtZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiVXNlcm5hbWUiDQogICAgfSwNCiAgICAicGFzc3dvcmQiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJQYXNzd29yZCIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiUGFzc3dvcmQiDQogICAgfQ0KICB9LA0KICAiYWNjb3VudCI6DQogIHsNCiAgICAiZmFpbGVkIjogIlBhc3N3b3JkIGRvZXMgbm90IG1hdGNoIiwNCiAgICAiaGVhZGxpbmUiOiAiQ3JlYXRlIHVzZXIgYWNjb3VudCIsDQogICAgInVzZXJuYW1lIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiVXNlcm5hbWUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIlVzZXJuYW1lIg0KICAgIH0sDQogICAgInBhc3N3b3JkIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiUGFzc3dvcmQiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIlBhc3N3b3JkIg0KICAgIH0sDQogICAgImNvbmZpcm0iOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJDb25maXJtIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJDb25maXJtIg0KICAgIH0NCiAgfQ0KfQ==" + webUI["html/lang/en.json"] = "ew0KICAibWFpbk1lbnUiOg0KICB7DQogICAgIml0ZW0iOg0KICAgIHsNCiAgICAgICJwbGF5bGlzdCI6ICJQbGF5bGlzdCIsDQogICAgICAicG1zSUQiOiAiUE1TIElEIiwNCiAgICAgICJmaWx0ZXIiOiAiRmlsdGVyIiwNCiAgICAgICJ4bWx0diI6ICJYTUxUViIsDQogICAgICAibWFwcGluZyI6ICJNYXBwaW5nIiwNCiAgICAgICJ1c2VycyI6ICJVc2VycyIsDQogICAgICAic2V0dGluZ3MiOiAiU2V0dGluZ3MiLA0KICAgICAgImxvZyI6ICJMb2ciLA0KICAgICAgImxvZ291dCI6ICJMb2dvdXQiDQogICAgfSwNCiAgICAiaGVhZGxpbmUiOg0KICAgIHsNCiAgICAgICJwbGF5bGlzdCI6ICJMb2NhbCBvciByZW1vdGUgcGxheWxpc3RzIiwNCiAgICAgICJmaWx0ZXIiOiAiRmlsdGVyIHBsYXlsaXN0IiwNCiAgICAgICJ4bWx0diI6ICJMb2NhbCBvciByZW1vdGUgWE1MVFYgZmlsZXMiLA0KICAgICAgIm1hcHBpbmciOiAiTWFwIHBsYXlsaXN0IGNoYW5uZWxzIHRvIEVQRyBjaGFubmVscyIsDQogICAgICAidXNlcnMiOiAiVXNlciBtYW5hZ2VtZW50IiwNCiAgICAgICJzZXR0aW5ncyI6ICJTZXR0aW5ncyIsDQogICAgICAibG9nIjogIkxvZyIsDQogICAgICAibG9nb3V0IjogIkxvZ291dCINCiAgICB9DQogIH0sDQogICJjb25maXJtIjoNCiAgew0KICAgICJyZXN0b3JlIjogIkFsbCBkYXRhIHdpbGwgYmUgcmVwbGFjZWQgd2l0aCB0aG9zZSBmcm9tIHRoZSBiYWNrdXAuIFNob3VsZCB0aGUgZmlsZXMgYmUgcmVzdG9yZWQ/Ig0KICB9LA0KICAiYWxlcnQiOg0KICB7DQogICAgImZpbGVMb2FkaW5nRXJyb3IiOiAiRmlsZSBjb3VsZG4ndCBiZSBsb2FkZWQiLA0KICAgICJpbnZhbGlkQ2hhbm5lbE51bWJlciI6ICJJbnZhbGlkIGNoYW5uZWwgbnVtYmVyIiwNCiAgICAibWlzc2luZ0lucHV0IjogIk1pc3NpbmcgaW5wdXQiDQogIH0sDQogICJidXR0b24iOg0KICB7DQogICAgImJhY2siOiAiQmFjayIsDQogICAgImJhY2t1cCI6ICJCYWNrdXAiLA0KICAgICJidWxrRWRpdCI6ICJCdWxrIEVkaXQiLA0KICAgICJjYW5jZWwiOiAiQ2FuY2VsIiwNCiAgICAiZGVsZXRlIjogIkRlbGV0ZSIsDQogICAgImRvbmUiOiAiRG9uZSIsDQogICAgImxvZ2luIjogIkxvZ2luIiwNCiAgICAibmV3IjogIk5ldyIsDQogICAgIm5leHQiOiAiTmV4dCIsDQogICAgInJlc3RvcmUiOiAiUmVzdG9yZSIsDQogICAgInNhdmUiOiAiU2F2ZSIsDQogICAgInNlYXJjaCI6ICJTZWFyY2giLA0KICAgICJ1cGRhdGUiOiAiVXBkYXRlIiwNCiAgICAiY3JhZXRlQWNjb3VudCI6ICJDcmVhdGUgQWNjb3VudCIsDQogICAgInJlc2V0TG9ncyI6ICJSZXNldCBMb2dzIiwNCiAgICAidXBsb2FkTG9nbyI6ICJVcGxvYWQgTG9nbyINCiAgfSwNCiAgImZpbHRlciI6DQogIHsNCiAgICAidGFibGUiOg0KICAgIHsNCiAgICAgICJuYW1lIjogIkZpbHRlciBOYW1lIiwNCiAgICAgICJ0eXBlIjogIkZpbHRlciBUeXBlIiwNCiAgICAgICJmaWx0ZXIiOiAiRmlsdGVyIg0KICAgIH0sDQogICAgImN1c3RvbSI6ICJDdXN0b20iLA0KICAgICJncm91cCI6ICJNM1UgR3JvdXAiLA0KICAgICJuYW1lIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiRmlsdGVyIE5hbWUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIkZpbHRlciBuYW1lIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAiZGVzY3JpcHRpb24iOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJEZXNjcmlwdGlvbiIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiRGVzY3JpcHRpb24iLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJ0eXBlIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiVHlwZSIsDQogICAgICAiZ3JvdXBUaXRsZSI6ICJHcm91cCBUaXRsZSIsDQogICAgICAiY3VzdG9tRmlsdGVyIjogIkN1c3RvbSBGaWx0ZXIiDQogICAgfSwNCiAgICAiY2FzZVNlbnNpdGl2ZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIkNhc2UgU2Vuc2l0aXZlIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJmaWx0ZXJSdWxlIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiRmlsdGVyIFJ1bGUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIlNwb3J0IHtIRH0gIXtFUyxJVH0iLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJmaWx0ZXJHcm91cCI6DQogICAgew0KICAgICAgInRpdGxlIjogIkdyb3VwIFRpdGxlIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIlNlbGVjdCBhIE0zVSBncm91cC4gKENvdW50ZXIpPGJyPkNoYW5naW5nIHRoZSBncm91cCB0aXRsZSBpbiB0aGUgTTNVIGludmFsaWRhdGVzIHRoZSBmaWx0ZXIuIg0KICAgIH0sDQogICAgImluY2x1ZGUiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJJbmNsdWRlIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJGSEQsVUhEIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJDaGFubmVsIG5hbWUgbXVzdCBpbmNsdWRlLjxicj4oQ29tbWEgc2VwYXJhdGVkKSBDb21tYSBtZWFucyBvciINCiAgICB9LA0KICAgICJleGNsdWRlIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiRXhjbHVkZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiRVMsSVQiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIkNoYW5uZWwgbmFtZSBtdXN0IG5vdCBjb250YWluLjxicj4oQ29tbWEgc2VwYXJhdGVkKSBDb21tYSBtZWFucyBvciINCiAgICB9LA0KICAgICJwcmVzZXJ2ZU1hcHBpbmciOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJQcmVzZXJ2ZSBFeGlzdGluZyBNM1U8YnI+Q2hhbm5lbCBOdW1iZXJzIiwNCiAgICAgICJwYWxjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIlByZXNlcnZlIGV4aXN0aW5nIE0zVSBwbGF5bGlzdCBjaGFubmVsIG51bWJlcnM/Ig0KICAgIH0sDQogICAgInN0YXJ0aW5nQ2hhbm5lbCI6DQogICAgew0KICAgICAgInRpdGxlIjogIlN0YXJ0aW5nIENoYW5uZWwgTnVtYmVyIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJkZWZhdWx0TWlzc2luZ0VQRyI6DQogICAgew0KICAgICAgInRpdGxlIjogIkZpbGwgTWlzc2luZyBFUEcgRGF0YSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJXaGVuIHRoZXJlIGlzIG5vIG1hdGNoaW5nIEVQRyBkYXRhIGZvciBjaGFubmVsLCA8YnI+YXV0b2ZpbGwgd2l0aCB4VGVWZSBkdW1teSBFUEcgZGF0YT8iDQogICAgfQ0KDQogIH0sDQogICJwbGF5bGlzdCI6DQogIHsNCiAgICAidGFibGUiOg0KICAgIHsNCiAgICAgICJwbGF5bGlzdCI6ICJQbGF5bGlzdCIsDQogICAgICAidHVuZXIiOiAiVHVuZXIiLA0KICAgICAgImxhc3RVcGRhdGUiOiAiTGFzdCBVcGRhdGUiLA0KICAgICAgImF2YWlsYWJpbGl0eSI6ICJBdmFpbGFiaWxpdHkiLA0KICAgICAgInR5cGUiOiAiVHlwZSIsDQogICAgICAic3RyZWFtcyI6ICJTdHJlYW1zIiwNCiAgICAgICJncm91cFRpdGxlIjogImdyb3VwLXRpdGxlIiwNCiAgICAgICJ0dmdJRCI6ICJ0dmctaWQiLA0KICAgICAgInVuaXF1ZUlEIjogIlVuaXF1ZSBJRCINCiAgICB9LA0KICAgICJwbGF5bGlzdFR5cGUiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJQbGF5bGlzdCB0eXBlIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJ0eXBlIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiVHlwZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAibmFtZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIk5hbWUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIlBsYXlsaXN0IG5hbWUiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJkZXNjcmlwdGlvbiI6DQogICAgew0KICAgICAgInRpdGxlIjogIkRlc2NyaXB0aW9uIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJEZXNjcmlwdGlvbiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgImZpbGVNM1UiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJNM1UgRmlsZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiRmlsZSBwYXRoIG9yIFVSTCBvZiB0aGUgTTNVIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAiZmlsZUhESFIiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJIREhvbWVSdW4gSVAiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIklQIGFkZHJlc3MgYW5kIHBvcnQgKDE5Mi4xNjguMS4xMDo1MDA0KSIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgInR1bmVyIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiVHVuZXIgLyBTdHJlYW1zIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIk51bWJlciBvZiBwYXJhbGxlbCBjb25uZWN0aW9ucyB0aGF0IGNhbiBiZSBlc3RhYmxpc2hlZCB0byB0aGUgcHJvdmlkZXIuIDxicj5Pbmx5IGF2YWlsYWJsZSB3aXRoIGFjdGl2YXRlZCBidWZmZXIuPGJyPk5ldyBzZXR0aW5ncyB3aWxsIG9ubHkgYmUgYXBwbGllZCBhZnRlciBxdWl0dGluZyBhbGwgc3RyZWFtcy4iDQogICAgfQ0KICB9LA0KICAieG1sdHYiOg0KICB7DQogICAgInRhYmxlIjoNCiAgICB7DQogICAgICAiZ3VpZGUiOiAiR3VpZGUiLA0KICAgICAgImxhc3RVcGRhdGUiOiAiTGFzdCBVcGRhdGUiLA0KICAgICAgImF2YWlsYWJpbGl0eSI6ICJBdmFpbGFiaWxpdHkiLA0KICAgICAgImNoYW5uZWxzIjogIkNoYW5uZWxzIiwNCiAgICAgICJwcm9ncmFtcyI6ICJQcm9ncmFtcyINCiAgICB9LA0KICAgICJuYW1lIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiTmFtZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiR3VpZGUgbmFtZSIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgImRlc2NyaXB0aW9uIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiRGVzY3JpcHRpb24iLA0KICAgICAgInBsYWNlaG9sZGVyIjogIkRlc2NyaXB0aW9uIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAiZmlsZVhNTFRWIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiWE1MVFYgRmlsZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiRmlsZSBwYXRoIG9yIFVSTCBvZiB0aGUgWE1MVFYiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9DQogIH0sDQogICJtYXBwaW5nIjoNCiAgew0KICAgICJ0YWJsZSI6DQogICAgew0KICAgICAgImNoTm8iOiAiQ2guIE5vLiIsDQogICAgICAibG9nbyI6ICJMb2dvIiwNCiAgICAgICJjaGFubmVsTmFtZSI6ICJDaGFubmVsIE5hbWUiLA0KICAgICAgInBsYXlsaXN0IjogIlBsYXlsaXN0IiwNCiAgICAgICJncm91cFRpdGxlIjogIkdyb3VwIFRpdGxlIiwNCiAgICAgICJ4bWx0dkZpbGUiOiAiWE1MVFYgRmlsZSIsDQogICAgICAieG1sdHZJRCI6ICJYTUxUViBJRCIsDQogICAgICAidGltZXNoaWZ0IjogIlRpbWVzaGlmdCINCiAgICB9LA0KICAgICJhY3RpdmUiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJBY3RpdmUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgImNoYW5uZWxOYW1lIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiQ2hhbm5lbCBOYW1lIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJkZXNjcmlwdGlvbiI6DQogICAgew0KICAgICAgInRpdGxlIjogIkNoYW5uZWwgRGVzY3JpcHRpb24iLA0KICAgICAgInBsYWNlaG9sZGVyIjogIlVzZWQgYnkgdGhlIER1bW15IGFzIGFuIFhNTCBkZXNjcmlwdGlvbiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgInVwZGF0ZUNoYW5uZWxOYW1lIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiVXBkYXRlIENoYW5uZWwgTmFtZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAidXBkYXRlQ2hhbm5lbEdyb3VwIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiVXBkYXRlIENoYW5uZWwgR3JvdXAiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiSWYgY2hlY2tlZCwgdXNlIGdyb3VwIGZyb20gdGhlIGRhdGFiYXNlIg0KICAgIH0sDQogICAgImNoYW5uZWxMb2dvIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiTG9nbyBVUkwiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgInVwZGF0ZUNoYW5uZWxMb2dvIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiVXBkYXRlIENoYW5uZWwgTG9nbyIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAiZXBnQ2F0ZWdvcnkiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJFUEcgQ2F0ZWdvcnkiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgIm0zdUdyb3VwVGl0bGUiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJHcm91cCBUaXRsZSAoeHRldmUubTN1KSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAieG1sdHZGaWxlIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiWE1MVFYgRmlsZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAieG1sdHZDaGFubmVsIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiWE1MVFYgQ2hhbm5lbCIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAidGltZXNoaWZ0IjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiVGltZXNoaWZ0IiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIwIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfQ0KICB9LA0KICAidXNlcnMiOg0KICB7DQogICAgInRhYmxlIjoNCiAgICB7DQogICAgICAidXNlcm5hbWUiOiAiVXNlcm5hbWUiLA0KICAgICAgInBhc3N3b3JkIjogIlBhc3N3b3JkIiwNCiAgICAgICJ3ZWIiOiAiV0VCIiwNCiAgICAgICJwbXMiOiAiUE1TIiwNCiAgICAgICJtM3UiOiAiTTNVIiwNCiAgICAgICJ4bWwiOiAiWE1MIiwNCiAgICAgICJhcGkiOiAiQVBJIg0KICAgIH0sDQogICAgInVzZXJuYW1lIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiVXNlcm5hbWUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIlVzZXJuYW1lIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAicGFzc3dvcmQiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJQYXNzd29yZCIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiUGFzc3dvcmQiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJjb25maXJtIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiQ29uZmlybSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiUGFzc3dvcmQgY29uZmlybSIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgIndlYiI6DQogICAgew0KICAgICAgInRpdGxlIjogIldlYiBBY2Nlc3MiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgInBtcyI6DQogICAgew0KICAgICAgInRpdGxlIjogIlBNUyBBY2Nlc3MiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgIm0zdSI6DQogICAgew0KICAgICAgInRpdGxlIjogIk0zVSBBY2Nlc3MiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgInhtbCI6DQogICAgew0KICAgICAgInRpdGxlIjogIlhNTCBBY2Nlc3MiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgImFwaSI6DQogICAgew0KICAgICAgInRpdGxlIjogIkFQSSBBY2Nlc3MiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0NCiAgfSwNCiAgInNldHRpbmdzIjoNCiAgew0KICAgICJjYXRlZ29yeSI6DQogICAgew0KICAgICAgImdlbmVyYWwiOiAiR2VuZXJhbCIsDQogICAgICAiZmlsZXMiOiAiRmlsZXMiLA0KICAgICAgInN0cmVhbWluZyI6ICJTdHJlYW1pbmciLA0KICAgICAgImJhY2t1cCI6ICJCYWNrdXAiLA0KICAgICAgImF1dGhlbnRpY2F0aW9uIjogIkF1dGhlbnRpY2F0aW9uIg0KICAgIH0sDQogICAgInVwZGF0ZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIlNjaGVkdWxlIGZvciB1cGRhdGluZyAoUGxheWxpc3QsIFhNTFRWLCBCYWNrdXApIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIwMDAwLDEwMDAsMjAwMCIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiVGltZSBpbiAyNCBob3VyIGZvcm1hdCAoMDgwMCA9IDg6MDAgYW0pLiBNb3JlIHRpbWVzIGNhbiBiZSBlbnRlcmVkIGNvbW1hIHNlcGFyYXRlZC4gTGVhdmUgdGhpcyBmaWVsZCBlbXB0eSBpZiBubyB1cGRhdGVzIGFyZSB0byBiZSBjYXJyaWVkIG91dC4iDQogICAgfSwNCiAgICAiYXBpIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiQVBJIEludGVyZmFjZSIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiVmlhIEFQSSBpbnRlcmZhY2UgaXQgaXMgcG9zc2libGUgdG8gc2VuZCBjb21tYW5kcyB0byB4VGVWZS4gQVBJIGRvY3VtZW50YXRpb24gaXMgPGEgaHJlZj0naHR0cHM6Ly9naXRodWIuY29tL3h0ZXZlLXByb2plY3QveFRlVmUtRG9jdW1lbnRhdGlvbi9ibG9iL21hc3Rlci9lbi9jb25maWd1cmF0aW9uLm1kI2FwaSc+aGVyZTwvYT4iDQogICAgfSwNCiAgICAiZXBnU291cmNlIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiRVBHIFNvdXJjZSIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiUE1TOjxicj4tIFVzZSBFUEcgZGF0YSBmcm9tIFBsZXggb3IgRW1ieSA8YnI+PGJyPlhFUEc6PGJyPi0gVXNlIG9mIG9uZSBvciBtb3JlIFhNTFRWIGZpbGVzPGJyPi0gQ2hhbm5lbCBtYW5hZ2VtZW50PGJyPi0gTTNVIC8gWE1MVFYgZXhwb3J0IChIVFRQIGxpbmsgZm9yIElQVFYgYXBwcykiDQogICAgfSwNCiAgICAidHVuZXIiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJOdW1iZXIgb2YgVHVuZXJzIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJOdW1iZXIgb2YgcGFyYWxsZWwgY29ubmVjdGlvbnMgdGhhdCBjYW4gYmUgZXN0YWJsaXNoZWQgdG8gdGhlIHByb3ZpZGVyLjxicj5BdmFpbGFibGUgZm9yOiBQbGV4LCBFbWJ5IChIREhSKSwgTTNVICh3aXRoIGFjdGl2ZSBidWZmZXIpLjxicj5BZnRlciBhIGNoYW5nZSwgeFRlVmUgbXVzdCBiZSBkZWxldGUgaW4gdGhlIFBsZXggLyBFbWJ5IERWUiBzZXR0aW5ncyBhbmQgc2V0IHVwIGFnYWluLiINCiAgICB9LA0KICAgICJmaWxlc1VwZGF0ZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIlVwZGF0ZXMgYWxsIGZpbGVzIGF0IHN0YXJ0dXAiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIlVwZGF0ZXMgYWxsIHBsYXlsaXN0cywgdHVuZXIgYW5kIFhNTFRWIGZpbGVzIGF0IHN0YXJ0dXAuIg0KICAgIH0sDQogICAgImNhY2hlSW1hZ2VzIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiSW1hZ2UgQ2FjaGluZyIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiQWxsIGltYWdlcyBmcm9tIHRoZSBYTUxUViBmaWxlIGFyZSBjYWNoZWQsIGFsbG93aW5nIGZhc3RlciByZW5kZXJpbmcgb2YgdGhlIGdyaWQgaW4gdGhlIGNsaWVudC48YnI+RG93bmxvYWRpbmcgdGhlIGltYWdlcyBtYXkgdGFrZSBhIHdoaWxlIGFuZCB3aWxsIGJlIGRvbmUgaW4gdGhlIGJhY2tncm91bmQuIg0KICAgIH0sDQogICAgInJlcGxhY2VFbXB0eUltYWdlcyI6DQogICAgew0KICAgICAgInRpdGxlIjogIlJlcGxhY2UgbWlzc2luZyBwcm9ncmFtIGltYWdlcyIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiSWYgdGhlIHBvc3RlciBpbiB0aGUgWE1MVFYgcHJvZ3JhbSBpcyBtaXNzaW5nLCB0aGUgY2hhbm5lbCBsb2dvIHdpbGwgYmUgdXNlZC4iDQogICAgfSwNCiAgICAieHRldmVBdXRvVXBkYXRlIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiQXV0b21hdGljIHVwZGF0ZSBvZiB4VGVWZSIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiSWYgYSBuZXcgdmVyc2lvbiBvZiB4VGVWZSBpcyBhdmFpbGFibGUsIGl0IHdpbGwgYmUgYXV0b21hdGljYWxseSBpbnN0YWxsZWQuIFRoZSB1cGRhdGVzIGFyZSBkb3dubG9hZGVkIGZyb20gR2l0SHViLiINCiAgICB9LA0KICAgICJzdHJlYW1CdWZmZXJpbmciOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJTdHJlYW0gQnVmZmVyIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJGdW5jdGlvbnMgb2YgdGhlIGJ1ZmZlcjo8YnI+LSBUaGUgc3RyZWFtIGlzIHBhc3NlZCBmcm9tIHhUZVZlLCBGRm1wZWcgb3IgVkxDIHRvIFBsZXgsIEVtYnkgb3IgTTNVIFBsYXllcjxicj4tIFNtYWxsIGplcmtpbmcgb2YgdGhlIHN0cmVhbXMgY2FuIGJlIGNvbXBlbnNhdGVkPGJyPi0gSExTIC8gTTNVOCBzdXBwb3J0PGJyPi0gUlRQIC8gUlRQUyBzdXBwb3J0IChvbmx5IEZGbXBlZyBvciBWTEMpPGJyPi0gUmUtc3RyZWFtaW5nPGJyPi0gU2VwYXJhdGUgdHVuZXIgbGltaXQgZm9yIGVhY2ggcGxheWxpc3QiLA0KICAgICAgImluZm9fZmFsc2UiOiAiTm8gQnVmZmVyIChDbGllbnQgY29ubmVjdHMgdG8gdGhlIHN0cmVhbWluZyBzZXJ2ZXIpIiwNCiAgICAgICJpbmZvX3h0ZXZlIjogInhUZVZlIGNvbm5lY3RzIHRvIHRoZSBzdHJlYW1pbmcgc2VydmVyIiwNCiAgICAgICJpbmZvX2ZmbXBlZyI6ICJGRm1wZWcgY29ubmVjdHMgdG8gdGhlIHN0cmVhbWluZyBzZXJ2ZXIiLA0KICAgICAgImluZm9fdmxjIjogIlZMQyBjb25uZWN0cyB0byB0aGUgc3RyZWFtaW5nIHNlcnZlciINCg0KICAgIH0sDQogICAgInVkcHh5IjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiVURQeHkgYWRkcmVzcyIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiVGhlIGFkZHJlc3Mgb2YgeW91ciBVRFB4eSBzZXJ2ZXIuIElmIHNldCwgYW5kIHRoZSBjaGFubmVsIFVSTHMgaW4gdGhlIG0zdSBpcyBtdWx0aWNhc3QsIHhUZVZlIHdpbGwgcmV3cml0ZSBpdCBzbyB0aGF0IGl0IGlzIGFjY2Vzc2VkIHZpYSB0aGUgVURQeHkgc2VydmljZS4iLA0KICAgICAgInBsYWNlaG9sZGVyIjogImhvc3Q6cG9ydCINCiAgICB9LA0KICAgICJmZm1wZWdQYXRoIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiRkZtcGVnIEJpbmFyeSBQYXRoIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJQYXRoIHRvIEZGbXBlZyBiaW5hcnkuIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIvcGF0aC90by9mZm1wZWciDQogICAgfSwNCiAgICAiZmZtcGVnT3B0aW9ucyI6DQogICAgew0KICAgICAgInRpdGxlIjogIkZGbXBlZyBPcHRpb25zIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJGRm1wZWcgb3B0aW9ucy48YnI+T25seSBjaGFuZ2UgaWYgeW91IGtub3cgd2hhdCB5b3UgYXJlIGRvaW5nLjxicj5MZWF2ZSBibGFuayB0byBzZXQgZGVmYXVsdCBzZXR0aW5ncy4iLA0KICAgICAgInBsYWNlaG9sZGVyIjogIkxlYXZlIGJsYW5rIHRvIHNldCBkZWZhdWx0IHNldHRpbmdzIg0KICAgIH0sDQogICAgInZsY1BhdGgiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJWTEMgLyBDVkxDIEJpbmFyeSBQYXRoIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJQYXRoIHRvIFZMQyAvIENWTEMgYmluYXJ5LiIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiL3BhdGgvdG8vY3ZsYyINCiAgICB9LA0KICAgICJ2bGNPcHRpb25zIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiVkxDIC8gQ1ZMQyBPcHRpb25zIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJWTEMgLyBDVkxDIG9wdGlvbnMuPGJyPk9ubHkgY2hhbmdlIGlmIHlvdSBrbm93IHdoYXQgeW91IGFyZSBkb2luZy48YnI+TGVhdmUgYmxhbmsgdG8gc2V0IGRlZmF1bHQgc2V0dGluZ3MuIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJMZWF2ZSBibGFuayB0byBzZXQgZGVmYXVsdCBzZXR0aW5ncyINCiAgICB9LA0KICAgICJidWZmZXJTaXplIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiQnVmZmVyIFNpemUiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIkJ1ZmZlciBzaXplIGluIE1CLjxicj5NM1U4OiBJZiB0aGUgVFMgc2VnbWVudCBzbWFsbGVyIHRoZW4gdGhlIGJ1ZmZlciBzaXplLCB0aGUgZmlsZSBzaXplIG9mIHRoZSBzZWdtZW50IGlzIHVzZWQuIg0KICAgIH0sDQogICAgImJ1ZmZlclRpbWVvdXQiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJUaW1lb3V0IGZvciBuZXcgY2xpZW50IGNvbm5lY3Rpb25zIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJUaGUgeFRlVmUgYnVmZmVyIHdhaXRzIHVudGlsIG5ldyBjbGllbnQgY29ubmVjdGlvbnMgYXJlIGVzdGFibGlzaGVkLiBIZWxwZnVsIGZvciBmYXN0IGNoYW5uZWwgc3dpdGNoaW5nLiBWYWx1ZSBpbiBtaWxsaXNlY29uZHMuIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIxMDAiDQogICAgfSwNCiAgICAidXNlckFnZW50IjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiVXNlciBBZ2VudCIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiVXNlciBBZ2VudCBmb3IgSFRUUCByZXF1ZXN0cy4gRm9yIGV2ZXJ5IEhUVFAgY29ubmVjdGlvbiwgdGhpcyB2YWx1ZSBpcyB1c2VkIGZvciB0aGUgdXNlciBhZ2VudC4gU2hvdWxkIG9ubHkgYmUgY2hhbmdlZCBpZiB4VGVWZSBpcyBibG9ja2VkLiIsDQogICAgICAicGxhY2Vob2xkZXIiOiAieFRlVmUiDQogICAgfSwNCiAgICAiYmFja3VwUGF0aCI6DQogICAgew0KICAgICAgInRpdGxlIjogIkxvY2F0aW9uIGZvciBhdXRvbWF0aWMgYmFja3VwcyIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiL21udC9kYXRhL2JhY2t1cC94dGV2ZS8iLA0KICAgICAgImRlc2NyaXB0aW9uIjogIkJlZm9yZSBhbnkgdXBkYXRlIG9mIHRoZSBwcm92aWRlciBkYXRhIGJ5IHRoZSBzY2hlZHVsZSwgeFRlVmUgY3JlYXRlcyBhIGJhY2t1cC4gVGhlIHBhdGggZm9yIHRoZSBhdXRvbWF0aWMgYmFja3VwcyBjYW4gYmUgY2hhbmdlZC4geFRlVmUgcmVxdWlyZXMgd3JpdGUgcGVybWlzc2lvbiBmb3IgdGhpcyBmb2xkZXIuIg0KICAgIH0sDQogICAgInRlbXBQYXRoIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiTG9jYXRpb24gZm9yIHRoZSB0ZW1wb3JhcnkgZmlsZXMiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIi90bXAveHRldmUvIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJMb2NhdGlvbiBmb3IgdGhlIGJ1ZmZlciBmaWxlcy4iDQogICAgfSwNCiAgICAiYmFja3VwS2VlcCI6DQogICAgew0KICAgICAgInRpdGxlIjogIk51bWJlciBvZiBiYWNrdXBzIHRvIGtlZXAiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIk51bWJlciBvZiBiYWNrdXBzIHRvIGtlZXAuIE9sZGVyIGJhY2t1cHMgYXJlIGF1dG9tYXRpY2FsbHkgZGVsZXRlZC4iDQogICAgfSwNCiAgICAiYXV0aGVudGljYXRpb25XRUIiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJXRUIgQXV0aGVudGljYXRpb24iLA0KICAgICAgImRlc2NyaXB0aW9uIjogIkFjY2VzcyB0byB0aGUgd2ViIGludGVyZmFjZSBvbmx5IHBvc3NpYmxlIHdpdGggY3JlZGVudGlhbHMuIg0KICAgIH0sDQogICAgImF1dGhlbnRpY2F0aW9uUE1TIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiUE1TIEF1dGhlbnRpY2F0aW9uIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJQbGV4IHJlcXVlc3RzIGFyZSBvbmx5IHBvc3NpYmxlIHdpdGggYXV0aGVudGljYXRpb24uIDxicj48Yj5XYXJuaW5nISEhPC9iPiBBZnRlciBhY3RpdmF0aW5nIHRoaXMgZnVuY3Rpb24geFRlVmUgbXVzdCBiZSBkZWxldGUgaW4gdGhlIFBNUyBEVlIgc2V0dGluZ3MgYW5kIHNldCB1cCBhZ2Fpbi4iDQogICAgfSwNCiAgICAiYXV0aGVudGljYXRpb25NM1UiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJNM1UgQXV0aGVudGljYXRpb24iLA0KICAgICAgImRlc2NyaXB0aW9uIjogIkRvd25sb2FkaW5nIHRoZSB4dGV2ZS5tM3UgZmlsZSB2aWEgYW4gSFRUUCByZXF1ZXN0IGlzIG9ubHkgcG9zc2libGUgd2l0aCBhdXRoZW50aWNhdGlvbi4iDQogICAgfSwNCiAgICAiYXV0aGVudGljYXRpb25YTUwiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJYTUwgQXV0aGVudGljYXRpb24iLA0KICAgICAgImRlc2NyaXB0aW9uIjogIkRvd25sb2FkaW5nIHRoZSB4dGV2ZS54bWwgZmlsZSB2aWEgYW4gSFRUUCByZXF1ZXN0IGlzIG9ubHkgcG9zc2libGUgd2l0aCBhdXRoZW50aWNhdGlvbiINCiAgICB9LA0KICAgICJhdXRoZW50aWNhdGlvbkFQSSI6DQogICAgew0KICAgICAgInRpdGxlIjogIkFQSSBBdXRoZW50aWNhdGlvbiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiQWNjZXNzIHRvIHRoZSBBUEkgaW50ZXJmYWNlIGlzIG9ubHkgcG9zc2libGUgd2l0aCBhdXRoZW50aWNhdGlvbi4iDQogICAgfQ0KICB9LA0KICAid2l6YXJkIjoNCiAgew0KICAgICJlcGdTb3VyY2UiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJFUEcgU291cmNlIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJQTVM6PGJyPi0gVXNlIEVQRyBkYXRhIGZyb20gUGxleCBvciBFbWJ5IDxicj48YnI+WEVQRzo8YnI+LSBVc2Ugb2Ygb25lIG9yIG1vcmUgWE1MVFYgZmlsZXM8YnI+LSBDaGFubmVsIG1hbmFnZW1lbnQ8YnI+LSBNM1UgLyBYTUxUViBleHBvcnQgKEhUVFAgbGluayBmb3IgSVBUViBhcHBzKSINCiAgICB9LA0KICAgICJ0dW5lciI6DQogICAgew0KICAgICAgInRpdGxlIjogIk51bWJlciBvZiB0dW5lcnMiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIk51bWJlciBvZiBwYXJhbGxlbCBjb25uZWN0aW9ucyB0aGF0IGNhbiBiZSBlc3RhYmxpc2hlZCB0byB0aGUgcHJvdmlkZXIuPGJyPkF2YWlsYWJsZSBmb3I6IFBsZXgsIEVtYnkgKEhESFIpLCBNM1UgKHdpdGggYWN0aXZlIGJ1ZmZlcikuPGJyPkFmdGVyIGEgY2hhbmdlLCB4VGVWZSBtdXN0IGJlIGRlbGV0ZSBpbiB0aGUgUGxleCAvIEVtYnkgRFZSIHNldHRpbmdzIGFuZCBzZXQgdXAgYWdhaW4uIg0KICAgIH0sDQogICAgIm0zdSI6DQogICAgew0KICAgICAgInRpdGxlIjogIk0zVSBQbGF5bGlzdCIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiRmlsZSBwYXRoIG9yIFVSTCBvZiB0aGUgTTNVIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJMb2NhbCBvciByZW1vdGUgcGxheWxpc3RzIg0KICAgIH0sDQogICAgInhtbHR2IjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiWE1MVFYgRmlsZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiRmlsZSBwYXRoIG9yIFVSTCBvZiB0aGUgWE1MVFYiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIkxvY2FsIG9yIHJlbW90ZSBYTUxUViBmaWxlIg0KICAgIH0NCiAgfSwNCiAgImxvZ2luIjoNCiAgew0KICAgICJmYWlsZWQiOiAiVXNlciBhdXRoZW50aWNhdGlvbiBmYWlsZWQiLA0KICAgICJoZWFkbGluZSI6ICJMb2dpbiIsDQogICAgInVzZXJuYW1lIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiVXNlcm5hbWUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIlVzZXJuYW1lIg0KICAgIH0sDQogICAgInBhc3N3b3JkIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiUGFzc3dvcmQiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIlBhc3N3b3JkIg0KICAgIH0NCiAgfSwNCiAgImFjY291bnQiOg0KICB7DQogICAgImZhaWxlZCI6ICJQYXNzd29yZCBkb2VzIG5vdCBtYXRjaCIsDQogICAgImhlYWRsaW5lIjogIkNyZWF0ZSB1c2VyIGFjY291bnQiLA0KICAgICJ1c2VybmFtZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIlVzZXJuYW1lIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJVc2VybmFtZSINCiAgICB9LA0KICAgICJwYXNzd29yZCI6DQogICAgew0KICAgICAgInRpdGxlIjogIlBhc3N3b3JkIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJQYXNzd29yZCINCiAgICB9LA0KICAgICJjb25maXJtIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiQ29uZmlybSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiQ29uZmlybSINCiAgICB9DQogIH0NCn0=" webUI["html/login.html"] = "PCFkb2N0eXBlIGh0bWw+DQo8aHRtbD4NCiAgPGhlYWQ+DQogICAgPG1ldGEgY2hhcnNldD0idXRmLTgiPg0KICAgIDxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgsIGluaXRpYWwtc2NhbGU9MS4wIiAvPiANCiAgICA8dGl0bGU+eFRlVmU8L3RpdGxlPg0KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iY3NzL3NjcmVlbi5jc3MiIHR5cGU9InRleHQvY3NzIj4NCiAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9ImNzcy9iYXNlLmNzcyIgdHlwZT0idGV4dC9jc3MiPg0KICAgIDxzY3JpcHQgbGFuZ3VhZ2U9ImphdmFzY3JpcHQiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJqcy9uZXR3b3JrX3RzLmpzIj48L3NjcmlwdD4NCiAgICA8c2NyaXB0IGxhbmd1YWdlPSJqYXZhc2NyaXB0IiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ianMvYXV0aGVudGljYXRpb25fdHMuanMiPjwvc2NyaXB0Pg0KICA8L2hlYWQ+DQoNCiAgICA8Ym9keT4NCiAgICAgICAgICANCiAgICAgIDxkaXYgaWQ9ImhlYWRlciIgY2xhc3M9ImltZ0NlbnRlciI+PC9kaXY+DQoNCiAgICAgIDxkaXYgaWQ9ImJveCI+DQoNCiAgICAgICAgPGRpdiBpZD0iaGVhZGxpbmUiPg0KICAgICAgICAgIDxoMSBpZD0iaGVhZC10ZXh0IiBjbGFzcz0iY2VudGVyIj57ey5sb2dpbi5oZWFkbGluZX19PC9oMT4NCiAgICAgICAgPC9kaXY+DQoNCiAgICAgICAgPHAgaWQ9ImVyciIgY2xhc3M9ImVycm9yTXNnIGNlbnRlciI+e3suYXV0aGVudGljYXRpb25FcnJ9fTwvcD4NCg0KICAgICAgICA8ZGl2IGlkPSJjb250ZW50Ij4NCg0KICAgICAgICAgICAgPGZvcm0gaWQ9ImF1dGhlbnRpY2F0aW9uIiBhY3Rpb249IiIgbWV0aG9kPSJwb3N0Ij4NCg0KICAgICAgICAgICAgICA8aDU+e3subG9naW4udXNlcm5hbWUudGl0bGV9fTo8L2g1Pg0KICAgICAgICAgICAgICA8aW5wdXQgaWQ9InVzZXJuYW1lIiB0eXBlPSJ0ZXh0IiBuYW1lPSJ1c2VybmFtZSIgcGxhY2Vob2xkZXI9IlVzZXJuYW1lIiB2YWx1ZT0iIj4NCiAgICAgICAgICAgICAgPGg1Pnt7LmxvZ2luLnBhc3N3b3JkLnRpdGxlfX06PC9oNT4NCiAgICAgICAgICAgICAgPGlucHV0IGlkPSJwYXNzd29yZCIgdHlwZT0icGFzc3dvcmQiIG5hbWU9InBhc3N3b3JkIiBwbGFjZWhvbGRlcj0iUGFzc3dvcmQiIHZhbHVlPSIiPg0KDQogICAgICAgICAgICA8L2Zvcm0+DQoNCiAgICAgICAgPC9kaXY+DQoNCiAgICAgICAgPGRpdiBpZD0iYm94LWZvb3RlciI+DQogICAgICAgICAgPGlucHV0IGlkPSJzdWJtaXQiIGNsYXNzPSIiIHR5cGU9ImJ1dHRvbiIgdmFsdWU9Int7LmJ1dHRvbi5sb2dpbn19IiBvbmNsaWNrPSJqYXZhc2NyaXB0OiBsb2dpbigpOyI+DQogICAgICAgIDwvZGl2Pg0KICAgICAgICANCiAgICAgIDwvZGl2Pg0KDQogICAgPC9ib2R5Pg0KICAgIA0KPC9odG1sPg==" webUI["html/maintenance.html"] = "PCFkb2N0eXBlIGh0bWw+DQo8aHRtbD4NCiAgPGhlYWQ+DQogICAgPG1ldGEgY2hhcnNldD0idXRmLTgiPg0KICAgIDxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgsIGluaXRpYWwtc2NhbGU9MS4wIiAvPiANCiAgICA8dGl0bGU+eFRlVmU8L3RpdGxlPg0KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iY3NzL3NjcmVlbi5jc3MiIHR5cGU9InRleHQvY3NzIj4NCiAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9ImNzcy9iYXNlLmNzcyIgdHlwZT0idGV4dC9jc3MiPg0KICA8L2hlYWQ+DQoNCiAgICA8Ym9keT4NCiAgICAgICAgICANCiAgICAgIDxkaXYgaWQ9ImhlYWRlciIgY2xhc3M9ImltZ0NlbnRlciI+PC9kaXY+DQoNCiAgICAgIDxkaXYgaWQ9ImJveCI+DQoNCiAgICAgICAgPGRpdiBpZD0iaGVhZGxpbmUiPg0KICAgICAgICAgIDxoMSBpZD0iaGVhZC10ZXh0IiBjbGFzcz0iY2VudGVyIj5NYWludGVuYW5jZTwvaDE+ICAgICAgDQogICAgICAgIDwvZGl2PiAgDQoNCiAgICAgICAgPGRpdiBpZD0iY29udGVudCI+DQogICAgICAgICAgeFRlVmUgaXMgdXBkYXRpbmcgdGhlIGRhdGFiYXNlLCBwbGVhc2UgdHJ5IGFnYWluIGxhdGVyLg0KICAgICAgICA8L2Rpdj4NCg0KICAgICAgICA8ZGl2IGlkPSJib3gtZm9vdGVyIj48L2Rpdj4NCiAgICAgICAgDQogICAgICA8L2Rpdj4NCg0KICAgIDwvYm9keT4NCjwvaHRtbD4=" webUI["html/video/stream-limit.ts"] = "R0AREABC8CUAAcEAAP8B/wAB/IAUSBIBBkZGbXBlZwlTZXJ2aWNlMDF3fEPK//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////9HQAAQAACwDQABwQAAAAHwACqxBLL//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////0dQABAAArASAAHBAADhAPAAG+EA8AAVvU1W////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////R0EAMAdQAAB7DH4AAAAB4AAAgMAKMQAJEKERAAfYYQAAAAEJ8AAAAAFnZAAorNlAeAIn5cBEAAADAAQAAAMAyDxgxlgAAAABaOvjyyLAAAABBgX//6rcRem95tlIt5Ys2CDZI+7veDI2NCAtIGNvcmUgMTUyIHIyODU0IGU5YTU5MDMgLSBILjI2NC9NUEVHLTQgQVZDIGNvZGVjIC0gQ29weWxlZnQgMjAwMy0yMDE3IC0gaHR0cDovL3dHAQARd3cudmlkZW9sYW4ub3JnL3gyNjQuaHRtbCAtIG9wdGlvbnM6IGNhYmFjPTEgcmVmPTMgZGVibG9jaz0xOjA6MCBhbmFseXNlPTB4MzoweDExMyBtZT1oZXggc3VibWU9NyBwc3k9MSBwc3lfcmQ9MS4wMDowLjAwIG1peGVkX3JlZj0xIG1lX3JhbmdlPTE2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ACqxBLL//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////0dQABEAArASAAHBAADhAPAAG+EA8AAVvU1W////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////RwEAGO10tGlFAwyE91Tzg8923ovJk1dv2xh1gVlYQFtWdZ6NSQ8vgHM7/tMfIZPsqgCU856rdBJJRMDaor/oWA7pkvSmC2aqaC5fd/mkWUPTuG8fRhGqOY1rKxLNSI3HtTQAcuVBxRM0NfMw0ky/JMJYZiCgXcNsxpxl+khr/9fKtO5Fg2VNBti92xcZimHUZDJMQTBOY6vSR9L1N2O/kJQCpdfuc9bkcUTMjH/es/lAySxvbiislkohqkpHAQAZVatwHI0t9eHCUfDyWUEtuCNyDwQFOVMtaYEQJrTrhQX0VduT86F0u0wN9ag0uPsrmX6Rid/x5S7KI1SkS+qP6cdmgSP57uiF4dG6IKsWNfGBLY09H/CFlrg73WINQkkp2diKkdEmtZetn8+ZAKzR5eXN5FebiKt6pIkNLuSofjosypEs2o6boKsfpmbtOV0idOeWDM9C8EIcn3aZwk1s2KBDvt1DlY+i2Cuvhk3XoKLT+pq/bOC5QkcBABolcOXneZXLoQw9W1PH1f/of92Ytjj8okrWijcQAKlE5l8XoTb9qrOiZnDOhqwcMlB9H9rorq041I89hChohYoSkJElcM8V+r8WYN5axD1BNyfwaHAOm4UN2/VEYOkNSfMjmx2S0WW/F2ha8Jj4fc4QgqcXr+TnnbwqLkLTValK4Qa1pcv7PIbDq6zCUfxe04guZ8xEhPQjp17/G6IB/6uq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wnibxQ/cXEblVnM47wbCN3iy4eHjYB5MoIICrSYmd8nt4V0toLs084KJlmnur5FbApYM4W79ff4oZkW88Cg8Fv8TnWhh1Hqc4UlhMbRKm2QxDgfBxar3U7BwNR6prrXXjqfR7ja3tPli+H7Jez/xcTg32QpHAQAdTa7pSSgBvmOqzz175NAFIhwE9p3d71F9jLvhaPv8q1iKopL0kizwzEWElnXWmNhfLkl/Au8KujnoKUaxVdTe+zAZm2dOkejnpNVtVj0Aw9wKcG3ZQ1iRZrUFRIoPKYlmR+oi0LrupuhYABtgPbdCbDtezGTr0nw9wVd/rZ6V+1wcoJ6+8VAVueIdwI3brqm6EoFHiI8L6lER+9SefB8fHo4NYgr/I8jSxaa/2PLX2K/DjrlY6bN8fEcBAB7DXsuh8DITF6CYWj2HTFvqfzlic3QHXnHtvsTFNpyVY1LY8y/fRK2mwALN6IB5W3OuyoKiA3K0lJdQUv2gYhHWvPTV218HYrD0rkbMxRH0SiEEkrHDeOt5T1HtWD13D2/QvMu535fsfZyeaFDjdCE9M0Xi8Lfc7Xj1ZNGend7Jo7/cEiczFkc1vB4z2JpFGZreV2EdquyEzC2STFJtfimyx8QlLngEuR1cxH+lWEcFX+mvBa/eqktIRwEAH6VazFLPNsnHZqsI66TVoArQuUUGFAzr8MT8GZ9V6qpZa5D0jA/4eGi6Kq0smUgRExnqIbSMLWqDf/Pk2YT3MpHTu9VE3Dn9blgB6KsVIkWnB98Y2n/6DrZDcF94Ndu0Ka4U/RZwdV5O5KcO+lU2ZiIOYTYZ6Ie0d+tApxYxJ+YmxaDoCyRNe6crw/yzR5SflT8ddi/E2BM+l+nwVDiKZ/714fmrBxFKWuqLiQNHV19o1cZ8Ubun+ZtHQAASAACwDQABwQAAAAHwACqxBLL//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////0dQABIAArASAAHBAADhAPAAG+EA8AAVvU1W////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////RwEAEH1s3BdtHdF1ln55B24wdACF/ggcRtPmB4IUB6cZJ+m32I4R48ZkdhAFBulgWcsv0wZwH0o1yi3i4qm3rJ98AUKdB9PsNyG9gURV0bTw4myAj6g5Dgodfv6w9bsbOxsGUWkvgAJ3rrR010BvZbIa6CMRCQRjxkCfRF77ansRJZT0JzhtYeSS/ZJob8Rr2jrng3W2rkmHtE+rdqlPiHxmwkRZvYGhBxwiJO2L6f+l/cABsfs09rA+A0pHAQAREZay3TBUIAfMWhApE+LaPgeyOYtaPFONA9aC0h4QrFkaLZfb86678MK+zLgqDBsDoj50eZHMVcczRjs4sYlv7RG8RIWKb5lB9Kn/8+CkxiiA11cHH1yzLX2SKCmhsak/+P/zYQ1EDvEj33bl9e3Jd62cTI+Qw99KrsWnUMN8hFNeXzoGHA3aec+Li4NFboF8sa6lCPR6Csxsvxw8DJaWCnER5Z0p+nKhXavF/eNHQ0DX47ohycc87UcBABKsYHCHXXe3vK1cFYDWO6rhwM6hxCdJ+/X+VB1akQejL6iBMdUPuadUqBnbprwJM0dWpSSn9uuZZeqe46iZOGIJUo69d8x+ZSvPcBH/dK1Y0LJnoWdgWH51SQg7eYqcwjQW3BOy7ZF02Hn1EhTuhsN7ms8zv3WIeEBDBq0T3Idl+Tmw9iJU9skVYiwygHG2+0XwrLa6y+uiQPwMzrnEr1kuf24XoAqrJTZQiVH3aQF4d94yDreWu2KPRwEAE2FsynHZaUcBXEFbeX0nSxZ7sRcRjJvc7RYOny6N8QFwKDVO7jpRWWYM55kuepBOyZ+7BFYeG+FU1kR+ZfmqyDNkD4D1IPwNh6u9JQxDymfN/aMcQC3WxdvCKquPsAut6dugpGkOFtIe+W3ayc4V/J978P+h1EDFMbFjxRPuXht0K2dBQZCJ0ybISUDqWzhPuep8CdxSU4MvMVfdXh7FLl/BqKJUTT+vM+Pz3XnqCQQmH5TjQ4CK55VHAQAUEtgfkBwIYgtwHkhjmtLw7HNTeJeMfTjATEKcyuKzItSeYxHBmGzQ/+G2otpPCOkVAXJ9mfx7LxrW4joZ0ttTRQJ/wqMUK1IN349LiJoo8y/+FwN4jPNDwIleJG697riqnmLOweFW8spHKLBfnHcyC1pG6EIxFpTqUQ0KHqXD/KXIHKioJNAOVwQ1Gfloxebo/Tdtd00dpHP3gcsAOnV75APCYOjVIlwm2X6ViDeZw6Btdb/Br/+yokcBABU3+eOESLlneGbR5SLiL8wPkoRaZ5X7xFlMTMvsv9yHk26bVdmsubSdbYS1Hy64n0+NnL7C1aLD7aJxOudMjVW5goZbfO2KxBQkCD4HFA284wbaB5vOL7mRilCn6YEs1kiwf22+fBLNUmXDb2p353wrD/ygTDhlki66USvUmd/ZAs9uzAddegEzy7Xn00YysWTu/hegYyZtWFC+X5dhLubWJ7n96y5wjrP7PAOXoQQtFUH9j/rBiP/7RwEAFnL/wYKYuj80mPGtimSbF/E9K7XwjwBz8yHZubmVMTCmwkZBM4h0FR1thnUGiSjqjJT6SfunWCZ/dZDQplrzS00UKcUP399SyM+nNG1br8Za0ZYwWch8nyLHYXSRuxdnrfUUespsOQo1cWSLGf0pV2HIcHoiAAEKwPU6irB5BSoFvB1qKVjgEk+QwAEYAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAABHAQA3pAD/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////AwAAAwAAAwAAAwAAAwAAAwBbwUdBABgAAAHgAACAwAoxAAmBIREAB/SBAAAAAQnwAAAAAUGaJGxDv/6plgAAAwAAAwAAAwAAAwAAAwAAAwAAAwAKCKB0AIhy1ftwLNISWucTFC7xeBcaIzP3oZjZo8uT9hqZVstWGnrPz+vjaA5FuCO+K2w7/o39LygDO7aL+0zSrN90LW7r133x8+f+PEKk8d7pd2fj4RYuMOXOYunzFzRX/4IvR1XsK5WJYwVkOca3yfo7DTvUBP9rgSiTRwEAGQD6CFK1PBC4qYCa+coLVnX+jgODNrau5YJXIekDI4+wUNV+5T5HE4e2t5EGAjn77+kC1Vghmvx8KqPnylVUvsaTofheggxHsPuxn1zQt6nA59UglrRUMn8b4pmrvfqTBSqU949+AcNAI6M/eAqz6r0RG5KNeBhx8R2f0x2kujwHU3pc3rlPb6ZrFM/2HiG97eEIezrvWFG7YAAAAwAAAwAE1KRo1VfbdZQ/tOpNGxFmTcQoFidyD2tHAQAapTTIErUKA2Rc9uIzGJu+oW0uNOxRyl6oJNUNJp5L9TIshNS1CmUKgdCaE3LkLwdE8iUkUnIGfWLiWpWmjzsINYC8dnDaSptB53yJkBu0SsR00oo1PZ0pl4ZzoXGSYQJTPaVCbj6FNqm5wcnUqKTB/rgHdPdnDj0K8asLABeo/n3XCXrDorI+LYSD1FBgmV9O7RZdjfL0NnXOQkiq/ZGirwVV0cUF1aHtZx1yHlAAZKuuu7TqB13CAUcBADuRAP///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////yj/IrOvAEoXDNGy+nrxWN0l8cmuqWYaUJpuM9XgAAADAAADAAKmR0EAPAcQAACJHH4AAAAB4AAAgMAKMQAJSOERAAkQoQAAAAEJ8AAAAAFBnkJ4hf8AAAMAAAMAAAMAAAMAAAMAAAMAAAMAC/BmhyuvLmkCgKTgACEXfOVvHRHdpBEEmTTz9pIZCa2FD0CXukzDCakOHekTpJQSdsfd7a/jjM1/5lBtKCAGQ6zOCSQ6DeKtyw+CugDuuglGipwmvQW+FIDjnZ6HRd0uaSOGy6VB3h9MI1o4nqaCqVwwIgubYZFHAQA9XgD////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////WcZrO6BEiqf8pCxYwlz2mkdUzY/ipM/TIHS4m5xQAAAMAAAMAAA5sVm90p14dlvWgBgY7XQ9KVOJKLtaMAN5KiffVQtNuzW5DfL+RewZpAAADAAADAAAQMUdBAB4AAAHgAACAgAUhAAkswQAAAAEJ8AAAAAEBnmF0Qr8AAAMAAAMAAAMAAAMAAAMAAAMAAAMAABJfBjP2+4+W7ZybyT130+Ma4WSqICfd/dS4YtjrLlmh5VBlfrtwJqdN1PBTYDkwGOOONqZQeFN6lLGJoDzvuh3kv1aDBLqug+JhvrSeu5ebnvcrtQzb2REwJL3h9mvtkr0WfDu4AAADAAADAAs32Y4C/6Ns79oCGj6oqLltY3T4I0/QRwEAP5wA//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////8BeoWLRnKQmVgO/RBoBfcK85AAAAMAAAMACFhHQQAwBxAAAJcsfgAAAAHgAACAwAoxAAllAREACUjhAAAAAQnwAAAAAQGeY2pCvwAAAwAAAwAAAwAAAwAAAwAAAwAAAwAAEmDKfLGXsvBBQPNYXlEd6WueJ4deApfcHESlG+7V6u0AiWQqJvNZYM+3Js3Lj9Ldc9yYIHqruVwfMtCYGlX3wMavI/DrhMuJw+RreIF8SKsJD8CMccAAAAMAAAMACrFZOBgEqaP/8EyWsAHV6CgcAgfyox/roEcBADGuAP//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////AAADAAADAHTBR0EAEgAAAeAAAIDACjEACfGhEQAJZQEAAAABCfAAAAABQZpoSahBaJlMCHf//qmWAAADAAADAAADAAADAAADAAADAAADAAALf8A2bry6lUyIAQGNFfVK2Cd7h4qDqmqpvmXfkfTwo2Ab79AHhajxJ4MPWIgAAA84xLRIx7I2CrWjWe96OvgkzgS9mtvhuxdzAgpuIOJI3DEY9mviDDZz8XSAAAADAAADAB7AZkj9AAHHGvk+Pzlku8UkWa5HAQAzogD//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////6HjAkbF/gsWuvw4QAAAAwAAAwAccUdBADQHEAAApTx+AAAAAeAAAIDACjEACblhEQAJgSEAAAABCfAAAAABQZ6GRREsL/8AAAMAAAMAAAMAAAMAAAMAAAMAAAMAAA3URJB/3lMHSmOd0GYZnfpoR80WdqxlyHzPX+V81VUMeXIGrRgq5agd+ACdjoGI036yQ/rmpGw0CmMBrKwpI+nwFo3SP0s1rI2yHBZaiPJjSUgw33rBkxXcq55kfLf2sAAAAwAAAwACBWolidWDnIeQAAADRwEANbEA//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////8AAAMADulHQQA2NAD///////////////////////////////////////////////////////////////////8AAAHgAACAgAUhAAmdQQAAAAEJ8AAAAAEBnqV0Qr8AAAMAAAMAAAMAAAMAAAMAAAMAAAMAABJXNihCnx11JUosH2hBE53O/YN+GPHqcnJiQBIf3maTAAj5iRt+7GYUKBAU9iCXTiouCjGYgAAAAwAAAwA9p4HQBg2cAAADAAADAADGgUdBADc4EAAAs0x+AP////////////////////////////////////////////////////////////////8AAAHgAACAwAoxAAnVgREACblhAAAAAQnwAAAAAQGep2pCvwAAAwAAAwAAAwAAAwAAAwAAAwAAAwAAAwBR6/L83y+ZevtMZ0FW4lp8qV7fVXQAhLAWlS6mDxvpaSUgChorvgTMXtxJEIAAAAMAAAMACqFCAAADAAADAAADAAz4R0EAOCsA////////////////////////////////////////////////////////AAAB4AAAgMAKMQALYiERAAnVgQAAAAEJ8AAAAAFBmqxJqEFsmUwId//+qZYAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAApQTq0hABLvkcWCYrAaRRPNDrECJGlF/11BYvG9+JJ9Y86nxnmQzPxtAAe1UgOsXAAADAAADAAADAAADAAADAAADAAADA/JHQQA5JhAAAMFcfgD/////////////////////////////////////////AAAB4AAAgMAKMQALKeERAAnxoQAAAAEJ8AAAAAFBnspFFSwv/wAAAwAAAwAAAwAAAwAAAwAAAwAAAwAADdRFmvrVE0KXDOGwWddlwYa1foib7tXZKmkua6R4APb4b8+tXwdSNNqgf2IVNwGTohgQAcMvp6SiQxpiQym4AAADAAADAANUNUAAAAMAAAMAAAMBN0dBADo8AP//////////////////////////////////////////////////////////////////////////////AAAB4AAAgIAFIQALDcEAAAABCfAAAAABAZ7pdEK/AAADAAADAAADAAADAAADAAADAAADAAADAFHTAfujIUaaLSuklb9y0/so9AEtQAqkAxOviALQZ5jNt/iOkABrCOZ4md0iUnFwAAADAAADAALwckAAAAMAAAMAAATcR0EAO0IQAADPbH4A//////////////////////////////////////////////////////////////////////////////8AAAHgAACAwAoxAAtGAREACynhAAAAAQnwAAAAAQGe62pCvwAAAwAAAwAAAwAAAwAAAwAAAwAAAwAAAwBR6/L83y+WryR9gmVKPGbIhJpkgAFgHCej3gB6rAHPgHHAAAADAAADAAAYIV0AAAMAAAMAAAMABnxHQQA8UQD//////////////////////////////////////////////////////////////////////////////////////////////////////////wAAAeAAAIDACjEAC9KhEQALRgEAAAABCfAAAAABQZrwSahBbJlMCG///qeEAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAAZ8UdBAD00EAAA3Xx+AP///////////////////////////////////////////////////////////wAAAeAAAIDACjEAC5phEQALYiEAAAABCfAAAAABQZ8ORRUsL/8AAAMAAAMAAAMAAAMAAAMAAAMAAAMAAA3URZr61RNClwzhI2ZXdRHYLZWc1yTgKRhTIXBNABHQKIIyYNyc+AaEn1jhATEAAAMAAAMAAAMAckkIAAADAAADAAADAEbBR0EAPkYA////////////////////////////////////////////////////////////////////////////////////////////AAAB4AAAgIAFIQALfkEAAAABCfAAAAABAZ8tdEK/AAADAAADAAADAAADAAADAAADAAADAAADAFHTAfujIUAYRtY0f/43cIs2OjxACR2hMR1QBGYX+34JGAAAAwAAAwAAAwKEJ6AAAAMAAAMAAAMA3oFHQQA/QhAAAOuMfgD//////////////////////////////////////////////////////////////////////////////wAAAeAAAIDACjEAC7aBEQALmmEAAAABCfAAAAABAZ8vakK/AAADAAADAAADAAADAAADAAADAAADAAADAFHr8vzfL5avJH2CZUo8ZsiEmmSAAWAcJ6PeAHqsAc+AccAAAAMAAAMAABghXQAAAwAAAwAAAwAGfEdBADBRAP//////////////////////////////////////////////////////////////////////////////////////////////////////////AAAB4AAAgMAKMQANQyERAAu2gQAAAAEJ8AAAAAFBmzRJqEFsmUwIZ//+nhAAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAGVAR0EAMTQQAAD5nH4A////////////////////////////////////////////////////////////AAAB4AAAgMAKMQANCuERAAvSoQAAAAEJ8AAAAAFBn1JFFSwv/wAAAwAAAwAAAwAAAwAAAwAAAwAAAwAADdRFmvrVE0KXDOEjZld1EdgtlZzXJOApGFMhcE0AEdAogjJg3Jz4BoSfWOEBMQAAAwAAAwAAAwBySQgAAAMAAAMAAAMARsFHQQAyRgD///////////////////////////////////////////////////////////////////////////////////////////8AAAHgAACAgAUhAAvuwQAAAAEJ8AAAAAEBn3F0Qr8AAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAUdMB+6MhQBhG1jR//jdwizY6PEAJHaExHVAEZhf7fgkYAAADAAADAAADAoQnoAAAAwAAAwAAAwDegEdBADNCEAABB6x+AP//////////////////////////////////////////////////////////////////////////////AAAB4AAAgMAKMQANJwERAA0K4QAAAAEJ8AAAAAEBn3NqQr8AAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAUevy/N8vlq8kfYJlSjxmyISaZIABYBwno94AeqwBz4BxwAAAAwAAAwAAGCFdAAADAAADAAADAAZ8R0EANFIA////////////////////////////////////////////////////////////////////////////////////////////////////////////AAAB4AAAgMAKMQANs6ERAA0nAQAAAAEJ8AAAAAFBm3hJqEFsmUwIV//+OEAAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAYtHQQA1NBAAARW8fgD///////////////////////////////////////////////////////////8AAAHgAACAwAoxAA17YREADUMhAAAAAQnwAAAAAUGflkUVLC//AAADAAADAAADAAADAAADAAADAAADAAAN1EWa+tUTQpcM4SNmV3UR2C2VnNck4CkYUyFwTQAR0CiCMmDcnPgGhJ9Y4QExAAADAAADAAADAHJJCAAAAwAAAwAAAwBGwEdBADZGAP///////////////////////////////////////////////////////////////////////////////////////////wAAAeAAAICABSEADV9BAAAAAQnwAAAAAQGftXRCvwAAAwAAAwAAAwAAAwAAAwAAAwAAAwAAAwBR0wH7oyFAGEbWNH/+N3CLNjo8QAkdoTEdUARmF/t+CRgAAAMAAAMAAAMChCegAAADAAADAAADAN6BR0EAN0IQAAEjzH4A//////////////////////////////////////////////////////////////////////////////8AAAHgAACAwAoxAA2XgREADXthAAAAAQnwAAAAAQGft2pCvwAAAwAAAwAAAwAAAwAAAwAAAwAAAwAAAwBR6/L83y+WryR9gmVKPGbIhJpkgAFgHCej3gB6rAHPgHHAAAADAAADAAAYIV0AAAMAAAMAAAMABn0=" diff --git a/src/xepg.go b/src/xepg.go index ae966f7..79959dd 100644 --- a/src/xepg.go +++ b/src/xepg.go @@ -421,6 +421,13 @@ func createXEPGDatabase() (err error) { } } + // Update GroupTitle + xepgChannel.GroupTitle = m3uChannel.GroupTitle + + if xepgChannel.XUpdateChannelGroup { + xepgChannel.XGroupTitle = m3uChannel.GroupTitle + } + // Update Channel Logo. Will be overwritten again if the Logo is present in the XMLTV file if xepgChannel.XUpdateChannelIcon == true { xepgChannel.TvgLogo = m3uChannel.TvgLogo diff --git a/ts/base_ts.ts b/ts/base_ts.ts index 596fbae..e5633aa 100644 --- a/ts/base_ts.ts +++ b/ts/base_ts.ts @@ -517,6 +517,24 @@ function toggleChannelStatus(id:string) { } +function toggleGroupUpdateCb(xepgId: string, target: HTMLInputElement) { + target.className = 'changed'; + + const groupInput: HTMLInputElement = document.querySelector('input[name="x-group-title"]'); + const mapping = getLocalData('mapping', xepgId); + + if (target.checked) { + groupInput.dataset.oldValue = groupInput.value; + groupInput.value = mapping['group-title']; + groupInput.disabled = true; + } else { + groupInput.value = groupInput.dataset.oldValue; + groupInput.disabled = false; + } + + groupInput.className = 'changed'; +} + function restore() { if (document.getElementById('upload')) { diff --git a/ts/menu_ts.ts b/ts/menu_ts.ts index 928bcec..d80e031 100644 --- a/ts/menu_ts.ts +++ b/ts/menu_ts.ts @@ -1625,11 +1625,22 @@ function openPopUp(dataType, element) { var dbKey:string = "x-group-title" var input = content.createInput("text", dbKey, data[dbKey]) input.setAttribute("onchange", "javascript: this.className = 'changed'") + input.dataset.oldValue = data[dbKey] content.appendRow("{{.mapping.m3uGroupTitle.title}}", input) - if (data["group-title"] != undefined) { content.description(data["group-title"]) } + if (data["x-update-channel-group"] == true) { + input.disabled = true; + } + + // Update channel group checkbox + var dbKey:string = "x-update-channel-group" + var input = content.createCheckbox(dbKey) + input.setAttribute("onchange", "javascript: toggleGroupUpdateCb('" + id + "', this);") + input.checked = data[dbKey] + content.appendRow("{{.mapping.updateChannelGroup.title}}", input) + content.description("{{.mapping.updateChannelGroup.description}}") // XMLTV file var dbKey:string = "x-xmltv-file" diff --git a/xteve.go b/xteve.go index 70156f1..0c2a7e0 100644 --- a/xteve.go +++ b/xteve.go @@ -42,7 +42,7 @@ const Name = "xTeVe" const Version = "2.2.5.0000" // DBVersion : Database Version -const DBVersion = "2.2.0" +const DBVersion = "2.2.1" // APIVersion : API Version const APIVersion = "1.1.0" From 30dad33cf2f3a8b960fc953bfb8a1675d0f3c04a Mon Sep 17 00:00:00 2001 From: SCP002 Date: Fri, 15 Apr 2022 02:01:10 +0300 Subject: [PATCH 080/189] Implement web client alerts. Add alert on database migration from <= 2.1.1. Defer close server websocket connection. Closes #24 --- html/js/network_ts.js | 6 +++--- src/screen.go | 15 +++++++++++++++ src/update.go | 1 + src/webUI.go | 2 +- src/webserver.go | 11 +++++++++++ ts/network_ts.ts | 8 ++++---- 6 files changed, 35 insertions(+), 8 deletions(-) diff --git a/html/js/network_ts.js b/html/js/network_ts.js index 9f95bbe..b748b2e 100644 --- a/html/js/network_ts.js +++ b/html/js/network_ts.js @@ -54,6 +54,9 @@ class Server { } return; } + if (response.hasOwnProperty("alert")) { + alert(response["alert"]); + } if (response.hasOwnProperty("logoURL")) { var div = document.getElementById("channel-icon"); div.value = response["logoURL"]; @@ -81,9 +84,6 @@ class Server { if (response.hasOwnProperty("openLink")) { window.location = response["openLink"]; } - if (response.hasOwnProperty("alert")) { - alert(response["alert"]); - } if (response.hasOwnProperty("reload")) { location.reload(); } diff --git a/src/screen.go b/src/screen.go index d4d5f3c..65eb9de 100644 --- a/src/screen.go +++ b/src/screen.go @@ -1,6 +1,7 @@ package src import ( + "errors" "fmt" "log" "os" @@ -399,6 +400,20 @@ func getErrMsg(errCode int) (errMsg string) { return errMsg } +func sendAlert(text string) { + + select { + case webAlerts <- text: + // + default: + err := errors.New(fmt.Sprintf("Client alert buffer is full, dropping the message: %v", text)) + ShowError(err, 0) + } + + return + +} + func addNotification(notification Notification) (err error) { var i int diff --git a/src/update.go b/src/update.go index b9c78e6..1a26523 100644 --- a/src/update.go +++ b/src/update.go @@ -242,6 +242,7 @@ checkVersion: // Database verison <= 2.1.1 has broken XEPG mapping showWarning(2022) + sendAlert("Loaded database had broken XEPG mapping (version <= 2.1.1). It was cleared.") // Clear XEPG mapping Data.XEPG.Channels = make(map[string]interface{}) diff --git a/src/webUI.go b/src/webUI.go index 63af0c4..ac20a0c 100644 --- a/src/webUI.go +++ b/src/webUI.go @@ -30,7 +30,7 @@ func loadHTMLMap() { webUI["html/js/configuration_ts.js"] = "Y2xhc3MgV2l6YXJkQ2F0ZWdvcnkgew0KICAgIGNvbnN0cnVjdG9yKCkgew0KICAgICAgICB0aGlzLkRvY3VtZW50SUQgPSAiY29udGVudCI7DQogICAgfQ0KICAgIGNyZWF0ZUNhdGVnb3J5SGVhZGxpbmUodmFsdWUpIHsNCiAgICAgICAgdmFyIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJINCIpOw0KICAgICAgICBlbGVtZW50LmlubmVySFRNTCA9IHZhbHVlOw0KICAgICAgICByZXR1cm4gZWxlbWVudDsNCiAgICB9DQp9DQpjbGFzcyBXaXphcmRJdGVtIGV4dGVuZHMgV2l6YXJkQ2F0ZWdvcnkgew0KICAgIGNvbnN0cnVjdG9yKGtleSwgaGVhZGxpbmUpIHsNCiAgICAgICAgc3VwZXIoKTsNCiAgICAgICAgdGhpcy5oZWFkbGluZSA9IGhlYWRsaW5lOw0KICAgICAgICB0aGlzLmtleSA9IGtleTsNCiAgICB9DQogICAgY3JlYXRlV2l6YXJkKCkgew0KICAgICAgICB2YXIgaGVhZGxpbmUgPSB0aGlzLmNyZWF0ZUNhdGVnb3J5SGVhZGxpbmUodGhpcy5oZWFkbGluZSk7DQogICAgICAgIHZhciBrZXkgPSB0aGlzLmtleTsNCiAgICAgICAgdmFyIGNvbnRlbnQgPSBuZXcgUG9wdXBDb250ZW50KCk7DQogICAgICAgIHZhciBkZXNjcmlwdGlvbjsNCiAgICAgICAgdmFyIGRvYyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHRoaXMuRG9jdW1lbnRJRCk7DQogICAgICAgIGRvYy5pbm5lckhUTUwgPSAiIjsNCiAgICAgICAgZG9jLmFwcGVuZENoaWxkKGhlYWRsaW5lKTsNCiAgICAgICAgc3dpdGNoIChrZXkpIHsNCiAgICAgICAgICAgIGNhc2UgInR1bmVyIjoNCiAgICAgICAgICAgICAgICB2YXIgdGV4dCA9IG5ldyBBcnJheSgpOw0KICAgICAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBuZXcgQXJyYXkoKTsNCiAgICAgICAgICAgICAgICBmb3IgKHZhciBpID0gMTsgaSA8PSAxMDA7IGkrKykgew0KICAgICAgICAgICAgICAgICAgICB0ZXh0LnB1c2goaSk7DQogICAgICAgICAgICAgICAgICAgIHZhbHVlcy5wdXNoKGkpOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCAiMSIsIGtleSk7DQogICAgICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgiY2xhc3MiLCAid2l6YXJkIik7DQogICAgICAgICAgICAgICAgc2VsZWN0LmlkID0ga2V5Ow0KICAgICAgICAgICAgICAgIGRvYy5hcHBlbmRDaGlsZChzZWxlY3QpOw0KICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uID0gInt7LndpemFyZC50dW5lci5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImVwZ1NvdXJjZSI6DQogICAgICAgICAgICAgICAgdmFyIHRleHQgPSBbIlBNUyIsICJYRVBHIl07DQogICAgICAgICAgICAgICAgdmFyIHZhbHVlcyA9IFsiUE1TIiwgIlhFUEciXTsNCiAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCAiWEVQRyIsIGtleSk7DQogICAgICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgiY2xhc3MiLCAid2l6YXJkIik7DQogICAgICAgICAgICAgICAgc2VsZWN0LmlkID0ga2V5Ow0KICAgICAgICAgICAgICAgIGRvYy5hcHBlbmRDaGlsZChzZWxlY3QpOw0KICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uID0gInt7LndpemFyZC5lcGdTb3VyY2UuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJtM3UiOg0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBrZXksICIiKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LndpemFyZC5tM3UucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgiY2xhc3MiLCAid2l6YXJkIik7DQogICAgICAgICAgICAgICAgaW5wdXQuaWQgPSBrZXk7DQogICAgICAgICAgICAgICAgZG9jLmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbiA9ICJ7ey53aXphcmQubTN1LmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAieG1sdHYiOg0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBrZXksICIiKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LndpemFyZC54bWx0di5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJjbGFzcyIsICJ3aXphcmQiKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5pZCA9IGtleTsNCiAgICAgICAgICAgICAgICBkb2MuYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uID0gInt7LndpemFyZC54bWx0di5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICAgICAgY29uc29sZS5sb2coa2V5KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgfQ0KICAgICAgICB2YXIgcHJlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiUFJFIik7DQogICAgICAgIHByZS5pbm5lckhUTUwgPSBkZXNjcmlwdGlvbjsNCiAgICAgICAgZG9jLmFwcGVuZENoaWxkKHByZSk7DQogICAgICAgIGNvbnNvbGUubG9nKGhlYWRsaW5lLCBrZXkpOw0KICAgIH0NCn0NCmZ1bmN0aW9uIHJlYWR5Rm9yQ29uZmlndXJhdGlvbih3aXphcmQpIHsNCiAgICB2YXIgc2VydmVyID0gbmV3IFNlcnZlcigiZ2V0U2VydmVyQ29uZmlnIik7DQogICAgc2VydmVyLnJlcXVlc3QobmV3IE9iamVjdCgpKTsNCiAgICBzaG93RWxlbWVudCgibG9hZGluZyIsIGZhbHNlKTsNCiAgICBjb25maWd1cmF0aW9uV2l6YXJkW3dpemFyZF0uY3JlYXRlV2l6YXJkKCk7DQp9DQpmdW5jdGlvbiBzYXZlV2l6YXJkKCkgew0KICAgIHZhciBjbWQgPSAic2F2ZVdpemFyZCI7DQogICAgdmFyIGRpdiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb250ZW50Iik7DQogICAgdmFyIGNvbmZpZyA9IGRpdi5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCJ3aXphcmQiKTsNCiAgICB2YXIgd2l6YXJkID0gbmV3IE9iamVjdCgpOw0KICAgIGZvciAodmFyIGkgPSAwOyBpIDwgY29uZmlnLmxlbmd0aDsgaSsrKSB7DQogICAgICAgIHZhciBuYW1lOw0KICAgICAgICB2YXIgdmFsdWU7DQogICAgICAgIHN3aXRjaCAoY29uZmlnW2ldLnRhZ05hbWUpIHsNCiAgICAgICAgICAgIGNhc2UgIlNFTEVDVCI6DQogICAgICAgICAgICAgICAgbmFtZSA9IGNvbmZpZ1tpXS5uYW1lOw0KICAgICAgICAgICAgICAgIHZhbHVlID0gY29uZmlnW2ldLnZhbHVlOw0KICAgICAgICAgICAgICAgIC8vIElmIHRoZSB2YWx1ZSBpcyBhIG51bWJlciwgc3RvcmUgaXQgYXMgYSBudW1iZXINCiAgICAgICAgICAgICAgICBpZiAoaXNOYU4odmFsdWUpKSB7DQogICAgICAgICAgICAgICAgICAgIHdpemFyZFtuYW1lXSA9IHZhbHVlOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICAgICAgd2l6YXJkW25hbWVdID0gcGFyc2VJbnQodmFsdWUpOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgIklOUFVUIjoNCiAgICAgICAgICAgICAgICBzd2l0Y2ggKGNvbmZpZ1tpXS50eXBlKSB7DQogICAgICAgICAgICAgICAgICAgIGNhc2UgInRleHQiOg0KICAgICAgICAgICAgICAgICAgICAgICAgbmFtZSA9IGNvbmZpZ1tpXS5uYW1lOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSBjb25maWdbaV0udmFsdWU7DQogICAgICAgICAgICAgICAgICAgICAgICBpZiAodmFsdWUubGVuZ3RoID09IDApIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgbXNnID0gbmFtZS50b1VwcGVyQ2FzZSgpICsgIjogIiArICJ7ey5hbGVydC5taXNzaW5nSW5wdXR9fSI7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgYWxlcnQobXNnKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICB3aXphcmRbbmFtZV0gPSB2YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICAgICAgLy8gY29kZS4uLg0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICB9DQogICAgfQ0KICAgIHZhciBkYXRhID0gbmV3IE9iamVjdCgpOw0KICAgIGRhdGFbIndpemFyZCJdID0gd2l6YXJkOw0KICAgIHZhciBzZXJ2ZXIgPSBuZXcgU2VydmVyKGNtZCk7DQogICAgc2VydmVyLnJlcXVlc3QoZGF0YSk7DQogICAgY29uc29sZS5sb2coZGF0YSk7DQp9DQovLyBXaXphcmQNCnZhciBjb25maWd1cmF0aW9uV2l6YXJkID0gbmV3IEFycmF5KCk7DQpjb25maWd1cmF0aW9uV2l6YXJkLnB1c2gobmV3IFdpemFyZEl0ZW0oInR1bmVyIiwgInt7LndpemFyZC50dW5lci50aXRsZX19IikpOw0KY29uZmlndXJhdGlvbldpemFyZC5wdXNoKG5ldyBXaXphcmRJdGVtKCJlcGdTb3VyY2UiLCAie3sud2l6YXJkLmVwZ1NvdXJjZS50aXRsZX19IikpOw0KY29uZmlndXJhdGlvbldpemFyZC5wdXNoKG5ldyBXaXphcmRJdGVtKCJtM3UiLCAie3sud2l6YXJkLm0zdS50aXRsZX19IikpOw0KY29uZmlndXJhdGlvbldpemFyZC5wdXNoKG5ldyBXaXphcmRJdGVtKCJ4bWx0diIsICJ7ey53aXphcmQueG1sdHYudGl0bGV9fSIpKTsNCg==" webUI["html/js/logs_ts.js"] = "Y2xhc3MgTG9nIHsNCiAgICBjcmVhdGVMb2coZW50cnkpIHsNCiAgICAgICAgdmFyIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJQUkUiKTsNCiAgICAgICAgaWYgKGVudHJ5LmluZGV4T2YoIldBUk5JTkciKSAhPSAtMSkgew0KICAgICAgICAgICAgZWxlbWVudC5jbGFzc05hbWUgPSAid2FybmluZ01zZyI7DQogICAgICAgIH0NCiAgICAgICAgaWYgKGVudHJ5LmluZGV4T2YoIkVSUk9SIikgIT0gLTEpIHsNCiAgICAgICAgICAgIGVsZW1lbnQuY2xhc3NOYW1lID0gImVycm9yTXNnIjsNCiAgICAgICAgfQ0KICAgICAgICBpZiAoZW50cnkuaW5kZXhPZigiREVCVUciKSAhPSAtMSkgew0KICAgICAgICAgICAgZWxlbWVudC5jbGFzc05hbWUgPSAiZGVidWdNc2ciOw0KICAgICAgICB9DQogICAgICAgIGVsZW1lbnQuaW5uZXJIVE1MID0gZW50cnk7DQogICAgICAgIHJldHVybiBlbGVtZW50Ow0KICAgIH0NCn0NCmZ1bmN0aW9uIHNob3dMb2dzKGJvdHRvbSkgew0KICAgIHZhciBsb2cgPSBuZXcgTG9nKCk7DQogICAgdmFyIGxvZ3MgPSBTRVJWRVJbImxvZyJdWyJsb2ciXTsNCiAgICB2YXIgZGl2ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnRlbnRfbG9nIik7DQogICAgZGl2LmlubmVySFRNTCA9ICIiOw0KICAgIHZhciBrZXlzID0gZ2V0T2JqS2V5cyhsb2dzKTsNCiAgICBrZXlzLmZvckVhY2gobG9nSUQgPT4gew0KICAgICAgICB2YXIgZW50cnkgPSBsb2cuY3JlYXRlTG9nKGxvZ3NbbG9nSURdKTsNCiAgICAgICAgZGl2LmFwcGVuZChlbnRyeSk7DQogICAgfSk7DQogICAgc2V0VGltZW91dChmdW5jdGlvbiAoKSB7DQogICAgICAgIGlmIChib3R0b20gPT0gdHJ1ZSkgew0KICAgICAgICAgICAgdmFyIHdyYXBwZXIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYm94LXdyYXBwZXIiKTsNCiAgICAgICAgICAgIHdyYXBwZXIuc2Nyb2xsVG9wID0gd3JhcHBlci5zY3JvbGxIZWlnaHQ7DQogICAgICAgIH0NCiAgICB9LCAxMCk7DQp9DQpmdW5jdGlvbiByZXNldExvZ3MoKSB7DQogICAgdmFyIGNtZCA9ICJyZXNldExvZ3MiOw0KICAgIHZhciBkYXRhID0gbmV3IE9iamVjdCgpOw0KICAgIHZhciBzZXJ2ZXIgPSBuZXcgU2VydmVyKGNtZCk7DQogICAgc2VydmVyLnJlcXVlc3QoZGF0YSk7DQp9DQo=" webUI["html/js/menu_ts.js"] = "Y2xhc3MgTWFpbk1lbnUgew0KICAgIGNvbnN0cnVjdG9yKCkgew0KICAgICAgICB0aGlzLkRvY3VtZW50SUQgPSAibWFpbi1tZW51IjsNCiAgICAgICAgdGhpcy5IVE1MVGFnID0gIkxJIjsNCiAgICAgICAgdGhpcy5JbWFnZVBhdGggPSAiaW1nLyI7DQogICAgfQ0KICAgIGNyZWF0ZUlNRyhzcmMpIHsNCiAgICAgICAgbGV0IGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJJTUciKTsNCiAgICAgICAgZWxlbWVudC5zZXRBdHRyaWJ1dGUoInNyYyIsIHRoaXMuSW1hZ2VQYXRoICsgc3JjKTsNCiAgICAgICAgcmV0dXJuIGVsZW1lbnQ7DQogICAgfQ0KICAgIGNyZWF0ZVZhbHVlKHZhbHVlKSB7DQogICAgICAgIGxldCBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiUCIpOw0KICAgICAgICBlbGVtZW50LmlubmVySFRNTCA9IHZhbHVlOw0KICAgICAgICByZXR1cm4gZWxlbWVudDsNCiAgICB9DQp9DQpjbGFzcyBNYWluTWVudUl0ZW0gZXh0ZW5kcyBNYWluTWVudSB7DQogICAgY29uc3RydWN0b3IobWVudUtleSwgdmFsdWUsIGltYWdlLCBoZWFkbGluZSkgew0KICAgICAgICBzdXBlcigpOw0KICAgICAgICB0aGlzLm1lbnVLZXkgPSBtZW51S2V5Ow0KICAgICAgICB0aGlzLnZhbHVlID0gdmFsdWU7DQogICAgICAgIHRoaXMuaW1nU3JjID0gaW1hZ2U7DQogICAgICAgIHRoaXMuaGVhZGxpbmUgPSBoZWFkbGluZTsNCiAgICB9DQogICAgY3JlYXRlSXRlbSgpIHsNCiAgICAgICAgbGV0IGl0ZW0gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJMSSIpOw0KICAgICAgICBpdGVtLnNldEF0dHJpYnV0ZSgib25jbGljayIsICJqYXZhc2NyaXB0OiBvcGVuVGhpc01lbnUodGhpcykiKTsNCiAgICAgICAgaXRlbS5zZXRBdHRyaWJ1dGUoImlkIiwgdGhpcy5pZCk7DQogICAgICAgIGxldCBpbWcgPSB0aGlzLmNyZWF0ZUlNRyh0aGlzLmltZ1NyYyk7DQogICAgICAgIGxldCB2YWx1ZSA9IHRoaXMuY3JlYXRlVmFsdWUodGhpcy52YWx1ZSk7DQogICAgICAgIGl0ZW0uYXBwZW5kQ2hpbGQoaW1nKTsNCiAgICAgICAgaXRlbS5hcHBlbmRDaGlsZCh2YWx1ZSk7DQogICAgICAgIGxldCBkb2MgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCh0aGlzLkRvY3VtZW50SUQpOw0KICAgICAgICBkb2MuYXBwZW5kQ2hpbGQoaXRlbSk7DQogICAgICAgIHN3aXRjaCAodGhpcy5tZW51S2V5KSB7DQogICAgICAgICAgICBjYXNlICJwbGF5bGlzdCI6DQogICAgICAgICAgICAgICAgdGhpcy50YWJsZUhlYWRlciA9IFsie3sucGxheWxpc3QudGFibGUucGxheWxpc3R9fSIsICJ7ey5wbGF5bGlzdC50YWJsZS50dW5lcn19IiwgInt7LnBsYXlsaXN0LnRhYmxlLmxhc3RVcGRhdGV9fSIsICJ7ey5wbGF5bGlzdC50YWJsZS5hdmFpbGFiaWxpdHl9fSAlIiwgInt7LnBsYXlsaXN0LnRhYmxlLnR5cGV9fSIsICJ7ey5wbGF5bGlzdC50YWJsZS5zdHJlYW1zfX0iLCAie3sucGxheWxpc3QudGFibGUuZ3JvdXBUaXRsZX19ICUiLCAie3sucGxheWxpc3QudGFibGUudHZnSUR9fSAlIiwgInt7LnBsYXlsaXN0LnRhYmxlLnVuaXF1ZUlEfX0gJSJdOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAieG1sdHYiOg0KICAgICAgICAgICAgICAgIHRoaXMudGFibGVIZWFkZXIgPSBbInt7LnhtbHR2LnRhYmxlLmd1aWRlfX0iLCAie3sueG1sdHYudGFibGUubGFzdFVwZGF0ZX19IiwgInt7LnhtbHR2LnRhYmxlLmF2YWlsYWJpbGl0eX19ICUiLCAie3sueG1sdHYudGFibGUuY2hhbm5lbHN9fSIsICJ7ey54bWx0di50YWJsZS5wcm9ncmFtc319Il07DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJmaWx0ZXIiOg0KICAgICAgICAgICAgICAgIHRoaXMudGFibGVIZWFkZXIgPSBbInt7LmZpbHRlci50YWJsZS5uYW1lfX0iLCAie3suZmlsdGVyLnRhYmxlLnR5cGV9fSIsICJ7ey5maWx0ZXIudGFibGUuZmlsdGVyfX0iXTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInVzZXJzIjoNCiAgICAgICAgICAgICAgICB0aGlzLnRhYmxlSGVhZGVyID0gWyJ7ey51c2Vycy50YWJsZS51c2VybmFtZX19IiwgInt7LnVzZXJzLnRhYmxlLnBhc3N3b3JkfX0iLCAie3sudXNlcnMudGFibGUud2VifX0iLCAie3sudXNlcnMudGFibGUucG1zfX0iLCAie3sudXNlcnMudGFibGUubTN1fX0iLCAie3sudXNlcnMudGFibGUueG1sfX0iLCAie3sudXNlcnMudGFibGUuYXBpfX0iXTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgIm1hcHBpbmciOg0KICAgICAgICAgICAgICAgIHRoaXMudGFibGVIZWFkZXIgPSBbIkJVTEsiLCAie3subWFwcGluZy50YWJsZS5jaE5vfX0iLCAie3subWFwcGluZy50YWJsZS5sb2dvfX0iLCAie3subWFwcGluZy50YWJsZS5jaGFubmVsTmFtZX19IiwgInt7Lm1hcHBpbmcudGFibGUucGxheWxpc3R9fSIsICJ7ey5tYXBwaW5nLnRhYmxlLmdyb3VwVGl0bGV9fSIsICJ7ey5tYXBwaW5nLnRhYmxlLnhtbHR2RmlsZX19IiwgInt7Lm1hcHBpbmcudGFibGUueG1sdHZJRH19IiwgInt7Lm1hcHBpbmcudGFibGUudGltZXNoaWZ0fX0iXTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgfQ0KICAgICAgICAvL2NvbnNvbGUubG9nKHRoaXMubWVudUtleSwgdGhpcy50YWJsZUhlYWRlcik7DQogICAgfQ0KfQ0KY2xhc3MgQ29udGVudCB7DQogICAgY29uc3RydWN0b3IoKSB7DQogICAgICAgIHRoaXMuRG9jdW1lbnRJRCA9ICJjb250ZW50IjsNCiAgICAgICAgdGhpcy5UYWJsZUlEID0gImNvbnRlbnRfdGFibGUiOw0KICAgICAgICB0aGlzLmhlYWRlckNsYXNzID0gImNvbnRlbnRfdGFibGVfaGVhZGVyIjsNCiAgICAgICAgdGhpcy5pbnRlcmFjdGlvbklEID0gImNvbnRlbnQtaW50ZXJhY3Rpb24iOw0KICAgIH0NCiAgICBjcmVhdGVIZWFkbGluZSh2YWx1ZSkgew0KICAgICAgICBsZXQgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIkgzIik7DQogICAgICAgIGVsZW1lbnQuaW5uZXJIVE1MID0gdmFsdWU7DQogICAgICAgIHJldHVybiBlbGVtZW50Ow0KICAgIH0NCiAgICBjcmVhdGVIUigpIHsNCiAgICAgICAgcmV0dXJuIGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIkhSIik7DQogICAgfQ0KICAgIGNyZWF0ZUludGVyYWN0aW9uKCkgew0KICAgICAgICBsZXQgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIkRJViIpOw0KICAgICAgICBlbGVtZW50LnNldEF0dHJpYnV0ZSgiaWQiLCB0aGlzLmludGVyYWN0aW9uSUQpOw0KICAgICAgICByZXR1cm4gZWxlbWVudDsNCiAgICB9DQogICAgY3JlYXRlRElWKCkgew0KICAgICAgICBsZXQgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIkRJViIpOw0KICAgICAgICBlbGVtZW50LmlkID0gdGhpcy5EaXZJRDsNCiAgICAgICAgcmV0dXJuIGVsZW1lbnQ7DQogICAgfQ0KICAgIGNyZWF0ZVRBQkxFKCkgew0KICAgICAgICBsZXQgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlRBQkxFIik7DQogICAgICAgIGVsZW1lbnQuaWQgPSB0aGlzLlRhYmxlSUQ7DQogICAgICAgIHJldHVybiBlbGVtZW50Ow0KICAgIH0NCiAgICBjcmVhdGVUYWJsZVJvdygpIHsNCiAgICAgICAgbGV0IGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJUUiIpOw0KICAgICAgICBlbGVtZW50LmNsYXNzTmFtZSA9IHRoaXMuaGVhZGVyQ2xhc3M7DQogICAgICAgIHJldHVybiBlbGVtZW50Ow0KICAgIH0NCiAgICBjcmVhdGVUYWJsZUNvbnRlbnQobWVudUtleSkgew0KICAgICAgICBsZXQgZGF0YSA9IHt9Ow0KICAgICAgICBsZXQgcm93cyA9IFtdOw0KICAgICAgICBsZXQgZmlsZVR5cGVzID0gW107DQogICAgICAgIHN3aXRjaCAobWVudUtleSkgew0KICAgICAgICAgICAgY2FzZSAicGxheWxpc3QiOg0KICAgICAgICAgICAgICAgIGZpbGVUeXBlcyA9IFsibTN1IiwgImhkaHIiXTsNCiAgICAgICAgICAgICAgICBmaWxlVHlwZXMuZm9yRWFjaChmaWxlVHlwZSA9PiB7DQogICAgICAgICAgICAgICAgICAgIGRhdGEgPSBTRVJWRVJbInNldHRpbmdzIl1bImZpbGVzIl1bZmlsZVR5cGVdOw0KICAgICAgICAgICAgICAgICAgICB2YXIga2V5cyA9IGdldE9iaktleXMoZGF0YSk7DQogICAgICAgICAgICAgICAgICAgIGtleXMuZm9yRWFjaChrZXkgPT4gew0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVFIiKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmlkID0ga2V5Ow0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgiJyArIGZpbGVUeXBlICsgJyIsIHRoaXMpJyk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsibmFtZSJdOw0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChTRVJWRVJbInNldHRpbmdzIl1bImJ1ZmZlciJdICE9ICItIikgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bInR1bmVyIl07DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gIi0iOw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bImxhc3QudXBkYXRlIl07DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsicHJvdmlkZXIuYXZhaWxhYmlsaXR5Il07DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsidHlwZSJdLnRvVXBwZXJDYXNlKCk7DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsiY29tcGF0aWJpbGl0eSJdWyJzdHJlYW1zIl07DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsiY29tcGF0aWJpbGl0eSJdWyJncm91cC50aXRsZSJdOw0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bImNvbXBhdGliaWxpdHkiXVsidHZnLmlkIl07DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsiY29tcGF0aWJpbGl0eSJdWyJzdHJlYW0uaWQiXTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHJvd3MucHVzaCh0cik7DQogICAgICAgICAgICAgICAgICAgIH0pOw0KICAgICAgICAgICAgICAgIH0pOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiZmlsdGVyIjoNCiAgICAgICAgICAgICAgICBkZWxldGUgU0VSVkVSWyJzZXR0aW5ncyJdWyJmaWx0ZXIiXVstMV07DQogICAgICAgICAgICAgICAgZGF0YSA9IFNFUlZFUlsic2V0dGluZ3MiXVsiZmlsdGVyIl07DQogICAgICAgICAgICAgICAgdmFyIGtleXMgPSBnZXRPYmpLZXlzKGRhdGEpOw0KICAgICAgICAgICAgICAgIGtleXMuZm9yRWFjaChrZXkgPT4gew0KICAgICAgICAgICAgICAgICAgICB2YXIgdHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJUUiIpOw0KICAgICAgICAgICAgICAgICAgICB0ci5pZCA9IGtleTsNCiAgICAgICAgICAgICAgICAgICAgdHIuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgiJyArIGRhdGFba2V5XVsidHlwZSJdICsgJyIsIHRoaXMpJyk7DQogICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJuYW1lIl07DQogICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgIHN3aXRjaCAoZGF0YVtrZXldWyJ0eXBlIl0pIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgImN1c3RvbS1maWx0ZXIiOg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSAie3suZmlsdGVyLmN1c3RvbX19IjsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgImdyb3VwLXRpdGxlIjoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gInt7LmZpbHRlci5ncm91cH19IjsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsiZmlsdGVyIl07DQogICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgcm93cy5wdXNoKHRyKTsNCiAgICAgICAgICAgICAgICB9KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInhtbHR2IjoNCiAgICAgICAgICAgICAgICBmaWxlVHlwZXMgPSBuZXcgQXJyYXkoInhtbHR2Iik7DQogICAgICAgICAgICAgICAgZmlsZVR5cGVzLmZvckVhY2goZmlsZVR5cGUgPT4gew0KICAgICAgICAgICAgICAgICAgICBkYXRhID0gU0VSVkVSWyJzZXR0aW5ncyJdWyJmaWxlcyJdW2ZpbGVUeXBlXTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGtleXMgPSBnZXRPYmpLZXlzKGRhdGEpOw0KICAgICAgICAgICAgICAgICAgICBrZXlzLmZvckVhY2goa2V5ID0+IHsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciB0ciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlRSIik7DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5pZCA9IGtleTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoIicgKyBmaWxlVHlwZSArICciLCB0aGlzKScpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bIm5hbWUiXTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJsYXN0LnVwZGF0ZSJdOw0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bInByb3ZpZGVyLmF2YWlsYWJpbGl0eSJdOw0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bImNvbXBhdGliaWxpdHkiXVsieG1sdHYuY2hhbm5lbHMiXTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJjb21wYXRpYmlsaXR5Il1bInhtbHR2LnByb2dyYW1zIl07DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICByb3dzLnB1c2godHIpOw0KICAgICAgICAgICAgICAgICAgICB9KTsNCiAgICAgICAgICAgICAgICB9KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInVzZXJzIjoNCiAgICAgICAgICAgICAgICBmaWxlVHlwZXMgPSBuZXcgQXJyYXkoInVzZXJzIik7DQogICAgICAgICAgICAgICAgZmlsZVR5cGVzLmZvckVhY2goZmlsZVR5cGUgPT4gew0KICAgICAgICAgICAgICAgICAgICBkYXRhID0gU0VSVkVSW2ZpbGVUeXBlXTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGtleXMgPSBnZXRPYmpLZXlzKGRhdGEpOw0KICAgICAgICAgICAgICAgICAgICBrZXlzLmZvckVhY2goa2V5ID0+IHsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciB0ciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlRSIik7DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5pZCA9IGtleTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoIicgKyBmaWxlVHlwZSArICciLCB0aGlzKScpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bImRhdGEiXVsidXNlcm5hbWUiXTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gIioqKioqKiI7DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGRhdGFba2V5XVsiZGF0YSJdWyJhdXRoZW50aWNhdGlvbi53ZWIiXSA9PSB0cnVlKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9ICLinJMiOw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9ICItIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgICAgICBpZiAoZGF0YVtrZXldWyJkYXRhIl1bImF1dGhlbnRpY2F0aW9uLnBtcyJdID09IHRydWUpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gIuKckyI7DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gIi0iOw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChkYXRhW2tleV1bImRhdGEiXVsiYXV0aGVudGljYXRpb24ubTN1Il0gPT0gdHJ1ZSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSAi4pyTIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSAiLSI7DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGRhdGFba2V5XVsiZGF0YSJdWyJhdXRoZW50aWNhdGlvbi54bWwiXSA9PSB0cnVlKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9ICLinJMiOw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9ICItIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgICAgICBpZiAoZGF0YVtrZXldWyJkYXRhIl1bImF1dGhlbnRpY2F0aW9uLmFwaSJdID09IHRydWUpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gIuKckyI7DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gIi0iOw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgcm93cy5wdXNoKHRyKTsNCiAgICAgICAgICAgICAgICAgICAgfSk7DQogICAgICAgICAgICAgICAgfSk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJtYXBwaW5nIjoNCiAgICAgICAgICAgICAgICBCVUxLX0VESVQgPSBmYWxzZTsNCiAgICAgICAgICAgICAgICBjcmVhdGVTZWFyY2hPYmooKTsNCiAgICAgICAgICAgICAgICBjaGVja1VuZG8oImVwZ01hcHBpbmciKTsNCiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZygiTUFQUElORyIpOw0KICAgICAgICAgICAgICAgIGRhdGEgPSBTRVJWRVJbInhlcGciXVsiZXBnTWFwcGluZyJdOw0KICAgICAgICAgICAgICAgIHZhciBrZXlzID0gZ2V0T2JqS2V5cyhkYXRhKTsNCiAgICAgICAgICAgICAgICBrZXlzLmZvckVhY2goa2V5ID0+IHsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVFIiKTsNCiAgICAgICAgICAgICAgICAgICAgdHIuaWQgPSBrZXk7DQogICAgICAgICAgICAgICAgICAgIC8vdHIuc2V0QXR0cmlidXRlKCdvbmNvbnRleHRtZW51JywgJ2phdmFzY3JpcHQ6IHJpZ2h0Q2xpY2sodGhpcyknKQ0KICAgICAgICAgICAgICAgICAgICBzd2l0Y2ggKGRhdGFba2V5XVsieC1hY3RpdmUiXSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSB0cnVlOg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyLmNsYXNzTmFtZSA9ICJhY3RpdmVFUEciOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSBmYWxzZToNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ci5jbGFzc05hbWUgPSAibm90QWN0aXZlRVBHIjsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAvLyBCdWxrDQogICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIkJVTEsiOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZmFsc2U7DQogICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgLy8gQ2hhbm5lbCBudW1iZXINCiAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiSU5QVVRDSEFOTkVMIjsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsieC1jaGFubmVsSUQiXTsNCiAgICAgICAgICAgICAgICAgICAgLy90ZC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogY2hhbmdlQ2hhbm5lbE51bWJlcigiJyArIGtleSArICciLCB0aGlzKScpDQogICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgLy8gTG9nbw0KICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJJTUciOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmltYWdlVVJMID0gZGF0YVtrZXldWyJ0dmctbG9nbyJdOw0KICAgICAgICAgICAgICAgICAgICB2YXIgdGQgPSBjZWxsLmNyZWF0ZUNlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgdGQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgibWFwcGluZyIsIHRoaXMpJyk7DQogICAgICAgICAgICAgICAgICAgIHRkLmlkID0ga2V5Ow0KICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZCh0ZCk7DQogICAgICAgICAgICAgICAgICAgIC8vIENoYW5uZWwgbmFtZQ0KICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jbGFzc05hbWUgPSBkYXRhW2tleV1bIngtY2F0ZWdvcnkiXTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsieC1uYW1lIl07DQogICAgICAgICAgICAgICAgICAgIHZhciB0ZCA9IGNlbGwuY3JlYXRlQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICB0ZC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJtYXBwaW5nIiwgdGhpcyknKTsNCiAgICAgICAgICAgICAgICAgICAgdGQuaWQgPSBrZXk7DQogICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKHRkKTsNCiAgICAgICAgICAgICAgICAgICAgLy8gUGxheWxpc3QNCiAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgIC8vY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsiX2ZpbGUubTN1Lm5hbWUiXSANCiAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGdldFZhbHVlRnJvbVByb3ZpZGVyRmlsZShkYXRhW2tleV1bIl9maWxlLm0zdS5pZCJdLCAibTN1IiwgIm5hbWUiKTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHRkID0gY2VsbC5jcmVhdGVDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgIHRkLnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoIm1hcHBpbmciLCB0aGlzKScpOw0KICAgICAgICAgICAgICAgICAgICB0ZC5pZCA9IGtleTsNCiAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQodGQpOw0KICAgICAgICAgICAgICAgICAgICAvLyBHcm91cCAoZ3JvdXAtdGl0bGUpDQogICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJ4LWdyb3VwLXRpdGxlIl07DQogICAgICAgICAgICAgICAgICAgIHZhciB0ZCA9IGNlbGwuY3JlYXRlQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICB0ZC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJtYXBwaW5nIiwgdGhpcyknKTsNCiAgICAgICAgICAgICAgICAgICAgdGQuaWQgPSBrZXk7DQogICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKHRkKTsNCiAgICAgICAgICAgICAgICAgICAgLy8gWE1MVFYgZmlsZQ0KICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgaWYgKGRhdGFba2V5XVsieC14bWx0di1maWxlIl0gIT0gIi0iKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZ2V0VmFsdWVGcm9tUHJvdmlkZXJGaWxlKGRhdGFba2V5XVsieC14bWx0di1maWxlIl0sICJ4bWx0diIsICJuYW1lIik7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgZWxzZSB7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJ4LXhtbHR2LWZpbGUiXTsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICB2YXIgdGQgPSBjZWxsLmNyZWF0ZUNlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgdGQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgibWFwcGluZyIsIHRoaXMpJyk7DQogICAgICAgICAgICAgICAgICAgIHRkLmlkID0ga2V5Ow0KICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZCh0ZCk7DQogICAgICAgICAgICAgICAgICAgIC8vIFhNTFRWIENoYW5uZWwNCiAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgIC8vdmFyIHZhbHVlID0gc3RyLnN1YnN0cmluZygxLCA0KTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHZhbHVlID0gZGF0YVtrZXldWyJ4LW1hcHBpbmciXTsNCiAgICAgICAgICAgICAgICAgICAgaWYgKHZhbHVlLmxlbmd0aCA+IDIwKSB7DQogICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IGRhdGFba2V5XVsieC1tYXBwaW5nIl0uc3Vic3RyaW5nKDAsIDIwKSArICIuLi4iOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSB2YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHRkID0gY2VsbC5jcmVhdGVDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgIHRkLnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoIm1hcHBpbmciLCB0aGlzKScpOw0KICAgICAgICAgICAgICAgICAgICB0ZC5pZCA9IGtleTsNCiAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQodGQpOw0KICAgICAgICAgICAgICAgICAgICAvLyBUaW1lU2hpZnQNCiAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bIngtdGltZXNoaWZ0Il07DQogICAgICAgICAgICAgICAgICAgIHZhciB0ZCA9IGNlbGwuY3JlYXRlQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICB0ZC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJtYXBwaW5nIiwgdGhpcyknKTsNCiAgICAgICAgICAgICAgICAgICAgdGQuaWQgPSBrZXk7DQogICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKHRkKTsNCiAgICAgICAgICAgICAgICAgICAgcm93cy5wdXNoKHRyKTsNCiAgICAgICAgICAgICAgICB9KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInNldHRpbmdzIjoNCiAgICAgICAgICAgICAgICBhbGVydCgpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZygiVGFibGUgY29udGVudCAobWVudUtleSk6IiwgbWVudUtleSk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIH0NCiAgICAgICAgcmV0dXJuIHJvd3M7DQogICAgfQ0KfQ0KY2xhc3MgQ2VsbCB7DQogICAgY3JlYXRlQ2VsbCgpIHsNCiAgICAgICAgbGV0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgaWYgKHRoaXMuY2hpbGQgPT0gdHJ1ZSkgew0KICAgICAgICAgICAgdmFyIGVsZW1lbnQ7DQogICAgICAgICAgICBzd2l0Y2ggKHRoaXMuY2hpbGRUeXBlKSB7DQogICAgICAgICAgICAgICAgY2FzZSAiUCI6DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KHRoaXMuY2hpbGRUeXBlKTsNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC5pbm5lckhUTUwgPSB0aGlzLnZhbHVlOw0KICAgICAgICAgICAgICAgICAgICBlbGVtZW50LmNsYXNzTmFtZSA9IHRoaXMuY2xhc3NOYW1lOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBjYXNlICJJTlBVVCI6DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KHRoaXMuY2hpbGRUeXBlKTsNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC52YWx1ZSA9IHRoaXMudmFsdWU7DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQudHlwZSA9ICJ0ZXh0IjsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAiSU5QVVRDSEFOTkVMIjoNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIklOUFVUIik7DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZzY3JpcHQ6IGNoYW5nZUNoYW5uZWxOdW1iZXIodGhpcykiKTsNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC52YWx1ZSA9IHRoaXMudmFsdWU7DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQudHlwZSA9ICJ0ZXh0IjsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAiQlVMSyI6DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJJTlBVVCIpOw0KICAgICAgICAgICAgICAgICAgICBlbGVtZW50LmNoZWNrZWQgPSB0aGlzLnZhbHVlOw0KICAgICAgICAgICAgICAgICAgICBlbGVtZW50LnR5cGUgPSAiY2hlY2tib3giOw0KICAgICAgICAgICAgICAgICAgICBlbGVtZW50LmNsYXNzTmFtZSA9ICJidWxrIGhpZGVCdWxrIjsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAiQlVMS19IRUFEIjoNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIklOUFVUIik7DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQuY2hlY2tlZCA9IHRoaXMudmFsdWU7DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQudHlwZSA9ICJjaGVja2JveCI7DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQuY2xhc3NOYW1lID0gImJ1bGsgaGlkZUJ1bGsiOw0KICAgICAgICAgICAgICAgICAgICBlbGVtZW50LnNldEF0dHJpYnV0ZSgib25jbGljayIsICJqYXZhc2NyaXB0OiBzZWxlY3RBbGxDaGFubmVscygpIik7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgIklNRyI6DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KHRoaXMuY2hpbGRUeXBlKTsNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC5zZXRBdHRyaWJ1dGUoInNyYyIsIHRoaXMuaW1hZ2VVUkwpOw0KICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5pbWFnZVVSTCAhPSAiIikgew0KICAgICAgICAgICAgICAgICAgICAgICAgZWxlbWVudC5zZXRBdHRyaWJ1dGUoIm9uZXJyb3IiLCAiamF2YXNjcmlwdDogdGhpcy5vbmVycm9yPW51bGw7dGhpcy5zcmM9JyciKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIC8vb25lcnJvcj0idGhpcy5vbmVycm9yPW51bGw7dGhpcy5zcmM9J21pc3NpbmcuZ2lmJzsiDQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIHRkLmFwcGVuZENoaWxkKGVsZW1lbnQpOw0KICAgICAgICB9DQogICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgdGQuaW5uZXJIVE1MID0gdGhpcy52YWx1ZTsNCiAgICAgICAgfQ0KICAgICAgICBpZiAodGhpcy5vbmNsaWNrID09IHRydWUpIHsNCiAgICAgICAgICAgIHRkLnNldEF0dHJpYnV0ZSgib25jbGljayIsIHRoaXMub25jbGlja0Z1bmN0aW9uKTsNCiAgICAgICAgICAgIHRkLmNsYXNzTmFtZSA9ICJwb2ludGVyIjsNCiAgICAgICAgfQ0KICAgICAgICBpZiAodGhpcy50ZENsYXNzTmFtZSAhPSB1bmRlZmluZWQpIHsNCiAgICAgICAgICAgIHRkLmNsYXNzTmFtZSA9IHRoaXMudGRDbGFzc05hbWU7DQogICAgICAgIH0NCiAgICAgICAgcmV0dXJuIHRkOw0KICAgIH0NCn0NCmNsYXNzIFNob3dDb250ZW50IGV4dGVuZHMgQ29udGVudCB7DQogICAgY29uc3RydWN0b3IobWVudUlEKSB7DQogICAgICAgIHN1cGVyKCk7DQogICAgICAgIHRoaXMubWVudUlEID0gbWVudUlEOw0KICAgIH0NCiAgICBjcmVhdGVJbnB1dCh0eXBlLCBuYW1lLCB2YWx1ZSkgew0KICAgICAgICBsZXQgaW5wdXQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJJTlBVVCIpOw0KICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInR5cGUiLCB0eXBlKTsNCiAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJuYW1lIiwgbmFtZSk7DQogICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgidmFsdWUiLCB2YWx1ZSk7DQogICAgICAgIHJldHVybiBpbnB1dDsNCiAgICB9DQogICAgc2hvdygpIHsNCiAgICAgICAgQ09MVU1OX1RPX1NPUlQgPSAtMTsNCiAgICAgICAgLy8gRGVsZXRlIG9sZCBjb250ZW50DQogICAgICAgIGxldCBkb2MgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCh0aGlzLkRvY3VtZW50SUQpOw0KICAgICAgICBkb2MuaW5uZXJIVE1MID0gIiI7DQogICAgICAgIHNob3dQcmV2aWV3KGZhbHNlKTsNCiAgICAgICAgLy8gSGVhZGxpbmUNCiAgICAgICAgbGV0IGhlYWRsaW5lID0gbWVudUl0ZW1zW3RoaXMubWVudUlEXS5oZWFkbGluZTsNCiAgICAgICAgbGV0IG1lbnVLZXkgPSBtZW51SXRlbXNbdGhpcy5tZW51SURdLm1lbnVLZXk7DQogICAgICAgIGxldCBoID0gdGhpcy5jcmVhdGVIZWFkbGluZShoZWFkbGluZSk7DQogICAgICAgIGRvYy5hcHBlbmRDaGlsZChoKTsNCiAgICAgICAgbGV0IGhyID0gdGhpcy5jcmVhdGVIUigpOw0KICAgICAgICBkb2MuYXBwZW5kQ2hpbGQoaHIpOw0KICAgICAgICAvLyBJbnRlcmFjdGlvbg0KICAgICAgICBsZXQgZGl2ID0gdGhpcy5jcmVhdGVJbnRlcmFjdGlvbigpOw0KICAgICAgICBkb2MuYXBwZW5kQ2hpbGQoZGl2KTsNCiAgICAgICAgbGV0IGludGVyYWN0aW9uID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQodGhpcy5pbnRlcmFjdGlvbklEKTsNCiAgICAgICAgc3dpdGNoIChtZW51S2V5KSB7DQogICAgICAgICAgICBjYXNlICJwbGF5bGlzdCI6DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gdGhpcy5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgbWVudUtleSwgInt7LmJ1dHRvbi5uZXd9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgiaWQiLCAiLSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoInBsYXlsaXN0IiknKTsNCiAgICAgICAgICAgICAgICBpbnRlcmFjdGlvbi5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJmaWx0ZXIiOg0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IHRoaXMuY3JlYXRlSW5wdXQoImJ1dHRvbiIsIG1lbnVLZXksICJ7ey5idXR0b24ubmV3fX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoImlkIiwgLTEpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoImZpbHRlciIsIHRoaXMpJyk7DQogICAgICAgICAgICAgICAgaW50ZXJhY3Rpb24uYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAieG1sdHYiOg0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IHRoaXMuY3JlYXRlSW5wdXQoImJ1dHRvbiIsIG1lbnVLZXksICJ7ey5idXR0b24ubmV3fX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoImlkIiwgInhtbHR2Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgieG1sdHYiKScpOw0KICAgICAgICAgICAgICAgIGludGVyYWN0aW9uLmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInVzZXJzIjoNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSB0aGlzLmNyZWF0ZUlucHV0KCJidXR0b24iLCBtZW51S2V5LCAie3suYnV0dG9uLm5ld319Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJpZCIsICJ1c2VycyIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoInVzZXJzIiknKTsNCiAgICAgICAgICAgICAgICBpbnRlcmFjdGlvbi5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJtYXBwaW5nIjoNCiAgICAgICAgICAgICAgICBzaG93RWxlbWVudCgibG9hZGluZyIsIHRydWUpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IHRoaXMuY3JlYXRlSW5wdXQoImJ1dHRvbiIsIG1lbnVLZXksICJ7ey5idXR0b24uc2F2ZX19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoIm1hcHBpbmciLCAiIiwgIiIpJyk7DQogICAgICAgICAgICAgICAgaW50ZXJhY3Rpb24uYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IHRoaXMuY3JlYXRlSW5wdXQoImJ1dHRvbiIsIG1lbnVLZXksICJ7ey5idXR0b24uYnVsa0VkaXR9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBidWxrRWRpdCgpJyk7DQogICAgICAgICAgICAgICAgaW50ZXJhY3Rpb24uYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IHRoaXMuY3JlYXRlSW5wdXQoInNlYXJjaCIsICJzZWFyY2giLCAiIik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJpZCIsICJzZWFyY2hNYXBwaW5nIik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5idXR0b24uc2VhcmNofX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5jbGFzc05hbWUgPSAic2VhcmNoIjsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgJ2phdmFzY3JpcHQ6IHNlYXJjaEluTWFwcGluZygpJyk7DQogICAgICAgICAgICAgICAgaW50ZXJhY3Rpb24uYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAic2V0dGluZ3MiOg0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IHRoaXMuY3JlYXRlSW5wdXQoImJ1dHRvbiIsIG1lbnVLZXksICJ7ey5idXR0b24uc2F2ZX19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IHNhdmVTZXR0aW5ncygpOycpOw0KICAgICAgICAgICAgICAgIGludGVyYWN0aW9uLmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSB0aGlzLmNyZWF0ZUlucHV0KCJidXR0b24iLCBtZW51S2V5LCAie3suYnV0dG9uLmJhY2t1cH19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IGJhY2t1cCgpOycpOw0KICAgICAgICAgICAgICAgIGludGVyYWN0aW9uLmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSB0aGlzLmNyZWF0ZUlucHV0KCJidXR0b24iLCBtZW51S2V5LCAie3suYnV0dG9uLnJlc3RvcmV9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiByZXN0b3JlKCk7Jyk7DQogICAgICAgICAgICAgICAgaW50ZXJhY3Rpb24uYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIHZhciB3cmFwcGVyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiRElWIik7DQogICAgICAgICAgICAgICAgd3JhcHBlci5zZXRBdHRyaWJ1dGUoImlkIiwgImJveC13cmFwcGVyIik7DQogICAgICAgICAgICAgICAgZG9jLmFwcGVuZENoaWxkKHdyYXBwZXIpOw0KICAgICAgICAgICAgICAgIHRoaXMuRGl2SUQgPSAiY29udGVudF9zZXR0aW5ncyI7DQogICAgICAgICAgICAgICAgdmFyIHNldHRpbmdzID0gdGhpcy5jcmVhdGVESVYoKTsNCiAgICAgICAgICAgICAgICB3cmFwcGVyLmFwcGVuZENoaWxkKHNldHRpbmdzKTsNCiAgICAgICAgICAgICAgICBzaG93U2V0dGluZ3MoKTsNCiAgICAgICAgICAgICAgICByZXR1cm47DQogICAgICAgICAgICBjYXNlICJsb2ciOg0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IHRoaXMuY3JlYXRlSW5wdXQoImJ1dHRvbiIsIG1lbnVLZXksICJ7ey5idXR0b24ucmVzZXRMb2dzfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogcmVzZXRMb2dzKCk7Jyk7DQogICAgICAgICAgICAgICAgaW50ZXJhY3Rpb24uYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIHZhciB3cmFwcGVyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiRElWIik7DQogICAgICAgICAgICAgICAgd3JhcHBlci5zZXRBdHRyaWJ1dGUoImlkIiwgImJveC13cmFwcGVyIik7DQogICAgICAgICAgICAgICAgZG9jLmFwcGVuZENoaWxkKHdyYXBwZXIpOw0KICAgICAgICAgICAgICAgIHRoaXMuRGl2SUQgPSAiY29udGVudF9sb2ciOw0KICAgICAgICAgICAgICAgIHZhciBsb2dzID0gdGhpcy5jcmVhdGVESVYoKTsNCiAgICAgICAgICAgICAgICB3cmFwcGVyLmFwcGVuZENoaWxkKGxvZ3MpOw0KICAgICAgICAgICAgICAgIHNob3dMb2dzKHRydWUpOw0KICAgICAgICAgICAgICAgIHJldHVybjsNCiAgICAgICAgICAgIGNhc2UgImxvZ291dCI6DQogICAgICAgICAgICAgICAgbG9jYXRpb24ucmVsb2FkKCk7DQogICAgICAgICAgICAgICAgZG9jdW1lbnQuY29va2llID0gIlRva2VuPSA7IGV4cGlyZXMgPSBUaHUsIDAxIEphbiAxOTcwIDAwOjAwOjAwIEdNVCI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBkZWZhdWx0Og0KICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKCJTaG93IGNvbnRlbnQgKG1lbnVLZXkpOiIsIG1lbnVLZXkpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICB9DQogICAgICAgIC8vIENyZWF0ZSB0YWJsZSAoaWYgbmVlZGVkKQ0KICAgICAgICB2YXIgdGFibGVIZWFkZXIgPSBtZW51SXRlbXNbdGhpcy5tZW51SURdLnRhYmxlSGVhZGVyOw0KICAgICAgICBpZiAodGFibGVIZWFkZXIubGVuZ3RoID4gMCkgew0KICAgICAgICAgICAgdmFyIHdyYXBwZXIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJESVYiKTsNCiAgICAgICAgICAgIGRvYy5hcHBlbmRDaGlsZCh3cmFwcGVyKTsNCiAgICAgICAgICAgIHdyYXBwZXIuc2V0QXR0cmlidXRlKCJpZCIsICJib3gtd3JhcHBlciIpOw0KICAgICAgICAgICAgdmFyIHRhYmxlID0gdGhpcy5jcmVhdGVUQUJMRSgpOw0KICAgICAgICAgICAgd3JhcHBlci5hcHBlbmRDaGlsZCh0YWJsZSk7DQogICAgICAgICAgICB2YXIgaGVhZGVyID0gdGhpcy5jcmVhdGVUYWJsZVJvdygpOw0KICAgICAgICAgICAgdGFibGUuYXBwZW5kQ2hpbGQoaGVhZGVyKTsNCiAgICAgICAgICAgIC8vIFRhYmxlIGhlYWRlcg0KICAgICAgICAgICAgdGFibGVIZWFkZXIuZm9yRWFjaChlbGVtZW50ID0+IHsNCiAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGVsZW1lbnQ7DQogICAgICAgICAgICAgICAgaWYgKGVsZW1lbnQgPT0gIkJVTEsiKSB7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIkJVTEtfSEVBRCI7DQogICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBmYWxzZTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgaWYgKG1lbnVLZXkgPT0gIm1hcHBpbmciKSB7DQogICAgICAgICAgICAgICAgICAgIGlmIChlbGVtZW50ID09ICJ7ey5tYXBwaW5nLnRhYmxlLmNoTm99fSIpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwub25jbGljayA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLm9uY2xpY2tGdW5jdGlvbiA9ICJqYXZhc2NyaXB0OiBzb3J0VGFibGUoMSk7IjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudGRDbGFzc05hbWUgPSAic29ydFRoaXMiOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIGlmIChlbGVtZW50ID09ICJ7ey5tYXBwaW5nLnRhYmxlLmNoYW5uZWxOYW1lfX0iKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLm9uY2xpY2sgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5vbmNsaWNrRnVuY3Rpb24gPSAiamF2YXNjcmlwdDogc29ydFRhYmxlKDMpOyI7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgaWYgKGVsZW1lbnQgPT0gInt7Lm1hcHBpbmcudGFibGUucGxheWxpc3R9fSIpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwub25jbGljayA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLm9uY2xpY2tGdW5jdGlvbiA9ICJqYXZhc2NyaXB0OiBzb3J0VGFibGUoNCk7IjsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBpZiAoZWxlbWVudCA9PSAie3subWFwcGluZy50YWJsZS5ncm91cFRpdGxlfX0iKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLm9uY2xpY2sgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5vbmNsaWNrRnVuY3Rpb24gPSAiamF2YXNjcmlwdDogc29ydFRhYmxlKDUpOyI7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgaWYgKGVsZW1lbnQgPT0gInt7Lm1hcHBpbmcudGFibGUudGltZXNoaWZ0fX0iKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLm9uY2xpY2sgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5vbmNsaWNrRnVuY3Rpb24gPSAiamF2YXNjcmlwdDogc29ydFRhYmxlKDgpOyI7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgaGVhZGVyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgIH0pOw0KICAgICAgICAgICAgdGFibGUuYXBwZW5kQ2hpbGQoaGVhZGVyKTsNCiAgICAgICAgICAgIC8vIENvbnRlbnQgb2YgdGhlIHRhYmxlDQogICAgICAgICAgICB2YXIgcm93cyA9IHRoaXMuY3JlYXRlVGFibGVDb250ZW50KG1lbnVLZXkpOw0KICAgICAgICAgICAgcm93cy5mb3JFYWNoKHRyID0+IHsNCiAgICAgICAgICAgICAgICB0YWJsZS5hcHBlbmRDaGlsZCh0cik7DQogICAgICAgICAgICB9KTsNCiAgICAgICAgfQ0KICAgICAgICBzd2l0Y2ggKG1lbnVLZXkpIHsNCiAgICAgICAgICAgIGNhc2UgIm1hcHBpbmciOg0KICAgICAgICAgICAgICAgIHNvcnRUYWJsZSgxKTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImZpbHRlciI6DQogICAgICAgICAgICAgICAgc2hvd1ByZXZpZXcodHJ1ZSk7DQogICAgICAgICAgICAgICAgc29ydFRhYmxlKDApOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgICAgICBDT0xVTU5fVE9fU09SVCA9IC0xOw0KICAgICAgICAgICAgICAgIHNvcnRUYWJsZSgwKTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgfQ0KICAgICAgICBzaG93RWxlbWVudCgibG9hZGluZyIsIGZhbHNlKTsNCiAgICB9DQp9DQpmdW5jdGlvbiBQYWdlUmVhZHkoKSB7DQogICAgbGV0IHNlcnZlciA9IG5ldyBTZXJ2ZXIoImdldFNlcnZlckNvbmZpZyIpOw0KICAgIHNlcnZlci5yZXF1ZXN0KHt9KTsNCiAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigicmVzaXplIiwgZnVuY3Rpb24gKCkgew0KICAgICAgICBjYWxjdWxhdGVXcmFwcGVySGVpZ2h0KCk7DQogICAgfSwgdHJ1ZSk7DQogICAgc2V0SW50ZXJ2YWwoZnVuY3Rpb24gKCkgew0KICAgICAgICB1cGRhdGVMb2coKTsNCiAgICB9LCAxMDAwMCk7DQogICAgcmV0dXJuOw0KfQ0KZnVuY3Rpb24gY3JlYXRlTGF5b3V0KCkgew0KICAgIC8vIENsaWVudCBJbmZvDQogICAgbGV0IG9iaiA9IFNFUlZFUlsiY2xpZW50SW5mbyJdOw0KICAgIGxldCBrZXlzID0gZ2V0T2JqS2V5cyhvYmopOw0KICAgIGZvciAodmFyIGkgPSAwOyBpIDwga2V5cy5sZW5ndGg7IGkrKykgew0KICAgICAgICBpZiAoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoa2V5c1tpXSkpIHsNCiAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGtleXNbaV0pLmlubmVySFRNTCA9IG9ialtrZXlzW2ldXTsNCiAgICAgICAgfQ0KICAgIH0NCiAgICBpZiAoIWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJtYWluLW1lbnUiKSkgew0KICAgICAgICByZXR1cm47DQogICAgfQ0KICAgIC8vIENyZWF0ZSBtZW51DQogICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm1haW4tbWVudSIpLmlubmVySFRNTCA9ICIiOw0KICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbWVudUl0ZW1zLmxlbmd0aDsgaSsrKSB7DQogICAgICAgIG1lbnVJdGVtc1tpXS5pZCA9IGk7DQogICAgICAgIHN3aXRjaCAobWVudUl0ZW1zW2ldWyJtZW51S2V5Il0pIHsNCiAgICAgICAgICAgIGNhc2UgInVzZXJzIjoNCiAgICAgICAgICAgIGNhc2UgImxvZ291dCI6DQogICAgICAgICAgICAgICAgaWYgKFNFUlZFUlsic2V0dGluZ3MiXVsiYXV0aGVudGljYXRpb24ud2ViIl0gPT0gdHJ1ZSkgew0KICAgICAgICAgICAgICAgICAgICBtZW51SXRlbXNbaV0uY3JlYXRlSXRlbSgpOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgIm1hcHBpbmciOg0KICAgICAgICAgICAgY2FzZSAieG1sdHYiOg0KICAgICAgICAgICAgICAgIGlmIChTRVJWRVJbImNsaWVudEluZm8iXVsiZXBnU291cmNlIl0gPT0gIlhFUEciKSB7DQogICAgICAgICAgICAgICAgICAgIG1lbnVJdGVtc1tpXS5jcmVhdGVJdGVtKCk7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgICAgICBtZW51SXRlbXNbaV0uY3JlYXRlSXRlbSgpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICB9DQogICAgfQ0KICAgIHJldHVybjsNCn0NCmZ1bmN0aW9uIG9wZW5UaGlzTWVudShlbGVtZW50KSB7DQogICAgbGV0IGlkID0gZWxlbWVudC5pZDsNCiAgICBsZXQgY29udGVudCA9IG5ldyBTaG93Q29udGVudChpZCk7DQogICAgY29udGVudC5zaG93KCk7DQogICAgY2FsY3VsYXRlV3JhcHBlckhlaWdodCgpOw0KICAgIHJldHVybjsNCn0NCmNsYXNzIFBvcHVwV2luZG93IHsNCiAgICBjb25zdHJ1Y3RvcigpIHsNCiAgICAgICAgdGhpcy5Eb2N1bWVudElEID0gInBvcHVwLWN1c3RvbSI7DQogICAgICAgIHRoaXMuSW50ZXJhY3Rpb25JRCA9ICJpbnRlcmFjdGlvbiI7DQogICAgICAgIHRoaXMuZG9jID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQodGhpcy5Eb2N1bWVudElEKTsNCiAgICB9DQogICAgY3JlYXRlVGl0bGUodGl0bGUpIHsNCiAgICAgICAgbGV0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgdGQuY2xhc3NOYW1lID0gImxlZnQiOw0KICAgICAgICB0ZC5pbm5lckhUTUwgPSB0aXRsZSArICI6IjsNCiAgICAgICAgcmV0dXJuIHRkOw0KICAgIH0NCiAgICBjcmVhdGVDb250ZW50KGVsZW1lbnQpIHsNCiAgICAgICAgbGV0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgdGQuYXBwZW5kQ2hpbGQoZWxlbWVudCk7DQogICAgICAgIHJldHVybiB0ZDsNCiAgICB9DQogICAgY3JlYXRlSW50ZXJhY3Rpb24oKSB7DQogICAgICAgIGxldCBkaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsNCiAgICAgICAgZGl2LnNldEF0dHJpYnV0ZSgiaWQiLCAicG9wdXAtaW50ZXJhY3Rpb24iKTsNCiAgICAgICAgZGl2LmNsYXNzTmFtZSA9ICJpbnRlcmFjdGlvbiI7DQogICAgICAgIHRoaXMuZG9jLmFwcGVuZENoaWxkKGRpdik7DQogICAgfQ0KfQ0KY2xhc3MgUG9wdXBDb250ZW50IGV4dGVuZHMgUG9wdXBXaW5kb3cgew0KICAgIGNvbnN0cnVjdG9yKCkgew0KICAgICAgICBzdXBlciguLi5hcmd1bWVudHMpOw0KICAgICAgICB0aGlzLnRhYmxlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEFCTEUiKTsNCiAgICB9DQogICAgY3JlYXRlSGVhZGxpbmUoaGVhZGxpbmUpIHsNCiAgICAgICAgdGhpcy5kb2MuaW5uZXJIVE1MID0gIiI7DQogICAgICAgIHZhciBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiSDMiKTsNCiAgICAgICAgZWxlbWVudC5pbm5lckhUTUwgPSBoZWFkbGluZS50b1VwcGVyQ2FzZSgpOw0KICAgICAgICB0aGlzLmRvYy5hcHBlbmRDaGlsZChlbGVtZW50KTsNCiAgICAgICAgLy8gQ3JlYXRlIHRhYmxlDQogICAgICAgIHRoaXMudGFibGUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJUQUJMRSIpOw0KICAgICAgICB0aGlzLmRvYy5hcHBlbmRDaGlsZCh0aGlzLnRhYmxlKTsNCiAgICB9DQogICAgYXBwZW5kUm93KHRpdGxlLCBlbGVtZW50KSB7DQogICAgICAgIGxldCB0ciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlRSIik7DQogICAgICAgIC8vIFRpdGxlDQogICAgICAgIGlmICh0aXRsZS5sZW5ndGggIT0gMCkgew0KICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQodGhpcy5jcmVhdGVUaXRsZSh0aXRsZSkpOw0KICAgICAgICB9DQogICAgICAgIC8vIENvbnRlbnQNCiAgICAgICAgdHIuYXBwZW5kQ2hpbGQodGhpcy5jcmVhdGVDb250ZW50KGVsZW1lbnQpKTsNCiAgICAgICAgdGhpcy50YWJsZS5hcHBlbmRDaGlsZCh0cik7DQogICAgfQ0KICAgIGNyZWF0ZUlucHV0KHR5cGUsIG5hbWUsIHZhbHVlKSB7DQogICAgICAgIGxldCBpbnB1dCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIklOUFVUIik7DQogICAgICAgIGlmICh2YWx1ZSA9PSB1bmRlZmluZWQpIHsNCiAgICAgICAgICAgIHZhbHVlID0gIiI7DQogICAgICAgIH0NCiAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJ0eXBlIiwgdHlwZSk7DQogICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgibmFtZSIsIG5hbWUpOw0KICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInZhbHVlIiwgdmFsdWUpOw0KICAgICAgICByZXR1cm4gaW5wdXQ7DQogICAgfQ0KICAgIGNyZWF0ZUNoZWNrYm94KG5hbWUpIHsNCiAgICAgICAgbGV0IGlucHV0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiSU5QVVQiKTsNCiAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJ0eXBlIiwgImNoZWNrYm94Iik7DQogICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgibmFtZSIsIG5hbWUpOw0KICAgICAgICByZXR1cm4gaW5wdXQ7DQogICAgfQ0KICAgIC8vIENyZWF0ZXMgYSBzZWxlY3Rpb24gb2YgbXVsdGlwbGUgb3B0aW9ucyB2YWx1ZXMgd2l0aCB0ZXh0IGRlc2NyaXB0aW9ucw0KICAgIGNyZWF0ZVNlbGVjdCh0ZXh0LCB2YWx1ZXMsIHNldCwgZGJLZXkpIHsNCiAgICAgICAgbGV0IHNlbGVjdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlNFTEVDVCIpOw0KICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJuYW1lIiwgZGJLZXkpOw0KICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRleHQubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgICAgIGxldCBvcHRpb24gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJPUFRJT04iKTsNCiAgICAgICAgICAgIG9wdGlvbi5zZXRBdHRyaWJ1dGUoInZhbHVlIiwgdmFsdWVzW2ldKTsNCiAgICAgICAgICAgIG9wdGlvbi5pbm5lclRleHQgPSB0ZXh0W2ldOw0KICAgICAgICAgICAgc2VsZWN0LmFwcGVuZENoaWxkKG9wdGlvbik7DQogICAgICAgIH0NCiAgICAgICAgaWYgKHNldCAhPSAiIikgew0KICAgICAgICAgICAgc2VsZWN0LnZhbHVlID0gc2V0Ow0KICAgICAgICB9DQogICAgICAgIGlmIChzZXQgPT0gdW5kZWZpbmVkKSB7DQogICAgICAgICAgICBzZWxlY3QudmFsdWUgPSB2YWx1ZXNbMF07DQogICAgICAgIH0NCiAgICAgICAgcmV0dXJuIHNlbGVjdDsNCiAgICB9DQogICAgc2VsZWN0T3B0aW9uKHNlbGVjdCwgdmFsdWUpIHsNCiAgICAgICAgLy9zZWxlY3Quc2VsZWN0ZWRPcHRpb25zID0gdmFsdWUNCiAgICAgICAgbGV0IHMgPSBzZWxlY3Q7DQogICAgICAgIHMub3B0aW9uc1tzLnNlbGVjdGVkSW5kZXhdLnZhbHVlID0gdmFsdWU7DQogICAgICAgIHJldHVybiBzZWxlY3Q7DQogICAgfQ0KICAgIGRlc2NyaXB0aW9uKHZhbHVlKSB7DQogICAgICAgIGxldCB0ciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlRSIik7DQogICAgICAgIGxldCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgIGxldCBzcGFuID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiUFJFIik7DQogICAgICAgIHNwYW4uaW5uZXJIVE1MID0gdmFsdWU7DQogICAgICAgIHRyLmFwcGVuZENoaWxkKHRkKTsNCiAgICAgICAgdHIuYXBwZW5kQ2hpbGQodGhpcy5jcmVhdGVDb250ZW50KHNwYW4pKTsNCiAgICAgICAgdGhpcy50YWJsZS5hcHBlbmRDaGlsZCh0cik7DQogICAgfQ0KICAgIC8vIEludGVyYWN0aW9uDQogICAgYWRkSW50ZXJhY3Rpb24oZWxlbWVudCkgew0KICAgICAgICBsZXQgaW50ZXJhY3Rpb24gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicG9wdXAtaW50ZXJhY3Rpb24iKTsNCiAgICAgICAgaW50ZXJhY3Rpb24uYXBwZW5kQ2hpbGQoZWxlbWVudCk7DQogICAgfQ0KfQ0KZnVuY3Rpb24gb3BlblBvcFVwKGRhdGFUeXBlLCBlbGVtZW50KSB7DQogICAgbGV0IGRhdGEgPSB7fTsNCiAgICBsZXQgaWQ7DQogICAgc3dpdGNoIChlbGVtZW50KSB7DQogICAgICAgIGNhc2UgdW5kZWZpbmVkOg0KICAgICAgICAgICAgc3dpdGNoIChkYXRhVHlwZSkgew0KICAgICAgICAgICAgICAgIGNhc2UgImdyb3VwLXRpdGxlIjoNCiAgICAgICAgICAgICAgICAgICAgaWYgKGlkID09IHVuZGVmaW5lZCkgew0KICAgICAgICAgICAgICAgICAgICAgICAgaWQgPSAtMTsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBkYXRhID0gZ2V0TG9jYWxEYXRhKCJmaWx0ZXIiLCBpZCk7DQogICAgICAgICAgICAgICAgICAgIGRhdGFbInR5cGUiXSA9ICJncm91cC10aXRsZSI7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgImN1c3RvbS1maWx0ZXIiOg0KICAgICAgICAgICAgICAgICAgICBpZiAoaWQgPT0gdW5kZWZpbmVkKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBpZCA9IC0xOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIGRhdGEgPSBnZXRMb2NhbERhdGEoImZpbHRlciIsIGlkKTsNCiAgICAgICAgICAgICAgICAgICAgZGF0YVsidHlwZSJdID0gImN1c3RvbS1maWx0ZXIiOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBkZWZhdWx0Og0KICAgICAgICAgICAgICAgICAgICBkYXRhWyJpZC5wcm92aWRlciJdID0gIi0iOw0KICAgICAgICAgICAgICAgICAgICBkYXRhWyJ0eXBlIl0gPSBkYXRhVHlwZTsNCiAgICAgICAgICAgICAgICAgICAgaWQgPSAiLSI7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICBpZCA9IGVsZW1lbnQuaWQ7DQogICAgICAgICAgICBkYXRhID0gZ2V0TG9jYWxEYXRhKGRhdGFUeXBlLCBpZCk7DQogICAgICAgICAgICBicmVhazsNCiAgICB9DQogICAgbGV0IGNvbnRlbnQgPSBuZXcgUG9wdXBDb250ZW50KCk7DQogICAgc3dpdGNoIChkYXRhVHlwZSkgew0KICAgICAgICBjYXNlICJwbGF5bGlzdCI6DQogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUhlYWRsaW5lKCJ7ey5wbGF5bGlzdC5wbGF5bGlzdFR5cGUudGl0bGV9fSIpOw0KICAgICAgICAgICAgLy8gVHlwZQ0KICAgICAgICAgICAgdmFyIHRleHQgPSBbIk0zVSIsICJIREhvbWVSdW4iXTsNCiAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBbImphdmFzY3JpcHQ6IG9wZW5Qb3BVcCgnbTN1JykiLCAiamF2YXNjcmlwdDogb3BlblBvcFVwKCdoZGhyJykiXTsNCiAgICAgICAgICAgIHZhciBzZWxlY3QgPSBjb250ZW50LmNyZWF0ZVNlbGVjdCh0ZXh0LCB2YWx1ZXMsICIiLCAidHlwZSIpOw0KICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgiaWQiLCAidHlwZSIpOw0KICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAnamF2YXNjcmlwdDogY2hhbmdlQnV0dG9uQWN0aW9uKHRoaXMsICJuZXh0IiwgIm9uY2xpY2siKScpOyAvLyBjaGFuZ2VCdXR0b25BY3Rpb24NCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5wbGF5bGlzdC50eXBlLnRpdGxlfX0iLCBzZWxlY3QpOw0KICAgICAgICAgICAgLy8gSW50ZXJhY3Rpb24NCiAgICAgICAgICAgIGNvbnRlbnQuY3JlYXRlSW50ZXJhY3Rpb24oKTsNCiAgICAgICAgICAgIC8vIEFib3J0DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAiY2FuY2VsIiwgInt7LmJ1dHRvbi5jYW5jZWx9fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IHNob3dFbGVtZW50KCJwb3B1cCIsIGZhbHNlKTsnKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgLy8gTmV4dA0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgIm5leHQiLCAie3suYnV0dG9uLm5leHR9fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgibTN1IiknKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgiaWQiLCAnbmV4dCcpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSAibTN1IjoNCiAgICAgICAgICAgIGNvbnRlbnQuY3JlYXRlSGVhZGxpbmUoZGF0YVR5cGUpOw0KICAgICAgICAgICAgLy8gTmFtZQ0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gIm5hbWUiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnBsYXlsaXN0Lm5hbWUucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnBsYXlsaXN0Lm5hbWUudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIERlc2NyaXB0aW9uDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAiZGVzY3JpcHRpb24iOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnBsYXlsaXN0LmRlc2NyaXB0aW9uLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5wbGF5bGlzdC5kZXNjcmlwdGlvbi50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgLy8gVVJMDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAiZmlsZS5zb3VyY2UiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnBsYXlsaXN0LmZpbGVNM1UucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnBsYXlsaXN0LmZpbGVNM1UudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIFR1bmVyDQogICAgICAgICAgICBpZiAoU0VSVkVSWyJzZXR0aW5ncyJdWyJidWZmZXIiXSAhPSAiLSIpIHsNCiAgICAgICAgICAgICAgICB2YXIgdGV4dCA9IFtdOw0KICAgICAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBbXTsNCiAgICAgICAgICAgICAgICBmb3IgKHZhciBpID0gMTsgaSA8PSAxMDA7IGkrKykgew0KICAgICAgICAgICAgICAgICAgICB0ZXh0LnB1c2goaS50b1N0cmluZygpKTsNCiAgICAgICAgICAgICAgICAgICAgdmFsdWVzLnB1c2goaS50b1N0cmluZygpKTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgdmFyIGRiS2V5ID0gInR1bmVyIjsNCiAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCBkYXRhW2RiS2V5XSwgZGJLZXkpOw0KICAgICAgICAgICAgICAgIHNlbGVjdC5zZXRBdHRyaWJ1dGUoIm9uZm9jdXMiLCAiamF2YXNjcmlwdDogcmV0dXJuOyIpOw0KICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5wbGF5bGlzdC50dW5lci50aXRsZX19Iiwgc2VsZWN0KTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgICAgIHZhciBkYktleSA9ICJ0dW5lciI7DQogICAgICAgICAgICAgICAgaWYgKGRhdGFbZGJLZXldID09IHVuZGVmaW5lZCkgew0KICAgICAgICAgICAgICAgICAgICBkYXRhW2RiS2V5XSA9IDE7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicmVhZG9ubHkiLCAidHJ1ZSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LmNsYXNzTmFtZSA9ICJub3RBdmFpbGFibGUiOw0KICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5wbGF5bGlzdC50dW5lci50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgY29udGVudC5kZXNjcmlwdGlvbigie3sucGxheWxpc3QudHVuZXIuZGVzY3JpcHRpb259fSIpOw0KICAgICAgICAgICAgLy8gSW50ZXJhdGlvbg0KICAgICAgICAgICAgY29udGVudC5jcmVhdGVJbnRlcmFjdGlvbigpOw0KICAgICAgICAgICAgLy8gRGVsZXRlDQogICAgICAgICAgICBpZiAoZGF0YVsiaWQucHJvdmlkZXIiXSAhPSAiLSIpIHsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAiZGVsZXRlIiwgInt7LmJ1dHRvbi5kZWxldGV9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LmNsYXNzTmFtZSA9ICJkZWxldGUiOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBzYXZlUG9wdXBEYXRhKCJtM3UiLCAiJyArIGlkICsgJyIsIHRydWUsIDApJyk7DQogICAgICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAiYmFjayIsICJ7ey5idXR0b24uYmFja319Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgicGxheWxpc3QiKScpOw0KICAgICAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgLy8gQWJvcnQNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJjYW5jZWwiLCAie3suYnV0dG9uLmNhbmNlbH19Iik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogc2hvd0VsZW1lbnQoInBvcHVwIiwgZmFsc2UpOycpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICAvLyBVcGRhdGUNCiAgICAgICAgICAgIGlmIChkYXRhWyJpZC5wcm92aWRlciJdICE9ICItIikgew0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJ1cGRhdGUiLCAie3suYnV0dG9uLnVwZGF0ZX19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoIm0zdSIsICInICsgaWQgKyAnIiwgZmFsc2UsIDEpJyk7DQogICAgICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICAvLyBTYXZlDQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAic2F2ZSIsICJ7ey5idXR0b24uc2F2ZX19Iik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogc2F2ZVBvcHVwRGF0YSgibTN1IiwgIicgKyBpZCArICciLCBmYWxzZSwgMCknKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGNhc2UgImhkaHIiOg0KICAgICAgICAgICAgY29udGVudC5jcmVhdGVIZWFkbGluZShkYXRhVHlwZSk7DQogICAgICAgICAgICAvLyBOYW1lDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAibmFtZSI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3sucGxheWxpc3QubmFtZS5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sucGxheWxpc3QubmFtZS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgLy8gRGVzY3JpcHRpb24NCiAgICAgICAgICAgIHZhciBkYktleSA9ICJkZXNjcmlwdGlvbiI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3sucGxheWxpc3QuZGVzY3JpcHRpb24ucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnBsYXlsaXN0LmRlc2NyaXB0aW9uLnBsYWNlaG9sZGVyfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBVUkwNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJmaWxlLnNvdXJjZSI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3sucGxheWxpc3QuZmlsZUhESFIucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnBsYXlsaXN0LmZpbGVIREhSLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBUdW5lcg0KICAgICAgICAgICAgaWYgKFNFUlZFUlsic2V0dGluZ3MiXVsiYnVmZmVyIl0gIT0gIi0iKSB7DQogICAgICAgICAgICAgICAgdmFyIHRleHQgPSBbXTsNCiAgICAgICAgICAgICAgICB2YXIgdmFsdWVzID0gW107DQogICAgICAgICAgICAgICAgZm9yICh2YXIgaSA9IDE7IGkgPD0gMTAwOyBpKyspIHsNCiAgICAgICAgICAgICAgICAgICAgdGV4dC5wdXNoKGkudG9TdHJpbmcoKSk7DQogICAgICAgICAgICAgICAgICAgIHZhbHVlcy5wdXNoKGkudG9TdHJpbmcoKSk7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIHZhciBkYktleSA9ICJ0dW5lciI7DQogICAgICAgICAgICAgICAgdmFyIHNlbGVjdCA9IGNvbnRlbnQuY3JlYXRlU2VsZWN0KHRleHQsIHZhbHVlcywgZGF0YVtkYktleV0sIGRiS2V5KTsNCiAgICAgICAgICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJvbmZvY3VzIiwgImphdmFzY3JpcHQ6IHJldHVybjsiKTsNCiAgICAgICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sucGxheWxpc3QudHVuZXIudGl0bGV9fSIsIHNlbGVjdCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICB2YXIgZGJLZXkgPSAidHVuZXIiOw0KICAgICAgICAgICAgICAgIGlmIChkYXRhW2RiS2V5XSA9PSB1bmRlZmluZWQpIHsNCiAgICAgICAgICAgICAgICAgICAgZGF0YVtkYktleV0gPSAxOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInJlYWRvbmx5IiwgInRydWUiKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5jbGFzc05hbWUgPSAibm90QXZhaWxhYmxlIjsNCiAgICAgICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sucGxheWxpc3QudHVuZXIudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGNvbnRlbnQuZGVzY3JpcHRpb24oInt7LnBsYXlsaXN0LnR1bmVyLmRlc2NyaXB0aW9ufX0iKTsNCiAgICAgICAgICAgIC8vIEludGVyYWN0aW9uDQogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUludGVyYWN0aW9uKCk7DQogICAgICAgICAgICAvLyBEZWxldGUNCiAgICAgICAgICAgIGlmIChkYXRhWyJpZC5wcm92aWRlciJdICE9ICItIikgew0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJkZWxldGUiLCAie3suYnV0dG9uLmRlbGV0ZX19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoImhkaHIiLCAiJyArIGlkICsgJyIsIHRydWUsIDApJyk7DQogICAgICAgICAgICAgICAgaW5wdXQuY2xhc3NOYW1lID0gImRlbGV0ZSI7DQogICAgICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAiYmFjayIsICJ7ey5idXR0b24uYmFja319Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgicGxheWxpc3QiKScpOw0KICAgICAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgLy8gQWJvcnQNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJjYW5jZWwiLCAie3suYnV0dG9uLmNhbmNlbH19Iik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogc2hvd0VsZW1lbnQoInBvcHVwIiwgZmFsc2UpOycpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICAvLyBVcGRhdGUNCiAgICAgICAgICAgIGlmIChkYXRhWyJpZC5wcm92aWRlciJdICE9ICItIikgew0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJ1cGRhdGUiLCAie3suYnV0dG9uLnVwZGF0ZX19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoImhkaHIiLCAiJyArIGlkICsgJyIsIGZhbHNlLCAxKScpOw0KICAgICAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgLy8gU2F2ZQ0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgInNhdmUiLCAie3suYnV0dG9uLnNhdmV9fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoImhkaHIiLCAiJyArIGlkICsgJyIsIGZhbHNlLCAwKScpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSAiZmlsdGVyIjoNCiAgICAgICAgICAgIGNvbnRlbnQuY3JlYXRlSGVhZGxpbmUoZGF0YVR5cGUpOw0KICAgICAgICAgICAgLy8gVHlwZQ0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gInR5cGUiOw0KICAgICAgICAgICAgdmFyIHRleHQgPSBbIk0zVTogIiArICJ7ey5maWx0ZXIudHlwZS5ncm91cFRpdGxlfX0iLCAieFRlVmU6ICIgKyAie3suZmlsdGVyLnR5cGUuY3VzdG9tRmlsdGVyfX0iXTsNCiAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBbImphdmFzY3JpcHQ6IG9wZW5Qb3BVcCgnZ3JvdXAtdGl0bGUnKSIsICJqYXZhc2NyaXB0OiBvcGVuUG9wVXAoJ2N1c3RvbS1maWx0ZXInKSJdOw0KICAgICAgICAgICAgdmFyIHNlbGVjdCA9IGNvbnRlbnQuY3JlYXRlU2VsZWN0KHRleHQsIHZhbHVlcywgImphdmFzY3JpcHQ6IG9wZW5Qb3BVcCgnZ3JvdXAtdGl0bGUnKSIsIGRiS2V5KTsNCiAgICAgICAgICAgIHNlbGVjdC5zZXRBdHRyaWJ1dGUoImlkIiwgaWQpOw0KICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAnamF2YXNjcmlwdDogY2hhbmdlQnV0dG9uQWN0aW9uKHRoaXMsICJuZXh0IiwgIm9uY2xpY2siKTsnKTsgLy8gY2hhbmdlQnV0dG9uQWN0aW9uDQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3suZmlsdGVyLnR5cGUudGl0bGV9fSIsIHNlbGVjdCk7DQogICAgICAgICAgICAvLyBJbnRlcmFjdGlvbg0KICAgICAgICAgICAgY29udGVudC5jcmVhdGVJbnRlcmFjdGlvbigpOw0KICAgICAgICAgICAgLy8gQWJvcnQNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJjYW5jZWwiLCAie3suYnV0dG9uLmNhbmNlbH19Iik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogc2hvd0VsZW1lbnQoInBvcHVwIiwgZmFsc2UpOycpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICAvLyBOZXh0DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAibmV4dCIsICJ7ey5idXR0b24ubmV4dH19Iik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJncm91cC10aXRsZSIpJyk7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoImlkIiwgJ25leHQnKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGNhc2UgImN1c3RvbS1maWx0ZXIiOg0KICAgICAgICBjYXNlICJncm91cC10aXRsZSI6DQogICAgICAgICAgICBzd2l0Y2ggKGRhdGFUeXBlKSB7DQogICAgICAgICAgICAgICAgY2FzZSAiY3VzdG9tLWZpbHRlciI6DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuY3JlYXRlSGVhZGxpbmUoInt7LmZpbHRlci5jdXN0b219fSIgKyAiIEZpbHRlciIpOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBjYXNlICJncm91cC10aXRsZSI6DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuY3JlYXRlSGVhZGxpbmUoInt7LmZpbHRlci5ncm91cH19IiArICIgRmlsdGVyIik7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgLy8gTmFtZSAgICAgIA0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gIm5hbWUiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LmZpbHRlci5uYW1lLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5maWx0ZXIubmFtZS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgLy8gRGVzY3JpcHRpb24NCiAgICAgICAgICAgIHZhciBkYktleSA9ICJkZXNjcmlwdGlvbiI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3suZmlsdGVyLmRlc2NyaXB0aW9uLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5maWx0ZXIuZGVzY3JpcHRpb24udGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIFR5cGUNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJ0eXBlIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImhpZGRlbiIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygiIiwgaW5wdXQpOw0KICAgICAgICAgICAgdmFyIGZpbHRlclR5cGUgPSBkYXRhW2RiS2V5XTsNCiAgICAgICAgICAgIHN3aXRjaCAoZmlsdGVyVHlwZSkgew0KICAgICAgICAgICAgICAgIGNhc2UgImN1c3RvbS1maWx0ZXIiOg0KICAgICAgICAgICAgICAgICAgICAvLyBDYXNlIHNlbnNpdGl2ZQ0KICAgICAgICAgICAgICAgICAgICB2YXIgZGJLZXkgPSAiY2FzZVNlbnNpdGl2ZSI7DQogICAgICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goZGJLZXkpOw0KICAgICAgICAgICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YVtkYktleV07DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5maWx0ZXIuY2FzZVNlbnNpdGl2ZS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgICAgICAgICAvLyBGaWx0ZXIgUnVsZSAoQ3VzdG9tKQ0KICAgICAgICAgICAgICAgICAgICB2YXIgZGJLZXkgPSAiZmlsdGVyIjsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3suZmlsdGVyLmZpbHRlclJ1bGUucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3suZmlsdGVyLmZpbHRlclJ1bGUudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAiZ3JvdXAtdGl0bGUiOg0KICAgICAgICAgICAgICAgICAgICAvL2FsZXJ0KGRiS2V5ICsgIiAiICsgZmlsdGVyVHlwZSkNCiAgICAgICAgICAgICAgICAgICAgLy8gRmlsdGVyIGJhc2VkIG9uIHRoZSBncm91cHMgaW4gdGhlIE0zVQ0KICAgICAgICAgICAgICAgICAgICB2YXIgZGJLZXkgPSAiZmlsdGVyIjsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGdyb3Vwc00zVSA9IGdldExvY2FsRGF0YSgibTN1R3JvdXBzIiwgIiIpOw0KICAgICAgICAgICAgICAgICAgICB2YXIgdGV4dCA9IGdyb3Vwc00zVVsidGV4dCJdOw0KICAgICAgICAgICAgICAgICAgICB2YXIgdmFsdWVzID0gZ3JvdXBzTTNVWyJ2YWx1ZSJdOw0KICAgICAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCBkYXRhW2RiS2V5XSwgZGJLZXkpOw0KICAgICAgICAgICAgICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3suZmlsdGVyLmZpbHRlckdyb3VwLnRpdGxlfX0iLCBzZWxlY3QpOw0KICAgICAgICAgICAgICAgICAgICBjb250ZW50LmRlc2NyaXB0aW9uKCJ7ey5maWx0ZXIuZmlsdGVyR3JvdXAuZGVzY3JpcHRpb259fSIpOw0KICAgICAgICAgICAgICAgICAgICAvLyBDYXNlIHNlbnNldGl2ZQ0KICAgICAgICAgICAgICAgICAgICB2YXIgZGJLZXkgPSAiY2FzZVNlbnNpdGl2ZSI7DQogICAgICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goZGJLZXkpOw0KICAgICAgICAgICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YVtkYktleV07DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5maWx0ZXIuY2FzZVNlbnNpdGl2ZS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgICAgICAgICB2YXIgZGJLZXkgPSAiaW5jbHVkZSI7DQogICAgICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LmZpbHRlci5pbmNsdWRlLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LmZpbHRlci5pbmNsdWRlLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuZGVzY3JpcHRpb24oInt7LmZpbHRlci5pbmNsdWRlLmRlc2NyaXB0aW9ufX0iKTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGRiS2V5ID0gImV4Y2x1ZGUiOw0KICAgICAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5maWx0ZXIuZXhjbHVkZS5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5maWx0ZXIuZXhjbHVkZS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgICAgICAgICBjb250ZW50LmRlc2NyaXB0aW9uKCJ7ey5maWx0ZXIuZXhjbHVkZS5kZXNjcmlwdGlvbn19Iik7DQogICAgICAgICAgICAgICAgICAgIC8vIFByZXNlcnZlIE0zVSBQbGF5bGlzdCBDaGFubmVsIE1hcHBpbmcNCiAgICAgICAgICAgICAgICAgICAgdmFyIGRiS2V5ID0gInByZXNlcnZlTWFwcGluZyI7DQogICAgICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goZGJLZXkpOw0KICAgICAgICAgICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YVtkYktleV07DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5maWx0ZXIucHJlc2VydmVNYXBwaW5nLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAgICAgICAgIC8vIFN0YXJ0aW5nIENoYW5uZWwgTnVtYmVyIE1hcHBpbmcNCiAgICAgICAgICAgICAgICAgICAgdmFyIGRiS2V5ID0gInN0YXJ0aW5nQ2hhbm5lbCI7DQogICAgICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LmZpbHRlci5zdGFydGluZ0NoYW5uZWwucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3suZmlsdGVyLnN0YXJ0aW5nQ2hhbm5lbC50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgICAgICAgICAvLyBGaWxsIE1pc3NpbmcgRVBHIERhdGENCiAgICAgICAgICAgICAgICAgICAgLy8gVGhlIGZvbGxvd2luZyBjb2RlIG9ubHkgd29ya3Mgd2hlbiB4VGVWZSBEdW1teSBhbHJlYWR5IGV4aXN0cw0KICAgICAgICAgICAgICAgICAgICAvLyB2YXIgZGJLZXk6c3RyaW5nID0gImRlZmF1bHRNaXNzaW5nRVBHIg0KICAgICAgICAgICAgICAgICAgICAvLyB2YXIgeG1sdHY6WE1MVFZGaWxlID0gbmV3IFhNTFRWRmlsZSgpDQogICAgICAgICAgICAgICAgICAgIC8vIHZhciBzZWxlY3QgPSB4bWx0di5nZXRQcm9ncmFtcygieFRlVmUgRHVtbXkiLCBkYXRhW2RiS2V5XSkNCiAgICAgICAgICAgICAgICAgICAgLy8gc2VsZWN0LnNldEF0dHJpYnV0ZSgibmFtZSIsIGRiS2V5KQ0KICAgICAgICAgICAgICAgICAgICAvLyBzZWxlY3Quc2V0QXR0cmlidXRlKCJpZCIsICJwb3B1cC1taXNzaW5nLWVwZyIpDQogICAgICAgICAgICAgICAgICAgIC8vIFRoZSB3b3JrYXJvdW5kIGlzIGN1cnJlbnRseSB0byBoYXJkIGNvZGUgdGhlIHhUZVZlIER1bW15IGRhdGENCiAgICAgICAgICAgICAgICAgICAgdmFyIGRiS2V5ID0gImRlZmF1bHRNaXNzaW5nRVBHIjsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGxpc3RPcHRpb25zID0geyAidGV4dCI6IFsiLSIsICIzMCBNaW51dGVzICgzMF9NaW51dGVzKSIsICI2MCBNaW51dGVzICg2MF9NaW51dGVzKSIsICI5MCBNaW51dGVzICg5MF9NaW51dGVzKSIsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgIjEyMCBNaW51dGVzICgxMjBfTWludXRlcykiLCAiMTgwIE1pbnV0ZXMgKDMwX01pbnV0ZXMpIiwgIjI0MCBNaW51dGVzICgzMF9NaW51dGVzKSIsICIzNjAgTWludXRlcyAoMzBfTWludXRlcykiXSwNCiAgICAgICAgICAgICAgICAgICAgICAgICJ2YWx1ZSI6IFsiLSIsICIzMF9NaW51dGVzIiwgIjYwX01pbnV0ZXMiLCAiOTBfTWludXRlcyIsICIxMjBfTWludXRlcyIsICIxODBfTWludXRlcyIsICIyNDBfTWludXRlcyIsICIzNjBfTWludXRlcyIsXSB9Ow0KICAgICAgICAgICAgICAgICAgICB2YXIgdGV4dCA9IGxpc3RPcHRpb25zWyJ0ZXh0Il07DQogICAgICAgICAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBsaXN0T3B0aW9uc1sidmFsdWUiXTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHNlbGVjdCA9IGNvbnRlbnQuY3JlYXRlU2VsZWN0KHRleHQsIHZhbHVlcywgZGF0YVtkYktleV0sIGRiS2V5KTsNCiAgICAgICAgICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LmZpbHRlci5kZWZhdWx0TWlzc2luZ0VQRy50aXRsZX19Iiwgc2VsZWN0KTsNCiAgICAgICAgICAgICAgICAgICAgY29udGVudC5kZXNjcmlwdGlvbigie3suZmlsdGVyLmRlZmF1bHRNaXNzaW5nRVBHLmRlc2NyaXB0aW9ufX0iKTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICB9DQogICAgICAgICAgICAvLyBJbnRlcmFjdGlvbg0KICAgICAgICAgICAgY29udGVudC5jcmVhdGVJbnRlcmFjdGlvbigpOw0KICAgICAgICAgICAgLy8gRGVsZXRlDQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAiZGVsZXRlIiwgInt7LmJ1dHRvbi5kZWxldGV9fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoImZpbHRlciIsICInICsgaWQgKyAnIiwgdHJ1ZSwgMCknKTsNCiAgICAgICAgICAgIGlucHV0LmNsYXNzTmFtZSA9ICJkZWxldGUiOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICAvLyBBYm9ydA0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImNhbmNlbCIsICJ7ey5idXR0b24uY2FuY2VsfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBzaG93RWxlbWVudCgicG9wdXAiLCBmYWxzZSk7Jyk7DQogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIC8vIFNhdmUNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJzYXZlIiwgInt7LmJ1dHRvbi5zYXZlfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBzYXZlUG9wdXBEYXRhKCJmaWx0ZXIiLCAiJyArIGlkICsgJyIsIGZhbHNlLCAwKScpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSAieG1sdHYiOg0KICAgICAgICAgICAgY29udGVudC5jcmVhdGVIZWFkbGluZShkYXRhVHlwZSk7DQogICAgICAgICAgICAvLyBOYW1lDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAibmFtZSI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3sueG1sdHYubmFtZS5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sueG1sdHYubmFtZS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgLy8gRGVzY3JpcHRpb24NCiAgICAgICAgICAgIHZhciBkYktleSA9ICJkZXNjcmlwdGlvbiI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3sueG1sdHYuZGVzY3JpcHRpb24ucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnhtbHR2LmRlc2NyaXB0aW9uLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBVUkwNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJmaWxlLnNvdXJjZSI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3sueG1sdHYuZmlsZVhNTFRWLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey54bWx0di5maWxlWE1MVFYudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIEludGVyYWN0aW9uDQogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUludGVyYWN0aW9uKCk7DQogICAgICAgICAgICAvLyBEZWxldGUNCiAgICAgICAgICAgIGlmIChkYXRhWyJpZC5wcm92aWRlciJdICE9ICItIikgew0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJkZWxldGUiLCAie3suYnV0dG9uLmRlbGV0ZX19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoInhtbHR2IiwgIicgKyBpZCArICciLCB0cnVlLCAwKScpOw0KICAgICAgICAgICAgICAgIGlucHV0LmNsYXNzTmFtZSA9ICJkZWxldGUiOw0KICAgICAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgLy8gQWJvcnQNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJjYW5jZWwiLCAie3suYnV0dG9uLmNhbmNlbH19Iik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogc2hvd0VsZW1lbnQoInBvcHVwIiwgZmFsc2UpOycpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICAvLyBVcGRhdGUNCiAgICAgICAgICAgIGlmIChkYXRhWyJpZC5wcm92aWRlciJdICE9ICItIikgew0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJ1cGRhdGUiLCAie3suYnV0dG9uLnVwZGF0ZX19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoInhtbHR2IiwgIicgKyBpZCArICciLCBmYWxzZSwgMSknKTsNCiAgICAgICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIC8vIFNhdmUNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJzYXZlIiwgInt7LmJ1dHRvbi5zYXZlfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBzYXZlUG9wdXBEYXRhKCJ4bWx0diIsICInICsgaWQgKyAnIiwgZmFsc2UsIDApJyk7DQogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJ1c2VycyI6DQogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUhlYWRsaW5lKCJ7ey5tYWluTWVudS5pdGVtLnVzZXJzfX0iKTsNCiAgICAgICAgICAgIC8vIFVzZXIgbmFtZQ0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gInVzZXJuYW1lIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey51c2Vycy51c2VybmFtZS5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sudXNlcnMudXNlcm5hbWUudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIE5ldyBQYXJzc3dvcmQNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJwYXNzd29yZCI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJwYXNzd29yZCIsIGRiS2V5LCAiIik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnVzZXJzLnBhc3N3b3JkLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey51c2Vycy5wYXNzd29yZC50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgLy8gQ29uZmlybWF0aW9uDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAiY29uZmlybSI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJwYXNzd29yZCIsIGRiS2V5LCAiIik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnVzZXJzLmNvbmZpcm0ucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnVzZXJzLmNvbmZpcm0udGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIEF1dGhlbnRpY2F0aW9uIFdFQg0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gImF1dGhlbnRpY2F0aW9uLndlYiI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KGRiS2V5KTsNCiAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhW2RiS2V5XTsNCiAgICAgICAgICAgIGlmIChkYXRhWyJkZWZhdWx0VXNlciJdID09IHRydWUpIHsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAiamF2YXNjcmlwdDogcmV0dXJuIGZhbHNlIik7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sudXNlcnMud2ViLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBBdXRoZW50aWNhdGlvbiBQTVMNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJhdXRoZW50aWNhdGlvbi5wbXMiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChkYktleSk7DQogICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YVtkYktleV07DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sudXNlcnMucG1zLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBBdXRoZW50aWNhdGlvbiBNM1UNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJhdXRoZW50aWNhdGlvbi5tM3UiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChkYktleSk7DQogICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YVtkYktleV07DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sudXNlcnMubTN1LnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBBdXRoZW50aWNhdGlvbiBYTUwNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJhdXRoZW50aWNhdGlvbi54bWwiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChkYktleSk7DQogICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YVtkYktleV07DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sudXNlcnMueG1sLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBBdXRoZW50aWNhdGlvbiBBUEkNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJhdXRoZW50aWNhdGlvbi5hcGkiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChkYktleSk7DQogICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YVtkYktleV07DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sudXNlcnMuYXBpLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBJbnRlcmFjdGlvbg0KICAgICAgICAgICAgY29udGVudC5jcmVhdGVJbnRlcmFjdGlvbigpOw0KICAgICAgICAgICAgLy8gRGVsZXRlDQogICAgICAgICAgICBpZiAoZGF0YVsiZGVmYXVsdFVzZXIiXSAhPSB0cnVlICYmIGlkICE9ICItIikgew0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJkZWxldGUiLCAie3suYnV0dG9uLmRlbGV0ZX19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuY2xhc3NOYW1lID0gImRlbGV0ZSI7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoIicgKyBkYXRhVHlwZSArICciLCAiJyArIGlkICsgJyIsIHRydWUsIDApJyk7DQogICAgICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICAvLyBBYm9ydA0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImNhbmNlbCIsICJ7ey5idXR0b24uY2FuY2VsfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBzaG93RWxlbWVudCgicG9wdXAiLCBmYWxzZSk7Jyk7DQogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIC8vIFNhdmUNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJzYXZlIiwgInt7LmJ1dHRvbi5zYXZlfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBzYXZlUG9wdXBEYXRhKCInICsgZGF0YVR5cGUgKyAnIiwgIicgKyBpZCArICciLCAiZmFsc2UiKTsnKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGNhc2UgIm1hcHBpbmciOg0KICAgICAgICAgICAgY29udGVudC5jcmVhdGVIZWFkbGluZSgie3subWFpbk1lbnUuaXRlbS5tYXBwaW5nfX0iKTsNCiAgICAgICAgICAgIC8vIEFjdGl2ZQ0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gIngtYWN0aXZlIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goZGJLZXkpOw0KICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGFbZGJLZXldOw0KICAgICAgICAgICAgaW5wdXQuaWQgPSAiYWN0aXZlIjsNCiAgICAgICAgICAgIC8vaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpDQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRvZ2dsZUNoYW5uZWxTdGF0dXMoJyIgKyBpZCArICInLCB0aGlzKSIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7Lm1hcHBpbmcuYWN0aXZlLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBDaGFubmVsIG5hbWUNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJ4LW5hbWUiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICBpZiAoQlVMS19FRElUID09IHRydWUpIHsNCiAgICAgICAgICAgICAgICBpbnB1dC5zdHlsZS5ib3JkZXIgPSAic29saWQgMXB4IHJlZCI7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJyZWFkb25seSIsICJ0cnVlIik7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3subWFwcGluZy5jaGFubmVsTmFtZS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgY29udGVudC5kZXNjcmlwdGlvbihkYXRhWyJuYW1lIl0pOw0KICAgICAgICAgICAgLy8gRGVzY3JpcHRpb24NCiAgICAgICAgICAgIHZhciBkYktleSA9ICJ4LWRlc2NyaXB0aW9uIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5tYXBwaW5nLmRlc2NyaXB0aW9uLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5tYXBwaW5nLmRlc2NyaXB0aW9uLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBVcGRhdGUgdGhlIGNoYW5uZWwgbmFtZQ0KICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoIl91dWlkLmtleSIpKSB7DQogICAgICAgICAgICAgICAgaWYgKGRhdGFbIl91dWlkLmtleSJdICE9ICIiKSB7DQogICAgICAgICAgICAgICAgICAgIHZhciBkYktleSA9ICJ4LXVwZGF0ZS1jaGFubmVsLW5hbWUiOw0KICAgICAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KGRiS2V5KTsNCiAgICAgICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YVtkYktleV07DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5tYXBwaW5nLnVwZGF0ZUNoYW5uZWxOYW1lLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgLy8gTG9nbyBVUkwgKENoYW5uZWwpIA0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gInR2Zy1sb2dvIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJpZCIsICJjaGFubmVsLWljb24iKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5tYXBwaW5nLmNoYW5uZWxMb2dvLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBDaGFubmVsIGxvZ28gdXBkYXRlDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAieC11cGRhdGUtY2hhbm5lbC1pY29uIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goZGJLZXkpOw0KICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGFbZGJLZXldOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJpZCIsICJ1cGRhdGUtaWNvbiIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJzsgY2hhbmdlQ2hhbm5lbExvZ28oJyIgKyBpZCArICInKTsiKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5tYXBwaW5nLnVwZGF0ZUNoYW5uZWxMb2dvLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBFeHBhbmQgRVBHIGNhdGVnb3J5DQogICAgICAgICAgICB2YXIgZGJLZXkgPSAieC1jYXRlZ29yeSI7DQogICAgICAgICAgICB2YXIgdGV4dCA9IFsiLSIsICJLaWRzIChFbWJ5IG9ubHkpIiwgIk5ld3MiLCAiTW92aWUiLCAiU2VyaWVzIiwgIlNwb3J0cyJdOw0KICAgICAgICAgICAgdmFyIHZhbHVlcyA9IFsiIiwgIktpZHMiLCAiTmV3cyIsICJNb3ZpZSIsICJTZXJpZXMiLCAiU3BvcnRzIl07DQogICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCBkYXRhW2RiS2V5XSwgZGJLZXkpOw0KICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5tYXBwaW5nLmVwZ0NhdGVnb3J5LnRpdGxlfX0iLCBzZWxlY3QpOw0KICAgICAgICAgICAgLy8gTTNVIGdyb3VwIHRpdGxlDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAieC1ncm91cC10aXRsZSI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgIGlucHV0LmRhdGFzZXQub2xkVmFsdWUgPSBkYXRhW2RiS2V5XTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5tYXBwaW5nLm0zdUdyb3VwVGl0bGUudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIGlmIChkYXRhWyJncm91cC10aXRsZSJdICE9IHVuZGVmaW5lZCkgew0KICAgICAgICAgICAgICAgIGNvbnRlbnQuZGVzY3JpcHRpb24oZGF0YVsiZ3JvdXAtdGl0bGUiXSk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBpZiAoZGF0YVsieC11cGRhdGUtY2hhbm5lbC1ncm91cCJdID09IHRydWUpIHsNCiAgICAgICAgICAgICAgICBpbnB1dC5kaXNhYmxlZCA9IHRydWU7DQogICAgICAgICAgICB9DQogICAgICAgICAgICAvLyBVcGRhdGUgY2hhbm5lbCBncm91cCBjaGVja2JveA0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gIngtdXBkYXRlLWNoYW5uZWwtZ3JvdXAiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChkYktleSk7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRvZ2dsZUdyb3VwVXBkYXRlQ2IoJyIgKyBpZCArICInLCB0aGlzKTsiKTsNCiAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhW2RiS2V5XTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5tYXBwaW5nLnVwZGF0ZUNoYW5uZWxHcm91cC50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgY29udGVudC5kZXNjcmlwdGlvbigie3subWFwcGluZy51cGRhdGVDaGFubmVsR3JvdXAuZGVzY3JpcHRpb259fSIpOw0KICAgICAgICAgICAgLy8gWE1MVFYgZmlsZQ0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gIngteG1sdHYtZmlsZSI7DQogICAgICAgICAgICB2YXIgeG1sRmlsZSA9IGRhdGFbZGJLZXldOw0KICAgICAgICAgICAgdmFyIHhtbHR2ID0gbmV3IFhNTFRWRmlsZSgpOw0KICAgICAgICAgICAgdmFyIHNlbGVjdCA9IHhtbHR2LmdldEZpbGVzKGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIHNlbGVjdC5zZXRBdHRyaWJ1dGUoIm5hbWUiLCBkYktleSk7DQogICAgICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJpZCIsICJwb3B1cC14bWx0diIpOw0KICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCc7IHNldFhtbHR2Q2hhbm5lbCgnIiArIGlkICsgIicsdGhpcyk7Iik7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3subWFwcGluZy54bWx0dkZpbGUudGl0bGV9fSIsIHNlbGVjdCk7DQogICAgICAgICAgICB2YXIgZmlsZSA9IGRhdGFbZGJLZXldOw0KICAgICAgICAgICAgLy8gWE1MVFYgTWFwcGluZw0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gIngtbWFwcGluZyI7DQogICAgICAgICAgICB2YXIgeG1sdHYgPSBuZXcgWE1MVFZGaWxlKCk7DQogICAgICAgICAgICB2YXIgc2VsZWN0ID0geG1sdHYuZ2V0UHJvZ3JhbXMoZmlsZSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgibmFtZSIsIGRiS2V5KTsNCiAgICAgICAgICAgIHNlbGVjdC5zZXRBdHRyaWJ1dGUoImlkIiwgInBvcHVwLW1hcHBpbmciKTsNCiAgICAgICAgICAgIHNlbGVjdC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnOyBjaGVja1htbHR2Q2hhbm5lbCgnIiArIGlkICsgIicsdGhpcywnIiArIHhtbEZpbGUgKyAiJyk7Iik7DQogICAgICAgICAgICBzb3J0U2VsZWN0KHNlbGVjdCk7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3subWFwcGluZy54bWx0dkNoYW5uZWwudGl0bGV9fSIsIHNlbGVjdCk7DQogICAgICAgICAgICAvLyBUaW1lc2hpZnQNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJ4LXRpbWVzaGlmdCI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3subWFwcGluZy50aW1lc2hpZnQucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJpZCIsICJ0aW1lc2hpZnQiKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5tYXBwaW5nLnRpbWVzaGlmdC50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgLy8gSW50ZXJhY3Rpb24NCiAgICAgICAgICAgIGNvbnRlbnQuY3JlYXRlSW50ZXJhY3Rpb24oKTsNCiAgICAgICAgICAgIC8vIFVwbG9hZCBsb2dvDQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAiY2FuY2VsIiwgInt7LmJ1dHRvbi51cGxvYWRMb2dvfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiB1cGxvYWRMb2dvKCk7Jyk7DQogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIC8vIEFib3J0DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAiY2FuY2VsIiwgInt7LmJ1dHRvbi5jYW5jZWx9fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IHNob3dFbGVtZW50KCJwb3B1cCIsIGZhbHNlKTsnKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgLy8gRmluaXNoZWQNCiAgICAgICAgICAgIHZhciBpZHMgPSBbXTsNCiAgICAgICAgICAgIGlkcyA9IGdldEFsbFNlbGVjdGVkQ2hhbm5lbHMoKTsNCiAgICAgICAgICAgIGlmIChpZHMubGVuZ3RoID09IDApIHsNCiAgICAgICAgICAgICAgICBpZHMucHVzaChpZCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAic2F2ZSIsICJ7ey5idXR0b24uZG9uZX19Iik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogZG9uZVBvcHVwRGF0YSgiJyArIGRhdGFUeXBlICsgJyIsICInICsgaWRzICsgJyIsICJmYWxzZSIpOycpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgIGJyZWFrOw0KICAgIH0NCiAgICBzaG93UG9wVXBFbGVtZW50KCdwb3B1cC1jdXN0b20nKTsNCn0NCmNsYXNzIFhNTFRWRmlsZSB7DQogICAgZ2V0RmlsZXMoc2V0KSB7DQogICAgICAgIGxldCBmaWxlSURzID0gZ2V0T2JqS2V5cyhTRVJWRVJbInhlcGciXVsieG1sdHZNYXAiXSk7DQogICAgICAgIGxldCB2YWx1ZXMgPSBuZXcgQXJyYXkoIi0iKTsNCiAgICAgICAgbGV0IHRleHQgPSBuZXcgQXJyYXkoIi0iKTsNCiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBmaWxlSURzLmxlbmd0aDsgaSsrKSB7DQogICAgICAgICAgICBpZiAoZmlsZUlEc1tpXSAhPSAieFRlVmUgRHVtbXkiKSB7DQogICAgICAgICAgICAgICAgdmFsdWVzLnB1c2goZ2V0VmFsdWVGcm9tUHJvdmlkZXJGaWxlKGZpbGVJRHNbaV0sICJ4bWx0diIsICJmaWxlLnh0ZXZlIikpOw0KICAgICAgICAgICAgICAgIHRleHQucHVzaChnZXRWYWx1ZUZyb21Qcm92aWRlckZpbGUoZmlsZUlEc1tpXSwgInhtbHR2IiwgIm5hbWUiKSk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICB2YWx1ZXMucHVzaChmaWxlSURzW2ldKTsNCiAgICAgICAgICAgICAgICB0ZXh0LnB1c2goZmlsZUlEc1tpXSk7DQogICAgICAgICAgICB9DQogICAgICAgIH0NCiAgICAgICAgbGV0IHNlbGVjdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlNFTEVDVCIpOw0KICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRleHQubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgICAgIHZhciBvcHRpb24gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJPUFRJT04iKTsNCiAgICAgICAgICAgIG9wdGlvbi5zZXRBdHRyaWJ1dGUoInZhbHVlIiwgdmFsdWVzW2ldKTsNCiAgICAgICAgICAgIG9wdGlvbi5pbm5lclRleHQgPSB0ZXh0W2ldOw0KICAgICAgICAgICAgc2VsZWN0LmFwcGVuZENoaWxkKG9wdGlvbik7DQogICAgICAgIH0NCiAgICAgICAgaWYgKHNldCAhPSAiIikgew0KICAgICAgICAgICAgc2VsZWN0LnZhbHVlID0gc2V0Ow0KICAgICAgICB9DQogICAgICAgIHJldHVybiBzZWxlY3Q7DQogICAgfQ0KICAgIGdldFByb2dyYW1zKGZpbGUsIHNldCkgew0KICAgICAgICAvL3ZhciBmaWxlSURzOnN0cmluZ1tdID0gZ2V0T2JqS2V5cyhTRVJWRVJbInhlcGciXVsieG1sdHZNYXAiXSkNCiAgICAgICAgbGV0IHZhbHVlcyA9IGdldE9iaktleXMoU0VSVkVSWyJ4ZXBnIl1bInhtbHR2TWFwIl1bZmlsZV0pOw0KICAgICAgICBsZXQgdGV4dCA9IFtdOw0KICAgICAgICBsZXQgZnJpZW5kbHlOYW1lOw0KICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHZhbHVlcy5sZW5ndGg7IGkrKykgew0KICAgICAgICAgICAgaWYgKFNFUlZFUlsieGVwZyJdWyJ4bWx0dk1hcCJdW2ZpbGVdW3ZhbHVlc1tpXV0uaGFzT3duUHJvcGVydHkoJ2ZyaWVuZGx5LW5hbWUnKSA9PSB0cnVlKSB7DQogICAgICAgICAgICAgICAgZnJpZW5kbHlOYW1lID0gU0VSVkVSWyJ4ZXBnIl1bInhtbHR2TWFwIl1bZmlsZV1bdmFsdWVzW2ldXVsiZnJpZW5kbHktbmFtZSJdOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgZWxzZSB7DQogICAgICAgICAgICAgICAgZnJpZW5kbHlOYW1lID0gIi0iOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgdGV4dFtpXSA9IGZyaWVuZGx5TmFtZSArICIgKCIgKyB2YWx1ZXNbaV0gKyAiKSI7DQogICAgICAgIH0NCiAgICAgICAgdGV4dC51bnNoaWZ0KCItIik7DQogICAgICAgIHZhbHVlcy51bnNoaWZ0KCItIik7DQogICAgICAgIGxldCBzZWxlY3QgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJTRUxFQ1QiKTsNCiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0ZXh0Lmxlbmd0aDsgaSsrKSB7DQogICAgICAgICAgICB2YXIgb3B0aW9uID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiT1BUSU9OIik7DQogICAgICAgICAgICBvcHRpb24uc2V0QXR0cmlidXRlKCJ2YWx1ZSIsIHZhbHVlc1tpXSk7DQogICAgICAgICAgICBvcHRpb24uaW5uZXJUZXh0ID0gdGV4dFtpXTsNCiAgICAgICAgICAgIHNlbGVjdC5hcHBlbmRDaGlsZChvcHRpb24pOw0KICAgICAgICB9DQogICAgICAgIGlmIChzZXQgIT0gIiIpIHsNCiAgICAgICAgICAgIHNlbGVjdC52YWx1ZSA9IHNldDsNCiAgICAgICAgfQ0KICAgICAgICBpZiAoc2VsZWN0LnZhbHVlICE9IHNldCkgew0KICAgICAgICAgICAgc2VsZWN0LnZhbHVlID0gIi0iOw0KICAgICAgICB9DQogICAgICAgIHJldHVybiBzZWxlY3Q7DQogICAgfQ0KfQ0KZnVuY3Rpb24gZ2V0VmFsdWVGcm9tUHJvdmlkZXJGaWxlKGZpbGUsIGZpbGVUeXBlLCBrZXkpIHsNCiAgICBpZiAoZmlsZSA9PSAieFRlVmUgRHVtbXkiKSB7DQogICAgICAgIHJldHVybiBmaWxlOw0KICAgIH0NCiAgICBsZXQgZmlsZUlEOw0KICAgIGxldCBpbmRpY2F0b3IgPSBmaWxlLmNoYXJBdCgwKTsNCiAgICBzd2l0Y2ggKGluZGljYXRvcikgew0KICAgICAgICBjYXNlICJNIjoNCiAgICAgICAgICAgIGZpbGVUeXBlID0gIm0zdSI7DQogICAgICAgICAgICBmaWxlSUQgPSBmaWxlOw0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGNhc2UgIkgiOg0KICAgICAgICAgICAgZmlsZVR5cGUgPSAiaGRociI7DQogICAgICAgICAgICBmaWxlSUQgPSBmaWxlOw0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGNhc2UgIlgiOg0KICAgICAgICAgICAgZmlsZVR5cGUgPSAieG1sdHYiOw0KICAgICAgICAgICAgZmlsZUlEID0gZmlsZS5zdWJzdHJpbmcoMCwgZmlsZS5sYXN0SW5kZXhPZignLicpKTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgIH0NCiAgICBpZiAoU0VSVkVSWyJzZXR0aW5ncyJdWyJmaWxlcyJdW2ZpbGVUeXBlXS5oYXNPd25Qcm9wZXJ0eShmaWxlSUQpID09IHRydWUpIHsNCiAgICAgICAgdmFyIGRhdGEgPSBTRVJWRVJbInNldHRpbmdzIl1bImZpbGVzIl1bZmlsZVR5cGVdW2ZpbGVJRF07DQogICAgICAgIHJldHVybiBkYXRhW2tleV07DQogICAgfQ0KICAgIHJldHVybjsNCn0NCmZ1bmN0aW9uIHNldFhtbHR2Q2hhbm5lbChpZCwgZWxlbWVudCkgew0KICAgIGxldCB4bWx0diA9IG5ldyBYTUxUVkZpbGUoKTsNCiAgICBsZXQgeG1sRmlsZSA9IGVsZW1lbnQudmFsdWU7DQogICAgbGV0IHR2Z0lkID0gU0VSVkVSWyJ4ZXBnIl1bImVwZ01hcHBpbmciXVtpZF1bInR2Zy1pZCJdOw0KICAgIGxldCB0ZCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJwb3B1cC1tYXBwaW5nIikucGFyZW50RWxlbWVudDsNCiAgICB0ZC5pbm5lckhUTUwgPSAiIjsNCiAgICBsZXQgc2VsZWN0ID0geG1sdHYuZ2V0UHJvZ3JhbXMoZWxlbWVudC52YWx1ZSwgdHZnSWQpOw0KICAgIHNlbGVjdC5zZXRBdHRyaWJ1dGUoIm5hbWUiLCAieC1tYXBwaW5nIik7DQogICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgiaWQiLCAicG9wdXAtbWFwcGluZyIpOw0KICAgIHNlbGVjdC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnOyBjaGVja1htbHR2Q2hhbm5lbCgnIiArIGlkICsgIicsdGhpcywnIiArIHhtbEZpbGUgKyAiJyk7Iik7DQogICAgc2VsZWN0LmNsYXNzTmFtZSA9ICJjaGFuZ2VkIjsNCiAgICBzb3J0U2VsZWN0KHNlbGVjdCk7DQogICAgdGQuYXBwZW5kQ2hpbGQoc2VsZWN0KTsNCiAgICBjaGVja1htbHR2Q2hhbm5lbChpZCwgc2VsZWN0LCB4bWxGaWxlKTsNCn0NCmZ1bmN0aW9uIGNoZWNrWG1sdHZDaGFubmVsKGlkLCBlbGVtZW50LCB4bWxGaWxlKSB7DQogICAgbGV0IHZhbHVlID0gZWxlbWVudC52YWx1ZTsNCiAgICBsZXQgYm9vbDsNCiAgICBsZXQgY2hlY2tib3ggPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYWN0aXZlJyk7DQogICAgbGV0IGNoYW5uZWwgPSBTRVJWRVJbInhlcGciXVsiZXBnTWFwcGluZyJdW2lkXTsNCiAgICBsZXQgdXBkYXRlTG9nbzsNCiAgICBib29sID0gdmFsdWUgIT0gIi0iOw0KICAgIGNoZWNrYm94LmNoZWNrZWQgPSBib29sOw0KICAgIGNoZWNrYm94LmNsYXNzTmFtZSA9ICJjaGFuZ2VkIjsNCiAgICBjb25zb2xlLmxvZyh4bWxGaWxlKTsNCiAgICAvLyBVcGRhdGUgY2hhbm5lbCBsb2dvDQogICAgLyoNCiAgICB1cGRhdGVMb2dvID0gKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ1cGRhdGUtaWNvbiIpIGFzIEhUTUxJbnB1dEVsZW1lbnQpLmNoZWNrZWQNCiAgICBjb25zb2xlLmxvZyh1cGRhdGVMb2dvKTsNCiAgICAqLw0KICAgIGlmICh4bWxGaWxlICE9ICJ4VGVWZSBEdW1teSIgJiYgYm9vbCA9PSB0cnVlKSB7DQogICAgICAgIC8vKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ1cGRhdGUtaWNvbiIpIGFzIEhUTUxJbnB1dEVsZW1lbnQpLmNoZWNrZWQgPSB0cnVlOw0KICAgICAgICAvLyhkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidXBkYXRlLWljb24iKSBhcyBIVE1MSW5wdXRFbGVtZW50KS5jbGFzc05hbWUgPSAiY2hhbmdlZCI7DQogICAgICAgIGNvbnNvbGUubG9nKCJJRCIsIGlkKTsNCiAgICAgICAgY2hhbmdlQ2hhbm5lbExvZ28oaWQpOw0KICAgICAgICByZXR1cm47DQogICAgfQ0KICAgIGlmICh4bWxGaWxlID09ICJ4VGVWZSBEdW1teSIpIHsNCiAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInVwZGF0ZS1pY29uIikuY2hlY2tlZCA9IGZhbHNlOw0KICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidXBkYXRlLWljb24iKS5jbGFzc05hbWUgPSAiY2hhbmdlZCI7DQogICAgfQ0KICAgIHJldHVybjsNCn0NCmZ1bmN0aW9uIGNoYW5nZUNoYW5uZWxMb2dvKGlkKSB7DQogICAgbGV0IHVwZGF0ZUxvZ287DQogICAgbGV0IGNoYW5uZWwgPSBTRVJWRVJbInhlcGciXVsiZXBnTWFwcGluZyJdW2lkXTsNCiAgICBsZXQgZiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJwb3B1cC14bWx0diIpOw0KICAgIGxldCB4bWx0dkZpbGUgPSBmLm9wdGlvbnNbZi5zZWxlY3RlZEluZGV4XS52YWx1ZTsNCiAgICBsZXQgbSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJwb3B1cC1tYXBwaW5nIik7DQogICAgbGV0IHhNYXBwaW5nID0gbS5vcHRpb25zW20uc2VsZWN0ZWRJbmRleF0udmFsdWU7DQogICAgbGV0IHhtbHR2TG9nbyA9IFNFUlZFUlsieGVwZyJdWyJ4bWx0dk1hcCJdW3htbHR2RmlsZV1beE1hcHBpbmddWyJpY29uIl07DQogICAgdXBkYXRlTG9nbyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ1cGRhdGUtaWNvbiIpLmNoZWNrZWQ7DQogICAgaWYgKHVwZGF0ZUxvZ28gPT0gdHJ1ZSAmJiB4bWx0dkZpbGUgIT0gInhUZVZlIER1bW15Iikgew0KICAgICAgICBpZiAoU0VSVkVSWyJ4ZXBnIl1bInhtbHR2TWFwIl1beG1sdHZGaWxlXS5oYXNPd25Qcm9wZXJ0eSh4TWFwcGluZykpIHsNCiAgICAgICAgICAgIHZhciBsb2dvID0geG1sdHZMb2dvOw0KICAgICAgICB9DQogICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgbG9nbyA9IGNoYW5uZWxbInR2Zy1sb2dvIl07DQogICAgICAgIH0NCiAgICAgICAgdmFyIGxvZ29JbnB1dCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjaGFubmVsLWljb24iKTsNCiAgICAgICAgbG9nb0lucHV0LnZhbHVlID0gbG9nbzsNCiAgICAgICAgaWYgKEJVTEtfRURJVCA9PSBmYWxzZSkgew0KICAgICAgICAgICAgbG9nb0lucHV0LmNsYXNzTmFtZSA9ICJjaGFuZ2VkIjsNCiAgICAgICAgfQ0KICAgIH0NCn0NCmZ1bmN0aW9uIHNhdmVQb3B1cERhdGEoZGF0YVR5cGUsIGlkLCByZW1vdmUsIG9wdGlvbikgew0KICAgIGlmIChkYXRhVHlwZSA9PSAibWFwcGluZyIpIHsNCiAgICAgICAgbGV0IGRhdGEgPSB7fTsNCiAgICAgICAgY29uc29sZS5sb2coIlNhdmUgbWFwcGluZyBkYXRhIik7DQogICAgICAgIGxldCBjbWQgPSAic2F2ZUVwZ01hcHBpbmciOw0KICAgICAgICBkYXRhWyJlcGdNYXBwaW5nIl0gPSBTRVJWRVJbInhlcGciXVsiZXBnTWFwcGluZyJdOw0KICAgICAgICBjb25zb2xlLmxvZygiU0VORCBUTyBTRVJWRVIiKTsNCiAgICAgICAgbGV0IHNlcnZlciA9IG5ldyBTZXJ2ZXIoY21kKTsNCiAgICAgICAgc2VydmVyLnJlcXVlc3QoZGF0YSk7DQogICAgICAgIGRlbGV0ZSBVTkRPWyJlcGdNYXBwaW5nIl07DQogICAgICAgIHJldHVybjsNCiAgICB9DQogICAgY29uc29sZS5sb2coIlNhdmUgcG9wdXAgZGF0YSIpOw0KICAgIGxldCBkaXYgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicG9wdXAtY3VzdG9tIik7DQogICAgbGV0IGlucHV0cyA9IGRpdi5nZXRFbGVtZW50c0J5VGFnTmFtZSgiVEFCTEUiKVswXS5nZXRFbGVtZW50c0J5VGFnTmFtZSgiSU5QVVQiKTsNCiAgICBsZXQgc2VsZWN0cyA9IGRpdi5nZXRFbGVtZW50c0J5VGFnTmFtZSgiVEFCTEUiKVswXS5nZXRFbGVtZW50c0J5VGFnTmFtZSgiU0VMRUNUIik7DQogICAgbGV0IGlucHV0ID0ge307DQogICAgbGV0IGNvbmZpcm1Nc2c7DQogICAgZm9yIChsZXQgaSA9IDA7IGkgPCBzZWxlY3RzLmxlbmd0aDsgaSsrKSB7DQogICAgICAgIHZhciBuYW1lOw0KICAgICAgICBuYW1lID0gc2VsZWN0c1tpXS5uYW1lOw0KICAgICAgICB2YXIgdmFsdWUgPSBzZWxlY3RzW2ldLnZhbHVlOw0KICAgICAgICBzd2l0Y2ggKG5hbWUpIHsNCiAgICAgICAgICAgIGNhc2UgInR1bmVyIjoNCiAgICAgICAgICAgICAgICBpbnB1dFtuYW1lXSA9IHBhcnNlSW50KHZhbHVlKTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICAgICAgaW5wdXRbbmFtZV0gPSB2YWx1ZTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgfQ0KICAgIH0NCiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGlucHV0cy5sZW5ndGg7IGkrKykgew0KICAgICAgICBzd2l0Y2ggKGlucHV0c1tpXS50eXBlKSB7DQogICAgICAgICAgICBjYXNlICJjaGVja2JveCI6DQogICAgICAgICAgICAgICAgbmFtZSA9IGlucHV0c1tpXS5uYW1lOw0KICAgICAgICAgICAgICAgIGlucHV0W25hbWVdID0gaW5wdXRzW2ldLmNoZWNrZWQ7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ0ZXh0IjoNCiAgICAgICAgICAgIGNhc2UgImhpZGRlbiI6DQogICAgICAgICAgICBjYXNlICJwYXNzd29yZCI6DQogICAgICAgICAgICAgICAgbmFtZSA9IGlucHV0c1tpXS5uYW1lOw0KICAgICAgICAgICAgICAgIHN3aXRjaCAobmFtZSkgew0KICAgICAgICAgICAgICAgICAgICBjYXNlICJ0dW5lciI6DQogICAgICAgICAgICAgICAgICAgICAgICBpbnB1dFtuYW1lXSA9IHBhcnNlSW50KGlucHV0c1tpXS52YWx1ZSk7DQogICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgICAgICAgICAgICAgIGlucHV0W25hbWVdID0gaW5wdXRzW2ldLnZhbHVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICB9DQogICAgfQ0KICAgIGxldCBkYXRhID0ge307DQogICAgbGV0IGNtZDsNCiAgICBpZiAocmVtb3ZlID09IHRydWUpIHsNCiAgICAgICAgaW5wdXRbImRlbGV0ZSJdID0gdHJ1ZTsNCiAgICB9DQogICAgc3dpdGNoIChkYXRhVHlwZSkgew0KICAgICAgICBjYXNlICJ1c2VycyI6DQogICAgICAgICAgICBjb25maXJtTXNnID0gIkRlbGV0ZSB0aGlzIHVzZXI/IjsNCiAgICAgICAgICAgIGlmIChpZCA9PSAiLSIpIHsNCiAgICAgICAgICAgICAgICBjbWQgPSAic2F2ZU5ld1VzZXIiOw0KICAgICAgICAgICAgICAgIGRhdGFbInVzZXJEYXRhIl0gPSBpbnB1dDsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgICAgIGNtZCA9ICJzYXZlVXNlckRhdGEiOw0KICAgICAgICAgICAgICAgIGxldCBkID0ge307DQogICAgICAgICAgICAgICAgZFtpZF0gPSBpbnB1dDsNCiAgICAgICAgICAgICAgICBkYXRhWyJ1c2VyRGF0YSJdID0gZDsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJtM3UiOg0KICAgICAgICAgICAgY29uZmlybU1zZyA9ICJEZWxldGUgdGhpcyBwbGF5bGlzdD8iOw0KICAgICAgICAgICAgc3dpdGNoIChvcHRpb24pIHsNCiAgICAgICAgICAgICAgICAvLyBQb3B1cDogU2F2ZQ0KICAgICAgICAgICAgICAgIGNhc2UgMDoNCiAgICAgICAgICAgICAgICAgICAgY21kID0gInNhdmVGaWxlc00zVSI7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIC8vIFBvcHVwOiBVcGRhdGUNCiAgICAgICAgICAgICAgICBjYXNlIDE6DQogICAgICAgICAgICAgICAgICAgIGNtZCA9ICJ1cGRhdGVGaWxlTTNVIjsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBkYXRhWyJmaWxlcyJdID0ge307DQogICAgICAgICAgICBkYXRhWyJmaWxlcyJdW2RhdGFUeXBlXSA9IHt9Ow0KICAgICAgICAgICAgZGF0YVsiZmlsZXMiXVtkYXRhVHlwZV1baWRdID0gaW5wdXQ7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSAiaGRociI6DQogICAgICAgICAgICBjb25maXJtTXNnID0gIkRlbGV0ZSB0aGlzIEhESG9tZVJ1biB0dW5lcj8iOw0KICAgICAgICAgICAgc3dpdGNoIChvcHRpb24pIHsNCiAgICAgICAgICAgICAgICAvLyBQb3B1cDogU2F2ZQ0KICAgICAgICAgICAgICAgIGNhc2UgMDoNCiAgICAgICAgICAgICAgICAgICAgY21kID0gInNhdmVGaWxlc0hESFIiOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICAvLyBQb3B1cDogVXBkYXRlDQogICAgICAgICAgICAgICAgY2FzZSAxOg0KICAgICAgICAgICAgICAgICAgICBjbWQgPSAidXBkYXRlRmlsZUhESFIiOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGRhdGFbImZpbGVzIl0gPSB7fTsNCiAgICAgICAgICAgIGRhdGFbImZpbGVzIl1bZGF0YVR5cGVdID0ge307DQogICAgICAgICAgICBkYXRhWyJmaWxlcyJdW2RhdGFUeXBlXVtpZF0gPSBpbnB1dDsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJ4bWx0diI6DQogICAgICAgICAgICBjb25maXJtTXNnID0gIkRlbGV0ZSB0aGlzIFhNTFRWIGZpbGU/IjsNCiAgICAgICAgICAgIHN3aXRjaCAob3B0aW9uKSB7DQogICAgICAgICAgICAgICAgLy8gUG9wdXA6IFNhdmUNCiAgICAgICAgICAgICAgICBjYXNlIDA6DQogICAgICAgICAgICAgICAgICAgIGNtZCA9ICJzYXZlRmlsZXNYTUxUViI7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIC8vIFBvcHVwOiBVcGRhdGUNCiAgICAgICAgICAgICAgICBjYXNlIDE6DQogICAgICAgICAgICAgICAgICAgIGNtZCA9ICJ1cGRhdGVGaWxlWE1MVFYiOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGRhdGFbImZpbGVzIl0gPSB7fTsNCiAgICAgICAgICAgIGRhdGFbImZpbGVzIl1bZGF0YVR5cGVdID0ge307DQogICAgICAgICAgICBkYXRhWyJmaWxlcyJdW2RhdGFUeXBlXVtpZF0gPSBpbnB1dDsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJmaWx0ZXIiOg0KICAgICAgICAgICAgY29uZmlybU1zZyA9ICJEZWxldGUgdGhpcyBmaWx0ZXI/IjsNCiAgICAgICAgICAgIGNtZCA9ICJzYXZlRmlsdGVyIjsNCiAgICAgICAgICAgIGRhdGFbImZpbHRlciJdID0ge307DQogICAgICAgICAgICBkYXRhWyJmaWx0ZXIiXVtpZF0gPSBpbnB1dDsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBkZWZhdWx0Og0KICAgICAgICAgICAgY29uc29sZS5sb2coZGF0YVR5cGUsIGlkKTsNCiAgICAgICAgICAgIHJldHVybjsNCiAgICB9DQogICAgaWYgKHJlbW92ZSA9PSB0cnVlKSB7DQogICAgICAgIGlmICghY29uZmlybShjb25maXJtTXNnKSkgew0KICAgICAgICAgICAgc2hvd0VsZW1lbnQoInBvcHVwIiwgZmFsc2UpOw0KICAgICAgICAgICAgcmV0dXJuOw0KICAgICAgICB9DQogICAgfQ0KICAgIGNvbnNvbGUubG9nKCJTRU5EIFRPIFNFUlZFUiIpOw0KICAgIGNvbnNvbGUubG9nKGRhdGEpOw0KICAgIGxldCBzZXJ2ZXIgPSBuZXcgU2VydmVyKGNtZCk7DQogICAgc2VydmVyLnJlcXVlc3QoZGF0YSk7DQp9DQpmdW5jdGlvbiBkb25lUG9wdXBEYXRhKGRhdGFUeXBlLCBpZHNTdHIpIHsNCiAgICBsZXQgaWRzID0gaWRzU3RyLnNwbGl0KCcsJyk7DQogICAgbGV0IGRpdiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJwb3B1cC1jdXN0b20iKTsNCiAgICBsZXQgaW5wdXRzID0gZGl2LmdldEVsZW1lbnRzQnlDbGFzc05hbWUoImNoYW5nZWQiKTsNCiAgICBpZHMuZm9yRWFjaChpZCA9PiB7DQogICAgICAgIGxldCBpbnB1dDsNCiAgICAgICAgaW5wdXQgPSBTRVJWRVJbInhlcGciXVsiZXBnTWFwcGluZyJdW2lkXTsNCiAgICAgICAgY29uc29sZS5sb2coaW5wdXQpOw0KICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGlucHV0cy5sZW5ndGg7IGkrKykgew0KICAgICAgICAgICAgbGV0IG5hbWU7DQogICAgICAgICAgICBsZXQgdmFsdWU7DQogICAgICAgICAgICBzd2l0Y2ggKGlucHV0c1tpXS50YWdOYW1lKSB7DQogICAgICAgICAgICAgICAgY2FzZSAiSU5QVVQiOg0KICAgICAgICAgICAgICAgICAgICBzd2l0Y2ggKGlucHV0c1tpXS50eXBlKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBjYXNlICJjaGVja2JveCI6DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZSA9IGlucHV0c1tpXS5uYW1lOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlID0gaW5wdXRzW2ldLmNoZWNrZWQ7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5wdXRbbmFtZV0gPSB2YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgInRleHQiOg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWUgPSBpbnB1dHNbaV0ubmFtZTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IGlucHV0c1tpXS52YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnB1dFtuYW1lXSA9IHZhbHVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgIlNFTEVDVCI6DQogICAgICAgICAgICAgICAgICAgIG5hbWUgPSBpbnB1dHNbaV0ubmFtZTsNCiAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSBpbnB1dHNbaV0udmFsdWU7DQogICAgICAgICAgICAgICAgICAgIGlucHV0W25hbWVdID0gdmFsdWU7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgc3dpdGNoIChuYW1lKSB7DQogICAgICAgICAgICAgICAgY2FzZSAidHZnLWxvZ28iOg0KICAgICAgICAgICAgICAgICAgICAvLyhkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkuY2hpbGROb2Rlc1syXS5maXJzdENoaWxkIGFzIEhUTUxFbGVtZW50KS5zZXRBdHRyaWJ1dGUoInNyYyIsIHZhbHVlKQ0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBjYXNlICJ4LW5hbWUiOg0KICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkuY2hpbGROb2Rlc1szXS5maXJzdENoaWxkLmlubmVySFRNTCA9IHZhbHVlOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBjYXNlICJ4LWNhdGVnb3J5IjoNCiAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpLmNoaWxkTm9kZXNbM10uZmlyc3RDaGlsZC5jbGFzc05hbWUgPSB2YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAieC1ncm91cC10aXRsZSI6DQogICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5jaGlsZE5vZGVzWzVdLmZpcnN0Q2hpbGQuaW5uZXJIVE1MID0gdmFsdWU7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgIngteG1sdHYtZmlsZSI6DQogICAgICAgICAgICAgICAgICAgIGlmICh2YWx1ZSAhPSAieFRlVmUgRHVtbXkiICYmIHZhbHVlICE9ICItIikgew0KICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSBnZXRWYWx1ZUZyb21Qcm92aWRlckZpbGUodmFsdWUsICJ4bWx0diIsICJuYW1lIik7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgaWYgKHZhbHVlID09ICItIikgew0KICAgICAgICAgICAgICAgICAgICAgICAgaW5wdXRbIngtYWN0aXZlIl0gPSBmYWxzZTsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkuY2hpbGROb2Rlc1s2XS5maXJzdENoaWxkLmlubmVySFRNTCA9IHZhbHVlOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBjYXNlICJ4LW1hcHBpbmciOg0KICAgICAgICAgICAgICAgICAgICBpZiAodmFsdWUgPT0gIi0iKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBpbnB1dFsieC1hY3RpdmUiXSA9IGZhbHNlOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5jaGlsZE5vZGVzWzddLmZpcnN0Q2hpbGQuaW5uZXJIVE1MID0gdmFsdWU7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgIngtdGltZXNoaWZ0IjoNCiAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpLmNoaWxkTm9kZXNbOF0uZmlyc3RDaGlsZC5pbm5lckhUTUwgPSB2YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGNyZWF0ZVNlYXJjaE9iaigpOw0KICAgICAgICAgICAgc2VhcmNoSW5NYXBwaW5nKCk7DQogICAgICAgIH0NCiAgICAgICAgaWYgKGlucHV0WyJ4LWFjdGl2ZSJdID09IGZhbHNlKSB7DQogICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkuY2xhc3NOYW1lID0gIm5vdEFjdGl2ZUVQRyI7DQogICAgICAgIH0NCiAgICAgICAgZWxzZSB7DQogICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkuY2xhc3NOYW1lID0gImFjdGl2ZUVQRyI7DQogICAgICAgIH0NCiAgICAgICAgY29uc29sZS5sb2coaW5wdXRbInR2Zy1sb2dvIl0pOw0KICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkuY2hpbGROb2Rlc1syXS5maXJzdENoaWxkLnNldEF0dHJpYnV0ZSgic3JjIiwgaW5wdXRbInR2Zy1sb2dvIl0pOw0KICAgIH0pOw0KICAgIHNob3dFbGVtZW50KCJwb3B1cCIsIGZhbHNlKTsNCiAgICByZXR1cm47DQp9DQpmdW5jdGlvbiBzaG93UHJldmlldyhlbGVtZW50KSB7DQogICAgbGV0IGRpdiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJteVN0cmVhbXNCb3giKTsNCiAgICBzd2l0Y2ggKGVsZW1lbnQpIHsNCiAgICAgICAgY2FzZSBmYWxzZToNCiAgICAgICAgICAgIGRpdi5jbGFzc05hbWUgPSAibm90VmlzaWJsZSI7DQogICAgICAgICAgICByZXR1cm47DQogICAgfQ0KICAgIGxldCBzdHJlYW1zID0gWyJhY3RpdmVTdHJlYW1zIiwgImluYWN0aXZlU3RyZWFtcyJdOw0KICAgIHN0cmVhbXMuZm9yRWFjaChwcmV2aWV3ID0+IHsNCiAgICAgICAgbGV0IHRhYmxlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQocHJldmlldyk7DQogICAgICAgIHRhYmxlLmlubmVySFRNTCA9ICIiOw0KICAgICAgICBsZXQgb2JqID0gU0VSVkVSWyJkYXRhIl1bIlN0cmVhbVByZXZpZXdVSSJdW3ByZXZpZXddOw0KICAgICAgICBvYmouZm9yRWFjaChjaGFubmVsID0+IHsNCiAgICAgICAgICAgIGxldCB0ciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlRSIik7DQogICAgICAgICAgICBsZXQgdGRLZXkgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgbGV0IHRkVmFsID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgIHRkS2V5LmNsYXNzTmFtZSA9ICJ0ZEtleSI7DQogICAgICAgICAgICB0ZFZhbC5jbGFzc05hbWUgPSAidGRWYWwiOw0KICAgICAgICAgICAgc3dpdGNoIChwcmV2aWV3KSB7DQogICAgICAgICAgICAgICAgY2FzZSAiYWN0aXZlU3RyZWFtcyI6DQogICAgICAgICAgICAgICAgICAgIHRkS2V5LmlubmVyVGV4dCA9ICJDaGFubmVsOiAoKykiOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBjYXNlICJpbmFjdGl2ZVN0cmVhbXMiOg0KICAgICAgICAgICAgICAgICAgICB0ZEtleS5pbm5lclRleHQgPSAiQ2hhbm5lbDogKC0pIjsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICB9DQogICAgICAgICAgICB0ZFZhbC5pbm5lclRleHQgPSBjaGFubmVsOw0KICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQodGRLZXkpOw0KICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQodGRWYWwpOw0KICAgICAgICAgICAgdGFibGUuYXBwZW5kQ2hpbGQodHIpOw0KICAgICAgICB9KTsNCiAgICB9KTsNCiAgICBzaG93RWxlbWVudCgibG9hZGluZyIsIGZhbHNlKTsNCiAgICBkaXYuY2xhc3NOYW1lID0gInZpc2libGUiOw0KICAgIHJldHVybjsNCn0NCg==" - webUI["html/js/network_ts.js"] = "Y2xhc3MgU2VydmVyIHsNCiAgICBjb25zdHJ1Y3RvcihjbWQpIHsNCiAgICAgICAgdGhpcy5jbWQgPSBjbWQ7DQogICAgfQ0KICAgIHJlcXVlc3QoZGF0YSkgew0KICAgICAgICBpZiAoU0VSVkVSX0NPTk5FQ1RJT04gPT0gdHJ1ZSkgew0KICAgICAgICAgICAgcmV0dXJuOw0KICAgICAgICB9DQogICAgICAgIFNFUlZFUl9DT05ORUNUSU9OID0gdHJ1ZTsNCiAgICAgICAgY29uc29sZS5sb2coZGF0YSk7DQogICAgICAgIGlmICh0aGlzLmNtZCAhPSAidXBkYXRlTG9nIikgew0KICAgICAgICAgICAgc2hvd0VsZW1lbnQoImxvYWRpbmciLCB0cnVlKTsNCiAgICAgICAgICAgIFVORE8gPSBuZXcgT2JqZWN0KCk7DQogICAgICAgIH0NCiAgICAgICAgc3dpdGNoICh3aW5kb3cubG9jYXRpb24ucHJvdG9jb2wpIHsNCiAgICAgICAgICAgIGNhc2UgImh0dHA6IjoNCiAgICAgICAgICAgICAgICB0aGlzLnByb3RvY29sID0gIndzOi8vIjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImh0dHBzOiI6DQogICAgICAgICAgICAgICAgdGhpcy5wcm90b2NvbCA9ICJ3c3M6Ly8iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICB9DQogICAgICAgIHZhciB1cmwgPSB0aGlzLnByb3RvY29sICsgd2luZG93LmxvY2F0aW9uLmhvc3RuYW1lICsgIjoiICsgd2luZG93LmxvY2F0aW9uLnBvcnQgKyAiL2RhdGEvIiArICI/VG9rZW49IiArIGdldENvb2tpZSgiVG9rZW4iKTsNCiAgICAgICAgZGF0YVsiY21kIl0gPSB0aGlzLmNtZDsNCiAgICAgICAgdmFyIHdzID0gbmV3IFdlYlNvY2tldCh1cmwpOw0KICAgICAgICB3cy5vbm9wZW4gPSBmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICBXU19BVkFJTEFCTEUgPSB0cnVlOw0KICAgICAgICAgICAgY29uc29sZS5sb2coIlJFUVVFU1QgKEpTKToiKTsNCiAgICAgICAgICAgIGNvbnNvbGUubG9nKGRhdGEpOw0KICAgICAgICAgICAgY29uc29sZS5sb2coIlJFUVVFU1Q6IChKU09OKSIpOw0KICAgICAgICAgICAgY29uc29sZS5sb2coSlNPTi5zdHJpbmdpZnkoZGF0YSkpOw0KICAgICAgICAgICAgdGhpcy5zZW5kKEpTT04uc3RyaW5naWZ5KGRhdGEpKTsNCiAgICAgICAgfTsNCiAgICAgICAgd3Mub25lcnJvciA9IGZ1bmN0aW9uIChlKSB7DQogICAgICAgICAgICBjb25zb2xlLmxvZygiTm8gd2Vic29ja2V0IGNvbm5lY3Rpb24gdG8geFRlVmUgY291bGQgYmUgZXN0YWJsaXNoZWQuIENoZWNrIHlvdXIgbmV0d29yayBjb25maWd1cmF0aW9uLiIpOw0KICAgICAgICAgICAgU0VSVkVSX0NPTk5FQ1RJT04gPSBmYWxzZTsNCiAgICAgICAgICAgIGlmIChXU19BVkFJTEFCTEUgPT0gZmFsc2UpIHsNCiAgICAgICAgICAgICAgICBhbGVydCgiTm8gd2Vic29ja2V0IGNvbm5lY3Rpb24gdG8geFRlVmUgY291bGQgYmUgZXN0YWJsaXNoZWQuIENoZWNrIHlvdXIgbmV0d29yayBjb25maWd1cmF0aW9uLiIpOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9Ow0KICAgICAgICB3cy5vbm1lc3NhZ2UgPSBmdW5jdGlvbiAoZSkgew0KICAgICAgICAgICAgU0VSVkVSX0NPTk5FQ1RJT04gPSBmYWxzZTsNCiAgICAgICAgICAgIHNob3dFbGVtZW50KCJsb2FkaW5nIiwgZmFsc2UpOw0KICAgICAgICAgICAgY29uc29sZS5sb2coIlJFU1BPTlNFOiIpOw0KICAgICAgICAgICAgdmFyIHJlc3BvbnNlID0gSlNPTi5wYXJzZShlLmRhdGEpOw0KICAgICAgICAgICAgY29uc29sZS5sb2cocmVzcG9uc2UpOw0KICAgICAgICAgICAgaWYgKHJlc3BvbnNlLmhhc093blByb3BlcnR5KCJ0b2tlbiIpKSB7DQogICAgICAgICAgICAgICAgZG9jdW1lbnQuY29va2llID0gIlRva2VuPSIgKyByZXNwb25zZVsidG9rZW4iXTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGlmIChyZXNwb25zZVsic3RhdHVzIl0gPT0gZmFsc2UpIHsNCiAgICAgICAgICAgICAgICBhbGVydChyZXNwb25zZVsiZXJyIl0pOw0KICAgICAgICAgICAgICAgIGlmIChyZXNwb25zZS5oYXNPd25Qcm9wZXJ0eSgicmVsb2FkIikpIHsNCiAgICAgICAgICAgICAgICAgICAgbG9jYXRpb24ucmVsb2FkKCk7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIHJldHVybjsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGlmIChyZXNwb25zZS5oYXNPd25Qcm9wZXJ0eSgibG9nb1VSTCIpKSB7DQogICAgICAgICAgICAgICAgdmFyIGRpdiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjaGFubmVsLWljb24iKTsNCiAgICAgICAgICAgICAgICBkaXYudmFsdWUgPSByZXNwb25zZVsibG9nb1VSTCJdOw0KICAgICAgICAgICAgICAgIGRpdi5jbGFzc05hbWUgPSAiY2hhbmdlZCI7DQogICAgICAgICAgICAgICAgcmV0dXJuOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgc3dpdGNoIChkYXRhWyJjbWQiXSkgew0KICAgICAgICAgICAgICAgIGNhc2UgInVwZGF0ZUxvZyI6DQogICAgICAgICAgICAgICAgICAgIFNFUlZFUlsibG9nIl0gPSByZXNwb25zZVsibG9nIl07DQogICAgICAgICAgICAgICAgICAgIGlmIChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29udGVudF9sb2ciKSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgc2hvd0xvZ3MoZmFsc2UpOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIHJldHVybjsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgICAgICAgICAgU0VSVkVSID0gbmV3IE9iamVjdCgpOw0KICAgICAgICAgICAgICAgICAgICBTRVJWRVIgPSByZXNwb25zZTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBpZiAocmVzcG9uc2UuaGFzT3duUHJvcGVydHkoIm9wZW5NZW51IikpIHsNCiAgICAgICAgICAgICAgICB2YXIgbWVudSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHJlc3BvbnNlWyJvcGVuTWVudSJdKTsNCiAgICAgICAgICAgICAgICBtZW51LmNsaWNrKCk7DQogICAgICAgICAgICAgICAgc2hvd0VsZW1lbnQoInBvcHVwIiwgZmFsc2UpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgaWYgKHJlc3BvbnNlLmhhc093blByb3BlcnR5KCJvcGVuTGluayIpKSB7DQogICAgICAgICAgICAgICAgd2luZG93LmxvY2F0aW9uID0gcmVzcG9uc2VbIm9wZW5MaW5rIl07DQogICAgICAgICAgICB9DQogICAgICAgICAgICBpZiAocmVzcG9uc2UuaGFzT3duUHJvcGVydHkoImFsZXJ0IikpIHsNCiAgICAgICAgICAgICAgICBhbGVydChyZXNwb25zZVsiYWxlcnQiXSk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBpZiAocmVzcG9uc2UuaGFzT3duUHJvcGVydHkoInJlbG9hZCIpKSB7DQogICAgICAgICAgICAgICAgbG9jYXRpb24ucmVsb2FkKCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBpZiAocmVzcG9uc2UuaGFzT3duUHJvcGVydHkoIndpemFyZCIpKSB7DQogICAgICAgICAgICAgICAgY3JlYXRlTGF5b3V0KCk7DQogICAgICAgICAgICAgICAgY29uZmlndXJhdGlvbldpemFyZFtyZXNwb25zZVsid2l6YXJkIl1dLmNyZWF0ZVdpemFyZCgpOw0KICAgICAgICAgICAgICAgIHJldHVybjsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGNyZWF0ZUxheW91dCgpOw0KICAgICAgICB9Ow0KICAgIH0NCn0NCmZ1bmN0aW9uIGdldENvb2tpZShuYW1lKSB7DQogICAgdmFyIHZhbHVlID0gIjsgIiArIGRvY3VtZW50LmNvb2tpZTsNCiAgICB2YXIgcGFydHMgPSB2YWx1ZS5zcGxpdCgiOyAiICsgbmFtZSArICI9Iik7DQogICAgaWYgKHBhcnRzLmxlbmd0aCA9PSAyKQ0KICAgICAgICByZXR1cm4gcGFydHMucG9wKCkuc3BsaXQoIjsiKS5zaGlmdCgpOw0KfQ0K" + webUI["html/js/network_ts.js"] = "Y2xhc3MgU2VydmVyIHsNCiAgICBjb25zdHJ1Y3RvcihjbWQpIHsNCiAgICAgICAgdGhpcy5jbWQgPSBjbWQ7DQogICAgfQ0KICAgIHJlcXVlc3QoZGF0YSkgew0KICAgICAgICBpZiAoU0VSVkVSX0NPTk5FQ1RJT04gPT0gdHJ1ZSkgew0KICAgICAgICAgICAgcmV0dXJuOw0KICAgICAgICB9DQogICAgICAgIFNFUlZFUl9DT05ORUNUSU9OID0gdHJ1ZTsNCiAgICAgICAgY29uc29sZS5sb2coZGF0YSk7DQogICAgICAgIGlmICh0aGlzLmNtZCAhPSAidXBkYXRlTG9nIikgew0KICAgICAgICAgICAgc2hvd0VsZW1lbnQoImxvYWRpbmciLCB0cnVlKTsNCiAgICAgICAgICAgIFVORE8gPSBuZXcgT2JqZWN0KCk7DQogICAgICAgIH0NCiAgICAgICAgc3dpdGNoICh3aW5kb3cubG9jYXRpb24ucHJvdG9jb2wpIHsNCiAgICAgICAgICAgIGNhc2UgImh0dHA6IjoNCiAgICAgICAgICAgICAgICB0aGlzLnByb3RvY29sID0gIndzOi8vIjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImh0dHBzOiI6DQogICAgICAgICAgICAgICAgdGhpcy5wcm90b2NvbCA9ICJ3c3M6Ly8iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICB9DQogICAgICAgIHZhciB1cmwgPSB0aGlzLnByb3RvY29sICsgd2luZG93LmxvY2F0aW9uLmhvc3RuYW1lICsgIjoiICsgd2luZG93LmxvY2F0aW9uLnBvcnQgKyAiL2RhdGEvIiArICI/VG9rZW49IiArIGdldENvb2tpZSgiVG9rZW4iKTsNCiAgICAgICAgZGF0YVsiY21kIl0gPSB0aGlzLmNtZDsNCiAgICAgICAgdmFyIHdzID0gbmV3IFdlYlNvY2tldCh1cmwpOw0KICAgICAgICB3cy5vbm9wZW4gPSBmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICBXU19BVkFJTEFCTEUgPSB0cnVlOw0KICAgICAgICAgICAgY29uc29sZS5sb2coIlJFUVVFU1QgKEpTKToiKTsNCiAgICAgICAgICAgIGNvbnNvbGUubG9nKGRhdGEpOw0KICAgICAgICAgICAgY29uc29sZS5sb2coIlJFUVVFU1Q6IChKU09OKSIpOw0KICAgICAgICAgICAgY29uc29sZS5sb2coSlNPTi5zdHJpbmdpZnkoZGF0YSkpOw0KICAgICAgICAgICAgdGhpcy5zZW5kKEpTT04uc3RyaW5naWZ5KGRhdGEpKTsNCiAgICAgICAgfTsNCiAgICAgICAgd3Mub25lcnJvciA9IGZ1bmN0aW9uIChlKSB7DQogICAgICAgICAgICBjb25zb2xlLmxvZygiTm8gd2Vic29ja2V0IGNvbm5lY3Rpb24gdG8geFRlVmUgY291bGQgYmUgZXN0YWJsaXNoZWQuIENoZWNrIHlvdXIgbmV0d29yayBjb25maWd1cmF0aW9uLiIpOw0KICAgICAgICAgICAgU0VSVkVSX0NPTk5FQ1RJT04gPSBmYWxzZTsNCiAgICAgICAgICAgIGlmIChXU19BVkFJTEFCTEUgPT0gZmFsc2UpIHsNCiAgICAgICAgICAgICAgICBhbGVydCgiTm8gd2Vic29ja2V0IGNvbm5lY3Rpb24gdG8geFRlVmUgY291bGQgYmUgZXN0YWJsaXNoZWQuIENoZWNrIHlvdXIgbmV0d29yayBjb25maWd1cmF0aW9uLiIpOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9Ow0KICAgICAgICB3cy5vbm1lc3NhZ2UgPSBmdW5jdGlvbiAoZSkgew0KICAgICAgICAgICAgU0VSVkVSX0NPTk5FQ1RJT04gPSBmYWxzZTsNCiAgICAgICAgICAgIHNob3dFbGVtZW50KCJsb2FkaW5nIiwgZmFsc2UpOw0KICAgICAgICAgICAgY29uc29sZS5sb2coIlJFU1BPTlNFOiIpOw0KICAgICAgICAgICAgdmFyIHJlc3BvbnNlID0gSlNPTi5wYXJzZShlLmRhdGEpOw0KICAgICAgICAgICAgY29uc29sZS5sb2cocmVzcG9uc2UpOw0KICAgICAgICAgICAgaWYgKHJlc3BvbnNlLmhhc093blByb3BlcnR5KCJ0b2tlbiIpKSB7DQogICAgICAgICAgICAgICAgZG9jdW1lbnQuY29va2llID0gIlRva2VuPSIgKyByZXNwb25zZVsidG9rZW4iXTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGlmIChyZXNwb25zZVsic3RhdHVzIl0gPT0gZmFsc2UpIHsNCiAgICAgICAgICAgICAgICBhbGVydChyZXNwb25zZVsiZXJyIl0pOw0KICAgICAgICAgICAgICAgIGlmIChyZXNwb25zZS5oYXNPd25Qcm9wZXJ0eSgicmVsb2FkIikpIHsNCiAgICAgICAgICAgICAgICAgICAgbG9jYXRpb24ucmVsb2FkKCk7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIHJldHVybjsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGlmIChyZXNwb25zZS5oYXNPd25Qcm9wZXJ0eSgiYWxlcnQiKSkgew0KICAgICAgICAgICAgICAgIGFsZXJ0KHJlc3BvbnNlWyJhbGVydCJdKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGlmIChyZXNwb25zZS5oYXNPd25Qcm9wZXJ0eSgibG9nb1VSTCIpKSB7DQogICAgICAgICAgICAgICAgdmFyIGRpdiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjaGFubmVsLWljb24iKTsNCiAgICAgICAgICAgICAgICBkaXYudmFsdWUgPSByZXNwb25zZVsibG9nb1VSTCJdOw0KICAgICAgICAgICAgICAgIGRpdi5jbGFzc05hbWUgPSAiY2hhbmdlZCI7DQogICAgICAgICAgICAgICAgcmV0dXJuOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgc3dpdGNoIChkYXRhWyJjbWQiXSkgew0KICAgICAgICAgICAgICAgIGNhc2UgInVwZGF0ZUxvZyI6DQogICAgICAgICAgICAgICAgICAgIFNFUlZFUlsibG9nIl0gPSByZXNwb25zZVsibG9nIl07DQogICAgICAgICAgICAgICAgICAgIGlmIChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29udGVudF9sb2ciKSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgc2hvd0xvZ3MoZmFsc2UpOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIHJldHVybjsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgICAgICAgICAgU0VSVkVSID0gbmV3IE9iamVjdCgpOw0KICAgICAgICAgICAgICAgICAgICBTRVJWRVIgPSByZXNwb25zZTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBpZiAocmVzcG9uc2UuaGFzT3duUHJvcGVydHkoIm9wZW5NZW51IikpIHsNCiAgICAgICAgICAgICAgICB2YXIgbWVudSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHJlc3BvbnNlWyJvcGVuTWVudSJdKTsNCiAgICAgICAgICAgICAgICBtZW51LmNsaWNrKCk7DQogICAgICAgICAgICAgICAgc2hvd0VsZW1lbnQoInBvcHVwIiwgZmFsc2UpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgaWYgKHJlc3BvbnNlLmhhc093blByb3BlcnR5KCJvcGVuTGluayIpKSB7DQogICAgICAgICAgICAgICAgd2luZG93LmxvY2F0aW9uID0gcmVzcG9uc2VbIm9wZW5MaW5rIl07DQogICAgICAgICAgICB9DQogICAgICAgICAgICBpZiAocmVzcG9uc2UuaGFzT3duUHJvcGVydHkoInJlbG9hZCIpKSB7DQogICAgICAgICAgICAgICAgbG9jYXRpb24ucmVsb2FkKCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBpZiAocmVzcG9uc2UuaGFzT3duUHJvcGVydHkoIndpemFyZCIpKSB7DQogICAgICAgICAgICAgICAgY3JlYXRlTGF5b3V0KCk7DQogICAgICAgICAgICAgICAgY29uZmlndXJhdGlvbldpemFyZFtyZXNwb25zZVsid2l6YXJkIl1dLmNyZWF0ZVdpemFyZCgpOw0KICAgICAgICAgICAgICAgIHJldHVybjsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGNyZWF0ZUxheW91dCgpOw0KICAgICAgICB9Ow0KICAgIH0NCn0NCmZ1bmN0aW9uIGdldENvb2tpZShuYW1lKSB7DQogICAgdmFyIHZhbHVlID0gIjsgIiArIGRvY3VtZW50LmNvb2tpZTsNCiAgICB2YXIgcGFydHMgPSB2YWx1ZS5zcGxpdCgiOyAiICsgbmFtZSArICI9Iik7DQogICAgaWYgKHBhcnRzLmxlbmd0aCA9PSAyKQ0KICAgICAgICByZXR1cm4gcGFydHMucG9wKCkuc3BsaXQoIjsiKS5zaGlmdCgpOw0KfQ0K" webUI["html/js/settings_ts.js"] = "Y2xhc3MgU2V0dGluZ3NDYXRlZ29yeSB7DQogICAgY29uc3RydWN0b3IoKSB7DQogICAgICAgIHRoaXMuRG9jdW1lbnRJRCA9ICJjb250ZW50X3NldHRpbmdzIjsNCiAgICB9DQogICAgY3JlYXRlQ2F0ZWdvcnlIZWFkbGluZSh2YWx1ZSkgew0KICAgICAgICB2YXIgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIkg0Iik7DQogICAgICAgIGVsZW1lbnQuaW5uZXJIVE1MID0gdmFsdWU7DQogICAgICAgIHJldHVybiBlbGVtZW50Ow0KICAgIH0NCiAgICBjcmVhdGVIUigpIHsNCiAgICAgICAgdmFyIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJIUiIpOw0KICAgICAgICByZXR1cm4gZWxlbWVudDsNCiAgICB9DQogICAgY3JlYXRlU2V0dGluZ3Moc2V0dGluZ3NLZXkpIHsNCiAgICAgICAgdmFyIHNldHRpbmcgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJUUiIpOw0KICAgICAgICB2YXIgY29udGVudCA9IG5ldyBQb3B1cENvbnRlbnQoKTsNCiAgICAgICAgdmFyIGRhdGEgPSBTRVJWRVJbInNldHRpbmdzIl1bc2V0dGluZ3NLZXldOw0KICAgICAgICBzd2l0Y2ggKHNldHRpbmdzS2V5KSB7DQogICAgICAgICAgICAvLyBUZXh0IGlucHV0cw0KICAgICAgICAgICAgY2FzZSAidXBkYXRlIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLnVwZGF0ZS50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsICJ1cGRhdGUiLCBkYXRhLnRvU3RyaW5nKCkpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3suc2V0dGluZ3MudXBkYXRlLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJiYWNrdXAucGF0aCI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5iYWNrdXBQYXRoLnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgImJhY2t1cC5wYXRoIiwgZGF0YSk7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5zZXR0aW5ncy5iYWNrdXBQYXRoLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ0ZW1wLnBhdGgiOg0KICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MudGVtcFBhdGgudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCAidGVtcC5wYXRoIiwgZGF0YSk7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5zZXR0aW5ncy50bXBQYXRoLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ1c2VyLmFnZW50IjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLnVzZXJBZ2VudC50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsICJ1c2VyLmFnZW50IiwgZGF0YSk7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5zZXR0aW5ncy51c2VyQWdlbnQucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImJ1ZmZlci50aW1lb3V0IjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmJ1ZmZlclRpbWVvdXQudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCAiYnVmZmVyLnRpbWVvdXQiLCBkYXRhKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnNldHRpbmdzLmJ1ZmZlclRpbWVvdXQucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImZmbXBlZy5wYXRoIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmZmbXBlZ1BhdGgudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCAiZmZtcGVnLnBhdGgiLCBkYXRhKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnNldHRpbmdzLmZmbXBlZ1BhdGgucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImZmbXBlZy5vcHRpb25zIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmZmbXBlZ09wdGlvbnMudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCAiZmZtcGVnLm9wdGlvbnMiLCBkYXRhKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnNldHRpbmdzLmZmbXBlZ09wdGlvbnMucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInZsYy5wYXRoIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLnZsY1BhdGgudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCAidmxjLnBhdGgiLCBkYXRhKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnNldHRpbmdzLnZsY1BhdGgucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInZsYy5vcHRpb25zIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLnZsY09wdGlvbnMudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCAidmxjLm9wdGlvbnMiLCBkYXRhKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnNldHRpbmdzLnZsY09wdGlvbnMucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIC8vIENoZWNrYm94ZXMNCiAgICAgICAgICAgIGNhc2UgImF1dGhlbnRpY2F0aW9uLndlYiI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5hdXRoZW50aWNhdGlvbldFQi50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChzZXR0aW5nc0tleSk7DQogICAgICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGE7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiYXV0aGVudGljYXRpb24ucG1zIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmF1dGhlbnRpY2F0aW9uUE1TLnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KHNldHRpbmdzS2V5KTsNCiAgICAgICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJhdXRoZW50aWNhdGlvbi5tM3UiOg0KICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MuYXV0aGVudGljYXRpb25NM1UudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goc2V0dGluZ3NLZXkpOw0KICAgICAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImF1dGhlbnRpY2F0aW9uLnhtbCI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5hdXRoZW50aWNhdGlvblhNTC50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChzZXR0aW5nc0tleSk7DQogICAgICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGE7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiYXV0aGVudGljYXRpb24uYXBpIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmF1dGhlbnRpY2F0aW9uQVBJLnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KHNldHRpbmdzS2V5KTsNCiAgICAgICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJmaWxlcy51cGRhdGUiOg0KICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MuZmlsZXNVcGRhdGUudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goc2V0dGluZ3NLZXkpOw0KICAgICAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImNhY2hlLmltYWdlcyI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5jYWNoZUltYWdlcy50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChzZXR0aW5nc0tleSk7DQogICAgICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGE7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAieGVwZy5yZXBsYWNlLm1pc3NpbmcuaW1hZ2VzIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLnJlcGxhY2VFbXB0eUltYWdlcy50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChzZXR0aW5nc0tleSk7DQogICAgICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGE7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAieHRldmVBdXRvVXBkYXRlIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLnh0ZXZlQXV0b1VwZGF0ZS50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChzZXR0aW5nc0tleSk7DQogICAgICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGE7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiYXBpIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmFwaS50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChzZXR0aW5nc0tleSk7DQogICAgICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGE7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgLy8gU2VsZWN0DQogICAgICAgICAgICBjYXNlICJ0dW5lciI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy50dW5lci50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIHRleHQgPSBuZXcgQXJyYXkoKTsNCiAgICAgICAgICAgICAgICB2YXIgdmFsdWVzID0gbmV3IEFycmF5KCk7DQogICAgICAgICAgICAgICAgZm9yICh2YXIgaSA9IDE7IGkgPD0gMTAwOyBpKyspIHsNCiAgICAgICAgICAgICAgICAgICAgdGV4dC5wdXNoKGkpOw0KICAgICAgICAgICAgICAgICAgICB2YWx1ZXMucHVzaChpKTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgdmFyIHNlbGVjdCA9IGNvbnRlbnQuY3JlYXRlU2VsZWN0KHRleHQsIHZhbHVlcywgZGF0YSwgc2V0dGluZ3NLZXkpOw0KICAgICAgICAgICAgICAgIHNlbGVjdC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChzZWxlY3QpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiZXBnU291cmNlIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmVwZ1NvdXJjZS50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIHRleHQgPSBbIlBNUyIsICJYRVBHIl07DQogICAgICAgICAgICAgICAgdmFyIHZhbHVlcyA9IFsiUE1TIiwgIlhFUEciXTsNCiAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCBkYXRhLCBzZXR0aW5nc0tleSk7DQogICAgICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKHNlbGVjdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJiYWNrdXAua2VlcCI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5iYWNrdXBLZWVwLnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgdGV4dCA9IFsiNSIsICIxMCIsICIyMCIsICIzMCIsICI0MCIsICI1MCJdOw0KICAgICAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBbIjUiLCAiMTAiLCAiMjAiLCAiMzAiLCAiNDAiLCAiNTAiXTsNCiAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCBkYXRhLCBzZXR0aW5nc0tleSk7DQogICAgICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKHNlbGVjdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJidWZmZXIuc2l6ZS5rYiI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5idWZmZXJTaXplLnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgdGV4dCA9IFsiMC41IE1CIiwgIjEgTUIiLCAiMiBNQiIsICIzIE1CIiwgIjQgTUIiLCAiNSBNQiIsICI2IE1CIiwgIjcgTUIiLCAiOCBNQiJdOw0KICAgICAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBbIjUxMiIsICIxMDI0IiwgIjIwNDgiLCAiMzA3MiIsICI0MDk2IiwgIjUxMjAiLCAiNjE0NCIsICI3MTY4IiwgIjgxOTIiXTsNCiAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCBkYXRhLCBzZXR0aW5nc0tleSk7DQogICAgICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKHNlbGVjdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJidWZmZXIiOg0KICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3Muc3RyZWFtQnVmZmVyaW5nLnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgdGV4dCA9IFsie3suc2V0dGluZ3Muc3RyZWFtQnVmZmVyaW5nLmluZm9fZmFsc2V9fSIsICJ4VGVWZTogKHt7LnNldHRpbmdzLnN0cmVhbUJ1ZmZlcmluZy5pbmZvX3h0ZXZlfX0pIiwgIkZGbXBlZzogKHt7LnNldHRpbmdzLnN0cmVhbUJ1ZmZlcmluZy5pbmZvX2ZmbXBlZ319KSIsICJWTEM6ICh7ey5zZXR0aW5ncy5zdHJlYW1CdWZmZXJpbmcuaW5mb192bGN9fSkiXTsNCiAgICAgICAgICAgICAgICB2YXIgdmFsdWVzID0gWyItIiwgInh0ZXZlIiwgImZmbXBlZyIsICJ2bGMiXTsNCiAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCBkYXRhLCBzZXR0aW5nc0tleSk7DQogICAgICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKHNlbGVjdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ1ZHB4eSI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy51ZHB4eS50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsICJ1ZHB4eSIsIGRhdGEpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3suc2V0dGluZ3MudWRweHkucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgfQ0KICAgICAgICByZXR1cm4gc2V0dGluZzsNCiAgICB9DQogICAgY3JlYXRlRGVzY3JpcHRpb24oc2V0dGluZ3NLZXkpIHsNCiAgICAgICAgdmFyIGRlc2NyaXB0aW9uID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVFIiKTsNCiAgICAgICAgdmFyIHRleHQ7DQogICAgICAgIHN3aXRjaCAoc2V0dGluZ3NLZXkpIHsNCiAgICAgICAgICAgIGNhc2UgImF1dGhlbnRpY2F0aW9uLndlYiI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5hdXRoZW50aWNhdGlvbldFQi5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImF1dGhlbnRpY2F0aW9uLm0zdSI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5hdXRoZW50aWNhdGlvbk0zVS5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImF1dGhlbnRpY2F0aW9uLnBtcyI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5hdXRoZW50aWNhdGlvblBNUy5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImF1dGhlbnRpY2F0aW9uLnhtbCI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5hdXRoZW50aWNhdGlvblhNTC5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImF1dGhlbnRpY2F0aW9uLmFwaSI6DQogICAgICAgICAgICAgICAgaWYgKFNFUlZFUlsic2V0dGluZ3MiXVsiYXV0aGVudGljYXRpb24ud2ViIl0gPT0gdHJ1ZSkgew0KICAgICAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLmF1dGhlbnRpY2F0aW9uQVBJLmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInh0ZXZlQXV0b1VwZGF0ZSI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy54dGV2ZUF1dG9VcGRhdGUuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJiYWNrdXAua2VlcCI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5iYWNrdXBLZWVwLmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiYmFja3VwLnBhdGgiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MuYmFja3VwUGF0aC5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInRlbXAucGF0aCI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy50ZW1wUGF0aC5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImJ1ZmZlciI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5zdHJlYW1CdWZmZXJpbmcuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJidWZmZXIuc2l6ZS5rYiI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5idWZmZXJTaXplLmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiYnVmZmVyLnRpbWVvdXQiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MuYnVmZmVyVGltZW91dC5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInVzZXIuYWdlbnQiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MudXNlckFnZW50LmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiZmZtcGVnLnBhdGgiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MuZmZtcGVnUGF0aC5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImZmbXBlZy5vcHRpb25zIjoNCiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLmZmbXBlZ09wdGlvbnMuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ2bGMucGF0aCI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy52bGNQYXRoLmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAidmxjLm9wdGlvbnMiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MudmxjT3B0aW9ucy5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImVwZ1NvdXJjZSI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5lcGdTb3VyY2UuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ0dW5lciI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy50dW5lci5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInVwZGF0ZSI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy51cGRhdGUuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJhcGkiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MuYXBpLmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiZmlsZXMudXBkYXRlIjoNCiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLmZpbGVzVXBkYXRlLmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiY2FjaGUuaW1hZ2VzIjoNCiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLmNhY2hlSW1hZ2VzLmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAieGVwZy5yZXBsYWNlLm1pc3NpbmcuaW1hZ2VzIjoNCiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLnJlcGxhY2VFbXB0eUltYWdlcy5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInVkcHh5IjoNCiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLnVkcHh5LmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgICAgICB0ZXh0ID0gIiI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIH0NCiAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAiIjsNCiAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICB2YXIgcHJlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiUFJFIik7DQogICAgICAgIHByZS5pbm5lckhUTUwgPSB0ZXh0Ow0KICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKHByZSk7DQogICAgICAgIGRlc2NyaXB0aW9uLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgIGRlc2NyaXB0aW9uLmFwcGVuZENoaWxkKHRkUmlnaHQpOw0KICAgICAgICByZXR1cm4gZGVzY3JpcHRpb247DQogICAgfQ0KfQ0KY2xhc3MgU2V0dGluZ3NDYXRlZ29yeUl0ZW0gZXh0ZW5kcyBTZXR0aW5nc0NhdGVnb3J5IHsNCiAgICBjb25zdHJ1Y3RvcihoZWFkbGluZSwgc2V0dGluZ3NLZXlzKSB7DQogICAgICAgIHN1cGVyKCk7DQogICAgICAgIHRoaXMuaGVhZGxpbmUgPSBoZWFkbGluZTsNCiAgICAgICAgdGhpcy5zZXR0aW5nc0tleXMgPSBzZXR0aW5nc0tleXM7DQogICAgfQ0KICAgIGNyZWF0ZUNhdGVnb3J5KCkgew0KICAgICAgICB2YXIgaGVhZGxpbmUgPSB0aGlzLmNyZWF0ZUNhdGVnb3J5SGVhZGxpbmUodGhpcy5oZWFkbGluZSk7DQogICAgICAgIHZhciBzZXR0aW5nc0tleXMgPSB0aGlzLnNldHRpbmdzS2V5czsNCiAgICAgICAgdmFyIGRvYyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHRoaXMuRG9jdW1lbnRJRCk7DQogICAgICAgIGRvYy5hcHBlbmRDaGlsZChoZWFkbGluZSk7DQogICAgICAgIC8vIENyZWF0ZSBhIHRhYmxlIGZvciB0aGUgY2F0ZWdvcnkNCiAgICAgICAgdmFyIHRhYmxlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEFCTEUiKTsNCiAgICAgICAgdmFyIGtleXMgPSBzZXR0aW5nc0tleXMuc3BsaXQoIiwiKTsNCiAgICAgICAga2V5cy5mb3JFYWNoKHNldHRpbmdzS2V5ID0+IHsNCiAgICAgICAgICAgIHN3aXRjaCAoc2V0dGluZ3NLZXkpIHsNCiAgICAgICAgICAgICAgICBjYXNlICJhdXRoZW50aWNhdGlvbi5wbXMiOg0KICAgICAgICAgICAgICAgIGNhc2UgImF1dGhlbnRpY2F0aW9uLm0zdSI6DQogICAgICAgICAgICAgICAgY2FzZSAiYXV0aGVudGljYXRpb24ueG1sIjoNCiAgICAgICAgICAgICAgICBjYXNlICJhdXRoZW50aWNhdGlvbi5hcGkiOg0KICAgICAgICAgICAgICAgICAgICBpZiAoU0VSVkVSWyJzZXR0aW5ncyJdWyJhdXRoZW50aWNhdGlvbi53ZWIiXSA9PSBmYWxzZSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBkZWZhdWx0Og0KICAgICAgICAgICAgICAgICAgICB2YXIgaXRlbSA9IHRoaXMuY3JlYXRlU2V0dGluZ3Moc2V0dGluZ3NLZXkpOw0KICAgICAgICAgICAgICAgICAgICB2YXIgZGVzY3JpcHRpb24gPSB0aGlzLmNyZWF0ZURlc2NyaXB0aW9uKHNldHRpbmdzS2V5KTsNCiAgICAgICAgICAgICAgICAgICAgdGFibGUuYXBwZW5kQ2hpbGQoaXRlbSk7DQogICAgICAgICAgICAgICAgICAgIHRhYmxlLmFwcGVuZENoaWxkKGRlc2NyaXB0aW9uKTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICB9DQogICAgICAgIH0pOw0KICAgICAgICBkb2MuYXBwZW5kQ2hpbGQodGFibGUpOw0KICAgICAgICBkb2MuYXBwZW5kQ2hpbGQodGhpcy5jcmVhdGVIUigpKTsNCiAgICB9DQp9DQpmdW5jdGlvbiBzaG93U2V0dGluZ3MoKSB7DQogICAgY29uc29sZS5sb2coIlNFVFRJTkdTIik7DQogICAgZm9yIChsZXQgaSA9IDA7IGkgPCBzZXR0aW5nc0NhdGVnb3J5Lmxlbmd0aDsgaSsrKSB7DQogICAgICAgIHNldHRpbmdzQ2F0ZWdvcnlbaV0uY3JlYXRlQ2F0ZWdvcnkoKTsNCiAgICB9DQp9DQpmdW5jdGlvbiBzYXZlU2V0dGluZ3MoKSB7DQogICAgY29uc29sZS5sb2coIlNhdmUgU2V0dGluZ3MiKTsNCiAgICB2YXIgY21kID0gInNhdmVTZXR0aW5ncyI7DQogICAgdmFyIGRpdiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb250ZW50X3NldHRpbmdzIik7DQogICAgdmFyIHNldHRpbmdzID0gZGl2LmdldEVsZW1lbnRzQnlDbGFzc05hbWUoImNoYW5nZWQiKTsNCiAgICB2YXIgbmV3U2V0dGluZ3MgPSBuZXcgT2JqZWN0KCk7DQogICAgZm9yIChsZXQgaSA9IDA7IGkgPCBzZXR0aW5ncy5sZW5ndGg7IGkrKykgew0KICAgICAgICB2YXIgbmFtZTsNCiAgICAgICAgdmFyIHZhbHVlOw0KICAgICAgICBzd2l0Y2ggKHNldHRpbmdzW2ldLnRhZ05hbWUpIHsNCiAgICAgICAgICAgIGNhc2UgIklOUFVUIjoNCiAgICAgICAgICAgICAgICBzd2l0Y2ggKHNldHRpbmdzW2ldLnR5cGUpIHsNCiAgICAgICAgICAgICAgICAgICAgY2FzZSAiY2hlY2tib3giOg0KICAgICAgICAgICAgICAgICAgICAgICAgbmFtZSA9IHNldHRpbmdzW2ldLm5hbWU7DQogICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IHNldHRpbmdzW2ldLmNoZWNrZWQ7DQogICAgICAgICAgICAgICAgICAgICAgICBuZXdTZXR0aW5nc1tuYW1lXSA9IHZhbHVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgICAgIGNhc2UgInRleHQiOg0KICAgICAgICAgICAgICAgICAgICAgICAgbmFtZSA9IHNldHRpbmdzW2ldLm5hbWU7DQogICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IHNldHRpbmdzW2ldLnZhbHVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgc3dpdGNoIChuYW1lKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAidXBkYXRlIjoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSB2YWx1ZS5zcGxpdCgiLCIpOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IHZhbHVlLmZpbHRlcihmdW5jdGlvbiAoZSkgeyByZXR1cm4gZTsgfSk7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgImJ1ZmZlci50aW1lb3V0IjoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSBwYXJzZUZsb2F0KHZhbHVlKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgIG5ld1NldHRpbmdzW25hbWVdID0gdmFsdWU7DQogICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJTRUxFQ1QiOg0KICAgICAgICAgICAgICAgIG5hbWUgPSBzZXR0aW5nc1tpXS5uYW1lOw0KICAgICAgICAgICAgICAgIHZhbHVlID0gc2V0dGluZ3NbaV0udmFsdWU7DQogICAgICAgICAgICAgICAgLy8gSWYgdGhlIHZhbHVlIGlzIGEgbnVtYmVyLCBzdG9yZSBpdCBhcyBhIG51bWJlcg0KICAgICAgICAgICAgICAgIGlmIChpc05hTih2YWx1ZSkpIHsNCiAgICAgICAgICAgICAgICAgICAgbmV3U2V0dGluZ3NbbmFtZV0gPSB2YWx1ZTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgZWxzZSB7DQogICAgICAgICAgICAgICAgICAgIG5ld1NldHRpbmdzW25hbWVdID0gcGFyc2VJbnQodmFsdWUpOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgfQ0KICAgIH0NCiAgICB2YXIgZGF0YSA9IG5ldyBPYmplY3QoKTsNCiAgICBkYXRhWyJzZXR0aW5ncyJdID0gbmV3U2V0dGluZ3M7DQogICAgdmFyIHNlcnZlciA9IG5ldyBTZXJ2ZXIoY21kKTsNCiAgICBzZXJ2ZXIucmVxdWVzdChkYXRhKTsNCn0NCg==" webUI["html/lang/en.json"] = "ew0KICAibWFpbk1lbnUiOg0KICB7DQogICAgIml0ZW0iOg0KICAgIHsNCiAgICAgICJwbGF5bGlzdCI6ICJQbGF5bGlzdCIsDQogICAgICAicG1zSUQiOiAiUE1TIElEIiwNCiAgICAgICJmaWx0ZXIiOiAiRmlsdGVyIiwNCiAgICAgICJ4bWx0diI6ICJYTUxUViIsDQogICAgICAibWFwcGluZyI6ICJNYXBwaW5nIiwNCiAgICAgICJ1c2VycyI6ICJVc2VycyIsDQogICAgICAic2V0dGluZ3MiOiAiU2V0dGluZ3MiLA0KICAgICAgImxvZyI6ICJMb2ciLA0KICAgICAgImxvZ291dCI6ICJMb2dvdXQiDQogICAgfSwNCiAgICAiaGVhZGxpbmUiOg0KICAgIHsNCiAgICAgICJwbGF5bGlzdCI6ICJMb2NhbCBvciByZW1vdGUgcGxheWxpc3RzIiwNCiAgICAgICJmaWx0ZXIiOiAiRmlsdGVyIHBsYXlsaXN0IiwNCiAgICAgICJ4bWx0diI6ICJMb2NhbCBvciByZW1vdGUgWE1MVFYgZmlsZXMiLA0KICAgICAgIm1hcHBpbmciOiAiTWFwIHBsYXlsaXN0IGNoYW5uZWxzIHRvIEVQRyBjaGFubmVscyIsDQogICAgICAidXNlcnMiOiAiVXNlciBtYW5hZ2VtZW50IiwNCiAgICAgICJzZXR0aW5ncyI6ICJTZXR0aW5ncyIsDQogICAgICAibG9nIjogIkxvZyIsDQogICAgICAibG9nb3V0IjogIkxvZ291dCINCiAgICB9DQogIH0sDQogICJjb25maXJtIjoNCiAgew0KICAgICJyZXN0b3JlIjogIkFsbCBkYXRhIHdpbGwgYmUgcmVwbGFjZWQgd2l0aCB0aG9zZSBmcm9tIHRoZSBiYWNrdXAuIFNob3VsZCB0aGUgZmlsZXMgYmUgcmVzdG9yZWQ/Ig0KICB9LA0KICAiYWxlcnQiOg0KICB7DQogICAgImZpbGVMb2FkaW5nRXJyb3IiOiAiRmlsZSBjb3VsZG4ndCBiZSBsb2FkZWQiLA0KICAgICJpbnZhbGlkQ2hhbm5lbE51bWJlciI6ICJJbnZhbGlkIGNoYW5uZWwgbnVtYmVyIiwNCiAgICAibWlzc2luZ0lucHV0IjogIk1pc3NpbmcgaW5wdXQiDQogIH0sDQogICJidXR0b24iOg0KICB7DQogICAgImJhY2siOiAiQmFjayIsDQogICAgImJhY2t1cCI6ICJCYWNrdXAiLA0KICAgICJidWxrRWRpdCI6ICJCdWxrIEVkaXQiLA0KICAgICJjYW5jZWwiOiAiQ2FuY2VsIiwNCiAgICAiZGVsZXRlIjogIkRlbGV0ZSIsDQogICAgImRvbmUiOiAiRG9uZSIsDQogICAgImxvZ2luIjogIkxvZ2luIiwNCiAgICAibmV3IjogIk5ldyIsDQogICAgIm5leHQiOiAiTmV4dCIsDQogICAgInJlc3RvcmUiOiAiUmVzdG9yZSIsDQogICAgInNhdmUiOiAiU2F2ZSIsDQogICAgInNlYXJjaCI6ICJTZWFyY2giLA0KICAgICJ1cGRhdGUiOiAiVXBkYXRlIiwNCiAgICAiY3JhZXRlQWNjb3VudCI6ICJDcmVhdGUgQWNjb3VudCIsDQogICAgInJlc2V0TG9ncyI6ICJSZXNldCBMb2dzIiwNCiAgICAidXBsb2FkTG9nbyI6ICJVcGxvYWQgTG9nbyINCiAgfSwNCiAgImZpbHRlciI6DQogIHsNCiAgICAidGFibGUiOg0KICAgIHsNCiAgICAgICJuYW1lIjogIkZpbHRlciBOYW1lIiwNCiAgICAgICJ0eXBlIjogIkZpbHRlciBUeXBlIiwNCiAgICAgICJmaWx0ZXIiOiAiRmlsdGVyIg0KICAgIH0sDQogICAgImN1c3RvbSI6ICJDdXN0b20iLA0KICAgICJncm91cCI6ICJNM1UgR3JvdXAiLA0KICAgICJuYW1lIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiRmlsdGVyIE5hbWUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIkZpbHRlciBuYW1lIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAiZGVzY3JpcHRpb24iOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJEZXNjcmlwdGlvbiIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiRGVzY3JpcHRpb24iLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJ0eXBlIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiVHlwZSIsDQogICAgICAiZ3JvdXBUaXRsZSI6ICJHcm91cCBUaXRsZSIsDQogICAgICAiY3VzdG9tRmlsdGVyIjogIkN1c3RvbSBGaWx0ZXIiDQogICAgfSwNCiAgICAiY2FzZVNlbnNpdGl2ZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIkNhc2UgU2Vuc2l0aXZlIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJmaWx0ZXJSdWxlIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiRmlsdGVyIFJ1bGUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIlNwb3J0IHtIRH0gIXtFUyxJVH0iLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJmaWx0ZXJHcm91cCI6DQogICAgew0KICAgICAgInRpdGxlIjogIkdyb3VwIFRpdGxlIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIlNlbGVjdCBhIE0zVSBncm91cC4gKENvdW50ZXIpPGJyPkNoYW5naW5nIHRoZSBncm91cCB0aXRsZSBpbiB0aGUgTTNVIGludmFsaWRhdGVzIHRoZSBmaWx0ZXIuIg0KICAgIH0sDQogICAgImluY2x1ZGUiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJJbmNsdWRlIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJGSEQsVUhEIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJDaGFubmVsIG5hbWUgbXVzdCBpbmNsdWRlLjxicj4oQ29tbWEgc2VwYXJhdGVkKSBDb21tYSBtZWFucyBvciINCiAgICB9LA0KICAgICJleGNsdWRlIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiRXhjbHVkZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiRVMsSVQiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIkNoYW5uZWwgbmFtZSBtdXN0IG5vdCBjb250YWluLjxicj4oQ29tbWEgc2VwYXJhdGVkKSBDb21tYSBtZWFucyBvciINCiAgICB9LA0KICAgICJwcmVzZXJ2ZU1hcHBpbmciOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJQcmVzZXJ2ZSBFeGlzdGluZyBNM1U8YnI+Q2hhbm5lbCBOdW1iZXJzIiwNCiAgICAgICJwYWxjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIlByZXNlcnZlIGV4aXN0aW5nIE0zVSBwbGF5bGlzdCBjaGFubmVsIG51bWJlcnM/Ig0KICAgIH0sDQogICAgInN0YXJ0aW5nQ2hhbm5lbCI6DQogICAgew0KICAgICAgInRpdGxlIjogIlN0YXJ0aW5nIENoYW5uZWwgTnVtYmVyIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJkZWZhdWx0TWlzc2luZ0VQRyI6DQogICAgew0KICAgICAgInRpdGxlIjogIkZpbGwgTWlzc2luZyBFUEcgRGF0YSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJXaGVuIHRoZXJlIGlzIG5vIG1hdGNoaW5nIEVQRyBkYXRhIGZvciBjaGFubmVsLCA8YnI+YXV0b2ZpbGwgd2l0aCB4VGVWZSBkdW1teSBFUEcgZGF0YT8iDQogICAgfQ0KDQogIH0sDQogICJwbGF5bGlzdCI6DQogIHsNCiAgICAidGFibGUiOg0KICAgIHsNCiAgICAgICJwbGF5bGlzdCI6ICJQbGF5bGlzdCIsDQogICAgICAidHVuZXIiOiAiVHVuZXIiLA0KICAgICAgImxhc3RVcGRhdGUiOiAiTGFzdCBVcGRhdGUiLA0KICAgICAgImF2YWlsYWJpbGl0eSI6ICJBdmFpbGFiaWxpdHkiLA0KICAgICAgInR5cGUiOiAiVHlwZSIsDQogICAgICAic3RyZWFtcyI6ICJTdHJlYW1zIiwNCiAgICAgICJncm91cFRpdGxlIjogImdyb3VwLXRpdGxlIiwNCiAgICAgICJ0dmdJRCI6ICJ0dmctaWQiLA0KICAgICAgInVuaXF1ZUlEIjogIlVuaXF1ZSBJRCINCiAgICB9LA0KICAgICJwbGF5bGlzdFR5cGUiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJQbGF5bGlzdCB0eXBlIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJ0eXBlIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiVHlwZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAibmFtZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIk5hbWUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIlBsYXlsaXN0IG5hbWUiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJkZXNjcmlwdGlvbiI6DQogICAgew0KICAgICAgInRpdGxlIjogIkRlc2NyaXB0aW9uIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJEZXNjcmlwdGlvbiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgImZpbGVNM1UiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJNM1UgRmlsZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiRmlsZSBwYXRoIG9yIFVSTCBvZiB0aGUgTTNVIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAiZmlsZUhESFIiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJIREhvbWVSdW4gSVAiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIklQIGFkZHJlc3MgYW5kIHBvcnQgKDE5Mi4xNjguMS4xMDo1MDA0KSIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgInR1bmVyIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiVHVuZXIgLyBTdHJlYW1zIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIk51bWJlciBvZiBwYXJhbGxlbCBjb25uZWN0aW9ucyB0aGF0IGNhbiBiZSBlc3RhYmxpc2hlZCB0byB0aGUgcHJvdmlkZXIuIDxicj5Pbmx5IGF2YWlsYWJsZSB3aXRoIGFjdGl2YXRlZCBidWZmZXIuPGJyPk5ldyBzZXR0aW5ncyB3aWxsIG9ubHkgYmUgYXBwbGllZCBhZnRlciBxdWl0dGluZyBhbGwgc3RyZWFtcy4iDQogICAgfQ0KICB9LA0KICAieG1sdHYiOg0KICB7DQogICAgInRhYmxlIjoNCiAgICB7DQogICAgICAiZ3VpZGUiOiAiR3VpZGUiLA0KICAgICAgImxhc3RVcGRhdGUiOiAiTGFzdCBVcGRhdGUiLA0KICAgICAgImF2YWlsYWJpbGl0eSI6ICJBdmFpbGFiaWxpdHkiLA0KICAgICAgImNoYW5uZWxzIjogIkNoYW5uZWxzIiwNCiAgICAgICJwcm9ncmFtcyI6ICJQcm9ncmFtcyINCiAgICB9LA0KICAgICJuYW1lIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiTmFtZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiR3VpZGUgbmFtZSIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgImRlc2NyaXB0aW9uIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiRGVzY3JpcHRpb24iLA0KICAgICAgInBsYWNlaG9sZGVyIjogIkRlc2NyaXB0aW9uIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAiZmlsZVhNTFRWIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiWE1MVFYgRmlsZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiRmlsZSBwYXRoIG9yIFVSTCBvZiB0aGUgWE1MVFYiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9DQogIH0sDQogICJtYXBwaW5nIjoNCiAgew0KICAgICJ0YWJsZSI6DQogICAgew0KICAgICAgImNoTm8iOiAiQ2guIE5vLiIsDQogICAgICAibG9nbyI6ICJMb2dvIiwNCiAgICAgICJjaGFubmVsTmFtZSI6ICJDaGFubmVsIE5hbWUiLA0KICAgICAgInBsYXlsaXN0IjogIlBsYXlsaXN0IiwNCiAgICAgICJncm91cFRpdGxlIjogIkdyb3VwIFRpdGxlIiwNCiAgICAgICJ4bWx0dkZpbGUiOiAiWE1MVFYgRmlsZSIsDQogICAgICAieG1sdHZJRCI6ICJYTUxUViBJRCIsDQogICAgICAidGltZXNoaWZ0IjogIlRpbWVzaGlmdCINCiAgICB9LA0KICAgICJhY3RpdmUiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJBY3RpdmUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgImNoYW5uZWxOYW1lIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiQ2hhbm5lbCBOYW1lIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJkZXNjcmlwdGlvbiI6DQogICAgew0KICAgICAgInRpdGxlIjogIkNoYW5uZWwgRGVzY3JpcHRpb24iLA0KICAgICAgInBsYWNlaG9sZGVyIjogIlVzZWQgYnkgdGhlIER1bW15IGFzIGFuIFhNTCBkZXNjcmlwdGlvbiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgInVwZGF0ZUNoYW5uZWxOYW1lIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiVXBkYXRlIENoYW5uZWwgTmFtZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAidXBkYXRlQ2hhbm5lbEdyb3VwIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiVXBkYXRlIENoYW5uZWwgR3JvdXAiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiSWYgY2hlY2tlZCwgdXNlIGdyb3VwIGZyb20gdGhlIGRhdGFiYXNlIg0KICAgIH0sDQogICAgImNoYW5uZWxMb2dvIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiTG9nbyBVUkwiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgInVwZGF0ZUNoYW5uZWxMb2dvIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiVXBkYXRlIENoYW5uZWwgTG9nbyIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAiZXBnQ2F0ZWdvcnkiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJFUEcgQ2F0ZWdvcnkiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgIm0zdUdyb3VwVGl0bGUiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJHcm91cCBUaXRsZSAoeHRldmUubTN1KSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAieG1sdHZGaWxlIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiWE1MVFYgRmlsZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAieG1sdHZDaGFubmVsIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiWE1MVFYgQ2hhbm5lbCIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAidGltZXNoaWZ0IjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiVGltZXNoaWZ0IiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIwIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfQ0KICB9LA0KICAidXNlcnMiOg0KICB7DQogICAgInRhYmxlIjoNCiAgICB7DQogICAgICAidXNlcm5hbWUiOiAiVXNlcm5hbWUiLA0KICAgICAgInBhc3N3b3JkIjogIlBhc3N3b3JkIiwNCiAgICAgICJ3ZWIiOiAiV0VCIiwNCiAgICAgICJwbXMiOiAiUE1TIiwNCiAgICAgICJtM3UiOiAiTTNVIiwNCiAgICAgICJ4bWwiOiAiWE1MIiwNCiAgICAgICJhcGkiOiAiQVBJIg0KICAgIH0sDQogICAgInVzZXJuYW1lIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiVXNlcm5hbWUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIlVzZXJuYW1lIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAicGFzc3dvcmQiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJQYXNzd29yZCIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiUGFzc3dvcmQiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJjb25maXJtIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiQ29uZmlybSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiUGFzc3dvcmQgY29uZmlybSIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgIndlYiI6DQogICAgew0KICAgICAgInRpdGxlIjogIldlYiBBY2Nlc3MiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgInBtcyI6DQogICAgew0KICAgICAgInRpdGxlIjogIlBNUyBBY2Nlc3MiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgIm0zdSI6DQogICAgew0KICAgICAgInRpdGxlIjogIk0zVSBBY2Nlc3MiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgInhtbCI6DQogICAgew0KICAgICAgInRpdGxlIjogIlhNTCBBY2Nlc3MiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgImFwaSI6DQogICAgew0KICAgICAgInRpdGxlIjogIkFQSSBBY2Nlc3MiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0NCiAgfSwNCiAgInNldHRpbmdzIjoNCiAgew0KICAgICJjYXRlZ29yeSI6DQogICAgew0KICAgICAgImdlbmVyYWwiOiAiR2VuZXJhbCIsDQogICAgICAiZmlsZXMiOiAiRmlsZXMiLA0KICAgICAgInN0cmVhbWluZyI6ICJTdHJlYW1pbmciLA0KICAgICAgImJhY2t1cCI6ICJCYWNrdXAiLA0KICAgICAgImF1dGhlbnRpY2F0aW9uIjogIkF1dGhlbnRpY2F0aW9uIg0KICAgIH0sDQogICAgInVwZGF0ZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIlNjaGVkdWxlIGZvciB1cGRhdGluZyAoUGxheWxpc3QsIFhNTFRWLCBCYWNrdXApIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIwMDAwLDEwMDAsMjAwMCIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiVGltZSBpbiAyNCBob3VyIGZvcm1hdCAoMDgwMCA9IDg6MDAgYW0pLiBNb3JlIHRpbWVzIGNhbiBiZSBlbnRlcmVkIGNvbW1hIHNlcGFyYXRlZC4gTGVhdmUgdGhpcyBmaWVsZCBlbXB0eSBpZiBubyB1cGRhdGVzIGFyZSB0byBiZSBjYXJyaWVkIG91dC4iDQogICAgfSwNCiAgICAiYXBpIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiQVBJIEludGVyZmFjZSIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiVmlhIEFQSSBpbnRlcmZhY2UgaXQgaXMgcG9zc2libGUgdG8gc2VuZCBjb21tYW5kcyB0byB4VGVWZS4gQVBJIGRvY3VtZW50YXRpb24gaXMgPGEgaHJlZj0naHR0cHM6Ly9naXRodWIuY29tL3h0ZXZlLXByb2plY3QveFRlVmUtRG9jdW1lbnRhdGlvbi9ibG9iL21hc3Rlci9lbi9jb25maWd1cmF0aW9uLm1kI2FwaSc+aGVyZTwvYT4iDQogICAgfSwNCiAgICAiZXBnU291cmNlIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiRVBHIFNvdXJjZSIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiUE1TOjxicj4tIFVzZSBFUEcgZGF0YSBmcm9tIFBsZXggb3IgRW1ieSA8YnI+PGJyPlhFUEc6PGJyPi0gVXNlIG9mIG9uZSBvciBtb3JlIFhNTFRWIGZpbGVzPGJyPi0gQ2hhbm5lbCBtYW5hZ2VtZW50PGJyPi0gTTNVIC8gWE1MVFYgZXhwb3J0IChIVFRQIGxpbmsgZm9yIElQVFYgYXBwcykiDQogICAgfSwNCiAgICAidHVuZXIiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJOdW1iZXIgb2YgVHVuZXJzIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJOdW1iZXIgb2YgcGFyYWxsZWwgY29ubmVjdGlvbnMgdGhhdCBjYW4gYmUgZXN0YWJsaXNoZWQgdG8gdGhlIHByb3ZpZGVyLjxicj5BdmFpbGFibGUgZm9yOiBQbGV4LCBFbWJ5IChIREhSKSwgTTNVICh3aXRoIGFjdGl2ZSBidWZmZXIpLjxicj5BZnRlciBhIGNoYW5nZSwgeFRlVmUgbXVzdCBiZSBkZWxldGUgaW4gdGhlIFBsZXggLyBFbWJ5IERWUiBzZXR0aW5ncyBhbmQgc2V0IHVwIGFnYWluLiINCiAgICB9LA0KICAgICJmaWxlc1VwZGF0ZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIlVwZGF0ZXMgYWxsIGZpbGVzIGF0IHN0YXJ0dXAiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIlVwZGF0ZXMgYWxsIHBsYXlsaXN0cywgdHVuZXIgYW5kIFhNTFRWIGZpbGVzIGF0IHN0YXJ0dXAuIg0KICAgIH0sDQogICAgImNhY2hlSW1hZ2VzIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiSW1hZ2UgQ2FjaGluZyIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiQWxsIGltYWdlcyBmcm9tIHRoZSBYTUxUViBmaWxlIGFyZSBjYWNoZWQsIGFsbG93aW5nIGZhc3RlciByZW5kZXJpbmcgb2YgdGhlIGdyaWQgaW4gdGhlIGNsaWVudC48YnI+RG93bmxvYWRpbmcgdGhlIGltYWdlcyBtYXkgdGFrZSBhIHdoaWxlIGFuZCB3aWxsIGJlIGRvbmUgaW4gdGhlIGJhY2tncm91bmQuIg0KICAgIH0sDQogICAgInJlcGxhY2VFbXB0eUltYWdlcyI6DQogICAgew0KICAgICAgInRpdGxlIjogIlJlcGxhY2UgbWlzc2luZyBwcm9ncmFtIGltYWdlcyIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiSWYgdGhlIHBvc3RlciBpbiB0aGUgWE1MVFYgcHJvZ3JhbSBpcyBtaXNzaW5nLCB0aGUgY2hhbm5lbCBsb2dvIHdpbGwgYmUgdXNlZC4iDQogICAgfSwNCiAgICAieHRldmVBdXRvVXBkYXRlIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiQXV0b21hdGljIHVwZGF0ZSBvZiB4VGVWZSIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiSWYgYSBuZXcgdmVyc2lvbiBvZiB4VGVWZSBpcyBhdmFpbGFibGUsIGl0IHdpbGwgYmUgYXV0b21hdGljYWxseSBpbnN0YWxsZWQuIFRoZSB1cGRhdGVzIGFyZSBkb3dubG9hZGVkIGZyb20gR2l0SHViLiINCiAgICB9LA0KICAgICJzdHJlYW1CdWZmZXJpbmciOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJTdHJlYW0gQnVmZmVyIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJGdW5jdGlvbnMgb2YgdGhlIGJ1ZmZlcjo8YnI+LSBUaGUgc3RyZWFtIGlzIHBhc3NlZCBmcm9tIHhUZVZlLCBGRm1wZWcgb3IgVkxDIHRvIFBsZXgsIEVtYnkgb3IgTTNVIFBsYXllcjxicj4tIFNtYWxsIGplcmtpbmcgb2YgdGhlIHN0cmVhbXMgY2FuIGJlIGNvbXBlbnNhdGVkPGJyPi0gSExTIC8gTTNVOCBzdXBwb3J0PGJyPi0gUlRQIC8gUlRQUyBzdXBwb3J0IChvbmx5IEZGbXBlZyBvciBWTEMpPGJyPi0gUmUtc3RyZWFtaW5nPGJyPi0gU2VwYXJhdGUgdHVuZXIgbGltaXQgZm9yIGVhY2ggcGxheWxpc3QiLA0KICAgICAgImluZm9fZmFsc2UiOiAiTm8gQnVmZmVyIChDbGllbnQgY29ubmVjdHMgdG8gdGhlIHN0cmVhbWluZyBzZXJ2ZXIpIiwNCiAgICAgICJpbmZvX3h0ZXZlIjogInhUZVZlIGNvbm5lY3RzIHRvIHRoZSBzdHJlYW1pbmcgc2VydmVyIiwNCiAgICAgICJpbmZvX2ZmbXBlZyI6ICJGRm1wZWcgY29ubmVjdHMgdG8gdGhlIHN0cmVhbWluZyBzZXJ2ZXIiLA0KICAgICAgImluZm9fdmxjIjogIlZMQyBjb25uZWN0cyB0byB0aGUgc3RyZWFtaW5nIHNlcnZlciINCg0KICAgIH0sDQogICAgInVkcHh5IjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiVURQeHkgYWRkcmVzcyIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiVGhlIGFkZHJlc3Mgb2YgeW91ciBVRFB4eSBzZXJ2ZXIuIElmIHNldCwgYW5kIHRoZSBjaGFubmVsIFVSTHMgaW4gdGhlIG0zdSBpcyBtdWx0aWNhc3QsIHhUZVZlIHdpbGwgcmV3cml0ZSBpdCBzbyB0aGF0IGl0IGlzIGFjY2Vzc2VkIHZpYSB0aGUgVURQeHkgc2VydmljZS4iLA0KICAgICAgInBsYWNlaG9sZGVyIjogImhvc3Q6cG9ydCINCiAgICB9LA0KICAgICJmZm1wZWdQYXRoIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiRkZtcGVnIEJpbmFyeSBQYXRoIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJQYXRoIHRvIEZGbXBlZyBiaW5hcnkuIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIvcGF0aC90by9mZm1wZWciDQogICAgfSwNCiAgICAiZmZtcGVnT3B0aW9ucyI6DQogICAgew0KICAgICAgInRpdGxlIjogIkZGbXBlZyBPcHRpb25zIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJGRm1wZWcgb3B0aW9ucy48YnI+T25seSBjaGFuZ2UgaWYgeW91IGtub3cgd2hhdCB5b3UgYXJlIGRvaW5nLjxicj5MZWF2ZSBibGFuayB0byBzZXQgZGVmYXVsdCBzZXR0aW5ncy4iLA0KICAgICAgInBsYWNlaG9sZGVyIjogIkxlYXZlIGJsYW5rIHRvIHNldCBkZWZhdWx0IHNldHRpbmdzIg0KICAgIH0sDQogICAgInZsY1BhdGgiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJWTEMgLyBDVkxDIEJpbmFyeSBQYXRoIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJQYXRoIHRvIFZMQyAvIENWTEMgYmluYXJ5LiIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiL3BhdGgvdG8vY3ZsYyINCiAgICB9LA0KICAgICJ2bGNPcHRpb25zIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiVkxDIC8gQ1ZMQyBPcHRpb25zIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJWTEMgLyBDVkxDIG9wdGlvbnMuPGJyPk9ubHkgY2hhbmdlIGlmIHlvdSBrbm93IHdoYXQgeW91IGFyZSBkb2luZy48YnI+TGVhdmUgYmxhbmsgdG8gc2V0IGRlZmF1bHQgc2V0dGluZ3MuIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJMZWF2ZSBibGFuayB0byBzZXQgZGVmYXVsdCBzZXR0aW5ncyINCiAgICB9LA0KICAgICJidWZmZXJTaXplIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiQnVmZmVyIFNpemUiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIkJ1ZmZlciBzaXplIGluIE1CLjxicj5NM1U4OiBJZiB0aGUgVFMgc2VnbWVudCBzbWFsbGVyIHRoZW4gdGhlIGJ1ZmZlciBzaXplLCB0aGUgZmlsZSBzaXplIG9mIHRoZSBzZWdtZW50IGlzIHVzZWQuIg0KICAgIH0sDQogICAgImJ1ZmZlclRpbWVvdXQiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJUaW1lb3V0IGZvciBuZXcgY2xpZW50IGNvbm5lY3Rpb25zIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJUaGUgeFRlVmUgYnVmZmVyIHdhaXRzIHVudGlsIG5ldyBjbGllbnQgY29ubmVjdGlvbnMgYXJlIGVzdGFibGlzaGVkLiBIZWxwZnVsIGZvciBmYXN0IGNoYW5uZWwgc3dpdGNoaW5nLiBWYWx1ZSBpbiBtaWxsaXNlY29uZHMuIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIxMDAiDQogICAgfSwNCiAgICAidXNlckFnZW50IjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiVXNlciBBZ2VudCIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiVXNlciBBZ2VudCBmb3IgSFRUUCByZXF1ZXN0cy4gRm9yIGV2ZXJ5IEhUVFAgY29ubmVjdGlvbiwgdGhpcyB2YWx1ZSBpcyB1c2VkIGZvciB0aGUgdXNlciBhZ2VudC4gU2hvdWxkIG9ubHkgYmUgY2hhbmdlZCBpZiB4VGVWZSBpcyBibG9ja2VkLiIsDQogICAgICAicGxhY2Vob2xkZXIiOiAieFRlVmUiDQogICAgfSwNCiAgICAiYmFja3VwUGF0aCI6DQogICAgew0KICAgICAgInRpdGxlIjogIkxvY2F0aW9uIGZvciBhdXRvbWF0aWMgYmFja3VwcyIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiL21udC9kYXRhL2JhY2t1cC94dGV2ZS8iLA0KICAgICAgImRlc2NyaXB0aW9uIjogIkJlZm9yZSBhbnkgdXBkYXRlIG9mIHRoZSBwcm92aWRlciBkYXRhIGJ5IHRoZSBzY2hlZHVsZSwgeFRlVmUgY3JlYXRlcyBhIGJhY2t1cC4gVGhlIHBhdGggZm9yIHRoZSBhdXRvbWF0aWMgYmFja3VwcyBjYW4gYmUgY2hhbmdlZC4geFRlVmUgcmVxdWlyZXMgd3JpdGUgcGVybWlzc2lvbiBmb3IgdGhpcyBmb2xkZXIuIg0KICAgIH0sDQogICAgInRlbXBQYXRoIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiTG9jYXRpb24gZm9yIHRoZSB0ZW1wb3JhcnkgZmlsZXMiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIi90bXAveHRldmUvIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJMb2NhdGlvbiBmb3IgdGhlIGJ1ZmZlciBmaWxlcy4iDQogICAgfSwNCiAgICAiYmFja3VwS2VlcCI6DQogICAgew0KICAgICAgInRpdGxlIjogIk51bWJlciBvZiBiYWNrdXBzIHRvIGtlZXAiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIk51bWJlciBvZiBiYWNrdXBzIHRvIGtlZXAuIE9sZGVyIGJhY2t1cHMgYXJlIGF1dG9tYXRpY2FsbHkgZGVsZXRlZC4iDQogICAgfSwNCiAgICAiYXV0aGVudGljYXRpb25XRUIiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJXRUIgQXV0aGVudGljYXRpb24iLA0KICAgICAgImRlc2NyaXB0aW9uIjogIkFjY2VzcyB0byB0aGUgd2ViIGludGVyZmFjZSBvbmx5IHBvc3NpYmxlIHdpdGggY3JlZGVudGlhbHMuIg0KICAgIH0sDQogICAgImF1dGhlbnRpY2F0aW9uUE1TIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiUE1TIEF1dGhlbnRpY2F0aW9uIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJQbGV4IHJlcXVlc3RzIGFyZSBvbmx5IHBvc3NpYmxlIHdpdGggYXV0aGVudGljYXRpb24uIDxicj48Yj5XYXJuaW5nISEhPC9iPiBBZnRlciBhY3RpdmF0aW5nIHRoaXMgZnVuY3Rpb24geFRlVmUgbXVzdCBiZSBkZWxldGUgaW4gdGhlIFBNUyBEVlIgc2V0dGluZ3MgYW5kIHNldCB1cCBhZ2Fpbi4iDQogICAgfSwNCiAgICAiYXV0aGVudGljYXRpb25NM1UiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJNM1UgQXV0aGVudGljYXRpb24iLA0KICAgICAgImRlc2NyaXB0aW9uIjogIkRvd25sb2FkaW5nIHRoZSB4dGV2ZS5tM3UgZmlsZSB2aWEgYW4gSFRUUCByZXF1ZXN0IGlzIG9ubHkgcG9zc2libGUgd2l0aCBhdXRoZW50aWNhdGlvbi4iDQogICAgfSwNCiAgICAiYXV0aGVudGljYXRpb25YTUwiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJYTUwgQXV0aGVudGljYXRpb24iLA0KICAgICAgImRlc2NyaXB0aW9uIjogIkRvd25sb2FkaW5nIHRoZSB4dGV2ZS54bWwgZmlsZSB2aWEgYW4gSFRUUCByZXF1ZXN0IGlzIG9ubHkgcG9zc2libGUgd2l0aCBhdXRoZW50aWNhdGlvbiINCiAgICB9LA0KICAgICJhdXRoZW50aWNhdGlvbkFQSSI6DQogICAgew0KICAgICAgInRpdGxlIjogIkFQSSBBdXRoZW50aWNhdGlvbiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiQWNjZXNzIHRvIHRoZSBBUEkgaW50ZXJmYWNlIGlzIG9ubHkgcG9zc2libGUgd2l0aCBhdXRoZW50aWNhdGlvbi4iDQogICAgfQ0KICB9LA0KICAid2l6YXJkIjoNCiAgew0KICAgICJlcGdTb3VyY2UiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJFUEcgU291cmNlIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJQTVM6PGJyPi0gVXNlIEVQRyBkYXRhIGZyb20gUGxleCBvciBFbWJ5IDxicj48YnI+WEVQRzo8YnI+LSBVc2Ugb2Ygb25lIG9yIG1vcmUgWE1MVFYgZmlsZXM8YnI+LSBDaGFubmVsIG1hbmFnZW1lbnQ8YnI+LSBNM1UgLyBYTUxUViBleHBvcnQgKEhUVFAgbGluayBmb3IgSVBUViBhcHBzKSINCiAgICB9LA0KICAgICJ0dW5lciI6DQogICAgew0KICAgICAgInRpdGxlIjogIk51bWJlciBvZiB0dW5lcnMiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIk51bWJlciBvZiBwYXJhbGxlbCBjb25uZWN0aW9ucyB0aGF0IGNhbiBiZSBlc3RhYmxpc2hlZCB0byB0aGUgcHJvdmlkZXIuPGJyPkF2YWlsYWJsZSBmb3I6IFBsZXgsIEVtYnkgKEhESFIpLCBNM1UgKHdpdGggYWN0aXZlIGJ1ZmZlcikuPGJyPkFmdGVyIGEgY2hhbmdlLCB4VGVWZSBtdXN0IGJlIGRlbGV0ZSBpbiB0aGUgUGxleCAvIEVtYnkgRFZSIHNldHRpbmdzIGFuZCBzZXQgdXAgYWdhaW4uIg0KICAgIH0sDQogICAgIm0zdSI6DQogICAgew0KICAgICAgInRpdGxlIjogIk0zVSBQbGF5bGlzdCIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiRmlsZSBwYXRoIG9yIFVSTCBvZiB0aGUgTTNVIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJMb2NhbCBvciByZW1vdGUgcGxheWxpc3RzIg0KICAgIH0sDQogICAgInhtbHR2IjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiWE1MVFYgRmlsZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiRmlsZSBwYXRoIG9yIFVSTCBvZiB0aGUgWE1MVFYiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIkxvY2FsIG9yIHJlbW90ZSBYTUxUViBmaWxlIg0KICAgIH0NCiAgfSwNCiAgImxvZ2luIjoNCiAgew0KICAgICJmYWlsZWQiOiAiVXNlciBhdXRoZW50aWNhdGlvbiBmYWlsZWQiLA0KICAgICJoZWFkbGluZSI6ICJMb2dpbiIsDQogICAgInVzZXJuYW1lIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiVXNlcm5hbWUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIlVzZXJuYW1lIg0KICAgIH0sDQogICAgInBhc3N3b3JkIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiUGFzc3dvcmQiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIlBhc3N3b3JkIg0KICAgIH0NCiAgfSwNCiAgImFjY291bnQiOg0KICB7DQogICAgImZhaWxlZCI6ICJQYXNzd29yZCBkb2VzIG5vdCBtYXRjaCIsDQogICAgImhlYWRsaW5lIjogIkNyZWF0ZSB1c2VyIGFjY291bnQiLA0KICAgICJ1c2VybmFtZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIlVzZXJuYW1lIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJVc2VybmFtZSINCiAgICB9LA0KICAgICJwYXNzd29yZCI6DQogICAgew0KICAgICAgInRpdGxlIjogIlBhc3N3b3JkIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJQYXNzd29yZCINCiAgICB9LA0KICAgICJjb25maXJtIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiQ29uZmlybSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiQ29uZmlybSINCiAgICB9DQogIH0NCn0=" webUI["html/login.html"] = "PCFkb2N0eXBlIGh0bWw+DQo8aHRtbD4NCiAgPGhlYWQ+DQogICAgPG1ldGEgY2hhcnNldD0idXRmLTgiPg0KICAgIDxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgsIGluaXRpYWwtc2NhbGU9MS4wIiAvPiANCiAgICA8dGl0bGU+eFRlVmU8L3RpdGxlPg0KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iY3NzL3NjcmVlbi5jc3MiIHR5cGU9InRleHQvY3NzIj4NCiAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9ImNzcy9iYXNlLmNzcyIgdHlwZT0idGV4dC9jc3MiPg0KICAgIDxzY3JpcHQgbGFuZ3VhZ2U9ImphdmFzY3JpcHQiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJqcy9uZXR3b3JrX3RzLmpzIj48L3NjcmlwdD4NCiAgICA8c2NyaXB0IGxhbmd1YWdlPSJqYXZhc2NyaXB0IiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ianMvYXV0aGVudGljYXRpb25fdHMuanMiPjwvc2NyaXB0Pg0KICA8L2hlYWQ+DQoNCiAgICA8Ym9keT4NCiAgICAgICAgICANCiAgICAgIDxkaXYgaWQ9ImhlYWRlciIgY2xhc3M9ImltZ0NlbnRlciI+PC9kaXY+DQoNCiAgICAgIDxkaXYgaWQ9ImJveCI+DQoNCiAgICAgICAgPGRpdiBpZD0iaGVhZGxpbmUiPg0KICAgICAgICAgIDxoMSBpZD0iaGVhZC10ZXh0IiBjbGFzcz0iY2VudGVyIj57ey5sb2dpbi5oZWFkbGluZX19PC9oMT4NCiAgICAgICAgPC9kaXY+DQoNCiAgICAgICAgPHAgaWQ9ImVyciIgY2xhc3M9ImVycm9yTXNnIGNlbnRlciI+e3suYXV0aGVudGljYXRpb25FcnJ9fTwvcD4NCg0KICAgICAgICA8ZGl2IGlkPSJjb250ZW50Ij4NCg0KICAgICAgICAgICAgPGZvcm0gaWQ9ImF1dGhlbnRpY2F0aW9uIiBhY3Rpb249IiIgbWV0aG9kPSJwb3N0Ij4NCg0KICAgICAgICAgICAgICA8aDU+e3subG9naW4udXNlcm5hbWUudGl0bGV9fTo8L2g1Pg0KICAgICAgICAgICAgICA8aW5wdXQgaWQ9InVzZXJuYW1lIiB0eXBlPSJ0ZXh0IiBuYW1lPSJ1c2VybmFtZSIgcGxhY2Vob2xkZXI9IlVzZXJuYW1lIiB2YWx1ZT0iIj4NCiAgICAgICAgICAgICAgPGg1Pnt7LmxvZ2luLnBhc3N3b3JkLnRpdGxlfX06PC9oNT4NCiAgICAgICAgICAgICAgPGlucHV0IGlkPSJwYXNzd29yZCIgdHlwZT0icGFzc3dvcmQiIG5hbWU9InBhc3N3b3JkIiBwbGFjZWhvbGRlcj0iUGFzc3dvcmQiIHZhbHVlPSIiPg0KDQogICAgICAgICAgICA8L2Zvcm0+DQoNCiAgICAgICAgPC9kaXY+DQoNCiAgICAgICAgPGRpdiBpZD0iYm94LWZvb3RlciI+DQogICAgICAgICAgPGlucHV0IGlkPSJzdWJtaXQiIGNsYXNzPSIiIHR5cGU9ImJ1dHRvbiIgdmFsdWU9Int7LmJ1dHRvbi5sb2dpbn19IiBvbmNsaWNrPSJqYXZhc2NyaXB0OiBsb2dpbigpOyI+DQogICAgICAgIDwvZGl2Pg0KICAgICAgICANCiAgICAgIDwvZGl2Pg0KDQogICAgPC9ib2R5Pg0KICAgIA0KPC9odG1sPg==" diff --git a/src/webserver.go b/src/webserver.go index d48472f..cef9ef3 100644 --- a/src/webserver.go +++ b/src/webserver.go @@ -15,6 +15,9 @@ import ( "github.com/gorilla/websocket" ) +// webAlerts channel to send to client +var webAlerts = make(chan string, 3) + // StartWebserver : Start the Webserver func StartWebserver() (err error) { @@ -342,11 +345,19 @@ func WS(w http.ResponseWriter, r *http.Request) { http.Error(w, "Could not open websocket connection", http.StatusBadRequest) return } + defer conn.Close() setGlobalDomain(r.Host) for { + select { + case response.Alert = <-webAlerts: + // + default: + // + } + err = conn.ReadJSON(&request) if err != nil { diff --git a/ts/network_ts.ts b/ts/network_ts.ts index 35b9318..4778d78 100644 --- a/ts/network_ts.ts +++ b/ts/network_ts.ts @@ -85,6 +85,10 @@ class Server { } + if (response.hasOwnProperty("alert")) { + alert(response["alert"]) + } + if (response.hasOwnProperty("logoURL")) { var div = (document.getElementById("channel-icon") as HTMLInputElement) div.value = response["logoURL"] @@ -117,10 +121,6 @@ class Server { window.location = response["openLink"] } - if (response.hasOwnProperty("alert")) { - alert(response["alert"]) - } - if (response.hasOwnProperty("reload")) { location.reload() } From 60a755af5752b8cf59fb3441122751e8e035117d Mon Sep 17 00:00:00 2001 From: SCP002 Date: Fri, 15 Apr 2022 02:25:30 +0300 Subject: [PATCH 081/189] Remove unfiltered channel limit. Closes #14 --- src/config.go | 2 -- src/data.go | 12 ++++-------- src/screen.go | 6 ++++-- src/struct-system.go | 1 - src/xepg.go | 8 ++++---- 5 files changed, 12 insertions(+), 17 deletions(-) diff --git a/src/config.go b/src/config.go index 486d418..c9d18bf 100644 --- a/src/config.go +++ b/src/config.go @@ -47,7 +47,6 @@ func Init() (err error) { System.ServerProtocol.WEB = "http" System.ServerProtocol.XML = "http" System.PlexChannelLimit = 480 - System.UnfilteredChannelLimit = 480 System.Compatibility = "1.4.4" // FFmpeg Default Settings @@ -228,7 +227,6 @@ func StartSystem(updateProviderFiles bool) (err error) { showInfo(fmt.Sprintf("Tuner (Plex / Emby):%d", Settings.Tuner)) showInfo(fmt.Sprintf("EPG Source:%s", Settings.EpgSource)) showInfo(fmt.Sprintf("Plex Channel Limit:%d", System.PlexChannelLimit)) - showInfo(fmt.Sprintf("Unfiltered Chan. Limit:%d", System.UnfilteredChannelLimit)) // Update Provider Data if len(Settings.Files.M3U) > 0 && Settings.FilesUpdate == true || updateProviderFiles == true { diff --git a/src/data.go b/src/data.go index 69a1b23..29cfe4d 100644 --- a/src/data.go +++ b/src/data.go @@ -790,9 +790,9 @@ func buildDatabaseDVR() (err error) { System.ScanInProgress = 1 - Data.Streams.All = make([]interface{}, 0, System.UnfilteredChannelLimit) - Data.Streams.Active = make([]interface{}, 0, System.UnfilteredChannelLimit) - Data.Streams.Inactive = make([]interface{}, 0, System.UnfilteredChannelLimit) + Data.Streams.All = make([]interface{}, 0) + Data.Streams.Active = make([]interface{}, 0) + Data.Streams.Inactive = make([]interface{}, 0) Data.Playlist.M3U.Groups.Text = []string{} Data.Playlist.M3U.Groups.Value = []string{} Data.StreamPreviewUI.Active = []string{} @@ -948,7 +948,7 @@ func buildDatabaseDVR() (err error) { sort.Strings(Data.Playlist.M3U.Groups.Text) sort.Strings(Data.Playlist.M3U.Groups.Value) - if len(Data.Streams.Active) == 0 && len(Data.Streams.All) <= System.UnfilteredChannelLimit && len(Settings.Filter) == 0 { + if len(Data.Streams.Active) == 0 && len(Settings.Filter) == 0 { Data.Streams.Active = Data.Streams.All Data.Streams.Inactive = make([]interface{}, 0) @@ -961,10 +961,6 @@ func buildDatabaseDVR() (err error) { showWarning(2000) } - if len(Settings.Filter) == 0 && len(Data.Streams.All) > System.UnfilteredChannelLimit { - showWarning(2001) - } - System.ScanInProgress = 0 showInfo(fmt.Sprintf("All streams:%d", len(Data.Streams.All))) showInfo(fmt.Sprintf("Active streams:%d", len(Data.Streams.Active))) diff --git a/src/screen.go b/src/screen.go index 65eb9de..fd913c8 100644 --- a/src/screen.go +++ b/src/screen.go @@ -306,9 +306,11 @@ func getErrMsg(errCode int) (errMsg string) { // Warnings case 2000: - errMsg = fmt.Sprintf("Plex can not handle more than %d streams. If you do not use Plex, you can ignore this warning.", System.PlexChannelLimit) + errMsg = fmt.Sprintf("Plex can not handle more than %d streams. Use filter to reduce the number of streams. "+ + "If you do not use Plex, ignore this warning.", System.PlexChannelLimit) case 2001: - errMsg = fmt.Sprintf("%s has loaded more than %d streams. Use the filter to reduce the number of streams.", System.Name, System.UnfilteredChannelLimit) + // Free slot + return case 2002: errMsg = fmt.Sprintf("PMS can not play m3u8 streams") case 2003: diff --git a/src/struct-system.go b/src/struct-system.go index f618ecc..2f5bdfe 100644 --- a/src/struct-system.go +++ b/src/struct-system.go @@ -23,7 +23,6 @@ type SystemStruct struct { DeviceID string Domain string PlexChannelLimit int - UnfilteredChannelLimit int FFmpeg struct { DefaultOptions string diff --git a/src/xepg.go b/src/xepg.go index 79959dd..d521b2d 100644 --- a/src/xepg.go +++ b/src/xepg.go @@ -248,9 +248,9 @@ func createXEPGMapping() { // Create / update XEPG Database func createXEPGDatabase() (err error) { - var allChannelNumbers = make([]float64, 0, System.UnfilteredChannelLimit) - Data.Cache.Streams.Active = make([]string, 0, System.UnfilteredChannelLimit) - Data.XEPG.Channels = make(map[string]interface{}, System.UnfilteredChannelLimit) + var allChannelNumbers = make([]float64, 0) + Data.Cache.Streams.Active = make([]string, 0) + Data.XEPG.Channels = make(map[string]interface{}) Data.XEPG.Channels, err = loadJSONFileToMap(System.File.XEPG) if err != nil { @@ -327,7 +327,7 @@ func createXEPGDatabase() (err error) { } // Make a map of the db channels based on their previously downloaded attributes -- filename, group, title, etc - var xepgChannelsValuesMap = make(map[string]XEPGChannelStruct, System.UnfilteredChannelLimit) + var xepgChannelsValuesMap = make(map[string]XEPGChannelStruct) for _, v := range Data.XEPG.Channels { var channel XEPGChannelStruct err = json.Unmarshal([]byte(mapToJSON(v)), &channel) From 4759b8a61789ec5e9ea0fa1f6eedd6dcde89229d Mon Sep 17 00:00:00 2001 From: SCP002 Date: Sat, 16 Apr 2022 14:49:35 +0300 Subject: [PATCH 082/189] Display starting channel number in filter table. Closes #26 --- html/lang/en.json | 1 + src/webUI.go | 6 +++--- ts/menu_ts.ts | 33 ++++++++++++++++++++++++++++++++- 3 files changed, 36 insertions(+), 4 deletions(-) diff --git a/html/lang/en.json b/html/lang/en.json index e836f00..896559f 100644 --- a/html/lang/en.json +++ b/html/lang/en.json @@ -58,6 +58,7 @@ { "table": { + "startingChannel": "Starting Ch. No.", "name": "Filter Name", "type": "Filter Type", "filter": "Filter" diff --git a/src/webUI.go b/src/webUI.go index ac20a0c..ae899f3 100644 --- a/src/webUI.go +++ b/src/webUI.go @@ -25,14 +25,14 @@ func loadHTMLMap() { webUI["html/img/xmltv.png"] = "iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAAAXNSR0IArs4c6QAAAAlwSFlzAAAsSwAALEsBpT2WqQAABCRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IlhNUCBDb3JlIDUuNC4wIj4KICAgPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIgogICAgICAgICAgICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgICAgICAgICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyI+CiAgICAgICAgIDx0aWZmOlJlc29sdXRpb25Vbml0PjI8L3RpZmY6UmVzb2x1dGlvblVuaXQ+CiAgICAgICAgIDx0aWZmOkNvbXByZXNzaW9uPjU8L3RpZmY6Q29tcHJlc3Npb24+CiAgICAgICAgIDx0aWZmOlhSZXNvbHV0aW9uPjI4ODwvdGlmZjpYUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6T3JpZW50YXRpb24+MTwvdGlmZjpPcmllbnRhdGlvbj4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+Mjg4PC90aWZmOllSZXNvbHV0aW9uPgogICAgICAgICA8ZXhpZjpQaXhlbFhEaW1lbnNpb24+NTA8L2V4aWY6UGl4ZWxYRGltZW5zaW9uPgogICAgICAgICA8ZXhpZjpDb2xvclNwYWNlPjE8L2V4aWY6Q29sb3JTcGFjZT4KICAgICAgICAgPGV4aWY6UGl4ZWxZRGltZW5zaW9uPjUwPC9leGlmOlBpeGVsWURpbWVuc2lvbj4KICAgICAgICAgPGRjOnN1YmplY3Q+CiAgICAgICAgICAgIDxyZGY6QmFnLz4KICAgICAgICAgPC9kYzpzdWJqZWN0PgogICAgICAgICA8eG1wOk1vZGlmeURhdGU+MjAxOC0wNy0yOFQyMDowNzozMzwveG1wOk1vZGlmeURhdGU+CiAgICAgICAgIDx4bXA6Q3JlYXRvclRvb2w+UGl4ZWxtYXRvciAzLjM8L3htcDpDcmVhdG9yVG9vbD4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgIDwvcmRmOlJERj4KPC94OnhtcG1ldGE+Co6j9bsAAAGgSURBVGgF7VqxTsNADL0gYGEon8DOwsbAAH8BYmJn6cYIn8DC3h0+oixISFRiYYCJL0AwMMBAeK5w2rpV6uikxHfYknW98+vds18TK21DWGBlWR7CH+BfcEv2AzLP8HP42gLqkyUATuEp2PWEdQjF9ATs1zF/g29Mrxt+vVcUxR3xWxEktzFPJQmivsv8ZSI9DiQyVnxlIonwn6fpiczXpNuVVXH8O+a3Ys3y9NUyuf/NTTbEHZTjUlGSRzSiPhroUIENwB4AS/vS/susDwDhTpYBER9g7wHh5DWyibV9CiitCZbIafDEYUuJHQI3Nr/9ciWsjK6IFSWYhyvClbAyZqOIlYJG84jq7E1Ot97Zm+TinV1TrWwudk9EI3ebGFekzWprzspGEU2ySWCiOrs/s9dr7M/s9fVJJJrNXcsTsfaJc0WsKZINH+/sf1Jqvl1n1f2ZnStRN/pdq646XcSkIh9dkIg4s+IrE3nCpp8RG7f91ns+cCYR/LD4jcAZB42PN+A7/mcQ8ZxJhBYQvMJwBB/BKTFLVoLMC/wCfgyv7BesTKUC2LKM3wAAAABJRU5ErkJggg==" webUI["html/index.html"] = "PCFkb2N0eXBlIGh0bWw+DQo8aHRtbD4NCiAgPGhlYWQ+DQogICAgPG1ldGEgY2hhcnNldD0idXRmLTgiPg0KICAgIDwhLS0tDQogICAgPG1ldGEgbmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9IndpZHRoPWRldmljZS13aWR0aCwgaW5pdGlhbC1zY2FsZT0xLjAiIC8+IA0KICAgIC0tPg0KICAgIDx0aXRsZT54VGVWZTwvdGl0bGU+DQogICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJjc3Mvc2NyZWVuLmNzcyIgdHlwZT0idGV4dC9jc3MiPg0KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iY3NzL2Jhc2UuY3NzIiB0eXBlPSJ0ZXh0L2NzcyI+DQoNCiAgICA8c2NyaXB0IGxhbmd1YWdlPSJqYXZhc2NyaXB0IiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ianMvbmV0d29ya190cy5qcyI+PC9zY3JpcHQ+DQogICAgPHNjcmlwdCBsYW5ndWFnZT0iamF2YXNjcmlwdCIgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9ImpzL21lbnVfdHMuanMiPjwvc2NyaXB0Pg0KICAgIDxzY3JpcHQgbGFuZ3VhZ2U9ImphdmFzY3JpcHQiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJqcy9zZXR0aW5nc190cy5qcyI+PC9zY3JpcHQ+DQogICAgPHNjcmlwdCBsYW5ndWFnZT0iamF2YXNjcmlwdCIgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9ImpzL2xvZ3NfdHMuanMiPjwvc2NyaXB0Pg0KICAgIDxzY3JpcHQgbGFuZ3VhZ2U9ImphdmFzY3JpcHQiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJqcy9iYXNlX3RzLmpzIj48L3NjcmlwdD4NCg0KICA8L2hlYWQ+DQoNCiAgICA8Ym9keSBvbmxvYWQ9ImphdmFzY3JpcHQ6IFBhZ2VSZWFkeSgpOyI+DQoNCiAgICAgIDxkaXYgaWQ9ImxvYWRpbmciIGNsYXNzPSJub25lIj4NCiAgICAgICAgPGRpdiBjbGFzcz0ibG9hZGVyIj48L2Rpdj4NCiAgICAgIDwvZGl2Pg0KDQogICAgICA8ZGl2IGlkPSJwb3B1cCIgY2xhc3M9Im5vbmUiPg0KICAgICAgICA8ZGl2IGlkPSJwb3B1cC1jdXN0b20iPjwvZGl2Pg0KICAgICAgPC9kaXY+DQoNCiAgICAgIDxkaXYgaWQ9ImxheW91dCI+DQoNCiAgICAgICAgPCEtLQ0KICAgICAgICA8ZGl2IGlkPSJub3RpZmljYXRpb24iPg0KICAgICAgICAgIDxkaXYgY2xhc3M9ImVsZW1lbnQiPg0KICAgICAgICAgICAgPGg1PlhFUEc8L2g1Pg0KICAgICAgICAgICAgPHByZT4xMS4wNS4yMDE5IC0gMjA6MjE8L3ByZT4NCiAgICAgICAgICAgIDxocj4NCiAgICAgICAgICAgIDxwPkhhbGxvIGRhcyBpc3QgZWluIFRlc3QuIFVuZCBub2NoIG1laHIgVGV4dC48L3A+DQogICAgICAgICAgPC9kaXY+DQogICAgICAgIDwvZGl2Pg0KICAgICAgLS0+DQoNCiAgICAgICAgPGRpdiBpZD0ibWVudS13cmFwcGVyIiBjbGFzcz0ibGF5b3V0LWxlZnQiPg0KICAgICAgICAgIDxkaXYgaWQ9ICJicmFuY2giPjwvZGl2Pg0KICAgICAgICAgIDxkaXYgaWQ9ImxvZ28iPjwvZGl2Pg0KICAgICAgICAgIDxuYXYgaWQ9Im1haW4tbWVudSI+PC9uYXY+DQogICAgICAgIDwvZGl2Pg0KDQogICAgICAgIDxkaXYgY2xhc3M9ImxheW91dC1yaWdodCI+DQoNCiAgICAgICAgICA8dGFibGUgaWQ9ImNsaWVudEluZm8iIGNsYXNzPSIiPg0KDQogICAgICAgICAgICA8dHI+DQogICAgICAgICAgICAgIDx0ZCBjbGFzcz0idGRLZXkiPnhUZVZlOjwvdGQ+DQogICAgICAgICAgICAgIDx0ZCBpZD0idmVyc2lvbiIgY2xhc3M9InRkVmFsIj4mbmJzcDs8L3RkPg0KICAgICAgICAgICAgICA8dGQgY2xhc3M9InRkS2V5Ij5PUzo8L3RkPg0KICAgICAgICAgICAgICA8dGQgaWQ9Im9zIiBjbGFzcz0idGRWYWwiPiZuYnNwOzwvdGQ+DQogICAgICAgICAgICAgIDx0ZCBjbGFzcz0idGRLZXkgcGhvbmUiPkRWUiBJUDo8L3RkPg0KICAgICAgICAgICAgICA8dGQgaWQ9IkRWUiIgY2xhc3M9InRkVmFsIHBob25lIj4mbmJzcDs8L3RkPg0KICAgICAgICAgICAgPC90cj4NCg0KICAgICAgICAgICAgPHRyPg0KICAgICAgICAgICAgICA8dGQgY2xhc3M9InRkS2V5Ij5VVUlEOjwvdGQ+DQogICAgICAgICAgICAgIDx0ZCBpZD0idXVpZCIgY2xhc3M9InRkVmFsIj4mbmJzcDs8L3RkPg0KICAgICAgICAgICAgICA8dGQgY2xhc3M9InRkS2V5Ij5BcmNoOjwvdGQ+DQogICAgICAgICAgICAgIDx0ZCBpZD0iYXJjaCIgY2xhc3M9InRkVmFsIj4mbmJzcDs8L3RkPg0KICAgICAgICAgICAgICA8dGQgY2xhc3M9InRkS2V5IHBob25lIj5NM1UgVVJMOjwvdGQ+DQogICAgICAgICAgICAgIDx0ZCBpZD0ibTN1LXVybCIgY2xhc3M9InRkVmFsIHBob25lIj4mbmJzcDs8L3RkPg0KICAgICAgICAgICAgPC90cj4NCg0KICAgICAgICAgICAgPHRyPg0KICAgICAgICAgICAgICA8dGQgY2xhc3M9InRkS2V5Ij5BdmFpbGFibGUgU3RyZWFtczo8L3RkPg0KICAgICAgICAgICAgICA8dGQgaWQ9InN0cmVhbXMiIGNsYXNzPSJ0ZFZhbCI+Jm5ic3A7PC90ZD4NCiAgICAgICAgICAgICAgPHRkIGNsYXNzPSJ0ZEtleSI+RVBHIFNvdXJjZTo8L3RkPg0KICAgICAgICAgICAgICA8dGQgaWQ9ImVwZ1NvdXJjZSIgY2xhc3M9InRkVmFsIj4mbmJzcDs8L3RkPg0KICAgICAgICAgICAgICA8dGQgY2xhc3M9InRkS2V5IHBob25lIj5YRVBHIFVSTDo8L3RkPg0KICAgICAgICAgICAgICA8dGQgaWQ9InhlcGctdXJsIiBjbGFzcz0idGRWYWwgcGhvbmUiPiZuYnNwOzwvdGQ+DQogICAgICAgICAgICA8L3RyPg0KDQogICAgICAgICAgICA8dHI+DQogICAgICAgICAgICAgIDx0ZCBjbGFzcz0idGRLZXkiPlhFUEcgQ2hhbm5lbHM6PC90ZD4NCiAgICAgICAgICAgICAgPHRkIGlkPSJ4ZXBnIiBjbGFzcz0idGRWYWwiPiZuYnNwOzwvdGQ+DQogICAgICAgICAgICAgIDx0ZCBjbGFzcz0idGRLZXkiPkVycm9yczo8L3RkPg0KICAgICAgICAgICAgICA8dGQgaWQ9ImVycm9ycyIgY2xhc3M9InRkVmFsIj4mbmJzcDs8L3RkPg0KICAgICAgICAgICAgICA8dGQgY2xhc3M9InRkS2V5Ij5XYXJuaW5nczo8L3RkPg0KICAgICAgICAgICAgICA8dGQgaWQ9Indhcm5pbmdzIiBjbGFzcz0idGRWYWwiPiZuYnNwOzwvdGQ+DQogICAgICAgICAgICA8L3RyPg0KDQogICAgICAgICAgPC90YWJsZT4NCiAgICAgICAgIA0KICAgICAgICAgIDxkaXYgaWQ9Im15U3RyZWFtc0JveCIgY2xhc3M9Im5vdFZpc2libGUiPg0KDQogICAgICAgICAgICA8ZGl2IGlkPSJhbGxTdHJlYW1zIj4NCiAgICAgICAgICAgICAgPHRhYmxlIGlkPSJhY3RpdmVTdHJlYW1zIj48L3RhYmxlPg0KICAgICAgICAgICAgICA8dGFibGUgaWQ9ImluYWN0aXZlU3RyZWFtcyI+PC90YWJsZT4NCiAgICAgICAgICAgIDwvZGl2Pg0KDQogICAgICAgICAgPC9kaXY+DQogICAgICAgICAgDQogICAgICAgICAgPGRpdiBpZD0iY29udGVudCIgY2xhc3M9IiI+PC9kaXY+DQogICAgICAgICAgICANCiAgICAgICAgPC9kaXY+DQoNCiAgICAgIDwvZGl2Pg0KICAgICAgDQogICAgPC9ib2R5Pg0KICAgIA0KPC9odG1sPg==" webUI["html/js/authentication_ts.js"] = "ZnVuY3Rpb24gbG9naW4oKSB7DQogICAgdmFyIGVyciA9IGZhbHNlOw0KICAgIHZhciBkYXRhID0gbmV3IE9iamVjdCgpOw0KICAgIHZhciBkaXYgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29udGVudCIpOw0KICAgIHZhciBmb3JtID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImF1dGhlbnRpY2F0aW9uIik7DQogICAgdmFyIGlucHV0cyA9IGRpdi5nZXRFbGVtZW50c0J5VGFnTmFtZSgiSU5QVVQiKTsNCiAgICBjb25zb2xlLmxvZyhpbnB1dHMpOw0KICAgIGZvciAodmFyIGkgPSBpbnB1dHMubGVuZ3RoIC0gMTsgaSA+PSAwOyBpLS0pIHsNCiAgICAgICAgdmFyIGtleSA9IGlucHV0c1tpXS5uYW1lOw0KICAgICAgICB2YXIgdmFsdWUgPSBpbnB1dHNbaV0udmFsdWU7DQogICAgICAgIGlmICh2YWx1ZS5sZW5ndGggPT0gMCkgew0KICAgICAgICAgICAgaW5wdXRzW2ldLnN0eWxlLmJvcmRlckNvbG9yID0gInJlZCI7DQogICAgICAgICAgICBlcnIgPSB0cnVlOw0KICAgICAgICB9DQogICAgICAgIGRhdGFba2V5XSA9IHZhbHVlOw0KICAgIH0NCiAgICBpZiAoZXJyID09IHRydWUpIHsNCiAgICAgICAgZGF0YSA9IG5ldyBPYmplY3QoKTsNCiAgICAgICAgcmV0dXJuOw0KICAgIH0NCiAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgiY29uZmlybSIpKSB7DQogICAgICAgIGlmIChkYXRhWyJjb25maXJtIl0gIT0gZGF0YVsicGFzc3dvcmQiXSkgew0KICAgICAgICAgICAgYWxlcnQoInNkYWZzZCIpOw0KICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Bhc3N3b3JkJykuc3R5bGUuYm9yZGVyQ29sb3IgPSAicmVkIjsNCiAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjb25maXJtJykuc3R5bGUuYm9yZGVyQ29sb3IgPSAicmVkIjsNCiAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJlcnIiKS5pbm5lckhUTUwgPSAie3suYWNjb3VudC5mYWlsZWR9fSI7DQogICAgICAgICAgICByZXR1cm47DQogICAgICAgIH0NCiAgICB9DQogICAgY29uc29sZS5sb2coZGF0YSk7DQogICAgZm9ybS5zdWJtaXQoKTsNCn0NCg==" - webUI["html/js/base_ts.js"] = "dmFyIFNFUlZFUiA9IG5ldyBPYmplY3QoKTsNCnZhciBCVUxLX0VESVQgPSBmYWxzZTsNCnZhciBDT0xVTU5fVE9fU09SVDsNCnZhciBTRUFSQ0hfTUFQUElORyA9IG5ldyBPYmplY3QoKTsNCnZhciBVTkRPID0gbmV3IE9iamVjdCgpOw0KdmFyIFNFUlZFUl9DT05ORUNUSU9OID0gZmFsc2U7DQp2YXIgV1NfQVZBSUxBQkxFID0gZmFsc2U7DQovLyBNZW51DQp2YXIgbWVudUl0ZW1zID0gbmV3IEFycmF5KCk7DQptZW51SXRlbXMucHVzaChuZXcgTWFpbk1lbnVJdGVtKCJwbGF5bGlzdCIsICJ7ey5tYWluTWVudS5pdGVtLnBsYXlsaXN0fX0iLCAibTN1LnBuZyIsICJ7ey5tYWluTWVudS5oZWFkbGluZS5wbGF5bGlzdH19IikpOw0KLy9tZW51SXRlbXMucHVzaChuZXcgTWFpbk1lbnVJdGVtKCJwbXNJRCIsICJ7ey5tYWluTWVudS5pdGVtLnBtc0lEfX0iLCAibnVtYmVyLnBuZyIsICJ7ey5tYWluTWVudS5oZWFkbGluZS5wbXNJRH19IikpDQptZW51SXRlbXMucHVzaChuZXcgTWFpbk1lbnVJdGVtKCJmaWx0ZXIiLCAie3subWFpbk1lbnUuaXRlbS5maWx0ZXJ9fSIsICJmaWx0ZXIucG5nIiwgInt7Lm1haW5NZW51LmhlYWRsaW5lLmZpbHRlcn19IikpOw0KbWVudUl0ZW1zLnB1c2gobmV3IE1haW5NZW51SXRlbSgieG1sdHYiLCAie3subWFpbk1lbnUuaXRlbS54bWx0dn19IiwgInhtbHR2LnBuZyIsICJ7ey5tYWluTWVudS5oZWFkbGluZS54bWx0dn19IikpOw0KbWVudUl0ZW1zLnB1c2gobmV3IE1haW5NZW51SXRlbSgibWFwcGluZyIsICJ7ey5tYWluTWVudS5pdGVtLm1hcHBpbmd9fSIsICJtYXBwaW5nLnBuZyIsICJ7ey5tYWluTWVudS5oZWFkbGluZS5tYXBwaW5nfX0iKSk7DQptZW51SXRlbXMucHVzaChuZXcgTWFpbk1lbnVJdGVtKCJ1c2VycyIsICJ7ey5tYWluTWVudS5pdGVtLnVzZXJzfX0iLCAidXNlcnMucG5nIiwgInt7Lm1haW5NZW51LmhlYWRsaW5lLnVzZXJzfX0iKSk7DQptZW51SXRlbXMucHVzaChuZXcgTWFpbk1lbnVJdGVtKCJzZXR0aW5ncyIsICJ7ey5tYWluTWVudS5pdGVtLnNldHRpbmdzfX0iLCAic2V0dGluZ3MucG5nIiwgInt7Lm1haW5NZW51LmhlYWRsaW5lLnNldHRpbmdzfX0iKSk7DQptZW51SXRlbXMucHVzaChuZXcgTWFpbk1lbnVJdGVtKCJsb2ciLCAie3subWFpbk1lbnUuaXRlbS5sb2d9fSIsICJsb2cucG5nIiwgInt7Lm1haW5NZW51LmhlYWRsaW5lLmxvZ319IikpOw0KbWVudUl0ZW1zLnB1c2gobmV3IE1haW5NZW51SXRlbSgibG9nb3V0IiwgInt7Lm1haW5NZW51Lml0ZW0ubG9nb3V0fX0iLCAibG9nb3V0LnBuZyIsICJ7ey5tYWluTWVudS5oZWFkbGluZS5sb2dvdXR9fSIpKTsNCi8vIFNldHRpbmdzIGNhdGVnb3JpZXMNCnZhciBzZXR0aW5nc0NhdGVnb3J5ID0gbmV3IEFycmF5KCk7DQpzZXR0aW5nc0NhdGVnb3J5LnB1c2gobmV3IFNldHRpbmdzQ2F0ZWdvcnlJdGVtKCJ7ey5zZXR0aW5ncy5jYXRlZ29yeS5nZW5lcmFsfX0iLCAieHRldmVBdXRvVXBkYXRlLHR1bmVyLGVwZ1NvdXJjZSxhcGkiKSk7DQpzZXR0aW5nc0NhdGVnb3J5LnB1c2gobmV3IFNldHRpbmdzQ2F0ZWdvcnlJdGVtKCJ7ey5zZXR0aW5ncy5jYXRlZ29yeS5maWxlc319IiwgInVwZGF0ZSxmaWxlcy51cGRhdGUsdGVtcC5wYXRoLGNhY2hlLmltYWdlcyx4ZXBnLnJlcGxhY2UubWlzc2luZy5pbWFnZXMiKSk7DQpzZXR0aW5nc0NhdGVnb3J5LnB1c2gobmV3IFNldHRpbmdzQ2F0ZWdvcnlJdGVtKCJ7ey5zZXR0aW5ncy5jYXRlZ29yeS5zdHJlYW1pbmd9fSIsICJidWZmZXIsdWRweHksYnVmZmVyLnNpemUua2IsYnVmZmVyLnRpbWVvdXQsdXNlci5hZ2VudCxmZm1wZWcucGF0aCxmZm1wZWcub3B0aW9ucyx2bGMucGF0aCx2bGMub3B0aW9ucyIpKTsNCnNldHRpbmdzQ2F0ZWdvcnkucHVzaChuZXcgU2V0dGluZ3NDYXRlZ29yeUl0ZW0oInt7LnNldHRpbmdzLmNhdGVnb3J5LmJhY2t1cH19IiwgImJhY2t1cC5wYXRoLGJhY2t1cC5rZWVwIikpOw0Kc2V0dGluZ3NDYXRlZ29yeS5wdXNoKG5ldyBTZXR0aW5nc0NhdGVnb3J5SXRlbSgie3suc2V0dGluZ3MuY2F0ZWdvcnkuYXV0aGVudGljYXRpb259fSIsICJhdXRoZW50aWNhdGlvbi53ZWIsYXV0aGVudGljYXRpb24ucG1zLGF1dGhlbnRpY2F0aW9uLm0zdSxhdXRoZW50aWNhdGlvbi54bWwsYXV0aGVudGljYXRpb24uYXBpIikpOw0KZnVuY3Rpb24gc2hvd1BvcFVwRWxlbWVudChlbG0pIHsNCiAgICB2YXIgYWxsRWxlbWVudHMgPSBuZXcgQXJyYXkoInBvcHVwLWN1c3RvbSIpOw0KICAgIGZvciAodmFyIGkgPSAwOyBpIDwgYWxsRWxlbWVudHMubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgc2hvd0VsZW1lbnQoYWxsRWxlbWVudHNbaV0sIGZhbHNlKTsNCiAgICB9DQogICAgc2hvd0VsZW1lbnQoZWxtLCB0cnVlKTsNCiAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsNCiAgICAgICAgc2hvd0VsZW1lbnQoInBvcHVwIiwgdHJ1ZSk7DQogICAgfSwgMTApOw0KICAgIHJldHVybjsNCn0NCmZ1bmN0aW9uIHNob3dFbGVtZW50KGVsbUlELCB0eXBlKSB7DQogICAgdmFyIGNzc0NsYXNzOw0KICAgIHN3aXRjaCAodHlwZSkgew0KICAgICAgICBjYXNlIHRydWU6DQogICAgICAgICAgICBjc3NDbGFzcyA9ICJibG9jayI7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSBmYWxzZToNCiAgICAgICAgICAgIGNzc0NsYXNzID0gIm5vbmUiOw0KICAgICAgICAgICAgYnJlYWs7DQogICAgfQ0KICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGVsbUlEKS5jbGFzc05hbWUgPSBjc3NDbGFzczsNCn0NCmZ1bmN0aW9uIGNoYW5nZUJ1dHRvbkFjdGlvbihlbGVtZW50LCBidXR0b25JRCwgYXR0cmlidXRlKSB7DQogICAgdmFyIHZhbHVlID0gZWxlbWVudC5vcHRpb25zW2VsZW1lbnQuc2VsZWN0ZWRJbmRleF0udmFsdWU7DQogICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoYnV0dG9uSUQpLnNldEF0dHJpYnV0ZShhdHRyaWJ1dGUsIHZhbHVlKTsNCn0NCmZ1bmN0aW9uIGdldExvY2FsRGF0YShkYXRhVHlwZSwgaWQpIHsNCiAgICBsZXQgZGF0YSA9IHt9Ow0KICAgIHN3aXRjaCAoZGF0YVR5cGUpIHsNCiAgICAgICAgY2FzZSAibTN1IjoNCiAgICAgICAgICAgIGRhdGEgPSBTRVJWRVJbInNldHRpbmdzIl1bImZpbGVzIl1bZGF0YVR5cGVdW2lkXTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJoZGhyIjoNCiAgICAgICAgICAgIGRhdGEgPSBTRVJWRVJbInNldHRpbmdzIl1bImZpbGVzIl1bZGF0YVR5cGVdW2lkXTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJmaWx0ZXIiOg0KICAgICAgICBjYXNlICJjdXN0b20tZmlsdGVyIjoNCiAgICAgICAgY2FzZSAiZ3JvdXAtdGl0bGUiOg0KICAgICAgICAgICAgaWYgKGlkID09IC0xKSB7DQogICAgICAgICAgICAgICAgZGF0YVsiYWN0aXZlIl0gPSB0cnVlOw0KICAgICAgICAgICAgICAgIGRhdGFbImNhc2VTZW5zaXRpdmUiXSA9IGZhbHNlOw0KICAgICAgICAgICAgICAgIGRhdGFbImRlc2NyaXB0aW9uIl0gPSAiIjsNCiAgICAgICAgICAgICAgICBkYXRhWyJleGNsdWRlIl0gPSAiIjsNCiAgICAgICAgICAgICAgICBkYXRhWyJmaWx0ZXIiXSA9ICIiOw0KICAgICAgICAgICAgICAgIGRhdGFbImluY2x1ZGUiXSA9ICIiOw0KICAgICAgICAgICAgICAgIGRhdGFbIm5hbWUiXSA9ICIiOw0KICAgICAgICAgICAgICAgIGRhdGFbInR5cGUiXSA9ICJncm91cC10aXRsZSI7DQogICAgICAgICAgICAgICAgZGF0YVsicHJlc2VydmVNYXBwaW5nIl0gPSB0cnVlOw0KICAgICAgICAgICAgICAgIGRhdGFbInN0YXJ0aW5nQ2hhbm5lbCJdID0gU0VSVkVSWyJzZXR0aW5ncyJdWyJtYXBwaW5nLmZpcnN0LmNoYW5uZWwiXTsNCiAgICAgICAgICAgICAgICBkYXRhWyJkZWZhdWx0TWlzc2luZ0VQRyJdID0gIi0iOw0KICAgICAgICAgICAgICAgIFNFUlZFUlsic2V0dGluZ3MiXVsiZmlsdGVyIl1baWRdID0gZGF0YTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGRhdGEgPSBTRVJWRVJbInNldHRpbmdzIl1bImZpbHRlciJdW2lkXTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJ4bWx0diI6DQogICAgICAgICAgICBkYXRhID0gU0VSVkVSWyJzZXR0aW5ncyJdWyJmaWxlcyJdW2RhdGFUeXBlXVtpZF07DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSAidXNlcnMiOg0KICAgICAgICAgICAgZGF0YSA9IFNFUlZFUlsidXNlcnMiXVtpZF1bImRhdGEiXTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJtYXBwaW5nIjoNCiAgICAgICAgICAgIGRhdGEgPSBTRVJWRVJbInhlcGciXVsiZXBnTWFwcGluZyJdW2lkXTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJtM3VHcm91cHMiOg0KICAgICAgICAgICAgZGF0YSA9IFNFUlZFUlsiZGF0YSJdWyJwbGF5bGlzdCJdWyJtM3UiXVsiZ3JvdXBzIl07DQogICAgICAgICAgICBicmVhazsNCiAgICB9DQogICAgcmV0dXJuIGRhdGE7DQp9DQpmdW5jdGlvbiBnZXRPYmpLZXlzKG9iaikgew0KICAgIHZhciBrZXlzID0gbmV3IEFycmF5KCk7DQogICAgZm9yICh2YXIgaSBpbiBvYmopIHsNCiAgICAgICAgaWYgKG9iai5oYXNPd25Qcm9wZXJ0eShpKSkgew0KICAgICAgICAgICAga2V5cy5wdXNoKGkpOw0KICAgICAgICB9DQogICAgfQ0KICAgIHJldHVybiBrZXlzOw0KfQ0KZnVuY3Rpb24gZ2V0QWxsU2VsZWN0ZWRDaGFubmVscygpIHsNCiAgICB2YXIgY2hhbm5lbHMgPSBuZXcgQXJyYXkoKTsNCiAgICBpZiAoQlVMS19FRElUID09IGZhbHNlKSB7DQogICAgICAgIHJldHVybiBjaGFubmVsczsNCiAgICB9DQogICAgdmFyIHRycyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb250ZW50X3RhYmxlIikuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlRSIik7DQogICAgZm9yICh2YXIgaSA9IDE7IGkgPCB0cnMubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgaWYgKHRyc1tpXS5zdHlsZS5kaXNwbGF5ICE9ICJub25lIikgew0KICAgICAgICAgICAgaWYgKHRyc1tpXS5maXJzdENoaWxkLmZpcnN0Q2hpbGQuY2hlY2tlZCA9PSB0cnVlKSB7DQogICAgICAgICAgICAgICAgY2hhbm5lbHMucHVzaCh0cnNbaV0uaWQpOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQogICAgfQ0KICAgIHJldHVybiBjaGFubmVsczsNCn0NCmZ1bmN0aW9uIHNlbGVjdEFsbENoYW5uZWxzKCkgew0KICAgIHZhciBidWxrID0gZmFsc2U7DQogICAgdmFyIHRycyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb250ZW50X3RhYmxlIikuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlRSIik7DQogICAgaWYgKHRyc1swXS5maXJzdENoaWxkLmZpcnN0Q2hpbGQuY2hlY2tlZCA9PSB0cnVlKSB7DQogICAgICAgIGJ1bGsgPSB0cnVlOw0KICAgIH0NCiAgICBmb3IgKHZhciBpID0gMTsgaSA8IHRycy5sZW5ndGg7IGkrKykgew0KICAgICAgICBpZiAodHJzW2ldLnN0eWxlLmRpc3BsYXkgIT0gIm5vbmUiKSB7DQogICAgICAgICAgICBzd2l0Y2ggKGJ1bGspIHsNCiAgICAgICAgICAgICAgICBjYXNlIHRydWU6DQogICAgICAgICAgICAgICAgICAgIHRyc1tpXS5maXJzdENoaWxkLmZpcnN0Q2hpbGQuY2hlY2tlZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgZmFsc2U6DQogICAgICAgICAgICAgICAgICAgIHRyc1tpXS5maXJzdENoaWxkLmZpcnN0Q2hpbGQuY2hlY2tlZCA9IGZhbHNlOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KICAgIH0NCiAgICByZXR1cm47DQp9DQpmdW5jdGlvbiBidWxrRWRpdCgpIHsNCiAgICBCVUxLX0VESVQgPSAhQlVMS19FRElUOw0KICAgIHZhciBjbGFzc05hbWU7DQogICAgdmFyIHJvd3MgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCJidWxrIik7DQogICAgc3dpdGNoIChCVUxLX0VESVQpIHsNCiAgICAgICAgY2FzZSB0cnVlOg0KICAgICAgICAgICAgY2xhc3NOYW1lID0gImJ1bGsgc2hvd0J1bGsiOw0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGNhc2UgZmFsc2U6DQogICAgICAgICAgICBjbGFzc05hbWUgPSAiYnVsayBoaWRlQnVsayI7DQogICAgICAgICAgICBicmVhazsNCiAgICB9DQogICAgZm9yICh2YXIgaSA9IDA7IGkgPCByb3dzLmxlbmd0aDsgaSsrKSB7DQogICAgICAgIHJvd3NbaV0uY2xhc3NOYW1lID0gY2xhc3NOYW1lOw0KICAgICAgICByb3dzW2ldLmNoZWNrZWQgPSBmYWxzZTsNCiAgICB9DQogICAgcmV0dXJuOw0KfQ0KZnVuY3Rpb24gc29ydFRhYmxlKGNvbHVtbikgew0KICAgIC8vY29uc29sZS5sb2coY29sdW1tKTsNCiAgICBpZiAoY29sdW1uID09IENPTFVNTl9UT19TT1JUKSB7DQogICAgICAgIHJldHVybjsNCiAgICB9DQogICAgdmFyIHRhYmxlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnRlbnRfdGFibGUiKTsNCiAgICB2YXIgdGFibGVIZWFkID0gdGFibGUuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlRSIilbMF07DQogICAgdmFyIHRhYmxlSXRlbXMgPSB0YWJsZUhlYWQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlREIik7DQogICAgdmFyIHNvcnRPYmogPSBuZXcgT2JqZWN0KCk7DQogICAgdmFyIHgsIHhWYWx1ZTsNCiAgICB2YXIgdGFibGVIZWFkZXI7DQogICAgdmFyIHNvcnRCeVN0cmluZyA9IGZhbHNlOw0KICAgIGlmIChjb2x1bW4gPiAwICYmIENPTFVNTl9UT19TT1JUID4gMCkgew0KICAgICAgICB0YWJsZUl0ZW1zW0NPTFVNTl9UT19TT1JUXS5jbGFzc05hbWUgPSAicG9pbnRlciI7DQogICAgICAgIHRhYmxlSXRlbXNbY29sdW1uXS5jbGFzc05hbWUgPSAic29ydFRoaXMiOw0KICAgIH0NCiAgICBDT0xVTU5fVE9fU09SVCA9IGNvbHVtbjsNCiAgICB2YXIgcm93cyA9IHRhYmxlLnJvd3M7DQogICAgaWYgKHJvd3NbMV0gIT0gdW5kZWZpbmVkKSB7DQogICAgICAgIHRhYmxlSGVhZGVyID0gcm93c1swXTsNCiAgICAgICAgeCA9IHJvd3NbMV0uZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlREIilbY29sdW1uXTsNCiAgICAgICAgZm9yIChpID0gMTsgaSA8IHJvd3MubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgICAgIHggPSByb3dzW2ldLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJURCIpW2NvbHVtbl07DQogICAgICAgICAgICBzd2l0Y2ggKHguY2hpbGROb2Rlc1swXS50YWdOYW1lLnRvTG93ZXJDYXNlKCkpIHsNCiAgICAgICAgICAgICAgICBjYXNlICJpbnB1dCI6DQogICAgICAgICAgICAgICAgICAgIHhWYWx1ZSA9IHguZ2V0RWxlbWVudHNCeVRhZ05hbWUoIklOUFVUIilbMF0udmFsdWUudG9Mb3dlckNhc2UoKTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAicCI6DQogICAgICAgICAgICAgICAgICAgIHhWYWx1ZSA9IHguZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlAiKVswXS5pbm5lclRleHQudG9Mb3dlckNhc2UoKTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgZGVmYXVsdDogY29uc29sZS5sb2coeC5jaGlsZE5vZGVzWzBdLnRhZ05hbWUpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgaWYgKHhWYWx1ZSA9PSAiIiB8fCB4VmFsdWUgPT0gTmFOKSB7DQogICAgICAgICAgICAgICAgeFZhbHVlID0gaTsNCiAgICAgICAgICAgICAgICBzb3J0T2JqW2ldID0gcm93c1tpXTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgICAgIHN3aXRjaCAoaXNOYU4oeFZhbHVlKSB8fCB0eXBlb2YgeFZhbHVlID09ICJzdHJpbmciKSB7DQogICAgICAgICAgICAgICAgICAgIGNhc2UgZmFsc2U6DQogICAgICAgICAgICAgICAgICAgICAgICB4VmFsdWUgPSBwYXJzZUZsb2F0KHhWYWx1ZSk7DQogICAgICAgICAgICAgICAgICAgICAgICBzb3J0T2JqW3hWYWx1ZV0gPSByb3dzW2ldOw0KICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgICAgIGNhc2UgdHJ1ZToNCiAgICAgICAgICAgICAgICAgICAgICAgIHNvcnRCeVN0cmluZyA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBzb3J0T2JqW3hWYWx1ZS50b0xvd2VyQ2FzZSgpICsgaV0gPSByb3dzW2ldOw0KICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQogICAgICAgIHdoaWxlICh0YWJsZS5maXJzdENoaWxkKSB7DQogICAgICAgICAgICB0YWJsZS5yZW1vdmVDaGlsZCh0YWJsZS5maXJzdENoaWxkKTsNCiAgICAgICAgfQ0KICAgICAgICB2YXIgc29ydFZhbHVlcyA9IGdldE9iaktleXMoc29ydE9iaik7DQogICAgICAgIGlmIChzb3J0QnlTdHJpbmcgPT0gdHJ1ZSkgew0KICAgICAgICAgICAgc29ydFZhbHVlcy5zb3J0KCk7DQogICAgICAgICAgICBjb25zb2xlLmxvZyhzb3J0VmFsdWVzKTsNCiAgICAgICAgfQ0KICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgIGZ1bmN0aW9uIHNvcnRGbG9hdChhLCBiKSB7DQogICAgICAgICAgICAgICAgcmV0dXJuIGEgLSBiOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgc29ydFZhbHVlcy5zb3J0KHNvcnRGbG9hdCk7DQogICAgICAgIH0NCiAgICAgICAgdGFibGUuYXBwZW5kQ2hpbGQodGFibGVIZWFkZXIpOw0KICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHNvcnRWYWx1ZXMubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgICAgIHRhYmxlLmFwcGVuZENoaWxkKHNvcnRPYmpbc29ydFZhbHVlc1tpXV0pOw0KICAgICAgICB9DQogICAgfQ0KICAgIHJldHVybjsNCn0NCmZ1bmN0aW9uIGNyZWF0ZVNlYXJjaE9iaigpIHsNCiAgICBTRUFSQ0hfTUFQUElORyA9IG5ldyBPYmplY3QoKTsNCiAgICB2YXIgZGF0YSA9IFNFUlZFUlsieGVwZyJdWyJlcGdNYXBwaW5nIl07DQogICAgdmFyIGNoYW5uZWxzID0gZ2V0T2JqS2V5cyhkYXRhKTsNCiAgICB2YXIgY2hhbm5lbEtleXMgPSBbIngtYWN0aXZlIiwgIngtY2hhbm5lbElEIiwgIngtbmFtZSIsICJfZmlsZS5tM3UubmFtZSIsICJ4LWdyb3VwLXRpdGxlIiwgIngteG1sdHYtZmlsZSJdOw0KICAgIGNoYW5uZWxzLmZvckVhY2goaWQgPT4gew0KICAgICAgICBjaGFubmVsS2V5cy5mb3JFYWNoKGtleSA9PiB7DQogICAgICAgICAgICBpZiAoa2V5ID09ICJ4LWFjdGl2ZSIpIHsNCiAgICAgICAgICAgICAgICBzd2l0Y2ggKGRhdGFbaWRdW2tleV0pIHsNCiAgICAgICAgICAgICAgICAgICAgY2FzZSB0cnVlOg0KICAgICAgICAgICAgICAgICAgICAgICAgU0VBUkNIX01BUFBJTkdbaWRdID0gIm9ubGluZSAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgICAgIGNhc2UgZmFsc2U6DQogICAgICAgICAgICAgICAgICAgICAgICBTRUFSQ0hfTUFQUElOR1tpZF0gPSAib2ZmbGluZSAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgZWxzZSB7DQogICAgICAgICAgICAgICAgaWYgKGtleSA9PSAieC14bWx0di1maWxlIikgew0KICAgICAgICAgICAgICAgICAgICB2YXIgeG1sdHZGaWxlID0gZ2V0VmFsdWVGcm9tUHJvdmlkZXJGaWxlKGRhdGFbaWRdW2tleV0sICJ4bWx0diIsICJuYW1lIik7DQogICAgICAgICAgICAgICAgICAgIGlmICh4bWx0dkZpbGUgIT0gdW5kZWZpbmVkKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBTRUFSQ0hfTUFQUElOR1tpZF0gPSBTRUFSQ0hfTUFQUElOR1tpZF0gKyB4bWx0dkZpbGUgKyAiICI7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgZWxzZSB7DQogICAgICAgICAgICAgICAgICAgIFNFQVJDSF9NQVBQSU5HW2lkXSA9IFNFQVJDSF9NQVBQSU5HW2lkXSArIGRhdGFbaWRdW2tleV0gKyAiICI7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfQ0KICAgICAgICB9KTsNCiAgICB9KTsNCiAgICByZXR1cm47DQp9DQpmdW5jdGlvbiBzZWFyY2hJbk1hcHBpbmcoKSB7DQogICAgdmFyIHNlYXJjaFZhbHVlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNlYXJjaE1hcHBpbmciKS52YWx1ZTsNCiAgICB2YXIgdHJzID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnRlbnRfdGFibGUiKS5nZXRFbGVtZW50c0J5VGFnTmFtZSgiVFIiKTsNCiAgICBmb3IgKHZhciBpID0gMTsgaSA8IHRycy5sZW5ndGg7ICsraSkgew0KICAgICAgICB2YXIgaWQgPSB0cnNbaV0uZ2V0QXR0cmlidXRlKCJpZCIpOw0KICAgICAgICB2YXIgZWxlbWVudCA9IFNFQVJDSF9NQVBQSU5HW2lkXTsNCiAgICAgICAgc3dpdGNoIChlbGVtZW50LnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoc2VhcmNoVmFsdWUudG9Mb3dlckNhc2UoKSkpIHsNCiAgICAgICAgICAgIGNhc2UgdHJ1ZToNCiAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkuc3R5bGUuZGlzcGxheSA9ICIiOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSBmYWxzZToNCiAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkuc3R5bGUuZGlzcGxheSA9ICJub25lIjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgfQ0KICAgIH0NCiAgICByZXR1cm47DQp9DQpmdW5jdGlvbiBjYWxjdWxhdGVXcmFwcGVySGVpZ2h0KCkgew0KICAgIGlmIChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYm94LXdyYXBwZXIiKSkgew0KICAgICAgICB2YXIgZWxtID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImJveC13cmFwcGVyIik7DQogICAgICAgIHZhciBkaXZzID0gbmV3IEFycmF5KCJteVN0cmVhbXNCb3giLCAiY2xpZW50SW5mbyIsICJjb250ZW50Iik7DQogICAgICAgIHZhciBlbGVtZW50c0hlaWdodCA9IDAgLSBlbG0ub2Zmc2V0SGVpZ2h0Ow0KICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGRpdnMubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgICAgIGVsZW1lbnRzSGVpZ2h0ID0gZWxlbWVudHNIZWlnaHQgKyBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChkaXZzW2ldKS5vZmZzZXRIZWlnaHQ7DQogICAgICAgIH0NCiAgICAgICAgZWxtLnN0eWxlLmhlaWdodCA9IHdpbmRvdy5pbm5lckhlaWdodCAtIGVsZW1lbnRzSGVpZ2h0ICsgInB4IjsNCiAgICB9DQogICAgcmV0dXJuOw0KfQ0KZnVuY3Rpb24gY2hhbmdlQ2hhbm5lbE51bWJlcihlbGVtZW50KSB7DQogICAgdmFyIGRiSUQgPSBlbGVtZW50LnBhcmVudE5vZGUucGFyZW50Tm9kZS5pZDsNCiAgICB2YXIgbmV3TnVtYmVyID0gcGFyc2VGbG9hdChlbGVtZW50LnZhbHVlKTsNCiAgICB2YXIgY2hhbm5lbE51bWJlcnMgPSBbXTsNCiAgICB2YXIgZGF0YSA9IFNFUlZFUlsieGVwZyJdWyJlcGdNYXBwaW5nIl07DQogICAgdmFyIGNoYW5uZWxzID0gZ2V0T2JqS2V5cyhkYXRhKTsNCiAgICBpZiAoaXNOYU4obmV3TnVtYmVyKSkgew0KICAgICAgICBhbGVydCgie3suYWxlcnQuaW52YWxpZENoYW5uZWxOdW1iZXJ9fSIpOw0KICAgICAgICByZXR1cm47DQogICAgfQ0KICAgIGNoYW5uZWxzLmZvckVhY2goaWQgPT4gew0KICAgICAgICB2YXIgY2hhbm5lbE51bWJlciA9IHBhcnNlRmxvYXQoZGF0YVtpZF1bIngtY2hhbm5lbElEIl0pOw0KICAgICAgICBjaGFubmVsTnVtYmVycy5wdXNoKGNoYW5uZWxOdW1iZXIpOw0KICAgIH0pOw0KICAgIGZvciAodmFyIGkgPSAwOyBpIDwgY2hhbm5lbE51bWJlcnMubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgaWYgKGNoYW5uZWxOdW1iZXJzLmluZGV4T2YobmV3TnVtYmVyKSA9PSAtMSkgew0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIH0NCiAgICAgICAgaWYgKE1hdGguZmxvb3IobmV3TnVtYmVyKSA9PSBuZXdOdW1iZXIpIHsNCiAgICAgICAgICAgIG5ld051bWJlciA9IG5ld051bWJlciArIDE7DQogICAgICAgIH0NCiAgICAgICAgZWxzZSB7DQogICAgICAgICAgICBuZXdOdW1iZXIgPSBuZXdOdW1iZXIgKyAwLjE7DQogICAgICAgICAgICBuZXdOdW1iZXIudG9GaXhlZCgxKTsNCiAgICAgICAgICAgIG5ld051bWJlciA9IE1hdGgucm91bmQobmV3TnVtYmVyICogMTApIC8gMTA7DQogICAgICAgIH0NCiAgICB9DQogICAgZGF0YVtkYklEXVsieC1jaGFubmVsSUQiXSA9IG5ld051bWJlci50b1N0cmluZygpOw0KICAgIGVsZW1lbnQudmFsdWUgPSBuZXdOdW1iZXI7DQogICAgY29uc29sZS5sb2coZGF0YVtkYklEXVsieC1jaGFubmVsSUQiXSk7DQogICAgaWYgKENPTFVNTl9UT19TT1JUID09IDEpIHsNCiAgICAgICAgQ09MVU1OX1RPX1NPUlQgPSAtMTsNCiAgICAgICAgc29ydFRhYmxlKDEpOw0KICAgIH0NCiAgICByZXR1cm47DQp9DQpmdW5jdGlvbiBiYWNrdXAoKSB7DQogICAgdmFyIGRhdGEgPSBuZXcgT2JqZWN0KCk7DQogICAgY29uc29sZS5sb2coIkJhY2t1cCBkYXRhIik7DQogICAgdmFyIGNtZCA9ICJ4dGV2ZUJhY2t1cCI7DQogICAgY29uc29sZS5sb2coIlNFTkQgVE8gU0VSVkVSIik7DQogICAgY29uc29sZS5sb2coZGF0YSk7DQogICAgdmFyIHNlcnZlciA9IG5ldyBTZXJ2ZXIoY21kKTsNCiAgICBzZXJ2ZXIucmVxdWVzdChkYXRhKTsNCiAgICByZXR1cm47DQp9DQpmdW5jdGlvbiB0b2dnbGVDaGFubmVsU3RhdHVzKGlkKSB7DQogICAgdmFyIGVsZW1lbnQ7DQogICAgdmFyIHN0YXR1czsNCiAgICBpZiAoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImFjdGl2ZSIpKSB7DQogICAgICAgIHZhciBjaGVja2JveCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJhY3RpdmUiKTsNCiAgICAgICAgc3RhdHVzID0gKGNoZWNrYm94KS5jaGVja2VkOw0KICAgIH0NCiAgICB2YXIgaWRzID0gZ2V0QWxsU2VsZWN0ZWRDaGFubmVscygpOw0KICAgIGlmIChpZHMubGVuZ3RoID09IDApIHsNCiAgICAgICAgaWRzLnB1c2goaWQpOw0KICAgIH0NCiAgICBpZHMuZm9yRWFjaChpZCA9PiB7DQogICAgICAgIHZhciBjaGFubmVsID0gU0VSVkVSWyJ4ZXBnIl1bImVwZ01hcHBpbmciXVtpZF07DQogICAgICAgIGNoYW5uZWxbIngtYWN0aXZlIl0gPSBzdGF0dXM7DQogICAgICAgIHN3aXRjaCAoY2hhbm5lbFsieC1hY3RpdmUiXSkgew0KICAgICAgICAgICAgY2FzZSB0cnVlOg0KICAgICAgICAgICAgICAgIGlmIChjaGFubmVsWyJ4LXhtbHR2LWZpbGUiXSA9PSAiLSIgfHwgY2hhbm5lbFsieC1tYXBwaW5nIl0gPT0gIi0iKSB7DQogICAgICAgICAgICAgICAgICAgIGlmIChCVUxLX0VESVQgPT0gZmFsc2UpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGFsZXJ0KGNoYW5uZWxbIngtbmFtZSJdICsgIjogTWlzc2luZyBYTUxUViBmaWxlIC8gY2hhbm5lbCIpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2hlY2tib3guY2hlY2tlZCA9IGZhbHNlOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIGNoYW5uZWxbIngtYWN0aXZlIl0gPSBmYWxzZTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlIGZhbHNlOg0KICAgICAgICAgICAgICAgIC8vIGNvZGUuLi4NCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgfQ0KICAgICAgICBpZiAoY2hhbm5lbFsieC1hY3RpdmUiXSA9PSBmYWxzZSkgew0KICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpLmNsYXNzTmFtZSA9ICJub3RBY3RpdmVFUEciOw0KICAgICAgICB9DQogICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpLmNsYXNzTmFtZSA9ICJhY3RpdmVFUEciOw0KICAgICAgICB9DQogICAgfSk7DQp9DQpmdW5jdGlvbiB0b2dnbGVHcm91cFVwZGF0ZUNiKHhlcGdJZCwgdGFyZ2V0KSB7DQogICAgdGFyZ2V0LmNsYXNzTmFtZSA9ICdjaGFuZ2VkJzsNCiAgICBjb25zdCBncm91cElucHV0ID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignaW5wdXRbbmFtZT0ieC1ncm91cC10aXRsZSJdJyk7DQogICAgY29uc3QgbWFwcGluZyA9IGdldExvY2FsRGF0YSgnbWFwcGluZycsIHhlcGdJZCk7DQogICAgaWYgKHRhcmdldC5jaGVja2VkKSB7DQogICAgICAgIGdyb3VwSW5wdXQuZGF0YXNldC5vbGRWYWx1ZSA9IGdyb3VwSW5wdXQudmFsdWU7DQogICAgICAgIGdyb3VwSW5wdXQudmFsdWUgPSBtYXBwaW5nWydncm91cC10aXRsZSddOw0KICAgICAgICBncm91cElucHV0LmRpc2FibGVkID0gdHJ1ZTsNCiAgICB9DQogICAgZWxzZSB7DQogICAgICAgIGdyb3VwSW5wdXQudmFsdWUgPSBncm91cElucHV0LmRhdGFzZXQub2xkVmFsdWU7DQogICAgICAgIGdyb3VwSW5wdXQuZGlzYWJsZWQgPSBmYWxzZTsNCiAgICB9DQogICAgZ3JvdXBJbnB1dC5jbGFzc05hbWUgPSAnY2hhbmdlZCc7DQp9DQpmdW5jdGlvbiByZXN0b3JlKCkgew0KICAgIGlmIChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndXBsb2FkJykpIHsNCiAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3VwbG9hZCcpLnJlbW92ZSgpOw0KICAgIH0NCiAgICB2YXIgcmVzdG9yZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIklOUFVUIik7DQogICAgcmVzdG9yZS5zZXRBdHRyaWJ1dGUoInR5cGUiLCAiZmlsZSIpOw0KICAgIHJlc3RvcmUuc2V0QXR0cmlidXRlKCJjbGFzcyIsICJub3RWaXNpYmxlIik7DQogICAgcmVzdG9yZS5zZXRBdHRyaWJ1dGUoIm5hbWUiLCAiIik7DQogICAgcmVzdG9yZS5pZCA9ICJ1cGxvYWQiOw0KICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQocmVzdG9yZSk7DQogICAgcmVzdG9yZS5jbGljaygpOw0KICAgIHJlc3RvcmUub25jaGFuZ2UgPSBmdW5jdGlvbiAoKSB7DQogICAgICAgIHZhciBmaWxlbmFtZSA9IHJlc3RvcmUuZmlsZXNbMF0ubmFtZTsNCiAgICAgICAgdmFyIGNoZWNrID0gY29uZmlybSgiRmlsZTogIiArIGZpbGVuYW1lICsgIlxue3suY29uZmlybS5yZXN0b3JlfX0iKTsNCiAgICAgICAgaWYgKGNoZWNrID09IHRydWUpIHsNCiAgICAgICAgICAgIHZhciByZWFkZXIgPSBuZXcgRmlsZVJlYWRlcigpOw0KICAgICAgICAgICAgdmFyIGZpbGUgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCdpbnB1dFt0eXBlPWZpbGVdJykuZmlsZXNbMF07DQogICAgICAgICAgICBpZiAoZmlsZSkgew0KICAgICAgICAgICAgICAgIHJlYWRlci5yZWFkQXNEYXRhVVJMKGZpbGUpOw0KICAgICAgICAgICAgICAgIHJlYWRlci5vbmxvYWQgPSBmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKHJlYWRlci5yZXN1bHQpOw0KICAgICAgICAgICAgICAgICAgICB2YXIgZGF0YSA9IG5ldyBPYmplY3QoKTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGNtZCA9ICJ4dGV2ZVJlc3RvcmUiOw0KICAgICAgICAgICAgICAgICAgICBkYXRhWyJiYXNlNjQiXSA9IHJlYWRlci5yZXN1bHQ7DQogICAgICAgICAgICAgICAgICAgIHZhciBzZXJ2ZXIgPSBuZXcgU2VydmVyKGNtZCk7DQogICAgICAgICAgICAgICAgICAgIHNlcnZlci5yZXF1ZXN0KGRhdGEpOw0KICAgICAgICAgICAgICAgIH07DQogICAgICAgICAgICB9DQogICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICBhbGVydCgiRmlsZSBjb3VsZCBub3QgYmUgbG9hZGVkIik7DQogICAgICAgICAgICB9DQogICAgICAgICAgICByZXN0b3JlLnJlbW92ZSgpOw0KICAgICAgICAgICAgcmV0dXJuOw0KICAgICAgICB9DQogICAgfTsNCiAgICByZXR1cm47DQp9DQpmdW5jdGlvbiB1cGxvYWRMb2dvKCkgew0KICAgIGlmIChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndXBsb2FkJykpIHsNCiAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3VwbG9hZCcpLnJlbW92ZSgpOw0KICAgIH0NCiAgICB2YXIgdXBsb2FkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiSU5QVVQiKTsNCiAgICB1cGxvYWQuc2V0QXR0cmlidXRlKCJ0eXBlIiwgImZpbGUiKTsNCiAgICB1cGxvYWQuc2V0QXR0cmlidXRlKCJjbGFzcyIsICJub3RWaXNpYmxlIik7DQogICAgdXBsb2FkLnNldEF0dHJpYnV0ZSgibmFtZSIsICIiKTsNCiAgICB1cGxvYWQuaWQgPSAidXBsb2FkIjsNCiAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHVwbG9hZCk7DQogICAgdXBsb2FkLmNsaWNrKCk7DQogICAgdXBsb2FkLm9uYmx1ciA9IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgYWxlcnQoKTsNCiAgICB9Ow0KICAgIHVwbG9hZC5vbmNoYW5nZSA9IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgdmFyIGZpbGVuYW1lID0gdXBsb2FkLmZpbGVzWzBdLm5hbWU7DQogICAgICAgIHZhciByZWFkZXIgPSBuZXcgRmlsZVJlYWRlcigpOw0KICAgICAgICB2YXIgZmlsZSA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ2lucHV0W3R5cGU9ZmlsZV0nKS5maWxlc1swXTsNCiAgICAgICAgaWYgKGZpbGUpIHsNCiAgICAgICAgICAgIHJlYWRlci5yZWFkQXNEYXRhVVJMKGZpbGUpOw0KICAgICAgICAgICAgcmVhZGVyLm9ubG9hZCA9IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhyZWFkZXIucmVzdWx0KTsNCiAgICAgICAgICAgICAgICB2YXIgZGF0YSA9IG5ldyBPYmplY3QoKTsNCiAgICAgICAgICAgICAgICB2YXIgY21kID0gInVwbG9hZExvZ28iOw0KICAgICAgICAgICAgICAgIGRhdGFbImJhc2U2NCJdID0gcmVhZGVyLnJlc3VsdDsNCiAgICAgICAgICAgICAgICBkYXRhWyJmaWxlbmFtZSJdID0gZmlsZS5uYW1lOw0KICAgICAgICAgICAgICAgIHZhciBzZXJ2ZXIgPSBuZXcgU2VydmVyKGNtZCk7DQogICAgICAgICAgICAgICAgc2VydmVyLnJlcXVlc3QoZGF0YSk7DQogICAgICAgICAgICAgICAgdmFyIHVwZGF0ZUxvZ28gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndXBkYXRlLWljb24nKTsNCiAgICAgICAgICAgICAgICB1cGRhdGVMb2dvLmNoZWNrZWQgPSBmYWxzZTsNCiAgICAgICAgICAgICAgICB1cGRhdGVMb2dvLmNsYXNzTmFtZSA9ICJjaGFuZ2VkIjsNCiAgICAgICAgICAgIH07DQogICAgICAgIH0NCiAgICAgICAgZWxzZSB7DQogICAgICAgICAgICBhbGVydCgiRmlsZSBjb3VsZCBub3QgYmUgbG9hZGVkIik7DQogICAgICAgIH0NCiAgICAgICAgdXBsb2FkLnJlbW92ZSgpOw0KICAgICAgICByZXR1cm47DQogICAgfTsNCn0NCmZ1bmN0aW9uIGNoZWNrVW5kbyhrZXkpIHsNCiAgICBzd2l0Y2ggKGtleSkgew0KICAgICAgICBjYXNlICJlcGdNYXBwaW5nIjoNCiAgICAgICAgICAgIGlmIChVTkRPLmhhc093blByb3BlcnR5KGtleSkpIHsNCiAgICAgICAgICAgICAgICBTRVJWRVJbInhlcGciXVtrZXldID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeShVTkRPW2tleV0pKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgICAgIFVORE9ba2V5XSA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkoU0VSVkVSWyJ4ZXBnIl1ba2V5XSkpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICBicmVhazsNCiAgICB9DQogICAgcmV0dXJuOw0KfQ0KZnVuY3Rpb24gc29ydFNlbGVjdChlbGVtKSB7DQogICAgdmFyIHRtcEFyeSA9IFtdOw0KICAgIHZhciBzZWxlY3RlZFZhbHVlID0gZWxlbVtlbGVtLnNlbGVjdGVkSW5kZXhdLnZhbHVlOw0KICAgIGZvciAodmFyIGkgPSAwOyBpIDwgZWxlbS5vcHRpb25zLmxlbmd0aDsgaSsrKQ0KICAgICAgICB0bXBBcnkucHVzaChlbGVtLm9wdGlvbnNbaV0pOw0KICAgIHRtcEFyeS5zb3J0KGZ1bmN0aW9uIChhLCBiKSB7IHJldHVybiAoYS50ZXh0IDwgYi50ZXh0KSA/IC0xIDogMTsgfSk7DQogICAgd2hpbGUgKGVsZW0ub3B0aW9ucy5sZW5ndGggPiAwKQ0KICAgICAgICBlbGVtLm9wdGlvbnNbMF0gPSBudWxsOw0KICAgIHZhciBuZXdTZWxlY3RlZEluZGV4ID0gMDsNCiAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRtcEFyeS5sZW5ndGg7IGkrKykgew0KICAgICAgICBlbGVtLm9wdGlvbnNbaV0gPSB0bXBBcnlbaV07DQogICAgICAgIGlmIChlbGVtLm9wdGlvbnNbaV0udmFsdWUgPT0gc2VsZWN0ZWRWYWx1ZSkNCiAgICAgICAgICAgIG5ld1NlbGVjdGVkSW5kZXggPSBpOw0KICAgIH0NCiAgICBlbGVtLnNlbGVjdGVkSW5kZXggPSBuZXdTZWxlY3RlZEluZGV4OyAvLyBTZXQgbmV3IHNlbGVjdGVkIGluZGV4IGFmdGVyIHNvcnRpbmcNCiAgICByZXR1cm47DQp9DQpmdW5jdGlvbiB1cGRhdGVMb2coKSB7DQogICAgY29uc29sZS5sb2coIlRPS0VOIik7DQogICAgdmFyIHNlcnZlciA9IG5ldyBTZXJ2ZXIoInVwZGF0ZUxvZyIpOw0KICAgIHNlcnZlci5yZXF1ZXN0KG5ldyBPYmplY3QoKSk7DQp9DQo=" + webUI["html/js/base_ts.js"] = "dmFyIFNFUlZFUiA9IG5ldyBPYmplY3QoKTsNCnZhciBCVUxLX0VESVQgPSBmYWxzZTsNCnZhciBDT0xVTU5fVE9fU09SVDsNCnZhciBTRUFSQ0hfTUFQUElORyA9IG5ldyBPYmplY3QoKTsNCnZhciBVTkRPID0gbmV3IE9iamVjdCgpOw0KdmFyIFNFUlZFUl9DT05ORUNUSU9OID0gZmFsc2U7DQp2YXIgV1NfQVZBSUxBQkxFID0gZmFsc2U7DQovLyBNZW51DQp2YXIgbWVudUl0ZW1zID0gbmV3IEFycmF5KCk7DQptZW51SXRlbXMucHVzaChuZXcgTWFpbk1lbnVJdGVtKCJwbGF5bGlzdCIsICJ7ey5tYWluTWVudS5pdGVtLnBsYXlsaXN0fX0iLCAibTN1LnBuZyIsICJ7ey5tYWluTWVudS5oZWFkbGluZS5wbGF5bGlzdH19IikpOw0KLy9tZW51SXRlbXMucHVzaChuZXcgTWFpbk1lbnVJdGVtKCJwbXNJRCIsICJ7ey5tYWluTWVudS5pdGVtLnBtc0lEfX0iLCAibnVtYmVyLnBuZyIsICJ7ey5tYWluTWVudS5oZWFkbGluZS5wbXNJRH19IikpDQptZW51SXRlbXMucHVzaChuZXcgTWFpbk1lbnVJdGVtKCJmaWx0ZXIiLCAie3subWFpbk1lbnUuaXRlbS5maWx0ZXJ9fSIsICJmaWx0ZXIucG5nIiwgInt7Lm1haW5NZW51LmhlYWRsaW5lLmZpbHRlcn19IikpOw0KbWVudUl0ZW1zLnB1c2gobmV3IE1haW5NZW51SXRlbSgieG1sdHYiLCAie3subWFpbk1lbnUuaXRlbS54bWx0dn19IiwgInhtbHR2LnBuZyIsICJ7ey5tYWluTWVudS5oZWFkbGluZS54bWx0dn19IikpOw0KbWVudUl0ZW1zLnB1c2gobmV3IE1haW5NZW51SXRlbSgibWFwcGluZyIsICJ7ey5tYWluTWVudS5pdGVtLm1hcHBpbmd9fSIsICJtYXBwaW5nLnBuZyIsICJ7ey5tYWluTWVudS5oZWFkbGluZS5tYXBwaW5nfX0iKSk7DQptZW51SXRlbXMucHVzaChuZXcgTWFpbk1lbnVJdGVtKCJ1c2VycyIsICJ7ey5tYWluTWVudS5pdGVtLnVzZXJzfX0iLCAidXNlcnMucG5nIiwgInt7Lm1haW5NZW51LmhlYWRsaW5lLnVzZXJzfX0iKSk7DQptZW51SXRlbXMucHVzaChuZXcgTWFpbk1lbnVJdGVtKCJzZXR0aW5ncyIsICJ7ey5tYWluTWVudS5pdGVtLnNldHRpbmdzfX0iLCAic2V0dGluZ3MucG5nIiwgInt7Lm1haW5NZW51LmhlYWRsaW5lLnNldHRpbmdzfX0iKSk7DQptZW51SXRlbXMucHVzaChuZXcgTWFpbk1lbnVJdGVtKCJsb2ciLCAie3subWFpbk1lbnUuaXRlbS5sb2d9fSIsICJsb2cucG5nIiwgInt7Lm1haW5NZW51LmhlYWRsaW5lLmxvZ319IikpOw0KbWVudUl0ZW1zLnB1c2gobmV3IE1haW5NZW51SXRlbSgibG9nb3V0IiwgInt7Lm1haW5NZW51Lml0ZW0ubG9nb3V0fX0iLCAibG9nb3V0LnBuZyIsICJ7ey5tYWluTWVudS5oZWFkbGluZS5sb2dvdXR9fSIpKTsNCi8vIFNldHRpbmdzIGNhdGVnb3JpZXMNCnZhciBzZXR0aW5nc0NhdGVnb3J5ID0gbmV3IEFycmF5KCk7DQpzZXR0aW5nc0NhdGVnb3J5LnB1c2gobmV3IFNldHRpbmdzQ2F0ZWdvcnlJdGVtKCJ7ey5zZXR0aW5ncy5jYXRlZ29yeS5nZW5lcmFsfX0iLCAieHRldmVBdXRvVXBkYXRlLHR1bmVyLGVwZ1NvdXJjZSxhcGkiKSk7DQpzZXR0aW5nc0NhdGVnb3J5LnB1c2gobmV3IFNldHRpbmdzQ2F0ZWdvcnlJdGVtKCJ7ey5zZXR0aW5ncy5jYXRlZ29yeS5maWxlc319IiwgInVwZGF0ZSxmaWxlcy51cGRhdGUsdGVtcC5wYXRoLGNhY2hlLmltYWdlcyx4ZXBnLnJlcGxhY2UubWlzc2luZy5pbWFnZXMiKSk7DQpzZXR0aW5nc0NhdGVnb3J5LnB1c2gobmV3IFNldHRpbmdzQ2F0ZWdvcnlJdGVtKCJ7ey5zZXR0aW5ncy5jYXRlZ29yeS5zdHJlYW1pbmd9fSIsICJidWZmZXIsdWRweHksYnVmZmVyLnNpemUua2IsYnVmZmVyLnRpbWVvdXQsdXNlci5hZ2VudCxmZm1wZWcucGF0aCxmZm1wZWcub3B0aW9ucyx2bGMucGF0aCx2bGMub3B0aW9ucyIpKTsNCnNldHRpbmdzQ2F0ZWdvcnkucHVzaChuZXcgU2V0dGluZ3NDYXRlZ29yeUl0ZW0oInt7LnNldHRpbmdzLmNhdGVnb3J5LmJhY2t1cH19IiwgImJhY2t1cC5wYXRoLGJhY2t1cC5rZWVwIikpOw0Kc2V0dGluZ3NDYXRlZ29yeS5wdXNoKG5ldyBTZXR0aW5nc0NhdGVnb3J5SXRlbSgie3suc2V0dGluZ3MuY2F0ZWdvcnkuYXV0aGVudGljYXRpb259fSIsICJhdXRoZW50aWNhdGlvbi53ZWIsYXV0aGVudGljYXRpb24ucG1zLGF1dGhlbnRpY2F0aW9uLm0zdSxhdXRoZW50aWNhdGlvbi54bWwsYXV0aGVudGljYXRpb24uYXBpIikpOw0KZnVuY3Rpb24gc2hvd1BvcFVwRWxlbWVudChlbG0pIHsNCiAgICB2YXIgYWxsRWxlbWVudHMgPSBuZXcgQXJyYXkoInBvcHVwLWN1c3RvbSIpOw0KICAgIGZvciAodmFyIGkgPSAwOyBpIDwgYWxsRWxlbWVudHMubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgc2hvd0VsZW1lbnQoYWxsRWxlbWVudHNbaV0sIGZhbHNlKTsNCiAgICB9DQogICAgc2hvd0VsZW1lbnQoZWxtLCB0cnVlKTsNCiAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsNCiAgICAgICAgc2hvd0VsZW1lbnQoInBvcHVwIiwgdHJ1ZSk7DQogICAgfSwgMTApOw0KICAgIHJldHVybjsNCn0NCmZ1bmN0aW9uIHNob3dFbGVtZW50KGVsbUlELCB0eXBlKSB7DQogICAgdmFyIGNzc0NsYXNzOw0KICAgIHN3aXRjaCAodHlwZSkgew0KICAgICAgICBjYXNlIHRydWU6DQogICAgICAgICAgICBjc3NDbGFzcyA9ICJibG9jayI7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSBmYWxzZToNCiAgICAgICAgICAgIGNzc0NsYXNzID0gIm5vbmUiOw0KICAgICAgICAgICAgYnJlYWs7DQogICAgfQ0KICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGVsbUlEKS5jbGFzc05hbWUgPSBjc3NDbGFzczsNCn0NCmZ1bmN0aW9uIGNoYW5nZUJ1dHRvbkFjdGlvbihlbGVtZW50LCBidXR0b25JRCwgYXR0cmlidXRlKSB7DQogICAgdmFyIHZhbHVlID0gZWxlbWVudC5vcHRpb25zW2VsZW1lbnQuc2VsZWN0ZWRJbmRleF0udmFsdWU7DQogICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoYnV0dG9uSUQpLnNldEF0dHJpYnV0ZShhdHRyaWJ1dGUsIHZhbHVlKTsNCn0NCmZ1bmN0aW9uIGdldExvY2FsRGF0YShkYXRhVHlwZSwgaWQpIHsNCiAgICBsZXQgZGF0YSA9IHt9Ow0KICAgIHN3aXRjaCAoZGF0YVR5cGUpIHsNCiAgICAgICAgY2FzZSAibTN1IjoNCiAgICAgICAgICAgIGRhdGEgPSBTRVJWRVJbInNldHRpbmdzIl1bImZpbGVzIl1bZGF0YVR5cGVdW2lkXTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJoZGhyIjoNCiAgICAgICAgICAgIGRhdGEgPSBTRVJWRVJbInNldHRpbmdzIl1bImZpbGVzIl1bZGF0YVR5cGVdW2lkXTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJmaWx0ZXIiOg0KICAgICAgICBjYXNlICJjdXN0b20tZmlsdGVyIjoNCiAgICAgICAgY2FzZSAiZ3JvdXAtdGl0bGUiOg0KICAgICAgICAgICAgaWYgKGlkID09IC0xKSB7DQogICAgICAgICAgICAgICAgZGF0YVsiYWN0aXZlIl0gPSB0cnVlOw0KICAgICAgICAgICAgICAgIGRhdGFbImNhc2VTZW5zaXRpdmUiXSA9IGZhbHNlOw0KICAgICAgICAgICAgICAgIGRhdGFbImRlc2NyaXB0aW9uIl0gPSAiIjsNCiAgICAgICAgICAgICAgICBkYXRhWyJleGNsdWRlIl0gPSAiIjsNCiAgICAgICAgICAgICAgICBkYXRhWyJmaWx0ZXIiXSA9ICIiOw0KICAgICAgICAgICAgICAgIGRhdGFbImluY2x1ZGUiXSA9ICIiOw0KICAgICAgICAgICAgICAgIGRhdGFbIm5hbWUiXSA9ICIiOw0KICAgICAgICAgICAgICAgIGRhdGFbInR5cGUiXSA9ICJncm91cC10aXRsZSI7DQogICAgICAgICAgICAgICAgZGF0YVsicHJlc2VydmVNYXBwaW5nIl0gPSB0cnVlOw0KICAgICAgICAgICAgICAgIGRhdGFbInN0YXJ0aW5nQ2hhbm5lbCJdID0gU0VSVkVSWyJzZXR0aW5ncyJdWyJtYXBwaW5nLmZpcnN0LmNoYW5uZWwiXTsNCiAgICAgICAgICAgICAgICBkYXRhWyJkZWZhdWx0TWlzc2luZ0VQRyJdID0gIi0iOw0KICAgICAgICAgICAgICAgIFNFUlZFUlsic2V0dGluZ3MiXVsiZmlsdGVyIl1baWRdID0gZGF0YTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGRhdGEgPSBTRVJWRVJbInNldHRpbmdzIl1bImZpbHRlciJdW2lkXTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJ4bWx0diI6DQogICAgICAgICAgICBkYXRhID0gU0VSVkVSWyJzZXR0aW5ncyJdWyJmaWxlcyJdW2RhdGFUeXBlXVtpZF07DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSAidXNlcnMiOg0KICAgICAgICAgICAgZGF0YSA9IFNFUlZFUlsidXNlcnMiXVtpZF1bImRhdGEiXTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJtYXBwaW5nIjoNCiAgICAgICAgICAgIGRhdGEgPSBTRVJWRVJbInhlcGciXVsiZXBnTWFwcGluZyJdW2lkXTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJtM3VHcm91cHMiOg0KICAgICAgICAgICAgZGF0YSA9IFNFUlZFUlsiZGF0YSJdWyJwbGF5bGlzdCJdWyJtM3UiXVsiZ3JvdXBzIl07DQogICAgICAgICAgICBicmVhazsNCiAgICB9DQogICAgcmV0dXJuIGRhdGE7DQp9DQpmdW5jdGlvbiBnZXRPYmpLZXlzKG9iaikgew0KICAgIHZhciBrZXlzID0gbmV3IEFycmF5KCk7DQogICAgZm9yICh2YXIgaSBpbiBvYmopIHsNCiAgICAgICAgaWYgKG9iai5oYXNPd25Qcm9wZXJ0eShpKSkgew0KICAgICAgICAgICAga2V5cy5wdXNoKGkpOw0KICAgICAgICB9DQogICAgfQ0KICAgIHJldHVybiBrZXlzOw0KfQ0KZnVuY3Rpb24gZ2V0QWxsU2VsZWN0ZWRDaGFubmVscygpIHsNCiAgICB2YXIgY2hhbm5lbHMgPSBuZXcgQXJyYXkoKTsNCiAgICBpZiAoQlVMS19FRElUID09IGZhbHNlKSB7DQogICAgICAgIHJldHVybiBjaGFubmVsczsNCiAgICB9DQogICAgdmFyIHRycyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb250ZW50X3RhYmxlIikuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlRSIik7DQogICAgZm9yICh2YXIgaSA9IDE7IGkgPCB0cnMubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgaWYgKHRyc1tpXS5zdHlsZS5kaXNwbGF5ICE9ICJub25lIikgew0KICAgICAgICAgICAgaWYgKHRyc1tpXS5maXJzdENoaWxkLmZpcnN0Q2hpbGQuY2hlY2tlZCA9PSB0cnVlKSB7DQogICAgICAgICAgICAgICAgY2hhbm5lbHMucHVzaCh0cnNbaV0uaWQpOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQogICAgfQ0KICAgIHJldHVybiBjaGFubmVsczsNCn0NCmZ1bmN0aW9uIHNlbGVjdEFsbENoYW5uZWxzKCkgew0KICAgIHZhciBidWxrID0gZmFsc2U7DQogICAgdmFyIHRycyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb250ZW50X3RhYmxlIikuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlRSIik7DQogICAgaWYgKHRyc1swXS5maXJzdENoaWxkLmZpcnN0Q2hpbGQuY2hlY2tlZCA9PSB0cnVlKSB7DQogICAgICAgIGJ1bGsgPSB0cnVlOw0KICAgIH0NCiAgICBmb3IgKHZhciBpID0gMTsgaSA8IHRycy5sZW5ndGg7IGkrKykgew0KICAgICAgICBpZiAodHJzW2ldLnN0eWxlLmRpc3BsYXkgIT0gIm5vbmUiKSB7DQogICAgICAgICAgICBzd2l0Y2ggKGJ1bGspIHsNCiAgICAgICAgICAgICAgICBjYXNlIHRydWU6DQogICAgICAgICAgICAgICAgICAgIHRyc1tpXS5maXJzdENoaWxkLmZpcnN0Q2hpbGQuY2hlY2tlZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgZmFsc2U6DQogICAgICAgICAgICAgICAgICAgIHRyc1tpXS5maXJzdENoaWxkLmZpcnN0Q2hpbGQuY2hlY2tlZCA9IGZhbHNlOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KICAgIH0NCiAgICByZXR1cm47DQp9DQpmdW5jdGlvbiBidWxrRWRpdCgpIHsNCiAgICBCVUxLX0VESVQgPSAhQlVMS19FRElUOw0KICAgIHZhciBjbGFzc05hbWU7DQogICAgdmFyIHJvd3MgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCJidWxrIik7DQogICAgc3dpdGNoIChCVUxLX0VESVQpIHsNCiAgICAgICAgY2FzZSB0cnVlOg0KICAgICAgICAgICAgY2xhc3NOYW1lID0gImJ1bGsgc2hvd0J1bGsiOw0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGNhc2UgZmFsc2U6DQogICAgICAgICAgICBjbGFzc05hbWUgPSAiYnVsayBoaWRlQnVsayI7DQogICAgICAgICAgICBicmVhazsNCiAgICB9DQogICAgZm9yICh2YXIgaSA9IDA7IGkgPCByb3dzLmxlbmd0aDsgaSsrKSB7DQogICAgICAgIHJvd3NbaV0uY2xhc3NOYW1lID0gY2xhc3NOYW1lOw0KICAgICAgICByb3dzW2ldLmNoZWNrZWQgPSBmYWxzZTsNCiAgICB9DQogICAgcmV0dXJuOw0KfQ0KZnVuY3Rpb24gc29ydFRhYmxlKGNvbHVtbikgew0KICAgIGlmIChjb2x1bW4gPT0gQ09MVU1OX1RPX1NPUlQpIHsNCiAgICAgICAgcmV0dXJuOw0KICAgIH0NCiAgICBjb25zdCB0YWJsZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb250ZW50X3RhYmxlIik7DQogICAgY29uc3QgdGFibGVIZWFkID0gdGFibGUuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlRSIilbMF07DQogICAgY29uc3QgdGFibGVJdGVtcyA9IHRhYmxlSGVhZC5nZXRFbGVtZW50c0J5VGFnTmFtZSgiVEQiKTsNCiAgICBjb25zdCBzb3J0QXJyID0gW107DQogICAgbGV0IHhWYWx1ZTsNCiAgICBpZiAoY29sdW1uID49IDAgJiYgQ09MVU1OX1RPX1NPUlQgPj0gMCkgew0KICAgICAgICB0YWJsZUl0ZW1zW0NPTFVNTl9UT19TT1JUXS5jbGFzc05hbWUgPSAicG9pbnRlciI7DQogICAgICAgIHRhYmxlSXRlbXNbY29sdW1uXS5jbGFzc05hbWUgPSAic29ydFRoaXMiOw0KICAgIH0NCiAgICBDT0xVTU5fVE9fU09SVCA9IGNvbHVtbjsNCiAgICBjb25zdCByb3dzID0gdGFibGUucm93czsNCiAgICBpZiAocm93c1sxXSAhPSB1bmRlZmluZWQpIHsNCiAgICAgICAgY29uc3QgdGFibGVIZWFkZXIgPSByb3dzWzBdOw0KICAgICAgICBsZXQgeCA9IHJvd3NbMV0uZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlREIilbY29sdW1uXTsNCiAgICAgICAgZm9yIChsZXQgaSA9IDE7IGkgPCByb3dzLmxlbmd0aDsgaSsrKSB7DQogICAgICAgICAgICB4ID0gcm93c1tpXS5nZXRFbGVtZW50c0J5VGFnTmFtZSgiVEQiKVtjb2x1bW5dOw0KICAgICAgICAgICAgc3dpdGNoICh4LmNoaWxkTm9kZXNbMF0udGFnTmFtZS50b0xvd2VyQ2FzZSgpKSB7DQogICAgICAgICAgICAgICAgY2FzZSAiaW5wdXQiOg0KICAgICAgICAgICAgICAgICAgICB4VmFsdWUgPSB4LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJJTlBVVCIpWzBdLnZhbHVlLnRvTG93ZXJDYXNlKCk7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgInAiOg0KICAgICAgICAgICAgICAgICAgICB4VmFsdWUgPSB4LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJQIilbMF0uaW5uZXJUZXh0LnRvTG93ZXJDYXNlKCk7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKHguY2hpbGROb2Rlc1swXS50YWdOYW1lKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIHNvcnRBcnIucHVzaCh7IGtleTogeFZhbHVlID8geFZhbHVlIDogaSwgcm93OiByb3dzW2ldIH0pOw0KICAgICAgICB9DQogICAgICAgIHdoaWxlICh0YWJsZS5maXJzdENoaWxkKSB7DQogICAgICAgICAgICB0YWJsZS5yZW1vdmVDaGlsZCh0YWJsZS5maXJzdENoaWxkKTsNCiAgICAgICAgfQ0KICAgICAgICBzb3J0QXJyLnNvcnQoKHNlMSwgc2UyKSA9PiB7DQogICAgICAgICAgICBjb25zdCBzZTFLZXlOdW0gPSBwYXJzZUZsb2F0KFN0cmluZyhzZTEua2V5KSk7DQogICAgICAgICAgICBjb25zdCBzZTJLZXlOdW0gPSBwYXJzZUZsb2F0KFN0cmluZyhzZTIua2V5KSk7DQogICAgICAgICAgICBpZiAoIWlzTmFOKHNlMUtleU51bSkgJiYgIWlzTmFOKHNlMktleU51bSkpIHsNCiAgICAgICAgICAgICAgICByZXR1cm4gc2UxS2V5TnVtIC0gc2UyS2V5TnVtOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgaWYgKHNlMS5rZXkgPCBzZTIua2V5KSB7DQogICAgICAgICAgICAgICAgcmV0dXJuIC0xOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgaWYgKHNlMS5rZXkgPiBzZTIua2V5KSB7DQogICAgICAgICAgICAgICAgcmV0dXJuIDE7DQogICAgICAgICAgICB9DQogICAgICAgICAgICByZXR1cm4gMDsNCiAgICAgICAgfSk7DQogICAgICAgIHRhYmxlLmFwcGVuZENoaWxkKHRhYmxlSGVhZGVyKTsNCiAgICAgICAgc29ydEFyci5mb3JFYWNoKChzZSkgPT4gew0KICAgICAgICAgICAgdGFibGUuYXBwZW5kQ2hpbGQoc2Uucm93KTsNCiAgICAgICAgfSk7DQogICAgfQ0KICAgIHJldHVybjsNCn0NCmZ1bmN0aW9uIGNyZWF0ZVNlYXJjaE9iaigpIHsNCiAgICBTRUFSQ0hfTUFQUElORyA9IG5ldyBPYmplY3QoKTsNCiAgICB2YXIgZGF0YSA9IFNFUlZFUlsieGVwZyJdWyJlcGdNYXBwaW5nIl07DQogICAgdmFyIGNoYW5uZWxzID0gZ2V0T2JqS2V5cyhkYXRhKTsNCiAgICB2YXIgY2hhbm5lbEtleXMgPSBbIngtYWN0aXZlIiwgIngtY2hhbm5lbElEIiwgIngtbmFtZSIsICJfZmlsZS5tM3UubmFtZSIsICJ4LWdyb3VwLXRpdGxlIiwgIngteG1sdHYtZmlsZSJdOw0KICAgIGNoYW5uZWxzLmZvckVhY2goaWQgPT4gew0KICAgICAgICBjaGFubmVsS2V5cy5mb3JFYWNoKGtleSA9PiB7DQogICAgICAgICAgICBpZiAoa2V5ID09ICJ4LWFjdGl2ZSIpIHsNCiAgICAgICAgICAgICAgICBzd2l0Y2ggKGRhdGFbaWRdW2tleV0pIHsNCiAgICAgICAgICAgICAgICAgICAgY2FzZSB0cnVlOg0KICAgICAgICAgICAgICAgICAgICAgICAgU0VBUkNIX01BUFBJTkdbaWRdID0gIm9ubGluZSAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgICAgIGNhc2UgZmFsc2U6DQogICAgICAgICAgICAgICAgICAgICAgICBTRUFSQ0hfTUFQUElOR1tpZF0gPSAib2ZmbGluZSAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgZWxzZSB7DQogICAgICAgICAgICAgICAgaWYgKGtleSA9PSAieC14bWx0di1maWxlIikgew0KICAgICAgICAgICAgICAgICAgICB2YXIgeG1sdHZGaWxlID0gZ2V0VmFsdWVGcm9tUHJvdmlkZXJGaWxlKGRhdGFbaWRdW2tleV0sICJ4bWx0diIsICJuYW1lIik7DQogICAgICAgICAgICAgICAgICAgIGlmICh4bWx0dkZpbGUgIT0gdW5kZWZpbmVkKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBTRUFSQ0hfTUFQUElOR1tpZF0gPSBTRUFSQ0hfTUFQUElOR1tpZF0gKyB4bWx0dkZpbGUgKyAiICI7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgZWxzZSB7DQogICAgICAgICAgICAgICAgICAgIFNFQVJDSF9NQVBQSU5HW2lkXSA9IFNFQVJDSF9NQVBQSU5HW2lkXSArIGRhdGFbaWRdW2tleV0gKyAiICI7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfQ0KICAgICAgICB9KTsNCiAgICB9KTsNCiAgICByZXR1cm47DQp9DQpmdW5jdGlvbiBzZWFyY2hJbk1hcHBpbmcoKSB7DQogICAgdmFyIHNlYXJjaFZhbHVlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNlYXJjaE1hcHBpbmciKS52YWx1ZTsNCiAgICB2YXIgdHJzID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnRlbnRfdGFibGUiKS5nZXRFbGVtZW50c0J5VGFnTmFtZSgiVFIiKTsNCiAgICBmb3IgKHZhciBpID0gMTsgaSA8IHRycy5sZW5ndGg7ICsraSkgew0KICAgICAgICB2YXIgaWQgPSB0cnNbaV0uZ2V0QXR0cmlidXRlKCJpZCIpOw0KICAgICAgICB2YXIgZWxlbWVudCA9IFNFQVJDSF9NQVBQSU5HW2lkXTsNCiAgICAgICAgc3dpdGNoIChlbGVtZW50LnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoc2VhcmNoVmFsdWUudG9Mb3dlckNhc2UoKSkpIHsNCiAgICAgICAgICAgIGNhc2UgdHJ1ZToNCiAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkuc3R5bGUuZGlzcGxheSA9ICIiOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSBmYWxzZToNCiAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkuc3R5bGUuZGlzcGxheSA9ICJub25lIjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgfQ0KICAgIH0NCiAgICByZXR1cm47DQp9DQpmdW5jdGlvbiBjYWxjdWxhdGVXcmFwcGVySGVpZ2h0KCkgew0KICAgIGlmIChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYm94LXdyYXBwZXIiKSkgew0KICAgICAgICB2YXIgZWxtID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImJveC13cmFwcGVyIik7DQogICAgICAgIHZhciBkaXZzID0gbmV3IEFycmF5KCJteVN0cmVhbXNCb3giLCAiY2xpZW50SW5mbyIsICJjb250ZW50Iik7DQogICAgICAgIHZhciBlbGVtZW50c0hlaWdodCA9IDAgLSBlbG0ub2Zmc2V0SGVpZ2h0Ow0KICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGRpdnMubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgICAgIGVsZW1lbnRzSGVpZ2h0ID0gZWxlbWVudHNIZWlnaHQgKyBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChkaXZzW2ldKS5vZmZzZXRIZWlnaHQ7DQogICAgICAgIH0NCiAgICAgICAgZWxtLnN0eWxlLmhlaWdodCA9IHdpbmRvdy5pbm5lckhlaWdodCAtIGVsZW1lbnRzSGVpZ2h0ICsgInB4IjsNCiAgICB9DQogICAgcmV0dXJuOw0KfQ0KZnVuY3Rpb24gY2hhbmdlQ2hhbm5lbE51bWJlcihlbGVtZW50KSB7DQogICAgdmFyIGRiSUQgPSBlbGVtZW50LnBhcmVudE5vZGUucGFyZW50Tm9kZS5pZDsNCiAgICB2YXIgbmV3TnVtYmVyID0gcGFyc2VGbG9hdChlbGVtZW50LnZhbHVlKTsNCiAgICB2YXIgY2hhbm5lbE51bWJlcnMgPSBbXTsNCiAgICB2YXIgZGF0YSA9IFNFUlZFUlsieGVwZyJdWyJlcGdNYXBwaW5nIl07DQogICAgdmFyIGNoYW5uZWxzID0gZ2V0T2JqS2V5cyhkYXRhKTsNCiAgICBpZiAoaXNOYU4obmV3TnVtYmVyKSkgew0KICAgICAgICBhbGVydCgie3suYWxlcnQuaW52YWxpZENoYW5uZWxOdW1iZXJ9fSIpOw0KICAgICAgICByZXR1cm47DQogICAgfQ0KICAgIGNoYW5uZWxzLmZvckVhY2goaWQgPT4gew0KICAgICAgICB2YXIgY2hhbm5lbE51bWJlciA9IHBhcnNlRmxvYXQoZGF0YVtpZF1bIngtY2hhbm5lbElEIl0pOw0KICAgICAgICBjaGFubmVsTnVtYmVycy5wdXNoKGNoYW5uZWxOdW1iZXIpOw0KICAgIH0pOw0KICAgIGZvciAodmFyIGkgPSAwOyBpIDwgY2hhbm5lbE51bWJlcnMubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgaWYgKGNoYW5uZWxOdW1iZXJzLmluZGV4T2YobmV3TnVtYmVyKSA9PSAtMSkgew0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIH0NCiAgICAgICAgaWYgKE1hdGguZmxvb3IobmV3TnVtYmVyKSA9PSBuZXdOdW1iZXIpIHsNCiAgICAgICAgICAgIG5ld051bWJlciA9IG5ld051bWJlciArIDE7DQogICAgICAgIH0NCiAgICAgICAgZWxzZSB7DQogICAgICAgICAgICBuZXdOdW1iZXIgPSBuZXdOdW1iZXIgKyAwLjE7DQogICAgICAgICAgICBuZXdOdW1iZXIudG9GaXhlZCgxKTsNCiAgICAgICAgICAgIG5ld051bWJlciA9IE1hdGgucm91bmQobmV3TnVtYmVyICogMTApIC8gMTA7DQogICAgICAgIH0NCiAgICB9DQogICAgZGF0YVtkYklEXVsieC1jaGFubmVsSUQiXSA9IG5ld051bWJlci50b1N0cmluZygpOw0KICAgIGVsZW1lbnQudmFsdWUgPSBuZXdOdW1iZXI7DQogICAgY29uc29sZS5sb2coZGF0YVtkYklEXVsieC1jaGFubmVsSUQiXSk7DQogICAgaWYgKENPTFVNTl9UT19TT1JUID09IDEpIHsNCiAgICAgICAgQ09MVU1OX1RPX1NPUlQgPSAtMTsNCiAgICAgICAgc29ydFRhYmxlKDEpOw0KICAgIH0NCiAgICByZXR1cm47DQp9DQpmdW5jdGlvbiBiYWNrdXAoKSB7DQogICAgdmFyIGRhdGEgPSBuZXcgT2JqZWN0KCk7DQogICAgY29uc29sZS5sb2coIkJhY2t1cCBkYXRhIik7DQogICAgdmFyIGNtZCA9ICJ4dGV2ZUJhY2t1cCI7DQogICAgY29uc29sZS5sb2coIlNFTkQgVE8gU0VSVkVSIik7DQogICAgY29uc29sZS5sb2coZGF0YSk7DQogICAgdmFyIHNlcnZlciA9IG5ldyBTZXJ2ZXIoY21kKTsNCiAgICBzZXJ2ZXIucmVxdWVzdChkYXRhKTsNCiAgICByZXR1cm47DQp9DQpmdW5jdGlvbiB0b2dnbGVDaGFubmVsU3RhdHVzKGlkKSB7DQogICAgdmFyIGVsZW1lbnQ7DQogICAgdmFyIHN0YXR1czsNCiAgICBpZiAoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImFjdGl2ZSIpKSB7DQogICAgICAgIHZhciBjaGVja2JveCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJhY3RpdmUiKTsNCiAgICAgICAgc3RhdHVzID0gKGNoZWNrYm94KS5jaGVja2VkOw0KICAgIH0NCiAgICB2YXIgaWRzID0gZ2V0QWxsU2VsZWN0ZWRDaGFubmVscygpOw0KICAgIGlmIChpZHMubGVuZ3RoID09IDApIHsNCiAgICAgICAgaWRzLnB1c2goaWQpOw0KICAgIH0NCiAgICBpZHMuZm9yRWFjaChpZCA9PiB7DQogICAgICAgIHZhciBjaGFubmVsID0gU0VSVkVSWyJ4ZXBnIl1bImVwZ01hcHBpbmciXVtpZF07DQogICAgICAgIGNoYW5uZWxbIngtYWN0aXZlIl0gPSBzdGF0dXM7DQogICAgICAgIHN3aXRjaCAoY2hhbm5lbFsieC1hY3RpdmUiXSkgew0KICAgICAgICAgICAgY2FzZSB0cnVlOg0KICAgICAgICAgICAgICAgIGlmIChjaGFubmVsWyJ4LXhtbHR2LWZpbGUiXSA9PSAiLSIgfHwgY2hhbm5lbFsieC1tYXBwaW5nIl0gPT0gIi0iKSB7DQogICAgICAgICAgICAgICAgICAgIGlmIChCVUxLX0VESVQgPT0gZmFsc2UpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGFsZXJ0KGNoYW5uZWxbIngtbmFtZSJdICsgIjogTWlzc2luZyBYTUxUViBmaWxlIC8gY2hhbm5lbCIpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2hlY2tib3guY2hlY2tlZCA9IGZhbHNlOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIGNoYW5uZWxbIngtYWN0aXZlIl0gPSBmYWxzZTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlIGZhbHNlOg0KICAgICAgICAgICAgICAgIC8vIGNvZGUuLi4NCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgfQ0KICAgICAgICBpZiAoY2hhbm5lbFsieC1hY3RpdmUiXSA9PSBmYWxzZSkgew0KICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpLmNsYXNzTmFtZSA9ICJub3RBY3RpdmVFUEciOw0KICAgICAgICB9DQogICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpLmNsYXNzTmFtZSA9ICJhY3RpdmVFUEciOw0KICAgICAgICB9DQogICAgfSk7DQp9DQpmdW5jdGlvbiB0b2dnbGVHcm91cFVwZGF0ZUNiKHhlcGdJZCwgdGFyZ2V0KSB7DQogICAgdGFyZ2V0LmNsYXNzTmFtZSA9ICdjaGFuZ2VkJzsNCiAgICBjb25zdCBncm91cElucHV0ID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignaW5wdXRbbmFtZT0ieC1ncm91cC10aXRsZSJdJyk7DQogICAgY29uc3QgbWFwcGluZyA9IGdldExvY2FsRGF0YSgnbWFwcGluZycsIHhlcGdJZCk7DQogICAgaWYgKHRhcmdldC5jaGVja2VkKSB7DQogICAgICAgIGdyb3VwSW5wdXQuZGF0YXNldC5vbGRWYWx1ZSA9IGdyb3VwSW5wdXQudmFsdWU7DQogICAgICAgIGdyb3VwSW5wdXQudmFsdWUgPSBtYXBwaW5nWydncm91cC10aXRsZSddOw0KICAgICAgICBncm91cElucHV0LmRpc2FibGVkID0gdHJ1ZTsNCiAgICB9DQogICAgZWxzZSB7DQogICAgICAgIGdyb3VwSW5wdXQudmFsdWUgPSBncm91cElucHV0LmRhdGFzZXQub2xkVmFsdWU7DQogICAgICAgIGdyb3VwSW5wdXQuZGlzYWJsZWQgPSBmYWxzZTsNCiAgICB9DQogICAgZ3JvdXBJbnB1dC5jbGFzc05hbWUgPSAnY2hhbmdlZCc7DQp9DQpmdW5jdGlvbiByZXN0b3JlKCkgew0KICAgIGlmIChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndXBsb2FkJykpIHsNCiAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3VwbG9hZCcpLnJlbW92ZSgpOw0KICAgIH0NCiAgICB2YXIgcmVzdG9yZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIklOUFVUIik7DQogICAgcmVzdG9yZS5zZXRBdHRyaWJ1dGUoInR5cGUiLCAiZmlsZSIpOw0KICAgIHJlc3RvcmUuc2V0QXR0cmlidXRlKCJjbGFzcyIsICJub3RWaXNpYmxlIik7DQogICAgcmVzdG9yZS5zZXRBdHRyaWJ1dGUoIm5hbWUiLCAiIik7DQogICAgcmVzdG9yZS5pZCA9ICJ1cGxvYWQiOw0KICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQocmVzdG9yZSk7DQogICAgcmVzdG9yZS5jbGljaygpOw0KICAgIHJlc3RvcmUub25jaGFuZ2UgPSBmdW5jdGlvbiAoKSB7DQogICAgICAgIHZhciBmaWxlbmFtZSA9IHJlc3RvcmUuZmlsZXNbMF0ubmFtZTsNCiAgICAgICAgdmFyIGNoZWNrID0gY29uZmlybSgiRmlsZTogIiArIGZpbGVuYW1lICsgIlxue3suY29uZmlybS5yZXN0b3JlfX0iKTsNCiAgICAgICAgaWYgKGNoZWNrID09IHRydWUpIHsNCiAgICAgICAgICAgIHZhciByZWFkZXIgPSBuZXcgRmlsZVJlYWRlcigpOw0KICAgICAgICAgICAgdmFyIGZpbGUgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCdpbnB1dFt0eXBlPWZpbGVdJykuZmlsZXNbMF07DQogICAgICAgICAgICBpZiAoZmlsZSkgew0KICAgICAgICAgICAgICAgIHJlYWRlci5yZWFkQXNEYXRhVVJMKGZpbGUpOw0KICAgICAgICAgICAgICAgIHJlYWRlci5vbmxvYWQgPSBmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKHJlYWRlci5yZXN1bHQpOw0KICAgICAgICAgICAgICAgICAgICB2YXIgZGF0YSA9IG5ldyBPYmplY3QoKTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGNtZCA9ICJ4dGV2ZVJlc3RvcmUiOw0KICAgICAgICAgICAgICAgICAgICBkYXRhWyJiYXNlNjQiXSA9IHJlYWRlci5yZXN1bHQ7DQogICAgICAgICAgICAgICAgICAgIHZhciBzZXJ2ZXIgPSBuZXcgU2VydmVyKGNtZCk7DQogICAgICAgICAgICAgICAgICAgIHNlcnZlci5yZXF1ZXN0KGRhdGEpOw0KICAgICAgICAgICAgICAgIH07DQogICAgICAgICAgICB9DQogICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICBhbGVydCgiRmlsZSBjb3VsZCBub3QgYmUgbG9hZGVkIik7DQogICAgICAgICAgICB9DQogICAgICAgICAgICByZXN0b3JlLnJlbW92ZSgpOw0KICAgICAgICAgICAgcmV0dXJuOw0KICAgICAgICB9DQogICAgfTsNCiAgICByZXR1cm47DQp9DQpmdW5jdGlvbiB1cGxvYWRMb2dvKCkgew0KICAgIGlmIChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndXBsb2FkJykpIHsNCiAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3VwbG9hZCcpLnJlbW92ZSgpOw0KICAgIH0NCiAgICB2YXIgdXBsb2FkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiSU5QVVQiKTsNCiAgICB1cGxvYWQuc2V0QXR0cmlidXRlKCJ0eXBlIiwgImZpbGUiKTsNCiAgICB1cGxvYWQuc2V0QXR0cmlidXRlKCJjbGFzcyIsICJub3RWaXNpYmxlIik7DQogICAgdXBsb2FkLnNldEF0dHJpYnV0ZSgibmFtZSIsICIiKTsNCiAgICB1cGxvYWQuaWQgPSAidXBsb2FkIjsNCiAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHVwbG9hZCk7DQogICAgdXBsb2FkLmNsaWNrKCk7DQogICAgdXBsb2FkLm9uYmx1ciA9IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgYWxlcnQoKTsNCiAgICB9Ow0KICAgIHVwbG9hZC5vbmNoYW5nZSA9IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgdmFyIGZpbGVuYW1lID0gdXBsb2FkLmZpbGVzWzBdLm5hbWU7DQogICAgICAgIHZhciByZWFkZXIgPSBuZXcgRmlsZVJlYWRlcigpOw0KICAgICAgICB2YXIgZmlsZSA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ2lucHV0W3R5cGU9ZmlsZV0nKS5maWxlc1swXTsNCiAgICAgICAgaWYgKGZpbGUpIHsNCiAgICAgICAgICAgIHJlYWRlci5yZWFkQXNEYXRhVVJMKGZpbGUpOw0KICAgICAgICAgICAgcmVhZGVyLm9ubG9hZCA9IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhyZWFkZXIucmVzdWx0KTsNCiAgICAgICAgICAgICAgICB2YXIgZGF0YSA9IG5ldyBPYmplY3QoKTsNCiAgICAgICAgICAgICAgICB2YXIgY21kID0gInVwbG9hZExvZ28iOw0KICAgICAgICAgICAgICAgIGRhdGFbImJhc2U2NCJdID0gcmVhZGVyLnJlc3VsdDsNCiAgICAgICAgICAgICAgICBkYXRhWyJmaWxlbmFtZSJdID0gZmlsZS5uYW1lOw0KICAgICAgICAgICAgICAgIHZhciBzZXJ2ZXIgPSBuZXcgU2VydmVyKGNtZCk7DQogICAgICAgICAgICAgICAgc2VydmVyLnJlcXVlc3QoZGF0YSk7DQogICAgICAgICAgICAgICAgdmFyIHVwZGF0ZUxvZ28gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndXBkYXRlLWljb24nKTsNCiAgICAgICAgICAgICAgICB1cGRhdGVMb2dvLmNoZWNrZWQgPSBmYWxzZTsNCiAgICAgICAgICAgICAgICB1cGRhdGVMb2dvLmNsYXNzTmFtZSA9ICJjaGFuZ2VkIjsNCiAgICAgICAgICAgIH07DQogICAgICAgIH0NCiAgICAgICAgZWxzZSB7DQogICAgICAgICAgICBhbGVydCgiRmlsZSBjb3VsZCBub3QgYmUgbG9hZGVkIik7DQogICAgICAgIH0NCiAgICAgICAgdXBsb2FkLnJlbW92ZSgpOw0KICAgICAgICByZXR1cm47DQogICAgfTsNCn0NCmZ1bmN0aW9uIGNoZWNrVW5kbyhrZXkpIHsNCiAgICBzd2l0Y2ggKGtleSkgew0KICAgICAgICBjYXNlICJlcGdNYXBwaW5nIjoNCiAgICAgICAgICAgIGlmIChVTkRPLmhhc093blByb3BlcnR5KGtleSkpIHsNCiAgICAgICAgICAgICAgICBTRVJWRVJbInhlcGciXVtrZXldID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeShVTkRPW2tleV0pKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgICAgIFVORE9ba2V5XSA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkoU0VSVkVSWyJ4ZXBnIl1ba2V5XSkpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICBicmVhazsNCiAgICB9DQogICAgcmV0dXJuOw0KfQ0KZnVuY3Rpb24gc29ydFNlbGVjdChlbGVtKSB7DQogICAgdmFyIHRtcEFyeSA9IFtdOw0KICAgIHZhciBzZWxlY3RlZFZhbHVlID0gZWxlbVtlbGVtLnNlbGVjdGVkSW5kZXhdLnZhbHVlOw0KICAgIGZvciAodmFyIGkgPSAwOyBpIDwgZWxlbS5vcHRpb25zLmxlbmd0aDsgaSsrKQ0KICAgICAgICB0bXBBcnkucHVzaChlbGVtLm9wdGlvbnNbaV0pOw0KICAgIHRtcEFyeS5zb3J0KGZ1bmN0aW9uIChhLCBiKSB7IHJldHVybiAoYS50ZXh0IDwgYi50ZXh0KSA/IC0xIDogMTsgfSk7DQogICAgd2hpbGUgKGVsZW0ub3B0aW9ucy5sZW5ndGggPiAwKQ0KICAgICAgICBlbGVtLm9wdGlvbnNbMF0gPSBudWxsOw0KICAgIHZhciBuZXdTZWxlY3RlZEluZGV4ID0gMDsNCiAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRtcEFyeS5sZW5ndGg7IGkrKykgew0KICAgICAgICBlbGVtLm9wdGlvbnNbaV0gPSB0bXBBcnlbaV07DQogICAgICAgIGlmIChlbGVtLm9wdGlvbnNbaV0udmFsdWUgPT0gc2VsZWN0ZWRWYWx1ZSkNCiAgICAgICAgICAgIG5ld1NlbGVjdGVkSW5kZXggPSBpOw0KICAgIH0NCiAgICBlbGVtLnNlbGVjdGVkSW5kZXggPSBuZXdTZWxlY3RlZEluZGV4OyAvLyBTZXQgbmV3IHNlbGVjdGVkIGluZGV4IGFmdGVyIHNvcnRpbmcNCiAgICByZXR1cm47DQp9DQpmdW5jdGlvbiB1cGRhdGVMb2coKSB7DQogICAgY29uc29sZS5sb2coIlRPS0VOIik7DQogICAgdmFyIHNlcnZlciA9IG5ldyBTZXJ2ZXIoInVwZGF0ZUxvZyIpOw0KICAgIHNlcnZlci5yZXF1ZXN0KG5ldyBPYmplY3QoKSk7DQp9DQo=" webUI["html/js/classes_ts.js"] = "dmFyIF9fZXh0ZW5kcyA9ICh0aGlzICYmIHRoaXMuX19leHRlbmRzKSB8fCAoZnVuY3Rpb24gKCkgew0KICAgIHZhciBleHRlbmRTdGF0aWNzID0gZnVuY3Rpb24gKGQsIGIpIHsNCiAgICAgICAgZXh0ZW5kU3RhdGljcyA9IE9iamVjdC5zZXRQcm90b3R5cGVPZiB8fA0KICAgICAgICAgICAgKHsgX19wcm90b19fOiBbXSB9IGluc3RhbmNlb2YgQXJyYXkgJiYgZnVuY3Rpb24gKGQsIGIpIHsgZC5fX3Byb3RvX18gPSBiOyB9KSB8fA0KICAgICAgICAgICAgZnVuY3Rpb24gKGQsIGIpIHsgZm9yICh2YXIgcCBpbiBiKSBpZiAoYi5oYXNPd25Qcm9wZXJ0eShwKSkgZFtwXSA9IGJbcF07IH07DQogICAgICAgIHJldHVybiBleHRlbmRTdGF0aWNzKGQsIGIpOw0KICAgIH07DQogICAgcmV0dXJuIGZ1bmN0aW9uIChkLCBiKSB7DQogICAgICAgIGV4dGVuZFN0YXRpY3MoZCwgYik7DQogICAgICAgIGZ1bmN0aW9uIF9fKCkgeyB0aGlzLmNvbnN0cnVjdG9yID0gZDsgfQ0KICAgICAgICBkLnByb3RvdHlwZSA9IGIgPT09IG51bGwgPyBPYmplY3QuY3JlYXRlKGIpIDogKF9fLnByb3RvdHlwZSA9IGIucHJvdG90eXBlLCBuZXcgX18oKSk7DQogICAgfTsNCn0pKCk7DQp2YXIgTWFpbk1lbnUgPSAvKiogQGNsYXNzICovIChmdW5jdGlvbiAoKSB7DQogICAgZnVuY3Rpb24gTWFpbk1lbnUoKSB7DQogICAgICAgIHRoaXMuRG9jdW1lbnRJRCA9ICJtYWluLW1lbnUiOw0KICAgICAgICB0aGlzLkhUTUxUYWcgPSAiTEkiOw0KICAgIH0NCiAgICBNYWluTWVudS5wcm90b3R5cGUuY3JlYXRlID0gZnVuY3Rpb24gKCkgew0KICAgICAgICBjb25zb2xlLmxvZyh0aGlzLkRvY3VtZW50SUQpOw0KICAgIH07DQogICAgcmV0dXJuIE1haW5NZW51Ow0KfSgpKTsNCnZhciBNYWluTWVudUl0ZW0gPSAvKiogQGNsYXNzICovIChmdW5jdGlvbiAoX3N1cGVyKSB7DQogICAgX19leHRlbmRzKE1haW5NZW51SXRlbSwgX3N1cGVyKTsNCiAgICBmdW5jdGlvbiBNYWluTWVudUl0ZW0oKSB7DQogICAgICAgIHJldHVybiBfc3VwZXIgIT09IG51bGwgJiYgX3N1cGVyLmFwcGx5KHRoaXMsIGFyZ3VtZW50cykgfHwgdGhpczsNCiAgICB9DQogICAgTWFpbk1lbnVJdGVtLnByb3RvdHlwZS5jcmVhdGUyID0gZnVuY3Rpb24gKCkgew0KICAgICAgICB2YXIgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQodGhpcy5IVE1MVGFnKTsNCiAgICAgICAgZWxlbWVudC5pbm5lclRleHQgPSB0aGlzLlZhbHVlOw0KICAgICAgICBjb25zb2xlLmxvZyhlbGVtZW50KTsNCiAgICB9Ow0KICAgIHJldHVybiBNYWluTWVudUl0ZW07DQp9KE1haW5NZW51KSk7DQpmdW5jdGlvbiBwYWdlUmVhZHkoKSB7DQogICAgdmFyIGl0ZW0gPSBuZXcgTWFpbk1lbnVJdGVtKCk7DQogICAgaXRlbS5WYWx1ZSA9ICJUZXN0IjsNCiAgICBpdGVtLmNyZWF0ZTIoKTsNCn0NCg==" webUI["html/js/configuration_ts.js"] = "Y2xhc3MgV2l6YXJkQ2F0ZWdvcnkgew0KICAgIGNvbnN0cnVjdG9yKCkgew0KICAgICAgICB0aGlzLkRvY3VtZW50SUQgPSAiY29udGVudCI7DQogICAgfQ0KICAgIGNyZWF0ZUNhdGVnb3J5SGVhZGxpbmUodmFsdWUpIHsNCiAgICAgICAgdmFyIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJINCIpOw0KICAgICAgICBlbGVtZW50LmlubmVySFRNTCA9IHZhbHVlOw0KICAgICAgICByZXR1cm4gZWxlbWVudDsNCiAgICB9DQp9DQpjbGFzcyBXaXphcmRJdGVtIGV4dGVuZHMgV2l6YXJkQ2F0ZWdvcnkgew0KICAgIGNvbnN0cnVjdG9yKGtleSwgaGVhZGxpbmUpIHsNCiAgICAgICAgc3VwZXIoKTsNCiAgICAgICAgdGhpcy5oZWFkbGluZSA9IGhlYWRsaW5lOw0KICAgICAgICB0aGlzLmtleSA9IGtleTsNCiAgICB9DQogICAgY3JlYXRlV2l6YXJkKCkgew0KICAgICAgICB2YXIgaGVhZGxpbmUgPSB0aGlzLmNyZWF0ZUNhdGVnb3J5SGVhZGxpbmUodGhpcy5oZWFkbGluZSk7DQogICAgICAgIHZhciBrZXkgPSB0aGlzLmtleTsNCiAgICAgICAgdmFyIGNvbnRlbnQgPSBuZXcgUG9wdXBDb250ZW50KCk7DQogICAgICAgIHZhciBkZXNjcmlwdGlvbjsNCiAgICAgICAgdmFyIGRvYyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHRoaXMuRG9jdW1lbnRJRCk7DQogICAgICAgIGRvYy5pbm5lckhUTUwgPSAiIjsNCiAgICAgICAgZG9jLmFwcGVuZENoaWxkKGhlYWRsaW5lKTsNCiAgICAgICAgc3dpdGNoIChrZXkpIHsNCiAgICAgICAgICAgIGNhc2UgInR1bmVyIjoNCiAgICAgICAgICAgICAgICB2YXIgdGV4dCA9IG5ldyBBcnJheSgpOw0KICAgICAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBuZXcgQXJyYXkoKTsNCiAgICAgICAgICAgICAgICBmb3IgKHZhciBpID0gMTsgaSA8PSAxMDA7IGkrKykgew0KICAgICAgICAgICAgICAgICAgICB0ZXh0LnB1c2goaSk7DQogICAgICAgICAgICAgICAgICAgIHZhbHVlcy5wdXNoKGkpOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCAiMSIsIGtleSk7DQogICAgICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgiY2xhc3MiLCAid2l6YXJkIik7DQogICAgICAgICAgICAgICAgc2VsZWN0LmlkID0ga2V5Ow0KICAgICAgICAgICAgICAgIGRvYy5hcHBlbmRDaGlsZChzZWxlY3QpOw0KICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uID0gInt7LndpemFyZC50dW5lci5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImVwZ1NvdXJjZSI6DQogICAgICAgICAgICAgICAgdmFyIHRleHQgPSBbIlBNUyIsICJYRVBHIl07DQogICAgICAgICAgICAgICAgdmFyIHZhbHVlcyA9IFsiUE1TIiwgIlhFUEciXTsNCiAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCAiWEVQRyIsIGtleSk7DQogICAgICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgiY2xhc3MiLCAid2l6YXJkIik7DQogICAgICAgICAgICAgICAgc2VsZWN0LmlkID0ga2V5Ow0KICAgICAgICAgICAgICAgIGRvYy5hcHBlbmRDaGlsZChzZWxlY3QpOw0KICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uID0gInt7LndpemFyZC5lcGdTb3VyY2UuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJtM3UiOg0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBrZXksICIiKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LndpemFyZC5tM3UucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgiY2xhc3MiLCAid2l6YXJkIik7DQogICAgICAgICAgICAgICAgaW5wdXQuaWQgPSBrZXk7DQogICAgICAgICAgICAgICAgZG9jLmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbiA9ICJ7ey53aXphcmQubTN1LmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAieG1sdHYiOg0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBrZXksICIiKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LndpemFyZC54bWx0di5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJjbGFzcyIsICJ3aXphcmQiKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5pZCA9IGtleTsNCiAgICAgICAgICAgICAgICBkb2MuYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uID0gInt7LndpemFyZC54bWx0di5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICAgICAgY29uc29sZS5sb2coa2V5KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgfQ0KICAgICAgICB2YXIgcHJlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiUFJFIik7DQogICAgICAgIHByZS5pbm5lckhUTUwgPSBkZXNjcmlwdGlvbjsNCiAgICAgICAgZG9jLmFwcGVuZENoaWxkKHByZSk7DQogICAgICAgIGNvbnNvbGUubG9nKGhlYWRsaW5lLCBrZXkpOw0KICAgIH0NCn0NCmZ1bmN0aW9uIHJlYWR5Rm9yQ29uZmlndXJhdGlvbih3aXphcmQpIHsNCiAgICB2YXIgc2VydmVyID0gbmV3IFNlcnZlcigiZ2V0U2VydmVyQ29uZmlnIik7DQogICAgc2VydmVyLnJlcXVlc3QobmV3IE9iamVjdCgpKTsNCiAgICBzaG93RWxlbWVudCgibG9hZGluZyIsIGZhbHNlKTsNCiAgICBjb25maWd1cmF0aW9uV2l6YXJkW3dpemFyZF0uY3JlYXRlV2l6YXJkKCk7DQp9DQpmdW5jdGlvbiBzYXZlV2l6YXJkKCkgew0KICAgIHZhciBjbWQgPSAic2F2ZVdpemFyZCI7DQogICAgdmFyIGRpdiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb250ZW50Iik7DQogICAgdmFyIGNvbmZpZyA9IGRpdi5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCJ3aXphcmQiKTsNCiAgICB2YXIgd2l6YXJkID0gbmV3IE9iamVjdCgpOw0KICAgIGZvciAodmFyIGkgPSAwOyBpIDwgY29uZmlnLmxlbmd0aDsgaSsrKSB7DQogICAgICAgIHZhciBuYW1lOw0KICAgICAgICB2YXIgdmFsdWU7DQogICAgICAgIHN3aXRjaCAoY29uZmlnW2ldLnRhZ05hbWUpIHsNCiAgICAgICAgICAgIGNhc2UgIlNFTEVDVCI6DQogICAgICAgICAgICAgICAgbmFtZSA9IGNvbmZpZ1tpXS5uYW1lOw0KICAgICAgICAgICAgICAgIHZhbHVlID0gY29uZmlnW2ldLnZhbHVlOw0KICAgICAgICAgICAgICAgIC8vIElmIHRoZSB2YWx1ZSBpcyBhIG51bWJlciwgc3RvcmUgaXQgYXMgYSBudW1iZXINCiAgICAgICAgICAgICAgICBpZiAoaXNOYU4odmFsdWUpKSB7DQogICAgICAgICAgICAgICAgICAgIHdpemFyZFtuYW1lXSA9IHZhbHVlOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICAgICAgd2l6YXJkW25hbWVdID0gcGFyc2VJbnQodmFsdWUpOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgIklOUFVUIjoNCiAgICAgICAgICAgICAgICBzd2l0Y2ggKGNvbmZpZ1tpXS50eXBlKSB7DQogICAgICAgICAgICAgICAgICAgIGNhc2UgInRleHQiOg0KICAgICAgICAgICAgICAgICAgICAgICAgbmFtZSA9IGNvbmZpZ1tpXS5uYW1lOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSBjb25maWdbaV0udmFsdWU7DQogICAgICAgICAgICAgICAgICAgICAgICBpZiAodmFsdWUubGVuZ3RoID09IDApIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgbXNnID0gbmFtZS50b1VwcGVyQ2FzZSgpICsgIjogIiArICJ7ey5hbGVydC5taXNzaW5nSW5wdXR9fSI7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgYWxlcnQobXNnKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICB3aXphcmRbbmFtZV0gPSB2YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICAgICAgLy8gY29kZS4uLg0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICB9DQogICAgfQ0KICAgIHZhciBkYXRhID0gbmV3IE9iamVjdCgpOw0KICAgIGRhdGFbIndpemFyZCJdID0gd2l6YXJkOw0KICAgIHZhciBzZXJ2ZXIgPSBuZXcgU2VydmVyKGNtZCk7DQogICAgc2VydmVyLnJlcXVlc3QoZGF0YSk7DQogICAgY29uc29sZS5sb2coZGF0YSk7DQp9DQovLyBXaXphcmQNCnZhciBjb25maWd1cmF0aW9uV2l6YXJkID0gbmV3IEFycmF5KCk7DQpjb25maWd1cmF0aW9uV2l6YXJkLnB1c2gobmV3IFdpemFyZEl0ZW0oInR1bmVyIiwgInt7LndpemFyZC50dW5lci50aXRsZX19IikpOw0KY29uZmlndXJhdGlvbldpemFyZC5wdXNoKG5ldyBXaXphcmRJdGVtKCJlcGdTb3VyY2UiLCAie3sud2l6YXJkLmVwZ1NvdXJjZS50aXRsZX19IikpOw0KY29uZmlndXJhdGlvbldpemFyZC5wdXNoKG5ldyBXaXphcmRJdGVtKCJtM3UiLCAie3sud2l6YXJkLm0zdS50aXRsZX19IikpOw0KY29uZmlndXJhdGlvbldpemFyZC5wdXNoKG5ldyBXaXphcmRJdGVtKCJ4bWx0diIsICJ7ey53aXphcmQueG1sdHYudGl0bGV9fSIpKTsNCg==" webUI["html/js/logs_ts.js"] = "Y2xhc3MgTG9nIHsNCiAgICBjcmVhdGVMb2coZW50cnkpIHsNCiAgICAgICAgdmFyIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJQUkUiKTsNCiAgICAgICAgaWYgKGVudHJ5LmluZGV4T2YoIldBUk5JTkciKSAhPSAtMSkgew0KICAgICAgICAgICAgZWxlbWVudC5jbGFzc05hbWUgPSAid2FybmluZ01zZyI7DQogICAgICAgIH0NCiAgICAgICAgaWYgKGVudHJ5LmluZGV4T2YoIkVSUk9SIikgIT0gLTEpIHsNCiAgICAgICAgICAgIGVsZW1lbnQuY2xhc3NOYW1lID0gImVycm9yTXNnIjsNCiAgICAgICAgfQ0KICAgICAgICBpZiAoZW50cnkuaW5kZXhPZigiREVCVUciKSAhPSAtMSkgew0KICAgICAgICAgICAgZWxlbWVudC5jbGFzc05hbWUgPSAiZGVidWdNc2ciOw0KICAgICAgICB9DQogICAgICAgIGVsZW1lbnQuaW5uZXJIVE1MID0gZW50cnk7DQogICAgICAgIHJldHVybiBlbGVtZW50Ow0KICAgIH0NCn0NCmZ1bmN0aW9uIHNob3dMb2dzKGJvdHRvbSkgew0KICAgIHZhciBsb2cgPSBuZXcgTG9nKCk7DQogICAgdmFyIGxvZ3MgPSBTRVJWRVJbImxvZyJdWyJsb2ciXTsNCiAgICB2YXIgZGl2ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnRlbnRfbG9nIik7DQogICAgZGl2LmlubmVySFRNTCA9ICIiOw0KICAgIHZhciBrZXlzID0gZ2V0T2JqS2V5cyhsb2dzKTsNCiAgICBrZXlzLmZvckVhY2gobG9nSUQgPT4gew0KICAgICAgICB2YXIgZW50cnkgPSBsb2cuY3JlYXRlTG9nKGxvZ3NbbG9nSURdKTsNCiAgICAgICAgZGl2LmFwcGVuZChlbnRyeSk7DQogICAgfSk7DQogICAgc2V0VGltZW91dChmdW5jdGlvbiAoKSB7DQogICAgICAgIGlmIChib3R0b20gPT0gdHJ1ZSkgew0KICAgICAgICAgICAgdmFyIHdyYXBwZXIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYm94LXdyYXBwZXIiKTsNCiAgICAgICAgICAgIHdyYXBwZXIuc2Nyb2xsVG9wID0gd3JhcHBlci5zY3JvbGxIZWlnaHQ7DQogICAgICAgIH0NCiAgICB9LCAxMCk7DQp9DQpmdW5jdGlvbiByZXNldExvZ3MoKSB7DQogICAgdmFyIGNtZCA9ICJyZXNldExvZ3MiOw0KICAgIHZhciBkYXRhID0gbmV3IE9iamVjdCgpOw0KICAgIHZhciBzZXJ2ZXIgPSBuZXcgU2VydmVyKGNtZCk7DQogICAgc2VydmVyLnJlcXVlc3QoZGF0YSk7DQp9DQo=" - webUI["html/js/menu_ts.js"] = "Y2xhc3MgTWFpbk1lbnUgew0KICAgIGNvbnN0cnVjdG9yKCkgew0KICAgICAgICB0aGlzLkRvY3VtZW50SUQgPSAibWFpbi1tZW51IjsNCiAgICAgICAgdGhpcy5IVE1MVGFnID0gIkxJIjsNCiAgICAgICAgdGhpcy5JbWFnZVBhdGggPSAiaW1nLyI7DQogICAgfQ0KICAgIGNyZWF0ZUlNRyhzcmMpIHsNCiAgICAgICAgbGV0IGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJJTUciKTsNCiAgICAgICAgZWxlbWVudC5zZXRBdHRyaWJ1dGUoInNyYyIsIHRoaXMuSW1hZ2VQYXRoICsgc3JjKTsNCiAgICAgICAgcmV0dXJuIGVsZW1lbnQ7DQogICAgfQ0KICAgIGNyZWF0ZVZhbHVlKHZhbHVlKSB7DQogICAgICAgIGxldCBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiUCIpOw0KICAgICAgICBlbGVtZW50LmlubmVySFRNTCA9IHZhbHVlOw0KICAgICAgICByZXR1cm4gZWxlbWVudDsNCiAgICB9DQp9DQpjbGFzcyBNYWluTWVudUl0ZW0gZXh0ZW5kcyBNYWluTWVudSB7DQogICAgY29uc3RydWN0b3IobWVudUtleSwgdmFsdWUsIGltYWdlLCBoZWFkbGluZSkgew0KICAgICAgICBzdXBlcigpOw0KICAgICAgICB0aGlzLm1lbnVLZXkgPSBtZW51S2V5Ow0KICAgICAgICB0aGlzLnZhbHVlID0gdmFsdWU7DQogICAgICAgIHRoaXMuaW1nU3JjID0gaW1hZ2U7DQogICAgICAgIHRoaXMuaGVhZGxpbmUgPSBoZWFkbGluZTsNCiAgICB9DQogICAgY3JlYXRlSXRlbSgpIHsNCiAgICAgICAgbGV0IGl0ZW0gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJMSSIpOw0KICAgICAgICBpdGVtLnNldEF0dHJpYnV0ZSgib25jbGljayIsICJqYXZhc2NyaXB0OiBvcGVuVGhpc01lbnUodGhpcykiKTsNCiAgICAgICAgaXRlbS5zZXRBdHRyaWJ1dGUoImlkIiwgdGhpcy5pZCk7DQogICAgICAgIGxldCBpbWcgPSB0aGlzLmNyZWF0ZUlNRyh0aGlzLmltZ1NyYyk7DQogICAgICAgIGxldCB2YWx1ZSA9IHRoaXMuY3JlYXRlVmFsdWUodGhpcy52YWx1ZSk7DQogICAgICAgIGl0ZW0uYXBwZW5kQ2hpbGQoaW1nKTsNCiAgICAgICAgaXRlbS5hcHBlbmRDaGlsZCh2YWx1ZSk7DQogICAgICAgIGxldCBkb2MgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCh0aGlzLkRvY3VtZW50SUQpOw0KICAgICAgICBkb2MuYXBwZW5kQ2hpbGQoaXRlbSk7DQogICAgICAgIHN3aXRjaCAodGhpcy5tZW51S2V5KSB7DQogICAgICAgICAgICBjYXNlICJwbGF5bGlzdCI6DQogICAgICAgICAgICAgICAgdGhpcy50YWJsZUhlYWRlciA9IFsie3sucGxheWxpc3QudGFibGUucGxheWxpc3R9fSIsICJ7ey5wbGF5bGlzdC50YWJsZS50dW5lcn19IiwgInt7LnBsYXlsaXN0LnRhYmxlLmxhc3RVcGRhdGV9fSIsICJ7ey5wbGF5bGlzdC50YWJsZS5hdmFpbGFiaWxpdHl9fSAlIiwgInt7LnBsYXlsaXN0LnRhYmxlLnR5cGV9fSIsICJ7ey5wbGF5bGlzdC50YWJsZS5zdHJlYW1zfX0iLCAie3sucGxheWxpc3QudGFibGUuZ3JvdXBUaXRsZX19ICUiLCAie3sucGxheWxpc3QudGFibGUudHZnSUR9fSAlIiwgInt7LnBsYXlsaXN0LnRhYmxlLnVuaXF1ZUlEfX0gJSJdOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAieG1sdHYiOg0KICAgICAgICAgICAgICAgIHRoaXMudGFibGVIZWFkZXIgPSBbInt7LnhtbHR2LnRhYmxlLmd1aWRlfX0iLCAie3sueG1sdHYudGFibGUubGFzdFVwZGF0ZX19IiwgInt7LnhtbHR2LnRhYmxlLmF2YWlsYWJpbGl0eX19ICUiLCAie3sueG1sdHYudGFibGUuY2hhbm5lbHN9fSIsICJ7ey54bWx0di50YWJsZS5wcm9ncmFtc319Il07DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJmaWx0ZXIiOg0KICAgICAgICAgICAgICAgIHRoaXMudGFibGVIZWFkZXIgPSBbInt7LmZpbHRlci50YWJsZS5uYW1lfX0iLCAie3suZmlsdGVyLnRhYmxlLnR5cGV9fSIsICJ7ey5maWx0ZXIudGFibGUuZmlsdGVyfX0iXTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInVzZXJzIjoNCiAgICAgICAgICAgICAgICB0aGlzLnRhYmxlSGVhZGVyID0gWyJ7ey51c2Vycy50YWJsZS51c2VybmFtZX19IiwgInt7LnVzZXJzLnRhYmxlLnBhc3N3b3JkfX0iLCAie3sudXNlcnMudGFibGUud2VifX0iLCAie3sudXNlcnMudGFibGUucG1zfX0iLCAie3sudXNlcnMudGFibGUubTN1fX0iLCAie3sudXNlcnMudGFibGUueG1sfX0iLCAie3sudXNlcnMudGFibGUuYXBpfX0iXTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgIm1hcHBpbmciOg0KICAgICAgICAgICAgICAgIHRoaXMudGFibGVIZWFkZXIgPSBbIkJVTEsiLCAie3subWFwcGluZy50YWJsZS5jaE5vfX0iLCAie3subWFwcGluZy50YWJsZS5sb2dvfX0iLCAie3subWFwcGluZy50YWJsZS5jaGFubmVsTmFtZX19IiwgInt7Lm1hcHBpbmcudGFibGUucGxheWxpc3R9fSIsICJ7ey5tYXBwaW5nLnRhYmxlLmdyb3VwVGl0bGV9fSIsICJ7ey5tYXBwaW5nLnRhYmxlLnhtbHR2RmlsZX19IiwgInt7Lm1hcHBpbmcudGFibGUueG1sdHZJRH19IiwgInt7Lm1hcHBpbmcudGFibGUudGltZXNoaWZ0fX0iXTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgfQ0KICAgICAgICAvL2NvbnNvbGUubG9nKHRoaXMubWVudUtleSwgdGhpcy50YWJsZUhlYWRlcik7DQogICAgfQ0KfQ0KY2xhc3MgQ29udGVudCB7DQogICAgY29uc3RydWN0b3IoKSB7DQogICAgICAgIHRoaXMuRG9jdW1lbnRJRCA9ICJjb250ZW50IjsNCiAgICAgICAgdGhpcy5UYWJsZUlEID0gImNvbnRlbnRfdGFibGUiOw0KICAgICAgICB0aGlzLmhlYWRlckNsYXNzID0gImNvbnRlbnRfdGFibGVfaGVhZGVyIjsNCiAgICAgICAgdGhpcy5pbnRlcmFjdGlvbklEID0gImNvbnRlbnQtaW50ZXJhY3Rpb24iOw0KICAgIH0NCiAgICBjcmVhdGVIZWFkbGluZSh2YWx1ZSkgew0KICAgICAgICBsZXQgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIkgzIik7DQogICAgICAgIGVsZW1lbnQuaW5uZXJIVE1MID0gdmFsdWU7DQogICAgICAgIHJldHVybiBlbGVtZW50Ow0KICAgIH0NCiAgICBjcmVhdGVIUigpIHsNCiAgICAgICAgcmV0dXJuIGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIkhSIik7DQogICAgfQ0KICAgIGNyZWF0ZUludGVyYWN0aW9uKCkgew0KICAgICAgICBsZXQgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIkRJViIpOw0KICAgICAgICBlbGVtZW50LnNldEF0dHJpYnV0ZSgiaWQiLCB0aGlzLmludGVyYWN0aW9uSUQpOw0KICAgICAgICByZXR1cm4gZWxlbWVudDsNCiAgICB9DQogICAgY3JlYXRlRElWKCkgew0KICAgICAgICBsZXQgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIkRJViIpOw0KICAgICAgICBlbGVtZW50LmlkID0gdGhpcy5EaXZJRDsNCiAgICAgICAgcmV0dXJuIGVsZW1lbnQ7DQogICAgfQ0KICAgIGNyZWF0ZVRBQkxFKCkgew0KICAgICAgICBsZXQgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlRBQkxFIik7DQogICAgICAgIGVsZW1lbnQuaWQgPSB0aGlzLlRhYmxlSUQ7DQogICAgICAgIHJldHVybiBlbGVtZW50Ow0KICAgIH0NCiAgICBjcmVhdGVUYWJsZVJvdygpIHsNCiAgICAgICAgbGV0IGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJUUiIpOw0KICAgICAgICBlbGVtZW50LmNsYXNzTmFtZSA9IHRoaXMuaGVhZGVyQ2xhc3M7DQogICAgICAgIHJldHVybiBlbGVtZW50Ow0KICAgIH0NCiAgICBjcmVhdGVUYWJsZUNvbnRlbnQobWVudUtleSkgew0KICAgICAgICBsZXQgZGF0YSA9IHt9Ow0KICAgICAgICBsZXQgcm93cyA9IFtdOw0KICAgICAgICBsZXQgZmlsZVR5cGVzID0gW107DQogICAgICAgIHN3aXRjaCAobWVudUtleSkgew0KICAgICAgICAgICAgY2FzZSAicGxheWxpc3QiOg0KICAgICAgICAgICAgICAgIGZpbGVUeXBlcyA9IFsibTN1IiwgImhkaHIiXTsNCiAgICAgICAgICAgICAgICBmaWxlVHlwZXMuZm9yRWFjaChmaWxlVHlwZSA9PiB7DQogICAgICAgICAgICAgICAgICAgIGRhdGEgPSBTRVJWRVJbInNldHRpbmdzIl1bImZpbGVzIl1bZmlsZVR5cGVdOw0KICAgICAgICAgICAgICAgICAgICB2YXIga2V5cyA9IGdldE9iaktleXMoZGF0YSk7DQogICAgICAgICAgICAgICAgICAgIGtleXMuZm9yRWFjaChrZXkgPT4gew0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVFIiKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmlkID0ga2V5Ow0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgiJyArIGZpbGVUeXBlICsgJyIsIHRoaXMpJyk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsibmFtZSJdOw0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChTRVJWRVJbInNldHRpbmdzIl1bImJ1ZmZlciJdICE9ICItIikgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bInR1bmVyIl07DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gIi0iOw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bImxhc3QudXBkYXRlIl07DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsicHJvdmlkZXIuYXZhaWxhYmlsaXR5Il07DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsidHlwZSJdLnRvVXBwZXJDYXNlKCk7DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsiY29tcGF0aWJpbGl0eSJdWyJzdHJlYW1zIl07DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsiY29tcGF0aWJpbGl0eSJdWyJncm91cC50aXRsZSJdOw0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bImNvbXBhdGliaWxpdHkiXVsidHZnLmlkIl07DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsiY29tcGF0aWJpbGl0eSJdWyJzdHJlYW0uaWQiXTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHJvd3MucHVzaCh0cik7DQogICAgICAgICAgICAgICAgICAgIH0pOw0KICAgICAgICAgICAgICAgIH0pOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiZmlsdGVyIjoNCiAgICAgICAgICAgICAgICBkZWxldGUgU0VSVkVSWyJzZXR0aW5ncyJdWyJmaWx0ZXIiXVstMV07DQogICAgICAgICAgICAgICAgZGF0YSA9IFNFUlZFUlsic2V0dGluZ3MiXVsiZmlsdGVyIl07DQogICAgICAgICAgICAgICAgdmFyIGtleXMgPSBnZXRPYmpLZXlzKGRhdGEpOw0KICAgICAgICAgICAgICAgIGtleXMuZm9yRWFjaChrZXkgPT4gew0KICAgICAgICAgICAgICAgICAgICB2YXIgdHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJUUiIpOw0KICAgICAgICAgICAgICAgICAgICB0ci5pZCA9IGtleTsNCiAgICAgICAgICAgICAgICAgICAgdHIuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgiJyArIGRhdGFba2V5XVsidHlwZSJdICsgJyIsIHRoaXMpJyk7DQogICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJuYW1lIl07DQogICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgIHN3aXRjaCAoZGF0YVtrZXldWyJ0eXBlIl0pIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgImN1c3RvbS1maWx0ZXIiOg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSAie3suZmlsdGVyLmN1c3RvbX19IjsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgImdyb3VwLXRpdGxlIjoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gInt7LmZpbHRlci5ncm91cH19IjsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsiZmlsdGVyIl07DQogICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgcm93cy5wdXNoKHRyKTsNCiAgICAgICAgICAgICAgICB9KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInhtbHR2IjoNCiAgICAgICAgICAgICAgICBmaWxlVHlwZXMgPSBuZXcgQXJyYXkoInhtbHR2Iik7DQogICAgICAgICAgICAgICAgZmlsZVR5cGVzLmZvckVhY2goZmlsZVR5cGUgPT4gew0KICAgICAgICAgICAgICAgICAgICBkYXRhID0gU0VSVkVSWyJzZXR0aW5ncyJdWyJmaWxlcyJdW2ZpbGVUeXBlXTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGtleXMgPSBnZXRPYmpLZXlzKGRhdGEpOw0KICAgICAgICAgICAgICAgICAgICBrZXlzLmZvckVhY2goa2V5ID0+IHsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciB0ciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlRSIik7DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5pZCA9IGtleTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoIicgKyBmaWxlVHlwZSArICciLCB0aGlzKScpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bIm5hbWUiXTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJsYXN0LnVwZGF0ZSJdOw0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bInByb3ZpZGVyLmF2YWlsYWJpbGl0eSJdOw0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bImNvbXBhdGliaWxpdHkiXVsieG1sdHYuY2hhbm5lbHMiXTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJjb21wYXRpYmlsaXR5Il1bInhtbHR2LnByb2dyYW1zIl07DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICByb3dzLnB1c2godHIpOw0KICAgICAgICAgICAgICAgICAgICB9KTsNCiAgICAgICAgICAgICAgICB9KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInVzZXJzIjoNCiAgICAgICAgICAgICAgICBmaWxlVHlwZXMgPSBuZXcgQXJyYXkoInVzZXJzIik7DQogICAgICAgICAgICAgICAgZmlsZVR5cGVzLmZvckVhY2goZmlsZVR5cGUgPT4gew0KICAgICAgICAgICAgICAgICAgICBkYXRhID0gU0VSVkVSW2ZpbGVUeXBlXTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGtleXMgPSBnZXRPYmpLZXlzKGRhdGEpOw0KICAgICAgICAgICAgICAgICAgICBrZXlzLmZvckVhY2goa2V5ID0+IHsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciB0ciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlRSIik7DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5pZCA9IGtleTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoIicgKyBmaWxlVHlwZSArICciLCB0aGlzKScpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bImRhdGEiXVsidXNlcm5hbWUiXTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gIioqKioqKiI7DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGRhdGFba2V5XVsiZGF0YSJdWyJhdXRoZW50aWNhdGlvbi53ZWIiXSA9PSB0cnVlKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9ICLinJMiOw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9ICItIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgICAgICBpZiAoZGF0YVtrZXldWyJkYXRhIl1bImF1dGhlbnRpY2F0aW9uLnBtcyJdID09IHRydWUpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gIuKckyI7DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gIi0iOw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChkYXRhW2tleV1bImRhdGEiXVsiYXV0aGVudGljYXRpb24ubTN1Il0gPT0gdHJ1ZSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSAi4pyTIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSAiLSI7DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGRhdGFba2V5XVsiZGF0YSJdWyJhdXRoZW50aWNhdGlvbi54bWwiXSA9PSB0cnVlKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9ICLinJMiOw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9ICItIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgICAgICBpZiAoZGF0YVtrZXldWyJkYXRhIl1bImF1dGhlbnRpY2F0aW9uLmFwaSJdID09IHRydWUpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gIuKckyI7DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gIi0iOw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgcm93cy5wdXNoKHRyKTsNCiAgICAgICAgICAgICAgICAgICAgfSk7DQogICAgICAgICAgICAgICAgfSk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJtYXBwaW5nIjoNCiAgICAgICAgICAgICAgICBCVUxLX0VESVQgPSBmYWxzZTsNCiAgICAgICAgICAgICAgICBjcmVhdGVTZWFyY2hPYmooKTsNCiAgICAgICAgICAgICAgICBjaGVja1VuZG8oImVwZ01hcHBpbmciKTsNCiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZygiTUFQUElORyIpOw0KICAgICAgICAgICAgICAgIGRhdGEgPSBTRVJWRVJbInhlcGciXVsiZXBnTWFwcGluZyJdOw0KICAgICAgICAgICAgICAgIHZhciBrZXlzID0gZ2V0T2JqS2V5cyhkYXRhKTsNCiAgICAgICAgICAgICAgICBrZXlzLmZvckVhY2goa2V5ID0+IHsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVFIiKTsNCiAgICAgICAgICAgICAgICAgICAgdHIuaWQgPSBrZXk7DQogICAgICAgICAgICAgICAgICAgIC8vdHIuc2V0QXR0cmlidXRlKCdvbmNvbnRleHRtZW51JywgJ2phdmFzY3JpcHQ6IHJpZ2h0Q2xpY2sodGhpcyknKQ0KICAgICAgICAgICAgICAgICAgICBzd2l0Y2ggKGRhdGFba2V5XVsieC1hY3RpdmUiXSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSB0cnVlOg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyLmNsYXNzTmFtZSA9ICJhY3RpdmVFUEciOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSBmYWxzZToNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ci5jbGFzc05hbWUgPSAibm90QWN0aXZlRVBHIjsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAvLyBCdWxrDQogICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIkJVTEsiOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZmFsc2U7DQogICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgLy8gQ2hhbm5lbCBudW1iZXINCiAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiSU5QVVRDSEFOTkVMIjsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsieC1jaGFubmVsSUQiXTsNCiAgICAgICAgICAgICAgICAgICAgLy90ZC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogY2hhbmdlQ2hhbm5lbE51bWJlcigiJyArIGtleSArICciLCB0aGlzKScpDQogICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgLy8gTG9nbw0KICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJJTUciOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmltYWdlVVJMID0gZGF0YVtrZXldWyJ0dmctbG9nbyJdOw0KICAgICAgICAgICAgICAgICAgICB2YXIgdGQgPSBjZWxsLmNyZWF0ZUNlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgdGQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgibWFwcGluZyIsIHRoaXMpJyk7DQogICAgICAgICAgICAgICAgICAgIHRkLmlkID0ga2V5Ow0KICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZCh0ZCk7DQogICAgICAgICAgICAgICAgICAgIC8vIENoYW5uZWwgbmFtZQ0KICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jbGFzc05hbWUgPSBkYXRhW2tleV1bIngtY2F0ZWdvcnkiXTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsieC1uYW1lIl07DQogICAgICAgICAgICAgICAgICAgIHZhciB0ZCA9IGNlbGwuY3JlYXRlQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICB0ZC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJtYXBwaW5nIiwgdGhpcyknKTsNCiAgICAgICAgICAgICAgICAgICAgdGQuaWQgPSBrZXk7DQogICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKHRkKTsNCiAgICAgICAgICAgICAgICAgICAgLy8gUGxheWxpc3QNCiAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgIC8vY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsiX2ZpbGUubTN1Lm5hbWUiXSANCiAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGdldFZhbHVlRnJvbVByb3ZpZGVyRmlsZShkYXRhW2tleV1bIl9maWxlLm0zdS5pZCJdLCAibTN1IiwgIm5hbWUiKTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHRkID0gY2VsbC5jcmVhdGVDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgIHRkLnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoIm1hcHBpbmciLCB0aGlzKScpOw0KICAgICAgICAgICAgICAgICAgICB0ZC5pZCA9IGtleTsNCiAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQodGQpOw0KICAgICAgICAgICAgICAgICAgICAvLyBHcm91cCAoZ3JvdXAtdGl0bGUpDQogICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJ4LWdyb3VwLXRpdGxlIl07DQogICAgICAgICAgICAgICAgICAgIHZhciB0ZCA9IGNlbGwuY3JlYXRlQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICB0ZC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJtYXBwaW5nIiwgdGhpcyknKTsNCiAgICAgICAgICAgICAgICAgICAgdGQuaWQgPSBrZXk7DQogICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKHRkKTsNCiAgICAgICAgICAgICAgICAgICAgLy8gWE1MVFYgZmlsZQ0KICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgaWYgKGRhdGFba2V5XVsieC14bWx0di1maWxlIl0gIT0gIi0iKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZ2V0VmFsdWVGcm9tUHJvdmlkZXJGaWxlKGRhdGFba2V5XVsieC14bWx0di1maWxlIl0sICJ4bWx0diIsICJuYW1lIik7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgZWxzZSB7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJ4LXhtbHR2LWZpbGUiXTsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICB2YXIgdGQgPSBjZWxsLmNyZWF0ZUNlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgdGQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgibWFwcGluZyIsIHRoaXMpJyk7DQogICAgICAgICAgICAgICAgICAgIHRkLmlkID0ga2V5Ow0KICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZCh0ZCk7DQogICAgICAgICAgICAgICAgICAgIC8vIFhNTFRWIENoYW5uZWwNCiAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgIC8vdmFyIHZhbHVlID0gc3RyLnN1YnN0cmluZygxLCA0KTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHZhbHVlID0gZGF0YVtrZXldWyJ4LW1hcHBpbmciXTsNCiAgICAgICAgICAgICAgICAgICAgaWYgKHZhbHVlLmxlbmd0aCA+IDIwKSB7DQogICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IGRhdGFba2V5XVsieC1tYXBwaW5nIl0uc3Vic3RyaW5nKDAsIDIwKSArICIuLi4iOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSB2YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHRkID0gY2VsbC5jcmVhdGVDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgIHRkLnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoIm1hcHBpbmciLCB0aGlzKScpOw0KICAgICAgICAgICAgICAgICAgICB0ZC5pZCA9IGtleTsNCiAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQodGQpOw0KICAgICAgICAgICAgICAgICAgICAvLyBUaW1lU2hpZnQNCiAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bIngtdGltZXNoaWZ0Il07DQogICAgICAgICAgICAgICAgICAgIHZhciB0ZCA9IGNlbGwuY3JlYXRlQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICB0ZC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJtYXBwaW5nIiwgdGhpcyknKTsNCiAgICAgICAgICAgICAgICAgICAgdGQuaWQgPSBrZXk7DQogICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKHRkKTsNCiAgICAgICAgICAgICAgICAgICAgcm93cy5wdXNoKHRyKTsNCiAgICAgICAgICAgICAgICB9KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInNldHRpbmdzIjoNCiAgICAgICAgICAgICAgICBhbGVydCgpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZygiVGFibGUgY29udGVudCAobWVudUtleSk6IiwgbWVudUtleSk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIH0NCiAgICAgICAgcmV0dXJuIHJvd3M7DQogICAgfQ0KfQ0KY2xhc3MgQ2VsbCB7DQogICAgY3JlYXRlQ2VsbCgpIHsNCiAgICAgICAgbGV0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgaWYgKHRoaXMuY2hpbGQgPT0gdHJ1ZSkgew0KICAgICAgICAgICAgdmFyIGVsZW1lbnQ7DQogICAgICAgICAgICBzd2l0Y2ggKHRoaXMuY2hpbGRUeXBlKSB7DQogICAgICAgICAgICAgICAgY2FzZSAiUCI6DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KHRoaXMuY2hpbGRUeXBlKTsNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC5pbm5lckhUTUwgPSB0aGlzLnZhbHVlOw0KICAgICAgICAgICAgICAgICAgICBlbGVtZW50LmNsYXNzTmFtZSA9IHRoaXMuY2xhc3NOYW1lOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBjYXNlICJJTlBVVCI6DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KHRoaXMuY2hpbGRUeXBlKTsNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC52YWx1ZSA9IHRoaXMudmFsdWU7DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQudHlwZSA9ICJ0ZXh0IjsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAiSU5QVVRDSEFOTkVMIjoNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIklOUFVUIik7DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZzY3JpcHQ6IGNoYW5nZUNoYW5uZWxOdW1iZXIodGhpcykiKTsNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC52YWx1ZSA9IHRoaXMudmFsdWU7DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQudHlwZSA9ICJ0ZXh0IjsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAiQlVMSyI6DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJJTlBVVCIpOw0KICAgICAgICAgICAgICAgICAgICBlbGVtZW50LmNoZWNrZWQgPSB0aGlzLnZhbHVlOw0KICAgICAgICAgICAgICAgICAgICBlbGVtZW50LnR5cGUgPSAiY2hlY2tib3giOw0KICAgICAgICAgICAgICAgICAgICBlbGVtZW50LmNsYXNzTmFtZSA9ICJidWxrIGhpZGVCdWxrIjsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAiQlVMS19IRUFEIjoNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIklOUFVUIik7DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQuY2hlY2tlZCA9IHRoaXMudmFsdWU7DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQudHlwZSA9ICJjaGVja2JveCI7DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQuY2xhc3NOYW1lID0gImJ1bGsgaGlkZUJ1bGsiOw0KICAgICAgICAgICAgICAgICAgICBlbGVtZW50LnNldEF0dHJpYnV0ZSgib25jbGljayIsICJqYXZhc2NyaXB0OiBzZWxlY3RBbGxDaGFubmVscygpIik7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgIklNRyI6DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KHRoaXMuY2hpbGRUeXBlKTsNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC5zZXRBdHRyaWJ1dGUoInNyYyIsIHRoaXMuaW1hZ2VVUkwpOw0KICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5pbWFnZVVSTCAhPSAiIikgew0KICAgICAgICAgICAgICAgICAgICAgICAgZWxlbWVudC5zZXRBdHRyaWJ1dGUoIm9uZXJyb3IiLCAiamF2YXNjcmlwdDogdGhpcy5vbmVycm9yPW51bGw7dGhpcy5zcmM9JyciKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIC8vb25lcnJvcj0idGhpcy5vbmVycm9yPW51bGw7dGhpcy5zcmM9J21pc3NpbmcuZ2lmJzsiDQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIHRkLmFwcGVuZENoaWxkKGVsZW1lbnQpOw0KICAgICAgICB9DQogICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgdGQuaW5uZXJIVE1MID0gdGhpcy52YWx1ZTsNCiAgICAgICAgfQ0KICAgICAgICBpZiAodGhpcy5vbmNsaWNrID09IHRydWUpIHsNCiAgICAgICAgICAgIHRkLnNldEF0dHJpYnV0ZSgib25jbGljayIsIHRoaXMub25jbGlja0Z1bmN0aW9uKTsNCiAgICAgICAgICAgIHRkLmNsYXNzTmFtZSA9ICJwb2ludGVyIjsNCiAgICAgICAgfQ0KICAgICAgICBpZiAodGhpcy50ZENsYXNzTmFtZSAhPSB1bmRlZmluZWQpIHsNCiAgICAgICAgICAgIHRkLmNsYXNzTmFtZSA9IHRoaXMudGRDbGFzc05hbWU7DQogICAgICAgIH0NCiAgICAgICAgcmV0dXJuIHRkOw0KICAgIH0NCn0NCmNsYXNzIFNob3dDb250ZW50IGV4dGVuZHMgQ29udGVudCB7DQogICAgY29uc3RydWN0b3IobWVudUlEKSB7DQogICAgICAgIHN1cGVyKCk7DQogICAgICAgIHRoaXMubWVudUlEID0gbWVudUlEOw0KICAgIH0NCiAgICBjcmVhdGVJbnB1dCh0eXBlLCBuYW1lLCB2YWx1ZSkgew0KICAgICAgICBsZXQgaW5wdXQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJJTlBVVCIpOw0KICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInR5cGUiLCB0eXBlKTsNCiAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJuYW1lIiwgbmFtZSk7DQogICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgidmFsdWUiLCB2YWx1ZSk7DQogICAgICAgIHJldHVybiBpbnB1dDsNCiAgICB9DQogICAgc2hvdygpIHsNCiAgICAgICAgQ09MVU1OX1RPX1NPUlQgPSAtMTsNCiAgICAgICAgLy8gRGVsZXRlIG9sZCBjb250ZW50DQogICAgICAgIGxldCBkb2MgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCh0aGlzLkRvY3VtZW50SUQpOw0KICAgICAgICBkb2MuaW5uZXJIVE1MID0gIiI7DQogICAgICAgIHNob3dQcmV2aWV3KGZhbHNlKTsNCiAgICAgICAgLy8gSGVhZGxpbmUNCiAgICAgICAgbGV0IGhlYWRsaW5lID0gbWVudUl0ZW1zW3RoaXMubWVudUlEXS5oZWFkbGluZTsNCiAgICAgICAgbGV0IG1lbnVLZXkgPSBtZW51SXRlbXNbdGhpcy5tZW51SURdLm1lbnVLZXk7DQogICAgICAgIGxldCBoID0gdGhpcy5jcmVhdGVIZWFkbGluZShoZWFkbGluZSk7DQogICAgICAgIGRvYy5hcHBlbmRDaGlsZChoKTsNCiAgICAgICAgbGV0IGhyID0gdGhpcy5jcmVhdGVIUigpOw0KICAgICAgICBkb2MuYXBwZW5kQ2hpbGQoaHIpOw0KICAgICAgICAvLyBJbnRlcmFjdGlvbg0KICAgICAgICBsZXQgZGl2ID0gdGhpcy5jcmVhdGVJbnRlcmFjdGlvbigpOw0KICAgICAgICBkb2MuYXBwZW5kQ2hpbGQoZGl2KTsNCiAgICAgICAgbGV0IGludGVyYWN0aW9uID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQodGhpcy5pbnRlcmFjdGlvbklEKTsNCiAgICAgICAgc3dpdGNoIChtZW51S2V5KSB7DQogICAgICAgICAgICBjYXNlICJwbGF5bGlzdCI6DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gdGhpcy5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgbWVudUtleSwgInt7LmJ1dHRvbi5uZXd9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgiaWQiLCAiLSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoInBsYXlsaXN0IiknKTsNCiAgICAgICAgICAgICAgICBpbnRlcmFjdGlvbi5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJmaWx0ZXIiOg0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IHRoaXMuY3JlYXRlSW5wdXQoImJ1dHRvbiIsIG1lbnVLZXksICJ7ey5idXR0b24ubmV3fX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoImlkIiwgLTEpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoImZpbHRlciIsIHRoaXMpJyk7DQogICAgICAgICAgICAgICAgaW50ZXJhY3Rpb24uYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAieG1sdHYiOg0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IHRoaXMuY3JlYXRlSW5wdXQoImJ1dHRvbiIsIG1lbnVLZXksICJ7ey5idXR0b24ubmV3fX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoImlkIiwgInhtbHR2Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgieG1sdHYiKScpOw0KICAgICAgICAgICAgICAgIGludGVyYWN0aW9uLmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInVzZXJzIjoNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSB0aGlzLmNyZWF0ZUlucHV0KCJidXR0b24iLCBtZW51S2V5LCAie3suYnV0dG9uLm5ld319Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJpZCIsICJ1c2VycyIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoInVzZXJzIiknKTsNCiAgICAgICAgICAgICAgICBpbnRlcmFjdGlvbi5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJtYXBwaW5nIjoNCiAgICAgICAgICAgICAgICBzaG93RWxlbWVudCgibG9hZGluZyIsIHRydWUpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IHRoaXMuY3JlYXRlSW5wdXQoImJ1dHRvbiIsIG1lbnVLZXksICJ7ey5idXR0b24uc2F2ZX19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoIm1hcHBpbmciLCAiIiwgIiIpJyk7DQogICAgICAgICAgICAgICAgaW50ZXJhY3Rpb24uYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IHRoaXMuY3JlYXRlSW5wdXQoImJ1dHRvbiIsIG1lbnVLZXksICJ7ey5idXR0b24uYnVsa0VkaXR9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBidWxrRWRpdCgpJyk7DQogICAgICAgICAgICAgICAgaW50ZXJhY3Rpb24uYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IHRoaXMuY3JlYXRlSW5wdXQoInNlYXJjaCIsICJzZWFyY2giLCAiIik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJpZCIsICJzZWFyY2hNYXBwaW5nIik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5idXR0b24uc2VhcmNofX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5jbGFzc05hbWUgPSAic2VhcmNoIjsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgJ2phdmFzY3JpcHQ6IHNlYXJjaEluTWFwcGluZygpJyk7DQogICAgICAgICAgICAgICAgaW50ZXJhY3Rpb24uYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAic2V0dGluZ3MiOg0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IHRoaXMuY3JlYXRlSW5wdXQoImJ1dHRvbiIsIG1lbnVLZXksICJ7ey5idXR0b24uc2F2ZX19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IHNhdmVTZXR0aW5ncygpOycpOw0KICAgICAgICAgICAgICAgIGludGVyYWN0aW9uLmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSB0aGlzLmNyZWF0ZUlucHV0KCJidXR0b24iLCBtZW51S2V5LCAie3suYnV0dG9uLmJhY2t1cH19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IGJhY2t1cCgpOycpOw0KICAgICAgICAgICAgICAgIGludGVyYWN0aW9uLmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSB0aGlzLmNyZWF0ZUlucHV0KCJidXR0b24iLCBtZW51S2V5LCAie3suYnV0dG9uLnJlc3RvcmV9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiByZXN0b3JlKCk7Jyk7DQogICAgICAgICAgICAgICAgaW50ZXJhY3Rpb24uYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIHZhciB3cmFwcGVyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiRElWIik7DQogICAgICAgICAgICAgICAgd3JhcHBlci5zZXRBdHRyaWJ1dGUoImlkIiwgImJveC13cmFwcGVyIik7DQogICAgICAgICAgICAgICAgZG9jLmFwcGVuZENoaWxkKHdyYXBwZXIpOw0KICAgICAgICAgICAgICAgIHRoaXMuRGl2SUQgPSAiY29udGVudF9zZXR0aW5ncyI7DQogICAgICAgICAgICAgICAgdmFyIHNldHRpbmdzID0gdGhpcy5jcmVhdGVESVYoKTsNCiAgICAgICAgICAgICAgICB3cmFwcGVyLmFwcGVuZENoaWxkKHNldHRpbmdzKTsNCiAgICAgICAgICAgICAgICBzaG93U2V0dGluZ3MoKTsNCiAgICAgICAgICAgICAgICByZXR1cm47DQogICAgICAgICAgICBjYXNlICJsb2ciOg0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IHRoaXMuY3JlYXRlSW5wdXQoImJ1dHRvbiIsIG1lbnVLZXksICJ7ey5idXR0b24ucmVzZXRMb2dzfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogcmVzZXRMb2dzKCk7Jyk7DQogICAgICAgICAgICAgICAgaW50ZXJhY3Rpb24uYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIHZhciB3cmFwcGVyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiRElWIik7DQogICAgICAgICAgICAgICAgd3JhcHBlci5zZXRBdHRyaWJ1dGUoImlkIiwgImJveC13cmFwcGVyIik7DQogICAgICAgICAgICAgICAgZG9jLmFwcGVuZENoaWxkKHdyYXBwZXIpOw0KICAgICAgICAgICAgICAgIHRoaXMuRGl2SUQgPSAiY29udGVudF9sb2ciOw0KICAgICAgICAgICAgICAgIHZhciBsb2dzID0gdGhpcy5jcmVhdGVESVYoKTsNCiAgICAgICAgICAgICAgICB3cmFwcGVyLmFwcGVuZENoaWxkKGxvZ3MpOw0KICAgICAgICAgICAgICAgIHNob3dMb2dzKHRydWUpOw0KICAgICAgICAgICAgICAgIHJldHVybjsNCiAgICAgICAgICAgIGNhc2UgImxvZ291dCI6DQogICAgICAgICAgICAgICAgbG9jYXRpb24ucmVsb2FkKCk7DQogICAgICAgICAgICAgICAgZG9jdW1lbnQuY29va2llID0gIlRva2VuPSA7IGV4cGlyZXMgPSBUaHUsIDAxIEphbiAxOTcwIDAwOjAwOjAwIEdNVCI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBkZWZhdWx0Og0KICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKCJTaG93IGNvbnRlbnQgKG1lbnVLZXkpOiIsIG1lbnVLZXkpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICB9DQogICAgICAgIC8vIENyZWF0ZSB0YWJsZSAoaWYgbmVlZGVkKQ0KICAgICAgICB2YXIgdGFibGVIZWFkZXIgPSBtZW51SXRlbXNbdGhpcy5tZW51SURdLnRhYmxlSGVhZGVyOw0KICAgICAgICBpZiAodGFibGVIZWFkZXIubGVuZ3RoID4gMCkgew0KICAgICAgICAgICAgdmFyIHdyYXBwZXIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJESVYiKTsNCiAgICAgICAgICAgIGRvYy5hcHBlbmRDaGlsZCh3cmFwcGVyKTsNCiAgICAgICAgICAgIHdyYXBwZXIuc2V0QXR0cmlidXRlKCJpZCIsICJib3gtd3JhcHBlciIpOw0KICAgICAgICAgICAgdmFyIHRhYmxlID0gdGhpcy5jcmVhdGVUQUJMRSgpOw0KICAgICAgICAgICAgd3JhcHBlci5hcHBlbmRDaGlsZCh0YWJsZSk7DQogICAgICAgICAgICB2YXIgaGVhZGVyID0gdGhpcy5jcmVhdGVUYWJsZVJvdygpOw0KICAgICAgICAgICAgdGFibGUuYXBwZW5kQ2hpbGQoaGVhZGVyKTsNCiAgICAgICAgICAgIC8vIFRhYmxlIGhlYWRlcg0KICAgICAgICAgICAgdGFibGVIZWFkZXIuZm9yRWFjaChlbGVtZW50ID0+IHsNCiAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGVsZW1lbnQ7DQogICAgICAgICAgICAgICAgaWYgKGVsZW1lbnQgPT0gIkJVTEsiKSB7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIkJVTEtfSEVBRCI7DQogICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBmYWxzZTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgaWYgKG1lbnVLZXkgPT0gIm1hcHBpbmciKSB7DQogICAgICAgICAgICAgICAgICAgIGlmIChlbGVtZW50ID09ICJ7ey5tYXBwaW5nLnRhYmxlLmNoTm99fSIpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwub25jbGljayA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLm9uY2xpY2tGdW5jdGlvbiA9ICJqYXZhc2NyaXB0OiBzb3J0VGFibGUoMSk7IjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudGRDbGFzc05hbWUgPSAic29ydFRoaXMiOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIGlmIChlbGVtZW50ID09ICJ7ey5tYXBwaW5nLnRhYmxlLmNoYW5uZWxOYW1lfX0iKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLm9uY2xpY2sgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5vbmNsaWNrRnVuY3Rpb24gPSAiamF2YXNjcmlwdDogc29ydFRhYmxlKDMpOyI7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgaWYgKGVsZW1lbnQgPT0gInt7Lm1hcHBpbmcudGFibGUucGxheWxpc3R9fSIpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwub25jbGljayA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLm9uY2xpY2tGdW5jdGlvbiA9ICJqYXZhc2NyaXB0OiBzb3J0VGFibGUoNCk7IjsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBpZiAoZWxlbWVudCA9PSAie3subWFwcGluZy50YWJsZS5ncm91cFRpdGxlfX0iKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLm9uY2xpY2sgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5vbmNsaWNrRnVuY3Rpb24gPSAiamF2YXNjcmlwdDogc29ydFRhYmxlKDUpOyI7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgaWYgKGVsZW1lbnQgPT0gInt7Lm1hcHBpbmcudGFibGUudGltZXNoaWZ0fX0iKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLm9uY2xpY2sgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5vbmNsaWNrRnVuY3Rpb24gPSAiamF2YXNjcmlwdDogc29ydFRhYmxlKDgpOyI7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgaGVhZGVyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgIH0pOw0KICAgICAgICAgICAgdGFibGUuYXBwZW5kQ2hpbGQoaGVhZGVyKTsNCiAgICAgICAgICAgIC8vIENvbnRlbnQgb2YgdGhlIHRhYmxlDQogICAgICAgICAgICB2YXIgcm93cyA9IHRoaXMuY3JlYXRlVGFibGVDb250ZW50KG1lbnVLZXkpOw0KICAgICAgICAgICAgcm93cy5mb3JFYWNoKHRyID0+IHsNCiAgICAgICAgICAgICAgICB0YWJsZS5hcHBlbmRDaGlsZCh0cik7DQogICAgICAgICAgICB9KTsNCiAgICAgICAgfQ0KICAgICAgICBzd2l0Y2ggKG1lbnVLZXkpIHsNCiAgICAgICAgICAgIGNhc2UgIm1hcHBpbmciOg0KICAgICAgICAgICAgICAgIHNvcnRUYWJsZSgxKTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImZpbHRlciI6DQogICAgICAgICAgICAgICAgc2hvd1ByZXZpZXcodHJ1ZSk7DQogICAgICAgICAgICAgICAgc29ydFRhYmxlKDApOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgICAgICBDT0xVTU5fVE9fU09SVCA9IC0xOw0KICAgICAgICAgICAgICAgIHNvcnRUYWJsZSgwKTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgfQ0KICAgICAgICBzaG93RWxlbWVudCgibG9hZGluZyIsIGZhbHNlKTsNCiAgICB9DQp9DQpmdW5jdGlvbiBQYWdlUmVhZHkoKSB7DQogICAgbGV0IHNlcnZlciA9IG5ldyBTZXJ2ZXIoImdldFNlcnZlckNvbmZpZyIpOw0KICAgIHNlcnZlci5yZXF1ZXN0KHt9KTsNCiAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigicmVzaXplIiwgZnVuY3Rpb24gKCkgew0KICAgICAgICBjYWxjdWxhdGVXcmFwcGVySGVpZ2h0KCk7DQogICAgfSwgdHJ1ZSk7DQogICAgc2V0SW50ZXJ2YWwoZnVuY3Rpb24gKCkgew0KICAgICAgICB1cGRhdGVMb2coKTsNCiAgICB9LCAxMDAwMCk7DQogICAgcmV0dXJuOw0KfQ0KZnVuY3Rpb24gY3JlYXRlTGF5b3V0KCkgew0KICAgIC8vIENsaWVudCBJbmZvDQogICAgbGV0IG9iaiA9IFNFUlZFUlsiY2xpZW50SW5mbyJdOw0KICAgIGxldCBrZXlzID0gZ2V0T2JqS2V5cyhvYmopOw0KICAgIGZvciAodmFyIGkgPSAwOyBpIDwga2V5cy5sZW5ndGg7IGkrKykgew0KICAgICAgICBpZiAoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoa2V5c1tpXSkpIHsNCiAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGtleXNbaV0pLmlubmVySFRNTCA9IG9ialtrZXlzW2ldXTsNCiAgICAgICAgfQ0KICAgIH0NCiAgICBpZiAoIWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJtYWluLW1lbnUiKSkgew0KICAgICAgICByZXR1cm47DQogICAgfQ0KICAgIC8vIENyZWF0ZSBtZW51DQogICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm1haW4tbWVudSIpLmlubmVySFRNTCA9ICIiOw0KICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbWVudUl0ZW1zLmxlbmd0aDsgaSsrKSB7DQogICAgICAgIG1lbnVJdGVtc1tpXS5pZCA9IGk7DQogICAgICAgIHN3aXRjaCAobWVudUl0ZW1zW2ldWyJtZW51S2V5Il0pIHsNCiAgICAgICAgICAgIGNhc2UgInVzZXJzIjoNCiAgICAgICAgICAgIGNhc2UgImxvZ291dCI6DQogICAgICAgICAgICAgICAgaWYgKFNFUlZFUlsic2V0dGluZ3MiXVsiYXV0aGVudGljYXRpb24ud2ViIl0gPT0gdHJ1ZSkgew0KICAgICAgICAgICAgICAgICAgICBtZW51SXRlbXNbaV0uY3JlYXRlSXRlbSgpOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgIm1hcHBpbmciOg0KICAgICAgICAgICAgY2FzZSAieG1sdHYiOg0KICAgICAgICAgICAgICAgIGlmIChTRVJWRVJbImNsaWVudEluZm8iXVsiZXBnU291cmNlIl0gPT0gIlhFUEciKSB7DQogICAgICAgICAgICAgICAgICAgIG1lbnVJdGVtc1tpXS5jcmVhdGVJdGVtKCk7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgICAgICBtZW51SXRlbXNbaV0uY3JlYXRlSXRlbSgpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICB9DQogICAgfQ0KICAgIHJldHVybjsNCn0NCmZ1bmN0aW9uIG9wZW5UaGlzTWVudShlbGVtZW50KSB7DQogICAgbGV0IGlkID0gZWxlbWVudC5pZDsNCiAgICBsZXQgY29udGVudCA9IG5ldyBTaG93Q29udGVudChpZCk7DQogICAgY29udGVudC5zaG93KCk7DQogICAgY2FsY3VsYXRlV3JhcHBlckhlaWdodCgpOw0KICAgIHJldHVybjsNCn0NCmNsYXNzIFBvcHVwV2luZG93IHsNCiAgICBjb25zdHJ1Y3RvcigpIHsNCiAgICAgICAgdGhpcy5Eb2N1bWVudElEID0gInBvcHVwLWN1c3RvbSI7DQogICAgICAgIHRoaXMuSW50ZXJhY3Rpb25JRCA9ICJpbnRlcmFjdGlvbiI7DQogICAgICAgIHRoaXMuZG9jID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQodGhpcy5Eb2N1bWVudElEKTsNCiAgICB9DQogICAgY3JlYXRlVGl0bGUodGl0bGUpIHsNCiAgICAgICAgbGV0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgdGQuY2xhc3NOYW1lID0gImxlZnQiOw0KICAgICAgICB0ZC5pbm5lckhUTUwgPSB0aXRsZSArICI6IjsNCiAgICAgICAgcmV0dXJuIHRkOw0KICAgIH0NCiAgICBjcmVhdGVDb250ZW50KGVsZW1lbnQpIHsNCiAgICAgICAgbGV0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgdGQuYXBwZW5kQ2hpbGQoZWxlbWVudCk7DQogICAgICAgIHJldHVybiB0ZDsNCiAgICB9DQogICAgY3JlYXRlSW50ZXJhY3Rpb24oKSB7DQogICAgICAgIGxldCBkaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsNCiAgICAgICAgZGl2LnNldEF0dHJpYnV0ZSgiaWQiLCAicG9wdXAtaW50ZXJhY3Rpb24iKTsNCiAgICAgICAgZGl2LmNsYXNzTmFtZSA9ICJpbnRlcmFjdGlvbiI7DQogICAgICAgIHRoaXMuZG9jLmFwcGVuZENoaWxkKGRpdik7DQogICAgfQ0KfQ0KY2xhc3MgUG9wdXBDb250ZW50IGV4dGVuZHMgUG9wdXBXaW5kb3cgew0KICAgIGNvbnN0cnVjdG9yKCkgew0KICAgICAgICBzdXBlciguLi5hcmd1bWVudHMpOw0KICAgICAgICB0aGlzLnRhYmxlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEFCTEUiKTsNCiAgICB9DQogICAgY3JlYXRlSGVhZGxpbmUoaGVhZGxpbmUpIHsNCiAgICAgICAgdGhpcy5kb2MuaW5uZXJIVE1MID0gIiI7DQogICAgICAgIHZhciBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiSDMiKTsNCiAgICAgICAgZWxlbWVudC5pbm5lckhUTUwgPSBoZWFkbGluZS50b1VwcGVyQ2FzZSgpOw0KICAgICAgICB0aGlzLmRvYy5hcHBlbmRDaGlsZChlbGVtZW50KTsNCiAgICAgICAgLy8gQ3JlYXRlIHRhYmxlDQogICAgICAgIHRoaXMudGFibGUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJUQUJMRSIpOw0KICAgICAgICB0aGlzLmRvYy5hcHBlbmRDaGlsZCh0aGlzLnRhYmxlKTsNCiAgICB9DQogICAgYXBwZW5kUm93KHRpdGxlLCBlbGVtZW50KSB7DQogICAgICAgIGxldCB0ciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlRSIik7DQogICAgICAgIC8vIFRpdGxlDQogICAgICAgIGlmICh0aXRsZS5sZW5ndGggIT0gMCkgew0KICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQodGhpcy5jcmVhdGVUaXRsZSh0aXRsZSkpOw0KICAgICAgICB9DQogICAgICAgIC8vIENvbnRlbnQNCiAgICAgICAgdHIuYXBwZW5kQ2hpbGQodGhpcy5jcmVhdGVDb250ZW50KGVsZW1lbnQpKTsNCiAgICAgICAgdGhpcy50YWJsZS5hcHBlbmRDaGlsZCh0cik7DQogICAgfQ0KICAgIGNyZWF0ZUlucHV0KHR5cGUsIG5hbWUsIHZhbHVlKSB7DQogICAgICAgIGxldCBpbnB1dCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIklOUFVUIik7DQogICAgICAgIGlmICh2YWx1ZSA9PSB1bmRlZmluZWQpIHsNCiAgICAgICAgICAgIHZhbHVlID0gIiI7DQogICAgICAgIH0NCiAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJ0eXBlIiwgdHlwZSk7DQogICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgibmFtZSIsIG5hbWUpOw0KICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInZhbHVlIiwgdmFsdWUpOw0KICAgICAgICByZXR1cm4gaW5wdXQ7DQogICAgfQ0KICAgIGNyZWF0ZUNoZWNrYm94KG5hbWUpIHsNCiAgICAgICAgbGV0IGlucHV0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiSU5QVVQiKTsNCiAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJ0eXBlIiwgImNoZWNrYm94Iik7DQogICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgibmFtZSIsIG5hbWUpOw0KICAgICAgICByZXR1cm4gaW5wdXQ7DQogICAgfQ0KICAgIC8vIENyZWF0ZXMgYSBzZWxlY3Rpb24gb2YgbXVsdGlwbGUgb3B0aW9ucyB2YWx1ZXMgd2l0aCB0ZXh0IGRlc2NyaXB0aW9ucw0KICAgIGNyZWF0ZVNlbGVjdCh0ZXh0LCB2YWx1ZXMsIHNldCwgZGJLZXkpIHsNCiAgICAgICAgbGV0IHNlbGVjdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlNFTEVDVCIpOw0KICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJuYW1lIiwgZGJLZXkpOw0KICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRleHQubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgICAgIGxldCBvcHRpb24gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJPUFRJT04iKTsNCiAgICAgICAgICAgIG9wdGlvbi5zZXRBdHRyaWJ1dGUoInZhbHVlIiwgdmFsdWVzW2ldKTsNCiAgICAgICAgICAgIG9wdGlvbi5pbm5lclRleHQgPSB0ZXh0W2ldOw0KICAgICAgICAgICAgc2VsZWN0LmFwcGVuZENoaWxkKG9wdGlvbik7DQogICAgICAgIH0NCiAgICAgICAgaWYgKHNldCAhPSAiIikgew0KICAgICAgICAgICAgc2VsZWN0LnZhbHVlID0gc2V0Ow0KICAgICAgICB9DQogICAgICAgIGlmIChzZXQgPT0gdW5kZWZpbmVkKSB7DQogICAgICAgICAgICBzZWxlY3QudmFsdWUgPSB2YWx1ZXNbMF07DQogICAgICAgIH0NCiAgICAgICAgcmV0dXJuIHNlbGVjdDsNCiAgICB9DQogICAgc2VsZWN0T3B0aW9uKHNlbGVjdCwgdmFsdWUpIHsNCiAgICAgICAgLy9zZWxlY3Quc2VsZWN0ZWRPcHRpb25zID0gdmFsdWUNCiAgICAgICAgbGV0IHMgPSBzZWxlY3Q7DQogICAgICAgIHMub3B0aW9uc1tzLnNlbGVjdGVkSW5kZXhdLnZhbHVlID0gdmFsdWU7DQogICAgICAgIHJldHVybiBzZWxlY3Q7DQogICAgfQ0KICAgIGRlc2NyaXB0aW9uKHZhbHVlKSB7DQogICAgICAgIGxldCB0ciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlRSIik7DQogICAgICAgIGxldCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgIGxldCBzcGFuID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiUFJFIik7DQogICAgICAgIHNwYW4uaW5uZXJIVE1MID0gdmFsdWU7DQogICAgICAgIHRyLmFwcGVuZENoaWxkKHRkKTsNCiAgICAgICAgdHIuYXBwZW5kQ2hpbGQodGhpcy5jcmVhdGVDb250ZW50KHNwYW4pKTsNCiAgICAgICAgdGhpcy50YWJsZS5hcHBlbmRDaGlsZCh0cik7DQogICAgfQ0KICAgIC8vIEludGVyYWN0aW9uDQogICAgYWRkSW50ZXJhY3Rpb24oZWxlbWVudCkgew0KICAgICAgICBsZXQgaW50ZXJhY3Rpb24gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicG9wdXAtaW50ZXJhY3Rpb24iKTsNCiAgICAgICAgaW50ZXJhY3Rpb24uYXBwZW5kQ2hpbGQoZWxlbWVudCk7DQogICAgfQ0KfQ0KZnVuY3Rpb24gb3BlblBvcFVwKGRhdGFUeXBlLCBlbGVtZW50KSB7DQogICAgbGV0IGRhdGEgPSB7fTsNCiAgICBsZXQgaWQ7DQogICAgc3dpdGNoIChlbGVtZW50KSB7DQogICAgICAgIGNhc2UgdW5kZWZpbmVkOg0KICAgICAgICAgICAgc3dpdGNoIChkYXRhVHlwZSkgew0KICAgICAgICAgICAgICAgIGNhc2UgImdyb3VwLXRpdGxlIjoNCiAgICAgICAgICAgICAgICAgICAgaWYgKGlkID09IHVuZGVmaW5lZCkgew0KICAgICAgICAgICAgICAgICAgICAgICAgaWQgPSAtMTsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBkYXRhID0gZ2V0TG9jYWxEYXRhKCJmaWx0ZXIiLCBpZCk7DQogICAgICAgICAgICAgICAgICAgIGRhdGFbInR5cGUiXSA9ICJncm91cC10aXRsZSI7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgImN1c3RvbS1maWx0ZXIiOg0KICAgICAgICAgICAgICAgICAgICBpZiAoaWQgPT0gdW5kZWZpbmVkKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBpZCA9IC0xOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIGRhdGEgPSBnZXRMb2NhbERhdGEoImZpbHRlciIsIGlkKTsNCiAgICAgICAgICAgICAgICAgICAgZGF0YVsidHlwZSJdID0gImN1c3RvbS1maWx0ZXIiOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBkZWZhdWx0Og0KICAgICAgICAgICAgICAgICAgICBkYXRhWyJpZC5wcm92aWRlciJdID0gIi0iOw0KICAgICAgICAgICAgICAgICAgICBkYXRhWyJ0eXBlIl0gPSBkYXRhVHlwZTsNCiAgICAgICAgICAgICAgICAgICAgaWQgPSAiLSI7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICBpZCA9IGVsZW1lbnQuaWQ7DQogICAgICAgICAgICBkYXRhID0gZ2V0TG9jYWxEYXRhKGRhdGFUeXBlLCBpZCk7DQogICAgICAgICAgICBicmVhazsNCiAgICB9DQogICAgbGV0IGNvbnRlbnQgPSBuZXcgUG9wdXBDb250ZW50KCk7DQogICAgc3dpdGNoIChkYXRhVHlwZSkgew0KICAgICAgICBjYXNlICJwbGF5bGlzdCI6DQogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUhlYWRsaW5lKCJ7ey5wbGF5bGlzdC5wbGF5bGlzdFR5cGUudGl0bGV9fSIpOw0KICAgICAgICAgICAgLy8gVHlwZQ0KICAgICAgICAgICAgdmFyIHRleHQgPSBbIk0zVSIsICJIREhvbWVSdW4iXTsNCiAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBbImphdmFzY3JpcHQ6IG9wZW5Qb3BVcCgnbTN1JykiLCAiamF2YXNjcmlwdDogb3BlblBvcFVwKCdoZGhyJykiXTsNCiAgICAgICAgICAgIHZhciBzZWxlY3QgPSBjb250ZW50LmNyZWF0ZVNlbGVjdCh0ZXh0LCB2YWx1ZXMsICIiLCAidHlwZSIpOw0KICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgiaWQiLCAidHlwZSIpOw0KICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAnamF2YXNjcmlwdDogY2hhbmdlQnV0dG9uQWN0aW9uKHRoaXMsICJuZXh0IiwgIm9uY2xpY2siKScpOyAvLyBjaGFuZ2VCdXR0b25BY3Rpb24NCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5wbGF5bGlzdC50eXBlLnRpdGxlfX0iLCBzZWxlY3QpOw0KICAgICAgICAgICAgLy8gSW50ZXJhY3Rpb24NCiAgICAgICAgICAgIGNvbnRlbnQuY3JlYXRlSW50ZXJhY3Rpb24oKTsNCiAgICAgICAgICAgIC8vIEFib3J0DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAiY2FuY2VsIiwgInt7LmJ1dHRvbi5jYW5jZWx9fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IHNob3dFbGVtZW50KCJwb3B1cCIsIGZhbHNlKTsnKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgLy8gTmV4dA0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgIm5leHQiLCAie3suYnV0dG9uLm5leHR9fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgibTN1IiknKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgiaWQiLCAnbmV4dCcpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSAibTN1IjoNCiAgICAgICAgICAgIGNvbnRlbnQuY3JlYXRlSGVhZGxpbmUoZGF0YVR5cGUpOw0KICAgICAgICAgICAgLy8gTmFtZQ0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gIm5hbWUiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnBsYXlsaXN0Lm5hbWUucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnBsYXlsaXN0Lm5hbWUudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIERlc2NyaXB0aW9uDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAiZGVzY3JpcHRpb24iOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnBsYXlsaXN0LmRlc2NyaXB0aW9uLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5wbGF5bGlzdC5kZXNjcmlwdGlvbi50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgLy8gVVJMDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAiZmlsZS5zb3VyY2UiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnBsYXlsaXN0LmZpbGVNM1UucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnBsYXlsaXN0LmZpbGVNM1UudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIFR1bmVyDQogICAgICAgICAgICBpZiAoU0VSVkVSWyJzZXR0aW5ncyJdWyJidWZmZXIiXSAhPSAiLSIpIHsNCiAgICAgICAgICAgICAgICB2YXIgdGV4dCA9IFtdOw0KICAgICAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBbXTsNCiAgICAgICAgICAgICAgICBmb3IgKHZhciBpID0gMTsgaSA8PSAxMDA7IGkrKykgew0KICAgICAgICAgICAgICAgICAgICB0ZXh0LnB1c2goaS50b1N0cmluZygpKTsNCiAgICAgICAgICAgICAgICAgICAgdmFsdWVzLnB1c2goaS50b1N0cmluZygpKTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgdmFyIGRiS2V5ID0gInR1bmVyIjsNCiAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCBkYXRhW2RiS2V5XSwgZGJLZXkpOw0KICAgICAgICAgICAgICAgIHNlbGVjdC5zZXRBdHRyaWJ1dGUoIm9uZm9jdXMiLCAiamF2YXNjcmlwdDogcmV0dXJuOyIpOw0KICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5wbGF5bGlzdC50dW5lci50aXRsZX19Iiwgc2VsZWN0KTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgICAgIHZhciBkYktleSA9ICJ0dW5lciI7DQogICAgICAgICAgICAgICAgaWYgKGRhdGFbZGJLZXldID09IHVuZGVmaW5lZCkgew0KICAgICAgICAgICAgICAgICAgICBkYXRhW2RiS2V5XSA9IDE7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicmVhZG9ubHkiLCAidHJ1ZSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LmNsYXNzTmFtZSA9ICJub3RBdmFpbGFibGUiOw0KICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5wbGF5bGlzdC50dW5lci50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgY29udGVudC5kZXNjcmlwdGlvbigie3sucGxheWxpc3QudHVuZXIuZGVzY3JpcHRpb259fSIpOw0KICAgICAgICAgICAgLy8gSW50ZXJhdGlvbg0KICAgICAgICAgICAgY29udGVudC5jcmVhdGVJbnRlcmFjdGlvbigpOw0KICAgICAgICAgICAgLy8gRGVsZXRlDQogICAgICAgICAgICBpZiAoZGF0YVsiaWQucHJvdmlkZXIiXSAhPSAiLSIpIHsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAiZGVsZXRlIiwgInt7LmJ1dHRvbi5kZWxldGV9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LmNsYXNzTmFtZSA9ICJkZWxldGUiOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBzYXZlUG9wdXBEYXRhKCJtM3UiLCAiJyArIGlkICsgJyIsIHRydWUsIDApJyk7DQogICAgICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAiYmFjayIsICJ7ey5idXR0b24uYmFja319Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgicGxheWxpc3QiKScpOw0KICAgICAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgLy8gQWJvcnQNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJjYW5jZWwiLCAie3suYnV0dG9uLmNhbmNlbH19Iik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogc2hvd0VsZW1lbnQoInBvcHVwIiwgZmFsc2UpOycpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICAvLyBVcGRhdGUNCiAgICAgICAgICAgIGlmIChkYXRhWyJpZC5wcm92aWRlciJdICE9ICItIikgew0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJ1cGRhdGUiLCAie3suYnV0dG9uLnVwZGF0ZX19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoIm0zdSIsICInICsgaWQgKyAnIiwgZmFsc2UsIDEpJyk7DQogICAgICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICAvLyBTYXZlDQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAic2F2ZSIsICJ7ey5idXR0b24uc2F2ZX19Iik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogc2F2ZVBvcHVwRGF0YSgibTN1IiwgIicgKyBpZCArICciLCBmYWxzZSwgMCknKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGNhc2UgImhkaHIiOg0KICAgICAgICAgICAgY29udGVudC5jcmVhdGVIZWFkbGluZShkYXRhVHlwZSk7DQogICAgICAgICAgICAvLyBOYW1lDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAibmFtZSI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3sucGxheWxpc3QubmFtZS5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sucGxheWxpc3QubmFtZS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgLy8gRGVzY3JpcHRpb24NCiAgICAgICAgICAgIHZhciBkYktleSA9ICJkZXNjcmlwdGlvbiI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3sucGxheWxpc3QuZGVzY3JpcHRpb24ucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnBsYXlsaXN0LmRlc2NyaXB0aW9uLnBsYWNlaG9sZGVyfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBVUkwNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJmaWxlLnNvdXJjZSI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3sucGxheWxpc3QuZmlsZUhESFIucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnBsYXlsaXN0LmZpbGVIREhSLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBUdW5lcg0KICAgICAgICAgICAgaWYgKFNFUlZFUlsic2V0dGluZ3MiXVsiYnVmZmVyIl0gIT0gIi0iKSB7DQogICAgICAgICAgICAgICAgdmFyIHRleHQgPSBbXTsNCiAgICAgICAgICAgICAgICB2YXIgdmFsdWVzID0gW107DQogICAgICAgICAgICAgICAgZm9yICh2YXIgaSA9IDE7IGkgPD0gMTAwOyBpKyspIHsNCiAgICAgICAgICAgICAgICAgICAgdGV4dC5wdXNoKGkudG9TdHJpbmcoKSk7DQogICAgICAgICAgICAgICAgICAgIHZhbHVlcy5wdXNoKGkudG9TdHJpbmcoKSk7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIHZhciBkYktleSA9ICJ0dW5lciI7DQogICAgICAgICAgICAgICAgdmFyIHNlbGVjdCA9IGNvbnRlbnQuY3JlYXRlU2VsZWN0KHRleHQsIHZhbHVlcywgZGF0YVtkYktleV0sIGRiS2V5KTsNCiAgICAgICAgICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJvbmZvY3VzIiwgImphdmFzY3JpcHQ6IHJldHVybjsiKTsNCiAgICAgICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sucGxheWxpc3QudHVuZXIudGl0bGV9fSIsIHNlbGVjdCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICB2YXIgZGJLZXkgPSAidHVuZXIiOw0KICAgICAgICAgICAgICAgIGlmIChkYXRhW2RiS2V5XSA9PSB1bmRlZmluZWQpIHsNCiAgICAgICAgICAgICAgICAgICAgZGF0YVtkYktleV0gPSAxOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInJlYWRvbmx5IiwgInRydWUiKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5jbGFzc05hbWUgPSAibm90QXZhaWxhYmxlIjsNCiAgICAgICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sucGxheWxpc3QudHVuZXIudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGNvbnRlbnQuZGVzY3JpcHRpb24oInt7LnBsYXlsaXN0LnR1bmVyLmRlc2NyaXB0aW9ufX0iKTsNCiAgICAgICAgICAgIC8vIEludGVyYWN0aW9uDQogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUludGVyYWN0aW9uKCk7DQogICAgICAgICAgICAvLyBEZWxldGUNCiAgICAgICAgICAgIGlmIChkYXRhWyJpZC5wcm92aWRlciJdICE9ICItIikgew0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJkZWxldGUiLCAie3suYnV0dG9uLmRlbGV0ZX19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoImhkaHIiLCAiJyArIGlkICsgJyIsIHRydWUsIDApJyk7DQogICAgICAgICAgICAgICAgaW5wdXQuY2xhc3NOYW1lID0gImRlbGV0ZSI7DQogICAgICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAiYmFjayIsICJ7ey5idXR0b24uYmFja319Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgicGxheWxpc3QiKScpOw0KICAgICAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgLy8gQWJvcnQNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJjYW5jZWwiLCAie3suYnV0dG9uLmNhbmNlbH19Iik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogc2hvd0VsZW1lbnQoInBvcHVwIiwgZmFsc2UpOycpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICAvLyBVcGRhdGUNCiAgICAgICAgICAgIGlmIChkYXRhWyJpZC5wcm92aWRlciJdICE9ICItIikgew0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJ1cGRhdGUiLCAie3suYnV0dG9uLnVwZGF0ZX19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoImhkaHIiLCAiJyArIGlkICsgJyIsIGZhbHNlLCAxKScpOw0KICAgICAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgLy8gU2F2ZQ0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgInNhdmUiLCAie3suYnV0dG9uLnNhdmV9fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoImhkaHIiLCAiJyArIGlkICsgJyIsIGZhbHNlLCAwKScpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSAiZmlsdGVyIjoNCiAgICAgICAgICAgIGNvbnRlbnQuY3JlYXRlSGVhZGxpbmUoZGF0YVR5cGUpOw0KICAgICAgICAgICAgLy8gVHlwZQ0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gInR5cGUiOw0KICAgICAgICAgICAgdmFyIHRleHQgPSBbIk0zVTogIiArICJ7ey5maWx0ZXIudHlwZS5ncm91cFRpdGxlfX0iLCAieFRlVmU6ICIgKyAie3suZmlsdGVyLnR5cGUuY3VzdG9tRmlsdGVyfX0iXTsNCiAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBbImphdmFzY3JpcHQ6IG9wZW5Qb3BVcCgnZ3JvdXAtdGl0bGUnKSIsICJqYXZhc2NyaXB0OiBvcGVuUG9wVXAoJ2N1c3RvbS1maWx0ZXInKSJdOw0KICAgICAgICAgICAgdmFyIHNlbGVjdCA9IGNvbnRlbnQuY3JlYXRlU2VsZWN0KHRleHQsIHZhbHVlcywgImphdmFzY3JpcHQ6IG9wZW5Qb3BVcCgnZ3JvdXAtdGl0bGUnKSIsIGRiS2V5KTsNCiAgICAgICAgICAgIHNlbGVjdC5zZXRBdHRyaWJ1dGUoImlkIiwgaWQpOw0KICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAnamF2YXNjcmlwdDogY2hhbmdlQnV0dG9uQWN0aW9uKHRoaXMsICJuZXh0IiwgIm9uY2xpY2siKTsnKTsgLy8gY2hhbmdlQnV0dG9uQWN0aW9uDQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3suZmlsdGVyLnR5cGUudGl0bGV9fSIsIHNlbGVjdCk7DQogICAgICAgICAgICAvLyBJbnRlcmFjdGlvbg0KICAgICAgICAgICAgY29udGVudC5jcmVhdGVJbnRlcmFjdGlvbigpOw0KICAgICAgICAgICAgLy8gQWJvcnQNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJjYW5jZWwiLCAie3suYnV0dG9uLmNhbmNlbH19Iik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogc2hvd0VsZW1lbnQoInBvcHVwIiwgZmFsc2UpOycpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICAvLyBOZXh0DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAibmV4dCIsICJ7ey5idXR0b24ubmV4dH19Iik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJncm91cC10aXRsZSIpJyk7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoImlkIiwgJ25leHQnKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGNhc2UgImN1c3RvbS1maWx0ZXIiOg0KICAgICAgICBjYXNlICJncm91cC10aXRsZSI6DQogICAgICAgICAgICBzd2l0Y2ggKGRhdGFUeXBlKSB7DQogICAgICAgICAgICAgICAgY2FzZSAiY3VzdG9tLWZpbHRlciI6DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuY3JlYXRlSGVhZGxpbmUoInt7LmZpbHRlci5jdXN0b219fSIgKyAiIEZpbHRlciIpOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBjYXNlICJncm91cC10aXRsZSI6DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuY3JlYXRlSGVhZGxpbmUoInt7LmZpbHRlci5ncm91cH19IiArICIgRmlsdGVyIik7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgLy8gTmFtZSAgICAgIA0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gIm5hbWUiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LmZpbHRlci5uYW1lLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5maWx0ZXIubmFtZS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgLy8gRGVzY3JpcHRpb24NCiAgICAgICAgICAgIHZhciBkYktleSA9ICJkZXNjcmlwdGlvbiI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3suZmlsdGVyLmRlc2NyaXB0aW9uLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5maWx0ZXIuZGVzY3JpcHRpb24udGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIFR5cGUNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJ0eXBlIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImhpZGRlbiIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygiIiwgaW5wdXQpOw0KICAgICAgICAgICAgdmFyIGZpbHRlclR5cGUgPSBkYXRhW2RiS2V5XTsNCiAgICAgICAgICAgIHN3aXRjaCAoZmlsdGVyVHlwZSkgew0KICAgICAgICAgICAgICAgIGNhc2UgImN1c3RvbS1maWx0ZXIiOg0KICAgICAgICAgICAgICAgICAgICAvLyBDYXNlIHNlbnNpdGl2ZQ0KICAgICAgICAgICAgICAgICAgICB2YXIgZGJLZXkgPSAiY2FzZVNlbnNpdGl2ZSI7DQogICAgICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goZGJLZXkpOw0KICAgICAgICAgICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YVtkYktleV07DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5maWx0ZXIuY2FzZVNlbnNpdGl2ZS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgICAgICAgICAvLyBGaWx0ZXIgUnVsZSAoQ3VzdG9tKQ0KICAgICAgICAgICAgICAgICAgICB2YXIgZGJLZXkgPSAiZmlsdGVyIjsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3suZmlsdGVyLmZpbHRlclJ1bGUucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3suZmlsdGVyLmZpbHRlclJ1bGUudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAiZ3JvdXAtdGl0bGUiOg0KICAgICAgICAgICAgICAgICAgICAvL2FsZXJ0KGRiS2V5ICsgIiAiICsgZmlsdGVyVHlwZSkNCiAgICAgICAgICAgICAgICAgICAgLy8gRmlsdGVyIGJhc2VkIG9uIHRoZSBncm91cHMgaW4gdGhlIE0zVQ0KICAgICAgICAgICAgICAgICAgICB2YXIgZGJLZXkgPSAiZmlsdGVyIjsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGdyb3Vwc00zVSA9IGdldExvY2FsRGF0YSgibTN1R3JvdXBzIiwgIiIpOw0KICAgICAgICAgICAgICAgICAgICB2YXIgdGV4dCA9IGdyb3Vwc00zVVsidGV4dCJdOw0KICAgICAgICAgICAgICAgICAgICB2YXIgdmFsdWVzID0gZ3JvdXBzTTNVWyJ2YWx1ZSJdOw0KICAgICAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCBkYXRhW2RiS2V5XSwgZGJLZXkpOw0KICAgICAgICAgICAgICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3suZmlsdGVyLmZpbHRlckdyb3VwLnRpdGxlfX0iLCBzZWxlY3QpOw0KICAgICAgICAgICAgICAgICAgICBjb250ZW50LmRlc2NyaXB0aW9uKCJ7ey5maWx0ZXIuZmlsdGVyR3JvdXAuZGVzY3JpcHRpb259fSIpOw0KICAgICAgICAgICAgICAgICAgICAvLyBDYXNlIHNlbnNldGl2ZQ0KICAgICAgICAgICAgICAgICAgICB2YXIgZGJLZXkgPSAiY2FzZVNlbnNpdGl2ZSI7DQogICAgICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goZGJLZXkpOw0KICAgICAgICAgICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YVtkYktleV07DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5maWx0ZXIuY2FzZVNlbnNpdGl2ZS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgICAgICAgICB2YXIgZGJLZXkgPSAiaW5jbHVkZSI7DQogICAgICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LmZpbHRlci5pbmNsdWRlLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LmZpbHRlci5pbmNsdWRlLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuZGVzY3JpcHRpb24oInt7LmZpbHRlci5pbmNsdWRlLmRlc2NyaXB0aW9ufX0iKTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGRiS2V5ID0gImV4Y2x1ZGUiOw0KICAgICAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5maWx0ZXIuZXhjbHVkZS5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5maWx0ZXIuZXhjbHVkZS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgICAgICAgICBjb250ZW50LmRlc2NyaXB0aW9uKCJ7ey5maWx0ZXIuZXhjbHVkZS5kZXNjcmlwdGlvbn19Iik7DQogICAgICAgICAgICAgICAgICAgIC8vIFByZXNlcnZlIE0zVSBQbGF5bGlzdCBDaGFubmVsIE1hcHBpbmcNCiAgICAgICAgICAgICAgICAgICAgdmFyIGRiS2V5ID0gInByZXNlcnZlTWFwcGluZyI7DQogICAgICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goZGJLZXkpOw0KICAgICAgICAgICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YVtkYktleV07DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5maWx0ZXIucHJlc2VydmVNYXBwaW5nLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAgICAgICAgIC8vIFN0YXJ0aW5nIENoYW5uZWwgTnVtYmVyIE1hcHBpbmcNCiAgICAgICAgICAgICAgICAgICAgdmFyIGRiS2V5ID0gInN0YXJ0aW5nQ2hhbm5lbCI7DQogICAgICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LmZpbHRlci5zdGFydGluZ0NoYW5uZWwucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3suZmlsdGVyLnN0YXJ0aW5nQ2hhbm5lbC50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgICAgICAgICAvLyBGaWxsIE1pc3NpbmcgRVBHIERhdGENCiAgICAgICAgICAgICAgICAgICAgLy8gVGhlIGZvbGxvd2luZyBjb2RlIG9ubHkgd29ya3Mgd2hlbiB4VGVWZSBEdW1teSBhbHJlYWR5IGV4aXN0cw0KICAgICAgICAgICAgICAgICAgICAvLyB2YXIgZGJLZXk6c3RyaW5nID0gImRlZmF1bHRNaXNzaW5nRVBHIg0KICAgICAgICAgICAgICAgICAgICAvLyB2YXIgeG1sdHY6WE1MVFZGaWxlID0gbmV3IFhNTFRWRmlsZSgpDQogICAgICAgICAgICAgICAgICAgIC8vIHZhciBzZWxlY3QgPSB4bWx0di5nZXRQcm9ncmFtcygieFRlVmUgRHVtbXkiLCBkYXRhW2RiS2V5XSkNCiAgICAgICAgICAgICAgICAgICAgLy8gc2VsZWN0LnNldEF0dHJpYnV0ZSgibmFtZSIsIGRiS2V5KQ0KICAgICAgICAgICAgICAgICAgICAvLyBzZWxlY3Quc2V0QXR0cmlidXRlKCJpZCIsICJwb3B1cC1taXNzaW5nLWVwZyIpDQogICAgICAgICAgICAgICAgICAgIC8vIFRoZSB3b3JrYXJvdW5kIGlzIGN1cnJlbnRseSB0byBoYXJkIGNvZGUgdGhlIHhUZVZlIER1bW15IGRhdGENCiAgICAgICAgICAgICAgICAgICAgdmFyIGRiS2V5ID0gImRlZmF1bHRNaXNzaW5nRVBHIjsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGxpc3RPcHRpb25zID0geyAidGV4dCI6IFsiLSIsICIzMCBNaW51dGVzICgzMF9NaW51dGVzKSIsICI2MCBNaW51dGVzICg2MF9NaW51dGVzKSIsICI5MCBNaW51dGVzICg5MF9NaW51dGVzKSIsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgIjEyMCBNaW51dGVzICgxMjBfTWludXRlcykiLCAiMTgwIE1pbnV0ZXMgKDMwX01pbnV0ZXMpIiwgIjI0MCBNaW51dGVzICgzMF9NaW51dGVzKSIsICIzNjAgTWludXRlcyAoMzBfTWludXRlcykiXSwNCiAgICAgICAgICAgICAgICAgICAgICAgICJ2YWx1ZSI6IFsiLSIsICIzMF9NaW51dGVzIiwgIjYwX01pbnV0ZXMiLCAiOTBfTWludXRlcyIsICIxMjBfTWludXRlcyIsICIxODBfTWludXRlcyIsICIyNDBfTWludXRlcyIsICIzNjBfTWludXRlcyIsXSB9Ow0KICAgICAgICAgICAgICAgICAgICB2YXIgdGV4dCA9IGxpc3RPcHRpb25zWyJ0ZXh0Il07DQogICAgICAgICAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBsaXN0T3B0aW9uc1sidmFsdWUiXTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHNlbGVjdCA9IGNvbnRlbnQuY3JlYXRlU2VsZWN0KHRleHQsIHZhbHVlcywgZGF0YVtkYktleV0sIGRiS2V5KTsNCiAgICAgICAgICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LmZpbHRlci5kZWZhdWx0TWlzc2luZ0VQRy50aXRsZX19Iiwgc2VsZWN0KTsNCiAgICAgICAgICAgICAgICAgICAgY29udGVudC5kZXNjcmlwdGlvbigie3suZmlsdGVyLmRlZmF1bHRNaXNzaW5nRVBHLmRlc2NyaXB0aW9ufX0iKTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICB9DQogICAgICAgICAgICAvLyBJbnRlcmFjdGlvbg0KICAgICAgICAgICAgY29udGVudC5jcmVhdGVJbnRlcmFjdGlvbigpOw0KICAgICAgICAgICAgLy8gRGVsZXRlDQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAiZGVsZXRlIiwgInt7LmJ1dHRvbi5kZWxldGV9fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoImZpbHRlciIsICInICsgaWQgKyAnIiwgdHJ1ZSwgMCknKTsNCiAgICAgICAgICAgIGlucHV0LmNsYXNzTmFtZSA9ICJkZWxldGUiOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICAvLyBBYm9ydA0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImNhbmNlbCIsICJ7ey5idXR0b24uY2FuY2VsfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBzaG93RWxlbWVudCgicG9wdXAiLCBmYWxzZSk7Jyk7DQogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIC8vIFNhdmUNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJzYXZlIiwgInt7LmJ1dHRvbi5zYXZlfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBzYXZlUG9wdXBEYXRhKCJmaWx0ZXIiLCAiJyArIGlkICsgJyIsIGZhbHNlLCAwKScpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSAieG1sdHYiOg0KICAgICAgICAgICAgY29udGVudC5jcmVhdGVIZWFkbGluZShkYXRhVHlwZSk7DQogICAgICAgICAgICAvLyBOYW1lDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAibmFtZSI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3sueG1sdHYubmFtZS5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sueG1sdHYubmFtZS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgLy8gRGVzY3JpcHRpb24NCiAgICAgICAgICAgIHZhciBkYktleSA9ICJkZXNjcmlwdGlvbiI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3sueG1sdHYuZGVzY3JpcHRpb24ucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnhtbHR2LmRlc2NyaXB0aW9uLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBVUkwNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJmaWxlLnNvdXJjZSI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3sueG1sdHYuZmlsZVhNTFRWLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey54bWx0di5maWxlWE1MVFYudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIEludGVyYWN0aW9uDQogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUludGVyYWN0aW9uKCk7DQogICAgICAgICAgICAvLyBEZWxldGUNCiAgICAgICAgICAgIGlmIChkYXRhWyJpZC5wcm92aWRlciJdICE9ICItIikgew0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJkZWxldGUiLCAie3suYnV0dG9uLmRlbGV0ZX19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoInhtbHR2IiwgIicgKyBpZCArICciLCB0cnVlLCAwKScpOw0KICAgICAgICAgICAgICAgIGlucHV0LmNsYXNzTmFtZSA9ICJkZWxldGUiOw0KICAgICAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgLy8gQWJvcnQNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJjYW5jZWwiLCAie3suYnV0dG9uLmNhbmNlbH19Iik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogc2hvd0VsZW1lbnQoInBvcHVwIiwgZmFsc2UpOycpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICAvLyBVcGRhdGUNCiAgICAgICAgICAgIGlmIChkYXRhWyJpZC5wcm92aWRlciJdICE9ICItIikgew0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJ1cGRhdGUiLCAie3suYnV0dG9uLnVwZGF0ZX19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoInhtbHR2IiwgIicgKyBpZCArICciLCBmYWxzZSwgMSknKTsNCiAgICAgICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIC8vIFNhdmUNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJzYXZlIiwgInt7LmJ1dHRvbi5zYXZlfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBzYXZlUG9wdXBEYXRhKCJ4bWx0diIsICInICsgaWQgKyAnIiwgZmFsc2UsIDApJyk7DQogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJ1c2VycyI6DQogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUhlYWRsaW5lKCJ7ey5tYWluTWVudS5pdGVtLnVzZXJzfX0iKTsNCiAgICAgICAgICAgIC8vIFVzZXIgbmFtZQ0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gInVzZXJuYW1lIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey51c2Vycy51c2VybmFtZS5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sudXNlcnMudXNlcm5hbWUudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIE5ldyBQYXJzc3dvcmQNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJwYXNzd29yZCI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJwYXNzd29yZCIsIGRiS2V5LCAiIik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnVzZXJzLnBhc3N3b3JkLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey51c2Vycy5wYXNzd29yZC50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgLy8gQ29uZmlybWF0aW9uDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAiY29uZmlybSI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJwYXNzd29yZCIsIGRiS2V5LCAiIik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnVzZXJzLmNvbmZpcm0ucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnVzZXJzLmNvbmZpcm0udGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIEF1dGhlbnRpY2F0aW9uIFdFQg0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gImF1dGhlbnRpY2F0aW9uLndlYiI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KGRiS2V5KTsNCiAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhW2RiS2V5XTsNCiAgICAgICAgICAgIGlmIChkYXRhWyJkZWZhdWx0VXNlciJdID09IHRydWUpIHsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAiamF2YXNjcmlwdDogcmV0dXJuIGZhbHNlIik7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sudXNlcnMud2ViLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBBdXRoZW50aWNhdGlvbiBQTVMNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJhdXRoZW50aWNhdGlvbi5wbXMiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChkYktleSk7DQogICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YVtkYktleV07DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sudXNlcnMucG1zLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBBdXRoZW50aWNhdGlvbiBNM1UNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJhdXRoZW50aWNhdGlvbi5tM3UiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChkYktleSk7DQogICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YVtkYktleV07DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sudXNlcnMubTN1LnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBBdXRoZW50aWNhdGlvbiBYTUwNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJhdXRoZW50aWNhdGlvbi54bWwiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChkYktleSk7DQogICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YVtkYktleV07DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sudXNlcnMueG1sLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBBdXRoZW50aWNhdGlvbiBBUEkNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJhdXRoZW50aWNhdGlvbi5hcGkiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChkYktleSk7DQogICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YVtkYktleV07DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sudXNlcnMuYXBpLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBJbnRlcmFjdGlvbg0KICAgICAgICAgICAgY29udGVudC5jcmVhdGVJbnRlcmFjdGlvbigpOw0KICAgICAgICAgICAgLy8gRGVsZXRlDQogICAgICAgICAgICBpZiAoZGF0YVsiZGVmYXVsdFVzZXIiXSAhPSB0cnVlICYmIGlkICE9ICItIikgew0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJkZWxldGUiLCAie3suYnV0dG9uLmRlbGV0ZX19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuY2xhc3NOYW1lID0gImRlbGV0ZSI7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoIicgKyBkYXRhVHlwZSArICciLCAiJyArIGlkICsgJyIsIHRydWUsIDApJyk7DQogICAgICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICAvLyBBYm9ydA0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImNhbmNlbCIsICJ7ey5idXR0b24uY2FuY2VsfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBzaG93RWxlbWVudCgicG9wdXAiLCBmYWxzZSk7Jyk7DQogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIC8vIFNhdmUNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJzYXZlIiwgInt7LmJ1dHRvbi5zYXZlfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBzYXZlUG9wdXBEYXRhKCInICsgZGF0YVR5cGUgKyAnIiwgIicgKyBpZCArICciLCAiZmFsc2UiKTsnKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGNhc2UgIm1hcHBpbmciOg0KICAgICAgICAgICAgY29udGVudC5jcmVhdGVIZWFkbGluZSgie3subWFpbk1lbnUuaXRlbS5tYXBwaW5nfX0iKTsNCiAgICAgICAgICAgIC8vIEFjdGl2ZQ0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gIngtYWN0aXZlIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goZGJLZXkpOw0KICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGFbZGJLZXldOw0KICAgICAgICAgICAgaW5wdXQuaWQgPSAiYWN0aXZlIjsNCiAgICAgICAgICAgIC8vaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpDQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRvZ2dsZUNoYW5uZWxTdGF0dXMoJyIgKyBpZCArICInLCB0aGlzKSIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7Lm1hcHBpbmcuYWN0aXZlLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBDaGFubmVsIG5hbWUNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJ4LW5hbWUiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICBpZiAoQlVMS19FRElUID09IHRydWUpIHsNCiAgICAgICAgICAgICAgICBpbnB1dC5zdHlsZS5ib3JkZXIgPSAic29saWQgMXB4IHJlZCI7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJyZWFkb25seSIsICJ0cnVlIik7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3subWFwcGluZy5jaGFubmVsTmFtZS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgY29udGVudC5kZXNjcmlwdGlvbihkYXRhWyJuYW1lIl0pOw0KICAgICAgICAgICAgLy8gRGVzY3JpcHRpb24NCiAgICAgICAgICAgIHZhciBkYktleSA9ICJ4LWRlc2NyaXB0aW9uIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5tYXBwaW5nLmRlc2NyaXB0aW9uLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5tYXBwaW5nLmRlc2NyaXB0aW9uLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBVcGRhdGUgdGhlIGNoYW5uZWwgbmFtZQ0KICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoIl91dWlkLmtleSIpKSB7DQogICAgICAgICAgICAgICAgaWYgKGRhdGFbIl91dWlkLmtleSJdICE9ICIiKSB7DQogICAgICAgICAgICAgICAgICAgIHZhciBkYktleSA9ICJ4LXVwZGF0ZS1jaGFubmVsLW5hbWUiOw0KICAgICAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KGRiS2V5KTsNCiAgICAgICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YVtkYktleV07DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5tYXBwaW5nLnVwZGF0ZUNoYW5uZWxOYW1lLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgLy8gTG9nbyBVUkwgKENoYW5uZWwpIA0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gInR2Zy1sb2dvIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJpZCIsICJjaGFubmVsLWljb24iKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5tYXBwaW5nLmNoYW5uZWxMb2dvLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBDaGFubmVsIGxvZ28gdXBkYXRlDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAieC11cGRhdGUtY2hhbm5lbC1pY29uIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goZGJLZXkpOw0KICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGFbZGJLZXldOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJpZCIsICJ1cGRhdGUtaWNvbiIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJzsgY2hhbmdlQ2hhbm5lbExvZ28oJyIgKyBpZCArICInKTsiKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5tYXBwaW5nLnVwZGF0ZUNoYW5uZWxMb2dvLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBFeHBhbmQgRVBHIGNhdGVnb3J5DQogICAgICAgICAgICB2YXIgZGJLZXkgPSAieC1jYXRlZ29yeSI7DQogICAgICAgICAgICB2YXIgdGV4dCA9IFsiLSIsICJLaWRzIChFbWJ5IG9ubHkpIiwgIk5ld3MiLCAiTW92aWUiLCAiU2VyaWVzIiwgIlNwb3J0cyJdOw0KICAgICAgICAgICAgdmFyIHZhbHVlcyA9IFsiIiwgIktpZHMiLCAiTmV3cyIsICJNb3ZpZSIsICJTZXJpZXMiLCAiU3BvcnRzIl07DQogICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCBkYXRhW2RiS2V5XSwgZGJLZXkpOw0KICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5tYXBwaW5nLmVwZ0NhdGVnb3J5LnRpdGxlfX0iLCBzZWxlY3QpOw0KICAgICAgICAgICAgLy8gTTNVIGdyb3VwIHRpdGxlDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAieC1ncm91cC10aXRsZSI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgIGlucHV0LmRhdGFzZXQub2xkVmFsdWUgPSBkYXRhW2RiS2V5XTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5tYXBwaW5nLm0zdUdyb3VwVGl0bGUudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIGlmIChkYXRhWyJncm91cC10aXRsZSJdICE9IHVuZGVmaW5lZCkgew0KICAgICAgICAgICAgICAgIGNvbnRlbnQuZGVzY3JpcHRpb24oZGF0YVsiZ3JvdXAtdGl0bGUiXSk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBpZiAoZGF0YVsieC11cGRhdGUtY2hhbm5lbC1ncm91cCJdID09IHRydWUpIHsNCiAgICAgICAgICAgICAgICBpbnB1dC5kaXNhYmxlZCA9IHRydWU7DQogICAgICAgICAgICB9DQogICAgICAgICAgICAvLyBVcGRhdGUgY2hhbm5lbCBncm91cCBjaGVja2JveA0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gIngtdXBkYXRlLWNoYW5uZWwtZ3JvdXAiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChkYktleSk7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRvZ2dsZUdyb3VwVXBkYXRlQ2IoJyIgKyBpZCArICInLCB0aGlzKTsiKTsNCiAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhW2RiS2V5XTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5tYXBwaW5nLnVwZGF0ZUNoYW5uZWxHcm91cC50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgY29udGVudC5kZXNjcmlwdGlvbigie3subWFwcGluZy51cGRhdGVDaGFubmVsR3JvdXAuZGVzY3JpcHRpb259fSIpOw0KICAgICAgICAgICAgLy8gWE1MVFYgZmlsZQ0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gIngteG1sdHYtZmlsZSI7DQogICAgICAgICAgICB2YXIgeG1sRmlsZSA9IGRhdGFbZGJLZXldOw0KICAgICAgICAgICAgdmFyIHhtbHR2ID0gbmV3IFhNTFRWRmlsZSgpOw0KICAgICAgICAgICAgdmFyIHNlbGVjdCA9IHhtbHR2LmdldEZpbGVzKGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIHNlbGVjdC5zZXRBdHRyaWJ1dGUoIm5hbWUiLCBkYktleSk7DQogICAgICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJpZCIsICJwb3B1cC14bWx0diIpOw0KICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCc7IHNldFhtbHR2Q2hhbm5lbCgnIiArIGlkICsgIicsdGhpcyk7Iik7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3subWFwcGluZy54bWx0dkZpbGUudGl0bGV9fSIsIHNlbGVjdCk7DQogICAgICAgICAgICB2YXIgZmlsZSA9IGRhdGFbZGJLZXldOw0KICAgICAgICAgICAgLy8gWE1MVFYgTWFwcGluZw0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gIngtbWFwcGluZyI7DQogICAgICAgICAgICB2YXIgeG1sdHYgPSBuZXcgWE1MVFZGaWxlKCk7DQogICAgICAgICAgICB2YXIgc2VsZWN0ID0geG1sdHYuZ2V0UHJvZ3JhbXMoZmlsZSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgibmFtZSIsIGRiS2V5KTsNCiAgICAgICAgICAgIHNlbGVjdC5zZXRBdHRyaWJ1dGUoImlkIiwgInBvcHVwLW1hcHBpbmciKTsNCiAgICAgICAgICAgIHNlbGVjdC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnOyBjaGVja1htbHR2Q2hhbm5lbCgnIiArIGlkICsgIicsdGhpcywnIiArIHhtbEZpbGUgKyAiJyk7Iik7DQogICAgICAgICAgICBzb3J0U2VsZWN0KHNlbGVjdCk7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3subWFwcGluZy54bWx0dkNoYW5uZWwudGl0bGV9fSIsIHNlbGVjdCk7DQogICAgICAgICAgICAvLyBUaW1lc2hpZnQNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJ4LXRpbWVzaGlmdCI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3subWFwcGluZy50aW1lc2hpZnQucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJpZCIsICJ0aW1lc2hpZnQiKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5tYXBwaW5nLnRpbWVzaGlmdC50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgLy8gSW50ZXJhY3Rpb24NCiAgICAgICAgICAgIGNvbnRlbnQuY3JlYXRlSW50ZXJhY3Rpb24oKTsNCiAgICAgICAgICAgIC8vIFVwbG9hZCBsb2dvDQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAiY2FuY2VsIiwgInt7LmJ1dHRvbi51cGxvYWRMb2dvfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiB1cGxvYWRMb2dvKCk7Jyk7DQogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIC8vIEFib3J0DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAiY2FuY2VsIiwgInt7LmJ1dHRvbi5jYW5jZWx9fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IHNob3dFbGVtZW50KCJwb3B1cCIsIGZhbHNlKTsnKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgLy8gRmluaXNoZWQNCiAgICAgICAgICAgIHZhciBpZHMgPSBbXTsNCiAgICAgICAgICAgIGlkcyA9IGdldEFsbFNlbGVjdGVkQ2hhbm5lbHMoKTsNCiAgICAgICAgICAgIGlmIChpZHMubGVuZ3RoID09IDApIHsNCiAgICAgICAgICAgICAgICBpZHMucHVzaChpZCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAic2F2ZSIsICJ7ey5idXR0b24uZG9uZX19Iik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogZG9uZVBvcHVwRGF0YSgiJyArIGRhdGFUeXBlICsgJyIsICInICsgaWRzICsgJyIsICJmYWxzZSIpOycpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgIGJyZWFrOw0KICAgIH0NCiAgICBzaG93UG9wVXBFbGVtZW50KCdwb3B1cC1jdXN0b20nKTsNCn0NCmNsYXNzIFhNTFRWRmlsZSB7DQogICAgZ2V0RmlsZXMoc2V0KSB7DQogICAgICAgIGxldCBmaWxlSURzID0gZ2V0T2JqS2V5cyhTRVJWRVJbInhlcGciXVsieG1sdHZNYXAiXSk7DQogICAgICAgIGxldCB2YWx1ZXMgPSBuZXcgQXJyYXkoIi0iKTsNCiAgICAgICAgbGV0IHRleHQgPSBuZXcgQXJyYXkoIi0iKTsNCiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBmaWxlSURzLmxlbmd0aDsgaSsrKSB7DQogICAgICAgICAgICBpZiAoZmlsZUlEc1tpXSAhPSAieFRlVmUgRHVtbXkiKSB7DQogICAgICAgICAgICAgICAgdmFsdWVzLnB1c2goZ2V0VmFsdWVGcm9tUHJvdmlkZXJGaWxlKGZpbGVJRHNbaV0sICJ4bWx0diIsICJmaWxlLnh0ZXZlIikpOw0KICAgICAgICAgICAgICAgIHRleHQucHVzaChnZXRWYWx1ZUZyb21Qcm92aWRlckZpbGUoZmlsZUlEc1tpXSwgInhtbHR2IiwgIm5hbWUiKSk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICB2YWx1ZXMucHVzaChmaWxlSURzW2ldKTsNCiAgICAgICAgICAgICAgICB0ZXh0LnB1c2goZmlsZUlEc1tpXSk7DQogICAgICAgICAgICB9DQogICAgICAgIH0NCiAgICAgICAgbGV0IHNlbGVjdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlNFTEVDVCIpOw0KICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRleHQubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgICAgIHZhciBvcHRpb24gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJPUFRJT04iKTsNCiAgICAgICAgICAgIG9wdGlvbi5zZXRBdHRyaWJ1dGUoInZhbHVlIiwgdmFsdWVzW2ldKTsNCiAgICAgICAgICAgIG9wdGlvbi5pbm5lclRleHQgPSB0ZXh0W2ldOw0KICAgICAgICAgICAgc2VsZWN0LmFwcGVuZENoaWxkKG9wdGlvbik7DQogICAgICAgIH0NCiAgICAgICAgaWYgKHNldCAhPSAiIikgew0KICAgICAgICAgICAgc2VsZWN0LnZhbHVlID0gc2V0Ow0KICAgICAgICB9DQogICAgICAgIHJldHVybiBzZWxlY3Q7DQogICAgfQ0KICAgIGdldFByb2dyYW1zKGZpbGUsIHNldCkgew0KICAgICAgICAvL3ZhciBmaWxlSURzOnN0cmluZ1tdID0gZ2V0T2JqS2V5cyhTRVJWRVJbInhlcGciXVsieG1sdHZNYXAiXSkNCiAgICAgICAgbGV0IHZhbHVlcyA9IGdldE9iaktleXMoU0VSVkVSWyJ4ZXBnIl1bInhtbHR2TWFwIl1bZmlsZV0pOw0KICAgICAgICBsZXQgdGV4dCA9IFtdOw0KICAgICAgICBsZXQgZnJpZW5kbHlOYW1lOw0KICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHZhbHVlcy5sZW5ndGg7IGkrKykgew0KICAgICAgICAgICAgaWYgKFNFUlZFUlsieGVwZyJdWyJ4bWx0dk1hcCJdW2ZpbGVdW3ZhbHVlc1tpXV0uaGFzT3duUHJvcGVydHkoJ2ZyaWVuZGx5LW5hbWUnKSA9PSB0cnVlKSB7DQogICAgICAgICAgICAgICAgZnJpZW5kbHlOYW1lID0gU0VSVkVSWyJ4ZXBnIl1bInhtbHR2TWFwIl1bZmlsZV1bdmFsdWVzW2ldXVsiZnJpZW5kbHktbmFtZSJdOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgZWxzZSB7DQogICAgICAgICAgICAgICAgZnJpZW5kbHlOYW1lID0gIi0iOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgdGV4dFtpXSA9IGZyaWVuZGx5TmFtZSArICIgKCIgKyB2YWx1ZXNbaV0gKyAiKSI7DQogICAgICAgIH0NCiAgICAgICAgdGV4dC51bnNoaWZ0KCItIik7DQogICAgICAgIHZhbHVlcy51bnNoaWZ0KCItIik7DQogICAgICAgIGxldCBzZWxlY3QgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJTRUxFQ1QiKTsNCiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0ZXh0Lmxlbmd0aDsgaSsrKSB7DQogICAgICAgICAgICB2YXIgb3B0aW9uID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiT1BUSU9OIik7DQogICAgICAgICAgICBvcHRpb24uc2V0QXR0cmlidXRlKCJ2YWx1ZSIsIHZhbHVlc1tpXSk7DQogICAgICAgICAgICBvcHRpb24uaW5uZXJUZXh0ID0gdGV4dFtpXTsNCiAgICAgICAgICAgIHNlbGVjdC5hcHBlbmRDaGlsZChvcHRpb24pOw0KICAgICAgICB9DQogICAgICAgIGlmIChzZXQgIT0gIiIpIHsNCiAgICAgICAgICAgIHNlbGVjdC52YWx1ZSA9IHNldDsNCiAgICAgICAgfQ0KICAgICAgICBpZiAoc2VsZWN0LnZhbHVlICE9IHNldCkgew0KICAgICAgICAgICAgc2VsZWN0LnZhbHVlID0gIi0iOw0KICAgICAgICB9DQogICAgICAgIHJldHVybiBzZWxlY3Q7DQogICAgfQ0KfQ0KZnVuY3Rpb24gZ2V0VmFsdWVGcm9tUHJvdmlkZXJGaWxlKGZpbGUsIGZpbGVUeXBlLCBrZXkpIHsNCiAgICBpZiAoZmlsZSA9PSAieFRlVmUgRHVtbXkiKSB7DQogICAgICAgIHJldHVybiBmaWxlOw0KICAgIH0NCiAgICBsZXQgZmlsZUlEOw0KICAgIGxldCBpbmRpY2F0b3IgPSBmaWxlLmNoYXJBdCgwKTsNCiAgICBzd2l0Y2ggKGluZGljYXRvcikgew0KICAgICAgICBjYXNlICJNIjoNCiAgICAgICAgICAgIGZpbGVUeXBlID0gIm0zdSI7DQogICAgICAgICAgICBmaWxlSUQgPSBmaWxlOw0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGNhc2UgIkgiOg0KICAgICAgICAgICAgZmlsZVR5cGUgPSAiaGRociI7DQogICAgICAgICAgICBmaWxlSUQgPSBmaWxlOw0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGNhc2UgIlgiOg0KICAgICAgICAgICAgZmlsZVR5cGUgPSAieG1sdHYiOw0KICAgICAgICAgICAgZmlsZUlEID0gZmlsZS5zdWJzdHJpbmcoMCwgZmlsZS5sYXN0SW5kZXhPZignLicpKTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgIH0NCiAgICBpZiAoU0VSVkVSWyJzZXR0aW5ncyJdWyJmaWxlcyJdW2ZpbGVUeXBlXS5oYXNPd25Qcm9wZXJ0eShmaWxlSUQpID09IHRydWUpIHsNCiAgICAgICAgdmFyIGRhdGEgPSBTRVJWRVJbInNldHRpbmdzIl1bImZpbGVzIl1bZmlsZVR5cGVdW2ZpbGVJRF07DQogICAgICAgIHJldHVybiBkYXRhW2tleV07DQogICAgfQ0KICAgIHJldHVybjsNCn0NCmZ1bmN0aW9uIHNldFhtbHR2Q2hhbm5lbChpZCwgZWxlbWVudCkgew0KICAgIGxldCB4bWx0diA9IG5ldyBYTUxUVkZpbGUoKTsNCiAgICBsZXQgeG1sRmlsZSA9IGVsZW1lbnQudmFsdWU7DQogICAgbGV0IHR2Z0lkID0gU0VSVkVSWyJ4ZXBnIl1bImVwZ01hcHBpbmciXVtpZF1bInR2Zy1pZCJdOw0KICAgIGxldCB0ZCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJwb3B1cC1tYXBwaW5nIikucGFyZW50RWxlbWVudDsNCiAgICB0ZC5pbm5lckhUTUwgPSAiIjsNCiAgICBsZXQgc2VsZWN0ID0geG1sdHYuZ2V0UHJvZ3JhbXMoZWxlbWVudC52YWx1ZSwgdHZnSWQpOw0KICAgIHNlbGVjdC5zZXRBdHRyaWJ1dGUoIm5hbWUiLCAieC1tYXBwaW5nIik7DQogICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgiaWQiLCAicG9wdXAtbWFwcGluZyIpOw0KICAgIHNlbGVjdC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnOyBjaGVja1htbHR2Q2hhbm5lbCgnIiArIGlkICsgIicsdGhpcywnIiArIHhtbEZpbGUgKyAiJyk7Iik7DQogICAgc2VsZWN0LmNsYXNzTmFtZSA9ICJjaGFuZ2VkIjsNCiAgICBzb3J0U2VsZWN0KHNlbGVjdCk7DQogICAgdGQuYXBwZW5kQ2hpbGQoc2VsZWN0KTsNCiAgICBjaGVja1htbHR2Q2hhbm5lbChpZCwgc2VsZWN0LCB4bWxGaWxlKTsNCn0NCmZ1bmN0aW9uIGNoZWNrWG1sdHZDaGFubmVsKGlkLCBlbGVtZW50LCB4bWxGaWxlKSB7DQogICAgbGV0IHZhbHVlID0gZWxlbWVudC52YWx1ZTsNCiAgICBsZXQgYm9vbDsNCiAgICBsZXQgY2hlY2tib3ggPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYWN0aXZlJyk7DQogICAgbGV0IGNoYW5uZWwgPSBTRVJWRVJbInhlcGciXVsiZXBnTWFwcGluZyJdW2lkXTsNCiAgICBsZXQgdXBkYXRlTG9nbzsNCiAgICBib29sID0gdmFsdWUgIT0gIi0iOw0KICAgIGNoZWNrYm94LmNoZWNrZWQgPSBib29sOw0KICAgIGNoZWNrYm94LmNsYXNzTmFtZSA9ICJjaGFuZ2VkIjsNCiAgICBjb25zb2xlLmxvZyh4bWxGaWxlKTsNCiAgICAvLyBVcGRhdGUgY2hhbm5lbCBsb2dvDQogICAgLyoNCiAgICB1cGRhdGVMb2dvID0gKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ1cGRhdGUtaWNvbiIpIGFzIEhUTUxJbnB1dEVsZW1lbnQpLmNoZWNrZWQNCiAgICBjb25zb2xlLmxvZyh1cGRhdGVMb2dvKTsNCiAgICAqLw0KICAgIGlmICh4bWxGaWxlICE9ICJ4VGVWZSBEdW1teSIgJiYgYm9vbCA9PSB0cnVlKSB7DQogICAgICAgIC8vKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ1cGRhdGUtaWNvbiIpIGFzIEhUTUxJbnB1dEVsZW1lbnQpLmNoZWNrZWQgPSB0cnVlOw0KICAgICAgICAvLyhkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidXBkYXRlLWljb24iKSBhcyBIVE1MSW5wdXRFbGVtZW50KS5jbGFzc05hbWUgPSAiY2hhbmdlZCI7DQogICAgICAgIGNvbnNvbGUubG9nKCJJRCIsIGlkKTsNCiAgICAgICAgY2hhbmdlQ2hhbm5lbExvZ28oaWQpOw0KICAgICAgICByZXR1cm47DQogICAgfQ0KICAgIGlmICh4bWxGaWxlID09ICJ4VGVWZSBEdW1teSIpIHsNCiAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInVwZGF0ZS1pY29uIikuY2hlY2tlZCA9IGZhbHNlOw0KICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidXBkYXRlLWljb24iKS5jbGFzc05hbWUgPSAiY2hhbmdlZCI7DQogICAgfQ0KICAgIHJldHVybjsNCn0NCmZ1bmN0aW9uIGNoYW5nZUNoYW5uZWxMb2dvKGlkKSB7DQogICAgbGV0IHVwZGF0ZUxvZ287DQogICAgbGV0IGNoYW5uZWwgPSBTRVJWRVJbInhlcGciXVsiZXBnTWFwcGluZyJdW2lkXTsNCiAgICBsZXQgZiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJwb3B1cC14bWx0diIpOw0KICAgIGxldCB4bWx0dkZpbGUgPSBmLm9wdGlvbnNbZi5zZWxlY3RlZEluZGV4XS52YWx1ZTsNCiAgICBsZXQgbSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJwb3B1cC1tYXBwaW5nIik7DQogICAgbGV0IHhNYXBwaW5nID0gbS5vcHRpb25zW20uc2VsZWN0ZWRJbmRleF0udmFsdWU7DQogICAgbGV0IHhtbHR2TG9nbyA9IFNFUlZFUlsieGVwZyJdWyJ4bWx0dk1hcCJdW3htbHR2RmlsZV1beE1hcHBpbmddWyJpY29uIl07DQogICAgdXBkYXRlTG9nbyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ1cGRhdGUtaWNvbiIpLmNoZWNrZWQ7DQogICAgaWYgKHVwZGF0ZUxvZ28gPT0gdHJ1ZSAmJiB4bWx0dkZpbGUgIT0gInhUZVZlIER1bW15Iikgew0KICAgICAgICBpZiAoU0VSVkVSWyJ4ZXBnIl1bInhtbHR2TWFwIl1beG1sdHZGaWxlXS5oYXNPd25Qcm9wZXJ0eSh4TWFwcGluZykpIHsNCiAgICAgICAgICAgIHZhciBsb2dvID0geG1sdHZMb2dvOw0KICAgICAgICB9DQogICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgbG9nbyA9IGNoYW5uZWxbInR2Zy1sb2dvIl07DQogICAgICAgIH0NCiAgICAgICAgdmFyIGxvZ29JbnB1dCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjaGFubmVsLWljb24iKTsNCiAgICAgICAgbG9nb0lucHV0LnZhbHVlID0gbG9nbzsNCiAgICAgICAgaWYgKEJVTEtfRURJVCA9PSBmYWxzZSkgew0KICAgICAgICAgICAgbG9nb0lucHV0LmNsYXNzTmFtZSA9ICJjaGFuZ2VkIjsNCiAgICAgICAgfQ0KICAgIH0NCn0NCmZ1bmN0aW9uIHNhdmVQb3B1cERhdGEoZGF0YVR5cGUsIGlkLCByZW1vdmUsIG9wdGlvbikgew0KICAgIGlmIChkYXRhVHlwZSA9PSAibWFwcGluZyIpIHsNCiAgICAgICAgbGV0IGRhdGEgPSB7fTsNCiAgICAgICAgY29uc29sZS5sb2coIlNhdmUgbWFwcGluZyBkYXRhIik7DQogICAgICAgIGxldCBjbWQgPSAic2F2ZUVwZ01hcHBpbmciOw0KICAgICAgICBkYXRhWyJlcGdNYXBwaW5nIl0gPSBTRVJWRVJbInhlcGciXVsiZXBnTWFwcGluZyJdOw0KICAgICAgICBjb25zb2xlLmxvZygiU0VORCBUTyBTRVJWRVIiKTsNCiAgICAgICAgbGV0IHNlcnZlciA9IG5ldyBTZXJ2ZXIoY21kKTsNCiAgICAgICAgc2VydmVyLnJlcXVlc3QoZGF0YSk7DQogICAgICAgIGRlbGV0ZSBVTkRPWyJlcGdNYXBwaW5nIl07DQogICAgICAgIHJldHVybjsNCiAgICB9DQogICAgY29uc29sZS5sb2coIlNhdmUgcG9wdXAgZGF0YSIpOw0KICAgIGxldCBkaXYgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicG9wdXAtY3VzdG9tIik7DQogICAgbGV0IGlucHV0cyA9IGRpdi5nZXRFbGVtZW50c0J5VGFnTmFtZSgiVEFCTEUiKVswXS5nZXRFbGVtZW50c0J5VGFnTmFtZSgiSU5QVVQiKTsNCiAgICBsZXQgc2VsZWN0cyA9IGRpdi5nZXRFbGVtZW50c0J5VGFnTmFtZSgiVEFCTEUiKVswXS5nZXRFbGVtZW50c0J5VGFnTmFtZSgiU0VMRUNUIik7DQogICAgbGV0IGlucHV0ID0ge307DQogICAgbGV0IGNvbmZpcm1Nc2c7DQogICAgZm9yIChsZXQgaSA9IDA7IGkgPCBzZWxlY3RzLmxlbmd0aDsgaSsrKSB7DQogICAgICAgIHZhciBuYW1lOw0KICAgICAgICBuYW1lID0gc2VsZWN0c1tpXS5uYW1lOw0KICAgICAgICB2YXIgdmFsdWUgPSBzZWxlY3RzW2ldLnZhbHVlOw0KICAgICAgICBzd2l0Y2ggKG5hbWUpIHsNCiAgICAgICAgICAgIGNhc2UgInR1bmVyIjoNCiAgICAgICAgICAgICAgICBpbnB1dFtuYW1lXSA9IHBhcnNlSW50KHZhbHVlKTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICAgICAgaW5wdXRbbmFtZV0gPSB2YWx1ZTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgfQ0KICAgIH0NCiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGlucHV0cy5sZW5ndGg7IGkrKykgew0KICAgICAgICBzd2l0Y2ggKGlucHV0c1tpXS50eXBlKSB7DQogICAgICAgICAgICBjYXNlICJjaGVja2JveCI6DQogICAgICAgICAgICAgICAgbmFtZSA9IGlucHV0c1tpXS5uYW1lOw0KICAgICAgICAgICAgICAgIGlucHV0W25hbWVdID0gaW5wdXRzW2ldLmNoZWNrZWQ7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ0ZXh0IjoNCiAgICAgICAgICAgIGNhc2UgImhpZGRlbiI6DQogICAgICAgICAgICBjYXNlICJwYXNzd29yZCI6DQogICAgICAgICAgICAgICAgbmFtZSA9IGlucHV0c1tpXS5uYW1lOw0KICAgICAgICAgICAgICAgIHN3aXRjaCAobmFtZSkgew0KICAgICAgICAgICAgICAgICAgICBjYXNlICJ0dW5lciI6DQogICAgICAgICAgICAgICAgICAgICAgICBpbnB1dFtuYW1lXSA9IHBhcnNlSW50KGlucHV0c1tpXS52YWx1ZSk7DQogICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgICAgICAgICAgICAgIGlucHV0W25hbWVdID0gaW5wdXRzW2ldLnZhbHVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICB9DQogICAgfQ0KICAgIGxldCBkYXRhID0ge307DQogICAgbGV0IGNtZDsNCiAgICBpZiAocmVtb3ZlID09IHRydWUpIHsNCiAgICAgICAgaW5wdXRbImRlbGV0ZSJdID0gdHJ1ZTsNCiAgICB9DQogICAgc3dpdGNoIChkYXRhVHlwZSkgew0KICAgICAgICBjYXNlICJ1c2VycyI6DQogICAgICAgICAgICBjb25maXJtTXNnID0gIkRlbGV0ZSB0aGlzIHVzZXI/IjsNCiAgICAgICAgICAgIGlmIChpZCA9PSAiLSIpIHsNCiAgICAgICAgICAgICAgICBjbWQgPSAic2F2ZU5ld1VzZXIiOw0KICAgICAgICAgICAgICAgIGRhdGFbInVzZXJEYXRhIl0gPSBpbnB1dDsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgICAgIGNtZCA9ICJzYXZlVXNlckRhdGEiOw0KICAgICAgICAgICAgICAgIGxldCBkID0ge307DQogICAgICAgICAgICAgICAgZFtpZF0gPSBpbnB1dDsNCiAgICAgICAgICAgICAgICBkYXRhWyJ1c2VyRGF0YSJdID0gZDsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJtM3UiOg0KICAgICAgICAgICAgY29uZmlybU1zZyA9ICJEZWxldGUgdGhpcyBwbGF5bGlzdD8iOw0KICAgICAgICAgICAgc3dpdGNoIChvcHRpb24pIHsNCiAgICAgICAgICAgICAgICAvLyBQb3B1cDogU2F2ZQ0KICAgICAgICAgICAgICAgIGNhc2UgMDoNCiAgICAgICAgICAgICAgICAgICAgY21kID0gInNhdmVGaWxlc00zVSI7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIC8vIFBvcHVwOiBVcGRhdGUNCiAgICAgICAgICAgICAgICBjYXNlIDE6DQogICAgICAgICAgICAgICAgICAgIGNtZCA9ICJ1cGRhdGVGaWxlTTNVIjsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBkYXRhWyJmaWxlcyJdID0ge307DQogICAgICAgICAgICBkYXRhWyJmaWxlcyJdW2RhdGFUeXBlXSA9IHt9Ow0KICAgICAgICAgICAgZGF0YVsiZmlsZXMiXVtkYXRhVHlwZV1baWRdID0gaW5wdXQ7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSAiaGRociI6DQogICAgICAgICAgICBjb25maXJtTXNnID0gIkRlbGV0ZSB0aGlzIEhESG9tZVJ1biB0dW5lcj8iOw0KICAgICAgICAgICAgc3dpdGNoIChvcHRpb24pIHsNCiAgICAgICAgICAgICAgICAvLyBQb3B1cDogU2F2ZQ0KICAgICAgICAgICAgICAgIGNhc2UgMDoNCiAgICAgICAgICAgICAgICAgICAgY21kID0gInNhdmVGaWxlc0hESFIiOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICAvLyBQb3B1cDogVXBkYXRlDQogICAgICAgICAgICAgICAgY2FzZSAxOg0KICAgICAgICAgICAgICAgICAgICBjbWQgPSAidXBkYXRlRmlsZUhESFIiOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGRhdGFbImZpbGVzIl0gPSB7fTsNCiAgICAgICAgICAgIGRhdGFbImZpbGVzIl1bZGF0YVR5cGVdID0ge307DQogICAgICAgICAgICBkYXRhWyJmaWxlcyJdW2RhdGFUeXBlXVtpZF0gPSBpbnB1dDsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJ4bWx0diI6DQogICAgICAgICAgICBjb25maXJtTXNnID0gIkRlbGV0ZSB0aGlzIFhNTFRWIGZpbGU/IjsNCiAgICAgICAgICAgIHN3aXRjaCAob3B0aW9uKSB7DQogICAgICAgICAgICAgICAgLy8gUG9wdXA6IFNhdmUNCiAgICAgICAgICAgICAgICBjYXNlIDA6DQogICAgICAgICAgICAgICAgICAgIGNtZCA9ICJzYXZlRmlsZXNYTUxUViI7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIC8vIFBvcHVwOiBVcGRhdGUNCiAgICAgICAgICAgICAgICBjYXNlIDE6DQogICAgICAgICAgICAgICAgICAgIGNtZCA9ICJ1cGRhdGVGaWxlWE1MVFYiOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGRhdGFbImZpbGVzIl0gPSB7fTsNCiAgICAgICAgICAgIGRhdGFbImZpbGVzIl1bZGF0YVR5cGVdID0ge307DQogICAgICAgICAgICBkYXRhWyJmaWxlcyJdW2RhdGFUeXBlXVtpZF0gPSBpbnB1dDsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJmaWx0ZXIiOg0KICAgICAgICAgICAgY29uZmlybU1zZyA9ICJEZWxldGUgdGhpcyBmaWx0ZXI/IjsNCiAgICAgICAgICAgIGNtZCA9ICJzYXZlRmlsdGVyIjsNCiAgICAgICAgICAgIGRhdGFbImZpbHRlciJdID0ge307DQogICAgICAgICAgICBkYXRhWyJmaWx0ZXIiXVtpZF0gPSBpbnB1dDsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBkZWZhdWx0Og0KICAgICAgICAgICAgY29uc29sZS5sb2coZGF0YVR5cGUsIGlkKTsNCiAgICAgICAgICAgIHJldHVybjsNCiAgICB9DQogICAgaWYgKHJlbW92ZSA9PSB0cnVlKSB7DQogICAgICAgIGlmICghY29uZmlybShjb25maXJtTXNnKSkgew0KICAgICAgICAgICAgc2hvd0VsZW1lbnQoInBvcHVwIiwgZmFsc2UpOw0KICAgICAgICAgICAgcmV0dXJuOw0KICAgICAgICB9DQogICAgfQ0KICAgIGNvbnNvbGUubG9nKCJTRU5EIFRPIFNFUlZFUiIpOw0KICAgIGNvbnNvbGUubG9nKGRhdGEpOw0KICAgIGxldCBzZXJ2ZXIgPSBuZXcgU2VydmVyKGNtZCk7DQogICAgc2VydmVyLnJlcXVlc3QoZGF0YSk7DQp9DQpmdW5jdGlvbiBkb25lUG9wdXBEYXRhKGRhdGFUeXBlLCBpZHNTdHIpIHsNCiAgICBsZXQgaWRzID0gaWRzU3RyLnNwbGl0KCcsJyk7DQogICAgbGV0IGRpdiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJwb3B1cC1jdXN0b20iKTsNCiAgICBsZXQgaW5wdXRzID0gZGl2LmdldEVsZW1lbnRzQnlDbGFzc05hbWUoImNoYW5nZWQiKTsNCiAgICBpZHMuZm9yRWFjaChpZCA9PiB7DQogICAgICAgIGxldCBpbnB1dDsNCiAgICAgICAgaW5wdXQgPSBTRVJWRVJbInhlcGciXVsiZXBnTWFwcGluZyJdW2lkXTsNCiAgICAgICAgY29uc29sZS5sb2coaW5wdXQpOw0KICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGlucHV0cy5sZW5ndGg7IGkrKykgew0KICAgICAgICAgICAgbGV0IG5hbWU7DQogICAgICAgICAgICBsZXQgdmFsdWU7DQogICAgICAgICAgICBzd2l0Y2ggKGlucHV0c1tpXS50YWdOYW1lKSB7DQogICAgICAgICAgICAgICAgY2FzZSAiSU5QVVQiOg0KICAgICAgICAgICAgICAgICAgICBzd2l0Y2ggKGlucHV0c1tpXS50eXBlKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBjYXNlICJjaGVja2JveCI6DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZSA9IGlucHV0c1tpXS5uYW1lOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlID0gaW5wdXRzW2ldLmNoZWNrZWQ7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5wdXRbbmFtZV0gPSB2YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgInRleHQiOg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWUgPSBpbnB1dHNbaV0ubmFtZTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IGlucHV0c1tpXS52YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnB1dFtuYW1lXSA9IHZhbHVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgIlNFTEVDVCI6DQogICAgICAgICAgICAgICAgICAgIG5hbWUgPSBpbnB1dHNbaV0ubmFtZTsNCiAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSBpbnB1dHNbaV0udmFsdWU7DQogICAgICAgICAgICAgICAgICAgIGlucHV0W25hbWVdID0gdmFsdWU7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgc3dpdGNoIChuYW1lKSB7DQogICAgICAgICAgICAgICAgY2FzZSAidHZnLWxvZ28iOg0KICAgICAgICAgICAgICAgICAgICAvLyhkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkuY2hpbGROb2Rlc1syXS5maXJzdENoaWxkIGFzIEhUTUxFbGVtZW50KS5zZXRBdHRyaWJ1dGUoInNyYyIsIHZhbHVlKQ0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBjYXNlICJ4LW5hbWUiOg0KICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkuY2hpbGROb2Rlc1szXS5maXJzdENoaWxkLmlubmVySFRNTCA9IHZhbHVlOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBjYXNlICJ4LWNhdGVnb3J5IjoNCiAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpLmNoaWxkTm9kZXNbM10uZmlyc3RDaGlsZC5jbGFzc05hbWUgPSB2YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAieC1ncm91cC10aXRsZSI6DQogICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5jaGlsZE5vZGVzWzVdLmZpcnN0Q2hpbGQuaW5uZXJIVE1MID0gdmFsdWU7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgIngteG1sdHYtZmlsZSI6DQogICAgICAgICAgICAgICAgICAgIGlmICh2YWx1ZSAhPSAieFRlVmUgRHVtbXkiICYmIHZhbHVlICE9ICItIikgew0KICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSBnZXRWYWx1ZUZyb21Qcm92aWRlckZpbGUodmFsdWUsICJ4bWx0diIsICJuYW1lIik7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgaWYgKHZhbHVlID09ICItIikgew0KICAgICAgICAgICAgICAgICAgICAgICAgaW5wdXRbIngtYWN0aXZlIl0gPSBmYWxzZTsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkuY2hpbGROb2Rlc1s2XS5maXJzdENoaWxkLmlubmVySFRNTCA9IHZhbHVlOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBjYXNlICJ4LW1hcHBpbmciOg0KICAgICAgICAgICAgICAgICAgICBpZiAodmFsdWUgPT0gIi0iKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBpbnB1dFsieC1hY3RpdmUiXSA9IGZhbHNlOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5jaGlsZE5vZGVzWzddLmZpcnN0Q2hpbGQuaW5uZXJIVE1MID0gdmFsdWU7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgIngtdGltZXNoaWZ0IjoNCiAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpLmNoaWxkTm9kZXNbOF0uZmlyc3RDaGlsZC5pbm5lckhUTUwgPSB2YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGNyZWF0ZVNlYXJjaE9iaigpOw0KICAgICAgICAgICAgc2VhcmNoSW5NYXBwaW5nKCk7DQogICAgICAgIH0NCiAgICAgICAgaWYgKGlucHV0WyJ4LWFjdGl2ZSJdID09IGZhbHNlKSB7DQogICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkuY2xhc3NOYW1lID0gIm5vdEFjdGl2ZUVQRyI7DQogICAgICAgIH0NCiAgICAgICAgZWxzZSB7DQogICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkuY2xhc3NOYW1lID0gImFjdGl2ZUVQRyI7DQogICAgICAgIH0NCiAgICAgICAgY29uc29sZS5sb2coaW5wdXRbInR2Zy1sb2dvIl0pOw0KICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkuY2hpbGROb2Rlc1syXS5maXJzdENoaWxkLnNldEF0dHJpYnV0ZSgic3JjIiwgaW5wdXRbInR2Zy1sb2dvIl0pOw0KICAgIH0pOw0KICAgIHNob3dFbGVtZW50KCJwb3B1cCIsIGZhbHNlKTsNCiAgICByZXR1cm47DQp9DQpmdW5jdGlvbiBzaG93UHJldmlldyhlbGVtZW50KSB7DQogICAgbGV0IGRpdiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJteVN0cmVhbXNCb3giKTsNCiAgICBzd2l0Y2ggKGVsZW1lbnQpIHsNCiAgICAgICAgY2FzZSBmYWxzZToNCiAgICAgICAgICAgIGRpdi5jbGFzc05hbWUgPSAibm90VmlzaWJsZSI7DQogICAgICAgICAgICByZXR1cm47DQogICAgfQ0KICAgIGxldCBzdHJlYW1zID0gWyJhY3RpdmVTdHJlYW1zIiwgImluYWN0aXZlU3RyZWFtcyJdOw0KICAgIHN0cmVhbXMuZm9yRWFjaChwcmV2aWV3ID0+IHsNCiAgICAgICAgbGV0IHRhYmxlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQocHJldmlldyk7DQogICAgICAgIHRhYmxlLmlubmVySFRNTCA9ICIiOw0KICAgICAgICBsZXQgb2JqID0gU0VSVkVSWyJkYXRhIl1bIlN0cmVhbVByZXZpZXdVSSJdW3ByZXZpZXddOw0KICAgICAgICBvYmouZm9yRWFjaChjaGFubmVsID0+IHsNCiAgICAgICAgICAgIGxldCB0ciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlRSIik7DQogICAgICAgICAgICBsZXQgdGRLZXkgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgbGV0IHRkVmFsID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgIHRkS2V5LmNsYXNzTmFtZSA9ICJ0ZEtleSI7DQogICAgICAgICAgICB0ZFZhbC5jbGFzc05hbWUgPSAidGRWYWwiOw0KICAgICAgICAgICAgc3dpdGNoIChwcmV2aWV3KSB7DQogICAgICAgICAgICAgICAgY2FzZSAiYWN0aXZlU3RyZWFtcyI6DQogICAgICAgICAgICAgICAgICAgIHRkS2V5LmlubmVyVGV4dCA9ICJDaGFubmVsOiAoKykiOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBjYXNlICJpbmFjdGl2ZVN0cmVhbXMiOg0KICAgICAgICAgICAgICAgICAgICB0ZEtleS5pbm5lclRleHQgPSAiQ2hhbm5lbDogKC0pIjsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICB9DQogICAgICAgICAgICB0ZFZhbC5pbm5lclRleHQgPSBjaGFubmVsOw0KICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQodGRLZXkpOw0KICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQodGRWYWwpOw0KICAgICAgICAgICAgdGFibGUuYXBwZW5kQ2hpbGQodHIpOw0KICAgICAgICB9KTsNCiAgICB9KTsNCiAgICBzaG93RWxlbWVudCgibG9hZGluZyIsIGZhbHNlKTsNCiAgICBkaXYuY2xhc3NOYW1lID0gInZpc2libGUiOw0KICAgIHJldHVybjsNCn0NCg==" + webUI["html/js/menu_ts.js"] = "Y2xhc3MgTWFpbk1lbnUgew0KICAgIGNvbnN0cnVjdG9yKCkgew0KICAgICAgICB0aGlzLkRvY3VtZW50SUQgPSAibWFpbi1tZW51IjsNCiAgICAgICAgdGhpcy5IVE1MVGFnID0gIkxJIjsNCiAgICAgICAgdGhpcy5JbWFnZVBhdGggPSAiaW1nLyI7DQogICAgfQ0KICAgIGNyZWF0ZUlNRyhzcmMpIHsNCiAgICAgICAgbGV0IGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJJTUciKTsNCiAgICAgICAgZWxlbWVudC5zZXRBdHRyaWJ1dGUoInNyYyIsIHRoaXMuSW1hZ2VQYXRoICsgc3JjKTsNCiAgICAgICAgcmV0dXJuIGVsZW1lbnQ7DQogICAgfQ0KICAgIGNyZWF0ZVZhbHVlKHZhbHVlKSB7DQogICAgICAgIGxldCBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiUCIpOw0KICAgICAgICBlbGVtZW50LmlubmVySFRNTCA9IHZhbHVlOw0KICAgICAgICByZXR1cm4gZWxlbWVudDsNCiAgICB9DQp9DQpjbGFzcyBNYWluTWVudUl0ZW0gZXh0ZW5kcyBNYWluTWVudSB7DQogICAgY29uc3RydWN0b3IobWVudUtleSwgdmFsdWUsIGltYWdlLCBoZWFkbGluZSkgew0KICAgICAgICBzdXBlcigpOw0KICAgICAgICB0aGlzLm1lbnVLZXkgPSBtZW51S2V5Ow0KICAgICAgICB0aGlzLnZhbHVlID0gdmFsdWU7DQogICAgICAgIHRoaXMuaW1nU3JjID0gaW1hZ2U7DQogICAgICAgIHRoaXMuaGVhZGxpbmUgPSBoZWFkbGluZTsNCiAgICB9DQogICAgY3JlYXRlSXRlbSgpIHsNCiAgICAgICAgbGV0IGl0ZW0gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJMSSIpOw0KICAgICAgICBpdGVtLnNldEF0dHJpYnV0ZSgib25jbGljayIsICJqYXZhc2NyaXB0OiBvcGVuVGhpc01lbnUodGhpcykiKTsNCiAgICAgICAgaXRlbS5zZXRBdHRyaWJ1dGUoImlkIiwgdGhpcy5pZCk7DQogICAgICAgIGxldCBpbWcgPSB0aGlzLmNyZWF0ZUlNRyh0aGlzLmltZ1NyYyk7DQogICAgICAgIGxldCB2YWx1ZSA9IHRoaXMuY3JlYXRlVmFsdWUodGhpcy52YWx1ZSk7DQogICAgICAgIGl0ZW0uYXBwZW5kQ2hpbGQoaW1nKTsNCiAgICAgICAgaXRlbS5hcHBlbmRDaGlsZCh2YWx1ZSk7DQogICAgICAgIGxldCBkb2MgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCh0aGlzLkRvY3VtZW50SUQpOw0KICAgICAgICBkb2MuYXBwZW5kQ2hpbGQoaXRlbSk7DQogICAgICAgIHN3aXRjaCAodGhpcy5tZW51S2V5KSB7DQogICAgICAgICAgICBjYXNlICJwbGF5bGlzdCI6DQogICAgICAgICAgICAgICAgdGhpcy50YWJsZUhlYWRlciA9IFsie3sucGxheWxpc3QudGFibGUucGxheWxpc3R9fSIsICJ7ey5wbGF5bGlzdC50YWJsZS50dW5lcn19IiwgInt7LnBsYXlsaXN0LnRhYmxlLmxhc3RVcGRhdGV9fSIsICJ7ey5wbGF5bGlzdC50YWJsZS5hdmFpbGFiaWxpdHl9fSAlIiwgInt7LnBsYXlsaXN0LnRhYmxlLnR5cGV9fSIsICJ7ey5wbGF5bGlzdC50YWJsZS5zdHJlYW1zfX0iLCAie3sucGxheWxpc3QudGFibGUuZ3JvdXBUaXRsZX19ICUiLCAie3sucGxheWxpc3QudGFibGUudHZnSUR9fSAlIiwgInt7LnBsYXlsaXN0LnRhYmxlLnVuaXF1ZUlEfX0gJSJdOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAieG1sdHYiOg0KICAgICAgICAgICAgICAgIHRoaXMudGFibGVIZWFkZXIgPSBbInt7LnhtbHR2LnRhYmxlLmd1aWRlfX0iLCAie3sueG1sdHYudGFibGUubGFzdFVwZGF0ZX19IiwgInt7LnhtbHR2LnRhYmxlLmF2YWlsYWJpbGl0eX19ICUiLCAie3sueG1sdHYudGFibGUuY2hhbm5lbHN9fSIsICJ7ey54bWx0di50YWJsZS5wcm9ncmFtc319Il07DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJmaWx0ZXIiOg0KICAgICAgICAgICAgICAgIHRoaXMudGFibGVIZWFkZXIgPSBbInt7LmZpbHRlci50YWJsZS5zdGFydGluZ0NoYW5uZWx9fSIsICJ7ey5maWx0ZXIudGFibGUubmFtZX19IiwgInt7LmZpbHRlci50YWJsZS50eXBlfX0iLCAie3suZmlsdGVyLnRhYmxlLmZpbHRlcn19Il07DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ1c2VycyI6DQogICAgICAgICAgICAgICAgdGhpcy50YWJsZUhlYWRlciA9IFsie3sudXNlcnMudGFibGUudXNlcm5hbWV9fSIsICJ7ey51c2Vycy50YWJsZS5wYXNzd29yZH19IiwgInt7LnVzZXJzLnRhYmxlLndlYn19IiwgInt7LnVzZXJzLnRhYmxlLnBtc319IiwgInt7LnVzZXJzLnRhYmxlLm0zdX19IiwgInt7LnVzZXJzLnRhYmxlLnhtbH19IiwgInt7LnVzZXJzLnRhYmxlLmFwaX19Il07DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJtYXBwaW5nIjoNCiAgICAgICAgICAgICAgICB0aGlzLnRhYmxlSGVhZGVyID0gWyJCVUxLIiwgInt7Lm1hcHBpbmcudGFibGUuY2hOb319IiwgInt7Lm1hcHBpbmcudGFibGUubG9nb319IiwgInt7Lm1hcHBpbmcudGFibGUuY2hhbm5lbE5hbWV9fSIsICJ7ey5tYXBwaW5nLnRhYmxlLnBsYXlsaXN0fX0iLCAie3subWFwcGluZy50YWJsZS5ncm91cFRpdGxlfX0iLCAie3subWFwcGluZy50YWJsZS54bWx0dkZpbGV9fSIsICJ7ey5tYXBwaW5nLnRhYmxlLnhtbHR2SUR9fSIsICJ7ey5tYXBwaW5nLnRhYmxlLnRpbWVzaGlmdH19Il07DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIH0NCiAgICAgICAgLy9jb25zb2xlLmxvZyh0aGlzLm1lbnVLZXksIHRoaXMudGFibGVIZWFkZXIpOw0KICAgIH0NCn0NCmNsYXNzIENvbnRlbnQgew0KICAgIGNvbnN0cnVjdG9yKCkgew0KICAgICAgICB0aGlzLkRvY3VtZW50SUQgPSAiY29udGVudCI7DQogICAgICAgIHRoaXMuVGFibGVJRCA9ICJjb250ZW50X3RhYmxlIjsNCiAgICAgICAgdGhpcy5oZWFkZXJDbGFzcyA9ICJjb250ZW50X3RhYmxlX2hlYWRlciI7DQogICAgICAgIHRoaXMuaW50ZXJhY3Rpb25JRCA9ICJjb250ZW50LWludGVyYWN0aW9uIjsNCiAgICB9DQogICAgY3JlYXRlSGVhZGxpbmUodmFsdWUpIHsNCiAgICAgICAgbGV0IGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJIMyIpOw0KICAgICAgICBlbGVtZW50LmlubmVySFRNTCA9IHZhbHVlOw0KICAgICAgICByZXR1cm4gZWxlbWVudDsNCiAgICB9DQogICAgY3JlYXRlSFIoKSB7DQogICAgICAgIHJldHVybiBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJIUiIpOw0KICAgIH0NCiAgICBjcmVhdGVJbnRlcmFjdGlvbigpIHsNCiAgICAgICAgbGV0IGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJESVYiKTsNCiAgICAgICAgZWxlbWVudC5zZXRBdHRyaWJ1dGUoImlkIiwgdGhpcy5pbnRlcmFjdGlvbklEKTsNCiAgICAgICAgcmV0dXJuIGVsZW1lbnQ7DQogICAgfQ0KICAgIGNyZWF0ZURJVigpIHsNCiAgICAgICAgbGV0IGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJESVYiKTsNCiAgICAgICAgZWxlbWVudC5pZCA9IHRoaXMuRGl2SUQ7DQogICAgICAgIHJldHVybiBlbGVtZW50Ow0KICAgIH0NCiAgICBjcmVhdGVUQUJMRSgpIHsNCiAgICAgICAgbGV0IGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJUQUJMRSIpOw0KICAgICAgICBlbGVtZW50LmlkID0gdGhpcy5UYWJsZUlEOw0KICAgICAgICByZXR1cm4gZWxlbWVudDsNCiAgICB9DQogICAgY3JlYXRlVGFibGVSb3coKSB7DQogICAgICAgIGxldCBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVFIiKTsNCiAgICAgICAgZWxlbWVudC5jbGFzc05hbWUgPSB0aGlzLmhlYWRlckNsYXNzOw0KICAgICAgICByZXR1cm4gZWxlbWVudDsNCiAgICB9DQogICAgY3JlYXRlVGFibGVDb250ZW50KG1lbnVLZXkpIHsNCiAgICAgICAgbGV0IGRhdGEgPSB7fTsNCiAgICAgICAgbGV0IHJvd3MgPSBbXTsNCiAgICAgICAgbGV0IGZpbGVUeXBlcyA9IFtdOw0KICAgICAgICBzd2l0Y2ggKG1lbnVLZXkpIHsNCiAgICAgICAgICAgIGNhc2UgInBsYXlsaXN0IjoNCiAgICAgICAgICAgICAgICBmaWxlVHlwZXMgPSBbIm0zdSIsICJoZGhyIl07DQogICAgICAgICAgICAgICAgZmlsZVR5cGVzLmZvckVhY2goZmlsZVR5cGUgPT4gew0KICAgICAgICAgICAgICAgICAgICBkYXRhID0gU0VSVkVSWyJzZXR0aW5ncyJdWyJmaWxlcyJdW2ZpbGVUeXBlXTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGtleXMgPSBnZXRPYmpLZXlzKGRhdGEpOw0KICAgICAgICAgICAgICAgICAgICBrZXlzLmZvckVhY2goa2V5ID0+IHsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciB0ciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlRSIik7DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5pZCA9IGtleTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoIicgKyBmaWxlVHlwZSArICciLCB0aGlzKScpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bIm5hbWUiXTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgICAgICBpZiAoU0VSVkVSWyJzZXR0aW5ncyJdWyJidWZmZXIiXSAhPSAiLSIpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJ0dW5lciJdOw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9ICItIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJsYXN0LnVwZGF0ZSJdOw0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bInByb3ZpZGVyLmF2YWlsYWJpbGl0eSJdOw0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bInR5cGUiXS50b1VwcGVyQ2FzZSgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bImNvbXBhdGliaWxpdHkiXVsic3RyZWFtcyJdOw0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bImNvbXBhdGliaWxpdHkiXVsiZ3JvdXAudGl0bGUiXTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJjb21wYXRpYmlsaXR5Il1bInR2Zy5pZCJdOw0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bImNvbXBhdGliaWxpdHkiXVsic3RyZWFtLmlkIl07DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICByb3dzLnB1c2godHIpOw0KICAgICAgICAgICAgICAgICAgICB9KTsNCiAgICAgICAgICAgICAgICB9KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImZpbHRlciI6DQogICAgICAgICAgICAgICAgZGVsZXRlIFNFUlZFUlsic2V0dGluZ3MiXVsiZmlsdGVyIl1bLTFdOw0KICAgICAgICAgICAgICAgIGRhdGEgPSBTRVJWRVJbInNldHRpbmdzIl1bImZpbHRlciJdOw0KICAgICAgICAgICAgICAgIHZhciBrZXlzID0gZ2V0T2JqS2V5cyhkYXRhKTsNCiAgICAgICAgICAgICAgICBrZXlzLmZvckVhY2goa2V5ID0+IHsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVFIiKTsNCiAgICAgICAgICAgICAgICAgICAgdHIuaWQgPSBrZXk7DQogICAgICAgICAgICAgICAgICAgIHRyLnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoIicgKyBkYXRhW2tleV1bInR5cGUiXSArICciLCB0aGlzKScpOw0KICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsic3RhcnRpbmdDaGFubmVsIl07DQogICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bIm5hbWUiXTsNCiAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgc3dpdGNoIChkYXRhW2tleV1bInR5cGUiXSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAiY3VzdG9tLWZpbHRlciI6DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9ICJ7ey5maWx0ZXIuY3VzdG9tfX0iOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAiZ3JvdXAtdGl0bGUiOg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSAie3suZmlsdGVyLmdyb3VwfX0iOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJmaWx0ZXIiXTsNCiAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICByb3dzLnB1c2godHIpOw0KICAgICAgICAgICAgICAgIH0pOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAieG1sdHYiOg0KICAgICAgICAgICAgICAgIGZpbGVUeXBlcyA9IG5ldyBBcnJheSgieG1sdHYiKTsNCiAgICAgICAgICAgICAgICBmaWxlVHlwZXMuZm9yRWFjaChmaWxlVHlwZSA9PiB7DQogICAgICAgICAgICAgICAgICAgIGRhdGEgPSBTRVJWRVJbInNldHRpbmdzIl1bImZpbGVzIl1bZmlsZVR5cGVdOw0KICAgICAgICAgICAgICAgICAgICB2YXIga2V5cyA9IGdldE9iaktleXMoZGF0YSk7DQogICAgICAgICAgICAgICAgICAgIGtleXMuZm9yRWFjaChrZXkgPT4gew0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVFIiKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmlkID0ga2V5Ow0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgiJyArIGZpbGVUeXBlICsgJyIsIHRoaXMpJyk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsibmFtZSJdOw0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bImxhc3QudXBkYXRlIl07DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsicHJvdmlkZXIuYXZhaWxhYmlsaXR5Il07DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsiY29tcGF0aWJpbGl0eSJdWyJ4bWx0di5jaGFubmVscyJdOw0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bImNvbXBhdGliaWxpdHkiXVsieG1sdHYucHJvZ3JhbXMiXTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHJvd3MucHVzaCh0cik7DQogICAgICAgICAgICAgICAgICAgIH0pOw0KICAgICAgICAgICAgICAgIH0pOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAidXNlcnMiOg0KICAgICAgICAgICAgICAgIGZpbGVUeXBlcyA9IG5ldyBBcnJheSgidXNlcnMiKTsNCiAgICAgICAgICAgICAgICBmaWxlVHlwZXMuZm9yRWFjaChmaWxlVHlwZSA9PiB7DQogICAgICAgICAgICAgICAgICAgIGRhdGEgPSBTRVJWRVJbZmlsZVR5cGVdOw0KICAgICAgICAgICAgICAgICAgICB2YXIga2V5cyA9IGdldE9iaktleXMoZGF0YSk7DQogICAgICAgICAgICAgICAgICAgIGtleXMuZm9yRWFjaChrZXkgPT4gew0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVFIiKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmlkID0ga2V5Ow0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgiJyArIGZpbGVUeXBlICsgJyIsIHRoaXMpJyk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsiZGF0YSJdWyJ1c2VybmFtZSJdOw0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSAiKioqKioqIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgICAgICBpZiAoZGF0YVtrZXldWyJkYXRhIl1bImF1dGhlbnRpY2F0aW9uLndlYiJdID09IHRydWUpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gIuKckyI7DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gIi0iOw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChkYXRhW2tleV1bImRhdGEiXVsiYXV0aGVudGljYXRpb24ucG1zIl0gPT0gdHJ1ZSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSAi4pyTIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSAiLSI7DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGRhdGFba2V5XVsiZGF0YSJdWyJhdXRoZW50aWNhdGlvbi5tM3UiXSA9PSB0cnVlKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9ICLinJMiOw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9ICItIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgICAgICBpZiAoZGF0YVtrZXldWyJkYXRhIl1bImF1dGhlbnRpY2F0aW9uLnhtbCJdID09IHRydWUpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gIuKckyI7DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gIi0iOw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChkYXRhW2tleV1bImRhdGEiXVsiYXV0aGVudGljYXRpb24uYXBpIl0gPT0gdHJ1ZSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSAi4pyTIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSAiLSI7DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICByb3dzLnB1c2godHIpOw0KICAgICAgICAgICAgICAgICAgICB9KTsNCiAgICAgICAgICAgICAgICB9KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgIm1hcHBpbmciOg0KICAgICAgICAgICAgICAgIEJVTEtfRURJVCA9IGZhbHNlOw0KICAgICAgICAgICAgICAgIGNyZWF0ZVNlYXJjaE9iaigpOw0KICAgICAgICAgICAgICAgIGNoZWNrVW5kbygiZXBnTWFwcGluZyIpOw0KICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKCJNQVBQSU5HIik7DQogICAgICAgICAgICAgICAgZGF0YSA9IFNFUlZFUlsieGVwZyJdWyJlcGdNYXBwaW5nIl07DQogICAgICAgICAgICAgICAgdmFyIGtleXMgPSBnZXRPYmpLZXlzKGRhdGEpOw0KICAgICAgICAgICAgICAgIGtleXMuZm9yRWFjaChrZXkgPT4gew0KICAgICAgICAgICAgICAgICAgICB2YXIgdHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJUUiIpOw0KICAgICAgICAgICAgICAgICAgICB0ci5pZCA9IGtleTsNCiAgICAgICAgICAgICAgICAgICAgLy90ci5zZXRBdHRyaWJ1dGUoJ29uY29udGV4dG1lbnUnLCAnamF2YXNjcmlwdDogcmlnaHRDbGljayh0aGlzKScpDQogICAgICAgICAgICAgICAgICAgIHN3aXRjaCAoZGF0YVtrZXldWyJ4LWFjdGl2ZSJdKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBjYXNlIHRydWU6DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgdHIuY2xhc3NOYW1lID0gImFjdGl2ZUVQRyI7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgICAgICAgICBjYXNlIGZhbHNlOg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyLmNsYXNzTmFtZSA9ICJub3RBY3RpdmVFUEciOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIC8vIEJ1bGsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiQlVMSyI7DQogICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBmYWxzZTsNCiAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAvLyBDaGFubmVsIG51bWJlcg0KICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJJTlBVVENIQU5ORUwiOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJ4LWNoYW5uZWxJRCJdOw0KICAgICAgICAgICAgICAgICAgICAvL3RkLnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBjaGFuZ2VDaGFubmVsTnVtYmVyKCInICsga2V5ICsgJyIsIHRoaXMpJykNCiAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAvLyBMb2dvDQogICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIklNRyI7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuaW1hZ2VVUkwgPSBkYXRhW2tleV1bInR2Zy1sb2dvIl07DQogICAgICAgICAgICAgICAgICAgIHZhciB0ZCA9IGNlbGwuY3JlYXRlQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICB0ZC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJtYXBwaW5nIiwgdGhpcyknKTsNCiAgICAgICAgICAgICAgICAgICAgdGQuaWQgPSBrZXk7DQogICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKHRkKTsNCiAgICAgICAgICAgICAgICAgICAgLy8gQ2hhbm5lbCBuYW1lDQogICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNsYXNzTmFtZSA9IGRhdGFba2V5XVsieC1jYXRlZ29yeSJdOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJ4LW5hbWUiXTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHRkID0gY2VsbC5jcmVhdGVDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgIHRkLnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoIm1hcHBpbmciLCB0aGlzKScpOw0KICAgICAgICAgICAgICAgICAgICB0ZC5pZCA9IGtleTsNCiAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQodGQpOw0KICAgICAgICAgICAgICAgICAgICAvLyBQbGF5bGlzdA0KICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgLy9jZWxsLnZhbHVlID0gZGF0YVtrZXldWyJfZmlsZS5tM3UubmFtZSJdIA0KICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZ2V0VmFsdWVGcm9tUHJvdmlkZXJGaWxlKGRhdGFba2V5XVsiX2ZpbGUubTN1LmlkIl0sICJtM3UiLCAibmFtZSIpOw0KICAgICAgICAgICAgICAgICAgICB2YXIgdGQgPSBjZWxsLmNyZWF0ZUNlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgdGQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgibWFwcGluZyIsIHRoaXMpJyk7DQogICAgICAgICAgICAgICAgICAgIHRkLmlkID0ga2V5Ow0KICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZCh0ZCk7DQogICAgICAgICAgICAgICAgICAgIC8vIEdyb3VwIChncm91cC10aXRsZSkNCiAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bIngtZ3JvdXAtdGl0bGUiXTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHRkID0gY2VsbC5jcmVhdGVDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgIHRkLnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoIm1hcHBpbmciLCB0aGlzKScpOw0KICAgICAgICAgICAgICAgICAgICB0ZC5pZCA9IGtleTsNCiAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQodGQpOw0KICAgICAgICAgICAgICAgICAgICAvLyBYTUxUViBmaWxlDQogICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICBpZiAoZGF0YVtrZXldWyJ4LXhtbHR2LWZpbGUiXSAhPSAiLSIpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBnZXRWYWx1ZUZyb21Qcm92aWRlckZpbGUoZGF0YVtrZXldWyJ4LXhtbHR2LWZpbGUiXSwgInhtbHR2IiwgIm5hbWUiKTsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bIngteG1sdHYtZmlsZSJdOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIHZhciB0ZCA9IGNlbGwuY3JlYXRlQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICB0ZC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJtYXBwaW5nIiwgdGhpcyknKTsNCiAgICAgICAgICAgICAgICAgICAgdGQuaWQgPSBrZXk7DQogICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKHRkKTsNCiAgICAgICAgICAgICAgICAgICAgLy8gWE1MVFYgQ2hhbm5lbA0KICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgLy92YXIgdmFsdWUgPSBzdHIuc3Vic3RyaW5nKDEsIDQpOw0KICAgICAgICAgICAgICAgICAgICB2YXIgdmFsdWUgPSBkYXRhW2tleV1bIngtbWFwcGluZyJdOw0KICAgICAgICAgICAgICAgICAgICBpZiAodmFsdWUubGVuZ3RoID4gMjApIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlID0gZGF0YVtrZXldWyJ4LW1hcHBpbmciXS5zdWJzdHJpbmcoMCwgMjApICsgIi4uLiI7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IHZhbHVlOw0KICAgICAgICAgICAgICAgICAgICB2YXIgdGQgPSBjZWxsLmNyZWF0ZUNlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgdGQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgibWFwcGluZyIsIHRoaXMpJyk7DQogICAgICAgICAgICAgICAgICAgIHRkLmlkID0ga2V5Ow0KICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZCh0ZCk7DQogICAgICAgICAgICAgICAgICAgIC8vIFRpbWVTaGlmdA0KICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsieC10aW1lc2hpZnQiXTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHRkID0gY2VsbC5jcmVhdGVDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgIHRkLnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoIm1hcHBpbmciLCB0aGlzKScpOw0KICAgICAgICAgICAgICAgICAgICB0ZC5pZCA9IGtleTsNCiAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQodGQpOw0KICAgICAgICAgICAgICAgICAgICByb3dzLnB1c2godHIpOw0KICAgICAgICAgICAgICAgIH0pOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAic2V0dGluZ3MiOg0KICAgICAgICAgICAgICAgIGFsZXJ0KCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBkZWZhdWx0Og0KICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKCJUYWJsZSBjb250ZW50IChtZW51S2V5KToiLCBtZW51S2V5KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgfQ0KICAgICAgICByZXR1cm4gcm93czsNCiAgICB9DQp9DQpjbGFzcyBDZWxsIHsNCiAgICBjcmVhdGVDZWxsKCkgew0KICAgICAgICBsZXQgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICBpZiAodGhpcy5jaGlsZCA9PSB0cnVlKSB7DQogICAgICAgICAgICB2YXIgZWxlbWVudDsNCiAgICAgICAgICAgIHN3aXRjaCAodGhpcy5jaGlsZFR5cGUpIHsNCiAgICAgICAgICAgICAgICBjYXNlICJQIjoNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQodGhpcy5jaGlsZFR5cGUpOw0KICAgICAgICAgICAgICAgICAgICBlbGVtZW50LmlubmVySFRNTCA9IHRoaXMudmFsdWU7DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQuY2xhc3NOYW1lID0gdGhpcy5jbGFzc05hbWU7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgIklOUFVUIjoNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQodGhpcy5jaGlsZFR5cGUpOw0KICAgICAgICAgICAgICAgICAgICBlbGVtZW50LnZhbHVlID0gdGhpcy52YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC50eXBlID0gInRleHQiOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBjYXNlICJJTlBVVENIQU5ORUwiOg0KICAgICAgICAgICAgICAgICAgICBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiSU5QVVQiKTsNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdnNjcmlwdDogY2hhbmdlQ2hhbm5lbE51bWJlcih0aGlzKSIpOw0KICAgICAgICAgICAgICAgICAgICBlbGVtZW50LnZhbHVlID0gdGhpcy52YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC50eXBlID0gInRleHQiOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBjYXNlICJCVUxLIjoNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIklOUFVUIik7DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQuY2hlY2tlZCA9IHRoaXMudmFsdWU7DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQudHlwZSA9ICJjaGVja2JveCI7DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQuY2xhc3NOYW1lID0gImJ1bGsgaGlkZUJ1bGsiOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBjYXNlICJCVUxLX0hFQUQiOg0KICAgICAgICAgICAgICAgICAgICBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiSU5QVVQiKTsNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC5jaGVja2VkID0gdGhpcy52YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC50eXBlID0gImNoZWNrYm94IjsNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC5jbGFzc05hbWUgPSAiYnVsayBoaWRlQnVsayI7DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgImphdmFzY3JpcHQ6IHNlbGVjdEFsbENoYW5uZWxzKCkiKTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAiSU1HIjoNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQodGhpcy5jaGlsZFR5cGUpOw0KICAgICAgICAgICAgICAgICAgICBlbGVtZW50LnNldEF0dHJpYnV0ZSgic3JjIiwgdGhpcy5pbWFnZVVSTCk7DQogICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLmltYWdlVVJMICE9ICIiKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBlbGVtZW50LnNldEF0dHJpYnV0ZSgib25lcnJvciIsICJqYXZhc2NyaXB0OiB0aGlzLm9uZXJyb3I9bnVsbDt0aGlzLnNyYz0nJyIpOw0KICAgICAgICAgICAgICAgICAgICAgICAgLy9vbmVycm9yPSJ0aGlzLm9uZXJyb3I9bnVsbDt0aGlzLnNyYz0nbWlzc2luZy5naWYnOyINCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgdGQuYXBwZW5kQ2hpbGQoZWxlbWVudCk7DQogICAgICAgIH0NCiAgICAgICAgZWxzZSB7DQogICAgICAgICAgICB0ZC5pbm5lckhUTUwgPSB0aGlzLnZhbHVlOw0KICAgICAgICB9DQogICAgICAgIGlmICh0aGlzLm9uY2xpY2sgPT0gdHJ1ZSkgew0KICAgICAgICAgICAgdGQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgdGhpcy5vbmNsaWNrRnVuY3Rpb24pOw0KICAgICAgICAgICAgdGQuY2xhc3NOYW1lID0gInBvaW50ZXIiOw0KICAgICAgICB9DQogICAgICAgIGlmICh0aGlzLnRkQ2xhc3NOYW1lICE9IHVuZGVmaW5lZCkgew0KICAgICAgICAgICAgdGQuY2xhc3NOYW1lID0gdGhpcy50ZENsYXNzTmFtZTsNCiAgICAgICAgfQ0KICAgICAgICByZXR1cm4gdGQ7DQogICAgfQ0KfQ0KY2xhc3MgU2hvd0NvbnRlbnQgZXh0ZW5kcyBDb250ZW50IHsNCiAgICBjb25zdHJ1Y3RvcihtZW51SUQpIHsNCiAgICAgICAgc3VwZXIoKTsNCiAgICAgICAgdGhpcy5tZW51SUQgPSBtZW51SUQ7DQogICAgfQ0KICAgIGNyZWF0ZUlucHV0KHR5cGUsIG5hbWUsIHZhbHVlKSB7DQogICAgICAgIGxldCBpbnB1dCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIklOUFVUIik7DQogICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgidHlwZSIsIHR5cGUpOw0KICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm5hbWUiLCBuYW1lKTsNCiAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJ2YWx1ZSIsIHZhbHVlKTsNCiAgICAgICAgcmV0dXJuIGlucHV0Ow0KICAgIH0NCiAgICBzaG93KCkgew0KICAgICAgICBDT0xVTU5fVE9fU09SVCA9IC0xOw0KICAgICAgICAvLyBEZWxldGUgb2xkIGNvbnRlbnQNCiAgICAgICAgbGV0IGRvYyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHRoaXMuRG9jdW1lbnRJRCk7DQogICAgICAgIGRvYy5pbm5lckhUTUwgPSAiIjsNCiAgICAgICAgc2hvd1ByZXZpZXcoZmFsc2UpOw0KICAgICAgICAvLyBIZWFkbGluZQ0KICAgICAgICBsZXQgaGVhZGxpbmUgPSBtZW51SXRlbXNbdGhpcy5tZW51SURdLmhlYWRsaW5lOw0KICAgICAgICBsZXQgbWVudUtleSA9IG1lbnVJdGVtc1t0aGlzLm1lbnVJRF0ubWVudUtleTsNCiAgICAgICAgbGV0IGggPSB0aGlzLmNyZWF0ZUhlYWRsaW5lKGhlYWRsaW5lKTsNCiAgICAgICAgZG9jLmFwcGVuZENoaWxkKGgpOw0KICAgICAgICBsZXQgaHIgPSB0aGlzLmNyZWF0ZUhSKCk7DQogICAgICAgIGRvYy5hcHBlbmRDaGlsZChocik7DQogICAgICAgIC8vIEludGVyYWN0aW9uDQogICAgICAgIGxldCBkaXYgPSB0aGlzLmNyZWF0ZUludGVyYWN0aW9uKCk7DQogICAgICAgIGRvYy5hcHBlbmRDaGlsZChkaXYpOw0KICAgICAgICBsZXQgaW50ZXJhY3Rpb24gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCh0aGlzLmludGVyYWN0aW9uSUQpOw0KICAgICAgICBzd2l0Y2ggKG1lbnVLZXkpIHsNCiAgICAgICAgICAgIGNhc2UgInBsYXlsaXN0IjoNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSB0aGlzLmNyZWF0ZUlucHV0KCJidXR0b24iLCBtZW51S2V5LCAie3suYnV0dG9uLm5ld319Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJpZCIsICItIik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgicGxheWxpc3QiKScpOw0KICAgICAgICAgICAgICAgIGludGVyYWN0aW9uLmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImZpbHRlciI6DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gdGhpcy5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgbWVudUtleSwgInt7LmJ1dHRvbi5uZXd9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgiaWQiLCAtMSk7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgiZmlsdGVyIiwgdGhpcyknKTsNCiAgICAgICAgICAgICAgICBpbnRlcmFjdGlvbi5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ4bWx0diI6DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gdGhpcy5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgbWVudUtleSwgInt7LmJ1dHRvbi5uZXd9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgiaWQiLCAieG1sdHYiKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJ4bWx0diIpJyk7DQogICAgICAgICAgICAgICAgaW50ZXJhY3Rpb24uYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAidXNlcnMiOg0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IHRoaXMuY3JlYXRlSW5wdXQoImJ1dHRvbiIsIG1lbnVLZXksICJ7ey5idXR0b24ubmV3fX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoImlkIiwgInVzZXJzIik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgidXNlcnMiKScpOw0KICAgICAgICAgICAgICAgIGludGVyYWN0aW9uLmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgIm1hcHBpbmciOg0KICAgICAgICAgICAgICAgIHNob3dFbGVtZW50KCJsb2FkaW5nIiwgdHJ1ZSk7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gdGhpcy5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgbWVudUtleSwgInt7LmJ1dHRvbi5zYXZlfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogc2F2ZVBvcHVwRGF0YSgibWFwcGluZyIsICIiLCAiIiknKTsNCiAgICAgICAgICAgICAgICBpbnRlcmFjdGlvbi5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gdGhpcy5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgbWVudUtleSwgInt7LmJ1dHRvbi5idWxrRWRpdH19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IGJ1bGtFZGl0KCknKTsNCiAgICAgICAgICAgICAgICBpbnRlcmFjdGlvbi5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gdGhpcy5jcmVhdGVJbnB1dCgic2VhcmNoIiwgInNlYXJjaCIsICIiKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoImlkIiwgInNlYXJjaE1hcHBpbmciKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LmJ1dHRvbi5zZWFyY2h9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LmNsYXNzTmFtZSA9ICJzZWFyY2giOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAnamF2YXNjcmlwdDogc2VhcmNoSW5NYXBwaW5nKCknKTsNCiAgICAgICAgICAgICAgICBpbnRlcmFjdGlvbi5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJzZXR0aW5ncyI6DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gdGhpcy5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgbWVudUtleSwgInt7LmJ1dHRvbi5zYXZlfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogc2F2ZVNldHRpbmdzKCk7Jyk7DQogICAgICAgICAgICAgICAgaW50ZXJhY3Rpb24uYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IHRoaXMuY3JlYXRlSW5wdXQoImJ1dHRvbiIsIG1lbnVLZXksICJ7ey5idXR0b24uYmFja3VwfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogYmFja3VwKCk7Jyk7DQogICAgICAgICAgICAgICAgaW50ZXJhY3Rpb24uYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IHRoaXMuY3JlYXRlSW5wdXQoImJ1dHRvbiIsIG1lbnVLZXksICJ7ey5idXR0b24ucmVzdG9yZX19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IHJlc3RvcmUoKTsnKTsNCiAgICAgICAgICAgICAgICBpbnRlcmFjdGlvbi5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgdmFyIHdyYXBwZXIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJESVYiKTsNCiAgICAgICAgICAgICAgICB3cmFwcGVyLnNldEF0dHJpYnV0ZSgiaWQiLCAiYm94LXdyYXBwZXIiKTsNCiAgICAgICAgICAgICAgICBkb2MuYXBwZW5kQ2hpbGQod3JhcHBlcik7DQogICAgICAgICAgICAgICAgdGhpcy5EaXZJRCA9ICJjb250ZW50X3NldHRpbmdzIjsNCiAgICAgICAgICAgICAgICB2YXIgc2V0dGluZ3MgPSB0aGlzLmNyZWF0ZURJVigpOw0KICAgICAgICAgICAgICAgIHdyYXBwZXIuYXBwZW5kQ2hpbGQoc2V0dGluZ3MpOw0KICAgICAgICAgICAgICAgIHNob3dTZXR0aW5ncygpOw0KICAgICAgICAgICAgICAgIHJldHVybjsNCiAgICAgICAgICAgIGNhc2UgImxvZyI6DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gdGhpcy5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgbWVudUtleSwgInt7LmJ1dHRvbi5yZXNldExvZ3N9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiByZXNldExvZ3MoKTsnKTsNCiAgICAgICAgICAgICAgICBpbnRlcmFjdGlvbi5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgdmFyIHdyYXBwZXIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJESVYiKTsNCiAgICAgICAgICAgICAgICB3cmFwcGVyLnNldEF0dHJpYnV0ZSgiaWQiLCAiYm94LXdyYXBwZXIiKTsNCiAgICAgICAgICAgICAgICBkb2MuYXBwZW5kQ2hpbGQod3JhcHBlcik7DQogICAgICAgICAgICAgICAgdGhpcy5EaXZJRCA9ICJjb250ZW50X2xvZyI7DQogICAgICAgICAgICAgICAgdmFyIGxvZ3MgPSB0aGlzLmNyZWF0ZURJVigpOw0KICAgICAgICAgICAgICAgIHdyYXBwZXIuYXBwZW5kQ2hpbGQobG9ncyk7DQogICAgICAgICAgICAgICAgc2hvd0xvZ3ModHJ1ZSk7DQogICAgICAgICAgICAgICAgcmV0dXJuOw0KICAgICAgICAgICAgY2FzZSAibG9nb3V0IjoNCiAgICAgICAgICAgICAgICBsb2NhdGlvbi5yZWxvYWQoKTsNCiAgICAgICAgICAgICAgICBkb2N1bWVudC5jb29raWUgPSAiVG9rZW49IDsgZXhwaXJlcyA9IFRodSwgMDEgSmFuIDE5NzAgMDA6MDA6MDAgR01UIjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICAgICAgY29uc29sZS5sb2coIlNob3cgY29udGVudCAobWVudUtleSk6IiwgbWVudUtleSk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIH0NCiAgICAgICAgLy8gQ3JlYXRlIHRhYmxlIChpZiBuZWVkZWQpDQogICAgICAgIHZhciB0YWJsZUhlYWRlciA9IG1lbnVJdGVtc1t0aGlzLm1lbnVJRF0udGFibGVIZWFkZXI7DQogICAgICAgIGlmICh0YWJsZUhlYWRlci5sZW5ndGggPiAwKSB7DQogICAgICAgICAgICB2YXIgd3JhcHBlciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIkRJViIpOw0KICAgICAgICAgICAgZG9jLmFwcGVuZENoaWxkKHdyYXBwZXIpOw0KICAgICAgICAgICAgd3JhcHBlci5zZXRBdHRyaWJ1dGUoImlkIiwgImJveC13cmFwcGVyIik7DQogICAgICAgICAgICB2YXIgdGFibGUgPSB0aGlzLmNyZWF0ZVRBQkxFKCk7DQogICAgICAgICAgICB3cmFwcGVyLmFwcGVuZENoaWxkKHRhYmxlKTsNCiAgICAgICAgICAgIHZhciBoZWFkZXIgPSB0aGlzLmNyZWF0ZVRhYmxlUm93KCk7DQogICAgICAgICAgICB0YWJsZS5hcHBlbmRDaGlsZChoZWFkZXIpOw0KICAgICAgICAgICAgLy8gVGFibGUgaGVhZGVyDQogICAgICAgICAgICB0YWJsZUhlYWRlci5mb3JFYWNoKGVsZW1lbnQgPT4gew0KICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZWxlbWVudDsNCiAgICAgICAgICAgICAgICBpZiAoZWxlbWVudCA9PSAiQlVMSyIpIHsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiQlVMS19IRUFEIjsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGZhbHNlOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBpZiAobWVudUtleSA9PSAibWFwcGluZyIpIHsNCiAgICAgICAgICAgICAgICAgICAgaWYgKGVsZW1lbnQgPT0gInt7Lm1hcHBpbmcudGFibGUuY2hOb319Iikgew0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5vbmNsaWNrID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwub25jbGlja0Z1bmN0aW9uID0gImphdmFzY3JpcHQ6IHNvcnRUYWJsZSgxKTsiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC50ZENsYXNzTmFtZSA9ICJzb3J0VGhpcyI7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgaWYgKGVsZW1lbnQgPT0gInt7Lm1hcHBpbmcudGFibGUuY2hhbm5lbE5hbWV9fSIpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwub25jbGljayA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLm9uY2xpY2tGdW5jdGlvbiA9ICJqYXZhc2NyaXB0OiBzb3J0VGFibGUoMyk7IjsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBpZiAoZWxlbWVudCA9PSAie3subWFwcGluZy50YWJsZS5wbGF5bGlzdH19Iikgew0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5vbmNsaWNrID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwub25jbGlja0Z1bmN0aW9uID0gImphdmFzY3JpcHQ6IHNvcnRUYWJsZSg0KTsiOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIGlmIChlbGVtZW50ID09ICJ7ey5tYXBwaW5nLnRhYmxlLmdyb3VwVGl0bGV9fSIpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwub25jbGljayA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLm9uY2xpY2tGdW5jdGlvbiA9ICJqYXZhc2NyaXB0OiBzb3J0VGFibGUoNSk7IjsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBpZiAoZWxlbWVudCA9PSAie3subWFwcGluZy50YWJsZS50aW1lc2hpZnR9fSIpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwub25jbGljayA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLm9uY2xpY2tGdW5jdGlvbiA9ICJqYXZhc2NyaXB0OiBzb3J0VGFibGUoOCk7IjsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBpZiAobWVudUtleSA9PSAiZmlsdGVyIikgew0KICAgICAgICAgICAgICAgICAgICBpZiAoZWxlbWVudCA9PSAie3suZmlsdGVyLnRhYmxlLnN0YXJ0aW5nQ2hhbm5lbH19Iikgew0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5vbmNsaWNrID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwub25jbGlja0Z1bmN0aW9uID0gImphdmFzY3JpcHQ6IHNvcnRUYWJsZSgwKTsiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC50ZENsYXNzTmFtZSA9ICJzb3J0VGhpcyI7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgaWYgKGVsZW1lbnQgPT0gInt7LmZpbHRlci50YWJsZS5uYW1lfX0iKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLm9uY2xpY2sgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5vbmNsaWNrRnVuY3Rpb24gPSAiamF2YXNjcmlwdDogc29ydFRhYmxlKDEpOyI7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgaWYgKGVsZW1lbnQgPT0gInt7LmZpbHRlci50YWJsZS50eXBlfX0iKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLm9uY2xpY2sgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5vbmNsaWNrRnVuY3Rpb24gPSAiamF2YXNjcmlwdDogc29ydFRhYmxlKDIpOyI7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgaWYgKGVsZW1lbnQgPT0gInt7LmZpbHRlci50YWJsZS5maWx0ZXJ9fSIpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwub25jbGljayA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLm9uY2xpY2tGdW5jdGlvbiA9ICJqYXZhc2NyaXB0OiBzb3J0VGFibGUoMyk7IjsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBoZWFkZXIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgfSk7DQogICAgICAgICAgICB0YWJsZS5hcHBlbmRDaGlsZChoZWFkZXIpOw0KICAgICAgICAgICAgLy8gQ29udGVudCBvZiB0aGUgdGFibGUNCiAgICAgICAgICAgIHZhciByb3dzID0gdGhpcy5jcmVhdGVUYWJsZUNvbnRlbnQobWVudUtleSk7DQogICAgICAgICAgICByb3dzLmZvckVhY2godHIgPT4gew0KICAgICAgICAgICAgICAgIHRhYmxlLmFwcGVuZENoaWxkKHRyKTsNCiAgICAgICAgICAgIH0pOw0KICAgICAgICB9DQogICAgICAgIHN3aXRjaCAobWVudUtleSkgew0KICAgICAgICAgICAgY2FzZSAibWFwcGluZyI6DQogICAgICAgICAgICAgICAgc29ydFRhYmxlKDEpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiZmlsdGVyIjoNCiAgICAgICAgICAgICAgICBzaG93UHJldmlldyh0cnVlKTsNCiAgICAgICAgICAgICAgICBzb3J0VGFibGUoMCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBkZWZhdWx0Og0KICAgICAgICAgICAgICAgIENPTFVNTl9UT19TT1JUID0gLTE7DQogICAgICAgICAgICAgICAgc29ydFRhYmxlKDApOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICB9DQogICAgICAgIHNob3dFbGVtZW50KCJsb2FkaW5nIiwgZmFsc2UpOw0KICAgIH0NCn0NCmZ1bmN0aW9uIFBhZ2VSZWFkeSgpIHsNCiAgICBsZXQgc2VydmVyID0gbmV3IFNlcnZlcigiZ2V0U2VydmVyQ29uZmlnIik7DQogICAgc2VydmVyLnJlcXVlc3Qoe30pOw0KICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJyZXNpemUiLCBmdW5jdGlvbiAoKSB7DQogICAgICAgIGNhbGN1bGF0ZVdyYXBwZXJIZWlnaHQoKTsNCiAgICB9LCB0cnVlKTsNCiAgICBzZXRJbnRlcnZhbChmdW5jdGlvbiAoKSB7DQogICAgICAgIHVwZGF0ZUxvZygpOw0KICAgIH0sIDEwMDAwKTsNCiAgICByZXR1cm47DQp9DQpmdW5jdGlvbiBjcmVhdGVMYXlvdXQoKSB7DQogICAgLy8gQ2xpZW50IEluZm8NCiAgICBsZXQgb2JqID0gU0VSVkVSWyJjbGllbnRJbmZvIl07DQogICAgbGV0IGtleXMgPSBnZXRPYmpLZXlzKG9iaik7DQogICAgZm9yICh2YXIgaSA9IDA7IGkgPCBrZXlzLmxlbmd0aDsgaSsrKSB7DQogICAgICAgIGlmIChkb2N1bWVudC5nZXRFbGVtZW50QnlJZChrZXlzW2ldKSkgew0KICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoa2V5c1tpXSkuaW5uZXJIVE1MID0gb2JqW2tleXNbaV1dOw0KICAgICAgICB9DQogICAgfQ0KICAgIGlmICghZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm1haW4tbWVudSIpKSB7DQogICAgICAgIHJldHVybjsNCiAgICB9DQogICAgLy8gQ3JlYXRlIG1lbnUNCiAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibWFpbi1tZW51IikuaW5uZXJIVE1MID0gIiI7DQogICAgZm9yIChsZXQgaSA9IDA7IGkgPCBtZW51SXRlbXMubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgbWVudUl0ZW1zW2ldLmlkID0gaTsNCiAgICAgICAgc3dpdGNoIChtZW51SXRlbXNbaV1bIm1lbnVLZXkiXSkgew0KICAgICAgICAgICAgY2FzZSAidXNlcnMiOg0KICAgICAgICAgICAgY2FzZSAibG9nb3V0IjoNCiAgICAgICAgICAgICAgICBpZiAoU0VSVkVSWyJzZXR0aW5ncyJdWyJhdXRoZW50aWNhdGlvbi53ZWIiXSA9PSB0cnVlKSB7DQogICAgICAgICAgICAgICAgICAgIG1lbnVJdGVtc1tpXS5jcmVhdGVJdGVtKCk7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAibWFwcGluZyI6DQogICAgICAgICAgICBjYXNlICJ4bWx0diI6DQogICAgICAgICAgICAgICAgaWYgKFNFUlZFUlsiY2xpZW50SW5mbyJdWyJlcGdTb3VyY2UiXSA9PSAiWEVQRyIpIHsNCiAgICAgICAgICAgICAgICAgICAgbWVudUl0ZW1zW2ldLmNyZWF0ZUl0ZW0oKTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBkZWZhdWx0Og0KICAgICAgICAgICAgICAgIG1lbnVJdGVtc1tpXS5jcmVhdGVJdGVtKCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIH0NCiAgICB9DQogICAgcmV0dXJuOw0KfQ0KZnVuY3Rpb24gb3BlblRoaXNNZW51KGVsZW1lbnQpIHsNCiAgICBsZXQgaWQgPSBlbGVtZW50LmlkOw0KICAgIGxldCBjb250ZW50ID0gbmV3IFNob3dDb250ZW50KGlkKTsNCiAgICBjb250ZW50LnNob3coKTsNCiAgICBjYWxjdWxhdGVXcmFwcGVySGVpZ2h0KCk7DQogICAgcmV0dXJuOw0KfQ0KY2xhc3MgUG9wdXBXaW5kb3cgew0KICAgIGNvbnN0cnVjdG9yKCkgew0KICAgICAgICB0aGlzLkRvY3VtZW50SUQgPSAicG9wdXAtY3VzdG9tIjsNCiAgICAgICAgdGhpcy5JbnRlcmFjdGlvbklEID0gImludGVyYWN0aW9uIjsNCiAgICAgICAgdGhpcy5kb2MgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCh0aGlzLkRvY3VtZW50SUQpOw0KICAgIH0NCiAgICBjcmVhdGVUaXRsZSh0aXRsZSkgew0KICAgICAgICBsZXQgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICB0ZC5jbGFzc05hbWUgPSAibGVmdCI7DQogICAgICAgIHRkLmlubmVySFRNTCA9IHRpdGxlICsgIjoiOw0KICAgICAgICByZXR1cm4gdGQ7DQogICAgfQ0KICAgIGNyZWF0ZUNvbnRlbnQoZWxlbWVudCkgew0KICAgICAgICBsZXQgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICB0ZC5hcHBlbmRDaGlsZChlbGVtZW50KTsNCiAgICAgICAgcmV0dXJuIHRkOw0KICAgIH0NCiAgICBjcmVhdGVJbnRlcmFjdGlvbigpIHsNCiAgICAgICAgbGV0IGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOw0KICAgICAgICBkaXYuc2V0QXR0cmlidXRlKCJpZCIsICJwb3B1cC1pbnRlcmFjdGlvbiIpOw0KICAgICAgICBkaXYuY2xhc3NOYW1lID0gImludGVyYWN0aW9uIjsNCiAgICAgICAgdGhpcy5kb2MuYXBwZW5kQ2hpbGQoZGl2KTsNCiAgICB9DQp9DQpjbGFzcyBQb3B1cENvbnRlbnQgZXh0ZW5kcyBQb3B1cFdpbmRvdyB7DQogICAgY29uc3RydWN0b3IoKSB7DQogICAgICAgIHN1cGVyKC4uLmFyZ3VtZW50cyk7DQogICAgICAgIHRoaXMudGFibGUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJUQUJMRSIpOw0KICAgIH0NCiAgICBjcmVhdGVIZWFkbGluZShoZWFkbGluZSkgew0KICAgICAgICB0aGlzLmRvYy5pbm5lckhUTUwgPSAiIjsNCiAgICAgICAgdmFyIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJIMyIpOw0KICAgICAgICBlbGVtZW50LmlubmVySFRNTCA9IGhlYWRsaW5lLnRvVXBwZXJDYXNlKCk7DQogICAgICAgIHRoaXMuZG9jLmFwcGVuZENoaWxkKGVsZW1lbnQpOw0KICAgICAgICAvLyBDcmVhdGUgdGFibGUNCiAgICAgICAgdGhpcy50YWJsZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlRBQkxFIik7DQogICAgICAgIHRoaXMuZG9jLmFwcGVuZENoaWxkKHRoaXMudGFibGUpOw0KICAgIH0NCiAgICBhcHBlbmRSb3codGl0bGUsIGVsZW1lbnQpIHsNCiAgICAgICAgbGV0IHRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVFIiKTsNCiAgICAgICAgLy8gVGl0bGUNCiAgICAgICAgaWYgKHRpdGxlLmxlbmd0aCAhPSAwKSB7DQogICAgICAgICAgICB0ci5hcHBlbmRDaGlsZCh0aGlzLmNyZWF0ZVRpdGxlKHRpdGxlKSk7DQogICAgICAgIH0NCiAgICAgICAgLy8gQ29udGVudA0KICAgICAgICB0ci5hcHBlbmRDaGlsZCh0aGlzLmNyZWF0ZUNvbnRlbnQoZWxlbWVudCkpOw0KICAgICAgICB0aGlzLnRhYmxlLmFwcGVuZENoaWxkKHRyKTsNCiAgICB9DQogICAgY3JlYXRlSW5wdXQodHlwZSwgbmFtZSwgdmFsdWUpIHsNCiAgICAgICAgbGV0IGlucHV0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiSU5QVVQiKTsNCiAgICAgICAgaWYgKHZhbHVlID09IHVuZGVmaW5lZCkgew0KICAgICAgICAgICAgdmFsdWUgPSAiIjsNCiAgICAgICAgfQ0KICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInR5cGUiLCB0eXBlKTsNCiAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJuYW1lIiwgbmFtZSk7DQogICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgidmFsdWUiLCB2YWx1ZSk7DQogICAgICAgIHJldHVybiBpbnB1dDsNCiAgICB9DQogICAgY3JlYXRlQ2hlY2tib3gobmFtZSkgew0KICAgICAgICBsZXQgaW5wdXQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJJTlBVVCIpOw0KICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInR5cGUiLCAiY2hlY2tib3giKTsNCiAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJuYW1lIiwgbmFtZSk7DQogICAgICAgIHJldHVybiBpbnB1dDsNCiAgICB9DQogICAgLy8gQ3JlYXRlcyBhIHNlbGVjdGlvbiBvZiBtdWx0aXBsZSBvcHRpb25zIHZhbHVlcyB3aXRoIHRleHQgZGVzY3JpcHRpb25zDQogICAgY3JlYXRlU2VsZWN0KHRleHQsIHZhbHVlcywgc2V0LCBkYktleSkgew0KICAgICAgICBsZXQgc2VsZWN0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiU0VMRUNUIik7DQogICAgICAgIHNlbGVjdC5zZXRBdHRyaWJ1dGUoIm5hbWUiLCBkYktleSk7DQogICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGV4dC5sZW5ndGg7IGkrKykgew0KICAgICAgICAgICAgbGV0IG9wdGlvbiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIk9QVElPTiIpOw0KICAgICAgICAgICAgb3B0aW9uLnNldEF0dHJpYnV0ZSgidmFsdWUiLCB2YWx1ZXNbaV0pOw0KICAgICAgICAgICAgb3B0aW9uLmlubmVyVGV4dCA9IHRleHRbaV07DQogICAgICAgICAgICBzZWxlY3QuYXBwZW5kQ2hpbGQob3B0aW9uKTsNCiAgICAgICAgfQ0KICAgICAgICBpZiAoc2V0ICE9ICIiKSB7DQogICAgICAgICAgICBzZWxlY3QudmFsdWUgPSBzZXQ7DQogICAgICAgIH0NCiAgICAgICAgaWYgKHNldCA9PSB1bmRlZmluZWQpIHsNCiAgICAgICAgICAgIHNlbGVjdC52YWx1ZSA9IHZhbHVlc1swXTsNCiAgICAgICAgfQ0KICAgICAgICByZXR1cm4gc2VsZWN0Ow0KICAgIH0NCiAgICBzZWxlY3RPcHRpb24oc2VsZWN0LCB2YWx1ZSkgew0KICAgICAgICAvL3NlbGVjdC5zZWxlY3RlZE9wdGlvbnMgPSB2YWx1ZQ0KICAgICAgICBsZXQgcyA9IHNlbGVjdDsNCiAgICAgICAgcy5vcHRpb25zW3Muc2VsZWN0ZWRJbmRleF0udmFsdWUgPSB2YWx1ZTsNCiAgICAgICAgcmV0dXJuIHNlbGVjdDsNCiAgICB9DQogICAgZGVzY3JpcHRpb24odmFsdWUpIHsNCiAgICAgICAgbGV0IHRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVFIiKTsNCiAgICAgICAgbGV0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgbGV0IHNwYW4gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJQUkUiKTsNCiAgICAgICAgc3Bhbi5pbm5lckhUTUwgPSB2YWx1ZTsNCiAgICAgICAgdHIuYXBwZW5kQ2hpbGQodGQpOw0KICAgICAgICB0ci5hcHBlbmRDaGlsZCh0aGlzLmNyZWF0ZUNvbnRlbnQoc3BhbikpOw0KICAgICAgICB0aGlzLnRhYmxlLmFwcGVuZENoaWxkKHRyKTsNCiAgICB9DQogICAgLy8gSW50ZXJhY3Rpb24NCiAgICBhZGRJbnRlcmFjdGlvbihlbGVtZW50KSB7DQogICAgICAgIGxldCBpbnRlcmFjdGlvbiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJwb3B1cC1pbnRlcmFjdGlvbiIpOw0KICAgICAgICBpbnRlcmFjdGlvbi5hcHBlbmRDaGlsZChlbGVtZW50KTsNCiAgICB9DQp9DQpmdW5jdGlvbiBvcGVuUG9wVXAoZGF0YVR5cGUsIGVsZW1lbnQpIHsNCiAgICBsZXQgZGF0YSA9IHt9Ow0KICAgIGxldCBpZDsNCiAgICBzd2l0Y2ggKGVsZW1lbnQpIHsNCiAgICAgICAgY2FzZSB1bmRlZmluZWQ6DQogICAgICAgICAgICBzd2l0Y2ggKGRhdGFUeXBlKSB7DQogICAgICAgICAgICAgICAgY2FzZSAiZ3JvdXAtdGl0bGUiOg0KICAgICAgICAgICAgICAgICAgICBpZiAoaWQgPT0gdW5kZWZpbmVkKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBpZCA9IC0xOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIGRhdGEgPSBnZXRMb2NhbERhdGEoImZpbHRlciIsIGlkKTsNCiAgICAgICAgICAgICAgICAgICAgZGF0YVsidHlwZSJdID0gImdyb3VwLXRpdGxlIjsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAiY3VzdG9tLWZpbHRlciI6DQogICAgICAgICAgICAgICAgICAgIGlmIChpZCA9PSB1bmRlZmluZWQpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGlkID0gLTE7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgZGF0YSA9IGdldExvY2FsRGF0YSgiZmlsdGVyIiwgaWQpOw0KICAgICAgICAgICAgICAgICAgICBkYXRhWyJ0eXBlIl0gPSAiY3VzdG9tLWZpbHRlciI7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICAgICAgICAgIGRhdGFbImlkLnByb3ZpZGVyIl0gPSAiLSI7DQogICAgICAgICAgICAgICAgICAgIGRhdGFbInR5cGUiXSA9IGRhdGFUeXBlOw0KICAgICAgICAgICAgICAgICAgICBpZCA9ICItIjsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgIGlkID0gZWxlbWVudC5pZDsNCiAgICAgICAgICAgIGRhdGEgPSBnZXRMb2NhbERhdGEoZGF0YVR5cGUsIGlkKTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgIH0NCiAgICBsZXQgY29udGVudCA9IG5ldyBQb3B1cENvbnRlbnQoKTsNCiAgICBzd2l0Y2ggKGRhdGFUeXBlKSB7DQogICAgICAgIGNhc2UgInBsYXlsaXN0IjoNCiAgICAgICAgICAgIGNvbnRlbnQuY3JlYXRlSGVhZGxpbmUoInt7LnBsYXlsaXN0LnBsYXlsaXN0VHlwZS50aXRsZX19Iik7DQogICAgICAgICAgICAvLyBUeXBlDQogICAgICAgICAgICB2YXIgdGV4dCA9IFsiTTNVIiwgIkhESG9tZVJ1biJdOw0KICAgICAgICAgICAgdmFyIHZhbHVlcyA9IFsiamF2YXNjcmlwdDogb3BlblBvcFVwKCdtM3UnKSIsICJqYXZhc2NyaXB0OiBvcGVuUG9wVXAoJ2hkaHInKSJdOw0KICAgICAgICAgICAgdmFyIHNlbGVjdCA9IGNvbnRlbnQuY3JlYXRlU2VsZWN0KHRleHQsIHZhbHVlcywgIiIsICJ0eXBlIik7DQogICAgICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJpZCIsICJ0eXBlIik7DQogICAgICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICdqYXZhc2NyaXB0OiBjaGFuZ2VCdXR0b25BY3Rpb24odGhpcywgIm5leHQiLCAib25jbGljayIpJyk7IC8vIGNoYW5nZUJ1dHRvbkFjdGlvbg0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnBsYXlsaXN0LnR5cGUudGl0bGV9fSIsIHNlbGVjdCk7DQogICAgICAgICAgICAvLyBJbnRlcmFjdGlvbg0KICAgICAgICAgICAgY29udGVudC5jcmVhdGVJbnRlcmFjdGlvbigpOw0KICAgICAgICAgICAgLy8gQWJvcnQNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJjYW5jZWwiLCAie3suYnV0dG9uLmNhbmNlbH19Iik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogc2hvd0VsZW1lbnQoInBvcHVwIiwgZmFsc2UpOycpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICAvLyBOZXh0DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAibmV4dCIsICJ7ey5idXR0b24ubmV4dH19Iik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJtM3UiKScpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJpZCIsICduZXh0Jyk7DQogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJtM3UiOg0KICAgICAgICAgICAgY29udGVudC5jcmVhdGVIZWFkbGluZShkYXRhVHlwZSk7DQogICAgICAgICAgICAvLyBOYW1lDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAibmFtZSI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3sucGxheWxpc3QubmFtZS5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sucGxheWxpc3QubmFtZS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgLy8gRGVzY3JpcHRpb24NCiAgICAgICAgICAgIHZhciBkYktleSA9ICJkZXNjcmlwdGlvbiI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3sucGxheWxpc3QuZGVzY3JpcHRpb24ucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnBsYXlsaXN0LmRlc2NyaXB0aW9uLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBVUkwNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJmaWxlLnNvdXJjZSI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3sucGxheWxpc3QuZmlsZU0zVS5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sucGxheWxpc3QuZmlsZU0zVS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgLy8gVHVuZXINCiAgICAgICAgICAgIGlmIChTRVJWRVJbInNldHRpbmdzIl1bImJ1ZmZlciJdICE9ICItIikgew0KICAgICAgICAgICAgICAgIHZhciB0ZXh0ID0gW107DQogICAgICAgICAgICAgICAgdmFyIHZhbHVlcyA9IFtdOw0KICAgICAgICAgICAgICAgIGZvciAodmFyIGkgPSAxOyBpIDw9IDEwMDsgaSsrKSB7DQogICAgICAgICAgICAgICAgICAgIHRleHQucHVzaChpLnRvU3RyaW5nKCkpOw0KICAgICAgICAgICAgICAgICAgICB2YWx1ZXMucHVzaChpLnRvU3RyaW5nKCkpOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB2YXIgZGJLZXkgPSAidHVuZXIiOw0KICAgICAgICAgICAgICAgIHZhciBzZWxlY3QgPSBjb250ZW50LmNyZWF0ZVNlbGVjdCh0ZXh0LCB2YWx1ZXMsIGRhdGFbZGJLZXldLCBkYktleSk7DQogICAgICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25mb2N1cyIsICJqYXZhc2NyaXB0OiByZXR1cm47Iik7DQogICAgICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnBsYXlsaXN0LnR1bmVyLnRpdGxlfX0iLCBzZWxlY3QpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgZWxzZSB7DQogICAgICAgICAgICAgICAgdmFyIGRiS2V5ID0gInR1bmVyIjsNCiAgICAgICAgICAgICAgICBpZiAoZGF0YVtkYktleV0gPT0gdW5kZWZpbmVkKSB7DQogICAgICAgICAgICAgICAgICAgIGRhdGFbZGJLZXldID0gMTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJyZWFkb25seSIsICJ0cnVlIik7DQogICAgICAgICAgICAgICAgaW5wdXQuY2xhc3NOYW1lID0gIm5vdEF2YWlsYWJsZSI7DQogICAgICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnBsYXlsaXN0LnR1bmVyLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBjb250ZW50LmRlc2NyaXB0aW9uKCJ7ey5wbGF5bGlzdC50dW5lci5kZXNjcmlwdGlvbn19Iik7DQogICAgICAgICAgICAvLyBJbnRlcmF0aW9uDQogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUludGVyYWN0aW9uKCk7DQogICAgICAgICAgICAvLyBEZWxldGUNCiAgICAgICAgICAgIGlmIChkYXRhWyJpZC5wcm92aWRlciJdICE9ICItIikgew0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJkZWxldGUiLCAie3suYnV0dG9uLmRlbGV0ZX19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuY2xhc3NOYW1lID0gImRlbGV0ZSI7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoIm0zdSIsICInICsgaWQgKyAnIiwgdHJ1ZSwgMCknKTsNCiAgICAgICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJiYWNrIiwgInt7LmJ1dHRvbi5iYWNrfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJwbGF5bGlzdCIpJyk7DQogICAgICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICAvLyBBYm9ydA0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImNhbmNlbCIsICJ7ey5idXR0b24uY2FuY2VsfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBzaG93RWxlbWVudCgicG9wdXAiLCBmYWxzZSk7Jyk7DQogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIC8vIFVwZGF0ZQ0KICAgICAgICAgICAgaWYgKGRhdGFbImlkLnByb3ZpZGVyIl0gIT0gIi0iKSB7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgInVwZGF0ZSIsICJ7ey5idXR0b24udXBkYXRlfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogc2F2ZVBvcHVwRGF0YSgibTN1IiwgIicgKyBpZCArICciLCBmYWxzZSwgMSknKTsNCiAgICAgICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIC8vIFNhdmUNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJzYXZlIiwgInt7LmJ1dHRvbi5zYXZlfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBzYXZlUG9wdXBEYXRhKCJtM3UiLCAiJyArIGlkICsgJyIsIGZhbHNlLCAwKScpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSAiaGRociI6DQogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUhlYWRsaW5lKGRhdGFUeXBlKTsNCiAgICAgICAgICAgIC8vIE5hbWUNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJuYW1lIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5wbGF5bGlzdC5uYW1lLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5wbGF5bGlzdC5uYW1lLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBEZXNjcmlwdGlvbg0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gImRlc2NyaXB0aW9uIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5wbGF5bGlzdC5kZXNjcmlwdGlvbi5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sucGxheWxpc3QuZGVzY3JpcHRpb24ucGxhY2Vob2xkZXJ9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIFVSTA0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gImZpbGUuc291cmNlIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5wbGF5bGlzdC5maWxlSERIUi5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sucGxheWxpc3QuZmlsZUhESFIudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIFR1bmVyDQogICAgICAgICAgICBpZiAoU0VSVkVSWyJzZXR0aW5ncyJdWyJidWZmZXIiXSAhPSAiLSIpIHsNCiAgICAgICAgICAgICAgICB2YXIgdGV4dCA9IFtdOw0KICAgICAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBbXTsNCiAgICAgICAgICAgICAgICBmb3IgKHZhciBpID0gMTsgaSA8PSAxMDA7IGkrKykgew0KICAgICAgICAgICAgICAgICAgICB0ZXh0LnB1c2goaS50b1N0cmluZygpKTsNCiAgICAgICAgICAgICAgICAgICAgdmFsdWVzLnB1c2goaS50b1N0cmluZygpKTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgdmFyIGRiS2V5ID0gInR1bmVyIjsNCiAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCBkYXRhW2RiS2V5XSwgZGJLZXkpOw0KICAgICAgICAgICAgICAgIHNlbGVjdC5zZXRBdHRyaWJ1dGUoIm9uZm9jdXMiLCAiamF2YXNjcmlwdDogcmV0dXJuOyIpOw0KICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5wbGF5bGlzdC50dW5lci50aXRsZX19Iiwgc2VsZWN0KTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgICAgIHZhciBkYktleSA9ICJ0dW5lciI7DQogICAgICAgICAgICAgICAgaWYgKGRhdGFbZGJLZXldID09IHVuZGVmaW5lZCkgew0KICAgICAgICAgICAgICAgICAgICBkYXRhW2RiS2V5XSA9IDE7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicmVhZG9ubHkiLCAidHJ1ZSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LmNsYXNzTmFtZSA9ICJub3RBdmFpbGFibGUiOw0KICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5wbGF5bGlzdC50dW5lci50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgY29udGVudC5kZXNjcmlwdGlvbigie3sucGxheWxpc3QudHVuZXIuZGVzY3JpcHRpb259fSIpOw0KICAgICAgICAgICAgLy8gSW50ZXJhY3Rpb24NCiAgICAgICAgICAgIGNvbnRlbnQuY3JlYXRlSW50ZXJhY3Rpb24oKTsNCiAgICAgICAgICAgIC8vIERlbGV0ZQ0KICAgICAgICAgICAgaWYgKGRhdGFbImlkLnByb3ZpZGVyIl0gIT0gIi0iKSB7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImRlbGV0ZSIsICJ7ey5idXR0b24uZGVsZXRlfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogc2F2ZVBvcHVwRGF0YSgiaGRociIsICInICsgaWQgKyAnIiwgdHJ1ZSwgMCknKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5jbGFzc05hbWUgPSAiZGVsZXRlIjsNCiAgICAgICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJiYWNrIiwgInt7LmJ1dHRvbi5iYWNrfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJwbGF5bGlzdCIpJyk7DQogICAgICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICAvLyBBYm9ydA0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImNhbmNlbCIsICJ7ey5idXR0b24uY2FuY2VsfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBzaG93RWxlbWVudCgicG9wdXAiLCBmYWxzZSk7Jyk7DQogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIC8vIFVwZGF0ZQ0KICAgICAgICAgICAgaWYgKGRhdGFbImlkLnByb3ZpZGVyIl0gIT0gIi0iKSB7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgInVwZGF0ZSIsICJ7ey5idXR0b24udXBkYXRlfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogc2F2ZVBvcHVwRGF0YSgiaGRociIsICInICsgaWQgKyAnIiwgZmFsc2UsIDEpJyk7DQogICAgICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICAvLyBTYXZlDQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAic2F2ZSIsICJ7ey5idXR0b24uc2F2ZX19Iik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogc2F2ZVBvcHVwRGF0YSgiaGRociIsICInICsgaWQgKyAnIiwgZmFsc2UsIDApJyk7DQogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJmaWx0ZXIiOg0KICAgICAgICAgICAgY29udGVudC5jcmVhdGVIZWFkbGluZShkYXRhVHlwZSk7DQogICAgICAgICAgICAvLyBUeXBlDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAidHlwZSI7DQogICAgICAgICAgICB2YXIgdGV4dCA9IFsiTTNVOiAiICsgInt7LmZpbHRlci50eXBlLmdyb3VwVGl0bGV9fSIsICJ4VGVWZTogIiArICJ7ey5maWx0ZXIudHlwZS5jdXN0b21GaWx0ZXJ9fSJdOw0KICAgICAgICAgICAgdmFyIHZhbHVlcyA9IFsiamF2YXNjcmlwdDogb3BlblBvcFVwKCdncm91cC10aXRsZScpIiwgImphdmFzY3JpcHQ6IG9wZW5Qb3BVcCgnY3VzdG9tLWZpbHRlcicpIl07DQogICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCAiamF2YXNjcmlwdDogb3BlblBvcFVwKCdncm91cC10aXRsZScpIiwgZGJLZXkpOw0KICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgiaWQiLCBpZCk7DQogICAgICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICdqYXZhc2NyaXB0OiBjaGFuZ2VCdXR0b25BY3Rpb24odGhpcywgIm5leHQiLCAib25jbGljayIpOycpOyAvLyBjaGFuZ2VCdXR0b25BY3Rpb24NCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5maWx0ZXIudHlwZS50aXRsZX19Iiwgc2VsZWN0KTsNCiAgICAgICAgICAgIC8vIEludGVyYWN0aW9uDQogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUludGVyYWN0aW9uKCk7DQogICAgICAgICAgICAvLyBBYm9ydA0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImNhbmNlbCIsICJ7ey5idXR0b24uY2FuY2VsfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBzaG93RWxlbWVudCgicG9wdXAiLCBmYWxzZSk7Jyk7DQogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIC8vIE5leHQNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJuZXh0IiwgInt7LmJ1dHRvbi5uZXh0fX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoImdyb3VwLXRpdGxlIiknKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgiaWQiLCAnbmV4dCcpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSAiY3VzdG9tLWZpbHRlciI6DQogICAgICAgIGNhc2UgImdyb3VwLXRpdGxlIjoNCiAgICAgICAgICAgIHN3aXRjaCAoZGF0YVR5cGUpIHsNCiAgICAgICAgICAgICAgICBjYXNlICJjdXN0b20tZmlsdGVyIjoNCiAgICAgICAgICAgICAgICAgICAgY29udGVudC5jcmVhdGVIZWFkbGluZSgie3suZmlsdGVyLmN1c3RvbX19IiArICIgRmlsdGVyIik7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgImdyb3VwLXRpdGxlIjoNCiAgICAgICAgICAgICAgICAgICAgY29udGVudC5jcmVhdGVIZWFkbGluZSgie3suZmlsdGVyLmdyb3VwfX0iICsgIiBGaWx0ZXIiKTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICB9DQogICAgICAgICAgICAvLyBOYW1lICAgICAgDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAibmFtZSI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3suZmlsdGVyLm5hbWUucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LmZpbHRlci5uYW1lLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBEZXNjcmlwdGlvbg0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gImRlc2NyaXB0aW9uIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5maWx0ZXIuZGVzY3JpcHRpb24ucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LmZpbHRlci5kZXNjcmlwdGlvbi50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgLy8gVHlwZQ0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gInR5cGUiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiaGlkZGVuIiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCIiLCBpbnB1dCk7DQogICAgICAgICAgICB2YXIgZmlsdGVyVHlwZSA9IGRhdGFbZGJLZXldOw0KICAgICAgICAgICAgc3dpdGNoIChmaWx0ZXJUeXBlKSB7DQogICAgICAgICAgICAgICAgY2FzZSAiY3VzdG9tLWZpbHRlciI6DQogICAgICAgICAgICAgICAgICAgIC8vIENhc2Ugc2Vuc2l0aXZlDQogICAgICAgICAgICAgICAgICAgIHZhciBkYktleSA9ICJjYXNlU2Vuc2l0aXZlIjsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChkYktleSk7DQogICAgICAgICAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhW2RiS2V5XTsNCiAgICAgICAgICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LmZpbHRlci5jYXNlU2Vuc2l0aXZlLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAgICAgICAgIC8vIEZpbHRlciBSdWxlIChDdXN0b20pDQogICAgICAgICAgICAgICAgICAgIHZhciBkYktleSA9ICJmaWx0ZXIiOw0KICAgICAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5maWx0ZXIuZmlsdGVyUnVsZS5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5maWx0ZXIuZmlsdGVyUnVsZS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBjYXNlICJncm91cC10aXRsZSI6DQogICAgICAgICAgICAgICAgICAgIC8vYWxlcnQoZGJLZXkgKyAiICIgKyBmaWx0ZXJUeXBlKQ0KICAgICAgICAgICAgICAgICAgICAvLyBGaWx0ZXIgYmFzZWQgb24gdGhlIGdyb3VwcyBpbiB0aGUgTTNVDQogICAgICAgICAgICAgICAgICAgIHZhciBkYktleSA9ICJmaWx0ZXIiOw0KICAgICAgICAgICAgICAgICAgICB2YXIgZ3JvdXBzTTNVID0gZ2V0TG9jYWxEYXRhKCJtM3VHcm91cHMiLCAiIik7DQogICAgICAgICAgICAgICAgICAgIHZhciB0ZXh0ID0gZ3JvdXBzTTNVWyJ0ZXh0Il07DQogICAgICAgICAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBncm91cHNNM1VbInZhbHVlIl07DQogICAgICAgICAgICAgICAgICAgIHZhciBzZWxlY3QgPSBjb250ZW50LmNyZWF0ZVNlbGVjdCh0ZXh0LCB2YWx1ZXMsIGRhdGFbZGJLZXldLCBkYktleSk7DQogICAgICAgICAgICAgICAgICAgIHNlbGVjdC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5maWx0ZXIuZmlsdGVyR3JvdXAudGl0bGV9fSIsIHNlbGVjdCk7DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuZGVzY3JpcHRpb24oInt7LmZpbHRlci5maWx0ZXJHcm91cC5kZXNjcmlwdGlvbn19Iik7DQogICAgICAgICAgICAgICAgICAgIC8vIENhc2Ugc2Vuc2V0aXZlDQogICAgICAgICAgICAgICAgICAgIHZhciBkYktleSA9ICJjYXNlU2Vuc2l0aXZlIjsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChkYktleSk7DQogICAgICAgICAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhW2RiS2V5XTsNCiAgICAgICAgICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LmZpbHRlci5jYXNlU2Vuc2l0aXZlLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAgICAgICAgIHZhciBkYktleSA9ICJpbmNsdWRlIjsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3suZmlsdGVyLmluY2x1ZGUucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3suZmlsdGVyLmluY2x1ZGUudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgICAgICAgICAgY29udGVudC5kZXNjcmlwdGlvbigie3suZmlsdGVyLmluY2x1ZGUuZGVzY3JpcHRpb259fSIpOw0KICAgICAgICAgICAgICAgICAgICB2YXIgZGJLZXkgPSAiZXhjbHVkZSI7DQogICAgICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LmZpbHRlci5leGNsdWRlLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LmZpbHRlci5leGNsdWRlLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuZGVzY3JpcHRpb24oInt7LmZpbHRlci5leGNsdWRlLmRlc2NyaXB0aW9ufX0iKTsNCiAgICAgICAgICAgICAgICAgICAgLy8gUHJlc2VydmUgTTNVIFBsYXlsaXN0IENoYW5uZWwgTWFwcGluZw0KICAgICAgICAgICAgICAgICAgICB2YXIgZGJLZXkgPSAicHJlc2VydmVNYXBwaW5nIjsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChkYktleSk7DQogICAgICAgICAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhW2RiS2V5XTsNCiAgICAgICAgICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LmZpbHRlci5wcmVzZXJ2ZU1hcHBpbmcudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgICAgICAgICAgLy8gU3RhcnRpbmcgQ2hhbm5lbCBOdW1iZXIgTWFwcGluZw0KICAgICAgICAgICAgICAgICAgICB2YXIgZGJLZXkgPSAic3RhcnRpbmdDaGFubmVsIjsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3suZmlsdGVyLnN0YXJ0aW5nQ2hhbm5lbC5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5maWx0ZXIuc3RhcnRpbmdDaGFubmVsLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAgICAgICAgIC8vIEZpbGwgTWlzc2luZyBFUEcgRGF0YQ0KICAgICAgICAgICAgICAgICAgICAvLyBUaGUgZm9sbG93aW5nIGNvZGUgb25seSB3b3JrcyB3aGVuIHhUZVZlIER1bW15IGFscmVhZHkgZXhpc3RzDQogICAgICAgICAgICAgICAgICAgIC8vIHZhciBkYktleTpzdHJpbmcgPSAiZGVmYXVsdE1pc3NpbmdFUEciDQogICAgICAgICAgICAgICAgICAgIC8vIHZhciB4bWx0djpYTUxUVkZpbGUgPSBuZXcgWE1MVFZGaWxlKCkNCiAgICAgICAgICAgICAgICAgICAgLy8gdmFyIHNlbGVjdCA9IHhtbHR2LmdldFByb2dyYW1zKCJ4VGVWZSBEdW1teSIsIGRhdGFbZGJLZXldKQ0KICAgICAgICAgICAgICAgICAgICAvLyBzZWxlY3Quc2V0QXR0cmlidXRlKCJuYW1lIiwgZGJLZXkpDQogICAgICAgICAgICAgICAgICAgIC8vIHNlbGVjdC5zZXRBdHRyaWJ1dGUoImlkIiwgInBvcHVwLW1pc3NpbmctZXBnIikNCiAgICAgICAgICAgICAgICAgICAgLy8gVGhlIHdvcmthcm91bmQgaXMgY3VycmVudGx5IHRvIGhhcmQgY29kZSB0aGUgeFRlVmUgRHVtbXkgZGF0YQ0KICAgICAgICAgICAgICAgICAgICB2YXIgZGJLZXkgPSAiZGVmYXVsdE1pc3NpbmdFUEciOw0KICAgICAgICAgICAgICAgICAgICB2YXIgbGlzdE9wdGlvbnMgPSB7ICJ0ZXh0IjogWyItIiwgIjMwIE1pbnV0ZXMgKDMwX01pbnV0ZXMpIiwgIjYwIE1pbnV0ZXMgKDYwX01pbnV0ZXMpIiwgIjkwIE1pbnV0ZXMgKDkwX01pbnV0ZXMpIiwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAiMTIwIE1pbnV0ZXMgKDEyMF9NaW51dGVzKSIsICIxODAgTWludXRlcyAoMzBfTWludXRlcykiLCAiMjQwIE1pbnV0ZXMgKDMwX01pbnV0ZXMpIiwgIjM2MCBNaW51dGVzICgzMF9NaW51dGVzKSJdLA0KICAgICAgICAgICAgICAgICAgICAgICAgInZhbHVlIjogWyItIiwgIjMwX01pbnV0ZXMiLCAiNjBfTWludXRlcyIsICI5MF9NaW51dGVzIiwgIjEyMF9NaW51dGVzIiwgIjE4MF9NaW51dGVzIiwgIjI0MF9NaW51dGVzIiwgIjM2MF9NaW51dGVzIixdIH07DQogICAgICAgICAgICAgICAgICAgIHZhciB0ZXh0ID0gbGlzdE9wdGlvbnNbInRleHQiXTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHZhbHVlcyA9IGxpc3RPcHRpb25zWyJ2YWx1ZSJdOw0KICAgICAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCBkYXRhW2RiS2V5XSwgZGJLZXkpOw0KICAgICAgICAgICAgICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3suZmlsdGVyLmRlZmF1bHRNaXNzaW5nRVBHLnRpdGxlfX0iLCBzZWxlY3QpOw0KICAgICAgICAgICAgICAgICAgICBjb250ZW50LmRlc2NyaXB0aW9uKCJ7ey5maWx0ZXIuZGVmYXVsdE1pc3NpbmdFUEcuZGVzY3JpcHRpb259fSIpOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBkZWZhdWx0Og0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIC8vIEludGVyYWN0aW9uDQogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUludGVyYWN0aW9uKCk7DQogICAgICAgICAgICAvLyBEZWxldGUNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJkZWxldGUiLCAie3suYnV0dG9uLmRlbGV0ZX19Iik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogc2F2ZVBvcHVwRGF0YSgiZmlsdGVyIiwgIicgKyBpZCArICciLCB0cnVlLCAwKScpOw0KICAgICAgICAgICAgaW5wdXQuY2xhc3NOYW1lID0gImRlbGV0ZSI7DQogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIC8vIEFib3J0DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAiY2FuY2VsIiwgInt7LmJ1dHRvbi5jYW5jZWx9fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IHNob3dFbGVtZW50KCJwb3B1cCIsIGZhbHNlKTsnKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgLy8gU2F2ZQ0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgInNhdmUiLCAie3suYnV0dG9uLnNhdmV9fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoImZpbHRlciIsICInICsgaWQgKyAnIiwgZmFsc2UsIDApJyk7DQogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJ4bWx0diI6DQogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUhlYWRsaW5lKGRhdGFUeXBlKTsNCiAgICAgICAgICAgIC8vIE5hbWUNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJuYW1lIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey54bWx0di5uYW1lLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey54bWx0di5uYW1lLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBEZXNjcmlwdGlvbg0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gImRlc2NyaXB0aW9uIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey54bWx0di5kZXNjcmlwdGlvbi5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sueG1sdHYuZGVzY3JpcHRpb24udGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIFVSTA0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gImZpbGUuc291cmNlIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey54bWx0di5maWxlWE1MVFYucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnhtbHR2LmZpbGVYTUxUVi50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgLy8gSW50ZXJhY3Rpb24NCiAgICAgICAgICAgIGNvbnRlbnQuY3JlYXRlSW50ZXJhY3Rpb24oKTsNCiAgICAgICAgICAgIC8vIERlbGV0ZQ0KICAgICAgICAgICAgaWYgKGRhdGFbImlkLnByb3ZpZGVyIl0gIT0gIi0iKSB7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImRlbGV0ZSIsICJ7ey5idXR0b24uZGVsZXRlfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogc2F2ZVBvcHVwRGF0YSgieG1sdHYiLCAiJyArIGlkICsgJyIsIHRydWUsIDApJyk7DQogICAgICAgICAgICAgICAgaW5wdXQuY2xhc3NOYW1lID0gImRlbGV0ZSI7DQogICAgICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICAvLyBBYm9ydA0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImNhbmNlbCIsICJ7ey5idXR0b24uY2FuY2VsfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBzaG93RWxlbWVudCgicG9wdXAiLCBmYWxzZSk7Jyk7DQogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIC8vIFVwZGF0ZQ0KICAgICAgICAgICAgaWYgKGRhdGFbImlkLnByb3ZpZGVyIl0gIT0gIi0iKSB7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgInVwZGF0ZSIsICJ7ey5idXR0b24udXBkYXRlfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogc2F2ZVBvcHVwRGF0YSgieG1sdHYiLCAiJyArIGlkICsgJyIsIGZhbHNlLCAxKScpOw0KICAgICAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgLy8gU2F2ZQ0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgInNhdmUiLCAie3suYnV0dG9uLnNhdmV9fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoInhtbHR2IiwgIicgKyBpZCArICciLCBmYWxzZSwgMCknKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGNhc2UgInVzZXJzIjoNCiAgICAgICAgICAgIGNvbnRlbnQuY3JlYXRlSGVhZGxpbmUoInt7Lm1haW5NZW51Lml0ZW0udXNlcnN9fSIpOw0KICAgICAgICAgICAgLy8gVXNlciBuYW1lDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAidXNlcm5hbWUiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnVzZXJzLnVzZXJuYW1lLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey51c2Vycy51c2VybmFtZS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgLy8gTmV3IFBhcnNzd29yZA0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gInBhc3N3b3JkIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInBhc3N3b3JkIiwgZGJLZXksICIiKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3sudXNlcnMucGFzc3dvcmQucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnVzZXJzLnBhc3N3b3JkLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBDb25maXJtYXRpb24NCiAgICAgICAgICAgIHZhciBkYktleSA9ICJjb25maXJtIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInBhc3N3b3JkIiwgZGJLZXksICIiKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3sudXNlcnMuY29uZmlybS5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sudXNlcnMuY29uZmlybS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgLy8gQXV0aGVudGljYXRpb24gV0VCDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAiYXV0aGVudGljYXRpb24ud2ViIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goZGJLZXkpOw0KICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGFbZGJLZXldOw0KICAgICAgICAgICAgaWYgKGRhdGFbImRlZmF1bHRVc2VyIl0gPT0gdHJ1ZSkgew0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICJqYXZhc2NyaXB0OiByZXR1cm4gZmFsc2UiKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey51c2Vycy53ZWIudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIEF1dGhlbnRpY2F0aW9uIFBNUw0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gImF1dGhlbnRpY2F0aW9uLnBtcyI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KGRiS2V5KTsNCiAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhW2RiS2V5XTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey51c2Vycy5wbXMudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIEF1dGhlbnRpY2F0aW9uIE0zVQ0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gImF1dGhlbnRpY2F0aW9uLm0zdSI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KGRiS2V5KTsNCiAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhW2RiS2V5XTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey51c2Vycy5tM3UudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIEF1dGhlbnRpY2F0aW9uIFhNTA0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gImF1dGhlbnRpY2F0aW9uLnhtbCI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KGRiS2V5KTsNCiAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhW2RiS2V5XTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey51c2Vycy54bWwudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIEF1dGhlbnRpY2F0aW9uIEFQSQ0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gImF1dGhlbnRpY2F0aW9uLmFwaSI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KGRiS2V5KTsNCiAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhW2RiS2V5XTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey51c2Vycy5hcGkudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIEludGVyYWN0aW9uDQogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUludGVyYWN0aW9uKCk7DQogICAgICAgICAgICAvLyBEZWxldGUNCiAgICAgICAgICAgIGlmIChkYXRhWyJkZWZhdWx0VXNlciJdICE9IHRydWUgJiYgaWQgIT0gIi0iKSB7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImRlbGV0ZSIsICJ7ey5idXR0b24uZGVsZXRlfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5jbGFzc05hbWUgPSAiZGVsZXRlIjsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogc2F2ZVBvcHVwRGF0YSgiJyArIGRhdGFUeXBlICsgJyIsICInICsgaWQgKyAnIiwgdHJ1ZSwgMCknKTsNCiAgICAgICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIC8vIEFib3J0DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAiY2FuY2VsIiwgInt7LmJ1dHRvbi5jYW5jZWx9fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IHNob3dFbGVtZW50KCJwb3B1cCIsIGZhbHNlKTsnKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgLy8gU2F2ZQ0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgInNhdmUiLCAie3suYnV0dG9uLnNhdmV9fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoIicgKyBkYXRhVHlwZSArICciLCAiJyArIGlkICsgJyIsICJmYWxzZSIpOycpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSAibWFwcGluZyI6DQogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUhlYWRsaW5lKCJ7ey5tYWluTWVudS5pdGVtLm1hcHBpbmd9fSIpOw0KICAgICAgICAgICAgLy8gQWN0aXZlDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAieC1hY3RpdmUiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChkYktleSk7DQogICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YVtkYktleV07DQogICAgICAgICAgICBpbnB1dC5pZCA9ICJhY3RpdmUiOw0KICAgICAgICAgICAgLy9pbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIikNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdG9nZ2xlQ2hhbm5lbFN0YXR1cygnIiArIGlkICsgIicsIHRoaXMpIik7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3subWFwcGluZy5hY3RpdmUudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIENoYW5uZWwgbmFtZQ0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gIngtbmFtZSI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgIGlmIChCVUxLX0VESVQgPT0gdHJ1ZSkgew0KICAgICAgICAgICAgICAgIGlucHV0LnN0eWxlLmJvcmRlciA9ICJzb2xpZCAxcHggcmVkIjsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInJlYWRvbmx5IiwgInRydWUiKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5tYXBwaW5nLmNoYW5uZWxOYW1lLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICBjb250ZW50LmRlc2NyaXB0aW9uKGRhdGFbIm5hbWUiXSk7DQogICAgICAgICAgICAvLyBEZXNjcmlwdGlvbg0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gIngtZGVzY3JpcHRpb24iOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7Lm1hcHBpbmcuZGVzY3JpcHRpb24ucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7Lm1hcHBpbmcuZGVzY3JpcHRpb24udGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIFVwZGF0ZSB0aGUgY2hhbm5lbCBuYW1lDQogICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgiX3V1aWQua2V5IikpIHsNCiAgICAgICAgICAgICAgICBpZiAoZGF0YVsiX3V1aWQua2V5Il0gIT0gIiIpIHsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGRiS2V5ID0gIngtdXBkYXRlLWNoYW5uZWwtbmFtZSI7DQogICAgICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goZGJLZXkpOw0KICAgICAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhW2RiS2V5XTsNCiAgICAgICAgICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7Lm1hcHBpbmcudXBkYXRlQ2hhbm5lbE5hbWUudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9DQogICAgICAgICAgICAvLyBMb2dvIFVSTCAoQ2hhbm5lbCkgDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAidHZnLWxvZ28iOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoImlkIiwgImNoYW5uZWwtaWNvbiIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7Lm1hcHBpbmcuY2hhbm5lbExvZ28udGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIENoYW5uZWwgbG9nbyB1cGRhdGUNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJ4LXVwZGF0ZS1jaGFubmVsLWljb24iOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChkYktleSk7DQogICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YVtkYktleV07DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoImlkIiwgInVwZGF0ZS1pY29uIik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnOyBjaGFuZ2VDaGFubmVsTG9nbygnIiArIGlkICsgIicpOyIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7Lm1hcHBpbmcudXBkYXRlQ2hhbm5lbExvZ28udGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIEV4cGFuZCBFUEcgY2F0ZWdvcnkNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJ4LWNhdGVnb3J5IjsNCiAgICAgICAgICAgIHZhciB0ZXh0ID0gWyItIiwgIktpZHMgKEVtYnkgb25seSkiLCAiTmV3cyIsICJNb3ZpZSIsICJTZXJpZXMiLCAiU3BvcnRzIl07DQogICAgICAgICAgICB2YXIgdmFsdWVzID0gWyIiLCAiS2lkcyIsICJOZXdzIiwgIk1vdmllIiwgIlNlcmllcyIsICJTcG9ydHMiXTsNCiAgICAgICAgICAgIHZhciBzZWxlY3QgPSBjb250ZW50LmNyZWF0ZVNlbGVjdCh0ZXh0LCB2YWx1ZXMsIGRhdGFbZGJLZXldLCBkYktleSk7DQogICAgICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7Lm1hcHBpbmcuZXBnQ2F0ZWdvcnkudGl0bGV9fSIsIHNlbGVjdCk7DQogICAgICAgICAgICAvLyBNM1UgZ3JvdXAgdGl0bGUNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJ4LWdyb3VwLXRpdGxlIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgaW5wdXQuZGF0YXNldC5vbGRWYWx1ZSA9IGRhdGFbZGJLZXldOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7Lm1hcHBpbmcubTN1R3JvdXBUaXRsZS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgaWYgKGRhdGFbImdyb3VwLXRpdGxlIl0gIT0gdW5kZWZpbmVkKSB7DQogICAgICAgICAgICAgICAgY29udGVudC5kZXNjcmlwdGlvbihkYXRhWyJncm91cC10aXRsZSJdKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGlmIChkYXRhWyJ4LXVwZGF0ZS1jaGFubmVsLWdyb3VwIl0gPT0gdHJ1ZSkgew0KICAgICAgICAgICAgICAgIGlucHV0LmRpc2FibGVkID0gdHJ1ZTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIC8vIFVwZGF0ZSBjaGFubmVsIGdyb3VwIGNoZWNrYm94DQogICAgICAgICAgICB2YXIgZGJLZXkgPSAieC11cGRhdGUtY2hhbm5lbC1ncm91cCI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KGRiS2V5KTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdG9nZ2xlR3JvdXBVcGRhdGVDYignIiArIGlkICsgIicsIHRoaXMpOyIpOw0KICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGFbZGJLZXldOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7Lm1hcHBpbmcudXBkYXRlQ2hhbm5lbEdyb3VwLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICBjb250ZW50LmRlc2NyaXB0aW9uKCJ7ey5tYXBwaW5nLnVwZGF0ZUNoYW5uZWxHcm91cC5kZXNjcmlwdGlvbn19Iik7DQogICAgICAgICAgICAvLyBYTUxUViBmaWxlDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAieC14bWx0di1maWxlIjsNCiAgICAgICAgICAgIHZhciB4bWxGaWxlID0gZGF0YVtkYktleV07DQogICAgICAgICAgICB2YXIgeG1sdHYgPSBuZXcgWE1MVFZGaWxlKCk7DQogICAgICAgICAgICB2YXIgc2VsZWN0ID0geG1sdHYuZ2V0RmlsZXMoZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgibmFtZSIsIGRiS2V5KTsNCiAgICAgICAgICAgIHNlbGVjdC5zZXRBdHRyaWJ1dGUoImlkIiwgInBvcHVwLXhtbHR2Iik7DQogICAgICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJzsgc2V0WG1sdHZDaGFubmVsKCciICsgaWQgKyAiJyx0aGlzKTsiKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5tYXBwaW5nLnhtbHR2RmlsZS50aXRsZX19Iiwgc2VsZWN0KTsNCiAgICAgICAgICAgIHZhciBmaWxlID0gZGF0YVtkYktleV07DQogICAgICAgICAgICAvLyBYTUxUViBNYXBwaW5nDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAieC1tYXBwaW5nIjsNCiAgICAgICAgICAgIHZhciB4bWx0diA9IG5ldyBYTUxUVkZpbGUoKTsNCiAgICAgICAgICAgIHZhciBzZWxlY3QgPSB4bWx0di5nZXRQcm9ncmFtcyhmaWxlLCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJuYW1lIiwgZGJLZXkpOw0KICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgiaWQiLCAicG9wdXAtbWFwcGluZyIpOw0KICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCc7IGNoZWNrWG1sdHZDaGFubmVsKCciICsgaWQgKyAiJyx0aGlzLCciICsgeG1sRmlsZSArICInKTsiKTsNCiAgICAgICAgICAgIHNvcnRTZWxlY3Qoc2VsZWN0KTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5tYXBwaW5nLnhtbHR2Q2hhbm5lbC50aXRsZX19Iiwgc2VsZWN0KTsNCiAgICAgICAgICAgIC8vIFRpbWVzaGlmdA0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gIngtdGltZXNoaWZ0IjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5tYXBwaW5nLnRpbWVzaGlmdC5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoImlkIiwgInRpbWVzaGlmdCIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7Lm1hcHBpbmcudGltZXNoaWZ0LnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBJbnRlcmFjdGlvbg0KICAgICAgICAgICAgY29udGVudC5jcmVhdGVJbnRlcmFjdGlvbigpOw0KICAgICAgICAgICAgLy8gVXBsb2FkIGxvZ28NCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJjYW5jZWwiLCAie3suYnV0dG9uLnVwbG9hZExvZ299fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IHVwbG9hZExvZ28oKTsnKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgLy8gQWJvcnQNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJjYW5jZWwiLCAie3suYnV0dG9uLmNhbmNlbH19Iik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogc2hvd0VsZW1lbnQoInBvcHVwIiwgZmFsc2UpOycpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICAvLyBGaW5pc2hlZA0KICAgICAgICAgICAgdmFyIGlkcyA9IFtdOw0KICAgICAgICAgICAgaWRzID0gZ2V0QWxsU2VsZWN0ZWRDaGFubmVscygpOw0KICAgICAgICAgICAgaWYgKGlkcy5sZW5ndGggPT0gMCkgew0KICAgICAgICAgICAgICAgIGlkcy5wdXNoKGlkKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJzYXZlIiwgInt7LmJ1dHRvbi5kb25lfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBkb25lUG9wdXBEYXRhKCInICsgZGF0YVR5cGUgKyAnIiwgIicgKyBpZHMgKyAnIiwgImZhbHNlIik7Jyk7DQogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBkZWZhdWx0Og0KICAgICAgICAgICAgYnJlYWs7DQogICAgfQ0KICAgIHNob3dQb3BVcEVsZW1lbnQoJ3BvcHVwLWN1c3RvbScpOw0KfQ0KY2xhc3MgWE1MVFZGaWxlIHsNCiAgICBnZXRGaWxlcyhzZXQpIHsNCiAgICAgICAgbGV0IGZpbGVJRHMgPSBnZXRPYmpLZXlzKFNFUlZFUlsieGVwZyJdWyJ4bWx0dk1hcCJdKTsNCiAgICAgICAgbGV0IHZhbHVlcyA9IG5ldyBBcnJheSgiLSIpOw0KICAgICAgICBsZXQgdGV4dCA9IG5ldyBBcnJheSgiLSIpOw0KICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGZpbGVJRHMubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgICAgIGlmIChmaWxlSURzW2ldICE9ICJ4VGVWZSBEdW1teSIpIHsNCiAgICAgICAgICAgICAgICB2YWx1ZXMucHVzaChnZXRWYWx1ZUZyb21Qcm92aWRlckZpbGUoZmlsZUlEc1tpXSwgInhtbHR2IiwgImZpbGUueHRldmUiKSk7DQogICAgICAgICAgICAgICAgdGV4dC5wdXNoKGdldFZhbHVlRnJvbVByb3ZpZGVyRmlsZShmaWxlSURzW2ldLCAieG1sdHYiLCAibmFtZSIpKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgICAgIHZhbHVlcy5wdXNoKGZpbGVJRHNbaV0pOw0KICAgICAgICAgICAgICAgIHRleHQucHVzaChmaWxlSURzW2ldKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KICAgICAgICBsZXQgc2VsZWN0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiU0VMRUNUIik7DQogICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGV4dC5sZW5ndGg7IGkrKykgew0KICAgICAgICAgICAgdmFyIG9wdGlvbiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIk9QVElPTiIpOw0KICAgICAgICAgICAgb3B0aW9uLnNldEF0dHJpYnV0ZSgidmFsdWUiLCB2YWx1ZXNbaV0pOw0KICAgICAgICAgICAgb3B0aW9uLmlubmVyVGV4dCA9IHRleHRbaV07DQogICAgICAgICAgICBzZWxlY3QuYXBwZW5kQ2hpbGQob3B0aW9uKTsNCiAgICAgICAgfQ0KICAgICAgICBpZiAoc2V0ICE9ICIiKSB7DQogICAgICAgICAgICBzZWxlY3QudmFsdWUgPSBzZXQ7DQogICAgICAgIH0NCiAgICAgICAgcmV0dXJuIHNlbGVjdDsNCiAgICB9DQogICAgZ2V0UHJvZ3JhbXMoZmlsZSwgc2V0KSB7DQogICAgICAgIC8vdmFyIGZpbGVJRHM6c3RyaW5nW10gPSBnZXRPYmpLZXlzKFNFUlZFUlsieGVwZyJdWyJ4bWx0dk1hcCJdKQ0KICAgICAgICBsZXQgdmFsdWVzID0gZ2V0T2JqS2V5cyhTRVJWRVJbInhlcGciXVsieG1sdHZNYXAiXVtmaWxlXSk7DQogICAgICAgIGxldCB0ZXh0ID0gW107DQogICAgICAgIGxldCBmcmllbmRseU5hbWU7DQogICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdmFsdWVzLmxlbmd0aDsgaSsrKSB7DQogICAgICAgICAgICBpZiAoU0VSVkVSWyJ4ZXBnIl1bInhtbHR2TWFwIl1bZmlsZV1bdmFsdWVzW2ldXS5oYXNPd25Qcm9wZXJ0eSgnZnJpZW5kbHktbmFtZScpID09IHRydWUpIHsNCiAgICAgICAgICAgICAgICBmcmllbmRseU5hbWUgPSBTRVJWRVJbInhlcGciXVsieG1sdHZNYXAiXVtmaWxlXVt2YWx1ZXNbaV1dWyJmcmllbmRseS1uYW1lIl07DQogICAgICAgICAgICB9DQogICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICBmcmllbmRseU5hbWUgPSAiLSI7DQogICAgICAgICAgICB9DQogICAgICAgICAgICB0ZXh0W2ldID0gZnJpZW5kbHlOYW1lICsgIiAoIiArIHZhbHVlc1tpXSArICIpIjsNCiAgICAgICAgfQ0KICAgICAgICB0ZXh0LnVuc2hpZnQoIi0iKTsNCiAgICAgICAgdmFsdWVzLnVuc2hpZnQoIi0iKTsNCiAgICAgICAgbGV0IHNlbGVjdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlNFTEVDVCIpOw0KICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRleHQubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgICAgIHZhciBvcHRpb24gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJPUFRJT04iKTsNCiAgICAgICAgICAgIG9wdGlvbi5zZXRBdHRyaWJ1dGUoInZhbHVlIiwgdmFsdWVzW2ldKTsNCiAgICAgICAgICAgIG9wdGlvbi5pbm5lclRleHQgPSB0ZXh0W2ldOw0KICAgICAgICAgICAgc2VsZWN0LmFwcGVuZENoaWxkKG9wdGlvbik7DQogICAgICAgIH0NCiAgICAgICAgaWYgKHNldCAhPSAiIikgew0KICAgICAgICAgICAgc2VsZWN0LnZhbHVlID0gc2V0Ow0KICAgICAgICB9DQogICAgICAgIGlmIChzZWxlY3QudmFsdWUgIT0gc2V0KSB7DQogICAgICAgICAgICBzZWxlY3QudmFsdWUgPSAiLSI7DQogICAgICAgIH0NCiAgICAgICAgcmV0dXJuIHNlbGVjdDsNCiAgICB9DQp9DQpmdW5jdGlvbiBnZXRWYWx1ZUZyb21Qcm92aWRlckZpbGUoZmlsZSwgZmlsZVR5cGUsIGtleSkgew0KICAgIGlmIChmaWxlID09ICJ4VGVWZSBEdW1teSIpIHsNCiAgICAgICAgcmV0dXJuIGZpbGU7DQogICAgfQ0KICAgIGxldCBmaWxlSUQ7DQogICAgbGV0IGluZGljYXRvciA9IGZpbGUuY2hhckF0KDApOw0KICAgIHN3aXRjaCAoaW5kaWNhdG9yKSB7DQogICAgICAgIGNhc2UgIk0iOg0KICAgICAgICAgICAgZmlsZVR5cGUgPSAibTN1IjsNCiAgICAgICAgICAgIGZpbGVJRCA9IGZpbGU7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSAiSCI6DQogICAgICAgICAgICBmaWxlVHlwZSA9ICJoZGhyIjsNCiAgICAgICAgICAgIGZpbGVJRCA9IGZpbGU7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSAiWCI6DQogICAgICAgICAgICBmaWxlVHlwZSA9ICJ4bWx0diI7DQogICAgICAgICAgICBmaWxlSUQgPSBmaWxlLnN1YnN0cmluZygwLCBmaWxlLmxhc3RJbmRleE9mKCcuJykpOw0KICAgICAgICAgICAgYnJlYWs7DQogICAgfQ0KICAgIGlmIChTRVJWRVJbInNldHRpbmdzIl1bImZpbGVzIl1bZmlsZVR5cGVdLmhhc093blByb3BlcnR5KGZpbGVJRCkgPT0gdHJ1ZSkgew0KICAgICAgICB2YXIgZGF0YSA9IFNFUlZFUlsic2V0dGluZ3MiXVsiZmlsZXMiXVtmaWxlVHlwZV1bZmlsZUlEXTsNCiAgICAgICAgcmV0dXJuIGRhdGFba2V5XTsNCiAgICB9DQogICAgcmV0dXJuOw0KfQ0KZnVuY3Rpb24gc2V0WG1sdHZDaGFubmVsKGlkLCBlbGVtZW50KSB7DQogICAgbGV0IHhtbHR2ID0gbmV3IFhNTFRWRmlsZSgpOw0KICAgIGxldCB4bWxGaWxlID0gZWxlbWVudC52YWx1ZTsNCiAgICBsZXQgdHZnSWQgPSBTRVJWRVJbInhlcGciXVsiZXBnTWFwcGluZyJdW2lkXVsidHZnLWlkIl07DQogICAgbGV0IHRkID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInBvcHVwLW1hcHBpbmciKS5wYXJlbnRFbGVtZW50Ow0KICAgIHRkLmlubmVySFRNTCA9ICIiOw0KICAgIGxldCBzZWxlY3QgPSB4bWx0di5nZXRQcm9ncmFtcyhlbGVtZW50LnZhbHVlLCB0dmdJZCk7DQogICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgibmFtZSIsICJ4LW1hcHBpbmciKTsNCiAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJpZCIsICJwb3B1cC1tYXBwaW5nIik7DQogICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCc7IGNoZWNrWG1sdHZDaGFubmVsKCciICsgaWQgKyAiJyx0aGlzLCciICsgeG1sRmlsZSArICInKTsiKTsNCiAgICBzZWxlY3QuY2xhc3NOYW1lID0gImNoYW5nZWQiOw0KICAgIHNvcnRTZWxlY3Qoc2VsZWN0KTsNCiAgICB0ZC5hcHBlbmRDaGlsZChzZWxlY3QpOw0KICAgIGNoZWNrWG1sdHZDaGFubmVsKGlkLCBzZWxlY3QsIHhtbEZpbGUpOw0KfQ0KZnVuY3Rpb24gY2hlY2tYbWx0dkNoYW5uZWwoaWQsIGVsZW1lbnQsIHhtbEZpbGUpIHsNCiAgICBsZXQgdmFsdWUgPSBlbGVtZW50LnZhbHVlOw0KICAgIGxldCBib29sOw0KICAgIGxldCBjaGVja2JveCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdhY3RpdmUnKTsNCiAgICBsZXQgY2hhbm5lbCA9IFNFUlZFUlsieGVwZyJdWyJlcGdNYXBwaW5nIl1baWRdOw0KICAgIGxldCB1cGRhdGVMb2dvOw0KICAgIGJvb2wgPSB2YWx1ZSAhPSAiLSI7DQogICAgY2hlY2tib3guY2hlY2tlZCA9IGJvb2w7DQogICAgY2hlY2tib3guY2xhc3NOYW1lID0gImNoYW5nZWQiOw0KICAgIGNvbnNvbGUubG9nKHhtbEZpbGUpOw0KICAgIC8vIFVwZGF0ZSBjaGFubmVsIGxvZ28NCiAgICAvKg0KICAgIHVwZGF0ZUxvZ28gPSAoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInVwZGF0ZS1pY29uIikgYXMgSFRNTElucHV0RWxlbWVudCkuY2hlY2tlZA0KICAgIGNvbnNvbGUubG9nKHVwZGF0ZUxvZ28pOw0KICAgICovDQogICAgaWYgKHhtbEZpbGUgIT0gInhUZVZlIER1bW15IiAmJiBib29sID09IHRydWUpIHsNCiAgICAgICAgLy8oZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInVwZGF0ZS1pY29uIikgYXMgSFRNTElucHV0RWxlbWVudCkuY2hlY2tlZCA9IHRydWU7DQogICAgICAgIC8vKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ1cGRhdGUtaWNvbiIpIGFzIEhUTUxJbnB1dEVsZW1lbnQpLmNsYXNzTmFtZSA9ICJjaGFuZ2VkIjsNCiAgICAgICAgY29uc29sZS5sb2coIklEIiwgaWQpOw0KICAgICAgICBjaGFuZ2VDaGFubmVsTG9nbyhpZCk7DQogICAgICAgIHJldHVybjsNCiAgICB9DQogICAgaWYgKHhtbEZpbGUgPT0gInhUZVZlIER1bW15Iikgew0KICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidXBkYXRlLWljb24iKS5jaGVja2VkID0gZmFsc2U7DQogICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ1cGRhdGUtaWNvbiIpLmNsYXNzTmFtZSA9ICJjaGFuZ2VkIjsNCiAgICB9DQogICAgcmV0dXJuOw0KfQ0KZnVuY3Rpb24gY2hhbmdlQ2hhbm5lbExvZ28oaWQpIHsNCiAgICBsZXQgdXBkYXRlTG9nbzsNCiAgICBsZXQgY2hhbm5lbCA9IFNFUlZFUlsieGVwZyJdWyJlcGdNYXBwaW5nIl1baWRdOw0KICAgIGxldCBmID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInBvcHVwLXhtbHR2Iik7DQogICAgbGV0IHhtbHR2RmlsZSA9IGYub3B0aW9uc1tmLnNlbGVjdGVkSW5kZXhdLnZhbHVlOw0KICAgIGxldCBtID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInBvcHVwLW1hcHBpbmciKTsNCiAgICBsZXQgeE1hcHBpbmcgPSBtLm9wdGlvbnNbbS5zZWxlY3RlZEluZGV4XS52YWx1ZTsNCiAgICBsZXQgeG1sdHZMb2dvID0gU0VSVkVSWyJ4ZXBnIl1bInhtbHR2TWFwIl1beG1sdHZGaWxlXVt4TWFwcGluZ11bImljb24iXTsNCiAgICB1cGRhdGVMb2dvID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInVwZGF0ZS1pY29uIikuY2hlY2tlZDsNCiAgICBpZiAodXBkYXRlTG9nbyA9PSB0cnVlICYmIHhtbHR2RmlsZSAhPSAieFRlVmUgRHVtbXkiKSB7DQogICAgICAgIGlmIChTRVJWRVJbInhlcGciXVsieG1sdHZNYXAiXVt4bWx0dkZpbGVdLmhhc093blByb3BlcnR5KHhNYXBwaW5nKSkgew0KICAgICAgICAgICAgdmFyIGxvZ28gPSB4bWx0dkxvZ287DQogICAgICAgIH0NCiAgICAgICAgZWxzZSB7DQogICAgICAgICAgICBsb2dvID0gY2hhbm5lbFsidHZnLWxvZ28iXTsNCiAgICAgICAgfQ0KICAgICAgICB2YXIgbG9nb0lucHV0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNoYW5uZWwtaWNvbiIpOw0KICAgICAgICBsb2dvSW5wdXQudmFsdWUgPSBsb2dvOw0KICAgICAgICBpZiAoQlVMS19FRElUID09IGZhbHNlKSB7DQogICAgICAgICAgICBsb2dvSW5wdXQuY2xhc3NOYW1lID0gImNoYW5nZWQiOw0KICAgICAgICB9DQogICAgfQ0KfQ0KZnVuY3Rpb24gc2F2ZVBvcHVwRGF0YShkYXRhVHlwZSwgaWQsIHJlbW92ZSwgb3B0aW9uKSB7DQogICAgaWYgKGRhdGFUeXBlID09ICJtYXBwaW5nIikgew0KICAgICAgICBsZXQgZGF0YSA9IHt9Ow0KICAgICAgICBjb25zb2xlLmxvZygiU2F2ZSBtYXBwaW5nIGRhdGEiKTsNCiAgICAgICAgbGV0IGNtZCA9ICJzYXZlRXBnTWFwcGluZyI7DQogICAgICAgIGRhdGFbImVwZ01hcHBpbmciXSA9IFNFUlZFUlsieGVwZyJdWyJlcGdNYXBwaW5nIl07DQogICAgICAgIGNvbnNvbGUubG9nKCJTRU5EIFRPIFNFUlZFUiIpOw0KICAgICAgICBsZXQgc2VydmVyID0gbmV3IFNlcnZlcihjbWQpOw0KICAgICAgICBzZXJ2ZXIucmVxdWVzdChkYXRhKTsNCiAgICAgICAgZGVsZXRlIFVORE9bImVwZ01hcHBpbmciXTsNCiAgICAgICAgcmV0dXJuOw0KICAgIH0NCiAgICBjb25zb2xlLmxvZygiU2F2ZSBwb3B1cCBkYXRhIik7DQogICAgbGV0IGRpdiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJwb3B1cC1jdXN0b20iKTsNCiAgICBsZXQgaW5wdXRzID0gZGl2LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJUQUJMRSIpWzBdLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJJTlBVVCIpOw0KICAgIGxldCBzZWxlY3RzID0gZGl2LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJUQUJMRSIpWzBdLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJTRUxFQ1QiKTsNCiAgICBsZXQgaW5wdXQgPSB7fTsNCiAgICBsZXQgY29uZmlybU1zZzsNCiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHNlbGVjdHMubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgdmFyIG5hbWU7DQogICAgICAgIG5hbWUgPSBzZWxlY3RzW2ldLm5hbWU7DQogICAgICAgIHZhciB2YWx1ZSA9IHNlbGVjdHNbaV0udmFsdWU7DQogICAgICAgIHN3aXRjaCAobmFtZSkgew0KICAgICAgICAgICAgY2FzZSAidHVuZXIiOg0KICAgICAgICAgICAgICAgIGlucHV0W25hbWVdID0gcGFyc2VJbnQodmFsdWUpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgICAgICBpbnB1dFtuYW1lXSA9IHZhbHVlOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICB9DQogICAgfQ0KICAgIGZvciAobGV0IGkgPSAwOyBpIDwgaW5wdXRzLmxlbmd0aDsgaSsrKSB7DQogICAgICAgIHN3aXRjaCAoaW5wdXRzW2ldLnR5cGUpIHsNCiAgICAgICAgICAgIGNhc2UgImNoZWNrYm94IjoNCiAgICAgICAgICAgICAgICBuYW1lID0gaW5wdXRzW2ldLm5hbWU7DQogICAgICAgICAgICAgICAgaW5wdXRbbmFtZV0gPSBpbnB1dHNbaV0uY2hlY2tlZDsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInRleHQiOg0KICAgICAgICAgICAgY2FzZSAiaGlkZGVuIjoNCiAgICAgICAgICAgIGNhc2UgInBhc3N3b3JkIjoNCiAgICAgICAgICAgICAgICBuYW1lID0gaW5wdXRzW2ldLm5hbWU7DQogICAgICAgICAgICAgICAgc3dpdGNoIChuYW1lKSB7DQogICAgICAgICAgICAgICAgICAgIGNhc2UgInR1bmVyIjoNCiAgICAgICAgICAgICAgICAgICAgICAgIGlucHV0W25hbWVdID0gcGFyc2VJbnQoaW5wdXRzW2ldLnZhbHVlKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgICAgICBkZWZhdWx0Og0KICAgICAgICAgICAgICAgICAgICAgICAgaW5wdXRbbmFtZV0gPSBpbnB1dHNbaV0udmFsdWU7DQogICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIH0NCiAgICB9DQogICAgbGV0IGRhdGEgPSB7fTsNCiAgICBsZXQgY21kOw0KICAgIGlmIChyZW1vdmUgPT0gdHJ1ZSkgew0KICAgICAgICBpbnB1dFsiZGVsZXRlIl0gPSB0cnVlOw0KICAgIH0NCiAgICBzd2l0Y2ggKGRhdGFUeXBlKSB7DQogICAgICAgIGNhc2UgInVzZXJzIjoNCiAgICAgICAgICAgIGNvbmZpcm1Nc2cgPSAiRGVsZXRlIHRoaXMgdXNlcj8iOw0KICAgICAgICAgICAgaWYgKGlkID09ICItIikgew0KICAgICAgICAgICAgICAgIGNtZCA9ICJzYXZlTmV3VXNlciI7DQogICAgICAgICAgICAgICAgZGF0YVsidXNlckRhdGEiXSA9IGlucHV0Ow0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgZWxzZSB7DQogICAgICAgICAgICAgICAgY21kID0gInNhdmVVc2VyRGF0YSI7DQogICAgICAgICAgICAgICAgbGV0IGQgPSB7fTsNCiAgICAgICAgICAgICAgICBkW2lkXSA9IGlucHV0Ow0KICAgICAgICAgICAgICAgIGRhdGFbInVzZXJEYXRhIl0gPSBkOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGNhc2UgIm0zdSI6DQogICAgICAgICAgICBjb25maXJtTXNnID0gIkRlbGV0ZSB0aGlzIHBsYXlsaXN0PyI7DQogICAgICAgICAgICBzd2l0Y2ggKG9wdGlvbikgew0KICAgICAgICAgICAgICAgIC8vIFBvcHVwOiBTYXZlDQogICAgICAgICAgICAgICAgY2FzZSAwOg0KICAgICAgICAgICAgICAgICAgICBjbWQgPSAic2F2ZUZpbGVzTTNVIjsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgLy8gUG9wdXA6IFVwZGF0ZQ0KICAgICAgICAgICAgICAgIGNhc2UgMToNCiAgICAgICAgICAgICAgICAgICAgY21kID0gInVwZGF0ZUZpbGVNM1UiOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGRhdGFbImZpbGVzIl0gPSB7fTsNCiAgICAgICAgICAgIGRhdGFbImZpbGVzIl1bZGF0YVR5cGVdID0ge307DQogICAgICAgICAgICBkYXRhWyJmaWxlcyJdW2RhdGFUeXBlXVtpZF0gPSBpbnB1dDsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJoZGhyIjoNCiAgICAgICAgICAgIGNvbmZpcm1Nc2cgPSAiRGVsZXRlIHRoaXMgSERIb21lUnVuIHR1bmVyPyI7DQogICAgICAgICAgICBzd2l0Y2ggKG9wdGlvbikgew0KICAgICAgICAgICAgICAgIC8vIFBvcHVwOiBTYXZlDQogICAgICAgICAgICAgICAgY2FzZSAwOg0KICAgICAgICAgICAgICAgICAgICBjbWQgPSAic2F2ZUZpbGVzSERIUiI7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIC8vIFBvcHVwOiBVcGRhdGUNCiAgICAgICAgICAgICAgICBjYXNlIDE6DQogICAgICAgICAgICAgICAgICAgIGNtZCA9ICJ1cGRhdGVGaWxlSERIUiI7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgZGF0YVsiZmlsZXMiXSA9IHt9Ow0KICAgICAgICAgICAgZGF0YVsiZmlsZXMiXVtkYXRhVHlwZV0gPSB7fTsNCiAgICAgICAgICAgIGRhdGFbImZpbGVzIl1bZGF0YVR5cGVdW2lkXSA9IGlucHV0Ow0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGNhc2UgInhtbHR2IjoNCiAgICAgICAgICAgIGNvbmZpcm1Nc2cgPSAiRGVsZXRlIHRoaXMgWE1MVFYgZmlsZT8iOw0KICAgICAgICAgICAgc3dpdGNoIChvcHRpb24pIHsNCiAgICAgICAgICAgICAgICAvLyBQb3B1cDogU2F2ZQ0KICAgICAgICAgICAgICAgIGNhc2UgMDoNCiAgICAgICAgICAgICAgICAgICAgY21kID0gInNhdmVGaWxlc1hNTFRWIjsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgLy8gUG9wdXA6IFVwZGF0ZQ0KICAgICAgICAgICAgICAgIGNhc2UgMToNCiAgICAgICAgICAgICAgICAgICAgY21kID0gInVwZGF0ZUZpbGVYTUxUViI7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgZGF0YVsiZmlsZXMiXSA9IHt9Ow0KICAgICAgICAgICAgZGF0YVsiZmlsZXMiXVtkYXRhVHlwZV0gPSB7fTsNCiAgICAgICAgICAgIGRhdGFbImZpbGVzIl1bZGF0YVR5cGVdW2lkXSA9IGlucHV0Ow0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGNhc2UgImZpbHRlciI6DQogICAgICAgICAgICBjb25maXJtTXNnID0gIkRlbGV0ZSB0aGlzIGZpbHRlcj8iOw0KICAgICAgICAgICAgY21kID0gInNhdmVGaWx0ZXIiOw0KICAgICAgICAgICAgZGF0YVsiZmlsdGVyIl0gPSB7fTsNCiAgICAgICAgICAgIGRhdGFbImZpbHRlciJdW2lkXSA9IGlucHV0Ow0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICBjb25zb2xlLmxvZyhkYXRhVHlwZSwgaWQpOw0KICAgICAgICAgICAgcmV0dXJuOw0KICAgIH0NCiAgICBpZiAocmVtb3ZlID09IHRydWUpIHsNCiAgICAgICAgaWYgKCFjb25maXJtKGNvbmZpcm1Nc2cpKSB7DQogICAgICAgICAgICBzaG93RWxlbWVudCgicG9wdXAiLCBmYWxzZSk7DQogICAgICAgICAgICByZXR1cm47DQogICAgICAgIH0NCiAgICB9DQogICAgY29uc29sZS5sb2coIlNFTkQgVE8gU0VSVkVSIik7DQogICAgY29uc29sZS5sb2coZGF0YSk7DQogICAgbGV0IHNlcnZlciA9IG5ldyBTZXJ2ZXIoY21kKTsNCiAgICBzZXJ2ZXIucmVxdWVzdChkYXRhKTsNCn0NCmZ1bmN0aW9uIGRvbmVQb3B1cERhdGEoZGF0YVR5cGUsIGlkc1N0cikgew0KICAgIGxldCBpZHMgPSBpZHNTdHIuc3BsaXQoJywnKTsNCiAgICBsZXQgZGl2ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInBvcHVwLWN1c3RvbSIpOw0KICAgIGxldCBpbnB1dHMgPSBkaXYuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSgiY2hhbmdlZCIpOw0KICAgIGlkcy5mb3JFYWNoKGlkID0+IHsNCiAgICAgICAgbGV0IGlucHV0Ow0KICAgICAgICBpbnB1dCA9IFNFUlZFUlsieGVwZyJdWyJlcGdNYXBwaW5nIl1baWRdOw0KICAgICAgICBjb25zb2xlLmxvZyhpbnB1dCk7DQogICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgaW5wdXRzLmxlbmd0aDsgaSsrKSB7DQogICAgICAgICAgICBsZXQgbmFtZTsNCiAgICAgICAgICAgIGxldCB2YWx1ZTsNCiAgICAgICAgICAgIHN3aXRjaCAoaW5wdXRzW2ldLnRhZ05hbWUpIHsNCiAgICAgICAgICAgICAgICBjYXNlICJJTlBVVCI6DQogICAgICAgICAgICAgICAgICAgIHN3aXRjaCAoaW5wdXRzW2ldLnR5cGUpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgImNoZWNrYm94IjoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lID0gaW5wdXRzW2ldLm5hbWU7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSBpbnB1dHNbaV0uY2hlY2tlZDsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnB1dFtuYW1lXSA9IHZhbHVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAidGV4dCI6DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZSA9IGlucHV0c1tpXS5uYW1lOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlID0gaW5wdXRzW2ldLnZhbHVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlucHV0W25hbWVdID0gdmFsdWU7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAiU0VMRUNUIjoNCiAgICAgICAgICAgICAgICAgICAgbmFtZSA9IGlucHV0c1tpXS5uYW1lOw0KICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IGlucHV0c1tpXS52YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgaW5wdXRbbmFtZV0gPSB2YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBzd2l0Y2ggKG5hbWUpIHsNCiAgICAgICAgICAgICAgICBjYXNlICJ0dmctbG9nbyI6DQogICAgICAgICAgICAgICAgICAgIC8vKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5jaGlsZE5vZGVzWzJdLmZpcnN0Q2hpbGQgYXMgSFRNTEVsZW1lbnQpLnNldEF0dHJpYnV0ZSgic3JjIiwgdmFsdWUpDQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgIngtbmFtZSI6DQogICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5jaGlsZE5vZGVzWzNdLmZpcnN0Q2hpbGQuaW5uZXJIVE1MID0gdmFsdWU7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgIngtY2F0ZWdvcnkiOg0KICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkuY2hpbGROb2Rlc1szXS5maXJzdENoaWxkLmNsYXNzTmFtZSA9IHZhbHVlOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBjYXNlICJ4LWdyb3VwLXRpdGxlIjoNCiAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpLmNoaWxkTm9kZXNbNV0uZmlyc3RDaGlsZC5pbm5lckhUTUwgPSB2YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAieC14bWx0di1maWxlIjoNCiAgICAgICAgICAgICAgICAgICAgaWYgKHZhbHVlICE9ICJ4VGVWZSBEdW1teSIgJiYgdmFsdWUgIT0gIi0iKSB7DQogICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IGdldFZhbHVlRnJvbVByb3ZpZGVyRmlsZSh2YWx1ZSwgInhtbHR2IiwgIm5hbWUiKTsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBpZiAodmFsdWUgPT0gIi0iKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBpbnB1dFsieC1hY3RpdmUiXSA9IGZhbHNlOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5jaGlsZE5vZGVzWzZdLmZpcnN0Q2hpbGQuaW5uZXJIVE1MID0gdmFsdWU7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgIngtbWFwcGluZyI6DQogICAgICAgICAgICAgICAgICAgIGlmICh2YWx1ZSA9PSAiLSIpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGlucHV0WyJ4LWFjdGl2ZSJdID0gZmFsc2U7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpLmNoaWxkTm9kZXNbN10uZmlyc3RDaGlsZC5pbm5lckhUTUwgPSB2YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAieC10aW1lc2hpZnQiOg0KICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkuY2hpbGROb2Rlc1s4XS5maXJzdENoaWxkLmlubmVySFRNTCA9IHZhbHVlOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBkZWZhdWx0Og0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgY3JlYXRlU2VhcmNoT2JqKCk7DQogICAgICAgICAgICBzZWFyY2hJbk1hcHBpbmcoKTsNCiAgICAgICAgfQ0KICAgICAgICBpZiAoaW5wdXRbIngtYWN0aXZlIl0gPT0gZmFsc2UpIHsNCiAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5jbGFzc05hbWUgPSAibm90QWN0aXZlRVBHIjsNCiAgICAgICAgfQ0KICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5jbGFzc05hbWUgPSAiYWN0aXZlRVBHIjsNCiAgICAgICAgfQ0KICAgICAgICBjb25zb2xlLmxvZyhpbnB1dFsidHZnLWxvZ28iXSk7DQogICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5jaGlsZE5vZGVzWzJdLmZpcnN0Q2hpbGQuc2V0QXR0cmlidXRlKCJzcmMiLCBpbnB1dFsidHZnLWxvZ28iXSk7DQogICAgfSk7DQogICAgc2hvd0VsZW1lbnQoInBvcHVwIiwgZmFsc2UpOw0KICAgIHJldHVybjsNCn0NCmZ1bmN0aW9uIHNob3dQcmV2aWV3KGVsZW1lbnQpIHsNCiAgICBsZXQgZGl2ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm15U3RyZWFtc0JveCIpOw0KICAgIHN3aXRjaCAoZWxlbWVudCkgew0KICAgICAgICBjYXNlIGZhbHNlOg0KICAgICAgICAgICAgZGl2LmNsYXNzTmFtZSA9ICJub3RWaXNpYmxlIjsNCiAgICAgICAgICAgIHJldHVybjsNCiAgICB9DQogICAgbGV0IHN0cmVhbXMgPSBbImFjdGl2ZVN0cmVhbXMiLCAiaW5hY3RpdmVTdHJlYW1zIl07DQogICAgc3RyZWFtcy5mb3JFYWNoKHByZXZpZXcgPT4gew0KICAgICAgICBsZXQgdGFibGUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChwcmV2aWV3KTsNCiAgICAgICAgdGFibGUuaW5uZXJIVE1MID0gIiI7DQogICAgICAgIGxldCBvYmogPSBTRVJWRVJbImRhdGEiXVsiU3RyZWFtUHJldmlld1VJIl1bcHJldmlld107DQogICAgICAgIG9iai5mb3JFYWNoKGNoYW5uZWwgPT4gew0KICAgICAgICAgICAgbGV0IHRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVFIiKTsNCiAgICAgICAgICAgIGxldCB0ZEtleSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICBsZXQgdGRWYWwgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgdGRLZXkuY2xhc3NOYW1lID0gInRkS2V5IjsNCiAgICAgICAgICAgIHRkVmFsLmNsYXNzTmFtZSA9ICJ0ZFZhbCI7DQogICAgICAgICAgICBzd2l0Y2ggKHByZXZpZXcpIHsNCiAgICAgICAgICAgICAgICBjYXNlICJhY3RpdmVTdHJlYW1zIjoNCiAgICAgICAgICAgICAgICAgICAgdGRLZXkuaW5uZXJUZXh0ID0gIkNoYW5uZWw6ICgrKSI7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgImluYWN0aXZlU3RyZWFtcyI6DQogICAgICAgICAgICAgICAgICAgIHRkS2V5LmlubmVyVGV4dCA9ICJDaGFubmVsOiAoLSkiOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIHRkVmFsLmlubmVyVGV4dCA9IGNoYW5uZWw7DQogICAgICAgICAgICB0ci5hcHBlbmRDaGlsZCh0ZEtleSk7DQogICAgICAgICAgICB0ci5hcHBlbmRDaGlsZCh0ZFZhbCk7DQogICAgICAgICAgICB0YWJsZS5hcHBlbmRDaGlsZCh0cik7DQogICAgICAgIH0pOw0KICAgIH0pOw0KICAgIHNob3dFbGVtZW50KCJsb2FkaW5nIiwgZmFsc2UpOw0KICAgIGRpdi5jbGFzc05hbWUgPSAidmlzaWJsZSI7DQogICAgcmV0dXJuOw0KfQ0K" webUI["html/js/network_ts.js"] = "Y2xhc3MgU2VydmVyIHsNCiAgICBjb25zdHJ1Y3RvcihjbWQpIHsNCiAgICAgICAgdGhpcy5jbWQgPSBjbWQ7DQogICAgfQ0KICAgIHJlcXVlc3QoZGF0YSkgew0KICAgICAgICBpZiAoU0VSVkVSX0NPTk5FQ1RJT04gPT0gdHJ1ZSkgew0KICAgICAgICAgICAgcmV0dXJuOw0KICAgICAgICB9DQogICAgICAgIFNFUlZFUl9DT05ORUNUSU9OID0gdHJ1ZTsNCiAgICAgICAgY29uc29sZS5sb2coZGF0YSk7DQogICAgICAgIGlmICh0aGlzLmNtZCAhPSAidXBkYXRlTG9nIikgew0KICAgICAgICAgICAgc2hvd0VsZW1lbnQoImxvYWRpbmciLCB0cnVlKTsNCiAgICAgICAgICAgIFVORE8gPSBuZXcgT2JqZWN0KCk7DQogICAgICAgIH0NCiAgICAgICAgc3dpdGNoICh3aW5kb3cubG9jYXRpb24ucHJvdG9jb2wpIHsNCiAgICAgICAgICAgIGNhc2UgImh0dHA6IjoNCiAgICAgICAgICAgICAgICB0aGlzLnByb3RvY29sID0gIndzOi8vIjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImh0dHBzOiI6DQogICAgICAgICAgICAgICAgdGhpcy5wcm90b2NvbCA9ICJ3c3M6Ly8iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICB9DQogICAgICAgIHZhciB1cmwgPSB0aGlzLnByb3RvY29sICsgd2luZG93LmxvY2F0aW9uLmhvc3RuYW1lICsgIjoiICsgd2luZG93LmxvY2F0aW9uLnBvcnQgKyAiL2RhdGEvIiArICI/VG9rZW49IiArIGdldENvb2tpZSgiVG9rZW4iKTsNCiAgICAgICAgZGF0YVsiY21kIl0gPSB0aGlzLmNtZDsNCiAgICAgICAgdmFyIHdzID0gbmV3IFdlYlNvY2tldCh1cmwpOw0KICAgICAgICB3cy5vbm9wZW4gPSBmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICBXU19BVkFJTEFCTEUgPSB0cnVlOw0KICAgICAgICAgICAgY29uc29sZS5sb2coIlJFUVVFU1QgKEpTKToiKTsNCiAgICAgICAgICAgIGNvbnNvbGUubG9nKGRhdGEpOw0KICAgICAgICAgICAgY29uc29sZS5sb2coIlJFUVVFU1Q6IChKU09OKSIpOw0KICAgICAgICAgICAgY29uc29sZS5sb2coSlNPTi5zdHJpbmdpZnkoZGF0YSkpOw0KICAgICAgICAgICAgdGhpcy5zZW5kKEpTT04uc3RyaW5naWZ5KGRhdGEpKTsNCiAgICAgICAgfTsNCiAgICAgICAgd3Mub25lcnJvciA9IGZ1bmN0aW9uIChlKSB7DQogICAgICAgICAgICBjb25zb2xlLmxvZygiTm8gd2Vic29ja2V0IGNvbm5lY3Rpb24gdG8geFRlVmUgY291bGQgYmUgZXN0YWJsaXNoZWQuIENoZWNrIHlvdXIgbmV0d29yayBjb25maWd1cmF0aW9uLiIpOw0KICAgICAgICAgICAgU0VSVkVSX0NPTk5FQ1RJT04gPSBmYWxzZTsNCiAgICAgICAgICAgIGlmIChXU19BVkFJTEFCTEUgPT0gZmFsc2UpIHsNCiAgICAgICAgICAgICAgICBhbGVydCgiTm8gd2Vic29ja2V0IGNvbm5lY3Rpb24gdG8geFRlVmUgY291bGQgYmUgZXN0YWJsaXNoZWQuIENoZWNrIHlvdXIgbmV0d29yayBjb25maWd1cmF0aW9uLiIpOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9Ow0KICAgICAgICB3cy5vbm1lc3NhZ2UgPSBmdW5jdGlvbiAoZSkgew0KICAgICAgICAgICAgU0VSVkVSX0NPTk5FQ1RJT04gPSBmYWxzZTsNCiAgICAgICAgICAgIHNob3dFbGVtZW50KCJsb2FkaW5nIiwgZmFsc2UpOw0KICAgICAgICAgICAgY29uc29sZS5sb2coIlJFU1BPTlNFOiIpOw0KICAgICAgICAgICAgdmFyIHJlc3BvbnNlID0gSlNPTi5wYXJzZShlLmRhdGEpOw0KICAgICAgICAgICAgY29uc29sZS5sb2cocmVzcG9uc2UpOw0KICAgICAgICAgICAgaWYgKHJlc3BvbnNlLmhhc093blByb3BlcnR5KCJ0b2tlbiIpKSB7DQogICAgICAgICAgICAgICAgZG9jdW1lbnQuY29va2llID0gIlRva2VuPSIgKyByZXNwb25zZVsidG9rZW4iXTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGlmIChyZXNwb25zZVsic3RhdHVzIl0gPT0gZmFsc2UpIHsNCiAgICAgICAgICAgICAgICBhbGVydChyZXNwb25zZVsiZXJyIl0pOw0KICAgICAgICAgICAgICAgIGlmIChyZXNwb25zZS5oYXNPd25Qcm9wZXJ0eSgicmVsb2FkIikpIHsNCiAgICAgICAgICAgICAgICAgICAgbG9jYXRpb24ucmVsb2FkKCk7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIHJldHVybjsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGlmIChyZXNwb25zZS5oYXNPd25Qcm9wZXJ0eSgiYWxlcnQiKSkgew0KICAgICAgICAgICAgICAgIGFsZXJ0KHJlc3BvbnNlWyJhbGVydCJdKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGlmIChyZXNwb25zZS5oYXNPd25Qcm9wZXJ0eSgibG9nb1VSTCIpKSB7DQogICAgICAgICAgICAgICAgdmFyIGRpdiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjaGFubmVsLWljb24iKTsNCiAgICAgICAgICAgICAgICBkaXYudmFsdWUgPSByZXNwb25zZVsibG9nb1VSTCJdOw0KICAgICAgICAgICAgICAgIGRpdi5jbGFzc05hbWUgPSAiY2hhbmdlZCI7DQogICAgICAgICAgICAgICAgcmV0dXJuOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgc3dpdGNoIChkYXRhWyJjbWQiXSkgew0KICAgICAgICAgICAgICAgIGNhc2UgInVwZGF0ZUxvZyI6DQogICAgICAgICAgICAgICAgICAgIFNFUlZFUlsibG9nIl0gPSByZXNwb25zZVsibG9nIl07DQogICAgICAgICAgICAgICAgICAgIGlmIChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29udGVudF9sb2ciKSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgc2hvd0xvZ3MoZmFsc2UpOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIHJldHVybjsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgICAgICAgICAgU0VSVkVSID0gbmV3IE9iamVjdCgpOw0KICAgICAgICAgICAgICAgICAgICBTRVJWRVIgPSByZXNwb25zZTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBpZiAocmVzcG9uc2UuaGFzT3duUHJvcGVydHkoIm9wZW5NZW51IikpIHsNCiAgICAgICAgICAgICAgICB2YXIgbWVudSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHJlc3BvbnNlWyJvcGVuTWVudSJdKTsNCiAgICAgICAgICAgICAgICBtZW51LmNsaWNrKCk7DQogICAgICAgICAgICAgICAgc2hvd0VsZW1lbnQoInBvcHVwIiwgZmFsc2UpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgaWYgKHJlc3BvbnNlLmhhc093blByb3BlcnR5KCJvcGVuTGluayIpKSB7DQogICAgICAgICAgICAgICAgd2luZG93LmxvY2F0aW9uID0gcmVzcG9uc2VbIm9wZW5MaW5rIl07DQogICAgICAgICAgICB9DQogICAgICAgICAgICBpZiAocmVzcG9uc2UuaGFzT3duUHJvcGVydHkoInJlbG9hZCIpKSB7DQogICAgICAgICAgICAgICAgbG9jYXRpb24ucmVsb2FkKCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBpZiAocmVzcG9uc2UuaGFzT3duUHJvcGVydHkoIndpemFyZCIpKSB7DQogICAgICAgICAgICAgICAgY3JlYXRlTGF5b3V0KCk7DQogICAgICAgICAgICAgICAgY29uZmlndXJhdGlvbldpemFyZFtyZXNwb25zZVsid2l6YXJkIl1dLmNyZWF0ZVdpemFyZCgpOw0KICAgICAgICAgICAgICAgIHJldHVybjsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGNyZWF0ZUxheW91dCgpOw0KICAgICAgICB9Ow0KICAgIH0NCn0NCmZ1bmN0aW9uIGdldENvb2tpZShuYW1lKSB7DQogICAgdmFyIHZhbHVlID0gIjsgIiArIGRvY3VtZW50LmNvb2tpZTsNCiAgICB2YXIgcGFydHMgPSB2YWx1ZS5zcGxpdCgiOyAiICsgbmFtZSArICI9Iik7DQogICAgaWYgKHBhcnRzLmxlbmd0aCA9PSAyKQ0KICAgICAgICByZXR1cm4gcGFydHMucG9wKCkuc3BsaXQoIjsiKS5zaGlmdCgpOw0KfQ0K" webUI["html/js/settings_ts.js"] = "Y2xhc3MgU2V0dGluZ3NDYXRlZ29yeSB7DQogICAgY29uc3RydWN0b3IoKSB7DQogICAgICAgIHRoaXMuRG9jdW1lbnRJRCA9ICJjb250ZW50X3NldHRpbmdzIjsNCiAgICB9DQogICAgY3JlYXRlQ2F0ZWdvcnlIZWFkbGluZSh2YWx1ZSkgew0KICAgICAgICB2YXIgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIkg0Iik7DQogICAgICAgIGVsZW1lbnQuaW5uZXJIVE1MID0gdmFsdWU7DQogICAgICAgIHJldHVybiBlbGVtZW50Ow0KICAgIH0NCiAgICBjcmVhdGVIUigpIHsNCiAgICAgICAgdmFyIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJIUiIpOw0KICAgICAgICByZXR1cm4gZWxlbWVudDsNCiAgICB9DQogICAgY3JlYXRlU2V0dGluZ3Moc2V0dGluZ3NLZXkpIHsNCiAgICAgICAgdmFyIHNldHRpbmcgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJUUiIpOw0KICAgICAgICB2YXIgY29udGVudCA9IG5ldyBQb3B1cENvbnRlbnQoKTsNCiAgICAgICAgdmFyIGRhdGEgPSBTRVJWRVJbInNldHRpbmdzIl1bc2V0dGluZ3NLZXldOw0KICAgICAgICBzd2l0Y2ggKHNldHRpbmdzS2V5KSB7DQogICAgICAgICAgICAvLyBUZXh0IGlucHV0cw0KICAgICAgICAgICAgY2FzZSAidXBkYXRlIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLnVwZGF0ZS50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsICJ1cGRhdGUiLCBkYXRhLnRvU3RyaW5nKCkpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3suc2V0dGluZ3MudXBkYXRlLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJiYWNrdXAucGF0aCI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5iYWNrdXBQYXRoLnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgImJhY2t1cC5wYXRoIiwgZGF0YSk7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5zZXR0aW5ncy5iYWNrdXBQYXRoLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ0ZW1wLnBhdGgiOg0KICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MudGVtcFBhdGgudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCAidGVtcC5wYXRoIiwgZGF0YSk7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5zZXR0aW5ncy50bXBQYXRoLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ1c2VyLmFnZW50IjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLnVzZXJBZ2VudC50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsICJ1c2VyLmFnZW50IiwgZGF0YSk7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5zZXR0aW5ncy51c2VyQWdlbnQucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImJ1ZmZlci50aW1lb3V0IjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmJ1ZmZlclRpbWVvdXQudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCAiYnVmZmVyLnRpbWVvdXQiLCBkYXRhKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnNldHRpbmdzLmJ1ZmZlclRpbWVvdXQucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImZmbXBlZy5wYXRoIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmZmbXBlZ1BhdGgudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCAiZmZtcGVnLnBhdGgiLCBkYXRhKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnNldHRpbmdzLmZmbXBlZ1BhdGgucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImZmbXBlZy5vcHRpb25zIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmZmbXBlZ09wdGlvbnMudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCAiZmZtcGVnLm9wdGlvbnMiLCBkYXRhKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnNldHRpbmdzLmZmbXBlZ09wdGlvbnMucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInZsYy5wYXRoIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLnZsY1BhdGgudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCAidmxjLnBhdGgiLCBkYXRhKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnNldHRpbmdzLnZsY1BhdGgucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInZsYy5vcHRpb25zIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLnZsY09wdGlvbnMudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCAidmxjLm9wdGlvbnMiLCBkYXRhKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnNldHRpbmdzLnZsY09wdGlvbnMucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIC8vIENoZWNrYm94ZXMNCiAgICAgICAgICAgIGNhc2UgImF1dGhlbnRpY2F0aW9uLndlYiI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5hdXRoZW50aWNhdGlvbldFQi50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChzZXR0aW5nc0tleSk7DQogICAgICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGE7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiYXV0aGVudGljYXRpb24ucG1zIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmF1dGhlbnRpY2F0aW9uUE1TLnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KHNldHRpbmdzS2V5KTsNCiAgICAgICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJhdXRoZW50aWNhdGlvbi5tM3UiOg0KICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MuYXV0aGVudGljYXRpb25NM1UudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goc2V0dGluZ3NLZXkpOw0KICAgICAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImF1dGhlbnRpY2F0aW9uLnhtbCI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5hdXRoZW50aWNhdGlvblhNTC50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChzZXR0aW5nc0tleSk7DQogICAgICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGE7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiYXV0aGVudGljYXRpb24uYXBpIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmF1dGhlbnRpY2F0aW9uQVBJLnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KHNldHRpbmdzS2V5KTsNCiAgICAgICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJmaWxlcy51cGRhdGUiOg0KICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MuZmlsZXNVcGRhdGUudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goc2V0dGluZ3NLZXkpOw0KICAgICAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImNhY2hlLmltYWdlcyI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5jYWNoZUltYWdlcy50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChzZXR0aW5nc0tleSk7DQogICAgICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGE7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAieGVwZy5yZXBsYWNlLm1pc3NpbmcuaW1hZ2VzIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLnJlcGxhY2VFbXB0eUltYWdlcy50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChzZXR0aW5nc0tleSk7DQogICAgICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGE7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAieHRldmVBdXRvVXBkYXRlIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLnh0ZXZlQXV0b1VwZGF0ZS50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChzZXR0aW5nc0tleSk7DQogICAgICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGE7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiYXBpIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmFwaS50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChzZXR0aW5nc0tleSk7DQogICAgICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGE7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgLy8gU2VsZWN0DQogICAgICAgICAgICBjYXNlICJ0dW5lciI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy50dW5lci50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIHRleHQgPSBuZXcgQXJyYXkoKTsNCiAgICAgICAgICAgICAgICB2YXIgdmFsdWVzID0gbmV3IEFycmF5KCk7DQogICAgICAgICAgICAgICAgZm9yICh2YXIgaSA9IDE7IGkgPD0gMTAwOyBpKyspIHsNCiAgICAgICAgICAgICAgICAgICAgdGV4dC5wdXNoKGkpOw0KICAgICAgICAgICAgICAgICAgICB2YWx1ZXMucHVzaChpKTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgdmFyIHNlbGVjdCA9IGNvbnRlbnQuY3JlYXRlU2VsZWN0KHRleHQsIHZhbHVlcywgZGF0YSwgc2V0dGluZ3NLZXkpOw0KICAgICAgICAgICAgICAgIHNlbGVjdC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChzZWxlY3QpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiZXBnU291cmNlIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmVwZ1NvdXJjZS50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIHRleHQgPSBbIlBNUyIsICJYRVBHIl07DQogICAgICAgICAgICAgICAgdmFyIHZhbHVlcyA9IFsiUE1TIiwgIlhFUEciXTsNCiAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCBkYXRhLCBzZXR0aW5nc0tleSk7DQogICAgICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKHNlbGVjdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJiYWNrdXAua2VlcCI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5iYWNrdXBLZWVwLnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgdGV4dCA9IFsiNSIsICIxMCIsICIyMCIsICIzMCIsICI0MCIsICI1MCJdOw0KICAgICAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBbIjUiLCAiMTAiLCAiMjAiLCAiMzAiLCAiNDAiLCAiNTAiXTsNCiAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCBkYXRhLCBzZXR0aW5nc0tleSk7DQogICAgICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKHNlbGVjdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJidWZmZXIuc2l6ZS5rYiI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5idWZmZXJTaXplLnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgdGV4dCA9IFsiMC41IE1CIiwgIjEgTUIiLCAiMiBNQiIsICIzIE1CIiwgIjQgTUIiLCAiNSBNQiIsICI2IE1CIiwgIjcgTUIiLCAiOCBNQiJdOw0KICAgICAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBbIjUxMiIsICIxMDI0IiwgIjIwNDgiLCAiMzA3MiIsICI0MDk2IiwgIjUxMjAiLCAiNjE0NCIsICI3MTY4IiwgIjgxOTIiXTsNCiAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCBkYXRhLCBzZXR0aW5nc0tleSk7DQogICAgICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKHNlbGVjdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJidWZmZXIiOg0KICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3Muc3RyZWFtQnVmZmVyaW5nLnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgdGV4dCA9IFsie3suc2V0dGluZ3Muc3RyZWFtQnVmZmVyaW5nLmluZm9fZmFsc2V9fSIsICJ4VGVWZTogKHt7LnNldHRpbmdzLnN0cmVhbUJ1ZmZlcmluZy5pbmZvX3h0ZXZlfX0pIiwgIkZGbXBlZzogKHt7LnNldHRpbmdzLnN0cmVhbUJ1ZmZlcmluZy5pbmZvX2ZmbXBlZ319KSIsICJWTEM6ICh7ey5zZXR0aW5ncy5zdHJlYW1CdWZmZXJpbmcuaW5mb192bGN9fSkiXTsNCiAgICAgICAgICAgICAgICB2YXIgdmFsdWVzID0gWyItIiwgInh0ZXZlIiwgImZmbXBlZyIsICJ2bGMiXTsNCiAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCBkYXRhLCBzZXR0aW5nc0tleSk7DQogICAgICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKHNlbGVjdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ1ZHB4eSI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy51ZHB4eS50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsICJ1ZHB4eSIsIGRhdGEpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3suc2V0dGluZ3MudWRweHkucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgfQ0KICAgICAgICByZXR1cm4gc2V0dGluZzsNCiAgICB9DQogICAgY3JlYXRlRGVzY3JpcHRpb24oc2V0dGluZ3NLZXkpIHsNCiAgICAgICAgdmFyIGRlc2NyaXB0aW9uID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVFIiKTsNCiAgICAgICAgdmFyIHRleHQ7DQogICAgICAgIHN3aXRjaCAoc2V0dGluZ3NLZXkpIHsNCiAgICAgICAgICAgIGNhc2UgImF1dGhlbnRpY2F0aW9uLndlYiI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5hdXRoZW50aWNhdGlvbldFQi5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImF1dGhlbnRpY2F0aW9uLm0zdSI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5hdXRoZW50aWNhdGlvbk0zVS5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImF1dGhlbnRpY2F0aW9uLnBtcyI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5hdXRoZW50aWNhdGlvblBNUy5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImF1dGhlbnRpY2F0aW9uLnhtbCI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5hdXRoZW50aWNhdGlvblhNTC5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImF1dGhlbnRpY2F0aW9uLmFwaSI6DQogICAgICAgICAgICAgICAgaWYgKFNFUlZFUlsic2V0dGluZ3MiXVsiYXV0aGVudGljYXRpb24ud2ViIl0gPT0gdHJ1ZSkgew0KICAgICAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLmF1dGhlbnRpY2F0aW9uQVBJLmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInh0ZXZlQXV0b1VwZGF0ZSI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy54dGV2ZUF1dG9VcGRhdGUuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJiYWNrdXAua2VlcCI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5iYWNrdXBLZWVwLmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiYmFja3VwLnBhdGgiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MuYmFja3VwUGF0aC5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInRlbXAucGF0aCI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy50ZW1wUGF0aC5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImJ1ZmZlciI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5zdHJlYW1CdWZmZXJpbmcuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJidWZmZXIuc2l6ZS5rYiI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5idWZmZXJTaXplLmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiYnVmZmVyLnRpbWVvdXQiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MuYnVmZmVyVGltZW91dC5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInVzZXIuYWdlbnQiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MudXNlckFnZW50LmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiZmZtcGVnLnBhdGgiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MuZmZtcGVnUGF0aC5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImZmbXBlZy5vcHRpb25zIjoNCiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLmZmbXBlZ09wdGlvbnMuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ2bGMucGF0aCI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy52bGNQYXRoLmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAidmxjLm9wdGlvbnMiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MudmxjT3B0aW9ucy5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImVwZ1NvdXJjZSI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5lcGdTb3VyY2UuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ0dW5lciI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy50dW5lci5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInVwZGF0ZSI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy51cGRhdGUuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJhcGkiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MuYXBpLmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiZmlsZXMudXBkYXRlIjoNCiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLmZpbGVzVXBkYXRlLmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiY2FjaGUuaW1hZ2VzIjoNCiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLmNhY2hlSW1hZ2VzLmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAieGVwZy5yZXBsYWNlLm1pc3NpbmcuaW1hZ2VzIjoNCiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLnJlcGxhY2VFbXB0eUltYWdlcy5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInVkcHh5IjoNCiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLnVkcHh5LmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgICAgICB0ZXh0ID0gIiI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIH0NCiAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAiIjsNCiAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICB2YXIgcHJlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiUFJFIik7DQogICAgICAgIHByZS5pbm5lckhUTUwgPSB0ZXh0Ow0KICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKHByZSk7DQogICAgICAgIGRlc2NyaXB0aW9uLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgIGRlc2NyaXB0aW9uLmFwcGVuZENoaWxkKHRkUmlnaHQpOw0KICAgICAgICByZXR1cm4gZGVzY3JpcHRpb247DQogICAgfQ0KfQ0KY2xhc3MgU2V0dGluZ3NDYXRlZ29yeUl0ZW0gZXh0ZW5kcyBTZXR0aW5nc0NhdGVnb3J5IHsNCiAgICBjb25zdHJ1Y3RvcihoZWFkbGluZSwgc2V0dGluZ3NLZXlzKSB7DQogICAgICAgIHN1cGVyKCk7DQogICAgICAgIHRoaXMuaGVhZGxpbmUgPSBoZWFkbGluZTsNCiAgICAgICAgdGhpcy5zZXR0aW5nc0tleXMgPSBzZXR0aW5nc0tleXM7DQogICAgfQ0KICAgIGNyZWF0ZUNhdGVnb3J5KCkgew0KICAgICAgICB2YXIgaGVhZGxpbmUgPSB0aGlzLmNyZWF0ZUNhdGVnb3J5SGVhZGxpbmUodGhpcy5oZWFkbGluZSk7DQogICAgICAgIHZhciBzZXR0aW5nc0tleXMgPSB0aGlzLnNldHRpbmdzS2V5czsNCiAgICAgICAgdmFyIGRvYyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHRoaXMuRG9jdW1lbnRJRCk7DQogICAgICAgIGRvYy5hcHBlbmRDaGlsZChoZWFkbGluZSk7DQogICAgICAgIC8vIENyZWF0ZSBhIHRhYmxlIGZvciB0aGUgY2F0ZWdvcnkNCiAgICAgICAgdmFyIHRhYmxlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEFCTEUiKTsNCiAgICAgICAgdmFyIGtleXMgPSBzZXR0aW5nc0tleXMuc3BsaXQoIiwiKTsNCiAgICAgICAga2V5cy5mb3JFYWNoKHNldHRpbmdzS2V5ID0+IHsNCiAgICAgICAgICAgIHN3aXRjaCAoc2V0dGluZ3NLZXkpIHsNCiAgICAgICAgICAgICAgICBjYXNlICJhdXRoZW50aWNhdGlvbi5wbXMiOg0KICAgICAgICAgICAgICAgIGNhc2UgImF1dGhlbnRpY2F0aW9uLm0zdSI6DQogICAgICAgICAgICAgICAgY2FzZSAiYXV0aGVudGljYXRpb24ueG1sIjoNCiAgICAgICAgICAgICAgICBjYXNlICJhdXRoZW50aWNhdGlvbi5hcGkiOg0KICAgICAgICAgICAgICAgICAgICBpZiAoU0VSVkVSWyJzZXR0aW5ncyJdWyJhdXRoZW50aWNhdGlvbi53ZWIiXSA9PSBmYWxzZSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBkZWZhdWx0Og0KICAgICAgICAgICAgICAgICAgICB2YXIgaXRlbSA9IHRoaXMuY3JlYXRlU2V0dGluZ3Moc2V0dGluZ3NLZXkpOw0KICAgICAgICAgICAgICAgICAgICB2YXIgZGVzY3JpcHRpb24gPSB0aGlzLmNyZWF0ZURlc2NyaXB0aW9uKHNldHRpbmdzS2V5KTsNCiAgICAgICAgICAgICAgICAgICAgdGFibGUuYXBwZW5kQ2hpbGQoaXRlbSk7DQogICAgICAgICAgICAgICAgICAgIHRhYmxlLmFwcGVuZENoaWxkKGRlc2NyaXB0aW9uKTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICB9DQogICAgICAgIH0pOw0KICAgICAgICBkb2MuYXBwZW5kQ2hpbGQodGFibGUpOw0KICAgICAgICBkb2MuYXBwZW5kQ2hpbGQodGhpcy5jcmVhdGVIUigpKTsNCiAgICB9DQp9DQpmdW5jdGlvbiBzaG93U2V0dGluZ3MoKSB7DQogICAgY29uc29sZS5sb2coIlNFVFRJTkdTIik7DQogICAgZm9yIChsZXQgaSA9IDA7IGkgPCBzZXR0aW5nc0NhdGVnb3J5Lmxlbmd0aDsgaSsrKSB7DQogICAgICAgIHNldHRpbmdzQ2F0ZWdvcnlbaV0uY3JlYXRlQ2F0ZWdvcnkoKTsNCiAgICB9DQp9DQpmdW5jdGlvbiBzYXZlU2V0dGluZ3MoKSB7DQogICAgY29uc29sZS5sb2coIlNhdmUgU2V0dGluZ3MiKTsNCiAgICB2YXIgY21kID0gInNhdmVTZXR0aW5ncyI7DQogICAgdmFyIGRpdiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb250ZW50X3NldHRpbmdzIik7DQogICAgdmFyIHNldHRpbmdzID0gZGl2LmdldEVsZW1lbnRzQnlDbGFzc05hbWUoImNoYW5nZWQiKTsNCiAgICB2YXIgbmV3U2V0dGluZ3MgPSBuZXcgT2JqZWN0KCk7DQogICAgZm9yIChsZXQgaSA9IDA7IGkgPCBzZXR0aW5ncy5sZW5ndGg7IGkrKykgew0KICAgICAgICB2YXIgbmFtZTsNCiAgICAgICAgdmFyIHZhbHVlOw0KICAgICAgICBzd2l0Y2ggKHNldHRpbmdzW2ldLnRhZ05hbWUpIHsNCiAgICAgICAgICAgIGNhc2UgIklOUFVUIjoNCiAgICAgICAgICAgICAgICBzd2l0Y2ggKHNldHRpbmdzW2ldLnR5cGUpIHsNCiAgICAgICAgICAgICAgICAgICAgY2FzZSAiY2hlY2tib3giOg0KICAgICAgICAgICAgICAgICAgICAgICAgbmFtZSA9IHNldHRpbmdzW2ldLm5hbWU7DQogICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IHNldHRpbmdzW2ldLmNoZWNrZWQ7DQogICAgICAgICAgICAgICAgICAgICAgICBuZXdTZXR0aW5nc1tuYW1lXSA9IHZhbHVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgICAgIGNhc2UgInRleHQiOg0KICAgICAgICAgICAgICAgICAgICAgICAgbmFtZSA9IHNldHRpbmdzW2ldLm5hbWU7DQogICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IHNldHRpbmdzW2ldLnZhbHVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgc3dpdGNoIChuYW1lKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAidXBkYXRlIjoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSB2YWx1ZS5zcGxpdCgiLCIpOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IHZhbHVlLmZpbHRlcihmdW5jdGlvbiAoZSkgeyByZXR1cm4gZTsgfSk7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgImJ1ZmZlci50aW1lb3V0IjoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSBwYXJzZUZsb2F0KHZhbHVlKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgIG5ld1NldHRpbmdzW25hbWVdID0gdmFsdWU7DQogICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJTRUxFQ1QiOg0KICAgICAgICAgICAgICAgIG5hbWUgPSBzZXR0aW5nc1tpXS5uYW1lOw0KICAgICAgICAgICAgICAgIHZhbHVlID0gc2V0dGluZ3NbaV0udmFsdWU7DQogICAgICAgICAgICAgICAgLy8gSWYgdGhlIHZhbHVlIGlzIGEgbnVtYmVyLCBzdG9yZSBpdCBhcyBhIG51bWJlcg0KICAgICAgICAgICAgICAgIGlmIChpc05hTih2YWx1ZSkpIHsNCiAgICAgICAgICAgICAgICAgICAgbmV3U2V0dGluZ3NbbmFtZV0gPSB2YWx1ZTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgZWxzZSB7DQogICAgICAgICAgICAgICAgICAgIG5ld1NldHRpbmdzW25hbWVdID0gcGFyc2VJbnQodmFsdWUpOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgfQ0KICAgIH0NCiAgICB2YXIgZGF0YSA9IG5ldyBPYmplY3QoKTsNCiAgICBkYXRhWyJzZXR0aW5ncyJdID0gbmV3U2V0dGluZ3M7DQogICAgdmFyIHNlcnZlciA9IG5ldyBTZXJ2ZXIoY21kKTsNCiAgICBzZXJ2ZXIucmVxdWVzdChkYXRhKTsNCn0NCg==" - webUI["html/lang/en.json"] = "ew0KICAibWFpbk1lbnUiOg0KICB7DQogICAgIml0ZW0iOg0KICAgIHsNCiAgICAgICJwbGF5bGlzdCI6ICJQbGF5bGlzdCIsDQogICAgICAicG1zSUQiOiAiUE1TIElEIiwNCiAgICAgICJmaWx0ZXIiOiAiRmlsdGVyIiwNCiAgICAgICJ4bWx0diI6ICJYTUxUViIsDQogICAgICAibWFwcGluZyI6ICJNYXBwaW5nIiwNCiAgICAgICJ1c2VycyI6ICJVc2VycyIsDQogICAgICAic2V0dGluZ3MiOiAiU2V0dGluZ3MiLA0KICAgICAgImxvZyI6ICJMb2ciLA0KICAgICAgImxvZ291dCI6ICJMb2dvdXQiDQogICAgfSwNCiAgICAiaGVhZGxpbmUiOg0KICAgIHsNCiAgICAgICJwbGF5bGlzdCI6ICJMb2NhbCBvciByZW1vdGUgcGxheWxpc3RzIiwNCiAgICAgICJmaWx0ZXIiOiAiRmlsdGVyIHBsYXlsaXN0IiwNCiAgICAgICJ4bWx0diI6ICJMb2NhbCBvciByZW1vdGUgWE1MVFYgZmlsZXMiLA0KICAgICAgIm1hcHBpbmciOiAiTWFwIHBsYXlsaXN0IGNoYW5uZWxzIHRvIEVQRyBjaGFubmVscyIsDQogICAgICAidXNlcnMiOiAiVXNlciBtYW5hZ2VtZW50IiwNCiAgICAgICJzZXR0aW5ncyI6ICJTZXR0aW5ncyIsDQogICAgICAibG9nIjogIkxvZyIsDQogICAgICAibG9nb3V0IjogIkxvZ291dCINCiAgICB9DQogIH0sDQogICJjb25maXJtIjoNCiAgew0KICAgICJyZXN0b3JlIjogIkFsbCBkYXRhIHdpbGwgYmUgcmVwbGFjZWQgd2l0aCB0aG9zZSBmcm9tIHRoZSBiYWNrdXAuIFNob3VsZCB0aGUgZmlsZXMgYmUgcmVzdG9yZWQ/Ig0KICB9LA0KICAiYWxlcnQiOg0KICB7DQogICAgImZpbGVMb2FkaW5nRXJyb3IiOiAiRmlsZSBjb3VsZG4ndCBiZSBsb2FkZWQiLA0KICAgICJpbnZhbGlkQ2hhbm5lbE51bWJlciI6ICJJbnZhbGlkIGNoYW5uZWwgbnVtYmVyIiwNCiAgICAibWlzc2luZ0lucHV0IjogIk1pc3NpbmcgaW5wdXQiDQogIH0sDQogICJidXR0b24iOg0KICB7DQogICAgImJhY2siOiAiQmFjayIsDQogICAgImJhY2t1cCI6ICJCYWNrdXAiLA0KICAgICJidWxrRWRpdCI6ICJCdWxrIEVkaXQiLA0KICAgICJjYW5jZWwiOiAiQ2FuY2VsIiwNCiAgICAiZGVsZXRlIjogIkRlbGV0ZSIsDQogICAgImRvbmUiOiAiRG9uZSIsDQogICAgImxvZ2luIjogIkxvZ2luIiwNCiAgICAibmV3IjogIk5ldyIsDQogICAgIm5leHQiOiAiTmV4dCIsDQogICAgInJlc3RvcmUiOiAiUmVzdG9yZSIsDQogICAgInNhdmUiOiAiU2F2ZSIsDQogICAgInNlYXJjaCI6ICJTZWFyY2giLA0KICAgICJ1cGRhdGUiOiAiVXBkYXRlIiwNCiAgICAiY3JhZXRlQWNjb3VudCI6ICJDcmVhdGUgQWNjb3VudCIsDQogICAgInJlc2V0TG9ncyI6ICJSZXNldCBMb2dzIiwNCiAgICAidXBsb2FkTG9nbyI6ICJVcGxvYWQgTG9nbyINCiAgfSwNCiAgImZpbHRlciI6DQogIHsNCiAgICAidGFibGUiOg0KICAgIHsNCiAgICAgICJuYW1lIjogIkZpbHRlciBOYW1lIiwNCiAgICAgICJ0eXBlIjogIkZpbHRlciBUeXBlIiwNCiAgICAgICJmaWx0ZXIiOiAiRmlsdGVyIg0KICAgIH0sDQogICAgImN1c3RvbSI6ICJDdXN0b20iLA0KICAgICJncm91cCI6ICJNM1UgR3JvdXAiLA0KICAgICJuYW1lIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiRmlsdGVyIE5hbWUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIkZpbHRlciBuYW1lIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAiZGVzY3JpcHRpb24iOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJEZXNjcmlwdGlvbiIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiRGVzY3JpcHRpb24iLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJ0eXBlIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiVHlwZSIsDQogICAgICAiZ3JvdXBUaXRsZSI6ICJHcm91cCBUaXRsZSIsDQogICAgICAiY3VzdG9tRmlsdGVyIjogIkN1c3RvbSBGaWx0ZXIiDQogICAgfSwNCiAgICAiY2FzZVNlbnNpdGl2ZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIkNhc2UgU2Vuc2l0aXZlIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJmaWx0ZXJSdWxlIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiRmlsdGVyIFJ1bGUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIlNwb3J0IHtIRH0gIXtFUyxJVH0iLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJmaWx0ZXJHcm91cCI6DQogICAgew0KICAgICAgInRpdGxlIjogIkdyb3VwIFRpdGxlIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIlNlbGVjdCBhIE0zVSBncm91cC4gKENvdW50ZXIpPGJyPkNoYW5naW5nIHRoZSBncm91cCB0aXRsZSBpbiB0aGUgTTNVIGludmFsaWRhdGVzIHRoZSBmaWx0ZXIuIg0KICAgIH0sDQogICAgImluY2x1ZGUiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJJbmNsdWRlIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJGSEQsVUhEIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJDaGFubmVsIG5hbWUgbXVzdCBpbmNsdWRlLjxicj4oQ29tbWEgc2VwYXJhdGVkKSBDb21tYSBtZWFucyBvciINCiAgICB9LA0KICAgICJleGNsdWRlIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiRXhjbHVkZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiRVMsSVQiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIkNoYW5uZWwgbmFtZSBtdXN0IG5vdCBjb250YWluLjxicj4oQ29tbWEgc2VwYXJhdGVkKSBDb21tYSBtZWFucyBvciINCiAgICB9LA0KICAgICJwcmVzZXJ2ZU1hcHBpbmciOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJQcmVzZXJ2ZSBFeGlzdGluZyBNM1U8YnI+Q2hhbm5lbCBOdW1iZXJzIiwNCiAgICAgICJwYWxjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIlByZXNlcnZlIGV4aXN0aW5nIE0zVSBwbGF5bGlzdCBjaGFubmVsIG51bWJlcnM/Ig0KICAgIH0sDQogICAgInN0YXJ0aW5nQ2hhbm5lbCI6DQogICAgew0KICAgICAgInRpdGxlIjogIlN0YXJ0aW5nIENoYW5uZWwgTnVtYmVyIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJkZWZhdWx0TWlzc2luZ0VQRyI6DQogICAgew0KICAgICAgInRpdGxlIjogIkZpbGwgTWlzc2luZyBFUEcgRGF0YSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJXaGVuIHRoZXJlIGlzIG5vIG1hdGNoaW5nIEVQRyBkYXRhIGZvciBjaGFubmVsLCA8YnI+YXV0b2ZpbGwgd2l0aCB4VGVWZSBkdW1teSBFUEcgZGF0YT8iDQogICAgfQ0KDQogIH0sDQogICJwbGF5bGlzdCI6DQogIHsNCiAgICAidGFibGUiOg0KICAgIHsNCiAgICAgICJwbGF5bGlzdCI6ICJQbGF5bGlzdCIsDQogICAgICAidHVuZXIiOiAiVHVuZXIiLA0KICAgICAgImxhc3RVcGRhdGUiOiAiTGFzdCBVcGRhdGUiLA0KICAgICAgImF2YWlsYWJpbGl0eSI6ICJBdmFpbGFiaWxpdHkiLA0KICAgICAgInR5cGUiOiAiVHlwZSIsDQogICAgICAic3RyZWFtcyI6ICJTdHJlYW1zIiwNCiAgICAgICJncm91cFRpdGxlIjogImdyb3VwLXRpdGxlIiwNCiAgICAgICJ0dmdJRCI6ICJ0dmctaWQiLA0KICAgICAgInVuaXF1ZUlEIjogIlVuaXF1ZSBJRCINCiAgICB9LA0KICAgICJwbGF5bGlzdFR5cGUiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJQbGF5bGlzdCB0eXBlIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJ0eXBlIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiVHlwZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAibmFtZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIk5hbWUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIlBsYXlsaXN0IG5hbWUiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJkZXNjcmlwdGlvbiI6DQogICAgew0KICAgICAgInRpdGxlIjogIkRlc2NyaXB0aW9uIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJEZXNjcmlwdGlvbiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgImZpbGVNM1UiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJNM1UgRmlsZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiRmlsZSBwYXRoIG9yIFVSTCBvZiB0aGUgTTNVIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAiZmlsZUhESFIiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJIREhvbWVSdW4gSVAiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIklQIGFkZHJlc3MgYW5kIHBvcnQgKDE5Mi4xNjguMS4xMDo1MDA0KSIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgInR1bmVyIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiVHVuZXIgLyBTdHJlYW1zIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIk51bWJlciBvZiBwYXJhbGxlbCBjb25uZWN0aW9ucyB0aGF0IGNhbiBiZSBlc3RhYmxpc2hlZCB0byB0aGUgcHJvdmlkZXIuIDxicj5Pbmx5IGF2YWlsYWJsZSB3aXRoIGFjdGl2YXRlZCBidWZmZXIuPGJyPk5ldyBzZXR0aW5ncyB3aWxsIG9ubHkgYmUgYXBwbGllZCBhZnRlciBxdWl0dGluZyBhbGwgc3RyZWFtcy4iDQogICAgfQ0KICB9LA0KICAieG1sdHYiOg0KICB7DQogICAgInRhYmxlIjoNCiAgICB7DQogICAgICAiZ3VpZGUiOiAiR3VpZGUiLA0KICAgICAgImxhc3RVcGRhdGUiOiAiTGFzdCBVcGRhdGUiLA0KICAgICAgImF2YWlsYWJpbGl0eSI6ICJBdmFpbGFiaWxpdHkiLA0KICAgICAgImNoYW5uZWxzIjogIkNoYW5uZWxzIiwNCiAgICAgICJwcm9ncmFtcyI6ICJQcm9ncmFtcyINCiAgICB9LA0KICAgICJuYW1lIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiTmFtZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiR3VpZGUgbmFtZSIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgImRlc2NyaXB0aW9uIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiRGVzY3JpcHRpb24iLA0KICAgICAgInBsYWNlaG9sZGVyIjogIkRlc2NyaXB0aW9uIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAiZmlsZVhNTFRWIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiWE1MVFYgRmlsZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiRmlsZSBwYXRoIG9yIFVSTCBvZiB0aGUgWE1MVFYiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9DQogIH0sDQogICJtYXBwaW5nIjoNCiAgew0KICAgICJ0YWJsZSI6DQogICAgew0KICAgICAgImNoTm8iOiAiQ2guIE5vLiIsDQogICAgICAibG9nbyI6ICJMb2dvIiwNCiAgICAgICJjaGFubmVsTmFtZSI6ICJDaGFubmVsIE5hbWUiLA0KICAgICAgInBsYXlsaXN0IjogIlBsYXlsaXN0IiwNCiAgICAgICJncm91cFRpdGxlIjogIkdyb3VwIFRpdGxlIiwNCiAgICAgICJ4bWx0dkZpbGUiOiAiWE1MVFYgRmlsZSIsDQogICAgICAieG1sdHZJRCI6ICJYTUxUViBJRCIsDQogICAgICAidGltZXNoaWZ0IjogIlRpbWVzaGlmdCINCiAgICB9LA0KICAgICJhY3RpdmUiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJBY3RpdmUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgImNoYW5uZWxOYW1lIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiQ2hhbm5lbCBOYW1lIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJkZXNjcmlwdGlvbiI6DQogICAgew0KICAgICAgInRpdGxlIjogIkNoYW5uZWwgRGVzY3JpcHRpb24iLA0KICAgICAgInBsYWNlaG9sZGVyIjogIlVzZWQgYnkgdGhlIER1bW15IGFzIGFuIFhNTCBkZXNjcmlwdGlvbiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgInVwZGF0ZUNoYW5uZWxOYW1lIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiVXBkYXRlIENoYW5uZWwgTmFtZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAidXBkYXRlQ2hhbm5lbEdyb3VwIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiVXBkYXRlIENoYW5uZWwgR3JvdXAiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiSWYgY2hlY2tlZCwgdXNlIGdyb3VwIGZyb20gdGhlIGRhdGFiYXNlIg0KICAgIH0sDQogICAgImNoYW5uZWxMb2dvIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiTG9nbyBVUkwiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgInVwZGF0ZUNoYW5uZWxMb2dvIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiVXBkYXRlIENoYW5uZWwgTG9nbyIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAiZXBnQ2F0ZWdvcnkiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJFUEcgQ2F0ZWdvcnkiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgIm0zdUdyb3VwVGl0bGUiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJHcm91cCBUaXRsZSAoeHRldmUubTN1KSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAieG1sdHZGaWxlIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiWE1MVFYgRmlsZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAieG1sdHZDaGFubmVsIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiWE1MVFYgQ2hhbm5lbCIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAidGltZXNoaWZ0IjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiVGltZXNoaWZ0IiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIwIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfQ0KICB9LA0KICAidXNlcnMiOg0KICB7DQogICAgInRhYmxlIjoNCiAgICB7DQogICAgICAidXNlcm5hbWUiOiAiVXNlcm5hbWUiLA0KICAgICAgInBhc3N3b3JkIjogIlBhc3N3b3JkIiwNCiAgICAgICJ3ZWIiOiAiV0VCIiwNCiAgICAgICJwbXMiOiAiUE1TIiwNCiAgICAgICJtM3UiOiAiTTNVIiwNCiAgICAgICJ4bWwiOiAiWE1MIiwNCiAgICAgICJhcGkiOiAiQVBJIg0KICAgIH0sDQogICAgInVzZXJuYW1lIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiVXNlcm5hbWUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIlVzZXJuYW1lIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAicGFzc3dvcmQiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJQYXNzd29yZCIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiUGFzc3dvcmQiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJjb25maXJtIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiQ29uZmlybSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiUGFzc3dvcmQgY29uZmlybSIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgIndlYiI6DQogICAgew0KICAgICAgInRpdGxlIjogIldlYiBBY2Nlc3MiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgInBtcyI6DQogICAgew0KICAgICAgInRpdGxlIjogIlBNUyBBY2Nlc3MiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgIm0zdSI6DQogICAgew0KICAgICAgInRpdGxlIjogIk0zVSBBY2Nlc3MiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgInhtbCI6DQogICAgew0KICAgICAgInRpdGxlIjogIlhNTCBBY2Nlc3MiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgImFwaSI6DQogICAgew0KICAgICAgInRpdGxlIjogIkFQSSBBY2Nlc3MiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0NCiAgfSwNCiAgInNldHRpbmdzIjoNCiAgew0KICAgICJjYXRlZ29yeSI6DQogICAgew0KICAgICAgImdlbmVyYWwiOiAiR2VuZXJhbCIsDQogICAgICAiZmlsZXMiOiAiRmlsZXMiLA0KICAgICAgInN0cmVhbWluZyI6ICJTdHJlYW1pbmciLA0KICAgICAgImJhY2t1cCI6ICJCYWNrdXAiLA0KICAgICAgImF1dGhlbnRpY2F0aW9uIjogIkF1dGhlbnRpY2F0aW9uIg0KICAgIH0sDQogICAgInVwZGF0ZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIlNjaGVkdWxlIGZvciB1cGRhdGluZyAoUGxheWxpc3QsIFhNTFRWLCBCYWNrdXApIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIwMDAwLDEwMDAsMjAwMCIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiVGltZSBpbiAyNCBob3VyIGZvcm1hdCAoMDgwMCA9IDg6MDAgYW0pLiBNb3JlIHRpbWVzIGNhbiBiZSBlbnRlcmVkIGNvbW1hIHNlcGFyYXRlZC4gTGVhdmUgdGhpcyBmaWVsZCBlbXB0eSBpZiBubyB1cGRhdGVzIGFyZSB0byBiZSBjYXJyaWVkIG91dC4iDQogICAgfSwNCiAgICAiYXBpIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiQVBJIEludGVyZmFjZSIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiVmlhIEFQSSBpbnRlcmZhY2UgaXQgaXMgcG9zc2libGUgdG8gc2VuZCBjb21tYW5kcyB0byB4VGVWZS4gQVBJIGRvY3VtZW50YXRpb24gaXMgPGEgaHJlZj0naHR0cHM6Ly9naXRodWIuY29tL3h0ZXZlLXByb2plY3QveFRlVmUtRG9jdW1lbnRhdGlvbi9ibG9iL21hc3Rlci9lbi9jb25maWd1cmF0aW9uLm1kI2FwaSc+aGVyZTwvYT4iDQogICAgfSwNCiAgICAiZXBnU291cmNlIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiRVBHIFNvdXJjZSIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiUE1TOjxicj4tIFVzZSBFUEcgZGF0YSBmcm9tIFBsZXggb3IgRW1ieSA8YnI+PGJyPlhFUEc6PGJyPi0gVXNlIG9mIG9uZSBvciBtb3JlIFhNTFRWIGZpbGVzPGJyPi0gQ2hhbm5lbCBtYW5hZ2VtZW50PGJyPi0gTTNVIC8gWE1MVFYgZXhwb3J0IChIVFRQIGxpbmsgZm9yIElQVFYgYXBwcykiDQogICAgfSwNCiAgICAidHVuZXIiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJOdW1iZXIgb2YgVHVuZXJzIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJOdW1iZXIgb2YgcGFyYWxsZWwgY29ubmVjdGlvbnMgdGhhdCBjYW4gYmUgZXN0YWJsaXNoZWQgdG8gdGhlIHByb3ZpZGVyLjxicj5BdmFpbGFibGUgZm9yOiBQbGV4LCBFbWJ5IChIREhSKSwgTTNVICh3aXRoIGFjdGl2ZSBidWZmZXIpLjxicj5BZnRlciBhIGNoYW5nZSwgeFRlVmUgbXVzdCBiZSBkZWxldGUgaW4gdGhlIFBsZXggLyBFbWJ5IERWUiBzZXR0aW5ncyBhbmQgc2V0IHVwIGFnYWluLiINCiAgICB9LA0KICAgICJmaWxlc1VwZGF0ZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIlVwZGF0ZXMgYWxsIGZpbGVzIGF0IHN0YXJ0dXAiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIlVwZGF0ZXMgYWxsIHBsYXlsaXN0cywgdHVuZXIgYW5kIFhNTFRWIGZpbGVzIGF0IHN0YXJ0dXAuIg0KICAgIH0sDQogICAgImNhY2hlSW1hZ2VzIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiSW1hZ2UgQ2FjaGluZyIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiQWxsIGltYWdlcyBmcm9tIHRoZSBYTUxUViBmaWxlIGFyZSBjYWNoZWQsIGFsbG93aW5nIGZhc3RlciByZW5kZXJpbmcgb2YgdGhlIGdyaWQgaW4gdGhlIGNsaWVudC48YnI+RG93bmxvYWRpbmcgdGhlIGltYWdlcyBtYXkgdGFrZSBhIHdoaWxlIGFuZCB3aWxsIGJlIGRvbmUgaW4gdGhlIGJhY2tncm91bmQuIg0KICAgIH0sDQogICAgInJlcGxhY2VFbXB0eUltYWdlcyI6DQogICAgew0KICAgICAgInRpdGxlIjogIlJlcGxhY2UgbWlzc2luZyBwcm9ncmFtIGltYWdlcyIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiSWYgdGhlIHBvc3RlciBpbiB0aGUgWE1MVFYgcHJvZ3JhbSBpcyBtaXNzaW5nLCB0aGUgY2hhbm5lbCBsb2dvIHdpbGwgYmUgdXNlZC4iDQogICAgfSwNCiAgICAieHRldmVBdXRvVXBkYXRlIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiQXV0b21hdGljIHVwZGF0ZSBvZiB4VGVWZSIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiSWYgYSBuZXcgdmVyc2lvbiBvZiB4VGVWZSBpcyBhdmFpbGFibGUsIGl0IHdpbGwgYmUgYXV0b21hdGljYWxseSBpbnN0YWxsZWQuIFRoZSB1cGRhdGVzIGFyZSBkb3dubG9hZGVkIGZyb20gR2l0SHViLiINCiAgICB9LA0KICAgICJzdHJlYW1CdWZmZXJpbmciOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJTdHJlYW0gQnVmZmVyIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJGdW5jdGlvbnMgb2YgdGhlIGJ1ZmZlcjo8YnI+LSBUaGUgc3RyZWFtIGlzIHBhc3NlZCBmcm9tIHhUZVZlLCBGRm1wZWcgb3IgVkxDIHRvIFBsZXgsIEVtYnkgb3IgTTNVIFBsYXllcjxicj4tIFNtYWxsIGplcmtpbmcgb2YgdGhlIHN0cmVhbXMgY2FuIGJlIGNvbXBlbnNhdGVkPGJyPi0gSExTIC8gTTNVOCBzdXBwb3J0PGJyPi0gUlRQIC8gUlRQUyBzdXBwb3J0IChvbmx5IEZGbXBlZyBvciBWTEMpPGJyPi0gUmUtc3RyZWFtaW5nPGJyPi0gU2VwYXJhdGUgdHVuZXIgbGltaXQgZm9yIGVhY2ggcGxheWxpc3QiLA0KICAgICAgImluZm9fZmFsc2UiOiAiTm8gQnVmZmVyIChDbGllbnQgY29ubmVjdHMgdG8gdGhlIHN0cmVhbWluZyBzZXJ2ZXIpIiwNCiAgICAgICJpbmZvX3h0ZXZlIjogInhUZVZlIGNvbm5lY3RzIHRvIHRoZSBzdHJlYW1pbmcgc2VydmVyIiwNCiAgICAgICJpbmZvX2ZmbXBlZyI6ICJGRm1wZWcgY29ubmVjdHMgdG8gdGhlIHN0cmVhbWluZyBzZXJ2ZXIiLA0KICAgICAgImluZm9fdmxjIjogIlZMQyBjb25uZWN0cyB0byB0aGUgc3RyZWFtaW5nIHNlcnZlciINCg0KICAgIH0sDQogICAgInVkcHh5IjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiVURQeHkgYWRkcmVzcyIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiVGhlIGFkZHJlc3Mgb2YgeW91ciBVRFB4eSBzZXJ2ZXIuIElmIHNldCwgYW5kIHRoZSBjaGFubmVsIFVSTHMgaW4gdGhlIG0zdSBpcyBtdWx0aWNhc3QsIHhUZVZlIHdpbGwgcmV3cml0ZSBpdCBzbyB0aGF0IGl0IGlzIGFjY2Vzc2VkIHZpYSB0aGUgVURQeHkgc2VydmljZS4iLA0KICAgICAgInBsYWNlaG9sZGVyIjogImhvc3Q6cG9ydCINCiAgICB9LA0KICAgICJmZm1wZWdQYXRoIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiRkZtcGVnIEJpbmFyeSBQYXRoIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJQYXRoIHRvIEZGbXBlZyBiaW5hcnkuIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIvcGF0aC90by9mZm1wZWciDQogICAgfSwNCiAgICAiZmZtcGVnT3B0aW9ucyI6DQogICAgew0KICAgICAgInRpdGxlIjogIkZGbXBlZyBPcHRpb25zIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJGRm1wZWcgb3B0aW9ucy48YnI+T25seSBjaGFuZ2UgaWYgeW91IGtub3cgd2hhdCB5b3UgYXJlIGRvaW5nLjxicj5MZWF2ZSBibGFuayB0byBzZXQgZGVmYXVsdCBzZXR0aW5ncy4iLA0KICAgICAgInBsYWNlaG9sZGVyIjogIkxlYXZlIGJsYW5rIHRvIHNldCBkZWZhdWx0IHNldHRpbmdzIg0KICAgIH0sDQogICAgInZsY1BhdGgiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJWTEMgLyBDVkxDIEJpbmFyeSBQYXRoIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJQYXRoIHRvIFZMQyAvIENWTEMgYmluYXJ5LiIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiL3BhdGgvdG8vY3ZsYyINCiAgICB9LA0KICAgICJ2bGNPcHRpb25zIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiVkxDIC8gQ1ZMQyBPcHRpb25zIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJWTEMgLyBDVkxDIG9wdGlvbnMuPGJyPk9ubHkgY2hhbmdlIGlmIHlvdSBrbm93IHdoYXQgeW91IGFyZSBkb2luZy48YnI+TGVhdmUgYmxhbmsgdG8gc2V0IGRlZmF1bHQgc2V0dGluZ3MuIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJMZWF2ZSBibGFuayB0byBzZXQgZGVmYXVsdCBzZXR0aW5ncyINCiAgICB9LA0KICAgICJidWZmZXJTaXplIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiQnVmZmVyIFNpemUiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIkJ1ZmZlciBzaXplIGluIE1CLjxicj5NM1U4OiBJZiB0aGUgVFMgc2VnbWVudCBzbWFsbGVyIHRoZW4gdGhlIGJ1ZmZlciBzaXplLCB0aGUgZmlsZSBzaXplIG9mIHRoZSBzZWdtZW50IGlzIHVzZWQuIg0KICAgIH0sDQogICAgImJ1ZmZlclRpbWVvdXQiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJUaW1lb3V0IGZvciBuZXcgY2xpZW50IGNvbm5lY3Rpb25zIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJUaGUgeFRlVmUgYnVmZmVyIHdhaXRzIHVudGlsIG5ldyBjbGllbnQgY29ubmVjdGlvbnMgYXJlIGVzdGFibGlzaGVkLiBIZWxwZnVsIGZvciBmYXN0IGNoYW5uZWwgc3dpdGNoaW5nLiBWYWx1ZSBpbiBtaWxsaXNlY29uZHMuIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIxMDAiDQogICAgfSwNCiAgICAidXNlckFnZW50IjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiVXNlciBBZ2VudCIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiVXNlciBBZ2VudCBmb3IgSFRUUCByZXF1ZXN0cy4gRm9yIGV2ZXJ5IEhUVFAgY29ubmVjdGlvbiwgdGhpcyB2YWx1ZSBpcyB1c2VkIGZvciB0aGUgdXNlciBhZ2VudC4gU2hvdWxkIG9ubHkgYmUgY2hhbmdlZCBpZiB4VGVWZSBpcyBibG9ja2VkLiIsDQogICAgICAicGxhY2Vob2xkZXIiOiAieFRlVmUiDQogICAgfSwNCiAgICAiYmFja3VwUGF0aCI6DQogICAgew0KICAgICAgInRpdGxlIjogIkxvY2F0aW9uIGZvciBhdXRvbWF0aWMgYmFja3VwcyIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiL21udC9kYXRhL2JhY2t1cC94dGV2ZS8iLA0KICAgICAgImRlc2NyaXB0aW9uIjogIkJlZm9yZSBhbnkgdXBkYXRlIG9mIHRoZSBwcm92aWRlciBkYXRhIGJ5IHRoZSBzY2hlZHVsZSwgeFRlVmUgY3JlYXRlcyBhIGJhY2t1cC4gVGhlIHBhdGggZm9yIHRoZSBhdXRvbWF0aWMgYmFja3VwcyBjYW4gYmUgY2hhbmdlZC4geFRlVmUgcmVxdWlyZXMgd3JpdGUgcGVybWlzc2lvbiBmb3IgdGhpcyBmb2xkZXIuIg0KICAgIH0sDQogICAgInRlbXBQYXRoIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiTG9jYXRpb24gZm9yIHRoZSB0ZW1wb3JhcnkgZmlsZXMiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIi90bXAveHRldmUvIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJMb2NhdGlvbiBmb3IgdGhlIGJ1ZmZlciBmaWxlcy4iDQogICAgfSwNCiAgICAiYmFja3VwS2VlcCI6DQogICAgew0KICAgICAgInRpdGxlIjogIk51bWJlciBvZiBiYWNrdXBzIHRvIGtlZXAiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIk51bWJlciBvZiBiYWNrdXBzIHRvIGtlZXAuIE9sZGVyIGJhY2t1cHMgYXJlIGF1dG9tYXRpY2FsbHkgZGVsZXRlZC4iDQogICAgfSwNCiAgICAiYXV0aGVudGljYXRpb25XRUIiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJXRUIgQXV0aGVudGljYXRpb24iLA0KICAgICAgImRlc2NyaXB0aW9uIjogIkFjY2VzcyB0byB0aGUgd2ViIGludGVyZmFjZSBvbmx5IHBvc3NpYmxlIHdpdGggY3JlZGVudGlhbHMuIg0KICAgIH0sDQogICAgImF1dGhlbnRpY2F0aW9uUE1TIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiUE1TIEF1dGhlbnRpY2F0aW9uIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJQbGV4IHJlcXVlc3RzIGFyZSBvbmx5IHBvc3NpYmxlIHdpdGggYXV0aGVudGljYXRpb24uIDxicj48Yj5XYXJuaW5nISEhPC9iPiBBZnRlciBhY3RpdmF0aW5nIHRoaXMgZnVuY3Rpb24geFRlVmUgbXVzdCBiZSBkZWxldGUgaW4gdGhlIFBNUyBEVlIgc2V0dGluZ3MgYW5kIHNldCB1cCBhZ2Fpbi4iDQogICAgfSwNCiAgICAiYXV0aGVudGljYXRpb25NM1UiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJNM1UgQXV0aGVudGljYXRpb24iLA0KICAgICAgImRlc2NyaXB0aW9uIjogIkRvd25sb2FkaW5nIHRoZSB4dGV2ZS5tM3UgZmlsZSB2aWEgYW4gSFRUUCByZXF1ZXN0IGlzIG9ubHkgcG9zc2libGUgd2l0aCBhdXRoZW50aWNhdGlvbi4iDQogICAgfSwNCiAgICAiYXV0aGVudGljYXRpb25YTUwiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJYTUwgQXV0aGVudGljYXRpb24iLA0KICAgICAgImRlc2NyaXB0aW9uIjogIkRvd25sb2FkaW5nIHRoZSB4dGV2ZS54bWwgZmlsZSB2aWEgYW4gSFRUUCByZXF1ZXN0IGlzIG9ubHkgcG9zc2libGUgd2l0aCBhdXRoZW50aWNhdGlvbiINCiAgICB9LA0KICAgICJhdXRoZW50aWNhdGlvbkFQSSI6DQogICAgew0KICAgICAgInRpdGxlIjogIkFQSSBBdXRoZW50aWNhdGlvbiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiQWNjZXNzIHRvIHRoZSBBUEkgaW50ZXJmYWNlIGlzIG9ubHkgcG9zc2libGUgd2l0aCBhdXRoZW50aWNhdGlvbi4iDQogICAgfQ0KICB9LA0KICAid2l6YXJkIjoNCiAgew0KICAgICJlcGdTb3VyY2UiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJFUEcgU291cmNlIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJQTVM6PGJyPi0gVXNlIEVQRyBkYXRhIGZyb20gUGxleCBvciBFbWJ5IDxicj48YnI+WEVQRzo8YnI+LSBVc2Ugb2Ygb25lIG9yIG1vcmUgWE1MVFYgZmlsZXM8YnI+LSBDaGFubmVsIG1hbmFnZW1lbnQ8YnI+LSBNM1UgLyBYTUxUViBleHBvcnQgKEhUVFAgbGluayBmb3IgSVBUViBhcHBzKSINCiAgICB9LA0KICAgICJ0dW5lciI6DQogICAgew0KICAgICAgInRpdGxlIjogIk51bWJlciBvZiB0dW5lcnMiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIk51bWJlciBvZiBwYXJhbGxlbCBjb25uZWN0aW9ucyB0aGF0IGNhbiBiZSBlc3RhYmxpc2hlZCB0byB0aGUgcHJvdmlkZXIuPGJyPkF2YWlsYWJsZSBmb3I6IFBsZXgsIEVtYnkgKEhESFIpLCBNM1UgKHdpdGggYWN0aXZlIGJ1ZmZlcikuPGJyPkFmdGVyIGEgY2hhbmdlLCB4VGVWZSBtdXN0IGJlIGRlbGV0ZSBpbiB0aGUgUGxleCAvIEVtYnkgRFZSIHNldHRpbmdzIGFuZCBzZXQgdXAgYWdhaW4uIg0KICAgIH0sDQogICAgIm0zdSI6DQogICAgew0KICAgICAgInRpdGxlIjogIk0zVSBQbGF5bGlzdCIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiRmlsZSBwYXRoIG9yIFVSTCBvZiB0aGUgTTNVIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJMb2NhbCBvciByZW1vdGUgcGxheWxpc3RzIg0KICAgIH0sDQogICAgInhtbHR2IjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiWE1MVFYgRmlsZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiRmlsZSBwYXRoIG9yIFVSTCBvZiB0aGUgWE1MVFYiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIkxvY2FsIG9yIHJlbW90ZSBYTUxUViBmaWxlIg0KICAgIH0NCiAgfSwNCiAgImxvZ2luIjoNCiAgew0KICAgICJmYWlsZWQiOiAiVXNlciBhdXRoZW50aWNhdGlvbiBmYWlsZWQiLA0KICAgICJoZWFkbGluZSI6ICJMb2dpbiIsDQogICAgInVzZXJuYW1lIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiVXNlcm5hbWUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIlVzZXJuYW1lIg0KICAgIH0sDQogICAgInBhc3N3b3JkIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiUGFzc3dvcmQiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIlBhc3N3b3JkIg0KICAgIH0NCiAgfSwNCiAgImFjY291bnQiOg0KICB7DQogICAgImZhaWxlZCI6ICJQYXNzd29yZCBkb2VzIG5vdCBtYXRjaCIsDQogICAgImhlYWRsaW5lIjogIkNyZWF0ZSB1c2VyIGFjY291bnQiLA0KICAgICJ1c2VybmFtZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIlVzZXJuYW1lIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJVc2VybmFtZSINCiAgICB9LA0KICAgICJwYXNzd29yZCI6DQogICAgew0KICAgICAgInRpdGxlIjogIlBhc3N3b3JkIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJQYXNzd29yZCINCiAgICB9LA0KICAgICJjb25maXJtIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiQ29uZmlybSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiQ29uZmlybSINCiAgICB9DQogIH0NCn0=" + webUI["html/lang/en.json"] = "ew0KICAibWFpbk1lbnUiOg0KICB7DQogICAgIml0ZW0iOg0KICAgIHsNCiAgICAgICJwbGF5bGlzdCI6ICJQbGF5bGlzdCIsDQogICAgICAicG1zSUQiOiAiUE1TIElEIiwNCiAgICAgICJmaWx0ZXIiOiAiRmlsdGVyIiwNCiAgICAgICJ4bWx0diI6ICJYTUxUViIsDQogICAgICAibWFwcGluZyI6ICJNYXBwaW5nIiwNCiAgICAgICJ1c2VycyI6ICJVc2VycyIsDQogICAgICAic2V0dGluZ3MiOiAiU2V0dGluZ3MiLA0KICAgICAgImxvZyI6ICJMb2ciLA0KICAgICAgImxvZ291dCI6ICJMb2dvdXQiDQogICAgfSwNCiAgICAiaGVhZGxpbmUiOg0KICAgIHsNCiAgICAgICJwbGF5bGlzdCI6ICJMb2NhbCBvciByZW1vdGUgcGxheWxpc3RzIiwNCiAgICAgICJmaWx0ZXIiOiAiRmlsdGVyIHBsYXlsaXN0IiwNCiAgICAgICJ4bWx0diI6ICJMb2NhbCBvciByZW1vdGUgWE1MVFYgZmlsZXMiLA0KICAgICAgIm1hcHBpbmciOiAiTWFwIHBsYXlsaXN0IGNoYW5uZWxzIHRvIEVQRyBjaGFubmVscyIsDQogICAgICAidXNlcnMiOiAiVXNlciBtYW5hZ2VtZW50IiwNCiAgICAgICJzZXR0aW5ncyI6ICJTZXR0aW5ncyIsDQogICAgICAibG9nIjogIkxvZyIsDQogICAgICAibG9nb3V0IjogIkxvZ291dCINCiAgICB9DQogIH0sDQogICJjb25maXJtIjoNCiAgew0KICAgICJyZXN0b3JlIjogIkFsbCBkYXRhIHdpbGwgYmUgcmVwbGFjZWQgd2l0aCB0aG9zZSBmcm9tIHRoZSBiYWNrdXAuIFNob3VsZCB0aGUgZmlsZXMgYmUgcmVzdG9yZWQ/Ig0KICB9LA0KICAiYWxlcnQiOg0KICB7DQogICAgImZpbGVMb2FkaW5nRXJyb3IiOiAiRmlsZSBjb3VsZG4ndCBiZSBsb2FkZWQiLA0KICAgICJpbnZhbGlkQ2hhbm5lbE51bWJlciI6ICJJbnZhbGlkIGNoYW5uZWwgbnVtYmVyIiwNCiAgICAibWlzc2luZ0lucHV0IjogIk1pc3NpbmcgaW5wdXQiDQogIH0sDQogICJidXR0b24iOg0KICB7DQogICAgImJhY2siOiAiQmFjayIsDQogICAgImJhY2t1cCI6ICJCYWNrdXAiLA0KICAgICJidWxrRWRpdCI6ICJCdWxrIEVkaXQiLA0KICAgICJjYW5jZWwiOiAiQ2FuY2VsIiwNCiAgICAiZGVsZXRlIjogIkRlbGV0ZSIsDQogICAgImRvbmUiOiAiRG9uZSIsDQogICAgImxvZ2luIjogIkxvZ2luIiwNCiAgICAibmV3IjogIk5ldyIsDQogICAgIm5leHQiOiAiTmV4dCIsDQogICAgInJlc3RvcmUiOiAiUmVzdG9yZSIsDQogICAgInNhdmUiOiAiU2F2ZSIsDQogICAgInNlYXJjaCI6ICJTZWFyY2giLA0KICAgICJ1cGRhdGUiOiAiVXBkYXRlIiwNCiAgICAiY3JhZXRlQWNjb3VudCI6ICJDcmVhdGUgQWNjb3VudCIsDQogICAgInJlc2V0TG9ncyI6ICJSZXNldCBMb2dzIiwNCiAgICAidXBsb2FkTG9nbyI6ICJVcGxvYWQgTG9nbyINCiAgfSwNCiAgImZpbHRlciI6DQogIHsNCiAgICAidGFibGUiOg0KICAgIHsNCiAgICAgICJzdGFydGluZ0NoYW5uZWwiOiAiU3RhcnRpbmcgQ2guIE5vLiIsDQogICAgICAibmFtZSI6ICJGaWx0ZXIgTmFtZSIsDQogICAgICAidHlwZSI6ICJGaWx0ZXIgVHlwZSIsDQogICAgICAiZmlsdGVyIjogIkZpbHRlciINCiAgICB9LA0KICAgICJjdXN0b20iOiAiQ3VzdG9tIiwNCiAgICAiZ3JvdXAiOiAiTTNVIEdyb3VwIiwNCiAgICAibmFtZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIkZpbHRlciBOYW1lIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJGaWx0ZXIgbmFtZSIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgImRlc2NyaXB0aW9uIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiRGVzY3JpcHRpb24iLA0KICAgICAgInBsYWNlaG9sZGVyIjogIkRlc2NyaXB0aW9uIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAidHlwZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIlR5cGUiLA0KICAgICAgImdyb3VwVGl0bGUiOiAiR3JvdXAgVGl0bGUiLA0KICAgICAgImN1c3RvbUZpbHRlciI6ICJDdXN0b20gRmlsdGVyIg0KICAgIH0sDQogICAgImNhc2VTZW5zaXRpdmUiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJDYXNlIFNlbnNpdGl2ZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAiZmlsdGVyUnVsZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIkZpbHRlciBSdWxlIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJTcG9ydCB7SER9ICF7RVMsSVR9IiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAiZmlsdGVyR3JvdXAiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJHcm91cCBUaXRsZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJTZWxlY3QgYSBNM1UgZ3JvdXAuIChDb3VudGVyKTxicj5DaGFuZ2luZyB0aGUgZ3JvdXAgdGl0bGUgaW4gdGhlIE0zVSBpbnZhbGlkYXRlcyB0aGUgZmlsdGVyLiINCiAgICB9LA0KICAgICJpbmNsdWRlIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiSW5jbHVkZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiRkhELFVIRCIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiQ2hhbm5lbCBuYW1lIG11c3QgaW5jbHVkZS48YnI+KENvbW1hIHNlcGFyYXRlZCkgQ29tbWEgbWVhbnMgb3IiDQogICAgfSwNCiAgICAiZXhjbHVkZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIkV4Y2x1ZGUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIkVTLElUIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJDaGFubmVsIG5hbWUgbXVzdCBub3QgY29udGFpbi48YnI+KENvbW1hIHNlcGFyYXRlZCkgQ29tbWEgbWVhbnMgb3IiDQogICAgfSwNCiAgICAicHJlc2VydmVNYXBwaW5nIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiUHJlc2VydmUgRXhpc3RpbmcgTTNVPGJyPkNoYW5uZWwgTnVtYmVycyIsDQogICAgICAicGFsY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJQcmVzZXJ2ZSBleGlzdGluZyBNM1UgcGxheWxpc3QgY2hhbm5lbCBudW1iZXJzPyINCiAgICB9LA0KICAgICJzdGFydGluZ0NoYW5uZWwiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJTdGFydGluZyBDaGFubmVsIE51bWJlciIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAiZGVmYXVsdE1pc3NpbmdFUEciOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJGaWxsIE1pc3NpbmcgRVBHIERhdGEiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiV2hlbiB0aGVyZSBpcyBubyBtYXRjaGluZyBFUEcgZGF0YSBmb3IgY2hhbm5lbCwgPGJyPmF1dG9maWxsIHdpdGggeFRlVmUgZHVtbXkgRVBHIGRhdGE/Ig0KICAgIH0NCg0KICB9LA0KICAicGxheWxpc3QiOg0KICB7DQogICAgInRhYmxlIjoNCiAgICB7DQogICAgICAicGxheWxpc3QiOiAiUGxheWxpc3QiLA0KICAgICAgInR1bmVyIjogIlR1bmVyIiwNCiAgICAgICJsYXN0VXBkYXRlIjogIkxhc3QgVXBkYXRlIiwNCiAgICAgICJhdmFpbGFiaWxpdHkiOiAiQXZhaWxhYmlsaXR5IiwNCiAgICAgICJ0eXBlIjogIlR5cGUiLA0KICAgICAgInN0cmVhbXMiOiAiU3RyZWFtcyIsDQogICAgICAiZ3JvdXBUaXRsZSI6ICJncm91cC10aXRsZSIsDQogICAgICAidHZnSUQiOiAidHZnLWlkIiwNCiAgICAgICJ1bmlxdWVJRCI6ICJVbmlxdWUgSUQiDQogICAgfSwNCiAgICAicGxheWxpc3RUeXBlIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiUGxheWxpc3QgdHlwZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAidHlwZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIlR5cGUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgIm5hbWUiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJOYW1lIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJQbGF5bGlzdCBuYW1lIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAiZGVzY3JpcHRpb24iOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJEZXNjcmlwdGlvbiIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiRGVzY3JpcHRpb24iLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJmaWxlTTNVIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiTTNVIEZpbGUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIkZpbGUgcGF0aCBvciBVUkwgb2YgdGhlIE0zVSIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgImZpbGVIREhSIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiSERIb21lUnVuIElQIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJJUCBhZGRyZXNzIGFuZCBwb3J0ICgxOTIuMTY4LjEuMTA6NTAwNCkiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJ0dW5lciI6DQogICAgew0KICAgICAgInRpdGxlIjogIlR1bmVyIC8gU3RyZWFtcyIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJOdW1iZXIgb2YgcGFyYWxsZWwgY29ubmVjdGlvbnMgdGhhdCBjYW4gYmUgZXN0YWJsaXNoZWQgdG8gdGhlIHByb3ZpZGVyLiA8YnI+T25seSBhdmFpbGFibGUgd2l0aCBhY3RpdmF0ZWQgYnVmZmVyLjxicj5OZXcgc2V0dGluZ3Mgd2lsbCBvbmx5IGJlIGFwcGxpZWQgYWZ0ZXIgcXVpdHRpbmcgYWxsIHN0cmVhbXMuIg0KICAgIH0NCiAgfSwNCiAgInhtbHR2IjoNCiAgew0KICAgICJ0YWJsZSI6DQogICAgew0KICAgICAgImd1aWRlIjogIkd1aWRlIiwNCiAgICAgICJsYXN0VXBkYXRlIjogIkxhc3QgVXBkYXRlIiwNCiAgICAgICJhdmFpbGFiaWxpdHkiOiAiQXZhaWxhYmlsaXR5IiwNCiAgICAgICJjaGFubmVscyI6ICJDaGFubmVscyIsDQogICAgICAicHJvZ3JhbXMiOiAiUHJvZ3JhbXMiDQogICAgfSwNCiAgICAibmFtZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIk5hbWUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIkd1aWRlIG5hbWUiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJkZXNjcmlwdGlvbiI6DQogICAgew0KICAgICAgInRpdGxlIjogIkRlc2NyaXB0aW9uIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJEZXNjcmlwdGlvbiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgImZpbGVYTUxUViI6DQogICAgew0KICAgICAgInRpdGxlIjogIlhNTFRWIEZpbGUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIkZpbGUgcGF0aCBvciBVUkwgb2YgdGhlIFhNTFRWIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfQ0KICB9LA0KICAibWFwcGluZyI6DQogIHsNCiAgICAidGFibGUiOg0KICAgIHsNCiAgICAgICJjaE5vIjogIkNoLiBOby4iLA0KICAgICAgImxvZ28iOiAiTG9nbyIsDQogICAgICAiY2hhbm5lbE5hbWUiOiAiQ2hhbm5lbCBOYW1lIiwNCiAgICAgICJwbGF5bGlzdCI6ICJQbGF5bGlzdCIsDQogICAgICAiZ3JvdXBUaXRsZSI6ICJHcm91cCBUaXRsZSIsDQogICAgICAieG1sdHZGaWxlIjogIlhNTFRWIEZpbGUiLA0KICAgICAgInhtbHR2SUQiOiAiWE1MVFYgSUQiLA0KICAgICAgInRpbWVzaGlmdCI6ICJUaW1lc2hpZnQiDQogICAgfSwNCiAgICAiYWN0aXZlIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiQWN0aXZlIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJjaGFubmVsTmFtZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIkNoYW5uZWwgTmFtZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAiZGVzY3JpcHRpb24iOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJDaGFubmVsIERlc2NyaXB0aW9uIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJVc2VkIGJ5IHRoZSBEdW1teSBhcyBhbiBYTUwgZGVzY3JpcHRpb24iLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJ1cGRhdGVDaGFubmVsTmFtZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIlVwZGF0ZSBDaGFubmVsIE5hbWUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgInVwZGF0ZUNoYW5uZWxHcm91cCI6DQogICAgew0KICAgICAgInRpdGxlIjogIlVwZGF0ZSBDaGFubmVsIEdyb3VwIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIklmIGNoZWNrZWQsIHVzZSBncm91cCBmcm9tIHRoZSBkYXRhYmFzZSINCiAgICB9LA0KICAgICJjaGFubmVsTG9nbyI6DQogICAgew0KICAgICAgInRpdGxlIjogIkxvZ28gVVJMIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJ1cGRhdGVDaGFubmVsTG9nbyI6DQogICAgew0KICAgICAgInRpdGxlIjogIlVwZGF0ZSBDaGFubmVsIExvZ28iLA0KICAgICAgInBsYWNlaG9sZGVyIjogIiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgImVwZ0NhdGVnb3J5IjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiRVBHIENhdGVnb3J5IiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJtM3VHcm91cFRpdGxlIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiR3JvdXAgVGl0bGUgKHh0ZXZlLm0zdSkiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgInhtbHR2RmlsZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIlhNTFRWIEZpbGUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgInhtbHR2Q2hhbm5lbCI6DQogICAgew0KICAgICAgInRpdGxlIjogIlhNTFRWIENoYW5uZWwiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgInRpbWVzaGlmdCI6DQogICAgew0KICAgICAgInRpdGxlIjogIlRpbWVzaGlmdCIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiMCIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0NCiAgfSwNCiAgInVzZXJzIjoNCiAgew0KICAgICJ0YWJsZSI6DQogICAgew0KICAgICAgInVzZXJuYW1lIjogIlVzZXJuYW1lIiwNCiAgICAgICJwYXNzd29yZCI6ICJQYXNzd29yZCIsDQogICAgICAid2ViIjogIldFQiIsDQogICAgICAicG1zIjogIlBNUyIsDQogICAgICAibTN1IjogIk0zVSIsDQogICAgICAieG1sIjogIlhNTCIsDQogICAgICAiYXBpIjogIkFQSSINCiAgICB9LA0KICAgICJ1c2VybmFtZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIlVzZXJuYW1lIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJVc2VybmFtZSIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgInBhc3N3b3JkIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiUGFzc3dvcmQiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIlBhc3N3b3JkIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAiY29uZmlybSI6DQogICAgew0KICAgICAgInRpdGxlIjogIkNvbmZpcm0iLA0KICAgICAgInBsYWNlaG9sZGVyIjogIlBhc3N3b3JkIGNvbmZpcm0iLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJ3ZWIiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJXZWIgQWNjZXNzIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJwbXMiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJQTVMgQWNjZXNzIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJtM3UiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJNM1UgQWNjZXNzIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJ4bWwiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJYTUwgQWNjZXNzIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJhcGkiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJBUEkgQWNjZXNzIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9DQogIH0sDQogICJzZXR0aW5ncyI6DQogIHsNCiAgICAiY2F0ZWdvcnkiOg0KICAgIHsNCiAgICAgICJnZW5lcmFsIjogIkdlbmVyYWwiLA0KICAgICAgImZpbGVzIjogIkZpbGVzIiwNCiAgICAgICJzdHJlYW1pbmciOiAiU3RyZWFtaW5nIiwNCiAgICAgICJiYWNrdXAiOiAiQmFja3VwIiwNCiAgICAgICJhdXRoZW50aWNhdGlvbiI6ICJBdXRoZW50aWNhdGlvbiINCiAgICB9LA0KICAgICJ1cGRhdGUiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJTY2hlZHVsZSBmb3IgdXBkYXRpbmcgKFBsYXlsaXN0LCBYTUxUViwgQmFja3VwKSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiMDAwMCwxMDAwLDIwMDAiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIlRpbWUgaW4gMjQgaG91ciBmb3JtYXQgKDA4MDAgPSA4OjAwIGFtKS4gTW9yZSB0aW1lcyBjYW4gYmUgZW50ZXJlZCBjb21tYSBzZXBhcmF0ZWQuIExlYXZlIHRoaXMgZmllbGQgZW1wdHkgaWYgbm8gdXBkYXRlcyBhcmUgdG8gYmUgY2FycmllZCBvdXQuIg0KICAgIH0sDQogICAgImFwaSI6DQogICAgew0KICAgICAgInRpdGxlIjogIkFQSSBJbnRlcmZhY2UiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIlZpYSBBUEkgaW50ZXJmYWNlIGl0IGlzIHBvc3NpYmxlIHRvIHNlbmQgY29tbWFuZHMgdG8geFRlVmUuIEFQSSBkb2N1bWVudGF0aW9uIGlzIDxhIGhyZWY9J2h0dHBzOi8vZ2l0aHViLmNvbS94dGV2ZS1wcm9qZWN0L3hUZVZlLURvY3VtZW50YXRpb24vYmxvYi9tYXN0ZXIvZW4vY29uZmlndXJhdGlvbi5tZCNhcGknPmhlcmU8L2E+Ig0KICAgIH0sDQogICAgImVwZ1NvdXJjZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIkVQRyBTb3VyY2UiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIlBNUzo8YnI+LSBVc2UgRVBHIGRhdGEgZnJvbSBQbGV4IG9yIEVtYnkgPGJyPjxicj5YRVBHOjxicj4tIFVzZSBvZiBvbmUgb3IgbW9yZSBYTUxUViBmaWxlczxicj4tIENoYW5uZWwgbWFuYWdlbWVudDxicj4tIE0zVSAvIFhNTFRWIGV4cG9ydCAoSFRUUCBsaW5rIGZvciBJUFRWIGFwcHMpIg0KICAgIH0sDQogICAgInR1bmVyIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiTnVtYmVyIG9mIFR1bmVycyIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiTnVtYmVyIG9mIHBhcmFsbGVsIGNvbm5lY3Rpb25zIHRoYXQgY2FuIGJlIGVzdGFibGlzaGVkIHRvIHRoZSBwcm92aWRlci48YnI+QXZhaWxhYmxlIGZvcjogUGxleCwgRW1ieSAoSERIUiksIE0zVSAod2l0aCBhY3RpdmUgYnVmZmVyKS48YnI+QWZ0ZXIgYSBjaGFuZ2UsIHhUZVZlIG11c3QgYmUgZGVsZXRlIGluIHRoZSBQbGV4IC8gRW1ieSBEVlIgc2V0dGluZ3MgYW5kIHNldCB1cCBhZ2Fpbi4iDQogICAgfSwNCiAgICAiZmlsZXNVcGRhdGUiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJVcGRhdGVzIGFsbCBmaWxlcyBhdCBzdGFydHVwIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJVcGRhdGVzIGFsbCBwbGF5bGlzdHMsIHR1bmVyIGFuZCBYTUxUViBmaWxlcyBhdCBzdGFydHVwLiINCiAgICB9LA0KICAgICJjYWNoZUltYWdlcyI6DQogICAgew0KICAgICAgInRpdGxlIjogIkltYWdlIENhY2hpbmciLA0KICAgICAgImRlc2NyaXB0aW9uIjogIkFsbCBpbWFnZXMgZnJvbSB0aGUgWE1MVFYgZmlsZSBhcmUgY2FjaGVkLCBhbGxvd2luZyBmYXN0ZXIgcmVuZGVyaW5nIG9mIHRoZSBncmlkIGluIHRoZSBjbGllbnQuPGJyPkRvd25sb2FkaW5nIHRoZSBpbWFnZXMgbWF5IHRha2UgYSB3aGlsZSBhbmQgd2lsbCBiZSBkb25lIGluIHRoZSBiYWNrZ3JvdW5kLiINCiAgICB9LA0KICAgICJyZXBsYWNlRW1wdHlJbWFnZXMiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJSZXBsYWNlIG1pc3NpbmcgcHJvZ3JhbSBpbWFnZXMiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIklmIHRoZSBwb3N0ZXIgaW4gdGhlIFhNTFRWIHByb2dyYW0gaXMgbWlzc2luZywgdGhlIGNoYW5uZWwgbG9nbyB3aWxsIGJlIHVzZWQuIg0KICAgIH0sDQogICAgInh0ZXZlQXV0b1VwZGF0ZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIkF1dG9tYXRpYyB1cGRhdGUgb2YgeFRlVmUiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIklmIGEgbmV3IHZlcnNpb24gb2YgeFRlVmUgaXMgYXZhaWxhYmxlLCBpdCB3aWxsIGJlIGF1dG9tYXRpY2FsbHkgaW5zdGFsbGVkLiBUaGUgdXBkYXRlcyBhcmUgZG93bmxvYWRlZCBmcm9tIEdpdEh1Yi4iDQogICAgfSwNCiAgICAic3RyZWFtQnVmZmVyaW5nIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiU3RyZWFtIEJ1ZmZlciIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiRnVuY3Rpb25zIG9mIHRoZSBidWZmZXI6PGJyPi0gVGhlIHN0cmVhbSBpcyBwYXNzZWQgZnJvbSB4VGVWZSwgRkZtcGVnIG9yIFZMQyB0byBQbGV4LCBFbWJ5IG9yIE0zVSBQbGF5ZXI8YnI+LSBTbWFsbCBqZXJraW5nIG9mIHRoZSBzdHJlYW1zIGNhbiBiZSBjb21wZW5zYXRlZDxicj4tIEhMUyAvIE0zVTggc3VwcG9ydDxicj4tIFJUUCAvIFJUUFMgc3VwcG9ydCAob25seSBGRm1wZWcgb3IgVkxDKTxicj4tIFJlLXN0cmVhbWluZzxicj4tIFNlcGFyYXRlIHR1bmVyIGxpbWl0IGZvciBlYWNoIHBsYXlsaXN0IiwNCiAgICAgICJpbmZvX2ZhbHNlIjogIk5vIEJ1ZmZlciAoQ2xpZW50IGNvbm5lY3RzIHRvIHRoZSBzdHJlYW1pbmcgc2VydmVyKSIsDQogICAgICAiaW5mb194dGV2ZSI6ICJ4VGVWZSBjb25uZWN0cyB0byB0aGUgc3RyZWFtaW5nIHNlcnZlciIsDQogICAgICAiaW5mb19mZm1wZWciOiAiRkZtcGVnIGNvbm5lY3RzIHRvIHRoZSBzdHJlYW1pbmcgc2VydmVyIiwNCiAgICAgICJpbmZvX3ZsYyI6ICJWTEMgY29ubmVjdHMgdG8gdGhlIHN0cmVhbWluZyBzZXJ2ZXIiDQoNCiAgICB9LA0KICAgICJ1ZHB4eSI6DQogICAgew0KICAgICAgInRpdGxlIjogIlVEUHh5IGFkZHJlc3MiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIlRoZSBhZGRyZXNzIG9mIHlvdXIgVURQeHkgc2VydmVyLiBJZiBzZXQsIGFuZCB0aGUgY2hhbm5lbCBVUkxzIGluIHRoZSBtM3UgaXMgbXVsdGljYXN0LCB4VGVWZSB3aWxsIHJld3JpdGUgaXQgc28gdGhhdCBpdCBpcyBhY2Nlc3NlZCB2aWEgdGhlIFVEUHh5IHNlcnZpY2UuIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJob3N0OnBvcnQiDQogICAgfSwNCiAgICAiZmZtcGVnUGF0aCI6DQogICAgew0KICAgICAgInRpdGxlIjogIkZGbXBlZyBCaW5hcnkgUGF0aCIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiUGF0aCB0byBGRm1wZWcgYmluYXJ5LiIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiL3BhdGgvdG8vZmZtcGVnIg0KICAgIH0sDQogICAgImZmbXBlZ09wdGlvbnMiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJGRm1wZWcgT3B0aW9ucyIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiRkZtcGVnIG9wdGlvbnMuPGJyPk9ubHkgY2hhbmdlIGlmIHlvdSBrbm93IHdoYXQgeW91IGFyZSBkb2luZy48YnI+TGVhdmUgYmxhbmsgdG8gc2V0IGRlZmF1bHQgc2V0dGluZ3MuIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJMZWF2ZSBibGFuayB0byBzZXQgZGVmYXVsdCBzZXR0aW5ncyINCiAgICB9LA0KICAgICJ2bGNQYXRoIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiVkxDIC8gQ1ZMQyBCaW5hcnkgUGF0aCIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiUGF0aCB0byBWTEMgLyBDVkxDIGJpbmFyeS4iLA0KICAgICAgInBsYWNlaG9sZGVyIjogIi9wYXRoL3RvL2N2bGMiDQogICAgfSwNCiAgICAidmxjT3B0aW9ucyI6DQogICAgew0KICAgICAgInRpdGxlIjogIlZMQyAvIENWTEMgT3B0aW9ucyIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiVkxDIC8gQ1ZMQyBvcHRpb25zLjxicj5Pbmx5IGNoYW5nZSBpZiB5b3Uga25vdyB3aGF0IHlvdSBhcmUgZG9pbmcuPGJyPkxlYXZlIGJsYW5rIHRvIHNldCBkZWZhdWx0IHNldHRpbmdzLiIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiTGVhdmUgYmxhbmsgdG8gc2V0IGRlZmF1bHQgc2V0dGluZ3MiDQogICAgfSwNCiAgICAiYnVmZmVyU2l6ZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIkJ1ZmZlciBTaXplIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJCdWZmZXIgc2l6ZSBpbiBNQi48YnI+TTNVODogSWYgdGhlIFRTIHNlZ21lbnQgc21hbGxlciB0aGVuIHRoZSBidWZmZXIgc2l6ZSwgdGhlIGZpbGUgc2l6ZSBvZiB0aGUgc2VnbWVudCBpcyB1c2VkLiINCiAgICB9LA0KICAgICJidWZmZXJUaW1lb3V0IjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiVGltZW91dCBmb3IgbmV3IGNsaWVudCBjb25uZWN0aW9ucyIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiVGhlIHhUZVZlIGJ1ZmZlciB3YWl0cyB1bnRpbCBuZXcgY2xpZW50IGNvbm5lY3Rpb25zIGFyZSBlc3RhYmxpc2hlZC4gSGVscGZ1bCBmb3IgZmFzdCBjaGFubmVsIHN3aXRjaGluZy4gVmFsdWUgaW4gbWlsbGlzZWNvbmRzLiIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiMTAwIg0KICAgIH0sDQogICAgInVzZXJBZ2VudCI6DQogICAgew0KICAgICAgInRpdGxlIjogIlVzZXIgQWdlbnQiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIlVzZXIgQWdlbnQgZm9yIEhUVFAgcmVxdWVzdHMuIEZvciBldmVyeSBIVFRQIGNvbm5lY3Rpb24sIHRoaXMgdmFsdWUgaXMgdXNlZCBmb3IgdGhlIHVzZXIgYWdlbnQuIFNob3VsZCBvbmx5IGJlIGNoYW5nZWQgaWYgeFRlVmUgaXMgYmxvY2tlZC4iLA0KICAgICAgInBsYWNlaG9sZGVyIjogInhUZVZlIg0KICAgIH0sDQogICAgImJhY2t1cFBhdGgiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJMb2NhdGlvbiBmb3IgYXV0b21hdGljIGJhY2t1cHMiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIi9tbnQvZGF0YS9iYWNrdXAveHRldmUvIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJCZWZvcmUgYW55IHVwZGF0ZSBvZiB0aGUgcHJvdmlkZXIgZGF0YSBieSB0aGUgc2NoZWR1bGUsIHhUZVZlIGNyZWF0ZXMgYSBiYWNrdXAuIFRoZSBwYXRoIGZvciB0aGUgYXV0b21hdGljIGJhY2t1cHMgY2FuIGJlIGNoYW5nZWQuIHhUZVZlIHJlcXVpcmVzIHdyaXRlIHBlcm1pc3Npb24gZm9yIHRoaXMgZm9sZGVyLiINCiAgICB9LA0KICAgICJ0ZW1wUGF0aCI6DQogICAgew0KICAgICAgInRpdGxlIjogIkxvY2F0aW9uIGZvciB0aGUgdGVtcG9yYXJ5IGZpbGVzIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIvdG1wL3h0ZXZlLyIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiTG9jYXRpb24gZm9yIHRoZSBidWZmZXIgZmlsZXMuIg0KICAgIH0sDQogICAgImJhY2t1cEtlZXAiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJOdW1iZXIgb2YgYmFja3VwcyB0byBrZWVwIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJOdW1iZXIgb2YgYmFja3VwcyB0byBrZWVwLiBPbGRlciBiYWNrdXBzIGFyZSBhdXRvbWF0aWNhbGx5IGRlbGV0ZWQuIg0KICAgIH0sDQogICAgImF1dGhlbnRpY2F0aW9uV0VCIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiV0VCIEF1dGhlbnRpY2F0aW9uIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJBY2Nlc3MgdG8gdGhlIHdlYiBpbnRlcmZhY2Ugb25seSBwb3NzaWJsZSB3aXRoIGNyZWRlbnRpYWxzLiINCiAgICB9LA0KICAgICJhdXRoZW50aWNhdGlvblBNUyI6DQogICAgew0KICAgICAgInRpdGxlIjogIlBNUyBBdXRoZW50aWNhdGlvbiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiUGxleCByZXF1ZXN0cyBhcmUgb25seSBwb3NzaWJsZSB3aXRoIGF1dGhlbnRpY2F0aW9uLiA8YnI+PGI+V2FybmluZyEhITwvYj4gQWZ0ZXIgYWN0aXZhdGluZyB0aGlzIGZ1bmN0aW9uIHhUZVZlIG11c3QgYmUgZGVsZXRlIGluIHRoZSBQTVMgRFZSIHNldHRpbmdzIGFuZCBzZXQgdXAgYWdhaW4uIg0KICAgIH0sDQogICAgImF1dGhlbnRpY2F0aW9uTTNVIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiTTNVIEF1dGhlbnRpY2F0aW9uIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJEb3dubG9hZGluZyB0aGUgeHRldmUubTN1IGZpbGUgdmlhIGFuIEhUVFAgcmVxdWVzdCBpcyBvbmx5IHBvc3NpYmxlIHdpdGggYXV0aGVudGljYXRpb24uIg0KICAgIH0sDQogICAgImF1dGhlbnRpY2F0aW9uWE1MIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiWE1MIEF1dGhlbnRpY2F0aW9uIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJEb3dubG9hZGluZyB0aGUgeHRldmUueG1sIGZpbGUgdmlhIGFuIEhUVFAgcmVxdWVzdCBpcyBvbmx5IHBvc3NpYmxlIHdpdGggYXV0aGVudGljYXRpb24iDQogICAgfSwNCiAgICAiYXV0aGVudGljYXRpb25BUEkiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJBUEkgQXV0aGVudGljYXRpb24iLA0KICAgICAgImRlc2NyaXB0aW9uIjogIkFjY2VzcyB0byB0aGUgQVBJIGludGVyZmFjZSBpcyBvbmx5IHBvc3NpYmxlIHdpdGggYXV0aGVudGljYXRpb24uIg0KICAgIH0NCiAgfSwNCiAgIndpemFyZCI6DQogIHsNCiAgICAiZXBnU291cmNlIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiRVBHIFNvdXJjZSIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiUE1TOjxicj4tIFVzZSBFUEcgZGF0YSBmcm9tIFBsZXggb3IgRW1ieSA8YnI+PGJyPlhFUEc6PGJyPi0gVXNlIG9mIG9uZSBvciBtb3JlIFhNTFRWIGZpbGVzPGJyPi0gQ2hhbm5lbCBtYW5hZ2VtZW50PGJyPi0gTTNVIC8gWE1MVFYgZXhwb3J0IChIVFRQIGxpbmsgZm9yIElQVFYgYXBwcykiDQogICAgfSwNCiAgICAidHVuZXIiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJOdW1iZXIgb2YgdHVuZXJzIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJOdW1iZXIgb2YgcGFyYWxsZWwgY29ubmVjdGlvbnMgdGhhdCBjYW4gYmUgZXN0YWJsaXNoZWQgdG8gdGhlIHByb3ZpZGVyLjxicj5BdmFpbGFibGUgZm9yOiBQbGV4LCBFbWJ5IChIREhSKSwgTTNVICh3aXRoIGFjdGl2ZSBidWZmZXIpLjxicj5BZnRlciBhIGNoYW5nZSwgeFRlVmUgbXVzdCBiZSBkZWxldGUgaW4gdGhlIFBsZXggLyBFbWJ5IERWUiBzZXR0aW5ncyBhbmQgc2V0IHVwIGFnYWluLiINCiAgICB9LA0KICAgICJtM3UiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJNM1UgUGxheWxpc3QiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIkZpbGUgcGF0aCBvciBVUkwgb2YgdGhlIE0zVSIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiTG9jYWwgb3IgcmVtb3RlIHBsYXlsaXN0cyINCiAgICB9LA0KICAgICJ4bWx0diI6DQogICAgew0KICAgICAgInRpdGxlIjogIlhNTFRWIEZpbGUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIkZpbGUgcGF0aCBvciBVUkwgb2YgdGhlIFhNTFRWIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJMb2NhbCBvciByZW1vdGUgWE1MVFYgZmlsZSINCiAgICB9DQogIH0sDQogICJsb2dpbiI6DQogIHsNCiAgICAiZmFpbGVkIjogIlVzZXIgYXV0aGVudGljYXRpb24gZmFpbGVkIiwNCiAgICAiaGVhZGxpbmUiOiAiTG9naW4iLA0KICAgICJ1c2VybmFtZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIlVzZXJuYW1lIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJVc2VybmFtZSINCiAgICB9LA0KICAgICJwYXNzd29yZCI6DQogICAgew0KICAgICAgInRpdGxlIjogIlBhc3N3b3JkIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJQYXNzd29yZCINCiAgICB9DQogIH0sDQogICJhY2NvdW50IjoNCiAgew0KICAgICJmYWlsZWQiOiAiUGFzc3dvcmQgZG9lcyBub3QgbWF0Y2giLA0KICAgICJoZWFkbGluZSI6ICJDcmVhdGUgdXNlciBhY2NvdW50IiwNCiAgICAidXNlcm5hbWUiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJVc2VybmFtZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiVXNlcm5hbWUiDQogICAgfSwNCiAgICAicGFzc3dvcmQiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJQYXNzd29yZCIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiUGFzc3dvcmQiDQogICAgfSwNCiAgICAiY29uZmlybSI6DQogICAgew0KICAgICAgInRpdGxlIjogIkNvbmZpcm0iLA0KICAgICAgInBsYWNlaG9sZGVyIjogIkNvbmZpcm0iDQogICAgfQ0KICB9DQp9" webUI["html/login.html"] = "PCFkb2N0eXBlIGh0bWw+DQo8aHRtbD4NCiAgPGhlYWQ+DQogICAgPG1ldGEgY2hhcnNldD0idXRmLTgiPg0KICAgIDxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgsIGluaXRpYWwtc2NhbGU9MS4wIiAvPiANCiAgICA8dGl0bGU+eFRlVmU8L3RpdGxlPg0KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iY3NzL3NjcmVlbi5jc3MiIHR5cGU9InRleHQvY3NzIj4NCiAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9ImNzcy9iYXNlLmNzcyIgdHlwZT0idGV4dC9jc3MiPg0KICAgIDxzY3JpcHQgbGFuZ3VhZ2U9ImphdmFzY3JpcHQiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJqcy9uZXR3b3JrX3RzLmpzIj48L3NjcmlwdD4NCiAgICA8c2NyaXB0IGxhbmd1YWdlPSJqYXZhc2NyaXB0IiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ianMvYXV0aGVudGljYXRpb25fdHMuanMiPjwvc2NyaXB0Pg0KICA8L2hlYWQ+DQoNCiAgICA8Ym9keT4NCiAgICAgICAgICANCiAgICAgIDxkaXYgaWQ9ImhlYWRlciIgY2xhc3M9ImltZ0NlbnRlciI+PC9kaXY+DQoNCiAgICAgIDxkaXYgaWQ9ImJveCI+DQoNCiAgICAgICAgPGRpdiBpZD0iaGVhZGxpbmUiPg0KICAgICAgICAgIDxoMSBpZD0iaGVhZC10ZXh0IiBjbGFzcz0iY2VudGVyIj57ey5sb2dpbi5oZWFkbGluZX19PC9oMT4NCiAgICAgICAgPC9kaXY+DQoNCiAgICAgICAgPHAgaWQ9ImVyciIgY2xhc3M9ImVycm9yTXNnIGNlbnRlciI+e3suYXV0aGVudGljYXRpb25FcnJ9fTwvcD4NCg0KICAgICAgICA8ZGl2IGlkPSJjb250ZW50Ij4NCg0KICAgICAgICAgICAgPGZvcm0gaWQ9ImF1dGhlbnRpY2F0aW9uIiBhY3Rpb249IiIgbWV0aG9kPSJwb3N0Ij4NCg0KICAgICAgICAgICAgICA8aDU+e3subG9naW4udXNlcm5hbWUudGl0bGV9fTo8L2g1Pg0KICAgICAgICAgICAgICA8aW5wdXQgaWQ9InVzZXJuYW1lIiB0eXBlPSJ0ZXh0IiBuYW1lPSJ1c2VybmFtZSIgcGxhY2Vob2xkZXI9IlVzZXJuYW1lIiB2YWx1ZT0iIj4NCiAgICAgICAgICAgICAgPGg1Pnt7LmxvZ2luLnBhc3N3b3JkLnRpdGxlfX06PC9oNT4NCiAgICAgICAgICAgICAgPGlucHV0IGlkPSJwYXNzd29yZCIgdHlwZT0icGFzc3dvcmQiIG5hbWU9InBhc3N3b3JkIiBwbGFjZWhvbGRlcj0iUGFzc3dvcmQiIHZhbHVlPSIiPg0KDQogICAgICAgICAgICA8L2Zvcm0+DQoNCiAgICAgICAgPC9kaXY+DQoNCiAgICAgICAgPGRpdiBpZD0iYm94LWZvb3RlciI+DQogICAgICAgICAgPGlucHV0IGlkPSJzdWJtaXQiIGNsYXNzPSIiIHR5cGU9ImJ1dHRvbiIgdmFsdWU9Int7LmJ1dHRvbi5sb2dpbn19IiBvbmNsaWNrPSJqYXZhc2NyaXB0OiBsb2dpbigpOyI+DQogICAgICAgIDwvZGl2Pg0KICAgICAgICANCiAgICAgIDwvZGl2Pg0KDQogICAgPC9ib2R5Pg0KICAgIA0KPC9odG1sPg==" webUI["html/maintenance.html"] = "PCFkb2N0eXBlIGh0bWw+DQo8aHRtbD4NCiAgPGhlYWQ+DQogICAgPG1ldGEgY2hhcnNldD0idXRmLTgiPg0KICAgIDxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgsIGluaXRpYWwtc2NhbGU9MS4wIiAvPiANCiAgICA8dGl0bGU+eFRlVmU8L3RpdGxlPg0KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iY3NzL3NjcmVlbi5jc3MiIHR5cGU9InRleHQvY3NzIj4NCiAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9ImNzcy9iYXNlLmNzcyIgdHlwZT0idGV4dC9jc3MiPg0KICA8L2hlYWQ+DQoNCiAgICA8Ym9keT4NCiAgICAgICAgICANCiAgICAgIDxkaXYgaWQ9ImhlYWRlciIgY2xhc3M9ImltZ0NlbnRlciI+PC9kaXY+DQoNCiAgICAgIDxkaXYgaWQ9ImJveCI+DQoNCiAgICAgICAgPGRpdiBpZD0iaGVhZGxpbmUiPg0KICAgICAgICAgIDxoMSBpZD0iaGVhZC10ZXh0IiBjbGFzcz0iY2VudGVyIj5NYWludGVuYW5jZTwvaDE+ICAgICAgDQogICAgICAgIDwvZGl2PiAgDQoNCiAgICAgICAgPGRpdiBpZD0iY29udGVudCI+DQogICAgICAgICAgeFRlVmUgaXMgdXBkYXRpbmcgdGhlIGRhdGFiYXNlLCBwbGVhc2UgdHJ5IGFnYWluIGxhdGVyLg0KICAgICAgICA8L2Rpdj4NCg0KICAgICAgICA8ZGl2IGlkPSJib3gtZm9vdGVyIj48L2Rpdj4NCiAgICAgICAgDQogICAgICA8L2Rpdj4NCg0KICAgIDwvYm9keT4NCjwvaHRtbD4=" webUI["html/video/stream-limit.ts"] = "R0AREABC8CUAAcEAAP8B/wAB/IAUSBIBBkZGbXBlZwlTZXJ2aWNlMDF3fEPK//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////9HQAAQAACwDQABwQAAAAHwACqxBLL//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////0dQABAAArASAAHBAADhAPAAG+EA8AAVvU1W////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////R0EAMAdQAAB7DH4AAAAB4AAAgMAKMQAJEKERAAfYYQAAAAEJ8AAAAAFnZAAorNlAeAIn5cBEAAADAAQAAAMAyDxgxlgAAAABaOvjyyLAAAABBgX//6rcRem95tlIt5Ys2CDZI+7veDI2NCAtIGNvcmUgMTUyIHIyODU0IGU5YTU5MDMgLSBILjI2NC9NUEVHLTQgQVZDIGNvZGVjIC0gQ29weWxlZnQgMjAwMy0yMDE3IC0gaHR0cDovL3dHAQARd3cudmlkZW9sYW4ub3JnL3gyNjQuaHRtbCAtIG9wdGlvbnM6IGNhYmFjPTEgcmVmPTMgZGVibG9jaz0xOjA6MCBhbmFseXNlPTB4MzoweDExMyBtZT1oZXggc3VibWU9NyBwc3k9MSBwc3lfcmQ9MS4wMDowLjAwIG1peGVkX3JlZj0xIG1lX3JhbmdlPTE2IGNocm9tYV9tZT0xIHRyZWxsaXM9MSA4eDhkY3Q9MSBjcW09MCBkZUcBABJhZHpvbmU9MjEsMTEgZmFzdF9wc2tpcD0xIGNocm9tYV9xcF9vZmZzZXQ9LTIgdGhyZWFkcz02IGxvb2thaGVhZF90aHJlYWRzPTEgc2xpY2VkX3RocmVhZHM9MCBucj0wIGRlY2ltYXRlPTEgaW50ZXJsYWNlZD0wIGJsdXJheV9jb21wYXQ9MCBjb25zdHJhaW5lZF9pbnRyYT0wIGJmcmFtZXM9MyBiX3B5cmFtaWQ9MiBiX2FkRwEAE2FwdD0xIGJfYmlhcz0wIGRpcmVjdD0xIHdlaWdodGI9MSBvcGVuX2dvcD0wIHdlaWdodHA9MiBrZXlpbnQ9MjUwIGtleWludF9taW49MjUgc2NlbmVjdXQ9NDAgaW50cmFfcmVmcmVzaD0wIHJjX2xvb2thaGVhZD00MCByYz1jcmYgbWJ0cmVlPTEgY3JmPTIzLjAgcWNvbXA9MC42MCBxcG1pbj0wIHFwbWF4PTY5IHFwc3RlcD1HAQAUNCBpcF9yYXRpbz0xLjQwIGFxPTE6MS4wMACAAAABZYiEADv//vdOvwKbVMIqA5JXCvbKpCZZuVJrAfKmAAADAAADAAADAAADAAADAq7aiiFafTJvTQAAAwAAAwAAF1AAAAVUAAADAiYAAAMBNwAAAwDUAAADAMkAAAMA4gAAAwD+AAADATIAAAMCGgAABAQAAAYoAAAOwAAAAwAAAwAAAwAAAwAAAwAAAwAAAwAAAwAAAwAAAwAAA0cBABUAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAA2F55UwH3zADgCn7Xsg5urkZA62Mq62dWKwprJak9U0cjT1Yh9J7WRISuxmagZEf3SG5hJ5glLK+m1DQRdCFD2mN6YZGjkCTKwYyDxKlNHkaW8fuatJR0sAtCoVfOjRr2/NS+bw85zMQI7VFu7+JhD/Go1Q5RgMv5bIq0gpxJKRnF31ojI62CwCRiJ1dHa6nIwcU00zURwEAFhyu6/UdOQ6gXR/Fn3SkmUwkQsjmQF0XEAAAAwAAQkN8C3guxx7g23xd3I1uQvL9Dh+C+fpNfOmVma2q7DiUF3VD8o51I57iYniPq7fe7f2YnPwRwynt2WAsZSjTMgHnGbk5zsyy+rXIMy1p3notBIJkpSBHSuogn9FDL99PItYMLSYCXzbB1ngJo9jnaTgI0b904RmkSjuZtpKyt0ofkYfxNRrztwDGURi3JRPkpuouCWX8KWcxn8NHAQAXWrAsVbXQ0f+vby6QN9oHh0jRsBw7+79AAAsCUlIAAAMAAIGTVQt7SJOBNtpTiAsB1/AzhYzJ8lMVgRENWBT0VBkiPo9+OyjWfg6dlrISORs+GKnEy5aUKA1M9uXDtedogUi7S7uVd54Gj1Qb5NTw4Jix5w1Ejl/de0xvxERyv4b3rmZdsU72FOcfnbK1K8lG4wnxVzYPGiElBGSrNsWNXskCT++8dTbAQv4ejltKQDN2z2xpw5g1CkcBABjFGRM3p9Rp9BGLQ/gaCYSE37IZAAADAFsvgUK7rSLf56T0ZOVulX2oYo74ASEKbonCVfRcGAke05L38QhPtmJ8xRmebFR5/801CbQAWvnAOc2AWgY1coPTdBTZIfsBwU94Gu+qjaoR4dfBX9u8RZXmrbLBCqJ8wTgvf9kJu7/27gcTx8SsJfq40cjhNaRNiof2e8CF4imWObVdvBDpPRxSiR1tsORfA0r+gqjURLyvIwDsE+O9NkeiRwEAGZMG5kW8doFnKjj4QW/OIpFfzF+53Eb4LrnRmrkHqYA/RnqVvBWNpUSFdATxWKzy0MBYRpY4IoUCpCeWwgQ/9Ny0Yi1iQ++wmh1ay/SnYR5B8k+FpDYbWDODuSuCMmrTDKXjicAStFseuB4peB1Ufu7fitj0L0uZzCgGY5zkzbBp3bfXJQEGCnSwEtW+TY50gbhenVCesUfJKjvG6PshP5ScKPdVkZltrS4wx1CntFR+srvN3MjP6p1HAQAaM8+T4dTA6o28g/ki3+J9b5WD8oY+fVgTsb1jfV2GWWd2Hh8JK00uloyX94k2QHGzhbuiS1YKiEdCLz9Pt3RuxuTNm9XSlLwQvyRvfY6sKD8KIinvSq3XP//Kx5Ni82QOXvrn5eEmFlTGuT36Yax5OR4BI3UhdWSGGa0YoqeD7zcvWv64AAANbhz0PNupTjTGu6vxaQq6PcgarV8F7NT0zHSQCZ8KuEFdideJmx4581/BCMYXuJt5cEcBABufpZ3Gzdy5JLw0J2eg1hz70uf/nD82aqNxy/HUvEd6+w5woyIYb7nzl1eo/+ACzPidfiSKydCNxKh9e7tKjNNTJYRX+1f5A398n+2wKJPX7dRmPk4C0j/auaYtAMF+Ft5g6ZqxQuA071fEmj4uiYMR7F+JbZ7CjA98DObmNy/ZWoJQvMrvR3ep5XAmNFkqs1Ma20JWsiikVsr/jblTK0PBVnLul36knafsXUW38/19lMQo0HUcMvrmRwEAHI2OaNsvRTodm5RGcpDEKfXIqXsLfH53r0F3K+sfRvbk3u2ilZd/c5zH95TBbceTvFEt5mD6oPEhxHX3gId6ZBsNNUKUnWDxoX7MaYE38/ELMyIVzRxDCIEkf+q7aY6tcZEMrPBa352hxE6SJ+2y/zlDc8X4jSYerSPRgLBiUm/TSHdm/sHP7d/kl2fmIUNKBbeaghigfwmfDnaZ3wPkRi3oXIp3YypbLYpeup62X805+oYMAgynQd1HAQAdHLgV5nC45givqz8G4AAB0pcgXQpZhwRtJ0wE/aFEPMXugXV9NeZnpzJeXaijTBtaFonT4e+hZZXjLHhxTugKb085RNFOoT0GAB6b2twqc++PKcb796IKMKtNpGaUWjoFvBDGh4HrRguoZWCbLy2RFxUX8SmNUb7qfDXwIi4nY4i89/TcrSc0q64NPWA3SPmQ5D5/ZFbRzBtFuMVVmbEF0cxv9RoqLyW/VGkp+bBAmoMhAw82eI9VskcBAB7bidwIeUDbJvHb2Z8Ep/avJccAh157ZUytHDDW9DhmdbdBzT1TpsJFsFWe8FOQfaNpJVfj2nGqShY4+DhxRYxOpzXw2VF7hQpp6PqFUtyi4ib3VHETkSuHz+2uom/bMRbhw+hQ05xdXOHcFVpih+k58QKrhN+txmOmV3ULdeiVLUplf35jQJTUIZltXjTCZhljRc0sdqOZHDZjy58Sc6hmq8D6lztRR5jN6ifzzKdZbHOpMvK28A4ZRwEAHwyCdGDG4LksEyABPYPnzVuaVJHpUiKgtb3006VleBPo2EZenL5/vyGrjLMas0C6R0iyXZjr0xqvCfaFfxVO/+DQUMKaj0XLNNIrLqXxwzxzy2ENSUjNNySzfvDkpjuJVywa0uwsg60r6EURKgU15gAtbm3Kx4tjb3pRMM8SZHnsN075ztW98+aTrdbRryY9XR74p76dkImiqWIVRQAAAwAAerbiggDgwfd5iHYwqlkEXOqApTuXEhFHAQAQ1PUugOrA4HsFQsLzVf2RjOkhWvlC/kwNqqDXkwlUM6egLoIdgXAyBFgSXuM59iSh6DSi4LwFa/FhyGMrxPV0UF8QD9dGgSeXBUvExQHAGOHz98Mbwm3lBdIzxkzeGLDhi0wZ5SurQPpWomKoDW7t0a+GpQkmCEgVO7iBc/JrOFIt8BBRW1E3EOMv6Wpc5Bw9M2A1XVVaNSFyVkr4bJmsPdNLXAJ4UeKO9R1lUBhl+OhrxoG4RKVHp0cBABF4Om4vKIyHfOkDd6zL8NOXPLL7gS3TIX2EFGJwyyOzsp3WEnvyFp3pujaaLMn/lubQO3uY99+DKi2Io2lBhymLAR6LDBeQ7AhVrgnfiNz91OxGGiYYLcV2yR4f5zrcwMQZNJDrBZZB5gHIDL20vdPnM5RCWlhx/pWX/VbNt2slYDgCwcQp6S/f+sYDWW8d6kKnv4kberk4wmAhuvG6Y9SNfBDQ5l9qn/Obo+/QByc1yiGJRu8Gf6MCRwEAEoe8DYkkVe/6Ixqln5QQ/EQgnqBdcH9XhmfrybwZkozmwKLLqqVJH8KoMeYLCfFbfUaJbcR1M2fwEHGq8BQXjRJFgtHh3lCD2NBLo+9F2kwxA+U6o3SQoAiESygbnYzTRsRmJbxNCRKSLcIhfuhjjCaAi0Icfv4rxjBMuDTA3ZANJ/jmVtzwWUFolUII47bYNLfdylQl/XdlhiHX3vln9Ji8cLEbSL8BMxJ2EI8GBsnrIBeQBPJc+UNHAQATIY6b3+HKasi+GNJ2c21SbezgAtkzMWLCJOnux4sNbrOiNHjom7p+U1hZN9Nr5wuzsM8+1NBBB2pfg3/QKiCYs6b9pduydYs2HEo8FbJJO9uH/yhvTL9d6RHrHf9srnZkSZKhJ7J7mApu4eNNCFusU8sNmfV7H97V1FOBXT/6JShgEQxdnwWdgxDvO8PxjkwuGrYPamKBNG/zRiG5AbW+ikv3OBftfBdhuifSSqoWx0W/XRtyk55S8kcBABTW3x1rkDAHFUfqPG8dZSQWAtnA0fS2fwfdqEGWrbQvYFwWWVcRma+zWJHw2/lVzPD/mSdMieWiX8i5DWTg51gGKy0ftdjOBgAAAwAC/KwTiIpM5clRTlEEi87aAOb87wCHqn1gnPnLGPfQQiw2QYxiClSodV7wEhhJw6ToIwyUjyxYDwVnF2+7eRq7fijw2kLyk5C88BvU1OTdlPGHyBmiT3UXo3I7308/Mn49t3tnXLB8MdaOaVwaRwEAFbiVrH5lksx9oY9DCw61tAqU07scxCL86wtgcyZCmy2ZZ/2W79DRKs2QCu0op9Lw2QYj/OgOj6apaZTOtksj8+VKlTlQQnkV9sFudGr7gpsQoaxBjmrhVk1adbYaFkKCEUYRbDRJpZQDbv1RIRFlY/KmWweiUOZDX+3fplGzJs5LvbvgiM7THIlybfPIXTjS2SPmFm+rQ6T4X9BQocVCjzQvz6g2kp58j9jXT5sBBuu9tC7iTFfMEzZHAQAW0QFraUkCV6gEC2C8wvr2E+hXgJwCskVL+063JAWE9yhGOTyWD/fLQiiuxJ/88Zes8sHmBC+quRzE8SHNO8OIMMptzSvx1i2D8aBb0ksDLYEqwCXN8Lsz+71HkS8SdC0nDGQZqAm7DYd3/uBgR/J4FAOc0jvOUci0tSUbSVn2z+H03GNfHcZ+XgduswjjsUodtsUtRn4nXpryhElgMI3kr2OyFXf92YxZPgbhGubgcNlo+sZ4Z/ApNUcBABeS+kT7jvDiaynYNz51Kc4yccGFoXKWRhGdSRtXJFDck0iJWKT4opQng0gcHiUFaL9bf4jSqm56kxLcQ5YAgHkDZ0UGYh6QEEPPAfCpoDLCF9mL+/OEuHWZ9NOnW7TcJlKbhJOZEKkoE4KW3fDydJ3a3l4IOByTPx5LJAjAZoV1BtKInfF7g5OQU0G5EXJGhFWUsr8Sf48Q9LVjnWvDuawWdWPiS+BcWfUZoGIkK6NoPQR/qL1AIJhcRwEAGAOEUaznr61uMAnNb33549uKjSRk1nM/fUR2BA7+39FhNrmR3taY6qgM804qoHgCSbYS+YIKj8U9vxfATvknbWEZv4JF5hoFJaAN0bNc36f9VcnxAkGsb3r74Yko3jVackXvVrdcN76rT9izohLnH2yQem0zb5wOq7EtjPnGn2t4t4/9JDKIfVb2QikijBu8gHlSjvgVRWSYDIRCi2Zle5MtFyXOaIGwCRAv6PFD6mmJBUT2XimID7tHAQAZOkCES5EDxQ08m+f8cpxKkoyHem8Ex4m8xZ2DA4d39JDH02xtTRRfSfDrC/TqpIjzCtcVv/zzgSflzEbq/UKFH/Z7CbtsrVS2+ll2/CGSNsmOHGi5yrhPM/JSClEmt6IRtyk0FZ3r5cdREJwAKoXP4tNLpfjWSZbATEIGmr+OxqYxQMlzf/93+QrgM/g1HvmPFBPard2U8aKbHTEH3r/kFdkNmlE0EQi5b8TOCYIa/mpuWq/yMn7by0cBABrkhq6Rldw6p3qQyVsZsBpoW3OLgDe/7/pMx+iijZdk9jE9T0fcFh77YVfpjYex2//dcNszIlWr2vl65Z1+0cQQShk/R5GP20mU4dc78l3iyti4DcDCi6PdIU4nzdwZIpGFX9xIuPAHaNfyP4Nyr1K0j9h5STEAHsYX21+iN6CKiuWoWOm3ev+GGzt1NNmtc1W0OYicTiPoIVr1TGzQC+1Nd7izII3tPWn1PEtqM9+fXo32ibSZUvGsRwEAG28xtoQMOBX+QWzc6MLY+xdighCBxpzLcNRK09DBzvBjyt59TqRxzLpeKgJMb4hkrGZnI7ZB7k4WSdssIdlyXiqQOLW68TKxOi/m2l4eAg3OCdiWnrmhOdRSMVLPALUNPDXtBJE5hOD/rtb0FHxtGQKnmP64bBNEEEJCWqJO6W+Gy5Bj/1OPVO5Lb/mGT6SfZVe2RtKnX3ZVDyDZb1jHV0Y6RKS8+Ww1Ya57NIcyPDo3g06Ef4Vi2RpHAQAcWH+V9i+eiLHkvPKkSHT97ZZGFxrcu9T++hegAGupHOjZYoxGWV+zfmemcnV4Qc0p0Sb+bCBN/WYAmY2PsHr+MIroPJIqRxQacYxgv0Eh/ahn4Y8AHjDPnPRprvdugL71ZtfrhmqiLml/RA0I8xMa/JZ4jrmIOqM+Z+fLjB67UYM71w0xjsBG/PgXRORM5Qqkfa6vscWkOW3l2RaUeeyDnUES4bdGUahzOYND5CZ11DaxBi7FZpSS2kcBAB1UDuNag/7CUCi13BGNTDCy03A2H45ho7AAABa85YSo2ddxRWSmP/8M1+fhrnv2TvJk7zHcA5z9BfW6MKcG/ehOV8RoJWUXPPQvUS5U0mqa69CuPBPy9cA1FwAI3ipau/UmVf9WS+R7+XREZCdpkNc5acRUaY6VieEi58Gy3p/q3E9lT4f4oYx563YFbu2Mjwq/dN/ncWug4Nun06Ap71zELPDKDaexmC+kEhaf6dReVEeK+uZfg42ZRwEAHq4bLzMgvrZQb5Neabro0F+gcFiL7UdLm0y8LR7TPvIQ+Kevu6d1BghMMTKxPVSrBVH6F6mATlcYYyhZ6fc7mnHFrpCznzCepMqz3ro5tOUnl9iNq+BQQPFZZlKIVl/GEtg5jzNU88j4KpNvVAoa6Cb/P9X3gWXF7KWmnzgUsZM5mR4GvWJWIcg+IDfe/2FtphXajgL5wfiIK1jzzOr3tQ5xYrVpBvuyKmtdCfIrHoFt4i/42TRgGMJHAQAfCTLHw8EYKGd4hzY41zaYLjR4E4nuBnCtxuCX9FhYm/YnBE6exCJDSBtf1sfFAv5pgAOcF+CZrALrM4tRCUKQs0t0o0+8+ZU1dyyuCLBTtC+vJydoSGmMBg+XNyIPtNEtN7qGS9WWA81qcbxxzsc40CIJf78S26nBKAJuyPu+iX9ANPAyMrgOAVc95U6bJlSjLkP6CXXR2dJRvUv3raWkoAAOjJ71lTFvacoQwhCErx3cbavuczBzJ0cBABB+z7EDY6atdC4NZwX22iBmtZsaHUa3NaBIO7aD08FA7Kd0ugfbomTYomPBMuWwk/b3KMR0uhkyeHKC1RjYo4d/mMo97xS4ix+t+38cwQHmkYQH5Cm1BO6ezuTSevjTojq1hlXD39LxF8a/93o4Tojo+ZmPPJix6BuKlBIwjtpZb0M+nOEX8jPyyd96ytD4eWjOAt/heOiSF9hvmiN50BmkUiITCBF39iClDPO2k/Fag4BqTBbtubcLRwEAEUNMr0m0/lLKJ5ks1W5j+cRzJ3kSK0mRkjrPrr0eWASIwI6LNyATeQMrpq3uWQlAQ+9SdeWmTu5uHTgt+d8sFZe8JXcU+1JnZRSZ9yaoEC0i+bOkGfWyMpA85qtvAlKTBMOm6ub/5NMaKU/VAW9lEvkA9PprSonQVMnG4+BlH2JOh8TsTKkBZPVgILxDM8mFjQXm0TBsezlo4ABKvPWcftdHUaGyF7gP1XbV0exXEHfsSASfYRd0OZZHAQASC+/t5TafeJT36YiEZXYeQH2+IoK6ZxRnFgTmKOGcCCYd3KzwxTJp8XFrSbvg7LzTDnvjGYOaazdnbZt4/Jn3krhhlSRWjhWRqAyxMNVF8n18FXqTzJB1PKNbd7ax8R0AjZfFVC/ycdg6wATRrdRJSofJHpjwYHGQO+L2neTkvCrH/gUPD1U+SjdMlUvLS6vMXop0yzDX/L7HQcLXjKsR2lGDYBlM1UB2WHnq/qPBycWFFtPYyTlN90cBABPvVe8f0oNTNwJhtM/kLJBEZI3ZwCEWYk/wv9hIIWr3A4qkehY4+ptgTX/1///4JZ6dscO9HKuG6puRV3lR4ETvMwdKnHPSHjJF2aQeuvoGeA7yVT+AaeDi7V8ZlVYMc4uVncx1liUQapUssjXpK+2MxWQ7Cb5GU97Drj7W/oPo2Ptldofr3uIe6fvheMu/6aViZagqUWfdOTc0YXVHZzPFok9FEQJUWdUPZiJlfllKLIy/6aAyw8HuRwEAFKEU8CS7kA5ZslGAnKoBbCTNOXl4p9BBgCPqieSBknZibS3PcR/LjWgGifTDu5u2Wj+eAMmSM7P3HMAAAC+T9jKtui2s4cFmXoWX8va4/qVAzxWGs3w547v+Tmac4FyXAqNj0/rFe9k3Egw/P9Q1LxzxwDOEbknnvYdCGAAp8Ivp0KW4t+inn46uKR4RHHa3/VSY8znvIUPdudc1/K0jIEI/Q3pEL9pzjQZxtgqbGfHOMo5yI2dWIDlHAQAV/YbUhbsIYEjAICdYv/AE36OWoooY0Nf/2lmJx7BftLoE1dLDfZKeiAdmrhnpvihEEfTo0MaKnEoSfryZ2OAN9yMb5+fcL8FTpHFFCfvfivNdZyTFOvrxIc3hv+2TavaVMjhtrDqlErqEd/XPoVqKmAeHo/ORSn73CZ/cWNXX0JQ1pRuP8VvL2QwfnG2vq9nTXfiQrMzEeEpNIaeqZS29MfFP8+VCiKyM9p1vNhZC1NItrJ+gsFzJsEcBABbEKpgjE+ovbWLdj0EXyH8KO2Jmn2vTLCKigPqQhq3uaL/6o+uZWDa8dvkxNep66qHmLO7/821Audrn3I6tmZZWSE51J3/XYBVjpW9Fw0Bkr6GpAeDT7ybMGYdKJsd7/WZPZV+Db7zD1ZmulDiRnfN9EmSFStYYD0lEfqrCbP+xQuwtYvfYJsqIvl31t7RBZk/QV2ENWfDLEpMHt5tlrAv5w+3dl1lg2WcrFP2A/7e4sIIyRJo4HsLGRwEAFz/AGCMZq1GUNbPZoNkM+R2je+8sB+Gh/lgSXtAQZK4CwsR8tHn5hyV9QoAAAGJ3xJ/ZGmyBFBfvFt3Yyf/NFoecJXk49dlUxZvTtB0WRCewg6hn1yl3AH406dFPGEk44wMT7vPKyYJW4OT7kiDQvBsdpaU9TmUUKyup1MsILviQKXWAv+kecpWRTY51BniLudSBH3vmnE2l4hUOm7AVWQ3O8V048//RRvDBX7tSPIiWu+MxSSGZfLdHQAARAACwDQABwQAAAAHwACqxBLL//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////0dQABEAArASAAHBAADhAPAAG+EA8AAVvU1W////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////RwEAGO10tGlFAwyE91Tzg8923ovJk1dv2xh1gVlYQFtWdZ6NSQ8vgHM7/tMfIZPsqgCU856rdBJJRMDaor/oWA7pkvSmC2aqaC5fd/mkWUPTuG8fRhGqOY1rKxLNSI3HtTQAcuVBxRM0NfMw0ky/JMJYZiCgXcNsxpxl+khr/9fKtO5Fg2VNBti92xcZimHUZDJMQTBOY6vSR9L1N2O/kJQCpdfuc9bkcUTMjH/es/lAySxvbiislkohqkpHAQAZVatwHI0t9eHCUfDyWUEtuCNyDwQFOVMtaYEQJrTrhQX0VduT86F0u0wN9ag0uPsrmX6Rid/x5S7KI1SkS+qP6cdmgSP57uiF4dG6IKsWNfGBLY09H/CFlrg73WINQkkp2diKkdEmtZetn8+ZAKzR5eXN5FebiKt6pIkNLuSofjosypEs2o6boKsfpmbtOV0idOeWDM9C8EIcn3aZwk1s2KBDvt1DlY+i2Cuvhk3XoKLT+pq/bOC5QkcBABolcOXneZXLoQw9W1PH1f/of92Ytjj8okrWijcQAKlE5l8XoTb9qrOiZnDOhqwcMlB9H9rorq041I89hChohYoSkJElcM8V+r8WYN5axD1BNyfwaHAOm4UN2/VEYOkNSfMjmx2S0WW/F2ha8Jj4fc4QgqcXr+TnnbwqLkLTValK4Qa1pcv7PIbDq6zCUfxe04guZ8xEhPQjp17/G6IB/6uqIuo7pzuN2ILWNmJBMsawAinQy0KHE7HQRwEAGz1R+tt0cmQSjo1isoOsDDDIp3Tmizsn67P/OcHe/0kDfOxZ64ySuxIIL/dIIzhjEvRAf7spa1ZKukufXffNiEUgf2Dh1+Svgx4pc4AR8v3Kp5DA2FPhKaNALz2OOqAZkq4APojoxUc4cQJzOVMx3nKPN7LUwaZe9h5UYz/rr+O7LMCCGQBmZv+T+vfZ7MH+hgR0RuIm2WDgK0xWnYsjYgpdhPkOFmR9ypsthtXh18/3M3tIcz9yoZVHAQAcD8cm9dXbHuN4+yGebTg8JOyIFoRImB2o8d5inS5OiJXyBrySVrU4Fa1MzjPYLNulucjXgAAIoPdc/bfDnuKIc/a9sheUEUfQrQ448VMZ//WQwDCe5igCPqKczFJKJlDdha+0Q5QIimmwUxYyfbvp26689j/qAOiUFcqTfas3Q+SvP/xhToXvE9eJPwsbS6RH7k01YATeMm0rydZVwAxxrLS9pyCenFWkXN1PaPL/Poy9IQyFK00RNkcBAB3yQSzlj6PoCoBh32QZwW5Q1kSeVBOU7Do3dvkhOL5NnUI4ttFWYv1PMol7ZoW+Yj/GGQY5BB31FcMnl+YPTIJxJrh4ZXzrdaRUJAdJZ4Zfu/UuKVp597MBazkkqo6VZ+kaIa55znw1YrruHcZmImU3xw2gtDjOORIJditem0geEQwoVrxrKPS/+4ODbBhxPi0X10lBjIPGs3x+M84+ebMH1YsfbnxbPnYFG1YKifvd0N91ocx+DK3FRwEAHuKZ7ozvu2wsrpTRpTlKdI+uDOb1ROwsQ/sPFlaMgNtRfOmWhxG26B7kHd5ZLZe0cuEdA1sE5tjAIhqFLLNQCJkvcZ4vsFUG7Sd/21dRP1RxoEMqYzoAmHx7P8/1oFhPG3LyqmFm4Yg/8On9yygdzEcENDcwT0pW3gQgwMtqy0pNWA/iwHhUtT8pAZ0J9MIn0L86JkKL7IEsUy3h4MTqYfiCnE+E63xb1o0ig06TZr6WWPr/aVBCa9BHAQAfu9S4KEn/4HBrNuHU6wD5ScTeQ5t1rKcrO3OIA8IBCnH24QceeDn376IBFsMWypXDR/z6EAAAAwAAFhs+36OpsPrZqefoW5lZtwn5uW02DNDJn0WzXKHvi3VeD2ArLGEmY4UT5EykLlpp+24W4mnq0/b0DpKJGeP9/gmXd8dzAqzG/rAzwnD9R7efBvEg8vhF9rv1T4ak45NvSySq1WefGcipvYXEldjS7JUY1mWc9acYUQg0ONaQ30cBABAwN2JhmEe1e59DNT+kVr8blx2elmAQT6EbQ4aJAw3xeVjTHRFb1LHG4B7ggA9XA1ul3JePxANqg1S6yIpH3Pk+JGGaBgrgqC6+c1B8NDAnG/HE1v29xLaIF9kt/+XaLnfua/FzVNXtV5+ABnuVcJ8w1ARgdiewIev1oAkHX50VncMg23r2UgeqhxhYRWUdJW3xKXRzwBwW6fD6JB1E+e+tksyeQua9Mo9l+MjL+YOsS78h6Pto1PEpRwEAEY912w+d5D8ZhXzwlBcjKTsJgplzEsdxYDppRR3rwhgmZEEhxKYSAbR82MVWL6LRj1W5G/m/im/3mWc7OSyaTZDGJPilsghWdgIPUNP8yU7b2HiApE4goxjc/XdUAJo+LAMHEn8ZYHRJQ2fwVxf1ZbBsOqEcglft1bdl4weUIQvU7TRRBdd66RlcPo7or5OkhTlvG6fwWv2v6zPg38hAkGcANEb27RFoj3LmLgoqWA4OoSA4CIGnCl9HAQASFZYomwyHjvRRnlD0n6T1BYm652Lp0fAaojKnPakdQd++WlJsnPu5fjEzRo6Zg+EwLTvnHjKNQw5cExyWfk8hJqp3LsegNx/7u+Ezd/6MNodhmzPoF+LTb6BCFbCPwHgJ4bUp1YUWr7tyb4xYdEojhhTJ140OyFMrCkStDb+PEL/WJqFTw56zpU1aQWK/0cNp69jvTcJtgsskEkL0EMJeakI3/xQFHjmKzi/Rr9Cjd/nnx3mAedwYCkcBABMdbTIM6Kwho8RL8QYLZJwgeneAEc+qJ6nhLMzzHdDzXQSgQ6+KioMAhQLKbChryo1vOBWhCRT1e/6z1L6ApYgZAtuQDXWsKPfOrNSkf0JFonpGE4omnNnaQ6eUvsVoGnne+AAAAwAACOn9aEgzsgB6/iB10jVeKJi6jpoN2IlhkaPjUXiO/7/MTfMgvYkifLFmIi0qbyzxMv/f+9XFf5k4RflW2Qu0ZutzUKznuY7Ml8Ma0LIJR5x4RwEAFIJhwbdbbmXWxS4/Vj6rtX1NX60Ar+fetTN6P+mshdJt0rv/Pv+R/N5ZgUp/8e9tYrxYZz5b+4C3VXaruuHouUR5YKRlA4RNmcacgaxGDz6Ca+00EE1rXyGy/03udWMQPPkWEJmXU3g7bzSrIFytreC+EZNfVkgMuPYLTgxkvKA+e7H9PmmwLojNZdgTQi7Nala/tVnLQGAthQztBYI0y9H/uXju0axwnmopNvjdtPwMvhjMckg7EPFHAQAVTtct+JOyBmPENfuD3Y5En8dkZH+5jhAWPYgWv4INxpckQWu/979vIi/wJWGJFGJDMP//cfilLsEkQwH7CA3+wYURzLAu61mtmR/VG1qnqt0F92iYVULqF7CH1YVu0GcGsvnYLtWRfiKV47jT2HUCgtJUeL5QanujI43Kxdf8eiakEZkWiAQy4Nfvgw5zROnWOatZImIJHSL7RNmC3XNLFVvnrY6xKQNoReMVpcH8Sj7xTe/R0yy570cBABbh7k1iSoUoMqQYxOJodbHu9zS3msCs25Nqb3ZDhCtdWOsqvKvtrPZQ4XcOI+a6ihG/Ycmd+asxHg3VrQ6JG/pzFphe9c8TRV5yfWJYQgpoboaMniM5ppcybB53KlDIcab7dSYrttrbaYJBYUACFIyck+sfCXgCdAAAVAAAAwAAAwDDQAAAAwAEeAAAAwAAEiAAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMARwEAFwADAAADAAADASlycnNTmxnyBLcXsWz8h6WF0kYTGhHP8asasyLeBzDJ9gp5mHMGnpKbAjmdyZKkqLM/GPx32j5xbE1B/4BVb1CqOUh708D4c8SgbK4l8oH+7ntXSn+1ucd/8/mpMXAZkli7GqwRswPkf3iy73pwD0Lj1jtsvFV5Ya9pbK5XPJvnr5kAh5B2olRuayQficqQun3BaA+TLwI4Pet5fRsuu/NlLyByr9A+ZDEAkVGe729HAQAY7VmiGx1Ogtz4HMMQQAAAAwAQxL11ZI096au1I6RJP/y/sIb/M3lrvj7OsbbcGYu6AFxP7TCvVbqcDnZvz4Jvg3J9UCcXOZAawA8hwlkNrWHVOW4QQUMqCRS0hmubAxYpievo+EKMZFclBcpqmos+6tIq4yYuMm2mU7SHT2YXfi/smSQKGiQ5rOUPvaDibyW27+4HGz/LOV8On1IosaigeYiM2kPhtAMzDBMgFmkypIjkGoaWQ2xfZUcBABkLYUBb/feXPFLHLSkevtM5lBKWRqKPo2s10TOMa1i1iUxgwMr46RICL6ewK5XDbHNlzaD0EO+haLSR8mJrKjyktTxR1qF8CF8YpGNK3b4rtbZ68pn1Cycf8FMjDYTuNUCw6TyJQxAu6CFGaFgpS2pApj2wxHhN9xe7Bk8+zHQy+mNy9AV5Dn+ckwd78CNrtfT4JPGDeXq/oqpr2VwJCtXI2pz1d/eGU5RWvauNYDbJumMcZmoDLRQLRwEAGksa3WjicuJEvpE/WKZapUatBGpvl3Y/7YU/cd3HnppRvayufhAU+rp5PXdQB48ZjNRSQF0OzYiZ40gXb5wwhN+lDw86ULPV/R5FF8e7rR0Ncne5CJseKGSSKJdN7N6mE0WowZrVoslYamlOFF9EepFYXcul3MWr/8sHaW2ivgv6USTm9wmys9O5TTRogkLCkV51bMO5Nf26bSlsf8MHa5paD9RLq5PZ/O54+rQB8nL2NAZQyde1/5ZHAQAbjTU3beuNZI6wglFkDNfNBPhH6uv/MazQ4XfWwNSQ7aHrfORMZYpwCo9uHR9org13ueb/HwHvVsHHOjq6Ea6iIBWC5NjSHZ886ZqJ2f5UVzQqITMsQAvWPR/1H++IharnM3V/3vhl4qsEQGidY7vhk+jd0aVI+WqwGVjgIryjo2P+lo7eyR62jVTUHGrz8woJESAwviQcjk6RS12hH/rH/kokr884wXkNeMUbMMD1quFOgtZwYFTb6EcBABx/76VVTABvZ66Tpl7FFNKuyvTB22cx75z6QLpBGOkovrN/3stJ60KRDgSxKEQlBpm4sH3bkDmzy56AHBkdGIv/1abQQKuGoFTBBYl5+j7zE00Nj/AHdteq0oArBYZzAEvcDju230uEMV+YOfMQQiSojTVSR+4kHCTT3LvzU53EVHzD7ZmsKhyhCSrAH6um+HcPHESNZCknCIVwNRUHYWmUBQvBqQ6eFSSw3OBH8cfI92IzgTHchjeWRwEAHQ67+e5mho6aJfJ1DSfvRz6nm4wQlWUxmY3WoxgY7eSZSWnyDk5zUtxutuhTnLRwngGI2GAYptHV4/JE6hvICCrOVyXSO54J25RuUE+XqT0E9zKiKiHCd7McqAW/LG7aqUfRoGXO4+FzLs/4HJ/GEdYZb2/8tksmvDRED1XjzrAkTXnrsD+Y66hYBscvgm2D2IUm5DIirxrSHCtrDTo/P653/JPhOwcwB1ARpihyfMYpIRU/NNX2P/dHAQAe47PibRpj44bY8wv6RkvLrZAAFzeK7wAreuY1mQfzgAJ+NKZDvAL6cXghTWYbwl0vQvkUV/UXT2k+v6FWRYjSTd+EBVjBgFS6GqEzMEbQl6r/jGarqdgKOqVSDAch/A3JGSxAXRCY0U+TJ0Jss6CoiyEcz6VlcHWgVGLM715+t87wkNGc2PRJIv/m5YJ1Z5EpDjoDHEAW4ytyc7jm0Nm3P5fradcJlYNs7NA2RDK4UqyhjculF8vWWUcBAB9AptBsY/CA7o70Ymq7D+51DrpBVnhghBCERYgwY2AgCGIXmb0FP8mOi4SztMegdVsu3nYsu3wedsR4n7C3fBxFoXOtXR7jb9y2tdxaN+vE9U29rqeo09jeoE0DohbRndPDtqleKZ0M9JX1mITUVKc1h5Uyk2n4LUiu6y9FqRYqMhgnmJFyb4n0l1r0w2vEp5hZqQ6s+pincvbzhqo0cM0Eze+tLhKI5DSLp3ts9IKBsGkjflGPHcoFRwEAEK0Kf+WapwtI+Tbh9IF8OTLreFFPrGaD9iButWKDb8FZybOe1xnsUaFcof4ttxETtD5CzFPVFPrbKWQ+4i3OaCl/v3ehqlrEJFBXy6TUrtcE8imbhjou6Yp5ckgTS5NMhToX+FQ/SnHv3lG+B/oFkVnC59jZb2KObyb0IwwM3VOQwt65xyAHoBFD/3xsvJhC0UJcudSdXreuoOHVVJvvLCIDY9zLcG7Z+T1LtHLfRrJrK22yTCH+p4NHAQAR2MUOxiSRh77FN4Xq89SijTT1QcFcwJWgi7qxRPm0cvNXlOO3eKu8LzhxW+1r9oTUKe++y09Ar7D+jK7PtfcU51RJ6u9hxLL03qcNLM5F37FlVL7Ii6HRZtudEV617L76N7+dw+vfjJgAFFYNoCFVSGaWcim0NG7JY35/r6TYlg788HQMS5JTnU+fQW7OKewui/OE6wVhD5DwqIRtpx5QlRU5Du1ffsnT+4G09pqTfRhtOdkT1Jr/e0cBABJXIpvsDPvnr5cnvs8/o9CAe+0EIPMIFdgBJKfQx0TfNITZDVrus+nyfopE6lgvfrd1luEc5kas65cuQdwjHYTVCyzLN+wgmZnBOwrtSZuT00SpBvDJyiSSg9Okl8GB8uShlQ1IKC0UfSZ9E9kEbe3hBOJYk7FZrR0x179tvGBjXBx+LHlUNSKUkNm2wE0+3MB4X5VtpEfRxZXn1KxgzVENBVidWkXspbp+2vajsCIWsJ6QtRGG12dARwEAEwXVDuILuHUHe0YVozn5MeSxkHHLW6A/FhIOmBUlwa15+6I3sLvEfs/lvt3dg9qyV3WDyefrnnP8R7K1oUJffNqTYpk2x3tf1eP1lw1jCVs8Md6RfBp636Ao//6M2CJJr07dqQZ7JS2dJ4ekIlNKa6yvuzZDYgAdTjGmv4y8nUpwdH4blHePi4WE4zR9xDKjl7WopKtgXgFiw0Qygdqa0p8KMwBF4ei1J/NythnX82KmGtQh8RkVMidHAQAUkckmc83sODwEv5QRD+/8XbUZjc7OyVHeFDNLwdTrxZwbjM0oKaEYr9A9jVt2YyuIEvM4S0jx9t041mJeU4zNAAADAAD+wJN/aSH3oQjomrrvvYbLAY892upvZRpRdxKJhcO9kRE3HqOJo+dhziRHjYVsjnrEWxhlLrbQttswOzATqSgqofqVDqyptVyt+hRwQjP2Vp8jL+etFOL+4/yYP7izg3eH+ehTkGuhcXM/pL7KkZjDcM6m6EcBABV3+EtJpjSjvrKOei4iwHF3ie2AqHGbkkhaM/ciyuODy8Qubl2GxT/JLw6k3pqcQj0sjL1Eee3yEeqIFLLqgDbbBsu+x6/AxrcsalU1VpUVujcfRBm82qyIgD2l9tl96oF701i/7a3Y2ZQFsEuz3MmJWOJ8i3iAcDmtxbLyYKJQvFQB7GChv1hdsiOF8RgLQaRdOL4qjfRAOY8AIBfdooc5IgOsdbncGRZmSPD0mgjNJUKIb++krWDmRwEAFvb9EAAkNWIlXOFqNjYHpGUrwAKWtVTG32tuzoX1rF4kt6exM8j4BfAUCD9PR/47qqTLR8qo9BwTYMWR19SjX/sYsA4ADaB79JCYDTg+o/1WSVkjkATYEmjVZlaZgvwIRCEq6wRTeH9Xmt1ymBnu8BmSzdVWEdpBXybOA8Q2Hn/0qYhhfQIvJu0GJEZTY5WXUqQjT4YattfDV/vUg5h51OVXjtbE7JZfHnCjmytxSBOMbL688/hpm41HAQAXLSpU5jydyJaS3J5S2u70zpQFYtEgdjodrabpk+sY5bDt0SCAWVo3bKtWDTLQUfu1ryRljAxn9RKmG/PxLkez6l4+iAYuV78qyuuYf/r9S/VP1VPGnsRam6C37TPn0GK5RiVfAkcoBlWITztAAjwqpfifBkFp75i2Uhw1dovkWVuCWdl0JF9S6heMPqXuvZnqLty1sWwLmsjTK0RvoY+JS3OBTbQLu6RwXG54Qt/2KJBAVEDS/2HouEcBABhCnS4sa3Kf28wcXVk7uLQ/tgWCQOltgo0+fadM0nOV6Ct7HmQgh1/c+Hx+aTHqdCFmHf4U+LzI1irsvE0iygXVwq3gaxQfOpGVuNhKx40xYOJCv7GeiOHxGv1/TVcHeTggQQub0Ce7OJETW3zL2ijEvFr/90IpEJjGVcuGXlHT4YGT+sEgiww7LXPLhV+mRVs+dQCZLqkhFOOqXHIMSc1f2pjxQ/0AnMD4G19aAr6aSux4Un6zJV6eRwEAGWmqjXInxpYxmhZUgnGD4hHccy8iX7PXAzN2X5vepIyAo2Pt/3eM6VfzczMJdlQBT7OB78fa1XJvQguJXp0/IeoQXzyyq6IKbsJY/Fq8YIV8Nb7x3CLandnKjBSu5tpcBORjKSwfGB80kyqJy8MIdtD88MT5Vk2BE4Mx+qxPj1uGsNcqJokvDLyGUziFTI8XALCj6SL+RZNb5+8ejK2PZrv/JJcoL0RVzKxJ4CQ1DwiDGRZesmCcIslHAQAatdKwVX6Xfcep1RT38EuHBV7fg3RJ/PYvSJqMCFZd5lOXJh9YpTZQ0TyWNegCEGlA353UkXS0g9RdUFOMrVsBzvBlQlavBQK/tT0MV7YEiCmtKxXwz+D6E5K2HkXSztUb0L3XMYLhs4ZfWOEZ/vn5FL/6uxSlrW6irjtnM1J+bBTHmrgO5Zvx56BO7cpe7+SSYTa+P3HPNTDvnhth6RZHkIAMc+fwXod00HcrfYaEUP5vUjNisffDVEcBABtwZ7eaZH715QL+vN2lkyrfofshaE8HQ9UllaoJe4PSvUzzid3X95s8WbJv6A76JYODVx21aCqpi2ourmt/o4H9IXsSp5JsNnYOpGwb7Ju0oL/WeSNKWGSWkQug3XLox83iBBARgNDJUMkoCJQPrL9KSebkr0T6WVp2FggtoeiPsDjrsz1VlfsFkOOIIQpJmpzeLVzCsuefvxwqdnJflpQSMY6XFBVJSMRLtrQLQFOm1Y8A4UXo/gB0RwEAHEdgReRhgFYhRCwRO4hsBkniGCbjjOxpUyPGiHd8zz8D9mRud+NCP9OU30S6fwtaFSfKHhmut9b6HDHkdeFLYRj4PCRzwnibxQ/cXEblVnM47wbCN3iy4eHjYB5MoIICrSYmd8nt4V0toLs084KJlmnur5FbApYM4W79ff4oZkW88Cg8Fv8TnWhh1Hqc4UlhMbRKm2QxDgfBxar3U7BwNR6prrXXjqfR7ja3tPli+H7Jez/xcTg32QpHAQAdTa7pSSgBvmOqzz175NAFIhwE9p3d71F9jLvhaPv8q1iKopL0kizwzEWElnXWmNhfLkl/Au8KujnoKUaxVdTe+zAZm2dOkejnpNVtVj0Aw9wKcG3ZQ1iRZrUFRIoPKYlmR+oi0LrupuhYABtgPbdCbDtezGTr0nw9wVd/rZ6V+1wcoJ6+8VAVueIdwI3brqm6EoFHiI8L6lER+9SefB8fHo4NYgr/I8jSxaa/2PLX2K/DjrlY6bN8fEcBAB7DXsuh8DITF6CYWj2HTFvqfzlic3QHXnHtvsTFNpyVY1LY8y/fRK2mwALN6IB5W3OuyoKiA3K0lJdQUv2gYhHWvPTV218HYrD0rkbMxRH0SiEEkrHDeOt5T1HtWD13D2/QvMu535fsfZyeaFDjdCE9M0Xi8Lfc7Xj1ZNGend7Jo7/cEiczFkc1vB4z2JpFGZreV2EdquyEzC2STFJtfimyx8QlLngEuR1cxH+lWEcFX+mvBa/eqktIRwEAH6VazFLPNsnHZqsI66TVoArQuUUGFAzr8MT8GZ9V6qpZa5D0jA/4eGi6Kq0smUgRExnqIbSMLWqDf/Pk2YT3MpHTu9VE3Dn9blgB6KsVIkWnB98Y2n/6DrZDcF94Ndu0Ka4U/RZwdV5O5KcO+lU2ZiIOYTYZ6Ie0d+tApxYxJ+YmxaDoCyRNe6crw/yzR5SflT8ddi/E2BM+l+nwVDiKZ/714fmrBxFKWuqLiQNHV19o1cZ8Ubun+ZtHQAASAACwDQABwQAAAAHwACqxBLL//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////0dQABIAArASAAHBAADhAPAAG+EA8AAVvU1W////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////RwEAEH1s3BdtHdF1ln55B24wdACF/ggcRtPmB4IUB6cZJ+m32I4R48ZkdhAFBulgWcsv0wZwH0o1yi3i4qm3rJ98AUKdB9PsNyG9gURV0bTw4myAj6g5Dgodfv6w9bsbOxsGUWkvgAJ3rrR010BvZbIa6CMRCQRjxkCfRF77ansRJZT0JzhtYeSS/ZJob8Rr2jrng3W2rkmHtE+rdqlPiHxmwkRZvYGhBxwiJO2L6f+l/cABsfs09rA+A0pHAQAREZay3TBUIAfMWhApE+LaPgeyOYtaPFONA9aC0h4QrFkaLZfb86678MK+zLgqDBsDoj50eZHMVcczRjs4sYlv7RG8RIWKb5lB9Kn/8+CkxiiA11cHH1yzLX2SKCmhsak/+P/zYQ1EDvEj33bl9e3Jd62cTI+Qw99KrsWnUMN8hFNeXzoGHA3aec+Li4NFboF8sa6lCPR6Csxsvxw8DJaWCnER5Z0p+nKhXavF/eNHQ0DX47ohycc87UcBABKsYHCHXXe3vK1cFYDWO6rhwM6hxCdJ+/X+VB1akQejL6iBMdUPuadUqBnbprwJM0dWpSSn9uuZZeqe46iZOGIJUo69d8x+ZSvPcBH/dK1Y0LJnoWdgWH51SQg7eYqcwjQW3BOy7ZF02Hn1EhTuhsN7ms8zv3WIeEBDBq0T3Idl+Tmw9iJU9skVYiwygHG2+0XwrLa6y+uiQPwMzrnEr1kuf24XoAqrJTZQiVH3aQF4d94yDreWu2KPRwEAE2FsynHZaUcBXEFbeX0nSxZ7sRcRjJvc7RYOny6N8QFwKDVO7jpRWWYM55kuepBOyZ+7BFYeG+FU1kR+ZfmqyDNkD4D1IPwNh6u9JQxDymfN/aMcQC3WxdvCKquPsAut6dugpGkOFtIe+W3ayc4V/J978P+h1EDFMbFjxRPuXht0K2dBQZCJ0ybISUDqWzhPuep8CdxSU4MvMVfdXh7FLl/BqKJUTT+vM+Pz3XnqCQQmH5TjQ4CK55VHAQAUEtgfkBwIYgtwHkhjmtLw7HNTeJeMfTjATEKcyuKzItSeYxHBmGzQ/+G2otpPCOkVAXJ9mfx7LxrW4joZ0ttTRQJ/wqMUK1IN349LiJoo8y/+FwN4jPNDwIleJG697riqnmLOweFW8spHKLBfnHcyC1pG6EIxFpTqUQ0KHqXD/KXIHKioJNAOVwQ1Gfloxebo/Tdtd00dpHP3gcsAOnV75APCYOjVIlwm2X6ViDeZw6Btdb/Br/+yokcBABU3+eOESLlneGbR5SLiL8wPkoRaZ5X7xFlMTMvsv9yHk26bVdmsubSdbYS1Hy64n0+NnL7C1aLD7aJxOudMjVW5goZbfO2KxBQkCD4HFA284wbaB5vOL7mRilCn6YEs1kiwf22+fBLNUmXDb2p353wrD/ygTDhlki66USvUmd/ZAs9uzAddegEzy7Xn00YysWTu/hegYyZtWFC+X5dhLubWJ7n96y5wjrP7PAOXoQQtFUH9j/rBiP/7RwEAFnL/wYKYuj80mPGtimSbF/E9K7XwjwBz8yHZubmVMTCmwkZBM4h0FR1thnUGiSjqjJT6SfunWCZ/dZDQplrzS00UKcUP399SyM+nNG1br8Za0ZYwWch8nyLHYXSRuxdnrfUUespsOQo1cWSLGf0pV2HIcHoiAAEKwPU6irB5BSoFvB1qKVjgEk+QwAEYAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAABHAQA3pAD/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////AwAAAwAAAwAAAwAAAwAAAwBbwUdBABgAAAHgAACAwAoxAAmBIREAB/SBAAAAAQnwAAAAAUGaJGxDv/6plgAAAwAAAwAAAwAAAwAAAwAAAwAAAwAKCKB0AIhy1ftwLNISWucTFC7xeBcaIzP3oZjZo8uT9hqZVstWGnrPz+vjaA5FuCO+K2w7/o39LygDO7aL+0zSrN90LW7r133x8+f+PEKk8d7pd2fj4RYuMOXOYunzFzRX/4IvR1XsK5WJYwVkOca3yfo7DTvUBP9rgSiTRwEAGQD6CFK1PBC4qYCa+coLVnX+jgODNrau5YJXIekDI4+wUNV+5T5HE4e2t5EGAjn77+kC1Vghmvx8KqPnylVUvsaTofheggxHsPuxn1zQt6nA59UglrRUMn8b4pmrvfqTBSqU949+AcNAI6M/eAqz6r0RG5KNeBhx8R2f0x2kujwHU3pc3rlPb6ZrFM/2HiG97eEIezrvWFG7YAAAAwAAAwAE1KRo1VfbdZQ/tOpNGxFmTcQoFidyD2tHAQAapTTIErUKA2Rc9uIzGJu+oW0uNOxRyl6oJNUNJp5L9TIshNS1CmUKgdCaE3LkLwdE8iUkUnIGfWLiWpWmjzsINYC8dnDaSptB53yJkBu0SsR00oo1PZ0pl4ZzoXGSYQJTPaVCbj6FNqm5wcnUqKTB/rgHdPdnDj0K8asLABeo/n3XCXrDorI+LYSD1FBgmV9O7RZdjfL0NnXOQkiq/ZGirwVV0cUF1aHtZx1yHlAAZKuuu7TqB13CAUcBADuRAP///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////yj/IrOvAEoXDNGy+nrxWN0l8cmuqWYaUJpuM9XgAAADAAADAAKmR0EAPAcQAACJHH4AAAAB4AAAgMAKMQAJSOERAAkQoQAAAAEJ8AAAAAFBnkJ4hf8AAAMAAAMAAAMAAAMAAAMAAAMAAAMAC/BmhyuvLmkCgKTgACEXfOVvHRHdpBEEmTTz9pIZCa2FD0CXukzDCakOHekTpJQSdsfd7a/jjM1/5lBtKCAGQ6zOCSQ6DeKtyw+CugDuuglGipwmvQW+FIDjnZ6HRd0uaSOGy6VB3h9MI1o4nqaCqVwwIgubYZFHAQA9XgD////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////WcZrO6BEiqf8pCxYwlz2mkdUzY/ipM/TIHS4m5xQAAAMAAAMAAA5sVm90p14dlvWgBgY7XQ9KVOJKLtaMAN5KiffVQtNuzW5DfL+RewZpAAADAAADAAAQMUdBAB4AAAHgAACAgAUhAAkswQAAAAEJ8AAAAAEBnmF0Qr8AAAMAAAMAAAMAAAMAAAMAAAMAAAMAABJfBjP2+4+W7ZybyT130+Ma4WSqICfd/dS4YtjrLlmh5VBlfrtwJqdN1PBTYDkwGOOONqZQeFN6lLGJoDzvuh3kv1aDBLqug+JhvrSeu5ebnvcrtQzb2REwJL3h9mvtkr0WfDu4AAADAAADAAs32Y4C/6Ns79oCGj6oqLltY3T4I0/QRwEAP5wA//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////8BeoWLRnKQmVgO/RBoBfcK85AAAAMAAAMACFhHQQAwBxAAAJcsfgAAAAHgAACAwAoxAAllAREACUjhAAAAAQnwAAAAAQGeY2pCvwAAAwAAAwAAAwAAAwAAAwAAAwAAAwAAEmDKfLGXsvBBQPNYXlEd6WueJ4deApfcHESlG+7V6u0AiWQqJvNZYM+3Js3Lj9Ldc9yYIHqruVwfMtCYGlX3wMavI/DrhMuJw+RreIF8SKsJD8CMccAAAAMAAAMACrFZOBgEqaP/8EyWsAHV6CgcAgfyox/roEcBADGuAP//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////AAADAAADAHTBR0EAEgAAAeAAAIDACjEACfGhEQAJZQEAAAABCfAAAAABQZpoSahBaJlMCHf//qmWAAADAAADAAADAAADAAADAAADAAADAAALf8A2bry6lUyIAQGNFfVK2Cd7h4qDqmqpvmXfkfTwo2Ab79AHhajxJ4MPWIgAAA84xLRIx7I2CrWjWe96OvgkzgS9mtvhuxdzAgpuIOJI3DEY9mviDDZz8XSAAAADAAADAB7AZkj9AAHHGvk+Pzlku8UkWa5HAQAzogD//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////6HjAkbF/gsWuvw4QAAAAwAAAwAccUdBADQHEAAApTx+AAAAAeAAAIDACjEACblhEQAJgSEAAAABCfAAAAABQZ6GRREsL/8AAAMAAAMAAAMAAAMAAAMAAAMAAAMAAA3URJB/3lMHSmOd0GYZnfpoR80WdqxlyHzPX+V81VUMeXIGrRgq5agd+ACdjoGI036yQ/rmpGw0CmMBrKwpI+nwFo3SP0s1rI2yHBZaiPJjSUgw33rBkxXcq55kfLf2sAAAAwAAAwACBWolidWDnIeQAAADRwEANbEA//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////8AAAMADulHQQA2NAD///////////////////////////////////////////////////////////////////8AAAHgAACAgAUhAAmdQQAAAAEJ8AAAAAEBnqV0Qr8AAAMAAAMAAAMAAAMAAAMAAAMAAAMAABJXNihCnx11JUosH2hBE53O/YN+GPHqcnJiQBIf3maTAAj5iRt+7GYUKBAU9iCXTiouCjGYgAAAAwAAAwA9p4HQBg2cAAADAAADAADGgUdBADc4EAAAs0x+AP////////////////////////////////////////////////////////////////8AAAHgAACAwAoxAAnVgREACblhAAAAAQnwAAAAAQGep2pCvwAAAwAAAwAAAwAAAwAAAwAAAwAAAwAAAwBR6/L83y+ZevtMZ0FW4lp8qV7fVXQAhLAWlS6mDxvpaSUgChorvgTMXtxJEIAAAAMAAAMACqFCAAADAAADAAADAAz4R0EAOCsA////////////////////////////////////////////////////////AAAB4AAAgMAKMQALYiERAAnVgQAAAAEJ8AAAAAFBmqxJqEFsmUwId//+qZYAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAApQTq0hABLvkcWCYrAaRRPNDrECJGlF/11BYvG9+JJ9Y86nxnmQzPxtAAe1UgOsXAAADAAADAAADAAADAAADAAADAAADA/JHQQA5JhAAAMFcfgD/////////////////////////////////////////AAAB4AAAgMAKMQALKeERAAnxoQAAAAEJ8AAAAAFBnspFFSwv/wAAAwAAAwAAAwAAAwAAAwAAAwAAAwAADdRFmvrVE0KXDOGwWddlwYa1foib7tXZKmkua6R4APb4b8+tXwdSNNqgf2IVNwGTohgQAcMvp6SiQxpiQym4AAADAAADAANUNUAAAAMAAAMAAAMBN0dBADo8AP//////////////////////////////////////////////////////////////////////////////AAAB4AAAgIAFIQALDcEAAAABCfAAAAABAZ7pdEK/AAADAAADAAADAAADAAADAAADAAADAAADAFHTAfujIUaaLSuklb9y0/so9AEtQAqkAxOviALQZ5jNt/iOkABrCOZ4md0iUnFwAAADAAADAALwckAAAAMAAAMAAATcR0EAO0IQAADPbH4A//////////////////////////////////////////////////////////////////////////////8AAAHgAACAwAoxAAtGAREACynhAAAAAQnwAAAAAQGe62pCvwAAAwAAAwAAAwAAAwAAAwAAAwAAAwAAAwBR6/L83y+WryR9gmVKPGbIhJpkgAFgHCej3gB6rAHPgHHAAAADAAADAAAYIV0AAAMAAAMAAAMABnxHQQA8UQD//////////////////////////////////////////////////////////////////////////////////////////////////////////wAAAeAAAIDACjEAC9KhEQALRgEAAAABCfAAAAABQZrwSahBbJlMCG///qeEAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAAZ8UdBAD00EAAA3Xx+AP///////////////////////////////////////////////////////////wAAAeAAAIDACjEAC5phEQALYiEAAAABCfAAAAABQZ8ORRUsL/8AAAMAAAMAAAMAAAMAAAMAAAMAAAMAAA3URZr61RNClwzhI2ZXdRHYLZWc1yTgKRhTIXBNABHQKIIyYNyc+AaEn1jhATEAAAMAAAMAAAMAckkIAAADAAADAAADAEbBR0EAPkYA////////////////////////////////////////////////////////////////////////////////////////////AAAB4AAAgIAFIQALfkEAAAABCfAAAAABAZ8tdEK/AAADAAADAAADAAADAAADAAADAAADAAADAFHTAfujIUAYRtY0f/43cIs2OjxACR2hMR1QBGYX+34JGAAAAwAAAwAAAwKEJ6AAAAMAAAMAAAMA3oFHQQA/QhAAAOuMfgD//////////////////////////////////////////////////////////////////////////////wAAAeAAAIDACjEAC7aBEQALmmEAAAABCfAAAAABAZ8vakK/AAADAAADAAADAAADAAADAAADAAADAAADAFHr8vzfL5avJH2CZUo8ZsiEmmSAAWAcJ6PeAHqsAc+AccAAAAMAAAMAABghXQAAAwAAAwAAAwAGfEdBADBRAP//////////////////////////////////////////////////////////////////////////////////////////////////////////AAAB4AAAgMAKMQANQyERAAu2gQAAAAEJ8AAAAAFBmzRJqEFsmUwIZ//+nhAAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAGVAR0EAMTQQAAD5nH4A////////////////////////////////////////////////////////////AAAB4AAAgMAKMQANCuERAAvSoQAAAAEJ8AAAAAFBn1JFFSwv/wAAAwAAAwAAAwAAAwAAAwAAAwAAAwAADdRFmvrVE0KXDOEjZld1EdgtlZzXJOApGFMhcE0AEdAogjJg3Jz4BoSfWOEBMQAAAwAAAwAAAwBySQgAAAMAAAMAAAMARsFHQQAyRgD///////////////////////////////////////////////////////////////////////////////////////////8AAAHgAACAgAUhAAvuwQAAAAEJ8AAAAAEBn3F0Qr8AAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAUdMB+6MhQBhG1jR//jdwizY6PEAJHaExHVAEZhf7fgkYAAADAAADAAADAoQnoAAAAwAAAwAAAwDegEdBADNCEAABB6x+AP//////////////////////////////////////////////////////////////////////////////AAAB4AAAgMAKMQANJwERAA0K4QAAAAEJ8AAAAAEBn3NqQr8AAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAUevy/N8vlq8kfYJlSjxmyISaZIABYBwno94AeqwBz4BxwAAAAwAAAwAAGCFdAAADAAADAAADAAZ8R0EANFIA////////////////////////////////////////////////////////////////////////////////////////////////////////////AAAB4AAAgMAKMQANs6ERAA0nAQAAAAEJ8AAAAAFBm3hJqEFsmUwIV//+OEAAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAYtHQQA1NBAAARW8fgD///////////////////////////////////////////////////////////8AAAHgAACAwAoxAA17YREADUMhAAAAAQnwAAAAAUGflkUVLC//AAADAAADAAADAAADAAADAAADAAADAAAN1EWa+tUTQpcM4SNmV3UR2C2VnNck4CkYUyFwTQAR0CiCMmDcnPgGhJ9Y4QExAAADAAADAAADAHJJCAAAAwAAAwAAAwBGwEdBADZGAP///////////////////////////////////////////////////////////////////////////////////////////wAAAeAAAICABSEADV9BAAAAAQnwAAAAAQGftXRCvwAAAwAAAwAAAwAAAwAAAwAAAwAAAwAAAwBR0wH7oyFAGEbWNH/+N3CLNjo8QAkdoTEdUARmF/t+CRgAAAMAAAMAAAMChCegAAADAAADAAADAN6BR0EAN0IQAAEjzH4A//////////////////////////////////////////////////////////////////////////////8AAAHgAACAwAoxAA2XgREADXthAAAAAQnwAAAAAQGft2pCvwAAAwAAAwAAAwAAAwAAAwAAAwAAAwAAAwBR6/L83y+WryR9gmVKPGbIhJpkgAFgHCej3gB6rAHPgHHAAAADAAADAAAYIV0AAAMAAAMAAAMABn0=" diff --git a/ts/menu_ts.ts b/ts/menu_ts.ts index d80e031..d1c8934 100644 --- a/ts/menu_ts.ts +++ b/ts/menu_ts.ts @@ -56,7 +56,7 @@ class MainMenuItem extends MainMenu { break case "filter": - this.tableHeader = ["{{.filter.table.name}}", "{{.filter.table.type}}", "{{.filter.table.filter}}"] + this.tableHeader = ["{{.filter.table.startingChannel}}", "{{.filter.table.name}}", "{{.filter.table.type}}", "{{.filter.table.filter}}"] break case "users": @@ -213,6 +213,12 @@ class Content { tr.setAttribute('onclick', 'javascript: openPopUp("' + data[key]["type"] + '", this)') + var cell:Cell = new Cell() + cell.child = true + cell.childType = "P" + cell.value = data[key]["startingChannel"] + tr.appendChild(cell.createCell()) + var cell:Cell = new Cell() cell.child = true cell.childType = "P" @@ -803,6 +809,31 @@ class ShowContent extends Content { } + if (menuKey == "filter") { + + if (element == "{{.filter.table.startingChannel}}") { + cell.onclick = true + cell.onclickFunction = "javascript: sortTable(0);" + cell.tdClassName = "sortThis" + } + + if (element == "{{.filter.table.name}}") { + cell.onclick = true + cell.onclickFunction = "javascript: sortTable(1);" + } + + if (element == "{{.filter.table.type}}") { + cell.onclick = true + cell.onclickFunction = "javascript: sortTable(2);" + } + + if (element == "{{.filter.table.filter}}") { + cell.onclick = true + cell.onclickFunction = "javascript: sortTable(3);" + } + + } + header.appendChild(cell.createCell()) }); From 98a64685ac2814a4f77e31ae18310cacbae1c467 Mon Sep 17 00:00:00 2001 From: SCP002 Date: Sat, 16 Apr 2022 14:51:17 +0300 Subject: [PATCH 083/189] Update menu_ts.js --- html/js/menu_ts.js | 26 +++++++++++++++++++++++++- 1 file changed, 25 insertions(+), 1 deletion(-) diff --git a/html/js/menu_ts.js b/html/js/menu_ts.js index 92edbec..094cb96 100644 --- a/html/js/menu_ts.js +++ b/html/js/menu_ts.js @@ -41,7 +41,7 @@ class MainMenuItem extends MainMenu { this.tableHeader = ["{{.xmltv.table.guide}}", "{{.xmltv.table.lastUpdate}}", "{{.xmltv.table.availability}} %", "{{.xmltv.table.channels}}", "{{.xmltv.table.programs}}"]; break; case "filter": - this.tableHeader = ["{{.filter.table.name}}", "{{.filter.table.type}}", "{{.filter.table.filter}}"]; + this.tableHeader = ["{{.filter.table.startingChannel}}", "{{.filter.table.name}}", "{{.filter.table.type}}", "{{.filter.table.filter}}"]; break; case "users": this.tableHeader = ["{{.users.table.username}}", "{{.users.table.password}}", "{{.users.table.web}}", "{{.users.table.pms}}", "{{.users.table.m3u}}", "{{.users.table.xml}}", "{{.users.table.api}}"]; @@ -167,6 +167,11 @@ class Content { var cell = new Cell(); cell.child = true; cell.childType = "P"; + cell.value = data[key]["startingChannel"]; + tr.appendChild(cell.createCell()); + var cell = new Cell(); + cell.child = true; + cell.childType = "P"; cell.value = data[key]["name"]; tr.appendChild(cell.createCell()); var cell = new Cell(); @@ -630,6 +635,25 @@ class ShowContent extends Content { cell.onclickFunction = "javascript: sortTable(8);"; } } + if (menuKey == "filter") { + if (element == "{{.filter.table.startingChannel}}") { + cell.onclick = true; + cell.onclickFunction = "javascript: sortTable(0);"; + cell.tdClassName = "sortThis"; + } + if (element == "{{.filter.table.name}}") { + cell.onclick = true; + cell.onclickFunction = "javascript: sortTable(1);"; + } + if (element == "{{.filter.table.type}}") { + cell.onclick = true; + cell.onclickFunction = "javascript: sortTable(2);"; + } + if (element == "{{.filter.table.filter}}") { + cell.onclick = true; + cell.onclickFunction = "javascript: sortTable(3);"; + } + } header.appendChild(cell.createCell()); }); table.appendChild(header); From ee54eb871b80481228d2603954705f489a5608b3 Mon Sep 17 00:00:00 2001 From: SCP002 Date: Sat, 16 Apr 2022 14:57:18 +0300 Subject: [PATCH 084/189] Rework table sorting. Fixes: numeric entries are sorted as strings. Duplicated numeric entries are lost on sorting. Closes #28 --- html/js/base_ts.js | 72 ++++++++++++++++---------------------- ts/base_ts.ts | 86 +++++++++++++++++++--------------------------- 2 files changed, 64 insertions(+), 94 deletions(-) diff --git a/html/js/base_ts.js b/html/js/base_ts.js index 994db92..bdd1789 100644 --- a/html/js/base_ts.js +++ b/html/js/base_ts.js @@ -156,27 +156,24 @@ function bulkEdit() { return; } function sortTable(column) { - //console.log(columm); if (column == COLUMN_TO_SORT) { return; } - var table = document.getElementById("content_table"); - var tableHead = table.getElementsByTagName("TR")[0]; - var tableItems = tableHead.getElementsByTagName("TD"); - var sortObj = new Object(); - var x, xValue; - var tableHeader; - var sortByString = false; - if (column > 0 && COLUMN_TO_SORT > 0) { + const table = document.getElementById("content_table"); + const tableHead = table.getElementsByTagName("TR")[0]; + const tableItems = tableHead.getElementsByTagName("TD"); + const sortArr = []; + let xValue; + if (column >= 0 && COLUMN_TO_SORT >= 0) { tableItems[COLUMN_TO_SORT].className = "pointer"; tableItems[column].className = "sortThis"; } COLUMN_TO_SORT = column; - var rows = table.rows; + const rows = table.rows; if (rows[1] != undefined) { - tableHeader = rows[0]; - x = rows[1].getElementsByTagName("TD")[column]; - for (i = 1; i < rows.length; i++) { + const tableHeader = rows[0]; + let x = rows[1].getElementsByTagName("TD")[column]; + for (let i = 1; i < rows.length; i++) { x = rows[i].getElementsByTagName("TD")[column]; switch (x.childNodes[0].tagName.toLowerCase()) { case "input": @@ -185,43 +182,32 @@ function sortTable(column) { case "p": xValue = x.getElementsByTagName("P")[0].innerText.toLowerCase(); break; - default: console.log(x.childNodes[0].tagName); - } - if (xValue == "" || xValue == NaN) { - xValue = i; - sortObj[i] = rows[i]; - } - else { - switch (isNaN(xValue) || typeof xValue == "string") { - case false: - xValue = parseFloat(xValue); - sortObj[xValue] = rows[i]; - break; - case true: - sortByString = true; - sortObj[xValue.toLowerCase() + i] = rows[i]; - break; - } + default: + console.log(x.childNodes[0].tagName); } + sortArr.push({ key: xValue ? xValue : i, row: rows[i] }); } while (table.firstChild) { table.removeChild(table.firstChild); } - var sortValues = getObjKeys(sortObj); - if (sortByString == true) { - sortValues.sort(); - console.log(sortValues); - } - else { - function sortFloat(a, b) { - return a - b; + sortArr.sort((se1, se2) => { + const se1KeyNum = parseFloat(String(se1.key)); + const se2KeyNum = parseFloat(String(se2.key)); + if (!isNaN(se1KeyNum) && !isNaN(se2KeyNum)) { + return se1KeyNum - se2KeyNum; } - sortValues.sort(sortFloat); - } + if (se1.key < se2.key) { + return -1; + } + if (se1.key > se2.key) { + return 1; + } + return 0; + }); table.appendChild(tableHeader); - for (var i = 0; i < sortValues.length; i++) { - table.appendChild(sortObj[sortValues[i]]); - } + sortArr.forEach((se) => { + table.appendChild(se.row); + }); } return; } diff --git a/ts/base_ts.ts b/ts/base_ts.ts index e5633aa..7d6c288 100644 --- a/ts/base_ts.ts +++ b/ts/base_ts.ts @@ -204,38 +204,38 @@ function bulkEdit() { } function sortTable(column) { - //console.log(columm); if (column == COLUMN_TO_SORT) { return; } + const table = document.getElementById("content_table"); + const tableHead = table.getElementsByTagName("TR")[0]; + const tableItems = tableHead.getElementsByTagName("TD"); - var table = document.getElementById("content_table"); - var tableHead = table.getElementsByTagName("TR")[0]; - var tableItems = tableHead.getElementsByTagName("TD"); + type SortEntry = { + key: string | number; + row: HTMLTableRowElement; + } - var sortObj = new Object(); - var x, xValue; - var tableHeader - var sortByString = false + const sortArr: SortEntry[] = []; + let xValue: string | number; - if (column > 0 && COLUMN_TO_SORT > 0) { + if (column >= 0 && COLUMN_TO_SORT >= 0) { tableItems[COLUMN_TO_SORT].className = "pointer"; tableItems[column].className = "sortThis"; } COLUMN_TO_SORT = column; - - var rows = (table as HTMLTableElement).rows; + const rows = (table as HTMLTableElement).rows; if (rows[1] != undefined) { - tableHeader = rows[0] + const tableHeader = rows[0]; - x = rows[1].getElementsByTagName("TD")[column]; + let x: any = rows[1].getElementsByTagName("TD")[column]; - for (i = 1; i < rows.length; i++) { + for (let i = 1; i < rows.length; i++) { x = rows[i].getElementsByTagName("TD")[column]; @@ -248,32 +248,11 @@ function sortTable(column) { xValue = x.getElementsByTagName("P")[0].innerText.toLowerCase(); break; - default: console.log(x.childNodes[0].tagName); + default: + console.log(x.childNodes[0].tagName); } - if (xValue == "" || xValue == NaN) { - - xValue = i - sortObj[i] = rows[i]; - - } else { - - switch(isNaN(xValue) || typeof xValue == "string") { - case false: - - xValue = parseFloat(xValue); - sortObj[xValue] = rows[i] - break; - - case true: - - sortByString = true - sortObj[xValue.toLowerCase() + i] = rows[i] - break; - - } - - } + sortArr.push({key: xValue ? xValue : i, row: rows[i]}); } @@ -281,25 +260,30 @@ function sortTable(column) { table.removeChild(table.firstChild); } - var sortValues = getObjKeys(sortObj) + sortArr.sort((se1: SortEntry, se2: SortEntry): number => { + const se1KeyNum = parseFloat(String(se1.key)); + const se2KeyNum = parseFloat(String(se2.key)); - if (sortByString == true) { - sortValues.sort() - console.log(sortValues); - } else { - function sortFloat(a, b) { - return a - b; + if (!isNaN(se1KeyNum) && !isNaN(se2KeyNum)) { + return se1KeyNum - se2KeyNum; } - sortValues.sort(sortFloat); - } - table.appendChild(tableHeader) + if (se1.key < se2.key) { + return -1; + } - for (var i = 0; i < sortValues.length; i++) { + if (se1.key > se2.key) { + return 1; + } - table.appendChild(sortObj[sortValues[i]]) + return 0; + }); - } + table.appendChild(tableHeader); + + sortArr.forEach((se: SortEntry) => { + table.appendChild(se.row); + }); } From 001d8985e262b80bd808eaeb20f022e894655e6a Mon Sep 17 00:00:00 2001 From: SCP002 Date: Sat, 16 Apr 2022 15:05:22 +0300 Subject: [PATCH 085/189] Remove clearing XMLTV cache. Opens issue #2 again but reading from disk feels way too slow. Need to rethink. --- src/xepg.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/xepg.go b/src/xepg.go index d521b2d..053b979 100644 --- a/src/xepg.go +++ b/src/xepg.go @@ -93,7 +93,7 @@ func buildXEPG(background bool) { System.ScanInProgress = 0 - clearXMLTVCache() + // clearXMLTVCache() }() @@ -133,7 +133,7 @@ func buildXEPG(background bool) { System.ScanInProgress = 0 - clearXMLTVCache() + // clearXMLTVCache() }() From f129cf55f8ebd85aa93b9563e03b915698ba762f Mon Sep 17 00:00:00 2001 From: SCP002 Date: Sat, 16 Apr 2022 15:06:56 +0300 Subject: [PATCH 086/189] Increase program version to "2.2.6.0000" --- xteve.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/xteve.go b/xteve.go index 0c2a7e0..203c957 100644 --- a/xteve.go +++ b/xteve.go @@ -39,7 +39,7 @@ var GitHub = GitHubStruct{Branch: "master", User: "SCP002", Repo: "xTeVe", Updat const Name = "xTeVe" // Version : Version, the Build Number is parsed in the main func -const Version = "2.2.5.0000" +const Version = "2.2.6.0000" // DBVersion : Database Version const DBVersion = "2.2.1" From be4116978c44198d007027fe308b53caf297491a Mon Sep 17 00:00:00 2001 From: SCP002 Date: Mon, 18 Apr 2022 16:26:11 +0300 Subject: [PATCH 087/189] Make frontend popup mapping code slightly less cryptic --- html/js/base_ts.js | 54 +++++++------ html/js/logs_ts.js | 2 +- html/js/menu_ts.js | 155 +++++++++++++++++--------------------- src/webUI.go | 6 +- ts/base_ts.ts | 55 ++++++++------ ts/logs_ts.ts | 2 +- ts/menu_ts.ts | 184 ++++++++++++++++++++------------------------- 7 files changed, 216 insertions(+), 242 deletions(-) diff --git a/html/js/base_ts.js b/html/js/base_ts.js index bdd1789..0e98d8e 100644 --- a/html/js/base_ts.js +++ b/html/js/base_ts.js @@ -93,14 +93,8 @@ function getLocalData(dataType, id) { } return data; } -function getObjKeys(obj) { - var keys = new Array(); - for (var i in obj) { - if (obj.hasOwnProperty(i)) { - keys.push(i); - } - } - return keys; +function getOwnObjProps(object) { + return Object.getOwnPropertyNames(object); } function getAllSelectedChannels() { var channels = new Array(); @@ -214,7 +208,7 @@ function sortTable(column) { function createSearchObj() { SEARCH_MAPPING = new Object(); var data = SERVER["xepg"]["epgMapping"]; - var channels = getObjKeys(data); + var channels = getOwnObjProps(data); var channelKeys = ["x-active", "x-channelID", "x-name", "_file.m3u.name", "x-group-title", "x-xmltv-file"]; channels.forEach(id => { channelKeys.forEach(key => { @@ -277,7 +271,7 @@ function changeChannelNumber(element) { var newNumber = parseFloat(element.value); var channelNumbers = []; var data = SERVER["xepg"]["epgMapping"]; - var channels = getObjKeys(data); + var channels = getOwnObjProps(data); if (isNaN(newNumber)) { alert("{{.alert.invalidChannelNumber}}"); return; @@ -461,22 +455,34 @@ function checkUndo(key) { } return; } -function sortSelect(elem) { - var tmpAry = []; - var selectedValue = elem[elem.selectedIndex].value; - for (var i = 0; i < elem.options.length; i++) - tmpAry.push(elem.options[i]); - tmpAry.sort(function (a, b) { return (a.text < b.text) ? -1 : 1; }); - while (elem.options.length > 0) - elem.options[0] = null; - var newSelectedIndex = 0; - for (var i = 0; i < tmpAry.length; i++) { - elem.options[i] = tmpAry[i]; - if (elem.options[i].value == selectedValue) +function sortSelect(select) { + const tempArr = []; + const selectedValue = select.options[select.selectedIndex].value; + for (const selectOption of select.options) { + tempArr.push(selectOption); + } + tempArr.sort((o1, o2) => { + if (o1.text < o2.text) { + return -1; + } + if (o1.text > o2.text) { + return 1; + } + return 0; + }); + while (select.options.length > 0) { + select.options[0] = null; + } + ; + let newSelectedIndex = 0; + for (let i = 0; i < tempArr.length; i++) { + select.options[i] = tempArr[i]; + if (select.options[i].value == selectedValue) { newSelectedIndex = i; + } } - elem.selectedIndex = newSelectedIndex; // Set new selected index after sorting - return; + // Set new selected index after sorting + select.selectedIndex = newSelectedIndex; } function updateLog() { console.log("TOKEN"); diff --git a/html/js/logs_ts.js b/html/js/logs_ts.js index 1ccaef3..fafb912 100644 --- a/html/js/logs_ts.js +++ b/html/js/logs_ts.js @@ -19,7 +19,7 @@ function showLogs(bottom) { var logs = SERVER["log"]["log"]; var div = document.getElementById("content_log"); div.innerHTML = ""; - var keys = getObjKeys(logs); + var keys = getOwnObjProps(logs); keys.forEach(logID => { var entry = log.createLog(logs[logID]); div.append(entry); diff --git a/html/js/menu_ts.js b/html/js/menu_ts.js index 094cb96..94ea478 100644 --- a/html/js/menu_ts.js +++ b/html/js/menu_ts.js @@ -97,7 +97,7 @@ class Content { fileTypes = ["m3u", "hdhr"]; fileTypes.forEach(fileType => { data = SERVER["settings"]["files"][fileType]; - var keys = getObjKeys(data); + var keys = getOwnObjProps(data); keys.forEach(key => { var tr = document.createElement("TR"); tr.id = key; @@ -159,7 +159,7 @@ class Content { case "filter": delete SERVER["settings"]["filter"][-1]; data = SERVER["settings"]["filter"]; - var keys = getObjKeys(data); + var keys = getOwnObjProps(data); keys.forEach(key => { var tr = document.createElement("TR"); tr.id = key; @@ -200,7 +200,7 @@ class Content { fileTypes = new Array("xmltv"); fileTypes.forEach(fileType => { data = SERVER["settings"]["files"][fileType]; - var keys = getObjKeys(data); + var keys = getOwnObjProps(data); keys.forEach(key => { var tr = document.createElement("TR"); tr.id = key; @@ -238,7 +238,7 @@ class Content { fileTypes = new Array("users"); fileTypes.forEach(fileType => { data = SERVER[fileType]; - var keys = getObjKeys(data); + var keys = getOwnObjProps(data); keys.forEach(key => { var tr = document.createElement("TR"); tr.id = key; @@ -313,7 +313,7 @@ class Content { checkUndo("epgMapping"); console.log("MAPPING"); data = SERVER["xepg"]["epgMapping"]; - var keys = getObjKeys(data); + var keys = getOwnObjProps(data); keys.forEach(key => { var tr = document.createElement("TR"); tr.id = key; @@ -693,7 +693,7 @@ function PageReady() { function createLayout() { // Client Info let obj = SERVER["clientInfo"]; - let keys = getObjKeys(obj); + let keys = getOwnObjProps(obj); for (var i = 0; i < keys.length; i++) { if (document.getElementById(keys[i])) { document.getElementById(keys[i]).innerHTML = obj[keys[i]]; @@ -1351,18 +1351,18 @@ function openPopUp(dataType, element) { var select = xmltv.getFiles(data[dbKey]); select.setAttribute("name", dbKey); select.setAttribute("id", "popup-xmltv"); - select.setAttribute("onchange", "javascript: this.className = 'changed'; setXmltvChannel('" + id + "',this);"); + select.setAttribute("onchange", `javascript: this.className = 'changed'; setXmltvChannel('${id}', this);`); content.appendRow("{{.mapping.xmltvFile.title}}", select); - var file = data[dbKey]; // XMLTV Mapping - var dbKey = "x-mapping"; + var dbKey = 'x-mapping'; var xmltv = new XMLTVFile(); - var select = xmltv.getPrograms(file, data[dbKey]); - select.setAttribute("name", dbKey); - select.setAttribute("id", "popup-mapping"); - select.setAttribute("onchange", "javascript: this.className = 'changed'; checkXmltvChannel('" + id + "',this,'" + xmlFile + "');"); - sortSelect(select); - content.appendRow("{{.mapping.xmltvChannel.title}}", select); + const xMapping = data[dbKey]; + const xmlTvIdSelect = xmltv.getPrograms(xmlFile, xMapping); + xmlTvIdSelect.setAttribute('name', dbKey); + xmlTvIdSelect.setAttribute('id', 'popup-mapping'); + xmlTvIdSelect.setAttribute('onchange', `javascript: this.className = 'changed'; checkXmltvChannel('${id}', this, '${xmlFile}');`); + sortSelect(xmlTvIdSelect); + content.appendRow('{{.mapping.xmltvChannel.title}}', xmlTvIdSelect); // Timeshift var dbKey = "x-timeshift"; var input = content.createInput("text", dbKey, data[dbKey]); @@ -1397,7 +1397,7 @@ function openPopUp(dataType, element) { } class XMLTVFile { getFiles(set) { - let fileIDs = getObjKeys(SERVER["xepg"]["xmltvMap"]); + let fileIDs = getOwnObjProps(SERVER["xepg"]["xmltvMap"]); let values = new Array("-"); let text = new Array("-"); for (let i = 0; i < fileIDs.length; i++) { @@ -1422,35 +1422,29 @@ class XMLTVFile { } return select; } - getPrograms(file, set) { - //var fileIDs:string[] = getObjKeys(SERVER["xepg"]["xmltvMap"]) - let values = getObjKeys(SERVER["xepg"]["xmltvMap"][file]); - let text = []; + getPrograms(xmlFile, xMapping) { + const values = getOwnObjProps(SERVER['xepg']['xmltvMap'][xmlFile]); + const text = []; let friendlyName; for (let i = 0; i < values.length; i++) { - if (SERVER["xepg"]["xmltvMap"][file][values[i]].hasOwnProperty('friendly-name') == true) { - friendlyName = SERVER["xepg"]["xmltvMap"][file][values[i]]["friendly-name"]; + if (SERVER['xepg']['xmltvMap'][xmlFile][values[i]].hasOwnProperty('friendly-name') == true) { + friendlyName = SERVER['xepg']['xmltvMap'][xmlFile][values[i]]['friendly-name']; } else { - friendlyName = "-"; + friendlyName = '-'; } - text[i] = friendlyName + " (" + values[i] + ")"; + text[i] = `${friendlyName} (${values[i]})`; } - text.unshift("-"); - values.unshift("-"); - let select = document.createElement("SELECT"); + text.unshift('-'); + values.unshift('-'); + const select = document.createElement('select'); for (let i = 0; i < text.length; i++) { - var option = document.createElement("OPTION"); - option.setAttribute("value", values[i]); + const option = document.createElement('option'); + option.setAttribute('value', values[i]); option.innerText = text[i]; select.appendChild(option); } - if (set != "") { - select.value = set; - } - if (select.value != set) { - select.value = "-"; - } + select.value = (xMapping == '') ? '-' : xMapping; return select; } } @@ -1480,69 +1474,58 @@ function getValueFromProviderFile(file, fileType, key) { } return; } -function setXmltvChannel(id, element) { +function setXmltvChannel(epgMappingId, oldSelect) { let xmltv = new XMLTVFile(); - let xmlFile = element.value; - let tvgId = SERVER["xepg"]["epgMapping"][id]["tvg-id"]; - let td = document.getElementById("popup-mapping").parentElement; - td.innerHTML = ""; - let select = xmltv.getPrograms(element.value, tvgId); - select.setAttribute("name", "x-mapping"); - select.setAttribute("id", "popup-mapping"); - select.setAttribute("onchange", "javascript: this.className = 'changed'; checkXmltvChannel('" + id + "',this,'" + xmlFile + "');"); - select.className = "changed"; - sortSelect(select); - td.appendChild(select); - checkXmltvChannel(id, select, xmlFile); + let xmlFile = oldSelect.value; + let tvgId = SERVER['xepg']['epgMapping'][epgMappingId]['tvg-id']; + let td = document.getElementById('popup-mapping').parentElement; + td.innerHTML = ''; + const newSelect = xmltv.getPrograms(oldSelect.value, tvgId); + newSelect.setAttribute('name', 'x-mapping'); + newSelect.setAttribute('id', 'popup-mapping'); + newSelect.setAttribute('onchange', `javascript: this.className = 'changed'; checkXmltvChannel('${epgMappingId}', this, '${xmlFile}');`); + newSelect.className = 'changed'; + sortSelect(newSelect); + td.appendChild(newSelect); + checkXmltvChannel(epgMappingId, newSelect, xmlFile); } -function checkXmltvChannel(id, element, xmlFile) { - let value = element.value; - let bool; - let checkbox = document.getElementById('active'); - let channel = SERVER["xepg"]["epgMapping"][id]; - let updateLogo; - bool = value != "-"; - checkbox.checked = bool; - checkbox.className = "changed"; - console.log(xmlFile); - // Update channel logo - /* - updateLogo = (document.getElementById("update-icon") as HTMLInputElement).checked - console.log(updateLogo); - */ - if (xmlFile != "xTeVe Dummy" && bool == true) { - //(document.getElementById("update-icon") as HTMLInputElement).checked = true; - //(document.getElementById("update-icon") as HTMLInputElement).className = "changed"; - console.log("ID", id); - changeChannelLogo(id); +function checkXmltvChannel(epgMappingId, select, xmlFile) { + const selectValue = select.value; + let channelActive; + const checkbox = document.getElementById('active'); + channelActive = selectValue != '-'; + checkbox.checked = channelActive; + checkbox.className = 'changed'; + if (xmlFile != 'xTeVe Dummy' && channelActive == true) { + changeChannelLogo(epgMappingId); return; } - if (xmlFile == "xTeVe Dummy") { - document.getElementById("update-icon").checked = false; - document.getElementById("update-icon").className = "changed"; + if (xmlFile == 'xTeVe Dummy') { + document.getElementById('update-icon').checked = false; + document.getElementById('update-icon').className = 'changed'; } - return; } -function changeChannelLogo(id) { +function changeChannelLogo(epgMappingId) { let updateLogo; - let channel = SERVER["xepg"]["epgMapping"][id]; - let f = document.getElementById("popup-xmltv"); - let xmltvFile = f.options[f.selectedIndex].value; - let m = document.getElementById("popup-mapping"); - let xMapping = m.options[m.selectedIndex].value; - let xmltvLogo = SERVER["xepg"]["xmltvMap"][xmltvFile][xMapping]["icon"]; - updateLogo = document.getElementById("update-icon").checked; - if (updateLogo == true && xmltvFile != "xTeVe Dummy") { - if (SERVER["xepg"]["xmltvMap"][xmltvFile].hasOwnProperty(xMapping)) { - var logo = xmltvLogo; + let logo; + const channel = SERVER['xepg']['epgMapping'][epgMappingId]; + const f = document.getElementById('popup-xmltv'); + const xmltvFile = f.options[f.selectedIndex].value; + const m = document.getElementById('popup-mapping'); + const xMapping = m.options[m.selectedIndex].value; + const xmltvLogo = SERVER['xepg']['xmltvMap'][xmltvFile][xMapping]['icon']; + updateLogo = document.getElementById('update-icon').checked; + if (updateLogo == true && xmltvFile != 'xTeVe Dummy') { + if (SERVER['xepg']['xmltvMap'][xmltvFile].hasOwnProperty(xMapping)) { + logo = xmltvLogo; } else { - logo = channel["tvg-logo"]; + logo = channel['tvg-logo']; } - var logoInput = document.getElementById("channel-icon"); + var logoInput = document.getElementById('channel-icon'); logoInput.value = logo; if (BULK_EDIT == false) { - logoInput.className = "changed"; + logoInput.className = 'changed'; } } } diff --git a/src/webUI.go b/src/webUI.go index ae899f3..cfdc14e 100644 --- a/src/webUI.go +++ b/src/webUI.go @@ -25,11 +25,11 @@ func loadHTMLMap() { webUI["html/img/xmltv.png"] = "iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAAAXNSR0IArs4c6QAAAAlwSFlzAAAsSwAALEsBpT2WqQAABCRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IlhNUCBDb3JlIDUuNC4wIj4KICAgPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIgogICAgICAgICAgICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgICAgICAgICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyI+CiAgICAgICAgIDx0aWZmOlJlc29sdXRpb25Vbml0PjI8L3RpZmY6UmVzb2x1dGlvblVuaXQ+CiAgICAgICAgIDx0aWZmOkNvbXByZXNzaW9uPjU8L3RpZmY6Q29tcHJlc3Npb24+CiAgICAgICAgIDx0aWZmOlhSZXNvbHV0aW9uPjI4ODwvdGlmZjpYUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6T3JpZW50YXRpb24+MTwvdGlmZjpPcmllbnRhdGlvbj4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+Mjg4PC90aWZmOllSZXNvbHV0aW9uPgogICAgICAgICA8ZXhpZjpQaXhlbFhEaW1lbnNpb24+NTA8L2V4aWY6UGl4ZWxYRGltZW5zaW9uPgogICAgICAgICA8ZXhpZjpDb2xvclNwYWNlPjE8L2V4aWY6Q29sb3JTcGFjZT4KICAgICAgICAgPGV4aWY6UGl4ZWxZRGltZW5zaW9uPjUwPC9leGlmOlBpeGVsWURpbWVuc2lvbj4KICAgICAgICAgPGRjOnN1YmplY3Q+CiAgICAgICAgICAgIDxyZGY6QmFnLz4KICAgICAgICAgPC9kYzpzdWJqZWN0PgogICAgICAgICA8eG1wOk1vZGlmeURhdGU+MjAxOC0wNy0yOFQyMDowNzozMzwveG1wOk1vZGlmeURhdGU+CiAgICAgICAgIDx4bXA6Q3JlYXRvclRvb2w+UGl4ZWxtYXRvciAzLjM8L3htcDpDcmVhdG9yVG9vbD4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgIDwvcmRmOlJERj4KPC94OnhtcG1ldGE+Co6j9bsAAAGgSURBVGgF7VqxTsNADL0gYGEon8DOwsbAAH8BYmJn6cYIn8DC3h0+oixISFRiYYCJL0AwMMBAeK5w2rpV6uikxHfYknW98+vds18TK21DWGBlWR7CH+BfcEv2AzLP8HP42gLqkyUATuEp2PWEdQjF9ATs1zF/g29Mrxt+vVcUxR3xWxEktzFPJQmivsv8ZSI9DiQyVnxlIonwn6fpiczXpNuVVXH8O+a3Ys3y9NUyuf/NTTbEHZTjUlGSRzSiPhroUIENwB4AS/vS/susDwDhTpYBER9g7wHh5DWyibV9CiitCZbIafDEYUuJHQI3Nr/9ciWsjK6IFSWYhyvClbAyZqOIlYJG84jq7E1Ot97Zm+TinV1TrWwudk9EI3ebGFekzWprzspGEU2ySWCiOrs/s9dr7M/s9fVJJJrNXcsTsfaJc0WsKZINH+/sf1Jqvl1n1f2ZnStRN/pdq646XcSkIh9dkIg4s+IrE3nCpp8RG7f91ns+cCYR/LD4jcAZB42PN+A7/mcQ8ZxJhBYQvMJwBB/BKTFLVoLMC/wCfgyv7BesTKUC2LKM3wAAAABJRU5ErkJggg==" webUI["html/index.html"] = "PCFkb2N0eXBlIGh0bWw+DQo8aHRtbD4NCiAgPGhlYWQ+DQogICAgPG1ldGEgY2hhcnNldD0idXRmLTgiPg0KICAgIDwhLS0tDQogICAgPG1ldGEgbmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9IndpZHRoPWRldmljZS13aWR0aCwgaW5pdGlhbC1zY2FsZT0xLjAiIC8+IA0KICAgIC0tPg0KICAgIDx0aXRsZT54VGVWZTwvdGl0bGU+DQogICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJjc3Mvc2NyZWVuLmNzcyIgdHlwZT0idGV4dC9jc3MiPg0KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iY3NzL2Jhc2UuY3NzIiB0eXBlPSJ0ZXh0L2NzcyI+DQoNCiAgICA8c2NyaXB0IGxhbmd1YWdlPSJqYXZhc2NyaXB0IiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ianMvbmV0d29ya190cy5qcyI+PC9zY3JpcHQ+DQogICAgPHNjcmlwdCBsYW5ndWFnZT0iamF2YXNjcmlwdCIgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9ImpzL21lbnVfdHMuanMiPjwvc2NyaXB0Pg0KICAgIDxzY3JpcHQgbGFuZ3VhZ2U9ImphdmFzY3JpcHQiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJqcy9zZXR0aW5nc190cy5qcyI+PC9zY3JpcHQ+DQogICAgPHNjcmlwdCBsYW5ndWFnZT0iamF2YXNjcmlwdCIgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9ImpzL2xvZ3NfdHMuanMiPjwvc2NyaXB0Pg0KICAgIDxzY3JpcHQgbGFuZ3VhZ2U9ImphdmFzY3JpcHQiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJqcy9iYXNlX3RzLmpzIj48L3NjcmlwdD4NCg0KICA8L2hlYWQ+DQoNCiAgICA8Ym9keSBvbmxvYWQ9ImphdmFzY3JpcHQ6IFBhZ2VSZWFkeSgpOyI+DQoNCiAgICAgIDxkaXYgaWQ9ImxvYWRpbmciIGNsYXNzPSJub25lIj4NCiAgICAgICAgPGRpdiBjbGFzcz0ibG9hZGVyIj48L2Rpdj4NCiAgICAgIDwvZGl2Pg0KDQogICAgICA8ZGl2IGlkPSJwb3B1cCIgY2xhc3M9Im5vbmUiPg0KICAgICAgICA8ZGl2IGlkPSJwb3B1cC1jdXN0b20iPjwvZGl2Pg0KICAgICAgPC9kaXY+DQoNCiAgICAgIDxkaXYgaWQ9ImxheW91dCI+DQoNCiAgICAgICAgPCEtLQ0KICAgICAgICA8ZGl2IGlkPSJub3RpZmljYXRpb24iPg0KICAgICAgICAgIDxkaXYgY2xhc3M9ImVsZW1lbnQiPg0KICAgICAgICAgICAgPGg1PlhFUEc8L2g1Pg0KICAgICAgICAgICAgPHByZT4xMS4wNS4yMDE5IC0gMjA6MjE8L3ByZT4NCiAgICAgICAgICAgIDxocj4NCiAgICAgICAgICAgIDxwPkhhbGxvIGRhcyBpc3QgZWluIFRlc3QuIFVuZCBub2NoIG1laHIgVGV4dC48L3A+DQogICAgICAgICAgPC9kaXY+DQogICAgICAgIDwvZGl2Pg0KICAgICAgLS0+DQoNCiAgICAgICAgPGRpdiBpZD0ibWVudS13cmFwcGVyIiBjbGFzcz0ibGF5b3V0LWxlZnQiPg0KICAgICAgICAgIDxkaXYgaWQ9ICJicmFuY2giPjwvZGl2Pg0KICAgICAgICAgIDxkaXYgaWQ9ImxvZ28iPjwvZGl2Pg0KICAgICAgICAgIDxuYXYgaWQ9Im1haW4tbWVudSI+PC9uYXY+DQogICAgICAgIDwvZGl2Pg0KDQogICAgICAgIDxkaXYgY2xhc3M9ImxheW91dC1yaWdodCI+DQoNCiAgICAgICAgICA8dGFibGUgaWQ9ImNsaWVudEluZm8iIGNsYXNzPSIiPg0KDQogICAgICAgICAgICA8dHI+DQogICAgICAgICAgICAgIDx0ZCBjbGFzcz0idGRLZXkiPnhUZVZlOjwvdGQ+DQogICAgICAgICAgICAgIDx0ZCBpZD0idmVyc2lvbiIgY2xhc3M9InRkVmFsIj4mbmJzcDs8L3RkPg0KICAgICAgICAgICAgICA8dGQgY2xhc3M9InRkS2V5Ij5PUzo8L3RkPg0KICAgICAgICAgICAgICA8dGQgaWQ9Im9zIiBjbGFzcz0idGRWYWwiPiZuYnNwOzwvdGQ+DQogICAgICAgICAgICAgIDx0ZCBjbGFzcz0idGRLZXkgcGhvbmUiPkRWUiBJUDo8L3RkPg0KICAgICAgICAgICAgICA8dGQgaWQ9IkRWUiIgY2xhc3M9InRkVmFsIHBob25lIj4mbmJzcDs8L3RkPg0KICAgICAgICAgICAgPC90cj4NCg0KICAgICAgICAgICAgPHRyPg0KICAgICAgICAgICAgICA8dGQgY2xhc3M9InRkS2V5Ij5VVUlEOjwvdGQ+DQogICAgICAgICAgICAgIDx0ZCBpZD0idXVpZCIgY2xhc3M9InRkVmFsIj4mbmJzcDs8L3RkPg0KICAgICAgICAgICAgICA8dGQgY2xhc3M9InRkS2V5Ij5BcmNoOjwvdGQ+DQogICAgICAgICAgICAgIDx0ZCBpZD0iYXJjaCIgY2xhc3M9InRkVmFsIj4mbmJzcDs8L3RkPg0KICAgICAgICAgICAgICA8dGQgY2xhc3M9InRkS2V5IHBob25lIj5NM1UgVVJMOjwvdGQ+DQogICAgICAgICAgICAgIDx0ZCBpZD0ibTN1LXVybCIgY2xhc3M9InRkVmFsIHBob25lIj4mbmJzcDs8L3RkPg0KICAgICAgICAgICAgPC90cj4NCg0KICAgICAgICAgICAgPHRyPg0KICAgICAgICAgICAgICA8dGQgY2xhc3M9InRkS2V5Ij5BdmFpbGFibGUgU3RyZWFtczo8L3RkPg0KICAgICAgICAgICAgICA8dGQgaWQ9InN0cmVhbXMiIGNsYXNzPSJ0ZFZhbCI+Jm5ic3A7PC90ZD4NCiAgICAgICAgICAgICAgPHRkIGNsYXNzPSJ0ZEtleSI+RVBHIFNvdXJjZTo8L3RkPg0KICAgICAgICAgICAgICA8dGQgaWQ9ImVwZ1NvdXJjZSIgY2xhc3M9InRkVmFsIj4mbmJzcDs8L3RkPg0KICAgICAgICAgICAgICA8dGQgY2xhc3M9InRkS2V5IHBob25lIj5YRVBHIFVSTDo8L3RkPg0KICAgICAgICAgICAgICA8dGQgaWQ9InhlcGctdXJsIiBjbGFzcz0idGRWYWwgcGhvbmUiPiZuYnNwOzwvdGQ+DQogICAgICAgICAgICA8L3RyPg0KDQogICAgICAgICAgICA8dHI+DQogICAgICAgICAgICAgIDx0ZCBjbGFzcz0idGRLZXkiPlhFUEcgQ2hhbm5lbHM6PC90ZD4NCiAgICAgICAgICAgICAgPHRkIGlkPSJ4ZXBnIiBjbGFzcz0idGRWYWwiPiZuYnNwOzwvdGQ+DQogICAgICAgICAgICAgIDx0ZCBjbGFzcz0idGRLZXkiPkVycm9yczo8L3RkPg0KICAgICAgICAgICAgICA8dGQgaWQ9ImVycm9ycyIgY2xhc3M9InRkVmFsIj4mbmJzcDs8L3RkPg0KICAgICAgICAgICAgICA8dGQgY2xhc3M9InRkS2V5Ij5XYXJuaW5nczo8L3RkPg0KICAgICAgICAgICAgICA8dGQgaWQ9Indhcm5pbmdzIiBjbGFzcz0idGRWYWwiPiZuYnNwOzwvdGQ+DQogICAgICAgICAgICA8L3RyPg0KDQogICAgICAgICAgPC90YWJsZT4NCiAgICAgICAgIA0KICAgICAgICAgIDxkaXYgaWQ9Im15U3RyZWFtc0JveCIgY2xhc3M9Im5vdFZpc2libGUiPg0KDQogICAgICAgICAgICA8ZGl2IGlkPSJhbGxTdHJlYW1zIj4NCiAgICAgICAgICAgICAgPHRhYmxlIGlkPSJhY3RpdmVTdHJlYW1zIj48L3RhYmxlPg0KICAgICAgICAgICAgICA8dGFibGUgaWQ9ImluYWN0aXZlU3RyZWFtcyI+PC90YWJsZT4NCiAgICAgICAgICAgIDwvZGl2Pg0KDQogICAgICAgICAgPC9kaXY+DQogICAgICAgICAgDQogICAgICAgICAgPGRpdiBpZD0iY29udGVudCIgY2xhc3M9IiI+PC9kaXY+DQogICAgICAgICAgICANCiAgICAgICAgPC9kaXY+DQoNCiAgICAgIDwvZGl2Pg0KICAgICAgDQogICAgPC9ib2R5Pg0KICAgIA0KPC9odG1sPg==" webUI["html/js/authentication_ts.js"] = "ZnVuY3Rpb24gbG9naW4oKSB7DQogICAgdmFyIGVyciA9IGZhbHNlOw0KICAgIHZhciBkYXRhID0gbmV3IE9iamVjdCgpOw0KICAgIHZhciBkaXYgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29udGVudCIpOw0KICAgIHZhciBmb3JtID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImF1dGhlbnRpY2F0aW9uIik7DQogICAgdmFyIGlucHV0cyA9IGRpdi5nZXRFbGVtZW50c0J5VGFnTmFtZSgiSU5QVVQiKTsNCiAgICBjb25zb2xlLmxvZyhpbnB1dHMpOw0KICAgIGZvciAodmFyIGkgPSBpbnB1dHMubGVuZ3RoIC0gMTsgaSA+PSAwOyBpLS0pIHsNCiAgICAgICAgdmFyIGtleSA9IGlucHV0c1tpXS5uYW1lOw0KICAgICAgICB2YXIgdmFsdWUgPSBpbnB1dHNbaV0udmFsdWU7DQogICAgICAgIGlmICh2YWx1ZS5sZW5ndGggPT0gMCkgew0KICAgICAgICAgICAgaW5wdXRzW2ldLnN0eWxlLmJvcmRlckNvbG9yID0gInJlZCI7DQogICAgICAgICAgICBlcnIgPSB0cnVlOw0KICAgICAgICB9DQogICAgICAgIGRhdGFba2V5XSA9IHZhbHVlOw0KICAgIH0NCiAgICBpZiAoZXJyID09IHRydWUpIHsNCiAgICAgICAgZGF0YSA9IG5ldyBPYmplY3QoKTsNCiAgICAgICAgcmV0dXJuOw0KICAgIH0NCiAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgiY29uZmlybSIpKSB7DQogICAgICAgIGlmIChkYXRhWyJjb25maXJtIl0gIT0gZGF0YVsicGFzc3dvcmQiXSkgew0KICAgICAgICAgICAgYWxlcnQoInNkYWZzZCIpOw0KICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Bhc3N3b3JkJykuc3R5bGUuYm9yZGVyQ29sb3IgPSAicmVkIjsNCiAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjb25maXJtJykuc3R5bGUuYm9yZGVyQ29sb3IgPSAicmVkIjsNCiAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJlcnIiKS5pbm5lckhUTUwgPSAie3suYWNjb3VudC5mYWlsZWR9fSI7DQogICAgICAgICAgICByZXR1cm47DQogICAgICAgIH0NCiAgICB9DQogICAgY29uc29sZS5sb2coZGF0YSk7DQogICAgZm9ybS5zdWJtaXQoKTsNCn0NCg==" - webUI["html/js/base_ts.js"] = "dmFyIFNFUlZFUiA9IG5ldyBPYmplY3QoKTsNCnZhciBCVUxLX0VESVQgPSBmYWxzZTsNCnZhciBDT0xVTU5fVE9fU09SVDsNCnZhciBTRUFSQ0hfTUFQUElORyA9IG5ldyBPYmplY3QoKTsNCnZhciBVTkRPID0gbmV3IE9iamVjdCgpOw0KdmFyIFNFUlZFUl9DT05ORUNUSU9OID0gZmFsc2U7DQp2YXIgV1NfQVZBSUxBQkxFID0gZmFsc2U7DQovLyBNZW51DQp2YXIgbWVudUl0ZW1zID0gbmV3IEFycmF5KCk7DQptZW51SXRlbXMucHVzaChuZXcgTWFpbk1lbnVJdGVtKCJwbGF5bGlzdCIsICJ7ey5tYWluTWVudS5pdGVtLnBsYXlsaXN0fX0iLCAibTN1LnBuZyIsICJ7ey5tYWluTWVudS5oZWFkbGluZS5wbGF5bGlzdH19IikpOw0KLy9tZW51SXRlbXMucHVzaChuZXcgTWFpbk1lbnVJdGVtKCJwbXNJRCIsICJ7ey5tYWluTWVudS5pdGVtLnBtc0lEfX0iLCAibnVtYmVyLnBuZyIsICJ7ey5tYWluTWVudS5oZWFkbGluZS5wbXNJRH19IikpDQptZW51SXRlbXMucHVzaChuZXcgTWFpbk1lbnVJdGVtKCJmaWx0ZXIiLCAie3subWFpbk1lbnUuaXRlbS5maWx0ZXJ9fSIsICJmaWx0ZXIucG5nIiwgInt7Lm1haW5NZW51LmhlYWRsaW5lLmZpbHRlcn19IikpOw0KbWVudUl0ZW1zLnB1c2gobmV3IE1haW5NZW51SXRlbSgieG1sdHYiLCAie3subWFpbk1lbnUuaXRlbS54bWx0dn19IiwgInhtbHR2LnBuZyIsICJ7ey5tYWluTWVudS5oZWFkbGluZS54bWx0dn19IikpOw0KbWVudUl0ZW1zLnB1c2gobmV3IE1haW5NZW51SXRlbSgibWFwcGluZyIsICJ7ey5tYWluTWVudS5pdGVtLm1hcHBpbmd9fSIsICJtYXBwaW5nLnBuZyIsICJ7ey5tYWluTWVudS5oZWFkbGluZS5tYXBwaW5nfX0iKSk7DQptZW51SXRlbXMucHVzaChuZXcgTWFpbk1lbnVJdGVtKCJ1c2VycyIsICJ7ey5tYWluTWVudS5pdGVtLnVzZXJzfX0iLCAidXNlcnMucG5nIiwgInt7Lm1haW5NZW51LmhlYWRsaW5lLnVzZXJzfX0iKSk7DQptZW51SXRlbXMucHVzaChuZXcgTWFpbk1lbnVJdGVtKCJzZXR0aW5ncyIsICJ7ey5tYWluTWVudS5pdGVtLnNldHRpbmdzfX0iLCAic2V0dGluZ3MucG5nIiwgInt7Lm1haW5NZW51LmhlYWRsaW5lLnNldHRpbmdzfX0iKSk7DQptZW51SXRlbXMucHVzaChuZXcgTWFpbk1lbnVJdGVtKCJsb2ciLCAie3subWFpbk1lbnUuaXRlbS5sb2d9fSIsICJsb2cucG5nIiwgInt7Lm1haW5NZW51LmhlYWRsaW5lLmxvZ319IikpOw0KbWVudUl0ZW1zLnB1c2gobmV3IE1haW5NZW51SXRlbSgibG9nb3V0IiwgInt7Lm1haW5NZW51Lml0ZW0ubG9nb3V0fX0iLCAibG9nb3V0LnBuZyIsICJ7ey5tYWluTWVudS5oZWFkbGluZS5sb2dvdXR9fSIpKTsNCi8vIFNldHRpbmdzIGNhdGVnb3JpZXMNCnZhciBzZXR0aW5nc0NhdGVnb3J5ID0gbmV3IEFycmF5KCk7DQpzZXR0aW5nc0NhdGVnb3J5LnB1c2gobmV3IFNldHRpbmdzQ2F0ZWdvcnlJdGVtKCJ7ey5zZXR0aW5ncy5jYXRlZ29yeS5nZW5lcmFsfX0iLCAieHRldmVBdXRvVXBkYXRlLHR1bmVyLGVwZ1NvdXJjZSxhcGkiKSk7DQpzZXR0aW5nc0NhdGVnb3J5LnB1c2gobmV3IFNldHRpbmdzQ2F0ZWdvcnlJdGVtKCJ7ey5zZXR0aW5ncy5jYXRlZ29yeS5maWxlc319IiwgInVwZGF0ZSxmaWxlcy51cGRhdGUsdGVtcC5wYXRoLGNhY2hlLmltYWdlcyx4ZXBnLnJlcGxhY2UubWlzc2luZy5pbWFnZXMiKSk7DQpzZXR0aW5nc0NhdGVnb3J5LnB1c2gobmV3IFNldHRpbmdzQ2F0ZWdvcnlJdGVtKCJ7ey5zZXR0aW5ncy5jYXRlZ29yeS5zdHJlYW1pbmd9fSIsICJidWZmZXIsdWRweHksYnVmZmVyLnNpemUua2IsYnVmZmVyLnRpbWVvdXQsdXNlci5hZ2VudCxmZm1wZWcucGF0aCxmZm1wZWcub3B0aW9ucyx2bGMucGF0aCx2bGMub3B0aW9ucyIpKTsNCnNldHRpbmdzQ2F0ZWdvcnkucHVzaChuZXcgU2V0dGluZ3NDYXRlZ29yeUl0ZW0oInt7LnNldHRpbmdzLmNhdGVnb3J5LmJhY2t1cH19IiwgImJhY2t1cC5wYXRoLGJhY2t1cC5rZWVwIikpOw0Kc2V0dGluZ3NDYXRlZ29yeS5wdXNoKG5ldyBTZXR0aW5nc0NhdGVnb3J5SXRlbSgie3suc2V0dGluZ3MuY2F0ZWdvcnkuYXV0aGVudGljYXRpb259fSIsICJhdXRoZW50aWNhdGlvbi53ZWIsYXV0aGVudGljYXRpb24ucG1zLGF1dGhlbnRpY2F0aW9uLm0zdSxhdXRoZW50aWNhdGlvbi54bWwsYXV0aGVudGljYXRpb24uYXBpIikpOw0KZnVuY3Rpb24gc2hvd1BvcFVwRWxlbWVudChlbG0pIHsNCiAgICB2YXIgYWxsRWxlbWVudHMgPSBuZXcgQXJyYXkoInBvcHVwLWN1c3RvbSIpOw0KICAgIGZvciAodmFyIGkgPSAwOyBpIDwgYWxsRWxlbWVudHMubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgc2hvd0VsZW1lbnQoYWxsRWxlbWVudHNbaV0sIGZhbHNlKTsNCiAgICB9DQogICAgc2hvd0VsZW1lbnQoZWxtLCB0cnVlKTsNCiAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsNCiAgICAgICAgc2hvd0VsZW1lbnQoInBvcHVwIiwgdHJ1ZSk7DQogICAgfSwgMTApOw0KICAgIHJldHVybjsNCn0NCmZ1bmN0aW9uIHNob3dFbGVtZW50KGVsbUlELCB0eXBlKSB7DQogICAgdmFyIGNzc0NsYXNzOw0KICAgIHN3aXRjaCAodHlwZSkgew0KICAgICAgICBjYXNlIHRydWU6DQogICAgICAgICAgICBjc3NDbGFzcyA9ICJibG9jayI7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSBmYWxzZToNCiAgICAgICAgICAgIGNzc0NsYXNzID0gIm5vbmUiOw0KICAgICAgICAgICAgYnJlYWs7DQogICAgfQ0KICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGVsbUlEKS5jbGFzc05hbWUgPSBjc3NDbGFzczsNCn0NCmZ1bmN0aW9uIGNoYW5nZUJ1dHRvbkFjdGlvbihlbGVtZW50LCBidXR0b25JRCwgYXR0cmlidXRlKSB7DQogICAgdmFyIHZhbHVlID0gZWxlbWVudC5vcHRpb25zW2VsZW1lbnQuc2VsZWN0ZWRJbmRleF0udmFsdWU7DQogICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoYnV0dG9uSUQpLnNldEF0dHJpYnV0ZShhdHRyaWJ1dGUsIHZhbHVlKTsNCn0NCmZ1bmN0aW9uIGdldExvY2FsRGF0YShkYXRhVHlwZSwgaWQpIHsNCiAgICBsZXQgZGF0YSA9IHt9Ow0KICAgIHN3aXRjaCAoZGF0YVR5cGUpIHsNCiAgICAgICAgY2FzZSAibTN1IjoNCiAgICAgICAgICAgIGRhdGEgPSBTRVJWRVJbInNldHRpbmdzIl1bImZpbGVzIl1bZGF0YVR5cGVdW2lkXTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJoZGhyIjoNCiAgICAgICAgICAgIGRhdGEgPSBTRVJWRVJbInNldHRpbmdzIl1bImZpbGVzIl1bZGF0YVR5cGVdW2lkXTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJmaWx0ZXIiOg0KICAgICAgICBjYXNlICJjdXN0b20tZmlsdGVyIjoNCiAgICAgICAgY2FzZSAiZ3JvdXAtdGl0bGUiOg0KICAgICAgICAgICAgaWYgKGlkID09IC0xKSB7DQogICAgICAgICAgICAgICAgZGF0YVsiYWN0aXZlIl0gPSB0cnVlOw0KICAgICAgICAgICAgICAgIGRhdGFbImNhc2VTZW5zaXRpdmUiXSA9IGZhbHNlOw0KICAgICAgICAgICAgICAgIGRhdGFbImRlc2NyaXB0aW9uIl0gPSAiIjsNCiAgICAgICAgICAgICAgICBkYXRhWyJleGNsdWRlIl0gPSAiIjsNCiAgICAgICAgICAgICAgICBkYXRhWyJmaWx0ZXIiXSA9ICIiOw0KICAgICAgICAgICAgICAgIGRhdGFbImluY2x1ZGUiXSA9ICIiOw0KICAgICAgICAgICAgICAgIGRhdGFbIm5hbWUiXSA9ICIiOw0KICAgICAgICAgICAgICAgIGRhdGFbInR5cGUiXSA9ICJncm91cC10aXRsZSI7DQogICAgICAgICAgICAgICAgZGF0YVsicHJlc2VydmVNYXBwaW5nIl0gPSB0cnVlOw0KICAgICAgICAgICAgICAgIGRhdGFbInN0YXJ0aW5nQ2hhbm5lbCJdID0gU0VSVkVSWyJzZXR0aW5ncyJdWyJtYXBwaW5nLmZpcnN0LmNoYW5uZWwiXTsNCiAgICAgICAgICAgICAgICBkYXRhWyJkZWZhdWx0TWlzc2luZ0VQRyJdID0gIi0iOw0KICAgICAgICAgICAgICAgIFNFUlZFUlsic2V0dGluZ3MiXVsiZmlsdGVyIl1baWRdID0gZGF0YTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGRhdGEgPSBTRVJWRVJbInNldHRpbmdzIl1bImZpbHRlciJdW2lkXTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJ4bWx0diI6DQogICAgICAgICAgICBkYXRhID0gU0VSVkVSWyJzZXR0aW5ncyJdWyJmaWxlcyJdW2RhdGFUeXBlXVtpZF07DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSAidXNlcnMiOg0KICAgICAgICAgICAgZGF0YSA9IFNFUlZFUlsidXNlcnMiXVtpZF1bImRhdGEiXTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJtYXBwaW5nIjoNCiAgICAgICAgICAgIGRhdGEgPSBTRVJWRVJbInhlcGciXVsiZXBnTWFwcGluZyJdW2lkXTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJtM3VHcm91cHMiOg0KICAgICAgICAgICAgZGF0YSA9IFNFUlZFUlsiZGF0YSJdWyJwbGF5bGlzdCJdWyJtM3UiXVsiZ3JvdXBzIl07DQogICAgICAgICAgICBicmVhazsNCiAgICB9DQogICAgcmV0dXJuIGRhdGE7DQp9DQpmdW5jdGlvbiBnZXRPYmpLZXlzKG9iaikgew0KICAgIHZhciBrZXlzID0gbmV3IEFycmF5KCk7DQogICAgZm9yICh2YXIgaSBpbiBvYmopIHsNCiAgICAgICAgaWYgKG9iai5oYXNPd25Qcm9wZXJ0eShpKSkgew0KICAgICAgICAgICAga2V5cy5wdXNoKGkpOw0KICAgICAgICB9DQogICAgfQ0KICAgIHJldHVybiBrZXlzOw0KfQ0KZnVuY3Rpb24gZ2V0QWxsU2VsZWN0ZWRDaGFubmVscygpIHsNCiAgICB2YXIgY2hhbm5lbHMgPSBuZXcgQXJyYXkoKTsNCiAgICBpZiAoQlVMS19FRElUID09IGZhbHNlKSB7DQogICAgICAgIHJldHVybiBjaGFubmVsczsNCiAgICB9DQogICAgdmFyIHRycyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb250ZW50X3RhYmxlIikuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlRSIik7DQogICAgZm9yICh2YXIgaSA9IDE7IGkgPCB0cnMubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgaWYgKHRyc1tpXS5zdHlsZS5kaXNwbGF5ICE9ICJub25lIikgew0KICAgICAgICAgICAgaWYgKHRyc1tpXS5maXJzdENoaWxkLmZpcnN0Q2hpbGQuY2hlY2tlZCA9PSB0cnVlKSB7DQogICAgICAgICAgICAgICAgY2hhbm5lbHMucHVzaCh0cnNbaV0uaWQpOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQogICAgfQ0KICAgIHJldHVybiBjaGFubmVsczsNCn0NCmZ1bmN0aW9uIHNlbGVjdEFsbENoYW5uZWxzKCkgew0KICAgIHZhciBidWxrID0gZmFsc2U7DQogICAgdmFyIHRycyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb250ZW50X3RhYmxlIikuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlRSIik7DQogICAgaWYgKHRyc1swXS5maXJzdENoaWxkLmZpcnN0Q2hpbGQuY2hlY2tlZCA9PSB0cnVlKSB7DQogICAgICAgIGJ1bGsgPSB0cnVlOw0KICAgIH0NCiAgICBmb3IgKHZhciBpID0gMTsgaSA8IHRycy5sZW5ndGg7IGkrKykgew0KICAgICAgICBpZiAodHJzW2ldLnN0eWxlLmRpc3BsYXkgIT0gIm5vbmUiKSB7DQogICAgICAgICAgICBzd2l0Y2ggKGJ1bGspIHsNCiAgICAgICAgICAgICAgICBjYXNlIHRydWU6DQogICAgICAgICAgICAgICAgICAgIHRyc1tpXS5maXJzdENoaWxkLmZpcnN0Q2hpbGQuY2hlY2tlZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgZmFsc2U6DQogICAgICAgICAgICAgICAgICAgIHRyc1tpXS5maXJzdENoaWxkLmZpcnN0Q2hpbGQuY2hlY2tlZCA9IGZhbHNlOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KICAgIH0NCiAgICByZXR1cm47DQp9DQpmdW5jdGlvbiBidWxrRWRpdCgpIHsNCiAgICBCVUxLX0VESVQgPSAhQlVMS19FRElUOw0KICAgIHZhciBjbGFzc05hbWU7DQogICAgdmFyIHJvd3MgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCJidWxrIik7DQogICAgc3dpdGNoIChCVUxLX0VESVQpIHsNCiAgICAgICAgY2FzZSB0cnVlOg0KICAgICAgICAgICAgY2xhc3NOYW1lID0gImJ1bGsgc2hvd0J1bGsiOw0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGNhc2UgZmFsc2U6DQogICAgICAgICAgICBjbGFzc05hbWUgPSAiYnVsayBoaWRlQnVsayI7DQogICAgICAgICAgICBicmVhazsNCiAgICB9DQogICAgZm9yICh2YXIgaSA9IDA7IGkgPCByb3dzLmxlbmd0aDsgaSsrKSB7DQogICAgICAgIHJvd3NbaV0uY2xhc3NOYW1lID0gY2xhc3NOYW1lOw0KICAgICAgICByb3dzW2ldLmNoZWNrZWQgPSBmYWxzZTsNCiAgICB9DQogICAgcmV0dXJuOw0KfQ0KZnVuY3Rpb24gc29ydFRhYmxlKGNvbHVtbikgew0KICAgIGlmIChjb2x1bW4gPT0gQ09MVU1OX1RPX1NPUlQpIHsNCiAgICAgICAgcmV0dXJuOw0KICAgIH0NCiAgICBjb25zdCB0YWJsZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb250ZW50X3RhYmxlIik7DQogICAgY29uc3QgdGFibGVIZWFkID0gdGFibGUuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlRSIilbMF07DQogICAgY29uc3QgdGFibGVJdGVtcyA9IHRhYmxlSGVhZC5nZXRFbGVtZW50c0J5VGFnTmFtZSgiVEQiKTsNCiAgICBjb25zdCBzb3J0QXJyID0gW107DQogICAgbGV0IHhWYWx1ZTsNCiAgICBpZiAoY29sdW1uID49IDAgJiYgQ09MVU1OX1RPX1NPUlQgPj0gMCkgew0KICAgICAgICB0YWJsZUl0ZW1zW0NPTFVNTl9UT19TT1JUXS5jbGFzc05hbWUgPSAicG9pbnRlciI7DQogICAgICAgIHRhYmxlSXRlbXNbY29sdW1uXS5jbGFzc05hbWUgPSAic29ydFRoaXMiOw0KICAgIH0NCiAgICBDT0xVTU5fVE9fU09SVCA9IGNvbHVtbjsNCiAgICBjb25zdCByb3dzID0gdGFibGUucm93czsNCiAgICBpZiAocm93c1sxXSAhPSB1bmRlZmluZWQpIHsNCiAgICAgICAgY29uc3QgdGFibGVIZWFkZXIgPSByb3dzWzBdOw0KICAgICAgICBsZXQgeCA9IHJvd3NbMV0uZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlREIilbY29sdW1uXTsNCiAgICAgICAgZm9yIChsZXQgaSA9IDE7IGkgPCByb3dzLmxlbmd0aDsgaSsrKSB7DQogICAgICAgICAgICB4ID0gcm93c1tpXS5nZXRFbGVtZW50c0J5VGFnTmFtZSgiVEQiKVtjb2x1bW5dOw0KICAgICAgICAgICAgc3dpdGNoICh4LmNoaWxkTm9kZXNbMF0udGFnTmFtZS50b0xvd2VyQ2FzZSgpKSB7DQogICAgICAgICAgICAgICAgY2FzZSAiaW5wdXQiOg0KICAgICAgICAgICAgICAgICAgICB4VmFsdWUgPSB4LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJJTlBVVCIpWzBdLnZhbHVlLnRvTG93ZXJDYXNlKCk7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgInAiOg0KICAgICAgICAgICAgICAgICAgICB4VmFsdWUgPSB4LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJQIilbMF0uaW5uZXJUZXh0LnRvTG93ZXJDYXNlKCk7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKHguY2hpbGROb2Rlc1swXS50YWdOYW1lKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIHNvcnRBcnIucHVzaCh7IGtleTogeFZhbHVlID8geFZhbHVlIDogaSwgcm93OiByb3dzW2ldIH0pOw0KICAgICAgICB9DQogICAgICAgIHdoaWxlICh0YWJsZS5maXJzdENoaWxkKSB7DQogICAgICAgICAgICB0YWJsZS5yZW1vdmVDaGlsZCh0YWJsZS5maXJzdENoaWxkKTsNCiAgICAgICAgfQ0KICAgICAgICBzb3J0QXJyLnNvcnQoKHNlMSwgc2UyKSA9PiB7DQogICAgICAgICAgICBjb25zdCBzZTFLZXlOdW0gPSBwYXJzZUZsb2F0KFN0cmluZyhzZTEua2V5KSk7DQogICAgICAgICAgICBjb25zdCBzZTJLZXlOdW0gPSBwYXJzZUZsb2F0KFN0cmluZyhzZTIua2V5KSk7DQogICAgICAgICAgICBpZiAoIWlzTmFOKHNlMUtleU51bSkgJiYgIWlzTmFOKHNlMktleU51bSkpIHsNCiAgICAgICAgICAgICAgICByZXR1cm4gc2UxS2V5TnVtIC0gc2UyS2V5TnVtOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgaWYgKHNlMS5rZXkgPCBzZTIua2V5KSB7DQogICAgICAgICAgICAgICAgcmV0dXJuIC0xOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgaWYgKHNlMS5rZXkgPiBzZTIua2V5KSB7DQogICAgICAgICAgICAgICAgcmV0dXJuIDE7DQogICAgICAgICAgICB9DQogICAgICAgICAgICByZXR1cm4gMDsNCiAgICAgICAgfSk7DQogICAgICAgIHRhYmxlLmFwcGVuZENoaWxkKHRhYmxlSGVhZGVyKTsNCiAgICAgICAgc29ydEFyci5mb3JFYWNoKChzZSkgPT4gew0KICAgICAgICAgICAgdGFibGUuYXBwZW5kQ2hpbGQoc2Uucm93KTsNCiAgICAgICAgfSk7DQogICAgfQ0KICAgIHJldHVybjsNCn0NCmZ1bmN0aW9uIGNyZWF0ZVNlYXJjaE9iaigpIHsNCiAgICBTRUFSQ0hfTUFQUElORyA9IG5ldyBPYmplY3QoKTsNCiAgICB2YXIgZGF0YSA9IFNFUlZFUlsieGVwZyJdWyJlcGdNYXBwaW5nIl07DQogICAgdmFyIGNoYW5uZWxzID0gZ2V0T2JqS2V5cyhkYXRhKTsNCiAgICB2YXIgY2hhbm5lbEtleXMgPSBbIngtYWN0aXZlIiwgIngtY2hhbm5lbElEIiwgIngtbmFtZSIsICJfZmlsZS5tM3UubmFtZSIsICJ4LWdyb3VwLXRpdGxlIiwgIngteG1sdHYtZmlsZSJdOw0KICAgIGNoYW5uZWxzLmZvckVhY2goaWQgPT4gew0KICAgICAgICBjaGFubmVsS2V5cy5mb3JFYWNoKGtleSA9PiB7DQogICAgICAgICAgICBpZiAoa2V5ID09ICJ4LWFjdGl2ZSIpIHsNCiAgICAgICAgICAgICAgICBzd2l0Y2ggKGRhdGFbaWRdW2tleV0pIHsNCiAgICAgICAgICAgICAgICAgICAgY2FzZSB0cnVlOg0KICAgICAgICAgICAgICAgICAgICAgICAgU0VBUkNIX01BUFBJTkdbaWRdID0gIm9ubGluZSAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgICAgIGNhc2UgZmFsc2U6DQogICAgICAgICAgICAgICAgICAgICAgICBTRUFSQ0hfTUFQUElOR1tpZF0gPSAib2ZmbGluZSAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgZWxzZSB7DQogICAgICAgICAgICAgICAgaWYgKGtleSA9PSAieC14bWx0di1maWxlIikgew0KICAgICAgICAgICAgICAgICAgICB2YXIgeG1sdHZGaWxlID0gZ2V0VmFsdWVGcm9tUHJvdmlkZXJGaWxlKGRhdGFbaWRdW2tleV0sICJ4bWx0diIsICJuYW1lIik7DQogICAgICAgICAgICAgICAgICAgIGlmICh4bWx0dkZpbGUgIT0gdW5kZWZpbmVkKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBTRUFSQ0hfTUFQUElOR1tpZF0gPSBTRUFSQ0hfTUFQUElOR1tpZF0gKyB4bWx0dkZpbGUgKyAiICI7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgZWxzZSB7DQogICAgICAgICAgICAgICAgICAgIFNFQVJDSF9NQVBQSU5HW2lkXSA9IFNFQVJDSF9NQVBQSU5HW2lkXSArIGRhdGFbaWRdW2tleV0gKyAiICI7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfQ0KICAgICAgICB9KTsNCiAgICB9KTsNCiAgICByZXR1cm47DQp9DQpmdW5jdGlvbiBzZWFyY2hJbk1hcHBpbmcoKSB7DQogICAgdmFyIHNlYXJjaFZhbHVlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNlYXJjaE1hcHBpbmciKS52YWx1ZTsNCiAgICB2YXIgdHJzID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnRlbnRfdGFibGUiKS5nZXRFbGVtZW50c0J5VGFnTmFtZSgiVFIiKTsNCiAgICBmb3IgKHZhciBpID0gMTsgaSA8IHRycy5sZW5ndGg7ICsraSkgew0KICAgICAgICB2YXIgaWQgPSB0cnNbaV0uZ2V0QXR0cmlidXRlKCJpZCIpOw0KICAgICAgICB2YXIgZWxlbWVudCA9IFNFQVJDSF9NQVBQSU5HW2lkXTsNCiAgICAgICAgc3dpdGNoIChlbGVtZW50LnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoc2VhcmNoVmFsdWUudG9Mb3dlckNhc2UoKSkpIHsNCiAgICAgICAgICAgIGNhc2UgdHJ1ZToNCiAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkuc3R5bGUuZGlzcGxheSA9ICIiOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSBmYWxzZToNCiAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkuc3R5bGUuZGlzcGxheSA9ICJub25lIjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgfQ0KICAgIH0NCiAgICByZXR1cm47DQp9DQpmdW5jdGlvbiBjYWxjdWxhdGVXcmFwcGVySGVpZ2h0KCkgew0KICAgIGlmIChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYm94LXdyYXBwZXIiKSkgew0KICAgICAgICB2YXIgZWxtID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImJveC13cmFwcGVyIik7DQogICAgICAgIHZhciBkaXZzID0gbmV3IEFycmF5KCJteVN0cmVhbXNCb3giLCAiY2xpZW50SW5mbyIsICJjb250ZW50Iik7DQogICAgICAgIHZhciBlbGVtZW50c0hlaWdodCA9IDAgLSBlbG0ub2Zmc2V0SGVpZ2h0Ow0KICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGRpdnMubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgICAgIGVsZW1lbnRzSGVpZ2h0ID0gZWxlbWVudHNIZWlnaHQgKyBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChkaXZzW2ldKS5vZmZzZXRIZWlnaHQ7DQogICAgICAgIH0NCiAgICAgICAgZWxtLnN0eWxlLmhlaWdodCA9IHdpbmRvdy5pbm5lckhlaWdodCAtIGVsZW1lbnRzSGVpZ2h0ICsgInB4IjsNCiAgICB9DQogICAgcmV0dXJuOw0KfQ0KZnVuY3Rpb24gY2hhbmdlQ2hhbm5lbE51bWJlcihlbGVtZW50KSB7DQogICAgdmFyIGRiSUQgPSBlbGVtZW50LnBhcmVudE5vZGUucGFyZW50Tm9kZS5pZDsNCiAgICB2YXIgbmV3TnVtYmVyID0gcGFyc2VGbG9hdChlbGVtZW50LnZhbHVlKTsNCiAgICB2YXIgY2hhbm5lbE51bWJlcnMgPSBbXTsNCiAgICB2YXIgZGF0YSA9IFNFUlZFUlsieGVwZyJdWyJlcGdNYXBwaW5nIl07DQogICAgdmFyIGNoYW5uZWxzID0gZ2V0T2JqS2V5cyhkYXRhKTsNCiAgICBpZiAoaXNOYU4obmV3TnVtYmVyKSkgew0KICAgICAgICBhbGVydCgie3suYWxlcnQuaW52YWxpZENoYW5uZWxOdW1iZXJ9fSIpOw0KICAgICAgICByZXR1cm47DQogICAgfQ0KICAgIGNoYW5uZWxzLmZvckVhY2goaWQgPT4gew0KICAgICAgICB2YXIgY2hhbm5lbE51bWJlciA9IHBhcnNlRmxvYXQoZGF0YVtpZF1bIngtY2hhbm5lbElEIl0pOw0KICAgICAgICBjaGFubmVsTnVtYmVycy5wdXNoKGNoYW5uZWxOdW1iZXIpOw0KICAgIH0pOw0KICAgIGZvciAodmFyIGkgPSAwOyBpIDwgY2hhbm5lbE51bWJlcnMubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgaWYgKGNoYW5uZWxOdW1iZXJzLmluZGV4T2YobmV3TnVtYmVyKSA9PSAtMSkgew0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIH0NCiAgICAgICAgaWYgKE1hdGguZmxvb3IobmV3TnVtYmVyKSA9PSBuZXdOdW1iZXIpIHsNCiAgICAgICAgICAgIG5ld051bWJlciA9IG5ld051bWJlciArIDE7DQogICAgICAgIH0NCiAgICAgICAgZWxzZSB7DQogICAgICAgICAgICBuZXdOdW1iZXIgPSBuZXdOdW1iZXIgKyAwLjE7DQogICAgICAgICAgICBuZXdOdW1iZXIudG9GaXhlZCgxKTsNCiAgICAgICAgICAgIG5ld051bWJlciA9IE1hdGgucm91bmQobmV3TnVtYmVyICogMTApIC8gMTA7DQogICAgICAgIH0NCiAgICB9DQogICAgZGF0YVtkYklEXVsieC1jaGFubmVsSUQiXSA9IG5ld051bWJlci50b1N0cmluZygpOw0KICAgIGVsZW1lbnQudmFsdWUgPSBuZXdOdW1iZXI7DQogICAgY29uc29sZS5sb2coZGF0YVtkYklEXVsieC1jaGFubmVsSUQiXSk7DQogICAgaWYgKENPTFVNTl9UT19TT1JUID09IDEpIHsNCiAgICAgICAgQ09MVU1OX1RPX1NPUlQgPSAtMTsNCiAgICAgICAgc29ydFRhYmxlKDEpOw0KICAgIH0NCiAgICByZXR1cm47DQp9DQpmdW5jdGlvbiBiYWNrdXAoKSB7DQogICAgdmFyIGRhdGEgPSBuZXcgT2JqZWN0KCk7DQogICAgY29uc29sZS5sb2coIkJhY2t1cCBkYXRhIik7DQogICAgdmFyIGNtZCA9ICJ4dGV2ZUJhY2t1cCI7DQogICAgY29uc29sZS5sb2coIlNFTkQgVE8gU0VSVkVSIik7DQogICAgY29uc29sZS5sb2coZGF0YSk7DQogICAgdmFyIHNlcnZlciA9IG5ldyBTZXJ2ZXIoY21kKTsNCiAgICBzZXJ2ZXIucmVxdWVzdChkYXRhKTsNCiAgICByZXR1cm47DQp9DQpmdW5jdGlvbiB0b2dnbGVDaGFubmVsU3RhdHVzKGlkKSB7DQogICAgdmFyIGVsZW1lbnQ7DQogICAgdmFyIHN0YXR1czsNCiAgICBpZiAoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImFjdGl2ZSIpKSB7DQogICAgICAgIHZhciBjaGVja2JveCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJhY3RpdmUiKTsNCiAgICAgICAgc3RhdHVzID0gKGNoZWNrYm94KS5jaGVja2VkOw0KICAgIH0NCiAgICB2YXIgaWRzID0gZ2V0QWxsU2VsZWN0ZWRDaGFubmVscygpOw0KICAgIGlmIChpZHMubGVuZ3RoID09IDApIHsNCiAgICAgICAgaWRzLnB1c2goaWQpOw0KICAgIH0NCiAgICBpZHMuZm9yRWFjaChpZCA9PiB7DQogICAgICAgIHZhciBjaGFubmVsID0gU0VSVkVSWyJ4ZXBnIl1bImVwZ01hcHBpbmciXVtpZF07DQogICAgICAgIGNoYW5uZWxbIngtYWN0aXZlIl0gPSBzdGF0dXM7DQogICAgICAgIHN3aXRjaCAoY2hhbm5lbFsieC1hY3RpdmUiXSkgew0KICAgICAgICAgICAgY2FzZSB0cnVlOg0KICAgICAgICAgICAgICAgIGlmIChjaGFubmVsWyJ4LXhtbHR2LWZpbGUiXSA9PSAiLSIgfHwgY2hhbm5lbFsieC1tYXBwaW5nIl0gPT0gIi0iKSB7DQogICAgICAgICAgICAgICAgICAgIGlmIChCVUxLX0VESVQgPT0gZmFsc2UpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGFsZXJ0KGNoYW5uZWxbIngtbmFtZSJdICsgIjogTWlzc2luZyBYTUxUViBmaWxlIC8gY2hhbm5lbCIpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2hlY2tib3guY2hlY2tlZCA9IGZhbHNlOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIGNoYW5uZWxbIngtYWN0aXZlIl0gPSBmYWxzZTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlIGZhbHNlOg0KICAgICAgICAgICAgICAgIC8vIGNvZGUuLi4NCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgfQ0KICAgICAgICBpZiAoY2hhbm5lbFsieC1hY3RpdmUiXSA9PSBmYWxzZSkgew0KICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpLmNsYXNzTmFtZSA9ICJub3RBY3RpdmVFUEciOw0KICAgICAgICB9DQogICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpLmNsYXNzTmFtZSA9ICJhY3RpdmVFUEciOw0KICAgICAgICB9DQogICAgfSk7DQp9DQpmdW5jdGlvbiB0b2dnbGVHcm91cFVwZGF0ZUNiKHhlcGdJZCwgdGFyZ2V0KSB7DQogICAgdGFyZ2V0LmNsYXNzTmFtZSA9ICdjaGFuZ2VkJzsNCiAgICBjb25zdCBncm91cElucHV0ID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignaW5wdXRbbmFtZT0ieC1ncm91cC10aXRsZSJdJyk7DQogICAgY29uc3QgbWFwcGluZyA9IGdldExvY2FsRGF0YSgnbWFwcGluZycsIHhlcGdJZCk7DQogICAgaWYgKHRhcmdldC5jaGVja2VkKSB7DQogICAgICAgIGdyb3VwSW5wdXQuZGF0YXNldC5vbGRWYWx1ZSA9IGdyb3VwSW5wdXQudmFsdWU7DQogICAgICAgIGdyb3VwSW5wdXQudmFsdWUgPSBtYXBwaW5nWydncm91cC10aXRsZSddOw0KICAgICAgICBncm91cElucHV0LmRpc2FibGVkID0gdHJ1ZTsNCiAgICB9DQogICAgZWxzZSB7DQogICAgICAgIGdyb3VwSW5wdXQudmFsdWUgPSBncm91cElucHV0LmRhdGFzZXQub2xkVmFsdWU7DQogICAgICAgIGdyb3VwSW5wdXQuZGlzYWJsZWQgPSBmYWxzZTsNCiAgICB9DQogICAgZ3JvdXBJbnB1dC5jbGFzc05hbWUgPSAnY2hhbmdlZCc7DQp9DQpmdW5jdGlvbiByZXN0b3JlKCkgew0KICAgIGlmIChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndXBsb2FkJykpIHsNCiAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3VwbG9hZCcpLnJlbW92ZSgpOw0KICAgIH0NCiAgICB2YXIgcmVzdG9yZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIklOUFVUIik7DQogICAgcmVzdG9yZS5zZXRBdHRyaWJ1dGUoInR5cGUiLCAiZmlsZSIpOw0KICAgIHJlc3RvcmUuc2V0QXR0cmlidXRlKCJjbGFzcyIsICJub3RWaXNpYmxlIik7DQogICAgcmVzdG9yZS5zZXRBdHRyaWJ1dGUoIm5hbWUiLCAiIik7DQogICAgcmVzdG9yZS5pZCA9ICJ1cGxvYWQiOw0KICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQocmVzdG9yZSk7DQogICAgcmVzdG9yZS5jbGljaygpOw0KICAgIHJlc3RvcmUub25jaGFuZ2UgPSBmdW5jdGlvbiAoKSB7DQogICAgICAgIHZhciBmaWxlbmFtZSA9IHJlc3RvcmUuZmlsZXNbMF0ubmFtZTsNCiAgICAgICAgdmFyIGNoZWNrID0gY29uZmlybSgiRmlsZTogIiArIGZpbGVuYW1lICsgIlxue3suY29uZmlybS5yZXN0b3JlfX0iKTsNCiAgICAgICAgaWYgKGNoZWNrID09IHRydWUpIHsNCiAgICAgICAgICAgIHZhciByZWFkZXIgPSBuZXcgRmlsZVJlYWRlcigpOw0KICAgICAgICAgICAgdmFyIGZpbGUgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCdpbnB1dFt0eXBlPWZpbGVdJykuZmlsZXNbMF07DQogICAgICAgICAgICBpZiAoZmlsZSkgew0KICAgICAgICAgICAgICAgIHJlYWRlci5yZWFkQXNEYXRhVVJMKGZpbGUpOw0KICAgICAgICAgICAgICAgIHJlYWRlci5vbmxvYWQgPSBmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKHJlYWRlci5yZXN1bHQpOw0KICAgICAgICAgICAgICAgICAgICB2YXIgZGF0YSA9IG5ldyBPYmplY3QoKTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGNtZCA9ICJ4dGV2ZVJlc3RvcmUiOw0KICAgICAgICAgICAgICAgICAgICBkYXRhWyJiYXNlNjQiXSA9IHJlYWRlci5yZXN1bHQ7DQogICAgICAgICAgICAgICAgICAgIHZhciBzZXJ2ZXIgPSBuZXcgU2VydmVyKGNtZCk7DQogICAgICAgICAgICAgICAgICAgIHNlcnZlci5yZXF1ZXN0KGRhdGEpOw0KICAgICAgICAgICAgICAgIH07DQogICAgICAgICAgICB9DQogICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICBhbGVydCgiRmlsZSBjb3VsZCBub3QgYmUgbG9hZGVkIik7DQogICAgICAgICAgICB9DQogICAgICAgICAgICByZXN0b3JlLnJlbW92ZSgpOw0KICAgICAgICAgICAgcmV0dXJuOw0KICAgICAgICB9DQogICAgfTsNCiAgICByZXR1cm47DQp9DQpmdW5jdGlvbiB1cGxvYWRMb2dvKCkgew0KICAgIGlmIChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndXBsb2FkJykpIHsNCiAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3VwbG9hZCcpLnJlbW92ZSgpOw0KICAgIH0NCiAgICB2YXIgdXBsb2FkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiSU5QVVQiKTsNCiAgICB1cGxvYWQuc2V0QXR0cmlidXRlKCJ0eXBlIiwgImZpbGUiKTsNCiAgICB1cGxvYWQuc2V0QXR0cmlidXRlKCJjbGFzcyIsICJub3RWaXNpYmxlIik7DQogICAgdXBsb2FkLnNldEF0dHJpYnV0ZSgibmFtZSIsICIiKTsNCiAgICB1cGxvYWQuaWQgPSAidXBsb2FkIjsNCiAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHVwbG9hZCk7DQogICAgdXBsb2FkLmNsaWNrKCk7DQogICAgdXBsb2FkLm9uYmx1ciA9IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgYWxlcnQoKTsNCiAgICB9Ow0KICAgIHVwbG9hZC5vbmNoYW5nZSA9IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgdmFyIGZpbGVuYW1lID0gdXBsb2FkLmZpbGVzWzBdLm5hbWU7DQogICAgICAgIHZhciByZWFkZXIgPSBuZXcgRmlsZVJlYWRlcigpOw0KICAgICAgICB2YXIgZmlsZSA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ2lucHV0W3R5cGU9ZmlsZV0nKS5maWxlc1swXTsNCiAgICAgICAgaWYgKGZpbGUpIHsNCiAgICAgICAgICAgIHJlYWRlci5yZWFkQXNEYXRhVVJMKGZpbGUpOw0KICAgICAgICAgICAgcmVhZGVyLm9ubG9hZCA9IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhyZWFkZXIucmVzdWx0KTsNCiAgICAgICAgICAgICAgICB2YXIgZGF0YSA9IG5ldyBPYmplY3QoKTsNCiAgICAgICAgICAgICAgICB2YXIgY21kID0gInVwbG9hZExvZ28iOw0KICAgICAgICAgICAgICAgIGRhdGFbImJhc2U2NCJdID0gcmVhZGVyLnJlc3VsdDsNCiAgICAgICAgICAgICAgICBkYXRhWyJmaWxlbmFtZSJdID0gZmlsZS5uYW1lOw0KICAgICAgICAgICAgICAgIHZhciBzZXJ2ZXIgPSBuZXcgU2VydmVyKGNtZCk7DQogICAgICAgICAgICAgICAgc2VydmVyLnJlcXVlc3QoZGF0YSk7DQogICAgICAgICAgICAgICAgdmFyIHVwZGF0ZUxvZ28gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndXBkYXRlLWljb24nKTsNCiAgICAgICAgICAgICAgICB1cGRhdGVMb2dvLmNoZWNrZWQgPSBmYWxzZTsNCiAgICAgICAgICAgICAgICB1cGRhdGVMb2dvLmNsYXNzTmFtZSA9ICJjaGFuZ2VkIjsNCiAgICAgICAgICAgIH07DQogICAgICAgIH0NCiAgICAgICAgZWxzZSB7DQogICAgICAgICAgICBhbGVydCgiRmlsZSBjb3VsZCBub3QgYmUgbG9hZGVkIik7DQogICAgICAgIH0NCiAgICAgICAgdXBsb2FkLnJlbW92ZSgpOw0KICAgICAgICByZXR1cm47DQogICAgfTsNCn0NCmZ1bmN0aW9uIGNoZWNrVW5kbyhrZXkpIHsNCiAgICBzd2l0Y2ggKGtleSkgew0KICAgICAgICBjYXNlICJlcGdNYXBwaW5nIjoNCiAgICAgICAgICAgIGlmIChVTkRPLmhhc093blByb3BlcnR5KGtleSkpIHsNCiAgICAgICAgICAgICAgICBTRVJWRVJbInhlcGciXVtrZXldID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeShVTkRPW2tleV0pKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgICAgIFVORE9ba2V5XSA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkoU0VSVkVSWyJ4ZXBnIl1ba2V5XSkpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICBicmVhazsNCiAgICB9DQogICAgcmV0dXJuOw0KfQ0KZnVuY3Rpb24gc29ydFNlbGVjdChlbGVtKSB7DQogICAgdmFyIHRtcEFyeSA9IFtdOw0KICAgIHZhciBzZWxlY3RlZFZhbHVlID0gZWxlbVtlbGVtLnNlbGVjdGVkSW5kZXhdLnZhbHVlOw0KICAgIGZvciAodmFyIGkgPSAwOyBpIDwgZWxlbS5vcHRpb25zLmxlbmd0aDsgaSsrKQ0KICAgICAgICB0bXBBcnkucHVzaChlbGVtLm9wdGlvbnNbaV0pOw0KICAgIHRtcEFyeS5zb3J0KGZ1bmN0aW9uIChhLCBiKSB7IHJldHVybiAoYS50ZXh0IDwgYi50ZXh0KSA/IC0xIDogMTsgfSk7DQogICAgd2hpbGUgKGVsZW0ub3B0aW9ucy5sZW5ndGggPiAwKQ0KICAgICAgICBlbGVtLm9wdGlvbnNbMF0gPSBudWxsOw0KICAgIHZhciBuZXdTZWxlY3RlZEluZGV4ID0gMDsNCiAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRtcEFyeS5sZW5ndGg7IGkrKykgew0KICAgICAgICBlbGVtLm9wdGlvbnNbaV0gPSB0bXBBcnlbaV07DQogICAgICAgIGlmIChlbGVtLm9wdGlvbnNbaV0udmFsdWUgPT0gc2VsZWN0ZWRWYWx1ZSkNCiAgICAgICAgICAgIG5ld1NlbGVjdGVkSW5kZXggPSBpOw0KICAgIH0NCiAgICBlbGVtLnNlbGVjdGVkSW5kZXggPSBuZXdTZWxlY3RlZEluZGV4OyAvLyBTZXQgbmV3IHNlbGVjdGVkIGluZGV4IGFmdGVyIHNvcnRpbmcNCiAgICByZXR1cm47DQp9DQpmdW5jdGlvbiB1cGRhdGVMb2coKSB7DQogICAgY29uc29sZS5sb2coIlRPS0VOIik7DQogICAgdmFyIHNlcnZlciA9IG5ldyBTZXJ2ZXIoInVwZGF0ZUxvZyIpOw0KICAgIHNlcnZlci5yZXF1ZXN0KG5ldyBPYmplY3QoKSk7DQp9DQo=" + webUI["html/js/base_ts.js"] = "dmFyIFNFUlZFUiA9IG5ldyBPYmplY3QoKTsNCnZhciBCVUxLX0VESVQgPSBmYWxzZTsNCnZhciBDT0xVTU5fVE9fU09SVDsNCnZhciBTRUFSQ0hfTUFQUElORyA9IG5ldyBPYmplY3QoKTsNCnZhciBVTkRPID0gbmV3IE9iamVjdCgpOw0KdmFyIFNFUlZFUl9DT05ORUNUSU9OID0gZmFsc2U7DQp2YXIgV1NfQVZBSUxBQkxFID0gZmFsc2U7DQovLyBNZW51DQp2YXIgbWVudUl0ZW1zID0gbmV3IEFycmF5KCk7DQptZW51SXRlbXMucHVzaChuZXcgTWFpbk1lbnVJdGVtKCJwbGF5bGlzdCIsICJ7ey5tYWluTWVudS5pdGVtLnBsYXlsaXN0fX0iLCAibTN1LnBuZyIsICJ7ey5tYWluTWVudS5oZWFkbGluZS5wbGF5bGlzdH19IikpOw0KLy9tZW51SXRlbXMucHVzaChuZXcgTWFpbk1lbnVJdGVtKCJwbXNJRCIsICJ7ey5tYWluTWVudS5pdGVtLnBtc0lEfX0iLCAibnVtYmVyLnBuZyIsICJ7ey5tYWluTWVudS5oZWFkbGluZS5wbXNJRH19IikpDQptZW51SXRlbXMucHVzaChuZXcgTWFpbk1lbnVJdGVtKCJmaWx0ZXIiLCAie3subWFpbk1lbnUuaXRlbS5maWx0ZXJ9fSIsICJmaWx0ZXIucG5nIiwgInt7Lm1haW5NZW51LmhlYWRsaW5lLmZpbHRlcn19IikpOw0KbWVudUl0ZW1zLnB1c2gobmV3IE1haW5NZW51SXRlbSgieG1sdHYiLCAie3subWFpbk1lbnUuaXRlbS54bWx0dn19IiwgInhtbHR2LnBuZyIsICJ7ey5tYWluTWVudS5oZWFkbGluZS54bWx0dn19IikpOw0KbWVudUl0ZW1zLnB1c2gobmV3IE1haW5NZW51SXRlbSgibWFwcGluZyIsICJ7ey5tYWluTWVudS5pdGVtLm1hcHBpbmd9fSIsICJtYXBwaW5nLnBuZyIsICJ7ey5tYWluTWVudS5oZWFkbGluZS5tYXBwaW5nfX0iKSk7DQptZW51SXRlbXMucHVzaChuZXcgTWFpbk1lbnVJdGVtKCJ1c2VycyIsICJ7ey5tYWluTWVudS5pdGVtLnVzZXJzfX0iLCAidXNlcnMucG5nIiwgInt7Lm1haW5NZW51LmhlYWRsaW5lLnVzZXJzfX0iKSk7DQptZW51SXRlbXMucHVzaChuZXcgTWFpbk1lbnVJdGVtKCJzZXR0aW5ncyIsICJ7ey5tYWluTWVudS5pdGVtLnNldHRpbmdzfX0iLCAic2V0dGluZ3MucG5nIiwgInt7Lm1haW5NZW51LmhlYWRsaW5lLnNldHRpbmdzfX0iKSk7DQptZW51SXRlbXMucHVzaChuZXcgTWFpbk1lbnVJdGVtKCJsb2ciLCAie3subWFpbk1lbnUuaXRlbS5sb2d9fSIsICJsb2cucG5nIiwgInt7Lm1haW5NZW51LmhlYWRsaW5lLmxvZ319IikpOw0KbWVudUl0ZW1zLnB1c2gobmV3IE1haW5NZW51SXRlbSgibG9nb3V0IiwgInt7Lm1haW5NZW51Lml0ZW0ubG9nb3V0fX0iLCAibG9nb3V0LnBuZyIsICJ7ey5tYWluTWVudS5oZWFkbGluZS5sb2dvdXR9fSIpKTsNCi8vIFNldHRpbmdzIGNhdGVnb3JpZXMNCnZhciBzZXR0aW5nc0NhdGVnb3J5ID0gbmV3IEFycmF5KCk7DQpzZXR0aW5nc0NhdGVnb3J5LnB1c2gobmV3IFNldHRpbmdzQ2F0ZWdvcnlJdGVtKCJ7ey5zZXR0aW5ncy5jYXRlZ29yeS5nZW5lcmFsfX0iLCAieHRldmVBdXRvVXBkYXRlLHR1bmVyLGVwZ1NvdXJjZSxhcGkiKSk7DQpzZXR0aW5nc0NhdGVnb3J5LnB1c2gobmV3IFNldHRpbmdzQ2F0ZWdvcnlJdGVtKCJ7ey5zZXR0aW5ncy5jYXRlZ29yeS5maWxlc319IiwgInVwZGF0ZSxmaWxlcy51cGRhdGUsdGVtcC5wYXRoLGNhY2hlLmltYWdlcyx4ZXBnLnJlcGxhY2UubWlzc2luZy5pbWFnZXMiKSk7DQpzZXR0aW5nc0NhdGVnb3J5LnB1c2gobmV3IFNldHRpbmdzQ2F0ZWdvcnlJdGVtKCJ7ey5zZXR0aW5ncy5jYXRlZ29yeS5zdHJlYW1pbmd9fSIsICJidWZmZXIsdWRweHksYnVmZmVyLnNpemUua2IsYnVmZmVyLnRpbWVvdXQsdXNlci5hZ2VudCxmZm1wZWcucGF0aCxmZm1wZWcub3B0aW9ucyx2bGMucGF0aCx2bGMub3B0aW9ucyIpKTsNCnNldHRpbmdzQ2F0ZWdvcnkucHVzaChuZXcgU2V0dGluZ3NDYXRlZ29yeUl0ZW0oInt7LnNldHRpbmdzLmNhdGVnb3J5LmJhY2t1cH19IiwgImJhY2t1cC5wYXRoLGJhY2t1cC5rZWVwIikpOw0Kc2V0dGluZ3NDYXRlZ29yeS5wdXNoKG5ldyBTZXR0aW5nc0NhdGVnb3J5SXRlbSgie3suc2V0dGluZ3MuY2F0ZWdvcnkuYXV0aGVudGljYXRpb259fSIsICJhdXRoZW50aWNhdGlvbi53ZWIsYXV0aGVudGljYXRpb24ucG1zLGF1dGhlbnRpY2F0aW9uLm0zdSxhdXRoZW50aWNhdGlvbi54bWwsYXV0aGVudGljYXRpb24uYXBpIikpOw0KZnVuY3Rpb24gc2hvd1BvcFVwRWxlbWVudChlbG0pIHsNCiAgICB2YXIgYWxsRWxlbWVudHMgPSBuZXcgQXJyYXkoInBvcHVwLWN1c3RvbSIpOw0KICAgIGZvciAodmFyIGkgPSAwOyBpIDwgYWxsRWxlbWVudHMubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgc2hvd0VsZW1lbnQoYWxsRWxlbWVudHNbaV0sIGZhbHNlKTsNCiAgICB9DQogICAgc2hvd0VsZW1lbnQoZWxtLCB0cnVlKTsNCiAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsNCiAgICAgICAgc2hvd0VsZW1lbnQoInBvcHVwIiwgdHJ1ZSk7DQogICAgfSwgMTApOw0KICAgIHJldHVybjsNCn0NCmZ1bmN0aW9uIHNob3dFbGVtZW50KGVsbUlELCB0eXBlKSB7DQogICAgdmFyIGNzc0NsYXNzOw0KICAgIHN3aXRjaCAodHlwZSkgew0KICAgICAgICBjYXNlIHRydWU6DQogICAgICAgICAgICBjc3NDbGFzcyA9ICJibG9jayI7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSBmYWxzZToNCiAgICAgICAgICAgIGNzc0NsYXNzID0gIm5vbmUiOw0KICAgICAgICAgICAgYnJlYWs7DQogICAgfQ0KICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGVsbUlEKS5jbGFzc05hbWUgPSBjc3NDbGFzczsNCn0NCmZ1bmN0aW9uIGNoYW5nZUJ1dHRvbkFjdGlvbihlbGVtZW50LCBidXR0b25JRCwgYXR0cmlidXRlKSB7DQogICAgdmFyIHZhbHVlID0gZWxlbWVudC5vcHRpb25zW2VsZW1lbnQuc2VsZWN0ZWRJbmRleF0udmFsdWU7DQogICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoYnV0dG9uSUQpLnNldEF0dHJpYnV0ZShhdHRyaWJ1dGUsIHZhbHVlKTsNCn0NCmZ1bmN0aW9uIGdldExvY2FsRGF0YShkYXRhVHlwZSwgaWQpIHsNCiAgICBsZXQgZGF0YSA9IHt9Ow0KICAgIHN3aXRjaCAoZGF0YVR5cGUpIHsNCiAgICAgICAgY2FzZSAibTN1IjoNCiAgICAgICAgICAgIGRhdGEgPSBTRVJWRVJbInNldHRpbmdzIl1bImZpbGVzIl1bZGF0YVR5cGVdW2lkXTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJoZGhyIjoNCiAgICAgICAgICAgIGRhdGEgPSBTRVJWRVJbInNldHRpbmdzIl1bImZpbGVzIl1bZGF0YVR5cGVdW2lkXTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJmaWx0ZXIiOg0KICAgICAgICBjYXNlICJjdXN0b20tZmlsdGVyIjoNCiAgICAgICAgY2FzZSAiZ3JvdXAtdGl0bGUiOg0KICAgICAgICAgICAgaWYgKGlkID09IC0xKSB7DQogICAgICAgICAgICAgICAgZGF0YVsiYWN0aXZlIl0gPSB0cnVlOw0KICAgICAgICAgICAgICAgIGRhdGFbImNhc2VTZW5zaXRpdmUiXSA9IGZhbHNlOw0KICAgICAgICAgICAgICAgIGRhdGFbImRlc2NyaXB0aW9uIl0gPSAiIjsNCiAgICAgICAgICAgICAgICBkYXRhWyJleGNsdWRlIl0gPSAiIjsNCiAgICAgICAgICAgICAgICBkYXRhWyJmaWx0ZXIiXSA9ICIiOw0KICAgICAgICAgICAgICAgIGRhdGFbImluY2x1ZGUiXSA9ICIiOw0KICAgICAgICAgICAgICAgIGRhdGFbIm5hbWUiXSA9ICIiOw0KICAgICAgICAgICAgICAgIGRhdGFbInR5cGUiXSA9ICJncm91cC10aXRsZSI7DQogICAgICAgICAgICAgICAgZGF0YVsicHJlc2VydmVNYXBwaW5nIl0gPSB0cnVlOw0KICAgICAgICAgICAgICAgIGRhdGFbInN0YXJ0aW5nQ2hhbm5lbCJdID0gU0VSVkVSWyJzZXR0aW5ncyJdWyJtYXBwaW5nLmZpcnN0LmNoYW5uZWwiXTsNCiAgICAgICAgICAgICAgICBkYXRhWyJkZWZhdWx0TWlzc2luZ0VQRyJdID0gIi0iOw0KICAgICAgICAgICAgICAgIFNFUlZFUlsic2V0dGluZ3MiXVsiZmlsdGVyIl1baWRdID0gZGF0YTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGRhdGEgPSBTRVJWRVJbInNldHRpbmdzIl1bImZpbHRlciJdW2lkXTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJ4bWx0diI6DQogICAgICAgICAgICBkYXRhID0gU0VSVkVSWyJzZXR0aW5ncyJdWyJmaWxlcyJdW2RhdGFUeXBlXVtpZF07DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSAidXNlcnMiOg0KICAgICAgICAgICAgZGF0YSA9IFNFUlZFUlsidXNlcnMiXVtpZF1bImRhdGEiXTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJtYXBwaW5nIjoNCiAgICAgICAgICAgIGRhdGEgPSBTRVJWRVJbInhlcGciXVsiZXBnTWFwcGluZyJdW2lkXTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJtM3VHcm91cHMiOg0KICAgICAgICAgICAgZGF0YSA9IFNFUlZFUlsiZGF0YSJdWyJwbGF5bGlzdCJdWyJtM3UiXVsiZ3JvdXBzIl07DQogICAgICAgICAgICBicmVhazsNCiAgICB9DQogICAgcmV0dXJuIGRhdGE7DQp9DQpmdW5jdGlvbiBnZXRPd25PYmpQcm9wcyhvYmplY3QpIHsNCiAgICByZXR1cm4gT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMob2JqZWN0KTsNCn0NCmZ1bmN0aW9uIGdldEFsbFNlbGVjdGVkQ2hhbm5lbHMoKSB7DQogICAgdmFyIGNoYW5uZWxzID0gbmV3IEFycmF5KCk7DQogICAgaWYgKEJVTEtfRURJVCA9PSBmYWxzZSkgew0KICAgICAgICByZXR1cm4gY2hhbm5lbHM7DQogICAgfQ0KICAgIHZhciB0cnMgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29udGVudF90YWJsZSIpLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJUUiIpOw0KICAgIGZvciAodmFyIGkgPSAxOyBpIDwgdHJzLmxlbmd0aDsgaSsrKSB7DQogICAgICAgIGlmICh0cnNbaV0uc3R5bGUuZGlzcGxheSAhPSAibm9uZSIpIHsNCiAgICAgICAgICAgIGlmICh0cnNbaV0uZmlyc3RDaGlsZC5maXJzdENoaWxkLmNoZWNrZWQgPT0gdHJ1ZSkgew0KICAgICAgICAgICAgICAgIGNoYW5uZWxzLnB1c2godHJzW2ldLmlkKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KICAgIH0NCiAgICByZXR1cm4gY2hhbm5lbHM7DQp9DQpmdW5jdGlvbiBzZWxlY3RBbGxDaGFubmVscygpIHsNCiAgICB2YXIgYnVsayA9IGZhbHNlOw0KICAgIHZhciB0cnMgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29udGVudF90YWJsZSIpLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJUUiIpOw0KICAgIGlmICh0cnNbMF0uZmlyc3RDaGlsZC5maXJzdENoaWxkLmNoZWNrZWQgPT0gdHJ1ZSkgew0KICAgICAgICBidWxrID0gdHJ1ZTsNCiAgICB9DQogICAgZm9yICh2YXIgaSA9IDE7IGkgPCB0cnMubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgaWYgKHRyc1tpXS5zdHlsZS5kaXNwbGF5ICE9ICJub25lIikgew0KICAgICAgICAgICAgc3dpdGNoIChidWxrKSB7DQogICAgICAgICAgICAgICAgY2FzZSB0cnVlOg0KICAgICAgICAgICAgICAgICAgICB0cnNbaV0uZmlyc3RDaGlsZC5maXJzdENoaWxkLmNoZWNrZWQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBjYXNlIGZhbHNlOg0KICAgICAgICAgICAgICAgICAgICB0cnNbaV0uZmlyc3RDaGlsZC5maXJzdENoaWxkLmNoZWNrZWQgPSBmYWxzZTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICB9DQogICAgICAgIH0NCiAgICB9DQogICAgcmV0dXJuOw0KfQ0KZnVuY3Rpb24gYnVsa0VkaXQoKSB7DQogICAgQlVMS19FRElUID0gIUJVTEtfRURJVDsNCiAgICB2YXIgY2xhc3NOYW1lOw0KICAgIHZhciByb3dzID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSgiYnVsayIpOw0KICAgIHN3aXRjaCAoQlVMS19FRElUKSB7DQogICAgICAgIGNhc2UgdHJ1ZToNCiAgICAgICAgICAgIGNsYXNzTmFtZSA9ICJidWxrIHNob3dCdWxrIjsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlIGZhbHNlOg0KICAgICAgICAgICAgY2xhc3NOYW1lID0gImJ1bGsgaGlkZUJ1bGsiOw0KICAgICAgICAgICAgYnJlYWs7DQogICAgfQ0KICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcm93cy5sZW5ndGg7IGkrKykgew0KICAgICAgICByb3dzW2ldLmNsYXNzTmFtZSA9IGNsYXNzTmFtZTsNCiAgICAgICAgcm93c1tpXS5jaGVja2VkID0gZmFsc2U7DQogICAgfQ0KICAgIHJldHVybjsNCn0NCmZ1bmN0aW9uIHNvcnRUYWJsZShjb2x1bW4pIHsNCiAgICBpZiAoY29sdW1uID09IENPTFVNTl9UT19TT1JUKSB7DQogICAgICAgIHJldHVybjsNCiAgICB9DQogICAgY29uc3QgdGFibGUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29udGVudF90YWJsZSIpOw0KICAgIGNvbnN0IHRhYmxlSGVhZCA9IHRhYmxlLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJUUiIpWzBdOw0KICAgIGNvbnN0IHRhYmxlSXRlbXMgPSB0YWJsZUhlYWQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlREIik7DQogICAgY29uc3Qgc29ydEFyciA9IFtdOw0KICAgIGxldCB4VmFsdWU7DQogICAgaWYgKGNvbHVtbiA+PSAwICYmIENPTFVNTl9UT19TT1JUID49IDApIHsNCiAgICAgICAgdGFibGVJdGVtc1tDT0xVTU5fVE9fU09SVF0uY2xhc3NOYW1lID0gInBvaW50ZXIiOw0KICAgICAgICB0YWJsZUl0ZW1zW2NvbHVtbl0uY2xhc3NOYW1lID0gInNvcnRUaGlzIjsNCiAgICB9DQogICAgQ09MVU1OX1RPX1NPUlQgPSBjb2x1bW47DQogICAgY29uc3Qgcm93cyA9IHRhYmxlLnJvd3M7DQogICAgaWYgKHJvd3NbMV0gIT0gdW5kZWZpbmVkKSB7DQogICAgICAgIGNvbnN0IHRhYmxlSGVhZGVyID0gcm93c1swXTsNCiAgICAgICAgbGV0IHggPSByb3dzWzFdLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJURCIpW2NvbHVtbl07DQogICAgICAgIGZvciAobGV0IGkgPSAxOyBpIDwgcm93cy5sZW5ndGg7IGkrKykgew0KICAgICAgICAgICAgeCA9IHJvd3NbaV0uZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlREIilbY29sdW1uXTsNCiAgICAgICAgICAgIHN3aXRjaCAoeC5jaGlsZE5vZGVzWzBdLnRhZ05hbWUudG9Mb3dlckNhc2UoKSkgew0KICAgICAgICAgICAgICAgIGNhc2UgImlucHV0IjoNCiAgICAgICAgICAgICAgICAgICAgeFZhbHVlID0geC5nZXRFbGVtZW50c0J5VGFnTmFtZSgiSU5QVVQiKVswXS52YWx1ZS50b0xvd2VyQ2FzZSgpOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBjYXNlICJwIjoNCiAgICAgICAgICAgICAgICAgICAgeFZhbHVlID0geC5nZXRFbGVtZW50c0J5VGFnTmFtZSgiUCIpWzBdLmlubmVyVGV4dC50b0xvd2VyQ2FzZSgpOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBkZWZhdWx0Og0KICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyh4LmNoaWxkTm9kZXNbMF0udGFnTmFtZSk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBzb3J0QXJyLnB1c2goeyBrZXk6IHhWYWx1ZSA/IHhWYWx1ZSA6IGksIHJvdzogcm93c1tpXSB9KTsNCiAgICAgICAgfQ0KICAgICAgICB3aGlsZSAodGFibGUuZmlyc3RDaGlsZCkgew0KICAgICAgICAgICAgdGFibGUucmVtb3ZlQ2hpbGQodGFibGUuZmlyc3RDaGlsZCk7DQogICAgICAgIH0NCiAgICAgICAgc29ydEFyci5zb3J0KChzZTEsIHNlMikgPT4gew0KICAgICAgICAgICAgY29uc3Qgc2UxS2V5TnVtID0gcGFyc2VGbG9hdChTdHJpbmcoc2UxLmtleSkpOw0KICAgICAgICAgICAgY29uc3Qgc2UyS2V5TnVtID0gcGFyc2VGbG9hdChTdHJpbmcoc2UyLmtleSkpOw0KICAgICAgICAgICAgaWYgKCFpc05hTihzZTFLZXlOdW0pICYmICFpc05hTihzZTJLZXlOdW0pKSB7DQogICAgICAgICAgICAgICAgcmV0dXJuIHNlMUtleU51bSAtIHNlMktleU51bTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGlmIChzZTEua2V5IDwgc2UyLmtleSkgew0KICAgICAgICAgICAgICAgIHJldHVybiAtMTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGlmIChzZTEua2V5ID4gc2UyLmtleSkgew0KICAgICAgICAgICAgICAgIHJldHVybiAxOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgcmV0dXJuIDA7DQogICAgICAgIH0pOw0KICAgICAgICB0YWJsZS5hcHBlbmRDaGlsZCh0YWJsZUhlYWRlcik7DQogICAgICAgIHNvcnRBcnIuZm9yRWFjaCgoc2UpID0+IHsNCiAgICAgICAgICAgIHRhYmxlLmFwcGVuZENoaWxkKHNlLnJvdyk7DQogICAgICAgIH0pOw0KICAgIH0NCiAgICByZXR1cm47DQp9DQpmdW5jdGlvbiBjcmVhdGVTZWFyY2hPYmooKSB7DQogICAgU0VBUkNIX01BUFBJTkcgPSBuZXcgT2JqZWN0KCk7DQogICAgdmFyIGRhdGEgPSBTRVJWRVJbInhlcGciXVsiZXBnTWFwcGluZyJdOw0KICAgIHZhciBjaGFubmVscyA9IGdldE93bk9ialByb3BzKGRhdGEpOw0KICAgIHZhciBjaGFubmVsS2V5cyA9IFsieC1hY3RpdmUiLCAieC1jaGFubmVsSUQiLCAieC1uYW1lIiwgIl9maWxlLm0zdS5uYW1lIiwgIngtZ3JvdXAtdGl0bGUiLCAieC14bWx0di1maWxlIl07DQogICAgY2hhbm5lbHMuZm9yRWFjaChpZCA9PiB7DQogICAgICAgIGNoYW5uZWxLZXlzLmZvckVhY2goa2V5ID0+IHsNCiAgICAgICAgICAgIGlmIChrZXkgPT0gIngtYWN0aXZlIikgew0KICAgICAgICAgICAgICAgIHN3aXRjaCAoZGF0YVtpZF1ba2V5XSkgew0KICAgICAgICAgICAgICAgICAgICBjYXNlIHRydWU6DQogICAgICAgICAgICAgICAgICAgICAgICBTRUFSQ0hfTUFQUElOR1tpZF0gPSAib25saW5lICI7DQogICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICAgICAgY2FzZSBmYWxzZToNCiAgICAgICAgICAgICAgICAgICAgICAgIFNFQVJDSF9NQVBQSU5HW2lkXSA9ICJvZmZsaW5lICI7DQogICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9DQogICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICBpZiAoa2V5ID09ICJ4LXhtbHR2LWZpbGUiKSB7DQogICAgICAgICAgICAgICAgICAgIHZhciB4bWx0dkZpbGUgPSBnZXRWYWx1ZUZyb21Qcm92aWRlckZpbGUoZGF0YVtpZF1ba2V5XSwgInhtbHR2IiwgIm5hbWUiKTsNCiAgICAgICAgICAgICAgICAgICAgaWYgKHhtbHR2RmlsZSAhPSB1bmRlZmluZWQpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIFNFQVJDSF9NQVBQSU5HW2lkXSA9IFNFQVJDSF9NQVBQSU5HW2lkXSArIHhtbHR2RmlsZSArICIgIjsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICAgICAgU0VBUkNIX01BUFBJTkdbaWRdID0gU0VBUkNIX01BUFBJTkdbaWRdICsgZGF0YVtpZF1ba2V5XSArICIgIjsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9DQogICAgICAgIH0pOw0KICAgIH0pOw0KICAgIHJldHVybjsNCn0NCmZ1bmN0aW9uIHNlYXJjaEluTWFwcGluZygpIHsNCiAgICB2YXIgc2VhcmNoVmFsdWUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic2VhcmNoTWFwcGluZyIpLnZhbHVlOw0KICAgIHZhciB0cnMgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29udGVudF90YWJsZSIpLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJUUiIpOw0KICAgIGZvciAodmFyIGkgPSAxOyBpIDwgdHJzLmxlbmd0aDsgKytpKSB7DQogICAgICAgIHZhciBpZCA9IHRyc1tpXS5nZXRBdHRyaWJ1dGUoImlkIik7DQogICAgICAgIHZhciBlbGVtZW50ID0gU0VBUkNIX01BUFBJTkdbaWRdOw0KICAgICAgICBzd2l0Y2ggKGVsZW1lbnQudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhzZWFyY2hWYWx1ZS50b0xvd2VyQ2FzZSgpKSkgew0KICAgICAgICAgICAgY2FzZSB0cnVlOg0KICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5zdHlsZS5kaXNwbGF5ID0gIiI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlIGZhbHNlOg0KICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5zdHlsZS5kaXNwbGF5ID0gIm5vbmUiOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICB9DQogICAgfQ0KICAgIHJldHVybjsNCn0NCmZ1bmN0aW9uIGNhbGN1bGF0ZVdyYXBwZXJIZWlnaHQoKSB7DQogICAgaWYgKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJib3gtd3JhcHBlciIpKSB7DQogICAgICAgIHZhciBlbG0gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYm94LXdyYXBwZXIiKTsNCiAgICAgICAgdmFyIGRpdnMgPSBuZXcgQXJyYXkoIm15U3RyZWFtc0JveCIsICJjbGllbnRJbmZvIiwgImNvbnRlbnQiKTsNCiAgICAgICAgdmFyIGVsZW1lbnRzSGVpZ2h0ID0gMCAtIGVsbS5vZmZzZXRIZWlnaHQ7DQogICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgZGl2cy5sZW5ndGg7IGkrKykgew0KICAgICAgICAgICAgZWxlbWVudHNIZWlnaHQgPSBlbGVtZW50c0hlaWdodCArIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGRpdnNbaV0pLm9mZnNldEhlaWdodDsNCiAgICAgICAgfQ0KICAgICAgICBlbG0uc3R5bGUuaGVpZ2h0ID0gd2luZG93LmlubmVySGVpZ2h0IC0gZWxlbWVudHNIZWlnaHQgKyAicHgiOw0KICAgIH0NCiAgICByZXR1cm47DQp9DQpmdW5jdGlvbiBjaGFuZ2VDaGFubmVsTnVtYmVyKGVsZW1lbnQpIHsNCiAgICB2YXIgZGJJRCA9IGVsZW1lbnQucGFyZW50Tm9kZS5wYXJlbnROb2RlLmlkOw0KICAgIHZhciBuZXdOdW1iZXIgPSBwYXJzZUZsb2F0KGVsZW1lbnQudmFsdWUpOw0KICAgIHZhciBjaGFubmVsTnVtYmVycyA9IFtdOw0KICAgIHZhciBkYXRhID0gU0VSVkVSWyJ4ZXBnIl1bImVwZ01hcHBpbmciXTsNCiAgICB2YXIgY2hhbm5lbHMgPSBnZXRPd25PYmpQcm9wcyhkYXRhKTsNCiAgICBpZiAoaXNOYU4obmV3TnVtYmVyKSkgew0KICAgICAgICBhbGVydCgie3suYWxlcnQuaW52YWxpZENoYW5uZWxOdW1iZXJ9fSIpOw0KICAgICAgICByZXR1cm47DQogICAgfQ0KICAgIGNoYW5uZWxzLmZvckVhY2goaWQgPT4gew0KICAgICAgICB2YXIgY2hhbm5lbE51bWJlciA9IHBhcnNlRmxvYXQoZGF0YVtpZF1bIngtY2hhbm5lbElEIl0pOw0KICAgICAgICBjaGFubmVsTnVtYmVycy5wdXNoKGNoYW5uZWxOdW1iZXIpOw0KICAgIH0pOw0KICAgIGZvciAodmFyIGkgPSAwOyBpIDwgY2hhbm5lbE51bWJlcnMubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgaWYgKGNoYW5uZWxOdW1iZXJzLmluZGV4T2YobmV3TnVtYmVyKSA9PSAtMSkgew0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIH0NCiAgICAgICAgaWYgKE1hdGguZmxvb3IobmV3TnVtYmVyKSA9PSBuZXdOdW1iZXIpIHsNCiAgICAgICAgICAgIG5ld051bWJlciA9IG5ld051bWJlciArIDE7DQogICAgICAgIH0NCiAgICAgICAgZWxzZSB7DQogICAgICAgICAgICBuZXdOdW1iZXIgPSBuZXdOdW1iZXIgKyAwLjE7DQogICAgICAgICAgICBuZXdOdW1iZXIudG9GaXhlZCgxKTsNCiAgICAgICAgICAgIG5ld051bWJlciA9IE1hdGgucm91bmQobmV3TnVtYmVyICogMTApIC8gMTA7DQogICAgICAgIH0NCiAgICB9DQogICAgZGF0YVtkYklEXVsieC1jaGFubmVsSUQiXSA9IG5ld051bWJlci50b1N0cmluZygpOw0KICAgIGVsZW1lbnQudmFsdWUgPSBuZXdOdW1iZXI7DQogICAgY29uc29sZS5sb2coZGF0YVtkYklEXVsieC1jaGFubmVsSUQiXSk7DQogICAgaWYgKENPTFVNTl9UT19TT1JUID09IDEpIHsNCiAgICAgICAgQ09MVU1OX1RPX1NPUlQgPSAtMTsNCiAgICAgICAgc29ydFRhYmxlKDEpOw0KICAgIH0NCiAgICByZXR1cm47DQp9DQpmdW5jdGlvbiBiYWNrdXAoKSB7DQogICAgdmFyIGRhdGEgPSBuZXcgT2JqZWN0KCk7DQogICAgY29uc29sZS5sb2coIkJhY2t1cCBkYXRhIik7DQogICAgdmFyIGNtZCA9ICJ4dGV2ZUJhY2t1cCI7DQogICAgY29uc29sZS5sb2coIlNFTkQgVE8gU0VSVkVSIik7DQogICAgY29uc29sZS5sb2coZGF0YSk7DQogICAgdmFyIHNlcnZlciA9IG5ldyBTZXJ2ZXIoY21kKTsNCiAgICBzZXJ2ZXIucmVxdWVzdChkYXRhKTsNCiAgICByZXR1cm47DQp9DQpmdW5jdGlvbiB0b2dnbGVDaGFubmVsU3RhdHVzKGlkKSB7DQogICAgdmFyIGVsZW1lbnQ7DQogICAgdmFyIHN0YXR1czsNCiAgICBpZiAoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImFjdGl2ZSIpKSB7DQogICAgICAgIHZhciBjaGVja2JveCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJhY3RpdmUiKTsNCiAgICAgICAgc3RhdHVzID0gKGNoZWNrYm94KS5jaGVja2VkOw0KICAgIH0NCiAgICB2YXIgaWRzID0gZ2V0QWxsU2VsZWN0ZWRDaGFubmVscygpOw0KICAgIGlmIChpZHMubGVuZ3RoID09IDApIHsNCiAgICAgICAgaWRzLnB1c2goaWQpOw0KICAgIH0NCiAgICBpZHMuZm9yRWFjaChpZCA9PiB7DQogICAgICAgIHZhciBjaGFubmVsID0gU0VSVkVSWyJ4ZXBnIl1bImVwZ01hcHBpbmciXVtpZF07DQogICAgICAgIGNoYW5uZWxbIngtYWN0aXZlIl0gPSBzdGF0dXM7DQogICAgICAgIHN3aXRjaCAoY2hhbm5lbFsieC1hY3RpdmUiXSkgew0KICAgICAgICAgICAgY2FzZSB0cnVlOg0KICAgICAgICAgICAgICAgIGlmIChjaGFubmVsWyJ4LXhtbHR2LWZpbGUiXSA9PSAiLSIgfHwgY2hhbm5lbFsieC1tYXBwaW5nIl0gPT0gIi0iKSB7DQogICAgICAgICAgICAgICAgICAgIGlmIChCVUxLX0VESVQgPT0gZmFsc2UpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGFsZXJ0KGNoYW5uZWxbIngtbmFtZSJdICsgIjogTWlzc2luZyBYTUxUViBmaWxlIC8gY2hhbm5lbCIpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2hlY2tib3guY2hlY2tlZCA9IGZhbHNlOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIGNoYW5uZWxbIngtYWN0aXZlIl0gPSBmYWxzZTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlIGZhbHNlOg0KICAgICAgICAgICAgICAgIC8vIGNvZGUuLi4NCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgfQ0KICAgICAgICBpZiAoY2hhbm5lbFsieC1hY3RpdmUiXSA9PSBmYWxzZSkgew0KICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpLmNsYXNzTmFtZSA9ICJub3RBY3RpdmVFUEciOw0KICAgICAgICB9DQogICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpLmNsYXNzTmFtZSA9ICJhY3RpdmVFUEciOw0KICAgICAgICB9DQogICAgfSk7DQp9DQpmdW5jdGlvbiB0b2dnbGVHcm91cFVwZGF0ZUNiKHhlcGdJZCwgdGFyZ2V0KSB7DQogICAgdGFyZ2V0LmNsYXNzTmFtZSA9ICdjaGFuZ2VkJzsNCiAgICBjb25zdCBncm91cElucHV0ID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignaW5wdXRbbmFtZT0ieC1ncm91cC10aXRsZSJdJyk7DQogICAgY29uc3QgbWFwcGluZyA9IGdldExvY2FsRGF0YSgnbWFwcGluZycsIHhlcGdJZCk7DQogICAgaWYgKHRhcmdldC5jaGVja2VkKSB7DQogICAgICAgIGdyb3VwSW5wdXQuZGF0YXNldC5vbGRWYWx1ZSA9IGdyb3VwSW5wdXQudmFsdWU7DQogICAgICAgIGdyb3VwSW5wdXQudmFsdWUgPSBtYXBwaW5nWydncm91cC10aXRsZSddOw0KICAgICAgICBncm91cElucHV0LmRpc2FibGVkID0gdHJ1ZTsNCiAgICB9DQogICAgZWxzZSB7DQogICAgICAgIGdyb3VwSW5wdXQudmFsdWUgPSBncm91cElucHV0LmRhdGFzZXQub2xkVmFsdWU7DQogICAgICAgIGdyb3VwSW5wdXQuZGlzYWJsZWQgPSBmYWxzZTsNCiAgICB9DQogICAgZ3JvdXBJbnB1dC5jbGFzc05hbWUgPSAnY2hhbmdlZCc7DQp9DQpmdW5jdGlvbiByZXN0b3JlKCkgew0KICAgIGlmIChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndXBsb2FkJykpIHsNCiAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3VwbG9hZCcpLnJlbW92ZSgpOw0KICAgIH0NCiAgICB2YXIgcmVzdG9yZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIklOUFVUIik7DQogICAgcmVzdG9yZS5zZXRBdHRyaWJ1dGUoInR5cGUiLCAiZmlsZSIpOw0KICAgIHJlc3RvcmUuc2V0QXR0cmlidXRlKCJjbGFzcyIsICJub3RWaXNpYmxlIik7DQogICAgcmVzdG9yZS5zZXRBdHRyaWJ1dGUoIm5hbWUiLCAiIik7DQogICAgcmVzdG9yZS5pZCA9ICJ1cGxvYWQiOw0KICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQocmVzdG9yZSk7DQogICAgcmVzdG9yZS5jbGljaygpOw0KICAgIHJlc3RvcmUub25jaGFuZ2UgPSBmdW5jdGlvbiAoKSB7DQogICAgICAgIHZhciBmaWxlbmFtZSA9IHJlc3RvcmUuZmlsZXNbMF0ubmFtZTsNCiAgICAgICAgdmFyIGNoZWNrID0gY29uZmlybSgiRmlsZTogIiArIGZpbGVuYW1lICsgIlxue3suY29uZmlybS5yZXN0b3JlfX0iKTsNCiAgICAgICAgaWYgKGNoZWNrID09IHRydWUpIHsNCiAgICAgICAgICAgIHZhciByZWFkZXIgPSBuZXcgRmlsZVJlYWRlcigpOw0KICAgICAgICAgICAgdmFyIGZpbGUgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCdpbnB1dFt0eXBlPWZpbGVdJykuZmlsZXNbMF07DQogICAgICAgICAgICBpZiAoZmlsZSkgew0KICAgICAgICAgICAgICAgIHJlYWRlci5yZWFkQXNEYXRhVVJMKGZpbGUpOw0KICAgICAgICAgICAgICAgIHJlYWRlci5vbmxvYWQgPSBmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKHJlYWRlci5yZXN1bHQpOw0KICAgICAgICAgICAgICAgICAgICB2YXIgZGF0YSA9IG5ldyBPYmplY3QoKTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGNtZCA9ICJ4dGV2ZVJlc3RvcmUiOw0KICAgICAgICAgICAgICAgICAgICBkYXRhWyJiYXNlNjQiXSA9IHJlYWRlci5yZXN1bHQ7DQogICAgICAgICAgICAgICAgICAgIHZhciBzZXJ2ZXIgPSBuZXcgU2VydmVyKGNtZCk7DQogICAgICAgICAgICAgICAgICAgIHNlcnZlci5yZXF1ZXN0KGRhdGEpOw0KICAgICAgICAgICAgICAgIH07DQogICAgICAgICAgICB9DQogICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICBhbGVydCgiRmlsZSBjb3VsZCBub3QgYmUgbG9hZGVkIik7DQogICAgICAgICAgICB9DQogICAgICAgICAgICByZXN0b3JlLnJlbW92ZSgpOw0KICAgICAgICAgICAgcmV0dXJuOw0KICAgICAgICB9DQogICAgfTsNCiAgICByZXR1cm47DQp9DQpmdW5jdGlvbiB1cGxvYWRMb2dvKCkgew0KICAgIGlmIChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndXBsb2FkJykpIHsNCiAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3VwbG9hZCcpLnJlbW92ZSgpOw0KICAgIH0NCiAgICB2YXIgdXBsb2FkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiSU5QVVQiKTsNCiAgICB1cGxvYWQuc2V0QXR0cmlidXRlKCJ0eXBlIiwgImZpbGUiKTsNCiAgICB1cGxvYWQuc2V0QXR0cmlidXRlKCJjbGFzcyIsICJub3RWaXNpYmxlIik7DQogICAgdXBsb2FkLnNldEF0dHJpYnV0ZSgibmFtZSIsICIiKTsNCiAgICB1cGxvYWQuaWQgPSAidXBsb2FkIjsNCiAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHVwbG9hZCk7DQogICAgdXBsb2FkLmNsaWNrKCk7DQogICAgdXBsb2FkLm9uYmx1ciA9IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgYWxlcnQoKTsNCiAgICB9Ow0KICAgIHVwbG9hZC5vbmNoYW5nZSA9IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgdmFyIGZpbGVuYW1lID0gdXBsb2FkLmZpbGVzWzBdLm5hbWU7DQogICAgICAgIHZhciByZWFkZXIgPSBuZXcgRmlsZVJlYWRlcigpOw0KICAgICAgICB2YXIgZmlsZSA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ2lucHV0W3R5cGU9ZmlsZV0nKS5maWxlc1swXTsNCiAgICAgICAgaWYgKGZpbGUpIHsNCiAgICAgICAgICAgIHJlYWRlci5yZWFkQXNEYXRhVVJMKGZpbGUpOw0KICAgICAgICAgICAgcmVhZGVyLm9ubG9hZCA9IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhyZWFkZXIucmVzdWx0KTsNCiAgICAgICAgICAgICAgICB2YXIgZGF0YSA9IG5ldyBPYmplY3QoKTsNCiAgICAgICAgICAgICAgICB2YXIgY21kID0gInVwbG9hZExvZ28iOw0KICAgICAgICAgICAgICAgIGRhdGFbImJhc2U2NCJdID0gcmVhZGVyLnJlc3VsdDsNCiAgICAgICAgICAgICAgICBkYXRhWyJmaWxlbmFtZSJdID0gZmlsZS5uYW1lOw0KICAgICAgICAgICAgICAgIHZhciBzZXJ2ZXIgPSBuZXcgU2VydmVyKGNtZCk7DQogICAgICAgICAgICAgICAgc2VydmVyLnJlcXVlc3QoZGF0YSk7DQogICAgICAgICAgICAgICAgdmFyIHVwZGF0ZUxvZ28gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndXBkYXRlLWljb24nKTsNCiAgICAgICAgICAgICAgICB1cGRhdGVMb2dvLmNoZWNrZWQgPSBmYWxzZTsNCiAgICAgICAgICAgICAgICB1cGRhdGVMb2dvLmNsYXNzTmFtZSA9ICJjaGFuZ2VkIjsNCiAgICAgICAgICAgIH07DQogICAgICAgIH0NCiAgICAgICAgZWxzZSB7DQogICAgICAgICAgICBhbGVydCgiRmlsZSBjb3VsZCBub3QgYmUgbG9hZGVkIik7DQogICAgICAgIH0NCiAgICAgICAgdXBsb2FkLnJlbW92ZSgpOw0KICAgICAgICByZXR1cm47DQogICAgfTsNCn0NCmZ1bmN0aW9uIGNoZWNrVW5kbyhrZXkpIHsNCiAgICBzd2l0Y2ggKGtleSkgew0KICAgICAgICBjYXNlICJlcGdNYXBwaW5nIjoNCiAgICAgICAgICAgIGlmIChVTkRPLmhhc093blByb3BlcnR5KGtleSkpIHsNCiAgICAgICAgICAgICAgICBTRVJWRVJbInhlcGciXVtrZXldID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeShVTkRPW2tleV0pKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgICAgIFVORE9ba2V5XSA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkoU0VSVkVSWyJ4ZXBnIl1ba2V5XSkpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICBicmVhazsNCiAgICB9DQogICAgcmV0dXJuOw0KfQ0KZnVuY3Rpb24gc29ydFNlbGVjdChzZWxlY3QpIHsNCiAgICBjb25zdCB0ZW1wQXJyID0gW107DQogICAgY29uc3Qgc2VsZWN0ZWRWYWx1ZSA9IHNlbGVjdC5vcHRpb25zW3NlbGVjdC5zZWxlY3RlZEluZGV4XS52YWx1ZTsNCiAgICBmb3IgKGNvbnN0IHNlbGVjdE9wdGlvbiBvZiBzZWxlY3Qub3B0aW9ucykgew0KICAgICAgICB0ZW1wQXJyLnB1c2goc2VsZWN0T3B0aW9uKTsNCiAgICB9DQogICAgdGVtcEFyci5zb3J0KChvMSwgbzIpID0+IHsNCiAgICAgICAgaWYgKG8xLnRleHQgPCBvMi50ZXh0KSB7DQogICAgICAgICAgICByZXR1cm4gLTE7DQogICAgICAgIH0NCiAgICAgICAgaWYgKG8xLnRleHQgPiBvMi50ZXh0KSB7DQogICAgICAgICAgICByZXR1cm4gMTsNCiAgICAgICAgfQ0KICAgICAgICByZXR1cm4gMDsNCiAgICB9KTsNCiAgICB3aGlsZSAoc2VsZWN0Lm9wdGlvbnMubGVuZ3RoID4gMCkgew0KICAgICAgICBzZWxlY3Qub3B0aW9uc1swXSA9IG51bGw7DQogICAgfQ0KICAgIDsNCiAgICBsZXQgbmV3U2VsZWN0ZWRJbmRleCA9IDA7DQogICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0ZW1wQXJyLmxlbmd0aDsgaSsrKSB7DQogICAgICAgIHNlbGVjdC5vcHRpb25zW2ldID0gdGVtcEFycltpXTsNCiAgICAgICAgaWYgKHNlbGVjdC5vcHRpb25zW2ldLnZhbHVlID09IHNlbGVjdGVkVmFsdWUpIHsNCiAgICAgICAgICAgIG5ld1NlbGVjdGVkSW5kZXggPSBpOw0KICAgICAgICB9DQogICAgfQ0KICAgIC8vIFNldCBuZXcgc2VsZWN0ZWQgaW5kZXggYWZ0ZXIgc29ydGluZw0KICAgIHNlbGVjdC5zZWxlY3RlZEluZGV4ID0gbmV3U2VsZWN0ZWRJbmRleDsNCn0NCmZ1bmN0aW9uIHVwZGF0ZUxvZygpIHsNCiAgICBjb25zb2xlLmxvZygiVE9LRU4iKTsNCiAgICB2YXIgc2VydmVyID0gbmV3IFNlcnZlcigidXBkYXRlTG9nIik7DQogICAgc2VydmVyLnJlcXVlc3QobmV3IE9iamVjdCgpKTsNCn0NCg==" webUI["html/js/classes_ts.js"] = "dmFyIF9fZXh0ZW5kcyA9ICh0aGlzICYmIHRoaXMuX19leHRlbmRzKSB8fCAoZnVuY3Rpb24gKCkgew0KICAgIHZhciBleHRlbmRTdGF0aWNzID0gZnVuY3Rpb24gKGQsIGIpIHsNCiAgICAgICAgZXh0ZW5kU3RhdGljcyA9IE9iamVjdC5zZXRQcm90b3R5cGVPZiB8fA0KICAgICAgICAgICAgKHsgX19wcm90b19fOiBbXSB9IGluc3RhbmNlb2YgQXJyYXkgJiYgZnVuY3Rpb24gKGQsIGIpIHsgZC5fX3Byb3RvX18gPSBiOyB9KSB8fA0KICAgICAgICAgICAgZnVuY3Rpb24gKGQsIGIpIHsgZm9yICh2YXIgcCBpbiBiKSBpZiAoYi5oYXNPd25Qcm9wZXJ0eShwKSkgZFtwXSA9IGJbcF07IH07DQogICAgICAgIHJldHVybiBleHRlbmRTdGF0aWNzKGQsIGIpOw0KICAgIH07DQogICAgcmV0dXJuIGZ1bmN0aW9uIChkLCBiKSB7DQogICAgICAgIGV4dGVuZFN0YXRpY3MoZCwgYik7DQogICAgICAgIGZ1bmN0aW9uIF9fKCkgeyB0aGlzLmNvbnN0cnVjdG9yID0gZDsgfQ0KICAgICAgICBkLnByb3RvdHlwZSA9IGIgPT09IG51bGwgPyBPYmplY3QuY3JlYXRlKGIpIDogKF9fLnByb3RvdHlwZSA9IGIucHJvdG90eXBlLCBuZXcgX18oKSk7DQogICAgfTsNCn0pKCk7DQp2YXIgTWFpbk1lbnUgPSAvKiogQGNsYXNzICovIChmdW5jdGlvbiAoKSB7DQogICAgZnVuY3Rpb24gTWFpbk1lbnUoKSB7DQogICAgICAgIHRoaXMuRG9jdW1lbnRJRCA9ICJtYWluLW1lbnUiOw0KICAgICAgICB0aGlzLkhUTUxUYWcgPSAiTEkiOw0KICAgIH0NCiAgICBNYWluTWVudS5wcm90b3R5cGUuY3JlYXRlID0gZnVuY3Rpb24gKCkgew0KICAgICAgICBjb25zb2xlLmxvZyh0aGlzLkRvY3VtZW50SUQpOw0KICAgIH07DQogICAgcmV0dXJuIE1haW5NZW51Ow0KfSgpKTsNCnZhciBNYWluTWVudUl0ZW0gPSAvKiogQGNsYXNzICovIChmdW5jdGlvbiAoX3N1cGVyKSB7DQogICAgX19leHRlbmRzKE1haW5NZW51SXRlbSwgX3N1cGVyKTsNCiAgICBmdW5jdGlvbiBNYWluTWVudUl0ZW0oKSB7DQogICAgICAgIHJldHVybiBfc3VwZXIgIT09IG51bGwgJiYgX3N1cGVyLmFwcGx5KHRoaXMsIGFyZ3VtZW50cykgfHwgdGhpczsNCiAgICB9DQogICAgTWFpbk1lbnVJdGVtLnByb3RvdHlwZS5jcmVhdGUyID0gZnVuY3Rpb24gKCkgew0KICAgICAgICB2YXIgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQodGhpcy5IVE1MVGFnKTsNCiAgICAgICAgZWxlbWVudC5pbm5lclRleHQgPSB0aGlzLlZhbHVlOw0KICAgICAgICBjb25zb2xlLmxvZyhlbGVtZW50KTsNCiAgICB9Ow0KICAgIHJldHVybiBNYWluTWVudUl0ZW07DQp9KE1haW5NZW51KSk7DQpmdW5jdGlvbiBwYWdlUmVhZHkoKSB7DQogICAgdmFyIGl0ZW0gPSBuZXcgTWFpbk1lbnVJdGVtKCk7DQogICAgaXRlbS5WYWx1ZSA9ICJUZXN0IjsNCiAgICBpdGVtLmNyZWF0ZTIoKTsNCn0NCg==" webUI["html/js/configuration_ts.js"] = "Y2xhc3MgV2l6YXJkQ2F0ZWdvcnkgew0KICAgIGNvbnN0cnVjdG9yKCkgew0KICAgICAgICB0aGlzLkRvY3VtZW50SUQgPSAiY29udGVudCI7DQogICAgfQ0KICAgIGNyZWF0ZUNhdGVnb3J5SGVhZGxpbmUodmFsdWUpIHsNCiAgICAgICAgdmFyIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJINCIpOw0KICAgICAgICBlbGVtZW50LmlubmVySFRNTCA9IHZhbHVlOw0KICAgICAgICByZXR1cm4gZWxlbWVudDsNCiAgICB9DQp9DQpjbGFzcyBXaXphcmRJdGVtIGV4dGVuZHMgV2l6YXJkQ2F0ZWdvcnkgew0KICAgIGNvbnN0cnVjdG9yKGtleSwgaGVhZGxpbmUpIHsNCiAgICAgICAgc3VwZXIoKTsNCiAgICAgICAgdGhpcy5oZWFkbGluZSA9IGhlYWRsaW5lOw0KICAgICAgICB0aGlzLmtleSA9IGtleTsNCiAgICB9DQogICAgY3JlYXRlV2l6YXJkKCkgew0KICAgICAgICB2YXIgaGVhZGxpbmUgPSB0aGlzLmNyZWF0ZUNhdGVnb3J5SGVhZGxpbmUodGhpcy5oZWFkbGluZSk7DQogICAgICAgIHZhciBrZXkgPSB0aGlzLmtleTsNCiAgICAgICAgdmFyIGNvbnRlbnQgPSBuZXcgUG9wdXBDb250ZW50KCk7DQogICAgICAgIHZhciBkZXNjcmlwdGlvbjsNCiAgICAgICAgdmFyIGRvYyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHRoaXMuRG9jdW1lbnRJRCk7DQogICAgICAgIGRvYy5pbm5lckhUTUwgPSAiIjsNCiAgICAgICAgZG9jLmFwcGVuZENoaWxkKGhlYWRsaW5lKTsNCiAgICAgICAgc3dpdGNoIChrZXkpIHsNCiAgICAgICAgICAgIGNhc2UgInR1bmVyIjoNCiAgICAgICAgICAgICAgICB2YXIgdGV4dCA9IG5ldyBBcnJheSgpOw0KICAgICAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBuZXcgQXJyYXkoKTsNCiAgICAgICAgICAgICAgICBmb3IgKHZhciBpID0gMTsgaSA8PSAxMDA7IGkrKykgew0KICAgICAgICAgICAgICAgICAgICB0ZXh0LnB1c2goaSk7DQogICAgICAgICAgICAgICAgICAgIHZhbHVlcy5wdXNoKGkpOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCAiMSIsIGtleSk7DQogICAgICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgiY2xhc3MiLCAid2l6YXJkIik7DQogICAgICAgICAgICAgICAgc2VsZWN0LmlkID0ga2V5Ow0KICAgICAgICAgICAgICAgIGRvYy5hcHBlbmRDaGlsZChzZWxlY3QpOw0KICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uID0gInt7LndpemFyZC50dW5lci5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImVwZ1NvdXJjZSI6DQogICAgICAgICAgICAgICAgdmFyIHRleHQgPSBbIlBNUyIsICJYRVBHIl07DQogICAgICAgICAgICAgICAgdmFyIHZhbHVlcyA9IFsiUE1TIiwgIlhFUEciXTsNCiAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCAiWEVQRyIsIGtleSk7DQogICAgICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgiY2xhc3MiLCAid2l6YXJkIik7DQogICAgICAgICAgICAgICAgc2VsZWN0LmlkID0ga2V5Ow0KICAgICAgICAgICAgICAgIGRvYy5hcHBlbmRDaGlsZChzZWxlY3QpOw0KICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uID0gInt7LndpemFyZC5lcGdTb3VyY2UuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJtM3UiOg0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBrZXksICIiKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LndpemFyZC5tM3UucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgiY2xhc3MiLCAid2l6YXJkIik7DQogICAgICAgICAgICAgICAgaW5wdXQuaWQgPSBrZXk7DQogICAgICAgICAgICAgICAgZG9jLmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbiA9ICJ7ey53aXphcmQubTN1LmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAieG1sdHYiOg0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBrZXksICIiKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LndpemFyZC54bWx0di5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJjbGFzcyIsICJ3aXphcmQiKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5pZCA9IGtleTsNCiAgICAgICAgICAgICAgICBkb2MuYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uID0gInt7LndpemFyZC54bWx0di5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICAgICAgY29uc29sZS5sb2coa2V5KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgfQ0KICAgICAgICB2YXIgcHJlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiUFJFIik7DQogICAgICAgIHByZS5pbm5lckhUTUwgPSBkZXNjcmlwdGlvbjsNCiAgICAgICAgZG9jLmFwcGVuZENoaWxkKHByZSk7DQogICAgICAgIGNvbnNvbGUubG9nKGhlYWRsaW5lLCBrZXkpOw0KICAgIH0NCn0NCmZ1bmN0aW9uIHJlYWR5Rm9yQ29uZmlndXJhdGlvbih3aXphcmQpIHsNCiAgICB2YXIgc2VydmVyID0gbmV3IFNlcnZlcigiZ2V0U2VydmVyQ29uZmlnIik7DQogICAgc2VydmVyLnJlcXVlc3QobmV3IE9iamVjdCgpKTsNCiAgICBzaG93RWxlbWVudCgibG9hZGluZyIsIGZhbHNlKTsNCiAgICBjb25maWd1cmF0aW9uV2l6YXJkW3dpemFyZF0uY3JlYXRlV2l6YXJkKCk7DQp9DQpmdW5jdGlvbiBzYXZlV2l6YXJkKCkgew0KICAgIHZhciBjbWQgPSAic2F2ZVdpemFyZCI7DQogICAgdmFyIGRpdiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb250ZW50Iik7DQogICAgdmFyIGNvbmZpZyA9IGRpdi5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCJ3aXphcmQiKTsNCiAgICB2YXIgd2l6YXJkID0gbmV3IE9iamVjdCgpOw0KICAgIGZvciAodmFyIGkgPSAwOyBpIDwgY29uZmlnLmxlbmd0aDsgaSsrKSB7DQogICAgICAgIHZhciBuYW1lOw0KICAgICAgICB2YXIgdmFsdWU7DQogICAgICAgIHN3aXRjaCAoY29uZmlnW2ldLnRhZ05hbWUpIHsNCiAgICAgICAgICAgIGNhc2UgIlNFTEVDVCI6DQogICAgICAgICAgICAgICAgbmFtZSA9IGNvbmZpZ1tpXS5uYW1lOw0KICAgICAgICAgICAgICAgIHZhbHVlID0gY29uZmlnW2ldLnZhbHVlOw0KICAgICAgICAgICAgICAgIC8vIElmIHRoZSB2YWx1ZSBpcyBhIG51bWJlciwgc3RvcmUgaXQgYXMgYSBudW1iZXINCiAgICAgICAgICAgICAgICBpZiAoaXNOYU4odmFsdWUpKSB7DQogICAgICAgICAgICAgICAgICAgIHdpemFyZFtuYW1lXSA9IHZhbHVlOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICAgICAgd2l6YXJkW25hbWVdID0gcGFyc2VJbnQodmFsdWUpOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgIklOUFVUIjoNCiAgICAgICAgICAgICAgICBzd2l0Y2ggKGNvbmZpZ1tpXS50eXBlKSB7DQogICAgICAgICAgICAgICAgICAgIGNhc2UgInRleHQiOg0KICAgICAgICAgICAgICAgICAgICAgICAgbmFtZSA9IGNvbmZpZ1tpXS5uYW1lOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSBjb25maWdbaV0udmFsdWU7DQogICAgICAgICAgICAgICAgICAgICAgICBpZiAodmFsdWUubGVuZ3RoID09IDApIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgbXNnID0gbmFtZS50b1VwcGVyQ2FzZSgpICsgIjogIiArICJ7ey5hbGVydC5taXNzaW5nSW5wdXR9fSI7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgYWxlcnQobXNnKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICB3aXphcmRbbmFtZV0gPSB2YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICAgICAgLy8gY29kZS4uLg0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICB9DQogICAgfQ0KICAgIHZhciBkYXRhID0gbmV3IE9iamVjdCgpOw0KICAgIGRhdGFbIndpemFyZCJdID0gd2l6YXJkOw0KICAgIHZhciBzZXJ2ZXIgPSBuZXcgU2VydmVyKGNtZCk7DQogICAgc2VydmVyLnJlcXVlc3QoZGF0YSk7DQogICAgY29uc29sZS5sb2coZGF0YSk7DQp9DQovLyBXaXphcmQNCnZhciBjb25maWd1cmF0aW9uV2l6YXJkID0gbmV3IEFycmF5KCk7DQpjb25maWd1cmF0aW9uV2l6YXJkLnB1c2gobmV3IFdpemFyZEl0ZW0oInR1bmVyIiwgInt7LndpemFyZC50dW5lci50aXRsZX19IikpOw0KY29uZmlndXJhdGlvbldpemFyZC5wdXNoKG5ldyBXaXphcmRJdGVtKCJlcGdTb3VyY2UiLCAie3sud2l6YXJkLmVwZ1NvdXJjZS50aXRsZX19IikpOw0KY29uZmlndXJhdGlvbldpemFyZC5wdXNoKG5ldyBXaXphcmRJdGVtKCJtM3UiLCAie3sud2l6YXJkLm0zdS50aXRsZX19IikpOw0KY29uZmlndXJhdGlvbldpemFyZC5wdXNoKG5ldyBXaXphcmRJdGVtKCJ4bWx0diIsICJ7ey53aXphcmQueG1sdHYudGl0bGV9fSIpKTsNCg==" - webUI["html/js/logs_ts.js"] = "Y2xhc3MgTG9nIHsNCiAgICBjcmVhdGVMb2coZW50cnkpIHsNCiAgICAgICAgdmFyIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJQUkUiKTsNCiAgICAgICAgaWYgKGVudHJ5LmluZGV4T2YoIldBUk5JTkciKSAhPSAtMSkgew0KICAgICAgICAgICAgZWxlbWVudC5jbGFzc05hbWUgPSAid2FybmluZ01zZyI7DQogICAgICAgIH0NCiAgICAgICAgaWYgKGVudHJ5LmluZGV4T2YoIkVSUk9SIikgIT0gLTEpIHsNCiAgICAgICAgICAgIGVsZW1lbnQuY2xhc3NOYW1lID0gImVycm9yTXNnIjsNCiAgICAgICAgfQ0KICAgICAgICBpZiAoZW50cnkuaW5kZXhPZigiREVCVUciKSAhPSAtMSkgew0KICAgICAgICAgICAgZWxlbWVudC5jbGFzc05hbWUgPSAiZGVidWdNc2ciOw0KICAgICAgICB9DQogICAgICAgIGVsZW1lbnQuaW5uZXJIVE1MID0gZW50cnk7DQogICAgICAgIHJldHVybiBlbGVtZW50Ow0KICAgIH0NCn0NCmZ1bmN0aW9uIHNob3dMb2dzKGJvdHRvbSkgew0KICAgIHZhciBsb2cgPSBuZXcgTG9nKCk7DQogICAgdmFyIGxvZ3MgPSBTRVJWRVJbImxvZyJdWyJsb2ciXTsNCiAgICB2YXIgZGl2ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnRlbnRfbG9nIik7DQogICAgZGl2LmlubmVySFRNTCA9ICIiOw0KICAgIHZhciBrZXlzID0gZ2V0T2JqS2V5cyhsb2dzKTsNCiAgICBrZXlzLmZvckVhY2gobG9nSUQgPT4gew0KICAgICAgICB2YXIgZW50cnkgPSBsb2cuY3JlYXRlTG9nKGxvZ3NbbG9nSURdKTsNCiAgICAgICAgZGl2LmFwcGVuZChlbnRyeSk7DQogICAgfSk7DQogICAgc2V0VGltZW91dChmdW5jdGlvbiAoKSB7DQogICAgICAgIGlmIChib3R0b20gPT0gdHJ1ZSkgew0KICAgICAgICAgICAgdmFyIHdyYXBwZXIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYm94LXdyYXBwZXIiKTsNCiAgICAgICAgICAgIHdyYXBwZXIuc2Nyb2xsVG9wID0gd3JhcHBlci5zY3JvbGxIZWlnaHQ7DQogICAgICAgIH0NCiAgICB9LCAxMCk7DQp9DQpmdW5jdGlvbiByZXNldExvZ3MoKSB7DQogICAgdmFyIGNtZCA9ICJyZXNldExvZ3MiOw0KICAgIHZhciBkYXRhID0gbmV3IE9iamVjdCgpOw0KICAgIHZhciBzZXJ2ZXIgPSBuZXcgU2VydmVyKGNtZCk7DQogICAgc2VydmVyLnJlcXVlc3QoZGF0YSk7DQp9DQo=" - webUI["html/js/menu_ts.js"] = "Y2xhc3MgTWFpbk1lbnUgew0KICAgIGNvbnN0cnVjdG9yKCkgew0KICAgICAgICB0aGlzLkRvY3VtZW50SUQgPSAibWFpbi1tZW51IjsNCiAgICAgICAgdGhpcy5IVE1MVGFnID0gIkxJIjsNCiAgICAgICAgdGhpcy5JbWFnZVBhdGggPSAiaW1nLyI7DQogICAgfQ0KICAgIGNyZWF0ZUlNRyhzcmMpIHsNCiAgICAgICAgbGV0IGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJJTUciKTsNCiAgICAgICAgZWxlbWVudC5zZXRBdHRyaWJ1dGUoInNyYyIsIHRoaXMuSW1hZ2VQYXRoICsgc3JjKTsNCiAgICAgICAgcmV0dXJuIGVsZW1lbnQ7DQogICAgfQ0KICAgIGNyZWF0ZVZhbHVlKHZhbHVlKSB7DQogICAgICAgIGxldCBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiUCIpOw0KICAgICAgICBlbGVtZW50LmlubmVySFRNTCA9IHZhbHVlOw0KICAgICAgICByZXR1cm4gZWxlbWVudDsNCiAgICB9DQp9DQpjbGFzcyBNYWluTWVudUl0ZW0gZXh0ZW5kcyBNYWluTWVudSB7DQogICAgY29uc3RydWN0b3IobWVudUtleSwgdmFsdWUsIGltYWdlLCBoZWFkbGluZSkgew0KICAgICAgICBzdXBlcigpOw0KICAgICAgICB0aGlzLm1lbnVLZXkgPSBtZW51S2V5Ow0KICAgICAgICB0aGlzLnZhbHVlID0gdmFsdWU7DQogICAgICAgIHRoaXMuaW1nU3JjID0gaW1hZ2U7DQogICAgICAgIHRoaXMuaGVhZGxpbmUgPSBoZWFkbGluZTsNCiAgICB9DQogICAgY3JlYXRlSXRlbSgpIHsNCiAgICAgICAgbGV0IGl0ZW0gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJMSSIpOw0KICAgICAgICBpdGVtLnNldEF0dHJpYnV0ZSgib25jbGljayIsICJqYXZhc2NyaXB0OiBvcGVuVGhpc01lbnUodGhpcykiKTsNCiAgICAgICAgaXRlbS5zZXRBdHRyaWJ1dGUoImlkIiwgdGhpcy5pZCk7DQogICAgICAgIGxldCBpbWcgPSB0aGlzLmNyZWF0ZUlNRyh0aGlzLmltZ1NyYyk7DQogICAgICAgIGxldCB2YWx1ZSA9IHRoaXMuY3JlYXRlVmFsdWUodGhpcy52YWx1ZSk7DQogICAgICAgIGl0ZW0uYXBwZW5kQ2hpbGQoaW1nKTsNCiAgICAgICAgaXRlbS5hcHBlbmRDaGlsZCh2YWx1ZSk7DQogICAgICAgIGxldCBkb2MgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCh0aGlzLkRvY3VtZW50SUQpOw0KICAgICAgICBkb2MuYXBwZW5kQ2hpbGQoaXRlbSk7DQogICAgICAgIHN3aXRjaCAodGhpcy5tZW51S2V5KSB7DQogICAgICAgICAgICBjYXNlICJwbGF5bGlzdCI6DQogICAgICAgICAgICAgICAgdGhpcy50YWJsZUhlYWRlciA9IFsie3sucGxheWxpc3QudGFibGUucGxheWxpc3R9fSIsICJ7ey5wbGF5bGlzdC50YWJsZS50dW5lcn19IiwgInt7LnBsYXlsaXN0LnRhYmxlLmxhc3RVcGRhdGV9fSIsICJ7ey5wbGF5bGlzdC50YWJsZS5hdmFpbGFiaWxpdHl9fSAlIiwgInt7LnBsYXlsaXN0LnRhYmxlLnR5cGV9fSIsICJ7ey5wbGF5bGlzdC50YWJsZS5zdHJlYW1zfX0iLCAie3sucGxheWxpc3QudGFibGUuZ3JvdXBUaXRsZX19ICUiLCAie3sucGxheWxpc3QudGFibGUudHZnSUR9fSAlIiwgInt7LnBsYXlsaXN0LnRhYmxlLnVuaXF1ZUlEfX0gJSJdOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAieG1sdHYiOg0KICAgICAgICAgICAgICAgIHRoaXMudGFibGVIZWFkZXIgPSBbInt7LnhtbHR2LnRhYmxlLmd1aWRlfX0iLCAie3sueG1sdHYudGFibGUubGFzdFVwZGF0ZX19IiwgInt7LnhtbHR2LnRhYmxlLmF2YWlsYWJpbGl0eX19ICUiLCAie3sueG1sdHYudGFibGUuY2hhbm5lbHN9fSIsICJ7ey54bWx0di50YWJsZS5wcm9ncmFtc319Il07DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJmaWx0ZXIiOg0KICAgICAgICAgICAgICAgIHRoaXMudGFibGVIZWFkZXIgPSBbInt7LmZpbHRlci50YWJsZS5zdGFydGluZ0NoYW5uZWx9fSIsICJ7ey5maWx0ZXIudGFibGUubmFtZX19IiwgInt7LmZpbHRlci50YWJsZS50eXBlfX0iLCAie3suZmlsdGVyLnRhYmxlLmZpbHRlcn19Il07DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ1c2VycyI6DQogICAgICAgICAgICAgICAgdGhpcy50YWJsZUhlYWRlciA9IFsie3sudXNlcnMudGFibGUudXNlcm5hbWV9fSIsICJ7ey51c2Vycy50YWJsZS5wYXNzd29yZH19IiwgInt7LnVzZXJzLnRhYmxlLndlYn19IiwgInt7LnVzZXJzLnRhYmxlLnBtc319IiwgInt7LnVzZXJzLnRhYmxlLm0zdX19IiwgInt7LnVzZXJzLnRhYmxlLnhtbH19IiwgInt7LnVzZXJzLnRhYmxlLmFwaX19Il07DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJtYXBwaW5nIjoNCiAgICAgICAgICAgICAgICB0aGlzLnRhYmxlSGVhZGVyID0gWyJCVUxLIiwgInt7Lm1hcHBpbmcudGFibGUuY2hOb319IiwgInt7Lm1hcHBpbmcudGFibGUubG9nb319IiwgInt7Lm1hcHBpbmcudGFibGUuY2hhbm5lbE5hbWV9fSIsICJ7ey5tYXBwaW5nLnRhYmxlLnBsYXlsaXN0fX0iLCAie3subWFwcGluZy50YWJsZS5ncm91cFRpdGxlfX0iLCAie3subWFwcGluZy50YWJsZS54bWx0dkZpbGV9fSIsICJ7ey5tYXBwaW5nLnRhYmxlLnhtbHR2SUR9fSIsICJ7ey5tYXBwaW5nLnRhYmxlLnRpbWVzaGlmdH19Il07DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIH0NCiAgICAgICAgLy9jb25zb2xlLmxvZyh0aGlzLm1lbnVLZXksIHRoaXMudGFibGVIZWFkZXIpOw0KICAgIH0NCn0NCmNsYXNzIENvbnRlbnQgew0KICAgIGNvbnN0cnVjdG9yKCkgew0KICAgICAgICB0aGlzLkRvY3VtZW50SUQgPSAiY29udGVudCI7DQogICAgICAgIHRoaXMuVGFibGVJRCA9ICJjb250ZW50X3RhYmxlIjsNCiAgICAgICAgdGhpcy5oZWFkZXJDbGFzcyA9ICJjb250ZW50X3RhYmxlX2hlYWRlciI7DQogICAgICAgIHRoaXMuaW50ZXJhY3Rpb25JRCA9ICJjb250ZW50LWludGVyYWN0aW9uIjsNCiAgICB9DQogICAgY3JlYXRlSGVhZGxpbmUodmFsdWUpIHsNCiAgICAgICAgbGV0IGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJIMyIpOw0KICAgICAgICBlbGVtZW50LmlubmVySFRNTCA9IHZhbHVlOw0KICAgICAgICByZXR1cm4gZWxlbWVudDsNCiAgICB9DQogICAgY3JlYXRlSFIoKSB7DQogICAgICAgIHJldHVybiBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJIUiIpOw0KICAgIH0NCiAgICBjcmVhdGVJbnRlcmFjdGlvbigpIHsNCiAgICAgICAgbGV0IGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJESVYiKTsNCiAgICAgICAgZWxlbWVudC5zZXRBdHRyaWJ1dGUoImlkIiwgdGhpcy5pbnRlcmFjdGlvbklEKTsNCiAgICAgICAgcmV0dXJuIGVsZW1lbnQ7DQogICAgfQ0KICAgIGNyZWF0ZURJVigpIHsNCiAgICAgICAgbGV0IGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJESVYiKTsNCiAgICAgICAgZWxlbWVudC5pZCA9IHRoaXMuRGl2SUQ7DQogICAgICAgIHJldHVybiBlbGVtZW50Ow0KICAgIH0NCiAgICBjcmVhdGVUQUJMRSgpIHsNCiAgICAgICAgbGV0IGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJUQUJMRSIpOw0KICAgICAgICBlbGVtZW50LmlkID0gdGhpcy5UYWJsZUlEOw0KICAgICAgICByZXR1cm4gZWxlbWVudDsNCiAgICB9DQogICAgY3JlYXRlVGFibGVSb3coKSB7DQogICAgICAgIGxldCBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVFIiKTsNCiAgICAgICAgZWxlbWVudC5jbGFzc05hbWUgPSB0aGlzLmhlYWRlckNsYXNzOw0KICAgICAgICByZXR1cm4gZWxlbWVudDsNCiAgICB9DQogICAgY3JlYXRlVGFibGVDb250ZW50KG1lbnVLZXkpIHsNCiAgICAgICAgbGV0IGRhdGEgPSB7fTsNCiAgICAgICAgbGV0IHJvd3MgPSBbXTsNCiAgICAgICAgbGV0IGZpbGVUeXBlcyA9IFtdOw0KICAgICAgICBzd2l0Y2ggKG1lbnVLZXkpIHsNCiAgICAgICAgICAgIGNhc2UgInBsYXlsaXN0IjoNCiAgICAgICAgICAgICAgICBmaWxlVHlwZXMgPSBbIm0zdSIsICJoZGhyIl07DQogICAgICAgICAgICAgICAgZmlsZVR5cGVzLmZvckVhY2goZmlsZVR5cGUgPT4gew0KICAgICAgICAgICAgICAgICAgICBkYXRhID0gU0VSVkVSWyJzZXR0aW5ncyJdWyJmaWxlcyJdW2ZpbGVUeXBlXTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGtleXMgPSBnZXRPYmpLZXlzKGRhdGEpOw0KICAgICAgICAgICAgICAgICAgICBrZXlzLmZvckVhY2goa2V5ID0+IHsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciB0ciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlRSIik7DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5pZCA9IGtleTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoIicgKyBmaWxlVHlwZSArICciLCB0aGlzKScpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bIm5hbWUiXTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgICAgICBpZiAoU0VSVkVSWyJzZXR0aW5ncyJdWyJidWZmZXIiXSAhPSAiLSIpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJ0dW5lciJdOw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9ICItIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJsYXN0LnVwZGF0ZSJdOw0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bInByb3ZpZGVyLmF2YWlsYWJpbGl0eSJdOw0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bInR5cGUiXS50b1VwcGVyQ2FzZSgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bImNvbXBhdGliaWxpdHkiXVsic3RyZWFtcyJdOw0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bImNvbXBhdGliaWxpdHkiXVsiZ3JvdXAudGl0bGUiXTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJjb21wYXRpYmlsaXR5Il1bInR2Zy5pZCJdOw0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bImNvbXBhdGliaWxpdHkiXVsic3RyZWFtLmlkIl07DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICByb3dzLnB1c2godHIpOw0KICAgICAgICAgICAgICAgICAgICB9KTsNCiAgICAgICAgICAgICAgICB9KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImZpbHRlciI6DQogICAgICAgICAgICAgICAgZGVsZXRlIFNFUlZFUlsic2V0dGluZ3MiXVsiZmlsdGVyIl1bLTFdOw0KICAgICAgICAgICAgICAgIGRhdGEgPSBTRVJWRVJbInNldHRpbmdzIl1bImZpbHRlciJdOw0KICAgICAgICAgICAgICAgIHZhciBrZXlzID0gZ2V0T2JqS2V5cyhkYXRhKTsNCiAgICAgICAgICAgICAgICBrZXlzLmZvckVhY2goa2V5ID0+IHsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVFIiKTsNCiAgICAgICAgICAgICAgICAgICAgdHIuaWQgPSBrZXk7DQogICAgICAgICAgICAgICAgICAgIHRyLnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoIicgKyBkYXRhW2tleV1bInR5cGUiXSArICciLCB0aGlzKScpOw0KICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsic3RhcnRpbmdDaGFubmVsIl07DQogICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bIm5hbWUiXTsNCiAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgc3dpdGNoIChkYXRhW2tleV1bInR5cGUiXSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAiY3VzdG9tLWZpbHRlciI6DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9ICJ7ey5maWx0ZXIuY3VzdG9tfX0iOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAiZ3JvdXAtdGl0bGUiOg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSAie3suZmlsdGVyLmdyb3VwfX0iOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJmaWx0ZXIiXTsNCiAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICByb3dzLnB1c2godHIpOw0KICAgICAgICAgICAgICAgIH0pOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAieG1sdHYiOg0KICAgICAgICAgICAgICAgIGZpbGVUeXBlcyA9IG5ldyBBcnJheSgieG1sdHYiKTsNCiAgICAgICAgICAgICAgICBmaWxlVHlwZXMuZm9yRWFjaChmaWxlVHlwZSA9PiB7DQogICAgICAgICAgICAgICAgICAgIGRhdGEgPSBTRVJWRVJbInNldHRpbmdzIl1bImZpbGVzIl1bZmlsZVR5cGVdOw0KICAgICAgICAgICAgICAgICAgICB2YXIga2V5cyA9IGdldE9iaktleXMoZGF0YSk7DQogICAgICAgICAgICAgICAgICAgIGtleXMuZm9yRWFjaChrZXkgPT4gew0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVFIiKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmlkID0ga2V5Ow0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgiJyArIGZpbGVUeXBlICsgJyIsIHRoaXMpJyk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsibmFtZSJdOw0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bImxhc3QudXBkYXRlIl07DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsicHJvdmlkZXIuYXZhaWxhYmlsaXR5Il07DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsiY29tcGF0aWJpbGl0eSJdWyJ4bWx0di5jaGFubmVscyJdOw0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bImNvbXBhdGliaWxpdHkiXVsieG1sdHYucHJvZ3JhbXMiXTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHJvd3MucHVzaCh0cik7DQogICAgICAgICAgICAgICAgICAgIH0pOw0KICAgICAgICAgICAgICAgIH0pOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAidXNlcnMiOg0KICAgICAgICAgICAgICAgIGZpbGVUeXBlcyA9IG5ldyBBcnJheSgidXNlcnMiKTsNCiAgICAgICAgICAgICAgICBmaWxlVHlwZXMuZm9yRWFjaChmaWxlVHlwZSA9PiB7DQogICAgICAgICAgICAgICAgICAgIGRhdGEgPSBTRVJWRVJbZmlsZVR5cGVdOw0KICAgICAgICAgICAgICAgICAgICB2YXIga2V5cyA9IGdldE9iaktleXMoZGF0YSk7DQogICAgICAgICAgICAgICAgICAgIGtleXMuZm9yRWFjaChrZXkgPT4gew0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVFIiKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmlkID0ga2V5Ow0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgiJyArIGZpbGVUeXBlICsgJyIsIHRoaXMpJyk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsiZGF0YSJdWyJ1c2VybmFtZSJdOw0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSAiKioqKioqIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgICAgICBpZiAoZGF0YVtrZXldWyJkYXRhIl1bImF1dGhlbnRpY2F0aW9uLndlYiJdID09IHRydWUpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gIuKckyI7DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gIi0iOw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChkYXRhW2tleV1bImRhdGEiXVsiYXV0aGVudGljYXRpb24ucG1zIl0gPT0gdHJ1ZSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSAi4pyTIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSAiLSI7DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGRhdGFba2V5XVsiZGF0YSJdWyJhdXRoZW50aWNhdGlvbi5tM3UiXSA9PSB0cnVlKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9ICLinJMiOw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9ICItIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgICAgICBpZiAoZGF0YVtrZXldWyJkYXRhIl1bImF1dGhlbnRpY2F0aW9uLnhtbCJdID09IHRydWUpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gIuKckyI7DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gIi0iOw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChkYXRhW2tleV1bImRhdGEiXVsiYXV0aGVudGljYXRpb24uYXBpIl0gPT0gdHJ1ZSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSAi4pyTIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSAiLSI7DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICByb3dzLnB1c2godHIpOw0KICAgICAgICAgICAgICAgICAgICB9KTsNCiAgICAgICAgICAgICAgICB9KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgIm1hcHBpbmciOg0KICAgICAgICAgICAgICAgIEJVTEtfRURJVCA9IGZhbHNlOw0KICAgICAgICAgICAgICAgIGNyZWF0ZVNlYXJjaE9iaigpOw0KICAgICAgICAgICAgICAgIGNoZWNrVW5kbygiZXBnTWFwcGluZyIpOw0KICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKCJNQVBQSU5HIik7DQogICAgICAgICAgICAgICAgZGF0YSA9IFNFUlZFUlsieGVwZyJdWyJlcGdNYXBwaW5nIl07DQogICAgICAgICAgICAgICAgdmFyIGtleXMgPSBnZXRPYmpLZXlzKGRhdGEpOw0KICAgICAgICAgICAgICAgIGtleXMuZm9yRWFjaChrZXkgPT4gew0KICAgICAgICAgICAgICAgICAgICB2YXIgdHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJUUiIpOw0KICAgICAgICAgICAgICAgICAgICB0ci5pZCA9IGtleTsNCiAgICAgICAgICAgICAgICAgICAgLy90ci5zZXRBdHRyaWJ1dGUoJ29uY29udGV4dG1lbnUnLCAnamF2YXNjcmlwdDogcmlnaHRDbGljayh0aGlzKScpDQogICAgICAgICAgICAgICAgICAgIHN3aXRjaCAoZGF0YVtrZXldWyJ4LWFjdGl2ZSJdKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBjYXNlIHRydWU6DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgdHIuY2xhc3NOYW1lID0gImFjdGl2ZUVQRyI7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgICAgICAgICBjYXNlIGZhbHNlOg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyLmNsYXNzTmFtZSA9ICJub3RBY3RpdmVFUEciOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIC8vIEJ1bGsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiQlVMSyI7DQogICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBmYWxzZTsNCiAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAvLyBDaGFubmVsIG51bWJlcg0KICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJJTlBVVENIQU5ORUwiOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJ4LWNoYW5uZWxJRCJdOw0KICAgICAgICAgICAgICAgICAgICAvL3RkLnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBjaGFuZ2VDaGFubmVsTnVtYmVyKCInICsga2V5ICsgJyIsIHRoaXMpJykNCiAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAvLyBMb2dvDQogICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIklNRyI7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuaW1hZ2VVUkwgPSBkYXRhW2tleV1bInR2Zy1sb2dvIl07DQogICAgICAgICAgICAgICAgICAgIHZhciB0ZCA9IGNlbGwuY3JlYXRlQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICB0ZC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJtYXBwaW5nIiwgdGhpcyknKTsNCiAgICAgICAgICAgICAgICAgICAgdGQuaWQgPSBrZXk7DQogICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKHRkKTsNCiAgICAgICAgICAgICAgICAgICAgLy8gQ2hhbm5lbCBuYW1lDQogICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNsYXNzTmFtZSA9IGRhdGFba2V5XVsieC1jYXRlZ29yeSJdOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJ4LW5hbWUiXTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHRkID0gY2VsbC5jcmVhdGVDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgIHRkLnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoIm1hcHBpbmciLCB0aGlzKScpOw0KICAgICAgICAgICAgICAgICAgICB0ZC5pZCA9IGtleTsNCiAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQodGQpOw0KICAgICAgICAgICAgICAgICAgICAvLyBQbGF5bGlzdA0KICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgLy9jZWxsLnZhbHVlID0gZGF0YVtrZXldWyJfZmlsZS5tM3UubmFtZSJdIA0KICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZ2V0VmFsdWVGcm9tUHJvdmlkZXJGaWxlKGRhdGFba2V5XVsiX2ZpbGUubTN1LmlkIl0sICJtM3UiLCAibmFtZSIpOw0KICAgICAgICAgICAgICAgICAgICB2YXIgdGQgPSBjZWxsLmNyZWF0ZUNlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgdGQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgibWFwcGluZyIsIHRoaXMpJyk7DQogICAgICAgICAgICAgICAgICAgIHRkLmlkID0ga2V5Ow0KICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZCh0ZCk7DQogICAgICAgICAgICAgICAgICAgIC8vIEdyb3VwIChncm91cC10aXRsZSkNCiAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bIngtZ3JvdXAtdGl0bGUiXTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHRkID0gY2VsbC5jcmVhdGVDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgIHRkLnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoIm1hcHBpbmciLCB0aGlzKScpOw0KICAgICAgICAgICAgICAgICAgICB0ZC5pZCA9IGtleTsNCiAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQodGQpOw0KICAgICAgICAgICAgICAgICAgICAvLyBYTUxUViBmaWxlDQogICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICBpZiAoZGF0YVtrZXldWyJ4LXhtbHR2LWZpbGUiXSAhPSAiLSIpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBnZXRWYWx1ZUZyb21Qcm92aWRlckZpbGUoZGF0YVtrZXldWyJ4LXhtbHR2LWZpbGUiXSwgInhtbHR2IiwgIm5hbWUiKTsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bIngteG1sdHYtZmlsZSJdOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIHZhciB0ZCA9IGNlbGwuY3JlYXRlQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICB0ZC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJtYXBwaW5nIiwgdGhpcyknKTsNCiAgICAgICAgICAgICAgICAgICAgdGQuaWQgPSBrZXk7DQogICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKHRkKTsNCiAgICAgICAgICAgICAgICAgICAgLy8gWE1MVFYgQ2hhbm5lbA0KICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgLy92YXIgdmFsdWUgPSBzdHIuc3Vic3RyaW5nKDEsIDQpOw0KICAgICAgICAgICAgICAgICAgICB2YXIgdmFsdWUgPSBkYXRhW2tleV1bIngtbWFwcGluZyJdOw0KICAgICAgICAgICAgICAgICAgICBpZiAodmFsdWUubGVuZ3RoID4gMjApIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlID0gZGF0YVtrZXldWyJ4LW1hcHBpbmciXS5zdWJzdHJpbmcoMCwgMjApICsgIi4uLiI7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IHZhbHVlOw0KICAgICAgICAgICAgICAgICAgICB2YXIgdGQgPSBjZWxsLmNyZWF0ZUNlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgdGQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgibWFwcGluZyIsIHRoaXMpJyk7DQogICAgICAgICAgICAgICAgICAgIHRkLmlkID0ga2V5Ow0KICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZCh0ZCk7DQogICAgICAgICAgICAgICAgICAgIC8vIFRpbWVTaGlmdA0KICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsieC10aW1lc2hpZnQiXTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHRkID0gY2VsbC5jcmVhdGVDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgIHRkLnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoIm1hcHBpbmciLCB0aGlzKScpOw0KICAgICAgICAgICAgICAgICAgICB0ZC5pZCA9IGtleTsNCiAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQodGQpOw0KICAgICAgICAgICAgICAgICAgICByb3dzLnB1c2godHIpOw0KICAgICAgICAgICAgICAgIH0pOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAic2V0dGluZ3MiOg0KICAgICAgICAgICAgICAgIGFsZXJ0KCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBkZWZhdWx0Og0KICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKCJUYWJsZSBjb250ZW50IChtZW51S2V5KToiLCBtZW51S2V5KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgfQ0KICAgICAgICByZXR1cm4gcm93czsNCiAgICB9DQp9DQpjbGFzcyBDZWxsIHsNCiAgICBjcmVhdGVDZWxsKCkgew0KICAgICAgICBsZXQgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICBpZiAodGhpcy5jaGlsZCA9PSB0cnVlKSB7DQogICAgICAgICAgICB2YXIgZWxlbWVudDsNCiAgICAgICAgICAgIHN3aXRjaCAodGhpcy5jaGlsZFR5cGUpIHsNCiAgICAgICAgICAgICAgICBjYXNlICJQIjoNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQodGhpcy5jaGlsZFR5cGUpOw0KICAgICAgICAgICAgICAgICAgICBlbGVtZW50LmlubmVySFRNTCA9IHRoaXMudmFsdWU7DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQuY2xhc3NOYW1lID0gdGhpcy5jbGFzc05hbWU7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgIklOUFVUIjoNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQodGhpcy5jaGlsZFR5cGUpOw0KICAgICAgICAgICAgICAgICAgICBlbGVtZW50LnZhbHVlID0gdGhpcy52YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC50eXBlID0gInRleHQiOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBjYXNlICJJTlBVVENIQU5ORUwiOg0KICAgICAgICAgICAgICAgICAgICBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiSU5QVVQiKTsNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdnNjcmlwdDogY2hhbmdlQ2hhbm5lbE51bWJlcih0aGlzKSIpOw0KICAgICAgICAgICAgICAgICAgICBlbGVtZW50LnZhbHVlID0gdGhpcy52YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC50eXBlID0gInRleHQiOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBjYXNlICJCVUxLIjoNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIklOUFVUIik7DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQuY2hlY2tlZCA9IHRoaXMudmFsdWU7DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQudHlwZSA9ICJjaGVja2JveCI7DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQuY2xhc3NOYW1lID0gImJ1bGsgaGlkZUJ1bGsiOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBjYXNlICJCVUxLX0hFQUQiOg0KICAgICAgICAgICAgICAgICAgICBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiSU5QVVQiKTsNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC5jaGVja2VkID0gdGhpcy52YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC50eXBlID0gImNoZWNrYm94IjsNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC5jbGFzc05hbWUgPSAiYnVsayBoaWRlQnVsayI7DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgImphdmFzY3JpcHQ6IHNlbGVjdEFsbENoYW5uZWxzKCkiKTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAiSU1HIjoNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQodGhpcy5jaGlsZFR5cGUpOw0KICAgICAgICAgICAgICAgICAgICBlbGVtZW50LnNldEF0dHJpYnV0ZSgic3JjIiwgdGhpcy5pbWFnZVVSTCk7DQogICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLmltYWdlVVJMICE9ICIiKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBlbGVtZW50LnNldEF0dHJpYnV0ZSgib25lcnJvciIsICJqYXZhc2NyaXB0OiB0aGlzLm9uZXJyb3I9bnVsbDt0aGlzLnNyYz0nJyIpOw0KICAgICAgICAgICAgICAgICAgICAgICAgLy9vbmVycm9yPSJ0aGlzLm9uZXJyb3I9bnVsbDt0aGlzLnNyYz0nbWlzc2luZy5naWYnOyINCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgdGQuYXBwZW5kQ2hpbGQoZWxlbWVudCk7DQogICAgICAgIH0NCiAgICAgICAgZWxzZSB7DQogICAgICAgICAgICB0ZC5pbm5lckhUTUwgPSB0aGlzLnZhbHVlOw0KICAgICAgICB9DQogICAgICAgIGlmICh0aGlzLm9uY2xpY2sgPT0gdHJ1ZSkgew0KICAgICAgICAgICAgdGQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgdGhpcy5vbmNsaWNrRnVuY3Rpb24pOw0KICAgICAgICAgICAgdGQuY2xhc3NOYW1lID0gInBvaW50ZXIiOw0KICAgICAgICB9DQogICAgICAgIGlmICh0aGlzLnRkQ2xhc3NOYW1lICE9IHVuZGVmaW5lZCkgew0KICAgICAgICAgICAgdGQuY2xhc3NOYW1lID0gdGhpcy50ZENsYXNzTmFtZTsNCiAgICAgICAgfQ0KICAgICAgICByZXR1cm4gdGQ7DQogICAgfQ0KfQ0KY2xhc3MgU2hvd0NvbnRlbnQgZXh0ZW5kcyBDb250ZW50IHsNCiAgICBjb25zdHJ1Y3RvcihtZW51SUQpIHsNCiAgICAgICAgc3VwZXIoKTsNCiAgICAgICAgdGhpcy5tZW51SUQgPSBtZW51SUQ7DQogICAgfQ0KICAgIGNyZWF0ZUlucHV0KHR5cGUsIG5hbWUsIHZhbHVlKSB7DQogICAgICAgIGxldCBpbnB1dCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIklOUFVUIik7DQogICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgidHlwZSIsIHR5cGUpOw0KICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm5hbWUiLCBuYW1lKTsNCiAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJ2YWx1ZSIsIHZhbHVlKTsNCiAgICAgICAgcmV0dXJuIGlucHV0Ow0KICAgIH0NCiAgICBzaG93KCkgew0KICAgICAgICBDT0xVTU5fVE9fU09SVCA9IC0xOw0KICAgICAgICAvLyBEZWxldGUgb2xkIGNvbnRlbnQNCiAgICAgICAgbGV0IGRvYyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHRoaXMuRG9jdW1lbnRJRCk7DQogICAgICAgIGRvYy5pbm5lckhUTUwgPSAiIjsNCiAgICAgICAgc2hvd1ByZXZpZXcoZmFsc2UpOw0KICAgICAgICAvLyBIZWFkbGluZQ0KICAgICAgICBsZXQgaGVhZGxpbmUgPSBtZW51SXRlbXNbdGhpcy5tZW51SURdLmhlYWRsaW5lOw0KICAgICAgICBsZXQgbWVudUtleSA9IG1lbnVJdGVtc1t0aGlzLm1lbnVJRF0ubWVudUtleTsNCiAgICAgICAgbGV0IGggPSB0aGlzLmNyZWF0ZUhlYWRsaW5lKGhlYWRsaW5lKTsNCiAgICAgICAgZG9jLmFwcGVuZENoaWxkKGgpOw0KICAgICAgICBsZXQgaHIgPSB0aGlzLmNyZWF0ZUhSKCk7DQogICAgICAgIGRvYy5hcHBlbmRDaGlsZChocik7DQogICAgICAgIC8vIEludGVyYWN0aW9uDQogICAgICAgIGxldCBkaXYgPSB0aGlzLmNyZWF0ZUludGVyYWN0aW9uKCk7DQogICAgICAgIGRvYy5hcHBlbmRDaGlsZChkaXYpOw0KICAgICAgICBsZXQgaW50ZXJhY3Rpb24gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCh0aGlzLmludGVyYWN0aW9uSUQpOw0KICAgICAgICBzd2l0Y2ggKG1lbnVLZXkpIHsNCiAgICAgICAgICAgIGNhc2UgInBsYXlsaXN0IjoNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSB0aGlzLmNyZWF0ZUlucHV0KCJidXR0b24iLCBtZW51S2V5LCAie3suYnV0dG9uLm5ld319Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJpZCIsICItIik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgicGxheWxpc3QiKScpOw0KICAgICAgICAgICAgICAgIGludGVyYWN0aW9uLmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImZpbHRlciI6DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gdGhpcy5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgbWVudUtleSwgInt7LmJ1dHRvbi5uZXd9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgiaWQiLCAtMSk7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgiZmlsdGVyIiwgdGhpcyknKTsNCiAgICAgICAgICAgICAgICBpbnRlcmFjdGlvbi5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ4bWx0diI6DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gdGhpcy5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgbWVudUtleSwgInt7LmJ1dHRvbi5uZXd9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgiaWQiLCAieG1sdHYiKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJ4bWx0diIpJyk7DQogICAgICAgICAgICAgICAgaW50ZXJhY3Rpb24uYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAidXNlcnMiOg0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IHRoaXMuY3JlYXRlSW5wdXQoImJ1dHRvbiIsIG1lbnVLZXksICJ7ey5idXR0b24ubmV3fX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoImlkIiwgInVzZXJzIik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgidXNlcnMiKScpOw0KICAgICAgICAgICAgICAgIGludGVyYWN0aW9uLmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgIm1hcHBpbmciOg0KICAgICAgICAgICAgICAgIHNob3dFbGVtZW50KCJsb2FkaW5nIiwgdHJ1ZSk7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gdGhpcy5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgbWVudUtleSwgInt7LmJ1dHRvbi5zYXZlfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogc2F2ZVBvcHVwRGF0YSgibWFwcGluZyIsICIiLCAiIiknKTsNCiAgICAgICAgICAgICAgICBpbnRlcmFjdGlvbi5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gdGhpcy5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgbWVudUtleSwgInt7LmJ1dHRvbi5idWxrRWRpdH19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IGJ1bGtFZGl0KCknKTsNCiAgICAgICAgICAgICAgICBpbnRlcmFjdGlvbi5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gdGhpcy5jcmVhdGVJbnB1dCgic2VhcmNoIiwgInNlYXJjaCIsICIiKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoImlkIiwgInNlYXJjaE1hcHBpbmciKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LmJ1dHRvbi5zZWFyY2h9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LmNsYXNzTmFtZSA9ICJzZWFyY2giOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAnamF2YXNjcmlwdDogc2VhcmNoSW5NYXBwaW5nKCknKTsNCiAgICAgICAgICAgICAgICBpbnRlcmFjdGlvbi5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJzZXR0aW5ncyI6DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gdGhpcy5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgbWVudUtleSwgInt7LmJ1dHRvbi5zYXZlfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogc2F2ZVNldHRpbmdzKCk7Jyk7DQogICAgICAgICAgICAgICAgaW50ZXJhY3Rpb24uYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IHRoaXMuY3JlYXRlSW5wdXQoImJ1dHRvbiIsIG1lbnVLZXksICJ7ey5idXR0b24uYmFja3VwfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogYmFja3VwKCk7Jyk7DQogICAgICAgICAgICAgICAgaW50ZXJhY3Rpb24uYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IHRoaXMuY3JlYXRlSW5wdXQoImJ1dHRvbiIsIG1lbnVLZXksICJ7ey5idXR0b24ucmVzdG9yZX19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IHJlc3RvcmUoKTsnKTsNCiAgICAgICAgICAgICAgICBpbnRlcmFjdGlvbi5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgdmFyIHdyYXBwZXIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJESVYiKTsNCiAgICAgICAgICAgICAgICB3cmFwcGVyLnNldEF0dHJpYnV0ZSgiaWQiLCAiYm94LXdyYXBwZXIiKTsNCiAgICAgICAgICAgICAgICBkb2MuYXBwZW5kQ2hpbGQod3JhcHBlcik7DQogICAgICAgICAgICAgICAgdGhpcy5EaXZJRCA9ICJjb250ZW50X3NldHRpbmdzIjsNCiAgICAgICAgICAgICAgICB2YXIgc2V0dGluZ3MgPSB0aGlzLmNyZWF0ZURJVigpOw0KICAgICAgICAgICAgICAgIHdyYXBwZXIuYXBwZW5kQ2hpbGQoc2V0dGluZ3MpOw0KICAgICAgICAgICAgICAgIHNob3dTZXR0aW5ncygpOw0KICAgICAgICAgICAgICAgIHJldHVybjsNCiAgICAgICAgICAgIGNhc2UgImxvZyI6DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gdGhpcy5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgbWVudUtleSwgInt7LmJ1dHRvbi5yZXNldExvZ3N9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiByZXNldExvZ3MoKTsnKTsNCiAgICAgICAgICAgICAgICBpbnRlcmFjdGlvbi5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgdmFyIHdyYXBwZXIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJESVYiKTsNCiAgICAgICAgICAgICAgICB3cmFwcGVyLnNldEF0dHJpYnV0ZSgiaWQiLCAiYm94LXdyYXBwZXIiKTsNCiAgICAgICAgICAgICAgICBkb2MuYXBwZW5kQ2hpbGQod3JhcHBlcik7DQogICAgICAgICAgICAgICAgdGhpcy5EaXZJRCA9ICJjb250ZW50X2xvZyI7DQogICAgICAgICAgICAgICAgdmFyIGxvZ3MgPSB0aGlzLmNyZWF0ZURJVigpOw0KICAgICAgICAgICAgICAgIHdyYXBwZXIuYXBwZW5kQ2hpbGQobG9ncyk7DQogICAgICAgICAgICAgICAgc2hvd0xvZ3ModHJ1ZSk7DQogICAgICAgICAgICAgICAgcmV0dXJuOw0KICAgICAgICAgICAgY2FzZSAibG9nb3V0IjoNCiAgICAgICAgICAgICAgICBsb2NhdGlvbi5yZWxvYWQoKTsNCiAgICAgICAgICAgICAgICBkb2N1bWVudC5jb29raWUgPSAiVG9rZW49IDsgZXhwaXJlcyA9IFRodSwgMDEgSmFuIDE5NzAgMDA6MDA6MDAgR01UIjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICAgICAgY29uc29sZS5sb2coIlNob3cgY29udGVudCAobWVudUtleSk6IiwgbWVudUtleSk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIH0NCiAgICAgICAgLy8gQ3JlYXRlIHRhYmxlIChpZiBuZWVkZWQpDQogICAgICAgIHZhciB0YWJsZUhlYWRlciA9IG1lbnVJdGVtc1t0aGlzLm1lbnVJRF0udGFibGVIZWFkZXI7DQogICAgICAgIGlmICh0YWJsZUhlYWRlci5sZW5ndGggPiAwKSB7DQogICAgICAgICAgICB2YXIgd3JhcHBlciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIkRJViIpOw0KICAgICAgICAgICAgZG9jLmFwcGVuZENoaWxkKHdyYXBwZXIpOw0KICAgICAgICAgICAgd3JhcHBlci5zZXRBdHRyaWJ1dGUoImlkIiwgImJveC13cmFwcGVyIik7DQogICAgICAgICAgICB2YXIgdGFibGUgPSB0aGlzLmNyZWF0ZVRBQkxFKCk7DQogICAgICAgICAgICB3cmFwcGVyLmFwcGVuZENoaWxkKHRhYmxlKTsNCiAgICAgICAgICAgIHZhciBoZWFkZXIgPSB0aGlzLmNyZWF0ZVRhYmxlUm93KCk7DQogICAgICAgICAgICB0YWJsZS5hcHBlbmRDaGlsZChoZWFkZXIpOw0KICAgICAgICAgICAgLy8gVGFibGUgaGVhZGVyDQogICAgICAgICAgICB0YWJsZUhlYWRlci5mb3JFYWNoKGVsZW1lbnQgPT4gew0KICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZWxlbWVudDsNCiAgICAgICAgICAgICAgICBpZiAoZWxlbWVudCA9PSAiQlVMSyIpIHsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiQlVMS19IRUFEIjsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGZhbHNlOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBpZiAobWVudUtleSA9PSAibWFwcGluZyIpIHsNCiAgICAgICAgICAgICAgICAgICAgaWYgKGVsZW1lbnQgPT0gInt7Lm1hcHBpbmcudGFibGUuY2hOb319Iikgew0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5vbmNsaWNrID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwub25jbGlja0Z1bmN0aW9uID0gImphdmFzY3JpcHQ6IHNvcnRUYWJsZSgxKTsiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC50ZENsYXNzTmFtZSA9ICJzb3J0VGhpcyI7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgaWYgKGVsZW1lbnQgPT0gInt7Lm1hcHBpbmcudGFibGUuY2hhbm5lbE5hbWV9fSIpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwub25jbGljayA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLm9uY2xpY2tGdW5jdGlvbiA9ICJqYXZhc2NyaXB0OiBzb3J0VGFibGUoMyk7IjsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBpZiAoZWxlbWVudCA9PSAie3subWFwcGluZy50YWJsZS5wbGF5bGlzdH19Iikgew0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5vbmNsaWNrID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwub25jbGlja0Z1bmN0aW9uID0gImphdmFzY3JpcHQ6IHNvcnRUYWJsZSg0KTsiOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIGlmIChlbGVtZW50ID09ICJ7ey5tYXBwaW5nLnRhYmxlLmdyb3VwVGl0bGV9fSIpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwub25jbGljayA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLm9uY2xpY2tGdW5jdGlvbiA9ICJqYXZhc2NyaXB0OiBzb3J0VGFibGUoNSk7IjsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBpZiAoZWxlbWVudCA9PSAie3subWFwcGluZy50YWJsZS50aW1lc2hpZnR9fSIpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwub25jbGljayA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLm9uY2xpY2tGdW5jdGlvbiA9ICJqYXZhc2NyaXB0OiBzb3J0VGFibGUoOCk7IjsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBpZiAobWVudUtleSA9PSAiZmlsdGVyIikgew0KICAgICAgICAgICAgICAgICAgICBpZiAoZWxlbWVudCA9PSAie3suZmlsdGVyLnRhYmxlLnN0YXJ0aW5nQ2hhbm5lbH19Iikgew0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5vbmNsaWNrID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwub25jbGlja0Z1bmN0aW9uID0gImphdmFzY3JpcHQ6IHNvcnRUYWJsZSgwKTsiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC50ZENsYXNzTmFtZSA9ICJzb3J0VGhpcyI7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgaWYgKGVsZW1lbnQgPT0gInt7LmZpbHRlci50YWJsZS5uYW1lfX0iKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLm9uY2xpY2sgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5vbmNsaWNrRnVuY3Rpb24gPSAiamF2YXNjcmlwdDogc29ydFRhYmxlKDEpOyI7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgaWYgKGVsZW1lbnQgPT0gInt7LmZpbHRlci50YWJsZS50eXBlfX0iKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLm9uY2xpY2sgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5vbmNsaWNrRnVuY3Rpb24gPSAiamF2YXNjcmlwdDogc29ydFRhYmxlKDIpOyI7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgaWYgKGVsZW1lbnQgPT0gInt7LmZpbHRlci50YWJsZS5maWx0ZXJ9fSIpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwub25jbGljayA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLm9uY2xpY2tGdW5jdGlvbiA9ICJqYXZhc2NyaXB0OiBzb3J0VGFibGUoMyk7IjsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBoZWFkZXIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgfSk7DQogICAgICAgICAgICB0YWJsZS5hcHBlbmRDaGlsZChoZWFkZXIpOw0KICAgICAgICAgICAgLy8gQ29udGVudCBvZiB0aGUgdGFibGUNCiAgICAgICAgICAgIHZhciByb3dzID0gdGhpcy5jcmVhdGVUYWJsZUNvbnRlbnQobWVudUtleSk7DQogICAgICAgICAgICByb3dzLmZvckVhY2godHIgPT4gew0KICAgICAgICAgICAgICAgIHRhYmxlLmFwcGVuZENoaWxkKHRyKTsNCiAgICAgICAgICAgIH0pOw0KICAgICAgICB9DQogICAgICAgIHN3aXRjaCAobWVudUtleSkgew0KICAgICAgICAgICAgY2FzZSAibWFwcGluZyI6DQogICAgICAgICAgICAgICAgc29ydFRhYmxlKDEpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiZmlsdGVyIjoNCiAgICAgICAgICAgICAgICBzaG93UHJldmlldyh0cnVlKTsNCiAgICAgICAgICAgICAgICBzb3J0VGFibGUoMCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBkZWZhdWx0Og0KICAgICAgICAgICAgICAgIENPTFVNTl9UT19TT1JUID0gLTE7DQogICAgICAgICAgICAgICAgc29ydFRhYmxlKDApOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICB9DQogICAgICAgIHNob3dFbGVtZW50KCJsb2FkaW5nIiwgZmFsc2UpOw0KICAgIH0NCn0NCmZ1bmN0aW9uIFBhZ2VSZWFkeSgpIHsNCiAgICBsZXQgc2VydmVyID0gbmV3IFNlcnZlcigiZ2V0U2VydmVyQ29uZmlnIik7DQogICAgc2VydmVyLnJlcXVlc3Qoe30pOw0KICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJyZXNpemUiLCBmdW5jdGlvbiAoKSB7DQogICAgICAgIGNhbGN1bGF0ZVdyYXBwZXJIZWlnaHQoKTsNCiAgICB9LCB0cnVlKTsNCiAgICBzZXRJbnRlcnZhbChmdW5jdGlvbiAoKSB7DQogICAgICAgIHVwZGF0ZUxvZygpOw0KICAgIH0sIDEwMDAwKTsNCiAgICByZXR1cm47DQp9DQpmdW5jdGlvbiBjcmVhdGVMYXlvdXQoKSB7DQogICAgLy8gQ2xpZW50IEluZm8NCiAgICBsZXQgb2JqID0gU0VSVkVSWyJjbGllbnRJbmZvIl07DQogICAgbGV0IGtleXMgPSBnZXRPYmpLZXlzKG9iaik7DQogICAgZm9yICh2YXIgaSA9IDA7IGkgPCBrZXlzLmxlbmd0aDsgaSsrKSB7DQogICAgICAgIGlmIChkb2N1bWVudC5nZXRFbGVtZW50QnlJZChrZXlzW2ldKSkgew0KICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoa2V5c1tpXSkuaW5uZXJIVE1MID0gb2JqW2tleXNbaV1dOw0KICAgICAgICB9DQogICAgfQ0KICAgIGlmICghZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm1haW4tbWVudSIpKSB7DQogICAgICAgIHJldHVybjsNCiAgICB9DQogICAgLy8gQ3JlYXRlIG1lbnUNCiAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibWFpbi1tZW51IikuaW5uZXJIVE1MID0gIiI7DQogICAgZm9yIChsZXQgaSA9IDA7IGkgPCBtZW51SXRlbXMubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgbWVudUl0ZW1zW2ldLmlkID0gaTsNCiAgICAgICAgc3dpdGNoIChtZW51SXRlbXNbaV1bIm1lbnVLZXkiXSkgew0KICAgICAgICAgICAgY2FzZSAidXNlcnMiOg0KICAgICAgICAgICAgY2FzZSAibG9nb3V0IjoNCiAgICAgICAgICAgICAgICBpZiAoU0VSVkVSWyJzZXR0aW5ncyJdWyJhdXRoZW50aWNhdGlvbi53ZWIiXSA9PSB0cnVlKSB7DQogICAgICAgICAgICAgICAgICAgIG1lbnVJdGVtc1tpXS5jcmVhdGVJdGVtKCk7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAibWFwcGluZyI6DQogICAgICAgICAgICBjYXNlICJ4bWx0diI6DQogICAgICAgICAgICAgICAgaWYgKFNFUlZFUlsiY2xpZW50SW5mbyJdWyJlcGdTb3VyY2UiXSA9PSAiWEVQRyIpIHsNCiAgICAgICAgICAgICAgICAgICAgbWVudUl0ZW1zW2ldLmNyZWF0ZUl0ZW0oKTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBkZWZhdWx0Og0KICAgICAgICAgICAgICAgIG1lbnVJdGVtc1tpXS5jcmVhdGVJdGVtKCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIH0NCiAgICB9DQogICAgcmV0dXJuOw0KfQ0KZnVuY3Rpb24gb3BlblRoaXNNZW51KGVsZW1lbnQpIHsNCiAgICBsZXQgaWQgPSBlbGVtZW50LmlkOw0KICAgIGxldCBjb250ZW50ID0gbmV3IFNob3dDb250ZW50KGlkKTsNCiAgICBjb250ZW50LnNob3coKTsNCiAgICBjYWxjdWxhdGVXcmFwcGVySGVpZ2h0KCk7DQogICAgcmV0dXJuOw0KfQ0KY2xhc3MgUG9wdXBXaW5kb3cgew0KICAgIGNvbnN0cnVjdG9yKCkgew0KICAgICAgICB0aGlzLkRvY3VtZW50SUQgPSAicG9wdXAtY3VzdG9tIjsNCiAgICAgICAgdGhpcy5JbnRlcmFjdGlvbklEID0gImludGVyYWN0aW9uIjsNCiAgICAgICAgdGhpcy5kb2MgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCh0aGlzLkRvY3VtZW50SUQpOw0KICAgIH0NCiAgICBjcmVhdGVUaXRsZSh0aXRsZSkgew0KICAgICAgICBsZXQgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICB0ZC5jbGFzc05hbWUgPSAibGVmdCI7DQogICAgICAgIHRkLmlubmVySFRNTCA9IHRpdGxlICsgIjoiOw0KICAgICAgICByZXR1cm4gdGQ7DQogICAgfQ0KICAgIGNyZWF0ZUNvbnRlbnQoZWxlbWVudCkgew0KICAgICAgICBsZXQgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICB0ZC5hcHBlbmRDaGlsZChlbGVtZW50KTsNCiAgICAgICAgcmV0dXJuIHRkOw0KICAgIH0NCiAgICBjcmVhdGVJbnRlcmFjdGlvbigpIHsNCiAgICAgICAgbGV0IGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOw0KICAgICAgICBkaXYuc2V0QXR0cmlidXRlKCJpZCIsICJwb3B1cC1pbnRlcmFjdGlvbiIpOw0KICAgICAgICBkaXYuY2xhc3NOYW1lID0gImludGVyYWN0aW9uIjsNCiAgICAgICAgdGhpcy5kb2MuYXBwZW5kQ2hpbGQoZGl2KTsNCiAgICB9DQp9DQpjbGFzcyBQb3B1cENvbnRlbnQgZXh0ZW5kcyBQb3B1cFdpbmRvdyB7DQogICAgY29uc3RydWN0b3IoKSB7DQogICAgICAgIHN1cGVyKC4uLmFyZ3VtZW50cyk7DQogICAgICAgIHRoaXMudGFibGUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJUQUJMRSIpOw0KICAgIH0NCiAgICBjcmVhdGVIZWFkbGluZShoZWFkbGluZSkgew0KICAgICAgICB0aGlzLmRvYy5pbm5lckhUTUwgPSAiIjsNCiAgICAgICAgdmFyIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJIMyIpOw0KICAgICAgICBlbGVtZW50LmlubmVySFRNTCA9IGhlYWRsaW5lLnRvVXBwZXJDYXNlKCk7DQogICAgICAgIHRoaXMuZG9jLmFwcGVuZENoaWxkKGVsZW1lbnQpOw0KICAgICAgICAvLyBDcmVhdGUgdGFibGUNCiAgICAgICAgdGhpcy50YWJsZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlRBQkxFIik7DQogICAgICAgIHRoaXMuZG9jLmFwcGVuZENoaWxkKHRoaXMudGFibGUpOw0KICAgIH0NCiAgICBhcHBlbmRSb3codGl0bGUsIGVsZW1lbnQpIHsNCiAgICAgICAgbGV0IHRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVFIiKTsNCiAgICAgICAgLy8gVGl0bGUNCiAgICAgICAgaWYgKHRpdGxlLmxlbmd0aCAhPSAwKSB7DQogICAgICAgICAgICB0ci5hcHBlbmRDaGlsZCh0aGlzLmNyZWF0ZVRpdGxlKHRpdGxlKSk7DQogICAgICAgIH0NCiAgICAgICAgLy8gQ29udGVudA0KICAgICAgICB0ci5hcHBlbmRDaGlsZCh0aGlzLmNyZWF0ZUNvbnRlbnQoZWxlbWVudCkpOw0KICAgICAgICB0aGlzLnRhYmxlLmFwcGVuZENoaWxkKHRyKTsNCiAgICB9DQogICAgY3JlYXRlSW5wdXQodHlwZSwgbmFtZSwgdmFsdWUpIHsNCiAgICAgICAgbGV0IGlucHV0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiSU5QVVQiKTsNCiAgICAgICAgaWYgKHZhbHVlID09IHVuZGVmaW5lZCkgew0KICAgICAgICAgICAgdmFsdWUgPSAiIjsNCiAgICAgICAgfQ0KICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInR5cGUiLCB0eXBlKTsNCiAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJuYW1lIiwgbmFtZSk7DQogICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgidmFsdWUiLCB2YWx1ZSk7DQogICAgICAgIHJldHVybiBpbnB1dDsNCiAgICB9DQogICAgY3JlYXRlQ2hlY2tib3gobmFtZSkgew0KICAgICAgICBsZXQgaW5wdXQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJJTlBVVCIpOw0KICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInR5cGUiLCAiY2hlY2tib3giKTsNCiAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJuYW1lIiwgbmFtZSk7DQogICAgICAgIHJldHVybiBpbnB1dDsNCiAgICB9DQogICAgLy8gQ3JlYXRlcyBhIHNlbGVjdGlvbiBvZiBtdWx0aXBsZSBvcHRpb25zIHZhbHVlcyB3aXRoIHRleHQgZGVzY3JpcHRpb25zDQogICAgY3JlYXRlU2VsZWN0KHRleHQsIHZhbHVlcywgc2V0LCBkYktleSkgew0KICAgICAgICBsZXQgc2VsZWN0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiU0VMRUNUIik7DQogICAgICAgIHNlbGVjdC5zZXRBdHRyaWJ1dGUoIm5hbWUiLCBkYktleSk7DQogICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGV4dC5sZW5ndGg7IGkrKykgew0KICAgICAgICAgICAgbGV0IG9wdGlvbiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIk9QVElPTiIpOw0KICAgICAgICAgICAgb3B0aW9uLnNldEF0dHJpYnV0ZSgidmFsdWUiLCB2YWx1ZXNbaV0pOw0KICAgICAgICAgICAgb3B0aW9uLmlubmVyVGV4dCA9IHRleHRbaV07DQogICAgICAgICAgICBzZWxlY3QuYXBwZW5kQ2hpbGQob3B0aW9uKTsNCiAgICAgICAgfQ0KICAgICAgICBpZiAoc2V0ICE9ICIiKSB7DQogICAgICAgICAgICBzZWxlY3QudmFsdWUgPSBzZXQ7DQogICAgICAgIH0NCiAgICAgICAgaWYgKHNldCA9PSB1bmRlZmluZWQpIHsNCiAgICAgICAgICAgIHNlbGVjdC52YWx1ZSA9IHZhbHVlc1swXTsNCiAgICAgICAgfQ0KICAgICAgICByZXR1cm4gc2VsZWN0Ow0KICAgIH0NCiAgICBzZWxlY3RPcHRpb24oc2VsZWN0LCB2YWx1ZSkgew0KICAgICAgICAvL3NlbGVjdC5zZWxlY3RlZE9wdGlvbnMgPSB2YWx1ZQ0KICAgICAgICBsZXQgcyA9IHNlbGVjdDsNCiAgICAgICAgcy5vcHRpb25zW3Muc2VsZWN0ZWRJbmRleF0udmFsdWUgPSB2YWx1ZTsNCiAgICAgICAgcmV0dXJuIHNlbGVjdDsNCiAgICB9DQogICAgZGVzY3JpcHRpb24odmFsdWUpIHsNCiAgICAgICAgbGV0IHRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVFIiKTsNCiAgICAgICAgbGV0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgbGV0IHNwYW4gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJQUkUiKTsNCiAgICAgICAgc3Bhbi5pbm5lckhUTUwgPSB2YWx1ZTsNCiAgICAgICAgdHIuYXBwZW5kQ2hpbGQodGQpOw0KICAgICAgICB0ci5hcHBlbmRDaGlsZCh0aGlzLmNyZWF0ZUNvbnRlbnQoc3BhbikpOw0KICAgICAgICB0aGlzLnRhYmxlLmFwcGVuZENoaWxkKHRyKTsNCiAgICB9DQogICAgLy8gSW50ZXJhY3Rpb24NCiAgICBhZGRJbnRlcmFjdGlvbihlbGVtZW50KSB7DQogICAgICAgIGxldCBpbnRlcmFjdGlvbiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJwb3B1cC1pbnRlcmFjdGlvbiIpOw0KICAgICAgICBpbnRlcmFjdGlvbi5hcHBlbmRDaGlsZChlbGVtZW50KTsNCiAgICB9DQp9DQpmdW5jdGlvbiBvcGVuUG9wVXAoZGF0YVR5cGUsIGVsZW1lbnQpIHsNCiAgICBsZXQgZGF0YSA9IHt9Ow0KICAgIGxldCBpZDsNCiAgICBzd2l0Y2ggKGVsZW1lbnQpIHsNCiAgICAgICAgY2FzZSB1bmRlZmluZWQ6DQogICAgICAgICAgICBzd2l0Y2ggKGRhdGFUeXBlKSB7DQogICAgICAgICAgICAgICAgY2FzZSAiZ3JvdXAtdGl0bGUiOg0KICAgICAgICAgICAgICAgICAgICBpZiAoaWQgPT0gdW5kZWZpbmVkKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBpZCA9IC0xOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIGRhdGEgPSBnZXRMb2NhbERhdGEoImZpbHRlciIsIGlkKTsNCiAgICAgICAgICAgICAgICAgICAgZGF0YVsidHlwZSJdID0gImdyb3VwLXRpdGxlIjsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAiY3VzdG9tLWZpbHRlciI6DQogICAgICAgICAgICAgICAgICAgIGlmIChpZCA9PSB1bmRlZmluZWQpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGlkID0gLTE7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgZGF0YSA9IGdldExvY2FsRGF0YSgiZmlsdGVyIiwgaWQpOw0KICAgICAgICAgICAgICAgICAgICBkYXRhWyJ0eXBlIl0gPSAiY3VzdG9tLWZpbHRlciI7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICAgICAgICAgIGRhdGFbImlkLnByb3ZpZGVyIl0gPSAiLSI7DQogICAgICAgICAgICAgICAgICAgIGRhdGFbInR5cGUiXSA9IGRhdGFUeXBlOw0KICAgICAgICAgICAgICAgICAgICBpZCA9ICItIjsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgIGlkID0gZWxlbWVudC5pZDsNCiAgICAgICAgICAgIGRhdGEgPSBnZXRMb2NhbERhdGEoZGF0YVR5cGUsIGlkKTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgIH0NCiAgICBsZXQgY29udGVudCA9IG5ldyBQb3B1cENvbnRlbnQoKTsNCiAgICBzd2l0Y2ggKGRhdGFUeXBlKSB7DQogICAgICAgIGNhc2UgInBsYXlsaXN0IjoNCiAgICAgICAgICAgIGNvbnRlbnQuY3JlYXRlSGVhZGxpbmUoInt7LnBsYXlsaXN0LnBsYXlsaXN0VHlwZS50aXRsZX19Iik7DQogICAgICAgICAgICAvLyBUeXBlDQogICAgICAgICAgICB2YXIgdGV4dCA9IFsiTTNVIiwgIkhESG9tZVJ1biJdOw0KICAgICAgICAgICAgdmFyIHZhbHVlcyA9IFsiamF2YXNjcmlwdDogb3BlblBvcFVwKCdtM3UnKSIsICJqYXZhc2NyaXB0OiBvcGVuUG9wVXAoJ2hkaHInKSJdOw0KICAgICAgICAgICAgdmFyIHNlbGVjdCA9IGNvbnRlbnQuY3JlYXRlU2VsZWN0KHRleHQsIHZhbHVlcywgIiIsICJ0eXBlIik7DQogICAgICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJpZCIsICJ0eXBlIik7DQogICAgICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICdqYXZhc2NyaXB0OiBjaGFuZ2VCdXR0b25BY3Rpb24odGhpcywgIm5leHQiLCAib25jbGljayIpJyk7IC8vIGNoYW5nZUJ1dHRvbkFjdGlvbg0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnBsYXlsaXN0LnR5cGUudGl0bGV9fSIsIHNlbGVjdCk7DQogICAgICAgICAgICAvLyBJbnRlcmFjdGlvbg0KICAgICAgICAgICAgY29udGVudC5jcmVhdGVJbnRlcmFjdGlvbigpOw0KICAgICAgICAgICAgLy8gQWJvcnQNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJjYW5jZWwiLCAie3suYnV0dG9uLmNhbmNlbH19Iik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogc2hvd0VsZW1lbnQoInBvcHVwIiwgZmFsc2UpOycpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICAvLyBOZXh0DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAibmV4dCIsICJ7ey5idXR0b24ubmV4dH19Iik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJtM3UiKScpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJpZCIsICduZXh0Jyk7DQogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJtM3UiOg0KICAgICAgICAgICAgY29udGVudC5jcmVhdGVIZWFkbGluZShkYXRhVHlwZSk7DQogICAgICAgICAgICAvLyBOYW1lDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAibmFtZSI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3sucGxheWxpc3QubmFtZS5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sucGxheWxpc3QubmFtZS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgLy8gRGVzY3JpcHRpb24NCiAgICAgICAgICAgIHZhciBkYktleSA9ICJkZXNjcmlwdGlvbiI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3sucGxheWxpc3QuZGVzY3JpcHRpb24ucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnBsYXlsaXN0LmRlc2NyaXB0aW9uLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBVUkwNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJmaWxlLnNvdXJjZSI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3sucGxheWxpc3QuZmlsZU0zVS5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sucGxheWxpc3QuZmlsZU0zVS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgLy8gVHVuZXINCiAgICAgICAgICAgIGlmIChTRVJWRVJbInNldHRpbmdzIl1bImJ1ZmZlciJdICE9ICItIikgew0KICAgICAgICAgICAgICAgIHZhciB0ZXh0ID0gW107DQogICAgICAgICAgICAgICAgdmFyIHZhbHVlcyA9IFtdOw0KICAgICAgICAgICAgICAgIGZvciAodmFyIGkgPSAxOyBpIDw9IDEwMDsgaSsrKSB7DQogICAgICAgICAgICAgICAgICAgIHRleHQucHVzaChpLnRvU3RyaW5nKCkpOw0KICAgICAgICAgICAgICAgICAgICB2YWx1ZXMucHVzaChpLnRvU3RyaW5nKCkpOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB2YXIgZGJLZXkgPSAidHVuZXIiOw0KICAgICAgICAgICAgICAgIHZhciBzZWxlY3QgPSBjb250ZW50LmNyZWF0ZVNlbGVjdCh0ZXh0LCB2YWx1ZXMsIGRhdGFbZGJLZXldLCBkYktleSk7DQogICAgICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25mb2N1cyIsICJqYXZhc2NyaXB0OiByZXR1cm47Iik7DQogICAgICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnBsYXlsaXN0LnR1bmVyLnRpdGxlfX0iLCBzZWxlY3QpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgZWxzZSB7DQogICAgICAgICAgICAgICAgdmFyIGRiS2V5ID0gInR1bmVyIjsNCiAgICAgICAgICAgICAgICBpZiAoZGF0YVtkYktleV0gPT0gdW5kZWZpbmVkKSB7DQogICAgICAgICAgICAgICAgICAgIGRhdGFbZGJLZXldID0gMTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJyZWFkb25seSIsICJ0cnVlIik7DQogICAgICAgICAgICAgICAgaW5wdXQuY2xhc3NOYW1lID0gIm5vdEF2YWlsYWJsZSI7DQogICAgICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnBsYXlsaXN0LnR1bmVyLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBjb250ZW50LmRlc2NyaXB0aW9uKCJ7ey5wbGF5bGlzdC50dW5lci5kZXNjcmlwdGlvbn19Iik7DQogICAgICAgICAgICAvLyBJbnRlcmF0aW9uDQogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUludGVyYWN0aW9uKCk7DQogICAgICAgICAgICAvLyBEZWxldGUNCiAgICAgICAgICAgIGlmIChkYXRhWyJpZC5wcm92aWRlciJdICE9ICItIikgew0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJkZWxldGUiLCAie3suYnV0dG9uLmRlbGV0ZX19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuY2xhc3NOYW1lID0gImRlbGV0ZSI7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoIm0zdSIsICInICsgaWQgKyAnIiwgdHJ1ZSwgMCknKTsNCiAgICAgICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJiYWNrIiwgInt7LmJ1dHRvbi5iYWNrfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJwbGF5bGlzdCIpJyk7DQogICAgICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICAvLyBBYm9ydA0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImNhbmNlbCIsICJ7ey5idXR0b24uY2FuY2VsfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBzaG93RWxlbWVudCgicG9wdXAiLCBmYWxzZSk7Jyk7DQogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIC8vIFVwZGF0ZQ0KICAgICAgICAgICAgaWYgKGRhdGFbImlkLnByb3ZpZGVyIl0gIT0gIi0iKSB7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgInVwZGF0ZSIsICJ7ey5idXR0b24udXBkYXRlfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogc2F2ZVBvcHVwRGF0YSgibTN1IiwgIicgKyBpZCArICciLCBmYWxzZSwgMSknKTsNCiAgICAgICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIC8vIFNhdmUNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJzYXZlIiwgInt7LmJ1dHRvbi5zYXZlfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBzYXZlUG9wdXBEYXRhKCJtM3UiLCAiJyArIGlkICsgJyIsIGZhbHNlLCAwKScpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSAiaGRociI6DQogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUhlYWRsaW5lKGRhdGFUeXBlKTsNCiAgICAgICAgICAgIC8vIE5hbWUNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJuYW1lIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5wbGF5bGlzdC5uYW1lLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5wbGF5bGlzdC5uYW1lLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBEZXNjcmlwdGlvbg0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gImRlc2NyaXB0aW9uIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5wbGF5bGlzdC5kZXNjcmlwdGlvbi5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sucGxheWxpc3QuZGVzY3JpcHRpb24ucGxhY2Vob2xkZXJ9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIFVSTA0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gImZpbGUuc291cmNlIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5wbGF5bGlzdC5maWxlSERIUi5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sucGxheWxpc3QuZmlsZUhESFIudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIFR1bmVyDQogICAgICAgICAgICBpZiAoU0VSVkVSWyJzZXR0aW5ncyJdWyJidWZmZXIiXSAhPSAiLSIpIHsNCiAgICAgICAgICAgICAgICB2YXIgdGV4dCA9IFtdOw0KICAgICAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBbXTsNCiAgICAgICAgICAgICAgICBmb3IgKHZhciBpID0gMTsgaSA8PSAxMDA7IGkrKykgew0KICAgICAgICAgICAgICAgICAgICB0ZXh0LnB1c2goaS50b1N0cmluZygpKTsNCiAgICAgICAgICAgICAgICAgICAgdmFsdWVzLnB1c2goaS50b1N0cmluZygpKTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgdmFyIGRiS2V5ID0gInR1bmVyIjsNCiAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCBkYXRhW2RiS2V5XSwgZGJLZXkpOw0KICAgICAgICAgICAgICAgIHNlbGVjdC5zZXRBdHRyaWJ1dGUoIm9uZm9jdXMiLCAiamF2YXNjcmlwdDogcmV0dXJuOyIpOw0KICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5wbGF5bGlzdC50dW5lci50aXRsZX19Iiwgc2VsZWN0KTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgICAgIHZhciBkYktleSA9ICJ0dW5lciI7DQogICAgICAgICAgICAgICAgaWYgKGRhdGFbZGJLZXldID09IHVuZGVmaW5lZCkgew0KICAgICAgICAgICAgICAgICAgICBkYXRhW2RiS2V5XSA9IDE7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicmVhZG9ubHkiLCAidHJ1ZSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LmNsYXNzTmFtZSA9ICJub3RBdmFpbGFibGUiOw0KICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5wbGF5bGlzdC50dW5lci50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgY29udGVudC5kZXNjcmlwdGlvbigie3sucGxheWxpc3QudHVuZXIuZGVzY3JpcHRpb259fSIpOw0KICAgICAgICAgICAgLy8gSW50ZXJhY3Rpb24NCiAgICAgICAgICAgIGNvbnRlbnQuY3JlYXRlSW50ZXJhY3Rpb24oKTsNCiAgICAgICAgICAgIC8vIERlbGV0ZQ0KICAgICAgICAgICAgaWYgKGRhdGFbImlkLnByb3ZpZGVyIl0gIT0gIi0iKSB7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImRlbGV0ZSIsICJ7ey5idXR0b24uZGVsZXRlfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogc2F2ZVBvcHVwRGF0YSgiaGRociIsICInICsgaWQgKyAnIiwgdHJ1ZSwgMCknKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5jbGFzc05hbWUgPSAiZGVsZXRlIjsNCiAgICAgICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJiYWNrIiwgInt7LmJ1dHRvbi5iYWNrfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJwbGF5bGlzdCIpJyk7DQogICAgICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICAvLyBBYm9ydA0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImNhbmNlbCIsICJ7ey5idXR0b24uY2FuY2VsfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBzaG93RWxlbWVudCgicG9wdXAiLCBmYWxzZSk7Jyk7DQogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIC8vIFVwZGF0ZQ0KICAgICAgICAgICAgaWYgKGRhdGFbImlkLnByb3ZpZGVyIl0gIT0gIi0iKSB7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgInVwZGF0ZSIsICJ7ey5idXR0b24udXBkYXRlfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogc2F2ZVBvcHVwRGF0YSgiaGRociIsICInICsgaWQgKyAnIiwgZmFsc2UsIDEpJyk7DQogICAgICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICAvLyBTYXZlDQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAic2F2ZSIsICJ7ey5idXR0b24uc2F2ZX19Iik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogc2F2ZVBvcHVwRGF0YSgiaGRociIsICInICsgaWQgKyAnIiwgZmFsc2UsIDApJyk7DQogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJmaWx0ZXIiOg0KICAgICAgICAgICAgY29udGVudC5jcmVhdGVIZWFkbGluZShkYXRhVHlwZSk7DQogICAgICAgICAgICAvLyBUeXBlDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAidHlwZSI7DQogICAgICAgICAgICB2YXIgdGV4dCA9IFsiTTNVOiAiICsgInt7LmZpbHRlci50eXBlLmdyb3VwVGl0bGV9fSIsICJ4VGVWZTogIiArICJ7ey5maWx0ZXIudHlwZS5jdXN0b21GaWx0ZXJ9fSJdOw0KICAgICAgICAgICAgdmFyIHZhbHVlcyA9IFsiamF2YXNjcmlwdDogb3BlblBvcFVwKCdncm91cC10aXRsZScpIiwgImphdmFzY3JpcHQ6IG9wZW5Qb3BVcCgnY3VzdG9tLWZpbHRlcicpIl07DQogICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCAiamF2YXNjcmlwdDogb3BlblBvcFVwKCdncm91cC10aXRsZScpIiwgZGJLZXkpOw0KICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgiaWQiLCBpZCk7DQogICAgICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICdqYXZhc2NyaXB0OiBjaGFuZ2VCdXR0b25BY3Rpb24odGhpcywgIm5leHQiLCAib25jbGljayIpOycpOyAvLyBjaGFuZ2VCdXR0b25BY3Rpb24NCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5maWx0ZXIudHlwZS50aXRsZX19Iiwgc2VsZWN0KTsNCiAgICAgICAgICAgIC8vIEludGVyYWN0aW9uDQogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUludGVyYWN0aW9uKCk7DQogICAgICAgICAgICAvLyBBYm9ydA0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImNhbmNlbCIsICJ7ey5idXR0b24uY2FuY2VsfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBzaG93RWxlbWVudCgicG9wdXAiLCBmYWxzZSk7Jyk7DQogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIC8vIE5leHQNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJuZXh0IiwgInt7LmJ1dHRvbi5uZXh0fX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoImdyb3VwLXRpdGxlIiknKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgiaWQiLCAnbmV4dCcpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSAiY3VzdG9tLWZpbHRlciI6DQogICAgICAgIGNhc2UgImdyb3VwLXRpdGxlIjoNCiAgICAgICAgICAgIHN3aXRjaCAoZGF0YVR5cGUpIHsNCiAgICAgICAgICAgICAgICBjYXNlICJjdXN0b20tZmlsdGVyIjoNCiAgICAgICAgICAgICAgICAgICAgY29udGVudC5jcmVhdGVIZWFkbGluZSgie3suZmlsdGVyLmN1c3RvbX19IiArICIgRmlsdGVyIik7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgImdyb3VwLXRpdGxlIjoNCiAgICAgICAgICAgICAgICAgICAgY29udGVudC5jcmVhdGVIZWFkbGluZSgie3suZmlsdGVyLmdyb3VwfX0iICsgIiBGaWx0ZXIiKTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICB9DQogICAgICAgICAgICAvLyBOYW1lICAgICAgDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAibmFtZSI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3suZmlsdGVyLm5hbWUucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LmZpbHRlci5uYW1lLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBEZXNjcmlwdGlvbg0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gImRlc2NyaXB0aW9uIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5maWx0ZXIuZGVzY3JpcHRpb24ucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LmZpbHRlci5kZXNjcmlwdGlvbi50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgLy8gVHlwZQ0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gInR5cGUiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiaGlkZGVuIiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCIiLCBpbnB1dCk7DQogICAgICAgICAgICB2YXIgZmlsdGVyVHlwZSA9IGRhdGFbZGJLZXldOw0KICAgICAgICAgICAgc3dpdGNoIChmaWx0ZXJUeXBlKSB7DQogICAgICAgICAgICAgICAgY2FzZSAiY3VzdG9tLWZpbHRlciI6DQogICAgICAgICAgICAgICAgICAgIC8vIENhc2Ugc2Vuc2l0aXZlDQogICAgICAgICAgICAgICAgICAgIHZhciBkYktleSA9ICJjYXNlU2Vuc2l0aXZlIjsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChkYktleSk7DQogICAgICAgICAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhW2RiS2V5XTsNCiAgICAgICAgICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LmZpbHRlci5jYXNlU2Vuc2l0aXZlLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAgICAgICAgIC8vIEZpbHRlciBSdWxlIChDdXN0b20pDQogICAgICAgICAgICAgICAgICAgIHZhciBkYktleSA9ICJmaWx0ZXIiOw0KICAgICAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5maWx0ZXIuZmlsdGVyUnVsZS5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5maWx0ZXIuZmlsdGVyUnVsZS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBjYXNlICJncm91cC10aXRsZSI6DQogICAgICAgICAgICAgICAgICAgIC8vYWxlcnQoZGJLZXkgKyAiICIgKyBmaWx0ZXJUeXBlKQ0KICAgICAgICAgICAgICAgICAgICAvLyBGaWx0ZXIgYmFzZWQgb24gdGhlIGdyb3VwcyBpbiB0aGUgTTNVDQogICAgICAgICAgICAgICAgICAgIHZhciBkYktleSA9ICJmaWx0ZXIiOw0KICAgICAgICAgICAgICAgICAgICB2YXIgZ3JvdXBzTTNVID0gZ2V0TG9jYWxEYXRhKCJtM3VHcm91cHMiLCAiIik7DQogICAgICAgICAgICAgICAgICAgIHZhciB0ZXh0ID0gZ3JvdXBzTTNVWyJ0ZXh0Il07DQogICAgICAgICAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBncm91cHNNM1VbInZhbHVlIl07DQogICAgICAgICAgICAgICAgICAgIHZhciBzZWxlY3QgPSBjb250ZW50LmNyZWF0ZVNlbGVjdCh0ZXh0LCB2YWx1ZXMsIGRhdGFbZGJLZXldLCBkYktleSk7DQogICAgICAgICAgICAgICAgICAgIHNlbGVjdC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5maWx0ZXIuZmlsdGVyR3JvdXAudGl0bGV9fSIsIHNlbGVjdCk7DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuZGVzY3JpcHRpb24oInt7LmZpbHRlci5maWx0ZXJHcm91cC5kZXNjcmlwdGlvbn19Iik7DQogICAgICAgICAgICAgICAgICAgIC8vIENhc2Ugc2Vuc2V0aXZlDQogICAgICAgICAgICAgICAgICAgIHZhciBkYktleSA9ICJjYXNlU2Vuc2l0aXZlIjsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChkYktleSk7DQogICAgICAgICAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhW2RiS2V5XTsNCiAgICAgICAgICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LmZpbHRlci5jYXNlU2Vuc2l0aXZlLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAgICAgICAgIHZhciBkYktleSA9ICJpbmNsdWRlIjsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3suZmlsdGVyLmluY2x1ZGUucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3suZmlsdGVyLmluY2x1ZGUudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgICAgICAgICAgY29udGVudC5kZXNjcmlwdGlvbigie3suZmlsdGVyLmluY2x1ZGUuZGVzY3JpcHRpb259fSIpOw0KICAgICAgICAgICAgICAgICAgICB2YXIgZGJLZXkgPSAiZXhjbHVkZSI7DQogICAgICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LmZpbHRlci5leGNsdWRlLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LmZpbHRlci5leGNsdWRlLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuZGVzY3JpcHRpb24oInt7LmZpbHRlci5leGNsdWRlLmRlc2NyaXB0aW9ufX0iKTsNCiAgICAgICAgICAgICAgICAgICAgLy8gUHJlc2VydmUgTTNVIFBsYXlsaXN0IENoYW5uZWwgTWFwcGluZw0KICAgICAgICAgICAgICAgICAgICB2YXIgZGJLZXkgPSAicHJlc2VydmVNYXBwaW5nIjsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChkYktleSk7DQogICAgICAgICAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhW2RiS2V5XTsNCiAgICAgICAgICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LmZpbHRlci5wcmVzZXJ2ZU1hcHBpbmcudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgICAgICAgICAgLy8gU3RhcnRpbmcgQ2hhbm5lbCBOdW1iZXIgTWFwcGluZw0KICAgICAgICAgICAgICAgICAgICB2YXIgZGJLZXkgPSAic3RhcnRpbmdDaGFubmVsIjsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3suZmlsdGVyLnN0YXJ0aW5nQ2hhbm5lbC5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5maWx0ZXIuc3RhcnRpbmdDaGFubmVsLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAgICAgICAgIC8vIEZpbGwgTWlzc2luZyBFUEcgRGF0YQ0KICAgICAgICAgICAgICAgICAgICAvLyBUaGUgZm9sbG93aW5nIGNvZGUgb25seSB3b3JrcyB3aGVuIHhUZVZlIER1bW15IGFscmVhZHkgZXhpc3RzDQogICAgICAgICAgICAgICAgICAgIC8vIHZhciBkYktleTpzdHJpbmcgPSAiZGVmYXVsdE1pc3NpbmdFUEciDQogICAgICAgICAgICAgICAgICAgIC8vIHZhciB4bWx0djpYTUxUVkZpbGUgPSBuZXcgWE1MVFZGaWxlKCkNCiAgICAgICAgICAgICAgICAgICAgLy8gdmFyIHNlbGVjdCA9IHhtbHR2LmdldFByb2dyYW1zKCJ4VGVWZSBEdW1teSIsIGRhdGFbZGJLZXldKQ0KICAgICAgICAgICAgICAgICAgICAvLyBzZWxlY3Quc2V0QXR0cmlidXRlKCJuYW1lIiwgZGJLZXkpDQogICAgICAgICAgICAgICAgICAgIC8vIHNlbGVjdC5zZXRBdHRyaWJ1dGUoImlkIiwgInBvcHVwLW1pc3NpbmctZXBnIikNCiAgICAgICAgICAgICAgICAgICAgLy8gVGhlIHdvcmthcm91bmQgaXMgY3VycmVudGx5IHRvIGhhcmQgY29kZSB0aGUgeFRlVmUgRHVtbXkgZGF0YQ0KICAgICAgICAgICAgICAgICAgICB2YXIgZGJLZXkgPSAiZGVmYXVsdE1pc3NpbmdFUEciOw0KICAgICAgICAgICAgICAgICAgICB2YXIgbGlzdE9wdGlvbnMgPSB7ICJ0ZXh0IjogWyItIiwgIjMwIE1pbnV0ZXMgKDMwX01pbnV0ZXMpIiwgIjYwIE1pbnV0ZXMgKDYwX01pbnV0ZXMpIiwgIjkwIE1pbnV0ZXMgKDkwX01pbnV0ZXMpIiwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAiMTIwIE1pbnV0ZXMgKDEyMF9NaW51dGVzKSIsICIxODAgTWludXRlcyAoMzBfTWludXRlcykiLCAiMjQwIE1pbnV0ZXMgKDMwX01pbnV0ZXMpIiwgIjM2MCBNaW51dGVzICgzMF9NaW51dGVzKSJdLA0KICAgICAgICAgICAgICAgICAgICAgICAgInZhbHVlIjogWyItIiwgIjMwX01pbnV0ZXMiLCAiNjBfTWludXRlcyIsICI5MF9NaW51dGVzIiwgIjEyMF9NaW51dGVzIiwgIjE4MF9NaW51dGVzIiwgIjI0MF9NaW51dGVzIiwgIjM2MF9NaW51dGVzIixdIH07DQogICAgICAgICAgICAgICAgICAgIHZhciB0ZXh0ID0gbGlzdE9wdGlvbnNbInRleHQiXTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHZhbHVlcyA9IGxpc3RPcHRpb25zWyJ2YWx1ZSJdOw0KICAgICAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCBkYXRhW2RiS2V5XSwgZGJLZXkpOw0KICAgICAgICAgICAgICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3suZmlsdGVyLmRlZmF1bHRNaXNzaW5nRVBHLnRpdGxlfX0iLCBzZWxlY3QpOw0KICAgICAgICAgICAgICAgICAgICBjb250ZW50LmRlc2NyaXB0aW9uKCJ7ey5maWx0ZXIuZGVmYXVsdE1pc3NpbmdFUEcuZGVzY3JpcHRpb259fSIpOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBkZWZhdWx0Og0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIC8vIEludGVyYWN0aW9uDQogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUludGVyYWN0aW9uKCk7DQogICAgICAgICAgICAvLyBEZWxldGUNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJkZWxldGUiLCAie3suYnV0dG9uLmRlbGV0ZX19Iik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogc2F2ZVBvcHVwRGF0YSgiZmlsdGVyIiwgIicgKyBpZCArICciLCB0cnVlLCAwKScpOw0KICAgICAgICAgICAgaW5wdXQuY2xhc3NOYW1lID0gImRlbGV0ZSI7DQogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIC8vIEFib3J0DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAiY2FuY2VsIiwgInt7LmJ1dHRvbi5jYW5jZWx9fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IHNob3dFbGVtZW50KCJwb3B1cCIsIGZhbHNlKTsnKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgLy8gU2F2ZQ0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgInNhdmUiLCAie3suYnV0dG9uLnNhdmV9fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoImZpbHRlciIsICInICsgaWQgKyAnIiwgZmFsc2UsIDApJyk7DQogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJ4bWx0diI6DQogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUhlYWRsaW5lKGRhdGFUeXBlKTsNCiAgICAgICAgICAgIC8vIE5hbWUNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJuYW1lIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey54bWx0di5uYW1lLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey54bWx0di5uYW1lLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBEZXNjcmlwdGlvbg0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gImRlc2NyaXB0aW9uIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey54bWx0di5kZXNjcmlwdGlvbi5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sueG1sdHYuZGVzY3JpcHRpb24udGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIFVSTA0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gImZpbGUuc291cmNlIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey54bWx0di5maWxlWE1MVFYucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnhtbHR2LmZpbGVYTUxUVi50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgLy8gSW50ZXJhY3Rpb24NCiAgICAgICAgICAgIGNvbnRlbnQuY3JlYXRlSW50ZXJhY3Rpb24oKTsNCiAgICAgICAgICAgIC8vIERlbGV0ZQ0KICAgICAgICAgICAgaWYgKGRhdGFbImlkLnByb3ZpZGVyIl0gIT0gIi0iKSB7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImRlbGV0ZSIsICJ7ey5idXR0b24uZGVsZXRlfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogc2F2ZVBvcHVwRGF0YSgieG1sdHYiLCAiJyArIGlkICsgJyIsIHRydWUsIDApJyk7DQogICAgICAgICAgICAgICAgaW5wdXQuY2xhc3NOYW1lID0gImRlbGV0ZSI7DQogICAgICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICAvLyBBYm9ydA0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImNhbmNlbCIsICJ7ey5idXR0b24uY2FuY2VsfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBzaG93RWxlbWVudCgicG9wdXAiLCBmYWxzZSk7Jyk7DQogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIC8vIFVwZGF0ZQ0KICAgICAgICAgICAgaWYgKGRhdGFbImlkLnByb3ZpZGVyIl0gIT0gIi0iKSB7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgInVwZGF0ZSIsICJ7ey5idXR0b24udXBkYXRlfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogc2F2ZVBvcHVwRGF0YSgieG1sdHYiLCAiJyArIGlkICsgJyIsIGZhbHNlLCAxKScpOw0KICAgICAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgLy8gU2F2ZQ0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgInNhdmUiLCAie3suYnV0dG9uLnNhdmV9fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoInhtbHR2IiwgIicgKyBpZCArICciLCBmYWxzZSwgMCknKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGNhc2UgInVzZXJzIjoNCiAgICAgICAgICAgIGNvbnRlbnQuY3JlYXRlSGVhZGxpbmUoInt7Lm1haW5NZW51Lml0ZW0udXNlcnN9fSIpOw0KICAgICAgICAgICAgLy8gVXNlciBuYW1lDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAidXNlcm5hbWUiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnVzZXJzLnVzZXJuYW1lLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey51c2Vycy51c2VybmFtZS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgLy8gTmV3IFBhcnNzd29yZA0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gInBhc3N3b3JkIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInBhc3N3b3JkIiwgZGJLZXksICIiKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3sudXNlcnMucGFzc3dvcmQucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnVzZXJzLnBhc3N3b3JkLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBDb25maXJtYXRpb24NCiAgICAgICAgICAgIHZhciBkYktleSA9ICJjb25maXJtIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInBhc3N3b3JkIiwgZGJLZXksICIiKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3sudXNlcnMuY29uZmlybS5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sudXNlcnMuY29uZmlybS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgLy8gQXV0aGVudGljYXRpb24gV0VCDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAiYXV0aGVudGljYXRpb24ud2ViIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goZGJLZXkpOw0KICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGFbZGJLZXldOw0KICAgICAgICAgICAgaWYgKGRhdGFbImRlZmF1bHRVc2VyIl0gPT0gdHJ1ZSkgew0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICJqYXZhc2NyaXB0OiByZXR1cm4gZmFsc2UiKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey51c2Vycy53ZWIudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIEF1dGhlbnRpY2F0aW9uIFBNUw0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gImF1dGhlbnRpY2F0aW9uLnBtcyI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KGRiS2V5KTsNCiAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhW2RiS2V5XTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey51c2Vycy5wbXMudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIEF1dGhlbnRpY2F0aW9uIE0zVQ0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gImF1dGhlbnRpY2F0aW9uLm0zdSI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KGRiS2V5KTsNCiAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhW2RiS2V5XTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey51c2Vycy5tM3UudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIEF1dGhlbnRpY2F0aW9uIFhNTA0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gImF1dGhlbnRpY2F0aW9uLnhtbCI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KGRiS2V5KTsNCiAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhW2RiS2V5XTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey51c2Vycy54bWwudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIEF1dGhlbnRpY2F0aW9uIEFQSQ0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gImF1dGhlbnRpY2F0aW9uLmFwaSI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KGRiS2V5KTsNCiAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhW2RiS2V5XTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey51c2Vycy5hcGkudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIEludGVyYWN0aW9uDQogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUludGVyYWN0aW9uKCk7DQogICAgICAgICAgICAvLyBEZWxldGUNCiAgICAgICAgICAgIGlmIChkYXRhWyJkZWZhdWx0VXNlciJdICE9IHRydWUgJiYgaWQgIT0gIi0iKSB7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImRlbGV0ZSIsICJ7ey5idXR0b24uZGVsZXRlfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5jbGFzc05hbWUgPSAiZGVsZXRlIjsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogc2F2ZVBvcHVwRGF0YSgiJyArIGRhdGFUeXBlICsgJyIsICInICsgaWQgKyAnIiwgdHJ1ZSwgMCknKTsNCiAgICAgICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIC8vIEFib3J0DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAiY2FuY2VsIiwgInt7LmJ1dHRvbi5jYW5jZWx9fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IHNob3dFbGVtZW50KCJwb3B1cCIsIGZhbHNlKTsnKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgLy8gU2F2ZQ0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgInNhdmUiLCAie3suYnV0dG9uLnNhdmV9fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoIicgKyBkYXRhVHlwZSArICciLCAiJyArIGlkICsgJyIsICJmYWxzZSIpOycpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSAibWFwcGluZyI6DQogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUhlYWRsaW5lKCJ7ey5tYWluTWVudS5pdGVtLm1hcHBpbmd9fSIpOw0KICAgICAgICAgICAgLy8gQWN0aXZlDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAieC1hY3RpdmUiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChkYktleSk7DQogICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YVtkYktleV07DQogICAgICAgICAgICBpbnB1dC5pZCA9ICJhY3RpdmUiOw0KICAgICAgICAgICAgLy9pbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIikNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdG9nZ2xlQ2hhbm5lbFN0YXR1cygnIiArIGlkICsgIicsIHRoaXMpIik7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3subWFwcGluZy5hY3RpdmUudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIENoYW5uZWwgbmFtZQ0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gIngtbmFtZSI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgIGlmIChCVUxLX0VESVQgPT0gdHJ1ZSkgew0KICAgICAgICAgICAgICAgIGlucHV0LnN0eWxlLmJvcmRlciA9ICJzb2xpZCAxcHggcmVkIjsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInJlYWRvbmx5IiwgInRydWUiKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5tYXBwaW5nLmNoYW5uZWxOYW1lLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICBjb250ZW50LmRlc2NyaXB0aW9uKGRhdGFbIm5hbWUiXSk7DQogICAgICAgICAgICAvLyBEZXNjcmlwdGlvbg0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gIngtZGVzY3JpcHRpb24iOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7Lm1hcHBpbmcuZGVzY3JpcHRpb24ucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7Lm1hcHBpbmcuZGVzY3JpcHRpb24udGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIFVwZGF0ZSB0aGUgY2hhbm5lbCBuYW1lDQogICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgiX3V1aWQua2V5IikpIHsNCiAgICAgICAgICAgICAgICBpZiAoZGF0YVsiX3V1aWQua2V5Il0gIT0gIiIpIHsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGRiS2V5ID0gIngtdXBkYXRlLWNoYW5uZWwtbmFtZSI7DQogICAgICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goZGJLZXkpOw0KICAgICAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhW2RiS2V5XTsNCiAgICAgICAgICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7Lm1hcHBpbmcudXBkYXRlQ2hhbm5lbE5hbWUudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9DQogICAgICAgICAgICAvLyBMb2dvIFVSTCAoQ2hhbm5lbCkgDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAidHZnLWxvZ28iOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoImlkIiwgImNoYW5uZWwtaWNvbiIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7Lm1hcHBpbmcuY2hhbm5lbExvZ28udGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIENoYW5uZWwgbG9nbyB1cGRhdGUNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJ4LXVwZGF0ZS1jaGFubmVsLWljb24iOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChkYktleSk7DQogICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YVtkYktleV07DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoImlkIiwgInVwZGF0ZS1pY29uIik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnOyBjaGFuZ2VDaGFubmVsTG9nbygnIiArIGlkICsgIicpOyIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7Lm1hcHBpbmcudXBkYXRlQ2hhbm5lbExvZ28udGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIEV4cGFuZCBFUEcgY2F0ZWdvcnkNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJ4LWNhdGVnb3J5IjsNCiAgICAgICAgICAgIHZhciB0ZXh0ID0gWyItIiwgIktpZHMgKEVtYnkgb25seSkiLCAiTmV3cyIsICJNb3ZpZSIsICJTZXJpZXMiLCAiU3BvcnRzIl07DQogICAgICAgICAgICB2YXIgdmFsdWVzID0gWyIiLCAiS2lkcyIsICJOZXdzIiwgIk1vdmllIiwgIlNlcmllcyIsICJTcG9ydHMiXTsNCiAgICAgICAgICAgIHZhciBzZWxlY3QgPSBjb250ZW50LmNyZWF0ZVNlbGVjdCh0ZXh0LCB2YWx1ZXMsIGRhdGFbZGJLZXldLCBkYktleSk7DQogICAgICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7Lm1hcHBpbmcuZXBnQ2F0ZWdvcnkudGl0bGV9fSIsIHNlbGVjdCk7DQogICAgICAgICAgICAvLyBNM1UgZ3JvdXAgdGl0bGUNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJ4LWdyb3VwLXRpdGxlIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgaW5wdXQuZGF0YXNldC5vbGRWYWx1ZSA9IGRhdGFbZGJLZXldOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7Lm1hcHBpbmcubTN1R3JvdXBUaXRsZS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgaWYgKGRhdGFbImdyb3VwLXRpdGxlIl0gIT0gdW5kZWZpbmVkKSB7DQogICAgICAgICAgICAgICAgY29udGVudC5kZXNjcmlwdGlvbihkYXRhWyJncm91cC10aXRsZSJdKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGlmIChkYXRhWyJ4LXVwZGF0ZS1jaGFubmVsLWdyb3VwIl0gPT0gdHJ1ZSkgew0KICAgICAgICAgICAgICAgIGlucHV0LmRpc2FibGVkID0gdHJ1ZTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIC8vIFVwZGF0ZSBjaGFubmVsIGdyb3VwIGNoZWNrYm94DQogICAgICAgICAgICB2YXIgZGJLZXkgPSAieC11cGRhdGUtY2hhbm5lbC1ncm91cCI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KGRiS2V5KTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdG9nZ2xlR3JvdXBVcGRhdGVDYignIiArIGlkICsgIicsIHRoaXMpOyIpOw0KICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGFbZGJLZXldOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7Lm1hcHBpbmcudXBkYXRlQ2hhbm5lbEdyb3VwLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICBjb250ZW50LmRlc2NyaXB0aW9uKCJ7ey5tYXBwaW5nLnVwZGF0ZUNoYW5uZWxHcm91cC5kZXNjcmlwdGlvbn19Iik7DQogICAgICAgICAgICAvLyBYTUxUViBmaWxlDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAieC14bWx0di1maWxlIjsNCiAgICAgICAgICAgIHZhciB4bWxGaWxlID0gZGF0YVtkYktleV07DQogICAgICAgICAgICB2YXIgeG1sdHYgPSBuZXcgWE1MVFZGaWxlKCk7DQogICAgICAgICAgICB2YXIgc2VsZWN0ID0geG1sdHYuZ2V0RmlsZXMoZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgibmFtZSIsIGRiS2V5KTsNCiAgICAgICAgICAgIHNlbGVjdC5zZXRBdHRyaWJ1dGUoImlkIiwgInBvcHVwLXhtbHR2Iik7DQogICAgICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJzsgc2V0WG1sdHZDaGFubmVsKCciICsgaWQgKyAiJyx0aGlzKTsiKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5tYXBwaW5nLnhtbHR2RmlsZS50aXRsZX19Iiwgc2VsZWN0KTsNCiAgICAgICAgICAgIHZhciBmaWxlID0gZGF0YVtkYktleV07DQogICAgICAgICAgICAvLyBYTUxUViBNYXBwaW5nDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAieC1tYXBwaW5nIjsNCiAgICAgICAgICAgIHZhciB4bWx0diA9IG5ldyBYTUxUVkZpbGUoKTsNCiAgICAgICAgICAgIHZhciBzZWxlY3QgPSB4bWx0di5nZXRQcm9ncmFtcyhmaWxlLCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJuYW1lIiwgZGJLZXkpOw0KICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgiaWQiLCAicG9wdXAtbWFwcGluZyIpOw0KICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCc7IGNoZWNrWG1sdHZDaGFubmVsKCciICsgaWQgKyAiJyx0aGlzLCciICsgeG1sRmlsZSArICInKTsiKTsNCiAgICAgICAgICAgIHNvcnRTZWxlY3Qoc2VsZWN0KTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5tYXBwaW5nLnhtbHR2Q2hhbm5lbC50aXRsZX19Iiwgc2VsZWN0KTsNCiAgICAgICAgICAgIC8vIFRpbWVzaGlmdA0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gIngtdGltZXNoaWZ0IjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5tYXBwaW5nLnRpbWVzaGlmdC5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoImlkIiwgInRpbWVzaGlmdCIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7Lm1hcHBpbmcudGltZXNoaWZ0LnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBJbnRlcmFjdGlvbg0KICAgICAgICAgICAgY29udGVudC5jcmVhdGVJbnRlcmFjdGlvbigpOw0KICAgICAgICAgICAgLy8gVXBsb2FkIGxvZ28NCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJjYW5jZWwiLCAie3suYnV0dG9uLnVwbG9hZExvZ299fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IHVwbG9hZExvZ28oKTsnKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgLy8gQWJvcnQNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJjYW5jZWwiLCAie3suYnV0dG9uLmNhbmNlbH19Iik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogc2hvd0VsZW1lbnQoInBvcHVwIiwgZmFsc2UpOycpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICAvLyBGaW5pc2hlZA0KICAgICAgICAgICAgdmFyIGlkcyA9IFtdOw0KICAgICAgICAgICAgaWRzID0gZ2V0QWxsU2VsZWN0ZWRDaGFubmVscygpOw0KICAgICAgICAgICAgaWYgKGlkcy5sZW5ndGggPT0gMCkgew0KICAgICAgICAgICAgICAgIGlkcy5wdXNoKGlkKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJzYXZlIiwgInt7LmJ1dHRvbi5kb25lfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBkb25lUG9wdXBEYXRhKCInICsgZGF0YVR5cGUgKyAnIiwgIicgKyBpZHMgKyAnIiwgImZhbHNlIik7Jyk7DQogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBkZWZhdWx0Og0KICAgICAgICAgICAgYnJlYWs7DQogICAgfQ0KICAgIHNob3dQb3BVcEVsZW1lbnQoJ3BvcHVwLWN1c3RvbScpOw0KfQ0KY2xhc3MgWE1MVFZGaWxlIHsNCiAgICBnZXRGaWxlcyhzZXQpIHsNCiAgICAgICAgbGV0IGZpbGVJRHMgPSBnZXRPYmpLZXlzKFNFUlZFUlsieGVwZyJdWyJ4bWx0dk1hcCJdKTsNCiAgICAgICAgbGV0IHZhbHVlcyA9IG5ldyBBcnJheSgiLSIpOw0KICAgICAgICBsZXQgdGV4dCA9IG5ldyBBcnJheSgiLSIpOw0KICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGZpbGVJRHMubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgICAgIGlmIChmaWxlSURzW2ldICE9ICJ4VGVWZSBEdW1teSIpIHsNCiAgICAgICAgICAgICAgICB2YWx1ZXMucHVzaChnZXRWYWx1ZUZyb21Qcm92aWRlckZpbGUoZmlsZUlEc1tpXSwgInhtbHR2IiwgImZpbGUueHRldmUiKSk7DQogICAgICAgICAgICAgICAgdGV4dC5wdXNoKGdldFZhbHVlRnJvbVByb3ZpZGVyRmlsZShmaWxlSURzW2ldLCAieG1sdHYiLCAibmFtZSIpKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgICAgIHZhbHVlcy5wdXNoKGZpbGVJRHNbaV0pOw0KICAgICAgICAgICAgICAgIHRleHQucHVzaChmaWxlSURzW2ldKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KICAgICAgICBsZXQgc2VsZWN0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiU0VMRUNUIik7DQogICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGV4dC5sZW5ndGg7IGkrKykgew0KICAgICAgICAgICAgdmFyIG9wdGlvbiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIk9QVElPTiIpOw0KICAgICAgICAgICAgb3B0aW9uLnNldEF0dHJpYnV0ZSgidmFsdWUiLCB2YWx1ZXNbaV0pOw0KICAgICAgICAgICAgb3B0aW9uLmlubmVyVGV4dCA9IHRleHRbaV07DQogICAgICAgICAgICBzZWxlY3QuYXBwZW5kQ2hpbGQob3B0aW9uKTsNCiAgICAgICAgfQ0KICAgICAgICBpZiAoc2V0ICE9ICIiKSB7DQogICAgICAgICAgICBzZWxlY3QudmFsdWUgPSBzZXQ7DQogICAgICAgIH0NCiAgICAgICAgcmV0dXJuIHNlbGVjdDsNCiAgICB9DQogICAgZ2V0UHJvZ3JhbXMoZmlsZSwgc2V0KSB7DQogICAgICAgIC8vdmFyIGZpbGVJRHM6c3RyaW5nW10gPSBnZXRPYmpLZXlzKFNFUlZFUlsieGVwZyJdWyJ4bWx0dk1hcCJdKQ0KICAgICAgICBsZXQgdmFsdWVzID0gZ2V0T2JqS2V5cyhTRVJWRVJbInhlcGciXVsieG1sdHZNYXAiXVtmaWxlXSk7DQogICAgICAgIGxldCB0ZXh0ID0gW107DQogICAgICAgIGxldCBmcmllbmRseU5hbWU7DQogICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdmFsdWVzLmxlbmd0aDsgaSsrKSB7DQogICAgICAgICAgICBpZiAoU0VSVkVSWyJ4ZXBnIl1bInhtbHR2TWFwIl1bZmlsZV1bdmFsdWVzW2ldXS5oYXNPd25Qcm9wZXJ0eSgnZnJpZW5kbHktbmFtZScpID09IHRydWUpIHsNCiAgICAgICAgICAgICAgICBmcmllbmRseU5hbWUgPSBTRVJWRVJbInhlcGciXVsieG1sdHZNYXAiXVtmaWxlXVt2YWx1ZXNbaV1dWyJmcmllbmRseS1uYW1lIl07DQogICAgICAgICAgICB9DQogICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICBmcmllbmRseU5hbWUgPSAiLSI7DQogICAgICAgICAgICB9DQogICAgICAgICAgICB0ZXh0W2ldID0gZnJpZW5kbHlOYW1lICsgIiAoIiArIHZhbHVlc1tpXSArICIpIjsNCiAgICAgICAgfQ0KICAgICAgICB0ZXh0LnVuc2hpZnQoIi0iKTsNCiAgICAgICAgdmFsdWVzLnVuc2hpZnQoIi0iKTsNCiAgICAgICAgbGV0IHNlbGVjdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlNFTEVDVCIpOw0KICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRleHQubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgICAgIHZhciBvcHRpb24gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJPUFRJT04iKTsNCiAgICAgICAgICAgIG9wdGlvbi5zZXRBdHRyaWJ1dGUoInZhbHVlIiwgdmFsdWVzW2ldKTsNCiAgICAgICAgICAgIG9wdGlvbi5pbm5lclRleHQgPSB0ZXh0W2ldOw0KICAgICAgICAgICAgc2VsZWN0LmFwcGVuZENoaWxkKG9wdGlvbik7DQogICAgICAgIH0NCiAgICAgICAgaWYgKHNldCAhPSAiIikgew0KICAgICAgICAgICAgc2VsZWN0LnZhbHVlID0gc2V0Ow0KICAgICAgICB9DQogICAgICAgIGlmIChzZWxlY3QudmFsdWUgIT0gc2V0KSB7DQogICAgICAgICAgICBzZWxlY3QudmFsdWUgPSAiLSI7DQogICAgICAgIH0NCiAgICAgICAgcmV0dXJuIHNlbGVjdDsNCiAgICB9DQp9DQpmdW5jdGlvbiBnZXRWYWx1ZUZyb21Qcm92aWRlckZpbGUoZmlsZSwgZmlsZVR5cGUsIGtleSkgew0KICAgIGlmIChmaWxlID09ICJ4VGVWZSBEdW1teSIpIHsNCiAgICAgICAgcmV0dXJuIGZpbGU7DQogICAgfQ0KICAgIGxldCBmaWxlSUQ7DQogICAgbGV0IGluZGljYXRvciA9IGZpbGUuY2hhckF0KDApOw0KICAgIHN3aXRjaCAoaW5kaWNhdG9yKSB7DQogICAgICAgIGNhc2UgIk0iOg0KICAgICAgICAgICAgZmlsZVR5cGUgPSAibTN1IjsNCiAgICAgICAgICAgIGZpbGVJRCA9IGZpbGU7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSAiSCI6DQogICAgICAgICAgICBmaWxlVHlwZSA9ICJoZGhyIjsNCiAgICAgICAgICAgIGZpbGVJRCA9IGZpbGU7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSAiWCI6DQogICAgICAgICAgICBmaWxlVHlwZSA9ICJ4bWx0diI7DQogICAgICAgICAgICBmaWxlSUQgPSBmaWxlLnN1YnN0cmluZygwLCBmaWxlLmxhc3RJbmRleE9mKCcuJykpOw0KICAgICAgICAgICAgYnJlYWs7DQogICAgfQ0KICAgIGlmIChTRVJWRVJbInNldHRpbmdzIl1bImZpbGVzIl1bZmlsZVR5cGVdLmhhc093blByb3BlcnR5KGZpbGVJRCkgPT0gdHJ1ZSkgew0KICAgICAgICB2YXIgZGF0YSA9IFNFUlZFUlsic2V0dGluZ3MiXVsiZmlsZXMiXVtmaWxlVHlwZV1bZmlsZUlEXTsNCiAgICAgICAgcmV0dXJuIGRhdGFba2V5XTsNCiAgICB9DQogICAgcmV0dXJuOw0KfQ0KZnVuY3Rpb24gc2V0WG1sdHZDaGFubmVsKGlkLCBlbGVtZW50KSB7DQogICAgbGV0IHhtbHR2ID0gbmV3IFhNTFRWRmlsZSgpOw0KICAgIGxldCB4bWxGaWxlID0gZWxlbWVudC52YWx1ZTsNCiAgICBsZXQgdHZnSWQgPSBTRVJWRVJbInhlcGciXVsiZXBnTWFwcGluZyJdW2lkXVsidHZnLWlkIl07DQogICAgbGV0IHRkID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInBvcHVwLW1hcHBpbmciKS5wYXJlbnRFbGVtZW50Ow0KICAgIHRkLmlubmVySFRNTCA9ICIiOw0KICAgIGxldCBzZWxlY3QgPSB4bWx0di5nZXRQcm9ncmFtcyhlbGVtZW50LnZhbHVlLCB0dmdJZCk7DQogICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgibmFtZSIsICJ4LW1hcHBpbmciKTsNCiAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJpZCIsICJwb3B1cC1tYXBwaW5nIik7DQogICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCc7IGNoZWNrWG1sdHZDaGFubmVsKCciICsgaWQgKyAiJyx0aGlzLCciICsgeG1sRmlsZSArICInKTsiKTsNCiAgICBzZWxlY3QuY2xhc3NOYW1lID0gImNoYW5nZWQiOw0KICAgIHNvcnRTZWxlY3Qoc2VsZWN0KTsNCiAgICB0ZC5hcHBlbmRDaGlsZChzZWxlY3QpOw0KICAgIGNoZWNrWG1sdHZDaGFubmVsKGlkLCBzZWxlY3QsIHhtbEZpbGUpOw0KfQ0KZnVuY3Rpb24gY2hlY2tYbWx0dkNoYW5uZWwoaWQsIGVsZW1lbnQsIHhtbEZpbGUpIHsNCiAgICBsZXQgdmFsdWUgPSBlbGVtZW50LnZhbHVlOw0KICAgIGxldCBib29sOw0KICAgIGxldCBjaGVja2JveCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdhY3RpdmUnKTsNCiAgICBsZXQgY2hhbm5lbCA9IFNFUlZFUlsieGVwZyJdWyJlcGdNYXBwaW5nIl1baWRdOw0KICAgIGxldCB1cGRhdGVMb2dvOw0KICAgIGJvb2wgPSB2YWx1ZSAhPSAiLSI7DQogICAgY2hlY2tib3guY2hlY2tlZCA9IGJvb2w7DQogICAgY2hlY2tib3guY2xhc3NOYW1lID0gImNoYW5nZWQiOw0KICAgIGNvbnNvbGUubG9nKHhtbEZpbGUpOw0KICAgIC8vIFVwZGF0ZSBjaGFubmVsIGxvZ28NCiAgICAvKg0KICAgIHVwZGF0ZUxvZ28gPSAoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInVwZGF0ZS1pY29uIikgYXMgSFRNTElucHV0RWxlbWVudCkuY2hlY2tlZA0KICAgIGNvbnNvbGUubG9nKHVwZGF0ZUxvZ28pOw0KICAgICovDQogICAgaWYgKHhtbEZpbGUgIT0gInhUZVZlIER1bW15IiAmJiBib29sID09IHRydWUpIHsNCiAgICAgICAgLy8oZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInVwZGF0ZS1pY29uIikgYXMgSFRNTElucHV0RWxlbWVudCkuY2hlY2tlZCA9IHRydWU7DQogICAgICAgIC8vKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ1cGRhdGUtaWNvbiIpIGFzIEhUTUxJbnB1dEVsZW1lbnQpLmNsYXNzTmFtZSA9ICJjaGFuZ2VkIjsNCiAgICAgICAgY29uc29sZS5sb2coIklEIiwgaWQpOw0KICAgICAgICBjaGFuZ2VDaGFubmVsTG9nbyhpZCk7DQogICAgICAgIHJldHVybjsNCiAgICB9DQogICAgaWYgKHhtbEZpbGUgPT0gInhUZVZlIER1bW15Iikgew0KICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidXBkYXRlLWljb24iKS5jaGVja2VkID0gZmFsc2U7DQogICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ1cGRhdGUtaWNvbiIpLmNsYXNzTmFtZSA9ICJjaGFuZ2VkIjsNCiAgICB9DQogICAgcmV0dXJuOw0KfQ0KZnVuY3Rpb24gY2hhbmdlQ2hhbm5lbExvZ28oaWQpIHsNCiAgICBsZXQgdXBkYXRlTG9nbzsNCiAgICBsZXQgY2hhbm5lbCA9IFNFUlZFUlsieGVwZyJdWyJlcGdNYXBwaW5nIl1baWRdOw0KICAgIGxldCBmID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInBvcHVwLXhtbHR2Iik7DQogICAgbGV0IHhtbHR2RmlsZSA9IGYub3B0aW9uc1tmLnNlbGVjdGVkSW5kZXhdLnZhbHVlOw0KICAgIGxldCBtID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInBvcHVwLW1hcHBpbmciKTsNCiAgICBsZXQgeE1hcHBpbmcgPSBtLm9wdGlvbnNbbS5zZWxlY3RlZEluZGV4XS52YWx1ZTsNCiAgICBsZXQgeG1sdHZMb2dvID0gU0VSVkVSWyJ4ZXBnIl1bInhtbHR2TWFwIl1beG1sdHZGaWxlXVt4TWFwcGluZ11bImljb24iXTsNCiAgICB1cGRhdGVMb2dvID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInVwZGF0ZS1pY29uIikuY2hlY2tlZDsNCiAgICBpZiAodXBkYXRlTG9nbyA9PSB0cnVlICYmIHhtbHR2RmlsZSAhPSAieFRlVmUgRHVtbXkiKSB7DQogICAgICAgIGlmIChTRVJWRVJbInhlcGciXVsieG1sdHZNYXAiXVt4bWx0dkZpbGVdLmhhc093blByb3BlcnR5KHhNYXBwaW5nKSkgew0KICAgICAgICAgICAgdmFyIGxvZ28gPSB4bWx0dkxvZ287DQogICAgICAgIH0NCiAgICAgICAgZWxzZSB7DQogICAgICAgICAgICBsb2dvID0gY2hhbm5lbFsidHZnLWxvZ28iXTsNCiAgICAgICAgfQ0KICAgICAgICB2YXIgbG9nb0lucHV0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNoYW5uZWwtaWNvbiIpOw0KICAgICAgICBsb2dvSW5wdXQudmFsdWUgPSBsb2dvOw0KICAgICAgICBpZiAoQlVMS19FRElUID09IGZhbHNlKSB7DQogICAgICAgICAgICBsb2dvSW5wdXQuY2xhc3NOYW1lID0gImNoYW5nZWQiOw0KICAgICAgICB9DQogICAgfQ0KfQ0KZnVuY3Rpb24gc2F2ZVBvcHVwRGF0YShkYXRhVHlwZSwgaWQsIHJlbW92ZSwgb3B0aW9uKSB7DQogICAgaWYgKGRhdGFUeXBlID09ICJtYXBwaW5nIikgew0KICAgICAgICBsZXQgZGF0YSA9IHt9Ow0KICAgICAgICBjb25zb2xlLmxvZygiU2F2ZSBtYXBwaW5nIGRhdGEiKTsNCiAgICAgICAgbGV0IGNtZCA9ICJzYXZlRXBnTWFwcGluZyI7DQogICAgICAgIGRhdGFbImVwZ01hcHBpbmciXSA9IFNFUlZFUlsieGVwZyJdWyJlcGdNYXBwaW5nIl07DQogICAgICAgIGNvbnNvbGUubG9nKCJTRU5EIFRPIFNFUlZFUiIpOw0KICAgICAgICBsZXQgc2VydmVyID0gbmV3IFNlcnZlcihjbWQpOw0KICAgICAgICBzZXJ2ZXIucmVxdWVzdChkYXRhKTsNCiAgICAgICAgZGVsZXRlIFVORE9bImVwZ01hcHBpbmciXTsNCiAgICAgICAgcmV0dXJuOw0KICAgIH0NCiAgICBjb25zb2xlLmxvZygiU2F2ZSBwb3B1cCBkYXRhIik7DQogICAgbGV0IGRpdiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJwb3B1cC1jdXN0b20iKTsNCiAgICBsZXQgaW5wdXRzID0gZGl2LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJUQUJMRSIpWzBdLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJJTlBVVCIpOw0KICAgIGxldCBzZWxlY3RzID0gZGl2LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJUQUJMRSIpWzBdLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJTRUxFQ1QiKTsNCiAgICBsZXQgaW5wdXQgPSB7fTsNCiAgICBsZXQgY29uZmlybU1zZzsNCiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHNlbGVjdHMubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgdmFyIG5hbWU7DQogICAgICAgIG5hbWUgPSBzZWxlY3RzW2ldLm5hbWU7DQogICAgICAgIHZhciB2YWx1ZSA9IHNlbGVjdHNbaV0udmFsdWU7DQogICAgICAgIHN3aXRjaCAobmFtZSkgew0KICAgICAgICAgICAgY2FzZSAidHVuZXIiOg0KICAgICAgICAgICAgICAgIGlucHV0W25hbWVdID0gcGFyc2VJbnQodmFsdWUpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgICAgICBpbnB1dFtuYW1lXSA9IHZhbHVlOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICB9DQogICAgfQ0KICAgIGZvciAobGV0IGkgPSAwOyBpIDwgaW5wdXRzLmxlbmd0aDsgaSsrKSB7DQogICAgICAgIHN3aXRjaCAoaW5wdXRzW2ldLnR5cGUpIHsNCiAgICAgICAgICAgIGNhc2UgImNoZWNrYm94IjoNCiAgICAgICAgICAgICAgICBuYW1lID0gaW5wdXRzW2ldLm5hbWU7DQogICAgICAgICAgICAgICAgaW5wdXRbbmFtZV0gPSBpbnB1dHNbaV0uY2hlY2tlZDsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInRleHQiOg0KICAgICAgICAgICAgY2FzZSAiaGlkZGVuIjoNCiAgICAgICAgICAgIGNhc2UgInBhc3N3b3JkIjoNCiAgICAgICAgICAgICAgICBuYW1lID0gaW5wdXRzW2ldLm5hbWU7DQogICAgICAgICAgICAgICAgc3dpdGNoIChuYW1lKSB7DQogICAgICAgICAgICAgICAgICAgIGNhc2UgInR1bmVyIjoNCiAgICAgICAgICAgICAgICAgICAgICAgIGlucHV0W25hbWVdID0gcGFyc2VJbnQoaW5wdXRzW2ldLnZhbHVlKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgICAgICBkZWZhdWx0Og0KICAgICAgICAgICAgICAgICAgICAgICAgaW5wdXRbbmFtZV0gPSBpbnB1dHNbaV0udmFsdWU7DQogICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIH0NCiAgICB9DQogICAgbGV0IGRhdGEgPSB7fTsNCiAgICBsZXQgY21kOw0KICAgIGlmIChyZW1vdmUgPT0gdHJ1ZSkgew0KICAgICAgICBpbnB1dFsiZGVsZXRlIl0gPSB0cnVlOw0KICAgIH0NCiAgICBzd2l0Y2ggKGRhdGFUeXBlKSB7DQogICAgICAgIGNhc2UgInVzZXJzIjoNCiAgICAgICAgICAgIGNvbmZpcm1Nc2cgPSAiRGVsZXRlIHRoaXMgdXNlcj8iOw0KICAgICAgICAgICAgaWYgKGlkID09ICItIikgew0KICAgICAgICAgICAgICAgIGNtZCA9ICJzYXZlTmV3VXNlciI7DQogICAgICAgICAgICAgICAgZGF0YVsidXNlckRhdGEiXSA9IGlucHV0Ow0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgZWxzZSB7DQogICAgICAgICAgICAgICAgY21kID0gInNhdmVVc2VyRGF0YSI7DQogICAgICAgICAgICAgICAgbGV0IGQgPSB7fTsNCiAgICAgICAgICAgICAgICBkW2lkXSA9IGlucHV0Ow0KICAgICAgICAgICAgICAgIGRhdGFbInVzZXJEYXRhIl0gPSBkOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGNhc2UgIm0zdSI6DQogICAgICAgICAgICBjb25maXJtTXNnID0gIkRlbGV0ZSB0aGlzIHBsYXlsaXN0PyI7DQogICAgICAgICAgICBzd2l0Y2ggKG9wdGlvbikgew0KICAgICAgICAgICAgICAgIC8vIFBvcHVwOiBTYXZlDQogICAgICAgICAgICAgICAgY2FzZSAwOg0KICAgICAgICAgICAgICAgICAgICBjbWQgPSAic2F2ZUZpbGVzTTNVIjsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgLy8gUG9wdXA6IFVwZGF0ZQ0KICAgICAgICAgICAgICAgIGNhc2UgMToNCiAgICAgICAgICAgICAgICAgICAgY21kID0gInVwZGF0ZUZpbGVNM1UiOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGRhdGFbImZpbGVzIl0gPSB7fTsNCiAgICAgICAgICAgIGRhdGFbImZpbGVzIl1bZGF0YVR5cGVdID0ge307DQogICAgICAgICAgICBkYXRhWyJmaWxlcyJdW2RhdGFUeXBlXVtpZF0gPSBpbnB1dDsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJoZGhyIjoNCiAgICAgICAgICAgIGNvbmZpcm1Nc2cgPSAiRGVsZXRlIHRoaXMgSERIb21lUnVuIHR1bmVyPyI7DQogICAgICAgICAgICBzd2l0Y2ggKG9wdGlvbikgew0KICAgICAgICAgICAgICAgIC8vIFBvcHVwOiBTYXZlDQogICAgICAgICAgICAgICAgY2FzZSAwOg0KICAgICAgICAgICAgICAgICAgICBjbWQgPSAic2F2ZUZpbGVzSERIUiI7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIC8vIFBvcHVwOiBVcGRhdGUNCiAgICAgICAgICAgICAgICBjYXNlIDE6DQogICAgICAgICAgICAgICAgICAgIGNtZCA9ICJ1cGRhdGVGaWxlSERIUiI7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgZGF0YVsiZmlsZXMiXSA9IHt9Ow0KICAgICAgICAgICAgZGF0YVsiZmlsZXMiXVtkYXRhVHlwZV0gPSB7fTsNCiAgICAgICAgICAgIGRhdGFbImZpbGVzIl1bZGF0YVR5cGVdW2lkXSA9IGlucHV0Ow0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGNhc2UgInhtbHR2IjoNCiAgICAgICAgICAgIGNvbmZpcm1Nc2cgPSAiRGVsZXRlIHRoaXMgWE1MVFYgZmlsZT8iOw0KICAgICAgICAgICAgc3dpdGNoIChvcHRpb24pIHsNCiAgICAgICAgICAgICAgICAvLyBQb3B1cDogU2F2ZQ0KICAgICAgICAgICAgICAgIGNhc2UgMDoNCiAgICAgICAgICAgICAgICAgICAgY21kID0gInNhdmVGaWxlc1hNTFRWIjsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgLy8gUG9wdXA6IFVwZGF0ZQ0KICAgICAgICAgICAgICAgIGNhc2UgMToNCiAgICAgICAgICAgICAgICAgICAgY21kID0gInVwZGF0ZUZpbGVYTUxUViI7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgZGF0YVsiZmlsZXMiXSA9IHt9Ow0KICAgICAgICAgICAgZGF0YVsiZmlsZXMiXVtkYXRhVHlwZV0gPSB7fTsNCiAgICAgICAgICAgIGRhdGFbImZpbGVzIl1bZGF0YVR5cGVdW2lkXSA9IGlucHV0Ow0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGNhc2UgImZpbHRlciI6DQogICAgICAgICAgICBjb25maXJtTXNnID0gIkRlbGV0ZSB0aGlzIGZpbHRlcj8iOw0KICAgICAgICAgICAgY21kID0gInNhdmVGaWx0ZXIiOw0KICAgICAgICAgICAgZGF0YVsiZmlsdGVyIl0gPSB7fTsNCiAgICAgICAgICAgIGRhdGFbImZpbHRlciJdW2lkXSA9IGlucHV0Ow0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICBjb25zb2xlLmxvZyhkYXRhVHlwZSwgaWQpOw0KICAgICAgICAgICAgcmV0dXJuOw0KICAgIH0NCiAgICBpZiAocmVtb3ZlID09IHRydWUpIHsNCiAgICAgICAgaWYgKCFjb25maXJtKGNvbmZpcm1Nc2cpKSB7DQogICAgICAgICAgICBzaG93RWxlbWVudCgicG9wdXAiLCBmYWxzZSk7DQogICAgICAgICAgICByZXR1cm47DQogICAgICAgIH0NCiAgICB9DQogICAgY29uc29sZS5sb2coIlNFTkQgVE8gU0VSVkVSIik7DQogICAgY29uc29sZS5sb2coZGF0YSk7DQogICAgbGV0IHNlcnZlciA9IG5ldyBTZXJ2ZXIoY21kKTsNCiAgICBzZXJ2ZXIucmVxdWVzdChkYXRhKTsNCn0NCmZ1bmN0aW9uIGRvbmVQb3B1cERhdGEoZGF0YVR5cGUsIGlkc1N0cikgew0KICAgIGxldCBpZHMgPSBpZHNTdHIuc3BsaXQoJywnKTsNCiAgICBsZXQgZGl2ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInBvcHVwLWN1c3RvbSIpOw0KICAgIGxldCBpbnB1dHMgPSBkaXYuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSgiY2hhbmdlZCIpOw0KICAgIGlkcy5mb3JFYWNoKGlkID0+IHsNCiAgICAgICAgbGV0IGlucHV0Ow0KICAgICAgICBpbnB1dCA9IFNFUlZFUlsieGVwZyJdWyJlcGdNYXBwaW5nIl1baWRdOw0KICAgICAgICBjb25zb2xlLmxvZyhpbnB1dCk7DQogICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgaW5wdXRzLmxlbmd0aDsgaSsrKSB7DQogICAgICAgICAgICBsZXQgbmFtZTsNCiAgICAgICAgICAgIGxldCB2YWx1ZTsNCiAgICAgICAgICAgIHN3aXRjaCAoaW5wdXRzW2ldLnRhZ05hbWUpIHsNCiAgICAgICAgICAgICAgICBjYXNlICJJTlBVVCI6DQogICAgICAgICAgICAgICAgICAgIHN3aXRjaCAoaW5wdXRzW2ldLnR5cGUpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgImNoZWNrYm94IjoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lID0gaW5wdXRzW2ldLm5hbWU7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSBpbnB1dHNbaV0uY2hlY2tlZDsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnB1dFtuYW1lXSA9IHZhbHVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAidGV4dCI6DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZSA9IGlucHV0c1tpXS5uYW1lOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlID0gaW5wdXRzW2ldLnZhbHVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlucHV0W25hbWVdID0gdmFsdWU7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAiU0VMRUNUIjoNCiAgICAgICAgICAgICAgICAgICAgbmFtZSA9IGlucHV0c1tpXS5uYW1lOw0KICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IGlucHV0c1tpXS52YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgaW5wdXRbbmFtZV0gPSB2YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBzd2l0Y2ggKG5hbWUpIHsNCiAgICAgICAgICAgICAgICBjYXNlICJ0dmctbG9nbyI6DQogICAgICAgICAgICAgICAgICAgIC8vKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5jaGlsZE5vZGVzWzJdLmZpcnN0Q2hpbGQgYXMgSFRNTEVsZW1lbnQpLnNldEF0dHJpYnV0ZSgic3JjIiwgdmFsdWUpDQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgIngtbmFtZSI6DQogICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5jaGlsZE5vZGVzWzNdLmZpcnN0Q2hpbGQuaW5uZXJIVE1MID0gdmFsdWU7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgIngtY2F0ZWdvcnkiOg0KICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkuY2hpbGROb2Rlc1szXS5maXJzdENoaWxkLmNsYXNzTmFtZSA9IHZhbHVlOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBjYXNlICJ4LWdyb3VwLXRpdGxlIjoNCiAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpLmNoaWxkTm9kZXNbNV0uZmlyc3RDaGlsZC5pbm5lckhUTUwgPSB2YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAieC14bWx0di1maWxlIjoNCiAgICAgICAgICAgICAgICAgICAgaWYgKHZhbHVlICE9ICJ4VGVWZSBEdW1teSIgJiYgdmFsdWUgIT0gIi0iKSB7DQogICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IGdldFZhbHVlRnJvbVByb3ZpZGVyRmlsZSh2YWx1ZSwgInhtbHR2IiwgIm5hbWUiKTsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBpZiAodmFsdWUgPT0gIi0iKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBpbnB1dFsieC1hY3RpdmUiXSA9IGZhbHNlOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5jaGlsZE5vZGVzWzZdLmZpcnN0Q2hpbGQuaW5uZXJIVE1MID0gdmFsdWU7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgIngtbWFwcGluZyI6DQogICAgICAgICAgICAgICAgICAgIGlmICh2YWx1ZSA9PSAiLSIpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGlucHV0WyJ4LWFjdGl2ZSJdID0gZmFsc2U7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpLmNoaWxkTm9kZXNbN10uZmlyc3RDaGlsZC5pbm5lckhUTUwgPSB2YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAieC10aW1lc2hpZnQiOg0KICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkuY2hpbGROb2Rlc1s4XS5maXJzdENoaWxkLmlubmVySFRNTCA9IHZhbHVlOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBkZWZhdWx0Og0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgY3JlYXRlU2VhcmNoT2JqKCk7DQogICAgICAgICAgICBzZWFyY2hJbk1hcHBpbmcoKTsNCiAgICAgICAgfQ0KICAgICAgICBpZiAoaW5wdXRbIngtYWN0aXZlIl0gPT0gZmFsc2UpIHsNCiAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5jbGFzc05hbWUgPSAibm90QWN0aXZlRVBHIjsNCiAgICAgICAgfQ0KICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5jbGFzc05hbWUgPSAiYWN0aXZlRVBHIjsNCiAgICAgICAgfQ0KICAgICAgICBjb25zb2xlLmxvZyhpbnB1dFsidHZnLWxvZ28iXSk7DQogICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5jaGlsZE5vZGVzWzJdLmZpcnN0Q2hpbGQuc2V0QXR0cmlidXRlKCJzcmMiLCBpbnB1dFsidHZnLWxvZ28iXSk7DQogICAgfSk7DQogICAgc2hvd0VsZW1lbnQoInBvcHVwIiwgZmFsc2UpOw0KICAgIHJldHVybjsNCn0NCmZ1bmN0aW9uIHNob3dQcmV2aWV3KGVsZW1lbnQpIHsNCiAgICBsZXQgZGl2ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm15U3RyZWFtc0JveCIpOw0KICAgIHN3aXRjaCAoZWxlbWVudCkgew0KICAgICAgICBjYXNlIGZhbHNlOg0KICAgICAgICAgICAgZGl2LmNsYXNzTmFtZSA9ICJub3RWaXNpYmxlIjsNCiAgICAgICAgICAgIHJldHVybjsNCiAgICB9DQogICAgbGV0IHN0cmVhbXMgPSBbImFjdGl2ZVN0cmVhbXMiLCAiaW5hY3RpdmVTdHJlYW1zIl07DQogICAgc3RyZWFtcy5mb3JFYWNoKHByZXZpZXcgPT4gew0KICAgICAgICBsZXQgdGFibGUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChwcmV2aWV3KTsNCiAgICAgICAgdGFibGUuaW5uZXJIVE1MID0gIiI7DQogICAgICAgIGxldCBvYmogPSBTRVJWRVJbImRhdGEiXVsiU3RyZWFtUHJldmlld1VJIl1bcHJldmlld107DQogICAgICAgIG9iai5mb3JFYWNoKGNoYW5uZWwgPT4gew0KICAgICAgICAgICAgbGV0IHRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVFIiKTsNCiAgICAgICAgICAgIGxldCB0ZEtleSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICBsZXQgdGRWYWwgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgdGRLZXkuY2xhc3NOYW1lID0gInRkS2V5IjsNCiAgICAgICAgICAgIHRkVmFsLmNsYXNzTmFtZSA9ICJ0ZFZhbCI7DQogICAgICAgICAgICBzd2l0Y2ggKHByZXZpZXcpIHsNCiAgICAgICAgICAgICAgICBjYXNlICJhY3RpdmVTdHJlYW1zIjoNCiAgICAgICAgICAgICAgICAgICAgdGRLZXkuaW5uZXJUZXh0ID0gIkNoYW5uZWw6ICgrKSI7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgImluYWN0aXZlU3RyZWFtcyI6DQogICAgICAgICAgICAgICAgICAgIHRkS2V5LmlubmVyVGV4dCA9ICJDaGFubmVsOiAoLSkiOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIHRkVmFsLmlubmVyVGV4dCA9IGNoYW5uZWw7DQogICAgICAgICAgICB0ci5hcHBlbmRDaGlsZCh0ZEtleSk7DQogICAgICAgICAgICB0ci5hcHBlbmRDaGlsZCh0ZFZhbCk7DQogICAgICAgICAgICB0YWJsZS5hcHBlbmRDaGlsZCh0cik7DQogICAgICAgIH0pOw0KICAgIH0pOw0KICAgIHNob3dFbGVtZW50KCJsb2FkaW5nIiwgZmFsc2UpOw0KICAgIGRpdi5jbGFzc05hbWUgPSAidmlzaWJsZSI7DQogICAgcmV0dXJuOw0KfQ0K" + webUI["html/js/logs_ts.js"] = "Y2xhc3MgTG9nIHsNCiAgICBjcmVhdGVMb2coZW50cnkpIHsNCiAgICAgICAgdmFyIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJQUkUiKTsNCiAgICAgICAgaWYgKGVudHJ5LmluZGV4T2YoIldBUk5JTkciKSAhPSAtMSkgew0KICAgICAgICAgICAgZWxlbWVudC5jbGFzc05hbWUgPSAid2FybmluZ01zZyI7DQogICAgICAgIH0NCiAgICAgICAgaWYgKGVudHJ5LmluZGV4T2YoIkVSUk9SIikgIT0gLTEpIHsNCiAgICAgICAgICAgIGVsZW1lbnQuY2xhc3NOYW1lID0gImVycm9yTXNnIjsNCiAgICAgICAgfQ0KICAgICAgICBpZiAoZW50cnkuaW5kZXhPZigiREVCVUciKSAhPSAtMSkgew0KICAgICAgICAgICAgZWxlbWVudC5jbGFzc05hbWUgPSAiZGVidWdNc2ciOw0KICAgICAgICB9DQogICAgICAgIGVsZW1lbnQuaW5uZXJIVE1MID0gZW50cnk7DQogICAgICAgIHJldHVybiBlbGVtZW50Ow0KICAgIH0NCn0NCmZ1bmN0aW9uIHNob3dMb2dzKGJvdHRvbSkgew0KICAgIHZhciBsb2cgPSBuZXcgTG9nKCk7DQogICAgdmFyIGxvZ3MgPSBTRVJWRVJbImxvZyJdWyJsb2ciXTsNCiAgICB2YXIgZGl2ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnRlbnRfbG9nIik7DQogICAgZGl2LmlubmVySFRNTCA9ICIiOw0KICAgIHZhciBrZXlzID0gZ2V0T3duT2JqUHJvcHMobG9ncyk7DQogICAga2V5cy5mb3JFYWNoKGxvZ0lEID0+IHsNCiAgICAgICAgdmFyIGVudHJ5ID0gbG9nLmNyZWF0ZUxvZyhsb2dzW2xvZ0lEXSk7DQogICAgICAgIGRpdi5hcHBlbmQoZW50cnkpOw0KICAgIH0pOw0KICAgIHNldFRpbWVvdXQoZnVuY3Rpb24gKCkgew0KICAgICAgICBpZiAoYm90dG9tID09IHRydWUpIHsNCiAgICAgICAgICAgIHZhciB3cmFwcGVyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImJveC13cmFwcGVyIik7DQogICAgICAgICAgICB3cmFwcGVyLnNjcm9sbFRvcCA9IHdyYXBwZXIuc2Nyb2xsSGVpZ2h0Ow0KICAgICAgICB9DQogICAgfSwgMTApOw0KfQ0KZnVuY3Rpb24gcmVzZXRMb2dzKCkgew0KICAgIHZhciBjbWQgPSAicmVzZXRMb2dzIjsNCiAgICB2YXIgZGF0YSA9IG5ldyBPYmplY3QoKTsNCiAgICB2YXIgc2VydmVyID0gbmV3IFNlcnZlcihjbWQpOw0KICAgIHNlcnZlci5yZXF1ZXN0KGRhdGEpOw0KfQ0K" + webUI["html/js/menu_ts.js"] = "Y2xhc3MgTWFpbk1lbnUgew0KICAgIGNvbnN0cnVjdG9yKCkgew0KICAgICAgICB0aGlzLkRvY3VtZW50SUQgPSAibWFpbi1tZW51IjsNCiAgICAgICAgdGhpcy5IVE1MVGFnID0gIkxJIjsNCiAgICAgICAgdGhpcy5JbWFnZVBhdGggPSAiaW1nLyI7DQogICAgfQ0KICAgIGNyZWF0ZUlNRyhzcmMpIHsNCiAgICAgICAgbGV0IGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJJTUciKTsNCiAgICAgICAgZWxlbWVudC5zZXRBdHRyaWJ1dGUoInNyYyIsIHRoaXMuSW1hZ2VQYXRoICsgc3JjKTsNCiAgICAgICAgcmV0dXJuIGVsZW1lbnQ7DQogICAgfQ0KICAgIGNyZWF0ZVZhbHVlKHZhbHVlKSB7DQogICAgICAgIGxldCBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiUCIpOw0KICAgICAgICBlbGVtZW50LmlubmVySFRNTCA9IHZhbHVlOw0KICAgICAgICByZXR1cm4gZWxlbWVudDsNCiAgICB9DQp9DQpjbGFzcyBNYWluTWVudUl0ZW0gZXh0ZW5kcyBNYWluTWVudSB7DQogICAgY29uc3RydWN0b3IobWVudUtleSwgdmFsdWUsIGltYWdlLCBoZWFkbGluZSkgew0KICAgICAgICBzdXBlcigpOw0KICAgICAgICB0aGlzLm1lbnVLZXkgPSBtZW51S2V5Ow0KICAgICAgICB0aGlzLnZhbHVlID0gdmFsdWU7DQogICAgICAgIHRoaXMuaW1nU3JjID0gaW1hZ2U7DQogICAgICAgIHRoaXMuaGVhZGxpbmUgPSBoZWFkbGluZTsNCiAgICB9DQogICAgY3JlYXRlSXRlbSgpIHsNCiAgICAgICAgbGV0IGl0ZW0gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJMSSIpOw0KICAgICAgICBpdGVtLnNldEF0dHJpYnV0ZSgib25jbGljayIsICJqYXZhc2NyaXB0OiBvcGVuVGhpc01lbnUodGhpcykiKTsNCiAgICAgICAgaXRlbS5zZXRBdHRyaWJ1dGUoImlkIiwgdGhpcy5pZCk7DQogICAgICAgIGxldCBpbWcgPSB0aGlzLmNyZWF0ZUlNRyh0aGlzLmltZ1NyYyk7DQogICAgICAgIGxldCB2YWx1ZSA9IHRoaXMuY3JlYXRlVmFsdWUodGhpcy52YWx1ZSk7DQogICAgICAgIGl0ZW0uYXBwZW5kQ2hpbGQoaW1nKTsNCiAgICAgICAgaXRlbS5hcHBlbmRDaGlsZCh2YWx1ZSk7DQogICAgICAgIGxldCBkb2MgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCh0aGlzLkRvY3VtZW50SUQpOw0KICAgICAgICBkb2MuYXBwZW5kQ2hpbGQoaXRlbSk7DQogICAgICAgIHN3aXRjaCAodGhpcy5tZW51S2V5KSB7DQogICAgICAgICAgICBjYXNlICJwbGF5bGlzdCI6DQogICAgICAgICAgICAgICAgdGhpcy50YWJsZUhlYWRlciA9IFsie3sucGxheWxpc3QudGFibGUucGxheWxpc3R9fSIsICJ7ey5wbGF5bGlzdC50YWJsZS50dW5lcn19IiwgInt7LnBsYXlsaXN0LnRhYmxlLmxhc3RVcGRhdGV9fSIsICJ7ey5wbGF5bGlzdC50YWJsZS5hdmFpbGFiaWxpdHl9fSAlIiwgInt7LnBsYXlsaXN0LnRhYmxlLnR5cGV9fSIsICJ7ey5wbGF5bGlzdC50YWJsZS5zdHJlYW1zfX0iLCAie3sucGxheWxpc3QudGFibGUuZ3JvdXBUaXRsZX19ICUiLCAie3sucGxheWxpc3QudGFibGUudHZnSUR9fSAlIiwgInt7LnBsYXlsaXN0LnRhYmxlLnVuaXF1ZUlEfX0gJSJdOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAieG1sdHYiOg0KICAgICAgICAgICAgICAgIHRoaXMudGFibGVIZWFkZXIgPSBbInt7LnhtbHR2LnRhYmxlLmd1aWRlfX0iLCAie3sueG1sdHYudGFibGUubGFzdFVwZGF0ZX19IiwgInt7LnhtbHR2LnRhYmxlLmF2YWlsYWJpbGl0eX19ICUiLCAie3sueG1sdHYudGFibGUuY2hhbm5lbHN9fSIsICJ7ey54bWx0di50YWJsZS5wcm9ncmFtc319Il07DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJmaWx0ZXIiOg0KICAgICAgICAgICAgICAgIHRoaXMudGFibGVIZWFkZXIgPSBbInt7LmZpbHRlci50YWJsZS5zdGFydGluZ0NoYW5uZWx9fSIsICJ7ey5maWx0ZXIudGFibGUubmFtZX19IiwgInt7LmZpbHRlci50YWJsZS50eXBlfX0iLCAie3suZmlsdGVyLnRhYmxlLmZpbHRlcn19Il07DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ1c2VycyI6DQogICAgICAgICAgICAgICAgdGhpcy50YWJsZUhlYWRlciA9IFsie3sudXNlcnMudGFibGUudXNlcm5hbWV9fSIsICJ7ey51c2Vycy50YWJsZS5wYXNzd29yZH19IiwgInt7LnVzZXJzLnRhYmxlLndlYn19IiwgInt7LnVzZXJzLnRhYmxlLnBtc319IiwgInt7LnVzZXJzLnRhYmxlLm0zdX19IiwgInt7LnVzZXJzLnRhYmxlLnhtbH19IiwgInt7LnVzZXJzLnRhYmxlLmFwaX19Il07DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJtYXBwaW5nIjoNCiAgICAgICAgICAgICAgICB0aGlzLnRhYmxlSGVhZGVyID0gWyJCVUxLIiwgInt7Lm1hcHBpbmcudGFibGUuY2hOb319IiwgInt7Lm1hcHBpbmcudGFibGUubG9nb319IiwgInt7Lm1hcHBpbmcudGFibGUuY2hhbm5lbE5hbWV9fSIsICJ7ey5tYXBwaW5nLnRhYmxlLnBsYXlsaXN0fX0iLCAie3subWFwcGluZy50YWJsZS5ncm91cFRpdGxlfX0iLCAie3subWFwcGluZy50YWJsZS54bWx0dkZpbGV9fSIsICJ7ey5tYXBwaW5nLnRhYmxlLnhtbHR2SUR9fSIsICJ7ey5tYXBwaW5nLnRhYmxlLnRpbWVzaGlmdH19Il07DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIH0NCiAgICAgICAgLy9jb25zb2xlLmxvZyh0aGlzLm1lbnVLZXksIHRoaXMudGFibGVIZWFkZXIpOw0KICAgIH0NCn0NCmNsYXNzIENvbnRlbnQgew0KICAgIGNvbnN0cnVjdG9yKCkgew0KICAgICAgICB0aGlzLkRvY3VtZW50SUQgPSAiY29udGVudCI7DQogICAgICAgIHRoaXMuVGFibGVJRCA9ICJjb250ZW50X3RhYmxlIjsNCiAgICAgICAgdGhpcy5oZWFkZXJDbGFzcyA9ICJjb250ZW50X3RhYmxlX2hlYWRlciI7DQogICAgICAgIHRoaXMuaW50ZXJhY3Rpb25JRCA9ICJjb250ZW50LWludGVyYWN0aW9uIjsNCiAgICB9DQogICAgY3JlYXRlSGVhZGxpbmUodmFsdWUpIHsNCiAgICAgICAgbGV0IGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJIMyIpOw0KICAgICAgICBlbGVtZW50LmlubmVySFRNTCA9IHZhbHVlOw0KICAgICAgICByZXR1cm4gZWxlbWVudDsNCiAgICB9DQogICAgY3JlYXRlSFIoKSB7DQogICAgICAgIHJldHVybiBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJIUiIpOw0KICAgIH0NCiAgICBjcmVhdGVJbnRlcmFjdGlvbigpIHsNCiAgICAgICAgbGV0IGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJESVYiKTsNCiAgICAgICAgZWxlbWVudC5zZXRBdHRyaWJ1dGUoImlkIiwgdGhpcy5pbnRlcmFjdGlvbklEKTsNCiAgICAgICAgcmV0dXJuIGVsZW1lbnQ7DQogICAgfQ0KICAgIGNyZWF0ZURJVigpIHsNCiAgICAgICAgbGV0IGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJESVYiKTsNCiAgICAgICAgZWxlbWVudC5pZCA9IHRoaXMuRGl2SUQ7DQogICAgICAgIHJldHVybiBlbGVtZW50Ow0KICAgIH0NCiAgICBjcmVhdGVUQUJMRSgpIHsNCiAgICAgICAgbGV0IGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJUQUJMRSIpOw0KICAgICAgICBlbGVtZW50LmlkID0gdGhpcy5UYWJsZUlEOw0KICAgICAgICByZXR1cm4gZWxlbWVudDsNCiAgICB9DQogICAgY3JlYXRlVGFibGVSb3coKSB7DQogICAgICAgIGxldCBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVFIiKTsNCiAgICAgICAgZWxlbWVudC5jbGFzc05hbWUgPSB0aGlzLmhlYWRlckNsYXNzOw0KICAgICAgICByZXR1cm4gZWxlbWVudDsNCiAgICB9DQogICAgY3JlYXRlVGFibGVDb250ZW50KG1lbnVLZXkpIHsNCiAgICAgICAgbGV0IGRhdGEgPSB7fTsNCiAgICAgICAgbGV0IHJvd3MgPSBbXTsNCiAgICAgICAgbGV0IGZpbGVUeXBlcyA9IFtdOw0KICAgICAgICBzd2l0Y2ggKG1lbnVLZXkpIHsNCiAgICAgICAgICAgIGNhc2UgInBsYXlsaXN0IjoNCiAgICAgICAgICAgICAgICBmaWxlVHlwZXMgPSBbIm0zdSIsICJoZGhyIl07DQogICAgICAgICAgICAgICAgZmlsZVR5cGVzLmZvckVhY2goZmlsZVR5cGUgPT4gew0KICAgICAgICAgICAgICAgICAgICBkYXRhID0gU0VSVkVSWyJzZXR0aW5ncyJdWyJmaWxlcyJdW2ZpbGVUeXBlXTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGtleXMgPSBnZXRPd25PYmpQcm9wcyhkYXRhKTsNCiAgICAgICAgICAgICAgICAgICAga2V5cy5mb3JFYWNoKGtleSA9PiB7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgdHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJUUiIpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuaWQgPSBrZXk7DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCInICsgZmlsZVR5cGUgKyAnIiwgdGhpcyknKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJuYW1lIl07DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgaWYgKFNFUlZFUlsic2V0dGluZ3MiXVsiYnVmZmVyIl0gIT0gIi0iKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsidHVuZXIiXTsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSAiLSI7DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsibGFzdC51cGRhdGUiXTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJwcm92aWRlci5hdmFpbGFiaWxpdHkiXTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJ0eXBlIl0udG9VcHBlckNhc2UoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJjb21wYXRpYmlsaXR5Il1bInN0cmVhbXMiXTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJjb21wYXRpYmlsaXR5Il1bImdyb3VwLnRpdGxlIl07DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsiY29tcGF0aWJpbGl0eSJdWyJ0dmcuaWQiXTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJjb21wYXRpYmlsaXR5Il1bInN0cmVhbS5pZCJdOw0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgcm93cy5wdXNoKHRyKTsNCiAgICAgICAgICAgICAgICAgICAgfSk7DQogICAgICAgICAgICAgICAgfSk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJmaWx0ZXIiOg0KICAgICAgICAgICAgICAgIGRlbGV0ZSBTRVJWRVJbInNldHRpbmdzIl1bImZpbHRlciJdWy0xXTsNCiAgICAgICAgICAgICAgICBkYXRhID0gU0VSVkVSWyJzZXR0aW5ncyJdWyJmaWx0ZXIiXTsNCiAgICAgICAgICAgICAgICB2YXIga2V5cyA9IGdldE93bk9ialByb3BzKGRhdGEpOw0KICAgICAgICAgICAgICAgIGtleXMuZm9yRWFjaChrZXkgPT4gew0KICAgICAgICAgICAgICAgICAgICB2YXIgdHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJUUiIpOw0KICAgICAgICAgICAgICAgICAgICB0ci5pZCA9IGtleTsNCiAgICAgICAgICAgICAgICAgICAgdHIuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgiJyArIGRhdGFba2V5XVsidHlwZSJdICsgJyIsIHRoaXMpJyk7DQogICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJzdGFydGluZ0NoYW5uZWwiXTsNCiAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsibmFtZSJdOw0KICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICBzd2l0Y2ggKGRhdGFba2V5XVsidHlwZSJdKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBjYXNlICJjdXN0b20tZmlsdGVyIjoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gInt7LmZpbHRlci5jdXN0b219fSI7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgICAgICAgICBjYXNlICJncm91cC10aXRsZSI6DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9ICJ7ey5maWx0ZXIuZ3JvdXB9fSI7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgICAgICAgICBkZWZhdWx0Og0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bImZpbHRlciJdOw0KICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgIHJvd3MucHVzaCh0cik7DQogICAgICAgICAgICAgICAgfSk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ4bWx0diI6DQogICAgICAgICAgICAgICAgZmlsZVR5cGVzID0gbmV3IEFycmF5KCJ4bWx0diIpOw0KICAgICAgICAgICAgICAgIGZpbGVUeXBlcy5mb3JFYWNoKGZpbGVUeXBlID0+IHsNCiAgICAgICAgICAgICAgICAgICAgZGF0YSA9IFNFUlZFUlsic2V0dGluZ3MiXVsiZmlsZXMiXVtmaWxlVHlwZV07DQogICAgICAgICAgICAgICAgICAgIHZhciBrZXlzID0gZ2V0T3duT2JqUHJvcHMoZGF0YSk7DQogICAgICAgICAgICAgICAgICAgIGtleXMuZm9yRWFjaChrZXkgPT4gew0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVFIiKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmlkID0ga2V5Ow0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgiJyArIGZpbGVUeXBlICsgJyIsIHRoaXMpJyk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsibmFtZSJdOw0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bImxhc3QudXBkYXRlIl07DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsicHJvdmlkZXIuYXZhaWxhYmlsaXR5Il07DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsiY29tcGF0aWJpbGl0eSJdWyJ4bWx0di5jaGFubmVscyJdOw0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bImNvbXBhdGliaWxpdHkiXVsieG1sdHYucHJvZ3JhbXMiXTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHJvd3MucHVzaCh0cik7DQogICAgICAgICAgICAgICAgICAgIH0pOw0KICAgICAgICAgICAgICAgIH0pOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAidXNlcnMiOg0KICAgICAgICAgICAgICAgIGZpbGVUeXBlcyA9IG5ldyBBcnJheSgidXNlcnMiKTsNCiAgICAgICAgICAgICAgICBmaWxlVHlwZXMuZm9yRWFjaChmaWxlVHlwZSA9PiB7DQogICAgICAgICAgICAgICAgICAgIGRhdGEgPSBTRVJWRVJbZmlsZVR5cGVdOw0KICAgICAgICAgICAgICAgICAgICB2YXIga2V5cyA9IGdldE93bk9ialByb3BzKGRhdGEpOw0KICAgICAgICAgICAgICAgICAgICBrZXlzLmZvckVhY2goa2V5ID0+IHsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciB0ciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlRSIik7DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5pZCA9IGtleTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoIicgKyBmaWxlVHlwZSArICciLCB0aGlzKScpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bImRhdGEiXVsidXNlcm5hbWUiXTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gIioqKioqKiI7DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGRhdGFba2V5XVsiZGF0YSJdWyJhdXRoZW50aWNhdGlvbi53ZWIiXSA9PSB0cnVlKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9ICLinJMiOw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9ICItIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgICAgICBpZiAoZGF0YVtrZXldWyJkYXRhIl1bImF1dGhlbnRpY2F0aW9uLnBtcyJdID09IHRydWUpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gIuKckyI7DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gIi0iOw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChkYXRhW2tleV1bImRhdGEiXVsiYXV0aGVudGljYXRpb24ubTN1Il0gPT0gdHJ1ZSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSAi4pyTIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSAiLSI7DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGRhdGFba2V5XVsiZGF0YSJdWyJhdXRoZW50aWNhdGlvbi54bWwiXSA9PSB0cnVlKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9ICLinJMiOw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9ICItIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgICAgICBpZiAoZGF0YVtrZXldWyJkYXRhIl1bImF1dGhlbnRpY2F0aW9uLmFwaSJdID09IHRydWUpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gIuKckyI7DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gIi0iOw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgcm93cy5wdXNoKHRyKTsNCiAgICAgICAgICAgICAgICAgICAgfSk7DQogICAgICAgICAgICAgICAgfSk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJtYXBwaW5nIjoNCiAgICAgICAgICAgICAgICBCVUxLX0VESVQgPSBmYWxzZTsNCiAgICAgICAgICAgICAgICBjcmVhdGVTZWFyY2hPYmooKTsNCiAgICAgICAgICAgICAgICBjaGVja1VuZG8oImVwZ01hcHBpbmciKTsNCiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZygiTUFQUElORyIpOw0KICAgICAgICAgICAgICAgIGRhdGEgPSBTRVJWRVJbInhlcGciXVsiZXBnTWFwcGluZyJdOw0KICAgICAgICAgICAgICAgIHZhciBrZXlzID0gZ2V0T3duT2JqUHJvcHMoZGF0YSk7DQogICAgICAgICAgICAgICAga2V5cy5mb3JFYWNoKGtleSA9PiB7DQogICAgICAgICAgICAgICAgICAgIHZhciB0ciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlRSIik7DQogICAgICAgICAgICAgICAgICAgIHRyLmlkID0ga2V5Ow0KICAgICAgICAgICAgICAgICAgICAvL3RyLnNldEF0dHJpYnV0ZSgnb25jb250ZXh0bWVudScsICdqYXZhc2NyaXB0OiByaWdodENsaWNrKHRoaXMpJykNCiAgICAgICAgICAgICAgICAgICAgc3dpdGNoIChkYXRhW2tleV1bIngtYWN0aXZlIl0pIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgdHJ1ZToNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ci5jbGFzc05hbWUgPSAiYWN0aXZlRVBHIjsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgZmFsc2U6DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgdHIuY2xhc3NOYW1lID0gIm5vdEFjdGl2ZUVQRyI7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgLy8gQnVsaw0KICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJCVUxLIjsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGZhbHNlOw0KICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgIC8vIENoYW5uZWwgbnVtYmVyDQogICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIklOUFVUQ0hBTk5FTCI7DQogICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bIngtY2hhbm5lbElEIl07DQogICAgICAgICAgICAgICAgICAgIC8vdGQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IGNoYW5nZUNoYW5uZWxOdW1iZXIoIicgKyBrZXkgKyAnIiwgdGhpcyknKQ0KICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgIC8vIExvZ28NCiAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiSU1HIjsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5pbWFnZVVSTCA9IGRhdGFba2V5XVsidHZnLWxvZ28iXTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHRkID0gY2VsbC5jcmVhdGVDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgIHRkLnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoIm1hcHBpbmciLCB0aGlzKScpOw0KICAgICAgICAgICAgICAgICAgICB0ZC5pZCA9IGtleTsNCiAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQodGQpOw0KICAgICAgICAgICAgICAgICAgICAvLyBDaGFubmVsIG5hbWUNCiAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2xhc3NOYW1lID0gZGF0YVtrZXldWyJ4LWNhdGVnb3J5Il07DQogICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bIngtbmFtZSJdOw0KICAgICAgICAgICAgICAgICAgICB2YXIgdGQgPSBjZWxsLmNyZWF0ZUNlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgdGQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgibWFwcGluZyIsIHRoaXMpJyk7DQogICAgICAgICAgICAgICAgICAgIHRkLmlkID0ga2V5Ow0KICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZCh0ZCk7DQogICAgICAgICAgICAgICAgICAgIC8vIFBsYXlsaXN0DQogICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAvL2NlbGwudmFsdWUgPSBkYXRhW2tleV1bIl9maWxlLm0zdS5uYW1lIl0gDQogICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBnZXRWYWx1ZUZyb21Qcm92aWRlckZpbGUoZGF0YVtrZXldWyJfZmlsZS5tM3UuaWQiXSwgIm0zdSIsICJuYW1lIik7DQogICAgICAgICAgICAgICAgICAgIHZhciB0ZCA9IGNlbGwuY3JlYXRlQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICB0ZC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJtYXBwaW5nIiwgdGhpcyknKTsNCiAgICAgICAgICAgICAgICAgICAgdGQuaWQgPSBrZXk7DQogICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKHRkKTsNCiAgICAgICAgICAgICAgICAgICAgLy8gR3JvdXAgKGdyb3VwLXRpdGxlKQ0KICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsieC1ncm91cC10aXRsZSJdOw0KICAgICAgICAgICAgICAgICAgICB2YXIgdGQgPSBjZWxsLmNyZWF0ZUNlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgdGQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgibWFwcGluZyIsIHRoaXMpJyk7DQogICAgICAgICAgICAgICAgICAgIHRkLmlkID0ga2V5Ow0KICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZCh0ZCk7DQogICAgICAgICAgICAgICAgICAgIC8vIFhNTFRWIGZpbGUNCiAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgIGlmIChkYXRhW2tleV1bIngteG1sdHYtZmlsZSJdICE9ICItIikgew0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGdldFZhbHVlRnJvbVByb3ZpZGVyRmlsZShkYXRhW2tleV1bIngteG1sdHYtZmlsZSJdLCAieG1sdHYiLCAibmFtZSIpOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsieC14bWx0di1maWxlIl07DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgdmFyIHRkID0gY2VsbC5jcmVhdGVDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgIHRkLnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoIm1hcHBpbmciLCB0aGlzKScpOw0KICAgICAgICAgICAgICAgICAgICB0ZC5pZCA9IGtleTsNCiAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQodGQpOw0KICAgICAgICAgICAgICAgICAgICAvLyBYTUxUViBDaGFubmVsDQogICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAvL3ZhciB2YWx1ZSA9IHN0ci5zdWJzdHJpbmcoMSwgNCk7DQogICAgICAgICAgICAgICAgICAgIHZhciB2YWx1ZSA9IGRhdGFba2V5XVsieC1tYXBwaW5nIl07DQogICAgICAgICAgICAgICAgICAgIGlmICh2YWx1ZS5sZW5ndGggPiAyMCkgew0KICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSBkYXRhW2tleV1bIngtbWFwcGluZyJdLnN1YnN0cmluZygwLCAyMCkgKyAiLi4uIjsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gdmFsdWU7DQogICAgICAgICAgICAgICAgICAgIHZhciB0ZCA9IGNlbGwuY3JlYXRlQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICB0ZC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJtYXBwaW5nIiwgdGhpcyknKTsNCiAgICAgICAgICAgICAgICAgICAgdGQuaWQgPSBrZXk7DQogICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKHRkKTsNCiAgICAgICAgICAgICAgICAgICAgLy8gVGltZVNoaWZ0DQogICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJ4LXRpbWVzaGlmdCJdOw0KICAgICAgICAgICAgICAgICAgICB2YXIgdGQgPSBjZWxsLmNyZWF0ZUNlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgdGQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgibWFwcGluZyIsIHRoaXMpJyk7DQogICAgICAgICAgICAgICAgICAgIHRkLmlkID0ga2V5Ow0KICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZCh0ZCk7DQogICAgICAgICAgICAgICAgICAgIHJvd3MucHVzaCh0cik7DQogICAgICAgICAgICAgICAgfSk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJzZXR0aW5ncyI6DQogICAgICAgICAgICAgICAgYWxlcnQoKTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICAgICAgY29uc29sZS5sb2coIlRhYmxlIGNvbnRlbnQgKG1lbnVLZXkpOiIsIG1lbnVLZXkpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICB9DQogICAgICAgIHJldHVybiByb3dzOw0KICAgIH0NCn0NCmNsYXNzIENlbGwgew0KICAgIGNyZWF0ZUNlbGwoKSB7DQogICAgICAgIGxldCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgIGlmICh0aGlzLmNoaWxkID09IHRydWUpIHsNCiAgICAgICAgICAgIHZhciBlbGVtZW50Ow0KICAgICAgICAgICAgc3dpdGNoICh0aGlzLmNoaWxkVHlwZSkgew0KICAgICAgICAgICAgICAgIGNhc2UgIlAiOg0KICAgICAgICAgICAgICAgICAgICBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCh0aGlzLmNoaWxkVHlwZSk7DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQuaW5uZXJIVE1MID0gdGhpcy52YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC5jbGFzc05hbWUgPSB0aGlzLmNsYXNzTmFtZTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAiSU5QVVQiOg0KICAgICAgICAgICAgICAgICAgICBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCh0aGlzLmNoaWxkVHlwZSk7DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQudmFsdWUgPSB0aGlzLnZhbHVlOw0KICAgICAgICAgICAgICAgICAgICBlbGVtZW50LnR5cGUgPSAidGV4dCI7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgIklOUFVUQ0hBTk5FTCI6DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJJTlBVVCIpOw0KICAgICAgICAgICAgICAgICAgICBlbGVtZW50LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2c2NyaXB0OiBjaGFuZ2VDaGFubmVsTnVtYmVyKHRoaXMpIik7DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQudmFsdWUgPSB0aGlzLnZhbHVlOw0KICAgICAgICAgICAgICAgICAgICBlbGVtZW50LnR5cGUgPSAidGV4dCI7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgIkJVTEsiOg0KICAgICAgICAgICAgICAgICAgICBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiSU5QVVQiKTsNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC5jaGVja2VkID0gdGhpcy52YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC50eXBlID0gImNoZWNrYm94IjsNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC5jbGFzc05hbWUgPSAiYnVsayBoaWRlQnVsayI7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgIkJVTEtfSEVBRCI6DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJJTlBVVCIpOw0KICAgICAgICAgICAgICAgICAgICBlbGVtZW50LmNoZWNrZWQgPSB0aGlzLnZhbHVlOw0KICAgICAgICAgICAgICAgICAgICBlbGVtZW50LnR5cGUgPSAiY2hlY2tib3giOw0KICAgICAgICAgICAgICAgICAgICBlbGVtZW50LmNsYXNzTmFtZSA9ICJidWxrIGhpZGVCdWxrIjsNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAiamF2YXNjcmlwdDogc2VsZWN0QWxsQ2hhbm5lbHMoKSIpOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBjYXNlICJJTUciOg0KICAgICAgICAgICAgICAgICAgICBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCh0aGlzLmNoaWxkVHlwZSk7DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQuc2V0QXR0cmlidXRlKCJzcmMiLCB0aGlzLmltYWdlVVJMKTsNCiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuaW1hZ2VVUkwgIT0gIiIpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGVsZW1lbnQuc2V0QXR0cmlidXRlKCJvbmVycm9yIiwgImphdmFzY3JpcHQ6IHRoaXMub25lcnJvcj1udWxsO3RoaXMuc3JjPScnIik7DQogICAgICAgICAgICAgICAgICAgICAgICAvL29uZXJyb3I9InRoaXMub25lcnJvcj1udWxsO3RoaXMuc3JjPSdtaXNzaW5nLmdpZic7Ig0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9DQogICAgICAgICAgICB0ZC5hcHBlbmRDaGlsZChlbGVtZW50KTsNCiAgICAgICAgfQ0KICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgIHRkLmlubmVySFRNTCA9IHRoaXMudmFsdWU7DQogICAgICAgIH0NCiAgICAgICAgaWYgKHRoaXMub25jbGljayA9PSB0cnVlKSB7DQogICAgICAgICAgICB0ZC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCB0aGlzLm9uY2xpY2tGdW5jdGlvbik7DQogICAgICAgICAgICB0ZC5jbGFzc05hbWUgPSAicG9pbnRlciI7DQogICAgICAgIH0NCiAgICAgICAgaWYgKHRoaXMudGRDbGFzc05hbWUgIT0gdW5kZWZpbmVkKSB7DQogICAgICAgICAgICB0ZC5jbGFzc05hbWUgPSB0aGlzLnRkQ2xhc3NOYW1lOw0KICAgICAgICB9DQogICAgICAgIHJldHVybiB0ZDsNCiAgICB9DQp9DQpjbGFzcyBTaG93Q29udGVudCBleHRlbmRzIENvbnRlbnQgew0KICAgIGNvbnN0cnVjdG9yKG1lbnVJRCkgew0KICAgICAgICBzdXBlcigpOw0KICAgICAgICB0aGlzLm1lbnVJRCA9IG1lbnVJRDsNCiAgICB9DQogICAgY3JlYXRlSW5wdXQodHlwZSwgbmFtZSwgdmFsdWUpIHsNCiAgICAgICAgbGV0IGlucHV0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiSU5QVVQiKTsNCiAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJ0eXBlIiwgdHlwZSk7DQogICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgibmFtZSIsIG5hbWUpOw0KICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInZhbHVlIiwgdmFsdWUpOw0KICAgICAgICByZXR1cm4gaW5wdXQ7DQogICAgfQ0KICAgIHNob3coKSB7DQogICAgICAgIENPTFVNTl9UT19TT1JUID0gLTE7DQogICAgICAgIC8vIERlbGV0ZSBvbGQgY29udGVudA0KICAgICAgICBsZXQgZG9jID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQodGhpcy5Eb2N1bWVudElEKTsNCiAgICAgICAgZG9jLmlubmVySFRNTCA9ICIiOw0KICAgICAgICBzaG93UHJldmlldyhmYWxzZSk7DQogICAgICAgIC8vIEhlYWRsaW5lDQogICAgICAgIGxldCBoZWFkbGluZSA9IG1lbnVJdGVtc1t0aGlzLm1lbnVJRF0uaGVhZGxpbmU7DQogICAgICAgIGxldCBtZW51S2V5ID0gbWVudUl0ZW1zW3RoaXMubWVudUlEXS5tZW51S2V5Ow0KICAgICAgICBsZXQgaCA9IHRoaXMuY3JlYXRlSGVhZGxpbmUoaGVhZGxpbmUpOw0KICAgICAgICBkb2MuYXBwZW5kQ2hpbGQoaCk7DQogICAgICAgIGxldCBociA9IHRoaXMuY3JlYXRlSFIoKTsNCiAgICAgICAgZG9jLmFwcGVuZENoaWxkKGhyKTsNCiAgICAgICAgLy8gSW50ZXJhY3Rpb24NCiAgICAgICAgbGV0IGRpdiA9IHRoaXMuY3JlYXRlSW50ZXJhY3Rpb24oKTsNCiAgICAgICAgZG9jLmFwcGVuZENoaWxkKGRpdik7DQogICAgICAgIGxldCBpbnRlcmFjdGlvbiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHRoaXMuaW50ZXJhY3Rpb25JRCk7DQogICAgICAgIHN3aXRjaCAobWVudUtleSkgew0KICAgICAgICAgICAgY2FzZSAicGxheWxpc3QiOg0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IHRoaXMuY3JlYXRlSW5wdXQoImJ1dHRvbiIsIG1lbnVLZXksICJ7ey5idXR0b24ubmV3fX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoImlkIiwgIi0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJwbGF5bGlzdCIpJyk7DQogICAgICAgICAgICAgICAgaW50ZXJhY3Rpb24uYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiZmlsdGVyIjoNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSB0aGlzLmNyZWF0ZUlucHV0KCJidXR0b24iLCBtZW51S2V5LCAie3suYnV0dG9uLm5ld319Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJpZCIsIC0xKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJmaWx0ZXIiLCB0aGlzKScpOw0KICAgICAgICAgICAgICAgIGludGVyYWN0aW9uLmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInhtbHR2IjoNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSB0aGlzLmNyZWF0ZUlucHV0KCJidXR0b24iLCBtZW51S2V5LCAie3suYnV0dG9uLm5ld319Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJpZCIsICJ4bWx0diIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoInhtbHR2IiknKTsNCiAgICAgICAgICAgICAgICBpbnRlcmFjdGlvbi5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ1c2VycyI6DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gdGhpcy5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgbWVudUtleSwgInt7LmJ1dHRvbi5uZXd9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgiaWQiLCAidXNlcnMiKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJ1c2VycyIpJyk7DQogICAgICAgICAgICAgICAgaW50ZXJhY3Rpb24uYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAibWFwcGluZyI6DQogICAgICAgICAgICAgICAgc2hvd0VsZW1lbnQoImxvYWRpbmciLCB0cnVlKTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSB0aGlzLmNyZWF0ZUlucHV0KCJidXR0b24iLCBtZW51S2V5LCAie3suYnV0dG9uLnNhdmV9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBzYXZlUG9wdXBEYXRhKCJtYXBwaW5nIiwgIiIsICIiKScpOw0KICAgICAgICAgICAgICAgIGludGVyYWN0aW9uLmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSB0aGlzLmNyZWF0ZUlucHV0KCJidXR0b24iLCBtZW51S2V5LCAie3suYnV0dG9uLmJ1bGtFZGl0fX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogYnVsa0VkaXQoKScpOw0KICAgICAgICAgICAgICAgIGludGVyYWN0aW9uLmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSB0aGlzLmNyZWF0ZUlucHV0KCJzZWFyY2giLCAic2VhcmNoIiwgIiIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgiaWQiLCAic2VhcmNoTWFwcGluZyIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3suYnV0dG9uLnNlYXJjaH19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuY2xhc3NOYW1lID0gInNlYXJjaCI7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICdqYXZhc2NyaXB0OiBzZWFyY2hJbk1hcHBpbmcoKScpOw0KICAgICAgICAgICAgICAgIGludGVyYWN0aW9uLmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInNldHRpbmdzIjoNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSB0aGlzLmNyZWF0ZUlucHV0KCJidXR0b24iLCBtZW51S2V5LCAie3suYnV0dG9uLnNhdmV9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBzYXZlU2V0dGluZ3MoKTsnKTsNCiAgICAgICAgICAgICAgICBpbnRlcmFjdGlvbi5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gdGhpcy5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgbWVudUtleSwgInt7LmJ1dHRvbi5iYWNrdXB9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBiYWNrdXAoKTsnKTsNCiAgICAgICAgICAgICAgICBpbnRlcmFjdGlvbi5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gdGhpcy5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgbWVudUtleSwgInt7LmJ1dHRvbi5yZXN0b3JlfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogcmVzdG9yZSgpOycpOw0KICAgICAgICAgICAgICAgIGludGVyYWN0aW9uLmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICB2YXIgd3JhcHBlciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIkRJViIpOw0KICAgICAgICAgICAgICAgIHdyYXBwZXIuc2V0QXR0cmlidXRlKCJpZCIsICJib3gtd3JhcHBlciIpOw0KICAgICAgICAgICAgICAgIGRvYy5hcHBlbmRDaGlsZCh3cmFwcGVyKTsNCiAgICAgICAgICAgICAgICB0aGlzLkRpdklEID0gImNvbnRlbnRfc2V0dGluZ3MiOw0KICAgICAgICAgICAgICAgIHZhciBzZXR0aW5ncyA9IHRoaXMuY3JlYXRlRElWKCk7DQogICAgICAgICAgICAgICAgd3JhcHBlci5hcHBlbmRDaGlsZChzZXR0aW5ncyk7DQogICAgICAgICAgICAgICAgc2hvd1NldHRpbmdzKCk7DQogICAgICAgICAgICAgICAgcmV0dXJuOw0KICAgICAgICAgICAgY2FzZSAibG9nIjoNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSB0aGlzLmNyZWF0ZUlucHV0KCJidXR0b24iLCBtZW51S2V5LCAie3suYnV0dG9uLnJlc2V0TG9nc319Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IHJlc2V0TG9ncygpOycpOw0KICAgICAgICAgICAgICAgIGludGVyYWN0aW9uLmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICB2YXIgd3JhcHBlciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIkRJViIpOw0KICAgICAgICAgICAgICAgIHdyYXBwZXIuc2V0QXR0cmlidXRlKCJpZCIsICJib3gtd3JhcHBlciIpOw0KICAgICAgICAgICAgICAgIGRvYy5hcHBlbmRDaGlsZCh3cmFwcGVyKTsNCiAgICAgICAgICAgICAgICB0aGlzLkRpdklEID0gImNvbnRlbnRfbG9nIjsNCiAgICAgICAgICAgICAgICB2YXIgbG9ncyA9IHRoaXMuY3JlYXRlRElWKCk7DQogICAgICAgICAgICAgICAgd3JhcHBlci5hcHBlbmRDaGlsZChsb2dzKTsNCiAgICAgICAgICAgICAgICBzaG93TG9ncyh0cnVlKTsNCiAgICAgICAgICAgICAgICByZXR1cm47DQogICAgICAgICAgICBjYXNlICJsb2dvdXQiOg0KICAgICAgICAgICAgICAgIGxvY2F0aW9uLnJlbG9hZCgpOw0KICAgICAgICAgICAgICAgIGRvY3VtZW50LmNvb2tpZSA9ICJUb2tlbj0gOyBleHBpcmVzID0gVGh1LCAwMSBKYW4gMTk3MCAwMDowMDowMCBHTVQiOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZygiU2hvdyBjb250ZW50IChtZW51S2V5KToiLCBtZW51S2V5KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgfQ0KICAgICAgICAvLyBDcmVhdGUgdGFibGUgKGlmIG5lZWRlZCkNCiAgICAgICAgdmFyIHRhYmxlSGVhZGVyID0gbWVudUl0ZW1zW3RoaXMubWVudUlEXS50YWJsZUhlYWRlcjsNCiAgICAgICAgaWYgKHRhYmxlSGVhZGVyLmxlbmd0aCA+IDApIHsNCiAgICAgICAgICAgIHZhciB3cmFwcGVyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiRElWIik7DQogICAgICAgICAgICBkb2MuYXBwZW5kQ2hpbGQod3JhcHBlcik7DQogICAgICAgICAgICB3cmFwcGVyLnNldEF0dHJpYnV0ZSgiaWQiLCAiYm94LXdyYXBwZXIiKTsNCiAgICAgICAgICAgIHZhciB0YWJsZSA9IHRoaXMuY3JlYXRlVEFCTEUoKTsNCiAgICAgICAgICAgIHdyYXBwZXIuYXBwZW5kQ2hpbGQodGFibGUpOw0KICAgICAgICAgICAgdmFyIGhlYWRlciA9IHRoaXMuY3JlYXRlVGFibGVSb3coKTsNCiAgICAgICAgICAgIHRhYmxlLmFwcGVuZENoaWxkKGhlYWRlcik7DQogICAgICAgICAgICAvLyBUYWJsZSBoZWFkZXINCiAgICAgICAgICAgIHRhYmxlSGVhZGVyLmZvckVhY2goZWxlbWVudCA9PiB7DQogICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBlbGVtZW50Ow0KICAgICAgICAgICAgICAgIGlmIChlbGVtZW50ID09ICJCVUxLIikgew0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJCVUxLX0hFQUQiOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZmFsc2U7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIGlmIChtZW51S2V5ID09ICJtYXBwaW5nIikgew0KICAgICAgICAgICAgICAgICAgICBpZiAoZWxlbWVudCA9PSAie3subWFwcGluZy50YWJsZS5jaE5vfX0iKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLm9uY2xpY2sgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5vbmNsaWNrRnVuY3Rpb24gPSAiamF2YXNjcmlwdDogc29ydFRhYmxlKDEpOyI7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnRkQ2xhc3NOYW1lID0gInNvcnRUaGlzIjsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBpZiAoZWxlbWVudCA9PSAie3subWFwcGluZy50YWJsZS5jaGFubmVsTmFtZX19Iikgew0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5vbmNsaWNrID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwub25jbGlja0Z1bmN0aW9uID0gImphdmFzY3JpcHQ6IHNvcnRUYWJsZSgzKTsiOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIGlmIChlbGVtZW50ID09ICJ7ey5tYXBwaW5nLnRhYmxlLnBsYXlsaXN0fX0iKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLm9uY2xpY2sgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5vbmNsaWNrRnVuY3Rpb24gPSAiamF2YXNjcmlwdDogc29ydFRhYmxlKDQpOyI7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgaWYgKGVsZW1lbnQgPT0gInt7Lm1hcHBpbmcudGFibGUuZ3JvdXBUaXRsZX19Iikgew0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5vbmNsaWNrID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwub25jbGlja0Z1bmN0aW9uID0gImphdmFzY3JpcHQ6IHNvcnRUYWJsZSg1KTsiOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIGlmIChlbGVtZW50ID09ICJ7ey5tYXBwaW5nLnRhYmxlLnRpbWVzaGlmdH19Iikgew0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5vbmNsaWNrID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwub25jbGlja0Z1bmN0aW9uID0gImphdmFzY3JpcHQ6IHNvcnRUYWJsZSg4KTsiOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIGlmIChtZW51S2V5ID09ICJmaWx0ZXIiKSB7DQogICAgICAgICAgICAgICAgICAgIGlmIChlbGVtZW50ID09ICJ7ey5maWx0ZXIudGFibGUuc3RhcnRpbmdDaGFubmVsfX0iKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLm9uY2xpY2sgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5vbmNsaWNrRnVuY3Rpb24gPSAiamF2YXNjcmlwdDogc29ydFRhYmxlKDApOyI7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnRkQ2xhc3NOYW1lID0gInNvcnRUaGlzIjsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBpZiAoZWxlbWVudCA9PSAie3suZmlsdGVyLnRhYmxlLm5hbWV9fSIpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwub25jbGljayA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLm9uY2xpY2tGdW5jdGlvbiA9ICJqYXZhc2NyaXB0OiBzb3J0VGFibGUoMSk7IjsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBpZiAoZWxlbWVudCA9PSAie3suZmlsdGVyLnRhYmxlLnR5cGV9fSIpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwub25jbGljayA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLm9uY2xpY2tGdW5jdGlvbiA9ICJqYXZhc2NyaXB0OiBzb3J0VGFibGUoMik7IjsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBpZiAoZWxlbWVudCA9PSAie3suZmlsdGVyLnRhYmxlLmZpbHRlcn19Iikgew0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5vbmNsaWNrID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwub25jbGlja0Z1bmN0aW9uID0gImphdmFzY3JpcHQ6IHNvcnRUYWJsZSgzKTsiOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIGhlYWRlci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICB9KTsNCiAgICAgICAgICAgIHRhYmxlLmFwcGVuZENoaWxkKGhlYWRlcik7DQogICAgICAgICAgICAvLyBDb250ZW50IG9mIHRoZSB0YWJsZQ0KICAgICAgICAgICAgdmFyIHJvd3MgPSB0aGlzLmNyZWF0ZVRhYmxlQ29udGVudChtZW51S2V5KTsNCiAgICAgICAgICAgIHJvd3MuZm9yRWFjaCh0ciA9PiB7DQogICAgICAgICAgICAgICAgdGFibGUuYXBwZW5kQ2hpbGQodHIpOw0KICAgICAgICAgICAgfSk7DQogICAgICAgIH0NCiAgICAgICAgc3dpdGNoIChtZW51S2V5KSB7DQogICAgICAgICAgICBjYXNlICJtYXBwaW5nIjoNCiAgICAgICAgICAgICAgICBzb3J0VGFibGUoMSk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJmaWx0ZXIiOg0KICAgICAgICAgICAgICAgIHNob3dQcmV2aWV3KHRydWUpOw0KICAgICAgICAgICAgICAgIHNvcnRUYWJsZSgwKTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICAgICAgQ09MVU1OX1RPX1NPUlQgPSAtMTsNCiAgICAgICAgICAgICAgICBzb3J0VGFibGUoMCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIH0NCiAgICAgICAgc2hvd0VsZW1lbnQoImxvYWRpbmciLCBmYWxzZSk7DQogICAgfQ0KfQ0KZnVuY3Rpb24gUGFnZVJlYWR5KCkgew0KICAgIGxldCBzZXJ2ZXIgPSBuZXcgU2VydmVyKCJnZXRTZXJ2ZXJDb25maWciKTsNCiAgICBzZXJ2ZXIucmVxdWVzdCh7fSk7DQogICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoInJlc2l6ZSIsIGZ1bmN0aW9uICgpIHsNCiAgICAgICAgY2FsY3VsYXRlV3JhcHBlckhlaWdodCgpOw0KICAgIH0sIHRydWUpOw0KICAgIHNldEludGVydmFsKGZ1bmN0aW9uICgpIHsNCiAgICAgICAgdXBkYXRlTG9nKCk7DQogICAgfSwgMTAwMDApOw0KICAgIHJldHVybjsNCn0NCmZ1bmN0aW9uIGNyZWF0ZUxheW91dCgpIHsNCiAgICAvLyBDbGllbnQgSW5mbw0KICAgIGxldCBvYmogPSBTRVJWRVJbImNsaWVudEluZm8iXTsNCiAgICBsZXQga2V5cyA9IGdldE93bk9ialByb3BzKG9iaik7DQogICAgZm9yICh2YXIgaSA9IDA7IGkgPCBrZXlzLmxlbmd0aDsgaSsrKSB7DQogICAgICAgIGlmIChkb2N1bWVudC5nZXRFbGVtZW50QnlJZChrZXlzW2ldKSkgew0KICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoa2V5c1tpXSkuaW5uZXJIVE1MID0gb2JqW2tleXNbaV1dOw0KICAgICAgICB9DQogICAgfQ0KICAgIGlmICghZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm1haW4tbWVudSIpKSB7DQogICAgICAgIHJldHVybjsNCiAgICB9DQogICAgLy8gQ3JlYXRlIG1lbnUNCiAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibWFpbi1tZW51IikuaW5uZXJIVE1MID0gIiI7DQogICAgZm9yIChsZXQgaSA9IDA7IGkgPCBtZW51SXRlbXMubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgbWVudUl0ZW1zW2ldLmlkID0gaTsNCiAgICAgICAgc3dpdGNoIChtZW51SXRlbXNbaV1bIm1lbnVLZXkiXSkgew0KICAgICAgICAgICAgY2FzZSAidXNlcnMiOg0KICAgICAgICAgICAgY2FzZSAibG9nb3V0IjoNCiAgICAgICAgICAgICAgICBpZiAoU0VSVkVSWyJzZXR0aW5ncyJdWyJhdXRoZW50aWNhdGlvbi53ZWIiXSA9PSB0cnVlKSB7DQogICAgICAgICAgICAgICAgICAgIG1lbnVJdGVtc1tpXS5jcmVhdGVJdGVtKCk7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAibWFwcGluZyI6DQogICAgICAgICAgICBjYXNlICJ4bWx0diI6DQogICAgICAgICAgICAgICAgaWYgKFNFUlZFUlsiY2xpZW50SW5mbyJdWyJlcGdTb3VyY2UiXSA9PSAiWEVQRyIpIHsNCiAgICAgICAgICAgICAgICAgICAgbWVudUl0ZW1zW2ldLmNyZWF0ZUl0ZW0oKTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBkZWZhdWx0Og0KICAgICAgICAgICAgICAgIG1lbnVJdGVtc1tpXS5jcmVhdGVJdGVtKCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIH0NCiAgICB9DQogICAgcmV0dXJuOw0KfQ0KZnVuY3Rpb24gb3BlblRoaXNNZW51KGVsZW1lbnQpIHsNCiAgICBsZXQgaWQgPSBlbGVtZW50LmlkOw0KICAgIGxldCBjb250ZW50ID0gbmV3IFNob3dDb250ZW50KGlkKTsNCiAgICBjb250ZW50LnNob3coKTsNCiAgICBjYWxjdWxhdGVXcmFwcGVySGVpZ2h0KCk7DQogICAgcmV0dXJuOw0KfQ0KY2xhc3MgUG9wdXBXaW5kb3cgew0KICAgIGNvbnN0cnVjdG9yKCkgew0KICAgICAgICB0aGlzLkRvY3VtZW50SUQgPSAicG9wdXAtY3VzdG9tIjsNCiAgICAgICAgdGhpcy5JbnRlcmFjdGlvbklEID0gImludGVyYWN0aW9uIjsNCiAgICAgICAgdGhpcy5kb2MgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCh0aGlzLkRvY3VtZW50SUQpOw0KICAgIH0NCiAgICBjcmVhdGVUaXRsZSh0aXRsZSkgew0KICAgICAgICBsZXQgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICB0ZC5jbGFzc05hbWUgPSAibGVmdCI7DQogICAgICAgIHRkLmlubmVySFRNTCA9IHRpdGxlICsgIjoiOw0KICAgICAgICByZXR1cm4gdGQ7DQogICAgfQ0KICAgIGNyZWF0ZUNvbnRlbnQoZWxlbWVudCkgew0KICAgICAgICBsZXQgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICB0ZC5hcHBlbmRDaGlsZChlbGVtZW50KTsNCiAgICAgICAgcmV0dXJuIHRkOw0KICAgIH0NCiAgICBjcmVhdGVJbnRlcmFjdGlvbigpIHsNCiAgICAgICAgbGV0IGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOw0KICAgICAgICBkaXYuc2V0QXR0cmlidXRlKCJpZCIsICJwb3B1cC1pbnRlcmFjdGlvbiIpOw0KICAgICAgICBkaXYuY2xhc3NOYW1lID0gImludGVyYWN0aW9uIjsNCiAgICAgICAgdGhpcy5kb2MuYXBwZW5kQ2hpbGQoZGl2KTsNCiAgICB9DQp9DQpjbGFzcyBQb3B1cENvbnRlbnQgZXh0ZW5kcyBQb3B1cFdpbmRvdyB7DQogICAgY29uc3RydWN0b3IoKSB7DQogICAgICAgIHN1cGVyKC4uLmFyZ3VtZW50cyk7DQogICAgICAgIHRoaXMudGFibGUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJUQUJMRSIpOw0KICAgIH0NCiAgICBjcmVhdGVIZWFkbGluZShoZWFkbGluZSkgew0KICAgICAgICB0aGlzLmRvYy5pbm5lckhUTUwgPSAiIjsNCiAgICAgICAgdmFyIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJIMyIpOw0KICAgICAgICBlbGVtZW50LmlubmVySFRNTCA9IGhlYWRsaW5lLnRvVXBwZXJDYXNlKCk7DQogICAgICAgIHRoaXMuZG9jLmFwcGVuZENoaWxkKGVsZW1lbnQpOw0KICAgICAgICAvLyBDcmVhdGUgdGFibGUNCiAgICAgICAgdGhpcy50YWJsZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlRBQkxFIik7DQogICAgICAgIHRoaXMuZG9jLmFwcGVuZENoaWxkKHRoaXMudGFibGUpOw0KICAgIH0NCiAgICBhcHBlbmRSb3codGl0bGUsIGVsZW1lbnQpIHsNCiAgICAgICAgbGV0IHRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVFIiKTsNCiAgICAgICAgLy8gVGl0bGUNCiAgICAgICAgaWYgKHRpdGxlLmxlbmd0aCAhPSAwKSB7DQogICAgICAgICAgICB0ci5hcHBlbmRDaGlsZCh0aGlzLmNyZWF0ZVRpdGxlKHRpdGxlKSk7DQogICAgICAgIH0NCiAgICAgICAgLy8gQ29udGVudA0KICAgICAgICB0ci5hcHBlbmRDaGlsZCh0aGlzLmNyZWF0ZUNvbnRlbnQoZWxlbWVudCkpOw0KICAgICAgICB0aGlzLnRhYmxlLmFwcGVuZENoaWxkKHRyKTsNCiAgICB9DQogICAgY3JlYXRlSW5wdXQodHlwZSwgbmFtZSwgdmFsdWUpIHsNCiAgICAgICAgbGV0IGlucHV0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiSU5QVVQiKTsNCiAgICAgICAgaWYgKHZhbHVlID09IHVuZGVmaW5lZCkgew0KICAgICAgICAgICAgdmFsdWUgPSAiIjsNCiAgICAgICAgfQ0KICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInR5cGUiLCB0eXBlKTsNCiAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJuYW1lIiwgbmFtZSk7DQogICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgidmFsdWUiLCB2YWx1ZSk7DQogICAgICAgIHJldHVybiBpbnB1dDsNCiAgICB9DQogICAgY3JlYXRlQ2hlY2tib3gobmFtZSkgew0KICAgICAgICBsZXQgaW5wdXQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJJTlBVVCIpOw0KICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInR5cGUiLCAiY2hlY2tib3giKTsNCiAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJuYW1lIiwgbmFtZSk7DQogICAgICAgIHJldHVybiBpbnB1dDsNCiAgICB9DQogICAgLy8gQ3JlYXRlcyBhIHNlbGVjdGlvbiBvZiBtdWx0aXBsZSBvcHRpb25zIHZhbHVlcyB3aXRoIHRleHQgZGVzY3JpcHRpb25zDQogICAgY3JlYXRlU2VsZWN0KHRleHQsIHZhbHVlcywgc2V0LCBkYktleSkgew0KICAgICAgICBsZXQgc2VsZWN0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiU0VMRUNUIik7DQogICAgICAgIHNlbGVjdC5zZXRBdHRyaWJ1dGUoIm5hbWUiLCBkYktleSk7DQogICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGV4dC5sZW5ndGg7IGkrKykgew0KICAgICAgICAgICAgbGV0IG9wdGlvbiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIk9QVElPTiIpOw0KICAgICAgICAgICAgb3B0aW9uLnNldEF0dHJpYnV0ZSgidmFsdWUiLCB2YWx1ZXNbaV0pOw0KICAgICAgICAgICAgb3B0aW9uLmlubmVyVGV4dCA9IHRleHRbaV07DQogICAgICAgICAgICBzZWxlY3QuYXBwZW5kQ2hpbGQob3B0aW9uKTsNCiAgICAgICAgfQ0KICAgICAgICBpZiAoc2V0ICE9ICIiKSB7DQogICAgICAgICAgICBzZWxlY3QudmFsdWUgPSBzZXQ7DQogICAgICAgIH0NCiAgICAgICAgaWYgKHNldCA9PSB1bmRlZmluZWQpIHsNCiAgICAgICAgICAgIHNlbGVjdC52YWx1ZSA9IHZhbHVlc1swXTsNCiAgICAgICAgfQ0KICAgICAgICByZXR1cm4gc2VsZWN0Ow0KICAgIH0NCiAgICBzZWxlY3RPcHRpb24oc2VsZWN0LCB2YWx1ZSkgew0KICAgICAgICAvL3NlbGVjdC5zZWxlY3RlZE9wdGlvbnMgPSB2YWx1ZQ0KICAgICAgICBsZXQgcyA9IHNlbGVjdDsNCiAgICAgICAgcy5vcHRpb25zW3Muc2VsZWN0ZWRJbmRleF0udmFsdWUgPSB2YWx1ZTsNCiAgICAgICAgcmV0dXJuIHNlbGVjdDsNCiAgICB9DQogICAgZGVzY3JpcHRpb24odmFsdWUpIHsNCiAgICAgICAgbGV0IHRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVFIiKTsNCiAgICAgICAgbGV0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgbGV0IHNwYW4gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJQUkUiKTsNCiAgICAgICAgc3Bhbi5pbm5lckhUTUwgPSB2YWx1ZTsNCiAgICAgICAgdHIuYXBwZW5kQ2hpbGQodGQpOw0KICAgICAgICB0ci5hcHBlbmRDaGlsZCh0aGlzLmNyZWF0ZUNvbnRlbnQoc3BhbikpOw0KICAgICAgICB0aGlzLnRhYmxlLmFwcGVuZENoaWxkKHRyKTsNCiAgICB9DQogICAgLy8gSW50ZXJhY3Rpb24NCiAgICBhZGRJbnRlcmFjdGlvbihlbGVtZW50KSB7DQogICAgICAgIGxldCBpbnRlcmFjdGlvbiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJwb3B1cC1pbnRlcmFjdGlvbiIpOw0KICAgICAgICBpbnRlcmFjdGlvbi5hcHBlbmRDaGlsZChlbGVtZW50KTsNCiAgICB9DQp9DQpmdW5jdGlvbiBvcGVuUG9wVXAoZGF0YVR5cGUsIGVsZW1lbnQpIHsNCiAgICBsZXQgZGF0YSA9IHt9Ow0KICAgIGxldCBpZDsNCiAgICBzd2l0Y2ggKGVsZW1lbnQpIHsNCiAgICAgICAgY2FzZSB1bmRlZmluZWQ6DQogICAgICAgICAgICBzd2l0Y2ggKGRhdGFUeXBlKSB7DQogICAgICAgICAgICAgICAgY2FzZSAiZ3JvdXAtdGl0bGUiOg0KICAgICAgICAgICAgICAgICAgICBpZiAoaWQgPT0gdW5kZWZpbmVkKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBpZCA9IC0xOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIGRhdGEgPSBnZXRMb2NhbERhdGEoImZpbHRlciIsIGlkKTsNCiAgICAgICAgICAgICAgICAgICAgZGF0YVsidHlwZSJdID0gImdyb3VwLXRpdGxlIjsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAiY3VzdG9tLWZpbHRlciI6DQogICAgICAgICAgICAgICAgICAgIGlmIChpZCA9PSB1bmRlZmluZWQpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGlkID0gLTE7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgZGF0YSA9IGdldExvY2FsRGF0YSgiZmlsdGVyIiwgaWQpOw0KICAgICAgICAgICAgICAgICAgICBkYXRhWyJ0eXBlIl0gPSAiY3VzdG9tLWZpbHRlciI7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICAgICAgICAgIGRhdGFbImlkLnByb3ZpZGVyIl0gPSAiLSI7DQogICAgICAgICAgICAgICAgICAgIGRhdGFbInR5cGUiXSA9IGRhdGFUeXBlOw0KICAgICAgICAgICAgICAgICAgICBpZCA9ICItIjsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgIGlkID0gZWxlbWVudC5pZDsNCiAgICAgICAgICAgIGRhdGEgPSBnZXRMb2NhbERhdGEoZGF0YVR5cGUsIGlkKTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgIH0NCiAgICBsZXQgY29udGVudCA9IG5ldyBQb3B1cENvbnRlbnQoKTsNCiAgICBzd2l0Y2ggKGRhdGFUeXBlKSB7DQogICAgICAgIGNhc2UgInBsYXlsaXN0IjoNCiAgICAgICAgICAgIGNvbnRlbnQuY3JlYXRlSGVhZGxpbmUoInt7LnBsYXlsaXN0LnBsYXlsaXN0VHlwZS50aXRsZX19Iik7DQogICAgICAgICAgICAvLyBUeXBlDQogICAgICAgICAgICB2YXIgdGV4dCA9IFsiTTNVIiwgIkhESG9tZVJ1biJdOw0KICAgICAgICAgICAgdmFyIHZhbHVlcyA9IFsiamF2YXNjcmlwdDogb3BlblBvcFVwKCdtM3UnKSIsICJqYXZhc2NyaXB0OiBvcGVuUG9wVXAoJ2hkaHInKSJdOw0KICAgICAgICAgICAgdmFyIHNlbGVjdCA9IGNvbnRlbnQuY3JlYXRlU2VsZWN0KHRleHQsIHZhbHVlcywgIiIsICJ0eXBlIik7DQogICAgICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJpZCIsICJ0eXBlIik7DQogICAgICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICdqYXZhc2NyaXB0OiBjaGFuZ2VCdXR0b25BY3Rpb24odGhpcywgIm5leHQiLCAib25jbGljayIpJyk7IC8vIGNoYW5nZUJ1dHRvbkFjdGlvbg0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnBsYXlsaXN0LnR5cGUudGl0bGV9fSIsIHNlbGVjdCk7DQogICAgICAgICAgICAvLyBJbnRlcmFjdGlvbg0KICAgICAgICAgICAgY29udGVudC5jcmVhdGVJbnRlcmFjdGlvbigpOw0KICAgICAgICAgICAgLy8gQWJvcnQNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJjYW5jZWwiLCAie3suYnV0dG9uLmNhbmNlbH19Iik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogc2hvd0VsZW1lbnQoInBvcHVwIiwgZmFsc2UpOycpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICAvLyBOZXh0DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAibmV4dCIsICJ7ey5idXR0b24ubmV4dH19Iik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJtM3UiKScpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJpZCIsICduZXh0Jyk7DQogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJtM3UiOg0KICAgICAgICAgICAgY29udGVudC5jcmVhdGVIZWFkbGluZShkYXRhVHlwZSk7DQogICAgICAgICAgICAvLyBOYW1lDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAibmFtZSI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3sucGxheWxpc3QubmFtZS5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sucGxheWxpc3QubmFtZS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgLy8gRGVzY3JpcHRpb24NCiAgICAgICAgICAgIHZhciBkYktleSA9ICJkZXNjcmlwdGlvbiI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3sucGxheWxpc3QuZGVzY3JpcHRpb24ucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnBsYXlsaXN0LmRlc2NyaXB0aW9uLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBVUkwNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJmaWxlLnNvdXJjZSI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3sucGxheWxpc3QuZmlsZU0zVS5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sucGxheWxpc3QuZmlsZU0zVS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgLy8gVHVuZXINCiAgICAgICAgICAgIGlmIChTRVJWRVJbInNldHRpbmdzIl1bImJ1ZmZlciJdICE9ICItIikgew0KICAgICAgICAgICAgICAgIHZhciB0ZXh0ID0gW107DQogICAgICAgICAgICAgICAgdmFyIHZhbHVlcyA9IFtdOw0KICAgICAgICAgICAgICAgIGZvciAodmFyIGkgPSAxOyBpIDw9IDEwMDsgaSsrKSB7DQogICAgICAgICAgICAgICAgICAgIHRleHQucHVzaChpLnRvU3RyaW5nKCkpOw0KICAgICAgICAgICAgICAgICAgICB2YWx1ZXMucHVzaChpLnRvU3RyaW5nKCkpOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB2YXIgZGJLZXkgPSAidHVuZXIiOw0KICAgICAgICAgICAgICAgIHZhciBzZWxlY3QgPSBjb250ZW50LmNyZWF0ZVNlbGVjdCh0ZXh0LCB2YWx1ZXMsIGRhdGFbZGJLZXldLCBkYktleSk7DQogICAgICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25mb2N1cyIsICJqYXZhc2NyaXB0OiByZXR1cm47Iik7DQogICAgICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnBsYXlsaXN0LnR1bmVyLnRpdGxlfX0iLCBzZWxlY3QpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgZWxzZSB7DQogICAgICAgICAgICAgICAgdmFyIGRiS2V5ID0gInR1bmVyIjsNCiAgICAgICAgICAgICAgICBpZiAoZGF0YVtkYktleV0gPT0gdW5kZWZpbmVkKSB7DQogICAgICAgICAgICAgICAgICAgIGRhdGFbZGJLZXldID0gMTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJyZWFkb25seSIsICJ0cnVlIik7DQogICAgICAgICAgICAgICAgaW5wdXQuY2xhc3NOYW1lID0gIm5vdEF2YWlsYWJsZSI7DQogICAgICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnBsYXlsaXN0LnR1bmVyLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBjb250ZW50LmRlc2NyaXB0aW9uKCJ7ey5wbGF5bGlzdC50dW5lci5kZXNjcmlwdGlvbn19Iik7DQogICAgICAgICAgICAvLyBJbnRlcmF0aW9uDQogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUludGVyYWN0aW9uKCk7DQogICAgICAgICAgICAvLyBEZWxldGUNCiAgICAgICAgICAgIGlmIChkYXRhWyJpZC5wcm92aWRlciJdICE9ICItIikgew0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJkZWxldGUiLCAie3suYnV0dG9uLmRlbGV0ZX19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuY2xhc3NOYW1lID0gImRlbGV0ZSI7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoIm0zdSIsICInICsgaWQgKyAnIiwgdHJ1ZSwgMCknKTsNCiAgICAgICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJiYWNrIiwgInt7LmJ1dHRvbi5iYWNrfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJwbGF5bGlzdCIpJyk7DQogICAgICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICAvLyBBYm9ydA0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImNhbmNlbCIsICJ7ey5idXR0b24uY2FuY2VsfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBzaG93RWxlbWVudCgicG9wdXAiLCBmYWxzZSk7Jyk7DQogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIC8vIFVwZGF0ZQ0KICAgICAgICAgICAgaWYgKGRhdGFbImlkLnByb3ZpZGVyIl0gIT0gIi0iKSB7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgInVwZGF0ZSIsICJ7ey5idXR0b24udXBkYXRlfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogc2F2ZVBvcHVwRGF0YSgibTN1IiwgIicgKyBpZCArICciLCBmYWxzZSwgMSknKTsNCiAgICAgICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIC8vIFNhdmUNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJzYXZlIiwgInt7LmJ1dHRvbi5zYXZlfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBzYXZlUG9wdXBEYXRhKCJtM3UiLCAiJyArIGlkICsgJyIsIGZhbHNlLCAwKScpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSAiaGRociI6DQogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUhlYWRsaW5lKGRhdGFUeXBlKTsNCiAgICAgICAgICAgIC8vIE5hbWUNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJuYW1lIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5wbGF5bGlzdC5uYW1lLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5wbGF5bGlzdC5uYW1lLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBEZXNjcmlwdGlvbg0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gImRlc2NyaXB0aW9uIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5wbGF5bGlzdC5kZXNjcmlwdGlvbi5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sucGxheWxpc3QuZGVzY3JpcHRpb24ucGxhY2Vob2xkZXJ9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIFVSTA0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gImZpbGUuc291cmNlIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5wbGF5bGlzdC5maWxlSERIUi5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sucGxheWxpc3QuZmlsZUhESFIudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIFR1bmVyDQogICAgICAgICAgICBpZiAoU0VSVkVSWyJzZXR0aW5ncyJdWyJidWZmZXIiXSAhPSAiLSIpIHsNCiAgICAgICAgICAgICAgICB2YXIgdGV4dCA9IFtdOw0KICAgICAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBbXTsNCiAgICAgICAgICAgICAgICBmb3IgKHZhciBpID0gMTsgaSA8PSAxMDA7IGkrKykgew0KICAgICAgICAgICAgICAgICAgICB0ZXh0LnB1c2goaS50b1N0cmluZygpKTsNCiAgICAgICAgICAgICAgICAgICAgdmFsdWVzLnB1c2goaS50b1N0cmluZygpKTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgdmFyIGRiS2V5ID0gInR1bmVyIjsNCiAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCBkYXRhW2RiS2V5XSwgZGJLZXkpOw0KICAgICAgICAgICAgICAgIHNlbGVjdC5zZXRBdHRyaWJ1dGUoIm9uZm9jdXMiLCAiamF2YXNjcmlwdDogcmV0dXJuOyIpOw0KICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5wbGF5bGlzdC50dW5lci50aXRsZX19Iiwgc2VsZWN0KTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgICAgIHZhciBkYktleSA9ICJ0dW5lciI7DQogICAgICAgICAgICAgICAgaWYgKGRhdGFbZGJLZXldID09IHVuZGVmaW5lZCkgew0KICAgICAgICAgICAgICAgICAgICBkYXRhW2RiS2V5XSA9IDE7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicmVhZG9ubHkiLCAidHJ1ZSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LmNsYXNzTmFtZSA9ICJub3RBdmFpbGFibGUiOw0KICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5wbGF5bGlzdC50dW5lci50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgY29udGVudC5kZXNjcmlwdGlvbigie3sucGxheWxpc3QudHVuZXIuZGVzY3JpcHRpb259fSIpOw0KICAgICAgICAgICAgLy8gSW50ZXJhY3Rpb24NCiAgICAgICAgICAgIGNvbnRlbnQuY3JlYXRlSW50ZXJhY3Rpb24oKTsNCiAgICAgICAgICAgIC8vIERlbGV0ZQ0KICAgICAgICAgICAgaWYgKGRhdGFbImlkLnByb3ZpZGVyIl0gIT0gIi0iKSB7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImRlbGV0ZSIsICJ7ey5idXR0b24uZGVsZXRlfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogc2F2ZVBvcHVwRGF0YSgiaGRociIsICInICsgaWQgKyAnIiwgdHJ1ZSwgMCknKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5jbGFzc05hbWUgPSAiZGVsZXRlIjsNCiAgICAgICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJiYWNrIiwgInt7LmJ1dHRvbi5iYWNrfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJwbGF5bGlzdCIpJyk7DQogICAgICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICAvLyBBYm9ydA0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImNhbmNlbCIsICJ7ey5idXR0b24uY2FuY2VsfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBzaG93RWxlbWVudCgicG9wdXAiLCBmYWxzZSk7Jyk7DQogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIC8vIFVwZGF0ZQ0KICAgICAgICAgICAgaWYgKGRhdGFbImlkLnByb3ZpZGVyIl0gIT0gIi0iKSB7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgInVwZGF0ZSIsICJ7ey5idXR0b24udXBkYXRlfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogc2F2ZVBvcHVwRGF0YSgiaGRociIsICInICsgaWQgKyAnIiwgZmFsc2UsIDEpJyk7DQogICAgICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICAvLyBTYXZlDQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAic2F2ZSIsICJ7ey5idXR0b24uc2F2ZX19Iik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogc2F2ZVBvcHVwRGF0YSgiaGRociIsICInICsgaWQgKyAnIiwgZmFsc2UsIDApJyk7DQogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJmaWx0ZXIiOg0KICAgICAgICAgICAgY29udGVudC5jcmVhdGVIZWFkbGluZShkYXRhVHlwZSk7DQogICAgICAgICAgICAvLyBUeXBlDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAidHlwZSI7DQogICAgICAgICAgICB2YXIgdGV4dCA9IFsiTTNVOiAiICsgInt7LmZpbHRlci50eXBlLmdyb3VwVGl0bGV9fSIsICJ4VGVWZTogIiArICJ7ey5maWx0ZXIudHlwZS5jdXN0b21GaWx0ZXJ9fSJdOw0KICAgICAgICAgICAgdmFyIHZhbHVlcyA9IFsiamF2YXNjcmlwdDogb3BlblBvcFVwKCdncm91cC10aXRsZScpIiwgImphdmFzY3JpcHQ6IG9wZW5Qb3BVcCgnY3VzdG9tLWZpbHRlcicpIl07DQogICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCAiamF2YXNjcmlwdDogb3BlblBvcFVwKCdncm91cC10aXRsZScpIiwgZGJLZXkpOw0KICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgiaWQiLCBpZCk7DQogICAgICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICdqYXZhc2NyaXB0OiBjaGFuZ2VCdXR0b25BY3Rpb24odGhpcywgIm5leHQiLCAib25jbGljayIpOycpOyAvLyBjaGFuZ2VCdXR0b25BY3Rpb24NCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5maWx0ZXIudHlwZS50aXRsZX19Iiwgc2VsZWN0KTsNCiAgICAgICAgICAgIC8vIEludGVyYWN0aW9uDQogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUludGVyYWN0aW9uKCk7DQogICAgICAgICAgICAvLyBBYm9ydA0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImNhbmNlbCIsICJ7ey5idXR0b24uY2FuY2VsfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBzaG93RWxlbWVudCgicG9wdXAiLCBmYWxzZSk7Jyk7DQogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIC8vIE5leHQNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJuZXh0IiwgInt7LmJ1dHRvbi5uZXh0fX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoImdyb3VwLXRpdGxlIiknKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgiaWQiLCAnbmV4dCcpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSAiY3VzdG9tLWZpbHRlciI6DQogICAgICAgIGNhc2UgImdyb3VwLXRpdGxlIjoNCiAgICAgICAgICAgIHN3aXRjaCAoZGF0YVR5cGUpIHsNCiAgICAgICAgICAgICAgICBjYXNlICJjdXN0b20tZmlsdGVyIjoNCiAgICAgICAgICAgICAgICAgICAgY29udGVudC5jcmVhdGVIZWFkbGluZSgie3suZmlsdGVyLmN1c3RvbX19IiArICIgRmlsdGVyIik7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgImdyb3VwLXRpdGxlIjoNCiAgICAgICAgICAgICAgICAgICAgY29udGVudC5jcmVhdGVIZWFkbGluZSgie3suZmlsdGVyLmdyb3VwfX0iICsgIiBGaWx0ZXIiKTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICB9DQogICAgICAgICAgICAvLyBOYW1lICAgICAgDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAibmFtZSI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3suZmlsdGVyLm5hbWUucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LmZpbHRlci5uYW1lLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBEZXNjcmlwdGlvbg0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gImRlc2NyaXB0aW9uIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5maWx0ZXIuZGVzY3JpcHRpb24ucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LmZpbHRlci5kZXNjcmlwdGlvbi50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgLy8gVHlwZQ0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gInR5cGUiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiaGlkZGVuIiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCIiLCBpbnB1dCk7DQogICAgICAgICAgICB2YXIgZmlsdGVyVHlwZSA9IGRhdGFbZGJLZXldOw0KICAgICAgICAgICAgc3dpdGNoIChmaWx0ZXJUeXBlKSB7DQogICAgICAgICAgICAgICAgY2FzZSAiY3VzdG9tLWZpbHRlciI6DQogICAgICAgICAgICAgICAgICAgIC8vIENhc2Ugc2Vuc2l0aXZlDQogICAgICAgICAgICAgICAgICAgIHZhciBkYktleSA9ICJjYXNlU2Vuc2l0aXZlIjsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChkYktleSk7DQogICAgICAgICAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhW2RiS2V5XTsNCiAgICAgICAgICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LmZpbHRlci5jYXNlU2Vuc2l0aXZlLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAgICAgICAgIC8vIEZpbHRlciBSdWxlIChDdXN0b20pDQogICAgICAgICAgICAgICAgICAgIHZhciBkYktleSA9ICJmaWx0ZXIiOw0KICAgICAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5maWx0ZXIuZmlsdGVyUnVsZS5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5maWx0ZXIuZmlsdGVyUnVsZS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBjYXNlICJncm91cC10aXRsZSI6DQogICAgICAgICAgICAgICAgICAgIC8vYWxlcnQoZGJLZXkgKyAiICIgKyBmaWx0ZXJUeXBlKQ0KICAgICAgICAgICAgICAgICAgICAvLyBGaWx0ZXIgYmFzZWQgb24gdGhlIGdyb3VwcyBpbiB0aGUgTTNVDQogICAgICAgICAgICAgICAgICAgIHZhciBkYktleSA9ICJmaWx0ZXIiOw0KICAgICAgICAgICAgICAgICAgICB2YXIgZ3JvdXBzTTNVID0gZ2V0TG9jYWxEYXRhKCJtM3VHcm91cHMiLCAiIik7DQogICAgICAgICAgICAgICAgICAgIHZhciB0ZXh0ID0gZ3JvdXBzTTNVWyJ0ZXh0Il07DQogICAgICAgICAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBncm91cHNNM1VbInZhbHVlIl07DQogICAgICAgICAgICAgICAgICAgIHZhciBzZWxlY3QgPSBjb250ZW50LmNyZWF0ZVNlbGVjdCh0ZXh0LCB2YWx1ZXMsIGRhdGFbZGJLZXldLCBkYktleSk7DQogICAgICAgICAgICAgICAgICAgIHNlbGVjdC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5maWx0ZXIuZmlsdGVyR3JvdXAudGl0bGV9fSIsIHNlbGVjdCk7DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuZGVzY3JpcHRpb24oInt7LmZpbHRlci5maWx0ZXJHcm91cC5kZXNjcmlwdGlvbn19Iik7DQogICAgICAgICAgICAgICAgICAgIC8vIENhc2Ugc2Vuc2V0aXZlDQogICAgICAgICAgICAgICAgICAgIHZhciBkYktleSA9ICJjYXNlU2Vuc2l0aXZlIjsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChkYktleSk7DQogICAgICAgICAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhW2RiS2V5XTsNCiAgICAgICAgICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LmZpbHRlci5jYXNlU2Vuc2l0aXZlLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAgICAgICAgIHZhciBkYktleSA9ICJpbmNsdWRlIjsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3suZmlsdGVyLmluY2x1ZGUucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3suZmlsdGVyLmluY2x1ZGUudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgICAgICAgICAgY29udGVudC5kZXNjcmlwdGlvbigie3suZmlsdGVyLmluY2x1ZGUuZGVzY3JpcHRpb259fSIpOw0KICAgICAgICAgICAgICAgICAgICB2YXIgZGJLZXkgPSAiZXhjbHVkZSI7DQogICAgICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LmZpbHRlci5leGNsdWRlLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LmZpbHRlci5leGNsdWRlLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuZGVzY3JpcHRpb24oInt7LmZpbHRlci5leGNsdWRlLmRlc2NyaXB0aW9ufX0iKTsNCiAgICAgICAgICAgICAgICAgICAgLy8gUHJlc2VydmUgTTNVIFBsYXlsaXN0IENoYW5uZWwgTWFwcGluZw0KICAgICAgICAgICAgICAgICAgICB2YXIgZGJLZXkgPSAicHJlc2VydmVNYXBwaW5nIjsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChkYktleSk7DQogICAgICAgICAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhW2RiS2V5XTsNCiAgICAgICAgICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LmZpbHRlci5wcmVzZXJ2ZU1hcHBpbmcudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgICAgICAgICAgLy8gU3RhcnRpbmcgQ2hhbm5lbCBOdW1iZXIgTWFwcGluZw0KICAgICAgICAgICAgICAgICAgICB2YXIgZGJLZXkgPSAic3RhcnRpbmdDaGFubmVsIjsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3suZmlsdGVyLnN0YXJ0aW5nQ2hhbm5lbC5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5maWx0ZXIuc3RhcnRpbmdDaGFubmVsLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAgICAgICAgIC8vIEZpbGwgTWlzc2luZyBFUEcgRGF0YQ0KICAgICAgICAgICAgICAgICAgICAvLyBUaGUgZm9sbG93aW5nIGNvZGUgb25seSB3b3JrcyB3aGVuIHhUZVZlIER1bW15IGFscmVhZHkgZXhpc3RzDQogICAgICAgICAgICAgICAgICAgIC8vIHZhciBkYktleTpzdHJpbmcgPSAiZGVmYXVsdE1pc3NpbmdFUEciDQogICAgICAgICAgICAgICAgICAgIC8vIHZhciB4bWx0djpYTUxUVkZpbGUgPSBuZXcgWE1MVFZGaWxlKCkNCiAgICAgICAgICAgICAgICAgICAgLy8gdmFyIHNlbGVjdCA9IHhtbHR2LmdldFByb2dyYW1zKCJ4VGVWZSBEdW1teSIsIGRhdGFbZGJLZXldKQ0KICAgICAgICAgICAgICAgICAgICAvLyBzZWxlY3Quc2V0QXR0cmlidXRlKCJuYW1lIiwgZGJLZXkpDQogICAgICAgICAgICAgICAgICAgIC8vIHNlbGVjdC5zZXRBdHRyaWJ1dGUoImlkIiwgInBvcHVwLW1pc3NpbmctZXBnIikNCiAgICAgICAgICAgICAgICAgICAgLy8gVGhlIHdvcmthcm91bmQgaXMgY3VycmVudGx5IHRvIGhhcmQgY29kZSB0aGUgeFRlVmUgRHVtbXkgZGF0YQ0KICAgICAgICAgICAgICAgICAgICB2YXIgZGJLZXkgPSAiZGVmYXVsdE1pc3NpbmdFUEciOw0KICAgICAgICAgICAgICAgICAgICB2YXIgbGlzdE9wdGlvbnMgPSB7ICJ0ZXh0IjogWyItIiwgIjMwIE1pbnV0ZXMgKDMwX01pbnV0ZXMpIiwgIjYwIE1pbnV0ZXMgKDYwX01pbnV0ZXMpIiwgIjkwIE1pbnV0ZXMgKDkwX01pbnV0ZXMpIiwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAiMTIwIE1pbnV0ZXMgKDEyMF9NaW51dGVzKSIsICIxODAgTWludXRlcyAoMzBfTWludXRlcykiLCAiMjQwIE1pbnV0ZXMgKDMwX01pbnV0ZXMpIiwgIjM2MCBNaW51dGVzICgzMF9NaW51dGVzKSJdLA0KICAgICAgICAgICAgICAgICAgICAgICAgInZhbHVlIjogWyItIiwgIjMwX01pbnV0ZXMiLCAiNjBfTWludXRlcyIsICI5MF9NaW51dGVzIiwgIjEyMF9NaW51dGVzIiwgIjE4MF9NaW51dGVzIiwgIjI0MF9NaW51dGVzIiwgIjM2MF9NaW51dGVzIixdIH07DQogICAgICAgICAgICAgICAgICAgIHZhciB0ZXh0ID0gbGlzdE9wdGlvbnNbInRleHQiXTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHZhbHVlcyA9IGxpc3RPcHRpb25zWyJ2YWx1ZSJdOw0KICAgICAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCBkYXRhW2RiS2V5XSwgZGJLZXkpOw0KICAgICAgICAgICAgICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3suZmlsdGVyLmRlZmF1bHRNaXNzaW5nRVBHLnRpdGxlfX0iLCBzZWxlY3QpOw0KICAgICAgICAgICAgICAgICAgICBjb250ZW50LmRlc2NyaXB0aW9uKCJ7ey5maWx0ZXIuZGVmYXVsdE1pc3NpbmdFUEcuZGVzY3JpcHRpb259fSIpOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBkZWZhdWx0Og0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIC8vIEludGVyYWN0aW9uDQogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUludGVyYWN0aW9uKCk7DQogICAgICAgICAgICAvLyBEZWxldGUNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJkZWxldGUiLCAie3suYnV0dG9uLmRlbGV0ZX19Iik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogc2F2ZVBvcHVwRGF0YSgiZmlsdGVyIiwgIicgKyBpZCArICciLCB0cnVlLCAwKScpOw0KICAgICAgICAgICAgaW5wdXQuY2xhc3NOYW1lID0gImRlbGV0ZSI7DQogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIC8vIEFib3J0DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAiY2FuY2VsIiwgInt7LmJ1dHRvbi5jYW5jZWx9fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IHNob3dFbGVtZW50KCJwb3B1cCIsIGZhbHNlKTsnKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgLy8gU2F2ZQ0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgInNhdmUiLCAie3suYnV0dG9uLnNhdmV9fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoImZpbHRlciIsICInICsgaWQgKyAnIiwgZmFsc2UsIDApJyk7DQogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJ4bWx0diI6DQogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUhlYWRsaW5lKGRhdGFUeXBlKTsNCiAgICAgICAgICAgIC8vIE5hbWUNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJuYW1lIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey54bWx0di5uYW1lLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey54bWx0di5uYW1lLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBEZXNjcmlwdGlvbg0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gImRlc2NyaXB0aW9uIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey54bWx0di5kZXNjcmlwdGlvbi5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sueG1sdHYuZGVzY3JpcHRpb24udGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIFVSTA0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gImZpbGUuc291cmNlIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey54bWx0di5maWxlWE1MVFYucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnhtbHR2LmZpbGVYTUxUVi50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgLy8gSW50ZXJhY3Rpb24NCiAgICAgICAgICAgIGNvbnRlbnQuY3JlYXRlSW50ZXJhY3Rpb24oKTsNCiAgICAgICAgICAgIC8vIERlbGV0ZQ0KICAgICAgICAgICAgaWYgKGRhdGFbImlkLnByb3ZpZGVyIl0gIT0gIi0iKSB7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImRlbGV0ZSIsICJ7ey5idXR0b24uZGVsZXRlfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogc2F2ZVBvcHVwRGF0YSgieG1sdHYiLCAiJyArIGlkICsgJyIsIHRydWUsIDApJyk7DQogICAgICAgICAgICAgICAgaW5wdXQuY2xhc3NOYW1lID0gImRlbGV0ZSI7DQogICAgICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICAvLyBBYm9ydA0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImNhbmNlbCIsICJ7ey5idXR0b24uY2FuY2VsfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBzaG93RWxlbWVudCgicG9wdXAiLCBmYWxzZSk7Jyk7DQogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIC8vIFVwZGF0ZQ0KICAgICAgICAgICAgaWYgKGRhdGFbImlkLnByb3ZpZGVyIl0gIT0gIi0iKSB7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgInVwZGF0ZSIsICJ7ey5idXR0b24udXBkYXRlfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogc2F2ZVBvcHVwRGF0YSgieG1sdHYiLCAiJyArIGlkICsgJyIsIGZhbHNlLCAxKScpOw0KICAgICAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgLy8gU2F2ZQ0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgInNhdmUiLCAie3suYnV0dG9uLnNhdmV9fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoInhtbHR2IiwgIicgKyBpZCArICciLCBmYWxzZSwgMCknKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGNhc2UgInVzZXJzIjoNCiAgICAgICAgICAgIGNvbnRlbnQuY3JlYXRlSGVhZGxpbmUoInt7Lm1haW5NZW51Lml0ZW0udXNlcnN9fSIpOw0KICAgICAgICAgICAgLy8gVXNlciBuYW1lDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAidXNlcm5hbWUiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnVzZXJzLnVzZXJuYW1lLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey51c2Vycy51c2VybmFtZS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgLy8gTmV3IFBhcnNzd29yZA0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gInBhc3N3b3JkIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInBhc3N3b3JkIiwgZGJLZXksICIiKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3sudXNlcnMucGFzc3dvcmQucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnVzZXJzLnBhc3N3b3JkLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBDb25maXJtYXRpb24NCiAgICAgICAgICAgIHZhciBkYktleSA9ICJjb25maXJtIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInBhc3N3b3JkIiwgZGJLZXksICIiKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3sudXNlcnMuY29uZmlybS5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sudXNlcnMuY29uZmlybS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgLy8gQXV0aGVudGljYXRpb24gV0VCDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAiYXV0aGVudGljYXRpb24ud2ViIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goZGJLZXkpOw0KICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGFbZGJLZXldOw0KICAgICAgICAgICAgaWYgKGRhdGFbImRlZmF1bHRVc2VyIl0gPT0gdHJ1ZSkgew0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICJqYXZhc2NyaXB0OiByZXR1cm4gZmFsc2UiKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey51c2Vycy53ZWIudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIEF1dGhlbnRpY2F0aW9uIFBNUw0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gImF1dGhlbnRpY2F0aW9uLnBtcyI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KGRiS2V5KTsNCiAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhW2RiS2V5XTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey51c2Vycy5wbXMudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIEF1dGhlbnRpY2F0aW9uIE0zVQ0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gImF1dGhlbnRpY2F0aW9uLm0zdSI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KGRiS2V5KTsNCiAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhW2RiS2V5XTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey51c2Vycy5tM3UudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIEF1dGhlbnRpY2F0aW9uIFhNTA0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gImF1dGhlbnRpY2F0aW9uLnhtbCI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KGRiS2V5KTsNCiAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhW2RiS2V5XTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey51c2Vycy54bWwudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIEF1dGhlbnRpY2F0aW9uIEFQSQ0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gImF1dGhlbnRpY2F0aW9uLmFwaSI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KGRiS2V5KTsNCiAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhW2RiS2V5XTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey51c2Vycy5hcGkudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIEludGVyYWN0aW9uDQogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUludGVyYWN0aW9uKCk7DQogICAgICAgICAgICAvLyBEZWxldGUNCiAgICAgICAgICAgIGlmIChkYXRhWyJkZWZhdWx0VXNlciJdICE9IHRydWUgJiYgaWQgIT0gIi0iKSB7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImRlbGV0ZSIsICJ7ey5idXR0b24uZGVsZXRlfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5jbGFzc05hbWUgPSAiZGVsZXRlIjsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogc2F2ZVBvcHVwRGF0YSgiJyArIGRhdGFUeXBlICsgJyIsICInICsgaWQgKyAnIiwgdHJ1ZSwgMCknKTsNCiAgICAgICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIC8vIEFib3J0DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAiY2FuY2VsIiwgInt7LmJ1dHRvbi5jYW5jZWx9fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IHNob3dFbGVtZW50KCJwb3B1cCIsIGZhbHNlKTsnKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgLy8gU2F2ZQ0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgInNhdmUiLCAie3suYnV0dG9uLnNhdmV9fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoIicgKyBkYXRhVHlwZSArICciLCAiJyArIGlkICsgJyIsICJmYWxzZSIpOycpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSAibWFwcGluZyI6DQogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUhlYWRsaW5lKCJ7ey5tYWluTWVudS5pdGVtLm1hcHBpbmd9fSIpOw0KICAgICAgICAgICAgLy8gQWN0aXZlDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAieC1hY3RpdmUiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChkYktleSk7DQogICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YVtkYktleV07DQogICAgICAgICAgICBpbnB1dC5pZCA9ICJhY3RpdmUiOw0KICAgICAgICAgICAgLy9pbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIikNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdG9nZ2xlQ2hhbm5lbFN0YXR1cygnIiArIGlkICsgIicsIHRoaXMpIik7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3subWFwcGluZy5hY3RpdmUudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIENoYW5uZWwgbmFtZQ0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gIngtbmFtZSI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgIGlmIChCVUxLX0VESVQgPT0gdHJ1ZSkgew0KICAgICAgICAgICAgICAgIGlucHV0LnN0eWxlLmJvcmRlciA9ICJzb2xpZCAxcHggcmVkIjsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInJlYWRvbmx5IiwgInRydWUiKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5tYXBwaW5nLmNoYW5uZWxOYW1lLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICBjb250ZW50LmRlc2NyaXB0aW9uKGRhdGFbIm5hbWUiXSk7DQogICAgICAgICAgICAvLyBEZXNjcmlwdGlvbg0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gIngtZGVzY3JpcHRpb24iOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7Lm1hcHBpbmcuZGVzY3JpcHRpb24ucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7Lm1hcHBpbmcuZGVzY3JpcHRpb24udGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIFVwZGF0ZSB0aGUgY2hhbm5lbCBuYW1lDQogICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgiX3V1aWQua2V5IikpIHsNCiAgICAgICAgICAgICAgICBpZiAoZGF0YVsiX3V1aWQua2V5Il0gIT0gIiIpIHsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGRiS2V5ID0gIngtdXBkYXRlLWNoYW5uZWwtbmFtZSI7DQogICAgICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goZGJLZXkpOw0KICAgICAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhW2RiS2V5XTsNCiAgICAgICAgICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7Lm1hcHBpbmcudXBkYXRlQ2hhbm5lbE5hbWUudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9DQogICAgICAgICAgICAvLyBMb2dvIFVSTCAoQ2hhbm5lbCkgDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAidHZnLWxvZ28iOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoImlkIiwgImNoYW5uZWwtaWNvbiIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7Lm1hcHBpbmcuY2hhbm5lbExvZ28udGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIENoYW5uZWwgbG9nbyB1cGRhdGUNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJ4LXVwZGF0ZS1jaGFubmVsLWljb24iOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChkYktleSk7DQogICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YVtkYktleV07DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoImlkIiwgInVwZGF0ZS1pY29uIik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnOyBjaGFuZ2VDaGFubmVsTG9nbygnIiArIGlkICsgIicpOyIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7Lm1hcHBpbmcudXBkYXRlQ2hhbm5lbExvZ28udGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIEV4cGFuZCBFUEcgY2F0ZWdvcnkNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJ4LWNhdGVnb3J5IjsNCiAgICAgICAgICAgIHZhciB0ZXh0ID0gWyItIiwgIktpZHMgKEVtYnkgb25seSkiLCAiTmV3cyIsICJNb3ZpZSIsICJTZXJpZXMiLCAiU3BvcnRzIl07DQogICAgICAgICAgICB2YXIgdmFsdWVzID0gWyIiLCAiS2lkcyIsICJOZXdzIiwgIk1vdmllIiwgIlNlcmllcyIsICJTcG9ydHMiXTsNCiAgICAgICAgICAgIHZhciBzZWxlY3QgPSBjb250ZW50LmNyZWF0ZVNlbGVjdCh0ZXh0LCB2YWx1ZXMsIGRhdGFbZGJLZXldLCBkYktleSk7DQogICAgICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7Lm1hcHBpbmcuZXBnQ2F0ZWdvcnkudGl0bGV9fSIsIHNlbGVjdCk7DQogICAgICAgICAgICAvLyBNM1UgZ3JvdXAgdGl0bGUNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJ4LWdyb3VwLXRpdGxlIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgaW5wdXQuZGF0YXNldC5vbGRWYWx1ZSA9IGRhdGFbZGJLZXldOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7Lm1hcHBpbmcubTN1R3JvdXBUaXRsZS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgaWYgKGRhdGFbImdyb3VwLXRpdGxlIl0gIT0gdW5kZWZpbmVkKSB7DQogICAgICAgICAgICAgICAgY29udGVudC5kZXNjcmlwdGlvbihkYXRhWyJncm91cC10aXRsZSJdKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGlmIChkYXRhWyJ4LXVwZGF0ZS1jaGFubmVsLWdyb3VwIl0gPT0gdHJ1ZSkgew0KICAgICAgICAgICAgICAgIGlucHV0LmRpc2FibGVkID0gdHJ1ZTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIC8vIFVwZGF0ZSBjaGFubmVsIGdyb3VwIGNoZWNrYm94DQogICAgICAgICAgICB2YXIgZGJLZXkgPSAieC11cGRhdGUtY2hhbm5lbC1ncm91cCI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KGRiS2V5KTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdG9nZ2xlR3JvdXBVcGRhdGVDYignIiArIGlkICsgIicsIHRoaXMpOyIpOw0KICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGFbZGJLZXldOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7Lm1hcHBpbmcudXBkYXRlQ2hhbm5lbEdyb3VwLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICBjb250ZW50LmRlc2NyaXB0aW9uKCJ7ey5tYXBwaW5nLnVwZGF0ZUNoYW5uZWxHcm91cC5kZXNjcmlwdGlvbn19Iik7DQogICAgICAgICAgICAvLyBYTUxUViBmaWxlDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAieC14bWx0di1maWxlIjsNCiAgICAgICAgICAgIHZhciB4bWxGaWxlID0gZGF0YVtkYktleV07DQogICAgICAgICAgICB2YXIgeG1sdHYgPSBuZXcgWE1MVFZGaWxlKCk7DQogICAgICAgICAgICB2YXIgc2VsZWN0ID0geG1sdHYuZ2V0RmlsZXMoZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgibmFtZSIsIGRiS2V5KTsNCiAgICAgICAgICAgIHNlbGVjdC5zZXRBdHRyaWJ1dGUoImlkIiwgInBvcHVwLXhtbHR2Iik7DQogICAgICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsIGBqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJzsgc2V0WG1sdHZDaGFubmVsKCcke2lkfScsIHRoaXMpO2ApOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7Lm1hcHBpbmcueG1sdHZGaWxlLnRpdGxlfX0iLCBzZWxlY3QpOw0KICAgICAgICAgICAgLy8gWE1MVFYgTWFwcGluZw0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gJ3gtbWFwcGluZyc7DQogICAgICAgICAgICB2YXIgeG1sdHYgPSBuZXcgWE1MVFZGaWxlKCk7DQogICAgICAgICAgICBjb25zdCB4TWFwcGluZyA9IGRhdGFbZGJLZXldOw0KICAgICAgICAgICAgY29uc3QgeG1sVHZJZFNlbGVjdCA9IHhtbHR2LmdldFByb2dyYW1zKHhtbEZpbGUsIHhNYXBwaW5nKTsNCiAgICAgICAgICAgIHhtbFR2SWRTZWxlY3Quc2V0QXR0cmlidXRlKCduYW1lJywgZGJLZXkpOw0KICAgICAgICAgICAgeG1sVHZJZFNlbGVjdC5zZXRBdHRyaWJ1dGUoJ2lkJywgJ3BvcHVwLW1hcHBpbmcnKTsNCiAgICAgICAgICAgIHhtbFR2SWRTZWxlY3Quc2V0QXR0cmlidXRlKCdvbmNoYW5nZScsIGBqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJzsgY2hlY2tYbWx0dkNoYW5uZWwoJyR7aWR9JywgdGhpcywgJyR7eG1sRmlsZX0nKTtgKTsNCiAgICAgICAgICAgIHNvcnRTZWxlY3QoeG1sVHZJZFNlbGVjdCk7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygne3subWFwcGluZy54bWx0dkNoYW5uZWwudGl0bGV9fScsIHhtbFR2SWRTZWxlY3QpOw0KICAgICAgICAgICAgLy8gVGltZXNoaWZ0DQogICAgICAgICAgICB2YXIgZGJLZXkgPSAieC10aW1lc2hpZnQiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7Lm1hcHBpbmcudGltZXNoaWZ0LnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgiaWQiLCAidGltZXNoaWZ0Iik7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3subWFwcGluZy50aW1lc2hpZnQudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIEludGVyYWN0aW9uDQogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUludGVyYWN0aW9uKCk7DQogICAgICAgICAgICAvLyBVcGxvYWQgbG9nbw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImNhbmNlbCIsICJ7ey5idXR0b24udXBsb2FkTG9nb319Iik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogdXBsb2FkTG9nbygpOycpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICAvLyBBYm9ydA0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImNhbmNlbCIsICJ7ey5idXR0b24uY2FuY2VsfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBzaG93RWxlbWVudCgicG9wdXAiLCBmYWxzZSk7Jyk7DQogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIC8vIEZpbmlzaGVkDQogICAgICAgICAgICB2YXIgaWRzID0gW107DQogICAgICAgICAgICBpZHMgPSBnZXRBbGxTZWxlY3RlZENoYW5uZWxzKCk7DQogICAgICAgICAgICBpZiAoaWRzLmxlbmd0aCA9PSAwKSB7DQogICAgICAgICAgICAgICAgaWRzLnB1c2goaWQpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgInNhdmUiLCAie3suYnV0dG9uLmRvbmV9fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IGRvbmVQb3B1cERhdGEoIicgKyBkYXRhVHlwZSArICciLCAiJyArIGlkcyArICciLCAiZmFsc2UiKTsnKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICBicmVhazsNCiAgICB9DQogICAgc2hvd1BvcFVwRWxlbWVudCgncG9wdXAtY3VzdG9tJyk7DQp9DQpjbGFzcyBYTUxUVkZpbGUgew0KICAgIGdldEZpbGVzKHNldCkgew0KICAgICAgICBsZXQgZmlsZUlEcyA9IGdldE93bk9ialByb3BzKFNFUlZFUlsieGVwZyJdWyJ4bWx0dk1hcCJdKTsNCiAgICAgICAgbGV0IHZhbHVlcyA9IG5ldyBBcnJheSgiLSIpOw0KICAgICAgICBsZXQgdGV4dCA9IG5ldyBBcnJheSgiLSIpOw0KICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGZpbGVJRHMubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgICAgIGlmIChmaWxlSURzW2ldICE9ICJ4VGVWZSBEdW1teSIpIHsNCiAgICAgICAgICAgICAgICB2YWx1ZXMucHVzaChnZXRWYWx1ZUZyb21Qcm92aWRlckZpbGUoZmlsZUlEc1tpXSwgInhtbHR2IiwgImZpbGUueHRldmUiKSk7DQogICAgICAgICAgICAgICAgdGV4dC5wdXNoKGdldFZhbHVlRnJvbVByb3ZpZGVyRmlsZShmaWxlSURzW2ldLCAieG1sdHYiLCAibmFtZSIpKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgICAgIHZhbHVlcy5wdXNoKGZpbGVJRHNbaV0pOw0KICAgICAgICAgICAgICAgIHRleHQucHVzaChmaWxlSURzW2ldKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KICAgICAgICBsZXQgc2VsZWN0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiU0VMRUNUIik7DQogICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGV4dC5sZW5ndGg7IGkrKykgew0KICAgICAgICAgICAgdmFyIG9wdGlvbiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIk9QVElPTiIpOw0KICAgICAgICAgICAgb3B0aW9uLnNldEF0dHJpYnV0ZSgidmFsdWUiLCB2YWx1ZXNbaV0pOw0KICAgICAgICAgICAgb3B0aW9uLmlubmVyVGV4dCA9IHRleHRbaV07DQogICAgICAgICAgICBzZWxlY3QuYXBwZW5kQ2hpbGQob3B0aW9uKTsNCiAgICAgICAgfQ0KICAgICAgICBpZiAoc2V0ICE9ICIiKSB7DQogICAgICAgICAgICBzZWxlY3QudmFsdWUgPSBzZXQ7DQogICAgICAgIH0NCiAgICAgICAgcmV0dXJuIHNlbGVjdDsNCiAgICB9DQogICAgZ2V0UHJvZ3JhbXMoeG1sRmlsZSwgeE1hcHBpbmcpIHsNCiAgICAgICAgY29uc3QgdmFsdWVzID0gZ2V0T3duT2JqUHJvcHMoU0VSVkVSWyd4ZXBnJ11bJ3htbHR2TWFwJ11beG1sRmlsZV0pOw0KICAgICAgICBjb25zdCB0ZXh0ID0gW107DQogICAgICAgIGxldCBmcmllbmRseU5hbWU7DQogICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdmFsdWVzLmxlbmd0aDsgaSsrKSB7DQogICAgICAgICAgICBpZiAoU0VSVkVSWyd4ZXBnJ11bJ3htbHR2TWFwJ11beG1sRmlsZV1bdmFsdWVzW2ldXS5oYXNPd25Qcm9wZXJ0eSgnZnJpZW5kbHktbmFtZScpID09IHRydWUpIHsNCiAgICAgICAgICAgICAgICBmcmllbmRseU5hbWUgPSBTRVJWRVJbJ3hlcGcnXVsneG1sdHZNYXAnXVt4bWxGaWxlXVt2YWx1ZXNbaV1dWydmcmllbmRseS1uYW1lJ107DQogICAgICAgICAgICB9DQogICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICBmcmllbmRseU5hbWUgPSAnLSc7DQogICAgICAgICAgICB9DQogICAgICAgICAgICB0ZXh0W2ldID0gYCR7ZnJpZW5kbHlOYW1lfSAoJHt2YWx1ZXNbaV19KWA7DQogICAgICAgIH0NCiAgICAgICAgdGV4dC51bnNoaWZ0KCctJyk7DQogICAgICAgIHZhbHVlcy51bnNoaWZ0KCctJyk7DQogICAgICAgIGNvbnN0IHNlbGVjdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NlbGVjdCcpOw0KICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRleHQubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgICAgIGNvbnN0IG9wdGlvbiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ29wdGlvbicpOw0KICAgICAgICAgICAgb3B0aW9uLnNldEF0dHJpYnV0ZSgndmFsdWUnLCB2YWx1ZXNbaV0pOw0KICAgICAgICAgICAgb3B0aW9uLmlubmVyVGV4dCA9IHRleHRbaV07DQogICAgICAgICAgICBzZWxlY3QuYXBwZW5kQ2hpbGQob3B0aW9uKTsNCiAgICAgICAgfQ0KICAgICAgICBzZWxlY3QudmFsdWUgPSAoeE1hcHBpbmcgPT0gJycpID8gJy0nIDogeE1hcHBpbmc7DQogICAgICAgIHJldHVybiBzZWxlY3Q7DQogICAgfQ0KfQ0KZnVuY3Rpb24gZ2V0VmFsdWVGcm9tUHJvdmlkZXJGaWxlKGZpbGUsIGZpbGVUeXBlLCBrZXkpIHsNCiAgICBpZiAoZmlsZSA9PSAieFRlVmUgRHVtbXkiKSB7DQogICAgICAgIHJldHVybiBmaWxlOw0KICAgIH0NCiAgICBsZXQgZmlsZUlEOw0KICAgIGxldCBpbmRpY2F0b3IgPSBmaWxlLmNoYXJBdCgwKTsNCiAgICBzd2l0Y2ggKGluZGljYXRvcikgew0KICAgICAgICBjYXNlICJNIjoNCiAgICAgICAgICAgIGZpbGVUeXBlID0gIm0zdSI7DQogICAgICAgICAgICBmaWxlSUQgPSBmaWxlOw0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGNhc2UgIkgiOg0KICAgICAgICAgICAgZmlsZVR5cGUgPSAiaGRociI7DQogICAgICAgICAgICBmaWxlSUQgPSBmaWxlOw0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGNhc2UgIlgiOg0KICAgICAgICAgICAgZmlsZVR5cGUgPSAieG1sdHYiOw0KICAgICAgICAgICAgZmlsZUlEID0gZmlsZS5zdWJzdHJpbmcoMCwgZmlsZS5sYXN0SW5kZXhPZignLicpKTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgIH0NCiAgICBpZiAoU0VSVkVSWyJzZXR0aW5ncyJdWyJmaWxlcyJdW2ZpbGVUeXBlXS5oYXNPd25Qcm9wZXJ0eShmaWxlSUQpID09IHRydWUpIHsNCiAgICAgICAgdmFyIGRhdGEgPSBTRVJWRVJbInNldHRpbmdzIl1bImZpbGVzIl1bZmlsZVR5cGVdW2ZpbGVJRF07DQogICAgICAgIHJldHVybiBkYXRhW2tleV07DQogICAgfQ0KICAgIHJldHVybjsNCn0NCmZ1bmN0aW9uIHNldFhtbHR2Q2hhbm5lbChlcGdNYXBwaW5nSWQsIG9sZFNlbGVjdCkgew0KICAgIGxldCB4bWx0diA9IG5ldyBYTUxUVkZpbGUoKTsNCiAgICBsZXQgeG1sRmlsZSA9IG9sZFNlbGVjdC52YWx1ZTsNCiAgICBsZXQgdHZnSWQgPSBTRVJWRVJbJ3hlcGcnXVsnZXBnTWFwcGluZyddW2VwZ01hcHBpbmdJZF1bJ3R2Zy1pZCddOw0KICAgIGxldCB0ZCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdwb3B1cC1tYXBwaW5nJykucGFyZW50RWxlbWVudDsNCiAgICB0ZC5pbm5lckhUTUwgPSAnJzsNCiAgICBjb25zdCBuZXdTZWxlY3QgPSB4bWx0di5nZXRQcm9ncmFtcyhvbGRTZWxlY3QudmFsdWUsIHR2Z0lkKTsNCiAgICBuZXdTZWxlY3Quc2V0QXR0cmlidXRlKCduYW1lJywgJ3gtbWFwcGluZycpOw0KICAgIG5ld1NlbGVjdC5zZXRBdHRyaWJ1dGUoJ2lkJywgJ3BvcHVwLW1hcHBpbmcnKTsNCiAgICBuZXdTZWxlY3Quc2V0QXR0cmlidXRlKCdvbmNoYW5nZScsIGBqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJzsgY2hlY2tYbWx0dkNoYW5uZWwoJyR7ZXBnTWFwcGluZ0lkfScsIHRoaXMsICcke3htbEZpbGV9Jyk7YCk7DQogICAgbmV3U2VsZWN0LmNsYXNzTmFtZSA9ICdjaGFuZ2VkJzsNCiAgICBzb3J0U2VsZWN0KG5ld1NlbGVjdCk7DQogICAgdGQuYXBwZW5kQ2hpbGQobmV3U2VsZWN0KTsNCiAgICBjaGVja1htbHR2Q2hhbm5lbChlcGdNYXBwaW5nSWQsIG5ld1NlbGVjdCwgeG1sRmlsZSk7DQp9DQpmdW5jdGlvbiBjaGVja1htbHR2Q2hhbm5lbChlcGdNYXBwaW5nSWQsIHNlbGVjdCwgeG1sRmlsZSkgew0KICAgIGNvbnN0IHNlbGVjdFZhbHVlID0gc2VsZWN0LnZhbHVlOw0KICAgIGxldCBjaGFubmVsQWN0aXZlOw0KICAgIGNvbnN0IGNoZWNrYm94ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2FjdGl2ZScpOw0KICAgIGNoYW5uZWxBY3RpdmUgPSBzZWxlY3RWYWx1ZSAhPSAnLSc7DQogICAgY2hlY2tib3guY2hlY2tlZCA9IGNoYW5uZWxBY3RpdmU7DQogICAgY2hlY2tib3guY2xhc3NOYW1lID0gJ2NoYW5nZWQnOw0KICAgIGlmICh4bWxGaWxlICE9ICd4VGVWZSBEdW1teScgJiYgY2hhbm5lbEFjdGl2ZSA9PSB0cnVlKSB7DQogICAgICAgIGNoYW5nZUNoYW5uZWxMb2dvKGVwZ01hcHBpbmdJZCk7DQogICAgICAgIHJldHVybjsNCiAgICB9DQogICAgaWYgKHhtbEZpbGUgPT0gJ3hUZVZlIER1bW15Jykgew0KICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndXBkYXRlLWljb24nKS5jaGVja2VkID0gZmFsc2U7DQogICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd1cGRhdGUtaWNvbicpLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJzsNCiAgICB9DQp9DQpmdW5jdGlvbiBjaGFuZ2VDaGFubmVsTG9nbyhlcGdNYXBwaW5nSWQpIHsNCiAgICBsZXQgdXBkYXRlTG9nbzsNCiAgICBsZXQgbG9nbzsNCiAgICBjb25zdCBjaGFubmVsID0gU0VSVkVSWyd4ZXBnJ11bJ2VwZ01hcHBpbmcnXVtlcGdNYXBwaW5nSWRdOw0KICAgIGNvbnN0IGYgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncG9wdXAteG1sdHYnKTsNCiAgICBjb25zdCB4bWx0dkZpbGUgPSBmLm9wdGlvbnNbZi5zZWxlY3RlZEluZGV4XS52YWx1ZTsNCiAgICBjb25zdCBtID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3BvcHVwLW1hcHBpbmcnKTsNCiAgICBjb25zdCB4TWFwcGluZyA9IG0ub3B0aW9uc1ttLnNlbGVjdGVkSW5kZXhdLnZhbHVlOw0KICAgIGNvbnN0IHhtbHR2TG9nbyA9IFNFUlZFUlsneGVwZyddWyd4bWx0dk1hcCddW3htbHR2RmlsZV1beE1hcHBpbmddWydpY29uJ107DQogICAgdXBkYXRlTG9nbyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd1cGRhdGUtaWNvbicpLmNoZWNrZWQ7DQogICAgaWYgKHVwZGF0ZUxvZ28gPT0gdHJ1ZSAmJiB4bWx0dkZpbGUgIT0gJ3hUZVZlIER1bW15Jykgew0KICAgICAgICBpZiAoU0VSVkVSWyd4ZXBnJ11bJ3htbHR2TWFwJ11beG1sdHZGaWxlXS5oYXNPd25Qcm9wZXJ0eSh4TWFwcGluZykpIHsNCiAgICAgICAgICAgIGxvZ28gPSB4bWx0dkxvZ287DQogICAgICAgIH0NCiAgICAgICAgZWxzZSB7DQogICAgICAgICAgICBsb2dvID0gY2hhbm5lbFsndHZnLWxvZ28nXTsNCiAgICAgICAgfQ0KICAgICAgICB2YXIgbG9nb0lucHV0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NoYW5uZWwtaWNvbicpOw0KICAgICAgICBsb2dvSW5wdXQudmFsdWUgPSBsb2dvOw0KICAgICAgICBpZiAoQlVMS19FRElUID09IGZhbHNlKSB7DQogICAgICAgICAgICBsb2dvSW5wdXQuY2xhc3NOYW1lID0gJ2NoYW5nZWQnOw0KICAgICAgICB9DQogICAgfQ0KfQ0KZnVuY3Rpb24gc2F2ZVBvcHVwRGF0YShkYXRhVHlwZSwgaWQsIHJlbW92ZSwgb3B0aW9uKSB7DQogICAgaWYgKGRhdGFUeXBlID09ICJtYXBwaW5nIikgew0KICAgICAgICBsZXQgZGF0YSA9IHt9Ow0KICAgICAgICBjb25zb2xlLmxvZygiU2F2ZSBtYXBwaW5nIGRhdGEiKTsNCiAgICAgICAgbGV0IGNtZCA9ICJzYXZlRXBnTWFwcGluZyI7DQogICAgICAgIGRhdGFbImVwZ01hcHBpbmciXSA9IFNFUlZFUlsieGVwZyJdWyJlcGdNYXBwaW5nIl07DQogICAgICAgIGNvbnNvbGUubG9nKCJTRU5EIFRPIFNFUlZFUiIpOw0KICAgICAgICBsZXQgc2VydmVyID0gbmV3IFNlcnZlcihjbWQpOw0KICAgICAgICBzZXJ2ZXIucmVxdWVzdChkYXRhKTsNCiAgICAgICAgZGVsZXRlIFVORE9bImVwZ01hcHBpbmciXTsNCiAgICAgICAgcmV0dXJuOw0KICAgIH0NCiAgICBjb25zb2xlLmxvZygiU2F2ZSBwb3B1cCBkYXRhIik7DQogICAgbGV0IGRpdiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJwb3B1cC1jdXN0b20iKTsNCiAgICBsZXQgaW5wdXRzID0gZGl2LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJUQUJMRSIpWzBdLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJJTlBVVCIpOw0KICAgIGxldCBzZWxlY3RzID0gZGl2LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJUQUJMRSIpWzBdLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJTRUxFQ1QiKTsNCiAgICBsZXQgaW5wdXQgPSB7fTsNCiAgICBsZXQgY29uZmlybU1zZzsNCiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHNlbGVjdHMubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgdmFyIG5hbWU7DQogICAgICAgIG5hbWUgPSBzZWxlY3RzW2ldLm5hbWU7DQogICAgICAgIHZhciB2YWx1ZSA9IHNlbGVjdHNbaV0udmFsdWU7DQogICAgICAgIHN3aXRjaCAobmFtZSkgew0KICAgICAgICAgICAgY2FzZSAidHVuZXIiOg0KICAgICAgICAgICAgICAgIGlucHV0W25hbWVdID0gcGFyc2VJbnQodmFsdWUpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgICAgICBpbnB1dFtuYW1lXSA9IHZhbHVlOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICB9DQogICAgfQ0KICAgIGZvciAobGV0IGkgPSAwOyBpIDwgaW5wdXRzLmxlbmd0aDsgaSsrKSB7DQogICAgICAgIHN3aXRjaCAoaW5wdXRzW2ldLnR5cGUpIHsNCiAgICAgICAgICAgIGNhc2UgImNoZWNrYm94IjoNCiAgICAgICAgICAgICAgICBuYW1lID0gaW5wdXRzW2ldLm5hbWU7DQogICAgICAgICAgICAgICAgaW5wdXRbbmFtZV0gPSBpbnB1dHNbaV0uY2hlY2tlZDsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInRleHQiOg0KICAgICAgICAgICAgY2FzZSAiaGlkZGVuIjoNCiAgICAgICAgICAgIGNhc2UgInBhc3N3b3JkIjoNCiAgICAgICAgICAgICAgICBuYW1lID0gaW5wdXRzW2ldLm5hbWU7DQogICAgICAgICAgICAgICAgc3dpdGNoIChuYW1lKSB7DQogICAgICAgICAgICAgICAgICAgIGNhc2UgInR1bmVyIjoNCiAgICAgICAgICAgICAgICAgICAgICAgIGlucHV0W25hbWVdID0gcGFyc2VJbnQoaW5wdXRzW2ldLnZhbHVlKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgICAgICBkZWZhdWx0Og0KICAgICAgICAgICAgICAgICAgICAgICAgaW5wdXRbbmFtZV0gPSBpbnB1dHNbaV0udmFsdWU7DQogICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIH0NCiAgICB9DQogICAgbGV0IGRhdGEgPSB7fTsNCiAgICBsZXQgY21kOw0KICAgIGlmIChyZW1vdmUgPT0gdHJ1ZSkgew0KICAgICAgICBpbnB1dFsiZGVsZXRlIl0gPSB0cnVlOw0KICAgIH0NCiAgICBzd2l0Y2ggKGRhdGFUeXBlKSB7DQogICAgICAgIGNhc2UgInVzZXJzIjoNCiAgICAgICAgICAgIGNvbmZpcm1Nc2cgPSAiRGVsZXRlIHRoaXMgdXNlcj8iOw0KICAgICAgICAgICAgaWYgKGlkID09ICItIikgew0KICAgICAgICAgICAgICAgIGNtZCA9ICJzYXZlTmV3VXNlciI7DQogICAgICAgICAgICAgICAgZGF0YVsidXNlckRhdGEiXSA9IGlucHV0Ow0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgZWxzZSB7DQogICAgICAgICAgICAgICAgY21kID0gInNhdmVVc2VyRGF0YSI7DQogICAgICAgICAgICAgICAgbGV0IGQgPSB7fTsNCiAgICAgICAgICAgICAgICBkW2lkXSA9IGlucHV0Ow0KICAgICAgICAgICAgICAgIGRhdGFbInVzZXJEYXRhIl0gPSBkOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGNhc2UgIm0zdSI6DQogICAgICAgICAgICBjb25maXJtTXNnID0gIkRlbGV0ZSB0aGlzIHBsYXlsaXN0PyI7DQogICAgICAgICAgICBzd2l0Y2ggKG9wdGlvbikgew0KICAgICAgICAgICAgICAgIC8vIFBvcHVwOiBTYXZlDQogICAgICAgICAgICAgICAgY2FzZSAwOg0KICAgICAgICAgICAgICAgICAgICBjbWQgPSAic2F2ZUZpbGVzTTNVIjsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgLy8gUG9wdXA6IFVwZGF0ZQ0KICAgICAgICAgICAgICAgIGNhc2UgMToNCiAgICAgICAgICAgICAgICAgICAgY21kID0gInVwZGF0ZUZpbGVNM1UiOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGRhdGFbImZpbGVzIl0gPSB7fTsNCiAgICAgICAgICAgIGRhdGFbImZpbGVzIl1bZGF0YVR5cGVdID0ge307DQogICAgICAgICAgICBkYXRhWyJmaWxlcyJdW2RhdGFUeXBlXVtpZF0gPSBpbnB1dDsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJoZGhyIjoNCiAgICAgICAgICAgIGNvbmZpcm1Nc2cgPSAiRGVsZXRlIHRoaXMgSERIb21lUnVuIHR1bmVyPyI7DQogICAgICAgICAgICBzd2l0Y2ggKG9wdGlvbikgew0KICAgICAgICAgICAgICAgIC8vIFBvcHVwOiBTYXZlDQogICAgICAgICAgICAgICAgY2FzZSAwOg0KICAgICAgICAgICAgICAgICAgICBjbWQgPSAic2F2ZUZpbGVzSERIUiI7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIC8vIFBvcHVwOiBVcGRhdGUNCiAgICAgICAgICAgICAgICBjYXNlIDE6DQogICAgICAgICAgICAgICAgICAgIGNtZCA9ICJ1cGRhdGVGaWxlSERIUiI7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgZGF0YVsiZmlsZXMiXSA9IHt9Ow0KICAgICAgICAgICAgZGF0YVsiZmlsZXMiXVtkYXRhVHlwZV0gPSB7fTsNCiAgICAgICAgICAgIGRhdGFbImZpbGVzIl1bZGF0YVR5cGVdW2lkXSA9IGlucHV0Ow0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGNhc2UgInhtbHR2IjoNCiAgICAgICAgICAgIGNvbmZpcm1Nc2cgPSAiRGVsZXRlIHRoaXMgWE1MVFYgZmlsZT8iOw0KICAgICAgICAgICAgc3dpdGNoIChvcHRpb24pIHsNCiAgICAgICAgICAgICAgICAvLyBQb3B1cDogU2F2ZQ0KICAgICAgICAgICAgICAgIGNhc2UgMDoNCiAgICAgICAgICAgICAgICAgICAgY21kID0gInNhdmVGaWxlc1hNTFRWIjsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgLy8gUG9wdXA6IFVwZGF0ZQ0KICAgICAgICAgICAgICAgIGNhc2UgMToNCiAgICAgICAgICAgICAgICAgICAgY21kID0gInVwZGF0ZUZpbGVYTUxUViI7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgZGF0YVsiZmlsZXMiXSA9IHt9Ow0KICAgICAgICAgICAgZGF0YVsiZmlsZXMiXVtkYXRhVHlwZV0gPSB7fTsNCiAgICAgICAgICAgIGRhdGFbImZpbGVzIl1bZGF0YVR5cGVdW2lkXSA9IGlucHV0Ow0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGNhc2UgImZpbHRlciI6DQogICAgICAgICAgICBjb25maXJtTXNnID0gIkRlbGV0ZSB0aGlzIGZpbHRlcj8iOw0KICAgICAgICAgICAgY21kID0gInNhdmVGaWx0ZXIiOw0KICAgICAgICAgICAgZGF0YVsiZmlsdGVyIl0gPSB7fTsNCiAgICAgICAgICAgIGRhdGFbImZpbHRlciJdW2lkXSA9IGlucHV0Ow0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICBjb25zb2xlLmxvZyhkYXRhVHlwZSwgaWQpOw0KICAgICAgICAgICAgcmV0dXJuOw0KICAgIH0NCiAgICBpZiAocmVtb3ZlID09IHRydWUpIHsNCiAgICAgICAgaWYgKCFjb25maXJtKGNvbmZpcm1Nc2cpKSB7DQogICAgICAgICAgICBzaG93RWxlbWVudCgicG9wdXAiLCBmYWxzZSk7DQogICAgICAgICAgICByZXR1cm47DQogICAgICAgIH0NCiAgICB9DQogICAgY29uc29sZS5sb2coIlNFTkQgVE8gU0VSVkVSIik7DQogICAgY29uc29sZS5sb2coZGF0YSk7DQogICAgbGV0IHNlcnZlciA9IG5ldyBTZXJ2ZXIoY21kKTsNCiAgICBzZXJ2ZXIucmVxdWVzdChkYXRhKTsNCn0NCmZ1bmN0aW9uIGRvbmVQb3B1cERhdGEoZGF0YVR5cGUsIGlkc1N0cikgew0KICAgIGxldCBpZHMgPSBpZHNTdHIuc3BsaXQoJywnKTsNCiAgICBsZXQgZGl2ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInBvcHVwLWN1c3RvbSIpOw0KICAgIGxldCBpbnB1dHMgPSBkaXYuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSgiY2hhbmdlZCIpOw0KICAgIGlkcy5mb3JFYWNoKGlkID0+IHsNCiAgICAgICAgbGV0IGlucHV0Ow0KICAgICAgICBpbnB1dCA9IFNFUlZFUlsieGVwZyJdWyJlcGdNYXBwaW5nIl1baWRdOw0KICAgICAgICBjb25zb2xlLmxvZyhpbnB1dCk7DQogICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgaW5wdXRzLmxlbmd0aDsgaSsrKSB7DQogICAgICAgICAgICBsZXQgbmFtZTsNCiAgICAgICAgICAgIGxldCB2YWx1ZTsNCiAgICAgICAgICAgIHN3aXRjaCAoaW5wdXRzW2ldLnRhZ05hbWUpIHsNCiAgICAgICAgICAgICAgICBjYXNlICJJTlBVVCI6DQogICAgICAgICAgICAgICAgICAgIHN3aXRjaCAoaW5wdXRzW2ldLnR5cGUpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgImNoZWNrYm94IjoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lID0gaW5wdXRzW2ldLm5hbWU7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSBpbnB1dHNbaV0uY2hlY2tlZDsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnB1dFtuYW1lXSA9IHZhbHVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAidGV4dCI6DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZSA9IGlucHV0c1tpXS5uYW1lOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlID0gaW5wdXRzW2ldLnZhbHVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlucHV0W25hbWVdID0gdmFsdWU7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAiU0VMRUNUIjoNCiAgICAgICAgICAgICAgICAgICAgbmFtZSA9IGlucHV0c1tpXS5uYW1lOw0KICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IGlucHV0c1tpXS52YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgaW5wdXRbbmFtZV0gPSB2YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBzd2l0Y2ggKG5hbWUpIHsNCiAgICAgICAgICAgICAgICBjYXNlICJ0dmctbG9nbyI6DQogICAgICAgICAgICAgICAgICAgIC8vKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5jaGlsZE5vZGVzWzJdLmZpcnN0Q2hpbGQgYXMgSFRNTEVsZW1lbnQpLnNldEF0dHJpYnV0ZSgic3JjIiwgdmFsdWUpDQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgIngtbmFtZSI6DQogICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5jaGlsZE5vZGVzWzNdLmZpcnN0Q2hpbGQuaW5uZXJIVE1MID0gdmFsdWU7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgIngtY2F0ZWdvcnkiOg0KICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkuY2hpbGROb2Rlc1szXS5maXJzdENoaWxkLmNsYXNzTmFtZSA9IHZhbHVlOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBjYXNlICJ4LWdyb3VwLXRpdGxlIjoNCiAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpLmNoaWxkTm9kZXNbNV0uZmlyc3RDaGlsZC5pbm5lckhUTUwgPSB2YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAieC14bWx0di1maWxlIjoNCiAgICAgICAgICAgICAgICAgICAgaWYgKHZhbHVlICE9ICJ4VGVWZSBEdW1teSIgJiYgdmFsdWUgIT0gIi0iKSB7DQogICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IGdldFZhbHVlRnJvbVByb3ZpZGVyRmlsZSh2YWx1ZSwgInhtbHR2IiwgIm5hbWUiKTsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBpZiAodmFsdWUgPT0gIi0iKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBpbnB1dFsieC1hY3RpdmUiXSA9IGZhbHNlOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5jaGlsZE5vZGVzWzZdLmZpcnN0Q2hpbGQuaW5uZXJIVE1MID0gdmFsdWU7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgIngtbWFwcGluZyI6DQogICAgICAgICAgICAgICAgICAgIGlmICh2YWx1ZSA9PSAiLSIpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGlucHV0WyJ4LWFjdGl2ZSJdID0gZmFsc2U7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpLmNoaWxkTm9kZXNbN10uZmlyc3RDaGlsZC5pbm5lckhUTUwgPSB2YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAieC10aW1lc2hpZnQiOg0KICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkuY2hpbGROb2Rlc1s4XS5maXJzdENoaWxkLmlubmVySFRNTCA9IHZhbHVlOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBkZWZhdWx0Og0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgY3JlYXRlU2VhcmNoT2JqKCk7DQogICAgICAgICAgICBzZWFyY2hJbk1hcHBpbmcoKTsNCiAgICAgICAgfQ0KICAgICAgICBpZiAoaW5wdXRbIngtYWN0aXZlIl0gPT0gZmFsc2UpIHsNCiAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5jbGFzc05hbWUgPSAibm90QWN0aXZlRVBHIjsNCiAgICAgICAgfQ0KICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5jbGFzc05hbWUgPSAiYWN0aXZlRVBHIjsNCiAgICAgICAgfQ0KICAgICAgICBjb25zb2xlLmxvZyhpbnB1dFsidHZnLWxvZ28iXSk7DQogICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5jaGlsZE5vZGVzWzJdLmZpcnN0Q2hpbGQuc2V0QXR0cmlidXRlKCJzcmMiLCBpbnB1dFsidHZnLWxvZ28iXSk7DQogICAgfSk7DQogICAgc2hvd0VsZW1lbnQoInBvcHVwIiwgZmFsc2UpOw0KICAgIHJldHVybjsNCn0NCmZ1bmN0aW9uIHNob3dQcmV2aWV3KGVsZW1lbnQpIHsNCiAgICBsZXQgZGl2ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm15U3RyZWFtc0JveCIpOw0KICAgIHN3aXRjaCAoZWxlbWVudCkgew0KICAgICAgICBjYXNlIGZhbHNlOg0KICAgICAgICAgICAgZGl2LmNsYXNzTmFtZSA9ICJub3RWaXNpYmxlIjsNCiAgICAgICAgICAgIHJldHVybjsNCiAgICB9DQogICAgbGV0IHN0cmVhbXMgPSBbImFjdGl2ZVN0cmVhbXMiLCAiaW5hY3RpdmVTdHJlYW1zIl07DQogICAgc3RyZWFtcy5mb3JFYWNoKHByZXZpZXcgPT4gew0KICAgICAgICBsZXQgdGFibGUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChwcmV2aWV3KTsNCiAgICAgICAgdGFibGUuaW5uZXJIVE1MID0gIiI7DQogICAgICAgIGxldCBvYmogPSBTRVJWRVJbImRhdGEiXVsiU3RyZWFtUHJldmlld1VJIl1bcHJldmlld107DQogICAgICAgIG9iai5mb3JFYWNoKGNoYW5uZWwgPT4gew0KICAgICAgICAgICAgbGV0IHRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVFIiKTsNCiAgICAgICAgICAgIGxldCB0ZEtleSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICBsZXQgdGRWYWwgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgdGRLZXkuY2xhc3NOYW1lID0gInRkS2V5IjsNCiAgICAgICAgICAgIHRkVmFsLmNsYXNzTmFtZSA9ICJ0ZFZhbCI7DQogICAgICAgICAgICBzd2l0Y2ggKHByZXZpZXcpIHsNCiAgICAgICAgICAgICAgICBjYXNlICJhY3RpdmVTdHJlYW1zIjoNCiAgICAgICAgICAgICAgICAgICAgdGRLZXkuaW5uZXJUZXh0ID0gIkNoYW5uZWw6ICgrKSI7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgImluYWN0aXZlU3RyZWFtcyI6DQogICAgICAgICAgICAgICAgICAgIHRkS2V5LmlubmVyVGV4dCA9ICJDaGFubmVsOiAoLSkiOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIHRkVmFsLmlubmVyVGV4dCA9IGNoYW5uZWw7DQogICAgICAgICAgICB0ci5hcHBlbmRDaGlsZCh0ZEtleSk7DQogICAgICAgICAgICB0ci5hcHBlbmRDaGlsZCh0ZFZhbCk7DQogICAgICAgICAgICB0YWJsZS5hcHBlbmRDaGlsZCh0cik7DQogICAgICAgIH0pOw0KICAgIH0pOw0KICAgIHNob3dFbGVtZW50KCJsb2FkaW5nIiwgZmFsc2UpOw0KICAgIGRpdi5jbGFzc05hbWUgPSAidmlzaWJsZSI7DQogICAgcmV0dXJuOw0KfQ0K" webUI["html/js/network_ts.js"] = "Y2xhc3MgU2VydmVyIHsNCiAgICBjb25zdHJ1Y3RvcihjbWQpIHsNCiAgICAgICAgdGhpcy5jbWQgPSBjbWQ7DQogICAgfQ0KICAgIHJlcXVlc3QoZGF0YSkgew0KICAgICAgICBpZiAoU0VSVkVSX0NPTk5FQ1RJT04gPT0gdHJ1ZSkgew0KICAgICAgICAgICAgcmV0dXJuOw0KICAgICAgICB9DQogICAgICAgIFNFUlZFUl9DT05ORUNUSU9OID0gdHJ1ZTsNCiAgICAgICAgY29uc29sZS5sb2coZGF0YSk7DQogICAgICAgIGlmICh0aGlzLmNtZCAhPSAidXBkYXRlTG9nIikgew0KICAgICAgICAgICAgc2hvd0VsZW1lbnQoImxvYWRpbmciLCB0cnVlKTsNCiAgICAgICAgICAgIFVORE8gPSBuZXcgT2JqZWN0KCk7DQogICAgICAgIH0NCiAgICAgICAgc3dpdGNoICh3aW5kb3cubG9jYXRpb24ucHJvdG9jb2wpIHsNCiAgICAgICAgICAgIGNhc2UgImh0dHA6IjoNCiAgICAgICAgICAgICAgICB0aGlzLnByb3RvY29sID0gIndzOi8vIjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImh0dHBzOiI6DQogICAgICAgICAgICAgICAgdGhpcy5wcm90b2NvbCA9ICJ3c3M6Ly8iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICB9DQogICAgICAgIHZhciB1cmwgPSB0aGlzLnByb3RvY29sICsgd2luZG93LmxvY2F0aW9uLmhvc3RuYW1lICsgIjoiICsgd2luZG93LmxvY2F0aW9uLnBvcnQgKyAiL2RhdGEvIiArICI/VG9rZW49IiArIGdldENvb2tpZSgiVG9rZW4iKTsNCiAgICAgICAgZGF0YVsiY21kIl0gPSB0aGlzLmNtZDsNCiAgICAgICAgdmFyIHdzID0gbmV3IFdlYlNvY2tldCh1cmwpOw0KICAgICAgICB3cy5vbm9wZW4gPSBmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICBXU19BVkFJTEFCTEUgPSB0cnVlOw0KICAgICAgICAgICAgY29uc29sZS5sb2coIlJFUVVFU1QgKEpTKToiKTsNCiAgICAgICAgICAgIGNvbnNvbGUubG9nKGRhdGEpOw0KICAgICAgICAgICAgY29uc29sZS5sb2coIlJFUVVFU1Q6IChKU09OKSIpOw0KICAgICAgICAgICAgY29uc29sZS5sb2coSlNPTi5zdHJpbmdpZnkoZGF0YSkpOw0KICAgICAgICAgICAgdGhpcy5zZW5kKEpTT04uc3RyaW5naWZ5KGRhdGEpKTsNCiAgICAgICAgfTsNCiAgICAgICAgd3Mub25lcnJvciA9IGZ1bmN0aW9uIChlKSB7DQogICAgICAgICAgICBjb25zb2xlLmxvZygiTm8gd2Vic29ja2V0IGNvbm5lY3Rpb24gdG8geFRlVmUgY291bGQgYmUgZXN0YWJsaXNoZWQuIENoZWNrIHlvdXIgbmV0d29yayBjb25maWd1cmF0aW9uLiIpOw0KICAgICAgICAgICAgU0VSVkVSX0NPTk5FQ1RJT04gPSBmYWxzZTsNCiAgICAgICAgICAgIGlmIChXU19BVkFJTEFCTEUgPT0gZmFsc2UpIHsNCiAgICAgICAgICAgICAgICBhbGVydCgiTm8gd2Vic29ja2V0IGNvbm5lY3Rpb24gdG8geFRlVmUgY291bGQgYmUgZXN0YWJsaXNoZWQuIENoZWNrIHlvdXIgbmV0d29yayBjb25maWd1cmF0aW9uLiIpOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9Ow0KICAgICAgICB3cy5vbm1lc3NhZ2UgPSBmdW5jdGlvbiAoZSkgew0KICAgICAgICAgICAgU0VSVkVSX0NPTk5FQ1RJT04gPSBmYWxzZTsNCiAgICAgICAgICAgIHNob3dFbGVtZW50KCJsb2FkaW5nIiwgZmFsc2UpOw0KICAgICAgICAgICAgY29uc29sZS5sb2coIlJFU1BPTlNFOiIpOw0KICAgICAgICAgICAgdmFyIHJlc3BvbnNlID0gSlNPTi5wYXJzZShlLmRhdGEpOw0KICAgICAgICAgICAgY29uc29sZS5sb2cocmVzcG9uc2UpOw0KICAgICAgICAgICAgaWYgKHJlc3BvbnNlLmhhc093blByb3BlcnR5KCJ0b2tlbiIpKSB7DQogICAgICAgICAgICAgICAgZG9jdW1lbnQuY29va2llID0gIlRva2VuPSIgKyByZXNwb25zZVsidG9rZW4iXTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGlmIChyZXNwb25zZVsic3RhdHVzIl0gPT0gZmFsc2UpIHsNCiAgICAgICAgICAgICAgICBhbGVydChyZXNwb25zZVsiZXJyIl0pOw0KICAgICAgICAgICAgICAgIGlmIChyZXNwb25zZS5oYXNPd25Qcm9wZXJ0eSgicmVsb2FkIikpIHsNCiAgICAgICAgICAgICAgICAgICAgbG9jYXRpb24ucmVsb2FkKCk7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIHJldHVybjsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGlmIChyZXNwb25zZS5oYXNPd25Qcm9wZXJ0eSgiYWxlcnQiKSkgew0KICAgICAgICAgICAgICAgIGFsZXJ0KHJlc3BvbnNlWyJhbGVydCJdKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGlmIChyZXNwb25zZS5oYXNPd25Qcm9wZXJ0eSgibG9nb1VSTCIpKSB7DQogICAgICAgICAgICAgICAgdmFyIGRpdiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjaGFubmVsLWljb24iKTsNCiAgICAgICAgICAgICAgICBkaXYudmFsdWUgPSByZXNwb25zZVsibG9nb1VSTCJdOw0KICAgICAgICAgICAgICAgIGRpdi5jbGFzc05hbWUgPSAiY2hhbmdlZCI7DQogICAgICAgICAgICAgICAgcmV0dXJuOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgc3dpdGNoIChkYXRhWyJjbWQiXSkgew0KICAgICAgICAgICAgICAgIGNhc2UgInVwZGF0ZUxvZyI6DQogICAgICAgICAgICAgICAgICAgIFNFUlZFUlsibG9nIl0gPSByZXNwb25zZVsibG9nIl07DQogICAgICAgICAgICAgICAgICAgIGlmIChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29udGVudF9sb2ciKSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgc2hvd0xvZ3MoZmFsc2UpOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIHJldHVybjsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgICAgICAgICAgU0VSVkVSID0gbmV3IE9iamVjdCgpOw0KICAgICAgICAgICAgICAgICAgICBTRVJWRVIgPSByZXNwb25zZTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBpZiAocmVzcG9uc2UuaGFzT3duUHJvcGVydHkoIm9wZW5NZW51IikpIHsNCiAgICAgICAgICAgICAgICB2YXIgbWVudSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHJlc3BvbnNlWyJvcGVuTWVudSJdKTsNCiAgICAgICAgICAgICAgICBtZW51LmNsaWNrKCk7DQogICAgICAgICAgICAgICAgc2hvd0VsZW1lbnQoInBvcHVwIiwgZmFsc2UpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgaWYgKHJlc3BvbnNlLmhhc093blByb3BlcnR5KCJvcGVuTGluayIpKSB7DQogICAgICAgICAgICAgICAgd2luZG93LmxvY2F0aW9uID0gcmVzcG9uc2VbIm9wZW5MaW5rIl07DQogICAgICAgICAgICB9DQogICAgICAgICAgICBpZiAocmVzcG9uc2UuaGFzT3duUHJvcGVydHkoInJlbG9hZCIpKSB7DQogICAgICAgICAgICAgICAgbG9jYXRpb24ucmVsb2FkKCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBpZiAocmVzcG9uc2UuaGFzT3duUHJvcGVydHkoIndpemFyZCIpKSB7DQogICAgICAgICAgICAgICAgY3JlYXRlTGF5b3V0KCk7DQogICAgICAgICAgICAgICAgY29uZmlndXJhdGlvbldpemFyZFtyZXNwb25zZVsid2l6YXJkIl1dLmNyZWF0ZVdpemFyZCgpOw0KICAgICAgICAgICAgICAgIHJldHVybjsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGNyZWF0ZUxheW91dCgpOw0KICAgICAgICB9Ow0KICAgIH0NCn0NCmZ1bmN0aW9uIGdldENvb2tpZShuYW1lKSB7DQogICAgdmFyIHZhbHVlID0gIjsgIiArIGRvY3VtZW50LmNvb2tpZTsNCiAgICB2YXIgcGFydHMgPSB2YWx1ZS5zcGxpdCgiOyAiICsgbmFtZSArICI9Iik7DQogICAgaWYgKHBhcnRzLmxlbmd0aCA9PSAyKQ0KICAgICAgICByZXR1cm4gcGFydHMucG9wKCkuc3BsaXQoIjsiKS5zaGlmdCgpOw0KfQ0K" webUI["html/js/settings_ts.js"] = "Y2xhc3MgU2V0dGluZ3NDYXRlZ29yeSB7DQogICAgY29uc3RydWN0b3IoKSB7DQogICAgICAgIHRoaXMuRG9jdW1lbnRJRCA9ICJjb250ZW50X3NldHRpbmdzIjsNCiAgICB9DQogICAgY3JlYXRlQ2F0ZWdvcnlIZWFkbGluZSh2YWx1ZSkgew0KICAgICAgICB2YXIgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIkg0Iik7DQogICAgICAgIGVsZW1lbnQuaW5uZXJIVE1MID0gdmFsdWU7DQogICAgICAgIHJldHVybiBlbGVtZW50Ow0KICAgIH0NCiAgICBjcmVhdGVIUigpIHsNCiAgICAgICAgdmFyIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJIUiIpOw0KICAgICAgICByZXR1cm4gZWxlbWVudDsNCiAgICB9DQogICAgY3JlYXRlU2V0dGluZ3Moc2V0dGluZ3NLZXkpIHsNCiAgICAgICAgdmFyIHNldHRpbmcgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJUUiIpOw0KICAgICAgICB2YXIgY29udGVudCA9IG5ldyBQb3B1cENvbnRlbnQoKTsNCiAgICAgICAgdmFyIGRhdGEgPSBTRVJWRVJbInNldHRpbmdzIl1bc2V0dGluZ3NLZXldOw0KICAgICAgICBzd2l0Y2ggKHNldHRpbmdzS2V5KSB7DQogICAgICAgICAgICAvLyBUZXh0IGlucHV0cw0KICAgICAgICAgICAgY2FzZSAidXBkYXRlIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLnVwZGF0ZS50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsICJ1cGRhdGUiLCBkYXRhLnRvU3RyaW5nKCkpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3suc2V0dGluZ3MudXBkYXRlLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJiYWNrdXAucGF0aCI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5iYWNrdXBQYXRoLnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgImJhY2t1cC5wYXRoIiwgZGF0YSk7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5zZXR0aW5ncy5iYWNrdXBQYXRoLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ0ZW1wLnBhdGgiOg0KICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MudGVtcFBhdGgudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCAidGVtcC5wYXRoIiwgZGF0YSk7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5zZXR0aW5ncy50bXBQYXRoLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ1c2VyLmFnZW50IjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLnVzZXJBZ2VudC50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsICJ1c2VyLmFnZW50IiwgZGF0YSk7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5zZXR0aW5ncy51c2VyQWdlbnQucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImJ1ZmZlci50aW1lb3V0IjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmJ1ZmZlclRpbWVvdXQudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCAiYnVmZmVyLnRpbWVvdXQiLCBkYXRhKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnNldHRpbmdzLmJ1ZmZlclRpbWVvdXQucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImZmbXBlZy5wYXRoIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmZmbXBlZ1BhdGgudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCAiZmZtcGVnLnBhdGgiLCBkYXRhKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnNldHRpbmdzLmZmbXBlZ1BhdGgucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImZmbXBlZy5vcHRpb25zIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmZmbXBlZ09wdGlvbnMudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCAiZmZtcGVnLm9wdGlvbnMiLCBkYXRhKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnNldHRpbmdzLmZmbXBlZ09wdGlvbnMucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInZsYy5wYXRoIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLnZsY1BhdGgudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCAidmxjLnBhdGgiLCBkYXRhKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnNldHRpbmdzLnZsY1BhdGgucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInZsYy5vcHRpb25zIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLnZsY09wdGlvbnMudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCAidmxjLm9wdGlvbnMiLCBkYXRhKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnNldHRpbmdzLnZsY09wdGlvbnMucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIC8vIENoZWNrYm94ZXMNCiAgICAgICAgICAgIGNhc2UgImF1dGhlbnRpY2F0aW9uLndlYiI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5hdXRoZW50aWNhdGlvbldFQi50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChzZXR0aW5nc0tleSk7DQogICAgICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGE7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiYXV0aGVudGljYXRpb24ucG1zIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmF1dGhlbnRpY2F0aW9uUE1TLnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KHNldHRpbmdzS2V5KTsNCiAgICAgICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJhdXRoZW50aWNhdGlvbi5tM3UiOg0KICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MuYXV0aGVudGljYXRpb25NM1UudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goc2V0dGluZ3NLZXkpOw0KICAgICAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImF1dGhlbnRpY2F0aW9uLnhtbCI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5hdXRoZW50aWNhdGlvblhNTC50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChzZXR0aW5nc0tleSk7DQogICAgICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGE7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiYXV0aGVudGljYXRpb24uYXBpIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmF1dGhlbnRpY2F0aW9uQVBJLnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KHNldHRpbmdzS2V5KTsNCiAgICAgICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJmaWxlcy51cGRhdGUiOg0KICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MuZmlsZXNVcGRhdGUudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goc2V0dGluZ3NLZXkpOw0KICAgICAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImNhY2hlLmltYWdlcyI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5jYWNoZUltYWdlcy50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChzZXR0aW5nc0tleSk7DQogICAgICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGE7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAieGVwZy5yZXBsYWNlLm1pc3NpbmcuaW1hZ2VzIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLnJlcGxhY2VFbXB0eUltYWdlcy50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChzZXR0aW5nc0tleSk7DQogICAgICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGE7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAieHRldmVBdXRvVXBkYXRlIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLnh0ZXZlQXV0b1VwZGF0ZS50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChzZXR0aW5nc0tleSk7DQogICAgICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGE7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiYXBpIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmFwaS50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChzZXR0aW5nc0tleSk7DQogICAgICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGE7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgLy8gU2VsZWN0DQogICAgICAgICAgICBjYXNlICJ0dW5lciI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy50dW5lci50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIHRleHQgPSBuZXcgQXJyYXkoKTsNCiAgICAgICAgICAgICAgICB2YXIgdmFsdWVzID0gbmV3IEFycmF5KCk7DQogICAgICAgICAgICAgICAgZm9yICh2YXIgaSA9IDE7IGkgPD0gMTAwOyBpKyspIHsNCiAgICAgICAgICAgICAgICAgICAgdGV4dC5wdXNoKGkpOw0KICAgICAgICAgICAgICAgICAgICB2YWx1ZXMucHVzaChpKTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgdmFyIHNlbGVjdCA9IGNvbnRlbnQuY3JlYXRlU2VsZWN0KHRleHQsIHZhbHVlcywgZGF0YSwgc2V0dGluZ3NLZXkpOw0KICAgICAgICAgICAgICAgIHNlbGVjdC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChzZWxlY3QpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiZXBnU291cmNlIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmVwZ1NvdXJjZS50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIHRleHQgPSBbIlBNUyIsICJYRVBHIl07DQogICAgICAgICAgICAgICAgdmFyIHZhbHVlcyA9IFsiUE1TIiwgIlhFUEciXTsNCiAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCBkYXRhLCBzZXR0aW5nc0tleSk7DQogICAgICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKHNlbGVjdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJiYWNrdXAua2VlcCI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5iYWNrdXBLZWVwLnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgdGV4dCA9IFsiNSIsICIxMCIsICIyMCIsICIzMCIsICI0MCIsICI1MCJdOw0KICAgICAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBbIjUiLCAiMTAiLCAiMjAiLCAiMzAiLCAiNDAiLCAiNTAiXTsNCiAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCBkYXRhLCBzZXR0aW5nc0tleSk7DQogICAgICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKHNlbGVjdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJidWZmZXIuc2l6ZS5rYiI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5idWZmZXJTaXplLnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgdGV4dCA9IFsiMC41IE1CIiwgIjEgTUIiLCAiMiBNQiIsICIzIE1CIiwgIjQgTUIiLCAiNSBNQiIsICI2IE1CIiwgIjcgTUIiLCAiOCBNQiJdOw0KICAgICAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBbIjUxMiIsICIxMDI0IiwgIjIwNDgiLCAiMzA3MiIsICI0MDk2IiwgIjUxMjAiLCAiNjE0NCIsICI3MTY4IiwgIjgxOTIiXTsNCiAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCBkYXRhLCBzZXR0aW5nc0tleSk7DQogICAgICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKHNlbGVjdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJidWZmZXIiOg0KICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3Muc3RyZWFtQnVmZmVyaW5nLnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgdGV4dCA9IFsie3suc2V0dGluZ3Muc3RyZWFtQnVmZmVyaW5nLmluZm9fZmFsc2V9fSIsICJ4VGVWZTogKHt7LnNldHRpbmdzLnN0cmVhbUJ1ZmZlcmluZy5pbmZvX3h0ZXZlfX0pIiwgIkZGbXBlZzogKHt7LnNldHRpbmdzLnN0cmVhbUJ1ZmZlcmluZy5pbmZvX2ZmbXBlZ319KSIsICJWTEM6ICh7ey5zZXR0aW5ncy5zdHJlYW1CdWZmZXJpbmcuaW5mb192bGN9fSkiXTsNCiAgICAgICAgICAgICAgICB2YXIgdmFsdWVzID0gWyItIiwgInh0ZXZlIiwgImZmbXBlZyIsICJ2bGMiXTsNCiAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCBkYXRhLCBzZXR0aW5nc0tleSk7DQogICAgICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKHNlbGVjdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ1ZHB4eSI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy51ZHB4eS50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsICJ1ZHB4eSIsIGRhdGEpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3suc2V0dGluZ3MudWRweHkucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgfQ0KICAgICAgICByZXR1cm4gc2V0dGluZzsNCiAgICB9DQogICAgY3JlYXRlRGVzY3JpcHRpb24oc2V0dGluZ3NLZXkpIHsNCiAgICAgICAgdmFyIGRlc2NyaXB0aW9uID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVFIiKTsNCiAgICAgICAgdmFyIHRleHQ7DQogICAgICAgIHN3aXRjaCAoc2V0dGluZ3NLZXkpIHsNCiAgICAgICAgICAgIGNhc2UgImF1dGhlbnRpY2F0aW9uLndlYiI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5hdXRoZW50aWNhdGlvbldFQi5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImF1dGhlbnRpY2F0aW9uLm0zdSI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5hdXRoZW50aWNhdGlvbk0zVS5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImF1dGhlbnRpY2F0aW9uLnBtcyI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5hdXRoZW50aWNhdGlvblBNUy5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImF1dGhlbnRpY2F0aW9uLnhtbCI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5hdXRoZW50aWNhdGlvblhNTC5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImF1dGhlbnRpY2F0aW9uLmFwaSI6DQogICAgICAgICAgICAgICAgaWYgKFNFUlZFUlsic2V0dGluZ3MiXVsiYXV0aGVudGljYXRpb24ud2ViIl0gPT0gdHJ1ZSkgew0KICAgICAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLmF1dGhlbnRpY2F0aW9uQVBJLmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInh0ZXZlQXV0b1VwZGF0ZSI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy54dGV2ZUF1dG9VcGRhdGUuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJiYWNrdXAua2VlcCI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5iYWNrdXBLZWVwLmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiYmFja3VwLnBhdGgiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MuYmFja3VwUGF0aC5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInRlbXAucGF0aCI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy50ZW1wUGF0aC5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImJ1ZmZlciI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5zdHJlYW1CdWZmZXJpbmcuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJidWZmZXIuc2l6ZS5rYiI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5idWZmZXJTaXplLmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiYnVmZmVyLnRpbWVvdXQiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MuYnVmZmVyVGltZW91dC5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInVzZXIuYWdlbnQiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MudXNlckFnZW50LmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiZmZtcGVnLnBhdGgiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MuZmZtcGVnUGF0aC5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImZmbXBlZy5vcHRpb25zIjoNCiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLmZmbXBlZ09wdGlvbnMuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ2bGMucGF0aCI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy52bGNQYXRoLmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAidmxjLm9wdGlvbnMiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MudmxjT3B0aW9ucy5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImVwZ1NvdXJjZSI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5lcGdTb3VyY2UuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ0dW5lciI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy50dW5lci5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInVwZGF0ZSI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy51cGRhdGUuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJhcGkiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MuYXBpLmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiZmlsZXMudXBkYXRlIjoNCiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLmZpbGVzVXBkYXRlLmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiY2FjaGUuaW1hZ2VzIjoNCiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLmNhY2hlSW1hZ2VzLmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAieGVwZy5yZXBsYWNlLm1pc3NpbmcuaW1hZ2VzIjoNCiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLnJlcGxhY2VFbXB0eUltYWdlcy5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInVkcHh5IjoNCiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLnVkcHh5LmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgICAgICB0ZXh0ID0gIiI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIH0NCiAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAiIjsNCiAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICB2YXIgcHJlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiUFJFIik7DQogICAgICAgIHByZS5pbm5lckhUTUwgPSB0ZXh0Ow0KICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKHByZSk7DQogICAgICAgIGRlc2NyaXB0aW9uLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgIGRlc2NyaXB0aW9uLmFwcGVuZENoaWxkKHRkUmlnaHQpOw0KICAgICAgICByZXR1cm4gZGVzY3JpcHRpb247DQogICAgfQ0KfQ0KY2xhc3MgU2V0dGluZ3NDYXRlZ29yeUl0ZW0gZXh0ZW5kcyBTZXR0aW5nc0NhdGVnb3J5IHsNCiAgICBjb25zdHJ1Y3RvcihoZWFkbGluZSwgc2V0dGluZ3NLZXlzKSB7DQogICAgICAgIHN1cGVyKCk7DQogICAgICAgIHRoaXMuaGVhZGxpbmUgPSBoZWFkbGluZTsNCiAgICAgICAgdGhpcy5zZXR0aW5nc0tleXMgPSBzZXR0aW5nc0tleXM7DQogICAgfQ0KICAgIGNyZWF0ZUNhdGVnb3J5KCkgew0KICAgICAgICB2YXIgaGVhZGxpbmUgPSB0aGlzLmNyZWF0ZUNhdGVnb3J5SGVhZGxpbmUodGhpcy5oZWFkbGluZSk7DQogICAgICAgIHZhciBzZXR0aW5nc0tleXMgPSB0aGlzLnNldHRpbmdzS2V5czsNCiAgICAgICAgdmFyIGRvYyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHRoaXMuRG9jdW1lbnRJRCk7DQogICAgICAgIGRvYy5hcHBlbmRDaGlsZChoZWFkbGluZSk7DQogICAgICAgIC8vIENyZWF0ZSBhIHRhYmxlIGZvciB0aGUgY2F0ZWdvcnkNCiAgICAgICAgdmFyIHRhYmxlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEFCTEUiKTsNCiAgICAgICAgdmFyIGtleXMgPSBzZXR0aW5nc0tleXMuc3BsaXQoIiwiKTsNCiAgICAgICAga2V5cy5mb3JFYWNoKHNldHRpbmdzS2V5ID0+IHsNCiAgICAgICAgICAgIHN3aXRjaCAoc2V0dGluZ3NLZXkpIHsNCiAgICAgICAgICAgICAgICBjYXNlICJhdXRoZW50aWNhdGlvbi5wbXMiOg0KICAgICAgICAgICAgICAgIGNhc2UgImF1dGhlbnRpY2F0aW9uLm0zdSI6DQogICAgICAgICAgICAgICAgY2FzZSAiYXV0aGVudGljYXRpb24ueG1sIjoNCiAgICAgICAgICAgICAgICBjYXNlICJhdXRoZW50aWNhdGlvbi5hcGkiOg0KICAgICAgICAgICAgICAgICAgICBpZiAoU0VSVkVSWyJzZXR0aW5ncyJdWyJhdXRoZW50aWNhdGlvbi53ZWIiXSA9PSBmYWxzZSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBkZWZhdWx0Og0KICAgICAgICAgICAgICAgICAgICB2YXIgaXRlbSA9IHRoaXMuY3JlYXRlU2V0dGluZ3Moc2V0dGluZ3NLZXkpOw0KICAgICAgICAgICAgICAgICAgICB2YXIgZGVzY3JpcHRpb24gPSB0aGlzLmNyZWF0ZURlc2NyaXB0aW9uKHNldHRpbmdzS2V5KTsNCiAgICAgICAgICAgICAgICAgICAgdGFibGUuYXBwZW5kQ2hpbGQoaXRlbSk7DQogICAgICAgICAgICAgICAgICAgIHRhYmxlLmFwcGVuZENoaWxkKGRlc2NyaXB0aW9uKTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICB9DQogICAgICAgIH0pOw0KICAgICAgICBkb2MuYXBwZW5kQ2hpbGQodGFibGUpOw0KICAgICAgICBkb2MuYXBwZW5kQ2hpbGQodGhpcy5jcmVhdGVIUigpKTsNCiAgICB9DQp9DQpmdW5jdGlvbiBzaG93U2V0dGluZ3MoKSB7DQogICAgY29uc29sZS5sb2coIlNFVFRJTkdTIik7DQogICAgZm9yIChsZXQgaSA9IDA7IGkgPCBzZXR0aW5nc0NhdGVnb3J5Lmxlbmd0aDsgaSsrKSB7DQogICAgICAgIHNldHRpbmdzQ2F0ZWdvcnlbaV0uY3JlYXRlQ2F0ZWdvcnkoKTsNCiAgICB9DQp9DQpmdW5jdGlvbiBzYXZlU2V0dGluZ3MoKSB7DQogICAgY29uc29sZS5sb2coIlNhdmUgU2V0dGluZ3MiKTsNCiAgICB2YXIgY21kID0gInNhdmVTZXR0aW5ncyI7DQogICAgdmFyIGRpdiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb250ZW50X3NldHRpbmdzIik7DQogICAgdmFyIHNldHRpbmdzID0gZGl2LmdldEVsZW1lbnRzQnlDbGFzc05hbWUoImNoYW5nZWQiKTsNCiAgICB2YXIgbmV3U2V0dGluZ3MgPSBuZXcgT2JqZWN0KCk7DQogICAgZm9yIChsZXQgaSA9IDA7IGkgPCBzZXR0aW5ncy5sZW5ndGg7IGkrKykgew0KICAgICAgICB2YXIgbmFtZTsNCiAgICAgICAgdmFyIHZhbHVlOw0KICAgICAgICBzd2l0Y2ggKHNldHRpbmdzW2ldLnRhZ05hbWUpIHsNCiAgICAgICAgICAgIGNhc2UgIklOUFVUIjoNCiAgICAgICAgICAgICAgICBzd2l0Y2ggKHNldHRpbmdzW2ldLnR5cGUpIHsNCiAgICAgICAgICAgICAgICAgICAgY2FzZSAiY2hlY2tib3giOg0KICAgICAgICAgICAgICAgICAgICAgICAgbmFtZSA9IHNldHRpbmdzW2ldLm5hbWU7DQogICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IHNldHRpbmdzW2ldLmNoZWNrZWQ7DQogICAgICAgICAgICAgICAgICAgICAgICBuZXdTZXR0aW5nc1tuYW1lXSA9IHZhbHVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgICAgIGNhc2UgInRleHQiOg0KICAgICAgICAgICAgICAgICAgICAgICAgbmFtZSA9IHNldHRpbmdzW2ldLm5hbWU7DQogICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IHNldHRpbmdzW2ldLnZhbHVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgc3dpdGNoIChuYW1lKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAidXBkYXRlIjoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSB2YWx1ZS5zcGxpdCgiLCIpOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IHZhbHVlLmZpbHRlcihmdW5jdGlvbiAoZSkgeyByZXR1cm4gZTsgfSk7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgImJ1ZmZlci50aW1lb3V0IjoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSBwYXJzZUZsb2F0KHZhbHVlKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgIG5ld1NldHRpbmdzW25hbWVdID0gdmFsdWU7DQogICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJTRUxFQ1QiOg0KICAgICAgICAgICAgICAgIG5hbWUgPSBzZXR0aW5nc1tpXS5uYW1lOw0KICAgICAgICAgICAgICAgIHZhbHVlID0gc2V0dGluZ3NbaV0udmFsdWU7DQogICAgICAgICAgICAgICAgLy8gSWYgdGhlIHZhbHVlIGlzIGEgbnVtYmVyLCBzdG9yZSBpdCBhcyBhIG51bWJlcg0KICAgICAgICAgICAgICAgIGlmIChpc05hTih2YWx1ZSkpIHsNCiAgICAgICAgICAgICAgICAgICAgbmV3U2V0dGluZ3NbbmFtZV0gPSB2YWx1ZTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgZWxzZSB7DQogICAgICAgICAgICAgICAgICAgIG5ld1NldHRpbmdzW25hbWVdID0gcGFyc2VJbnQodmFsdWUpOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgfQ0KICAgIH0NCiAgICB2YXIgZGF0YSA9IG5ldyBPYmplY3QoKTsNCiAgICBkYXRhWyJzZXR0aW5ncyJdID0gbmV3U2V0dGluZ3M7DQogICAgdmFyIHNlcnZlciA9IG5ldyBTZXJ2ZXIoY21kKTsNCiAgICBzZXJ2ZXIucmVxdWVzdChkYXRhKTsNCn0NCg==" webUI["html/lang/en.json"] = "ew0KICAibWFpbk1lbnUiOg0KICB7DQogICAgIml0ZW0iOg0KICAgIHsNCiAgICAgICJwbGF5bGlzdCI6ICJQbGF5bGlzdCIsDQogICAgICAicG1zSUQiOiAiUE1TIElEIiwNCiAgICAgICJmaWx0ZXIiOiAiRmlsdGVyIiwNCiAgICAgICJ4bWx0diI6ICJYTUxUViIsDQogICAgICAibWFwcGluZyI6ICJNYXBwaW5nIiwNCiAgICAgICJ1c2VycyI6ICJVc2VycyIsDQogICAgICAic2V0dGluZ3MiOiAiU2V0dGluZ3MiLA0KICAgICAgImxvZyI6ICJMb2ciLA0KICAgICAgImxvZ291dCI6ICJMb2dvdXQiDQogICAgfSwNCiAgICAiaGVhZGxpbmUiOg0KICAgIHsNCiAgICAgICJwbGF5bGlzdCI6ICJMb2NhbCBvciByZW1vdGUgcGxheWxpc3RzIiwNCiAgICAgICJmaWx0ZXIiOiAiRmlsdGVyIHBsYXlsaXN0IiwNCiAgICAgICJ4bWx0diI6ICJMb2NhbCBvciByZW1vdGUgWE1MVFYgZmlsZXMiLA0KICAgICAgIm1hcHBpbmciOiAiTWFwIHBsYXlsaXN0IGNoYW5uZWxzIHRvIEVQRyBjaGFubmVscyIsDQogICAgICAidXNlcnMiOiAiVXNlciBtYW5hZ2VtZW50IiwNCiAgICAgICJzZXR0aW5ncyI6ICJTZXR0aW5ncyIsDQogICAgICAibG9nIjogIkxvZyIsDQogICAgICAibG9nb3V0IjogIkxvZ291dCINCiAgICB9DQogIH0sDQogICJjb25maXJtIjoNCiAgew0KICAgICJyZXN0b3JlIjogIkFsbCBkYXRhIHdpbGwgYmUgcmVwbGFjZWQgd2l0aCB0aG9zZSBmcm9tIHRoZSBiYWNrdXAuIFNob3VsZCB0aGUgZmlsZXMgYmUgcmVzdG9yZWQ/Ig0KICB9LA0KICAiYWxlcnQiOg0KICB7DQogICAgImZpbGVMb2FkaW5nRXJyb3IiOiAiRmlsZSBjb3VsZG4ndCBiZSBsb2FkZWQiLA0KICAgICJpbnZhbGlkQ2hhbm5lbE51bWJlciI6ICJJbnZhbGlkIGNoYW5uZWwgbnVtYmVyIiwNCiAgICAibWlzc2luZ0lucHV0IjogIk1pc3NpbmcgaW5wdXQiDQogIH0sDQogICJidXR0b24iOg0KICB7DQogICAgImJhY2siOiAiQmFjayIsDQogICAgImJhY2t1cCI6ICJCYWNrdXAiLA0KICAgICJidWxrRWRpdCI6ICJCdWxrIEVkaXQiLA0KICAgICJjYW5jZWwiOiAiQ2FuY2VsIiwNCiAgICAiZGVsZXRlIjogIkRlbGV0ZSIsDQogICAgImRvbmUiOiAiRG9uZSIsDQogICAgImxvZ2luIjogIkxvZ2luIiwNCiAgICAibmV3IjogIk5ldyIsDQogICAgIm5leHQiOiAiTmV4dCIsDQogICAgInJlc3RvcmUiOiAiUmVzdG9yZSIsDQogICAgInNhdmUiOiAiU2F2ZSIsDQogICAgInNlYXJjaCI6ICJTZWFyY2giLA0KICAgICJ1cGRhdGUiOiAiVXBkYXRlIiwNCiAgICAiY3JhZXRlQWNjb3VudCI6ICJDcmVhdGUgQWNjb3VudCIsDQogICAgInJlc2V0TG9ncyI6ICJSZXNldCBMb2dzIiwNCiAgICAidXBsb2FkTG9nbyI6ICJVcGxvYWQgTG9nbyINCiAgfSwNCiAgImZpbHRlciI6DQogIHsNCiAgICAidGFibGUiOg0KICAgIHsNCiAgICAgICJzdGFydGluZ0NoYW5uZWwiOiAiU3RhcnRpbmcgQ2guIE5vLiIsDQogICAgICAibmFtZSI6ICJGaWx0ZXIgTmFtZSIsDQogICAgICAidHlwZSI6ICJGaWx0ZXIgVHlwZSIsDQogICAgICAiZmlsdGVyIjogIkZpbHRlciINCiAgICB9LA0KICAgICJjdXN0b20iOiAiQ3VzdG9tIiwNCiAgICAiZ3JvdXAiOiAiTTNVIEdyb3VwIiwNCiAgICAibmFtZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIkZpbHRlciBOYW1lIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJGaWx0ZXIgbmFtZSIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgImRlc2NyaXB0aW9uIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiRGVzY3JpcHRpb24iLA0KICAgICAgInBsYWNlaG9sZGVyIjogIkRlc2NyaXB0aW9uIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAidHlwZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIlR5cGUiLA0KICAgICAgImdyb3VwVGl0bGUiOiAiR3JvdXAgVGl0bGUiLA0KICAgICAgImN1c3RvbUZpbHRlciI6ICJDdXN0b20gRmlsdGVyIg0KICAgIH0sDQogICAgImNhc2VTZW5zaXRpdmUiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJDYXNlIFNlbnNpdGl2ZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAiZmlsdGVyUnVsZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIkZpbHRlciBSdWxlIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJTcG9ydCB7SER9ICF7RVMsSVR9IiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAiZmlsdGVyR3JvdXAiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJHcm91cCBUaXRsZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJTZWxlY3QgYSBNM1UgZ3JvdXAuIChDb3VudGVyKTxicj5DaGFuZ2luZyB0aGUgZ3JvdXAgdGl0bGUgaW4gdGhlIE0zVSBpbnZhbGlkYXRlcyB0aGUgZmlsdGVyLiINCiAgICB9LA0KICAgICJpbmNsdWRlIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiSW5jbHVkZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiRkhELFVIRCIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiQ2hhbm5lbCBuYW1lIG11c3QgaW5jbHVkZS48YnI+KENvbW1hIHNlcGFyYXRlZCkgQ29tbWEgbWVhbnMgb3IiDQogICAgfSwNCiAgICAiZXhjbHVkZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIkV4Y2x1ZGUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIkVTLElUIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJDaGFubmVsIG5hbWUgbXVzdCBub3QgY29udGFpbi48YnI+KENvbW1hIHNlcGFyYXRlZCkgQ29tbWEgbWVhbnMgb3IiDQogICAgfSwNCiAgICAicHJlc2VydmVNYXBwaW5nIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiUHJlc2VydmUgRXhpc3RpbmcgTTNVPGJyPkNoYW5uZWwgTnVtYmVycyIsDQogICAgICAicGFsY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJQcmVzZXJ2ZSBleGlzdGluZyBNM1UgcGxheWxpc3QgY2hhbm5lbCBudW1iZXJzPyINCiAgICB9LA0KICAgICJzdGFydGluZ0NoYW5uZWwiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJTdGFydGluZyBDaGFubmVsIE51bWJlciIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAiZGVmYXVsdE1pc3NpbmdFUEciOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJGaWxsIE1pc3NpbmcgRVBHIERhdGEiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiV2hlbiB0aGVyZSBpcyBubyBtYXRjaGluZyBFUEcgZGF0YSBmb3IgY2hhbm5lbCwgPGJyPmF1dG9maWxsIHdpdGggeFRlVmUgZHVtbXkgRVBHIGRhdGE/Ig0KICAgIH0NCg0KICB9LA0KICAicGxheWxpc3QiOg0KICB7DQogICAgInRhYmxlIjoNCiAgICB7DQogICAgICAicGxheWxpc3QiOiAiUGxheWxpc3QiLA0KICAgICAgInR1bmVyIjogIlR1bmVyIiwNCiAgICAgICJsYXN0VXBkYXRlIjogIkxhc3QgVXBkYXRlIiwNCiAgICAgICJhdmFpbGFiaWxpdHkiOiAiQXZhaWxhYmlsaXR5IiwNCiAgICAgICJ0eXBlIjogIlR5cGUiLA0KICAgICAgInN0cmVhbXMiOiAiU3RyZWFtcyIsDQogICAgICAiZ3JvdXBUaXRsZSI6ICJncm91cC10aXRsZSIsDQogICAgICAidHZnSUQiOiAidHZnLWlkIiwNCiAgICAgICJ1bmlxdWVJRCI6ICJVbmlxdWUgSUQiDQogICAgfSwNCiAgICAicGxheWxpc3RUeXBlIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiUGxheWxpc3QgdHlwZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAidHlwZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIlR5cGUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgIm5hbWUiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJOYW1lIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJQbGF5bGlzdCBuYW1lIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAiZGVzY3JpcHRpb24iOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJEZXNjcmlwdGlvbiIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiRGVzY3JpcHRpb24iLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJmaWxlTTNVIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiTTNVIEZpbGUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIkZpbGUgcGF0aCBvciBVUkwgb2YgdGhlIE0zVSIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgImZpbGVIREhSIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiSERIb21lUnVuIElQIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJJUCBhZGRyZXNzIGFuZCBwb3J0ICgxOTIuMTY4LjEuMTA6NTAwNCkiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJ0dW5lciI6DQogICAgew0KICAgICAgInRpdGxlIjogIlR1bmVyIC8gU3RyZWFtcyIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJOdW1iZXIgb2YgcGFyYWxsZWwgY29ubmVjdGlvbnMgdGhhdCBjYW4gYmUgZXN0YWJsaXNoZWQgdG8gdGhlIHByb3ZpZGVyLiA8YnI+T25seSBhdmFpbGFibGUgd2l0aCBhY3RpdmF0ZWQgYnVmZmVyLjxicj5OZXcgc2V0dGluZ3Mgd2lsbCBvbmx5IGJlIGFwcGxpZWQgYWZ0ZXIgcXVpdHRpbmcgYWxsIHN0cmVhbXMuIg0KICAgIH0NCiAgfSwNCiAgInhtbHR2IjoNCiAgew0KICAgICJ0YWJsZSI6DQogICAgew0KICAgICAgImd1aWRlIjogIkd1aWRlIiwNCiAgICAgICJsYXN0VXBkYXRlIjogIkxhc3QgVXBkYXRlIiwNCiAgICAgICJhdmFpbGFiaWxpdHkiOiAiQXZhaWxhYmlsaXR5IiwNCiAgICAgICJjaGFubmVscyI6ICJDaGFubmVscyIsDQogICAgICAicHJvZ3JhbXMiOiAiUHJvZ3JhbXMiDQogICAgfSwNCiAgICAibmFtZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIk5hbWUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIkd1aWRlIG5hbWUiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJkZXNjcmlwdGlvbiI6DQogICAgew0KICAgICAgInRpdGxlIjogIkRlc2NyaXB0aW9uIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJEZXNjcmlwdGlvbiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgImZpbGVYTUxUViI6DQogICAgew0KICAgICAgInRpdGxlIjogIlhNTFRWIEZpbGUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIkZpbGUgcGF0aCBvciBVUkwgb2YgdGhlIFhNTFRWIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfQ0KICB9LA0KICAibWFwcGluZyI6DQogIHsNCiAgICAidGFibGUiOg0KICAgIHsNCiAgICAgICJjaE5vIjogIkNoLiBOby4iLA0KICAgICAgImxvZ28iOiAiTG9nbyIsDQogICAgICAiY2hhbm5lbE5hbWUiOiAiQ2hhbm5lbCBOYW1lIiwNCiAgICAgICJwbGF5bGlzdCI6ICJQbGF5bGlzdCIsDQogICAgICAiZ3JvdXBUaXRsZSI6ICJHcm91cCBUaXRsZSIsDQogICAgICAieG1sdHZGaWxlIjogIlhNTFRWIEZpbGUiLA0KICAgICAgInhtbHR2SUQiOiAiWE1MVFYgSUQiLA0KICAgICAgInRpbWVzaGlmdCI6ICJUaW1lc2hpZnQiDQogICAgfSwNCiAgICAiYWN0aXZlIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiQWN0aXZlIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJjaGFubmVsTmFtZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIkNoYW5uZWwgTmFtZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAiZGVzY3JpcHRpb24iOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJDaGFubmVsIERlc2NyaXB0aW9uIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJVc2VkIGJ5IHRoZSBEdW1teSBhcyBhbiBYTUwgZGVzY3JpcHRpb24iLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJ1cGRhdGVDaGFubmVsTmFtZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIlVwZGF0ZSBDaGFubmVsIE5hbWUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgInVwZGF0ZUNoYW5uZWxHcm91cCI6DQogICAgew0KICAgICAgInRpdGxlIjogIlVwZGF0ZSBDaGFubmVsIEdyb3VwIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIklmIGNoZWNrZWQsIHVzZSBncm91cCBmcm9tIHRoZSBkYXRhYmFzZSINCiAgICB9LA0KICAgICJjaGFubmVsTG9nbyI6DQogICAgew0KICAgICAgInRpdGxlIjogIkxvZ28gVVJMIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJ1cGRhdGVDaGFubmVsTG9nbyI6DQogICAgew0KICAgICAgInRpdGxlIjogIlVwZGF0ZSBDaGFubmVsIExvZ28iLA0KICAgICAgInBsYWNlaG9sZGVyIjogIiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgImVwZ0NhdGVnb3J5IjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiRVBHIENhdGVnb3J5IiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJtM3VHcm91cFRpdGxlIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiR3JvdXAgVGl0bGUgKHh0ZXZlLm0zdSkiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgInhtbHR2RmlsZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIlhNTFRWIEZpbGUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgInhtbHR2Q2hhbm5lbCI6DQogICAgew0KICAgICAgInRpdGxlIjogIlhNTFRWIENoYW5uZWwiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgInRpbWVzaGlmdCI6DQogICAgew0KICAgICAgInRpdGxlIjogIlRpbWVzaGlmdCIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiMCIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0NCiAgfSwNCiAgInVzZXJzIjoNCiAgew0KICAgICJ0YWJsZSI6DQogICAgew0KICAgICAgInVzZXJuYW1lIjogIlVzZXJuYW1lIiwNCiAgICAgICJwYXNzd29yZCI6ICJQYXNzd29yZCIsDQogICAgICAid2ViIjogIldFQiIsDQogICAgICAicG1zIjogIlBNUyIsDQogICAgICAibTN1IjogIk0zVSIsDQogICAgICAieG1sIjogIlhNTCIsDQogICAgICAiYXBpIjogIkFQSSINCiAgICB9LA0KICAgICJ1c2VybmFtZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIlVzZXJuYW1lIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJVc2VybmFtZSIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgInBhc3N3b3JkIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiUGFzc3dvcmQiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIlBhc3N3b3JkIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAiY29uZmlybSI6DQogICAgew0KICAgICAgInRpdGxlIjogIkNvbmZpcm0iLA0KICAgICAgInBsYWNlaG9sZGVyIjogIlBhc3N3b3JkIGNvbmZpcm0iLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJ3ZWIiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJXZWIgQWNjZXNzIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJwbXMiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJQTVMgQWNjZXNzIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJtM3UiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJNM1UgQWNjZXNzIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJ4bWwiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJYTUwgQWNjZXNzIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJhcGkiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJBUEkgQWNjZXNzIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9DQogIH0sDQogICJzZXR0aW5ncyI6DQogIHsNCiAgICAiY2F0ZWdvcnkiOg0KICAgIHsNCiAgICAgICJnZW5lcmFsIjogIkdlbmVyYWwiLA0KICAgICAgImZpbGVzIjogIkZpbGVzIiwNCiAgICAgICJzdHJlYW1pbmciOiAiU3RyZWFtaW5nIiwNCiAgICAgICJiYWNrdXAiOiAiQmFja3VwIiwNCiAgICAgICJhdXRoZW50aWNhdGlvbiI6ICJBdXRoZW50aWNhdGlvbiINCiAgICB9LA0KICAgICJ1cGRhdGUiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJTY2hlZHVsZSBmb3IgdXBkYXRpbmcgKFBsYXlsaXN0LCBYTUxUViwgQmFja3VwKSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiMDAwMCwxMDAwLDIwMDAiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIlRpbWUgaW4gMjQgaG91ciBmb3JtYXQgKDA4MDAgPSA4OjAwIGFtKS4gTW9yZSB0aW1lcyBjYW4gYmUgZW50ZXJlZCBjb21tYSBzZXBhcmF0ZWQuIExlYXZlIHRoaXMgZmllbGQgZW1wdHkgaWYgbm8gdXBkYXRlcyBhcmUgdG8gYmUgY2FycmllZCBvdXQuIg0KICAgIH0sDQogICAgImFwaSI6DQogICAgew0KICAgICAgInRpdGxlIjogIkFQSSBJbnRlcmZhY2UiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIlZpYSBBUEkgaW50ZXJmYWNlIGl0IGlzIHBvc3NpYmxlIHRvIHNlbmQgY29tbWFuZHMgdG8geFRlVmUuIEFQSSBkb2N1bWVudGF0aW9uIGlzIDxhIGhyZWY9J2h0dHBzOi8vZ2l0aHViLmNvbS94dGV2ZS1wcm9qZWN0L3hUZVZlLURvY3VtZW50YXRpb24vYmxvYi9tYXN0ZXIvZW4vY29uZmlndXJhdGlvbi5tZCNhcGknPmhlcmU8L2E+Ig0KICAgIH0sDQogICAgImVwZ1NvdXJjZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIkVQRyBTb3VyY2UiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIlBNUzo8YnI+LSBVc2UgRVBHIGRhdGEgZnJvbSBQbGV4IG9yIEVtYnkgPGJyPjxicj5YRVBHOjxicj4tIFVzZSBvZiBvbmUgb3IgbW9yZSBYTUxUViBmaWxlczxicj4tIENoYW5uZWwgbWFuYWdlbWVudDxicj4tIE0zVSAvIFhNTFRWIGV4cG9ydCAoSFRUUCBsaW5rIGZvciBJUFRWIGFwcHMpIg0KICAgIH0sDQogICAgInR1bmVyIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiTnVtYmVyIG9mIFR1bmVycyIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiTnVtYmVyIG9mIHBhcmFsbGVsIGNvbm5lY3Rpb25zIHRoYXQgY2FuIGJlIGVzdGFibGlzaGVkIHRvIHRoZSBwcm92aWRlci48YnI+QXZhaWxhYmxlIGZvcjogUGxleCwgRW1ieSAoSERIUiksIE0zVSAod2l0aCBhY3RpdmUgYnVmZmVyKS48YnI+QWZ0ZXIgYSBjaGFuZ2UsIHhUZVZlIG11c3QgYmUgZGVsZXRlIGluIHRoZSBQbGV4IC8gRW1ieSBEVlIgc2V0dGluZ3MgYW5kIHNldCB1cCBhZ2Fpbi4iDQogICAgfSwNCiAgICAiZmlsZXNVcGRhdGUiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJVcGRhdGVzIGFsbCBmaWxlcyBhdCBzdGFydHVwIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJVcGRhdGVzIGFsbCBwbGF5bGlzdHMsIHR1bmVyIGFuZCBYTUxUViBmaWxlcyBhdCBzdGFydHVwLiINCiAgICB9LA0KICAgICJjYWNoZUltYWdlcyI6DQogICAgew0KICAgICAgInRpdGxlIjogIkltYWdlIENhY2hpbmciLA0KICAgICAgImRlc2NyaXB0aW9uIjogIkFsbCBpbWFnZXMgZnJvbSB0aGUgWE1MVFYgZmlsZSBhcmUgY2FjaGVkLCBhbGxvd2luZyBmYXN0ZXIgcmVuZGVyaW5nIG9mIHRoZSBncmlkIGluIHRoZSBjbGllbnQuPGJyPkRvd25sb2FkaW5nIHRoZSBpbWFnZXMgbWF5IHRha2UgYSB3aGlsZSBhbmQgd2lsbCBiZSBkb25lIGluIHRoZSBiYWNrZ3JvdW5kLiINCiAgICB9LA0KICAgICJyZXBsYWNlRW1wdHlJbWFnZXMiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJSZXBsYWNlIG1pc3NpbmcgcHJvZ3JhbSBpbWFnZXMiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIklmIHRoZSBwb3N0ZXIgaW4gdGhlIFhNTFRWIHByb2dyYW0gaXMgbWlzc2luZywgdGhlIGNoYW5uZWwgbG9nbyB3aWxsIGJlIHVzZWQuIg0KICAgIH0sDQogICAgInh0ZXZlQXV0b1VwZGF0ZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIkF1dG9tYXRpYyB1cGRhdGUgb2YgeFRlVmUiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIklmIGEgbmV3IHZlcnNpb24gb2YgeFRlVmUgaXMgYXZhaWxhYmxlLCBpdCB3aWxsIGJlIGF1dG9tYXRpY2FsbHkgaW5zdGFsbGVkLiBUaGUgdXBkYXRlcyBhcmUgZG93bmxvYWRlZCBmcm9tIEdpdEh1Yi4iDQogICAgfSwNCiAgICAic3RyZWFtQnVmZmVyaW5nIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiU3RyZWFtIEJ1ZmZlciIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiRnVuY3Rpb25zIG9mIHRoZSBidWZmZXI6PGJyPi0gVGhlIHN0cmVhbSBpcyBwYXNzZWQgZnJvbSB4VGVWZSwgRkZtcGVnIG9yIFZMQyB0byBQbGV4LCBFbWJ5IG9yIE0zVSBQbGF5ZXI8YnI+LSBTbWFsbCBqZXJraW5nIG9mIHRoZSBzdHJlYW1zIGNhbiBiZSBjb21wZW5zYXRlZDxicj4tIEhMUyAvIE0zVTggc3VwcG9ydDxicj4tIFJUUCAvIFJUUFMgc3VwcG9ydCAob25seSBGRm1wZWcgb3IgVkxDKTxicj4tIFJlLXN0cmVhbWluZzxicj4tIFNlcGFyYXRlIHR1bmVyIGxpbWl0IGZvciBlYWNoIHBsYXlsaXN0IiwNCiAgICAgICJpbmZvX2ZhbHNlIjogIk5vIEJ1ZmZlciAoQ2xpZW50IGNvbm5lY3RzIHRvIHRoZSBzdHJlYW1pbmcgc2VydmVyKSIsDQogICAgICAiaW5mb194dGV2ZSI6ICJ4VGVWZSBjb25uZWN0cyB0byB0aGUgc3RyZWFtaW5nIHNlcnZlciIsDQogICAgICAiaW5mb19mZm1wZWciOiAiRkZtcGVnIGNvbm5lY3RzIHRvIHRoZSBzdHJlYW1pbmcgc2VydmVyIiwNCiAgICAgICJpbmZvX3ZsYyI6ICJWTEMgY29ubmVjdHMgdG8gdGhlIHN0cmVhbWluZyBzZXJ2ZXIiDQoNCiAgICB9LA0KICAgICJ1ZHB4eSI6DQogICAgew0KICAgICAgInRpdGxlIjogIlVEUHh5IGFkZHJlc3MiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIlRoZSBhZGRyZXNzIG9mIHlvdXIgVURQeHkgc2VydmVyLiBJZiBzZXQsIGFuZCB0aGUgY2hhbm5lbCBVUkxzIGluIHRoZSBtM3UgaXMgbXVsdGljYXN0LCB4VGVWZSB3aWxsIHJld3JpdGUgaXQgc28gdGhhdCBpdCBpcyBhY2Nlc3NlZCB2aWEgdGhlIFVEUHh5IHNlcnZpY2UuIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJob3N0OnBvcnQiDQogICAgfSwNCiAgICAiZmZtcGVnUGF0aCI6DQogICAgew0KICAgICAgInRpdGxlIjogIkZGbXBlZyBCaW5hcnkgUGF0aCIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiUGF0aCB0byBGRm1wZWcgYmluYXJ5LiIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiL3BhdGgvdG8vZmZtcGVnIg0KICAgIH0sDQogICAgImZmbXBlZ09wdGlvbnMiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJGRm1wZWcgT3B0aW9ucyIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiRkZtcGVnIG9wdGlvbnMuPGJyPk9ubHkgY2hhbmdlIGlmIHlvdSBrbm93IHdoYXQgeW91IGFyZSBkb2luZy48YnI+TGVhdmUgYmxhbmsgdG8gc2V0IGRlZmF1bHQgc2V0dGluZ3MuIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJMZWF2ZSBibGFuayB0byBzZXQgZGVmYXVsdCBzZXR0aW5ncyINCiAgICB9LA0KICAgICJ2bGNQYXRoIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiVkxDIC8gQ1ZMQyBCaW5hcnkgUGF0aCIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiUGF0aCB0byBWTEMgLyBDVkxDIGJpbmFyeS4iLA0KICAgICAgInBsYWNlaG9sZGVyIjogIi9wYXRoL3RvL2N2bGMiDQogICAgfSwNCiAgICAidmxjT3B0aW9ucyI6DQogICAgew0KICAgICAgInRpdGxlIjogIlZMQyAvIENWTEMgT3B0aW9ucyIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiVkxDIC8gQ1ZMQyBvcHRpb25zLjxicj5Pbmx5IGNoYW5nZSBpZiB5b3Uga25vdyB3aGF0IHlvdSBhcmUgZG9pbmcuPGJyPkxlYXZlIGJsYW5rIHRvIHNldCBkZWZhdWx0IHNldHRpbmdzLiIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiTGVhdmUgYmxhbmsgdG8gc2V0IGRlZmF1bHQgc2V0dGluZ3MiDQogICAgfSwNCiAgICAiYnVmZmVyU2l6ZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIkJ1ZmZlciBTaXplIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJCdWZmZXIgc2l6ZSBpbiBNQi48YnI+TTNVODogSWYgdGhlIFRTIHNlZ21lbnQgc21hbGxlciB0aGVuIHRoZSBidWZmZXIgc2l6ZSwgdGhlIGZpbGUgc2l6ZSBvZiB0aGUgc2VnbWVudCBpcyB1c2VkLiINCiAgICB9LA0KICAgICJidWZmZXJUaW1lb3V0IjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiVGltZW91dCBmb3IgbmV3IGNsaWVudCBjb25uZWN0aW9ucyIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiVGhlIHhUZVZlIGJ1ZmZlciB3YWl0cyB1bnRpbCBuZXcgY2xpZW50IGNvbm5lY3Rpb25zIGFyZSBlc3RhYmxpc2hlZC4gSGVscGZ1bCBmb3IgZmFzdCBjaGFubmVsIHN3aXRjaGluZy4gVmFsdWUgaW4gbWlsbGlzZWNvbmRzLiIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiMTAwIg0KICAgIH0sDQogICAgInVzZXJBZ2VudCI6DQogICAgew0KICAgICAgInRpdGxlIjogIlVzZXIgQWdlbnQiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIlVzZXIgQWdlbnQgZm9yIEhUVFAgcmVxdWVzdHMuIEZvciBldmVyeSBIVFRQIGNvbm5lY3Rpb24sIHRoaXMgdmFsdWUgaXMgdXNlZCBmb3IgdGhlIHVzZXIgYWdlbnQuIFNob3VsZCBvbmx5IGJlIGNoYW5nZWQgaWYgeFRlVmUgaXMgYmxvY2tlZC4iLA0KICAgICAgInBsYWNlaG9sZGVyIjogInhUZVZlIg0KICAgIH0sDQogICAgImJhY2t1cFBhdGgiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJMb2NhdGlvbiBmb3IgYXV0b21hdGljIGJhY2t1cHMiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIi9tbnQvZGF0YS9iYWNrdXAveHRldmUvIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJCZWZvcmUgYW55IHVwZGF0ZSBvZiB0aGUgcHJvdmlkZXIgZGF0YSBieSB0aGUgc2NoZWR1bGUsIHhUZVZlIGNyZWF0ZXMgYSBiYWNrdXAuIFRoZSBwYXRoIGZvciB0aGUgYXV0b21hdGljIGJhY2t1cHMgY2FuIGJlIGNoYW5nZWQuIHhUZVZlIHJlcXVpcmVzIHdyaXRlIHBlcm1pc3Npb24gZm9yIHRoaXMgZm9sZGVyLiINCiAgICB9LA0KICAgICJ0ZW1wUGF0aCI6DQogICAgew0KICAgICAgInRpdGxlIjogIkxvY2F0aW9uIGZvciB0aGUgdGVtcG9yYXJ5IGZpbGVzIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIvdG1wL3h0ZXZlLyIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiTG9jYXRpb24gZm9yIHRoZSBidWZmZXIgZmlsZXMuIg0KICAgIH0sDQogICAgImJhY2t1cEtlZXAiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJOdW1iZXIgb2YgYmFja3VwcyB0byBrZWVwIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJOdW1iZXIgb2YgYmFja3VwcyB0byBrZWVwLiBPbGRlciBiYWNrdXBzIGFyZSBhdXRvbWF0aWNhbGx5IGRlbGV0ZWQuIg0KICAgIH0sDQogICAgImF1dGhlbnRpY2F0aW9uV0VCIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiV0VCIEF1dGhlbnRpY2F0aW9uIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJBY2Nlc3MgdG8gdGhlIHdlYiBpbnRlcmZhY2Ugb25seSBwb3NzaWJsZSB3aXRoIGNyZWRlbnRpYWxzLiINCiAgICB9LA0KICAgICJhdXRoZW50aWNhdGlvblBNUyI6DQogICAgew0KICAgICAgInRpdGxlIjogIlBNUyBBdXRoZW50aWNhdGlvbiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiUGxleCByZXF1ZXN0cyBhcmUgb25seSBwb3NzaWJsZSB3aXRoIGF1dGhlbnRpY2F0aW9uLiA8YnI+PGI+V2FybmluZyEhITwvYj4gQWZ0ZXIgYWN0aXZhdGluZyB0aGlzIGZ1bmN0aW9uIHhUZVZlIG11c3QgYmUgZGVsZXRlIGluIHRoZSBQTVMgRFZSIHNldHRpbmdzIGFuZCBzZXQgdXAgYWdhaW4uIg0KICAgIH0sDQogICAgImF1dGhlbnRpY2F0aW9uTTNVIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiTTNVIEF1dGhlbnRpY2F0aW9uIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJEb3dubG9hZGluZyB0aGUgeHRldmUubTN1IGZpbGUgdmlhIGFuIEhUVFAgcmVxdWVzdCBpcyBvbmx5IHBvc3NpYmxlIHdpdGggYXV0aGVudGljYXRpb24uIg0KICAgIH0sDQogICAgImF1dGhlbnRpY2F0aW9uWE1MIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiWE1MIEF1dGhlbnRpY2F0aW9uIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJEb3dubG9hZGluZyB0aGUgeHRldmUueG1sIGZpbGUgdmlhIGFuIEhUVFAgcmVxdWVzdCBpcyBvbmx5IHBvc3NpYmxlIHdpdGggYXV0aGVudGljYXRpb24iDQogICAgfSwNCiAgICAiYXV0aGVudGljYXRpb25BUEkiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJBUEkgQXV0aGVudGljYXRpb24iLA0KICAgICAgImRlc2NyaXB0aW9uIjogIkFjY2VzcyB0byB0aGUgQVBJIGludGVyZmFjZSBpcyBvbmx5IHBvc3NpYmxlIHdpdGggYXV0aGVudGljYXRpb24uIg0KICAgIH0NCiAgfSwNCiAgIndpemFyZCI6DQogIHsNCiAgICAiZXBnU291cmNlIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiRVBHIFNvdXJjZSIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiUE1TOjxicj4tIFVzZSBFUEcgZGF0YSBmcm9tIFBsZXggb3IgRW1ieSA8YnI+PGJyPlhFUEc6PGJyPi0gVXNlIG9mIG9uZSBvciBtb3JlIFhNTFRWIGZpbGVzPGJyPi0gQ2hhbm5lbCBtYW5hZ2VtZW50PGJyPi0gTTNVIC8gWE1MVFYgZXhwb3J0IChIVFRQIGxpbmsgZm9yIElQVFYgYXBwcykiDQogICAgfSwNCiAgICAidHVuZXIiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJOdW1iZXIgb2YgdHVuZXJzIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJOdW1iZXIgb2YgcGFyYWxsZWwgY29ubmVjdGlvbnMgdGhhdCBjYW4gYmUgZXN0YWJsaXNoZWQgdG8gdGhlIHByb3ZpZGVyLjxicj5BdmFpbGFibGUgZm9yOiBQbGV4LCBFbWJ5IChIREhSKSwgTTNVICh3aXRoIGFjdGl2ZSBidWZmZXIpLjxicj5BZnRlciBhIGNoYW5nZSwgeFRlVmUgbXVzdCBiZSBkZWxldGUgaW4gdGhlIFBsZXggLyBFbWJ5IERWUiBzZXR0aW5ncyBhbmQgc2V0IHVwIGFnYWluLiINCiAgICB9LA0KICAgICJtM3UiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJNM1UgUGxheWxpc3QiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIkZpbGUgcGF0aCBvciBVUkwgb2YgdGhlIE0zVSIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiTG9jYWwgb3IgcmVtb3RlIHBsYXlsaXN0cyINCiAgICB9LA0KICAgICJ4bWx0diI6DQogICAgew0KICAgICAgInRpdGxlIjogIlhNTFRWIEZpbGUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIkZpbGUgcGF0aCBvciBVUkwgb2YgdGhlIFhNTFRWIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJMb2NhbCBvciByZW1vdGUgWE1MVFYgZmlsZSINCiAgICB9DQogIH0sDQogICJsb2dpbiI6DQogIHsNCiAgICAiZmFpbGVkIjogIlVzZXIgYXV0aGVudGljYXRpb24gZmFpbGVkIiwNCiAgICAiaGVhZGxpbmUiOiAiTG9naW4iLA0KICAgICJ1c2VybmFtZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIlVzZXJuYW1lIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJVc2VybmFtZSINCiAgICB9LA0KICAgICJwYXNzd29yZCI6DQogICAgew0KICAgICAgInRpdGxlIjogIlBhc3N3b3JkIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJQYXNzd29yZCINCiAgICB9DQogIH0sDQogICJhY2NvdW50IjoNCiAgew0KICAgICJmYWlsZWQiOiAiUGFzc3dvcmQgZG9lcyBub3QgbWF0Y2giLA0KICAgICJoZWFkbGluZSI6ICJDcmVhdGUgdXNlciBhY2NvdW50IiwNCiAgICAidXNlcm5hbWUiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJVc2VybmFtZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiVXNlcm5hbWUiDQogICAgfSwNCiAgICAicGFzc3dvcmQiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJQYXNzd29yZCIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiUGFzc3dvcmQiDQogICAgfSwNCiAgICAiY29uZmlybSI6DQogICAgew0KICAgICAgInRpdGxlIjogIkNvbmZpcm0iLA0KICAgICAgInBsYWNlaG9sZGVyIjogIkNvbmZpcm0iDQogICAgfQ0KICB9DQp9" diff --git a/ts/base_ts.ts b/ts/base_ts.ts index 7d6c288..6348c1c 100644 --- a/ts/base_ts.ts +++ b/ts/base_ts.ts @@ -110,16 +110,8 @@ function getLocalData(dataType, id):object { return data } -function getObjKeys(obj) { - var keys = new Array(); - - for (var i in obj) { - if (obj.hasOwnProperty(i)) { - keys.push(i); - } - } - - return keys; +function getOwnObjProps(object: Object): string[] { + return Object.getOwnPropertyNames(object); } function getAllSelectedChannels():string[] { @@ -294,7 +286,7 @@ function createSearchObj() { SEARCH_MAPPING = new Object() var data = SERVER["xepg"]["epgMapping"] - var channels = getObjKeys(data) + var channels = getOwnObjProps(data) var channelKeys:string[] = ["x-active", "x-channelID", "x-name", "_file.m3u.name", "x-group-title", "x-xmltv-file"] @@ -390,7 +382,7 @@ function changeChannelNumber(element) { var newNumber:number = parseFloat(element.value) var channelNumbers:number[] = [] var data = SERVER["xepg"]["epgMapping"] - var channels = getObjKeys(data) + var channels = getOwnObjProps(data) if (isNaN(newNumber)) { alert("{{.alert.invalidChannelNumber}}") @@ -645,27 +637,40 @@ function checkUndo(key:string) { return } -function sortSelect(elem) { - - var tmpAry = []; - var selectedValue = elem[elem.selectedIndex].value; +function sortSelect(select: HTMLSelectElement) { + const tempArr: HTMLOptionElement[] = []; + const selectedValue = select.options[select.selectedIndex].value; - for (var i=0;i 0) elem.options[0] = null; + tempArr.sort((o1: HTMLOptionElement, o2: HTMLOptionElement) => { + if (o1.text < o2.text) { + return -1; + } + if (o1.text > o2.text) { + return 1; + } + return 0; + }); - var newSelectedIndex = 0; + while (select.options.length > 0) { + select.options[0] = null; + }; - for (var i=0;i { diff --git a/ts/menu_ts.ts b/ts/menu_ts.ts index d1c8934..efd0bf9 100644 --- a/ts/menu_ts.ts +++ b/ts/menu_ts.ts @@ -130,7 +130,7 @@ class Content { data = SERVER["settings"]["files"][fileType] - var keys = getObjKeys(data) + var keys = getOwnObjProps(data) keys.forEach(key => { var tr = document.createElement("TR") @@ -206,7 +206,7 @@ class Content { case "filter": delete SERVER["settings"]["filter"][-1] data = SERVER["settings"]["filter"] - var keys = getObjKeys(data) + var keys = getOwnObjProps(data) keys.forEach(key => { var tr = document.createElement("TR") tr.id = key @@ -261,7 +261,7 @@ class Content { data = SERVER["settings"]["files"][fileType] - var keys = getObjKeys(data) + var keys = getOwnObjProps(data) keys.forEach(key => { var tr = document.createElement("TR") @@ -311,7 +311,7 @@ class Content { fileTypes.forEach(fileType => { data = SERVER[fileType] - var keys = getObjKeys(data) + var keys = getOwnObjProps(data) keys.forEach(key => { var tr = document.createElement("TR") @@ -393,7 +393,7 @@ class Content { console.log("MAPPING") data = SERVER["xepg"]["epgMapping"] - var keys = getObjKeys(data) + var keys = getOwnObjProps(data) keys.forEach(key => { var tr = document.createElement("TR") tr.id = key @@ -889,7 +889,7 @@ function createLayout() { // Client Info let obj = SERVER["clientInfo"] - let keys = getObjKeys(obj); + let keys = getOwnObjProps(obj); for (var i = 0; i < keys.length; i++) { if (document.getElementById(keys[i])) { @@ -1680,20 +1680,20 @@ function openPopUp(dataType, element) { var select = xmltv.getFiles(data[dbKey]) select.setAttribute("name", dbKey) select.setAttribute("id", "popup-xmltv") - select.setAttribute("onchange", "javascript: this.className = 'changed'; setXmltvChannel('" + id + "',this);") + select.setAttribute("onchange", `javascript: this.className = 'changed'; setXmltvChannel('${id}', this);`); content.appendRow("{{.mapping.xmltvFile.title}}", select) - var file = data[dbKey] // XMLTV Mapping - var dbKey:string = "x-mapping" - var xmltv:XMLTVFile = new XMLTVFile() - var select = xmltv.getPrograms(file, data[dbKey]) - select.setAttribute("name", dbKey) - select.setAttribute("id", "popup-mapping") - select.setAttribute("onchange", "javascript: this.className = 'changed'; checkXmltvChannel('" + id + "',this,'" + xmlFile + "');") - - sortSelect(select) - content.appendRow("{{.mapping.xmltvChannel.title}}", select) + var dbKey: string = 'x-mapping'; + var xmltv: XMLTVFile = new XMLTVFile(); + const xMapping: string = data[dbKey]; + const xmlTvIdSelect = xmltv.getPrograms(xmlFile, xMapping); + xmlTvIdSelect.setAttribute('name', dbKey); + xmlTvIdSelect.setAttribute('id', 'popup-mapping'); + xmlTvIdSelect.setAttribute('onchange', `javascript: this.className = 'changed'; checkXmltvChannel('${id}', this, '${xmlFile}');`); + + sortSelect(xmlTvIdSelect); + content.appendRow('{{.mapping.xmltvChannel.title}}', xmlTvIdSelect); // Timeshift var dbKey:string = "x-timeshift" @@ -1739,7 +1739,7 @@ class XMLTVFile { File:string getFiles(set:string):any { - let fileIDs:string[] = getObjKeys(SERVER["xepg"]["xmltvMap"]) + let fileIDs:string[] = getOwnObjProps(SERVER["xepg"]["xmltvMap"]) let values = new Array("-"); let text = new Array("-"); @@ -1769,42 +1769,36 @@ class XMLTVFile { return select } - getPrograms(file:string, set:string):any { - //var fileIDs:string[] = getObjKeys(SERVER["xepg"]["xmltvMap"]) - let values = getObjKeys(SERVER["xepg"]["xmltvMap"][file]); - let text = [] - let friendlyName:string + getPrograms(xmlFile: string, xMapping: string): HTMLSelectElement { + const values = getOwnObjProps(SERVER['xepg']['xmltvMap'][xmlFile]); + const text: string[] = []; + let friendlyName: string; for (let i = 0; i < values.length; i++) { - if (SERVER["xepg"]["xmltvMap"][file][values[i]].hasOwnProperty('friendly-name') == true) { - friendlyName = SERVER["xepg"]["xmltvMap"][file][values[i]]["friendly-name"]; + if (SERVER['xepg']['xmltvMap'][xmlFile][values[i]].hasOwnProperty('friendly-name') == true) { + friendlyName = SERVER['xepg']['xmltvMap'][xmlFile][values[i]]['friendly-name']; } else { - friendlyName = "-" + friendlyName = '-'; } - text[i] = friendlyName + " (" + values[i] + ")"; + text[i] = `${friendlyName} (${values[i]})`; } - text.unshift("-"); - values.unshift("-"); + text.unshift('-'); + values.unshift('-'); - let select = document.createElement("SELECT") - for (let i = 0; i < text.length; i++) { - var option = document.createElement("OPTION") - option.setAttribute("value", values[i]) - option.innerText = text[i] - select.appendChild(option) - } + const select = (document.createElement('select') as HTMLSelectElement); - if(set != "") { - (select as HTMLSelectElement).value = set + for (let i = 0; i < text.length; i++) { + const option = document.createElement('option'); + option.setAttribute('value', values[i]); + option.innerText = text[i]; + select.appendChild(option); } - if ((select as HTMLSelectElement).value != set) { - (select as HTMLSelectElement).value = "-" - } + select.value = (xMapping == '') ? '-' : xMapping; - return select + return select; } return @@ -1846,92 +1840,78 @@ function getValueFromProviderFile(file:string, fileType, key) { } -function setXmltvChannel(id, element) { +function setXmltvChannel(epgMappingId: string, oldSelect: HTMLSelectElement) { - let xmltv:XMLTVFile = new XMLTVFile() - let xmlFile = element.value + let xmltv: XMLTVFile = new XMLTVFile(); + let xmlFile = oldSelect.value; - let tvgId:string = SERVER["xepg"]["epgMapping"][id]["tvg-id"] - let td = document.getElementById("popup-mapping").parentElement - td.innerHTML = "" + let tvgId: string = SERVER['xepg']['epgMapping'][epgMappingId]['tvg-id']; + let td = document.getElementById('popup-mapping').parentElement; + td.innerHTML = ''; - let select = xmltv.getPrograms(element.value, tvgId) - select.setAttribute("name", "x-mapping") - select.setAttribute("id", "popup-mapping") - select.setAttribute("onchange", "javascript: this.className = 'changed'; checkXmltvChannel('" + id + "',this,'" + xmlFile + "');") - select.className = "changed" - sortSelect(select) - td.appendChild(select); + const newSelect = xmltv.getPrograms(oldSelect.value, tvgId); + newSelect.setAttribute('name', 'x-mapping'); + newSelect.setAttribute('id', 'popup-mapping'); + newSelect.setAttribute('onchange', `javascript: this.className = 'changed'; checkXmltvChannel('${epgMappingId}', this, '${xmlFile}');`); + newSelect.className = 'changed'; + sortSelect(newSelect); + td.appendChild(newSelect); - checkXmltvChannel(id, select, xmlFile) + checkXmltvChannel(epgMappingId, newSelect, xmlFile); + } -function checkXmltvChannel(id:string, element:any, xmlFile) { +function checkXmltvChannel(epgMappingId: string, select: HTMLSelectElement, xmlFile: string) { - let value = (element as HTMLSelectElement).value - let bool:boolean - let checkbox = document.getElementById('active') - let channel:any = SERVER["xepg"]["epgMapping"][id] - let updateLogo:boolean - + const selectValue = (select as HTMLSelectElement).value; + let channelActive: boolean; + const checkbox = document.getElementById('active'); - bool = value != "-"; + channelActive = selectValue != '-'; - (checkbox as HTMLInputElement).checked = bool - checkbox.className = "changed" - console.log(xmlFile); - - // Update channel logo - /* - updateLogo = (document.getElementById("update-icon") as HTMLInputElement).checked - console.log(updateLogo); - */ - - if(xmlFile != "xTeVe Dummy" && bool == true) { - - //(document.getElementById("update-icon") as HTMLInputElement).checked = true; - //(document.getElementById("update-icon") as HTMLInputElement).className = "changed"; - - console.log("ID", id) - changeChannelLogo(id) + (checkbox as HTMLInputElement).checked = channelActive; + checkbox.className = 'changed'; - return + if(xmlFile != 'xTeVe Dummy' && channelActive == true) { + changeChannelLogo(epgMappingId); + return; } - if (xmlFile == "xTeVe Dummy") { - (document.getElementById("update-icon") as HTMLInputElement).checked = false; - (document.getElementById("update-icon") as HTMLInputElement).className = "changed"; + if (xmlFile == 'xTeVe Dummy') { + (document.getElementById('update-icon') as HTMLInputElement).checked = false; + (document.getElementById('update-icon') as HTMLInputElement).className = 'changed'; } - return } -function changeChannelLogo(id:string) { +function changeChannelLogo(epgMappingId: string) { - let updateLogo:boolean - let channel:any = SERVER["xepg"]["epgMapping"][id] + let updateLogo: boolean; + let logo: string; + const channel: any = SERVER['xepg']['epgMapping'][epgMappingId]; - let f = (document.getElementById("popup-xmltv") as HTMLSelectElement); - let xmltvFile = f.options[f.selectedIndex].value; + const f = (document.getElementById('popup-xmltv') as HTMLSelectElement); + const xmltvFile = f.options[f.selectedIndex].value; - let m = (document.getElementById("popup-mapping") as HTMLSelectElement); - let xMapping = m.options[m.selectedIndex].value; + const m = (document.getElementById('popup-mapping') as HTMLSelectElement); + const xMapping = m.options[m.selectedIndex].value; - let xmltvLogo = SERVER["xepg"]["xmltvMap"][xmltvFile][xMapping]["icon"] - updateLogo = (document.getElementById("update-icon") as HTMLInputElement).checked + const xmltvLogo = SERVER['xepg']['xmltvMap'][xmltvFile][xMapping]['icon']; + updateLogo = (document.getElementById('update-icon') as HTMLInputElement).checked; - if (updateLogo == true && xmltvFile != "xTeVe Dummy") { + if (updateLogo == true && xmltvFile != 'xTeVe Dummy') { - if (SERVER["xepg"]["xmltvMap"][xmltvFile].hasOwnProperty(xMapping)) { - var logo = xmltvLogo + if (SERVER['xepg']['xmltvMap'][xmltvFile].hasOwnProperty(xMapping)) { + logo = xmltvLogo; } else { - logo = channel["tvg-logo"] + logo = channel['tvg-logo']; } - var logoInput = (document.getElementById("channel-icon") as HTMLInputElement); - logoInput.value = logo + var logoInput = (document.getElementById('channel-icon') as HTMLInputElement); + logoInput.value = logo; + if (BULK_EDIT == false) { - logoInput.className = "changed" + logoInput.className = 'changed'; } } From 3a62a32b64912862733359d8d65b243a28bcd8f6 Mon Sep 17 00:00:00 2001 From: SCP002 Date: Mon, 18 Apr 2022 21:54:29 +0300 Subject: [PATCH 088/189] Make frontend popup mapping code slightly less cryptic. Take 2. --- html/js/base_ts.js | 2 +- html/js/menu_ts.js | 107 ++++++++++++++++++++--------------------- src/webUI.go | 4 +- ts/base_ts.ts | 2 +- ts/menu_ts.ts | 116 +++++++++++++++++++++++---------------------- 5 files changed, 118 insertions(+), 113 deletions(-) diff --git a/html/js/base_ts.js b/html/js/base_ts.js index 0e98d8e..6aecc88 100644 --- a/html/js/base_ts.js +++ b/html/js/base_ts.js @@ -94,7 +94,7 @@ function getLocalData(dataType, id) { return data; } function getOwnObjProps(object) { - return Object.getOwnPropertyNames(object); + return object ? Object.getOwnPropertyNames(object) : []; } function getAllSelectedChannels() { var channels = new Array(); diff --git a/html/js/menu_ts.js b/html/js/menu_ts.js index 94ea478..1d7eff4 100644 --- a/html/js/menu_ts.js +++ b/html/js/menu_ts.js @@ -1345,22 +1345,22 @@ function openPopUp(dataType, element) { content.appendRow("{{.mapping.updateChannelGroup.title}}", input); content.description("{{.mapping.updateChannelGroup.description}}"); // XMLTV file - var dbKey = "x-xmltv-file"; - var xmlFile = data[dbKey]; - var xmltv = new XMLTVFile(); - var select = xmltv.getFiles(data[dbKey]); - select.setAttribute("name", dbKey); - select.setAttribute("id", "popup-xmltv"); - select.setAttribute("onchange", `javascript: this.className = 'changed'; setXmltvChannel('${id}', this);`); - content.appendRow("{{.mapping.xmltvFile.title}}", select); + var dbKey = 'x-xmltv-file'; + const xmlTvFile = data[dbKey]; + var xmlTv = new XMLTVFile(); + const xmlTvFileSelect = xmlTv.getFiles(data[dbKey]); + xmlTvFileSelect.setAttribute('name', dbKey); + xmlTvFileSelect.setAttribute('id', 'popup-xmltv'); + xmlTvFileSelect.setAttribute('onchange', `javascript: this.className = 'changed'; setXmltvChannel('${id}', this);`); + content.appendRow('{{.mapping.xmltvFile.title}}', xmlTvFileSelect); // XMLTV Mapping var dbKey = 'x-mapping'; - var xmltv = new XMLTVFile(); - const xMapping = data[dbKey]; - const xmlTvIdSelect = xmltv.getPrograms(xmlFile, xMapping); + var xmlTv = new XMLTVFile(); + const currentXmlTvId = data[dbKey]; + const xmlTvIdSelect = xmlTv.getPrograms(xmlTvFile, currentXmlTvId); xmlTvIdSelect.setAttribute('name', dbKey); xmlTvIdSelect.setAttribute('id', 'popup-mapping'); - xmlTvIdSelect.setAttribute('onchange', `javascript: this.className = 'changed'; checkXmltvChannel('${id}', this, '${xmlFile}');`); + xmlTvIdSelect.setAttribute('onchange', `javascript: this.className = 'changed'; checkXmltvChannel('${id}', this, '${xmlTvFile}');`); sortSelect(xmlTvIdSelect); content.appendRow('{{.mapping.xmltvChannel.title}}', xmlTvIdSelect); // Timeshift @@ -1422,13 +1422,13 @@ class XMLTVFile { } return select; } - getPrograms(xmlFile, xMapping) { - const values = getOwnObjProps(SERVER['xepg']['xmltvMap'][xmlFile]); + getPrograms(xmlTvFile, currentXmlTvId) { + const values = getOwnObjProps(SERVER['xepg']['xmltvMap'][xmlTvFile]); const text = []; let friendlyName; for (let i = 0; i < values.length; i++) { - if (SERVER['xepg']['xmltvMap'][xmlFile][values[i]].hasOwnProperty('friendly-name') == true) { - friendlyName = SERVER['xepg']['xmltvMap'][xmlFile][values[i]]['friendly-name']; + if (SERVER['xepg']['xmltvMap'][xmlTvFile][values[i]].hasOwnProperty('friendly-name') == true) { + friendlyName = SERVER['xepg']['xmltvMap'][xmlTvFile][values[i]]['friendly-name']; } else { friendlyName = '-'; @@ -1444,7 +1444,7 @@ class XMLTVFile { option.innerText = text[i]; select.appendChild(option); } - select.value = (xMapping == '') ? '-' : xMapping; + select.value = (currentXmlTvId == '') ? '-' : currentXmlTvId; return select; } } @@ -1474,50 +1474,51 @@ function getValueFromProviderFile(file, fileType, key) { } return; } -function setXmltvChannel(epgMappingId, oldSelect) { - let xmltv = new XMLTVFile(); - let xmlFile = oldSelect.value; - let tvgId = SERVER['xepg']['epgMapping'][epgMappingId]['tvg-id']; - let td = document.getElementById('popup-mapping').parentElement; - td.innerHTML = ''; - const newSelect = xmltv.getPrograms(oldSelect.value, tvgId); - newSelect.setAttribute('name', 'x-mapping'); - newSelect.setAttribute('id', 'popup-mapping'); - newSelect.setAttribute('onchange', `javascript: this.className = 'changed'; checkXmltvChannel('${epgMappingId}', this, '${xmlFile}');`); - newSelect.className = 'changed'; - sortSelect(newSelect); - td.appendChild(newSelect); - checkXmltvChannel(epgMappingId, newSelect, xmlFile); +function setXmltvChannel(epgMapId, xmlTvFileSelect) { + const xmlTv = new XMLTVFile(); + const newXmlTvFile = xmlTvFileSelect.value; + // Remove old XMLTV ID selection box + const xmlTvIdSelectParent = document.getElementById('popup-mapping').parentElement; + xmlTvIdSelectParent.innerHTML = ''; + // Create new XMLTV ID selection box + const tvgId = SERVER['xepg']['epgMapping'][epgMapId]['tvg-id']; + const newXmlTvIdSelect = xmlTv.getPrograms(newXmlTvFile, tvgId); + newXmlTvIdSelect.setAttribute('name', 'x-mapping'); + newXmlTvIdSelect.setAttribute('id', 'popup-mapping'); + newXmlTvIdSelect.setAttribute('onchange', `javascript: this.className = 'changed'; checkXmltvChannel('${epgMapId}', this, '${newXmlTvFile}');`); + newXmlTvIdSelect.className = 'changed'; + sortSelect(newXmlTvIdSelect); + // Add new XMLTV ID selection box to it's parent + xmlTvIdSelectParent.appendChild(newXmlTvIdSelect); + checkXmltvChannel(epgMapId, newXmlTvIdSelect, newXmlTvFile); } -function checkXmltvChannel(epgMappingId, select, xmlFile) { - const selectValue = select.value; - let channelActive; - const checkbox = document.getElementById('active'); - channelActive = selectValue != '-'; - checkbox.checked = channelActive; - checkbox.className = 'changed'; - if (xmlFile != 'xTeVe Dummy' && channelActive == true) { - changeChannelLogo(epgMappingId); +function checkXmltvChannel(epgMapId, xmlTvIdSelect, xmlTvFile) { + const newXmlTvId = xmlTvIdSelect.value; + const channelActiveCb = document.getElementById('active'); + const channelActive = newXmlTvId != '-'; + channelActiveCb.checked = channelActive; + channelActiveCb.className = 'changed'; + if (xmlTvFile != 'xTeVe Dummy' && channelActive == true) { + changeChannelLogo(epgMapId); return; } - if (xmlFile == 'xTeVe Dummy') { + if (xmlTvFile == 'xTeVe Dummy') { document.getElementById('update-icon').checked = false; document.getElementById('update-icon').className = 'changed'; } } -function changeChannelLogo(epgMappingId) { - let updateLogo; +function changeChannelLogo(epgMapId) { + const channel = SERVER['xepg']['epgMapping'][epgMapId]; + const xmlTvFileSelect = document.getElementById('popup-xmltv'); + const xmlTvFile = xmlTvFileSelect.options[xmlTvFileSelect.selectedIndex].value; + const xmlTvIdSelect = document.getElementById('popup-mapping'); + const newXmlTvId = xmlTvIdSelect.options[xmlTvIdSelect.selectedIndex].value; + const xmlTvLogo = SERVER['xepg']['xmltvMap'][xmlTvFile][newXmlTvId]['icon']; + const updateLogo = document.getElementById('update-icon').checked; let logo; - const channel = SERVER['xepg']['epgMapping'][epgMappingId]; - const f = document.getElementById('popup-xmltv'); - const xmltvFile = f.options[f.selectedIndex].value; - const m = document.getElementById('popup-mapping'); - const xMapping = m.options[m.selectedIndex].value; - const xmltvLogo = SERVER['xepg']['xmltvMap'][xmltvFile][xMapping]['icon']; - updateLogo = document.getElementById('update-icon').checked; - if (updateLogo == true && xmltvFile != 'xTeVe Dummy') { - if (SERVER['xepg']['xmltvMap'][xmltvFile].hasOwnProperty(xMapping)) { - logo = xmltvLogo; + if (updateLogo == true && xmlTvFile != 'xTeVe Dummy') { + if (SERVER['xepg']['xmltvMap'][xmlTvFile].hasOwnProperty(newXmlTvId)) { + logo = xmlTvLogo; } else { logo = channel['tvg-logo']; diff --git a/src/webUI.go b/src/webUI.go index cfdc14e..ea49714 100644 --- a/src/webUI.go +++ b/src/webUI.go @@ -25,11 +25,11 @@ func loadHTMLMap() { webUI["html/img/xmltv.png"] = "iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAAAXNSR0IArs4c6QAAAAlwSFlzAAAsSwAALEsBpT2WqQAABCRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IlhNUCBDb3JlIDUuNC4wIj4KICAgPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIgogICAgICAgICAgICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgICAgICAgICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyI+CiAgICAgICAgIDx0aWZmOlJlc29sdXRpb25Vbml0PjI8L3RpZmY6UmVzb2x1dGlvblVuaXQ+CiAgICAgICAgIDx0aWZmOkNvbXByZXNzaW9uPjU8L3RpZmY6Q29tcHJlc3Npb24+CiAgICAgICAgIDx0aWZmOlhSZXNvbHV0aW9uPjI4ODwvdGlmZjpYUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6T3JpZW50YXRpb24+MTwvdGlmZjpPcmllbnRhdGlvbj4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+Mjg4PC90aWZmOllSZXNvbHV0aW9uPgogICAgICAgICA8ZXhpZjpQaXhlbFhEaW1lbnNpb24+NTA8L2V4aWY6UGl4ZWxYRGltZW5zaW9uPgogICAgICAgICA8ZXhpZjpDb2xvclNwYWNlPjE8L2V4aWY6Q29sb3JTcGFjZT4KICAgICAgICAgPGV4aWY6UGl4ZWxZRGltZW5zaW9uPjUwPC9leGlmOlBpeGVsWURpbWVuc2lvbj4KICAgICAgICAgPGRjOnN1YmplY3Q+CiAgICAgICAgICAgIDxyZGY6QmFnLz4KICAgICAgICAgPC9kYzpzdWJqZWN0PgogICAgICAgICA8eG1wOk1vZGlmeURhdGU+MjAxOC0wNy0yOFQyMDowNzozMzwveG1wOk1vZGlmeURhdGU+CiAgICAgICAgIDx4bXA6Q3JlYXRvclRvb2w+UGl4ZWxtYXRvciAzLjM8L3htcDpDcmVhdG9yVG9vbD4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgIDwvcmRmOlJERj4KPC94OnhtcG1ldGE+Co6j9bsAAAGgSURBVGgF7VqxTsNADL0gYGEon8DOwsbAAH8BYmJn6cYIn8DC3h0+oixISFRiYYCJL0AwMMBAeK5w2rpV6uikxHfYknW98+vds18TK21DWGBlWR7CH+BfcEv2AzLP8HP42gLqkyUATuEp2PWEdQjF9ATs1zF/g29Mrxt+vVcUxR3xWxEktzFPJQmivsv8ZSI9DiQyVnxlIonwn6fpiczXpNuVVXH8O+a3Ys3y9NUyuf/NTTbEHZTjUlGSRzSiPhroUIENwB4AS/vS/susDwDhTpYBER9g7wHh5DWyibV9CiitCZbIafDEYUuJHQI3Nr/9ciWsjK6IFSWYhyvClbAyZqOIlYJG84jq7E1Ot97Zm+TinV1TrWwudk9EI3ebGFekzWprzspGEU2ySWCiOrs/s9dr7M/s9fVJJJrNXcsTsfaJc0WsKZINH+/sf1Jqvl1n1f2ZnStRN/pdq646XcSkIh9dkIg4s+IrE3nCpp8RG7f91ns+cCYR/LD4jcAZB42PN+A7/mcQ8ZxJhBYQvMJwBB/BKTFLVoLMC/wCfgyv7BesTKUC2LKM3wAAAABJRU5ErkJggg==" webUI["html/index.html"] = "PCFkb2N0eXBlIGh0bWw+DQo8aHRtbD4NCiAgPGhlYWQ+DQogICAgPG1ldGEgY2hhcnNldD0idXRmLTgiPg0KICAgIDwhLS0tDQogICAgPG1ldGEgbmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9IndpZHRoPWRldmljZS13aWR0aCwgaW5pdGlhbC1zY2FsZT0xLjAiIC8+IA0KICAgIC0tPg0KICAgIDx0aXRsZT54VGVWZTwvdGl0bGU+DQogICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJjc3Mvc2NyZWVuLmNzcyIgdHlwZT0idGV4dC9jc3MiPg0KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iY3NzL2Jhc2UuY3NzIiB0eXBlPSJ0ZXh0L2NzcyI+DQoNCiAgICA8c2NyaXB0IGxhbmd1YWdlPSJqYXZhc2NyaXB0IiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ianMvbmV0d29ya190cy5qcyI+PC9zY3JpcHQ+DQogICAgPHNjcmlwdCBsYW5ndWFnZT0iamF2YXNjcmlwdCIgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9ImpzL21lbnVfdHMuanMiPjwvc2NyaXB0Pg0KICAgIDxzY3JpcHQgbGFuZ3VhZ2U9ImphdmFzY3JpcHQiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJqcy9zZXR0aW5nc190cy5qcyI+PC9zY3JpcHQ+DQogICAgPHNjcmlwdCBsYW5ndWFnZT0iamF2YXNjcmlwdCIgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9ImpzL2xvZ3NfdHMuanMiPjwvc2NyaXB0Pg0KICAgIDxzY3JpcHQgbGFuZ3VhZ2U9ImphdmFzY3JpcHQiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJqcy9iYXNlX3RzLmpzIj48L3NjcmlwdD4NCg0KICA8L2hlYWQ+DQoNCiAgICA8Ym9keSBvbmxvYWQ9ImphdmFzY3JpcHQ6IFBhZ2VSZWFkeSgpOyI+DQoNCiAgICAgIDxkaXYgaWQ9ImxvYWRpbmciIGNsYXNzPSJub25lIj4NCiAgICAgICAgPGRpdiBjbGFzcz0ibG9hZGVyIj48L2Rpdj4NCiAgICAgIDwvZGl2Pg0KDQogICAgICA8ZGl2IGlkPSJwb3B1cCIgY2xhc3M9Im5vbmUiPg0KICAgICAgICA8ZGl2IGlkPSJwb3B1cC1jdXN0b20iPjwvZGl2Pg0KICAgICAgPC9kaXY+DQoNCiAgICAgIDxkaXYgaWQ9ImxheW91dCI+DQoNCiAgICAgICAgPCEtLQ0KICAgICAgICA8ZGl2IGlkPSJub3RpZmljYXRpb24iPg0KICAgICAgICAgIDxkaXYgY2xhc3M9ImVsZW1lbnQiPg0KICAgICAgICAgICAgPGg1PlhFUEc8L2g1Pg0KICAgICAgICAgICAgPHByZT4xMS4wNS4yMDE5IC0gMjA6MjE8L3ByZT4NCiAgICAgICAgICAgIDxocj4NCiAgICAgICAgICAgIDxwPkhhbGxvIGRhcyBpc3QgZWluIFRlc3QuIFVuZCBub2NoIG1laHIgVGV4dC48L3A+DQogICAgICAgICAgPC9kaXY+DQogICAgICAgIDwvZGl2Pg0KICAgICAgLS0+DQoNCiAgICAgICAgPGRpdiBpZD0ibWVudS13cmFwcGVyIiBjbGFzcz0ibGF5b3V0LWxlZnQiPg0KICAgICAgICAgIDxkaXYgaWQ9ICJicmFuY2giPjwvZGl2Pg0KICAgICAgICAgIDxkaXYgaWQ9ImxvZ28iPjwvZGl2Pg0KICAgICAgICAgIDxuYXYgaWQ9Im1haW4tbWVudSI+PC9uYXY+DQogICAgICAgIDwvZGl2Pg0KDQogICAgICAgIDxkaXYgY2xhc3M9ImxheW91dC1yaWdodCI+DQoNCiAgICAgICAgICA8dGFibGUgaWQ9ImNsaWVudEluZm8iIGNsYXNzPSIiPg0KDQogICAgICAgICAgICA8dHI+DQogICAgICAgICAgICAgIDx0ZCBjbGFzcz0idGRLZXkiPnhUZVZlOjwvdGQ+DQogICAgICAgICAgICAgIDx0ZCBpZD0idmVyc2lvbiIgY2xhc3M9InRkVmFsIj4mbmJzcDs8L3RkPg0KICAgICAgICAgICAgICA8dGQgY2xhc3M9InRkS2V5Ij5PUzo8L3RkPg0KICAgICAgICAgICAgICA8dGQgaWQ9Im9zIiBjbGFzcz0idGRWYWwiPiZuYnNwOzwvdGQ+DQogICAgICAgICAgICAgIDx0ZCBjbGFzcz0idGRLZXkgcGhvbmUiPkRWUiBJUDo8L3RkPg0KICAgICAgICAgICAgICA8dGQgaWQ9IkRWUiIgY2xhc3M9InRkVmFsIHBob25lIj4mbmJzcDs8L3RkPg0KICAgICAgICAgICAgPC90cj4NCg0KICAgICAgICAgICAgPHRyPg0KICAgICAgICAgICAgICA8dGQgY2xhc3M9InRkS2V5Ij5VVUlEOjwvdGQ+DQogICAgICAgICAgICAgIDx0ZCBpZD0idXVpZCIgY2xhc3M9InRkVmFsIj4mbmJzcDs8L3RkPg0KICAgICAgICAgICAgICA8dGQgY2xhc3M9InRkS2V5Ij5BcmNoOjwvdGQ+DQogICAgICAgICAgICAgIDx0ZCBpZD0iYXJjaCIgY2xhc3M9InRkVmFsIj4mbmJzcDs8L3RkPg0KICAgICAgICAgICAgICA8dGQgY2xhc3M9InRkS2V5IHBob25lIj5NM1UgVVJMOjwvdGQ+DQogICAgICAgICAgICAgIDx0ZCBpZD0ibTN1LXVybCIgY2xhc3M9InRkVmFsIHBob25lIj4mbmJzcDs8L3RkPg0KICAgICAgICAgICAgPC90cj4NCg0KICAgICAgICAgICAgPHRyPg0KICAgICAgICAgICAgICA8dGQgY2xhc3M9InRkS2V5Ij5BdmFpbGFibGUgU3RyZWFtczo8L3RkPg0KICAgICAgICAgICAgICA8dGQgaWQ9InN0cmVhbXMiIGNsYXNzPSJ0ZFZhbCI+Jm5ic3A7PC90ZD4NCiAgICAgICAgICAgICAgPHRkIGNsYXNzPSJ0ZEtleSI+RVBHIFNvdXJjZTo8L3RkPg0KICAgICAgICAgICAgICA8dGQgaWQ9ImVwZ1NvdXJjZSIgY2xhc3M9InRkVmFsIj4mbmJzcDs8L3RkPg0KICAgICAgICAgICAgICA8dGQgY2xhc3M9InRkS2V5IHBob25lIj5YRVBHIFVSTDo8L3RkPg0KICAgICAgICAgICAgICA8dGQgaWQ9InhlcGctdXJsIiBjbGFzcz0idGRWYWwgcGhvbmUiPiZuYnNwOzwvdGQ+DQogICAgICAgICAgICA8L3RyPg0KDQogICAgICAgICAgICA8dHI+DQogICAgICAgICAgICAgIDx0ZCBjbGFzcz0idGRLZXkiPlhFUEcgQ2hhbm5lbHM6PC90ZD4NCiAgICAgICAgICAgICAgPHRkIGlkPSJ4ZXBnIiBjbGFzcz0idGRWYWwiPiZuYnNwOzwvdGQ+DQogICAgICAgICAgICAgIDx0ZCBjbGFzcz0idGRLZXkiPkVycm9yczo8L3RkPg0KICAgICAgICAgICAgICA8dGQgaWQ9ImVycm9ycyIgY2xhc3M9InRkVmFsIj4mbmJzcDs8L3RkPg0KICAgICAgICAgICAgICA8dGQgY2xhc3M9InRkS2V5Ij5XYXJuaW5nczo8L3RkPg0KICAgICAgICAgICAgICA8dGQgaWQ9Indhcm5pbmdzIiBjbGFzcz0idGRWYWwiPiZuYnNwOzwvdGQ+DQogICAgICAgICAgICA8L3RyPg0KDQogICAgICAgICAgPC90YWJsZT4NCiAgICAgICAgIA0KICAgICAgICAgIDxkaXYgaWQ9Im15U3RyZWFtc0JveCIgY2xhc3M9Im5vdFZpc2libGUiPg0KDQogICAgICAgICAgICA8ZGl2IGlkPSJhbGxTdHJlYW1zIj4NCiAgICAgICAgICAgICAgPHRhYmxlIGlkPSJhY3RpdmVTdHJlYW1zIj48L3RhYmxlPg0KICAgICAgICAgICAgICA8dGFibGUgaWQ9ImluYWN0aXZlU3RyZWFtcyI+PC90YWJsZT4NCiAgICAgICAgICAgIDwvZGl2Pg0KDQogICAgICAgICAgPC9kaXY+DQogICAgICAgICAgDQogICAgICAgICAgPGRpdiBpZD0iY29udGVudCIgY2xhc3M9IiI+PC9kaXY+DQogICAgICAgICAgICANCiAgICAgICAgPC9kaXY+DQoNCiAgICAgIDwvZGl2Pg0KICAgICAgDQogICAgPC9ib2R5Pg0KICAgIA0KPC9odG1sPg==" webUI["html/js/authentication_ts.js"] = "ZnVuY3Rpb24gbG9naW4oKSB7DQogICAgdmFyIGVyciA9IGZhbHNlOw0KICAgIHZhciBkYXRhID0gbmV3IE9iamVjdCgpOw0KICAgIHZhciBkaXYgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29udGVudCIpOw0KICAgIHZhciBmb3JtID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImF1dGhlbnRpY2F0aW9uIik7DQogICAgdmFyIGlucHV0cyA9IGRpdi5nZXRFbGVtZW50c0J5VGFnTmFtZSgiSU5QVVQiKTsNCiAgICBjb25zb2xlLmxvZyhpbnB1dHMpOw0KICAgIGZvciAodmFyIGkgPSBpbnB1dHMubGVuZ3RoIC0gMTsgaSA+PSAwOyBpLS0pIHsNCiAgICAgICAgdmFyIGtleSA9IGlucHV0c1tpXS5uYW1lOw0KICAgICAgICB2YXIgdmFsdWUgPSBpbnB1dHNbaV0udmFsdWU7DQogICAgICAgIGlmICh2YWx1ZS5sZW5ndGggPT0gMCkgew0KICAgICAgICAgICAgaW5wdXRzW2ldLnN0eWxlLmJvcmRlckNvbG9yID0gInJlZCI7DQogICAgICAgICAgICBlcnIgPSB0cnVlOw0KICAgICAgICB9DQogICAgICAgIGRhdGFba2V5XSA9IHZhbHVlOw0KICAgIH0NCiAgICBpZiAoZXJyID09IHRydWUpIHsNCiAgICAgICAgZGF0YSA9IG5ldyBPYmplY3QoKTsNCiAgICAgICAgcmV0dXJuOw0KICAgIH0NCiAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgiY29uZmlybSIpKSB7DQogICAgICAgIGlmIChkYXRhWyJjb25maXJtIl0gIT0gZGF0YVsicGFzc3dvcmQiXSkgew0KICAgICAgICAgICAgYWxlcnQoInNkYWZzZCIpOw0KICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Bhc3N3b3JkJykuc3R5bGUuYm9yZGVyQ29sb3IgPSAicmVkIjsNCiAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjb25maXJtJykuc3R5bGUuYm9yZGVyQ29sb3IgPSAicmVkIjsNCiAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJlcnIiKS5pbm5lckhUTUwgPSAie3suYWNjb3VudC5mYWlsZWR9fSI7DQogICAgICAgICAgICByZXR1cm47DQogICAgICAgIH0NCiAgICB9DQogICAgY29uc29sZS5sb2coZGF0YSk7DQogICAgZm9ybS5zdWJtaXQoKTsNCn0NCg==" - webUI["html/js/base_ts.js"] = "dmFyIFNFUlZFUiA9IG5ldyBPYmplY3QoKTsNCnZhciBCVUxLX0VESVQgPSBmYWxzZTsNCnZhciBDT0xVTU5fVE9fU09SVDsNCnZhciBTRUFSQ0hfTUFQUElORyA9IG5ldyBPYmplY3QoKTsNCnZhciBVTkRPID0gbmV3IE9iamVjdCgpOw0KdmFyIFNFUlZFUl9DT05ORUNUSU9OID0gZmFsc2U7DQp2YXIgV1NfQVZBSUxBQkxFID0gZmFsc2U7DQovLyBNZW51DQp2YXIgbWVudUl0ZW1zID0gbmV3IEFycmF5KCk7DQptZW51SXRlbXMucHVzaChuZXcgTWFpbk1lbnVJdGVtKCJwbGF5bGlzdCIsICJ7ey5tYWluTWVudS5pdGVtLnBsYXlsaXN0fX0iLCAibTN1LnBuZyIsICJ7ey5tYWluTWVudS5oZWFkbGluZS5wbGF5bGlzdH19IikpOw0KLy9tZW51SXRlbXMucHVzaChuZXcgTWFpbk1lbnVJdGVtKCJwbXNJRCIsICJ7ey5tYWluTWVudS5pdGVtLnBtc0lEfX0iLCAibnVtYmVyLnBuZyIsICJ7ey5tYWluTWVudS5oZWFkbGluZS5wbXNJRH19IikpDQptZW51SXRlbXMucHVzaChuZXcgTWFpbk1lbnVJdGVtKCJmaWx0ZXIiLCAie3subWFpbk1lbnUuaXRlbS5maWx0ZXJ9fSIsICJmaWx0ZXIucG5nIiwgInt7Lm1haW5NZW51LmhlYWRsaW5lLmZpbHRlcn19IikpOw0KbWVudUl0ZW1zLnB1c2gobmV3IE1haW5NZW51SXRlbSgieG1sdHYiLCAie3subWFpbk1lbnUuaXRlbS54bWx0dn19IiwgInhtbHR2LnBuZyIsICJ7ey5tYWluTWVudS5oZWFkbGluZS54bWx0dn19IikpOw0KbWVudUl0ZW1zLnB1c2gobmV3IE1haW5NZW51SXRlbSgibWFwcGluZyIsICJ7ey5tYWluTWVudS5pdGVtLm1hcHBpbmd9fSIsICJtYXBwaW5nLnBuZyIsICJ7ey5tYWluTWVudS5oZWFkbGluZS5tYXBwaW5nfX0iKSk7DQptZW51SXRlbXMucHVzaChuZXcgTWFpbk1lbnVJdGVtKCJ1c2VycyIsICJ7ey5tYWluTWVudS5pdGVtLnVzZXJzfX0iLCAidXNlcnMucG5nIiwgInt7Lm1haW5NZW51LmhlYWRsaW5lLnVzZXJzfX0iKSk7DQptZW51SXRlbXMucHVzaChuZXcgTWFpbk1lbnVJdGVtKCJzZXR0aW5ncyIsICJ7ey5tYWluTWVudS5pdGVtLnNldHRpbmdzfX0iLCAic2V0dGluZ3MucG5nIiwgInt7Lm1haW5NZW51LmhlYWRsaW5lLnNldHRpbmdzfX0iKSk7DQptZW51SXRlbXMucHVzaChuZXcgTWFpbk1lbnVJdGVtKCJsb2ciLCAie3subWFpbk1lbnUuaXRlbS5sb2d9fSIsICJsb2cucG5nIiwgInt7Lm1haW5NZW51LmhlYWRsaW5lLmxvZ319IikpOw0KbWVudUl0ZW1zLnB1c2gobmV3IE1haW5NZW51SXRlbSgibG9nb3V0IiwgInt7Lm1haW5NZW51Lml0ZW0ubG9nb3V0fX0iLCAibG9nb3V0LnBuZyIsICJ7ey5tYWluTWVudS5oZWFkbGluZS5sb2dvdXR9fSIpKTsNCi8vIFNldHRpbmdzIGNhdGVnb3JpZXMNCnZhciBzZXR0aW5nc0NhdGVnb3J5ID0gbmV3IEFycmF5KCk7DQpzZXR0aW5nc0NhdGVnb3J5LnB1c2gobmV3IFNldHRpbmdzQ2F0ZWdvcnlJdGVtKCJ7ey5zZXR0aW5ncy5jYXRlZ29yeS5nZW5lcmFsfX0iLCAieHRldmVBdXRvVXBkYXRlLHR1bmVyLGVwZ1NvdXJjZSxhcGkiKSk7DQpzZXR0aW5nc0NhdGVnb3J5LnB1c2gobmV3IFNldHRpbmdzQ2F0ZWdvcnlJdGVtKCJ7ey5zZXR0aW5ncy5jYXRlZ29yeS5maWxlc319IiwgInVwZGF0ZSxmaWxlcy51cGRhdGUsdGVtcC5wYXRoLGNhY2hlLmltYWdlcyx4ZXBnLnJlcGxhY2UubWlzc2luZy5pbWFnZXMiKSk7DQpzZXR0aW5nc0NhdGVnb3J5LnB1c2gobmV3IFNldHRpbmdzQ2F0ZWdvcnlJdGVtKCJ7ey5zZXR0aW5ncy5jYXRlZ29yeS5zdHJlYW1pbmd9fSIsICJidWZmZXIsdWRweHksYnVmZmVyLnNpemUua2IsYnVmZmVyLnRpbWVvdXQsdXNlci5hZ2VudCxmZm1wZWcucGF0aCxmZm1wZWcub3B0aW9ucyx2bGMucGF0aCx2bGMub3B0aW9ucyIpKTsNCnNldHRpbmdzQ2F0ZWdvcnkucHVzaChuZXcgU2V0dGluZ3NDYXRlZ29yeUl0ZW0oInt7LnNldHRpbmdzLmNhdGVnb3J5LmJhY2t1cH19IiwgImJhY2t1cC5wYXRoLGJhY2t1cC5rZWVwIikpOw0Kc2V0dGluZ3NDYXRlZ29yeS5wdXNoKG5ldyBTZXR0aW5nc0NhdGVnb3J5SXRlbSgie3suc2V0dGluZ3MuY2F0ZWdvcnkuYXV0aGVudGljYXRpb259fSIsICJhdXRoZW50aWNhdGlvbi53ZWIsYXV0aGVudGljYXRpb24ucG1zLGF1dGhlbnRpY2F0aW9uLm0zdSxhdXRoZW50aWNhdGlvbi54bWwsYXV0aGVudGljYXRpb24uYXBpIikpOw0KZnVuY3Rpb24gc2hvd1BvcFVwRWxlbWVudChlbG0pIHsNCiAgICB2YXIgYWxsRWxlbWVudHMgPSBuZXcgQXJyYXkoInBvcHVwLWN1c3RvbSIpOw0KICAgIGZvciAodmFyIGkgPSAwOyBpIDwgYWxsRWxlbWVudHMubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgc2hvd0VsZW1lbnQoYWxsRWxlbWVudHNbaV0sIGZhbHNlKTsNCiAgICB9DQogICAgc2hvd0VsZW1lbnQoZWxtLCB0cnVlKTsNCiAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsNCiAgICAgICAgc2hvd0VsZW1lbnQoInBvcHVwIiwgdHJ1ZSk7DQogICAgfSwgMTApOw0KICAgIHJldHVybjsNCn0NCmZ1bmN0aW9uIHNob3dFbGVtZW50KGVsbUlELCB0eXBlKSB7DQogICAgdmFyIGNzc0NsYXNzOw0KICAgIHN3aXRjaCAodHlwZSkgew0KICAgICAgICBjYXNlIHRydWU6DQogICAgICAgICAgICBjc3NDbGFzcyA9ICJibG9jayI7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSBmYWxzZToNCiAgICAgICAgICAgIGNzc0NsYXNzID0gIm5vbmUiOw0KICAgICAgICAgICAgYnJlYWs7DQogICAgfQ0KICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGVsbUlEKS5jbGFzc05hbWUgPSBjc3NDbGFzczsNCn0NCmZ1bmN0aW9uIGNoYW5nZUJ1dHRvbkFjdGlvbihlbGVtZW50LCBidXR0b25JRCwgYXR0cmlidXRlKSB7DQogICAgdmFyIHZhbHVlID0gZWxlbWVudC5vcHRpb25zW2VsZW1lbnQuc2VsZWN0ZWRJbmRleF0udmFsdWU7DQogICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoYnV0dG9uSUQpLnNldEF0dHJpYnV0ZShhdHRyaWJ1dGUsIHZhbHVlKTsNCn0NCmZ1bmN0aW9uIGdldExvY2FsRGF0YShkYXRhVHlwZSwgaWQpIHsNCiAgICBsZXQgZGF0YSA9IHt9Ow0KICAgIHN3aXRjaCAoZGF0YVR5cGUpIHsNCiAgICAgICAgY2FzZSAibTN1IjoNCiAgICAgICAgICAgIGRhdGEgPSBTRVJWRVJbInNldHRpbmdzIl1bImZpbGVzIl1bZGF0YVR5cGVdW2lkXTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJoZGhyIjoNCiAgICAgICAgICAgIGRhdGEgPSBTRVJWRVJbInNldHRpbmdzIl1bImZpbGVzIl1bZGF0YVR5cGVdW2lkXTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJmaWx0ZXIiOg0KICAgICAgICBjYXNlICJjdXN0b20tZmlsdGVyIjoNCiAgICAgICAgY2FzZSAiZ3JvdXAtdGl0bGUiOg0KICAgICAgICAgICAgaWYgKGlkID09IC0xKSB7DQogICAgICAgICAgICAgICAgZGF0YVsiYWN0aXZlIl0gPSB0cnVlOw0KICAgICAgICAgICAgICAgIGRhdGFbImNhc2VTZW5zaXRpdmUiXSA9IGZhbHNlOw0KICAgICAgICAgICAgICAgIGRhdGFbImRlc2NyaXB0aW9uIl0gPSAiIjsNCiAgICAgICAgICAgICAgICBkYXRhWyJleGNsdWRlIl0gPSAiIjsNCiAgICAgICAgICAgICAgICBkYXRhWyJmaWx0ZXIiXSA9ICIiOw0KICAgICAgICAgICAgICAgIGRhdGFbImluY2x1ZGUiXSA9ICIiOw0KICAgICAgICAgICAgICAgIGRhdGFbIm5hbWUiXSA9ICIiOw0KICAgICAgICAgICAgICAgIGRhdGFbInR5cGUiXSA9ICJncm91cC10aXRsZSI7DQogICAgICAgICAgICAgICAgZGF0YVsicHJlc2VydmVNYXBwaW5nIl0gPSB0cnVlOw0KICAgICAgICAgICAgICAgIGRhdGFbInN0YXJ0aW5nQ2hhbm5lbCJdID0gU0VSVkVSWyJzZXR0aW5ncyJdWyJtYXBwaW5nLmZpcnN0LmNoYW5uZWwiXTsNCiAgICAgICAgICAgICAgICBkYXRhWyJkZWZhdWx0TWlzc2luZ0VQRyJdID0gIi0iOw0KICAgICAgICAgICAgICAgIFNFUlZFUlsic2V0dGluZ3MiXVsiZmlsdGVyIl1baWRdID0gZGF0YTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGRhdGEgPSBTRVJWRVJbInNldHRpbmdzIl1bImZpbHRlciJdW2lkXTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJ4bWx0diI6DQogICAgICAgICAgICBkYXRhID0gU0VSVkVSWyJzZXR0aW5ncyJdWyJmaWxlcyJdW2RhdGFUeXBlXVtpZF07DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSAidXNlcnMiOg0KICAgICAgICAgICAgZGF0YSA9IFNFUlZFUlsidXNlcnMiXVtpZF1bImRhdGEiXTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJtYXBwaW5nIjoNCiAgICAgICAgICAgIGRhdGEgPSBTRVJWRVJbInhlcGciXVsiZXBnTWFwcGluZyJdW2lkXTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJtM3VHcm91cHMiOg0KICAgICAgICAgICAgZGF0YSA9IFNFUlZFUlsiZGF0YSJdWyJwbGF5bGlzdCJdWyJtM3UiXVsiZ3JvdXBzIl07DQogICAgICAgICAgICBicmVhazsNCiAgICB9DQogICAgcmV0dXJuIGRhdGE7DQp9DQpmdW5jdGlvbiBnZXRPd25PYmpQcm9wcyhvYmplY3QpIHsNCiAgICByZXR1cm4gT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMob2JqZWN0KTsNCn0NCmZ1bmN0aW9uIGdldEFsbFNlbGVjdGVkQ2hhbm5lbHMoKSB7DQogICAgdmFyIGNoYW5uZWxzID0gbmV3IEFycmF5KCk7DQogICAgaWYgKEJVTEtfRURJVCA9PSBmYWxzZSkgew0KICAgICAgICByZXR1cm4gY2hhbm5lbHM7DQogICAgfQ0KICAgIHZhciB0cnMgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29udGVudF90YWJsZSIpLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJUUiIpOw0KICAgIGZvciAodmFyIGkgPSAxOyBpIDwgdHJzLmxlbmd0aDsgaSsrKSB7DQogICAgICAgIGlmICh0cnNbaV0uc3R5bGUuZGlzcGxheSAhPSAibm9uZSIpIHsNCiAgICAgICAgICAgIGlmICh0cnNbaV0uZmlyc3RDaGlsZC5maXJzdENoaWxkLmNoZWNrZWQgPT0gdHJ1ZSkgew0KICAgICAgICAgICAgICAgIGNoYW5uZWxzLnB1c2godHJzW2ldLmlkKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KICAgIH0NCiAgICByZXR1cm4gY2hhbm5lbHM7DQp9DQpmdW5jdGlvbiBzZWxlY3RBbGxDaGFubmVscygpIHsNCiAgICB2YXIgYnVsayA9IGZhbHNlOw0KICAgIHZhciB0cnMgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29udGVudF90YWJsZSIpLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJUUiIpOw0KICAgIGlmICh0cnNbMF0uZmlyc3RDaGlsZC5maXJzdENoaWxkLmNoZWNrZWQgPT0gdHJ1ZSkgew0KICAgICAgICBidWxrID0gdHJ1ZTsNCiAgICB9DQogICAgZm9yICh2YXIgaSA9IDE7IGkgPCB0cnMubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgaWYgKHRyc1tpXS5zdHlsZS5kaXNwbGF5ICE9ICJub25lIikgew0KICAgICAgICAgICAgc3dpdGNoIChidWxrKSB7DQogICAgICAgICAgICAgICAgY2FzZSB0cnVlOg0KICAgICAgICAgICAgICAgICAgICB0cnNbaV0uZmlyc3RDaGlsZC5maXJzdENoaWxkLmNoZWNrZWQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBjYXNlIGZhbHNlOg0KICAgICAgICAgICAgICAgICAgICB0cnNbaV0uZmlyc3RDaGlsZC5maXJzdENoaWxkLmNoZWNrZWQgPSBmYWxzZTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICB9DQogICAgICAgIH0NCiAgICB9DQogICAgcmV0dXJuOw0KfQ0KZnVuY3Rpb24gYnVsa0VkaXQoKSB7DQogICAgQlVMS19FRElUID0gIUJVTEtfRURJVDsNCiAgICB2YXIgY2xhc3NOYW1lOw0KICAgIHZhciByb3dzID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSgiYnVsayIpOw0KICAgIHN3aXRjaCAoQlVMS19FRElUKSB7DQogICAgICAgIGNhc2UgdHJ1ZToNCiAgICAgICAgICAgIGNsYXNzTmFtZSA9ICJidWxrIHNob3dCdWxrIjsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlIGZhbHNlOg0KICAgICAgICAgICAgY2xhc3NOYW1lID0gImJ1bGsgaGlkZUJ1bGsiOw0KICAgICAgICAgICAgYnJlYWs7DQogICAgfQ0KICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcm93cy5sZW5ndGg7IGkrKykgew0KICAgICAgICByb3dzW2ldLmNsYXNzTmFtZSA9IGNsYXNzTmFtZTsNCiAgICAgICAgcm93c1tpXS5jaGVja2VkID0gZmFsc2U7DQogICAgfQ0KICAgIHJldHVybjsNCn0NCmZ1bmN0aW9uIHNvcnRUYWJsZShjb2x1bW4pIHsNCiAgICBpZiAoY29sdW1uID09IENPTFVNTl9UT19TT1JUKSB7DQogICAgICAgIHJldHVybjsNCiAgICB9DQogICAgY29uc3QgdGFibGUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29udGVudF90YWJsZSIpOw0KICAgIGNvbnN0IHRhYmxlSGVhZCA9IHRhYmxlLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJUUiIpWzBdOw0KICAgIGNvbnN0IHRhYmxlSXRlbXMgPSB0YWJsZUhlYWQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlREIik7DQogICAgY29uc3Qgc29ydEFyciA9IFtdOw0KICAgIGxldCB4VmFsdWU7DQogICAgaWYgKGNvbHVtbiA+PSAwICYmIENPTFVNTl9UT19TT1JUID49IDApIHsNCiAgICAgICAgdGFibGVJdGVtc1tDT0xVTU5fVE9fU09SVF0uY2xhc3NOYW1lID0gInBvaW50ZXIiOw0KICAgICAgICB0YWJsZUl0ZW1zW2NvbHVtbl0uY2xhc3NOYW1lID0gInNvcnRUaGlzIjsNCiAgICB9DQogICAgQ09MVU1OX1RPX1NPUlQgPSBjb2x1bW47DQogICAgY29uc3Qgcm93cyA9IHRhYmxlLnJvd3M7DQogICAgaWYgKHJvd3NbMV0gIT0gdW5kZWZpbmVkKSB7DQogICAgICAgIGNvbnN0IHRhYmxlSGVhZGVyID0gcm93c1swXTsNCiAgICAgICAgbGV0IHggPSByb3dzWzFdLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJURCIpW2NvbHVtbl07DQogICAgICAgIGZvciAobGV0IGkgPSAxOyBpIDwgcm93cy5sZW5ndGg7IGkrKykgew0KICAgICAgICAgICAgeCA9IHJvd3NbaV0uZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlREIilbY29sdW1uXTsNCiAgICAgICAgICAgIHN3aXRjaCAoeC5jaGlsZE5vZGVzWzBdLnRhZ05hbWUudG9Mb3dlckNhc2UoKSkgew0KICAgICAgICAgICAgICAgIGNhc2UgImlucHV0IjoNCiAgICAgICAgICAgICAgICAgICAgeFZhbHVlID0geC5nZXRFbGVtZW50c0J5VGFnTmFtZSgiSU5QVVQiKVswXS52YWx1ZS50b0xvd2VyQ2FzZSgpOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBjYXNlICJwIjoNCiAgICAgICAgICAgICAgICAgICAgeFZhbHVlID0geC5nZXRFbGVtZW50c0J5VGFnTmFtZSgiUCIpWzBdLmlubmVyVGV4dC50b0xvd2VyQ2FzZSgpOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBkZWZhdWx0Og0KICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyh4LmNoaWxkTm9kZXNbMF0udGFnTmFtZSk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBzb3J0QXJyLnB1c2goeyBrZXk6IHhWYWx1ZSA/IHhWYWx1ZSA6IGksIHJvdzogcm93c1tpXSB9KTsNCiAgICAgICAgfQ0KICAgICAgICB3aGlsZSAodGFibGUuZmlyc3RDaGlsZCkgew0KICAgICAgICAgICAgdGFibGUucmVtb3ZlQ2hpbGQodGFibGUuZmlyc3RDaGlsZCk7DQogICAgICAgIH0NCiAgICAgICAgc29ydEFyci5zb3J0KChzZTEsIHNlMikgPT4gew0KICAgICAgICAgICAgY29uc3Qgc2UxS2V5TnVtID0gcGFyc2VGbG9hdChTdHJpbmcoc2UxLmtleSkpOw0KICAgICAgICAgICAgY29uc3Qgc2UyS2V5TnVtID0gcGFyc2VGbG9hdChTdHJpbmcoc2UyLmtleSkpOw0KICAgICAgICAgICAgaWYgKCFpc05hTihzZTFLZXlOdW0pICYmICFpc05hTihzZTJLZXlOdW0pKSB7DQogICAgICAgICAgICAgICAgcmV0dXJuIHNlMUtleU51bSAtIHNlMktleU51bTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGlmIChzZTEua2V5IDwgc2UyLmtleSkgew0KICAgICAgICAgICAgICAgIHJldHVybiAtMTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGlmIChzZTEua2V5ID4gc2UyLmtleSkgew0KICAgICAgICAgICAgICAgIHJldHVybiAxOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgcmV0dXJuIDA7DQogICAgICAgIH0pOw0KICAgICAgICB0YWJsZS5hcHBlbmRDaGlsZCh0YWJsZUhlYWRlcik7DQogICAgICAgIHNvcnRBcnIuZm9yRWFjaCgoc2UpID0+IHsNCiAgICAgICAgICAgIHRhYmxlLmFwcGVuZENoaWxkKHNlLnJvdyk7DQogICAgICAgIH0pOw0KICAgIH0NCiAgICByZXR1cm47DQp9DQpmdW5jdGlvbiBjcmVhdGVTZWFyY2hPYmooKSB7DQogICAgU0VBUkNIX01BUFBJTkcgPSBuZXcgT2JqZWN0KCk7DQogICAgdmFyIGRhdGEgPSBTRVJWRVJbInhlcGciXVsiZXBnTWFwcGluZyJdOw0KICAgIHZhciBjaGFubmVscyA9IGdldE93bk9ialByb3BzKGRhdGEpOw0KICAgIHZhciBjaGFubmVsS2V5cyA9IFsieC1hY3RpdmUiLCAieC1jaGFubmVsSUQiLCAieC1uYW1lIiwgIl9maWxlLm0zdS5uYW1lIiwgIngtZ3JvdXAtdGl0bGUiLCAieC14bWx0di1maWxlIl07DQogICAgY2hhbm5lbHMuZm9yRWFjaChpZCA9PiB7DQogICAgICAgIGNoYW5uZWxLZXlzLmZvckVhY2goa2V5ID0+IHsNCiAgICAgICAgICAgIGlmIChrZXkgPT0gIngtYWN0aXZlIikgew0KICAgICAgICAgICAgICAgIHN3aXRjaCAoZGF0YVtpZF1ba2V5XSkgew0KICAgICAgICAgICAgICAgICAgICBjYXNlIHRydWU6DQogICAgICAgICAgICAgICAgICAgICAgICBTRUFSQ0hfTUFQUElOR1tpZF0gPSAib25saW5lICI7DQogICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICAgICAgY2FzZSBmYWxzZToNCiAgICAgICAgICAgICAgICAgICAgICAgIFNFQVJDSF9NQVBQSU5HW2lkXSA9ICJvZmZsaW5lICI7DQogICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9DQogICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICBpZiAoa2V5ID09ICJ4LXhtbHR2LWZpbGUiKSB7DQogICAgICAgICAgICAgICAgICAgIHZhciB4bWx0dkZpbGUgPSBnZXRWYWx1ZUZyb21Qcm92aWRlckZpbGUoZGF0YVtpZF1ba2V5XSwgInhtbHR2IiwgIm5hbWUiKTsNCiAgICAgICAgICAgICAgICAgICAgaWYgKHhtbHR2RmlsZSAhPSB1bmRlZmluZWQpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIFNFQVJDSF9NQVBQSU5HW2lkXSA9IFNFQVJDSF9NQVBQSU5HW2lkXSArIHhtbHR2RmlsZSArICIgIjsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICAgICAgU0VBUkNIX01BUFBJTkdbaWRdID0gU0VBUkNIX01BUFBJTkdbaWRdICsgZGF0YVtpZF1ba2V5XSArICIgIjsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9DQogICAgICAgIH0pOw0KICAgIH0pOw0KICAgIHJldHVybjsNCn0NCmZ1bmN0aW9uIHNlYXJjaEluTWFwcGluZygpIHsNCiAgICB2YXIgc2VhcmNoVmFsdWUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic2VhcmNoTWFwcGluZyIpLnZhbHVlOw0KICAgIHZhciB0cnMgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29udGVudF90YWJsZSIpLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJUUiIpOw0KICAgIGZvciAodmFyIGkgPSAxOyBpIDwgdHJzLmxlbmd0aDsgKytpKSB7DQogICAgICAgIHZhciBpZCA9IHRyc1tpXS5nZXRBdHRyaWJ1dGUoImlkIik7DQogICAgICAgIHZhciBlbGVtZW50ID0gU0VBUkNIX01BUFBJTkdbaWRdOw0KICAgICAgICBzd2l0Y2ggKGVsZW1lbnQudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhzZWFyY2hWYWx1ZS50b0xvd2VyQ2FzZSgpKSkgew0KICAgICAgICAgICAgY2FzZSB0cnVlOg0KICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5zdHlsZS5kaXNwbGF5ID0gIiI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlIGZhbHNlOg0KICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5zdHlsZS5kaXNwbGF5ID0gIm5vbmUiOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICB9DQogICAgfQ0KICAgIHJldHVybjsNCn0NCmZ1bmN0aW9uIGNhbGN1bGF0ZVdyYXBwZXJIZWlnaHQoKSB7DQogICAgaWYgKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJib3gtd3JhcHBlciIpKSB7DQogICAgICAgIHZhciBlbG0gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYm94LXdyYXBwZXIiKTsNCiAgICAgICAgdmFyIGRpdnMgPSBuZXcgQXJyYXkoIm15U3RyZWFtc0JveCIsICJjbGllbnRJbmZvIiwgImNvbnRlbnQiKTsNCiAgICAgICAgdmFyIGVsZW1lbnRzSGVpZ2h0ID0gMCAtIGVsbS5vZmZzZXRIZWlnaHQ7DQogICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgZGl2cy5sZW5ndGg7IGkrKykgew0KICAgICAgICAgICAgZWxlbWVudHNIZWlnaHQgPSBlbGVtZW50c0hlaWdodCArIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGRpdnNbaV0pLm9mZnNldEhlaWdodDsNCiAgICAgICAgfQ0KICAgICAgICBlbG0uc3R5bGUuaGVpZ2h0ID0gd2luZG93LmlubmVySGVpZ2h0IC0gZWxlbWVudHNIZWlnaHQgKyAicHgiOw0KICAgIH0NCiAgICByZXR1cm47DQp9DQpmdW5jdGlvbiBjaGFuZ2VDaGFubmVsTnVtYmVyKGVsZW1lbnQpIHsNCiAgICB2YXIgZGJJRCA9IGVsZW1lbnQucGFyZW50Tm9kZS5wYXJlbnROb2RlLmlkOw0KICAgIHZhciBuZXdOdW1iZXIgPSBwYXJzZUZsb2F0KGVsZW1lbnQudmFsdWUpOw0KICAgIHZhciBjaGFubmVsTnVtYmVycyA9IFtdOw0KICAgIHZhciBkYXRhID0gU0VSVkVSWyJ4ZXBnIl1bImVwZ01hcHBpbmciXTsNCiAgICB2YXIgY2hhbm5lbHMgPSBnZXRPd25PYmpQcm9wcyhkYXRhKTsNCiAgICBpZiAoaXNOYU4obmV3TnVtYmVyKSkgew0KICAgICAgICBhbGVydCgie3suYWxlcnQuaW52YWxpZENoYW5uZWxOdW1iZXJ9fSIpOw0KICAgICAgICByZXR1cm47DQogICAgfQ0KICAgIGNoYW5uZWxzLmZvckVhY2goaWQgPT4gew0KICAgICAgICB2YXIgY2hhbm5lbE51bWJlciA9IHBhcnNlRmxvYXQoZGF0YVtpZF1bIngtY2hhbm5lbElEIl0pOw0KICAgICAgICBjaGFubmVsTnVtYmVycy5wdXNoKGNoYW5uZWxOdW1iZXIpOw0KICAgIH0pOw0KICAgIGZvciAodmFyIGkgPSAwOyBpIDwgY2hhbm5lbE51bWJlcnMubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgaWYgKGNoYW5uZWxOdW1iZXJzLmluZGV4T2YobmV3TnVtYmVyKSA9PSAtMSkgew0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIH0NCiAgICAgICAgaWYgKE1hdGguZmxvb3IobmV3TnVtYmVyKSA9PSBuZXdOdW1iZXIpIHsNCiAgICAgICAgICAgIG5ld051bWJlciA9IG5ld051bWJlciArIDE7DQogICAgICAgIH0NCiAgICAgICAgZWxzZSB7DQogICAgICAgICAgICBuZXdOdW1iZXIgPSBuZXdOdW1iZXIgKyAwLjE7DQogICAgICAgICAgICBuZXdOdW1iZXIudG9GaXhlZCgxKTsNCiAgICAgICAgICAgIG5ld051bWJlciA9IE1hdGgucm91bmQobmV3TnVtYmVyICogMTApIC8gMTA7DQogICAgICAgIH0NCiAgICB9DQogICAgZGF0YVtkYklEXVsieC1jaGFubmVsSUQiXSA9IG5ld051bWJlci50b1N0cmluZygpOw0KICAgIGVsZW1lbnQudmFsdWUgPSBuZXdOdW1iZXI7DQogICAgY29uc29sZS5sb2coZGF0YVtkYklEXVsieC1jaGFubmVsSUQiXSk7DQogICAgaWYgKENPTFVNTl9UT19TT1JUID09IDEpIHsNCiAgICAgICAgQ09MVU1OX1RPX1NPUlQgPSAtMTsNCiAgICAgICAgc29ydFRhYmxlKDEpOw0KICAgIH0NCiAgICByZXR1cm47DQp9DQpmdW5jdGlvbiBiYWNrdXAoKSB7DQogICAgdmFyIGRhdGEgPSBuZXcgT2JqZWN0KCk7DQogICAgY29uc29sZS5sb2coIkJhY2t1cCBkYXRhIik7DQogICAgdmFyIGNtZCA9ICJ4dGV2ZUJhY2t1cCI7DQogICAgY29uc29sZS5sb2coIlNFTkQgVE8gU0VSVkVSIik7DQogICAgY29uc29sZS5sb2coZGF0YSk7DQogICAgdmFyIHNlcnZlciA9IG5ldyBTZXJ2ZXIoY21kKTsNCiAgICBzZXJ2ZXIucmVxdWVzdChkYXRhKTsNCiAgICByZXR1cm47DQp9DQpmdW5jdGlvbiB0b2dnbGVDaGFubmVsU3RhdHVzKGlkKSB7DQogICAgdmFyIGVsZW1lbnQ7DQogICAgdmFyIHN0YXR1czsNCiAgICBpZiAoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImFjdGl2ZSIpKSB7DQogICAgICAgIHZhciBjaGVja2JveCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJhY3RpdmUiKTsNCiAgICAgICAgc3RhdHVzID0gKGNoZWNrYm94KS5jaGVja2VkOw0KICAgIH0NCiAgICB2YXIgaWRzID0gZ2V0QWxsU2VsZWN0ZWRDaGFubmVscygpOw0KICAgIGlmIChpZHMubGVuZ3RoID09IDApIHsNCiAgICAgICAgaWRzLnB1c2goaWQpOw0KICAgIH0NCiAgICBpZHMuZm9yRWFjaChpZCA9PiB7DQogICAgICAgIHZhciBjaGFubmVsID0gU0VSVkVSWyJ4ZXBnIl1bImVwZ01hcHBpbmciXVtpZF07DQogICAgICAgIGNoYW5uZWxbIngtYWN0aXZlIl0gPSBzdGF0dXM7DQogICAgICAgIHN3aXRjaCAoY2hhbm5lbFsieC1hY3RpdmUiXSkgew0KICAgICAgICAgICAgY2FzZSB0cnVlOg0KICAgICAgICAgICAgICAgIGlmIChjaGFubmVsWyJ4LXhtbHR2LWZpbGUiXSA9PSAiLSIgfHwgY2hhbm5lbFsieC1tYXBwaW5nIl0gPT0gIi0iKSB7DQogICAgICAgICAgICAgICAgICAgIGlmIChCVUxLX0VESVQgPT0gZmFsc2UpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGFsZXJ0KGNoYW5uZWxbIngtbmFtZSJdICsgIjogTWlzc2luZyBYTUxUViBmaWxlIC8gY2hhbm5lbCIpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2hlY2tib3guY2hlY2tlZCA9IGZhbHNlOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIGNoYW5uZWxbIngtYWN0aXZlIl0gPSBmYWxzZTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlIGZhbHNlOg0KICAgICAgICAgICAgICAgIC8vIGNvZGUuLi4NCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgfQ0KICAgICAgICBpZiAoY2hhbm5lbFsieC1hY3RpdmUiXSA9PSBmYWxzZSkgew0KICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpLmNsYXNzTmFtZSA9ICJub3RBY3RpdmVFUEciOw0KICAgICAgICB9DQogICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpLmNsYXNzTmFtZSA9ICJhY3RpdmVFUEciOw0KICAgICAgICB9DQogICAgfSk7DQp9DQpmdW5jdGlvbiB0b2dnbGVHcm91cFVwZGF0ZUNiKHhlcGdJZCwgdGFyZ2V0KSB7DQogICAgdGFyZ2V0LmNsYXNzTmFtZSA9ICdjaGFuZ2VkJzsNCiAgICBjb25zdCBncm91cElucHV0ID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignaW5wdXRbbmFtZT0ieC1ncm91cC10aXRsZSJdJyk7DQogICAgY29uc3QgbWFwcGluZyA9IGdldExvY2FsRGF0YSgnbWFwcGluZycsIHhlcGdJZCk7DQogICAgaWYgKHRhcmdldC5jaGVja2VkKSB7DQogICAgICAgIGdyb3VwSW5wdXQuZGF0YXNldC5vbGRWYWx1ZSA9IGdyb3VwSW5wdXQudmFsdWU7DQogICAgICAgIGdyb3VwSW5wdXQudmFsdWUgPSBtYXBwaW5nWydncm91cC10aXRsZSddOw0KICAgICAgICBncm91cElucHV0LmRpc2FibGVkID0gdHJ1ZTsNCiAgICB9DQogICAgZWxzZSB7DQogICAgICAgIGdyb3VwSW5wdXQudmFsdWUgPSBncm91cElucHV0LmRhdGFzZXQub2xkVmFsdWU7DQogICAgICAgIGdyb3VwSW5wdXQuZGlzYWJsZWQgPSBmYWxzZTsNCiAgICB9DQogICAgZ3JvdXBJbnB1dC5jbGFzc05hbWUgPSAnY2hhbmdlZCc7DQp9DQpmdW5jdGlvbiByZXN0b3JlKCkgew0KICAgIGlmIChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndXBsb2FkJykpIHsNCiAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3VwbG9hZCcpLnJlbW92ZSgpOw0KICAgIH0NCiAgICB2YXIgcmVzdG9yZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIklOUFVUIik7DQogICAgcmVzdG9yZS5zZXRBdHRyaWJ1dGUoInR5cGUiLCAiZmlsZSIpOw0KICAgIHJlc3RvcmUuc2V0QXR0cmlidXRlKCJjbGFzcyIsICJub3RWaXNpYmxlIik7DQogICAgcmVzdG9yZS5zZXRBdHRyaWJ1dGUoIm5hbWUiLCAiIik7DQogICAgcmVzdG9yZS5pZCA9ICJ1cGxvYWQiOw0KICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQocmVzdG9yZSk7DQogICAgcmVzdG9yZS5jbGljaygpOw0KICAgIHJlc3RvcmUub25jaGFuZ2UgPSBmdW5jdGlvbiAoKSB7DQogICAgICAgIHZhciBmaWxlbmFtZSA9IHJlc3RvcmUuZmlsZXNbMF0ubmFtZTsNCiAgICAgICAgdmFyIGNoZWNrID0gY29uZmlybSgiRmlsZTogIiArIGZpbGVuYW1lICsgIlxue3suY29uZmlybS5yZXN0b3JlfX0iKTsNCiAgICAgICAgaWYgKGNoZWNrID09IHRydWUpIHsNCiAgICAgICAgICAgIHZhciByZWFkZXIgPSBuZXcgRmlsZVJlYWRlcigpOw0KICAgICAgICAgICAgdmFyIGZpbGUgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCdpbnB1dFt0eXBlPWZpbGVdJykuZmlsZXNbMF07DQogICAgICAgICAgICBpZiAoZmlsZSkgew0KICAgICAgICAgICAgICAgIHJlYWRlci5yZWFkQXNEYXRhVVJMKGZpbGUpOw0KICAgICAgICAgICAgICAgIHJlYWRlci5vbmxvYWQgPSBmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKHJlYWRlci5yZXN1bHQpOw0KICAgICAgICAgICAgICAgICAgICB2YXIgZGF0YSA9IG5ldyBPYmplY3QoKTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGNtZCA9ICJ4dGV2ZVJlc3RvcmUiOw0KICAgICAgICAgICAgICAgICAgICBkYXRhWyJiYXNlNjQiXSA9IHJlYWRlci5yZXN1bHQ7DQogICAgICAgICAgICAgICAgICAgIHZhciBzZXJ2ZXIgPSBuZXcgU2VydmVyKGNtZCk7DQogICAgICAgICAgICAgICAgICAgIHNlcnZlci5yZXF1ZXN0KGRhdGEpOw0KICAgICAgICAgICAgICAgIH07DQogICAgICAgICAgICB9DQogICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICBhbGVydCgiRmlsZSBjb3VsZCBub3QgYmUgbG9hZGVkIik7DQogICAgICAgICAgICB9DQogICAgICAgICAgICByZXN0b3JlLnJlbW92ZSgpOw0KICAgICAgICAgICAgcmV0dXJuOw0KICAgICAgICB9DQogICAgfTsNCiAgICByZXR1cm47DQp9DQpmdW5jdGlvbiB1cGxvYWRMb2dvKCkgew0KICAgIGlmIChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndXBsb2FkJykpIHsNCiAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3VwbG9hZCcpLnJlbW92ZSgpOw0KICAgIH0NCiAgICB2YXIgdXBsb2FkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiSU5QVVQiKTsNCiAgICB1cGxvYWQuc2V0QXR0cmlidXRlKCJ0eXBlIiwgImZpbGUiKTsNCiAgICB1cGxvYWQuc2V0QXR0cmlidXRlKCJjbGFzcyIsICJub3RWaXNpYmxlIik7DQogICAgdXBsb2FkLnNldEF0dHJpYnV0ZSgibmFtZSIsICIiKTsNCiAgICB1cGxvYWQuaWQgPSAidXBsb2FkIjsNCiAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHVwbG9hZCk7DQogICAgdXBsb2FkLmNsaWNrKCk7DQogICAgdXBsb2FkLm9uYmx1ciA9IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgYWxlcnQoKTsNCiAgICB9Ow0KICAgIHVwbG9hZC5vbmNoYW5nZSA9IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgdmFyIGZpbGVuYW1lID0gdXBsb2FkLmZpbGVzWzBdLm5hbWU7DQogICAgICAgIHZhciByZWFkZXIgPSBuZXcgRmlsZVJlYWRlcigpOw0KICAgICAgICB2YXIgZmlsZSA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ2lucHV0W3R5cGU9ZmlsZV0nKS5maWxlc1swXTsNCiAgICAgICAgaWYgKGZpbGUpIHsNCiAgICAgICAgICAgIHJlYWRlci5yZWFkQXNEYXRhVVJMKGZpbGUpOw0KICAgICAgICAgICAgcmVhZGVyLm9ubG9hZCA9IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhyZWFkZXIucmVzdWx0KTsNCiAgICAgICAgICAgICAgICB2YXIgZGF0YSA9IG5ldyBPYmplY3QoKTsNCiAgICAgICAgICAgICAgICB2YXIgY21kID0gInVwbG9hZExvZ28iOw0KICAgICAgICAgICAgICAgIGRhdGFbImJhc2U2NCJdID0gcmVhZGVyLnJlc3VsdDsNCiAgICAgICAgICAgICAgICBkYXRhWyJmaWxlbmFtZSJdID0gZmlsZS5uYW1lOw0KICAgICAgICAgICAgICAgIHZhciBzZXJ2ZXIgPSBuZXcgU2VydmVyKGNtZCk7DQogICAgICAgICAgICAgICAgc2VydmVyLnJlcXVlc3QoZGF0YSk7DQogICAgICAgICAgICAgICAgdmFyIHVwZGF0ZUxvZ28gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndXBkYXRlLWljb24nKTsNCiAgICAgICAgICAgICAgICB1cGRhdGVMb2dvLmNoZWNrZWQgPSBmYWxzZTsNCiAgICAgICAgICAgICAgICB1cGRhdGVMb2dvLmNsYXNzTmFtZSA9ICJjaGFuZ2VkIjsNCiAgICAgICAgICAgIH07DQogICAgICAgIH0NCiAgICAgICAgZWxzZSB7DQogICAgICAgICAgICBhbGVydCgiRmlsZSBjb3VsZCBub3QgYmUgbG9hZGVkIik7DQogICAgICAgIH0NCiAgICAgICAgdXBsb2FkLnJlbW92ZSgpOw0KICAgICAgICByZXR1cm47DQogICAgfTsNCn0NCmZ1bmN0aW9uIGNoZWNrVW5kbyhrZXkpIHsNCiAgICBzd2l0Y2ggKGtleSkgew0KICAgICAgICBjYXNlICJlcGdNYXBwaW5nIjoNCiAgICAgICAgICAgIGlmIChVTkRPLmhhc093blByb3BlcnR5KGtleSkpIHsNCiAgICAgICAgICAgICAgICBTRVJWRVJbInhlcGciXVtrZXldID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeShVTkRPW2tleV0pKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgICAgIFVORE9ba2V5XSA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkoU0VSVkVSWyJ4ZXBnIl1ba2V5XSkpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICBicmVhazsNCiAgICB9DQogICAgcmV0dXJuOw0KfQ0KZnVuY3Rpb24gc29ydFNlbGVjdChzZWxlY3QpIHsNCiAgICBjb25zdCB0ZW1wQXJyID0gW107DQogICAgY29uc3Qgc2VsZWN0ZWRWYWx1ZSA9IHNlbGVjdC5vcHRpb25zW3NlbGVjdC5zZWxlY3RlZEluZGV4XS52YWx1ZTsNCiAgICBmb3IgKGNvbnN0IHNlbGVjdE9wdGlvbiBvZiBzZWxlY3Qub3B0aW9ucykgew0KICAgICAgICB0ZW1wQXJyLnB1c2goc2VsZWN0T3B0aW9uKTsNCiAgICB9DQogICAgdGVtcEFyci5zb3J0KChvMSwgbzIpID0+IHsNCiAgICAgICAgaWYgKG8xLnRleHQgPCBvMi50ZXh0KSB7DQogICAgICAgICAgICByZXR1cm4gLTE7DQogICAgICAgIH0NCiAgICAgICAgaWYgKG8xLnRleHQgPiBvMi50ZXh0KSB7DQogICAgICAgICAgICByZXR1cm4gMTsNCiAgICAgICAgfQ0KICAgICAgICByZXR1cm4gMDsNCiAgICB9KTsNCiAgICB3aGlsZSAoc2VsZWN0Lm9wdGlvbnMubGVuZ3RoID4gMCkgew0KICAgICAgICBzZWxlY3Qub3B0aW9uc1swXSA9IG51bGw7DQogICAgfQ0KICAgIDsNCiAgICBsZXQgbmV3U2VsZWN0ZWRJbmRleCA9IDA7DQogICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0ZW1wQXJyLmxlbmd0aDsgaSsrKSB7DQogICAgICAgIHNlbGVjdC5vcHRpb25zW2ldID0gdGVtcEFycltpXTsNCiAgICAgICAgaWYgKHNlbGVjdC5vcHRpb25zW2ldLnZhbHVlID09IHNlbGVjdGVkVmFsdWUpIHsNCiAgICAgICAgICAgIG5ld1NlbGVjdGVkSW5kZXggPSBpOw0KICAgICAgICB9DQogICAgfQ0KICAgIC8vIFNldCBuZXcgc2VsZWN0ZWQgaW5kZXggYWZ0ZXIgc29ydGluZw0KICAgIHNlbGVjdC5zZWxlY3RlZEluZGV4ID0gbmV3U2VsZWN0ZWRJbmRleDsNCn0NCmZ1bmN0aW9uIHVwZGF0ZUxvZygpIHsNCiAgICBjb25zb2xlLmxvZygiVE9LRU4iKTsNCiAgICB2YXIgc2VydmVyID0gbmV3IFNlcnZlcigidXBkYXRlTG9nIik7DQogICAgc2VydmVyLnJlcXVlc3QobmV3IE9iamVjdCgpKTsNCn0NCg==" + webUI["html/js/base_ts.js"] = "dmFyIFNFUlZFUiA9IG5ldyBPYmplY3QoKTsNCnZhciBCVUxLX0VESVQgPSBmYWxzZTsNCnZhciBDT0xVTU5fVE9fU09SVDsNCnZhciBTRUFSQ0hfTUFQUElORyA9IG5ldyBPYmplY3QoKTsNCnZhciBVTkRPID0gbmV3IE9iamVjdCgpOw0KdmFyIFNFUlZFUl9DT05ORUNUSU9OID0gZmFsc2U7DQp2YXIgV1NfQVZBSUxBQkxFID0gZmFsc2U7DQovLyBNZW51DQp2YXIgbWVudUl0ZW1zID0gbmV3IEFycmF5KCk7DQptZW51SXRlbXMucHVzaChuZXcgTWFpbk1lbnVJdGVtKCJwbGF5bGlzdCIsICJ7ey5tYWluTWVudS5pdGVtLnBsYXlsaXN0fX0iLCAibTN1LnBuZyIsICJ7ey5tYWluTWVudS5oZWFkbGluZS5wbGF5bGlzdH19IikpOw0KLy9tZW51SXRlbXMucHVzaChuZXcgTWFpbk1lbnVJdGVtKCJwbXNJRCIsICJ7ey5tYWluTWVudS5pdGVtLnBtc0lEfX0iLCAibnVtYmVyLnBuZyIsICJ7ey5tYWluTWVudS5oZWFkbGluZS5wbXNJRH19IikpDQptZW51SXRlbXMucHVzaChuZXcgTWFpbk1lbnVJdGVtKCJmaWx0ZXIiLCAie3subWFpbk1lbnUuaXRlbS5maWx0ZXJ9fSIsICJmaWx0ZXIucG5nIiwgInt7Lm1haW5NZW51LmhlYWRsaW5lLmZpbHRlcn19IikpOw0KbWVudUl0ZW1zLnB1c2gobmV3IE1haW5NZW51SXRlbSgieG1sdHYiLCAie3subWFpbk1lbnUuaXRlbS54bWx0dn19IiwgInhtbHR2LnBuZyIsICJ7ey5tYWluTWVudS5oZWFkbGluZS54bWx0dn19IikpOw0KbWVudUl0ZW1zLnB1c2gobmV3IE1haW5NZW51SXRlbSgibWFwcGluZyIsICJ7ey5tYWluTWVudS5pdGVtLm1hcHBpbmd9fSIsICJtYXBwaW5nLnBuZyIsICJ7ey5tYWluTWVudS5oZWFkbGluZS5tYXBwaW5nfX0iKSk7DQptZW51SXRlbXMucHVzaChuZXcgTWFpbk1lbnVJdGVtKCJ1c2VycyIsICJ7ey5tYWluTWVudS5pdGVtLnVzZXJzfX0iLCAidXNlcnMucG5nIiwgInt7Lm1haW5NZW51LmhlYWRsaW5lLnVzZXJzfX0iKSk7DQptZW51SXRlbXMucHVzaChuZXcgTWFpbk1lbnVJdGVtKCJzZXR0aW5ncyIsICJ7ey5tYWluTWVudS5pdGVtLnNldHRpbmdzfX0iLCAic2V0dGluZ3MucG5nIiwgInt7Lm1haW5NZW51LmhlYWRsaW5lLnNldHRpbmdzfX0iKSk7DQptZW51SXRlbXMucHVzaChuZXcgTWFpbk1lbnVJdGVtKCJsb2ciLCAie3subWFpbk1lbnUuaXRlbS5sb2d9fSIsICJsb2cucG5nIiwgInt7Lm1haW5NZW51LmhlYWRsaW5lLmxvZ319IikpOw0KbWVudUl0ZW1zLnB1c2gobmV3IE1haW5NZW51SXRlbSgibG9nb3V0IiwgInt7Lm1haW5NZW51Lml0ZW0ubG9nb3V0fX0iLCAibG9nb3V0LnBuZyIsICJ7ey5tYWluTWVudS5oZWFkbGluZS5sb2dvdXR9fSIpKTsNCi8vIFNldHRpbmdzIGNhdGVnb3JpZXMNCnZhciBzZXR0aW5nc0NhdGVnb3J5ID0gbmV3IEFycmF5KCk7DQpzZXR0aW5nc0NhdGVnb3J5LnB1c2gobmV3IFNldHRpbmdzQ2F0ZWdvcnlJdGVtKCJ7ey5zZXR0aW5ncy5jYXRlZ29yeS5nZW5lcmFsfX0iLCAieHRldmVBdXRvVXBkYXRlLHR1bmVyLGVwZ1NvdXJjZSxhcGkiKSk7DQpzZXR0aW5nc0NhdGVnb3J5LnB1c2gobmV3IFNldHRpbmdzQ2F0ZWdvcnlJdGVtKCJ7ey5zZXR0aW5ncy5jYXRlZ29yeS5maWxlc319IiwgInVwZGF0ZSxmaWxlcy51cGRhdGUsdGVtcC5wYXRoLGNhY2hlLmltYWdlcyx4ZXBnLnJlcGxhY2UubWlzc2luZy5pbWFnZXMiKSk7DQpzZXR0aW5nc0NhdGVnb3J5LnB1c2gobmV3IFNldHRpbmdzQ2F0ZWdvcnlJdGVtKCJ7ey5zZXR0aW5ncy5jYXRlZ29yeS5zdHJlYW1pbmd9fSIsICJidWZmZXIsdWRweHksYnVmZmVyLnNpemUua2IsYnVmZmVyLnRpbWVvdXQsdXNlci5hZ2VudCxmZm1wZWcucGF0aCxmZm1wZWcub3B0aW9ucyx2bGMucGF0aCx2bGMub3B0aW9ucyIpKTsNCnNldHRpbmdzQ2F0ZWdvcnkucHVzaChuZXcgU2V0dGluZ3NDYXRlZ29yeUl0ZW0oInt7LnNldHRpbmdzLmNhdGVnb3J5LmJhY2t1cH19IiwgImJhY2t1cC5wYXRoLGJhY2t1cC5rZWVwIikpOw0Kc2V0dGluZ3NDYXRlZ29yeS5wdXNoKG5ldyBTZXR0aW5nc0NhdGVnb3J5SXRlbSgie3suc2V0dGluZ3MuY2F0ZWdvcnkuYXV0aGVudGljYXRpb259fSIsICJhdXRoZW50aWNhdGlvbi53ZWIsYXV0aGVudGljYXRpb24ucG1zLGF1dGhlbnRpY2F0aW9uLm0zdSxhdXRoZW50aWNhdGlvbi54bWwsYXV0aGVudGljYXRpb24uYXBpIikpOw0KZnVuY3Rpb24gc2hvd1BvcFVwRWxlbWVudChlbG0pIHsNCiAgICB2YXIgYWxsRWxlbWVudHMgPSBuZXcgQXJyYXkoInBvcHVwLWN1c3RvbSIpOw0KICAgIGZvciAodmFyIGkgPSAwOyBpIDwgYWxsRWxlbWVudHMubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgc2hvd0VsZW1lbnQoYWxsRWxlbWVudHNbaV0sIGZhbHNlKTsNCiAgICB9DQogICAgc2hvd0VsZW1lbnQoZWxtLCB0cnVlKTsNCiAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsNCiAgICAgICAgc2hvd0VsZW1lbnQoInBvcHVwIiwgdHJ1ZSk7DQogICAgfSwgMTApOw0KICAgIHJldHVybjsNCn0NCmZ1bmN0aW9uIHNob3dFbGVtZW50KGVsbUlELCB0eXBlKSB7DQogICAgdmFyIGNzc0NsYXNzOw0KICAgIHN3aXRjaCAodHlwZSkgew0KICAgICAgICBjYXNlIHRydWU6DQogICAgICAgICAgICBjc3NDbGFzcyA9ICJibG9jayI7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSBmYWxzZToNCiAgICAgICAgICAgIGNzc0NsYXNzID0gIm5vbmUiOw0KICAgICAgICAgICAgYnJlYWs7DQogICAgfQ0KICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGVsbUlEKS5jbGFzc05hbWUgPSBjc3NDbGFzczsNCn0NCmZ1bmN0aW9uIGNoYW5nZUJ1dHRvbkFjdGlvbihlbGVtZW50LCBidXR0b25JRCwgYXR0cmlidXRlKSB7DQogICAgdmFyIHZhbHVlID0gZWxlbWVudC5vcHRpb25zW2VsZW1lbnQuc2VsZWN0ZWRJbmRleF0udmFsdWU7DQogICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoYnV0dG9uSUQpLnNldEF0dHJpYnV0ZShhdHRyaWJ1dGUsIHZhbHVlKTsNCn0NCmZ1bmN0aW9uIGdldExvY2FsRGF0YShkYXRhVHlwZSwgaWQpIHsNCiAgICBsZXQgZGF0YSA9IHt9Ow0KICAgIHN3aXRjaCAoZGF0YVR5cGUpIHsNCiAgICAgICAgY2FzZSAibTN1IjoNCiAgICAgICAgICAgIGRhdGEgPSBTRVJWRVJbInNldHRpbmdzIl1bImZpbGVzIl1bZGF0YVR5cGVdW2lkXTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJoZGhyIjoNCiAgICAgICAgICAgIGRhdGEgPSBTRVJWRVJbInNldHRpbmdzIl1bImZpbGVzIl1bZGF0YVR5cGVdW2lkXTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJmaWx0ZXIiOg0KICAgICAgICBjYXNlICJjdXN0b20tZmlsdGVyIjoNCiAgICAgICAgY2FzZSAiZ3JvdXAtdGl0bGUiOg0KICAgICAgICAgICAgaWYgKGlkID09IC0xKSB7DQogICAgICAgICAgICAgICAgZGF0YVsiYWN0aXZlIl0gPSB0cnVlOw0KICAgICAgICAgICAgICAgIGRhdGFbImNhc2VTZW5zaXRpdmUiXSA9IGZhbHNlOw0KICAgICAgICAgICAgICAgIGRhdGFbImRlc2NyaXB0aW9uIl0gPSAiIjsNCiAgICAgICAgICAgICAgICBkYXRhWyJleGNsdWRlIl0gPSAiIjsNCiAgICAgICAgICAgICAgICBkYXRhWyJmaWx0ZXIiXSA9ICIiOw0KICAgICAgICAgICAgICAgIGRhdGFbImluY2x1ZGUiXSA9ICIiOw0KICAgICAgICAgICAgICAgIGRhdGFbIm5hbWUiXSA9ICIiOw0KICAgICAgICAgICAgICAgIGRhdGFbInR5cGUiXSA9ICJncm91cC10aXRsZSI7DQogICAgICAgICAgICAgICAgZGF0YVsicHJlc2VydmVNYXBwaW5nIl0gPSB0cnVlOw0KICAgICAgICAgICAgICAgIGRhdGFbInN0YXJ0aW5nQ2hhbm5lbCJdID0gU0VSVkVSWyJzZXR0aW5ncyJdWyJtYXBwaW5nLmZpcnN0LmNoYW5uZWwiXTsNCiAgICAgICAgICAgICAgICBkYXRhWyJkZWZhdWx0TWlzc2luZ0VQRyJdID0gIi0iOw0KICAgICAgICAgICAgICAgIFNFUlZFUlsic2V0dGluZ3MiXVsiZmlsdGVyIl1baWRdID0gZGF0YTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGRhdGEgPSBTRVJWRVJbInNldHRpbmdzIl1bImZpbHRlciJdW2lkXTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJ4bWx0diI6DQogICAgICAgICAgICBkYXRhID0gU0VSVkVSWyJzZXR0aW5ncyJdWyJmaWxlcyJdW2RhdGFUeXBlXVtpZF07DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSAidXNlcnMiOg0KICAgICAgICAgICAgZGF0YSA9IFNFUlZFUlsidXNlcnMiXVtpZF1bImRhdGEiXTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJtYXBwaW5nIjoNCiAgICAgICAgICAgIGRhdGEgPSBTRVJWRVJbInhlcGciXVsiZXBnTWFwcGluZyJdW2lkXTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJtM3VHcm91cHMiOg0KICAgICAgICAgICAgZGF0YSA9IFNFUlZFUlsiZGF0YSJdWyJwbGF5bGlzdCJdWyJtM3UiXVsiZ3JvdXBzIl07DQogICAgICAgICAgICBicmVhazsNCiAgICB9DQogICAgcmV0dXJuIGRhdGE7DQp9DQpmdW5jdGlvbiBnZXRPd25PYmpQcm9wcyhvYmplY3QpIHsNCiAgICByZXR1cm4gb2JqZWN0ID8gT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMob2JqZWN0KSA6IFtdOw0KfQ0KZnVuY3Rpb24gZ2V0QWxsU2VsZWN0ZWRDaGFubmVscygpIHsNCiAgICB2YXIgY2hhbm5lbHMgPSBuZXcgQXJyYXkoKTsNCiAgICBpZiAoQlVMS19FRElUID09IGZhbHNlKSB7DQogICAgICAgIHJldHVybiBjaGFubmVsczsNCiAgICB9DQogICAgdmFyIHRycyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb250ZW50X3RhYmxlIikuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlRSIik7DQogICAgZm9yICh2YXIgaSA9IDE7IGkgPCB0cnMubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgaWYgKHRyc1tpXS5zdHlsZS5kaXNwbGF5ICE9ICJub25lIikgew0KICAgICAgICAgICAgaWYgKHRyc1tpXS5maXJzdENoaWxkLmZpcnN0Q2hpbGQuY2hlY2tlZCA9PSB0cnVlKSB7DQogICAgICAgICAgICAgICAgY2hhbm5lbHMucHVzaCh0cnNbaV0uaWQpOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQogICAgfQ0KICAgIHJldHVybiBjaGFubmVsczsNCn0NCmZ1bmN0aW9uIHNlbGVjdEFsbENoYW5uZWxzKCkgew0KICAgIHZhciBidWxrID0gZmFsc2U7DQogICAgdmFyIHRycyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb250ZW50X3RhYmxlIikuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlRSIik7DQogICAgaWYgKHRyc1swXS5maXJzdENoaWxkLmZpcnN0Q2hpbGQuY2hlY2tlZCA9PSB0cnVlKSB7DQogICAgICAgIGJ1bGsgPSB0cnVlOw0KICAgIH0NCiAgICBmb3IgKHZhciBpID0gMTsgaSA8IHRycy5sZW5ndGg7IGkrKykgew0KICAgICAgICBpZiAodHJzW2ldLnN0eWxlLmRpc3BsYXkgIT0gIm5vbmUiKSB7DQogICAgICAgICAgICBzd2l0Y2ggKGJ1bGspIHsNCiAgICAgICAgICAgICAgICBjYXNlIHRydWU6DQogICAgICAgICAgICAgICAgICAgIHRyc1tpXS5maXJzdENoaWxkLmZpcnN0Q2hpbGQuY2hlY2tlZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgZmFsc2U6DQogICAgICAgICAgICAgICAgICAgIHRyc1tpXS5maXJzdENoaWxkLmZpcnN0Q2hpbGQuY2hlY2tlZCA9IGZhbHNlOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KICAgIH0NCiAgICByZXR1cm47DQp9DQpmdW5jdGlvbiBidWxrRWRpdCgpIHsNCiAgICBCVUxLX0VESVQgPSAhQlVMS19FRElUOw0KICAgIHZhciBjbGFzc05hbWU7DQogICAgdmFyIHJvd3MgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCJidWxrIik7DQogICAgc3dpdGNoIChCVUxLX0VESVQpIHsNCiAgICAgICAgY2FzZSB0cnVlOg0KICAgICAgICAgICAgY2xhc3NOYW1lID0gImJ1bGsgc2hvd0J1bGsiOw0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGNhc2UgZmFsc2U6DQogICAgICAgICAgICBjbGFzc05hbWUgPSAiYnVsayBoaWRlQnVsayI7DQogICAgICAgICAgICBicmVhazsNCiAgICB9DQogICAgZm9yICh2YXIgaSA9IDA7IGkgPCByb3dzLmxlbmd0aDsgaSsrKSB7DQogICAgICAgIHJvd3NbaV0uY2xhc3NOYW1lID0gY2xhc3NOYW1lOw0KICAgICAgICByb3dzW2ldLmNoZWNrZWQgPSBmYWxzZTsNCiAgICB9DQogICAgcmV0dXJuOw0KfQ0KZnVuY3Rpb24gc29ydFRhYmxlKGNvbHVtbikgew0KICAgIGlmIChjb2x1bW4gPT0gQ09MVU1OX1RPX1NPUlQpIHsNCiAgICAgICAgcmV0dXJuOw0KICAgIH0NCiAgICBjb25zdCB0YWJsZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb250ZW50X3RhYmxlIik7DQogICAgY29uc3QgdGFibGVIZWFkID0gdGFibGUuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlRSIilbMF07DQogICAgY29uc3QgdGFibGVJdGVtcyA9IHRhYmxlSGVhZC5nZXRFbGVtZW50c0J5VGFnTmFtZSgiVEQiKTsNCiAgICBjb25zdCBzb3J0QXJyID0gW107DQogICAgbGV0IHhWYWx1ZTsNCiAgICBpZiAoY29sdW1uID49IDAgJiYgQ09MVU1OX1RPX1NPUlQgPj0gMCkgew0KICAgICAgICB0YWJsZUl0ZW1zW0NPTFVNTl9UT19TT1JUXS5jbGFzc05hbWUgPSAicG9pbnRlciI7DQogICAgICAgIHRhYmxlSXRlbXNbY29sdW1uXS5jbGFzc05hbWUgPSAic29ydFRoaXMiOw0KICAgIH0NCiAgICBDT0xVTU5fVE9fU09SVCA9IGNvbHVtbjsNCiAgICBjb25zdCByb3dzID0gdGFibGUucm93czsNCiAgICBpZiAocm93c1sxXSAhPSB1bmRlZmluZWQpIHsNCiAgICAgICAgY29uc3QgdGFibGVIZWFkZXIgPSByb3dzWzBdOw0KICAgICAgICBsZXQgeCA9IHJvd3NbMV0uZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlREIilbY29sdW1uXTsNCiAgICAgICAgZm9yIChsZXQgaSA9IDE7IGkgPCByb3dzLmxlbmd0aDsgaSsrKSB7DQogICAgICAgICAgICB4ID0gcm93c1tpXS5nZXRFbGVtZW50c0J5VGFnTmFtZSgiVEQiKVtjb2x1bW5dOw0KICAgICAgICAgICAgc3dpdGNoICh4LmNoaWxkTm9kZXNbMF0udGFnTmFtZS50b0xvd2VyQ2FzZSgpKSB7DQogICAgICAgICAgICAgICAgY2FzZSAiaW5wdXQiOg0KICAgICAgICAgICAgICAgICAgICB4VmFsdWUgPSB4LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJJTlBVVCIpWzBdLnZhbHVlLnRvTG93ZXJDYXNlKCk7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgInAiOg0KICAgICAgICAgICAgICAgICAgICB4VmFsdWUgPSB4LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJQIilbMF0uaW5uZXJUZXh0LnRvTG93ZXJDYXNlKCk7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKHguY2hpbGROb2Rlc1swXS50YWdOYW1lKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIHNvcnRBcnIucHVzaCh7IGtleTogeFZhbHVlID8geFZhbHVlIDogaSwgcm93OiByb3dzW2ldIH0pOw0KICAgICAgICB9DQogICAgICAgIHdoaWxlICh0YWJsZS5maXJzdENoaWxkKSB7DQogICAgICAgICAgICB0YWJsZS5yZW1vdmVDaGlsZCh0YWJsZS5maXJzdENoaWxkKTsNCiAgICAgICAgfQ0KICAgICAgICBzb3J0QXJyLnNvcnQoKHNlMSwgc2UyKSA9PiB7DQogICAgICAgICAgICBjb25zdCBzZTFLZXlOdW0gPSBwYXJzZUZsb2F0KFN0cmluZyhzZTEua2V5KSk7DQogICAgICAgICAgICBjb25zdCBzZTJLZXlOdW0gPSBwYXJzZUZsb2F0KFN0cmluZyhzZTIua2V5KSk7DQogICAgICAgICAgICBpZiAoIWlzTmFOKHNlMUtleU51bSkgJiYgIWlzTmFOKHNlMktleU51bSkpIHsNCiAgICAgICAgICAgICAgICByZXR1cm4gc2UxS2V5TnVtIC0gc2UyS2V5TnVtOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgaWYgKHNlMS5rZXkgPCBzZTIua2V5KSB7DQogICAgICAgICAgICAgICAgcmV0dXJuIC0xOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgaWYgKHNlMS5rZXkgPiBzZTIua2V5KSB7DQogICAgICAgICAgICAgICAgcmV0dXJuIDE7DQogICAgICAgICAgICB9DQogICAgICAgICAgICByZXR1cm4gMDsNCiAgICAgICAgfSk7DQogICAgICAgIHRhYmxlLmFwcGVuZENoaWxkKHRhYmxlSGVhZGVyKTsNCiAgICAgICAgc29ydEFyci5mb3JFYWNoKChzZSkgPT4gew0KICAgICAgICAgICAgdGFibGUuYXBwZW5kQ2hpbGQoc2Uucm93KTsNCiAgICAgICAgfSk7DQogICAgfQ0KICAgIHJldHVybjsNCn0NCmZ1bmN0aW9uIGNyZWF0ZVNlYXJjaE9iaigpIHsNCiAgICBTRUFSQ0hfTUFQUElORyA9IG5ldyBPYmplY3QoKTsNCiAgICB2YXIgZGF0YSA9IFNFUlZFUlsieGVwZyJdWyJlcGdNYXBwaW5nIl07DQogICAgdmFyIGNoYW5uZWxzID0gZ2V0T3duT2JqUHJvcHMoZGF0YSk7DQogICAgdmFyIGNoYW5uZWxLZXlzID0gWyJ4LWFjdGl2ZSIsICJ4LWNoYW5uZWxJRCIsICJ4LW5hbWUiLCAiX2ZpbGUubTN1Lm5hbWUiLCAieC1ncm91cC10aXRsZSIsICJ4LXhtbHR2LWZpbGUiXTsNCiAgICBjaGFubmVscy5mb3JFYWNoKGlkID0+IHsNCiAgICAgICAgY2hhbm5lbEtleXMuZm9yRWFjaChrZXkgPT4gew0KICAgICAgICAgICAgaWYgKGtleSA9PSAieC1hY3RpdmUiKSB7DQogICAgICAgICAgICAgICAgc3dpdGNoIChkYXRhW2lkXVtrZXldKSB7DQogICAgICAgICAgICAgICAgICAgIGNhc2UgdHJ1ZToNCiAgICAgICAgICAgICAgICAgICAgICAgIFNFQVJDSF9NQVBQSU5HW2lkXSA9ICJvbmxpbmUgIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgICAgICBjYXNlIGZhbHNlOg0KICAgICAgICAgICAgICAgICAgICAgICAgU0VBUkNIX01BUFBJTkdbaWRdID0gIm9mZmxpbmUgIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgICAgIGlmIChrZXkgPT0gIngteG1sdHYtZmlsZSIpIHsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHhtbHR2RmlsZSA9IGdldFZhbHVlRnJvbVByb3ZpZGVyRmlsZShkYXRhW2lkXVtrZXldLCAieG1sdHYiLCAibmFtZSIpOw0KICAgICAgICAgICAgICAgICAgICBpZiAoeG1sdHZGaWxlICE9IHVuZGVmaW5lZCkgew0KICAgICAgICAgICAgICAgICAgICAgICAgU0VBUkNIX01BUFBJTkdbaWRdID0gU0VBUkNIX01BUFBJTkdbaWRdICsgeG1sdHZGaWxlICsgIiAiOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgICAgICAgICBTRUFSQ0hfTUFQUElOR1tpZF0gPSBTRUFSQ0hfTUFQUElOR1tpZF0gKyBkYXRhW2lkXVtrZXldICsgIiAiOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0NCiAgICAgICAgfSk7DQogICAgfSk7DQogICAgcmV0dXJuOw0KfQ0KZnVuY3Rpb24gc2VhcmNoSW5NYXBwaW5nKCkgew0KICAgIHZhciBzZWFyY2hWYWx1ZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzZWFyY2hNYXBwaW5nIikudmFsdWU7DQogICAgdmFyIHRycyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb250ZW50X3RhYmxlIikuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlRSIik7DQogICAgZm9yICh2YXIgaSA9IDE7IGkgPCB0cnMubGVuZ3RoOyArK2kpIHsNCiAgICAgICAgdmFyIGlkID0gdHJzW2ldLmdldEF0dHJpYnV0ZSgiaWQiKTsNCiAgICAgICAgdmFyIGVsZW1lbnQgPSBTRUFSQ0hfTUFQUElOR1tpZF07DQogICAgICAgIHN3aXRjaCAoZWxlbWVudC50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKHNlYXJjaFZhbHVlLnRvTG93ZXJDYXNlKCkpKSB7DQogICAgICAgICAgICBjYXNlIHRydWU6DQogICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpLnN0eWxlLmRpc3BsYXkgPSAiIjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgZmFsc2U6DQogICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpLnN0eWxlLmRpc3BsYXkgPSAibm9uZSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIH0NCiAgICB9DQogICAgcmV0dXJuOw0KfQ0KZnVuY3Rpb24gY2FsY3VsYXRlV3JhcHBlckhlaWdodCgpIHsNCiAgICBpZiAoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImJveC13cmFwcGVyIikpIHsNCiAgICAgICAgdmFyIGVsbSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJib3gtd3JhcHBlciIpOw0KICAgICAgICB2YXIgZGl2cyA9IG5ldyBBcnJheSgibXlTdHJlYW1zQm94IiwgImNsaWVudEluZm8iLCAiY29udGVudCIpOw0KICAgICAgICB2YXIgZWxlbWVudHNIZWlnaHQgPSAwIC0gZWxtLm9mZnNldEhlaWdodDsNCiAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBkaXZzLmxlbmd0aDsgaSsrKSB7DQogICAgICAgICAgICBlbGVtZW50c0hlaWdodCA9IGVsZW1lbnRzSGVpZ2h0ICsgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoZGl2c1tpXSkub2Zmc2V0SGVpZ2h0Ow0KICAgICAgICB9DQogICAgICAgIGVsbS5zdHlsZS5oZWlnaHQgPSB3aW5kb3cuaW5uZXJIZWlnaHQgLSBlbGVtZW50c0hlaWdodCArICJweCI7DQogICAgfQ0KICAgIHJldHVybjsNCn0NCmZ1bmN0aW9uIGNoYW5nZUNoYW5uZWxOdW1iZXIoZWxlbWVudCkgew0KICAgIHZhciBkYklEID0gZWxlbWVudC5wYXJlbnROb2RlLnBhcmVudE5vZGUuaWQ7DQogICAgdmFyIG5ld051bWJlciA9IHBhcnNlRmxvYXQoZWxlbWVudC52YWx1ZSk7DQogICAgdmFyIGNoYW5uZWxOdW1iZXJzID0gW107DQogICAgdmFyIGRhdGEgPSBTRVJWRVJbInhlcGciXVsiZXBnTWFwcGluZyJdOw0KICAgIHZhciBjaGFubmVscyA9IGdldE93bk9ialByb3BzKGRhdGEpOw0KICAgIGlmIChpc05hTihuZXdOdW1iZXIpKSB7DQogICAgICAgIGFsZXJ0KCJ7ey5hbGVydC5pbnZhbGlkQ2hhbm5lbE51bWJlcn19Iik7DQogICAgICAgIHJldHVybjsNCiAgICB9DQogICAgY2hhbm5lbHMuZm9yRWFjaChpZCA9PiB7DQogICAgICAgIHZhciBjaGFubmVsTnVtYmVyID0gcGFyc2VGbG9hdChkYXRhW2lkXVsieC1jaGFubmVsSUQiXSk7DQogICAgICAgIGNoYW5uZWxOdW1iZXJzLnB1c2goY2hhbm5lbE51bWJlcik7DQogICAgfSk7DQogICAgZm9yICh2YXIgaSA9IDA7IGkgPCBjaGFubmVsTnVtYmVycy5sZW5ndGg7IGkrKykgew0KICAgICAgICBpZiAoY2hhbm5lbE51bWJlcnMuaW5kZXhPZihuZXdOdW1iZXIpID09IC0xKSB7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgfQ0KICAgICAgICBpZiAoTWF0aC5mbG9vcihuZXdOdW1iZXIpID09IG5ld051bWJlcikgew0KICAgICAgICAgICAgbmV3TnVtYmVyID0gbmV3TnVtYmVyICsgMTsNCiAgICAgICAgfQ0KICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgIG5ld051bWJlciA9IG5ld051bWJlciArIDAuMTsNCiAgICAgICAgICAgIG5ld051bWJlci50b0ZpeGVkKDEpOw0KICAgICAgICAgICAgbmV3TnVtYmVyID0gTWF0aC5yb3VuZChuZXdOdW1iZXIgKiAxMCkgLyAxMDsNCiAgICAgICAgfQ0KICAgIH0NCiAgICBkYXRhW2RiSURdWyJ4LWNoYW5uZWxJRCJdID0gbmV3TnVtYmVyLnRvU3RyaW5nKCk7DQogICAgZWxlbWVudC52YWx1ZSA9IG5ld051bWJlcjsNCiAgICBjb25zb2xlLmxvZyhkYXRhW2RiSURdWyJ4LWNoYW5uZWxJRCJdKTsNCiAgICBpZiAoQ09MVU1OX1RPX1NPUlQgPT0gMSkgew0KICAgICAgICBDT0xVTU5fVE9fU09SVCA9IC0xOw0KICAgICAgICBzb3J0VGFibGUoMSk7DQogICAgfQ0KICAgIHJldHVybjsNCn0NCmZ1bmN0aW9uIGJhY2t1cCgpIHsNCiAgICB2YXIgZGF0YSA9IG5ldyBPYmplY3QoKTsNCiAgICBjb25zb2xlLmxvZygiQmFja3VwIGRhdGEiKTsNCiAgICB2YXIgY21kID0gInh0ZXZlQmFja3VwIjsNCiAgICBjb25zb2xlLmxvZygiU0VORCBUTyBTRVJWRVIiKTsNCiAgICBjb25zb2xlLmxvZyhkYXRhKTsNCiAgICB2YXIgc2VydmVyID0gbmV3IFNlcnZlcihjbWQpOw0KICAgIHNlcnZlci5yZXF1ZXN0KGRhdGEpOw0KICAgIHJldHVybjsNCn0NCmZ1bmN0aW9uIHRvZ2dsZUNoYW5uZWxTdGF0dXMoaWQpIHsNCiAgICB2YXIgZWxlbWVudDsNCiAgICB2YXIgc3RhdHVzOw0KICAgIGlmIChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYWN0aXZlIikpIHsNCiAgICAgICAgdmFyIGNoZWNrYm94ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImFjdGl2ZSIpOw0KICAgICAgICBzdGF0dXMgPSAoY2hlY2tib3gpLmNoZWNrZWQ7DQogICAgfQ0KICAgIHZhciBpZHMgPSBnZXRBbGxTZWxlY3RlZENoYW5uZWxzKCk7DQogICAgaWYgKGlkcy5sZW5ndGggPT0gMCkgew0KICAgICAgICBpZHMucHVzaChpZCk7DQogICAgfQ0KICAgIGlkcy5mb3JFYWNoKGlkID0+IHsNCiAgICAgICAgdmFyIGNoYW5uZWwgPSBTRVJWRVJbInhlcGciXVsiZXBnTWFwcGluZyJdW2lkXTsNCiAgICAgICAgY2hhbm5lbFsieC1hY3RpdmUiXSA9IHN0YXR1czsNCiAgICAgICAgc3dpdGNoIChjaGFubmVsWyJ4LWFjdGl2ZSJdKSB7DQogICAgICAgICAgICBjYXNlIHRydWU6DQogICAgICAgICAgICAgICAgaWYgKGNoYW5uZWxbIngteG1sdHYtZmlsZSJdID09ICItIiB8fCBjaGFubmVsWyJ4LW1hcHBpbmciXSA9PSAiLSIpIHsNCiAgICAgICAgICAgICAgICAgICAgaWYgKEJVTEtfRURJVCA9PSBmYWxzZSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgYWxlcnQoY2hhbm5lbFsieC1uYW1lIl0gKyAiOiBNaXNzaW5nIFhNTFRWIGZpbGUgLyBjaGFubmVsIik7DQogICAgICAgICAgICAgICAgICAgICAgICBjaGVja2JveC5jaGVja2VkID0gZmFsc2U7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgY2hhbm5lbFsieC1hY3RpdmUiXSA9IGZhbHNlOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgZmFsc2U6DQogICAgICAgICAgICAgICAgLy8gY29kZS4uLg0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICB9DQogICAgICAgIGlmIChjaGFubmVsWyJ4LWFjdGl2ZSJdID09IGZhbHNlKSB7DQogICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkuY2xhc3NOYW1lID0gIm5vdEFjdGl2ZUVQRyI7DQogICAgICAgIH0NCiAgICAgICAgZWxzZSB7DQogICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkuY2xhc3NOYW1lID0gImFjdGl2ZUVQRyI7DQogICAgICAgIH0NCiAgICB9KTsNCn0NCmZ1bmN0aW9uIHRvZ2dsZUdyb3VwVXBkYXRlQ2IoeGVwZ0lkLCB0YXJnZXQpIHsNCiAgICB0YXJnZXQuY2xhc3NOYW1lID0gJ2NoYW5nZWQnOw0KICAgIGNvbnN0IGdyb3VwSW5wdXQgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCdpbnB1dFtuYW1lPSJ4LWdyb3VwLXRpdGxlIl0nKTsNCiAgICBjb25zdCBtYXBwaW5nID0gZ2V0TG9jYWxEYXRhKCdtYXBwaW5nJywgeGVwZ0lkKTsNCiAgICBpZiAodGFyZ2V0LmNoZWNrZWQpIHsNCiAgICAgICAgZ3JvdXBJbnB1dC5kYXRhc2V0Lm9sZFZhbHVlID0gZ3JvdXBJbnB1dC52YWx1ZTsNCiAgICAgICAgZ3JvdXBJbnB1dC52YWx1ZSA9IG1hcHBpbmdbJ2dyb3VwLXRpdGxlJ107DQogICAgICAgIGdyb3VwSW5wdXQuZGlzYWJsZWQgPSB0cnVlOw0KICAgIH0NCiAgICBlbHNlIHsNCiAgICAgICAgZ3JvdXBJbnB1dC52YWx1ZSA9IGdyb3VwSW5wdXQuZGF0YXNldC5vbGRWYWx1ZTsNCiAgICAgICAgZ3JvdXBJbnB1dC5kaXNhYmxlZCA9IGZhbHNlOw0KICAgIH0NCiAgICBncm91cElucHV0LmNsYXNzTmFtZSA9ICdjaGFuZ2VkJzsNCn0NCmZ1bmN0aW9uIHJlc3RvcmUoKSB7DQogICAgaWYgKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd1cGxvYWQnKSkgew0KICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndXBsb2FkJykucmVtb3ZlKCk7DQogICAgfQ0KICAgIHZhciByZXN0b3JlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiSU5QVVQiKTsNCiAgICByZXN0b3JlLnNldEF0dHJpYnV0ZSgidHlwZSIsICJmaWxlIik7DQogICAgcmVzdG9yZS5zZXRBdHRyaWJ1dGUoImNsYXNzIiwgIm5vdFZpc2libGUiKTsNCiAgICByZXN0b3JlLnNldEF0dHJpYnV0ZSgibmFtZSIsICIiKTsNCiAgICByZXN0b3JlLmlkID0gInVwbG9hZCI7DQogICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChyZXN0b3JlKTsNCiAgICByZXN0b3JlLmNsaWNrKCk7DQogICAgcmVzdG9yZS5vbmNoYW5nZSA9IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgdmFyIGZpbGVuYW1lID0gcmVzdG9yZS5maWxlc1swXS5uYW1lOw0KICAgICAgICB2YXIgY2hlY2sgPSBjb25maXJtKCJGaWxlOiAiICsgZmlsZW5hbWUgKyAiXG57ey5jb25maXJtLnJlc3RvcmV9fSIpOw0KICAgICAgICBpZiAoY2hlY2sgPT0gdHJ1ZSkgew0KICAgICAgICAgICAgdmFyIHJlYWRlciA9IG5ldyBGaWxlUmVhZGVyKCk7DQogICAgICAgICAgICB2YXIgZmlsZSA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ2lucHV0W3R5cGU9ZmlsZV0nKS5maWxlc1swXTsNCiAgICAgICAgICAgIGlmIChmaWxlKSB7DQogICAgICAgICAgICAgICAgcmVhZGVyLnJlYWRBc0RhdGFVUkwoZmlsZSk7DQogICAgICAgICAgICAgICAgcmVhZGVyLm9ubG9hZCA9IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2cocmVhZGVyLnJlc3VsdCk7DQogICAgICAgICAgICAgICAgICAgIHZhciBkYXRhID0gbmV3IE9iamVjdCgpOw0KICAgICAgICAgICAgICAgICAgICB2YXIgY21kID0gInh0ZXZlUmVzdG9yZSI7DQogICAgICAgICAgICAgICAgICAgIGRhdGFbImJhc2U2NCJdID0gcmVhZGVyLnJlc3VsdDsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHNlcnZlciA9IG5ldyBTZXJ2ZXIoY21kKTsNCiAgICAgICAgICAgICAgICAgICAgc2VydmVyLnJlcXVlc3QoZGF0YSk7DQogICAgICAgICAgICAgICAgfTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgICAgIGFsZXJ0KCJGaWxlIGNvdWxkIG5vdCBiZSBsb2FkZWQiKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIHJlc3RvcmUucmVtb3ZlKCk7DQogICAgICAgICAgICByZXR1cm47DQogICAgICAgIH0NCiAgICB9Ow0KICAgIHJldHVybjsNCn0NCmZ1bmN0aW9uIHVwbG9hZExvZ28oKSB7DQogICAgaWYgKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd1cGxvYWQnKSkgew0KICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndXBsb2FkJykucmVtb3ZlKCk7DQogICAgfQ0KICAgIHZhciB1cGxvYWQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJJTlBVVCIpOw0KICAgIHVwbG9hZC5zZXRBdHRyaWJ1dGUoInR5cGUiLCAiZmlsZSIpOw0KICAgIHVwbG9hZC5zZXRBdHRyaWJ1dGUoImNsYXNzIiwgIm5vdFZpc2libGUiKTsNCiAgICB1cGxvYWQuc2V0QXR0cmlidXRlKCJuYW1lIiwgIiIpOw0KICAgIHVwbG9hZC5pZCA9ICJ1cGxvYWQiOw0KICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQodXBsb2FkKTsNCiAgICB1cGxvYWQuY2xpY2soKTsNCiAgICB1cGxvYWQub25ibHVyID0gZnVuY3Rpb24gKCkgew0KICAgICAgICBhbGVydCgpOw0KICAgIH07DQogICAgdXBsb2FkLm9uY2hhbmdlID0gZnVuY3Rpb24gKCkgew0KICAgICAgICB2YXIgZmlsZW5hbWUgPSB1cGxvYWQuZmlsZXNbMF0ubmFtZTsNCiAgICAgICAgdmFyIHJlYWRlciA9IG5ldyBGaWxlUmVhZGVyKCk7DQogICAgICAgIHZhciBmaWxlID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignaW5wdXRbdHlwZT1maWxlXScpLmZpbGVzWzBdOw0KICAgICAgICBpZiAoZmlsZSkgew0KICAgICAgICAgICAgcmVhZGVyLnJlYWRBc0RhdGFVUkwoZmlsZSk7DQogICAgICAgICAgICByZWFkZXIub25sb2FkID0gZnVuY3Rpb24gKCkgew0KICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKHJlYWRlci5yZXN1bHQpOw0KICAgICAgICAgICAgICAgIHZhciBkYXRhID0gbmV3IE9iamVjdCgpOw0KICAgICAgICAgICAgICAgIHZhciBjbWQgPSAidXBsb2FkTG9nbyI7DQogICAgICAgICAgICAgICAgZGF0YVsiYmFzZTY0Il0gPSByZWFkZXIucmVzdWx0Ow0KICAgICAgICAgICAgICAgIGRhdGFbImZpbGVuYW1lIl0gPSBmaWxlLm5hbWU7DQogICAgICAgICAgICAgICAgdmFyIHNlcnZlciA9IG5ldyBTZXJ2ZXIoY21kKTsNCiAgICAgICAgICAgICAgICBzZXJ2ZXIucmVxdWVzdChkYXRhKTsNCiAgICAgICAgICAgICAgICB2YXIgdXBkYXRlTG9nbyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd1cGRhdGUtaWNvbicpOw0KICAgICAgICAgICAgICAgIHVwZGF0ZUxvZ28uY2hlY2tlZCA9IGZhbHNlOw0KICAgICAgICAgICAgICAgIHVwZGF0ZUxvZ28uY2xhc3NOYW1lID0gImNoYW5nZWQiOw0KICAgICAgICAgICAgfTsNCiAgICAgICAgfQ0KICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgIGFsZXJ0KCJGaWxlIGNvdWxkIG5vdCBiZSBsb2FkZWQiKTsNCiAgICAgICAgfQ0KICAgICAgICB1cGxvYWQucmVtb3ZlKCk7DQogICAgICAgIHJldHVybjsNCiAgICB9Ow0KfQ0KZnVuY3Rpb24gY2hlY2tVbmRvKGtleSkgew0KICAgIHN3aXRjaCAoa2V5KSB7DQogICAgICAgIGNhc2UgImVwZ01hcHBpbmciOg0KICAgICAgICAgICAgaWYgKFVORE8uaGFzT3duUHJvcGVydHkoa2V5KSkgew0KICAgICAgICAgICAgICAgIFNFUlZFUlsieGVwZyJdW2tleV0gPSBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KFVORE9ba2V5XSkpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgZWxzZSB7DQogICAgICAgICAgICAgICAgVU5ET1trZXldID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeShTRVJWRVJbInhlcGciXVtrZXldKSk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgIGJyZWFrOw0KICAgIH0NCiAgICByZXR1cm47DQp9DQpmdW5jdGlvbiBzb3J0U2VsZWN0KHNlbGVjdCkgew0KICAgIGNvbnN0IHRlbXBBcnIgPSBbXTsNCiAgICBjb25zdCBzZWxlY3RlZFZhbHVlID0gc2VsZWN0Lm9wdGlvbnNbc2VsZWN0LnNlbGVjdGVkSW5kZXhdLnZhbHVlOw0KICAgIGZvciAoY29uc3Qgc2VsZWN0T3B0aW9uIG9mIHNlbGVjdC5vcHRpb25zKSB7DQogICAgICAgIHRlbXBBcnIucHVzaChzZWxlY3RPcHRpb24pOw0KICAgIH0NCiAgICB0ZW1wQXJyLnNvcnQoKG8xLCBvMikgPT4gew0KICAgICAgICBpZiAobzEudGV4dCA8IG8yLnRleHQpIHsNCiAgICAgICAgICAgIHJldHVybiAtMTsNCiAgICAgICAgfQ0KICAgICAgICBpZiAobzEudGV4dCA+IG8yLnRleHQpIHsNCiAgICAgICAgICAgIHJldHVybiAxOw0KICAgICAgICB9DQogICAgICAgIHJldHVybiAwOw0KICAgIH0pOw0KICAgIHdoaWxlIChzZWxlY3Qub3B0aW9ucy5sZW5ndGggPiAwKSB7DQogICAgICAgIHNlbGVjdC5vcHRpb25zWzBdID0gbnVsbDsNCiAgICB9DQogICAgOw0KICAgIGxldCBuZXdTZWxlY3RlZEluZGV4ID0gMDsNCiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRlbXBBcnIubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgc2VsZWN0Lm9wdGlvbnNbaV0gPSB0ZW1wQXJyW2ldOw0KICAgICAgICBpZiAoc2VsZWN0Lm9wdGlvbnNbaV0udmFsdWUgPT0gc2VsZWN0ZWRWYWx1ZSkgew0KICAgICAgICAgICAgbmV3U2VsZWN0ZWRJbmRleCA9IGk7DQogICAgICAgIH0NCiAgICB9DQogICAgLy8gU2V0IG5ldyBzZWxlY3RlZCBpbmRleCBhZnRlciBzb3J0aW5nDQogICAgc2VsZWN0LnNlbGVjdGVkSW5kZXggPSBuZXdTZWxlY3RlZEluZGV4Ow0KfQ0KZnVuY3Rpb24gdXBkYXRlTG9nKCkgew0KICAgIGNvbnNvbGUubG9nKCJUT0tFTiIpOw0KICAgIHZhciBzZXJ2ZXIgPSBuZXcgU2VydmVyKCJ1cGRhdGVMb2ciKTsNCiAgICBzZXJ2ZXIucmVxdWVzdChuZXcgT2JqZWN0KCkpOw0KfQ0K" webUI["html/js/classes_ts.js"] = "dmFyIF9fZXh0ZW5kcyA9ICh0aGlzICYmIHRoaXMuX19leHRlbmRzKSB8fCAoZnVuY3Rpb24gKCkgew0KICAgIHZhciBleHRlbmRTdGF0aWNzID0gZnVuY3Rpb24gKGQsIGIpIHsNCiAgICAgICAgZXh0ZW5kU3RhdGljcyA9IE9iamVjdC5zZXRQcm90b3R5cGVPZiB8fA0KICAgICAgICAgICAgKHsgX19wcm90b19fOiBbXSB9IGluc3RhbmNlb2YgQXJyYXkgJiYgZnVuY3Rpb24gKGQsIGIpIHsgZC5fX3Byb3RvX18gPSBiOyB9KSB8fA0KICAgICAgICAgICAgZnVuY3Rpb24gKGQsIGIpIHsgZm9yICh2YXIgcCBpbiBiKSBpZiAoYi5oYXNPd25Qcm9wZXJ0eShwKSkgZFtwXSA9IGJbcF07IH07DQogICAgICAgIHJldHVybiBleHRlbmRTdGF0aWNzKGQsIGIpOw0KICAgIH07DQogICAgcmV0dXJuIGZ1bmN0aW9uIChkLCBiKSB7DQogICAgICAgIGV4dGVuZFN0YXRpY3MoZCwgYik7DQogICAgICAgIGZ1bmN0aW9uIF9fKCkgeyB0aGlzLmNvbnN0cnVjdG9yID0gZDsgfQ0KICAgICAgICBkLnByb3RvdHlwZSA9IGIgPT09IG51bGwgPyBPYmplY3QuY3JlYXRlKGIpIDogKF9fLnByb3RvdHlwZSA9IGIucHJvdG90eXBlLCBuZXcgX18oKSk7DQogICAgfTsNCn0pKCk7DQp2YXIgTWFpbk1lbnUgPSAvKiogQGNsYXNzICovIChmdW5jdGlvbiAoKSB7DQogICAgZnVuY3Rpb24gTWFpbk1lbnUoKSB7DQogICAgICAgIHRoaXMuRG9jdW1lbnRJRCA9ICJtYWluLW1lbnUiOw0KICAgICAgICB0aGlzLkhUTUxUYWcgPSAiTEkiOw0KICAgIH0NCiAgICBNYWluTWVudS5wcm90b3R5cGUuY3JlYXRlID0gZnVuY3Rpb24gKCkgew0KICAgICAgICBjb25zb2xlLmxvZyh0aGlzLkRvY3VtZW50SUQpOw0KICAgIH07DQogICAgcmV0dXJuIE1haW5NZW51Ow0KfSgpKTsNCnZhciBNYWluTWVudUl0ZW0gPSAvKiogQGNsYXNzICovIChmdW5jdGlvbiAoX3N1cGVyKSB7DQogICAgX19leHRlbmRzKE1haW5NZW51SXRlbSwgX3N1cGVyKTsNCiAgICBmdW5jdGlvbiBNYWluTWVudUl0ZW0oKSB7DQogICAgICAgIHJldHVybiBfc3VwZXIgIT09IG51bGwgJiYgX3N1cGVyLmFwcGx5KHRoaXMsIGFyZ3VtZW50cykgfHwgdGhpczsNCiAgICB9DQogICAgTWFpbk1lbnVJdGVtLnByb3RvdHlwZS5jcmVhdGUyID0gZnVuY3Rpb24gKCkgew0KICAgICAgICB2YXIgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQodGhpcy5IVE1MVGFnKTsNCiAgICAgICAgZWxlbWVudC5pbm5lclRleHQgPSB0aGlzLlZhbHVlOw0KICAgICAgICBjb25zb2xlLmxvZyhlbGVtZW50KTsNCiAgICB9Ow0KICAgIHJldHVybiBNYWluTWVudUl0ZW07DQp9KE1haW5NZW51KSk7DQpmdW5jdGlvbiBwYWdlUmVhZHkoKSB7DQogICAgdmFyIGl0ZW0gPSBuZXcgTWFpbk1lbnVJdGVtKCk7DQogICAgaXRlbS5WYWx1ZSA9ICJUZXN0IjsNCiAgICBpdGVtLmNyZWF0ZTIoKTsNCn0NCg==" webUI["html/js/configuration_ts.js"] = "Y2xhc3MgV2l6YXJkQ2F0ZWdvcnkgew0KICAgIGNvbnN0cnVjdG9yKCkgew0KICAgICAgICB0aGlzLkRvY3VtZW50SUQgPSAiY29udGVudCI7DQogICAgfQ0KICAgIGNyZWF0ZUNhdGVnb3J5SGVhZGxpbmUodmFsdWUpIHsNCiAgICAgICAgdmFyIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJINCIpOw0KICAgICAgICBlbGVtZW50LmlubmVySFRNTCA9IHZhbHVlOw0KICAgICAgICByZXR1cm4gZWxlbWVudDsNCiAgICB9DQp9DQpjbGFzcyBXaXphcmRJdGVtIGV4dGVuZHMgV2l6YXJkQ2F0ZWdvcnkgew0KICAgIGNvbnN0cnVjdG9yKGtleSwgaGVhZGxpbmUpIHsNCiAgICAgICAgc3VwZXIoKTsNCiAgICAgICAgdGhpcy5oZWFkbGluZSA9IGhlYWRsaW5lOw0KICAgICAgICB0aGlzLmtleSA9IGtleTsNCiAgICB9DQogICAgY3JlYXRlV2l6YXJkKCkgew0KICAgICAgICB2YXIgaGVhZGxpbmUgPSB0aGlzLmNyZWF0ZUNhdGVnb3J5SGVhZGxpbmUodGhpcy5oZWFkbGluZSk7DQogICAgICAgIHZhciBrZXkgPSB0aGlzLmtleTsNCiAgICAgICAgdmFyIGNvbnRlbnQgPSBuZXcgUG9wdXBDb250ZW50KCk7DQogICAgICAgIHZhciBkZXNjcmlwdGlvbjsNCiAgICAgICAgdmFyIGRvYyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHRoaXMuRG9jdW1lbnRJRCk7DQogICAgICAgIGRvYy5pbm5lckhUTUwgPSAiIjsNCiAgICAgICAgZG9jLmFwcGVuZENoaWxkKGhlYWRsaW5lKTsNCiAgICAgICAgc3dpdGNoIChrZXkpIHsNCiAgICAgICAgICAgIGNhc2UgInR1bmVyIjoNCiAgICAgICAgICAgICAgICB2YXIgdGV4dCA9IG5ldyBBcnJheSgpOw0KICAgICAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBuZXcgQXJyYXkoKTsNCiAgICAgICAgICAgICAgICBmb3IgKHZhciBpID0gMTsgaSA8PSAxMDA7IGkrKykgew0KICAgICAgICAgICAgICAgICAgICB0ZXh0LnB1c2goaSk7DQogICAgICAgICAgICAgICAgICAgIHZhbHVlcy5wdXNoKGkpOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCAiMSIsIGtleSk7DQogICAgICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgiY2xhc3MiLCAid2l6YXJkIik7DQogICAgICAgICAgICAgICAgc2VsZWN0LmlkID0ga2V5Ow0KICAgICAgICAgICAgICAgIGRvYy5hcHBlbmRDaGlsZChzZWxlY3QpOw0KICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uID0gInt7LndpemFyZC50dW5lci5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImVwZ1NvdXJjZSI6DQogICAgICAgICAgICAgICAgdmFyIHRleHQgPSBbIlBNUyIsICJYRVBHIl07DQogICAgICAgICAgICAgICAgdmFyIHZhbHVlcyA9IFsiUE1TIiwgIlhFUEciXTsNCiAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCAiWEVQRyIsIGtleSk7DQogICAgICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgiY2xhc3MiLCAid2l6YXJkIik7DQogICAgICAgICAgICAgICAgc2VsZWN0LmlkID0ga2V5Ow0KICAgICAgICAgICAgICAgIGRvYy5hcHBlbmRDaGlsZChzZWxlY3QpOw0KICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uID0gInt7LndpemFyZC5lcGdTb3VyY2UuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJtM3UiOg0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBrZXksICIiKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LndpemFyZC5tM3UucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgiY2xhc3MiLCAid2l6YXJkIik7DQogICAgICAgICAgICAgICAgaW5wdXQuaWQgPSBrZXk7DQogICAgICAgICAgICAgICAgZG9jLmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbiA9ICJ7ey53aXphcmQubTN1LmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAieG1sdHYiOg0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBrZXksICIiKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LndpemFyZC54bWx0di5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJjbGFzcyIsICJ3aXphcmQiKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5pZCA9IGtleTsNCiAgICAgICAgICAgICAgICBkb2MuYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uID0gInt7LndpemFyZC54bWx0di5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICAgICAgY29uc29sZS5sb2coa2V5KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgfQ0KICAgICAgICB2YXIgcHJlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiUFJFIik7DQogICAgICAgIHByZS5pbm5lckhUTUwgPSBkZXNjcmlwdGlvbjsNCiAgICAgICAgZG9jLmFwcGVuZENoaWxkKHByZSk7DQogICAgICAgIGNvbnNvbGUubG9nKGhlYWRsaW5lLCBrZXkpOw0KICAgIH0NCn0NCmZ1bmN0aW9uIHJlYWR5Rm9yQ29uZmlndXJhdGlvbih3aXphcmQpIHsNCiAgICB2YXIgc2VydmVyID0gbmV3IFNlcnZlcigiZ2V0U2VydmVyQ29uZmlnIik7DQogICAgc2VydmVyLnJlcXVlc3QobmV3IE9iamVjdCgpKTsNCiAgICBzaG93RWxlbWVudCgibG9hZGluZyIsIGZhbHNlKTsNCiAgICBjb25maWd1cmF0aW9uV2l6YXJkW3dpemFyZF0uY3JlYXRlV2l6YXJkKCk7DQp9DQpmdW5jdGlvbiBzYXZlV2l6YXJkKCkgew0KICAgIHZhciBjbWQgPSAic2F2ZVdpemFyZCI7DQogICAgdmFyIGRpdiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb250ZW50Iik7DQogICAgdmFyIGNvbmZpZyA9IGRpdi5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCJ3aXphcmQiKTsNCiAgICB2YXIgd2l6YXJkID0gbmV3IE9iamVjdCgpOw0KICAgIGZvciAodmFyIGkgPSAwOyBpIDwgY29uZmlnLmxlbmd0aDsgaSsrKSB7DQogICAgICAgIHZhciBuYW1lOw0KICAgICAgICB2YXIgdmFsdWU7DQogICAgICAgIHN3aXRjaCAoY29uZmlnW2ldLnRhZ05hbWUpIHsNCiAgICAgICAgICAgIGNhc2UgIlNFTEVDVCI6DQogICAgICAgICAgICAgICAgbmFtZSA9IGNvbmZpZ1tpXS5uYW1lOw0KICAgICAgICAgICAgICAgIHZhbHVlID0gY29uZmlnW2ldLnZhbHVlOw0KICAgICAgICAgICAgICAgIC8vIElmIHRoZSB2YWx1ZSBpcyBhIG51bWJlciwgc3RvcmUgaXQgYXMgYSBudW1iZXINCiAgICAgICAgICAgICAgICBpZiAoaXNOYU4odmFsdWUpKSB7DQogICAgICAgICAgICAgICAgICAgIHdpemFyZFtuYW1lXSA9IHZhbHVlOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICAgICAgd2l6YXJkW25hbWVdID0gcGFyc2VJbnQodmFsdWUpOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgIklOUFVUIjoNCiAgICAgICAgICAgICAgICBzd2l0Y2ggKGNvbmZpZ1tpXS50eXBlKSB7DQogICAgICAgICAgICAgICAgICAgIGNhc2UgInRleHQiOg0KICAgICAgICAgICAgICAgICAgICAgICAgbmFtZSA9IGNvbmZpZ1tpXS5uYW1lOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSBjb25maWdbaV0udmFsdWU7DQogICAgICAgICAgICAgICAgICAgICAgICBpZiAodmFsdWUubGVuZ3RoID09IDApIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgbXNnID0gbmFtZS50b1VwcGVyQ2FzZSgpICsgIjogIiArICJ7ey5hbGVydC5taXNzaW5nSW5wdXR9fSI7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgYWxlcnQobXNnKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICB3aXphcmRbbmFtZV0gPSB2YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICAgICAgLy8gY29kZS4uLg0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICB9DQogICAgfQ0KICAgIHZhciBkYXRhID0gbmV3IE9iamVjdCgpOw0KICAgIGRhdGFbIndpemFyZCJdID0gd2l6YXJkOw0KICAgIHZhciBzZXJ2ZXIgPSBuZXcgU2VydmVyKGNtZCk7DQogICAgc2VydmVyLnJlcXVlc3QoZGF0YSk7DQogICAgY29uc29sZS5sb2coZGF0YSk7DQp9DQovLyBXaXphcmQNCnZhciBjb25maWd1cmF0aW9uV2l6YXJkID0gbmV3IEFycmF5KCk7DQpjb25maWd1cmF0aW9uV2l6YXJkLnB1c2gobmV3IFdpemFyZEl0ZW0oInR1bmVyIiwgInt7LndpemFyZC50dW5lci50aXRsZX19IikpOw0KY29uZmlndXJhdGlvbldpemFyZC5wdXNoKG5ldyBXaXphcmRJdGVtKCJlcGdTb3VyY2UiLCAie3sud2l6YXJkLmVwZ1NvdXJjZS50aXRsZX19IikpOw0KY29uZmlndXJhdGlvbldpemFyZC5wdXNoKG5ldyBXaXphcmRJdGVtKCJtM3UiLCAie3sud2l6YXJkLm0zdS50aXRsZX19IikpOw0KY29uZmlndXJhdGlvbldpemFyZC5wdXNoKG5ldyBXaXphcmRJdGVtKCJ4bWx0diIsICJ7ey53aXphcmQueG1sdHYudGl0bGV9fSIpKTsNCg==" webUI["html/js/logs_ts.js"] = "Y2xhc3MgTG9nIHsNCiAgICBjcmVhdGVMb2coZW50cnkpIHsNCiAgICAgICAgdmFyIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJQUkUiKTsNCiAgICAgICAgaWYgKGVudHJ5LmluZGV4T2YoIldBUk5JTkciKSAhPSAtMSkgew0KICAgICAgICAgICAgZWxlbWVudC5jbGFzc05hbWUgPSAid2FybmluZ01zZyI7DQogICAgICAgIH0NCiAgICAgICAgaWYgKGVudHJ5LmluZGV4T2YoIkVSUk9SIikgIT0gLTEpIHsNCiAgICAgICAgICAgIGVsZW1lbnQuY2xhc3NOYW1lID0gImVycm9yTXNnIjsNCiAgICAgICAgfQ0KICAgICAgICBpZiAoZW50cnkuaW5kZXhPZigiREVCVUciKSAhPSAtMSkgew0KICAgICAgICAgICAgZWxlbWVudC5jbGFzc05hbWUgPSAiZGVidWdNc2ciOw0KICAgICAgICB9DQogICAgICAgIGVsZW1lbnQuaW5uZXJIVE1MID0gZW50cnk7DQogICAgICAgIHJldHVybiBlbGVtZW50Ow0KICAgIH0NCn0NCmZ1bmN0aW9uIHNob3dMb2dzKGJvdHRvbSkgew0KICAgIHZhciBsb2cgPSBuZXcgTG9nKCk7DQogICAgdmFyIGxvZ3MgPSBTRVJWRVJbImxvZyJdWyJsb2ciXTsNCiAgICB2YXIgZGl2ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnRlbnRfbG9nIik7DQogICAgZGl2LmlubmVySFRNTCA9ICIiOw0KICAgIHZhciBrZXlzID0gZ2V0T3duT2JqUHJvcHMobG9ncyk7DQogICAga2V5cy5mb3JFYWNoKGxvZ0lEID0+IHsNCiAgICAgICAgdmFyIGVudHJ5ID0gbG9nLmNyZWF0ZUxvZyhsb2dzW2xvZ0lEXSk7DQogICAgICAgIGRpdi5hcHBlbmQoZW50cnkpOw0KICAgIH0pOw0KICAgIHNldFRpbWVvdXQoZnVuY3Rpb24gKCkgew0KICAgICAgICBpZiAoYm90dG9tID09IHRydWUpIHsNCiAgICAgICAgICAgIHZhciB3cmFwcGVyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImJveC13cmFwcGVyIik7DQogICAgICAgICAgICB3cmFwcGVyLnNjcm9sbFRvcCA9IHdyYXBwZXIuc2Nyb2xsSGVpZ2h0Ow0KICAgICAgICB9DQogICAgfSwgMTApOw0KfQ0KZnVuY3Rpb24gcmVzZXRMb2dzKCkgew0KICAgIHZhciBjbWQgPSAicmVzZXRMb2dzIjsNCiAgICB2YXIgZGF0YSA9IG5ldyBPYmplY3QoKTsNCiAgICB2YXIgc2VydmVyID0gbmV3IFNlcnZlcihjbWQpOw0KICAgIHNlcnZlci5yZXF1ZXN0KGRhdGEpOw0KfQ0K" - webUI["html/js/menu_ts.js"] = "Y2xhc3MgTWFpbk1lbnUgew0KICAgIGNvbnN0cnVjdG9yKCkgew0KICAgICAgICB0aGlzLkRvY3VtZW50SUQgPSAibWFpbi1tZW51IjsNCiAgICAgICAgdGhpcy5IVE1MVGFnID0gIkxJIjsNCiAgICAgICAgdGhpcy5JbWFnZVBhdGggPSAiaW1nLyI7DQogICAgfQ0KICAgIGNyZWF0ZUlNRyhzcmMpIHsNCiAgICAgICAgbGV0IGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJJTUciKTsNCiAgICAgICAgZWxlbWVudC5zZXRBdHRyaWJ1dGUoInNyYyIsIHRoaXMuSW1hZ2VQYXRoICsgc3JjKTsNCiAgICAgICAgcmV0dXJuIGVsZW1lbnQ7DQogICAgfQ0KICAgIGNyZWF0ZVZhbHVlKHZhbHVlKSB7DQogICAgICAgIGxldCBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiUCIpOw0KICAgICAgICBlbGVtZW50LmlubmVySFRNTCA9IHZhbHVlOw0KICAgICAgICByZXR1cm4gZWxlbWVudDsNCiAgICB9DQp9DQpjbGFzcyBNYWluTWVudUl0ZW0gZXh0ZW5kcyBNYWluTWVudSB7DQogICAgY29uc3RydWN0b3IobWVudUtleSwgdmFsdWUsIGltYWdlLCBoZWFkbGluZSkgew0KICAgICAgICBzdXBlcigpOw0KICAgICAgICB0aGlzLm1lbnVLZXkgPSBtZW51S2V5Ow0KICAgICAgICB0aGlzLnZhbHVlID0gdmFsdWU7DQogICAgICAgIHRoaXMuaW1nU3JjID0gaW1hZ2U7DQogICAgICAgIHRoaXMuaGVhZGxpbmUgPSBoZWFkbGluZTsNCiAgICB9DQogICAgY3JlYXRlSXRlbSgpIHsNCiAgICAgICAgbGV0IGl0ZW0gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJMSSIpOw0KICAgICAgICBpdGVtLnNldEF0dHJpYnV0ZSgib25jbGljayIsICJqYXZhc2NyaXB0OiBvcGVuVGhpc01lbnUodGhpcykiKTsNCiAgICAgICAgaXRlbS5zZXRBdHRyaWJ1dGUoImlkIiwgdGhpcy5pZCk7DQogICAgICAgIGxldCBpbWcgPSB0aGlzLmNyZWF0ZUlNRyh0aGlzLmltZ1NyYyk7DQogICAgICAgIGxldCB2YWx1ZSA9IHRoaXMuY3JlYXRlVmFsdWUodGhpcy52YWx1ZSk7DQogICAgICAgIGl0ZW0uYXBwZW5kQ2hpbGQoaW1nKTsNCiAgICAgICAgaXRlbS5hcHBlbmRDaGlsZCh2YWx1ZSk7DQogICAgICAgIGxldCBkb2MgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCh0aGlzLkRvY3VtZW50SUQpOw0KICAgICAgICBkb2MuYXBwZW5kQ2hpbGQoaXRlbSk7DQogICAgICAgIHN3aXRjaCAodGhpcy5tZW51S2V5KSB7DQogICAgICAgICAgICBjYXNlICJwbGF5bGlzdCI6DQogICAgICAgICAgICAgICAgdGhpcy50YWJsZUhlYWRlciA9IFsie3sucGxheWxpc3QudGFibGUucGxheWxpc3R9fSIsICJ7ey5wbGF5bGlzdC50YWJsZS50dW5lcn19IiwgInt7LnBsYXlsaXN0LnRhYmxlLmxhc3RVcGRhdGV9fSIsICJ7ey5wbGF5bGlzdC50YWJsZS5hdmFpbGFiaWxpdHl9fSAlIiwgInt7LnBsYXlsaXN0LnRhYmxlLnR5cGV9fSIsICJ7ey5wbGF5bGlzdC50YWJsZS5zdHJlYW1zfX0iLCAie3sucGxheWxpc3QudGFibGUuZ3JvdXBUaXRsZX19ICUiLCAie3sucGxheWxpc3QudGFibGUudHZnSUR9fSAlIiwgInt7LnBsYXlsaXN0LnRhYmxlLnVuaXF1ZUlEfX0gJSJdOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAieG1sdHYiOg0KICAgICAgICAgICAgICAgIHRoaXMudGFibGVIZWFkZXIgPSBbInt7LnhtbHR2LnRhYmxlLmd1aWRlfX0iLCAie3sueG1sdHYudGFibGUubGFzdFVwZGF0ZX19IiwgInt7LnhtbHR2LnRhYmxlLmF2YWlsYWJpbGl0eX19ICUiLCAie3sueG1sdHYudGFibGUuY2hhbm5lbHN9fSIsICJ7ey54bWx0di50YWJsZS5wcm9ncmFtc319Il07DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJmaWx0ZXIiOg0KICAgICAgICAgICAgICAgIHRoaXMudGFibGVIZWFkZXIgPSBbInt7LmZpbHRlci50YWJsZS5zdGFydGluZ0NoYW5uZWx9fSIsICJ7ey5maWx0ZXIudGFibGUubmFtZX19IiwgInt7LmZpbHRlci50YWJsZS50eXBlfX0iLCAie3suZmlsdGVyLnRhYmxlLmZpbHRlcn19Il07DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ1c2VycyI6DQogICAgICAgICAgICAgICAgdGhpcy50YWJsZUhlYWRlciA9IFsie3sudXNlcnMudGFibGUudXNlcm5hbWV9fSIsICJ7ey51c2Vycy50YWJsZS5wYXNzd29yZH19IiwgInt7LnVzZXJzLnRhYmxlLndlYn19IiwgInt7LnVzZXJzLnRhYmxlLnBtc319IiwgInt7LnVzZXJzLnRhYmxlLm0zdX19IiwgInt7LnVzZXJzLnRhYmxlLnhtbH19IiwgInt7LnVzZXJzLnRhYmxlLmFwaX19Il07DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJtYXBwaW5nIjoNCiAgICAgICAgICAgICAgICB0aGlzLnRhYmxlSGVhZGVyID0gWyJCVUxLIiwgInt7Lm1hcHBpbmcudGFibGUuY2hOb319IiwgInt7Lm1hcHBpbmcudGFibGUubG9nb319IiwgInt7Lm1hcHBpbmcudGFibGUuY2hhbm5lbE5hbWV9fSIsICJ7ey5tYXBwaW5nLnRhYmxlLnBsYXlsaXN0fX0iLCAie3subWFwcGluZy50YWJsZS5ncm91cFRpdGxlfX0iLCAie3subWFwcGluZy50YWJsZS54bWx0dkZpbGV9fSIsICJ7ey5tYXBwaW5nLnRhYmxlLnhtbHR2SUR9fSIsICJ7ey5tYXBwaW5nLnRhYmxlLnRpbWVzaGlmdH19Il07DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIH0NCiAgICAgICAgLy9jb25zb2xlLmxvZyh0aGlzLm1lbnVLZXksIHRoaXMudGFibGVIZWFkZXIpOw0KICAgIH0NCn0NCmNsYXNzIENvbnRlbnQgew0KICAgIGNvbnN0cnVjdG9yKCkgew0KICAgICAgICB0aGlzLkRvY3VtZW50SUQgPSAiY29udGVudCI7DQogICAgICAgIHRoaXMuVGFibGVJRCA9ICJjb250ZW50X3RhYmxlIjsNCiAgICAgICAgdGhpcy5oZWFkZXJDbGFzcyA9ICJjb250ZW50X3RhYmxlX2hlYWRlciI7DQogICAgICAgIHRoaXMuaW50ZXJhY3Rpb25JRCA9ICJjb250ZW50LWludGVyYWN0aW9uIjsNCiAgICB9DQogICAgY3JlYXRlSGVhZGxpbmUodmFsdWUpIHsNCiAgICAgICAgbGV0IGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJIMyIpOw0KICAgICAgICBlbGVtZW50LmlubmVySFRNTCA9IHZhbHVlOw0KICAgICAgICByZXR1cm4gZWxlbWVudDsNCiAgICB9DQogICAgY3JlYXRlSFIoKSB7DQogICAgICAgIHJldHVybiBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJIUiIpOw0KICAgIH0NCiAgICBjcmVhdGVJbnRlcmFjdGlvbigpIHsNCiAgICAgICAgbGV0IGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJESVYiKTsNCiAgICAgICAgZWxlbWVudC5zZXRBdHRyaWJ1dGUoImlkIiwgdGhpcy5pbnRlcmFjdGlvbklEKTsNCiAgICAgICAgcmV0dXJuIGVsZW1lbnQ7DQogICAgfQ0KICAgIGNyZWF0ZURJVigpIHsNCiAgICAgICAgbGV0IGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJESVYiKTsNCiAgICAgICAgZWxlbWVudC5pZCA9IHRoaXMuRGl2SUQ7DQogICAgICAgIHJldHVybiBlbGVtZW50Ow0KICAgIH0NCiAgICBjcmVhdGVUQUJMRSgpIHsNCiAgICAgICAgbGV0IGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJUQUJMRSIpOw0KICAgICAgICBlbGVtZW50LmlkID0gdGhpcy5UYWJsZUlEOw0KICAgICAgICByZXR1cm4gZWxlbWVudDsNCiAgICB9DQogICAgY3JlYXRlVGFibGVSb3coKSB7DQogICAgICAgIGxldCBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVFIiKTsNCiAgICAgICAgZWxlbWVudC5jbGFzc05hbWUgPSB0aGlzLmhlYWRlckNsYXNzOw0KICAgICAgICByZXR1cm4gZWxlbWVudDsNCiAgICB9DQogICAgY3JlYXRlVGFibGVDb250ZW50KG1lbnVLZXkpIHsNCiAgICAgICAgbGV0IGRhdGEgPSB7fTsNCiAgICAgICAgbGV0IHJvd3MgPSBbXTsNCiAgICAgICAgbGV0IGZpbGVUeXBlcyA9IFtdOw0KICAgICAgICBzd2l0Y2ggKG1lbnVLZXkpIHsNCiAgICAgICAgICAgIGNhc2UgInBsYXlsaXN0IjoNCiAgICAgICAgICAgICAgICBmaWxlVHlwZXMgPSBbIm0zdSIsICJoZGhyIl07DQogICAgICAgICAgICAgICAgZmlsZVR5cGVzLmZvckVhY2goZmlsZVR5cGUgPT4gew0KICAgICAgICAgICAgICAgICAgICBkYXRhID0gU0VSVkVSWyJzZXR0aW5ncyJdWyJmaWxlcyJdW2ZpbGVUeXBlXTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGtleXMgPSBnZXRPd25PYmpQcm9wcyhkYXRhKTsNCiAgICAgICAgICAgICAgICAgICAga2V5cy5mb3JFYWNoKGtleSA9PiB7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgdHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJUUiIpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuaWQgPSBrZXk7DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCInICsgZmlsZVR5cGUgKyAnIiwgdGhpcyknKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJuYW1lIl07DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgaWYgKFNFUlZFUlsic2V0dGluZ3MiXVsiYnVmZmVyIl0gIT0gIi0iKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsidHVuZXIiXTsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSAiLSI7DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsibGFzdC51cGRhdGUiXTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJwcm92aWRlci5hdmFpbGFiaWxpdHkiXTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJ0eXBlIl0udG9VcHBlckNhc2UoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJjb21wYXRpYmlsaXR5Il1bInN0cmVhbXMiXTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJjb21wYXRpYmlsaXR5Il1bImdyb3VwLnRpdGxlIl07DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsiY29tcGF0aWJpbGl0eSJdWyJ0dmcuaWQiXTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJjb21wYXRpYmlsaXR5Il1bInN0cmVhbS5pZCJdOw0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgcm93cy5wdXNoKHRyKTsNCiAgICAgICAgICAgICAgICAgICAgfSk7DQogICAgICAgICAgICAgICAgfSk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJmaWx0ZXIiOg0KICAgICAgICAgICAgICAgIGRlbGV0ZSBTRVJWRVJbInNldHRpbmdzIl1bImZpbHRlciJdWy0xXTsNCiAgICAgICAgICAgICAgICBkYXRhID0gU0VSVkVSWyJzZXR0aW5ncyJdWyJmaWx0ZXIiXTsNCiAgICAgICAgICAgICAgICB2YXIga2V5cyA9IGdldE93bk9ialByb3BzKGRhdGEpOw0KICAgICAgICAgICAgICAgIGtleXMuZm9yRWFjaChrZXkgPT4gew0KICAgICAgICAgICAgICAgICAgICB2YXIgdHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJUUiIpOw0KICAgICAgICAgICAgICAgICAgICB0ci5pZCA9IGtleTsNCiAgICAgICAgICAgICAgICAgICAgdHIuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgiJyArIGRhdGFba2V5XVsidHlwZSJdICsgJyIsIHRoaXMpJyk7DQogICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJzdGFydGluZ0NoYW5uZWwiXTsNCiAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsibmFtZSJdOw0KICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICBzd2l0Y2ggKGRhdGFba2V5XVsidHlwZSJdKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBjYXNlICJjdXN0b20tZmlsdGVyIjoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gInt7LmZpbHRlci5jdXN0b219fSI7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgICAgICAgICBjYXNlICJncm91cC10aXRsZSI6DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9ICJ7ey5maWx0ZXIuZ3JvdXB9fSI7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgICAgICAgICBkZWZhdWx0Og0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bImZpbHRlciJdOw0KICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgIHJvd3MucHVzaCh0cik7DQogICAgICAgICAgICAgICAgfSk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ4bWx0diI6DQogICAgICAgICAgICAgICAgZmlsZVR5cGVzID0gbmV3IEFycmF5KCJ4bWx0diIpOw0KICAgICAgICAgICAgICAgIGZpbGVUeXBlcy5mb3JFYWNoKGZpbGVUeXBlID0+IHsNCiAgICAgICAgICAgICAgICAgICAgZGF0YSA9IFNFUlZFUlsic2V0dGluZ3MiXVsiZmlsZXMiXVtmaWxlVHlwZV07DQogICAgICAgICAgICAgICAgICAgIHZhciBrZXlzID0gZ2V0T3duT2JqUHJvcHMoZGF0YSk7DQogICAgICAgICAgICAgICAgICAgIGtleXMuZm9yRWFjaChrZXkgPT4gew0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVFIiKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmlkID0ga2V5Ow0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgiJyArIGZpbGVUeXBlICsgJyIsIHRoaXMpJyk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsibmFtZSJdOw0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bImxhc3QudXBkYXRlIl07DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsicHJvdmlkZXIuYXZhaWxhYmlsaXR5Il07DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsiY29tcGF0aWJpbGl0eSJdWyJ4bWx0di5jaGFubmVscyJdOw0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bImNvbXBhdGliaWxpdHkiXVsieG1sdHYucHJvZ3JhbXMiXTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHJvd3MucHVzaCh0cik7DQogICAgICAgICAgICAgICAgICAgIH0pOw0KICAgICAgICAgICAgICAgIH0pOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAidXNlcnMiOg0KICAgICAgICAgICAgICAgIGZpbGVUeXBlcyA9IG5ldyBBcnJheSgidXNlcnMiKTsNCiAgICAgICAgICAgICAgICBmaWxlVHlwZXMuZm9yRWFjaChmaWxlVHlwZSA9PiB7DQogICAgICAgICAgICAgICAgICAgIGRhdGEgPSBTRVJWRVJbZmlsZVR5cGVdOw0KICAgICAgICAgICAgICAgICAgICB2YXIga2V5cyA9IGdldE93bk9ialByb3BzKGRhdGEpOw0KICAgICAgICAgICAgICAgICAgICBrZXlzLmZvckVhY2goa2V5ID0+IHsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciB0ciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlRSIik7DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5pZCA9IGtleTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoIicgKyBmaWxlVHlwZSArICciLCB0aGlzKScpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bImRhdGEiXVsidXNlcm5hbWUiXTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gIioqKioqKiI7DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGRhdGFba2V5XVsiZGF0YSJdWyJhdXRoZW50aWNhdGlvbi53ZWIiXSA9PSB0cnVlKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9ICLinJMiOw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9ICItIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgICAgICBpZiAoZGF0YVtrZXldWyJkYXRhIl1bImF1dGhlbnRpY2F0aW9uLnBtcyJdID09IHRydWUpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gIuKckyI7DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gIi0iOw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChkYXRhW2tleV1bImRhdGEiXVsiYXV0aGVudGljYXRpb24ubTN1Il0gPT0gdHJ1ZSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSAi4pyTIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSAiLSI7DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGRhdGFba2V5XVsiZGF0YSJdWyJhdXRoZW50aWNhdGlvbi54bWwiXSA9PSB0cnVlKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9ICLinJMiOw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9ICItIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgICAgICBpZiAoZGF0YVtrZXldWyJkYXRhIl1bImF1dGhlbnRpY2F0aW9uLmFwaSJdID09IHRydWUpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gIuKckyI7DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gIi0iOw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgcm93cy5wdXNoKHRyKTsNCiAgICAgICAgICAgICAgICAgICAgfSk7DQogICAgICAgICAgICAgICAgfSk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJtYXBwaW5nIjoNCiAgICAgICAgICAgICAgICBCVUxLX0VESVQgPSBmYWxzZTsNCiAgICAgICAgICAgICAgICBjcmVhdGVTZWFyY2hPYmooKTsNCiAgICAgICAgICAgICAgICBjaGVja1VuZG8oImVwZ01hcHBpbmciKTsNCiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZygiTUFQUElORyIpOw0KICAgICAgICAgICAgICAgIGRhdGEgPSBTRVJWRVJbInhlcGciXVsiZXBnTWFwcGluZyJdOw0KICAgICAgICAgICAgICAgIHZhciBrZXlzID0gZ2V0T3duT2JqUHJvcHMoZGF0YSk7DQogICAgICAgICAgICAgICAga2V5cy5mb3JFYWNoKGtleSA9PiB7DQogICAgICAgICAgICAgICAgICAgIHZhciB0ciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlRSIik7DQogICAgICAgICAgICAgICAgICAgIHRyLmlkID0ga2V5Ow0KICAgICAgICAgICAgICAgICAgICAvL3RyLnNldEF0dHJpYnV0ZSgnb25jb250ZXh0bWVudScsICdqYXZhc2NyaXB0OiByaWdodENsaWNrKHRoaXMpJykNCiAgICAgICAgICAgICAgICAgICAgc3dpdGNoIChkYXRhW2tleV1bIngtYWN0aXZlIl0pIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgdHJ1ZToNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ci5jbGFzc05hbWUgPSAiYWN0aXZlRVBHIjsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgZmFsc2U6DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgdHIuY2xhc3NOYW1lID0gIm5vdEFjdGl2ZUVQRyI7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgLy8gQnVsaw0KICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJCVUxLIjsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGZhbHNlOw0KICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgIC8vIENoYW5uZWwgbnVtYmVyDQogICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIklOUFVUQ0hBTk5FTCI7DQogICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bIngtY2hhbm5lbElEIl07DQogICAgICAgICAgICAgICAgICAgIC8vdGQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IGNoYW5nZUNoYW5uZWxOdW1iZXIoIicgKyBrZXkgKyAnIiwgdGhpcyknKQ0KICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgIC8vIExvZ28NCiAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiSU1HIjsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5pbWFnZVVSTCA9IGRhdGFba2V5XVsidHZnLWxvZ28iXTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHRkID0gY2VsbC5jcmVhdGVDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgIHRkLnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoIm1hcHBpbmciLCB0aGlzKScpOw0KICAgICAgICAgICAgICAgICAgICB0ZC5pZCA9IGtleTsNCiAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQodGQpOw0KICAgICAgICAgICAgICAgICAgICAvLyBDaGFubmVsIG5hbWUNCiAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2xhc3NOYW1lID0gZGF0YVtrZXldWyJ4LWNhdGVnb3J5Il07DQogICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bIngtbmFtZSJdOw0KICAgICAgICAgICAgICAgICAgICB2YXIgdGQgPSBjZWxsLmNyZWF0ZUNlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgdGQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgibWFwcGluZyIsIHRoaXMpJyk7DQogICAgICAgICAgICAgICAgICAgIHRkLmlkID0ga2V5Ow0KICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZCh0ZCk7DQogICAgICAgICAgICAgICAgICAgIC8vIFBsYXlsaXN0DQogICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAvL2NlbGwudmFsdWUgPSBkYXRhW2tleV1bIl9maWxlLm0zdS5uYW1lIl0gDQogICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBnZXRWYWx1ZUZyb21Qcm92aWRlckZpbGUoZGF0YVtrZXldWyJfZmlsZS5tM3UuaWQiXSwgIm0zdSIsICJuYW1lIik7DQogICAgICAgICAgICAgICAgICAgIHZhciB0ZCA9IGNlbGwuY3JlYXRlQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICB0ZC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJtYXBwaW5nIiwgdGhpcyknKTsNCiAgICAgICAgICAgICAgICAgICAgdGQuaWQgPSBrZXk7DQogICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKHRkKTsNCiAgICAgICAgICAgICAgICAgICAgLy8gR3JvdXAgKGdyb3VwLXRpdGxlKQ0KICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsieC1ncm91cC10aXRsZSJdOw0KICAgICAgICAgICAgICAgICAgICB2YXIgdGQgPSBjZWxsLmNyZWF0ZUNlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgdGQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgibWFwcGluZyIsIHRoaXMpJyk7DQogICAgICAgICAgICAgICAgICAgIHRkLmlkID0ga2V5Ow0KICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZCh0ZCk7DQogICAgICAgICAgICAgICAgICAgIC8vIFhNTFRWIGZpbGUNCiAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgIGlmIChkYXRhW2tleV1bIngteG1sdHYtZmlsZSJdICE9ICItIikgew0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGdldFZhbHVlRnJvbVByb3ZpZGVyRmlsZShkYXRhW2tleV1bIngteG1sdHYtZmlsZSJdLCAieG1sdHYiLCAibmFtZSIpOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsieC14bWx0di1maWxlIl07DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgdmFyIHRkID0gY2VsbC5jcmVhdGVDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgIHRkLnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoIm1hcHBpbmciLCB0aGlzKScpOw0KICAgICAgICAgICAgICAgICAgICB0ZC5pZCA9IGtleTsNCiAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQodGQpOw0KICAgICAgICAgICAgICAgICAgICAvLyBYTUxUViBDaGFubmVsDQogICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAvL3ZhciB2YWx1ZSA9IHN0ci5zdWJzdHJpbmcoMSwgNCk7DQogICAgICAgICAgICAgICAgICAgIHZhciB2YWx1ZSA9IGRhdGFba2V5XVsieC1tYXBwaW5nIl07DQogICAgICAgICAgICAgICAgICAgIGlmICh2YWx1ZS5sZW5ndGggPiAyMCkgew0KICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSBkYXRhW2tleV1bIngtbWFwcGluZyJdLnN1YnN0cmluZygwLCAyMCkgKyAiLi4uIjsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gdmFsdWU7DQogICAgICAgICAgICAgICAgICAgIHZhciB0ZCA9IGNlbGwuY3JlYXRlQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICB0ZC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJtYXBwaW5nIiwgdGhpcyknKTsNCiAgICAgICAgICAgICAgICAgICAgdGQuaWQgPSBrZXk7DQogICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKHRkKTsNCiAgICAgICAgICAgICAgICAgICAgLy8gVGltZVNoaWZ0DQogICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJ4LXRpbWVzaGlmdCJdOw0KICAgICAgICAgICAgICAgICAgICB2YXIgdGQgPSBjZWxsLmNyZWF0ZUNlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgdGQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgibWFwcGluZyIsIHRoaXMpJyk7DQogICAgICAgICAgICAgICAgICAgIHRkLmlkID0ga2V5Ow0KICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZCh0ZCk7DQogICAgICAgICAgICAgICAgICAgIHJvd3MucHVzaCh0cik7DQogICAgICAgICAgICAgICAgfSk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJzZXR0aW5ncyI6DQogICAgICAgICAgICAgICAgYWxlcnQoKTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICAgICAgY29uc29sZS5sb2coIlRhYmxlIGNvbnRlbnQgKG1lbnVLZXkpOiIsIG1lbnVLZXkpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICB9DQogICAgICAgIHJldHVybiByb3dzOw0KICAgIH0NCn0NCmNsYXNzIENlbGwgew0KICAgIGNyZWF0ZUNlbGwoKSB7DQogICAgICAgIGxldCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgIGlmICh0aGlzLmNoaWxkID09IHRydWUpIHsNCiAgICAgICAgICAgIHZhciBlbGVtZW50Ow0KICAgICAgICAgICAgc3dpdGNoICh0aGlzLmNoaWxkVHlwZSkgew0KICAgICAgICAgICAgICAgIGNhc2UgIlAiOg0KICAgICAgICAgICAgICAgICAgICBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCh0aGlzLmNoaWxkVHlwZSk7DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQuaW5uZXJIVE1MID0gdGhpcy52YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC5jbGFzc05hbWUgPSB0aGlzLmNsYXNzTmFtZTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAiSU5QVVQiOg0KICAgICAgICAgICAgICAgICAgICBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCh0aGlzLmNoaWxkVHlwZSk7DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQudmFsdWUgPSB0aGlzLnZhbHVlOw0KICAgICAgICAgICAgICAgICAgICBlbGVtZW50LnR5cGUgPSAidGV4dCI7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgIklOUFVUQ0hBTk5FTCI6DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJJTlBVVCIpOw0KICAgICAgICAgICAgICAgICAgICBlbGVtZW50LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2c2NyaXB0OiBjaGFuZ2VDaGFubmVsTnVtYmVyKHRoaXMpIik7DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQudmFsdWUgPSB0aGlzLnZhbHVlOw0KICAgICAgICAgICAgICAgICAgICBlbGVtZW50LnR5cGUgPSAidGV4dCI7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgIkJVTEsiOg0KICAgICAgICAgICAgICAgICAgICBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiSU5QVVQiKTsNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC5jaGVja2VkID0gdGhpcy52YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC50eXBlID0gImNoZWNrYm94IjsNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC5jbGFzc05hbWUgPSAiYnVsayBoaWRlQnVsayI7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgIkJVTEtfSEVBRCI6DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJJTlBVVCIpOw0KICAgICAgICAgICAgICAgICAgICBlbGVtZW50LmNoZWNrZWQgPSB0aGlzLnZhbHVlOw0KICAgICAgICAgICAgICAgICAgICBlbGVtZW50LnR5cGUgPSAiY2hlY2tib3giOw0KICAgICAgICAgICAgICAgICAgICBlbGVtZW50LmNsYXNzTmFtZSA9ICJidWxrIGhpZGVCdWxrIjsNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAiamF2YXNjcmlwdDogc2VsZWN0QWxsQ2hhbm5lbHMoKSIpOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBjYXNlICJJTUciOg0KICAgICAgICAgICAgICAgICAgICBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCh0aGlzLmNoaWxkVHlwZSk7DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQuc2V0QXR0cmlidXRlKCJzcmMiLCB0aGlzLmltYWdlVVJMKTsNCiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuaW1hZ2VVUkwgIT0gIiIpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGVsZW1lbnQuc2V0QXR0cmlidXRlKCJvbmVycm9yIiwgImphdmFzY3JpcHQ6IHRoaXMub25lcnJvcj1udWxsO3RoaXMuc3JjPScnIik7DQogICAgICAgICAgICAgICAgICAgICAgICAvL29uZXJyb3I9InRoaXMub25lcnJvcj1udWxsO3RoaXMuc3JjPSdtaXNzaW5nLmdpZic7Ig0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9DQogICAgICAgICAgICB0ZC5hcHBlbmRDaGlsZChlbGVtZW50KTsNCiAgICAgICAgfQ0KICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgIHRkLmlubmVySFRNTCA9IHRoaXMudmFsdWU7DQogICAgICAgIH0NCiAgICAgICAgaWYgKHRoaXMub25jbGljayA9PSB0cnVlKSB7DQogICAgICAgICAgICB0ZC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCB0aGlzLm9uY2xpY2tGdW5jdGlvbik7DQogICAgICAgICAgICB0ZC5jbGFzc05hbWUgPSAicG9pbnRlciI7DQogICAgICAgIH0NCiAgICAgICAgaWYgKHRoaXMudGRDbGFzc05hbWUgIT0gdW5kZWZpbmVkKSB7DQogICAgICAgICAgICB0ZC5jbGFzc05hbWUgPSB0aGlzLnRkQ2xhc3NOYW1lOw0KICAgICAgICB9DQogICAgICAgIHJldHVybiB0ZDsNCiAgICB9DQp9DQpjbGFzcyBTaG93Q29udGVudCBleHRlbmRzIENvbnRlbnQgew0KICAgIGNvbnN0cnVjdG9yKG1lbnVJRCkgew0KICAgICAgICBzdXBlcigpOw0KICAgICAgICB0aGlzLm1lbnVJRCA9IG1lbnVJRDsNCiAgICB9DQogICAgY3JlYXRlSW5wdXQodHlwZSwgbmFtZSwgdmFsdWUpIHsNCiAgICAgICAgbGV0IGlucHV0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiSU5QVVQiKTsNCiAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJ0eXBlIiwgdHlwZSk7DQogICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgibmFtZSIsIG5hbWUpOw0KICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInZhbHVlIiwgdmFsdWUpOw0KICAgICAgICByZXR1cm4gaW5wdXQ7DQogICAgfQ0KICAgIHNob3coKSB7DQogICAgICAgIENPTFVNTl9UT19TT1JUID0gLTE7DQogICAgICAgIC8vIERlbGV0ZSBvbGQgY29udGVudA0KICAgICAgICBsZXQgZG9jID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQodGhpcy5Eb2N1bWVudElEKTsNCiAgICAgICAgZG9jLmlubmVySFRNTCA9ICIiOw0KICAgICAgICBzaG93UHJldmlldyhmYWxzZSk7DQogICAgICAgIC8vIEhlYWRsaW5lDQogICAgICAgIGxldCBoZWFkbGluZSA9IG1lbnVJdGVtc1t0aGlzLm1lbnVJRF0uaGVhZGxpbmU7DQogICAgICAgIGxldCBtZW51S2V5ID0gbWVudUl0ZW1zW3RoaXMubWVudUlEXS5tZW51S2V5Ow0KICAgICAgICBsZXQgaCA9IHRoaXMuY3JlYXRlSGVhZGxpbmUoaGVhZGxpbmUpOw0KICAgICAgICBkb2MuYXBwZW5kQ2hpbGQoaCk7DQogICAgICAgIGxldCBociA9IHRoaXMuY3JlYXRlSFIoKTsNCiAgICAgICAgZG9jLmFwcGVuZENoaWxkKGhyKTsNCiAgICAgICAgLy8gSW50ZXJhY3Rpb24NCiAgICAgICAgbGV0IGRpdiA9IHRoaXMuY3JlYXRlSW50ZXJhY3Rpb24oKTsNCiAgICAgICAgZG9jLmFwcGVuZENoaWxkKGRpdik7DQogICAgICAgIGxldCBpbnRlcmFjdGlvbiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHRoaXMuaW50ZXJhY3Rpb25JRCk7DQogICAgICAgIHN3aXRjaCAobWVudUtleSkgew0KICAgICAgICAgICAgY2FzZSAicGxheWxpc3QiOg0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IHRoaXMuY3JlYXRlSW5wdXQoImJ1dHRvbiIsIG1lbnVLZXksICJ7ey5idXR0b24ubmV3fX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoImlkIiwgIi0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJwbGF5bGlzdCIpJyk7DQogICAgICAgICAgICAgICAgaW50ZXJhY3Rpb24uYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiZmlsdGVyIjoNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSB0aGlzLmNyZWF0ZUlucHV0KCJidXR0b24iLCBtZW51S2V5LCAie3suYnV0dG9uLm5ld319Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJpZCIsIC0xKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJmaWx0ZXIiLCB0aGlzKScpOw0KICAgICAgICAgICAgICAgIGludGVyYWN0aW9uLmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInhtbHR2IjoNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSB0aGlzLmNyZWF0ZUlucHV0KCJidXR0b24iLCBtZW51S2V5LCAie3suYnV0dG9uLm5ld319Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJpZCIsICJ4bWx0diIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoInhtbHR2IiknKTsNCiAgICAgICAgICAgICAgICBpbnRlcmFjdGlvbi5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ1c2VycyI6DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gdGhpcy5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgbWVudUtleSwgInt7LmJ1dHRvbi5uZXd9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgiaWQiLCAidXNlcnMiKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJ1c2VycyIpJyk7DQogICAgICAgICAgICAgICAgaW50ZXJhY3Rpb24uYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAibWFwcGluZyI6DQogICAgICAgICAgICAgICAgc2hvd0VsZW1lbnQoImxvYWRpbmciLCB0cnVlKTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSB0aGlzLmNyZWF0ZUlucHV0KCJidXR0b24iLCBtZW51S2V5LCAie3suYnV0dG9uLnNhdmV9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBzYXZlUG9wdXBEYXRhKCJtYXBwaW5nIiwgIiIsICIiKScpOw0KICAgICAgICAgICAgICAgIGludGVyYWN0aW9uLmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSB0aGlzLmNyZWF0ZUlucHV0KCJidXR0b24iLCBtZW51S2V5LCAie3suYnV0dG9uLmJ1bGtFZGl0fX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogYnVsa0VkaXQoKScpOw0KICAgICAgICAgICAgICAgIGludGVyYWN0aW9uLmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSB0aGlzLmNyZWF0ZUlucHV0KCJzZWFyY2giLCAic2VhcmNoIiwgIiIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgiaWQiLCAic2VhcmNoTWFwcGluZyIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3suYnV0dG9uLnNlYXJjaH19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuY2xhc3NOYW1lID0gInNlYXJjaCI7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICdqYXZhc2NyaXB0OiBzZWFyY2hJbk1hcHBpbmcoKScpOw0KICAgICAgICAgICAgICAgIGludGVyYWN0aW9uLmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInNldHRpbmdzIjoNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSB0aGlzLmNyZWF0ZUlucHV0KCJidXR0b24iLCBtZW51S2V5LCAie3suYnV0dG9uLnNhdmV9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBzYXZlU2V0dGluZ3MoKTsnKTsNCiAgICAgICAgICAgICAgICBpbnRlcmFjdGlvbi5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gdGhpcy5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgbWVudUtleSwgInt7LmJ1dHRvbi5iYWNrdXB9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBiYWNrdXAoKTsnKTsNCiAgICAgICAgICAgICAgICBpbnRlcmFjdGlvbi5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gdGhpcy5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgbWVudUtleSwgInt7LmJ1dHRvbi5yZXN0b3JlfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogcmVzdG9yZSgpOycpOw0KICAgICAgICAgICAgICAgIGludGVyYWN0aW9uLmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICB2YXIgd3JhcHBlciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIkRJViIpOw0KICAgICAgICAgICAgICAgIHdyYXBwZXIuc2V0QXR0cmlidXRlKCJpZCIsICJib3gtd3JhcHBlciIpOw0KICAgICAgICAgICAgICAgIGRvYy5hcHBlbmRDaGlsZCh3cmFwcGVyKTsNCiAgICAgICAgICAgICAgICB0aGlzLkRpdklEID0gImNvbnRlbnRfc2V0dGluZ3MiOw0KICAgICAgICAgICAgICAgIHZhciBzZXR0aW5ncyA9IHRoaXMuY3JlYXRlRElWKCk7DQogICAgICAgICAgICAgICAgd3JhcHBlci5hcHBlbmRDaGlsZChzZXR0aW5ncyk7DQogICAgICAgICAgICAgICAgc2hvd1NldHRpbmdzKCk7DQogICAgICAgICAgICAgICAgcmV0dXJuOw0KICAgICAgICAgICAgY2FzZSAibG9nIjoNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSB0aGlzLmNyZWF0ZUlucHV0KCJidXR0b24iLCBtZW51S2V5LCAie3suYnV0dG9uLnJlc2V0TG9nc319Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IHJlc2V0TG9ncygpOycpOw0KICAgICAgICAgICAgICAgIGludGVyYWN0aW9uLmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICB2YXIgd3JhcHBlciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIkRJViIpOw0KICAgICAgICAgICAgICAgIHdyYXBwZXIuc2V0QXR0cmlidXRlKCJpZCIsICJib3gtd3JhcHBlciIpOw0KICAgICAgICAgICAgICAgIGRvYy5hcHBlbmRDaGlsZCh3cmFwcGVyKTsNCiAgICAgICAgICAgICAgICB0aGlzLkRpdklEID0gImNvbnRlbnRfbG9nIjsNCiAgICAgICAgICAgICAgICB2YXIgbG9ncyA9IHRoaXMuY3JlYXRlRElWKCk7DQogICAgICAgICAgICAgICAgd3JhcHBlci5hcHBlbmRDaGlsZChsb2dzKTsNCiAgICAgICAgICAgICAgICBzaG93TG9ncyh0cnVlKTsNCiAgICAgICAgICAgICAgICByZXR1cm47DQogICAgICAgICAgICBjYXNlICJsb2dvdXQiOg0KICAgICAgICAgICAgICAgIGxvY2F0aW9uLnJlbG9hZCgpOw0KICAgICAgICAgICAgICAgIGRvY3VtZW50LmNvb2tpZSA9ICJUb2tlbj0gOyBleHBpcmVzID0gVGh1LCAwMSBKYW4gMTk3MCAwMDowMDowMCBHTVQiOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZygiU2hvdyBjb250ZW50IChtZW51S2V5KToiLCBtZW51S2V5KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgfQ0KICAgICAgICAvLyBDcmVhdGUgdGFibGUgKGlmIG5lZWRlZCkNCiAgICAgICAgdmFyIHRhYmxlSGVhZGVyID0gbWVudUl0ZW1zW3RoaXMubWVudUlEXS50YWJsZUhlYWRlcjsNCiAgICAgICAgaWYgKHRhYmxlSGVhZGVyLmxlbmd0aCA+IDApIHsNCiAgICAgICAgICAgIHZhciB3cmFwcGVyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiRElWIik7DQogICAgICAgICAgICBkb2MuYXBwZW5kQ2hpbGQod3JhcHBlcik7DQogICAgICAgICAgICB3cmFwcGVyLnNldEF0dHJpYnV0ZSgiaWQiLCAiYm94LXdyYXBwZXIiKTsNCiAgICAgICAgICAgIHZhciB0YWJsZSA9IHRoaXMuY3JlYXRlVEFCTEUoKTsNCiAgICAgICAgICAgIHdyYXBwZXIuYXBwZW5kQ2hpbGQodGFibGUpOw0KICAgICAgICAgICAgdmFyIGhlYWRlciA9IHRoaXMuY3JlYXRlVGFibGVSb3coKTsNCiAgICAgICAgICAgIHRhYmxlLmFwcGVuZENoaWxkKGhlYWRlcik7DQogICAgICAgICAgICAvLyBUYWJsZSBoZWFkZXINCiAgICAgICAgICAgIHRhYmxlSGVhZGVyLmZvckVhY2goZWxlbWVudCA9PiB7DQogICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBlbGVtZW50Ow0KICAgICAgICAgICAgICAgIGlmIChlbGVtZW50ID09ICJCVUxLIikgew0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJCVUxLX0hFQUQiOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZmFsc2U7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIGlmIChtZW51S2V5ID09ICJtYXBwaW5nIikgew0KICAgICAgICAgICAgICAgICAgICBpZiAoZWxlbWVudCA9PSAie3subWFwcGluZy50YWJsZS5jaE5vfX0iKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLm9uY2xpY2sgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5vbmNsaWNrRnVuY3Rpb24gPSAiamF2YXNjcmlwdDogc29ydFRhYmxlKDEpOyI7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnRkQ2xhc3NOYW1lID0gInNvcnRUaGlzIjsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBpZiAoZWxlbWVudCA9PSAie3subWFwcGluZy50YWJsZS5jaGFubmVsTmFtZX19Iikgew0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5vbmNsaWNrID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwub25jbGlja0Z1bmN0aW9uID0gImphdmFzY3JpcHQ6IHNvcnRUYWJsZSgzKTsiOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIGlmIChlbGVtZW50ID09ICJ7ey5tYXBwaW5nLnRhYmxlLnBsYXlsaXN0fX0iKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLm9uY2xpY2sgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5vbmNsaWNrRnVuY3Rpb24gPSAiamF2YXNjcmlwdDogc29ydFRhYmxlKDQpOyI7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgaWYgKGVsZW1lbnQgPT0gInt7Lm1hcHBpbmcudGFibGUuZ3JvdXBUaXRsZX19Iikgew0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5vbmNsaWNrID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwub25jbGlja0Z1bmN0aW9uID0gImphdmFzY3JpcHQ6IHNvcnRUYWJsZSg1KTsiOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIGlmIChlbGVtZW50ID09ICJ7ey5tYXBwaW5nLnRhYmxlLnRpbWVzaGlmdH19Iikgew0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5vbmNsaWNrID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwub25jbGlja0Z1bmN0aW9uID0gImphdmFzY3JpcHQ6IHNvcnRUYWJsZSg4KTsiOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIGlmIChtZW51S2V5ID09ICJmaWx0ZXIiKSB7DQogICAgICAgICAgICAgICAgICAgIGlmIChlbGVtZW50ID09ICJ7ey5maWx0ZXIudGFibGUuc3RhcnRpbmdDaGFubmVsfX0iKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLm9uY2xpY2sgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5vbmNsaWNrRnVuY3Rpb24gPSAiamF2YXNjcmlwdDogc29ydFRhYmxlKDApOyI7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnRkQ2xhc3NOYW1lID0gInNvcnRUaGlzIjsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBpZiAoZWxlbWVudCA9PSAie3suZmlsdGVyLnRhYmxlLm5hbWV9fSIpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwub25jbGljayA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLm9uY2xpY2tGdW5jdGlvbiA9ICJqYXZhc2NyaXB0OiBzb3J0VGFibGUoMSk7IjsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBpZiAoZWxlbWVudCA9PSAie3suZmlsdGVyLnRhYmxlLnR5cGV9fSIpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwub25jbGljayA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLm9uY2xpY2tGdW5jdGlvbiA9ICJqYXZhc2NyaXB0OiBzb3J0VGFibGUoMik7IjsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBpZiAoZWxlbWVudCA9PSAie3suZmlsdGVyLnRhYmxlLmZpbHRlcn19Iikgew0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5vbmNsaWNrID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwub25jbGlja0Z1bmN0aW9uID0gImphdmFzY3JpcHQ6IHNvcnRUYWJsZSgzKTsiOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIGhlYWRlci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICB9KTsNCiAgICAgICAgICAgIHRhYmxlLmFwcGVuZENoaWxkKGhlYWRlcik7DQogICAgICAgICAgICAvLyBDb250ZW50IG9mIHRoZSB0YWJsZQ0KICAgICAgICAgICAgdmFyIHJvd3MgPSB0aGlzLmNyZWF0ZVRhYmxlQ29udGVudChtZW51S2V5KTsNCiAgICAgICAgICAgIHJvd3MuZm9yRWFjaCh0ciA9PiB7DQogICAgICAgICAgICAgICAgdGFibGUuYXBwZW5kQ2hpbGQodHIpOw0KICAgICAgICAgICAgfSk7DQogICAgICAgIH0NCiAgICAgICAgc3dpdGNoIChtZW51S2V5KSB7DQogICAgICAgICAgICBjYXNlICJtYXBwaW5nIjoNCiAgICAgICAgICAgICAgICBzb3J0VGFibGUoMSk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJmaWx0ZXIiOg0KICAgICAgICAgICAgICAgIHNob3dQcmV2aWV3KHRydWUpOw0KICAgICAgICAgICAgICAgIHNvcnRUYWJsZSgwKTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICAgICAgQ09MVU1OX1RPX1NPUlQgPSAtMTsNCiAgICAgICAgICAgICAgICBzb3J0VGFibGUoMCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIH0NCiAgICAgICAgc2hvd0VsZW1lbnQoImxvYWRpbmciLCBmYWxzZSk7DQogICAgfQ0KfQ0KZnVuY3Rpb24gUGFnZVJlYWR5KCkgew0KICAgIGxldCBzZXJ2ZXIgPSBuZXcgU2VydmVyKCJnZXRTZXJ2ZXJDb25maWciKTsNCiAgICBzZXJ2ZXIucmVxdWVzdCh7fSk7DQogICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoInJlc2l6ZSIsIGZ1bmN0aW9uICgpIHsNCiAgICAgICAgY2FsY3VsYXRlV3JhcHBlckhlaWdodCgpOw0KICAgIH0sIHRydWUpOw0KICAgIHNldEludGVydmFsKGZ1bmN0aW9uICgpIHsNCiAgICAgICAgdXBkYXRlTG9nKCk7DQogICAgfSwgMTAwMDApOw0KICAgIHJldHVybjsNCn0NCmZ1bmN0aW9uIGNyZWF0ZUxheW91dCgpIHsNCiAgICAvLyBDbGllbnQgSW5mbw0KICAgIGxldCBvYmogPSBTRVJWRVJbImNsaWVudEluZm8iXTsNCiAgICBsZXQga2V5cyA9IGdldE93bk9ialByb3BzKG9iaik7DQogICAgZm9yICh2YXIgaSA9IDA7IGkgPCBrZXlzLmxlbmd0aDsgaSsrKSB7DQogICAgICAgIGlmIChkb2N1bWVudC5nZXRFbGVtZW50QnlJZChrZXlzW2ldKSkgew0KICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoa2V5c1tpXSkuaW5uZXJIVE1MID0gb2JqW2tleXNbaV1dOw0KICAgICAgICB9DQogICAgfQ0KICAgIGlmICghZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm1haW4tbWVudSIpKSB7DQogICAgICAgIHJldHVybjsNCiAgICB9DQogICAgLy8gQ3JlYXRlIG1lbnUNCiAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibWFpbi1tZW51IikuaW5uZXJIVE1MID0gIiI7DQogICAgZm9yIChsZXQgaSA9IDA7IGkgPCBtZW51SXRlbXMubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgbWVudUl0ZW1zW2ldLmlkID0gaTsNCiAgICAgICAgc3dpdGNoIChtZW51SXRlbXNbaV1bIm1lbnVLZXkiXSkgew0KICAgICAgICAgICAgY2FzZSAidXNlcnMiOg0KICAgICAgICAgICAgY2FzZSAibG9nb3V0IjoNCiAgICAgICAgICAgICAgICBpZiAoU0VSVkVSWyJzZXR0aW5ncyJdWyJhdXRoZW50aWNhdGlvbi53ZWIiXSA9PSB0cnVlKSB7DQogICAgICAgICAgICAgICAgICAgIG1lbnVJdGVtc1tpXS5jcmVhdGVJdGVtKCk7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAibWFwcGluZyI6DQogICAgICAgICAgICBjYXNlICJ4bWx0diI6DQogICAgICAgICAgICAgICAgaWYgKFNFUlZFUlsiY2xpZW50SW5mbyJdWyJlcGdTb3VyY2UiXSA9PSAiWEVQRyIpIHsNCiAgICAgICAgICAgICAgICAgICAgbWVudUl0ZW1zW2ldLmNyZWF0ZUl0ZW0oKTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBkZWZhdWx0Og0KICAgICAgICAgICAgICAgIG1lbnVJdGVtc1tpXS5jcmVhdGVJdGVtKCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIH0NCiAgICB9DQogICAgcmV0dXJuOw0KfQ0KZnVuY3Rpb24gb3BlblRoaXNNZW51KGVsZW1lbnQpIHsNCiAgICBsZXQgaWQgPSBlbGVtZW50LmlkOw0KICAgIGxldCBjb250ZW50ID0gbmV3IFNob3dDb250ZW50KGlkKTsNCiAgICBjb250ZW50LnNob3coKTsNCiAgICBjYWxjdWxhdGVXcmFwcGVySGVpZ2h0KCk7DQogICAgcmV0dXJuOw0KfQ0KY2xhc3MgUG9wdXBXaW5kb3cgew0KICAgIGNvbnN0cnVjdG9yKCkgew0KICAgICAgICB0aGlzLkRvY3VtZW50SUQgPSAicG9wdXAtY3VzdG9tIjsNCiAgICAgICAgdGhpcy5JbnRlcmFjdGlvbklEID0gImludGVyYWN0aW9uIjsNCiAgICAgICAgdGhpcy5kb2MgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCh0aGlzLkRvY3VtZW50SUQpOw0KICAgIH0NCiAgICBjcmVhdGVUaXRsZSh0aXRsZSkgew0KICAgICAgICBsZXQgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICB0ZC5jbGFzc05hbWUgPSAibGVmdCI7DQogICAgICAgIHRkLmlubmVySFRNTCA9IHRpdGxlICsgIjoiOw0KICAgICAgICByZXR1cm4gdGQ7DQogICAgfQ0KICAgIGNyZWF0ZUNvbnRlbnQoZWxlbWVudCkgew0KICAgICAgICBsZXQgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICB0ZC5hcHBlbmRDaGlsZChlbGVtZW50KTsNCiAgICAgICAgcmV0dXJuIHRkOw0KICAgIH0NCiAgICBjcmVhdGVJbnRlcmFjdGlvbigpIHsNCiAgICAgICAgbGV0IGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOw0KICAgICAgICBkaXYuc2V0QXR0cmlidXRlKCJpZCIsICJwb3B1cC1pbnRlcmFjdGlvbiIpOw0KICAgICAgICBkaXYuY2xhc3NOYW1lID0gImludGVyYWN0aW9uIjsNCiAgICAgICAgdGhpcy5kb2MuYXBwZW5kQ2hpbGQoZGl2KTsNCiAgICB9DQp9DQpjbGFzcyBQb3B1cENvbnRlbnQgZXh0ZW5kcyBQb3B1cFdpbmRvdyB7DQogICAgY29uc3RydWN0b3IoKSB7DQogICAgICAgIHN1cGVyKC4uLmFyZ3VtZW50cyk7DQogICAgICAgIHRoaXMudGFibGUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJUQUJMRSIpOw0KICAgIH0NCiAgICBjcmVhdGVIZWFkbGluZShoZWFkbGluZSkgew0KICAgICAgICB0aGlzLmRvYy5pbm5lckhUTUwgPSAiIjsNCiAgICAgICAgdmFyIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJIMyIpOw0KICAgICAgICBlbGVtZW50LmlubmVySFRNTCA9IGhlYWRsaW5lLnRvVXBwZXJDYXNlKCk7DQogICAgICAgIHRoaXMuZG9jLmFwcGVuZENoaWxkKGVsZW1lbnQpOw0KICAgICAgICAvLyBDcmVhdGUgdGFibGUNCiAgICAgICAgdGhpcy50YWJsZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlRBQkxFIik7DQogICAgICAgIHRoaXMuZG9jLmFwcGVuZENoaWxkKHRoaXMudGFibGUpOw0KICAgIH0NCiAgICBhcHBlbmRSb3codGl0bGUsIGVsZW1lbnQpIHsNCiAgICAgICAgbGV0IHRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVFIiKTsNCiAgICAgICAgLy8gVGl0bGUNCiAgICAgICAgaWYgKHRpdGxlLmxlbmd0aCAhPSAwKSB7DQogICAgICAgICAgICB0ci5hcHBlbmRDaGlsZCh0aGlzLmNyZWF0ZVRpdGxlKHRpdGxlKSk7DQogICAgICAgIH0NCiAgICAgICAgLy8gQ29udGVudA0KICAgICAgICB0ci5hcHBlbmRDaGlsZCh0aGlzLmNyZWF0ZUNvbnRlbnQoZWxlbWVudCkpOw0KICAgICAgICB0aGlzLnRhYmxlLmFwcGVuZENoaWxkKHRyKTsNCiAgICB9DQogICAgY3JlYXRlSW5wdXQodHlwZSwgbmFtZSwgdmFsdWUpIHsNCiAgICAgICAgbGV0IGlucHV0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiSU5QVVQiKTsNCiAgICAgICAgaWYgKHZhbHVlID09IHVuZGVmaW5lZCkgew0KICAgICAgICAgICAgdmFsdWUgPSAiIjsNCiAgICAgICAgfQ0KICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInR5cGUiLCB0eXBlKTsNCiAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJuYW1lIiwgbmFtZSk7DQogICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgidmFsdWUiLCB2YWx1ZSk7DQogICAgICAgIHJldHVybiBpbnB1dDsNCiAgICB9DQogICAgY3JlYXRlQ2hlY2tib3gobmFtZSkgew0KICAgICAgICBsZXQgaW5wdXQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJJTlBVVCIpOw0KICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInR5cGUiLCAiY2hlY2tib3giKTsNCiAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJuYW1lIiwgbmFtZSk7DQogICAgICAgIHJldHVybiBpbnB1dDsNCiAgICB9DQogICAgLy8gQ3JlYXRlcyBhIHNlbGVjdGlvbiBvZiBtdWx0aXBsZSBvcHRpb25zIHZhbHVlcyB3aXRoIHRleHQgZGVzY3JpcHRpb25zDQogICAgY3JlYXRlU2VsZWN0KHRleHQsIHZhbHVlcywgc2V0LCBkYktleSkgew0KICAgICAgICBsZXQgc2VsZWN0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiU0VMRUNUIik7DQogICAgICAgIHNlbGVjdC5zZXRBdHRyaWJ1dGUoIm5hbWUiLCBkYktleSk7DQogICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGV4dC5sZW5ndGg7IGkrKykgew0KICAgICAgICAgICAgbGV0IG9wdGlvbiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIk9QVElPTiIpOw0KICAgICAgICAgICAgb3B0aW9uLnNldEF0dHJpYnV0ZSgidmFsdWUiLCB2YWx1ZXNbaV0pOw0KICAgICAgICAgICAgb3B0aW9uLmlubmVyVGV4dCA9IHRleHRbaV07DQogICAgICAgICAgICBzZWxlY3QuYXBwZW5kQ2hpbGQob3B0aW9uKTsNCiAgICAgICAgfQ0KICAgICAgICBpZiAoc2V0ICE9ICIiKSB7DQogICAgICAgICAgICBzZWxlY3QudmFsdWUgPSBzZXQ7DQogICAgICAgIH0NCiAgICAgICAgaWYgKHNldCA9PSB1bmRlZmluZWQpIHsNCiAgICAgICAgICAgIHNlbGVjdC52YWx1ZSA9IHZhbHVlc1swXTsNCiAgICAgICAgfQ0KICAgICAgICByZXR1cm4gc2VsZWN0Ow0KICAgIH0NCiAgICBzZWxlY3RPcHRpb24oc2VsZWN0LCB2YWx1ZSkgew0KICAgICAgICAvL3NlbGVjdC5zZWxlY3RlZE9wdGlvbnMgPSB2YWx1ZQ0KICAgICAgICBsZXQgcyA9IHNlbGVjdDsNCiAgICAgICAgcy5vcHRpb25zW3Muc2VsZWN0ZWRJbmRleF0udmFsdWUgPSB2YWx1ZTsNCiAgICAgICAgcmV0dXJuIHNlbGVjdDsNCiAgICB9DQogICAgZGVzY3JpcHRpb24odmFsdWUpIHsNCiAgICAgICAgbGV0IHRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVFIiKTsNCiAgICAgICAgbGV0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgbGV0IHNwYW4gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJQUkUiKTsNCiAgICAgICAgc3Bhbi5pbm5lckhUTUwgPSB2YWx1ZTsNCiAgICAgICAgdHIuYXBwZW5kQ2hpbGQodGQpOw0KICAgICAgICB0ci5hcHBlbmRDaGlsZCh0aGlzLmNyZWF0ZUNvbnRlbnQoc3BhbikpOw0KICAgICAgICB0aGlzLnRhYmxlLmFwcGVuZENoaWxkKHRyKTsNCiAgICB9DQogICAgLy8gSW50ZXJhY3Rpb24NCiAgICBhZGRJbnRlcmFjdGlvbihlbGVtZW50KSB7DQogICAgICAgIGxldCBpbnRlcmFjdGlvbiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJwb3B1cC1pbnRlcmFjdGlvbiIpOw0KICAgICAgICBpbnRlcmFjdGlvbi5hcHBlbmRDaGlsZChlbGVtZW50KTsNCiAgICB9DQp9DQpmdW5jdGlvbiBvcGVuUG9wVXAoZGF0YVR5cGUsIGVsZW1lbnQpIHsNCiAgICBsZXQgZGF0YSA9IHt9Ow0KICAgIGxldCBpZDsNCiAgICBzd2l0Y2ggKGVsZW1lbnQpIHsNCiAgICAgICAgY2FzZSB1bmRlZmluZWQ6DQogICAgICAgICAgICBzd2l0Y2ggKGRhdGFUeXBlKSB7DQogICAgICAgICAgICAgICAgY2FzZSAiZ3JvdXAtdGl0bGUiOg0KICAgICAgICAgICAgICAgICAgICBpZiAoaWQgPT0gdW5kZWZpbmVkKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBpZCA9IC0xOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIGRhdGEgPSBnZXRMb2NhbERhdGEoImZpbHRlciIsIGlkKTsNCiAgICAgICAgICAgICAgICAgICAgZGF0YVsidHlwZSJdID0gImdyb3VwLXRpdGxlIjsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAiY3VzdG9tLWZpbHRlciI6DQogICAgICAgICAgICAgICAgICAgIGlmIChpZCA9PSB1bmRlZmluZWQpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGlkID0gLTE7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgZGF0YSA9IGdldExvY2FsRGF0YSgiZmlsdGVyIiwgaWQpOw0KICAgICAgICAgICAgICAgICAgICBkYXRhWyJ0eXBlIl0gPSAiY3VzdG9tLWZpbHRlciI7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICAgICAgICAgIGRhdGFbImlkLnByb3ZpZGVyIl0gPSAiLSI7DQogICAgICAgICAgICAgICAgICAgIGRhdGFbInR5cGUiXSA9IGRhdGFUeXBlOw0KICAgICAgICAgICAgICAgICAgICBpZCA9ICItIjsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgIGlkID0gZWxlbWVudC5pZDsNCiAgICAgICAgICAgIGRhdGEgPSBnZXRMb2NhbERhdGEoZGF0YVR5cGUsIGlkKTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgIH0NCiAgICBsZXQgY29udGVudCA9IG5ldyBQb3B1cENvbnRlbnQoKTsNCiAgICBzd2l0Y2ggKGRhdGFUeXBlKSB7DQogICAgICAgIGNhc2UgInBsYXlsaXN0IjoNCiAgICAgICAgICAgIGNvbnRlbnQuY3JlYXRlSGVhZGxpbmUoInt7LnBsYXlsaXN0LnBsYXlsaXN0VHlwZS50aXRsZX19Iik7DQogICAgICAgICAgICAvLyBUeXBlDQogICAgICAgICAgICB2YXIgdGV4dCA9IFsiTTNVIiwgIkhESG9tZVJ1biJdOw0KICAgICAgICAgICAgdmFyIHZhbHVlcyA9IFsiamF2YXNjcmlwdDogb3BlblBvcFVwKCdtM3UnKSIsICJqYXZhc2NyaXB0OiBvcGVuUG9wVXAoJ2hkaHInKSJdOw0KICAgICAgICAgICAgdmFyIHNlbGVjdCA9IGNvbnRlbnQuY3JlYXRlU2VsZWN0KHRleHQsIHZhbHVlcywgIiIsICJ0eXBlIik7DQogICAgICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJpZCIsICJ0eXBlIik7DQogICAgICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICdqYXZhc2NyaXB0OiBjaGFuZ2VCdXR0b25BY3Rpb24odGhpcywgIm5leHQiLCAib25jbGljayIpJyk7IC8vIGNoYW5nZUJ1dHRvbkFjdGlvbg0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnBsYXlsaXN0LnR5cGUudGl0bGV9fSIsIHNlbGVjdCk7DQogICAgICAgICAgICAvLyBJbnRlcmFjdGlvbg0KICAgICAgICAgICAgY29udGVudC5jcmVhdGVJbnRlcmFjdGlvbigpOw0KICAgICAgICAgICAgLy8gQWJvcnQNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJjYW5jZWwiLCAie3suYnV0dG9uLmNhbmNlbH19Iik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogc2hvd0VsZW1lbnQoInBvcHVwIiwgZmFsc2UpOycpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICAvLyBOZXh0DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAibmV4dCIsICJ7ey5idXR0b24ubmV4dH19Iik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJtM3UiKScpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJpZCIsICduZXh0Jyk7DQogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJtM3UiOg0KICAgICAgICAgICAgY29udGVudC5jcmVhdGVIZWFkbGluZShkYXRhVHlwZSk7DQogICAgICAgICAgICAvLyBOYW1lDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAibmFtZSI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3sucGxheWxpc3QubmFtZS5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sucGxheWxpc3QubmFtZS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgLy8gRGVzY3JpcHRpb24NCiAgICAgICAgICAgIHZhciBkYktleSA9ICJkZXNjcmlwdGlvbiI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3sucGxheWxpc3QuZGVzY3JpcHRpb24ucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnBsYXlsaXN0LmRlc2NyaXB0aW9uLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBVUkwNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJmaWxlLnNvdXJjZSI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3sucGxheWxpc3QuZmlsZU0zVS5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sucGxheWxpc3QuZmlsZU0zVS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgLy8gVHVuZXINCiAgICAgICAgICAgIGlmIChTRVJWRVJbInNldHRpbmdzIl1bImJ1ZmZlciJdICE9ICItIikgew0KICAgICAgICAgICAgICAgIHZhciB0ZXh0ID0gW107DQogICAgICAgICAgICAgICAgdmFyIHZhbHVlcyA9IFtdOw0KICAgICAgICAgICAgICAgIGZvciAodmFyIGkgPSAxOyBpIDw9IDEwMDsgaSsrKSB7DQogICAgICAgICAgICAgICAgICAgIHRleHQucHVzaChpLnRvU3RyaW5nKCkpOw0KICAgICAgICAgICAgICAgICAgICB2YWx1ZXMucHVzaChpLnRvU3RyaW5nKCkpOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB2YXIgZGJLZXkgPSAidHVuZXIiOw0KICAgICAgICAgICAgICAgIHZhciBzZWxlY3QgPSBjb250ZW50LmNyZWF0ZVNlbGVjdCh0ZXh0LCB2YWx1ZXMsIGRhdGFbZGJLZXldLCBkYktleSk7DQogICAgICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25mb2N1cyIsICJqYXZhc2NyaXB0OiByZXR1cm47Iik7DQogICAgICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnBsYXlsaXN0LnR1bmVyLnRpdGxlfX0iLCBzZWxlY3QpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgZWxzZSB7DQogICAgICAgICAgICAgICAgdmFyIGRiS2V5ID0gInR1bmVyIjsNCiAgICAgICAgICAgICAgICBpZiAoZGF0YVtkYktleV0gPT0gdW5kZWZpbmVkKSB7DQogICAgICAgICAgICAgICAgICAgIGRhdGFbZGJLZXldID0gMTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJyZWFkb25seSIsICJ0cnVlIik7DQogICAgICAgICAgICAgICAgaW5wdXQuY2xhc3NOYW1lID0gIm5vdEF2YWlsYWJsZSI7DQogICAgICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnBsYXlsaXN0LnR1bmVyLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBjb250ZW50LmRlc2NyaXB0aW9uKCJ7ey5wbGF5bGlzdC50dW5lci5kZXNjcmlwdGlvbn19Iik7DQogICAgICAgICAgICAvLyBJbnRlcmF0aW9uDQogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUludGVyYWN0aW9uKCk7DQogICAgICAgICAgICAvLyBEZWxldGUNCiAgICAgICAgICAgIGlmIChkYXRhWyJpZC5wcm92aWRlciJdICE9ICItIikgew0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJkZWxldGUiLCAie3suYnV0dG9uLmRlbGV0ZX19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuY2xhc3NOYW1lID0gImRlbGV0ZSI7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoIm0zdSIsICInICsgaWQgKyAnIiwgdHJ1ZSwgMCknKTsNCiAgICAgICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJiYWNrIiwgInt7LmJ1dHRvbi5iYWNrfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJwbGF5bGlzdCIpJyk7DQogICAgICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICAvLyBBYm9ydA0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImNhbmNlbCIsICJ7ey5idXR0b24uY2FuY2VsfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBzaG93RWxlbWVudCgicG9wdXAiLCBmYWxzZSk7Jyk7DQogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIC8vIFVwZGF0ZQ0KICAgICAgICAgICAgaWYgKGRhdGFbImlkLnByb3ZpZGVyIl0gIT0gIi0iKSB7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgInVwZGF0ZSIsICJ7ey5idXR0b24udXBkYXRlfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogc2F2ZVBvcHVwRGF0YSgibTN1IiwgIicgKyBpZCArICciLCBmYWxzZSwgMSknKTsNCiAgICAgICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIC8vIFNhdmUNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJzYXZlIiwgInt7LmJ1dHRvbi5zYXZlfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBzYXZlUG9wdXBEYXRhKCJtM3UiLCAiJyArIGlkICsgJyIsIGZhbHNlLCAwKScpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSAiaGRociI6DQogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUhlYWRsaW5lKGRhdGFUeXBlKTsNCiAgICAgICAgICAgIC8vIE5hbWUNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJuYW1lIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5wbGF5bGlzdC5uYW1lLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5wbGF5bGlzdC5uYW1lLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBEZXNjcmlwdGlvbg0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gImRlc2NyaXB0aW9uIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5wbGF5bGlzdC5kZXNjcmlwdGlvbi5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sucGxheWxpc3QuZGVzY3JpcHRpb24ucGxhY2Vob2xkZXJ9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIFVSTA0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gImZpbGUuc291cmNlIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5wbGF5bGlzdC5maWxlSERIUi5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sucGxheWxpc3QuZmlsZUhESFIudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIFR1bmVyDQogICAgICAgICAgICBpZiAoU0VSVkVSWyJzZXR0aW5ncyJdWyJidWZmZXIiXSAhPSAiLSIpIHsNCiAgICAgICAgICAgICAgICB2YXIgdGV4dCA9IFtdOw0KICAgICAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBbXTsNCiAgICAgICAgICAgICAgICBmb3IgKHZhciBpID0gMTsgaSA8PSAxMDA7IGkrKykgew0KICAgICAgICAgICAgICAgICAgICB0ZXh0LnB1c2goaS50b1N0cmluZygpKTsNCiAgICAgICAgICAgICAgICAgICAgdmFsdWVzLnB1c2goaS50b1N0cmluZygpKTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgdmFyIGRiS2V5ID0gInR1bmVyIjsNCiAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCBkYXRhW2RiS2V5XSwgZGJLZXkpOw0KICAgICAgICAgICAgICAgIHNlbGVjdC5zZXRBdHRyaWJ1dGUoIm9uZm9jdXMiLCAiamF2YXNjcmlwdDogcmV0dXJuOyIpOw0KICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5wbGF5bGlzdC50dW5lci50aXRsZX19Iiwgc2VsZWN0KTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgICAgIHZhciBkYktleSA9ICJ0dW5lciI7DQogICAgICAgICAgICAgICAgaWYgKGRhdGFbZGJLZXldID09IHVuZGVmaW5lZCkgew0KICAgICAgICAgICAgICAgICAgICBkYXRhW2RiS2V5XSA9IDE7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicmVhZG9ubHkiLCAidHJ1ZSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LmNsYXNzTmFtZSA9ICJub3RBdmFpbGFibGUiOw0KICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5wbGF5bGlzdC50dW5lci50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgY29udGVudC5kZXNjcmlwdGlvbigie3sucGxheWxpc3QudHVuZXIuZGVzY3JpcHRpb259fSIpOw0KICAgICAgICAgICAgLy8gSW50ZXJhY3Rpb24NCiAgICAgICAgICAgIGNvbnRlbnQuY3JlYXRlSW50ZXJhY3Rpb24oKTsNCiAgICAgICAgICAgIC8vIERlbGV0ZQ0KICAgICAgICAgICAgaWYgKGRhdGFbImlkLnByb3ZpZGVyIl0gIT0gIi0iKSB7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImRlbGV0ZSIsICJ7ey5idXR0b24uZGVsZXRlfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogc2F2ZVBvcHVwRGF0YSgiaGRociIsICInICsgaWQgKyAnIiwgdHJ1ZSwgMCknKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5jbGFzc05hbWUgPSAiZGVsZXRlIjsNCiAgICAgICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJiYWNrIiwgInt7LmJ1dHRvbi5iYWNrfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJwbGF5bGlzdCIpJyk7DQogICAgICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICAvLyBBYm9ydA0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImNhbmNlbCIsICJ7ey5idXR0b24uY2FuY2VsfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBzaG93RWxlbWVudCgicG9wdXAiLCBmYWxzZSk7Jyk7DQogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIC8vIFVwZGF0ZQ0KICAgICAgICAgICAgaWYgKGRhdGFbImlkLnByb3ZpZGVyIl0gIT0gIi0iKSB7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgInVwZGF0ZSIsICJ7ey5idXR0b24udXBkYXRlfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogc2F2ZVBvcHVwRGF0YSgiaGRociIsICInICsgaWQgKyAnIiwgZmFsc2UsIDEpJyk7DQogICAgICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICAvLyBTYXZlDQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAic2F2ZSIsICJ7ey5idXR0b24uc2F2ZX19Iik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogc2F2ZVBvcHVwRGF0YSgiaGRociIsICInICsgaWQgKyAnIiwgZmFsc2UsIDApJyk7DQogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJmaWx0ZXIiOg0KICAgICAgICAgICAgY29udGVudC5jcmVhdGVIZWFkbGluZShkYXRhVHlwZSk7DQogICAgICAgICAgICAvLyBUeXBlDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAidHlwZSI7DQogICAgICAgICAgICB2YXIgdGV4dCA9IFsiTTNVOiAiICsgInt7LmZpbHRlci50eXBlLmdyb3VwVGl0bGV9fSIsICJ4VGVWZTogIiArICJ7ey5maWx0ZXIudHlwZS5jdXN0b21GaWx0ZXJ9fSJdOw0KICAgICAgICAgICAgdmFyIHZhbHVlcyA9IFsiamF2YXNjcmlwdDogb3BlblBvcFVwKCdncm91cC10aXRsZScpIiwgImphdmFzY3JpcHQ6IG9wZW5Qb3BVcCgnY3VzdG9tLWZpbHRlcicpIl07DQogICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCAiamF2YXNjcmlwdDogb3BlblBvcFVwKCdncm91cC10aXRsZScpIiwgZGJLZXkpOw0KICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgiaWQiLCBpZCk7DQogICAgICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICdqYXZhc2NyaXB0OiBjaGFuZ2VCdXR0b25BY3Rpb24odGhpcywgIm5leHQiLCAib25jbGljayIpOycpOyAvLyBjaGFuZ2VCdXR0b25BY3Rpb24NCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5maWx0ZXIudHlwZS50aXRsZX19Iiwgc2VsZWN0KTsNCiAgICAgICAgICAgIC8vIEludGVyYWN0aW9uDQogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUludGVyYWN0aW9uKCk7DQogICAgICAgICAgICAvLyBBYm9ydA0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImNhbmNlbCIsICJ7ey5idXR0b24uY2FuY2VsfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBzaG93RWxlbWVudCgicG9wdXAiLCBmYWxzZSk7Jyk7DQogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIC8vIE5leHQNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJuZXh0IiwgInt7LmJ1dHRvbi5uZXh0fX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoImdyb3VwLXRpdGxlIiknKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgiaWQiLCAnbmV4dCcpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSAiY3VzdG9tLWZpbHRlciI6DQogICAgICAgIGNhc2UgImdyb3VwLXRpdGxlIjoNCiAgICAgICAgICAgIHN3aXRjaCAoZGF0YVR5cGUpIHsNCiAgICAgICAgICAgICAgICBjYXNlICJjdXN0b20tZmlsdGVyIjoNCiAgICAgICAgICAgICAgICAgICAgY29udGVudC5jcmVhdGVIZWFkbGluZSgie3suZmlsdGVyLmN1c3RvbX19IiArICIgRmlsdGVyIik7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgImdyb3VwLXRpdGxlIjoNCiAgICAgICAgICAgICAgICAgICAgY29udGVudC5jcmVhdGVIZWFkbGluZSgie3suZmlsdGVyLmdyb3VwfX0iICsgIiBGaWx0ZXIiKTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICB9DQogICAgICAgICAgICAvLyBOYW1lICAgICAgDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAibmFtZSI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3suZmlsdGVyLm5hbWUucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LmZpbHRlci5uYW1lLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBEZXNjcmlwdGlvbg0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gImRlc2NyaXB0aW9uIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5maWx0ZXIuZGVzY3JpcHRpb24ucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LmZpbHRlci5kZXNjcmlwdGlvbi50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgLy8gVHlwZQ0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gInR5cGUiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiaGlkZGVuIiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCIiLCBpbnB1dCk7DQogICAgICAgICAgICB2YXIgZmlsdGVyVHlwZSA9IGRhdGFbZGJLZXldOw0KICAgICAgICAgICAgc3dpdGNoIChmaWx0ZXJUeXBlKSB7DQogICAgICAgICAgICAgICAgY2FzZSAiY3VzdG9tLWZpbHRlciI6DQogICAgICAgICAgICAgICAgICAgIC8vIENhc2Ugc2Vuc2l0aXZlDQogICAgICAgICAgICAgICAgICAgIHZhciBkYktleSA9ICJjYXNlU2Vuc2l0aXZlIjsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChkYktleSk7DQogICAgICAgICAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhW2RiS2V5XTsNCiAgICAgICAgICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LmZpbHRlci5jYXNlU2Vuc2l0aXZlLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAgICAgICAgIC8vIEZpbHRlciBSdWxlIChDdXN0b20pDQogICAgICAgICAgICAgICAgICAgIHZhciBkYktleSA9ICJmaWx0ZXIiOw0KICAgICAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5maWx0ZXIuZmlsdGVyUnVsZS5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5maWx0ZXIuZmlsdGVyUnVsZS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBjYXNlICJncm91cC10aXRsZSI6DQogICAgICAgICAgICAgICAgICAgIC8vYWxlcnQoZGJLZXkgKyAiICIgKyBmaWx0ZXJUeXBlKQ0KICAgICAgICAgICAgICAgICAgICAvLyBGaWx0ZXIgYmFzZWQgb24gdGhlIGdyb3VwcyBpbiB0aGUgTTNVDQogICAgICAgICAgICAgICAgICAgIHZhciBkYktleSA9ICJmaWx0ZXIiOw0KICAgICAgICAgICAgICAgICAgICB2YXIgZ3JvdXBzTTNVID0gZ2V0TG9jYWxEYXRhKCJtM3VHcm91cHMiLCAiIik7DQogICAgICAgICAgICAgICAgICAgIHZhciB0ZXh0ID0gZ3JvdXBzTTNVWyJ0ZXh0Il07DQogICAgICAgICAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBncm91cHNNM1VbInZhbHVlIl07DQogICAgICAgICAgICAgICAgICAgIHZhciBzZWxlY3QgPSBjb250ZW50LmNyZWF0ZVNlbGVjdCh0ZXh0LCB2YWx1ZXMsIGRhdGFbZGJLZXldLCBkYktleSk7DQogICAgICAgICAgICAgICAgICAgIHNlbGVjdC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5maWx0ZXIuZmlsdGVyR3JvdXAudGl0bGV9fSIsIHNlbGVjdCk7DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuZGVzY3JpcHRpb24oInt7LmZpbHRlci5maWx0ZXJHcm91cC5kZXNjcmlwdGlvbn19Iik7DQogICAgICAgICAgICAgICAgICAgIC8vIENhc2Ugc2Vuc2V0aXZlDQogICAgICAgICAgICAgICAgICAgIHZhciBkYktleSA9ICJjYXNlU2Vuc2l0aXZlIjsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChkYktleSk7DQogICAgICAgICAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhW2RiS2V5XTsNCiAgICAgICAgICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LmZpbHRlci5jYXNlU2Vuc2l0aXZlLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAgICAgICAgIHZhciBkYktleSA9ICJpbmNsdWRlIjsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3suZmlsdGVyLmluY2x1ZGUucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3suZmlsdGVyLmluY2x1ZGUudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgICAgICAgICAgY29udGVudC5kZXNjcmlwdGlvbigie3suZmlsdGVyLmluY2x1ZGUuZGVzY3JpcHRpb259fSIpOw0KICAgICAgICAgICAgICAgICAgICB2YXIgZGJLZXkgPSAiZXhjbHVkZSI7DQogICAgICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LmZpbHRlci5leGNsdWRlLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LmZpbHRlci5leGNsdWRlLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuZGVzY3JpcHRpb24oInt7LmZpbHRlci5leGNsdWRlLmRlc2NyaXB0aW9ufX0iKTsNCiAgICAgICAgICAgICAgICAgICAgLy8gUHJlc2VydmUgTTNVIFBsYXlsaXN0IENoYW5uZWwgTWFwcGluZw0KICAgICAgICAgICAgICAgICAgICB2YXIgZGJLZXkgPSAicHJlc2VydmVNYXBwaW5nIjsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChkYktleSk7DQogICAgICAgICAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhW2RiS2V5XTsNCiAgICAgICAgICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LmZpbHRlci5wcmVzZXJ2ZU1hcHBpbmcudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgICAgICAgICAgLy8gU3RhcnRpbmcgQ2hhbm5lbCBOdW1iZXIgTWFwcGluZw0KICAgICAgICAgICAgICAgICAgICB2YXIgZGJLZXkgPSAic3RhcnRpbmdDaGFubmVsIjsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3suZmlsdGVyLnN0YXJ0aW5nQ2hhbm5lbC5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5maWx0ZXIuc3RhcnRpbmdDaGFubmVsLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAgICAgICAgIC8vIEZpbGwgTWlzc2luZyBFUEcgRGF0YQ0KICAgICAgICAgICAgICAgICAgICAvLyBUaGUgZm9sbG93aW5nIGNvZGUgb25seSB3b3JrcyB3aGVuIHhUZVZlIER1bW15IGFscmVhZHkgZXhpc3RzDQogICAgICAgICAgICAgICAgICAgIC8vIHZhciBkYktleTpzdHJpbmcgPSAiZGVmYXVsdE1pc3NpbmdFUEciDQogICAgICAgICAgICAgICAgICAgIC8vIHZhciB4bWx0djpYTUxUVkZpbGUgPSBuZXcgWE1MVFZGaWxlKCkNCiAgICAgICAgICAgICAgICAgICAgLy8gdmFyIHNlbGVjdCA9IHhtbHR2LmdldFByb2dyYW1zKCJ4VGVWZSBEdW1teSIsIGRhdGFbZGJLZXldKQ0KICAgICAgICAgICAgICAgICAgICAvLyBzZWxlY3Quc2V0QXR0cmlidXRlKCJuYW1lIiwgZGJLZXkpDQogICAgICAgICAgICAgICAgICAgIC8vIHNlbGVjdC5zZXRBdHRyaWJ1dGUoImlkIiwgInBvcHVwLW1pc3NpbmctZXBnIikNCiAgICAgICAgICAgICAgICAgICAgLy8gVGhlIHdvcmthcm91bmQgaXMgY3VycmVudGx5IHRvIGhhcmQgY29kZSB0aGUgeFRlVmUgRHVtbXkgZGF0YQ0KICAgICAgICAgICAgICAgICAgICB2YXIgZGJLZXkgPSAiZGVmYXVsdE1pc3NpbmdFUEciOw0KICAgICAgICAgICAgICAgICAgICB2YXIgbGlzdE9wdGlvbnMgPSB7ICJ0ZXh0IjogWyItIiwgIjMwIE1pbnV0ZXMgKDMwX01pbnV0ZXMpIiwgIjYwIE1pbnV0ZXMgKDYwX01pbnV0ZXMpIiwgIjkwIE1pbnV0ZXMgKDkwX01pbnV0ZXMpIiwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAiMTIwIE1pbnV0ZXMgKDEyMF9NaW51dGVzKSIsICIxODAgTWludXRlcyAoMzBfTWludXRlcykiLCAiMjQwIE1pbnV0ZXMgKDMwX01pbnV0ZXMpIiwgIjM2MCBNaW51dGVzICgzMF9NaW51dGVzKSJdLA0KICAgICAgICAgICAgICAgICAgICAgICAgInZhbHVlIjogWyItIiwgIjMwX01pbnV0ZXMiLCAiNjBfTWludXRlcyIsICI5MF9NaW51dGVzIiwgIjEyMF9NaW51dGVzIiwgIjE4MF9NaW51dGVzIiwgIjI0MF9NaW51dGVzIiwgIjM2MF9NaW51dGVzIixdIH07DQogICAgICAgICAgICAgICAgICAgIHZhciB0ZXh0ID0gbGlzdE9wdGlvbnNbInRleHQiXTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHZhbHVlcyA9IGxpc3RPcHRpb25zWyJ2YWx1ZSJdOw0KICAgICAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCBkYXRhW2RiS2V5XSwgZGJLZXkpOw0KICAgICAgICAgICAgICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3suZmlsdGVyLmRlZmF1bHRNaXNzaW5nRVBHLnRpdGxlfX0iLCBzZWxlY3QpOw0KICAgICAgICAgICAgICAgICAgICBjb250ZW50LmRlc2NyaXB0aW9uKCJ7ey5maWx0ZXIuZGVmYXVsdE1pc3NpbmdFUEcuZGVzY3JpcHRpb259fSIpOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBkZWZhdWx0Og0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIC8vIEludGVyYWN0aW9uDQogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUludGVyYWN0aW9uKCk7DQogICAgICAgICAgICAvLyBEZWxldGUNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJkZWxldGUiLCAie3suYnV0dG9uLmRlbGV0ZX19Iik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogc2F2ZVBvcHVwRGF0YSgiZmlsdGVyIiwgIicgKyBpZCArICciLCB0cnVlLCAwKScpOw0KICAgICAgICAgICAgaW5wdXQuY2xhc3NOYW1lID0gImRlbGV0ZSI7DQogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIC8vIEFib3J0DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAiY2FuY2VsIiwgInt7LmJ1dHRvbi5jYW5jZWx9fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IHNob3dFbGVtZW50KCJwb3B1cCIsIGZhbHNlKTsnKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgLy8gU2F2ZQ0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgInNhdmUiLCAie3suYnV0dG9uLnNhdmV9fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoImZpbHRlciIsICInICsgaWQgKyAnIiwgZmFsc2UsIDApJyk7DQogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJ4bWx0diI6DQogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUhlYWRsaW5lKGRhdGFUeXBlKTsNCiAgICAgICAgICAgIC8vIE5hbWUNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJuYW1lIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey54bWx0di5uYW1lLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey54bWx0di5uYW1lLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBEZXNjcmlwdGlvbg0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gImRlc2NyaXB0aW9uIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey54bWx0di5kZXNjcmlwdGlvbi5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sueG1sdHYuZGVzY3JpcHRpb24udGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIFVSTA0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gImZpbGUuc291cmNlIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey54bWx0di5maWxlWE1MVFYucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnhtbHR2LmZpbGVYTUxUVi50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgLy8gSW50ZXJhY3Rpb24NCiAgICAgICAgICAgIGNvbnRlbnQuY3JlYXRlSW50ZXJhY3Rpb24oKTsNCiAgICAgICAgICAgIC8vIERlbGV0ZQ0KICAgICAgICAgICAgaWYgKGRhdGFbImlkLnByb3ZpZGVyIl0gIT0gIi0iKSB7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImRlbGV0ZSIsICJ7ey5idXR0b24uZGVsZXRlfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogc2F2ZVBvcHVwRGF0YSgieG1sdHYiLCAiJyArIGlkICsgJyIsIHRydWUsIDApJyk7DQogICAgICAgICAgICAgICAgaW5wdXQuY2xhc3NOYW1lID0gImRlbGV0ZSI7DQogICAgICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICAvLyBBYm9ydA0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImNhbmNlbCIsICJ7ey5idXR0b24uY2FuY2VsfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBzaG93RWxlbWVudCgicG9wdXAiLCBmYWxzZSk7Jyk7DQogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIC8vIFVwZGF0ZQ0KICAgICAgICAgICAgaWYgKGRhdGFbImlkLnByb3ZpZGVyIl0gIT0gIi0iKSB7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgInVwZGF0ZSIsICJ7ey5idXR0b24udXBkYXRlfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogc2F2ZVBvcHVwRGF0YSgieG1sdHYiLCAiJyArIGlkICsgJyIsIGZhbHNlLCAxKScpOw0KICAgICAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgLy8gU2F2ZQ0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgInNhdmUiLCAie3suYnV0dG9uLnNhdmV9fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoInhtbHR2IiwgIicgKyBpZCArICciLCBmYWxzZSwgMCknKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGNhc2UgInVzZXJzIjoNCiAgICAgICAgICAgIGNvbnRlbnQuY3JlYXRlSGVhZGxpbmUoInt7Lm1haW5NZW51Lml0ZW0udXNlcnN9fSIpOw0KICAgICAgICAgICAgLy8gVXNlciBuYW1lDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAidXNlcm5hbWUiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnVzZXJzLnVzZXJuYW1lLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey51c2Vycy51c2VybmFtZS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgLy8gTmV3IFBhcnNzd29yZA0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gInBhc3N3b3JkIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInBhc3N3b3JkIiwgZGJLZXksICIiKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3sudXNlcnMucGFzc3dvcmQucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnVzZXJzLnBhc3N3b3JkLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBDb25maXJtYXRpb24NCiAgICAgICAgICAgIHZhciBkYktleSA9ICJjb25maXJtIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInBhc3N3b3JkIiwgZGJLZXksICIiKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3sudXNlcnMuY29uZmlybS5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sudXNlcnMuY29uZmlybS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgLy8gQXV0aGVudGljYXRpb24gV0VCDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAiYXV0aGVudGljYXRpb24ud2ViIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goZGJLZXkpOw0KICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGFbZGJLZXldOw0KICAgICAgICAgICAgaWYgKGRhdGFbImRlZmF1bHRVc2VyIl0gPT0gdHJ1ZSkgew0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICJqYXZhc2NyaXB0OiByZXR1cm4gZmFsc2UiKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey51c2Vycy53ZWIudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIEF1dGhlbnRpY2F0aW9uIFBNUw0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gImF1dGhlbnRpY2F0aW9uLnBtcyI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KGRiS2V5KTsNCiAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhW2RiS2V5XTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey51c2Vycy5wbXMudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIEF1dGhlbnRpY2F0aW9uIE0zVQ0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gImF1dGhlbnRpY2F0aW9uLm0zdSI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KGRiS2V5KTsNCiAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhW2RiS2V5XTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey51c2Vycy5tM3UudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIEF1dGhlbnRpY2F0aW9uIFhNTA0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gImF1dGhlbnRpY2F0aW9uLnhtbCI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KGRiS2V5KTsNCiAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhW2RiS2V5XTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey51c2Vycy54bWwudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIEF1dGhlbnRpY2F0aW9uIEFQSQ0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gImF1dGhlbnRpY2F0aW9uLmFwaSI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KGRiS2V5KTsNCiAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhW2RiS2V5XTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey51c2Vycy5hcGkudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIEludGVyYWN0aW9uDQogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUludGVyYWN0aW9uKCk7DQogICAgICAgICAgICAvLyBEZWxldGUNCiAgICAgICAgICAgIGlmIChkYXRhWyJkZWZhdWx0VXNlciJdICE9IHRydWUgJiYgaWQgIT0gIi0iKSB7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImRlbGV0ZSIsICJ7ey5idXR0b24uZGVsZXRlfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5jbGFzc05hbWUgPSAiZGVsZXRlIjsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogc2F2ZVBvcHVwRGF0YSgiJyArIGRhdGFUeXBlICsgJyIsICInICsgaWQgKyAnIiwgdHJ1ZSwgMCknKTsNCiAgICAgICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIC8vIEFib3J0DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAiY2FuY2VsIiwgInt7LmJ1dHRvbi5jYW5jZWx9fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IHNob3dFbGVtZW50KCJwb3B1cCIsIGZhbHNlKTsnKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgLy8gU2F2ZQ0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgInNhdmUiLCAie3suYnV0dG9uLnNhdmV9fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoIicgKyBkYXRhVHlwZSArICciLCAiJyArIGlkICsgJyIsICJmYWxzZSIpOycpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSAibWFwcGluZyI6DQogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUhlYWRsaW5lKCJ7ey5tYWluTWVudS5pdGVtLm1hcHBpbmd9fSIpOw0KICAgICAgICAgICAgLy8gQWN0aXZlDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAieC1hY3RpdmUiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChkYktleSk7DQogICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YVtkYktleV07DQogICAgICAgICAgICBpbnB1dC5pZCA9ICJhY3RpdmUiOw0KICAgICAgICAgICAgLy9pbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIikNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdG9nZ2xlQ2hhbm5lbFN0YXR1cygnIiArIGlkICsgIicsIHRoaXMpIik7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3subWFwcGluZy5hY3RpdmUudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIENoYW5uZWwgbmFtZQ0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gIngtbmFtZSI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgIGlmIChCVUxLX0VESVQgPT0gdHJ1ZSkgew0KICAgICAgICAgICAgICAgIGlucHV0LnN0eWxlLmJvcmRlciA9ICJzb2xpZCAxcHggcmVkIjsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInJlYWRvbmx5IiwgInRydWUiKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5tYXBwaW5nLmNoYW5uZWxOYW1lLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICBjb250ZW50LmRlc2NyaXB0aW9uKGRhdGFbIm5hbWUiXSk7DQogICAgICAgICAgICAvLyBEZXNjcmlwdGlvbg0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gIngtZGVzY3JpcHRpb24iOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7Lm1hcHBpbmcuZGVzY3JpcHRpb24ucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7Lm1hcHBpbmcuZGVzY3JpcHRpb24udGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIFVwZGF0ZSB0aGUgY2hhbm5lbCBuYW1lDQogICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgiX3V1aWQua2V5IikpIHsNCiAgICAgICAgICAgICAgICBpZiAoZGF0YVsiX3V1aWQua2V5Il0gIT0gIiIpIHsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGRiS2V5ID0gIngtdXBkYXRlLWNoYW5uZWwtbmFtZSI7DQogICAgICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goZGJLZXkpOw0KICAgICAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhW2RiS2V5XTsNCiAgICAgICAgICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7Lm1hcHBpbmcudXBkYXRlQ2hhbm5lbE5hbWUudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9DQogICAgICAgICAgICAvLyBMb2dvIFVSTCAoQ2hhbm5lbCkgDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAidHZnLWxvZ28iOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoImlkIiwgImNoYW5uZWwtaWNvbiIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7Lm1hcHBpbmcuY2hhbm5lbExvZ28udGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIENoYW5uZWwgbG9nbyB1cGRhdGUNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJ4LXVwZGF0ZS1jaGFubmVsLWljb24iOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChkYktleSk7DQogICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YVtkYktleV07DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoImlkIiwgInVwZGF0ZS1pY29uIik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnOyBjaGFuZ2VDaGFubmVsTG9nbygnIiArIGlkICsgIicpOyIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7Lm1hcHBpbmcudXBkYXRlQ2hhbm5lbExvZ28udGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIEV4cGFuZCBFUEcgY2F0ZWdvcnkNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJ4LWNhdGVnb3J5IjsNCiAgICAgICAgICAgIHZhciB0ZXh0ID0gWyItIiwgIktpZHMgKEVtYnkgb25seSkiLCAiTmV3cyIsICJNb3ZpZSIsICJTZXJpZXMiLCAiU3BvcnRzIl07DQogICAgICAgICAgICB2YXIgdmFsdWVzID0gWyIiLCAiS2lkcyIsICJOZXdzIiwgIk1vdmllIiwgIlNlcmllcyIsICJTcG9ydHMiXTsNCiAgICAgICAgICAgIHZhciBzZWxlY3QgPSBjb250ZW50LmNyZWF0ZVNlbGVjdCh0ZXh0LCB2YWx1ZXMsIGRhdGFbZGJLZXldLCBkYktleSk7DQogICAgICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7Lm1hcHBpbmcuZXBnQ2F0ZWdvcnkudGl0bGV9fSIsIHNlbGVjdCk7DQogICAgICAgICAgICAvLyBNM1UgZ3JvdXAgdGl0bGUNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJ4LWdyb3VwLXRpdGxlIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgaW5wdXQuZGF0YXNldC5vbGRWYWx1ZSA9IGRhdGFbZGJLZXldOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7Lm1hcHBpbmcubTN1R3JvdXBUaXRsZS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgaWYgKGRhdGFbImdyb3VwLXRpdGxlIl0gIT0gdW5kZWZpbmVkKSB7DQogICAgICAgICAgICAgICAgY29udGVudC5kZXNjcmlwdGlvbihkYXRhWyJncm91cC10aXRsZSJdKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGlmIChkYXRhWyJ4LXVwZGF0ZS1jaGFubmVsLWdyb3VwIl0gPT0gdHJ1ZSkgew0KICAgICAgICAgICAgICAgIGlucHV0LmRpc2FibGVkID0gdHJ1ZTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIC8vIFVwZGF0ZSBjaGFubmVsIGdyb3VwIGNoZWNrYm94DQogICAgICAgICAgICB2YXIgZGJLZXkgPSAieC11cGRhdGUtY2hhbm5lbC1ncm91cCI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KGRiS2V5KTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdG9nZ2xlR3JvdXBVcGRhdGVDYignIiArIGlkICsgIicsIHRoaXMpOyIpOw0KICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGFbZGJLZXldOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7Lm1hcHBpbmcudXBkYXRlQ2hhbm5lbEdyb3VwLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICBjb250ZW50LmRlc2NyaXB0aW9uKCJ7ey5tYXBwaW5nLnVwZGF0ZUNoYW5uZWxHcm91cC5kZXNjcmlwdGlvbn19Iik7DQogICAgICAgICAgICAvLyBYTUxUViBmaWxlDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAieC14bWx0di1maWxlIjsNCiAgICAgICAgICAgIHZhciB4bWxGaWxlID0gZGF0YVtkYktleV07DQogICAgICAgICAgICB2YXIgeG1sdHYgPSBuZXcgWE1MVFZGaWxlKCk7DQogICAgICAgICAgICB2YXIgc2VsZWN0ID0geG1sdHYuZ2V0RmlsZXMoZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgibmFtZSIsIGRiS2V5KTsNCiAgICAgICAgICAgIHNlbGVjdC5zZXRBdHRyaWJ1dGUoImlkIiwgInBvcHVwLXhtbHR2Iik7DQogICAgICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsIGBqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJzsgc2V0WG1sdHZDaGFubmVsKCcke2lkfScsIHRoaXMpO2ApOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7Lm1hcHBpbmcueG1sdHZGaWxlLnRpdGxlfX0iLCBzZWxlY3QpOw0KICAgICAgICAgICAgLy8gWE1MVFYgTWFwcGluZw0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gJ3gtbWFwcGluZyc7DQogICAgICAgICAgICB2YXIgeG1sdHYgPSBuZXcgWE1MVFZGaWxlKCk7DQogICAgICAgICAgICBjb25zdCB4TWFwcGluZyA9IGRhdGFbZGJLZXldOw0KICAgICAgICAgICAgY29uc3QgeG1sVHZJZFNlbGVjdCA9IHhtbHR2LmdldFByb2dyYW1zKHhtbEZpbGUsIHhNYXBwaW5nKTsNCiAgICAgICAgICAgIHhtbFR2SWRTZWxlY3Quc2V0QXR0cmlidXRlKCduYW1lJywgZGJLZXkpOw0KICAgICAgICAgICAgeG1sVHZJZFNlbGVjdC5zZXRBdHRyaWJ1dGUoJ2lkJywgJ3BvcHVwLW1hcHBpbmcnKTsNCiAgICAgICAgICAgIHhtbFR2SWRTZWxlY3Quc2V0QXR0cmlidXRlKCdvbmNoYW5nZScsIGBqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJzsgY2hlY2tYbWx0dkNoYW5uZWwoJyR7aWR9JywgdGhpcywgJyR7eG1sRmlsZX0nKTtgKTsNCiAgICAgICAgICAgIHNvcnRTZWxlY3QoeG1sVHZJZFNlbGVjdCk7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygne3subWFwcGluZy54bWx0dkNoYW5uZWwudGl0bGV9fScsIHhtbFR2SWRTZWxlY3QpOw0KICAgICAgICAgICAgLy8gVGltZXNoaWZ0DQogICAgICAgICAgICB2YXIgZGJLZXkgPSAieC10aW1lc2hpZnQiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7Lm1hcHBpbmcudGltZXNoaWZ0LnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgiaWQiLCAidGltZXNoaWZ0Iik7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3subWFwcGluZy50aW1lc2hpZnQudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIEludGVyYWN0aW9uDQogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUludGVyYWN0aW9uKCk7DQogICAgICAgICAgICAvLyBVcGxvYWQgbG9nbw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImNhbmNlbCIsICJ7ey5idXR0b24udXBsb2FkTG9nb319Iik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogdXBsb2FkTG9nbygpOycpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICAvLyBBYm9ydA0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImNhbmNlbCIsICJ7ey5idXR0b24uY2FuY2VsfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBzaG93RWxlbWVudCgicG9wdXAiLCBmYWxzZSk7Jyk7DQogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIC8vIEZpbmlzaGVkDQogICAgICAgICAgICB2YXIgaWRzID0gW107DQogICAgICAgICAgICBpZHMgPSBnZXRBbGxTZWxlY3RlZENoYW5uZWxzKCk7DQogICAgICAgICAgICBpZiAoaWRzLmxlbmd0aCA9PSAwKSB7DQogICAgICAgICAgICAgICAgaWRzLnB1c2goaWQpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgInNhdmUiLCAie3suYnV0dG9uLmRvbmV9fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IGRvbmVQb3B1cERhdGEoIicgKyBkYXRhVHlwZSArICciLCAiJyArIGlkcyArICciLCAiZmFsc2UiKTsnKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICBicmVhazsNCiAgICB9DQogICAgc2hvd1BvcFVwRWxlbWVudCgncG9wdXAtY3VzdG9tJyk7DQp9DQpjbGFzcyBYTUxUVkZpbGUgew0KICAgIGdldEZpbGVzKHNldCkgew0KICAgICAgICBsZXQgZmlsZUlEcyA9IGdldE93bk9ialByb3BzKFNFUlZFUlsieGVwZyJdWyJ4bWx0dk1hcCJdKTsNCiAgICAgICAgbGV0IHZhbHVlcyA9IG5ldyBBcnJheSgiLSIpOw0KICAgICAgICBsZXQgdGV4dCA9IG5ldyBBcnJheSgiLSIpOw0KICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGZpbGVJRHMubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgICAgIGlmIChmaWxlSURzW2ldICE9ICJ4VGVWZSBEdW1teSIpIHsNCiAgICAgICAgICAgICAgICB2YWx1ZXMucHVzaChnZXRWYWx1ZUZyb21Qcm92aWRlckZpbGUoZmlsZUlEc1tpXSwgInhtbHR2IiwgImZpbGUueHRldmUiKSk7DQogICAgICAgICAgICAgICAgdGV4dC5wdXNoKGdldFZhbHVlRnJvbVByb3ZpZGVyRmlsZShmaWxlSURzW2ldLCAieG1sdHYiLCAibmFtZSIpKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgICAgIHZhbHVlcy5wdXNoKGZpbGVJRHNbaV0pOw0KICAgICAgICAgICAgICAgIHRleHQucHVzaChmaWxlSURzW2ldKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KICAgICAgICBsZXQgc2VsZWN0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiU0VMRUNUIik7DQogICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGV4dC5sZW5ndGg7IGkrKykgew0KICAgICAgICAgICAgdmFyIG9wdGlvbiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIk9QVElPTiIpOw0KICAgICAgICAgICAgb3B0aW9uLnNldEF0dHJpYnV0ZSgidmFsdWUiLCB2YWx1ZXNbaV0pOw0KICAgICAgICAgICAgb3B0aW9uLmlubmVyVGV4dCA9IHRleHRbaV07DQogICAgICAgICAgICBzZWxlY3QuYXBwZW5kQ2hpbGQob3B0aW9uKTsNCiAgICAgICAgfQ0KICAgICAgICBpZiAoc2V0ICE9ICIiKSB7DQogICAgICAgICAgICBzZWxlY3QudmFsdWUgPSBzZXQ7DQogICAgICAgIH0NCiAgICAgICAgcmV0dXJuIHNlbGVjdDsNCiAgICB9DQogICAgZ2V0UHJvZ3JhbXMoeG1sRmlsZSwgeE1hcHBpbmcpIHsNCiAgICAgICAgY29uc3QgdmFsdWVzID0gZ2V0T3duT2JqUHJvcHMoU0VSVkVSWyd4ZXBnJ11bJ3htbHR2TWFwJ11beG1sRmlsZV0pOw0KICAgICAgICBjb25zdCB0ZXh0ID0gW107DQogICAgICAgIGxldCBmcmllbmRseU5hbWU7DQogICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdmFsdWVzLmxlbmd0aDsgaSsrKSB7DQogICAgICAgICAgICBpZiAoU0VSVkVSWyd4ZXBnJ11bJ3htbHR2TWFwJ11beG1sRmlsZV1bdmFsdWVzW2ldXS5oYXNPd25Qcm9wZXJ0eSgnZnJpZW5kbHktbmFtZScpID09IHRydWUpIHsNCiAgICAgICAgICAgICAgICBmcmllbmRseU5hbWUgPSBTRVJWRVJbJ3hlcGcnXVsneG1sdHZNYXAnXVt4bWxGaWxlXVt2YWx1ZXNbaV1dWydmcmllbmRseS1uYW1lJ107DQogICAgICAgICAgICB9DQogICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICBmcmllbmRseU5hbWUgPSAnLSc7DQogICAgICAgICAgICB9DQogICAgICAgICAgICB0ZXh0W2ldID0gYCR7ZnJpZW5kbHlOYW1lfSAoJHt2YWx1ZXNbaV19KWA7DQogICAgICAgIH0NCiAgICAgICAgdGV4dC51bnNoaWZ0KCctJyk7DQogICAgICAgIHZhbHVlcy51bnNoaWZ0KCctJyk7DQogICAgICAgIGNvbnN0IHNlbGVjdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NlbGVjdCcpOw0KICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRleHQubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgICAgIGNvbnN0IG9wdGlvbiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ29wdGlvbicpOw0KICAgICAgICAgICAgb3B0aW9uLnNldEF0dHJpYnV0ZSgndmFsdWUnLCB2YWx1ZXNbaV0pOw0KICAgICAgICAgICAgb3B0aW9uLmlubmVyVGV4dCA9IHRleHRbaV07DQogICAgICAgICAgICBzZWxlY3QuYXBwZW5kQ2hpbGQob3B0aW9uKTsNCiAgICAgICAgfQ0KICAgICAgICBzZWxlY3QudmFsdWUgPSAoeE1hcHBpbmcgPT0gJycpID8gJy0nIDogeE1hcHBpbmc7DQogICAgICAgIHJldHVybiBzZWxlY3Q7DQogICAgfQ0KfQ0KZnVuY3Rpb24gZ2V0VmFsdWVGcm9tUHJvdmlkZXJGaWxlKGZpbGUsIGZpbGVUeXBlLCBrZXkpIHsNCiAgICBpZiAoZmlsZSA9PSAieFRlVmUgRHVtbXkiKSB7DQogICAgICAgIHJldHVybiBmaWxlOw0KICAgIH0NCiAgICBsZXQgZmlsZUlEOw0KICAgIGxldCBpbmRpY2F0b3IgPSBmaWxlLmNoYXJBdCgwKTsNCiAgICBzd2l0Y2ggKGluZGljYXRvcikgew0KICAgICAgICBjYXNlICJNIjoNCiAgICAgICAgICAgIGZpbGVUeXBlID0gIm0zdSI7DQogICAgICAgICAgICBmaWxlSUQgPSBmaWxlOw0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGNhc2UgIkgiOg0KICAgICAgICAgICAgZmlsZVR5cGUgPSAiaGRociI7DQogICAgICAgICAgICBmaWxlSUQgPSBmaWxlOw0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGNhc2UgIlgiOg0KICAgICAgICAgICAgZmlsZVR5cGUgPSAieG1sdHYiOw0KICAgICAgICAgICAgZmlsZUlEID0gZmlsZS5zdWJzdHJpbmcoMCwgZmlsZS5sYXN0SW5kZXhPZignLicpKTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgIH0NCiAgICBpZiAoU0VSVkVSWyJzZXR0aW5ncyJdWyJmaWxlcyJdW2ZpbGVUeXBlXS5oYXNPd25Qcm9wZXJ0eShmaWxlSUQpID09IHRydWUpIHsNCiAgICAgICAgdmFyIGRhdGEgPSBTRVJWRVJbInNldHRpbmdzIl1bImZpbGVzIl1bZmlsZVR5cGVdW2ZpbGVJRF07DQogICAgICAgIHJldHVybiBkYXRhW2tleV07DQogICAgfQ0KICAgIHJldHVybjsNCn0NCmZ1bmN0aW9uIHNldFhtbHR2Q2hhbm5lbChlcGdNYXBwaW5nSWQsIG9sZFNlbGVjdCkgew0KICAgIGxldCB4bWx0diA9IG5ldyBYTUxUVkZpbGUoKTsNCiAgICBsZXQgeG1sRmlsZSA9IG9sZFNlbGVjdC52YWx1ZTsNCiAgICBsZXQgdHZnSWQgPSBTRVJWRVJbJ3hlcGcnXVsnZXBnTWFwcGluZyddW2VwZ01hcHBpbmdJZF1bJ3R2Zy1pZCddOw0KICAgIGxldCB0ZCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdwb3B1cC1tYXBwaW5nJykucGFyZW50RWxlbWVudDsNCiAgICB0ZC5pbm5lckhUTUwgPSAnJzsNCiAgICBjb25zdCBuZXdTZWxlY3QgPSB4bWx0di5nZXRQcm9ncmFtcyhvbGRTZWxlY3QudmFsdWUsIHR2Z0lkKTsNCiAgICBuZXdTZWxlY3Quc2V0QXR0cmlidXRlKCduYW1lJywgJ3gtbWFwcGluZycpOw0KICAgIG5ld1NlbGVjdC5zZXRBdHRyaWJ1dGUoJ2lkJywgJ3BvcHVwLW1hcHBpbmcnKTsNCiAgICBuZXdTZWxlY3Quc2V0QXR0cmlidXRlKCdvbmNoYW5nZScsIGBqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJzsgY2hlY2tYbWx0dkNoYW5uZWwoJyR7ZXBnTWFwcGluZ0lkfScsIHRoaXMsICcke3htbEZpbGV9Jyk7YCk7DQogICAgbmV3U2VsZWN0LmNsYXNzTmFtZSA9ICdjaGFuZ2VkJzsNCiAgICBzb3J0U2VsZWN0KG5ld1NlbGVjdCk7DQogICAgdGQuYXBwZW5kQ2hpbGQobmV3U2VsZWN0KTsNCiAgICBjaGVja1htbHR2Q2hhbm5lbChlcGdNYXBwaW5nSWQsIG5ld1NlbGVjdCwgeG1sRmlsZSk7DQp9DQpmdW5jdGlvbiBjaGVja1htbHR2Q2hhbm5lbChlcGdNYXBwaW5nSWQsIHNlbGVjdCwgeG1sRmlsZSkgew0KICAgIGNvbnN0IHNlbGVjdFZhbHVlID0gc2VsZWN0LnZhbHVlOw0KICAgIGxldCBjaGFubmVsQWN0aXZlOw0KICAgIGNvbnN0IGNoZWNrYm94ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2FjdGl2ZScpOw0KICAgIGNoYW5uZWxBY3RpdmUgPSBzZWxlY3RWYWx1ZSAhPSAnLSc7DQogICAgY2hlY2tib3guY2hlY2tlZCA9IGNoYW5uZWxBY3RpdmU7DQogICAgY2hlY2tib3guY2xhc3NOYW1lID0gJ2NoYW5nZWQnOw0KICAgIGlmICh4bWxGaWxlICE9ICd4VGVWZSBEdW1teScgJiYgY2hhbm5lbEFjdGl2ZSA9PSB0cnVlKSB7DQogICAgICAgIGNoYW5nZUNoYW5uZWxMb2dvKGVwZ01hcHBpbmdJZCk7DQogICAgICAgIHJldHVybjsNCiAgICB9DQogICAgaWYgKHhtbEZpbGUgPT0gJ3hUZVZlIER1bW15Jykgew0KICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndXBkYXRlLWljb24nKS5jaGVja2VkID0gZmFsc2U7DQogICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd1cGRhdGUtaWNvbicpLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJzsNCiAgICB9DQp9DQpmdW5jdGlvbiBjaGFuZ2VDaGFubmVsTG9nbyhlcGdNYXBwaW5nSWQpIHsNCiAgICBsZXQgdXBkYXRlTG9nbzsNCiAgICBsZXQgbG9nbzsNCiAgICBjb25zdCBjaGFubmVsID0gU0VSVkVSWyd4ZXBnJ11bJ2VwZ01hcHBpbmcnXVtlcGdNYXBwaW5nSWRdOw0KICAgIGNvbnN0IGYgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncG9wdXAteG1sdHYnKTsNCiAgICBjb25zdCB4bWx0dkZpbGUgPSBmLm9wdGlvbnNbZi5zZWxlY3RlZEluZGV4XS52YWx1ZTsNCiAgICBjb25zdCBtID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3BvcHVwLW1hcHBpbmcnKTsNCiAgICBjb25zdCB4TWFwcGluZyA9IG0ub3B0aW9uc1ttLnNlbGVjdGVkSW5kZXhdLnZhbHVlOw0KICAgIGNvbnN0IHhtbHR2TG9nbyA9IFNFUlZFUlsneGVwZyddWyd4bWx0dk1hcCddW3htbHR2RmlsZV1beE1hcHBpbmddWydpY29uJ107DQogICAgdXBkYXRlTG9nbyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd1cGRhdGUtaWNvbicpLmNoZWNrZWQ7DQogICAgaWYgKHVwZGF0ZUxvZ28gPT0gdHJ1ZSAmJiB4bWx0dkZpbGUgIT0gJ3hUZVZlIER1bW15Jykgew0KICAgICAgICBpZiAoU0VSVkVSWyd4ZXBnJ11bJ3htbHR2TWFwJ11beG1sdHZGaWxlXS5oYXNPd25Qcm9wZXJ0eSh4TWFwcGluZykpIHsNCiAgICAgICAgICAgIGxvZ28gPSB4bWx0dkxvZ287DQogICAgICAgIH0NCiAgICAgICAgZWxzZSB7DQogICAgICAgICAgICBsb2dvID0gY2hhbm5lbFsndHZnLWxvZ28nXTsNCiAgICAgICAgfQ0KICAgICAgICB2YXIgbG9nb0lucHV0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NoYW5uZWwtaWNvbicpOw0KICAgICAgICBsb2dvSW5wdXQudmFsdWUgPSBsb2dvOw0KICAgICAgICBpZiAoQlVMS19FRElUID09IGZhbHNlKSB7DQogICAgICAgICAgICBsb2dvSW5wdXQuY2xhc3NOYW1lID0gJ2NoYW5nZWQnOw0KICAgICAgICB9DQogICAgfQ0KfQ0KZnVuY3Rpb24gc2F2ZVBvcHVwRGF0YShkYXRhVHlwZSwgaWQsIHJlbW92ZSwgb3B0aW9uKSB7DQogICAgaWYgKGRhdGFUeXBlID09ICJtYXBwaW5nIikgew0KICAgICAgICBsZXQgZGF0YSA9IHt9Ow0KICAgICAgICBjb25zb2xlLmxvZygiU2F2ZSBtYXBwaW5nIGRhdGEiKTsNCiAgICAgICAgbGV0IGNtZCA9ICJzYXZlRXBnTWFwcGluZyI7DQogICAgICAgIGRhdGFbImVwZ01hcHBpbmciXSA9IFNFUlZFUlsieGVwZyJdWyJlcGdNYXBwaW5nIl07DQogICAgICAgIGNvbnNvbGUubG9nKCJTRU5EIFRPIFNFUlZFUiIpOw0KICAgICAgICBsZXQgc2VydmVyID0gbmV3IFNlcnZlcihjbWQpOw0KICAgICAgICBzZXJ2ZXIucmVxdWVzdChkYXRhKTsNCiAgICAgICAgZGVsZXRlIFVORE9bImVwZ01hcHBpbmciXTsNCiAgICAgICAgcmV0dXJuOw0KICAgIH0NCiAgICBjb25zb2xlLmxvZygiU2F2ZSBwb3B1cCBkYXRhIik7DQogICAgbGV0IGRpdiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJwb3B1cC1jdXN0b20iKTsNCiAgICBsZXQgaW5wdXRzID0gZGl2LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJUQUJMRSIpWzBdLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJJTlBVVCIpOw0KICAgIGxldCBzZWxlY3RzID0gZGl2LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJUQUJMRSIpWzBdLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJTRUxFQ1QiKTsNCiAgICBsZXQgaW5wdXQgPSB7fTsNCiAgICBsZXQgY29uZmlybU1zZzsNCiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHNlbGVjdHMubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgdmFyIG5hbWU7DQogICAgICAgIG5hbWUgPSBzZWxlY3RzW2ldLm5hbWU7DQogICAgICAgIHZhciB2YWx1ZSA9IHNlbGVjdHNbaV0udmFsdWU7DQogICAgICAgIHN3aXRjaCAobmFtZSkgew0KICAgICAgICAgICAgY2FzZSAidHVuZXIiOg0KICAgICAgICAgICAgICAgIGlucHV0W25hbWVdID0gcGFyc2VJbnQodmFsdWUpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgICAgICBpbnB1dFtuYW1lXSA9IHZhbHVlOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICB9DQogICAgfQ0KICAgIGZvciAobGV0IGkgPSAwOyBpIDwgaW5wdXRzLmxlbmd0aDsgaSsrKSB7DQogICAgICAgIHN3aXRjaCAoaW5wdXRzW2ldLnR5cGUpIHsNCiAgICAgICAgICAgIGNhc2UgImNoZWNrYm94IjoNCiAgICAgICAgICAgICAgICBuYW1lID0gaW5wdXRzW2ldLm5hbWU7DQogICAgICAgICAgICAgICAgaW5wdXRbbmFtZV0gPSBpbnB1dHNbaV0uY2hlY2tlZDsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInRleHQiOg0KICAgICAgICAgICAgY2FzZSAiaGlkZGVuIjoNCiAgICAgICAgICAgIGNhc2UgInBhc3N3b3JkIjoNCiAgICAgICAgICAgICAgICBuYW1lID0gaW5wdXRzW2ldLm5hbWU7DQogICAgICAgICAgICAgICAgc3dpdGNoIChuYW1lKSB7DQogICAgICAgICAgICAgICAgICAgIGNhc2UgInR1bmVyIjoNCiAgICAgICAgICAgICAgICAgICAgICAgIGlucHV0W25hbWVdID0gcGFyc2VJbnQoaW5wdXRzW2ldLnZhbHVlKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgICAgICBkZWZhdWx0Og0KICAgICAgICAgICAgICAgICAgICAgICAgaW5wdXRbbmFtZV0gPSBpbnB1dHNbaV0udmFsdWU7DQogICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIH0NCiAgICB9DQogICAgbGV0IGRhdGEgPSB7fTsNCiAgICBsZXQgY21kOw0KICAgIGlmIChyZW1vdmUgPT0gdHJ1ZSkgew0KICAgICAgICBpbnB1dFsiZGVsZXRlIl0gPSB0cnVlOw0KICAgIH0NCiAgICBzd2l0Y2ggKGRhdGFUeXBlKSB7DQogICAgICAgIGNhc2UgInVzZXJzIjoNCiAgICAgICAgICAgIGNvbmZpcm1Nc2cgPSAiRGVsZXRlIHRoaXMgdXNlcj8iOw0KICAgICAgICAgICAgaWYgKGlkID09ICItIikgew0KICAgICAgICAgICAgICAgIGNtZCA9ICJzYXZlTmV3VXNlciI7DQogICAgICAgICAgICAgICAgZGF0YVsidXNlckRhdGEiXSA9IGlucHV0Ow0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgZWxzZSB7DQogICAgICAgICAgICAgICAgY21kID0gInNhdmVVc2VyRGF0YSI7DQogICAgICAgICAgICAgICAgbGV0IGQgPSB7fTsNCiAgICAgICAgICAgICAgICBkW2lkXSA9IGlucHV0Ow0KICAgICAgICAgICAgICAgIGRhdGFbInVzZXJEYXRhIl0gPSBkOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGNhc2UgIm0zdSI6DQogICAgICAgICAgICBjb25maXJtTXNnID0gIkRlbGV0ZSB0aGlzIHBsYXlsaXN0PyI7DQogICAgICAgICAgICBzd2l0Y2ggKG9wdGlvbikgew0KICAgICAgICAgICAgICAgIC8vIFBvcHVwOiBTYXZlDQogICAgICAgICAgICAgICAgY2FzZSAwOg0KICAgICAgICAgICAgICAgICAgICBjbWQgPSAic2F2ZUZpbGVzTTNVIjsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgLy8gUG9wdXA6IFVwZGF0ZQ0KICAgICAgICAgICAgICAgIGNhc2UgMToNCiAgICAgICAgICAgICAgICAgICAgY21kID0gInVwZGF0ZUZpbGVNM1UiOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGRhdGFbImZpbGVzIl0gPSB7fTsNCiAgICAgICAgICAgIGRhdGFbImZpbGVzIl1bZGF0YVR5cGVdID0ge307DQogICAgICAgICAgICBkYXRhWyJmaWxlcyJdW2RhdGFUeXBlXVtpZF0gPSBpbnB1dDsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJoZGhyIjoNCiAgICAgICAgICAgIGNvbmZpcm1Nc2cgPSAiRGVsZXRlIHRoaXMgSERIb21lUnVuIHR1bmVyPyI7DQogICAgICAgICAgICBzd2l0Y2ggKG9wdGlvbikgew0KICAgICAgICAgICAgICAgIC8vIFBvcHVwOiBTYXZlDQogICAgICAgICAgICAgICAgY2FzZSAwOg0KICAgICAgICAgICAgICAgICAgICBjbWQgPSAic2F2ZUZpbGVzSERIUiI7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIC8vIFBvcHVwOiBVcGRhdGUNCiAgICAgICAgICAgICAgICBjYXNlIDE6DQogICAgICAgICAgICAgICAgICAgIGNtZCA9ICJ1cGRhdGVGaWxlSERIUiI7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgZGF0YVsiZmlsZXMiXSA9IHt9Ow0KICAgICAgICAgICAgZGF0YVsiZmlsZXMiXVtkYXRhVHlwZV0gPSB7fTsNCiAgICAgICAgICAgIGRhdGFbImZpbGVzIl1bZGF0YVR5cGVdW2lkXSA9IGlucHV0Ow0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGNhc2UgInhtbHR2IjoNCiAgICAgICAgICAgIGNvbmZpcm1Nc2cgPSAiRGVsZXRlIHRoaXMgWE1MVFYgZmlsZT8iOw0KICAgICAgICAgICAgc3dpdGNoIChvcHRpb24pIHsNCiAgICAgICAgICAgICAgICAvLyBQb3B1cDogU2F2ZQ0KICAgICAgICAgICAgICAgIGNhc2UgMDoNCiAgICAgICAgICAgICAgICAgICAgY21kID0gInNhdmVGaWxlc1hNTFRWIjsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgLy8gUG9wdXA6IFVwZGF0ZQ0KICAgICAgICAgICAgICAgIGNhc2UgMToNCiAgICAgICAgICAgICAgICAgICAgY21kID0gInVwZGF0ZUZpbGVYTUxUViI7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgZGF0YVsiZmlsZXMiXSA9IHt9Ow0KICAgICAgICAgICAgZGF0YVsiZmlsZXMiXVtkYXRhVHlwZV0gPSB7fTsNCiAgICAgICAgICAgIGRhdGFbImZpbGVzIl1bZGF0YVR5cGVdW2lkXSA9IGlucHV0Ow0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGNhc2UgImZpbHRlciI6DQogICAgICAgICAgICBjb25maXJtTXNnID0gIkRlbGV0ZSB0aGlzIGZpbHRlcj8iOw0KICAgICAgICAgICAgY21kID0gInNhdmVGaWx0ZXIiOw0KICAgICAgICAgICAgZGF0YVsiZmlsdGVyIl0gPSB7fTsNCiAgICAgICAgICAgIGRhdGFbImZpbHRlciJdW2lkXSA9IGlucHV0Ow0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICBjb25zb2xlLmxvZyhkYXRhVHlwZSwgaWQpOw0KICAgICAgICAgICAgcmV0dXJuOw0KICAgIH0NCiAgICBpZiAocmVtb3ZlID09IHRydWUpIHsNCiAgICAgICAgaWYgKCFjb25maXJtKGNvbmZpcm1Nc2cpKSB7DQogICAgICAgICAgICBzaG93RWxlbWVudCgicG9wdXAiLCBmYWxzZSk7DQogICAgICAgICAgICByZXR1cm47DQogICAgICAgIH0NCiAgICB9DQogICAgY29uc29sZS5sb2coIlNFTkQgVE8gU0VSVkVSIik7DQogICAgY29uc29sZS5sb2coZGF0YSk7DQogICAgbGV0IHNlcnZlciA9IG5ldyBTZXJ2ZXIoY21kKTsNCiAgICBzZXJ2ZXIucmVxdWVzdChkYXRhKTsNCn0NCmZ1bmN0aW9uIGRvbmVQb3B1cERhdGEoZGF0YVR5cGUsIGlkc1N0cikgew0KICAgIGxldCBpZHMgPSBpZHNTdHIuc3BsaXQoJywnKTsNCiAgICBsZXQgZGl2ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInBvcHVwLWN1c3RvbSIpOw0KICAgIGxldCBpbnB1dHMgPSBkaXYuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSgiY2hhbmdlZCIpOw0KICAgIGlkcy5mb3JFYWNoKGlkID0+IHsNCiAgICAgICAgbGV0IGlucHV0Ow0KICAgICAgICBpbnB1dCA9IFNFUlZFUlsieGVwZyJdWyJlcGdNYXBwaW5nIl1baWRdOw0KICAgICAgICBjb25zb2xlLmxvZyhpbnB1dCk7DQogICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgaW5wdXRzLmxlbmd0aDsgaSsrKSB7DQogICAgICAgICAgICBsZXQgbmFtZTsNCiAgICAgICAgICAgIGxldCB2YWx1ZTsNCiAgICAgICAgICAgIHN3aXRjaCAoaW5wdXRzW2ldLnRhZ05hbWUpIHsNCiAgICAgICAgICAgICAgICBjYXNlICJJTlBVVCI6DQogICAgICAgICAgICAgICAgICAgIHN3aXRjaCAoaW5wdXRzW2ldLnR5cGUpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgImNoZWNrYm94IjoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lID0gaW5wdXRzW2ldLm5hbWU7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSBpbnB1dHNbaV0uY2hlY2tlZDsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnB1dFtuYW1lXSA9IHZhbHVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAidGV4dCI6DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZSA9IGlucHV0c1tpXS5uYW1lOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlID0gaW5wdXRzW2ldLnZhbHVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlucHV0W25hbWVdID0gdmFsdWU7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAiU0VMRUNUIjoNCiAgICAgICAgICAgICAgICAgICAgbmFtZSA9IGlucHV0c1tpXS5uYW1lOw0KICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IGlucHV0c1tpXS52YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgaW5wdXRbbmFtZV0gPSB2YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBzd2l0Y2ggKG5hbWUpIHsNCiAgICAgICAgICAgICAgICBjYXNlICJ0dmctbG9nbyI6DQogICAgICAgICAgICAgICAgICAgIC8vKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5jaGlsZE5vZGVzWzJdLmZpcnN0Q2hpbGQgYXMgSFRNTEVsZW1lbnQpLnNldEF0dHJpYnV0ZSgic3JjIiwgdmFsdWUpDQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgIngtbmFtZSI6DQogICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5jaGlsZE5vZGVzWzNdLmZpcnN0Q2hpbGQuaW5uZXJIVE1MID0gdmFsdWU7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgIngtY2F0ZWdvcnkiOg0KICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkuY2hpbGROb2Rlc1szXS5maXJzdENoaWxkLmNsYXNzTmFtZSA9IHZhbHVlOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBjYXNlICJ4LWdyb3VwLXRpdGxlIjoNCiAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpLmNoaWxkTm9kZXNbNV0uZmlyc3RDaGlsZC5pbm5lckhUTUwgPSB2YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAieC14bWx0di1maWxlIjoNCiAgICAgICAgICAgICAgICAgICAgaWYgKHZhbHVlICE9ICJ4VGVWZSBEdW1teSIgJiYgdmFsdWUgIT0gIi0iKSB7DQogICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IGdldFZhbHVlRnJvbVByb3ZpZGVyRmlsZSh2YWx1ZSwgInhtbHR2IiwgIm5hbWUiKTsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBpZiAodmFsdWUgPT0gIi0iKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBpbnB1dFsieC1hY3RpdmUiXSA9IGZhbHNlOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5jaGlsZE5vZGVzWzZdLmZpcnN0Q2hpbGQuaW5uZXJIVE1MID0gdmFsdWU7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgIngtbWFwcGluZyI6DQogICAgICAgICAgICAgICAgICAgIGlmICh2YWx1ZSA9PSAiLSIpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGlucHV0WyJ4LWFjdGl2ZSJdID0gZmFsc2U7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpLmNoaWxkTm9kZXNbN10uZmlyc3RDaGlsZC5pbm5lckhUTUwgPSB2YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAieC10aW1lc2hpZnQiOg0KICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkuY2hpbGROb2Rlc1s4XS5maXJzdENoaWxkLmlubmVySFRNTCA9IHZhbHVlOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBkZWZhdWx0Og0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgY3JlYXRlU2VhcmNoT2JqKCk7DQogICAgICAgICAgICBzZWFyY2hJbk1hcHBpbmcoKTsNCiAgICAgICAgfQ0KICAgICAgICBpZiAoaW5wdXRbIngtYWN0aXZlIl0gPT0gZmFsc2UpIHsNCiAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5jbGFzc05hbWUgPSAibm90QWN0aXZlRVBHIjsNCiAgICAgICAgfQ0KICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5jbGFzc05hbWUgPSAiYWN0aXZlRVBHIjsNCiAgICAgICAgfQ0KICAgICAgICBjb25zb2xlLmxvZyhpbnB1dFsidHZnLWxvZ28iXSk7DQogICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5jaGlsZE5vZGVzWzJdLmZpcnN0Q2hpbGQuc2V0QXR0cmlidXRlKCJzcmMiLCBpbnB1dFsidHZnLWxvZ28iXSk7DQogICAgfSk7DQogICAgc2hvd0VsZW1lbnQoInBvcHVwIiwgZmFsc2UpOw0KICAgIHJldHVybjsNCn0NCmZ1bmN0aW9uIHNob3dQcmV2aWV3KGVsZW1lbnQpIHsNCiAgICBsZXQgZGl2ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm15U3RyZWFtc0JveCIpOw0KICAgIHN3aXRjaCAoZWxlbWVudCkgew0KICAgICAgICBjYXNlIGZhbHNlOg0KICAgICAgICAgICAgZGl2LmNsYXNzTmFtZSA9ICJub3RWaXNpYmxlIjsNCiAgICAgICAgICAgIHJldHVybjsNCiAgICB9DQogICAgbGV0IHN0cmVhbXMgPSBbImFjdGl2ZVN0cmVhbXMiLCAiaW5hY3RpdmVTdHJlYW1zIl07DQogICAgc3RyZWFtcy5mb3JFYWNoKHByZXZpZXcgPT4gew0KICAgICAgICBsZXQgdGFibGUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChwcmV2aWV3KTsNCiAgICAgICAgdGFibGUuaW5uZXJIVE1MID0gIiI7DQogICAgICAgIGxldCBvYmogPSBTRVJWRVJbImRhdGEiXVsiU3RyZWFtUHJldmlld1VJIl1bcHJldmlld107DQogICAgICAgIG9iai5mb3JFYWNoKGNoYW5uZWwgPT4gew0KICAgICAgICAgICAgbGV0IHRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVFIiKTsNCiAgICAgICAgICAgIGxldCB0ZEtleSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICBsZXQgdGRWYWwgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgdGRLZXkuY2xhc3NOYW1lID0gInRkS2V5IjsNCiAgICAgICAgICAgIHRkVmFsLmNsYXNzTmFtZSA9ICJ0ZFZhbCI7DQogICAgICAgICAgICBzd2l0Y2ggKHByZXZpZXcpIHsNCiAgICAgICAgICAgICAgICBjYXNlICJhY3RpdmVTdHJlYW1zIjoNCiAgICAgICAgICAgICAgICAgICAgdGRLZXkuaW5uZXJUZXh0ID0gIkNoYW5uZWw6ICgrKSI7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgImluYWN0aXZlU3RyZWFtcyI6DQogICAgICAgICAgICAgICAgICAgIHRkS2V5LmlubmVyVGV4dCA9ICJDaGFubmVsOiAoLSkiOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIHRkVmFsLmlubmVyVGV4dCA9IGNoYW5uZWw7DQogICAgICAgICAgICB0ci5hcHBlbmRDaGlsZCh0ZEtleSk7DQogICAgICAgICAgICB0ci5hcHBlbmRDaGlsZCh0ZFZhbCk7DQogICAgICAgICAgICB0YWJsZS5hcHBlbmRDaGlsZCh0cik7DQogICAgICAgIH0pOw0KICAgIH0pOw0KICAgIHNob3dFbGVtZW50KCJsb2FkaW5nIiwgZmFsc2UpOw0KICAgIGRpdi5jbGFzc05hbWUgPSAidmlzaWJsZSI7DQogICAgcmV0dXJuOw0KfQ0K" + webUI["html/js/menu_ts.js"] = "Y2xhc3MgTWFpbk1lbnUgew0KICAgIGNvbnN0cnVjdG9yKCkgew0KICAgICAgICB0aGlzLkRvY3VtZW50SUQgPSAibWFpbi1tZW51IjsNCiAgICAgICAgdGhpcy5IVE1MVGFnID0gIkxJIjsNCiAgICAgICAgdGhpcy5JbWFnZVBhdGggPSAiaW1nLyI7DQogICAgfQ0KICAgIGNyZWF0ZUlNRyhzcmMpIHsNCiAgICAgICAgbGV0IGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJJTUciKTsNCiAgICAgICAgZWxlbWVudC5zZXRBdHRyaWJ1dGUoInNyYyIsIHRoaXMuSW1hZ2VQYXRoICsgc3JjKTsNCiAgICAgICAgcmV0dXJuIGVsZW1lbnQ7DQogICAgfQ0KICAgIGNyZWF0ZVZhbHVlKHZhbHVlKSB7DQogICAgICAgIGxldCBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiUCIpOw0KICAgICAgICBlbGVtZW50LmlubmVySFRNTCA9IHZhbHVlOw0KICAgICAgICByZXR1cm4gZWxlbWVudDsNCiAgICB9DQp9DQpjbGFzcyBNYWluTWVudUl0ZW0gZXh0ZW5kcyBNYWluTWVudSB7DQogICAgY29uc3RydWN0b3IobWVudUtleSwgdmFsdWUsIGltYWdlLCBoZWFkbGluZSkgew0KICAgICAgICBzdXBlcigpOw0KICAgICAgICB0aGlzLm1lbnVLZXkgPSBtZW51S2V5Ow0KICAgICAgICB0aGlzLnZhbHVlID0gdmFsdWU7DQogICAgICAgIHRoaXMuaW1nU3JjID0gaW1hZ2U7DQogICAgICAgIHRoaXMuaGVhZGxpbmUgPSBoZWFkbGluZTsNCiAgICB9DQogICAgY3JlYXRlSXRlbSgpIHsNCiAgICAgICAgbGV0IGl0ZW0gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJMSSIpOw0KICAgICAgICBpdGVtLnNldEF0dHJpYnV0ZSgib25jbGljayIsICJqYXZhc2NyaXB0OiBvcGVuVGhpc01lbnUodGhpcykiKTsNCiAgICAgICAgaXRlbS5zZXRBdHRyaWJ1dGUoImlkIiwgdGhpcy5pZCk7DQogICAgICAgIGxldCBpbWcgPSB0aGlzLmNyZWF0ZUlNRyh0aGlzLmltZ1NyYyk7DQogICAgICAgIGxldCB2YWx1ZSA9IHRoaXMuY3JlYXRlVmFsdWUodGhpcy52YWx1ZSk7DQogICAgICAgIGl0ZW0uYXBwZW5kQ2hpbGQoaW1nKTsNCiAgICAgICAgaXRlbS5hcHBlbmRDaGlsZCh2YWx1ZSk7DQogICAgICAgIGxldCBkb2MgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCh0aGlzLkRvY3VtZW50SUQpOw0KICAgICAgICBkb2MuYXBwZW5kQ2hpbGQoaXRlbSk7DQogICAgICAgIHN3aXRjaCAodGhpcy5tZW51S2V5KSB7DQogICAgICAgICAgICBjYXNlICJwbGF5bGlzdCI6DQogICAgICAgICAgICAgICAgdGhpcy50YWJsZUhlYWRlciA9IFsie3sucGxheWxpc3QudGFibGUucGxheWxpc3R9fSIsICJ7ey5wbGF5bGlzdC50YWJsZS50dW5lcn19IiwgInt7LnBsYXlsaXN0LnRhYmxlLmxhc3RVcGRhdGV9fSIsICJ7ey5wbGF5bGlzdC50YWJsZS5hdmFpbGFiaWxpdHl9fSAlIiwgInt7LnBsYXlsaXN0LnRhYmxlLnR5cGV9fSIsICJ7ey5wbGF5bGlzdC50YWJsZS5zdHJlYW1zfX0iLCAie3sucGxheWxpc3QudGFibGUuZ3JvdXBUaXRsZX19ICUiLCAie3sucGxheWxpc3QudGFibGUudHZnSUR9fSAlIiwgInt7LnBsYXlsaXN0LnRhYmxlLnVuaXF1ZUlEfX0gJSJdOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAieG1sdHYiOg0KICAgICAgICAgICAgICAgIHRoaXMudGFibGVIZWFkZXIgPSBbInt7LnhtbHR2LnRhYmxlLmd1aWRlfX0iLCAie3sueG1sdHYudGFibGUubGFzdFVwZGF0ZX19IiwgInt7LnhtbHR2LnRhYmxlLmF2YWlsYWJpbGl0eX19ICUiLCAie3sueG1sdHYudGFibGUuY2hhbm5lbHN9fSIsICJ7ey54bWx0di50YWJsZS5wcm9ncmFtc319Il07DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJmaWx0ZXIiOg0KICAgICAgICAgICAgICAgIHRoaXMudGFibGVIZWFkZXIgPSBbInt7LmZpbHRlci50YWJsZS5zdGFydGluZ0NoYW5uZWx9fSIsICJ7ey5maWx0ZXIudGFibGUubmFtZX19IiwgInt7LmZpbHRlci50YWJsZS50eXBlfX0iLCAie3suZmlsdGVyLnRhYmxlLmZpbHRlcn19Il07DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ1c2VycyI6DQogICAgICAgICAgICAgICAgdGhpcy50YWJsZUhlYWRlciA9IFsie3sudXNlcnMudGFibGUudXNlcm5hbWV9fSIsICJ7ey51c2Vycy50YWJsZS5wYXNzd29yZH19IiwgInt7LnVzZXJzLnRhYmxlLndlYn19IiwgInt7LnVzZXJzLnRhYmxlLnBtc319IiwgInt7LnVzZXJzLnRhYmxlLm0zdX19IiwgInt7LnVzZXJzLnRhYmxlLnhtbH19IiwgInt7LnVzZXJzLnRhYmxlLmFwaX19Il07DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJtYXBwaW5nIjoNCiAgICAgICAgICAgICAgICB0aGlzLnRhYmxlSGVhZGVyID0gWyJCVUxLIiwgInt7Lm1hcHBpbmcudGFibGUuY2hOb319IiwgInt7Lm1hcHBpbmcudGFibGUubG9nb319IiwgInt7Lm1hcHBpbmcudGFibGUuY2hhbm5lbE5hbWV9fSIsICJ7ey5tYXBwaW5nLnRhYmxlLnBsYXlsaXN0fX0iLCAie3subWFwcGluZy50YWJsZS5ncm91cFRpdGxlfX0iLCAie3subWFwcGluZy50YWJsZS54bWx0dkZpbGV9fSIsICJ7ey5tYXBwaW5nLnRhYmxlLnhtbHR2SUR9fSIsICJ7ey5tYXBwaW5nLnRhYmxlLnRpbWVzaGlmdH19Il07DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIH0NCiAgICAgICAgLy9jb25zb2xlLmxvZyh0aGlzLm1lbnVLZXksIHRoaXMudGFibGVIZWFkZXIpOw0KICAgIH0NCn0NCmNsYXNzIENvbnRlbnQgew0KICAgIGNvbnN0cnVjdG9yKCkgew0KICAgICAgICB0aGlzLkRvY3VtZW50SUQgPSAiY29udGVudCI7DQogICAgICAgIHRoaXMuVGFibGVJRCA9ICJjb250ZW50X3RhYmxlIjsNCiAgICAgICAgdGhpcy5oZWFkZXJDbGFzcyA9ICJjb250ZW50X3RhYmxlX2hlYWRlciI7DQogICAgICAgIHRoaXMuaW50ZXJhY3Rpb25JRCA9ICJjb250ZW50LWludGVyYWN0aW9uIjsNCiAgICB9DQogICAgY3JlYXRlSGVhZGxpbmUodmFsdWUpIHsNCiAgICAgICAgbGV0IGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJIMyIpOw0KICAgICAgICBlbGVtZW50LmlubmVySFRNTCA9IHZhbHVlOw0KICAgICAgICByZXR1cm4gZWxlbWVudDsNCiAgICB9DQogICAgY3JlYXRlSFIoKSB7DQogICAgICAgIHJldHVybiBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJIUiIpOw0KICAgIH0NCiAgICBjcmVhdGVJbnRlcmFjdGlvbigpIHsNCiAgICAgICAgbGV0IGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJESVYiKTsNCiAgICAgICAgZWxlbWVudC5zZXRBdHRyaWJ1dGUoImlkIiwgdGhpcy5pbnRlcmFjdGlvbklEKTsNCiAgICAgICAgcmV0dXJuIGVsZW1lbnQ7DQogICAgfQ0KICAgIGNyZWF0ZURJVigpIHsNCiAgICAgICAgbGV0IGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJESVYiKTsNCiAgICAgICAgZWxlbWVudC5pZCA9IHRoaXMuRGl2SUQ7DQogICAgICAgIHJldHVybiBlbGVtZW50Ow0KICAgIH0NCiAgICBjcmVhdGVUQUJMRSgpIHsNCiAgICAgICAgbGV0IGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJUQUJMRSIpOw0KICAgICAgICBlbGVtZW50LmlkID0gdGhpcy5UYWJsZUlEOw0KICAgICAgICByZXR1cm4gZWxlbWVudDsNCiAgICB9DQogICAgY3JlYXRlVGFibGVSb3coKSB7DQogICAgICAgIGxldCBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVFIiKTsNCiAgICAgICAgZWxlbWVudC5jbGFzc05hbWUgPSB0aGlzLmhlYWRlckNsYXNzOw0KICAgICAgICByZXR1cm4gZWxlbWVudDsNCiAgICB9DQogICAgY3JlYXRlVGFibGVDb250ZW50KG1lbnVLZXkpIHsNCiAgICAgICAgbGV0IGRhdGEgPSB7fTsNCiAgICAgICAgbGV0IHJvd3MgPSBbXTsNCiAgICAgICAgbGV0IGZpbGVUeXBlcyA9IFtdOw0KICAgICAgICBzd2l0Y2ggKG1lbnVLZXkpIHsNCiAgICAgICAgICAgIGNhc2UgInBsYXlsaXN0IjoNCiAgICAgICAgICAgICAgICBmaWxlVHlwZXMgPSBbIm0zdSIsICJoZGhyIl07DQogICAgICAgICAgICAgICAgZmlsZVR5cGVzLmZvckVhY2goZmlsZVR5cGUgPT4gew0KICAgICAgICAgICAgICAgICAgICBkYXRhID0gU0VSVkVSWyJzZXR0aW5ncyJdWyJmaWxlcyJdW2ZpbGVUeXBlXTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGtleXMgPSBnZXRPd25PYmpQcm9wcyhkYXRhKTsNCiAgICAgICAgICAgICAgICAgICAga2V5cy5mb3JFYWNoKGtleSA9PiB7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgdHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJUUiIpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuaWQgPSBrZXk7DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCInICsgZmlsZVR5cGUgKyAnIiwgdGhpcyknKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJuYW1lIl07DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgaWYgKFNFUlZFUlsic2V0dGluZ3MiXVsiYnVmZmVyIl0gIT0gIi0iKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsidHVuZXIiXTsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSAiLSI7DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsibGFzdC51cGRhdGUiXTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJwcm92aWRlci5hdmFpbGFiaWxpdHkiXTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJ0eXBlIl0udG9VcHBlckNhc2UoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJjb21wYXRpYmlsaXR5Il1bInN0cmVhbXMiXTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJjb21wYXRpYmlsaXR5Il1bImdyb3VwLnRpdGxlIl07DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsiY29tcGF0aWJpbGl0eSJdWyJ0dmcuaWQiXTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJjb21wYXRpYmlsaXR5Il1bInN0cmVhbS5pZCJdOw0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgcm93cy5wdXNoKHRyKTsNCiAgICAgICAgICAgICAgICAgICAgfSk7DQogICAgICAgICAgICAgICAgfSk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJmaWx0ZXIiOg0KICAgICAgICAgICAgICAgIGRlbGV0ZSBTRVJWRVJbInNldHRpbmdzIl1bImZpbHRlciJdWy0xXTsNCiAgICAgICAgICAgICAgICBkYXRhID0gU0VSVkVSWyJzZXR0aW5ncyJdWyJmaWx0ZXIiXTsNCiAgICAgICAgICAgICAgICB2YXIga2V5cyA9IGdldE93bk9ialByb3BzKGRhdGEpOw0KICAgICAgICAgICAgICAgIGtleXMuZm9yRWFjaChrZXkgPT4gew0KICAgICAgICAgICAgICAgICAgICB2YXIgdHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJUUiIpOw0KICAgICAgICAgICAgICAgICAgICB0ci5pZCA9IGtleTsNCiAgICAgICAgICAgICAgICAgICAgdHIuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgiJyArIGRhdGFba2V5XVsidHlwZSJdICsgJyIsIHRoaXMpJyk7DQogICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJzdGFydGluZ0NoYW5uZWwiXTsNCiAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsibmFtZSJdOw0KICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICBzd2l0Y2ggKGRhdGFba2V5XVsidHlwZSJdKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBjYXNlICJjdXN0b20tZmlsdGVyIjoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gInt7LmZpbHRlci5jdXN0b219fSI7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgICAgICAgICBjYXNlICJncm91cC10aXRsZSI6DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9ICJ7ey5maWx0ZXIuZ3JvdXB9fSI7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgICAgICAgICBkZWZhdWx0Og0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bImZpbHRlciJdOw0KICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgIHJvd3MucHVzaCh0cik7DQogICAgICAgICAgICAgICAgfSk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ4bWx0diI6DQogICAgICAgICAgICAgICAgZmlsZVR5cGVzID0gbmV3IEFycmF5KCJ4bWx0diIpOw0KICAgICAgICAgICAgICAgIGZpbGVUeXBlcy5mb3JFYWNoKGZpbGVUeXBlID0+IHsNCiAgICAgICAgICAgICAgICAgICAgZGF0YSA9IFNFUlZFUlsic2V0dGluZ3MiXVsiZmlsZXMiXVtmaWxlVHlwZV07DQogICAgICAgICAgICAgICAgICAgIHZhciBrZXlzID0gZ2V0T3duT2JqUHJvcHMoZGF0YSk7DQogICAgICAgICAgICAgICAgICAgIGtleXMuZm9yRWFjaChrZXkgPT4gew0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVFIiKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmlkID0ga2V5Ow0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgiJyArIGZpbGVUeXBlICsgJyIsIHRoaXMpJyk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsibmFtZSJdOw0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bImxhc3QudXBkYXRlIl07DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsicHJvdmlkZXIuYXZhaWxhYmlsaXR5Il07DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsiY29tcGF0aWJpbGl0eSJdWyJ4bWx0di5jaGFubmVscyJdOw0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bImNvbXBhdGliaWxpdHkiXVsieG1sdHYucHJvZ3JhbXMiXTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHJvd3MucHVzaCh0cik7DQogICAgICAgICAgICAgICAgICAgIH0pOw0KICAgICAgICAgICAgICAgIH0pOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAidXNlcnMiOg0KICAgICAgICAgICAgICAgIGZpbGVUeXBlcyA9IG5ldyBBcnJheSgidXNlcnMiKTsNCiAgICAgICAgICAgICAgICBmaWxlVHlwZXMuZm9yRWFjaChmaWxlVHlwZSA9PiB7DQogICAgICAgICAgICAgICAgICAgIGRhdGEgPSBTRVJWRVJbZmlsZVR5cGVdOw0KICAgICAgICAgICAgICAgICAgICB2YXIga2V5cyA9IGdldE93bk9ialByb3BzKGRhdGEpOw0KICAgICAgICAgICAgICAgICAgICBrZXlzLmZvckVhY2goa2V5ID0+IHsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciB0ciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlRSIik7DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5pZCA9IGtleTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoIicgKyBmaWxlVHlwZSArICciLCB0aGlzKScpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bImRhdGEiXVsidXNlcm5hbWUiXTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gIioqKioqKiI7DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGRhdGFba2V5XVsiZGF0YSJdWyJhdXRoZW50aWNhdGlvbi53ZWIiXSA9PSB0cnVlKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9ICLinJMiOw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9ICItIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgICAgICBpZiAoZGF0YVtrZXldWyJkYXRhIl1bImF1dGhlbnRpY2F0aW9uLnBtcyJdID09IHRydWUpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gIuKckyI7DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gIi0iOw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChkYXRhW2tleV1bImRhdGEiXVsiYXV0aGVudGljYXRpb24ubTN1Il0gPT0gdHJ1ZSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSAi4pyTIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSAiLSI7DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGRhdGFba2V5XVsiZGF0YSJdWyJhdXRoZW50aWNhdGlvbi54bWwiXSA9PSB0cnVlKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9ICLinJMiOw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9ICItIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgICAgICBpZiAoZGF0YVtrZXldWyJkYXRhIl1bImF1dGhlbnRpY2F0aW9uLmFwaSJdID09IHRydWUpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gIuKckyI7DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gIi0iOw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgcm93cy5wdXNoKHRyKTsNCiAgICAgICAgICAgICAgICAgICAgfSk7DQogICAgICAgICAgICAgICAgfSk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJtYXBwaW5nIjoNCiAgICAgICAgICAgICAgICBCVUxLX0VESVQgPSBmYWxzZTsNCiAgICAgICAgICAgICAgICBjcmVhdGVTZWFyY2hPYmooKTsNCiAgICAgICAgICAgICAgICBjaGVja1VuZG8oImVwZ01hcHBpbmciKTsNCiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZygiTUFQUElORyIpOw0KICAgICAgICAgICAgICAgIGRhdGEgPSBTRVJWRVJbInhlcGciXVsiZXBnTWFwcGluZyJdOw0KICAgICAgICAgICAgICAgIHZhciBrZXlzID0gZ2V0T3duT2JqUHJvcHMoZGF0YSk7DQogICAgICAgICAgICAgICAga2V5cy5mb3JFYWNoKGtleSA9PiB7DQogICAgICAgICAgICAgICAgICAgIHZhciB0ciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlRSIik7DQogICAgICAgICAgICAgICAgICAgIHRyLmlkID0ga2V5Ow0KICAgICAgICAgICAgICAgICAgICAvL3RyLnNldEF0dHJpYnV0ZSgnb25jb250ZXh0bWVudScsICdqYXZhc2NyaXB0OiByaWdodENsaWNrKHRoaXMpJykNCiAgICAgICAgICAgICAgICAgICAgc3dpdGNoIChkYXRhW2tleV1bIngtYWN0aXZlIl0pIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgdHJ1ZToNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ci5jbGFzc05hbWUgPSAiYWN0aXZlRVBHIjsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgZmFsc2U6DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgdHIuY2xhc3NOYW1lID0gIm5vdEFjdGl2ZUVQRyI7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgLy8gQnVsaw0KICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJCVUxLIjsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGZhbHNlOw0KICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgIC8vIENoYW5uZWwgbnVtYmVyDQogICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIklOUFVUQ0hBTk5FTCI7DQogICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bIngtY2hhbm5lbElEIl07DQogICAgICAgICAgICAgICAgICAgIC8vdGQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IGNoYW5nZUNoYW5uZWxOdW1iZXIoIicgKyBrZXkgKyAnIiwgdGhpcyknKQ0KICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgIC8vIExvZ28NCiAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiSU1HIjsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5pbWFnZVVSTCA9IGRhdGFba2V5XVsidHZnLWxvZ28iXTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHRkID0gY2VsbC5jcmVhdGVDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgIHRkLnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoIm1hcHBpbmciLCB0aGlzKScpOw0KICAgICAgICAgICAgICAgICAgICB0ZC5pZCA9IGtleTsNCiAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQodGQpOw0KICAgICAgICAgICAgICAgICAgICAvLyBDaGFubmVsIG5hbWUNCiAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2xhc3NOYW1lID0gZGF0YVtrZXldWyJ4LWNhdGVnb3J5Il07DQogICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bIngtbmFtZSJdOw0KICAgICAgICAgICAgICAgICAgICB2YXIgdGQgPSBjZWxsLmNyZWF0ZUNlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgdGQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgibWFwcGluZyIsIHRoaXMpJyk7DQogICAgICAgICAgICAgICAgICAgIHRkLmlkID0ga2V5Ow0KICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZCh0ZCk7DQogICAgICAgICAgICAgICAgICAgIC8vIFBsYXlsaXN0DQogICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAvL2NlbGwudmFsdWUgPSBkYXRhW2tleV1bIl9maWxlLm0zdS5uYW1lIl0gDQogICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBnZXRWYWx1ZUZyb21Qcm92aWRlckZpbGUoZGF0YVtrZXldWyJfZmlsZS5tM3UuaWQiXSwgIm0zdSIsICJuYW1lIik7DQogICAgICAgICAgICAgICAgICAgIHZhciB0ZCA9IGNlbGwuY3JlYXRlQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICB0ZC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJtYXBwaW5nIiwgdGhpcyknKTsNCiAgICAgICAgICAgICAgICAgICAgdGQuaWQgPSBrZXk7DQogICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKHRkKTsNCiAgICAgICAgICAgICAgICAgICAgLy8gR3JvdXAgKGdyb3VwLXRpdGxlKQ0KICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsieC1ncm91cC10aXRsZSJdOw0KICAgICAgICAgICAgICAgICAgICB2YXIgdGQgPSBjZWxsLmNyZWF0ZUNlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgdGQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgibWFwcGluZyIsIHRoaXMpJyk7DQogICAgICAgICAgICAgICAgICAgIHRkLmlkID0ga2V5Ow0KICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZCh0ZCk7DQogICAgICAgICAgICAgICAgICAgIC8vIFhNTFRWIGZpbGUNCiAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgIGlmIChkYXRhW2tleV1bIngteG1sdHYtZmlsZSJdICE9ICItIikgew0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGdldFZhbHVlRnJvbVByb3ZpZGVyRmlsZShkYXRhW2tleV1bIngteG1sdHYtZmlsZSJdLCAieG1sdHYiLCAibmFtZSIpOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsieC14bWx0di1maWxlIl07DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgdmFyIHRkID0gY2VsbC5jcmVhdGVDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgIHRkLnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoIm1hcHBpbmciLCB0aGlzKScpOw0KICAgICAgICAgICAgICAgICAgICB0ZC5pZCA9IGtleTsNCiAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQodGQpOw0KICAgICAgICAgICAgICAgICAgICAvLyBYTUxUViBDaGFubmVsDQogICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAvL3ZhciB2YWx1ZSA9IHN0ci5zdWJzdHJpbmcoMSwgNCk7DQogICAgICAgICAgICAgICAgICAgIHZhciB2YWx1ZSA9IGRhdGFba2V5XVsieC1tYXBwaW5nIl07DQogICAgICAgICAgICAgICAgICAgIGlmICh2YWx1ZS5sZW5ndGggPiAyMCkgew0KICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSBkYXRhW2tleV1bIngtbWFwcGluZyJdLnN1YnN0cmluZygwLCAyMCkgKyAiLi4uIjsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gdmFsdWU7DQogICAgICAgICAgICAgICAgICAgIHZhciB0ZCA9IGNlbGwuY3JlYXRlQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICB0ZC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJtYXBwaW5nIiwgdGhpcyknKTsNCiAgICAgICAgICAgICAgICAgICAgdGQuaWQgPSBrZXk7DQogICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKHRkKTsNCiAgICAgICAgICAgICAgICAgICAgLy8gVGltZVNoaWZ0DQogICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJ4LXRpbWVzaGlmdCJdOw0KICAgICAgICAgICAgICAgICAgICB2YXIgdGQgPSBjZWxsLmNyZWF0ZUNlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgdGQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgibWFwcGluZyIsIHRoaXMpJyk7DQogICAgICAgICAgICAgICAgICAgIHRkLmlkID0ga2V5Ow0KICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZCh0ZCk7DQogICAgICAgICAgICAgICAgICAgIHJvd3MucHVzaCh0cik7DQogICAgICAgICAgICAgICAgfSk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJzZXR0aW5ncyI6DQogICAgICAgICAgICAgICAgYWxlcnQoKTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICAgICAgY29uc29sZS5sb2coIlRhYmxlIGNvbnRlbnQgKG1lbnVLZXkpOiIsIG1lbnVLZXkpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICB9DQogICAgICAgIHJldHVybiByb3dzOw0KICAgIH0NCn0NCmNsYXNzIENlbGwgew0KICAgIGNyZWF0ZUNlbGwoKSB7DQogICAgICAgIGxldCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgIGlmICh0aGlzLmNoaWxkID09IHRydWUpIHsNCiAgICAgICAgICAgIHZhciBlbGVtZW50Ow0KICAgICAgICAgICAgc3dpdGNoICh0aGlzLmNoaWxkVHlwZSkgew0KICAgICAgICAgICAgICAgIGNhc2UgIlAiOg0KICAgICAgICAgICAgICAgICAgICBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCh0aGlzLmNoaWxkVHlwZSk7DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQuaW5uZXJIVE1MID0gdGhpcy52YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC5jbGFzc05hbWUgPSB0aGlzLmNsYXNzTmFtZTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAiSU5QVVQiOg0KICAgICAgICAgICAgICAgICAgICBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCh0aGlzLmNoaWxkVHlwZSk7DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQudmFsdWUgPSB0aGlzLnZhbHVlOw0KICAgICAgICAgICAgICAgICAgICBlbGVtZW50LnR5cGUgPSAidGV4dCI7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgIklOUFVUQ0hBTk5FTCI6DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJJTlBVVCIpOw0KICAgICAgICAgICAgICAgICAgICBlbGVtZW50LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2c2NyaXB0OiBjaGFuZ2VDaGFubmVsTnVtYmVyKHRoaXMpIik7DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQudmFsdWUgPSB0aGlzLnZhbHVlOw0KICAgICAgICAgICAgICAgICAgICBlbGVtZW50LnR5cGUgPSAidGV4dCI7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgIkJVTEsiOg0KICAgICAgICAgICAgICAgICAgICBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiSU5QVVQiKTsNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC5jaGVja2VkID0gdGhpcy52YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC50eXBlID0gImNoZWNrYm94IjsNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC5jbGFzc05hbWUgPSAiYnVsayBoaWRlQnVsayI7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgIkJVTEtfSEVBRCI6DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJJTlBVVCIpOw0KICAgICAgICAgICAgICAgICAgICBlbGVtZW50LmNoZWNrZWQgPSB0aGlzLnZhbHVlOw0KICAgICAgICAgICAgICAgICAgICBlbGVtZW50LnR5cGUgPSAiY2hlY2tib3giOw0KICAgICAgICAgICAgICAgICAgICBlbGVtZW50LmNsYXNzTmFtZSA9ICJidWxrIGhpZGVCdWxrIjsNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAiamF2YXNjcmlwdDogc2VsZWN0QWxsQ2hhbm5lbHMoKSIpOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBjYXNlICJJTUciOg0KICAgICAgICAgICAgICAgICAgICBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCh0aGlzLmNoaWxkVHlwZSk7DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQuc2V0QXR0cmlidXRlKCJzcmMiLCB0aGlzLmltYWdlVVJMKTsNCiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuaW1hZ2VVUkwgIT0gIiIpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGVsZW1lbnQuc2V0QXR0cmlidXRlKCJvbmVycm9yIiwgImphdmFzY3JpcHQ6IHRoaXMub25lcnJvcj1udWxsO3RoaXMuc3JjPScnIik7DQogICAgICAgICAgICAgICAgICAgICAgICAvL29uZXJyb3I9InRoaXMub25lcnJvcj1udWxsO3RoaXMuc3JjPSdtaXNzaW5nLmdpZic7Ig0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9DQogICAgICAgICAgICB0ZC5hcHBlbmRDaGlsZChlbGVtZW50KTsNCiAgICAgICAgfQ0KICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgIHRkLmlubmVySFRNTCA9IHRoaXMudmFsdWU7DQogICAgICAgIH0NCiAgICAgICAgaWYgKHRoaXMub25jbGljayA9PSB0cnVlKSB7DQogICAgICAgICAgICB0ZC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCB0aGlzLm9uY2xpY2tGdW5jdGlvbik7DQogICAgICAgICAgICB0ZC5jbGFzc05hbWUgPSAicG9pbnRlciI7DQogICAgICAgIH0NCiAgICAgICAgaWYgKHRoaXMudGRDbGFzc05hbWUgIT0gdW5kZWZpbmVkKSB7DQogICAgICAgICAgICB0ZC5jbGFzc05hbWUgPSB0aGlzLnRkQ2xhc3NOYW1lOw0KICAgICAgICB9DQogICAgICAgIHJldHVybiB0ZDsNCiAgICB9DQp9DQpjbGFzcyBTaG93Q29udGVudCBleHRlbmRzIENvbnRlbnQgew0KICAgIGNvbnN0cnVjdG9yKG1lbnVJRCkgew0KICAgICAgICBzdXBlcigpOw0KICAgICAgICB0aGlzLm1lbnVJRCA9IG1lbnVJRDsNCiAgICB9DQogICAgY3JlYXRlSW5wdXQodHlwZSwgbmFtZSwgdmFsdWUpIHsNCiAgICAgICAgbGV0IGlucHV0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiSU5QVVQiKTsNCiAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJ0eXBlIiwgdHlwZSk7DQogICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgibmFtZSIsIG5hbWUpOw0KICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInZhbHVlIiwgdmFsdWUpOw0KICAgICAgICByZXR1cm4gaW5wdXQ7DQogICAgfQ0KICAgIHNob3coKSB7DQogICAgICAgIENPTFVNTl9UT19TT1JUID0gLTE7DQogICAgICAgIC8vIERlbGV0ZSBvbGQgY29udGVudA0KICAgICAgICBsZXQgZG9jID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQodGhpcy5Eb2N1bWVudElEKTsNCiAgICAgICAgZG9jLmlubmVySFRNTCA9ICIiOw0KICAgICAgICBzaG93UHJldmlldyhmYWxzZSk7DQogICAgICAgIC8vIEhlYWRsaW5lDQogICAgICAgIGxldCBoZWFkbGluZSA9IG1lbnVJdGVtc1t0aGlzLm1lbnVJRF0uaGVhZGxpbmU7DQogICAgICAgIGxldCBtZW51S2V5ID0gbWVudUl0ZW1zW3RoaXMubWVudUlEXS5tZW51S2V5Ow0KICAgICAgICBsZXQgaCA9IHRoaXMuY3JlYXRlSGVhZGxpbmUoaGVhZGxpbmUpOw0KICAgICAgICBkb2MuYXBwZW5kQ2hpbGQoaCk7DQogICAgICAgIGxldCBociA9IHRoaXMuY3JlYXRlSFIoKTsNCiAgICAgICAgZG9jLmFwcGVuZENoaWxkKGhyKTsNCiAgICAgICAgLy8gSW50ZXJhY3Rpb24NCiAgICAgICAgbGV0IGRpdiA9IHRoaXMuY3JlYXRlSW50ZXJhY3Rpb24oKTsNCiAgICAgICAgZG9jLmFwcGVuZENoaWxkKGRpdik7DQogICAgICAgIGxldCBpbnRlcmFjdGlvbiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHRoaXMuaW50ZXJhY3Rpb25JRCk7DQogICAgICAgIHN3aXRjaCAobWVudUtleSkgew0KICAgICAgICAgICAgY2FzZSAicGxheWxpc3QiOg0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IHRoaXMuY3JlYXRlSW5wdXQoImJ1dHRvbiIsIG1lbnVLZXksICJ7ey5idXR0b24ubmV3fX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoImlkIiwgIi0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJwbGF5bGlzdCIpJyk7DQogICAgICAgICAgICAgICAgaW50ZXJhY3Rpb24uYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiZmlsdGVyIjoNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSB0aGlzLmNyZWF0ZUlucHV0KCJidXR0b24iLCBtZW51S2V5LCAie3suYnV0dG9uLm5ld319Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJpZCIsIC0xKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJmaWx0ZXIiLCB0aGlzKScpOw0KICAgICAgICAgICAgICAgIGludGVyYWN0aW9uLmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInhtbHR2IjoNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSB0aGlzLmNyZWF0ZUlucHV0KCJidXR0b24iLCBtZW51S2V5LCAie3suYnV0dG9uLm5ld319Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJpZCIsICJ4bWx0diIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoInhtbHR2IiknKTsNCiAgICAgICAgICAgICAgICBpbnRlcmFjdGlvbi5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ1c2VycyI6DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gdGhpcy5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgbWVudUtleSwgInt7LmJ1dHRvbi5uZXd9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgiaWQiLCAidXNlcnMiKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJ1c2VycyIpJyk7DQogICAgICAgICAgICAgICAgaW50ZXJhY3Rpb24uYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAibWFwcGluZyI6DQogICAgICAgICAgICAgICAgc2hvd0VsZW1lbnQoImxvYWRpbmciLCB0cnVlKTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSB0aGlzLmNyZWF0ZUlucHV0KCJidXR0b24iLCBtZW51S2V5LCAie3suYnV0dG9uLnNhdmV9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBzYXZlUG9wdXBEYXRhKCJtYXBwaW5nIiwgIiIsICIiKScpOw0KICAgICAgICAgICAgICAgIGludGVyYWN0aW9uLmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSB0aGlzLmNyZWF0ZUlucHV0KCJidXR0b24iLCBtZW51S2V5LCAie3suYnV0dG9uLmJ1bGtFZGl0fX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogYnVsa0VkaXQoKScpOw0KICAgICAgICAgICAgICAgIGludGVyYWN0aW9uLmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSB0aGlzLmNyZWF0ZUlucHV0KCJzZWFyY2giLCAic2VhcmNoIiwgIiIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgiaWQiLCAic2VhcmNoTWFwcGluZyIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3suYnV0dG9uLnNlYXJjaH19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuY2xhc3NOYW1lID0gInNlYXJjaCI7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICdqYXZhc2NyaXB0OiBzZWFyY2hJbk1hcHBpbmcoKScpOw0KICAgICAgICAgICAgICAgIGludGVyYWN0aW9uLmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInNldHRpbmdzIjoNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSB0aGlzLmNyZWF0ZUlucHV0KCJidXR0b24iLCBtZW51S2V5LCAie3suYnV0dG9uLnNhdmV9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBzYXZlU2V0dGluZ3MoKTsnKTsNCiAgICAgICAgICAgICAgICBpbnRlcmFjdGlvbi5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gdGhpcy5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgbWVudUtleSwgInt7LmJ1dHRvbi5iYWNrdXB9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBiYWNrdXAoKTsnKTsNCiAgICAgICAgICAgICAgICBpbnRlcmFjdGlvbi5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gdGhpcy5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgbWVudUtleSwgInt7LmJ1dHRvbi5yZXN0b3JlfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogcmVzdG9yZSgpOycpOw0KICAgICAgICAgICAgICAgIGludGVyYWN0aW9uLmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICB2YXIgd3JhcHBlciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIkRJViIpOw0KICAgICAgICAgICAgICAgIHdyYXBwZXIuc2V0QXR0cmlidXRlKCJpZCIsICJib3gtd3JhcHBlciIpOw0KICAgICAgICAgICAgICAgIGRvYy5hcHBlbmRDaGlsZCh3cmFwcGVyKTsNCiAgICAgICAgICAgICAgICB0aGlzLkRpdklEID0gImNvbnRlbnRfc2V0dGluZ3MiOw0KICAgICAgICAgICAgICAgIHZhciBzZXR0aW5ncyA9IHRoaXMuY3JlYXRlRElWKCk7DQogICAgICAgICAgICAgICAgd3JhcHBlci5hcHBlbmRDaGlsZChzZXR0aW5ncyk7DQogICAgICAgICAgICAgICAgc2hvd1NldHRpbmdzKCk7DQogICAgICAgICAgICAgICAgcmV0dXJuOw0KICAgICAgICAgICAgY2FzZSAibG9nIjoNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSB0aGlzLmNyZWF0ZUlucHV0KCJidXR0b24iLCBtZW51S2V5LCAie3suYnV0dG9uLnJlc2V0TG9nc319Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IHJlc2V0TG9ncygpOycpOw0KICAgICAgICAgICAgICAgIGludGVyYWN0aW9uLmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICB2YXIgd3JhcHBlciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIkRJViIpOw0KICAgICAgICAgICAgICAgIHdyYXBwZXIuc2V0QXR0cmlidXRlKCJpZCIsICJib3gtd3JhcHBlciIpOw0KICAgICAgICAgICAgICAgIGRvYy5hcHBlbmRDaGlsZCh3cmFwcGVyKTsNCiAgICAgICAgICAgICAgICB0aGlzLkRpdklEID0gImNvbnRlbnRfbG9nIjsNCiAgICAgICAgICAgICAgICB2YXIgbG9ncyA9IHRoaXMuY3JlYXRlRElWKCk7DQogICAgICAgICAgICAgICAgd3JhcHBlci5hcHBlbmRDaGlsZChsb2dzKTsNCiAgICAgICAgICAgICAgICBzaG93TG9ncyh0cnVlKTsNCiAgICAgICAgICAgICAgICByZXR1cm47DQogICAgICAgICAgICBjYXNlICJsb2dvdXQiOg0KICAgICAgICAgICAgICAgIGxvY2F0aW9uLnJlbG9hZCgpOw0KICAgICAgICAgICAgICAgIGRvY3VtZW50LmNvb2tpZSA9ICJUb2tlbj0gOyBleHBpcmVzID0gVGh1LCAwMSBKYW4gMTk3MCAwMDowMDowMCBHTVQiOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZygiU2hvdyBjb250ZW50IChtZW51S2V5KToiLCBtZW51S2V5KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgfQ0KICAgICAgICAvLyBDcmVhdGUgdGFibGUgKGlmIG5lZWRlZCkNCiAgICAgICAgdmFyIHRhYmxlSGVhZGVyID0gbWVudUl0ZW1zW3RoaXMubWVudUlEXS50YWJsZUhlYWRlcjsNCiAgICAgICAgaWYgKHRhYmxlSGVhZGVyLmxlbmd0aCA+IDApIHsNCiAgICAgICAgICAgIHZhciB3cmFwcGVyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiRElWIik7DQogICAgICAgICAgICBkb2MuYXBwZW5kQ2hpbGQod3JhcHBlcik7DQogICAgICAgICAgICB3cmFwcGVyLnNldEF0dHJpYnV0ZSgiaWQiLCAiYm94LXdyYXBwZXIiKTsNCiAgICAgICAgICAgIHZhciB0YWJsZSA9IHRoaXMuY3JlYXRlVEFCTEUoKTsNCiAgICAgICAgICAgIHdyYXBwZXIuYXBwZW5kQ2hpbGQodGFibGUpOw0KICAgICAgICAgICAgdmFyIGhlYWRlciA9IHRoaXMuY3JlYXRlVGFibGVSb3coKTsNCiAgICAgICAgICAgIHRhYmxlLmFwcGVuZENoaWxkKGhlYWRlcik7DQogICAgICAgICAgICAvLyBUYWJsZSBoZWFkZXINCiAgICAgICAgICAgIHRhYmxlSGVhZGVyLmZvckVhY2goZWxlbWVudCA9PiB7DQogICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBlbGVtZW50Ow0KICAgICAgICAgICAgICAgIGlmIChlbGVtZW50ID09ICJCVUxLIikgew0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJCVUxLX0hFQUQiOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZmFsc2U7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIGlmIChtZW51S2V5ID09ICJtYXBwaW5nIikgew0KICAgICAgICAgICAgICAgICAgICBpZiAoZWxlbWVudCA9PSAie3subWFwcGluZy50YWJsZS5jaE5vfX0iKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLm9uY2xpY2sgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5vbmNsaWNrRnVuY3Rpb24gPSAiamF2YXNjcmlwdDogc29ydFRhYmxlKDEpOyI7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnRkQ2xhc3NOYW1lID0gInNvcnRUaGlzIjsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBpZiAoZWxlbWVudCA9PSAie3subWFwcGluZy50YWJsZS5jaGFubmVsTmFtZX19Iikgew0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5vbmNsaWNrID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwub25jbGlja0Z1bmN0aW9uID0gImphdmFzY3JpcHQ6IHNvcnRUYWJsZSgzKTsiOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIGlmIChlbGVtZW50ID09ICJ7ey5tYXBwaW5nLnRhYmxlLnBsYXlsaXN0fX0iKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLm9uY2xpY2sgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5vbmNsaWNrRnVuY3Rpb24gPSAiamF2YXNjcmlwdDogc29ydFRhYmxlKDQpOyI7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgaWYgKGVsZW1lbnQgPT0gInt7Lm1hcHBpbmcudGFibGUuZ3JvdXBUaXRsZX19Iikgew0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5vbmNsaWNrID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwub25jbGlja0Z1bmN0aW9uID0gImphdmFzY3JpcHQ6IHNvcnRUYWJsZSg1KTsiOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIGlmIChlbGVtZW50ID09ICJ7ey5tYXBwaW5nLnRhYmxlLnRpbWVzaGlmdH19Iikgew0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5vbmNsaWNrID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwub25jbGlja0Z1bmN0aW9uID0gImphdmFzY3JpcHQ6IHNvcnRUYWJsZSg4KTsiOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIGlmIChtZW51S2V5ID09ICJmaWx0ZXIiKSB7DQogICAgICAgICAgICAgICAgICAgIGlmIChlbGVtZW50ID09ICJ7ey5maWx0ZXIudGFibGUuc3RhcnRpbmdDaGFubmVsfX0iKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLm9uY2xpY2sgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5vbmNsaWNrRnVuY3Rpb24gPSAiamF2YXNjcmlwdDogc29ydFRhYmxlKDApOyI7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnRkQ2xhc3NOYW1lID0gInNvcnRUaGlzIjsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBpZiAoZWxlbWVudCA9PSAie3suZmlsdGVyLnRhYmxlLm5hbWV9fSIpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwub25jbGljayA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLm9uY2xpY2tGdW5jdGlvbiA9ICJqYXZhc2NyaXB0OiBzb3J0VGFibGUoMSk7IjsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBpZiAoZWxlbWVudCA9PSAie3suZmlsdGVyLnRhYmxlLnR5cGV9fSIpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwub25jbGljayA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLm9uY2xpY2tGdW5jdGlvbiA9ICJqYXZhc2NyaXB0OiBzb3J0VGFibGUoMik7IjsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBpZiAoZWxlbWVudCA9PSAie3suZmlsdGVyLnRhYmxlLmZpbHRlcn19Iikgew0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5vbmNsaWNrID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwub25jbGlja0Z1bmN0aW9uID0gImphdmFzY3JpcHQ6IHNvcnRUYWJsZSgzKTsiOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIGhlYWRlci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICB9KTsNCiAgICAgICAgICAgIHRhYmxlLmFwcGVuZENoaWxkKGhlYWRlcik7DQogICAgICAgICAgICAvLyBDb250ZW50IG9mIHRoZSB0YWJsZQ0KICAgICAgICAgICAgdmFyIHJvd3MgPSB0aGlzLmNyZWF0ZVRhYmxlQ29udGVudChtZW51S2V5KTsNCiAgICAgICAgICAgIHJvd3MuZm9yRWFjaCh0ciA9PiB7DQogICAgICAgICAgICAgICAgdGFibGUuYXBwZW5kQ2hpbGQodHIpOw0KICAgICAgICAgICAgfSk7DQogICAgICAgIH0NCiAgICAgICAgc3dpdGNoIChtZW51S2V5KSB7DQogICAgICAgICAgICBjYXNlICJtYXBwaW5nIjoNCiAgICAgICAgICAgICAgICBzb3J0VGFibGUoMSk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJmaWx0ZXIiOg0KICAgICAgICAgICAgICAgIHNob3dQcmV2aWV3KHRydWUpOw0KICAgICAgICAgICAgICAgIHNvcnRUYWJsZSgwKTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICAgICAgQ09MVU1OX1RPX1NPUlQgPSAtMTsNCiAgICAgICAgICAgICAgICBzb3J0VGFibGUoMCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIH0NCiAgICAgICAgc2hvd0VsZW1lbnQoImxvYWRpbmciLCBmYWxzZSk7DQogICAgfQ0KfQ0KZnVuY3Rpb24gUGFnZVJlYWR5KCkgew0KICAgIGxldCBzZXJ2ZXIgPSBuZXcgU2VydmVyKCJnZXRTZXJ2ZXJDb25maWciKTsNCiAgICBzZXJ2ZXIucmVxdWVzdCh7fSk7DQogICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoInJlc2l6ZSIsIGZ1bmN0aW9uICgpIHsNCiAgICAgICAgY2FsY3VsYXRlV3JhcHBlckhlaWdodCgpOw0KICAgIH0sIHRydWUpOw0KICAgIHNldEludGVydmFsKGZ1bmN0aW9uICgpIHsNCiAgICAgICAgdXBkYXRlTG9nKCk7DQogICAgfSwgMTAwMDApOw0KICAgIHJldHVybjsNCn0NCmZ1bmN0aW9uIGNyZWF0ZUxheW91dCgpIHsNCiAgICAvLyBDbGllbnQgSW5mbw0KICAgIGxldCBvYmogPSBTRVJWRVJbImNsaWVudEluZm8iXTsNCiAgICBsZXQga2V5cyA9IGdldE93bk9ialByb3BzKG9iaik7DQogICAgZm9yICh2YXIgaSA9IDA7IGkgPCBrZXlzLmxlbmd0aDsgaSsrKSB7DQogICAgICAgIGlmIChkb2N1bWVudC5nZXRFbGVtZW50QnlJZChrZXlzW2ldKSkgew0KICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoa2V5c1tpXSkuaW5uZXJIVE1MID0gb2JqW2tleXNbaV1dOw0KICAgICAgICB9DQogICAgfQ0KICAgIGlmICghZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm1haW4tbWVudSIpKSB7DQogICAgICAgIHJldHVybjsNCiAgICB9DQogICAgLy8gQ3JlYXRlIG1lbnUNCiAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibWFpbi1tZW51IikuaW5uZXJIVE1MID0gIiI7DQogICAgZm9yIChsZXQgaSA9IDA7IGkgPCBtZW51SXRlbXMubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgbWVudUl0ZW1zW2ldLmlkID0gaTsNCiAgICAgICAgc3dpdGNoIChtZW51SXRlbXNbaV1bIm1lbnVLZXkiXSkgew0KICAgICAgICAgICAgY2FzZSAidXNlcnMiOg0KICAgICAgICAgICAgY2FzZSAibG9nb3V0IjoNCiAgICAgICAgICAgICAgICBpZiAoU0VSVkVSWyJzZXR0aW5ncyJdWyJhdXRoZW50aWNhdGlvbi53ZWIiXSA9PSB0cnVlKSB7DQogICAgICAgICAgICAgICAgICAgIG1lbnVJdGVtc1tpXS5jcmVhdGVJdGVtKCk7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAibWFwcGluZyI6DQogICAgICAgICAgICBjYXNlICJ4bWx0diI6DQogICAgICAgICAgICAgICAgaWYgKFNFUlZFUlsiY2xpZW50SW5mbyJdWyJlcGdTb3VyY2UiXSA9PSAiWEVQRyIpIHsNCiAgICAgICAgICAgICAgICAgICAgbWVudUl0ZW1zW2ldLmNyZWF0ZUl0ZW0oKTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBkZWZhdWx0Og0KICAgICAgICAgICAgICAgIG1lbnVJdGVtc1tpXS5jcmVhdGVJdGVtKCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIH0NCiAgICB9DQogICAgcmV0dXJuOw0KfQ0KZnVuY3Rpb24gb3BlblRoaXNNZW51KGVsZW1lbnQpIHsNCiAgICBsZXQgaWQgPSBlbGVtZW50LmlkOw0KICAgIGxldCBjb250ZW50ID0gbmV3IFNob3dDb250ZW50KGlkKTsNCiAgICBjb250ZW50LnNob3coKTsNCiAgICBjYWxjdWxhdGVXcmFwcGVySGVpZ2h0KCk7DQogICAgcmV0dXJuOw0KfQ0KY2xhc3MgUG9wdXBXaW5kb3cgew0KICAgIGNvbnN0cnVjdG9yKCkgew0KICAgICAgICB0aGlzLkRvY3VtZW50SUQgPSAicG9wdXAtY3VzdG9tIjsNCiAgICAgICAgdGhpcy5JbnRlcmFjdGlvbklEID0gImludGVyYWN0aW9uIjsNCiAgICAgICAgdGhpcy5kb2MgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCh0aGlzLkRvY3VtZW50SUQpOw0KICAgIH0NCiAgICBjcmVhdGVUaXRsZSh0aXRsZSkgew0KICAgICAgICBsZXQgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICB0ZC5jbGFzc05hbWUgPSAibGVmdCI7DQogICAgICAgIHRkLmlubmVySFRNTCA9IHRpdGxlICsgIjoiOw0KICAgICAgICByZXR1cm4gdGQ7DQogICAgfQ0KICAgIGNyZWF0ZUNvbnRlbnQoZWxlbWVudCkgew0KICAgICAgICBsZXQgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICB0ZC5hcHBlbmRDaGlsZChlbGVtZW50KTsNCiAgICAgICAgcmV0dXJuIHRkOw0KICAgIH0NCiAgICBjcmVhdGVJbnRlcmFjdGlvbigpIHsNCiAgICAgICAgbGV0IGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOw0KICAgICAgICBkaXYuc2V0QXR0cmlidXRlKCJpZCIsICJwb3B1cC1pbnRlcmFjdGlvbiIpOw0KICAgICAgICBkaXYuY2xhc3NOYW1lID0gImludGVyYWN0aW9uIjsNCiAgICAgICAgdGhpcy5kb2MuYXBwZW5kQ2hpbGQoZGl2KTsNCiAgICB9DQp9DQpjbGFzcyBQb3B1cENvbnRlbnQgZXh0ZW5kcyBQb3B1cFdpbmRvdyB7DQogICAgY29uc3RydWN0b3IoKSB7DQogICAgICAgIHN1cGVyKC4uLmFyZ3VtZW50cyk7DQogICAgICAgIHRoaXMudGFibGUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJUQUJMRSIpOw0KICAgIH0NCiAgICBjcmVhdGVIZWFkbGluZShoZWFkbGluZSkgew0KICAgICAgICB0aGlzLmRvYy5pbm5lckhUTUwgPSAiIjsNCiAgICAgICAgdmFyIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJIMyIpOw0KICAgICAgICBlbGVtZW50LmlubmVySFRNTCA9IGhlYWRsaW5lLnRvVXBwZXJDYXNlKCk7DQogICAgICAgIHRoaXMuZG9jLmFwcGVuZENoaWxkKGVsZW1lbnQpOw0KICAgICAgICAvLyBDcmVhdGUgdGFibGUNCiAgICAgICAgdGhpcy50YWJsZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlRBQkxFIik7DQogICAgICAgIHRoaXMuZG9jLmFwcGVuZENoaWxkKHRoaXMudGFibGUpOw0KICAgIH0NCiAgICBhcHBlbmRSb3codGl0bGUsIGVsZW1lbnQpIHsNCiAgICAgICAgbGV0IHRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVFIiKTsNCiAgICAgICAgLy8gVGl0bGUNCiAgICAgICAgaWYgKHRpdGxlLmxlbmd0aCAhPSAwKSB7DQogICAgICAgICAgICB0ci5hcHBlbmRDaGlsZCh0aGlzLmNyZWF0ZVRpdGxlKHRpdGxlKSk7DQogICAgICAgIH0NCiAgICAgICAgLy8gQ29udGVudA0KICAgICAgICB0ci5hcHBlbmRDaGlsZCh0aGlzLmNyZWF0ZUNvbnRlbnQoZWxlbWVudCkpOw0KICAgICAgICB0aGlzLnRhYmxlLmFwcGVuZENoaWxkKHRyKTsNCiAgICB9DQogICAgY3JlYXRlSW5wdXQodHlwZSwgbmFtZSwgdmFsdWUpIHsNCiAgICAgICAgbGV0IGlucHV0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiSU5QVVQiKTsNCiAgICAgICAgaWYgKHZhbHVlID09IHVuZGVmaW5lZCkgew0KICAgICAgICAgICAgdmFsdWUgPSAiIjsNCiAgICAgICAgfQ0KICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInR5cGUiLCB0eXBlKTsNCiAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJuYW1lIiwgbmFtZSk7DQogICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgidmFsdWUiLCB2YWx1ZSk7DQogICAgICAgIHJldHVybiBpbnB1dDsNCiAgICB9DQogICAgY3JlYXRlQ2hlY2tib3gobmFtZSkgew0KICAgICAgICBsZXQgaW5wdXQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJJTlBVVCIpOw0KICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInR5cGUiLCAiY2hlY2tib3giKTsNCiAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJuYW1lIiwgbmFtZSk7DQogICAgICAgIHJldHVybiBpbnB1dDsNCiAgICB9DQogICAgLy8gQ3JlYXRlcyBhIHNlbGVjdGlvbiBvZiBtdWx0aXBsZSBvcHRpb25zIHZhbHVlcyB3aXRoIHRleHQgZGVzY3JpcHRpb25zDQogICAgY3JlYXRlU2VsZWN0KHRleHQsIHZhbHVlcywgc2V0LCBkYktleSkgew0KICAgICAgICBsZXQgc2VsZWN0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiU0VMRUNUIik7DQogICAgICAgIHNlbGVjdC5zZXRBdHRyaWJ1dGUoIm5hbWUiLCBkYktleSk7DQogICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGV4dC5sZW5ndGg7IGkrKykgew0KICAgICAgICAgICAgbGV0IG9wdGlvbiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIk9QVElPTiIpOw0KICAgICAgICAgICAgb3B0aW9uLnNldEF0dHJpYnV0ZSgidmFsdWUiLCB2YWx1ZXNbaV0pOw0KICAgICAgICAgICAgb3B0aW9uLmlubmVyVGV4dCA9IHRleHRbaV07DQogICAgICAgICAgICBzZWxlY3QuYXBwZW5kQ2hpbGQob3B0aW9uKTsNCiAgICAgICAgfQ0KICAgICAgICBpZiAoc2V0ICE9ICIiKSB7DQogICAgICAgICAgICBzZWxlY3QudmFsdWUgPSBzZXQ7DQogICAgICAgIH0NCiAgICAgICAgaWYgKHNldCA9PSB1bmRlZmluZWQpIHsNCiAgICAgICAgICAgIHNlbGVjdC52YWx1ZSA9IHZhbHVlc1swXTsNCiAgICAgICAgfQ0KICAgICAgICByZXR1cm4gc2VsZWN0Ow0KICAgIH0NCiAgICBzZWxlY3RPcHRpb24oc2VsZWN0LCB2YWx1ZSkgew0KICAgICAgICAvL3NlbGVjdC5zZWxlY3RlZE9wdGlvbnMgPSB2YWx1ZQ0KICAgICAgICBsZXQgcyA9IHNlbGVjdDsNCiAgICAgICAgcy5vcHRpb25zW3Muc2VsZWN0ZWRJbmRleF0udmFsdWUgPSB2YWx1ZTsNCiAgICAgICAgcmV0dXJuIHNlbGVjdDsNCiAgICB9DQogICAgZGVzY3JpcHRpb24odmFsdWUpIHsNCiAgICAgICAgbGV0IHRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVFIiKTsNCiAgICAgICAgbGV0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgbGV0IHNwYW4gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJQUkUiKTsNCiAgICAgICAgc3Bhbi5pbm5lckhUTUwgPSB2YWx1ZTsNCiAgICAgICAgdHIuYXBwZW5kQ2hpbGQodGQpOw0KICAgICAgICB0ci5hcHBlbmRDaGlsZCh0aGlzLmNyZWF0ZUNvbnRlbnQoc3BhbikpOw0KICAgICAgICB0aGlzLnRhYmxlLmFwcGVuZENoaWxkKHRyKTsNCiAgICB9DQogICAgLy8gSW50ZXJhY3Rpb24NCiAgICBhZGRJbnRlcmFjdGlvbihlbGVtZW50KSB7DQogICAgICAgIGxldCBpbnRlcmFjdGlvbiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJwb3B1cC1pbnRlcmFjdGlvbiIpOw0KICAgICAgICBpbnRlcmFjdGlvbi5hcHBlbmRDaGlsZChlbGVtZW50KTsNCiAgICB9DQp9DQpmdW5jdGlvbiBvcGVuUG9wVXAoZGF0YVR5cGUsIGVsZW1lbnQpIHsNCiAgICBsZXQgZGF0YSA9IHt9Ow0KICAgIGxldCBpZDsNCiAgICBzd2l0Y2ggKGVsZW1lbnQpIHsNCiAgICAgICAgY2FzZSB1bmRlZmluZWQ6DQogICAgICAgICAgICBzd2l0Y2ggKGRhdGFUeXBlKSB7DQogICAgICAgICAgICAgICAgY2FzZSAiZ3JvdXAtdGl0bGUiOg0KICAgICAgICAgICAgICAgICAgICBpZiAoaWQgPT0gdW5kZWZpbmVkKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBpZCA9IC0xOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIGRhdGEgPSBnZXRMb2NhbERhdGEoImZpbHRlciIsIGlkKTsNCiAgICAgICAgICAgICAgICAgICAgZGF0YVsidHlwZSJdID0gImdyb3VwLXRpdGxlIjsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAiY3VzdG9tLWZpbHRlciI6DQogICAgICAgICAgICAgICAgICAgIGlmIChpZCA9PSB1bmRlZmluZWQpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGlkID0gLTE7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgZGF0YSA9IGdldExvY2FsRGF0YSgiZmlsdGVyIiwgaWQpOw0KICAgICAgICAgICAgICAgICAgICBkYXRhWyJ0eXBlIl0gPSAiY3VzdG9tLWZpbHRlciI7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICAgICAgICAgIGRhdGFbImlkLnByb3ZpZGVyIl0gPSAiLSI7DQogICAgICAgICAgICAgICAgICAgIGRhdGFbInR5cGUiXSA9IGRhdGFUeXBlOw0KICAgICAgICAgICAgICAgICAgICBpZCA9ICItIjsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgIGlkID0gZWxlbWVudC5pZDsNCiAgICAgICAgICAgIGRhdGEgPSBnZXRMb2NhbERhdGEoZGF0YVR5cGUsIGlkKTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgIH0NCiAgICBsZXQgY29udGVudCA9IG5ldyBQb3B1cENvbnRlbnQoKTsNCiAgICBzd2l0Y2ggKGRhdGFUeXBlKSB7DQogICAgICAgIGNhc2UgInBsYXlsaXN0IjoNCiAgICAgICAgICAgIGNvbnRlbnQuY3JlYXRlSGVhZGxpbmUoInt7LnBsYXlsaXN0LnBsYXlsaXN0VHlwZS50aXRsZX19Iik7DQogICAgICAgICAgICAvLyBUeXBlDQogICAgICAgICAgICB2YXIgdGV4dCA9IFsiTTNVIiwgIkhESG9tZVJ1biJdOw0KICAgICAgICAgICAgdmFyIHZhbHVlcyA9IFsiamF2YXNjcmlwdDogb3BlblBvcFVwKCdtM3UnKSIsICJqYXZhc2NyaXB0OiBvcGVuUG9wVXAoJ2hkaHInKSJdOw0KICAgICAgICAgICAgdmFyIHNlbGVjdCA9IGNvbnRlbnQuY3JlYXRlU2VsZWN0KHRleHQsIHZhbHVlcywgIiIsICJ0eXBlIik7DQogICAgICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJpZCIsICJ0eXBlIik7DQogICAgICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICdqYXZhc2NyaXB0OiBjaGFuZ2VCdXR0b25BY3Rpb24odGhpcywgIm5leHQiLCAib25jbGljayIpJyk7IC8vIGNoYW5nZUJ1dHRvbkFjdGlvbg0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnBsYXlsaXN0LnR5cGUudGl0bGV9fSIsIHNlbGVjdCk7DQogICAgICAgICAgICAvLyBJbnRlcmFjdGlvbg0KICAgICAgICAgICAgY29udGVudC5jcmVhdGVJbnRlcmFjdGlvbigpOw0KICAgICAgICAgICAgLy8gQWJvcnQNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJjYW5jZWwiLCAie3suYnV0dG9uLmNhbmNlbH19Iik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogc2hvd0VsZW1lbnQoInBvcHVwIiwgZmFsc2UpOycpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICAvLyBOZXh0DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAibmV4dCIsICJ7ey5idXR0b24ubmV4dH19Iik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJtM3UiKScpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJpZCIsICduZXh0Jyk7DQogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJtM3UiOg0KICAgICAgICAgICAgY29udGVudC5jcmVhdGVIZWFkbGluZShkYXRhVHlwZSk7DQogICAgICAgICAgICAvLyBOYW1lDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAibmFtZSI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3sucGxheWxpc3QubmFtZS5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sucGxheWxpc3QubmFtZS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgLy8gRGVzY3JpcHRpb24NCiAgICAgICAgICAgIHZhciBkYktleSA9ICJkZXNjcmlwdGlvbiI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3sucGxheWxpc3QuZGVzY3JpcHRpb24ucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnBsYXlsaXN0LmRlc2NyaXB0aW9uLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBVUkwNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJmaWxlLnNvdXJjZSI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3sucGxheWxpc3QuZmlsZU0zVS5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sucGxheWxpc3QuZmlsZU0zVS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgLy8gVHVuZXINCiAgICAgICAgICAgIGlmIChTRVJWRVJbInNldHRpbmdzIl1bImJ1ZmZlciJdICE9ICItIikgew0KICAgICAgICAgICAgICAgIHZhciB0ZXh0ID0gW107DQogICAgICAgICAgICAgICAgdmFyIHZhbHVlcyA9IFtdOw0KICAgICAgICAgICAgICAgIGZvciAodmFyIGkgPSAxOyBpIDw9IDEwMDsgaSsrKSB7DQogICAgICAgICAgICAgICAgICAgIHRleHQucHVzaChpLnRvU3RyaW5nKCkpOw0KICAgICAgICAgICAgICAgICAgICB2YWx1ZXMucHVzaChpLnRvU3RyaW5nKCkpOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB2YXIgZGJLZXkgPSAidHVuZXIiOw0KICAgICAgICAgICAgICAgIHZhciBzZWxlY3QgPSBjb250ZW50LmNyZWF0ZVNlbGVjdCh0ZXh0LCB2YWx1ZXMsIGRhdGFbZGJLZXldLCBkYktleSk7DQogICAgICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25mb2N1cyIsICJqYXZhc2NyaXB0OiByZXR1cm47Iik7DQogICAgICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnBsYXlsaXN0LnR1bmVyLnRpdGxlfX0iLCBzZWxlY3QpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgZWxzZSB7DQogICAgICAgICAgICAgICAgdmFyIGRiS2V5ID0gInR1bmVyIjsNCiAgICAgICAgICAgICAgICBpZiAoZGF0YVtkYktleV0gPT0gdW5kZWZpbmVkKSB7DQogICAgICAgICAgICAgICAgICAgIGRhdGFbZGJLZXldID0gMTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJyZWFkb25seSIsICJ0cnVlIik7DQogICAgICAgICAgICAgICAgaW5wdXQuY2xhc3NOYW1lID0gIm5vdEF2YWlsYWJsZSI7DQogICAgICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnBsYXlsaXN0LnR1bmVyLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBjb250ZW50LmRlc2NyaXB0aW9uKCJ7ey5wbGF5bGlzdC50dW5lci5kZXNjcmlwdGlvbn19Iik7DQogICAgICAgICAgICAvLyBJbnRlcmF0aW9uDQogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUludGVyYWN0aW9uKCk7DQogICAgICAgICAgICAvLyBEZWxldGUNCiAgICAgICAgICAgIGlmIChkYXRhWyJpZC5wcm92aWRlciJdICE9ICItIikgew0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJkZWxldGUiLCAie3suYnV0dG9uLmRlbGV0ZX19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuY2xhc3NOYW1lID0gImRlbGV0ZSI7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoIm0zdSIsICInICsgaWQgKyAnIiwgdHJ1ZSwgMCknKTsNCiAgICAgICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJiYWNrIiwgInt7LmJ1dHRvbi5iYWNrfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJwbGF5bGlzdCIpJyk7DQogICAgICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICAvLyBBYm9ydA0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImNhbmNlbCIsICJ7ey5idXR0b24uY2FuY2VsfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBzaG93RWxlbWVudCgicG9wdXAiLCBmYWxzZSk7Jyk7DQogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIC8vIFVwZGF0ZQ0KICAgICAgICAgICAgaWYgKGRhdGFbImlkLnByb3ZpZGVyIl0gIT0gIi0iKSB7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgInVwZGF0ZSIsICJ7ey5idXR0b24udXBkYXRlfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogc2F2ZVBvcHVwRGF0YSgibTN1IiwgIicgKyBpZCArICciLCBmYWxzZSwgMSknKTsNCiAgICAgICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIC8vIFNhdmUNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJzYXZlIiwgInt7LmJ1dHRvbi5zYXZlfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBzYXZlUG9wdXBEYXRhKCJtM3UiLCAiJyArIGlkICsgJyIsIGZhbHNlLCAwKScpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSAiaGRociI6DQogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUhlYWRsaW5lKGRhdGFUeXBlKTsNCiAgICAgICAgICAgIC8vIE5hbWUNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJuYW1lIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5wbGF5bGlzdC5uYW1lLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5wbGF5bGlzdC5uYW1lLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBEZXNjcmlwdGlvbg0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gImRlc2NyaXB0aW9uIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5wbGF5bGlzdC5kZXNjcmlwdGlvbi5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sucGxheWxpc3QuZGVzY3JpcHRpb24ucGxhY2Vob2xkZXJ9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIFVSTA0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gImZpbGUuc291cmNlIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5wbGF5bGlzdC5maWxlSERIUi5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sucGxheWxpc3QuZmlsZUhESFIudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIFR1bmVyDQogICAgICAgICAgICBpZiAoU0VSVkVSWyJzZXR0aW5ncyJdWyJidWZmZXIiXSAhPSAiLSIpIHsNCiAgICAgICAgICAgICAgICB2YXIgdGV4dCA9IFtdOw0KICAgICAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBbXTsNCiAgICAgICAgICAgICAgICBmb3IgKHZhciBpID0gMTsgaSA8PSAxMDA7IGkrKykgew0KICAgICAgICAgICAgICAgICAgICB0ZXh0LnB1c2goaS50b1N0cmluZygpKTsNCiAgICAgICAgICAgICAgICAgICAgdmFsdWVzLnB1c2goaS50b1N0cmluZygpKTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgdmFyIGRiS2V5ID0gInR1bmVyIjsNCiAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCBkYXRhW2RiS2V5XSwgZGJLZXkpOw0KICAgICAgICAgICAgICAgIHNlbGVjdC5zZXRBdHRyaWJ1dGUoIm9uZm9jdXMiLCAiamF2YXNjcmlwdDogcmV0dXJuOyIpOw0KICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5wbGF5bGlzdC50dW5lci50aXRsZX19Iiwgc2VsZWN0KTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgICAgIHZhciBkYktleSA9ICJ0dW5lciI7DQogICAgICAgICAgICAgICAgaWYgKGRhdGFbZGJLZXldID09IHVuZGVmaW5lZCkgew0KICAgICAgICAgICAgICAgICAgICBkYXRhW2RiS2V5XSA9IDE7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicmVhZG9ubHkiLCAidHJ1ZSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LmNsYXNzTmFtZSA9ICJub3RBdmFpbGFibGUiOw0KICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5wbGF5bGlzdC50dW5lci50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgY29udGVudC5kZXNjcmlwdGlvbigie3sucGxheWxpc3QudHVuZXIuZGVzY3JpcHRpb259fSIpOw0KICAgICAgICAgICAgLy8gSW50ZXJhY3Rpb24NCiAgICAgICAgICAgIGNvbnRlbnQuY3JlYXRlSW50ZXJhY3Rpb24oKTsNCiAgICAgICAgICAgIC8vIERlbGV0ZQ0KICAgICAgICAgICAgaWYgKGRhdGFbImlkLnByb3ZpZGVyIl0gIT0gIi0iKSB7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImRlbGV0ZSIsICJ7ey5idXR0b24uZGVsZXRlfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogc2F2ZVBvcHVwRGF0YSgiaGRociIsICInICsgaWQgKyAnIiwgdHJ1ZSwgMCknKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5jbGFzc05hbWUgPSAiZGVsZXRlIjsNCiAgICAgICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJiYWNrIiwgInt7LmJ1dHRvbi5iYWNrfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJwbGF5bGlzdCIpJyk7DQogICAgICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICAvLyBBYm9ydA0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImNhbmNlbCIsICJ7ey5idXR0b24uY2FuY2VsfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBzaG93RWxlbWVudCgicG9wdXAiLCBmYWxzZSk7Jyk7DQogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIC8vIFVwZGF0ZQ0KICAgICAgICAgICAgaWYgKGRhdGFbImlkLnByb3ZpZGVyIl0gIT0gIi0iKSB7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgInVwZGF0ZSIsICJ7ey5idXR0b24udXBkYXRlfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogc2F2ZVBvcHVwRGF0YSgiaGRociIsICInICsgaWQgKyAnIiwgZmFsc2UsIDEpJyk7DQogICAgICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICAvLyBTYXZlDQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAic2F2ZSIsICJ7ey5idXR0b24uc2F2ZX19Iik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogc2F2ZVBvcHVwRGF0YSgiaGRociIsICInICsgaWQgKyAnIiwgZmFsc2UsIDApJyk7DQogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJmaWx0ZXIiOg0KICAgICAgICAgICAgY29udGVudC5jcmVhdGVIZWFkbGluZShkYXRhVHlwZSk7DQogICAgICAgICAgICAvLyBUeXBlDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAidHlwZSI7DQogICAgICAgICAgICB2YXIgdGV4dCA9IFsiTTNVOiAiICsgInt7LmZpbHRlci50eXBlLmdyb3VwVGl0bGV9fSIsICJ4VGVWZTogIiArICJ7ey5maWx0ZXIudHlwZS5jdXN0b21GaWx0ZXJ9fSJdOw0KICAgICAgICAgICAgdmFyIHZhbHVlcyA9IFsiamF2YXNjcmlwdDogb3BlblBvcFVwKCdncm91cC10aXRsZScpIiwgImphdmFzY3JpcHQ6IG9wZW5Qb3BVcCgnY3VzdG9tLWZpbHRlcicpIl07DQogICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCAiamF2YXNjcmlwdDogb3BlblBvcFVwKCdncm91cC10aXRsZScpIiwgZGJLZXkpOw0KICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgiaWQiLCBpZCk7DQogICAgICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICdqYXZhc2NyaXB0OiBjaGFuZ2VCdXR0b25BY3Rpb24odGhpcywgIm5leHQiLCAib25jbGljayIpOycpOyAvLyBjaGFuZ2VCdXR0b25BY3Rpb24NCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5maWx0ZXIudHlwZS50aXRsZX19Iiwgc2VsZWN0KTsNCiAgICAgICAgICAgIC8vIEludGVyYWN0aW9uDQogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUludGVyYWN0aW9uKCk7DQogICAgICAgICAgICAvLyBBYm9ydA0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImNhbmNlbCIsICJ7ey5idXR0b24uY2FuY2VsfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBzaG93RWxlbWVudCgicG9wdXAiLCBmYWxzZSk7Jyk7DQogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIC8vIE5leHQNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJuZXh0IiwgInt7LmJ1dHRvbi5uZXh0fX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoImdyb3VwLXRpdGxlIiknKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgiaWQiLCAnbmV4dCcpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSAiY3VzdG9tLWZpbHRlciI6DQogICAgICAgIGNhc2UgImdyb3VwLXRpdGxlIjoNCiAgICAgICAgICAgIHN3aXRjaCAoZGF0YVR5cGUpIHsNCiAgICAgICAgICAgICAgICBjYXNlICJjdXN0b20tZmlsdGVyIjoNCiAgICAgICAgICAgICAgICAgICAgY29udGVudC5jcmVhdGVIZWFkbGluZSgie3suZmlsdGVyLmN1c3RvbX19IiArICIgRmlsdGVyIik7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgImdyb3VwLXRpdGxlIjoNCiAgICAgICAgICAgICAgICAgICAgY29udGVudC5jcmVhdGVIZWFkbGluZSgie3suZmlsdGVyLmdyb3VwfX0iICsgIiBGaWx0ZXIiKTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICB9DQogICAgICAgICAgICAvLyBOYW1lICAgICAgDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAibmFtZSI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3suZmlsdGVyLm5hbWUucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LmZpbHRlci5uYW1lLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBEZXNjcmlwdGlvbg0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gImRlc2NyaXB0aW9uIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5maWx0ZXIuZGVzY3JpcHRpb24ucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LmZpbHRlci5kZXNjcmlwdGlvbi50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgLy8gVHlwZQ0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gInR5cGUiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiaGlkZGVuIiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCIiLCBpbnB1dCk7DQogICAgICAgICAgICB2YXIgZmlsdGVyVHlwZSA9IGRhdGFbZGJLZXldOw0KICAgICAgICAgICAgc3dpdGNoIChmaWx0ZXJUeXBlKSB7DQogICAgICAgICAgICAgICAgY2FzZSAiY3VzdG9tLWZpbHRlciI6DQogICAgICAgICAgICAgICAgICAgIC8vIENhc2Ugc2Vuc2l0aXZlDQogICAgICAgICAgICAgICAgICAgIHZhciBkYktleSA9ICJjYXNlU2Vuc2l0aXZlIjsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChkYktleSk7DQogICAgICAgICAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhW2RiS2V5XTsNCiAgICAgICAgICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LmZpbHRlci5jYXNlU2Vuc2l0aXZlLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAgICAgICAgIC8vIEZpbHRlciBSdWxlIChDdXN0b20pDQogICAgICAgICAgICAgICAgICAgIHZhciBkYktleSA9ICJmaWx0ZXIiOw0KICAgICAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5maWx0ZXIuZmlsdGVyUnVsZS5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5maWx0ZXIuZmlsdGVyUnVsZS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBjYXNlICJncm91cC10aXRsZSI6DQogICAgICAgICAgICAgICAgICAgIC8vYWxlcnQoZGJLZXkgKyAiICIgKyBmaWx0ZXJUeXBlKQ0KICAgICAgICAgICAgICAgICAgICAvLyBGaWx0ZXIgYmFzZWQgb24gdGhlIGdyb3VwcyBpbiB0aGUgTTNVDQogICAgICAgICAgICAgICAgICAgIHZhciBkYktleSA9ICJmaWx0ZXIiOw0KICAgICAgICAgICAgICAgICAgICB2YXIgZ3JvdXBzTTNVID0gZ2V0TG9jYWxEYXRhKCJtM3VHcm91cHMiLCAiIik7DQogICAgICAgICAgICAgICAgICAgIHZhciB0ZXh0ID0gZ3JvdXBzTTNVWyJ0ZXh0Il07DQogICAgICAgICAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBncm91cHNNM1VbInZhbHVlIl07DQogICAgICAgICAgICAgICAgICAgIHZhciBzZWxlY3QgPSBjb250ZW50LmNyZWF0ZVNlbGVjdCh0ZXh0LCB2YWx1ZXMsIGRhdGFbZGJLZXldLCBkYktleSk7DQogICAgICAgICAgICAgICAgICAgIHNlbGVjdC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5maWx0ZXIuZmlsdGVyR3JvdXAudGl0bGV9fSIsIHNlbGVjdCk7DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuZGVzY3JpcHRpb24oInt7LmZpbHRlci5maWx0ZXJHcm91cC5kZXNjcmlwdGlvbn19Iik7DQogICAgICAgICAgICAgICAgICAgIC8vIENhc2Ugc2Vuc2V0aXZlDQogICAgICAgICAgICAgICAgICAgIHZhciBkYktleSA9ICJjYXNlU2Vuc2l0aXZlIjsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChkYktleSk7DQogICAgICAgICAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhW2RiS2V5XTsNCiAgICAgICAgICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LmZpbHRlci5jYXNlU2Vuc2l0aXZlLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAgICAgICAgIHZhciBkYktleSA9ICJpbmNsdWRlIjsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3suZmlsdGVyLmluY2x1ZGUucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3suZmlsdGVyLmluY2x1ZGUudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgICAgICAgICAgY29udGVudC5kZXNjcmlwdGlvbigie3suZmlsdGVyLmluY2x1ZGUuZGVzY3JpcHRpb259fSIpOw0KICAgICAgICAgICAgICAgICAgICB2YXIgZGJLZXkgPSAiZXhjbHVkZSI7DQogICAgICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LmZpbHRlci5leGNsdWRlLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LmZpbHRlci5leGNsdWRlLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuZGVzY3JpcHRpb24oInt7LmZpbHRlci5leGNsdWRlLmRlc2NyaXB0aW9ufX0iKTsNCiAgICAgICAgICAgICAgICAgICAgLy8gUHJlc2VydmUgTTNVIFBsYXlsaXN0IENoYW5uZWwgTWFwcGluZw0KICAgICAgICAgICAgICAgICAgICB2YXIgZGJLZXkgPSAicHJlc2VydmVNYXBwaW5nIjsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChkYktleSk7DQogICAgICAgICAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhW2RiS2V5XTsNCiAgICAgICAgICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LmZpbHRlci5wcmVzZXJ2ZU1hcHBpbmcudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgICAgICAgICAgLy8gU3RhcnRpbmcgQ2hhbm5lbCBOdW1iZXIgTWFwcGluZw0KICAgICAgICAgICAgICAgICAgICB2YXIgZGJLZXkgPSAic3RhcnRpbmdDaGFubmVsIjsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3suZmlsdGVyLnN0YXJ0aW5nQ2hhbm5lbC5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5maWx0ZXIuc3RhcnRpbmdDaGFubmVsLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAgICAgICAgIC8vIEZpbGwgTWlzc2luZyBFUEcgRGF0YQ0KICAgICAgICAgICAgICAgICAgICAvLyBUaGUgZm9sbG93aW5nIGNvZGUgb25seSB3b3JrcyB3aGVuIHhUZVZlIER1bW15IGFscmVhZHkgZXhpc3RzDQogICAgICAgICAgICAgICAgICAgIC8vIHZhciBkYktleTpzdHJpbmcgPSAiZGVmYXVsdE1pc3NpbmdFUEciDQogICAgICAgICAgICAgICAgICAgIC8vIHZhciB4bWx0djpYTUxUVkZpbGUgPSBuZXcgWE1MVFZGaWxlKCkNCiAgICAgICAgICAgICAgICAgICAgLy8gdmFyIHNlbGVjdCA9IHhtbHR2LmdldFByb2dyYW1zKCJ4VGVWZSBEdW1teSIsIGRhdGFbZGJLZXldKQ0KICAgICAgICAgICAgICAgICAgICAvLyBzZWxlY3Quc2V0QXR0cmlidXRlKCJuYW1lIiwgZGJLZXkpDQogICAgICAgICAgICAgICAgICAgIC8vIHNlbGVjdC5zZXRBdHRyaWJ1dGUoImlkIiwgInBvcHVwLW1pc3NpbmctZXBnIikNCiAgICAgICAgICAgICAgICAgICAgLy8gVGhlIHdvcmthcm91bmQgaXMgY3VycmVudGx5IHRvIGhhcmQgY29kZSB0aGUgeFRlVmUgRHVtbXkgZGF0YQ0KICAgICAgICAgICAgICAgICAgICB2YXIgZGJLZXkgPSAiZGVmYXVsdE1pc3NpbmdFUEciOw0KICAgICAgICAgICAgICAgICAgICB2YXIgbGlzdE9wdGlvbnMgPSB7ICJ0ZXh0IjogWyItIiwgIjMwIE1pbnV0ZXMgKDMwX01pbnV0ZXMpIiwgIjYwIE1pbnV0ZXMgKDYwX01pbnV0ZXMpIiwgIjkwIE1pbnV0ZXMgKDkwX01pbnV0ZXMpIiwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAiMTIwIE1pbnV0ZXMgKDEyMF9NaW51dGVzKSIsICIxODAgTWludXRlcyAoMzBfTWludXRlcykiLCAiMjQwIE1pbnV0ZXMgKDMwX01pbnV0ZXMpIiwgIjM2MCBNaW51dGVzICgzMF9NaW51dGVzKSJdLA0KICAgICAgICAgICAgICAgICAgICAgICAgInZhbHVlIjogWyItIiwgIjMwX01pbnV0ZXMiLCAiNjBfTWludXRlcyIsICI5MF9NaW51dGVzIiwgIjEyMF9NaW51dGVzIiwgIjE4MF9NaW51dGVzIiwgIjI0MF9NaW51dGVzIiwgIjM2MF9NaW51dGVzIixdIH07DQogICAgICAgICAgICAgICAgICAgIHZhciB0ZXh0ID0gbGlzdE9wdGlvbnNbInRleHQiXTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHZhbHVlcyA9IGxpc3RPcHRpb25zWyJ2YWx1ZSJdOw0KICAgICAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCBkYXRhW2RiS2V5XSwgZGJLZXkpOw0KICAgICAgICAgICAgICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3suZmlsdGVyLmRlZmF1bHRNaXNzaW5nRVBHLnRpdGxlfX0iLCBzZWxlY3QpOw0KICAgICAgICAgICAgICAgICAgICBjb250ZW50LmRlc2NyaXB0aW9uKCJ7ey5maWx0ZXIuZGVmYXVsdE1pc3NpbmdFUEcuZGVzY3JpcHRpb259fSIpOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBkZWZhdWx0Og0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIC8vIEludGVyYWN0aW9uDQogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUludGVyYWN0aW9uKCk7DQogICAgICAgICAgICAvLyBEZWxldGUNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJkZWxldGUiLCAie3suYnV0dG9uLmRlbGV0ZX19Iik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogc2F2ZVBvcHVwRGF0YSgiZmlsdGVyIiwgIicgKyBpZCArICciLCB0cnVlLCAwKScpOw0KICAgICAgICAgICAgaW5wdXQuY2xhc3NOYW1lID0gImRlbGV0ZSI7DQogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIC8vIEFib3J0DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAiY2FuY2VsIiwgInt7LmJ1dHRvbi5jYW5jZWx9fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IHNob3dFbGVtZW50KCJwb3B1cCIsIGZhbHNlKTsnKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgLy8gU2F2ZQ0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgInNhdmUiLCAie3suYnV0dG9uLnNhdmV9fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoImZpbHRlciIsICInICsgaWQgKyAnIiwgZmFsc2UsIDApJyk7DQogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJ4bWx0diI6DQogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUhlYWRsaW5lKGRhdGFUeXBlKTsNCiAgICAgICAgICAgIC8vIE5hbWUNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJuYW1lIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey54bWx0di5uYW1lLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey54bWx0di5uYW1lLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBEZXNjcmlwdGlvbg0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gImRlc2NyaXB0aW9uIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey54bWx0di5kZXNjcmlwdGlvbi5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sueG1sdHYuZGVzY3JpcHRpb24udGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIFVSTA0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gImZpbGUuc291cmNlIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey54bWx0di5maWxlWE1MVFYucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnhtbHR2LmZpbGVYTUxUVi50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgLy8gSW50ZXJhY3Rpb24NCiAgICAgICAgICAgIGNvbnRlbnQuY3JlYXRlSW50ZXJhY3Rpb24oKTsNCiAgICAgICAgICAgIC8vIERlbGV0ZQ0KICAgICAgICAgICAgaWYgKGRhdGFbImlkLnByb3ZpZGVyIl0gIT0gIi0iKSB7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImRlbGV0ZSIsICJ7ey5idXR0b24uZGVsZXRlfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogc2F2ZVBvcHVwRGF0YSgieG1sdHYiLCAiJyArIGlkICsgJyIsIHRydWUsIDApJyk7DQogICAgICAgICAgICAgICAgaW5wdXQuY2xhc3NOYW1lID0gImRlbGV0ZSI7DQogICAgICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICAvLyBBYm9ydA0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImNhbmNlbCIsICJ7ey5idXR0b24uY2FuY2VsfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBzaG93RWxlbWVudCgicG9wdXAiLCBmYWxzZSk7Jyk7DQogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIC8vIFVwZGF0ZQ0KICAgICAgICAgICAgaWYgKGRhdGFbImlkLnByb3ZpZGVyIl0gIT0gIi0iKSB7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgInVwZGF0ZSIsICJ7ey5idXR0b24udXBkYXRlfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogc2F2ZVBvcHVwRGF0YSgieG1sdHYiLCAiJyArIGlkICsgJyIsIGZhbHNlLCAxKScpOw0KICAgICAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgLy8gU2F2ZQ0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgInNhdmUiLCAie3suYnV0dG9uLnNhdmV9fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoInhtbHR2IiwgIicgKyBpZCArICciLCBmYWxzZSwgMCknKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGNhc2UgInVzZXJzIjoNCiAgICAgICAgICAgIGNvbnRlbnQuY3JlYXRlSGVhZGxpbmUoInt7Lm1haW5NZW51Lml0ZW0udXNlcnN9fSIpOw0KICAgICAgICAgICAgLy8gVXNlciBuYW1lDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAidXNlcm5hbWUiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnVzZXJzLnVzZXJuYW1lLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey51c2Vycy51c2VybmFtZS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgLy8gTmV3IFBhcnNzd29yZA0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gInBhc3N3b3JkIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInBhc3N3b3JkIiwgZGJLZXksICIiKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3sudXNlcnMucGFzc3dvcmQucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnVzZXJzLnBhc3N3b3JkLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBDb25maXJtYXRpb24NCiAgICAgICAgICAgIHZhciBkYktleSA9ICJjb25maXJtIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInBhc3N3b3JkIiwgZGJLZXksICIiKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3sudXNlcnMuY29uZmlybS5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sudXNlcnMuY29uZmlybS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgLy8gQXV0aGVudGljYXRpb24gV0VCDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAiYXV0aGVudGljYXRpb24ud2ViIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goZGJLZXkpOw0KICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGFbZGJLZXldOw0KICAgICAgICAgICAgaWYgKGRhdGFbImRlZmF1bHRVc2VyIl0gPT0gdHJ1ZSkgew0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICJqYXZhc2NyaXB0OiByZXR1cm4gZmFsc2UiKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey51c2Vycy53ZWIudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIEF1dGhlbnRpY2F0aW9uIFBNUw0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gImF1dGhlbnRpY2F0aW9uLnBtcyI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KGRiS2V5KTsNCiAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhW2RiS2V5XTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey51c2Vycy5wbXMudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIEF1dGhlbnRpY2F0aW9uIE0zVQ0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gImF1dGhlbnRpY2F0aW9uLm0zdSI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KGRiS2V5KTsNCiAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhW2RiS2V5XTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey51c2Vycy5tM3UudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIEF1dGhlbnRpY2F0aW9uIFhNTA0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gImF1dGhlbnRpY2F0aW9uLnhtbCI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KGRiS2V5KTsNCiAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhW2RiS2V5XTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey51c2Vycy54bWwudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIEF1dGhlbnRpY2F0aW9uIEFQSQ0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gImF1dGhlbnRpY2F0aW9uLmFwaSI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KGRiS2V5KTsNCiAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhW2RiS2V5XTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey51c2Vycy5hcGkudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIEludGVyYWN0aW9uDQogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUludGVyYWN0aW9uKCk7DQogICAgICAgICAgICAvLyBEZWxldGUNCiAgICAgICAgICAgIGlmIChkYXRhWyJkZWZhdWx0VXNlciJdICE9IHRydWUgJiYgaWQgIT0gIi0iKSB7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImRlbGV0ZSIsICJ7ey5idXR0b24uZGVsZXRlfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5jbGFzc05hbWUgPSAiZGVsZXRlIjsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogc2F2ZVBvcHVwRGF0YSgiJyArIGRhdGFUeXBlICsgJyIsICInICsgaWQgKyAnIiwgdHJ1ZSwgMCknKTsNCiAgICAgICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIC8vIEFib3J0DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAiY2FuY2VsIiwgInt7LmJ1dHRvbi5jYW5jZWx9fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IHNob3dFbGVtZW50KCJwb3B1cCIsIGZhbHNlKTsnKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgLy8gU2F2ZQ0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgInNhdmUiLCAie3suYnV0dG9uLnNhdmV9fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoIicgKyBkYXRhVHlwZSArICciLCAiJyArIGlkICsgJyIsICJmYWxzZSIpOycpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSAibWFwcGluZyI6DQogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUhlYWRsaW5lKCJ7ey5tYWluTWVudS5pdGVtLm1hcHBpbmd9fSIpOw0KICAgICAgICAgICAgLy8gQWN0aXZlDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAieC1hY3RpdmUiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChkYktleSk7DQogICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YVtkYktleV07DQogICAgICAgICAgICBpbnB1dC5pZCA9ICJhY3RpdmUiOw0KICAgICAgICAgICAgLy9pbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIikNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdG9nZ2xlQ2hhbm5lbFN0YXR1cygnIiArIGlkICsgIicsIHRoaXMpIik7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3subWFwcGluZy5hY3RpdmUudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIENoYW5uZWwgbmFtZQ0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gIngtbmFtZSI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgIGlmIChCVUxLX0VESVQgPT0gdHJ1ZSkgew0KICAgICAgICAgICAgICAgIGlucHV0LnN0eWxlLmJvcmRlciA9ICJzb2xpZCAxcHggcmVkIjsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInJlYWRvbmx5IiwgInRydWUiKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5tYXBwaW5nLmNoYW5uZWxOYW1lLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICBjb250ZW50LmRlc2NyaXB0aW9uKGRhdGFbIm5hbWUiXSk7DQogICAgICAgICAgICAvLyBEZXNjcmlwdGlvbg0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gIngtZGVzY3JpcHRpb24iOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7Lm1hcHBpbmcuZGVzY3JpcHRpb24ucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7Lm1hcHBpbmcuZGVzY3JpcHRpb24udGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIFVwZGF0ZSB0aGUgY2hhbm5lbCBuYW1lDQogICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgiX3V1aWQua2V5IikpIHsNCiAgICAgICAgICAgICAgICBpZiAoZGF0YVsiX3V1aWQua2V5Il0gIT0gIiIpIHsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGRiS2V5ID0gIngtdXBkYXRlLWNoYW5uZWwtbmFtZSI7DQogICAgICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goZGJLZXkpOw0KICAgICAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhW2RiS2V5XTsNCiAgICAgICAgICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7Lm1hcHBpbmcudXBkYXRlQ2hhbm5lbE5hbWUudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9DQogICAgICAgICAgICAvLyBMb2dvIFVSTCAoQ2hhbm5lbCkgDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAidHZnLWxvZ28iOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoImlkIiwgImNoYW5uZWwtaWNvbiIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7Lm1hcHBpbmcuY2hhbm5lbExvZ28udGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIENoYW5uZWwgbG9nbyB1cGRhdGUNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJ4LXVwZGF0ZS1jaGFubmVsLWljb24iOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChkYktleSk7DQogICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YVtkYktleV07DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoImlkIiwgInVwZGF0ZS1pY29uIik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnOyBjaGFuZ2VDaGFubmVsTG9nbygnIiArIGlkICsgIicpOyIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7Lm1hcHBpbmcudXBkYXRlQ2hhbm5lbExvZ28udGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIEV4cGFuZCBFUEcgY2F0ZWdvcnkNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJ4LWNhdGVnb3J5IjsNCiAgICAgICAgICAgIHZhciB0ZXh0ID0gWyItIiwgIktpZHMgKEVtYnkgb25seSkiLCAiTmV3cyIsICJNb3ZpZSIsICJTZXJpZXMiLCAiU3BvcnRzIl07DQogICAgICAgICAgICB2YXIgdmFsdWVzID0gWyIiLCAiS2lkcyIsICJOZXdzIiwgIk1vdmllIiwgIlNlcmllcyIsICJTcG9ydHMiXTsNCiAgICAgICAgICAgIHZhciBzZWxlY3QgPSBjb250ZW50LmNyZWF0ZVNlbGVjdCh0ZXh0LCB2YWx1ZXMsIGRhdGFbZGJLZXldLCBkYktleSk7DQogICAgICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7Lm1hcHBpbmcuZXBnQ2F0ZWdvcnkudGl0bGV9fSIsIHNlbGVjdCk7DQogICAgICAgICAgICAvLyBNM1UgZ3JvdXAgdGl0bGUNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJ4LWdyb3VwLXRpdGxlIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgaW5wdXQuZGF0YXNldC5vbGRWYWx1ZSA9IGRhdGFbZGJLZXldOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7Lm1hcHBpbmcubTN1R3JvdXBUaXRsZS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgaWYgKGRhdGFbImdyb3VwLXRpdGxlIl0gIT0gdW5kZWZpbmVkKSB7DQogICAgICAgICAgICAgICAgY29udGVudC5kZXNjcmlwdGlvbihkYXRhWyJncm91cC10aXRsZSJdKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGlmIChkYXRhWyJ4LXVwZGF0ZS1jaGFubmVsLWdyb3VwIl0gPT0gdHJ1ZSkgew0KICAgICAgICAgICAgICAgIGlucHV0LmRpc2FibGVkID0gdHJ1ZTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIC8vIFVwZGF0ZSBjaGFubmVsIGdyb3VwIGNoZWNrYm94DQogICAgICAgICAgICB2YXIgZGJLZXkgPSAieC11cGRhdGUtY2hhbm5lbC1ncm91cCI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KGRiS2V5KTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdG9nZ2xlR3JvdXBVcGRhdGVDYignIiArIGlkICsgIicsIHRoaXMpOyIpOw0KICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGFbZGJLZXldOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7Lm1hcHBpbmcudXBkYXRlQ2hhbm5lbEdyb3VwLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICBjb250ZW50LmRlc2NyaXB0aW9uKCJ7ey5tYXBwaW5nLnVwZGF0ZUNoYW5uZWxHcm91cC5kZXNjcmlwdGlvbn19Iik7DQogICAgICAgICAgICAvLyBYTUxUViBmaWxlDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAneC14bWx0di1maWxlJzsNCiAgICAgICAgICAgIGNvbnN0IHhtbFR2RmlsZSA9IGRhdGFbZGJLZXldOw0KICAgICAgICAgICAgdmFyIHhtbFR2ID0gbmV3IFhNTFRWRmlsZSgpOw0KICAgICAgICAgICAgY29uc3QgeG1sVHZGaWxlU2VsZWN0ID0geG1sVHYuZ2V0RmlsZXMoZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgeG1sVHZGaWxlU2VsZWN0LnNldEF0dHJpYnV0ZSgnbmFtZScsIGRiS2V5KTsNCiAgICAgICAgICAgIHhtbFR2RmlsZVNlbGVjdC5zZXRBdHRyaWJ1dGUoJ2lkJywgJ3BvcHVwLXhtbHR2Jyk7DQogICAgICAgICAgICB4bWxUdkZpbGVTZWxlY3Quc2V0QXR0cmlidXRlKCdvbmNoYW5nZScsIGBqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJzsgc2V0WG1sdHZDaGFubmVsKCcke2lkfScsIHRoaXMpO2ApOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coJ3t7Lm1hcHBpbmcueG1sdHZGaWxlLnRpdGxlfX0nLCB4bWxUdkZpbGVTZWxlY3QpOw0KICAgICAgICAgICAgLy8gWE1MVFYgTWFwcGluZw0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gJ3gtbWFwcGluZyc7DQogICAgICAgICAgICB2YXIgeG1sVHYgPSBuZXcgWE1MVFZGaWxlKCk7DQogICAgICAgICAgICBjb25zdCBjdXJyZW50WG1sVHZJZCA9IGRhdGFbZGJLZXldOw0KICAgICAgICAgICAgY29uc3QgeG1sVHZJZFNlbGVjdCA9IHhtbFR2LmdldFByb2dyYW1zKHhtbFR2RmlsZSwgY3VycmVudFhtbFR2SWQpOw0KICAgICAgICAgICAgeG1sVHZJZFNlbGVjdC5zZXRBdHRyaWJ1dGUoJ25hbWUnLCBkYktleSk7DQogICAgICAgICAgICB4bWxUdklkU2VsZWN0LnNldEF0dHJpYnV0ZSgnaWQnLCAncG9wdXAtbWFwcGluZycpOw0KICAgICAgICAgICAgeG1sVHZJZFNlbGVjdC5zZXRBdHRyaWJ1dGUoJ29uY2hhbmdlJywgYGphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnOyBjaGVja1htbHR2Q2hhbm5lbCgnJHtpZH0nLCB0aGlzLCAnJHt4bWxUdkZpbGV9Jyk7YCk7DQogICAgICAgICAgICBzb3J0U2VsZWN0KHhtbFR2SWRTZWxlY3QpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coJ3t7Lm1hcHBpbmcueG1sdHZDaGFubmVsLnRpdGxlfX0nLCB4bWxUdklkU2VsZWN0KTsNCiAgICAgICAgICAgIC8vIFRpbWVzaGlmdA0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gIngtdGltZXNoaWZ0IjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5tYXBwaW5nLnRpbWVzaGlmdC5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoImlkIiwgInRpbWVzaGlmdCIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7Lm1hcHBpbmcudGltZXNoaWZ0LnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBJbnRlcmFjdGlvbg0KICAgICAgICAgICAgY29udGVudC5jcmVhdGVJbnRlcmFjdGlvbigpOw0KICAgICAgICAgICAgLy8gVXBsb2FkIGxvZ28NCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJjYW5jZWwiLCAie3suYnV0dG9uLnVwbG9hZExvZ299fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IHVwbG9hZExvZ28oKTsnKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgLy8gQWJvcnQNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJjYW5jZWwiLCAie3suYnV0dG9uLmNhbmNlbH19Iik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogc2hvd0VsZW1lbnQoInBvcHVwIiwgZmFsc2UpOycpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICAvLyBGaW5pc2hlZA0KICAgICAgICAgICAgdmFyIGlkcyA9IFtdOw0KICAgICAgICAgICAgaWRzID0gZ2V0QWxsU2VsZWN0ZWRDaGFubmVscygpOw0KICAgICAgICAgICAgaWYgKGlkcy5sZW5ndGggPT0gMCkgew0KICAgICAgICAgICAgICAgIGlkcy5wdXNoKGlkKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJzYXZlIiwgInt7LmJ1dHRvbi5kb25lfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBkb25lUG9wdXBEYXRhKCInICsgZGF0YVR5cGUgKyAnIiwgIicgKyBpZHMgKyAnIiwgImZhbHNlIik7Jyk7DQogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBkZWZhdWx0Og0KICAgICAgICAgICAgYnJlYWs7DQogICAgfQ0KICAgIHNob3dQb3BVcEVsZW1lbnQoJ3BvcHVwLWN1c3RvbScpOw0KfQ0KY2xhc3MgWE1MVFZGaWxlIHsNCiAgICBnZXRGaWxlcyhzZXQpIHsNCiAgICAgICAgbGV0IGZpbGVJRHMgPSBnZXRPd25PYmpQcm9wcyhTRVJWRVJbInhlcGciXVsieG1sdHZNYXAiXSk7DQogICAgICAgIGxldCB2YWx1ZXMgPSBuZXcgQXJyYXkoIi0iKTsNCiAgICAgICAgbGV0IHRleHQgPSBuZXcgQXJyYXkoIi0iKTsNCiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBmaWxlSURzLmxlbmd0aDsgaSsrKSB7DQogICAgICAgICAgICBpZiAoZmlsZUlEc1tpXSAhPSAieFRlVmUgRHVtbXkiKSB7DQogICAgICAgICAgICAgICAgdmFsdWVzLnB1c2goZ2V0VmFsdWVGcm9tUHJvdmlkZXJGaWxlKGZpbGVJRHNbaV0sICJ4bWx0diIsICJmaWxlLnh0ZXZlIikpOw0KICAgICAgICAgICAgICAgIHRleHQucHVzaChnZXRWYWx1ZUZyb21Qcm92aWRlckZpbGUoZmlsZUlEc1tpXSwgInhtbHR2IiwgIm5hbWUiKSk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICB2YWx1ZXMucHVzaChmaWxlSURzW2ldKTsNCiAgICAgICAgICAgICAgICB0ZXh0LnB1c2goZmlsZUlEc1tpXSk7DQogICAgICAgICAgICB9DQogICAgICAgIH0NCiAgICAgICAgbGV0IHNlbGVjdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlNFTEVDVCIpOw0KICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRleHQubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgICAgIHZhciBvcHRpb24gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJPUFRJT04iKTsNCiAgICAgICAgICAgIG9wdGlvbi5zZXRBdHRyaWJ1dGUoInZhbHVlIiwgdmFsdWVzW2ldKTsNCiAgICAgICAgICAgIG9wdGlvbi5pbm5lclRleHQgPSB0ZXh0W2ldOw0KICAgICAgICAgICAgc2VsZWN0LmFwcGVuZENoaWxkKG9wdGlvbik7DQogICAgICAgIH0NCiAgICAgICAgaWYgKHNldCAhPSAiIikgew0KICAgICAgICAgICAgc2VsZWN0LnZhbHVlID0gc2V0Ow0KICAgICAgICB9DQogICAgICAgIHJldHVybiBzZWxlY3Q7DQogICAgfQ0KICAgIGdldFByb2dyYW1zKHhtbFR2RmlsZSwgY3VycmVudFhtbFR2SWQpIHsNCiAgICAgICAgY29uc3QgdmFsdWVzID0gZ2V0T3duT2JqUHJvcHMoU0VSVkVSWyd4ZXBnJ11bJ3htbHR2TWFwJ11beG1sVHZGaWxlXSk7DQogICAgICAgIGNvbnN0IHRleHQgPSBbXTsNCiAgICAgICAgbGV0IGZyaWVuZGx5TmFtZTsNCiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB2YWx1ZXMubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgICAgIGlmIChTRVJWRVJbJ3hlcGcnXVsneG1sdHZNYXAnXVt4bWxUdkZpbGVdW3ZhbHVlc1tpXV0uaGFzT3duUHJvcGVydHkoJ2ZyaWVuZGx5LW5hbWUnKSA9PSB0cnVlKSB7DQogICAgICAgICAgICAgICAgZnJpZW5kbHlOYW1lID0gU0VSVkVSWyd4ZXBnJ11bJ3htbHR2TWFwJ11beG1sVHZGaWxlXVt2YWx1ZXNbaV1dWydmcmllbmRseS1uYW1lJ107DQogICAgICAgICAgICB9DQogICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICBmcmllbmRseU5hbWUgPSAnLSc7DQogICAgICAgICAgICB9DQogICAgICAgICAgICB0ZXh0W2ldID0gYCR7ZnJpZW5kbHlOYW1lfSAoJHt2YWx1ZXNbaV19KWA7DQogICAgICAgIH0NCiAgICAgICAgdGV4dC51bnNoaWZ0KCctJyk7DQogICAgICAgIHZhbHVlcy51bnNoaWZ0KCctJyk7DQogICAgICAgIGNvbnN0IHNlbGVjdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NlbGVjdCcpOw0KICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRleHQubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgICAgIGNvbnN0IG9wdGlvbiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ29wdGlvbicpOw0KICAgICAgICAgICAgb3B0aW9uLnNldEF0dHJpYnV0ZSgndmFsdWUnLCB2YWx1ZXNbaV0pOw0KICAgICAgICAgICAgb3B0aW9uLmlubmVyVGV4dCA9IHRleHRbaV07DQogICAgICAgICAgICBzZWxlY3QuYXBwZW5kQ2hpbGQob3B0aW9uKTsNCiAgICAgICAgfQ0KICAgICAgICBzZWxlY3QudmFsdWUgPSAoY3VycmVudFhtbFR2SWQgPT0gJycpID8gJy0nIDogY3VycmVudFhtbFR2SWQ7DQogICAgICAgIHJldHVybiBzZWxlY3Q7DQogICAgfQ0KfQ0KZnVuY3Rpb24gZ2V0VmFsdWVGcm9tUHJvdmlkZXJGaWxlKGZpbGUsIGZpbGVUeXBlLCBrZXkpIHsNCiAgICBpZiAoZmlsZSA9PSAieFRlVmUgRHVtbXkiKSB7DQogICAgICAgIHJldHVybiBmaWxlOw0KICAgIH0NCiAgICBsZXQgZmlsZUlEOw0KICAgIGxldCBpbmRpY2F0b3IgPSBmaWxlLmNoYXJBdCgwKTsNCiAgICBzd2l0Y2ggKGluZGljYXRvcikgew0KICAgICAgICBjYXNlICJNIjoNCiAgICAgICAgICAgIGZpbGVUeXBlID0gIm0zdSI7DQogICAgICAgICAgICBmaWxlSUQgPSBmaWxlOw0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGNhc2UgIkgiOg0KICAgICAgICAgICAgZmlsZVR5cGUgPSAiaGRociI7DQogICAgICAgICAgICBmaWxlSUQgPSBmaWxlOw0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGNhc2UgIlgiOg0KICAgICAgICAgICAgZmlsZVR5cGUgPSAieG1sdHYiOw0KICAgICAgICAgICAgZmlsZUlEID0gZmlsZS5zdWJzdHJpbmcoMCwgZmlsZS5sYXN0SW5kZXhPZignLicpKTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgIH0NCiAgICBpZiAoU0VSVkVSWyJzZXR0aW5ncyJdWyJmaWxlcyJdW2ZpbGVUeXBlXS5oYXNPd25Qcm9wZXJ0eShmaWxlSUQpID09IHRydWUpIHsNCiAgICAgICAgdmFyIGRhdGEgPSBTRVJWRVJbInNldHRpbmdzIl1bImZpbGVzIl1bZmlsZVR5cGVdW2ZpbGVJRF07DQogICAgICAgIHJldHVybiBkYXRhW2tleV07DQogICAgfQ0KICAgIHJldHVybjsNCn0NCmZ1bmN0aW9uIHNldFhtbHR2Q2hhbm5lbChlcGdNYXBJZCwgeG1sVHZGaWxlU2VsZWN0KSB7DQogICAgY29uc3QgeG1sVHYgPSBuZXcgWE1MVFZGaWxlKCk7DQogICAgY29uc3QgbmV3WG1sVHZGaWxlID0geG1sVHZGaWxlU2VsZWN0LnZhbHVlOw0KICAgIC8vIFJlbW92ZSBvbGQgWE1MVFYgSUQgc2VsZWN0aW9uIGJveA0KICAgIGNvbnN0IHhtbFR2SWRTZWxlY3RQYXJlbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncG9wdXAtbWFwcGluZycpLnBhcmVudEVsZW1lbnQ7DQogICAgeG1sVHZJZFNlbGVjdFBhcmVudC5pbm5lckhUTUwgPSAnJzsNCiAgICAvLyBDcmVhdGUgbmV3IFhNTFRWIElEIHNlbGVjdGlvbiBib3gNCiAgICBjb25zdCB0dmdJZCA9IFNFUlZFUlsneGVwZyddWydlcGdNYXBwaW5nJ11bZXBnTWFwSWRdWyd0dmctaWQnXTsNCiAgICBjb25zdCBuZXdYbWxUdklkU2VsZWN0ID0geG1sVHYuZ2V0UHJvZ3JhbXMobmV3WG1sVHZGaWxlLCB0dmdJZCk7DQogICAgbmV3WG1sVHZJZFNlbGVjdC5zZXRBdHRyaWJ1dGUoJ25hbWUnLCAneC1tYXBwaW5nJyk7DQogICAgbmV3WG1sVHZJZFNlbGVjdC5zZXRBdHRyaWJ1dGUoJ2lkJywgJ3BvcHVwLW1hcHBpbmcnKTsNCiAgICBuZXdYbWxUdklkU2VsZWN0LnNldEF0dHJpYnV0ZSgnb25jaGFuZ2UnLCBgamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCc7IGNoZWNrWG1sdHZDaGFubmVsKCcke2VwZ01hcElkfScsIHRoaXMsICcke25ld1htbFR2RmlsZX0nKTtgKTsNCiAgICBuZXdYbWxUdklkU2VsZWN0LmNsYXNzTmFtZSA9ICdjaGFuZ2VkJzsNCiAgICBzb3J0U2VsZWN0KG5ld1htbFR2SWRTZWxlY3QpOw0KICAgIC8vIEFkZCBuZXcgWE1MVFYgSUQgc2VsZWN0aW9uIGJveCB0byBpdCdzIHBhcmVudA0KICAgIHhtbFR2SWRTZWxlY3RQYXJlbnQuYXBwZW5kQ2hpbGQobmV3WG1sVHZJZFNlbGVjdCk7DQogICAgY2hlY2tYbWx0dkNoYW5uZWwoZXBnTWFwSWQsIG5ld1htbFR2SWRTZWxlY3QsIG5ld1htbFR2RmlsZSk7DQp9DQpmdW5jdGlvbiBjaGVja1htbHR2Q2hhbm5lbChlcGdNYXBJZCwgeG1sVHZJZFNlbGVjdCwgeG1sVHZGaWxlKSB7DQogICAgY29uc3QgbmV3WG1sVHZJZCA9IHhtbFR2SWRTZWxlY3QudmFsdWU7DQogICAgY29uc3QgY2hhbm5lbEFjdGl2ZUNiID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2FjdGl2ZScpOw0KICAgIGNvbnN0IGNoYW5uZWxBY3RpdmUgPSBuZXdYbWxUdklkICE9ICctJzsNCiAgICBjaGFubmVsQWN0aXZlQ2IuY2hlY2tlZCA9IGNoYW5uZWxBY3RpdmU7DQogICAgY2hhbm5lbEFjdGl2ZUNiLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJzsNCiAgICBpZiAoeG1sVHZGaWxlICE9ICd4VGVWZSBEdW1teScgJiYgY2hhbm5lbEFjdGl2ZSA9PSB0cnVlKSB7DQogICAgICAgIGNoYW5nZUNoYW5uZWxMb2dvKGVwZ01hcElkKTsNCiAgICAgICAgcmV0dXJuOw0KICAgIH0NCiAgICBpZiAoeG1sVHZGaWxlID09ICd4VGVWZSBEdW1teScpIHsNCiAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3VwZGF0ZS1pY29uJykuY2hlY2tlZCA9IGZhbHNlOw0KICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndXBkYXRlLWljb24nKS5jbGFzc05hbWUgPSAnY2hhbmdlZCc7DQogICAgfQ0KfQ0KZnVuY3Rpb24gY2hhbmdlQ2hhbm5lbExvZ28oZXBnTWFwSWQpIHsNCiAgICBjb25zdCBjaGFubmVsID0gU0VSVkVSWyd4ZXBnJ11bJ2VwZ01hcHBpbmcnXVtlcGdNYXBJZF07DQogICAgY29uc3QgeG1sVHZGaWxlU2VsZWN0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3BvcHVwLXhtbHR2Jyk7DQogICAgY29uc3QgeG1sVHZGaWxlID0geG1sVHZGaWxlU2VsZWN0Lm9wdGlvbnNbeG1sVHZGaWxlU2VsZWN0LnNlbGVjdGVkSW5kZXhdLnZhbHVlOw0KICAgIGNvbnN0IHhtbFR2SWRTZWxlY3QgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncG9wdXAtbWFwcGluZycpOw0KICAgIGNvbnN0IG5ld1htbFR2SWQgPSB4bWxUdklkU2VsZWN0Lm9wdGlvbnNbeG1sVHZJZFNlbGVjdC5zZWxlY3RlZEluZGV4XS52YWx1ZTsNCiAgICBjb25zdCB4bWxUdkxvZ28gPSBTRVJWRVJbJ3hlcGcnXVsneG1sdHZNYXAnXVt4bWxUdkZpbGVdW25ld1htbFR2SWRdWydpY29uJ107DQogICAgY29uc3QgdXBkYXRlTG9nbyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd1cGRhdGUtaWNvbicpLmNoZWNrZWQ7DQogICAgbGV0IGxvZ287DQogICAgaWYgKHVwZGF0ZUxvZ28gPT0gdHJ1ZSAmJiB4bWxUdkZpbGUgIT0gJ3hUZVZlIER1bW15Jykgew0KICAgICAgICBpZiAoU0VSVkVSWyd4ZXBnJ11bJ3htbHR2TWFwJ11beG1sVHZGaWxlXS5oYXNPd25Qcm9wZXJ0eShuZXdYbWxUdklkKSkgew0KICAgICAgICAgICAgbG9nbyA9IHhtbFR2TG9nbzsNCiAgICAgICAgfQ0KICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgIGxvZ28gPSBjaGFubmVsWyd0dmctbG9nbyddOw0KICAgICAgICB9DQogICAgICAgIHZhciBsb2dvSW5wdXQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY2hhbm5lbC1pY29uJyk7DQogICAgICAgIGxvZ29JbnB1dC52YWx1ZSA9IGxvZ287DQogICAgICAgIGlmIChCVUxLX0VESVQgPT0gZmFsc2UpIHsNCiAgICAgICAgICAgIGxvZ29JbnB1dC5jbGFzc05hbWUgPSAnY2hhbmdlZCc7DQogICAgICAgIH0NCiAgICB9DQp9DQpmdW5jdGlvbiBzYXZlUG9wdXBEYXRhKGRhdGFUeXBlLCBpZCwgcmVtb3ZlLCBvcHRpb24pIHsNCiAgICBpZiAoZGF0YVR5cGUgPT0gIm1hcHBpbmciKSB7DQogICAgICAgIGxldCBkYXRhID0ge307DQogICAgICAgIGNvbnNvbGUubG9nKCJTYXZlIG1hcHBpbmcgZGF0YSIpOw0KICAgICAgICBsZXQgY21kID0gInNhdmVFcGdNYXBwaW5nIjsNCiAgICAgICAgZGF0YVsiZXBnTWFwcGluZyJdID0gU0VSVkVSWyJ4ZXBnIl1bImVwZ01hcHBpbmciXTsNCiAgICAgICAgY29uc29sZS5sb2coIlNFTkQgVE8gU0VSVkVSIik7DQogICAgICAgIGxldCBzZXJ2ZXIgPSBuZXcgU2VydmVyKGNtZCk7DQogICAgICAgIHNlcnZlci5yZXF1ZXN0KGRhdGEpOw0KICAgICAgICBkZWxldGUgVU5ET1siZXBnTWFwcGluZyJdOw0KICAgICAgICByZXR1cm47DQogICAgfQ0KICAgIGNvbnNvbGUubG9nKCJTYXZlIHBvcHVwIGRhdGEiKTsNCiAgICBsZXQgZGl2ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInBvcHVwLWN1c3RvbSIpOw0KICAgIGxldCBpbnB1dHMgPSBkaXYuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlRBQkxFIilbMF0uZ2V0RWxlbWVudHNCeVRhZ05hbWUoIklOUFVUIik7DQogICAgbGV0IHNlbGVjdHMgPSBkaXYuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlRBQkxFIilbMF0uZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlNFTEVDVCIpOw0KICAgIGxldCBpbnB1dCA9IHt9Ow0KICAgIGxldCBjb25maXJtTXNnOw0KICAgIGZvciAobGV0IGkgPSAwOyBpIDwgc2VsZWN0cy5sZW5ndGg7IGkrKykgew0KICAgICAgICB2YXIgbmFtZTsNCiAgICAgICAgbmFtZSA9IHNlbGVjdHNbaV0ubmFtZTsNCiAgICAgICAgdmFyIHZhbHVlID0gc2VsZWN0c1tpXS52YWx1ZTsNCiAgICAgICAgc3dpdGNoIChuYW1lKSB7DQogICAgICAgICAgICBjYXNlICJ0dW5lciI6DQogICAgICAgICAgICAgICAgaW5wdXRbbmFtZV0gPSBwYXJzZUludCh2YWx1ZSk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBkZWZhdWx0Og0KICAgICAgICAgICAgICAgIGlucHV0W25hbWVdID0gdmFsdWU7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIH0NCiAgICB9DQogICAgZm9yIChsZXQgaSA9IDA7IGkgPCBpbnB1dHMubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgc3dpdGNoIChpbnB1dHNbaV0udHlwZSkgew0KICAgICAgICAgICAgY2FzZSAiY2hlY2tib3giOg0KICAgICAgICAgICAgICAgIG5hbWUgPSBpbnB1dHNbaV0ubmFtZTsNCiAgICAgICAgICAgICAgICBpbnB1dFtuYW1lXSA9IGlucHV0c1tpXS5jaGVja2VkOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAidGV4dCI6DQogICAgICAgICAgICBjYXNlICJoaWRkZW4iOg0KICAgICAgICAgICAgY2FzZSAicGFzc3dvcmQiOg0KICAgICAgICAgICAgICAgIG5hbWUgPSBpbnB1dHNbaV0ubmFtZTsNCiAgICAgICAgICAgICAgICBzd2l0Y2ggKG5hbWUpIHsNCiAgICAgICAgICAgICAgICAgICAgY2FzZSAidHVuZXIiOg0KICAgICAgICAgICAgICAgICAgICAgICAgaW5wdXRbbmFtZV0gPSBwYXJzZUludChpbnB1dHNbaV0udmFsdWUpOw0KICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICAgICAgICAgICAgICBpbnB1dFtuYW1lXSA9IGlucHV0c1tpXS52YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgfQ0KICAgIH0NCiAgICBsZXQgZGF0YSA9IHt9Ow0KICAgIGxldCBjbWQ7DQogICAgaWYgKHJlbW92ZSA9PSB0cnVlKSB7DQogICAgICAgIGlucHV0WyJkZWxldGUiXSA9IHRydWU7DQogICAgfQ0KICAgIHN3aXRjaCAoZGF0YVR5cGUpIHsNCiAgICAgICAgY2FzZSAidXNlcnMiOg0KICAgICAgICAgICAgY29uZmlybU1zZyA9ICJEZWxldGUgdGhpcyB1c2VyPyI7DQogICAgICAgICAgICBpZiAoaWQgPT0gIi0iKSB7DQogICAgICAgICAgICAgICAgY21kID0gInNhdmVOZXdVc2VyIjsNCiAgICAgICAgICAgICAgICBkYXRhWyJ1c2VyRGF0YSJdID0gaW5wdXQ7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICBjbWQgPSAic2F2ZVVzZXJEYXRhIjsNCiAgICAgICAgICAgICAgICBsZXQgZCA9IHt9Ow0KICAgICAgICAgICAgICAgIGRbaWRdID0gaW5wdXQ7DQogICAgICAgICAgICAgICAgZGF0YVsidXNlckRhdGEiXSA9IGQ7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSAibTN1IjoNCiAgICAgICAgICAgIGNvbmZpcm1Nc2cgPSAiRGVsZXRlIHRoaXMgcGxheWxpc3Q/IjsNCiAgICAgICAgICAgIHN3aXRjaCAob3B0aW9uKSB7DQogICAgICAgICAgICAgICAgLy8gUG9wdXA6IFNhdmUNCiAgICAgICAgICAgICAgICBjYXNlIDA6DQogICAgICAgICAgICAgICAgICAgIGNtZCA9ICJzYXZlRmlsZXNNM1UiOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICAvLyBQb3B1cDogVXBkYXRlDQogICAgICAgICAgICAgICAgY2FzZSAxOg0KICAgICAgICAgICAgICAgICAgICBjbWQgPSAidXBkYXRlRmlsZU0zVSI7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgZGF0YVsiZmlsZXMiXSA9IHt9Ow0KICAgICAgICAgICAgZGF0YVsiZmlsZXMiXVtkYXRhVHlwZV0gPSB7fTsNCiAgICAgICAgICAgIGRhdGFbImZpbGVzIl1bZGF0YVR5cGVdW2lkXSA9IGlucHV0Ow0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGNhc2UgImhkaHIiOg0KICAgICAgICAgICAgY29uZmlybU1zZyA9ICJEZWxldGUgdGhpcyBIREhvbWVSdW4gdHVuZXI/IjsNCiAgICAgICAgICAgIHN3aXRjaCAob3B0aW9uKSB7DQogICAgICAgICAgICAgICAgLy8gUG9wdXA6IFNhdmUNCiAgICAgICAgICAgICAgICBjYXNlIDA6DQogICAgICAgICAgICAgICAgICAgIGNtZCA9ICJzYXZlRmlsZXNIREhSIjsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgLy8gUG9wdXA6IFVwZGF0ZQ0KICAgICAgICAgICAgICAgIGNhc2UgMToNCiAgICAgICAgICAgICAgICAgICAgY21kID0gInVwZGF0ZUZpbGVIREhSIjsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBkYXRhWyJmaWxlcyJdID0ge307DQogICAgICAgICAgICBkYXRhWyJmaWxlcyJdW2RhdGFUeXBlXSA9IHt9Ow0KICAgICAgICAgICAgZGF0YVsiZmlsZXMiXVtkYXRhVHlwZV1baWRdID0gaW5wdXQ7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSAieG1sdHYiOg0KICAgICAgICAgICAgY29uZmlybU1zZyA9ICJEZWxldGUgdGhpcyBYTUxUViBmaWxlPyI7DQogICAgICAgICAgICBzd2l0Y2ggKG9wdGlvbikgew0KICAgICAgICAgICAgICAgIC8vIFBvcHVwOiBTYXZlDQogICAgICAgICAgICAgICAgY2FzZSAwOg0KICAgICAgICAgICAgICAgICAgICBjbWQgPSAic2F2ZUZpbGVzWE1MVFYiOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICAvLyBQb3B1cDogVXBkYXRlDQogICAgICAgICAgICAgICAgY2FzZSAxOg0KICAgICAgICAgICAgICAgICAgICBjbWQgPSAidXBkYXRlRmlsZVhNTFRWIjsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBkYXRhWyJmaWxlcyJdID0ge307DQogICAgICAgICAgICBkYXRhWyJmaWxlcyJdW2RhdGFUeXBlXSA9IHt9Ow0KICAgICAgICAgICAgZGF0YVsiZmlsZXMiXVtkYXRhVHlwZV1baWRdID0gaW5wdXQ7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSAiZmlsdGVyIjoNCiAgICAgICAgICAgIGNvbmZpcm1Nc2cgPSAiRGVsZXRlIHRoaXMgZmlsdGVyPyI7DQogICAgICAgICAgICBjbWQgPSAic2F2ZUZpbHRlciI7DQogICAgICAgICAgICBkYXRhWyJmaWx0ZXIiXSA9IHt9Ow0KICAgICAgICAgICAgZGF0YVsiZmlsdGVyIl1baWRdID0gaW5wdXQ7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgIGNvbnNvbGUubG9nKGRhdGFUeXBlLCBpZCk7DQogICAgICAgICAgICByZXR1cm47DQogICAgfQ0KICAgIGlmIChyZW1vdmUgPT0gdHJ1ZSkgew0KICAgICAgICBpZiAoIWNvbmZpcm0oY29uZmlybU1zZykpIHsNCiAgICAgICAgICAgIHNob3dFbGVtZW50KCJwb3B1cCIsIGZhbHNlKTsNCiAgICAgICAgICAgIHJldHVybjsNCiAgICAgICAgfQ0KICAgIH0NCiAgICBjb25zb2xlLmxvZygiU0VORCBUTyBTRVJWRVIiKTsNCiAgICBjb25zb2xlLmxvZyhkYXRhKTsNCiAgICBsZXQgc2VydmVyID0gbmV3IFNlcnZlcihjbWQpOw0KICAgIHNlcnZlci5yZXF1ZXN0KGRhdGEpOw0KfQ0KZnVuY3Rpb24gZG9uZVBvcHVwRGF0YShkYXRhVHlwZSwgaWRzU3RyKSB7DQogICAgbGV0IGlkcyA9IGlkc1N0ci5zcGxpdCgnLCcpOw0KICAgIGxldCBkaXYgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicG9wdXAtY3VzdG9tIik7DQogICAgbGV0IGlucHV0cyA9IGRpdi5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCJjaGFuZ2VkIik7DQogICAgaWRzLmZvckVhY2goaWQgPT4gew0KICAgICAgICBsZXQgaW5wdXQ7DQogICAgICAgIGlucHV0ID0gU0VSVkVSWyJ4ZXBnIl1bImVwZ01hcHBpbmciXVtpZF07DQogICAgICAgIGNvbnNvbGUubG9nKGlucHV0KTsNCiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBpbnB1dHMubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgICAgIGxldCBuYW1lOw0KICAgICAgICAgICAgbGV0IHZhbHVlOw0KICAgICAgICAgICAgc3dpdGNoIChpbnB1dHNbaV0udGFnTmFtZSkgew0KICAgICAgICAgICAgICAgIGNhc2UgIklOUFVUIjoNCiAgICAgICAgICAgICAgICAgICAgc3dpdGNoIChpbnB1dHNbaV0udHlwZSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAiY2hlY2tib3giOg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWUgPSBpbnB1dHNbaV0ubmFtZTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IGlucHV0c1tpXS5jaGVja2VkOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlucHV0W25hbWVdID0gdmFsdWU7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgICAgICAgICBjYXNlICJ0ZXh0IjoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lID0gaW5wdXRzW2ldLm5hbWU7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSBpbnB1dHNbaV0udmFsdWU7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5wdXRbbmFtZV0gPSB2YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBjYXNlICJTRUxFQ1QiOg0KICAgICAgICAgICAgICAgICAgICBuYW1lID0gaW5wdXRzW2ldLm5hbWU7DQogICAgICAgICAgICAgICAgICAgIHZhbHVlID0gaW5wdXRzW2ldLnZhbHVlOw0KICAgICAgICAgICAgICAgICAgICBpbnB1dFtuYW1lXSA9IHZhbHVlOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIHN3aXRjaCAobmFtZSkgew0KICAgICAgICAgICAgICAgIGNhc2UgInR2Zy1sb2dvIjoNCiAgICAgICAgICAgICAgICAgICAgLy8oZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpLmNoaWxkTm9kZXNbMl0uZmlyc3RDaGlsZCBhcyBIVE1MRWxlbWVudCkuc2V0QXR0cmlidXRlKCJzcmMiLCB2YWx1ZSkNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAieC1uYW1lIjoNCiAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpLmNoaWxkTm9kZXNbM10uZmlyc3RDaGlsZC5pbm5lckhUTUwgPSB2YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAieC1jYXRlZ29yeSI6DQogICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5jaGlsZE5vZGVzWzNdLmZpcnN0Q2hpbGQuY2xhc3NOYW1lID0gdmFsdWU7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgIngtZ3JvdXAtdGl0bGUiOg0KICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkuY2hpbGROb2Rlc1s1XS5maXJzdENoaWxkLmlubmVySFRNTCA9IHZhbHVlOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBjYXNlICJ4LXhtbHR2LWZpbGUiOg0KICAgICAgICAgICAgICAgICAgICBpZiAodmFsdWUgIT0gInhUZVZlIER1bW15IiAmJiB2YWx1ZSAhPSAiLSIpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlID0gZ2V0VmFsdWVGcm9tUHJvdmlkZXJGaWxlKHZhbHVlLCAieG1sdHYiLCAibmFtZSIpOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIGlmICh2YWx1ZSA9PSAiLSIpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGlucHV0WyJ4LWFjdGl2ZSJdID0gZmFsc2U7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpLmNoaWxkTm9kZXNbNl0uZmlyc3RDaGlsZC5pbm5lckhUTUwgPSB2YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAieC1tYXBwaW5nIjoNCiAgICAgICAgICAgICAgICAgICAgaWYgKHZhbHVlID09ICItIikgew0KICAgICAgICAgICAgICAgICAgICAgICAgaW5wdXRbIngtYWN0aXZlIl0gPSBmYWxzZTsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkuY2hpbGROb2Rlc1s3XS5maXJzdENoaWxkLmlubmVySFRNTCA9IHZhbHVlOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBjYXNlICJ4LXRpbWVzaGlmdCI6DQogICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5jaGlsZE5vZGVzWzhdLmZpcnN0Q2hpbGQuaW5uZXJIVE1MID0gdmFsdWU7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICB9DQogICAgICAgICAgICBjcmVhdGVTZWFyY2hPYmooKTsNCiAgICAgICAgICAgIHNlYXJjaEluTWFwcGluZygpOw0KICAgICAgICB9DQogICAgICAgIGlmIChpbnB1dFsieC1hY3RpdmUiXSA9PSBmYWxzZSkgew0KICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpLmNsYXNzTmFtZSA9ICJub3RBY3RpdmVFUEciOw0KICAgICAgICB9DQogICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpLmNsYXNzTmFtZSA9ICJhY3RpdmVFUEciOw0KICAgICAgICB9DQogICAgICAgIGNvbnNvbGUubG9nKGlucHV0WyJ0dmctbG9nbyJdKTsNCiAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpLmNoaWxkTm9kZXNbMl0uZmlyc3RDaGlsZC5zZXRBdHRyaWJ1dGUoInNyYyIsIGlucHV0WyJ0dmctbG9nbyJdKTsNCiAgICB9KTsNCiAgICBzaG93RWxlbWVudCgicG9wdXAiLCBmYWxzZSk7DQogICAgcmV0dXJuOw0KfQ0KZnVuY3Rpb24gc2hvd1ByZXZpZXcoZWxlbWVudCkgew0KICAgIGxldCBkaXYgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibXlTdHJlYW1zQm94Iik7DQogICAgc3dpdGNoIChlbGVtZW50KSB7DQogICAgICAgIGNhc2UgZmFsc2U6DQogICAgICAgICAgICBkaXYuY2xhc3NOYW1lID0gIm5vdFZpc2libGUiOw0KICAgICAgICAgICAgcmV0dXJuOw0KICAgIH0NCiAgICBsZXQgc3RyZWFtcyA9IFsiYWN0aXZlU3RyZWFtcyIsICJpbmFjdGl2ZVN0cmVhbXMiXTsNCiAgICBzdHJlYW1zLmZvckVhY2gocHJldmlldyA9PiB7DQogICAgICAgIGxldCB0YWJsZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHByZXZpZXcpOw0KICAgICAgICB0YWJsZS5pbm5lckhUTUwgPSAiIjsNCiAgICAgICAgbGV0IG9iaiA9IFNFUlZFUlsiZGF0YSJdWyJTdHJlYW1QcmV2aWV3VUkiXVtwcmV2aWV3XTsNCiAgICAgICAgb2JqLmZvckVhY2goY2hhbm5lbCA9PiB7DQogICAgICAgICAgICBsZXQgdHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJUUiIpOw0KICAgICAgICAgICAgbGV0IHRkS2V5ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgIGxldCB0ZFZhbCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICB0ZEtleS5jbGFzc05hbWUgPSAidGRLZXkiOw0KICAgICAgICAgICAgdGRWYWwuY2xhc3NOYW1lID0gInRkVmFsIjsNCiAgICAgICAgICAgIHN3aXRjaCAocHJldmlldykgew0KICAgICAgICAgICAgICAgIGNhc2UgImFjdGl2ZVN0cmVhbXMiOg0KICAgICAgICAgICAgICAgICAgICB0ZEtleS5pbm5lclRleHQgPSAiQ2hhbm5lbDogKCspIjsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAiaW5hY3RpdmVTdHJlYW1zIjoNCiAgICAgICAgICAgICAgICAgICAgdGRLZXkuaW5uZXJUZXh0ID0gIkNoYW5uZWw6ICgtKSI7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgdGRWYWwuaW5uZXJUZXh0ID0gY2hhbm5lbDsNCiAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKHRkS2V5KTsNCiAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKHRkVmFsKTsNCiAgICAgICAgICAgIHRhYmxlLmFwcGVuZENoaWxkKHRyKTsNCiAgICAgICAgfSk7DQogICAgfSk7DQogICAgc2hvd0VsZW1lbnQoImxvYWRpbmciLCBmYWxzZSk7DQogICAgZGl2LmNsYXNzTmFtZSA9ICJ2aXNpYmxlIjsNCiAgICByZXR1cm47DQp9DQo=" webUI["html/js/network_ts.js"] = "Y2xhc3MgU2VydmVyIHsNCiAgICBjb25zdHJ1Y3RvcihjbWQpIHsNCiAgICAgICAgdGhpcy5jbWQgPSBjbWQ7DQogICAgfQ0KICAgIHJlcXVlc3QoZGF0YSkgew0KICAgICAgICBpZiAoU0VSVkVSX0NPTk5FQ1RJT04gPT0gdHJ1ZSkgew0KICAgICAgICAgICAgcmV0dXJuOw0KICAgICAgICB9DQogICAgICAgIFNFUlZFUl9DT05ORUNUSU9OID0gdHJ1ZTsNCiAgICAgICAgY29uc29sZS5sb2coZGF0YSk7DQogICAgICAgIGlmICh0aGlzLmNtZCAhPSAidXBkYXRlTG9nIikgew0KICAgICAgICAgICAgc2hvd0VsZW1lbnQoImxvYWRpbmciLCB0cnVlKTsNCiAgICAgICAgICAgIFVORE8gPSBuZXcgT2JqZWN0KCk7DQogICAgICAgIH0NCiAgICAgICAgc3dpdGNoICh3aW5kb3cubG9jYXRpb24ucHJvdG9jb2wpIHsNCiAgICAgICAgICAgIGNhc2UgImh0dHA6IjoNCiAgICAgICAgICAgICAgICB0aGlzLnByb3RvY29sID0gIndzOi8vIjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImh0dHBzOiI6DQogICAgICAgICAgICAgICAgdGhpcy5wcm90b2NvbCA9ICJ3c3M6Ly8iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICB9DQogICAgICAgIHZhciB1cmwgPSB0aGlzLnByb3RvY29sICsgd2luZG93LmxvY2F0aW9uLmhvc3RuYW1lICsgIjoiICsgd2luZG93LmxvY2F0aW9uLnBvcnQgKyAiL2RhdGEvIiArICI/VG9rZW49IiArIGdldENvb2tpZSgiVG9rZW4iKTsNCiAgICAgICAgZGF0YVsiY21kIl0gPSB0aGlzLmNtZDsNCiAgICAgICAgdmFyIHdzID0gbmV3IFdlYlNvY2tldCh1cmwpOw0KICAgICAgICB3cy5vbm9wZW4gPSBmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICBXU19BVkFJTEFCTEUgPSB0cnVlOw0KICAgICAgICAgICAgY29uc29sZS5sb2coIlJFUVVFU1QgKEpTKToiKTsNCiAgICAgICAgICAgIGNvbnNvbGUubG9nKGRhdGEpOw0KICAgICAgICAgICAgY29uc29sZS5sb2coIlJFUVVFU1Q6IChKU09OKSIpOw0KICAgICAgICAgICAgY29uc29sZS5sb2coSlNPTi5zdHJpbmdpZnkoZGF0YSkpOw0KICAgICAgICAgICAgdGhpcy5zZW5kKEpTT04uc3RyaW5naWZ5KGRhdGEpKTsNCiAgICAgICAgfTsNCiAgICAgICAgd3Mub25lcnJvciA9IGZ1bmN0aW9uIChlKSB7DQogICAgICAgICAgICBjb25zb2xlLmxvZygiTm8gd2Vic29ja2V0IGNvbm5lY3Rpb24gdG8geFRlVmUgY291bGQgYmUgZXN0YWJsaXNoZWQuIENoZWNrIHlvdXIgbmV0d29yayBjb25maWd1cmF0aW9uLiIpOw0KICAgICAgICAgICAgU0VSVkVSX0NPTk5FQ1RJT04gPSBmYWxzZTsNCiAgICAgICAgICAgIGlmIChXU19BVkFJTEFCTEUgPT0gZmFsc2UpIHsNCiAgICAgICAgICAgICAgICBhbGVydCgiTm8gd2Vic29ja2V0IGNvbm5lY3Rpb24gdG8geFRlVmUgY291bGQgYmUgZXN0YWJsaXNoZWQuIENoZWNrIHlvdXIgbmV0d29yayBjb25maWd1cmF0aW9uLiIpOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9Ow0KICAgICAgICB3cy5vbm1lc3NhZ2UgPSBmdW5jdGlvbiAoZSkgew0KICAgICAgICAgICAgU0VSVkVSX0NPTk5FQ1RJT04gPSBmYWxzZTsNCiAgICAgICAgICAgIHNob3dFbGVtZW50KCJsb2FkaW5nIiwgZmFsc2UpOw0KICAgICAgICAgICAgY29uc29sZS5sb2coIlJFU1BPTlNFOiIpOw0KICAgICAgICAgICAgdmFyIHJlc3BvbnNlID0gSlNPTi5wYXJzZShlLmRhdGEpOw0KICAgICAgICAgICAgY29uc29sZS5sb2cocmVzcG9uc2UpOw0KICAgICAgICAgICAgaWYgKHJlc3BvbnNlLmhhc093blByb3BlcnR5KCJ0b2tlbiIpKSB7DQogICAgICAgICAgICAgICAgZG9jdW1lbnQuY29va2llID0gIlRva2VuPSIgKyByZXNwb25zZVsidG9rZW4iXTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGlmIChyZXNwb25zZVsic3RhdHVzIl0gPT0gZmFsc2UpIHsNCiAgICAgICAgICAgICAgICBhbGVydChyZXNwb25zZVsiZXJyIl0pOw0KICAgICAgICAgICAgICAgIGlmIChyZXNwb25zZS5oYXNPd25Qcm9wZXJ0eSgicmVsb2FkIikpIHsNCiAgICAgICAgICAgICAgICAgICAgbG9jYXRpb24ucmVsb2FkKCk7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIHJldHVybjsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGlmIChyZXNwb25zZS5oYXNPd25Qcm9wZXJ0eSgiYWxlcnQiKSkgew0KICAgICAgICAgICAgICAgIGFsZXJ0KHJlc3BvbnNlWyJhbGVydCJdKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGlmIChyZXNwb25zZS5oYXNPd25Qcm9wZXJ0eSgibG9nb1VSTCIpKSB7DQogICAgICAgICAgICAgICAgdmFyIGRpdiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjaGFubmVsLWljb24iKTsNCiAgICAgICAgICAgICAgICBkaXYudmFsdWUgPSByZXNwb25zZVsibG9nb1VSTCJdOw0KICAgICAgICAgICAgICAgIGRpdi5jbGFzc05hbWUgPSAiY2hhbmdlZCI7DQogICAgICAgICAgICAgICAgcmV0dXJuOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgc3dpdGNoIChkYXRhWyJjbWQiXSkgew0KICAgICAgICAgICAgICAgIGNhc2UgInVwZGF0ZUxvZyI6DQogICAgICAgICAgICAgICAgICAgIFNFUlZFUlsibG9nIl0gPSByZXNwb25zZVsibG9nIl07DQogICAgICAgICAgICAgICAgICAgIGlmIChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29udGVudF9sb2ciKSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgc2hvd0xvZ3MoZmFsc2UpOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIHJldHVybjsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgICAgICAgICAgU0VSVkVSID0gbmV3IE9iamVjdCgpOw0KICAgICAgICAgICAgICAgICAgICBTRVJWRVIgPSByZXNwb25zZTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBpZiAocmVzcG9uc2UuaGFzT3duUHJvcGVydHkoIm9wZW5NZW51IikpIHsNCiAgICAgICAgICAgICAgICB2YXIgbWVudSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHJlc3BvbnNlWyJvcGVuTWVudSJdKTsNCiAgICAgICAgICAgICAgICBtZW51LmNsaWNrKCk7DQogICAgICAgICAgICAgICAgc2hvd0VsZW1lbnQoInBvcHVwIiwgZmFsc2UpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgaWYgKHJlc3BvbnNlLmhhc093blByb3BlcnR5KCJvcGVuTGluayIpKSB7DQogICAgICAgICAgICAgICAgd2luZG93LmxvY2F0aW9uID0gcmVzcG9uc2VbIm9wZW5MaW5rIl07DQogICAgICAgICAgICB9DQogICAgICAgICAgICBpZiAocmVzcG9uc2UuaGFzT3duUHJvcGVydHkoInJlbG9hZCIpKSB7DQogICAgICAgICAgICAgICAgbG9jYXRpb24ucmVsb2FkKCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBpZiAocmVzcG9uc2UuaGFzT3duUHJvcGVydHkoIndpemFyZCIpKSB7DQogICAgICAgICAgICAgICAgY3JlYXRlTGF5b3V0KCk7DQogICAgICAgICAgICAgICAgY29uZmlndXJhdGlvbldpemFyZFtyZXNwb25zZVsid2l6YXJkIl1dLmNyZWF0ZVdpemFyZCgpOw0KICAgICAgICAgICAgICAgIHJldHVybjsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGNyZWF0ZUxheW91dCgpOw0KICAgICAgICB9Ow0KICAgIH0NCn0NCmZ1bmN0aW9uIGdldENvb2tpZShuYW1lKSB7DQogICAgdmFyIHZhbHVlID0gIjsgIiArIGRvY3VtZW50LmNvb2tpZTsNCiAgICB2YXIgcGFydHMgPSB2YWx1ZS5zcGxpdCgiOyAiICsgbmFtZSArICI9Iik7DQogICAgaWYgKHBhcnRzLmxlbmd0aCA9PSAyKQ0KICAgICAgICByZXR1cm4gcGFydHMucG9wKCkuc3BsaXQoIjsiKS5zaGlmdCgpOw0KfQ0K" webUI["html/js/settings_ts.js"] = "Y2xhc3MgU2V0dGluZ3NDYXRlZ29yeSB7DQogICAgY29uc3RydWN0b3IoKSB7DQogICAgICAgIHRoaXMuRG9jdW1lbnRJRCA9ICJjb250ZW50X3NldHRpbmdzIjsNCiAgICB9DQogICAgY3JlYXRlQ2F0ZWdvcnlIZWFkbGluZSh2YWx1ZSkgew0KICAgICAgICB2YXIgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIkg0Iik7DQogICAgICAgIGVsZW1lbnQuaW5uZXJIVE1MID0gdmFsdWU7DQogICAgICAgIHJldHVybiBlbGVtZW50Ow0KICAgIH0NCiAgICBjcmVhdGVIUigpIHsNCiAgICAgICAgdmFyIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJIUiIpOw0KICAgICAgICByZXR1cm4gZWxlbWVudDsNCiAgICB9DQogICAgY3JlYXRlU2V0dGluZ3Moc2V0dGluZ3NLZXkpIHsNCiAgICAgICAgdmFyIHNldHRpbmcgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJUUiIpOw0KICAgICAgICB2YXIgY29udGVudCA9IG5ldyBQb3B1cENvbnRlbnQoKTsNCiAgICAgICAgdmFyIGRhdGEgPSBTRVJWRVJbInNldHRpbmdzIl1bc2V0dGluZ3NLZXldOw0KICAgICAgICBzd2l0Y2ggKHNldHRpbmdzS2V5KSB7DQogICAgICAgICAgICAvLyBUZXh0IGlucHV0cw0KICAgICAgICAgICAgY2FzZSAidXBkYXRlIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLnVwZGF0ZS50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsICJ1cGRhdGUiLCBkYXRhLnRvU3RyaW5nKCkpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3suc2V0dGluZ3MudXBkYXRlLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJiYWNrdXAucGF0aCI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5iYWNrdXBQYXRoLnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgImJhY2t1cC5wYXRoIiwgZGF0YSk7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5zZXR0aW5ncy5iYWNrdXBQYXRoLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ0ZW1wLnBhdGgiOg0KICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MudGVtcFBhdGgudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCAidGVtcC5wYXRoIiwgZGF0YSk7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5zZXR0aW5ncy50bXBQYXRoLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ1c2VyLmFnZW50IjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLnVzZXJBZ2VudC50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsICJ1c2VyLmFnZW50IiwgZGF0YSk7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5zZXR0aW5ncy51c2VyQWdlbnQucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImJ1ZmZlci50aW1lb3V0IjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmJ1ZmZlclRpbWVvdXQudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCAiYnVmZmVyLnRpbWVvdXQiLCBkYXRhKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnNldHRpbmdzLmJ1ZmZlclRpbWVvdXQucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImZmbXBlZy5wYXRoIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmZmbXBlZ1BhdGgudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCAiZmZtcGVnLnBhdGgiLCBkYXRhKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnNldHRpbmdzLmZmbXBlZ1BhdGgucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImZmbXBlZy5vcHRpb25zIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmZmbXBlZ09wdGlvbnMudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCAiZmZtcGVnLm9wdGlvbnMiLCBkYXRhKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnNldHRpbmdzLmZmbXBlZ09wdGlvbnMucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInZsYy5wYXRoIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLnZsY1BhdGgudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCAidmxjLnBhdGgiLCBkYXRhKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnNldHRpbmdzLnZsY1BhdGgucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInZsYy5vcHRpb25zIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLnZsY09wdGlvbnMudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCAidmxjLm9wdGlvbnMiLCBkYXRhKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnNldHRpbmdzLnZsY09wdGlvbnMucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIC8vIENoZWNrYm94ZXMNCiAgICAgICAgICAgIGNhc2UgImF1dGhlbnRpY2F0aW9uLndlYiI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5hdXRoZW50aWNhdGlvbldFQi50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChzZXR0aW5nc0tleSk7DQogICAgICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGE7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiYXV0aGVudGljYXRpb24ucG1zIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmF1dGhlbnRpY2F0aW9uUE1TLnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KHNldHRpbmdzS2V5KTsNCiAgICAgICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJhdXRoZW50aWNhdGlvbi5tM3UiOg0KICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MuYXV0aGVudGljYXRpb25NM1UudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goc2V0dGluZ3NLZXkpOw0KICAgICAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImF1dGhlbnRpY2F0aW9uLnhtbCI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5hdXRoZW50aWNhdGlvblhNTC50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChzZXR0aW5nc0tleSk7DQogICAgICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGE7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiYXV0aGVudGljYXRpb24uYXBpIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmF1dGhlbnRpY2F0aW9uQVBJLnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KHNldHRpbmdzS2V5KTsNCiAgICAgICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJmaWxlcy51cGRhdGUiOg0KICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MuZmlsZXNVcGRhdGUudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goc2V0dGluZ3NLZXkpOw0KICAgICAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImNhY2hlLmltYWdlcyI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5jYWNoZUltYWdlcy50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChzZXR0aW5nc0tleSk7DQogICAgICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGE7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAieGVwZy5yZXBsYWNlLm1pc3NpbmcuaW1hZ2VzIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLnJlcGxhY2VFbXB0eUltYWdlcy50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChzZXR0aW5nc0tleSk7DQogICAgICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGE7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAieHRldmVBdXRvVXBkYXRlIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLnh0ZXZlQXV0b1VwZGF0ZS50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChzZXR0aW5nc0tleSk7DQogICAgICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGE7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiYXBpIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmFwaS50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChzZXR0aW5nc0tleSk7DQogICAgICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGE7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgLy8gU2VsZWN0DQogICAgICAgICAgICBjYXNlICJ0dW5lciI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy50dW5lci50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIHRleHQgPSBuZXcgQXJyYXkoKTsNCiAgICAgICAgICAgICAgICB2YXIgdmFsdWVzID0gbmV3IEFycmF5KCk7DQogICAgICAgICAgICAgICAgZm9yICh2YXIgaSA9IDE7IGkgPD0gMTAwOyBpKyspIHsNCiAgICAgICAgICAgICAgICAgICAgdGV4dC5wdXNoKGkpOw0KICAgICAgICAgICAgICAgICAgICB2YWx1ZXMucHVzaChpKTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgdmFyIHNlbGVjdCA9IGNvbnRlbnQuY3JlYXRlU2VsZWN0KHRleHQsIHZhbHVlcywgZGF0YSwgc2V0dGluZ3NLZXkpOw0KICAgICAgICAgICAgICAgIHNlbGVjdC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChzZWxlY3QpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiZXBnU291cmNlIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmVwZ1NvdXJjZS50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIHRleHQgPSBbIlBNUyIsICJYRVBHIl07DQogICAgICAgICAgICAgICAgdmFyIHZhbHVlcyA9IFsiUE1TIiwgIlhFUEciXTsNCiAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCBkYXRhLCBzZXR0aW5nc0tleSk7DQogICAgICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKHNlbGVjdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJiYWNrdXAua2VlcCI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5iYWNrdXBLZWVwLnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgdGV4dCA9IFsiNSIsICIxMCIsICIyMCIsICIzMCIsICI0MCIsICI1MCJdOw0KICAgICAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBbIjUiLCAiMTAiLCAiMjAiLCAiMzAiLCAiNDAiLCAiNTAiXTsNCiAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCBkYXRhLCBzZXR0aW5nc0tleSk7DQogICAgICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKHNlbGVjdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJidWZmZXIuc2l6ZS5rYiI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5idWZmZXJTaXplLnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgdGV4dCA9IFsiMC41IE1CIiwgIjEgTUIiLCAiMiBNQiIsICIzIE1CIiwgIjQgTUIiLCAiNSBNQiIsICI2IE1CIiwgIjcgTUIiLCAiOCBNQiJdOw0KICAgICAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBbIjUxMiIsICIxMDI0IiwgIjIwNDgiLCAiMzA3MiIsICI0MDk2IiwgIjUxMjAiLCAiNjE0NCIsICI3MTY4IiwgIjgxOTIiXTsNCiAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCBkYXRhLCBzZXR0aW5nc0tleSk7DQogICAgICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKHNlbGVjdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJidWZmZXIiOg0KICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3Muc3RyZWFtQnVmZmVyaW5nLnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgdGV4dCA9IFsie3suc2V0dGluZ3Muc3RyZWFtQnVmZmVyaW5nLmluZm9fZmFsc2V9fSIsICJ4VGVWZTogKHt7LnNldHRpbmdzLnN0cmVhbUJ1ZmZlcmluZy5pbmZvX3h0ZXZlfX0pIiwgIkZGbXBlZzogKHt7LnNldHRpbmdzLnN0cmVhbUJ1ZmZlcmluZy5pbmZvX2ZmbXBlZ319KSIsICJWTEM6ICh7ey5zZXR0aW5ncy5zdHJlYW1CdWZmZXJpbmcuaW5mb192bGN9fSkiXTsNCiAgICAgICAgICAgICAgICB2YXIgdmFsdWVzID0gWyItIiwgInh0ZXZlIiwgImZmbXBlZyIsICJ2bGMiXTsNCiAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCBkYXRhLCBzZXR0aW5nc0tleSk7DQogICAgICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKHNlbGVjdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ1ZHB4eSI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy51ZHB4eS50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsICJ1ZHB4eSIsIGRhdGEpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3suc2V0dGluZ3MudWRweHkucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgfQ0KICAgICAgICByZXR1cm4gc2V0dGluZzsNCiAgICB9DQogICAgY3JlYXRlRGVzY3JpcHRpb24oc2V0dGluZ3NLZXkpIHsNCiAgICAgICAgdmFyIGRlc2NyaXB0aW9uID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVFIiKTsNCiAgICAgICAgdmFyIHRleHQ7DQogICAgICAgIHN3aXRjaCAoc2V0dGluZ3NLZXkpIHsNCiAgICAgICAgICAgIGNhc2UgImF1dGhlbnRpY2F0aW9uLndlYiI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5hdXRoZW50aWNhdGlvbldFQi5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImF1dGhlbnRpY2F0aW9uLm0zdSI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5hdXRoZW50aWNhdGlvbk0zVS5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImF1dGhlbnRpY2F0aW9uLnBtcyI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5hdXRoZW50aWNhdGlvblBNUy5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImF1dGhlbnRpY2F0aW9uLnhtbCI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5hdXRoZW50aWNhdGlvblhNTC5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImF1dGhlbnRpY2F0aW9uLmFwaSI6DQogICAgICAgICAgICAgICAgaWYgKFNFUlZFUlsic2V0dGluZ3MiXVsiYXV0aGVudGljYXRpb24ud2ViIl0gPT0gdHJ1ZSkgew0KICAgICAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLmF1dGhlbnRpY2F0aW9uQVBJLmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInh0ZXZlQXV0b1VwZGF0ZSI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy54dGV2ZUF1dG9VcGRhdGUuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJiYWNrdXAua2VlcCI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5iYWNrdXBLZWVwLmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiYmFja3VwLnBhdGgiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MuYmFja3VwUGF0aC5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInRlbXAucGF0aCI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy50ZW1wUGF0aC5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImJ1ZmZlciI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5zdHJlYW1CdWZmZXJpbmcuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJidWZmZXIuc2l6ZS5rYiI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5idWZmZXJTaXplLmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiYnVmZmVyLnRpbWVvdXQiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MuYnVmZmVyVGltZW91dC5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInVzZXIuYWdlbnQiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MudXNlckFnZW50LmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiZmZtcGVnLnBhdGgiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MuZmZtcGVnUGF0aC5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImZmbXBlZy5vcHRpb25zIjoNCiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLmZmbXBlZ09wdGlvbnMuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ2bGMucGF0aCI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy52bGNQYXRoLmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAidmxjLm9wdGlvbnMiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MudmxjT3B0aW9ucy5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImVwZ1NvdXJjZSI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5lcGdTb3VyY2UuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ0dW5lciI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy50dW5lci5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInVwZGF0ZSI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy51cGRhdGUuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJhcGkiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MuYXBpLmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiZmlsZXMudXBkYXRlIjoNCiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLmZpbGVzVXBkYXRlLmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiY2FjaGUuaW1hZ2VzIjoNCiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLmNhY2hlSW1hZ2VzLmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAieGVwZy5yZXBsYWNlLm1pc3NpbmcuaW1hZ2VzIjoNCiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLnJlcGxhY2VFbXB0eUltYWdlcy5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInVkcHh5IjoNCiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLnVkcHh5LmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgICAgICB0ZXh0ID0gIiI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIH0NCiAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAiIjsNCiAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICB2YXIgcHJlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiUFJFIik7DQogICAgICAgIHByZS5pbm5lckhUTUwgPSB0ZXh0Ow0KICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKHByZSk7DQogICAgICAgIGRlc2NyaXB0aW9uLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgIGRlc2NyaXB0aW9uLmFwcGVuZENoaWxkKHRkUmlnaHQpOw0KICAgICAgICByZXR1cm4gZGVzY3JpcHRpb247DQogICAgfQ0KfQ0KY2xhc3MgU2V0dGluZ3NDYXRlZ29yeUl0ZW0gZXh0ZW5kcyBTZXR0aW5nc0NhdGVnb3J5IHsNCiAgICBjb25zdHJ1Y3RvcihoZWFkbGluZSwgc2V0dGluZ3NLZXlzKSB7DQogICAgICAgIHN1cGVyKCk7DQogICAgICAgIHRoaXMuaGVhZGxpbmUgPSBoZWFkbGluZTsNCiAgICAgICAgdGhpcy5zZXR0aW5nc0tleXMgPSBzZXR0aW5nc0tleXM7DQogICAgfQ0KICAgIGNyZWF0ZUNhdGVnb3J5KCkgew0KICAgICAgICB2YXIgaGVhZGxpbmUgPSB0aGlzLmNyZWF0ZUNhdGVnb3J5SGVhZGxpbmUodGhpcy5oZWFkbGluZSk7DQogICAgICAgIHZhciBzZXR0aW5nc0tleXMgPSB0aGlzLnNldHRpbmdzS2V5czsNCiAgICAgICAgdmFyIGRvYyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHRoaXMuRG9jdW1lbnRJRCk7DQogICAgICAgIGRvYy5hcHBlbmRDaGlsZChoZWFkbGluZSk7DQogICAgICAgIC8vIENyZWF0ZSBhIHRhYmxlIGZvciB0aGUgY2F0ZWdvcnkNCiAgICAgICAgdmFyIHRhYmxlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEFCTEUiKTsNCiAgICAgICAgdmFyIGtleXMgPSBzZXR0aW5nc0tleXMuc3BsaXQoIiwiKTsNCiAgICAgICAga2V5cy5mb3JFYWNoKHNldHRpbmdzS2V5ID0+IHsNCiAgICAgICAgICAgIHN3aXRjaCAoc2V0dGluZ3NLZXkpIHsNCiAgICAgICAgICAgICAgICBjYXNlICJhdXRoZW50aWNhdGlvbi5wbXMiOg0KICAgICAgICAgICAgICAgIGNhc2UgImF1dGhlbnRpY2F0aW9uLm0zdSI6DQogICAgICAgICAgICAgICAgY2FzZSAiYXV0aGVudGljYXRpb24ueG1sIjoNCiAgICAgICAgICAgICAgICBjYXNlICJhdXRoZW50aWNhdGlvbi5hcGkiOg0KICAgICAgICAgICAgICAgICAgICBpZiAoU0VSVkVSWyJzZXR0aW5ncyJdWyJhdXRoZW50aWNhdGlvbi53ZWIiXSA9PSBmYWxzZSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBkZWZhdWx0Og0KICAgICAgICAgICAgICAgICAgICB2YXIgaXRlbSA9IHRoaXMuY3JlYXRlU2V0dGluZ3Moc2V0dGluZ3NLZXkpOw0KICAgICAgICAgICAgICAgICAgICB2YXIgZGVzY3JpcHRpb24gPSB0aGlzLmNyZWF0ZURlc2NyaXB0aW9uKHNldHRpbmdzS2V5KTsNCiAgICAgICAgICAgICAgICAgICAgdGFibGUuYXBwZW5kQ2hpbGQoaXRlbSk7DQogICAgICAgICAgICAgICAgICAgIHRhYmxlLmFwcGVuZENoaWxkKGRlc2NyaXB0aW9uKTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICB9DQogICAgICAgIH0pOw0KICAgICAgICBkb2MuYXBwZW5kQ2hpbGQodGFibGUpOw0KICAgICAgICBkb2MuYXBwZW5kQ2hpbGQodGhpcy5jcmVhdGVIUigpKTsNCiAgICB9DQp9DQpmdW5jdGlvbiBzaG93U2V0dGluZ3MoKSB7DQogICAgY29uc29sZS5sb2coIlNFVFRJTkdTIik7DQogICAgZm9yIChsZXQgaSA9IDA7IGkgPCBzZXR0aW5nc0NhdGVnb3J5Lmxlbmd0aDsgaSsrKSB7DQogICAgICAgIHNldHRpbmdzQ2F0ZWdvcnlbaV0uY3JlYXRlQ2F0ZWdvcnkoKTsNCiAgICB9DQp9DQpmdW5jdGlvbiBzYXZlU2V0dGluZ3MoKSB7DQogICAgY29uc29sZS5sb2coIlNhdmUgU2V0dGluZ3MiKTsNCiAgICB2YXIgY21kID0gInNhdmVTZXR0aW5ncyI7DQogICAgdmFyIGRpdiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb250ZW50X3NldHRpbmdzIik7DQogICAgdmFyIHNldHRpbmdzID0gZGl2LmdldEVsZW1lbnRzQnlDbGFzc05hbWUoImNoYW5nZWQiKTsNCiAgICB2YXIgbmV3U2V0dGluZ3MgPSBuZXcgT2JqZWN0KCk7DQogICAgZm9yIChsZXQgaSA9IDA7IGkgPCBzZXR0aW5ncy5sZW5ndGg7IGkrKykgew0KICAgICAgICB2YXIgbmFtZTsNCiAgICAgICAgdmFyIHZhbHVlOw0KICAgICAgICBzd2l0Y2ggKHNldHRpbmdzW2ldLnRhZ05hbWUpIHsNCiAgICAgICAgICAgIGNhc2UgIklOUFVUIjoNCiAgICAgICAgICAgICAgICBzd2l0Y2ggKHNldHRpbmdzW2ldLnR5cGUpIHsNCiAgICAgICAgICAgICAgICAgICAgY2FzZSAiY2hlY2tib3giOg0KICAgICAgICAgICAgICAgICAgICAgICAgbmFtZSA9IHNldHRpbmdzW2ldLm5hbWU7DQogICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IHNldHRpbmdzW2ldLmNoZWNrZWQ7DQogICAgICAgICAgICAgICAgICAgICAgICBuZXdTZXR0aW5nc1tuYW1lXSA9IHZhbHVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgICAgIGNhc2UgInRleHQiOg0KICAgICAgICAgICAgICAgICAgICAgICAgbmFtZSA9IHNldHRpbmdzW2ldLm5hbWU7DQogICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IHNldHRpbmdzW2ldLnZhbHVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgc3dpdGNoIChuYW1lKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAidXBkYXRlIjoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSB2YWx1ZS5zcGxpdCgiLCIpOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IHZhbHVlLmZpbHRlcihmdW5jdGlvbiAoZSkgeyByZXR1cm4gZTsgfSk7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgImJ1ZmZlci50aW1lb3V0IjoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSBwYXJzZUZsb2F0KHZhbHVlKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgIG5ld1NldHRpbmdzW25hbWVdID0gdmFsdWU7DQogICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJTRUxFQ1QiOg0KICAgICAgICAgICAgICAgIG5hbWUgPSBzZXR0aW5nc1tpXS5uYW1lOw0KICAgICAgICAgICAgICAgIHZhbHVlID0gc2V0dGluZ3NbaV0udmFsdWU7DQogICAgICAgICAgICAgICAgLy8gSWYgdGhlIHZhbHVlIGlzIGEgbnVtYmVyLCBzdG9yZSBpdCBhcyBhIG51bWJlcg0KICAgICAgICAgICAgICAgIGlmIChpc05hTih2YWx1ZSkpIHsNCiAgICAgICAgICAgICAgICAgICAgbmV3U2V0dGluZ3NbbmFtZV0gPSB2YWx1ZTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgZWxzZSB7DQogICAgICAgICAgICAgICAgICAgIG5ld1NldHRpbmdzW25hbWVdID0gcGFyc2VJbnQodmFsdWUpOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgfQ0KICAgIH0NCiAgICB2YXIgZGF0YSA9IG5ldyBPYmplY3QoKTsNCiAgICBkYXRhWyJzZXR0aW5ncyJdID0gbmV3U2V0dGluZ3M7DQogICAgdmFyIHNlcnZlciA9IG5ldyBTZXJ2ZXIoY21kKTsNCiAgICBzZXJ2ZXIucmVxdWVzdChkYXRhKTsNCn0NCg==" webUI["html/lang/en.json"] = "ew0KICAibWFpbk1lbnUiOg0KICB7DQogICAgIml0ZW0iOg0KICAgIHsNCiAgICAgICJwbGF5bGlzdCI6ICJQbGF5bGlzdCIsDQogICAgICAicG1zSUQiOiAiUE1TIElEIiwNCiAgICAgICJmaWx0ZXIiOiAiRmlsdGVyIiwNCiAgICAgICJ4bWx0diI6ICJYTUxUViIsDQogICAgICAibWFwcGluZyI6ICJNYXBwaW5nIiwNCiAgICAgICJ1c2VycyI6ICJVc2VycyIsDQogICAgICAic2V0dGluZ3MiOiAiU2V0dGluZ3MiLA0KICAgICAgImxvZyI6ICJMb2ciLA0KICAgICAgImxvZ291dCI6ICJMb2dvdXQiDQogICAgfSwNCiAgICAiaGVhZGxpbmUiOg0KICAgIHsNCiAgICAgICJwbGF5bGlzdCI6ICJMb2NhbCBvciByZW1vdGUgcGxheWxpc3RzIiwNCiAgICAgICJmaWx0ZXIiOiAiRmlsdGVyIHBsYXlsaXN0IiwNCiAgICAgICJ4bWx0diI6ICJMb2NhbCBvciByZW1vdGUgWE1MVFYgZmlsZXMiLA0KICAgICAgIm1hcHBpbmciOiAiTWFwIHBsYXlsaXN0IGNoYW5uZWxzIHRvIEVQRyBjaGFubmVscyIsDQogICAgICAidXNlcnMiOiAiVXNlciBtYW5hZ2VtZW50IiwNCiAgICAgICJzZXR0aW5ncyI6ICJTZXR0aW5ncyIsDQogICAgICAibG9nIjogIkxvZyIsDQogICAgICAibG9nb3V0IjogIkxvZ291dCINCiAgICB9DQogIH0sDQogICJjb25maXJtIjoNCiAgew0KICAgICJyZXN0b3JlIjogIkFsbCBkYXRhIHdpbGwgYmUgcmVwbGFjZWQgd2l0aCB0aG9zZSBmcm9tIHRoZSBiYWNrdXAuIFNob3VsZCB0aGUgZmlsZXMgYmUgcmVzdG9yZWQ/Ig0KICB9LA0KICAiYWxlcnQiOg0KICB7DQogICAgImZpbGVMb2FkaW5nRXJyb3IiOiAiRmlsZSBjb3VsZG4ndCBiZSBsb2FkZWQiLA0KICAgICJpbnZhbGlkQ2hhbm5lbE51bWJlciI6ICJJbnZhbGlkIGNoYW5uZWwgbnVtYmVyIiwNCiAgICAibWlzc2luZ0lucHV0IjogIk1pc3NpbmcgaW5wdXQiDQogIH0sDQogICJidXR0b24iOg0KICB7DQogICAgImJhY2siOiAiQmFjayIsDQogICAgImJhY2t1cCI6ICJCYWNrdXAiLA0KICAgICJidWxrRWRpdCI6ICJCdWxrIEVkaXQiLA0KICAgICJjYW5jZWwiOiAiQ2FuY2VsIiwNCiAgICAiZGVsZXRlIjogIkRlbGV0ZSIsDQogICAgImRvbmUiOiAiRG9uZSIsDQogICAgImxvZ2luIjogIkxvZ2luIiwNCiAgICAibmV3IjogIk5ldyIsDQogICAgIm5leHQiOiAiTmV4dCIsDQogICAgInJlc3RvcmUiOiAiUmVzdG9yZSIsDQogICAgInNhdmUiOiAiU2F2ZSIsDQogICAgInNlYXJjaCI6ICJTZWFyY2giLA0KICAgICJ1cGRhdGUiOiAiVXBkYXRlIiwNCiAgICAiY3JhZXRlQWNjb3VudCI6ICJDcmVhdGUgQWNjb3VudCIsDQogICAgInJlc2V0TG9ncyI6ICJSZXNldCBMb2dzIiwNCiAgICAidXBsb2FkTG9nbyI6ICJVcGxvYWQgTG9nbyINCiAgfSwNCiAgImZpbHRlciI6DQogIHsNCiAgICAidGFibGUiOg0KICAgIHsNCiAgICAgICJzdGFydGluZ0NoYW5uZWwiOiAiU3RhcnRpbmcgQ2guIE5vLiIsDQogICAgICAibmFtZSI6ICJGaWx0ZXIgTmFtZSIsDQogICAgICAidHlwZSI6ICJGaWx0ZXIgVHlwZSIsDQogICAgICAiZmlsdGVyIjogIkZpbHRlciINCiAgICB9LA0KICAgICJjdXN0b20iOiAiQ3VzdG9tIiwNCiAgICAiZ3JvdXAiOiAiTTNVIEdyb3VwIiwNCiAgICAibmFtZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIkZpbHRlciBOYW1lIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJGaWx0ZXIgbmFtZSIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgImRlc2NyaXB0aW9uIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiRGVzY3JpcHRpb24iLA0KICAgICAgInBsYWNlaG9sZGVyIjogIkRlc2NyaXB0aW9uIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAidHlwZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIlR5cGUiLA0KICAgICAgImdyb3VwVGl0bGUiOiAiR3JvdXAgVGl0bGUiLA0KICAgICAgImN1c3RvbUZpbHRlciI6ICJDdXN0b20gRmlsdGVyIg0KICAgIH0sDQogICAgImNhc2VTZW5zaXRpdmUiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJDYXNlIFNlbnNpdGl2ZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAiZmlsdGVyUnVsZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIkZpbHRlciBSdWxlIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJTcG9ydCB7SER9ICF7RVMsSVR9IiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAiZmlsdGVyR3JvdXAiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJHcm91cCBUaXRsZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJTZWxlY3QgYSBNM1UgZ3JvdXAuIChDb3VudGVyKTxicj5DaGFuZ2luZyB0aGUgZ3JvdXAgdGl0bGUgaW4gdGhlIE0zVSBpbnZhbGlkYXRlcyB0aGUgZmlsdGVyLiINCiAgICB9LA0KICAgICJpbmNsdWRlIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiSW5jbHVkZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiRkhELFVIRCIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiQ2hhbm5lbCBuYW1lIG11c3QgaW5jbHVkZS48YnI+KENvbW1hIHNlcGFyYXRlZCkgQ29tbWEgbWVhbnMgb3IiDQogICAgfSwNCiAgICAiZXhjbHVkZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIkV4Y2x1ZGUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIkVTLElUIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJDaGFubmVsIG5hbWUgbXVzdCBub3QgY29udGFpbi48YnI+KENvbW1hIHNlcGFyYXRlZCkgQ29tbWEgbWVhbnMgb3IiDQogICAgfSwNCiAgICAicHJlc2VydmVNYXBwaW5nIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiUHJlc2VydmUgRXhpc3RpbmcgTTNVPGJyPkNoYW5uZWwgTnVtYmVycyIsDQogICAgICAicGFsY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJQcmVzZXJ2ZSBleGlzdGluZyBNM1UgcGxheWxpc3QgY2hhbm5lbCBudW1iZXJzPyINCiAgICB9LA0KICAgICJzdGFydGluZ0NoYW5uZWwiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJTdGFydGluZyBDaGFubmVsIE51bWJlciIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAiZGVmYXVsdE1pc3NpbmdFUEciOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJGaWxsIE1pc3NpbmcgRVBHIERhdGEiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiV2hlbiB0aGVyZSBpcyBubyBtYXRjaGluZyBFUEcgZGF0YSBmb3IgY2hhbm5lbCwgPGJyPmF1dG9maWxsIHdpdGggeFRlVmUgZHVtbXkgRVBHIGRhdGE/Ig0KICAgIH0NCg0KICB9LA0KICAicGxheWxpc3QiOg0KICB7DQogICAgInRhYmxlIjoNCiAgICB7DQogICAgICAicGxheWxpc3QiOiAiUGxheWxpc3QiLA0KICAgICAgInR1bmVyIjogIlR1bmVyIiwNCiAgICAgICJsYXN0VXBkYXRlIjogIkxhc3QgVXBkYXRlIiwNCiAgICAgICJhdmFpbGFiaWxpdHkiOiAiQXZhaWxhYmlsaXR5IiwNCiAgICAgICJ0eXBlIjogIlR5cGUiLA0KICAgICAgInN0cmVhbXMiOiAiU3RyZWFtcyIsDQogICAgICAiZ3JvdXBUaXRsZSI6ICJncm91cC10aXRsZSIsDQogICAgICAidHZnSUQiOiAidHZnLWlkIiwNCiAgICAgICJ1bmlxdWVJRCI6ICJVbmlxdWUgSUQiDQogICAgfSwNCiAgICAicGxheWxpc3RUeXBlIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiUGxheWxpc3QgdHlwZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAidHlwZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIlR5cGUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgIm5hbWUiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJOYW1lIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJQbGF5bGlzdCBuYW1lIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAiZGVzY3JpcHRpb24iOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJEZXNjcmlwdGlvbiIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiRGVzY3JpcHRpb24iLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJmaWxlTTNVIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiTTNVIEZpbGUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIkZpbGUgcGF0aCBvciBVUkwgb2YgdGhlIE0zVSIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgImZpbGVIREhSIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiSERIb21lUnVuIElQIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJJUCBhZGRyZXNzIGFuZCBwb3J0ICgxOTIuMTY4LjEuMTA6NTAwNCkiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJ0dW5lciI6DQogICAgew0KICAgICAgInRpdGxlIjogIlR1bmVyIC8gU3RyZWFtcyIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJOdW1iZXIgb2YgcGFyYWxsZWwgY29ubmVjdGlvbnMgdGhhdCBjYW4gYmUgZXN0YWJsaXNoZWQgdG8gdGhlIHByb3ZpZGVyLiA8YnI+T25seSBhdmFpbGFibGUgd2l0aCBhY3RpdmF0ZWQgYnVmZmVyLjxicj5OZXcgc2V0dGluZ3Mgd2lsbCBvbmx5IGJlIGFwcGxpZWQgYWZ0ZXIgcXVpdHRpbmcgYWxsIHN0cmVhbXMuIg0KICAgIH0NCiAgfSwNCiAgInhtbHR2IjoNCiAgew0KICAgICJ0YWJsZSI6DQogICAgew0KICAgICAgImd1aWRlIjogIkd1aWRlIiwNCiAgICAgICJsYXN0VXBkYXRlIjogIkxhc3QgVXBkYXRlIiwNCiAgICAgICJhdmFpbGFiaWxpdHkiOiAiQXZhaWxhYmlsaXR5IiwNCiAgICAgICJjaGFubmVscyI6ICJDaGFubmVscyIsDQogICAgICAicHJvZ3JhbXMiOiAiUHJvZ3JhbXMiDQogICAgfSwNCiAgICAibmFtZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIk5hbWUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIkd1aWRlIG5hbWUiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJkZXNjcmlwdGlvbiI6DQogICAgew0KICAgICAgInRpdGxlIjogIkRlc2NyaXB0aW9uIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJEZXNjcmlwdGlvbiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgImZpbGVYTUxUViI6DQogICAgew0KICAgICAgInRpdGxlIjogIlhNTFRWIEZpbGUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIkZpbGUgcGF0aCBvciBVUkwgb2YgdGhlIFhNTFRWIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfQ0KICB9LA0KICAibWFwcGluZyI6DQogIHsNCiAgICAidGFibGUiOg0KICAgIHsNCiAgICAgICJjaE5vIjogIkNoLiBOby4iLA0KICAgICAgImxvZ28iOiAiTG9nbyIsDQogICAgICAiY2hhbm5lbE5hbWUiOiAiQ2hhbm5lbCBOYW1lIiwNCiAgICAgICJwbGF5bGlzdCI6ICJQbGF5bGlzdCIsDQogICAgICAiZ3JvdXBUaXRsZSI6ICJHcm91cCBUaXRsZSIsDQogICAgICAieG1sdHZGaWxlIjogIlhNTFRWIEZpbGUiLA0KICAgICAgInhtbHR2SUQiOiAiWE1MVFYgSUQiLA0KICAgICAgInRpbWVzaGlmdCI6ICJUaW1lc2hpZnQiDQogICAgfSwNCiAgICAiYWN0aXZlIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiQWN0aXZlIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJjaGFubmVsTmFtZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIkNoYW5uZWwgTmFtZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAiZGVzY3JpcHRpb24iOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJDaGFubmVsIERlc2NyaXB0aW9uIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJVc2VkIGJ5IHRoZSBEdW1teSBhcyBhbiBYTUwgZGVzY3JpcHRpb24iLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJ1cGRhdGVDaGFubmVsTmFtZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIlVwZGF0ZSBDaGFubmVsIE5hbWUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgInVwZGF0ZUNoYW5uZWxHcm91cCI6DQogICAgew0KICAgICAgInRpdGxlIjogIlVwZGF0ZSBDaGFubmVsIEdyb3VwIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIklmIGNoZWNrZWQsIHVzZSBncm91cCBmcm9tIHRoZSBkYXRhYmFzZSINCiAgICB9LA0KICAgICJjaGFubmVsTG9nbyI6DQogICAgew0KICAgICAgInRpdGxlIjogIkxvZ28gVVJMIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJ1cGRhdGVDaGFubmVsTG9nbyI6DQogICAgew0KICAgICAgInRpdGxlIjogIlVwZGF0ZSBDaGFubmVsIExvZ28iLA0KICAgICAgInBsYWNlaG9sZGVyIjogIiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgImVwZ0NhdGVnb3J5IjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiRVBHIENhdGVnb3J5IiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJtM3VHcm91cFRpdGxlIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiR3JvdXAgVGl0bGUgKHh0ZXZlLm0zdSkiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgInhtbHR2RmlsZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIlhNTFRWIEZpbGUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgInhtbHR2Q2hhbm5lbCI6DQogICAgew0KICAgICAgInRpdGxlIjogIlhNTFRWIENoYW5uZWwiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgInRpbWVzaGlmdCI6DQogICAgew0KICAgICAgInRpdGxlIjogIlRpbWVzaGlmdCIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiMCIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0NCiAgfSwNCiAgInVzZXJzIjoNCiAgew0KICAgICJ0YWJsZSI6DQogICAgew0KICAgICAgInVzZXJuYW1lIjogIlVzZXJuYW1lIiwNCiAgICAgICJwYXNzd29yZCI6ICJQYXNzd29yZCIsDQogICAgICAid2ViIjogIldFQiIsDQogICAgICAicG1zIjogIlBNUyIsDQogICAgICAibTN1IjogIk0zVSIsDQogICAgICAieG1sIjogIlhNTCIsDQogICAgICAiYXBpIjogIkFQSSINCiAgICB9LA0KICAgICJ1c2VybmFtZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIlVzZXJuYW1lIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJVc2VybmFtZSIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgInBhc3N3b3JkIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiUGFzc3dvcmQiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIlBhc3N3b3JkIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAiY29uZmlybSI6DQogICAgew0KICAgICAgInRpdGxlIjogIkNvbmZpcm0iLA0KICAgICAgInBsYWNlaG9sZGVyIjogIlBhc3N3b3JkIGNvbmZpcm0iLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJ3ZWIiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJXZWIgQWNjZXNzIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJwbXMiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJQTVMgQWNjZXNzIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJtM3UiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJNM1UgQWNjZXNzIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJ4bWwiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJYTUwgQWNjZXNzIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJhcGkiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJBUEkgQWNjZXNzIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9DQogIH0sDQogICJzZXR0aW5ncyI6DQogIHsNCiAgICAiY2F0ZWdvcnkiOg0KICAgIHsNCiAgICAgICJnZW5lcmFsIjogIkdlbmVyYWwiLA0KICAgICAgImZpbGVzIjogIkZpbGVzIiwNCiAgICAgICJzdHJlYW1pbmciOiAiU3RyZWFtaW5nIiwNCiAgICAgICJiYWNrdXAiOiAiQmFja3VwIiwNCiAgICAgICJhdXRoZW50aWNhdGlvbiI6ICJBdXRoZW50aWNhdGlvbiINCiAgICB9LA0KICAgICJ1cGRhdGUiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJTY2hlZHVsZSBmb3IgdXBkYXRpbmcgKFBsYXlsaXN0LCBYTUxUViwgQmFja3VwKSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiMDAwMCwxMDAwLDIwMDAiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIlRpbWUgaW4gMjQgaG91ciBmb3JtYXQgKDA4MDAgPSA4OjAwIGFtKS4gTW9yZSB0aW1lcyBjYW4gYmUgZW50ZXJlZCBjb21tYSBzZXBhcmF0ZWQuIExlYXZlIHRoaXMgZmllbGQgZW1wdHkgaWYgbm8gdXBkYXRlcyBhcmUgdG8gYmUgY2FycmllZCBvdXQuIg0KICAgIH0sDQogICAgImFwaSI6DQogICAgew0KICAgICAgInRpdGxlIjogIkFQSSBJbnRlcmZhY2UiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIlZpYSBBUEkgaW50ZXJmYWNlIGl0IGlzIHBvc3NpYmxlIHRvIHNlbmQgY29tbWFuZHMgdG8geFRlVmUuIEFQSSBkb2N1bWVudGF0aW9uIGlzIDxhIGhyZWY9J2h0dHBzOi8vZ2l0aHViLmNvbS94dGV2ZS1wcm9qZWN0L3hUZVZlLURvY3VtZW50YXRpb24vYmxvYi9tYXN0ZXIvZW4vY29uZmlndXJhdGlvbi5tZCNhcGknPmhlcmU8L2E+Ig0KICAgIH0sDQogICAgImVwZ1NvdXJjZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIkVQRyBTb3VyY2UiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIlBNUzo8YnI+LSBVc2UgRVBHIGRhdGEgZnJvbSBQbGV4IG9yIEVtYnkgPGJyPjxicj5YRVBHOjxicj4tIFVzZSBvZiBvbmUgb3IgbW9yZSBYTUxUViBmaWxlczxicj4tIENoYW5uZWwgbWFuYWdlbWVudDxicj4tIE0zVSAvIFhNTFRWIGV4cG9ydCAoSFRUUCBsaW5rIGZvciBJUFRWIGFwcHMpIg0KICAgIH0sDQogICAgInR1bmVyIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiTnVtYmVyIG9mIFR1bmVycyIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiTnVtYmVyIG9mIHBhcmFsbGVsIGNvbm5lY3Rpb25zIHRoYXQgY2FuIGJlIGVzdGFibGlzaGVkIHRvIHRoZSBwcm92aWRlci48YnI+QXZhaWxhYmxlIGZvcjogUGxleCwgRW1ieSAoSERIUiksIE0zVSAod2l0aCBhY3RpdmUgYnVmZmVyKS48YnI+QWZ0ZXIgYSBjaGFuZ2UsIHhUZVZlIG11c3QgYmUgZGVsZXRlIGluIHRoZSBQbGV4IC8gRW1ieSBEVlIgc2V0dGluZ3MgYW5kIHNldCB1cCBhZ2Fpbi4iDQogICAgfSwNCiAgICAiZmlsZXNVcGRhdGUiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJVcGRhdGVzIGFsbCBmaWxlcyBhdCBzdGFydHVwIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJVcGRhdGVzIGFsbCBwbGF5bGlzdHMsIHR1bmVyIGFuZCBYTUxUViBmaWxlcyBhdCBzdGFydHVwLiINCiAgICB9LA0KICAgICJjYWNoZUltYWdlcyI6DQogICAgew0KICAgICAgInRpdGxlIjogIkltYWdlIENhY2hpbmciLA0KICAgICAgImRlc2NyaXB0aW9uIjogIkFsbCBpbWFnZXMgZnJvbSB0aGUgWE1MVFYgZmlsZSBhcmUgY2FjaGVkLCBhbGxvd2luZyBmYXN0ZXIgcmVuZGVyaW5nIG9mIHRoZSBncmlkIGluIHRoZSBjbGllbnQuPGJyPkRvd25sb2FkaW5nIHRoZSBpbWFnZXMgbWF5IHRha2UgYSB3aGlsZSBhbmQgd2lsbCBiZSBkb25lIGluIHRoZSBiYWNrZ3JvdW5kLiINCiAgICB9LA0KICAgICJyZXBsYWNlRW1wdHlJbWFnZXMiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJSZXBsYWNlIG1pc3NpbmcgcHJvZ3JhbSBpbWFnZXMiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIklmIHRoZSBwb3N0ZXIgaW4gdGhlIFhNTFRWIHByb2dyYW0gaXMgbWlzc2luZywgdGhlIGNoYW5uZWwgbG9nbyB3aWxsIGJlIHVzZWQuIg0KICAgIH0sDQogICAgInh0ZXZlQXV0b1VwZGF0ZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIkF1dG9tYXRpYyB1cGRhdGUgb2YgeFRlVmUiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIklmIGEgbmV3IHZlcnNpb24gb2YgeFRlVmUgaXMgYXZhaWxhYmxlLCBpdCB3aWxsIGJlIGF1dG9tYXRpY2FsbHkgaW5zdGFsbGVkLiBUaGUgdXBkYXRlcyBhcmUgZG93bmxvYWRlZCBmcm9tIEdpdEh1Yi4iDQogICAgfSwNCiAgICAic3RyZWFtQnVmZmVyaW5nIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiU3RyZWFtIEJ1ZmZlciIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiRnVuY3Rpb25zIG9mIHRoZSBidWZmZXI6PGJyPi0gVGhlIHN0cmVhbSBpcyBwYXNzZWQgZnJvbSB4VGVWZSwgRkZtcGVnIG9yIFZMQyB0byBQbGV4LCBFbWJ5IG9yIE0zVSBQbGF5ZXI8YnI+LSBTbWFsbCBqZXJraW5nIG9mIHRoZSBzdHJlYW1zIGNhbiBiZSBjb21wZW5zYXRlZDxicj4tIEhMUyAvIE0zVTggc3VwcG9ydDxicj4tIFJUUCAvIFJUUFMgc3VwcG9ydCAob25seSBGRm1wZWcgb3IgVkxDKTxicj4tIFJlLXN0cmVhbWluZzxicj4tIFNlcGFyYXRlIHR1bmVyIGxpbWl0IGZvciBlYWNoIHBsYXlsaXN0IiwNCiAgICAgICJpbmZvX2ZhbHNlIjogIk5vIEJ1ZmZlciAoQ2xpZW50IGNvbm5lY3RzIHRvIHRoZSBzdHJlYW1pbmcgc2VydmVyKSIsDQogICAgICAiaW5mb194dGV2ZSI6ICJ4VGVWZSBjb25uZWN0cyB0byB0aGUgc3RyZWFtaW5nIHNlcnZlciIsDQogICAgICAiaW5mb19mZm1wZWciOiAiRkZtcGVnIGNvbm5lY3RzIHRvIHRoZSBzdHJlYW1pbmcgc2VydmVyIiwNCiAgICAgICJpbmZvX3ZsYyI6ICJWTEMgY29ubmVjdHMgdG8gdGhlIHN0cmVhbWluZyBzZXJ2ZXIiDQoNCiAgICB9LA0KICAgICJ1ZHB4eSI6DQogICAgew0KICAgICAgInRpdGxlIjogIlVEUHh5IGFkZHJlc3MiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIlRoZSBhZGRyZXNzIG9mIHlvdXIgVURQeHkgc2VydmVyLiBJZiBzZXQsIGFuZCB0aGUgY2hhbm5lbCBVUkxzIGluIHRoZSBtM3UgaXMgbXVsdGljYXN0LCB4VGVWZSB3aWxsIHJld3JpdGUgaXQgc28gdGhhdCBpdCBpcyBhY2Nlc3NlZCB2aWEgdGhlIFVEUHh5IHNlcnZpY2UuIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJob3N0OnBvcnQiDQogICAgfSwNCiAgICAiZmZtcGVnUGF0aCI6DQogICAgew0KICAgICAgInRpdGxlIjogIkZGbXBlZyBCaW5hcnkgUGF0aCIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiUGF0aCB0byBGRm1wZWcgYmluYXJ5LiIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiL3BhdGgvdG8vZmZtcGVnIg0KICAgIH0sDQogICAgImZmbXBlZ09wdGlvbnMiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJGRm1wZWcgT3B0aW9ucyIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiRkZtcGVnIG9wdGlvbnMuPGJyPk9ubHkgY2hhbmdlIGlmIHlvdSBrbm93IHdoYXQgeW91IGFyZSBkb2luZy48YnI+TGVhdmUgYmxhbmsgdG8gc2V0IGRlZmF1bHQgc2V0dGluZ3MuIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJMZWF2ZSBibGFuayB0byBzZXQgZGVmYXVsdCBzZXR0aW5ncyINCiAgICB9LA0KICAgICJ2bGNQYXRoIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiVkxDIC8gQ1ZMQyBCaW5hcnkgUGF0aCIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiUGF0aCB0byBWTEMgLyBDVkxDIGJpbmFyeS4iLA0KICAgICAgInBsYWNlaG9sZGVyIjogIi9wYXRoL3RvL2N2bGMiDQogICAgfSwNCiAgICAidmxjT3B0aW9ucyI6DQogICAgew0KICAgICAgInRpdGxlIjogIlZMQyAvIENWTEMgT3B0aW9ucyIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiVkxDIC8gQ1ZMQyBvcHRpb25zLjxicj5Pbmx5IGNoYW5nZSBpZiB5b3Uga25vdyB3aGF0IHlvdSBhcmUgZG9pbmcuPGJyPkxlYXZlIGJsYW5rIHRvIHNldCBkZWZhdWx0IHNldHRpbmdzLiIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiTGVhdmUgYmxhbmsgdG8gc2V0IGRlZmF1bHQgc2V0dGluZ3MiDQogICAgfSwNCiAgICAiYnVmZmVyU2l6ZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIkJ1ZmZlciBTaXplIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJCdWZmZXIgc2l6ZSBpbiBNQi48YnI+TTNVODogSWYgdGhlIFRTIHNlZ21lbnQgc21hbGxlciB0aGVuIHRoZSBidWZmZXIgc2l6ZSwgdGhlIGZpbGUgc2l6ZSBvZiB0aGUgc2VnbWVudCBpcyB1c2VkLiINCiAgICB9LA0KICAgICJidWZmZXJUaW1lb3V0IjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiVGltZW91dCBmb3IgbmV3IGNsaWVudCBjb25uZWN0aW9ucyIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiVGhlIHhUZVZlIGJ1ZmZlciB3YWl0cyB1bnRpbCBuZXcgY2xpZW50IGNvbm5lY3Rpb25zIGFyZSBlc3RhYmxpc2hlZC4gSGVscGZ1bCBmb3IgZmFzdCBjaGFubmVsIHN3aXRjaGluZy4gVmFsdWUgaW4gbWlsbGlzZWNvbmRzLiIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiMTAwIg0KICAgIH0sDQogICAgInVzZXJBZ2VudCI6DQogICAgew0KICAgICAgInRpdGxlIjogIlVzZXIgQWdlbnQiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIlVzZXIgQWdlbnQgZm9yIEhUVFAgcmVxdWVzdHMuIEZvciBldmVyeSBIVFRQIGNvbm5lY3Rpb24sIHRoaXMgdmFsdWUgaXMgdXNlZCBmb3IgdGhlIHVzZXIgYWdlbnQuIFNob3VsZCBvbmx5IGJlIGNoYW5nZWQgaWYgeFRlVmUgaXMgYmxvY2tlZC4iLA0KICAgICAgInBsYWNlaG9sZGVyIjogInhUZVZlIg0KICAgIH0sDQogICAgImJhY2t1cFBhdGgiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJMb2NhdGlvbiBmb3IgYXV0b21hdGljIGJhY2t1cHMiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIi9tbnQvZGF0YS9iYWNrdXAveHRldmUvIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJCZWZvcmUgYW55IHVwZGF0ZSBvZiB0aGUgcHJvdmlkZXIgZGF0YSBieSB0aGUgc2NoZWR1bGUsIHhUZVZlIGNyZWF0ZXMgYSBiYWNrdXAuIFRoZSBwYXRoIGZvciB0aGUgYXV0b21hdGljIGJhY2t1cHMgY2FuIGJlIGNoYW5nZWQuIHhUZVZlIHJlcXVpcmVzIHdyaXRlIHBlcm1pc3Npb24gZm9yIHRoaXMgZm9sZGVyLiINCiAgICB9LA0KICAgICJ0ZW1wUGF0aCI6DQogICAgew0KICAgICAgInRpdGxlIjogIkxvY2F0aW9uIGZvciB0aGUgdGVtcG9yYXJ5IGZpbGVzIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIvdG1wL3h0ZXZlLyIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiTG9jYXRpb24gZm9yIHRoZSBidWZmZXIgZmlsZXMuIg0KICAgIH0sDQogICAgImJhY2t1cEtlZXAiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJOdW1iZXIgb2YgYmFja3VwcyB0byBrZWVwIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJOdW1iZXIgb2YgYmFja3VwcyB0byBrZWVwLiBPbGRlciBiYWNrdXBzIGFyZSBhdXRvbWF0aWNhbGx5IGRlbGV0ZWQuIg0KICAgIH0sDQogICAgImF1dGhlbnRpY2F0aW9uV0VCIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiV0VCIEF1dGhlbnRpY2F0aW9uIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJBY2Nlc3MgdG8gdGhlIHdlYiBpbnRlcmZhY2Ugb25seSBwb3NzaWJsZSB3aXRoIGNyZWRlbnRpYWxzLiINCiAgICB9LA0KICAgICJhdXRoZW50aWNhdGlvblBNUyI6DQogICAgew0KICAgICAgInRpdGxlIjogIlBNUyBBdXRoZW50aWNhdGlvbiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiUGxleCByZXF1ZXN0cyBhcmUgb25seSBwb3NzaWJsZSB3aXRoIGF1dGhlbnRpY2F0aW9uLiA8YnI+PGI+V2FybmluZyEhITwvYj4gQWZ0ZXIgYWN0aXZhdGluZyB0aGlzIGZ1bmN0aW9uIHhUZVZlIG11c3QgYmUgZGVsZXRlIGluIHRoZSBQTVMgRFZSIHNldHRpbmdzIGFuZCBzZXQgdXAgYWdhaW4uIg0KICAgIH0sDQogICAgImF1dGhlbnRpY2F0aW9uTTNVIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiTTNVIEF1dGhlbnRpY2F0aW9uIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJEb3dubG9hZGluZyB0aGUgeHRldmUubTN1IGZpbGUgdmlhIGFuIEhUVFAgcmVxdWVzdCBpcyBvbmx5IHBvc3NpYmxlIHdpdGggYXV0aGVudGljYXRpb24uIg0KICAgIH0sDQogICAgImF1dGhlbnRpY2F0aW9uWE1MIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiWE1MIEF1dGhlbnRpY2F0aW9uIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJEb3dubG9hZGluZyB0aGUgeHRldmUueG1sIGZpbGUgdmlhIGFuIEhUVFAgcmVxdWVzdCBpcyBvbmx5IHBvc3NpYmxlIHdpdGggYXV0aGVudGljYXRpb24iDQogICAgfSwNCiAgICAiYXV0aGVudGljYXRpb25BUEkiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJBUEkgQXV0aGVudGljYXRpb24iLA0KICAgICAgImRlc2NyaXB0aW9uIjogIkFjY2VzcyB0byB0aGUgQVBJIGludGVyZmFjZSBpcyBvbmx5IHBvc3NpYmxlIHdpdGggYXV0aGVudGljYXRpb24uIg0KICAgIH0NCiAgfSwNCiAgIndpemFyZCI6DQogIHsNCiAgICAiZXBnU291cmNlIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiRVBHIFNvdXJjZSIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiUE1TOjxicj4tIFVzZSBFUEcgZGF0YSBmcm9tIFBsZXggb3IgRW1ieSA8YnI+PGJyPlhFUEc6PGJyPi0gVXNlIG9mIG9uZSBvciBtb3JlIFhNTFRWIGZpbGVzPGJyPi0gQ2hhbm5lbCBtYW5hZ2VtZW50PGJyPi0gTTNVIC8gWE1MVFYgZXhwb3J0IChIVFRQIGxpbmsgZm9yIElQVFYgYXBwcykiDQogICAgfSwNCiAgICAidHVuZXIiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJOdW1iZXIgb2YgdHVuZXJzIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJOdW1iZXIgb2YgcGFyYWxsZWwgY29ubmVjdGlvbnMgdGhhdCBjYW4gYmUgZXN0YWJsaXNoZWQgdG8gdGhlIHByb3ZpZGVyLjxicj5BdmFpbGFibGUgZm9yOiBQbGV4LCBFbWJ5IChIREhSKSwgTTNVICh3aXRoIGFjdGl2ZSBidWZmZXIpLjxicj5BZnRlciBhIGNoYW5nZSwgeFRlVmUgbXVzdCBiZSBkZWxldGUgaW4gdGhlIFBsZXggLyBFbWJ5IERWUiBzZXR0aW5ncyBhbmQgc2V0IHVwIGFnYWluLiINCiAgICB9LA0KICAgICJtM3UiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJNM1UgUGxheWxpc3QiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIkZpbGUgcGF0aCBvciBVUkwgb2YgdGhlIE0zVSIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiTG9jYWwgb3IgcmVtb3RlIHBsYXlsaXN0cyINCiAgICB9LA0KICAgICJ4bWx0diI6DQogICAgew0KICAgICAgInRpdGxlIjogIlhNTFRWIEZpbGUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIkZpbGUgcGF0aCBvciBVUkwgb2YgdGhlIFhNTFRWIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJMb2NhbCBvciByZW1vdGUgWE1MVFYgZmlsZSINCiAgICB9DQogIH0sDQogICJsb2dpbiI6DQogIHsNCiAgICAiZmFpbGVkIjogIlVzZXIgYXV0aGVudGljYXRpb24gZmFpbGVkIiwNCiAgICAiaGVhZGxpbmUiOiAiTG9naW4iLA0KICAgICJ1c2VybmFtZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIlVzZXJuYW1lIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJVc2VybmFtZSINCiAgICB9LA0KICAgICJwYXNzd29yZCI6DQogICAgew0KICAgICAgInRpdGxlIjogIlBhc3N3b3JkIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJQYXNzd29yZCINCiAgICB9DQogIH0sDQogICJhY2NvdW50IjoNCiAgew0KICAgICJmYWlsZWQiOiAiUGFzc3dvcmQgZG9lcyBub3QgbWF0Y2giLA0KICAgICJoZWFkbGluZSI6ICJDcmVhdGUgdXNlciBhY2NvdW50IiwNCiAgICAidXNlcm5hbWUiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJVc2VybmFtZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiVXNlcm5hbWUiDQogICAgfSwNCiAgICAicGFzc3dvcmQiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJQYXNzd29yZCIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiUGFzc3dvcmQiDQogICAgfSwNCiAgICAiY29uZmlybSI6DQogICAgew0KICAgICAgInRpdGxlIjogIkNvbmZpcm0iLA0KICAgICAgInBsYWNlaG9sZGVyIjogIkNvbmZpcm0iDQogICAgfQ0KICB9DQp9" diff --git a/ts/base_ts.ts b/ts/base_ts.ts index 6348c1c..b9aa2ed 100644 --- a/ts/base_ts.ts +++ b/ts/base_ts.ts @@ -111,7 +111,7 @@ function getLocalData(dataType, id):object { } function getOwnObjProps(object: Object): string[] { - return Object.getOwnPropertyNames(object); + return object ? Object.getOwnPropertyNames(object) : []; } function getAllSelectedChannels():string[] { diff --git a/ts/menu_ts.ts b/ts/menu_ts.ts index efd0bf9..4580575 100644 --- a/ts/menu_ts.ts +++ b/ts/menu_ts.ts @@ -1674,23 +1674,23 @@ function openPopUp(dataType, element) { content.description("{{.mapping.updateChannelGroup.description}}") // XMLTV file - var dbKey:string = "x-xmltv-file" - var xmlFile = data[dbKey] - var xmltv:XMLTVFile = new XMLTVFile() - var select = xmltv.getFiles(data[dbKey]) - select.setAttribute("name", dbKey) - select.setAttribute("id", "popup-xmltv") - select.setAttribute("onchange", `javascript: this.className = 'changed'; setXmltvChannel('${id}', this);`); - content.appendRow("{{.mapping.xmltvFile.title}}", select) + var dbKey = 'x-xmltv-file'; + const xmlTvFile: string = data[dbKey]; + var xmlTv = new XMLTVFile(); + const xmlTvFileSelect = xmlTv.getFiles(data[dbKey]); + xmlTvFileSelect.setAttribute('name', dbKey); + xmlTvFileSelect.setAttribute('id', 'popup-xmltv'); + xmlTvFileSelect.setAttribute('onchange', `javascript: this.className = 'changed'; setXmltvChannel('${id}', this);`); + content.appendRow('{{.mapping.xmltvFile.title}}', xmlTvFileSelect); // XMLTV Mapping var dbKey: string = 'x-mapping'; - var xmltv: XMLTVFile = new XMLTVFile(); - const xMapping: string = data[dbKey]; - const xmlTvIdSelect = xmltv.getPrograms(xmlFile, xMapping); + var xmlTv = new XMLTVFile(); + const currentXmlTvId: string = data[dbKey]; + const xmlTvIdSelect = xmlTv.getPrograms(xmlTvFile, currentXmlTvId); xmlTvIdSelect.setAttribute('name', dbKey); xmlTvIdSelect.setAttribute('id', 'popup-mapping'); - xmlTvIdSelect.setAttribute('onchange', `javascript: this.className = 'changed'; checkXmltvChannel('${id}', this, '${xmlFile}');`); + xmlTvIdSelect.setAttribute('onchange', `javascript: this.className = 'changed'; checkXmltvChannel('${id}', this, '${xmlTvFile}');`); sortSelect(xmlTvIdSelect); content.appendRow('{{.mapping.xmltvChannel.title}}', xmlTvIdSelect); @@ -1769,14 +1769,14 @@ class XMLTVFile { return select } - getPrograms(xmlFile: string, xMapping: string): HTMLSelectElement { - const values = getOwnObjProps(SERVER['xepg']['xmltvMap'][xmlFile]); + getPrograms(xmlTvFile: string, currentXmlTvId: string): HTMLSelectElement { + const values = getOwnObjProps(SERVER['xepg']['xmltvMap'][xmlTvFile]); const text: string[] = []; let friendlyName: string; for (let i = 0; i < values.length; i++) { - if (SERVER['xepg']['xmltvMap'][xmlFile][values[i]].hasOwnProperty('friendly-name') == true) { - friendlyName = SERVER['xepg']['xmltvMap'][xmlFile][values[i]]['friendly-name']; + if (SERVER['xepg']['xmltvMap'][xmlTvFile][values[i]].hasOwnProperty('friendly-name') == true) { + friendlyName = SERVER['xepg']['xmltvMap'][xmlTvFile][values[i]]['friendly-name']; } else { friendlyName = '-'; } @@ -1796,7 +1796,7 @@ class XMLTVFile { select.appendChild(option); } - select.value = (xMapping == '') ? '-' : xMapping; + select.value = (currentXmlTvId == '') ? '-' : currentXmlTvId; return select; } @@ -1840,69 +1840,73 @@ function getValueFromProviderFile(file:string, fileType, key) { } -function setXmltvChannel(epgMappingId: string, oldSelect: HTMLSelectElement) { +function setXmltvChannel(epgMapId: string, xmlTvFileSelect: HTMLSelectElement) { - let xmltv: XMLTVFile = new XMLTVFile(); - let xmlFile = oldSelect.value; + const xmlTv = new XMLTVFile(); + const newXmlTvFile = xmlTvFileSelect.value; - let tvgId: string = SERVER['xepg']['epgMapping'][epgMappingId]['tvg-id']; - let td = document.getElementById('popup-mapping').parentElement; - td.innerHTML = ''; + // Remove old XMLTV ID selection box + const xmlTvIdSelectParent = document.getElementById('popup-mapping').parentElement as HTMLTableCellElement; + xmlTvIdSelectParent.innerHTML = ''; - const newSelect = xmltv.getPrograms(oldSelect.value, tvgId); - newSelect.setAttribute('name', 'x-mapping'); - newSelect.setAttribute('id', 'popup-mapping'); - newSelect.setAttribute('onchange', `javascript: this.className = 'changed'; checkXmltvChannel('${epgMappingId}', this, '${xmlFile}');`); - newSelect.className = 'changed'; - sortSelect(newSelect); - td.appendChild(newSelect); - - checkXmltvChannel(epgMappingId, newSelect, xmlFile); + // Create new XMLTV ID selection box + const tvgId: string = SERVER['xepg']['epgMapping'][epgMapId]['tvg-id']; + + const newXmlTvIdSelect = xmlTv.getPrograms(newXmlTvFile, tvgId); + newXmlTvIdSelect.setAttribute('name', 'x-mapping'); + newXmlTvIdSelect.setAttribute('id', 'popup-mapping'); + newXmlTvIdSelect.setAttribute('onchange', `javascript: this.className = 'changed'; checkXmltvChannel('${epgMapId}', this, '${newXmlTvFile}');`); + newXmlTvIdSelect.className = 'changed'; + sortSelect(newXmlTvIdSelect); + + // Add new XMLTV ID selection box to it's parent + xmlTvIdSelectParent.appendChild(newXmlTvIdSelect); + + checkXmltvChannel(epgMapId, newXmlTvIdSelect, newXmlTvFile); } -function checkXmltvChannel(epgMappingId: string, select: HTMLSelectElement, xmlFile: string) { +function checkXmltvChannel(epgMapId: string, xmlTvIdSelect: HTMLSelectElement, xmlTvFile: string) { - const selectValue = (select as HTMLSelectElement).value; - let channelActive: boolean; - const checkbox = document.getElementById('active'); + const newXmlTvId = xmlTvIdSelect.value; + const channelActiveCb = document.getElementById('active') as HTMLInputElement; - channelActive = selectValue != '-'; + const channelActive = newXmlTvId != '-'; - (checkbox as HTMLInputElement).checked = channelActive; - checkbox.className = 'changed'; + channelActiveCb.checked = channelActive; + channelActiveCb.className = 'changed'; - if(xmlFile != 'xTeVe Dummy' && channelActive == true) { - changeChannelLogo(epgMappingId); + if(xmlTvFile != 'xTeVe Dummy' && channelActive == true) { + changeChannelLogo(epgMapId); return; } - if (xmlFile == 'xTeVe Dummy') { + if (xmlTvFile == 'xTeVe Dummy') { (document.getElementById('update-icon') as HTMLInputElement).checked = false; (document.getElementById('update-icon') as HTMLInputElement).className = 'changed'; } } -function changeChannelLogo(epgMappingId: string) { +function changeChannelLogo(epgMapId: string) { - let updateLogo: boolean; - let logo: string; - const channel: any = SERVER['xepg']['epgMapping'][epgMappingId]; + const channel: Object = SERVER['xepg']['epgMapping'][epgMapId]; + + const xmlTvFileSelect = document.getElementById('popup-xmltv') as HTMLSelectElement; + const xmlTvFile = xmlTvFileSelect.options[xmlTvFileSelect.selectedIndex].value; - const f = (document.getElementById('popup-xmltv') as HTMLSelectElement); - const xmltvFile = f.options[f.selectedIndex].value; + const xmlTvIdSelect = document.getElementById('popup-mapping') as HTMLSelectElement; + const newXmlTvId = xmlTvIdSelect.options[xmlTvIdSelect.selectedIndex].value; - const m = (document.getElementById('popup-mapping') as HTMLSelectElement); - const xMapping = m.options[m.selectedIndex].value; + const xmlTvLogo = SERVER['xepg']['xmltvMap'][xmlTvFile][newXmlTvId]['icon']; + const updateLogo = (document.getElementById('update-icon') as HTMLInputElement).checked; - const xmltvLogo = SERVER['xepg']['xmltvMap'][xmltvFile][xMapping]['icon']; - updateLogo = (document.getElementById('update-icon') as HTMLInputElement).checked; + let logo: string; - if (updateLogo == true && xmltvFile != 'xTeVe Dummy') { + if (updateLogo == true && xmlTvFile != 'xTeVe Dummy') { - if (SERVER['xepg']['xmltvMap'][xmltvFile].hasOwnProperty(xMapping)) { - logo = xmltvLogo; + if (SERVER['xepg']['xmltvMap'][xmlTvFile].hasOwnProperty(newXmlTvId)) { + logo = xmlTvLogo; } else { logo = channel['tvg-logo']; } @@ -1918,7 +1922,7 @@ function changeChannelLogo(epgMappingId: string) { } -function savePopupData(dataType:string, id:string, remove:Boolean, option:number) { +function savePopupData(dataType: string, id: string, remove: Boolean, option: number) { if (dataType == "mapping") { From a7f455c8d5bee351ddece566fbb43bed56459d7f Mon Sep 17 00:00:00 2001 From: SCP002 Date: Thu, 21 Apr 2022 19:27:01 +0300 Subject: [PATCH 089/189] Add TLS mode support and checkbox in Settings -> General --- README.md | 9 ++++ certeficates/xteve.crt | 21 ++++++++ certeficates/xteve.key | 27 ++++++++++ html/js/base_ts.js | 2 +- html/js/network_ts.js | 26 ++++------ html/js/settings_ts.js | 14 ++++++ html/lang/en.json | 4 ++ src/backup.go | 16 ++++-- src/config.go | 1 + src/screen.go | 2 + src/struct-system.go | 2 + src/struct-webserver.go | 2 + src/system.go | 23 ++++++--- src/update.go | 2 +- src/webUI.go | 8 +-- src/webserver.go | 108 +++++++++++++++++++++++++++------------- ts/base_ts.ts | 2 +- ts/network_ts.ts | 48 +++++++----------- ts/settings_ts.ts | 22 +++++++- xteve.go | 16 +++--- 20 files changed, 247 insertions(+), 108 deletions(-) create mode 100644 certeficates/xteve.crt create mode 100644 certeficates/xteve.key diff --git a/README.md b/README.md index 23c6af0..22936eb 100644 --- a/README.md +++ b/README.md @@ -160,6 +160,15 @@ gox -output="./xteve-build/{{.Dir}}_{{.OS}}_{{.Arch}}" ./ --- +## Certificate generation + +See: +* +* +* + +--- + ## Fork without pull request :mega: When creating a fork, the xTeVe GitHub account must be changed from the source code or the update function disabled. diff --git a/certeficates/xteve.crt b/certeficates/xteve.crt new file mode 100644 index 0000000..95ec431 --- /dev/null +++ b/certeficates/xteve.crt @@ -0,0 +1,21 @@ +-----BEGIN CERTIFICATE----- +MIIDhTCCAm2gAwIBAgIURgwIxlYujaBGZneE0xkvk9VWzeAwDQYJKoZIhvcNAQEL +BQAwUjELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxDjAMBgNVBAoM +BXh0ZXZlMQ4wDAYDVQQLDAV4dGV2ZTEOMAwGA1UEAwwFeHRldmUwHhcNMjIwNDIw +MjMzNzU3WhcNMzIwNDE3MjMzNzU3WjBSMQswCQYDVQQGEwJBVTETMBEGA1UECAwK +U29tZS1TdGF0ZTEOMAwGA1UECgwFeHRldmUxDjAMBgNVBAsMBXh0ZXZlMQ4wDAYD +VQQDDAV4dGV2ZTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAOdrEV93 +ZcxZP47CrzpVWF6dMXeS7nYcyK7aQOoDl2oDj7m5JKsPjl/khRiAUxQ0QgIFVCSi +Xgod4FFjj1HWc7qgpEqyulCP3GR8vnrP63iGptVO8ffU034BifevwyRqEj8Vy11d +uFrn0FxmpSCW8o28TPnEebuZcTVx+zARFEc+Hc48JgTsRIaGbWCnkJ5VQ0Uq6+td +cjHzM7l7yK+xAPOSP4jLQ+zfY5n6C/cjBzZqf/oQU0JuSr12xF17Eccx+EPNdwhk +OLNmcvDEcKAEv9OSzLv3csn8zIqRnpCEYehPBGL+CX5Rz8Vn6/qb2fmqf53B0leV +PmEmjvUOAVj053MCAwEAAaNTMFEwHQYDVR0OBBYEFLfYxsVRzA8l3RuPUp2N+bbv +xVscMB8GA1UdIwQYMBaAFLfYxsVRzA8l3RuPUp2N+bbvxVscMA8GA1UdEwEB/wQF +MAMBAf8wDQYJKoZIhvcNAQELBQADggEBAEiL4LcPZ4HVeTxqrNQjRV2SJNJmUMT2 +AWBrpH4bbKPVgdOJGvQkH4K8OW/P5dCvIum+PZFUR+jkgv2EUppZCU7R6mGyhDBA +DBQU7z0R5NdB+bKqKP/Wxs30r6u1lCELQA1PC4PQt04MXKTmLoOscHTTE9qBhrnv +Un8sEr0SHwxtrSupLRRcRMzZvz9q9s9xOjZQa3gNnUsGv9aPrjnrCsBflQ4Vrzym +70aj379sQ8lpkml+0pKiJ+S2aRmt9jQ47fODYSB8A/0iDJSQ4WiOuItiJIQ1q5qV +T6PGzJotCXk9ZXCz84ZZnVcIKFEC9cNWGxdDq/y04t8poyxXLwWRbnY= +-----END CERTIFICATE----- diff --git a/certeficates/xteve.key b/certeficates/xteve.key new file mode 100644 index 0000000..e26eef8 --- /dev/null +++ b/certeficates/xteve.key @@ -0,0 +1,27 @@ +-----BEGIN RSA PRIVATE KEY----- +MIIEpgIBAAKCAQEA52sRX3dlzFk/jsKvOlVYXp0xd5LudhzIrtpA6gOXagOPubkk +qw+OX+SFGIBTFDRCAgVUJKJeCh3gUWOPUdZzuqCkSrK6UI/cZHy+es/reIam1U7x +99TTfgGJ96/DJGoSPxXLXV24WufQXGalIJbyjbxM+cR5u5lxNXH7MBEURz4dzjwm +BOxEhoZtYKeQnlVDRSrr611yMfMzuXvIr7EA85I/iMtD7N9jmfoL9yMHNmp/+hBT +Qm5KvXbEXXsRxzH4Q813CGQ4s2Zy8MRwoAS/05LMu/dyyfzMipGekIRh6E8EYv4J +flHPxWfr+pvZ+ap/ncHSV5U+YSaO9Q4BWPTncwIDAQABAoIBAQDb1viQCmrob7hT +NFsmPUFP0GDXyPtDtSBoCuoz5OmISo3Uzy8oWgTUz9AocG97+BDkvo8qphxT3AHn +D39tLR6Pol+wno0kTyX9SAvju3Vj7/a5GOAAoWuwfmHErHHjO+jNiTTCI3Ao26My +xEgF55/QSZuOgrlqH+BN91O6W985tNfNHoIbAVjiDm3R8VDB+tjhBoFW5ZLQn8Xa +/lKAlEZ3tmzwi8QxCRxX1JYQ09UD9E/RV1DCbOaownyplocjVNwWd0wTQ7/Peqr5 ++/lvN9DiRGgPWogX0cvmNYoLFP+98s++v8zvJWI6uO3P7LzQIClXowxE12KNzUKE +2zuf93pBAoGBAP6XDwnjmgttldlxcwhuDEo6enl5kvfzELSoYwvO63xJi/+lLd/E +/83ePBiBgoZFdzBLuNaQUZVibzlt5PJUtlejoTap98+0hcjU+Dw416AkQ2eHabXj +JjuiXPb5Gio3FIN55HnTTme8LQiyF0g9Ok+w/YvOjeTfJa1UMlkyRdsRAoGBAOiz +KFfewniBdZt1KrwI3JAGGDr+W3koxtI3BBszqA5dPjGVeA1M6pt+kbk+zI0dBleY +AmUDHDPKU4RXDc0rESwUhKF/kxMAh1O25Tt0RY5vWRcDlAgKoPbVVZLbSkwkHx6S +VxXHT2wEFdqJrmrZp047Be9hIuKziVJijiMNL3JDAoGBAJJq2AhM8Jwf8y1yFMFF +YSYTibpxE/grv3DW4te4si/xsGVfXwmxp5iDdjZ1zVZhfxG0iuJDb9glG2iA7kn8 +ND4k6iOhDtdSsBp3eShRXJlKIcXZ2A72S1fCogqb6tNaiB6xLJhv0UjRrWix27f9 +FpscZEVSjsKRH38WzDoGMqyxAoGBALhjtrUiO+E3XFTqHAnRz8yEN9EPWraAHEPY ++nT/ksyHEFBEC1QmvcSnH5u1amrrM+pW9pbKRx+21EUKolIQLVRLkelS6Nzmz1UD +mVNqR++cxfCZkkRo/7F3zI5JG++Hs+0Kstz8CTAjcJmx/baHb65q0MIlq3oOH+Nb +WxvlR9J3AoGBALFFee66OHfgHx/pi+/NUWo9DHPcypGmJskmmNm+Z94utpyZrSxj +KiiZi79cQiNTzBwANQ9h5lvGguKONE4v4vLTrqzOnaCCVGm/Q/I4cAXwidjTZmhC +v6Pw1OPHRglCDuXUy2v7eDPXpusJ36Rp4y/+ALu4tnBk6eZ3b02zw6qB +-----END RSA PRIVATE KEY----- diff --git a/html/js/base_ts.js b/html/js/base_ts.js index 6aecc88..3b8c76d 100644 --- a/html/js/base_ts.js +++ b/html/js/base_ts.js @@ -18,7 +18,7 @@ menuItems.push(new MainMenuItem("log", "{{.mainMenu.item.log}}", "log.png", "{{. menuItems.push(new MainMenuItem("logout", "{{.mainMenu.item.logout}}", "logout.png", "{{.mainMenu.headline.logout}}")); // Settings categories var settingsCategory = new Array(); -settingsCategory.push(new SettingsCategoryItem("{{.settings.category.general}}", "xteveAutoUpdate,tuner,epgSource,api")); +settingsCategory.push(new SettingsCategoryItem("{{.settings.category.general}}", "tlsMode,xteveAutoUpdate,tuner,epgSource,api")); settingsCategory.push(new SettingsCategoryItem("{{.settings.category.files}}", "update,files.update,temp.path,cache.images,xepg.replace.missing.images")); settingsCategory.push(new SettingsCategoryItem("{{.settings.category.streaming}}", "buffer,udpxy,buffer.size.kb,buffer.timeout,user.agent,ffmpeg.path,ffmpeg.options,vlc.path,vlc.options")); settingsCategory.push(new SettingsCategoryItem("{{.settings.category.backup}}", "backup.path,backup.keep")); diff --git a/html/js/network_ts.js b/html/js/network_ts.js index b748b2e..4d855d5 100644 --- a/html/js/network_ts.js +++ b/html/js/network_ts.js @@ -7,7 +7,6 @@ class Server { return; } SERVER_CONNECTION = true; - console.log(data); if (this.cmd != "updateLog") { showElement("loading", true); UNDO = new Object(); @@ -25,35 +24,32 @@ class Server { var ws = new WebSocket(url); ws.onopen = function () { WS_AVAILABLE = true; - console.log("REQUEST (JS):"); - console.log(data); - console.log("REQUEST: (JSON)"); - console.log(JSON.stringify(data)); this.send(JSON.stringify(data)); }; - ws.onerror = function (e) { + ws.onerror = function (wsErrEvt) { console.log("No websocket connection to xTeVe could be established. Check your network configuration."); SERVER_CONNECTION = false; if (WS_AVAILABLE == false) { alert("No websocket connection to xTeVe could be established. Check your network configuration."); } }; - ws.onmessage = function (e) { + ws.onmessage = function (wsMessageEvt) { SERVER_CONNECTION = false; showElement("loading", false); - console.log("RESPONSE:"); - var response = JSON.parse(e.data); - console.log(response); + const response = JSON.parse(wsMessageEvt.data); if (response.hasOwnProperty("token")) { document.cookie = "Token=" + response["token"]; } if (response["status"] == false) { alert(response["err"]); - if (response.hasOwnProperty("reload")) { - location.reload(); - } return; } + if (response.hasOwnProperty("newWebUrl")) { + window.location = response["newWebUrl"]; + } + if (response.hasOwnProperty("reload")) { + window.location.reload(); + } if (response.hasOwnProperty("alert")) { alert(response["alert"]); } @@ -70,7 +66,6 @@ class Server { showLogs(false); } return; - break; default: SERVER = new Object(); SERVER = response; @@ -99,6 +94,7 @@ class Server { function getCookie(name) { var value = "; " + document.cookie; var parts = value.split("; " + name + "="); - if (parts.length == 2) + if (parts.length == 2) { return parts.pop().split(";").shift(); + } } diff --git a/html/js/settings_ts.js b/html/js/settings_ts.js index 07e05e5..7965a39 100644 --- a/html/js/settings_ts.js +++ b/html/js/settings_ts.js @@ -117,6 +117,17 @@ class SettingsCategory { setting.appendChild(tdRight); break; // Checkboxes + case "tlsMode": + var tdLeft = document.createElement("TD"); + tdLeft.innerHTML = "{{.settings.tlsMode.title}}" + ":"; + var tdRight = document.createElement("TD"); + var input = content.createCheckbox(settingsKey); + input.checked = data; + input.setAttribute("onchange", "javascript: this.className = 'changed'"); + tdRight.appendChild(input); + setting.appendChild(tdLeft); + setting.appendChild(tdRight); + break; case "authentication.web": var tdLeft = document.createElement("TD"); tdLeft.innerHTML = "{{.settings.authenticationWEB.title}}" + ":"; @@ -310,6 +321,9 @@ class SettingsCategory { var description = document.createElement("TR"); var text; switch (settingsKey) { + case "tlsMode": + text = "{{.settings.tlsMode.description}}"; + break; case "authentication.web": text = "{{.settings.authenticationWEB.description}}"; break; diff --git a/html/lang/en.json b/html/lang/en.json index 896559f..fcbd27b 100644 --- a/html/lang/en.json +++ b/html/lang/en.json @@ -397,6 +397,10 @@ "title": "Number of Tuners", "description": "Number of parallel connections that can be established to the provider.
Available for: Plex, Emby (HDHR), M3U (with active buffer).
After a change, xTeVe must be delete in the Plex / Emby DVR settings and set up again." }, + "tlsMode": { + "title": "TLS (HTTPS) mode", + "description": "Changes web server protocol to HTTPS. Requires xteve.crt and xteve.key in xTeVe config /certificates directory." + }, "filesUpdate": { "title": "Updates all files at startup", diff --git a/src/backup.go b/src/backup.go index e69ab2c..4899fa1 100644 --- a/src/backup.go +++ b/src/backup.go @@ -13,7 +13,7 @@ import ( func xTeVeAutoBackup() (err error) { - var archiv = "xteve_auto_backup_" + time.Now().Format("20060102_1504") + ".zip" + var archive = "xteve_auto_backup_" + time.Now().Format("20060102_1504") + ".zip" var target string var sourceFiles = make([]string, 0) var oldBackupFiles = make([]string, 0) @@ -74,13 +74,16 @@ func xTeVeAutoBackup() (err error) { // Create a Backup if err == nil { - target = System.Folder.Backup + archiv + target = System.Folder.Backup + archive for _, i := range SystemFiles { sourceFiles = append(sourceFiles, System.Folder.Config+i) } sourceFiles = append(sourceFiles, System.Folder.ImagesUpload) + if Settings.TLSMode { + sourceFiles = append(sourceFiles, System.Folder.Certificates) + } err = zipFiles(sourceFiles, target) @@ -98,16 +101,16 @@ func xTeVeAutoBackup() (err error) { return } -func xteveBackup() (archiv string, err error) { +func xteveBackup() (archive string, err error) { err = checkFolder(System.Folder.Temp) if err != nil { return } - archiv = "xteve_backup_" + time.Now().Format("20060102_1504") + ".zip" + archive = "xteve_backup_" + time.Now().Format("20060102_1504") + ".zip" - var target = System.Folder.Temp + archiv + var target = System.Folder.Temp + archive var sourceFiles = make([]string, 0) for _, i := range SystemFiles { @@ -115,6 +118,9 @@ func xteveBackup() (archiv string, err error) { } sourceFiles = append(sourceFiles, System.Folder.Data) + if Settings.TLSMode { + sourceFiles = append(sourceFiles, System.Folder.Certificates) + } err = zipFiles(sourceFiles, target) if err != nil { diff --git a/src/config.go b/src/config.go index c9d18bf..26390ce 100644 --- a/src/config.go +++ b/src/config.go @@ -73,6 +73,7 @@ func Init() (err error) { System.Folder.Backup = System.Folder.Config + "backup" + string(os.PathSeparator) System.Folder.Data = System.Folder.Config + "data" + string(os.PathSeparator) System.Folder.Cache = System.Folder.Config + "cache" + string(os.PathSeparator) + System.Folder.Certificates = System.Folder.Config + "certificates" + string(os.PathSeparator) System.Folder.ImagesCache = System.Folder.Cache + "images" + string(os.PathSeparator) System.Folder.ImagesUpload = System.Folder.Data + "images" + string(os.PathSeparator) System.Folder.Temp = getDefaultTempDir() diff --git a/src/screen.go b/src/screen.go index fd913c8..401c37b 100644 --- a/src/screen.go +++ b/src/screen.go @@ -251,6 +251,8 @@ func getErrMsg(errCode int) (errMsg string) { errMsg = fmt.Sprintf("Invalid filter rule") case 1015: errMsg = fmt.Sprintf("Specified temp folder path is invalid, fallback to %s", os.TempDir()) + case 1016: + errMsg = fmt.Sprintf("Web server could not be stopped.") case 1020: errMsg = fmt.Sprintf("Data could not be saved, invalid keyword") diff --git a/src/struct-system.go b/src/struct-system.go index 2f5bdfe..dd00338 100644 --- a/src/struct-system.go +++ b/src/struct-system.go @@ -60,6 +60,7 @@ type SystemStruct struct { Folder struct { Backup string Cache string + Certificates string Config string Data string ImagesCache string @@ -303,6 +304,7 @@ type SettingsStruct struct { Port string `json:"port"` SSDP bool `json:"ssdp"` TempPath string `json:"temp.path"` + TLSMode bool `json:"tlsMode"` Tuner int `json:"tuner"` Update []string `json:"update"` UpdateURL string `json:"update.url,omitempty"` diff --git a/src/struct-webserver.go b/src/struct-webserver.go index c0192b3..915fdcc 100644 --- a/src/struct-webserver.go +++ b/src/struct-webserver.go @@ -36,6 +36,7 @@ type RequestStruct struct { VLCPath *string `json:"vlc.path,omitempty"` FilesUpdate *bool `json:"files.update,omitempty"` TempPath *string `json:"temp.path,omitempty"` + TLSMode *bool `json:"tlsMode,omitempty"` Tuner *int `json:"tuner,omitempty"` UDPxy *string `json:"udpxy,omitempty"` Update *[]string `json:"update,omitempty"` @@ -107,6 +108,7 @@ type ResponseStruct struct { Error string `json:"err,omitempty"` Log WebScreenLogStruct `json:"log,required"` LogoURL string `json:"logoURL,omitempty"` + NewWebURL string `json:"newWebUrl,omitempty"` OpenLink string `json:"openLink,omitempty"` OpenMenu string `json:"openMenu,omitempty"` Reload bool `json:"reload,omitempty"` diff --git a/src/system.go b/src/system.go index dbf14f5..1c72419 100644 --- a/src/system.go +++ b/src/system.go @@ -112,32 +112,33 @@ func loadSettings() (settings SettingsStruct, err error) { defaults["authentication.xml"] = false defaults["backup.keep"] = 10 defaults["backup.path"] = System.Folder.Backup - defaults["buffer"] = "-" defaults["buffer.size.kb"] = 1024 defaults["buffer.timeout"] = 500 + defaults["buffer"] = "-" defaults["cache.images"] = false defaults["epgSource"] = "PMS" defaults["ffmpeg.options"] = System.FFmpeg.DefaultOptions - defaults["vlc.options"] = System.VLC.DefaultOptions - defaults["files"] = dataMap defaults["files.update"] = true + defaults["files"] = dataMap defaults["filter"] = make(map[string]interface{}) defaults["git.branch"] = System.Branch defaults["language"] = "en" defaults["log.entries.ram"] = 500 - defaults["mapping.first.channel"] = 1000 - defaults["xepg.replace.missing.images"] = true defaults["m3u8.adaptive.bandwidth.mbps"] = 10 + defaults["mapping.first.channel"] = 1000 defaults["port"] = "34400" defaults["ssdp"] = true + defaults["temp.path"] = System.Folder.Temp + defaults["tlsMode"] = false defaults["tuner"] = 1 + defaults["udpxy"] = "" defaults["update"] = []string{"0000"} defaults["user.agent"] = System.Name defaults["uuid"] = createUUID() - defaults["udpxy"] = "" defaults["version"] = System.DBVersion + defaults["vlc.options"] = System.VLC.DefaultOptions + defaults["xepg.replace.missing.images"] = true defaults["xteveAutoUpdate"] = true - defaults["temp.path"] = System.Folder.Temp // Set Default Values for key, value := range defaults { @@ -223,6 +224,14 @@ func setGlobalDomain(domain string) { System.Domain = domain + if Settings.TLSMode { + System.ServerProtocol.API = "https" + System.ServerProtocol.DVR = "https" + System.ServerProtocol.M3U = "https" + System.ServerProtocol.WEB = "https" + System.ServerProtocol.XML = "https" + } + switch Settings.AuthenticationPMS { case true: System.Addresses.DVR = "username:password@" + System.Domain diff --git a/src/update.go b/src/update.go index 1a26523..14ece48 100644 --- a/src/update.go +++ b/src/update.go @@ -265,7 +265,7 @@ checkVersion: goto checkVersion - case "2.2.0", "2.2.1": + case "2.2.0", "2.2.1", "2.2.2": // If there are changes to the Database in a later update, continue here break diff --git a/src/webUI.go b/src/webUI.go index ea49714..3ed9c9c 100644 --- a/src/webUI.go +++ b/src/webUI.go @@ -25,14 +25,14 @@ func loadHTMLMap() { webUI["html/img/xmltv.png"] = "iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAAAXNSR0IArs4c6QAAAAlwSFlzAAAsSwAALEsBpT2WqQAABCRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IlhNUCBDb3JlIDUuNC4wIj4KICAgPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIgogICAgICAgICAgICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgICAgICAgICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyI+CiAgICAgICAgIDx0aWZmOlJlc29sdXRpb25Vbml0PjI8L3RpZmY6UmVzb2x1dGlvblVuaXQ+CiAgICAgICAgIDx0aWZmOkNvbXByZXNzaW9uPjU8L3RpZmY6Q29tcHJlc3Npb24+CiAgICAgICAgIDx0aWZmOlhSZXNvbHV0aW9uPjI4ODwvdGlmZjpYUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6T3JpZW50YXRpb24+MTwvdGlmZjpPcmllbnRhdGlvbj4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+Mjg4PC90aWZmOllSZXNvbHV0aW9uPgogICAgICAgICA8ZXhpZjpQaXhlbFhEaW1lbnNpb24+NTA8L2V4aWY6UGl4ZWxYRGltZW5zaW9uPgogICAgICAgICA8ZXhpZjpDb2xvclNwYWNlPjE8L2V4aWY6Q29sb3JTcGFjZT4KICAgICAgICAgPGV4aWY6UGl4ZWxZRGltZW5zaW9uPjUwPC9leGlmOlBpeGVsWURpbWVuc2lvbj4KICAgICAgICAgPGRjOnN1YmplY3Q+CiAgICAgICAgICAgIDxyZGY6QmFnLz4KICAgICAgICAgPC9kYzpzdWJqZWN0PgogICAgICAgICA8eG1wOk1vZGlmeURhdGU+MjAxOC0wNy0yOFQyMDowNzozMzwveG1wOk1vZGlmeURhdGU+CiAgICAgICAgIDx4bXA6Q3JlYXRvclRvb2w+UGl4ZWxtYXRvciAzLjM8L3htcDpDcmVhdG9yVG9vbD4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgIDwvcmRmOlJERj4KPC94OnhtcG1ldGE+Co6j9bsAAAGgSURBVGgF7VqxTsNADL0gYGEon8DOwsbAAH8BYmJn6cYIn8DC3h0+oixISFRiYYCJL0AwMMBAeK5w2rpV6uikxHfYknW98+vds18TK21DWGBlWR7CH+BfcEv2AzLP8HP42gLqkyUATuEp2PWEdQjF9ATs1zF/g29Mrxt+vVcUxR3xWxEktzFPJQmivsv8ZSI9DiQyVnxlIonwn6fpiczXpNuVVXH8O+a3Ys3y9NUyuf/NTTbEHZTjUlGSRzSiPhroUIENwB4AS/vS/susDwDhTpYBER9g7wHh5DWyibV9CiitCZbIafDEYUuJHQI3Nr/9ciWsjK6IFSWYhyvClbAyZqOIlYJG84jq7E1Ot97Zm+TinV1TrWwudk9EI3ebGFekzWprzspGEU2ySWCiOrs/s9dr7M/s9fVJJJrNXcsTsfaJc0WsKZINH+/sf1Jqvl1n1f2ZnStRN/pdq646XcSkIh9dkIg4s+IrE3nCpp8RG7f91ns+cCYR/LD4jcAZB42PN+A7/mcQ8ZxJhBYQvMJwBB/BKTFLVoLMC/wCfgyv7BesTKUC2LKM3wAAAABJRU5ErkJggg==" webUI["html/index.html"] = "PCFkb2N0eXBlIGh0bWw+DQo8aHRtbD4NCiAgPGhlYWQ+DQogICAgPG1ldGEgY2hhcnNldD0idXRmLTgiPg0KICAgIDwhLS0tDQogICAgPG1ldGEgbmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9IndpZHRoPWRldmljZS13aWR0aCwgaW5pdGlhbC1zY2FsZT0xLjAiIC8+IA0KICAgIC0tPg0KICAgIDx0aXRsZT54VGVWZTwvdGl0bGU+DQogICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJjc3Mvc2NyZWVuLmNzcyIgdHlwZT0idGV4dC9jc3MiPg0KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iY3NzL2Jhc2UuY3NzIiB0eXBlPSJ0ZXh0L2NzcyI+DQoNCiAgICA8c2NyaXB0IGxhbmd1YWdlPSJqYXZhc2NyaXB0IiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ianMvbmV0d29ya190cy5qcyI+PC9zY3JpcHQ+DQogICAgPHNjcmlwdCBsYW5ndWFnZT0iamF2YXNjcmlwdCIgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9ImpzL21lbnVfdHMuanMiPjwvc2NyaXB0Pg0KICAgIDxzY3JpcHQgbGFuZ3VhZ2U9ImphdmFzY3JpcHQiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJqcy9zZXR0aW5nc190cy5qcyI+PC9zY3JpcHQ+DQogICAgPHNjcmlwdCBsYW5ndWFnZT0iamF2YXNjcmlwdCIgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9ImpzL2xvZ3NfdHMuanMiPjwvc2NyaXB0Pg0KICAgIDxzY3JpcHQgbGFuZ3VhZ2U9ImphdmFzY3JpcHQiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJqcy9iYXNlX3RzLmpzIj48L3NjcmlwdD4NCg0KICA8L2hlYWQ+DQoNCiAgICA8Ym9keSBvbmxvYWQ9ImphdmFzY3JpcHQ6IFBhZ2VSZWFkeSgpOyI+DQoNCiAgICAgIDxkaXYgaWQ9ImxvYWRpbmciIGNsYXNzPSJub25lIj4NCiAgICAgICAgPGRpdiBjbGFzcz0ibG9hZGVyIj48L2Rpdj4NCiAgICAgIDwvZGl2Pg0KDQogICAgICA8ZGl2IGlkPSJwb3B1cCIgY2xhc3M9Im5vbmUiPg0KICAgICAgICA8ZGl2IGlkPSJwb3B1cC1jdXN0b20iPjwvZGl2Pg0KICAgICAgPC9kaXY+DQoNCiAgICAgIDxkaXYgaWQ9ImxheW91dCI+DQoNCiAgICAgICAgPCEtLQ0KICAgICAgICA8ZGl2IGlkPSJub3RpZmljYXRpb24iPg0KICAgICAgICAgIDxkaXYgY2xhc3M9ImVsZW1lbnQiPg0KICAgICAgICAgICAgPGg1PlhFUEc8L2g1Pg0KICAgICAgICAgICAgPHByZT4xMS4wNS4yMDE5IC0gMjA6MjE8L3ByZT4NCiAgICAgICAgICAgIDxocj4NCiAgICAgICAgICAgIDxwPkhhbGxvIGRhcyBpc3QgZWluIFRlc3QuIFVuZCBub2NoIG1laHIgVGV4dC48L3A+DQogICAgICAgICAgPC9kaXY+DQogICAgICAgIDwvZGl2Pg0KICAgICAgLS0+DQoNCiAgICAgICAgPGRpdiBpZD0ibWVudS13cmFwcGVyIiBjbGFzcz0ibGF5b3V0LWxlZnQiPg0KICAgICAgICAgIDxkaXYgaWQ9ICJicmFuY2giPjwvZGl2Pg0KICAgICAgICAgIDxkaXYgaWQ9ImxvZ28iPjwvZGl2Pg0KICAgICAgICAgIDxuYXYgaWQ9Im1haW4tbWVudSI+PC9uYXY+DQogICAgICAgIDwvZGl2Pg0KDQogICAgICAgIDxkaXYgY2xhc3M9ImxheW91dC1yaWdodCI+DQoNCiAgICAgICAgICA8dGFibGUgaWQ9ImNsaWVudEluZm8iIGNsYXNzPSIiPg0KDQogICAgICAgICAgICA8dHI+DQogICAgICAgICAgICAgIDx0ZCBjbGFzcz0idGRLZXkiPnhUZVZlOjwvdGQ+DQogICAgICAgICAgICAgIDx0ZCBpZD0idmVyc2lvbiIgY2xhc3M9InRkVmFsIj4mbmJzcDs8L3RkPg0KICAgICAgICAgICAgICA8dGQgY2xhc3M9InRkS2V5Ij5PUzo8L3RkPg0KICAgICAgICAgICAgICA8dGQgaWQ9Im9zIiBjbGFzcz0idGRWYWwiPiZuYnNwOzwvdGQ+DQogICAgICAgICAgICAgIDx0ZCBjbGFzcz0idGRLZXkgcGhvbmUiPkRWUiBJUDo8L3RkPg0KICAgICAgICAgICAgICA8dGQgaWQ9IkRWUiIgY2xhc3M9InRkVmFsIHBob25lIj4mbmJzcDs8L3RkPg0KICAgICAgICAgICAgPC90cj4NCg0KICAgICAgICAgICAgPHRyPg0KICAgICAgICAgICAgICA8dGQgY2xhc3M9InRkS2V5Ij5VVUlEOjwvdGQ+DQogICAgICAgICAgICAgIDx0ZCBpZD0idXVpZCIgY2xhc3M9InRkVmFsIj4mbmJzcDs8L3RkPg0KICAgICAgICAgICAgICA8dGQgY2xhc3M9InRkS2V5Ij5BcmNoOjwvdGQ+DQogICAgICAgICAgICAgIDx0ZCBpZD0iYXJjaCIgY2xhc3M9InRkVmFsIj4mbmJzcDs8L3RkPg0KICAgICAgICAgICAgICA8dGQgY2xhc3M9InRkS2V5IHBob25lIj5NM1UgVVJMOjwvdGQ+DQogICAgICAgICAgICAgIDx0ZCBpZD0ibTN1LXVybCIgY2xhc3M9InRkVmFsIHBob25lIj4mbmJzcDs8L3RkPg0KICAgICAgICAgICAgPC90cj4NCg0KICAgICAgICAgICAgPHRyPg0KICAgICAgICAgICAgICA8dGQgY2xhc3M9InRkS2V5Ij5BdmFpbGFibGUgU3RyZWFtczo8L3RkPg0KICAgICAgICAgICAgICA8dGQgaWQ9InN0cmVhbXMiIGNsYXNzPSJ0ZFZhbCI+Jm5ic3A7PC90ZD4NCiAgICAgICAgICAgICAgPHRkIGNsYXNzPSJ0ZEtleSI+RVBHIFNvdXJjZTo8L3RkPg0KICAgICAgICAgICAgICA8dGQgaWQ9ImVwZ1NvdXJjZSIgY2xhc3M9InRkVmFsIj4mbmJzcDs8L3RkPg0KICAgICAgICAgICAgICA8dGQgY2xhc3M9InRkS2V5IHBob25lIj5YRVBHIFVSTDo8L3RkPg0KICAgICAgICAgICAgICA8dGQgaWQ9InhlcGctdXJsIiBjbGFzcz0idGRWYWwgcGhvbmUiPiZuYnNwOzwvdGQ+DQogICAgICAgICAgICA8L3RyPg0KDQogICAgICAgICAgICA8dHI+DQogICAgICAgICAgICAgIDx0ZCBjbGFzcz0idGRLZXkiPlhFUEcgQ2hhbm5lbHM6PC90ZD4NCiAgICAgICAgICAgICAgPHRkIGlkPSJ4ZXBnIiBjbGFzcz0idGRWYWwiPiZuYnNwOzwvdGQ+DQogICAgICAgICAgICAgIDx0ZCBjbGFzcz0idGRLZXkiPkVycm9yczo8L3RkPg0KICAgICAgICAgICAgICA8dGQgaWQ9ImVycm9ycyIgY2xhc3M9InRkVmFsIj4mbmJzcDs8L3RkPg0KICAgICAgICAgICAgICA8dGQgY2xhc3M9InRkS2V5Ij5XYXJuaW5nczo8L3RkPg0KICAgICAgICAgICAgICA8dGQgaWQ9Indhcm5pbmdzIiBjbGFzcz0idGRWYWwiPiZuYnNwOzwvdGQ+DQogICAgICAgICAgICA8L3RyPg0KDQogICAgICAgICAgPC90YWJsZT4NCiAgICAgICAgIA0KICAgICAgICAgIDxkaXYgaWQ9Im15U3RyZWFtc0JveCIgY2xhc3M9Im5vdFZpc2libGUiPg0KDQogICAgICAgICAgICA8ZGl2IGlkPSJhbGxTdHJlYW1zIj4NCiAgICAgICAgICAgICAgPHRhYmxlIGlkPSJhY3RpdmVTdHJlYW1zIj48L3RhYmxlPg0KICAgICAgICAgICAgICA8dGFibGUgaWQ9ImluYWN0aXZlU3RyZWFtcyI+PC90YWJsZT4NCiAgICAgICAgICAgIDwvZGl2Pg0KDQogICAgICAgICAgPC9kaXY+DQogICAgICAgICAgDQogICAgICAgICAgPGRpdiBpZD0iY29udGVudCIgY2xhc3M9IiI+PC9kaXY+DQogICAgICAgICAgICANCiAgICAgICAgPC9kaXY+DQoNCiAgICAgIDwvZGl2Pg0KICAgICAgDQogICAgPC9ib2R5Pg0KICAgIA0KPC9odG1sPg==" webUI["html/js/authentication_ts.js"] = "ZnVuY3Rpb24gbG9naW4oKSB7DQogICAgdmFyIGVyciA9IGZhbHNlOw0KICAgIHZhciBkYXRhID0gbmV3IE9iamVjdCgpOw0KICAgIHZhciBkaXYgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29udGVudCIpOw0KICAgIHZhciBmb3JtID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImF1dGhlbnRpY2F0aW9uIik7DQogICAgdmFyIGlucHV0cyA9IGRpdi5nZXRFbGVtZW50c0J5VGFnTmFtZSgiSU5QVVQiKTsNCiAgICBjb25zb2xlLmxvZyhpbnB1dHMpOw0KICAgIGZvciAodmFyIGkgPSBpbnB1dHMubGVuZ3RoIC0gMTsgaSA+PSAwOyBpLS0pIHsNCiAgICAgICAgdmFyIGtleSA9IGlucHV0c1tpXS5uYW1lOw0KICAgICAgICB2YXIgdmFsdWUgPSBpbnB1dHNbaV0udmFsdWU7DQogICAgICAgIGlmICh2YWx1ZS5sZW5ndGggPT0gMCkgew0KICAgICAgICAgICAgaW5wdXRzW2ldLnN0eWxlLmJvcmRlckNvbG9yID0gInJlZCI7DQogICAgICAgICAgICBlcnIgPSB0cnVlOw0KICAgICAgICB9DQogICAgICAgIGRhdGFba2V5XSA9IHZhbHVlOw0KICAgIH0NCiAgICBpZiAoZXJyID09IHRydWUpIHsNCiAgICAgICAgZGF0YSA9IG5ldyBPYmplY3QoKTsNCiAgICAgICAgcmV0dXJuOw0KICAgIH0NCiAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgiY29uZmlybSIpKSB7DQogICAgICAgIGlmIChkYXRhWyJjb25maXJtIl0gIT0gZGF0YVsicGFzc3dvcmQiXSkgew0KICAgICAgICAgICAgYWxlcnQoInNkYWZzZCIpOw0KICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Bhc3N3b3JkJykuc3R5bGUuYm9yZGVyQ29sb3IgPSAicmVkIjsNCiAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjb25maXJtJykuc3R5bGUuYm9yZGVyQ29sb3IgPSAicmVkIjsNCiAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJlcnIiKS5pbm5lckhUTUwgPSAie3suYWNjb3VudC5mYWlsZWR9fSI7DQogICAgICAgICAgICByZXR1cm47DQogICAgICAgIH0NCiAgICB9DQogICAgY29uc29sZS5sb2coZGF0YSk7DQogICAgZm9ybS5zdWJtaXQoKTsNCn0NCg==" - webUI["html/js/base_ts.js"] = "dmFyIFNFUlZFUiA9IG5ldyBPYmplY3QoKTsNCnZhciBCVUxLX0VESVQgPSBmYWxzZTsNCnZhciBDT0xVTU5fVE9fU09SVDsNCnZhciBTRUFSQ0hfTUFQUElORyA9IG5ldyBPYmplY3QoKTsNCnZhciBVTkRPID0gbmV3IE9iamVjdCgpOw0KdmFyIFNFUlZFUl9DT05ORUNUSU9OID0gZmFsc2U7DQp2YXIgV1NfQVZBSUxBQkxFID0gZmFsc2U7DQovLyBNZW51DQp2YXIgbWVudUl0ZW1zID0gbmV3IEFycmF5KCk7DQptZW51SXRlbXMucHVzaChuZXcgTWFpbk1lbnVJdGVtKCJwbGF5bGlzdCIsICJ7ey5tYWluTWVudS5pdGVtLnBsYXlsaXN0fX0iLCAibTN1LnBuZyIsICJ7ey5tYWluTWVudS5oZWFkbGluZS5wbGF5bGlzdH19IikpOw0KLy9tZW51SXRlbXMucHVzaChuZXcgTWFpbk1lbnVJdGVtKCJwbXNJRCIsICJ7ey5tYWluTWVudS5pdGVtLnBtc0lEfX0iLCAibnVtYmVyLnBuZyIsICJ7ey5tYWluTWVudS5oZWFkbGluZS5wbXNJRH19IikpDQptZW51SXRlbXMucHVzaChuZXcgTWFpbk1lbnVJdGVtKCJmaWx0ZXIiLCAie3subWFpbk1lbnUuaXRlbS5maWx0ZXJ9fSIsICJmaWx0ZXIucG5nIiwgInt7Lm1haW5NZW51LmhlYWRsaW5lLmZpbHRlcn19IikpOw0KbWVudUl0ZW1zLnB1c2gobmV3IE1haW5NZW51SXRlbSgieG1sdHYiLCAie3subWFpbk1lbnUuaXRlbS54bWx0dn19IiwgInhtbHR2LnBuZyIsICJ7ey5tYWluTWVudS5oZWFkbGluZS54bWx0dn19IikpOw0KbWVudUl0ZW1zLnB1c2gobmV3IE1haW5NZW51SXRlbSgibWFwcGluZyIsICJ7ey5tYWluTWVudS5pdGVtLm1hcHBpbmd9fSIsICJtYXBwaW5nLnBuZyIsICJ7ey5tYWluTWVudS5oZWFkbGluZS5tYXBwaW5nfX0iKSk7DQptZW51SXRlbXMucHVzaChuZXcgTWFpbk1lbnVJdGVtKCJ1c2VycyIsICJ7ey5tYWluTWVudS5pdGVtLnVzZXJzfX0iLCAidXNlcnMucG5nIiwgInt7Lm1haW5NZW51LmhlYWRsaW5lLnVzZXJzfX0iKSk7DQptZW51SXRlbXMucHVzaChuZXcgTWFpbk1lbnVJdGVtKCJzZXR0aW5ncyIsICJ7ey5tYWluTWVudS5pdGVtLnNldHRpbmdzfX0iLCAic2V0dGluZ3MucG5nIiwgInt7Lm1haW5NZW51LmhlYWRsaW5lLnNldHRpbmdzfX0iKSk7DQptZW51SXRlbXMucHVzaChuZXcgTWFpbk1lbnVJdGVtKCJsb2ciLCAie3subWFpbk1lbnUuaXRlbS5sb2d9fSIsICJsb2cucG5nIiwgInt7Lm1haW5NZW51LmhlYWRsaW5lLmxvZ319IikpOw0KbWVudUl0ZW1zLnB1c2gobmV3IE1haW5NZW51SXRlbSgibG9nb3V0IiwgInt7Lm1haW5NZW51Lml0ZW0ubG9nb3V0fX0iLCAibG9nb3V0LnBuZyIsICJ7ey5tYWluTWVudS5oZWFkbGluZS5sb2dvdXR9fSIpKTsNCi8vIFNldHRpbmdzIGNhdGVnb3JpZXMNCnZhciBzZXR0aW5nc0NhdGVnb3J5ID0gbmV3IEFycmF5KCk7DQpzZXR0aW5nc0NhdGVnb3J5LnB1c2gobmV3IFNldHRpbmdzQ2F0ZWdvcnlJdGVtKCJ7ey5zZXR0aW5ncy5jYXRlZ29yeS5nZW5lcmFsfX0iLCAieHRldmVBdXRvVXBkYXRlLHR1bmVyLGVwZ1NvdXJjZSxhcGkiKSk7DQpzZXR0aW5nc0NhdGVnb3J5LnB1c2gobmV3IFNldHRpbmdzQ2F0ZWdvcnlJdGVtKCJ7ey5zZXR0aW5ncy5jYXRlZ29yeS5maWxlc319IiwgInVwZGF0ZSxmaWxlcy51cGRhdGUsdGVtcC5wYXRoLGNhY2hlLmltYWdlcyx4ZXBnLnJlcGxhY2UubWlzc2luZy5pbWFnZXMiKSk7DQpzZXR0aW5nc0NhdGVnb3J5LnB1c2gobmV3IFNldHRpbmdzQ2F0ZWdvcnlJdGVtKCJ7ey5zZXR0aW5ncy5jYXRlZ29yeS5zdHJlYW1pbmd9fSIsICJidWZmZXIsdWRweHksYnVmZmVyLnNpemUua2IsYnVmZmVyLnRpbWVvdXQsdXNlci5hZ2VudCxmZm1wZWcucGF0aCxmZm1wZWcub3B0aW9ucyx2bGMucGF0aCx2bGMub3B0aW9ucyIpKTsNCnNldHRpbmdzQ2F0ZWdvcnkucHVzaChuZXcgU2V0dGluZ3NDYXRlZ29yeUl0ZW0oInt7LnNldHRpbmdzLmNhdGVnb3J5LmJhY2t1cH19IiwgImJhY2t1cC5wYXRoLGJhY2t1cC5rZWVwIikpOw0Kc2V0dGluZ3NDYXRlZ29yeS5wdXNoKG5ldyBTZXR0aW5nc0NhdGVnb3J5SXRlbSgie3suc2V0dGluZ3MuY2F0ZWdvcnkuYXV0aGVudGljYXRpb259fSIsICJhdXRoZW50aWNhdGlvbi53ZWIsYXV0aGVudGljYXRpb24ucG1zLGF1dGhlbnRpY2F0aW9uLm0zdSxhdXRoZW50aWNhdGlvbi54bWwsYXV0aGVudGljYXRpb24uYXBpIikpOw0KZnVuY3Rpb24gc2hvd1BvcFVwRWxlbWVudChlbG0pIHsNCiAgICB2YXIgYWxsRWxlbWVudHMgPSBuZXcgQXJyYXkoInBvcHVwLWN1c3RvbSIpOw0KICAgIGZvciAodmFyIGkgPSAwOyBpIDwgYWxsRWxlbWVudHMubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgc2hvd0VsZW1lbnQoYWxsRWxlbWVudHNbaV0sIGZhbHNlKTsNCiAgICB9DQogICAgc2hvd0VsZW1lbnQoZWxtLCB0cnVlKTsNCiAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsNCiAgICAgICAgc2hvd0VsZW1lbnQoInBvcHVwIiwgdHJ1ZSk7DQogICAgfSwgMTApOw0KICAgIHJldHVybjsNCn0NCmZ1bmN0aW9uIHNob3dFbGVtZW50KGVsbUlELCB0eXBlKSB7DQogICAgdmFyIGNzc0NsYXNzOw0KICAgIHN3aXRjaCAodHlwZSkgew0KICAgICAgICBjYXNlIHRydWU6DQogICAgICAgICAgICBjc3NDbGFzcyA9ICJibG9jayI7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSBmYWxzZToNCiAgICAgICAgICAgIGNzc0NsYXNzID0gIm5vbmUiOw0KICAgICAgICAgICAgYnJlYWs7DQogICAgfQ0KICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGVsbUlEKS5jbGFzc05hbWUgPSBjc3NDbGFzczsNCn0NCmZ1bmN0aW9uIGNoYW5nZUJ1dHRvbkFjdGlvbihlbGVtZW50LCBidXR0b25JRCwgYXR0cmlidXRlKSB7DQogICAgdmFyIHZhbHVlID0gZWxlbWVudC5vcHRpb25zW2VsZW1lbnQuc2VsZWN0ZWRJbmRleF0udmFsdWU7DQogICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoYnV0dG9uSUQpLnNldEF0dHJpYnV0ZShhdHRyaWJ1dGUsIHZhbHVlKTsNCn0NCmZ1bmN0aW9uIGdldExvY2FsRGF0YShkYXRhVHlwZSwgaWQpIHsNCiAgICBsZXQgZGF0YSA9IHt9Ow0KICAgIHN3aXRjaCAoZGF0YVR5cGUpIHsNCiAgICAgICAgY2FzZSAibTN1IjoNCiAgICAgICAgICAgIGRhdGEgPSBTRVJWRVJbInNldHRpbmdzIl1bImZpbGVzIl1bZGF0YVR5cGVdW2lkXTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJoZGhyIjoNCiAgICAgICAgICAgIGRhdGEgPSBTRVJWRVJbInNldHRpbmdzIl1bImZpbGVzIl1bZGF0YVR5cGVdW2lkXTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJmaWx0ZXIiOg0KICAgICAgICBjYXNlICJjdXN0b20tZmlsdGVyIjoNCiAgICAgICAgY2FzZSAiZ3JvdXAtdGl0bGUiOg0KICAgICAgICAgICAgaWYgKGlkID09IC0xKSB7DQogICAgICAgICAgICAgICAgZGF0YVsiYWN0aXZlIl0gPSB0cnVlOw0KICAgICAgICAgICAgICAgIGRhdGFbImNhc2VTZW5zaXRpdmUiXSA9IGZhbHNlOw0KICAgICAgICAgICAgICAgIGRhdGFbImRlc2NyaXB0aW9uIl0gPSAiIjsNCiAgICAgICAgICAgICAgICBkYXRhWyJleGNsdWRlIl0gPSAiIjsNCiAgICAgICAgICAgICAgICBkYXRhWyJmaWx0ZXIiXSA9ICIiOw0KICAgICAgICAgICAgICAgIGRhdGFbImluY2x1ZGUiXSA9ICIiOw0KICAgICAgICAgICAgICAgIGRhdGFbIm5hbWUiXSA9ICIiOw0KICAgICAgICAgICAgICAgIGRhdGFbInR5cGUiXSA9ICJncm91cC10aXRsZSI7DQogICAgICAgICAgICAgICAgZGF0YVsicHJlc2VydmVNYXBwaW5nIl0gPSB0cnVlOw0KICAgICAgICAgICAgICAgIGRhdGFbInN0YXJ0aW5nQ2hhbm5lbCJdID0gU0VSVkVSWyJzZXR0aW5ncyJdWyJtYXBwaW5nLmZpcnN0LmNoYW5uZWwiXTsNCiAgICAgICAgICAgICAgICBkYXRhWyJkZWZhdWx0TWlzc2luZ0VQRyJdID0gIi0iOw0KICAgICAgICAgICAgICAgIFNFUlZFUlsic2V0dGluZ3MiXVsiZmlsdGVyIl1baWRdID0gZGF0YTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGRhdGEgPSBTRVJWRVJbInNldHRpbmdzIl1bImZpbHRlciJdW2lkXTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJ4bWx0diI6DQogICAgICAgICAgICBkYXRhID0gU0VSVkVSWyJzZXR0aW5ncyJdWyJmaWxlcyJdW2RhdGFUeXBlXVtpZF07DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSAidXNlcnMiOg0KICAgICAgICAgICAgZGF0YSA9IFNFUlZFUlsidXNlcnMiXVtpZF1bImRhdGEiXTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJtYXBwaW5nIjoNCiAgICAgICAgICAgIGRhdGEgPSBTRVJWRVJbInhlcGciXVsiZXBnTWFwcGluZyJdW2lkXTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJtM3VHcm91cHMiOg0KICAgICAgICAgICAgZGF0YSA9IFNFUlZFUlsiZGF0YSJdWyJwbGF5bGlzdCJdWyJtM3UiXVsiZ3JvdXBzIl07DQogICAgICAgICAgICBicmVhazsNCiAgICB9DQogICAgcmV0dXJuIGRhdGE7DQp9DQpmdW5jdGlvbiBnZXRPd25PYmpQcm9wcyhvYmplY3QpIHsNCiAgICByZXR1cm4gb2JqZWN0ID8gT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMob2JqZWN0KSA6IFtdOw0KfQ0KZnVuY3Rpb24gZ2V0QWxsU2VsZWN0ZWRDaGFubmVscygpIHsNCiAgICB2YXIgY2hhbm5lbHMgPSBuZXcgQXJyYXkoKTsNCiAgICBpZiAoQlVMS19FRElUID09IGZhbHNlKSB7DQogICAgICAgIHJldHVybiBjaGFubmVsczsNCiAgICB9DQogICAgdmFyIHRycyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb250ZW50X3RhYmxlIikuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlRSIik7DQogICAgZm9yICh2YXIgaSA9IDE7IGkgPCB0cnMubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgaWYgKHRyc1tpXS5zdHlsZS5kaXNwbGF5ICE9ICJub25lIikgew0KICAgICAgICAgICAgaWYgKHRyc1tpXS5maXJzdENoaWxkLmZpcnN0Q2hpbGQuY2hlY2tlZCA9PSB0cnVlKSB7DQogICAgICAgICAgICAgICAgY2hhbm5lbHMucHVzaCh0cnNbaV0uaWQpOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQogICAgfQ0KICAgIHJldHVybiBjaGFubmVsczsNCn0NCmZ1bmN0aW9uIHNlbGVjdEFsbENoYW5uZWxzKCkgew0KICAgIHZhciBidWxrID0gZmFsc2U7DQogICAgdmFyIHRycyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb250ZW50X3RhYmxlIikuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlRSIik7DQogICAgaWYgKHRyc1swXS5maXJzdENoaWxkLmZpcnN0Q2hpbGQuY2hlY2tlZCA9PSB0cnVlKSB7DQogICAgICAgIGJ1bGsgPSB0cnVlOw0KICAgIH0NCiAgICBmb3IgKHZhciBpID0gMTsgaSA8IHRycy5sZW5ndGg7IGkrKykgew0KICAgICAgICBpZiAodHJzW2ldLnN0eWxlLmRpc3BsYXkgIT0gIm5vbmUiKSB7DQogICAgICAgICAgICBzd2l0Y2ggKGJ1bGspIHsNCiAgICAgICAgICAgICAgICBjYXNlIHRydWU6DQogICAgICAgICAgICAgICAgICAgIHRyc1tpXS5maXJzdENoaWxkLmZpcnN0Q2hpbGQuY2hlY2tlZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgZmFsc2U6DQogICAgICAgICAgICAgICAgICAgIHRyc1tpXS5maXJzdENoaWxkLmZpcnN0Q2hpbGQuY2hlY2tlZCA9IGZhbHNlOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KICAgIH0NCiAgICByZXR1cm47DQp9DQpmdW5jdGlvbiBidWxrRWRpdCgpIHsNCiAgICBCVUxLX0VESVQgPSAhQlVMS19FRElUOw0KICAgIHZhciBjbGFzc05hbWU7DQogICAgdmFyIHJvd3MgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCJidWxrIik7DQogICAgc3dpdGNoIChCVUxLX0VESVQpIHsNCiAgICAgICAgY2FzZSB0cnVlOg0KICAgICAgICAgICAgY2xhc3NOYW1lID0gImJ1bGsgc2hvd0J1bGsiOw0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGNhc2UgZmFsc2U6DQogICAgICAgICAgICBjbGFzc05hbWUgPSAiYnVsayBoaWRlQnVsayI7DQogICAgICAgICAgICBicmVhazsNCiAgICB9DQogICAgZm9yICh2YXIgaSA9IDA7IGkgPCByb3dzLmxlbmd0aDsgaSsrKSB7DQogICAgICAgIHJvd3NbaV0uY2xhc3NOYW1lID0gY2xhc3NOYW1lOw0KICAgICAgICByb3dzW2ldLmNoZWNrZWQgPSBmYWxzZTsNCiAgICB9DQogICAgcmV0dXJuOw0KfQ0KZnVuY3Rpb24gc29ydFRhYmxlKGNvbHVtbikgew0KICAgIGlmIChjb2x1bW4gPT0gQ09MVU1OX1RPX1NPUlQpIHsNCiAgICAgICAgcmV0dXJuOw0KICAgIH0NCiAgICBjb25zdCB0YWJsZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb250ZW50X3RhYmxlIik7DQogICAgY29uc3QgdGFibGVIZWFkID0gdGFibGUuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlRSIilbMF07DQogICAgY29uc3QgdGFibGVJdGVtcyA9IHRhYmxlSGVhZC5nZXRFbGVtZW50c0J5VGFnTmFtZSgiVEQiKTsNCiAgICBjb25zdCBzb3J0QXJyID0gW107DQogICAgbGV0IHhWYWx1ZTsNCiAgICBpZiAoY29sdW1uID49IDAgJiYgQ09MVU1OX1RPX1NPUlQgPj0gMCkgew0KICAgICAgICB0YWJsZUl0ZW1zW0NPTFVNTl9UT19TT1JUXS5jbGFzc05hbWUgPSAicG9pbnRlciI7DQogICAgICAgIHRhYmxlSXRlbXNbY29sdW1uXS5jbGFzc05hbWUgPSAic29ydFRoaXMiOw0KICAgIH0NCiAgICBDT0xVTU5fVE9fU09SVCA9IGNvbHVtbjsNCiAgICBjb25zdCByb3dzID0gdGFibGUucm93czsNCiAgICBpZiAocm93c1sxXSAhPSB1bmRlZmluZWQpIHsNCiAgICAgICAgY29uc3QgdGFibGVIZWFkZXIgPSByb3dzWzBdOw0KICAgICAgICBsZXQgeCA9IHJvd3NbMV0uZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlREIilbY29sdW1uXTsNCiAgICAgICAgZm9yIChsZXQgaSA9IDE7IGkgPCByb3dzLmxlbmd0aDsgaSsrKSB7DQogICAgICAgICAgICB4ID0gcm93c1tpXS5nZXRFbGVtZW50c0J5VGFnTmFtZSgiVEQiKVtjb2x1bW5dOw0KICAgICAgICAgICAgc3dpdGNoICh4LmNoaWxkTm9kZXNbMF0udGFnTmFtZS50b0xvd2VyQ2FzZSgpKSB7DQogICAgICAgICAgICAgICAgY2FzZSAiaW5wdXQiOg0KICAgICAgICAgICAgICAgICAgICB4VmFsdWUgPSB4LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJJTlBVVCIpWzBdLnZhbHVlLnRvTG93ZXJDYXNlKCk7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgInAiOg0KICAgICAgICAgICAgICAgICAgICB4VmFsdWUgPSB4LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJQIilbMF0uaW5uZXJUZXh0LnRvTG93ZXJDYXNlKCk7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKHguY2hpbGROb2Rlc1swXS50YWdOYW1lKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIHNvcnRBcnIucHVzaCh7IGtleTogeFZhbHVlID8geFZhbHVlIDogaSwgcm93OiByb3dzW2ldIH0pOw0KICAgICAgICB9DQogICAgICAgIHdoaWxlICh0YWJsZS5maXJzdENoaWxkKSB7DQogICAgICAgICAgICB0YWJsZS5yZW1vdmVDaGlsZCh0YWJsZS5maXJzdENoaWxkKTsNCiAgICAgICAgfQ0KICAgICAgICBzb3J0QXJyLnNvcnQoKHNlMSwgc2UyKSA9PiB7DQogICAgICAgICAgICBjb25zdCBzZTFLZXlOdW0gPSBwYXJzZUZsb2F0KFN0cmluZyhzZTEua2V5KSk7DQogICAgICAgICAgICBjb25zdCBzZTJLZXlOdW0gPSBwYXJzZUZsb2F0KFN0cmluZyhzZTIua2V5KSk7DQogICAgICAgICAgICBpZiAoIWlzTmFOKHNlMUtleU51bSkgJiYgIWlzTmFOKHNlMktleU51bSkpIHsNCiAgICAgICAgICAgICAgICByZXR1cm4gc2UxS2V5TnVtIC0gc2UyS2V5TnVtOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgaWYgKHNlMS5rZXkgPCBzZTIua2V5KSB7DQogICAgICAgICAgICAgICAgcmV0dXJuIC0xOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgaWYgKHNlMS5rZXkgPiBzZTIua2V5KSB7DQogICAgICAgICAgICAgICAgcmV0dXJuIDE7DQogICAgICAgICAgICB9DQogICAgICAgICAgICByZXR1cm4gMDsNCiAgICAgICAgfSk7DQogICAgICAgIHRhYmxlLmFwcGVuZENoaWxkKHRhYmxlSGVhZGVyKTsNCiAgICAgICAgc29ydEFyci5mb3JFYWNoKChzZSkgPT4gew0KICAgICAgICAgICAgdGFibGUuYXBwZW5kQ2hpbGQoc2Uucm93KTsNCiAgICAgICAgfSk7DQogICAgfQ0KICAgIHJldHVybjsNCn0NCmZ1bmN0aW9uIGNyZWF0ZVNlYXJjaE9iaigpIHsNCiAgICBTRUFSQ0hfTUFQUElORyA9IG5ldyBPYmplY3QoKTsNCiAgICB2YXIgZGF0YSA9IFNFUlZFUlsieGVwZyJdWyJlcGdNYXBwaW5nIl07DQogICAgdmFyIGNoYW5uZWxzID0gZ2V0T3duT2JqUHJvcHMoZGF0YSk7DQogICAgdmFyIGNoYW5uZWxLZXlzID0gWyJ4LWFjdGl2ZSIsICJ4LWNoYW5uZWxJRCIsICJ4LW5hbWUiLCAiX2ZpbGUubTN1Lm5hbWUiLCAieC1ncm91cC10aXRsZSIsICJ4LXhtbHR2LWZpbGUiXTsNCiAgICBjaGFubmVscy5mb3JFYWNoKGlkID0+IHsNCiAgICAgICAgY2hhbm5lbEtleXMuZm9yRWFjaChrZXkgPT4gew0KICAgICAgICAgICAgaWYgKGtleSA9PSAieC1hY3RpdmUiKSB7DQogICAgICAgICAgICAgICAgc3dpdGNoIChkYXRhW2lkXVtrZXldKSB7DQogICAgICAgICAgICAgICAgICAgIGNhc2UgdHJ1ZToNCiAgICAgICAgICAgICAgICAgICAgICAgIFNFQVJDSF9NQVBQSU5HW2lkXSA9ICJvbmxpbmUgIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgICAgICBjYXNlIGZhbHNlOg0KICAgICAgICAgICAgICAgICAgICAgICAgU0VBUkNIX01BUFBJTkdbaWRdID0gIm9mZmxpbmUgIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgICAgIGlmIChrZXkgPT0gIngteG1sdHYtZmlsZSIpIHsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHhtbHR2RmlsZSA9IGdldFZhbHVlRnJvbVByb3ZpZGVyRmlsZShkYXRhW2lkXVtrZXldLCAieG1sdHYiLCAibmFtZSIpOw0KICAgICAgICAgICAgICAgICAgICBpZiAoeG1sdHZGaWxlICE9IHVuZGVmaW5lZCkgew0KICAgICAgICAgICAgICAgICAgICAgICAgU0VBUkNIX01BUFBJTkdbaWRdID0gU0VBUkNIX01BUFBJTkdbaWRdICsgeG1sdHZGaWxlICsgIiAiOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgICAgICAgICBTRUFSQ0hfTUFQUElOR1tpZF0gPSBTRUFSQ0hfTUFQUElOR1tpZF0gKyBkYXRhW2lkXVtrZXldICsgIiAiOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0NCiAgICAgICAgfSk7DQogICAgfSk7DQogICAgcmV0dXJuOw0KfQ0KZnVuY3Rpb24gc2VhcmNoSW5NYXBwaW5nKCkgew0KICAgIHZhciBzZWFyY2hWYWx1ZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzZWFyY2hNYXBwaW5nIikudmFsdWU7DQogICAgdmFyIHRycyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb250ZW50X3RhYmxlIikuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlRSIik7DQogICAgZm9yICh2YXIgaSA9IDE7IGkgPCB0cnMubGVuZ3RoOyArK2kpIHsNCiAgICAgICAgdmFyIGlkID0gdHJzW2ldLmdldEF0dHJpYnV0ZSgiaWQiKTsNCiAgICAgICAgdmFyIGVsZW1lbnQgPSBTRUFSQ0hfTUFQUElOR1tpZF07DQogICAgICAgIHN3aXRjaCAoZWxlbWVudC50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKHNlYXJjaFZhbHVlLnRvTG93ZXJDYXNlKCkpKSB7DQogICAgICAgICAgICBjYXNlIHRydWU6DQogICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpLnN0eWxlLmRpc3BsYXkgPSAiIjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgZmFsc2U6DQogICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpLnN0eWxlLmRpc3BsYXkgPSAibm9uZSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIH0NCiAgICB9DQogICAgcmV0dXJuOw0KfQ0KZnVuY3Rpb24gY2FsY3VsYXRlV3JhcHBlckhlaWdodCgpIHsNCiAgICBpZiAoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImJveC13cmFwcGVyIikpIHsNCiAgICAgICAgdmFyIGVsbSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJib3gtd3JhcHBlciIpOw0KICAgICAgICB2YXIgZGl2cyA9IG5ldyBBcnJheSgibXlTdHJlYW1zQm94IiwgImNsaWVudEluZm8iLCAiY29udGVudCIpOw0KICAgICAgICB2YXIgZWxlbWVudHNIZWlnaHQgPSAwIC0gZWxtLm9mZnNldEhlaWdodDsNCiAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBkaXZzLmxlbmd0aDsgaSsrKSB7DQogICAgICAgICAgICBlbGVtZW50c0hlaWdodCA9IGVsZW1lbnRzSGVpZ2h0ICsgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoZGl2c1tpXSkub2Zmc2V0SGVpZ2h0Ow0KICAgICAgICB9DQogICAgICAgIGVsbS5zdHlsZS5oZWlnaHQgPSB3aW5kb3cuaW5uZXJIZWlnaHQgLSBlbGVtZW50c0hlaWdodCArICJweCI7DQogICAgfQ0KICAgIHJldHVybjsNCn0NCmZ1bmN0aW9uIGNoYW5nZUNoYW5uZWxOdW1iZXIoZWxlbWVudCkgew0KICAgIHZhciBkYklEID0gZWxlbWVudC5wYXJlbnROb2RlLnBhcmVudE5vZGUuaWQ7DQogICAgdmFyIG5ld051bWJlciA9IHBhcnNlRmxvYXQoZWxlbWVudC52YWx1ZSk7DQogICAgdmFyIGNoYW5uZWxOdW1iZXJzID0gW107DQogICAgdmFyIGRhdGEgPSBTRVJWRVJbInhlcGciXVsiZXBnTWFwcGluZyJdOw0KICAgIHZhciBjaGFubmVscyA9IGdldE93bk9ialByb3BzKGRhdGEpOw0KICAgIGlmIChpc05hTihuZXdOdW1iZXIpKSB7DQogICAgICAgIGFsZXJ0KCJ7ey5hbGVydC5pbnZhbGlkQ2hhbm5lbE51bWJlcn19Iik7DQogICAgICAgIHJldHVybjsNCiAgICB9DQogICAgY2hhbm5lbHMuZm9yRWFjaChpZCA9PiB7DQogICAgICAgIHZhciBjaGFubmVsTnVtYmVyID0gcGFyc2VGbG9hdChkYXRhW2lkXVsieC1jaGFubmVsSUQiXSk7DQogICAgICAgIGNoYW5uZWxOdW1iZXJzLnB1c2goY2hhbm5lbE51bWJlcik7DQogICAgfSk7DQogICAgZm9yICh2YXIgaSA9IDA7IGkgPCBjaGFubmVsTnVtYmVycy5sZW5ndGg7IGkrKykgew0KICAgICAgICBpZiAoY2hhbm5lbE51bWJlcnMuaW5kZXhPZihuZXdOdW1iZXIpID09IC0xKSB7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgfQ0KICAgICAgICBpZiAoTWF0aC5mbG9vcihuZXdOdW1iZXIpID09IG5ld051bWJlcikgew0KICAgICAgICAgICAgbmV3TnVtYmVyID0gbmV3TnVtYmVyICsgMTsNCiAgICAgICAgfQ0KICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgIG5ld051bWJlciA9IG5ld051bWJlciArIDAuMTsNCiAgICAgICAgICAgIG5ld051bWJlci50b0ZpeGVkKDEpOw0KICAgICAgICAgICAgbmV3TnVtYmVyID0gTWF0aC5yb3VuZChuZXdOdW1iZXIgKiAxMCkgLyAxMDsNCiAgICAgICAgfQ0KICAgIH0NCiAgICBkYXRhW2RiSURdWyJ4LWNoYW5uZWxJRCJdID0gbmV3TnVtYmVyLnRvU3RyaW5nKCk7DQogICAgZWxlbWVudC52YWx1ZSA9IG5ld051bWJlcjsNCiAgICBjb25zb2xlLmxvZyhkYXRhW2RiSURdWyJ4LWNoYW5uZWxJRCJdKTsNCiAgICBpZiAoQ09MVU1OX1RPX1NPUlQgPT0gMSkgew0KICAgICAgICBDT0xVTU5fVE9fU09SVCA9IC0xOw0KICAgICAgICBzb3J0VGFibGUoMSk7DQogICAgfQ0KICAgIHJldHVybjsNCn0NCmZ1bmN0aW9uIGJhY2t1cCgpIHsNCiAgICB2YXIgZGF0YSA9IG5ldyBPYmplY3QoKTsNCiAgICBjb25zb2xlLmxvZygiQmFja3VwIGRhdGEiKTsNCiAgICB2YXIgY21kID0gInh0ZXZlQmFja3VwIjsNCiAgICBjb25zb2xlLmxvZygiU0VORCBUTyBTRVJWRVIiKTsNCiAgICBjb25zb2xlLmxvZyhkYXRhKTsNCiAgICB2YXIgc2VydmVyID0gbmV3IFNlcnZlcihjbWQpOw0KICAgIHNlcnZlci5yZXF1ZXN0KGRhdGEpOw0KICAgIHJldHVybjsNCn0NCmZ1bmN0aW9uIHRvZ2dsZUNoYW5uZWxTdGF0dXMoaWQpIHsNCiAgICB2YXIgZWxlbWVudDsNCiAgICB2YXIgc3RhdHVzOw0KICAgIGlmIChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYWN0aXZlIikpIHsNCiAgICAgICAgdmFyIGNoZWNrYm94ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImFjdGl2ZSIpOw0KICAgICAgICBzdGF0dXMgPSAoY2hlY2tib3gpLmNoZWNrZWQ7DQogICAgfQ0KICAgIHZhciBpZHMgPSBnZXRBbGxTZWxlY3RlZENoYW5uZWxzKCk7DQogICAgaWYgKGlkcy5sZW5ndGggPT0gMCkgew0KICAgICAgICBpZHMucHVzaChpZCk7DQogICAgfQ0KICAgIGlkcy5mb3JFYWNoKGlkID0+IHsNCiAgICAgICAgdmFyIGNoYW5uZWwgPSBTRVJWRVJbInhlcGciXVsiZXBnTWFwcGluZyJdW2lkXTsNCiAgICAgICAgY2hhbm5lbFsieC1hY3RpdmUiXSA9IHN0YXR1czsNCiAgICAgICAgc3dpdGNoIChjaGFubmVsWyJ4LWFjdGl2ZSJdKSB7DQogICAgICAgICAgICBjYXNlIHRydWU6DQogICAgICAgICAgICAgICAgaWYgKGNoYW5uZWxbIngteG1sdHYtZmlsZSJdID09ICItIiB8fCBjaGFubmVsWyJ4LW1hcHBpbmciXSA9PSAiLSIpIHsNCiAgICAgICAgICAgICAgICAgICAgaWYgKEJVTEtfRURJVCA9PSBmYWxzZSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgYWxlcnQoY2hhbm5lbFsieC1uYW1lIl0gKyAiOiBNaXNzaW5nIFhNTFRWIGZpbGUgLyBjaGFubmVsIik7DQogICAgICAgICAgICAgICAgICAgICAgICBjaGVja2JveC5jaGVja2VkID0gZmFsc2U7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgY2hhbm5lbFsieC1hY3RpdmUiXSA9IGZhbHNlOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgZmFsc2U6DQogICAgICAgICAgICAgICAgLy8gY29kZS4uLg0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICB9DQogICAgICAgIGlmIChjaGFubmVsWyJ4LWFjdGl2ZSJdID09IGZhbHNlKSB7DQogICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkuY2xhc3NOYW1lID0gIm5vdEFjdGl2ZUVQRyI7DQogICAgICAgIH0NCiAgICAgICAgZWxzZSB7DQogICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkuY2xhc3NOYW1lID0gImFjdGl2ZUVQRyI7DQogICAgICAgIH0NCiAgICB9KTsNCn0NCmZ1bmN0aW9uIHRvZ2dsZUdyb3VwVXBkYXRlQ2IoeGVwZ0lkLCB0YXJnZXQpIHsNCiAgICB0YXJnZXQuY2xhc3NOYW1lID0gJ2NoYW5nZWQnOw0KICAgIGNvbnN0IGdyb3VwSW5wdXQgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCdpbnB1dFtuYW1lPSJ4LWdyb3VwLXRpdGxlIl0nKTsNCiAgICBjb25zdCBtYXBwaW5nID0gZ2V0TG9jYWxEYXRhKCdtYXBwaW5nJywgeGVwZ0lkKTsNCiAgICBpZiAodGFyZ2V0LmNoZWNrZWQpIHsNCiAgICAgICAgZ3JvdXBJbnB1dC5kYXRhc2V0Lm9sZFZhbHVlID0gZ3JvdXBJbnB1dC52YWx1ZTsNCiAgICAgICAgZ3JvdXBJbnB1dC52YWx1ZSA9IG1hcHBpbmdbJ2dyb3VwLXRpdGxlJ107DQogICAgICAgIGdyb3VwSW5wdXQuZGlzYWJsZWQgPSB0cnVlOw0KICAgIH0NCiAgICBlbHNlIHsNCiAgICAgICAgZ3JvdXBJbnB1dC52YWx1ZSA9IGdyb3VwSW5wdXQuZGF0YXNldC5vbGRWYWx1ZTsNCiAgICAgICAgZ3JvdXBJbnB1dC5kaXNhYmxlZCA9IGZhbHNlOw0KICAgIH0NCiAgICBncm91cElucHV0LmNsYXNzTmFtZSA9ICdjaGFuZ2VkJzsNCn0NCmZ1bmN0aW9uIHJlc3RvcmUoKSB7DQogICAgaWYgKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd1cGxvYWQnKSkgew0KICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndXBsb2FkJykucmVtb3ZlKCk7DQogICAgfQ0KICAgIHZhciByZXN0b3JlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiSU5QVVQiKTsNCiAgICByZXN0b3JlLnNldEF0dHJpYnV0ZSgidHlwZSIsICJmaWxlIik7DQogICAgcmVzdG9yZS5zZXRBdHRyaWJ1dGUoImNsYXNzIiwgIm5vdFZpc2libGUiKTsNCiAgICByZXN0b3JlLnNldEF0dHJpYnV0ZSgibmFtZSIsICIiKTsNCiAgICByZXN0b3JlLmlkID0gInVwbG9hZCI7DQogICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChyZXN0b3JlKTsNCiAgICByZXN0b3JlLmNsaWNrKCk7DQogICAgcmVzdG9yZS5vbmNoYW5nZSA9IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgdmFyIGZpbGVuYW1lID0gcmVzdG9yZS5maWxlc1swXS5uYW1lOw0KICAgICAgICB2YXIgY2hlY2sgPSBjb25maXJtKCJGaWxlOiAiICsgZmlsZW5hbWUgKyAiXG57ey5jb25maXJtLnJlc3RvcmV9fSIpOw0KICAgICAgICBpZiAoY2hlY2sgPT0gdHJ1ZSkgew0KICAgICAgICAgICAgdmFyIHJlYWRlciA9IG5ldyBGaWxlUmVhZGVyKCk7DQogICAgICAgICAgICB2YXIgZmlsZSA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ2lucHV0W3R5cGU9ZmlsZV0nKS5maWxlc1swXTsNCiAgICAgICAgICAgIGlmIChmaWxlKSB7DQogICAgICAgICAgICAgICAgcmVhZGVyLnJlYWRBc0RhdGFVUkwoZmlsZSk7DQogICAgICAgICAgICAgICAgcmVhZGVyLm9ubG9hZCA9IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2cocmVhZGVyLnJlc3VsdCk7DQogICAgICAgICAgICAgICAgICAgIHZhciBkYXRhID0gbmV3IE9iamVjdCgpOw0KICAgICAgICAgICAgICAgICAgICB2YXIgY21kID0gInh0ZXZlUmVzdG9yZSI7DQogICAgICAgICAgICAgICAgICAgIGRhdGFbImJhc2U2NCJdID0gcmVhZGVyLnJlc3VsdDsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHNlcnZlciA9IG5ldyBTZXJ2ZXIoY21kKTsNCiAgICAgICAgICAgICAgICAgICAgc2VydmVyLnJlcXVlc3QoZGF0YSk7DQogICAgICAgICAgICAgICAgfTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgICAgIGFsZXJ0KCJGaWxlIGNvdWxkIG5vdCBiZSBsb2FkZWQiKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIHJlc3RvcmUucmVtb3ZlKCk7DQogICAgICAgICAgICByZXR1cm47DQogICAgICAgIH0NCiAgICB9Ow0KICAgIHJldHVybjsNCn0NCmZ1bmN0aW9uIHVwbG9hZExvZ28oKSB7DQogICAgaWYgKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd1cGxvYWQnKSkgew0KICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndXBsb2FkJykucmVtb3ZlKCk7DQogICAgfQ0KICAgIHZhciB1cGxvYWQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJJTlBVVCIpOw0KICAgIHVwbG9hZC5zZXRBdHRyaWJ1dGUoInR5cGUiLCAiZmlsZSIpOw0KICAgIHVwbG9hZC5zZXRBdHRyaWJ1dGUoImNsYXNzIiwgIm5vdFZpc2libGUiKTsNCiAgICB1cGxvYWQuc2V0QXR0cmlidXRlKCJuYW1lIiwgIiIpOw0KICAgIHVwbG9hZC5pZCA9ICJ1cGxvYWQiOw0KICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQodXBsb2FkKTsNCiAgICB1cGxvYWQuY2xpY2soKTsNCiAgICB1cGxvYWQub25ibHVyID0gZnVuY3Rpb24gKCkgew0KICAgICAgICBhbGVydCgpOw0KICAgIH07DQogICAgdXBsb2FkLm9uY2hhbmdlID0gZnVuY3Rpb24gKCkgew0KICAgICAgICB2YXIgZmlsZW5hbWUgPSB1cGxvYWQuZmlsZXNbMF0ubmFtZTsNCiAgICAgICAgdmFyIHJlYWRlciA9IG5ldyBGaWxlUmVhZGVyKCk7DQogICAgICAgIHZhciBmaWxlID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignaW5wdXRbdHlwZT1maWxlXScpLmZpbGVzWzBdOw0KICAgICAgICBpZiAoZmlsZSkgew0KICAgICAgICAgICAgcmVhZGVyLnJlYWRBc0RhdGFVUkwoZmlsZSk7DQogICAgICAgICAgICByZWFkZXIub25sb2FkID0gZnVuY3Rpb24gKCkgew0KICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKHJlYWRlci5yZXN1bHQpOw0KICAgICAgICAgICAgICAgIHZhciBkYXRhID0gbmV3IE9iamVjdCgpOw0KICAgICAgICAgICAgICAgIHZhciBjbWQgPSAidXBsb2FkTG9nbyI7DQogICAgICAgICAgICAgICAgZGF0YVsiYmFzZTY0Il0gPSByZWFkZXIucmVzdWx0Ow0KICAgICAgICAgICAgICAgIGRhdGFbImZpbGVuYW1lIl0gPSBmaWxlLm5hbWU7DQogICAgICAgICAgICAgICAgdmFyIHNlcnZlciA9IG5ldyBTZXJ2ZXIoY21kKTsNCiAgICAgICAgICAgICAgICBzZXJ2ZXIucmVxdWVzdChkYXRhKTsNCiAgICAgICAgICAgICAgICB2YXIgdXBkYXRlTG9nbyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd1cGRhdGUtaWNvbicpOw0KICAgICAgICAgICAgICAgIHVwZGF0ZUxvZ28uY2hlY2tlZCA9IGZhbHNlOw0KICAgICAgICAgICAgICAgIHVwZGF0ZUxvZ28uY2xhc3NOYW1lID0gImNoYW5nZWQiOw0KICAgICAgICAgICAgfTsNCiAgICAgICAgfQ0KICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgIGFsZXJ0KCJGaWxlIGNvdWxkIG5vdCBiZSBsb2FkZWQiKTsNCiAgICAgICAgfQ0KICAgICAgICB1cGxvYWQucmVtb3ZlKCk7DQogICAgICAgIHJldHVybjsNCiAgICB9Ow0KfQ0KZnVuY3Rpb24gY2hlY2tVbmRvKGtleSkgew0KICAgIHN3aXRjaCAoa2V5KSB7DQogICAgICAgIGNhc2UgImVwZ01hcHBpbmciOg0KICAgICAgICAgICAgaWYgKFVORE8uaGFzT3duUHJvcGVydHkoa2V5KSkgew0KICAgICAgICAgICAgICAgIFNFUlZFUlsieGVwZyJdW2tleV0gPSBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KFVORE9ba2V5XSkpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgZWxzZSB7DQogICAgICAgICAgICAgICAgVU5ET1trZXldID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeShTRVJWRVJbInhlcGciXVtrZXldKSk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgIGJyZWFrOw0KICAgIH0NCiAgICByZXR1cm47DQp9DQpmdW5jdGlvbiBzb3J0U2VsZWN0KHNlbGVjdCkgew0KICAgIGNvbnN0IHRlbXBBcnIgPSBbXTsNCiAgICBjb25zdCBzZWxlY3RlZFZhbHVlID0gc2VsZWN0Lm9wdGlvbnNbc2VsZWN0LnNlbGVjdGVkSW5kZXhdLnZhbHVlOw0KICAgIGZvciAoY29uc3Qgc2VsZWN0T3B0aW9uIG9mIHNlbGVjdC5vcHRpb25zKSB7DQogICAgICAgIHRlbXBBcnIucHVzaChzZWxlY3RPcHRpb24pOw0KICAgIH0NCiAgICB0ZW1wQXJyLnNvcnQoKG8xLCBvMikgPT4gew0KICAgICAgICBpZiAobzEudGV4dCA8IG8yLnRleHQpIHsNCiAgICAgICAgICAgIHJldHVybiAtMTsNCiAgICAgICAgfQ0KICAgICAgICBpZiAobzEudGV4dCA+IG8yLnRleHQpIHsNCiAgICAgICAgICAgIHJldHVybiAxOw0KICAgICAgICB9DQogICAgICAgIHJldHVybiAwOw0KICAgIH0pOw0KICAgIHdoaWxlIChzZWxlY3Qub3B0aW9ucy5sZW5ndGggPiAwKSB7DQogICAgICAgIHNlbGVjdC5vcHRpb25zWzBdID0gbnVsbDsNCiAgICB9DQogICAgOw0KICAgIGxldCBuZXdTZWxlY3RlZEluZGV4ID0gMDsNCiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRlbXBBcnIubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgc2VsZWN0Lm9wdGlvbnNbaV0gPSB0ZW1wQXJyW2ldOw0KICAgICAgICBpZiAoc2VsZWN0Lm9wdGlvbnNbaV0udmFsdWUgPT0gc2VsZWN0ZWRWYWx1ZSkgew0KICAgICAgICAgICAgbmV3U2VsZWN0ZWRJbmRleCA9IGk7DQogICAgICAgIH0NCiAgICB9DQogICAgLy8gU2V0IG5ldyBzZWxlY3RlZCBpbmRleCBhZnRlciBzb3J0aW5nDQogICAgc2VsZWN0LnNlbGVjdGVkSW5kZXggPSBuZXdTZWxlY3RlZEluZGV4Ow0KfQ0KZnVuY3Rpb24gdXBkYXRlTG9nKCkgew0KICAgIGNvbnNvbGUubG9nKCJUT0tFTiIpOw0KICAgIHZhciBzZXJ2ZXIgPSBuZXcgU2VydmVyKCJ1cGRhdGVMb2ciKTsNCiAgICBzZXJ2ZXIucmVxdWVzdChuZXcgT2JqZWN0KCkpOw0KfQ0K" + webUI["html/js/base_ts.js"] = "dmFyIFNFUlZFUiA9IG5ldyBPYmplY3QoKTsNCnZhciBCVUxLX0VESVQgPSBmYWxzZTsNCnZhciBDT0xVTU5fVE9fU09SVDsNCnZhciBTRUFSQ0hfTUFQUElORyA9IG5ldyBPYmplY3QoKTsNCnZhciBVTkRPID0gbmV3IE9iamVjdCgpOw0KdmFyIFNFUlZFUl9DT05ORUNUSU9OID0gZmFsc2U7DQp2YXIgV1NfQVZBSUxBQkxFID0gZmFsc2U7DQovLyBNZW51DQp2YXIgbWVudUl0ZW1zID0gbmV3IEFycmF5KCk7DQptZW51SXRlbXMucHVzaChuZXcgTWFpbk1lbnVJdGVtKCJwbGF5bGlzdCIsICJ7ey5tYWluTWVudS5pdGVtLnBsYXlsaXN0fX0iLCAibTN1LnBuZyIsICJ7ey5tYWluTWVudS5oZWFkbGluZS5wbGF5bGlzdH19IikpOw0KLy9tZW51SXRlbXMucHVzaChuZXcgTWFpbk1lbnVJdGVtKCJwbXNJRCIsICJ7ey5tYWluTWVudS5pdGVtLnBtc0lEfX0iLCAibnVtYmVyLnBuZyIsICJ7ey5tYWluTWVudS5oZWFkbGluZS5wbXNJRH19IikpDQptZW51SXRlbXMucHVzaChuZXcgTWFpbk1lbnVJdGVtKCJmaWx0ZXIiLCAie3subWFpbk1lbnUuaXRlbS5maWx0ZXJ9fSIsICJmaWx0ZXIucG5nIiwgInt7Lm1haW5NZW51LmhlYWRsaW5lLmZpbHRlcn19IikpOw0KbWVudUl0ZW1zLnB1c2gobmV3IE1haW5NZW51SXRlbSgieG1sdHYiLCAie3subWFpbk1lbnUuaXRlbS54bWx0dn19IiwgInhtbHR2LnBuZyIsICJ7ey5tYWluTWVudS5oZWFkbGluZS54bWx0dn19IikpOw0KbWVudUl0ZW1zLnB1c2gobmV3IE1haW5NZW51SXRlbSgibWFwcGluZyIsICJ7ey5tYWluTWVudS5pdGVtLm1hcHBpbmd9fSIsICJtYXBwaW5nLnBuZyIsICJ7ey5tYWluTWVudS5oZWFkbGluZS5tYXBwaW5nfX0iKSk7DQptZW51SXRlbXMucHVzaChuZXcgTWFpbk1lbnVJdGVtKCJ1c2VycyIsICJ7ey5tYWluTWVudS5pdGVtLnVzZXJzfX0iLCAidXNlcnMucG5nIiwgInt7Lm1haW5NZW51LmhlYWRsaW5lLnVzZXJzfX0iKSk7DQptZW51SXRlbXMucHVzaChuZXcgTWFpbk1lbnVJdGVtKCJzZXR0aW5ncyIsICJ7ey5tYWluTWVudS5pdGVtLnNldHRpbmdzfX0iLCAic2V0dGluZ3MucG5nIiwgInt7Lm1haW5NZW51LmhlYWRsaW5lLnNldHRpbmdzfX0iKSk7DQptZW51SXRlbXMucHVzaChuZXcgTWFpbk1lbnVJdGVtKCJsb2ciLCAie3subWFpbk1lbnUuaXRlbS5sb2d9fSIsICJsb2cucG5nIiwgInt7Lm1haW5NZW51LmhlYWRsaW5lLmxvZ319IikpOw0KbWVudUl0ZW1zLnB1c2gobmV3IE1haW5NZW51SXRlbSgibG9nb3V0IiwgInt7Lm1haW5NZW51Lml0ZW0ubG9nb3V0fX0iLCAibG9nb3V0LnBuZyIsICJ7ey5tYWluTWVudS5oZWFkbGluZS5sb2dvdXR9fSIpKTsNCi8vIFNldHRpbmdzIGNhdGVnb3JpZXMNCnZhciBzZXR0aW5nc0NhdGVnb3J5ID0gbmV3IEFycmF5KCk7DQpzZXR0aW5nc0NhdGVnb3J5LnB1c2gobmV3IFNldHRpbmdzQ2F0ZWdvcnlJdGVtKCJ7ey5zZXR0aW5ncy5jYXRlZ29yeS5nZW5lcmFsfX0iLCAidGxzTW9kZSx4dGV2ZUF1dG9VcGRhdGUsdHVuZXIsZXBnU291cmNlLGFwaSIpKTsNCnNldHRpbmdzQ2F0ZWdvcnkucHVzaChuZXcgU2V0dGluZ3NDYXRlZ29yeUl0ZW0oInt7LnNldHRpbmdzLmNhdGVnb3J5LmZpbGVzfX0iLCAidXBkYXRlLGZpbGVzLnVwZGF0ZSx0ZW1wLnBhdGgsY2FjaGUuaW1hZ2VzLHhlcGcucmVwbGFjZS5taXNzaW5nLmltYWdlcyIpKTsNCnNldHRpbmdzQ2F0ZWdvcnkucHVzaChuZXcgU2V0dGluZ3NDYXRlZ29yeUl0ZW0oInt7LnNldHRpbmdzLmNhdGVnb3J5LnN0cmVhbWluZ319IiwgImJ1ZmZlcix1ZHB4eSxidWZmZXIuc2l6ZS5rYixidWZmZXIudGltZW91dCx1c2VyLmFnZW50LGZmbXBlZy5wYXRoLGZmbXBlZy5vcHRpb25zLHZsYy5wYXRoLHZsYy5vcHRpb25zIikpOw0Kc2V0dGluZ3NDYXRlZ29yeS5wdXNoKG5ldyBTZXR0aW5nc0NhdGVnb3J5SXRlbSgie3suc2V0dGluZ3MuY2F0ZWdvcnkuYmFja3VwfX0iLCAiYmFja3VwLnBhdGgsYmFja3VwLmtlZXAiKSk7DQpzZXR0aW5nc0NhdGVnb3J5LnB1c2gobmV3IFNldHRpbmdzQ2F0ZWdvcnlJdGVtKCJ7ey5zZXR0aW5ncy5jYXRlZ29yeS5hdXRoZW50aWNhdGlvbn19IiwgImF1dGhlbnRpY2F0aW9uLndlYixhdXRoZW50aWNhdGlvbi5wbXMsYXV0aGVudGljYXRpb24ubTN1LGF1dGhlbnRpY2F0aW9uLnhtbCxhdXRoZW50aWNhdGlvbi5hcGkiKSk7DQpmdW5jdGlvbiBzaG93UG9wVXBFbGVtZW50KGVsbSkgew0KICAgIHZhciBhbGxFbGVtZW50cyA9IG5ldyBBcnJheSgicG9wdXAtY3VzdG9tIik7DQogICAgZm9yICh2YXIgaSA9IDA7IGkgPCBhbGxFbGVtZW50cy5sZW5ndGg7IGkrKykgew0KICAgICAgICBzaG93RWxlbWVudChhbGxFbGVtZW50c1tpXSwgZmFsc2UpOw0KICAgIH0NCiAgICBzaG93RWxlbWVudChlbG0sIHRydWUpOw0KICAgIHNldFRpbWVvdXQoZnVuY3Rpb24gKCkgew0KICAgICAgICBzaG93RWxlbWVudCgicG9wdXAiLCB0cnVlKTsNCiAgICB9LCAxMCk7DQogICAgcmV0dXJuOw0KfQ0KZnVuY3Rpb24gc2hvd0VsZW1lbnQoZWxtSUQsIHR5cGUpIHsNCiAgICB2YXIgY3NzQ2xhc3M7DQogICAgc3dpdGNoICh0eXBlKSB7DQogICAgICAgIGNhc2UgdHJ1ZToNCiAgICAgICAgICAgIGNzc0NsYXNzID0gImJsb2NrIjsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlIGZhbHNlOg0KICAgICAgICAgICAgY3NzQ2xhc3MgPSAibm9uZSI7DQogICAgICAgICAgICBicmVhazsNCiAgICB9DQogICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoZWxtSUQpLmNsYXNzTmFtZSA9IGNzc0NsYXNzOw0KfQ0KZnVuY3Rpb24gY2hhbmdlQnV0dG9uQWN0aW9uKGVsZW1lbnQsIGJ1dHRvbklELCBhdHRyaWJ1dGUpIHsNCiAgICB2YXIgdmFsdWUgPSBlbGVtZW50Lm9wdGlvbnNbZWxlbWVudC5zZWxlY3RlZEluZGV4XS52YWx1ZTsNCiAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChidXR0b25JRCkuc2V0QXR0cmlidXRlKGF0dHJpYnV0ZSwgdmFsdWUpOw0KfQ0KZnVuY3Rpb24gZ2V0TG9jYWxEYXRhKGRhdGFUeXBlLCBpZCkgew0KICAgIGxldCBkYXRhID0ge307DQogICAgc3dpdGNoIChkYXRhVHlwZSkgew0KICAgICAgICBjYXNlICJtM3UiOg0KICAgICAgICAgICAgZGF0YSA9IFNFUlZFUlsic2V0dGluZ3MiXVsiZmlsZXMiXVtkYXRhVHlwZV1baWRdOw0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGNhc2UgImhkaHIiOg0KICAgICAgICAgICAgZGF0YSA9IFNFUlZFUlsic2V0dGluZ3MiXVsiZmlsZXMiXVtkYXRhVHlwZV1baWRdOw0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGNhc2UgImZpbHRlciI6DQogICAgICAgIGNhc2UgImN1c3RvbS1maWx0ZXIiOg0KICAgICAgICBjYXNlICJncm91cC10aXRsZSI6DQogICAgICAgICAgICBpZiAoaWQgPT0gLTEpIHsNCiAgICAgICAgICAgICAgICBkYXRhWyJhY3RpdmUiXSA9IHRydWU7DQogICAgICAgICAgICAgICAgZGF0YVsiY2FzZVNlbnNpdGl2ZSJdID0gZmFsc2U7DQogICAgICAgICAgICAgICAgZGF0YVsiZGVzY3JpcHRpb24iXSA9ICIiOw0KICAgICAgICAgICAgICAgIGRhdGFbImV4Y2x1ZGUiXSA9ICIiOw0KICAgICAgICAgICAgICAgIGRhdGFbImZpbHRlciJdID0gIiI7DQogICAgICAgICAgICAgICAgZGF0YVsiaW5jbHVkZSJdID0gIiI7DQogICAgICAgICAgICAgICAgZGF0YVsibmFtZSJdID0gIiI7DQogICAgICAgICAgICAgICAgZGF0YVsidHlwZSJdID0gImdyb3VwLXRpdGxlIjsNCiAgICAgICAgICAgICAgICBkYXRhWyJwcmVzZXJ2ZU1hcHBpbmciXSA9IHRydWU7DQogICAgICAgICAgICAgICAgZGF0YVsic3RhcnRpbmdDaGFubmVsIl0gPSBTRVJWRVJbInNldHRpbmdzIl1bIm1hcHBpbmcuZmlyc3QuY2hhbm5lbCJdOw0KICAgICAgICAgICAgICAgIGRhdGFbImRlZmF1bHRNaXNzaW5nRVBHIl0gPSAiLSI7DQogICAgICAgICAgICAgICAgU0VSVkVSWyJzZXR0aW5ncyJdWyJmaWx0ZXIiXVtpZF0gPSBkYXRhOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgZGF0YSA9IFNFUlZFUlsic2V0dGluZ3MiXVsiZmlsdGVyIl1baWRdOw0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGNhc2UgInhtbHR2IjoNCiAgICAgICAgICAgIGRhdGEgPSBTRVJWRVJbInNldHRpbmdzIl1bImZpbGVzIl1bZGF0YVR5cGVdW2lkXTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJ1c2VycyI6DQogICAgICAgICAgICBkYXRhID0gU0VSVkVSWyJ1c2VycyJdW2lkXVsiZGF0YSJdOw0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGNhc2UgIm1hcHBpbmciOg0KICAgICAgICAgICAgZGF0YSA9IFNFUlZFUlsieGVwZyJdWyJlcGdNYXBwaW5nIl1baWRdOw0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGNhc2UgIm0zdUdyb3VwcyI6DQogICAgICAgICAgICBkYXRhID0gU0VSVkVSWyJkYXRhIl1bInBsYXlsaXN0Il1bIm0zdSJdWyJncm91cHMiXTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgIH0NCiAgICByZXR1cm4gZGF0YTsNCn0NCmZ1bmN0aW9uIGdldE93bk9ialByb3BzKG9iamVjdCkgew0KICAgIHJldHVybiBvYmplY3QgPyBPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyhvYmplY3QpIDogW107DQp9DQpmdW5jdGlvbiBnZXRBbGxTZWxlY3RlZENoYW5uZWxzKCkgew0KICAgIHZhciBjaGFubmVscyA9IG5ldyBBcnJheSgpOw0KICAgIGlmIChCVUxLX0VESVQgPT0gZmFsc2UpIHsNCiAgICAgICAgcmV0dXJuIGNoYW5uZWxzOw0KICAgIH0NCiAgICB2YXIgdHJzID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnRlbnRfdGFibGUiKS5nZXRFbGVtZW50c0J5VGFnTmFtZSgiVFIiKTsNCiAgICBmb3IgKHZhciBpID0gMTsgaSA8IHRycy5sZW5ndGg7IGkrKykgew0KICAgICAgICBpZiAodHJzW2ldLnN0eWxlLmRpc3BsYXkgIT0gIm5vbmUiKSB7DQogICAgICAgICAgICBpZiAodHJzW2ldLmZpcnN0Q2hpbGQuZmlyc3RDaGlsZC5jaGVja2VkID09IHRydWUpIHsNCiAgICAgICAgICAgICAgICBjaGFubmVscy5wdXNoKHRyc1tpXS5pZCk7DQogICAgICAgICAgICB9DQogICAgICAgIH0NCiAgICB9DQogICAgcmV0dXJuIGNoYW5uZWxzOw0KfQ0KZnVuY3Rpb24gc2VsZWN0QWxsQ2hhbm5lbHMoKSB7DQogICAgdmFyIGJ1bGsgPSBmYWxzZTsNCiAgICB2YXIgdHJzID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnRlbnRfdGFibGUiKS5nZXRFbGVtZW50c0J5VGFnTmFtZSgiVFIiKTsNCiAgICBpZiAodHJzWzBdLmZpcnN0Q2hpbGQuZmlyc3RDaGlsZC5jaGVja2VkID09IHRydWUpIHsNCiAgICAgICAgYnVsayA9IHRydWU7DQogICAgfQ0KICAgIGZvciAodmFyIGkgPSAxOyBpIDwgdHJzLmxlbmd0aDsgaSsrKSB7DQogICAgICAgIGlmICh0cnNbaV0uc3R5bGUuZGlzcGxheSAhPSAibm9uZSIpIHsNCiAgICAgICAgICAgIHN3aXRjaCAoYnVsaykgew0KICAgICAgICAgICAgICAgIGNhc2UgdHJ1ZToNCiAgICAgICAgICAgICAgICAgICAgdHJzW2ldLmZpcnN0Q2hpbGQuZmlyc3RDaGlsZC5jaGVja2VkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSBmYWxzZToNCiAgICAgICAgICAgICAgICAgICAgdHJzW2ldLmZpcnN0Q2hpbGQuZmlyc3RDaGlsZC5jaGVja2VkID0gZmFsc2U7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQogICAgfQ0KICAgIHJldHVybjsNCn0NCmZ1bmN0aW9uIGJ1bGtFZGl0KCkgew0KICAgIEJVTEtfRURJVCA9ICFCVUxLX0VESVQ7DQogICAgdmFyIGNsYXNzTmFtZTsNCiAgICB2YXIgcm93cyA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlDbGFzc05hbWUoImJ1bGsiKTsNCiAgICBzd2l0Y2ggKEJVTEtfRURJVCkgew0KICAgICAgICBjYXNlIHRydWU6DQogICAgICAgICAgICBjbGFzc05hbWUgPSAiYnVsayBzaG93QnVsayI7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSBmYWxzZToNCiAgICAgICAgICAgIGNsYXNzTmFtZSA9ICJidWxrIGhpZGVCdWxrIjsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgIH0NCiAgICBmb3IgKHZhciBpID0gMDsgaSA8IHJvd3MubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgcm93c1tpXS5jbGFzc05hbWUgPSBjbGFzc05hbWU7DQogICAgICAgIHJvd3NbaV0uY2hlY2tlZCA9IGZhbHNlOw0KICAgIH0NCiAgICByZXR1cm47DQp9DQpmdW5jdGlvbiBzb3J0VGFibGUoY29sdW1uKSB7DQogICAgaWYgKGNvbHVtbiA9PSBDT0xVTU5fVE9fU09SVCkgew0KICAgICAgICByZXR1cm47DQogICAgfQ0KICAgIGNvbnN0IHRhYmxlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnRlbnRfdGFibGUiKTsNCiAgICBjb25zdCB0YWJsZUhlYWQgPSB0YWJsZS5nZXRFbGVtZW50c0J5VGFnTmFtZSgiVFIiKVswXTsNCiAgICBjb25zdCB0YWJsZUl0ZW1zID0gdGFibGVIZWFkLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJURCIpOw0KICAgIGNvbnN0IHNvcnRBcnIgPSBbXTsNCiAgICBsZXQgeFZhbHVlOw0KICAgIGlmIChjb2x1bW4gPj0gMCAmJiBDT0xVTU5fVE9fU09SVCA+PSAwKSB7DQogICAgICAgIHRhYmxlSXRlbXNbQ09MVU1OX1RPX1NPUlRdLmNsYXNzTmFtZSA9ICJwb2ludGVyIjsNCiAgICAgICAgdGFibGVJdGVtc1tjb2x1bW5dLmNsYXNzTmFtZSA9ICJzb3J0VGhpcyI7DQogICAgfQ0KICAgIENPTFVNTl9UT19TT1JUID0gY29sdW1uOw0KICAgIGNvbnN0IHJvd3MgPSB0YWJsZS5yb3dzOw0KICAgIGlmIChyb3dzWzFdICE9IHVuZGVmaW5lZCkgew0KICAgICAgICBjb25zdCB0YWJsZUhlYWRlciA9IHJvd3NbMF07DQogICAgICAgIGxldCB4ID0gcm93c1sxXS5nZXRFbGVtZW50c0J5VGFnTmFtZSgiVEQiKVtjb2x1bW5dOw0KICAgICAgICBmb3IgKGxldCBpID0gMTsgaSA8IHJvd3MubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgICAgIHggPSByb3dzW2ldLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJURCIpW2NvbHVtbl07DQogICAgICAgICAgICBzd2l0Y2ggKHguY2hpbGROb2Rlc1swXS50YWdOYW1lLnRvTG93ZXJDYXNlKCkpIHsNCiAgICAgICAgICAgICAgICBjYXNlICJpbnB1dCI6DQogICAgICAgICAgICAgICAgICAgIHhWYWx1ZSA9IHguZ2V0RWxlbWVudHNCeVRhZ05hbWUoIklOUFVUIilbMF0udmFsdWUudG9Mb3dlckNhc2UoKTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAicCI6DQogICAgICAgICAgICAgICAgICAgIHhWYWx1ZSA9IHguZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlAiKVswXS5pbm5lclRleHQudG9Mb3dlckNhc2UoKTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coeC5jaGlsZE5vZGVzWzBdLnRhZ05hbWUpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgc29ydEFyci5wdXNoKHsga2V5OiB4VmFsdWUgPyB4VmFsdWUgOiBpLCByb3c6IHJvd3NbaV0gfSk7DQogICAgICAgIH0NCiAgICAgICAgd2hpbGUgKHRhYmxlLmZpcnN0Q2hpbGQpIHsNCiAgICAgICAgICAgIHRhYmxlLnJlbW92ZUNoaWxkKHRhYmxlLmZpcnN0Q2hpbGQpOw0KICAgICAgICB9DQogICAgICAgIHNvcnRBcnIuc29ydCgoc2UxLCBzZTIpID0+IHsNCiAgICAgICAgICAgIGNvbnN0IHNlMUtleU51bSA9IHBhcnNlRmxvYXQoU3RyaW5nKHNlMS5rZXkpKTsNCiAgICAgICAgICAgIGNvbnN0IHNlMktleU51bSA9IHBhcnNlRmxvYXQoU3RyaW5nKHNlMi5rZXkpKTsNCiAgICAgICAgICAgIGlmICghaXNOYU4oc2UxS2V5TnVtKSAmJiAhaXNOYU4oc2UyS2V5TnVtKSkgew0KICAgICAgICAgICAgICAgIHJldHVybiBzZTFLZXlOdW0gLSBzZTJLZXlOdW07DQogICAgICAgICAgICB9DQogICAgICAgICAgICBpZiAoc2UxLmtleSA8IHNlMi5rZXkpIHsNCiAgICAgICAgICAgICAgICByZXR1cm4gLTE7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBpZiAoc2UxLmtleSA+IHNlMi5rZXkpIHsNCiAgICAgICAgICAgICAgICByZXR1cm4gMTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIHJldHVybiAwOw0KICAgICAgICB9KTsNCiAgICAgICAgdGFibGUuYXBwZW5kQ2hpbGQodGFibGVIZWFkZXIpOw0KICAgICAgICBzb3J0QXJyLmZvckVhY2goKHNlKSA9PiB7DQogICAgICAgICAgICB0YWJsZS5hcHBlbmRDaGlsZChzZS5yb3cpOw0KICAgICAgICB9KTsNCiAgICB9DQogICAgcmV0dXJuOw0KfQ0KZnVuY3Rpb24gY3JlYXRlU2VhcmNoT2JqKCkgew0KICAgIFNFQVJDSF9NQVBQSU5HID0gbmV3IE9iamVjdCgpOw0KICAgIHZhciBkYXRhID0gU0VSVkVSWyJ4ZXBnIl1bImVwZ01hcHBpbmciXTsNCiAgICB2YXIgY2hhbm5lbHMgPSBnZXRPd25PYmpQcm9wcyhkYXRhKTsNCiAgICB2YXIgY2hhbm5lbEtleXMgPSBbIngtYWN0aXZlIiwgIngtY2hhbm5lbElEIiwgIngtbmFtZSIsICJfZmlsZS5tM3UubmFtZSIsICJ4LWdyb3VwLXRpdGxlIiwgIngteG1sdHYtZmlsZSJdOw0KICAgIGNoYW5uZWxzLmZvckVhY2goaWQgPT4gew0KICAgICAgICBjaGFubmVsS2V5cy5mb3JFYWNoKGtleSA9PiB7DQogICAgICAgICAgICBpZiAoa2V5ID09ICJ4LWFjdGl2ZSIpIHsNCiAgICAgICAgICAgICAgICBzd2l0Y2ggKGRhdGFbaWRdW2tleV0pIHsNCiAgICAgICAgICAgICAgICAgICAgY2FzZSB0cnVlOg0KICAgICAgICAgICAgICAgICAgICAgICAgU0VBUkNIX01BUFBJTkdbaWRdID0gIm9ubGluZSAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgICAgIGNhc2UgZmFsc2U6DQogICAgICAgICAgICAgICAgICAgICAgICBTRUFSQ0hfTUFQUElOR1tpZF0gPSAib2ZmbGluZSAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgZWxzZSB7DQogICAgICAgICAgICAgICAgaWYgKGtleSA9PSAieC14bWx0di1maWxlIikgew0KICAgICAgICAgICAgICAgICAgICB2YXIgeG1sdHZGaWxlID0gZ2V0VmFsdWVGcm9tUHJvdmlkZXJGaWxlKGRhdGFbaWRdW2tleV0sICJ4bWx0diIsICJuYW1lIik7DQogICAgICAgICAgICAgICAgICAgIGlmICh4bWx0dkZpbGUgIT0gdW5kZWZpbmVkKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBTRUFSQ0hfTUFQUElOR1tpZF0gPSBTRUFSQ0hfTUFQUElOR1tpZF0gKyB4bWx0dkZpbGUgKyAiICI7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgZWxzZSB7DQogICAgICAgICAgICAgICAgICAgIFNFQVJDSF9NQVBQSU5HW2lkXSA9IFNFQVJDSF9NQVBQSU5HW2lkXSArIGRhdGFbaWRdW2tleV0gKyAiICI7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfQ0KICAgICAgICB9KTsNCiAgICB9KTsNCiAgICByZXR1cm47DQp9DQpmdW5jdGlvbiBzZWFyY2hJbk1hcHBpbmcoKSB7DQogICAgdmFyIHNlYXJjaFZhbHVlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNlYXJjaE1hcHBpbmciKS52YWx1ZTsNCiAgICB2YXIgdHJzID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnRlbnRfdGFibGUiKS5nZXRFbGVtZW50c0J5VGFnTmFtZSgiVFIiKTsNCiAgICBmb3IgKHZhciBpID0gMTsgaSA8IHRycy5sZW5ndGg7ICsraSkgew0KICAgICAgICB2YXIgaWQgPSB0cnNbaV0uZ2V0QXR0cmlidXRlKCJpZCIpOw0KICAgICAgICB2YXIgZWxlbWVudCA9IFNFQVJDSF9NQVBQSU5HW2lkXTsNCiAgICAgICAgc3dpdGNoIChlbGVtZW50LnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoc2VhcmNoVmFsdWUudG9Mb3dlckNhc2UoKSkpIHsNCiAgICAgICAgICAgIGNhc2UgdHJ1ZToNCiAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkuc3R5bGUuZGlzcGxheSA9ICIiOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSBmYWxzZToNCiAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkuc3R5bGUuZGlzcGxheSA9ICJub25lIjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgfQ0KICAgIH0NCiAgICByZXR1cm47DQp9DQpmdW5jdGlvbiBjYWxjdWxhdGVXcmFwcGVySGVpZ2h0KCkgew0KICAgIGlmIChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYm94LXdyYXBwZXIiKSkgew0KICAgICAgICB2YXIgZWxtID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImJveC13cmFwcGVyIik7DQogICAgICAgIHZhciBkaXZzID0gbmV3IEFycmF5KCJteVN0cmVhbXNCb3giLCAiY2xpZW50SW5mbyIsICJjb250ZW50Iik7DQogICAgICAgIHZhciBlbGVtZW50c0hlaWdodCA9IDAgLSBlbG0ub2Zmc2V0SGVpZ2h0Ow0KICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGRpdnMubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgICAgIGVsZW1lbnRzSGVpZ2h0ID0gZWxlbWVudHNIZWlnaHQgKyBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChkaXZzW2ldKS5vZmZzZXRIZWlnaHQ7DQogICAgICAgIH0NCiAgICAgICAgZWxtLnN0eWxlLmhlaWdodCA9IHdpbmRvdy5pbm5lckhlaWdodCAtIGVsZW1lbnRzSGVpZ2h0ICsgInB4IjsNCiAgICB9DQogICAgcmV0dXJuOw0KfQ0KZnVuY3Rpb24gY2hhbmdlQ2hhbm5lbE51bWJlcihlbGVtZW50KSB7DQogICAgdmFyIGRiSUQgPSBlbGVtZW50LnBhcmVudE5vZGUucGFyZW50Tm9kZS5pZDsNCiAgICB2YXIgbmV3TnVtYmVyID0gcGFyc2VGbG9hdChlbGVtZW50LnZhbHVlKTsNCiAgICB2YXIgY2hhbm5lbE51bWJlcnMgPSBbXTsNCiAgICB2YXIgZGF0YSA9IFNFUlZFUlsieGVwZyJdWyJlcGdNYXBwaW5nIl07DQogICAgdmFyIGNoYW5uZWxzID0gZ2V0T3duT2JqUHJvcHMoZGF0YSk7DQogICAgaWYgKGlzTmFOKG5ld051bWJlcikpIHsNCiAgICAgICAgYWxlcnQoInt7LmFsZXJ0LmludmFsaWRDaGFubmVsTnVtYmVyfX0iKTsNCiAgICAgICAgcmV0dXJuOw0KICAgIH0NCiAgICBjaGFubmVscy5mb3JFYWNoKGlkID0+IHsNCiAgICAgICAgdmFyIGNoYW5uZWxOdW1iZXIgPSBwYXJzZUZsb2F0KGRhdGFbaWRdWyJ4LWNoYW5uZWxJRCJdKTsNCiAgICAgICAgY2hhbm5lbE51bWJlcnMucHVzaChjaGFubmVsTnVtYmVyKTsNCiAgICB9KTsNCiAgICBmb3IgKHZhciBpID0gMDsgaSA8IGNoYW5uZWxOdW1iZXJzLmxlbmd0aDsgaSsrKSB7DQogICAgICAgIGlmIChjaGFubmVsTnVtYmVycy5pbmRleE9mKG5ld051bWJlcikgPT0gLTEpIHsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICB9DQogICAgICAgIGlmIChNYXRoLmZsb29yKG5ld051bWJlcikgPT0gbmV3TnVtYmVyKSB7DQogICAgICAgICAgICBuZXdOdW1iZXIgPSBuZXdOdW1iZXIgKyAxOw0KICAgICAgICB9DQogICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgbmV3TnVtYmVyID0gbmV3TnVtYmVyICsgMC4xOw0KICAgICAgICAgICAgbmV3TnVtYmVyLnRvRml4ZWQoMSk7DQogICAgICAgICAgICBuZXdOdW1iZXIgPSBNYXRoLnJvdW5kKG5ld051bWJlciAqIDEwKSAvIDEwOw0KICAgICAgICB9DQogICAgfQ0KICAgIGRhdGFbZGJJRF1bIngtY2hhbm5lbElEIl0gPSBuZXdOdW1iZXIudG9TdHJpbmcoKTsNCiAgICBlbGVtZW50LnZhbHVlID0gbmV3TnVtYmVyOw0KICAgIGNvbnNvbGUubG9nKGRhdGFbZGJJRF1bIngtY2hhbm5lbElEIl0pOw0KICAgIGlmIChDT0xVTU5fVE9fU09SVCA9PSAxKSB7DQogICAgICAgIENPTFVNTl9UT19TT1JUID0gLTE7DQogICAgICAgIHNvcnRUYWJsZSgxKTsNCiAgICB9DQogICAgcmV0dXJuOw0KfQ0KZnVuY3Rpb24gYmFja3VwKCkgew0KICAgIHZhciBkYXRhID0gbmV3IE9iamVjdCgpOw0KICAgIGNvbnNvbGUubG9nKCJCYWNrdXAgZGF0YSIpOw0KICAgIHZhciBjbWQgPSAieHRldmVCYWNrdXAiOw0KICAgIGNvbnNvbGUubG9nKCJTRU5EIFRPIFNFUlZFUiIpOw0KICAgIGNvbnNvbGUubG9nKGRhdGEpOw0KICAgIHZhciBzZXJ2ZXIgPSBuZXcgU2VydmVyKGNtZCk7DQogICAgc2VydmVyLnJlcXVlc3QoZGF0YSk7DQogICAgcmV0dXJuOw0KfQ0KZnVuY3Rpb24gdG9nZ2xlQ2hhbm5lbFN0YXR1cyhpZCkgew0KICAgIHZhciBlbGVtZW50Ow0KICAgIHZhciBzdGF0dXM7DQogICAgaWYgKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJhY3RpdmUiKSkgew0KICAgICAgICB2YXIgY2hlY2tib3ggPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYWN0aXZlIik7DQogICAgICAgIHN0YXR1cyA9IChjaGVja2JveCkuY2hlY2tlZDsNCiAgICB9DQogICAgdmFyIGlkcyA9IGdldEFsbFNlbGVjdGVkQ2hhbm5lbHMoKTsNCiAgICBpZiAoaWRzLmxlbmd0aCA9PSAwKSB7DQogICAgICAgIGlkcy5wdXNoKGlkKTsNCiAgICB9DQogICAgaWRzLmZvckVhY2goaWQgPT4gew0KICAgICAgICB2YXIgY2hhbm5lbCA9IFNFUlZFUlsieGVwZyJdWyJlcGdNYXBwaW5nIl1baWRdOw0KICAgICAgICBjaGFubmVsWyJ4LWFjdGl2ZSJdID0gc3RhdHVzOw0KICAgICAgICBzd2l0Y2ggKGNoYW5uZWxbIngtYWN0aXZlIl0pIHsNCiAgICAgICAgICAgIGNhc2UgdHJ1ZToNCiAgICAgICAgICAgICAgICBpZiAoY2hhbm5lbFsieC14bWx0di1maWxlIl0gPT0gIi0iIHx8IGNoYW5uZWxbIngtbWFwcGluZyJdID09ICItIikgew0KICAgICAgICAgICAgICAgICAgICBpZiAoQlVMS19FRElUID09IGZhbHNlKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBhbGVydChjaGFubmVsWyJ4LW5hbWUiXSArICI6IE1pc3NpbmcgWE1MVFYgZmlsZSAvIGNoYW5uZWwiKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNoZWNrYm94LmNoZWNrZWQgPSBmYWxzZTsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBjaGFubmVsWyJ4LWFjdGl2ZSJdID0gZmFsc2U7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSBmYWxzZToNCiAgICAgICAgICAgICAgICAvLyBjb2RlLi4uDQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIH0NCiAgICAgICAgaWYgKGNoYW5uZWxbIngtYWN0aXZlIl0gPT0gZmFsc2UpIHsNCiAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5jbGFzc05hbWUgPSAibm90QWN0aXZlRVBHIjsNCiAgICAgICAgfQ0KICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5jbGFzc05hbWUgPSAiYWN0aXZlRVBHIjsNCiAgICAgICAgfQ0KICAgIH0pOw0KfQ0KZnVuY3Rpb24gdG9nZ2xlR3JvdXBVcGRhdGVDYih4ZXBnSWQsIHRhcmdldCkgew0KICAgIHRhcmdldC5jbGFzc05hbWUgPSAnY2hhbmdlZCc7DQogICAgY29uc3QgZ3JvdXBJbnB1dCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ2lucHV0W25hbWU9IngtZ3JvdXAtdGl0bGUiXScpOw0KICAgIGNvbnN0IG1hcHBpbmcgPSBnZXRMb2NhbERhdGEoJ21hcHBpbmcnLCB4ZXBnSWQpOw0KICAgIGlmICh0YXJnZXQuY2hlY2tlZCkgew0KICAgICAgICBncm91cElucHV0LmRhdGFzZXQub2xkVmFsdWUgPSBncm91cElucHV0LnZhbHVlOw0KICAgICAgICBncm91cElucHV0LnZhbHVlID0gbWFwcGluZ1snZ3JvdXAtdGl0bGUnXTsNCiAgICAgICAgZ3JvdXBJbnB1dC5kaXNhYmxlZCA9IHRydWU7DQogICAgfQ0KICAgIGVsc2Ugew0KICAgICAgICBncm91cElucHV0LnZhbHVlID0gZ3JvdXBJbnB1dC5kYXRhc2V0Lm9sZFZhbHVlOw0KICAgICAgICBncm91cElucHV0LmRpc2FibGVkID0gZmFsc2U7DQogICAgfQ0KICAgIGdyb3VwSW5wdXQuY2xhc3NOYW1lID0gJ2NoYW5nZWQnOw0KfQ0KZnVuY3Rpb24gcmVzdG9yZSgpIHsNCiAgICBpZiAoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3VwbG9hZCcpKSB7DQogICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd1cGxvYWQnKS5yZW1vdmUoKTsNCiAgICB9DQogICAgdmFyIHJlc3RvcmUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJJTlBVVCIpOw0KICAgIHJlc3RvcmUuc2V0QXR0cmlidXRlKCJ0eXBlIiwgImZpbGUiKTsNCiAgICByZXN0b3JlLnNldEF0dHJpYnV0ZSgiY2xhc3MiLCAibm90VmlzaWJsZSIpOw0KICAgIHJlc3RvcmUuc2V0QXR0cmlidXRlKCJuYW1lIiwgIiIpOw0KICAgIHJlc3RvcmUuaWQgPSAidXBsb2FkIjsNCiAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHJlc3RvcmUpOw0KICAgIHJlc3RvcmUuY2xpY2soKTsNCiAgICByZXN0b3JlLm9uY2hhbmdlID0gZnVuY3Rpb24gKCkgew0KICAgICAgICB2YXIgZmlsZW5hbWUgPSByZXN0b3JlLmZpbGVzWzBdLm5hbWU7DQogICAgICAgIHZhciBjaGVjayA9IGNvbmZpcm0oIkZpbGU6ICIgKyBmaWxlbmFtZSArICJcbnt7LmNvbmZpcm0ucmVzdG9yZX19Iik7DQogICAgICAgIGlmIChjaGVjayA9PSB0cnVlKSB7DQogICAgICAgICAgICB2YXIgcmVhZGVyID0gbmV3IEZpbGVSZWFkZXIoKTsNCiAgICAgICAgICAgIHZhciBmaWxlID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignaW5wdXRbdHlwZT1maWxlXScpLmZpbGVzWzBdOw0KICAgICAgICAgICAgaWYgKGZpbGUpIHsNCiAgICAgICAgICAgICAgICByZWFkZXIucmVhZEFzRGF0YVVSTChmaWxlKTsNCiAgICAgICAgICAgICAgICByZWFkZXIub25sb2FkID0gZnVuY3Rpb24gKCkgew0KICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhyZWFkZXIucmVzdWx0KTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGRhdGEgPSBuZXcgT2JqZWN0KCk7DQogICAgICAgICAgICAgICAgICAgIHZhciBjbWQgPSAieHRldmVSZXN0b3JlIjsNCiAgICAgICAgICAgICAgICAgICAgZGF0YVsiYmFzZTY0Il0gPSByZWFkZXIucmVzdWx0Ow0KICAgICAgICAgICAgICAgICAgICB2YXIgc2VydmVyID0gbmV3IFNlcnZlcihjbWQpOw0KICAgICAgICAgICAgICAgICAgICBzZXJ2ZXIucmVxdWVzdChkYXRhKTsNCiAgICAgICAgICAgICAgICB9Ow0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgZWxzZSB7DQogICAgICAgICAgICAgICAgYWxlcnQoIkZpbGUgY291bGQgbm90IGJlIGxvYWRlZCIpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgcmVzdG9yZS5yZW1vdmUoKTsNCiAgICAgICAgICAgIHJldHVybjsNCiAgICAgICAgfQ0KICAgIH07DQogICAgcmV0dXJuOw0KfQ0KZnVuY3Rpb24gdXBsb2FkTG9nbygpIHsNCiAgICBpZiAoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3VwbG9hZCcpKSB7DQogICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd1cGxvYWQnKS5yZW1vdmUoKTsNCiAgICB9DQogICAgdmFyIHVwbG9hZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIklOUFVUIik7DQogICAgdXBsb2FkLnNldEF0dHJpYnV0ZSgidHlwZSIsICJmaWxlIik7DQogICAgdXBsb2FkLnNldEF0dHJpYnV0ZSgiY2xhc3MiLCAibm90VmlzaWJsZSIpOw0KICAgIHVwbG9hZC5zZXRBdHRyaWJ1dGUoIm5hbWUiLCAiIik7DQogICAgdXBsb2FkLmlkID0gInVwbG9hZCI7DQogICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZCh1cGxvYWQpOw0KICAgIHVwbG9hZC5jbGljaygpOw0KICAgIHVwbG9hZC5vbmJsdXIgPSBmdW5jdGlvbiAoKSB7DQogICAgICAgIGFsZXJ0KCk7DQogICAgfTsNCiAgICB1cGxvYWQub25jaGFuZ2UgPSBmdW5jdGlvbiAoKSB7DQogICAgICAgIHZhciBmaWxlbmFtZSA9IHVwbG9hZC5maWxlc1swXS5uYW1lOw0KICAgICAgICB2YXIgcmVhZGVyID0gbmV3IEZpbGVSZWFkZXIoKTsNCiAgICAgICAgdmFyIGZpbGUgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCdpbnB1dFt0eXBlPWZpbGVdJykuZmlsZXNbMF07DQogICAgICAgIGlmIChmaWxlKSB7DQogICAgICAgICAgICByZWFkZXIucmVhZEFzRGF0YVVSTChmaWxlKTsNCiAgICAgICAgICAgIHJlYWRlci5vbmxvYWQgPSBmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICAgICAgY29uc29sZS5sb2cocmVhZGVyLnJlc3VsdCk7DQogICAgICAgICAgICAgICAgdmFyIGRhdGEgPSBuZXcgT2JqZWN0KCk7DQogICAgICAgICAgICAgICAgdmFyIGNtZCA9ICJ1cGxvYWRMb2dvIjsNCiAgICAgICAgICAgICAgICBkYXRhWyJiYXNlNjQiXSA9IHJlYWRlci5yZXN1bHQ7DQogICAgICAgICAgICAgICAgZGF0YVsiZmlsZW5hbWUiXSA9IGZpbGUubmFtZTsNCiAgICAgICAgICAgICAgICB2YXIgc2VydmVyID0gbmV3IFNlcnZlcihjbWQpOw0KICAgICAgICAgICAgICAgIHNlcnZlci5yZXF1ZXN0KGRhdGEpOw0KICAgICAgICAgICAgICAgIHZhciB1cGRhdGVMb2dvID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3VwZGF0ZS1pY29uJyk7DQogICAgICAgICAgICAgICAgdXBkYXRlTG9nby5jaGVja2VkID0gZmFsc2U7DQogICAgICAgICAgICAgICAgdXBkYXRlTG9nby5jbGFzc05hbWUgPSAiY2hhbmdlZCI7DQogICAgICAgICAgICB9Ow0KICAgICAgICB9DQogICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgYWxlcnQoIkZpbGUgY291bGQgbm90IGJlIGxvYWRlZCIpOw0KICAgICAgICB9DQogICAgICAgIHVwbG9hZC5yZW1vdmUoKTsNCiAgICAgICAgcmV0dXJuOw0KICAgIH07DQp9DQpmdW5jdGlvbiBjaGVja1VuZG8oa2V5KSB7DQogICAgc3dpdGNoIChrZXkpIHsNCiAgICAgICAgY2FzZSAiZXBnTWFwcGluZyI6DQogICAgICAgICAgICBpZiAoVU5ETy5oYXNPd25Qcm9wZXJ0eShrZXkpKSB7DQogICAgICAgICAgICAgICAgU0VSVkVSWyJ4ZXBnIl1ba2V5XSA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkoVU5ET1trZXldKSk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICBVTkRPW2tleV0gPSBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KFNFUlZFUlsieGVwZyJdW2tleV0pKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBkZWZhdWx0Og0KICAgICAgICAgICAgYnJlYWs7DQogICAgfQ0KICAgIHJldHVybjsNCn0NCmZ1bmN0aW9uIHNvcnRTZWxlY3Qoc2VsZWN0KSB7DQogICAgY29uc3QgdGVtcEFyciA9IFtdOw0KICAgIGNvbnN0IHNlbGVjdGVkVmFsdWUgPSBzZWxlY3Qub3B0aW9uc1tzZWxlY3Quc2VsZWN0ZWRJbmRleF0udmFsdWU7DQogICAgZm9yIChjb25zdCBzZWxlY3RPcHRpb24gb2Ygc2VsZWN0Lm9wdGlvbnMpIHsNCiAgICAgICAgdGVtcEFyci5wdXNoKHNlbGVjdE9wdGlvbik7DQogICAgfQ0KICAgIHRlbXBBcnIuc29ydCgobzEsIG8yKSA9PiB7DQogICAgICAgIGlmIChvMS50ZXh0IDwgbzIudGV4dCkgew0KICAgICAgICAgICAgcmV0dXJuIC0xOw0KICAgICAgICB9DQogICAgICAgIGlmIChvMS50ZXh0ID4gbzIudGV4dCkgew0KICAgICAgICAgICAgcmV0dXJuIDE7DQogICAgICAgIH0NCiAgICAgICAgcmV0dXJuIDA7DQogICAgfSk7DQogICAgd2hpbGUgKHNlbGVjdC5vcHRpb25zLmxlbmd0aCA+IDApIHsNCiAgICAgICAgc2VsZWN0Lm9wdGlvbnNbMF0gPSBudWxsOw0KICAgIH0NCiAgICA7DQogICAgbGV0IG5ld1NlbGVjdGVkSW5kZXggPSAwOw0KICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGVtcEFyci5sZW5ndGg7IGkrKykgew0KICAgICAgICBzZWxlY3Qub3B0aW9uc1tpXSA9IHRlbXBBcnJbaV07DQogICAgICAgIGlmIChzZWxlY3Qub3B0aW9uc1tpXS52YWx1ZSA9PSBzZWxlY3RlZFZhbHVlKSB7DQogICAgICAgICAgICBuZXdTZWxlY3RlZEluZGV4ID0gaTsNCiAgICAgICAgfQ0KICAgIH0NCiAgICAvLyBTZXQgbmV3IHNlbGVjdGVkIGluZGV4IGFmdGVyIHNvcnRpbmcNCiAgICBzZWxlY3Quc2VsZWN0ZWRJbmRleCA9IG5ld1NlbGVjdGVkSW5kZXg7DQp9DQpmdW5jdGlvbiB1cGRhdGVMb2coKSB7DQogICAgY29uc29sZS5sb2coIlRPS0VOIik7DQogICAgdmFyIHNlcnZlciA9IG5ldyBTZXJ2ZXIoInVwZGF0ZUxvZyIpOw0KICAgIHNlcnZlci5yZXF1ZXN0KG5ldyBPYmplY3QoKSk7DQp9DQo=" webUI["html/js/classes_ts.js"] = "dmFyIF9fZXh0ZW5kcyA9ICh0aGlzICYmIHRoaXMuX19leHRlbmRzKSB8fCAoZnVuY3Rpb24gKCkgew0KICAgIHZhciBleHRlbmRTdGF0aWNzID0gZnVuY3Rpb24gKGQsIGIpIHsNCiAgICAgICAgZXh0ZW5kU3RhdGljcyA9IE9iamVjdC5zZXRQcm90b3R5cGVPZiB8fA0KICAgICAgICAgICAgKHsgX19wcm90b19fOiBbXSB9IGluc3RhbmNlb2YgQXJyYXkgJiYgZnVuY3Rpb24gKGQsIGIpIHsgZC5fX3Byb3RvX18gPSBiOyB9KSB8fA0KICAgICAgICAgICAgZnVuY3Rpb24gKGQsIGIpIHsgZm9yICh2YXIgcCBpbiBiKSBpZiAoYi5oYXNPd25Qcm9wZXJ0eShwKSkgZFtwXSA9IGJbcF07IH07DQogICAgICAgIHJldHVybiBleHRlbmRTdGF0aWNzKGQsIGIpOw0KICAgIH07DQogICAgcmV0dXJuIGZ1bmN0aW9uIChkLCBiKSB7DQogICAgICAgIGV4dGVuZFN0YXRpY3MoZCwgYik7DQogICAgICAgIGZ1bmN0aW9uIF9fKCkgeyB0aGlzLmNvbnN0cnVjdG9yID0gZDsgfQ0KICAgICAgICBkLnByb3RvdHlwZSA9IGIgPT09IG51bGwgPyBPYmplY3QuY3JlYXRlKGIpIDogKF9fLnByb3RvdHlwZSA9IGIucHJvdG90eXBlLCBuZXcgX18oKSk7DQogICAgfTsNCn0pKCk7DQp2YXIgTWFpbk1lbnUgPSAvKiogQGNsYXNzICovIChmdW5jdGlvbiAoKSB7DQogICAgZnVuY3Rpb24gTWFpbk1lbnUoKSB7DQogICAgICAgIHRoaXMuRG9jdW1lbnRJRCA9ICJtYWluLW1lbnUiOw0KICAgICAgICB0aGlzLkhUTUxUYWcgPSAiTEkiOw0KICAgIH0NCiAgICBNYWluTWVudS5wcm90b3R5cGUuY3JlYXRlID0gZnVuY3Rpb24gKCkgew0KICAgICAgICBjb25zb2xlLmxvZyh0aGlzLkRvY3VtZW50SUQpOw0KICAgIH07DQogICAgcmV0dXJuIE1haW5NZW51Ow0KfSgpKTsNCnZhciBNYWluTWVudUl0ZW0gPSAvKiogQGNsYXNzICovIChmdW5jdGlvbiAoX3N1cGVyKSB7DQogICAgX19leHRlbmRzKE1haW5NZW51SXRlbSwgX3N1cGVyKTsNCiAgICBmdW5jdGlvbiBNYWluTWVudUl0ZW0oKSB7DQogICAgICAgIHJldHVybiBfc3VwZXIgIT09IG51bGwgJiYgX3N1cGVyLmFwcGx5KHRoaXMsIGFyZ3VtZW50cykgfHwgdGhpczsNCiAgICB9DQogICAgTWFpbk1lbnVJdGVtLnByb3RvdHlwZS5jcmVhdGUyID0gZnVuY3Rpb24gKCkgew0KICAgICAgICB2YXIgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQodGhpcy5IVE1MVGFnKTsNCiAgICAgICAgZWxlbWVudC5pbm5lclRleHQgPSB0aGlzLlZhbHVlOw0KICAgICAgICBjb25zb2xlLmxvZyhlbGVtZW50KTsNCiAgICB9Ow0KICAgIHJldHVybiBNYWluTWVudUl0ZW07DQp9KE1haW5NZW51KSk7DQpmdW5jdGlvbiBwYWdlUmVhZHkoKSB7DQogICAgdmFyIGl0ZW0gPSBuZXcgTWFpbk1lbnVJdGVtKCk7DQogICAgaXRlbS5WYWx1ZSA9ICJUZXN0IjsNCiAgICBpdGVtLmNyZWF0ZTIoKTsNCn0NCg==" webUI["html/js/configuration_ts.js"] = "Y2xhc3MgV2l6YXJkQ2F0ZWdvcnkgew0KICAgIGNvbnN0cnVjdG9yKCkgew0KICAgICAgICB0aGlzLkRvY3VtZW50SUQgPSAiY29udGVudCI7DQogICAgfQ0KICAgIGNyZWF0ZUNhdGVnb3J5SGVhZGxpbmUodmFsdWUpIHsNCiAgICAgICAgdmFyIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJINCIpOw0KICAgICAgICBlbGVtZW50LmlubmVySFRNTCA9IHZhbHVlOw0KICAgICAgICByZXR1cm4gZWxlbWVudDsNCiAgICB9DQp9DQpjbGFzcyBXaXphcmRJdGVtIGV4dGVuZHMgV2l6YXJkQ2F0ZWdvcnkgew0KICAgIGNvbnN0cnVjdG9yKGtleSwgaGVhZGxpbmUpIHsNCiAgICAgICAgc3VwZXIoKTsNCiAgICAgICAgdGhpcy5oZWFkbGluZSA9IGhlYWRsaW5lOw0KICAgICAgICB0aGlzLmtleSA9IGtleTsNCiAgICB9DQogICAgY3JlYXRlV2l6YXJkKCkgew0KICAgICAgICB2YXIgaGVhZGxpbmUgPSB0aGlzLmNyZWF0ZUNhdGVnb3J5SGVhZGxpbmUodGhpcy5oZWFkbGluZSk7DQogICAgICAgIHZhciBrZXkgPSB0aGlzLmtleTsNCiAgICAgICAgdmFyIGNvbnRlbnQgPSBuZXcgUG9wdXBDb250ZW50KCk7DQogICAgICAgIHZhciBkZXNjcmlwdGlvbjsNCiAgICAgICAgdmFyIGRvYyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHRoaXMuRG9jdW1lbnRJRCk7DQogICAgICAgIGRvYy5pbm5lckhUTUwgPSAiIjsNCiAgICAgICAgZG9jLmFwcGVuZENoaWxkKGhlYWRsaW5lKTsNCiAgICAgICAgc3dpdGNoIChrZXkpIHsNCiAgICAgICAgICAgIGNhc2UgInR1bmVyIjoNCiAgICAgICAgICAgICAgICB2YXIgdGV4dCA9IG5ldyBBcnJheSgpOw0KICAgICAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBuZXcgQXJyYXkoKTsNCiAgICAgICAgICAgICAgICBmb3IgKHZhciBpID0gMTsgaSA8PSAxMDA7IGkrKykgew0KICAgICAgICAgICAgICAgICAgICB0ZXh0LnB1c2goaSk7DQogICAgICAgICAgICAgICAgICAgIHZhbHVlcy5wdXNoKGkpOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCAiMSIsIGtleSk7DQogICAgICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgiY2xhc3MiLCAid2l6YXJkIik7DQogICAgICAgICAgICAgICAgc2VsZWN0LmlkID0ga2V5Ow0KICAgICAgICAgICAgICAgIGRvYy5hcHBlbmRDaGlsZChzZWxlY3QpOw0KICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uID0gInt7LndpemFyZC50dW5lci5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImVwZ1NvdXJjZSI6DQogICAgICAgICAgICAgICAgdmFyIHRleHQgPSBbIlBNUyIsICJYRVBHIl07DQogICAgICAgICAgICAgICAgdmFyIHZhbHVlcyA9IFsiUE1TIiwgIlhFUEciXTsNCiAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCAiWEVQRyIsIGtleSk7DQogICAgICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgiY2xhc3MiLCAid2l6YXJkIik7DQogICAgICAgICAgICAgICAgc2VsZWN0LmlkID0ga2V5Ow0KICAgICAgICAgICAgICAgIGRvYy5hcHBlbmRDaGlsZChzZWxlY3QpOw0KICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uID0gInt7LndpemFyZC5lcGdTb3VyY2UuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJtM3UiOg0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBrZXksICIiKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LndpemFyZC5tM3UucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgiY2xhc3MiLCAid2l6YXJkIik7DQogICAgICAgICAgICAgICAgaW5wdXQuaWQgPSBrZXk7DQogICAgICAgICAgICAgICAgZG9jLmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbiA9ICJ7ey53aXphcmQubTN1LmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAieG1sdHYiOg0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBrZXksICIiKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LndpemFyZC54bWx0di5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJjbGFzcyIsICJ3aXphcmQiKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5pZCA9IGtleTsNCiAgICAgICAgICAgICAgICBkb2MuYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uID0gInt7LndpemFyZC54bWx0di5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICAgICAgY29uc29sZS5sb2coa2V5KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgfQ0KICAgICAgICB2YXIgcHJlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiUFJFIik7DQogICAgICAgIHByZS5pbm5lckhUTUwgPSBkZXNjcmlwdGlvbjsNCiAgICAgICAgZG9jLmFwcGVuZENoaWxkKHByZSk7DQogICAgICAgIGNvbnNvbGUubG9nKGhlYWRsaW5lLCBrZXkpOw0KICAgIH0NCn0NCmZ1bmN0aW9uIHJlYWR5Rm9yQ29uZmlndXJhdGlvbih3aXphcmQpIHsNCiAgICB2YXIgc2VydmVyID0gbmV3IFNlcnZlcigiZ2V0U2VydmVyQ29uZmlnIik7DQogICAgc2VydmVyLnJlcXVlc3QobmV3IE9iamVjdCgpKTsNCiAgICBzaG93RWxlbWVudCgibG9hZGluZyIsIGZhbHNlKTsNCiAgICBjb25maWd1cmF0aW9uV2l6YXJkW3dpemFyZF0uY3JlYXRlV2l6YXJkKCk7DQp9DQpmdW5jdGlvbiBzYXZlV2l6YXJkKCkgew0KICAgIHZhciBjbWQgPSAic2F2ZVdpemFyZCI7DQogICAgdmFyIGRpdiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb250ZW50Iik7DQogICAgdmFyIGNvbmZpZyA9IGRpdi5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCJ3aXphcmQiKTsNCiAgICB2YXIgd2l6YXJkID0gbmV3IE9iamVjdCgpOw0KICAgIGZvciAodmFyIGkgPSAwOyBpIDwgY29uZmlnLmxlbmd0aDsgaSsrKSB7DQogICAgICAgIHZhciBuYW1lOw0KICAgICAgICB2YXIgdmFsdWU7DQogICAgICAgIHN3aXRjaCAoY29uZmlnW2ldLnRhZ05hbWUpIHsNCiAgICAgICAgICAgIGNhc2UgIlNFTEVDVCI6DQogICAgICAgICAgICAgICAgbmFtZSA9IGNvbmZpZ1tpXS5uYW1lOw0KICAgICAgICAgICAgICAgIHZhbHVlID0gY29uZmlnW2ldLnZhbHVlOw0KICAgICAgICAgICAgICAgIC8vIElmIHRoZSB2YWx1ZSBpcyBhIG51bWJlciwgc3RvcmUgaXQgYXMgYSBudW1iZXINCiAgICAgICAgICAgICAgICBpZiAoaXNOYU4odmFsdWUpKSB7DQogICAgICAgICAgICAgICAgICAgIHdpemFyZFtuYW1lXSA9IHZhbHVlOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICAgICAgd2l6YXJkW25hbWVdID0gcGFyc2VJbnQodmFsdWUpOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgIklOUFVUIjoNCiAgICAgICAgICAgICAgICBzd2l0Y2ggKGNvbmZpZ1tpXS50eXBlKSB7DQogICAgICAgICAgICAgICAgICAgIGNhc2UgInRleHQiOg0KICAgICAgICAgICAgICAgICAgICAgICAgbmFtZSA9IGNvbmZpZ1tpXS5uYW1lOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSBjb25maWdbaV0udmFsdWU7DQogICAgICAgICAgICAgICAgICAgICAgICBpZiAodmFsdWUubGVuZ3RoID09IDApIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgbXNnID0gbmFtZS50b1VwcGVyQ2FzZSgpICsgIjogIiArICJ7ey5hbGVydC5taXNzaW5nSW5wdXR9fSI7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgYWxlcnQobXNnKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICB3aXphcmRbbmFtZV0gPSB2YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICAgICAgLy8gY29kZS4uLg0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICB9DQogICAgfQ0KICAgIHZhciBkYXRhID0gbmV3IE9iamVjdCgpOw0KICAgIGRhdGFbIndpemFyZCJdID0gd2l6YXJkOw0KICAgIHZhciBzZXJ2ZXIgPSBuZXcgU2VydmVyKGNtZCk7DQogICAgc2VydmVyLnJlcXVlc3QoZGF0YSk7DQogICAgY29uc29sZS5sb2coZGF0YSk7DQp9DQovLyBXaXphcmQNCnZhciBjb25maWd1cmF0aW9uV2l6YXJkID0gbmV3IEFycmF5KCk7DQpjb25maWd1cmF0aW9uV2l6YXJkLnB1c2gobmV3IFdpemFyZEl0ZW0oInR1bmVyIiwgInt7LndpemFyZC50dW5lci50aXRsZX19IikpOw0KY29uZmlndXJhdGlvbldpemFyZC5wdXNoKG5ldyBXaXphcmRJdGVtKCJlcGdTb3VyY2UiLCAie3sud2l6YXJkLmVwZ1NvdXJjZS50aXRsZX19IikpOw0KY29uZmlndXJhdGlvbldpemFyZC5wdXNoKG5ldyBXaXphcmRJdGVtKCJtM3UiLCAie3sud2l6YXJkLm0zdS50aXRsZX19IikpOw0KY29uZmlndXJhdGlvbldpemFyZC5wdXNoKG5ldyBXaXphcmRJdGVtKCJ4bWx0diIsICJ7ey53aXphcmQueG1sdHYudGl0bGV9fSIpKTsNCg==" webUI["html/js/logs_ts.js"] = "Y2xhc3MgTG9nIHsNCiAgICBjcmVhdGVMb2coZW50cnkpIHsNCiAgICAgICAgdmFyIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJQUkUiKTsNCiAgICAgICAgaWYgKGVudHJ5LmluZGV4T2YoIldBUk5JTkciKSAhPSAtMSkgew0KICAgICAgICAgICAgZWxlbWVudC5jbGFzc05hbWUgPSAid2FybmluZ01zZyI7DQogICAgICAgIH0NCiAgICAgICAgaWYgKGVudHJ5LmluZGV4T2YoIkVSUk9SIikgIT0gLTEpIHsNCiAgICAgICAgICAgIGVsZW1lbnQuY2xhc3NOYW1lID0gImVycm9yTXNnIjsNCiAgICAgICAgfQ0KICAgICAgICBpZiAoZW50cnkuaW5kZXhPZigiREVCVUciKSAhPSAtMSkgew0KICAgICAgICAgICAgZWxlbWVudC5jbGFzc05hbWUgPSAiZGVidWdNc2ciOw0KICAgICAgICB9DQogICAgICAgIGVsZW1lbnQuaW5uZXJIVE1MID0gZW50cnk7DQogICAgICAgIHJldHVybiBlbGVtZW50Ow0KICAgIH0NCn0NCmZ1bmN0aW9uIHNob3dMb2dzKGJvdHRvbSkgew0KICAgIHZhciBsb2cgPSBuZXcgTG9nKCk7DQogICAgdmFyIGxvZ3MgPSBTRVJWRVJbImxvZyJdWyJsb2ciXTsNCiAgICB2YXIgZGl2ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnRlbnRfbG9nIik7DQogICAgZGl2LmlubmVySFRNTCA9ICIiOw0KICAgIHZhciBrZXlzID0gZ2V0T3duT2JqUHJvcHMobG9ncyk7DQogICAga2V5cy5mb3JFYWNoKGxvZ0lEID0+IHsNCiAgICAgICAgdmFyIGVudHJ5ID0gbG9nLmNyZWF0ZUxvZyhsb2dzW2xvZ0lEXSk7DQogICAgICAgIGRpdi5hcHBlbmQoZW50cnkpOw0KICAgIH0pOw0KICAgIHNldFRpbWVvdXQoZnVuY3Rpb24gKCkgew0KICAgICAgICBpZiAoYm90dG9tID09IHRydWUpIHsNCiAgICAgICAgICAgIHZhciB3cmFwcGVyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImJveC13cmFwcGVyIik7DQogICAgICAgICAgICB3cmFwcGVyLnNjcm9sbFRvcCA9IHdyYXBwZXIuc2Nyb2xsSGVpZ2h0Ow0KICAgICAgICB9DQogICAgfSwgMTApOw0KfQ0KZnVuY3Rpb24gcmVzZXRMb2dzKCkgew0KICAgIHZhciBjbWQgPSAicmVzZXRMb2dzIjsNCiAgICB2YXIgZGF0YSA9IG5ldyBPYmplY3QoKTsNCiAgICB2YXIgc2VydmVyID0gbmV3IFNlcnZlcihjbWQpOw0KICAgIHNlcnZlci5yZXF1ZXN0KGRhdGEpOw0KfQ0K" webUI["html/js/menu_ts.js"] = "Y2xhc3MgTWFpbk1lbnUgew0KICAgIGNvbnN0cnVjdG9yKCkgew0KICAgICAgICB0aGlzLkRvY3VtZW50SUQgPSAibWFpbi1tZW51IjsNCiAgICAgICAgdGhpcy5IVE1MVGFnID0gIkxJIjsNCiAgICAgICAgdGhpcy5JbWFnZVBhdGggPSAiaW1nLyI7DQogICAgfQ0KICAgIGNyZWF0ZUlNRyhzcmMpIHsNCiAgICAgICAgbGV0IGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJJTUciKTsNCiAgICAgICAgZWxlbWVudC5zZXRBdHRyaWJ1dGUoInNyYyIsIHRoaXMuSW1hZ2VQYXRoICsgc3JjKTsNCiAgICAgICAgcmV0dXJuIGVsZW1lbnQ7DQogICAgfQ0KICAgIGNyZWF0ZVZhbHVlKHZhbHVlKSB7DQogICAgICAgIGxldCBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiUCIpOw0KICAgICAgICBlbGVtZW50LmlubmVySFRNTCA9IHZhbHVlOw0KICAgICAgICByZXR1cm4gZWxlbWVudDsNCiAgICB9DQp9DQpjbGFzcyBNYWluTWVudUl0ZW0gZXh0ZW5kcyBNYWluTWVudSB7DQogICAgY29uc3RydWN0b3IobWVudUtleSwgdmFsdWUsIGltYWdlLCBoZWFkbGluZSkgew0KICAgICAgICBzdXBlcigpOw0KICAgICAgICB0aGlzLm1lbnVLZXkgPSBtZW51S2V5Ow0KICAgICAgICB0aGlzLnZhbHVlID0gdmFsdWU7DQogICAgICAgIHRoaXMuaW1nU3JjID0gaW1hZ2U7DQogICAgICAgIHRoaXMuaGVhZGxpbmUgPSBoZWFkbGluZTsNCiAgICB9DQogICAgY3JlYXRlSXRlbSgpIHsNCiAgICAgICAgbGV0IGl0ZW0gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJMSSIpOw0KICAgICAgICBpdGVtLnNldEF0dHJpYnV0ZSgib25jbGljayIsICJqYXZhc2NyaXB0OiBvcGVuVGhpc01lbnUodGhpcykiKTsNCiAgICAgICAgaXRlbS5zZXRBdHRyaWJ1dGUoImlkIiwgdGhpcy5pZCk7DQogICAgICAgIGxldCBpbWcgPSB0aGlzLmNyZWF0ZUlNRyh0aGlzLmltZ1NyYyk7DQogICAgICAgIGxldCB2YWx1ZSA9IHRoaXMuY3JlYXRlVmFsdWUodGhpcy52YWx1ZSk7DQogICAgICAgIGl0ZW0uYXBwZW5kQ2hpbGQoaW1nKTsNCiAgICAgICAgaXRlbS5hcHBlbmRDaGlsZCh2YWx1ZSk7DQogICAgICAgIGxldCBkb2MgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCh0aGlzLkRvY3VtZW50SUQpOw0KICAgICAgICBkb2MuYXBwZW5kQ2hpbGQoaXRlbSk7DQogICAgICAgIHN3aXRjaCAodGhpcy5tZW51S2V5KSB7DQogICAgICAgICAgICBjYXNlICJwbGF5bGlzdCI6DQogICAgICAgICAgICAgICAgdGhpcy50YWJsZUhlYWRlciA9IFsie3sucGxheWxpc3QudGFibGUucGxheWxpc3R9fSIsICJ7ey5wbGF5bGlzdC50YWJsZS50dW5lcn19IiwgInt7LnBsYXlsaXN0LnRhYmxlLmxhc3RVcGRhdGV9fSIsICJ7ey5wbGF5bGlzdC50YWJsZS5hdmFpbGFiaWxpdHl9fSAlIiwgInt7LnBsYXlsaXN0LnRhYmxlLnR5cGV9fSIsICJ7ey5wbGF5bGlzdC50YWJsZS5zdHJlYW1zfX0iLCAie3sucGxheWxpc3QudGFibGUuZ3JvdXBUaXRsZX19ICUiLCAie3sucGxheWxpc3QudGFibGUudHZnSUR9fSAlIiwgInt7LnBsYXlsaXN0LnRhYmxlLnVuaXF1ZUlEfX0gJSJdOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAieG1sdHYiOg0KICAgICAgICAgICAgICAgIHRoaXMudGFibGVIZWFkZXIgPSBbInt7LnhtbHR2LnRhYmxlLmd1aWRlfX0iLCAie3sueG1sdHYudGFibGUubGFzdFVwZGF0ZX19IiwgInt7LnhtbHR2LnRhYmxlLmF2YWlsYWJpbGl0eX19ICUiLCAie3sueG1sdHYudGFibGUuY2hhbm5lbHN9fSIsICJ7ey54bWx0di50YWJsZS5wcm9ncmFtc319Il07DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJmaWx0ZXIiOg0KICAgICAgICAgICAgICAgIHRoaXMudGFibGVIZWFkZXIgPSBbInt7LmZpbHRlci50YWJsZS5zdGFydGluZ0NoYW5uZWx9fSIsICJ7ey5maWx0ZXIudGFibGUubmFtZX19IiwgInt7LmZpbHRlci50YWJsZS50eXBlfX0iLCAie3suZmlsdGVyLnRhYmxlLmZpbHRlcn19Il07DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ1c2VycyI6DQogICAgICAgICAgICAgICAgdGhpcy50YWJsZUhlYWRlciA9IFsie3sudXNlcnMudGFibGUudXNlcm5hbWV9fSIsICJ7ey51c2Vycy50YWJsZS5wYXNzd29yZH19IiwgInt7LnVzZXJzLnRhYmxlLndlYn19IiwgInt7LnVzZXJzLnRhYmxlLnBtc319IiwgInt7LnVzZXJzLnRhYmxlLm0zdX19IiwgInt7LnVzZXJzLnRhYmxlLnhtbH19IiwgInt7LnVzZXJzLnRhYmxlLmFwaX19Il07DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJtYXBwaW5nIjoNCiAgICAgICAgICAgICAgICB0aGlzLnRhYmxlSGVhZGVyID0gWyJCVUxLIiwgInt7Lm1hcHBpbmcudGFibGUuY2hOb319IiwgInt7Lm1hcHBpbmcudGFibGUubG9nb319IiwgInt7Lm1hcHBpbmcudGFibGUuY2hhbm5lbE5hbWV9fSIsICJ7ey5tYXBwaW5nLnRhYmxlLnBsYXlsaXN0fX0iLCAie3subWFwcGluZy50YWJsZS5ncm91cFRpdGxlfX0iLCAie3subWFwcGluZy50YWJsZS54bWx0dkZpbGV9fSIsICJ7ey5tYXBwaW5nLnRhYmxlLnhtbHR2SUR9fSIsICJ7ey5tYXBwaW5nLnRhYmxlLnRpbWVzaGlmdH19Il07DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIH0NCiAgICAgICAgLy9jb25zb2xlLmxvZyh0aGlzLm1lbnVLZXksIHRoaXMudGFibGVIZWFkZXIpOw0KICAgIH0NCn0NCmNsYXNzIENvbnRlbnQgew0KICAgIGNvbnN0cnVjdG9yKCkgew0KICAgICAgICB0aGlzLkRvY3VtZW50SUQgPSAiY29udGVudCI7DQogICAgICAgIHRoaXMuVGFibGVJRCA9ICJjb250ZW50X3RhYmxlIjsNCiAgICAgICAgdGhpcy5oZWFkZXJDbGFzcyA9ICJjb250ZW50X3RhYmxlX2hlYWRlciI7DQogICAgICAgIHRoaXMuaW50ZXJhY3Rpb25JRCA9ICJjb250ZW50LWludGVyYWN0aW9uIjsNCiAgICB9DQogICAgY3JlYXRlSGVhZGxpbmUodmFsdWUpIHsNCiAgICAgICAgbGV0IGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJIMyIpOw0KICAgICAgICBlbGVtZW50LmlubmVySFRNTCA9IHZhbHVlOw0KICAgICAgICByZXR1cm4gZWxlbWVudDsNCiAgICB9DQogICAgY3JlYXRlSFIoKSB7DQogICAgICAgIHJldHVybiBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJIUiIpOw0KICAgIH0NCiAgICBjcmVhdGVJbnRlcmFjdGlvbigpIHsNCiAgICAgICAgbGV0IGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJESVYiKTsNCiAgICAgICAgZWxlbWVudC5zZXRBdHRyaWJ1dGUoImlkIiwgdGhpcy5pbnRlcmFjdGlvbklEKTsNCiAgICAgICAgcmV0dXJuIGVsZW1lbnQ7DQogICAgfQ0KICAgIGNyZWF0ZURJVigpIHsNCiAgICAgICAgbGV0IGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJESVYiKTsNCiAgICAgICAgZWxlbWVudC5pZCA9IHRoaXMuRGl2SUQ7DQogICAgICAgIHJldHVybiBlbGVtZW50Ow0KICAgIH0NCiAgICBjcmVhdGVUQUJMRSgpIHsNCiAgICAgICAgbGV0IGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJUQUJMRSIpOw0KICAgICAgICBlbGVtZW50LmlkID0gdGhpcy5UYWJsZUlEOw0KICAgICAgICByZXR1cm4gZWxlbWVudDsNCiAgICB9DQogICAgY3JlYXRlVGFibGVSb3coKSB7DQogICAgICAgIGxldCBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVFIiKTsNCiAgICAgICAgZWxlbWVudC5jbGFzc05hbWUgPSB0aGlzLmhlYWRlckNsYXNzOw0KICAgICAgICByZXR1cm4gZWxlbWVudDsNCiAgICB9DQogICAgY3JlYXRlVGFibGVDb250ZW50KG1lbnVLZXkpIHsNCiAgICAgICAgbGV0IGRhdGEgPSB7fTsNCiAgICAgICAgbGV0IHJvd3MgPSBbXTsNCiAgICAgICAgbGV0IGZpbGVUeXBlcyA9IFtdOw0KICAgICAgICBzd2l0Y2ggKG1lbnVLZXkpIHsNCiAgICAgICAgICAgIGNhc2UgInBsYXlsaXN0IjoNCiAgICAgICAgICAgICAgICBmaWxlVHlwZXMgPSBbIm0zdSIsICJoZGhyIl07DQogICAgICAgICAgICAgICAgZmlsZVR5cGVzLmZvckVhY2goZmlsZVR5cGUgPT4gew0KICAgICAgICAgICAgICAgICAgICBkYXRhID0gU0VSVkVSWyJzZXR0aW5ncyJdWyJmaWxlcyJdW2ZpbGVUeXBlXTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGtleXMgPSBnZXRPd25PYmpQcm9wcyhkYXRhKTsNCiAgICAgICAgICAgICAgICAgICAga2V5cy5mb3JFYWNoKGtleSA9PiB7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgdHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJUUiIpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuaWQgPSBrZXk7DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCInICsgZmlsZVR5cGUgKyAnIiwgdGhpcyknKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJuYW1lIl07DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgaWYgKFNFUlZFUlsic2V0dGluZ3MiXVsiYnVmZmVyIl0gIT0gIi0iKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsidHVuZXIiXTsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSAiLSI7DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsibGFzdC51cGRhdGUiXTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJwcm92aWRlci5hdmFpbGFiaWxpdHkiXTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJ0eXBlIl0udG9VcHBlckNhc2UoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJjb21wYXRpYmlsaXR5Il1bInN0cmVhbXMiXTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJjb21wYXRpYmlsaXR5Il1bImdyb3VwLnRpdGxlIl07DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsiY29tcGF0aWJpbGl0eSJdWyJ0dmcuaWQiXTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJjb21wYXRpYmlsaXR5Il1bInN0cmVhbS5pZCJdOw0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgcm93cy5wdXNoKHRyKTsNCiAgICAgICAgICAgICAgICAgICAgfSk7DQogICAgICAgICAgICAgICAgfSk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJmaWx0ZXIiOg0KICAgICAgICAgICAgICAgIGRlbGV0ZSBTRVJWRVJbInNldHRpbmdzIl1bImZpbHRlciJdWy0xXTsNCiAgICAgICAgICAgICAgICBkYXRhID0gU0VSVkVSWyJzZXR0aW5ncyJdWyJmaWx0ZXIiXTsNCiAgICAgICAgICAgICAgICB2YXIga2V5cyA9IGdldE93bk9ialByb3BzKGRhdGEpOw0KICAgICAgICAgICAgICAgIGtleXMuZm9yRWFjaChrZXkgPT4gew0KICAgICAgICAgICAgICAgICAgICB2YXIgdHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJUUiIpOw0KICAgICAgICAgICAgICAgICAgICB0ci5pZCA9IGtleTsNCiAgICAgICAgICAgICAgICAgICAgdHIuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgiJyArIGRhdGFba2V5XVsidHlwZSJdICsgJyIsIHRoaXMpJyk7DQogICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJzdGFydGluZ0NoYW5uZWwiXTsNCiAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsibmFtZSJdOw0KICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICBzd2l0Y2ggKGRhdGFba2V5XVsidHlwZSJdKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBjYXNlICJjdXN0b20tZmlsdGVyIjoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gInt7LmZpbHRlci5jdXN0b219fSI7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgICAgICAgICBjYXNlICJncm91cC10aXRsZSI6DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9ICJ7ey5maWx0ZXIuZ3JvdXB9fSI7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgICAgICAgICBkZWZhdWx0Og0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bImZpbHRlciJdOw0KICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgIHJvd3MucHVzaCh0cik7DQogICAgICAgICAgICAgICAgfSk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ4bWx0diI6DQogICAgICAgICAgICAgICAgZmlsZVR5cGVzID0gbmV3IEFycmF5KCJ4bWx0diIpOw0KICAgICAgICAgICAgICAgIGZpbGVUeXBlcy5mb3JFYWNoKGZpbGVUeXBlID0+IHsNCiAgICAgICAgICAgICAgICAgICAgZGF0YSA9IFNFUlZFUlsic2V0dGluZ3MiXVsiZmlsZXMiXVtmaWxlVHlwZV07DQogICAgICAgICAgICAgICAgICAgIHZhciBrZXlzID0gZ2V0T3duT2JqUHJvcHMoZGF0YSk7DQogICAgICAgICAgICAgICAgICAgIGtleXMuZm9yRWFjaChrZXkgPT4gew0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVFIiKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmlkID0ga2V5Ow0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgiJyArIGZpbGVUeXBlICsgJyIsIHRoaXMpJyk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsibmFtZSJdOw0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bImxhc3QudXBkYXRlIl07DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsicHJvdmlkZXIuYXZhaWxhYmlsaXR5Il07DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsiY29tcGF0aWJpbGl0eSJdWyJ4bWx0di5jaGFubmVscyJdOw0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bImNvbXBhdGliaWxpdHkiXVsieG1sdHYucHJvZ3JhbXMiXTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHJvd3MucHVzaCh0cik7DQogICAgICAgICAgICAgICAgICAgIH0pOw0KICAgICAgICAgICAgICAgIH0pOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAidXNlcnMiOg0KICAgICAgICAgICAgICAgIGZpbGVUeXBlcyA9IG5ldyBBcnJheSgidXNlcnMiKTsNCiAgICAgICAgICAgICAgICBmaWxlVHlwZXMuZm9yRWFjaChmaWxlVHlwZSA9PiB7DQogICAgICAgICAgICAgICAgICAgIGRhdGEgPSBTRVJWRVJbZmlsZVR5cGVdOw0KICAgICAgICAgICAgICAgICAgICB2YXIga2V5cyA9IGdldE93bk9ialByb3BzKGRhdGEpOw0KICAgICAgICAgICAgICAgICAgICBrZXlzLmZvckVhY2goa2V5ID0+IHsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciB0ciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlRSIik7DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5pZCA9IGtleTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoIicgKyBmaWxlVHlwZSArICciLCB0aGlzKScpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bImRhdGEiXVsidXNlcm5hbWUiXTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gIioqKioqKiI7DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGRhdGFba2V5XVsiZGF0YSJdWyJhdXRoZW50aWNhdGlvbi53ZWIiXSA9PSB0cnVlKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9ICLinJMiOw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9ICItIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgICAgICBpZiAoZGF0YVtrZXldWyJkYXRhIl1bImF1dGhlbnRpY2F0aW9uLnBtcyJdID09IHRydWUpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gIuKckyI7DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gIi0iOw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChkYXRhW2tleV1bImRhdGEiXVsiYXV0aGVudGljYXRpb24ubTN1Il0gPT0gdHJ1ZSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSAi4pyTIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSAiLSI7DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGRhdGFba2V5XVsiZGF0YSJdWyJhdXRoZW50aWNhdGlvbi54bWwiXSA9PSB0cnVlKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9ICLinJMiOw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9ICItIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgICAgICBpZiAoZGF0YVtrZXldWyJkYXRhIl1bImF1dGhlbnRpY2F0aW9uLmFwaSJdID09IHRydWUpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gIuKckyI7DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gIi0iOw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgcm93cy5wdXNoKHRyKTsNCiAgICAgICAgICAgICAgICAgICAgfSk7DQogICAgICAgICAgICAgICAgfSk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJtYXBwaW5nIjoNCiAgICAgICAgICAgICAgICBCVUxLX0VESVQgPSBmYWxzZTsNCiAgICAgICAgICAgICAgICBjcmVhdGVTZWFyY2hPYmooKTsNCiAgICAgICAgICAgICAgICBjaGVja1VuZG8oImVwZ01hcHBpbmciKTsNCiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZygiTUFQUElORyIpOw0KICAgICAgICAgICAgICAgIGRhdGEgPSBTRVJWRVJbInhlcGciXVsiZXBnTWFwcGluZyJdOw0KICAgICAgICAgICAgICAgIHZhciBrZXlzID0gZ2V0T3duT2JqUHJvcHMoZGF0YSk7DQogICAgICAgICAgICAgICAga2V5cy5mb3JFYWNoKGtleSA9PiB7DQogICAgICAgICAgICAgICAgICAgIHZhciB0ciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlRSIik7DQogICAgICAgICAgICAgICAgICAgIHRyLmlkID0ga2V5Ow0KICAgICAgICAgICAgICAgICAgICAvL3RyLnNldEF0dHJpYnV0ZSgnb25jb250ZXh0bWVudScsICdqYXZhc2NyaXB0OiByaWdodENsaWNrKHRoaXMpJykNCiAgICAgICAgICAgICAgICAgICAgc3dpdGNoIChkYXRhW2tleV1bIngtYWN0aXZlIl0pIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgdHJ1ZToNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ci5jbGFzc05hbWUgPSAiYWN0aXZlRVBHIjsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgZmFsc2U6DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgdHIuY2xhc3NOYW1lID0gIm5vdEFjdGl2ZUVQRyI7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgLy8gQnVsaw0KICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJCVUxLIjsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGZhbHNlOw0KICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgIC8vIENoYW5uZWwgbnVtYmVyDQogICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIklOUFVUQ0hBTk5FTCI7DQogICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bIngtY2hhbm5lbElEIl07DQogICAgICAgICAgICAgICAgICAgIC8vdGQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IGNoYW5nZUNoYW5uZWxOdW1iZXIoIicgKyBrZXkgKyAnIiwgdGhpcyknKQ0KICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgIC8vIExvZ28NCiAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiSU1HIjsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5pbWFnZVVSTCA9IGRhdGFba2V5XVsidHZnLWxvZ28iXTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHRkID0gY2VsbC5jcmVhdGVDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgIHRkLnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoIm1hcHBpbmciLCB0aGlzKScpOw0KICAgICAgICAgICAgICAgICAgICB0ZC5pZCA9IGtleTsNCiAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQodGQpOw0KICAgICAgICAgICAgICAgICAgICAvLyBDaGFubmVsIG5hbWUNCiAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2xhc3NOYW1lID0gZGF0YVtrZXldWyJ4LWNhdGVnb3J5Il07DQogICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bIngtbmFtZSJdOw0KICAgICAgICAgICAgICAgICAgICB2YXIgdGQgPSBjZWxsLmNyZWF0ZUNlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgdGQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgibWFwcGluZyIsIHRoaXMpJyk7DQogICAgICAgICAgICAgICAgICAgIHRkLmlkID0ga2V5Ow0KICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZCh0ZCk7DQogICAgICAgICAgICAgICAgICAgIC8vIFBsYXlsaXN0DQogICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAvL2NlbGwudmFsdWUgPSBkYXRhW2tleV1bIl9maWxlLm0zdS5uYW1lIl0gDQogICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBnZXRWYWx1ZUZyb21Qcm92aWRlckZpbGUoZGF0YVtrZXldWyJfZmlsZS5tM3UuaWQiXSwgIm0zdSIsICJuYW1lIik7DQogICAgICAgICAgICAgICAgICAgIHZhciB0ZCA9IGNlbGwuY3JlYXRlQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICB0ZC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJtYXBwaW5nIiwgdGhpcyknKTsNCiAgICAgICAgICAgICAgICAgICAgdGQuaWQgPSBrZXk7DQogICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKHRkKTsNCiAgICAgICAgICAgICAgICAgICAgLy8gR3JvdXAgKGdyb3VwLXRpdGxlKQ0KICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsieC1ncm91cC10aXRsZSJdOw0KICAgICAgICAgICAgICAgICAgICB2YXIgdGQgPSBjZWxsLmNyZWF0ZUNlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgdGQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgibWFwcGluZyIsIHRoaXMpJyk7DQogICAgICAgICAgICAgICAgICAgIHRkLmlkID0ga2V5Ow0KICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZCh0ZCk7DQogICAgICAgICAgICAgICAgICAgIC8vIFhNTFRWIGZpbGUNCiAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgIGlmIChkYXRhW2tleV1bIngteG1sdHYtZmlsZSJdICE9ICItIikgew0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGdldFZhbHVlRnJvbVByb3ZpZGVyRmlsZShkYXRhW2tleV1bIngteG1sdHYtZmlsZSJdLCAieG1sdHYiLCAibmFtZSIpOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsieC14bWx0di1maWxlIl07DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgdmFyIHRkID0gY2VsbC5jcmVhdGVDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgIHRkLnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoIm1hcHBpbmciLCB0aGlzKScpOw0KICAgICAgICAgICAgICAgICAgICB0ZC5pZCA9IGtleTsNCiAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQodGQpOw0KICAgICAgICAgICAgICAgICAgICAvLyBYTUxUViBDaGFubmVsDQogICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAvL3ZhciB2YWx1ZSA9IHN0ci5zdWJzdHJpbmcoMSwgNCk7DQogICAgICAgICAgICAgICAgICAgIHZhciB2YWx1ZSA9IGRhdGFba2V5XVsieC1tYXBwaW5nIl07DQogICAgICAgICAgICAgICAgICAgIGlmICh2YWx1ZS5sZW5ndGggPiAyMCkgew0KICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSBkYXRhW2tleV1bIngtbWFwcGluZyJdLnN1YnN0cmluZygwLCAyMCkgKyAiLi4uIjsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gdmFsdWU7DQogICAgICAgICAgICAgICAgICAgIHZhciB0ZCA9IGNlbGwuY3JlYXRlQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICB0ZC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJtYXBwaW5nIiwgdGhpcyknKTsNCiAgICAgICAgICAgICAgICAgICAgdGQuaWQgPSBrZXk7DQogICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKHRkKTsNCiAgICAgICAgICAgICAgICAgICAgLy8gVGltZVNoaWZ0DQogICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJ4LXRpbWVzaGlmdCJdOw0KICAgICAgICAgICAgICAgICAgICB2YXIgdGQgPSBjZWxsLmNyZWF0ZUNlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgdGQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgibWFwcGluZyIsIHRoaXMpJyk7DQogICAgICAgICAgICAgICAgICAgIHRkLmlkID0ga2V5Ow0KICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZCh0ZCk7DQogICAgICAgICAgICAgICAgICAgIHJvd3MucHVzaCh0cik7DQogICAgICAgICAgICAgICAgfSk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJzZXR0aW5ncyI6DQogICAgICAgICAgICAgICAgYWxlcnQoKTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICAgICAgY29uc29sZS5sb2coIlRhYmxlIGNvbnRlbnQgKG1lbnVLZXkpOiIsIG1lbnVLZXkpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICB9DQogICAgICAgIHJldHVybiByb3dzOw0KICAgIH0NCn0NCmNsYXNzIENlbGwgew0KICAgIGNyZWF0ZUNlbGwoKSB7DQogICAgICAgIGxldCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgIGlmICh0aGlzLmNoaWxkID09IHRydWUpIHsNCiAgICAgICAgICAgIHZhciBlbGVtZW50Ow0KICAgICAgICAgICAgc3dpdGNoICh0aGlzLmNoaWxkVHlwZSkgew0KICAgICAgICAgICAgICAgIGNhc2UgIlAiOg0KICAgICAgICAgICAgICAgICAgICBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCh0aGlzLmNoaWxkVHlwZSk7DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQuaW5uZXJIVE1MID0gdGhpcy52YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC5jbGFzc05hbWUgPSB0aGlzLmNsYXNzTmFtZTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAiSU5QVVQiOg0KICAgICAgICAgICAgICAgICAgICBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCh0aGlzLmNoaWxkVHlwZSk7DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQudmFsdWUgPSB0aGlzLnZhbHVlOw0KICAgICAgICAgICAgICAgICAgICBlbGVtZW50LnR5cGUgPSAidGV4dCI7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgIklOUFVUQ0hBTk5FTCI6DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJJTlBVVCIpOw0KICAgICAgICAgICAgICAgICAgICBlbGVtZW50LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2c2NyaXB0OiBjaGFuZ2VDaGFubmVsTnVtYmVyKHRoaXMpIik7DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQudmFsdWUgPSB0aGlzLnZhbHVlOw0KICAgICAgICAgICAgICAgICAgICBlbGVtZW50LnR5cGUgPSAidGV4dCI7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgIkJVTEsiOg0KICAgICAgICAgICAgICAgICAgICBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiSU5QVVQiKTsNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC5jaGVja2VkID0gdGhpcy52YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC50eXBlID0gImNoZWNrYm94IjsNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC5jbGFzc05hbWUgPSAiYnVsayBoaWRlQnVsayI7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgIkJVTEtfSEVBRCI6DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJJTlBVVCIpOw0KICAgICAgICAgICAgICAgICAgICBlbGVtZW50LmNoZWNrZWQgPSB0aGlzLnZhbHVlOw0KICAgICAgICAgICAgICAgICAgICBlbGVtZW50LnR5cGUgPSAiY2hlY2tib3giOw0KICAgICAgICAgICAgICAgICAgICBlbGVtZW50LmNsYXNzTmFtZSA9ICJidWxrIGhpZGVCdWxrIjsNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAiamF2YXNjcmlwdDogc2VsZWN0QWxsQ2hhbm5lbHMoKSIpOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBjYXNlICJJTUciOg0KICAgICAgICAgICAgICAgICAgICBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCh0aGlzLmNoaWxkVHlwZSk7DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQuc2V0QXR0cmlidXRlKCJzcmMiLCB0aGlzLmltYWdlVVJMKTsNCiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuaW1hZ2VVUkwgIT0gIiIpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGVsZW1lbnQuc2V0QXR0cmlidXRlKCJvbmVycm9yIiwgImphdmFzY3JpcHQ6IHRoaXMub25lcnJvcj1udWxsO3RoaXMuc3JjPScnIik7DQogICAgICAgICAgICAgICAgICAgICAgICAvL29uZXJyb3I9InRoaXMub25lcnJvcj1udWxsO3RoaXMuc3JjPSdtaXNzaW5nLmdpZic7Ig0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9DQogICAgICAgICAgICB0ZC5hcHBlbmRDaGlsZChlbGVtZW50KTsNCiAgICAgICAgfQ0KICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgIHRkLmlubmVySFRNTCA9IHRoaXMudmFsdWU7DQogICAgICAgIH0NCiAgICAgICAgaWYgKHRoaXMub25jbGljayA9PSB0cnVlKSB7DQogICAgICAgICAgICB0ZC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCB0aGlzLm9uY2xpY2tGdW5jdGlvbik7DQogICAgICAgICAgICB0ZC5jbGFzc05hbWUgPSAicG9pbnRlciI7DQogICAgICAgIH0NCiAgICAgICAgaWYgKHRoaXMudGRDbGFzc05hbWUgIT0gdW5kZWZpbmVkKSB7DQogICAgICAgICAgICB0ZC5jbGFzc05hbWUgPSB0aGlzLnRkQ2xhc3NOYW1lOw0KICAgICAgICB9DQogICAgICAgIHJldHVybiB0ZDsNCiAgICB9DQp9DQpjbGFzcyBTaG93Q29udGVudCBleHRlbmRzIENvbnRlbnQgew0KICAgIGNvbnN0cnVjdG9yKG1lbnVJRCkgew0KICAgICAgICBzdXBlcigpOw0KICAgICAgICB0aGlzLm1lbnVJRCA9IG1lbnVJRDsNCiAgICB9DQogICAgY3JlYXRlSW5wdXQodHlwZSwgbmFtZSwgdmFsdWUpIHsNCiAgICAgICAgbGV0IGlucHV0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiSU5QVVQiKTsNCiAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJ0eXBlIiwgdHlwZSk7DQogICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgibmFtZSIsIG5hbWUpOw0KICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInZhbHVlIiwgdmFsdWUpOw0KICAgICAgICByZXR1cm4gaW5wdXQ7DQogICAgfQ0KICAgIHNob3coKSB7DQogICAgICAgIENPTFVNTl9UT19TT1JUID0gLTE7DQogICAgICAgIC8vIERlbGV0ZSBvbGQgY29udGVudA0KICAgICAgICBsZXQgZG9jID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQodGhpcy5Eb2N1bWVudElEKTsNCiAgICAgICAgZG9jLmlubmVySFRNTCA9ICIiOw0KICAgICAgICBzaG93UHJldmlldyhmYWxzZSk7DQogICAgICAgIC8vIEhlYWRsaW5lDQogICAgICAgIGxldCBoZWFkbGluZSA9IG1lbnVJdGVtc1t0aGlzLm1lbnVJRF0uaGVhZGxpbmU7DQogICAgICAgIGxldCBtZW51S2V5ID0gbWVudUl0ZW1zW3RoaXMubWVudUlEXS5tZW51S2V5Ow0KICAgICAgICBsZXQgaCA9IHRoaXMuY3JlYXRlSGVhZGxpbmUoaGVhZGxpbmUpOw0KICAgICAgICBkb2MuYXBwZW5kQ2hpbGQoaCk7DQogICAgICAgIGxldCBociA9IHRoaXMuY3JlYXRlSFIoKTsNCiAgICAgICAgZG9jLmFwcGVuZENoaWxkKGhyKTsNCiAgICAgICAgLy8gSW50ZXJhY3Rpb24NCiAgICAgICAgbGV0IGRpdiA9IHRoaXMuY3JlYXRlSW50ZXJhY3Rpb24oKTsNCiAgICAgICAgZG9jLmFwcGVuZENoaWxkKGRpdik7DQogICAgICAgIGxldCBpbnRlcmFjdGlvbiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHRoaXMuaW50ZXJhY3Rpb25JRCk7DQogICAgICAgIHN3aXRjaCAobWVudUtleSkgew0KICAgICAgICAgICAgY2FzZSAicGxheWxpc3QiOg0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IHRoaXMuY3JlYXRlSW5wdXQoImJ1dHRvbiIsIG1lbnVLZXksICJ7ey5idXR0b24ubmV3fX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoImlkIiwgIi0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJwbGF5bGlzdCIpJyk7DQogICAgICAgICAgICAgICAgaW50ZXJhY3Rpb24uYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiZmlsdGVyIjoNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSB0aGlzLmNyZWF0ZUlucHV0KCJidXR0b24iLCBtZW51S2V5LCAie3suYnV0dG9uLm5ld319Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJpZCIsIC0xKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJmaWx0ZXIiLCB0aGlzKScpOw0KICAgICAgICAgICAgICAgIGludGVyYWN0aW9uLmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInhtbHR2IjoNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSB0aGlzLmNyZWF0ZUlucHV0KCJidXR0b24iLCBtZW51S2V5LCAie3suYnV0dG9uLm5ld319Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJpZCIsICJ4bWx0diIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoInhtbHR2IiknKTsNCiAgICAgICAgICAgICAgICBpbnRlcmFjdGlvbi5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ1c2VycyI6DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gdGhpcy5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgbWVudUtleSwgInt7LmJ1dHRvbi5uZXd9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgiaWQiLCAidXNlcnMiKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJ1c2VycyIpJyk7DQogICAgICAgICAgICAgICAgaW50ZXJhY3Rpb24uYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAibWFwcGluZyI6DQogICAgICAgICAgICAgICAgc2hvd0VsZW1lbnQoImxvYWRpbmciLCB0cnVlKTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSB0aGlzLmNyZWF0ZUlucHV0KCJidXR0b24iLCBtZW51S2V5LCAie3suYnV0dG9uLnNhdmV9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBzYXZlUG9wdXBEYXRhKCJtYXBwaW5nIiwgIiIsICIiKScpOw0KICAgICAgICAgICAgICAgIGludGVyYWN0aW9uLmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSB0aGlzLmNyZWF0ZUlucHV0KCJidXR0b24iLCBtZW51S2V5LCAie3suYnV0dG9uLmJ1bGtFZGl0fX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogYnVsa0VkaXQoKScpOw0KICAgICAgICAgICAgICAgIGludGVyYWN0aW9uLmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSB0aGlzLmNyZWF0ZUlucHV0KCJzZWFyY2giLCAic2VhcmNoIiwgIiIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgiaWQiLCAic2VhcmNoTWFwcGluZyIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3suYnV0dG9uLnNlYXJjaH19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuY2xhc3NOYW1lID0gInNlYXJjaCI7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICdqYXZhc2NyaXB0OiBzZWFyY2hJbk1hcHBpbmcoKScpOw0KICAgICAgICAgICAgICAgIGludGVyYWN0aW9uLmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInNldHRpbmdzIjoNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSB0aGlzLmNyZWF0ZUlucHV0KCJidXR0b24iLCBtZW51S2V5LCAie3suYnV0dG9uLnNhdmV9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBzYXZlU2V0dGluZ3MoKTsnKTsNCiAgICAgICAgICAgICAgICBpbnRlcmFjdGlvbi5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gdGhpcy5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgbWVudUtleSwgInt7LmJ1dHRvbi5iYWNrdXB9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBiYWNrdXAoKTsnKTsNCiAgICAgICAgICAgICAgICBpbnRlcmFjdGlvbi5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gdGhpcy5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgbWVudUtleSwgInt7LmJ1dHRvbi5yZXN0b3JlfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogcmVzdG9yZSgpOycpOw0KICAgICAgICAgICAgICAgIGludGVyYWN0aW9uLmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICB2YXIgd3JhcHBlciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIkRJViIpOw0KICAgICAgICAgICAgICAgIHdyYXBwZXIuc2V0QXR0cmlidXRlKCJpZCIsICJib3gtd3JhcHBlciIpOw0KICAgICAgICAgICAgICAgIGRvYy5hcHBlbmRDaGlsZCh3cmFwcGVyKTsNCiAgICAgICAgICAgICAgICB0aGlzLkRpdklEID0gImNvbnRlbnRfc2V0dGluZ3MiOw0KICAgICAgICAgICAgICAgIHZhciBzZXR0aW5ncyA9IHRoaXMuY3JlYXRlRElWKCk7DQogICAgICAgICAgICAgICAgd3JhcHBlci5hcHBlbmRDaGlsZChzZXR0aW5ncyk7DQogICAgICAgICAgICAgICAgc2hvd1NldHRpbmdzKCk7DQogICAgICAgICAgICAgICAgcmV0dXJuOw0KICAgICAgICAgICAgY2FzZSAibG9nIjoNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSB0aGlzLmNyZWF0ZUlucHV0KCJidXR0b24iLCBtZW51S2V5LCAie3suYnV0dG9uLnJlc2V0TG9nc319Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IHJlc2V0TG9ncygpOycpOw0KICAgICAgICAgICAgICAgIGludGVyYWN0aW9uLmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICB2YXIgd3JhcHBlciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIkRJViIpOw0KICAgICAgICAgICAgICAgIHdyYXBwZXIuc2V0QXR0cmlidXRlKCJpZCIsICJib3gtd3JhcHBlciIpOw0KICAgICAgICAgICAgICAgIGRvYy5hcHBlbmRDaGlsZCh3cmFwcGVyKTsNCiAgICAgICAgICAgICAgICB0aGlzLkRpdklEID0gImNvbnRlbnRfbG9nIjsNCiAgICAgICAgICAgICAgICB2YXIgbG9ncyA9IHRoaXMuY3JlYXRlRElWKCk7DQogICAgICAgICAgICAgICAgd3JhcHBlci5hcHBlbmRDaGlsZChsb2dzKTsNCiAgICAgICAgICAgICAgICBzaG93TG9ncyh0cnVlKTsNCiAgICAgICAgICAgICAgICByZXR1cm47DQogICAgICAgICAgICBjYXNlICJsb2dvdXQiOg0KICAgICAgICAgICAgICAgIGxvY2F0aW9uLnJlbG9hZCgpOw0KICAgICAgICAgICAgICAgIGRvY3VtZW50LmNvb2tpZSA9ICJUb2tlbj0gOyBleHBpcmVzID0gVGh1LCAwMSBKYW4gMTk3MCAwMDowMDowMCBHTVQiOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZygiU2hvdyBjb250ZW50IChtZW51S2V5KToiLCBtZW51S2V5KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgfQ0KICAgICAgICAvLyBDcmVhdGUgdGFibGUgKGlmIG5lZWRlZCkNCiAgICAgICAgdmFyIHRhYmxlSGVhZGVyID0gbWVudUl0ZW1zW3RoaXMubWVudUlEXS50YWJsZUhlYWRlcjsNCiAgICAgICAgaWYgKHRhYmxlSGVhZGVyLmxlbmd0aCA+IDApIHsNCiAgICAgICAgICAgIHZhciB3cmFwcGVyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiRElWIik7DQogICAgICAgICAgICBkb2MuYXBwZW5kQ2hpbGQod3JhcHBlcik7DQogICAgICAgICAgICB3cmFwcGVyLnNldEF0dHJpYnV0ZSgiaWQiLCAiYm94LXdyYXBwZXIiKTsNCiAgICAgICAgICAgIHZhciB0YWJsZSA9IHRoaXMuY3JlYXRlVEFCTEUoKTsNCiAgICAgICAgICAgIHdyYXBwZXIuYXBwZW5kQ2hpbGQodGFibGUpOw0KICAgICAgICAgICAgdmFyIGhlYWRlciA9IHRoaXMuY3JlYXRlVGFibGVSb3coKTsNCiAgICAgICAgICAgIHRhYmxlLmFwcGVuZENoaWxkKGhlYWRlcik7DQogICAgICAgICAgICAvLyBUYWJsZSBoZWFkZXINCiAgICAgICAgICAgIHRhYmxlSGVhZGVyLmZvckVhY2goZWxlbWVudCA9PiB7DQogICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBlbGVtZW50Ow0KICAgICAgICAgICAgICAgIGlmIChlbGVtZW50ID09ICJCVUxLIikgew0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJCVUxLX0hFQUQiOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZmFsc2U7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIGlmIChtZW51S2V5ID09ICJtYXBwaW5nIikgew0KICAgICAgICAgICAgICAgICAgICBpZiAoZWxlbWVudCA9PSAie3subWFwcGluZy50YWJsZS5jaE5vfX0iKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLm9uY2xpY2sgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5vbmNsaWNrRnVuY3Rpb24gPSAiamF2YXNjcmlwdDogc29ydFRhYmxlKDEpOyI7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnRkQ2xhc3NOYW1lID0gInNvcnRUaGlzIjsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBpZiAoZWxlbWVudCA9PSAie3subWFwcGluZy50YWJsZS5jaGFubmVsTmFtZX19Iikgew0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5vbmNsaWNrID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwub25jbGlja0Z1bmN0aW9uID0gImphdmFzY3JpcHQ6IHNvcnRUYWJsZSgzKTsiOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIGlmIChlbGVtZW50ID09ICJ7ey5tYXBwaW5nLnRhYmxlLnBsYXlsaXN0fX0iKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLm9uY2xpY2sgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5vbmNsaWNrRnVuY3Rpb24gPSAiamF2YXNjcmlwdDogc29ydFRhYmxlKDQpOyI7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgaWYgKGVsZW1lbnQgPT0gInt7Lm1hcHBpbmcudGFibGUuZ3JvdXBUaXRsZX19Iikgew0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5vbmNsaWNrID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwub25jbGlja0Z1bmN0aW9uID0gImphdmFzY3JpcHQ6IHNvcnRUYWJsZSg1KTsiOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIGlmIChlbGVtZW50ID09ICJ7ey5tYXBwaW5nLnRhYmxlLnRpbWVzaGlmdH19Iikgew0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5vbmNsaWNrID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwub25jbGlja0Z1bmN0aW9uID0gImphdmFzY3JpcHQ6IHNvcnRUYWJsZSg4KTsiOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIGlmIChtZW51S2V5ID09ICJmaWx0ZXIiKSB7DQogICAgICAgICAgICAgICAgICAgIGlmIChlbGVtZW50ID09ICJ7ey5maWx0ZXIudGFibGUuc3RhcnRpbmdDaGFubmVsfX0iKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLm9uY2xpY2sgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5vbmNsaWNrRnVuY3Rpb24gPSAiamF2YXNjcmlwdDogc29ydFRhYmxlKDApOyI7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnRkQ2xhc3NOYW1lID0gInNvcnRUaGlzIjsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBpZiAoZWxlbWVudCA9PSAie3suZmlsdGVyLnRhYmxlLm5hbWV9fSIpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwub25jbGljayA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLm9uY2xpY2tGdW5jdGlvbiA9ICJqYXZhc2NyaXB0OiBzb3J0VGFibGUoMSk7IjsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBpZiAoZWxlbWVudCA9PSAie3suZmlsdGVyLnRhYmxlLnR5cGV9fSIpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwub25jbGljayA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLm9uY2xpY2tGdW5jdGlvbiA9ICJqYXZhc2NyaXB0OiBzb3J0VGFibGUoMik7IjsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBpZiAoZWxlbWVudCA9PSAie3suZmlsdGVyLnRhYmxlLmZpbHRlcn19Iikgew0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5vbmNsaWNrID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwub25jbGlja0Z1bmN0aW9uID0gImphdmFzY3JpcHQ6IHNvcnRUYWJsZSgzKTsiOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIGhlYWRlci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICB9KTsNCiAgICAgICAgICAgIHRhYmxlLmFwcGVuZENoaWxkKGhlYWRlcik7DQogICAgICAgICAgICAvLyBDb250ZW50IG9mIHRoZSB0YWJsZQ0KICAgICAgICAgICAgdmFyIHJvd3MgPSB0aGlzLmNyZWF0ZVRhYmxlQ29udGVudChtZW51S2V5KTsNCiAgICAgICAgICAgIHJvd3MuZm9yRWFjaCh0ciA9PiB7DQogICAgICAgICAgICAgICAgdGFibGUuYXBwZW5kQ2hpbGQodHIpOw0KICAgICAgICAgICAgfSk7DQogICAgICAgIH0NCiAgICAgICAgc3dpdGNoIChtZW51S2V5KSB7DQogICAgICAgICAgICBjYXNlICJtYXBwaW5nIjoNCiAgICAgICAgICAgICAgICBzb3J0VGFibGUoMSk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJmaWx0ZXIiOg0KICAgICAgICAgICAgICAgIHNob3dQcmV2aWV3KHRydWUpOw0KICAgICAgICAgICAgICAgIHNvcnRUYWJsZSgwKTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICAgICAgQ09MVU1OX1RPX1NPUlQgPSAtMTsNCiAgICAgICAgICAgICAgICBzb3J0VGFibGUoMCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIH0NCiAgICAgICAgc2hvd0VsZW1lbnQoImxvYWRpbmciLCBmYWxzZSk7DQogICAgfQ0KfQ0KZnVuY3Rpb24gUGFnZVJlYWR5KCkgew0KICAgIGxldCBzZXJ2ZXIgPSBuZXcgU2VydmVyKCJnZXRTZXJ2ZXJDb25maWciKTsNCiAgICBzZXJ2ZXIucmVxdWVzdCh7fSk7DQogICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoInJlc2l6ZSIsIGZ1bmN0aW9uICgpIHsNCiAgICAgICAgY2FsY3VsYXRlV3JhcHBlckhlaWdodCgpOw0KICAgIH0sIHRydWUpOw0KICAgIHNldEludGVydmFsKGZ1bmN0aW9uICgpIHsNCiAgICAgICAgdXBkYXRlTG9nKCk7DQogICAgfSwgMTAwMDApOw0KICAgIHJldHVybjsNCn0NCmZ1bmN0aW9uIGNyZWF0ZUxheW91dCgpIHsNCiAgICAvLyBDbGllbnQgSW5mbw0KICAgIGxldCBvYmogPSBTRVJWRVJbImNsaWVudEluZm8iXTsNCiAgICBsZXQga2V5cyA9IGdldE93bk9ialByb3BzKG9iaik7DQogICAgZm9yICh2YXIgaSA9IDA7IGkgPCBrZXlzLmxlbmd0aDsgaSsrKSB7DQogICAgICAgIGlmIChkb2N1bWVudC5nZXRFbGVtZW50QnlJZChrZXlzW2ldKSkgew0KICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoa2V5c1tpXSkuaW5uZXJIVE1MID0gb2JqW2tleXNbaV1dOw0KICAgICAgICB9DQogICAgfQ0KICAgIGlmICghZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm1haW4tbWVudSIpKSB7DQogICAgICAgIHJldHVybjsNCiAgICB9DQogICAgLy8gQ3JlYXRlIG1lbnUNCiAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibWFpbi1tZW51IikuaW5uZXJIVE1MID0gIiI7DQogICAgZm9yIChsZXQgaSA9IDA7IGkgPCBtZW51SXRlbXMubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgbWVudUl0ZW1zW2ldLmlkID0gaTsNCiAgICAgICAgc3dpdGNoIChtZW51SXRlbXNbaV1bIm1lbnVLZXkiXSkgew0KICAgICAgICAgICAgY2FzZSAidXNlcnMiOg0KICAgICAgICAgICAgY2FzZSAibG9nb3V0IjoNCiAgICAgICAgICAgICAgICBpZiAoU0VSVkVSWyJzZXR0aW5ncyJdWyJhdXRoZW50aWNhdGlvbi53ZWIiXSA9PSB0cnVlKSB7DQogICAgICAgICAgICAgICAgICAgIG1lbnVJdGVtc1tpXS5jcmVhdGVJdGVtKCk7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAibWFwcGluZyI6DQogICAgICAgICAgICBjYXNlICJ4bWx0diI6DQogICAgICAgICAgICAgICAgaWYgKFNFUlZFUlsiY2xpZW50SW5mbyJdWyJlcGdTb3VyY2UiXSA9PSAiWEVQRyIpIHsNCiAgICAgICAgICAgICAgICAgICAgbWVudUl0ZW1zW2ldLmNyZWF0ZUl0ZW0oKTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBkZWZhdWx0Og0KICAgICAgICAgICAgICAgIG1lbnVJdGVtc1tpXS5jcmVhdGVJdGVtKCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIH0NCiAgICB9DQogICAgcmV0dXJuOw0KfQ0KZnVuY3Rpb24gb3BlblRoaXNNZW51KGVsZW1lbnQpIHsNCiAgICBsZXQgaWQgPSBlbGVtZW50LmlkOw0KICAgIGxldCBjb250ZW50ID0gbmV3IFNob3dDb250ZW50KGlkKTsNCiAgICBjb250ZW50LnNob3coKTsNCiAgICBjYWxjdWxhdGVXcmFwcGVySGVpZ2h0KCk7DQogICAgcmV0dXJuOw0KfQ0KY2xhc3MgUG9wdXBXaW5kb3cgew0KICAgIGNvbnN0cnVjdG9yKCkgew0KICAgICAgICB0aGlzLkRvY3VtZW50SUQgPSAicG9wdXAtY3VzdG9tIjsNCiAgICAgICAgdGhpcy5JbnRlcmFjdGlvbklEID0gImludGVyYWN0aW9uIjsNCiAgICAgICAgdGhpcy5kb2MgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCh0aGlzLkRvY3VtZW50SUQpOw0KICAgIH0NCiAgICBjcmVhdGVUaXRsZSh0aXRsZSkgew0KICAgICAgICBsZXQgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICB0ZC5jbGFzc05hbWUgPSAibGVmdCI7DQogICAgICAgIHRkLmlubmVySFRNTCA9IHRpdGxlICsgIjoiOw0KICAgICAgICByZXR1cm4gdGQ7DQogICAgfQ0KICAgIGNyZWF0ZUNvbnRlbnQoZWxlbWVudCkgew0KICAgICAgICBsZXQgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICB0ZC5hcHBlbmRDaGlsZChlbGVtZW50KTsNCiAgICAgICAgcmV0dXJuIHRkOw0KICAgIH0NCiAgICBjcmVhdGVJbnRlcmFjdGlvbigpIHsNCiAgICAgICAgbGV0IGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOw0KICAgICAgICBkaXYuc2V0QXR0cmlidXRlKCJpZCIsICJwb3B1cC1pbnRlcmFjdGlvbiIpOw0KICAgICAgICBkaXYuY2xhc3NOYW1lID0gImludGVyYWN0aW9uIjsNCiAgICAgICAgdGhpcy5kb2MuYXBwZW5kQ2hpbGQoZGl2KTsNCiAgICB9DQp9DQpjbGFzcyBQb3B1cENvbnRlbnQgZXh0ZW5kcyBQb3B1cFdpbmRvdyB7DQogICAgY29uc3RydWN0b3IoKSB7DQogICAgICAgIHN1cGVyKC4uLmFyZ3VtZW50cyk7DQogICAgICAgIHRoaXMudGFibGUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJUQUJMRSIpOw0KICAgIH0NCiAgICBjcmVhdGVIZWFkbGluZShoZWFkbGluZSkgew0KICAgICAgICB0aGlzLmRvYy5pbm5lckhUTUwgPSAiIjsNCiAgICAgICAgdmFyIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJIMyIpOw0KICAgICAgICBlbGVtZW50LmlubmVySFRNTCA9IGhlYWRsaW5lLnRvVXBwZXJDYXNlKCk7DQogICAgICAgIHRoaXMuZG9jLmFwcGVuZENoaWxkKGVsZW1lbnQpOw0KICAgICAgICAvLyBDcmVhdGUgdGFibGUNCiAgICAgICAgdGhpcy50YWJsZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlRBQkxFIik7DQogICAgICAgIHRoaXMuZG9jLmFwcGVuZENoaWxkKHRoaXMudGFibGUpOw0KICAgIH0NCiAgICBhcHBlbmRSb3codGl0bGUsIGVsZW1lbnQpIHsNCiAgICAgICAgbGV0IHRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVFIiKTsNCiAgICAgICAgLy8gVGl0bGUNCiAgICAgICAgaWYgKHRpdGxlLmxlbmd0aCAhPSAwKSB7DQogICAgICAgICAgICB0ci5hcHBlbmRDaGlsZCh0aGlzLmNyZWF0ZVRpdGxlKHRpdGxlKSk7DQogICAgICAgIH0NCiAgICAgICAgLy8gQ29udGVudA0KICAgICAgICB0ci5hcHBlbmRDaGlsZCh0aGlzLmNyZWF0ZUNvbnRlbnQoZWxlbWVudCkpOw0KICAgICAgICB0aGlzLnRhYmxlLmFwcGVuZENoaWxkKHRyKTsNCiAgICB9DQogICAgY3JlYXRlSW5wdXQodHlwZSwgbmFtZSwgdmFsdWUpIHsNCiAgICAgICAgbGV0IGlucHV0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiSU5QVVQiKTsNCiAgICAgICAgaWYgKHZhbHVlID09IHVuZGVmaW5lZCkgew0KICAgICAgICAgICAgdmFsdWUgPSAiIjsNCiAgICAgICAgfQ0KICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInR5cGUiLCB0eXBlKTsNCiAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJuYW1lIiwgbmFtZSk7DQogICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgidmFsdWUiLCB2YWx1ZSk7DQogICAgICAgIHJldHVybiBpbnB1dDsNCiAgICB9DQogICAgY3JlYXRlQ2hlY2tib3gobmFtZSkgew0KICAgICAgICBsZXQgaW5wdXQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJJTlBVVCIpOw0KICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInR5cGUiLCAiY2hlY2tib3giKTsNCiAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJuYW1lIiwgbmFtZSk7DQogICAgICAgIHJldHVybiBpbnB1dDsNCiAgICB9DQogICAgLy8gQ3JlYXRlcyBhIHNlbGVjdGlvbiBvZiBtdWx0aXBsZSBvcHRpb25zIHZhbHVlcyB3aXRoIHRleHQgZGVzY3JpcHRpb25zDQogICAgY3JlYXRlU2VsZWN0KHRleHQsIHZhbHVlcywgc2V0LCBkYktleSkgew0KICAgICAgICBsZXQgc2VsZWN0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiU0VMRUNUIik7DQogICAgICAgIHNlbGVjdC5zZXRBdHRyaWJ1dGUoIm5hbWUiLCBkYktleSk7DQogICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGV4dC5sZW5ndGg7IGkrKykgew0KICAgICAgICAgICAgbGV0IG9wdGlvbiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIk9QVElPTiIpOw0KICAgICAgICAgICAgb3B0aW9uLnNldEF0dHJpYnV0ZSgidmFsdWUiLCB2YWx1ZXNbaV0pOw0KICAgICAgICAgICAgb3B0aW9uLmlubmVyVGV4dCA9IHRleHRbaV07DQogICAgICAgICAgICBzZWxlY3QuYXBwZW5kQ2hpbGQob3B0aW9uKTsNCiAgICAgICAgfQ0KICAgICAgICBpZiAoc2V0ICE9ICIiKSB7DQogICAgICAgICAgICBzZWxlY3QudmFsdWUgPSBzZXQ7DQogICAgICAgIH0NCiAgICAgICAgaWYgKHNldCA9PSB1bmRlZmluZWQpIHsNCiAgICAgICAgICAgIHNlbGVjdC52YWx1ZSA9IHZhbHVlc1swXTsNCiAgICAgICAgfQ0KICAgICAgICByZXR1cm4gc2VsZWN0Ow0KICAgIH0NCiAgICBzZWxlY3RPcHRpb24oc2VsZWN0LCB2YWx1ZSkgew0KICAgICAgICAvL3NlbGVjdC5zZWxlY3RlZE9wdGlvbnMgPSB2YWx1ZQ0KICAgICAgICBsZXQgcyA9IHNlbGVjdDsNCiAgICAgICAgcy5vcHRpb25zW3Muc2VsZWN0ZWRJbmRleF0udmFsdWUgPSB2YWx1ZTsNCiAgICAgICAgcmV0dXJuIHNlbGVjdDsNCiAgICB9DQogICAgZGVzY3JpcHRpb24odmFsdWUpIHsNCiAgICAgICAgbGV0IHRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVFIiKTsNCiAgICAgICAgbGV0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgbGV0IHNwYW4gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJQUkUiKTsNCiAgICAgICAgc3Bhbi5pbm5lckhUTUwgPSB2YWx1ZTsNCiAgICAgICAgdHIuYXBwZW5kQ2hpbGQodGQpOw0KICAgICAgICB0ci5hcHBlbmRDaGlsZCh0aGlzLmNyZWF0ZUNvbnRlbnQoc3BhbikpOw0KICAgICAgICB0aGlzLnRhYmxlLmFwcGVuZENoaWxkKHRyKTsNCiAgICB9DQogICAgLy8gSW50ZXJhY3Rpb24NCiAgICBhZGRJbnRlcmFjdGlvbihlbGVtZW50KSB7DQogICAgICAgIGxldCBpbnRlcmFjdGlvbiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJwb3B1cC1pbnRlcmFjdGlvbiIpOw0KICAgICAgICBpbnRlcmFjdGlvbi5hcHBlbmRDaGlsZChlbGVtZW50KTsNCiAgICB9DQp9DQpmdW5jdGlvbiBvcGVuUG9wVXAoZGF0YVR5cGUsIGVsZW1lbnQpIHsNCiAgICBsZXQgZGF0YSA9IHt9Ow0KICAgIGxldCBpZDsNCiAgICBzd2l0Y2ggKGVsZW1lbnQpIHsNCiAgICAgICAgY2FzZSB1bmRlZmluZWQ6DQogICAgICAgICAgICBzd2l0Y2ggKGRhdGFUeXBlKSB7DQogICAgICAgICAgICAgICAgY2FzZSAiZ3JvdXAtdGl0bGUiOg0KICAgICAgICAgICAgICAgICAgICBpZiAoaWQgPT0gdW5kZWZpbmVkKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBpZCA9IC0xOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIGRhdGEgPSBnZXRMb2NhbERhdGEoImZpbHRlciIsIGlkKTsNCiAgICAgICAgICAgICAgICAgICAgZGF0YVsidHlwZSJdID0gImdyb3VwLXRpdGxlIjsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAiY3VzdG9tLWZpbHRlciI6DQogICAgICAgICAgICAgICAgICAgIGlmIChpZCA9PSB1bmRlZmluZWQpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGlkID0gLTE7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgZGF0YSA9IGdldExvY2FsRGF0YSgiZmlsdGVyIiwgaWQpOw0KICAgICAgICAgICAgICAgICAgICBkYXRhWyJ0eXBlIl0gPSAiY3VzdG9tLWZpbHRlciI7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICAgICAgICAgIGRhdGFbImlkLnByb3ZpZGVyIl0gPSAiLSI7DQogICAgICAgICAgICAgICAgICAgIGRhdGFbInR5cGUiXSA9IGRhdGFUeXBlOw0KICAgICAgICAgICAgICAgICAgICBpZCA9ICItIjsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgIGlkID0gZWxlbWVudC5pZDsNCiAgICAgICAgICAgIGRhdGEgPSBnZXRMb2NhbERhdGEoZGF0YVR5cGUsIGlkKTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgIH0NCiAgICBsZXQgY29udGVudCA9IG5ldyBQb3B1cENvbnRlbnQoKTsNCiAgICBzd2l0Y2ggKGRhdGFUeXBlKSB7DQogICAgICAgIGNhc2UgInBsYXlsaXN0IjoNCiAgICAgICAgICAgIGNvbnRlbnQuY3JlYXRlSGVhZGxpbmUoInt7LnBsYXlsaXN0LnBsYXlsaXN0VHlwZS50aXRsZX19Iik7DQogICAgICAgICAgICAvLyBUeXBlDQogICAgICAgICAgICB2YXIgdGV4dCA9IFsiTTNVIiwgIkhESG9tZVJ1biJdOw0KICAgICAgICAgICAgdmFyIHZhbHVlcyA9IFsiamF2YXNjcmlwdDogb3BlblBvcFVwKCdtM3UnKSIsICJqYXZhc2NyaXB0OiBvcGVuUG9wVXAoJ2hkaHInKSJdOw0KICAgICAgICAgICAgdmFyIHNlbGVjdCA9IGNvbnRlbnQuY3JlYXRlU2VsZWN0KHRleHQsIHZhbHVlcywgIiIsICJ0eXBlIik7DQogICAgICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJpZCIsICJ0eXBlIik7DQogICAgICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICdqYXZhc2NyaXB0OiBjaGFuZ2VCdXR0b25BY3Rpb24odGhpcywgIm5leHQiLCAib25jbGljayIpJyk7IC8vIGNoYW5nZUJ1dHRvbkFjdGlvbg0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnBsYXlsaXN0LnR5cGUudGl0bGV9fSIsIHNlbGVjdCk7DQogICAgICAgICAgICAvLyBJbnRlcmFjdGlvbg0KICAgICAgICAgICAgY29udGVudC5jcmVhdGVJbnRlcmFjdGlvbigpOw0KICAgICAgICAgICAgLy8gQWJvcnQNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJjYW5jZWwiLCAie3suYnV0dG9uLmNhbmNlbH19Iik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogc2hvd0VsZW1lbnQoInBvcHVwIiwgZmFsc2UpOycpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICAvLyBOZXh0DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAibmV4dCIsICJ7ey5idXR0b24ubmV4dH19Iik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJtM3UiKScpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJpZCIsICduZXh0Jyk7DQogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJtM3UiOg0KICAgICAgICAgICAgY29udGVudC5jcmVhdGVIZWFkbGluZShkYXRhVHlwZSk7DQogICAgICAgICAgICAvLyBOYW1lDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAibmFtZSI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3sucGxheWxpc3QubmFtZS5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sucGxheWxpc3QubmFtZS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgLy8gRGVzY3JpcHRpb24NCiAgICAgICAgICAgIHZhciBkYktleSA9ICJkZXNjcmlwdGlvbiI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3sucGxheWxpc3QuZGVzY3JpcHRpb24ucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnBsYXlsaXN0LmRlc2NyaXB0aW9uLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBVUkwNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJmaWxlLnNvdXJjZSI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3sucGxheWxpc3QuZmlsZU0zVS5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sucGxheWxpc3QuZmlsZU0zVS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgLy8gVHVuZXINCiAgICAgICAgICAgIGlmIChTRVJWRVJbInNldHRpbmdzIl1bImJ1ZmZlciJdICE9ICItIikgew0KICAgICAgICAgICAgICAgIHZhciB0ZXh0ID0gW107DQogICAgICAgICAgICAgICAgdmFyIHZhbHVlcyA9IFtdOw0KICAgICAgICAgICAgICAgIGZvciAodmFyIGkgPSAxOyBpIDw9IDEwMDsgaSsrKSB7DQogICAgICAgICAgICAgICAgICAgIHRleHQucHVzaChpLnRvU3RyaW5nKCkpOw0KICAgICAgICAgICAgICAgICAgICB2YWx1ZXMucHVzaChpLnRvU3RyaW5nKCkpOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB2YXIgZGJLZXkgPSAidHVuZXIiOw0KICAgICAgICAgICAgICAgIHZhciBzZWxlY3QgPSBjb250ZW50LmNyZWF0ZVNlbGVjdCh0ZXh0LCB2YWx1ZXMsIGRhdGFbZGJLZXldLCBkYktleSk7DQogICAgICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25mb2N1cyIsICJqYXZhc2NyaXB0OiByZXR1cm47Iik7DQogICAgICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnBsYXlsaXN0LnR1bmVyLnRpdGxlfX0iLCBzZWxlY3QpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgZWxzZSB7DQogICAgICAgICAgICAgICAgdmFyIGRiS2V5ID0gInR1bmVyIjsNCiAgICAgICAgICAgICAgICBpZiAoZGF0YVtkYktleV0gPT0gdW5kZWZpbmVkKSB7DQogICAgICAgICAgICAgICAgICAgIGRhdGFbZGJLZXldID0gMTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJyZWFkb25seSIsICJ0cnVlIik7DQogICAgICAgICAgICAgICAgaW5wdXQuY2xhc3NOYW1lID0gIm5vdEF2YWlsYWJsZSI7DQogICAgICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnBsYXlsaXN0LnR1bmVyLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBjb250ZW50LmRlc2NyaXB0aW9uKCJ7ey5wbGF5bGlzdC50dW5lci5kZXNjcmlwdGlvbn19Iik7DQogICAgICAgICAgICAvLyBJbnRlcmF0aW9uDQogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUludGVyYWN0aW9uKCk7DQogICAgICAgICAgICAvLyBEZWxldGUNCiAgICAgICAgICAgIGlmIChkYXRhWyJpZC5wcm92aWRlciJdICE9ICItIikgew0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJkZWxldGUiLCAie3suYnV0dG9uLmRlbGV0ZX19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuY2xhc3NOYW1lID0gImRlbGV0ZSI7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoIm0zdSIsICInICsgaWQgKyAnIiwgdHJ1ZSwgMCknKTsNCiAgICAgICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJiYWNrIiwgInt7LmJ1dHRvbi5iYWNrfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJwbGF5bGlzdCIpJyk7DQogICAgICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICAvLyBBYm9ydA0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImNhbmNlbCIsICJ7ey5idXR0b24uY2FuY2VsfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBzaG93RWxlbWVudCgicG9wdXAiLCBmYWxzZSk7Jyk7DQogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIC8vIFVwZGF0ZQ0KICAgICAgICAgICAgaWYgKGRhdGFbImlkLnByb3ZpZGVyIl0gIT0gIi0iKSB7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgInVwZGF0ZSIsICJ7ey5idXR0b24udXBkYXRlfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogc2F2ZVBvcHVwRGF0YSgibTN1IiwgIicgKyBpZCArICciLCBmYWxzZSwgMSknKTsNCiAgICAgICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIC8vIFNhdmUNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJzYXZlIiwgInt7LmJ1dHRvbi5zYXZlfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBzYXZlUG9wdXBEYXRhKCJtM3UiLCAiJyArIGlkICsgJyIsIGZhbHNlLCAwKScpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSAiaGRociI6DQogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUhlYWRsaW5lKGRhdGFUeXBlKTsNCiAgICAgICAgICAgIC8vIE5hbWUNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJuYW1lIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5wbGF5bGlzdC5uYW1lLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5wbGF5bGlzdC5uYW1lLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBEZXNjcmlwdGlvbg0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gImRlc2NyaXB0aW9uIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5wbGF5bGlzdC5kZXNjcmlwdGlvbi5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sucGxheWxpc3QuZGVzY3JpcHRpb24ucGxhY2Vob2xkZXJ9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIFVSTA0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gImZpbGUuc291cmNlIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5wbGF5bGlzdC5maWxlSERIUi5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sucGxheWxpc3QuZmlsZUhESFIudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIFR1bmVyDQogICAgICAgICAgICBpZiAoU0VSVkVSWyJzZXR0aW5ncyJdWyJidWZmZXIiXSAhPSAiLSIpIHsNCiAgICAgICAgICAgICAgICB2YXIgdGV4dCA9IFtdOw0KICAgICAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBbXTsNCiAgICAgICAgICAgICAgICBmb3IgKHZhciBpID0gMTsgaSA8PSAxMDA7IGkrKykgew0KICAgICAgICAgICAgICAgICAgICB0ZXh0LnB1c2goaS50b1N0cmluZygpKTsNCiAgICAgICAgICAgICAgICAgICAgdmFsdWVzLnB1c2goaS50b1N0cmluZygpKTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgdmFyIGRiS2V5ID0gInR1bmVyIjsNCiAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCBkYXRhW2RiS2V5XSwgZGJLZXkpOw0KICAgICAgICAgICAgICAgIHNlbGVjdC5zZXRBdHRyaWJ1dGUoIm9uZm9jdXMiLCAiamF2YXNjcmlwdDogcmV0dXJuOyIpOw0KICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5wbGF5bGlzdC50dW5lci50aXRsZX19Iiwgc2VsZWN0KTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgICAgIHZhciBkYktleSA9ICJ0dW5lciI7DQogICAgICAgICAgICAgICAgaWYgKGRhdGFbZGJLZXldID09IHVuZGVmaW5lZCkgew0KICAgICAgICAgICAgICAgICAgICBkYXRhW2RiS2V5XSA9IDE7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicmVhZG9ubHkiLCAidHJ1ZSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LmNsYXNzTmFtZSA9ICJub3RBdmFpbGFibGUiOw0KICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5wbGF5bGlzdC50dW5lci50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgY29udGVudC5kZXNjcmlwdGlvbigie3sucGxheWxpc3QudHVuZXIuZGVzY3JpcHRpb259fSIpOw0KICAgICAgICAgICAgLy8gSW50ZXJhY3Rpb24NCiAgICAgICAgICAgIGNvbnRlbnQuY3JlYXRlSW50ZXJhY3Rpb24oKTsNCiAgICAgICAgICAgIC8vIERlbGV0ZQ0KICAgICAgICAgICAgaWYgKGRhdGFbImlkLnByb3ZpZGVyIl0gIT0gIi0iKSB7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImRlbGV0ZSIsICJ7ey5idXR0b24uZGVsZXRlfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogc2F2ZVBvcHVwRGF0YSgiaGRociIsICInICsgaWQgKyAnIiwgdHJ1ZSwgMCknKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5jbGFzc05hbWUgPSAiZGVsZXRlIjsNCiAgICAgICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJiYWNrIiwgInt7LmJ1dHRvbi5iYWNrfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJwbGF5bGlzdCIpJyk7DQogICAgICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICAvLyBBYm9ydA0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImNhbmNlbCIsICJ7ey5idXR0b24uY2FuY2VsfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBzaG93RWxlbWVudCgicG9wdXAiLCBmYWxzZSk7Jyk7DQogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIC8vIFVwZGF0ZQ0KICAgICAgICAgICAgaWYgKGRhdGFbImlkLnByb3ZpZGVyIl0gIT0gIi0iKSB7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgInVwZGF0ZSIsICJ7ey5idXR0b24udXBkYXRlfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogc2F2ZVBvcHVwRGF0YSgiaGRociIsICInICsgaWQgKyAnIiwgZmFsc2UsIDEpJyk7DQogICAgICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICAvLyBTYXZlDQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAic2F2ZSIsICJ7ey5idXR0b24uc2F2ZX19Iik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogc2F2ZVBvcHVwRGF0YSgiaGRociIsICInICsgaWQgKyAnIiwgZmFsc2UsIDApJyk7DQogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJmaWx0ZXIiOg0KICAgICAgICAgICAgY29udGVudC5jcmVhdGVIZWFkbGluZShkYXRhVHlwZSk7DQogICAgICAgICAgICAvLyBUeXBlDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAidHlwZSI7DQogICAgICAgICAgICB2YXIgdGV4dCA9IFsiTTNVOiAiICsgInt7LmZpbHRlci50eXBlLmdyb3VwVGl0bGV9fSIsICJ4VGVWZTogIiArICJ7ey5maWx0ZXIudHlwZS5jdXN0b21GaWx0ZXJ9fSJdOw0KICAgICAgICAgICAgdmFyIHZhbHVlcyA9IFsiamF2YXNjcmlwdDogb3BlblBvcFVwKCdncm91cC10aXRsZScpIiwgImphdmFzY3JpcHQ6IG9wZW5Qb3BVcCgnY3VzdG9tLWZpbHRlcicpIl07DQogICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCAiamF2YXNjcmlwdDogb3BlblBvcFVwKCdncm91cC10aXRsZScpIiwgZGJLZXkpOw0KICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgiaWQiLCBpZCk7DQogICAgICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICdqYXZhc2NyaXB0OiBjaGFuZ2VCdXR0b25BY3Rpb24odGhpcywgIm5leHQiLCAib25jbGljayIpOycpOyAvLyBjaGFuZ2VCdXR0b25BY3Rpb24NCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5maWx0ZXIudHlwZS50aXRsZX19Iiwgc2VsZWN0KTsNCiAgICAgICAgICAgIC8vIEludGVyYWN0aW9uDQogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUludGVyYWN0aW9uKCk7DQogICAgICAgICAgICAvLyBBYm9ydA0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImNhbmNlbCIsICJ7ey5idXR0b24uY2FuY2VsfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBzaG93RWxlbWVudCgicG9wdXAiLCBmYWxzZSk7Jyk7DQogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIC8vIE5leHQNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJuZXh0IiwgInt7LmJ1dHRvbi5uZXh0fX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoImdyb3VwLXRpdGxlIiknKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgiaWQiLCAnbmV4dCcpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSAiY3VzdG9tLWZpbHRlciI6DQogICAgICAgIGNhc2UgImdyb3VwLXRpdGxlIjoNCiAgICAgICAgICAgIHN3aXRjaCAoZGF0YVR5cGUpIHsNCiAgICAgICAgICAgICAgICBjYXNlICJjdXN0b20tZmlsdGVyIjoNCiAgICAgICAgICAgICAgICAgICAgY29udGVudC5jcmVhdGVIZWFkbGluZSgie3suZmlsdGVyLmN1c3RvbX19IiArICIgRmlsdGVyIik7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgImdyb3VwLXRpdGxlIjoNCiAgICAgICAgICAgICAgICAgICAgY29udGVudC5jcmVhdGVIZWFkbGluZSgie3suZmlsdGVyLmdyb3VwfX0iICsgIiBGaWx0ZXIiKTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICB9DQogICAgICAgICAgICAvLyBOYW1lICAgICAgDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAibmFtZSI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3suZmlsdGVyLm5hbWUucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LmZpbHRlci5uYW1lLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBEZXNjcmlwdGlvbg0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gImRlc2NyaXB0aW9uIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5maWx0ZXIuZGVzY3JpcHRpb24ucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LmZpbHRlci5kZXNjcmlwdGlvbi50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgLy8gVHlwZQ0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gInR5cGUiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiaGlkZGVuIiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCIiLCBpbnB1dCk7DQogICAgICAgICAgICB2YXIgZmlsdGVyVHlwZSA9IGRhdGFbZGJLZXldOw0KICAgICAgICAgICAgc3dpdGNoIChmaWx0ZXJUeXBlKSB7DQogICAgICAgICAgICAgICAgY2FzZSAiY3VzdG9tLWZpbHRlciI6DQogICAgICAgICAgICAgICAgICAgIC8vIENhc2Ugc2Vuc2l0aXZlDQogICAgICAgICAgICAgICAgICAgIHZhciBkYktleSA9ICJjYXNlU2Vuc2l0aXZlIjsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChkYktleSk7DQogICAgICAgICAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhW2RiS2V5XTsNCiAgICAgICAgICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LmZpbHRlci5jYXNlU2Vuc2l0aXZlLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAgICAgICAgIC8vIEZpbHRlciBSdWxlIChDdXN0b20pDQogICAgICAgICAgICAgICAgICAgIHZhciBkYktleSA9ICJmaWx0ZXIiOw0KICAgICAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5maWx0ZXIuZmlsdGVyUnVsZS5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5maWx0ZXIuZmlsdGVyUnVsZS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBjYXNlICJncm91cC10aXRsZSI6DQogICAgICAgICAgICAgICAgICAgIC8vYWxlcnQoZGJLZXkgKyAiICIgKyBmaWx0ZXJUeXBlKQ0KICAgICAgICAgICAgICAgICAgICAvLyBGaWx0ZXIgYmFzZWQgb24gdGhlIGdyb3VwcyBpbiB0aGUgTTNVDQogICAgICAgICAgICAgICAgICAgIHZhciBkYktleSA9ICJmaWx0ZXIiOw0KICAgICAgICAgICAgICAgICAgICB2YXIgZ3JvdXBzTTNVID0gZ2V0TG9jYWxEYXRhKCJtM3VHcm91cHMiLCAiIik7DQogICAgICAgICAgICAgICAgICAgIHZhciB0ZXh0ID0gZ3JvdXBzTTNVWyJ0ZXh0Il07DQogICAgICAgICAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBncm91cHNNM1VbInZhbHVlIl07DQogICAgICAgICAgICAgICAgICAgIHZhciBzZWxlY3QgPSBjb250ZW50LmNyZWF0ZVNlbGVjdCh0ZXh0LCB2YWx1ZXMsIGRhdGFbZGJLZXldLCBkYktleSk7DQogICAgICAgICAgICAgICAgICAgIHNlbGVjdC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5maWx0ZXIuZmlsdGVyR3JvdXAudGl0bGV9fSIsIHNlbGVjdCk7DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuZGVzY3JpcHRpb24oInt7LmZpbHRlci5maWx0ZXJHcm91cC5kZXNjcmlwdGlvbn19Iik7DQogICAgICAgICAgICAgICAgICAgIC8vIENhc2Ugc2Vuc2V0aXZlDQogICAgICAgICAgICAgICAgICAgIHZhciBkYktleSA9ICJjYXNlU2Vuc2l0aXZlIjsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChkYktleSk7DQogICAgICAgICAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhW2RiS2V5XTsNCiAgICAgICAgICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LmZpbHRlci5jYXNlU2Vuc2l0aXZlLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAgICAgICAgIHZhciBkYktleSA9ICJpbmNsdWRlIjsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3suZmlsdGVyLmluY2x1ZGUucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3suZmlsdGVyLmluY2x1ZGUudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgICAgICAgICAgY29udGVudC5kZXNjcmlwdGlvbigie3suZmlsdGVyLmluY2x1ZGUuZGVzY3JpcHRpb259fSIpOw0KICAgICAgICAgICAgICAgICAgICB2YXIgZGJLZXkgPSAiZXhjbHVkZSI7DQogICAgICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LmZpbHRlci5leGNsdWRlLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LmZpbHRlci5leGNsdWRlLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuZGVzY3JpcHRpb24oInt7LmZpbHRlci5leGNsdWRlLmRlc2NyaXB0aW9ufX0iKTsNCiAgICAgICAgICAgICAgICAgICAgLy8gUHJlc2VydmUgTTNVIFBsYXlsaXN0IENoYW5uZWwgTWFwcGluZw0KICAgICAgICAgICAgICAgICAgICB2YXIgZGJLZXkgPSAicHJlc2VydmVNYXBwaW5nIjsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChkYktleSk7DQogICAgICAgICAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhW2RiS2V5XTsNCiAgICAgICAgICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LmZpbHRlci5wcmVzZXJ2ZU1hcHBpbmcudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgICAgICAgICAgLy8gU3RhcnRpbmcgQ2hhbm5lbCBOdW1iZXIgTWFwcGluZw0KICAgICAgICAgICAgICAgICAgICB2YXIgZGJLZXkgPSAic3RhcnRpbmdDaGFubmVsIjsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3suZmlsdGVyLnN0YXJ0aW5nQ2hhbm5lbC5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5maWx0ZXIuc3RhcnRpbmdDaGFubmVsLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAgICAgICAgIC8vIEZpbGwgTWlzc2luZyBFUEcgRGF0YQ0KICAgICAgICAgICAgICAgICAgICAvLyBUaGUgZm9sbG93aW5nIGNvZGUgb25seSB3b3JrcyB3aGVuIHhUZVZlIER1bW15IGFscmVhZHkgZXhpc3RzDQogICAgICAgICAgICAgICAgICAgIC8vIHZhciBkYktleTpzdHJpbmcgPSAiZGVmYXVsdE1pc3NpbmdFUEciDQogICAgICAgICAgICAgICAgICAgIC8vIHZhciB4bWx0djpYTUxUVkZpbGUgPSBuZXcgWE1MVFZGaWxlKCkNCiAgICAgICAgICAgICAgICAgICAgLy8gdmFyIHNlbGVjdCA9IHhtbHR2LmdldFByb2dyYW1zKCJ4VGVWZSBEdW1teSIsIGRhdGFbZGJLZXldKQ0KICAgICAgICAgICAgICAgICAgICAvLyBzZWxlY3Quc2V0QXR0cmlidXRlKCJuYW1lIiwgZGJLZXkpDQogICAgICAgICAgICAgICAgICAgIC8vIHNlbGVjdC5zZXRBdHRyaWJ1dGUoImlkIiwgInBvcHVwLW1pc3NpbmctZXBnIikNCiAgICAgICAgICAgICAgICAgICAgLy8gVGhlIHdvcmthcm91bmQgaXMgY3VycmVudGx5IHRvIGhhcmQgY29kZSB0aGUgeFRlVmUgRHVtbXkgZGF0YQ0KICAgICAgICAgICAgICAgICAgICB2YXIgZGJLZXkgPSAiZGVmYXVsdE1pc3NpbmdFUEciOw0KICAgICAgICAgICAgICAgICAgICB2YXIgbGlzdE9wdGlvbnMgPSB7ICJ0ZXh0IjogWyItIiwgIjMwIE1pbnV0ZXMgKDMwX01pbnV0ZXMpIiwgIjYwIE1pbnV0ZXMgKDYwX01pbnV0ZXMpIiwgIjkwIE1pbnV0ZXMgKDkwX01pbnV0ZXMpIiwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAiMTIwIE1pbnV0ZXMgKDEyMF9NaW51dGVzKSIsICIxODAgTWludXRlcyAoMzBfTWludXRlcykiLCAiMjQwIE1pbnV0ZXMgKDMwX01pbnV0ZXMpIiwgIjM2MCBNaW51dGVzICgzMF9NaW51dGVzKSJdLA0KICAgICAgICAgICAgICAgICAgICAgICAgInZhbHVlIjogWyItIiwgIjMwX01pbnV0ZXMiLCAiNjBfTWludXRlcyIsICI5MF9NaW51dGVzIiwgIjEyMF9NaW51dGVzIiwgIjE4MF9NaW51dGVzIiwgIjI0MF9NaW51dGVzIiwgIjM2MF9NaW51dGVzIixdIH07DQogICAgICAgICAgICAgICAgICAgIHZhciB0ZXh0ID0gbGlzdE9wdGlvbnNbInRleHQiXTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHZhbHVlcyA9IGxpc3RPcHRpb25zWyJ2YWx1ZSJdOw0KICAgICAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCBkYXRhW2RiS2V5XSwgZGJLZXkpOw0KICAgICAgICAgICAgICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3suZmlsdGVyLmRlZmF1bHRNaXNzaW5nRVBHLnRpdGxlfX0iLCBzZWxlY3QpOw0KICAgICAgICAgICAgICAgICAgICBjb250ZW50LmRlc2NyaXB0aW9uKCJ7ey5maWx0ZXIuZGVmYXVsdE1pc3NpbmdFUEcuZGVzY3JpcHRpb259fSIpOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBkZWZhdWx0Og0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIC8vIEludGVyYWN0aW9uDQogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUludGVyYWN0aW9uKCk7DQogICAgICAgICAgICAvLyBEZWxldGUNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJkZWxldGUiLCAie3suYnV0dG9uLmRlbGV0ZX19Iik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogc2F2ZVBvcHVwRGF0YSgiZmlsdGVyIiwgIicgKyBpZCArICciLCB0cnVlLCAwKScpOw0KICAgICAgICAgICAgaW5wdXQuY2xhc3NOYW1lID0gImRlbGV0ZSI7DQogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIC8vIEFib3J0DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAiY2FuY2VsIiwgInt7LmJ1dHRvbi5jYW5jZWx9fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IHNob3dFbGVtZW50KCJwb3B1cCIsIGZhbHNlKTsnKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgLy8gU2F2ZQ0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgInNhdmUiLCAie3suYnV0dG9uLnNhdmV9fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoImZpbHRlciIsICInICsgaWQgKyAnIiwgZmFsc2UsIDApJyk7DQogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJ4bWx0diI6DQogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUhlYWRsaW5lKGRhdGFUeXBlKTsNCiAgICAgICAgICAgIC8vIE5hbWUNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJuYW1lIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey54bWx0di5uYW1lLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey54bWx0di5uYW1lLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBEZXNjcmlwdGlvbg0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gImRlc2NyaXB0aW9uIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey54bWx0di5kZXNjcmlwdGlvbi5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sueG1sdHYuZGVzY3JpcHRpb24udGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIFVSTA0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gImZpbGUuc291cmNlIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey54bWx0di5maWxlWE1MVFYucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnhtbHR2LmZpbGVYTUxUVi50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgLy8gSW50ZXJhY3Rpb24NCiAgICAgICAgICAgIGNvbnRlbnQuY3JlYXRlSW50ZXJhY3Rpb24oKTsNCiAgICAgICAgICAgIC8vIERlbGV0ZQ0KICAgICAgICAgICAgaWYgKGRhdGFbImlkLnByb3ZpZGVyIl0gIT0gIi0iKSB7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImRlbGV0ZSIsICJ7ey5idXR0b24uZGVsZXRlfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogc2F2ZVBvcHVwRGF0YSgieG1sdHYiLCAiJyArIGlkICsgJyIsIHRydWUsIDApJyk7DQogICAgICAgICAgICAgICAgaW5wdXQuY2xhc3NOYW1lID0gImRlbGV0ZSI7DQogICAgICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICAvLyBBYm9ydA0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImNhbmNlbCIsICJ7ey5idXR0b24uY2FuY2VsfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBzaG93RWxlbWVudCgicG9wdXAiLCBmYWxzZSk7Jyk7DQogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIC8vIFVwZGF0ZQ0KICAgICAgICAgICAgaWYgKGRhdGFbImlkLnByb3ZpZGVyIl0gIT0gIi0iKSB7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgInVwZGF0ZSIsICJ7ey5idXR0b24udXBkYXRlfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogc2F2ZVBvcHVwRGF0YSgieG1sdHYiLCAiJyArIGlkICsgJyIsIGZhbHNlLCAxKScpOw0KICAgICAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgLy8gU2F2ZQ0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgInNhdmUiLCAie3suYnV0dG9uLnNhdmV9fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoInhtbHR2IiwgIicgKyBpZCArICciLCBmYWxzZSwgMCknKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGNhc2UgInVzZXJzIjoNCiAgICAgICAgICAgIGNvbnRlbnQuY3JlYXRlSGVhZGxpbmUoInt7Lm1haW5NZW51Lml0ZW0udXNlcnN9fSIpOw0KICAgICAgICAgICAgLy8gVXNlciBuYW1lDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAidXNlcm5hbWUiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnVzZXJzLnVzZXJuYW1lLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey51c2Vycy51c2VybmFtZS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgLy8gTmV3IFBhcnNzd29yZA0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gInBhc3N3b3JkIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInBhc3N3b3JkIiwgZGJLZXksICIiKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3sudXNlcnMucGFzc3dvcmQucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnVzZXJzLnBhc3N3b3JkLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBDb25maXJtYXRpb24NCiAgICAgICAgICAgIHZhciBkYktleSA9ICJjb25maXJtIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInBhc3N3b3JkIiwgZGJLZXksICIiKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3sudXNlcnMuY29uZmlybS5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sudXNlcnMuY29uZmlybS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgLy8gQXV0aGVudGljYXRpb24gV0VCDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAiYXV0aGVudGljYXRpb24ud2ViIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goZGJLZXkpOw0KICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGFbZGJLZXldOw0KICAgICAgICAgICAgaWYgKGRhdGFbImRlZmF1bHRVc2VyIl0gPT0gdHJ1ZSkgew0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICJqYXZhc2NyaXB0OiByZXR1cm4gZmFsc2UiKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey51c2Vycy53ZWIudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIEF1dGhlbnRpY2F0aW9uIFBNUw0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gImF1dGhlbnRpY2F0aW9uLnBtcyI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KGRiS2V5KTsNCiAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhW2RiS2V5XTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey51c2Vycy5wbXMudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIEF1dGhlbnRpY2F0aW9uIE0zVQ0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gImF1dGhlbnRpY2F0aW9uLm0zdSI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KGRiS2V5KTsNCiAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhW2RiS2V5XTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey51c2Vycy5tM3UudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIEF1dGhlbnRpY2F0aW9uIFhNTA0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gImF1dGhlbnRpY2F0aW9uLnhtbCI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KGRiS2V5KTsNCiAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhW2RiS2V5XTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey51c2Vycy54bWwudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIEF1dGhlbnRpY2F0aW9uIEFQSQ0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gImF1dGhlbnRpY2F0aW9uLmFwaSI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KGRiS2V5KTsNCiAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhW2RiS2V5XTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey51c2Vycy5hcGkudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIEludGVyYWN0aW9uDQogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUludGVyYWN0aW9uKCk7DQogICAgICAgICAgICAvLyBEZWxldGUNCiAgICAgICAgICAgIGlmIChkYXRhWyJkZWZhdWx0VXNlciJdICE9IHRydWUgJiYgaWQgIT0gIi0iKSB7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImRlbGV0ZSIsICJ7ey5idXR0b24uZGVsZXRlfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5jbGFzc05hbWUgPSAiZGVsZXRlIjsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogc2F2ZVBvcHVwRGF0YSgiJyArIGRhdGFUeXBlICsgJyIsICInICsgaWQgKyAnIiwgdHJ1ZSwgMCknKTsNCiAgICAgICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIC8vIEFib3J0DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAiY2FuY2VsIiwgInt7LmJ1dHRvbi5jYW5jZWx9fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IHNob3dFbGVtZW50KCJwb3B1cCIsIGZhbHNlKTsnKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgLy8gU2F2ZQ0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgInNhdmUiLCAie3suYnV0dG9uLnNhdmV9fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoIicgKyBkYXRhVHlwZSArICciLCAiJyArIGlkICsgJyIsICJmYWxzZSIpOycpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSAibWFwcGluZyI6DQogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUhlYWRsaW5lKCJ7ey5tYWluTWVudS5pdGVtLm1hcHBpbmd9fSIpOw0KICAgICAgICAgICAgLy8gQWN0aXZlDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAieC1hY3RpdmUiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChkYktleSk7DQogICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YVtkYktleV07DQogICAgICAgICAgICBpbnB1dC5pZCA9ICJhY3RpdmUiOw0KICAgICAgICAgICAgLy9pbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIikNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdG9nZ2xlQ2hhbm5lbFN0YXR1cygnIiArIGlkICsgIicsIHRoaXMpIik7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3subWFwcGluZy5hY3RpdmUudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIENoYW5uZWwgbmFtZQ0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gIngtbmFtZSI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgIGlmIChCVUxLX0VESVQgPT0gdHJ1ZSkgew0KICAgICAgICAgICAgICAgIGlucHV0LnN0eWxlLmJvcmRlciA9ICJzb2xpZCAxcHggcmVkIjsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInJlYWRvbmx5IiwgInRydWUiKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5tYXBwaW5nLmNoYW5uZWxOYW1lLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICBjb250ZW50LmRlc2NyaXB0aW9uKGRhdGFbIm5hbWUiXSk7DQogICAgICAgICAgICAvLyBEZXNjcmlwdGlvbg0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gIngtZGVzY3JpcHRpb24iOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7Lm1hcHBpbmcuZGVzY3JpcHRpb24ucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7Lm1hcHBpbmcuZGVzY3JpcHRpb24udGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIFVwZGF0ZSB0aGUgY2hhbm5lbCBuYW1lDQogICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgiX3V1aWQua2V5IikpIHsNCiAgICAgICAgICAgICAgICBpZiAoZGF0YVsiX3V1aWQua2V5Il0gIT0gIiIpIHsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGRiS2V5ID0gIngtdXBkYXRlLWNoYW5uZWwtbmFtZSI7DQogICAgICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goZGJLZXkpOw0KICAgICAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhW2RiS2V5XTsNCiAgICAgICAgICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7Lm1hcHBpbmcudXBkYXRlQ2hhbm5lbE5hbWUudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9DQogICAgICAgICAgICAvLyBMb2dvIFVSTCAoQ2hhbm5lbCkgDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAidHZnLWxvZ28iOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoImlkIiwgImNoYW5uZWwtaWNvbiIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7Lm1hcHBpbmcuY2hhbm5lbExvZ28udGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIENoYW5uZWwgbG9nbyB1cGRhdGUNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJ4LXVwZGF0ZS1jaGFubmVsLWljb24iOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChkYktleSk7DQogICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YVtkYktleV07DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoImlkIiwgInVwZGF0ZS1pY29uIik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnOyBjaGFuZ2VDaGFubmVsTG9nbygnIiArIGlkICsgIicpOyIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7Lm1hcHBpbmcudXBkYXRlQ2hhbm5lbExvZ28udGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIEV4cGFuZCBFUEcgY2F0ZWdvcnkNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJ4LWNhdGVnb3J5IjsNCiAgICAgICAgICAgIHZhciB0ZXh0ID0gWyItIiwgIktpZHMgKEVtYnkgb25seSkiLCAiTmV3cyIsICJNb3ZpZSIsICJTZXJpZXMiLCAiU3BvcnRzIl07DQogICAgICAgICAgICB2YXIgdmFsdWVzID0gWyIiLCAiS2lkcyIsICJOZXdzIiwgIk1vdmllIiwgIlNlcmllcyIsICJTcG9ydHMiXTsNCiAgICAgICAgICAgIHZhciBzZWxlY3QgPSBjb250ZW50LmNyZWF0ZVNlbGVjdCh0ZXh0LCB2YWx1ZXMsIGRhdGFbZGJLZXldLCBkYktleSk7DQogICAgICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7Lm1hcHBpbmcuZXBnQ2F0ZWdvcnkudGl0bGV9fSIsIHNlbGVjdCk7DQogICAgICAgICAgICAvLyBNM1UgZ3JvdXAgdGl0bGUNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJ4LWdyb3VwLXRpdGxlIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgaW5wdXQuZGF0YXNldC5vbGRWYWx1ZSA9IGRhdGFbZGJLZXldOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7Lm1hcHBpbmcubTN1R3JvdXBUaXRsZS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgaWYgKGRhdGFbImdyb3VwLXRpdGxlIl0gIT0gdW5kZWZpbmVkKSB7DQogICAgICAgICAgICAgICAgY29udGVudC5kZXNjcmlwdGlvbihkYXRhWyJncm91cC10aXRsZSJdKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGlmIChkYXRhWyJ4LXVwZGF0ZS1jaGFubmVsLWdyb3VwIl0gPT0gdHJ1ZSkgew0KICAgICAgICAgICAgICAgIGlucHV0LmRpc2FibGVkID0gdHJ1ZTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIC8vIFVwZGF0ZSBjaGFubmVsIGdyb3VwIGNoZWNrYm94DQogICAgICAgICAgICB2YXIgZGJLZXkgPSAieC11cGRhdGUtY2hhbm5lbC1ncm91cCI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KGRiS2V5KTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdG9nZ2xlR3JvdXBVcGRhdGVDYignIiArIGlkICsgIicsIHRoaXMpOyIpOw0KICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGFbZGJLZXldOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7Lm1hcHBpbmcudXBkYXRlQ2hhbm5lbEdyb3VwLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICBjb250ZW50LmRlc2NyaXB0aW9uKCJ7ey5tYXBwaW5nLnVwZGF0ZUNoYW5uZWxHcm91cC5kZXNjcmlwdGlvbn19Iik7DQogICAgICAgICAgICAvLyBYTUxUViBmaWxlDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAneC14bWx0di1maWxlJzsNCiAgICAgICAgICAgIGNvbnN0IHhtbFR2RmlsZSA9IGRhdGFbZGJLZXldOw0KICAgICAgICAgICAgdmFyIHhtbFR2ID0gbmV3IFhNTFRWRmlsZSgpOw0KICAgICAgICAgICAgY29uc3QgeG1sVHZGaWxlU2VsZWN0ID0geG1sVHYuZ2V0RmlsZXMoZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgeG1sVHZGaWxlU2VsZWN0LnNldEF0dHJpYnV0ZSgnbmFtZScsIGRiS2V5KTsNCiAgICAgICAgICAgIHhtbFR2RmlsZVNlbGVjdC5zZXRBdHRyaWJ1dGUoJ2lkJywgJ3BvcHVwLXhtbHR2Jyk7DQogICAgICAgICAgICB4bWxUdkZpbGVTZWxlY3Quc2V0QXR0cmlidXRlKCdvbmNoYW5nZScsIGBqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJzsgc2V0WG1sdHZDaGFubmVsKCcke2lkfScsIHRoaXMpO2ApOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coJ3t7Lm1hcHBpbmcueG1sdHZGaWxlLnRpdGxlfX0nLCB4bWxUdkZpbGVTZWxlY3QpOw0KICAgICAgICAgICAgLy8gWE1MVFYgTWFwcGluZw0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gJ3gtbWFwcGluZyc7DQogICAgICAgICAgICB2YXIgeG1sVHYgPSBuZXcgWE1MVFZGaWxlKCk7DQogICAgICAgICAgICBjb25zdCBjdXJyZW50WG1sVHZJZCA9IGRhdGFbZGJLZXldOw0KICAgICAgICAgICAgY29uc3QgeG1sVHZJZFNlbGVjdCA9IHhtbFR2LmdldFByb2dyYW1zKHhtbFR2RmlsZSwgY3VycmVudFhtbFR2SWQpOw0KICAgICAgICAgICAgeG1sVHZJZFNlbGVjdC5zZXRBdHRyaWJ1dGUoJ25hbWUnLCBkYktleSk7DQogICAgICAgICAgICB4bWxUdklkU2VsZWN0LnNldEF0dHJpYnV0ZSgnaWQnLCAncG9wdXAtbWFwcGluZycpOw0KICAgICAgICAgICAgeG1sVHZJZFNlbGVjdC5zZXRBdHRyaWJ1dGUoJ29uY2hhbmdlJywgYGphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnOyBjaGVja1htbHR2Q2hhbm5lbCgnJHtpZH0nLCB0aGlzLCAnJHt4bWxUdkZpbGV9Jyk7YCk7DQogICAgICAgICAgICBzb3J0U2VsZWN0KHhtbFR2SWRTZWxlY3QpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coJ3t7Lm1hcHBpbmcueG1sdHZDaGFubmVsLnRpdGxlfX0nLCB4bWxUdklkU2VsZWN0KTsNCiAgICAgICAgICAgIC8vIFRpbWVzaGlmdA0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gIngtdGltZXNoaWZ0IjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5tYXBwaW5nLnRpbWVzaGlmdC5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoImlkIiwgInRpbWVzaGlmdCIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7Lm1hcHBpbmcudGltZXNoaWZ0LnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBJbnRlcmFjdGlvbg0KICAgICAgICAgICAgY29udGVudC5jcmVhdGVJbnRlcmFjdGlvbigpOw0KICAgICAgICAgICAgLy8gVXBsb2FkIGxvZ28NCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJjYW5jZWwiLCAie3suYnV0dG9uLnVwbG9hZExvZ299fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IHVwbG9hZExvZ28oKTsnKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgLy8gQWJvcnQNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJjYW5jZWwiLCAie3suYnV0dG9uLmNhbmNlbH19Iik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogc2hvd0VsZW1lbnQoInBvcHVwIiwgZmFsc2UpOycpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICAvLyBGaW5pc2hlZA0KICAgICAgICAgICAgdmFyIGlkcyA9IFtdOw0KICAgICAgICAgICAgaWRzID0gZ2V0QWxsU2VsZWN0ZWRDaGFubmVscygpOw0KICAgICAgICAgICAgaWYgKGlkcy5sZW5ndGggPT0gMCkgew0KICAgICAgICAgICAgICAgIGlkcy5wdXNoKGlkKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJzYXZlIiwgInt7LmJ1dHRvbi5kb25lfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBkb25lUG9wdXBEYXRhKCInICsgZGF0YVR5cGUgKyAnIiwgIicgKyBpZHMgKyAnIiwgImZhbHNlIik7Jyk7DQogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBkZWZhdWx0Og0KICAgICAgICAgICAgYnJlYWs7DQogICAgfQ0KICAgIHNob3dQb3BVcEVsZW1lbnQoJ3BvcHVwLWN1c3RvbScpOw0KfQ0KY2xhc3MgWE1MVFZGaWxlIHsNCiAgICBnZXRGaWxlcyhzZXQpIHsNCiAgICAgICAgbGV0IGZpbGVJRHMgPSBnZXRPd25PYmpQcm9wcyhTRVJWRVJbInhlcGciXVsieG1sdHZNYXAiXSk7DQogICAgICAgIGxldCB2YWx1ZXMgPSBuZXcgQXJyYXkoIi0iKTsNCiAgICAgICAgbGV0IHRleHQgPSBuZXcgQXJyYXkoIi0iKTsNCiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBmaWxlSURzLmxlbmd0aDsgaSsrKSB7DQogICAgICAgICAgICBpZiAoZmlsZUlEc1tpXSAhPSAieFRlVmUgRHVtbXkiKSB7DQogICAgICAgICAgICAgICAgdmFsdWVzLnB1c2goZ2V0VmFsdWVGcm9tUHJvdmlkZXJGaWxlKGZpbGVJRHNbaV0sICJ4bWx0diIsICJmaWxlLnh0ZXZlIikpOw0KICAgICAgICAgICAgICAgIHRleHQucHVzaChnZXRWYWx1ZUZyb21Qcm92aWRlckZpbGUoZmlsZUlEc1tpXSwgInhtbHR2IiwgIm5hbWUiKSk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICB2YWx1ZXMucHVzaChmaWxlSURzW2ldKTsNCiAgICAgICAgICAgICAgICB0ZXh0LnB1c2goZmlsZUlEc1tpXSk7DQogICAgICAgICAgICB9DQogICAgICAgIH0NCiAgICAgICAgbGV0IHNlbGVjdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlNFTEVDVCIpOw0KICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRleHQubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgICAgIHZhciBvcHRpb24gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJPUFRJT04iKTsNCiAgICAgICAgICAgIG9wdGlvbi5zZXRBdHRyaWJ1dGUoInZhbHVlIiwgdmFsdWVzW2ldKTsNCiAgICAgICAgICAgIG9wdGlvbi5pbm5lclRleHQgPSB0ZXh0W2ldOw0KICAgICAgICAgICAgc2VsZWN0LmFwcGVuZENoaWxkKG9wdGlvbik7DQogICAgICAgIH0NCiAgICAgICAgaWYgKHNldCAhPSAiIikgew0KICAgICAgICAgICAgc2VsZWN0LnZhbHVlID0gc2V0Ow0KICAgICAgICB9DQogICAgICAgIHJldHVybiBzZWxlY3Q7DQogICAgfQ0KICAgIGdldFByb2dyYW1zKHhtbFR2RmlsZSwgY3VycmVudFhtbFR2SWQpIHsNCiAgICAgICAgY29uc3QgdmFsdWVzID0gZ2V0T3duT2JqUHJvcHMoU0VSVkVSWyd4ZXBnJ11bJ3htbHR2TWFwJ11beG1sVHZGaWxlXSk7DQogICAgICAgIGNvbnN0IHRleHQgPSBbXTsNCiAgICAgICAgbGV0IGZyaWVuZGx5TmFtZTsNCiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB2YWx1ZXMubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgICAgIGlmIChTRVJWRVJbJ3hlcGcnXVsneG1sdHZNYXAnXVt4bWxUdkZpbGVdW3ZhbHVlc1tpXV0uaGFzT3duUHJvcGVydHkoJ2ZyaWVuZGx5LW5hbWUnKSA9PSB0cnVlKSB7DQogICAgICAgICAgICAgICAgZnJpZW5kbHlOYW1lID0gU0VSVkVSWyd4ZXBnJ11bJ3htbHR2TWFwJ11beG1sVHZGaWxlXVt2YWx1ZXNbaV1dWydmcmllbmRseS1uYW1lJ107DQogICAgICAgICAgICB9DQogICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICBmcmllbmRseU5hbWUgPSAnLSc7DQogICAgICAgICAgICB9DQogICAgICAgICAgICB0ZXh0W2ldID0gYCR7ZnJpZW5kbHlOYW1lfSAoJHt2YWx1ZXNbaV19KWA7DQogICAgICAgIH0NCiAgICAgICAgdGV4dC51bnNoaWZ0KCctJyk7DQogICAgICAgIHZhbHVlcy51bnNoaWZ0KCctJyk7DQogICAgICAgIGNvbnN0IHNlbGVjdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NlbGVjdCcpOw0KICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRleHQubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgICAgIGNvbnN0IG9wdGlvbiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ29wdGlvbicpOw0KICAgICAgICAgICAgb3B0aW9uLnNldEF0dHJpYnV0ZSgndmFsdWUnLCB2YWx1ZXNbaV0pOw0KICAgICAgICAgICAgb3B0aW9uLmlubmVyVGV4dCA9IHRleHRbaV07DQogICAgICAgICAgICBzZWxlY3QuYXBwZW5kQ2hpbGQob3B0aW9uKTsNCiAgICAgICAgfQ0KICAgICAgICBzZWxlY3QudmFsdWUgPSAoY3VycmVudFhtbFR2SWQgPT0gJycpID8gJy0nIDogY3VycmVudFhtbFR2SWQ7DQogICAgICAgIHJldHVybiBzZWxlY3Q7DQogICAgfQ0KfQ0KZnVuY3Rpb24gZ2V0VmFsdWVGcm9tUHJvdmlkZXJGaWxlKGZpbGUsIGZpbGVUeXBlLCBrZXkpIHsNCiAgICBpZiAoZmlsZSA9PSAieFRlVmUgRHVtbXkiKSB7DQogICAgICAgIHJldHVybiBmaWxlOw0KICAgIH0NCiAgICBsZXQgZmlsZUlEOw0KICAgIGxldCBpbmRpY2F0b3IgPSBmaWxlLmNoYXJBdCgwKTsNCiAgICBzd2l0Y2ggKGluZGljYXRvcikgew0KICAgICAgICBjYXNlICJNIjoNCiAgICAgICAgICAgIGZpbGVUeXBlID0gIm0zdSI7DQogICAgICAgICAgICBmaWxlSUQgPSBmaWxlOw0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGNhc2UgIkgiOg0KICAgICAgICAgICAgZmlsZVR5cGUgPSAiaGRociI7DQogICAgICAgICAgICBmaWxlSUQgPSBmaWxlOw0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGNhc2UgIlgiOg0KICAgICAgICAgICAgZmlsZVR5cGUgPSAieG1sdHYiOw0KICAgICAgICAgICAgZmlsZUlEID0gZmlsZS5zdWJzdHJpbmcoMCwgZmlsZS5sYXN0SW5kZXhPZignLicpKTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgIH0NCiAgICBpZiAoU0VSVkVSWyJzZXR0aW5ncyJdWyJmaWxlcyJdW2ZpbGVUeXBlXS5oYXNPd25Qcm9wZXJ0eShmaWxlSUQpID09IHRydWUpIHsNCiAgICAgICAgdmFyIGRhdGEgPSBTRVJWRVJbInNldHRpbmdzIl1bImZpbGVzIl1bZmlsZVR5cGVdW2ZpbGVJRF07DQogICAgICAgIHJldHVybiBkYXRhW2tleV07DQogICAgfQ0KICAgIHJldHVybjsNCn0NCmZ1bmN0aW9uIHNldFhtbHR2Q2hhbm5lbChlcGdNYXBJZCwgeG1sVHZGaWxlU2VsZWN0KSB7DQogICAgY29uc3QgeG1sVHYgPSBuZXcgWE1MVFZGaWxlKCk7DQogICAgY29uc3QgbmV3WG1sVHZGaWxlID0geG1sVHZGaWxlU2VsZWN0LnZhbHVlOw0KICAgIC8vIFJlbW92ZSBvbGQgWE1MVFYgSUQgc2VsZWN0aW9uIGJveA0KICAgIGNvbnN0IHhtbFR2SWRTZWxlY3RQYXJlbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncG9wdXAtbWFwcGluZycpLnBhcmVudEVsZW1lbnQ7DQogICAgeG1sVHZJZFNlbGVjdFBhcmVudC5pbm5lckhUTUwgPSAnJzsNCiAgICAvLyBDcmVhdGUgbmV3IFhNTFRWIElEIHNlbGVjdGlvbiBib3gNCiAgICBjb25zdCB0dmdJZCA9IFNFUlZFUlsneGVwZyddWydlcGdNYXBwaW5nJ11bZXBnTWFwSWRdWyd0dmctaWQnXTsNCiAgICBjb25zdCBuZXdYbWxUdklkU2VsZWN0ID0geG1sVHYuZ2V0UHJvZ3JhbXMobmV3WG1sVHZGaWxlLCB0dmdJZCk7DQogICAgbmV3WG1sVHZJZFNlbGVjdC5zZXRBdHRyaWJ1dGUoJ25hbWUnLCAneC1tYXBwaW5nJyk7DQogICAgbmV3WG1sVHZJZFNlbGVjdC5zZXRBdHRyaWJ1dGUoJ2lkJywgJ3BvcHVwLW1hcHBpbmcnKTsNCiAgICBuZXdYbWxUdklkU2VsZWN0LnNldEF0dHJpYnV0ZSgnb25jaGFuZ2UnLCBgamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCc7IGNoZWNrWG1sdHZDaGFubmVsKCcke2VwZ01hcElkfScsIHRoaXMsICcke25ld1htbFR2RmlsZX0nKTtgKTsNCiAgICBuZXdYbWxUdklkU2VsZWN0LmNsYXNzTmFtZSA9ICdjaGFuZ2VkJzsNCiAgICBzb3J0U2VsZWN0KG5ld1htbFR2SWRTZWxlY3QpOw0KICAgIC8vIEFkZCBuZXcgWE1MVFYgSUQgc2VsZWN0aW9uIGJveCB0byBpdCdzIHBhcmVudA0KICAgIHhtbFR2SWRTZWxlY3RQYXJlbnQuYXBwZW5kQ2hpbGQobmV3WG1sVHZJZFNlbGVjdCk7DQogICAgY2hlY2tYbWx0dkNoYW5uZWwoZXBnTWFwSWQsIG5ld1htbFR2SWRTZWxlY3QsIG5ld1htbFR2RmlsZSk7DQp9DQpmdW5jdGlvbiBjaGVja1htbHR2Q2hhbm5lbChlcGdNYXBJZCwgeG1sVHZJZFNlbGVjdCwgeG1sVHZGaWxlKSB7DQogICAgY29uc3QgbmV3WG1sVHZJZCA9IHhtbFR2SWRTZWxlY3QudmFsdWU7DQogICAgY29uc3QgY2hhbm5lbEFjdGl2ZUNiID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2FjdGl2ZScpOw0KICAgIGNvbnN0IGNoYW5uZWxBY3RpdmUgPSBuZXdYbWxUdklkICE9ICctJzsNCiAgICBjaGFubmVsQWN0aXZlQ2IuY2hlY2tlZCA9IGNoYW5uZWxBY3RpdmU7DQogICAgY2hhbm5lbEFjdGl2ZUNiLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJzsNCiAgICBpZiAoeG1sVHZGaWxlICE9ICd4VGVWZSBEdW1teScgJiYgY2hhbm5lbEFjdGl2ZSA9PSB0cnVlKSB7DQogICAgICAgIGNoYW5nZUNoYW5uZWxMb2dvKGVwZ01hcElkKTsNCiAgICAgICAgcmV0dXJuOw0KICAgIH0NCiAgICBpZiAoeG1sVHZGaWxlID09ICd4VGVWZSBEdW1teScpIHsNCiAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3VwZGF0ZS1pY29uJykuY2hlY2tlZCA9IGZhbHNlOw0KICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndXBkYXRlLWljb24nKS5jbGFzc05hbWUgPSAnY2hhbmdlZCc7DQogICAgfQ0KfQ0KZnVuY3Rpb24gY2hhbmdlQ2hhbm5lbExvZ28oZXBnTWFwSWQpIHsNCiAgICBjb25zdCBjaGFubmVsID0gU0VSVkVSWyd4ZXBnJ11bJ2VwZ01hcHBpbmcnXVtlcGdNYXBJZF07DQogICAgY29uc3QgeG1sVHZGaWxlU2VsZWN0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3BvcHVwLXhtbHR2Jyk7DQogICAgY29uc3QgeG1sVHZGaWxlID0geG1sVHZGaWxlU2VsZWN0Lm9wdGlvbnNbeG1sVHZGaWxlU2VsZWN0LnNlbGVjdGVkSW5kZXhdLnZhbHVlOw0KICAgIGNvbnN0IHhtbFR2SWRTZWxlY3QgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncG9wdXAtbWFwcGluZycpOw0KICAgIGNvbnN0IG5ld1htbFR2SWQgPSB4bWxUdklkU2VsZWN0Lm9wdGlvbnNbeG1sVHZJZFNlbGVjdC5zZWxlY3RlZEluZGV4XS52YWx1ZTsNCiAgICBjb25zdCB4bWxUdkxvZ28gPSBTRVJWRVJbJ3hlcGcnXVsneG1sdHZNYXAnXVt4bWxUdkZpbGVdW25ld1htbFR2SWRdWydpY29uJ107DQogICAgY29uc3QgdXBkYXRlTG9nbyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd1cGRhdGUtaWNvbicpLmNoZWNrZWQ7DQogICAgbGV0IGxvZ287DQogICAgaWYgKHVwZGF0ZUxvZ28gPT0gdHJ1ZSAmJiB4bWxUdkZpbGUgIT0gJ3hUZVZlIER1bW15Jykgew0KICAgICAgICBpZiAoU0VSVkVSWyd4ZXBnJ11bJ3htbHR2TWFwJ11beG1sVHZGaWxlXS5oYXNPd25Qcm9wZXJ0eShuZXdYbWxUdklkKSkgew0KICAgICAgICAgICAgbG9nbyA9IHhtbFR2TG9nbzsNCiAgICAgICAgfQ0KICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgIGxvZ28gPSBjaGFubmVsWyd0dmctbG9nbyddOw0KICAgICAgICB9DQogICAgICAgIHZhciBsb2dvSW5wdXQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY2hhbm5lbC1pY29uJyk7DQogICAgICAgIGxvZ29JbnB1dC52YWx1ZSA9IGxvZ287DQogICAgICAgIGlmIChCVUxLX0VESVQgPT0gZmFsc2UpIHsNCiAgICAgICAgICAgIGxvZ29JbnB1dC5jbGFzc05hbWUgPSAnY2hhbmdlZCc7DQogICAgICAgIH0NCiAgICB9DQp9DQpmdW5jdGlvbiBzYXZlUG9wdXBEYXRhKGRhdGFUeXBlLCBpZCwgcmVtb3ZlLCBvcHRpb24pIHsNCiAgICBpZiAoZGF0YVR5cGUgPT0gIm1hcHBpbmciKSB7DQogICAgICAgIGxldCBkYXRhID0ge307DQogICAgICAgIGNvbnNvbGUubG9nKCJTYXZlIG1hcHBpbmcgZGF0YSIpOw0KICAgICAgICBsZXQgY21kID0gInNhdmVFcGdNYXBwaW5nIjsNCiAgICAgICAgZGF0YVsiZXBnTWFwcGluZyJdID0gU0VSVkVSWyJ4ZXBnIl1bImVwZ01hcHBpbmciXTsNCiAgICAgICAgY29uc29sZS5sb2coIlNFTkQgVE8gU0VSVkVSIik7DQogICAgICAgIGxldCBzZXJ2ZXIgPSBuZXcgU2VydmVyKGNtZCk7DQogICAgICAgIHNlcnZlci5yZXF1ZXN0KGRhdGEpOw0KICAgICAgICBkZWxldGUgVU5ET1siZXBnTWFwcGluZyJdOw0KICAgICAgICByZXR1cm47DQogICAgfQ0KICAgIGNvbnNvbGUubG9nKCJTYXZlIHBvcHVwIGRhdGEiKTsNCiAgICBsZXQgZGl2ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInBvcHVwLWN1c3RvbSIpOw0KICAgIGxldCBpbnB1dHMgPSBkaXYuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlRBQkxFIilbMF0uZ2V0RWxlbWVudHNCeVRhZ05hbWUoIklOUFVUIik7DQogICAgbGV0IHNlbGVjdHMgPSBkaXYuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlRBQkxFIilbMF0uZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlNFTEVDVCIpOw0KICAgIGxldCBpbnB1dCA9IHt9Ow0KICAgIGxldCBjb25maXJtTXNnOw0KICAgIGZvciAobGV0IGkgPSAwOyBpIDwgc2VsZWN0cy5sZW5ndGg7IGkrKykgew0KICAgICAgICB2YXIgbmFtZTsNCiAgICAgICAgbmFtZSA9IHNlbGVjdHNbaV0ubmFtZTsNCiAgICAgICAgdmFyIHZhbHVlID0gc2VsZWN0c1tpXS52YWx1ZTsNCiAgICAgICAgc3dpdGNoIChuYW1lKSB7DQogICAgICAgICAgICBjYXNlICJ0dW5lciI6DQogICAgICAgICAgICAgICAgaW5wdXRbbmFtZV0gPSBwYXJzZUludCh2YWx1ZSk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBkZWZhdWx0Og0KICAgICAgICAgICAgICAgIGlucHV0W25hbWVdID0gdmFsdWU7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIH0NCiAgICB9DQogICAgZm9yIChsZXQgaSA9IDA7IGkgPCBpbnB1dHMubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgc3dpdGNoIChpbnB1dHNbaV0udHlwZSkgew0KICAgICAgICAgICAgY2FzZSAiY2hlY2tib3giOg0KICAgICAgICAgICAgICAgIG5hbWUgPSBpbnB1dHNbaV0ubmFtZTsNCiAgICAgICAgICAgICAgICBpbnB1dFtuYW1lXSA9IGlucHV0c1tpXS5jaGVja2VkOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAidGV4dCI6DQogICAgICAgICAgICBjYXNlICJoaWRkZW4iOg0KICAgICAgICAgICAgY2FzZSAicGFzc3dvcmQiOg0KICAgICAgICAgICAgICAgIG5hbWUgPSBpbnB1dHNbaV0ubmFtZTsNCiAgICAgICAgICAgICAgICBzd2l0Y2ggKG5hbWUpIHsNCiAgICAgICAgICAgICAgICAgICAgY2FzZSAidHVuZXIiOg0KICAgICAgICAgICAgICAgICAgICAgICAgaW5wdXRbbmFtZV0gPSBwYXJzZUludChpbnB1dHNbaV0udmFsdWUpOw0KICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICAgICAgICAgICAgICBpbnB1dFtuYW1lXSA9IGlucHV0c1tpXS52YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgfQ0KICAgIH0NCiAgICBsZXQgZGF0YSA9IHt9Ow0KICAgIGxldCBjbWQ7DQogICAgaWYgKHJlbW92ZSA9PSB0cnVlKSB7DQogICAgICAgIGlucHV0WyJkZWxldGUiXSA9IHRydWU7DQogICAgfQ0KICAgIHN3aXRjaCAoZGF0YVR5cGUpIHsNCiAgICAgICAgY2FzZSAidXNlcnMiOg0KICAgICAgICAgICAgY29uZmlybU1zZyA9ICJEZWxldGUgdGhpcyB1c2VyPyI7DQogICAgICAgICAgICBpZiAoaWQgPT0gIi0iKSB7DQogICAgICAgICAgICAgICAgY21kID0gInNhdmVOZXdVc2VyIjsNCiAgICAgICAgICAgICAgICBkYXRhWyJ1c2VyRGF0YSJdID0gaW5wdXQ7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICBjbWQgPSAic2F2ZVVzZXJEYXRhIjsNCiAgICAgICAgICAgICAgICBsZXQgZCA9IHt9Ow0KICAgICAgICAgICAgICAgIGRbaWRdID0gaW5wdXQ7DQogICAgICAgICAgICAgICAgZGF0YVsidXNlckRhdGEiXSA9IGQ7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSAibTN1IjoNCiAgICAgICAgICAgIGNvbmZpcm1Nc2cgPSAiRGVsZXRlIHRoaXMgcGxheWxpc3Q/IjsNCiAgICAgICAgICAgIHN3aXRjaCAob3B0aW9uKSB7DQogICAgICAgICAgICAgICAgLy8gUG9wdXA6IFNhdmUNCiAgICAgICAgICAgICAgICBjYXNlIDA6DQogICAgICAgICAgICAgICAgICAgIGNtZCA9ICJzYXZlRmlsZXNNM1UiOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICAvLyBQb3B1cDogVXBkYXRlDQogICAgICAgICAgICAgICAgY2FzZSAxOg0KICAgICAgICAgICAgICAgICAgICBjbWQgPSAidXBkYXRlRmlsZU0zVSI7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgZGF0YVsiZmlsZXMiXSA9IHt9Ow0KICAgICAgICAgICAgZGF0YVsiZmlsZXMiXVtkYXRhVHlwZV0gPSB7fTsNCiAgICAgICAgICAgIGRhdGFbImZpbGVzIl1bZGF0YVR5cGVdW2lkXSA9IGlucHV0Ow0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGNhc2UgImhkaHIiOg0KICAgICAgICAgICAgY29uZmlybU1zZyA9ICJEZWxldGUgdGhpcyBIREhvbWVSdW4gdHVuZXI/IjsNCiAgICAgICAgICAgIHN3aXRjaCAob3B0aW9uKSB7DQogICAgICAgICAgICAgICAgLy8gUG9wdXA6IFNhdmUNCiAgICAgICAgICAgICAgICBjYXNlIDA6DQogICAgICAgICAgICAgICAgICAgIGNtZCA9ICJzYXZlRmlsZXNIREhSIjsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgLy8gUG9wdXA6IFVwZGF0ZQ0KICAgICAgICAgICAgICAgIGNhc2UgMToNCiAgICAgICAgICAgICAgICAgICAgY21kID0gInVwZGF0ZUZpbGVIREhSIjsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBkYXRhWyJmaWxlcyJdID0ge307DQogICAgICAgICAgICBkYXRhWyJmaWxlcyJdW2RhdGFUeXBlXSA9IHt9Ow0KICAgICAgICAgICAgZGF0YVsiZmlsZXMiXVtkYXRhVHlwZV1baWRdID0gaW5wdXQ7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSAieG1sdHYiOg0KICAgICAgICAgICAgY29uZmlybU1zZyA9ICJEZWxldGUgdGhpcyBYTUxUViBmaWxlPyI7DQogICAgICAgICAgICBzd2l0Y2ggKG9wdGlvbikgew0KICAgICAgICAgICAgICAgIC8vIFBvcHVwOiBTYXZlDQogICAgICAgICAgICAgICAgY2FzZSAwOg0KICAgICAgICAgICAgICAgICAgICBjbWQgPSAic2F2ZUZpbGVzWE1MVFYiOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICAvLyBQb3B1cDogVXBkYXRlDQogICAgICAgICAgICAgICAgY2FzZSAxOg0KICAgICAgICAgICAgICAgICAgICBjbWQgPSAidXBkYXRlRmlsZVhNTFRWIjsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBkYXRhWyJmaWxlcyJdID0ge307DQogICAgICAgICAgICBkYXRhWyJmaWxlcyJdW2RhdGFUeXBlXSA9IHt9Ow0KICAgICAgICAgICAgZGF0YVsiZmlsZXMiXVtkYXRhVHlwZV1baWRdID0gaW5wdXQ7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSAiZmlsdGVyIjoNCiAgICAgICAgICAgIGNvbmZpcm1Nc2cgPSAiRGVsZXRlIHRoaXMgZmlsdGVyPyI7DQogICAgICAgICAgICBjbWQgPSAic2F2ZUZpbHRlciI7DQogICAgICAgICAgICBkYXRhWyJmaWx0ZXIiXSA9IHt9Ow0KICAgICAgICAgICAgZGF0YVsiZmlsdGVyIl1baWRdID0gaW5wdXQ7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgIGNvbnNvbGUubG9nKGRhdGFUeXBlLCBpZCk7DQogICAgICAgICAgICByZXR1cm47DQogICAgfQ0KICAgIGlmIChyZW1vdmUgPT0gdHJ1ZSkgew0KICAgICAgICBpZiAoIWNvbmZpcm0oY29uZmlybU1zZykpIHsNCiAgICAgICAgICAgIHNob3dFbGVtZW50KCJwb3B1cCIsIGZhbHNlKTsNCiAgICAgICAgICAgIHJldHVybjsNCiAgICAgICAgfQ0KICAgIH0NCiAgICBjb25zb2xlLmxvZygiU0VORCBUTyBTRVJWRVIiKTsNCiAgICBjb25zb2xlLmxvZyhkYXRhKTsNCiAgICBsZXQgc2VydmVyID0gbmV3IFNlcnZlcihjbWQpOw0KICAgIHNlcnZlci5yZXF1ZXN0KGRhdGEpOw0KfQ0KZnVuY3Rpb24gZG9uZVBvcHVwRGF0YShkYXRhVHlwZSwgaWRzU3RyKSB7DQogICAgbGV0IGlkcyA9IGlkc1N0ci5zcGxpdCgnLCcpOw0KICAgIGxldCBkaXYgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicG9wdXAtY3VzdG9tIik7DQogICAgbGV0IGlucHV0cyA9IGRpdi5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCJjaGFuZ2VkIik7DQogICAgaWRzLmZvckVhY2goaWQgPT4gew0KICAgICAgICBsZXQgaW5wdXQ7DQogICAgICAgIGlucHV0ID0gU0VSVkVSWyJ4ZXBnIl1bImVwZ01hcHBpbmciXVtpZF07DQogICAgICAgIGNvbnNvbGUubG9nKGlucHV0KTsNCiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBpbnB1dHMubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgICAgIGxldCBuYW1lOw0KICAgICAgICAgICAgbGV0IHZhbHVlOw0KICAgICAgICAgICAgc3dpdGNoIChpbnB1dHNbaV0udGFnTmFtZSkgew0KICAgICAgICAgICAgICAgIGNhc2UgIklOUFVUIjoNCiAgICAgICAgICAgICAgICAgICAgc3dpdGNoIChpbnB1dHNbaV0udHlwZSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAiY2hlY2tib3giOg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWUgPSBpbnB1dHNbaV0ubmFtZTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IGlucHV0c1tpXS5jaGVja2VkOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlucHV0W25hbWVdID0gdmFsdWU7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgICAgICAgICBjYXNlICJ0ZXh0IjoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lID0gaW5wdXRzW2ldLm5hbWU7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSBpbnB1dHNbaV0udmFsdWU7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5wdXRbbmFtZV0gPSB2YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBjYXNlICJTRUxFQ1QiOg0KICAgICAgICAgICAgICAgICAgICBuYW1lID0gaW5wdXRzW2ldLm5hbWU7DQogICAgICAgICAgICAgICAgICAgIHZhbHVlID0gaW5wdXRzW2ldLnZhbHVlOw0KICAgICAgICAgICAgICAgICAgICBpbnB1dFtuYW1lXSA9IHZhbHVlOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIHN3aXRjaCAobmFtZSkgew0KICAgICAgICAgICAgICAgIGNhc2UgInR2Zy1sb2dvIjoNCiAgICAgICAgICAgICAgICAgICAgLy8oZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpLmNoaWxkTm9kZXNbMl0uZmlyc3RDaGlsZCBhcyBIVE1MRWxlbWVudCkuc2V0QXR0cmlidXRlKCJzcmMiLCB2YWx1ZSkNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAieC1uYW1lIjoNCiAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpLmNoaWxkTm9kZXNbM10uZmlyc3RDaGlsZC5pbm5lckhUTUwgPSB2YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAieC1jYXRlZ29yeSI6DQogICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5jaGlsZE5vZGVzWzNdLmZpcnN0Q2hpbGQuY2xhc3NOYW1lID0gdmFsdWU7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgIngtZ3JvdXAtdGl0bGUiOg0KICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkuY2hpbGROb2Rlc1s1XS5maXJzdENoaWxkLmlubmVySFRNTCA9IHZhbHVlOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBjYXNlICJ4LXhtbHR2LWZpbGUiOg0KICAgICAgICAgICAgICAgICAgICBpZiAodmFsdWUgIT0gInhUZVZlIER1bW15IiAmJiB2YWx1ZSAhPSAiLSIpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlID0gZ2V0VmFsdWVGcm9tUHJvdmlkZXJGaWxlKHZhbHVlLCAieG1sdHYiLCAibmFtZSIpOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIGlmICh2YWx1ZSA9PSAiLSIpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGlucHV0WyJ4LWFjdGl2ZSJdID0gZmFsc2U7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpLmNoaWxkTm9kZXNbNl0uZmlyc3RDaGlsZC5pbm5lckhUTUwgPSB2YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAieC1tYXBwaW5nIjoNCiAgICAgICAgICAgICAgICAgICAgaWYgKHZhbHVlID09ICItIikgew0KICAgICAgICAgICAgICAgICAgICAgICAgaW5wdXRbIngtYWN0aXZlIl0gPSBmYWxzZTsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkuY2hpbGROb2Rlc1s3XS5maXJzdENoaWxkLmlubmVySFRNTCA9IHZhbHVlOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBjYXNlICJ4LXRpbWVzaGlmdCI6DQogICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5jaGlsZE5vZGVzWzhdLmZpcnN0Q2hpbGQuaW5uZXJIVE1MID0gdmFsdWU7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICB9DQogICAgICAgICAgICBjcmVhdGVTZWFyY2hPYmooKTsNCiAgICAgICAgICAgIHNlYXJjaEluTWFwcGluZygpOw0KICAgICAgICB9DQogICAgICAgIGlmIChpbnB1dFsieC1hY3RpdmUiXSA9PSBmYWxzZSkgew0KICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpLmNsYXNzTmFtZSA9ICJub3RBY3RpdmVFUEciOw0KICAgICAgICB9DQogICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpLmNsYXNzTmFtZSA9ICJhY3RpdmVFUEciOw0KICAgICAgICB9DQogICAgICAgIGNvbnNvbGUubG9nKGlucHV0WyJ0dmctbG9nbyJdKTsNCiAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpLmNoaWxkTm9kZXNbMl0uZmlyc3RDaGlsZC5zZXRBdHRyaWJ1dGUoInNyYyIsIGlucHV0WyJ0dmctbG9nbyJdKTsNCiAgICB9KTsNCiAgICBzaG93RWxlbWVudCgicG9wdXAiLCBmYWxzZSk7DQogICAgcmV0dXJuOw0KfQ0KZnVuY3Rpb24gc2hvd1ByZXZpZXcoZWxlbWVudCkgew0KICAgIGxldCBkaXYgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibXlTdHJlYW1zQm94Iik7DQogICAgc3dpdGNoIChlbGVtZW50KSB7DQogICAgICAgIGNhc2UgZmFsc2U6DQogICAgICAgICAgICBkaXYuY2xhc3NOYW1lID0gIm5vdFZpc2libGUiOw0KICAgICAgICAgICAgcmV0dXJuOw0KICAgIH0NCiAgICBsZXQgc3RyZWFtcyA9IFsiYWN0aXZlU3RyZWFtcyIsICJpbmFjdGl2ZVN0cmVhbXMiXTsNCiAgICBzdHJlYW1zLmZvckVhY2gocHJldmlldyA9PiB7DQogICAgICAgIGxldCB0YWJsZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHByZXZpZXcpOw0KICAgICAgICB0YWJsZS5pbm5lckhUTUwgPSAiIjsNCiAgICAgICAgbGV0IG9iaiA9IFNFUlZFUlsiZGF0YSJdWyJTdHJlYW1QcmV2aWV3VUkiXVtwcmV2aWV3XTsNCiAgICAgICAgb2JqLmZvckVhY2goY2hhbm5lbCA9PiB7DQogICAgICAgICAgICBsZXQgdHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJUUiIpOw0KICAgICAgICAgICAgbGV0IHRkS2V5ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgIGxldCB0ZFZhbCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICB0ZEtleS5jbGFzc05hbWUgPSAidGRLZXkiOw0KICAgICAgICAgICAgdGRWYWwuY2xhc3NOYW1lID0gInRkVmFsIjsNCiAgICAgICAgICAgIHN3aXRjaCAocHJldmlldykgew0KICAgICAgICAgICAgICAgIGNhc2UgImFjdGl2ZVN0cmVhbXMiOg0KICAgICAgICAgICAgICAgICAgICB0ZEtleS5pbm5lclRleHQgPSAiQ2hhbm5lbDogKCspIjsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAiaW5hY3RpdmVTdHJlYW1zIjoNCiAgICAgICAgICAgICAgICAgICAgdGRLZXkuaW5uZXJUZXh0ID0gIkNoYW5uZWw6ICgtKSI7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgdGRWYWwuaW5uZXJUZXh0ID0gY2hhbm5lbDsNCiAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKHRkS2V5KTsNCiAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKHRkVmFsKTsNCiAgICAgICAgICAgIHRhYmxlLmFwcGVuZENoaWxkKHRyKTsNCiAgICAgICAgfSk7DQogICAgfSk7DQogICAgc2hvd0VsZW1lbnQoImxvYWRpbmciLCBmYWxzZSk7DQogICAgZGl2LmNsYXNzTmFtZSA9ICJ2aXNpYmxlIjsNCiAgICByZXR1cm47DQp9DQo=" - webUI["html/js/network_ts.js"] = "Y2xhc3MgU2VydmVyIHsNCiAgICBjb25zdHJ1Y3RvcihjbWQpIHsNCiAgICAgICAgdGhpcy5jbWQgPSBjbWQ7DQogICAgfQ0KICAgIHJlcXVlc3QoZGF0YSkgew0KICAgICAgICBpZiAoU0VSVkVSX0NPTk5FQ1RJT04gPT0gdHJ1ZSkgew0KICAgICAgICAgICAgcmV0dXJuOw0KICAgICAgICB9DQogICAgICAgIFNFUlZFUl9DT05ORUNUSU9OID0gdHJ1ZTsNCiAgICAgICAgY29uc29sZS5sb2coZGF0YSk7DQogICAgICAgIGlmICh0aGlzLmNtZCAhPSAidXBkYXRlTG9nIikgew0KICAgICAgICAgICAgc2hvd0VsZW1lbnQoImxvYWRpbmciLCB0cnVlKTsNCiAgICAgICAgICAgIFVORE8gPSBuZXcgT2JqZWN0KCk7DQogICAgICAgIH0NCiAgICAgICAgc3dpdGNoICh3aW5kb3cubG9jYXRpb24ucHJvdG9jb2wpIHsNCiAgICAgICAgICAgIGNhc2UgImh0dHA6IjoNCiAgICAgICAgICAgICAgICB0aGlzLnByb3RvY29sID0gIndzOi8vIjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImh0dHBzOiI6DQogICAgICAgICAgICAgICAgdGhpcy5wcm90b2NvbCA9ICJ3c3M6Ly8iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICB9DQogICAgICAgIHZhciB1cmwgPSB0aGlzLnByb3RvY29sICsgd2luZG93LmxvY2F0aW9uLmhvc3RuYW1lICsgIjoiICsgd2luZG93LmxvY2F0aW9uLnBvcnQgKyAiL2RhdGEvIiArICI/VG9rZW49IiArIGdldENvb2tpZSgiVG9rZW4iKTsNCiAgICAgICAgZGF0YVsiY21kIl0gPSB0aGlzLmNtZDsNCiAgICAgICAgdmFyIHdzID0gbmV3IFdlYlNvY2tldCh1cmwpOw0KICAgICAgICB3cy5vbm9wZW4gPSBmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICBXU19BVkFJTEFCTEUgPSB0cnVlOw0KICAgICAgICAgICAgY29uc29sZS5sb2coIlJFUVVFU1QgKEpTKToiKTsNCiAgICAgICAgICAgIGNvbnNvbGUubG9nKGRhdGEpOw0KICAgICAgICAgICAgY29uc29sZS5sb2coIlJFUVVFU1Q6IChKU09OKSIpOw0KICAgICAgICAgICAgY29uc29sZS5sb2coSlNPTi5zdHJpbmdpZnkoZGF0YSkpOw0KICAgICAgICAgICAgdGhpcy5zZW5kKEpTT04uc3RyaW5naWZ5KGRhdGEpKTsNCiAgICAgICAgfTsNCiAgICAgICAgd3Mub25lcnJvciA9IGZ1bmN0aW9uIChlKSB7DQogICAgICAgICAgICBjb25zb2xlLmxvZygiTm8gd2Vic29ja2V0IGNvbm5lY3Rpb24gdG8geFRlVmUgY291bGQgYmUgZXN0YWJsaXNoZWQuIENoZWNrIHlvdXIgbmV0d29yayBjb25maWd1cmF0aW9uLiIpOw0KICAgICAgICAgICAgU0VSVkVSX0NPTk5FQ1RJT04gPSBmYWxzZTsNCiAgICAgICAgICAgIGlmIChXU19BVkFJTEFCTEUgPT0gZmFsc2UpIHsNCiAgICAgICAgICAgICAgICBhbGVydCgiTm8gd2Vic29ja2V0IGNvbm5lY3Rpb24gdG8geFRlVmUgY291bGQgYmUgZXN0YWJsaXNoZWQuIENoZWNrIHlvdXIgbmV0d29yayBjb25maWd1cmF0aW9uLiIpOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9Ow0KICAgICAgICB3cy5vbm1lc3NhZ2UgPSBmdW5jdGlvbiAoZSkgew0KICAgICAgICAgICAgU0VSVkVSX0NPTk5FQ1RJT04gPSBmYWxzZTsNCiAgICAgICAgICAgIHNob3dFbGVtZW50KCJsb2FkaW5nIiwgZmFsc2UpOw0KICAgICAgICAgICAgY29uc29sZS5sb2coIlJFU1BPTlNFOiIpOw0KICAgICAgICAgICAgdmFyIHJlc3BvbnNlID0gSlNPTi5wYXJzZShlLmRhdGEpOw0KICAgICAgICAgICAgY29uc29sZS5sb2cocmVzcG9uc2UpOw0KICAgICAgICAgICAgaWYgKHJlc3BvbnNlLmhhc093blByb3BlcnR5KCJ0b2tlbiIpKSB7DQogICAgICAgICAgICAgICAgZG9jdW1lbnQuY29va2llID0gIlRva2VuPSIgKyByZXNwb25zZVsidG9rZW4iXTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGlmIChyZXNwb25zZVsic3RhdHVzIl0gPT0gZmFsc2UpIHsNCiAgICAgICAgICAgICAgICBhbGVydChyZXNwb25zZVsiZXJyIl0pOw0KICAgICAgICAgICAgICAgIGlmIChyZXNwb25zZS5oYXNPd25Qcm9wZXJ0eSgicmVsb2FkIikpIHsNCiAgICAgICAgICAgICAgICAgICAgbG9jYXRpb24ucmVsb2FkKCk7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIHJldHVybjsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGlmIChyZXNwb25zZS5oYXNPd25Qcm9wZXJ0eSgiYWxlcnQiKSkgew0KICAgICAgICAgICAgICAgIGFsZXJ0KHJlc3BvbnNlWyJhbGVydCJdKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGlmIChyZXNwb25zZS5oYXNPd25Qcm9wZXJ0eSgibG9nb1VSTCIpKSB7DQogICAgICAgICAgICAgICAgdmFyIGRpdiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjaGFubmVsLWljb24iKTsNCiAgICAgICAgICAgICAgICBkaXYudmFsdWUgPSByZXNwb25zZVsibG9nb1VSTCJdOw0KICAgICAgICAgICAgICAgIGRpdi5jbGFzc05hbWUgPSAiY2hhbmdlZCI7DQogICAgICAgICAgICAgICAgcmV0dXJuOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgc3dpdGNoIChkYXRhWyJjbWQiXSkgew0KICAgICAgICAgICAgICAgIGNhc2UgInVwZGF0ZUxvZyI6DQogICAgICAgICAgICAgICAgICAgIFNFUlZFUlsibG9nIl0gPSByZXNwb25zZVsibG9nIl07DQogICAgICAgICAgICAgICAgICAgIGlmIChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29udGVudF9sb2ciKSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgc2hvd0xvZ3MoZmFsc2UpOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIHJldHVybjsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgICAgICAgICAgU0VSVkVSID0gbmV3IE9iamVjdCgpOw0KICAgICAgICAgICAgICAgICAgICBTRVJWRVIgPSByZXNwb25zZTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBpZiAocmVzcG9uc2UuaGFzT3duUHJvcGVydHkoIm9wZW5NZW51IikpIHsNCiAgICAgICAgICAgICAgICB2YXIgbWVudSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHJlc3BvbnNlWyJvcGVuTWVudSJdKTsNCiAgICAgICAgICAgICAgICBtZW51LmNsaWNrKCk7DQogICAgICAgICAgICAgICAgc2hvd0VsZW1lbnQoInBvcHVwIiwgZmFsc2UpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgaWYgKHJlc3BvbnNlLmhhc093blByb3BlcnR5KCJvcGVuTGluayIpKSB7DQogICAgICAgICAgICAgICAgd2luZG93LmxvY2F0aW9uID0gcmVzcG9uc2VbIm9wZW5MaW5rIl07DQogICAgICAgICAgICB9DQogICAgICAgICAgICBpZiAocmVzcG9uc2UuaGFzT3duUHJvcGVydHkoInJlbG9hZCIpKSB7DQogICAgICAgICAgICAgICAgbG9jYXRpb24ucmVsb2FkKCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBpZiAocmVzcG9uc2UuaGFzT3duUHJvcGVydHkoIndpemFyZCIpKSB7DQogICAgICAgICAgICAgICAgY3JlYXRlTGF5b3V0KCk7DQogICAgICAgICAgICAgICAgY29uZmlndXJhdGlvbldpemFyZFtyZXNwb25zZVsid2l6YXJkIl1dLmNyZWF0ZVdpemFyZCgpOw0KICAgICAgICAgICAgICAgIHJldHVybjsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGNyZWF0ZUxheW91dCgpOw0KICAgICAgICB9Ow0KICAgIH0NCn0NCmZ1bmN0aW9uIGdldENvb2tpZShuYW1lKSB7DQogICAgdmFyIHZhbHVlID0gIjsgIiArIGRvY3VtZW50LmNvb2tpZTsNCiAgICB2YXIgcGFydHMgPSB2YWx1ZS5zcGxpdCgiOyAiICsgbmFtZSArICI9Iik7DQogICAgaWYgKHBhcnRzLmxlbmd0aCA9PSAyKQ0KICAgICAgICByZXR1cm4gcGFydHMucG9wKCkuc3BsaXQoIjsiKS5zaGlmdCgpOw0KfQ0K" - webUI["html/js/settings_ts.js"] = "Y2xhc3MgU2V0dGluZ3NDYXRlZ29yeSB7DQogICAgY29uc3RydWN0b3IoKSB7DQogICAgICAgIHRoaXMuRG9jdW1lbnRJRCA9ICJjb250ZW50X3NldHRpbmdzIjsNCiAgICB9DQogICAgY3JlYXRlQ2F0ZWdvcnlIZWFkbGluZSh2YWx1ZSkgew0KICAgICAgICB2YXIgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIkg0Iik7DQogICAgICAgIGVsZW1lbnQuaW5uZXJIVE1MID0gdmFsdWU7DQogICAgICAgIHJldHVybiBlbGVtZW50Ow0KICAgIH0NCiAgICBjcmVhdGVIUigpIHsNCiAgICAgICAgdmFyIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJIUiIpOw0KICAgICAgICByZXR1cm4gZWxlbWVudDsNCiAgICB9DQogICAgY3JlYXRlU2V0dGluZ3Moc2V0dGluZ3NLZXkpIHsNCiAgICAgICAgdmFyIHNldHRpbmcgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJUUiIpOw0KICAgICAgICB2YXIgY29udGVudCA9IG5ldyBQb3B1cENvbnRlbnQoKTsNCiAgICAgICAgdmFyIGRhdGEgPSBTRVJWRVJbInNldHRpbmdzIl1bc2V0dGluZ3NLZXldOw0KICAgICAgICBzd2l0Y2ggKHNldHRpbmdzS2V5KSB7DQogICAgICAgICAgICAvLyBUZXh0IGlucHV0cw0KICAgICAgICAgICAgY2FzZSAidXBkYXRlIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLnVwZGF0ZS50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsICJ1cGRhdGUiLCBkYXRhLnRvU3RyaW5nKCkpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3suc2V0dGluZ3MudXBkYXRlLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJiYWNrdXAucGF0aCI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5iYWNrdXBQYXRoLnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgImJhY2t1cC5wYXRoIiwgZGF0YSk7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5zZXR0aW5ncy5iYWNrdXBQYXRoLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ0ZW1wLnBhdGgiOg0KICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MudGVtcFBhdGgudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCAidGVtcC5wYXRoIiwgZGF0YSk7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5zZXR0aW5ncy50bXBQYXRoLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ1c2VyLmFnZW50IjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLnVzZXJBZ2VudC50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsICJ1c2VyLmFnZW50IiwgZGF0YSk7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5zZXR0aW5ncy51c2VyQWdlbnQucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImJ1ZmZlci50aW1lb3V0IjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmJ1ZmZlclRpbWVvdXQudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCAiYnVmZmVyLnRpbWVvdXQiLCBkYXRhKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnNldHRpbmdzLmJ1ZmZlclRpbWVvdXQucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImZmbXBlZy5wYXRoIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmZmbXBlZ1BhdGgudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCAiZmZtcGVnLnBhdGgiLCBkYXRhKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnNldHRpbmdzLmZmbXBlZ1BhdGgucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImZmbXBlZy5vcHRpb25zIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmZmbXBlZ09wdGlvbnMudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCAiZmZtcGVnLm9wdGlvbnMiLCBkYXRhKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnNldHRpbmdzLmZmbXBlZ09wdGlvbnMucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInZsYy5wYXRoIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLnZsY1BhdGgudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCAidmxjLnBhdGgiLCBkYXRhKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnNldHRpbmdzLnZsY1BhdGgucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInZsYy5vcHRpb25zIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLnZsY09wdGlvbnMudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCAidmxjLm9wdGlvbnMiLCBkYXRhKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnNldHRpbmdzLnZsY09wdGlvbnMucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIC8vIENoZWNrYm94ZXMNCiAgICAgICAgICAgIGNhc2UgImF1dGhlbnRpY2F0aW9uLndlYiI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5hdXRoZW50aWNhdGlvbldFQi50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChzZXR0aW5nc0tleSk7DQogICAgICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGE7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiYXV0aGVudGljYXRpb24ucG1zIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmF1dGhlbnRpY2F0aW9uUE1TLnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KHNldHRpbmdzS2V5KTsNCiAgICAgICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJhdXRoZW50aWNhdGlvbi5tM3UiOg0KICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MuYXV0aGVudGljYXRpb25NM1UudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goc2V0dGluZ3NLZXkpOw0KICAgICAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImF1dGhlbnRpY2F0aW9uLnhtbCI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5hdXRoZW50aWNhdGlvblhNTC50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChzZXR0aW5nc0tleSk7DQogICAgICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGE7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiYXV0aGVudGljYXRpb24uYXBpIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmF1dGhlbnRpY2F0aW9uQVBJLnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KHNldHRpbmdzS2V5KTsNCiAgICAgICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJmaWxlcy51cGRhdGUiOg0KICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MuZmlsZXNVcGRhdGUudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goc2V0dGluZ3NLZXkpOw0KICAgICAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImNhY2hlLmltYWdlcyI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5jYWNoZUltYWdlcy50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChzZXR0aW5nc0tleSk7DQogICAgICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGE7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAieGVwZy5yZXBsYWNlLm1pc3NpbmcuaW1hZ2VzIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLnJlcGxhY2VFbXB0eUltYWdlcy50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChzZXR0aW5nc0tleSk7DQogICAgICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGE7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAieHRldmVBdXRvVXBkYXRlIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLnh0ZXZlQXV0b1VwZGF0ZS50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChzZXR0aW5nc0tleSk7DQogICAgICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGE7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiYXBpIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmFwaS50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChzZXR0aW5nc0tleSk7DQogICAgICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGE7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgLy8gU2VsZWN0DQogICAgICAgICAgICBjYXNlICJ0dW5lciI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy50dW5lci50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIHRleHQgPSBuZXcgQXJyYXkoKTsNCiAgICAgICAgICAgICAgICB2YXIgdmFsdWVzID0gbmV3IEFycmF5KCk7DQogICAgICAgICAgICAgICAgZm9yICh2YXIgaSA9IDE7IGkgPD0gMTAwOyBpKyspIHsNCiAgICAgICAgICAgICAgICAgICAgdGV4dC5wdXNoKGkpOw0KICAgICAgICAgICAgICAgICAgICB2YWx1ZXMucHVzaChpKTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgdmFyIHNlbGVjdCA9IGNvbnRlbnQuY3JlYXRlU2VsZWN0KHRleHQsIHZhbHVlcywgZGF0YSwgc2V0dGluZ3NLZXkpOw0KICAgICAgICAgICAgICAgIHNlbGVjdC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChzZWxlY3QpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiZXBnU291cmNlIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmVwZ1NvdXJjZS50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIHRleHQgPSBbIlBNUyIsICJYRVBHIl07DQogICAgICAgICAgICAgICAgdmFyIHZhbHVlcyA9IFsiUE1TIiwgIlhFUEciXTsNCiAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCBkYXRhLCBzZXR0aW5nc0tleSk7DQogICAgICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKHNlbGVjdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJiYWNrdXAua2VlcCI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5iYWNrdXBLZWVwLnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgdGV4dCA9IFsiNSIsICIxMCIsICIyMCIsICIzMCIsICI0MCIsICI1MCJdOw0KICAgICAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBbIjUiLCAiMTAiLCAiMjAiLCAiMzAiLCAiNDAiLCAiNTAiXTsNCiAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCBkYXRhLCBzZXR0aW5nc0tleSk7DQogICAgICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKHNlbGVjdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJidWZmZXIuc2l6ZS5rYiI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5idWZmZXJTaXplLnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgdGV4dCA9IFsiMC41IE1CIiwgIjEgTUIiLCAiMiBNQiIsICIzIE1CIiwgIjQgTUIiLCAiNSBNQiIsICI2IE1CIiwgIjcgTUIiLCAiOCBNQiJdOw0KICAgICAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBbIjUxMiIsICIxMDI0IiwgIjIwNDgiLCAiMzA3MiIsICI0MDk2IiwgIjUxMjAiLCAiNjE0NCIsICI3MTY4IiwgIjgxOTIiXTsNCiAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCBkYXRhLCBzZXR0aW5nc0tleSk7DQogICAgICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKHNlbGVjdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJidWZmZXIiOg0KICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3Muc3RyZWFtQnVmZmVyaW5nLnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgdGV4dCA9IFsie3suc2V0dGluZ3Muc3RyZWFtQnVmZmVyaW5nLmluZm9fZmFsc2V9fSIsICJ4VGVWZTogKHt7LnNldHRpbmdzLnN0cmVhbUJ1ZmZlcmluZy5pbmZvX3h0ZXZlfX0pIiwgIkZGbXBlZzogKHt7LnNldHRpbmdzLnN0cmVhbUJ1ZmZlcmluZy5pbmZvX2ZmbXBlZ319KSIsICJWTEM6ICh7ey5zZXR0aW5ncy5zdHJlYW1CdWZmZXJpbmcuaW5mb192bGN9fSkiXTsNCiAgICAgICAgICAgICAgICB2YXIgdmFsdWVzID0gWyItIiwgInh0ZXZlIiwgImZmbXBlZyIsICJ2bGMiXTsNCiAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCBkYXRhLCBzZXR0aW5nc0tleSk7DQogICAgICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKHNlbGVjdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ1ZHB4eSI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy51ZHB4eS50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsICJ1ZHB4eSIsIGRhdGEpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3suc2V0dGluZ3MudWRweHkucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgfQ0KICAgICAgICByZXR1cm4gc2V0dGluZzsNCiAgICB9DQogICAgY3JlYXRlRGVzY3JpcHRpb24oc2V0dGluZ3NLZXkpIHsNCiAgICAgICAgdmFyIGRlc2NyaXB0aW9uID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVFIiKTsNCiAgICAgICAgdmFyIHRleHQ7DQogICAgICAgIHN3aXRjaCAoc2V0dGluZ3NLZXkpIHsNCiAgICAgICAgICAgIGNhc2UgImF1dGhlbnRpY2F0aW9uLndlYiI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5hdXRoZW50aWNhdGlvbldFQi5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImF1dGhlbnRpY2F0aW9uLm0zdSI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5hdXRoZW50aWNhdGlvbk0zVS5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImF1dGhlbnRpY2F0aW9uLnBtcyI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5hdXRoZW50aWNhdGlvblBNUy5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImF1dGhlbnRpY2F0aW9uLnhtbCI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5hdXRoZW50aWNhdGlvblhNTC5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImF1dGhlbnRpY2F0aW9uLmFwaSI6DQogICAgICAgICAgICAgICAgaWYgKFNFUlZFUlsic2V0dGluZ3MiXVsiYXV0aGVudGljYXRpb24ud2ViIl0gPT0gdHJ1ZSkgew0KICAgICAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLmF1dGhlbnRpY2F0aW9uQVBJLmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInh0ZXZlQXV0b1VwZGF0ZSI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy54dGV2ZUF1dG9VcGRhdGUuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJiYWNrdXAua2VlcCI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5iYWNrdXBLZWVwLmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiYmFja3VwLnBhdGgiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MuYmFja3VwUGF0aC5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInRlbXAucGF0aCI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy50ZW1wUGF0aC5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImJ1ZmZlciI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5zdHJlYW1CdWZmZXJpbmcuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJidWZmZXIuc2l6ZS5rYiI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5idWZmZXJTaXplLmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiYnVmZmVyLnRpbWVvdXQiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MuYnVmZmVyVGltZW91dC5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInVzZXIuYWdlbnQiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MudXNlckFnZW50LmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiZmZtcGVnLnBhdGgiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MuZmZtcGVnUGF0aC5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImZmbXBlZy5vcHRpb25zIjoNCiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLmZmbXBlZ09wdGlvbnMuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ2bGMucGF0aCI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy52bGNQYXRoLmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAidmxjLm9wdGlvbnMiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MudmxjT3B0aW9ucy5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImVwZ1NvdXJjZSI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5lcGdTb3VyY2UuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ0dW5lciI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy50dW5lci5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInVwZGF0ZSI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy51cGRhdGUuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJhcGkiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MuYXBpLmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiZmlsZXMudXBkYXRlIjoNCiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLmZpbGVzVXBkYXRlLmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiY2FjaGUuaW1hZ2VzIjoNCiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLmNhY2hlSW1hZ2VzLmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAieGVwZy5yZXBsYWNlLm1pc3NpbmcuaW1hZ2VzIjoNCiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLnJlcGxhY2VFbXB0eUltYWdlcy5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInVkcHh5IjoNCiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLnVkcHh5LmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgICAgICB0ZXh0ID0gIiI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIH0NCiAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAiIjsNCiAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICB2YXIgcHJlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiUFJFIik7DQogICAgICAgIHByZS5pbm5lckhUTUwgPSB0ZXh0Ow0KICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKHByZSk7DQogICAgICAgIGRlc2NyaXB0aW9uLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgIGRlc2NyaXB0aW9uLmFwcGVuZENoaWxkKHRkUmlnaHQpOw0KICAgICAgICByZXR1cm4gZGVzY3JpcHRpb247DQogICAgfQ0KfQ0KY2xhc3MgU2V0dGluZ3NDYXRlZ29yeUl0ZW0gZXh0ZW5kcyBTZXR0aW5nc0NhdGVnb3J5IHsNCiAgICBjb25zdHJ1Y3RvcihoZWFkbGluZSwgc2V0dGluZ3NLZXlzKSB7DQogICAgICAgIHN1cGVyKCk7DQogICAgICAgIHRoaXMuaGVhZGxpbmUgPSBoZWFkbGluZTsNCiAgICAgICAgdGhpcy5zZXR0aW5nc0tleXMgPSBzZXR0aW5nc0tleXM7DQogICAgfQ0KICAgIGNyZWF0ZUNhdGVnb3J5KCkgew0KICAgICAgICB2YXIgaGVhZGxpbmUgPSB0aGlzLmNyZWF0ZUNhdGVnb3J5SGVhZGxpbmUodGhpcy5oZWFkbGluZSk7DQogICAgICAgIHZhciBzZXR0aW5nc0tleXMgPSB0aGlzLnNldHRpbmdzS2V5czsNCiAgICAgICAgdmFyIGRvYyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHRoaXMuRG9jdW1lbnRJRCk7DQogICAgICAgIGRvYy5hcHBlbmRDaGlsZChoZWFkbGluZSk7DQogICAgICAgIC8vIENyZWF0ZSBhIHRhYmxlIGZvciB0aGUgY2F0ZWdvcnkNCiAgICAgICAgdmFyIHRhYmxlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEFCTEUiKTsNCiAgICAgICAgdmFyIGtleXMgPSBzZXR0aW5nc0tleXMuc3BsaXQoIiwiKTsNCiAgICAgICAga2V5cy5mb3JFYWNoKHNldHRpbmdzS2V5ID0+IHsNCiAgICAgICAgICAgIHN3aXRjaCAoc2V0dGluZ3NLZXkpIHsNCiAgICAgICAgICAgICAgICBjYXNlICJhdXRoZW50aWNhdGlvbi5wbXMiOg0KICAgICAgICAgICAgICAgIGNhc2UgImF1dGhlbnRpY2F0aW9uLm0zdSI6DQogICAgICAgICAgICAgICAgY2FzZSAiYXV0aGVudGljYXRpb24ueG1sIjoNCiAgICAgICAgICAgICAgICBjYXNlICJhdXRoZW50aWNhdGlvbi5hcGkiOg0KICAgICAgICAgICAgICAgICAgICBpZiAoU0VSVkVSWyJzZXR0aW5ncyJdWyJhdXRoZW50aWNhdGlvbi53ZWIiXSA9PSBmYWxzZSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBkZWZhdWx0Og0KICAgICAgICAgICAgICAgICAgICB2YXIgaXRlbSA9IHRoaXMuY3JlYXRlU2V0dGluZ3Moc2V0dGluZ3NLZXkpOw0KICAgICAgICAgICAgICAgICAgICB2YXIgZGVzY3JpcHRpb24gPSB0aGlzLmNyZWF0ZURlc2NyaXB0aW9uKHNldHRpbmdzS2V5KTsNCiAgICAgICAgICAgICAgICAgICAgdGFibGUuYXBwZW5kQ2hpbGQoaXRlbSk7DQogICAgICAgICAgICAgICAgICAgIHRhYmxlLmFwcGVuZENoaWxkKGRlc2NyaXB0aW9uKTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICB9DQogICAgICAgIH0pOw0KICAgICAgICBkb2MuYXBwZW5kQ2hpbGQodGFibGUpOw0KICAgICAgICBkb2MuYXBwZW5kQ2hpbGQodGhpcy5jcmVhdGVIUigpKTsNCiAgICB9DQp9DQpmdW5jdGlvbiBzaG93U2V0dGluZ3MoKSB7DQogICAgY29uc29sZS5sb2coIlNFVFRJTkdTIik7DQogICAgZm9yIChsZXQgaSA9IDA7IGkgPCBzZXR0aW5nc0NhdGVnb3J5Lmxlbmd0aDsgaSsrKSB7DQogICAgICAgIHNldHRpbmdzQ2F0ZWdvcnlbaV0uY3JlYXRlQ2F0ZWdvcnkoKTsNCiAgICB9DQp9DQpmdW5jdGlvbiBzYXZlU2V0dGluZ3MoKSB7DQogICAgY29uc29sZS5sb2coIlNhdmUgU2V0dGluZ3MiKTsNCiAgICB2YXIgY21kID0gInNhdmVTZXR0aW5ncyI7DQogICAgdmFyIGRpdiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb250ZW50X3NldHRpbmdzIik7DQogICAgdmFyIHNldHRpbmdzID0gZGl2LmdldEVsZW1lbnRzQnlDbGFzc05hbWUoImNoYW5nZWQiKTsNCiAgICB2YXIgbmV3U2V0dGluZ3MgPSBuZXcgT2JqZWN0KCk7DQogICAgZm9yIChsZXQgaSA9IDA7IGkgPCBzZXR0aW5ncy5sZW5ndGg7IGkrKykgew0KICAgICAgICB2YXIgbmFtZTsNCiAgICAgICAgdmFyIHZhbHVlOw0KICAgICAgICBzd2l0Y2ggKHNldHRpbmdzW2ldLnRhZ05hbWUpIHsNCiAgICAgICAgICAgIGNhc2UgIklOUFVUIjoNCiAgICAgICAgICAgICAgICBzd2l0Y2ggKHNldHRpbmdzW2ldLnR5cGUpIHsNCiAgICAgICAgICAgICAgICAgICAgY2FzZSAiY2hlY2tib3giOg0KICAgICAgICAgICAgICAgICAgICAgICAgbmFtZSA9IHNldHRpbmdzW2ldLm5hbWU7DQogICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IHNldHRpbmdzW2ldLmNoZWNrZWQ7DQogICAgICAgICAgICAgICAgICAgICAgICBuZXdTZXR0aW5nc1tuYW1lXSA9IHZhbHVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgICAgIGNhc2UgInRleHQiOg0KICAgICAgICAgICAgICAgICAgICAgICAgbmFtZSA9IHNldHRpbmdzW2ldLm5hbWU7DQogICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IHNldHRpbmdzW2ldLnZhbHVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgc3dpdGNoIChuYW1lKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAidXBkYXRlIjoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSB2YWx1ZS5zcGxpdCgiLCIpOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IHZhbHVlLmZpbHRlcihmdW5jdGlvbiAoZSkgeyByZXR1cm4gZTsgfSk7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgImJ1ZmZlci50aW1lb3V0IjoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSBwYXJzZUZsb2F0KHZhbHVlKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgIG5ld1NldHRpbmdzW25hbWVdID0gdmFsdWU7DQogICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJTRUxFQ1QiOg0KICAgICAgICAgICAgICAgIG5hbWUgPSBzZXR0aW5nc1tpXS5uYW1lOw0KICAgICAgICAgICAgICAgIHZhbHVlID0gc2V0dGluZ3NbaV0udmFsdWU7DQogICAgICAgICAgICAgICAgLy8gSWYgdGhlIHZhbHVlIGlzIGEgbnVtYmVyLCBzdG9yZSBpdCBhcyBhIG51bWJlcg0KICAgICAgICAgICAgICAgIGlmIChpc05hTih2YWx1ZSkpIHsNCiAgICAgICAgICAgICAgICAgICAgbmV3U2V0dGluZ3NbbmFtZV0gPSB2YWx1ZTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgZWxzZSB7DQogICAgICAgICAgICAgICAgICAgIG5ld1NldHRpbmdzW25hbWVdID0gcGFyc2VJbnQodmFsdWUpOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgfQ0KICAgIH0NCiAgICB2YXIgZGF0YSA9IG5ldyBPYmplY3QoKTsNCiAgICBkYXRhWyJzZXR0aW5ncyJdID0gbmV3U2V0dGluZ3M7DQogICAgdmFyIHNlcnZlciA9IG5ldyBTZXJ2ZXIoY21kKTsNCiAgICBzZXJ2ZXIucmVxdWVzdChkYXRhKTsNCn0NCg==" - webUI["html/lang/en.json"] = "ew0KICAibWFpbk1lbnUiOg0KICB7DQogICAgIml0ZW0iOg0KICAgIHsNCiAgICAgICJwbGF5bGlzdCI6ICJQbGF5bGlzdCIsDQogICAgICAicG1zSUQiOiAiUE1TIElEIiwNCiAgICAgICJmaWx0ZXIiOiAiRmlsdGVyIiwNCiAgICAgICJ4bWx0diI6ICJYTUxUViIsDQogICAgICAibWFwcGluZyI6ICJNYXBwaW5nIiwNCiAgICAgICJ1c2VycyI6ICJVc2VycyIsDQogICAgICAic2V0dGluZ3MiOiAiU2V0dGluZ3MiLA0KICAgICAgImxvZyI6ICJMb2ciLA0KICAgICAgImxvZ291dCI6ICJMb2dvdXQiDQogICAgfSwNCiAgICAiaGVhZGxpbmUiOg0KICAgIHsNCiAgICAgICJwbGF5bGlzdCI6ICJMb2NhbCBvciByZW1vdGUgcGxheWxpc3RzIiwNCiAgICAgICJmaWx0ZXIiOiAiRmlsdGVyIHBsYXlsaXN0IiwNCiAgICAgICJ4bWx0diI6ICJMb2NhbCBvciByZW1vdGUgWE1MVFYgZmlsZXMiLA0KICAgICAgIm1hcHBpbmciOiAiTWFwIHBsYXlsaXN0IGNoYW5uZWxzIHRvIEVQRyBjaGFubmVscyIsDQogICAgICAidXNlcnMiOiAiVXNlciBtYW5hZ2VtZW50IiwNCiAgICAgICJzZXR0aW5ncyI6ICJTZXR0aW5ncyIsDQogICAgICAibG9nIjogIkxvZyIsDQogICAgICAibG9nb3V0IjogIkxvZ291dCINCiAgICB9DQogIH0sDQogICJjb25maXJtIjoNCiAgew0KICAgICJyZXN0b3JlIjogIkFsbCBkYXRhIHdpbGwgYmUgcmVwbGFjZWQgd2l0aCB0aG9zZSBmcm9tIHRoZSBiYWNrdXAuIFNob3VsZCB0aGUgZmlsZXMgYmUgcmVzdG9yZWQ/Ig0KICB9LA0KICAiYWxlcnQiOg0KICB7DQogICAgImZpbGVMb2FkaW5nRXJyb3IiOiAiRmlsZSBjb3VsZG4ndCBiZSBsb2FkZWQiLA0KICAgICJpbnZhbGlkQ2hhbm5lbE51bWJlciI6ICJJbnZhbGlkIGNoYW5uZWwgbnVtYmVyIiwNCiAgICAibWlzc2luZ0lucHV0IjogIk1pc3NpbmcgaW5wdXQiDQogIH0sDQogICJidXR0b24iOg0KICB7DQogICAgImJhY2siOiAiQmFjayIsDQogICAgImJhY2t1cCI6ICJCYWNrdXAiLA0KICAgICJidWxrRWRpdCI6ICJCdWxrIEVkaXQiLA0KICAgICJjYW5jZWwiOiAiQ2FuY2VsIiwNCiAgICAiZGVsZXRlIjogIkRlbGV0ZSIsDQogICAgImRvbmUiOiAiRG9uZSIsDQogICAgImxvZ2luIjogIkxvZ2luIiwNCiAgICAibmV3IjogIk5ldyIsDQogICAgIm5leHQiOiAiTmV4dCIsDQogICAgInJlc3RvcmUiOiAiUmVzdG9yZSIsDQogICAgInNhdmUiOiAiU2F2ZSIsDQogICAgInNlYXJjaCI6ICJTZWFyY2giLA0KICAgICJ1cGRhdGUiOiAiVXBkYXRlIiwNCiAgICAiY3JhZXRlQWNjb3VudCI6ICJDcmVhdGUgQWNjb3VudCIsDQogICAgInJlc2V0TG9ncyI6ICJSZXNldCBMb2dzIiwNCiAgICAidXBsb2FkTG9nbyI6ICJVcGxvYWQgTG9nbyINCiAgfSwNCiAgImZpbHRlciI6DQogIHsNCiAgICAidGFibGUiOg0KICAgIHsNCiAgICAgICJzdGFydGluZ0NoYW5uZWwiOiAiU3RhcnRpbmcgQ2guIE5vLiIsDQogICAgICAibmFtZSI6ICJGaWx0ZXIgTmFtZSIsDQogICAgICAidHlwZSI6ICJGaWx0ZXIgVHlwZSIsDQogICAgICAiZmlsdGVyIjogIkZpbHRlciINCiAgICB9LA0KICAgICJjdXN0b20iOiAiQ3VzdG9tIiwNCiAgICAiZ3JvdXAiOiAiTTNVIEdyb3VwIiwNCiAgICAibmFtZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIkZpbHRlciBOYW1lIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJGaWx0ZXIgbmFtZSIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgImRlc2NyaXB0aW9uIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiRGVzY3JpcHRpb24iLA0KICAgICAgInBsYWNlaG9sZGVyIjogIkRlc2NyaXB0aW9uIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAidHlwZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIlR5cGUiLA0KICAgICAgImdyb3VwVGl0bGUiOiAiR3JvdXAgVGl0bGUiLA0KICAgICAgImN1c3RvbUZpbHRlciI6ICJDdXN0b20gRmlsdGVyIg0KICAgIH0sDQogICAgImNhc2VTZW5zaXRpdmUiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJDYXNlIFNlbnNpdGl2ZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAiZmlsdGVyUnVsZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIkZpbHRlciBSdWxlIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJTcG9ydCB7SER9ICF7RVMsSVR9IiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAiZmlsdGVyR3JvdXAiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJHcm91cCBUaXRsZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJTZWxlY3QgYSBNM1UgZ3JvdXAuIChDb3VudGVyKTxicj5DaGFuZ2luZyB0aGUgZ3JvdXAgdGl0bGUgaW4gdGhlIE0zVSBpbnZhbGlkYXRlcyB0aGUgZmlsdGVyLiINCiAgICB9LA0KICAgICJpbmNsdWRlIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiSW5jbHVkZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiRkhELFVIRCIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiQ2hhbm5lbCBuYW1lIG11c3QgaW5jbHVkZS48YnI+KENvbW1hIHNlcGFyYXRlZCkgQ29tbWEgbWVhbnMgb3IiDQogICAgfSwNCiAgICAiZXhjbHVkZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIkV4Y2x1ZGUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIkVTLElUIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJDaGFubmVsIG5hbWUgbXVzdCBub3QgY29udGFpbi48YnI+KENvbW1hIHNlcGFyYXRlZCkgQ29tbWEgbWVhbnMgb3IiDQogICAgfSwNCiAgICAicHJlc2VydmVNYXBwaW5nIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiUHJlc2VydmUgRXhpc3RpbmcgTTNVPGJyPkNoYW5uZWwgTnVtYmVycyIsDQogICAgICAicGFsY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJQcmVzZXJ2ZSBleGlzdGluZyBNM1UgcGxheWxpc3QgY2hhbm5lbCBudW1iZXJzPyINCiAgICB9LA0KICAgICJzdGFydGluZ0NoYW5uZWwiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJTdGFydGluZyBDaGFubmVsIE51bWJlciIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAiZGVmYXVsdE1pc3NpbmdFUEciOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJGaWxsIE1pc3NpbmcgRVBHIERhdGEiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiV2hlbiB0aGVyZSBpcyBubyBtYXRjaGluZyBFUEcgZGF0YSBmb3IgY2hhbm5lbCwgPGJyPmF1dG9maWxsIHdpdGggeFRlVmUgZHVtbXkgRVBHIGRhdGE/Ig0KICAgIH0NCg0KICB9LA0KICAicGxheWxpc3QiOg0KICB7DQogICAgInRhYmxlIjoNCiAgICB7DQogICAgICAicGxheWxpc3QiOiAiUGxheWxpc3QiLA0KICAgICAgInR1bmVyIjogIlR1bmVyIiwNCiAgICAgICJsYXN0VXBkYXRlIjogIkxhc3QgVXBkYXRlIiwNCiAgICAgICJhdmFpbGFiaWxpdHkiOiAiQXZhaWxhYmlsaXR5IiwNCiAgICAgICJ0eXBlIjogIlR5cGUiLA0KICAgICAgInN0cmVhbXMiOiAiU3RyZWFtcyIsDQogICAgICAiZ3JvdXBUaXRsZSI6ICJncm91cC10aXRsZSIsDQogICAgICAidHZnSUQiOiAidHZnLWlkIiwNCiAgICAgICJ1bmlxdWVJRCI6ICJVbmlxdWUgSUQiDQogICAgfSwNCiAgICAicGxheWxpc3RUeXBlIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiUGxheWxpc3QgdHlwZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAidHlwZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIlR5cGUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgIm5hbWUiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJOYW1lIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJQbGF5bGlzdCBuYW1lIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAiZGVzY3JpcHRpb24iOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJEZXNjcmlwdGlvbiIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiRGVzY3JpcHRpb24iLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJmaWxlTTNVIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiTTNVIEZpbGUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIkZpbGUgcGF0aCBvciBVUkwgb2YgdGhlIE0zVSIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgImZpbGVIREhSIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiSERIb21lUnVuIElQIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJJUCBhZGRyZXNzIGFuZCBwb3J0ICgxOTIuMTY4LjEuMTA6NTAwNCkiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJ0dW5lciI6DQogICAgew0KICAgICAgInRpdGxlIjogIlR1bmVyIC8gU3RyZWFtcyIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJOdW1iZXIgb2YgcGFyYWxsZWwgY29ubmVjdGlvbnMgdGhhdCBjYW4gYmUgZXN0YWJsaXNoZWQgdG8gdGhlIHByb3ZpZGVyLiA8YnI+T25seSBhdmFpbGFibGUgd2l0aCBhY3RpdmF0ZWQgYnVmZmVyLjxicj5OZXcgc2V0dGluZ3Mgd2lsbCBvbmx5IGJlIGFwcGxpZWQgYWZ0ZXIgcXVpdHRpbmcgYWxsIHN0cmVhbXMuIg0KICAgIH0NCiAgfSwNCiAgInhtbHR2IjoNCiAgew0KICAgICJ0YWJsZSI6DQogICAgew0KICAgICAgImd1aWRlIjogIkd1aWRlIiwNCiAgICAgICJsYXN0VXBkYXRlIjogIkxhc3QgVXBkYXRlIiwNCiAgICAgICJhdmFpbGFiaWxpdHkiOiAiQXZhaWxhYmlsaXR5IiwNCiAgICAgICJjaGFubmVscyI6ICJDaGFubmVscyIsDQogICAgICAicHJvZ3JhbXMiOiAiUHJvZ3JhbXMiDQogICAgfSwNCiAgICAibmFtZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIk5hbWUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIkd1aWRlIG5hbWUiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJkZXNjcmlwdGlvbiI6DQogICAgew0KICAgICAgInRpdGxlIjogIkRlc2NyaXB0aW9uIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJEZXNjcmlwdGlvbiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgImZpbGVYTUxUViI6DQogICAgew0KICAgICAgInRpdGxlIjogIlhNTFRWIEZpbGUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIkZpbGUgcGF0aCBvciBVUkwgb2YgdGhlIFhNTFRWIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfQ0KICB9LA0KICAibWFwcGluZyI6DQogIHsNCiAgICAidGFibGUiOg0KICAgIHsNCiAgICAgICJjaE5vIjogIkNoLiBOby4iLA0KICAgICAgImxvZ28iOiAiTG9nbyIsDQogICAgICAiY2hhbm5lbE5hbWUiOiAiQ2hhbm5lbCBOYW1lIiwNCiAgICAgICJwbGF5bGlzdCI6ICJQbGF5bGlzdCIsDQogICAgICAiZ3JvdXBUaXRsZSI6ICJHcm91cCBUaXRsZSIsDQogICAgICAieG1sdHZGaWxlIjogIlhNTFRWIEZpbGUiLA0KICAgICAgInhtbHR2SUQiOiAiWE1MVFYgSUQiLA0KICAgICAgInRpbWVzaGlmdCI6ICJUaW1lc2hpZnQiDQogICAgfSwNCiAgICAiYWN0aXZlIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiQWN0aXZlIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJjaGFubmVsTmFtZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIkNoYW5uZWwgTmFtZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAiZGVzY3JpcHRpb24iOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJDaGFubmVsIERlc2NyaXB0aW9uIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJVc2VkIGJ5IHRoZSBEdW1teSBhcyBhbiBYTUwgZGVzY3JpcHRpb24iLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJ1cGRhdGVDaGFubmVsTmFtZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIlVwZGF0ZSBDaGFubmVsIE5hbWUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgInVwZGF0ZUNoYW5uZWxHcm91cCI6DQogICAgew0KICAgICAgInRpdGxlIjogIlVwZGF0ZSBDaGFubmVsIEdyb3VwIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIklmIGNoZWNrZWQsIHVzZSBncm91cCBmcm9tIHRoZSBkYXRhYmFzZSINCiAgICB9LA0KICAgICJjaGFubmVsTG9nbyI6DQogICAgew0KICAgICAgInRpdGxlIjogIkxvZ28gVVJMIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJ1cGRhdGVDaGFubmVsTG9nbyI6DQogICAgew0KICAgICAgInRpdGxlIjogIlVwZGF0ZSBDaGFubmVsIExvZ28iLA0KICAgICAgInBsYWNlaG9sZGVyIjogIiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgImVwZ0NhdGVnb3J5IjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiRVBHIENhdGVnb3J5IiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJtM3VHcm91cFRpdGxlIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiR3JvdXAgVGl0bGUgKHh0ZXZlLm0zdSkiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgInhtbHR2RmlsZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIlhNTFRWIEZpbGUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgInhtbHR2Q2hhbm5lbCI6DQogICAgew0KICAgICAgInRpdGxlIjogIlhNTFRWIENoYW5uZWwiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgInRpbWVzaGlmdCI6DQogICAgew0KICAgICAgInRpdGxlIjogIlRpbWVzaGlmdCIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiMCIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0NCiAgfSwNCiAgInVzZXJzIjoNCiAgew0KICAgICJ0YWJsZSI6DQogICAgew0KICAgICAgInVzZXJuYW1lIjogIlVzZXJuYW1lIiwNCiAgICAgICJwYXNzd29yZCI6ICJQYXNzd29yZCIsDQogICAgICAid2ViIjogIldFQiIsDQogICAgICAicG1zIjogIlBNUyIsDQogICAgICAibTN1IjogIk0zVSIsDQogICAgICAieG1sIjogIlhNTCIsDQogICAgICAiYXBpIjogIkFQSSINCiAgICB9LA0KICAgICJ1c2VybmFtZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIlVzZXJuYW1lIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJVc2VybmFtZSIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgInBhc3N3b3JkIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiUGFzc3dvcmQiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIlBhc3N3b3JkIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAiY29uZmlybSI6DQogICAgew0KICAgICAgInRpdGxlIjogIkNvbmZpcm0iLA0KICAgICAgInBsYWNlaG9sZGVyIjogIlBhc3N3b3JkIGNvbmZpcm0iLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJ3ZWIiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJXZWIgQWNjZXNzIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJwbXMiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJQTVMgQWNjZXNzIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJtM3UiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJNM1UgQWNjZXNzIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJ4bWwiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJYTUwgQWNjZXNzIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJhcGkiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJBUEkgQWNjZXNzIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9DQogIH0sDQogICJzZXR0aW5ncyI6DQogIHsNCiAgICAiY2F0ZWdvcnkiOg0KICAgIHsNCiAgICAgICJnZW5lcmFsIjogIkdlbmVyYWwiLA0KICAgICAgImZpbGVzIjogIkZpbGVzIiwNCiAgICAgICJzdHJlYW1pbmciOiAiU3RyZWFtaW5nIiwNCiAgICAgICJiYWNrdXAiOiAiQmFja3VwIiwNCiAgICAgICJhdXRoZW50aWNhdGlvbiI6ICJBdXRoZW50aWNhdGlvbiINCiAgICB9LA0KICAgICJ1cGRhdGUiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJTY2hlZHVsZSBmb3IgdXBkYXRpbmcgKFBsYXlsaXN0LCBYTUxUViwgQmFja3VwKSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiMDAwMCwxMDAwLDIwMDAiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIlRpbWUgaW4gMjQgaG91ciBmb3JtYXQgKDA4MDAgPSA4OjAwIGFtKS4gTW9yZSB0aW1lcyBjYW4gYmUgZW50ZXJlZCBjb21tYSBzZXBhcmF0ZWQuIExlYXZlIHRoaXMgZmllbGQgZW1wdHkgaWYgbm8gdXBkYXRlcyBhcmUgdG8gYmUgY2FycmllZCBvdXQuIg0KICAgIH0sDQogICAgImFwaSI6DQogICAgew0KICAgICAgInRpdGxlIjogIkFQSSBJbnRlcmZhY2UiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIlZpYSBBUEkgaW50ZXJmYWNlIGl0IGlzIHBvc3NpYmxlIHRvIHNlbmQgY29tbWFuZHMgdG8geFRlVmUuIEFQSSBkb2N1bWVudGF0aW9uIGlzIDxhIGhyZWY9J2h0dHBzOi8vZ2l0aHViLmNvbS94dGV2ZS1wcm9qZWN0L3hUZVZlLURvY3VtZW50YXRpb24vYmxvYi9tYXN0ZXIvZW4vY29uZmlndXJhdGlvbi5tZCNhcGknPmhlcmU8L2E+Ig0KICAgIH0sDQogICAgImVwZ1NvdXJjZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIkVQRyBTb3VyY2UiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIlBNUzo8YnI+LSBVc2UgRVBHIGRhdGEgZnJvbSBQbGV4IG9yIEVtYnkgPGJyPjxicj5YRVBHOjxicj4tIFVzZSBvZiBvbmUgb3IgbW9yZSBYTUxUViBmaWxlczxicj4tIENoYW5uZWwgbWFuYWdlbWVudDxicj4tIE0zVSAvIFhNTFRWIGV4cG9ydCAoSFRUUCBsaW5rIGZvciBJUFRWIGFwcHMpIg0KICAgIH0sDQogICAgInR1bmVyIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiTnVtYmVyIG9mIFR1bmVycyIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiTnVtYmVyIG9mIHBhcmFsbGVsIGNvbm5lY3Rpb25zIHRoYXQgY2FuIGJlIGVzdGFibGlzaGVkIHRvIHRoZSBwcm92aWRlci48YnI+QXZhaWxhYmxlIGZvcjogUGxleCwgRW1ieSAoSERIUiksIE0zVSAod2l0aCBhY3RpdmUgYnVmZmVyKS48YnI+QWZ0ZXIgYSBjaGFuZ2UsIHhUZVZlIG11c3QgYmUgZGVsZXRlIGluIHRoZSBQbGV4IC8gRW1ieSBEVlIgc2V0dGluZ3MgYW5kIHNldCB1cCBhZ2Fpbi4iDQogICAgfSwNCiAgICAiZmlsZXNVcGRhdGUiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJVcGRhdGVzIGFsbCBmaWxlcyBhdCBzdGFydHVwIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJVcGRhdGVzIGFsbCBwbGF5bGlzdHMsIHR1bmVyIGFuZCBYTUxUViBmaWxlcyBhdCBzdGFydHVwLiINCiAgICB9LA0KICAgICJjYWNoZUltYWdlcyI6DQogICAgew0KICAgICAgInRpdGxlIjogIkltYWdlIENhY2hpbmciLA0KICAgICAgImRlc2NyaXB0aW9uIjogIkFsbCBpbWFnZXMgZnJvbSB0aGUgWE1MVFYgZmlsZSBhcmUgY2FjaGVkLCBhbGxvd2luZyBmYXN0ZXIgcmVuZGVyaW5nIG9mIHRoZSBncmlkIGluIHRoZSBjbGllbnQuPGJyPkRvd25sb2FkaW5nIHRoZSBpbWFnZXMgbWF5IHRha2UgYSB3aGlsZSBhbmQgd2lsbCBiZSBkb25lIGluIHRoZSBiYWNrZ3JvdW5kLiINCiAgICB9LA0KICAgICJyZXBsYWNlRW1wdHlJbWFnZXMiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJSZXBsYWNlIG1pc3NpbmcgcHJvZ3JhbSBpbWFnZXMiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIklmIHRoZSBwb3N0ZXIgaW4gdGhlIFhNTFRWIHByb2dyYW0gaXMgbWlzc2luZywgdGhlIGNoYW5uZWwgbG9nbyB3aWxsIGJlIHVzZWQuIg0KICAgIH0sDQogICAgInh0ZXZlQXV0b1VwZGF0ZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIkF1dG9tYXRpYyB1cGRhdGUgb2YgeFRlVmUiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIklmIGEgbmV3IHZlcnNpb24gb2YgeFRlVmUgaXMgYXZhaWxhYmxlLCBpdCB3aWxsIGJlIGF1dG9tYXRpY2FsbHkgaW5zdGFsbGVkLiBUaGUgdXBkYXRlcyBhcmUgZG93bmxvYWRlZCBmcm9tIEdpdEh1Yi4iDQogICAgfSwNCiAgICAic3RyZWFtQnVmZmVyaW5nIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiU3RyZWFtIEJ1ZmZlciIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiRnVuY3Rpb25zIG9mIHRoZSBidWZmZXI6PGJyPi0gVGhlIHN0cmVhbSBpcyBwYXNzZWQgZnJvbSB4VGVWZSwgRkZtcGVnIG9yIFZMQyB0byBQbGV4LCBFbWJ5IG9yIE0zVSBQbGF5ZXI8YnI+LSBTbWFsbCBqZXJraW5nIG9mIHRoZSBzdHJlYW1zIGNhbiBiZSBjb21wZW5zYXRlZDxicj4tIEhMUyAvIE0zVTggc3VwcG9ydDxicj4tIFJUUCAvIFJUUFMgc3VwcG9ydCAob25seSBGRm1wZWcgb3IgVkxDKTxicj4tIFJlLXN0cmVhbWluZzxicj4tIFNlcGFyYXRlIHR1bmVyIGxpbWl0IGZvciBlYWNoIHBsYXlsaXN0IiwNCiAgICAgICJpbmZvX2ZhbHNlIjogIk5vIEJ1ZmZlciAoQ2xpZW50IGNvbm5lY3RzIHRvIHRoZSBzdHJlYW1pbmcgc2VydmVyKSIsDQogICAgICAiaW5mb194dGV2ZSI6ICJ4VGVWZSBjb25uZWN0cyB0byB0aGUgc3RyZWFtaW5nIHNlcnZlciIsDQogICAgICAiaW5mb19mZm1wZWciOiAiRkZtcGVnIGNvbm5lY3RzIHRvIHRoZSBzdHJlYW1pbmcgc2VydmVyIiwNCiAgICAgICJpbmZvX3ZsYyI6ICJWTEMgY29ubmVjdHMgdG8gdGhlIHN0cmVhbWluZyBzZXJ2ZXIiDQoNCiAgICB9LA0KICAgICJ1ZHB4eSI6DQogICAgew0KICAgICAgInRpdGxlIjogIlVEUHh5IGFkZHJlc3MiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIlRoZSBhZGRyZXNzIG9mIHlvdXIgVURQeHkgc2VydmVyLiBJZiBzZXQsIGFuZCB0aGUgY2hhbm5lbCBVUkxzIGluIHRoZSBtM3UgaXMgbXVsdGljYXN0LCB4VGVWZSB3aWxsIHJld3JpdGUgaXQgc28gdGhhdCBpdCBpcyBhY2Nlc3NlZCB2aWEgdGhlIFVEUHh5IHNlcnZpY2UuIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJob3N0OnBvcnQiDQogICAgfSwNCiAgICAiZmZtcGVnUGF0aCI6DQogICAgew0KICAgICAgInRpdGxlIjogIkZGbXBlZyBCaW5hcnkgUGF0aCIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiUGF0aCB0byBGRm1wZWcgYmluYXJ5LiIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiL3BhdGgvdG8vZmZtcGVnIg0KICAgIH0sDQogICAgImZmbXBlZ09wdGlvbnMiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJGRm1wZWcgT3B0aW9ucyIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiRkZtcGVnIG9wdGlvbnMuPGJyPk9ubHkgY2hhbmdlIGlmIHlvdSBrbm93IHdoYXQgeW91IGFyZSBkb2luZy48YnI+TGVhdmUgYmxhbmsgdG8gc2V0IGRlZmF1bHQgc2V0dGluZ3MuIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJMZWF2ZSBibGFuayB0byBzZXQgZGVmYXVsdCBzZXR0aW5ncyINCiAgICB9LA0KICAgICJ2bGNQYXRoIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiVkxDIC8gQ1ZMQyBCaW5hcnkgUGF0aCIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiUGF0aCB0byBWTEMgLyBDVkxDIGJpbmFyeS4iLA0KICAgICAgInBsYWNlaG9sZGVyIjogIi9wYXRoL3RvL2N2bGMiDQogICAgfSwNCiAgICAidmxjT3B0aW9ucyI6DQogICAgew0KICAgICAgInRpdGxlIjogIlZMQyAvIENWTEMgT3B0aW9ucyIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiVkxDIC8gQ1ZMQyBvcHRpb25zLjxicj5Pbmx5IGNoYW5nZSBpZiB5b3Uga25vdyB3aGF0IHlvdSBhcmUgZG9pbmcuPGJyPkxlYXZlIGJsYW5rIHRvIHNldCBkZWZhdWx0IHNldHRpbmdzLiIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiTGVhdmUgYmxhbmsgdG8gc2V0IGRlZmF1bHQgc2V0dGluZ3MiDQogICAgfSwNCiAgICAiYnVmZmVyU2l6ZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIkJ1ZmZlciBTaXplIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJCdWZmZXIgc2l6ZSBpbiBNQi48YnI+TTNVODogSWYgdGhlIFRTIHNlZ21lbnQgc21hbGxlciB0aGVuIHRoZSBidWZmZXIgc2l6ZSwgdGhlIGZpbGUgc2l6ZSBvZiB0aGUgc2VnbWVudCBpcyB1c2VkLiINCiAgICB9LA0KICAgICJidWZmZXJUaW1lb3V0IjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiVGltZW91dCBmb3IgbmV3IGNsaWVudCBjb25uZWN0aW9ucyIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiVGhlIHhUZVZlIGJ1ZmZlciB3YWl0cyB1bnRpbCBuZXcgY2xpZW50IGNvbm5lY3Rpb25zIGFyZSBlc3RhYmxpc2hlZC4gSGVscGZ1bCBmb3IgZmFzdCBjaGFubmVsIHN3aXRjaGluZy4gVmFsdWUgaW4gbWlsbGlzZWNvbmRzLiIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiMTAwIg0KICAgIH0sDQogICAgInVzZXJBZ2VudCI6DQogICAgew0KICAgICAgInRpdGxlIjogIlVzZXIgQWdlbnQiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIlVzZXIgQWdlbnQgZm9yIEhUVFAgcmVxdWVzdHMuIEZvciBldmVyeSBIVFRQIGNvbm5lY3Rpb24sIHRoaXMgdmFsdWUgaXMgdXNlZCBmb3IgdGhlIHVzZXIgYWdlbnQuIFNob3VsZCBvbmx5IGJlIGNoYW5nZWQgaWYgeFRlVmUgaXMgYmxvY2tlZC4iLA0KICAgICAgInBsYWNlaG9sZGVyIjogInhUZVZlIg0KICAgIH0sDQogICAgImJhY2t1cFBhdGgiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJMb2NhdGlvbiBmb3IgYXV0b21hdGljIGJhY2t1cHMiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIi9tbnQvZGF0YS9iYWNrdXAveHRldmUvIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJCZWZvcmUgYW55IHVwZGF0ZSBvZiB0aGUgcHJvdmlkZXIgZGF0YSBieSB0aGUgc2NoZWR1bGUsIHhUZVZlIGNyZWF0ZXMgYSBiYWNrdXAuIFRoZSBwYXRoIGZvciB0aGUgYXV0b21hdGljIGJhY2t1cHMgY2FuIGJlIGNoYW5nZWQuIHhUZVZlIHJlcXVpcmVzIHdyaXRlIHBlcm1pc3Npb24gZm9yIHRoaXMgZm9sZGVyLiINCiAgICB9LA0KICAgICJ0ZW1wUGF0aCI6DQogICAgew0KICAgICAgInRpdGxlIjogIkxvY2F0aW9uIGZvciB0aGUgdGVtcG9yYXJ5IGZpbGVzIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIvdG1wL3h0ZXZlLyIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiTG9jYXRpb24gZm9yIHRoZSBidWZmZXIgZmlsZXMuIg0KICAgIH0sDQogICAgImJhY2t1cEtlZXAiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJOdW1iZXIgb2YgYmFja3VwcyB0byBrZWVwIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJOdW1iZXIgb2YgYmFja3VwcyB0byBrZWVwLiBPbGRlciBiYWNrdXBzIGFyZSBhdXRvbWF0aWNhbGx5IGRlbGV0ZWQuIg0KICAgIH0sDQogICAgImF1dGhlbnRpY2F0aW9uV0VCIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiV0VCIEF1dGhlbnRpY2F0aW9uIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJBY2Nlc3MgdG8gdGhlIHdlYiBpbnRlcmZhY2Ugb25seSBwb3NzaWJsZSB3aXRoIGNyZWRlbnRpYWxzLiINCiAgICB9LA0KICAgICJhdXRoZW50aWNhdGlvblBNUyI6DQogICAgew0KICAgICAgInRpdGxlIjogIlBNUyBBdXRoZW50aWNhdGlvbiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiUGxleCByZXF1ZXN0cyBhcmUgb25seSBwb3NzaWJsZSB3aXRoIGF1dGhlbnRpY2F0aW9uLiA8YnI+PGI+V2FybmluZyEhITwvYj4gQWZ0ZXIgYWN0aXZhdGluZyB0aGlzIGZ1bmN0aW9uIHhUZVZlIG11c3QgYmUgZGVsZXRlIGluIHRoZSBQTVMgRFZSIHNldHRpbmdzIGFuZCBzZXQgdXAgYWdhaW4uIg0KICAgIH0sDQogICAgImF1dGhlbnRpY2F0aW9uTTNVIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiTTNVIEF1dGhlbnRpY2F0aW9uIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJEb3dubG9hZGluZyB0aGUgeHRldmUubTN1IGZpbGUgdmlhIGFuIEhUVFAgcmVxdWVzdCBpcyBvbmx5IHBvc3NpYmxlIHdpdGggYXV0aGVudGljYXRpb24uIg0KICAgIH0sDQogICAgImF1dGhlbnRpY2F0aW9uWE1MIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiWE1MIEF1dGhlbnRpY2F0aW9uIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJEb3dubG9hZGluZyB0aGUgeHRldmUueG1sIGZpbGUgdmlhIGFuIEhUVFAgcmVxdWVzdCBpcyBvbmx5IHBvc3NpYmxlIHdpdGggYXV0aGVudGljYXRpb24iDQogICAgfSwNCiAgICAiYXV0aGVudGljYXRpb25BUEkiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJBUEkgQXV0aGVudGljYXRpb24iLA0KICAgICAgImRlc2NyaXB0aW9uIjogIkFjY2VzcyB0byB0aGUgQVBJIGludGVyZmFjZSBpcyBvbmx5IHBvc3NpYmxlIHdpdGggYXV0aGVudGljYXRpb24uIg0KICAgIH0NCiAgfSwNCiAgIndpemFyZCI6DQogIHsNCiAgICAiZXBnU291cmNlIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiRVBHIFNvdXJjZSIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiUE1TOjxicj4tIFVzZSBFUEcgZGF0YSBmcm9tIFBsZXggb3IgRW1ieSA8YnI+PGJyPlhFUEc6PGJyPi0gVXNlIG9mIG9uZSBvciBtb3JlIFhNTFRWIGZpbGVzPGJyPi0gQ2hhbm5lbCBtYW5hZ2VtZW50PGJyPi0gTTNVIC8gWE1MVFYgZXhwb3J0IChIVFRQIGxpbmsgZm9yIElQVFYgYXBwcykiDQogICAgfSwNCiAgICAidHVuZXIiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJOdW1iZXIgb2YgdHVuZXJzIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJOdW1iZXIgb2YgcGFyYWxsZWwgY29ubmVjdGlvbnMgdGhhdCBjYW4gYmUgZXN0YWJsaXNoZWQgdG8gdGhlIHByb3ZpZGVyLjxicj5BdmFpbGFibGUgZm9yOiBQbGV4LCBFbWJ5IChIREhSKSwgTTNVICh3aXRoIGFjdGl2ZSBidWZmZXIpLjxicj5BZnRlciBhIGNoYW5nZSwgeFRlVmUgbXVzdCBiZSBkZWxldGUgaW4gdGhlIFBsZXggLyBFbWJ5IERWUiBzZXR0aW5ncyBhbmQgc2V0IHVwIGFnYWluLiINCiAgICB9LA0KICAgICJtM3UiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJNM1UgUGxheWxpc3QiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIkZpbGUgcGF0aCBvciBVUkwgb2YgdGhlIE0zVSIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiTG9jYWwgb3IgcmVtb3RlIHBsYXlsaXN0cyINCiAgICB9LA0KICAgICJ4bWx0diI6DQogICAgew0KICAgICAgInRpdGxlIjogIlhNTFRWIEZpbGUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIkZpbGUgcGF0aCBvciBVUkwgb2YgdGhlIFhNTFRWIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJMb2NhbCBvciByZW1vdGUgWE1MVFYgZmlsZSINCiAgICB9DQogIH0sDQogICJsb2dpbiI6DQogIHsNCiAgICAiZmFpbGVkIjogIlVzZXIgYXV0aGVudGljYXRpb24gZmFpbGVkIiwNCiAgICAiaGVhZGxpbmUiOiAiTG9naW4iLA0KICAgICJ1c2VybmFtZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIlVzZXJuYW1lIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJVc2VybmFtZSINCiAgICB9LA0KICAgICJwYXNzd29yZCI6DQogICAgew0KICAgICAgInRpdGxlIjogIlBhc3N3b3JkIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJQYXNzd29yZCINCiAgICB9DQogIH0sDQogICJhY2NvdW50IjoNCiAgew0KICAgICJmYWlsZWQiOiAiUGFzc3dvcmQgZG9lcyBub3QgbWF0Y2giLA0KICAgICJoZWFkbGluZSI6ICJDcmVhdGUgdXNlciBhY2NvdW50IiwNCiAgICAidXNlcm5hbWUiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJVc2VybmFtZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiVXNlcm5hbWUiDQogICAgfSwNCiAgICAicGFzc3dvcmQiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJQYXNzd29yZCIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiUGFzc3dvcmQiDQogICAgfSwNCiAgICAiY29uZmlybSI6DQogICAgew0KICAgICAgInRpdGxlIjogIkNvbmZpcm0iLA0KICAgICAgInBsYWNlaG9sZGVyIjogIkNvbmZpcm0iDQogICAgfQ0KICB9DQp9" + webUI["html/js/network_ts.js"] = "Y2xhc3MgU2VydmVyIHsNCiAgICBjb25zdHJ1Y3RvcihjbWQpIHsNCiAgICAgICAgdGhpcy5jbWQgPSBjbWQ7DQogICAgfQ0KICAgIHJlcXVlc3QoZGF0YSkgew0KICAgICAgICBpZiAoU0VSVkVSX0NPTk5FQ1RJT04gPT0gdHJ1ZSkgew0KICAgICAgICAgICAgcmV0dXJuOw0KICAgICAgICB9DQogICAgICAgIFNFUlZFUl9DT05ORUNUSU9OID0gdHJ1ZTsNCiAgICAgICAgaWYgKHRoaXMuY21kICE9ICJ1cGRhdGVMb2ciKSB7DQogICAgICAgICAgICBzaG93RWxlbWVudCgibG9hZGluZyIsIHRydWUpOw0KICAgICAgICAgICAgVU5ETyA9IG5ldyBPYmplY3QoKTsNCiAgICAgICAgfQ0KICAgICAgICBzd2l0Y2ggKHdpbmRvdy5sb2NhdGlvbi5wcm90b2NvbCkgew0KICAgICAgICAgICAgY2FzZSAiaHR0cDoiOg0KICAgICAgICAgICAgICAgIHRoaXMucHJvdG9jb2wgPSAid3M6Ly8iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiaHR0cHM6IjoNCiAgICAgICAgICAgICAgICB0aGlzLnByb3RvY29sID0gIndzczovLyI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIH0NCiAgICAgICAgdmFyIHVybCA9IHRoaXMucHJvdG9jb2wgKyB3aW5kb3cubG9jYXRpb24uaG9zdG5hbWUgKyAiOiIgKyB3aW5kb3cubG9jYXRpb24ucG9ydCArICIvZGF0YS8iICsgIj9Ub2tlbj0iICsgZ2V0Q29va2llKCJUb2tlbiIpOw0KICAgICAgICBkYXRhWyJjbWQiXSA9IHRoaXMuY21kOw0KICAgICAgICB2YXIgd3MgPSBuZXcgV2ViU29ja2V0KHVybCk7DQogICAgICAgIHdzLm9ub3BlbiA9IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgICAgIFdTX0FWQUlMQUJMRSA9IHRydWU7DQogICAgICAgICAgICB0aGlzLnNlbmQoSlNPTi5zdHJpbmdpZnkoZGF0YSkpOw0KICAgICAgICB9Ow0KICAgICAgICB3cy5vbmVycm9yID0gZnVuY3Rpb24gKHdzRXJyRXZ0KSB7DQogICAgICAgICAgICBjb25zb2xlLmxvZygiTm8gd2Vic29ja2V0IGNvbm5lY3Rpb24gdG8geFRlVmUgY291bGQgYmUgZXN0YWJsaXNoZWQuIENoZWNrIHlvdXIgbmV0d29yayBjb25maWd1cmF0aW9uLiIpOw0KICAgICAgICAgICAgU0VSVkVSX0NPTk5FQ1RJT04gPSBmYWxzZTsNCiAgICAgICAgICAgIGlmIChXU19BVkFJTEFCTEUgPT0gZmFsc2UpIHsNCiAgICAgICAgICAgICAgICBhbGVydCgiTm8gd2Vic29ja2V0IGNvbm5lY3Rpb24gdG8geFRlVmUgY291bGQgYmUgZXN0YWJsaXNoZWQuIENoZWNrIHlvdXIgbmV0d29yayBjb25maWd1cmF0aW9uLiIpOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9Ow0KICAgICAgICB3cy5vbm1lc3NhZ2UgPSBmdW5jdGlvbiAod3NNZXNzYWdlRXZ0KSB7DQogICAgICAgICAgICBTRVJWRVJfQ09OTkVDVElPTiA9IGZhbHNlOw0KICAgICAgICAgICAgc2hvd0VsZW1lbnQoImxvYWRpbmciLCBmYWxzZSk7DQogICAgICAgICAgICBjb25zdCByZXNwb25zZSA9IEpTT04ucGFyc2Uod3NNZXNzYWdlRXZ0LmRhdGEpOw0KICAgICAgICAgICAgaWYgKHJlc3BvbnNlLmhhc093blByb3BlcnR5KCJ0b2tlbiIpKSB7DQogICAgICAgICAgICAgICAgZG9jdW1lbnQuY29va2llID0gIlRva2VuPSIgKyByZXNwb25zZVsidG9rZW4iXTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGlmIChyZXNwb25zZVsic3RhdHVzIl0gPT0gZmFsc2UpIHsNCiAgICAgICAgICAgICAgICBhbGVydChyZXNwb25zZVsiZXJyIl0pOw0KICAgICAgICAgICAgICAgIHJldHVybjsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGlmIChyZXNwb25zZS5oYXNPd25Qcm9wZXJ0eSgibmV3V2ViVXJsIikpIHsNCiAgICAgICAgICAgICAgICB3aW5kb3cubG9jYXRpb24gPSByZXNwb25zZVsibmV3V2ViVXJsIl07DQogICAgICAgICAgICB9DQogICAgICAgICAgICBpZiAocmVzcG9uc2UuaGFzT3duUHJvcGVydHkoInJlbG9hZCIpKSB7DQogICAgICAgICAgICAgICAgd2luZG93LmxvY2F0aW9uLnJlbG9hZCgpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgaWYgKHJlc3BvbnNlLmhhc093blByb3BlcnR5KCJhbGVydCIpKSB7DQogICAgICAgICAgICAgICAgYWxlcnQocmVzcG9uc2VbImFsZXJ0Il0pOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgaWYgKHJlc3BvbnNlLmhhc093blByb3BlcnR5KCJsb2dvVVJMIikpIHsNCiAgICAgICAgICAgICAgICB2YXIgZGl2ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNoYW5uZWwtaWNvbiIpOw0KICAgICAgICAgICAgICAgIGRpdi52YWx1ZSA9IHJlc3BvbnNlWyJsb2dvVVJMIl07DQogICAgICAgICAgICAgICAgZGl2LmNsYXNzTmFtZSA9ICJjaGFuZ2VkIjsNCiAgICAgICAgICAgICAgICByZXR1cm47DQogICAgICAgICAgICB9DQogICAgICAgICAgICBzd2l0Y2ggKGRhdGFbImNtZCJdKSB7DQogICAgICAgICAgICAgICAgY2FzZSAidXBkYXRlTG9nIjoNCiAgICAgICAgICAgICAgICAgICAgU0VSVkVSWyJsb2ciXSA9IHJlc3BvbnNlWyJsb2ciXTsNCiAgICAgICAgICAgICAgICAgICAgaWYgKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb250ZW50X2xvZyIpKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBzaG93TG9ncyhmYWxzZSk7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgcmV0dXJuOw0KICAgICAgICAgICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICAgICAgICAgIFNFUlZFUiA9IG5ldyBPYmplY3QoKTsNCiAgICAgICAgICAgICAgICAgICAgU0VSVkVSID0gcmVzcG9uc2U7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgaWYgKHJlc3BvbnNlLmhhc093blByb3BlcnR5KCJvcGVuTWVudSIpKSB7DQogICAgICAgICAgICAgICAgdmFyIG1lbnUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChyZXNwb25zZVsib3Blbk1lbnUiXSk7DQogICAgICAgICAgICAgICAgbWVudS5jbGljaygpOw0KICAgICAgICAgICAgICAgIHNob3dFbGVtZW50KCJwb3B1cCIsIGZhbHNlKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGlmIChyZXNwb25zZS5oYXNPd25Qcm9wZXJ0eSgib3BlbkxpbmsiKSkgew0KICAgICAgICAgICAgICAgIHdpbmRvdy5sb2NhdGlvbiA9IHJlc3BvbnNlWyJvcGVuTGluayJdOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgaWYgKHJlc3BvbnNlLmhhc093blByb3BlcnR5KCJyZWxvYWQiKSkgew0KICAgICAgICAgICAgICAgIGxvY2F0aW9uLnJlbG9hZCgpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgaWYgKHJlc3BvbnNlLmhhc093blByb3BlcnR5KCJ3aXphcmQiKSkgew0KICAgICAgICAgICAgICAgIGNyZWF0ZUxheW91dCgpOw0KICAgICAgICAgICAgICAgIGNvbmZpZ3VyYXRpb25XaXphcmRbcmVzcG9uc2VbIndpemFyZCJdXS5jcmVhdGVXaXphcmQoKTsNCiAgICAgICAgICAgICAgICByZXR1cm47DQogICAgICAgICAgICB9DQogICAgICAgICAgICBjcmVhdGVMYXlvdXQoKTsNCiAgICAgICAgfTsNCiAgICB9DQp9DQpmdW5jdGlvbiBnZXRDb29raWUobmFtZSkgew0KICAgIHZhciB2YWx1ZSA9ICI7ICIgKyBkb2N1bWVudC5jb29raWU7DQogICAgdmFyIHBhcnRzID0gdmFsdWUuc3BsaXQoIjsgIiArIG5hbWUgKyAiPSIpOw0KICAgIGlmIChwYXJ0cy5sZW5ndGggPT0gMikgew0KICAgICAgICByZXR1cm4gcGFydHMucG9wKCkuc3BsaXQoIjsiKS5zaGlmdCgpOw0KICAgIH0NCn0NCg==" + webUI["html/js/settings_ts.js"] = "Y2xhc3MgU2V0dGluZ3NDYXRlZ29yeSB7DQogICAgY29uc3RydWN0b3IoKSB7DQogICAgICAgIHRoaXMuRG9jdW1lbnRJRCA9ICJjb250ZW50X3NldHRpbmdzIjsNCiAgICB9DQogICAgY3JlYXRlQ2F0ZWdvcnlIZWFkbGluZSh2YWx1ZSkgew0KICAgICAgICB2YXIgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIkg0Iik7DQogICAgICAgIGVsZW1lbnQuaW5uZXJIVE1MID0gdmFsdWU7DQogICAgICAgIHJldHVybiBlbGVtZW50Ow0KICAgIH0NCiAgICBjcmVhdGVIUigpIHsNCiAgICAgICAgdmFyIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJIUiIpOw0KICAgICAgICByZXR1cm4gZWxlbWVudDsNCiAgICB9DQogICAgY3JlYXRlU2V0dGluZ3Moc2V0dGluZ3NLZXkpIHsNCiAgICAgICAgdmFyIHNldHRpbmcgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJUUiIpOw0KICAgICAgICB2YXIgY29udGVudCA9IG5ldyBQb3B1cENvbnRlbnQoKTsNCiAgICAgICAgdmFyIGRhdGEgPSBTRVJWRVJbInNldHRpbmdzIl1bc2V0dGluZ3NLZXldOw0KICAgICAgICBzd2l0Y2ggKHNldHRpbmdzS2V5KSB7DQogICAgICAgICAgICAvLyBUZXh0IGlucHV0cw0KICAgICAgICAgICAgY2FzZSAidXBkYXRlIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLnVwZGF0ZS50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsICJ1cGRhdGUiLCBkYXRhLnRvU3RyaW5nKCkpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3suc2V0dGluZ3MudXBkYXRlLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJiYWNrdXAucGF0aCI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5iYWNrdXBQYXRoLnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgImJhY2t1cC5wYXRoIiwgZGF0YSk7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5zZXR0aW5ncy5iYWNrdXBQYXRoLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ0ZW1wLnBhdGgiOg0KICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MudGVtcFBhdGgudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCAidGVtcC5wYXRoIiwgZGF0YSk7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5zZXR0aW5ncy50bXBQYXRoLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ1c2VyLmFnZW50IjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLnVzZXJBZ2VudC50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsICJ1c2VyLmFnZW50IiwgZGF0YSk7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5zZXR0aW5ncy51c2VyQWdlbnQucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImJ1ZmZlci50aW1lb3V0IjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmJ1ZmZlclRpbWVvdXQudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCAiYnVmZmVyLnRpbWVvdXQiLCBkYXRhKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnNldHRpbmdzLmJ1ZmZlclRpbWVvdXQucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImZmbXBlZy5wYXRoIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmZmbXBlZ1BhdGgudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCAiZmZtcGVnLnBhdGgiLCBkYXRhKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnNldHRpbmdzLmZmbXBlZ1BhdGgucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImZmbXBlZy5vcHRpb25zIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmZmbXBlZ09wdGlvbnMudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCAiZmZtcGVnLm9wdGlvbnMiLCBkYXRhKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnNldHRpbmdzLmZmbXBlZ09wdGlvbnMucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInZsYy5wYXRoIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLnZsY1BhdGgudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCAidmxjLnBhdGgiLCBkYXRhKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnNldHRpbmdzLnZsY1BhdGgucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInZsYy5vcHRpb25zIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLnZsY09wdGlvbnMudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCAidmxjLm9wdGlvbnMiLCBkYXRhKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnNldHRpbmdzLnZsY09wdGlvbnMucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIC8vIENoZWNrYm94ZXMNCiAgICAgICAgICAgIGNhc2UgInRsc01vZGUiOg0KICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MudGxzTW9kZS50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChzZXR0aW5nc0tleSk7DQogICAgICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGE7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiYXV0aGVudGljYXRpb24ud2ViIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmF1dGhlbnRpY2F0aW9uV0VCLnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KHNldHRpbmdzS2V5KTsNCiAgICAgICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJhdXRoZW50aWNhdGlvbi5wbXMiOg0KICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MuYXV0aGVudGljYXRpb25QTVMudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goc2V0dGluZ3NLZXkpOw0KICAgICAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImF1dGhlbnRpY2F0aW9uLm0zdSI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5hdXRoZW50aWNhdGlvbk0zVS50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChzZXR0aW5nc0tleSk7DQogICAgICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGE7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiYXV0aGVudGljYXRpb24ueG1sIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmF1dGhlbnRpY2F0aW9uWE1MLnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KHNldHRpbmdzS2V5KTsNCiAgICAgICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJhdXRoZW50aWNhdGlvbi5hcGkiOg0KICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MuYXV0aGVudGljYXRpb25BUEkudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goc2V0dGluZ3NLZXkpOw0KICAgICAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImZpbGVzLnVwZGF0ZSI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5maWxlc1VwZGF0ZS50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChzZXR0aW5nc0tleSk7DQogICAgICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGE7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiY2FjaGUuaW1hZ2VzIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmNhY2hlSW1hZ2VzLnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KHNldHRpbmdzS2V5KTsNCiAgICAgICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ4ZXBnLnJlcGxhY2UubWlzc2luZy5pbWFnZXMiOg0KICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MucmVwbGFjZUVtcHR5SW1hZ2VzLnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KHNldHRpbmdzS2V5KTsNCiAgICAgICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ4dGV2ZUF1dG9VcGRhdGUiOg0KICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MueHRldmVBdXRvVXBkYXRlLnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KHNldHRpbmdzS2V5KTsNCiAgICAgICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJhcGkiOg0KICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MuYXBpLnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KHNldHRpbmdzS2V5KTsNCiAgICAgICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAvLyBTZWxlY3QNCiAgICAgICAgICAgIGNhc2UgInR1bmVyIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLnR1bmVyLnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgdGV4dCA9IG5ldyBBcnJheSgpOw0KICAgICAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBuZXcgQXJyYXkoKTsNCiAgICAgICAgICAgICAgICBmb3IgKHZhciBpID0gMTsgaSA8PSAxMDA7IGkrKykgew0KICAgICAgICAgICAgICAgICAgICB0ZXh0LnB1c2goaSk7DQogICAgICAgICAgICAgICAgICAgIHZhbHVlcy5wdXNoKGkpOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCBkYXRhLCBzZXR0aW5nc0tleSk7DQogICAgICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKHNlbGVjdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJlcGdTb3VyY2UiOg0KICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MuZXBnU291cmNlLnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgdGV4dCA9IFsiUE1TIiwgIlhFUEciXTsNCiAgICAgICAgICAgICAgICB2YXIgdmFsdWVzID0gWyJQTVMiLCAiWEVQRyJdOw0KICAgICAgICAgICAgICAgIHZhciBzZWxlY3QgPSBjb250ZW50LmNyZWF0ZVNlbGVjdCh0ZXh0LCB2YWx1ZXMsIGRhdGEsIHNldHRpbmdzS2V5KTsNCiAgICAgICAgICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQoc2VsZWN0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImJhY2t1cC5rZWVwIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmJhY2t1cEtlZXAudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciB0ZXh0ID0gWyI1IiwgIjEwIiwgIjIwIiwgIjMwIiwgIjQwIiwgIjUwIl07DQogICAgICAgICAgICAgICAgdmFyIHZhbHVlcyA9IFsiNSIsICIxMCIsICIyMCIsICIzMCIsICI0MCIsICI1MCJdOw0KICAgICAgICAgICAgICAgIHZhciBzZWxlY3QgPSBjb250ZW50LmNyZWF0ZVNlbGVjdCh0ZXh0LCB2YWx1ZXMsIGRhdGEsIHNldHRpbmdzS2V5KTsNCiAgICAgICAgICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQoc2VsZWN0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImJ1ZmZlci5zaXplLmtiIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmJ1ZmZlclNpemUudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciB0ZXh0ID0gWyIwLjUgTUIiLCAiMSBNQiIsICIyIE1CIiwgIjMgTUIiLCAiNCBNQiIsICI1IE1CIiwgIjYgTUIiLCAiNyBNQiIsICI4IE1CIl07DQogICAgICAgICAgICAgICAgdmFyIHZhbHVlcyA9IFsiNTEyIiwgIjEwMjQiLCAiMjA0OCIsICIzMDcyIiwgIjQwOTYiLCAiNTEyMCIsICI2MTQ0IiwgIjcxNjgiLCAiODE5MiJdOw0KICAgICAgICAgICAgICAgIHZhciBzZWxlY3QgPSBjb250ZW50LmNyZWF0ZVNlbGVjdCh0ZXh0LCB2YWx1ZXMsIGRhdGEsIHNldHRpbmdzS2V5KTsNCiAgICAgICAgICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQoc2VsZWN0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImJ1ZmZlciI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5zdHJlYW1CdWZmZXJpbmcudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciB0ZXh0ID0gWyJ7ey5zZXR0aW5ncy5zdHJlYW1CdWZmZXJpbmcuaW5mb19mYWxzZX19IiwgInhUZVZlOiAoe3suc2V0dGluZ3Muc3RyZWFtQnVmZmVyaW5nLmluZm9feHRldmV9fSkiLCAiRkZtcGVnOiAoe3suc2V0dGluZ3Muc3RyZWFtQnVmZmVyaW5nLmluZm9fZmZtcGVnfX0pIiwgIlZMQzogKHt7LnNldHRpbmdzLnN0cmVhbUJ1ZmZlcmluZy5pbmZvX3ZsY319KSJdOw0KICAgICAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBbIi0iLCAieHRldmUiLCAiZmZtcGVnIiwgInZsYyJdOw0KICAgICAgICAgICAgICAgIHZhciBzZWxlY3QgPSBjb250ZW50LmNyZWF0ZVNlbGVjdCh0ZXh0LCB2YWx1ZXMsIGRhdGEsIHNldHRpbmdzS2V5KTsNCiAgICAgICAgICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQoc2VsZWN0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInVkcHh5IjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLnVkcHh5LnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgInVkcHh5IiwgZGF0YSk7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5zZXR0aW5ncy51ZHB4eS5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICB9DQogICAgICAgIHJldHVybiBzZXR0aW5nOw0KICAgIH0NCiAgICBjcmVhdGVEZXNjcmlwdGlvbihzZXR0aW5nc0tleSkgew0KICAgICAgICB2YXIgZGVzY3JpcHRpb24gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJUUiIpOw0KICAgICAgICB2YXIgdGV4dDsNCiAgICAgICAgc3dpdGNoIChzZXR0aW5nc0tleSkgew0KICAgICAgICAgICAgY2FzZSAidGxzTW9kZSI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy50bHNNb2RlLmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiYXV0aGVudGljYXRpb24ud2ViIjoNCiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLmF1dGhlbnRpY2F0aW9uV0VCLmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiYXV0aGVudGljYXRpb24ubTN1IjoNCiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLmF1dGhlbnRpY2F0aW9uTTNVLmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiYXV0aGVudGljYXRpb24ucG1zIjoNCiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLmF1dGhlbnRpY2F0aW9uUE1TLmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiYXV0aGVudGljYXRpb24ueG1sIjoNCiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLmF1dGhlbnRpY2F0aW9uWE1MLmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiYXV0aGVudGljYXRpb24uYXBpIjoNCiAgICAgICAgICAgICAgICBpZiAoU0VSVkVSWyJzZXR0aW5ncyJdWyJhdXRoZW50aWNhdGlvbi53ZWIiXSA9PSB0cnVlKSB7DQogICAgICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MuYXV0aGVudGljYXRpb25BUEkuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAieHRldmVBdXRvVXBkYXRlIjoNCiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLnh0ZXZlQXV0b1VwZGF0ZS5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImJhY2t1cC5rZWVwIjoNCiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLmJhY2t1cEtlZXAuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJiYWNrdXAucGF0aCI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5iYWNrdXBQYXRoLmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAidGVtcC5wYXRoIjoNCiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLnRlbXBQYXRoLmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiYnVmZmVyIjoNCiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLnN0cmVhbUJ1ZmZlcmluZy5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImJ1ZmZlci5zaXplLmtiIjoNCiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLmJ1ZmZlclNpemUuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJidWZmZXIudGltZW91dCI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5idWZmZXJUaW1lb3V0LmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAidXNlci5hZ2VudCI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy51c2VyQWdlbnQuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJmZm1wZWcucGF0aCI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5mZm1wZWdQYXRoLmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiZmZtcGVnLm9wdGlvbnMiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MuZmZtcGVnT3B0aW9ucy5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInZsYy5wYXRoIjoNCiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLnZsY1BhdGguZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ2bGMub3B0aW9ucyI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy52bGNPcHRpb25zLmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiZXBnU291cmNlIjoNCiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLmVwZ1NvdXJjZS5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInR1bmVyIjoNCiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLnR1bmVyLmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAidXBkYXRlIjoNCiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLnVwZGF0ZS5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImFwaSI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5hcGkuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJmaWxlcy51cGRhdGUiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MuZmlsZXNVcGRhdGUuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJjYWNoZS5pbWFnZXMiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MuY2FjaGVJbWFnZXMuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ4ZXBnLnJlcGxhY2UubWlzc2luZy5pbWFnZXMiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MucmVwbGFjZUVtcHR5SW1hZ2VzLmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAidWRweHkiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MudWRweHkuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBkZWZhdWx0Og0KICAgICAgICAgICAgICAgIHRleHQgPSAiIjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgfQ0KICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICIiOw0KICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgIHZhciBwcmUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJQUkUiKTsNCiAgICAgICAgcHJlLmlubmVySFRNTCA9IHRleHQ7DQogICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQocHJlKTsNCiAgICAgICAgZGVzY3JpcHRpb24uYXBwZW5kQ2hpbGQodGRMZWZ0KTsNCiAgICAgICAgZGVzY3JpcHRpb24uYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgIHJldHVybiBkZXNjcmlwdGlvbjsNCiAgICB9DQp9DQpjbGFzcyBTZXR0aW5nc0NhdGVnb3J5SXRlbSBleHRlbmRzIFNldHRpbmdzQ2F0ZWdvcnkgew0KICAgIGNvbnN0cnVjdG9yKGhlYWRsaW5lLCBzZXR0aW5nc0tleXMpIHsNCiAgICAgICAgc3VwZXIoKTsNCiAgICAgICAgdGhpcy5oZWFkbGluZSA9IGhlYWRsaW5lOw0KICAgICAgICB0aGlzLnNldHRpbmdzS2V5cyA9IHNldHRpbmdzS2V5czsNCiAgICB9DQogICAgY3JlYXRlQ2F0ZWdvcnkoKSB7DQogICAgICAgIHZhciBoZWFkbGluZSA9IHRoaXMuY3JlYXRlQ2F0ZWdvcnlIZWFkbGluZSh0aGlzLmhlYWRsaW5lKTsNCiAgICAgICAgdmFyIHNldHRpbmdzS2V5cyA9IHRoaXMuc2V0dGluZ3NLZXlzOw0KICAgICAgICB2YXIgZG9jID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQodGhpcy5Eb2N1bWVudElEKTsNCiAgICAgICAgZG9jLmFwcGVuZENoaWxkKGhlYWRsaW5lKTsNCiAgICAgICAgLy8gQ3JlYXRlIGEgdGFibGUgZm9yIHRoZSBjYXRlZ29yeQ0KICAgICAgICB2YXIgdGFibGUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJUQUJMRSIpOw0KICAgICAgICB2YXIga2V5cyA9IHNldHRpbmdzS2V5cy5zcGxpdCgiLCIpOw0KICAgICAgICBrZXlzLmZvckVhY2goc2V0dGluZ3NLZXkgPT4gew0KICAgICAgICAgICAgc3dpdGNoIChzZXR0aW5nc0tleSkgew0KICAgICAgICAgICAgICAgIGNhc2UgImF1dGhlbnRpY2F0aW9uLnBtcyI6DQogICAgICAgICAgICAgICAgY2FzZSAiYXV0aGVudGljYXRpb24ubTN1IjoNCiAgICAgICAgICAgICAgICBjYXNlICJhdXRoZW50aWNhdGlvbi54bWwiOg0KICAgICAgICAgICAgICAgIGNhc2UgImF1dGhlbnRpY2F0aW9uLmFwaSI6DQogICAgICAgICAgICAgICAgICAgIGlmIChTRVJWRVJbInNldHRpbmdzIl1bImF1dGhlbnRpY2F0aW9uLndlYiJdID09IGZhbHNlKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICAgICAgICAgIHZhciBpdGVtID0gdGhpcy5jcmVhdGVTZXR0aW5ncyhzZXR0aW5nc0tleSk7DQogICAgICAgICAgICAgICAgICAgIHZhciBkZXNjcmlwdGlvbiA9IHRoaXMuY3JlYXRlRGVzY3JpcHRpb24oc2V0dGluZ3NLZXkpOw0KICAgICAgICAgICAgICAgICAgICB0YWJsZS5hcHBlbmRDaGlsZChpdGVtKTsNCiAgICAgICAgICAgICAgICAgICAgdGFibGUuYXBwZW5kQ2hpbGQoZGVzY3JpcHRpb24pOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfSk7DQogICAgICAgIGRvYy5hcHBlbmRDaGlsZCh0YWJsZSk7DQogICAgICAgIGRvYy5hcHBlbmRDaGlsZCh0aGlzLmNyZWF0ZUhSKCkpOw0KICAgIH0NCn0NCmZ1bmN0aW9uIHNob3dTZXR0aW5ncygpIHsNCiAgICBjb25zb2xlLmxvZygiU0VUVElOR1MiKTsNCiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHNldHRpbmdzQ2F0ZWdvcnkubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgc2V0dGluZ3NDYXRlZ29yeVtpXS5jcmVhdGVDYXRlZ29yeSgpOw0KICAgIH0NCn0NCmZ1bmN0aW9uIHNhdmVTZXR0aW5ncygpIHsNCiAgICBjb25zb2xlLmxvZygiU2F2ZSBTZXR0aW5ncyIpOw0KICAgIHZhciBjbWQgPSAic2F2ZVNldHRpbmdzIjsNCiAgICB2YXIgZGl2ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnRlbnRfc2V0dGluZ3MiKTsNCiAgICB2YXIgc2V0dGluZ3MgPSBkaXYuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSgiY2hhbmdlZCIpOw0KICAgIHZhciBuZXdTZXR0aW5ncyA9IG5ldyBPYmplY3QoKTsNCiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHNldHRpbmdzLmxlbmd0aDsgaSsrKSB7DQogICAgICAgIHZhciBuYW1lOw0KICAgICAgICB2YXIgdmFsdWU7DQogICAgICAgIHN3aXRjaCAoc2V0dGluZ3NbaV0udGFnTmFtZSkgew0KICAgICAgICAgICAgY2FzZSAiSU5QVVQiOg0KICAgICAgICAgICAgICAgIHN3aXRjaCAoc2V0dGluZ3NbaV0udHlwZSkgew0KICAgICAgICAgICAgICAgICAgICBjYXNlICJjaGVja2JveCI6DQogICAgICAgICAgICAgICAgICAgICAgICBuYW1lID0gc2V0dGluZ3NbaV0ubmFtZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlID0gc2V0dGluZ3NbaV0uY2hlY2tlZDsNCiAgICAgICAgICAgICAgICAgICAgICAgIG5ld1NldHRpbmdzW25hbWVdID0gdmFsdWU7DQogICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICAgICAgY2FzZSAidGV4dCI6DQogICAgICAgICAgICAgICAgICAgICAgICBuYW1lID0gc2V0dGluZ3NbaV0ubmFtZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlID0gc2V0dGluZ3NbaV0udmFsdWU7DQogICAgICAgICAgICAgICAgICAgICAgICBzd2l0Y2ggKG5hbWUpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYXNlICJ1cGRhdGUiOg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IHZhbHVlLnNwbGl0KCIsIik7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlID0gdmFsdWUuZmlsdGVyKGZ1bmN0aW9uIChlKSB7IHJldHVybiBlOyB9KTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAiYnVmZmVyLnRpbWVvdXQiOg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IHBhcnNlRmxvYXQodmFsdWUpOw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgbmV3U2V0dGluZ3NbbmFtZV0gPSB2YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgIlNFTEVDVCI6DQogICAgICAgICAgICAgICAgbmFtZSA9IHNldHRpbmdzW2ldLm5hbWU7DQogICAgICAgICAgICAgICAgdmFsdWUgPSBzZXR0aW5nc1tpXS52YWx1ZTsNCiAgICAgICAgICAgICAgICAvLyBJZiB0aGUgdmFsdWUgaXMgYSBudW1iZXIsIHN0b3JlIGl0IGFzIGEgbnVtYmVyDQogICAgICAgICAgICAgICAgaWYgKGlzTmFOKHZhbHVlKSkgew0KICAgICAgICAgICAgICAgICAgICBuZXdTZXR0aW5nc1tuYW1lXSA9IHZhbHVlOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICAgICAgbmV3U2V0dGluZ3NbbmFtZV0gPSBwYXJzZUludCh2YWx1ZSk7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICB9DQogICAgfQ0KICAgIHZhciBkYXRhID0gbmV3IE9iamVjdCgpOw0KICAgIGRhdGFbInNldHRpbmdzIl0gPSBuZXdTZXR0aW5nczsNCiAgICB2YXIgc2VydmVyID0gbmV3IFNlcnZlcihjbWQpOw0KICAgIHNlcnZlci5yZXF1ZXN0KGRhdGEpOw0KfQ0K" + webUI["html/lang/en.json"] = "ew0KICAibWFpbk1lbnUiOg0KICB7DQogICAgIml0ZW0iOg0KICAgIHsNCiAgICAgICJwbGF5bGlzdCI6ICJQbGF5bGlzdCIsDQogICAgICAicG1zSUQiOiAiUE1TIElEIiwNCiAgICAgICJmaWx0ZXIiOiAiRmlsdGVyIiwNCiAgICAgICJ4bWx0diI6ICJYTUxUViIsDQogICAgICAibWFwcGluZyI6ICJNYXBwaW5nIiwNCiAgICAgICJ1c2VycyI6ICJVc2VycyIsDQogICAgICAic2V0dGluZ3MiOiAiU2V0dGluZ3MiLA0KICAgICAgImxvZyI6ICJMb2ciLA0KICAgICAgImxvZ291dCI6ICJMb2dvdXQiDQogICAgfSwNCiAgICAiaGVhZGxpbmUiOg0KICAgIHsNCiAgICAgICJwbGF5bGlzdCI6ICJMb2NhbCBvciByZW1vdGUgcGxheWxpc3RzIiwNCiAgICAgICJmaWx0ZXIiOiAiRmlsdGVyIHBsYXlsaXN0IiwNCiAgICAgICJ4bWx0diI6ICJMb2NhbCBvciByZW1vdGUgWE1MVFYgZmlsZXMiLA0KICAgICAgIm1hcHBpbmciOiAiTWFwIHBsYXlsaXN0IGNoYW5uZWxzIHRvIEVQRyBjaGFubmVscyIsDQogICAgICAidXNlcnMiOiAiVXNlciBtYW5hZ2VtZW50IiwNCiAgICAgICJzZXR0aW5ncyI6ICJTZXR0aW5ncyIsDQogICAgICAibG9nIjogIkxvZyIsDQogICAgICAibG9nb3V0IjogIkxvZ291dCINCiAgICB9DQogIH0sDQogICJjb25maXJtIjoNCiAgew0KICAgICJyZXN0b3JlIjogIkFsbCBkYXRhIHdpbGwgYmUgcmVwbGFjZWQgd2l0aCB0aG9zZSBmcm9tIHRoZSBiYWNrdXAuIFNob3VsZCB0aGUgZmlsZXMgYmUgcmVzdG9yZWQ/Ig0KICB9LA0KICAiYWxlcnQiOg0KICB7DQogICAgImZpbGVMb2FkaW5nRXJyb3IiOiAiRmlsZSBjb3VsZG4ndCBiZSBsb2FkZWQiLA0KICAgICJpbnZhbGlkQ2hhbm5lbE51bWJlciI6ICJJbnZhbGlkIGNoYW5uZWwgbnVtYmVyIiwNCiAgICAibWlzc2luZ0lucHV0IjogIk1pc3NpbmcgaW5wdXQiDQogIH0sDQogICJidXR0b24iOg0KICB7DQogICAgImJhY2siOiAiQmFjayIsDQogICAgImJhY2t1cCI6ICJCYWNrdXAiLA0KICAgICJidWxrRWRpdCI6ICJCdWxrIEVkaXQiLA0KICAgICJjYW5jZWwiOiAiQ2FuY2VsIiwNCiAgICAiZGVsZXRlIjogIkRlbGV0ZSIsDQogICAgImRvbmUiOiAiRG9uZSIsDQogICAgImxvZ2luIjogIkxvZ2luIiwNCiAgICAibmV3IjogIk5ldyIsDQogICAgIm5leHQiOiAiTmV4dCIsDQogICAgInJlc3RvcmUiOiAiUmVzdG9yZSIsDQogICAgInNhdmUiOiAiU2F2ZSIsDQogICAgInNlYXJjaCI6ICJTZWFyY2giLA0KICAgICJ1cGRhdGUiOiAiVXBkYXRlIiwNCiAgICAiY3JhZXRlQWNjb3VudCI6ICJDcmVhdGUgQWNjb3VudCIsDQogICAgInJlc2V0TG9ncyI6ICJSZXNldCBMb2dzIiwNCiAgICAidXBsb2FkTG9nbyI6ICJVcGxvYWQgTG9nbyINCiAgfSwNCiAgImZpbHRlciI6DQogIHsNCiAgICAidGFibGUiOg0KICAgIHsNCiAgICAgICJzdGFydGluZ0NoYW5uZWwiOiAiU3RhcnRpbmcgQ2guIE5vLiIsDQogICAgICAibmFtZSI6ICJGaWx0ZXIgTmFtZSIsDQogICAgICAidHlwZSI6ICJGaWx0ZXIgVHlwZSIsDQogICAgICAiZmlsdGVyIjogIkZpbHRlciINCiAgICB9LA0KICAgICJjdXN0b20iOiAiQ3VzdG9tIiwNCiAgICAiZ3JvdXAiOiAiTTNVIEdyb3VwIiwNCiAgICAibmFtZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIkZpbHRlciBOYW1lIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJGaWx0ZXIgbmFtZSIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgImRlc2NyaXB0aW9uIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiRGVzY3JpcHRpb24iLA0KICAgICAgInBsYWNlaG9sZGVyIjogIkRlc2NyaXB0aW9uIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAidHlwZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIlR5cGUiLA0KICAgICAgImdyb3VwVGl0bGUiOiAiR3JvdXAgVGl0bGUiLA0KICAgICAgImN1c3RvbUZpbHRlciI6ICJDdXN0b20gRmlsdGVyIg0KICAgIH0sDQogICAgImNhc2VTZW5zaXRpdmUiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJDYXNlIFNlbnNpdGl2ZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAiZmlsdGVyUnVsZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIkZpbHRlciBSdWxlIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJTcG9ydCB7SER9ICF7RVMsSVR9IiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAiZmlsdGVyR3JvdXAiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJHcm91cCBUaXRsZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJTZWxlY3QgYSBNM1UgZ3JvdXAuIChDb3VudGVyKTxicj5DaGFuZ2luZyB0aGUgZ3JvdXAgdGl0bGUgaW4gdGhlIE0zVSBpbnZhbGlkYXRlcyB0aGUgZmlsdGVyLiINCiAgICB9LA0KICAgICJpbmNsdWRlIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiSW5jbHVkZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiRkhELFVIRCIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiQ2hhbm5lbCBuYW1lIG11c3QgaW5jbHVkZS48YnI+KENvbW1hIHNlcGFyYXRlZCkgQ29tbWEgbWVhbnMgb3IiDQogICAgfSwNCiAgICAiZXhjbHVkZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIkV4Y2x1ZGUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIkVTLElUIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJDaGFubmVsIG5hbWUgbXVzdCBub3QgY29udGFpbi48YnI+KENvbW1hIHNlcGFyYXRlZCkgQ29tbWEgbWVhbnMgb3IiDQogICAgfSwNCiAgICAicHJlc2VydmVNYXBwaW5nIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiUHJlc2VydmUgRXhpc3RpbmcgTTNVPGJyPkNoYW5uZWwgTnVtYmVycyIsDQogICAgICAicGFsY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJQcmVzZXJ2ZSBleGlzdGluZyBNM1UgcGxheWxpc3QgY2hhbm5lbCBudW1iZXJzPyINCiAgICB9LA0KICAgICJzdGFydGluZ0NoYW5uZWwiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJTdGFydGluZyBDaGFubmVsIE51bWJlciIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAiZGVmYXVsdE1pc3NpbmdFUEciOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJGaWxsIE1pc3NpbmcgRVBHIERhdGEiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiV2hlbiB0aGVyZSBpcyBubyBtYXRjaGluZyBFUEcgZGF0YSBmb3IgY2hhbm5lbCwgPGJyPmF1dG9maWxsIHdpdGggeFRlVmUgZHVtbXkgRVBHIGRhdGE/Ig0KICAgIH0NCg0KICB9LA0KICAicGxheWxpc3QiOg0KICB7DQogICAgInRhYmxlIjoNCiAgICB7DQogICAgICAicGxheWxpc3QiOiAiUGxheWxpc3QiLA0KICAgICAgInR1bmVyIjogIlR1bmVyIiwNCiAgICAgICJsYXN0VXBkYXRlIjogIkxhc3QgVXBkYXRlIiwNCiAgICAgICJhdmFpbGFiaWxpdHkiOiAiQXZhaWxhYmlsaXR5IiwNCiAgICAgICJ0eXBlIjogIlR5cGUiLA0KICAgICAgInN0cmVhbXMiOiAiU3RyZWFtcyIsDQogICAgICAiZ3JvdXBUaXRsZSI6ICJncm91cC10aXRsZSIsDQogICAgICAidHZnSUQiOiAidHZnLWlkIiwNCiAgICAgICJ1bmlxdWVJRCI6ICJVbmlxdWUgSUQiDQogICAgfSwNCiAgICAicGxheWxpc3RUeXBlIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiUGxheWxpc3QgdHlwZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAidHlwZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIlR5cGUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgIm5hbWUiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJOYW1lIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJQbGF5bGlzdCBuYW1lIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAiZGVzY3JpcHRpb24iOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJEZXNjcmlwdGlvbiIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiRGVzY3JpcHRpb24iLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJmaWxlTTNVIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiTTNVIEZpbGUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIkZpbGUgcGF0aCBvciBVUkwgb2YgdGhlIE0zVSIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgImZpbGVIREhSIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiSERIb21lUnVuIElQIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJJUCBhZGRyZXNzIGFuZCBwb3J0ICgxOTIuMTY4LjEuMTA6NTAwNCkiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJ0dW5lciI6DQogICAgew0KICAgICAgInRpdGxlIjogIlR1bmVyIC8gU3RyZWFtcyIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJOdW1iZXIgb2YgcGFyYWxsZWwgY29ubmVjdGlvbnMgdGhhdCBjYW4gYmUgZXN0YWJsaXNoZWQgdG8gdGhlIHByb3ZpZGVyLiA8YnI+T25seSBhdmFpbGFibGUgd2l0aCBhY3RpdmF0ZWQgYnVmZmVyLjxicj5OZXcgc2V0dGluZ3Mgd2lsbCBvbmx5IGJlIGFwcGxpZWQgYWZ0ZXIgcXVpdHRpbmcgYWxsIHN0cmVhbXMuIg0KICAgIH0NCiAgfSwNCiAgInhtbHR2IjoNCiAgew0KICAgICJ0YWJsZSI6DQogICAgew0KICAgICAgImd1aWRlIjogIkd1aWRlIiwNCiAgICAgICJsYXN0VXBkYXRlIjogIkxhc3QgVXBkYXRlIiwNCiAgICAgICJhdmFpbGFiaWxpdHkiOiAiQXZhaWxhYmlsaXR5IiwNCiAgICAgICJjaGFubmVscyI6ICJDaGFubmVscyIsDQogICAgICAicHJvZ3JhbXMiOiAiUHJvZ3JhbXMiDQogICAgfSwNCiAgICAibmFtZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIk5hbWUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIkd1aWRlIG5hbWUiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJkZXNjcmlwdGlvbiI6DQogICAgew0KICAgICAgInRpdGxlIjogIkRlc2NyaXB0aW9uIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJEZXNjcmlwdGlvbiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgImZpbGVYTUxUViI6DQogICAgew0KICAgICAgInRpdGxlIjogIlhNTFRWIEZpbGUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIkZpbGUgcGF0aCBvciBVUkwgb2YgdGhlIFhNTFRWIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfQ0KICB9LA0KICAibWFwcGluZyI6DQogIHsNCiAgICAidGFibGUiOg0KICAgIHsNCiAgICAgICJjaE5vIjogIkNoLiBOby4iLA0KICAgICAgImxvZ28iOiAiTG9nbyIsDQogICAgICAiY2hhbm5lbE5hbWUiOiAiQ2hhbm5lbCBOYW1lIiwNCiAgICAgICJwbGF5bGlzdCI6ICJQbGF5bGlzdCIsDQogICAgICAiZ3JvdXBUaXRsZSI6ICJHcm91cCBUaXRsZSIsDQogICAgICAieG1sdHZGaWxlIjogIlhNTFRWIEZpbGUiLA0KICAgICAgInhtbHR2SUQiOiAiWE1MVFYgSUQiLA0KICAgICAgInRpbWVzaGlmdCI6ICJUaW1lc2hpZnQiDQogICAgfSwNCiAgICAiYWN0aXZlIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiQWN0aXZlIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJjaGFubmVsTmFtZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIkNoYW5uZWwgTmFtZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAiZGVzY3JpcHRpb24iOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJDaGFubmVsIERlc2NyaXB0aW9uIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJVc2VkIGJ5IHRoZSBEdW1teSBhcyBhbiBYTUwgZGVzY3JpcHRpb24iLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJ1cGRhdGVDaGFubmVsTmFtZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIlVwZGF0ZSBDaGFubmVsIE5hbWUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgInVwZGF0ZUNoYW5uZWxHcm91cCI6DQogICAgew0KICAgICAgInRpdGxlIjogIlVwZGF0ZSBDaGFubmVsIEdyb3VwIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIklmIGNoZWNrZWQsIHVzZSBncm91cCBmcm9tIHRoZSBkYXRhYmFzZSINCiAgICB9LA0KICAgICJjaGFubmVsTG9nbyI6DQogICAgew0KICAgICAgInRpdGxlIjogIkxvZ28gVVJMIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJ1cGRhdGVDaGFubmVsTG9nbyI6DQogICAgew0KICAgICAgInRpdGxlIjogIlVwZGF0ZSBDaGFubmVsIExvZ28iLA0KICAgICAgInBsYWNlaG9sZGVyIjogIiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgImVwZ0NhdGVnb3J5IjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiRVBHIENhdGVnb3J5IiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJtM3VHcm91cFRpdGxlIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiR3JvdXAgVGl0bGUgKHh0ZXZlLm0zdSkiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgInhtbHR2RmlsZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIlhNTFRWIEZpbGUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgInhtbHR2Q2hhbm5lbCI6DQogICAgew0KICAgICAgInRpdGxlIjogIlhNTFRWIENoYW5uZWwiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgInRpbWVzaGlmdCI6DQogICAgew0KICAgICAgInRpdGxlIjogIlRpbWVzaGlmdCIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiMCIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0NCiAgfSwNCiAgInVzZXJzIjoNCiAgew0KICAgICJ0YWJsZSI6DQogICAgew0KICAgICAgInVzZXJuYW1lIjogIlVzZXJuYW1lIiwNCiAgICAgICJwYXNzd29yZCI6ICJQYXNzd29yZCIsDQogICAgICAid2ViIjogIldFQiIsDQogICAgICAicG1zIjogIlBNUyIsDQogICAgICAibTN1IjogIk0zVSIsDQogICAgICAieG1sIjogIlhNTCIsDQogICAgICAiYXBpIjogIkFQSSINCiAgICB9LA0KICAgICJ1c2VybmFtZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIlVzZXJuYW1lIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJVc2VybmFtZSIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgInBhc3N3b3JkIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiUGFzc3dvcmQiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIlBhc3N3b3JkIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAiY29uZmlybSI6DQogICAgew0KICAgICAgInRpdGxlIjogIkNvbmZpcm0iLA0KICAgICAgInBsYWNlaG9sZGVyIjogIlBhc3N3b3JkIGNvbmZpcm0iLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJ3ZWIiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJXZWIgQWNjZXNzIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJwbXMiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJQTVMgQWNjZXNzIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJtM3UiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJNM1UgQWNjZXNzIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJ4bWwiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJYTUwgQWNjZXNzIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJhcGkiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJBUEkgQWNjZXNzIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9DQogIH0sDQogICJzZXR0aW5ncyI6DQogIHsNCiAgICAiY2F0ZWdvcnkiOg0KICAgIHsNCiAgICAgICJnZW5lcmFsIjogIkdlbmVyYWwiLA0KICAgICAgImZpbGVzIjogIkZpbGVzIiwNCiAgICAgICJzdHJlYW1pbmciOiAiU3RyZWFtaW5nIiwNCiAgICAgICJiYWNrdXAiOiAiQmFja3VwIiwNCiAgICAgICJhdXRoZW50aWNhdGlvbiI6ICJBdXRoZW50aWNhdGlvbiINCiAgICB9LA0KICAgICJ1cGRhdGUiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJTY2hlZHVsZSBmb3IgdXBkYXRpbmcgKFBsYXlsaXN0LCBYTUxUViwgQmFja3VwKSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiMDAwMCwxMDAwLDIwMDAiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIlRpbWUgaW4gMjQgaG91ciBmb3JtYXQgKDA4MDAgPSA4OjAwIGFtKS4gTW9yZSB0aW1lcyBjYW4gYmUgZW50ZXJlZCBjb21tYSBzZXBhcmF0ZWQuIExlYXZlIHRoaXMgZmllbGQgZW1wdHkgaWYgbm8gdXBkYXRlcyBhcmUgdG8gYmUgY2FycmllZCBvdXQuIg0KICAgIH0sDQogICAgImFwaSI6DQogICAgew0KICAgICAgInRpdGxlIjogIkFQSSBJbnRlcmZhY2UiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIlZpYSBBUEkgaW50ZXJmYWNlIGl0IGlzIHBvc3NpYmxlIHRvIHNlbmQgY29tbWFuZHMgdG8geFRlVmUuIEFQSSBkb2N1bWVudGF0aW9uIGlzIDxhIGhyZWY9J2h0dHBzOi8vZ2l0aHViLmNvbS94dGV2ZS1wcm9qZWN0L3hUZVZlLURvY3VtZW50YXRpb24vYmxvYi9tYXN0ZXIvZW4vY29uZmlndXJhdGlvbi5tZCNhcGknPmhlcmU8L2E+Ig0KICAgIH0sDQogICAgImVwZ1NvdXJjZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIkVQRyBTb3VyY2UiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIlBNUzo8YnI+LSBVc2UgRVBHIGRhdGEgZnJvbSBQbGV4IG9yIEVtYnkgPGJyPjxicj5YRVBHOjxicj4tIFVzZSBvZiBvbmUgb3IgbW9yZSBYTUxUViBmaWxlczxicj4tIENoYW5uZWwgbWFuYWdlbWVudDxicj4tIE0zVSAvIFhNTFRWIGV4cG9ydCAoSFRUUCBsaW5rIGZvciBJUFRWIGFwcHMpIg0KICAgIH0sDQogICAgInR1bmVyIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiTnVtYmVyIG9mIFR1bmVycyIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiTnVtYmVyIG9mIHBhcmFsbGVsIGNvbm5lY3Rpb25zIHRoYXQgY2FuIGJlIGVzdGFibGlzaGVkIHRvIHRoZSBwcm92aWRlci48YnI+QXZhaWxhYmxlIGZvcjogUGxleCwgRW1ieSAoSERIUiksIE0zVSAod2l0aCBhY3RpdmUgYnVmZmVyKS48YnI+QWZ0ZXIgYSBjaGFuZ2UsIHhUZVZlIG11c3QgYmUgZGVsZXRlIGluIHRoZSBQbGV4IC8gRW1ieSBEVlIgc2V0dGluZ3MgYW5kIHNldCB1cCBhZ2Fpbi4iDQogICAgfSwNCiAgICAidGxzTW9kZSI6IHsNCiAgICAgICJ0aXRsZSI6ICJUTFMgKEhUVFBTKSBtb2RlIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJDaGFuZ2VzIHdlYiBzZXJ2ZXIgcHJvdG9jb2wgdG8gSFRUUFMuIFJlcXVpcmVzIHh0ZXZlLmNydCBhbmQgeHRldmUua2V5IGluIHhUZVZlIGNvbmZpZyAvY2VydGlmaWNhdGVzIGRpcmVjdG9yeS4iDQogICAgfSwNCiAgICAiZmlsZXNVcGRhdGUiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJVcGRhdGVzIGFsbCBmaWxlcyBhdCBzdGFydHVwIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJVcGRhdGVzIGFsbCBwbGF5bGlzdHMsIHR1bmVyIGFuZCBYTUxUViBmaWxlcyBhdCBzdGFydHVwLiINCiAgICB9LA0KICAgICJjYWNoZUltYWdlcyI6DQogICAgew0KICAgICAgInRpdGxlIjogIkltYWdlIENhY2hpbmciLA0KICAgICAgImRlc2NyaXB0aW9uIjogIkFsbCBpbWFnZXMgZnJvbSB0aGUgWE1MVFYgZmlsZSBhcmUgY2FjaGVkLCBhbGxvd2luZyBmYXN0ZXIgcmVuZGVyaW5nIG9mIHRoZSBncmlkIGluIHRoZSBjbGllbnQuPGJyPkRvd25sb2FkaW5nIHRoZSBpbWFnZXMgbWF5IHRha2UgYSB3aGlsZSBhbmQgd2lsbCBiZSBkb25lIGluIHRoZSBiYWNrZ3JvdW5kLiINCiAgICB9LA0KICAgICJyZXBsYWNlRW1wdHlJbWFnZXMiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJSZXBsYWNlIG1pc3NpbmcgcHJvZ3JhbSBpbWFnZXMiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIklmIHRoZSBwb3N0ZXIgaW4gdGhlIFhNTFRWIHByb2dyYW0gaXMgbWlzc2luZywgdGhlIGNoYW5uZWwgbG9nbyB3aWxsIGJlIHVzZWQuIg0KICAgIH0sDQogICAgInh0ZXZlQXV0b1VwZGF0ZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIkF1dG9tYXRpYyB1cGRhdGUgb2YgeFRlVmUiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIklmIGEgbmV3IHZlcnNpb24gb2YgeFRlVmUgaXMgYXZhaWxhYmxlLCBpdCB3aWxsIGJlIGF1dG9tYXRpY2FsbHkgaW5zdGFsbGVkLiBUaGUgdXBkYXRlcyBhcmUgZG93bmxvYWRlZCBmcm9tIEdpdEh1Yi4iDQogICAgfSwNCiAgICAic3RyZWFtQnVmZmVyaW5nIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiU3RyZWFtIEJ1ZmZlciIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiRnVuY3Rpb25zIG9mIHRoZSBidWZmZXI6PGJyPi0gVGhlIHN0cmVhbSBpcyBwYXNzZWQgZnJvbSB4VGVWZSwgRkZtcGVnIG9yIFZMQyB0byBQbGV4LCBFbWJ5IG9yIE0zVSBQbGF5ZXI8YnI+LSBTbWFsbCBqZXJraW5nIG9mIHRoZSBzdHJlYW1zIGNhbiBiZSBjb21wZW5zYXRlZDxicj4tIEhMUyAvIE0zVTggc3VwcG9ydDxicj4tIFJUUCAvIFJUUFMgc3VwcG9ydCAob25seSBGRm1wZWcgb3IgVkxDKTxicj4tIFJlLXN0cmVhbWluZzxicj4tIFNlcGFyYXRlIHR1bmVyIGxpbWl0IGZvciBlYWNoIHBsYXlsaXN0IiwNCiAgICAgICJpbmZvX2ZhbHNlIjogIk5vIEJ1ZmZlciAoQ2xpZW50IGNvbm5lY3RzIHRvIHRoZSBzdHJlYW1pbmcgc2VydmVyKSIsDQogICAgICAiaW5mb194dGV2ZSI6ICJ4VGVWZSBjb25uZWN0cyB0byB0aGUgc3RyZWFtaW5nIHNlcnZlciIsDQogICAgICAiaW5mb19mZm1wZWciOiAiRkZtcGVnIGNvbm5lY3RzIHRvIHRoZSBzdHJlYW1pbmcgc2VydmVyIiwNCiAgICAgICJpbmZvX3ZsYyI6ICJWTEMgY29ubmVjdHMgdG8gdGhlIHN0cmVhbWluZyBzZXJ2ZXIiDQoNCiAgICB9LA0KICAgICJ1ZHB4eSI6DQogICAgew0KICAgICAgInRpdGxlIjogIlVEUHh5IGFkZHJlc3MiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIlRoZSBhZGRyZXNzIG9mIHlvdXIgVURQeHkgc2VydmVyLiBJZiBzZXQsIGFuZCB0aGUgY2hhbm5lbCBVUkxzIGluIHRoZSBtM3UgaXMgbXVsdGljYXN0LCB4VGVWZSB3aWxsIHJld3JpdGUgaXQgc28gdGhhdCBpdCBpcyBhY2Nlc3NlZCB2aWEgdGhlIFVEUHh5IHNlcnZpY2UuIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJob3N0OnBvcnQiDQogICAgfSwNCiAgICAiZmZtcGVnUGF0aCI6DQogICAgew0KICAgICAgInRpdGxlIjogIkZGbXBlZyBCaW5hcnkgUGF0aCIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiUGF0aCB0byBGRm1wZWcgYmluYXJ5LiIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiL3BhdGgvdG8vZmZtcGVnIg0KICAgIH0sDQogICAgImZmbXBlZ09wdGlvbnMiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJGRm1wZWcgT3B0aW9ucyIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiRkZtcGVnIG9wdGlvbnMuPGJyPk9ubHkgY2hhbmdlIGlmIHlvdSBrbm93IHdoYXQgeW91IGFyZSBkb2luZy48YnI+TGVhdmUgYmxhbmsgdG8gc2V0IGRlZmF1bHQgc2V0dGluZ3MuIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJMZWF2ZSBibGFuayB0byBzZXQgZGVmYXVsdCBzZXR0aW5ncyINCiAgICB9LA0KICAgICJ2bGNQYXRoIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiVkxDIC8gQ1ZMQyBCaW5hcnkgUGF0aCIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiUGF0aCB0byBWTEMgLyBDVkxDIGJpbmFyeS4iLA0KICAgICAgInBsYWNlaG9sZGVyIjogIi9wYXRoL3RvL2N2bGMiDQogICAgfSwNCiAgICAidmxjT3B0aW9ucyI6DQogICAgew0KICAgICAgInRpdGxlIjogIlZMQyAvIENWTEMgT3B0aW9ucyIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiVkxDIC8gQ1ZMQyBvcHRpb25zLjxicj5Pbmx5IGNoYW5nZSBpZiB5b3Uga25vdyB3aGF0IHlvdSBhcmUgZG9pbmcuPGJyPkxlYXZlIGJsYW5rIHRvIHNldCBkZWZhdWx0IHNldHRpbmdzLiIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiTGVhdmUgYmxhbmsgdG8gc2V0IGRlZmF1bHQgc2V0dGluZ3MiDQogICAgfSwNCiAgICAiYnVmZmVyU2l6ZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIkJ1ZmZlciBTaXplIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJCdWZmZXIgc2l6ZSBpbiBNQi48YnI+TTNVODogSWYgdGhlIFRTIHNlZ21lbnQgc21hbGxlciB0aGVuIHRoZSBidWZmZXIgc2l6ZSwgdGhlIGZpbGUgc2l6ZSBvZiB0aGUgc2VnbWVudCBpcyB1c2VkLiINCiAgICB9LA0KICAgICJidWZmZXJUaW1lb3V0IjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiVGltZW91dCBmb3IgbmV3IGNsaWVudCBjb25uZWN0aW9ucyIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiVGhlIHhUZVZlIGJ1ZmZlciB3YWl0cyB1bnRpbCBuZXcgY2xpZW50IGNvbm5lY3Rpb25zIGFyZSBlc3RhYmxpc2hlZC4gSGVscGZ1bCBmb3IgZmFzdCBjaGFubmVsIHN3aXRjaGluZy4gVmFsdWUgaW4gbWlsbGlzZWNvbmRzLiIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiMTAwIg0KICAgIH0sDQogICAgInVzZXJBZ2VudCI6DQogICAgew0KICAgICAgInRpdGxlIjogIlVzZXIgQWdlbnQiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIlVzZXIgQWdlbnQgZm9yIEhUVFAgcmVxdWVzdHMuIEZvciBldmVyeSBIVFRQIGNvbm5lY3Rpb24sIHRoaXMgdmFsdWUgaXMgdXNlZCBmb3IgdGhlIHVzZXIgYWdlbnQuIFNob3VsZCBvbmx5IGJlIGNoYW5nZWQgaWYgeFRlVmUgaXMgYmxvY2tlZC4iLA0KICAgICAgInBsYWNlaG9sZGVyIjogInhUZVZlIg0KICAgIH0sDQogICAgImJhY2t1cFBhdGgiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJMb2NhdGlvbiBmb3IgYXV0b21hdGljIGJhY2t1cHMiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIi9tbnQvZGF0YS9iYWNrdXAveHRldmUvIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJCZWZvcmUgYW55IHVwZGF0ZSBvZiB0aGUgcHJvdmlkZXIgZGF0YSBieSB0aGUgc2NoZWR1bGUsIHhUZVZlIGNyZWF0ZXMgYSBiYWNrdXAuIFRoZSBwYXRoIGZvciB0aGUgYXV0b21hdGljIGJhY2t1cHMgY2FuIGJlIGNoYW5nZWQuIHhUZVZlIHJlcXVpcmVzIHdyaXRlIHBlcm1pc3Npb24gZm9yIHRoaXMgZm9sZGVyLiINCiAgICB9LA0KICAgICJ0ZW1wUGF0aCI6DQogICAgew0KICAgICAgInRpdGxlIjogIkxvY2F0aW9uIGZvciB0aGUgdGVtcG9yYXJ5IGZpbGVzIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIvdG1wL3h0ZXZlLyIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiTG9jYXRpb24gZm9yIHRoZSBidWZmZXIgZmlsZXMuIg0KICAgIH0sDQogICAgImJhY2t1cEtlZXAiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJOdW1iZXIgb2YgYmFja3VwcyB0byBrZWVwIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJOdW1iZXIgb2YgYmFja3VwcyB0byBrZWVwLiBPbGRlciBiYWNrdXBzIGFyZSBhdXRvbWF0aWNhbGx5IGRlbGV0ZWQuIg0KICAgIH0sDQogICAgImF1dGhlbnRpY2F0aW9uV0VCIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiV0VCIEF1dGhlbnRpY2F0aW9uIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJBY2Nlc3MgdG8gdGhlIHdlYiBpbnRlcmZhY2Ugb25seSBwb3NzaWJsZSB3aXRoIGNyZWRlbnRpYWxzLiINCiAgICB9LA0KICAgICJhdXRoZW50aWNhdGlvblBNUyI6DQogICAgew0KICAgICAgInRpdGxlIjogIlBNUyBBdXRoZW50aWNhdGlvbiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiUGxleCByZXF1ZXN0cyBhcmUgb25seSBwb3NzaWJsZSB3aXRoIGF1dGhlbnRpY2F0aW9uLiA8YnI+PGI+V2FybmluZyEhITwvYj4gQWZ0ZXIgYWN0aXZhdGluZyB0aGlzIGZ1bmN0aW9uIHhUZVZlIG11c3QgYmUgZGVsZXRlIGluIHRoZSBQTVMgRFZSIHNldHRpbmdzIGFuZCBzZXQgdXAgYWdhaW4uIg0KICAgIH0sDQogICAgImF1dGhlbnRpY2F0aW9uTTNVIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiTTNVIEF1dGhlbnRpY2F0aW9uIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJEb3dubG9hZGluZyB0aGUgeHRldmUubTN1IGZpbGUgdmlhIGFuIEhUVFAgcmVxdWVzdCBpcyBvbmx5IHBvc3NpYmxlIHdpdGggYXV0aGVudGljYXRpb24uIg0KICAgIH0sDQogICAgImF1dGhlbnRpY2F0aW9uWE1MIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiWE1MIEF1dGhlbnRpY2F0aW9uIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJEb3dubG9hZGluZyB0aGUgeHRldmUueG1sIGZpbGUgdmlhIGFuIEhUVFAgcmVxdWVzdCBpcyBvbmx5IHBvc3NpYmxlIHdpdGggYXV0aGVudGljYXRpb24iDQogICAgfSwNCiAgICAiYXV0aGVudGljYXRpb25BUEkiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJBUEkgQXV0aGVudGljYXRpb24iLA0KICAgICAgImRlc2NyaXB0aW9uIjogIkFjY2VzcyB0byB0aGUgQVBJIGludGVyZmFjZSBpcyBvbmx5IHBvc3NpYmxlIHdpdGggYXV0aGVudGljYXRpb24uIg0KICAgIH0NCiAgfSwNCiAgIndpemFyZCI6DQogIHsNCiAgICAiZXBnU291cmNlIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiRVBHIFNvdXJjZSIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiUE1TOjxicj4tIFVzZSBFUEcgZGF0YSBmcm9tIFBsZXggb3IgRW1ieSA8YnI+PGJyPlhFUEc6PGJyPi0gVXNlIG9mIG9uZSBvciBtb3JlIFhNTFRWIGZpbGVzPGJyPi0gQ2hhbm5lbCBtYW5hZ2VtZW50PGJyPi0gTTNVIC8gWE1MVFYgZXhwb3J0IChIVFRQIGxpbmsgZm9yIElQVFYgYXBwcykiDQogICAgfSwNCiAgICAidHVuZXIiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJOdW1iZXIgb2YgdHVuZXJzIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJOdW1iZXIgb2YgcGFyYWxsZWwgY29ubmVjdGlvbnMgdGhhdCBjYW4gYmUgZXN0YWJsaXNoZWQgdG8gdGhlIHByb3ZpZGVyLjxicj5BdmFpbGFibGUgZm9yOiBQbGV4LCBFbWJ5IChIREhSKSwgTTNVICh3aXRoIGFjdGl2ZSBidWZmZXIpLjxicj5BZnRlciBhIGNoYW5nZSwgeFRlVmUgbXVzdCBiZSBkZWxldGUgaW4gdGhlIFBsZXggLyBFbWJ5IERWUiBzZXR0aW5ncyBhbmQgc2V0IHVwIGFnYWluLiINCiAgICB9LA0KICAgICJtM3UiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJNM1UgUGxheWxpc3QiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIkZpbGUgcGF0aCBvciBVUkwgb2YgdGhlIE0zVSIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiTG9jYWwgb3IgcmVtb3RlIHBsYXlsaXN0cyINCiAgICB9LA0KICAgICJ4bWx0diI6DQogICAgew0KICAgICAgInRpdGxlIjogIlhNTFRWIEZpbGUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIkZpbGUgcGF0aCBvciBVUkwgb2YgdGhlIFhNTFRWIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJMb2NhbCBvciByZW1vdGUgWE1MVFYgZmlsZSINCiAgICB9DQogIH0sDQogICJsb2dpbiI6DQogIHsNCiAgICAiZmFpbGVkIjogIlVzZXIgYXV0aGVudGljYXRpb24gZmFpbGVkIiwNCiAgICAiaGVhZGxpbmUiOiAiTG9naW4iLA0KICAgICJ1c2VybmFtZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIlVzZXJuYW1lIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJVc2VybmFtZSINCiAgICB9LA0KICAgICJwYXNzd29yZCI6DQogICAgew0KICAgICAgInRpdGxlIjogIlBhc3N3b3JkIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJQYXNzd29yZCINCiAgICB9DQogIH0sDQogICJhY2NvdW50IjoNCiAgew0KICAgICJmYWlsZWQiOiAiUGFzc3dvcmQgZG9lcyBub3QgbWF0Y2giLA0KICAgICJoZWFkbGluZSI6ICJDcmVhdGUgdXNlciBhY2NvdW50IiwNCiAgICAidXNlcm5hbWUiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJVc2VybmFtZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiVXNlcm5hbWUiDQogICAgfSwNCiAgICAicGFzc3dvcmQiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJQYXNzd29yZCIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiUGFzc3dvcmQiDQogICAgfSwNCiAgICAiY29uZmlybSI6DQogICAgew0KICAgICAgInRpdGxlIjogIkNvbmZpcm0iLA0KICAgICAgInBsYWNlaG9sZGVyIjogIkNvbmZpcm0iDQogICAgfQ0KICB9DQp9" webUI["html/login.html"] = "PCFkb2N0eXBlIGh0bWw+DQo8aHRtbD4NCiAgPGhlYWQ+DQogICAgPG1ldGEgY2hhcnNldD0idXRmLTgiPg0KICAgIDxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgsIGluaXRpYWwtc2NhbGU9MS4wIiAvPiANCiAgICA8dGl0bGU+eFRlVmU8L3RpdGxlPg0KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iY3NzL3NjcmVlbi5jc3MiIHR5cGU9InRleHQvY3NzIj4NCiAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9ImNzcy9iYXNlLmNzcyIgdHlwZT0idGV4dC9jc3MiPg0KICAgIDxzY3JpcHQgbGFuZ3VhZ2U9ImphdmFzY3JpcHQiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJqcy9uZXR3b3JrX3RzLmpzIj48L3NjcmlwdD4NCiAgICA8c2NyaXB0IGxhbmd1YWdlPSJqYXZhc2NyaXB0IiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ianMvYXV0aGVudGljYXRpb25fdHMuanMiPjwvc2NyaXB0Pg0KICA8L2hlYWQ+DQoNCiAgICA8Ym9keT4NCiAgICAgICAgICANCiAgICAgIDxkaXYgaWQ9ImhlYWRlciIgY2xhc3M9ImltZ0NlbnRlciI+PC9kaXY+DQoNCiAgICAgIDxkaXYgaWQ9ImJveCI+DQoNCiAgICAgICAgPGRpdiBpZD0iaGVhZGxpbmUiPg0KICAgICAgICAgIDxoMSBpZD0iaGVhZC10ZXh0IiBjbGFzcz0iY2VudGVyIj57ey5sb2dpbi5oZWFkbGluZX19PC9oMT4NCiAgICAgICAgPC9kaXY+DQoNCiAgICAgICAgPHAgaWQ9ImVyciIgY2xhc3M9ImVycm9yTXNnIGNlbnRlciI+e3suYXV0aGVudGljYXRpb25FcnJ9fTwvcD4NCg0KICAgICAgICA8ZGl2IGlkPSJjb250ZW50Ij4NCg0KICAgICAgICAgICAgPGZvcm0gaWQ9ImF1dGhlbnRpY2F0aW9uIiBhY3Rpb249IiIgbWV0aG9kPSJwb3N0Ij4NCg0KICAgICAgICAgICAgICA8aDU+e3subG9naW4udXNlcm5hbWUudGl0bGV9fTo8L2g1Pg0KICAgICAgICAgICAgICA8aW5wdXQgaWQ9InVzZXJuYW1lIiB0eXBlPSJ0ZXh0IiBuYW1lPSJ1c2VybmFtZSIgcGxhY2Vob2xkZXI9IlVzZXJuYW1lIiB2YWx1ZT0iIj4NCiAgICAgICAgICAgICAgPGg1Pnt7LmxvZ2luLnBhc3N3b3JkLnRpdGxlfX06PC9oNT4NCiAgICAgICAgICAgICAgPGlucHV0IGlkPSJwYXNzd29yZCIgdHlwZT0icGFzc3dvcmQiIG5hbWU9InBhc3N3b3JkIiBwbGFjZWhvbGRlcj0iUGFzc3dvcmQiIHZhbHVlPSIiPg0KDQogICAgICAgICAgICA8L2Zvcm0+DQoNCiAgICAgICAgPC9kaXY+DQoNCiAgICAgICAgPGRpdiBpZD0iYm94LWZvb3RlciI+DQogICAgICAgICAgPGlucHV0IGlkPSJzdWJtaXQiIGNsYXNzPSIiIHR5cGU9ImJ1dHRvbiIgdmFsdWU9Int7LmJ1dHRvbi5sb2dpbn19IiBvbmNsaWNrPSJqYXZhc2NyaXB0OiBsb2dpbigpOyI+DQogICAgICAgIDwvZGl2Pg0KICAgICAgICANCiAgICAgIDwvZGl2Pg0KDQogICAgPC9ib2R5Pg0KICAgIA0KPC9odG1sPg==" webUI["html/maintenance.html"] = "PCFkb2N0eXBlIGh0bWw+DQo8aHRtbD4NCiAgPGhlYWQ+DQogICAgPG1ldGEgY2hhcnNldD0idXRmLTgiPg0KICAgIDxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgsIGluaXRpYWwtc2NhbGU9MS4wIiAvPiANCiAgICA8dGl0bGU+eFRlVmU8L3RpdGxlPg0KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iY3NzL3NjcmVlbi5jc3MiIHR5cGU9InRleHQvY3NzIj4NCiAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9ImNzcy9iYXNlLmNzcyIgdHlwZT0idGV4dC9jc3MiPg0KICA8L2hlYWQ+DQoNCiAgICA8Ym9keT4NCiAgICAgICAgICANCiAgICAgIDxkaXYgaWQ9ImhlYWRlciIgY2xhc3M9ImltZ0NlbnRlciI+PC9kaXY+DQoNCiAgICAgIDxkaXYgaWQ9ImJveCI+DQoNCiAgICAgICAgPGRpdiBpZD0iaGVhZGxpbmUiPg0KICAgICAgICAgIDxoMSBpZD0iaGVhZC10ZXh0IiBjbGFzcz0iY2VudGVyIj5NYWludGVuYW5jZTwvaDE+ICAgICAgDQogICAgICAgIDwvZGl2PiAgDQoNCiAgICAgICAgPGRpdiBpZD0iY29udGVudCI+DQogICAgICAgICAgeFRlVmUgaXMgdXBkYXRpbmcgdGhlIGRhdGFiYXNlLCBwbGVhc2UgdHJ5IGFnYWluIGxhdGVyLg0KICAgICAgICA8L2Rpdj4NCg0KICAgICAgICA8ZGl2IGlkPSJib3gtZm9vdGVyIj48L2Rpdj4NCiAgICAgICAgDQogICAgICA8L2Rpdj4NCg0KICAgIDwvYm9keT4NCjwvaHRtbD4=" webUI["html/video/stream-limit.ts"] = "R0AREABC8CUAAcEAAP8B/wAB/IAUSBIBBkZGbXBlZwlTZXJ2aWNlMDF3fEPK//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////9HQAAQAACwDQABwQAAAAHwACqxBLL//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////0dQABAAArASAAHBAADhAPAAG+EA8AAVvU1W////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////R0EAMAdQAAB7DH4AAAAB4AAAgMAKMQAJEKERAAfYYQAAAAEJ8AAAAAFnZAAorNlAeAIn5cBEAAADAAQAAAMAyDxgxlgAAAABaOvjyyLAAAABBgX//6rcRem95tlIt5Ys2CDZI+7veDI2NCAtIGNvcmUgMTUyIHIyODU0IGU5YTU5MDMgLSBILjI2NC9NUEVHLTQgQVZDIGNvZGVjIC0gQ29weWxlZnQgMjAwMy0yMDE3IC0gaHR0cDovL3dHAQARd3cudmlkZW9sYW4ub3JnL3gyNjQuaHRtbCAtIG9wdGlvbnM6IGNhYmFjPTEgcmVmPTMgZGVibG9jaz0xOjA6MCBhbmFseXNlPTB4MzoweDExMyBtZT1oZXggc3VibWU9NyBwc3k9MSBwc3lfcmQ9MS4wMDowLjAwIG1peGVkX3JlZj0xIG1lX3JhbmdlPTE2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ACqxBLL//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////0dQABEAArASAAHBAADhAPAAG+EA8AAVvU1W////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////RwEAGO10tGlFAwyE91Tzg8923ovJk1dv2xh1gVlYQFtWdZ6NSQ8vgHM7/tMfIZPsqgCU856rdBJJRMDaor/oWA7pkvSmC2aqaC5fd/mkWUPTuG8fRhGqOY1rKxLNSI3HtTQAcuVBxRM0NfMw0ky/JMJYZiCgXcNsxpxl+khr/9fKtO5Fg2VNBti92xcZimHUZDJMQTBOY6vSR9L1N2O/kJQCpdfuc9bkcUTMjH/es/lAySxvbiislkohqkpHAQAZVatwHI0t9eHCUfDyWUEtuCNyDwQFOVMtaYEQJrTrhQX0VduT86F0u0wN9ag0uPsrmX6Rid/x5S7KI1SkS+qP6cdmgSP57uiF4dG6IKsWNfGBLY09H/CFlrg73WINQkkp2diKkdEmtZetn8+ZAKzR5eXN5FebiKt6pIkNLuSofjosypEs2o6boKsfpmbtOV0idOeWDM9C8EIcn3aZwk1s2KBDvt1DlY+i2Cuvhk3XoKLT+pq/bOC5QkcBABolcOXneZXLoQw9W1PH1f/of92Ytjj8okrWijcQAKlE5l8XoTb9qrOiZnDOhqwcMlB9H9rorq041I89hChohYoSkJElcM8V+r8WYN5axD1BNyfwaHAOm4UN2/VEYOkNSfMjmx2S0WW/F2ha8Jj4fc4QgqcXr+TnnbwqLkLTValK4Qa1pcv7PIbDq6zCUfxe04guZ8xEhPQjp17/G6IB/6uq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wnibxQ/cXEblVnM47wbCN3iy4eHjYB5MoIICrSYmd8nt4V0toLs084KJlmnur5FbApYM4W79ff4oZkW88Cg8Fv8TnWhh1Hqc4UlhMbRKm2QxDgfBxar3U7BwNR6prrXXjqfR7ja3tPli+H7Jez/xcTg32QpHAQAdTa7pSSgBvmOqzz175NAFIhwE9p3d71F9jLvhaPv8q1iKopL0kizwzEWElnXWmNhfLkl/Au8KujnoKUaxVdTe+zAZm2dOkejnpNVtVj0Aw9wKcG3ZQ1iRZrUFRIoPKYlmR+oi0LrupuhYABtgPbdCbDtezGTr0nw9wVd/rZ6V+1wcoJ6+8VAVueIdwI3brqm6EoFHiI8L6lER+9SefB8fHo4NYgr/I8jSxaa/2PLX2K/DjrlY6bN8fEcBAB7DXsuh8DITF6CYWj2HTFvqfzlic3QHXnHtvsTFNpyVY1LY8y/fRK2mwALN6IB5W3OuyoKiA3K0lJdQUv2gYhHWvPTV218HYrD0rkbMxRH0SiEEkrHDeOt5T1HtWD13D2/QvMu535fsfZyeaFDjdCE9M0Xi8Lfc7Xj1ZNGend7Jo7/cEiczFkc1vB4z2JpFGZreV2EdquyEzC2STFJtfimyx8QlLngEuR1cxH+lWEcFX+mvBa/eqktIRwEAH6VazFLPNsnHZqsI66TVoArQuUUGFAzr8MT8GZ9V6qpZa5D0jA/4eGi6Kq0smUgRExnqIbSMLWqDf/Pk2YT3MpHTu9VE3Dn9blgB6KsVIkWnB98Y2n/6DrZDcF94Ndu0Ka4U/RZwdV5O5KcO+lU2ZiIOYTYZ6Ie0d+tApxYxJ+YmxaDoCyRNe6crw/yzR5SflT8ddi/E2BM+l+nwVDiKZ/714fmrBxFKWuqLiQNHV19o1cZ8Ubun+ZtHQAASAACwDQABwQAAAAHwACqxBLL//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////0dQABIAArASAAHBAADhAPAAG+EA8AAVvU1W////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////RwEAEH1s3BdtHdF1ln55B24wdACF/ggcRtPmB4IUB6cZJ+m32I4R48ZkdhAFBulgWcsv0wZwH0o1yi3i4qm3rJ98AUKdB9PsNyG9gURV0bTw4myAj6g5Dgodfv6w9bsbOxsGUWkvgAJ3rrR010BvZbIa6CMRCQRjxkCfRF77ansRJZT0JzhtYeSS/ZJob8Rr2jrng3W2rkmHtE+rdqlPiHxmwkRZvYGhBxwiJO2L6f+l/cABsfs09rA+A0pHAQAREZay3TBUIAfMWhApE+LaPgeyOYtaPFONA9aC0h4QrFkaLZfb86678MK+zLgqDBsDoj50eZHMVcczRjs4sYlv7RG8RIWKb5lB9Kn/8+CkxiiA11cHH1yzLX2SKCmhsak/+P/zYQ1EDvEj33bl9e3Jd62cTI+Qw99KrsWnUMN8hFNeXzoGHA3aec+Li4NFboF8sa6lCPR6Csxsvxw8DJaWCnER5Z0p+nKhXavF/eNHQ0DX47ohycc87UcBABKsYHCHXXe3vK1cFYDWO6rhwM6hxCdJ+/X+VB1akQejL6iBMdUPuadUqBnbprwJM0dWpSSn9uuZZeqe46iZOGIJUo69d8x+ZSvPcBH/dK1Y0LJnoWdgWH51SQg7eYqcwjQW3BOy7ZF02Hn1EhTuhsN7ms8zv3WIeEBDBq0T3Idl+Tmw9iJU9skVYiwygHG2+0XwrLa6y+uiQPwMzrnEr1kuf24XoAqrJTZQiVH3aQF4d94yDreWu2KPRwEAE2FsynHZaUcBXEFbeX0nSxZ7sRcRjJvc7RYOny6N8QFwKDVO7jpRWWYM55kuepBOyZ+7BFYeG+FU1kR+ZfmqyDNkD4D1IPwNh6u9JQxDymfN/aMcQC3WxdvCKquPsAut6dugpGkOFtIe+W3ayc4V/J978P+h1EDFMbFjxRPuXht0K2dBQZCJ0ybISUDqWzhPuep8CdxSU4MvMVfdXh7FLl/BqKJUTT+vM+Pz3XnqCQQmH5TjQ4CK55VHAQAUEtgfkBwIYgtwHkhjmtLw7HNTeJeMfTjATEKcyuKzItSeYxHBmGzQ/+G2otpPCOkVAXJ9mfx7LxrW4joZ0ttTRQJ/wqMUK1IN349LiJoo8y/+FwN4jPNDwIleJG697riqnmLOweFW8spHKLBfnHcyC1pG6EIxFpTqUQ0KHqXD/KXIHKioJNAOVwQ1Gfloxebo/Tdtd00dpHP3gcsAOnV75APCYOjVIlwm2X6ViDeZw6Btdb/Br/+yokcBABU3+eOESLlneGbR5SLiL8wPkoRaZ5X7xFlMTMvsv9yHk26bVdmsubSdbYS1Hy64n0+NnL7C1aLD7aJxOudMjVW5goZbfO2KxBQkCD4HFA284wbaB5vOL7mRilCn6YEs1kiwf22+fBLNUmXDb2p353wrD/ygTDhlki66USvUmd/ZAs9uzAddegEzy7Xn00YysWTu/hegYyZtWFC+X5dhLubWJ7n96y5wjrP7PAOXoQQtFUH9j/rBiP/7RwEAFnL/wYKYuj80mPGtimSbF/E9K7XwjwBz8yHZubmVMTCmwkZBM4h0FR1thnUGiSjqjJT6SfunWCZ/dZDQplrzS00UKcUP399SyM+nNG1br8Za0ZYwWch8nyLHYXSRuxdnrfUUespsOQo1cWSLGf0pV2HIcHoiAAEKwPU6irB5BSoFvB1qKVjgEk+QwAEYAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAABHAQA3pAD/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////AwAAAwAAAwAAAwAAAwAAAwBbwUdBABgAAAHgAACAwAoxAAmBIREAB/SBAAAAAQnwAAAAAUGaJGxDv/6plgAAAwAAAwAAAwAAAwAAAwAAAwAAAwAKCKB0AIhy1ftwLNISWucTFC7xeBcaIzP3oZjZo8uT9hqZVstWGnrPz+vjaA5FuCO+K2w7/o39LygDO7aL+0zSrN90LW7r133x8+f+PEKk8d7pd2fj4RYuMOXOYunzFzRX/4IvR1XsK5WJYwVkOca3yfo7DTvUBP9rgSiTRwEAGQD6CFK1PBC4qYCa+coLVnX+jgODNrau5YJXIekDI4+wUNV+5T5HE4e2t5EGAjn77+kC1Vghmvx8KqPnylVUvsaTofheggxHsPuxn1zQt6nA59UglrRUMn8b4pmrvfqTBSqU949+AcNAI6M/eAqz6r0RG5KNeBhx8R2f0x2kujwHU3pc3rlPb6ZrFM/2HiG97eEIezrvWFG7YAAAAwAAAwAE1KRo1VfbdZQ/tOpNGxFmTcQoFidyD2tHAQAapTTIErUKA2Rc9uIzGJu+oW0uNOxRyl6oJNUNJp5L9TIshNS1CmUKgdCaE3LkLwdE8iUkUnIGfWLiWpWmjzsINYC8dnDaSptB53yJkBu0SsR00oo1PZ0pl4ZzoXGSYQJTPaVCbj6FNqm5wcnUqKTB/rgHdPdnDj0K8asLABeo/n3XCXrDorI+LYSD1FBgmV9O7RZdjfL0NnXOQkiq/ZGirwVV0cUF1aHtZx1yHlAAZKuuu7TqB13CAUcBADuRAP///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////yj/IrOvAEoXDNGy+nrxWN0l8cmuqWYaUJpuM9XgAAADAAADAAKmR0EAPAcQAACJHH4AAAAB4AAAgMAKMQAJSOERAAkQoQAAAAEJ8AAAAAFBnkJ4hf8AAAMAAAMAAAMAAAMAAAMAAAMAAAMAC/BmhyuvLmkCgKTgACEXfOVvHRHdpBEEmTTz9pIZCa2FD0CXukzDCakOHekTpJQSdsfd7a/jjM1/5lBtKCAGQ6zOCSQ6DeKtyw+CugDuuglGipwmvQW+FIDjnZ6HRd0uaSOGy6VB3h9MI1o4nqaCqVwwIgubYZFHAQA9XgD////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////WcZrO6BEiqf8pCxYwlz2mkdUzY/ipM/TIHS4m5xQAAAMAAAMAAA5sVm90p14dlvWgBgY7XQ9KVOJKLtaMAN5KiffVQtNuzW5DfL+RewZpAAADAAADAAAQMUdBAB4AAAHgAACAgAUhAAkswQAAAAEJ8AAAAAEBnmF0Qr8AAAMAAAMAAAMAAAMAAAMAAAMAAAMAABJfBjP2+4+W7ZybyT130+Ma4WSqICfd/dS4YtjrLlmh5VBlfrtwJqdN1PBTYDkwGOOONqZQeFN6lLGJoDzvuh3kv1aDBLqug+JhvrSeu5ebnvcrtQzb2REwJL3h9mvtkr0WfDu4AAADAAADAAs32Y4C/6Ns79oCGj6oqLltY3T4I0/QRwEAP5wA//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////8BeoWLRnKQmVgO/RBoBfcK85AAAAMAAAMACFhHQQAwBxAAAJcsfgAAAAHgAACAwAoxAAllAREACUjhAAAAAQnwAAAAAQGeY2pCvwAAAwAAAwAAAwAAAwAAAwAAAwAAAwAAEmDKfLGXsvBBQPNYXlEd6WueJ4deApfcHESlG+7V6u0AiWQqJvNZYM+3Js3Lj9Ldc9yYIHqruVwfMtCYGlX3wMavI/DrhMuJw+RreIF8SKsJD8CMccAAAAMAAAMACrFZOBgEqaP/8EyWsAHV6CgcAgfyox/roEcBADGuAP//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////AAADAAADAHTBR0EAEgAAAeAAAIDACjEACfGhEQAJZQEAAAABCfAAAAABQZpoSahBaJlMCHf//qmWAAADAAADAAADAAADAAADAAADAAADAAALf8A2bry6lUyIAQGNFfVK2Cd7h4qDqmqpvmXfkfTwo2Ab79AHhajxJ4MPWIgAAA84xLRIx7I2CrWjWe96OvgkzgS9mtvhuxdzAgpuIOJI3DEY9mviDDZz8XSAAAADAAADAB7AZkj9AAHHGvk+Pzlku8UkWa5HAQAzogD//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////6HjAkbF/gsWuvw4QAAAAwAAAwAccUdBADQHEAAApTx+AAAAAeAAAIDACjEACblhEQAJgSEAAAABCfAAAAABQZ6GRREsL/8AAAMAAAMAAAMAAAMAAAMAAAMAAAMAAA3URJB/3lMHSmOd0GYZnfpoR80WdqxlyHzPX+V81VUMeXIGrRgq5agd+ACdjoGI036yQ/rmpGw0CmMBrKwpI+nwFo3SP0s1rI2yHBZaiPJjSUgw33rBkxXcq55kfLf2sAAAAwAAAwACBWolidWDnIeQAAADRwEANbEA//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////8AAAMADulHQQA2NAD///////////////////////////////////////////////////////////////////8AAAHgAACAgAUhAAmdQQAAAAEJ8AAAAAEBnqV0Qr8AAAMAAAMAAAMAAAMAAAMAAAMAAAMAABJXNihCnx11JUosH2hBE53O/YN+GPHqcnJiQBIf3maTAAj5iRt+7GYUKBAU9iCXTiouCjGYgAAAAwAAAwA9p4HQBg2cAAADAAADAADGgUdBADc4EAAAs0x+AP////////////////////////////////////////////////////////////////8AAAHgAACAwAoxAAnVgREACblhAAAAAQnwAAAAAQGep2pCvwAAAwAAAwAAAwAAAwAAAwAAAwAAAwAAAwBR6/L83y+ZevtMZ0FW4lp8qV7fVXQAhLAWlS6mDxvpaSUgChorvgTMXtxJEIAAAAMAAAMACqFCAAADAAADAAADAAz4R0EAOCsA////////////////////////////////////////////////////////AAAB4AAAgMAKMQALYiERAAnVgQAAAAEJ8AAAAAFBmqxJqEFsmUwId//+qZYAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAApQTq0hABLvkcWCYrAaRRPNDrECJGlF/11BYvG9+JJ9Y86nxnmQzPxtAAe1UgOsXAAADAAADAAADAAADAAADAAADAAADA/JHQQA5JhAAAMFcfgD/////////////////////////////////////////AAAB4AAAgMAKMQALKeERAAnxoQAAAAEJ8AAAAAFBnspFFSwv/wAAAwAAAwAAAwAAAwAAAwAAAwAAAwAADdRFmvrVE0KXDOGwWddlwYa1foib7tXZKmkua6R4APb4b8+tXwdSNNqgf2IVNwGTohgQAcMvp6SiQxpiQym4AAADAAADAANUNUAAAAMAAAMAAAMBN0dBADo8AP//////////////////////////////////////////////////////////////////////////////AAAB4AAAgIAFIQALDcEAAAABCfAAAAABAZ7pdEK/AAADAAADAAADAAADAAADAAADAAADAAADAFHTAfujIUaaLSuklb9y0/so9AEtQAqkAxOviALQZ5jNt/iOkABrCOZ4md0iUnFwAAADAAADAALwckAAAAMAAAMAAATcR0EAO0IQAADPbH4A//////////////////////////////////////////////////////////////////////////////8AAAHgAACAwAoxAAtGAREACynhAAAAAQnwAAAAAQGe62pCvwAAAwAAAwAAAwAAAwAAAwAAAwAAAwAAAwBR6/L83y+WryR9gmVKPGbIhJpkgAFgHCej3gB6rAHPgHHAAAADAAADAAAYIV0AAAMAAAMAAAMABnxHQQA8UQD//////////////////////////////////////////////////////////////////////////////////////////////////////////wAAAeAAAIDACjEAC9KhEQALRgEAAAABCfAAAAABQZrwSahBbJlMCG///qeEAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAAZ8UdBAD00EAAA3Xx+AP///////////////////////////////////////////////////////////wAAAeAAAIDACjEAC5phEQALYiEAAAABCfAAAAABQZ8ORRUsL/8AAAMAAAMAAAMAAAMAAAMAAAMAAAMAAA3URZr61RNClwzhI2ZXdRHYLZWc1yTgKRhTIXBNABHQKIIyYNyc+AaEn1jhATEAAAMAAAMAAAMAckkIAAADAAADAAADAEbBR0EAPkYA////////////////////////////////////////////////////////////////////////////////////////////AAAB4AAAgIAFIQALfkEAAAABCfAAAAABAZ8tdEK/AAADAAADAAADAAADAAADAAADAAADAAADAFHTAfujIUAYRtY0f/43cIs2OjxACR2hMR1QBGYX+34JGAAAAwAAAwAAAwKEJ6AAAAMAAAMAAAMA3oFHQQA/QhAAAOuMfgD//////////////////////////////////////////////////////////////////////////////wAAAeAAAIDACjEAC7aBEQALmmEAAAABCfAAAAABAZ8vakK/AAADAAADAAADAAADAAADAAADAAADAAADAFHr8vzfL5avJH2CZUo8ZsiEmmSAAWAcJ6PeAHqsAc+AccAAAAMAAAMAABghXQAAAwAAAwAAAwAGfEdBADBRAP//////////////////////////////////////////////////////////////////////////////////////////////////////////AAAB4AAAgMAKMQANQyERAAu2gQAAAAEJ8AAAAAFBmzRJqEFsmUwIZ//+nhAAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAGVAR0EAMTQQAAD5nH4A////////////////////////////////////////////////////////////AAAB4AAAgMAKMQANCuERAAvSoQAAAAEJ8AAAAAFBn1JFFSwv/wAAAwAAAwAAAwAAAwAAAwAAAwAAAwAADdRFmvrVE0KXDOEjZld1EdgtlZzXJOApGFMhcE0AEdAogjJg3Jz4BoSfWOEBMQAAAwAAAwAAAwBySQgAAAMAAAMAAAMARsFHQQAyRgD///////////////////////////////////////////////////////////////////////////////////////////8AAAHgAACAgAUhAAvuwQAAAAEJ8AAAAAEBn3F0Qr8AAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAUdMB+6MhQBhG1jR//jdwizY6PEAJHaExHVAEZhf7fgkYAAADAAADAAADAoQnoAAAAwAAAwAAAwDegEdBADNCEAABB6x+AP//////////////////////////////////////////////////////////////////////////////AAAB4AAAgMAKMQANJwERAA0K4QAAAAEJ8AAAAAEBn3NqQr8AAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAUevy/N8vlq8kfYJlSjxmyISaZIABYBwno94AeqwBz4BxwAAAAwAAAwAAGCFdAAADAAADAAADAAZ8R0EANFIA////////////////////////////////////////////////////////////////////////////////////////////////////////////AAAB4AAAgMAKMQANs6ERAA0nAQAAAAEJ8AAAAAFBm3hJqEFsmUwIV//+OEAAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAYtHQQA1NBAAARW8fgD///////////////////////////////////////////////////////////8AAAHgAACAwAoxAA17YREADUMhAAAAAQnwAAAAAUGflkUVLC//AAADAAADAAADAAADAAADAAADAAADAAAN1EWa+tUTQpcM4SNmV3UR2C2VnNck4CkYUyFwTQAR0CiCMmDcnPgGhJ9Y4QExAAADAAADAAADAHJJCAAAAwAAAwAAAwBGwEdBADZGAP///////////////////////////////////////////////////////////////////////////////////////////wAAAeAAAICABSEADV9BAAAAAQnwAAAAAQGftXRCvwAAAwAAAwAAAwAAAwAAAwAAAwAAAwAAAwBR0wH7oyFAGEbWNH/+N3CLNjo8QAkdoTEdUARmF/t+CRgAAAMAAAMAAAMChCegAAADAAADAAADAN6BR0EAN0IQAAEjzH4A//////////////////////////////////////////////////////////////////////////////8AAAHgAACAwAoxAA2XgREADXthAAAAAQnwAAAAAQGft2pCvwAAAwAAAwAAAwAAAwAAAwAAAwAAAwAAAwBR6/L83y+WryR9gmVKPGbIhJpkgAFgHCej3gB6rAHPgHHAAAADAAADAAAYIV0AAAMAAAMAAAMABn0=" diff --git a/src/webserver.go b/src/webserver.go index cef9ef3..852e8df 100644 --- a/src/webserver.go +++ b/src/webserver.go @@ -1,6 +1,7 @@ package src import ( + "context" "encoding/json" "errors" "fmt" @@ -9,6 +10,7 @@ import ( "os" "strconv" "strings" + "time" "xteve/src/internal/authentication" @@ -17,12 +19,11 @@ import ( // webAlerts channel to send to client var webAlerts = make(chan string, 3) +var restartWebserver = make(chan bool, 1) // StartWebserver : Start the Webserver func StartWebserver() (err error) { - var port = Settings.Port - http.HandleFunc("/", Index) http.HandleFunc("/stream/", Stream) http.HandleFunc("/xmltv/", xTeVe) @@ -33,31 +34,59 @@ func StartWebserver() (err error) { http.HandleFunc("/api/", API) http.HandleFunc("/images/", Images) http.HandleFunc("/data_images/", DataImages) + // http.HandleFunc("/auto/", Auto) - //http.HandleFunc("/auto/", Auto) + for { - showInfo("DVR IP:" + System.IPAddress + ":" + Settings.Port) + showInfo("Web server:" + "Starting") - var ips = len(System.IPAddressesV4) + len(System.IPAddressesV6) - 1 - switch ips { + showInfo("DVR IP:" + System.IPAddress + ":" + Settings.Port) - case 0: - showHighlight(fmt.Sprintf("Web Interface:%s://%s:%s/web/", System.ServerProtocol.WEB, System.IPAddress, Settings.Port)) + var ips = len(System.IPAddressesV4) + len(System.IPAddressesV6) - 1 + switch ips { - case 1: - showHighlight(fmt.Sprintf("Web Interface:%s://%s:%s/web/ | xTeVe is also available via the other %d IP.", System.ServerProtocol.WEB, System.IPAddress, Settings.Port, ips)) + case 0: + showHighlight(fmt.Sprintf("Web Interface:%s://%s:%s/web/", System.ServerProtocol.WEB, System.IPAddress, Settings.Port)) - default: - showHighlight(fmt.Sprintf("Web Interface:%s://%s:%s/web/ | xTeVe is also available via the other %d IP's.", System.ServerProtocol.WEB, System.IPAddress, Settings.Port, len(System.IPAddressesV4)+len(System.IPAddressesV6)-1)) + case 1: + showHighlight(fmt.Sprintf("Web Interface:%s://%s:%s/web/ | xTeVe is also available via the other %d IP.", System.ServerProtocol.WEB, System.IPAddress, Settings.Port, ips)) - } + default: + showHighlight(fmt.Sprintf("Web Interface:%s://%s:%s/web/ | xTeVe is also available via the other %d IP's.", System.ServerProtocol.WEB, System.IPAddress, Settings.Port, len(System.IPAddressesV4)+len(System.IPAddressesV6)-1)) - if err = http.ListenAndServe(":"+port, nil); err != nil { - ShowError(err, 1001) - return + } + + var port = Settings.Port + server := http.Server{Addr: ":" + port} + + go func() { + if Settings.TLSMode { + certFile := System.Folder.Certificates + "xteve.crt" + keyFile := System.Folder.Certificates + "xteve.key" + err = server.ListenAndServeTLS(certFile, keyFile) + } else { + err = server.ListenAndServe() + } + if err != nil && err != http.ErrServerClosed { + ShowError(err, 1001) + return + } + }() + + <-restartWebserver + showInfo("Web server:" + "Restarting") + + ctx, cancel := context.WithTimeout(context.Background(), 10*time.Second) + defer cancel() + if err = server.Shutdown(ctx); err != nil { + ShowError(err, 1016) + return + } + + <-ctx.Done() + showInfo("Web server:" + "Stopped") } - return } // Index : Web Server / @@ -332,12 +361,10 @@ func WS(w http.ResponseWriter, r *http.Request) { var newToken string - /* - if r.Header.Get("Origin") != "http://"+r.Host { - httpStatusError(w, r, 403) - return - } - */ + // if r.Header.Get("Origin") != "http://" + r.Host { + // httpStatusError(w, r, 403) + // return + // } conn, err := websocket.Upgrade(w, r, w.Header(), 1024, 1024) if err != nil { @@ -405,24 +432,22 @@ func WS(w http.ResponseWriter, r *http.Request) { switch request.Cmd { // Read Data case "getServerConfig": - //response.Config = Settings + // response.Config = Settings case "updateLog": response = setDefaultResponseData(response, false) if err = conn.WriteJSON(response); err != nil { ShowError(err, 1022) - } else { - return - break } return case "loadFiles": - //response.Response = Settings.Files + // response.Response = Settings.Files // Save Data case "saveSettings": var authenticationUpdate = Settings.AuthenticationWEB + var previousTLSMode = Settings.TLSMode response.Settings, err = updateServerSettings(request) if err == nil { @@ -432,6 +457,23 @@ func WS(w http.ResponseWriter, r *http.Request) { response.Reload = true } + if Settings.TLSMode != previousTLSMode { + showInfo("Web server:" + "Toggling TLS mode") + + err := Init() + if err != nil { + ShowError(err, 0) + } + + err = StartSystem(true) + if err != nil { + ShowError(err, 0) + } + + response.NewWebURL = System.URLBase + "/web/" + restartWebserver <- true + } + } case "saveFilesM3U": @@ -561,11 +603,10 @@ func WS(w http.ResponseWriter, r *http.Request) { } - /* - case "wizardCompleted": - System.ConfigurationWizard = false - response.Reload = true - */ + // case "wizardCompleted": + // System.ConfigurationWizard = false + // response.Reload = true + default: fmt.Println("+ + + + + + + + + + +", request.Cmd) @@ -596,7 +637,6 @@ func WS(w http.ResponseWriter, r *http.Request) { } - return } // Web : Web Server /web/ diff --git a/ts/base_ts.ts b/ts/base_ts.ts index b9aa2ed..957ed38 100644 --- a/ts/base_ts.ts +++ b/ts/base_ts.ts @@ -21,7 +21,7 @@ menuItems.push(new MainMenuItem("logout", "{{.mainMenu.item.logout}}", "logout.p // Settings categories var settingsCategory = new Array() -settingsCategory.push(new SettingsCategoryItem("{{.settings.category.general}}", "xteveAutoUpdate,tuner,epgSource,api"));settingsCategory.push(new SettingsCategoryItem("{{.settings.category.files}}", "update,files.update,temp.path,cache.images,xepg.replace.missing.images")) +settingsCategory.push(new SettingsCategoryItem("{{.settings.category.general}}", "tlsMode,xteveAutoUpdate,tuner,epgSource,api"));settingsCategory.push(new SettingsCategoryItem("{{.settings.category.files}}", "update,files.update,temp.path,cache.images,xepg.replace.missing.images")) settingsCategory.push(new SettingsCategoryItem("{{.settings.category.streaming}}", "buffer,udpxy,buffer.size.kb,buffer.timeout,user.agent,ffmpeg.path,ffmpeg.options,vlc.path,vlc.options")) settingsCategory.push(new SettingsCategoryItem("{{.settings.category.backup}}", "backup.path,backup.keep")) settingsCategory.push(new SettingsCategoryItem("{{.settings.category.authentication}}", "authentication.web,authentication.pms,authentication.m3u,authentication.xml,authentication.api")) diff --git a/ts/network_ts.ts b/ts/network_ts.ts index 4778d78..e907d0c 100644 --- a/ts/network_ts.ts +++ b/ts/network_ts.ts @@ -13,8 +13,7 @@ class Server { } SERVER_CONNECTION = true - - console.log(data) + if (this.cmd != "updateLog") { showElement("loading", true) UNDO = new Object() @@ -36,18 +35,11 @@ class Server { ws.onopen = function() { WS_AVAILABLE = true - - console.log("REQUEST (JS):"); - console.log(data) - - console.log("REQUEST: (JSON)"); - console.log(JSON.stringify(data)) - this.send(JSON.stringify(data)); - + } - ws.onerror = function(e) { + ws.onerror = function(wsErrEvt) { console.log("No websocket connection to xTeVe could be established. Check your network configuration.") SERVER_CONNECTION = false @@ -59,34 +51,32 @@ class Server { } - ws.onmessage = function (e) { + ws.onmessage = function (wsMessageEvt) { SERVER_CONNECTION = false showElement("loading", false) - console.log("RESPONSE:"); - var response = JSON.parse(e.data); - - console.log(response); + const response: Object = JSON.parse(wsMessageEvt.data); if (response.hasOwnProperty("token")) { - document.cookie = "Token=" + response["token"] + document.cookie = "Token=" + response["token"]; } if (response["status"] == false) { - - alert(response["err"]) - - if (response.hasOwnProperty("reload")) { - location.reload() - } + alert(response["err"]); + return; + } - return + if (response.hasOwnProperty("newWebUrl")) { + window.location = response["newWebUrl"]; } + if (response.hasOwnProperty("reload")) { + window.location.reload(); + } if (response.hasOwnProperty("alert")) { - alert(response["alert"]) + alert(response["alert"]); } if (response.hasOwnProperty("logoURL")) { @@ -103,7 +93,6 @@ class Server { showLogs(false) } return - break; default: SERVER = new Object() @@ -125,7 +114,6 @@ class Server { location.reload() } - if (response.hasOwnProperty("wizard")) { createLayout() configurationWizard[response["wizard"]].createWizard() @@ -143,5 +131,7 @@ class Server { function getCookie(name) { var value = "; " + document.cookie; var parts = value.split("; " + name + "="); - if (parts.length == 2) return parts.pop().split(";").shift(); -} \ No newline at end of file + if (parts.length == 2) { + return parts.pop().split(";").shift(); + } +} diff --git a/ts/settings_ts.ts b/ts/settings_ts.ts index f350aa8..ebc9985 100644 --- a/ts/settings_ts.ts +++ b/ts/settings_ts.ts @@ -18,7 +18,7 @@ class SettingsCategory { switch (settingsKey) { - // Text inputs + // Text inputs case "update": var tdLeft = document.createElement("TD") tdLeft.innerHTML = "{{.settings.update.title}}" + ":" @@ -145,7 +145,21 @@ class SettingsCategory { setting.appendChild(tdRight) break - // Checkboxes + // Checkboxes + case "tlsMode": + var tdLeft = document.createElement("TD") + tdLeft.innerHTML = "{{.settings.tlsMode.title}}" + ":" + + var tdRight = document.createElement("TD") + var input = content.createCheckbox(settingsKey) + input.checked = data + input.setAttribute("onchange", "javascript: this.className = 'changed'") + tdRight.appendChild(input) + + setting.appendChild(tdLeft) + setting.appendChild(tdRight) + break + case "authentication.web": var tdLeft = document.createElement("TD") tdLeft.innerHTML = "{{.settings.authenticationWEB.title}}" + ":" @@ -400,6 +414,10 @@ class SettingsCategory { var text:string switch (settingsKey) { + case "tlsMode": + text = "{{.settings.tlsMode.description}}" + break + case "authentication.web": text = "{{.settings.authenticationWEB.description}}" break diff --git a/xteve.go b/xteve.go index 203c957..58bde80 100644 --- a/xteve.go +++ b/xteve.go @@ -28,21 +28,19 @@ type GitHubStruct struct { // If you want to fork this project, enter your Github account here. This prevents a newer version of xTeVe from updating your version. var GitHub = GitHubStruct{Branch: "master", User: "SCP002", Repo: "xTeVe", Update: false} -/* - Branch: GitHub Branch - User: GitHub Username - Repo: GitHub Repository - Update: Automatic updates from the GitHub repository [true|false] -*/ +// Branch: GitHub Branch +// User: GitHub Username +// Repo: GitHub Repository +// Update: Automatic updates from the GitHub repository [true|false] // Name : Program Name const Name = "xTeVe" // Version : Version, the Build Number is parsed in the main func -const Version = "2.2.6.0000" +const Version = "2.3.0.0000" // DBVersion : Database Version -const DBVersion = "2.2.1" +const DBVersion = "2.2.2" // APIVersion : API Version const APIVersion = "1.1.0" @@ -77,7 +75,7 @@ func main() { system.Name = Name system.Version = strings.Join(build[0:len(build)-1], ".") - // Panic !!! + // Panic defer func() { if r := recover(); r != nil { From d59a3ac17afbc084529cd2022c9da90f291862fd Mon Sep 17 00:00:00 2001 From: SCP002 Date: Thu, 21 Apr 2022 21:46:57 +0300 Subject: [PATCH 090/189] Add note about TLS mode to README.md --- README.md | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 22936eb..204416e 100644 --- a/README.md +++ b/README.md @@ -160,12 +160,25 @@ gox -output="./xteve-build/{{.Dir}}_{{.OS}}_{{.Arch}}" ./ --- -## Certificate generation +## TLS mode -See: +Before enabling TLS mode, you should put a self-signed certificate and it's private key into your xTeVe config directory, for example: + +```text +/home/username/.xteve/certificates/xteve.crt +/home/username/.xteve/certificates/xteve.key +``` + +Next, enable this mode by the checkbox in `Settings -> General`. + +You can either [generate](https://gist.github.com/fntlnz/cf14feb5a46b2eda428e000157447309) your own or download a 'dummy' certificate and it's key [from this repository](https://github.com/SCP002/xTeVe/tree/master/certeficates). + +❗ Certificate from this repository will only allow TLS mode to start up but not to actually establish a secure connections. +For truly working HTTPS, you should generate it by yourself and **also** add self-signed root CA to client-side certificate storage (where the web browser, Plex etc. is). + +See also: * * -* --- From b80a93c7be987a8198cd8ecf2ca8a168158a995b Mon Sep 17 00:00:00 2001 From: SCP002 Date: Sun, 24 Apr 2022 22:18:38 +0300 Subject: [PATCH 091/189] Automatically generate self-signed cert. if not found. Fallback to non-TLS mode. Update TLS article in README.md --- README.md | 42 +++++++++++----------- certeficates/xteve.crt | 21 ----------- certeficates/xteve.key | 27 --------------- html/lang/en.json | 2 +- src/cert.go | 79 ++++++++++++++++++++++++++++++++++++++++++ src/config.go | 2 ++ src/screen.go | 6 ++++ src/struct-system.go | 22 +++++++----- src/toolchain.go | 10 ++++++ src/webUI.go | 2 +- src/webserver.go | 17 +++++++-- xteve.go | 2 +- 12 files changed, 148 insertions(+), 84 deletions(-) delete mode 100644 certeficates/xteve.crt delete mode 100644 certeficates/xteve.key create mode 100644 src/cert.go diff --git a/README.md b/README.md index 204416e..3c8fcef 100644 --- a/README.md +++ b/README.md @@ -51,6 +51,26 @@ Documentation for setup and configuration is [here](https://github.com/xteve-pro --- +## TLS mode + +This mode can be enabled by ticking the checkbox in `Settings -> General`. + +Unless the server's certificate and it's private key already exists in xTeVe config directory, xTeVe will generate a self-signed automatically. + +Self-signed certificate will only allow TLS mode to start up but not to actually establish a secure connections. +For truly working HTTPS, you should [generate](https://gist.github.com/fntlnz/cf14feb5a46b2eda428e000157447309) a certificate by yourself and **also** add the CA certificate to the client-side certificate storage (where the web browser, Plex etc. is). + +Certificate and it's private key should be placed in xTeVe config directory like so: + +```text +/home/username/.xteve/certificates/xteve.crt +/home/username/.xteve/certificates/xteve.key +``` + +If the certificate is signed by a certificate authority (CA), it should be the concatenation of the server's certificate, any intermediates, and the CA's certificate. + +--- + ### xTeVe Beta branch New features and bug fixes are only available in beta branch. Only after successful testing are they are merged into the master branch. @@ -160,28 +180,6 @@ gox -output="./xteve-build/{{.Dir}}_{{.OS}}_{{.Arch}}" ./ --- -## TLS mode - -Before enabling TLS mode, you should put a self-signed certificate and it's private key into your xTeVe config directory, for example: - -```text -/home/username/.xteve/certificates/xteve.crt -/home/username/.xteve/certificates/xteve.key -``` - -Next, enable this mode by the checkbox in `Settings -> General`. - -You can either [generate](https://gist.github.com/fntlnz/cf14feb5a46b2eda428e000157447309) your own or download a 'dummy' certificate and it's key [from this repository](https://github.com/SCP002/xTeVe/tree/master/certeficates). - -❗ Certificate from this repository will only allow TLS mode to start up but not to actually establish a secure connections. -For truly working HTTPS, you should generate it by yourself and **also** add self-signed root CA to client-side certificate storage (where the web browser, Plex etc. is). - -See also: -* -* - ---- - ## Fork without pull request :mega: When creating a fork, the xTeVe GitHub account must be changed from the source code or the update function disabled. diff --git a/certeficates/xteve.crt b/certeficates/xteve.crt deleted file mode 100644 index 95ec431..0000000 --- a/certeficates/xteve.crt +++ /dev/null @@ -1,21 +0,0 @@ ------BEGIN CERTIFICATE----- -MIIDhTCCAm2gAwIBAgIURgwIxlYujaBGZneE0xkvk9VWzeAwDQYJKoZIhvcNAQEL -BQAwUjELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxDjAMBgNVBAoM -BXh0ZXZlMQ4wDAYDVQQLDAV4dGV2ZTEOMAwGA1UEAwwFeHRldmUwHhcNMjIwNDIw -MjMzNzU3WhcNMzIwNDE3MjMzNzU3WjBSMQswCQYDVQQGEwJBVTETMBEGA1UECAwK -U29tZS1TdGF0ZTEOMAwGA1UECgwFeHRldmUxDjAMBgNVBAsMBXh0ZXZlMQ4wDAYD -VQQDDAV4dGV2ZTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAOdrEV93 -ZcxZP47CrzpVWF6dMXeS7nYcyK7aQOoDl2oDj7m5JKsPjl/khRiAUxQ0QgIFVCSi -Xgod4FFjj1HWc7qgpEqyulCP3GR8vnrP63iGptVO8ffU034BifevwyRqEj8Vy11d -uFrn0FxmpSCW8o28TPnEebuZcTVx+zARFEc+Hc48JgTsRIaGbWCnkJ5VQ0Uq6+td -cjHzM7l7yK+xAPOSP4jLQ+zfY5n6C/cjBzZqf/oQU0JuSr12xF17Eccx+EPNdwhk -OLNmcvDEcKAEv9OSzLv3csn8zIqRnpCEYehPBGL+CX5Rz8Vn6/qb2fmqf53B0leV -PmEmjvUOAVj053MCAwEAAaNTMFEwHQYDVR0OBBYEFLfYxsVRzA8l3RuPUp2N+bbv -xVscMB8GA1UdIwQYMBaAFLfYxsVRzA8l3RuPUp2N+bbvxVscMA8GA1UdEwEB/wQF -MAMBAf8wDQYJKoZIhvcNAQELBQADggEBAEiL4LcPZ4HVeTxqrNQjRV2SJNJmUMT2 -AWBrpH4bbKPVgdOJGvQkH4K8OW/P5dCvIum+PZFUR+jkgv2EUppZCU7R6mGyhDBA -DBQU7z0R5NdB+bKqKP/Wxs30r6u1lCELQA1PC4PQt04MXKTmLoOscHTTE9qBhrnv -Un8sEr0SHwxtrSupLRRcRMzZvz9q9s9xOjZQa3gNnUsGv9aPrjnrCsBflQ4Vrzym -70aj379sQ8lpkml+0pKiJ+S2aRmt9jQ47fODYSB8A/0iDJSQ4WiOuItiJIQ1q5qV -T6PGzJotCXk9ZXCz84ZZnVcIKFEC9cNWGxdDq/y04t8poyxXLwWRbnY= ------END CERTIFICATE----- diff --git a/certeficates/xteve.key b/certeficates/xteve.key deleted file mode 100644 index e26eef8..0000000 --- a/certeficates/xteve.key +++ /dev/null @@ -1,27 +0,0 @@ ------BEGIN RSA PRIVATE KEY----- -MIIEpgIBAAKCAQEA52sRX3dlzFk/jsKvOlVYXp0xd5LudhzIrtpA6gOXagOPubkk -qw+OX+SFGIBTFDRCAgVUJKJeCh3gUWOPUdZzuqCkSrK6UI/cZHy+es/reIam1U7x -99TTfgGJ96/DJGoSPxXLXV24WufQXGalIJbyjbxM+cR5u5lxNXH7MBEURz4dzjwm -BOxEhoZtYKeQnlVDRSrr611yMfMzuXvIr7EA85I/iMtD7N9jmfoL9yMHNmp/+hBT -Qm5KvXbEXXsRxzH4Q813CGQ4s2Zy8MRwoAS/05LMu/dyyfzMipGekIRh6E8EYv4J -flHPxWfr+pvZ+ap/ncHSV5U+YSaO9Q4BWPTncwIDAQABAoIBAQDb1viQCmrob7hT -NFsmPUFP0GDXyPtDtSBoCuoz5OmISo3Uzy8oWgTUz9AocG97+BDkvo8qphxT3AHn -D39tLR6Pol+wno0kTyX9SAvju3Vj7/a5GOAAoWuwfmHErHHjO+jNiTTCI3Ao26My -xEgF55/QSZuOgrlqH+BN91O6W985tNfNHoIbAVjiDm3R8VDB+tjhBoFW5ZLQn8Xa -/lKAlEZ3tmzwi8QxCRxX1JYQ09UD9E/RV1DCbOaownyplocjVNwWd0wTQ7/Peqr5 -+/lvN9DiRGgPWogX0cvmNYoLFP+98s++v8zvJWI6uO3P7LzQIClXowxE12KNzUKE -2zuf93pBAoGBAP6XDwnjmgttldlxcwhuDEo6enl5kvfzELSoYwvO63xJi/+lLd/E -/83ePBiBgoZFdzBLuNaQUZVibzlt5PJUtlejoTap98+0hcjU+Dw416AkQ2eHabXj -JjuiXPb5Gio3FIN55HnTTme8LQiyF0g9Ok+w/YvOjeTfJa1UMlkyRdsRAoGBAOiz -KFfewniBdZt1KrwI3JAGGDr+W3koxtI3BBszqA5dPjGVeA1M6pt+kbk+zI0dBleY -AmUDHDPKU4RXDc0rESwUhKF/kxMAh1O25Tt0RY5vWRcDlAgKoPbVVZLbSkwkHx6S -VxXHT2wEFdqJrmrZp047Be9hIuKziVJijiMNL3JDAoGBAJJq2AhM8Jwf8y1yFMFF -YSYTibpxE/grv3DW4te4si/xsGVfXwmxp5iDdjZ1zVZhfxG0iuJDb9glG2iA7kn8 -ND4k6iOhDtdSsBp3eShRXJlKIcXZ2A72S1fCogqb6tNaiB6xLJhv0UjRrWix27f9 -FpscZEVSjsKRH38WzDoGMqyxAoGBALhjtrUiO+E3XFTqHAnRz8yEN9EPWraAHEPY -+nT/ksyHEFBEC1QmvcSnH5u1amrrM+pW9pbKRx+21EUKolIQLVRLkelS6Nzmz1UD -mVNqR++cxfCZkkRo/7F3zI5JG++Hs+0Kstz8CTAjcJmx/baHb65q0MIlq3oOH+Nb -WxvlR9J3AoGBALFFee66OHfgHx/pi+/NUWo9DHPcypGmJskmmNm+Z94utpyZrSxj -KiiZi79cQiNTzBwANQ9h5lvGguKONE4v4vLTrqzOnaCCVGm/Q/I4cAXwidjTZmhC -v6Pw1OPHRglCDuXUy2v7eDPXpusJ36Rp4y/+ALu4tnBk6eZ3b02zw6qB ------END RSA PRIVATE KEY----- diff --git a/html/lang/en.json b/html/lang/en.json index fcbd27b..95d4b6c 100644 --- a/html/lang/en.json +++ b/html/lang/en.json @@ -399,7 +399,7 @@ }, "tlsMode": { "title": "TLS (HTTPS) mode", - "description": "Changes web server protocol to HTTPS. Requires xteve.crt and xteve.key in xTeVe config /certificates directory." + "description": "Changes web server protocol to HTTPS.
For details, see https://github.com/SCP002/xTeVe#tls-mode" }, "filesUpdate": { diff --git a/src/cert.go b/src/cert.go new file mode 100644 index 0000000..3725b60 --- /dev/null +++ b/src/cert.go @@ -0,0 +1,79 @@ +package src + +import ( + "crypto/rand" + "crypto/rsa" + "crypto/x509" + "crypto/x509/pkix" + "encoding/pem" + "math/big" + "net" + "os" + "time" +) + +// genCertFiles creates a self-signed certificate and it's private key in config/certificates directory. +// +// Inspired by https://gist.github.com/shaneutt/5e1995295cff6721c89a71d13a71c251 +func genCertFiles() (err error) { + showInfo("Web server:" + "Generating certificate") + + subject := pkix.Name{ + CommonName: "xTeVe", + Country: []string{"US"}, + Locality: []string{"San Francisco"}, + Organization: []string{"xTeVe, Inc."}, + PostalCode: []string{"94016"}, + Province: []string{""}, + StreetAddress: []string{"Golden Gate Bridge"}, + } + + serialNumberLimit := new(big.Int).Lsh(big.NewInt(1), 128) + serialNumber, err := rand.Int(rand.Reader, serialNumberLimit) + if err != nil { + return + } + + certPrivKey, err := rsa.GenerateKey(rand.Reader, 4096) + if err != nil { + return + } + + certPrivKeyPEM := pem.EncodeToMemory(&pem.Block{ + Type: "RSA PRIVATE KEY", + Bytes: x509.MarshalPKCS1PrivateKey(certPrivKey), + }) + + cert := &x509.Certificate{ + ExtKeyUsage: []x509.ExtKeyUsage{x509.ExtKeyUsageServerAuth}, + IPAddresses: append(System.IPAddressesV4Raw, net.IPv6loopback), + KeyUsage: x509.KeyUsageDigitalSignature, + NotAfter: time.Now().AddDate(10, 0, 0), + NotBefore: time.Now(), + SerialNumber: serialNumber, + Subject: subject, + SubjectKeyId: []byte{1, 2, 3, 4, 6}, + } + + certBytes, err := x509.CreateCertificate(rand.Reader, cert, cert, &certPrivKey.PublicKey, certPrivKey) + if err != nil { + return + } + + certPEM := pem.EncodeToMemory(&pem.Block{ + Type: "CERTIFICATE", + Bytes: certBytes, + }) + + err = os.WriteFile(System.File.ServerCertPrivKey, certPrivKeyPEM, 0644) + if err != nil { + return + } + + err = os.WriteFile(System.File.ServerCert, certPEM, 0644) + if err != nil { + return + } + + return +} diff --git a/src/config.go b/src/config.go index 26390ce..e78ea97 100644 --- a/src/config.go +++ b/src/config.go @@ -93,6 +93,8 @@ func Init() (err error) { return } + System.File.ServerCert = getPlatformFile(fmt.Sprintf("%sxteve.crt", System.Folder.Certificates)) + System.File.ServerCertPrivKey = getPlatformFile(fmt.Sprintf("%sxteve.key", System.Folder.Certificates)) System.File.XML = getPlatformFile(fmt.Sprintf("%s%s.xml", System.Folder.Data, System.AppName)) System.File.M3U = getPlatformFile(fmt.Sprintf("%s%s.m3u", System.Folder.Data, System.AppName)) diff --git a/src/screen.go b/src/screen.go index 401c37b..cade275 100644 --- a/src/screen.go +++ b/src/screen.go @@ -253,6 +253,8 @@ func getErrMsg(errCode int) (errMsg string) { errMsg = fmt.Sprintf("Specified temp folder path is invalid, fallback to %s", os.TempDir()) case 1016: errMsg = fmt.Sprintf("Web server could not be stopped.") + case 1017: + errMsg = fmt.Sprintf("Web server could not be started in TLS mode, fallback to default.") case 1020: errMsg = fmt.Sprintf("Data could not be saved, invalid keyword") @@ -397,6 +399,10 @@ func getErrMsg(errCode int) (errMsg string) { case 6004: errMsg = fmt.Sprintf("xTeVe update available") + // Certificates + case 7000: + errMsg = fmt.Sprintf("Can not generate a certificate") + default: errMsg = fmt.Sprintf("Unknown error / warning (%d)", errCode) } diff --git a/src/struct-system.go b/src/struct-system.go index dd00338..5a601d6 100644 --- a/src/struct-system.go +++ b/src/struct-system.go @@ -1,6 +1,9 @@ package src -import "xteve/src/internal/imgcache" +import ( + "net" + "xteve/src/internal/imgcache" +) // SystemStruct : Contains all System Information type SystemStruct struct { @@ -35,13 +38,15 @@ type SystemStruct struct { } File struct { - Authentication string - M3U string - PMS string - Settings string - URLS string - XEPG string - XML string + Authentication string + M3U string + PMS string + ServerCert string + ServerCertPrivKey string + Settings string + URLS string + XEPG string + XML string } Compressed struct { @@ -73,6 +78,7 @@ type SystemStruct struct { IPAddress string IPAddressesList []string IPAddressesV4 []string + IPAddressesV4Raw []net.IP IPAddressesV6 []string Name string OS string diff --git a/src/toolchain.go b/src/toolchain.go index e891905..7c5bed7 100644 --- a/src/toolchain.go +++ b/src/toolchain.go @@ -69,6 +69,15 @@ func checkFile(filename string) (err error) { return } +func allFilesExist(list ...string) bool { + for _, f := range list { + if err := checkFile(f); err != nil { + return false + } + } + return true +} + // GetUserHomeDirectory : User Home Directory func GetUserHomeDirectory() (userHomeDirectory string) { @@ -327,6 +336,7 @@ func resolveHostIP() (err error) { if networkIP.IP.To4() != nil { System.IPAddressesV4 = append(System.IPAddressesV4, ip) + System.IPAddressesV4Raw = append(System.IPAddressesV4Raw, networkIP.IP) if !networkIP.IP.IsLoopback() && ip[0:7] != "169.254" { System.IPAddress = ip diff --git a/src/webUI.go b/src/webUI.go index 3ed9c9c..b569677 100644 --- a/src/webUI.go +++ b/src/webUI.go @@ -32,7 +32,7 @@ func loadHTMLMap() { webUI["html/js/menu_ts.js"] = "Y2xhc3MgTWFpbk1lbnUgew0KICAgIGNvbnN0cnVjdG9yKCkgew0KICAgICAgICB0aGlzLkRvY3VtZW50SUQgPSAibWFpbi1tZW51IjsNCiAgICAgICAgdGhpcy5IVE1MVGFnID0gIkxJIjsNCiAgICAgICAgdGhpcy5JbWFnZVBhdGggPSAiaW1nLyI7DQogICAgfQ0KICAgIGNyZWF0ZUlNRyhzcmMpIHsNCiAgICAgICAgbGV0IGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJJTUciKTsNCiAgICAgICAgZWxlbWVudC5zZXRBdHRyaWJ1dGUoInNyYyIsIHRoaXMuSW1hZ2VQYXRoICsgc3JjKTsNCiAgICAgICAgcmV0dXJuIGVsZW1lbnQ7DQogICAgfQ0KICAgIGNyZWF0ZVZhbHVlKHZhbHVlKSB7DQogICAgICAgIGxldCBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiUCIpOw0KICAgICAgICBlbGVtZW50LmlubmVySFRNTCA9IHZhbHVlOw0KICAgICAgICByZXR1cm4gZWxlbWVudDsNCiAgICB9DQp9DQpjbGFzcyBNYWluTWVudUl0ZW0gZXh0ZW5kcyBNYWluTWVudSB7DQogICAgY29uc3RydWN0b3IobWVudUtleSwgdmFsdWUsIGltYWdlLCBoZWFkbGluZSkgew0KICAgICAgICBzdXBlcigpOw0KICAgICAgICB0aGlzLm1lbnVLZXkgPSBtZW51S2V5Ow0KICAgICAgICB0aGlzLnZhbHVlID0gdmFsdWU7DQogICAgICAgIHRoaXMuaW1nU3JjID0gaW1hZ2U7DQogICAgICAgIHRoaXMuaGVhZGxpbmUgPSBoZWFkbGluZTsNCiAgICB9DQogICAgY3JlYXRlSXRlbSgpIHsNCiAgICAgICAgbGV0IGl0ZW0gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJMSSIpOw0KICAgICAgICBpdGVtLnNldEF0dHJpYnV0ZSgib25jbGljayIsICJqYXZhc2NyaXB0OiBvcGVuVGhpc01lbnUodGhpcykiKTsNCiAgICAgICAgaXRlbS5zZXRBdHRyaWJ1dGUoImlkIiwgdGhpcy5pZCk7DQogICAgICAgIGxldCBpbWcgPSB0aGlzLmNyZWF0ZUlNRyh0aGlzLmltZ1NyYyk7DQogICAgICAgIGxldCB2YWx1ZSA9IHRoaXMuY3JlYXRlVmFsdWUodGhpcy52YWx1ZSk7DQogICAgICAgIGl0ZW0uYXBwZW5kQ2hpbGQoaW1nKTsNCiAgICAgICAgaXRlbS5hcHBlbmRDaGlsZCh2YWx1ZSk7DQogICAgICAgIGxldCBkb2MgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCh0aGlzLkRvY3VtZW50SUQpOw0KICAgICAgICBkb2MuYXBwZW5kQ2hpbGQoaXRlbSk7DQogICAgICAgIHN3aXRjaCAodGhpcy5tZW51S2V5KSB7DQogICAgICAgICAgICBjYXNlICJwbGF5bGlzdCI6DQogICAgICAgICAgICAgICAgdGhpcy50YWJsZUhlYWRlciA9IFsie3sucGxheWxpc3QudGFibGUucGxheWxpc3R9fSIsICJ7ey5wbGF5bGlzdC50YWJsZS50dW5lcn19IiwgInt7LnBsYXlsaXN0LnRhYmxlLmxhc3RVcGRhdGV9fSIsICJ7ey5wbGF5bGlzdC50YWJsZS5hdmFpbGFiaWxpdHl9fSAlIiwgInt7LnBsYXlsaXN0LnRhYmxlLnR5cGV9fSIsICJ7ey5wbGF5bGlzdC50YWJsZS5zdHJlYW1zfX0iLCAie3sucGxheWxpc3QudGFibGUuZ3JvdXBUaXRsZX19ICUiLCAie3sucGxheWxpc3QudGFibGUudHZnSUR9fSAlIiwgInt7LnBsYXlsaXN0LnRhYmxlLnVuaXF1ZUlEfX0gJSJdOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAieG1sdHYiOg0KICAgICAgICAgICAgICAgIHRoaXMudGFibGVIZWFkZXIgPSBbInt7LnhtbHR2LnRhYmxlLmd1aWRlfX0iLCAie3sueG1sdHYudGFibGUubGFzdFVwZGF0ZX19IiwgInt7LnhtbHR2LnRhYmxlLmF2YWlsYWJpbGl0eX19ICUiLCAie3sueG1sdHYudGFibGUuY2hhbm5lbHN9fSIsICJ7ey54bWx0di50YWJsZS5wcm9ncmFtc319Il07DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJmaWx0ZXIiOg0KICAgICAgICAgICAgICAgIHRoaXMudGFibGVIZWFkZXIgPSBbInt7LmZpbHRlci50YWJsZS5zdGFydGluZ0NoYW5uZWx9fSIsICJ7ey5maWx0ZXIudGFibGUubmFtZX19IiwgInt7LmZpbHRlci50YWJsZS50eXBlfX0iLCAie3suZmlsdGVyLnRhYmxlLmZpbHRlcn19Il07DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ1c2VycyI6DQogICAgICAgICAgICAgICAgdGhpcy50YWJsZUhlYWRlciA9IFsie3sudXNlcnMudGFibGUudXNlcm5hbWV9fSIsICJ7ey51c2Vycy50YWJsZS5wYXNzd29yZH19IiwgInt7LnVzZXJzLnRhYmxlLndlYn19IiwgInt7LnVzZXJzLnRhYmxlLnBtc319IiwgInt7LnVzZXJzLnRhYmxlLm0zdX19IiwgInt7LnVzZXJzLnRhYmxlLnhtbH19IiwgInt7LnVzZXJzLnRhYmxlLmFwaX19Il07DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJtYXBwaW5nIjoNCiAgICAgICAgICAgICAgICB0aGlzLnRhYmxlSGVhZGVyID0gWyJCVUxLIiwgInt7Lm1hcHBpbmcudGFibGUuY2hOb319IiwgInt7Lm1hcHBpbmcudGFibGUubG9nb319IiwgInt7Lm1hcHBpbmcudGFibGUuY2hhbm5lbE5hbWV9fSIsICJ7ey5tYXBwaW5nLnRhYmxlLnBsYXlsaXN0fX0iLCAie3subWFwcGluZy50YWJsZS5ncm91cFRpdGxlfX0iLCAie3subWFwcGluZy50YWJsZS54bWx0dkZpbGV9fSIsICJ7ey5tYXBwaW5nLnRhYmxlLnhtbHR2SUR9fSIsICJ7ey5tYXBwaW5nLnRhYmxlLnRpbWVzaGlmdH19Il07DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIH0NCiAgICAgICAgLy9jb25zb2xlLmxvZyh0aGlzLm1lbnVLZXksIHRoaXMudGFibGVIZWFkZXIpOw0KICAgIH0NCn0NCmNsYXNzIENvbnRlbnQgew0KICAgIGNvbnN0cnVjdG9yKCkgew0KICAgICAgICB0aGlzLkRvY3VtZW50SUQgPSAiY29udGVudCI7DQogICAgICAgIHRoaXMuVGFibGVJRCA9ICJjb250ZW50X3RhYmxlIjsNCiAgICAgICAgdGhpcy5oZWFkZXJDbGFzcyA9ICJjb250ZW50X3RhYmxlX2hlYWRlciI7DQogICAgICAgIHRoaXMuaW50ZXJhY3Rpb25JRCA9ICJjb250ZW50LWludGVyYWN0aW9uIjsNCiAgICB9DQogICAgY3JlYXRlSGVhZGxpbmUodmFsdWUpIHsNCiAgICAgICAgbGV0IGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJIMyIpOw0KICAgICAgICBlbGVtZW50LmlubmVySFRNTCA9IHZhbHVlOw0KICAgICAgICByZXR1cm4gZWxlbWVudDsNCiAgICB9DQogICAgY3JlYXRlSFIoKSB7DQogICAgICAgIHJldHVybiBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJIUiIpOw0KICAgIH0NCiAgICBjcmVhdGVJbnRlcmFjdGlvbigpIHsNCiAgICAgICAgbGV0IGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJESVYiKTsNCiAgICAgICAgZWxlbWVudC5zZXRBdHRyaWJ1dGUoImlkIiwgdGhpcy5pbnRlcmFjdGlvbklEKTsNCiAgICAgICAgcmV0dXJuIGVsZW1lbnQ7DQogICAgfQ0KICAgIGNyZWF0ZURJVigpIHsNCiAgICAgICAgbGV0IGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJESVYiKTsNCiAgICAgICAgZWxlbWVudC5pZCA9IHRoaXMuRGl2SUQ7DQogICAgICAgIHJldHVybiBlbGVtZW50Ow0KICAgIH0NCiAgICBjcmVhdGVUQUJMRSgpIHsNCiAgICAgICAgbGV0IGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJUQUJMRSIpOw0KICAgICAgICBlbGVtZW50LmlkID0gdGhpcy5UYWJsZUlEOw0KICAgICAgICByZXR1cm4gZWxlbWVudDsNCiAgICB9DQogICAgY3JlYXRlVGFibGVSb3coKSB7DQogICAgICAgIGxldCBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVFIiKTsNCiAgICAgICAgZWxlbWVudC5jbGFzc05hbWUgPSB0aGlzLmhlYWRlckNsYXNzOw0KICAgICAgICByZXR1cm4gZWxlbWVudDsNCiAgICB9DQogICAgY3JlYXRlVGFibGVDb250ZW50KG1lbnVLZXkpIHsNCiAgICAgICAgbGV0IGRhdGEgPSB7fTsNCiAgICAgICAgbGV0IHJvd3MgPSBbXTsNCiAgICAgICAgbGV0IGZpbGVUeXBlcyA9IFtdOw0KICAgICAgICBzd2l0Y2ggKG1lbnVLZXkpIHsNCiAgICAgICAgICAgIGNhc2UgInBsYXlsaXN0IjoNCiAgICAgICAgICAgICAgICBmaWxlVHlwZXMgPSBbIm0zdSIsICJoZGhyIl07DQogICAgICAgICAgICAgICAgZmlsZVR5cGVzLmZvckVhY2goZmlsZVR5cGUgPT4gew0KICAgICAgICAgICAgICAgICAgICBkYXRhID0gU0VSVkVSWyJzZXR0aW5ncyJdWyJmaWxlcyJdW2ZpbGVUeXBlXTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGtleXMgPSBnZXRPd25PYmpQcm9wcyhkYXRhKTsNCiAgICAgICAgICAgICAgICAgICAga2V5cy5mb3JFYWNoKGtleSA9PiB7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgdHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJUUiIpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuaWQgPSBrZXk7DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCInICsgZmlsZVR5cGUgKyAnIiwgdGhpcyknKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJuYW1lIl07DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgaWYgKFNFUlZFUlsic2V0dGluZ3MiXVsiYnVmZmVyIl0gIT0gIi0iKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsidHVuZXIiXTsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSAiLSI7DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsibGFzdC51cGRhdGUiXTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJwcm92aWRlci5hdmFpbGFiaWxpdHkiXTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJ0eXBlIl0udG9VcHBlckNhc2UoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJjb21wYXRpYmlsaXR5Il1bInN0cmVhbXMiXTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJjb21wYXRpYmlsaXR5Il1bImdyb3VwLnRpdGxlIl07DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsiY29tcGF0aWJpbGl0eSJdWyJ0dmcuaWQiXTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJjb21wYXRpYmlsaXR5Il1bInN0cmVhbS5pZCJdOw0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgcm93cy5wdXNoKHRyKTsNCiAgICAgICAgICAgICAgICAgICAgfSk7DQogICAgICAgICAgICAgICAgfSk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJmaWx0ZXIiOg0KICAgICAgICAgICAgICAgIGRlbGV0ZSBTRVJWRVJbInNldHRpbmdzIl1bImZpbHRlciJdWy0xXTsNCiAgICAgICAgICAgICAgICBkYXRhID0gU0VSVkVSWyJzZXR0aW5ncyJdWyJmaWx0ZXIiXTsNCiAgICAgICAgICAgICAgICB2YXIga2V5cyA9IGdldE93bk9ialByb3BzKGRhdGEpOw0KICAgICAgICAgICAgICAgIGtleXMuZm9yRWFjaChrZXkgPT4gew0KICAgICAgICAgICAgICAgICAgICB2YXIgdHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJUUiIpOw0KICAgICAgICAgICAgICAgICAgICB0ci5pZCA9IGtleTsNCiAgICAgICAgICAgICAgICAgICAgdHIuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgiJyArIGRhdGFba2V5XVsidHlwZSJdICsgJyIsIHRoaXMpJyk7DQogICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJzdGFydGluZ0NoYW5uZWwiXTsNCiAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsibmFtZSJdOw0KICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICBzd2l0Y2ggKGRhdGFba2V5XVsidHlwZSJdKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBjYXNlICJjdXN0b20tZmlsdGVyIjoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gInt7LmZpbHRlci5jdXN0b219fSI7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgICAgICAgICBjYXNlICJncm91cC10aXRsZSI6DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9ICJ7ey5maWx0ZXIuZ3JvdXB9fSI7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgICAgICAgICBkZWZhdWx0Og0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bImZpbHRlciJdOw0KICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgIHJvd3MucHVzaCh0cik7DQogICAgICAgICAgICAgICAgfSk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ4bWx0diI6DQogICAgICAgICAgICAgICAgZmlsZVR5cGVzID0gbmV3IEFycmF5KCJ4bWx0diIpOw0KICAgICAgICAgICAgICAgIGZpbGVUeXBlcy5mb3JFYWNoKGZpbGVUeXBlID0+IHsNCiAgICAgICAgICAgICAgICAgICAgZGF0YSA9IFNFUlZFUlsic2V0dGluZ3MiXVsiZmlsZXMiXVtmaWxlVHlwZV07DQogICAgICAgICAgICAgICAgICAgIHZhciBrZXlzID0gZ2V0T3duT2JqUHJvcHMoZGF0YSk7DQogICAgICAgICAgICAgICAgICAgIGtleXMuZm9yRWFjaChrZXkgPT4gew0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVFIiKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmlkID0ga2V5Ow0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgiJyArIGZpbGVUeXBlICsgJyIsIHRoaXMpJyk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsibmFtZSJdOw0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bImxhc3QudXBkYXRlIl07DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsicHJvdmlkZXIuYXZhaWxhYmlsaXR5Il07DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsiY29tcGF0aWJpbGl0eSJdWyJ4bWx0di5jaGFubmVscyJdOw0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bImNvbXBhdGliaWxpdHkiXVsieG1sdHYucHJvZ3JhbXMiXTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHJvd3MucHVzaCh0cik7DQogICAgICAgICAgICAgICAgICAgIH0pOw0KICAgICAgICAgICAgICAgIH0pOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAidXNlcnMiOg0KICAgICAgICAgICAgICAgIGZpbGVUeXBlcyA9IG5ldyBBcnJheSgidXNlcnMiKTsNCiAgICAgICAgICAgICAgICBmaWxlVHlwZXMuZm9yRWFjaChmaWxlVHlwZSA9PiB7DQogICAgICAgICAgICAgICAgICAgIGRhdGEgPSBTRVJWRVJbZmlsZVR5cGVdOw0KICAgICAgICAgICAgICAgICAgICB2YXIga2V5cyA9IGdldE93bk9ialByb3BzKGRhdGEpOw0KICAgICAgICAgICAgICAgICAgICBrZXlzLmZvckVhY2goa2V5ID0+IHsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciB0ciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlRSIik7DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5pZCA9IGtleTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoIicgKyBmaWxlVHlwZSArICciLCB0aGlzKScpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bImRhdGEiXVsidXNlcm5hbWUiXTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gIioqKioqKiI7DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGRhdGFba2V5XVsiZGF0YSJdWyJhdXRoZW50aWNhdGlvbi53ZWIiXSA9PSB0cnVlKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9ICLinJMiOw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9ICItIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgICAgICBpZiAoZGF0YVtrZXldWyJkYXRhIl1bImF1dGhlbnRpY2F0aW9uLnBtcyJdID09IHRydWUpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gIuKckyI7DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gIi0iOw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChkYXRhW2tleV1bImRhdGEiXVsiYXV0aGVudGljYXRpb24ubTN1Il0gPT0gdHJ1ZSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSAi4pyTIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSAiLSI7DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGRhdGFba2V5XVsiZGF0YSJdWyJhdXRoZW50aWNhdGlvbi54bWwiXSA9PSB0cnVlKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9ICLinJMiOw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9ICItIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgICAgICBpZiAoZGF0YVtrZXldWyJkYXRhIl1bImF1dGhlbnRpY2F0aW9uLmFwaSJdID09IHRydWUpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gIuKckyI7DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gIi0iOw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgcm93cy5wdXNoKHRyKTsNCiAgICAgICAgICAgICAgICAgICAgfSk7DQogICAgICAgICAgICAgICAgfSk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJtYXBwaW5nIjoNCiAgICAgICAgICAgICAgICBCVUxLX0VESVQgPSBmYWxzZTsNCiAgICAgICAgICAgICAgICBjcmVhdGVTZWFyY2hPYmooKTsNCiAgICAgICAgICAgICAgICBjaGVja1VuZG8oImVwZ01hcHBpbmciKTsNCiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZygiTUFQUElORyIpOw0KICAgICAgICAgICAgICAgIGRhdGEgPSBTRVJWRVJbInhlcGciXVsiZXBnTWFwcGluZyJdOw0KICAgICAgICAgICAgICAgIHZhciBrZXlzID0gZ2V0T3duT2JqUHJvcHMoZGF0YSk7DQogICAgICAgICAgICAgICAga2V5cy5mb3JFYWNoKGtleSA9PiB7DQogICAgICAgICAgICAgICAgICAgIHZhciB0ciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlRSIik7DQogICAgICAgICAgICAgICAgICAgIHRyLmlkID0ga2V5Ow0KICAgICAgICAgICAgICAgICAgICAvL3RyLnNldEF0dHJpYnV0ZSgnb25jb250ZXh0bWVudScsICdqYXZhc2NyaXB0OiByaWdodENsaWNrKHRoaXMpJykNCiAgICAgICAgICAgICAgICAgICAgc3dpdGNoIChkYXRhW2tleV1bIngtYWN0aXZlIl0pIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgdHJ1ZToNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ci5jbGFzc05hbWUgPSAiYWN0aXZlRVBHIjsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgZmFsc2U6DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgdHIuY2xhc3NOYW1lID0gIm5vdEFjdGl2ZUVQRyI7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgLy8gQnVsaw0KICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJCVUxLIjsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGZhbHNlOw0KICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgIC8vIENoYW5uZWwgbnVtYmVyDQogICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIklOUFVUQ0hBTk5FTCI7DQogICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bIngtY2hhbm5lbElEIl07DQogICAgICAgICAgICAgICAgICAgIC8vdGQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IGNoYW5nZUNoYW5uZWxOdW1iZXIoIicgKyBrZXkgKyAnIiwgdGhpcyknKQ0KICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgIC8vIExvZ28NCiAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiSU1HIjsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5pbWFnZVVSTCA9IGRhdGFba2V5XVsidHZnLWxvZ28iXTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHRkID0gY2VsbC5jcmVhdGVDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgIHRkLnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoIm1hcHBpbmciLCB0aGlzKScpOw0KICAgICAgICAgICAgICAgICAgICB0ZC5pZCA9IGtleTsNCiAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQodGQpOw0KICAgICAgICAgICAgICAgICAgICAvLyBDaGFubmVsIG5hbWUNCiAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2xhc3NOYW1lID0gZGF0YVtrZXldWyJ4LWNhdGVnb3J5Il07DQogICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bIngtbmFtZSJdOw0KICAgICAgICAgICAgICAgICAgICB2YXIgdGQgPSBjZWxsLmNyZWF0ZUNlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgdGQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgibWFwcGluZyIsIHRoaXMpJyk7DQogICAgICAgICAgICAgICAgICAgIHRkLmlkID0ga2V5Ow0KICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZCh0ZCk7DQogICAgICAgICAgICAgICAgICAgIC8vIFBsYXlsaXN0DQogICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAvL2NlbGwudmFsdWUgPSBkYXRhW2tleV1bIl9maWxlLm0zdS5uYW1lIl0gDQogICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBnZXRWYWx1ZUZyb21Qcm92aWRlckZpbGUoZGF0YVtrZXldWyJfZmlsZS5tM3UuaWQiXSwgIm0zdSIsICJuYW1lIik7DQogICAgICAgICAgICAgICAgICAgIHZhciB0ZCA9IGNlbGwuY3JlYXRlQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICB0ZC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJtYXBwaW5nIiwgdGhpcyknKTsNCiAgICAgICAgICAgICAgICAgICAgdGQuaWQgPSBrZXk7DQogICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKHRkKTsNCiAgICAgICAgICAgICAgICAgICAgLy8gR3JvdXAgKGdyb3VwLXRpdGxlKQ0KICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsieC1ncm91cC10aXRsZSJdOw0KICAgICAgICAgICAgICAgICAgICB2YXIgdGQgPSBjZWxsLmNyZWF0ZUNlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgdGQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgibWFwcGluZyIsIHRoaXMpJyk7DQogICAgICAgICAgICAgICAgICAgIHRkLmlkID0ga2V5Ow0KICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZCh0ZCk7DQogICAgICAgICAgICAgICAgICAgIC8vIFhNTFRWIGZpbGUNCiAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgIGlmIChkYXRhW2tleV1bIngteG1sdHYtZmlsZSJdICE9ICItIikgew0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGdldFZhbHVlRnJvbVByb3ZpZGVyRmlsZShkYXRhW2tleV1bIngteG1sdHYtZmlsZSJdLCAieG1sdHYiLCAibmFtZSIpOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsieC14bWx0di1maWxlIl07DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgdmFyIHRkID0gY2VsbC5jcmVhdGVDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgIHRkLnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoIm1hcHBpbmciLCB0aGlzKScpOw0KICAgICAgICAgICAgICAgICAgICB0ZC5pZCA9IGtleTsNCiAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQodGQpOw0KICAgICAgICAgICAgICAgICAgICAvLyBYTUxUViBDaGFubmVsDQogICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAvL3ZhciB2YWx1ZSA9IHN0ci5zdWJzdHJpbmcoMSwgNCk7DQogICAgICAgICAgICAgICAgICAgIHZhciB2YWx1ZSA9IGRhdGFba2V5XVsieC1tYXBwaW5nIl07DQogICAgICAgICAgICAgICAgICAgIGlmICh2YWx1ZS5sZW5ndGggPiAyMCkgew0KICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSBkYXRhW2tleV1bIngtbWFwcGluZyJdLnN1YnN0cmluZygwLCAyMCkgKyAiLi4uIjsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gdmFsdWU7DQogICAgICAgICAgICAgICAgICAgIHZhciB0ZCA9IGNlbGwuY3JlYXRlQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICB0ZC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJtYXBwaW5nIiwgdGhpcyknKTsNCiAgICAgICAgICAgICAgICAgICAgdGQuaWQgPSBrZXk7DQogICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKHRkKTsNCiAgICAgICAgICAgICAgICAgICAgLy8gVGltZVNoaWZ0DQogICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJ4LXRpbWVzaGlmdCJdOw0KICAgICAgICAgICAgICAgICAgICB2YXIgdGQgPSBjZWxsLmNyZWF0ZUNlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgdGQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgibWFwcGluZyIsIHRoaXMpJyk7DQogICAgICAgICAgICAgICAgICAgIHRkLmlkID0ga2V5Ow0KICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZCh0ZCk7DQogICAgICAgICAgICAgICAgICAgIHJvd3MucHVzaCh0cik7DQogICAgICAgICAgICAgICAgfSk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJzZXR0aW5ncyI6DQogICAgICAgICAgICAgICAgYWxlcnQoKTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICAgICAgY29uc29sZS5sb2coIlRhYmxlIGNvbnRlbnQgKG1lbnVLZXkpOiIsIG1lbnVLZXkpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICB9DQogICAgICAgIHJldHVybiByb3dzOw0KICAgIH0NCn0NCmNsYXNzIENlbGwgew0KICAgIGNyZWF0ZUNlbGwoKSB7DQogICAgICAgIGxldCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgIGlmICh0aGlzLmNoaWxkID09IHRydWUpIHsNCiAgICAgICAgICAgIHZhciBlbGVtZW50Ow0KICAgICAgICAgICAgc3dpdGNoICh0aGlzLmNoaWxkVHlwZSkgew0KICAgICAgICAgICAgICAgIGNhc2UgIlAiOg0KICAgICAgICAgICAgICAgICAgICBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCh0aGlzLmNoaWxkVHlwZSk7DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQuaW5uZXJIVE1MID0gdGhpcy52YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC5jbGFzc05hbWUgPSB0aGlzLmNsYXNzTmFtZTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAiSU5QVVQiOg0KICAgICAgICAgICAgICAgICAgICBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCh0aGlzLmNoaWxkVHlwZSk7DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQudmFsdWUgPSB0aGlzLnZhbHVlOw0KICAgICAgICAgICAgICAgICAgICBlbGVtZW50LnR5cGUgPSAidGV4dCI7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgIklOUFVUQ0hBTk5FTCI6DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJJTlBVVCIpOw0KICAgICAgICAgICAgICAgICAgICBlbGVtZW50LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2c2NyaXB0OiBjaGFuZ2VDaGFubmVsTnVtYmVyKHRoaXMpIik7DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQudmFsdWUgPSB0aGlzLnZhbHVlOw0KICAgICAgICAgICAgICAgICAgICBlbGVtZW50LnR5cGUgPSAidGV4dCI7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgIkJVTEsiOg0KICAgICAgICAgICAgICAgICAgICBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiSU5QVVQiKTsNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC5jaGVja2VkID0gdGhpcy52YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC50eXBlID0gImNoZWNrYm94IjsNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC5jbGFzc05hbWUgPSAiYnVsayBoaWRlQnVsayI7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgIkJVTEtfSEVBRCI6DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJJTlBVVCIpOw0KICAgICAgICAgICAgICAgICAgICBlbGVtZW50LmNoZWNrZWQgPSB0aGlzLnZhbHVlOw0KICAgICAgICAgICAgICAgICAgICBlbGVtZW50LnR5cGUgPSAiY2hlY2tib3giOw0KICAgICAgICAgICAgICAgICAgICBlbGVtZW50LmNsYXNzTmFtZSA9ICJidWxrIGhpZGVCdWxrIjsNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAiamF2YXNjcmlwdDogc2VsZWN0QWxsQ2hhbm5lbHMoKSIpOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBjYXNlICJJTUciOg0KICAgICAgICAgICAgICAgICAgICBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCh0aGlzLmNoaWxkVHlwZSk7DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQuc2V0QXR0cmlidXRlKCJzcmMiLCB0aGlzLmltYWdlVVJMKTsNCiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuaW1hZ2VVUkwgIT0gIiIpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGVsZW1lbnQuc2V0QXR0cmlidXRlKCJvbmVycm9yIiwgImphdmFzY3JpcHQ6IHRoaXMub25lcnJvcj1udWxsO3RoaXMuc3JjPScnIik7DQogICAgICAgICAgICAgICAgICAgICAgICAvL29uZXJyb3I9InRoaXMub25lcnJvcj1udWxsO3RoaXMuc3JjPSdtaXNzaW5nLmdpZic7Ig0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9DQogICAgICAgICAgICB0ZC5hcHBlbmRDaGlsZChlbGVtZW50KTsNCiAgICAgICAgfQ0KICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgIHRkLmlubmVySFRNTCA9IHRoaXMudmFsdWU7DQogICAgICAgIH0NCiAgICAgICAgaWYgKHRoaXMub25jbGljayA9PSB0cnVlKSB7DQogICAgICAgICAgICB0ZC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCB0aGlzLm9uY2xpY2tGdW5jdGlvbik7DQogICAgICAgICAgICB0ZC5jbGFzc05hbWUgPSAicG9pbnRlciI7DQogICAgICAgIH0NCiAgICAgICAgaWYgKHRoaXMudGRDbGFzc05hbWUgIT0gdW5kZWZpbmVkKSB7DQogICAgICAgICAgICB0ZC5jbGFzc05hbWUgPSB0aGlzLnRkQ2xhc3NOYW1lOw0KICAgICAgICB9DQogICAgICAgIHJldHVybiB0ZDsNCiAgICB9DQp9DQpjbGFzcyBTaG93Q29udGVudCBleHRlbmRzIENvbnRlbnQgew0KICAgIGNvbnN0cnVjdG9yKG1lbnVJRCkgew0KICAgICAgICBzdXBlcigpOw0KICAgICAgICB0aGlzLm1lbnVJRCA9IG1lbnVJRDsNCiAgICB9DQogICAgY3JlYXRlSW5wdXQodHlwZSwgbmFtZSwgdmFsdWUpIHsNCiAgICAgICAgbGV0IGlucHV0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiSU5QVVQiKTsNCiAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJ0eXBlIiwgdHlwZSk7DQogICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgibmFtZSIsIG5hbWUpOw0KICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInZhbHVlIiwgdmFsdWUpOw0KICAgICAgICByZXR1cm4gaW5wdXQ7DQogICAgfQ0KICAgIHNob3coKSB7DQogICAgICAgIENPTFVNTl9UT19TT1JUID0gLTE7DQogICAgICAgIC8vIERlbGV0ZSBvbGQgY29udGVudA0KICAgICAgICBsZXQgZG9jID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQodGhpcy5Eb2N1bWVudElEKTsNCiAgICAgICAgZG9jLmlubmVySFRNTCA9ICIiOw0KICAgICAgICBzaG93UHJldmlldyhmYWxzZSk7DQogICAgICAgIC8vIEhlYWRsaW5lDQogICAgICAgIGxldCBoZWFkbGluZSA9IG1lbnVJdGVtc1t0aGlzLm1lbnVJRF0uaGVhZGxpbmU7DQogICAgICAgIGxldCBtZW51S2V5ID0gbWVudUl0ZW1zW3RoaXMubWVudUlEXS5tZW51S2V5Ow0KICAgICAgICBsZXQgaCA9IHRoaXMuY3JlYXRlSGVhZGxpbmUoaGVhZGxpbmUpOw0KICAgICAgICBkb2MuYXBwZW5kQ2hpbGQoaCk7DQogICAgICAgIGxldCBociA9IHRoaXMuY3JlYXRlSFIoKTsNCiAgICAgICAgZG9jLmFwcGVuZENoaWxkKGhyKTsNCiAgICAgICAgLy8gSW50ZXJhY3Rpb24NCiAgICAgICAgbGV0IGRpdiA9IHRoaXMuY3JlYXRlSW50ZXJhY3Rpb24oKTsNCiAgICAgICAgZG9jLmFwcGVuZENoaWxkKGRpdik7DQogICAgICAgIGxldCBpbnRlcmFjdGlvbiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHRoaXMuaW50ZXJhY3Rpb25JRCk7DQogICAgICAgIHN3aXRjaCAobWVudUtleSkgew0KICAgICAgICAgICAgY2FzZSAicGxheWxpc3QiOg0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IHRoaXMuY3JlYXRlSW5wdXQoImJ1dHRvbiIsIG1lbnVLZXksICJ7ey5idXR0b24ubmV3fX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoImlkIiwgIi0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJwbGF5bGlzdCIpJyk7DQogICAgICAgICAgICAgICAgaW50ZXJhY3Rpb24uYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiZmlsdGVyIjoNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSB0aGlzLmNyZWF0ZUlucHV0KCJidXR0b24iLCBtZW51S2V5LCAie3suYnV0dG9uLm5ld319Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJpZCIsIC0xKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJmaWx0ZXIiLCB0aGlzKScpOw0KICAgICAgICAgICAgICAgIGludGVyYWN0aW9uLmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInhtbHR2IjoNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSB0aGlzLmNyZWF0ZUlucHV0KCJidXR0b24iLCBtZW51S2V5LCAie3suYnV0dG9uLm5ld319Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJpZCIsICJ4bWx0diIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoInhtbHR2IiknKTsNCiAgICAgICAgICAgICAgICBpbnRlcmFjdGlvbi5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ1c2VycyI6DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gdGhpcy5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgbWVudUtleSwgInt7LmJ1dHRvbi5uZXd9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgiaWQiLCAidXNlcnMiKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJ1c2VycyIpJyk7DQogICAgICAgICAgICAgICAgaW50ZXJhY3Rpb24uYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAibWFwcGluZyI6DQogICAgICAgICAgICAgICAgc2hvd0VsZW1lbnQoImxvYWRpbmciLCB0cnVlKTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSB0aGlzLmNyZWF0ZUlucHV0KCJidXR0b24iLCBtZW51S2V5LCAie3suYnV0dG9uLnNhdmV9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBzYXZlUG9wdXBEYXRhKCJtYXBwaW5nIiwgIiIsICIiKScpOw0KICAgICAgICAgICAgICAgIGludGVyYWN0aW9uLmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSB0aGlzLmNyZWF0ZUlucHV0KCJidXR0b24iLCBtZW51S2V5LCAie3suYnV0dG9uLmJ1bGtFZGl0fX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogYnVsa0VkaXQoKScpOw0KICAgICAgICAgICAgICAgIGludGVyYWN0aW9uLmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSB0aGlzLmNyZWF0ZUlucHV0KCJzZWFyY2giLCAic2VhcmNoIiwgIiIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgiaWQiLCAic2VhcmNoTWFwcGluZyIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3suYnV0dG9uLnNlYXJjaH19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuY2xhc3NOYW1lID0gInNlYXJjaCI7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICdqYXZhc2NyaXB0OiBzZWFyY2hJbk1hcHBpbmcoKScpOw0KICAgICAgICAgICAgICAgIGludGVyYWN0aW9uLmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInNldHRpbmdzIjoNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSB0aGlzLmNyZWF0ZUlucHV0KCJidXR0b24iLCBtZW51S2V5LCAie3suYnV0dG9uLnNhdmV9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBzYXZlU2V0dGluZ3MoKTsnKTsNCiAgICAgICAgICAgICAgICBpbnRlcmFjdGlvbi5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gdGhpcy5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgbWVudUtleSwgInt7LmJ1dHRvbi5iYWNrdXB9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBiYWNrdXAoKTsnKTsNCiAgICAgICAgICAgICAgICBpbnRlcmFjdGlvbi5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gdGhpcy5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgbWVudUtleSwgInt7LmJ1dHRvbi5yZXN0b3JlfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogcmVzdG9yZSgpOycpOw0KICAgICAgICAgICAgICAgIGludGVyYWN0aW9uLmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICB2YXIgd3JhcHBlciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIkRJViIpOw0KICAgICAgICAgICAgICAgIHdyYXBwZXIuc2V0QXR0cmlidXRlKCJpZCIsICJib3gtd3JhcHBlciIpOw0KICAgICAgICAgICAgICAgIGRvYy5hcHBlbmRDaGlsZCh3cmFwcGVyKTsNCiAgICAgICAgICAgICAgICB0aGlzLkRpdklEID0gImNvbnRlbnRfc2V0dGluZ3MiOw0KICAgICAgICAgICAgICAgIHZhciBzZXR0aW5ncyA9IHRoaXMuY3JlYXRlRElWKCk7DQogICAgICAgICAgICAgICAgd3JhcHBlci5hcHBlbmRDaGlsZChzZXR0aW5ncyk7DQogICAgICAgICAgICAgICAgc2hvd1NldHRpbmdzKCk7DQogICAgICAgICAgICAgICAgcmV0dXJuOw0KICAgICAgICAgICAgY2FzZSAibG9nIjoNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSB0aGlzLmNyZWF0ZUlucHV0KCJidXR0b24iLCBtZW51S2V5LCAie3suYnV0dG9uLnJlc2V0TG9nc319Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IHJlc2V0TG9ncygpOycpOw0KICAgICAgICAgICAgICAgIGludGVyYWN0aW9uLmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICB2YXIgd3JhcHBlciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIkRJViIpOw0KICAgICAgICAgICAgICAgIHdyYXBwZXIuc2V0QXR0cmlidXRlKCJpZCIsICJib3gtd3JhcHBlciIpOw0KICAgICAgICAgICAgICAgIGRvYy5hcHBlbmRDaGlsZCh3cmFwcGVyKTsNCiAgICAgICAgICAgICAgICB0aGlzLkRpdklEID0gImNvbnRlbnRfbG9nIjsNCiAgICAgICAgICAgICAgICB2YXIgbG9ncyA9IHRoaXMuY3JlYXRlRElWKCk7DQogICAgICAgICAgICAgICAgd3JhcHBlci5hcHBlbmRDaGlsZChsb2dzKTsNCiAgICAgICAgICAgICAgICBzaG93TG9ncyh0cnVlKTsNCiAgICAgICAgICAgICAgICByZXR1cm47DQogICAgICAgICAgICBjYXNlICJsb2dvdXQiOg0KICAgICAgICAgICAgICAgIGxvY2F0aW9uLnJlbG9hZCgpOw0KICAgICAgICAgICAgICAgIGRvY3VtZW50LmNvb2tpZSA9ICJUb2tlbj0gOyBleHBpcmVzID0gVGh1LCAwMSBKYW4gMTk3MCAwMDowMDowMCBHTVQiOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZygiU2hvdyBjb250ZW50IChtZW51S2V5KToiLCBtZW51S2V5KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgfQ0KICAgICAgICAvLyBDcmVhdGUgdGFibGUgKGlmIG5lZWRlZCkNCiAgICAgICAgdmFyIHRhYmxlSGVhZGVyID0gbWVudUl0ZW1zW3RoaXMubWVudUlEXS50YWJsZUhlYWRlcjsNCiAgICAgICAgaWYgKHRhYmxlSGVhZGVyLmxlbmd0aCA+IDApIHsNCiAgICAgICAgICAgIHZhciB3cmFwcGVyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiRElWIik7DQogICAgICAgICAgICBkb2MuYXBwZW5kQ2hpbGQod3JhcHBlcik7DQogICAgICAgICAgICB3cmFwcGVyLnNldEF0dHJpYnV0ZSgiaWQiLCAiYm94LXdyYXBwZXIiKTsNCiAgICAgICAgICAgIHZhciB0YWJsZSA9IHRoaXMuY3JlYXRlVEFCTEUoKTsNCiAgICAgICAgICAgIHdyYXBwZXIuYXBwZW5kQ2hpbGQodGFibGUpOw0KICAgICAgICAgICAgdmFyIGhlYWRlciA9IHRoaXMuY3JlYXRlVGFibGVSb3coKTsNCiAgICAgICAgICAgIHRhYmxlLmFwcGVuZENoaWxkKGhlYWRlcik7DQogICAgICAgICAgICAvLyBUYWJsZSBoZWFkZXINCiAgICAgICAgICAgIHRhYmxlSGVhZGVyLmZvckVhY2goZWxlbWVudCA9PiB7DQogICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBlbGVtZW50Ow0KICAgICAgICAgICAgICAgIGlmIChlbGVtZW50ID09ICJCVUxLIikgew0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJCVUxLX0hFQUQiOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZmFsc2U7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIGlmIChtZW51S2V5ID09ICJtYXBwaW5nIikgew0KICAgICAgICAgICAgICAgICAgICBpZiAoZWxlbWVudCA9PSAie3subWFwcGluZy50YWJsZS5jaE5vfX0iKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLm9uY2xpY2sgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5vbmNsaWNrRnVuY3Rpb24gPSAiamF2YXNjcmlwdDogc29ydFRhYmxlKDEpOyI7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnRkQ2xhc3NOYW1lID0gInNvcnRUaGlzIjsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBpZiAoZWxlbWVudCA9PSAie3subWFwcGluZy50YWJsZS5jaGFubmVsTmFtZX19Iikgew0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5vbmNsaWNrID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwub25jbGlja0Z1bmN0aW9uID0gImphdmFzY3JpcHQ6IHNvcnRUYWJsZSgzKTsiOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIGlmIChlbGVtZW50ID09ICJ7ey5tYXBwaW5nLnRhYmxlLnBsYXlsaXN0fX0iKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLm9uY2xpY2sgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5vbmNsaWNrRnVuY3Rpb24gPSAiamF2YXNjcmlwdDogc29ydFRhYmxlKDQpOyI7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgaWYgKGVsZW1lbnQgPT0gInt7Lm1hcHBpbmcudGFibGUuZ3JvdXBUaXRsZX19Iikgew0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5vbmNsaWNrID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwub25jbGlja0Z1bmN0aW9uID0gImphdmFzY3JpcHQ6IHNvcnRUYWJsZSg1KTsiOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIGlmIChlbGVtZW50ID09ICJ7ey5tYXBwaW5nLnRhYmxlLnRpbWVzaGlmdH19Iikgew0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5vbmNsaWNrID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwub25jbGlja0Z1bmN0aW9uID0gImphdmFzY3JpcHQ6IHNvcnRUYWJsZSg4KTsiOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIGlmIChtZW51S2V5ID09ICJmaWx0ZXIiKSB7DQogICAgICAgICAgICAgICAgICAgIGlmIChlbGVtZW50ID09ICJ7ey5maWx0ZXIudGFibGUuc3RhcnRpbmdDaGFubmVsfX0iKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLm9uY2xpY2sgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5vbmNsaWNrRnVuY3Rpb24gPSAiamF2YXNjcmlwdDogc29ydFRhYmxlKDApOyI7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnRkQ2xhc3NOYW1lID0gInNvcnRUaGlzIjsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBpZiAoZWxlbWVudCA9PSAie3suZmlsdGVyLnRhYmxlLm5hbWV9fSIpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwub25jbGljayA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLm9uY2xpY2tGdW5jdGlvbiA9ICJqYXZhc2NyaXB0OiBzb3J0VGFibGUoMSk7IjsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBpZiAoZWxlbWVudCA9PSAie3suZmlsdGVyLnRhYmxlLnR5cGV9fSIpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwub25jbGljayA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLm9uY2xpY2tGdW5jdGlvbiA9ICJqYXZhc2NyaXB0OiBzb3J0VGFibGUoMik7IjsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBpZiAoZWxlbWVudCA9PSAie3suZmlsdGVyLnRhYmxlLmZpbHRlcn19Iikgew0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5vbmNsaWNrID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwub25jbGlja0Z1bmN0aW9uID0gImphdmFzY3JpcHQ6IHNvcnRUYWJsZSgzKTsiOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIGhlYWRlci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICB9KTsNCiAgICAgICAgICAgIHRhYmxlLmFwcGVuZENoaWxkKGhlYWRlcik7DQogICAgICAgICAgICAvLyBDb250ZW50IG9mIHRoZSB0YWJsZQ0KICAgICAgICAgICAgdmFyIHJvd3MgPSB0aGlzLmNyZWF0ZVRhYmxlQ29udGVudChtZW51S2V5KTsNCiAgICAgICAgICAgIHJvd3MuZm9yRWFjaCh0ciA9PiB7DQogICAgICAgICAgICAgICAgdGFibGUuYXBwZW5kQ2hpbGQodHIpOw0KICAgICAgICAgICAgfSk7DQogICAgICAgIH0NCiAgICAgICAgc3dpdGNoIChtZW51S2V5KSB7DQogICAgICAgICAgICBjYXNlICJtYXBwaW5nIjoNCiAgICAgICAgICAgICAgICBzb3J0VGFibGUoMSk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJmaWx0ZXIiOg0KICAgICAgICAgICAgICAgIHNob3dQcmV2aWV3KHRydWUpOw0KICAgICAgICAgICAgICAgIHNvcnRUYWJsZSgwKTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICAgICAgQ09MVU1OX1RPX1NPUlQgPSAtMTsNCiAgICAgICAgICAgICAgICBzb3J0VGFibGUoMCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIH0NCiAgICAgICAgc2hvd0VsZW1lbnQoImxvYWRpbmciLCBmYWxzZSk7DQogICAgfQ0KfQ0KZnVuY3Rpb24gUGFnZVJlYWR5KCkgew0KICAgIGxldCBzZXJ2ZXIgPSBuZXcgU2VydmVyKCJnZXRTZXJ2ZXJDb25maWciKTsNCiAgICBzZXJ2ZXIucmVxdWVzdCh7fSk7DQogICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoInJlc2l6ZSIsIGZ1bmN0aW9uICgpIHsNCiAgICAgICAgY2FsY3VsYXRlV3JhcHBlckhlaWdodCgpOw0KICAgIH0sIHRydWUpOw0KICAgIHNldEludGVydmFsKGZ1bmN0aW9uICgpIHsNCiAgICAgICAgdXBkYXRlTG9nKCk7DQogICAgfSwgMTAwMDApOw0KICAgIHJldHVybjsNCn0NCmZ1bmN0aW9uIGNyZWF0ZUxheW91dCgpIHsNCiAgICAvLyBDbGllbnQgSW5mbw0KICAgIGxldCBvYmogPSBTRVJWRVJbImNsaWVudEluZm8iXTsNCiAgICBsZXQga2V5cyA9IGdldE93bk9ialByb3BzKG9iaik7DQogICAgZm9yICh2YXIgaSA9IDA7IGkgPCBrZXlzLmxlbmd0aDsgaSsrKSB7DQogICAgICAgIGlmIChkb2N1bWVudC5nZXRFbGVtZW50QnlJZChrZXlzW2ldKSkgew0KICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoa2V5c1tpXSkuaW5uZXJIVE1MID0gb2JqW2tleXNbaV1dOw0KICAgICAgICB9DQogICAgfQ0KICAgIGlmICghZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm1haW4tbWVudSIpKSB7DQogICAgICAgIHJldHVybjsNCiAgICB9DQogICAgLy8gQ3JlYXRlIG1lbnUNCiAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibWFpbi1tZW51IikuaW5uZXJIVE1MID0gIiI7DQogICAgZm9yIChsZXQgaSA9IDA7IGkgPCBtZW51SXRlbXMubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgbWVudUl0ZW1zW2ldLmlkID0gaTsNCiAgICAgICAgc3dpdGNoIChtZW51SXRlbXNbaV1bIm1lbnVLZXkiXSkgew0KICAgICAgICAgICAgY2FzZSAidXNlcnMiOg0KICAgICAgICAgICAgY2FzZSAibG9nb3V0IjoNCiAgICAgICAgICAgICAgICBpZiAoU0VSVkVSWyJzZXR0aW5ncyJdWyJhdXRoZW50aWNhdGlvbi53ZWIiXSA9PSB0cnVlKSB7DQogICAgICAgICAgICAgICAgICAgIG1lbnVJdGVtc1tpXS5jcmVhdGVJdGVtKCk7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAibWFwcGluZyI6DQogICAgICAgICAgICBjYXNlICJ4bWx0diI6DQogICAgICAgICAgICAgICAgaWYgKFNFUlZFUlsiY2xpZW50SW5mbyJdWyJlcGdTb3VyY2UiXSA9PSAiWEVQRyIpIHsNCiAgICAgICAgICAgICAgICAgICAgbWVudUl0ZW1zW2ldLmNyZWF0ZUl0ZW0oKTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBkZWZhdWx0Og0KICAgICAgICAgICAgICAgIG1lbnVJdGVtc1tpXS5jcmVhdGVJdGVtKCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIH0NCiAgICB9DQogICAgcmV0dXJuOw0KfQ0KZnVuY3Rpb24gb3BlblRoaXNNZW51KGVsZW1lbnQpIHsNCiAgICBsZXQgaWQgPSBlbGVtZW50LmlkOw0KICAgIGxldCBjb250ZW50ID0gbmV3IFNob3dDb250ZW50KGlkKTsNCiAgICBjb250ZW50LnNob3coKTsNCiAgICBjYWxjdWxhdGVXcmFwcGVySGVpZ2h0KCk7DQogICAgcmV0dXJuOw0KfQ0KY2xhc3MgUG9wdXBXaW5kb3cgew0KICAgIGNvbnN0cnVjdG9yKCkgew0KICAgICAgICB0aGlzLkRvY3VtZW50SUQgPSAicG9wdXAtY3VzdG9tIjsNCiAgICAgICAgdGhpcy5JbnRlcmFjdGlvbklEID0gImludGVyYWN0aW9uIjsNCiAgICAgICAgdGhpcy5kb2MgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCh0aGlzLkRvY3VtZW50SUQpOw0KICAgIH0NCiAgICBjcmVhdGVUaXRsZSh0aXRsZSkgew0KICAgICAgICBsZXQgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICB0ZC5jbGFzc05hbWUgPSAibGVmdCI7DQogICAgICAgIHRkLmlubmVySFRNTCA9IHRpdGxlICsgIjoiOw0KICAgICAgICByZXR1cm4gdGQ7DQogICAgfQ0KICAgIGNyZWF0ZUNvbnRlbnQoZWxlbWVudCkgew0KICAgICAgICBsZXQgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICB0ZC5hcHBlbmRDaGlsZChlbGVtZW50KTsNCiAgICAgICAgcmV0dXJuIHRkOw0KICAgIH0NCiAgICBjcmVhdGVJbnRlcmFjdGlvbigpIHsNCiAgICAgICAgbGV0IGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOw0KICAgICAgICBkaXYuc2V0QXR0cmlidXRlKCJpZCIsICJwb3B1cC1pbnRlcmFjdGlvbiIpOw0KICAgICAgICBkaXYuY2xhc3NOYW1lID0gImludGVyYWN0aW9uIjsNCiAgICAgICAgdGhpcy5kb2MuYXBwZW5kQ2hpbGQoZGl2KTsNCiAgICB9DQp9DQpjbGFzcyBQb3B1cENvbnRlbnQgZXh0ZW5kcyBQb3B1cFdpbmRvdyB7DQogICAgY29uc3RydWN0b3IoKSB7DQogICAgICAgIHN1cGVyKC4uLmFyZ3VtZW50cyk7DQogICAgICAgIHRoaXMudGFibGUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJUQUJMRSIpOw0KICAgIH0NCiAgICBjcmVhdGVIZWFkbGluZShoZWFkbGluZSkgew0KICAgICAgICB0aGlzLmRvYy5pbm5lckhUTUwgPSAiIjsNCiAgICAgICAgdmFyIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJIMyIpOw0KICAgICAgICBlbGVtZW50LmlubmVySFRNTCA9IGhlYWRsaW5lLnRvVXBwZXJDYXNlKCk7DQogICAgICAgIHRoaXMuZG9jLmFwcGVuZENoaWxkKGVsZW1lbnQpOw0KICAgICAgICAvLyBDcmVhdGUgdGFibGUNCiAgICAgICAgdGhpcy50YWJsZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlRBQkxFIik7DQogICAgICAgIHRoaXMuZG9jLmFwcGVuZENoaWxkKHRoaXMudGFibGUpOw0KICAgIH0NCiAgICBhcHBlbmRSb3codGl0bGUsIGVsZW1lbnQpIHsNCiAgICAgICAgbGV0IHRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVFIiKTsNCiAgICAgICAgLy8gVGl0bGUNCiAgICAgICAgaWYgKHRpdGxlLmxlbmd0aCAhPSAwKSB7DQogICAgICAgICAgICB0ci5hcHBlbmRDaGlsZCh0aGlzLmNyZWF0ZVRpdGxlKHRpdGxlKSk7DQogICAgICAgIH0NCiAgICAgICAgLy8gQ29udGVudA0KICAgICAgICB0ci5hcHBlbmRDaGlsZCh0aGlzLmNyZWF0ZUNvbnRlbnQoZWxlbWVudCkpOw0KICAgICAgICB0aGlzLnRhYmxlLmFwcGVuZENoaWxkKHRyKTsNCiAgICB9DQogICAgY3JlYXRlSW5wdXQodHlwZSwgbmFtZSwgdmFsdWUpIHsNCiAgICAgICAgbGV0IGlucHV0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiSU5QVVQiKTsNCiAgICAgICAgaWYgKHZhbHVlID09IHVuZGVmaW5lZCkgew0KICAgICAgICAgICAgdmFsdWUgPSAiIjsNCiAgICAgICAgfQ0KICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInR5cGUiLCB0eXBlKTsNCiAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJuYW1lIiwgbmFtZSk7DQogICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgidmFsdWUiLCB2YWx1ZSk7DQogICAgICAgIHJldHVybiBpbnB1dDsNCiAgICB9DQogICAgY3JlYXRlQ2hlY2tib3gobmFtZSkgew0KICAgICAgICBsZXQgaW5wdXQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJJTlBVVCIpOw0KICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInR5cGUiLCAiY2hlY2tib3giKTsNCiAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJuYW1lIiwgbmFtZSk7DQogICAgICAgIHJldHVybiBpbnB1dDsNCiAgICB9DQogICAgLy8gQ3JlYXRlcyBhIHNlbGVjdGlvbiBvZiBtdWx0aXBsZSBvcHRpb25zIHZhbHVlcyB3aXRoIHRleHQgZGVzY3JpcHRpb25zDQogICAgY3JlYXRlU2VsZWN0KHRleHQsIHZhbHVlcywgc2V0LCBkYktleSkgew0KICAgICAgICBsZXQgc2VsZWN0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiU0VMRUNUIik7DQogICAgICAgIHNlbGVjdC5zZXRBdHRyaWJ1dGUoIm5hbWUiLCBkYktleSk7DQogICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGV4dC5sZW5ndGg7IGkrKykgew0KICAgICAgICAgICAgbGV0IG9wdGlvbiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIk9QVElPTiIpOw0KICAgICAgICAgICAgb3B0aW9uLnNldEF0dHJpYnV0ZSgidmFsdWUiLCB2YWx1ZXNbaV0pOw0KICAgICAgICAgICAgb3B0aW9uLmlubmVyVGV4dCA9IHRleHRbaV07DQogICAgICAgICAgICBzZWxlY3QuYXBwZW5kQ2hpbGQob3B0aW9uKTsNCiAgICAgICAgfQ0KICAgICAgICBpZiAoc2V0ICE9ICIiKSB7DQogICAgICAgICAgICBzZWxlY3QudmFsdWUgPSBzZXQ7DQogICAgICAgIH0NCiAgICAgICAgaWYgKHNldCA9PSB1bmRlZmluZWQpIHsNCiAgICAgICAgICAgIHNlbGVjdC52YWx1ZSA9IHZhbHVlc1swXTsNCiAgICAgICAgfQ0KICAgICAgICByZXR1cm4gc2VsZWN0Ow0KICAgIH0NCiAgICBzZWxlY3RPcHRpb24oc2VsZWN0LCB2YWx1ZSkgew0KICAgICAgICAvL3NlbGVjdC5zZWxlY3RlZE9wdGlvbnMgPSB2YWx1ZQ0KICAgICAgICBsZXQgcyA9IHNlbGVjdDsNCiAgICAgICAgcy5vcHRpb25zW3Muc2VsZWN0ZWRJbmRleF0udmFsdWUgPSB2YWx1ZTsNCiAgICAgICAgcmV0dXJuIHNlbGVjdDsNCiAgICB9DQogICAgZGVzY3JpcHRpb24odmFsdWUpIHsNCiAgICAgICAgbGV0IHRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVFIiKTsNCiAgICAgICAgbGV0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgbGV0IHNwYW4gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJQUkUiKTsNCiAgICAgICAgc3Bhbi5pbm5lckhUTUwgPSB2YWx1ZTsNCiAgICAgICAgdHIuYXBwZW5kQ2hpbGQodGQpOw0KICAgICAgICB0ci5hcHBlbmRDaGlsZCh0aGlzLmNyZWF0ZUNvbnRlbnQoc3BhbikpOw0KICAgICAgICB0aGlzLnRhYmxlLmFwcGVuZENoaWxkKHRyKTsNCiAgICB9DQogICAgLy8gSW50ZXJhY3Rpb24NCiAgICBhZGRJbnRlcmFjdGlvbihlbGVtZW50KSB7DQogICAgICAgIGxldCBpbnRlcmFjdGlvbiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJwb3B1cC1pbnRlcmFjdGlvbiIpOw0KICAgICAgICBpbnRlcmFjdGlvbi5hcHBlbmRDaGlsZChlbGVtZW50KTsNCiAgICB9DQp9DQpmdW5jdGlvbiBvcGVuUG9wVXAoZGF0YVR5cGUsIGVsZW1lbnQpIHsNCiAgICBsZXQgZGF0YSA9IHt9Ow0KICAgIGxldCBpZDsNCiAgICBzd2l0Y2ggKGVsZW1lbnQpIHsNCiAgICAgICAgY2FzZSB1bmRlZmluZWQ6DQogICAgICAgICAgICBzd2l0Y2ggKGRhdGFUeXBlKSB7DQogICAgICAgICAgICAgICAgY2FzZSAiZ3JvdXAtdGl0bGUiOg0KICAgICAgICAgICAgICAgICAgICBpZiAoaWQgPT0gdW5kZWZpbmVkKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBpZCA9IC0xOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIGRhdGEgPSBnZXRMb2NhbERhdGEoImZpbHRlciIsIGlkKTsNCiAgICAgICAgICAgICAgICAgICAgZGF0YVsidHlwZSJdID0gImdyb3VwLXRpdGxlIjsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAiY3VzdG9tLWZpbHRlciI6DQogICAgICAgICAgICAgICAgICAgIGlmIChpZCA9PSB1bmRlZmluZWQpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGlkID0gLTE7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgZGF0YSA9IGdldExvY2FsRGF0YSgiZmlsdGVyIiwgaWQpOw0KICAgICAgICAgICAgICAgICAgICBkYXRhWyJ0eXBlIl0gPSAiY3VzdG9tLWZpbHRlciI7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICAgICAgICAgIGRhdGFbImlkLnByb3ZpZGVyIl0gPSAiLSI7DQogICAgICAgICAgICAgICAgICAgIGRhdGFbInR5cGUiXSA9IGRhdGFUeXBlOw0KICAgICAgICAgICAgICAgICAgICBpZCA9ICItIjsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgIGlkID0gZWxlbWVudC5pZDsNCiAgICAgICAgICAgIGRhdGEgPSBnZXRMb2NhbERhdGEoZGF0YVR5cGUsIGlkKTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgIH0NCiAgICBsZXQgY29udGVudCA9IG5ldyBQb3B1cENvbnRlbnQoKTsNCiAgICBzd2l0Y2ggKGRhdGFUeXBlKSB7DQogICAgICAgIGNhc2UgInBsYXlsaXN0IjoNCiAgICAgICAgICAgIGNvbnRlbnQuY3JlYXRlSGVhZGxpbmUoInt7LnBsYXlsaXN0LnBsYXlsaXN0VHlwZS50aXRsZX19Iik7DQogICAgICAgICAgICAvLyBUeXBlDQogICAgICAgICAgICB2YXIgdGV4dCA9IFsiTTNVIiwgIkhESG9tZVJ1biJdOw0KICAgICAgICAgICAgdmFyIHZhbHVlcyA9IFsiamF2YXNjcmlwdDogb3BlblBvcFVwKCdtM3UnKSIsICJqYXZhc2NyaXB0OiBvcGVuUG9wVXAoJ2hkaHInKSJdOw0KICAgICAgICAgICAgdmFyIHNlbGVjdCA9IGNvbnRlbnQuY3JlYXRlU2VsZWN0KHRleHQsIHZhbHVlcywgIiIsICJ0eXBlIik7DQogICAgICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJpZCIsICJ0eXBlIik7DQogICAgICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICdqYXZhc2NyaXB0OiBjaGFuZ2VCdXR0b25BY3Rpb24odGhpcywgIm5leHQiLCAib25jbGljayIpJyk7IC8vIGNoYW5nZUJ1dHRvbkFjdGlvbg0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnBsYXlsaXN0LnR5cGUudGl0bGV9fSIsIHNlbGVjdCk7DQogICAgICAgICAgICAvLyBJbnRlcmFjdGlvbg0KICAgICAgICAgICAgY29udGVudC5jcmVhdGVJbnRlcmFjdGlvbigpOw0KICAgICAgICAgICAgLy8gQWJvcnQNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJjYW5jZWwiLCAie3suYnV0dG9uLmNhbmNlbH19Iik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogc2hvd0VsZW1lbnQoInBvcHVwIiwgZmFsc2UpOycpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICAvLyBOZXh0DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAibmV4dCIsICJ7ey5idXR0b24ubmV4dH19Iik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJtM3UiKScpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJpZCIsICduZXh0Jyk7DQogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJtM3UiOg0KICAgICAgICAgICAgY29udGVudC5jcmVhdGVIZWFkbGluZShkYXRhVHlwZSk7DQogICAgICAgICAgICAvLyBOYW1lDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAibmFtZSI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3sucGxheWxpc3QubmFtZS5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sucGxheWxpc3QubmFtZS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgLy8gRGVzY3JpcHRpb24NCiAgICAgICAgICAgIHZhciBkYktleSA9ICJkZXNjcmlwdGlvbiI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3sucGxheWxpc3QuZGVzY3JpcHRpb24ucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnBsYXlsaXN0LmRlc2NyaXB0aW9uLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBVUkwNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJmaWxlLnNvdXJjZSI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3sucGxheWxpc3QuZmlsZU0zVS5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sucGxheWxpc3QuZmlsZU0zVS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgLy8gVHVuZXINCiAgICAgICAgICAgIGlmIChTRVJWRVJbInNldHRpbmdzIl1bImJ1ZmZlciJdICE9ICItIikgew0KICAgICAgICAgICAgICAgIHZhciB0ZXh0ID0gW107DQogICAgICAgICAgICAgICAgdmFyIHZhbHVlcyA9IFtdOw0KICAgICAgICAgICAgICAgIGZvciAodmFyIGkgPSAxOyBpIDw9IDEwMDsgaSsrKSB7DQogICAgICAgICAgICAgICAgICAgIHRleHQucHVzaChpLnRvU3RyaW5nKCkpOw0KICAgICAgICAgICAgICAgICAgICB2YWx1ZXMucHVzaChpLnRvU3RyaW5nKCkpOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB2YXIgZGJLZXkgPSAidHVuZXIiOw0KICAgICAgICAgICAgICAgIHZhciBzZWxlY3QgPSBjb250ZW50LmNyZWF0ZVNlbGVjdCh0ZXh0LCB2YWx1ZXMsIGRhdGFbZGJLZXldLCBkYktleSk7DQogICAgICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25mb2N1cyIsICJqYXZhc2NyaXB0OiByZXR1cm47Iik7DQogICAgICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnBsYXlsaXN0LnR1bmVyLnRpdGxlfX0iLCBzZWxlY3QpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgZWxzZSB7DQogICAgICAgICAgICAgICAgdmFyIGRiS2V5ID0gInR1bmVyIjsNCiAgICAgICAgICAgICAgICBpZiAoZGF0YVtkYktleV0gPT0gdW5kZWZpbmVkKSB7DQogICAgICAgICAgICAgICAgICAgIGRhdGFbZGJLZXldID0gMTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJyZWFkb25seSIsICJ0cnVlIik7DQogICAgICAgICAgICAgICAgaW5wdXQuY2xhc3NOYW1lID0gIm5vdEF2YWlsYWJsZSI7DQogICAgICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnBsYXlsaXN0LnR1bmVyLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBjb250ZW50LmRlc2NyaXB0aW9uKCJ7ey5wbGF5bGlzdC50dW5lci5kZXNjcmlwdGlvbn19Iik7DQogICAgICAgICAgICAvLyBJbnRlcmF0aW9uDQogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUludGVyYWN0aW9uKCk7DQogICAgICAgICAgICAvLyBEZWxldGUNCiAgICAgICAgICAgIGlmIChkYXRhWyJpZC5wcm92aWRlciJdICE9ICItIikgew0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJkZWxldGUiLCAie3suYnV0dG9uLmRlbGV0ZX19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuY2xhc3NOYW1lID0gImRlbGV0ZSI7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoIm0zdSIsICInICsgaWQgKyAnIiwgdHJ1ZSwgMCknKTsNCiAgICAgICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJiYWNrIiwgInt7LmJ1dHRvbi5iYWNrfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJwbGF5bGlzdCIpJyk7DQogICAgICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICAvLyBBYm9ydA0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImNhbmNlbCIsICJ7ey5idXR0b24uY2FuY2VsfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBzaG93RWxlbWVudCgicG9wdXAiLCBmYWxzZSk7Jyk7DQogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIC8vIFVwZGF0ZQ0KICAgICAgICAgICAgaWYgKGRhdGFbImlkLnByb3ZpZGVyIl0gIT0gIi0iKSB7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgInVwZGF0ZSIsICJ7ey5idXR0b24udXBkYXRlfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogc2F2ZVBvcHVwRGF0YSgibTN1IiwgIicgKyBpZCArICciLCBmYWxzZSwgMSknKTsNCiAgICAgICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIC8vIFNhdmUNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJzYXZlIiwgInt7LmJ1dHRvbi5zYXZlfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBzYXZlUG9wdXBEYXRhKCJtM3UiLCAiJyArIGlkICsgJyIsIGZhbHNlLCAwKScpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSAiaGRociI6DQogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUhlYWRsaW5lKGRhdGFUeXBlKTsNCiAgICAgICAgICAgIC8vIE5hbWUNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJuYW1lIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5wbGF5bGlzdC5uYW1lLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5wbGF5bGlzdC5uYW1lLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBEZXNjcmlwdGlvbg0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gImRlc2NyaXB0aW9uIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5wbGF5bGlzdC5kZXNjcmlwdGlvbi5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sucGxheWxpc3QuZGVzY3JpcHRpb24ucGxhY2Vob2xkZXJ9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIFVSTA0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gImZpbGUuc291cmNlIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5wbGF5bGlzdC5maWxlSERIUi5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sucGxheWxpc3QuZmlsZUhESFIudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIFR1bmVyDQogICAgICAgICAgICBpZiAoU0VSVkVSWyJzZXR0aW5ncyJdWyJidWZmZXIiXSAhPSAiLSIpIHsNCiAgICAgICAgICAgICAgICB2YXIgdGV4dCA9IFtdOw0KICAgICAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBbXTsNCiAgICAgICAgICAgICAgICBmb3IgKHZhciBpID0gMTsgaSA8PSAxMDA7IGkrKykgew0KICAgICAgICAgICAgICAgICAgICB0ZXh0LnB1c2goaS50b1N0cmluZygpKTsNCiAgICAgICAgICAgICAgICAgICAgdmFsdWVzLnB1c2goaS50b1N0cmluZygpKTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgdmFyIGRiS2V5ID0gInR1bmVyIjsNCiAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCBkYXRhW2RiS2V5XSwgZGJLZXkpOw0KICAgICAgICAgICAgICAgIHNlbGVjdC5zZXRBdHRyaWJ1dGUoIm9uZm9jdXMiLCAiamF2YXNjcmlwdDogcmV0dXJuOyIpOw0KICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5wbGF5bGlzdC50dW5lci50aXRsZX19Iiwgc2VsZWN0KTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgICAgIHZhciBkYktleSA9ICJ0dW5lciI7DQogICAgICAgICAgICAgICAgaWYgKGRhdGFbZGJLZXldID09IHVuZGVmaW5lZCkgew0KICAgICAgICAgICAgICAgICAgICBkYXRhW2RiS2V5XSA9IDE7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicmVhZG9ubHkiLCAidHJ1ZSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LmNsYXNzTmFtZSA9ICJub3RBdmFpbGFibGUiOw0KICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5wbGF5bGlzdC50dW5lci50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgY29udGVudC5kZXNjcmlwdGlvbigie3sucGxheWxpc3QudHVuZXIuZGVzY3JpcHRpb259fSIpOw0KICAgICAgICAgICAgLy8gSW50ZXJhY3Rpb24NCiAgICAgICAgICAgIGNvbnRlbnQuY3JlYXRlSW50ZXJhY3Rpb24oKTsNCiAgICAgICAgICAgIC8vIERlbGV0ZQ0KICAgICAgICAgICAgaWYgKGRhdGFbImlkLnByb3ZpZGVyIl0gIT0gIi0iKSB7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImRlbGV0ZSIsICJ7ey5idXR0b24uZGVsZXRlfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogc2F2ZVBvcHVwRGF0YSgiaGRociIsICInICsgaWQgKyAnIiwgdHJ1ZSwgMCknKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5jbGFzc05hbWUgPSAiZGVsZXRlIjsNCiAgICAgICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJiYWNrIiwgInt7LmJ1dHRvbi5iYWNrfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJwbGF5bGlzdCIpJyk7DQogICAgICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICAvLyBBYm9ydA0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImNhbmNlbCIsICJ7ey5idXR0b24uY2FuY2VsfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBzaG93RWxlbWVudCgicG9wdXAiLCBmYWxzZSk7Jyk7DQogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIC8vIFVwZGF0ZQ0KICAgICAgICAgICAgaWYgKGRhdGFbImlkLnByb3ZpZGVyIl0gIT0gIi0iKSB7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgInVwZGF0ZSIsICJ7ey5idXR0b24udXBkYXRlfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogc2F2ZVBvcHVwRGF0YSgiaGRociIsICInICsgaWQgKyAnIiwgZmFsc2UsIDEpJyk7DQogICAgICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICAvLyBTYXZlDQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAic2F2ZSIsICJ7ey5idXR0b24uc2F2ZX19Iik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogc2F2ZVBvcHVwRGF0YSgiaGRociIsICInICsgaWQgKyAnIiwgZmFsc2UsIDApJyk7DQogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJmaWx0ZXIiOg0KICAgICAgICAgICAgY29udGVudC5jcmVhdGVIZWFkbGluZShkYXRhVHlwZSk7DQogICAgICAgICAgICAvLyBUeXBlDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAidHlwZSI7DQogICAgICAgICAgICB2YXIgdGV4dCA9IFsiTTNVOiAiICsgInt7LmZpbHRlci50eXBlLmdyb3VwVGl0bGV9fSIsICJ4VGVWZTogIiArICJ7ey5maWx0ZXIudHlwZS5jdXN0b21GaWx0ZXJ9fSJdOw0KICAgICAgICAgICAgdmFyIHZhbHVlcyA9IFsiamF2YXNjcmlwdDogb3BlblBvcFVwKCdncm91cC10aXRsZScpIiwgImphdmFzY3JpcHQ6IG9wZW5Qb3BVcCgnY3VzdG9tLWZpbHRlcicpIl07DQogICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCAiamF2YXNjcmlwdDogb3BlblBvcFVwKCdncm91cC10aXRsZScpIiwgZGJLZXkpOw0KICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgiaWQiLCBpZCk7DQogICAgICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICdqYXZhc2NyaXB0OiBjaGFuZ2VCdXR0b25BY3Rpb24odGhpcywgIm5leHQiLCAib25jbGljayIpOycpOyAvLyBjaGFuZ2VCdXR0b25BY3Rpb24NCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5maWx0ZXIudHlwZS50aXRsZX19Iiwgc2VsZWN0KTsNCiAgICAgICAgICAgIC8vIEludGVyYWN0aW9uDQogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUludGVyYWN0aW9uKCk7DQogICAgICAgICAgICAvLyBBYm9ydA0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImNhbmNlbCIsICJ7ey5idXR0b24uY2FuY2VsfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBzaG93RWxlbWVudCgicG9wdXAiLCBmYWxzZSk7Jyk7DQogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIC8vIE5leHQNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJuZXh0IiwgInt7LmJ1dHRvbi5uZXh0fX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoImdyb3VwLXRpdGxlIiknKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgiaWQiLCAnbmV4dCcpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSAiY3VzdG9tLWZpbHRlciI6DQogICAgICAgIGNhc2UgImdyb3VwLXRpdGxlIjoNCiAgICAgICAgICAgIHN3aXRjaCAoZGF0YVR5cGUpIHsNCiAgICAgICAgICAgICAgICBjYXNlICJjdXN0b20tZmlsdGVyIjoNCiAgICAgICAgICAgICAgICAgICAgY29udGVudC5jcmVhdGVIZWFkbGluZSgie3suZmlsdGVyLmN1c3RvbX19IiArICIgRmlsdGVyIik7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgImdyb3VwLXRpdGxlIjoNCiAgICAgICAgICAgICAgICAgICAgY29udGVudC5jcmVhdGVIZWFkbGluZSgie3suZmlsdGVyLmdyb3VwfX0iICsgIiBGaWx0ZXIiKTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICB9DQogICAgICAgICAgICAvLyBOYW1lICAgICAgDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAibmFtZSI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3suZmlsdGVyLm5hbWUucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LmZpbHRlci5uYW1lLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBEZXNjcmlwdGlvbg0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gImRlc2NyaXB0aW9uIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5maWx0ZXIuZGVzY3JpcHRpb24ucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LmZpbHRlci5kZXNjcmlwdGlvbi50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgLy8gVHlwZQ0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gInR5cGUiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiaGlkZGVuIiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCIiLCBpbnB1dCk7DQogICAgICAgICAgICB2YXIgZmlsdGVyVHlwZSA9IGRhdGFbZGJLZXldOw0KICAgICAgICAgICAgc3dpdGNoIChmaWx0ZXJUeXBlKSB7DQogICAgICAgICAgICAgICAgY2FzZSAiY3VzdG9tLWZpbHRlciI6DQogICAgICAgICAgICAgICAgICAgIC8vIENhc2Ugc2Vuc2l0aXZlDQogICAgICAgICAgICAgICAgICAgIHZhciBkYktleSA9ICJjYXNlU2Vuc2l0aXZlIjsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChkYktleSk7DQogICAgICAgICAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhW2RiS2V5XTsNCiAgICAgICAgICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LmZpbHRlci5jYXNlU2Vuc2l0aXZlLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAgICAgICAgIC8vIEZpbHRlciBSdWxlIChDdXN0b20pDQogICAgICAgICAgICAgICAgICAgIHZhciBkYktleSA9ICJmaWx0ZXIiOw0KICAgICAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5maWx0ZXIuZmlsdGVyUnVsZS5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5maWx0ZXIuZmlsdGVyUnVsZS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBjYXNlICJncm91cC10aXRsZSI6DQogICAgICAgICAgICAgICAgICAgIC8vYWxlcnQoZGJLZXkgKyAiICIgKyBmaWx0ZXJUeXBlKQ0KICAgICAgICAgICAgICAgICAgICAvLyBGaWx0ZXIgYmFzZWQgb24gdGhlIGdyb3VwcyBpbiB0aGUgTTNVDQogICAgICAgICAgICAgICAgICAgIHZhciBkYktleSA9ICJmaWx0ZXIiOw0KICAgICAgICAgICAgICAgICAgICB2YXIgZ3JvdXBzTTNVID0gZ2V0TG9jYWxEYXRhKCJtM3VHcm91cHMiLCAiIik7DQogICAgICAgICAgICAgICAgICAgIHZhciB0ZXh0ID0gZ3JvdXBzTTNVWyJ0ZXh0Il07DQogICAgICAgICAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBncm91cHNNM1VbInZhbHVlIl07DQogICAgICAgICAgICAgICAgICAgIHZhciBzZWxlY3QgPSBjb250ZW50LmNyZWF0ZVNlbGVjdCh0ZXh0LCB2YWx1ZXMsIGRhdGFbZGJLZXldLCBkYktleSk7DQogICAgICAgICAgICAgICAgICAgIHNlbGVjdC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5maWx0ZXIuZmlsdGVyR3JvdXAudGl0bGV9fSIsIHNlbGVjdCk7DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuZGVzY3JpcHRpb24oInt7LmZpbHRlci5maWx0ZXJHcm91cC5kZXNjcmlwdGlvbn19Iik7DQogICAgICAgICAgICAgICAgICAgIC8vIENhc2Ugc2Vuc2V0aXZlDQogICAgICAgICAgICAgICAgICAgIHZhciBkYktleSA9ICJjYXNlU2Vuc2l0aXZlIjsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChkYktleSk7DQogICAgICAgICAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhW2RiS2V5XTsNCiAgICAgICAgICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LmZpbHRlci5jYXNlU2Vuc2l0aXZlLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAgICAgICAgIHZhciBkYktleSA9ICJpbmNsdWRlIjsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3suZmlsdGVyLmluY2x1ZGUucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3suZmlsdGVyLmluY2x1ZGUudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgICAgICAgICAgY29udGVudC5kZXNjcmlwdGlvbigie3suZmlsdGVyLmluY2x1ZGUuZGVzY3JpcHRpb259fSIpOw0KICAgICAgICAgICAgICAgICAgICB2YXIgZGJLZXkgPSAiZXhjbHVkZSI7DQogICAgICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LmZpbHRlci5leGNsdWRlLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LmZpbHRlci5leGNsdWRlLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuZGVzY3JpcHRpb24oInt7LmZpbHRlci5leGNsdWRlLmRlc2NyaXB0aW9ufX0iKTsNCiAgICAgICAgICAgICAgICAgICAgLy8gUHJlc2VydmUgTTNVIFBsYXlsaXN0IENoYW5uZWwgTWFwcGluZw0KICAgICAgICAgICAgICAgICAgICB2YXIgZGJLZXkgPSAicHJlc2VydmVNYXBwaW5nIjsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChkYktleSk7DQogICAgICAgICAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhW2RiS2V5XTsNCiAgICAgICAgICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LmZpbHRlci5wcmVzZXJ2ZU1hcHBpbmcudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgICAgICAgICAgLy8gU3RhcnRpbmcgQ2hhbm5lbCBOdW1iZXIgTWFwcGluZw0KICAgICAgICAgICAgICAgICAgICB2YXIgZGJLZXkgPSAic3RhcnRpbmdDaGFubmVsIjsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3suZmlsdGVyLnN0YXJ0aW5nQ2hhbm5lbC5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5maWx0ZXIuc3RhcnRpbmdDaGFubmVsLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAgICAgICAgIC8vIEZpbGwgTWlzc2luZyBFUEcgRGF0YQ0KICAgICAgICAgICAgICAgICAgICAvLyBUaGUgZm9sbG93aW5nIGNvZGUgb25seSB3b3JrcyB3aGVuIHhUZVZlIER1bW15IGFscmVhZHkgZXhpc3RzDQogICAgICAgICAgICAgICAgICAgIC8vIHZhciBkYktleTpzdHJpbmcgPSAiZGVmYXVsdE1pc3NpbmdFUEciDQogICAgICAgICAgICAgICAgICAgIC8vIHZhciB4bWx0djpYTUxUVkZpbGUgPSBuZXcgWE1MVFZGaWxlKCkNCiAgICAgICAgICAgICAgICAgICAgLy8gdmFyIHNlbGVjdCA9IHhtbHR2LmdldFByb2dyYW1zKCJ4VGVWZSBEdW1teSIsIGRhdGFbZGJLZXldKQ0KICAgICAgICAgICAgICAgICAgICAvLyBzZWxlY3Quc2V0QXR0cmlidXRlKCJuYW1lIiwgZGJLZXkpDQogICAgICAgICAgICAgICAgICAgIC8vIHNlbGVjdC5zZXRBdHRyaWJ1dGUoImlkIiwgInBvcHVwLW1pc3NpbmctZXBnIikNCiAgICAgICAgICAgICAgICAgICAgLy8gVGhlIHdvcmthcm91bmQgaXMgY3VycmVudGx5IHRvIGhhcmQgY29kZSB0aGUgeFRlVmUgRHVtbXkgZGF0YQ0KICAgICAgICAgICAgICAgICAgICB2YXIgZGJLZXkgPSAiZGVmYXVsdE1pc3NpbmdFUEciOw0KICAgICAgICAgICAgICAgICAgICB2YXIgbGlzdE9wdGlvbnMgPSB7ICJ0ZXh0IjogWyItIiwgIjMwIE1pbnV0ZXMgKDMwX01pbnV0ZXMpIiwgIjYwIE1pbnV0ZXMgKDYwX01pbnV0ZXMpIiwgIjkwIE1pbnV0ZXMgKDkwX01pbnV0ZXMpIiwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAiMTIwIE1pbnV0ZXMgKDEyMF9NaW51dGVzKSIsICIxODAgTWludXRlcyAoMzBfTWludXRlcykiLCAiMjQwIE1pbnV0ZXMgKDMwX01pbnV0ZXMpIiwgIjM2MCBNaW51dGVzICgzMF9NaW51dGVzKSJdLA0KICAgICAgICAgICAgICAgICAgICAgICAgInZhbHVlIjogWyItIiwgIjMwX01pbnV0ZXMiLCAiNjBfTWludXRlcyIsICI5MF9NaW51dGVzIiwgIjEyMF9NaW51dGVzIiwgIjE4MF9NaW51dGVzIiwgIjI0MF9NaW51dGVzIiwgIjM2MF9NaW51dGVzIixdIH07DQogICAgICAgICAgICAgICAgICAgIHZhciB0ZXh0ID0gbGlzdE9wdGlvbnNbInRleHQiXTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHZhbHVlcyA9IGxpc3RPcHRpb25zWyJ2YWx1ZSJdOw0KICAgICAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCBkYXRhW2RiS2V5XSwgZGJLZXkpOw0KICAgICAgICAgICAgICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3suZmlsdGVyLmRlZmF1bHRNaXNzaW5nRVBHLnRpdGxlfX0iLCBzZWxlY3QpOw0KICAgICAgICAgICAgICAgICAgICBjb250ZW50LmRlc2NyaXB0aW9uKCJ7ey5maWx0ZXIuZGVmYXVsdE1pc3NpbmdFUEcuZGVzY3JpcHRpb259fSIpOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBkZWZhdWx0Og0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIC8vIEludGVyYWN0aW9uDQogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUludGVyYWN0aW9uKCk7DQogICAgICAgICAgICAvLyBEZWxldGUNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJkZWxldGUiLCAie3suYnV0dG9uLmRlbGV0ZX19Iik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogc2F2ZVBvcHVwRGF0YSgiZmlsdGVyIiwgIicgKyBpZCArICciLCB0cnVlLCAwKScpOw0KICAgICAgICAgICAgaW5wdXQuY2xhc3NOYW1lID0gImRlbGV0ZSI7DQogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIC8vIEFib3J0DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAiY2FuY2VsIiwgInt7LmJ1dHRvbi5jYW5jZWx9fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IHNob3dFbGVtZW50KCJwb3B1cCIsIGZhbHNlKTsnKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgLy8gU2F2ZQ0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgInNhdmUiLCAie3suYnV0dG9uLnNhdmV9fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoImZpbHRlciIsICInICsgaWQgKyAnIiwgZmFsc2UsIDApJyk7DQogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJ4bWx0diI6DQogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUhlYWRsaW5lKGRhdGFUeXBlKTsNCiAgICAgICAgICAgIC8vIE5hbWUNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJuYW1lIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey54bWx0di5uYW1lLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey54bWx0di5uYW1lLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBEZXNjcmlwdGlvbg0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gImRlc2NyaXB0aW9uIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey54bWx0di5kZXNjcmlwdGlvbi5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sueG1sdHYuZGVzY3JpcHRpb24udGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIFVSTA0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gImZpbGUuc291cmNlIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey54bWx0di5maWxlWE1MVFYucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnhtbHR2LmZpbGVYTUxUVi50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgLy8gSW50ZXJhY3Rpb24NCiAgICAgICAgICAgIGNvbnRlbnQuY3JlYXRlSW50ZXJhY3Rpb24oKTsNCiAgICAgICAgICAgIC8vIERlbGV0ZQ0KICAgICAgICAgICAgaWYgKGRhdGFbImlkLnByb3ZpZGVyIl0gIT0gIi0iKSB7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImRlbGV0ZSIsICJ7ey5idXR0b24uZGVsZXRlfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogc2F2ZVBvcHVwRGF0YSgieG1sdHYiLCAiJyArIGlkICsgJyIsIHRydWUsIDApJyk7DQogICAgICAgICAgICAgICAgaW5wdXQuY2xhc3NOYW1lID0gImRlbGV0ZSI7DQogICAgICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICAvLyBBYm9ydA0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImNhbmNlbCIsICJ7ey5idXR0b24uY2FuY2VsfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBzaG93RWxlbWVudCgicG9wdXAiLCBmYWxzZSk7Jyk7DQogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIC8vIFVwZGF0ZQ0KICAgICAgICAgICAgaWYgKGRhdGFbImlkLnByb3ZpZGVyIl0gIT0gIi0iKSB7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgInVwZGF0ZSIsICJ7ey5idXR0b24udXBkYXRlfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogc2F2ZVBvcHVwRGF0YSgieG1sdHYiLCAiJyArIGlkICsgJyIsIGZhbHNlLCAxKScpOw0KICAgICAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgLy8gU2F2ZQ0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgInNhdmUiLCAie3suYnV0dG9uLnNhdmV9fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoInhtbHR2IiwgIicgKyBpZCArICciLCBmYWxzZSwgMCknKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGNhc2UgInVzZXJzIjoNCiAgICAgICAgICAgIGNvbnRlbnQuY3JlYXRlSGVhZGxpbmUoInt7Lm1haW5NZW51Lml0ZW0udXNlcnN9fSIpOw0KICAgICAgICAgICAgLy8gVXNlciBuYW1lDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAidXNlcm5hbWUiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnVzZXJzLnVzZXJuYW1lLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey51c2Vycy51c2VybmFtZS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgLy8gTmV3IFBhcnNzd29yZA0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gInBhc3N3b3JkIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInBhc3N3b3JkIiwgZGJLZXksICIiKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3sudXNlcnMucGFzc3dvcmQucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnVzZXJzLnBhc3N3b3JkLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBDb25maXJtYXRpb24NCiAgICAgICAgICAgIHZhciBkYktleSA9ICJjb25maXJtIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInBhc3N3b3JkIiwgZGJLZXksICIiKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3sudXNlcnMuY29uZmlybS5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sudXNlcnMuY29uZmlybS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgLy8gQXV0aGVudGljYXRpb24gV0VCDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAiYXV0aGVudGljYXRpb24ud2ViIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goZGJLZXkpOw0KICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGFbZGJLZXldOw0KICAgICAgICAgICAgaWYgKGRhdGFbImRlZmF1bHRVc2VyIl0gPT0gdHJ1ZSkgew0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICJqYXZhc2NyaXB0OiByZXR1cm4gZmFsc2UiKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey51c2Vycy53ZWIudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIEF1dGhlbnRpY2F0aW9uIFBNUw0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gImF1dGhlbnRpY2F0aW9uLnBtcyI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KGRiS2V5KTsNCiAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhW2RiS2V5XTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey51c2Vycy5wbXMudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIEF1dGhlbnRpY2F0aW9uIE0zVQ0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gImF1dGhlbnRpY2F0aW9uLm0zdSI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KGRiS2V5KTsNCiAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhW2RiS2V5XTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey51c2Vycy5tM3UudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIEF1dGhlbnRpY2F0aW9uIFhNTA0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gImF1dGhlbnRpY2F0aW9uLnhtbCI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KGRiS2V5KTsNCiAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhW2RiS2V5XTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey51c2Vycy54bWwudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIEF1dGhlbnRpY2F0aW9uIEFQSQ0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gImF1dGhlbnRpY2F0aW9uLmFwaSI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KGRiS2V5KTsNCiAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhW2RiS2V5XTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey51c2Vycy5hcGkudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIEludGVyYWN0aW9uDQogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUludGVyYWN0aW9uKCk7DQogICAgICAgICAgICAvLyBEZWxldGUNCiAgICAgICAgICAgIGlmIChkYXRhWyJkZWZhdWx0VXNlciJdICE9IHRydWUgJiYgaWQgIT0gIi0iKSB7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImRlbGV0ZSIsICJ7ey5idXR0b24uZGVsZXRlfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5jbGFzc05hbWUgPSAiZGVsZXRlIjsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogc2F2ZVBvcHVwRGF0YSgiJyArIGRhdGFUeXBlICsgJyIsICInICsgaWQgKyAnIiwgdHJ1ZSwgMCknKTsNCiAgICAgICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIC8vIEFib3J0DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAiY2FuY2VsIiwgInt7LmJ1dHRvbi5jYW5jZWx9fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IHNob3dFbGVtZW50KCJwb3B1cCIsIGZhbHNlKTsnKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgLy8gU2F2ZQ0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgInNhdmUiLCAie3suYnV0dG9uLnNhdmV9fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoIicgKyBkYXRhVHlwZSArICciLCAiJyArIGlkICsgJyIsICJmYWxzZSIpOycpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSAibWFwcGluZyI6DQogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUhlYWRsaW5lKCJ7ey5tYWluTWVudS5pdGVtLm1hcHBpbmd9fSIpOw0KICAgICAgICAgICAgLy8gQWN0aXZlDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAieC1hY3RpdmUiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChkYktleSk7DQogICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YVtkYktleV07DQogICAgICAgICAgICBpbnB1dC5pZCA9ICJhY3RpdmUiOw0KICAgICAgICAgICAgLy9pbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIikNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdG9nZ2xlQ2hhbm5lbFN0YXR1cygnIiArIGlkICsgIicsIHRoaXMpIik7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3subWFwcGluZy5hY3RpdmUudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIENoYW5uZWwgbmFtZQ0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gIngtbmFtZSI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgIGlmIChCVUxLX0VESVQgPT0gdHJ1ZSkgew0KICAgICAgICAgICAgICAgIGlucHV0LnN0eWxlLmJvcmRlciA9ICJzb2xpZCAxcHggcmVkIjsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInJlYWRvbmx5IiwgInRydWUiKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5tYXBwaW5nLmNoYW5uZWxOYW1lLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICBjb250ZW50LmRlc2NyaXB0aW9uKGRhdGFbIm5hbWUiXSk7DQogICAgICAgICAgICAvLyBEZXNjcmlwdGlvbg0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gIngtZGVzY3JpcHRpb24iOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7Lm1hcHBpbmcuZGVzY3JpcHRpb24ucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7Lm1hcHBpbmcuZGVzY3JpcHRpb24udGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIFVwZGF0ZSB0aGUgY2hhbm5lbCBuYW1lDQogICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgiX3V1aWQua2V5IikpIHsNCiAgICAgICAgICAgICAgICBpZiAoZGF0YVsiX3V1aWQua2V5Il0gIT0gIiIpIHsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGRiS2V5ID0gIngtdXBkYXRlLWNoYW5uZWwtbmFtZSI7DQogICAgICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goZGJLZXkpOw0KICAgICAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhW2RiS2V5XTsNCiAgICAgICAgICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7Lm1hcHBpbmcudXBkYXRlQ2hhbm5lbE5hbWUudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9DQogICAgICAgICAgICAvLyBMb2dvIFVSTCAoQ2hhbm5lbCkgDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAidHZnLWxvZ28iOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoImlkIiwgImNoYW5uZWwtaWNvbiIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7Lm1hcHBpbmcuY2hhbm5lbExvZ28udGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIENoYW5uZWwgbG9nbyB1cGRhdGUNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJ4LXVwZGF0ZS1jaGFubmVsLWljb24iOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChkYktleSk7DQogICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YVtkYktleV07DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoImlkIiwgInVwZGF0ZS1pY29uIik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnOyBjaGFuZ2VDaGFubmVsTG9nbygnIiArIGlkICsgIicpOyIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7Lm1hcHBpbmcudXBkYXRlQ2hhbm5lbExvZ28udGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIEV4cGFuZCBFUEcgY2F0ZWdvcnkNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJ4LWNhdGVnb3J5IjsNCiAgICAgICAgICAgIHZhciB0ZXh0ID0gWyItIiwgIktpZHMgKEVtYnkgb25seSkiLCAiTmV3cyIsICJNb3ZpZSIsICJTZXJpZXMiLCAiU3BvcnRzIl07DQogICAgICAgICAgICB2YXIgdmFsdWVzID0gWyIiLCAiS2lkcyIsICJOZXdzIiwgIk1vdmllIiwgIlNlcmllcyIsICJTcG9ydHMiXTsNCiAgICAgICAgICAgIHZhciBzZWxlY3QgPSBjb250ZW50LmNyZWF0ZVNlbGVjdCh0ZXh0LCB2YWx1ZXMsIGRhdGFbZGJLZXldLCBkYktleSk7DQogICAgICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7Lm1hcHBpbmcuZXBnQ2F0ZWdvcnkudGl0bGV9fSIsIHNlbGVjdCk7DQogICAgICAgICAgICAvLyBNM1UgZ3JvdXAgdGl0bGUNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJ4LWdyb3VwLXRpdGxlIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgaW5wdXQuZGF0YXNldC5vbGRWYWx1ZSA9IGRhdGFbZGJLZXldOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7Lm1hcHBpbmcubTN1R3JvdXBUaXRsZS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgaWYgKGRhdGFbImdyb3VwLXRpdGxlIl0gIT0gdW5kZWZpbmVkKSB7DQogICAgICAgICAgICAgICAgY29udGVudC5kZXNjcmlwdGlvbihkYXRhWyJncm91cC10aXRsZSJdKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGlmIChkYXRhWyJ4LXVwZGF0ZS1jaGFubmVsLWdyb3VwIl0gPT0gdHJ1ZSkgew0KICAgICAgICAgICAgICAgIGlucHV0LmRpc2FibGVkID0gdHJ1ZTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIC8vIFVwZGF0ZSBjaGFubmVsIGdyb3VwIGNoZWNrYm94DQogICAgICAgICAgICB2YXIgZGJLZXkgPSAieC11cGRhdGUtY2hhbm5lbC1ncm91cCI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KGRiS2V5KTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdG9nZ2xlR3JvdXBVcGRhdGVDYignIiArIGlkICsgIicsIHRoaXMpOyIpOw0KICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGFbZGJLZXldOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7Lm1hcHBpbmcudXBkYXRlQ2hhbm5lbEdyb3VwLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICBjb250ZW50LmRlc2NyaXB0aW9uKCJ7ey5tYXBwaW5nLnVwZGF0ZUNoYW5uZWxHcm91cC5kZXNjcmlwdGlvbn19Iik7DQogICAgICAgICAgICAvLyBYTUxUViBmaWxlDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAneC14bWx0di1maWxlJzsNCiAgICAgICAgICAgIGNvbnN0IHhtbFR2RmlsZSA9IGRhdGFbZGJLZXldOw0KICAgICAgICAgICAgdmFyIHhtbFR2ID0gbmV3IFhNTFRWRmlsZSgpOw0KICAgICAgICAgICAgY29uc3QgeG1sVHZGaWxlU2VsZWN0ID0geG1sVHYuZ2V0RmlsZXMoZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgeG1sVHZGaWxlU2VsZWN0LnNldEF0dHJpYnV0ZSgnbmFtZScsIGRiS2V5KTsNCiAgICAgICAgICAgIHhtbFR2RmlsZVNlbGVjdC5zZXRBdHRyaWJ1dGUoJ2lkJywgJ3BvcHVwLXhtbHR2Jyk7DQogICAgICAgICAgICB4bWxUdkZpbGVTZWxlY3Quc2V0QXR0cmlidXRlKCdvbmNoYW5nZScsIGBqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJzsgc2V0WG1sdHZDaGFubmVsKCcke2lkfScsIHRoaXMpO2ApOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coJ3t7Lm1hcHBpbmcueG1sdHZGaWxlLnRpdGxlfX0nLCB4bWxUdkZpbGVTZWxlY3QpOw0KICAgICAgICAgICAgLy8gWE1MVFYgTWFwcGluZw0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gJ3gtbWFwcGluZyc7DQogICAgICAgICAgICB2YXIgeG1sVHYgPSBuZXcgWE1MVFZGaWxlKCk7DQogICAgICAgICAgICBjb25zdCBjdXJyZW50WG1sVHZJZCA9IGRhdGFbZGJLZXldOw0KICAgICAgICAgICAgY29uc3QgeG1sVHZJZFNlbGVjdCA9IHhtbFR2LmdldFByb2dyYW1zKHhtbFR2RmlsZSwgY3VycmVudFhtbFR2SWQpOw0KICAgICAgICAgICAgeG1sVHZJZFNlbGVjdC5zZXRBdHRyaWJ1dGUoJ25hbWUnLCBkYktleSk7DQogICAgICAgICAgICB4bWxUdklkU2VsZWN0LnNldEF0dHJpYnV0ZSgnaWQnLCAncG9wdXAtbWFwcGluZycpOw0KICAgICAgICAgICAgeG1sVHZJZFNlbGVjdC5zZXRBdHRyaWJ1dGUoJ29uY2hhbmdlJywgYGphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnOyBjaGVja1htbHR2Q2hhbm5lbCgnJHtpZH0nLCB0aGlzLCAnJHt4bWxUdkZpbGV9Jyk7YCk7DQogICAgICAgICAgICBzb3J0U2VsZWN0KHhtbFR2SWRTZWxlY3QpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coJ3t7Lm1hcHBpbmcueG1sdHZDaGFubmVsLnRpdGxlfX0nLCB4bWxUdklkU2VsZWN0KTsNCiAgICAgICAgICAgIC8vIFRpbWVzaGlmdA0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gIngtdGltZXNoaWZ0IjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5tYXBwaW5nLnRpbWVzaGlmdC5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoImlkIiwgInRpbWVzaGlmdCIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7Lm1hcHBpbmcudGltZXNoaWZ0LnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBJbnRlcmFjdGlvbg0KICAgICAgICAgICAgY29udGVudC5jcmVhdGVJbnRlcmFjdGlvbigpOw0KICAgICAgICAgICAgLy8gVXBsb2FkIGxvZ28NCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJjYW5jZWwiLCAie3suYnV0dG9uLnVwbG9hZExvZ299fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IHVwbG9hZExvZ28oKTsnKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgLy8gQWJvcnQNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJjYW5jZWwiLCAie3suYnV0dG9uLmNhbmNlbH19Iik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogc2hvd0VsZW1lbnQoInBvcHVwIiwgZmFsc2UpOycpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICAvLyBGaW5pc2hlZA0KICAgICAgICAgICAgdmFyIGlkcyA9IFtdOw0KICAgICAgICAgICAgaWRzID0gZ2V0QWxsU2VsZWN0ZWRDaGFubmVscygpOw0KICAgICAgICAgICAgaWYgKGlkcy5sZW5ndGggPT0gMCkgew0KICAgICAgICAgICAgICAgIGlkcy5wdXNoKGlkKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJzYXZlIiwgInt7LmJ1dHRvbi5kb25lfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBkb25lUG9wdXBEYXRhKCInICsgZGF0YVR5cGUgKyAnIiwgIicgKyBpZHMgKyAnIiwgImZhbHNlIik7Jyk7DQogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBkZWZhdWx0Og0KICAgICAgICAgICAgYnJlYWs7DQogICAgfQ0KICAgIHNob3dQb3BVcEVsZW1lbnQoJ3BvcHVwLWN1c3RvbScpOw0KfQ0KY2xhc3MgWE1MVFZGaWxlIHsNCiAgICBnZXRGaWxlcyhzZXQpIHsNCiAgICAgICAgbGV0IGZpbGVJRHMgPSBnZXRPd25PYmpQcm9wcyhTRVJWRVJbInhlcGciXVsieG1sdHZNYXAiXSk7DQogICAgICAgIGxldCB2YWx1ZXMgPSBuZXcgQXJyYXkoIi0iKTsNCiAgICAgICAgbGV0IHRleHQgPSBuZXcgQXJyYXkoIi0iKTsNCiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBmaWxlSURzLmxlbmd0aDsgaSsrKSB7DQogICAgICAgICAgICBpZiAoZmlsZUlEc1tpXSAhPSAieFRlVmUgRHVtbXkiKSB7DQogICAgICAgICAgICAgICAgdmFsdWVzLnB1c2goZ2V0VmFsdWVGcm9tUHJvdmlkZXJGaWxlKGZpbGVJRHNbaV0sICJ4bWx0diIsICJmaWxlLnh0ZXZlIikpOw0KICAgICAgICAgICAgICAgIHRleHQucHVzaChnZXRWYWx1ZUZyb21Qcm92aWRlckZpbGUoZmlsZUlEc1tpXSwgInhtbHR2IiwgIm5hbWUiKSk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICB2YWx1ZXMucHVzaChmaWxlSURzW2ldKTsNCiAgICAgICAgICAgICAgICB0ZXh0LnB1c2goZmlsZUlEc1tpXSk7DQogICAgICAgICAgICB9DQogICAgICAgIH0NCiAgICAgICAgbGV0IHNlbGVjdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlNFTEVDVCIpOw0KICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRleHQubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgICAgIHZhciBvcHRpb24gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJPUFRJT04iKTsNCiAgICAgICAgICAgIG9wdGlvbi5zZXRBdHRyaWJ1dGUoInZhbHVlIiwgdmFsdWVzW2ldKTsNCiAgICAgICAgICAgIG9wdGlvbi5pbm5lclRleHQgPSB0ZXh0W2ldOw0KICAgICAgICAgICAgc2VsZWN0LmFwcGVuZENoaWxkKG9wdGlvbik7DQogICAgICAgIH0NCiAgICAgICAgaWYgKHNldCAhPSAiIikgew0KICAgICAgICAgICAgc2VsZWN0LnZhbHVlID0gc2V0Ow0KICAgICAgICB9DQogICAgICAgIHJldHVybiBzZWxlY3Q7DQogICAgfQ0KICAgIGdldFByb2dyYW1zKHhtbFR2RmlsZSwgY3VycmVudFhtbFR2SWQpIHsNCiAgICAgICAgY29uc3QgdmFsdWVzID0gZ2V0T3duT2JqUHJvcHMoU0VSVkVSWyd4ZXBnJ11bJ3htbHR2TWFwJ11beG1sVHZGaWxlXSk7DQogICAgICAgIGNvbnN0IHRleHQgPSBbXTsNCiAgICAgICAgbGV0IGZyaWVuZGx5TmFtZTsNCiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB2YWx1ZXMubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgICAgIGlmIChTRVJWRVJbJ3hlcGcnXVsneG1sdHZNYXAnXVt4bWxUdkZpbGVdW3ZhbHVlc1tpXV0uaGFzT3duUHJvcGVydHkoJ2ZyaWVuZGx5LW5hbWUnKSA9PSB0cnVlKSB7DQogICAgICAgICAgICAgICAgZnJpZW5kbHlOYW1lID0gU0VSVkVSWyd4ZXBnJ11bJ3htbHR2TWFwJ11beG1sVHZGaWxlXVt2YWx1ZXNbaV1dWydmcmllbmRseS1uYW1lJ107DQogICAgICAgICAgICB9DQogICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICBmcmllbmRseU5hbWUgPSAnLSc7DQogICAgICAgICAgICB9DQogICAgICAgICAgICB0ZXh0W2ldID0gYCR7ZnJpZW5kbHlOYW1lfSAoJHt2YWx1ZXNbaV19KWA7DQogICAgICAgIH0NCiAgICAgICAgdGV4dC51bnNoaWZ0KCctJyk7DQogICAgICAgIHZhbHVlcy51bnNoaWZ0KCctJyk7DQogICAgICAgIGNvbnN0IHNlbGVjdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NlbGVjdCcpOw0KICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRleHQubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgICAgIGNvbnN0IG9wdGlvbiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ29wdGlvbicpOw0KICAgICAgICAgICAgb3B0aW9uLnNldEF0dHJpYnV0ZSgndmFsdWUnLCB2YWx1ZXNbaV0pOw0KICAgICAgICAgICAgb3B0aW9uLmlubmVyVGV4dCA9IHRleHRbaV07DQogICAgICAgICAgICBzZWxlY3QuYXBwZW5kQ2hpbGQob3B0aW9uKTsNCiAgICAgICAgfQ0KICAgICAgICBzZWxlY3QudmFsdWUgPSAoY3VycmVudFhtbFR2SWQgPT0gJycpID8gJy0nIDogY3VycmVudFhtbFR2SWQ7DQogICAgICAgIHJldHVybiBzZWxlY3Q7DQogICAgfQ0KfQ0KZnVuY3Rpb24gZ2V0VmFsdWVGcm9tUHJvdmlkZXJGaWxlKGZpbGUsIGZpbGVUeXBlLCBrZXkpIHsNCiAgICBpZiAoZmlsZSA9PSAieFRlVmUgRHVtbXkiKSB7DQogICAgICAgIHJldHVybiBmaWxlOw0KICAgIH0NCiAgICBsZXQgZmlsZUlEOw0KICAgIGxldCBpbmRpY2F0b3IgPSBmaWxlLmNoYXJBdCgwKTsNCiAgICBzd2l0Y2ggKGluZGljYXRvcikgew0KICAgICAgICBjYXNlICJNIjoNCiAgICAgICAgICAgIGZpbGVUeXBlID0gIm0zdSI7DQogICAgICAgICAgICBmaWxlSUQgPSBmaWxlOw0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGNhc2UgIkgiOg0KICAgICAgICAgICAgZmlsZVR5cGUgPSAiaGRociI7DQogICAgICAgICAgICBmaWxlSUQgPSBmaWxlOw0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGNhc2UgIlgiOg0KICAgICAgICAgICAgZmlsZVR5cGUgPSAieG1sdHYiOw0KICAgICAgICAgICAgZmlsZUlEID0gZmlsZS5zdWJzdHJpbmcoMCwgZmlsZS5sYXN0SW5kZXhPZignLicpKTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgIH0NCiAgICBpZiAoU0VSVkVSWyJzZXR0aW5ncyJdWyJmaWxlcyJdW2ZpbGVUeXBlXS5oYXNPd25Qcm9wZXJ0eShmaWxlSUQpID09IHRydWUpIHsNCiAgICAgICAgdmFyIGRhdGEgPSBTRVJWRVJbInNldHRpbmdzIl1bImZpbGVzIl1bZmlsZVR5cGVdW2ZpbGVJRF07DQogICAgICAgIHJldHVybiBkYXRhW2tleV07DQogICAgfQ0KICAgIHJldHVybjsNCn0NCmZ1bmN0aW9uIHNldFhtbHR2Q2hhbm5lbChlcGdNYXBJZCwgeG1sVHZGaWxlU2VsZWN0KSB7DQogICAgY29uc3QgeG1sVHYgPSBuZXcgWE1MVFZGaWxlKCk7DQogICAgY29uc3QgbmV3WG1sVHZGaWxlID0geG1sVHZGaWxlU2VsZWN0LnZhbHVlOw0KICAgIC8vIFJlbW92ZSBvbGQgWE1MVFYgSUQgc2VsZWN0aW9uIGJveA0KICAgIGNvbnN0IHhtbFR2SWRTZWxlY3RQYXJlbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncG9wdXAtbWFwcGluZycpLnBhcmVudEVsZW1lbnQ7DQogICAgeG1sVHZJZFNlbGVjdFBhcmVudC5pbm5lckhUTUwgPSAnJzsNCiAgICAvLyBDcmVhdGUgbmV3IFhNTFRWIElEIHNlbGVjdGlvbiBib3gNCiAgICBjb25zdCB0dmdJZCA9IFNFUlZFUlsneGVwZyddWydlcGdNYXBwaW5nJ11bZXBnTWFwSWRdWyd0dmctaWQnXTsNCiAgICBjb25zdCBuZXdYbWxUdklkU2VsZWN0ID0geG1sVHYuZ2V0UHJvZ3JhbXMobmV3WG1sVHZGaWxlLCB0dmdJZCk7DQogICAgbmV3WG1sVHZJZFNlbGVjdC5zZXRBdHRyaWJ1dGUoJ25hbWUnLCAneC1tYXBwaW5nJyk7DQogICAgbmV3WG1sVHZJZFNlbGVjdC5zZXRBdHRyaWJ1dGUoJ2lkJywgJ3BvcHVwLW1hcHBpbmcnKTsNCiAgICBuZXdYbWxUdklkU2VsZWN0LnNldEF0dHJpYnV0ZSgnb25jaGFuZ2UnLCBgamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCc7IGNoZWNrWG1sdHZDaGFubmVsKCcke2VwZ01hcElkfScsIHRoaXMsICcke25ld1htbFR2RmlsZX0nKTtgKTsNCiAgICBuZXdYbWxUdklkU2VsZWN0LmNsYXNzTmFtZSA9ICdjaGFuZ2VkJzsNCiAgICBzb3J0U2VsZWN0KG5ld1htbFR2SWRTZWxlY3QpOw0KICAgIC8vIEFkZCBuZXcgWE1MVFYgSUQgc2VsZWN0aW9uIGJveCB0byBpdCdzIHBhcmVudA0KICAgIHhtbFR2SWRTZWxlY3RQYXJlbnQuYXBwZW5kQ2hpbGQobmV3WG1sVHZJZFNlbGVjdCk7DQogICAgY2hlY2tYbWx0dkNoYW5uZWwoZXBnTWFwSWQsIG5ld1htbFR2SWRTZWxlY3QsIG5ld1htbFR2RmlsZSk7DQp9DQpmdW5jdGlvbiBjaGVja1htbHR2Q2hhbm5lbChlcGdNYXBJZCwgeG1sVHZJZFNlbGVjdCwgeG1sVHZGaWxlKSB7DQogICAgY29uc3QgbmV3WG1sVHZJZCA9IHhtbFR2SWRTZWxlY3QudmFsdWU7DQogICAgY29uc3QgY2hhbm5lbEFjdGl2ZUNiID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2FjdGl2ZScpOw0KICAgIGNvbnN0IGNoYW5uZWxBY3RpdmUgPSBuZXdYbWxUdklkICE9ICctJzsNCiAgICBjaGFubmVsQWN0aXZlQ2IuY2hlY2tlZCA9IGNoYW5uZWxBY3RpdmU7DQogICAgY2hhbm5lbEFjdGl2ZUNiLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJzsNCiAgICBpZiAoeG1sVHZGaWxlICE9ICd4VGVWZSBEdW1teScgJiYgY2hhbm5lbEFjdGl2ZSA9PSB0cnVlKSB7DQogICAgICAgIGNoYW5nZUNoYW5uZWxMb2dvKGVwZ01hcElkKTsNCiAgICAgICAgcmV0dXJuOw0KICAgIH0NCiAgICBpZiAoeG1sVHZGaWxlID09ICd4VGVWZSBEdW1teScpIHsNCiAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3VwZGF0ZS1pY29uJykuY2hlY2tlZCA9IGZhbHNlOw0KICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndXBkYXRlLWljb24nKS5jbGFzc05hbWUgPSAnY2hhbmdlZCc7DQogICAgfQ0KfQ0KZnVuY3Rpb24gY2hhbmdlQ2hhbm5lbExvZ28oZXBnTWFwSWQpIHsNCiAgICBjb25zdCBjaGFubmVsID0gU0VSVkVSWyd4ZXBnJ11bJ2VwZ01hcHBpbmcnXVtlcGdNYXBJZF07DQogICAgY29uc3QgeG1sVHZGaWxlU2VsZWN0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3BvcHVwLXhtbHR2Jyk7DQogICAgY29uc3QgeG1sVHZGaWxlID0geG1sVHZGaWxlU2VsZWN0Lm9wdGlvbnNbeG1sVHZGaWxlU2VsZWN0LnNlbGVjdGVkSW5kZXhdLnZhbHVlOw0KICAgIGNvbnN0IHhtbFR2SWRTZWxlY3QgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncG9wdXAtbWFwcGluZycpOw0KICAgIGNvbnN0IG5ld1htbFR2SWQgPSB4bWxUdklkU2VsZWN0Lm9wdGlvbnNbeG1sVHZJZFNlbGVjdC5zZWxlY3RlZEluZGV4XS52YWx1ZTsNCiAgICBjb25zdCB4bWxUdkxvZ28gPSBTRVJWRVJbJ3hlcGcnXVsneG1sdHZNYXAnXVt4bWxUdkZpbGVdW25ld1htbFR2SWRdWydpY29uJ107DQogICAgY29uc3QgdXBkYXRlTG9nbyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd1cGRhdGUtaWNvbicpLmNoZWNrZWQ7DQogICAgbGV0IGxvZ287DQogICAgaWYgKHVwZGF0ZUxvZ28gPT0gdHJ1ZSAmJiB4bWxUdkZpbGUgIT0gJ3hUZVZlIER1bW15Jykgew0KICAgICAgICBpZiAoU0VSVkVSWyd4ZXBnJ11bJ3htbHR2TWFwJ11beG1sVHZGaWxlXS5oYXNPd25Qcm9wZXJ0eShuZXdYbWxUdklkKSkgew0KICAgICAgICAgICAgbG9nbyA9IHhtbFR2TG9nbzsNCiAgICAgICAgfQ0KICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgIGxvZ28gPSBjaGFubmVsWyd0dmctbG9nbyddOw0KICAgICAgICB9DQogICAgICAgIHZhciBsb2dvSW5wdXQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY2hhbm5lbC1pY29uJyk7DQogICAgICAgIGxvZ29JbnB1dC52YWx1ZSA9IGxvZ287DQogICAgICAgIGlmIChCVUxLX0VESVQgPT0gZmFsc2UpIHsNCiAgICAgICAgICAgIGxvZ29JbnB1dC5jbGFzc05hbWUgPSAnY2hhbmdlZCc7DQogICAgICAgIH0NCiAgICB9DQp9DQpmdW5jdGlvbiBzYXZlUG9wdXBEYXRhKGRhdGFUeXBlLCBpZCwgcmVtb3ZlLCBvcHRpb24pIHsNCiAgICBpZiAoZGF0YVR5cGUgPT0gIm1hcHBpbmciKSB7DQogICAgICAgIGxldCBkYXRhID0ge307DQogICAgICAgIGNvbnNvbGUubG9nKCJTYXZlIG1hcHBpbmcgZGF0YSIpOw0KICAgICAgICBsZXQgY21kID0gInNhdmVFcGdNYXBwaW5nIjsNCiAgICAgICAgZGF0YVsiZXBnTWFwcGluZyJdID0gU0VSVkVSWyJ4ZXBnIl1bImVwZ01hcHBpbmciXTsNCiAgICAgICAgY29uc29sZS5sb2coIlNFTkQgVE8gU0VSVkVSIik7DQogICAgICAgIGxldCBzZXJ2ZXIgPSBuZXcgU2VydmVyKGNtZCk7DQogICAgICAgIHNlcnZlci5yZXF1ZXN0KGRhdGEpOw0KICAgICAgICBkZWxldGUgVU5ET1siZXBnTWFwcGluZyJdOw0KICAgICAgICByZXR1cm47DQogICAgfQ0KICAgIGNvbnNvbGUubG9nKCJTYXZlIHBvcHVwIGRhdGEiKTsNCiAgICBsZXQgZGl2ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInBvcHVwLWN1c3RvbSIpOw0KICAgIGxldCBpbnB1dHMgPSBkaXYuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlRBQkxFIilbMF0uZ2V0RWxlbWVudHNCeVRhZ05hbWUoIklOUFVUIik7DQogICAgbGV0IHNlbGVjdHMgPSBkaXYuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlRBQkxFIilbMF0uZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlNFTEVDVCIpOw0KICAgIGxldCBpbnB1dCA9IHt9Ow0KICAgIGxldCBjb25maXJtTXNnOw0KICAgIGZvciAobGV0IGkgPSAwOyBpIDwgc2VsZWN0cy5sZW5ndGg7IGkrKykgew0KICAgICAgICB2YXIgbmFtZTsNCiAgICAgICAgbmFtZSA9IHNlbGVjdHNbaV0ubmFtZTsNCiAgICAgICAgdmFyIHZhbHVlID0gc2VsZWN0c1tpXS52YWx1ZTsNCiAgICAgICAgc3dpdGNoIChuYW1lKSB7DQogICAgICAgICAgICBjYXNlICJ0dW5lciI6DQogICAgICAgICAgICAgICAgaW5wdXRbbmFtZV0gPSBwYXJzZUludCh2YWx1ZSk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBkZWZhdWx0Og0KICAgICAgICAgICAgICAgIGlucHV0W25hbWVdID0gdmFsdWU7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIH0NCiAgICB9DQogICAgZm9yIChsZXQgaSA9IDA7IGkgPCBpbnB1dHMubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgc3dpdGNoIChpbnB1dHNbaV0udHlwZSkgew0KICAgICAgICAgICAgY2FzZSAiY2hlY2tib3giOg0KICAgICAgICAgICAgICAgIG5hbWUgPSBpbnB1dHNbaV0ubmFtZTsNCiAgICAgICAgICAgICAgICBpbnB1dFtuYW1lXSA9IGlucHV0c1tpXS5jaGVja2VkOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAidGV4dCI6DQogICAgICAgICAgICBjYXNlICJoaWRkZW4iOg0KICAgICAgICAgICAgY2FzZSAicGFzc3dvcmQiOg0KICAgICAgICAgICAgICAgIG5hbWUgPSBpbnB1dHNbaV0ubmFtZTsNCiAgICAgICAgICAgICAgICBzd2l0Y2ggKG5hbWUpIHsNCiAgICAgICAgICAgICAgICAgICAgY2FzZSAidHVuZXIiOg0KICAgICAgICAgICAgICAgICAgICAgICAgaW5wdXRbbmFtZV0gPSBwYXJzZUludChpbnB1dHNbaV0udmFsdWUpOw0KICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICAgICAgICAgICAgICBpbnB1dFtuYW1lXSA9IGlucHV0c1tpXS52YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgfQ0KICAgIH0NCiAgICBsZXQgZGF0YSA9IHt9Ow0KICAgIGxldCBjbWQ7DQogICAgaWYgKHJlbW92ZSA9PSB0cnVlKSB7DQogICAgICAgIGlucHV0WyJkZWxldGUiXSA9IHRydWU7DQogICAgfQ0KICAgIHN3aXRjaCAoZGF0YVR5cGUpIHsNCiAgICAgICAgY2FzZSAidXNlcnMiOg0KICAgICAgICAgICAgY29uZmlybU1zZyA9ICJEZWxldGUgdGhpcyB1c2VyPyI7DQogICAgICAgICAgICBpZiAoaWQgPT0gIi0iKSB7DQogICAgICAgICAgICAgICAgY21kID0gInNhdmVOZXdVc2VyIjsNCiAgICAgICAgICAgICAgICBkYXRhWyJ1c2VyRGF0YSJdID0gaW5wdXQ7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICBjbWQgPSAic2F2ZVVzZXJEYXRhIjsNCiAgICAgICAgICAgICAgICBsZXQgZCA9IHt9Ow0KICAgICAgICAgICAgICAgIGRbaWRdID0gaW5wdXQ7DQogICAgICAgICAgICAgICAgZGF0YVsidXNlckRhdGEiXSA9IGQ7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSAibTN1IjoNCiAgICAgICAgICAgIGNvbmZpcm1Nc2cgPSAiRGVsZXRlIHRoaXMgcGxheWxpc3Q/IjsNCiAgICAgICAgICAgIHN3aXRjaCAob3B0aW9uKSB7DQogICAgICAgICAgICAgICAgLy8gUG9wdXA6IFNhdmUNCiAgICAgICAgICAgICAgICBjYXNlIDA6DQogICAgICAgICAgICAgICAgICAgIGNtZCA9ICJzYXZlRmlsZXNNM1UiOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICAvLyBQb3B1cDogVXBkYXRlDQogICAgICAgICAgICAgICAgY2FzZSAxOg0KICAgICAgICAgICAgICAgICAgICBjbWQgPSAidXBkYXRlRmlsZU0zVSI7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgZGF0YVsiZmlsZXMiXSA9IHt9Ow0KICAgICAgICAgICAgZGF0YVsiZmlsZXMiXVtkYXRhVHlwZV0gPSB7fTsNCiAgICAgICAgICAgIGRhdGFbImZpbGVzIl1bZGF0YVR5cGVdW2lkXSA9IGlucHV0Ow0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGNhc2UgImhkaHIiOg0KICAgICAgICAgICAgY29uZmlybU1zZyA9ICJEZWxldGUgdGhpcyBIREhvbWVSdW4gdHVuZXI/IjsNCiAgICAgICAgICAgIHN3aXRjaCAob3B0aW9uKSB7DQogICAgICAgICAgICAgICAgLy8gUG9wdXA6IFNhdmUNCiAgICAgICAgICAgICAgICBjYXNlIDA6DQogICAgICAgICAgICAgICAgICAgIGNtZCA9ICJzYXZlRmlsZXNIREhSIjsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgLy8gUG9wdXA6IFVwZGF0ZQ0KICAgICAgICAgICAgICAgIGNhc2UgMToNCiAgICAgICAgICAgICAgICAgICAgY21kID0gInVwZGF0ZUZpbGVIREhSIjsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBkYXRhWyJmaWxlcyJdID0ge307DQogICAgICAgICAgICBkYXRhWyJmaWxlcyJdW2RhdGFUeXBlXSA9IHt9Ow0KICAgICAgICAgICAgZGF0YVsiZmlsZXMiXVtkYXRhVHlwZV1baWRdID0gaW5wdXQ7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSAieG1sdHYiOg0KICAgICAgICAgICAgY29uZmlybU1zZyA9ICJEZWxldGUgdGhpcyBYTUxUViBmaWxlPyI7DQogICAgICAgICAgICBzd2l0Y2ggKG9wdGlvbikgew0KICAgICAgICAgICAgICAgIC8vIFBvcHVwOiBTYXZlDQogICAgICAgICAgICAgICAgY2FzZSAwOg0KICAgICAgICAgICAgICAgICAgICBjbWQgPSAic2F2ZUZpbGVzWE1MVFYiOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICAvLyBQb3B1cDogVXBkYXRlDQogICAgICAgICAgICAgICAgY2FzZSAxOg0KICAgICAgICAgICAgICAgICAgICBjbWQgPSAidXBkYXRlRmlsZVhNTFRWIjsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBkYXRhWyJmaWxlcyJdID0ge307DQogICAgICAgICAgICBkYXRhWyJmaWxlcyJdW2RhdGFUeXBlXSA9IHt9Ow0KICAgICAgICAgICAgZGF0YVsiZmlsZXMiXVtkYXRhVHlwZV1baWRdID0gaW5wdXQ7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSAiZmlsdGVyIjoNCiAgICAgICAgICAgIGNvbmZpcm1Nc2cgPSAiRGVsZXRlIHRoaXMgZmlsdGVyPyI7DQogICAgICAgICAgICBjbWQgPSAic2F2ZUZpbHRlciI7DQogICAgICAgICAgICBkYXRhWyJmaWx0ZXIiXSA9IHt9Ow0KICAgICAgICAgICAgZGF0YVsiZmlsdGVyIl1baWRdID0gaW5wdXQ7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgIGNvbnNvbGUubG9nKGRhdGFUeXBlLCBpZCk7DQogICAgICAgICAgICByZXR1cm47DQogICAgfQ0KICAgIGlmIChyZW1vdmUgPT0gdHJ1ZSkgew0KICAgICAgICBpZiAoIWNvbmZpcm0oY29uZmlybU1zZykpIHsNCiAgICAgICAgICAgIHNob3dFbGVtZW50KCJwb3B1cCIsIGZhbHNlKTsNCiAgICAgICAgICAgIHJldHVybjsNCiAgICAgICAgfQ0KICAgIH0NCiAgICBjb25zb2xlLmxvZygiU0VORCBUTyBTRVJWRVIiKTsNCiAgICBjb25zb2xlLmxvZyhkYXRhKTsNCiAgICBsZXQgc2VydmVyID0gbmV3IFNlcnZlcihjbWQpOw0KICAgIHNlcnZlci5yZXF1ZXN0KGRhdGEpOw0KfQ0KZnVuY3Rpb24gZG9uZVBvcHVwRGF0YShkYXRhVHlwZSwgaWRzU3RyKSB7DQogICAgbGV0IGlkcyA9IGlkc1N0ci5zcGxpdCgnLCcpOw0KICAgIGxldCBkaXYgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicG9wdXAtY3VzdG9tIik7DQogICAgbGV0IGlucHV0cyA9IGRpdi5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCJjaGFuZ2VkIik7DQogICAgaWRzLmZvckVhY2goaWQgPT4gew0KICAgICAgICBsZXQgaW5wdXQ7DQogICAgICAgIGlucHV0ID0gU0VSVkVSWyJ4ZXBnIl1bImVwZ01hcHBpbmciXVtpZF07DQogICAgICAgIGNvbnNvbGUubG9nKGlucHV0KTsNCiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBpbnB1dHMubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgICAgIGxldCBuYW1lOw0KICAgICAgICAgICAgbGV0IHZhbHVlOw0KICAgICAgICAgICAgc3dpdGNoIChpbnB1dHNbaV0udGFnTmFtZSkgew0KICAgICAgICAgICAgICAgIGNhc2UgIklOUFVUIjoNCiAgICAgICAgICAgICAgICAgICAgc3dpdGNoIChpbnB1dHNbaV0udHlwZSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAiY2hlY2tib3giOg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWUgPSBpbnB1dHNbaV0ubmFtZTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IGlucHV0c1tpXS5jaGVja2VkOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlucHV0W25hbWVdID0gdmFsdWU7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgICAgICAgICBjYXNlICJ0ZXh0IjoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lID0gaW5wdXRzW2ldLm5hbWU7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSBpbnB1dHNbaV0udmFsdWU7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5wdXRbbmFtZV0gPSB2YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBjYXNlICJTRUxFQ1QiOg0KICAgICAgICAgICAgICAgICAgICBuYW1lID0gaW5wdXRzW2ldLm5hbWU7DQogICAgICAgICAgICAgICAgICAgIHZhbHVlID0gaW5wdXRzW2ldLnZhbHVlOw0KICAgICAgICAgICAgICAgICAgICBpbnB1dFtuYW1lXSA9IHZhbHVlOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIHN3aXRjaCAobmFtZSkgew0KICAgICAgICAgICAgICAgIGNhc2UgInR2Zy1sb2dvIjoNCiAgICAgICAgICAgICAgICAgICAgLy8oZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpLmNoaWxkTm9kZXNbMl0uZmlyc3RDaGlsZCBhcyBIVE1MRWxlbWVudCkuc2V0QXR0cmlidXRlKCJzcmMiLCB2YWx1ZSkNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAieC1uYW1lIjoNCiAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpLmNoaWxkTm9kZXNbM10uZmlyc3RDaGlsZC5pbm5lckhUTUwgPSB2YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAieC1jYXRlZ29yeSI6DQogICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5jaGlsZE5vZGVzWzNdLmZpcnN0Q2hpbGQuY2xhc3NOYW1lID0gdmFsdWU7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgIngtZ3JvdXAtdGl0bGUiOg0KICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkuY2hpbGROb2Rlc1s1XS5maXJzdENoaWxkLmlubmVySFRNTCA9IHZhbHVlOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBjYXNlICJ4LXhtbHR2LWZpbGUiOg0KICAgICAgICAgICAgICAgICAgICBpZiAodmFsdWUgIT0gInhUZVZlIER1bW15IiAmJiB2YWx1ZSAhPSAiLSIpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlID0gZ2V0VmFsdWVGcm9tUHJvdmlkZXJGaWxlKHZhbHVlLCAieG1sdHYiLCAibmFtZSIpOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIGlmICh2YWx1ZSA9PSAiLSIpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGlucHV0WyJ4LWFjdGl2ZSJdID0gZmFsc2U7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpLmNoaWxkTm9kZXNbNl0uZmlyc3RDaGlsZC5pbm5lckhUTUwgPSB2YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAieC1tYXBwaW5nIjoNCiAgICAgICAgICAgICAgICAgICAgaWYgKHZhbHVlID09ICItIikgew0KICAgICAgICAgICAgICAgICAgICAgICAgaW5wdXRbIngtYWN0aXZlIl0gPSBmYWxzZTsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkuY2hpbGROb2Rlc1s3XS5maXJzdENoaWxkLmlubmVySFRNTCA9IHZhbHVlOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBjYXNlICJ4LXRpbWVzaGlmdCI6DQogICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5jaGlsZE5vZGVzWzhdLmZpcnN0Q2hpbGQuaW5uZXJIVE1MID0gdmFsdWU7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICB9DQogICAgICAgICAgICBjcmVhdGVTZWFyY2hPYmooKTsNCiAgICAgICAgICAgIHNlYXJjaEluTWFwcGluZygpOw0KICAgICAgICB9DQogICAgICAgIGlmIChpbnB1dFsieC1hY3RpdmUiXSA9PSBmYWxzZSkgew0KICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpLmNsYXNzTmFtZSA9ICJub3RBY3RpdmVFUEciOw0KICAgICAgICB9DQogICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpLmNsYXNzTmFtZSA9ICJhY3RpdmVFUEciOw0KICAgICAgICB9DQogICAgICAgIGNvbnNvbGUubG9nKGlucHV0WyJ0dmctbG9nbyJdKTsNCiAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpLmNoaWxkTm9kZXNbMl0uZmlyc3RDaGlsZC5zZXRBdHRyaWJ1dGUoInNyYyIsIGlucHV0WyJ0dmctbG9nbyJdKTsNCiAgICB9KTsNCiAgICBzaG93RWxlbWVudCgicG9wdXAiLCBmYWxzZSk7DQogICAgcmV0dXJuOw0KfQ0KZnVuY3Rpb24gc2hvd1ByZXZpZXcoZWxlbWVudCkgew0KICAgIGxldCBkaXYgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibXlTdHJlYW1zQm94Iik7DQogICAgc3dpdGNoIChlbGVtZW50KSB7DQogICAgICAgIGNhc2UgZmFsc2U6DQogICAgICAgICAgICBkaXYuY2xhc3NOYW1lID0gIm5vdFZpc2libGUiOw0KICAgICAgICAgICAgcmV0dXJuOw0KICAgIH0NCiAgICBsZXQgc3RyZWFtcyA9IFsiYWN0aXZlU3RyZWFtcyIsICJpbmFjdGl2ZVN0cmVhbXMiXTsNCiAgICBzdHJlYW1zLmZvckVhY2gocHJldmlldyA9PiB7DQogICAgICAgIGxldCB0YWJsZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHByZXZpZXcpOw0KICAgICAgICB0YWJsZS5pbm5lckhUTUwgPSAiIjsNCiAgICAgICAgbGV0IG9iaiA9IFNFUlZFUlsiZGF0YSJdWyJTdHJlYW1QcmV2aWV3VUkiXVtwcmV2aWV3XTsNCiAgICAgICAgb2JqLmZvckVhY2goY2hhbm5lbCA9PiB7DQogICAgICAgICAgICBsZXQgdHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJUUiIpOw0KICAgICAgICAgICAgbGV0IHRkS2V5ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgIGxldCB0ZFZhbCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICB0ZEtleS5jbGFzc05hbWUgPSAidGRLZXkiOw0KICAgICAgICAgICAgdGRWYWwuY2xhc3NOYW1lID0gInRkVmFsIjsNCiAgICAgICAgICAgIHN3aXRjaCAocHJldmlldykgew0KICAgICAgICAgICAgICAgIGNhc2UgImFjdGl2ZVN0cmVhbXMiOg0KICAgICAgICAgICAgICAgICAgICB0ZEtleS5pbm5lclRleHQgPSAiQ2hhbm5lbDogKCspIjsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAiaW5hY3RpdmVTdHJlYW1zIjoNCiAgICAgICAgICAgICAgICAgICAgdGRLZXkuaW5uZXJUZXh0ID0gIkNoYW5uZWw6ICgtKSI7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgdGRWYWwuaW5uZXJUZXh0ID0gY2hhbm5lbDsNCiAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKHRkS2V5KTsNCiAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKHRkVmFsKTsNCiAgICAgICAgICAgIHRhYmxlLmFwcGVuZENoaWxkKHRyKTsNCiAgICAgICAgfSk7DQogICAgfSk7DQogICAgc2hvd0VsZW1lbnQoImxvYWRpbmciLCBmYWxzZSk7DQogICAgZGl2LmNsYXNzTmFtZSA9ICJ2aXNpYmxlIjsNCiAgICByZXR1cm47DQp9DQo=" webUI["html/js/network_ts.js"] = "Y2xhc3MgU2VydmVyIHsNCiAgICBjb25zdHJ1Y3RvcihjbWQpIHsNCiAgICAgICAgdGhpcy5jbWQgPSBjbWQ7DQogICAgfQ0KICAgIHJlcXVlc3QoZGF0YSkgew0KICAgICAgICBpZiAoU0VSVkVSX0NPTk5FQ1RJT04gPT0gdHJ1ZSkgew0KICAgICAgICAgICAgcmV0dXJuOw0KICAgICAgICB9DQogICAgICAgIFNFUlZFUl9DT05ORUNUSU9OID0gdHJ1ZTsNCiAgICAgICAgaWYgKHRoaXMuY21kICE9ICJ1cGRhdGVMb2ciKSB7DQogICAgICAgICAgICBzaG93RWxlbWVudCgibG9hZGluZyIsIHRydWUpOw0KICAgICAgICAgICAgVU5ETyA9IG5ldyBPYmplY3QoKTsNCiAgICAgICAgfQ0KICAgICAgICBzd2l0Y2ggKHdpbmRvdy5sb2NhdGlvbi5wcm90b2NvbCkgew0KICAgICAgICAgICAgY2FzZSAiaHR0cDoiOg0KICAgICAgICAgICAgICAgIHRoaXMucHJvdG9jb2wgPSAid3M6Ly8iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiaHR0cHM6IjoNCiAgICAgICAgICAgICAgICB0aGlzLnByb3RvY29sID0gIndzczovLyI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIH0NCiAgICAgICAgdmFyIHVybCA9IHRoaXMucHJvdG9jb2wgKyB3aW5kb3cubG9jYXRpb24uaG9zdG5hbWUgKyAiOiIgKyB3aW5kb3cubG9jYXRpb24ucG9ydCArICIvZGF0YS8iICsgIj9Ub2tlbj0iICsgZ2V0Q29va2llKCJUb2tlbiIpOw0KICAgICAgICBkYXRhWyJjbWQiXSA9IHRoaXMuY21kOw0KICAgICAgICB2YXIgd3MgPSBuZXcgV2ViU29ja2V0KHVybCk7DQogICAgICAgIHdzLm9ub3BlbiA9IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgICAgIFdTX0FWQUlMQUJMRSA9IHRydWU7DQogICAgICAgICAgICB0aGlzLnNlbmQoSlNPTi5zdHJpbmdpZnkoZGF0YSkpOw0KICAgICAgICB9Ow0KICAgICAgICB3cy5vbmVycm9yID0gZnVuY3Rpb24gKHdzRXJyRXZ0KSB7DQogICAgICAgICAgICBjb25zb2xlLmxvZygiTm8gd2Vic29ja2V0IGNvbm5lY3Rpb24gdG8geFRlVmUgY291bGQgYmUgZXN0YWJsaXNoZWQuIENoZWNrIHlvdXIgbmV0d29yayBjb25maWd1cmF0aW9uLiIpOw0KICAgICAgICAgICAgU0VSVkVSX0NPTk5FQ1RJT04gPSBmYWxzZTsNCiAgICAgICAgICAgIGlmIChXU19BVkFJTEFCTEUgPT0gZmFsc2UpIHsNCiAgICAgICAgICAgICAgICBhbGVydCgiTm8gd2Vic29ja2V0IGNvbm5lY3Rpb24gdG8geFRlVmUgY291bGQgYmUgZXN0YWJsaXNoZWQuIENoZWNrIHlvdXIgbmV0d29yayBjb25maWd1cmF0aW9uLiIpOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9Ow0KICAgICAgICB3cy5vbm1lc3NhZ2UgPSBmdW5jdGlvbiAod3NNZXNzYWdlRXZ0KSB7DQogICAgICAgICAgICBTRVJWRVJfQ09OTkVDVElPTiA9IGZhbHNlOw0KICAgICAgICAgICAgc2hvd0VsZW1lbnQoImxvYWRpbmciLCBmYWxzZSk7DQogICAgICAgICAgICBjb25zdCByZXNwb25zZSA9IEpTT04ucGFyc2Uod3NNZXNzYWdlRXZ0LmRhdGEpOw0KICAgICAgICAgICAgaWYgKHJlc3BvbnNlLmhhc093blByb3BlcnR5KCJ0b2tlbiIpKSB7DQogICAgICAgICAgICAgICAgZG9jdW1lbnQuY29va2llID0gIlRva2VuPSIgKyByZXNwb25zZVsidG9rZW4iXTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGlmIChyZXNwb25zZVsic3RhdHVzIl0gPT0gZmFsc2UpIHsNCiAgICAgICAgICAgICAgICBhbGVydChyZXNwb25zZVsiZXJyIl0pOw0KICAgICAgICAgICAgICAgIHJldHVybjsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGlmIChyZXNwb25zZS5oYXNPd25Qcm9wZXJ0eSgibmV3V2ViVXJsIikpIHsNCiAgICAgICAgICAgICAgICB3aW5kb3cubG9jYXRpb24gPSByZXNwb25zZVsibmV3V2ViVXJsIl07DQogICAgICAgICAgICB9DQogICAgICAgICAgICBpZiAocmVzcG9uc2UuaGFzT3duUHJvcGVydHkoInJlbG9hZCIpKSB7DQogICAgICAgICAgICAgICAgd2luZG93LmxvY2F0aW9uLnJlbG9hZCgpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgaWYgKHJlc3BvbnNlLmhhc093blByb3BlcnR5KCJhbGVydCIpKSB7DQogICAgICAgICAgICAgICAgYWxlcnQocmVzcG9uc2VbImFsZXJ0Il0pOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgaWYgKHJlc3BvbnNlLmhhc093blByb3BlcnR5KCJsb2dvVVJMIikpIHsNCiAgICAgICAgICAgICAgICB2YXIgZGl2ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNoYW5uZWwtaWNvbiIpOw0KICAgICAgICAgICAgICAgIGRpdi52YWx1ZSA9IHJlc3BvbnNlWyJsb2dvVVJMIl07DQogICAgICAgICAgICAgICAgZGl2LmNsYXNzTmFtZSA9ICJjaGFuZ2VkIjsNCiAgICAgICAgICAgICAgICByZXR1cm47DQogICAgICAgICAgICB9DQogICAgICAgICAgICBzd2l0Y2ggKGRhdGFbImNtZCJdKSB7DQogICAgICAgICAgICAgICAgY2FzZSAidXBkYXRlTG9nIjoNCiAgICAgICAgICAgICAgICAgICAgU0VSVkVSWyJsb2ciXSA9IHJlc3BvbnNlWyJsb2ciXTsNCiAgICAgICAgICAgICAgICAgICAgaWYgKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb250ZW50X2xvZyIpKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBzaG93TG9ncyhmYWxzZSk7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgcmV0dXJuOw0KICAgICAgICAgICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICAgICAgICAgIFNFUlZFUiA9IG5ldyBPYmplY3QoKTsNCiAgICAgICAgICAgICAgICAgICAgU0VSVkVSID0gcmVzcG9uc2U7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgaWYgKHJlc3BvbnNlLmhhc093blByb3BlcnR5KCJvcGVuTWVudSIpKSB7DQogICAgICAgICAgICAgICAgdmFyIG1lbnUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChyZXNwb25zZVsib3Blbk1lbnUiXSk7DQogICAgICAgICAgICAgICAgbWVudS5jbGljaygpOw0KICAgICAgICAgICAgICAgIHNob3dFbGVtZW50KCJwb3B1cCIsIGZhbHNlKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGlmIChyZXNwb25zZS5oYXNPd25Qcm9wZXJ0eSgib3BlbkxpbmsiKSkgew0KICAgICAgICAgICAgICAgIHdpbmRvdy5sb2NhdGlvbiA9IHJlc3BvbnNlWyJvcGVuTGluayJdOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgaWYgKHJlc3BvbnNlLmhhc093blByb3BlcnR5KCJyZWxvYWQiKSkgew0KICAgICAgICAgICAgICAgIGxvY2F0aW9uLnJlbG9hZCgpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgaWYgKHJlc3BvbnNlLmhhc093blByb3BlcnR5KCJ3aXphcmQiKSkgew0KICAgICAgICAgICAgICAgIGNyZWF0ZUxheW91dCgpOw0KICAgICAgICAgICAgICAgIGNvbmZpZ3VyYXRpb25XaXphcmRbcmVzcG9uc2VbIndpemFyZCJdXS5jcmVhdGVXaXphcmQoKTsNCiAgICAgICAgICAgICAgICByZXR1cm47DQogICAgICAgICAgICB9DQogICAgICAgICAgICBjcmVhdGVMYXlvdXQoKTsNCiAgICAgICAgfTsNCiAgICB9DQp9DQpmdW5jdGlvbiBnZXRDb29raWUobmFtZSkgew0KICAgIHZhciB2YWx1ZSA9ICI7ICIgKyBkb2N1bWVudC5jb29raWU7DQogICAgdmFyIHBhcnRzID0gdmFsdWUuc3BsaXQoIjsgIiArIG5hbWUgKyAiPSIpOw0KICAgIGlmIChwYXJ0cy5sZW5ndGggPT0gMikgew0KICAgICAgICByZXR1cm4gcGFydHMucG9wKCkuc3BsaXQoIjsiKS5zaGlmdCgpOw0KICAgIH0NCn0NCg==" webUI["html/js/settings_ts.js"] = "Y2xhc3MgU2V0dGluZ3NDYXRlZ29yeSB7DQogICAgY29uc3RydWN0b3IoKSB7DQogICAgICAgIHRoaXMuRG9jdW1lbnRJRCA9ICJjb250ZW50X3NldHRpbmdzIjsNCiAgICB9DQogICAgY3JlYXRlQ2F0ZWdvcnlIZWFkbGluZSh2YWx1ZSkgew0KICAgICAgICB2YXIgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIkg0Iik7DQogICAgICAgIGVsZW1lbnQuaW5uZXJIVE1MID0gdmFsdWU7DQogICAgICAgIHJldHVybiBlbGVtZW50Ow0KICAgIH0NCiAgICBjcmVhdGVIUigpIHsNCiAgICAgICAgdmFyIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJIUiIpOw0KICAgICAgICByZXR1cm4gZWxlbWVudDsNCiAgICB9DQogICAgY3JlYXRlU2V0dGluZ3Moc2V0dGluZ3NLZXkpIHsNCiAgICAgICAgdmFyIHNldHRpbmcgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJUUiIpOw0KICAgICAgICB2YXIgY29udGVudCA9IG5ldyBQb3B1cENvbnRlbnQoKTsNCiAgICAgICAgdmFyIGRhdGEgPSBTRVJWRVJbInNldHRpbmdzIl1bc2V0dGluZ3NLZXldOw0KICAgICAgICBzd2l0Y2ggKHNldHRpbmdzS2V5KSB7DQogICAgICAgICAgICAvLyBUZXh0IGlucHV0cw0KICAgICAgICAgICAgY2FzZSAidXBkYXRlIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLnVwZGF0ZS50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsICJ1cGRhdGUiLCBkYXRhLnRvU3RyaW5nKCkpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3suc2V0dGluZ3MudXBkYXRlLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJiYWNrdXAucGF0aCI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5iYWNrdXBQYXRoLnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgImJhY2t1cC5wYXRoIiwgZGF0YSk7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5zZXR0aW5ncy5iYWNrdXBQYXRoLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ0ZW1wLnBhdGgiOg0KICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MudGVtcFBhdGgudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCAidGVtcC5wYXRoIiwgZGF0YSk7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5zZXR0aW5ncy50bXBQYXRoLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ1c2VyLmFnZW50IjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLnVzZXJBZ2VudC50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsICJ1c2VyLmFnZW50IiwgZGF0YSk7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5zZXR0aW5ncy51c2VyQWdlbnQucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImJ1ZmZlci50aW1lb3V0IjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmJ1ZmZlclRpbWVvdXQudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCAiYnVmZmVyLnRpbWVvdXQiLCBkYXRhKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnNldHRpbmdzLmJ1ZmZlclRpbWVvdXQucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImZmbXBlZy5wYXRoIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmZmbXBlZ1BhdGgudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCAiZmZtcGVnLnBhdGgiLCBkYXRhKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnNldHRpbmdzLmZmbXBlZ1BhdGgucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImZmbXBlZy5vcHRpb25zIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmZmbXBlZ09wdGlvbnMudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCAiZmZtcGVnLm9wdGlvbnMiLCBkYXRhKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnNldHRpbmdzLmZmbXBlZ09wdGlvbnMucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInZsYy5wYXRoIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLnZsY1BhdGgudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCAidmxjLnBhdGgiLCBkYXRhKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnNldHRpbmdzLnZsY1BhdGgucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInZsYy5vcHRpb25zIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLnZsY09wdGlvbnMudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCAidmxjLm9wdGlvbnMiLCBkYXRhKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnNldHRpbmdzLnZsY09wdGlvbnMucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIC8vIENoZWNrYm94ZXMNCiAgICAgICAgICAgIGNhc2UgInRsc01vZGUiOg0KICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MudGxzTW9kZS50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChzZXR0aW5nc0tleSk7DQogICAgICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGE7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiYXV0aGVudGljYXRpb24ud2ViIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmF1dGhlbnRpY2F0aW9uV0VCLnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KHNldHRpbmdzS2V5KTsNCiAgICAgICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJhdXRoZW50aWNhdGlvbi5wbXMiOg0KICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MuYXV0aGVudGljYXRpb25QTVMudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goc2V0dGluZ3NLZXkpOw0KICAgICAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImF1dGhlbnRpY2F0aW9uLm0zdSI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5hdXRoZW50aWNhdGlvbk0zVS50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChzZXR0aW5nc0tleSk7DQogICAgICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGE7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiYXV0aGVudGljYXRpb24ueG1sIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmF1dGhlbnRpY2F0aW9uWE1MLnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KHNldHRpbmdzS2V5KTsNCiAgICAgICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJhdXRoZW50aWNhdGlvbi5hcGkiOg0KICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MuYXV0aGVudGljYXRpb25BUEkudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goc2V0dGluZ3NLZXkpOw0KICAgICAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImZpbGVzLnVwZGF0ZSI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5maWxlc1VwZGF0ZS50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChzZXR0aW5nc0tleSk7DQogICAgICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGE7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiY2FjaGUuaW1hZ2VzIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmNhY2hlSW1hZ2VzLnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KHNldHRpbmdzS2V5KTsNCiAgICAgICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ4ZXBnLnJlcGxhY2UubWlzc2luZy5pbWFnZXMiOg0KICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MucmVwbGFjZUVtcHR5SW1hZ2VzLnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KHNldHRpbmdzS2V5KTsNCiAgICAgICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ4dGV2ZUF1dG9VcGRhdGUiOg0KICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MueHRldmVBdXRvVXBkYXRlLnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KHNldHRpbmdzS2V5KTsNCiAgICAgICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJhcGkiOg0KICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MuYXBpLnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KHNldHRpbmdzS2V5KTsNCiAgICAgICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAvLyBTZWxlY3QNCiAgICAgICAgICAgIGNhc2UgInR1bmVyIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLnR1bmVyLnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgdGV4dCA9IG5ldyBBcnJheSgpOw0KICAgICAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBuZXcgQXJyYXkoKTsNCiAgICAgICAgICAgICAgICBmb3IgKHZhciBpID0gMTsgaSA8PSAxMDA7IGkrKykgew0KICAgICAgICAgICAgICAgICAgICB0ZXh0LnB1c2goaSk7DQogICAgICAgICAgICAgICAgICAgIHZhbHVlcy5wdXNoKGkpOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCBkYXRhLCBzZXR0aW5nc0tleSk7DQogICAgICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKHNlbGVjdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJlcGdTb3VyY2UiOg0KICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MuZXBnU291cmNlLnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgdGV4dCA9IFsiUE1TIiwgIlhFUEciXTsNCiAgICAgICAgICAgICAgICB2YXIgdmFsdWVzID0gWyJQTVMiLCAiWEVQRyJdOw0KICAgICAgICAgICAgICAgIHZhciBzZWxlY3QgPSBjb250ZW50LmNyZWF0ZVNlbGVjdCh0ZXh0LCB2YWx1ZXMsIGRhdGEsIHNldHRpbmdzS2V5KTsNCiAgICAgICAgICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQoc2VsZWN0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImJhY2t1cC5rZWVwIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmJhY2t1cEtlZXAudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciB0ZXh0ID0gWyI1IiwgIjEwIiwgIjIwIiwgIjMwIiwgIjQwIiwgIjUwIl07DQogICAgICAgICAgICAgICAgdmFyIHZhbHVlcyA9IFsiNSIsICIxMCIsICIyMCIsICIzMCIsICI0MCIsICI1MCJdOw0KICAgICAgICAgICAgICAgIHZhciBzZWxlY3QgPSBjb250ZW50LmNyZWF0ZVNlbGVjdCh0ZXh0LCB2YWx1ZXMsIGRhdGEsIHNldHRpbmdzS2V5KTsNCiAgICAgICAgICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQoc2VsZWN0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImJ1ZmZlci5zaXplLmtiIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmJ1ZmZlclNpemUudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciB0ZXh0ID0gWyIwLjUgTUIiLCAiMSBNQiIsICIyIE1CIiwgIjMgTUIiLCAiNCBNQiIsICI1IE1CIiwgIjYgTUIiLCAiNyBNQiIsICI4IE1CIl07DQogICAgICAgICAgICAgICAgdmFyIHZhbHVlcyA9IFsiNTEyIiwgIjEwMjQiLCAiMjA0OCIsICIzMDcyIiwgIjQwOTYiLCAiNTEyMCIsICI2MTQ0IiwgIjcxNjgiLCAiODE5MiJdOw0KICAgICAgICAgICAgICAgIHZhciBzZWxlY3QgPSBjb250ZW50LmNyZWF0ZVNlbGVjdCh0ZXh0LCB2YWx1ZXMsIGRhdGEsIHNldHRpbmdzS2V5KTsNCiAgICAgICAgICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQoc2VsZWN0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImJ1ZmZlciI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5zdHJlYW1CdWZmZXJpbmcudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciB0ZXh0ID0gWyJ7ey5zZXR0aW5ncy5zdHJlYW1CdWZmZXJpbmcuaW5mb19mYWxzZX19IiwgInhUZVZlOiAoe3suc2V0dGluZ3Muc3RyZWFtQnVmZmVyaW5nLmluZm9feHRldmV9fSkiLCAiRkZtcGVnOiAoe3suc2V0dGluZ3Muc3RyZWFtQnVmZmVyaW5nLmluZm9fZmZtcGVnfX0pIiwgIlZMQzogKHt7LnNldHRpbmdzLnN0cmVhbUJ1ZmZlcmluZy5pbmZvX3ZsY319KSJdOw0KICAgICAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBbIi0iLCAieHRldmUiLCAiZmZtcGVnIiwgInZsYyJdOw0KICAgICAgICAgICAgICAgIHZhciBzZWxlY3QgPSBjb250ZW50LmNyZWF0ZVNlbGVjdCh0ZXh0LCB2YWx1ZXMsIGRhdGEsIHNldHRpbmdzS2V5KTsNCiAgICAgICAgICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQoc2VsZWN0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInVkcHh5IjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLnVkcHh5LnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgInVkcHh5IiwgZGF0YSk7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5zZXR0aW5ncy51ZHB4eS5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICB9DQogICAgICAgIHJldHVybiBzZXR0aW5nOw0KICAgIH0NCiAgICBjcmVhdGVEZXNjcmlwdGlvbihzZXR0aW5nc0tleSkgew0KICAgICAgICB2YXIgZGVzY3JpcHRpb24gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJUUiIpOw0KICAgICAgICB2YXIgdGV4dDsNCiAgICAgICAgc3dpdGNoIChzZXR0aW5nc0tleSkgew0KICAgICAgICAgICAgY2FzZSAidGxzTW9kZSI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy50bHNNb2RlLmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiYXV0aGVudGljYXRpb24ud2ViIjoNCiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLmF1dGhlbnRpY2F0aW9uV0VCLmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiYXV0aGVudGljYXRpb24ubTN1IjoNCiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLmF1dGhlbnRpY2F0aW9uTTNVLmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiYXV0aGVudGljYXRpb24ucG1zIjoNCiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLmF1dGhlbnRpY2F0aW9uUE1TLmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiYXV0aGVudGljYXRpb24ueG1sIjoNCiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLmF1dGhlbnRpY2F0aW9uWE1MLmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiYXV0aGVudGljYXRpb24uYXBpIjoNCiAgICAgICAgICAgICAgICBpZiAoU0VSVkVSWyJzZXR0aW5ncyJdWyJhdXRoZW50aWNhdGlvbi53ZWIiXSA9PSB0cnVlKSB7DQogICAgICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MuYXV0aGVudGljYXRpb25BUEkuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAieHRldmVBdXRvVXBkYXRlIjoNCiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLnh0ZXZlQXV0b1VwZGF0ZS5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImJhY2t1cC5rZWVwIjoNCiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLmJhY2t1cEtlZXAuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJiYWNrdXAucGF0aCI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5iYWNrdXBQYXRoLmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAidGVtcC5wYXRoIjoNCiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLnRlbXBQYXRoLmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiYnVmZmVyIjoNCiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLnN0cmVhbUJ1ZmZlcmluZy5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImJ1ZmZlci5zaXplLmtiIjoNCiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLmJ1ZmZlclNpemUuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJidWZmZXIudGltZW91dCI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5idWZmZXJUaW1lb3V0LmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAidXNlci5hZ2VudCI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy51c2VyQWdlbnQuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJmZm1wZWcucGF0aCI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5mZm1wZWdQYXRoLmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiZmZtcGVnLm9wdGlvbnMiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MuZmZtcGVnT3B0aW9ucy5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInZsYy5wYXRoIjoNCiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLnZsY1BhdGguZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ2bGMub3B0aW9ucyI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy52bGNPcHRpb25zLmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiZXBnU291cmNlIjoNCiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLmVwZ1NvdXJjZS5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInR1bmVyIjoNCiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLnR1bmVyLmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAidXBkYXRlIjoNCiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLnVwZGF0ZS5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImFwaSI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5hcGkuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJmaWxlcy51cGRhdGUiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MuZmlsZXNVcGRhdGUuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJjYWNoZS5pbWFnZXMiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MuY2FjaGVJbWFnZXMuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ4ZXBnLnJlcGxhY2UubWlzc2luZy5pbWFnZXMiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MucmVwbGFjZUVtcHR5SW1hZ2VzLmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAidWRweHkiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MudWRweHkuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBkZWZhdWx0Og0KICAgICAgICAgICAgICAgIHRleHQgPSAiIjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgfQ0KICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICIiOw0KICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgIHZhciBwcmUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJQUkUiKTsNCiAgICAgICAgcHJlLmlubmVySFRNTCA9IHRleHQ7DQogICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQocHJlKTsNCiAgICAgICAgZGVzY3JpcHRpb24uYXBwZW5kQ2hpbGQodGRMZWZ0KTsNCiAgICAgICAgZGVzY3JpcHRpb24uYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgIHJldHVybiBkZXNjcmlwdGlvbjsNCiAgICB9DQp9DQpjbGFzcyBTZXR0aW5nc0NhdGVnb3J5SXRlbSBleHRlbmRzIFNldHRpbmdzQ2F0ZWdvcnkgew0KICAgIGNvbnN0cnVjdG9yKGhlYWRsaW5lLCBzZXR0aW5nc0tleXMpIHsNCiAgICAgICAgc3VwZXIoKTsNCiAgICAgICAgdGhpcy5oZWFkbGluZSA9IGhlYWRsaW5lOw0KICAgICAgICB0aGlzLnNldHRpbmdzS2V5cyA9IHNldHRpbmdzS2V5czsNCiAgICB9DQogICAgY3JlYXRlQ2F0ZWdvcnkoKSB7DQogICAgICAgIHZhciBoZWFkbGluZSA9IHRoaXMuY3JlYXRlQ2F0ZWdvcnlIZWFkbGluZSh0aGlzLmhlYWRsaW5lKTsNCiAgICAgICAgdmFyIHNldHRpbmdzS2V5cyA9IHRoaXMuc2V0dGluZ3NLZXlzOw0KICAgICAgICB2YXIgZG9jID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQodGhpcy5Eb2N1bWVudElEKTsNCiAgICAgICAgZG9jLmFwcGVuZENoaWxkKGhlYWRsaW5lKTsNCiAgICAgICAgLy8gQ3JlYXRlIGEgdGFibGUgZm9yIHRoZSBjYXRlZ29yeQ0KICAgICAgICB2YXIgdGFibGUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJUQUJMRSIpOw0KICAgICAgICB2YXIga2V5cyA9IHNldHRpbmdzS2V5cy5zcGxpdCgiLCIpOw0KICAgICAgICBrZXlzLmZvckVhY2goc2V0dGluZ3NLZXkgPT4gew0KICAgICAgICAgICAgc3dpdGNoIChzZXR0aW5nc0tleSkgew0KICAgICAgICAgICAgICAgIGNhc2UgImF1dGhlbnRpY2F0aW9uLnBtcyI6DQogICAgICAgICAgICAgICAgY2FzZSAiYXV0aGVudGljYXRpb24ubTN1IjoNCiAgICAgICAgICAgICAgICBjYXNlICJhdXRoZW50aWNhdGlvbi54bWwiOg0KICAgICAgICAgICAgICAgIGNhc2UgImF1dGhlbnRpY2F0aW9uLmFwaSI6DQogICAgICAgICAgICAgICAgICAgIGlmIChTRVJWRVJbInNldHRpbmdzIl1bImF1dGhlbnRpY2F0aW9uLndlYiJdID09IGZhbHNlKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICAgICAgICAgIHZhciBpdGVtID0gdGhpcy5jcmVhdGVTZXR0aW5ncyhzZXR0aW5nc0tleSk7DQogICAgICAgICAgICAgICAgICAgIHZhciBkZXNjcmlwdGlvbiA9IHRoaXMuY3JlYXRlRGVzY3JpcHRpb24oc2V0dGluZ3NLZXkpOw0KICAgICAgICAgICAgICAgICAgICB0YWJsZS5hcHBlbmRDaGlsZChpdGVtKTsNCiAgICAgICAgICAgICAgICAgICAgdGFibGUuYXBwZW5kQ2hpbGQoZGVzY3JpcHRpb24pOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfSk7DQogICAgICAgIGRvYy5hcHBlbmRDaGlsZCh0YWJsZSk7DQogICAgICAgIGRvYy5hcHBlbmRDaGlsZCh0aGlzLmNyZWF0ZUhSKCkpOw0KICAgIH0NCn0NCmZ1bmN0aW9uIHNob3dTZXR0aW5ncygpIHsNCiAgICBjb25zb2xlLmxvZygiU0VUVElOR1MiKTsNCiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHNldHRpbmdzQ2F0ZWdvcnkubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgc2V0dGluZ3NDYXRlZ29yeVtpXS5jcmVhdGVDYXRlZ29yeSgpOw0KICAgIH0NCn0NCmZ1bmN0aW9uIHNhdmVTZXR0aW5ncygpIHsNCiAgICBjb25zb2xlLmxvZygiU2F2ZSBTZXR0aW5ncyIpOw0KICAgIHZhciBjbWQgPSAic2F2ZVNldHRpbmdzIjsNCiAgICB2YXIgZGl2ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnRlbnRfc2V0dGluZ3MiKTsNCiAgICB2YXIgc2V0dGluZ3MgPSBkaXYuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSgiY2hhbmdlZCIpOw0KICAgIHZhciBuZXdTZXR0aW5ncyA9IG5ldyBPYmplY3QoKTsNCiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHNldHRpbmdzLmxlbmd0aDsgaSsrKSB7DQogICAgICAgIHZhciBuYW1lOw0KICAgICAgICB2YXIgdmFsdWU7DQogICAgICAgIHN3aXRjaCAoc2V0dGluZ3NbaV0udGFnTmFtZSkgew0KICAgICAgICAgICAgY2FzZSAiSU5QVVQiOg0KICAgICAgICAgICAgICAgIHN3aXRjaCAoc2V0dGluZ3NbaV0udHlwZSkgew0KICAgICAgICAgICAgICAgICAgICBjYXNlICJjaGVja2JveCI6DQogICAgICAgICAgICAgICAgICAgICAgICBuYW1lID0gc2V0dGluZ3NbaV0ubmFtZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlID0gc2V0dGluZ3NbaV0uY2hlY2tlZDsNCiAgICAgICAgICAgICAgICAgICAgICAgIG5ld1NldHRpbmdzW25hbWVdID0gdmFsdWU7DQogICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICAgICAgY2FzZSAidGV4dCI6DQogICAgICAgICAgICAgICAgICAgICAgICBuYW1lID0gc2V0dGluZ3NbaV0ubmFtZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlID0gc2V0dGluZ3NbaV0udmFsdWU7DQogICAgICAgICAgICAgICAgICAgICAgICBzd2l0Y2ggKG5hbWUpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYXNlICJ1cGRhdGUiOg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IHZhbHVlLnNwbGl0KCIsIik7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlID0gdmFsdWUuZmlsdGVyKGZ1bmN0aW9uIChlKSB7IHJldHVybiBlOyB9KTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAiYnVmZmVyLnRpbWVvdXQiOg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IHBhcnNlRmxvYXQodmFsdWUpOw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgbmV3U2V0dGluZ3NbbmFtZV0gPSB2YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgIlNFTEVDVCI6DQogICAgICAgICAgICAgICAgbmFtZSA9IHNldHRpbmdzW2ldLm5hbWU7DQogICAgICAgICAgICAgICAgdmFsdWUgPSBzZXR0aW5nc1tpXS52YWx1ZTsNCiAgICAgICAgICAgICAgICAvLyBJZiB0aGUgdmFsdWUgaXMgYSBudW1iZXIsIHN0b3JlIGl0IGFzIGEgbnVtYmVyDQogICAgICAgICAgICAgICAgaWYgKGlzTmFOKHZhbHVlKSkgew0KICAgICAgICAgICAgICAgICAgICBuZXdTZXR0aW5nc1tuYW1lXSA9IHZhbHVlOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICAgICAgbmV3U2V0dGluZ3NbbmFtZV0gPSBwYXJzZUludCh2YWx1ZSk7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICB9DQogICAgfQ0KICAgIHZhciBkYXRhID0gbmV3IE9iamVjdCgpOw0KICAgIGRhdGFbInNldHRpbmdzIl0gPSBuZXdTZXR0aW5nczsNCiAgICB2YXIgc2VydmVyID0gbmV3IFNlcnZlcihjbWQpOw0KICAgIHNlcnZlci5yZXF1ZXN0KGRhdGEpOw0KfQ0K" - webUI["html/lang/en.json"] = "ew0KICAibWFpbk1lbnUiOg0KICB7DQogICAgIml0ZW0iOg0KICAgIHsNCiAgICAgICJwbGF5bGlzdCI6ICJQbGF5bGlzdCIsDQogICAgICAicG1zSUQiOiAiUE1TIElEIiwNCiAgICAgICJmaWx0ZXIiOiAiRmlsdGVyIiwNCiAgICAgICJ4bWx0diI6ICJYTUxUViIsDQogICAgICAibWFwcGluZyI6ICJNYXBwaW5nIiwNCiAgICAgICJ1c2VycyI6ICJVc2VycyIsDQogICAgICAic2V0dGluZ3MiOiAiU2V0dGluZ3MiLA0KICAgICAgImxvZyI6ICJMb2ciLA0KICAgICAgImxvZ291dCI6ICJMb2dvdXQiDQogICAgfSwNCiAgICAiaGVhZGxpbmUiOg0KICAgIHsNCiAgICAgICJwbGF5bGlzdCI6ICJMb2NhbCBvciByZW1vdGUgcGxheWxpc3RzIiwNCiAgICAgICJmaWx0ZXIiOiAiRmlsdGVyIHBsYXlsaXN0IiwNCiAgICAgICJ4bWx0diI6ICJMb2NhbCBvciByZW1vdGUgWE1MVFYgZmlsZXMiLA0KICAgICAgIm1hcHBpbmciOiAiTWFwIHBsYXlsaXN0IGNoYW5uZWxzIHRvIEVQRyBjaGFubmVscyIsDQogICAgICAidXNlcnMiOiAiVXNlciBtYW5hZ2VtZW50IiwNCiAgICAgICJzZXR0aW5ncyI6ICJTZXR0aW5ncyIsDQogICAgICAibG9nIjogIkxvZyIsDQogICAgICAibG9nb3V0IjogIkxvZ291dCINCiAgICB9DQogIH0sDQogICJjb25maXJtIjoNCiAgew0KICAgICJyZXN0b3JlIjogIkFsbCBkYXRhIHdpbGwgYmUgcmVwbGFjZWQgd2l0aCB0aG9zZSBmcm9tIHRoZSBiYWNrdXAuIFNob3VsZCB0aGUgZmlsZXMgYmUgcmVzdG9yZWQ/Ig0KICB9LA0KICAiYWxlcnQiOg0KICB7DQogICAgImZpbGVMb2FkaW5nRXJyb3IiOiAiRmlsZSBjb3VsZG4ndCBiZSBsb2FkZWQiLA0KICAgICJpbnZhbGlkQ2hhbm5lbE51bWJlciI6ICJJbnZhbGlkIGNoYW5uZWwgbnVtYmVyIiwNCiAgICAibWlzc2luZ0lucHV0IjogIk1pc3NpbmcgaW5wdXQiDQogIH0sDQogICJidXR0b24iOg0KICB7DQogICAgImJhY2siOiAiQmFjayIsDQogICAgImJhY2t1cCI6ICJCYWNrdXAiLA0KICAgICJidWxrRWRpdCI6ICJCdWxrIEVkaXQiLA0KICAgICJjYW5jZWwiOiAiQ2FuY2VsIiwNCiAgICAiZGVsZXRlIjogIkRlbGV0ZSIsDQogICAgImRvbmUiOiAiRG9uZSIsDQogICAgImxvZ2luIjogIkxvZ2luIiwNCiAgICAibmV3IjogIk5ldyIsDQogICAgIm5leHQiOiAiTmV4dCIsDQogICAgInJlc3RvcmUiOiAiUmVzdG9yZSIsDQogICAgInNhdmUiOiAiU2F2ZSIsDQogICAgInNlYXJjaCI6ICJTZWFyY2giLA0KICAgICJ1cGRhdGUiOiAiVXBkYXRlIiwNCiAgICAiY3JhZXRlQWNjb3VudCI6ICJDcmVhdGUgQWNjb3VudCIsDQogICAgInJlc2V0TG9ncyI6ICJSZXNldCBMb2dzIiwNCiAgICAidXBsb2FkTG9nbyI6ICJVcGxvYWQgTG9nbyINCiAgfSwNCiAgImZpbHRlciI6DQogIHsNCiAgICAidGFibGUiOg0KICAgIHsNCiAgICAgICJzdGFydGluZ0NoYW5uZWwiOiAiU3RhcnRpbmcgQ2guIE5vLiIsDQogICAgICAibmFtZSI6ICJGaWx0ZXIgTmFtZSIsDQogICAgICAidHlwZSI6ICJGaWx0ZXIgVHlwZSIsDQogICAgICAiZmlsdGVyIjogIkZpbHRlciINCiAgICB9LA0KICAgICJjdXN0b20iOiAiQ3VzdG9tIiwNCiAgICAiZ3JvdXAiOiAiTTNVIEdyb3VwIiwNCiAgICAibmFtZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIkZpbHRlciBOYW1lIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJGaWx0ZXIgbmFtZSIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgImRlc2NyaXB0aW9uIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiRGVzY3JpcHRpb24iLA0KICAgICAgInBsYWNlaG9sZGVyIjogIkRlc2NyaXB0aW9uIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAidHlwZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIlR5cGUiLA0KICAgICAgImdyb3VwVGl0bGUiOiAiR3JvdXAgVGl0bGUiLA0KICAgICAgImN1c3RvbUZpbHRlciI6ICJDdXN0b20gRmlsdGVyIg0KICAgIH0sDQogICAgImNhc2VTZW5zaXRpdmUiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJDYXNlIFNlbnNpdGl2ZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAiZmlsdGVyUnVsZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIkZpbHRlciBSdWxlIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJTcG9ydCB7SER9ICF7RVMsSVR9IiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAiZmlsdGVyR3JvdXAiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJHcm91cCBUaXRsZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJTZWxlY3QgYSBNM1UgZ3JvdXAuIChDb3VudGVyKTxicj5DaGFuZ2luZyB0aGUgZ3JvdXAgdGl0bGUgaW4gdGhlIE0zVSBpbnZhbGlkYXRlcyB0aGUgZmlsdGVyLiINCiAgICB9LA0KICAgICJpbmNsdWRlIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiSW5jbHVkZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiRkhELFVIRCIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiQ2hhbm5lbCBuYW1lIG11c3QgaW5jbHVkZS48YnI+KENvbW1hIHNlcGFyYXRlZCkgQ29tbWEgbWVhbnMgb3IiDQogICAgfSwNCiAgICAiZXhjbHVkZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIkV4Y2x1ZGUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIkVTLElUIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJDaGFubmVsIG5hbWUgbXVzdCBub3QgY29udGFpbi48YnI+KENvbW1hIHNlcGFyYXRlZCkgQ29tbWEgbWVhbnMgb3IiDQogICAgfSwNCiAgICAicHJlc2VydmVNYXBwaW5nIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiUHJlc2VydmUgRXhpc3RpbmcgTTNVPGJyPkNoYW5uZWwgTnVtYmVycyIsDQogICAgICAicGFsY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJQcmVzZXJ2ZSBleGlzdGluZyBNM1UgcGxheWxpc3QgY2hhbm5lbCBudW1iZXJzPyINCiAgICB9LA0KICAgICJzdGFydGluZ0NoYW5uZWwiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJTdGFydGluZyBDaGFubmVsIE51bWJlciIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAiZGVmYXVsdE1pc3NpbmdFUEciOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJGaWxsIE1pc3NpbmcgRVBHIERhdGEiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiV2hlbiB0aGVyZSBpcyBubyBtYXRjaGluZyBFUEcgZGF0YSBmb3IgY2hhbm5lbCwgPGJyPmF1dG9maWxsIHdpdGggeFRlVmUgZHVtbXkgRVBHIGRhdGE/Ig0KICAgIH0NCg0KICB9LA0KICAicGxheWxpc3QiOg0KICB7DQogICAgInRhYmxlIjoNCiAgICB7DQogICAgICAicGxheWxpc3QiOiAiUGxheWxpc3QiLA0KICAgICAgInR1bmVyIjogIlR1bmVyIiwNCiAgICAgICJsYXN0VXBkYXRlIjogIkxhc3QgVXBkYXRlIiwNCiAgICAgICJhdmFpbGFiaWxpdHkiOiAiQXZhaWxhYmlsaXR5IiwNCiAgICAgICJ0eXBlIjogIlR5cGUiLA0KICAgICAgInN0cmVhbXMiOiAiU3RyZWFtcyIsDQogICAgICAiZ3JvdXBUaXRsZSI6ICJncm91cC10aXRsZSIsDQogICAgICAidHZnSUQiOiAidHZnLWlkIiwNCiAgICAgICJ1bmlxdWVJRCI6ICJVbmlxdWUgSUQiDQogICAgfSwNCiAgICAicGxheWxpc3RUeXBlIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiUGxheWxpc3QgdHlwZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAidHlwZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIlR5cGUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgIm5hbWUiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJOYW1lIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJQbGF5bGlzdCBuYW1lIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAiZGVzY3JpcHRpb24iOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJEZXNjcmlwdGlvbiIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiRGVzY3JpcHRpb24iLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJmaWxlTTNVIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiTTNVIEZpbGUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIkZpbGUgcGF0aCBvciBVUkwgb2YgdGhlIE0zVSIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgImZpbGVIREhSIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiSERIb21lUnVuIElQIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJJUCBhZGRyZXNzIGFuZCBwb3J0ICgxOTIuMTY4LjEuMTA6NTAwNCkiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJ0dW5lciI6DQogICAgew0KICAgICAgInRpdGxlIjogIlR1bmVyIC8gU3RyZWFtcyIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJOdW1iZXIgb2YgcGFyYWxsZWwgY29ubmVjdGlvbnMgdGhhdCBjYW4gYmUgZXN0YWJsaXNoZWQgdG8gdGhlIHByb3ZpZGVyLiA8YnI+T25seSBhdmFpbGFibGUgd2l0aCBhY3RpdmF0ZWQgYnVmZmVyLjxicj5OZXcgc2V0dGluZ3Mgd2lsbCBvbmx5IGJlIGFwcGxpZWQgYWZ0ZXIgcXVpdHRpbmcgYWxsIHN0cmVhbXMuIg0KICAgIH0NCiAgfSwNCiAgInhtbHR2IjoNCiAgew0KICAgICJ0YWJsZSI6DQogICAgew0KICAgICAgImd1aWRlIjogIkd1aWRlIiwNCiAgICAgICJsYXN0VXBkYXRlIjogIkxhc3QgVXBkYXRlIiwNCiAgICAgICJhdmFpbGFiaWxpdHkiOiAiQXZhaWxhYmlsaXR5IiwNCiAgICAgICJjaGFubmVscyI6ICJDaGFubmVscyIsDQogICAgICAicHJvZ3JhbXMiOiAiUHJvZ3JhbXMiDQogICAgfSwNCiAgICAibmFtZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIk5hbWUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIkd1aWRlIG5hbWUiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJkZXNjcmlwdGlvbiI6DQogICAgew0KICAgICAgInRpdGxlIjogIkRlc2NyaXB0aW9uIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJEZXNjcmlwdGlvbiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgImZpbGVYTUxUViI6DQogICAgew0KICAgICAgInRpdGxlIjogIlhNTFRWIEZpbGUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIkZpbGUgcGF0aCBvciBVUkwgb2YgdGhlIFhNTFRWIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfQ0KICB9LA0KICAibWFwcGluZyI6DQogIHsNCiAgICAidGFibGUiOg0KICAgIHsNCiAgICAgICJjaE5vIjogIkNoLiBOby4iLA0KICAgICAgImxvZ28iOiAiTG9nbyIsDQogICAgICAiY2hhbm5lbE5hbWUiOiAiQ2hhbm5lbCBOYW1lIiwNCiAgICAgICJwbGF5bGlzdCI6ICJQbGF5bGlzdCIsDQogICAgICAiZ3JvdXBUaXRsZSI6ICJHcm91cCBUaXRsZSIsDQogICAgICAieG1sdHZGaWxlIjogIlhNTFRWIEZpbGUiLA0KICAgICAgInhtbHR2SUQiOiAiWE1MVFYgSUQiLA0KICAgICAgInRpbWVzaGlmdCI6ICJUaW1lc2hpZnQiDQogICAgfSwNCiAgICAiYWN0aXZlIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiQWN0aXZlIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJjaGFubmVsTmFtZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIkNoYW5uZWwgTmFtZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAiZGVzY3JpcHRpb24iOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJDaGFubmVsIERlc2NyaXB0aW9uIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJVc2VkIGJ5IHRoZSBEdW1teSBhcyBhbiBYTUwgZGVzY3JpcHRpb24iLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJ1cGRhdGVDaGFubmVsTmFtZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIlVwZGF0ZSBDaGFubmVsIE5hbWUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgInVwZGF0ZUNoYW5uZWxHcm91cCI6DQogICAgew0KICAgICAgInRpdGxlIjogIlVwZGF0ZSBDaGFubmVsIEdyb3VwIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIklmIGNoZWNrZWQsIHVzZSBncm91cCBmcm9tIHRoZSBkYXRhYmFzZSINCiAgICB9LA0KICAgICJjaGFubmVsTG9nbyI6DQogICAgew0KICAgICAgInRpdGxlIjogIkxvZ28gVVJMIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJ1cGRhdGVDaGFubmVsTG9nbyI6DQogICAgew0KICAgICAgInRpdGxlIjogIlVwZGF0ZSBDaGFubmVsIExvZ28iLA0KICAgICAgInBsYWNlaG9sZGVyIjogIiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgImVwZ0NhdGVnb3J5IjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiRVBHIENhdGVnb3J5IiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJtM3VHcm91cFRpdGxlIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiR3JvdXAgVGl0bGUgKHh0ZXZlLm0zdSkiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgInhtbHR2RmlsZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIlhNTFRWIEZpbGUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgInhtbHR2Q2hhbm5lbCI6DQogICAgew0KICAgICAgInRpdGxlIjogIlhNTFRWIENoYW5uZWwiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgInRpbWVzaGlmdCI6DQogICAgew0KICAgICAgInRpdGxlIjogIlRpbWVzaGlmdCIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiMCIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0NCiAgfSwNCiAgInVzZXJzIjoNCiAgew0KICAgICJ0YWJsZSI6DQogICAgew0KICAgICAgInVzZXJuYW1lIjogIlVzZXJuYW1lIiwNCiAgICAgICJwYXNzd29yZCI6ICJQYXNzd29yZCIsDQogICAgICAid2ViIjogIldFQiIsDQogICAgICAicG1zIjogIlBNUyIsDQogICAgICAibTN1IjogIk0zVSIsDQogICAgICAieG1sIjogIlhNTCIsDQogICAgICAiYXBpIjogIkFQSSINCiAgICB9LA0KICAgICJ1c2VybmFtZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIlVzZXJuYW1lIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJVc2VybmFtZSIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgInBhc3N3b3JkIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiUGFzc3dvcmQiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIlBhc3N3b3JkIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAiY29uZmlybSI6DQogICAgew0KICAgICAgInRpdGxlIjogIkNvbmZpcm0iLA0KICAgICAgInBsYWNlaG9sZGVyIjogIlBhc3N3b3JkIGNvbmZpcm0iLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJ3ZWIiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJXZWIgQWNjZXNzIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJwbXMiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJQTVMgQWNjZXNzIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJtM3UiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJNM1UgQWNjZXNzIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJ4bWwiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJYTUwgQWNjZXNzIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJhcGkiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJBUEkgQWNjZXNzIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9DQogIH0sDQogICJzZXR0aW5ncyI6DQogIHsNCiAgICAiY2F0ZWdvcnkiOg0KICAgIHsNCiAgICAgICJnZW5lcmFsIjogIkdlbmVyYWwiLA0KICAgICAgImZpbGVzIjogIkZpbGVzIiwNCiAgICAgICJzdHJlYW1pbmciOiAiU3RyZWFtaW5nIiwNCiAgICAgICJiYWNrdXAiOiAiQmFja3VwIiwNCiAgICAgICJhdXRoZW50aWNhdGlvbiI6ICJBdXRoZW50aWNhdGlvbiINCiAgICB9LA0KICAgICJ1cGRhdGUiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJTY2hlZHVsZSBmb3IgdXBkYXRpbmcgKFBsYXlsaXN0LCBYTUxUViwgQmFja3VwKSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiMDAwMCwxMDAwLDIwMDAiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIlRpbWUgaW4gMjQgaG91ciBmb3JtYXQgKDA4MDAgPSA4OjAwIGFtKS4gTW9yZSB0aW1lcyBjYW4gYmUgZW50ZXJlZCBjb21tYSBzZXBhcmF0ZWQuIExlYXZlIHRoaXMgZmllbGQgZW1wdHkgaWYgbm8gdXBkYXRlcyBhcmUgdG8gYmUgY2FycmllZCBvdXQuIg0KICAgIH0sDQogICAgImFwaSI6DQogICAgew0KICAgICAgInRpdGxlIjogIkFQSSBJbnRlcmZhY2UiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIlZpYSBBUEkgaW50ZXJmYWNlIGl0IGlzIHBvc3NpYmxlIHRvIHNlbmQgY29tbWFuZHMgdG8geFRlVmUuIEFQSSBkb2N1bWVudGF0aW9uIGlzIDxhIGhyZWY9J2h0dHBzOi8vZ2l0aHViLmNvbS94dGV2ZS1wcm9qZWN0L3hUZVZlLURvY3VtZW50YXRpb24vYmxvYi9tYXN0ZXIvZW4vY29uZmlndXJhdGlvbi5tZCNhcGknPmhlcmU8L2E+Ig0KICAgIH0sDQogICAgImVwZ1NvdXJjZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIkVQRyBTb3VyY2UiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIlBNUzo8YnI+LSBVc2UgRVBHIGRhdGEgZnJvbSBQbGV4IG9yIEVtYnkgPGJyPjxicj5YRVBHOjxicj4tIFVzZSBvZiBvbmUgb3IgbW9yZSBYTUxUViBmaWxlczxicj4tIENoYW5uZWwgbWFuYWdlbWVudDxicj4tIE0zVSAvIFhNTFRWIGV4cG9ydCAoSFRUUCBsaW5rIGZvciBJUFRWIGFwcHMpIg0KICAgIH0sDQogICAgInR1bmVyIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiTnVtYmVyIG9mIFR1bmVycyIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiTnVtYmVyIG9mIHBhcmFsbGVsIGNvbm5lY3Rpb25zIHRoYXQgY2FuIGJlIGVzdGFibGlzaGVkIHRvIHRoZSBwcm92aWRlci48YnI+QXZhaWxhYmxlIGZvcjogUGxleCwgRW1ieSAoSERIUiksIE0zVSAod2l0aCBhY3RpdmUgYnVmZmVyKS48YnI+QWZ0ZXIgYSBjaGFuZ2UsIHhUZVZlIG11c3QgYmUgZGVsZXRlIGluIHRoZSBQbGV4IC8gRW1ieSBEVlIgc2V0dGluZ3MgYW5kIHNldCB1cCBhZ2Fpbi4iDQogICAgfSwNCiAgICAidGxzTW9kZSI6IHsNCiAgICAgICJ0aXRsZSI6ICJUTFMgKEhUVFBTKSBtb2RlIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJDaGFuZ2VzIHdlYiBzZXJ2ZXIgcHJvdG9jb2wgdG8gSFRUUFMuIFJlcXVpcmVzIHh0ZXZlLmNydCBhbmQgeHRldmUua2V5IGluIHhUZVZlIGNvbmZpZyAvY2VydGlmaWNhdGVzIGRpcmVjdG9yeS4iDQogICAgfSwNCiAgICAiZmlsZXNVcGRhdGUiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJVcGRhdGVzIGFsbCBmaWxlcyBhdCBzdGFydHVwIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJVcGRhdGVzIGFsbCBwbGF5bGlzdHMsIHR1bmVyIGFuZCBYTUxUViBmaWxlcyBhdCBzdGFydHVwLiINCiAgICB9LA0KICAgICJjYWNoZUltYWdlcyI6DQogICAgew0KICAgICAgInRpdGxlIjogIkltYWdlIENhY2hpbmciLA0KICAgICAgImRlc2NyaXB0aW9uIjogIkFsbCBpbWFnZXMgZnJvbSB0aGUgWE1MVFYgZmlsZSBhcmUgY2FjaGVkLCBhbGxvd2luZyBmYXN0ZXIgcmVuZGVyaW5nIG9mIHRoZSBncmlkIGluIHRoZSBjbGllbnQuPGJyPkRvd25sb2FkaW5nIHRoZSBpbWFnZXMgbWF5IHRha2UgYSB3aGlsZSBhbmQgd2lsbCBiZSBkb25lIGluIHRoZSBiYWNrZ3JvdW5kLiINCiAgICB9LA0KICAgICJyZXBsYWNlRW1wdHlJbWFnZXMiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJSZXBsYWNlIG1pc3NpbmcgcHJvZ3JhbSBpbWFnZXMiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIklmIHRoZSBwb3N0ZXIgaW4gdGhlIFhNTFRWIHByb2dyYW0gaXMgbWlzc2luZywgdGhlIGNoYW5uZWwgbG9nbyB3aWxsIGJlIHVzZWQuIg0KICAgIH0sDQogICAgInh0ZXZlQXV0b1VwZGF0ZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIkF1dG9tYXRpYyB1cGRhdGUgb2YgeFRlVmUiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIklmIGEgbmV3IHZlcnNpb24gb2YgeFRlVmUgaXMgYXZhaWxhYmxlLCBpdCB3aWxsIGJlIGF1dG9tYXRpY2FsbHkgaW5zdGFsbGVkLiBUaGUgdXBkYXRlcyBhcmUgZG93bmxvYWRlZCBmcm9tIEdpdEh1Yi4iDQogICAgfSwNCiAgICAic3RyZWFtQnVmZmVyaW5nIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiU3RyZWFtIEJ1ZmZlciIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiRnVuY3Rpb25zIG9mIHRoZSBidWZmZXI6PGJyPi0gVGhlIHN0cmVhbSBpcyBwYXNzZWQgZnJvbSB4VGVWZSwgRkZtcGVnIG9yIFZMQyB0byBQbGV4LCBFbWJ5IG9yIE0zVSBQbGF5ZXI8YnI+LSBTbWFsbCBqZXJraW5nIG9mIHRoZSBzdHJlYW1zIGNhbiBiZSBjb21wZW5zYXRlZDxicj4tIEhMUyAvIE0zVTggc3VwcG9ydDxicj4tIFJUUCAvIFJUUFMgc3VwcG9ydCAob25seSBGRm1wZWcgb3IgVkxDKTxicj4tIFJlLXN0cmVhbWluZzxicj4tIFNlcGFyYXRlIHR1bmVyIGxpbWl0IGZvciBlYWNoIHBsYXlsaXN0IiwNCiAgICAgICJpbmZvX2ZhbHNlIjogIk5vIEJ1ZmZlciAoQ2xpZW50IGNvbm5lY3RzIHRvIHRoZSBzdHJlYW1pbmcgc2VydmVyKSIsDQogICAgICAiaW5mb194dGV2ZSI6ICJ4VGVWZSBjb25uZWN0cyB0byB0aGUgc3RyZWFtaW5nIHNlcnZlciIsDQogICAgICAiaW5mb19mZm1wZWciOiAiRkZtcGVnIGNvbm5lY3RzIHRvIHRoZSBzdHJlYW1pbmcgc2VydmVyIiwNCiAgICAgICJpbmZvX3ZsYyI6ICJWTEMgY29ubmVjdHMgdG8gdGhlIHN0cmVhbWluZyBzZXJ2ZXIiDQoNCiAgICB9LA0KICAgICJ1ZHB4eSI6DQogICAgew0KICAgICAgInRpdGxlIjogIlVEUHh5IGFkZHJlc3MiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIlRoZSBhZGRyZXNzIG9mIHlvdXIgVURQeHkgc2VydmVyLiBJZiBzZXQsIGFuZCB0aGUgY2hhbm5lbCBVUkxzIGluIHRoZSBtM3UgaXMgbXVsdGljYXN0LCB4VGVWZSB3aWxsIHJld3JpdGUgaXQgc28gdGhhdCBpdCBpcyBhY2Nlc3NlZCB2aWEgdGhlIFVEUHh5IHNlcnZpY2UuIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJob3N0OnBvcnQiDQogICAgfSwNCiAgICAiZmZtcGVnUGF0aCI6DQogICAgew0KICAgICAgInRpdGxlIjogIkZGbXBlZyBCaW5hcnkgUGF0aCIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiUGF0aCB0byBGRm1wZWcgYmluYXJ5LiIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiL3BhdGgvdG8vZmZtcGVnIg0KICAgIH0sDQogICAgImZmbXBlZ09wdGlvbnMiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJGRm1wZWcgT3B0aW9ucyIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiRkZtcGVnIG9wdGlvbnMuPGJyPk9ubHkgY2hhbmdlIGlmIHlvdSBrbm93IHdoYXQgeW91IGFyZSBkb2luZy48YnI+TGVhdmUgYmxhbmsgdG8gc2V0IGRlZmF1bHQgc2V0dGluZ3MuIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJMZWF2ZSBibGFuayB0byBzZXQgZGVmYXVsdCBzZXR0aW5ncyINCiAgICB9LA0KICAgICJ2bGNQYXRoIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiVkxDIC8gQ1ZMQyBCaW5hcnkgUGF0aCIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiUGF0aCB0byBWTEMgLyBDVkxDIGJpbmFyeS4iLA0KICAgICAgInBsYWNlaG9sZGVyIjogIi9wYXRoL3RvL2N2bGMiDQogICAgfSwNCiAgICAidmxjT3B0aW9ucyI6DQogICAgew0KICAgICAgInRpdGxlIjogIlZMQyAvIENWTEMgT3B0aW9ucyIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiVkxDIC8gQ1ZMQyBvcHRpb25zLjxicj5Pbmx5IGNoYW5nZSBpZiB5b3Uga25vdyB3aGF0IHlvdSBhcmUgZG9pbmcuPGJyPkxlYXZlIGJsYW5rIHRvIHNldCBkZWZhdWx0IHNldHRpbmdzLiIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiTGVhdmUgYmxhbmsgdG8gc2V0IGRlZmF1bHQgc2V0dGluZ3MiDQogICAgfSwNCiAgICAiYnVmZmVyU2l6ZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIkJ1ZmZlciBTaXplIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJCdWZmZXIgc2l6ZSBpbiBNQi48YnI+TTNVODogSWYgdGhlIFRTIHNlZ21lbnQgc21hbGxlciB0aGVuIHRoZSBidWZmZXIgc2l6ZSwgdGhlIGZpbGUgc2l6ZSBvZiB0aGUgc2VnbWVudCBpcyB1c2VkLiINCiAgICB9LA0KICAgICJidWZmZXJUaW1lb3V0IjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiVGltZW91dCBmb3IgbmV3IGNsaWVudCBjb25uZWN0aW9ucyIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiVGhlIHhUZVZlIGJ1ZmZlciB3YWl0cyB1bnRpbCBuZXcgY2xpZW50IGNvbm5lY3Rpb25zIGFyZSBlc3RhYmxpc2hlZC4gSGVscGZ1bCBmb3IgZmFzdCBjaGFubmVsIHN3aXRjaGluZy4gVmFsdWUgaW4gbWlsbGlzZWNvbmRzLiIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiMTAwIg0KICAgIH0sDQogICAgInVzZXJBZ2VudCI6DQogICAgew0KICAgICAgInRpdGxlIjogIlVzZXIgQWdlbnQiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIlVzZXIgQWdlbnQgZm9yIEhUVFAgcmVxdWVzdHMuIEZvciBldmVyeSBIVFRQIGNvbm5lY3Rpb24sIHRoaXMgdmFsdWUgaXMgdXNlZCBmb3IgdGhlIHVzZXIgYWdlbnQuIFNob3VsZCBvbmx5IGJlIGNoYW5nZWQgaWYgeFRlVmUgaXMgYmxvY2tlZC4iLA0KICAgICAgInBsYWNlaG9sZGVyIjogInhUZVZlIg0KICAgIH0sDQogICAgImJhY2t1cFBhdGgiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJMb2NhdGlvbiBmb3IgYXV0b21hdGljIGJhY2t1cHMiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIi9tbnQvZGF0YS9iYWNrdXAveHRldmUvIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJCZWZvcmUgYW55IHVwZGF0ZSBvZiB0aGUgcHJvdmlkZXIgZGF0YSBieSB0aGUgc2NoZWR1bGUsIHhUZVZlIGNyZWF0ZXMgYSBiYWNrdXAuIFRoZSBwYXRoIGZvciB0aGUgYXV0b21hdGljIGJhY2t1cHMgY2FuIGJlIGNoYW5nZWQuIHhUZVZlIHJlcXVpcmVzIHdyaXRlIHBlcm1pc3Npb24gZm9yIHRoaXMgZm9sZGVyLiINCiAgICB9LA0KICAgICJ0ZW1wUGF0aCI6DQogICAgew0KICAgICAgInRpdGxlIjogIkxvY2F0aW9uIGZvciB0aGUgdGVtcG9yYXJ5IGZpbGVzIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIvdG1wL3h0ZXZlLyIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiTG9jYXRpb24gZm9yIHRoZSBidWZmZXIgZmlsZXMuIg0KICAgIH0sDQogICAgImJhY2t1cEtlZXAiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJOdW1iZXIgb2YgYmFja3VwcyB0byBrZWVwIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJOdW1iZXIgb2YgYmFja3VwcyB0byBrZWVwLiBPbGRlciBiYWNrdXBzIGFyZSBhdXRvbWF0aWNhbGx5IGRlbGV0ZWQuIg0KICAgIH0sDQogICAgImF1dGhlbnRpY2F0aW9uV0VCIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiV0VCIEF1dGhlbnRpY2F0aW9uIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJBY2Nlc3MgdG8gdGhlIHdlYiBpbnRlcmZhY2Ugb25seSBwb3NzaWJsZSB3aXRoIGNyZWRlbnRpYWxzLiINCiAgICB9LA0KICAgICJhdXRoZW50aWNhdGlvblBNUyI6DQogICAgew0KICAgICAgInRpdGxlIjogIlBNUyBBdXRoZW50aWNhdGlvbiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiUGxleCByZXF1ZXN0cyBhcmUgb25seSBwb3NzaWJsZSB3aXRoIGF1dGhlbnRpY2F0aW9uLiA8YnI+PGI+V2FybmluZyEhITwvYj4gQWZ0ZXIgYWN0aXZhdGluZyB0aGlzIGZ1bmN0aW9uIHhUZVZlIG11c3QgYmUgZGVsZXRlIGluIHRoZSBQTVMgRFZSIHNldHRpbmdzIGFuZCBzZXQgdXAgYWdhaW4uIg0KICAgIH0sDQogICAgImF1dGhlbnRpY2F0aW9uTTNVIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiTTNVIEF1dGhlbnRpY2F0aW9uIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJEb3dubG9hZGluZyB0aGUgeHRldmUubTN1IGZpbGUgdmlhIGFuIEhUVFAgcmVxdWVzdCBpcyBvbmx5IHBvc3NpYmxlIHdpdGggYXV0aGVudGljYXRpb24uIg0KICAgIH0sDQogICAgImF1dGhlbnRpY2F0aW9uWE1MIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiWE1MIEF1dGhlbnRpY2F0aW9uIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJEb3dubG9hZGluZyB0aGUgeHRldmUueG1sIGZpbGUgdmlhIGFuIEhUVFAgcmVxdWVzdCBpcyBvbmx5IHBvc3NpYmxlIHdpdGggYXV0aGVudGljYXRpb24iDQogICAgfSwNCiAgICAiYXV0aGVudGljYXRpb25BUEkiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJBUEkgQXV0aGVudGljYXRpb24iLA0KICAgICAgImRlc2NyaXB0aW9uIjogIkFjY2VzcyB0byB0aGUgQVBJIGludGVyZmFjZSBpcyBvbmx5IHBvc3NpYmxlIHdpdGggYXV0aGVudGljYXRpb24uIg0KICAgIH0NCiAgfSwNCiAgIndpemFyZCI6DQogIHsNCiAgICAiZXBnU291cmNlIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiRVBHIFNvdXJjZSIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiUE1TOjxicj4tIFVzZSBFUEcgZGF0YSBmcm9tIFBsZXggb3IgRW1ieSA8YnI+PGJyPlhFUEc6PGJyPi0gVXNlIG9mIG9uZSBvciBtb3JlIFhNTFRWIGZpbGVzPGJyPi0gQ2hhbm5lbCBtYW5hZ2VtZW50PGJyPi0gTTNVIC8gWE1MVFYgZXhwb3J0IChIVFRQIGxpbmsgZm9yIElQVFYgYXBwcykiDQogICAgfSwNCiAgICAidHVuZXIiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJOdW1iZXIgb2YgdHVuZXJzIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJOdW1iZXIgb2YgcGFyYWxsZWwgY29ubmVjdGlvbnMgdGhhdCBjYW4gYmUgZXN0YWJsaXNoZWQgdG8gdGhlIHByb3ZpZGVyLjxicj5BdmFpbGFibGUgZm9yOiBQbGV4LCBFbWJ5IChIREhSKSwgTTNVICh3aXRoIGFjdGl2ZSBidWZmZXIpLjxicj5BZnRlciBhIGNoYW5nZSwgeFRlVmUgbXVzdCBiZSBkZWxldGUgaW4gdGhlIFBsZXggLyBFbWJ5IERWUiBzZXR0aW5ncyBhbmQgc2V0IHVwIGFnYWluLiINCiAgICB9LA0KICAgICJtM3UiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJNM1UgUGxheWxpc3QiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIkZpbGUgcGF0aCBvciBVUkwgb2YgdGhlIE0zVSIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiTG9jYWwgb3IgcmVtb3RlIHBsYXlsaXN0cyINCiAgICB9LA0KICAgICJ4bWx0diI6DQogICAgew0KICAgICAgInRpdGxlIjogIlhNTFRWIEZpbGUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIkZpbGUgcGF0aCBvciBVUkwgb2YgdGhlIFhNTFRWIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJMb2NhbCBvciByZW1vdGUgWE1MVFYgZmlsZSINCiAgICB9DQogIH0sDQogICJsb2dpbiI6DQogIHsNCiAgICAiZmFpbGVkIjogIlVzZXIgYXV0aGVudGljYXRpb24gZmFpbGVkIiwNCiAgICAiaGVhZGxpbmUiOiAiTG9naW4iLA0KICAgICJ1c2VybmFtZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIlVzZXJuYW1lIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJVc2VybmFtZSINCiAgICB9LA0KICAgICJwYXNzd29yZCI6DQogICAgew0KICAgICAgInRpdGxlIjogIlBhc3N3b3JkIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJQYXNzd29yZCINCiAgICB9DQogIH0sDQogICJhY2NvdW50IjoNCiAgew0KICAgICJmYWlsZWQiOiAiUGFzc3dvcmQgZG9lcyBub3QgbWF0Y2giLA0KICAgICJoZWFkbGluZSI6ICJDcmVhdGUgdXNlciBhY2NvdW50IiwNCiAgICAidXNlcm5hbWUiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJVc2VybmFtZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiVXNlcm5hbWUiDQogICAgfSwNCiAgICAicGFzc3dvcmQiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJQYXNzd29yZCIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiUGFzc3dvcmQiDQogICAgfSwNCiAgICAiY29uZmlybSI6DQogICAgew0KICAgICAgInRpdGxlIjogIkNvbmZpcm0iLA0KICAgICAgInBsYWNlaG9sZGVyIjogIkNvbmZpcm0iDQogICAgfQ0KICB9DQp9" + webUI["html/lang/en.json"] = "ew0KICAibWFpbk1lbnUiOg0KICB7DQogICAgIml0ZW0iOg0KICAgIHsNCiAgICAgICJwbGF5bGlzdCI6ICJQbGF5bGlzdCIsDQogICAgICAicG1zSUQiOiAiUE1TIElEIiwNCiAgICAgICJmaWx0ZXIiOiAiRmlsdGVyIiwNCiAgICAgICJ4bWx0diI6ICJYTUxUViIsDQogICAgICAibWFwcGluZyI6ICJNYXBwaW5nIiwNCiAgICAgICJ1c2VycyI6ICJVc2VycyIsDQogICAgICAic2V0dGluZ3MiOiAiU2V0dGluZ3MiLA0KICAgICAgImxvZyI6ICJMb2ciLA0KICAgICAgImxvZ291dCI6ICJMb2dvdXQiDQogICAgfSwNCiAgICAiaGVhZGxpbmUiOg0KICAgIHsNCiAgICAgICJwbGF5bGlzdCI6ICJMb2NhbCBvciByZW1vdGUgcGxheWxpc3RzIiwNCiAgICAgICJmaWx0ZXIiOiAiRmlsdGVyIHBsYXlsaXN0IiwNCiAgICAgICJ4bWx0diI6ICJMb2NhbCBvciByZW1vdGUgWE1MVFYgZmlsZXMiLA0KICAgICAgIm1hcHBpbmciOiAiTWFwIHBsYXlsaXN0IGNoYW5uZWxzIHRvIEVQRyBjaGFubmVscyIsDQogICAgICAidXNlcnMiOiAiVXNlciBtYW5hZ2VtZW50IiwNCiAgICAgICJzZXR0aW5ncyI6ICJTZXR0aW5ncyIsDQogICAgICAibG9nIjogIkxvZyIsDQogICAgICAibG9nb3V0IjogIkxvZ291dCINCiAgICB9DQogIH0sDQogICJjb25maXJtIjoNCiAgew0KICAgICJyZXN0b3JlIjogIkFsbCBkYXRhIHdpbGwgYmUgcmVwbGFjZWQgd2l0aCB0aG9zZSBmcm9tIHRoZSBiYWNrdXAuIFNob3VsZCB0aGUgZmlsZXMgYmUgcmVzdG9yZWQ/Ig0KICB9LA0KICAiYWxlcnQiOg0KICB7DQogICAgImZpbGVMb2FkaW5nRXJyb3IiOiAiRmlsZSBjb3VsZG4ndCBiZSBsb2FkZWQiLA0KICAgICJpbnZhbGlkQ2hhbm5lbE51bWJlciI6ICJJbnZhbGlkIGNoYW5uZWwgbnVtYmVyIiwNCiAgICAibWlzc2luZ0lucHV0IjogIk1pc3NpbmcgaW5wdXQiDQogIH0sDQogICJidXR0b24iOg0KICB7DQogICAgImJhY2siOiAiQmFjayIsDQogICAgImJhY2t1cCI6ICJCYWNrdXAiLA0KICAgICJidWxrRWRpdCI6ICJCdWxrIEVkaXQiLA0KICAgICJjYW5jZWwiOiAiQ2FuY2VsIiwNCiAgICAiZGVsZXRlIjogIkRlbGV0ZSIsDQogICAgImRvbmUiOiAiRG9uZSIsDQogICAgImxvZ2luIjogIkxvZ2luIiwNCiAgICAibmV3IjogIk5ldyIsDQogICAgIm5leHQiOiAiTmV4dCIsDQogICAgInJlc3RvcmUiOiAiUmVzdG9yZSIsDQogICAgInNhdmUiOiAiU2F2ZSIsDQogICAgInNlYXJjaCI6ICJTZWFyY2giLA0KICAgICJ1cGRhdGUiOiAiVXBkYXRlIiwNCiAgICAiY3JhZXRlQWNjb3VudCI6ICJDcmVhdGUgQWNjb3VudCIsDQogICAgInJlc2V0TG9ncyI6ICJSZXNldCBMb2dzIiwNCiAgICAidXBsb2FkTG9nbyI6ICJVcGxvYWQgTG9nbyINCiAgfSwNCiAgImZpbHRlciI6DQogIHsNCiAgICAidGFibGUiOg0KICAgIHsNCiAgICAgICJzdGFydGluZ0NoYW5uZWwiOiAiU3RhcnRpbmcgQ2guIE5vLiIsDQogICAgICAibmFtZSI6ICJGaWx0ZXIgTmFtZSIsDQogICAgICAidHlwZSI6ICJGaWx0ZXIgVHlwZSIsDQogICAgICAiZmlsdGVyIjogIkZpbHRlciINCiAgICB9LA0KICAgICJjdXN0b20iOiAiQ3VzdG9tIiwNCiAgICAiZ3JvdXAiOiAiTTNVIEdyb3VwIiwNCiAgICAibmFtZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIkZpbHRlciBOYW1lIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJGaWx0ZXIgbmFtZSIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgImRlc2NyaXB0aW9uIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiRGVzY3JpcHRpb24iLA0KICAgICAgInBsYWNlaG9sZGVyIjogIkRlc2NyaXB0aW9uIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAidHlwZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIlR5cGUiLA0KICAgICAgImdyb3VwVGl0bGUiOiAiR3JvdXAgVGl0bGUiLA0KICAgICAgImN1c3RvbUZpbHRlciI6ICJDdXN0b20gRmlsdGVyIg0KICAgIH0sDQogICAgImNhc2VTZW5zaXRpdmUiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJDYXNlIFNlbnNpdGl2ZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAiZmlsdGVyUnVsZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIkZpbHRlciBSdWxlIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJTcG9ydCB7SER9ICF7RVMsSVR9IiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAiZmlsdGVyR3JvdXAiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJHcm91cCBUaXRsZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJTZWxlY3QgYSBNM1UgZ3JvdXAuIChDb3VudGVyKTxicj5DaGFuZ2luZyB0aGUgZ3JvdXAgdGl0bGUgaW4gdGhlIE0zVSBpbnZhbGlkYXRlcyB0aGUgZmlsdGVyLiINCiAgICB9LA0KICAgICJpbmNsdWRlIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiSW5jbHVkZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiRkhELFVIRCIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiQ2hhbm5lbCBuYW1lIG11c3QgaW5jbHVkZS48YnI+KENvbW1hIHNlcGFyYXRlZCkgQ29tbWEgbWVhbnMgb3IiDQogICAgfSwNCiAgICAiZXhjbHVkZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIkV4Y2x1ZGUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIkVTLElUIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJDaGFubmVsIG5hbWUgbXVzdCBub3QgY29udGFpbi48YnI+KENvbW1hIHNlcGFyYXRlZCkgQ29tbWEgbWVhbnMgb3IiDQogICAgfSwNCiAgICAicHJlc2VydmVNYXBwaW5nIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiUHJlc2VydmUgRXhpc3RpbmcgTTNVPGJyPkNoYW5uZWwgTnVtYmVycyIsDQogICAgICAicGFsY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJQcmVzZXJ2ZSBleGlzdGluZyBNM1UgcGxheWxpc3QgY2hhbm5lbCBudW1iZXJzPyINCiAgICB9LA0KICAgICJzdGFydGluZ0NoYW5uZWwiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJTdGFydGluZyBDaGFubmVsIE51bWJlciIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAiZGVmYXVsdE1pc3NpbmdFUEciOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJGaWxsIE1pc3NpbmcgRVBHIERhdGEiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiV2hlbiB0aGVyZSBpcyBubyBtYXRjaGluZyBFUEcgZGF0YSBmb3IgY2hhbm5lbCwgPGJyPmF1dG9maWxsIHdpdGggeFRlVmUgZHVtbXkgRVBHIGRhdGE/Ig0KICAgIH0NCg0KICB9LA0KICAicGxheWxpc3QiOg0KICB7DQogICAgInRhYmxlIjoNCiAgICB7DQogICAgICAicGxheWxpc3QiOiAiUGxheWxpc3QiLA0KICAgICAgInR1bmVyIjogIlR1bmVyIiwNCiAgICAgICJsYXN0VXBkYXRlIjogIkxhc3QgVXBkYXRlIiwNCiAgICAgICJhdmFpbGFiaWxpdHkiOiAiQXZhaWxhYmlsaXR5IiwNCiAgICAgICJ0eXBlIjogIlR5cGUiLA0KICAgICAgInN0cmVhbXMiOiAiU3RyZWFtcyIsDQogICAgICAiZ3JvdXBUaXRsZSI6ICJncm91cC10aXRsZSIsDQogICAgICAidHZnSUQiOiAidHZnLWlkIiwNCiAgICAgICJ1bmlxdWVJRCI6ICJVbmlxdWUgSUQiDQogICAgfSwNCiAgICAicGxheWxpc3RUeXBlIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiUGxheWxpc3QgdHlwZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAidHlwZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIlR5cGUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgIm5hbWUiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJOYW1lIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJQbGF5bGlzdCBuYW1lIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAiZGVzY3JpcHRpb24iOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJEZXNjcmlwdGlvbiIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiRGVzY3JpcHRpb24iLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJmaWxlTTNVIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiTTNVIEZpbGUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIkZpbGUgcGF0aCBvciBVUkwgb2YgdGhlIE0zVSIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgImZpbGVIREhSIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiSERIb21lUnVuIElQIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJJUCBhZGRyZXNzIGFuZCBwb3J0ICgxOTIuMTY4LjEuMTA6NTAwNCkiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJ0dW5lciI6DQogICAgew0KICAgICAgInRpdGxlIjogIlR1bmVyIC8gU3RyZWFtcyIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJOdW1iZXIgb2YgcGFyYWxsZWwgY29ubmVjdGlvbnMgdGhhdCBjYW4gYmUgZXN0YWJsaXNoZWQgdG8gdGhlIHByb3ZpZGVyLiA8YnI+T25seSBhdmFpbGFibGUgd2l0aCBhY3RpdmF0ZWQgYnVmZmVyLjxicj5OZXcgc2V0dGluZ3Mgd2lsbCBvbmx5IGJlIGFwcGxpZWQgYWZ0ZXIgcXVpdHRpbmcgYWxsIHN0cmVhbXMuIg0KICAgIH0NCiAgfSwNCiAgInhtbHR2IjoNCiAgew0KICAgICJ0YWJsZSI6DQogICAgew0KICAgICAgImd1aWRlIjogIkd1aWRlIiwNCiAgICAgICJsYXN0VXBkYXRlIjogIkxhc3QgVXBkYXRlIiwNCiAgICAgICJhdmFpbGFiaWxpdHkiOiAiQXZhaWxhYmlsaXR5IiwNCiAgICAgICJjaGFubmVscyI6ICJDaGFubmVscyIsDQogICAgICAicHJvZ3JhbXMiOiAiUHJvZ3JhbXMiDQogICAgfSwNCiAgICAibmFtZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIk5hbWUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIkd1aWRlIG5hbWUiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJkZXNjcmlwdGlvbiI6DQogICAgew0KICAgICAgInRpdGxlIjogIkRlc2NyaXB0aW9uIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJEZXNjcmlwdGlvbiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgImZpbGVYTUxUViI6DQogICAgew0KICAgICAgInRpdGxlIjogIlhNTFRWIEZpbGUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIkZpbGUgcGF0aCBvciBVUkwgb2YgdGhlIFhNTFRWIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfQ0KICB9LA0KICAibWFwcGluZyI6DQogIHsNCiAgICAidGFibGUiOg0KICAgIHsNCiAgICAgICJjaE5vIjogIkNoLiBOby4iLA0KICAgICAgImxvZ28iOiAiTG9nbyIsDQogICAgICAiY2hhbm5lbE5hbWUiOiAiQ2hhbm5lbCBOYW1lIiwNCiAgICAgICJwbGF5bGlzdCI6ICJQbGF5bGlzdCIsDQogICAgICAiZ3JvdXBUaXRsZSI6ICJHcm91cCBUaXRsZSIsDQogICAgICAieG1sdHZGaWxlIjogIlhNTFRWIEZpbGUiLA0KICAgICAgInhtbHR2SUQiOiAiWE1MVFYgSUQiLA0KICAgICAgInRpbWVzaGlmdCI6ICJUaW1lc2hpZnQiDQogICAgfSwNCiAgICAiYWN0aXZlIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiQWN0aXZlIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJjaGFubmVsTmFtZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIkNoYW5uZWwgTmFtZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAiZGVzY3JpcHRpb24iOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJDaGFubmVsIERlc2NyaXB0aW9uIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJVc2VkIGJ5IHRoZSBEdW1teSBhcyBhbiBYTUwgZGVzY3JpcHRpb24iLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJ1cGRhdGVDaGFubmVsTmFtZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIlVwZGF0ZSBDaGFubmVsIE5hbWUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgInVwZGF0ZUNoYW5uZWxHcm91cCI6DQogICAgew0KICAgICAgInRpdGxlIjogIlVwZGF0ZSBDaGFubmVsIEdyb3VwIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIklmIGNoZWNrZWQsIHVzZSBncm91cCBmcm9tIHRoZSBkYXRhYmFzZSINCiAgICB9LA0KICAgICJjaGFubmVsTG9nbyI6DQogICAgew0KICAgICAgInRpdGxlIjogIkxvZ28gVVJMIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJ1cGRhdGVDaGFubmVsTG9nbyI6DQogICAgew0KICAgICAgInRpdGxlIjogIlVwZGF0ZSBDaGFubmVsIExvZ28iLA0KICAgICAgInBsYWNlaG9sZGVyIjogIiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgImVwZ0NhdGVnb3J5IjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiRVBHIENhdGVnb3J5IiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJtM3VHcm91cFRpdGxlIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiR3JvdXAgVGl0bGUgKHh0ZXZlLm0zdSkiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgInhtbHR2RmlsZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIlhNTFRWIEZpbGUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgInhtbHR2Q2hhbm5lbCI6DQogICAgew0KICAgICAgInRpdGxlIjogIlhNTFRWIENoYW5uZWwiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgInRpbWVzaGlmdCI6DQogICAgew0KICAgICAgInRpdGxlIjogIlRpbWVzaGlmdCIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiMCIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0NCiAgfSwNCiAgInVzZXJzIjoNCiAgew0KICAgICJ0YWJsZSI6DQogICAgew0KICAgICAgInVzZXJuYW1lIjogIlVzZXJuYW1lIiwNCiAgICAgICJwYXNzd29yZCI6ICJQYXNzd29yZCIsDQogICAgICAid2ViIjogIldFQiIsDQogICAgICAicG1zIjogIlBNUyIsDQogICAgICAibTN1IjogIk0zVSIsDQogICAgICAieG1sIjogIlhNTCIsDQogICAgICAiYXBpIjogIkFQSSINCiAgICB9LA0KICAgICJ1c2VybmFtZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIlVzZXJuYW1lIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJVc2VybmFtZSIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgInBhc3N3b3JkIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiUGFzc3dvcmQiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIlBhc3N3b3JkIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAiY29uZmlybSI6DQogICAgew0KICAgICAgInRpdGxlIjogIkNvbmZpcm0iLA0KICAgICAgInBsYWNlaG9sZGVyIjogIlBhc3N3b3JkIGNvbmZpcm0iLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJ3ZWIiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJXZWIgQWNjZXNzIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJwbXMiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJQTVMgQWNjZXNzIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJtM3UiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJNM1UgQWNjZXNzIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJ4bWwiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJYTUwgQWNjZXNzIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJhcGkiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJBUEkgQWNjZXNzIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9DQogIH0sDQogICJzZXR0aW5ncyI6DQogIHsNCiAgICAiY2F0ZWdvcnkiOg0KICAgIHsNCiAgICAgICJnZW5lcmFsIjogIkdlbmVyYWwiLA0KICAgICAgImZpbGVzIjogIkZpbGVzIiwNCiAgICAgICJzdHJlYW1pbmciOiAiU3RyZWFtaW5nIiwNCiAgICAgICJiYWNrdXAiOiAiQmFja3VwIiwNCiAgICAgICJhdXRoZW50aWNhdGlvbiI6ICJBdXRoZW50aWNhdGlvbiINCiAgICB9LA0KICAgICJ1cGRhdGUiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJTY2hlZHVsZSBmb3IgdXBkYXRpbmcgKFBsYXlsaXN0LCBYTUxUViwgQmFja3VwKSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiMDAwMCwxMDAwLDIwMDAiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIlRpbWUgaW4gMjQgaG91ciBmb3JtYXQgKDA4MDAgPSA4OjAwIGFtKS4gTW9yZSB0aW1lcyBjYW4gYmUgZW50ZXJlZCBjb21tYSBzZXBhcmF0ZWQuIExlYXZlIHRoaXMgZmllbGQgZW1wdHkgaWYgbm8gdXBkYXRlcyBhcmUgdG8gYmUgY2FycmllZCBvdXQuIg0KICAgIH0sDQogICAgImFwaSI6DQogICAgew0KICAgICAgInRpdGxlIjogIkFQSSBJbnRlcmZhY2UiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIlZpYSBBUEkgaW50ZXJmYWNlIGl0IGlzIHBvc3NpYmxlIHRvIHNlbmQgY29tbWFuZHMgdG8geFRlVmUuIEFQSSBkb2N1bWVudGF0aW9uIGlzIDxhIGhyZWY9J2h0dHBzOi8vZ2l0aHViLmNvbS94dGV2ZS1wcm9qZWN0L3hUZVZlLURvY3VtZW50YXRpb24vYmxvYi9tYXN0ZXIvZW4vY29uZmlndXJhdGlvbi5tZCNhcGknPmhlcmU8L2E+Ig0KICAgIH0sDQogICAgImVwZ1NvdXJjZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIkVQRyBTb3VyY2UiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIlBNUzo8YnI+LSBVc2UgRVBHIGRhdGEgZnJvbSBQbGV4IG9yIEVtYnkgPGJyPjxicj5YRVBHOjxicj4tIFVzZSBvZiBvbmUgb3IgbW9yZSBYTUxUViBmaWxlczxicj4tIENoYW5uZWwgbWFuYWdlbWVudDxicj4tIE0zVSAvIFhNTFRWIGV4cG9ydCAoSFRUUCBsaW5rIGZvciBJUFRWIGFwcHMpIg0KICAgIH0sDQogICAgInR1bmVyIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiTnVtYmVyIG9mIFR1bmVycyIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiTnVtYmVyIG9mIHBhcmFsbGVsIGNvbm5lY3Rpb25zIHRoYXQgY2FuIGJlIGVzdGFibGlzaGVkIHRvIHRoZSBwcm92aWRlci48YnI+QXZhaWxhYmxlIGZvcjogUGxleCwgRW1ieSAoSERIUiksIE0zVSAod2l0aCBhY3RpdmUgYnVmZmVyKS48YnI+QWZ0ZXIgYSBjaGFuZ2UsIHhUZVZlIG11c3QgYmUgZGVsZXRlIGluIHRoZSBQbGV4IC8gRW1ieSBEVlIgc2V0dGluZ3MgYW5kIHNldCB1cCBhZ2Fpbi4iDQogICAgfSwNCiAgICAidGxzTW9kZSI6IHsNCiAgICAgICJ0aXRsZSI6ICJUTFMgKEhUVFBTKSBtb2RlIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJDaGFuZ2VzIHdlYiBzZXJ2ZXIgcHJvdG9jb2wgdG8gSFRUUFMuPGJyPkZvciBkZXRhaWxzLCBzZWUgPGE+aHR0cHM6Ly9naXRodWIuY29tL1NDUDAwMi94VGVWZSN0bHMtbW9kZTwvYT4iDQogICAgfSwNCiAgICAiZmlsZXNVcGRhdGUiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJVcGRhdGVzIGFsbCBmaWxlcyBhdCBzdGFydHVwIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJVcGRhdGVzIGFsbCBwbGF5bGlzdHMsIHR1bmVyIGFuZCBYTUxUViBmaWxlcyBhdCBzdGFydHVwLiINCiAgICB9LA0KICAgICJjYWNoZUltYWdlcyI6DQogICAgew0KICAgICAgInRpdGxlIjogIkltYWdlIENhY2hpbmciLA0KICAgICAgImRlc2NyaXB0aW9uIjogIkFsbCBpbWFnZXMgZnJvbSB0aGUgWE1MVFYgZmlsZSBhcmUgY2FjaGVkLCBhbGxvd2luZyBmYXN0ZXIgcmVuZGVyaW5nIG9mIHRoZSBncmlkIGluIHRoZSBjbGllbnQuPGJyPkRvd25sb2FkaW5nIHRoZSBpbWFnZXMgbWF5IHRha2UgYSB3aGlsZSBhbmQgd2lsbCBiZSBkb25lIGluIHRoZSBiYWNrZ3JvdW5kLiINCiAgICB9LA0KICAgICJyZXBsYWNlRW1wdHlJbWFnZXMiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJSZXBsYWNlIG1pc3NpbmcgcHJvZ3JhbSBpbWFnZXMiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIklmIHRoZSBwb3N0ZXIgaW4gdGhlIFhNTFRWIHByb2dyYW0gaXMgbWlzc2luZywgdGhlIGNoYW5uZWwgbG9nbyB3aWxsIGJlIHVzZWQuIg0KICAgIH0sDQogICAgInh0ZXZlQXV0b1VwZGF0ZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIkF1dG9tYXRpYyB1cGRhdGUgb2YgeFRlVmUiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIklmIGEgbmV3IHZlcnNpb24gb2YgeFRlVmUgaXMgYXZhaWxhYmxlLCBpdCB3aWxsIGJlIGF1dG9tYXRpY2FsbHkgaW5zdGFsbGVkLiBUaGUgdXBkYXRlcyBhcmUgZG93bmxvYWRlZCBmcm9tIEdpdEh1Yi4iDQogICAgfSwNCiAgICAic3RyZWFtQnVmZmVyaW5nIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiU3RyZWFtIEJ1ZmZlciIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiRnVuY3Rpb25zIG9mIHRoZSBidWZmZXI6PGJyPi0gVGhlIHN0cmVhbSBpcyBwYXNzZWQgZnJvbSB4VGVWZSwgRkZtcGVnIG9yIFZMQyB0byBQbGV4LCBFbWJ5IG9yIE0zVSBQbGF5ZXI8YnI+LSBTbWFsbCBqZXJraW5nIG9mIHRoZSBzdHJlYW1zIGNhbiBiZSBjb21wZW5zYXRlZDxicj4tIEhMUyAvIE0zVTggc3VwcG9ydDxicj4tIFJUUCAvIFJUUFMgc3VwcG9ydCAob25seSBGRm1wZWcgb3IgVkxDKTxicj4tIFJlLXN0cmVhbWluZzxicj4tIFNlcGFyYXRlIHR1bmVyIGxpbWl0IGZvciBlYWNoIHBsYXlsaXN0IiwNCiAgICAgICJpbmZvX2ZhbHNlIjogIk5vIEJ1ZmZlciAoQ2xpZW50IGNvbm5lY3RzIHRvIHRoZSBzdHJlYW1pbmcgc2VydmVyKSIsDQogICAgICAiaW5mb194dGV2ZSI6ICJ4VGVWZSBjb25uZWN0cyB0byB0aGUgc3RyZWFtaW5nIHNlcnZlciIsDQogICAgICAiaW5mb19mZm1wZWciOiAiRkZtcGVnIGNvbm5lY3RzIHRvIHRoZSBzdHJlYW1pbmcgc2VydmVyIiwNCiAgICAgICJpbmZvX3ZsYyI6ICJWTEMgY29ubmVjdHMgdG8gdGhlIHN0cmVhbWluZyBzZXJ2ZXIiDQoNCiAgICB9LA0KICAgICJ1ZHB4eSI6DQogICAgew0KICAgICAgInRpdGxlIjogIlVEUHh5IGFkZHJlc3MiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIlRoZSBhZGRyZXNzIG9mIHlvdXIgVURQeHkgc2VydmVyLiBJZiBzZXQsIGFuZCB0aGUgY2hhbm5lbCBVUkxzIGluIHRoZSBtM3UgaXMgbXVsdGljYXN0LCB4VGVWZSB3aWxsIHJld3JpdGUgaXQgc28gdGhhdCBpdCBpcyBhY2Nlc3NlZCB2aWEgdGhlIFVEUHh5IHNlcnZpY2UuIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJob3N0OnBvcnQiDQogICAgfSwNCiAgICAiZmZtcGVnUGF0aCI6DQogICAgew0KICAgICAgInRpdGxlIjogIkZGbXBlZyBCaW5hcnkgUGF0aCIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiUGF0aCB0byBGRm1wZWcgYmluYXJ5LiIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiL3BhdGgvdG8vZmZtcGVnIg0KICAgIH0sDQogICAgImZmbXBlZ09wdGlvbnMiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJGRm1wZWcgT3B0aW9ucyIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiRkZtcGVnIG9wdGlvbnMuPGJyPk9ubHkgY2hhbmdlIGlmIHlvdSBrbm93IHdoYXQgeW91IGFyZSBkb2luZy48YnI+TGVhdmUgYmxhbmsgdG8gc2V0IGRlZmF1bHQgc2V0dGluZ3MuIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJMZWF2ZSBibGFuayB0byBzZXQgZGVmYXVsdCBzZXR0aW5ncyINCiAgICB9LA0KICAgICJ2bGNQYXRoIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiVkxDIC8gQ1ZMQyBCaW5hcnkgUGF0aCIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiUGF0aCB0byBWTEMgLyBDVkxDIGJpbmFyeS4iLA0KICAgICAgInBsYWNlaG9sZGVyIjogIi9wYXRoL3RvL2N2bGMiDQogICAgfSwNCiAgICAidmxjT3B0aW9ucyI6DQogICAgew0KICAgICAgInRpdGxlIjogIlZMQyAvIENWTEMgT3B0aW9ucyIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiVkxDIC8gQ1ZMQyBvcHRpb25zLjxicj5Pbmx5IGNoYW5nZSBpZiB5b3Uga25vdyB3aGF0IHlvdSBhcmUgZG9pbmcuPGJyPkxlYXZlIGJsYW5rIHRvIHNldCBkZWZhdWx0IHNldHRpbmdzLiIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiTGVhdmUgYmxhbmsgdG8gc2V0IGRlZmF1bHQgc2V0dGluZ3MiDQogICAgfSwNCiAgICAiYnVmZmVyU2l6ZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIkJ1ZmZlciBTaXplIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJCdWZmZXIgc2l6ZSBpbiBNQi48YnI+TTNVODogSWYgdGhlIFRTIHNlZ21lbnQgc21hbGxlciB0aGVuIHRoZSBidWZmZXIgc2l6ZSwgdGhlIGZpbGUgc2l6ZSBvZiB0aGUgc2VnbWVudCBpcyB1c2VkLiINCiAgICB9LA0KICAgICJidWZmZXJUaW1lb3V0IjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiVGltZW91dCBmb3IgbmV3IGNsaWVudCBjb25uZWN0aW9ucyIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiVGhlIHhUZVZlIGJ1ZmZlciB3YWl0cyB1bnRpbCBuZXcgY2xpZW50IGNvbm5lY3Rpb25zIGFyZSBlc3RhYmxpc2hlZC4gSGVscGZ1bCBmb3IgZmFzdCBjaGFubmVsIHN3aXRjaGluZy4gVmFsdWUgaW4gbWlsbGlzZWNvbmRzLiIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiMTAwIg0KICAgIH0sDQogICAgInVzZXJBZ2VudCI6DQogICAgew0KICAgICAgInRpdGxlIjogIlVzZXIgQWdlbnQiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIlVzZXIgQWdlbnQgZm9yIEhUVFAgcmVxdWVzdHMuIEZvciBldmVyeSBIVFRQIGNvbm5lY3Rpb24sIHRoaXMgdmFsdWUgaXMgdXNlZCBmb3IgdGhlIHVzZXIgYWdlbnQuIFNob3VsZCBvbmx5IGJlIGNoYW5nZWQgaWYgeFRlVmUgaXMgYmxvY2tlZC4iLA0KICAgICAgInBsYWNlaG9sZGVyIjogInhUZVZlIg0KICAgIH0sDQogICAgImJhY2t1cFBhdGgiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJMb2NhdGlvbiBmb3IgYXV0b21hdGljIGJhY2t1cHMiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIi9tbnQvZGF0YS9iYWNrdXAveHRldmUvIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJCZWZvcmUgYW55IHVwZGF0ZSBvZiB0aGUgcHJvdmlkZXIgZGF0YSBieSB0aGUgc2NoZWR1bGUsIHhUZVZlIGNyZWF0ZXMgYSBiYWNrdXAuIFRoZSBwYXRoIGZvciB0aGUgYXV0b21hdGljIGJhY2t1cHMgY2FuIGJlIGNoYW5nZWQuIHhUZVZlIHJlcXVpcmVzIHdyaXRlIHBlcm1pc3Npb24gZm9yIHRoaXMgZm9sZGVyLiINCiAgICB9LA0KICAgICJ0ZW1wUGF0aCI6DQogICAgew0KICAgICAgInRpdGxlIjogIkxvY2F0aW9uIGZvciB0aGUgdGVtcG9yYXJ5IGZpbGVzIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIvdG1wL3h0ZXZlLyIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiTG9jYXRpb24gZm9yIHRoZSBidWZmZXIgZmlsZXMuIg0KICAgIH0sDQogICAgImJhY2t1cEtlZXAiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJOdW1iZXIgb2YgYmFja3VwcyB0byBrZWVwIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJOdW1iZXIgb2YgYmFja3VwcyB0byBrZWVwLiBPbGRlciBiYWNrdXBzIGFyZSBhdXRvbWF0aWNhbGx5IGRlbGV0ZWQuIg0KICAgIH0sDQogICAgImF1dGhlbnRpY2F0aW9uV0VCIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiV0VCIEF1dGhlbnRpY2F0aW9uIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJBY2Nlc3MgdG8gdGhlIHdlYiBpbnRlcmZhY2Ugb25seSBwb3NzaWJsZSB3aXRoIGNyZWRlbnRpYWxzLiINCiAgICB9LA0KICAgICJhdXRoZW50aWNhdGlvblBNUyI6DQogICAgew0KICAgICAgInRpdGxlIjogIlBNUyBBdXRoZW50aWNhdGlvbiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiUGxleCByZXF1ZXN0cyBhcmUgb25seSBwb3NzaWJsZSB3aXRoIGF1dGhlbnRpY2F0aW9uLiA8YnI+PGI+V2FybmluZyEhITwvYj4gQWZ0ZXIgYWN0aXZhdGluZyB0aGlzIGZ1bmN0aW9uIHhUZVZlIG11c3QgYmUgZGVsZXRlIGluIHRoZSBQTVMgRFZSIHNldHRpbmdzIGFuZCBzZXQgdXAgYWdhaW4uIg0KICAgIH0sDQogICAgImF1dGhlbnRpY2F0aW9uTTNVIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiTTNVIEF1dGhlbnRpY2F0aW9uIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJEb3dubG9hZGluZyB0aGUgeHRldmUubTN1IGZpbGUgdmlhIGFuIEhUVFAgcmVxdWVzdCBpcyBvbmx5IHBvc3NpYmxlIHdpdGggYXV0aGVudGljYXRpb24uIg0KICAgIH0sDQogICAgImF1dGhlbnRpY2F0aW9uWE1MIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiWE1MIEF1dGhlbnRpY2F0aW9uIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJEb3dubG9hZGluZyB0aGUgeHRldmUueG1sIGZpbGUgdmlhIGFuIEhUVFAgcmVxdWVzdCBpcyBvbmx5IHBvc3NpYmxlIHdpdGggYXV0aGVudGljYXRpb24iDQogICAgfSwNCiAgICAiYXV0aGVudGljYXRpb25BUEkiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJBUEkgQXV0aGVudGljYXRpb24iLA0KICAgICAgImRlc2NyaXB0aW9uIjogIkFjY2VzcyB0byB0aGUgQVBJIGludGVyZmFjZSBpcyBvbmx5IHBvc3NpYmxlIHdpdGggYXV0aGVudGljYXRpb24uIg0KICAgIH0NCiAgfSwNCiAgIndpemFyZCI6DQogIHsNCiAgICAiZXBnU291cmNlIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiRVBHIFNvdXJjZSIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiUE1TOjxicj4tIFVzZSBFUEcgZGF0YSBmcm9tIFBsZXggb3IgRW1ieSA8YnI+PGJyPlhFUEc6PGJyPi0gVXNlIG9mIG9uZSBvciBtb3JlIFhNTFRWIGZpbGVzPGJyPi0gQ2hhbm5lbCBtYW5hZ2VtZW50PGJyPi0gTTNVIC8gWE1MVFYgZXhwb3J0IChIVFRQIGxpbmsgZm9yIElQVFYgYXBwcykiDQogICAgfSwNCiAgICAidHVuZXIiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJOdW1iZXIgb2YgdHVuZXJzIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJOdW1iZXIgb2YgcGFyYWxsZWwgY29ubmVjdGlvbnMgdGhhdCBjYW4gYmUgZXN0YWJsaXNoZWQgdG8gdGhlIHByb3ZpZGVyLjxicj5BdmFpbGFibGUgZm9yOiBQbGV4LCBFbWJ5IChIREhSKSwgTTNVICh3aXRoIGFjdGl2ZSBidWZmZXIpLjxicj5BZnRlciBhIGNoYW5nZSwgeFRlVmUgbXVzdCBiZSBkZWxldGUgaW4gdGhlIFBsZXggLyBFbWJ5IERWUiBzZXR0aW5ncyBhbmQgc2V0IHVwIGFnYWluLiINCiAgICB9LA0KICAgICJtM3UiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJNM1UgUGxheWxpc3QiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIkZpbGUgcGF0aCBvciBVUkwgb2YgdGhlIE0zVSIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiTG9jYWwgb3IgcmVtb3RlIHBsYXlsaXN0cyINCiAgICB9LA0KICAgICJ4bWx0diI6DQogICAgew0KICAgICAgInRpdGxlIjogIlhNTFRWIEZpbGUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIkZpbGUgcGF0aCBvciBVUkwgb2YgdGhlIFhNTFRWIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJMb2NhbCBvciByZW1vdGUgWE1MVFYgZmlsZSINCiAgICB9DQogIH0sDQogICJsb2dpbiI6DQogIHsNCiAgICAiZmFpbGVkIjogIlVzZXIgYXV0aGVudGljYXRpb24gZmFpbGVkIiwNCiAgICAiaGVhZGxpbmUiOiAiTG9naW4iLA0KICAgICJ1c2VybmFtZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIlVzZXJuYW1lIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJVc2VybmFtZSINCiAgICB9LA0KICAgICJwYXNzd29yZCI6DQogICAgew0KICAgICAgInRpdGxlIjogIlBhc3N3b3JkIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJQYXNzd29yZCINCiAgICB9DQogIH0sDQogICJhY2NvdW50IjoNCiAgew0KICAgICJmYWlsZWQiOiAiUGFzc3dvcmQgZG9lcyBub3QgbWF0Y2giLA0KICAgICJoZWFkbGluZSI6ICJDcmVhdGUgdXNlciBhY2NvdW50IiwNCiAgICAidXNlcm5hbWUiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJVc2VybmFtZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiVXNlcm5hbWUiDQogICAgfSwNCiAgICAicGFzc3dvcmQiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJQYXNzd29yZCIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiUGFzc3dvcmQiDQogICAgfSwNCiAgICAiY29uZmlybSI6DQogICAgew0KICAgICAgInRpdGxlIjogIkNvbmZpcm0iLA0KICAgICAgInBsYWNlaG9sZGVyIjogIkNvbmZpcm0iDQogICAgfQ0KICB9DQp9" webUI["html/login.html"] = "PCFkb2N0eXBlIGh0bWw+DQo8aHRtbD4NCiAgPGhlYWQ+DQogICAgPG1ldGEgY2hhcnNldD0idXRmLTgiPg0KICAgIDxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgsIGluaXRpYWwtc2NhbGU9MS4wIiAvPiANCiAgICA8dGl0bGU+eFRlVmU8L3RpdGxlPg0KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iY3NzL3NjcmVlbi5jc3MiIHR5cGU9InRleHQvY3NzIj4NCiAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9ImNzcy9iYXNlLmNzcyIgdHlwZT0idGV4dC9jc3MiPg0KICAgIDxzY3JpcHQgbGFuZ3VhZ2U9ImphdmFzY3JpcHQiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJqcy9uZXR3b3JrX3RzLmpzIj48L3NjcmlwdD4NCiAgICA8c2NyaXB0IGxhbmd1YWdlPSJqYXZhc2NyaXB0IiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ianMvYXV0aGVudGljYXRpb25fdHMuanMiPjwvc2NyaXB0Pg0KICA8L2hlYWQ+DQoNCiAgICA8Ym9keT4NCiAgICAgICAgICANCiAgICAgIDxkaXYgaWQ9ImhlYWRlciIgY2xhc3M9ImltZ0NlbnRlciI+PC9kaXY+DQoNCiAgICAgIDxkaXYgaWQ9ImJveCI+DQoNCiAgICAgICAgPGRpdiBpZD0iaGVhZGxpbmUiPg0KICAgICAgICAgIDxoMSBpZD0iaGVhZC10ZXh0IiBjbGFzcz0iY2VudGVyIj57ey5sb2dpbi5oZWFkbGluZX19PC9oMT4NCiAgICAgICAgPC9kaXY+DQoNCiAgICAgICAgPHAgaWQ9ImVyciIgY2xhc3M9ImVycm9yTXNnIGNlbnRlciI+e3suYXV0aGVudGljYXRpb25FcnJ9fTwvcD4NCg0KICAgICAgICA8ZGl2IGlkPSJjb250ZW50Ij4NCg0KICAgICAgICAgICAgPGZvcm0gaWQ9ImF1dGhlbnRpY2F0aW9uIiBhY3Rpb249IiIgbWV0aG9kPSJwb3N0Ij4NCg0KICAgICAgICAgICAgICA8aDU+e3subG9naW4udXNlcm5hbWUudGl0bGV9fTo8L2g1Pg0KICAgICAgICAgICAgICA8aW5wdXQgaWQ9InVzZXJuYW1lIiB0eXBlPSJ0ZXh0IiBuYW1lPSJ1c2VybmFtZSIgcGxhY2Vob2xkZXI9IlVzZXJuYW1lIiB2YWx1ZT0iIj4NCiAgICAgICAgICAgICAgPGg1Pnt7LmxvZ2luLnBhc3N3b3JkLnRpdGxlfX06PC9oNT4NCiAgICAgICAgICAgICAgPGlucHV0IGlkPSJwYXNzd29yZCIgdHlwZT0icGFzc3dvcmQiIG5hbWU9InBhc3N3b3JkIiBwbGFjZWhvbGRlcj0iUGFzc3dvcmQiIHZhbHVlPSIiPg0KDQogICAgICAgICAgICA8L2Zvcm0+DQoNCiAgICAgICAgPC9kaXY+DQoNCiAgICAgICAgPGRpdiBpZD0iYm94LWZvb3RlciI+DQogICAgICAgICAgPGlucHV0IGlkPSJzdWJtaXQiIGNsYXNzPSIiIHR5cGU9ImJ1dHRvbiIgdmFsdWU9Int7LmJ1dHRvbi5sb2dpbn19IiBvbmNsaWNrPSJqYXZhc2NyaXB0OiBsb2dpbigpOyI+DQogICAgICAgIDwvZGl2Pg0KICAgICAgICANCiAgICAgIDwvZGl2Pg0KDQogICAgPC9ib2R5Pg0KICAgIA0KPC9odG1sPg==" webUI["html/maintenance.html"] = "PCFkb2N0eXBlIGh0bWw+DQo8aHRtbD4NCiAgPGhlYWQ+DQogICAgPG1ldGEgY2hhcnNldD0idXRmLTgiPg0KICAgIDxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgsIGluaXRpYWwtc2NhbGU9MS4wIiAvPiANCiAgICA8dGl0bGU+eFRlVmU8L3RpdGxlPg0KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iY3NzL3NjcmVlbi5jc3MiIHR5cGU9InRleHQvY3NzIj4NCiAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9ImNzcy9iYXNlLmNzcyIgdHlwZT0idGV4dC9jc3MiPg0KICA8L2hlYWQ+DQoNCiAgICA8Ym9keT4NCiAgICAgICAgICANCiAgICAgIDxkaXYgaWQ9ImhlYWRlciIgY2xhc3M9ImltZ0NlbnRlciI+PC9kaXY+DQoNCiAgICAgIDxkaXYgaWQ9ImJveCI+DQoNCiAgICAgICAgPGRpdiBpZD0iaGVhZGxpbmUiPg0KICAgICAgICAgIDxoMSBpZD0iaGVhZC10ZXh0IiBjbGFzcz0iY2VudGVyIj5NYWludGVuYW5jZTwvaDE+ICAgICAgDQogICAgICAgIDwvZGl2PiAgDQoNCiAgICAgICAgPGRpdiBpZD0iY29udGVudCI+DQogICAgICAgICAgeFRlVmUgaXMgdXBkYXRpbmcgdGhlIGRhdGFiYXNlLCBwbGVhc2UgdHJ5IGFnYWluIGxhdGVyLg0KICAgICAgICA8L2Rpdj4NCg0KICAgICAgICA8ZGl2IGlkPSJib3gtZm9vdGVyIj48L2Rpdj4NCiAgICAgICAgDQogICAgICA8L2Rpdj4NCg0KICAgIDwvYm9keT4NCjwvaHRtbD4=" webUI["html/video/stream-limit.ts"] = "R0AREABC8CUAAcEAAP8B/wAB/IAUSBIBBkZGbXBlZwlTZXJ2aWNlMDF3fEPK//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////9HQAAQAACwDQABwQAAAAHwACqxBLL//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////0dQABAAArASAAHBAADhAPAAG+EA8AAVvU1W////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////R0EAMAdQAAB7DH4AAAAB4AAAgMAKMQAJEKERAAfYYQAAAAEJ8AAAAAFnZAAorNlAeAIn5cBEAAADAAQAAAMAyDxgxlgAAAABaOvjyyLAAAABBgX//6rcRem95tlIt5Ys2CDZI+7veDI2NCAtIGNvcmUgMTUyIHIyODU0IGU5YTU5MDMgLSBILjI2NC9NUEVHLTQgQVZDIGNvZGVjIC0gQ29weWxlZnQgMjAwMy0yMDE3IC0gaHR0cDovL3dHAQARd3cudmlkZW9sYW4ub3JnL3gyNjQuaHRtbCAtIG9wdGlvbnM6IGNhYmFjPTEgcmVmPTMgZGVibG9jaz0xOjA6MCBhbmFseXNlPTB4MzoweDExMyBtZT1oZXggc3VibWU9NyBwc3k9MSBwc3lfcmQ9MS4wMDowLjAwIG1peGVkX3JlZj0xIG1lX3JhbmdlPTE2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ACqxBLL//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////0dQABEAArASAAHBAADhAPAAG+EA8AAVvU1W////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////RwEAGO10tGlFAwyE91Tzg8923ovJk1dv2xh1gVlYQFtWdZ6NSQ8vgHM7/tMfIZPsqgCU856rdBJJRMDaor/oWA7pkvSmC2aqaC5fd/mkWUPTuG8fRhGqOY1rKxLNSI3HtTQAcuVBxRM0NfMw0ky/JMJYZiCgXcNsxpxl+khr/9fKtO5Fg2VNBti92xcZimHUZDJMQTBOY6vSR9L1N2O/kJQCpdfuc9bkcUTMjH/es/lAySxvbiislkohqkpHAQAZVatwHI0t9eHCUfDyWUEtuCNyDwQFOVMtaYEQJrTrhQX0VduT86F0u0wN9ag0uPsrmX6Rid/x5S7KI1SkS+qP6cdmgSP57uiF4dG6IKsWNfGBLY09H/CFlrg73WINQkkp2diKkdEmtZetn8+ZAKzR5eXN5FebiKt6pIkNLuSofjosypEs2o6boKsfpmbtOV0idOeWDM9C8EIcn3aZwk1s2KBDvt1DlY+i2Cuvhk3XoKLT+pq/bOC5QkcBABolcOXneZXLoQw9W1PH1f/of92Ytjj8okrWijcQAKlE5l8XoTb9qrOiZnDOhqwcMlB9H9rorq041I89hChohYoSkJElcM8V+r8WYN5axD1BNyfwaHAOm4UN2/VEYOkNSfMjmx2S0WW/F2ha8Jj4fc4QgqcXr+TnnbwqLkLTValK4Qa1pcv7PIbDq6zCUfxe04guZ8xEhPQjp17/G6IB/6uq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wnibxQ/cXEblVnM47wbCN3iy4eHjYB5MoIICrSYmd8nt4V0toLs084KJlmnur5FbApYM4W79ff4oZkW88Cg8Fv8TnWhh1Hqc4UlhMbRKm2QxDgfBxar3U7BwNR6prrXXjqfR7ja3tPli+H7Jez/xcTg32QpHAQAdTa7pSSgBvmOqzz175NAFIhwE9p3d71F9jLvhaPv8q1iKopL0kizwzEWElnXWmNhfLkl/Au8KujnoKUaxVdTe+zAZm2dOkejnpNVtVj0Aw9wKcG3ZQ1iRZrUFRIoPKYlmR+oi0LrupuhYABtgPbdCbDtezGTr0nw9wVd/rZ6V+1wcoJ6+8VAVueIdwI3brqm6EoFHiI8L6lER+9SefB8fHo4NYgr/I8jSxaa/2PLX2K/DjrlY6bN8fEcBAB7DXsuh8DITF6CYWj2HTFvqfzlic3QHXnHtvsTFNpyVY1LY8y/fRK2mwALN6IB5W3OuyoKiA3K0lJdQUv2gYhHWvPTV218HYrD0rkbMxRH0SiEEkrHDeOt5T1HtWD13D2/QvMu535fsfZyeaFDjdCE9M0Xi8Lfc7Xj1ZNGend7Jo7/cEiczFkc1vB4z2JpFGZreV2EdquyEzC2STFJtfimyx8QlLngEuR1cxH+lWEcFX+mvBa/eqktIRwEAH6VazFLPNsnHZqsI66TVoArQuUUGFAzr8MT8GZ9V6qpZa5D0jA/4eGi6Kq0smUgRExnqIbSMLWqDf/Pk2YT3MpHTu9VE3Dn9blgB6KsVIkWnB98Y2n/6DrZDcF94Ndu0Ka4U/RZwdV5O5KcO+lU2ZiIOYTYZ6Ie0d+tApxYxJ+YmxaDoCyRNe6crw/yzR5SflT8ddi/E2BM+l+nwVDiKZ/714fmrBxFKWuqLiQNHV19o1cZ8Ubun+ZtHQAASAACwDQABwQAAAAHwACqxBLL//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////0dQABIAArASAAHBAADhAPAAG+EA8AAVvU1W////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////RwEAEH1s3BdtHdF1ln55B24wdACF/ggcRtPmB4IUB6cZJ+m32I4R48ZkdhAFBulgWcsv0wZwH0o1yi3i4qm3rJ98AUKdB9PsNyG9gURV0bTw4myAj6g5Dgodfv6w9bsbOxsGUWkvgAJ3rrR010BvZbIa6CMRCQRjxkCfRF77ansRJZT0JzhtYeSS/ZJob8Rr2jrng3W2rkmHtE+rdqlPiHxmwkRZvYGhBxwiJO2L6f+l/cABsfs09rA+A0pHAQAREZay3TBUIAfMWhApE+LaPgeyOYtaPFONA9aC0h4QrFkaLZfb86678MK+zLgqDBsDoj50eZHMVcczRjs4sYlv7RG8RIWKb5lB9Kn/8+CkxiiA11cHH1yzLX2SKCmhsak/+P/zYQ1EDvEj33bl9e3Jd62cTI+Qw99KrsWnUMN8hFNeXzoGHA3aec+Li4NFboF8sa6lCPR6Csxsvxw8DJaWCnER5Z0p+nKhXavF/eNHQ0DX47ohycc87UcBABKsYHCHXXe3vK1cFYDWO6rhwM6hxCdJ+/X+VB1akQejL6iBMdUPuadUqBnbprwJM0dWpSSn9uuZZeqe46iZOGIJUo69d8x+ZSvPcBH/dK1Y0LJnoWdgWH51SQg7eYqcwjQW3BOy7ZF02Hn1EhTuhsN7ms8zv3WIeEBDBq0T3Idl+Tmw9iJU9skVYiwygHG2+0XwrLa6y+uiQPwMzrnEr1kuf24XoAqrJTZQiVH3aQF4d94yDreWu2KPRwEAE2FsynHZaUcBXEFbeX0nSxZ7sRcRjJvc7RYOny6N8QFwKDVO7jpRWWYM55kuepBOyZ+7BFYeG+FU1kR+ZfmqyDNkD4D1IPwNh6u9JQxDymfN/aMcQC3WxdvCKquPsAut6dugpGkOFtIe+W3ayc4V/J978P+h1EDFMbFjxRPuXht0K2dBQZCJ0ybISUDqWzhPuep8CdxSU4MvMVfdXh7FLl/BqKJUTT+vM+Pz3XnqCQQmH5TjQ4CK55VHAQAUEtgfkBwIYgtwHkhjmtLw7HNTeJeMfTjATEKcyuKzItSeYxHBmGzQ/+G2otpPCOkVAXJ9mfx7LxrW4joZ0ttTRQJ/wqMUK1IN349LiJoo8y/+FwN4jPNDwIleJG697riqnmLOweFW8spHKLBfnHcyC1pG6EIxFpTqUQ0KHqXD/KXIHKioJNAOVwQ1Gfloxebo/Tdtd00dpHP3gcsAOnV75APCYOjVIlwm2X6ViDeZw6Btdb/Br/+yokcBABU3+eOESLlneGbR5SLiL8wPkoRaZ5X7xFlMTMvsv9yHk26bVdmsubSdbYS1Hy64n0+NnL7C1aLD7aJxOudMjVW5goZbfO2KxBQkCD4HFA284wbaB5vOL7mRilCn6YEs1kiwf22+fBLNUmXDb2p353wrD/ygTDhlki66USvUmd/ZAs9uzAddegEzy7Xn00YysWTu/hegYyZtWFC+X5dhLubWJ7n96y5wjrP7PAOXoQQtFUH9j/rBiP/7RwEAFnL/wYKYuj80mPGtimSbF/E9K7XwjwBz8yHZubmVMTCmwkZBM4h0FR1thnUGiSjqjJT6SfunWCZ/dZDQplrzS00UKcUP399SyM+nNG1br8Za0ZYwWch8nyLHYXSRuxdnrfUUespsOQo1cWSLGf0pV2HIcHoiAAEKwPU6irB5BSoFvB1qKVjgEk+QwAEYAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAABHAQA3pAD/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////AwAAAwAAAwAAAwAAAwAAAwBbwUdBABgAAAHgAACAwAoxAAmBIREAB/SBAAAAAQnwAAAAAUGaJGxDv/6plgAAAwAAAwAAAwAAAwAAAwAAAwAAAwAKCKB0AIhy1ftwLNISWucTFC7xeBcaIzP3oZjZo8uT9hqZVstWGnrPz+vjaA5FuCO+K2w7/o39LygDO7aL+0zSrN90LW7r133x8+f+PEKk8d7pd2fj4RYuMOXOYunzFzRX/4IvR1XsK5WJYwVkOca3yfo7DTvUBP9rgSiTRwEAGQD6CFK1PBC4qYCa+coLVnX+jgODNrau5YJXIekDI4+wUNV+5T5HE4e2t5EGAjn77+kC1Vghmvx8KqPnylVUvsaTofheggxHsPuxn1zQt6nA59UglrRUMn8b4pmrvfqTBSqU949+AcNAI6M/eAqz6r0RG5KNeBhx8R2f0x2kujwHU3pc3rlPb6ZrFM/2HiG97eEIezrvWFG7YAAAAwAAAwAE1KRo1VfbdZQ/tOpNGxFmTcQoFidyD2tHAQAapTTIErUKA2Rc9uIzGJu+oW0uNOxRyl6oJNUNJp5L9TIshNS1CmUKgdCaE3LkLwdE8iUkUnIGfWLiWpWmjzsINYC8dnDaSptB53yJkBu0SsR00oo1PZ0pl4ZzoXGSYQJTPaVCbj6FNqm5wcnUqKTB/rgHdPdnDj0K8asLABeo/n3XCXrDorI+LYSD1FBgmV9O7RZdjfL0NnXOQkiq/ZGirwVV0cUF1aHtZx1yHlAAZKuuu7TqB13CAUcBADuRAP///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////yj/IrOvAEoXDNGy+nrxWN0l8cmuqWYaUJpuM9XgAAADAAADAAKmR0EAPAcQAACJHH4AAAAB4AAAgMAKMQAJSOERAAkQoQAAAAEJ8AAAAAFBnkJ4hf8AAAMAAAMAAAMAAAMAAAMAAAMAAAMAC/BmhyuvLmkCgKTgACEXfOVvHRHdpBEEmTTz9pIZCa2FD0CXukzDCakOHekTpJQSdsfd7a/jjM1/5lBtKCAGQ6zOCSQ6DeKtyw+CugDuuglGipwmvQW+FIDjnZ6HRd0uaSOGy6VB3h9MI1o4nqaCqVwwIgubYZFHAQA9XgD////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////WcZrO6BEiqf8pCxYwlz2mkdUzY/ipM/TIHS4m5xQAAAMAAAMAAA5sVm90p14dlvWgBgY7XQ9KVOJKLtaMAN5KiffVQtNuzW5DfL+RewZpAAADAAADAAAQMUdBAB4AAAHgAACAgAUhAAkswQAAAAEJ8AAAAAEBnmF0Qr8AAAMAAAMAAAMAAAMAAAMAAAMAAAMAABJfBjP2+4+W7ZybyT130+Ma4WSqICfd/dS4YtjrLlmh5VBlfrtwJqdN1PBTYDkwGOOONqZQeFN6lLGJoDzvuh3kv1aDBLqug+JhvrSeu5ebnvcrtQzb2REwJL3h9mvtkr0WfDu4AAADAAADAAs32Y4C/6Ns79oCGj6oqLltY3T4I0/QRwEAP5wA//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////8BeoWLRnKQmVgO/RBoBfcK85AAAAMAAAMACFhHQQAwBxAAAJcsfgAAAAHgAACAwAoxAAllAREACUjhAAAAAQnwAAAAAQGeY2pCvwAAAwAAAwAAAwAAAwAAAwAAAwAAAwAAEmDKfLGXsvBBQPNYXlEd6WueJ4deApfcHESlG+7V6u0AiWQqJvNZYM+3Js3Lj9Ldc9yYIHqruVwfMtCYGlX3wMavI/DrhMuJw+RreIF8SKsJD8CMccAAAAMAAAMACrFZOBgEqaP/8EyWsAHV6CgcAgfyox/roEcBADGuAP//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////AAADAAADAHTBR0EAEgAAAeAAAIDACjEACfGhEQAJZQEAAAABCfAAAAABQZpoSahBaJlMCHf//qmWAAADAAADAAADAAADAAADAAADAAADAAALf8A2bry6lUyIAQGNFfVK2Cd7h4qDqmqpvmXfkfTwo2Ab79AHhajxJ4MPWIgAAA84xLRIx7I2CrWjWe96OvgkzgS9mtvhuxdzAgpuIOJI3DEY9mviDDZz8XSAAAADAAADAB7AZkj9AAHHGvk+Pzlku8UkWa5HAQAzogD//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////6HjAkbF/gsWuvw4QAAAAwAAAwAccUdBADQHEAAApTx+AAAAAeAAAIDACjEACblhEQAJgSEAAAABCfAAAAABQZ6GRREsL/8AAAMAAAMAAAMAAAMAAAMAAAMAAAMAAA3URJB/3lMHSmOd0GYZnfpoR80WdqxlyHzPX+V81VUMeXIGrRgq5agd+ACdjoGI036yQ/rmpGw0CmMBrKwpI+nwFo3SP0s1rI2yHBZaiPJjSUgw33rBkxXcq55kfLf2sAAAAwAAAwACBWolidWDnIeQAAADRwEANbEA//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////8AAAMADulHQQA2NAD///////////////////////////////////////////////////////////////////8AAAHgAACAgAUhAAmdQQAAAAEJ8AAAAAEBnqV0Qr8AAAMAAAMAAAMAAAMAAAMAAAMAAAMAABJXNihCnx11JUosH2hBE53O/YN+GPHqcnJiQBIf3maTAAj5iRt+7GYUKBAU9iCXTiouCjGYgAAAAwAAAwA9p4HQBg2cAAADAAADAADGgUdBADc4EAAAs0x+AP////////////////////////////////////////////////////////////////8AAAHgAACAwAoxAAnVgREACblhAAAAAQnwAAAAAQGep2pCvwAAAwAAAwAAAwAAAwAAAwAAAwAAAwAAAwBR6/L83y+ZevtMZ0FW4lp8qV7fVXQAhLAWlS6mDxvpaSUgChorvgTMXtxJEIAAAAMAAAMACqFCAAADAAADAAADAAz4R0EAOCsA////////////////////////////////////////////////////////AAAB4AAAgMAKMQALYiERAAnVgQAAAAEJ8AAAAAFBmqxJqEFsmUwId//+qZYAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAApQTq0hABLvkcWCYrAaRRPNDrECJGlF/11BYvG9+JJ9Y86nxnmQzPxtAAe1UgOsXAAADAAADAAADAAADAAADAAADAAADA/JHQQA5JhAAAMFcfgD/////////////////////////////////////////AAAB4AAAgMAKMQALKeERAAnxoQAAAAEJ8AAAAAFBnspFFSwv/wAAAwAAAwAAAwAAAwAAAwAAAwAAAwAADdRFmvrVE0KXDOGwWddlwYa1foib7tXZKmkua6R4APb4b8+tXwdSNNqgf2IVNwGTohgQAcMvp6SiQxpiQym4AAADAAADAANUNUAAAAMAAAMAAAMBN0dBADo8AP//////////////////////////////////////////////////////////////////////////////AAAB4AAAgIAFIQALDcEAAAABCfAAAAABAZ7pdEK/AAADAAADAAADAAADAAADAAADAAADAAADAFHTAfujIUaaLSuklb9y0/so9AEtQAqkAxOviALQZ5jNt/iOkABrCOZ4md0iUnFwAAADAAADAALwckAAAAMAAAMAAATcR0EAO0IQAADPbH4A//////////////////////////////////////////////////////////////////////////////8AAAHgAACAwAoxAAtGAREACynhAAAAAQnwAAAAAQGe62pCvwAAAwAAAwAAAwAAAwAAAwAAAwAAAwAAAwBR6/L83y+WryR9gmVKPGbIhJpkgAFgHCej3gB6rAHPgHHAAAADAAADAAAYIV0AAAMAAAMAAAMABnxHQQA8UQD//////////////////////////////////////////////////////////////////////////////////////////////////////////wAAAeAAAIDACjEAC9KhEQALRgEAAAABCfAAAAABQZrwSahBbJlMCG///qeEAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAAZ8UdBAD00EAAA3Xx+AP///////////////////////////////////////////////////////////wAAAeAAAIDACjEAC5phEQALYiEAAAABCfAAAAABQZ8ORRUsL/8AAAMAAAMAAAMAAAMAAAMAAAMAAAMAAA3URZr61RNClwzhI2ZXdRHYLZWc1yTgKRhTIXBNABHQKIIyYNyc+AaEn1jhATEAAAMAAAMAAAMAckkIAAADAAADAAADAEbBR0EAPkYA////////////////////////////////////////////////////////////////////////////////////////////AAAB4AAAgIAFIQALfkEAAAABCfAAAAABAZ8tdEK/AAADAAADAAADAAADAAADAAADAAADAAADAFHTAfujIUAYRtY0f/43cIs2OjxACR2hMR1QBGYX+34JGAAAAwAAAwAAAwKEJ6AAAAMAAAMAAAMA3oFHQQA/QhAAAOuMfgD//////////////////////////////////////////////////////////////////////////////wAAAeAAAIDACjEAC7aBEQALmmEAAAABCfAAAAABAZ8vakK/AAADAAADAAADAAADAAADAAADAAADAAADAFHr8vzfL5avJH2CZUo8ZsiEmmSAAWAcJ6PeAHqsAc+AccAAAAMAAAMAABghXQAAAwAAAwAAAwAGfEdBADBRAP//////////////////////////////////////////////////////////////////////////////////////////////////////////AAAB4AAAgMAKMQANQyERAAu2gQAAAAEJ8AAAAAFBmzRJqEFsmUwIZ//+nhAAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAGVAR0EAMTQQAAD5nH4A////////////////////////////////////////////////////////////AAAB4AAAgMAKMQANCuERAAvSoQAAAAEJ8AAAAAFBn1JFFSwv/wAAAwAAAwAAAwAAAwAAAwAAAwAAAwAADdRFmvrVE0KXDOEjZld1EdgtlZzXJOApGFMhcE0AEdAogjJg3Jz4BoSfWOEBMQAAAwAAAwAAAwBySQgAAAMAAAMAAAMARsFHQQAyRgD///////////////////////////////////////////////////////////////////////////////////////////8AAAHgAACAgAUhAAvuwQAAAAEJ8AAAAAEBn3F0Qr8AAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAUdMB+6MhQBhG1jR//jdwizY6PEAJHaExHVAEZhf7fgkYAAADAAADAAADAoQnoAAAAwAAAwAAAwDegEdBADNCEAABB6x+AP//////////////////////////////////////////////////////////////////////////////AAAB4AAAgMAKMQANJwERAA0K4QAAAAEJ8AAAAAEBn3NqQr8AAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAUevy/N8vlq8kfYJlSjxmyISaZIABYBwno94AeqwBz4BxwAAAAwAAAwAAGCFdAAADAAADAAADAAZ8R0EANFIA////////////////////////////////////////////////////////////////////////////////////////////////////////////AAAB4AAAgMAKMQANs6ERAA0nAQAAAAEJ8AAAAAFBm3hJqEFsmUwIV//+OEAAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAYtHQQA1NBAAARW8fgD///////////////////////////////////////////////////////////8AAAHgAACAwAoxAA17YREADUMhAAAAAQnwAAAAAUGflkUVLC//AAADAAADAAADAAADAAADAAADAAADAAAN1EWa+tUTQpcM4SNmV3UR2C2VnNck4CkYUyFwTQAR0CiCMmDcnPgGhJ9Y4QExAAADAAADAAADAHJJCAAAAwAAAwAAAwBGwEdBADZGAP///////////////////////////////////////////////////////////////////////////////////////////wAAAeAAAICABSEADV9BAAAAAQnwAAAAAQGftXRCvwAAAwAAAwAAAwAAAwAAAwAAAwAAAwAAAwBR0wH7oyFAGEbWNH/+N3CLNjo8QAkdoTEdUARmF/t+CRgAAAMAAAMAAAMChCegAAADAAADAAADAN6BR0EAN0IQAAEjzH4A//////////////////////////////////////////////////////////////////////////////8AAAHgAACAwAoxAA2XgREADXthAAAAAQnwAAAAAQGft2pCvwAAAwAAAwAAAwAAAwAAAwAAAwAAAwAAAwBR6/L83y+WryR9gmVKPGbIhJpkgAFgHCej3gB6rAHPgHHAAAADAAADAAAYIV0AAAMAAAMAAAMABn0=" diff --git a/src/webserver.go b/src/webserver.go index 852e8df..cf90bee 100644 --- a/src/webserver.go +++ b/src/webserver.go @@ -60,13 +60,24 @@ func StartWebserver() (err error) { server := http.Server{Addr: ":" + port} go func() { + var err error + if Settings.TLSMode { - certFile := System.Folder.Certificates + "xteve.crt" - keyFile := System.Folder.Certificates + "xteve.key" - err = server.ListenAndServeTLS(certFile, keyFile) + if allFilesExist(System.File.ServerCertPrivKey, System.File.ServerCert) == false { + if err = genCertFiles(); err != nil { + ShowError(err, 7000) + } + } + + err = server.ListenAndServeTLS(System.File.ServerCert, System.File.ServerCertPrivKey) + if err != nil && err != http.ErrServerClosed { + ShowError(err, 1017) + err = server.ListenAndServe() + } } else { err = server.ListenAndServe() } + if err != nil && err != http.ErrServerClosed { ShowError(err, 1001) return diff --git a/xteve.go b/xteve.go index 58bde80..198f2f5 100644 --- a/xteve.go +++ b/xteve.go @@ -37,7 +37,7 @@ var GitHub = GitHubStruct{Branch: "master", User: "SCP002", Repo: "xTeVe", Updat const Name = "xTeVe" // Version : Version, the Build Number is parsed in the main func -const Version = "2.3.0.0000" +const Version = "2.3.1.0000" // DBVersion : Database Version const DBVersion = "2.2.2" From 04be477219d3ca3bc24903ebc5250d3551086d77 Mon Sep 17 00:00:00 2001 From: SCP002 Date: Mon, 25 Apr 2022 23:07:15 +0300 Subject: [PATCH 092/189] Add ability to change host IP in settings. Set default IP to the first one available.Minor cosmetic refactoring. Closes #31 --- html/js/base_ts.js | 2 +- html/js/network_ts.js | 7 ++----- html/js/settings_ts.js | 15 +++++++++++++++ html/lang/en.json | 5 +++++ src/config.go | 34 ++++++++++++++++++++++++---------- src/screen.go | 2 +- src/struct-system.go | 37 +++++++++++++++++++------------------ src/struct-webserver.go | 3 ++- src/system.go | 1 + src/toolchain.go | 15 +++++++++++---- src/update.go | 7 ++++--- src/webUI.go | 8 ++++---- src/webserver.go | 31 ++++++++++++++++++------------- ts/base_ts.ts | 3 ++- ts/network_ts.ts | 8 ++------ ts/settings_ts.ts | 22 +++++++++++++++++++++- 16 files changed, 132 insertions(+), 68 deletions(-) diff --git a/html/js/base_ts.js b/html/js/base_ts.js index 3b8c76d..bbf5260 100644 --- a/html/js/base_ts.js +++ b/html/js/base_ts.js @@ -18,7 +18,7 @@ menuItems.push(new MainMenuItem("log", "{{.mainMenu.item.log}}", "log.png", "{{. menuItems.push(new MainMenuItem("logout", "{{.mainMenu.item.logout}}", "logout.png", "{{.mainMenu.headline.logout}}")); // Settings categories var settingsCategory = new Array(); -settingsCategory.push(new SettingsCategoryItem("{{.settings.category.general}}", "tlsMode,xteveAutoUpdate,tuner,epgSource,api")); +settingsCategory.push(new SettingsCategoryItem("{{.settings.category.general}}", "tlsMode,xteveAutoUpdate,hostIP,tuner,epgSource,api")); settingsCategory.push(new SettingsCategoryItem("{{.settings.category.files}}", "update,files.update,temp.path,cache.images,xepg.replace.missing.images")); settingsCategory.push(new SettingsCategoryItem("{{.settings.category.streaming}}", "buffer,udpxy,buffer.size.kb,buffer.timeout,user.agent,ffmpeg.path,ffmpeg.options,vlc.path,vlc.options")); settingsCategory.push(new SettingsCategoryItem("{{.settings.category.backup}}", "backup.path,backup.keep")); diff --git a/html/js/network_ts.js b/html/js/network_ts.js index 4d855d5..fee2b07 100644 --- a/html/js/network_ts.js +++ b/html/js/network_ts.js @@ -44,8 +44,8 @@ class Server { alert(response["err"]); return; } - if (response.hasOwnProperty("newWebUrl")) { - window.location = response["newWebUrl"]; + if (response.hasOwnProperty('openLink')) { + window.location = response['openLink']; } if (response.hasOwnProperty("reload")) { window.location.reload(); @@ -76,9 +76,6 @@ class Server { menu.click(); showElement("popup", false); } - if (response.hasOwnProperty("openLink")) { - window.location = response["openLink"]; - } if (response.hasOwnProperty("reload")) { location.reload(); } diff --git a/html/js/settings_ts.js b/html/js/settings_ts.js index 7965a39..d1df0f7 100644 --- a/html/js/settings_ts.js +++ b/html/js/settings_ts.js @@ -239,6 +239,18 @@ class SettingsCategory { setting.appendChild(tdRight); break; // Select + case "hostIP": + var tdLeft = document.createElement("TD"); + tdLeft.innerHTML = "{{.settings.hostIP.title}}" + ":"; + var tdRight = document.createElement("TD"); + var text = SERVER["ipAddressesV4Host"]; + var values = SERVER["ipAddressesV4Host"]; + var select = content.createSelect(text, values, data, settingsKey); + select.setAttribute("onchange", "javascript: this.className = 'changed'"); + tdRight.appendChild(select); + setting.appendChild(tdLeft); + setting.appendChild(tdRight); + break; case "tuner": var tdLeft = document.createElement("TD"); tdLeft.innerHTML = "{{.settings.tuner.title}}" + ":"; @@ -380,6 +392,9 @@ class SettingsCategory { case "epgSource": text = "{{.settings.epgSource.description}}"; break; + case "hostIP": + text = "{{.settings.hostIP.description}}"; + break; case "tuner": text = "{{.settings.tuner.description}}"; break; diff --git a/html/lang/en.json b/html/lang/en.json index 95d4b6c..4cc39f1 100644 --- a/html/lang/en.json +++ b/html/lang/en.json @@ -397,6 +397,11 @@ "title": "Number of Tuners", "description": "Number of parallel connections that can be established to the provider.
Available for: Plex, Emby (HDHR), M3U (with active buffer).
After a change, xTeVe must be delete in the Plex / Emby DVR settings and set up again." }, + "hostIP": + { + "title": "Host IP", + "description": "IP address xTeVe will use to form M3U and XMLTV files" + }, "tlsMode": { "title": "TLS (HTTPS) mode", "description": "Changes web server protocol to HTTPS.
For details, see https://github.com/SCP002/xTeVe#tls-mode" diff --git a/src/config.go b/src/config.go index e78ea97..b66cade 100644 --- a/src/config.go +++ b/src/config.go @@ -105,11 +105,6 @@ func Init() (err error) { return } - err = resolveHostIP() - if err != nil { - ShowError(err, 1002) - } - // Menu for the Web interface System.WEB.Menu = []string{"playlist", "filter", "xmltv", "mapping", "users", "settings", "log", "logout"} @@ -128,8 +123,6 @@ func Init() (err error) { showInfo(fmt.Sprintf("Version:%s Build: %s", System.Version, System.Build)) showInfo(fmt.Sprintf("Database Version:%s", System.DBVersion)) - showInfo(fmt.Sprintf("System IP Addresses:IPv4: %d | IPv6: %d", len(System.IPAddressesV4), len(System.IPAddressesV6))) - showInfo("Hostname:" + System.Hostname) showInfo(fmt.Sprintf("System Folder:%s", getPlatformPath(System.Folder.Config))) // Create System Files (If not available) @@ -153,6 +146,14 @@ func Init() (err error) { ShowError(err, 0) return } + + err = resolveHostIP() + if err != nil { + ShowError(err, 1002) + } + + showInfo(fmt.Sprintf("System IP Addresses:IPv4: %d | IPv6: %d", len(System.IPAddressesV4), len(System.IPAddressesV6))) + showInfo("Hostname:" + System.Hostname) // Check the permissions on all Folders err = checkFilePermission(System.Folder.Config) @@ -161,7 +162,7 @@ func Init() (err error) { } // Separate tmp Folder for each Instance - //System.Folder.Temp = System.Folder.Temp + Settings.UUID + string(os.PathSeparator) + // System.Folder.Temp = System.Folder.Temp + Settings.UUID + string(os.PathSeparator) showInfo(fmt.Sprintf("Temporary Folder:%s", getPlatformPath(System.Folder.Temp))) err = checkFolder(System.Folder.Temp) @@ -189,9 +190,9 @@ func Init() (err error) { showInfo(fmt.Sprintf("Git Branch:%s [%s]", System.Branch, System.GitHub.User)) // Set Domain Names - setGlobalDomain(fmt.Sprintf("%s:%s", System.IPAddress, Settings.Port)) + setGlobalDomain(fmt.Sprintf("%s:%s", Settings.HostIP, Settings.Port)) - System.URLBase = fmt.Sprintf("%s://%s:%s", System.ServerProtocol.WEB, System.IPAddress, Settings.Port) + System.URLBase = fmt.Sprintf("%s://%s:%s", System.ServerProtocol.WEB, Settings.HostIP, Settings.Port) // Create HTML Files, with dev == true the local HTML Files are used if System.Dev == true { @@ -258,3 +259,16 @@ func StartSystem(updateProviderFiles bool) (err error) { return } + +// reinitialize : Initialize and start up the system, updating provider files +func reinitialize() { + err := Init() + if err != nil { + ShowError(err, 0) + } + + err = StartSystem(true) + if err != nil { + ShowError(err, 0) + } +} diff --git a/src/screen.go b/src/screen.go index cade275..8fdfb04 100644 --- a/src/screen.go +++ b/src/screen.go @@ -330,7 +330,7 @@ func getErrMsg(errCode int) (errMsg string) { case 2021: errMsg = fmt.Sprintf("VLC binary was not found. Check the VLC path binary in the xTeVe settings.") case 2022: - errMsg = fmt.Sprintf("Loaded database has broken XEPG mapping (version <= 2.1.1). Clearing it.") + errMsg = fmt.Sprintf("Loaded database had broken XEPG mapping (version <= 2.1.1). It was cleared.") case 2099: errMsg = fmt.Sprintf("Updates have been disabled by the developer") diff --git a/src/struct-system.go b/src/struct-system.go index 5a601d6..9acd2d0 100644 --- a/src/struct-system.go +++ b/src/struct-system.go @@ -13,19 +13,19 @@ type SystemStruct struct { XML string } - APIVersion string - AppName string - ARCH string - BackgroundProcess bool - Branch string - Build string - Compatibility string - ConfigurationWizard bool - DBVersion string - Dev bool - DeviceID string - Domain string - PlexChannelLimit int + APIVersion string + AppName string + ARCH string + BackgroundProcess bool + Branch string + Build string + Compatibility string + ConfigurationWizard bool + DBVersion string + Dev bool + DeviceID string + Domain string + PlexChannelLimit int FFmpeg struct { DefaultOptions string @@ -75,11 +75,11 @@ type SystemStruct struct { Hostname string ImageCachingInProgress int - IPAddress string - IPAddressesList []string - IPAddressesV4 []string - IPAddressesV4Raw []net.IP - IPAddressesV6 []string + IPAddressesList []string // Every IP address available (IPv4 + IPv6) + IPAddressesV4 []string // Every IPv4 address available in string format + IPAddressesV4Host []string // Every IPv4 address available except loopback and link-local + IPAddressesV4Raw []net.IP // Every IPv4 address available in net.IP format + IPAddressesV6 []string // Every IPv6 address available Name string OS string ScanInProgress int @@ -302,6 +302,7 @@ type SettingsStruct struct { FilesUpdate bool `json:"files.update"` Filter map[int64]interface{} `json:"filter"` + HostIP string `json:"hostIP"` // IP chosen in web client. Used to form m3u and xml files. Key string `json:"key,omitempty"` Language string `json:"language"` LogEntriesRAM int `json:"log.entries.ram"` diff --git a/src/struct-webserver.go b/src/struct-webserver.go index 915fdcc..b850e54 100644 --- a/src/struct-webserver.go +++ b/src/struct-webserver.go @@ -35,6 +35,7 @@ type RequestStruct struct { VLCOptions *string `json:"vlc.options,omitempty"` VLCPath *string `json:"vlc.path,omitempty"` FilesUpdate *bool `json:"files.update,omitempty"` + HostIP *string `json:"hostIP,omitempty"` // IP chosen in web client. Used to form m3u and xml files. TempPath *string `json:"temp.path,omitempty"` TLSMode *bool `json:"tlsMode,omitempty"` Tuner *int `json:"tuner,omitempty"` @@ -106,9 +107,9 @@ type ResponseStruct struct { Alert string `json:"alert,omitempty"` ConfigurationWizard bool `json:"configurationWizard,required"` Error string `json:"err,omitempty"` + IPAddressesV4Host []string `json:"ipAddressesV4Host"`// Every IPv4 address to display in web client Log WebScreenLogStruct `json:"log,required"` LogoURL string `json:"logoURL,omitempty"` - NewWebURL string `json:"newWebUrl,omitempty"` OpenLink string `json:"openLink,omitempty"` OpenMenu string `json:"openMenu,omitempty"` Reload bool `json:"reload,omitempty"` diff --git a/src/system.go b/src/system.go index 1c72419..314ed19 100644 --- a/src/system.go +++ b/src/system.go @@ -122,6 +122,7 @@ func loadSettings() (settings SettingsStruct, err error) { defaults["files"] = dataMap defaults["filter"] = make(map[string]interface{}) defaults["git.branch"] = System.Branch + defaults["hostIP"] = "" // Will be set in resolveHostIP() defaults["language"] = "en" defaults["log.entries.ram"] = 500 defaults["m3u8.adaptive.bandwidth.mbps"] = 10 diff --git a/src/toolchain.go b/src/toolchain.go index 7c5bed7..672f8f5 100644 --- a/src/toolchain.go +++ b/src/toolchain.go @@ -16,6 +16,8 @@ import ( "runtime" "strings" "text/template" + + "github.com/samber/lo" ) // --- System Tools --- @@ -339,7 +341,7 @@ func resolveHostIP() (err error) { System.IPAddressesV4Raw = append(System.IPAddressesV4Raw, networkIP.IP) if !networkIP.IP.IsLoopback() && ip[0:7] != "169.254" { - System.IPAddress = ip + System.IPAddressesV4Host = append(System.IPAddressesV4Host, ip) } } else { @@ -350,17 +352,22 @@ func resolveHostIP() (err error) { } - if len(System.IPAddress) == 0 { + // If IP previously set in settings (including the default, empty) is not available anymore + if lo.Contains(System.IPAddressesV4Host, Settings.HostIP) == false { + Settings.HostIP = System.IPAddressesV4Host[0] + } + + if len(Settings.HostIP) == 0 { switch len(System.IPAddressesV4) { case 0: if len(System.IPAddressesV6) > 0 { - System.IPAddress = System.IPAddressesV6[0] + Settings.HostIP = System.IPAddressesV6[0] } default: - System.IPAddress = System.IPAddressesV4[0] + Settings.HostIP = System.IPAddressesV4[0] } diff --git a/src/update.go b/src/update.go index 14ece48..b5697bb 100644 --- a/src/update.go +++ b/src/update.go @@ -239,10 +239,7 @@ checkVersion: } case "2.1.0", "2.1.1": - // Database verison <= 2.1.1 has broken XEPG mapping - showWarning(2022) - sendAlert("Loaded database had broken XEPG mapping (version <= 2.1.1). It was cleared.") // Clear XEPG mapping Data.XEPG.Channels = make(map[string]interface{}) @@ -255,6 +252,10 @@ checkVersion: return err } + // Notify user + showWarning(2022) + sendAlert(getErrMsg(2022)) + // Update database version settingsMap["version"] = "2.2.0" diff --git a/src/webUI.go b/src/webUI.go index b569677..fc56f65 100644 --- a/src/webUI.go +++ b/src/webUI.go @@ -25,14 +25,14 @@ func loadHTMLMap() { webUI["html/img/xmltv.png"] = "iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAAAXNSR0IArs4c6QAAAAlwSFlzAAAsSwAALEsBpT2WqQAABCRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IlhNUCBDb3JlIDUuNC4wIj4KICAgPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIgogICAgICAgICAgICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgICAgICAgICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyI+CiAgICAgICAgIDx0aWZmOlJlc29sdXRpb25Vbml0PjI8L3RpZmY6UmVzb2x1dGlvblVuaXQ+CiAgICAgICAgIDx0aWZmOkNvbXByZXNzaW9uPjU8L3RpZmY6Q29tcHJlc3Npb24+CiAgICAgICAgIDx0aWZmOlhSZXNvbHV0aW9uPjI4ODwvdGlmZjpYUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6T3JpZW50YXRpb24+MTwvdGlmZjpPcmllbnRhdGlvbj4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+Mjg4PC90aWZmOllSZXNvbHV0aW9uPgogICAgICAgICA8ZXhpZjpQaXhlbFhEaW1lbnNpb24+NTA8L2V4aWY6UGl4ZWxYRGltZW5zaW9uPgogICAgICAgICA8ZXhpZjpDb2xvclNwYWNlPjE8L2V4aWY6Q29sb3JTcGFjZT4KICAgICAgICAgPGV4aWY6UGl4ZWxZRGltZW5zaW9uPjUwPC9leGlmOlBpeGVsWURpbWVuc2lvbj4KICAgICAgICAgPGRjOnN1YmplY3Q+CiAgICAgICAgICAgIDxyZGY6QmFnLz4KICAgICAgICAgPC9kYzpzdWJqZWN0PgogICAgICAgICA8eG1wOk1vZGlmeURhdGU+MjAxOC0wNy0yOFQyMDowNzozMzwveG1wOk1vZGlmeURhdGU+CiAgICAgICAgIDx4bXA6Q3JlYXRvclRvb2w+UGl4ZWxtYXRvciAzLjM8L3htcDpDcmVhdG9yVG9vbD4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgIDwvcmRmOlJERj4KPC94OnhtcG1ldGE+Co6j9bsAAAGgSURBVGgF7VqxTsNADL0gYGEon8DOwsbAAH8BYmJn6cYIn8DC3h0+oixISFRiYYCJL0AwMMBAeK5w2rpV6uikxHfYknW98+vds18TK21DWGBlWR7CH+BfcEv2AzLP8HP42gLqkyUATuEp2PWEdQjF9ATs1zF/g29Mrxt+vVcUxR3xWxEktzFPJQmivsv8ZSI9DiQyVnxlIonwn6fpiczXpNuVVXH8O+a3Ys3y9NUyuf/NTTbEHZTjUlGSRzSiPhroUIENwB4AS/vS/susDwDhTpYBER9g7wHh5DWyibV9CiitCZbIafDEYUuJHQI3Nr/9ciWsjK6IFSWYhyvClbAyZqOIlYJG84jq7E1Ot97Zm+TinV1TrWwudk9EI3ebGFekzWprzspGEU2ySWCiOrs/s9dr7M/s9fVJJJrNXcsTsfaJc0WsKZINH+/sf1Jqvl1n1f2ZnStRN/pdq646XcSkIh9dkIg4s+IrE3nCpp8RG7f91ns+cCYR/LD4jcAZB42PN+A7/mcQ8ZxJhBYQvMJwBB/BKTFLVoLMC/wCfgyv7BesTKUC2LKM3wAAAABJRU5ErkJggg==" webUI["html/index.html"] = "PCFkb2N0eXBlIGh0bWw+DQo8aHRtbD4NCiAgPGhlYWQ+DQogICAgPG1ldGEgY2hhcnNldD0idXRmLTgiPg0KICAgIDwhLS0tDQogICAgPG1ldGEgbmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9IndpZHRoPWRldmljZS13aWR0aCwgaW5pdGlhbC1zY2FsZT0xLjAiIC8+IA0KICAgIC0tPg0KICAgIDx0aXRsZT54VGVWZTwvdGl0bGU+DQogICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJjc3Mvc2NyZWVuLmNzcyIgdHlwZT0idGV4dC9jc3MiPg0KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iY3NzL2Jhc2UuY3NzIiB0eXBlPSJ0ZXh0L2NzcyI+DQoNCiAgICA8c2NyaXB0IGxhbmd1YWdlPSJqYXZhc2NyaXB0IiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ianMvbmV0d29ya190cy5qcyI+PC9zY3JpcHQ+DQogICAgPHNjcmlwdCBsYW5ndWFnZT0iamF2YXNjcmlwdCIgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9ImpzL21lbnVfdHMuanMiPjwvc2NyaXB0Pg0KICAgIDxzY3JpcHQgbGFuZ3VhZ2U9ImphdmFzY3JpcHQiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJqcy9zZXR0aW5nc190cy5qcyI+PC9zY3JpcHQ+DQogICAgPHNjcmlwdCBsYW5ndWFnZT0iamF2YXNjcmlwdCIgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9ImpzL2xvZ3NfdHMuanMiPjwvc2NyaXB0Pg0KICAgIDxzY3JpcHQgbGFuZ3VhZ2U9ImphdmFzY3JpcHQiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJqcy9iYXNlX3RzLmpzIj48L3NjcmlwdD4NCg0KICA8L2hlYWQ+DQoNCiAgICA8Ym9keSBvbmxvYWQ9ImphdmFzY3JpcHQ6IFBhZ2VSZWFkeSgpOyI+DQoNCiAgICAgIDxkaXYgaWQ9ImxvYWRpbmciIGNsYXNzPSJub25lIj4NCiAgICAgICAgPGRpdiBjbGFzcz0ibG9hZGVyIj48L2Rpdj4NCiAgICAgIDwvZGl2Pg0KDQogICAgICA8ZGl2IGlkPSJwb3B1cCIgY2xhc3M9Im5vbmUiPg0KICAgICAgICA8ZGl2IGlkPSJwb3B1cC1jdXN0b20iPjwvZGl2Pg0KICAgICAgPC9kaXY+DQoNCiAgICAgIDxkaXYgaWQ9ImxheW91dCI+DQoNCiAgICAgICAgPCEtLQ0KICAgICAgICA8ZGl2IGlkPSJub3RpZmljYXRpb24iPg0KICAgICAgICAgIDxkaXYgY2xhc3M9ImVsZW1lbnQiPg0KICAgICAgICAgICAgPGg1PlhFUEc8L2g1Pg0KICAgICAgICAgICAgPHByZT4xMS4wNS4yMDE5IC0gMjA6MjE8L3ByZT4NCiAgICAgICAgICAgIDxocj4NCiAgICAgICAgICAgIDxwPkhhbGxvIGRhcyBpc3QgZWluIFRlc3QuIFVuZCBub2NoIG1laHIgVGV4dC48L3A+DQogICAgICAgICAgPC9kaXY+DQogICAgICAgIDwvZGl2Pg0KICAgICAgLS0+DQoNCiAgICAgICAgPGRpdiBpZD0ibWVudS13cmFwcGVyIiBjbGFzcz0ibGF5b3V0LWxlZnQiPg0KICAgICAgICAgIDxkaXYgaWQ9ICJicmFuY2giPjwvZGl2Pg0KICAgICAgICAgIDxkaXYgaWQ9ImxvZ28iPjwvZGl2Pg0KICAgICAgICAgIDxuYXYgaWQ9Im1haW4tbWVudSI+PC9uYXY+DQogICAgICAgIDwvZGl2Pg0KDQogICAgICAgIDxkaXYgY2xhc3M9ImxheW91dC1yaWdodCI+DQoNCiAgICAgICAgICA8dGFibGUgaWQ9ImNsaWVudEluZm8iIGNsYXNzPSIiPg0KDQogICAgICAgICAgICA8dHI+DQogICAgICAgICAgICAgIDx0ZCBjbGFzcz0idGRLZXkiPnhUZVZlOjwvdGQ+DQogICAgICAgICAgICAgIDx0ZCBpZD0idmVyc2lvbiIgY2xhc3M9InRkVmFsIj4mbmJzcDs8L3RkPg0KICAgICAgICAgICAgICA8dGQgY2xhc3M9InRkS2V5Ij5PUzo8L3RkPg0KICAgICAgICAgICAgICA8dGQgaWQ9Im9zIiBjbGFzcz0idGRWYWwiPiZuYnNwOzwvdGQ+DQogICAgICAgICAgICAgIDx0ZCBjbGFzcz0idGRLZXkgcGhvbmUiPkRWUiBJUDo8L3RkPg0KICAgICAgICAgICAgICA8dGQgaWQ9IkRWUiIgY2xhc3M9InRkVmFsIHBob25lIj4mbmJzcDs8L3RkPg0KICAgICAgICAgICAgPC90cj4NCg0KICAgICAgICAgICAgPHRyPg0KICAgICAgICAgICAgICA8dGQgY2xhc3M9InRkS2V5Ij5VVUlEOjwvdGQ+DQogICAgICAgICAgICAgIDx0ZCBpZD0idXVpZCIgY2xhc3M9InRkVmFsIj4mbmJzcDs8L3RkPg0KICAgICAgICAgICAgICA8dGQgY2xhc3M9InRkS2V5Ij5BcmNoOjwvdGQ+DQogICAgICAgICAgICAgIDx0ZCBpZD0iYXJjaCIgY2xhc3M9InRkVmFsIj4mbmJzcDs8L3RkPg0KICAgICAgICAgICAgICA8dGQgY2xhc3M9InRkS2V5IHBob25lIj5NM1UgVVJMOjwvdGQ+DQogICAgICAgICAgICAgIDx0ZCBpZD0ibTN1LXVybCIgY2xhc3M9InRkVmFsIHBob25lIj4mbmJzcDs8L3RkPg0KICAgICAgICAgICAgPC90cj4NCg0KICAgICAgICAgICAgPHRyPg0KICAgICAgICAgICAgICA8dGQgY2xhc3M9InRkS2V5Ij5BdmFpbGFibGUgU3RyZWFtczo8L3RkPg0KICAgICAgICAgICAgICA8dGQgaWQ9InN0cmVhbXMiIGNsYXNzPSJ0ZFZhbCI+Jm5ic3A7PC90ZD4NCiAgICAgICAgICAgICAgPHRkIGNsYXNzPSJ0ZEtleSI+RVBHIFNvdXJjZTo8L3RkPg0KICAgICAgICAgICAgICA8dGQgaWQ9ImVwZ1NvdXJjZSIgY2xhc3M9InRkVmFsIj4mbmJzcDs8L3RkPg0KICAgICAgICAgICAgICA8dGQgY2xhc3M9InRkS2V5IHBob25lIj5YRVBHIFVSTDo8L3RkPg0KICAgICAgICAgICAgICA8dGQgaWQ9InhlcGctdXJsIiBjbGFzcz0idGRWYWwgcGhvbmUiPiZuYnNwOzwvdGQ+DQogICAgICAgICAgICA8L3RyPg0KDQogICAgICAgICAgICA8dHI+DQogICAgICAgICAgICAgIDx0ZCBjbGFzcz0idGRLZXkiPlhFUEcgQ2hhbm5lbHM6PC90ZD4NCiAgICAgICAgICAgICAgPHRkIGlkPSJ4ZXBnIiBjbGFzcz0idGRWYWwiPiZuYnNwOzwvdGQ+DQogICAgICAgICAgICAgIDx0ZCBjbGFzcz0idGRLZXkiPkVycm9yczo8L3RkPg0KICAgICAgICAgICAgICA8dGQgaWQ9ImVycm9ycyIgY2xhc3M9InRkVmFsIj4mbmJzcDs8L3RkPg0KICAgICAgICAgICAgICA8dGQgY2xhc3M9InRkS2V5Ij5XYXJuaW5nczo8L3RkPg0KICAgICAgICAgICAgICA8dGQgaWQ9Indhcm5pbmdzIiBjbGFzcz0idGRWYWwiPiZuYnNwOzwvdGQ+DQogICAgICAgICAgICA8L3RyPg0KDQogICAgICAgICAgPC90YWJsZT4NCiAgICAgICAgIA0KICAgICAgICAgIDxkaXYgaWQ9Im15U3RyZWFtc0JveCIgY2xhc3M9Im5vdFZpc2libGUiPg0KDQogICAgICAgICAgICA8ZGl2IGlkPSJhbGxTdHJlYW1zIj4NCiAgICAgICAgICAgICAgPHRhYmxlIGlkPSJhY3RpdmVTdHJlYW1zIj48L3RhYmxlPg0KICAgICAgICAgICAgICA8dGFibGUgaWQ9ImluYWN0aXZlU3RyZWFtcyI+PC90YWJsZT4NCiAgICAgICAgICAgIDwvZGl2Pg0KDQogICAgICAgICAgPC9kaXY+DQogICAgICAgICAgDQogICAgICAgICAgPGRpdiBpZD0iY29udGVudCIgY2xhc3M9IiI+PC9kaXY+DQogICAgICAgICAgICANCiAgICAgICAgPC9kaXY+DQoNCiAgICAgIDwvZGl2Pg0KICAgICAgDQogICAgPC9ib2R5Pg0KICAgIA0KPC9odG1sPg==" webUI["html/js/authentication_ts.js"] = "ZnVuY3Rpb24gbG9naW4oKSB7DQogICAgdmFyIGVyciA9IGZhbHNlOw0KICAgIHZhciBkYXRhID0gbmV3IE9iamVjdCgpOw0KICAgIHZhciBkaXYgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29udGVudCIpOw0KICAgIHZhciBmb3JtID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImF1dGhlbnRpY2F0aW9uIik7DQogICAgdmFyIGlucHV0cyA9IGRpdi5nZXRFbGVtZW50c0J5VGFnTmFtZSgiSU5QVVQiKTsNCiAgICBjb25zb2xlLmxvZyhpbnB1dHMpOw0KICAgIGZvciAodmFyIGkgPSBpbnB1dHMubGVuZ3RoIC0gMTsgaSA+PSAwOyBpLS0pIHsNCiAgICAgICAgdmFyIGtleSA9IGlucHV0c1tpXS5uYW1lOw0KICAgICAgICB2YXIgdmFsdWUgPSBpbnB1dHNbaV0udmFsdWU7DQogICAgICAgIGlmICh2YWx1ZS5sZW5ndGggPT0gMCkgew0KICAgICAgICAgICAgaW5wdXRzW2ldLnN0eWxlLmJvcmRlckNvbG9yID0gInJlZCI7DQogICAgICAgICAgICBlcnIgPSB0cnVlOw0KICAgICAgICB9DQogICAgICAgIGRhdGFba2V5XSA9IHZhbHVlOw0KICAgIH0NCiAgICBpZiAoZXJyID09IHRydWUpIHsNCiAgICAgICAgZGF0YSA9IG5ldyBPYmplY3QoKTsNCiAgICAgICAgcmV0dXJuOw0KICAgIH0NCiAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgiY29uZmlybSIpKSB7DQogICAgICAgIGlmIChkYXRhWyJjb25maXJtIl0gIT0gZGF0YVsicGFzc3dvcmQiXSkgew0KICAgICAgICAgICAgYWxlcnQoInNkYWZzZCIpOw0KICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Bhc3N3b3JkJykuc3R5bGUuYm9yZGVyQ29sb3IgPSAicmVkIjsNCiAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjb25maXJtJykuc3R5bGUuYm9yZGVyQ29sb3IgPSAicmVkIjsNCiAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJlcnIiKS5pbm5lckhUTUwgPSAie3suYWNjb3VudC5mYWlsZWR9fSI7DQogICAgICAgICAgICByZXR1cm47DQogICAgICAgIH0NCiAgICB9DQogICAgY29uc29sZS5sb2coZGF0YSk7DQogICAgZm9ybS5zdWJtaXQoKTsNCn0NCg==" - webUI["html/js/base_ts.js"] = "dmFyIFNFUlZFUiA9IG5ldyBPYmplY3QoKTsNCnZhciBCVUxLX0VESVQgPSBmYWxzZTsNCnZhciBDT0xVTU5fVE9fU09SVDsNCnZhciBTRUFSQ0hfTUFQUElORyA9IG5ldyBPYmplY3QoKTsNCnZhciBVTkRPID0gbmV3IE9iamVjdCgpOw0KdmFyIFNFUlZFUl9DT05ORUNUSU9OID0gZmFsc2U7DQp2YXIgV1NfQVZBSUxBQkxFID0gZmFsc2U7DQovLyBNZW51DQp2YXIgbWVudUl0ZW1zID0gbmV3IEFycmF5KCk7DQptZW51SXRlbXMucHVzaChuZXcgTWFpbk1lbnVJdGVtKCJwbGF5bGlzdCIsICJ7ey5tYWluTWVudS5pdGVtLnBsYXlsaXN0fX0iLCAibTN1LnBuZyIsICJ7ey5tYWluTWVudS5oZWFkbGluZS5wbGF5bGlzdH19IikpOw0KLy9tZW51SXRlbXMucHVzaChuZXcgTWFpbk1lbnVJdGVtKCJwbXNJRCIsICJ7ey5tYWluTWVudS5pdGVtLnBtc0lEfX0iLCAibnVtYmVyLnBuZyIsICJ7ey5tYWluTWVudS5oZWFkbGluZS5wbXNJRH19IikpDQptZW51SXRlbXMucHVzaChuZXcgTWFpbk1lbnVJdGVtKCJmaWx0ZXIiLCAie3subWFpbk1lbnUuaXRlbS5maWx0ZXJ9fSIsICJmaWx0ZXIucG5nIiwgInt7Lm1haW5NZW51LmhlYWRsaW5lLmZpbHRlcn19IikpOw0KbWVudUl0ZW1zLnB1c2gobmV3IE1haW5NZW51SXRlbSgieG1sdHYiLCAie3subWFpbk1lbnUuaXRlbS54bWx0dn19IiwgInhtbHR2LnBuZyIsICJ7ey5tYWluTWVudS5oZWFkbGluZS54bWx0dn19IikpOw0KbWVudUl0ZW1zLnB1c2gobmV3IE1haW5NZW51SXRlbSgibWFwcGluZyIsICJ7ey5tYWluTWVudS5pdGVtLm1hcHBpbmd9fSIsICJtYXBwaW5nLnBuZyIsICJ7ey5tYWluTWVudS5oZWFkbGluZS5tYXBwaW5nfX0iKSk7DQptZW51SXRlbXMucHVzaChuZXcgTWFpbk1lbnVJdGVtKCJ1c2VycyIsICJ7ey5tYWluTWVudS5pdGVtLnVzZXJzfX0iLCAidXNlcnMucG5nIiwgInt7Lm1haW5NZW51LmhlYWRsaW5lLnVzZXJzfX0iKSk7DQptZW51SXRlbXMucHVzaChuZXcgTWFpbk1lbnVJdGVtKCJzZXR0aW5ncyIsICJ7ey5tYWluTWVudS5pdGVtLnNldHRpbmdzfX0iLCAic2V0dGluZ3MucG5nIiwgInt7Lm1haW5NZW51LmhlYWRsaW5lLnNldHRpbmdzfX0iKSk7DQptZW51SXRlbXMucHVzaChuZXcgTWFpbk1lbnVJdGVtKCJsb2ciLCAie3subWFpbk1lbnUuaXRlbS5sb2d9fSIsICJsb2cucG5nIiwgInt7Lm1haW5NZW51LmhlYWRsaW5lLmxvZ319IikpOw0KbWVudUl0ZW1zLnB1c2gobmV3IE1haW5NZW51SXRlbSgibG9nb3V0IiwgInt7Lm1haW5NZW51Lml0ZW0ubG9nb3V0fX0iLCAibG9nb3V0LnBuZyIsICJ7ey5tYWluTWVudS5oZWFkbGluZS5sb2dvdXR9fSIpKTsNCi8vIFNldHRpbmdzIGNhdGVnb3JpZXMNCnZhciBzZXR0aW5nc0NhdGVnb3J5ID0gbmV3IEFycmF5KCk7DQpzZXR0aW5nc0NhdGVnb3J5LnB1c2gobmV3IFNldHRpbmdzQ2F0ZWdvcnlJdGVtKCJ7ey5zZXR0aW5ncy5jYXRlZ29yeS5nZW5lcmFsfX0iLCAidGxzTW9kZSx4dGV2ZUF1dG9VcGRhdGUsdHVuZXIsZXBnU291cmNlLGFwaSIpKTsNCnNldHRpbmdzQ2F0ZWdvcnkucHVzaChuZXcgU2V0dGluZ3NDYXRlZ29yeUl0ZW0oInt7LnNldHRpbmdzLmNhdGVnb3J5LmZpbGVzfX0iLCAidXBkYXRlLGZpbGVzLnVwZGF0ZSx0ZW1wLnBhdGgsY2FjaGUuaW1hZ2VzLHhlcGcucmVwbGFjZS5taXNzaW5nLmltYWdlcyIpKTsNCnNldHRpbmdzQ2F0ZWdvcnkucHVzaChuZXcgU2V0dGluZ3NDYXRlZ29yeUl0ZW0oInt7LnNldHRpbmdzLmNhdGVnb3J5LnN0cmVhbWluZ319IiwgImJ1ZmZlcix1ZHB4eSxidWZmZXIuc2l6ZS5rYixidWZmZXIudGltZW91dCx1c2VyLmFnZW50LGZmbXBlZy5wYXRoLGZmbXBlZy5vcHRpb25zLHZsYy5wYXRoLHZsYy5vcHRpb25zIikpOw0Kc2V0dGluZ3NDYXRlZ29yeS5wdXNoKG5ldyBTZXR0aW5nc0NhdGVnb3J5SXRlbSgie3suc2V0dGluZ3MuY2F0ZWdvcnkuYmFja3VwfX0iLCAiYmFja3VwLnBhdGgsYmFja3VwLmtlZXAiKSk7DQpzZXR0aW5nc0NhdGVnb3J5LnB1c2gobmV3IFNldHRpbmdzQ2F0ZWdvcnlJdGVtKCJ7ey5zZXR0aW5ncy5jYXRlZ29yeS5hdXRoZW50aWNhdGlvbn19IiwgImF1dGhlbnRpY2F0aW9uLndlYixhdXRoZW50aWNhdGlvbi5wbXMsYXV0aGVudGljYXRpb24ubTN1LGF1dGhlbnRpY2F0aW9uLnhtbCxhdXRoZW50aWNhdGlvbi5hcGkiKSk7DQpmdW5jdGlvbiBzaG93UG9wVXBFbGVtZW50KGVsbSkgew0KICAgIHZhciBhbGxFbGVtZW50cyA9IG5ldyBBcnJheSgicG9wdXAtY3VzdG9tIik7DQogICAgZm9yICh2YXIgaSA9IDA7IGkgPCBhbGxFbGVtZW50cy5sZW5ndGg7IGkrKykgew0KICAgICAgICBzaG93RWxlbWVudChhbGxFbGVtZW50c1tpXSwgZmFsc2UpOw0KICAgIH0NCiAgICBzaG93RWxlbWVudChlbG0sIHRydWUpOw0KICAgIHNldFRpbWVvdXQoZnVuY3Rpb24gKCkgew0KICAgICAgICBzaG93RWxlbWVudCgicG9wdXAiLCB0cnVlKTsNCiAgICB9LCAxMCk7DQogICAgcmV0dXJuOw0KfQ0KZnVuY3Rpb24gc2hvd0VsZW1lbnQoZWxtSUQsIHR5cGUpIHsNCiAgICB2YXIgY3NzQ2xhc3M7DQogICAgc3dpdGNoICh0eXBlKSB7DQogICAgICAgIGNhc2UgdHJ1ZToNCiAgICAgICAgICAgIGNzc0NsYXNzID0gImJsb2NrIjsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlIGZhbHNlOg0KICAgICAgICAgICAgY3NzQ2xhc3MgPSAibm9uZSI7DQogICAgICAgICAgICBicmVhazsNCiAgICB9DQogICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoZWxtSUQpLmNsYXNzTmFtZSA9IGNzc0NsYXNzOw0KfQ0KZnVuY3Rpb24gY2hhbmdlQnV0dG9uQWN0aW9uKGVsZW1lbnQsIGJ1dHRvbklELCBhdHRyaWJ1dGUpIHsNCiAgICB2YXIgdmFsdWUgPSBlbGVtZW50Lm9wdGlvbnNbZWxlbWVudC5zZWxlY3RlZEluZGV4XS52YWx1ZTsNCiAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChidXR0b25JRCkuc2V0QXR0cmlidXRlKGF0dHJpYnV0ZSwgdmFsdWUpOw0KfQ0KZnVuY3Rpb24gZ2V0TG9jYWxEYXRhKGRhdGFUeXBlLCBpZCkgew0KICAgIGxldCBkYXRhID0ge307DQogICAgc3dpdGNoIChkYXRhVHlwZSkgew0KICAgICAgICBjYXNlICJtM3UiOg0KICAgICAgICAgICAgZGF0YSA9IFNFUlZFUlsic2V0dGluZ3MiXVsiZmlsZXMiXVtkYXRhVHlwZV1baWRdOw0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGNhc2UgImhkaHIiOg0KICAgICAgICAgICAgZGF0YSA9IFNFUlZFUlsic2V0dGluZ3MiXVsiZmlsZXMiXVtkYXRhVHlwZV1baWRdOw0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGNhc2UgImZpbHRlciI6DQogICAgICAgIGNhc2UgImN1c3RvbS1maWx0ZXIiOg0KICAgICAgICBjYXNlICJncm91cC10aXRsZSI6DQogICAgICAgICAgICBpZiAoaWQgPT0gLTEpIHsNCiAgICAgICAgICAgICAgICBkYXRhWyJhY3RpdmUiXSA9IHRydWU7DQogICAgICAgICAgICAgICAgZGF0YVsiY2FzZVNlbnNpdGl2ZSJdID0gZmFsc2U7DQogICAgICAgICAgICAgICAgZGF0YVsiZGVzY3JpcHRpb24iXSA9ICIiOw0KICAgICAgICAgICAgICAgIGRhdGFbImV4Y2x1ZGUiXSA9ICIiOw0KICAgICAgICAgICAgICAgIGRhdGFbImZpbHRlciJdID0gIiI7DQogICAgICAgICAgICAgICAgZGF0YVsiaW5jbHVkZSJdID0gIiI7DQogICAgICAgICAgICAgICAgZGF0YVsibmFtZSJdID0gIiI7DQogICAgICAgICAgICAgICAgZGF0YVsidHlwZSJdID0gImdyb3VwLXRpdGxlIjsNCiAgICAgICAgICAgICAgICBkYXRhWyJwcmVzZXJ2ZU1hcHBpbmciXSA9IHRydWU7DQogICAgICAgICAgICAgICAgZGF0YVsic3RhcnRpbmdDaGFubmVsIl0gPSBTRVJWRVJbInNldHRpbmdzIl1bIm1hcHBpbmcuZmlyc3QuY2hhbm5lbCJdOw0KICAgICAgICAgICAgICAgIGRhdGFbImRlZmF1bHRNaXNzaW5nRVBHIl0gPSAiLSI7DQogICAgICAgICAgICAgICAgU0VSVkVSWyJzZXR0aW5ncyJdWyJmaWx0ZXIiXVtpZF0gPSBkYXRhOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgZGF0YSA9IFNFUlZFUlsic2V0dGluZ3MiXVsiZmlsdGVyIl1baWRdOw0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGNhc2UgInhtbHR2IjoNCiAgICAgICAgICAgIGRhdGEgPSBTRVJWRVJbInNldHRpbmdzIl1bImZpbGVzIl1bZGF0YVR5cGVdW2lkXTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJ1c2VycyI6DQogICAgICAgICAgICBkYXRhID0gU0VSVkVSWyJ1c2VycyJdW2lkXVsiZGF0YSJdOw0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGNhc2UgIm1hcHBpbmciOg0KICAgICAgICAgICAgZGF0YSA9IFNFUlZFUlsieGVwZyJdWyJlcGdNYXBwaW5nIl1baWRdOw0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGNhc2UgIm0zdUdyb3VwcyI6DQogICAgICAgICAgICBkYXRhID0gU0VSVkVSWyJkYXRhIl1bInBsYXlsaXN0Il1bIm0zdSJdWyJncm91cHMiXTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgIH0NCiAgICByZXR1cm4gZGF0YTsNCn0NCmZ1bmN0aW9uIGdldE93bk9ialByb3BzKG9iamVjdCkgew0KICAgIHJldHVybiBvYmplY3QgPyBPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyhvYmplY3QpIDogW107DQp9DQpmdW5jdGlvbiBnZXRBbGxTZWxlY3RlZENoYW5uZWxzKCkgew0KICAgIHZhciBjaGFubmVscyA9IG5ldyBBcnJheSgpOw0KICAgIGlmIChCVUxLX0VESVQgPT0gZmFsc2UpIHsNCiAgICAgICAgcmV0dXJuIGNoYW5uZWxzOw0KICAgIH0NCiAgICB2YXIgdHJzID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnRlbnRfdGFibGUiKS5nZXRFbGVtZW50c0J5VGFnTmFtZSgiVFIiKTsNCiAgICBmb3IgKHZhciBpID0gMTsgaSA8IHRycy5sZW5ndGg7IGkrKykgew0KICAgICAgICBpZiAodHJzW2ldLnN0eWxlLmRpc3BsYXkgIT0gIm5vbmUiKSB7DQogICAgICAgICAgICBpZiAodHJzW2ldLmZpcnN0Q2hpbGQuZmlyc3RDaGlsZC5jaGVja2VkID09IHRydWUpIHsNCiAgICAgICAgICAgICAgICBjaGFubmVscy5wdXNoKHRyc1tpXS5pZCk7DQogICAgICAgICAgICB9DQogICAgICAgIH0NCiAgICB9DQogICAgcmV0dXJuIGNoYW5uZWxzOw0KfQ0KZnVuY3Rpb24gc2VsZWN0QWxsQ2hhbm5lbHMoKSB7DQogICAgdmFyIGJ1bGsgPSBmYWxzZTsNCiAgICB2YXIgdHJzID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnRlbnRfdGFibGUiKS5nZXRFbGVtZW50c0J5VGFnTmFtZSgiVFIiKTsNCiAgICBpZiAodHJzWzBdLmZpcnN0Q2hpbGQuZmlyc3RDaGlsZC5jaGVja2VkID09IHRydWUpIHsNCiAgICAgICAgYnVsayA9IHRydWU7DQogICAgfQ0KICAgIGZvciAodmFyIGkgPSAxOyBpIDwgdHJzLmxlbmd0aDsgaSsrKSB7DQogICAgICAgIGlmICh0cnNbaV0uc3R5bGUuZGlzcGxheSAhPSAibm9uZSIpIHsNCiAgICAgICAgICAgIHN3aXRjaCAoYnVsaykgew0KICAgICAgICAgICAgICAgIGNhc2UgdHJ1ZToNCiAgICAgICAgICAgICAgICAgICAgdHJzW2ldLmZpcnN0Q2hpbGQuZmlyc3RDaGlsZC5jaGVja2VkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSBmYWxzZToNCiAgICAgICAgICAgICAgICAgICAgdHJzW2ldLmZpcnN0Q2hpbGQuZmlyc3RDaGlsZC5jaGVja2VkID0gZmFsc2U7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQogICAgfQ0KICAgIHJldHVybjsNCn0NCmZ1bmN0aW9uIGJ1bGtFZGl0KCkgew0KICAgIEJVTEtfRURJVCA9ICFCVUxLX0VESVQ7DQogICAgdmFyIGNsYXNzTmFtZTsNCiAgICB2YXIgcm93cyA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlDbGFzc05hbWUoImJ1bGsiKTsNCiAgICBzd2l0Y2ggKEJVTEtfRURJVCkgew0KICAgICAgICBjYXNlIHRydWU6DQogICAgICAgICAgICBjbGFzc05hbWUgPSAiYnVsayBzaG93QnVsayI7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSBmYWxzZToNCiAgICAgICAgICAgIGNsYXNzTmFtZSA9ICJidWxrIGhpZGVCdWxrIjsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgIH0NCiAgICBmb3IgKHZhciBpID0gMDsgaSA8IHJvd3MubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgcm93c1tpXS5jbGFzc05hbWUgPSBjbGFzc05hbWU7DQogICAgICAgIHJvd3NbaV0uY2hlY2tlZCA9IGZhbHNlOw0KICAgIH0NCiAgICByZXR1cm47DQp9DQpmdW5jdGlvbiBzb3J0VGFibGUoY29sdW1uKSB7DQogICAgaWYgKGNvbHVtbiA9PSBDT0xVTU5fVE9fU09SVCkgew0KICAgICAgICByZXR1cm47DQogICAgfQ0KICAgIGNvbnN0IHRhYmxlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnRlbnRfdGFibGUiKTsNCiAgICBjb25zdCB0YWJsZUhlYWQgPSB0YWJsZS5nZXRFbGVtZW50c0J5VGFnTmFtZSgiVFIiKVswXTsNCiAgICBjb25zdCB0YWJsZUl0ZW1zID0gdGFibGVIZWFkLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJURCIpOw0KICAgIGNvbnN0IHNvcnRBcnIgPSBbXTsNCiAgICBsZXQgeFZhbHVlOw0KICAgIGlmIChjb2x1bW4gPj0gMCAmJiBDT0xVTU5fVE9fU09SVCA+PSAwKSB7DQogICAgICAgIHRhYmxlSXRlbXNbQ09MVU1OX1RPX1NPUlRdLmNsYXNzTmFtZSA9ICJwb2ludGVyIjsNCiAgICAgICAgdGFibGVJdGVtc1tjb2x1bW5dLmNsYXNzTmFtZSA9ICJzb3J0VGhpcyI7DQogICAgfQ0KICAgIENPTFVNTl9UT19TT1JUID0gY29sdW1uOw0KICAgIGNvbnN0IHJvd3MgPSB0YWJsZS5yb3dzOw0KICAgIGlmIChyb3dzWzFdICE9IHVuZGVmaW5lZCkgew0KICAgICAgICBjb25zdCB0YWJsZUhlYWRlciA9IHJvd3NbMF07DQogICAgICAgIGxldCB4ID0gcm93c1sxXS5nZXRFbGVtZW50c0J5VGFnTmFtZSgiVEQiKVtjb2x1bW5dOw0KICAgICAgICBmb3IgKGxldCBpID0gMTsgaSA8IHJvd3MubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgICAgIHggPSByb3dzW2ldLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJURCIpW2NvbHVtbl07DQogICAgICAgICAgICBzd2l0Y2ggKHguY2hpbGROb2Rlc1swXS50YWdOYW1lLnRvTG93ZXJDYXNlKCkpIHsNCiAgICAgICAgICAgICAgICBjYXNlICJpbnB1dCI6DQogICAgICAgICAgICAgICAgICAgIHhWYWx1ZSA9IHguZ2V0RWxlbWVudHNCeVRhZ05hbWUoIklOUFVUIilbMF0udmFsdWUudG9Mb3dlckNhc2UoKTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAicCI6DQogICAgICAgICAgICAgICAgICAgIHhWYWx1ZSA9IHguZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlAiKVswXS5pbm5lclRleHQudG9Mb3dlckNhc2UoKTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coeC5jaGlsZE5vZGVzWzBdLnRhZ05hbWUpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgc29ydEFyci5wdXNoKHsga2V5OiB4VmFsdWUgPyB4VmFsdWUgOiBpLCByb3c6IHJvd3NbaV0gfSk7DQogICAgICAgIH0NCiAgICAgICAgd2hpbGUgKHRhYmxlLmZpcnN0Q2hpbGQpIHsNCiAgICAgICAgICAgIHRhYmxlLnJlbW92ZUNoaWxkKHRhYmxlLmZpcnN0Q2hpbGQpOw0KICAgICAgICB9DQogICAgICAgIHNvcnRBcnIuc29ydCgoc2UxLCBzZTIpID0+IHsNCiAgICAgICAgICAgIGNvbnN0IHNlMUtleU51bSA9IHBhcnNlRmxvYXQoU3RyaW5nKHNlMS5rZXkpKTsNCiAgICAgICAgICAgIGNvbnN0IHNlMktleU51bSA9IHBhcnNlRmxvYXQoU3RyaW5nKHNlMi5rZXkpKTsNCiAgICAgICAgICAgIGlmICghaXNOYU4oc2UxS2V5TnVtKSAmJiAhaXNOYU4oc2UyS2V5TnVtKSkgew0KICAgICAgICAgICAgICAgIHJldHVybiBzZTFLZXlOdW0gLSBzZTJLZXlOdW07DQogICAgICAgICAgICB9DQogICAgICAgICAgICBpZiAoc2UxLmtleSA8IHNlMi5rZXkpIHsNCiAgICAgICAgICAgICAgICByZXR1cm4gLTE7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBpZiAoc2UxLmtleSA+IHNlMi5rZXkpIHsNCiAgICAgICAgICAgICAgICByZXR1cm4gMTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIHJldHVybiAwOw0KICAgICAgICB9KTsNCiAgICAgICAgdGFibGUuYXBwZW5kQ2hpbGQodGFibGVIZWFkZXIpOw0KICAgICAgICBzb3J0QXJyLmZvckVhY2goKHNlKSA9PiB7DQogICAgICAgICAgICB0YWJsZS5hcHBlbmRDaGlsZChzZS5yb3cpOw0KICAgICAgICB9KTsNCiAgICB9DQogICAgcmV0dXJuOw0KfQ0KZnVuY3Rpb24gY3JlYXRlU2VhcmNoT2JqKCkgew0KICAgIFNFQVJDSF9NQVBQSU5HID0gbmV3IE9iamVjdCgpOw0KICAgIHZhciBkYXRhID0gU0VSVkVSWyJ4ZXBnIl1bImVwZ01hcHBpbmciXTsNCiAgICB2YXIgY2hhbm5lbHMgPSBnZXRPd25PYmpQcm9wcyhkYXRhKTsNCiAgICB2YXIgY2hhbm5lbEtleXMgPSBbIngtYWN0aXZlIiwgIngtY2hhbm5lbElEIiwgIngtbmFtZSIsICJfZmlsZS5tM3UubmFtZSIsICJ4LWdyb3VwLXRpdGxlIiwgIngteG1sdHYtZmlsZSJdOw0KICAgIGNoYW5uZWxzLmZvckVhY2goaWQgPT4gew0KICAgICAgICBjaGFubmVsS2V5cy5mb3JFYWNoKGtleSA9PiB7DQogICAgICAgICAgICBpZiAoa2V5ID09ICJ4LWFjdGl2ZSIpIHsNCiAgICAgICAgICAgICAgICBzd2l0Y2ggKGRhdGFbaWRdW2tleV0pIHsNCiAgICAgICAgICAgICAgICAgICAgY2FzZSB0cnVlOg0KICAgICAgICAgICAgICAgICAgICAgICAgU0VBUkNIX01BUFBJTkdbaWRdID0gIm9ubGluZSAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgICAgIGNhc2UgZmFsc2U6DQogICAgICAgICAgICAgICAgICAgICAgICBTRUFSQ0hfTUFQUElOR1tpZF0gPSAib2ZmbGluZSAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgZWxzZSB7DQogICAgICAgICAgICAgICAgaWYgKGtleSA9PSAieC14bWx0di1maWxlIikgew0KICAgICAgICAgICAgICAgICAgICB2YXIgeG1sdHZGaWxlID0gZ2V0VmFsdWVGcm9tUHJvdmlkZXJGaWxlKGRhdGFbaWRdW2tleV0sICJ4bWx0diIsICJuYW1lIik7DQogICAgICAgICAgICAgICAgICAgIGlmICh4bWx0dkZpbGUgIT0gdW5kZWZpbmVkKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBTRUFSQ0hfTUFQUElOR1tpZF0gPSBTRUFSQ0hfTUFQUElOR1tpZF0gKyB4bWx0dkZpbGUgKyAiICI7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgZWxzZSB7DQogICAgICAgICAgICAgICAgICAgIFNFQVJDSF9NQVBQSU5HW2lkXSA9IFNFQVJDSF9NQVBQSU5HW2lkXSArIGRhdGFbaWRdW2tleV0gKyAiICI7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfQ0KICAgICAgICB9KTsNCiAgICB9KTsNCiAgICByZXR1cm47DQp9DQpmdW5jdGlvbiBzZWFyY2hJbk1hcHBpbmcoKSB7DQogICAgdmFyIHNlYXJjaFZhbHVlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNlYXJjaE1hcHBpbmciKS52YWx1ZTsNCiAgICB2YXIgdHJzID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnRlbnRfdGFibGUiKS5nZXRFbGVtZW50c0J5VGFnTmFtZSgiVFIiKTsNCiAgICBmb3IgKHZhciBpID0gMTsgaSA8IHRycy5sZW5ndGg7ICsraSkgew0KICAgICAgICB2YXIgaWQgPSB0cnNbaV0uZ2V0QXR0cmlidXRlKCJpZCIpOw0KICAgICAgICB2YXIgZWxlbWVudCA9IFNFQVJDSF9NQVBQSU5HW2lkXTsNCiAgICAgICAgc3dpdGNoIChlbGVtZW50LnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoc2VhcmNoVmFsdWUudG9Mb3dlckNhc2UoKSkpIHsNCiAgICAgICAgICAgIGNhc2UgdHJ1ZToNCiAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkuc3R5bGUuZGlzcGxheSA9ICIiOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSBmYWxzZToNCiAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkuc3R5bGUuZGlzcGxheSA9ICJub25lIjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgfQ0KICAgIH0NCiAgICByZXR1cm47DQp9DQpmdW5jdGlvbiBjYWxjdWxhdGVXcmFwcGVySGVpZ2h0KCkgew0KICAgIGlmIChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYm94LXdyYXBwZXIiKSkgew0KICAgICAgICB2YXIgZWxtID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImJveC13cmFwcGVyIik7DQogICAgICAgIHZhciBkaXZzID0gbmV3IEFycmF5KCJteVN0cmVhbXNCb3giLCAiY2xpZW50SW5mbyIsICJjb250ZW50Iik7DQogICAgICAgIHZhciBlbGVtZW50c0hlaWdodCA9IDAgLSBlbG0ub2Zmc2V0SGVpZ2h0Ow0KICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGRpdnMubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgICAgIGVsZW1lbnRzSGVpZ2h0ID0gZWxlbWVudHNIZWlnaHQgKyBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChkaXZzW2ldKS5vZmZzZXRIZWlnaHQ7DQogICAgICAgIH0NCiAgICAgICAgZWxtLnN0eWxlLmhlaWdodCA9IHdpbmRvdy5pbm5lckhlaWdodCAtIGVsZW1lbnRzSGVpZ2h0ICsgInB4IjsNCiAgICB9DQogICAgcmV0dXJuOw0KfQ0KZnVuY3Rpb24gY2hhbmdlQ2hhbm5lbE51bWJlcihlbGVtZW50KSB7DQogICAgdmFyIGRiSUQgPSBlbGVtZW50LnBhcmVudE5vZGUucGFyZW50Tm9kZS5pZDsNCiAgICB2YXIgbmV3TnVtYmVyID0gcGFyc2VGbG9hdChlbGVtZW50LnZhbHVlKTsNCiAgICB2YXIgY2hhbm5lbE51bWJlcnMgPSBbXTsNCiAgICB2YXIgZGF0YSA9IFNFUlZFUlsieGVwZyJdWyJlcGdNYXBwaW5nIl07DQogICAgdmFyIGNoYW5uZWxzID0gZ2V0T3duT2JqUHJvcHMoZGF0YSk7DQogICAgaWYgKGlzTmFOKG5ld051bWJlcikpIHsNCiAgICAgICAgYWxlcnQoInt7LmFsZXJ0LmludmFsaWRDaGFubmVsTnVtYmVyfX0iKTsNCiAgICAgICAgcmV0dXJuOw0KICAgIH0NCiAgICBjaGFubmVscy5mb3JFYWNoKGlkID0+IHsNCiAgICAgICAgdmFyIGNoYW5uZWxOdW1iZXIgPSBwYXJzZUZsb2F0KGRhdGFbaWRdWyJ4LWNoYW5uZWxJRCJdKTsNCiAgICAgICAgY2hhbm5lbE51bWJlcnMucHVzaChjaGFubmVsTnVtYmVyKTsNCiAgICB9KTsNCiAgICBmb3IgKHZhciBpID0gMDsgaSA8IGNoYW5uZWxOdW1iZXJzLmxlbmd0aDsgaSsrKSB7DQogICAgICAgIGlmIChjaGFubmVsTnVtYmVycy5pbmRleE9mKG5ld051bWJlcikgPT0gLTEpIHsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICB9DQogICAgICAgIGlmIChNYXRoLmZsb29yKG5ld051bWJlcikgPT0gbmV3TnVtYmVyKSB7DQogICAgICAgICAgICBuZXdOdW1iZXIgPSBuZXdOdW1iZXIgKyAxOw0KICAgICAgICB9DQogICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgbmV3TnVtYmVyID0gbmV3TnVtYmVyICsgMC4xOw0KICAgICAgICAgICAgbmV3TnVtYmVyLnRvRml4ZWQoMSk7DQogICAgICAgICAgICBuZXdOdW1iZXIgPSBNYXRoLnJvdW5kKG5ld051bWJlciAqIDEwKSAvIDEwOw0KICAgICAgICB9DQogICAgfQ0KICAgIGRhdGFbZGJJRF1bIngtY2hhbm5lbElEIl0gPSBuZXdOdW1iZXIudG9TdHJpbmcoKTsNCiAgICBlbGVtZW50LnZhbHVlID0gbmV3TnVtYmVyOw0KICAgIGNvbnNvbGUubG9nKGRhdGFbZGJJRF1bIngtY2hhbm5lbElEIl0pOw0KICAgIGlmIChDT0xVTU5fVE9fU09SVCA9PSAxKSB7DQogICAgICAgIENPTFVNTl9UT19TT1JUID0gLTE7DQogICAgICAgIHNvcnRUYWJsZSgxKTsNCiAgICB9DQogICAgcmV0dXJuOw0KfQ0KZnVuY3Rpb24gYmFja3VwKCkgew0KICAgIHZhciBkYXRhID0gbmV3IE9iamVjdCgpOw0KICAgIGNvbnNvbGUubG9nKCJCYWNrdXAgZGF0YSIpOw0KICAgIHZhciBjbWQgPSAieHRldmVCYWNrdXAiOw0KICAgIGNvbnNvbGUubG9nKCJTRU5EIFRPIFNFUlZFUiIpOw0KICAgIGNvbnNvbGUubG9nKGRhdGEpOw0KICAgIHZhciBzZXJ2ZXIgPSBuZXcgU2VydmVyKGNtZCk7DQogICAgc2VydmVyLnJlcXVlc3QoZGF0YSk7DQogICAgcmV0dXJuOw0KfQ0KZnVuY3Rpb24gdG9nZ2xlQ2hhbm5lbFN0YXR1cyhpZCkgew0KICAgIHZhciBlbGVtZW50Ow0KICAgIHZhciBzdGF0dXM7DQogICAgaWYgKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJhY3RpdmUiKSkgew0KICAgICAgICB2YXIgY2hlY2tib3ggPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYWN0aXZlIik7DQogICAgICAgIHN0YXR1cyA9IChjaGVja2JveCkuY2hlY2tlZDsNCiAgICB9DQogICAgdmFyIGlkcyA9IGdldEFsbFNlbGVjdGVkQ2hhbm5lbHMoKTsNCiAgICBpZiAoaWRzLmxlbmd0aCA9PSAwKSB7DQogICAgICAgIGlkcy5wdXNoKGlkKTsNCiAgICB9DQogICAgaWRzLmZvckVhY2goaWQgPT4gew0KICAgICAgICB2YXIgY2hhbm5lbCA9IFNFUlZFUlsieGVwZyJdWyJlcGdNYXBwaW5nIl1baWRdOw0KICAgICAgICBjaGFubmVsWyJ4LWFjdGl2ZSJdID0gc3RhdHVzOw0KICAgICAgICBzd2l0Y2ggKGNoYW5uZWxbIngtYWN0aXZlIl0pIHsNCiAgICAgICAgICAgIGNhc2UgdHJ1ZToNCiAgICAgICAgICAgICAgICBpZiAoY2hhbm5lbFsieC14bWx0di1maWxlIl0gPT0gIi0iIHx8IGNoYW5uZWxbIngtbWFwcGluZyJdID09ICItIikgew0KICAgICAgICAgICAgICAgICAgICBpZiAoQlVMS19FRElUID09IGZhbHNlKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBhbGVydChjaGFubmVsWyJ4LW5hbWUiXSArICI6IE1pc3NpbmcgWE1MVFYgZmlsZSAvIGNoYW5uZWwiKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNoZWNrYm94LmNoZWNrZWQgPSBmYWxzZTsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBjaGFubmVsWyJ4LWFjdGl2ZSJdID0gZmFsc2U7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSBmYWxzZToNCiAgICAgICAgICAgICAgICAvLyBjb2RlLi4uDQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIH0NCiAgICAgICAgaWYgKGNoYW5uZWxbIngtYWN0aXZlIl0gPT0gZmFsc2UpIHsNCiAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5jbGFzc05hbWUgPSAibm90QWN0aXZlRVBHIjsNCiAgICAgICAgfQ0KICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5jbGFzc05hbWUgPSAiYWN0aXZlRVBHIjsNCiAgICAgICAgfQ0KICAgIH0pOw0KfQ0KZnVuY3Rpb24gdG9nZ2xlR3JvdXBVcGRhdGVDYih4ZXBnSWQsIHRhcmdldCkgew0KICAgIHRhcmdldC5jbGFzc05hbWUgPSAnY2hhbmdlZCc7DQogICAgY29uc3QgZ3JvdXBJbnB1dCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ2lucHV0W25hbWU9IngtZ3JvdXAtdGl0bGUiXScpOw0KICAgIGNvbnN0IG1hcHBpbmcgPSBnZXRMb2NhbERhdGEoJ21hcHBpbmcnLCB4ZXBnSWQpOw0KICAgIGlmICh0YXJnZXQuY2hlY2tlZCkgew0KICAgICAgICBncm91cElucHV0LmRhdGFzZXQub2xkVmFsdWUgPSBncm91cElucHV0LnZhbHVlOw0KICAgICAgICBncm91cElucHV0LnZhbHVlID0gbWFwcGluZ1snZ3JvdXAtdGl0bGUnXTsNCiAgICAgICAgZ3JvdXBJbnB1dC5kaXNhYmxlZCA9IHRydWU7DQogICAgfQ0KICAgIGVsc2Ugew0KICAgICAgICBncm91cElucHV0LnZhbHVlID0gZ3JvdXBJbnB1dC5kYXRhc2V0Lm9sZFZhbHVlOw0KICAgICAgICBncm91cElucHV0LmRpc2FibGVkID0gZmFsc2U7DQogICAgfQ0KICAgIGdyb3VwSW5wdXQuY2xhc3NOYW1lID0gJ2NoYW5nZWQnOw0KfQ0KZnVuY3Rpb24gcmVzdG9yZSgpIHsNCiAgICBpZiAoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3VwbG9hZCcpKSB7DQogICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd1cGxvYWQnKS5yZW1vdmUoKTsNCiAgICB9DQogICAgdmFyIHJlc3RvcmUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJJTlBVVCIpOw0KICAgIHJlc3RvcmUuc2V0QXR0cmlidXRlKCJ0eXBlIiwgImZpbGUiKTsNCiAgICByZXN0b3JlLnNldEF0dHJpYnV0ZSgiY2xhc3MiLCAibm90VmlzaWJsZSIpOw0KICAgIHJlc3RvcmUuc2V0QXR0cmlidXRlKCJuYW1lIiwgIiIpOw0KICAgIHJlc3RvcmUuaWQgPSAidXBsb2FkIjsNCiAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHJlc3RvcmUpOw0KICAgIHJlc3RvcmUuY2xpY2soKTsNCiAgICByZXN0b3JlLm9uY2hhbmdlID0gZnVuY3Rpb24gKCkgew0KICAgICAgICB2YXIgZmlsZW5hbWUgPSByZXN0b3JlLmZpbGVzWzBdLm5hbWU7DQogICAgICAgIHZhciBjaGVjayA9IGNvbmZpcm0oIkZpbGU6ICIgKyBmaWxlbmFtZSArICJcbnt7LmNvbmZpcm0ucmVzdG9yZX19Iik7DQogICAgICAgIGlmIChjaGVjayA9PSB0cnVlKSB7DQogICAgICAgICAgICB2YXIgcmVhZGVyID0gbmV3IEZpbGVSZWFkZXIoKTsNCiAgICAgICAgICAgIHZhciBmaWxlID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignaW5wdXRbdHlwZT1maWxlXScpLmZpbGVzWzBdOw0KICAgICAgICAgICAgaWYgKGZpbGUpIHsNCiAgICAgICAgICAgICAgICByZWFkZXIucmVhZEFzRGF0YVVSTChmaWxlKTsNCiAgICAgICAgICAgICAgICByZWFkZXIub25sb2FkID0gZnVuY3Rpb24gKCkgew0KICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhyZWFkZXIucmVzdWx0KTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGRhdGEgPSBuZXcgT2JqZWN0KCk7DQogICAgICAgICAgICAgICAgICAgIHZhciBjbWQgPSAieHRldmVSZXN0b3JlIjsNCiAgICAgICAgICAgICAgICAgICAgZGF0YVsiYmFzZTY0Il0gPSByZWFkZXIucmVzdWx0Ow0KICAgICAgICAgICAgICAgICAgICB2YXIgc2VydmVyID0gbmV3IFNlcnZlcihjbWQpOw0KICAgICAgICAgICAgICAgICAgICBzZXJ2ZXIucmVxdWVzdChkYXRhKTsNCiAgICAgICAgICAgICAgICB9Ow0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgZWxzZSB7DQogICAgICAgICAgICAgICAgYWxlcnQoIkZpbGUgY291bGQgbm90IGJlIGxvYWRlZCIpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgcmVzdG9yZS5yZW1vdmUoKTsNCiAgICAgICAgICAgIHJldHVybjsNCiAgICAgICAgfQ0KICAgIH07DQogICAgcmV0dXJuOw0KfQ0KZnVuY3Rpb24gdXBsb2FkTG9nbygpIHsNCiAgICBpZiAoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3VwbG9hZCcpKSB7DQogICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd1cGxvYWQnKS5yZW1vdmUoKTsNCiAgICB9DQogICAgdmFyIHVwbG9hZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIklOUFVUIik7DQogICAgdXBsb2FkLnNldEF0dHJpYnV0ZSgidHlwZSIsICJmaWxlIik7DQogICAgdXBsb2FkLnNldEF0dHJpYnV0ZSgiY2xhc3MiLCAibm90VmlzaWJsZSIpOw0KICAgIHVwbG9hZC5zZXRBdHRyaWJ1dGUoIm5hbWUiLCAiIik7DQogICAgdXBsb2FkLmlkID0gInVwbG9hZCI7DQogICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZCh1cGxvYWQpOw0KICAgIHVwbG9hZC5jbGljaygpOw0KICAgIHVwbG9hZC5vbmJsdXIgPSBmdW5jdGlvbiAoKSB7DQogICAgICAgIGFsZXJ0KCk7DQogICAgfTsNCiAgICB1cGxvYWQub25jaGFuZ2UgPSBmdW5jdGlvbiAoKSB7DQogICAgICAgIHZhciBmaWxlbmFtZSA9IHVwbG9hZC5maWxlc1swXS5uYW1lOw0KICAgICAgICB2YXIgcmVhZGVyID0gbmV3IEZpbGVSZWFkZXIoKTsNCiAgICAgICAgdmFyIGZpbGUgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCdpbnB1dFt0eXBlPWZpbGVdJykuZmlsZXNbMF07DQogICAgICAgIGlmIChmaWxlKSB7DQogICAgICAgICAgICByZWFkZXIucmVhZEFzRGF0YVVSTChmaWxlKTsNCiAgICAgICAgICAgIHJlYWRlci5vbmxvYWQgPSBmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICAgICAgY29uc29sZS5sb2cocmVhZGVyLnJlc3VsdCk7DQogICAgICAgICAgICAgICAgdmFyIGRhdGEgPSBuZXcgT2JqZWN0KCk7DQogICAgICAgICAgICAgICAgdmFyIGNtZCA9ICJ1cGxvYWRMb2dvIjsNCiAgICAgICAgICAgICAgICBkYXRhWyJiYXNlNjQiXSA9IHJlYWRlci5yZXN1bHQ7DQogICAgICAgICAgICAgICAgZGF0YVsiZmlsZW5hbWUiXSA9IGZpbGUubmFtZTsNCiAgICAgICAgICAgICAgICB2YXIgc2VydmVyID0gbmV3IFNlcnZlcihjbWQpOw0KICAgICAgICAgICAgICAgIHNlcnZlci5yZXF1ZXN0KGRhdGEpOw0KICAgICAgICAgICAgICAgIHZhciB1cGRhdGVMb2dvID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3VwZGF0ZS1pY29uJyk7DQogICAgICAgICAgICAgICAgdXBkYXRlTG9nby5jaGVja2VkID0gZmFsc2U7DQogICAgICAgICAgICAgICAgdXBkYXRlTG9nby5jbGFzc05hbWUgPSAiY2hhbmdlZCI7DQogICAgICAgICAgICB9Ow0KICAgICAgICB9DQogICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgYWxlcnQoIkZpbGUgY291bGQgbm90IGJlIGxvYWRlZCIpOw0KICAgICAgICB9DQogICAgICAgIHVwbG9hZC5yZW1vdmUoKTsNCiAgICAgICAgcmV0dXJuOw0KICAgIH07DQp9DQpmdW5jdGlvbiBjaGVja1VuZG8oa2V5KSB7DQogICAgc3dpdGNoIChrZXkpIHsNCiAgICAgICAgY2FzZSAiZXBnTWFwcGluZyI6DQogICAgICAgICAgICBpZiAoVU5ETy5oYXNPd25Qcm9wZXJ0eShrZXkpKSB7DQogICAgICAgICAgICAgICAgU0VSVkVSWyJ4ZXBnIl1ba2V5XSA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkoVU5ET1trZXldKSk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICBVTkRPW2tleV0gPSBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KFNFUlZFUlsieGVwZyJdW2tleV0pKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBkZWZhdWx0Og0KICAgICAgICAgICAgYnJlYWs7DQogICAgfQ0KICAgIHJldHVybjsNCn0NCmZ1bmN0aW9uIHNvcnRTZWxlY3Qoc2VsZWN0KSB7DQogICAgY29uc3QgdGVtcEFyciA9IFtdOw0KICAgIGNvbnN0IHNlbGVjdGVkVmFsdWUgPSBzZWxlY3Qub3B0aW9uc1tzZWxlY3Quc2VsZWN0ZWRJbmRleF0udmFsdWU7DQogICAgZm9yIChjb25zdCBzZWxlY3RPcHRpb24gb2Ygc2VsZWN0Lm9wdGlvbnMpIHsNCiAgICAgICAgdGVtcEFyci5wdXNoKHNlbGVjdE9wdGlvbik7DQogICAgfQ0KICAgIHRlbXBBcnIuc29ydCgobzEsIG8yKSA9PiB7DQogICAgICAgIGlmIChvMS50ZXh0IDwgbzIudGV4dCkgew0KICAgICAgICAgICAgcmV0dXJuIC0xOw0KICAgICAgICB9DQogICAgICAgIGlmIChvMS50ZXh0ID4gbzIudGV4dCkgew0KICAgICAgICAgICAgcmV0dXJuIDE7DQogICAgICAgIH0NCiAgICAgICAgcmV0dXJuIDA7DQogICAgfSk7DQogICAgd2hpbGUgKHNlbGVjdC5vcHRpb25zLmxlbmd0aCA+IDApIHsNCiAgICAgICAgc2VsZWN0Lm9wdGlvbnNbMF0gPSBudWxsOw0KICAgIH0NCiAgICA7DQogICAgbGV0IG5ld1NlbGVjdGVkSW5kZXggPSAwOw0KICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGVtcEFyci5sZW5ndGg7IGkrKykgew0KICAgICAgICBzZWxlY3Qub3B0aW9uc1tpXSA9IHRlbXBBcnJbaV07DQogICAgICAgIGlmIChzZWxlY3Qub3B0aW9uc1tpXS52YWx1ZSA9PSBzZWxlY3RlZFZhbHVlKSB7DQogICAgICAgICAgICBuZXdTZWxlY3RlZEluZGV4ID0gaTsNCiAgICAgICAgfQ0KICAgIH0NCiAgICAvLyBTZXQgbmV3IHNlbGVjdGVkIGluZGV4IGFmdGVyIHNvcnRpbmcNCiAgICBzZWxlY3Quc2VsZWN0ZWRJbmRleCA9IG5ld1NlbGVjdGVkSW5kZXg7DQp9DQpmdW5jdGlvbiB1cGRhdGVMb2coKSB7DQogICAgY29uc29sZS5sb2coIlRPS0VOIik7DQogICAgdmFyIHNlcnZlciA9IG5ldyBTZXJ2ZXIoInVwZGF0ZUxvZyIpOw0KICAgIHNlcnZlci5yZXF1ZXN0KG5ldyBPYmplY3QoKSk7DQp9DQo=" + webUI["html/js/base_ts.js"] = "dmFyIFNFUlZFUiA9IG5ldyBPYmplY3QoKTsNCnZhciBCVUxLX0VESVQgPSBmYWxzZTsNCnZhciBDT0xVTU5fVE9fU09SVDsNCnZhciBTRUFSQ0hfTUFQUElORyA9IG5ldyBPYmplY3QoKTsNCnZhciBVTkRPID0gbmV3IE9iamVjdCgpOw0KdmFyIFNFUlZFUl9DT05ORUNUSU9OID0gZmFsc2U7DQp2YXIgV1NfQVZBSUxBQkxFID0gZmFsc2U7DQovLyBNZW51DQp2YXIgbWVudUl0ZW1zID0gbmV3IEFycmF5KCk7DQptZW51SXRlbXMucHVzaChuZXcgTWFpbk1lbnVJdGVtKCJwbGF5bGlzdCIsICJ7ey5tYWluTWVudS5pdGVtLnBsYXlsaXN0fX0iLCAibTN1LnBuZyIsICJ7ey5tYWluTWVudS5oZWFkbGluZS5wbGF5bGlzdH19IikpOw0KLy9tZW51SXRlbXMucHVzaChuZXcgTWFpbk1lbnVJdGVtKCJwbXNJRCIsICJ7ey5tYWluTWVudS5pdGVtLnBtc0lEfX0iLCAibnVtYmVyLnBuZyIsICJ7ey5tYWluTWVudS5oZWFkbGluZS5wbXNJRH19IikpDQptZW51SXRlbXMucHVzaChuZXcgTWFpbk1lbnVJdGVtKCJmaWx0ZXIiLCAie3subWFpbk1lbnUuaXRlbS5maWx0ZXJ9fSIsICJmaWx0ZXIucG5nIiwgInt7Lm1haW5NZW51LmhlYWRsaW5lLmZpbHRlcn19IikpOw0KbWVudUl0ZW1zLnB1c2gobmV3IE1haW5NZW51SXRlbSgieG1sdHYiLCAie3subWFpbk1lbnUuaXRlbS54bWx0dn19IiwgInhtbHR2LnBuZyIsICJ7ey5tYWluTWVudS5oZWFkbGluZS54bWx0dn19IikpOw0KbWVudUl0ZW1zLnB1c2gobmV3IE1haW5NZW51SXRlbSgibWFwcGluZyIsICJ7ey5tYWluTWVudS5pdGVtLm1hcHBpbmd9fSIsICJtYXBwaW5nLnBuZyIsICJ7ey5tYWluTWVudS5oZWFkbGluZS5tYXBwaW5nfX0iKSk7DQptZW51SXRlbXMucHVzaChuZXcgTWFpbk1lbnVJdGVtKCJ1c2VycyIsICJ7ey5tYWluTWVudS5pdGVtLnVzZXJzfX0iLCAidXNlcnMucG5nIiwgInt7Lm1haW5NZW51LmhlYWRsaW5lLnVzZXJzfX0iKSk7DQptZW51SXRlbXMucHVzaChuZXcgTWFpbk1lbnVJdGVtKCJzZXR0aW5ncyIsICJ7ey5tYWluTWVudS5pdGVtLnNldHRpbmdzfX0iLCAic2V0dGluZ3MucG5nIiwgInt7Lm1haW5NZW51LmhlYWRsaW5lLnNldHRpbmdzfX0iKSk7DQptZW51SXRlbXMucHVzaChuZXcgTWFpbk1lbnVJdGVtKCJsb2ciLCAie3subWFpbk1lbnUuaXRlbS5sb2d9fSIsICJsb2cucG5nIiwgInt7Lm1haW5NZW51LmhlYWRsaW5lLmxvZ319IikpOw0KbWVudUl0ZW1zLnB1c2gobmV3IE1haW5NZW51SXRlbSgibG9nb3V0IiwgInt7Lm1haW5NZW51Lml0ZW0ubG9nb3V0fX0iLCAibG9nb3V0LnBuZyIsICJ7ey5tYWluTWVudS5oZWFkbGluZS5sb2dvdXR9fSIpKTsNCi8vIFNldHRpbmdzIGNhdGVnb3JpZXMNCnZhciBzZXR0aW5nc0NhdGVnb3J5ID0gbmV3IEFycmF5KCk7DQpzZXR0aW5nc0NhdGVnb3J5LnB1c2gobmV3IFNldHRpbmdzQ2F0ZWdvcnlJdGVtKCJ7ey5zZXR0aW5ncy5jYXRlZ29yeS5nZW5lcmFsfX0iLCAidGxzTW9kZSx4dGV2ZUF1dG9VcGRhdGUsaG9zdElQLHR1bmVyLGVwZ1NvdXJjZSxhcGkiKSk7DQpzZXR0aW5nc0NhdGVnb3J5LnB1c2gobmV3IFNldHRpbmdzQ2F0ZWdvcnlJdGVtKCJ7ey5zZXR0aW5ncy5jYXRlZ29yeS5maWxlc319IiwgInVwZGF0ZSxmaWxlcy51cGRhdGUsdGVtcC5wYXRoLGNhY2hlLmltYWdlcyx4ZXBnLnJlcGxhY2UubWlzc2luZy5pbWFnZXMiKSk7DQpzZXR0aW5nc0NhdGVnb3J5LnB1c2gobmV3IFNldHRpbmdzQ2F0ZWdvcnlJdGVtKCJ7ey5zZXR0aW5ncy5jYXRlZ29yeS5zdHJlYW1pbmd9fSIsICJidWZmZXIsdWRweHksYnVmZmVyLnNpemUua2IsYnVmZmVyLnRpbWVvdXQsdXNlci5hZ2VudCxmZm1wZWcucGF0aCxmZm1wZWcub3B0aW9ucyx2bGMucGF0aCx2bGMub3B0aW9ucyIpKTsNCnNldHRpbmdzQ2F0ZWdvcnkucHVzaChuZXcgU2V0dGluZ3NDYXRlZ29yeUl0ZW0oInt7LnNldHRpbmdzLmNhdGVnb3J5LmJhY2t1cH19IiwgImJhY2t1cC5wYXRoLGJhY2t1cC5rZWVwIikpOw0Kc2V0dGluZ3NDYXRlZ29yeS5wdXNoKG5ldyBTZXR0aW5nc0NhdGVnb3J5SXRlbSgie3suc2V0dGluZ3MuY2F0ZWdvcnkuYXV0aGVudGljYXRpb259fSIsICJhdXRoZW50aWNhdGlvbi53ZWIsYXV0aGVudGljYXRpb24ucG1zLGF1dGhlbnRpY2F0aW9uLm0zdSxhdXRoZW50aWNhdGlvbi54bWwsYXV0aGVudGljYXRpb24uYXBpIikpOw0KZnVuY3Rpb24gc2hvd1BvcFVwRWxlbWVudChlbG0pIHsNCiAgICB2YXIgYWxsRWxlbWVudHMgPSBuZXcgQXJyYXkoInBvcHVwLWN1c3RvbSIpOw0KICAgIGZvciAodmFyIGkgPSAwOyBpIDwgYWxsRWxlbWVudHMubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgc2hvd0VsZW1lbnQoYWxsRWxlbWVudHNbaV0sIGZhbHNlKTsNCiAgICB9DQogICAgc2hvd0VsZW1lbnQoZWxtLCB0cnVlKTsNCiAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsNCiAgICAgICAgc2hvd0VsZW1lbnQoInBvcHVwIiwgdHJ1ZSk7DQogICAgfSwgMTApOw0KICAgIHJldHVybjsNCn0NCmZ1bmN0aW9uIHNob3dFbGVtZW50KGVsbUlELCB0eXBlKSB7DQogICAgdmFyIGNzc0NsYXNzOw0KICAgIHN3aXRjaCAodHlwZSkgew0KICAgICAgICBjYXNlIHRydWU6DQogICAgICAgICAgICBjc3NDbGFzcyA9ICJibG9jayI7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSBmYWxzZToNCiAgICAgICAgICAgIGNzc0NsYXNzID0gIm5vbmUiOw0KICAgICAgICAgICAgYnJlYWs7DQogICAgfQ0KICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGVsbUlEKS5jbGFzc05hbWUgPSBjc3NDbGFzczsNCn0NCmZ1bmN0aW9uIGNoYW5nZUJ1dHRvbkFjdGlvbihlbGVtZW50LCBidXR0b25JRCwgYXR0cmlidXRlKSB7DQogICAgdmFyIHZhbHVlID0gZWxlbWVudC5vcHRpb25zW2VsZW1lbnQuc2VsZWN0ZWRJbmRleF0udmFsdWU7DQogICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoYnV0dG9uSUQpLnNldEF0dHJpYnV0ZShhdHRyaWJ1dGUsIHZhbHVlKTsNCn0NCmZ1bmN0aW9uIGdldExvY2FsRGF0YShkYXRhVHlwZSwgaWQpIHsNCiAgICBsZXQgZGF0YSA9IHt9Ow0KICAgIHN3aXRjaCAoZGF0YVR5cGUpIHsNCiAgICAgICAgY2FzZSAibTN1IjoNCiAgICAgICAgICAgIGRhdGEgPSBTRVJWRVJbInNldHRpbmdzIl1bImZpbGVzIl1bZGF0YVR5cGVdW2lkXTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJoZGhyIjoNCiAgICAgICAgICAgIGRhdGEgPSBTRVJWRVJbInNldHRpbmdzIl1bImZpbGVzIl1bZGF0YVR5cGVdW2lkXTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJmaWx0ZXIiOg0KICAgICAgICBjYXNlICJjdXN0b20tZmlsdGVyIjoNCiAgICAgICAgY2FzZSAiZ3JvdXAtdGl0bGUiOg0KICAgICAgICAgICAgaWYgKGlkID09IC0xKSB7DQogICAgICAgICAgICAgICAgZGF0YVsiYWN0aXZlIl0gPSB0cnVlOw0KICAgICAgICAgICAgICAgIGRhdGFbImNhc2VTZW5zaXRpdmUiXSA9IGZhbHNlOw0KICAgICAgICAgICAgICAgIGRhdGFbImRlc2NyaXB0aW9uIl0gPSAiIjsNCiAgICAgICAgICAgICAgICBkYXRhWyJleGNsdWRlIl0gPSAiIjsNCiAgICAgICAgICAgICAgICBkYXRhWyJmaWx0ZXIiXSA9ICIiOw0KICAgICAgICAgICAgICAgIGRhdGFbImluY2x1ZGUiXSA9ICIiOw0KICAgICAgICAgICAgICAgIGRhdGFbIm5hbWUiXSA9ICIiOw0KICAgICAgICAgICAgICAgIGRhdGFbInR5cGUiXSA9ICJncm91cC10aXRsZSI7DQogICAgICAgICAgICAgICAgZGF0YVsicHJlc2VydmVNYXBwaW5nIl0gPSB0cnVlOw0KICAgICAgICAgICAgICAgIGRhdGFbInN0YXJ0aW5nQ2hhbm5lbCJdID0gU0VSVkVSWyJzZXR0aW5ncyJdWyJtYXBwaW5nLmZpcnN0LmNoYW5uZWwiXTsNCiAgICAgICAgICAgICAgICBkYXRhWyJkZWZhdWx0TWlzc2luZ0VQRyJdID0gIi0iOw0KICAgICAgICAgICAgICAgIFNFUlZFUlsic2V0dGluZ3MiXVsiZmlsdGVyIl1baWRdID0gZGF0YTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGRhdGEgPSBTRVJWRVJbInNldHRpbmdzIl1bImZpbHRlciJdW2lkXTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJ4bWx0diI6DQogICAgICAgICAgICBkYXRhID0gU0VSVkVSWyJzZXR0aW5ncyJdWyJmaWxlcyJdW2RhdGFUeXBlXVtpZF07DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSAidXNlcnMiOg0KICAgICAgICAgICAgZGF0YSA9IFNFUlZFUlsidXNlcnMiXVtpZF1bImRhdGEiXTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJtYXBwaW5nIjoNCiAgICAgICAgICAgIGRhdGEgPSBTRVJWRVJbInhlcGciXVsiZXBnTWFwcGluZyJdW2lkXTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJtM3VHcm91cHMiOg0KICAgICAgICAgICAgZGF0YSA9IFNFUlZFUlsiZGF0YSJdWyJwbGF5bGlzdCJdWyJtM3UiXVsiZ3JvdXBzIl07DQogICAgICAgICAgICBicmVhazsNCiAgICB9DQogICAgcmV0dXJuIGRhdGE7DQp9DQpmdW5jdGlvbiBnZXRPd25PYmpQcm9wcyhvYmplY3QpIHsNCiAgICByZXR1cm4gb2JqZWN0ID8gT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMob2JqZWN0KSA6IFtdOw0KfQ0KZnVuY3Rpb24gZ2V0QWxsU2VsZWN0ZWRDaGFubmVscygpIHsNCiAgICB2YXIgY2hhbm5lbHMgPSBuZXcgQXJyYXkoKTsNCiAgICBpZiAoQlVMS19FRElUID09IGZhbHNlKSB7DQogICAgICAgIHJldHVybiBjaGFubmVsczsNCiAgICB9DQogICAgdmFyIHRycyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb250ZW50X3RhYmxlIikuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlRSIik7DQogICAgZm9yICh2YXIgaSA9IDE7IGkgPCB0cnMubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgaWYgKHRyc1tpXS5zdHlsZS5kaXNwbGF5ICE9ICJub25lIikgew0KICAgICAgICAgICAgaWYgKHRyc1tpXS5maXJzdENoaWxkLmZpcnN0Q2hpbGQuY2hlY2tlZCA9PSB0cnVlKSB7DQogICAgICAgICAgICAgICAgY2hhbm5lbHMucHVzaCh0cnNbaV0uaWQpOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQogICAgfQ0KICAgIHJldHVybiBjaGFubmVsczsNCn0NCmZ1bmN0aW9uIHNlbGVjdEFsbENoYW5uZWxzKCkgew0KICAgIHZhciBidWxrID0gZmFsc2U7DQogICAgdmFyIHRycyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb250ZW50X3RhYmxlIikuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlRSIik7DQogICAgaWYgKHRyc1swXS5maXJzdENoaWxkLmZpcnN0Q2hpbGQuY2hlY2tlZCA9PSB0cnVlKSB7DQogICAgICAgIGJ1bGsgPSB0cnVlOw0KICAgIH0NCiAgICBmb3IgKHZhciBpID0gMTsgaSA8IHRycy5sZW5ndGg7IGkrKykgew0KICAgICAgICBpZiAodHJzW2ldLnN0eWxlLmRpc3BsYXkgIT0gIm5vbmUiKSB7DQogICAgICAgICAgICBzd2l0Y2ggKGJ1bGspIHsNCiAgICAgICAgICAgICAgICBjYXNlIHRydWU6DQogICAgICAgICAgICAgICAgICAgIHRyc1tpXS5maXJzdENoaWxkLmZpcnN0Q2hpbGQuY2hlY2tlZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgZmFsc2U6DQogICAgICAgICAgICAgICAgICAgIHRyc1tpXS5maXJzdENoaWxkLmZpcnN0Q2hpbGQuY2hlY2tlZCA9IGZhbHNlOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KICAgIH0NCiAgICByZXR1cm47DQp9DQpmdW5jdGlvbiBidWxrRWRpdCgpIHsNCiAgICBCVUxLX0VESVQgPSAhQlVMS19FRElUOw0KICAgIHZhciBjbGFzc05hbWU7DQogICAgdmFyIHJvd3MgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCJidWxrIik7DQogICAgc3dpdGNoIChCVUxLX0VESVQpIHsNCiAgICAgICAgY2FzZSB0cnVlOg0KICAgICAgICAgICAgY2xhc3NOYW1lID0gImJ1bGsgc2hvd0J1bGsiOw0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGNhc2UgZmFsc2U6DQogICAgICAgICAgICBjbGFzc05hbWUgPSAiYnVsayBoaWRlQnVsayI7DQogICAgICAgICAgICBicmVhazsNCiAgICB9DQogICAgZm9yICh2YXIgaSA9IDA7IGkgPCByb3dzLmxlbmd0aDsgaSsrKSB7DQogICAgICAgIHJvd3NbaV0uY2xhc3NOYW1lID0gY2xhc3NOYW1lOw0KICAgICAgICByb3dzW2ldLmNoZWNrZWQgPSBmYWxzZTsNCiAgICB9DQogICAgcmV0dXJuOw0KfQ0KZnVuY3Rpb24gc29ydFRhYmxlKGNvbHVtbikgew0KICAgIGlmIChjb2x1bW4gPT0gQ09MVU1OX1RPX1NPUlQpIHsNCiAgICAgICAgcmV0dXJuOw0KICAgIH0NCiAgICBjb25zdCB0YWJsZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb250ZW50X3RhYmxlIik7DQogICAgY29uc3QgdGFibGVIZWFkID0gdGFibGUuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlRSIilbMF07DQogICAgY29uc3QgdGFibGVJdGVtcyA9IHRhYmxlSGVhZC5nZXRFbGVtZW50c0J5VGFnTmFtZSgiVEQiKTsNCiAgICBjb25zdCBzb3J0QXJyID0gW107DQogICAgbGV0IHhWYWx1ZTsNCiAgICBpZiAoY29sdW1uID49IDAgJiYgQ09MVU1OX1RPX1NPUlQgPj0gMCkgew0KICAgICAgICB0YWJsZUl0ZW1zW0NPTFVNTl9UT19TT1JUXS5jbGFzc05hbWUgPSAicG9pbnRlciI7DQogICAgICAgIHRhYmxlSXRlbXNbY29sdW1uXS5jbGFzc05hbWUgPSAic29ydFRoaXMiOw0KICAgIH0NCiAgICBDT0xVTU5fVE9fU09SVCA9IGNvbHVtbjsNCiAgICBjb25zdCByb3dzID0gdGFibGUucm93czsNCiAgICBpZiAocm93c1sxXSAhPSB1bmRlZmluZWQpIHsNCiAgICAgICAgY29uc3QgdGFibGVIZWFkZXIgPSByb3dzWzBdOw0KICAgICAgICBsZXQgeCA9IHJvd3NbMV0uZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlREIilbY29sdW1uXTsNCiAgICAgICAgZm9yIChsZXQgaSA9IDE7IGkgPCByb3dzLmxlbmd0aDsgaSsrKSB7DQogICAgICAgICAgICB4ID0gcm93c1tpXS5nZXRFbGVtZW50c0J5VGFnTmFtZSgiVEQiKVtjb2x1bW5dOw0KICAgICAgICAgICAgc3dpdGNoICh4LmNoaWxkTm9kZXNbMF0udGFnTmFtZS50b0xvd2VyQ2FzZSgpKSB7DQogICAgICAgICAgICAgICAgY2FzZSAiaW5wdXQiOg0KICAgICAgICAgICAgICAgICAgICB4VmFsdWUgPSB4LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJJTlBVVCIpWzBdLnZhbHVlLnRvTG93ZXJDYXNlKCk7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgInAiOg0KICAgICAgICAgICAgICAgICAgICB4VmFsdWUgPSB4LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJQIilbMF0uaW5uZXJUZXh0LnRvTG93ZXJDYXNlKCk7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKHguY2hpbGROb2Rlc1swXS50YWdOYW1lKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIHNvcnRBcnIucHVzaCh7IGtleTogeFZhbHVlID8geFZhbHVlIDogaSwgcm93OiByb3dzW2ldIH0pOw0KICAgICAgICB9DQogICAgICAgIHdoaWxlICh0YWJsZS5maXJzdENoaWxkKSB7DQogICAgICAgICAgICB0YWJsZS5yZW1vdmVDaGlsZCh0YWJsZS5maXJzdENoaWxkKTsNCiAgICAgICAgfQ0KICAgICAgICBzb3J0QXJyLnNvcnQoKHNlMSwgc2UyKSA9PiB7DQogICAgICAgICAgICBjb25zdCBzZTFLZXlOdW0gPSBwYXJzZUZsb2F0KFN0cmluZyhzZTEua2V5KSk7DQogICAgICAgICAgICBjb25zdCBzZTJLZXlOdW0gPSBwYXJzZUZsb2F0KFN0cmluZyhzZTIua2V5KSk7DQogICAgICAgICAgICBpZiAoIWlzTmFOKHNlMUtleU51bSkgJiYgIWlzTmFOKHNlMktleU51bSkpIHsNCiAgICAgICAgICAgICAgICByZXR1cm4gc2UxS2V5TnVtIC0gc2UyS2V5TnVtOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgaWYgKHNlMS5rZXkgPCBzZTIua2V5KSB7DQogICAgICAgICAgICAgICAgcmV0dXJuIC0xOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgaWYgKHNlMS5rZXkgPiBzZTIua2V5KSB7DQogICAgICAgICAgICAgICAgcmV0dXJuIDE7DQogICAgICAgICAgICB9DQogICAgICAgICAgICByZXR1cm4gMDsNCiAgICAgICAgfSk7DQogICAgICAgIHRhYmxlLmFwcGVuZENoaWxkKHRhYmxlSGVhZGVyKTsNCiAgICAgICAgc29ydEFyci5mb3JFYWNoKChzZSkgPT4gew0KICAgICAgICAgICAgdGFibGUuYXBwZW5kQ2hpbGQoc2Uucm93KTsNCiAgICAgICAgfSk7DQogICAgfQ0KICAgIHJldHVybjsNCn0NCmZ1bmN0aW9uIGNyZWF0ZVNlYXJjaE9iaigpIHsNCiAgICBTRUFSQ0hfTUFQUElORyA9IG5ldyBPYmplY3QoKTsNCiAgICB2YXIgZGF0YSA9IFNFUlZFUlsieGVwZyJdWyJlcGdNYXBwaW5nIl07DQogICAgdmFyIGNoYW5uZWxzID0gZ2V0T3duT2JqUHJvcHMoZGF0YSk7DQogICAgdmFyIGNoYW5uZWxLZXlzID0gWyJ4LWFjdGl2ZSIsICJ4LWNoYW5uZWxJRCIsICJ4LW5hbWUiLCAiX2ZpbGUubTN1Lm5hbWUiLCAieC1ncm91cC10aXRsZSIsICJ4LXhtbHR2LWZpbGUiXTsNCiAgICBjaGFubmVscy5mb3JFYWNoKGlkID0+IHsNCiAgICAgICAgY2hhbm5lbEtleXMuZm9yRWFjaChrZXkgPT4gew0KICAgICAgICAgICAgaWYgKGtleSA9PSAieC1hY3RpdmUiKSB7DQogICAgICAgICAgICAgICAgc3dpdGNoIChkYXRhW2lkXVtrZXldKSB7DQogICAgICAgICAgICAgICAgICAgIGNhc2UgdHJ1ZToNCiAgICAgICAgICAgICAgICAgICAgICAgIFNFQVJDSF9NQVBQSU5HW2lkXSA9ICJvbmxpbmUgIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgICAgICBjYXNlIGZhbHNlOg0KICAgICAgICAgICAgICAgICAgICAgICAgU0VBUkNIX01BUFBJTkdbaWRdID0gIm9mZmxpbmUgIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgICAgIGlmIChrZXkgPT0gIngteG1sdHYtZmlsZSIpIHsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHhtbHR2RmlsZSA9IGdldFZhbHVlRnJvbVByb3ZpZGVyRmlsZShkYXRhW2lkXVtrZXldLCAieG1sdHYiLCAibmFtZSIpOw0KICAgICAgICAgICAgICAgICAgICBpZiAoeG1sdHZGaWxlICE9IHVuZGVmaW5lZCkgew0KICAgICAgICAgICAgICAgICAgICAgICAgU0VBUkNIX01BUFBJTkdbaWRdID0gU0VBUkNIX01BUFBJTkdbaWRdICsgeG1sdHZGaWxlICsgIiAiOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgICAgICAgICBTRUFSQ0hfTUFQUElOR1tpZF0gPSBTRUFSQ0hfTUFQUElOR1tpZF0gKyBkYXRhW2lkXVtrZXldICsgIiAiOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0NCiAgICAgICAgfSk7DQogICAgfSk7DQogICAgcmV0dXJuOw0KfQ0KZnVuY3Rpb24gc2VhcmNoSW5NYXBwaW5nKCkgew0KICAgIHZhciBzZWFyY2hWYWx1ZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzZWFyY2hNYXBwaW5nIikudmFsdWU7DQogICAgdmFyIHRycyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb250ZW50X3RhYmxlIikuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlRSIik7DQogICAgZm9yICh2YXIgaSA9IDE7IGkgPCB0cnMubGVuZ3RoOyArK2kpIHsNCiAgICAgICAgdmFyIGlkID0gdHJzW2ldLmdldEF0dHJpYnV0ZSgiaWQiKTsNCiAgICAgICAgdmFyIGVsZW1lbnQgPSBTRUFSQ0hfTUFQUElOR1tpZF07DQogICAgICAgIHN3aXRjaCAoZWxlbWVudC50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKHNlYXJjaFZhbHVlLnRvTG93ZXJDYXNlKCkpKSB7DQogICAgICAgICAgICBjYXNlIHRydWU6DQogICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpLnN0eWxlLmRpc3BsYXkgPSAiIjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgZmFsc2U6DQogICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpLnN0eWxlLmRpc3BsYXkgPSAibm9uZSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIH0NCiAgICB9DQogICAgcmV0dXJuOw0KfQ0KZnVuY3Rpb24gY2FsY3VsYXRlV3JhcHBlckhlaWdodCgpIHsNCiAgICBpZiAoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImJveC13cmFwcGVyIikpIHsNCiAgICAgICAgdmFyIGVsbSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJib3gtd3JhcHBlciIpOw0KICAgICAgICB2YXIgZGl2cyA9IG5ldyBBcnJheSgibXlTdHJlYW1zQm94IiwgImNsaWVudEluZm8iLCAiY29udGVudCIpOw0KICAgICAgICB2YXIgZWxlbWVudHNIZWlnaHQgPSAwIC0gZWxtLm9mZnNldEhlaWdodDsNCiAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBkaXZzLmxlbmd0aDsgaSsrKSB7DQogICAgICAgICAgICBlbGVtZW50c0hlaWdodCA9IGVsZW1lbnRzSGVpZ2h0ICsgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoZGl2c1tpXSkub2Zmc2V0SGVpZ2h0Ow0KICAgICAgICB9DQogICAgICAgIGVsbS5zdHlsZS5oZWlnaHQgPSB3aW5kb3cuaW5uZXJIZWlnaHQgLSBlbGVtZW50c0hlaWdodCArICJweCI7DQogICAgfQ0KICAgIHJldHVybjsNCn0NCmZ1bmN0aW9uIGNoYW5nZUNoYW5uZWxOdW1iZXIoZWxlbWVudCkgew0KICAgIHZhciBkYklEID0gZWxlbWVudC5wYXJlbnROb2RlLnBhcmVudE5vZGUuaWQ7DQogICAgdmFyIG5ld051bWJlciA9IHBhcnNlRmxvYXQoZWxlbWVudC52YWx1ZSk7DQogICAgdmFyIGNoYW5uZWxOdW1iZXJzID0gW107DQogICAgdmFyIGRhdGEgPSBTRVJWRVJbInhlcGciXVsiZXBnTWFwcGluZyJdOw0KICAgIHZhciBjaGFubmVscyA9IGdldE93bk9ialByb3BzKGRhdGEpOw0KICAgIGlmIChpc05hTihuZXdOdW1iZXIpKSB7DQogICAgICAgIGFsZXJ0KCJ7ey5hbGVydC5pbnZhbGlkQ2hhbm5lbE51bWJlcn19Iik7DQogICAgICAgIHJldHVybjsNCiAgICB9DQogICAgY2hhbm5lbHMuZm9yRWFjaChpZCA9PiB7DQogICAgICAgIHZhciBjaGFubmVsTnVtYmVyID0gcGFyc2VGbG9hdChkYXRhW2lkXVsieC1jaGFubmVsSUQiXSk7DQogICAgICAgIGNoYW5uZWxOdW1iZXJzLnB1c2goY2hhbm5lbE51bWJlcik7DQogICAgfSk7DQogICAgZm9yICh2YXIgaSA9IDA7IGkgPCBjaGFubmVsTnVtYmVycy5sZW5ndGg7IGkrKykgew0KICAgICAgICBpZiAoY2hhbm5lbE51bWJlcnMuaW5kZXhPZihuZXdOdW1iZXIpID09IC0xKSB7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgfQ0KICAgICAgICBpZiAoTWF0aC5mbG9vcihuZXdOdW1iZXIpID09IG5ld051bWJlcikgew0KICAgICAgICAgICAgbmV3TnVtYmVyID0gbmV3TnVtYmVyICsgMTsNCiAgICAgICAgfQ0KICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgIG5ld051bWJlciA9IG5ld051bWJlciArIDAuMTsNCiAgICAgICAgICAgIG5ld051bWJlci50b0ZpeGVkKDEpOw0KICAgICAgICAgICAgbmV3TnVtYmVyID0gTWF0aC5yb3VuZChuZXdOdW1iZXIgKiAxMCkgLyAxMDsNCiAgICAgICAgfQ0KICAgIH0NCiAgICBkYXRhW2RiSURdWyJ4LWNoYW5uZWxJRCJdID0gbmV3TnVtYmVyLnRvU3RyaW5nKCk7DQogICAgZWxlbWVudC52YWx1ZSA9IG5ld051bWJlcjsNCiAgICBjb25zb2xlLmxvZyhkYXRhW2RiSURdWyJ4LWNoYW5uZWxJRCJdKTsNCiAgICBpZiAoQ09MVU1OX1RPX1NPUlQgPT0gMSkgew0KICAgICAgICBDT0xVTU5fVE9fU09SVCA9IC0xOw0KICAgICAgICBzb3J0VGFibGUoMSk7DQogICAgfQ0KICAgIHJldHVybjsNCn0NCmZ1bmN0aW9uIGJhY2t1cCgpIHsNCiAgICB2YXIgZGF0YSA9IG5ldyBPYmplY3QoKTsNCiAgICBjb25zb2xlLmxvZygiQmFja3VwIGRhdGEiKTsNCiAgICB2YXIgY21kID0gInh0ZXZlQmFja3VwIjsNCiAgICBjb25zb2xlLmxvZygiU0VORCBUTyBTRVJWRVIiKTsNCiAgICBjb25zb2xlLmxvZyhkYXRhKTsNCiAgICB2YXIgc2VydmVyID0gbmV3IFNlcnZlcihjbWQpOw0KICAgIHNlcnZlci5yZXF1ZXN0KGRhdGEpOw0KICAgIHJldHVybjsNCn0NCmZ1bmN0aW9uIHRvZ2dsZUNoYW5uZWxTdGF0dXMoaWQpIHsNCiAgICB2YXIgZWxlbWVudDsNCiAgICB2YXIgc3RhdHVzOw0KICAgIGlmIChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYWN0aXZlIikpIHsNCiAgICAgICAgdmFyIGNoZWNrYm94ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImFjdGl2ZSIpOw0KICAgICAgICBzdGF0dXMgPSAoY2hlY2tib3gpLmNoZWNrZWQ7DQogICAgfQ0KICAgIHZhciBpZHMgPSBnZXRBbGxTZWxlY3RlZENoYW5uZWxzKCk7DQogICAgaWYgKGlkcy5sZW5ndGggPT0gMCkgew0KICAgICAgICBpZHMucHVzaChpZCk7DQogICAgfQ0KICAgIGlkcy5mb3JFYWNoKGlkID0+IHsNCiAgICAgICAgdmFyIGNoYW5uZWwgPSBTRVJWRVJbInhlcGciXVsiZXBnTWFwcGluZyJdW2lkXTsNCiAgICAgICAgY2hhbm5lbFsieC1hY3RpdmUiXSA9IHN0YXR1czsNCiAgICAgICAgc3dpdGNoIChjaGFubmVsWyJ4LWFjdGl2ZSJdKSB7DQogICAgICAgICAgICBjYXNlIHRydWU6DQogICAgICAgICAgICAgICAgaWYgKGNoYW5uZWxbIngteG1sdHYtZmlsZSJdID09ICItIiB8fCBjaGFubmVsWyJ4LW1hcHBpbmciXSA9PSAiLSIpIHsNCiAgICAgICAgICAgICAgICAgICAgaWYgKEJVTEtfRURJVCA9PSBmYWxzZSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgYWxlcnQoY2hhbm5lbFsieC1uYW1lIl0gKyAiOiBNaXNzaW5nIFhNTFRWIGZpbGUgLyBjaGFubmVsIik7DQogICAgICAgICAgICAgICAgICAgICAgICBjaGVja2JveC5jaGVja2VkID0gZmFsc2U7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgY2hhbm5lbFsieC1hY3RpdmUiXSA9IGZhbHNlOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgZmFsc2U6DQogICAgICAgICAgICAgICAgLy8gY29kZS4uLg0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICB9DQogICAgICAgIGlmIChjaGFubmVsWyJ4LWFjdGl2ZSJdID09IGZhbHNlKSB7DQogICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkuY2xhc3NOYW1lID0gIm5vdEFjdGl2ZUVQRyI7DQogICAgICAgIH0NCiAgICAgICAgZWxzZSB7DQogICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkuY2xhc3NOYW1lID0gImFjdGl2ZUVQRyI7DQogICAgICAgIH0NCiAgICB9KTsNCn0NCmZ1bmN0aW9uIHRvZ2dsZUdyb3VwVXBkYXRlQ2IoeGVwZ0lkLCB0YXJnZXQpIHsNCiAgICB0YXJnZXQuY2xhc3NOYW1lID0gJ2NoYW5nZWQnOw0KICAgIGNvbnN0IGdyb3VwSW5wdXQgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCdpbnB1dFtuYW1lPSJ4LWdyb3VwLXRpdGxlIl0nKTsNCiAgICBjb25zdCBtYXBwaW5nID0gZ2V0TG9jYWxEYXRhKCdtYXBwaW5nJywgeGVwZ0lkKTsNCiAgICBpZiAodGFyZ2V0LmNoZWNrZWQpIHsNCiAgICAgICAgZ3JvdXBJbnB1dC5kYXRhc2V0Lm9sZFZhbHVlID0gZ3JvdXBJbnB1dC52YWx1ZTsNCiAgICAgICAgZ3JvdXBJbnB1dC52YWx1ZSA9IG1hcHBpbmdbJ2dyb3VwLXRpdGxlJ107DQogICAgICAgIGdyb3VwSW5wdXQuZGlzYWJsZWQgPSB0cnVlOw0KICAgIH0NCiAgICBlbHNlIHsNCiAgICAgICAgZ3JvdXBJbnB1dC52YWx1ZSA9IGdyb3VwSW5wdXQuZGF0YXNldC5vbGRWYWx1ZTsNCiAgICAgICAgZ3JvdXBJbnB1dC5kaXNhYmxlZCA9IGZhbHNlOw0KICAgIH0NCiAgICBncm91cElucHV0LmNsYXNzTmFtZSA9ICdjaGFuZ2VkJzsNCn0NCmZ1bmN0aW9uIHJlc3RvcmUoKSB7DQogICAgaWYgKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd1cGxvYWQnKSkgew0KICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndXBsb2FkJykucmVtb3ZlKCk7DQogICAgfQ0KICAgIHZhciByZXN0b3JlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiSU5QVVQiKTsNCiAgICByZXN0b3JlLnNldEF0dHJpYnV0ZSgidHlwZSIsICJmaWxlIik7DQogICAgcmVzdG9yZS5zZXRBdHRyaWJ1dGUoImNsYXNzIiwgIm5vdFZpc2libGUiKTsNCiAgICByZXN0b3JlLnNldEF0dHJpYnV0ZSgibmFtZSIsICIiKTsNCiAgICByZXN0b3JlLmlkID0gInVwbG9hZCI7DQogICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChyZXN0b3JlKTsNCiAgICByZXN0b3JlLmNsaWNrKCk7DQogICAgcmVzdG9yZS5vbmNoYW5nZSA9IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgdmFyIGZpbGVuYW1lID0gcmVzdG9yZS5maWxlc1swXS5uYW1lOw0KICAgICAgICB2YXIgY2hlY2sgPSBjb25maXJtKCJGaWxlOiAiICsgZmlsZW5hbWUgKyAiXG57ey5jb25maXJtLnJlc3RvcmV9fSIpOw0KICAgICAgICBpZiAoY2hlY2sgPT0gdHJ1ZSkgew0KICAgICAgICAgICAgdmFyIHJlYWRlciA9IG5ldyBGaWxlUmVhZGVyKCk7DQogICAgICAgICAgICB2YXIgZmlsZSA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ2lucHV0W3R5cGU9ZmlsZV0nKS5maWxlc1swXTsNCiAgICAgICAgICAgIGlmIChmaWxlKSB7DQogICAgICAgICAgICAgICAgcmVhZGVyLnJlYWRBc0RhdGFVUkwoZmlsZSk7DQogICAgICAgICAgICAgICAgcmVhZGVyLm9ubG9hZCA9IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2cocmVhZGVyLnJlc3VsdCk7DQogICAgICAgICAgICAgICAgICAgIHZhciBkYXRhID0gbmV3IE9iamVjdCgpOw0KICAgICAgICAgICAgICAgICAgICB2YXIgY21kID0gInh0ZXZlUmVzdG9yZSI7DQogICAgICAgICAgICAgICAgICAgIGRhdGFbImJhc2U2NCJdID0gcmVhZGVyLnJlc3VsdDsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHNlcnZlciA9IG5ldyBTZXJ2ZXIoY21kKTsNCiAgICAgICAgICAgICAgICAgICAgc2VydmVyLnJlcXVlc3QoZGF0YSk7DQogICAgICAgICAgICAgICAgfTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgICAgIGFsZXJ0KCJGaWxlIGNvdWxkIG5vdCBiZSBsb2FkZWQiKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIHJlc3RvcmUucmVtb3ZlKCk7DQogICAgICAgICAgICByZXR1cm47DQogICAgICAgIH0NCiAgICB9Ow0KICAgIHJldHVybjsNCn0NCmZ1bmN0aW9uIHVwbG9hZExvZ28oKSB7DQogICAgaWYgKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd1cGxvYWQnKSkgew0KICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndXBsb2FkJykucmVtb3ZlKCk7DQogICAgfQ0KICAgIHZhciB1cGxvYWQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJJTlBVVCIpOw0KICAgIHVwbG9hZC5zZXRBdHRyaWJ1dGUoInR5cGUiLCAiZmlsZSIpOw0KICAgIHVwbG9hZC5zZXRBdHRyaWJ1dGUoImNsYXNzIiwgIm5vdFZpc2libGUiKTsNCiAgICB1cGxvYWQuc2V0QXR0cmlidXRlKCJuYW1lIiwgIiIpOw0KICAgIHVwbG9hZC5pZCA9ICJ1cGxvYWQiOw0KICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQodXBsb2FkKTsNCiAgICB1cGxvYWQuY2xpY2soKTsNCiAgICB1cGxvYWQub25ibHVyID0gZnVuY3Rpb24gKCkgew0KICAgICAgICBhbGVydCgpOw0KICAgIH07DQogICAgdXBsb2FkLm9uY2hhbmdlID0gZnVuY3Rpb24gKCkgew0KICAgICAgICB2YXIgZmlsZW5hbWUgPSB1cGxvYWQuZmlsZXNbMF0ubmFtZTsNCiAgICAgICAgdmFyIHJlYWRlciA9IG5ldyBGaWxlUmVhZGVyKCk7DQogICAgICAgIHZhciBmaWxlID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignaW5wdXRbdHlwZT1maWxlXScpLmZpbGVzWzBdOw0KICAgICAgICBpZiAoZmlsZSkgew0KICAgICAgICAgICAgcmVhZGVyLnJlYWRBc0RhdGFVUkwoZmlsZSk7DQogICAgICAgICAgICByZWFkZXIub25sb2FkID0gZnVuY3Rpb24gKCkgew0KICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKHJlYWRlci5yZXN1bHQpOw0KICAgICAgICAgICAgICAgIHZhciBkYXRhID0gbmV3IE9iamVjdCgpOw0KICAgICAgICAgICAgICAgIHZhciBjbWQgPSAidXBsb2FkTG9nbyI7DQogICAgICAgICAgICAgICAgZGF0YVsiYmFzZTY0Il0gPSByZWFkZXIucmVzdWx0Ow0KICAgICAgICAgICAgICAgIGRhdGFbImZpbGVuYW1lIl0gPSBmaWxlLm5hbWU7DQogICAgICAgICAgICAgICAgdmFyIHNlcnZlciA9IG5ldyBTZXJ2ZXIoY21kKTsNCiAgICAgICAgICAgICAgICBzZXJ2ZXIucmVxdWVzdChkYXRhKTsNCiAgICAgICAgICAgICAgICB2YXIgdXBkYXRlTG9nbyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd1cGRhdGUtaWNvbicpOw0KICAgICAgICAgICAgICAgIHVwZGF0ZUxvZ28uY2hlY2tlZCA9IGZhbHNlOw0KICAgICAgICAgICAgICAgIHVwZGF0ZUxvZ28uY2xhc3NOYW1lID0gImNoYW5nZWQiOw0KICAgICAgICAgICAgfTsNCiAgICAgICAgfQ0KICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgIGFsZXJ0KCJGaWxlIGNvdWxkIG5vdCBiZSBsb2FkZWQiKTsNCiAgICAgICAgfQ0KICAgICAgICB1cGxvYWQucmVtb3ZlKCk7DQogICAgICAgIHJldHVybjsNCiAgICB9Ow0KfQ0KZnVuY3Rpb24gY2hlY2tVbmRvKGtleSkgew0KICAgIHN3aXRjaCAoa2V5KSB7DQogICAgICAgIGNhc2UgImVwZ01hcHBpbmciOg0KICAgICAgICAgICAgaWYgKFVORE8uaGFzT3duUHJvcGVydHkoa2V5KSkgew0KICAgICAgICAgICAgICAgIFNFUlZFUlsieGVwZyJdW2tleV0gPSBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KFVORE9ba2V5XSkpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgZWxzZSB7DQogICAgICAgICAgICAgICAgVU5ET1trZXldID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeShTRVJWRVJbInhlcGciXVtrZXldKSk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgIGJyZWFrOw0KICAgIH0NCiAgICByZXR1cm47DQp9DQpmdW5jdGlvbiBzb3J0U2VsZWN0KHNlbGVjdCkgew0KICAgIGNvbnN0IHRlbXBBcnIgPSBbXTsNCiAgICBjb25zdCBzZWxlY3RlZFZhbHVlID0gc2VsZWN0Lm9wdGlvbnNbc2VsZWN0LnNlbGVjdGVkSW5kZXhdLnZhbHVlOw0KICAgIGZvciAoY29uc3Qgc2VsZWN0T3B0aW9uIG9mIHNlbGVjdC5vcHRpb25zKSB7DQogICAgICAgIHRlbXBBcnIucHVzaChzZWxlY3RPcHRpb24pOw0KICAgIH0NCiAgICB0ZW1wQXJyLnNvcnQoKG8xLCBvMikgPT4gew0KICAgICAgICBpZiAobzEudGV4dCA8IG8yLnRleHQpIHsNCiAgICAgICAgICAgIHJldHVybiAtMTsNCiAgICAgICAgfQ0KICAgICAgICBpZiAobzEudGV4dCA+IG8yLnRleHQpIHsNCiAgICAgICAgICAgIHJldHVybiAxOw0KICAgICAgICB9DQogICAgICAgIHJldHVybiAwOw0KICAgIH0pOw0KICAgIHdoaWxlIChzZWxlY3Qub3B0aW9ucy5sZW5ndGggPiAwKSB7DQogICAgICAgIHNlbGVjdC5vcHRpb25zWzBdID0gbnVsbDsNCiAgICB9DQogICAgOw0KICAgIGxldCBuZXdTZWxlY3RlZEluZGV4ID0gMDsNCiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRlbXBBcnIubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgc2VsZWN0Lm9wdGlvbnNbaV0gPSB0ZW1wQXJyW2ldOw0KICAgICAgICBpZiAoc2VsZWN0Lm9wdGlvbnNbaV0udmFsdWUgPT0gc2VsZWN0ZWRWYWx1ZSkgew0KICAgICAgICAgICAgbmV3U2VsZWN0ZWRJbmRleCA9IGk7DQogICAgICAgIH0NCiAgICB9DQogICAgLy8gU2V0IG5ldyBzZWxlY3RlZCBpbmRleCBhZnRlciBzb3J0aW5nDQogICAgc2VsZWN0LnNlbGVjdGVkSW5kZXggPSBuZXdTZWxlY3RlZEluZGV4Ow0KfQ0KZnVuY3Rpb24gdXBkYXRlTG9nKCkgew0KICAgIGNvbnNvbGUubG9nKCJUT0tFTiIpOw0KICAgIHZhciBzZXJ2ZXIgPSBuZXcgU2VydmVyKCJ1cGRhdGVMb2ciKTsNCiAgICBzZXJ2ZXIucmVxdWVzdChuZXcgT2JqZWN0KCkpOw0KfQ0K" webUI["html/js/classes_ts.js"] = "dmFyIF9fZXh0ZW5kcyA9ICh0aGlzICYmIHRoaXMuX19leHRlbmRzKSB8fCAoZnVuY3Rpb24gKCkgew0KICAgIHZhciBleHRlbmRTdGF0aWNzID0gZnVuY3Rpb24gKGQsIGIpIHsNCiAgICAgICAgZXh0ZW5kU3RhdGljcyA9IE9iamVjdC5zZXRQcm90b3R5cGVPZiB8fA0KICAgICAgICAgICAgKHsgX19wcm90b19fOiBbXSB9IGluc3RhbmNlb2YgQXJyYXkgJiYgZnVuY3Rpb24gKGQsIGIpIHsgZC5fX3Byb3RvX18gPSBiOyB9KSB8fA0KICAgICAgICAgICAgZnVuY3Rpb24gKGQsIGIpIHsgZm9yICh2YXIgcCBpbiBiKSBpZiAoYi5oYXNPd25Qcm9wZXJ0eShwKSkgZFtwXSA9IGJbcF07IH07DQogICAgICAgIHJldHVybiBleHRlbmRTdGF0aWNzKGQsIGIpOw0KICAgIH07DQogICAgcmV0dXJuIGZ1bmN0aW9uIChkLCBiKSB7DQogICAgICAgIGV4dGVuZFN0YXRpY3MoZCwgYik7DQogICAgICAgIGZ1bmN0aW9uIF9fKCkgeyB0aGlzLmNvbnN0cnVjdG9yID0gZDsgfQ0KICAgICAgICBkLnByb3RvdHlwZSA9IGIgPT09IG51bGwgPyBPYmplY3QuY3JlYXRlKGIpIDogKF9fLnByb3RvdHlwZSA9IGIucHJvdG90eXBlLCBuZXcgX18oKSk7DQogICAgfTsNCn0pKCk7DQp2YXIgTWFpbk1lbnUgPSAvKiogQGNsYXNzICovIChmdW5jdGlvbiAoKSB7DQogICAgZnVuY3Rpb24gTWFpbk1lbnUoKSB7DQogICAgICAgIHRoaXMuRG9jdW1lbnRJRCA9ICJtYWluLW1lbnUiOw0KICAgICAgICB0aGlzLkhUTUxUYWcgPSAiTEkiOw0KICAgIH0NCiAgICBNYWluTWVudS5wcm90b3R5cGUuY3JlYXRlID0gZnVuY3Rpb24gKCkgew0KICAgICAgICBjb25zb2xlLmxvZyh0aGlzLkRvY3VtZW50SUQpOw0KICAgIH07DQogICAgcmV0dXJuIE1haW5NZW51Ow0KfSgpKTsNCnZhciBNYWluTWVudUl0ZW0gPSAvKiogQGNsYXNzICovIChmdW5jdGlvbiAoX3N1cGVyKSB7DQogICAgX19leHRlbmRzKE1haW5NZW51SXRlbSwgX3N1cGVyKTsNCiAgICBmdW5jdGlvbiBNYWluTWVudUl0ZW0oKSB7DQogICAgICAgIHJldHVybiBfc3VwZXIgIT09IG51bGwgJiYgX3N1cGVyLmFwcGx5KHRoaXMsIGFyZ3VtZW50cykgfHwgdGhpczsNCiAgICB9DQogICAgTWFpbk1lbnVJdGVtLnByb3RvdHlwZS5jcmVhdGUyID0gZnVuY3Rpb24gKCkgew0KICAgICAgICB2YXIgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQodGhpcy5IVE1MVGFnKTsNCiAgICAgICAgZWxlbWVudC5pbm5lclRleHQgPSB0aGlzLlZhbHVlOw0KICAgICAgICBjb25zb2xlLmxvZyhlbGVtZW50KTsNCiAgICB9Ow0KICAgIHJldHVybiBNYWluTWVudUl0ZW07DQp9KE1haW5NZW51KSk7DQpmdW5jdGlvbiBwYWdlUmVhZHkoKSB7DQogICAgdmFyIGl0ZW0gPSBuZXcgTWFpbk1lbnVJdGVtKCk7DQogICAgaXRlbS5WYWx1ZSA9ICJUZXN0IjsNCiAgICBpdGVtLmNyZWF0ZTIoKTsNCn0NCg==" webUI["html/js/configuration_ts.js"] = "Y2xhc3MgV2l6YXJkQ2F0ZWdvcnkgew0KICAgIGNvbnN0cnVjdG9yKCkgew0KICAgICAgICB0aGlzLkRvY3VtZW50SUQgPSAiY29udGVudCI7DQogICAgfQ0KICAgIGNyZWF0ZUNhdGVnb3J5SGVhZGxpbmUodmFsdWUpIHsNCiAgICAgICAgdmFyIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJINCIpOw0KICAgICAgICBlbGVtZW50LmlubmVySFRNTCA9IHZhbHVlOw0KICAgICAgICByZXR1cm4gZWxlbWVudDsNCiAgICB9DQp9DQpjbGFzcyBXaXphcmRJdGVtIGV4dGVuZHMgV2l6YXJkQ2F0ZWdvcnkgew0KICAgIGNvbnN0cnVjdG9yKGtleSwgaGVhZGxpbmUpIHsNCiAgICAgICAgc3VwZXIoKTsNCiAgICAgICAgdGhpcy5oZWFkbGluZSA9IGhlYWRsaW5lOw0KICAgICAgICB0aGlzLmtleSA9IGtleTsNCiAgICB9DQogICAgY3JlYXRlV2l6YXJkKCkgew0KICAgICAgICB2YXIgaGVhZGxpbmUgPSB0aGlzLmNyZWF0ZUNhdGVnb3J5SGVhZGxpbmUodGhpcy5oZWFkbGluZSk7DQogICAgICAgIHZhciBrZXkgPSB0aGlzLmtleTsNCiAgICAgICAgdmFyIGNvbnRlbnQgPSBuZXcgUG9wdXBDb250ZW50KCk7DQogICAgICAgIHZhciBkZXNjcmlwdGlvbjsNCiAgICAgICAgdmFyIGRvYyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHRoaXMuRG9jdW1lbnRJRCk7DQogICAgICAgIGRvYy5pbm5lckhUTUwgPSAiIjsNCiAgICAgICAgZG9jLmFwcGVuZENoaWxkKGhlYWRsaW5lKTsNCiAgICAgICAgc3dpdGNoIChrZXkpIHsNCiAgICAgICAgICAgIGNhc2UgInR1bmVyIjoNCiAgICAgICAgICAgICAgICB2YXIgdGV4dCA9IG5ldyBBcnJheSgpOw0KICAgICAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBuZXcgQXJyYXkoKTsNCiAgICAgICAgICAgICAgICBmb3IgKHZhciBpID0gMTsgaSA8PSAxMDA7IGkrKykgew0KICAgICAgICAgICAgICAgICAgICB0ZXh0LnB1c2goaSk7DQogICAgICAgICAgICAgICAgICAgIHZhbHVlcy5wdXNoKGkpOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCAiMSIsIGtleSk7DQogICAgICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgiY2xhc3MiLCAid2l6YXJkIik7DQogICAgICAgICAgICAgICAgc2VsZWN0LmlkID0ga2V5Ow0KICAgICAgICAgICAgICAgIGRvYy5hcHBlbmRDaGlsZChzZWxlY3QpOw0KICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uID0gInt7LndpemFyZC50dW5lci5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImVwZ1NvdXJjZSI6DQogICAgICAgICAgICAgICAgdmFyIHRleHQgPSBbIlBNUyIsICJYRVBHIl07DQogICAgICAgICAgICAgICAgdmFyIHZhbHVlcyA9IFsiUE1TIiwgIlhFUEciXTsNCiAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCAiWEVQRyIsIGtleSk7DQogICAgICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgiY2xhc3MiLCAid2l6YXJkIik7DQogICAgICAgICAgICAgICAgc2VsZWN0LmlkID0ga2V5Ow0KICAgICAgICAgICAgICAgIGRvYy5hcHBlbmRDaGlsZChzZWxlY3QpOw0KICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uID0gInt7LndpemFyZC5lcGdTb3VyY2UuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJtM3UiOg0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBrZXksICIiKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LndpemFyZC5tM3UucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgiY2xhc3MiLCAid2l6YXJkIik7DQogICAgICAgICAgICAgICAgaW5wdXQuaWQgPSBrZXk7DQogICAgICAgICAgICAgICAgZG9jLmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbiA9ICJ7ey53aXphcmQubTN1LmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAieG1sdHYiOg0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBrZXksICIiKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LndpemFyZC54bWx0di5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJjbGFzcyIsICJ3aXphcmQiKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5pZCA9IGtleTsNCiAgICAgICAgICAgICAgICBkb2MuYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uID0gInt7LndpemFyZC54bWx0di5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICAgICAgY29uc29sZS5sb2coa2V5KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgfQ0KICAgICAgICB2YXIgcHJlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiUFJFIik7DQogICAgICAgIHByZS5pbm5lckhUTUwgPSBkZXNjcmlwdGlvbjsNCiAgICAgICAgZG9jLmFwcGVuZENoaWxkKHByZSk7DQogICAgICAgIGNvbnNvbGUubG9nKGhlYWRsaW5lLCBrZXkpOw0KICAgIH0NCn0NCmZ1bmN0aW9uIHJlYWR5Rm9yQ29uZmlndXJhdGlvbih3aXphcmQpIHsNCiAgICB2YXIgc2VydmVyID0gbmV3IFNlcnZlcigiZ2V0U2VydmVyQ29uZmlnIik7DQogICAgc2VydmVyLnJlcXVlc3QobmV3IE9iamVjdCgpKTsNCiAgICBzaG93RWxlbWVudCgibG9hZGluZyIsIGZhbHNlKTsNCiAgICBjb25maWd1cmF0aW9uV2l6YXJkW3dpemFyZF0uY3JlYXRlV2l6YXJkKCk7DQp9DQpmdW5jdGlvbiBzYXZlV2l6YXJkKCkgew0KICAgIHZhciBjbWQgPSAic2F2ZVdpemFyZCI7DQogICAgdmFyIGRpdiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb250ZW50Iik7DQogICAgdmFyIGNvbmZpZyA9IGRpdi5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCJ3aXphcmQiKTsNCiAgICB2YXIgd2l6YXJkID0gbmV3IE9iamVjdCgpOw0KICAgIGZvciAodmFyIGkgPSAwOyBpIDwgY29uZmlnLmxlbmd0aDsgaSsrKSB7DQogICAgICAgIHZhciBuYW1lOw0KICAgICAgICB2YXIgdmFsdWU7DQogICAgICAgIHN3aXRjaCAoY29uZmlnW2ldLnRhZ05hbWUpIHsNCiAgICAgICAgICAgIGNhc2UgIlNFTEVDVCI6DQogICAgICAgICAgICAgICAgbmFtZSA9IGNvbmZpZ1tpXS5uYW1lOw0KICAgICAgICAgICAgICAgIHZhbHVlID0gY29uZmlnW2ldLnZhbHVlOw0KICAgICAgICAgICAgICAgIC8vIElmIHRoZSB2YWx1ZSBpcyBhIG51bWJlciwgc3RvcmUgaXQgYXMgYSBudW1iZXINCiAgICAgICAgICAgICAgICBpZiAoaXNOYU4odmFsdWUpKSB7DQogICAgICAgICAgICAgICAgICAgIHdpemFyZFtuYW1lXSA9IHZhbHVlOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICAgICAgd2l6YXJkW25hbWVdID0gcGFyc2VJbnQodmFsdWUpOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgIklOUFVUIjoNCiAgICAgICAgICAgICAgICBzd2l0Y2ggKGNvbmZpZ1tpXS50eXBlKSB7DQogICAgICAgICAgICAgICAgICAgIGNhc2UgInRleHQiOg0KICAgICAgICAgICAgICAgICAgICAgICAgbmFtZSA9IGNvbmZpZ1tpXS5uYW1lOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSBjb25maWdbaV0udmFsdWU7DQogICAgICAgICAgICAgICAgICAgICAgICBpZiAodmFsdWUubGVuZ3RoID09IDApIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgbXNnID0gbmFtZS50b1VwcGVyQ2FzZSgpICsgIjogIiArICJ7ey5hbGVydC5taXNzaW5nSW5wdXR9fSI7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgYWxlcnQobXNnKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICB3aXphcmRbbmFtZV0gPSB2YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICAgICAgLy8gY29kZS4uLg0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICB9DQogICAgfQ0KICAgIHZhciBkYXRhID0gbmV3IE9iamVjdCgpOw0KICAgIGRhdGFbIndpemFyZCJdID0gd2l6YXJkOw0KICAgIHZhciBzZXJ2ZXIgPSBuZXcgU2VydmVyKGNtZCk7DQogICAgc2VydmVyLnJlcXVlc3QoZGF0YSk7DQogICAgY29uc29sZS5sb2coZGF0YSk7DQp9DQovLyBXaXphcmQNCnZhciBjb25maWd1cmF0aW9uV2l6YXJkID0gbmV3IEFycmF5KCk7DQpjb25maWd1cmF0aW9uV2l6YXJkLnB1c2gobmV3IFdpemFyZEl0ZW0oInR1bmVyIiwgInt7LndpemFyZC50dW5lci50aXRsZX19IikpOw0KY29uZmlndXJhdGlvbldpemFyZC5wdXNoKG5ldyBXaXphcmRJdGVtKCJlcGdTb3VyY2UiLCAie3sud2l6YXJkLmVwZ1NvdXJjZS50aXRsZX19IikpOw0KY29uZmlndXJhdGlvbldpemFyZC5wdXNoKG5ldyBXaXphcmRJdGVtKCJtM3UiLCAie3sud2l6YXJkLm0zdS50aXRsZX19IikpOw0KY29uZmlndXJhdGlvbldpemFyZC5wdXNoKG5ldyBXaXphcmRJdGVtKCJ4bWx0diIsICJ7ey53aXphcmQueG1sdHYudGl0bGV9fSIpKTsNCg==" webUI["html/js/logs_ts.js"] = "Y2xhc3MgTG9nIHsNCiAgICBjcmVhdGVMb2coZW50cnkpIHsNCiAgICAgICAgdmFyIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJQUkUiKTsNCiAgICAgICAgaWYgKGVudHJ5LmluZGV4T2YoIldBUk5JTkciKSAhPSAtMSkgew0KICAgICAgICAgICAgZWxlbWVudC5jbGFzc05hbWUgPSAid2FybmluZ01zZyI7DQogICAgICAgIH0NCiAgICAgICAgaWYgKGVudHJ5LmluZGV4T2YoIkVSUk9SIikgIT0gLTEpIHsNCiAgICAgICAgICAgIGVsZW1lbnQuY2xhc3NOYW1lID0gImVycm9yTXNnIjsNCiAgICAgICAgfQ0KICAgICAgICBpZiAoZW50cnkuaW5kZXhPZigiREVCVUciKSAhPSAtMSkgew0KICAgICAgICAgICAgZWxlbWVudC5jbGFzc05hbWUgPSAiZGVidWdNc2ciOw0KICAgICAgICB9DQogICAgICAgIGVsZW1lbnQuaW5uZXJIVE1MID0gZW50cnk7DQogICAgICAgIHJldHVybiBlbGVtZW50Ow0KICAgIH0NCn0NCmZ1bmN0aW9uIHNob3dMb2dzKGJvdHRvbSkgew0KICAgIHZhciBsb2cgPSBuZXcgTG9nKCk7DQogICAgdmFyIGxvZ3MgPSBTRVJWRVJbImxvZyJdWyJsb2ciXTsNCiAgICB2YXIgZGl2ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnRlbnRfbG9nIik7DQogICAgZGl2LmlubmVySFRNTCA9ICIiOw0KICAgIHZhciBrZXlzID0gZ2V0T3duT2JqUHJvcHMobG9ncyk7DQogICAga2V5cy5mb3JFYWNoKGxvZ0lEID0+IHsNCiAgICAgICAgdmFyIGVudHJ5ID0gbG9nLmNyZWF0ZUxvZyhsb2dzW2xvZ0lEXSk7DQogICAgICAgIGRpdi5hcHBlbmQoZW50cnkpOw0KICAgIH0pOw0KICAgIHNldFRpbWVvdXQoZnVuY3Rpb24gKCkgew0KICAgICAgICBpZiAoYm90dG9tID09IHRydWUpIHsNCiAgICAgICAgICAgIHZhciB3cmFwcGVyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImJveC13cmFwcGVyIik7DQogICAgICAgICAgICB3cmFwcGVyLnNjcm9sbFRvcCA9IHdyYXBwZXIuc2Nyb2xsSGVpZ2h0Ow0KICAgICAgICB9DQogICAgfSwgMTApOw0KfQ0KZnVuY3Rpb24gcmVzZXRMb2dzKCkgew0KICAgIHZhciBjbWQgPSAicmVzZXRMb2dzIjsNCiAgICB2YXIgZGF0YSA9IG5ldyBPYmplY3QoKTsNCiAgICB2YXIgc2VydmVyID0gbmV3IFNlcnZlcihjbWQpOw0KICAgIHNlcnZlci5yZXF1ZXN0KGRhdGEpOw0KfQ0K" webUI["html/js/menu_ts.js"] = "Y2xhc3MgTWFpbk1lbnUgew0KICAgIGNvbnN0cnVjdG9yKCkgew0KICAgICAgICB0aGlzLkRvY3VtZW50SUQgPSAibWFpbi1tZW51IjsNCiAgICAgICAgdGhpcy5IVE1MVGFnID0gIkxJIjsNCiAgICAgICAgdGhpcy5JbWFnZVBhdGggPSAiaW1nLyI7DQogICAgfQ0KICAgIGNyZWF0ZUlNRyhzcmMpIHsNCiAgICAgICAgbGV0IGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJJTUciKTsNCiAgICAgICAgZWxlbWVudC5zZXRBdHRyaWJ1dGUoInNyYyIsIHRoaXMuSW1hZ2VQYXRoICsgc3JjKTsNCiAgICAgICAgcmV0dXJuIGVsZW1lbnQ7DQogICAgfQ0KICAgIGNyZWF0ZVZhbHVlKHZhbHVlKSB7DQogICAgICAgIGxldCBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiUCIpOw0KICAgICAgICBlbGVtZW50LmlubmVySFRNTCA9IHZhbHVlOw0KICAgICAgICByZXR1cm4gZWxlbWVudDsNCiAgICB9DQp9DQpjbGFzcyBNYWluTWVudUl0ZW0gZXh0ZW5kcyBNYWluTWVudSB7DQogICAgY29uc3RydWN0b3IobWVudUtleSwgdmFsdWUsIGltYWdlLCBoZWFkbGluZSkgew0KICAgICAgICBzdXBlcigpOw0KICAgICAgICB0aGlzLm1lbnVLZXkgPSBtZW51S2V5Ow0KICAgICAgICB0aGlzLnZhbHVlID0gdmFsdWU7DQogICAgICAgIHRoaXMuaW1nU3JjID0gaW1hZ2U7DQogICAgICAgIHRoaXMuaGVhZGxpbmUgPSBoZWFkbGluZTsNCiAgICB9DQogICAgY3JlYXRlSXRlbSgpIHsNCiAgICAgICAgbGV0IGl0ZW0gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJMSSIpOw0KICAgICAgICBpdGVtLnNldEF0dHJpYnV0ZSgib25jbGljayIsICJqYXZhc2NyaXB0OiBvcGVuVGhpc01lbnUodGhpcykiKTsNCiAgICAgICAgaXRlbS5zZXRBdHRyaWJ1dGUoImlkIiwgdGhpcy5pZCk7DQogICAgICAgIGxldCBpbWcgPSB0aGlzLmNyZWF0ZUlNRyh0aGlzLmltZ1NyYyk7DQogICAgICAgIGxldCB2YWx1ZSA9IHRoaXMuY3JlYXRlVmFsdWUodGhpcy52YWx1ZSk7DQogICAgICAgIGl0ZW0uYXBwZW5kQ2hpbGQoaW1nKTsNCiAgICAgICAgaXRlbS5hcHBlbmRDaGlsZCh2YWx1ZSk7DQogICAgICAgIGxldCBkb2MgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCh0aGlzLkRvY3VtZW50SUQpOw0KICAgICAgICBkb2MuYXBwZW5kQ2hpbGQoaXRlbSk7DQogICAgICAgIHN3aXRjaCAodGhpcy5tZW51S2V5KSB7DQogICAgICAgICAgICBjYXNlICJwbGF5bGlzdCI6DQogICAgICAgICAgICAgICAgdGhpcy50YWJsZUhlYWRlciA9IFsie3sucGxheWxpc3QudGFibGUucGxheWxpc3R9fSIsICJ7ey5wbGF5bGlzdC50YWJsZS50dW5lcn19IiwgInt7LnBsYXlsaXN0LnRhYmxlLmxhc3RVcGRhdGV9fSIsICJ7ey5wbGF5bGlzdC50YWJsZS5hdmFpbGFiaWxpdHl9fSAlIiwgInt7LnBsYXlsaXN0LnRhYmxlLnR5cGV9fSIsICJ7ey5wbGF5bGlzdC50YWJsZS5zdHJlYW1zfX0iLCAie3sucGxheWxpc3QudGFibGUuZ3JvdXBUaXRsZX19ICUiLCAie3sucGxheWxpc3QudGFibGUudHZnSUR9fSAlIiwgInt7LnBsYXlsaXN0LnRhYmxlLnVuaXF1ZUlEfX0gJSJdOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAieG1sdHYiOg0KICAgICAgICAgICAgICAgIHRoaXMudGFibGVIZWFkZXIgPSBbInt7LnhtbHR2LnRhYmxlLmd1aWRlfX0iLCAie3sueG1sdHYudGFibGUubGFzdFVwZGF0ZX19IiwgInt7LnhtbHR2LnRhYmxlLmF2YWlsYWJpbGl0eX19ICUiLCAie3sueG1sdHYudGFibGUuY2hhbm5lbHN9fSIsICJ7ey54bWx0di50YWJsZS5wcm9ncmFtc319Il07DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJmaWx0ZXIiOg0KICAgICAgICAgICAgICAgIHRoaXMudGFibGVIZWFkZXIgPSBbInt7LmZpbHRlci50YWJsZS5zdGFydGluZ0NoYW5uZWx9fSIsICJ7ey5maWx0ZXIudGFibGUubmFtZX19IiwgInt7LmZpbHRlci50YWJsZS50eXBlfX0iLCAie3suZmlsdGVyLnRhYmxlLmZpbHRlcn19Il07DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ1c2VycyI6DQogICAgICAgICAgICAgICAgdGhpcy50YWJsZUhlYWRlciA9IFsie3sudXNlcnMudGFibGUudXNlcm5hbWV9fSIsICJ7ey51c2Vycy50YWJsZS5wYXNzd29yZH19IiwgInt7LnVzZXJzLnRhYmxlLndlYn19IiwgInt7LnVzZXJzLnRhYmxlLnBtc319IiwgInt7LnVzZXJzLnRhYmxlLm0zdX19IiwgInt7LnVzZXJzLnRhYmxlLnhtbH19IiwgInt7LnVzZXJzLnRhYmxlLmFwaX19Il07DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJtYXBwaW5nIjoNCiAgICAgICAgICAgICAgICB0aGlzLnRhYmxlSGVhZGVyID0gWyJCVUxLIiwgInt7Lm1hcHBpbmcudGFibGUuY2hOb319IiwgInt7Lm1hcHBpbmcudGFibGUubG9nb319IiwgInt7Lm1hcHBpbmcudGFibGUuY2hhbm5lbE5hbWV9fSIsICJ7ey5tYXBwaW5nLnRhYmxlLnBsYXlsaXN0fX0iLCAie3subWFwcGluZy50YWJsZS5ncm91cFRpdGxlfX0iLCAie3subWFwcGluZy50YWJsZS54bWx0dkZpbGV9fSIsICJ7ey5tYXBwaW5nLnRhYmxlLnhtbHR2SUR9fSIsICJ7ey5tYXBwaW5nLnRhYmxlLnRpbWVzaGlmdH19Il07DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIH0NCiAgICAgICAgLy9jb25zb2xlLmxvZyh0aGlzLm1lbnVLZXksIHRoaXMudGFibGVIZWFkZXIpOw0KICAgIH0NCn0NCmNsYXNzIENvbnRlbnQgew0KICAgIGNvbnN0cnVjdG9yKCkgew0KICAgICAgICB0aGlzLkRvY3VtZW50SUQgPSAiY29udGVudCI7DQogICAgICAgIHRoaXMuVGFibGVJRCA9ICJjb250ZW50X3RhYmxlIjsNCiAgICAgICAgdGhpcy5oZWFkZXJDbGFzcyA9ICJjb250ZW50X3RhYmxlX2hlYWRlciI7DQogICAgICAgIHRoaXMuaW50ZXJhY3Rpb25JRCA9ICJjb250ZW50LWludGVyYWN0aW9uIjsNCiAgICB9DQogICAgY3JlYXRlSGVhZGxpbmUodmFsdWUpIHsNCiAgICAgICAgbGV0IGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJIMyIpOw0KICAgICAgICBlbGVtZW50LmlubmVySFRNTCA9IHZhbHVlOw0KICAgICAgICByZXR1cm4gZWxlbWVudDsNCiAgICB9DQogICAgY3JlYXRlSFIoKSB7DQogICAgICAgIHJldHVybiBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJIUiIpOw0KICAgIH0NCiAgICBjcmVhdGVJbnRlcmFjdGlvbigpIHsNCiAgICAgICAgbGV0IGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJESVYiKTsNCiAgICAgICAgZWxlbWVudC5zZXRBdHRyaWJ1dGUoImlkIiwgdGhpcy5pbnRlcmFjdGlvbklEKTsNCiAgICAgICAgcmV0dXJuIGVsZW1lbnQ7DQogICAgfQ0KICAgIGNyZWF0ZURJVigpIHsNCiAgICAgICAgbGV0IGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJESVYiKTsNCiAgICAgICAgZWxlbWVudC5pZCA9IHRoaXMuRGl2SUQ7DQogICAgICAgIHJldHVybiBlbGVtZW50Ow0KICAgIH0NCiAgICBjcmVhdGVUQUJMRSgpIHsNCiAgICAgICAgbGV0IGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJUQUJMRSIpOw0KICAgICAgICBlbGVtZW50LmlkID0gdGhpcy5UYWJsZUlEOw0KICAgICAgICByZXR1cm4gZWxlbWVudDsNCiAgICB9DQogICAgY3JlYXRlVGFibGVSb3coKSB7DQogICAgICAgIGxldCBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVFIiKTsNCiAgICAgICAgZWxlbWVudC5jbGFzc05hbWUgPSB0aGlzLmhlYWRlckNsYXNzOw0KICAgICAgICByZXR1cm4gZWxlbWVudDsNCiAgICB9DQogICAgY3JlYXRlVGFibGVDb250ZW50KG1lbnVLZXkpIHsNCiAgICAgICAgbGV0IGRhdGEgPSB7fTsNCiAgICAgICAgbGV0IHJvd3MgPSBbXTsNCiAgICAgICAgbGV0IGZpbGVUeXBlcyA9IFtdOw0KICAgICAgICBzd2l0Y2ggKG1lbnVLZXkpIHsNCiAgICAgICAgICAgIGNhc2UgInBsYXlsaXN0IjoNCiAgICAgICAgICAgICAgICBmaWxlVHlwZXMgPSBbIm0zdSIsICJoZGhyIl07DQogICAgICAgICAgICAgICAgZmlsZVR5cGVzLmZvckVhY2goZmlsZVR5cGUgPT4gew0KICAgICAgICAgICAgICAgICAgICBkYXRhID0gU0VSVkVSWyJzZXR0aW5ncyJdWyJmaWxlcyJdW2ZpbGVUeXBlXTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGtleXMgPSBnZXRPd25PYmpQcm9wcyhkYXRhKTsNCiAgICAgICAgICAgICAgICAgICAga2V5cy5mb3JFYWNoKGtleSA9PiB7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgdHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJUUiIpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuaWQgPSBrZXk7DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCInICsgZmlsZVR5cGUgKyAnIiwgdGhpcyknKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJuYW1lIl07DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgaWYgKFNFUlZFUlsic2V0dGluZ3MiXVsiYnVmZmVyIl0gIT0gIi0iKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsidHVuZXIiXTsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSAiLSI7DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsibGFzdC51cGRhdGUiXTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJwcm92aWRlci5hdmFpbGFiaWxpdHkiXTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJ0eXBlIl0udG9VcHBlckNhc2UoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJjb21wYXRpYmlsaXR5Il1bInN0cmVhbXMiXTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJjb21wYXRpYmlsaXR5Il1bImdyb3VwLnRpdGxlIl07DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsiY29tcGF0aWJpbGl0eSJdWyJ0dmcuaWQiXTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJjb21wYXRpYmlsaXR5Il1bInN0cmVhbS5pZCJdOw0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgcm93cy5wdXNoKHRyKTsNCiAgICAgICAgICAgICAgICAgICAgfSk7DQogICAgICAgICAgICAgICAgfSk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJmaWx0ZXIiOg0KICAgICAgICAgICAgICAgIGRlbGV0ZSBTRVJWRVJbInNldHRpbmdzIl1bImZpbHRlciJdWy0xXTsNCiAgICAgICAgICAgICAgICBkYXRhID0gU0VSVkVSWyJzZXR0aW5ncyJdWyJmaWx0ZXIiXTsNCiAgICAgICAgICAgICAgICB2YXIga2V5cyA9IGdldE93bk9ialByb3BzKGRhdGEpOw0KICAgICAgICAgICAgICAgIGtleXMuZm9yRWFjaChrZXkgPT4gew0KICAgICAgICAgICAgICAgICAgICB2YXIgdHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJUUiIpOw0KICAgICAgICAgICAgICAgICAgICB0ci5pZCA9IGtleTsNCiAgICAgICAgICAgICAgICAgICAgdHIuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgiJyArIGRhdGFba2V5XVsidHlwZSJdICsgJyIsIHRoaXMpJyk7DQogICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJzdGFydGluZ0NoYW5uZWwiXTsNCiAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsibmFtZSJdOw0KICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICBzd2l0Y2ggKGRhdGFba2V5XVsidHlwZSJdKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBjYXNlICJjdXN0b20tZmlsdGVyIjoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gInt7LmZpbHRlci5jdXN0b219fSI7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgICAgICAgICBjYXNlICJncm91cC10aXRsZSI6DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9ICJ7ey5maWx0ZXIuZ3JvdXB9fSI7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgICAgICAgICBkZWZhdWx0Og0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bImZpbHRlciJdOw0KICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgIHJvd3MucHVzaCh0cik7DQogICAgICAgICAgICAgICAgfSk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ4bWx0diI6DQogICAgICAgICAgICAgICAgZmlsZVR5cGVzID0gbmV3IEFycmF5KCJ4bWx0diIpOw0KICAgICAgICAgICAgICAgIGZpbGVUeXBlcy5mb3JFYWNoKGZpbGVUeXBlID0+IHsNCiAgICAgICAgICAgICAgICAgICAgZGF0YSA9IFNFUlZFUlsic2V0dGluZ3MiXVsiZmlsZXMiXVtmaWxlVHlwZV07DQogICAgICAgICAgICAgICAgICAgIHZhciBrZXlzID0gZ2V0T3duT2JqUHJvcHMoZGF0YSk7DQogICAgICAgICAgICAgICAgICAgIGtleXMuZm9yRWFjaChrZXkgPT4gew0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVFIiKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmlkID0ga2V5Ow0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgiJyArIGZpbGVUeXBlICsgJyIsIHRoaXMpJyk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsibmFtZSJdOw0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bImxhc3QudXBkYXRlIl07DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsicHJvdmlkZXIuYXZhaWxhYmlsaXR5Il07DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsiY29tcGF0aWJpbGl0eSJdWyJ4bWx0di5jaGFubmVscyJdOw0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bImNvbXBhdGliaWxpdHkiXVsieG1sdHYucHJvZ3JhbXMiXTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHJvd3MucHVzaCh0cik7DQogICAgICAgICAgICAgICAgICAgIH0pOw0KICAgICAgICAgICAgICAgIH0pOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAidXNlcnMiOg0KICAgICAgICAgICAgICAgIGZpbGVUeXBlcyA9IG5ldyBBcnJheSgidXNlcnMiKTsNCiAgICAgICAgICAgICAgICBmaWxlVHlwZXMuZm9yRWFjaChmaWxlVHlwZSA9PiB7DQogICAgICAgICAgICAgICAgICAgIGRhdGEgPSBTRVJWRVJbZmlsZVR5cGVdOw0KICAgICAgICAgICAgICAgICAgICB2YXIga2V5cyA9IGdldE93bk9ialByb3BzKGRhdGEpOw0KICAgICAgICAgICAgICAgICAgICBrZXlzLmZvckVhY2goa2V5ID0+IHsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciB0ciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlRSIik7DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5pZCA9IGtleTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoIicgKyBmaWxlVHlwZSArICciLCB0aGlzKScpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bImRhdGEiXVsidXNlcm5hbWUiXTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gIioqKioqKiI7DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGRhdGFba2V5XVsiZGF0YSJdWyJhdXRoZW50aWNhdGlvbi53ZWIiXSA9PSB0cnVlKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9ICLinJMiOw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9ICItIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgICAgICBpZiAoZGF0YVtrZXldWyJkYXRhIl1bImF1dGhlbnRpY2F0aW9uLnBtcyJdID09IHRydWUpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gIuKckyI7DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gIi0iOw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChkYXRhW2tleV1bImRhdGEiXVsiYXV0aGVudGljYXRpb24ubTN1Il0gPT0gdHJ1ZSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSAi4pyTIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSAiLSI7DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGRhdGFba2V5XVsiZGF0YSJdWyJhdXRoZW50aWNhdGlvbi54bWwiXSA9PSB0cnVlKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9ICLinJMiOw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9ICItIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgICAgICBpZiAoZGF0YVtrZXldWyJkYXRhIl1bImF1dGhlbnRpY2F0aW9uLmFwaSJdID09IHRydWUpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gIuKckyI7DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gIi0iOw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgcm93cy5wdXNoKHRyKTsNCiAgICAgICAgICAgICAgICAgICAgfSk7DQogICAgICAgICAgICAgICAgfSk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJtYXBwaW5nIjoNCiAgICAgICAgICAgICAgICBCVUxLX0VESVQgPSBmYWxzZTsNCiAgICAgICAgICAgICAgICBjcmVhdGVTZWFyY2hPYmooKTsNCiAgICAgICAgICAgICAgICBjaGVja1VuZG8oImVwZ01hcHBpbmciKTsNCiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZygiTUFQUElORyIpOw0KICAgICAgICAgICAgICAgIGRhdGEgPSBTRVJWRVJbInhlcGciXVsiZXBnTWFwcGluZyJdOw0KICAgICAgICAgICAgICAgIHZhciBrZXlzID0gZ2V0T3duT2JqUHJvcHMoZGF0YSk7DQogICAgICAgICAgICAgICAga2V5cy5mb3JFYWNoKGtleSA9PiB7DQogICAgICAgICAgICAgICAgICAgIHZhciB0ciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlRSIik7DQogICAgICAgICAgICAgICAgICAgIHRyLmlkID0ga2V5Ow0KICAgICAgICAgICAgICAgICAgICAvL3RyLnNldEF0dHJpYnV0ZSgnb25jb250ZXh0bWVudScsICdqYXZhc2NyaXB0OiByaWdodENsaWNrKHRoaXMpJykNCiAgICAgICAgICAgICAgICAgICAgc3dpdGNoIChkYXRhW2tleV1bIngtYWN0aXZlIl0pIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgdHJ1ZToNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ci5jbGFzc05hbWUgPSAiYWN0aXZlRVBHIjsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgZmFsc2U6DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgdHIuY2xhc3NOYW1lID0gIm5vdEFjdGl2ZUVQRyI7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgLy8gQnVsaw0KICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJCVUxLIjsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGZhbHNlOw0KICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgIC8vIENoYW5uZWwgbnVtYmVyDQogICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIklOUFVUQ0hBTk5FTCI7DQogICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bIngtY2hhbm5lbElEIl07DQogICAgICAgICAgICAgICAgICAgIC8vdGQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IGNoYW5nZUNoYW5uZWxOdW1iZXIoIicgKyBrZXkgKyAnIiwgdGhpcyknKQ0KICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgIC8vIExvZ28NCiAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiSU1HIjsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5pbWFnZVVSTCA9IGRhdGFba2V5XVsidHZnLWxvZ28iXTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHRkID0gY2VsbC5jcmVhdGVDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgIHRkLnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoIm1hcHBpbmciLCB0aGlzKScpOw0KICAgICAgICAgICAgICAgICAgICB0ZC5pZCA9IGtleTsNCiAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQodGQpOw0KICAgICAgICAgICAgICAgICAgICAvLyBDaGFubmVsIG5hbWUNCiAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2xhc3NOYW1lID0gZGF0YVtrZXldWyJ4LWNhdGVnb3J5Il07DQogICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bIngtbmFtZSJdOw0KICAgICAgICAgICAgICAgICAgICB2YXIgdGQgPSBjZWxsLmNyZWF0ZUNlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgdGQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgibWFwcGluZyIsIHRoaXMpJyk7DQogICAgICAgICAgICAgICAgICAgIHRkLmlkID0ga2V5Ow0KICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZCh0ZCk7DQogICAgICAgICAgICAgICAgICAgIC8vIFBsYXlsaXN0DQogICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAvL2NlbGwudmFsdWUgPSBkYXRhW2tleV1bIl9maWxlLm0zdS5uYW1lIl0gDQogICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBnZXRWYWx1ZUZyb21Qcm92aWRlckZpbGUoZGF0YVtrZXldWyJfZmlsZS5tM3UuaWQiXSwgIm0zdSIsICJuYW1lIik7DQogICAgICAgICAgICAgICAgICAgIHZhciB0ZCA9IGNlbGwuY3JlYXRlQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICB0ZC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJtYXBwaW5nIiwgdGhpcyknKTsNCiAgICAgICAgICAgICAgICAgICAgdGQuaWQgPSBrZXk7DQogICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKHRkKTsNCiAgICAgICAgICAgICAgICAgICAgLy8gR3JvdXAgKGdyb3VwLXRpdGxlKQ0KICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsieC1ncm91cC10aXRsZSJdOw0KICAgICAgICAgICAgICAgICAgICB2YXIgdGQgPSBjZWxsLmNyZWF0ZUNlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgdGQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgibWFwcGluZyIsIHRoaXMpJyk7DQogICAgICAgICAgICAgICAgICAgIHRkLmlkID0ga2V5Ow0KICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZCh0ZCk7DQogICAgICAgICAgICAgICAgICAgIC8vIFhNTFRWIGZpbGUNCiAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgIGlmIChkYXRhW2tleV1bIngteG1sdHYtZmlsZSJdICE9ICItIikgew0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGdldFZhbHVlRnJvbVByb3ZpZGVyRmlsZShkYXRhW2tleV1bIngteG1sdHYtZmlsZSJdLCAieG1sdHYiLCAibmFtZSIpOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsieC14bWx0di1maWxlIl07DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgdmFyIHRkID0gY2VsbC5jcmVhdGVDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgIHRkLnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoIm1hcHBpbmciLCB0aGlzKScpOw0KICAgICAgICAgICAgICAgICAgICB0ZC5pZCA9IGtleTsNCiAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQodGQpOw0KICAgICAgICAgICAgICAgICAgICAvLyBYTUxUViBDaGFubmVsDQogICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAvL3ZhciB2YWx1ZSA9IHN0ci5zdWJzdHJpbmcoMSwgNCk7DQogICAgICAgICAgICAgICAgICAgIHZhciB2YWx1ZSA9IGRhdGFba2V5XVsieC1tYXBwaW5nIl07DQogICAgICAgICAgICAgICAgICAgIGlmICh2YWx1ZS5sZW5ndGggPiAyMCkgew0KICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSBkYXRhW2tleV1bIngtbWFwcGluZyJdLnN1YnN0cmluZygwLCAyMCkgKyAiLi4uIjsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gdmFsdWU7DQogICAgICAgICAgICAgICAgICAgIHZhciB0ZCA9IGNlbGwuY3JlYXRlQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICB0ZC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJtYXBwaW5nIiwgdGhpcyknKTsNCiAgICAgICAgICAgICAgICAgICAgdGQuaWQgPSBrZXk7DQogICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKHRkKTsNCiAgICAgICAgICAgICAgICAgICAgLy8gVGltZVNoaWZ0DQogICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJ4LXRpbWVzaGlmdCJdOw0KICAgICAgICAgICAgICAgICAgICB2YXIgdGQgPSBjZWxsLmNyZWF0ZUNlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgdGQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgibWFwcGluZyIsIHRoaXMpJyk7DQogICAgICAgICAgICAgICAgICAgIHRkLmlkID0ga2V5Ow0KICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZCh0ZCk7DQogICAgICAgICAgICAgICAgICAgIHJvd3MucHVzaCh0cik7DQogICAgICAgICAgICAgICAgfSk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJzZXR0aW5ncyI6DQogICAgICAgICAgICAgICAgYWxlcnQoKTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICAgICAgY29uc29sZS5sb2coIlRhYmxlIGNvbnRlbnQgKG1lbnVLZXkpOiIsIG1lbnVLZXkpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICB9DQogICAgICAgIHJldHVybiByb3dzOw0KICAgIH0NCn0NCmNsYXNzIENlbGwgew0KICAgIGNyZWF0ZUNlbGwoKSB7DQogICAgICAgIGxldCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgIGlmICh0aGlzLmNoaWxkID09IHRydWUpIHsNCiAgICAgICAgICAgIHZhciBlbGVtZW50Ow0KICAgICAgICAgICAgc3dpdGNoICh0aGlzLmNoaWxkVHlwZSkgew0KICAgICAgICAgICAgICAgIGNhc2UgIlAiOg0KICAgICAgICAgICAgICAgICAgICBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCh0aGlzLmNoaWxkVHlwZSk7DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQuaW5uZXJIVE1MID0gdGhpcy52YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC5jbGFzc05hbWUgPSB0aGlzLmNsYXNzTmFtZTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAiSU5QVVQiOg0KICAgICAgICAgICAgICAgICAgICBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCh0aGlzLmNoaWxkVHlwZSk7DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQudmFsdWUgPSB0aGlzLnZhbHVlOw0KICAgICAgICAgICAgICAgICAgICBlbGVtZW50LnR5cGUgPSAidGV4dCI7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgIklOUFVUQ0hBTk5FTCI6DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJJTlBVVCIpOw0KICAgICAgICAgICAgICAgICAgICBlbGVtZW50LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2c2NyaXB0OiBjaGFuZ2VDaGFubmVsTnVtYmVyKHRoaXMpIik7DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQudmFsdWUgPSB0aGlzLnZhbHVlOw0KICAgICAgICAgICAgICAgICAgICBlbGVtZW50LnR5cGUgPSAidGV4dCI7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgIkJVTEsiOg0KICAgICAgICAgICAgICAgICAgICBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiSU5QVVQiKTsNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC5jaGVja2VkID0gdGhpcy52YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC50eXBlID0gImNoZWNrYm94IjsNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC5jbGFzc05hbWUgPSAiYnVsayBoaWRlQnVsayI7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgIkJVTEtfSEVBRCI6DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJJTlBVVCIpOw0KICAgICAgICAgICAgICAgICAgICBlbGVtZW50LmNoZWNrZWQgPSB0aGlzLnZhbHVlOw0KICAgICAgICAgICAgICAgICAgICBlbGVtZW50LnR5cGUgPSAiY2hlY2tib3giOw0KICAgICAgICAgICAgICAgICAgICBlbGVtZW50LmNsYXNzTmFtZSA9ICJidWxrIGhpZGVCdWxrIjsNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAiamF2YXNjcmlwdDogc2VsZWN0QWxsQ2hhbm5lbHMoKSIpOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBjYXNlICJJTUciOg0KICAgICAgICAgICAgICAgICAgICBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCh0aGlzLmNoaWxkVHlwZSk7DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQuc2V0QXR0cmlidXRlKCJzcmMiLCB0aGlzLmltYWdlVVJMKTsNCiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuaW1hZ2VVUkwgIT0gIiIpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGVsZW1lbnQuc2V0QXR0cmlidXRlKCJvbmVycm9yIiwgImphdmFzY3JpcHQ6IHRoaXMub25lcnJvcj1udWxsO3RoaXMuc3JjPScnIik7DQogICAgICAgICAgICAgICAgICAgICAgICAvL29uZXJyb3I9InRoaXMub25lcnJvcj1udWxsO3RoaXMuc3JjPSdtaXNzaW5nLmdpZic7Ig0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9DQogICAgICAgICAgICB0ZC5hcHBlbmRDaGlsZChlbGVtZW50KTsNCiAgICAgICAgfQ0KICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgIHRkLmlubmVySFRNTCA9IHRoaXMudmFsdWU7DQogICAgICAgIH0NCiAgICAgICAgaWYgKHRoaXMub25jbGljayA9PSB0cnVlKSB7DQogICAgICAgICAgICB0ZC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCB0aGlzLm9uY2xpY2tGdW5jdGlvbik7DQogICAgICAgICAgICB0ZC5jbGFzc05hbWUgPSAicG9pbnRlciI7DQogICAgICAgIH0NCiAgICAgICAgaWYgKHRoaXMudGRDbGFzc05hbWUgIT0gdW5kZWZpbmVkKSB7DQogICAgICAgICAgICB0ZC5jbGFzc05hbWUgPSB0aGlzLnRkQ2xhc3NOYW1lOw0KICAgICAgICB9DQogICAgICAgIHJldHVybiB0ZDsNCiAgICB9DQp9DQpjbGFzcyBTaG93Q29udGVudCBleHRlbmRzIENvbnRlbnQgew0KICAgIGNvbnN0cnVjdG9yKG1lbnVJRCkgew0KICAgICAgICBzdXBlcigpOw0KICAgICAgICB0aGlzLm1lbnVJRCA9IG1lbnVJRDsNCiAgICB9DQogICAgY3JlYXRlSW5wdXQodHlwZSwgbmFtZSwgdmFsdWUpIHsNCiAgICAgICAgbGV0IGlucHV0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiSU5QVVQiKTsNCiAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJ0eXBlIiwgdHlwZSk7DQogICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgibmFtZSIsIG5hbWUpOw0KICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInZhbHVlIiwgdmFsdWUpOw0KICAgICAgICByZXR1cm4gaW5wdXQ7DQogICAgfQ0KICAgIHNob3coKSB7DQogICAgICAgIENPTFVNTl9UT19TT1JUID0gLTE7DQogICAgICAgIC8vIERlbGV0ZSBvbGQgY29udGVudA0KICAgICAgICBsZXQgZG9jID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQodGhpcy5Eb2N1bWVudElEKTsNCiAgICAgICAgZG9jLmlubmVySFRNTCA9ICIiOw0KICAgICAgICBzaG93UHJldmlldyhmYWxzZSk7DQogICAgICAgIC8vIEhlYWRsaW5lDQogICAgICAgIGxldCBoZWFkbGluZSA9IG1lbnVJdGVtc1t0aGlzLm1lbnVJRF0uaGVhZGxpbmU7DQogICAgICAgIGxldCBtZW51S2V5ID0gbWVudUl0ZW1zW3RoaXMubWVudUlEXS5tZW51S2V5Ow0KICAgICAgICBsZXQgaCA9IHRoaXMuY3JlYXRlSGVhZGxpbmUoaGVhZGxpbmUpOw0KICAgICAgICBkb2MuYXBwZW5kQ2hpbGQoaCk7DQogICAgICAgIGxldCBociA9IHRoaXMuY3JlYXRlSFIoKTsNCiAgICAgICAgZG9jLmFwcGVuZENoaWxkKGhyKTsNCiAgICAgICAgLy8gSW50ZXJhY3Rpb24NCiAgICAgICAgbGV0IGRpdiA9IHRoaXMuY3JlYXRlSW50ZXJhY3Rpb24oKTsNCiAgICAgICAgZG9jLmFwcGVuZENoaWxkKGRpdik7DQogICAgICAgIGxldCBpbnRlcmFjdGlvbiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHRoaXMuaW50ZXJhY3Rpb25JRCk7DQogICAgICAgIHN3aXRjaCAobWVudUtleSkgew0KICAgICAgICAgICAgY2FzZSAicGxheWxpc3QiOg0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IHRoaXMuY3JlYXRlSW5wdXQoImJ1dHRvbiIsIG1lbnVLZXksICJ7ey5idXR0b24ubmV3fX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoImlkIiwgIi0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJwbGF5bGlzdCIpJyk7DQogICAgICAgICAgICAgICAgaW50ZXJhY3Rpb24uYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiZmlsdGVyIjoNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSB0aGlzLmNyZWF0ZUlucHV0KCJidXR0b24iLCBtZW51S2V5LCAie3suYnV0dG9uLm5ld319Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJpZCIsIC0xKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJmaWx0ZXIiLCB0aGlzKScpOw0KICAgICAgICAgICAgICAgIGludGVyYWN0aW9uLmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInhtbHR2IjoNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSB0aGlzLmNyZWF0ZUlucHV0KCJidXR0b24iLCBtZW51S2V5LCAie3suYnV0dG9uLm5ld319Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJpZCIsICJ4bWx0diIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoInhtbHR2IiknKTsNCiAgICAgICAgICAgICAgICBpbnRlcmFjdGlvbi5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ1c2VycyI6DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gdGhpcy5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgbWVudUtleSwgInt7LmJ1dHRvbi5uZXd9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgiaWQiLCAidXNlcnMiKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJ1c2VycyIpJyk7DQogICAgICAgICAgICAgICAgaW50ZXJhY3Rpb24uYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAibWFwcGluZyI6DQogICAgICAgICAgICAgICAgc2hvd0VsZW1lbnQoImxvYWRpbmciLCB0cnVlKTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSB0aGlzLmNyZWF0ZUlucHV0KCJidXR0b24iLCBtZW51S2V5LCAie3suYnV0dG9uLnNhdmV9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBzYXZlUG9wdXBEYXRhKCJtYXBwaW5nIiwgIiIsICIiKScpOw0KICAgICAgICAgICAgICAgIGludGVyYWN0aW9uLmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSB0aGlzLmNyZWF0ZUlucHV0KCJidXR0b24iLCBtZW51S2V5LCAie3suYnV0dG9uLmJ1bGtFZGl0fX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogYnVsa0VkaXQoKScpOw0KICAgICAgICAgICAgICAgIGludGVyYWN0aW9uLmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSB0aGlzLmNyZWF0ZUlucHV0KCJzZWFyY2giLCAic2VhcmNoIiwgIiIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgiaWQiLCAic2VhcmNoTWFwcGluZyIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3suYnV0dG9uLnNlYXJjaH19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuY2xhc3NOYW1lID0gInNlYXJjaCI7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICdqYXZhc2NyaXB0OiBzZWFyY2hJbk1hcHBpbmcoKScpOw0KICAgICAgICAgICAgICAgIGludGVyYWN0aW9uLmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInNldHRpbmdzIjoNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSB0aGlzLmNyZWF0ZUlucHV0KCJidXR0b24iLCBtZW51S2V5LCAie3suYnV0dG9uLnNhdmV9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBzYXZlU2V0dGluZ3MoKTsnKTsNCiAgICAgICAgICAgICAgICBpbnRlcmFjdGlvbi5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gdGhpcy5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgbWVudUtleSwgInt7LmJ1dHRvbi5iYWNrdXB9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBiYWNrdXAoKTsnKTsNCiAgICAgICAgICAgICAgICBpbnRlcmFjdGlvbi5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gdGhpcy5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgbWVudUtleSwgInt7LmJ1dHRvbi5yZXN0b3JlfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogcmVzdG9yZSgpOycpOw0KICAgICAgICAgICAgICAgIGludGVyYWN0aW9uLmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICB2YXIgd3JhcHBlciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIkRJViIpOw0KICAgICAgICAgICAgICAgIHdyYXBwZXIuc2V0QXR0cmlidXRlKCJpZCIsICJib3gtd3JhcHBlciIpOw0KICAgICAgICAgICAgICAgIGRvYy5hcHBlbmRDaGlsZCh3cmFwcGVyKTsNCiAgICAgICAgICAgICAgICB0aGlzLkRpdklEID0gImNvbnRlbnRfc2V0dGluZ3MiOw0KICAgICAgICAgICAgICAgIHZhciBzZXR0aW5ncyA9IHRoaXMuY3JlYXRlRElWKCk7DQogICAgICAgICAgICAgICAgd3JhcHBlci5hcHBlbmRDaGlsZChzZXR0aW5ncyk7DQogICAgICAgICAgICAgICAgc2hvd1NldHRpbmdzKCk7DQogICAgICAgICAgICAgICAgcmV0dXJuOw0KICAgICAgICAgICAgY2FzZSAibG9nIjoNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSB0aGlzLmNyZWF0ZUlucHV0KCJidXR0b24iLCBtZW51S2V5LCAie3suYnV0dG9uLnJlc2V0TG9nc319Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IHJlc2V0TG9ncygpOycpOw0KICAgICAgICAgICAgICAgIGludGVyYWN0aW9uLmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICB2YXIgd3JhcHBlciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIkRJViIpOw0KICAgICAgICAgICAgICAgIHdyYXBwZXIuc2V0QXR0cmlidXRlKCJpZCIsICJib3gtd3JhcHBlciIpOw0KICAgICAgICAgICAgICAgIGRvYy5hcHBlbmRDaGlsZCh3cmFwcGVyKTsNCiAgICAgICAgICAgICAgICB0aGlzLkRpdklEID0gImNvbnRlbnRfbG9nIjsNCiAgICAgICAgICAgICAgICB2YXIgbG9ncyA9IHRoaXMuY3JlYXRlRElWKCk7DQogICAgICAgICAgICAgICAgd3JhcHBlci5hcHBlbmRDaGlsZChsb2dzKTsNCiAgICAgICAgICAgICAgICBzaG93TG9ncyh0cnVlKTsNCiAgICAgICAgICAgICAgICByZXR1cm47DQogICAgICAgICAgICBjYXNlICJsb2dvdXQiOg0KICAgICAgICAgICAgICAgIGxvY2F0aW9uLnJlbG9hZCgpOw0KICAgICAgICAgICAgICAgIGRvY3VtZW50LmNvb2tpZSA9ICJUb2tlbj0gOyBleHBpcmVzID0gVGh1LCAwMSBKYW4gMTk3MCAwMDowMDowMCBHTVQiOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZygiU2hvdyBjb250ZW50IChtZW51S2V5KToiLCBtZW51S2V5KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgfQ0KICAgICAgICAvLyBDcmVhdGUgdGFibGUgKGlmIG5lZWRlZCkNCiAgICAgICAgdmFyIHRhYmxlSGVhZGVyID0gbWVudUl0ZW1zW3RoaXMubWVudUlEXS50YWJsZUhlYWRlcjsNCiAgICAgICAgaWYgKHRhYmxlSGVhZGVyLmxlbmd0aCA+IDApIHsNCiAgICAgICAgICAgIHZhciB3cmFwcGVyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiRElWIik7DQogICAgICAgICAgICBkb2MuYXBwZW5kQ2hpbGQod3JhcHBlcik7DQogICAgICAgICAgICB3cmFwcGVyLnNldEF0dHJpYnV0ZSgiaWQiLCAiYm94LXdyYXBwZXIiKTsNCiAgICAgICAgICAgIHZhciB0YWJsZSA9IHRoaXMuY3JlYXRlVEFCTEUoKTsNCiAgICAgICAgICAgIHdyYXBwZXIuYXBwZW5kQ2hpbGQodGFibGUpOw0KICAgICAgICAgICAgdmFyIGhlYWRlciA9IHRoaXMuY3JlYXRlVGFibGVSb3coKTsNCiAgICAgICAgICAgIHRhYmxlLmFwcGVuZENoaWxkKGhlYWRlcik7DQogICAgICAgICAgICAvLyBUYWJsZSBoZWFkZXINCiAgICAgICAgICAgIHRhYmxlSGVhZGVyLmZvckVhY2goZWxlbWVudCA9PiB7DQogICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBlbGVtZW50Ow0KICAgICAgICAgICAgICAgIGlmIChlbGVtZW50ID09ICJCVUxLIikgew0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJCVUxLX0hFQUQiOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZmFsc2U7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIGlmIChtZW51S2V5ID09ICJtYXBwaW5nIikgew0KICAgICAgICAgICAgICAgICAgICBpZiAoZWxlbWVudCA9PSAie3subWFwcGluZy50YWJsZS5jaE5vfX0iKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLm9uY2xpY2sgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5vbmNsaWNrRnVuY3Rpb24gPSAiamF2YXNjcmlwdDogc29ydFRhYmxlKDEpOyI7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnRkQ2xhc3NOYW1lID0gInNvcnRUaGlzIjsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBpZiAoZWxlbWVudCA9PSAie3subWFwcGluZy50YWJsZS5jaGFubmVsTmFtZX19Iikgew0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5vbmNsaWNrID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwub25jbGlja0Z1bmN0aW9uID0gImphdmFzY3JpcHQ6IHNvcnRUYWJsZSgzKTsiOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIGlmIChlbGVtZW50ID09ICJ7ey5tYXBwaW5nLnRhYmxlLnBsYXlsaXN0fX0iKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLm9uY2xpY2sgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5vbmNsaWNrRnVuY3Rpb24gPSAiamF2YXNjcmlwdDogc29ydFRhYmxlKDQpOyI7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgaWYgKGVsZW1lbnQgPT0gInt7Lm1hcHBpbmcudGFibGUuZ3JvdXBUaXRsZX19Iikgew0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5vbmNsaWNrID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwub25jbGlja0Z1bmN0aW9uID0gImphdmFzY3JpcHQ6IHNvcnRUYWJsZSg1KTsiOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIGlmIChlbGVtZW50ID09ICJ7ey5tYXBwaW5nLnRhYmxlLnRpbWVzaGlmdH19Iikgew0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5vbmNsaWNrID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwub25jbGlja0Z1bmN0aW9uID0gImphdmFzY3JpcHQ6IHNvcnRUYWJsZSg4KTsiOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIGlmIChtZW51S2V5ID09ICJmaWx0ZXIiKSB7DQogICAgICAgICAgICAgICAgICAgIGlmIChlbGVtZW50ID09ICJ7ey5maWx0ZXIudGFibGUuc3RhcnRpbmdDaGFubmVsfX0iKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLm9uY2xpY2sgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5vbmNsaWNrRnVuY3Rpb24gPSAiamF2YXNjcmlwdDogc29ydFRhYmxlKDApOyI7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnRkQ2xhc3NOYW1lID0gInNvcnRUaGlzIjsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBpZiAoZWxlbWVudCA9PSAie3suZmlsdGVyLnRhYmxlLm5hbWV9fSIpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwub25jbGljayA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLm9uY2xpY2tGdW5jdGlvbiA9ICJqYXZhc2NyaXB0OiBzb3J0VGFibGUoMSk7IjsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBpZiAoZWxlbWVudCA9PSAie3suZmlsdGVyLnRhYmxlLnR5cGV9fSIpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwub25jbGljayA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLm9uY2xpY2tGdW5jdGlvbiA9ICJqYXZhc2NyaXB0OiBzb3J0VGFibGUoMik7IjsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBpZiAoZWxlbWVudCA9PSAie3suZmlsdGVyLnRhYmxlLmZpbHRlcn19Iikgew0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5vbmNsaWNrID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwub25jbGlja0Z1bmN0aW9uID0gImphdmFzY3JpcHQ6IHNvcnRUYWJsZSgzKTsiOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIGhlYWRlci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICB9KTsNCiAgICAgICAgICAgIHRhYmxlLmFwcGVuZENoaWxkKGhlYWRlcik7DQogICAgICAgICAgICAvLyBDb250ZW50IG9mIHRoZSB0YWJsZQ0KICAgICAgICAgICAgdmFyIHJvd3MgPSB0aGlzLmNyZWF0ZVRhYmxlQ29udGVudChtZW51S2V5KTsNCiAgICAgICAgICAgIHJvd3MuZm9yRWFjaCh0ciA9PiB7DQogICAgICAgICAgICAgICAgdGFibGUuYXBwZW5kQ2hpbGQodHIpOw0KICAgICAgICAgICAgfSk7DQogICAgICAgIH0NCiAgICAgICAgc3dpdGNoIChtZW51S2V5KSB7DQogICAgICAgICAgICBjYXNlICJtYXBwaW5nIjoNCiAgICAgICAgICAgICAgICBzb3J0VGFibGUoMSk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJmaWx0ZXIiOg0KICAgICAgICAgICAgICAgIHNob3dQcmV2aWV3KHRydWUpOw0KICAgICAgICAgICAgICAgIHNvcnRUYWJsZSgwKTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICAgICAgQ09MVU1OX1RPX1NPUlQgPSAtMTsNCiAgICAgICAgICAgICAgICBzb3J0VGFibGUoMCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIH0NCiAgICAgICAgc2hvd0VsZW1lbnQoImxvYWRpbmciLCBmYWxzZSk7DQogICAgfQ0KfQ0KZnVuY3Rpb24gUGFnZVJlYWR5KCkgew0KICAgIGxldCBzZXJ2ZXIgPSBuZXcgU2VydmVyKCJnZXRTZXJ2ZXJDb25maWciKTsNCiAgICBzZXJ2ZXIucmVxdWVzdCh7fSk7DQogICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoInJlc2l6ZSIsIGZ1bmN0aW9uICgpIHsNCiAgICAgICAgY2FsY3VsYXRlV3JhcHBlckhlaWdodCgpOw0KICAgIH0sIHRydWUpOw0KICAgIHNldEludGVydmFsKGZ1bmN0aW9uICgpIHsNCiAgICAgICAgdXBkYXRlTG9nKCk7DQogICAgfSwgMTAwMDApOw0KICAgIHJldHVybjsNCn0NCmZ1bmN0aW9uIGNyZWF0ZUxheW91dCgpIHsNCiAgICAvLyBDbGllbnQgSW5mbw0KICAgIGxldCBvYmogPSBTRVJWRVJbImNsaWVudEluZm8iXTsNCiAgICBsZXQga2V5cyA9IGdldE93bk9ialByb3BzKG9iaik7DQogICAgZm9yICh2YXIgaSA9IDA7IGkgPCBrZXlzLmxlbmd0aDsgaSsrKSB7DQogICAgICAgIGlmIChkb2N1bWVudC5nZXRFbGVtZW50QnlJZChrZXlzW2ldKSkgew0KICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoa2V5c1tpXSkuaW5uZXJIVE1MID0gb2JqW2tleXNbaV1dOw0KICAgICAgICB9DQogICAgfQ0KICAgIGlmICghZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm1haW4tbWVudSIpKSB7DQogICAgICAgIHJldHVybjsNCiAgICB9DQogICAgLy8gQ3JlYXRlIG1lbnUNCiAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibWFpbi1tZW51IikuaW5uZXJIVE1MID0gIiI7DQogICAgZm9yIChsZXQgaSA9IDA7IGkgPCBtZW51SXRlbXMubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgbWVudUl0ZW1zW2ldLmlkID0gaTsNCiAgICAgICAgc3dpdGNoIChtZW51SXRlbXNbaV1bIm1lbnVLZXkiXSkgew0KICAgICAgICAgICAgY2FzZSAidXNlcnMiOg0KICAgICAgICAgICAgY2FzZSAibG9nb3V0IjoNCiAgICAgICAgICAgICAgICBpZiAoU0VSVkVSWyJzZXR0aW5ncyJdWyJhdXRoZW50aWNhdGlvbi53ZWIiXSA9PSB0cnVlKSB7DQogICAgICAgICAgICAgICAgICAgIG1lbnVJdGVtc1tpXS5jcmVhdGVJdGVtKCk7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAibWFwcGluZyI6DQogICAgICAgICAgICBjYXNlICJ4bWx0diI6DQogICAgICAgICAgICAgICAgaWYgKFNFUlZFUlsiY2xpZW50SW5mbyJdWyJlcGdTb3VyY2UiXSA9PSAiWEVQRyIpIHsNCiAgICAgICAgICAgICAgICAgICAgbWVudUl0ZW1zW2ldLmNyZWF0ZUl0ZW0oKTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBkZWZhdWx0Og0KICAgICAgICAgICAgICAgIG1lbnVJdGVtc1tpXS5jcmVhdGVJdGVtKCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIH0NCiAgICB9DQogICAgcmV0dXJuOw0KfQ0KZnVuY3Rpb24gb3BlblRoaXNNZW51KGVsZW1lbnQpIHsNCiAgICBsZXQgaWQgPSBlbGVtZW50LmlkOw0KICAgIGxldCBjb250ZW50ID0gbmV3IFNob3dDb250ZW50KGlkKTsNCiAgICBjb250ZW50LnNob3coKTsNCiAgICBjYWxjdWxhdGVXcmFwcGVySGVpZ2h0KCk7DQogICAgcmV0dXJuOw0KfQ0KY2xhc3MgUG9wdXBXaW5kb3cgew0KICAgIGNvbnN0cnVjdG9yKCkgew0KICAgICAgICB0aGlzLkRvY3VtZW50SUQgPSAicG9wdXAtY3VzdG9tIjsNCiAgICAgICAgdGhpcy5JbnRlcmFjdGlvbklEID0gImludGVyYWN0aW9uIjsNCiAgICAgICAgdGhpcy5kb2MgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCh0aGlzLkRvY3VtZW50SUQpOw0KICAgIH0NCiAgICBjcmVhdGVUaXRsZSh0aXRsZSkgew0KICAgICAgICBsZXQgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICB0ZC5jbGFzc05hbWUgPSAibGVmdCI7DQogICAgICAgIHRkLmlubmVySFRNTCA9IHRpdGxlICsgIjoiOw0KICAgICAgICByZXR1cm4gdGQ7DQogICAgfQ0KICAgIGNyZWF0ZUNvbnRlbnQoZWxlbWVudCkgew0KICAgICAgICBsZXQgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICB0ZC5hcHBlbmRDaGlsZChlbGVtZW50KTsNCiAgICAgICAgcmV0dXJuIHRkOw0KICAgIH0NCiAgICBjcmVhdGVJbnRlcmFjdGlvbigpIHsNCiAgICAgICAgbGV0IGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOw0KICAgICAgICBkaXYuc2V0QXR0cmlidXRlKCJpZCIsICJwb3B1cC1pbnRlcmFjdGlvbiIpOw0KICAgICAgICBkaXYuY2xhc3NOYW1lID0gImludGVyYWN0aW9uIjsNCiAgICAgICAgdGhpcy5kb2MuYXBwZW5kQ2hpbGQoZGl2KTsNCiAgICB9DQp9DQpjbGFzcyBQb3B1cENvbnRlbnQgZXh0ZW5kcyBQb3B1cFdpbmRvdyB7DQogICAgY29uc3RydWN0b3IoKSB7DQogICAgICAgIHN1cGVyKC4uLmFyZ3VtZW50cyk7DQogICAgICAgIHRoaXMudGFibGUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJUQUJMRSIpOw0KICAgIH0NCiAgICBjcmVhdGVIZWFkbGluZShoZWFkbGluZSkgew0KICAgICAgICB0aGlzLmRvYy5pbm5lckhUTUwgPSAiIjsNCiAgICAgICAgdmFyIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJIMyIpOw0KICAgICAgICBlbGVtZW50LmlubmVySFRNTCA9IGhlYWRsaW5lLnRvVXBwZXJDYXNlKCk7DQogICAgICAgIHRoaXMuZG9jLmFwcGVuZENoaWxkKGVsZW1lbnQpOw0KICAgICAgICAvLyBDcmVhdGUgdGFibGUNCiAgICAgICAgdGhpcy50YWJsZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlRBQkxFIik7DQogICAgICAgIHRoaXMuZG9jLmFwcGVuZENoaWxkKHRoaXMudGFibGUpOw0KICAgIH0NCiAgICBhcHBlbmRSb3codGl0bGUsIGVsZW1lbnQpIHsNCiAgICAgICAgbGV0IHRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVFIiKTsNCiAgICAgICAgLy8gVGl0bGUNCiAgICAgICAgaWYgKHRpdGxlLmxlbmd0aCAhPSAwKSB7DQogICAgICAgICAgICB0ci5hcHBlbmRDaGlsZCh0aGlzLmNyZWF0ZVRpdGxlKHRpdGxlKSk7DQogICAgICAgIH0NCiAgICAgICAgLy8gQ29udGVudA0KICAgICAgICB0ci5hcHBlbmRDaGlsZCh0aGlzLmNyZWF0ZUNvbnRlbnQoZWxlbWVudCkpOw0KICAgICAgICB0aGlzLnRhYmxlLmFwcGVuZENoaWxkKHRyKTsNCiAgICB9DQogICAgY3JlYXRlSW5wdXQodHlwZSwgbmFtZSwgdmFsdWUpIHsNCiAgICAgICAgbGV0IGlucHV0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiSU5QVVQiKTsNCiAgICAgICAgaWYgKHZhbHVlID09IHVuZGVmaW5lZCkgew0KICAgICAgICAgICAgdmFsdWUgPSAiIjsNCiAgICAgICAgfQ0KICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInR5cGUiLCB0eXBlKTsNCiAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJuYW1lIiwgbmFtZSk7DQogICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgidmFsdWUiLCB2YWx1ZSk7DQogICAgICAgIHJldHVybiBpbnB1dDsNCiAgICB9DQogICAgY3JlYXRlQ2hlY2tib3gobmFtZSkgew0KICAgICAgICBsZXQgaW5wdXQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJJTlBVVCIpOw0KICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInR5cGUiLCAiY2hlY2tib3giKTsNCiAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJuYW1lIiwgbmFtZSk7DQogICAgICAgIHJldHVybiBpbnB1dDsNCiAgICB9DQogICAgLy8gQ3JlYXRlcyBhIHNlbGVjdGlvbiBvZiBtdWx0aXBsZSBvcHRpb25zIHZhbHVlcyB3aXRoIHRleHQgZGVzY3JpcHRpb25zDQogICAgY3JlYXRlU2VsZWN0KHRleHQsIHZhbHVlcywgc2V0LCBkYktleSkgew0KICAgICAgICBsZXQgc2VsZWN0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiU0VMRUNUIik7DQogICAgICAgIHNlbGVjdC5zZXRBdHRyaWJ1dGUoIm5hbWUiLCBkYktleSk7DQogICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGV4dC5sZW5ndGg7IGkrKykgew0KICAgICAgICAgICAgbGV0IG9wdGlvbiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIk9QVElPTiIpOw0KICAgICAgICAgICAgb3B0aW9uLnNldEF0dHJpYnV0ZSgidmFsdWUiLCB2YWx1ZXNbaV0pOw0KICAgICAgICAgICAgb3B0aW9uLmlubmVyVGV4dCA9IHRleHRbaV07DQogICAgICAgICAgICBzZWxlY3QuYXBwZW5kQ2hpbGQob3B0aW9uKTsNCiAgICAgICAgfQ0KICAgICAgICBpZiAoc2V0ICE9ICIiKSB7DQogICAgICAgICAgICBzZWxlY3QudmFsdWUgPSBzZXQ7DQogICAgICAgIH0NCiAgICAgICAgaWYgKHNldCA9PSB1bmRlZmluZWQpIHsNCiAgICAgICAgICAgIHNlbGVjdC52YWx1ZSA9IHZhbHVlc1swXTsNCiAgICAgICAgfQ0KICAgICAgICByZXR1cm4gc2VsZWN0Ow0KICAgIH0NCiAgICBzZWxlY3RPcHRpb24oc2VsZWN0LCB2YWx1ZSkgew0KICAgICAgICAvL3NlbGVjdC5zZWxlY3RlZE9wdGlvbnMgPSB2YWx1ZQ0KICAgICAgICBsZXQgcyA9IHNlbGVjdDsNCiAgICAgICAgcy5vcHRpb25zW3Muc2VsZWN0ZWRJbmRleF0udmFsdWUgPSB2YWx1ZTsNCiAgICAgICAgcmV0dXJuIHNlbGVjdDsNCiAgICB9DQogICAgZGVzY3JpcHRpb24odmFsdWUpIHsNCiAgICAgICAgbGV0IHRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVFIiKTsNCiAgICAgICAgbGV0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgbGV0IHNwYW4gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJQUkUiKTsNCiAgICAgICAgc3Bhbi5pbm5lckhUTUwgPSB2YWx1ZTsNCiAgICAgICAgdHIuYXBwZW5kQ2hpbGQodGQpOw0KICAgICAgICB0ci5hcHBlbmRDaGlsZCh0aGlzLmNyZWF0ZUNvbnRlbnQoc3BhbikpOw0KICAgICAgICB0aGlzLnRhYmxlLmFwcGVuZENoaWxkKHRyKTsNCiAgICB9DQogICAgLy8gSW50ZXJhY3Rpb24NCiAgICBhZGRJbnRlcmFjdGlvbihlbGVtZW50KSB7DQogICAgICAgIGxldCBpbnRlcmFjdGlvbiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJwb3B1cC1pbnRlcmFjdGlvbiIpOw0KICAgICAgICBpbnRlcmFjdGlvbi5hcHBlbmRDaGlsZChlbGVtZW50KTsNCiAgICB9DQp9DQpmdW5jdGlvbiBvcGVuUG9wVXAoZGF0YVR5cGUsIGVsZW1lbnQpIHsNCiAgICBsZXQgZGF0YSA9IHt9Ow0KICAgIGxldCBpZDsNCiAgICBzd2l0Y2ggKGVsZW1lbnQpIHsNCiAgICAgICAgY2FzZSB1bmRlZmluZWQ6DQogICAgICAgICAgICBzd2l0Y2ggKGRhdGFUeXBlKSB7DQogICAgICAgICAgICAgICAgY2FzZSAiZ3JvdXAtdGl0bGUiOg0KICAgICAgICAgICAgICAgICAgICBpZiAoaWQgPT0gdW5kZWZpbmVkKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBpZCA9IC0xOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIGRhdGEgPSBnZXRMb2NhbERhdGEoImZpbHRlciIsIGlkKTsNCiAgICAgICAgICAgICAgICAgICAgZGF0YVsidHlwZSJdID0gImdyb3VwLXRpdGxlIjsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAiY3VzdG9tLWZpbHRlciI6DQogICAgICAgICAgICAgICAgICAgIGlmIChpZCA9PSB1bmRlZmluZWQpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGlkID0gLTE7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgZGF0YSA9IGdldExvY2FsRGF0YSgiZmlsdGVyIiwgaWQpOw0KICAgICAgICAgICAgICAgICAgICBkYXRhWyJ0eXBlIl0gPSAiY3VzdG9tLWZpbHRlciI7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICAgICAgICAgIGRhdGFbImlkLnByb3ZpZGVyIl0gPSAiLSI7DQogICAgICAgICAgICAgICAgICAgIGRhdGFbInR5cGUiXSA9IGRhdGFUeXBlOw0KICAgICAgICAgICAgICAgICAgICBpZCA9ICItIjsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgIGlkID0gZWxlbWVudC5pZDsNCiAgICAgICAgICAgIGRhdGEgPSBnZXRMb2NhbERhdGEoZGF0YVR5cGUsIGlkKTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgIH0NCiAgICBsZXQgY29udGVudCA9IG5ldyBQb3B1cENvbnRlbnQoKTsNCiAgICBzd2l0Y2ggKGRhdGFUeXBlKSB7DQogICAgICAgIGNhc2UgInBsYXlsaXN0IjoNCiAgICAgICAgICAgIGNvbnRlbnQuY3JlYXRlSGVhZGxpbmUoInt7LnBsYXlsaXN0LnBsYXlsaXN0VHlwZS50aXRsZX19Iik7DQogICAgICAgICAgICAvLyBUeXBlDQogICAgICAgICAgICB2YXIgdGV4dCA9IFsiTTNVIiwgIkhESG9tZVJ1biJdOw0KICAgICAgICAgICAgdmFyIHZhbHVlcyA9IFsiamF2YXNjcmlwdDogb3BlblBvcFVwKCdtM3UnKSIsICJqYXZhc2NyaXB0OiBvcGVuUG9wVXAoJ2hkaHInKSJdOw0KICAgICAgICAgICAgdmFyIHNlbGVjdCA9IGNvbnRlbnQuY3JlYXRlU2VsZWN0KHRleHQsIHZhbHVlcywgIiIsICJ0eXBlIik7DQogICAgICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJpZCIsICJ0eXBlIik7DQogICAgICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICdqYXZhc2NyaXB0OiBjaGFuZ2VCdXR0b25BY3Rpb24odGhpcywgIm5leHQiLCAib25jbGljayIpJyk7IC8vIGNoYW5nZUJ1dHRvbkFjdGlvbg0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnBsYXlsaXN0LnR5cGUudGl0bGV9fSIsIHNlbGVjdCk7DQogICAgICAgICAgICAvLyBJbnRlcmFjdGlvbg0KICAgICAgICAgICAgY29udGVudC5jcmVhdGVJbnRlcmFjdGlvbigpOw0KICAgICAgICAgICAgLy8gQWJvcnQNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJjYW5jZWwiLCAie3suYnV0dG9uLmNhbmNlbH19Iik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogc2hvd0VsZW1lbnQoInBvcHVwIiwgZmFsc2UpOycpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICAvLyBOZXh0DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAibmV4dCIsICJ7ey5idXR0b24ubmV4dH19Iik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJtM3UiKScpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJpZCIsICduZXh0Jyk7DQogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJtM3UiOg0KICAgICAgICAgICAgY29udGVudC5jcmVhdGVIZWFkbGluZShkYXRhVHlwZSk7DQogICAgICAgICAgICAvLyBOYW1lDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAibmFtZSI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3sucGxheWxpc3QubmFtZS5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sucGxheWxpc3QubmFtZS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgLy8gRGVzY3JpcHRpb24NCiAgICAgICAgICAgIHZhciBkYktleSA9ICJkZXNjcmlwdGlvbiI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3sucGxheWxpc3QuZGVzY3JpcHRpb24ucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnBsYXlsaXN0LmRlc2NyaXB0aW9uLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBVUkwNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJmaWxlLnNvdXJjZSI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3sucGxheWxpc3QuZmlsZU0zVS5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sucGxheWxpc3QuZmlsZU0zVS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgLy8gVHVuZXINCiAgICAgICAgICAgIGlmIChTRVJWRVJbInNldHRpbmdzIl1bImJ1ZmZlciJdICE9ICItIikgew0KICAgICAgICAgICAgICAgIHZhciB0ZXh0ID0gW107DQogICAgICAgICAgICAgICAgdmFyIHZhbHVlcyA9IFtdOw0KICAgICAgICAgICAgICAgIGZvciAodmFyIGkgPSAxOyBpIDw9IDEwMDsgaSsrKSB7DQogICAgICAgICAgICAgICAgICAgIHRleHQucHVzaChpLnRvU3RyaW5nKCkpOw0KICAgICAgICAgICAgICAgICAgICB2YWx1ZXMucHVzaChpLnRvU3RyaW5nKCkpOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB2YXIgZGJLZXkgPSAidHVuZXIiOw0KICAgICAgICAgICAgICAgIHZhciBzZWxlY3QgPSBjb250ZW50LmNyZWF0ZVNlbGVjdCh0ZXh0LCB2YWx1ZXMsIGRhdGFbZGJLZXldLCBkYktleSk7DQogICAgICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25mb2N1cyIsICJqYXZhc2NyaXB0OiByZXR1cm47Iik7DQogICAgICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnBsYXlsaXN0LnR1bmVyLnRpdGxlfX0iLCBzZWxlY3QpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgZWxzZSB7DQogICAgICAgICAgICAgICAgdmFyIGRiS2V5ID0gInR1bmVyIjsNCiAgICAgICAgICAgICAgICBpZiAoZGF0YVtkYktleV0gPT0gdW5kZWZpbmVkKSB7DQogICAgICAgICAgICAgICAgICAgIGRhdGFbZGJLZXldID0gMTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJyZWFkb25seSIsICJ0cnVlIik7DQogICAgICAgICAgICAgICAgaW5wdXQuY2xhc3NOYW1lID0gIm5vdEF2YWlsYWJsZSI7DQogICAgICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnBsYXlsaXN0LnR1bmVyLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBjb250ZW50LmRlc2NyaXB0aW9uKCJ7ey5wbGF5bGlzdC50dW5lci5kZXNjcmlwdGlvbn19Iik7DQogICAgICAgICAgICAvLyBJbnRlcmF0aW9uDQogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUludGVyYWN0aW9uKCk7DQogICAgICAgICAgICAvLyBEZWxldGUNCiAgICAgICAgICAgIGlmIChkYXRhWyJpZC5wcm92aWRlciJdICE9ICItIikgew0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJkZWxldGUiLCAie3suYnV0dG9uLmRlbGV0ZX19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuY2xhc3NOYW1lID0gImRlbGV0ZSI7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoIm0zdSIsICInICsgaWQgKyAnIiwgdHJ1ZSwgMCknKTsNCiAgICAgICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJiYWNrIiwgInt7LmJ1dHRvbi5iYWNrfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJwbGF5bGlzdCIpJyk7DQogICAgICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICAvLyBBYm9ydA0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImNhbmNlbCIsICJ7ey5idXR0b24uY2FuY2VsfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBzaG93RWxlbWVudCgicG9wdXAiLCBmYWxzZSk7Jyk7DQogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIC8vIFVwZGF0ZQ0KICAgICAgICAgICAgaWYgKGRhdGFbImlkLnByb3ZpZGVyIl0gIT0gIi0iKSB7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgInVwZGF0ZSIsICJ7ey5idXR0b24udXBkYXRlfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogc2F2ZVBvcHVwRGF0YSgibTN1IiwgIicgKyBpZCArICciLCBmYWxzZSwgMSknKTsNCiAgICAgICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIC8vIFNhdmUNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJzYXZlIiwgInt7LmJ1dHRvbi5zYXZlfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBzYXZlUG9wdXBEYXRhKCJtM3UiLCAiJyArIGlkICsgJyIsIGZhbHNlLCAwKScpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSAiaGRociI6DQogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUhlYWRsaW5lKGRhdGFUeXBlKTsNCiAgICAgICAgICAgIC8vIE5hbWUNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJuYW1lIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5wbGF5bGlzdC5uYW1lLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5wbGF5bGlzdC5uYW1lLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBEZXNjcmlwdGlvbg0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gImRlc2NyaXB0aW9uIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5wbGF5bGlzdC5kZXNjcmlwdGlvbi5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sucGxheWxpc3QuZGVzY3JpcHRpb24ucGxhY2Vob2xkZXJ9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIFVSTA0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gImZpbGUuc291cmNlIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5wbGF5bGlzdC5maWxlSERIUi5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sucGxheWxpc3QuZmlsZUhESFIudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIFR1bmVyDQogICAgICAgICAgICBpZiAoU0VSVkVSWyJzZXR0aW5ncyJdWyJidWZmZXIiXSAhPSAiLSIpIHsNCiAgICAgICAgICAgICAgICB2YXIgdGV4dCA9IFtdOw0KICAgICAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBbXTsNCiAgICAgICAgICAgICAgICBmb3IgKHZhciBpID0gMTsgaSA8PSAxMDA7IGkrKykgew0KICAgICAgICAgICAgICAgICAgICB0ZXh0LnB1c2goaS50b1N0cmluZygpKTsNCiAgICAgICAgICAgICAgICAgICAgdmFsdWVzLnB1c2goaS50b1N0cmluZygpKTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgdmFyIGRiS2V5ID0gInR1bmVyIjsNCiAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCBkYXRhW2RiS2V5XSwgZGJLZXkpOw0KICAgICAgICAgICAgICAgIHNlbGVjdC5zZXRBdHRyaWJ1dGUoIm9uZm9jdXMiLCAiamF2YXNjcmlwdDogcmV0dXJuOyIpOw0KICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5wbGF5bGlzdC50dW5lci50aXRsZX19Iiwgc2VsZWN0KTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgICAgIHZhciBkYktleSA9ICJ0dW5lciI7DQogICAgICAgICAgICAgICAgaWYgKGRhdGFbZGJLZXldID09IHVuZGVmaW5lZCkgew0KICAgICAgICAgICAgICAgICAgICBkYXRhW2RiS2V5XSA9IDE7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicmVhZG9ubHkiLCAidHJ1ZSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LmNsYXNzTmFtZSA9ICJub3RBdmFpbGFibGUiOw0KICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5wbGF5bGlzdC50dW5lci50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgY29udGVudC5kZXNjcmlwdGlvbigie3sucGxheWxpc3QudHVuZXIuZGVzY3JpcHRpb259fSIpOw0KICAgICAgICAgICAgLy8gSW50ZXJhY3Rpb24NCiAgICAgICAgICAgIGNvbnRlbnQuY3JlYXRlSW50ZXJhY3Rpb24oKTsNCiAgICAgICAgICAgIC8vIERlbGV0ZQ0KICAgICAgICAgICAgaWYgKGRhdGFbImlkLnByb3ZpZGVyIl0gIT0gIi0iKSB7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImRlbGV0ZSIsICJ7ey5idXR0b24uZGVsZXRlfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogc2F2ZVBvcHVwRGF0YSgiaGRociIsICInICsgaWQgKyAnIiwgdHJ1ZSwgMCknKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5jbGFzc05hbWUgPSAiZGVsZXRlIjsNCiAgICAgICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJiYWNrIiwgInt7LmJ1dHRvbi5iYWNrfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJwbGF5bGlzdCIpJyk7DQogICAgICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICAvLyBBYm9ydA0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImNhbmNlbCIsICJ7ey5idXR0b24uY2FuY2VsfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBzaG93RWxlbWVudCgicG9wdXAiLCBmYWxzZSk7Jyk7DQogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIC8vIFVwZGF0ZQ0KICAgICAgICAgICAgaWYgKGRhdGFbImlkLnByb3ZpZGVyIl0gIT0gIi0iKSB7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgInVwZGF0ZSIsICJ7ey5idXR0b24udXBkYXRlfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogc2F2ZVBvcHVwRGF0YSgiaGRociIsICInICsgaWQgKyAnIiwgZmFsc2UsIDEpJyk7DQogICAgICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICAvLyBTYXZlDQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAic2F2ZSIsICJ7ey5idXR0b24uc2F2ZX19Iik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogc2F2ZVBvcHVwRGF0YSgiaGRociIsICInICsgaWQgKyAnIiwgZmFsc2UsIDApJyk7DQogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJmaWx0ZXIiOg0KICAgICAgICAgICAgY29udGVudC5jcmVhdGVIZWFkbGluZShkYXRhVHlwZSk7DQogICAgICAgICAgICAvLyBUeXBlDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAidHlwZSI7DQogICAgICAgICAgICB2YXIgdGV4dCA9IFsiTTNVOiAiICsgInt7LmZpbHRlci50eXBlLmdyb3VwVGl0bGV9fSIsICJ4VGVWZTogIiArICJ7ey5maWx0ZXIudHlwZS5jdXN0b21GaWx0ZXJ9fSJdOw0KICAgICAgICAgICAgdmFyIHZhbHVlcyA9IFsiamF2YXNjcmlwdDogb3BlblBvcFVwKCdncm91cC10aXRsZScpIiwgImphdmFzY3JpcHQ6IG9wZW5Qb3BVcCgnY3VzdG9tLWZpbHRlcicpIl07DQogICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCAiamF2YXNjcmlwdDogb3BlblBvcFVwKCdncm91cC10aXRsZScpIiwgZGJLZXkpOw0KICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgiaWQiLCBpZCk7DQogICAgICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICdqYXZhc2NyaXB0OiBjaGFuZ2VCdXR0b25BY3Rpb24odGhpcywgIm5leHQiLCAib25jbGljayIpOycpOyAvLyBjaGFuZ2VCdXR0b25BY3Rpb24NCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5maWx0ZXIudHlwZS50aXRsZX19Iiwgc2VsZWN0KTsNCiAgICAgICAgICAgIC8vIEludGVyYWN0aW9uDQogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUludGVyYWN0aW9uKCk7DQogICAgICAgICAgICAvLyBBYm9ydA0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImNhbmNlbCIsICJ7ey5idXR0b24uY2FuY2VsfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBzaG93RWxlbWVudCgicG9wdXAiLCBmYWxzZSk7Jyk7DQogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIC8vIE5leHQNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJuZXh0IiwgInt7LmJ1dHRvbi5uZXh0fX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoImdyb3VwLXRpdGxlIiknKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgiaWQiLCAnbmV4dCcpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSAiY3VzdG9tLWZpbHRlciI6DQogICAgICAgIGNhc2UgImdyb3VwLXRpdGxlIjoNCiAgICAgICAgICAgIHN3aXRjaCAoZGF0YVR5cGUpIHsNCiAgICAgICAgICAgICAgICBjYXNlICJjdXN0b20tZmlsdGVyIjoNCiAgICAgICAgICAgICAgICAgICAgY29udGVudC5jcmVhdGVIZWFkbGluZSgie3suZmlsdGVyLmN1c3RvbX19IiArICIgRmlsdGVyIik7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgImdyb3VwLXRpdGxlIjoNCiAgICAgICAgICAgICAgICAgICAgY29udGVudC5jcmVhdGVIZWFkbGluZSgie3suZmlsdGVyLmdyb3VwfX0iICsgIiBGaWx0ZXIiKTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICB9DQogICAgICAgICAgICAvLyBOYW1lICAgICAgDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAibmFtZSI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3suZmlsdGVyLm5hbWUucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LmZpbHRlci5uYW1lLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBEZXNjcmlwdGlvbg0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gImRlc2NyaXB0aW9uIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5maWx0ZXIuZGVzY3JpcHRpb24ucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LmZpbHRlci5kZXNjcmlwdGlvbi50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgLy8gVHlwZQ0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gInR5cGUiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiaGlkZGVuIiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCIiLCBpbnB1dCk7DQogICAgICAgICAgICB2YXIgZmlsdGVyVHlwZSA9IGRhdGFbZGJLZXldOw0KICAgICAgICAgICAgc3dpdGNoIChmaWx0ZXJUeXBlKSB7DQogICAgICAgICAgICAgICAgY2FzZSAiY3VzdG9tLWZpbHRlciI6DQogICAgICAgICAgICAgICAgICAgIC8vIENhc2Ugc2Vuc2l0aXZlDQogICAgICAgICAgICAgICAgICAgIHZhciBkYktleSA9ICJjYXNlU2Vuc2l0aXZlIjsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChkYktleSk7DQogICAgICAgICAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhW2RiS2V5XTsNCiAgICAgICAgICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LmZpbHRlci5jYXNlU2Vuc2l0aXZlLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAgICAgICAgIC8vIEZpbHRlciBSdWxlIChDdXN0b20pDQogICAgICAgICAgICAgICAgICAgIHZhciBkYktleSA9ICJmaWx0ZXIiOw0KICAgICAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5maWx0ZXIuZmlsdGVyUnVsZS5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5maWx0ZXIuZmlsdGVyUnVsZS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBjYXNlICJncm91cC10aXRsZSI6DQogICAgICAgICAgICAgICAgICAgIC8vYWxlcnQoZGJLZXkgKyAiICIgKyBmaWx0ZXJUeXBlKQ0KICAgICAgICAgICAgICAgICAgICAvLyBGaWx0ZXIgYmFzZWQgb24gdGhlIGdyb3VwcyBpbiB0aGUgTTNVDQogICAgICAgICAgICAgICAgICAgIHZhciBkYktleSA9ICJmaWx0ZXIiOw0KICAgICAgICAgICAgICAgICAgICB2YXIgZ3JvdXBzTTNVID0gZ2V0TG9jYWxEYXRhKCJtM3VHcm91cHMiLCAiIik7DQogICAgICAgICAgICAgICAgICAgIHZhciB0ZXh0ID0gZ3JvdXBzTTNVWyJ0ZXh0Il07DQogICAgICAgICAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBncm91cHNNM1VbInZhbHVlIl07DQogICAgICAgICAgICAgICAgICAgIHZhciBzZWxlY3QgPSBjb250ZW50LmNyZWF0ZVNlbGVjdCh0ZXh0LCB2YWx1ZXMsIGRhdGFbZGJLZXldLCBkYktleSk7DQogICAgICAgICAgICAgICAgICAgIHNlbGVjdC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5maWx0ZXIuZmlsdGVyR3JvdXAudGl0bGV9fSIsIHNlbGVjdCk7DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuZGVzY3JpcHRpb24oInt7LmZpbHRlci5maWx0ZXJHcm91cC5kZXNjcmlwdGlvbn19Iik7DQogICAgICAgICAgICAgICAgICAgIC8vIENhc2Ugc2Vuc2V0aXZlDQogICAgICAgICAgICAgICAgICAgIHZhciBkYktleSA9ICJjYXNlU2Vuc2l0aXZlIjsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChkYktleSk7DQogICAgICAgICAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhW2RiS2V5XTsNCiAgICAgICAgICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LmZpbHRlci5jYXNlU2Vuc2l0aXZlLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAgICAgICAgIHZhciBkYktleSA9ICJpbmNsdWRlIjsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3suZmlsdGVyLmluY2x1ZGUucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3suZmlsdGVyLmluY2x1ZGUudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgICAgICAgICAgY29udGVudC5kZXNjcmlwdGlvbigie3suZmlsdGVyLmluY2x1ZGUuZGVzY3JpcHRpb259fSIpOw0KICAgICAgICAgICAgICAgICAgICB2YXIgZGJLZXkgPSAiZXhjbHVkZSI7DQogICAgICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LmZpbHRlci5leGNsdWRlLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LmZpbHRlci5leGNsdWRlLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuZGVzY3JpcHRpb24oInt7LmZpbHRlci5leGNsdWRlLmRlc2NyaXB0aW9ufX0iKTsNCiAgICAgICAgICAgICAgICAgICAgLy8gUHJlc2VydmUgTTNVIFBsYXlsaXN0IENoYW5uZWwgTWFwcGluZw0KICAgICAgICAgICAgICAgICAgICB2YXIgZGJLZXkgPSAicHJlc2VydmVNYXBwaW5nIjsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChkYktleSk7DQogICAgICAgICAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhW2RiS2V5XTsNCiAgICAgICAgICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LmZpbHRlci5wcmVzZXJ2ZU1hcHBpbmcudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgICAgICAgICAgLy8gU3RhcnRpbmcgQ2hhbm5lbCBOdW1iZXIgTWFwcGluZw0KICAgICAgICAgICAgICAgICAgICB2YXIgZGJLZXkgPSAic3RhcnRpbmdDaGFubmVsIjsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3suZmlsdGVyLnN0YXJ0aW5nQ2hhbm5lbC5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5maWx0ZXIuc3RhcnRpbmdDaGFubmVsLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAgICAgICAgIC8vIEZpbGwgTWlzc2luZyBFUEcgRGF0YQ0KICAgICAgICAgICAgICAgICAgICAvLyBUaGUgZm9sbG93aW5nIGNvZGUgb25seSB3b3JrcyB3aGVuIHhUZVZlIER1bW15IGFscmVhZHkgZXhpc3RzDQogICAgICAgICAgICAgICAgICAgIC8vIHZhciBkYktleTpzdHJpbmcgPSAiZGVmYXVsdE1pc3NpbmdFUEciDQogICAgICAgICAgICAgICAgICAgIC8vIHZhciB4bWx0djpYTUxUVkZpbGUgPSBuZXcgWE1MVFZGaWxlKCkNCiAgICAgICAgICAgICAgICAgICAgLy8gdmFyIHNlbGVjdCA9IHhtbHR2LmdldFByb2dyYW1zKCJ4VGVWZSBEdW1teSIsIGRhdGFbZGJLZXldKQ0KICAgICAgICAgICAgICAgICAgICAvLyBzZWxlY3Quc2V0QXR0cmlidXRlKCJuYW1lIiwgZGJLZXkpDQogICAgICAgICAgICAgICAgICAgIC8vIHNlbGVjdC5zZXRBdHRyaWJ1dGUoImlkIiwgInBvcHVwLW1pc3NpbmctZXBnIikNCiAgICAgICAgICAgICAgICAgICAgLy8gVGhlIHdvcmthcm91bmQgaXMgY3VycmVudGx5IHRvIGhhcmQgY29kZSB0aGUgeFRlVmUgRHVtbXkgZGF0YQ0KICAgICAgICAgICAgICAgICAgICB2YXIgZGJLZXkgPSAiZGVmYXVsdE1pc3NpbmdFUEciOw0KICAgICAgICAgICAgICAgICAgICB2YXIgbGlzdE9wdGlvbnMgPSB7ICJ0ZXh0IjogWyItIiwgIjMwIE1pbnV0ZXMgKDMwX01pbnV0ZXMpIiwgIjYwIE1pbnV0ZXMgKDYwX01pbnV0ZXMpIiwgIjkwIE1pbnV0ZXMgKDkwX01pbnV0ZXMpIiwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAiMTIwIE1pbnV0ZXMgKDEyMF9NaW51dGVzKSIsICIxODAgTWludXRlcyAoMzBfTWludXRlcykiLCAiMjQwIE1pbnV0ZXMgKDMwX01pbnV0ZXMpIiwgIjM2MCBNaW51dGVzICgzMF9NaW51dGVzKSJdLA0KICAgICAgICAgICAgICAgICAgICAgICAgInZhbHVlIjogWyItIiwgIjMwX01pbnV0ZXMiLCAiNjBfTWludXRlcyIsICI5MF9NaW51dGVzIiwgIjEyMF9NaW51dGVzIiwgIjE4MF9NaW51dGVzIiwgIjI0MF9NaW51dGVzIiwgIjM2MF9NaW51dGVzIixdIH07DQogICAgICAgICAgICAgICAgICAgIHZhciB0ZXh0ID0gbGlzdE9wdGlvbnNbInRleHQiXTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHZhbHVlcyA9IGxpc3RPcHRpb25zWyJ2YWx1ZSJdOw0KICAgICAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCBkYXRhW2RiS2V5XSwgZGJLZXkpOw0KICAgICAgICAgICAgICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3suZmlsdGVyLmRlZmF1bHRNaXNzaW5nRVBHLnRpdGxlfX0iLCBzZWxlY3QpOw0KICAgICAgICAgICAgICAgICAgICBjb250ZW50LmRlc2NyaXB0aW9uKCJ7ey5maWx0ZXIuZGVmYXVsdE1pc3NpbmdFUEcuZGVzY3JpcHRpb259fSIpOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBkZWZhdWx0Og0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIC8vIEludGVyYWN0aW9uDQogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUludGVyYWN0aW9uKCk7DQogICAgICAgICAgICAvLyBEZWxldGUNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJkZWxldGUiLCAie3suYnV0dG9uLmRlbGV0ZX19Iik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogc2F2ZVBvcHVwRGF0YSgiZmlsdGVyIiwgIicgKyBpZCArICciLCB0cnVlLCAwKScpOw0KICAgICAgICAgICAgaW5wdXQuY2xhc3NOYW1lID0gImRlbGV0ZSI7DQogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIC8vIEFib3J0DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAiY2FuY2VsIiwgInt7LmJ1dHRvbi5jYW5jZWx9fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IHNob3dFbGVtZW50KCJwb3B1cCIsIGZhbHNlKTsnKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgLy8gU2F2ZQ0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgInNhdmUiLCAie3suYnV0dG9uLnNhdmV9fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoImZpbHRlciIsICInICsgaWQgKyAnIiwgZmFsc2UsIDApJyk7DQogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJ4bWx0diI6DQogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUhlYWRsaW5lKGRhdGFUeXBlKTsNCiAgICAgICAgICAgIC8vIE5hbWUNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJuYW1lIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey54bWx0di5uYW1lLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey54bWx0di5uYW1lLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBEZXNjcmlwdGlvbg0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gImRlc2NyaXB0aW9uIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey54bWx0di5kZXNjcmlwdGlvbi5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sueG1sdHYuZGVzY3JpcHRpb24udGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIFVSTA0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gImZpbGUuc291cmNlIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey54bWx0di5maWxlWE1MVFYucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnhtbHR2LmZpbGVYTUxUVi50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgLy8gSW50ZXJhY3Rpb24NCiAgICAgICAgICAgIGNvbnRlbnQuY3JlYXRlSW50ZXJhY3Rpb24oKTsNCiAgICAgICAgICAgIC8vIERlbGV0ZQ0KICAgICAgICAgICAgaWYgKGRhdGFbImlkLnByb3ZpZGVyIl0gIT0gIi0iKSB7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImRlbGV0ZSIsICJ7ey5idXR0b24uZGVsZXRlfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogc2F2ZVBvcHVwRGF0YSgieG1sdHYiLCAiJyArIGlkICsgJyIsIHRydWUsIDApJyk7DQogICAgICAgICAgICAgICAgaW5wdXQuY2xhc3NOYW1lID0gImRlbGV0ZSI7DQogICAgICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICAvLyBBYm9ydA0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImNhbmNlbCIsICJ7ey5idXR0b24uY2FuY2VsfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBzaG93RWxlbWVudCgicG9wdXAiLCBmYWxzZSk7Jyk7DQogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIC8vIFVwZGF0ZQ0KICAgICAgICAgICAgaWYgKGRhdGFbImlkLnByb3ZpZGVyIl0gIT0gIi0iKSB7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgInVwZGF0ZSIsICJ7ey5idXR0b24udXBkYXRlfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogc2F2ZVBvcHVwRGF0YSgieG1sdHYiLCAiJyArIGlkICsgJyIsIGZhbHNlLCAxKScpOw0KICAgICAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgLy8gU2F2ZQ0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgInNhdmUiLCAie3suYnV0dG9uLnNhdmV9fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoInhtbHR2IiwgIicgKyBpZCArICciLCBmYWxzZSwgMCknKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGNhc2UgInVzZXJzIjoNCiAgICAgICAgICAgIGNvbnRlbnQuY3JlYXRlSGVhZGxpbmUoInt7Lm1haW5NZW51Lml0ZW0udXNlcnN9fSIpOw0KICAgICAgICAgICAgLy8gVXNlciBuYW1lDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAidXNlcm5hbWUiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnVzZXJzLnVzZXJuYW1lLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey51c2Vycy51c2VybmFtZS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgLy8gTmV3IFBhcnNzd29yZA0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gInBhc3N3b3JkIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInBhc3N3b3JkIiwgZGJLZXksICIiKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3sudXNlcnMucGFzc3dvcmQucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnVzZXJzLnBhc3N3b3JkLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBDb25maXJtYXRpb24NCiAgICAgICAgICAgIHZhciBkYktleSA9ICJjb25maXJtIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInBhc3N3b3JkIiwgZGJLZXksICIiKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3sudXNlcnMuY29uZmlybS5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sudXNlcnMuY29uZmlybS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgLy8gQXV0aGVudGljYXRpb24gV0VCDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAiYXV0aGVudGljYXRpb24ud2ViIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goZGJLZXkpOw0KICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGFbZGJLZXldOw0KICAgICAgICAgICAgaWYgKGRhdGFbImRlZmF1bHRVc2VyIl0gPT0gdHJ1ZSkgew0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICJqYXZhc2NyaXB0OiByZXR1cm4gZmFsc2UiKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey51c2Vycy53ZWIudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIEF1dGhlbnRpY2F0aW9uIFBNUw0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gImF1dGhlbnRpY2F0aW9uLnBtcyI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KGRiS2V5KTsNCiAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhW2RiS2V5XTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey51c2Vycy5wbXMudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIEF1dGhlbnRpY2F0aW9uIE0zVQ0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gImF1dGhlbnRpY2F0aW9uLm0zdSI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KGRiS2V5KTsNCiAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhW2RiS2V5XTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey51c2Vycy5tM3UudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIEF1dGhlbnRpY2F0aW9uIFhNTA0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gImF1dGhlbnRpY2F0aW9uLnhtbCI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KGRiS2V5KTsNCiAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhW2RiS2V5XTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey51c2Vycy54bWwudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIEF1dGhlbnRpY2F0aW9uIEFQSQ0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gImF1dGhlbnRpY2F0aW9uLmFwaSI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KGRiS2V5KTsNCiAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhW2RiS2V5XTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey51c2Vycy5hcGkudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIEludGVyYWN0aW9uDQogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUludGVyYWN0aW9uKCk7DQogICAgICAgICAgICAvLyBEZWxldGUNCiAgICAgICAgICAgIGlmIChkYXRhWyJkZWZhdWx0VXNlciJdICE9IHRydWUgJiYgaWQgIT0gIi0iKSB7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImRlbGV0ZSIsICJ7ey5idXR0b24uZGVsZXRlfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5jbGFzc05hbWUgPSAiZGVsZXRlIjsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogc2F2ZVBvcHVwRGF0YSgiJyArIGRhdGFUeXBlICsgJyIsICInICsgaWQgKyAnIiwgdHJ1ZSwgMCknKTsNCiAgICAgICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIC8vIEFib3J0DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAiY2FuY2VsIiwgInt7LmJ1dHRvbi5jYW5jZWx9fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IHNob3dFbGVtZW50KCJwb3B1cCIsIGZhbHNlKTsnKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgLy8gU2F2ZQ0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgInNhdmUiLCAie3suYnV0dG9uLnNhdmV9fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoIicgKyBkYXRhVHlwZSArICciLCAiJyArIGlkICsgJyIsICJmYWxzZSIpOycpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSAibWFwcGluZyI6DQogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUhlYWRsaW5lKCJ7ey5tYWluTWVudS5pdGVtLm1hcHBpbmd9fSIpOw0KICAgICAgICAgICAgLy8gQWN0aXZlDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAieC1hY3RpdmUiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChkYktleSk7DQogICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YVtkYktleV07DQogICAgICAgICAgICBpbnB1dC5pZCA9ICJhY3RpdmUiOw0KICAgICAgICAgICAgLy9pbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIikNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdG9nZ2xlQ2hhbm5lbFN0YXR1cygnIiArIGlkICsgIicsIHRoaXMpIik7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3subWFwcGluZy5hY3RpdmUudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIENoYW5uZWwgbmFtZQ0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gIngtbmFtZSI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgIGlmIChCVUxLX0VESVQgPT0gdHJ1ZSkgew0KICAgICAgICAgICAgICAgIGlucHV0LnN0eWxlLmJvcmRlciA9ICJzb2xpZCAxcHggcmVkIjsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInJlYWRvbmx5IiwgInRydWUiKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5tYXBwaW5nLmNoYW5uZWxOYW1lLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICBjb250ZW50LmRlc2NyaXB0aW9uKGRhdGFbIm5hbWUiXSk7DQogICAgICAgICAgICAvLyBEZXNjcmlwdGlvbg0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gIngtZGVzY3JpcHRpb24iOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7Lm1hcHBpbmcuZGVzY3JpcHRpb24ucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7Lm1hcHBpbmcuZGVzY3JpcHRpb24udGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIFVwZGF0ZSB0aGUgY2hhbm5lbCBuYW1lDQogICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgiX3V1aWQua2V5IikpIHsNCiAgICAgICAgICAgICAgICBpZiAoZGF0YVsiX3V1aWQua2V5Il0gIT0gIiIpIHsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGRiS2V5ID0gIngtdXBkYXRlLWNoYW5uZWwtbmFtZSI7DQogICAgICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goZGJLZXkpOw0KICAgICAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhW2RiS2V5XTsNCiAgICAgICAgICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7Lm1hcHBpbmcudXBkYXRlQ2hhbm5lbE5hbWUudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9DQogICAgICAgICAgICAvLyBMb2dvIFVSTCAoQ2hhbm5lbCkgDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAidHZnLWxvZ28iOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoImlkIiwgImNoYW5uZWwtaWNvbiIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7Lm1hcHBpbmcuY2hhbm5lbExvZ28udGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIENoYW5uZWwgbG9nbyB1cGRhdGUNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJ4LXVwZGF0ZS1jaGFubmVsLWljb24iOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChkYktleSk7DQogICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YVtkYktleV07DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoImlkIiwgInVwZGF0ZS1pY29uIik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnOyBjaGFuZ2VDaGFubmVsTG9nbygnIiArIGlkICsgIicpOyIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7Lm1hcHBpbmcudXBkYXRlQ2hhbm5lbExvZ28udGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIEV4cGFuZCBFUEcgY2F0ZWdvcnkNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJ4LWNhdGVnb3J5IjsNCiAgICAgICAgICAgIHZhciB0ZXh0ID0gWyItIiwgIktpZHMgKEVtYnkgb25seSkiLCAiTmV3cyIsICJNb3ZpZSIsICJTZXJpZXMiLCAiU3BvcnRzIl07DQogICAgICAgICAgICB2YXIgdmFsdWVzID0gWyIiLCAiS2lkcyIsICJOZXdzIiwgIk1vdmllIiwgIlNlcmllcyIsICJTcG9ydHMiXTsNCiAgICAgICAgICAgIHZhciBzZWxlY3QgPSBjb250ZW50LmNyZWF0ZVNlbGVjdCh0ZXh0LCB2YWx1ZXMsIGRhdGFbZGJLZXldLCBkYktleSk7DQogICAgICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7Lm1hcHBpbmcuZXBnQ2F0ZWdvcnkudGl0bGV9fSIsIHNlbGVjdCk7DQogICAgICAgICAgICAvLyBNM1UgZ3JvdXAgdGl0bGUNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJ4LWdyb3VwLXRpdGxlIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgaW5wdXQuZGF0YXNldC5vbGRWYWx1ZSA9IGRhdGFbZGJLZXldOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7Lm1hcHBpbmcubTN1R3JvdXBUaXRsZS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgaWYgKGRhdGFbImdyb3VwLXRpdGxlIl0gIT0gdW5kZWZpbmVkKSB7DQogICAgICAgICAgICAgICAgY29udGVudC5kZXNjcmlwdGlvbihkYXRhWyJncm91cC10aXRsZSJdKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGlmIChkYXRhWyJ4LXVwZGF0ZS1jaGFubmVsLWdyb3VwIl0gPT0gdHJ1ZSkgew0KICAgICAgICAgICAgICAgIGlucHV0LmRpc2FibGVkID0gdHJ1ZTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIC8vIFVwZGF0ZSBjaGFubmVsIGdyb3VwIGNoZWNrYm94DQogICAgICAgICAgICB2YXIgZGJLZXkgPSAieC11cGRhdGUtY2hhbm5lbC1ncm91cCI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KGRiS2V5KTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdG9nZ2xlR3JvdXBVcGRhdGVDYignIiArIGlkICsgIicsIHRoaXMpOyIpOw0KICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGFbZGJLZXldOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7Lm1hcHBpbmcudXBkYXRlQ2hhbm5lbEdyb3VwLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICBjb250ZW50LmRlc2NyaXB0aW9uKCJ7ey5tYXBwaW5nLnVwZGF0ZUNoYW5uZWxHcm91cC5kZXNjcmlwdGlvbn19Iik7DQogICAgICAgICAgICAvLyBYTUxUViBmaWxlDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAneC14bWx0di1maWxlJzsNCiAgICAgICAgICAgIGNvbnN0IHhtbFR2RmlsZSA9IGRhdGFbZGJLZXldOw0KICAgICAgICAgICAgdmFyIHhtbFR2ID0gbmV3IFhNTFRWRmlsZSgpOw0KICAgICAgICAgICAgY29uc3QgeG1sVHZGaWxlU2VsZWN0ID0geG1sVHYuZ2V0RmlsZXMoZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgeG1sVHZGaWxlU2VsZWN0LnNldEF0dHJpYnV0ZSgnbmFtZScsIGRiS2V5KTsNCiAgICAgICAgICAgIHhtbFR2RmlsZVNlbGVjdC5zZXRBdHRyaWJ1dGUoJ2lkJywgJ3BvcHVwLXhtbHR2Jyk7DQogICAgICAgICAgICB4bWxUdkZpbGVTZWxlY3Quc2V0QXR0cmlidXRlKCdvbmNoYW5nZScsIGBqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJzsgc2V0WG1sdHZDaGFubmVsKCcke2lkfScsIHRoaXMpO2ApOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coJ3t7Lm1hcHBpbmcueG1sdHZGaWxlLnRpdGxlfX0nLCB4bWxUdkZpbGVTZWxlY3QpOw0KICAgICAgICAgICAgLy8gWE1MVFYgTWFwcGluZw0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gJ3gtbWFwcGluZyc7DQogICAgICAgICAgICB2YXIgeG1sVHYgPSBuZXcgWE1MVFZGaWxlKCk7DQogICAgICAgICAgICBjb25zdCBjdXJyZW50WG1sVHZJZCA9IGRhdGFbZGJLZXldOw0KICAgICAgICAgICAgY29uc3QgeG1sVHZJZFNlbGVjdCA9IHhtbFR2LmdldFByb2dyYW1zKHhtbFR2RmlsZSwgY3VycmVudFhtbFR2SWQpOw0KICAgICAgICAgICAgeG1sVHZJZFNlbGVjdC5zZXRBdHRyaWJ1dGUoJ25hbWUnLCBkYktleSk7DQogICAgICAgICAgICB4bWxUdklkU2VsZWN0LnNldEF0dHJpYnV0ZSgnaWQnLCAncG9wdXAtbWFwcGluZycpOw0KICAgICAgICAgICAgeG1sVHZJZFNlbGVjdC5zZXRBdHRyaWJ1dGUoJ29uY2hhbmdlJywgYGphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnOyBjaGVja1htbHR2Q2hhbm5lbCgnJHtpZH0nLCB0aGlzLCAnJHt4bWxUdkZpbGV9Jyk7YCk7DQogICAgICAgICAgICBzb3J0U2VsZWN0KHhtbFR2SWRTZWxlY3QpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coJ3t7Lm1hcHBpbmcueG1sdHZDaGFubmVsLnRpdGxlfX0nLCB4bWxUdklkU2VsZWN0KTsNCiAgICAgICAgICAgIC8vIFRpbWVzaGlmdA0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gIngtdGltZXNoaWZ0IjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5tYXBwaW5nLnRpbWVzaGlmdC5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoImlkIiwgInRpbWVzaGlmdCIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7Lm1hcHBpbmcudGltZXNoaWZ0LnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBJbnRlcmFjdGlvbg0KICAgICAgICAgICAgY29udGVudC5jcmVhdGVJbnRlcmFjdGlvbigpOw0KICAgICAgICAgICAgLy8gVXBsb2FkIGxvZ28NCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJjYW5jZWwiLCAie3suYnV0dG9uLnVwbG9hZExvZ299fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IHVwbG9hZExvZ28oKTsnKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgLy8gQWJvcnQNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJjYW5jZWwiLCAie3suYnV0dG9uLmNhbmNlbH19Iik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogc2hvd0VsZW1lbnQoInBvcHVwIiwgZmFsc2UpOycpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICAvLyBGaW5pc2hlZA0KICAgICAgICAgICAgdmFyIGlkcyA9IFtdOw0KICAgICAgICAgICAgaWRzID0gZ2V0QWxsU2VsZWN0ZWRDaGFubmVscygpOw0KICAgICAgICAgICAgaWYgKGlkcy5sZW5ndGggPT0gMCkgew0KICAgICAgICAgICAgICAgIGlkcy5wdXNoKGlkKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJzYXZlIiwgInt7LmJ1dHRvbi5kb25lfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBkb25lUG9wdXBEYXRhKCInICsgZGF0YVR5cGUgKyAnIiwgIicgKyBpZHMgKyAnIiwgImZhbHNlIik7Jyk7DQogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBkZWZhdWx0Og0KICAgICAgICAgICAgYnJlYWs7DQogICAgfQ0KICAgIHNob3dQb3BVcEVsZW1lbnQoJ3BvcHVwLWN1c3RvbScpOw0KfQ0KY2xhc3MgWE1MVFZGaWxlIHsNCiAgICBnZXRGaWxlcyhzZXQpIHsNCiAgICAgICAgbGV0IGZpbGVJRHMgPSBnZXRPd25PYmpQcm9wcyhTRVJWRVJbInhlcGciXVsieG1sdHZNYXAiXSk7DQogICAgICAgIGxldCB2YWx1ZXMgPSBuZXcgQXJyYXkoIi0iKTsNCiAgICAgICAgbGV0IHRleHQgPSBuZXcgQXJyYXkoIi0iKTsNCiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBmaWxlSURzLmxlbmd0aDsgaSsrKSB7DQogICAgICAgICAgICBpZiAoZmlsZUlEc1tpXSAhPSAieFRlVmUgRHVtbXkiKSB7DQogICAgICAgICAgICAgICAgdmFsdWVzLnB1c2goZ2V0VmFsdWVGcm9tUHJvdmlkZXJGaWxlKGZpbGVJRHNbaV0sICJ4bWx0diIsICJmaWxlLnh0ZXZlIikpOw0KICAgICAgICAgICAgICAgIHRleHQucHVzaChnZXRWYWx1ZUZyb21Qcm92aWRlckZpbGUoZmlsZUlEc1tpXSwgInhtbHR2IiwgIm5hbWUiKSk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICB2YWx1ZXMucHVzaChmaWxlSURzW2ldKTsNCiAgICAgICAgICAgICAgICB0ZXh0LnB1c2goZmlsZUlEc1tpXSk7DQogICAgICAgICAgICB9DQogICAgICAgIH0NCiAgICAgICAgbGV0IHNlbGVjdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlNFTEVDVCIpOw0KICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRleHQubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgICAgIHZhciBvcHRpb24gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJPUFRJT04iKTsNCiAgICAgICAgICAgIG9wdGlvbi5zZXRBdHRyaWJ1dGUoInZhbHVlIiwgdmFsdWVzW2ldKTsNCiAgICAgICAgICAgIG9wdGlvbi5pbm5lclRleHQgPSB0ZXh0W2ldOw0KICAgICAgICAgICAgc2VsZWN0LmFwcGVuZENoaWxkKG9wdGlvbik7DQogICAgICAgIH0NCiAgICAgICAgaWYgKHNldCAhPSAiIikgew0KICAgICAgICAgICAgc2VsZWN0LnZhbHVlID0gc2V0Ow0KICAgICAgICB9DQogICAgICAgIHJldHVybiBzZWxlY3Q7DQogICAgfQ0KICAgIGdldFByb2dyYW1zKHhtbFR2RmlsZSwgY3VycmVudFhtbFR2SWQpIHsNCiAgICAgICAgY29uc3QgdmFsdWVzID0gZ2V0T3duT2JqUHJvcHMoU0VSVkVSWyd4ZXBnJ11bJ3htbHR2TWFwJ11beG1sVHZGaWxlXSk7DQogICAgICAgIGNvbnN0IHRleHQgPSBbXTsNCiAgICAgICAgbGV0IGZyaWVuZGx5TmFtZTsNCiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB2YWx1ZXMubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgICAgIGlmIChTRVJWRVJbJ3hlcGcnXVsneG1sdHZNYXAnXVt4bWxUdkZpbGVdW3ZhbHVlc1tpXV0uaGFzT3duUHJvcGVydHkoJ2ZyaWVuZGx5LW5hbWUnKSA9PSB0cnVlKSB7DQogICAgICAgICAgICAgICAgZnJpZW5kbHlOYW1lID0gU0VSVkVSWyd4ZXBnJ11bJ3htbHR2TWFwJ11beG1sVHZGaWxlXVt2YWx1ZXNbaV1dWydmcmllbmRseS1uYW1lJ107DQogICAgICAgICAgICB9DQogICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICBmcmllbmRseU5hbWUgPSAnLSc7DQogICAgICAgICAgICB9DQogICAgICAgICAgICB0ZXh0W2ldID0gYCR7ZnJpZW5kbHlOYW1lfSAoJHt2YWx1ZXNbaV19KWA7DQogICAgICAgIH0NCiAgICAgICAgdGV4dC51bnNoaWZ0KCctJyk7DQogICAgICAgIHZhbHVlcy51bnNoaWZ0KCctJyk7DQogICAgICAgIGNvbnN0IHNlbGVjdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NlbGVjdCcpOw0KICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRleHQubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgICAgIGNvbnN0IG9wdGlvbiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ29wdGlvbicpOw0KICAgICAgICAgICAgb3B0aW9uLnNldEF0dHJpYnV0ZSgndmFsdWUnLCB2YWx1ZXNbaV0pOw0KICAgICAgICAgICAgb3B0aW9uLmlubmVyVGV4dCA9IHRleHRbaV07DQogICAgICAgICAgICBzZWxlY3QuYXBwZW5kQ2hpbGQob3B0aW9uKTsNCiAgICAgICAgfQ0KICAgICAgICBzZWxlY3QudmFsdWUgPSAoY3VycmVudFhtbFR2SWQgPT0gJycpID8gJy0nIDogY3VycmVudFhtbFR2SWQ7DQogICAgICAgIHJldHVybiBzZWxlY3Q7DQogICAgfQ0KfQ0KZnVuY3Rpb24gZ2V0VmFsdWVGcm9tUHJvdmlkZXJGaWxlKGZpbGUsIGZpbGVUeXBlLCBrZXkpIHsNCiAgICBpZiAoZmlsZSA9PSAieFRlVmUgRHVtbXkiKSB7DQogICAgICAgIHJldHVybiBmaWxlOw0KICAgIH0NCiAgICBsZXQgZmlsZUlEOw0KICAgIGxldCBpbmRpY2F0b3IgPSBmaWxlLmNoYXJBdCgwKTsNCiAgICBzd2l0Y2ggKGluZGljYXRvcikgew0KICAgICAgICBjYXNlICJNIjoNCiAgICAgICAgICAgIGZpbGVUeXBlID0gIm0zdSI7DQogICAgICAgICAgICBmaWxlSUQgPSBmaWxlOw0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGNhc2UgIkgiOg0KICAgICAgICAgICAgZmlsZVR5cGUgPSAiaGRociI7DQogICAgICAgICAgICBmaWxlSUQgPSBmaWxlOw0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGNhc2UgIlgiOg0KICAgICAgICAgICAgZmlsZVR5cGUgPSAieG1sdHYiOw0KICAgICAgICAgICAgZmlsZUlEID0gZmlsZS5zdWJzdHJpbmcoMCwgZmlsZS5sYXN0SW5kZXhPZignLicpKTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgIH0NCiAgICBpZiAoU0VSVkVSWyJzZXR0aW5ncyJdWyJmaWxlcyJdW2ZpbGVUeXBlXS5oYXNPd25Qcm9wZXJ0eShmaWxlSUQpID09IHRydWUpIHsNCiAgICAgICAgdmFyIGRhdGEgPSBTRVJWRVJbInNldHRpbmdzIl1bImZpbGVzIl1bZmlsZVR5cGVdW2ZpbGVJRF07DQogICAgICAgIHJldHVybiBkYXRhW2tleV07DQogICAgfQ0KICAgIHJldHVybjsNCn0NCmZ1bmN0aW9uIHNldFhtbHR2Q2hhbm5lbChlcGdNYXBJZCwgeG1sVHZGaWxlU2VsZWN0KSB7DQogICAgY29uc3QgeG1sVHYgPSBuZXcgWE1MVFZGaWxlKCk7DQogICAgY29uc3QgbmV3WG1sVHZGaWxlID0geG1sVHZGaWxlU2VsZWN0LnZhbHVlOw0KICAgIC8vIFJlbW92ZSBvbGQgWE1MVFYgSUQgc2VsZWN0aW9uIGJveA0KICAgIGNvbnN0IHhtbFR2SWRTZWxlY3RQYXJlbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncG9wdXAtbWFwcGluZycpLnBhcmVudEVsZW1lbnQ7DQogICAgeG1sVHZJZFNlbGVjdFBhcmVudC5pbm5lckhUTUwgPSAnJzsNCiAgICAvLyBDcmVhdGUgbmV3IFhNTFRWIElEIHNlbGVjdGlvbiBib3gNCiAgICBjb25zdCB0dmdJZCA9IFNFUlZFUlsneGVwZyddWydlcGdNYXBwaW5nJ11bZXBnTWFwSWRdWyd0dmctaWQnXTsNCiAgICBjb25zdCBuZXdYbWxUdklkU2VsZWN0ID0geG1sVHYuZ2V0UHJvZ3JhbXMobmV3WG1sVHZGaWxlLCB0dmdJZCk7DQogICAgbmV3WG1sVHZJZFNlbGVjdC5zZXRBdHRyaWJ1dGUoJ25hbWUnLCAneC1tYXBwaW5nJyk7DQogICAgbmV3WG1sVHZJZFNlbGVjdC5zZXRBdHRyaWJ1dGUoJ2lkJywgJ3BvcHVwLW1hcHBpbmcnKTsNCiAgICBuZXdYbWxUdklkU2VsZWN0LnNldEF0dHJpYnV0ZSgnb25jaGFuZ2UnLCBgamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCc7IGNoZWNrWG1sdHZDaGFubmVsKCcke2VwZ01hcElkfScsIHRoaXMsICcke25ld1htbFR2RmlsZX0nKTtgKTsNCiAgICBuZXdYbWxUdklkU2VsZWN0LmNsYXNzTmFtZSA9ICdjaGFuZ2VkJzsNCiAgICBzb3J0U2VsZWN0KG5ld1htbFR2SWRTZWxlY3QpOw0KICAgIC8vIEFkZCBuZXcgWE1MVFYgSUQgc2VsZWN0aW9uIGJveCB0byBpdCdzIHBhcmVudA0KICAgIHhtbFR2SWRTZWxlY3RQYXJlbnQuYXBwZW5kQ2hpbGQobmV3WG1sVHZJZFNlbGVjdCk7DQogICAgY2hlY2tYbWx0dkNoYW5uZWwoZXBnTWFwSWQsIG5ld1htbFR2SWRTZWxlY3QsIG5ld1htbFR2RmlsZSk7DQp9DQpmdW5jdGlvbiBjaGVja1htbHR2Q2hhbm5lbChlcGdNYXBJZCwgeG1sVHZJZFNlbGVjdCwgeG1sVHZGaWxlKSB7DQogICAgY29uc3QgbmV3WG1sVHZJZCA9IHhtbFR2SWRTZWxlY3QudmFsdWU7DQogICAgY29uc3QgY2hhbm5lbEFjdGl2ZUNiID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2FjdGl2ZScpOw0KICAgIGNvbnN0IGNoYW5uZWxBY3RpdmUgPSBuZXdYbWxUdklkICE9ICctJzsNCiAgICBjaGFubmVsQWN0aXZlQ2IuY2hlY2tlZCA9IGNoYW5uZWxBY3RpdmU7DQogICAgY2hhbm5lbEFjdGl2ZUNiLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJzsNCiAgICBpZiAoeG1sVHZGaWxlICE9ICd4VGVWZSBEdW1teScgJiYgY2hhbm5lbEFjdGl2ZSA9PSB0cnVlKSB7DQogICAgICAgIGNoYW5nZUNoYW5uZWxMb2dvKGVwZ01hcElkKTsNCiAgICAgICAgcmV0dXJuOw0KICAgIH0NCiAgICBpZiAoeG1sVHZGaWxlID09ICd4VGVWZSBEdW1teScpIHsNCiAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3VwZGF0ZS1pY29uJykuY2hlY2tlZCA9IGZhbHNlOw0KICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndXBkYXRlLWljb24nKS5jbGFzc05hbWUgPSAnY2hhbmdlZCc7DQogICAgfQ0KfQ0KZnVuY3Rpb24gY2hhbmdlQ2hhbm5lbExvZ28oZXBnTWFwSWQpIHsNCiAgICBjb25zdCBjaGFubmVsID0gU0VSVkVSWyd4ZXBnJ11bJ2VwZ01hcHBpbmcnXVtlcGdNYXBJZF07DQogICAgY29uc3QgeG1sVHZGaWxlU2VsZWN0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3BvcHVwLXhtbHR2Jyk7DQogICAgY29uc3QgeG1sVHZGaWxlID0geG1sVHZGaWxlU2VsZWN0Lm9wdGlvbnNbeG1sVHZGaWxlU2VsZWN0LnNlbGVjdGVkSW5kZXhdLnZhbHVlOw0KICAgIGNvbnN0IHhtbFR2SWRTZWxlY3QgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncG9wdXAtbWFwcGluZycpOw0KICAgIGNvbnN0IG5ld1htbFR2SWQgPSB4bWxUdklkU2VsZWN0Lm9wdGlvbnNbeG1sVHZJZFNlbGVjdC5zZWxlY3RlZEluZGV4XS52YWx1ZTsNCiAgICBjb25zdCB4bWxUdkxvZ28gPSBTRVJWRVJbJ3hlcGcnXVsneG1sdHZNYXAnXVt4bWxUdkZpbGVdW25ld1htbFR2SWRdWydpY29uJ107DQogICAgY29uc3QgdXBkYXRlTG9nbyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd1cGRhdGUtaWNvbicpLmNoZWNrZWQ7DQogICAgbGV0IGxvZ287DQogICAgaWYgKHVwZGF0ZUxvZ28gPT0gdHJ1ZSAmJiB4bWxUdkZpbGUgIT0gJ3hUZVZlIER1bW15Jykgew0KICAgICAgICBpZiAoU0VSVkVSWyd4ZXBnJ11bJ3htbHR2TWFwJ11beG1sVHZGaWxlXS5oYXNPd25Qcm9wZXJ0eShuZXdYbWxUdklkKSkgew0KICAgICAgICAgICAgbG9nbyA9IHhtbFR2TG9nbzsNCiAgICAgICAgfQ0KICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgIGxvZ28gPSBjaGFubmVsWyd0dmctbG9nbyddOw0KICAgICAgICB9DQogICAgICAgIHZhciBsb2dvSW5wdXQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY2hhbm5lbC1pY29uJyk7DQogICAgICAgIGxvZ29JbnB1dC52YWx1ZSA9IGxvZ287DQogICAgICAgIGlmIChCVUxLX0VESVQgPT0gZmFsc2UpIHsNCiAgICAgICAgICAgIGxvZ29JbnB1dC5jbGFzc05hbWUgPSAnY2hhbmdlZCc7DQogICAgICAgIH0NCiAgICB9DQp9DQpmdW5jdGlvbiBzYXZlUG9wdXBEYXRhKGRhdGFUeXBlLCBpZCwgcmVtb3ZlLCBvcHRpb24pIHsNCiAgICBpZiAoZGF0YVR5cGUgPT0gIm1hcHBpbmciKSB7DQogICAgICAgIGxldCBkYXRhID0ge307DQogICAgICAgIGNvbnNvbGUubG9nKCJTYXZlIG1hcHBpbmcgZGF0YSIpOw0KICAgICAgICBsZXQgY21kID0gInNhdmVFcGdNYXBwaW5nIjsNCiAgICAgICAgZGF0YVsiZXBnTWFwcGluZyJdID0gU0VSVkVSWyJ4ZXBnIl1bImVwZ01hcHBpbmciXTsNCiAgICAgICAgY29uc29sZS5sb2coIlNFTkQgVE8gU0VSVkVSIik7DQogICAgICAgIGxldCBzZXJ2ZXIgPSBuZXcgU2VydmVyKGNtZCk7DQogICAgICAgIHNlcnZlci5yZXF1ZXN0KGRhdGEpOw0KICAgICAgICBkZWxldGUgVU5ET1siZXBnTWFwcGluZyJdOw0KICAgICAgICByZXR1cm47DQogICAgfQ0KICAgIGNvbnNvbGUubG9nKCJTYXZlIHBvcHVwIGRhdGEiKTsNCiAgICBsZXQgZGl2ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInBvcHVwLWN1c3RvbSIpOw0KICAgIGxldCBpbnB1dHMgPSBkaXYuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlRBQkxFIilbMF0uZ2V0RWxlbWVudHNCeVRhZ05hbWUoIklOUFVUIik7DQogICAgbGV0IHNlbGVjdHMgPSBkaXYuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlRBQkxFIilbMF0uZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlNFTEVDVCIpOw0KICAgIGxldCBpbnB1dCA9IHt9Ow0KICAgIGxldCBjb25maXJtTXNnOw0KICAgIGZvciAobGV0IGkgPSAwOyBpIDwgc2VsZWN0cy5sZW5ndGg7IGkrKykgew0KICAgICAgICB2YXIgbmFtZTsNCiAgICAgICAgbmFtZSA9IHNlbGVjdHNbaV0ubmFtZTsNCiAgICAgICAgdmFyIHZhbHVlID0gc2VsZWN0c1tpXS52YWx1ZTsNCiAgICAgICAgc3dpdGNoIChuYW1lKSB7DQogICAgICAgICAgICBjYXNlICJ0dW5lciI6DQogICAgICAgICAgICAgICAgaW5wdXRbbmFtZV0gPSBwYXJzZUludCh2YWx1ZSk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBkZWZhdWx0Og0KICAgICAgICAgICAgICAgIGlucHV0W25hbWVdID0gdmFsdWU7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIH0NCiAgICB9DQogICAgZm9yIChsZXQgaSA9IDA7IGkgPCBpbnB1dHMubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgc3dpdGNoIChpbnB1dHNbaV0udHlwZSkgew0KICAgICAgICAgICAgY2FzZSAiY2hlY2tib3giOg0KICAgICAgICAgICAgICAgIG5hbWUgPSBpbnB1dHNbaV0ubmFtZTsNCiAgICAgICAgICAgICAgICBpbnB1dFtuYW1lXSA9IGlucHV0c1tpXS5jaGVja2VkOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAidGV4dCI6DQogICAgICAgICAgICBjYXNlICJoaWRkZW4iOg0KICAgICAgICAgICAgY2FzZSAicGFzc3dvcmQiOg0KICAgICAgICAgICAgICAgIG5hbWUgPSBpbnB1dHNbaV0ubmFtZTsNCiAgICAgICAgICAgICAgICBzd2l0Y2ggKG5hbWUpIHsNCiAgICAgICAgICAgICAgICAgICAgY2FzZSAidHVuZXIiOg0KICAgICAgICAgICAgICAgICAgICAgICAgaW5wdXRbbmFtZV0gPSBwYXJzZUludChpbnB1dHNbaV0udmFsdWUpOw0KICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICAgICAgICAgICAgICBpbnB1dFtuYW1lXSA9IGlucHV0c1tpXS52YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgfQ0KICAgIH0NCiAgICBsZXQgZGF0YSA9IHt9Ow0KICAgIGxldCBjbWQ7DQogICAgaWYgKHJlbW92ZSA9PSB0cnVlKSB7DQogICAgICAgIGlucHV0WyJkZWxldGUiXSA9IHRydWU7DQogICAgfQ0KICAgIHN3aXRjaCAoZGF0YVR5cGUpIHsNCiAgICAgICAgY2FzZSAidXNlcnMiOg0KICAgICAgICAgICAgY29uZmlybU1zZyA9ICJEZWxldGUgdGhpcyB1c2VyPyI7DQogICAgICAgICAgICBpZiAoaWQgPT0gIi0iKSB7DQogICAgICAgICAgICAgICAgY21kID0gInNhdmVOZXdVc2VyIjsNCiAgICAgICAgICAgICAgICBkYXRhWyJ1c2VyRGF0YSJdID0gaW5wdXQ7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICBjbWQgPSAic2F2ZVVzZXJEYXRhIjsNCiAgICAgICAgICAgICAgICBsZXQgZCA9IHt9Ow0KICAgICAgICAgICAgICAgIGRbaWRdID0gaW5wdXQ7DQogICAgICAgICAgICAgICAgZGF0YVsidXNlckRhdGEiXSA9IGQ7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSAibTN1IjoNCiAgICAgICAgICAgIGNvbmZpcm1Nc2cgPSAiRGVsZXRlIHRoaXMgcGxheWxpc3Q/IjsNCiAgICAgICAgICAgIHN3aXRjaCAob3B0aW9uKSB7DQogICAgICAgICAgICAgICAgLy8gUG9wdXA6IFNhdmUNCiAgICAgICAgICAgICAgICBjYXNlIDA6DQogICAgICAgICAgICAgICAgICAgIGNtZCA9ICJzYXZlRmlsZXNNM1UiOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICAvLyBQb3B1cDogVXBkYXRlDQogICAgICAgICAgICAgICAgY2FzZSAxOg0KICAgICAgICAgICAgICAgICAgICBjbWQgPSAidXBkYXRlRmlsZU0zVSI7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgZGF0YVsiZmlsZXMiXSA9IHt9Ow0KICAgICAgICAgICAgZGF0YVsiZmlsZXMiXVtkYXRhVHlwZV0gPSB7fTsNCiAgICAgICAgICAgIGRhdGFbImZpbGVzIl1bZGF0YVR5cGVdW2lkXSA9IGlucHV0Ow0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGNhc2UgImhkaHIiOg0KICAgICAgICAgICAgY29uZmlybU1zZyA9ICJEZWxldGUgdGhpcyBIREhvbWVSdW4gdHVuZXI/IjsNCiAgICAgICAgICAgIHN3aXRjaCAob3B0aW9uKSB7DQogICAgICAgICAgICAgICAgLy8gUG9wdXA6IFNhdmUNCiAgICAgICAgICAgICAgICBjYXNlIDA6DQogICAgICAgICAgICAgICAgICAgIGNtZCA9ICJzYXZlRmlsZXNIREhSIjsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgLy8gUG9wdXA6IFVwZGF0ZQ0KICAgICAgICAgICAgICAgIGNhc2UgMToNCiAgICAgICAgICAgICAgICAgICAgY21kID0gInVwZGF0ZUZpbGVIREhSIjsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBkYXRhWyJmaWxlcyJdID0ge307DQogICAgICAgICAgICBkYXRhWyJmaWxlcyJdW2RhdGFUeXBlXSA9IHt9Ow0KICAgICAgICAgICAgZGF0YVsiZmlsZXMiXVtkYXRhVHlwZV1baWRdID0gaW5wdXQ7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSAieG1sdHYiOg0KICAgICAgICAgICAgY29uZmlybU1zZyA9ICJEZWxldGUgdGhpcyBYTUxUViBmaWxlPyI7DQogICAgICAgICAgICBzd2l0Y2ggKG9wdGlvbikgew0KICAgICAgICAgICAgICAgIC8vIFBvcHVwOiBTYXZlDQogICAgICAgICAgICAgICAgY2FzZSAwOg0KICAgICAgICAgICAgICAgICAgICBjbWQgPSAic2F2ZUZpbGVzWE1MVFYiOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICAvLyBQb3B1cDogVXBkYXRlDQogICAgICAgICAgICAgICAgY2FzZSAxOg0KICAgICAgICAgICAgICAgICAgICBjbWQgPSAidXBkYXRlRmlsZVhNTFRWIjsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBkYXRhWyJmaWxlcyJdID0ge307DQogICAgICAgICAgICBkYXRhWyJmaWxlcyJdW2RhdGFUeXBlXSA9IHt9Ow0KICAgICAgICAgICAgZGF0YVsiZmlsZXMiXVtkYXRhVHlwZV1baWRdID0gaW5wdXQ7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSAiZmlsdGVyIjoNCiAgICAgICAgICAgIGNvbmZpcm1Nc2cgPSAiRGVsZXRlIHRoaXMgZmlsdGVyPyI7DQogICAgICAgICAgICBjbWQgPSAic2F2ZUZpbHRlciI7DQogICAgICAgICAgICBkYXRhWyJmaWx0ZXIiXSA9IHt9Ow0KICAgICAgICAgICAgZGF0YVsiZmlsdGVyIl1baWRdID0gaW5wdXQ7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgIGNvbnNvbGUubG9nKGRhdGFUeXBlLCBpZCk7DQogICAgICAgICAgICByZXR1cm47DQogICAgfQ0KICAgIGlmIChyZW1vdmUgPT0gdHJ1ZSkgew0KICAgICAgICBpZiAoIWNvbmZpcm0oY29uZmlybU1zZykpIHsNCiAgICAgICAgICAgIHNob3dFbGVtZW50KCJwb3B1cCIsIGZhbHNlKTsNCiAgICAgICAgICAgIHJldHVybjsNCiAgICAgICAgfQ0KICAgIH0NCiAgICBjb25zb2xlLmxvZygiU0VORCBUTyBTRVJWRVIiKTsNCiAgICBjb25zb2xlLmxvZyhkYXRhKTsNCiAgICBsZXQgc2VydmVyID0gbmV3IFNlcnZlcihjbWQpOw0KICAgIHNlcnZlci5yZXF1ZXN0KGRhdGEpOw0KfQ0KZnVuY3Rpb24gZG9uZVBvcHVwRGF0YShkYXRhVHlwZSwgaWRzU3RyKSB7DQogICAgbGV0IGlkcyA9IGlkc1N0ci5zcGxpdCgnLCcpOw0KICAgIGxldCBkaXYgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicG9wdXAtY3VzdG9tIik7DQogICAgbGV0IGlucHV0cyA9IGRpdi5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCJjaGFuZ2VkIik7DQogICAgaWRzLmZvckVhY2goaWQgPT4gew0KICAgICAgICBsZXQgaW5wdXQ7DQogICAgICAgIGlucHV0ID0gU0VSVkVSWyJ4ZXBnIl1bImVwZ01hcHBpbmciXVtpZF07DQogICAgICAgIGNvbnNvbGUubG9nKGlucHV0KTsNCiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBpbnB1dHMubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgICAgIGxldCBuYW1lOw0KICAgICAgICAgICAgbGV0IHZhbHVlOw0KICAgICAgICAgICAgc3dpdGNoIChpbnB1dHNbaV0udGFnTmFtZSkgew0KICAgICAgICAgICAgICAgIGNhc2UgIklOUFVUIjoNCiAgICAgICAgICAgICAgICAgICAgc3dpdGNoIChpbnB1dHNbaV0udHlwZSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAiY2hlY2tib3giOg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWUgPSBpbnB1dHNbaV0ubmFtZTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IGlucHV0c1tpXS5jaGVja2VkOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlucHV0W25hbWVdID0gdmFsdWU7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgICAgICAgICBjYXNlICJ0ZXh0IjoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lID0gaW5wdXRzW2ldLm5hbWU7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSBpbnB1dHNbaV0udmFsdWU7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5wdXRbbmFtZV0gPSB2YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBjYXNlICJTRUxFQ1QiOg0KICAgICAgICAgICAgICAgICAgICBuYW1lID0gaW5wdXRzW2ldLm5hbWU7DQogICAgICAgICAgICAgICAgICAgIHZhbHVlID0gaW5wdXRzW2ldLnZhbHVlOw0KICAgICAgICAgICAgICAgICAgICBpbnB1dFtuYW1lXSA9IHZhbHVlOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIHN3aXRjaCAobmFtZSkgew0KICAgICAgICAgICAgICAgIGNhc2UgInR2Zy1sb2dvIjoNCiAgICAgICAgICAgICAgICAgICAgLy8oZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpLmNoaWxkTm9kZXNbMl0uZmlyc3RDaGlsZCBhcyBIVE1MRWxlbWVudCkuc2V0QXR0cmlidXRlKCJzcmMiLCB2YWx1ZSkNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAieC1uYW1lIjoNCiAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpLmNoaWxkTm9kZXNbM10uZmlyc3RDaGlsZC5pbm5lckhUTUwgPSB2YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAieC1jYXRlZ29yeSI6DQogICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5jaGlsZE5vZGVzWzNdLmZpcnN0Q2hpbGQuY2xhc3NOYW1lID0gdmFsdWU7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgIngtZ3JvdXAtdGl0bGUiOg0KICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkuY2hpbGROb2Rlc1s1XS5maXJzdENoaWxkLmlubmVySFRNTCA9IHZhbHVlOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBjYXNlICJ4LXhtbHR2LWZpbGUiOg0KICAgICAgICAgICAgICAgICAgICBpZiAodmFsdWUgIT0gInhUZVZlIER1bW15IiAmJiB2YWx1ZSAhPSAiLSIpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlID0gZ2V0VmFsdWVGcm9tUHJvdmlkZXJGaWxlKHZhbHVlLCAieG1sdHYiLCAibmFtZSIpOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIGlmICh2YWx1ZSA9PSAiLSIpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGlucHV0WyJ4LWFjdGl2ZSJdID0gZmFsc2U7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpLmNoaWxkTm9kZXNbNl0uZmlyc3RDaGlsZC5pbm5lckhUTUwgPSB2YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAieC1tYXBwaW5nIjoNCiAgICAgICAgICAgICAgICAgICAgaWYgKHZhbHVlID09ICItIikgew0KICAgICAgICAgICAgICAgICAgICAgICAgaW5wdXRbIngtYWN0aXZlIl0gPSBmYWxzZTsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkuY2hpbGROb2Rlc1s3XS5maXJzdENoaWxkLmlubmVySFRNTCA9IHZhbHVlOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBjYXNlICJ4LXRpbWVzaGlmdCI6DQogICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5jaGlsZE5vZGVzWzhdLmZpcnN0Q2hpbGQuaW5uZXJIVE1MID0gdmFsdWU7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICB9DQogICAgICAgICAgICBjcmVhdGVTZWFyY2hPYmooKTsNCiAgICAgICAgICAgIHNlYXJjaEluTWFwcGluZygpOw0KICAgICAgICB9DQogICAgICAgIGlmIChpbnB1dFsieC1hY3RpdmUiXSA9PSBmYWxzZSkgew0KICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpLmNsYXNzTmFtZSA9ICJub3RBY3RpdmVFUEciOw0KICAgICAgICB9DQogICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpLmNsYXNzTmFtZSA9ICJhY3RpdmVFUEciOw0KICAgICAgICB9DQogICAgICAgIGNvbnNvbGUubG9nKGlucHV0WyJ0dmctbG9nbyJdKTsNCiAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpLmNoaWxkTm9kZXNbMl0uZmlyc3RDaGlsZC5zZXRBdHRyaWJ1dGUoInNyYyIsIGlucHV0WyJ0dmctbG9nbyJdKTsNCiAgICB9KTsNCiAgICBzaG93RWxlbWVudCgicG9wdXAiLCBmYWxzZSk7DQogICAgcmV0dXJuOw0KfQ0KZnVuY3Rpb24gc2hvd1ByZXZpZXcoZWxlbWVudCkgew0KICAgIGxldCBkaXYgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibXlTdHJlYW1zQm94Iik7DQogICAgc3dpdGNoIChlbGVtZW50KSB7DQogICAgICAgIGNhc2UgZmFsc2U6DQogICAgICAgICAgICBkaXYuY2xhc3NOYW1lID0gIm5vdFZpc2libGUiOw0KICAgICAgICAgICAgcmV0dXJuOw0KICAgIH0NCiAgICBsZXQgc3RyZWFtcyA9IFsiYWN0aXZlU3RyZWFtcyIsICJpbmFjdGl2ZVN0cmVhbXMiXTsNCiAgICBzdHJlYW1zLmZvckVhY2gocHJldmlldyA9PiB7DQogICAgICAgIGxldCB0YWJsZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHByZXZpZXcpOw0KICAgICAgICB0YWJsZS5pbm5lckhUTUwgPSAiIjsNCiAgICAgICAgbGV0IG9iaiA9IFNFUlZFUlsiZGF0YSJdWyJTdHJlYW1QcmV2aWV3VUkiXVtwcmV2aWV3XTsNCiAgICAgICAgb2JqLmZvckVhY2goY2hhbm5lbCA9PiB7DQogICAgICAgICAgICBsZXQgdHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJUUiIpOw0KICAgICAgICAgICAgbGV0IHRkS2V5ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgIGxldCB0ZFZhbCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICB0ZEtleS5jbGFzc05hbWUgPSAidGRLZXkiOw0KICAgICAgICAgICAgdGRWYWwuY2xhc3NOYW1lID0gInRkVmFsIjsNCiAgICAgICAgICAgIHN3aXRjaCAocHJldmlldykgew0KICAgICAgICAgICAgICAgIGNhc2UgImFjdGl2ZVN0cmVhbXMiOg0KICAgICAgICAgICAgICAgICAgICB0ZEtleS5pbm5lclRleHQgPSAiQ2hhbm5lbDogKCspIjsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAiaW5hY3RpdmVTdHJlYW1zIjoNCiAgICAgICAgICAgICAgICAgICAgdGRLZXkuaW5uZXJUZXh0ID0gIkNoYW5uZWw6ICgtKSI7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgdGRWYWwuaW5uZXJUZXh0ID0gY2hhbm5lbDsNCiAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKHRkS2V5KTsNCiAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKHRkVmFsKTsNCiAgICAgICAgICAgIHRhYmxlLmFwcGVuZENoaWxkKHRyKTsNCiAgICAgICAgfSk7DQogICAgfSk7DQogICAgc2hvd0VsZW1lbnQoImxvYWRpbmciLCBmYWxzZSk7DQogICAgZGl2LmNsYXNzTmFtZSA9ICJ2aXNpYmxlIjsNCiAgICByZXR1cm47DQp9DQo=" - webUI["html/js/network_ts.js"] = "Y2xhc3MgU2VydmVyIHsNCiAgICBjb25zdHJ1Y3RvcihjbWQpIHsNCiAgICAgICAgdGhpcy5jbWQgPSBjbWQ7DQogICAgfQ0KICAgIHJlcXVlc3QoZGF0YSkgew0KICAgICAgICBpZiAoU0VSVkVSX0NPTk5FQ1RJT04gPT0gdHJ1ZSkgew0KICAgICAgICAgICAgcmV0dXJuOw0KICAgICAgICB9DQogICAgICAgIFNFUlZFUl9DT05ORUNUSU9OID0gdHJ1ZTsNCiAgICAgICAgaWYgKHRoaXMuY21kICE9ICJ1cGRhdGVMb2ciKSB7DQogICAgICAgICAgICBzaG93RWxlbWVudCgibG9hZGluZyIsIHRydWUpOw0KICAgICAgICAgICAgVU5ETyA9IG5ldyBPYmplY3QoKTsNCiAgICAgICAgfQ0KICAgICAgICBzd2l0Y2ggKHdpbmRvdy5sb2NhdGlvbi5wcm90b2NvbCkgew0KICAgICAgICAgICAgY2FzZSAiaHR0cDoiOg0KICAgICAgICAgICAgICAgIHRoaXMucHJvdG9jb2wgPSAid3M6Ly8iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiaHR0cHM6IjoNCiAgICAgICAgICAgICAgICB0aGlzLnByb3RvY29sID0gIndzczovLyI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIH0NCiAgICAgICAgdmFyIHVybCA9IHRoaXMucHJvdG9jb2wgKyB3aW5kb3cubG9jYXRpb24uaG9zdG5hbWUgKyAiOiIgKyB3aW5kb3cubG9jYXRpb24ucG9ydCArICIvZGF0YS8iICsgIj9Ub2tlbj0iICsgZ2V0Q29va2llKCJUb2tlbiIpOw0KICAgICAgICBkYXRhWyJjbWQiXSA9IHRoaXMuY21kOw0KICAgICAgICB2YXIgd3MgPSBuZXcgV2ViU29ja2V0KHVybCk7DQogICAgICAgIHdzLm9ub3BlbiA9IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgICAgIFdTX0FWQUlMQUJMRSA9IHRydWU7DQogICAgICAgICAgICB0aGlzLnNlbmQoSlNPTi5zdHJpbmdpZnkoZGF0YSkpOw0KICAgICAgICB9Ow0KICAgICAgICB3cy5vbmVycm9yID0gZnVuY3Rpb24gKHdzRXJyRXZ0KSB7DQogICAgICAgICAgICBjb25zb2xlLmxvZygiTm8gd2Vic29ja2V0IGNvbm5lY3Rpb24gdG8geFRlVmUgY291bGQgYmUgZXN0YWJsaXNoZWQuIENoZWNrIHlvdXIgbmV0d29yayBjb25maWd1cmF0aW9uLiIpOw0KICAgICAgICAgICAgU0VSVkVSX0NPTk5FQ1RJT04gPSBmYWxzZTsNCiAgICAgICAgICAgIGlmIChXU19BVkFJTEFCTEUgPT0gZmFsc2UpIHsNCiAgICAgICAgICAgICAgICBhbGVydCgiTm8gd2Vic29ja2V0IGNvbm5lY3Rpb24gdG8geFRlVmUgY291bGQgYmUgZXN0YWJsaXNoZWQuIENoZWNrIHlvdXIgbmV0d29yayBjb25maWd1cmF0aW9uLiIpOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9Ow0KICAgICAgICB3cy5vbm1lc3NhZ2UgPSBmdW5jdGlvbiAod3NNZXNzYWdlRXZ0KSB7DQogICAgICAgICAgICBTRVJWRVJfQ09OTkVDVElPTiA9IGZhbHNlOw0KICAgICAgICAgICAgc2hvd0VsZW1lbnQoImxvYWRpbmciLCBmYWxzZSk7DQogICAgICAgICAgICBjb25zdCByZXNwb25zZSA9IEpTT04ucGFyc2Uod3NNZXNzYWdlRXZ0LmRhdGEpOw0KICAgICAgICAgICAgaWYgKHJlc3BvbnNlLmhhc093blByb3BlcnR5KCJ0b2tlbiIpKSB7DQogICAgICAgICAgICAgICAgZG9jdW1lbnQuY29va2llID0gIlRva2VuPSIgKyByZXNwb25zZVsidG9rZW4iXTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGlmIChyZXNwb25zZVsic3RhdHVzIl0gPT0gZmFsc2UpIHsNCiAgICAgICAgICAgICAgICBhbGVydChyZXNwb25zZVsiZXJyIl0pOw0KICAgICAgICAgICAgICAgIHJldHVybjsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGlmIChyZXNwb25zZS5oYXNPd25Qcm9wZXJ0eSgibmV3V2ViVXJsIikpIHsNCiAgICAgICAgICAgICAgICB3aW5kb3cubG9jYXRpb24gPSByZXNwb25zZVsibmV3V2ViVXJsIl07DQogICAgICAgICAgICB9DQogICAgICAgICAgICBpZiAocmVzcG9uc2UuaGFzT3duUHJvcGVydHkoInJlbG9hZCIpKSB7DQogICAgICAgICAgICAgICAgd2luZG93LmxvY2F0aW9uLnJlbG9hZCgpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgaWYgKHJlc3BvbnNlLmhhc093blByb3BlcnR5KCJhbGVydCIpKSB7DQogICAgICAgICAgICAgICAgYWxlcnQocmVzcG9uc2VbImFsZXJ0Il0pOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgaWYgKHJlc3BvbnNlLmhhc093blByb3BlcnR5KCJsb2dvVVJMIikpIHsNCiAgICAgICAgICAgICAgICB2YXIgZGl2ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNoYW5uZWwtaWNvbiIpOw0KICAgICAgICAgICAgICAgIGRpdi52YWx1ZSA9IHJlc3BvbnNlWyJsb2dvVVJMIl07DQogICAgICAgICAgICAgICAgZGl2LmNsYXNzTmFtZSA9ICJjaGFuZ2VkIjsNCiAgICAgICAgICAgICAgICByZXR1cm47DQogICAgICAgICAgICB9DQogICAgICAgICAgICBzd2l0Y2ggKGRhdGFbImNtZCJdKSB7DQogICAgICAgICAgICAgICAgY2FzZSAidXBkYXRlTG9nIjoNCiAgICAgICAgICAgICAgICAgICAgU0VSVkVSWyJsb2ciXSA9IHJlc3BvbnNlWyJsb2ciXTsNCiAgICAgICAgICAgICAgICAgICAgaWYgKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb250ZW50X2xvZyIpKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBzaG93TG9ncyhmYWxzZSk7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgcmV0dXJuOw0KICAgICAgICAgICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICAgICAgICAgIFNFUlZFUiA9IG5ldyBPYmplY3QoKTsNCiAgICAgICAgICAgICAgICAgICAgU0VSVkVSID0gcmVzcG9uc2U7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgaWYgKHJlc3BvbnNlLmhhc093blByb3BlcnR5KCJvcGVuTWVudSIpKSB7DQogICAgICAgICAgICAgICAgdmFyIG1lbnUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChyZXNwb25zZVsib3Blbk1lbnUiXSk7DQogICAgICAgICAgICAgICAgbWVudS5jbGljaygpOw0KICAgICAgICAgICAgICAgIHNob3dFbGVtZW50KCJwb3B1cCIsIGZhbHNlKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGlmIChyZXNwb25zZS5oYXNPd25Qcm9wZXJ0eSgib3BlbkxpbmsiKSkgew0KICAgICAgICAgICAgICAgIHdpbmRvdy5sb2NhdGlvbiA9IHJlc3BvbnNlWyJvcGVuTGluayJdOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgaWYgKHJlc3BvbnNlLmhhc093blByb3BlcnR5KCJyZWxvYWQiKSkgew0KICAgICAgICAgICAgICAgIGxvY2F0aW9uLnJlbG9hZCgpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgaWYgKHJlc3BvbnNlLmhhc093blByb3BlcnR5KCJ3aXphcmQiKSkgew0KICAgICAgICAgICAgICAgIGNyZWF0ZUxheW91dCgpOw0KICAgICAgICAgICAgICAgIGNvbmZpZ3VyYXRpb25XaXphcmRbcmVzcG9uc2VbIndpemFyZCJdXS5jcmVhdGVXaXphcmQoKTsNCiAgICAgICAgICAgICAgICByZXR1cm47DQogICAgICAgICAgICB9DQogICAgICAgICAgICBjcmVhdGVMYXlvdXQoKTsNCiAgICAgICAgfTsNCiAgICB9DQp9DQpmdW5jdGlvbiBnZXRDb29raWUobmFtZSkgew0KICAgIHZhciB2YWx1ZSA9ICI7ICIgKyBkb2N1bWVudC5jb29raWU7DQogICAgdmFyIHBhcnRzID0gdmFsdWUuc3BsaXQoIjsgIiArIG5hbWUgKyAiPSIpOw0KICAgIGlmIChwYXJ0cy5sZW5ndGggPT0gMikgew0KICAgICAgICByZXR1cm4gcGFydHMucG9wKCkuc3BsaXQoIjsiKS5zaGlmdCgpOw0KICAgIH0NCn0NCg==" - webUI["html/js/settings_ts.js"] = "Y2xhc3MgU2V0dGluZ3NDYXRlZ29yeSB7DQogICAgY29uc3RydWN0b3IoKSB7DQogICAgICAgIHRoaXMuRG9jdW1lbnRJRCA9ICJjb250ZW50X3NldHRpbmdzIjsNCiAgICB9DQogICAgY3JlYXRlQ2F0ZWdvcnlIZWFkbGluZSh2YWx1ZSkgew0KICAgICAgICB2YXIgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIkg0Iik7DQogICAgICAgIGVsZW1lbnQuaW5uZXJIVE1MID0gdmFsdWU7DQogICAgICAgIHJldHVybiBlbGVtZW50Ow0KICAgIH0NCiAgICBjcmVhdGVIUigpIHsNCiAgICAgICAgdmFyIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJIUiIpOw0KICAgICAgICByZXR1cm4gZWxlbWVudDsNCiAgICB9DQogICAgY3JlYXRlU2V0dGluZ3Moc2V0dGluZ3NLZXkpIHsNCiAgICAgICAgdmFyIHNldHRpbmcgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJUUiIpOw0KICAgICAgICB2YXIgY29udGVudCA9IG5ldyBQb3B1cENvbnRlbnQoKTsNCiAgICAgICAgdmFyIGRhdGEgPSBTRVJWRVJbInNldHRpbmdzIl1bc2V0dGluZ3NLZXldOw0KICAgICAgICBzd2l0Y2ggKHNldHRpbmdzS2V5KSB7DQogICAgICAgICAgICAvLyBUZXh0IGlucHV0cw0KICAgICAgICAgICAgY2FzZSAidXBkYXRlIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLnVwZGF0ZS50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsICJ1cGRhdGUiLCBkYXRhLnRvU3RyaW5nKCkpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3suc2V0dGluZ3MudXBkYXRlLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJiYWNrdXAucGF0aCI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5iYWNrdXBQYXRoLnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgImJhY2t1cC5wYXRoIiwgZGF0YSk7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5zZXR0aW5ncy5iYWNrdXBQYXRoLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ0ZW1wLnBhdGgiOg0KICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MudGVtcFBhdGgudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCAidGVtcC5wYXRoIiwgZGF0YSk7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5zZXR0aW5ncy50bXBQYXRoLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ1c2VyLmFnZW50IjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLnVzZXJBZ2VudC50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsICJ1c2VyLmFnZW50IiwgZGF0YSk7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5zZXR0aW5ncy51c2VyQWdlbnQucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImJ1ZmZlci50aW1lb3V0IjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmJ1ZmZlclRpbWVvdXQudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCAiYnVmZmVyLnRpbWVvdXQiLCBkYXRhKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnNldHRpbmdzLmJ1ZmZlclRpbWVvdXQucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImZmbXBlZy5wYXRoIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmZmbXBlZ1BhdGgudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCAiZmZtcGVnLnBhdGgiLCBkYXRhKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnNldHRpbmdzLmZmbXBlZ1BhdGgucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImZmbXBlZy5vcHRpb25zIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmZmbXBlZ09wdGlvbnMudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCAiZmZtcGVnLm9wdGlvbnMiLCBkYXRhKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnNldHRpbmdzLmZmbXBlZ09wdGlvbnMucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInZsYy5wYXRoIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLnZsY1BhdGgudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCAidmxjLnBhdGgiLCBkYXRhKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnNldHRpbmdzLnZsY1BhdGgucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInZsYy5vcHRpb25zIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLnZsY09wdGlvbnMudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCAidmxjLm9wdGlvbnMiLCBkYXRhKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnNldHRpbmdzLnZsY09wdGlvbnMucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIC8vIENoZWNrYm94ZXMNCiAgICAgICAgICAgIGNhc2UgInRsc01vZGUiOg0KICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MudGxzTW9kZS50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChzZXR0aW5nc0tleSk7DQogICAgICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGE7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiYXV0aGVudGljYXRpb24ud2ViIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmF1dGhlbnRpY2F0aW9uV0VCLnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KHNldHRpbmdzS2V5KTsNCiAgICAgICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJhdXRoZW50aWNhdGlvbi5wbXMiOg0KICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MuYXV0aGVudGljYXRpb25QTVMudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goc2V0dGluZ3NLZXkpOw0KICAgICAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImF1dGhlbnRpY2F0aW9uLm0zdSI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5hdXRoZW50aWNhdGlvbk0zVS50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChzZXR0aW5nc0tleSk7DQogICAgICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGE7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiYXV0aGVudGljYXRpb24ueG1sIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmF1dGhlbnRpY2F0aW9uWE1MLnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KHNldHRpbmdzS2V5KTsNCiAgICAgICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJhdXRoZW50aWNhdGlvbi5hcGkiOg0KICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MuYXV0aGVudGljYXRpb25BUEkudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goc2V0dGluZ3NLZXkpOw0KICAgICAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImZpbGVzLnVwZGF0ZSI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5maWxlc1VwZGF0ZS50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChzZXR0aW5nc0tleSk7DQogICAgICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGE7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiY2FjaGUuaW1hZ2VzIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmNhY2hlSW1hZ2VzLnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KHNldHRpbmdzS2V5KTsNCiAgICAgICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ4ZXBnLnJlcGxhY2UubWlzc2luZy5pbWFnZXMiOg0KICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MucmVwbGFjZUVtcHR5SW1hZ2VzLnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KHNldHRpbmdzS2V5KTsNCiAgICAgICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ4dGV2ZUF1dG9VcGRhdGUiOg0KICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MueHRldmVBdXRvVXBkYXRlLnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KHNldHRpbmdzS2V5KTsNCiAgICAgICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJhcGkiOg0KICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MuYXBpLnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KHNldHRpbmdzS2V5KTsNCiAgICAgICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAvLyBTZWxlY3QNCiAgICAgICAgICAgIGNhc2UgInR1bmVyIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLnR1bmVyLnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgdGV4dCA9IG5ldyBBcnJheSgpOw0KICAgICAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBuZXcgQXJyYXkoKTsNCiAgICAgICAgICAgICAgICBmb3IgKHZhciBpID0gMTsgaSA8PSAxMDA7IGkrKykgew0KICAgICAgICAgICAgICAgICAgICB0ZXh0LnB1c2goaSk7DQogICAgICAgICAgICAgICAgICAgIHZhbHVlcy5wdXNoKGkpOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCBkYXRhLCBzZXR0aW5nc0tleSk7DQogICAgICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKHNlbGVjdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJlcGdTb3VyY2UiOg0KICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MuZXBnU291cmNlLnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgdGV4dCA9IFsiUE1TIiwgIlhFUEciXTsNCiAgICAgICAgICAgICAgICB2YXIgdmFsdWVzID0gWyJQTVMiLCAiWEVQRyJdOw0KICAgICAgICAgICAgICAgIHZhciBzZWxlY3QgPSBjb250ZW50LmNyZWF0ZVNlbGVjdCh0ZXh0LCB2YWx1ZXMsIGRhdGEsIHNldHRpbmdzS2V5KTsNCiAgICAgICAgICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQoc2VsZWN0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImJhY2t1cC5rZWVwIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmJhY2t1cEtlZXAudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciB0ZXh0ID0gWyI1IiwgIjEwIiwgIjIwIiwgIjMwIiwgIjQwIiwgIjUwIl07DQogICAgICAgICAgICAgICAgdmFyIHZhbHVlcyA9IFsiNSIsICIxMCIsICIyMCIsICIzMCIsICI0MCIsICI1MCJdOw0KICAgICAgICAgICAgICAgIHZhciBzZWxlY3QgPSBjb250ZW50LmNyZWF0ZVNlbGVjdCh0ZXh0LCB2YWx1ZXMsIGRhdGEsIHNldHRpbmdzS2V5KTsNCiAgICAgICAgICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQoc2VsZWN0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImJ1ZmZlci5zaXplLmtiIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmJ1ZmZlclNpemUudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciB0ZXh0ID0gWyIwLjUgTUIiLCAiMSBNQiIsICIyIE1CIiwgIjMgTUIiLCAiNCBNQiIsICI1IE1CIiwgIjYgTUIiLCAiNyBNQiIsICI4IE1CIl07DQogICAgICAgICAgICAgICAgdmFyIHZhbHVlcyA9IFsiNTEyIiwgIjEwMjQiLCAiMjA0OCIsICIzMDcyIiwgIjQwOTYiLCAiNTEyMCIsICI2MTQ0IiwgIjcxNjgiLCAiODE5MiJdOw0KICAgICAgICAgICAgICAgIHZhciBzZWxlY3QgPSBjb250ZW50LmNyZWF0ZVNlbGVjdCh0ZXh0LCB2YWx1ZXMsIGRhdGEsIHNldHRpbmdzS2V5KTsNCiAgICAgICAgICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQoc2VsZWN0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImJ1ZmZlciI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5zdHJlYW1CdWZmZXJpbmcudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciB0ZXh0ID0gWyJ7ey5zZXR0aW5ncy5zdHJlYW1CdWZmZXJpbmcuaW5mb19mYWxzZX19IiwgInhUZVZlOiAoe3suc2V0dGluZ3Muc3RyZWFtQnVmZmVyaW5nLmluZm9feHRldmV9fSkiLCAiRkZtcGVnOiAoe3suc2V0dGluZ3Muc3RyZWFtQnVmZmVyaW5nLmluZm9fZmZtcGVnfX0pIiwgIlZMQzogKHt7LnNldHRpbmdzLnN0cmVhbUJ1ZmZlcmluZy5pbmZvX3ZsY319KSJdOw0KICAgICAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBbIi0iLCAieHRldmUiLCAiZmZtcGVnIiwgInZsYyJdOw0KICAgICAgICAgICAgICAgIHZhciBzZWxlY3QgPSBjb250ZW50LmNyZWF0ZVNlbGVjdCh0ZXh0LCB2YWx1ZXMsIGRhdGEsIHNldHRpbmdzS2V5KTsNCiAgICAgICAgICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQoc2VsZWN0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInVkcHh5IjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLnVkcHh5LnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgInVkcHh5IiwgZGF0YSk7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5zZXR0aW5ncy51ZHB4eS5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICB9DQogICAgICAgIHJldHVybiBzZXR0aW5nOw0KICAgIH0NCiAgICBjcmVhdGVEZXNjcmlwdGlvbihzZXR0aW5nc0tleSkgew0KICAgICAgICB2YXIgZGVzY3JpcHRpb24gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJUUiIpOw0KICAgICAgICB2YXIgdGV4dDsNCiAgICAgICAgc3dpdGNoIChzZXR0aW5nc0tleSkgew0KICAgICAgICAgICAgY2FzZSAidGxzTW9kZSI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy50bHNNb2RlLmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiYXV0aGVudGljYXRpb24ud2ViIjoNCiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLmF1dGhlbnRpY2F0aW9uV0VCLmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiYXV0aGVudGljYXRpb24ubTN1IjoNCiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLmF1dGhlbnRpY2F0aW9uTTNVLmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiYXV0aGVudGljYXRpb24ucG1zIjoNCiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLmF1dGhlbnRpY2F0aW9uUE1TLmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiYXV0aGVudGljYXRpb24ueG1sIjoNCiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLmF1dGhlbnRpY2F0aW9uWE1MLmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiYXV0aGVudGljYXRpb24uYXBpIjoNCiAgICAgICAgICAgICAgICBpZiAoU0VSVkVSWyJzZXR0aW5ncyJdWyJhdXRoZW50aWNhdGlvbi53ZWIiXSA9PSB0cnVlKSB7DQogICAgICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MuYXV0aGVudGljYXRpb25BUEkuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAieHRldmVBdXRvVXBkYXRlIjoNCiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLnh0ZXZlQXV0b1VwZGF0ZS5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImJhY2t1cC5rZWVwIjoNCiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLmJhY2t1cEtlZXAuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJiYWNrdXAucGF0aCI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5iYWNrdXBQYXRoLmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAidGVtcC5wYXRoIjoNCiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLnRlbXBQYXRoLmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiYnVmZmVyIjoNCiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLnN0cmVhbUJ1ZmZlcmluZy5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImJ1ZmZlci5zaXplLmtiIjoNCiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLmJ1ZmZlclNpemUuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJidWZmZXIudGltZW91dCI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5idWZmZXJUaW1lb3V0LmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAidXNlci5hZ2VudCI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy51c2VyQWdlbnQuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJmZm1wZWcucGF0aCI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5mZm1wZWdQYXRoLmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiZmZtcGVnLm9wdGlvbnMiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MuZmZtcGVnT3B0aW9ucy5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInZsYy5wYXRoIjoNCiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLnZsY1BhdGguZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ2bGMub3B0aW9ucyI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy52bGNPcHRpb25zLmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiZXBnU291cmNlIjoNCiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLmVwZ1NvdXJjZS5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInR1bmVyIjoNCiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLnR1bmVyLmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAidXBkYXRlIjoNCiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLnVwZGF0ZS5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImFwaSI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5hcGkuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJmaWxlcy51cGRhdGUiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MuZmlsZXNVcGRhdGUuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJjYWNoZS5pbWFnZXMiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MuY2FjaGVJbWFnZXMuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ4ZXBnLnJlcGxhY2UubWlzc2luZy5pbWFnZXMiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MucmVwbGFjZUVtcHR5SW1hZ2VzLmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAidWRweHkiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MudWRweHkuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBkZWZhdWx0Og0KICAgICAgICAgICAgICAgIHRleHQgPSAiIjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgfQ0KICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICIiOw0KICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgIHZhciBwcmUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJQUkUiKTsNCiAgICAgICAgcHJlLmlubmVySFRNTCA9IHRleHQ7DQogICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQocHJlKTsNCiAgICAgICAgZGVzY3JpcHRpb24uYXBwZW5kQ2hpbGQodGRMZWZ0KTsNCiAgICAgICAgZGVzY3JpcHRpb24uYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgIHJldHVybiBkZXNjcmlwdGlvbjsNCiAgICB9DQp9DQpjbGFzcyBTZXR0aW5nc0NhdGVnb3J5SXRlbSBleHRlbmRzIFNldHRpbmdzQ2F0ZWdvcnkgew0KICAgIGNvbnN0cnVjdG9yKGhlYWRsaW5lLCBzZXR0aW5nc0tleXMpIHsNCiAgICAgICAgc3VwZXIoKTsNCiAgICAgICAgdGhpcy5oZWFkbGluZSA9IGhlYWRsaW5lOw0KICAgICAgICB0aGlzLnNldHRpbmdzS2V5cyA9IHNldHRpbmdzS2V5czsNCiAgICB9DQogICAgY3JlYXRlQ2F0ZWdvcnkoKSB7DQogICAgICAgIHZhciBoZWFkbGluZSA9IHRoaXMuY3JlYXRlQ2F0ZWdvcnlIZWFkbGluZSh0aGlzLmhlYWRsaW5lKTsNCiAgICAgICAgdmFyIHNldHRpbmdzS2V5cyA9IHRoaXMuc2V0dGluZ3NLZXlzOw0KICAgICAgICB2YXIgZG9jID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQodGhpcy5Eb2N1bWVudElEKTsNCiAgICAgICAgZG9jLmFwcGVuZENoaWxkKGhlYWRsaW5lKTsNCiAgICAgICAgLy8gQ3JlYXRlIGEgdGFibGUgZm9yIHRoZSBjYXRlZ29yeQ0KICAgICAgICB2YXIgdGFibGUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJUQUJMRSIpOw0KICAgICAgICB2YXIga2V5cyA9IHNldHRpbmdzS2V5cy5zcGxpdCgiLCIpOw0KICAgICAgICBrZXlzLmZvckVhY2goc2V0dGluZ3NLZXkgPT4gew0KICAgICAgICAgICAgc3dpdGNoIChzZXR0aW5nc0tleSkgew0KICAgICAgICAgICAgICAgIGNhc2UgImF1dGhlbnRpY2F0aW9uLnBtcyI6DQogICAgICAgICAgICAgICAgY2FzZSAiYXV0aGVudGljYXRpb24ubTN1IjoNCiAgICAgICAgICAgICAgICBjYXNlICJhdXRoZW50aWNhdGlvbi54bWwiOg0KICAgICAgICAgICAgICAgIGNhc2UgImF1dGhlbnRpY2F0aW9uLmFwaSI6DQogICAgICAgICAgICAgICAgICAgIGlmIChTRVJWRVJbInNldHRpbmdzIl1bImF1dGhlbnRpY2F0aW9uLndlYiJdID09IGZhbHNlKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICAgICAgICAgIHZhciBpdGVtID0gdGhpcy5jcmVhdGVTZXR0aW5ncyhzZXR0aW5nc0tleSk7DQogICAgICAgICAgICAgICAgICAgIHZhciBkZXNjcmlwdGlvbiA9IHRoaXMuY3JlYXRlRGVzY3JpcHRpb24oc2V0dGluZ3NLZXkpOw0KICAgICAgICAgICAgICAgICAgICB0YWJsZS5hcHBlbmRDaGlsZChpdGVtKTsNCiAgICAgICAgICAgICAgICAgICAgdGFibGUuYXBwZW5kQ2hpbGQoZGVzY3JpcHRpb24pOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfSk7DQogICAgICAgIGRvYy5hcHBlbmRDaGlsZCh0YWJsZSk7DQogICAgICAgIGRvYy5hcHBlbmRDaGlsZCh0aGlzLmNyZWF0ZUhSKCkpOw0KICAgIH0NCn0NCmZ1bmN0aW9uIHNob3dTZXR0aW5ncygpIHsNCiAgICBjb25zb2xlLmxvZygiU0VUVElOR1MiKTsNCiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHNldHRpbmdzQ2F0ZWdvcnkubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgc2V0dGluZ3NDYXRlZ29yeVtpXS5jcmVhdGVDYXRlZ29yeSgpOw0KICAgIH0NCn0NCmZ1bmN0aW9uIHNhdmVTZXR0aW5ncygpIHsNCiAgICBjb25zb2xlLmxvZygiU2F2ZSBTZXR0aW5ncyIpOw0KICAgIHZhciBjbWQgPSAic2F2ZVNldHRpbmdzIjsNCiAgICB2YXIgZGl2ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnRlbnRfc2V0dGluZ3MiKTsNCiAgICB2YXIgc2V0dGluZ3MgPSBkaXYuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSgiY2hhbmdlZCIpOw0KICAgIHZhciBuZXdTZXR0aW5ncyA9IG5ldyBPYmplY3QoKTsNCiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHNldHRpbmdzLmxlbmd0aDsgaSsrKSB7DQogICAgICAgIHZhciBuYW1lOw0KICAgICAgICB2YXIgdmFsdWU7DQogICAgICAgIHN3aXRjaCAoc2V0dGluZ3NbaV0udGFnTmFtZSkgew0KICAgICAgICAgICAgY2FzZSAiSU5QVVQiOg0KICAgICAgICAgICAgICAgIHN3aXRjaCAoc2V0dGluZ3NbaV0udHlwZSkgew0KICAgICAgICAgICAgICAgICAgICBjYXNlICJjaGVja2JveCI6DQogICAgICAgICAgICAgICAgICAgICAgICBuYW1lID0gc2V0dGluZ3NbaV0ubmFtZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlID0gc2V0dGluZ3NbaV0uY2hlY2tlZDsNCiAgICAgICAgICAgICAgICAgICAgICAgIG5ld1NldHRpbmdzW25hbWVdID0gdmFsdWU7DQogICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICAgICAgY2FzZSAidGV4dCI6DQogICAgICAgICAgICAgICAgICAgICAgICBuYW1lID0gc2V0dGluZ3NbaV0ubmFtZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlID0gc2V0dGluZ3NbaV0udmFsdWU7DQogICAgICAgICAgICAgICAgICAgICAgICBzd2l0Y2ggKG5hbWUpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYXNlICJ1cGRhdGUiOg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IHZhbHVlLnNwbGl0KCIsIik7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlID0gdmFsdWUuZmlsdGVyKGZ1bmN0aW9uIChlKSB7IHJldHVybiBlOyB9KTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAiYnVmZmVyLnRpbWVvdXQiOg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IHBhcnNlRmxvYXQodmFsdWUpOw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgbmV3U2V0dGluZ3NbbmFtZV0gPSB2YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgIlNFTEVDVCI6DQogICAgICAgICAgICAgICAgbmFtZSA9IHNldHRpbmdzW2ldLm5hbWU7DQogICAgICAgICAgICAgICAgdmFsdWUgPSBzZXR0aW5nc1tpXS52YWx1ZTsNCiAgICAgICAgICAgICAgICAvLyBJZiB0aGUgdmFsdWUgaXMgYSBudW1iZXIsIHN0b3JlIGl0IGFzIGEgbnVtYmVyDQogICAgICAgICAgICAgICAgaWYgKGlzTmFOKHZhbHVlKSkgew0KICAgICAgICAgICAgICAgICAgICBuZXdTZXR0aW5nc1tuYW1lXSA9IHZhbHVlOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICAgICAgbmV3U2V0dGluZ3NbbmFtZV0gPSBwYXJzZUludCh2YWx1ZSk7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICB9DQogICAgfQ0KICAgIHZhciBkYXRhID0gbmV3IE9iamVjdCgpOw0KICAgIGRhdGFbInNldHRpbmdzIl0gPSBuZXdTZXR0aW5nczsNCiAgICB2YXIgc2VydmVyID0gbmV3IFNlcnZlcihjbWQpOw0KICAgIHNlcnZlci5yZXF1ZXN0KGRhdGEpOw0KfQ0K" - webUI["html/lang/en.json"] = "ew0KICAibWFpbk1lbnUiOg0KICB7DQogICAgIml0ZW0iOg0KICAgIHsNCiAgICAgICJwbGF5bGlzdCI6ICJQbGF5bGlzdCIsDQogICAgICAicG1zSUQiOiAiUE1TIElEIiwNCiAgICAgICJmaWx0ZXIiOiAiRmlsdGVyIiwNCiAgICAgICJ4bWx0diI6ICJYTUxUViIsDQogICAgICAibWFwcGluZyI6ICJNYXBwaW5nIiwNCiAgICAgICJ1c2VycyI6ICJVc2VycyIsDQogICAgICAic2V0dGluZ3MiOiAiU2V0dGluZ3MiLA0KICAgICAgImxvZyI6ICJMb2ciLA0KICAgICAgImxvZ291dCI6ICJMb2dvdXQiDQogICAgfSwNCiAgICAiaGVhZGxpbmUiOg0KICAgIHsNCiAgICAgICJwbGF5bGlzdCI6ICJMb2NhbCBvciByZW1vdGUgcGxheWxpc3RzIiwNCiAgICAgICJmaWx0ZXIiOiAiRmlsdGVyIHBsYXlsaXN0IiwNCiAgICAgICJ4bWx0diI6ICJMb2NhbCBvciByZW1vdGUgWE1MVFYgZmlsZXMiLA0KICAgICAgIm1hcHBpbmciOiAiTWFwIHBsYXlsaXN0IGNoYW5uZWxzIHRvIEVQRyBjaGFubmVscyIsDQogICAgICAidXNlcnMiOiAiVXNlciBtYW5hZ2VtZW50IiwNCiAgICAgICJzZXR0aW5ncyI6ICJTZXR0aW5ncyIsDQogICAgICAibG9nIjogIkxvZyIsDQogICAgICAibG9nb3V0IjogIkxvZ291dCINCiAgICB9DQogIH0sDQogICJjb25maXJtIjoNCiAgew0KICAgICJyZXN0b3JlIjogIkFsbCBkYXRhIHdpbGwgYmUgcmVwbGFjZWQgd2l0aCB0aG9zZSBmcm9tIHRoZSBiYWNrdXAuIFNob3VsZCB0aGUgZmlsZXMgYmUgcmVzdG9yZWQ/Ig0KICB9LA0KICAiYWxlcnQiOg0KICB7DQogICAgImZpbGVMb2FkaW5nRXJyb3IiOiAiRmlsZSBjb3VsZG4ndCBiZSBsb2FkZWQiLA0KICAgICJpbnZhbGlkQ2hhbm5lbE51bWJlciI6ICJJbnZhbGlkIGNoYW5uZWwgbnVtYmVyIiwNCiAgICAibWlzc2luZ0lucHV0IjogIk1pc3NpbmcgaW5wdXQiDQogIH0sDQogICJidXR0b24iOg0KICB7DQogICAgImJhY2siOiAiQmFjayIsDQogICAgImJhY2t1cCI6ICJCYWNrdXAiLA0KICAgICJidWxrRWRpdCI6ICJCdWxrIEVkaXQiLA0KICAgICJjYW5jZWwiOiAiQ2FuY2VsIiwNCiAgICAiZGVsZXRlIjogIkRlbGV0ZSIsDQogICAgImRvbmUiOiAiRG9uZSIsDQogICAgImxvZ2luIjogIkxvZ2luIiwNCiAgICAibmV3IjogIk5ldyIsDQogICAgIm5leHQiOiAiTmV4dCIsDQogICAgInJlc3RvcmUiOiAiUmVzdG9yZSIsDQogICAgInNhdmUiOiAiU2F2ZSIsDQogICAgInNlYXJjaCI6ICJTZWFyY2giLA0KICAgICJ1cGRhdGUiOiAiVXBkYXRlIiwNCiAgICAiY3JhZXRlQWNjb3VudCI6ICJDcmVhdGUgQWNjb3VudCIsDQogICAgInJlc2V0TG9ncyI6ICJSZXNldCBMb2dzIiwNCiAgICAidXBsb2FkTG9nbyI6ICJVcGxvYWQgTG9nbyINCiAgfSwNCiAgImZpbHRlciI6DQogIHsNCiAgICAidGFibGUiOg0KICAgIHsNCiAgICAgICJzdGFydGluZ0NoYW5uZWwiOiAiU3RhcnRpbmcgQ2guIE5vLiIsDQogICAgICAibmFtZSI6ICJGaWx0ZXIgTmFtZSIsDQogICAgICAidHlwZSI6ICJGaWx0ZXIgVHlwZSIsDQogICAgICAiZmlsdGVyIjogIkZpbHRlciINCiAgICB9LA0KICAgICJjdXN0b20iOiAiQ3VzdG9tIiwNCiAgICAiZ3JvdXAiOiAiTTNVIEdyb3VwIiwNCiAgICAibmFtZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIkZpbHRlciBOYW1lIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJGaWx0ZXIgbmFtZSIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgImRlc2NyaXB0aW9uIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiRGVzY3JpcHRpb24iLA0KICAgICAgInBsYWNlaG9sZGVyIjogIkRlc2NyaXB0aW9uIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAidHlwZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIlR5cGUiLA0KICAgICAgImdyb3VwVGl0bGUiOiAiR3JvdXAgVGl0bGUiLA0KICAgICAgImN1c3RvbUZpbHRlciI6ICJDdXN0b20gRmlsdGVyIg0KICAgIH0sDQogICAgImNhc2VTZW5zaXRpdmUiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJDYXNlIFNlbnNpdGl2ZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAiZmlsdGVyUnVsZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIkZpbHRlciBSdWxlIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJTcG9ydCB7SER9ICF7RVMsSVR9IiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAiZmlsdGVyR3JvdXAiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJHcm91cCBUaXRsZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJTZWxlY3QgYSBNM1UgZ3JvdXAuIChDb3VudGVyKTxicj5DaGFuZ2luZyB0aGUgZ3JvdXAgdGl0bGUgaW4gdGhlIE0zVSBpbnZhbGlkYXRlcyB0aGUgZmlsdGVyLiINCiAgICB9LA0KICAgICJpbmNsdWRlIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiSW5jbHVkZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiRkhELFVIRCIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiQ2hhbm5lbCBuYW1lIG11c3QgaW5jbHVkZS48YnI+KENvbW1hIHNlcGFyYXRlZCkgQ29tbWEgbWVhbnMgb3IiDQogICAgfSwNCiAgICAiZXhjbHVkZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIkV4Y2x1ZGUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIkVTLElUIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJDaGFubmVsIG5hbWUgbXVzdCBub3QgY29udGFpbi48YnI+KENvbW1hIHNlcGFyYXRlZCkgQ29tbWEgbWVhbnMgb3IiDQogICAgfSwNCiAgICAicHJlc2VydmVNYXBwaW5nIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiUHJlc2VydmUgRXhpc3RpbmcgTTNVPGJyPkNoYW5uZWwgTnVtYmVycyIsDQogICAgICAicGFsY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJQcmVzZXJ2ZSBleGlzdGluZyBNM1UgcGxheWxpc3QgY2hhbm5lbCBudW1iZXJzPyINCiAgICB9LA0KICAgICJzdGFydGluZ0NoYW5uZWwiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJTdGFydGluZyBDaGFubmVsIE51bWJlciIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAiZGVmYXVsdE1pc3NpbmdFUEciOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJGaWxsIE1pc3NpbmcgRVBHIERhdGEiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiV2hlbiB0aGVyZSBpcyBubyBtYXRjaGluZyBFUEcgZGF0YSBmb3IgY2hhbm5lbCwgPGJyPmF1dG9maWxsIHdpdGggeFRlVmUgZHVtbXkgRVBHIGRhdGE/Ig0KICAgIH0NCg0KICB9LA0KICAicGxheWxpc3QiOg0KICB7DQogICAgInRhYmxlIjoNCiAgICB7DQogICAgICAicGxheWxpc3QiOiAiUGxheWxpc3QiLA0KICAgICAgInR1bmVyIjogIlR1bmVyIiwNCiAgICAgICJsYXN0VXBkYXRlIjogIkxhc3QgVXBkYXRlIiwNCiAgICAgICJhdmFpbGFiaWxpdHkiOiAiQXZhaWxhYmlsaXR5IiwNCiAgICAgICJ0eXBlIjogIlR5cGUiLA0KICAgICAgInN0cmVhbXMiOiAiU3RyZWFtcyIsDQogICAgICAiZ3JvdXBUaXRsZSI6ICJncm91cC10aXRsZSIsDQogICAgICAidHZnSUQiOiAidHZnLWlkIiwNCiAgICAgICJ1bmlxdWVJRCI6ICJVbmlxdWUgSUQiDQogICAgfSwNCiAgICAicGxheWxpc3RUeXBlIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiUGxheWxpc3QgdHlwZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAidHlwZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIlR5cGUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgIm5hbWUiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJOYW1lIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJQbGF5bGlzdCBuYW1lIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAiZGVzY3JpcHRpb24iOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJEZXNjcmlwdGlvbiIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiRGVzY3JpcHRpb24iLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJmaWxlTTNVIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiTTNVIEZpbGUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIkZpbGUgcGF0aCBvciBVUkwgb2YgdGhlIE0zVSIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgImZpbGVIREhSIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiSERIb21lUnVuIElQIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJJUCBhZGRyZXNzIGFuZCBwb3J0ICgxOTIuMTY4LjEuMTA6NTAwNCkiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJ0dW5lciI6DQogICAgew0KICAgICAgInRpdGxlIjogIlR1bmVyIC8gU3RyZWFtcyIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJOdW1iZXIgb2YgcGFyYWxsZWwgY29ubmVjdGlvbnMgdGhhdCBjYW4gYmUgZXN0YWJsaXNoZWQgdG8gdGhlIHByb3ZpZGVyLiA8YnI+T25seSBhdmFpbGFibGUgd2l0aCBhY3RpdmF0ZWQgYnVmZmVyLjxicj5OZXcgc2V0dGluZ3Mgd2lsbCBvbmx5IGJlIGFwcGxpZWQgYWZ0ZXIgcXVpdHRpbmcgYWxsIHN0cmVhbXMuIg0KICAgIH0NCiAgfSwNCiAgInhtbHR2IjoNCiAgew0KICAgICJ0YWJsZSI6DQogICAgew0KICAgICAgImd1aWRlIjogIkd1aWRlIiwNCiAgICAgICJsYXN0VXBkYXRlIjogIkxhc3QgVXBkYXRlIiwNCiAgICAgICJhdmFpbGFiaWxpdHkiOiAiQXZhaWxhYmlsaXR5IiwNCiAgICAgICJjaGFubmVscyI6ICJDaGFubmVscyIsDQogICAgICAicHJvZ3JhbXMiOiAiUHJvZ3JhbXMiDQogICAgfSwNCiAgICAibmFtZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIk5hbWUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIkd1aWRlIG5hbWUiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJkZXNjcmlwdGlvbiI6DQogICAgew0KICAgICAgInRpdGxlIjogIkRlc2NyaXB0aW9uIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJEZXNjcmlwdGlvbiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgImZpbGVYTUxUViI6DQogICAgew0KICAgICAgInRpdGxlIjogIlhNTFRWIEZpbGUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIkZpbGUgcGF0aCBvciBVUkwgb2YgdGhlIFhNTFRWIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfQ0KICB9LA0KICAibWFwcGluZyI6DQogIHsNCiAgICAidGFibGUiOg0KICAgIHsNCiAgICAgICJjaE5vIjogIkNoLiBOby4iLA0KICAgICAgImxvZ28iOiAiTG9nbyIsDQogICAgICAiY2hhbm5lbE5hbWUiOiAiQ2hhbm5lbCBOYW1lIiwNCiAgICAgICJwbGF5bGlzdCI6ICJQbGF5bGlzdCIsDQogICAgICAiZ3JvdXBUaXRsZSI6ICJHcm91cCBUaXRsZSIsDQogICAgICAieG1sdHZGaWxlIjogIlhNTFRWIEZpbGUiLA0KICAgICAgInhtbHR2SUQiOiAiWE1MVFYgSUQiLA0KICAgICAgInRpbWVzaGlmdCI6ICJUaW1lc2hpZnQiDQogICAgfSwNCiAgICAiYWN0aXZlIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiQWN0aXZlIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJjaGFubmVsTmFtZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIkNoYW5uZWwgTmFtZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAiZGVzY3JpcHRpb24iOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJDaGFubmVsIERlc2NyaXB0aW9uIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJVc2VkIGJ5IHRoZSBEdW1teSBhcyBhbiBYTUwgZGVzY3JpcHRpb24iLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJ1cGRhdGVDaGFubmVsTmFtZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIlVwZGF0ZSBDaGFubmVsIE5hbWUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgInVwZGF0ZUNoYW5uZWxHcm91cCI6DQogICAgew0KICAgICAgInRpdGxlIjogIlVwZGF0ZSBDaGFubmVsIEdyb3VwIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIklmIGNoZWNrZWQsIHVzZSBncm91cCBmcm9tIHRoZSBkYXRhYmFzZSINCiAgICB9LA0KICAgICJjaGFubmVsTG9nbyI6DQogICAgew0KICAgICAgInRpdGxlIjogIkxvZ28gVVJMIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJ1cGRhdGVDaGFubmVsTG9nbyI6DQogICAgew0KICAgICAgInRpdGxlIjogIlVwZGF0ZSBDaGFubmVsIExvZ28iLA0KICAgICAgInBsYWNlaG9sZGVyIjogIiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgImVwZ0NhdGVnb3J5IjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiRVBHIENhdGVnb3J5IiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJtM3VHcm91cFRpdGxlIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiR3JvdXAgVGl0bGUgKHh0ZXZlLm0zdSkiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgInhtbHR2RmlsZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIlhNTFRWIEZpbGUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgInhtbHR2Q2hhbm5lbCI6DQogICAgew0KICAgICAgInRpdGxlIjogIlhNTFRWIENoYW5uZWwiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgInRpbWVzaGlmdCI6DQogICAgew0KICAgICAgInRpdGxlIjogIlRpbWVzaGlmdCIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiMCIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0NCiAgfSwNCiAgInVzZXJzIjoNCiAgew0KICAgICJ0YWJsZSI6DQogICAgew0KICAgICAgInVzZXJuYW1lIjogIlVzZXJuYW1lIiwNCiAgICAgICJwYXNzd29yZCI6ICJQYXNzd29yZCIsDQogICAgICAid2ViIjogIldFQiIsDQogICAgICAicG1zIjogIlBNUyIsDQogICAgICAibTN1IjogIk0zVSIsDQogICAgICAieG1sIjogIlhNTCIsDQogICAgICAiYXBpIjogIkFQSSINCiAgICB9LA0KICAgICJ1c2VybmFtZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIlVzZXJuYW1lIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJVc2VybmFtZSIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgInBhc3N3b3JkIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiUGFzc3dvcmQiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIlBhc3N3b3JkIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAiY29uZmlybSI6DQogICAgew0KICAgICAgInRpdGxlIjogIkNvbmZpcm0iLA0KICAgICAgInBsYWNlaG9sZGVyIjogIlBhc3N3b3JkIGNvbmZpcm0iLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJ3ZWIiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJXZWIgQWNjZXNzIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJwbXMiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJQTVMgQWNjZXNzIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJtM3UiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJNM1UgQWNjZXNzIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJ4bWwiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJYTUwgQWNjZXNzIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJhcGkiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJBUEkgQWNjZXNzIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9DQogIH0sDQogICJzZXR0aW5ncyI6DQogIHsNCiAgICAiY2F0ZWdvcnkiOg0KICAgIHsNCiAgICAgICJnZW5lcmFsIjogIkdlbmVyYWwiLA0KICAgICAgImZpbGVzIjogIkZpbGVzIiwNCiAgICAgICJzdHJlYW1pbmciOiAiU3RyZWFtaW5nIiwNCiAgICAgICJiYWNrdXAiOiAiQmFja3VwIiwNCiAgICAgICJhdXRoZW50aWNhdGlvbiI6ICJBdXRoZW50aWNhdGlvbiINCiAgICB9LA0KICAgICJ1cGRhdGUiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJTY2hlZHVsZSBmb3IgdXBkYXRpbmcgKFBsYXlsaXN0LCBYTUxUViwgQmFja3VwKSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiMDAwMCwxMDAwLDIwMDAiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIlRpbWUgaW4gMjQgaG91ciBmb3JtYXQgKDA4MDAgPSA4OjAwIGFtKS4gTW9yZSB0aW1lcyBjYW4gYmUgZW50ZXJlZCBjb21tYSBzZXBhcmF0ZWQuIExlYXZlIHRoaXMgZmllbGQgZW1wdHkgaWYgbm8gdXBkYXRlcyBhcmUgdG8gYmUgY2FycmllZCBvdXQuIg0KICAgIH0sDQogICAgImFwaSI6DQogICAgew0KICAgICAgInRpdGxlIjogIkFQSSBJbnRlcmZhY2UiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIlZpYSBBUEkgaW50ZXJmYWNlIGl0IGlzIHBvc3NpYmxlIHRvIHNlbmQgY29tbWFuZHMgdG8geFRlVmUuIEFQSSBkb2N1bWVudGF0aW9uIGlzIDxhIGhyZWY9J2h0dHBzOi8vZ2l0aHViLmNvbS94dGV2ZS1wcm9qZWN0L3hUZVZlLURvY3VtZW50YXRpb24vYmxvYi9tYXN0ZXIvZW4vY29uZmlndXJhdGlvbi5tZCNhcGknPmhlcmU8L2E+Ig0KICAgIH0sDQogICAgImVwZ1NvdXJjZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIkVQRyBTb3VyY2UiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIlBNUzo8YnI+LSBVc2UgRVBHIGRhdGEgZnJvbSBQbGV4IG9yIEVtYnkgPGJyPjxicj5YRVBHOjxicj4tIFVzZSBvZiBvbmUgb3IgbW9yZSBYTUxUViBmaWxlczxicj4tIENoYW5uZWwgbWFuYWdlbWVudDxicj4tIE0zVSAvIFhNTFRWIGV4cG9ydCAoSFRUUCBsaW5rIGZvciBJUFRWIGFwcHMpIg0KICAgIH0sDQogICAgInR1bmVyIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiTnVtYmVyIG9mIFR1bmVycyIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiTnVtYmVyIG9mIHBhcmFsbGVsIGNvbm5lY3Rpb25zIHRoYXQgY2FuIGJlIGVzdGFibGlzaGVkIHRvIHRoZSBwcm92aWRlci48YnI+QXZhaWxhYmxlIGZvcjogUGxleCwgRW1ieSAoSERIUiksIE0zVSAod2l0aCBhY3RpdmUgYnVmZmVyKS48YnI+QWZ0ZXIgYSBjaGFuZ2UsIHhUZVZlIG11c3QgYmUgZGVsZXRlIGluIHRoZSBQbGV4IC8gRW1ieSBEVlIgc2V0dGluZ3MgYW5kIHNldCB1cCBhZ2Fpbi4iDQogICAgfSwNCiAgICAidGxzTW9kZSI6IHsNCiAgICAgICJ0aXRsZSI6ICJUTFMgKEhUVFBTKSBtb2RlIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJDaGFuZ2VzIHdlYiBzZXJ2ZXIgcHJvdG9jb2wgdG8gSFRUUFMuPGJyPkZvciBkZXRhaWxzLCBzZWUgPGE+aHR0cHM6Ly9naXRodWIuY29tL1NDUDAwMi94VGVWZSN0bHMtbW9kZTwvYT4iDQogICAgfSwNCiAgICAiZmlsZXNVcGRhdGUiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJVcGRhdGVzIGFsbCBmaWxlcyBhdCBzdGFydHVwIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJVcGRhdGVzIGFsbCBwbGF5bGlzdHMsIHR1bmVyIGFuZCBYTUxUViBmaWxlcyBhdCBzdGFydHVwLiINCiAgICB9LA0KICAgICJjYWNoZUltYWdlcyI6DQogICAgew0KICAgICAgInRpdGxlIjogIkltYWdlIENhY2hpbmciLA0KICAgICAgImRlc2NyaXB0aW9uIjogIkFsbCBpbWFnZXMgZnJvbSB0aGUgWE1MVFYgZmlsZSBhcmUgY2FjaGVkLCBhbGxvd2luZyBmYXN0ZXIgcmVuZGVyaW5nIG9mIHRoZSBncmlkIGluIHRoZSBjbGllbnQuPGJyPkRvd25sb2FkaW5nIHRoZSBpbWFnZXMgbWF5IHRha2UgYSB3aGlsZSBhbmQgd2lsbCBiZSBkb25lIGluIHRoZSBiYWNrZ3JvdW5kLiINCiAgICB9LA0KICAgICJyZXBsYWNlRW1wdHlJbWFnZXMiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJSZXBsYWNlIG1pc3NpbmcgcHJvZ3JhbSBpbWFnZXMiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIklmIHRoZSBwb3N0ZXIgaW4gdGhlIFhNTFRWIHByb2dyYW0gaXMgbWlzc2luZywgdGhlIGNoYW5uZWwgbG9nbyB3aWxsIGJlIHVzZWQuIg0KICAgIH0sDQogICAgInh0ZXZlQXV0b1VwZGF0ZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIkF1dG9tYXRpYyB1cGRhdGUgb2YgeFRlVmUiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIklmIGEgbmV3IHZlcnNpb24gb2YgeFRlVmUgaXMgYXZhaWxhYmxlLCBpdCB3aWxsIGJlIGF1dG9tYXRpY2FsbHkgaW5zdGFsbGVkLiBUaGUgdXBkYXRlcyBhcmUgZG93bmxvYWRlZCBmcm9tIEdpdEh1Yi4iDQogICAgfSwNCiAgICAic3RyZWFtQnVmZmVyaW5nIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiU3RyZWFtIEJ1ZmZlciIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiRnVuY3Rpb25zIG9mIHRoZSBidWZmZXI6PGJyPi0gVGhlIHN0cmVhbSBpcyBwYXNzZWQgZnJvbSB4VGVWZSwgRkZtcGVnIG9yIFZMQyB0byBQbGV4LCBFbWJ5IG9yIE0zVSBQbGF5ZXI8YnI+LSBTbWFsbCBqZXJraW5nIG9mIHRoZSBzdHJlYW1zIGNhbiBiZSBjb21wZW5zYXRlZDxicj4tIEhMUyAvIE0zVTggc3VwcG9ydDxicj4tIFJUUCAvIFJUUFMgc3VwcG9ydCAob25seSBGRm1wZWcgb3IgVkxDKTxicj4tIFJlLXN0cmVhbWluZzxicj4tIFNlcGFyYXRlIHR1bmVyIGxpbWl0IGZvciBlYWNoIHBsYXlsaXN0IiwNCiAgICAgICJpbmZvX2ZhbHNlIjogIk5vIEJ1ZmZlciAoQ2xpZW50IGNvbm5lY3RzIHRvIHRoZSBzdHJlYW1pbmcgc2VydmVyKSIsDQogICAgICAiaW5mb194dGV2ZSI6ICJ4VGVWZSBjb25uZWN0cyB0byB0aGUgc3RyZWFtaW5nIHNlcnZlciIsDQogICAgICAiaW5mb19mZm1wZWciOiAiRkZtcGVnIGNvbm5lY3RzIHRvIHRoZSBzdHJlYW1pbmcgc2VydmVyIiwNCiAgICAgICJpbmZvX3ZsYyI6ICJWTEMgY29ubmVjdHMgdG8gdGhlIHN0cmVhbWluZyBzZXJ2ZXIiDQoNCiAgICB9LA0KICAgICJ1ZHB4eSI6DQogICAgew0KICAgICAgInRpdGxlIjogIlVEUHh5IGFkZHJlc3MiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIlRoZSBhZGRyZXNzIG9mIHlvdXIgVURQeHkgc2VydmVyLiBJZiBzZXQsIGFuZCB0aGUgY2hhbm5lbCBVUkxzIGluIHRoZSBtM3UgaXMgbXVsdGljYXN0LCB4VGVWZSB3aWxsIHJld3JpdGUgaXQgc28gdGhhdCBpdCBpcyBhY2Nlc3NlZCB2aWEgdGhlIFVEUHh5IHNlcnZpY2UuIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJob3N0OnBvcnQiDQogICAgfSwNCiAgICAiZmZtcGVnUGF0aCI6DQogICAgew0KICAgICAgInRpdGxlIjogIkZGbXBlZyBCaW5hcnkgUGF0aCIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiUGF0aCB0byBGRm1wZWcgYmluYXJ5LiIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiL3BhdGgvdG8vZmZtcGVnIg0KICAgIH0sDQogICAgImZmbXBlZ09wdGlvbnMiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJGRm1wZWcgT3B0aW9ucyIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiRkZtcGVnIG9wdGlvbnMuPGJyPk9ubHkgY2hhbmdlIGlmIHlvdSBrbm93IHdoYXQgeW91IGFyZSBkb2luZy48YnI+TGVhdmUgYmxhbmsgdG8gc2V0IGRlZmF1bHQgc2V0dGluZ3MuIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJMZWF2ZSBibGFuayB0byBzZXQgZGVmYXVsdCBzZXR0aW5ncyINCiAgICB9LA0KICAgICJ2bGNQYXRoIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiVkxDIC8gQ1ZMQyBCaW5hcnkgUGF0aCIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiUGF0aCB0byBWTEMgLyBDVkxDIGJpbmFyeS4iLA0KICAgICAgInBsYWNlaG9sZGVyIjogIi9wYXRoL3RvL2N2bGMiDQogICAgfSwNCiAgICAidmxjT3B0aW9ucyI6DQogICAgew0KICAgICAgInRpdGxlIjogIlZMQyAvIENWTEMgT3B0aW9ucyIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiVkxDIC8gQ1ZMQyBvcHRpb25zLjxicj5Pbmx5IGNoYW5nZSBpZiB5b3Uga25vdyB3aGF0IHlvdSBhcmUgZG9pbmcuPGJyPkxlYXZlIGJsYW5rIHRvIHNldCBkZWZhdWx0IHNldHRpbmdzLiIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiTGVhdmUgYmxhbmsgdG8gc2V0IGRlZmF1bHQgc2V0dGluZ3MiDQogICAgfSwNCiAgICAiYnVmZmVyU2l6ZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIkJ1ZmZlciBTaXplIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJCdWZmZXIgc2l6ZSBpbiBNQi48YnI+TTNVODogSWYgdGhlIFRTIHNlZ21lbnQgc21hbGxlciB0aGVuIHRoZSBidWZmZXIgc2l6ZSwgdGhlIGZpbGUgc2l6ZSBvZiB0aGUgc2VnbWVudCBpcyB1c2VkLiINCiAgICB9LA0KICAgICJidWZmZXJUaW1lb3V0IjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiVGltZW91dCBmb3IgbmV3IGNsaWVudCBjb25uZWN0aW9ucyIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiVGhlIHhUZVZlIGJ1ZmZlciB3YWl0cyB1bnRpbCBuZXcgY2xpZW50IGNvbm5lY3Rpb25zIGFyZSBlc3RhYmxpc2hlZC4gSGVscGZ1bCBmb3IgZmFzdCBjaGFubmVsIHN3aXRjaGluZy4gVmFsdWUgaW4gbWlsbGlzZWNvbmRzLiIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiMTAwIg0KICAgIH0sDQogICAgInVzZXJBZ2VudCI6DQogICAgew0KICAgICAgInRpdGxlIjogIlVzZXIgQWdlbnQiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIlVzZXIgQWdlbnQgZm9yIEhUVFAgcmVxdWVzdHMuIEZvciBldmVyeSBIVFRQIGNvbm5lY3Rpb24sIHRoaXMgdmFsdWUgaXMgdXNlZCBmb3IgdGhlIHVzZXIgYWdlbnQuIFNob3VsZCBvbmx5IGJlIGNoYW5nZWQgaWYgeFRlVmUgaXMgYmxvY2tlZC4iLA0KICAgICAgInBsYWNlaG9sZGVyIjogInhUZVZlIg0KICAgIH0sDQogICAgImJhY2t1cFBhdGgiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJMb2NhdGlvbiBmb3IgYXV0b21hdGljIGJhY2t1cHMiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIi9tbnQvZGF0YS9iYWNrdXAveHRldmUvIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJCZWZvcmUgYW55IHVwZGF0ZSBvZiB0aGUgcHJvdmlkZXIgZGF0YSBieSB0aGUgc2NoZWR1bGUsIHhUZVZlIGNyZWF0ZXMgYSBiYWNrdXAuIFRoZSBwYXRoIGZvciB0aGUgYXV0b21hdGljIGJhY2t1cHMgY2FuIGJlIGNoYW5nZWQuIHhUZVZlIHJlcXVpcmVzIHdyaXRlIHBlcm1pc3Npb24gZm9yIHRoaXMgZm9sZGVyLiINCiAgICB9LA0KICAgICJ0ZW1wUGF0aCI6DQogICAgew0KICAgICAgInRpdGxlIjogIkxvY2F0aW9uIGZvciB0aGUgdGVtcG9yYXJ5IGZpbGVzIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIvdG1wL3h0ZXZlLyIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiTG9jYXRpb24gZm9yIHRoZSBidWZmZXIgZmlsZXMuIg0KICAgIH0sDQogICAgImJhY2t1cEtlZXAiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJOdW1iZXIgb2YgYmFja3VwcyB0byBrZWVwIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJOdW1iZXIgb2YgYmFja3VwcyB0byBrZWVwLiBPbGRlciBiYWNrdXBzIGFyZSBhdXRvbWF0aWNhbGx5IGRlbGV0ZWQuIg0KICAgIH0sDQogICAgImF1dGhlbnRpY2F0aW9uV0VCIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiV0VCIEF1dGhlbnRpY2F0aW9uIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJBY2Nlc3MgdG8gdGhlIHdlYiBpbnRlcmZhY2Ugb25seSBwb3NzaWJsZSB3aXRoIGNyZWRlbnRpYWxzLiINCiAgICB9LA0KICAgICJhdXRoZW50aWNhdGlvblBNUyI6DQogICAgew0KICAgICAgInRpdGxlIjogIlBNUyBBdXRoZW50aWNhdGlvbiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiUGxleCByZXF1ZXN0cyBhcmUgb25seSBwb3NzaWJsZSB3aXRoIGF1dGhlbnRpY2F0aW9uLiA8YnI+PGI+V2FybmluZyEhITwvYj4gQWZ0ZXIgYWN0aXZhdGluZyB0aGlzIGZ1bmN0aW9uIHhUZVZlIG11c3QgYmUgZGVsZXRlIGluIHRoZSBQTVMgRFZSIHNldHRpbmdzIGFuZCBzZXQgdXAgYWdhaW4uIg0KICAgIH0sDQogICAgImF1dGhlbnRpY2F0aW9uTTNVIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiTTNVIEF1dGhlbnRpY2F0aW9uIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJEb3dubG9hZGluZyB0aGUgeHRldmUubTN1IGZpbGUgdmlhIGFuIEhUVFAgcmVxdWVzdCBpcyBvbmx5IHBvc3NpYmxlIHdpdGggYXV0aGVudGljYXRpb24uIg0KICAgIH0sDQogICAgImF1dGhlbnRpY2F0aW9uWE1MIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiWE1MIEF1dGhlbnRpY2F0aW9uIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJEb3dubG9hZGluZyB0aGUgeHRldmUueG1sIGZpbGUgdmlhIGFuIEhUVFAgcmVxdWVzdCBpcyBvbmx5IHBvc3NpYmxlIHdpdGggYXV0aGVudGljYXRpb24iDQogICAgfSwNCiAgICAiYXV0aGVudGljYXRpb25BUEkiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJBUEkgQXV0aGVudGljYXRpb24iLA0KICAgICAgImRlc2NyaXB0aW9uIjogIkFjY2VzcyB0byB0aGUgQVBJIGludGVyZmFjZSBpcyBvbmx5IHBvc3NpYmxlIHdpdGggYXV0aGVudGljYXRpb24uIg0KICAgIH0NCiAgfSwNCiAgIndpemFyZCI6DQogIHsNCiAgICAiZXBnU291cmNlIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiRVBHIFNvdXJjZSIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiUE1TOjxicj4tIFVzZSBFUEcgZGF0YSBmcm9tIFBsZXggb3IgRW1ieSA8YnI+PGJyPlhFUEc6PGJyPi0gVXNlIG9mIG9uZSBvciBtb3JlIFhNTFRWIGZpbGVzPGJyPi0gQ2hhbm5lbCBtYW5hZ2VtZW50PGJyPi0gTTNVIC8gWE1MVFYgZXhwb3J0IChIVFRQIGxpbmsgZm9yIElQVFYgYXBwcykiDQogICAgfSwNCiAgICAidHVuZXIiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJOdW1iZXIgb2YgdHVuZXJzIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJOdW1iZXIgb2YgcGFyYWxsZWwgY29ubmVjdGlvbnMgdGhhdCBjYW4gYmUgZXN0YWJsaXNoZWQgdG8gdGhlIHByb3ZpZGVyLjxicj5BdmFpbGFibGUgZm9yOiBQbGV4LCBFbWJ5IChIREhSKSwgTTNVICh3aXRoIGFjdGl2ZSBidWZmZXIpLjxicj5BZnRlciBhIGNoYW5nZSwgeFRlVmUgbXVzdCBiZSBkZWxldGUgaW4gdGhlIFBsZXggLyBFbWJ5IERWUiBzZXR0aW5ncyBhbmQgc2V0IHVwIGFnYWluLiINCiAgICB9LA0KICAgICJtM3UiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJNM1UgUGxheWxpc3QiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIkZpbGUgcGF0aCBvciBVUkwgb2YgdGhlIE0zVSIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiTG9jYWwgb3IgcmVtb3RlIHBsYXlsaXN0cyINCiAgICB9LA0KICAgICJ4bWx0diI6DQogICAgew0KICAgICAgInRpdGxlIjogIlhNTFRWIEZpbGUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIkZpbGUgcGF0aCBvciBVUkwgb2YgdGhlIFhNTFRWIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJMb2NhbCBvciByZW1vdGUgWE1MVFYgZmlsZSINCiAgICB9DQogIH0sDQogICJsb2dpbiI6DQogIHsNCiAgICAiZmFpbGVkIjogIlVzZXIgYXV0aGVudGljYXRpb24gZmFpbGVkIiwNCiAgICAiaGVhZGxpbmUiOiAiTG9naW4iLA0KICAgICJ1c2VybmFtZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIlVzZXJuYW1lIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJVc2VybmFtZSINCiAgICB9LA0KICAgICJwYXNzd29yZCI6DQogICAgew0KICAgICAgInRpdGxlIjogIlBhc3N3b3JkIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJQYXNzd29yZCINCiAgICB9DQogIH0sDQogICJhY2NvdW50IjoNCiAgew0KICAgICJmYWlsZWQiOiAiUGFzc3dvcmQgZG9lcyBub3QgbWF0Y2giLA0KICAgICJoZWFkbGluZSI6ICJDcmVhdGUgdXNlciBhY2NvdW50IiwNCiAgICAidXNlcm5hbWUiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJVc2VybmFtZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiVXNlcm5hbWUiDQogICAgfSwNCiAgICAicGFzc3dvcmQiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJQYXNzd29yZCIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiUGFzc3dvcmQiDQogICAgfSwNCiAgICAiY29uZmlybSI6DQogICAgew0KICAgICAgInRpdGxlIjogIkNvbmZpcm0iLA0KICAgICAgInBsYWNlaG9sZGVyIjogIkNvbmZpcm0iDQogICAgfQ0KICB9DQp9" + webUI["html/js/network_ts.js"] = "Y2xhc3MgU2VydmVyIHsNCiAgICBjb25zdHJ1Y3RvcihjbWQpIHsNCiAgICAgICAgdGhpcy5jbWQgPSBjbWQ7DQogICAgfQ0KICAgIHJlcXVlc3QoZGF0YSkgew0KICAgICAgICBpZiAoU0VSVkVSX0NPTk5FQ1RJT04gPT0gdHJ1ZSkgew0KICAgICAgICAgICAgcmV0dXJuOw0KICAgICAgICB9DQogICAgICAgIFNFUlZFUl9DT05ORUNUSU9OID0gdHJ1ZTsNCiAgICAgICAgaWYgKHRoaXMuY21kICE9ICJ1cGRhdGVMb2ciKSB7DQogICAgICAgICAgICBzaG93RWxlbWVudCgibG9hZGluZyIsIHRydWUpOw0KICAgICAgICAgICAgVU5ETyA9IG5ldyBPYmplY3QoKTsNCiAgICAgICAgfQ0KICAgICAgICBzd2l0Y2ggKHdpbmRvdy5sb2NhdGlvbi5wcm90b2NvbCkgew0KICAgICAgICAgICAgY2FzZSAiaHR0cDoiOg0KICAgICAgICAgICAgICAgIHRoaXMucHJvdG9jb2wgPSAid3M6Ly8iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiaHR0cHM6IjoNCiAgICAgICAgICAgICAgICB0aGlzLnByb3RvY29sID0gIndzczovLyI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIH0NCiAgICAgICAgdmFyIHVybCA9IHRoaXMucHJvdG9jb2wgKyB3aW5kb3cubG9jYXRpb24uaG9zdG5hbWUgKyAiOiIgKyB3aW5kb3cubG9jYXRpb24ucG9ydCArICIvZGF0YS8iICsgIj9Ub2tlbj0iICsgZ2V0Q29va2llKCJUb2tlbiIpOw0KICAgICAgICBkYXRhWyJjbWQiXSA9IHRoaXMuY21kOw0KICAgICAgICB2YXIgd3MgPSBuZXcgV2ViU29ja2V0KHVybCk7DQogICAgICAgIHdzLm9ub3BlbiA9IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgICAgIFdTX0FWQUlMQUJMRSA9IHRydWU7DQogICAgICAgICAgICB0aGlzLnNlbmQoSlNPTi5zdHJpbmdpZnkoZGF0YSkpOw0KICAgICAgICB9Ow0KICAgICAgICB3cy5vbmVycm9yID0gZnVuY3Rpb24gKHdzRXJyRXZ0KSB7DQogICAgICAgICAgICBjb25zb2xlLmxvZygiTm8gd2Vic29ja2V0IGNvbm5lY3Rpb24gdG8geFRlVmUgY291bGQgYmUgZXN0YWJsaXNoZWQuIENoZWNrIHlvdXIgbmV0d29yayBjb25maWd1cmF0aW9uLiIpOw0KICAgICAgICAgICAgU0VSVkVSX0NPTk5FQ1RJT04gPSBmYWxzZTsNCiAgICAgICAgICAgIGlmIChXU19BVkFJTEFCTEUgPT0gZmFsc2UpIHsNCiAgICAgICAgICAgICAgICBhbGVydCgiTm8gd2Vic29ja2V0IGNvbm5lY3Rpb24gdG8geFRlVmUgY291bGQgYmUgZXN0YWJsaXNoZWQuIENoZWNrIHlvdXIgbmV0d29yayBjb25maWd1cmF0aW9uLiIpOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9Ow0KICAgICAgICB3cy5vbm1lc3NhZ2UgPSBmdW5jdGlvbiAod3NNZXNzYWdlRXZ0KSB7DQogICAgICAgICAgICBTRVJWRVJfQ09OTkVDVElPTiA9IGZhbHNlOw0KICAgICAgICAgICAgc2hvd0VsZW1lbnQoImxvYWRpbmciLCBmYWxzZSk7DQogICAgICAgICAgICBjb25zdCByZXNwb25zZSA9IEpTT04ucGFyc2Uod3NNZXNzYWdlRXZ0LmRhdGEpOw0KICAgICAgICAgICAgaWYgKHJlc3BvbnNlLmhhc093blByb3BlcnR5KCJ0b2tlbiIpKSB7DQogICAgICAgICAgICAgICAgZG9jdW1lbnQuY29va2llID0gIlRva2VuPSIgKyByZXNwb25zZVsidG9rZW4iXTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGlmIChyZXNwb25zZVsic3RhdHVzIl0gPT0gZmFsc2UpIHsNCiAgICAgICAgICAgICAgICBhbGVydChyZXNwb25zZVsiZXJyIl0pOw0KICAgICAgICAgICAgICAgIHJldHVybjsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGlmIChyZXNwb25zZS5oYXNPd25Qcm9wZXJ0eSgnb3BlbkxpbmsnKSkgew0KICAgICAgICAgICAgICAgIHdpbmRvdy5sb2NhdGlvbiA9IHJlc3BvbnNlWydvcGVuTGluayddOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgaWYgKHJlc3BvbnNlLmhhc093blByb3BlcnR5KCJyZWxvYWQiKSkgew0KICAgICAgICAgICAgICAgIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGlmIChyZXNwb25zZS5oYXNPd25Qcm9wZXJ0eSgiYWxlcnQiKSkgew0KICAgICAgICAgICAgICAgIGFsZXJ0KHJlc3BvbnNlWyJhbGVydCJdKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGlmIChyZXNwb25zZS5oYXNPd25Qcm9wZXJ0eSgibG9nb1VSTCIpKSB7DQogICAgICAgICAgICAgICAgdmFyIGRpdiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjaGFubmVsLWljb24iKTsNCiAgICAgICAgICAgICAgICBkaXYudmFsdWUgPSByZXNwb25zZVsibG9nb1VSTCJdOw0KICAgICAgICAgICAgICAgIGRpdi5jbGFzc05hbWUgPSAiY2hhbmdlZCI7DQogICAgICAgICAgICAgICAgcmV0dXJuOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgc3dpdGNoIChkYXRhWyJjbWQiXSkgew0KICAgICAgICAgICAgICAgIGNhc2UgInVwZGF0ZUxvZyI6DQogICAgICAgICAgICAgICAgICAgIFNFUlZFUlsibG9nIl0gPSByZXNwb25zZVsibG9nIl07DQogICAgICAgICAgICAgICAgICAgIGlmIChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29udGVudF9sb2ciKSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgc2hvd0xvZ3MoZmFsc2UpOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIHJldHVybjsNCiAgICAgICAgICAgICAgICBkZWZhdWx0Og0KICAgICAgICAgICAgICAgICAgICBTRVJWRVIgPSBuZXcgT2JqZWN0KCk7DQogICAgICAgICAgICAgICAgICAgIFNFUlZFUiA9IHJlc3BvbnNlOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGlmIChyZXNwb25zZS5oYXNPd25Qcm9wZXJ0eSgib3Blbk1lbnUiKSkgew0KICAgICAgICAgICAgICAgIHZhciBtZW51ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQocmVzcG9uc2VbIm9wZW5NZW51Il0pOw0KICAgICAgICAgICAgICAgIG1lbnUuY2xpY2soKTsNCiAgICAgICAgICAgICAgICBzaG93RWxlbWVudCgicG9wdXAiLCBmYWxzZSk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBpZiAocmVzcG9uc2UuaGFzT3duUHJvcGVydHkoInJlbG9hZCIpKSB7DQogICAgICAgICAgICAgICAgbG9jYXRpb24ucmVsb2FkKCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBpZiAocmVzcG9uc2UuaGFzT3duUHJvcGVydHkoIndpemFyZCIpKSB7DQogICAgICAgICAgICAgICAgY3JlYXRlTGF5b3V0KCk7DQogICAgICAgICAgICAgICAgY29uZmlndXJhdGlvbldpemFyZFtyZXNwb25zZVsid2l6YXJkIl1dLmNyZWF0ZVdpemFyZCgpOw0KICAgICAgICAgICAgICAgIHJldHVybjsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGNyZWF0ZUxheW91dCgpOw0KICAgICAgICB9Ow0KICAgIH0NCn0NCmZ1bmN0aW9uIGdldENvb2tpZShuYW1lKSB7DQogICAgdmFyIHZhbHVlID0gIjsgIiArIGRvY3VtZW50LmNvb2tpZTsNCiAgICB2YXIgcGFydHMgPSB2YWx1ZS5zcGxpdCgiOyAiICsgbmFtZSArICI9Iik7DQogICAgaWYgKHBhcnRzLmxlbmd0aCA9PSAyKSB7DQogICAgICAgIHJldHVybiBwYXJ0cy5wb3AoKS5zcGxpdCgiOyIpLnNoaWZ0KCk7DQogICAgfQ0KfQ0K" + webUI["html/js/settings_ts.js"] = "Y2xhc3MgU2V0dGluZ3NDYXRlZ29yeSB7DQogICAgY29uc3RydWN0b3IoKSB7DQogICAgICAgIHRoaXMuRG9jdW1lbnRJRCA9ICJjb250ZW50X3NldHRpbmdzIjsNCiAgICB9DQogICAgY3JlYXRlQ2F0ZWdvcnlIZWFkbGluZSh2YWx1ZSkgew0KICAgICAgICB2YXIgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIkg0Iik7DQogICAgICAgIGVsZW1lbnQuaW5uZXJIVE1MID0gdmFsdWU7DQogICAgICAgIHJldHVybiBlbGVtZW50Ow0KICAgIH0NCiAgICBjcmVhdGVIUigpIHsNCiAgICAgICAgdmFyIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJIUiIpOw0KICAgICAgICByZXR1cm4gZWxlbWVudDsNCiAgICB9DQogICAgY3JlYXRlU2V0dGluZ3Moc2V0dGluZ3NLZXkpIHsNCiAgICAgICAgdmFyIHNldHRpbmcgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJUUiIpOw0KICAgICAgICB2YXIgY29udGVudCA9IG5ldyBQb3B1cENvbnRlbnQoKTsNCiAgICAgICAgdmFyIGRhdGEgPSBTRVJWRVJbInNldHRpbmdzIl1bc2V0dGluZ3NLZXldOw0KICAgICAgICBzd2l0Y2ggKHNldHRpbmdzS2V5KSB7DQogICAgICAgICAgICAvLyBUZXh0IGlucHV0cw0KICAgICAgICAgICAgY2FzZSAidXBkYXRlIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLnVwZGF0ZS50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsICJ1cGRhdGUiLCBkYXRhLnRvU3RyaW5nKCkpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3suc2V0dGluZ3MudXBkYXRlLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJiYWNrdXAucGF0aCI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5iYWNrdXBQYXRoLnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgImJhY2t1cC5wYXRoIiwgZGF0YSk7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5zZXR0aW5ncy5iYWNrdXBQYXRoLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ0ZW1wLnBhdGgiOg0KICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MudGVtcFBhdGgudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCAidGVtcC5wYXRoIiwgZGF0YSk7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5zZXR0aW5ncy50bXBQYXRoLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ1c2VyLmFnZW50IjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLnVzZXJBZ2VudC50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsICJ1c2VyLmFnZW50IiwgZGF0YSk7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5zZXR0aW5ncy51c2VyQWdlbnQucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImJ1ZmZlci50aW1lb3V0IjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmJ1ZmZlclRpbWVvdXQudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCAiYnVmZmVyLnRpbWVvdXQiLCBkYXRhKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnNldHRpbmdzLmJ1ZmZlclRpbWVvdXQucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImZmbXBlZy5wYXRoIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmZmbXBlZ1BhdGgudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCAiZmZtcGVnLnBhdGgiLCBkYXRhKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnNldHRpbmdzLmZmbXBlZ1BhdGgucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImZmbXBlZy5vcHRpb25zIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmZmbXBlZ09wdGlvbnMudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCAiZmZtcGVnLm9wdGlvbnMiLCBkYXRhKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnNldHRpbmdzLmZmbXBlZ09wdGlvbnMucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInZsYy5wYXRoIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLnZsY1BhdGgudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCAidmxjLnBhdGgiLCBkYXRhKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnNldHRpbmdzLnZsY1BhdGgucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInZsYy5vcHRpb25zIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLnZsY09wdGlvbnMudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCAidmxjLm9wdGlvbnMiLCBkYXRhKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnNldHRpbmdzLnZsY09wdGlvbnMucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIC8vIENoZWNrYm94ZXMNCiAgICAgICAgICAgIGNhc2UgInRsc01vZGUiOg0KICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MudGxzTW9kZS50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChzZXR0aW5nc0tleSk7DQogICAgICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGE7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiYXV0aGVudGljYXRpb24ud2ViIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmF1dGhlbnRpY2F0aW9uV0VCLnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KHNldHRpbmdzS2V5KTsNCiAgICAgICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJhdXRoZW50aWNhdGlvbi5wbXMiOg0KICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MuYXV0aGVudGljYXRpb25QTVMudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goc2V0dGluZ3NLZXkpOw0KICAgICAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImF1dGhlbnRpY2F0aW9uLm0zdSI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5hdXRoZW50aWNhdGlvbk0zVS50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChzZXR0aW5nc0tleSk7DQogICAgICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGE7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiYXV0aGVudGljYXRpb24ueG1sIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmF1dGhlbnRpY2F0aW9uWE1MLnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KHNldHRpbmdzS2V5KTsNCiAgICAgICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJhdXRoZW50aWNhdGlvbi5hcGkiOg0KICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MuYXV0aGVudGljYXRpb25BUEkudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goc2V0dGluZ3NLZXkpOw0KICAgICAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImZpbGVzLnVwZGF0ZSI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5maWxlc1VwZGF0ZS50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChzZXR0aW5nc0tleSk7DQogICAgICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGE7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiY2FjaGUuaW1hZ2VzIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmNhY2hlSW1hZ2VzLnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KHNldHRpbmdzS2V5KTsNCiAgICAgICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ4ZXBnLnJlcGxhY2UubWlzc2luZy5pbWFnZXMiOg0KICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MucmVwbGFjZUVtcHR5SW1hZ2VzLnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KHNldHRpbmdzS2V5KTsNCiAgICAgICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ4dGV2ZUF1dG9VcGRhdGUiOg0KICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MueHRldmVBdXRvVXBkYXRlLnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KHNldHRpbmdzS2V5KTsNCiAgICAgICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJhcGkiOg0KICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MuYXBpLnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KHNldHRpbmdzS2V5KTsNCiAgICAgICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAvLyBTZWxlY3QNCiAgICAgICAgICAgIGNhc2UgImhvc3RJUCI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5ob3N0SVAudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciB0ZXh0ID0gU0VSVkVSWyJpcEFkZHJlc3Nlc1Y0SG9zdCJdOw0KICAgICAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBTRVJWRVJbImlwQWRkcmVzc2VzVjRIb3N0Il07DQogICAgICAgICAgICAgICAgdmFyIHNlbGVjdCA9IGNvbnRlbnQuY3JlYXRlU2VsZWN0KHRleHQsIHZhbHVlcywgZGF0YSwgc2V0dGluZ3NLZXkpOw0KICAgICAgICAgICAgICAgIHNlbGVjdC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChzZWxlY3QpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAidHVuZXIiOg0KICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MudHVuZXIudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciB0ZXh0ID0gbmV3IEFycmF5KCk7DQogICAgICAgICAgICAgICAgdmFyIHZhbHVlcyA9IG5ldyBBcnJheSgpOw0KICAgICAgICAgICAgICAgIGZvciAodmFyIGkgPSAxOyBpIDw9IDEwMDsgaSsrKSB7DQogICAgICAgICAgICAgICAgICAgIHRleHQucHVzaChpKTsNCiAgICAgICAgICAgICAgICAgICAgdmFsdWVzLnB1c2goaSk7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIHZhciBzZWxlY3QgPSBjb250ZW50LmNyZWF0ZVNlbGVjdCh0ZXh0LCB2YWx1ZXMsIGRhdGEsIHNldHRpbmdzS2V5KTsNCiAgICAgICAgICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQoc2VsZWN0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImVwZ1NvdXJjZSI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5lcGdTb3VyY2UudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciB0ZXh0ID0gWyJQTVMiLCAiWEVQRyJdOw0KICAgICAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBbIlBNUyIsICJYRVBHIl07DQogICAgICAgICAgICAgICAgdmFyIHNlbGVjdCA9IGNvbnRlbnQuY3JlYXRlU2VsZWN0KHRleHQsIHZhbHVlcywgZGF0YSwgc2V0dGluZ3NLZXkpOw0KICAgICAgICAgICAgICAgIHNlbGVjdC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChzZWxlY3QpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiYmFja3VwLmtlZXAiOg0KICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MuYmFja3VwS2VlcC50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIHRleHQgPSBbIjUiLCAiMTAiLCAiMjAiLCAiMzAiLCAiNDAiLCAiNTAiXTsNCiAgICAgICAgICAgICAgICB2YXIgdmFsdWVzID0gWyI1IiwgIjEwIiwgIjIwIiwgIjMwIiwgIjQwIiwgIjUwIl07DQogICAgICAgICAgICAgICAgdmFyIHNlbGVjdCA9IGNvbnRlbnQuY3JlYXRlU2VsZWN0KHRleHQsIHZhbHVlcywgZGF0YSwgc2V0dGluZ3NLZXkpOw0KICAgICAgICAgICAgICAgIHNlbGVjdC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChzZWxlY3QpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiYnVmZmVyLnNpemUua2IiOg0KICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MuYnVmZmVyU2l6ZS50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIHRleHQgPSBbIjAuNSBNQiIsICIxIE1CIiwgIjIgTUIiLCAiMyBNQiIsICI0IE1CIiwgIjUgTUIiLCAiNiBNQiIsICI3IE1CIiwgIjggTUIiXTsNCiAgICAgICAgICAgICAgICB2YXIgdmFsdWVzID0gWyI1MTIiLCAiMTAyNCIsICIyMDQ4IiwgIjMwNzIiLCAiNDA5NiIsICI1MTIwIiwgIjYxNDQiLCAiNzE2OCIsICI4MTkyIl07DQogICAgICAgICAgICAgICAgdmFyIHNlbGVjdCA9IGNvbnRlbnQuY3JlYXRlU2VsZWN0KHRleHQsIHZhbHVlcywgZGF0YSwgc2V0dGluZ3NLZXkpOw0KICAgICAgICAgICAgICAgIHNlbGVjdC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChzZWxlY3QpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiYnVmZmVyIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLnN0cmVhbUJ1ZmZlcmluZy50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIHRleHQgPSBbInt7LnNldHRpbmdzLnN0cmVhbUJ1ZmZlcmluZy5pbmZvX2ZhbHNlfX0iLCAieFRlVmU6ICh7ey5zZXR0aW5ncy5zdHJlYW1CdWZmZXJpbmcuaW5mb194dGV2ZX19KSIsICJGRm1wZWc6ICh7ey5zZXR0aW5ncy5zdHJlYW1CdWZmZXJpbmcuaW5mb19mZm1wZWd9fSkiLCAiVkxDOiAoe3suc2V0dGluZ3Muc3RyZWFtQnVmZmVyaW5nLmluZm9fdmxjfX0pIl07DQogICAgICAgICAgICAgICAgdmFyIHZhbHVlcyA9IFsiLSIsICJ4dGV2ZSIsICJmZm1wZWciLCAidmxjIl07DQogICAgICAgICAgICAgICAgdmFyIHNlbGVjdCA9IGNvbnRlbnQuY3JlYXRlU2VsZWN0KHRleHQsIHZhbHVlcywgZGF0YSwgc2V0dGluZ3NLZXkpOw0KICAgICAgICAgICAgICAgIHNlbGVjdC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChzZWxlY3QpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAidWRweHkiOg0KICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MudWRweHkudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCAidWRweHkiLCBkYXRhKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnNldHRpbmdzLnVkcHh5LnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIH0NCiAgICAgICAgcmV0dXJuIHNldHRpbmc7DQogICAgfQ0KICAgIGNyZWF0ZURlc2NyaXB0aW9uKHNldHRpbmdzS2V5KSB7DQogICAgICAgIHZhciBkZXNjcmlwdGlvbiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlRSIik7DQogICAgICAgIHZhciB0ZXh0Ow0KICAgICAgICBzd2l0Y2ggKHNldHRpbmdzS2V5KSB7DQogICAgICAgICAgICBjYXNlICJ0bHNNb2RlIjoNCiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLnRsc01vZGUuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJhdXRoZW50aWNhdGlvbi53ZWIiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MuYXV0aGVudGljYXRpb25XRUIuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJhdXRoZW50aWNhdGlvbi5tM3UiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MuYXV0aGVudGljYXRpb25NM1UuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJhdXRoZW50aWNhdGlvbi5wbXMiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MuYXV0aGVudGljYXRpb25QTVMuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJhdXRoZW50aWNhdGlvbi54bWwiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MuYXV0aGVudGljYXRpb25YTUwuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJhdXRoZW50aWNhdGlvbi5hcGkiOg0KICAgICAgICAgICAgICAgIGlmIChTRVJWRVJbInNldHRpbmdzIl1bImF1dGhlbnRpY2F0aW9uLndlYiJdID09IHRydWUpIHsNCiAgICAgICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5hdXRoZW50aWNhdGlvbkFQSS5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ4dGV2ZUF1dG9VcGRhdGUiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MueHRldmVBdXRvVXBkYXRlLmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiYmFja3VwLmtlZXAiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MuYmFja3VwS2VlcC5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImJhY2t1cC5wYXRoIjoNCiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLmJhY2t1cFBhdGguZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ0ZW1wLnBhdGgiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MudGVtcFBhdGguZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJidWZmZXIiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3Muc3RyZWFtQnVmZmVyaW5nLmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiYnVmZmVyLnNpemUua2IiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MuYnVmZmVyU2l6ZS5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImJ1ZmZlci50aW1lb3V0IjoNCiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLmJ1ZmZlclRpbWVvdXQuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ1c2VyLmFnZW50IjoNCiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLnVzZXJBZ2VudC5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImZmbXBlZy5wYXRoIjoNCiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLmZmbXBlZ1BhdGguZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJmZm1wZWcub3B0aW9ucyI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5mZm1wZWdPcHRpb25zLmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAidmxjLnBhdGgiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MudmxjUGF0aC5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInZsYy5vcHRpb25zIjoNCiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLnZsY09wdGlvbnMuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJlcGdTb3VyY2UiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MuZXBnU291cmNlLmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiaG9zdElQIjoNCiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLmhvc3RJUC5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInR1bmVyIjoNCiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLnR1bmVyLmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAidXBkYXRlIjoNCiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLnVwZGF0ZS5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImFwaSI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5hcGkuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJmaWxlcy51cGRhdGUiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MuZmlsZXNVcGRhdGUuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJjYWNoZS5pbWFnZXMiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MuY2FjaGVJbWFnZXMuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ4ZXBnLnJlcGxhY2UubWlzc2luZy5pbWFnZXMiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MucmVwbGFjZUVtcHR5SW1hZ2VzLmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAidWRweHkiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MudWRweHkuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBkZWZhdWx0Og0KICAgICAgICAgICAgICAgIHRleHQgPSAiIjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgfQ0KICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICIiOw0KICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgIHZhciBwcmUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJQUkUiKTsNCiAgICAgICAgcHJlLmlubmVySFRNTCA9IHRleHQ7DQogICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQocHJlKTsNCiAgICAgICAgZGVzY3JpcHRpb24uYXBwZW5kQ2hpbGQodGRMZWZ0KTsNCiAgICAgICAgZGVzY3JpcHRpb24uYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgIHJldHVybiBkZXNjcmlwdGlvbjsNCiAgICB9DQp9DQpjbGFzcyBTZXR0aW5nc0NhdGVnb3J5SXRlbSBleHRlbmRzIFNldHRpbmdzQ2F0ZWdvcnkgew0KICAgIGNvbnN0cnVjdG9yKGhlYWRsaW5lLCBzZXR0aW5nc0tleXMpIHsNCiAgICAgICAgc3VwZXIoKTsNCiAgICAgICAgdGhpcy5oZWFkbGluZSA9IGhlYWRsaW5lOw0KICAgICAgICB0aGlzLnNldHRpbmdzS2V5cyA9IHNldHRpbmdzS2V5czsNCiAgICB9DQogICAgY3JlYXRlQ2F0ZWdvcnkoKSB7DQogICAgICAgIHZhciBoZWFkbGluZSA9IHRoaXMuY3JlYXRlQ2F0ZWdvcnlIZWFkbGluZSh0aGlzLmhlYWRsaW5lKTsNCiAgICAgICAgdmFyIHNldHRpbmdzS2V5cyA9IHRoaXMuc2V0dGluZ3NLZXlzOw0KICAgICAgICB2YXIgZG9jID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQodGhpcy5Eb2N1bWVudElEKTsNCiAgICAgICAgZG9jLmFwcGVuZENoaWxkKGhlYWRsaW5lKTsNCiAgICAgICAgLy8gQ3JlYXRlIGEgdGFibGUgZm9yIHRoZSBjYXRlZ29yeQ0KICAgICAgICB2YXIgdGFibGUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJUQUJMRSIpOw0KICAgICAgICB2YXIga2V5cyA9IHNldHRpbmdzS2V5cy5zcGxpdCgiLCIpOw0KICAgICAgICBrZXlzLmZvckVhY2goc2V0dGluZ3NLZXkgPT4gew0KICAgICAgICAgICAgc3dpdGNoIChzZXR0aW5nc0tleSkgew0KICAgICAgICAgICAgICAgIGNhc2UgImF1dGhlbnRpY2F0aW9uLnBtcyI6DQogICAgICAgICAgICAgICAgY2FzZSAiYXV0aGVudGljYXRpb24ubTN1IjoNCiAgICAgICAgICAgICAgICBjYXNlICJhdXRoZW50aWNhdGlvbi54bWwiOg0KICAgICAgICAgICAgICAgIGNhc2UgImF1dGhlbnRpY2F0aW9uLmFwaSI6DQogICAgICAgICAgICAgICAgICAgIGlmIChTRVJWRVJbInNldHRpbmdzIl1bImF1dGhlbnRpY2F0aW9uLndlYiJdID09IGZhbHNlKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICAgICAgICAgIHZhciBpdGVtID0gdGhpcy5jcmVhdGVTZXR0aW5ncyhzZXR0aW5nc0tleSk7DQogICAgICAgICAgICAgICAgICAgIHZhciBkZXNjcmlwdGlvbiA9IHRoaXMuY3JlYXRlRGVzY3JpcHRpb24oc2V0dGluZ3NLZXkpOw0KICAgICAgICAgICAgICAgICAgICB0YWJsZS5hcHBlbmRDaGlsZChpdGVtKTsNCiAgICAgICAgICAgICAgICAgICAgdGFibGUuYXBwZW5kQ2hpbGQoZGVzY3JpcHRpb24pOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfSk7DQogICAgICAgIGRvYy5hcHBlbmRDaGlsZCh0YWJsZSk7DQogICAgICAgIGRvYy5hcHBlbmRDaGlsZCh0aGlzLmNyZWF0ZUhSKCkpOw0KICAgIH0NCn0NCmZ1bmN0aW9uIHNob3dTZXR0aW5ncygpIHsNCiAgICBjb25zb2xlLmxvZygiU0VUVElOR1MiKTsNCiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHNldHRpbmdzQ2F0ZWdvcnkubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgc2V0dGluZ3NDYXRlZ29yeVtpXS5jcmVhdGVDYXRlZ29yeSgpOw0KICAgIH0NCn0NCmZ1bmN0aW9uIHNhdmVTZXR0aW5ncygpIHsNCiAgICBjb25zb2xlLmxvZygiU2F2ZSBTZXR0aW5ncyIpOw0KICAgIHZhciBjbWQgPSAic2F2ZVNldHRpbmdzIjsNCiAgICB2YXIgZGl2ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnRlbnRfc2V0dGluZ3MiKTsNCiAgICB2YXIgc2V0dGluZ3MgPSBkaXYuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSgiY2hhbmdlZCIpOw0KICAgIHZhciBuZXdTZXR0aW5ncyA9IG5ldyBPYmplY3QoKTsNCiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHNldHRpbmdzLmxlbmd0aDsgaSsrKSB7DQogICAgICAgIHZhciBuYW1lOw0KICAgICAgICB2YXIgdmFsdWU7DQogICAgICAgIHN3aXRjaCAoc2V0dGluZ3NbaV0udGFnTmFtZSkgew0KICAgICAgICAgICAgY2FzZSAiSU5QVVQiOg0KICAgICAgICAgICAgICAgIHN3aXRjaCAoc2V0dGluZ3NbaV0udHlwZSkgew0KICAgICAgICAgICAgICAgICAgICBjYXNlICJjaGVja2JveCI6DQogICAgICAgICAgICAgICAgICAgICAgICBuYW1lID0gc2V0dGluZ3NbaV0ubmFtZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlID0gc2V0dGluZ3NbaV0uY2hlY2tlZDsNCiAgICAgICAgICAgICAgICAgICAgICAgIG5ld1NldHRpbmdzW25hbWVdID0gdmFsdWU7DQogICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICAgICAgY2FzZSAidGV4dCI6DQogICAgICAgICAgICAgICAgICAgICAgICBuYW1lID0gc2V0dGluZ3NbaV0ubmFtZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlID0gc2V0dGluZ3NbaV0udmFsdWU7DQogICAgICAgICAgICAgICAgICAgICAgICBzd2l0Y2ggKG5hbWUpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYXNlICJ1cGRhdGUiOg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IHZhbHVlLnNwbGl0KCIsIik7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlID0gdmFsdWUuZmlsdGVyKGZ1bmN0aW9uIChlKSB7IHJldHVybiBlOyB9KTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAiYnVmZmVyLnRpbWVvdXQiOg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IHBhcnNlRmxvYXQodmFsdWUpOw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgbmV3U2V0dGluZ3NbbmFtZV0gPSB2YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgIlNFTEVDVCI6DQogICAgICAgICAgICAgICAgbmFtZSA9IHNldHRpbmdzW2ldLm5hbWU7DQogICAgICAgICAgICAgICAgdmFsdWUgPSBzZXR0aW5nc1tpXS52YWx1ZTsNCiAgICAgICAgICAgICAgICAvLyBJZiB0aGUgdmFsdWUgaXMgYSBudW1iZXIsIHN0b3JlIGl0IGFzIGEgbnVtYmVyDQogICAgICAgICAgICAgICAgaWYgKGlzTmFOKHZhbHVlKSkgew0KICAgICAgICAgICAgICAgICAgICBuZXdTZXR0aW5nc1tuYW1lXSA9IHZhbHVlOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICAgICAgbmV3U2V0dGluZ3NbbmFtZV0gPSBwYXJzZUludCh2YWx1ZSk7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICB9DQogICAgfQ0KICAgIHZhciBkYXRhID0gbmV3IE9iamVjdCgpOw0KICAgIGRhdGFbInNldHRpbmdzIl0gPSBuZXdTZXR0aW5nczsNCiAgICB2YXIgc2VydmVyID0gbmV3IFNlcnZlcihjbWQpOw0KICAgIHNlcnZlci5yZXF1ZXN0KGRhdGEpOw0KfQ0K" + webUI["html/lang/en.json"] = "ew0KICAibWFpbk1lbnUiOg0KICB7DQogICAgIml0ZW0iOg0KICAgIHsNCiAgICAgICJwbGF5bGlzdCI6ICJQbGF5bGlzdCIsDQogICAgICAicG1zSUQiOiAiUE1TIElEIiwNCiAgICAgICJmaWx0ZXIiOiAiRmlsdGVyIiwNCiAgICAgICJ4bWx0diI6ICJYTUxUViIsDQogICAgICAibWFwcGluZyI6ICJNYXBwaW5nIiwNCiAgICAgICJ1c2VycyI6ICJVc2VycyIsDQogICAgICAic2V0dGluZ3MiOiAiU2V0dGluZ3MiLA0KICAgICAgImxvZyI6ICJMb2ciLA0KICAgICAgImxvZ291dCI6ICJMb2dvdXQiDQogICAgfSwNCiAgICAiaGVhZGxpbmUiOg0KICAgIHsNCiAgICAgICJwbGF5bGlzdCI6ICJMb2NhbCBvciByZW1vdGUgcGxheWxpc3RzIiwNCiAgICAgICJmaWx0ZXIiOiAiRmlsdGVyIHBsYXlsaXN0IiwNCiAgICAgICJ4bWx0diI6ICJMb2NhbCBvciByZW1vdGUgWE1MVFYgZmlsZXMiLA0KICAgICAgIm1hcHBpbmciOiAiTWFwIHBsYXlsaXN0IGNoYW5uZWxzIHRvIEVQRyBjaGFubmVscyIsDQogICAgICAidXNlcnMiOiAiVXNlciBtYW5hZ2VtZW50IiwNCiAgICAgICJzZXR0aW5ncyI6ICJTZXR0aW5ncyIsDQogICAgICAibG9nIjogIkxvZyIsDQogICAgICAibG9nb3V0IjogIkxvZ291dCINCiAgICB9DQogIH0sDQogICJjb25maXJtIjoNCiAgew0KICAgICJyZXN0b3JlIjogIkFsbCBkYXRhIHdpbGwgYmUgcmVwbGFjZWQgd2l0aCB0aG9zZSBmcm9tIHRoZSBiYWNrdXAuIFNob3VsZCB0aGUgZmlsZXMgYmUgcmVzdG9yZWQ/Ig0KICB9LA0KICAiYWxlcnQiOg0KICB7DQogICAgImZpbGVMb2FkaW5nRXJyb3IiOiAiRmlsZSBjb3VsZG4ndCBiZSBsb2FkZWQiLA0KICAgICJpbnZhbGlkQ2hhbm5lbE51bWJlciI6ICJJbnZhbGlkIGNoYW5uZWwgbnVtYmVyIiwNCiAgICAibWlzc2luZ0lucHV0IjogIk1pc3NpbmcgaW5wdXQiDQogIH0sDQogICJidXR0b24iOg0KICB7DQogICAgImJhY2siOiAiQmFjayIsDQogICAgImJhY2t1cCI6ICJCYWNrdXAiLA0KICAgICJidWxrRWRpdCI6ICJCdWxrIEVkaXQiLA0KICAgICJjYW5jZWwiOiAiQ2FuY2VsIiwNCiAgICAiZGVsZXRlIjogIkRlbGV0ZSIsDQogICAgImRvbmUiOiAiRG9uZSIsDQogICAgImxvZ2luIjogIkxvZ2luIiwNCiAgICAibmV3IjogIk5ldyIsDQogICAgIm5leHQiOiAiTmV4dCIsDQogICAgInJlc3RvcmUiOiAiUmVzdG9yZSIsDQogICAgInNhdmUiOiAiU2F2ZSIsDQogICAgInNlYXJjaCI6ICJTZWFyY2giLA0KICAgICJ1cGRhdGUiOiAiVXBkYXRlIiwNCiAgICAiY3JhZXRlQWNjb3VudCI6ICJDcmVhdGUgQWNjb3VudCIsDQogICAgInJlc2V0TG9ncyI6ICJSZXNldCBMb2dzIiwNCiAgICAidXBsb2FkTG9nbyI6ICJVcGxvYWQgTG9nbyINCiAgfSwNCiAgImZpbHRlciI6DQogIHsNCiAgICAidGFibGUiOg0KICAgIHsNCiAgICAgICJzdGFydGluZ0NoYW5uZWwiOiAiU3RhcnRpbmcgQ2guIE5vLiIsDQogICAgICAibmFtZSI6ICJGaWx0ZXIgTmFtZSIsDQogICAgICAidHlwZSI6ICJGaWx0ZXIgVHlwZSIsDQogICAgICAiZmlsdGVyIjogIkZpbHRlciINCiAgICB9LA0KICAgICJjdXN0b20iOiAiQ3VzdG9tIiwNCiAgICAiZ3JvdXAiOiAiTTNVIEdyb3VwIiwNCiAgICAibmFtZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIkZpbHRlciBOYW1lIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJGaWx0ZXIgbmFtZSIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgImRlc2NyaXB0aW9uIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiRGVzY3JpcHRpb24iLA0KICAgICAgInBsYWNlaG9sZGVyIjogIkRlc2NyaXB0aW9uIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAidHlwZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIlR5cGUiLA0KICAgICAgImdyb3VwVGl0bGUiOiAiR3JvdXAgVGl0bGUiLA0KICAgICAgImN1c3RvbUZpbHRlciI6ICJDdXN0b20gRmlsdGVyIg0KICAgIH0sDQogICAgImNhc2VTZW5zaXRpdmUiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJDYXNlIFNlbnNpdGl2ZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAiZmlsdGVyUnVsZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIkZpbHRlciBSdWxlIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJTcG9ydCB7SER9ICF7RVMsSVR9IiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAiZmlsdGVyR3JvdXAiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJHcm91cCBUaXRsZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJTZWxlY3QgYSBNM1UgZ3JvdXAuIChDb3VudGVyKTxicj5DaGFuZ2luZyB0aGUgZ3JvdXAgdGl0bGUgaW4gdGhlIE0zVSBpbnZhbGlkYXRlcyB0aGUgZmlsdGVyLiINCiAgICB9LA0KICAgICJpbmNsdWRlIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiSW5jbHVkZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiRkhELFVIRCIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiQ2hhbm5lbCBuYW1lIG11c3QgaW5jbHVkZS48YnI+KENvbW1hIHNlcGFyYXRlZCkgQ29tbWEgbWVhbnMgb3IiDQogICAgfSwNCiAgICAiZXhjbHVkZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIkV4Y2x1ZGUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIkVTLElUIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJDaGFubmVsIG5hbWUgbXVzdCBub3QgY29udGFpbi48YnI+KENvbW1hIHNlcGFyYXRlZCkgQ29tbWEgbWVhbnMgb3IiDQogICAgfSwNCiAgICAicHJlc2VydmVNYXBwaW5nIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiUHJlc2VydmUgRXhpc3RpbmcgTTNVPGJyPkNoYW5uZWwgTnVtYmVycyIsDQogICAgICAicGFsY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJQcmVzZXJ2ZSBleGlzdGluZyBNM1UgcGxheWxpc3QgY2hhbm5lbCBudW1iZXJzPyINCiAgICB9LA0KICAgICJzdGFydGluZ0NoYW5uZWwiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJTdGFydGluZyBDaGFubmVsIE51bWJlciIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAiZGVmYXVsdE1pc3NpbmdFUEciOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJGaWxsIE1pc3NpbmcgRVBHIERhdGEiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiV2hlbiB0aGVyZSBpcyBubyBtYXRjaGluZyBFUEcgZGF0YSBmb3IgY2hhbm5lbCwgPGJyPmF1dG9maWxsIHdpdGggeFRlVmUgZHVtbXkgRVBHIGRhdGE/Ig0KICAgIH0NCg0KICB9LA0KICAicGxheWxpc3QiOg0KICB7DQogICAgInRhYmxlIjoNCiAgICB7DQogICAgICAicGxheWxpc3QiOiAiUGxheWxpc3QiLA0KICAgICAgInR1bmVyIjogIlR1bmVyIiwNCiAgICAgICJsYXN0VXBkYXRlIjogIkxhc3QgVXBkYXRlIiwNCiAgICAgICJhdmFpbGFiaWxpdHkiOiAiQXZhaWxhYmlsaXR5IiwNCiAgICAgICJ0eXBlIjogIlR5cGUiLA0KICAgICAgInN0cmVhbXMiOiAiU3RyZWFtcyIsDQogICAgICAiZ3JvdXBUaXRsZSI6ICJncm91cC10aXRsZSIsDQogICAgICAidHZnSUQiOiAidHZnLWlkIiwNCiAgICAgICJ1bmlxdWVJRCI6ICJVbmlxdWUgSUQiDQogICAgfSwNCiAgICAicGxheWxpc3RUeXBlIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiUGxheWxpc3QgdHlwZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAidHlwZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIlR5cGUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgIm5hbWUiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJOYW1lIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJQbGF5bGlzdCBuYW1lIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAiZGVzY3JpcHRpb24iOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJEZXNjcmlwdGlvbiIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiRGVzY3JpcHRpb24iLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJmaWxlTTNVIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiTTNVIEZpbGUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIkZpbGUgcGF0aCBvciBVUkwgb2YgdGhlIE0zVSIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgImZpbGVIREhSIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiSERIb21lUnVuIElQIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJJUCBhZGRyZXNzIGFuZCBwb3J0ICgxOTIuMTY4LjEuMTA6NTAwNCkiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJ0dW5lciI6DQogICAgew0KICAgICAgInRpdGxlIjogIlR1bmVyIC8gU3RyZWFtcyIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJOdW1iZXIgb2YgcGFyYWxsZWwgY29ubmVjdGlvbnMgdGhhdCBjYW4gYmUgZXN0YWJsaXNoZWQgdG8gdGhlIHByb3ZpZGVyLiA8YnI+T25seSBhdmFpbGFibGUgd2l0aCBhY3RpdmF0ZWQgYnVmZmVyLjxicj5OZXcgc2V0dGluZ3Mgd2lsbCBvbmx5IGJlIGFwcGxpZWQgYWZ0ZXIgcXVpdHRpbmcgYWxsIHN0cmVhbXMuIg0KICAgIH0NCiAgfSwNCiAgInhtbHR2IjoNCiAgew0KICAgICJ0YWJsZSI6DQogICAgew0KICAgICAgImd1aWRlIjogIkd1aWRlIiwNCiAgICAgICJsYXN0VXBkYXRlIjogIkxhc3QgVXBkYXRlIiwNCiAgICAgICJhdmFpbGFiaWxpdHkiOiAiQXZhaWxhYmlsaXR5IiwNCiAgICAgICJjaGFubmVscyI6ICJDaGFubmVscyIsDQogICAgICAicHJvZ3JhbXMiOiAiUHJvZ3JhbXMiDQogICAgfSwNCiAgICAibmFtZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIk5hbWUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIkd1aWRlIG5hbWUiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJkZXNjcmlwdGlvbiI6DQogICAgew0KICAgICAgInRpdGxlIjogIkRlc2NyaXB0aW9uIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJEZXNjcmlwdGlvbiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgImZpbGVYTUxUViI6DQogICAgew0KICAgICAgInRpdGxlIjogIlhNTFRWIEZpbGUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIkZpbGUgcGF0aCBvciBVUkwgb2YgdGhlIFhNTFRWIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfQ0KICB9LA0KICAibWFwcGluZyI6DQogIHsNCiAgICAidGFibGUiOg0KICAgIHsNCiAgICAgICJjaE5vIjogIkNoLiBOby4iLA0KICAgICAgImxvZ28iOiAiTG9nbyIsDQogICAgICAiY2hhbm5lbE5hbWUiOiAiQ2hhbm5lbCBOYW1lIiwNCiAgICAgICJwbGF5bGlzdCI6ICJQbGF5bGlzdCIsDQogICAgICAiZ3JvdXBUaXRsZSI6ICJHcm91cCBUaXRsZSIsDQogICAgICAieG1sdHZGaWxlIjogIlhNTFRWIEZpbGUiLA0KICAgICAgInhtbHR2SUQiOiAiWE1MVFYgSUQiLA0KICAgICAgInRpbWVzaGlmdCI6ICJUaW1lc2hpZnQiDQogICAgfSwNCiAgICAiYWN0aXZlIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiQWN0aXZlIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJjaGFubmVsTmFtZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIkNoYW5uZWwgTmFtZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAiZGVzY3JpcHRpb24iOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJDaGFubmVsIERlc2NyaXB0aW9uIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJVc2VkIGJ5IHRoZSBEdW1teSBhcyBhbiBYTUwgZGVzY3JpcHRpb24iLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJ1cGRhdGVDaGFubmVsTmFtZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIlVwZGF0ZSBDaGFubmVsIE5hbWUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgInVwZGF0ZUNoYW5uZWxHcm91cCI6DQogICAgew0KICAgICAgInRpdGxlIjogIlVwZGF0ZSBDaGFubmVsIEdyb3VwIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIklmIGNoZWNrZWQsIHVzZSBncm91cCBmcm9tIHRoZSBkYXRhYmFzZSINCiAgICB9LA0KICAgICJjaGFubmVsTG9nbyI6DQogICAgew0KICAgICAgInRpdGxlIjogIkxvZ28gVVJMIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJ1cGRhdGVDaGFubmVsTG9nbyI6DQogICAgew0KICAgICAgInRpdGxlIjogIlVwZGF0ZSBDaGFubmVsIExvZ28iLA0KICAgICAgInBsYWNlaG9sZGVyIjogIiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgImVwZ0NhdGVnb3J5IjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiRVBHIENhdGVnb3J5IiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJtM3VHcm91cFRpdGxlIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiR3JvdXAgVGl0bGUgKHh0ZXZlLm0zdSkiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgInhtbHR2RmlsZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIlhNTFRWIEZpbGUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgInhtbHR2Q2hhbm5lbCI6DQogICAgew0KICAgICAgInRpdGxlIjogIlhNTFRWIENoYW5uZWwiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgInRpbWVzaGlmdCI6DQogICAgew0KICAgICAgInRpdGxlIjogIlRpbWVzaGlmdCIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiMCIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0NCiAgfSwNCiAgInVzZXJzIjoNCiAgew0KICAgICJ0YWJsZSI6DQogICAgew0KICAgICAgInVzZXJuYW1lIjogIlVzZXJuYW1lIiwNCiAgICAgICJwYXNzd29yZCI6ICJQYXNzd29yZCIsDQogICAgICAid2ViIjogIldFQiIsDQogICAgICAicG1zIjogIlBNUyIsDQogICAgICAibTN1IjogIk0zVSIsDQogICAgICAieG1sIjogIlhNTCIsDQogICAgICAiYXBpIjogIkFQSSINCiAgICB9LA0KICAgICJ1c2VybmFtZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIlVzZXJuYW1lIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJVc2VybmFtZSIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgInBhc3N3b3JkIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiUGFzc3dvcmQiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIlBhc3N3b3JkIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAiY29uZmlybSI6DQogICAgew0KICAgICAgInRpdGxlIjogIkNvbmZpcm0iLA0KICAgICAgInBsYWNlaG9sZGVyIjogIlBhc3N3b3JkIGNvbmZpcm0iLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJ3ZWIiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJXZWIgQWNjZXNzIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJwbXMiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJQTVMgQWNjZXNzIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJtM3UiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJNM1UgQWNjZXNzIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJ4bWwiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJYTUwgQWNjZXNzIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJhcGkiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJBUEkgQWNjZXNzIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9DQogIH0sDQogICJzZXR0aW5ncyI6DQogIHsNCiAgICAiY2F0ZWdvcnkiOg0KICAgIHsNCiAgICAgICJnZW5lcmFsIjogIkdlbmVyYWwiLA0KICAgICAgImZpbGVzIjogIkZpbGVzIiwNCiAgICAgICJzdHJlYW1pbmciOiAiU3RyZWFtaW5nIiwNCiAgICAgICJiYWNrdXAiOiAiQmFja3VwIiwNCiAgICAgICJhdXRoZW50aWNhdGlvbiI6ICJBdXRoZW50aWNhdGlvbiINCiAgICB9LA0KICAgICJ1cGRhdGUiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJTY2hlZHVsZSBmb3IgdXBkYXRpbmcgKFBsYXlsaXN0LCBYTUxUViwgQmFja3VwKSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiMDAwMCwxMDAwLDIwMDAiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIlRpbWUgaW4gMjQgaG91ciBmb3JtYXQgKDA4MDAgPSA4OjAwIGFtKS4gTW9yZSB0aW1lcyBjYW4gYmUgZW50ZXJlZCBjb21tYSBzZXBhcmF0ZWQuIExlYXZlIHRoaXMgZmllbGQgZW1wdHkgaWYgbm8gdXBkYXRlcyBhcmUgdG8gYmUgY2FycmllZCBvdXQuIg0KICAgIH0sDQogICAgImFwaSI6DQogICAgew0KICAgICAgInRpdGxlIjogIkFQSSBJbnRlcmZhY2UiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIlZpYSBBUEkgaW50ZXJmYWNlIGl0IGlzIHBvc3NpYmxlIHRvIHNlbmQgY29tbWFuZHMgdG8geFRlVmUuIEFQSSBkb2N1bWVudGF0aW9uIGlzIDxhIGhyZWY9J2h0dHBzOi8vZ2l0aHViLmNvbS94dGV2ZS1wcm9qZWN0L3hUZVZlLURvY3VtZW50YXRpb24vYmxvYi9tYXN0ZXIvZW4vY29uZmlndXJhdGlvbi5tZCNhcGknPmhlcmU8L2E+Ig0KICAgIH0sDQogICAgImVwZ1NvdXJjZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIkVQRyBTb3VyY2UiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIlBNUzo8YnI+LSBVc2UgRVBHIGRhdGEgZnJvbSBQbGV4IG9yIEVtYnkgPGJyPjxicj5YRVBHOjxicj4tIFVzZSBvZiBvbmUgb3IgbW9yZSBYTUxUViBmaWxlczxicj4tIENoYW5uZWwgbWFuYWdlbWVudDxicj4tIE0zVSAvIFhNTFRWIGV4cG9ydCAoSFRUUCBsaW5rIGZvciBJUFRWIGFwcHMpIg0KICAgIH0sDQogICAgInR1bmVyIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiTnVtYmVyIG9mIFR1bmVycyIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiTnVtYmVyIG9mIHBhcmFsbGVsIGNvbm5lY3Rpb25zIHRoYXQgY2FuIGJlIGVzdGFibGlzaGVkIHRvIHRoZSBwcm92aWRlci48YnI+QXZhaWxhYmxlIGZvcjogUGxleCwgRW1ieSAoSERIUiksIE0zVSAod2l0aCBhY3RpdmUgYnVmZmVyKS48YnI+QWZ0ZXIgYSBjaGFuZ2UsIHhUZVZlIG11c3QgYmUgZGVsZXRlIGluIHRoZSBQbGV4IC8gRW1ieSBEVlIgc2V0dGluZ3MgYW5kIHNldCB1cCBhZ2Fpbi4iDQogICAgfSwNCiAgICAiaG9zdElQIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiSG9zdCBJUCIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiSVAgYWRkcmVzcyB4VGVWZSB3aWxsIHVzZSB0byBmb3JtIE0zVSBhbmQgWE1MVFYgZmlsZXMiDQogICAgfSwNCiAgICAidGxzTW9kZSI6IHsNCiAgICAgICJ0aXRsZSI6ICJUTFMgKEhUVFBTKSBtb2RlIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJDaGFuZ2VzIHdlYiBzZXJ2ZXIgcHJvdG9jb2wgdG8gSFRUUFMuPGJyPkZvciBkZXRhaWxzLCBzZWUgPGE+aHR0cHM6Ly9naXRodWIuY29tL1NDUDAwMi94VGVWZSN0bHMtbW9kZTwvYT4iDQogICAgfSwNCiAgICAiZmlsZXNVcGRhdGUiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJVcGRhdGVzIGFsbCBmaWxlcyBhdCBzdGFydHVwIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJVcGRhdGVzIGFsbCBwbGF5bGlzdHMsIHR1bmVyIGFuZCBYTUxUViBmaWxlcyBhdCBzdGFydHVwLiINCiAgICB9LA0KICAgICJjYWNoZUltYWdlcyI6DQogICAgew0KICAgICAgInRpdGxlIjogIkltYWdlIENhY2hpbmciLA0KICAgICAgImRlc2NyaXB0aW9uIjogIkFsbCBpbWFnZXMgZnJvbSB0aGUgWE1MVFYgZmlsZSBhcmUgY2FjaGVkLCBhbGxvd2luZyBmYXN0ZXIgcmVuZGVyaW5nIG9mIHRoZSBncmlkIGluIHRoZSBjbGllbnQuPGJyPkRvd25sb2FkaW5nIHRoZSBpbWFnZXMgbWF5IHRha2UgYSB3aGlsZSBhbmQgd2lsbCBiZSBkb25lIGluIHRoZSBiYWNrZ3JvdW5kLiINCiAgICB9LA0KICAgICJyZXBsYWNlRW1wdHlJbWFnZXMiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJSZXBsYWNlIG1pc3NpbmcgcHJvZ3JhbSBpbWFnZXMiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIklmIHRoZSBwb3N0ZXIgaW4gdGhlIFhNTFRWIHByb2dyYW0gaXMgbWlzc2luZywgdGhlIGNoYW5uZWwgbG9nbyB3aWxsIGJlIHVzZWQuIg0KICAgIH0sDQogICAgInh0ZXZlQXV0b1VwZGF0ZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIkF1dG9tYXRpYyB1cGRhdGUgb2YgeFRlVmUiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIklmIGEgbmV3IHZlcnNpb24gb2YgeFRlVmUgaXMgYXZhaWxhYmxlLCBpdCB3aWxsIGJlIGF1dG9tYXRpY2FsbHkgaW5zdGFsbGVkLiBUaGUgdXBkYXRlcyBhcmUgZG93bmxvYWRlZCBmcm9tIEdpdEh1Yi4iDQogICAgfSwNCiAgICAic3RyZWFtQnVmZmVyaW5nIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiU3RyZWFtIEJ1ZmZlciIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiRnVuY3Rpb25zIG9mIHRoZSBidWZmZXI6PGJyPi0gVGhlIHN0cmVhbSBpcyBwYXNzZWQgZnJvbSB4VGVWZSwgRkZtcGVnIG9yIFZMQyB0byBQbGV4LCBFbWJ5IG9yIE0zVSBQbGF5ZXI8YnI+LSBTbWFsbCBqZXJraW5nIG9mIHRoZSBzdHJlYW1zIGNhbiBiZSBjb21wZW5zYXRlZDxicj4tIEhMUyAvIE0zVTggc3VwcG9ydDxicj4tIFJUUCAvIFJUUFMgc3VwcG9ydCAob25seSBGRm1wZWcgb3IgVkxDKTxicj4tIFJlLXN0cmVhbWluZzxicj4tIFNlcGFyYXRlIHR1bmVyIGxpbWl0IGZvciBlYWNoIHBsYXlsaXN0IiwNCiAgICAgICJpbmZvX2ZhbHNlIjogIk5vIEJ1ZmZlciAoQ2xpZW50IGNvbm5lY3RzIHRvIHRoZSBzdHJlYW1pbmcgc2VydmVyKSIsDQogICAgICAiaW5mb194dGV2ZSI6ICJ4VGVWZSBjb25uZWN0cyB0byB0aGUgc3RyZWFtaW5nIHNlcnZlciIsDQogICAgICAiaW5mb19mZm1wZWciOiAiRkZtcGVnIGNvbm5lY3RzIHRvIHRoZSBzdHJlYW1pbmcgc2VydmVyIiwNCiAgICAgICJpbmZvX3ZsYyI6ICJWTEMgY29ubmVjdHMgdG8gdGhlIHN0cmVhbWluZyBzZXJ2ZXIiDQoNCiAgICB9LA0KICAgICJ1ZHB4eSI6DQogICAgew0KICAgICAgInRpdGxlIjogIlVEUHh5IGFkZHJlc3MiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIlRoZSBhZGRyZXNzIG9mIHlvdXIgVURQeHkgc2VydmVyLiBJZiBzZXQsIGFuZCB0aGUgY2hhbm5lbCBVUkxzIGluIHRoZSBtM3UgaXMgbXVsdGljYXN0LCB4VGVWZSB3aWxsIHJld3JpdGUgaXQgc28gdGhhdCBpdCBpcyBhY2Nlc3NlZCB2aWEgdGhlIFVEUHh5IHNlcnZpY2UuIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJob3N0OnBvcnQiDQogICAgfSwNCiAgICAiZmZtcGVnUGF0aCI6DQogICAgew0KICAgICAgInRpdGxlIjogIkZGbXBlZyBCaW5hcnkgUGF0aCIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiUGF0aCB0byBGRm1wZWcgYmluYXJ5LiIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiL3BhdGgvdG8vZmZtcGVnIg0KICAgIH0sDQogICAgImZmbXBlZ09wdGlvbnMiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJGRm1wZWcgT3B0aW9ucyIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiRkZtcGVnIG9wdGlvbnMuPGJyPk9ubHkgY2hhbmdlIGlmIHlvdSBrbm93IHdoYXQgeW91IGFyZSBkb2luZy48YnI+TGVhdmUgYmxhbmsgdG8gc2V0IGRlZmF1bHQgc2V0dGluZ3MuIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJMZWF2ZSBibGFuayB0byBzZXQgZGVmYXVsdCBzZXR0aW5ncyINCiAgICB9LA0KICAgICJ2bGNQYXRoIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiVkxDIC8gQ1ZMQyBCaW5hcnkgUGF0aCIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiUGF0aCB0byBWTEMgLyBDVkxDIGJpbmFyeS4iLA0KICAgICAgInBsYWNlaG9sZGVyIjogIi9wYXRoL3RvL2N2bGMiDQogICAgfSwNCiAgICAidmxjT3B0aW9ucyI6DQogICAgew0KICAgICAgInRpdGxlIjogIlZMQyAvIENWTEMgT3B0aW9ucyIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiVkxDIC8gQ1ZMQyBvcHRpb25zLjxicj5Pbmx5IGNoYW5nZSBpZiB5b3Uga25vdyB3aGF0IHlvdSBhcmUgZG9pbmcuPGJyPkxlYXZlIGJsYW5rIHRvIHNldCBkZWZhdWx0IHNldHRpbmdzLiIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiTGVhdmUgYmxhbmsgdG8gc2V0IGRlZmF1bHQgc2V0dGluZ3MiDQogICAgfSwNCiAgICAiYnVmZmVyU2l6ZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIkJ1ZmZlciBTaXplIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJCdWZmZXIgc2l6ZSBpbiBNQi48YnI+TTNVODogSWYgdGhlIFRTIHNlZ21lbnQgc21hbGxlciB0aGVuIHRoZSBidWZmZXIgc2l6ZSwgdGhlIGZpbGUgc2l6ZSBvZiB0aGUgc2VnbWVudCBpcyB1c2VkLiINCiAgICB9LA0KICAgICJidWZmZXJUaW1lb3V0IjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiVGltZW91dCBmb3IgbmV3IGNsaWVudCBjb25uZWN0aW9ucyIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiVGhlIHhUZVZlIGJ1ZmZlciB3YWl0cyB1bnRpbCBuZXcgY2xpZW50IGNvbm5lY3Rpb25zIGFyZSBlc3RhYmxpc2hlZC4gSGVscGZ1bCBmb3IgZmFzdCBjaGFubmVsIHN3aXRjaGluZy4gVmFsdWUgaW4gbWlsbGlzZWNvbmRzLiIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiMTAwIg0KICAgIH0sDQogICAgInVzZXJBZ2VudCI6DQogICAgew0KICAgICAgInRpdGxlIjogIlVzZXIgQWdlbnQiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIlVzZXIgQWdlbnQgZm9yIEhUVFAgcmVxdWVzdHMuIEZvciBldmVyeSBIVFRQIGNvbm5lY3Rpb24sIHRoaXMgdmFsdWUgaXMgdXNlZCBmb3IgdGhlIHVzZXIgYWdlbnQuIFNob3VsZCBvbmx5IGJlIGNoYW5nZWQgaWYgeFRlVmUgaXMgYmxvY2tlZC4iLA0KICAgICAgInBsYWNlaG9sZGVyIjogInhUZVZlIg0KICAgIH0sDQogICAgImJhY2t1cFBhdGgiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJMb2NhdGlvbiBmb3IgYXV0b21hdGljIGJhY2t1cHMiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIi9tbnQvZGF0YS9iYWNrdXAveHRldmUvIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJCZWZvcmUgYW55IHVwZGF0ZSBvZiB0aGUgcHJvdmlkZXIgZGF0YSBieSB0aGUgc2NoZWR1bGUsIHhUZVZlIGNyZWF0ZXMgYSBiYWNrdXAuIFRoZSBwYXRoIGZvciB0aGUgYXV0b21hdGljIGJhY2t1cHMgY2FuIGJlIGNoYW5nZWQuIHhUZVZlIHJlcXVpcmVzIHdyaXRlIHBlcm1pc3Npb24gZm9yIHRoaXMgZm9sZGVyLiINCiAgICB9LA0KICAgICJ0ZW1wUGF0aCI6DQogICAgew0KICAgICAgInRpdGxlIjogIkxvY2F0aW9uIGZvciB0aGUgdGVtcG9yYXJ5IGZpbGVzIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIvdG1wL3h0ZXZlLyIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiTG9jYXRpb24gZm9yIHRoZSBidWZmZXIgZmlsZXMuIg0KICAgIH0sDQogICAgImJhY2t1cEtlZXAiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJOdW1iZXIgb2YgYmFja3VwcyB0byBrZWVwIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJOdW1iZXIgb2YgYmFja3VwcyB0byBrZWVwLiBPbGRlciBiYWNrdXBzIGFyZSBhdXRvbWF0aWNhbGx5IGRlbGV0ZWQuIg0KICAgIH0sDQogICAgImF1dGhlbnRpY2F0aW9uV0VCIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiV0VCIEF1dGhlbnRpY2F0aW9uIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJBY2Nlc3MgdG8gdGhlIHdlYiBpbnRlcmZhY2Ugb25seSBwb3NzaWJsZSB3aXRoIGNyZWRlbnRpYWxzLiINCiAgICB9LA0KICAgICJhdXRoZW50aWNhdGlvblBNUyI6DQogICAgew0KICAgICAgInRpdGxlIjogIlBNUyBBdXRoZW50aWNhdGlvbiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiUGxleCByZXF1ZXN0cyBhcmUgb25seSBwb3NzaWJsZSB3aXRoIGF1dGhlbnRpY2F0aW9uLiA8YnI+PGI+V2FybmluZyEhITwvYj4gQWZ0ZXIgYWN0aXZhdGluZyB0aGlzIGZ1bmN0aW9uIHhUZVZlIG11c3QgYmUgZGVsZXRlIGluIHRoZSBQTVMgRFZSIHNldHRpbmdzIGFuZCBzZXQgdXAgYWdhaW4uIg0KICAgIH0sDQogICAgImF1dGhlbnRpY2F0aW9uTTNVIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiTTNVIEF1dGhlbnRpY2F0aW9uIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJEb3dubG9hZGluZyB0aGUgeHRldmUubTN1IGZpbGUgdmlhIGFuIEhUVFAgcmVxdWVzdCBpcyBvbmx5IHBvc3NpYmxlIHdpdGggYXV0aGVudGljYXRpb24uIg0KICAgIH0sDQogICAgImF1dGhlbnRpY2F0aW9uWE1MIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiWE1MIEF1dGhlbnRpY2F0aW9uIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJEb3dubG9hZGluZyB0aGUgeHRldmUueG1sIGZpbGUgdmlhIGFuIEhUVFAgcmVxdWVzdCBpcyBvbmx5IHBvc3NpYmxlIHdpdGggYXV0aGVudGljYXRpb24iDQogICAgfSwNCiAgICAiYXV0aGVudGljYXRpb25BUEkiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJBUEkgQXV0aGVudGljYXRpb24iLA0KICAgICAgImRlc2NyaXB0aW9uIjogIkFjY2VzcyB0byB0aGUgQVBJIGludGVyZmFjZSBpcyBvbmx5IHBvc3NpYmxlIHdpdGggYXV0aGVudGljYXRpb24uIg0KICAgIH0NCiAgfSwNCiAgIndpemFyZCI6DQogIHsNCiAgICAiZXBnU291cmNlIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiRVBHIFNvdXJjZSIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiUE1TOjxicj4tIFVzZSBFUEcgZGF0YSBmcm9tIFBsZXggb3IgRW1ieSA8YnI+PGJyPlhFUEc6PGJyPi0gVXNlIG9mIG9uZSBvciBtb3JlIFhNTFRWIGZpbGVzPGJyPi0gQ2hhbm5lbCBtYW5hZ2VtZW50PGJyPi0gTTNVIC8gWE1MVFYgZXhwb3J0IChIVFRQIGxpbmsgZm9yIElQVFYgYXBwcykiDQogICAgfSwNCiAgICAidHVuZXIiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJOdW1iZXIgb2YgdHVuZXJzIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJOdW1iZXIgb2YgcGFyYWxsZWwgY29ubmVjdGlvbnMgdGhhdCBjYW4gYmUgZXN0YWJsaXNoZWQgdG8gdGhlIHByb3ZpZGVyLjxicj5BdmFpbGFibGUgZm9yOiBQbGV4LCBFbWJ5IChIREhSKSwgTTNVICh3aXRoIGFjdGl2ZSBidWZmZXIpLjxicj5BZnRlciBhIGNoYW5nZSwgeFRlVmUgbXVzdCBiZSBkZWxldGUgaW4gdGhlIFBsZXggLyBFbWJ5IERWUiBzZXR0aW5ncyBhbmQgc2V0IHVwIGFnYWluLiINCiAgICB9LA0KICAgICJtM3UiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJNM1UgUGxheWxpc3QiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIkZpbGUgcGF0aCBvciBVUkwgb2YgdGhlIE0zVSIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiTG9jYWwgb3IgcmVtb3RlIHBsYXlsaXN0cyINCiAgICB9LA0KICAgICJ4bWx0diI6DQogICAgew0KICAgICAgInRpdGxlIjogIlhNTFRWIEZpbGUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIkZpbGUgcGF0aCBvciBVUkwgb2YgdGhlIFhNTFRWIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJMb2NhbCBvciByZW1vdGUgWE1MVFYgZmlsZSINCiAgICB9DQogIH0sDQogICJsb2dpbiI6DQogIHsNCiAgICAiZmFpbGVkIjogIlVzZXIgYXV0aGVudGljYXRpb24gZmFpbGVkIiwNCiAgICAiaGVhZGxpbmUiOiAiTG9naW4iLA0KICAgICJ1c2VybmFtZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIlVzZXJuYW1lIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJVc2VybmFtZSINCiAgICB9LA0KICAgICJwYXNzd29yZCI6DQogICAgew0KICAgICAgInRpdGxlIjogIlBhc3N3b3JkIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJQYXNzd29yZCINCiAgICB9DQogIH0sDQogICJhY2NvdW50IjoNCiAgew0KICAgICJmYWlsZWQiOiAiUGFzc3dvcmQgZG9lcyBub3QgbWF0Y2giLA0KICAgICJoZWFkbGluZSI6ICJDcmVhdGUgdXNlciBhY2NvdW50IiwNCiAgICAidXNlcm5hbWUiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJVc2VybmFtZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiVXNlcm5hbWUiDQogICAgfSwNCiAgICAicGFzc3dvcmQiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJQYXNzd29yZCIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiUGFzc3dvcmQiDQogICAgfSwNCiAgICAiY29uZmlybSI6DQogICAgew0KICAgICAgInRpdGxlIjogIkNvbmZpcm0iLA0KICAgICAgInBsYWNlaG9sZGVyIjogIkNvbmZpcm0iDQogICAgfQ0KICB9DQp9" webUI["html/login.html"] = "PCFkb2N0eXBlIGh0bWw+DQo8aHRtbD4NCiAgPGhlYWQ+DQogICAgPG1ldGEgY2hhcnNldD0idXRmLTgiPg0KICAgIDxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgsIGluaXRpYWwtc2NhbGU9MS4wIiAvPiANCiAgICA8dGl0bGU+eFRlVmU8L3RpdGxlPg0KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iY3NzL3NjcmVlbi5jc3MiIHR5cGU9InRleHQvY3NzIj4NCiAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9ImNzcy9iYXNlLmNzcyIgdHlwZT0idGV4dC9jc3MiPg0KICAgIDxzY3JpcHQgbGFuZ3VhZ2U9ImphdmFzY3JpcHQiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJqcy9uZXR3b3JrX3RzLmpzIj48L3NjcmlwdD4NCiAgICA8c2NyaXB0IGxhbmd1YWdlPSJqYXZhc2NyaXB0IiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ianMvYXV0aGVudGljYXRpb25fdHMuanMiPjwvc2NyaXB0Pg0KICA8L2hlYWQ+DQoNCiAgICA8Ym9keT4NCiAgICAgICAgICANCiAgICAgIDxkaXYgaWQ9ImhlYWRlciIgY2xhc3M9ImltZ0NlbnRlciI+PC9kaXY+DQoNCiAgICAgIDxkaXYgaWQ9ImJveCI+DQoNCiAgICAgICAgPGRpdiBpZD0iaGVhZGxpbmUiPg0KICAgICAgICAgIDxoMSBpZD0iaGVhZC10ZXh0IiBjbGFzcz0iY2VudGVyIj57ey5sb2dpbi5oZWFkbGluZX19PC9oMT4NCiAgICAgICAgPC9kaXY+DQoNCiAgICAgICAgPHAgaWQ9ImVyciIgY2xhc3M9ImVycm9yTXNnIGNlbnRlciI+e3suYXV0aGVudGljYXRpb25FcnJ9fTwvcD4NCg0KICAgICAgICA8ZGl2IGlkPSJjb250ZW50Ij4NCg0KICAgICAgICAgICAgPGZvcm0gaWQ9ImF1dGhlbnRpY2F0aW9uIiBhY3Rpb249IiIgbWV0aG9kPSJwb3N0Ij4NCg0KICAgICAgICAgICAgICA8aDU+e3subG9naW4udXNlcm5hbWUudGl0bGV9fTo8L2g1Pg0KICAgICAgICAgICAgICA8aW5wdXQgaWQ9InVzZXJuYW1lIiB0eXBlPSJ0ZXh0IiBuYW1lPSJ1c2VybmFtZSIgcGxhY2Vob2xkZXI9IlVzZXJuYW1lIiB2YWx1ZT0iIj4NCiAgICAgICAgICAgICAgPGg1Pnt7LmxvZ2luLnBhc3N3b3JkLnRpdGxlfX06PC9oNT4NCiAgICAgICAgICAgICAgPGlucHV0IGlkPSJwYXNzd29yZCIgdHlwZT0icGFzc3dvcmQiIG5hbWU9InBhc3N3b3JkIiBwbGFjZWhvbGRlcj0iUGFzc3dvcmQiIHZhbHVlPSIiPg0KDQogICAgICAgICAgICA8L2Zvcm0+DQoNCiAgICAgICAgPC9kaXY+DQoNCiAgICAgICAgPGRpdiBpZD0iYm94LWZvb3RlciI+DQogICAgICAgICAgPGlucHV0IGlkPSJzdWJtaXQiIGNsYXNzPSIiIHR5cGU9ImJ1dHRvbiIgdmFsdWU9Int7LmJ1dHRvbi5sb2dpbn19IiBvbmNsaWNrPSJqYXZhc2NyaXB0OiBsb2dpbigpOyI+DQogICAgICAgIDwvZGl2Pg0KICAgICAgICANCiAgICAgIDwvZGl2Pg0KDQogICAgPC9ib2R5Pg0KICAgIA0KPC9odG1sPg==" webUI["html/maintenance.html"] = "PCFkb2N0eXBlIGh0bWw+DQo8aHRtbD4NCiAgPGhlYWQ+DQogICAgPG1ldGEgY2hhcnNldD0idXRmLTgiPg0KICAgIDxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgsIGluaXRpYWwtc2NhbGU9MS4wIiAvPiANCiAgICA8dGl0bGU+eFRlVmU8L3RpdGxlPg0KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iY3NzL3NjcmVlbi5jc3MiIHR5cGU9InRleHQvY3NzIj4NCiAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9ImNzcy9iYXNlLmNzcyIgdHlwZT0idGV4dC9jc3MiPg0KICA8L2hlYWQ+DQoNCiAgICA8Ym9keT4NCiAgICAgICAgICANCiAgICAgIDxkaXYgaWQ9ImhlYWRlciIgY2xhc3M9ImltZ0NlbnRlciI+PC9kaXY+DQoNCiAgICAgIDxkaXYgaWQ9ImJveCI+DQoNCiAgICAgICAgPGRpdiBpZD0iaGVhZGxpbmUiPg0KICAgICAgICAgIDxoMSBpZD0iaGVhZC10ZXh0IiBjbGFzcz0iY2VudGVyIj5NYWludGVuYW5jZTwvaDE+ICAgICAgDQogICAgICAgIDwvZGl2PiAgDQoNCiAgICAgICAgPGRpdiBpZD0iY29udGVudCI+DQogICAgICAgICAgeFRlVmUgaXMgdXBkYXRpbmcgdGhlIGRhdGFiYXNlLCBwbGVhc2UgdHJ5IGFnYWluIGxhdGVyLg0KICAgICAgICA8L2Rpdj4NCg0KICAgICAgICA8ZGl2IGlkPSJib3gtZm9vdGVyIj48L2Rpdj4NCiAgICAgICAgDQogICAgICA8L2Rpdj4NCg0KICAgIDwvYm9keT4NCjwvaHRtbD4=" webUI["html/video/stream-limit.ts"] = "R0AREABC8CUAAcEAAP8B/wAB/IAUSBIBBkZGbXBlZwlTZXJ2aWNlMDF3fEPK//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////9HQAAQAACwDQABwQAAAAHwACqxBLL//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////0dQABAAArASAAHBAADhAPAAG+EA8AAVvU1W////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////R0EAMAdQAAB7DH4AAAAB4AAAgMAKMQAJEKERAAfYYQAAAAEJ8AAAAAFnZAAorNlAeAIn5cBEAAADAAQAAAMAyDxgxlgAAAABaOvjyyLAAAABBgX//6rcRem95tlIt5Ys2CDZI+7veDI2NCAtIGNvcmUgMTUyIHIyODU0IGU5YTU5MDMgLSBILjI2NC9NUEVHLTQgQVZDIGNvZGVjIC0gQ29weWxlZnQgMjAwMy0yMDE3IC0gaHR0cDovL3dHAQARd3cudmlkZW9sYW4ub3JnL3gyNjQuaHRtbCAtIG9wdGlvbnM6IGNhYmFjPTEgcmVmPTMgZGVibG9jaz0xOjA6MCBhbmFseXNlPTB4MzoweDExMyBtZT1oZXggc3VibWU9NyBwc3k9MSBwc3lfcmQ9MS4wMDowLjAwIG1peGVkX3JlZj0xIG1lX3JhbmdlPTE2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ACqxBLL//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////0dQABEAArASAAHBAADhAPAAG+EA8AAVvU1W////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////RwEAGO10tGlFAwyE91Tzg8923ovJk1dv2xh1gVlYQFtWdZ6NSQ8vgHM7/tMfIZPsqgCU856rdBJJRMDaor/oWA7pkvSmC2aqaC5fd/mkWUPTuG8fRhGqOY1rKxLNSI3HtTQAcuVBxRM0NfMw0ky/JMJYZiCgXcNsxpxl+khr/9fKtO5Fg2VNBti92xcZimHUZDJMQTBOY6vSR9L1N2O/kJQCpdfuc9bkcUTMjH/es/lAySxvbiislkohqkpHAQAZVatwHI0t9eHCUfDyWUEtuCNyDwQFOVMtaYEQJrTrhQX0VduT86F0u0wN9ag0uPsrmX6Rid/x5S7KI1SkS+qP6cdmgSP57uiF4dG6IKsWNfGBLY09H/CFlrg73WINQkkp2diKkdEmtZetn8+ZAKzR5eXN5FebiKt6pIkNLuSofjosypEs2o6boKsfpmbtOV0idOeWDM9C8EIcn3aZwk1s2KBDvt1DlY+i2Cuvhk3XoKLT+pq/bOC5QkcBABolcOXneZXLoQw9W1PH1f/of92Ytjj8okrWijcQAKlE5l8XoTb9qrOiZnDOhqwcMlB9H9rorq041I89hChohYoSkJElcM8V+r8WYN5axD1BNyfwaHAOm4UN2/VEYOkNSfMjmx2S0WW/F2ha8Jj4fc4QgqcXr+TnnbwqLkLTValK4Qa1pcv7PIbDq6zCUfxe04guZ8xEhPQjp17/G6IB/6uq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wnibxQ/cXEblVnM47wbCN3iy4eHjYB5MoIICrSYmd8nt4V0toLs084KJlmnur5FbApYM4W79ff4oZkW88Cg8Fv8TnWhh1Hqc4UlhMbRKm2QxDgfBxar3U7BwNR6prrXXjqfR7ja3tPli+H7Jez/xcTg32QpHAQAdTa7pSSgBvmOqzz175NAFIhwE9p3d71F9jLvhaPv8q1iKopL0kizwzEWElnXWmNhfLkl/Au8KujnoKUaxVdTe+zAZm2dOkejnpNVtVj0Aw9wKcG3ZQ1iRZrUFRIoPKYlmR+oi0LrupuhYABtgPbdCbDtezGTr0nw9wVd/rZ6V+1wcoJ6+8VAVueIdwI3brqm6EoFHiI8L6lER+9SefB8fHo4NYgr/I8jSxaa/2PLX2K/DjrlY6bN8fEcBAB7DXsuh8DITF6CYWj2HTFvqfzlic3QHXnHtvsTFNpyVY1LY8y/fRK2mwALN6IB5W3OuyoKiA3K0lJdQUv2gYhHWvPTV218HYrD0rkbMxRH0SiEEkrHDeOt5T1HtWD13D2/QvMu535fsfZyeaFDjdCE9M0Xi8Lfc7Xj1ZNGend7Jo7/cEiczFkc1vB4z2JpFGZreV2EdquyEzC2STFJtfimyx8QlLngEuR1cxH+lWEcFX+mvBa/eqktIRwEAH6VazFLPNsnHZqsI66TVoArQuUUGFAzr8MT8GZ9V6qpZa5D0jA/4eGi6Kq0smUgRExnqIbSMLWqDf/Pk2YT3MpHTu9VE3Dn9blgB6KsVIkWnB98Y2n/6DrZDcF94Ndu0Ka4U/RZwdV5O5KcO+lU2ZiIOYTYZ6Ie0d+tApxYxJ+YmxaDoCyRNe6crw/yzR5SflT8ddi/E2BM+l+nwVDiKZ/714fmrBxFKWuqLiQNHV19o1cZ8Ubun+ZtHQAASAACwDQABwQAAAAHwACqxBLL//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////0dQABIAArASAAHBAADhAPAAG+EA8AAVvU1W////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////RwEAEH1s3BdtHdF1ln55B24wdACF/ggcRtPmB4IUB6cZJ+m32I4R48ZkdhAFBulgWcsv0wZwH0o1yi3i4qm3rJ98AUKdB9PsNyG9gURV0bTw4myAj6g5Dgodfv6w9bsbOxsGUWkvgAJ3rrR010BvZbIa6CMRCQRjxkCfRF77ansRJZT0JzhtYeSS/ZJob8Rr2jrng3W2rkmHtE+rdqlPiHxmwkRZvYGhBxwiJO2L6f+l/cABsfs09rA+A0pHAQAREZay3TBUIAfMWhApE+LaPgeyOYtaPFONA9aC0h4QrFkaLZfb86678MK+zLgqDBsDoj50eZHMVcczRjs4sYlv7RG8RIWKb5lB9Kn/8+CkxiiA11cHH1yzLX2SKCmhsak/+P/zYQ1EDvEj33bl9e3Jd62cTI+Qw99KrsWnUMN8hFNeXzoGHA3aec+Li4NFboF8sa6lCPR6Csxsvxw8DJaWCnER5Z0p+nKhXavF/eNHQ0DX47ohycc87UcBABKsYHCHXXe3vK1cFYDWO6rhwM6hxCdJ+/X+VB1akQejL6iBMdUPuadUqBnbprwJM0dWpSSn9uuZZeqe46iZOGIJUo69d8x+ZSvPcBH/dK1Y0LJnoWdgWH51SQg7eYqcwjQW3BOy7ZF02Hn1EhTuhsN7ms8zv3WIeEBDBq0T3Idl+Tmw9iJU9skVYiwygHG2+0XwrLa6y+uiQPwMzrnEr1kuf24XoAqrJTZQiVH3aQF4d94yDreWu2KPRwEAE2FsynHZaUcBXEFbeX0nSxZ7sRcRjJvc7RYOny6N8QFwKDVO7jpRWWYM55kuepBOyZ+7BFYeG+FU1kR+ZfmqyDNkD4D1IPwNh6u9JQxDymfN/aMcQC3WxdvCKquPsAut6dugpGkOFtIe+W3ayc4V/J978P+h1EDFMbFjxRPuXht0K2dBQZCJ0ybISUDqWzhPuep8CdxSU4MvMVfdXh7FLl/BqKJUTT+vM+Pz3XnqCQQmH5TjQ4CK55VHAQAUEtgfkBwIYgtwHkhjmtLw7HNTeJeMfTjATEKcyuKzItSeYxHBmGzQ/+G2otpPCOkVAXJ9mfx7LxrW4joZ0ttTRQJ/wqMUK1IN349LiJoo8y/+FwN4jPNDwIleJG697riqnmLOweFW8spHKLBfnHcyC1pG6EIxFpTqUQ0KHqXD/KXIHKioJNAOVwQ1Gfloxebo/Tdtd00dpHP3gcsAOnV75APCYOjVIlwm2X6ViDeZw6Btdb/Br/+yokcBABU3+eOESLlneGbR5SLiL8wPkoRaZ5X7xFlMTMvsv9yHk26bVdmsubSdbYS1Hy64n0+NnL7C1aLD7aJxOudMjVW5goZbfO2KxBQkCD4HFA284wbaB5vOL7mRilCn6YEs1kiwf22+fBLNUmXDb2p353wrD/ygTDhlki66USvUmd/ZAs9uzAddegEzy7Xn00YysWTu/hegYyZtWFC+X5dhLubWJ7n96y5wjrP7PAOXoQQtFUH9j/rBiP/7RwEAFnL/wYKYuj80mPGtimSbF/E9K7XwjwBz8yHZubmVMTCmwkZBM4h0FR1thnUGiSjqjJT6SfunWCZ/dZDQplrzS00UKcUP399SyM+nNG1br8Za0ZYwWch8nyLHYXSRuxdnrfUUespsOQo1cWSLGf0pV2HIcHoiAAEKwPU6irB5BSoFvB1qKVjgEk+QwAEYAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAABHAQA3pAD/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////AwAAAwAAAwAAAwAAAwAAAwBbwUdBABgAAAHgAACAwAoxAAmBIREAB/SBAAAAAQnwAAAAAUGaJGxDv/6plgAAAwAAAwAAAwAAAwAAAwAAAwAAAwAKCKB0AIhy1ftwLNISWucTFC7xeBcaIzP3oZjZo8uT9hqZVstWGnrPz+vjaA5FuCO+K2w7/o39LygDO7aL+0zSrN90LW7r133x8+f+PEKk8d7pd2fj4RYuMOXOYunzFzRX/4IvR1XsK5WJYwVkOca3yfo7DTvUBP9rgSiTRwEAGQD6CFK1PBC4qYCa+coLVnX+jgODNrau5YJXIekDI4+wUNV+5T5HE4e2t5EGAjn77+kC1Vghmvx8KqPnylVUvsaTofheggxHsPuxn1zQt6nA59UglrRUMn8b4pmrvfqTBSqU949+AcNAI6M/eAqz6r0RG5KNeBhx8R2f0x2kujwHU3pc3rlPb6ZrFM/2HiG97eEIezrvWFG7YAAAAwAAAwAE1KRo1VfbdZQ/tOpNGxFmTcQoFidyD2tHAQAapTTIErUKA2Rc9uIzGJu+oW0uNOxRyl6oJNUNJp5L9TIshNS1CmUKgdCaE3LkLwdE8iUkUnIGfWLiWpWmjzsINYC8dnDaSptB53yJkBu0SsR00oo1PZ0pl4ZzoXGSYQJTPaVCbj6FNqm5wcnUqKTB/rgHdPdnDj0K8asLABeo/n3XCXrDorI+LYSD1FBgmV9O7RZdjfL0NnXOQkiq/ZGirwVV0cUF1aHtZx1yHlAAZKuuu7TqB13CAUcBADuRAP///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////yj/IrOvAEoXDNGy+nrxWN0l8cmuqWYaUJpuM9XgAAADAAADAAKmR0EAPAcQAACJHH4AAAAB4AAAgMAKMQAJSOERAAkQoQAAAAEJ8AAAAAFBnkJ4hf8AAAMAAAMAAAMAAAMAAAMAAAMAAAMAC/BmhyuvLmkCgKTgACEXfOVvHRHdpBEEmTTz9pIZCa2FD0CXukzDCakOHekTpJQSdsfd7a/jjM1/5lBtKCAGQ6zOCSQ6DeKtyw+CugDuuglGipwmvQW+FIDjnZ6HRd0uaSOGy6VB3h9MI1o4nqaCqVwwIgubYZFHAQA9XgD////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////WcZrO6BEiqf8pCxYwlz2mkdUzY/ipM/TIHS4m5xQAAAMAAAMAAA5sVm90p14dlvWgBgY7XQ9KVOJKLtaMAN5KiffVQtNuzW5DfL+RewZpAAADAAADAAAQMUdBAB4AAAHgAACAgAUhAAkswQAAAAEJ8AAAAAEBnmF0Qr8AAAMAAAMAAAMAAAMAAAMAAAMAAAMAABJfBjP2+4+W7ZybyT130+Ma4WSqICfd/dS4YtjrLlmh5VBlfrtwJqdN1PBTYDkwGOOONqZQeFN6lLGJoDzvuh3kv1aDBLqug+JhvrSeu5ebnvcrtQzb2REwJL3h9mvtkr0WfDu4AAADAAADAAs32Y4C/6Ns79oCGj6oqLltY3T4I0/QRwEAP5wA//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////8BeoWLRnKQmVgO/RBoBfcK85AAAAMAAAMACFhHQQAwBxAAAJcsfgAAAAHgAACAwAoxAAllAREACUjhAAAAAQnwAAAAAQGeY2pCvwAAAwAAAwAAAwAAAwAAAwAAAwAAAwAAEmDKfLGXsvBBQPNYXlEd6WueJ4deApfcHESlG+7V6u0AiWQqJvNZYM+3Js3Lj9Ldc9yYIHqruVwfMtCYGlX3wMavI/DrhMuJw+RreIF8SKsJD8CMccAAAAMAAAMACrFZOBgEqaP/8EyWsAHV6CgcAgfyox/roEcBADGuAP//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////AAADAAADAHTBR0EAEgAAAeAAAIDACjEACfGhEQAJZQEAAAABCfAAAAABQZpoSahBaJlMCHf//qmWAAADAAADAAADAAADAAADAAADAAADAAALf8A2bry6lUyIAQGNFfVK2Cd7h4qDqmqpvmXfkfTwo2Ab79AHhajxJ4MPWIgAAA84xLRIx7I2CrWjWe96OvgkzgS9mtvhuxdzAgpuIOJI3DEY9mviDDZz8XSAAAADAAADAB7AZkj9AAHHGvk+Pzlku8UkWa5HAQAzogD//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////6HjAkbF/gsWuvw4QAAAAwAAAwAccUdBADQHEAAApTx+AAAAAeAAAIDACjEACblhEQAJgSEAAAABCfAAAAABQZ6GRREsL/8AAAMAAAMAAAMAAAMAAAMAAAMAAAMAAA3URJB/3lMHSmOd0GYZnfpoR80WdqxlyHzPX+V81VUMeXIGrRgq5agd+ACdjoGI036yQ/rmpGw0CmMBrKwpI+nwFo3SP0s1rI2yHBZaiPJjSUgw33rBkxXcq55kfLf2sAAAAwAAAwACBWolidWDnIeQAAADRwEANbEA//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////8AAAMADulHQQA2NAD///////////////////////////////////////////////////////////////////8AAAHgAACAgAUhAAmdQQAAAAEJ8AAAAAEBnqV0Qr8AAAMAAAMAAAMAAAMAAAMAAAMAAAMAABJXNihCnx11JUosH2hBE53O/YN+GPHqcnJiQBIf3maTAAj5iRt+7GYUKBAU9iCXTiouCjGYgAAAAwAAAwA9p4HQBg2cAAADAAADAADGgUdBADc4EAAAs0x+AP////////////////////////////////////////////////////////////////8AAAHgAACAwAoxAAnVgREACblhAAAAAQnwAAAAAQGep2pCvwAAAwAAAwAAAwAAAwAAAwAAAwAAAwAAAwBR6/L83y+ZevtMZ0FW4lp8qV7fVXQAhLAWlS6mDxvpaSUgChorvgTMXtxJEIAAAAMAAAMACqFCAAADAAADAAADAAz4R0EAOCsA////////////////////////////////////////////////////////AAAB4AAAgMAKMQALYiERAAnVgQAAAAEJ8AAAAAFBmqxJqEFsmUwId//+qZYAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAApQTq0hABLvkcWCYrAaRRPNDrECJGlF/11BYvG9+JJ9Y86nxnmQzPxtAAe1UgOsXAAADAAADAAADAAADAAADAAADAAADA/JHQQA5JhAAAMFcfgD/////////////////////////////////////////AAAB4AAAgMAKMQALKeERAAnxoQAAAAEJ8AAAAAFBnspFFSwv/wAAAwAAAwAAAwAAAwAAAwAAAwAAAwAADdRFmvrVE0KXDOGwWddlwYa1foib7tXZKmkua6R4APb4b8+tXwdSNNqgf2IVNwGTohgQAcMvp6SiQxpiQym4AAADAAADAANUNUAAAAMAAAMAAAMBN0dBADo8AP//////////////////////////////////////////////////////////////////////////////AAAB4AAAgIAFIQALDcEAAAABCfAAAAABAZ7pdEK/AAADAAADAAADAAADAAADAAADAAADAAADAFHTAfujIUaaLSuklb9y0/so9AEtQAqkAxOviALQZ5jNt/iOkABrCOZ4md0iUnFwAAADAAADAALwckAAAAMAAAMAAATcR0EAO0IQAADPbH4A//////////////////////////////////////////////////////////////////////////////8AAAHgAACAwAoxAAtGAREACynhAAAAAQnwAAAAAQGe62pCvwAAAwAAAwAAAwAAAwAAAwAAAwAAAwAAAwBR6/L83y+WryR9gmVKPGbIhJpkgAFgHCej3gB6rAHPgHHAAAADAAADAAAYIV0AAAMAAAMAAAMABnxHQQA8UQD//////////////////////////////////////////////////////////////////////////////////////////////////////////wAAAeAAAIDACjEAC9KhEQALRgEAAAABCfAAAAABQZrwSahBbJlMCG///qeEAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAAZ8UdBAD00EAAA3Xx+AP///////////////////////////////////////////////////////////wAAAeAAAIDACjEAC5phEQALYiEAAAABCfAAAAABQZ8ORRUsL/8AAAMAAAMAAAMAAAMAAAMAAAMAAAMAAA3URZr61RNClwzhI2ZXdRHYLZWc1yTgKRhTIXBNABHQKIIyYNyc+AaEn1jhATEAAAMAAAMAAAMAckkIAAADAAADAAADAEbBR0EAPkYA////////////////////////////////////////////////////////////////////////////////////////////AAAB4AAAgIAFIQALfkEAAAABCfAAAAABAZ8tdEK/AAADAAADAAADAAADAAADAAADAAADAAADAFHTAfujIUAYRtY0f/43cIs2OjxACR2hMR1QBGYX+34JGAAAAwAAAwAAAwKEJ6AAAAMAAAMAAAMA3oFHQQA/QhAAAOuMfgD//////////////////////////////////////////////////////////////////////////////wAAAeAAAIDACjEAC7aBEQALmmEAAAABCfAAAAABAZ8vakK/AAADAAADAAADAAADAAADAAADAAADAAADAFHr8vzfL5avJH2CZUo8ZsiEmmSAAWAcJ6PeAHqsAc+AccAAAAMAAAMAABghXQAAAwAAAwAAAwAGfEdBADBRAP//////////////////////////////////////////////////////////////////////////////////////////////////////////AAAB4AAAgMAKMQANQyERAAu2gQAAAAEJ8AAAAAFBmzRJqEFsmUwIZ//+nhAAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAGVAR0EAMTQQAAD5nH4A////////////////////////////////////////////////////////////AAAB4AAAgMAKMQANCuERAAvSoQAAAAEJ8AAAAAFBn1JFFSwv/wAAAwAAAwAAAwAAAwAAAwAAAwAAAwAADdRFmvrVE0KXDOEjZld1EdgtlZzXJOApGFMhcE0AEdAogjJg3Jz4BoSfWOEBMQAAAwAAAwAAAwBySQgAAAMAAAMAAAMARsFHQQAyRgD///////////////////////////////////////////////////////////////////////////////////////////8AAAHgAACAgAUhAAvuwQAAAAEJ8AAAAAEBn3F0Qr8AAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAUdMB+6MhQBhG1jR//jdwizY6PEAJHaExHVAEZhf7fgkYAAADAAADAAADAoQnoAAAAwAAAwAAAwDegEdBADNCEAABB6x+AP//////////////////////////////////////////////////////////////////////////////AAAB4AAAgMAKMQANJwERAA0K4QAAAAEJ8AAAAAEBn3NqQr8AAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAUevy/N8vlq8kfYJlSjxmyISaZIABYBwno94AeqwBz4BxwAAAAwAAAwAAGCFdAAADAAADAAADAAZ8R0EANFIA////////////////////////////////////////////////////////////////////////////////////////////////////////////AAAB4AAAgMAKMQANs6ERAA0nAQAAAAEJ8AAAAAFBm3hJqEFsmUwIV//+OEAAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAYtHQQA1NBAAARW8fgD///////////////////////////////////////////////////////////8AAAHgAACAwAoxAA17YREADUMhAAAAAQnwAAAAAUGflkUVLC//AAADAAADAAADAAADAAADAAADAAADAAAN1EWa+tUTQpcM4SNmV3UR2C2VnNck4CkYUyFwTQAR0CiCMmDcnPgGhJ9Y4QExAAADAAADAAADAHJJCAAAAwAAAwAAAwBGwEdBADZGAP///////////////////////////////////////////////////////////////////////////////////////////wAAAeAAAICABSEADV9BAAAAAQnwAAAAAQGftXRCvwAAAwAAAwAAAwAAAwAAAwAAAwAAAwAAAwBR0wH7oyFAGEbWNH/+N3CLNjo8QAkdoTEdUARmF/t+CRgAAAMAAAMAAAMChCegAAADAAADAAADAN6BR0EAN0IQAAEjzH4A//////////////////////////////////////////////////////////////////////////////8AAAHgAACAwAoxAA2XgREADXthAAAAAQnwAAAAAQGft2pCvwAAAwAAAwAAAwAAAwAAAwAAAwAAAwAAAwBR6/L83y+WryR9gmVKPGbIhJpkgAFgHCej3gB6rAHPgHHAAAADAAADAAAYIV0AAAMAAAMAAAMABn0=" diff --git a/src/webserver.go b/src/webserver.go index cf90bee..a0c1d79 100644 --- a/src/webserver.go +++ b/src/webserver.go @@ -40,19 +40,19 @@ func StartWebserver() (err error) { showInfo("Web server:" + "Starting") - showInfo("DVR IP:" + System.IPAddress + ":" + Settings.Port) + showInfo("DVR IP:" + Settings.HostIP + ":" + Settings.Port) var ips = len(System.IPAddressesV4) + len(System.IPAddressesV6) - 1 switch ips { case 0: - showHighlight(fmt.Sprintf("Web Interface:%s://%s:%s/web/", System.ServerProtocol.WEB, System.IPAddress, Settings.Port)) + showHighlight(fmt.Sprintf("Web Interface:%s://%s:%s/web/", System.ServerProtocol.WEB, Settings.HostIP, Settings.Port)) case 1: - showHighlight(fmt.Sprintf("Web Interface:%s://%s:%s/web/ | xTeVe is also available via the other %d IP.", System.ServerProtocol.WEB, System.IPAddress, Settings.Port, ips)) + showHighlight(fmt.Sprintf("Web Interface:%s://%s:%s/web/ | xTeVe is also available via the other %d IP.", System.ServerProtocol.WEB, Settings.HostIP, Settings.Port, ips)) default: - showHighlight(fmt.Sprintf("Web Interface:%s://%s:%s/web/ | xTeVe is also available via the other %d IP's.", System.ServerProtocol.WEB, System.IPAddress, Settings.Port, len(System.IPAddressesV4)+len(System.IPAddressesV6)-1)) + showHighlight(fmt.Sprintf("Web Interface:%s://%s:%s/web/ | xTeVe is also available via the other %d IP's.", System.ServerProtocol.WEB, Settings.HostIP, Settings.Port, len(System.IPAddressesV4)+len(System.IPAddressesV6)-1)) } @@ -459,6 +459,8 @@ func WS(w http.ResponseWriter, r *http.Request) { case "saveSettings": var authenticationUpdate = Settings.AuthenticationWEB var previousTLSMode = Settings.TLSMode + var previousHostIP = Settings.HostIP + response.Settings, err = updateServerSettings(request) if err == nil { @@ -471,17 +473,18 @@ func WS(w http.ResponseWriter, r *http.Request) { if Settings.TLSMode != previousTLSMode { showInfo("Web server:" + "Toggling TLS mode") - err := Init() - if err != nil { - ShowError(err, 0) - } + reinitialize() - err = StartSystem(true) - if err != nil { - ShowError(err, 0) - } + response.OpenLink = System.URLBase + "/web/" + restartWebserver <- true + } + + if Settings.HostIP != previousHostIP { + showInfo("Web server:" + fmt.Sprintf("Changing host IP to %s", Settings.HostIP)) + + reinitialize() - response.NewWebURL = System.URLBase + "/web/" + response.OpenLink = System.URLBase + "/web/" restartWebserver <- true } @@ -1067,6 +1070,8 @@ func setDefaultResponseData(response ResponseStruct, data bool) (defaults Respon defaults.ClientInfo.UUID = Settings.UUID defaults.ClientInfo.Errors = WebScreenLog.Errors defaults.ClientInfo.Warnings = WebScreenLog.Warnings + defaults.IPAddressesV4Host = System.IPAddressesV4Host + defaults.Settings.HostIP = Settings.HostIP defaults.Notification = System.Notification defaults.Log = WebScreenLog diff --git a/ts/base_ts.ts b/ts/base_ts.ts index 957ed38..2633656 100644 --- a/ts/base_ts.ts +++ b/ts/base_ts.ts @@ -21,7 +21,8 @@ menuItems.push(new MainMenuItem("logout", "{{.mainMenu.item.logout}}", "logout.p // Settings categories var settingsCategory = new Array() -settingsCategory.push(new SettingsCategoryItem("{{.settings.category.general}}", "tlsMode,xteveAutoUpdate,tuner,epgSource,api"));settingsCategory.push(new SettingsCategoryItem("{{.settings.category.files}}", "update,files.update,temp.path,cache.images,xepg.replace.missing.images")) +settingsCategory.push(new SettingsCategoryItem("{{.settings.category.general}}", "tlsMode,xteveAutoUpdate,hostIP,tuner,epgSource,api")) +settingsCategory.push(new SettingsCategoryItem("{{.settings.category.files}}", "update,files.update,temp.path,cache.images,xepg.replace.missing.images")) settingsCategory.push(new SettingsCategoryItem("{{.settings.category.streaming}}", "buffer,udpxy,buffer.size.kb,buffer.timeout,user.agent,ffmpeg.path,ffmpeg.options,vlc.path,vlc.options")) settingsCategory.push(new SettingsCategoryItem("{{.settings.category.backup}}", "backup.path,backup.keep")) settingsCategory.push(new SettingsCategoryItem("{{.settings.category.authentication}}", "authentication.web,authentication.pms,authentication.m3u,authentication.xml,authentication.api")) diff --git a/ts/network_ts.ts b/ts/network_ts.ts index e907d0c..491d1a4 100644 --- a/ts/network_ts.ts +++ b/ts/network_ts.ts @@ -67,8 +67,8 @@ class Server { return; } - if (response.hasOwnProperty("newWebUrl")) { - window.location = response["newWebUrl"]; + if (response.hasOwnProperty('openLink')) { + window.location = response['openLink']; } if (response.hasOwnProperty("reload")) { @@ -106,10 +106,6 @@ class Server { showElement("popup", false) } - if (response.hasOwnProperty("openLink")) { - window.location = response["openLink"] - } - if (response.hasOwnProperty("reload")) { location.reload() } diff --git a/ts/settings_ts.ts b/ts/settings_ts.ts index ebc9985..da062d5 100644 --- a/ts/settings_ts.ts +++ b/ts/settings_ts.ts @@ -300,7 +300,23 @@ class SettingsCategory { setting.appendChild(tdRight) break - // Select + // Select + case "hostIP": + var tdLeft = document.createElement("TD") + tdLeft.innerHTML = "{{.settings.hostIP.title}}" + ":" + + var tdRight = document.createElement("TD") + var text: any[] = SERVER["ipAddressesV4Host"] + var values: any[] = SERVER["ipAddressesV4Host"] + + var select = content.createSelect(text, values, data, settingsKey) + select.setAttribute("onchange", "javascript: this.className = 'changed'") + tdRight.appendChild(select) + + setting.appendChild(tdLeft) + setting.appendChild(tdRight) + break + case "tuner": var tdLeft = document.createElement("TD") tdLeft.innerHTML = "{{.settings.tuner.title}}" + ":" @@ -492,6 +508,10 @@ class SettingsCategory { text = "{{.settings.epgSource.description}}" break + case "hostIP": + text = "{{.settings.hostIP.description}}" + break + case "tuner": text = "{{.settings.tuner.description}}" break From 5a718e7a0483fc5c6111498b20e83e6ac78c4b0b Mon Sep 17 00:00:00 2001 From: SCP002 Date: Tue, 26 Apr 2022 23:53:20 +0300 Subject: [PATCH 093/189] Implement in-memory buffer, add config option to enable it. Closes #30 --- README.md | 6 ++-- go.mod | 2 ++ go.sum | 2 ++ html/js/base_ts.js | 2 +- html/js/settings_ts.js | 14 ++++++++ html/lang/en.json | 5 +++ src/buffer.go | 75 ++++++++++++++++++++++++++--------------- src/config.go | 5 +++ src/screen.go | 2 ++ src/struct-system.go | 1 + src/struct-webserver.go | 1 + src/system.go | 4 +++ src/toolchain.go | 42 ++++++++++++++++++++++- src/update.go | 2 +- src/webUI.go | 6 ++-- src/webserver.go | 5 +++ ts/base_ts.ts | 2 +- ts/settings_ts.ts | 18 ++++++++++ xteve.go | 4 +-- 19 files changed, 159 insertions(+), 39 deletions(-) diff --git a/README.md b/README.md index 3c8fcef..7f0cd93 100644 --- a/README.md +++ b/README.md @@ -113,6 +113,7 @@ When the branch is changed, an update is only performed if there is a new versio ### Dependencies +* [avfs](https://github.com/avfs/avfs) * [go-ssdp](https://github.com/koron/go-ssdp) * [lo](https://github.com/samber/lo) * [osext](https://github.com/kardianos/osext) @@ -132,11 +133,12 @@ go mod tidy Or ```sh +go get github.com/avfs/avfs@latest +go get github.com/gorilla/websocket +go get github.com/kardianos/osext go get github.com/koron/go-ssdp go get github.com/samber/lo -go get github.com/kardianos/osext go get github.com/stretchr/testify -go get github.com/gorilla/websocket ``` #### 3. Update dependencies (optional) diff --git a/go.mod b/go.mod index 80be647..4d610df 100644 --- a/go.mod +++ b/go.mod @@ -10,6 +10,8 @@ require ( github.com/stretchr/testify v1.7.1 ) +require github.com/avfs/avfs v0.28.0 + require ( github.com/davecgh/go-spew v1.1.1 // indirect github.com/pmezard/go-difflib v1.0.0 // indirect diff --git a/go.sum b/go.sum index 5da5a85..ce3e39f 100644 --- a/go.sum +++ b/go.sum @@ -1,3 +1,5 @@ +github.com/avfs/avfs v0.28.0 h1:srNIj81bIqD8J5QP/F46WfLfcy/viVDqo82XEERFm0E= +github.com/avfs/avfs v0.28.0/go.mod h1:CSGcc8vnwdripDtbXQ6hzmKazmnJFZ7m2ObyomzneEg= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= diff --git a/html/js/base_ts.js b/html/js/base_ts.js index bbf5260..8460816 100644 --- a/html/js/base_ts.js +++ b/html/js/base_ts.js @@ -20,7 +20,7 @@ menuItems.push(new MainMenuItem("logout", "{{.mainMenu.item.logout}}", "logout.p var settingsCategory = new Array(); settingsCategory.push(new SettingsCategoryItem("{{.settings.category.general}}", "tlsMode,xteveAutoUpdate,hostIP,tuner,epgSource,api")); settingsCategory.push(new SettingsCategoryItem("{{.settings.category.files}}", "update,files.update,temp.path,cache.images,xepg.replace.missing.images")); -settingsCategory.push(new SettingsCategoryItem("{{.settings.category.streaming}}", "buffer,udpxy,buffer.size.kb,buffer.timeout,user.agent,ffmpeg.path,ffmpeg.options,vlc.path,vlc.options")); +settingsCategory.push(new SettingsCategoryItem("{{.settings.category.streaming}}", "buffer,udpxy,buffer.size.kb,storeBufferInRAM,buffer.timeout,user.agent,ffmpeg.path,ffmpeg.options,vlc.path,vlc.options")); settingsCategory.push(new SettingsCategoryItem("{{.settings.category.backup}}", "backup.path,backup.keep")); settingsCategory.push(new SettingsCategoryItem("{{.settings.category.authentication}}", "authentication.web,authentication.pms,authentication.m3u,authentication.xml,authentication.api")); function showPopUpElement(elm) { diff --git a/html/js/settings_ts.js b/html/js/settings_ts.js index d1df0f7..d2cb8e9 100644 --- a/html/js/settings_ts.js +++ b/html/js/settings_ts.js @@ -216,6 +216,17 @@ class SettingsCategory { setting.appendChild(tdLeft); setting.appendChild(tdRight); break; + case "storeBufferInRAM": + var tdLeft = document.createElement("TD"); + tdLeft.innerHTML = "{{.settings.storeBufferInRAM.title}}" + ":"; + var tdRight = document.createElement("TD"); + var input = content.createCheckbox(settingsKey); + input.checked = data; + input.setAttribute("onchange", "javascript: this.className = 'changed'"); + tdRight.appendChild(input); + setting.appendChild(tdLeft); + setting.appendChild(tdRight); + break; case "xteveAutoUpdate": var tdLeft = document.createElement("TD"); tdLeft.innerHTML = "{{.settings.xteveAutoUpdate.title}}" + ":"; @@ -371,6 +382,9 @@ class SettingsCategory { case "buffer.size.kb": text = "{{.settings.bufferSize.description}}"; break; + case "storeBufferInRAM": + text = "{{.settings.storeBufferInRAM.description}}"; + break; case "buffer.timeout": text = "{{.settings.bufferTimeout.description}}"; break; diff --git a/html/lang/en.json b/html/lang/en.json index 4cc39f1..6c7ee56 100644 --- a/html/lang/en.json +++ b/html/lang/en.json @@ -471,6 +471,11 @@ "title": "Buffer Size", "description": "Buffer size in MB.
M3U8: If the TS segment smaller then the buffer size, the file size of the segment is used." }, + "storeBufferInRAM": + { + "title": "Store buffer in RAM", + "description": "If checked, write buffer to RAM instead of writing to disk" + }, "bufferTimeout": { "title": "Timeout for new client connections", diff --git a/src/buffer.go b/src/buffer.go index e6f3cbb..206bc2c 100644 --- a/src/buffer.go +++ b/src/buffer.go @@ -21,8 +21,13 @@ import ( "strconv" "strings" "time" + + "github.com/avfs/avfs/vfs/memfs" + "github.com/avfs/avfs/vfs/osfs" ) +// TODO: Removes VFS buffer files but dont write them again (?) + func createStreamID(stream map[int]ThisStream) (streamID int) { var debug string @@ -69,7 +74,7 @@ func bufferingStream(playlistID, streamingURL, channelName string, w http.Respon playlist.Streams = make(map[int]ThisStream) playlist.Clients = make(map[int]ThisClient) - err := checkFolder(playlist.Folder) + err := checkVFSFolder(playlist.Folder, bufferVFS) if err != nil { ShowError(err, 000) httpStatusError(w, r, 404) @@ -293,17 +298,17 @@ func bufferingStream(playlistID, streamingURL, channelName string, w http.Respon } - if _, err := os.Stat(stream.Folder); os.IsNotExist(err) { + if _, err := bufferVFS.Stat(stream.Folder); fsIsNotExistErr(err) { killClientConnection(streamID, playlistID, false) return } - var tmpFiles = getTmpFiles(&stream) + var tmpFiles = getBufTmpFiles(&stream) //fmt.Println("Buffer Loop:", stream.Connection) for _, f := range tmpFiles { - if _, err := os.Stat(stream.Folder); os.IsNotExist(err) { + if _, err := bufferVFS.Stat(stream.Folder); fsIsNotExistErr(err) { killClientConnection(streamID, playlistID, false) return } @@ -312,7 +317,7 @@ func bufferingStream(playlistID, streamingURL, channelName string, w http.Respon var fileName = stream.Folder + f - file, err := os.Open(fileName) + file, err := bufferVFS.Open(fileName) defer file.Close() if err == nil { @@ -370,7 +375,9 @@ func bufferingStream(playlistID, streamingURL, channelName string, w http.Respon if n > 20 { var fileToRemove = stream.Folder + oldSegments[0] - os.RemoveAll(getPlatformFile(fileToRemove)) + if err = bufferVFS.RemoveAll(getPlatformFile(fileToRemove)); err != nil { + ShowError(err, 4007) + } oldSegments = append(oldSegments[:0], oldSegments[0+1:]...) } @@ -402,14 +409,14 @@ func bufferingStream(playlistID, streamingURL, channelName string, w http.Respon } -func getTmpFiles(stream *ThisStream) (tmpFiles []string) { +func getBufTmpFiles(stream *ThisStream) (tmpFiles []string) { var tmpFolder = stream.Folder var fileIDs []float64 - if _, err := os.Stat(tmpFolder); !os.IsNotExist(err) { + if _, err := bufferVFS.Stat(tmpFolder); !fsIsNotExistErr(err) { - files, err := ioutil.ReadDir(getPlatformPath(tmpFolder)) + files, err := bufferVFS.ReadDir(getPlatformPath(tmpFolder)) if err != nil { ShowError(err, 000) return @@ -511,7 +518,9 @@ func clientConnection(stream ThisStream) (status bool) { debug = fmt.Sprintf("Remove tmp folder:%s", stream.Folder) showDebug(debug, 1) - os.RemoveAll(stream.Folder) + if err := bufferVFS.RemoveAll(stream.Folder); err != nil { + ShowError(err, 4005) + } if p, ok := BufferInformation.Load(stream.PlaylistID); ok { @@ -592,9 +601,11 @@ func connectToStreamingServer(streamID int, playlistID string) { } - os.RemoveAll(getPlatformPath(tmpFolder)) + if err := bufferVFS.RemoveAll(getPlatformPath(tmpFolder)); err != nil { + ShowError(err, 4005) + } - err := checkFolder(tmpFolder) + err := checkVFSFolder(tmpFolder, bufferVFS) if err != nil { ShowError(err, 0) addErrorToStream(err) @@ -730,8 +741,6 @@ func connectToStreamingServer(streamID int, playlistID string) { } - defer resp.Body.Close() - } defer resp.Body.Close() @@ -845,7 +854,7 @@ func connectToStreamingServer(streamID int, playlistID string) { return } - bufferFile, err := os.Create(tmpFile) + bufferFile, err := bufferVFS.Create(tmpFile) if err != nil { addErrorToStream(err) @@ -897,8 +906,7 @@ func connectToStreamingServer(streamID int, playlistID string) { resp.Body.Close() bufferFile.Close() - err = os.RemoveAll(stream.Folder) - if err != nil { + if err = bufferVFS.RemoveAll(stream.Folder); err != nil { ShowError(err, 4005) } return @@ -939,15 +947,14 @@ func connectToStreamingServer(streamID int, playlistID string) { bufferFile.Close() resp.Body.Close() - err = os.RemoveAll(stream.Folder) - if err != nil { + if err = bufferVFS.RemoveAll(stream.Folder); err != nil { ShowError(err, 4005) } return } - bufferFile, err = os.Create(tmpFile) + bufferFile, err = bufferVFS.Create(tmpFile) if err != nil { addErrorToStream(err) resp.Body.Close() @@ -1008,7 +1015,7 @@ func connectToStreamingServer(streamID int, playlistID string) { _ = i time.Sleep(time.Duration(100) * time.Millisecond) - if _, err := os.Stat(stream.Folder); os.IsNotExist(err) { + if _, err := bufferVFS.Stat(stream.Folder); fsIsNotExistErr(err) { break } @@ -1279,7 +1286,7 @@ func parseM3U8(stream *ThisStream) (err error) { _ = i time.Sleep(time.Duration(100) * time.Millisecond) - if _, err := os.Stat(stream.Folder); os.IsNotExist(err) { + if _, err := bufferVFS.Stat(stream.Folder); fsIsNotExistErr(err) { break } @@ -1390,9 +1397,11 @@ func thirdPartyBuffer(streamID int, playlistID string) { } - os.RemoveAll(getPlatformPath(tmpFolder)) + if err := bufferVFS.RemoveAll(getPlatformPath(tmpFolder)); err != nil { + ShowError(err, 4005) + } - err := checkFolder(tmpFolder) + err := checkVFSFolder(tmpFolder, bufferVFS) if err != nil { ShowError(err, 0) addErrorToStream(err) @@ -1411,7 +1420,7 @@ func thirdPartyBuffer(streamID int, playlistID string) { var tmpFile = fmt.Sprintf("%s%d.ts", tmpFolder, tmpSegment) - f, err := os.Create(tmpFile) + f, err := bufferVFS.Create(tmpFile) f.Close() if err != nil { addErrorToStream(err) @@ -1508,7 +1517,7 @@ func thirdPartyBuffer(streamID int, playlistID string) { }() - f, err = os.OpenFile(tmpFile, os.O_APPEND|os.O_WRONLY, 0600) + f, err = bufferVFS.OpenFile(tmpFile, os.O_APPEND|os.O_WRONLY, 0600) if err != nil { panic(err) } @@ -1607,8 +1616,8 @@ func thirdPartyBuffer(streamID int, playlistID string) { fileSize = 0 var errCreate, errOpen error - f, errCreate = os.Create(tmpFile) - f, errOpen = os.OpenFile(tmpFile, os.O_APPEND|os.O_WRONLY, 0600) + f, errCreate = bufferVFS.Create(tmpFile) + f, errOpen = bufferVFS.OpenFile(tmpFile, os.O_APPEND|os.O_WRONLY, 0600) if errCreate != nil || errOpen != nil { cmd.Process.Kill() ShowError(err, 0) @@ -1660,6 +1669,16 @@ func getTuner(id, playlistType string) (tuner int) { return } +func initBufferVFS(virtual bool) { + + if virtual { + bufferVFS = memfs.New(memfs.WithMainDirs()) + } else { + bufferVFS = osfs.New() + } + +} + func debugRequest(req *http.Request) { var debugLevel = 3 diff --git a/src/config.go b/src/config.go index b66cade..6413c1e 100644 --- a/src/config.go +++ b/src/config.go @@ -6,6 +6,8 @@ import ( "runtime" "strings" "sync" + + "github.com/avfs/avfs" ) // System : Contains all System Information @@ -29,6 +31,9 @@ var BufferInformation sync.Map // BufferClients : Number of Clients playing a Stream over the Buffer var BufferClients sync.Map +// bufferVFS : Filesystem to use for the Buffer +var bufferVFS avfs.VFS + // Lock : Lock Map var Lock = sync.RWMutex{} diff --git a/src/screen.go b/src/screen.go index 8fdfb04..fe012d9 100644 --- a/src/screen.go +++ b/src/screen.go @@ -372,6 +372,8 @@ func getErrMsg(errCode int) (errMsg string) { errMsg = fmt.Sprintf("Temporary buffer files could not be deleted") case 4006: errMsg = fmt.Sprintf("Server connection timeout") + case 4007: + errMsg = fmt.Sprintf("Old temporary buffer file could not be deleted") // Buffer (M3U8) case 4050: diff --git a/src/struct-system.go b/src/struct-system.go index 9acd2d0..df7d6b2 100644 --- a/src/struct-system.go +++ b/src/struct-system.go @@ -310,6 +310,7 @@ type SettingsStruct struct { MappingFirstChannel float64 `json:"mapping.first.channel"` Port string `json:"port"` SSDP bool `json:"ssdp"` + StoreBufferInRAM bool `json:"storeBufferInRAM"` TempPath string `json:"temp.path"` TLSMode bool `json:"tlsMode"` Tuner int `json:"tuner"` diff --git a/src/struct-webserver.go b/src/struct-webserver.go index b850e54..485e25f 100644 --- a/src/struct-webserver.go +++ b/src/struct-webserver.go @@ -46,6 +46,7 @@ type RequestStruct struct { XteveAutoUpdate *bool `json:"xteveAutoUpdate,omitempty"` SchemeM3U *string `json:"scheme.m3u,omitempty"` SchemeXML *string `json:"scheme.xml,omitempty"` + StoreBufferInRAM *bool `json:"storeBufferInRAM,omitempty"` } `json:"settings,omitempty"` // Upload Logo diff --git a/src/system.go b/src/system.go index 314ed19..5df0c23 100644 --- a/src/system.go +++ b/src/system.go @@ -129,6 +129,7 @@ func loadSettings() (settings SettingsStruct, err error) { defaults["mapping.first.channel"] = 1000 defaults["port"] = "34400" defaults["ssdp"] = true + defaults["storeBufferInRAM"] = false defaults["temp.path"] = System.Folder.Temp defaults["tlsMode"] = false defaults["tuner"] = 1 @@ -171,6 +172,9 @@ func loadSettings() (settings SettingsStruct, err error) { settings.VLCPath = searchFileInOS("cvlc") } + // Initialze virutal filesystem for the Buffer + initBufferVFS(settings.StoreBufferInRAM) + settings.TempPath = getValidTempDir(settings.TempPath) err = saveSettings(settings) diff --git a/src/toolchain.go b/src/toolchain.go index 672f8f5..41c3af0 100644 --- a/src/toolchain.go +++ b/src/toolchain.go @@ -6,7 +6,9 @@ import ( "crypto/rand" "encoding/hex" "encoding/json" + "errors" "fmt" + "io/fs" "io/ioutil" "net" "os" @@ -17,6 +19,7 @@ import ( "strings" "text/template" + "github.com/avfs/avfs" "github.com/samber/lo" ) @@ -47,6 +50,43 @@ func checkFolder(path string) (err error) { return nil } +// checkVFSFolder : Checks whether the Folder exists in provided virtual filesystem, if not, the Folder is created +func checkVFSFolder(path string, vfs avfs.VFS) (err error) { + + var debug string + _, err = vfs.Stat(filepath.Dir(path)) + + if fsIsNotExistErr(err) { + // Folder does not exist, will now be created + + err = vfs.MkdirAll(getPlatformPath(path), 0755) + if err == nil { + + debug = fmt.Sprintf("Create virtual filesystem Folder:%s", path) + showDebug(debug, 1) + + } else { + return err + } + + return nil + } + + return nil +} + +// fsIsNotExistErr : Returns true whether the is known to report that a file or directory does not exist, +// including virtual file system errors +func fsIsNotExistErr(err error) bool { + if errors.Is(err, fs.ErrNotExist) || + errors.Is(err, avfs.ErrWinPathNotFound) || + errors.Is(err, avfs.ErrWinFileNotFound) { + return true + } + + return false +} + // Checks whether the File exists in the Filesystem func checkFile(filename string) (err error) { @@ -123,7 +163,7 @@ func getPlatformPath(path string) string { // getDefaultTempDir returns default temporary folder path + application name, e.g.: "/tmp/xteve/" or %Tmp%\xteve. // -// Function assumes default OS temporary folder exists and writable. +// Function assumes default OS temporary folder exists and writable. func getDefaultTempDir() string { return os.TempDir() + string(os.PathSeparator) + System.AppName + string(os.PathSeparator) } diff --git a/src/update.go b/src/update.go index b5697bb..e4b8dac 100644 --- a/src/update.go +++ b/src/update.go @@ -266,7 +266,7 @@ checkVersion: goto checkVersion - case "2.2.0", "2.2.1", "2.2.2": + case "2.2.0", "2.2.1", "2.2.2", "2.2.3": // If there are changes to the Database in a later update, continue here break diff --git a/src/webUI.go b/src/webUI.go index fc56f65..c0e6d4c 100644 --- a/src/webUI.go +++ b/src/webUI.go @@ -25,14 +25,14 @@ func loadHTMLMap() { webUI["html/img/xmltv.png"] = "iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAAAXNSR0IArs4c6QAAAAlwSFlzAAAsSwAALEsBpT2WqQAABCRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IlhNUCBDb3JlIDUuNC4wIj4KICAgPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIgogICAgICAgICAgICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgICAgICAgICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyI+CiAgICAgICAgIDx0aWZmOlJlc29sdXRpb25Vbml0PjI8L3RpZmY6UmVzb2x1dGlvblVuaXQ+CiAgICAgICAgIDx0aWZmOkNvbXByZXNzaW9uPjU8L3RpZmY6Q29tcHJlc3Npb24+CiAgICAgICAgIDx0aWZmOlhSZXNvbHV0aW9uPjI4ODwvdGlmZjpYUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6T3JpZW50YXRpb24+MTwvdGlmZjpPcmllbnRhdGlvbj4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+Mjg4PC90aWZmOllSZXNvbHV0aW9uPgogICAgICAgICA8ZXhpZjpQaXhlbFhEaW1lbnNpb24+NTA8L2V4aWY6UGl4ZWxYRGltZW5zaW9uPgogICAgICAgICA8ZXhpZjpDb2xvclNwYWNlPjE8L2V4aWY6Q29sb3JTcGFjZT4KICAgICAgICAgPGV4aWY6UGl4ZWxZRGltZW5zaW9uPjUwPC9leGlmOlBpeGVsWURpbWVuc2lvbj4KICAgICAgICAgPGRjOnN1YmplY3Q+CiAgICAgICAgICAgIDxyZGY6QmFnLz4KICAgICAgICAgPC9kYzpzdWJqZWN0PgogICAgICAgICA8eG1wOk1vZGlmeURhdGU+MjAxOC0wNy0yOFQyMDowNzozMzwveG1wOk1vZGlmeURhdGU+CiAgICAgICAgIDx4bXA6Q3JlYXRvclRvb2w+UGl4ZWxtYXRvciAzLjM8L3htcDpDcmVhdG9yVG9vbD4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgIDwvcmRmOlJERj4KPC94OnhtcG1ldGE+Co6j9bsAAAGgSURBVGgF7VqxTsNADL0gYGEon8DOwsbAAH8BYmJn6cYIn8DC3h0+oixISFRiYYCJL0AwMMBAeK5w2rpV6uikxHfYknW98+vds18TK21DWGBlWR7CH+BfcEv2AzLP8HP42gLqkyUATuEp2PWEdQjF9ATs1zF/g29Mrxt+vVcUxR3xWxEktzFPJQmivsv8ZSI9DiQyVnxlIonwn6fpiczXpNuVVXH8O+a3Ys3y9NUyuf/NTTbEHZTjUlGSRzSiPhroUIENwB4AS/vS/susDwDhTpYBER9g7wHh5DWyibV9CiitCZbIafDEYUuJHQI3Nr/9ciWsjK6IFSWYhyvClbAyZqOIlYJG84jq7E1Ot97Zm+TinV1TrWwudk9EI3ebGFekzWprzspGEU2ySWCiOrs/s9dr7M/s9fVJJJrNXcsTsfaJc0WsKZINH+/sf1Jqvl1n1f2ZnStRN/pdq646XcSkIh9dkIg4s+IrE3nCpp8RG7f91ns+cCYR/LD4jcAZB42PN+A7/mcQ8ZxJhBYQvMJwBB/BKTFLVoLMC/wCfgyv7BesTKUC2LKM3wAAAABJRU5ErkJggg==" webUI["html/index.html"] = "PCFkb2N0eXBlIGh0bWw+DQo8aHRtbD4NCiAgPGhlYWQ+DQogICAgPG1ldGEgY2hhcnNldD0idXRmLTgiPg0KICAgIDwhLS0tDQogICAgPG1ldGEgbmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9IndpZHRoPWRldmljZS13aWR0aCwgaW5pdGlhbC1zY2FsZT0xLjAiIC8+IA0KICAgIC0tPg0KICAgIDx0aXRsZT54VGVWZTwvdGl0bGU+DQogICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJjc3Mvc2NyZWVuLmNzcyIgdHlwZT0idGV4dC9jc3MiPg0KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iY3NzL2Jhc2UuY3NzIiB0eXBlPSJ0ZXh0L2NzcyI+DQoNCiAgICA8c2NyaXB0IGxhbmd1YWdlPSJqYXZhc2NyaXB0IiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ianMvbmV0d29ya190cy5qcyI+PC9zY3JpcHQ+DQogICAgPHNjcmlwdCBsYW5ndWFnZT0iamF2YXNjcmlwdCIgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9ImpzL21lbnVfdHMuanMiPjwvc2NyaXB0Pg0KICAgIDxzY3JpcHQgbGFuZ3VhZ2U9ImphdmFzY3JpcHQiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJqcy9zZXR0aW5nc190cy5qcyI+PC9zY3JpcHQ+DQogICAgPHNjcmlwdCBsYW5ndWFnZT0iamF2YXNjcmlwdCIgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9ImpzL2xvZ3NfdHMuanMiPjwvc2NyaXB0Pg0KICAgIDxzY3JpcHQgbGFuZ3VhZ2U9ImphdmFzY3JpcHQiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJqcy9iYXNlX3RzLmpzIj48L3NjcmlwdD4NCg0KICA8L2hlYWQ+DQoNCiAgICA8Ym9keSBvbmxvYWQ9ImphdmFzY3JpcHQ6IFBhZ2VSZWFkeSgpOyI+DQoNCiAgICAgIDxkaXYgaWQ9ImxvYWRpbmciIGNsYXNzPSJub25lIj4NCiAgICAgICAgPGRpdiBjbGFzcz0ibG9hZGVyIj48L2Rpdj4NCiAgICAgIDwvZGl2Pg0KDQogICAgICA8ZGl2IGlkPSJwb3B1cCIgY2xhc3M9Im5vbmUiPg0KICAgICAgICA8ZGl2IGlkPSJwb3B1cC1jdXN0b20iPjwvZGl2Pg0KICAgICAgPC9kaXY+DQoNCiAgICAgIDxkaXYgaWQ9ImxheW91dCI+DQoNCiAgICAgICAgPCEtLQ0KICAgICAgICA8ZGl2IGlkPSJub3RpZmljYXRpb24iPg0KICAgICAgICAgIDxkaXYgY2xhc3M9ImVsZW1lbnQiPg0KICAgICAgICAgICAgPGg1PlhFUEc8L2g1Pg0KICAgICAgICAgICAgPHByZT4xMS4wNS4yMDE5IC0gMjA6MjE8L3ByZT4NCiAgICAgICAgICAgIDxocj4NCiAgICAgICAgICAgIDxwPkhhbGxvIGRhcyBpc3QgZWluIFRlc3QuIFVuZCBub2NoIG1laHIgVGV4dC48L3A+DQogICAgICAgICAgPC9kaXY+DQogICAgICAgIDwvZGl2Pg0KICAgICAgLS0+DQoNCiAgICAgICAgPGRpdiBpZD0ibWVudS13cmFwcGVyIiBjbGFzcz0ibGF5b3V0LWxlZnQiPg0KICAgICAgICAgIDxkaXYgaWQ9ICJicmFuY2giPjwvZGl2Pg0KICAgICAgICAgIDxkaXYgaWQ9ImxvZ28iPjwvZGl2Pg0KICAgICAgICAgIDxuYXYgaWQ9Im1haW4tbWVudSI+PC9uYXY+DQogICAgICAgIDwvZGl2Pg0KDQogICAgICAgIDxkaXYgY2xhc3M9ImxheW91dC1yaWdodCI+DQoNCiAgICAgICAgICA8dGFibGUgaWQ9ImNsaWVudEluZm8iIGNsYXNzPSIiPg0KDQogICAgICAgICAgICA8dHI+DQogICAgICAgICAgICAgIDx0ZCBjbGFzcz0idGRLZXkiPnhUZVZlOjwvdGQ+DQogICAgICAgICAgICAgIDx0ZCBpZD0idmVyc2lvbiIgY2xhc3M9InRkVmFsIj4mbmJzcDs8L3RkPg0KICAgICAgICAgICAgICA8dGQgY2xhc3M9InRkS2V5Ij5PUzo8L3RkPg0KICAgICAgICAgICAgICA8dGQgaWQ9Im9zIiBjbGFzcz0idGRWYWwiPiZuYnNwOzwvdGQ+DQogICAgICAgICAgICAgIDx0ZCBjbGFzcz0idGRLZXkgcGhvbmUiPkRWUiBJUDo8L3RkPg0KICAgICAgICAgICAgICA8dGQgaWQ9IkRWUiIgY2xhc3M9InRkVmFsIHBob25lIj4mbmJzcDs8L3RkPg0KICAgICAgICAgICAgPC90cj4NCg0KICAgICAgICAgICAgPHRyPg0KICAgICAgICAgICAgICA8dGQgY2xhc3M9InRkS2V5Ij5VVUlEOjwvdGQ+DQogICAgICAgICAgICAgIDx0ZCBpZD0idXVpZCIgY2xhc3M9InRkVmFsIj4mbmJzcDs8L3RkPg0KICAgICAgICAgICAgICA8dGQgY2xhc3M9InRkS2V5Ij5BcmNoOjwvdGQ+DQogICAgICAgICAgICAgIDx0ZCBpZD0iYXJjaCIgY2xhc3M9InRkVmFsIj4mbmJzcDs8L3RkPg0KICAgICAgICAgICAgICA8dGQgY2xhc3M9InRkS2V5IHBob25lIj5NM1UgVVJMOjwvdGQ+DQogICAgICAgICAgICAgIDx0ZCBpZD0ibTN1LXVybCIgY2xhc3M9InRkVmFsIHBob25lIj4mbmJzcDs8L3RkPg0KICAgICAgICAgICAgPC90cj4NCg0KICAgICAgICAgICAgPHRyPg0KICAgICAgICAgICAgICA8dGQgY2xhc3M9InRkS2V5Ij5BdmFpbGFibGUgU3RyZWFtczo8L3RkPg0KICAgICAgICAgICAgICA8dGQgaWQ9InN0cmVhbXMiIGNsYXNzPSJ0ZFZhbCI+Jm5ic3A7PC90ZD4NCiAgICAgICAgICAgICAgPHRkIGNsYXNzPSJ0ZEtleSI+RVBHIFNvdXJjZTo8L3RkPg0KICAgICAgICAgICAgICA8dGQgaWQ9ImVwZ1NvdXJjZSIgY2xhc3M9InRkVmFsIj4mbmJzcDs8L3RkPg0KICAgICAgICAgICAgICA8dGQgY2xhc3M9InRkS2V5IHBob25lIj5YRVBHIFVSTDo8L3RkPg0KICAgICAgICAgICAgICA8dGQgaWQ9InhlcGctdXJsIiBjbGFzcz0idGRWYWwgcGhvbmUiPiZuYnNwOzwvdGQ+DQogICAgICAgICAgICA8L3RyPg0KDQogICAgICAgICAgICA8dHI+DQogICAgICAgICAgICAgIDx0ZCBjbGFzcz0idGRLZXkiPlhFUEcgQ2hhbm5lbHM6PC90ZD4NCiAgICAgICAgICAgICAgPHRkIGlkPSJ4ZXBnIiBjbGFzcz0idGRWYWwiPiZuYnNwOzwvdGQ+DQogICAgICAgICAgICAgIDx0ZCBjbGFzcz0idGRLZXkiPkVycm9yczo8L3RkPg0KICAgICAgICAgICAgICA8dGQgaWQ9ImVycm9ycyIgY2xhc3M9InRkVmFsIj4mbmJzcDs8L3RkPg0KICAgICAgICAgICAgICA8dGQgY2xhc3M9InRkS2V5Ij5XYXJuaW5nczo8L3RkPg0KICAgICAgICAgICAgICA8dGQgaWQ9Indhcm5pbmdzIiBjbGFzcz0idGRWYWwiPiZuYnNwOzwvdGQ+DQogICAgICAgICAgICA8L3RyPg0KDQogICAgICAgICAgPC90YWJsZT4NCiAgICAgICAgIA0KICAgICAgICAgIDxkaXYgaWQ9Im15U3RyZWFtc0JveCIgY2xhc3M9Im5vdFZpc2libGUiPg0KDQogICAgICAgICAgICA8ZGl2IGlkPSJhbGxTdHJlYW1zIj4NCiAgICAgICAgICAgICAgPHRhYmxlIGlkPSJhY3RpdmVTdHJlYW1zIj48L3RhYmxlPg0KICAgICAgICAgICAgICA8dGFibGUgaWQ9ImluYWN0aXZlU3RyZWFtcyI+PC90YWJsZT4NCiAgICAgICAgICAgIDwvZGl2Pg0KDQogICAgICAgICAgPC9kaXY+DQogICAgICAgICAgDQogICAgICAgICAgPGRpdiBpZD0iY29udGVudCIgY2xhc3M9IiI+PC9kaXY+DQogICAgICAgICAgICANCiAgICAgICAgPC9kaXY+DQoNCiAgICAgIDwvZGl2Pg0KICAgICAgDQogICAgPC9ib2R5Pg0KICAgIA0KPC9odG1sPg==" webUI["html/js/authentication_ts.js"] = "ZnVuY3Rpb24gbG9naW4oKSB7DQogICAgdmFyIGVyciA9IGZhbHNlOw0KICAgIHZhciBkYXRhID0gbmV3IE9iamVjdCgpOw0KICAgIHZhciBkaXYgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29udGVudCIpOw0KICAgIHZhciBmb3JtID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImF1dGhlbnRpY2F0aW9uIik7DQogICAgdmFyIGlucHV0cyA9IGRpdi5nZXRFbGVtZW50c0J5VGFnTmFtZSgiSU5QVVQiKTsNCiAgICBjb25zb2xlLmxvZyhpbnB1dHMpOw0KICAgIGZvciAodmFyIGkgPSBpbnB1dHMubGVuZ3RoIC0gMTsgaSA+PSAwOyBpLS0pIHsNCiAgICAgICAgdmFyIGtleSA9IGlucHV0c1tpXS5uYW1lOw0KICAgICAgICB2YXIgdmFsdWUgPSBpbnB1dHNbaV0udmFsdWU7DQogICAgICAgIGlmICh2YWx1ZS5sZW5ndGggPT0gMCkgew0KICAgICAgICAgICAgaW5wdXRzW2ldLnN0eWxlLmJvcmRlckNvbG9yID0gInJlZCI7DQogICAgICAgICAgICBlcnIgPSB0cnVlOw0KICAgICAgICB9DQogICAgICAgIGRhdGFba2V5XSA9IHZhbHVlOw0KICAgIH0NCiAgICBpZiAoZXJyID09IHRydWUpIHsNCiAgICAgICAgZGF0YSA9IG5ldyBPYmplY3QoKTsNCiAgICAgICAgcmV0dXJuOw0KICAgIH0NCiAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgiY29uZmlybSIpKSB7DQogICAgICAgIGlmIChkYXRhWyJjb25maXJtIl0gIT0gZGF0YVsicGFzc3dvcmQiXSkgew0KICAgICAgICAgICAgYWxlcnQoInNkYWZzZCIpOw0KICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Bhc3N3b3JkJykuc3R5bGUuYm9yZGVyQ29sb3IgPSAicmVkIjsNCiAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjb25maXJtJykuc3R5bGUuYm9yZGVyQ29sb3IgPSAicmVkIjsNCiAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJlcnIiKS5pbm5lckhUTUwgPSAie3suYWNjb3VudC5mYWlsZWR9fSI7DQogICAgICAgICAgICByZXR1cm47DQogICAgICAgIH0NCiAgICB9DQogICAgY29uc29sZS5sb2coZGF0YSk7DQogICAgZm9ybS5zdWJtaXQoKTsNCn0NCg==" - webUI["html/js/base_ts.js"] = "dmFyIFNFUlZFUiA9IG5ldyBPYmplY3QoKTsNCnZhciBCVUxLX0VESVQgPSBmYWxzZTsNCnZhciBDT0xVTU5fVE9fU09SVDsNCnZhciBTRUFSQ0hfTUFQUElORyA9IG5ldyBPYmplY3QoKTsNCnZhciBVTkRPID0gbmV3IE9iamVjdCgpOw0KdmFyIFNFUlZFUl9DT05ORUNUSU9OID0gZmFsc2U7DQp2YXIgV1NfQVZBSUxBQkxFID0gZmFsc2U7DQovLyBNZW51DQp2YXIgbWVudUl0ZW1zID0gbmV3IEFycmF5KCk7DQptZW51SXRlbXMucHVzaChuZXcgTWFpbk1lbnVJdGVtKCJwbGF5bGlzdCIsICJ7ey5tYWluTWVudS5pdGVtLnBsYXlsaXN0fX0iLCAibTN1LnBuZyIsICJ7ey5tYWluTWVudS5oZWFkbGluZS5wbGF5bGlzdH19IikpOw0KLy9tZW51SXRlbXMucHVzaChuZXcgTWFpbk1lbnVJdGVtKCJwbXNJRCIsICJ7ey5tYWluTWVudS5pdGVtLnBtc0lEfX0iLCAibnVtYmVyLnBuZyIsICJ7ey5tYWluTWVudS5oZWFkbGluZS5wbXNJRH19IikpDQptZW51SXRlbXMucHVzaChuZXcgTWFpbk1lbnVJdGVtKCJmaWx0ZXIiLCAie3subWFpbk1lbnUuaXRlbS5maWx0ZXJ9fSIsICJmaWx0ZXIucG5nIiwgInt7Lm1haW5NZW51LmhlYWRsaW5lLmZpbHRlcn19IikpOw0KbWVudUl0ZW1zLnB1c2gobmV3IE1haW5NZW51SXRlbSgieG1sdHYiLCAie3subWFpbk1lbnUuaXRlbS54bWx0dn19IiwgInhtbHR2LnBuZyIsICJ7ey5tYWluTWVudS5oZWFkbGluZS54bWx0dn19IikpOw0KbWVudUl0ZW1zLnB1c2gobmV3IE1haW5NZW51SXRlbSgibWFwcGluZyIsICJ7ey5tYWluTWVudS5pdGVtLm1hcHBpbmd9fSIsICJtYXBwaW5nLnBuZyIsICJ7ey5tYWluTWVudS5oZWFkbGluZS5tYXBwaW5nfX0iKSk7DQptZW51SXRlbXMucHVzaChuZXcgTWFpbk1lbnVJdGVtKCJ1c2VycyIsICJ7ey5tYWluTWVudS5pdGVtLnVzZXJzfX0iLCAidXNlcnMucG5nIiwgInt7Lm1haW5NZW51LmhlYWRsaW5lLnVzZXJzfX0iKSk7DQptZW51SXRlbXMucHVzaChuZXcgTWFpbk1lbnVJdGVtKCJzZXR0aW5ncyIsICJ7ey5tYWluTWVudS5pdGVtLnNldHRpbmdzfX0iLCAic2V0dGluZ3MucG5nIiwgInt7Lm1haW5NZW51LmhlYWRsaW5lLnNldHRpbmdzfX0iKSk7DQptZW51SXRlbXMucHVzaChuZXcgTWFpbk1lbnVJdGVtKCJsb2ciLCAie3subWFpbk1lbnUuaXRlbS5sb2d9fSIsICJsb2cucG5nIiwgInt7Lm1haW5NZW51LmhlYWRsaW5lLmxvZ319IikpOw0KbWVudUl0ZW1zLnB1c2gobmV3IE1haW5NZW51SXRlbSgibG9nb3V0IiwgInt7Lm1haW5NZW51Lml0ZW0ubG9nb3V0fX0iLCAibG9nb3V0LnBuZyIsICJ7ey5tYWluTWVudS5oZWFkbGluZS5sb2dvdXR9fSIpKTsNCi8vIFNldHRpbmdzIGNhdGVnb3JpZXMNCnZhciBzZXR0aW5nc0NhdGVnb3J5ID0gbmV3IEFycmF5KCk7DQpzZXR0aW5nc0NhdGVnb3J5LnB1c2gobmV3IFNldHRpbmdzQ2F0ZWdvcnlJdGVtKCJ7ey5zZXR0aW5ncy5jYXRlZ29yeS5nZW5lcmFsfX0iLCAidGxzTW9kZSx4dGV2ZUF1dG9VcGRhdGUsaG9zdElQLHR1bmVyLGVwZ1NvdXJjZSxhcGkiKSk7DQpzZXR0aW5nc0NhdGVnb3J5LnB1c2gobmV3IFNldHRpbmdzQ2F0ZWdvcnlJdGVtKCJ7ey5zZXR0aW5ncy5jYXRlZ29yeS5maWxlc319IiwgInVwZGF0ZSxmaWxlcy51cGRhdGUsdGVtcC5wYXRoLGNhY2hlLmltYWdlcyx4ZXBnLnJlcGxhY2UubWlzc2luZy5pbWFnZXMiKSk7DQpzZXR0aW5nc0NhdGVnb3J5LnB1c2gobmV3IFNldHRpbmdzQ2F0ZWdvcnlJdGVtKCJ7ey5zZXR0aW5ncy5jYXRlZ29yeS5zdHJlYW1pbmd9fSIsICJidWZmZXIsdWRweHksYnVmZmVyLnNpemUua2IsYnVmZmVyLnRpbWVvdXQsdXNlci5hZ2VudCxmZm1wZWcucGF0aCxmZm1wZWcub3B0aW9ucyx2bGMucGF0aCx2bGMub3B0aW9ucyIpKTsNCnNldHRpbmdzQ2F0ZWdvcnkucHVzaChuZXcgU2V0dGluZ3NDYXRlZ29yeUl0ZW0oInt7LnNldHRpbmdzLmNhdGVnb3J5LmJhY2t1cH19IiwgImJhY2t1cC5wYXRoLGJhY2t1cC5rZWVwIikpOw0Kc2V0dGluZ3NDYXRlZ29yeS5wdXNoKG5ldyBTZXR0aW5nc0NhdGVnb3J5SXRlbSgie3suc2V0dGluZ3MuY2F0ZWdvcnkuYXV0aGVudGljYXRpb259fSIsICJhdXRoZW50aWNhdGlvbi53ZWIsYXV0aGVudGljYXRpb24ucG1zLGF1dGhlbnRpY2F0aW9uLm0zdSxhdXRoZW50aWNhdGlvbi54bWwsYXV0aGVudGljYXRpb24uYXBpIikpOw0KZnVuY3Rpb24gc2hvd1BvcFVwRWxlbWVudChlbG0pIHsNCiAgICB2YXIgYWxsRWxlbWVudHMgPSBuZXcgQXJyYXkoInBvcHVwLWN1c3RvbSIpOw0KICAgIGZvciAodmFyIGkgPSAwOyBpIDwgYWxsRWxlbWVudHMubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgc2hvd0VsZW1lbnQoYWxsRWxlbWVudHNbaV0sIGZhbHNlKTsNCiAgICB9DQogICAgc2hvd0VsZW1lbnQoZWxtLCB0cnVlKTsNCiAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsNCiAgICAgICAgc2hvd0VsZW1lbnQoInBvcHVwIiwgdHJ1ZSk7DQogICAgfSwgMTApOw0KICAgIHJldHVybjsNCn0NCmZ1bmN0aW9uIHNob3dFbGVtZW50KGVsbUlELCB0eXBlKSB7DQogICAgdmFyIGNzc0NsYXNzOw0KICAgIHN3aXRjaCAodHlwZSkgew0KICAgICAgICBjYXNlIHRydWU6DQogICAgICAgICAgICBjc3NDbGFzcyA9ICJibG9jayI7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSBmYWxzZToNCiAgICAgICAgICAgIGNzc0NsYXNzID0gIm5vbmUiOw0KICAgICAgICAgICAgYnJlYWs7DQogICAgfQ0KICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGVsbUlEKS5jbGFzc05hbWUgPSBjc3NDbGFzczsNCn0NCmZ1bmN0aW9uIGNoYW5nZUJ1dHRvbkFjdGlvbihlbGVtZW50LCBidXR0b25JRCwgYXR0cmlidXRlKSB7DQogICAgdmFyIHZhbHVlID0gZWxlbWVudC5vcHRpb25zW2VsZW1lbnQuc2VsZWN0ZWRJbmRleF0udmFsdWU7DQogICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoYnV0dG9uSUQpLnNldEF0dHJpYnV0ZShhdHRyaWJ1dGUsIHZhbHVlKTsNCn0NCmZ1bmN0aW9uIGdldExvY2FsRGF0YShkYXRhVHlwZSwgaWQpIHsNCiAgICBsZXQgZGF0YSA9IHt9Ow0KICAgIHN3aXRjaCAoZGF0YVR5cGUpIHsNCiAgICAgICAgY2FzZSAibTN1IjoNCiAgICAgICAgICAgIGRhdGEgPSBTRVJWRVJbInNldHRpbmdzIl1bImZpbGVzIl1bZGF0YVR5cGVdW2lkXTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJoZGhyIjoNCiAgICAgICAgICAgIGRhdGEgPSBTRVJWRVJbInNldHRpbmdzIl1bImZpbGVzIl1bZGF0YVR5cGVdW2lkXTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJmaWx0ZXIiOg0KICAgICAgICBjYXNlICJjdXN0b20tZmlsdGVyIjoNCiAgICAgICAgY2FzZSAiZ3JvdXAtdGl0bGUiOg0KICAgICAgICAgICAgaWYgKGlkID09IC0xKSB7DQogICAgICAgICAgICAgICAgZGF0YVsiYWN0aXZlIl0gPSB0cnVlOw0KICAgICAgICAgICAgICAgIGRhdGFbImNhc2VTZW5zaXRpdmUiXSA9IGZhbHNlOw0KICAgICAgICAgICAgICAgIGRhdGFbImRlc2NyaXB0aW9uIl0gPSAiIjsNCiAgICAgICAgICAgICAgICBkYXRhWyJleGNsdWRlIl0gPSAiIjsNCiAgICAgICAgICAgICAgICBkYXRhWyJmaWx0ZXIiXSA9ICIiOw0KICAgICAgICAgICAgICAgIGRhdGFbImluY2x1ZGUiXSA9ICIiOw0KICAgICAgICAgICAgICAgIGRhdGFbIm5hbWUiXSA9ICIiOw0KICAgICAgICAgICAgICAgIGRhdGFbInR5cGUiXSA9ICJncm91cC10aXRsZSI7DQogICAgICAgICAgICAgICAgZGF0YVsicHJlc2VydmVNYXBwaW5nIl0gPSB0cnVlOw0KICAgICAgICAgICAgICAgIGRhdGFbInN0YXJ0aW5nQ2hhbm5lbCJdID0gU0VSVkVSWyJzZXR0aW5ncyJdWyJtYXBwaW5nLmZpcnN0LmNoYW5uZWwiXTsNCiAgICAgICAgICAgICAgICBkYXRhWyJkZWZhdWx0TWlzc2luZ0VQRyJdID0gIi0iOw0KICAgICAgICAgICAgICAgIFNFUlZFUlsic2V0dGluZ3MiXVsiZmlsdGVyIl1baWRdID0gZGF0YTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGRhdGEgPSBTRVJWRVJbInNldHRpbmdzIl1bImZpbHRlciJdW2lkXTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJ4bWx0diI6DQogICAgICAgICAgICBkYXRhID0gU0VSVkVSWyJzZXR0aW5ncyJdWyJmaWxlcyJdW2RhdGFUeXBlXVtpZF07DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSAidXNlcnMiOg0KICAgICAgICAgICAgZGF0YSA9IFNFUlZFUlsidXNlcnMiXVtpZF1bImRhdGEiXTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJtYXBwaW5nIjoNCiAgICAgICAgICAgIGRhdGEgPSBTRVJWRVJbInhlcGciXVsiZXBnTWFwcGluZyJdW2lkXTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJtM3VHcm91cHMiOg0KICAgICAgICAgICAgZGF0YSA9IFNFUlZFUlsiZGF0YSJdWyJwbGF5bGlzdCJdWyJtM3UiXVsiZ3JvdXBzIl07DQogICAgICAgICAgICBicmVhazsNCiAgICB9DQogICAgcmV0dXJuIGRhdGE7DQp9DQpmdW5jdGlvbiBnZXRPd25PYmpQcm9wcyhvYmplY3QpIHsNCiAgICByZXR1cm4gb2JqZWN0ID8gT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMob2JqZWN0KSA6IFtdOw0KfQ0KZnVuY3Rpb24gZ2V0QWxsU2VsZWN0ZWRDaGFubmVscygpIHsNCiAgICB2YXIgY2hhbm5lbHMgPSBuZXcgQXJyYXkoKTsNCiAgICBpZiAoQlVMS19FRElUID09IGZhbHNlKSB7DQogICAgICAgIHJldHVybiBjaGFubmVsczsNCiAgICB9DQogICAgdmFyIHRycyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb250ZW50X3RhYmxlIikuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlRSIik7DQogICAgZm9yICh2YXIgaSA9IDE7IGkgPCB0cnMubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgaWYgKHRyc1tpXS5zdHlsZS5kaXNwbGF5ICE9ICJub25lIikgew0KICAgICAgICAgICAgaWYgKHRyc1tpXS5maXJzdENoaWxkLmZpcnN0Q2hpbGQuY2hlY2tlZCA9PSB0cnVlKSB7DQogICAgICAgICAgICAgICAgY2hhbm5lbHMucHVzaCh0cnNbaV0uaWQpOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQogICAgfQ0KICAgIHJldHVybiBjaGFubmVsczsNCn0NCmZ1bmN0aW9uIHNlbGVjdEFsbENoYW5uZWxzKCkgew0KICAgIHZhciBidWxrID0gZmFsc2U7DQogICAgdmFyIHRycyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb250ZW50X3RhYmxlIikuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlRSIik7DQogICAgaWYgKHRyc1swXS5maXJzdENoaWxkLmZpcnN0Q2hpbGQuY2hlY2tlZCA9PSB0cnVlKSB7DQogICAgICAgIGJ1bGsgPSB0cnVlOw0KICAgIH0NCiAgICBmb3IgKHZhciBpID0gMTsgaSA8IHRycy5sZW5ndGg7IGkrKykgew0KICAgICAgICBpZiAodHJzW2ldLnN0eWxlLmRpc3BsYXkgIT0gIm5vbmUiKSB7DQogICAgICAgICAgICBzd2l0Y2ggKGJ1bGspIHsNCiAgICAgICAgICAgICAgICBjYXNlIHRydWU6DQogICAgICAgICAgICAgICAgICAgIHRyc1tpXS5maXJzdENoaWxkLmZpcnN0Q2hpbGQuY2hlY2tlZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgZmFsc2U6DQogICAgICAgICAgICAgICAgICAgIHRyc1tpXS5maXJzdENoaWxkLmZpcnN0Q2hpbGQuY2hlY2tlZCA9IGZhbHNlOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KICAgIH0NCiAgICByZXR1cm47DQp9DQpmdW5jdGlvbiBidWxrRWRpdCgpIHsNCiAgICBCVUxLX0VESVQgPSAhQlVMS19FRElUOw0KICAgIHZhciBjbGFzc05hbWU7DQogICAgdmFyIHJvd3MgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCJidWxrIik7DQogICAgc3dpdGNoIChCVUxLX0VESVQpIHsNCiAgICAgICAgY2FzZSB0cnVlOg0KICAgICAgICAgICAgY2xhc3NOYW1lID0gImJ1bGsgc2hvd0J1bGsiOw0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGNhc2UgZmFsc2U6DQogICAgICAgICAgICBjbGFzc05hbWUgPSAiYnVsayBoaWRlQnVsayI7DQogICAgICAgICAgICBicmVhazsNCiAgICB9DQogICAgZm9yICh2YXIgaSA9IDA7IGkgPCByb3dzLmxlbmd0aDsgaSsrKSB7DQogICAgICAgIHJvd3NbaV0uY2xhc3NOYW1lID0gY2xhc3NOYW1lOw0KICAgICAgICByb3dzW2ldLmNoZWNrZWQgPSBmYWxzZTsNCiAgICB9DQogICAgcmV0dXJuOw0KfQ0KZnVuY3Rpb24gc29ydFRhYmxlKGNvbHVtbikgew0KICAgIGlmIChjb2x1bW4gPT0gQ09MVU1OX1RPX1NPUlQpIHsNCiAgICAgICAgcmV0dXJuOw0KICAgIH0NCiAgICBjb25zdCB0YWJsZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb250ZW50X3RhYmxlIik7DQogICAgY29uc3QgdGFibGVIZWFkID0gdGFibGUuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlRSIilbMF07DQogICAgY29uc3QgdGFibGVJdGVtcyA9IHRhYmxlSGVhZC5nZXRFbGVtZW50c0J5VGFnTmFtZSgiVEQiKTsNCiAgICBjb25zdCBzb3J0QXJyID0gW107DQogICAgbGV0IHhWYWx1ZTsNCiAgICBpZiAoY29sdW1uID49IDAgJiYgQ09MVU1OX1RPX1NPUlQgPj0gMCkgew0KICAgICAgICB0YWJsZUl0ZW1zW0NPTFVNTl9UT19TT1JUXS5jbGFzc05hbWUgPSAicG9pbnRlciI7DQogICAgICAgIHRhYmxlSXRlbXNbY29sdW1uXS5jbGFzc05hbWUgPSAic29ydFRoaXMiOw0KICAgIH0NCiAgICBDT0xVTU5fVE9fU09SVCA9IGNvbHVtbjsNCiAgICBjb25zdCByb3dzID0gdGFibGUucm93czsNCiAgICBpZiAocm93c1sxXSAhPSB1bmRlZmluZWQpIHsNCiAgICAgICAgY29uc3QgdGFibGVIZWFkZXIgPSByb3dzWzBdOw0KICAgICAgICBsZXQgeCA9IHJvd3NbMV0uZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlREIilbY29sdW1uXTsNCiAgICAgICAgZm9yIChsZXQgaSA9IDE7IGkgPCByb3dzLmxlbmd0aDsgaSsrKSB7DQogICAgICAgICAgICB4ID0gcm93c1tpXS5nZXRFbGVtZW50c0J5VGFnTmFtZSgiVEQiKVtjb2x1bW5dOw0KICAgICAgICAgICAgc3dpdGNoICh4LmNoaWxkTm9kZXNbMF0udGFnTmFtZS50b0xvd2VyQ2FzZSgpKSB7DQogICAgICAgICAgICAgICAgY2FzZSAiaW5wdXQiOg0KICAgICAgICAgICAgICAgICAgICB4VmFsdWUgPSB4LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJJTlBVVCIpWzBdLnZhbHVlLnRvTG93ZXJDYXNlKCk7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgInAiOg0KICAgICAgICAgICAgICAgICAgICB4VmFsdWUgPSB4LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJQIilbMF0uaW5uZXJUZXh0LnRvTG93ZXJDYXNlKCk7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKHguY2hpbGROb2Rlc1swXS50YWdOYW1lKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIHNvcnRBcnIucHVzaCh7IGtleTogeFZhbHVlID8geFZhbHVlIDogaSwgcm93OiByb3dzW2ldIH0pOw0KICAgICAgICB9DQogICAgICAgIHdoaWxlICh0YWJsZS5maXJzdENoaWxkKSB7DQogICAgICAgICAgICB0YWJsZS5yZW1vdmVDaGlsZCh0YWJsZS5maXJzdENoaWxkKTsNCiAgICAgICAgfQ0KICAgICAgICBzb3J0QXJyLnNvcnQoKHNlMSwgc2UyKSA9PiB7DQogICAgICAgICAgICBjb25zdCBzZTFLZXlOdW0gPSBwYXJzZUZsb2F0KFN0cmluZyhzZTEua2V5KSk7DQogICAgICAgICAgICBjb25zdCBzZTJLZXlOdW0gPSBwYXJzZUZsb2F0KFN0cmluZyhzZTIua2V5KSk7DQogICAgICAgICAgICBpZiAoIWlzTmFOKHNlMUtleU51bSkgJiYgIWlzTmFOKHNlMktleU51bSkpIHsNCiAgICAgICAgICAgICAgICByZXR1cm4gc2UxS2V5TnVtIC0gc2UyS2V5TnVtOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgaWYgKHNlMS5rZXkgPCBzZTIua2V5KSB7DQogICAgICAgICAgICAgICAgcmV0dXJuIC0xOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgaWYgKHNlMS5rZXkgPiBzZTIua2V5KSB7DQogICAgICAgICAgICAgICAgcmV0dXJuIDE7DQogICAgICAgICAgICB9DQogICAgICAgICAgICByZXR1cm4gMDsNCiAgICAgICAgfSk7DQogICAgICAgIHRhYmxlLmFwcGVuZENoaWxkKHRhYmxlSGVhZGVyKTsNCiAgICAgICAgc29ydEFyci5mb3JFYWNoKChzZSkgPT4gew0KICAgICAgICAgICAgdGFibGUuYXBwZW5kQ2hpbGQoc2Uucm93KTsNCiAgICAgICAgfSk7DQogICAgfQ0KICAgIHJldHVybjsNCn0NCmZ1bmN0aW9uIGNyZWF0ZVNlYXJjaE9iaigpIHsNCiAgICBTRUFSQ0hfTUFQUElORyA9IG5ldyBPYmplY3QoKTsNCiAgICB2YXIgZGF0YSA9IFNFUlZFUlsieGVwZyJdWyJlcGdNYXBwaW5nIl07DQogICAgdmFyIGNoYW5uZWxzID0gZ2V0T3duT2JqUHJvcHMoZGF0YSk7DQogICAgdmFyIGNoYW5uZWxLZXlzID0gWyJ4LWFjdGl2ZSIsICJ4LWNoYW5uZWxJRCIsICJ4LW5hbWUiLCAiX2ZpbGUubTN1Lm5hbWUiLCAieC1ncm91cC10aXRsZSIsICJ4LXhtbHR2LWZpbGUiXTsNCiAgICBjaGFubmVscy5mb3JFYWNoKGlkID0+IHsNCiAgICAgICAgY2hhbm5lbEtleXMuZm9yRWFjaChrZXkgPT4gew0KICAgICAgICAgICAgaWYgKGtleSA9PSAieC1hY3RpdmUiKSB7DQogICAgICAgICAgICAgICAgc3dpdGNoIChkYXRhW2lkXVtrZXldKSB7DQogICAgICAgICAgICAgICAgICAgIGNhc2UgdHJ1ZToNCiAgICAgICAgICAgICAgICAgICAgICAgIFNFQVJDSF9NQVBQSU5HW2lkXSA9ICJvbmxpbmUgIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgICAgICBjYXNlIGZhbHNlOg0KICAgICAgICAgICAgICAgICAgICAgICAgU0VBUkNIX01BUFBJTkdbaWRdID0gIm9mZmxpbmUgIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgICAgIGlmIChrZXkgPT0gIngteG1sdHYtZmlsZSIpIHsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHhtbHR2RmlsZSA9IGdldFZhbHVlRnJvbVByb3ZpZGVyRmlsZShkYXRhW2lkXVtrZXldLCAieG1sdHYiLCAibmFtZSIpOw0KICAgICAgICAgICAgICAgICAgICBpZiAoeG1sdHZGaWxlICE9IHVuZGVmaW5lZCkgew0KICAgICAgICAgICAgICAgICAgICAgICAgU0VBUkNIX01BUFBJTkdbaWRdID0gU0VBUkNIX01BUFBJTkdbaWRdICsgeG1sdHZGaWxlICsgIiAiOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgICAgICAgICBTRUFSQ0hfTUFQUElOR1tpZF0gPSBTRUFSQ0hfTUFQUElOR1tpZF0gKyBkYXRhW2lkXVtrZXldICsgIiAiOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0NCiAgICAgICAgfSk7DQogICAgfSk7DQogICAgcmV0dXJuOw0KfQ0KZnVuY3Rpb24gc2VhcmNoSW5NYXBwaW5nKCkgew0KICAgIHZhciBzZWFyY2hWYWx1ZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzZWFyY2hNYXBwaW5nIikudmFsdWU7DQogICAgdmFyIHRycyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb250ZW50X3RhYmxlIikuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlRSIik7DQogICAgZm9yICh2YXIgaSA9IDE7IGkgPCB0cnMubGVuZ3RoOyArK2kpIHsNCiAgICAgICAgdmFyIGlkID0gdHJzW2ldLmdldEF0dHJpYnV0ZSgiaWQiKTsNCiAgICAgICAgdmFyIGVsZW1lbnQgPSBTRUFSQ0hfTUFQUElOR1tpZF07DQogICAgICAgIHN3aXRjaCAoZWxlbWVudC50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKHNlYXJjaFZhbHVlLnRvTG93ZXJDYXNlKCkpKSB7DQogICAgICAgICAgICBjYXNlIHRydWU6DQogICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpLnN0eWxlLmRpc3BsYXkgPSAiIjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgZmFsc2U6DQogICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpLnN0eWxlLmRpc3BsYXkgPSAibm9uZSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIH0NCiAgICB9DQogICAgcmV0dXJuOw0KfQ0KZnVuY3Rpb24gY2FsY3VsYXRlV3JhcHBlckhlaWdodCgpIHsNCiAgICBpZiAoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImJveC13cmFwcGVyIikpIHsNCiAgICAgICAgdmFyIGVsbSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJib3gtd3JhcHBlciIpOw0KICAgICAgICB2YXIgZGl2cyA9IG5ldyBBcnJheSgibXlTdHJlYW1zQm94IiwgImNsaWVudEluZm8iLCAiY29udGVudCIpOw0KICAgICAgICB2YXIgZWxlbWVudHNIZWlnaHQgPSAwIC0gZWxtLm9mZnNldEhlaWdodDsNCiAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBkaXZzLmxlbmd0aDsgaSsrKSB7DQogICAgICAgICAgICBlbGVtZW50c0hlaWdodCA9IGVsZW1lbnRzSGVpZ2h0ICsgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoZGl2c1tpXSkub2Zmc2V0SGVpZ2h0Ow0KICAgICAgICB9DQogICAgICAgIGVsbS5zdHlsZS5oZWlnaHQgPSB3aW5kb3cuaW5uZXJIZWlnaHQgLSBlbGVtZW50c0hlaWdodCArICJweCI7DQogICAgfQ0KICAgIHJldHVybjsNCn0NCmZ1bmN0aW9uIGNoYW5nZUNoYW5uZWxOdW1iZXIoZWxlbWVudCkgew0KICAgIHZhciBkYklEID0gZWxlbWVudC5wYXJlbnROb2RlLnBhcmVudE5vZGUuaWQ7DQogICAgdmFyIG5ld051bWJlciA9IHBhcnNlRmxvYXQoZWxlbWVudC52YWx1ZSk7DQogICAgdmFyIGNoYW5uZWxOdW1iZXJzID0gW107DQogICAgdmFyIGRhdGEgPSBTRVJWRVJbInhlcGciXVsiZXBnTWFwcGluZyJdOw0KICAgIHZhciBjaGFubmVscyA9IGdldE93bk9ialByb3BzKGRhdGEpOw0KICAgIGlmIChpc05hTihuZXdOdW1iZXIpKSB7DQogICAgICAgIGFsZXJ0KCJ7ey5hbGVydC5pbnZhbGlkQ2hhbm5lbE51bWJlcn19Iik7DQogICAgICAgIHJldHVybjsNCiAgICB9DQogICAgY2hhbm5lbHMuZm9yRWFjaChpZCA9PiB7DQogICAgICAgIHZhciBjaGFubmVsTnVtYmVyID0gcGFyc2VGbG9hdChkYXRhW2lkXVsieC1jaGFubmVsSUQiXSk7DQogICAgICAgIGNoYW5uZWxOdW1iZXJzLnB1c2goY2hhbm5lbE51bWJlcik7DQogICAgfSk7DQogICAgZm9yICh2YXIgaSA9IDA7IGkgPCBjaGFubmVsTnVtYmVycy5sZW5ndGg7IGkrKykgew0KICAgICAgICBpZiAoY2hhbm5lbE51bWJlcnMuaW5kZXhPZihuZXdOdW1iZXIpID09IC0xKSB7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgfQ0KICAgICAgICBpZiAoTWF0aC5mbG9vcihuZXdOdW1iZXIpID09IG5ld051bWJlcikgew0KICAgICAgICAgICAgbmV3TnVtYmVyID0gbmV3TnVtYmVyICsgMTsNCiAgICAgICAgfQ0KICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgIG5ld051bWJlciA9IG5ld051bWJlciArIDAuMTsNCiAgICAgICAgICAgIG5ld051bWJlci50b0ZpeGVkKDEpOw0KICAgICAgICAgICAgbmV3TnVtYmVyID0gTWF0aC5yb3VuZChuZXdOdW1iZXIgKiAxMCkgLyAxMDsNCiAgICAgICAgfQ0KICAgIH0NCiAgICBkYXRhW2RiSURdWyJ4LWNoYW5uZWxJRCJdID0gbmV3TnVtYmVyLnRvU3RyaW5nKCk7DQogICAgZWxlbWVudC52YWx1ZSA9IG5ld051bWJlcjsNCiAgICBjb25zb2xlLmxvZyhkYXRhW2RiSURdWyJ4LWNoYW5uZWxJRCJdKTsNCiAgICBpZiAoQ09MVU1OX1RPX1NPUlQgPT0gMSkgew0KICAgICAgICBDT0xVTU5fVE9fU09SVCA9IC0xOw0KICAgICAgICBzb3J0VGFibGUoMSk7DQogICAgfQ0KICAgIHJldHVybjsNCn0NCmZ1bmN0aW9uIGJhY2t1cCgpIHsNCiAgICB2YXIgZGF0YSA9IG5ldyBPYmplY3QoKTsNCiAgICBjb25zb2xlLmxvZygiQmFja3VwIGRhdGEiKTsNCiAgICB2YXIgY21kID0gInh0ZXZlQmFja3VwIjsNCiAgICBjb25zb2xlLmxvZygiU0VORCBUTyBTRVJWRVIiKTsNCiAgICBjb25zb2xlLmxvZyhkYXRhKTsNCiAgICB2YXIgc2VydmVyID0gbmV3IFNlcnZlcihjbWQpOw0KICAgIHNlcnZlci5yZXF1ZXN0KGRhdGEpOw0KICAgIHJldHVybjsNCn0NCmZ1bmN0aW9uIHRvZ2dsZUNoYW5uZWxTdGF0dXMoaWQpIHsNCiAgICB2YXIgZWxlbWVudDsNCiAgICB2YXIgc3RhdHVzOw0KICAgIGlmIChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYWN0aXZlIikpIHsNCiAgICAgICAgdmFyIGNoZWNrYm94ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImFjdGl2ZSIpOw0KICAgICAgICBzdGF0dXMgPSAoY2hlY2tib3gpLmNoZWNrZWQ7DQogICAgfQ0KICAgIHZhciBpZHMgPSBnZXRBbGxTZWxlY3RlZENoYW5uZWxzKCk7DQogICAgaWYgKGlkcy5sZW5ndGggPT0gMCkgew0KICAgICAgICBpZHMucHVzaChpZCk7DQogICAgfQ0KICAgIGlkcy5mb3JFYWNoKGlkID0+IHsNCiAgICAgICAgdmFyIGNoYW5uZWwgPSBTRVJWRVJbInhlcGciXVsiZXBnTWFwcGluZyJdW2lkXTsNCiAgICAgICAgY2hhbm5lbFsieC1hY3RpdmUiXSA9IHN0YXR1czsNCiAgICAgICAgc3dpdGNoIChjaGFubmVsWyJ4LWFjdGl2ZSJdKSB7DQogICAgICAgICAgICBjYXNlIHRydWU6DQogICAgICAgICAgICAgICAgaWYgKGNoYW5uZWxbIngteG1sdHYtZmlsZSJdID09ICItIiB8fCBjaGFubmVsWyJ4LW1hcHBpbmciXSA9PSAiLSIpIHsNCiAgICAgICAgICAgICAgICAgICAgaWYgKEJVTEtfRURJVCA9PSBmYWxzZSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgYWxlcnQoY2hhbm5lbFsieC1uYW1lIl0gKyAiOiBNaXNzaW5nIFhNTFRWIGZpbGUgLyBjaGFubmVsIik7DQogICAgICAgICAgICAgICAgICAgICAgICBjaGVja2JveC5jaGVja2VkID0gZmFsc2U7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgY2hhbm5lbFsieC1hY3RpdmUiXSA9IGZhbHNlOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgZmFsc2U6DQogICAgICAgICAgICAgICAgLy8gY29kZS4uLg0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICB9DQogICAgICAgIGlmIChjaGFubmVsWyJ4LWFjdGl2ZSJdID09IGZhbHNlKSB7DQogICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkuY2xhc3NOYW1lID0gIm5vdEFjdGl2ZUVQRyI7DQogICAgICAgIH0NCiAgICAgICAgZWxzZSB7DQogICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkuY2xhc3NOYW1lID0gImFjdGl2ZUVQRyI7DQogICAgICAgIH0NCiAgICB9KTsNCn0NCmZ1bmN0aW9uIHRvZ2dsZUdyb3VwVXBkYXRlQ2IoeGVwZ0lkLCB0YXJnZXQpIHsNCiAgICB0YXJnZXQuY2xhc3NOYW1lID0gJ2NoYW5nZWQnOw0KICAgIGNvbnN0IGdyb3VwSW5wdXQgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCdpbnB1dFtuYW1lPSJ4LWdyb3VwLXRpdGxlIl0nKTsNCiAgICBjb25zdCBtYXBwaW5nID0gZ2V0TG9jYWxEYXRhKCdtYXBwaW5nJywgeGVwZ0lkKTsNCiAgICBpZiAodGFyZ2V0LmNoZWNrZWQpIHsNCiAgICAgICAgZ3JvdXBJbnB1dC5kYXRhc2V0Lm9sZFZhbHVlID0gZ3JvdXBJbnB1dC52YWx1ZTsNCiAgICAgICAgZ3JvdXBJbnB1dC52YWx1ZSA9IG1hcHBpbmdbJ2dyb3VwLXRpdGxlJ107DQogICAgICAgIGdyb3VwSW5wdXQuZGlzYWJsZWQgPSB0cnVlOw0KICAgIH0NCiAgICBlbHNlIHsNCiAgICAgICAgZ3JvdXBJbnB1dC52YWx1ZSA9IGdyb3VwSW5wdXQuZGF0YXNldC5vbGRWYWx1ZTsNCiAgICAgICAgZ3JvdXBJbnB1dC5kaXNhYmxlZCA9IGZhbHNlOw0KICAgIH0NCiAgICBncm91cElucHV0LmNsYXNzTmFtZSA9ICdjaGFuZ2VkJzsNCn0NCmZ1bmN0aW9uIHJlc3RvcmUoKSB7DQogICAgaWYgKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd1cGxvYWQnKSkgew0KICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndXBsb2FkJykucmVtb3ZlKCk7DQogICAgfQ0KICAgIHZhciByZXN0b3JlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiSU5QVVQiKTsNCiAgICByZXN0b3JlLnNldEF0dHJpYnV0ZSgidHlwZSIsICJmaWxlIik7DQogICAgcmVzdG9yZS5zZXRBdHRyaWJ1dGUoImNsYXNzIiwgIm5vdFZpc2libGUiKTsNCiAgICByZXN0b3JlLnNldEF0dHJpYnV0ZSgibmFtZSIsICIiKTsNCiAgICByZXN0b3JlLmlkID0gInVwbG9hZCI7DQogICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChyZXN0b3JlKTsNCiAgICByZXN0b3JlLmNsaWNrKCk7DQogICAgcmVzdG9yZS5vbmNoYW5nZSA9IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgdmFyIGZpbGVuYW1lID0gcmVzdG9yZS5maWxlc1swXS5uYW1lOw0KICAgICAgICB2YXIgY2hlY2sgPSBjb25maXJtKCJGaWxlOiAiICsgZmlsZW5hbWUgKyAiXG57ey5jb25maXJtLnJlc3RvcmV9fSIpOw0KICAgICAgICBpZiAoY2hlY2sgPT0gdHJ1ZSkgew0KICAgICAgICAgICAgdmFyIHJlYWRlciA9IG5ldyBGaWxlUmVhZGVyKCk7DQogICAgICAgICAgICB2YXIgZmlsZSA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ2lucHV0W3R5cGU9ZmlsZV0nKS5maWxlc1swXTsNCiAgICAgICAgICAgIGlmIChmaWxlKSB7DQogICAgICAgICAgICAgICAgcmVhZGVyLnJlYWRBc0RhdGFVUkwoZmlsZSk7DQogICAgICAgICAgICAgICAgcmVhZGVyLm9ubG9hZCA9IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2cocmVhZGVyLnJlc3VsdCk7DQogICAgICAgICAgICAgICAgICAgIHZhciBkYXRhID0gbmV3IE9iamVjdCgpOw0KICAgICAgICAgICAgICAgICAgICB2YXIgY21kID0gInh0ZXZlUmVzdG9yZSI7DQogICAgICAgICAgICAgICAgICAgIGRhdGFbImJhc2U2NCJdID0gcmVhZGVyLnJlc3VsdDsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHNlcnZlciA9IG5ldyBTZXJ2ZXIoY21kKTsNCiAgICAgICAgICAgICAgICAgICAgc2VydmVyLnJlcXVlc3QoZGF0YSk7DQogICAgICAgICAgICAgICAgfTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgICAgIGFsZXJ0KCJGaWxlIGNvdWxkIG5vdCBiZSBsb2FkZWQiKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIHJlc3RvcmUucmVtb3ZlKCk7DQogICAgICAgICAgICByZXR1cm47DQogICAgICAgIH0NCiAgICB9Ow0KICAgIHJldHVybjsNCn0NCmZ1bmN0aW9uIHVwbG9hZExvZ28oKSB7DQogICAgaWYgKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd1cGxvYWQnKSkgew0KICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndXBsb2FkJykucmVtb3ZlKCk7DQogICAgfQ0KICAgIHZhciB1cGxvYWQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJJTlBVVCIpOw0KICAgIHVwbG9hZC5zZXRBdHRyaWJ1dGUoInR5cGUiLCAiZmlsZSIpOw0KICAgIHVwbG9hZC5zZXRBdHRyaWJ1dGUoImNsYXNzIiwgIm5vdFZpc2libGUiKTsNCiAgICB1cGxvYWQuc2V0QXR0cmlidXRlKCJuYW1lIiwgIiIpOw0KICAgIHVwbG9hZC5pZCA9ICJ1cGxvYWQiOw0KICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQodXBsb2FkKTsNCiAgICB1cGxvYWQuY2xpY2soKTsNCiAgICB1cGxvYWQub25ibHVyID0gZnVuY3Rpb24gKCkgew0KICAgICAgICBhbGVydCgpOw0KICAgIH07DQogICAgdXBsb2FkLm9uY2hhbmdlID0gZnVuY3Rpb24gKCkgew0KICAgICAgICB2YXIgZmlsZW5hbWUgPSB1cGxvYWQuZmlsZXNbMF0ubmFtZTsNCiAgICAgICAgdmFyIHJlYWRlciA9IG5ldyBGaWxlUmVhZGVyKCk7DQogICAgICAgIHZhciBmaWxlID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignaW5wdXRbdHlwZT1maWxlXScpLmZpbGVzWzBdOw0KICAgICAgICBpZiAoZmlsZSkgew0KICAgICAgICAgICAgcmVhZGVyLnJlYWRBc0RhdGFVUkwoZmlsZSk7DQogICAgICAgICAgICByZWFkZXIub25sb2FkID0gZnVuY3Rpb24gKCkgew0KICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKHJlYWRlci5yZXN1bHQpOw0KICAgICAgICAgICAgICAgIHZhciBkYXRhID0gbmV3IE9iamVjdCgpOw0KICAgICAgICAgICAgICAgIHZhciBjbWQgPSAidXBsb2FkTG9nbyI7DQogICAgICAgICAgICAgICAgZGF0YVsiYmFzZTY0Il0gPSByZWFkZXIucmVzdWx0Ow0KICAgICAgICAgICAgICAgIGRhdGFbImZpbGVuYW1lIl0gPSBmaWxlLm5hbWU7DQogICAgICAgICAgICAgICAgdmFyIHNlcnZlciA9IG5ldyBTZXJ2ZXIoY21kKTsNCiAgICAgICAgICAgICAgICBzZXJ2ZXIucmVxdWVzdChkYXRhKTsNCiAgICAgICAgICAgICAgICB2YXIgdXBkYXRlTG9nbyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd1cGRhdGUtaWNvbicpOw0KICAgICAgICAgICAgICAgIHVwZGF0ZUxvZ28uY2hlY2tlZCA9IGZhbHNlOw0KICAgICAgICAgICAgICAgIHVwZGF0ZUxvZ28uY2xhc3NOYW1lID0gImNoYW5nZWQiOw0KICAgICAgICAgICAgfTsNCiAgICAgICAgfQ0KICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgIGFsZXJ0KCJGaWxlIGNvdWxkIG5vdCBiZSBsb2FkZWQiKTsNCiAgICAgICAgfQ0KICAgICAgICB1cGxvYWQucmVtb3ZlKCk7DQogICAgICAgIHJldHVybjsNCiAgICB9Ow0KfQ0KZnVuY3Rpb24gY2hlY2tVbmRvKGtleSkgew0KICAgIHN3aXRjaCAoa2V5KSB7DQogICAgICAgIGNhc2UgImVwZ01hcHBpbmciOg0KICAgICAgICAgICAgaWYgKFVORE8uaGFzT3duUHJvcGVydHkoa2V5KSkgew0KICAgICAgICAgICAgICAgIFNFUlZFUlsieGVwZyJdW2tleV0gPSBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KFVORE9ba2V5XSkpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgZWxzZSB7DQogICAgICAgICAgICAgICAgVU5ET1trZXldID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeShTRVJWRVJbInhlcGciXVtrZXldKSk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgIGJyZWFrOw0KICAgIH0NCiAgICByZXR1cm47DQp9DQpmdW5jdGlvbiBzb3J0U2VsZWN0KHNlbGVjdCkgew0KICAgIGNvbnN0IHRlbXBBcnIgPSBbXTsNCiAgICBjb25zdCBzZWxlY3RlZFZhbHVlID0gc2VsZWN0Lm9wdGlvbnNbc2VsZWN0LnNlbGVjdGVkSW5kZXhdLnZhbHVlOw0KICAgIGZvciAoY29uc3Qgc2VsZWN0T3B0aW9uIG9mIHNlbGVjdC5vcHRpb25zKSB7DQogICAgICAgIHRlbXBBcnIucHVzaChzZWxlY3RPcHRpb24pOw0KICAgIH0NCiAgICB0ZW1wQXJyLnNvcnQoKG8xLCBvMikgPT4gew0KICAgICAgICBpZiAobzEudGV4dCA8IG8yLnRleHQpIHsNCiAgICAgICAgICAgIHJldHVybiAtMTsNCiAgICAgICAgfQ0KICAgICAgICBpZiAobzEudGV4dCA+IG8yLnRleHQpIHsNCiAgICAgICAgICAgIHJldHVybiAxOw0KICAgICAgICB9DQogICAgICAgIHJldHVybiAwOw0KICAgIH0pOw0KICAgIHdoaWxlIChzZWxlY3Qub3B0aW9ucy5sZW5ndGggPiAwKSB7DQogICAgICAgIHNlbGVjdC5vcHRpb25zWzBdID0gbnVsbDsNCiAgICB9DQogICAgOw0KICAgIGxldCBuZXdTZWxlY3RlZEluZGV4ID0gMDsNCiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRlbXBBcnIubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgc2VsZWN0Lm9wdGlvbnNbaV0gPSB0ZW1wQXJyW2ldOw0KICAgICAgICBpZiAoc2VsZWN0Lm9wdGlvbnNbaV0udmFsdWUgPT0gc2VsZWN0ZWRWYWx1ZSkgew0KICAgICAgICAgICAgbmV3U2VsZWN0ZWRJbmRleCA9IGk7DQogICAgICAgIH0NCiAgICB9DQogICAgLy8gU2V0IG5ldyBzZWxlY3RlZCBpbmRleCBhZnRlciBzb3J0aW5nDQogICAgc2VsZWN0LnNlbGVjdGVkSW5kZXggPSBuZXdTZWxlY3RlZEluZGV4Ow0KfQ0KZnVuY3Rpb24gdXBkYXRlTG9nKCkgew0KICAgIGNvbnNvbGUubG9nKCJUT0tFTiIpOw0KICAgIHZhciBzZXJ2ZXIgPSBuZXcgU2VydmVyKCJ1cGRhdGVMb2ciKTsNCiAgICBzZXJ2ZXIucmVxdWVzdChuZXcgT2JqZWN0KCkpOw0KfQ0K" + webUI["html/js/base_ts.js"] = "dmFyIFNFUlZFUiA9IG5ldyBPYmplY3QoKTsNCnZhciBCVUxLX0VESVQgPSBmYWxzZTsNCnZhciBDT0xVTU5fVE9fU09SVDsNCnZhciBTRUFSQ0hfTUFQUElORyA9IG5ldyBPYmplY3QoKTsNCnZhciBVTkRPID0gbmV3IE9iamVjdCgpOw0KdmFyIFNFUlZFUl9DT05ORUNUSU9OID0gZmFsc2U7DQp2YXIgV1NfQVZBSUxBQkxFID0gZmFsc2U7DQovLyBNZW51DQp2YXIgbWVudUl0ZW1zID0gbmV3IEFycmF5KCk7DQptZW51SXRlbXMucHVzaChuZXcgTWFpbk1lbnVJdGVtKCJwbGF5bGlzdCIsICJ7ey5tYWluTWVudS5pdGVtLnBsYXlsaXN0fX0iLCAibTN1LnBuZyIsICJ7ey5tYWluTWVudS5oZWFkbGluZS5wbGF5bGlzdH19IikpOw0KLy9tZW51SXRlbXMucHVzaChuZXcgTWFpbk1lbnVJdGVtKCJwbXNJRCIsICJ7ey5tYWluTWVudS5pdGVtLnBtc0lEfX0iLCAibnVtYmVyLnBuZyIsICJ7ey5tYWluTWVudS5oZWFkbGluZS5wbXNJRH19IikpDQptZW51SXRlbXMucHVzaChuZXcgTWFpbk1lbnVJdGVtKCJmaWx0ZXIiLCAie3subWFpbk1lbnUuaXRlbS5maWx0ZXJ9fSIsICJmaWx0ZXIucG5nIiwgInt7Lm1haW5NZW51LmhlYWRsaW5lLmZpbHRlcn19IikpOw0KbWVudUl0ZW1zLnB1c2gobmV3IE1haW5NZW51SXRlbSgieG1sdHYiLCAie3subWFpbk1lbnUuaXRlbS54bWx0dn19IiwgInhtbHR2LnBuZyIsICJ7ey5tYWluTWVudS5oZWFkbGluZS54bWx0dn19IikpOw0KbWVudUl0ZW1zLnB1c2gobmV3IE1haW5NZW51SXRlbSgibWFwcGluZyIsICJ7ey5tYWluTWVudS5pdGVtLm1hcHBpbmd9fSIsICJtYXBwaW5nLnBuZyIsICJ7ey5tYWluTWVudS5oZWFkbGluZS5tYXBwaW5nfX0iKSk7DQptZW51SXRlbXMucHVzaChuZXcgTWFpbk1lbnVJdGVtKCJ1c2VycyIsICJ7ey5tYWluTWVudS5pdGVtLnVzZXJzfX0iLCAidXNlcnMucG5nIiwgInt7Lm1haW5NZW51LmhlYWRsaW5lLnVzZXJzfX0iKSk7DQptZW51SXRlbXMucHVzaChuZXcgTWFpbk1lbnVJdGVtKCJzZXR0aW5ncyIsICJ7ey5tYWluTWVudS5pdGVtLnNldHRpbmdzfX0iLCAic2V0dGluZ3MucG5nIiwgInt7Lm1haW5NZW51LmhlYWRsaW5lLnNldHRpbmdzfX0iKSk7DQptZW51SXRlbXMucHVzaChuZXcgTWFpbk1lbnVJdGVtKCJsb2ciLCAie3subWFpbk1lbnUuaXRlbS5sb2d9fSIsICJsb2cucG5nIiwgInt7Lm1haW5NZW51LmhlYWRsaW5lLmxvZ319IikpOw0KbWVudUl0ZW1zLnB1c2gobmV3IE1haW5NZW51SXRlbSgibG9nb3V0IiwgInt7Lm1haW5NZW51Lml0ZW0ubG9nb3V0fX0iLCAibG9nb3V0LnBuZyIsICJ7ey5tYWluTWVudS5oZWFkbGluZS5sb2dvdXR9fSIpKTsNCi8vIFNldHRpbmdzIGNhdGVnb3JpZXMNCnZhciBzZXR0aW5nc0NhdGVnb3J5ID0gbmV3IEFycmF5KCk7DQpzZXR0aW5nc0NhdGVnb3J5LnB1c2gobmV3IFNldHRpbmdzQ2F0ZWdvcnlJdGVtKCJ7ey5zZXR0aW5ncy5jYXRlZ29yeS5nZW5lcmFsfX0iLCAidGxzTW9kZSx4dGV2ZUF1dG9VcGRhdGUsaG9zdElQLHR1bmVyLGVwZ1NvdXJjZSxhcGkiKSk7DQpzZXR0aW5nc0NhdGVnb3J5LnB1c2gobmV3IFNldHRpbmdzQ2F0ZWdvcnlJdGVtKCJ7ey5zZXR0aW5ncy5jYXRlZ29yeS5maWxlc319IiwgInVwZGF0ZSxmaWxlcy51cGRhdGUsdGVtcC5wYXRoLGNhY2hlLmltYWdlcyx4ZXBnLnJlcGxhY2UubWlzc2luZy5pbWFnZXMiKSk7DQpzZXR0aW5nc0NhdGVnb3J5LnB1c2gobmV3IFNldHRpbmdzQ2F0ZWdvcnlJdGVtKCJ7ey5zZXR0aW5ncy5jYXRlZ29yeS5zdHJlYW1pbmd9fSIsICJidWZmZXIsdWRweHksYnVmZmVyLnNpemUua2Isc3RvcmVCdWZmZXJJblJBTSxidWZmZXIudGltZW91dCx1c2VyLmFnZW50LGZmbXBlZy5wYXRoLGZmbXBlZy5vcHRpb25zLHZsYy5wYXRoLHZsYy5vcHRpb25zIikpOw0Kc2V0dGluZ3NDYXRlZ29yeS5wdXNoKG5ldyBTZXR0aW5nc0NhdGVnb3J5SXRlbSgie3suc2V0dGluZ3MuY2F0ZWdvcnkuYmFja3VwfX0iLCAiYmFja3VwLnBhdGgsYmFja3VwLmtlZXAiKSk7DQpzZXR0aW5nc0NhdGVnb3J5LnB1c2gobmV3IFNldHRpbmdzQ2F0ZWdvcnlJdGVtKCJ7ey5zZXR0aW5ncy5jYXRlZ29yeS5hdXRoZW50aWNhdGlvbn19IiwgImF1dGhlbnRpY2F0aW9uLndlYixhdXRoZW50aWNhdGlvbi5wbXMsYXV0aGVudGljYXRpb24ubTN1LGF1dGhlbnRpY2F0aW9uLnhtbCxhdXRoZW50aWNhdGlvbi5hcGkiKSk7DQpmdW5jdGlvbiBzaG93UG9wVXBFbGVtZW50KGVsbSkgew0KICAgIHZhciBhbGxFbGVtZW50cyA9IG5ldyBBcnJheSgicG9wdXAtY3VzdG9tIik7DQogICAgZm9yICh2YXIgaSA9IDA7IGkgPCBhbGxFbGVtZW50cy5sZW5ndGg7IGkrKykgew0KICAgICAgICBzaG93RWxlbWVudChhbGxFbGVtZW50c1tpXSwgZmFsc2UpOw0KICAgIH0NCiAgICBzaG93RWxlbWVudChlbG0sIHRydWUpOw0KICAgIHNldFRpbWVvdXQoZnVuY3Rpb24gKCkgew0KICAgICAgICBzaG93RWxlbWVudCgicG9wdXAiLCB0cnVlKTsNCiAgICB9LCAxMCk7DQogICAgcmV0dXJuOw0KfQ0KZnVuY3Rpb24gc2hvd0VsZW1lbnQoZWxtSUQsIHR5cGUpIHsNCiAgICB2YXIgY3NzQ2xhc3M7DQogICAgc3dpdGNoICh0eXBlKSB7DQogICAgICAgIGNhc2UgdHJ1ZToNCiAgICAgICAgICAgIGNzc0NsYXNzID0gImJsb2NrIjsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlIGZhbHNlOg0KICAgICAgICAgICAgY3NzQ2xhc3MgPSAibm9uZSI7DQogICAgICAgICAgICBicmVhazsNCiAgICB9DQogICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoZWxtSUQpLmNsYXNzTmFtZSA9IGNzc0NsYXNzOw0KfQ0KZnVuY3Rpb24gY2hhbmdlQnV0dG9uQWN0aW9uKGVsZW1lbnQsIGJ1dHRvbklELCBhdHRyaWJ1dGUpIHsNCiAgICB2YXIgdmFsdWUgPSBlbGVtZW50Lm9wdGlvbnNbZWxlbWVudC5zZWxlY3RlZEluZGV4XS52YWx1ZTsNCiAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChidXR0b25JRCkuc2V0QXR0cmlidXRlKGF0dHJpYnV0ZSwgdmFsdWUpOw0KfQ0KZnVuY3Rpb24gZ2V0TG9jYWxEYXRhKGRhdGFUeXBlLCBpZCkgew0KICAgIGxldCBkYXRhID0ge307DQogICAgc3dpdGNoIChkYXRhVHlwZSkgew0KICAgICAgICBjYXNlICJtM3UiOg0KICAgICAgICAgICAgZGF0YSA9IFNFUlZFUlsic2V0dGluZ3MiXVsiZmlsZXMiXVtkYXRhVHlwZV1baWRdOw0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGNhc2UgImhkaHIiOg0KICAgICAgICAgICAgZGF0YSA9IFNFUlZFUlsic2V0dGluZ3MiXVsiZmlsZXMiXVtkYXRhVHlwZV1baWRdOw0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGNhc2UgImZpbHRlciI6DQogICAgICAgIGNhc2UgImN1c3RvbS1maWx0ZXIiOg0KICAgICAgICBjYXNlICJncm91cC10aXRsZSI6DQogICAgICAgICAgICBpZiAoaWQgPT0gLTEpIHsNCiAgICAgICAgICAgICAgICBkYXRhWyJhY3RpdmUiXSA9IHRydWU7DQogICAgICAgICAgICAgICAgZGF0YVsiY2FzZVNlbnNpdGl2ZSJdID0gZmFsc2U7DQogICAgICAgICAgICAgICAgZGF0YVsiZGVzY3JpcHRpb24iXSA9ICIiOw0KICAgICAgICAgICAgICAgIGRhdGFbImV4Y2x1ZGUiXSA9ICIiOw0KICAgICAgICAgICAgICAgIGRhdGFbImZpbHRlciJdID0gIiI7DQogICAgICAgICAgICAgICAgZGF0YVsiaW5jbHVkZSJdID0gIiI7DQogICAgICAgICAgICAgICAgZGF0YVsibmFtZSJdID0gIiI7DQogICAgICAgICAgICAgICAgZGF0YVsidHlwZSJdID0gImdyb3VwLXRpdGxlIjsNCiAgICAgICAgICAgICAgICBkYXRhWyJwcmVzZXJ2ZU1hcHBpbmciXSA9IHRydWU7DQogICAgICAgICAgICAgICAgZGF0YVsic3RhcnRpbmdDaGFubmVsIl0gPSBTRVJWRVJbInNldHRpbmdzIl1bIm1hcHBpbmcuZmlyc3QuY2hhbm5lbCJdOw0KICAgICAgICAgICAgICAgIGRhdGFbImRlZmF1bHRNaXNzaW5nRVBHIl0gPSAiLSI7DQogICAgICAgICAgICAgICAgU0VSVkVSWyJzZXR0aW5ncyJdWyJmaWx0ZXIiXVtpZF0gPSBkYXRhOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgZGF0YSA9IFNFUlZFUlsic2V0dGluZ3MiXVsiZmlsdGVyIl1baWRdOw0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGNhc2UgInhtbHR2IjoNCiAgICAgICAgICAgIGRhdGEgPSBTRVJWRVJbInNldHRpbmdzIl1bImZpbGVzIl1bZGF0YVR5cGVdW2lkXTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJ1c2VycyI6DQogICAgICAgICAgICBkYXRhID0gU0VSVkVSWyJ1c2VycyJdW2lkXVsiZGF0YSJdOw0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGNhc2UgIm1hcHBpbmciOg0KICAgICAgICAgICAgZGF0YSA9IFNFUlZFUlsieGVwZyJdWyJlcGdNYXBwaW5nIl1baWRdOw0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGNhc2UgIm0zdUdyb3VwcyI6DQogICAgICAgICAgICBkYXRhID0gU0VSVkVSWyJkYXRhIl1bInBsYXlsaXN0Il1bIm0zdSJdWyJncm91cHMiXTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgIH0NCiAgICByZXR1cm4gZGF0YTsNCn0NCmZ1bmN0aW9uIGdldE93bk9ialByb3BzKG9iamVjdCkgew0KICAgIHJldHVybiBvYmplY3QgPyBPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyhvYmplY3QpIDogW107DQp9DQpmdW5jdGlvbiBnZXRBbGxTZWxlY3RlZENoYW5uZWxzKCkgew0KICAgIHZhciBjaGFubmVscyA9IG5ldyBBcnJheSgpOw0KICAgIGlmIChCVUxLX0VESVQgPT0gZmFsc2UpIHsNCiAgICAgICAgcmV0dXJuIGNoYW5uZWxzOw0KICAgIH0NCiAgICB2YXIgdHJzID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnRlbnRfdGFibGUiKS5nZXRFbGVtZW50c0J5VGFnTmFtZSgiVFIiKTsNCiAgICBmb3IgKHZhciBpID0gMTsgaSA8IHRycy5sZW5ndGg7IGkrKykgew0KICAgICAgICBpZiAodHJzW2ldLnN0eWxlLmRpc3BsYXkgIT0gIm5vbmUiKSB7DQogICAgICAgICAgICBpZiAodHJzW2ldLmZpcnN0Q2hpbGQuZmlyc3RDaGlsZC5jaGVja2VkID09IHRydWUpIHsNCiAgICAgICAgICAgICAgICBjaGFubmVscy5wdXNoKHRyc1tpXS5pZCk7DQogICAgICAgICAgICB9DQogICAgICAgIH0NCiAgICB9DQogICAgcmV0dXJuIGNoYW5uZWxzOw0KfQ0KZnVuY3Rpb24gc2VsZWN0QWxsQ2hhbm5lbHMoKSB7DQogICAgdmFyIGJ1bGsgPSBmYWxzZTsNCiAgICB2YXIgdHJzID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnRlbnRfdGFibGUiKS5nZXRFbGVtZW50c0J5VGFnTmFtZSgiVFIiKTsNCiAgICBpZiAodHJzWzBdLmZpcnN0Q2hpbGQuZmlyc3RDaGlsZC5jaGVja2VkID09IHRydWUpIHsNCiAgICAgICAgYnVsayA9IHRydWU7DQogICAgfQ0KICAgIGZvciAodmFyIGkgPSAxOyBpIDwgdHJzLmxlbmd0aDsgaSsrKSB7DQogICAgICAgIGlmICh0cnNbaV0uc3R5bGUuZGlzcGxheSAhPSAibm9uZSIpIHsNCiAgICAgICAgICAgIHN3aXRjaCAoYnVsaykgew0KICAgICAgICAgICAgICAgIGNhc2UgdHJ1ZToNCiAgICAgICAgICAgICAgICAgICAgdHJzW2ldLmZpcnN0Q2hpbGQuZmlyc3RDaGlsZC5jaGVja2VkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSBmYWxzZToNCiAgICAgICAgICAgICAgICAgICAgdHJzW2ldLmZpcnN0Q2hpbGQuZmlyc3RDaGlsZC5jaGVja2VkID0gZmFsc2U7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQogICAgfQ0KICAgIHJldHVybjsNCn0NCmZ1bmN0aW9uIGJ1bGtFZGl0KCkgew0KICAgIEJVTEtfRURJVCA9ICFCVUxLX0VESVQ7DQogICAgdmFyIGNsYXNzTmFtZTsNCiAgICB2YXIgcm93cyA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlDbGFzc05hbWUoImJ1bGsiKTsNCiAgICBzd2l0Y2ggKEJVTEtfRURJVCkgew0KICAgICAgICBjYXNlIHRydWU6DQogICAgICAgICAgICBjbGFzc05hbWUgPSAiYnVsayBzaG93QnVsayI7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSBmYWxzZToNCiAgICAgICAgICAgIGNsYXNzTmFtZSA9ICJidWxrIGhpZGVCdWxrIjsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgIH0NCiAgICBmb3IgKHZhciBpID0gMDsgaSA8IHJvd3MubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgcm93c1tpXS5jbGFzc05hbWUgPSBjbGFzc05hbWU7DQogICAgICAgIHJvd3NbaV0uY2hlY2tlZCA9IGZhbHNlOw0KICAgIH0NCiAgICByZXR1cm47DQp9DQpmdW5jdGlvbiBzb3J0VGFibGUoY29sdW1uKSB7DQogICAgaWYgKGNvbHVtbiA9PSBDT0xVTU5fVE9fU09SVCkgew0KICAgICAgICByZXR1cm47DQogICAgfQ0KICAgIGNvbnN0IHRhYmxlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnRlbnRfdGFibGUiKTsNCiAgICBjb25zdCB0YWJsZUhlYWQgPSB0YWJsZS5nZXRFbGVtZW50c0J5VGFnTmFtZSgiVFIiKVswXTsNCiAgICBjb25zdCB0YWJsZUl0ZW1zID0gdGFibGVIZWFkLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJURCIpOw0KICAgIGNvbnN0IHNvcnRBcnIgPSBbXTsNCiAgICBsZXQgeFZhbHVlOw0KICAgIGlmIChjb2x1bW4gPj0gMCAmJiBDT0xVTU5fVE9fU09SVCA+PSAwKSB7DQogICAgICAgIHRhYmxlSXRlbXNbQ09MVU1OX1RPX1NPUlRdLmNsYXNzTmFtZSA9ICJwb2ludGVyIjsNCiAgICAgICAgdGFibGVJdGVtc1tjb2x1bW5dLmNsYXNzTmFtZSA9ICJzb3J0VGhpcyI7DQogICAgfQ0KICAgIENPTFVNTl9UT19TT1JUID0gY29sdW1uOw0KICAgIGNvbnN0IHJvd3MgPSB0YWJsZS5yb3dzOw0KICAgIGlmIChyb3dzWzFdICE9IHVuZGVmaW5lZCkgew0KICAgICAgICBjb25zdCB0YWJsZUhlYWRlciA9IHJvd3NbMF07DQogICAgICAgIGxldCB4ID0gcm93c1sxXS5nZXRFbGVtZW50c0J5VGFnTmFtZSgiVEQiKVtjb2x1bW5dOw0KICAgICAgICBmb3IgKGxldCBpID0gMTsgaSA8IHJvd3MubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgICAgIHggPSByb3dzW2ldLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJURCIpW2NvbHVtbl07DQogICAgICAgICAgICBzd2l0Y2ggKHguY2hpbGROb2Rlc1swXS50YWdOYW1lLnRvTG93ZXJDYXNlKCkpIHsNCiAgICAgICAgICAgICAgICBjYXNlICJpbnB1dCI6DQogICAgICAgICAgICAgICAgICAgIHhWYWx1ZSA9IHguZ2V0RWxlbWVudHNCeVRhZ05hbWUoIklOUFVUIilbMF0udmFsdWUudG9Mb3dlckNhc2UoKTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAicCI6DQogICAgICAgICAgICAgICAgICAgIHhWYWx1ZSA9IHguZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlAiKVswXS5pbm5lclRleHQudG9Mb3dlckNhc2UoKTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coeC5jaGlsZE5vZGVzWzBdLnRhZ05hbWUpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgc29ydEFyci5wdXNoKHsga2V5OiB4VmFsdWUgPyB4VmFsdWUgOiBpLCByb3c6IHJvd3NbaV0gfSk7DQogICAgICAgIH0NCiAgICAgICAgd2hpbGUgKHRhYmxlLmZpcnN0Q2hpbGQpIHsNCiAgICAgICAgICAgIHRhYmxlLnJlbW92ZUNoaWxkKHRhYmxlLmZpcnN0Q2hpbGQpOw0KICAgICAgICB9DQogICAgICAgIHNvcnRBcnIuc29ydCgoc2UxLCBzZTIpID0+IHsNCiAgICAgICAgICAgIGNvbnN0IHNlMUtleU51bSA9IHBhcnNlRmxvYXQoU3RyaW5nKHNlMS5rZXkpKTsNCiAgICAgICAgICAgIGNvbnN0IHNlMktleU51bSA9IHBhcnNlRmxvYXQoU3RyaW5nKHNlMi5rZXkpKTsNCiAgICAgICAgICAgIGlmICghaXNOYU4oc2UxS2V5TnVtKSAmJiAhaXNOYU4oc2UyS2V5TnVtKSkgew0KICAgICAgICAgICAgICAgIHJldHVybiBzZTFLZXlOdW0gLSBzZTJLZXlOdW07DQogICAgICAgICAgICB9DQogICAgICAgICAgICBpZiAoc2UxLmtleSA8IHNlMi5rZXkpIHsNCiAgICAgICAgICAgICAgICByZXR1cm4gLTE7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBpZiAoc2UxLmtleSA+IHNlMi5rZXkpIHsNCiAgICAgICAgICAgICAgICByZXR1cm4gMTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIHJldHVybiAwOw0KICAgICAgICB9KTsNCiAgICAgICAgdGFibGUuYXBwZW5kQ2hpbGQodGFibGVIZWFkZXIpOw0KICAgICAgICBzb3J0QXJyLmZvckVhY2goKHNlKSA9PiB7DQogICAgICAgICAgICB0YWJsZS5hcHBlbmRDaGlsZChzZS5yb3cpOw0KICAgICAgICB9KTsNCiAgICB9DQogICAgcmV0dXJuOw0KfQ0KZnVuY3Rpb24gY3JlYXRlU2VhcmNoT2JqKCkgew0KICAgIFNFQVJDSF9NQVBQSU5HID0gbmV3IE9iamVjdCgpOw0KICAgIHZhciBkYXRhID0gU0VSVkVSWyJ4ZXBnIl1bImVwZ01hcHBpbmciXTsNCiAgICB2YXIgY2hhbm5lbHMgPSBnZXRPd25PYmpQcm9wcyhkYXRhKTsNCiAgICB2YXIgY2hhbm5lbEtleXMgPSBbIngtYWN0aXZlIiwgIngtY2hhbm5lbElEIiwgIngtbmFtZSIsICJfZmlsZS5tM3UubmFtZSIsICJ4LWdyb3VwLXRpdGxlIiwgIngteG1sdHYtZmlsZSJdOw0KICAgIGNoYW5uZWxzLmZvckVhY2goaWQgPT4gew0KICAgICAgICBjaGFubmVsS2V5cy5mb3JFYWNoKGtleSA9PiB7DQogICAgICAgICAgICBpZiAoa2V5ID09ICJ4LWFjdGl2ZSIpIHsNCiAgICAgICAgICAgICAgICBzd2l0Y2ggKGRhdGFbaWRdW2tleV0pIHsNCiAgICAgICAgICAgICAgICAgICAgY2FzZSB0cnVlOg0KICAgICAgICAgICAgICAgICAgICAgICAgU0VBUkNIX01BUFBJTkdbaWRdID0gIm9ubGluZSAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgICAgIGNhc2UgZmFsc2U6DQogICAgICAgICAgICAgICAgICAgICAgICBTRUFSQ0hfTUFQUElOR1tpZF0gPSAib2ZmbGluZSAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgZWxzZSB7DQogICAgICAgICAgICAgICAgaWYgKGtleSA9PSAieC14bWx0di1maWxlIikgew0KICAgICAgICAgICAgICAgICAgICB2YXIgeG1sdHZGaWxlID0gZ2V0VmFsdWVGcm9tUHJvdmlkZXJGaWxlKGRhdGFbaWRdW2tleV0sICJ4bWx0diIsICJuYW1lIik7DQogICAgICAgICAgICAgICAgICAgIGlmICh4bWx0dkZpbGUgIT0gdW5kZWZpbmVkKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBTRUFSQ0hfTUFQUElOR1tpZF0gPSBTRUFSQ0hfTUFQUElOR1tpZF0gKyB4bWx0dkZpbGUgKyAiICI7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgZWxzZSB7DQogICAgICAgICAgICAgICAgICAgIFNFQVJDSF9NQVBQSU5HW2lkXSA9IFNFQVJDSF9NQVBQSU5HW2lkXSArIGRhdGFbaWRdW2tleV0gKyAiICI7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfQ0KICAgICAgICB9KTsNCiAgICB9KTsNCiAgICByZXR1cm47DQp9DQpmdW5jdGlvbiBzZWFyY2hJbk1hcHBpbmcoKSB7DQogICAgdmFyIHNlYXJjaFZhbHVlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNlYXJjaE1hcHBpbmciKS52YWx1ZTsNCiAgICB2YXIgdHJzID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnRlbnRfdGFibGUiKS5nZXRFbGVtZW50c0J5VGFnTmFtZSgiVFIiKTsNCiAgICBmb3IgKHZhciBpID0gMTsgaSA8IHRycy5sZW5ndGg7ICsraSkgew0KICAgICAgICB2YXIgaWQgPSB0cnNbaV0uZ2V0QXR0cmlidXRlKCJpZCIpOw0KICAgICAgICB2YXIgZWxlbWVudCA9IFNFQVJDSF9NQVBQSU5HW2lkXTsNCiAgICAgICAgc3dpdGNoIChlbGVtZW50LnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoc2VhcmNoVmFsdWUudG9Mb3dlckNhc2UoKSkpIHsNCiAgICAgICAgICAgIGNhc2UgdHJ1ZToNCiAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkuc3R5bGUuZGlzcGxheSA9ICIiOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSBmYWxzZToNCiAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkuc3R5bGUuZGlzcGxheSA9ICJub25lIjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgfQ0KICAgIH0NCiAgICByZXR1cm47DQp9DQpmdW5jdGlvbiBjYWxjdWxhdGVXcmFwcGVySGVpZ2h0KCkgew0KICAgIGlmIChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYm94LXdyYXBwZXIiKSkgew0KICAgICAgICB2YXIgZWxtID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImJveC13cmFwcGVyIik7DQogICAgICAgIHZhciBkaXZzID0gbmV3IEFycmF5KCJteVN0cmVhbXNCb3giLCAiY2xpZW50SW5mbyIsICJjb250ZW50Iik7DQogICAgICAgIHZhciBlbGVtZW50c0hlaWdodCA9IDAgLSBlbG0ub2Zmc2V0SGVpZ2h0Ow0KICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGRpdnMubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgICAgIGVsZW1lbnRzSGVpZ2h0ID0gZWxlbWVudHNIZWlnaHQgKyBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChkaXZzW2ldKS5vZmZzZXRIZWlnaHQ7DQogICAgICAgIH0NCiAgICAgICAgZWxtLnN0eWxlLmhlaWdodCA9IHdpbmRvdy5pbm5lckhlaWdodCAtIGVsZW1lbnRzSGVpZ2h0ICsgInB4IjsNCiAgICB9DQogICAgcmV0dXJuOw0KfQ0KZnVuY3Rpb24gY2hhbmdlQ2hhbm5lbE51bWJlcihlbGVtZW50KSB7DQogICAgdmFyIGRiSUQgPSBlbGVtZW50LnBhcmVudE5vZGUucGFyZW50Tm9kZS5pZDsNCiAgICB2YXIgbmV3TnVtYmVyID0gcGFyc2VGbG9hdChlbGVtZW50LnZhbHVlKTsNCiAgICB2YXIgY2hhbm5lbE51bWJlcnMgPSBbXTsNCiAgICB2YXIgZGF0YSA9IFNFUlZFUlsieGVwZyJdWyJlcGdNYXBwaW5nIl07DQogICAgdmFyIGNoYW5uZWxzID0gZ2V0T3duT2JqUHJvcHMoZGF0YSk7DQogICAgaWYgKGlzTmFOKG5ld051bWJlcikpIHsNCiAgICAgICAgYWxlcnQoInt7LmFsZXJ0LmludmFsaWRDaGFubmVsTnVtYmVyfX0iKTsNCiAgICAgICAgcmV0dXJuOw0KICAgIH0NCiAgICBjaGFubmVscy5mb3JFYWNoKGlkID0+IHsNCiAgICAgICAgdmFyIGNoYW5uZWxOdW1iZXIgPSBwYXJzZUZsb2F0KGRhdGFbaWRdWyJ4LWNoYW5uZWxJRCJdKTsNCiAgICAgICAgY2hhbm5lbE51bWJlcnMucHVzaChjaGFubmVsTnVtYmVyKTsNCiAgICB9KTsNCiAgICBmb3IgKHZhciBpID0gMDsgaSA8IGNoYW5uZWxOdW1iZXJzLmxlbmd0aDsgaSsrKSB7DQogICAgICAgIGlmIChjaGFubmVsTnVtYmVycy5pbmRleE9mKG5ld051bWJlcikgPT0gLTEpIHsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICB9DQogICAgICAgIGlmIChNYXRoLmZsb29yKG5ld051bWJlcikgPT0gbmV3TnVtYmVyKSB7DQogICAgICAgICAgICBuZXdOdW1iZXIgPSBuZXdOdW1iZXIgKyAxOw0KICAgICAgICB9DQogICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgbmV3TnVtYmVyID0gbmV3TnVtYmVyICsgMC4xOw0KICAgICAgICAgICAgbmV3TnVtYmVyLnRvRml4ZWQoMSk7DQogICAgICAgICAgICBuZXdOdW1iZXIgPSBNYXRoLnJvdW5kKG5ld051bWJlciAqIDEwKSAvIDEwOw0KICAgICAgICB9DQogICAgfQ0KICAgIGRhdGFbZGJJRF1bIngtY2hhbm5lbElEIl0gPSBuZXdOdW1iZXIudG9TdHJpbmcoKTsNCiAgICBlbGVtZW50LnZhbHVlID0gbmV3TnVtYmVyOw0KICAgIGNvbnNvbGUubG9nKGRhdGFbZGJJRF1bIngtY2hhbm5lbElEIl0pOw0KICAgIGlmIChDT0xVTU5fVE9fU09SVCA9PSAxKSB7DQogICAgICAgIENPTFVNTl9UT19TT1JUID0gLTE7DQogICAgICAgIHNvcnRUYWJsZSgxKTsNCiAgICB9DQogICAgcmV0dXJuOw0KfQ0KZnVuY3Rpb24gYmFja3VwKCkgew0KICAgIHZhciBkYXRhID0gbmV3IE9iamVjdCgpOw0KICAgIGNvbnNvbGUubG9nKCJCYWNrdXAgZGF0YSIpOw0KICAgIHZhciBjbWQgPSAieHRldmVCYWNrdXAiOw0KICAgIGNvbnNvbGUubG9nKCJTRU5EIFRPIFNFUlZFUiIpOw0KICAgIGNvbnNvbGUubG9nKGRhdGEpOw0KICAgIHZhciBzZXJ2ZXIgPSBuZXcgU2VydmVyKGNtZCk7DQogICAgc2VydmVyLnJlcXVlc3QoZGF0YSk7DQogICAgcmV0dXJuOw0KfQ0KZnVuY3Rpb24gdG9nZ2xlQ2hhbm5lbFN0YXR1cyhpZCkgew0KICAgIHZhciBlbGVtZW50Ow0KICAgIHZhciBzdGF0dXM7DQogICAgaWYgKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJhY3RpdmUiKSkgew0KICAgICAgICB2YXIgY2hlY2tib3ggPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYWN0aXZlIik7DQogICAgICAgIHN0YXR1cyA9IChjaGVja2JveCkuY2hlY2tlZDsNCiAgICB9DQogICAgdmFyIGlkcyA9IGdldEFsbFNlbGVjdGVkQ2hhbm5lbHMoKTsNCiAgICBpZiAoaWRzLmxlbmd0aCA9PSAwKSB7DQogICAgICAgIGlkcy5wdXNoKGlkKTsNCiAgICB9DQogICAgaWRzLmZvckVhY2goaWQgPT4gew0KICAgICAgICB2YXIgY2hhbm5lbCA9IFNFUlZFUlsieGVwZyJdWyJlcGdNYXBwaW5nIl1baWRdOw0KICAgICAgICBjaGFubmVsWyJ4LWFjdGl2ZSJdID0gc3RhdHVzOw0KICAgICAgICBzd2l0Y2ggKGNoYW5uZWxbIngtYWN0aXZlIl0pIHsNCiAgICAgICAgICAgIGNhc2UgdHJ1ZToNCiAgICAgICAgICAgICAgICBpZiAoY2hhbm5lbFsieC14bWx0di1maWxlIl0gPT0gIi0iIHx8IGNoYW5uZWxbIngtbWFwcGluZyJdID09ICItIikgew0KICAgICAgICAgICAgICAgICAgICBpZiAoQlVMS19FRElUID09IGZhbHNlKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBhbGVydChjaGFubmVsWyJ4LW5hbWUiXSArICI6IE1pc3NpbmcgWE1MVFYgZmlsZSAvIGNoYW5uZWwiKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNoZWNrYm94LmNoZWNrZWQgPSBmYWxzZTsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBjaGFubmVsWyJ4LWFjdGl2ZSJdID0gZmFsc2U7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSBmYWxzZToNCiAgICAgICAgICAgICAgICAvLyBjb2RlLi4uDQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIH0NCiAgICAgICAgaWYgKGNoYW5uZWxbIngtYWN0aXZlIl0gPT0gZmFsc2UpIHsNCiAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5jbGFzc05hbWUgPSAibm90QWN0aXZlRVBHIjsNCiAgICAgICAgfQ0KICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5jbGFzc05hbWUgPSAiYWN0aXZlRVBHIjsNCiAgICAgICAgfQ0KICAgIH0pOw0KfQ0KZnVuY3Rpb24gdG9nZ2xlR3JvdXBVcGRhdGVDYih4ZXBnSWQsIHRhcmdldCkgew0KICAgIHRhcmdldC5jbGFzc05hbWUgPSAnY2hhbmdlZCc7DQogICAgY29uc3QgZ3JvdXBJbnB1dCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ2lucHV0W25hbWU9IngtZ3JvdXAtdGl0bGUiXScpOw0KICAgIGNvbnN0IG1hcHBpbmcgPSBnZXRMb2NhbERhdGEoJ21hcHBpbmcnLCB4ZXBnSWQpOw0KICAgIGlmICh0YXJnZXQuY2hlY2tlZCkgew0KICAgICAgICBncm91cElucHV0LmRhdGFzZXQub2xkVmFsdWUgPSBncm91cElucHV0LnZhbHVlOw0KICAgICAgICBncm91cElucHV0LnZhbHVlID0gbWFwcGluZ1snZ3JvdXAtdGl0bGUnXTsNCiAgICAgICAgZ3JvdXBJbnB1dC5kaXNhYmxlZCA9IHRydWU7DQogICAgfQ0KICAgIGVsc2Ugew0KICAgICAgICBncm91cElucHV0LnZhbHVlID0gZ3JvdXBJbnB1dC5kYXRhc2V0Lm9sZFZhbHVlOw0KICAgICAgICBncm91cElucHV0LmRpc2FibGVkID0gZmFsc2U7DQogICAgfQ0KICAgIGdyb3VwSW5wdXQuY2xhc3NOYW1lID0gJ2NoYW5nZWQnOw0KfQ0KZnVuY3Rpb24gcmVzdG9yZSgpIHsNCiAgICBpZiAoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3VwbG9hZCcpKSB7DQogICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd1cGxvYWQnKS5yZW1vdmUoKTsNCiAgICB9DQogICAgdmFyIHJlc3RvcmUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJJTlBVVCIpOw0KICAgIHJlc3RvcmUuc2V0QXR0cmlidXRlKCJ0eXBlIiwgImZpbGUiKTsNCiAgICByZXN0b3JlLnNldEF0dHJpYnV0ZSgiY2xhc3MiLCAibm90VmlzaWJsZSIpOw0KICAgIHJlc3RvcmUuc2V0QXR0cmlidXRlKCJuYW1lIiwgIiIpOw0KICAgIHJlc3RvcmUuaWQgPSAidXBsb2FkIjsNCiAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHJlc3RvcmUpOw0KICAgIHJlc3RvcmUuY2xpY2soKTsNCiAgICByZXN0b3JlLm9uY2hhbmdlID0gZnVuY3Rpb24gKCkgew0KICAgICAgICB2YXIgZmlsZW5hbWUgPSByZXN0b3JlLmZpbGVzWzBdLm5hbWU7DQogICAgICAgIHZhciBjaGVjayA9IGNvbmZpcm0oIkZpbGU6ICIgKyBmaWxlbmFtZSArICJcbnt7LmNvbmZpcm0ucmVzdG9yZX19Iik7DQogICAgICAgIGlmIChjaGVjayA9PSB0cnVlKSB7DQogICAgICAgICAgICB2YXIgcmVhZGVyID0gbmV3IEZpbGVSZWFkZXIoKTsNCiAgICAgICAgICAgIHZhciBmaWxlID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignaW5wdXRbdHlwZT1maWxlXScpLmZpbGVzWzBdOw0KICAgICAgICAgICAgaWYgKGZpbGUpIHsNCiAgICAgICAgICAgICAgICByZWFkZXIucmVhZEFzRGF0YVVSTChmaWxlKTsNCiAgICAgICAgICAgICAgICByZWFkZXIub25sb2FkID0gZnVuY3Rpb24gKCkgew0KICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhyZWFkZXIucmVzdWx0KTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGRhdGEgPSBuZXcgT2JqZWN0KCk7DQogICAgICAgICAgICAgICAgICAgIHZhciBjbWQgPSAieHRldmVSZXN0b3JlIjsNCiAgICAgICAgICAgICAgICAgICAgZGF0YVsiYmFzZTY0Il0gPSByZWFkZXIucmVzdWx0Ow0KICAgICAgICAgICAgICAgICAgICB2YXIgc2VydmVyID0gbmV3IFNlcnZlcihjbWQpOw0KICAgICAgICAgICAgICAgICAgICBzZXJ2ZXIucmVxdWVzdChkYXRhKTsNCiAgICAgICAgICAgICAgICB9Ow0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgZWxzZSB7DQogICAgICAgICAgICAgICAgYWxlcnQoIkZpbGUgY291bGQgbm90IGJlIGxvYWRlZCIpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgcmVzdG9yZS5yZW1vdmUoKTsNCiAgICAgICAgICAgIHJldHVybjsNCiAgICAgICAgfQ0KICAgIH07DQogICAgcmV0dXJuOw0KfQ0KZnVuY3Rpb24gdXBsb2FkTG9nbygpIHsNCiAgICBpZiAoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3VwbG9hZCcpKSB7DQogICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd1cGxvYWQnKS5yZW1vdmUoKTsNCiAgICB9DQogICAgdmFyIHVwbG9hZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIklOUFVUIik7DQogICAgdXBsb2FkLnNldEF0dHJpYnV0ZSgidHlwZSIsICJmaWxlIik7DQogICAgdXBsb2FkLnNldEF0dHJpYnV0ZSgiY2xhc3MiLCAibm90VmlzaWJsZSIpOw0KICAgIHVwbG9hZC5zZXRBdHRyaWJ1dGUoIm5hbWUiLCAiIik7DQogICAgdXBsb2FkLmlkID0gInVwbG9hZCI7DQogICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZCh1cGxvYWQpOw0KICAgIHVwbG9hZC5jbGljaygpOw0KICAgIHVwbG9hZC5vbmJsdXIgPSBmdW5jdGlvbiAoKSB7DQogICAgICAgIGFsZXJ0KCk7DQogICAgfTsNCiAgICB1cGxvYWQub25jaGFuZ2UgPSBmdW5jdGlvbiAoKSB7DQogICAgICAgIHZhciBmaWxlbmFtZSA9IHVwbG9hZC5maWxlc1swXS5uYW1lOw0KICAgICAgICB2YXIgcmVhZGVyID0gbmV3IEZpbGVSZWFkZXIoKTsNCiAgICAgICAgdmFyIGZpbGUgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCdpbnB1dFt0eXBlPWZpbGVdJykuZmlsZXNbMF07DQogICAgICAgIGlmIChmaWxlKSB7DQogICAgICAgICAgICByZWFkZXIucmVhZEFzRGF0YVVSTChmaWxlKTsNCiAgICAgICAgICAgIHJlYWRlci5vbmxvYWQgPSBmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICAgICAgY29uc29sZS5sb2cocmVhZGVyLnJlc3VsdCk7DQogICAgICAgICAgICAgICAgdmFyIGRhdGEgPSBuZXcgT2JqZWN0KCk7DQogICAgICAgICAgICAgICAgdmFyIGNtZCA9ICJ1cGxvYWRMb2dvIjsNCiAgICAgICAgICAgICAgICBkYXRhWyJiYXNlNjQiXSA9IHJlYWRlci5yZXN1bHQ7DQogICAgICAgICAgICAgICAgZGF0YVsiZmlsZW5hbWUiXSA9IGZpbGUubmFtZTsNCiAgICAgICAgICAgICAgICB2YXIgc2VydmVyID0gbmV3IFNlcnZlcihjbWQpOw0KICAgICAgICAgICAgICAgIHNlcnZlci5yZXF1ZXN0KGRhdGEpOw0KICAgICAgICAgICAgICAgIHZhciB1cGRhdGVMb2dvID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3VwZGF0ZS1pY29uJyk7DQogICAgICAgICAgICAgICAgdXBkYXRlTG9nby5jaGVja2VkID0gZmFsc2U7DQogICAgICAgICAgICAgICAgdXBkYXRlTG9nby5jbGFzc05hbWUgPSAiY2hhbmdlZCI7DQogICAgICAgICAgICB9Ow0KICAgICAgICB9DQogICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgYWxlcnQoIkZpbGUgY291bGQgbm90IGJlIGxvYWRlZCIpOw0KICAgICAgICB9DQogICAgICAgIHVwbG9hZC5yZW1vdmUoKTsNCiAgICAgICAgcmV0dXJuOw0KICAgIH07DQp9DQpmdW5jdGlvbiBjaGVja1VuZG8oa2V5KSB7DQogICAgc3dpdGNoIChrZXkpIHsNCiAgICAgICAgY2FzZSAiZXBnTWFwcGluZyI6DQogICAgICAgICAgICBpZiAoVU5ETy5oYXNPd25Qcm9wZXJ0eShrZXkpKSB7DQogICAgICAgICAgICAgICAgU0VSVkVSWyJ4ZXBnIl1ba2V5XSA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkoVU5ET1trZXldKSk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICBVTkRPW2tleV0gPSBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KFNFUlZFUlsieGVwZyJdW2tleV0pKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBkZWZhdWx0Og0KICAgICAgICAgICAgYnJlYWs7DQogICAgfQ0KICAgIHJldHVybjsNCn0NCmZ1bmN0aW9uIHNvcnRTZWxlY3Qoc2VsZWN0KSB7DQogICAgY29uc3QgdGVtcEFyciA9IFtdOw0KICAgIGNvbnN0IHNlbGVjdGVkVmFsdWUgPSBzZWxlY3Qub3B0aW9uc1tzZWxlY3Quc2VsZWN0ZWRJbmRleF0udmFsdWU7DQogICAgZm9yIChjb25zdCBzZWxlY3RPcHRpb24gb2Ygc2VsZWN0Lm9wdGlvbnMpIHsNCiAgICAgICAgdGVtcEFyci5wdXNoKHNlbGVjdE9wdGlvbik7DQogICAgfQ0KICAgIHRlbXBBcnIuc29ydCgobzEsIG8yKSA9PiB7DQogICAgICAgIGlmIChvMS50ZXh0IDwgbzIudGV4dCkgew0KICAgICAgICAgICAgcmV0dXJuIC0xOw0KICAgICAgICB9DQogICAgICAgIGlmIChvMS50ZXh0ID4gbzIudGV4dCkgew0KICAgICAgICAgICAgcmV0dXJuIDE7DQogICAgICAgIH0NCiAgICAgICAgcmV0dXJuIDA7DQogICAgfSk7DQogICAgd2hpbGUgKHNlbGVjdC5vcHRpb25zLmxlbmd0aCA+IDApIHsNCiAgICAgICAgc2VsZWN0Lm9wdGlvbnNbMF0gPSBudWxsOw0KICAgIH0NCiAgICA7DQogICAgbGV0IG5ld1NlbGVjdGVkSW5kZXggPSAwOw0KICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGVtcEFyci5sZW5ndGg7IGkrKykgew0KICAgICAgICBzZWxlY3Qub3B0aW9uc1tpXSA9IHRlbXBBcnJbaV07DQogICAgICAgIGlmIChzZWxlY3Qub3B0aW9uc1tpXS52YWx1ZSA9PSBzZWxlY3RlZFZhbHVlKSB7DQogICAgICAgICAgICBuZXdTZWxlY3RlZEluZGV4ID0gaTsNCiAgICAgICAgfQ0KICAgIH0NCiAgICAvLyBTZXQgbmV3IHNlbGVjdGVkIGluZGV4IGFmdGVyIHNvcnRpbmcNCiAgICBzZWxlY3Quc2VsZWN0ZWRJbmRleCA9IG5ld1NlbGVjdGVkSW5kZXg7DQp9DQpmdW5jdGlvbiB1cGRhdGVMb2coKSB7DQogICAgY29uc29sZS5sb2coIlRPS0VOIik7DQogICAgdmFyIHNlcnZlciA9IG5ldyBTZXJ2ZXIoInVwZGF0ZUxvZyIpOw0KICAgIHNlcnZlci5yZXF1ZXN0KG5ldyBPYmplY3QoKSk7DQp9DQo=" webUI["html/js/classes_ts.js"] = "dmFyIF9fZXh0ZW5kcyA9ICh0aGlzICYmIHRoaXMuX19leHRlbmRzKSB8fCAoZnVuY3Rpb24gKCkgew0KICAgIHZhciBleHRlbmRTdGF0aWNzID0gZnVuY3Rpb24gKGQsIGIpIHsNCiAgICAgICAgZXh0ZW5kU3RhdGljcyA9IE9iamVjdC5zZXRQcm90b3R5cGVPZiB8fA0KICAgICAgICAgICAgKHsgX19wcm90b19fOiBbXSB9IGluc3RhbmNlb2YgQXJyYXkgJiYgZnVuY3Rpb24gKGQsIGIpIHsgZC5fX3Byb3RvX18gPSBiOyB9KSB8fA0KICAgICAgICAgICAgZnVuY3Rpb24gKGQsIGIpIHsgZm9yICh2YXIgcCBpbiBiKSBpZiAoYi5oYXNPd25Qcm9wZXJ0eShwKSkgZFtwXSA9IGJbcF07IH07DQogICAgICAgIHJldHVybiBleHRlbmRTdGF0aWNzKGQsIGIpOw0KICAgIH07DQogICAgcmV0dXJuIGZ1bmN0aW9uIChkLCBiKSB7DQogICAgICAgIGV4dGVuZFN0YXRpY3MoZCwgYik7DQogICAgICAgIGZ1bmN0aW9uIF9fKCkgeyB0aGlzLmNvbnN0cnVjdG9yID0gZDsgfQ0KICAgICAgICBkLnByb3RvdHlwZSA9IGIgPT09IG51bGwgPyBPYmplY3QuY3JlYXRlKGIpIDogKF9fLnByb3RvdHlwZSA9IGIucHJvdG90eXBlLCBuZXcgX18oKSk7DQogICAgfTsNCn0pKCk7DQp2YXIgTWFpbk1lbnUgPSAvKiogQGNsYXNzICovIChmdW5jdGlvbiAoKSB7DQogICAgZnVuY3Rpb24gTWFpbk1lbnUoKSB7DQogICAgICAgIHRoaXMuRG9jdW1lbnRJRCA9ICJtYWluLW1lbnUiOw0KICAgICAgICB0aGlzLkhUTUxUYWcgPSAiTEkiOw0KICAgIH0NCiAgICBNYWluTWVudS5wcm90b3R5cGUuY3JlYXRlID0gZnVuY3Rpb24gKCkgew0KICAgICAgICBjb25zb2xlLmxvZyh0aGlzLkRvY3VtZW50SUQpOw0KICAgIH07DQogICAgcmV0dXJuIE1haW5NZW51Ow0KfSgpKTsNCnZhciBNYWluTWVudUl0ZW0gPSAvKiogQGNsYXNzICovIChmdW5jdGlvbiAoX3N1cGVyKSB7DQogICAgX19leHRlbmRzKE1haW5NZW51SXRlbSwgX3N1cGVyKTsNCiAgICBmdW5jdGlvbiBNYWluTWVudUl0ZW0oKSB7DQogICAgICAgIHJldHVybiBfc3VwZXIgIT09IG51bGwgJiYgX3N1cGVyLmFwcGx5KHRoaXMsIGFyZ3VtZW50cykgfHwgdGhpczsNCiAgICB9DQogICAgTWFpbk1lbnVJdGVtLnByb3RvdHlwZS5jcmVhdGUyID0gZnVuY3Rpb24gKCkgew0KICAgICAgICB2YXIgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQodGhpcy5IVE1MVGFnKTsNCiAgICAgICAgZWxlbWVudC5pbm5lclRleHQgPSB0aGlzLlZhbHVlOw0KICAgICAgICBjb25zb2xlLmxvZyhlbGVtZW50KTsNCiAgICB9Ow0KICAgIHJldHVybiBNYWluTWVudUl0ZW07DQp9KE1haW5NZW51KSk7DQpmdW5jdGlvbiBwYWdlUmVhZHkoKSB7DQogICAgdmFyIGl0ZW0gPSBuZXcgTWFpbk1lbnVJdGVtKCk7DQogICAgaXRlbS5WYWx1ZSA9ICJUZXN0IjsNCiAgICBpdGVtLmNyZWF0ZTIoKTsNCn0NCg==" webUI["html/js/configuration_ts.js"] = "Y2xhc3MgV2l6YXJkQ2F0ZWdvcnkgew0KICAgIGNvbnN0cnVjdG9yKCkgew0KICAgICAgICB0aGlzLkRvY3VtZW50SUQgPSAiY29udGVudCI7DQogICAgfQ0KICAgIGNyZWF0ZUNhdGVnb3J5SGVhZGxpbmUodmFsdWUpIHsNCiAgICAgICAgdmFyIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJINCIpOw0KICAgICAgICBlbGVtZW50LmlubmVySFRNTCA9IHZhbHVlOw0KICAgICAgICByZXR1cm4gZWxlbWVudDsNCiAgICB9DQp9DQpjbGFzcyBXaXphcmRJdGVtIGV4dGVuZHMgV2l6YXJkQ2F0ZWdvcnkgew0KICAgIGNvbnN0cnVjdG9yKGtleSwgaGVhZGxpbmUpIHsNCiAgICAgICAgc3VwZXIoKTsNCiAgICAgICAgdGhpcy5oZWFkbGluZSA9IGhlYWRsaW5lOw0KICAgICAgICB0aGlzLmtleSA9IGtleTsNCiAgICB9DQogICAgY3JlYXRlV2l6YXJkKCkgew0KICAgICAgICB2YXIgaGVhZGxpbmUgPSB0aGlzLmNyZWF0ZUNhdGVnb3J5SGVhZGxpbmUodGhpcy5oZWFkbGluZSk7DQogICAgICAgIHZhciBrZXkgPSB0aGlzLmtleTsNCiAgICAgICAgdmFyIGNvbnRlbnQgPSBuZXcgUG9wdXBDb250ZW50KCk7DQogICAgICAgIHZhciBkZXNjcmlwdGlvbjsNCiAgICAgICAgdmFyIGRvYyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHRoaXMuRG9jdW1lbnRJRCk7DQogICAgICAgIGRvYy5pbm5lckhUTUwgPSAiIjsNCiAgICAgICAgZG9jLmFwcGVuZENoaWxkKGhlYWRsaW5lKTsNCiAgICAgICAgc3dpdGNoIChrZXkpIHsNCiAgICAgICAgICAgIGNhc2UgInR1bmVyIjoNCiAgICAgICAgICAgICAgICB2YXIgdGV4dCA9IG5ldyBBcnJheSgpOw0KICAgICAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBuZXcgQXJyYXkoKTsNCiAgICAgICAgICAgICAgICBmb3IgKHZhciBpID0gMTsgaSA8PSAxMDA7IGkrKykgew0KICAgICAgICAgICAgICAgICAgICB0ZXh0LnB1c2goaSk7DQogICAgICAgICAgICAgICAgICAgIHZhbHVlcy5wdXNoKGkpOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCAiMSIsIGtleSk7DQogICAgICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgiY2xhc3MiLCAid2l6YXJkIik7DQogICAgICAgICAgICAgICAgc2VsZWN0LmlkID0ga2V5Ow0KICAgICAgICAgICAgICAgIGRvYy5hcHBlbmRDaGlsZChzZWxlY3QpOw0KICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uID0gInt7LndpemFyZC50dW5lci5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImVwZ1NvdXJjZSI6DQogICAgICAgICAgICAgICAgdmFyIHRleHQgPSBbIlBNUyIsICJYRVBHIl07DQogICAgICAgICAgICAgICAgdmFyIHZhbHVlcyA9IFsiUE1TIiwgIlhFUEciXTsNCiAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCAiWEVQRyIsIGtleSk7DQogICAgICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgiY2xhc3MiLCAid2l6YXJkIik7DQogICAgICAgICAgICAgICAgc2VsZWN0LmlkID0ga2V5Ow0KICAgICAgICAgICAgICAgIGRvYy5hcHBlbmRDaGlsZChzZWxlY3QpOw0KICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uID0gInt7LndpemFyZC5lcGdTb3VyY2UuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJtM3UiOg0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBrZXksICIiKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LndpemFyZC5tM3UucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgiY2xhc3MiLCAid2l6YXJkIik7DQogICAgICAgICAgICAgICAgaW5wdXQuaWQgPSBrZXk7DQogICAgICAgICAgICAgICAgZG9jLmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbiA9ICJ7ey53aXphcmQubTN1LmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAieG1sdHYiOg0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBrZXksICIiKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LndpemFyZC54bWx0di5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJjbGFzcyIsICJ3aXphcmQiKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5pZCA9IGtleTsNCiAgICAgICAgICAgICAgICBkb2MuYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uID0gInt7LndpemFyZC54bWx0di5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICAgICAgY29uc29sZS5sb2coa2V5KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgfQ0KICAgICAgICB2YXIgcHJlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiUFJFIik7DQogICAgICAgIHByZS5pbm5lckhUTUwgPSBkZXNjcmlwdGlvbjsNCiAgICAgICAgZG9jLmFwcGVuZENoaWxkKHByZSk7DQogICAgICAgIGNvbnNvbGUubG9nKGhlYWRsaW5lLCBrZXkpOw0KICAgIH0NCn0NCmZ1bmN0aW9uIHJlYWR5Rm9yQ29uZmlndXJhdGlvbih3aXphcmQpIHsNCiAgICB2YXIgc2VydmVyID0gbmV3IFNlcnZlcigiZ2V0U2VydmVyQ29uZmlnIik7DQogICAgc2VydmVyLnJlcXVlc3QobmV3IE9iamVjdCgpKTsNCiAgICBzaG93RWxlbWVudCgibG9hZGluZyIsIGZhbHNlKTsNCiAgICBjb25maWd1cmF0aW9uV2l6YXJkW3dpemFyZF0uY3JlYXRlV2l6YXJkKCk7DQp9DQpmdW5jdGlvbiBzYXZlV2l6YXJkKCkgew0KICAgIHZhciBjbWQgPSAic2F2ZVdpemFyZCI7DQogICAgdmFyIGRpdiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb250ZW50Iik7DQogICAgdmFyIGNvbmZpZyA9IGRpdi5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCJ3aXphcmQiKTsNCiAgICB2YXIgd2l6YXJkID0gbmV3IE9iamVjdCgpOw0KICAgIGZvciAodmFyIGkgPSAwOyBpIDwgY29uZmlnLmxlbmd0aDsgaSsrKSB7DQogICAgICAgIHZhciBuYW1lOw0KICAgICAgICB2YXIgdmFsdWU7DQogICAgICAgIHN3aXRjaCAoY29uZmlnW2ldLnRhZ05hbWUpIHsNCiAgICAgICAgICAgIGNhc2UgIlNFTEVDVCI6DQogICAgICAgICAgICAgICAgbmFtZSA9IGNvbmZpZ1tpXS5uYW1lOw0KICAgICAgICAgICAgICAgIHZhbHVlID0gY29uZmlnW2ldLnZhbHVlOw0KICAgICAgICAgICAgICAgIC8vIElmIHRoZSB2YWx1ZSBpcyBhIG51bWJlciwgc3RvcmUgaXQgYXMgYSBudW1iZXINCiAgICAgICAgICAgICAgICBpZiAoaXNOYU4odmFsdWUpKSB7DQogICAgICAgICAgICAgICAgICAgIHdpemFyZFtuYW1lXSA9IHZhbHVlOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICAgICAgd2l6YXJkW25hbWVdID0gcGFyc2VJbnQodmFsdWUpOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgIklOUFVUIjoNCiAgICAgICAgICAgICAgICBzd2l0Y2ggKGNvbmZpZ1tpXS50eXBlKSB7DQogICAgICAgICAgICAgICAgICAgIGNhc2UgInRleHQiOg0KICAgICAgICAgICAgICAgICAgICAgICAgbmFtZSA9IGNvbmZpZ1tpXS5uYW1lOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSBjb25maWdbaV0udmFsdWU7DQogICAgICAgICAgICAgICAgICAgICAgICBpZiAodmFsdWUubGVuZ3RoID09IDApIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgbXNnID0gbmFtZS50b1VwcGVyQ2FzZSgpICsgIjogIiArICJ7ey5hbGVydC5taXNzaW5nSW5wdXR9fSI7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgYWxlcnQobXNnKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICB3aXphcmRbbmFtZV0gPSB2YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICAgICAgLy8gY29kZS4uLg0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICB9DQogICAgfQ0KICAgIHZhciBkYXRhID0gbmV3IE9iamVjdCgpOw0KICAgIGRhdGFbIndpemFyZCJdID0gd2l6YXJkOw0KICAgIHZhciBzZXJ2ZXIgPSBuZXcgU2VydmVyKGNtZCk7DQogICAgc2VydmVyLnJlcXVlc3QoZGF0YSk7DQogICAgY29uc29sZS5sb2coZGF0YSk7DQp9DQovLyBXaXphcmQNCnZhciBjb25maWd1cmF0aW9uV2l6YXJkID0gbmV3IEFycmF5KCk7DQpjb25maWd1cmF0aW9uV2l6YXJkLnB1c2gobmV3IFdpemFyZEl0ZW0oInR1bmVyIiwgInt7LndpemFyZC50dW5lci50aXRsZX19IikpOw0KY29uZmlndXJhdGlvbldpemFyZC5wdXNoKG5ldyBXaXphcmRJdGVtKCJlcGdTb3VyY2UiLCAie3sud2l6YXJkLmVwZ1NvdXJjZS50aXRsZX19IikpOw0KY29uZmlndXJhdGlvbldpemFyZC5wdXNoKG5ldyBXaXphcmRJdGVtKCJtM3UiLCAie3sud2l6YXJkLm0zdS50aXRsZX19IikpOw0KY29uZmlndXJhdGlvbldpemFyZC5wdXNoKG5ldyBXaXphcmRJdGVtKCJ4bWx0diIsICJ7ey53aXphcmQueG1sdHYudGl0bGV9fSIpKTsNCg==" webUI["html/js/logs_ts.js"] = "Y2xhc3MgTG9nIHsNCiAgICBjcmVhdGVMb2coZW50cnkpIHsNCiAgICAgICAgdmFyIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJQUkUiKTsNCiAgICAgICAgaWYgKGVudHJ5LmluZGV4T2YoIldBUk5JTkciKSAhPSAtMSkgew0KICAgICAgICAgICAgZWxlbWVudC5jbGFzc05hbWUgPSAid2FybmluZ01zZyI7DQogICAgICAgIH0NCiAgICAgICAgaWYgKGVudHJ5LmluZGV4T2YoIkVSUk9SIikgIT0gLTEpIHsNCiAgICAgICAgICAgIGVsZW1lbnQuY2xhc3NOYW1lID0gImVycm9yTXNnIjsNCiAgICAgICAgfQ0KICAgICAgICBpZiAoZW50cnkuaW5kZXhPZigiREVCVUciKSAhPSAtMSkgew0KICAgICAgICAgICAgZWxlbWVudC5jbGFzc05hbWUgPSAiZGVidWdNc2ciOw0KICAgICAgICB9DQogICAgICAgIGVsZW1lbnQuaW5uZXJIVE1MID0gZW50cnk7DQogICAgICAgIHJldHVybiBlbGVtZW50Ow0KICAgIH0NCn0NCmZ1bmN0aW9uIHNob3dMb2dzKGJvdHRvbSkgew0KICAgIHZhciBsb2cgPSBuZXcgTG9nKCk7DQogICAgdmFyIGxvZ3MgPSBTRVJWRVJbImxvZyJdWyJsb2ciXTsNCiAgICB2YXIgZGl2ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnRlbnRfbG9nIik7DQogICAgZGl2LmlubmVySFRNTCA9ICIiOw0KICAgIHZhciBrZXlzID0gZ2V0T3duT2JqUHJvcHMobG9ncyk7DQogICAga2V5cy5mb3JFYWNoKGxvZ0lEID0+IHsNCiAgICAgICAgdmFyIGVudHJ5ID0gbG9nLmNyZWF0ZUxvZyhsb2dzW2xvZ0lEXSk7DQogICAgICAgIGRpdi5hcHBlbmQoZW50cnkpOw0KICAgIH0pOw0KICAgIHNldFRpbWVvdXQoZnVuY3Rpb24gKCkgew0KICAgICAgICBpZiAoYm90dG9tID09IHRydWUpIHsNCiAgICAgICAgICAgIHZhciB3cmFwcGVyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImJveC13cmFwcGVyIik7DQogICAgICAgICAgICB3cmFwcGVyLnNjcm9sbFRvcCA9IHdyYXBwZXIuc2Nyb2xsSGVpZ2h0Ow0KICAgICAgICB9DQogICAgfSwgMTApOw0KfQ0KZnVuY3Rpb24gcmVzZXRMb2dzKCkgew0KICAgIHZhciBjbWQgPSAicmVzZXRMb2dzIjsNCiAgICB2YXIgZGF0YSA9IG5ldyBPYmplY3QoKTsNCiAgICB2YXIgc2VydmVyID0gbmV3IFNlcnZlcihjbWQpOw0KICAgIHNlcnZlci5yZXF1ZXN0KGRhdGEpOw0KfQ0K" webUI["html/js/menu_ts.js"] = "Y2xhc3MgTWFpbk1lbnUgew0KICAgIGNvbnN0cnVjdG9yKCkgew0KICAgICAgICB0aGlzLkRvY3VtZW50SUQgPSAibWFpbi1tZW51IjsNCiAgICAgICAgdGhpcy5IVE1MVGFnID0gIkxJIjsNCiAgICAgICAgdGhpcy5JbWFnZVBhdGggPSAiaW1nLyI7DQogICAgfQ0KICAgIGNyZWF0ZUlNRyhzcmMpIHsNCiAgICAgICAgbGV0IGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJJTUciKTsNCiAgICAgICAgZWxlbWVudC5zZXRBdHRyaWJ1dGUoInNyYyIsIHRoaXMuSW1hZ2VQYXRoICsgc3JjKTsNCiAgICAgICAgcmV0dXJuIGVsZW1lbnQ7DQogICAgfQ0KICAgIGNyZWF0ZVZhbHVlKHZhbHVlKSB7DQogICAgICAgIGxldCBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiUCIpOw0KICAgICAgICBlbGVtZW50LmlubmVySFRNTCA9IHZhbHVlOw0KICAgICAgICByZXR1cm4gZWxlbWVudDsNCiAgICB9DQp9DQpjbGFzcyBNYWluTWVudUl0ZW0gZXh0ZW5kcyBNYWluTWVudSB7DQogICAgY29uc3RydWN0b3IobWVudUtleSwgdmFsdWUsIGltYWdlLCBoZWFkbGluZSkgew0KICAgICAgICBzdXBlcigpOw0KICAgICAgICB0aGlzLm1lbnVLZXkgPSBtZW51S2V5Ow0KICAgICAgICB0aGlzLnZhbHVlID0gdmFsdWU7DQogICAgICAgIHRoaXMuaW1nU3JjID0gaW1hZ2U7DQogICAgICAgIHRoaXMuaGVhZGxpbmUgPSBoZWFkbGluZTsNCiAgICB9DQogICAgY3JlYXRlSXRlbSgpIHsNCiAgICAgICAgbGV0IGl0ZW0gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJMSSIpOw0KICAgICAgICBpdGVtLnNldEF0dHJpYnV0ZSgib25jbGljayIsICJqYXZhc2NyaXB0OiBvcGVuVGhpc01lbnUodGhpcykiKTsNCiAgICAgICAgaXRlbS5zZXRBdHRyaWJ1dGUoImlkIiwgdGhpcy5pZCk7DQogICAgICAgIGxldCBpbWcgPSB0aGlzLmNyZWF0ZUlNRyh0aGlzLmltZ1NyYyk7DQogICAgICAgIGxldCB2YWx1ZSA9IHRoaXMuY3JlYXRlVmFsdWUodGhpcy52YWx1ZSk7DQogICAgICAgIGl0ZW0uYXBwZW5kQ2hpbGQoaW1nKTsNCiAgICAgICAgaXRlbS5hcHBlbmRDaGlsZCh2YWx1ZSk7DQogICAgICAgIGxldCBkb2MgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCh0aGlzLkRvY3VtZW50SUQpOw0KICAgICAgICBkb2MuYXBwZW5kQ2hpbGQoaXRlbSk7DQogICAgICAgIHN3aXRjaCAodGhpcy5tZW51S2V5KSB7DQogICAgICAgICAgICBjYXNlICJwbGF5bGlzdCI6DQogICAgICAgICAgICAgICAgdGhpcy50YWJsZUhlYWRlciA9IFsie3sucGxheWxpc3QudGFibGUucGxheWxpc3R9fSIsICJ7ey5wbGF5bGlzdC50YWJsZS50dW5lcn19IiwgInt7LnBsYXlsaXN0LnRhYmxlLmxhc3RVcGRhdGV9fSIsICJ7ey5wbGF5bGlzdC50YWJsZS5hdmFpbGFiaWxpdHl9fSAlIiwgInt7LnBsYXlsaXN0LnRhYmxlLnR5cGV9fSIsICJ7ey5wbGF5bGlzdC50YWJsZS5zdHJlYW1zfX0iLCAie3sucGxheWxpc3QudGFibGUuZ3JvdXBUaXRsZX19ICUiLCAie3sucGxheWxpc3QudGFibGUudHZnSUR9fSAlIiwgInt7LnBsYXlsaXN0LnRhYmxlLnVuaXF1ZUlEfX0gJSJdOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAieG1sdHYiOg0KICAgICAgICAgICAgICAgIHRoaXMudGFibGVIZWFkZXIgPSBbInt7LnhtbHR2LnRhYmxlLmd1aWRlfX0iLCAie3sueG1sdHYudGFibGUubGFzdFVwZGF0ZX19IiwgInt7LnhtbHR2LnRhYmxlLmF2YWlsYWJpbGl0eX19ICUiLCAie3sueG1sdHYudGFibGUuY2hhbm5lbHN9fSIsICJ7ey54bWx0di50YWJsZS5wcm9ncmFtc319Il07DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJmaWx0ZXIiOg0KICAgICAgICAgICAgICAgIHRoaXMudGFibGVIZWFkZXIgPSBbInt7LmZpbHRlci50YWJsZS5zdGFydGluZ0NoYW5uZWx9fSIsICJ7ey5maWx0ZXIudGFibGUubmFtZX19IiwgInt7LmZpbHRlci50YWJsZS50eXBlfX0iLCAie3suZmlsdGVyLnRhYmxlLmZpbHRlcn19Il07DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ1c2VycyI6DQogICAgICAgICAgICAgICAgdGhpcy50YWJsZUhlYWRlciA9IFsie3sudXNlcnMudGFibGUudXNlcm5hbWV9fSIsICJ7ey51c2Vycy50YWJsZS5wYXNzd29yZH19IiwgInt7LnVzZXJzLnRhYmxlLndlYn19IiwgInt7LnVzZXJzLnRhYmxlLnBtc319IiwgInt7LnVzZXJzLnRhYmxlLm0zdX19IiwgInt7LnVzZXJzLnRhYmxlLnhtbH19IiwgInt7LnVzZXJzLnRhYmxlLmFwaX19Il07DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJtYXBwaW5nIjoNCiAgICAgICAgICAgICAgICB0aGlzLnRhYmxlSGVhZGVyID0gWyJCVUxLIiwgInt7Lm1hcHBpbmcudGFibGUuY2hOb319IiwgInt7Lm1hcHBpbmcudGFibGUubG9nb319IiwgInt7Lm1hcHBpbmcudGFibGUuY2hhbm5lbE5hbWV9fSIsICJ7ey5tYXBwaW5nLnRhYmxlLnBsYXlsaXN0fX0iLCAie3subWFwcGluZy50YWJsZS5ncm91cFRpdGxlfX0iLCAie3subWFwcGluZy50YWJsZS54bWx0dkZpbGV9fSIsICJ7ey5tYXBwaW5nLnRhYmxlLnhtbHR2SUR9fSIsICJ7ey5tYXBwaW5nLnRhYmxlLnRpbWVzaGlmdH19Il07DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIH0NCiAgICAgICAgLy9jb25zb2xlLmxvZyh0aGlzLm1lbnVLZXksIHRoaXMudGFibGVIZWFkZXIpOw0KICAgIH0NCn0NCmNsYXNzIENvbnRlbnQgew0KICAgIGNvbnN0cnVjdG9yKCkgew0KICAgICAgICB0aGlzLkRvY3VtZW50SUQgPSAiY29udGVudCI7DQogICAgICAgIHRoaXMuVGFibGVJRCA9ICJjb250ZW50X3RhYmxlIjsNCiAgICAgICAgdGhpcy5oZWFkZXJDbGFzcyA9ICJjb250ZW50X3RhYmxlX2hlYWRlciI7DQogICAgICAgIHRoaXMuaW50ZXJhY3Rpb25JRCA9ICJjb250ZW50LWludGVyYWN0aW9uIjsNCiAgICB9DQogICAgY3JlYXRlSGVhZGxpbmUodmFsdWUpIHsNCiAgICAgICAgbGV0IGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJIMyIpOw0KICAgICAgICBlbGVtZW50LmlubmVySFRNTCA9IHZhbHVlOw0KICAgICAgICByZXR1cm4gZWxlbWVudDsNCiAgICB9DQogICAgY3JlYXRlSFIoKSB7DQogICAgICAgIHJldHVybiBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJIUiIpOw0KICAgIH0NCiAgICBjcmVhdGVJbnRlcmFjdGlvbigpIHsNCiAgICAgICAgbGV0IGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJESVYiKTsNCiAgICAgICAgZWxlbWVudC5zZXRBdHRyaWJ1dGUoImlkIiwgdGhpcy5pbnRlcmFjdGlvbklEKTsNCiAgICAgICAgcmV0dXJuIGVsZW1lbnQ7DQogICAgfQ0KICAgIGNyZWF0ZURJVigpIHsNCiAgICAgICAgbGV0IGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJESVYiKTsNCiAgICAgICAgZWxlbWVudC5pZCA9IHRoaXMuRGl2SUQ7DQogICAgICAgIHJldHVybiBlbGVtZW50Ow0KICAgIH0NCiAgICBjcmVhdGVUQUJMRSgpIHsNCiAgICAgICAgbGV0IGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJUQUJMRSIpOw0KICAgICAgICBlbGVtZW50LmlkID0gdGhpcy5UYWJsZUlEOw0KICAgICAgICByZXR1cm4gZWxlbWVudDsNCiAgICB9DQogICAgY3JlYXRlVGFibGVSb3coKSB7DQogICAgICAgIGxldCBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVFIiKTsNCiAgICAgICAgZWxlbWVudC5jbGFzc05hbWUgPSB0aGlzLmhlYWRlckNsYXNzOw0KICAgICAgICByZXR1cm4gZWxlbWVudDsNCiAgICB9DQogICAgY3JlYXRlVGFibGVDb250ZW50KG1lbnVLZXkpIHsNCiAgICAgICAgbGV0IGRhdGEgPSB7fTsNCiAgICAgICAgbGV0IHJvd3MgPSBbXTsNCiAgICAgICAgbGV0IGZpbGVUeXBlcyA9IFtdOw0KICAgICAgICBzd2l0Y2ggKG1lbnVLZXkpIHsNCiAgICAgICAgICAgIGNhc2UgInBsYXlsaXN0IjoNCiAgICAgICAgICAgICAgICBmaWxlVHlwZXMgPSBbIm0zdSIsICJoZGhyIl07DQogICAgICAgICAgICAgICAgZmlsZVR5cGVzLmZvckVhY2goZmlsZVR5cGUgPT4gew0KICAgICAgICAgICAgICAgICAgICBkYXRhID0gU0VSVkVSWyJzZXR0aW5ncyJdWyJmaWxlcyJdW2ZpbGVUeXBlXTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGtleXMgPSBnZXRPd25PYmpQcm9wcyhkYXRhKTsNCiAgICAgICAgICAgICAgICAgICAga2V5cy5mb3JFYWNoKGtleSA9PiB7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgdHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJUUiIpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuaWQgPSBrZXk7DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCInICsgZmlsZVR5cGUgKyAnIiwgdGhpcyknKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJuYW1lIl07DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgaWYgKFNFUlZFUlsic2V0dGluZ3MiXVsiYnVmZmVyIl0gIT0gIi0iKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsidHVuZXIiXTsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSAiLSI7DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsibGFzdC51cGRhdGUiXTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJwcm92aWRlci5hdmFpbGFiaWxpdHkiXTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJ0eXBlIl0udG9VcHBlckNhc2UoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJjb21wYXRpYmlsaXR5Il1bInN0cmVhbXMiXTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJjb21wYXRpYmlsaXR5Il1bImdyb3VwLnRpdGxlIl07DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsiY29tcGF0aWJpbGl0eSJdWyJ0dmcuaWQiXTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJjb21wYXRpYmlsaXR5Il1bInN0cmVhbS5pZCJdOw0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgcm93cy5wdXNoKHRyKTsNCiAgICAgICAgICAgICAgICAgICAgfSk7DQogICAgICAgICAgICAgICAgfSk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJmaWx0ZXIiOg0KICAgICAgICAgICAgICAgIGRlbGV0ZSBTRVJWRVJbInNldHRpbmdzIl1bImZpbHRlciJdWy0xXTsNCiAgICAgICAgICAgICAgICBkYXRhID0gU0VSVkVSWyJzZXR0aW5ncyJdWyJmaWx0ZXIiXTsNCiAgICAgICAgICAgICAgICB2YXIga2V5cyA9IGdldE93bk9ialByb3BzKGRhdGEpOw0KICAgICAgICAgICAgICAgIGtleXMuZm9yRWFjaChrZXkgPT4gew0KICAgICAgICAgICAgICAgICAgICB2YXIgdHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJUUiIpOw0KICAgICAgICAgICAgICAgICAgICB0ci5pZCA9IGtleTsNCiAgICAgICAgICAgICAgICAgICAgdHIuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgiJyArIGRhdGFba2V5XVsidHlwZSJdICsgJyIsIHRoaXMpJyk7DQogICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJzdGFydGluZ0NoYW5uZWwiXTsNCiAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsibmFtZSJdOw0KICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICBzd2l0Y2ggKGRhdGFba2V5XVsidHlwZSJdKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBjYXNlICJjdXN0b20tZmlsdGVyIjoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gInt7LmZpbHRlci5jdXN0b219fSI7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgICAgICAgICBjYXNlICJncm91cC10aXRsZSI6DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9ICJ7ey5maWx0ZXIuZ3JvdXB9fSI7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgICAgICAgICBkZWZhdWx0Og0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bImZpbHRlciJdOw0KICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgIHJvd3MucHVzaCh0cik7DQogICAgICAgICAgICAgICAgfSk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ4bWx0diI6DQogICAgICAgICAgICAgICAgZmlsZVR5cGVzID0gbmV3IEFycmF5KCJ4bWx0diIpOw0KICAgICAgICAgICAgICAgIGZpbGVUeXBlcy5mb3JFYWNoKGZpbGVUeXBlID0+IHsNCiAgICAgICAgICAgICAgICAgICAgZGF0YSA9IFNFUlZFUlsic2V0dGluZ3MiXVsiZmlsZXMiXVtmaWxlVHlwZV07DQogICAgICAgICAgICAgICAgICAgIHZhciBrZXlzID0gZ2V0T3duT2JqUHJvcHMoZGF0YSk7DQogICAgICAgICAgICAgICAgICAgIGtleXMuZm9yRWFjaChrZXkgPT4gew0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVFIiKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmlkID0ga2V5Ow0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgiJyArIGZpbGVUeXBlICsgJyIsIHRoaXMpJyk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsibmFtZSJdOw0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bImxhc3QudXBkYXRlIl07DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsicHJvdmlkZXIuYXZhaWxhYmlsaXR5Il07DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsiY29tcGF0aWJpbGl0eSJdWyJ4bWx0di5jaGFubmVscyJdOw0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bImNvbXBhdGliaWxpdHkiXVsieG1sdHYucHJvZ3JhbXMiXTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHJvd3MucHVzaCh0cik7DQogICAgICAgICAgICAgICAgICAgIH0pOw0KICAgICAgICAgICAgICAgIH0pOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAidXNlcnMiOg0KICAgICAgICAgICAgICAgIGZpbGVUeXBlcyA9IG5ldyBBcnJheSgidXNlcnMiKTsNCiAgICAgICAgICAgICAgICBmaWxlVHlwZXMuZm9yRWFjaChmaWxlVHlwZSA9PiB7DQogICAgICAgICAgICAgICAgICAgIGRhdGEgPSBTRVJWRVJbZmlsZVR5cGVdOw0KICAgICAgICAgICAgICAgICAgICB2YXIga2V5cyA9IGdldE93bk9ialByb3BzKGRhdGEpOw0KICAgICAgICAgICAgICAgICAgICBrZXlzLmZvckVhY2goa2V5ID0+IHsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciB0ciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlRSIik7DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5pZCA9IGtleTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoIicgKyBmaWxlVHlwZSArICciLCB0aGlzKScpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bImRhdGEiXVsidXNlcm5hbWUiXTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gIioqKioqKiI7DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGRhdGFba2V5XVsiZGF0YSJdWyJhdXRoZW50aWNhdGlvbi53ZWIiXSA9PSB0cnVlKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9ICLinJMiOw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9ICItIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgICAgICBpZiAoZGF0YVtrZXldWyJkYXRhIl1bImF1dGhlbnRpY2F0aW9uLnBtcyJdID09IHRydWUpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gIuKckyI7DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gIi0iOw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChkYXRhW2tleV1bImRhdGEiXVsiYXV0aGVudGljYXRpb24ubTN1Il0gPT0gdHJ1ZSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSAi4pyTIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSAiLSI7DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGRhdGFba2V5XVsiZGF0YSJdWyJhdXRoZW50aWNhdGlvbi54bWwiXSA9PSB0cnVlKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9ICLinJMiOw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9ICItIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgICAgICBpZiAoZGF0YVtrZXldWyJkYXRhIl1bImF1dGhlbnRpY2F0aW9uLmFwaSJdID09IHRydWUpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gIuKckyI7DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gIi0iOw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgcm93cy5wdXNoKHRyKTsNCiAgICAgICAgICAgICAgICAgICAgfSk7DQogICAgICAgICAgICAgICAgfSk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJtYXBwaW5nIjoNCiAgICAgICAgICAgICAgICBCVUxLX0VESVQgPSBmYWxzZTsNCiAgICAgICAgICAgICAgICBjcmVhdGVTZWFyY2hPYmooKTsNCiAgICAgICAgICAgICAgICBjaGVja1VuZG8oImVwZ01hcHBpbmciKTsNCiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZygiTUFQUElORyIpOw0KICAgICAgICAgICAgICAgIGRhdGEgPSBTRVJWRVJbInhlcGciXVsiZXBnTWFwcGluZyJdOw0KICAgICAgICAgICAgICAgIHZhciBrZXlzID0gZ2V0T3duT2JqUHJvcHMoZGF0YSk7DQogICAgICAgICAgICAgICAga2V5cy5mb3JFYWNoKGtleSA9PiB7DQogICAgICAgICAgICAgICAgICAgIHZhciB0ciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlRSIik7DQogICAgICAgICAgICAgICAgICAgIHRyLmlkID0ga2V5Ow0KICAgICAgICAgICAgICAgICAgICAvL3RyLnNldEF0dHJpYnV0ZSgnb25jb250ZXh0bWVudScsICdqYXZhc2NyaXB0OiByaWdodENsaWNrKHRoaXMpJykNCiAgICAgICAgICAgICAgICAgICAgc3dpdGNoIChkYXRhW2tleV1bIngtYWN0aXZlIl0pIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgdHJ1ZToNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ci5jbGFzc05hbWUgPSAiYWN0aXZlRVBHIjsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgZmFsc2U6DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgdHIuY2xhc3NOYW1lID0gIm5vdEFjdGl2ZUVQRyI7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgLy8gQnVsaw0KICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJCVUxLIjsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGZhbHNlOw0KICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgIC8vIENoYW5uZWwgbnVtYmVyDQogICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIklOUFVUQ0hBTk5FTCI7DQogICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bIngtY2hhbm5lbElEIl07DQogICAgICAgICAgICAgICAgICAgIC8vdGQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IGNoYW5nZUNoYW5uZWxOdW1iZXIoIicgKyBrZXkgKyAnIiwgdGhpcyknKQ0KICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgIC8vIExvZ28NCiAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiSU1HIjsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5pbWFnZVVSTCA9IGRhdGFba2V5XVsidHZnLWxvZ28iXTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHRkID0gY2VsbC5jcmVhdGVDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgIHRkLnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoIm1hcHBpbmciLCB0aGlzKScpOw0KICAgICAgICAgICAgICAgICAgICB0ZC5pZCA9IGtleTsNCiAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQodGQpOw0KICAgICAgICAgICAgICAgICAgICAvLyBDaGFubmVsIG5hbWUNCiAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2xhc3NOYW1lID0gZGF0YVtrZXldWyJ4LWNhdGVnb3J5Il07DQogICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bIngtbmFtZSJdOw0KICAgICAgICAgICAgICAgICAgICB2YXIgdGQgPSBjZWxsLmNyZWF0ZUNlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgdGQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgibWFwcGluZyIsIHRoaXMpJyk7DQogICAgICAgICAgICAgICAgICAgIHRkLmlkID0ga2V5Ow0KICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZCh0ZCk7DQogICAgICAgICAgICAgICAgICAgIC8vIFBsYXlsaXN0DQogICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAvL2NlbGwudmFsdWUgPSBkYXRhW2tleV1bIl9maWxlLm0zdS5uYW1lIl0gDQogICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBnZXRWYWx1ZUZyb21Qcm92aWRlckZpbGUoZGF0YVtrZXldWyJfZmlsZS5tM3UuaWQiXSwgIm0zdSIsICJuYW1lIik7DQogICAgICAgICAgICAgICAgICAgIHZhciB0ZCA9IGNlbGwuY3JlYXRlQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICB0ZC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJtYXBwaW5nIiwgdGhpcyknKTsNCiAgICAgICAgICAgICAgICAgICAgdGQuaWQgPSBrZXk7DQogICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKHRkKTsNCiAgICAgICAgICAgICAgICAgICAgLy8gR3JvdXAgKGdyb3VwLXRpdGxlKQ0KICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsieC1ncm91cC10aXRsZSJdOw0KICAgICAgICAgICAgICAgICAgICB2YXIgdGQgPSBjZWxsLmNyZWF0ZUNlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgdGQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgibWFwcGluZyIsIHRoaXMpJyk7DQogICAgICAgICAgICAgICAgICAgIHRkLmlkID0ga2V5Ow0KICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZCh0ZCk7DQogICAgICAgICAgICAgICAgICAgIC8vIFhNTFRWIGZpbGUNCiAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgIGlmIChkYXRhW2tleV1bIngteG1sdHYtZmlsZSJdICE9ICItIikgew0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGdldFZhbHVlRnJvbVByb3ZpZGVyRmlsZShkYXRhW2tleV1bIngteG1sdHYtZmlsZSJdLCAieG1sdHYiLCAibmFtZSIpOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsieC14bWx0di1maWxlIl07DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgdmFyIHRkID0gY2VsbC5jcmVhdGVDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgIHRkLnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoIm1hcHBpbmciLCB0aGlzKScpOw0KICAgICAgICAgICAgICAgICAgICB0ZC5pZCA9IGtleTsNCiAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQodGQpOw0KICAgICAgICAgICAgICAgICAgICAvLyBYTUxUViBDaGFubmVsDQogICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAvL3ZhciB2YWx1ZSA9IHN0ci5zdWJzdHJpbmcoMSwgNCk7DQogICAgICAgICAgICAgICAgICAgIHZhciB2YWx1ZSA9IGRhdGFba2V5XVsieC1tYXBwaW5nIl07DQogICAgICAgICAgICAgICAgICAgIGlmICh2YWx1ZS5sZW5ndGggPiAyMCkgew0KICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSBkYXRhW2tleV1bIngtbWFwcGluZyJdLnN1YnN0cmluZygwLCAyMCkgKyAiLi4uIjsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gdmFsdWU7DQogICAgICAgICAgICAgICAgICAgIHZhciB0ZCA9IGNlbGwuY3JlYXRlQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICB0ZC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJtYXBwaW5nIiwgdGhpcyknKTsNCiAgICAgICAgICAgICAgICAgICAgdGQuaWQgPSBrZXk7DQogICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKHRkKTsNCiAgICAgICAgICAgICAgICAgICAgLy8gVGltZVNoaWZ0DQogICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJ4LXRpbWVzaGlmdCJdOw0KICAgICAgICAgICAgICAgICAgICB2YXIgdGQgPSBjZWxsLmNyZWF0ZUNlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgdGQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgibWFwcGluZyIsIHRoaXMpJyk7DQogICAgICAgICAgICAgICAgICAgIHRkLmlkID0ga2V5Ow0KICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZCh0ZCk7DQogICAgICAgICAgICAgICAgICAgIHJvd3MucHVzaCh0cik7DQogICAgICAgICAgICAgICAgfSk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJzZXR0aW5ncyI6DQogICAgICAgICAgICAgICAgYWxlcnQoKTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICAgICAgY29uc29sZS5sb2coIlRhYmxlIGNvbnRlbnQgKG1lbnVLZXkpOiIsIG1lbnVLZXkpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICB9DQogICAgICAgIHJldHVybiByb3dzOw0KICAgIH0NCn0NCmNsYXNzIENlbGwgew0KICAgIGNyZWF0ZUNlbGwoKSB7DQogICAgICAgIGxldCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgIGlmICh0aGlzLmNoaWxkID09IHRydWUpIHsNCiAgICAgICAgICAgIHZhciBlbGVtZW50Ow0KICAgICAgICAgICAgc3dpdGNoICh0aGlzLmNoaWxkVHlwZSkgew0KICAgICAgICAgICAgICAgIGNhc2UgIlAiOg0KICAgICAgICAgICAgICAgICAgICBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCh0aGlzLmNoaWxkVHlwZSk7DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQuaW5uZXJIVE1MID0gdGhpcy52YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC5jbGFzc05hbWUgPSB0aGlzLmNsYXNzTmFtZTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAiSU5QVVQiOg0KICAgICAgICAgICAgICAgICAgICBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCh0aGlzLmNoaWxkVHlwZSk7DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQudmFsdWUgPSB0aGlzLnZhbHVlOw0KICAgICAgICAgICAgICAgICAgICBlbGVtZW50LnR5cGUgPSAidGV4dCI7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgIklOUFVUQ0hBTk5FTCI6DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJJTlBVVCIpOw0KICAgICAgICAgICAgICAgICAgICBlbGVtZW50LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2c2NyaXB0OiBjaGFuZ2VDaGFubmVsTnVtYmVyKHRoaXMpIik7DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQudmFsdWUgPSB0aGlzLnZhbHVlOw0KICAgICAgICAgICAgICAgICAgICBlbGVtZW50LnR5cGUgPSAidGV4dCI7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgIkJVTEsiOg0KICAgICAgICAgICAgICAgICAgICBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiSU5QVVQiKTsNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC5jaGVja2VkID0gdGhpcy52YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC50eXBlID0gImNoZWNrYm94IjsNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC5jbGFzc05hbWUgPSAiYnVsayBoaWRlQnVsayI7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgIkJVTEtfSEVBRCI6DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJJTlBVVCIpOw0KICAgICAgICAgICAgICAgICAgICBlbGVtZW50LmNoZWNrZWQgPSB0aGlzLnZhbHVlOw0KICAgICAgICAgICAgICAgICAgICBlbGVtZW50LnR5cGUgPSAiY2hlY2tib3giOw0KICAgICAgICAgICAgICAgICAgICBlbGVtZW50LmNsYXNzTmFtZSA9ICJidWxrIGhpZGVCdWxrIjsNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAiamF2YXNjcmlwdDogc2VsZWN0QWxsQ2hhbm5lbHMoKSIpOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBjYXNlICJJTUciOg0KICAgICAgICAgICAgICAgICAgICBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCh0aGlzLmNoaWxkVHlwZSk7DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQuc2V0QXR0cmlidXRlKCJzcmMiLCB0aGlzLmltYWdlVVJMKTsNCiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuaW1hZ2VVUkwgIT0gIiIpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGVsZW1lbnQuc2V0QXR0cmlidXRlKCJvbmVycm9yIiwgImphdmFzY3JpcHQ6IHRoaXMub25lcnJvcj1udWxsO3RoaXMuc3JjPScnIik7DQogICAgICAgICAgICAgICAgICAgICAgICAvL29uZXJyb3I9InRoaXMub25lcnJvcj1udWxsO3RoaXMuc3JjPSdtaXNzaW5nLmdpZic7Ig0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9DQogICAgICAgICAgICB0ZC5hcHBlbmRDaGlsZChlbGVtZW50KTsNCiAgICAgICAgfQ0KICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgIHRkLmlubmVySFRNTCA9IHRoaXMudmFsdWU7DQogICAgICAgIH0NCiAgICAgICAgaWYgKHRoaXMub25jbGljayA9PSB0cnVlKSB7DQogICAgICAgICAgICB0ZC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCB0aGlzLm9uY2xpY2tGdW5jdGlvbik7DQogICAgICAgICAgICB0ZC5jbGFzc05hbWUgPSAicG9pbnRlciI7DQogICAgICAgIH0NCiAgICAgICAgaWYgKHRoaXMudGRDbGFzc05hbWUgIT0gdW5kZWZpbmVkKSB7DQogICAgICAgICAgICB0ZC5jbGFzc05hbWUgPSB0aGlzLnRkQ2xhc3NOYW1lOw0KICAgICAgICB9DQogICAgICAgIHJldHVybiB0ZDsNCiAgICB9DQp9DQpjbGFzcyBTaG93Q29udGVudCBleHRlbmRzIENvbnRlbnQgew0KICAgIGNvbnN0cnVjdG9yKG1lbnVJRCkgew0KICAgICAgICBzdXBlcigpOw0KICAgICAgICB0aGlzLm1lbnVJRCA9IG1lbnVJRDsNCiAgICB9DQogICAgY3JlYXRlSW5wdXQodHlwZSwgbmFtZSwgdmFsdWUpIHsNCiAgICAgICAgbGV0IGlucHV0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiSU5QVVQiKTsNCiAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJ0eXBlIiwgdHlwZSk7DQogICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgibmFtZSIsIG5hbWUpOw0KICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInZhbHVlIiwgdmFsdWUpOw0KICAgICAgICByZXR1cm4gaW5wdXQ7DQogICAgfQ0KICAgIHNob3coKSB7DQogICAgICAgIENPTFVNTl9UT19TT1JUID0gLTE7DQogICAgICAgIC8vIERlbGV0ZSBvbGQgY29udGVudA0KICAgICAgICBsZXQgZG9jID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQodGhpcy5Eb2N1bWVudElEKTsNCiAgICAgICAgZG9jLmlubmVySFRNTCA9ICIiOw0KICAgICAgICBzaG93UHJldmlldyhmYWxzZSk7DQogICAgICAgIC8vIEhlYWRsaW5lDQogICAgICAgIGxldCBoZWFkbGluZSA9IG1lbnVJdGVtc1t0aGlzLm1lbnVJRF0uaGVhZGxpbmU7DQogICAgICAgIGxldCBtZW51S2V5ID0gbWVudUl0ZW1zW3RoaXMubWVudUlEXS5tZW51S2V5Ow0KICAgICAgICBsZXQgaCA9IHRoaXMuY3JlYXRlSGVhZGxpbmUoaGVhZGxpbmUpOw0KICAgICAgICBkb2MuYXBwZW5kQ2hpbGQoaCk7DQogICAgICAgIGxldCBociA9IHRoaXMuY3JlYXRlSFIoKTsNCiAgICAgICAgZG9jLmFwcGVuZENoaWxkKGhyKTsNCiAgICAgICAgLy8gSW50ZXJhY3Rpb24NCiAgICAgICAgbGV0IGRpdiA9IHRoaXMuY3JlYXRlSW50ZXJhY3Rpb24oKTsNCiAgICAgICAgZG9jLmFwcGVuZENoaWxkKGRpdik7DQogICAgICAgIGxldCBpbnRlcmFjdGlvbiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHRoaXMuaW50ZXJhY3Rpb25JRCk7DQogICAgICAgIHN3aXRjaCAobWVudUtleSkgew0KICAgICAgICAgICAgY2FzZSAicGxheWxpc3QiOg0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IHRoaXMuY3JlYXRlSW5wdXQoImJ1dHRvbiIsIG1lbnVLZXksICJ7ey5idXR0b24ubmV3fX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoImlkIiwgIi0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJwbGF5bGlzdCIpJyk7DQogICAgICAgICAgICAgICAgaW50ZXJhY3Rpb24uYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiZmlsdGVyIjoNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSB0aGlzLmNyZWF0ZUlucHV0KCJidXR0b24iLCBtZW51S2V5LCAie3suYnV0dG9uLm5ld319Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJpZCIsIC0xKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJmaWx0ZXIiLCB0aGlzKScpOw0KICAgICAgICAgICAgICAgIGludGVyYWN0aW9uLmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInhtbHR2IjoNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSB0aGlzLmNyZWF0ZUlucHV0KCJidXR0b24iLCBtZW51S2V5LCAie3suYnV0dG9uLm5ld319Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJpZCIsICJ4bWx0diIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoInhtbHR2IiknKTsNCiAgICAgICAgICAgICAgICBpbnRlcmFjdGlvbi5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ1c2VycyI6DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gdGhpcy5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgbWVudUtleSwgInt7LmJ1dHRvbi5uZXd9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgiaWQiLCAidXNlcnMiKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJ1c2VycyIpJyk7DQogICAgICAgICAgICAgICAgaW50ZXJhY3Rpb24uYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAibWFwcGluZyI6DQogICAgICAgICAgICAgICAgc2hvd0VsZW1lbnQoImxvYWRpbmciLCB0cnVlKTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSB0aGlzLmNyZWF0ZUlucHV0KCJidXR0b24iLCBtZW51S2V5LCAie3suYnV0dG9uLnNhdmV9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBzYXZlUG9wdXBEYXRhKCJtYXBwaW5nIiwgIiIsICIiKScpOw0KICAgICAgICAgICAgICAgIGludGVyYWN0aW9uLmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSB0aGlzLmNyZWF0ZUlucHV0KCJidXR0b24iLCBtZW51S2V5LCAie3suYnV0dG9uLmJ1bGtFZGl0fX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogYnVsa0VkaXQoKScpOw0KICAgICAgICAgICAgICAgIGludGVyYWN0aW9uLmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSB0aGlzLmNyZWF0ZUlucHV0KCJzZWFyY2giLCAic2VhcmNoIiwgIiIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgiaWQiLCAic2VhcmNoTWFwcGluZyIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3suYnV0dG9uLnNlYXJjaH19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuY2xhc3NOYW1lID0gInNlYXJjaCI7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICdqYXZhc2NyaXB0OiBzZWFyY2hJbk1hcHBpbmcoKScpOw0KICAgICAgICAgICAgICAgIGludGVyYWN0aW9uLmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInNldHRpbmdzIjoNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSB0aGlzLmNyZWF0ZUlucHV0KCJidXR0b24iLCBtZW51S2V5LCAie3suYnV0dG9uLnNhdmV9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBzYXZlU2V0dGluZ3MoKTsnKTsNCiAgICAgICAgICAgICAgICBpbnRlcmFjdGlvbi5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gdGhpcy5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgbWVudUtleSwgInt7LmJ1dHRvbi5iYWNrdXB9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBiYWNrdXAoKTsnKTsNCiAgICAgICAgICAgICAgICBpbnRlcmFjdGlvbi5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gdGhpcy5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgbWVudUtleSwgInt7LmJ1dHRvbi5yZXN0b3JlfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogcmVzdG9yZSgpOycpOw0KICAgICAgICAgICAgICAgIGludGVyYWN0aW9uLmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICB2YXIgd3JhcHBlciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIkRJViIpOw0KICAgICAgICAgICAgICAgIHdyYXBwZXIuc2V0QXR0cmlidXRlKCJpZCIsICJib3gtd3JhcHBlciIpOw0KICAgICAgICAgICAgICAgIGRvYy5hcHBlbmRDaGlsZCh3cmFwcGVyKTsNCiAgICAgICAgICAgICAgICB0aGlzLkRpdklEID0gImNvbnRlbnRfc2V0dGluZ3MiOw0KICAgICAgICAgICAgICAgIHZhciBzZXR0aW5ncyA9IHRoaXMuY3JlYXRlRElWKCk7DQogICAgICAgICAgICAgICAgd3JhcHBlci5hcHBlbmRDaGlsZChzZXR0aW5ncyk7DQogICAgICAgICAgICAgICAgc2hvd1NldHRpbmdzKCk7DQogICAgICAgICAgICAgICAgcmV0dXJuOw0KICAgICAgICAgICAgY2FzZSAibG9nIjoNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSB0aGlzLmNyZWF0ZUlucHV0KCJidXR0b24iLCBtZW51S2V5LCAie3suYnV0dG9uLnJlc2V0TG9nc319Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IHJlc2V0TG9ncygpOycpOw0KICAgICAgICAgICAgICAgIGludGVyYWN0aW9uLmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICB2YXIgd3JhcHBlciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIkRJViIpOw0KICAgICAgICAgICAgICAgIHdyYXBwZXIuc2V0QXR0cmlidXRlKCJpZCIsICJib3gtd3JhcHBlciIpOw0KICAgICAgICAgICAgICAgIGRvYy5hcHBlbmRDaGlsZCh3cmFwcGVyKTsNCiAgICAgICAgICAgICAgICB0aGlzLkRpdklEID0gImNvbnRlbnRfbG9nIjsNCiAgICAgICAgICAgICAgICB2YXIgbG9ncyA9IHRoaXMuY3JlYXRlRElWKCk7DQogICAgICAgICAgICAgICAgd3JhcHBlci5hcHBlbmRDaGlsZChsb2dzKTsNCiAgICAgICAgICAgICAgICBzaG93TG9ncyh0cnVlKTsNCiAgICAgICAgICAgICAgICByZXR1cm47DQogICAgICAgICAgICBjYXNlICJsb2dvdXQiOg0KICAgICAgICAgICAgICAgIGxvY2F0aW9uLnJlbG9hZCgpOw0KICAgICAgICAgICAgICAgIGRvY3VtZW50LmNvb2tpZSA9ICJUb2tlbj0gOyBleHBpcmVzID0gVGh1LCAwMSBKYW4gMTk3MCAwMDowMDowMCBHTVQiOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZygiU2hvdyBjb250ZW50IChtZW51S2V5KToiLCBtZW51S2V5KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgfQ0KICAgICAgICAvLyBDcmVhdGUgdGFibGUgKGlmIG5lZWRlZCkNCiAgICAgICAgdmFyIHRhYmxlSGVhZGVyID0gbWVudUl0ZW1zW3RoaXMubWVudUlEXS50YWJsZUhlYWRlcjsNCiAgICAgICAgaWYgKHRhYmxlSGVhZGVyLmxlbmd0aCA+IDApIHsNCiAgICAgICAgICAgIHZhciB3cmFwcGVyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiRElWIik7DQogICAgICAgICAgICBkb2MuYXBwZW5kQ2hpbGQod3JhcHBlcik7DQogICAgICAgICAgICB3cmFwcGVyLnNldEF0dHJpYnV0ZSgiaWQiLCAiYm94LXdyYXBwZXIiKTsNCiAgICAgICAgICAgIHZhciB0YWJsZSA9IHRoaXMuY3JlYXRlVEFCTEUoKTsNCiAgICAgICAgICAgIHdyYXBwZXIuYXBwZW5kQ2hpbGQodGFibGUpOw0KICAgICAgICAgICAgdmFyIGhlYWRlciA9IHRoaXMuY3JlYXRlVGFibGVSb3coKTsNCiAgICAgICAgICAgIHRhYmxlLmFwcGVuZENoaWxkKGhlYWRlcik7DQogICAgICAgICAgICAvLyBUYWJsZSBoZWFkZXINCiAgICAgICAgICAgIHRhYmxlSGVhZGVyLmZvckVhY2goZWxlbWVudCA9PiB7DQogICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBlbGVtZW50Ow0KICAgICAgICAgICAgICAgIGlmIChlbGVtZW50ID09ICJCVUxLIikgew0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJCVUxLX0hFQUQiOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZmFsc2U7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIGlmIChtZW51S2V5ID09ICJtYXBwaW5nIikgew0KICAgICAgICAgICAgICAgICAgICBpZiAoZWxlbWVudCA9PSAie3subWFwcGluZy50YWJsZS5jaE5vfX0iKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLm9uY2xpY2sgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5vbmNsaWNrRnVuY3Rpb24gPSAiamF2YXNjcmlwdDogc29ydFRhYmxlKDEpOyI7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnRkQ2xhc3NOYW1lID0gInNvcnRUaGlzIjsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBpZiAoZWxlbWVudCA9PSAie3subWFwcGluZy50YWJsZS5jaGFubmVsTmFtZX19Iikgew0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5vbmNsaWNrID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwub25jbGlja0Z1bmN0aW9uID0gImphdmFzY3JpcHQ6IHNvcnRUYWJsZSgzKTsiOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIGlmIChlbGVtZW50ID09ICJ7ey5tYXBwaW5nLnRhYmxlLnBsYXlsaXN0fX0iKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLm9uY2xpY2sgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5vbmNsaWNrRnVuY3Rpb24gPSAiamF2YXNjcmlwdDogc29ydFRhYmxlKDQpOyI7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgaWYgKGVsZW1lbnQgPT0gInt7Lm1hcHBpbmcudGFibGUuZ3JvdXBUaXRsZX19Iikgew0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5vbmNsaWNrID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwub25jbGlja0Z1bmN0aW9uID0gImphdmFzY3JpcHQ6IHNvcnRUYWJsZSg1KTsiOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIGlmIChlbGVtZW50ID09ICJ7ey5tYXBwaW5nLnRhYmxlLnRpbWVzaGlmdH19Iikgew0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5vbmNsaWNrID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwub25jbGlja0Z1bmN0aW9uID0gImphdmFzY3JpcHQ6IHNvcnRUYWJsZSg4KTsiOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIGlmIChtZW51S2V5ID09ICJmaWx0ZXIiKSB7DQogICAgICAgICAgICAgICAgICAgIGlmIChlbGVtZW50ID09ICJ7ey5maWx0ZXIudGFibGUuc3RhcnRpbmdDaGFubmVsfX0iKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLm9uY2xpY2sgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5vbmNsaWNrRnVuY3Rpb24gPSAiamF2YXNjcmlwdDogc29ydFRhYmxlKDApOyI7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnRkQ2xhc3NOYW1lID0gInNvcnRUaGlzIjsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBpZiAoZWxlbWVudCA9PSAie3suZmlsdGVyLnRhYmxlLm5hbWV9fSIpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwub25jbGljayA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLm9uY2xpY2tGdW5jdGlvbiA9ICJqYXZhc2NyaXB0OiBzb3J0VGFibGUoMSk7IjsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBpZiAoZWxlbWVudCA9PSAie3suZmlsdGVyLnRhYmxlLnR5cGV9fSIpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwub25jbGljayA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLm9uY2xpY2tGdW5jdGlvbiA9ICJqYXZhc2NyaXB0OiBzb3J0VGFibGUoMik7IjsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBpZiAoZWxlbWVudCA9PSAie3suZmlsdGVyLnRhYmxlLmZpbHRlcn19Iikgew0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5vbmNsaWNrID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwub25jbGlja0Z1bmN0aW9uID0gImphdmFzY3JpcHQ6IHNvcnRUYWJsZSgzKTsiOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIGhlYWRlci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICB9KTsNCiAgICAgICAgICAgIHRhYmxlLmFwcGVuZENoaWxkKGhlYWRlcik7DQogICAgICAgICAgICAvLyBDb250ZW50IG9mIHRoZSB0YWJsZQ0KICAgICAgICAgICAgdmFyIHJvd3MgPSB0aGlzLmNyZWF0ZVRhYmxlQ29udGVudChtZW51S2V5KTsNCiAgICAgICAgICAgIHJvd3MuZm9yRWFjaCh0ciA9PiB7DQogICAgICAgICAgICAgICAgdGFibGUuYXBwZW5kQ2hpbGQodHIpOw0KICAgICAgICAgICAgfSk7DQogICAgICAgIH0NCiAgICAgICAgc3dpdGNoIChtZW51S2V5KSB7DQogICAgICAgICAgICBjYXNlICJtYXBwaW5nIjoNCiAgICAgICAgICAgICAgICBzb3J0VGFibGUoMSk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJmaWx0ZXIiOg0KICAgICAgICAgICAgICAgIHNob3dQcmV2aWV3KHRydWUpOw0KICAgICAgICAgICAgICAgIHNvcnRUYWJsZSgwKTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICAgICAgQ09MVU1OX1RPX1NPUlQgPSAtMTsNCiAgICAgICAgICAgICAgICBzb3J0VGFibGUoMCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIH0NCiAgICAgICAgc2hvd0VsZW1lbnQoImxvYWRpbmciLCBmYWxzZSk7DQogICAgfQ0KfQ0KZnVuY3Rpb24gUGFnZVJlYWR5KCkgew0KICAgIGxldCBzZXJ2ZXIgPSBuZXcgU2VydmVyKCJnZXRTZXJ2ZXJDb25maWciKTsNCiAgICBzZXJ2ZXIucmVxdWVzdCh7fSk7DQogICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoInJlc2l6ZSIsIGZ1bmN0aW9uICgpIHsNCiAgICAgICAgY2FsY3VsYXRlV3JhcHBlckhlaWdodCgpOw0KICAgIH0sIHRydWUpOw0KICAgIHNldEludGVydmFsKGZ1bmN0aW9uICgpIHsNCiAgICAgICAgdXBkYXRlTG9nKCk7DQogICAgfSwgMTAwMDApOw0KICAgIHJldHVybjsNCn0NCmZ1bmN0aW9uIGNyZWF0ZUxheW91dCgpIHsNCiAgICAvLyBDbGllbnQgSW5mbw0KICAgIGxldCBvYmogPSBTRVJWRVJbImNsaWVudEluZm8iXTsNCiAgICBsZXQga2V5cyA9IGdldE93bk9ialByb3BzKG9iaik7DQogICAgZm9yICh2YXIgaSA9IDA7IGkgPCBrZXlzLmxlbmd0aDsgaSsrKSB7DQogICAgICAgIGlmIChkb2N1bWVudC5nZXRFbGVtZW50QnlJZChrZXlzW2ldKSkgew0KICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoa2V5c1tpXSkuaW5uZXJIVE1MID0gb2JqW2tleXNbaV1dOw0KICAgICAgICB9DQogICAgfQ0KICAgIGlmICghZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm1haW4tbWVudSIpKSB7DQogICAgICAgIHJldHVybjsNCiAgICB9DQogICAgLy8gQ3JlYXRlIG1lbnUNCiAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibWFpbi1tZW51IikuaW5uZXJIVE1MID0gIiI7DQogICAgZm9yIChsZXQgaSA9IDA7IGkgPCBtZW51SXRlbXMubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgbWVudUl0ZW1zW2ldLmlkID0gaTsNCiAgICAgICAgc3dpdGNoIChtZW51SXRlbXNbaV1bIm1lbnVLZXkiXSkgew0KICAgICAgICAgICAgY2FzZSAidXNlcnMiOg0KICAgICAgICAgICAgY2FzZSAibG9nb3V0IjoNCiAgICAgICAgICAgICAgICBpZiAoU0VSVkVSWyJzZXR0aW5ncyJdWyJhdXRoZW50aWNhdGlvbi53ZWIiXSA9PSB0cnVlKSB7DQogICAgICAgICAgICAgICAgICAgIG1lbnVJdGVtc1tpXS5jcmVhdGVJdGVtKCk7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAibWFwcGluZyI6DQogICAgICAgICAgICBjYXNlICJ4bWx0diI6DQogICAgICAgICAgICAgICAgaWYgKFNFUlZFUlsiY2xpZW50SW5mbyJdWyJlcGdTb3VyY2UiXSA9PSAiWEVQRyIpIHsNCiAgICAgICAgICAgICAgICAgICAgbWVudUl0ZW1zW2ldLmNyZWF0ZUl0ZW0oKTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBkZWZhdWx0Og0KICAgICAgICAgICAgICAgIG1lbnVJdGVtc1tpXS5jcmVhdGVJdGVtKCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIH0NCiAgICB9DQogICAgcmV0dXJuOw0KfQ0KZnVuY3Rpb24gb3BlblRoaXNNZW51KGVsZW1lbnQpIHsNCiAgICBsZXQgaWQgPSBlbGVtZW50LmlkOw0KICAgIGxldCBjb250ZW50ID0gbmV3IFNob3dDb250ZW50KGlkKTsNCiAgICBjb250ZW50LnNob3coKTsNCiAgICBjYWxjdWxhdGVXcmFwcGVySGVpZ2h0KCk7DQogICAgcmV0dXJuOw0KfQ0KY2xhc3MgUG9wdXBXaW5kb3cgew0KICAgIGNvbnN0cnVjdG9yKCkgew0KICAgICAgICB0aGlzLkRvY3VtZW50SUQgPSAicG9wdXAtY3VzdG9tIjsNCiAgICAgICAgdGhpcy5JbnRlcmFjdGlvbklEID0gImludGVyYWN0aW9uIjsNCiAgICAgICAgdGhpcy5kb2MgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCh0aGlzLkRvY3VtZW50SUQpOw0KICAgIH0NCiAgICBjcmVhdGVUaXRsZSh0aXRsZSkgew0KICAgICAgICBsZXQgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICB0ZC5jbGFzc05hbWUgPSAibGVmdCI7DQogICAgICAgIHRkLmlubmVySFRNTCA9IHRpdGxlICsgIjoiOw0KICAgICAgICByZXR1cm4gdGQ7DQogICAgfQ0KICAgIGNyZWF0ZUNvbnRlbnQoZWxlbWVudCkgew0KICAgICAgICBsZXQgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICB0ZC5hcHBlbmRDaGlsZChlbGVtZW50KTsNCiAgICAgICAgcmV0dXJuIHRkOw0KICAgIH0NCiAgICBjcmVhdGVJbnRlcmFjdGlvbigpIHsNCiAgICAgICAgbGV0IGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOw0KICAgICAgICBkaXYuc2V0QXR0cmlidXRlKCJpZCIsICJwb3B1cC1pbnRlcmFjdGlvbiIpOw0KICAgICAgICBkaXYuY2xhc3NOYW1lID0gImludGVyYWN0aW9uIjsNCiAgICAgICAgdGhpcy5kb2MuYXBwZW5kQ2hpbGQoZGl2KTsNCiAgICB9DQp9DQpjbGFzcyBQb3B1cENvbnRlbnQgZXh0ZW5kcyBQb3B1cFdpbmRvdyB7DQogICAgY29uc3RydWN0b3IoKSB7DQogICAgICAgIHN1cGVyKC4uLmFyZ3VtZW50cyk7DQogICAgICAgIHRoaXMudGFibGUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJUQUJMRSIpOw0KICAgIH0NCiAgICBjcmVhdGVIZWFkbGluZShoZWFkbGluZSkgew0KICAgICAgICB0aGlzLmRvYy5pbm5lckhUTUwgPSAiIjsNCiAgICAgICAgdmFyIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJIMyIpOw0KICAgICAgICBlbGVtZW50LmlubmVySFRNTCA9IGhlYWRsaW5lLnRvVXBwZXJDYXNlKCk7DQogICAgICAgIHRoaXMuZG9jLmFwcGVuZENoaWxkKGVsZW1lbnQpOw0KICAgICAgICAvLyBDcmVhdGUgdGFibGUNCiAgICAgICAgdGhpcy50YWJsZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlRBQkxFIik7DQogICAgICAgIHRoaXMuZG9jLmFwcGVuZENoaWxkKHRoaXMudGFibGUpOw0KICAgIH0NCiAgICBhcHBlbmRSb3codGl0bGUsIGVsZW1lbnQpIHsNCiAgICAgICAgbGV0IHRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVFIiKTsNCiAgICAgICAgLy8gVGl0bGUNCiAgICAgICAgaWYgKHRpdGxlLmxlbmd0aCAhPSAwKSB7DQogICAgICAgICAgICB0ci5hcHBlbmRDaGlsZCh0aGlzLmNyZWF0ZVRpdGxlKHRpdGxlKSk7DQogICAgICAgIH0NCiAgICAgICAgLy8gQ29udGVudA0KICAgICAgICB0ci5hcHBlbmRDaGlsZCh0aGlzLmNyZWF0ZUNvbnRlbnQoZWxlbWVudCkpOw0KICAgICAgICB0aGlzLnRhYmxlLmFwcGVuZENoaWxkKHRyKTsNCiAgICB9DQogICAgY3JlYXRlSW5wdXQodHlwZSwgbmFtZSwgdmFsdWUpIHsNCiAgICAgICAgbGV0IGlucHV0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiSU5QVVQiKTsNCiAgICAgICAgaWYgKHZhbHVlID09IHVuZGVmaW5lZCkgew0KICAgICAgICAgICAgdmFsdWUgPSAiIjsNCiAgICAgICAgfQ0KICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInR5cGUiLCB0eXBlKTsNCiAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJuYW1lIiwgbmFtZSk7DQogICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgidmFsdWUiLCB2YWx1ZSk7DQogICAgICAgIHJldHVybiBpbnB1dDsNCiAgICB9DQogICAgY3JlYXRlQ2hlY2tib3gobmFtZSkgew0KICAgICAgICBsZXQgaW5wdXQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJJTlBVVCIpOw0KICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInR5cGUiLCAiY2hlY2tib3giKTsNCiAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJuYW1lIiwgbmFtZSk7DQogICAgICAgIHJldHVybiBpbnB1dDsNCiAgICB9DQogICAgLy8gQ3JlYXRlcyBhIHNlbGVjdGlvbiBvZiBtdWx0aXBsZSBvcHRpb25zIHZhbHVlcyB3aXRoIHRleHQgZGVzY3JpcHRpb25zDQogICAgY3JlYXRlU2VsZWN0KHRleHQsIHZhbHVlcywgc2V0LCBkYktleSkgew0KICAgICAgICBsZXQgc2VsZWN0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiU0VMRUNUIik7DQogICAgICAgIHNlbGVjdC5zZXRBdHRyaWJ1dGUoIm5hbWUiLCBkYktleSk7DQogICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGV4dC5sZW5ndGg7IGkrKykgew0KICAgICAgICAgICAgbGV0IG9wdGlvbiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIk9QVElPTiIpOw0KICAgICAgICAgICAgb3B0aW9uLnNldEF0dHJpYnV0ZSgidmFsdWUiLCB2YWx1ZXNbaV0pOw0KICAgICAgICAgICAgb3B0aW9uLmlubmVyVGV4dCA9IHRleHRbaV07DQogICAgICAgICAgICBzZWxlY3QuYXBwZW5kQ2hpbGQob3B0aW9uKTsNCiAgICAgICAgfQ0KICAgICAgICBpZiAoc2V0ICE9ICIiKSB7DQogICAgICAgICAgICBzZWxlY3QudmFsdWUgPSBzZXQ7DQogICAgICAgIH0NCiAgICAgICAgaWYgKHNldCA9PSB1bmRlZmluZWQpIHsNCiAgICAgICAgICAgIHNlbGVjdC52YWx1ZSA9IHZhbHVlc1swXTsNCiAgICAgICAgfQ0KICAgICAgICByZXR1cm4gc2VsZWN0Ow0KICAgIH0NCiAgICBzZWxlY3RPcHRpb24oc2VsZWN0LCB2YWx1ZSkgew0KICAgICAgICAvL3NlbGVjdC5zZWxlY3RlZE9wdGlvbnMgPSB2YWx1ZQ0KICAgICAgICBsZXQgcyA9IHNlbGVjdDsNCiAgICAgICAgcy5vcHRpb25zW3Muc2VsZWN0ZWRJbmRleF0udmFsdWUgPSB2YWx1ZTsNCiAgICAgICAgcmV0dXJuIHNlbGVjdDsNCiAgICB9DQogICAgZGVzY3JpcHRpb24odmFsdWUpIHsNCiAgICAgICAgbGV0IHRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVFIiKTsNCiAgICAgICAgbGV0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgbGV0IHNwYW4gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJQUkUiKTsNCiAgICAgICAgc3Bhbi5pbm5lckhUTUwgPSB2YWx1ZTsNCiAgICAgICAgdHIuYXBwZW5kQ2hpbGQodGQpOw0KICAgICAgICB0ci5hcHBlbmRDaGlsZCh0aGlzLmNyZWF0ZUNvbnRlbnQoc3BhbikpOw0KICAgICAgICB0aGlzLnRhYmxlLmFwcGVuZENoaWxkKHRyKTsNCiAgICB9DQogICAgLy8gSW50ZXJhY3Rpb24NCiAgICBhZGRJbnRlcmFjdGlvbihlbGVtZW50KSB7DQogICAgICAgIGxldCBpbnRlcmFjdGlvbiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJwb3B1cC1pbnRlcmFjdGlvbiIpOw0KICAgICAgICBpbnRlcmFjdGlvbi5hcHBlbmRDaGlsZChlbGVtZW50KTsNCiAgICB9DQp9DQpmdW5jdGlvbiBvcGVuUG9wVXAoZGF0YVR5cGUsIGVsZW1lbnQpIHsNCiAgICBsZXQgZGF0YSA9IHt9Ow0KICAgIGxldCBpZDsNCiAgICBzd2l0Y2ggKGVsZW1lbnQpIHsNCiAgICAgICAgY2FzZSB1bmRlZmluZWQ6DQogICAgICAgICAgICBzd2l0Y2ggKGRhdGFUeXBlKSB7DQogICAgICAgICAgICAgICAgY2FzZSAiZ3JvdXAtdGl0bGUiOg0KICAgICAgICAgICAgICAgICAgICBpZiAoaWQgPT0gdW5kZWZpbmVkKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBpZCA9IC0xOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIGRhdGEgPSBnZXRMb2NhbERhdGEoImZpbHRlciIsIGlkKTsNCiAgICAgICAgICAgICAgICAgICAgZGF0YVsidHlwZSJdID0gImdyb3VwLXRpdGxlIjsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAiY3VzdG9tLWZpbHRlciI6DQogICAgICAgICAgICAgICAgICAgIGlmIChpZCA9PSB1bmRlZmluZWQpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGlkID0gLTE7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgZGF0YSA9IGdldExvY2FsRGF0YSgiZmlsdGVyIiwgaWQpOw0KICAgICAgICAgICAgICAgICAgICBkYXRhWyJ0eXBlIl0gPSAiY3VzdG9tLWZpbHRlciI7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICAgICAgICAgIGRhdGFbImlkLnByb3ZpZGVyIl0gPSAiLSI7DQogICAgICAgICAgICAgICAgICAgIGRhdGFbInR5cGUiXSA9IGRhdGFUeXBlOw0KICAgICAgICAgICAgICAgICAgICBpZCA9ICItIjsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgIGlkID0gZWxlbWVudC5pZDsNCiAgICAgICAgICAgIGRhdGEgPSBnZXRMb2NhbERhdGEoZGF0YVR5cGUsIGlkKTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgIH0NCiAgICBsZXQgY29udGVudCA9IG5ldyBQb3B1cENvbnRlbnQoKTsNCiAgICBzd2l0Y2ggKGRhdGFUeXBlKSB7DQogICAgICAgIGNhc2UgInBsYXlsaXN0IjoNCiAgICAgICAgICAgIGNvbnRlbnQuY3JlYXRlSGVhZGxpbmUoInt7LnBsYXlsaXN0LnBsYXlsaXN0VHlwZS50aXRsZX19Iik7DQogICAgICAgICAgICAvLyBUeXBlDQogICAgICAgICAgICB2YXIgdGV4dCA9IFsiTTNVIiwgIkhESG9tZVJ1biJdOw0KICAgICAgICAgICAgdmFyIHZhbHVlcyA9IFsiamF2YXNjcmlwdDogb3BlblBvcFVwKCdtM3UnKSIsICJqYXZhc2NyaXB0OiBvcGVuUG9wVXAoJ2hkaHInKSJdOw0KICAgICAgICAgICAgdmFyIHNlbGVjdCA9IGNvbnRlbnQuY3JlYXRlU2VsZWN0KHRleHQsIHZhbHVlcywgIiIsICJ0eXBlIik7DQogICAgICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJpZCIsICJ0eXBlIik7DQogICAgICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICdqYXZhc2NyaXB0OiBjaGFuZ2VCdXR0b25BY3Rpb24odGhpcywgIm5leHQiLCAib25jbGljayIpJyk7IC8vIGNoYW5nZUJ1dHRvbkFjdGlvbg0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnBsYXlsaXN0LnR5cGUudGl0bGV9fSIsIHNlbGVjdCk7DQogICAgICAgICAgICAvLyBJbnRlcmFjdGlvbg0KICAgICAgICAgICAgY29udGVudC5jcmVhdGVJbnRlcmFjdGlvbigpOw0KICAgICAgICAgICAgLy8gQWJvcnQNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJjYW5jZWwiLCAie3suYnV0dG9uLmNhbmNlbH19Iik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogc2hvd0VsZW1lbnQoInBvcHVwIiwgZmFsc2UpOycpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICAvLyBOZXh0DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAibmV4dCIsICJ7ey5idXR0b24ubmV4dH19Iik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJtM3UiKScpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJpZCIsICduZXh0Jyk7DQogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJtM3UiOg0KICAgICAgICAgICAgY29udGVudC5jcmVhdGVIZWFkbGluZShkYXRhVHlwZSk7DQogICAgICAgICAgICAvLyBOYW1lDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAibmFtZSI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3sucGxheWxpc3QubmFtZS5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sucGxheWxpc3QubmFtZS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgLy8gRGVzY3JpcHRpb24NCiAgICAgICAgICAgIHZhciBkYktleSA9ICJkZXNjcmlwdGlvbiI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3sucGxheWxpc3QuZGVzY3JpcHRpb24ucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnBsYXlsaXN0LmRlc2NyaXB0aW9uLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBVUkwNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJmaWxlLnNvdXJjZSI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3sucGxheWxpc3QuZmlsZU0zVS5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sucGxheWxpc3QuZmlsZU0zVS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgLy8gVHVuZXINCiAgICAgICAgICAgIGlmIChTRVJWRVJbInNldHRpbmdzIl1bImJ1ZmZlciJdICE9ICItIikgew0KICAgICAgICAgICAgICAgIHZhciB0ZXh0ID0gW107DQogICAgICAgICAgICAgICAgdmFyIHZhbHVlcyA9IFtdOw0KICAgICAgICAgICAgICAgIGZvciAodmFyIGkgPSAxOyBpIDw9IDEwMDsgaSsrKSB7DQogICAgICAgICAgICAgICAgICAgIHRleHQucHVzaChpLnRvU3RyaW5nKCkpOw0KICAgICAgICAgICAgICAgICAgICB2YWx1ZXMucHVzaChpLnRvU3RyaW5nKCkpOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB2YXIgZGJLZXkgPSAidHVuZXIiOw0KICAgICAgICAgICAgICAgIHZhciBzZWxlY3QgPSBjb250ZW50LmNyZWF0ZVNlbGVjdCh0ZXh0LCB2YWx1ZXMsIGRhdGFbZGJLZXldLCBkYktleSk7DQogICAgICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25mb2N1cyIsICJqYXZhc2NyaXB0OiByZXR1cm47Iik7DQogICAgICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnBsYXlsaXN0LnR1bmVyLnRpdGxlfX0iLCBzZWxlY3QpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgZWxzZSB7DQogICAgICAgICAgICAgICAgdmFyIGRiS2V5ID0gInR1bmVyIjsNCiAgICAgICAgICAgICAgICBpZiAoZGF0YVtkYktleV0gPT0gdW5kZWZpbmVkKSB7DQogICAgICAgICAgICAgICAgICAgIGRhdGFbZGJLZXldID0gMTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJyZWFkb25seSIsICJ0cnVlIik7DQogICAgICAgICAgICAgICAgaW5wdXQuY2xhc3NOYW1lID0gIm5vdEF2YWlsYWJsZSI7DQogICAgICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnBsYXlsaXN0LnR1bmVyLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBjb250ZW50LmRlc2NyaXB0aW9uKCJ7ey5wbGF5bGlzdC50dW5lci5kZXNjcmlwdGlvbn19Iik7DQogICAgICAgICAgICAvLyBJbnRlcmF0aW9uDQogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUludGVyYWN0aW9uKCk7DQogICAgICAgICAgICAvLyBEZWxldGUNCiAgICAgICAgICAgIGlmIChkYXRhWyJpZC5wcm92aWRlciJdICE9ICItIikgew0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJkZWxldGUiLCAie3suYnV0dG9uLmRlbGV0ZX19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuY2xhc3NOYW1lID0gImRlbGV0ZSI7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoIm0zdSIsICInICsgaWQgKyAnIiwgdHJ1ZSwgMCknKTsNCiAgICAgICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJiYWNrIiwgInt7LmJ1dHRvbi5iYWNrfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJwbGF5bGlzdCIpJyk7DQogICAgICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICAvLyBBYm9ydA0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImNhbmNlbCIsICJ7ey5idXR0b24uY2FuY2VsfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBzaG93RWxlbWVudCgicG9wdXAiLCBmYWxzZSk7Jyk7DQogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIC8vIFVwZGF0ZQ0KICAgICAgICAgICAgaWYgKGRhdGFbImlkLnByb3ZpZGVyIl0gIT0gIi0iKSB7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgInVwZGF0ZSIsICJ7ey5idXR0b24udXBkYXRlfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogc2F2ZVBvcHVwRGF0YSgibTN1IiwgIicgKyBpZCArICciLCBmYWxzZSwgMSknKTsNCiAgICAgICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIC8vIFNhdmUNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJzYXZlIiwgInt7LmJ1dHRvbi5zYXZlfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBzYXZlUG9wdXBEYXRhKCJtM3UiLCAiJyArIGlkICsgJyIsIGZhbHNlLCAwKScpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSAiaGRociI6DQogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUhlYWRsaW5lKGRhdGFUeXBlKTsNCiAgICAgICAgICAgIC8vIE5hbWUNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJuYW1lIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5wbGF5bGlzdC5uYW1lLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5wbGF5bGlzdC5uYW1lLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBEZXNjcmlwdGlvbg0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gImRlc2NyaXB0aW9uIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5wbGF5bGlzdC5kZXNjcmlwdGlvbi5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sucGxheWxpc3QuZGVzY3JpcHRpb24ucGxhY2Vob2xkZXJ9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIFVSTA0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gImZpbGUuc291cmNlIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5wbGF5bGlzdC5maWxlSERIUi5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sucGxheWxpc3QuZmlsZUhESFIudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIFR1bmVyDQogICAgICAgICAgICBpZiAoU0VSVkVSWyJzZXR0aW5ncyJdWyJidWZmZXIiXSAhPSAiLSIpIHsNCiAgICAgICAgICAgICAgICB2YXIgdGV4dCA9IFtdOw0KICAgICAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBbXTsNCiAgICAgICAgICAgICAgICBmb3IgKHZhciBpID0gMTsgaSA8PSAxMDA7IGkrKykgew0KICAgICAgICAgICAgICAgICAgICB0ZXh0LnB1c2goaS50b1N0cmluZygpKTsNCiAgICAgICAgICAgICAgICAgICAgdmFsdWVzLnB1c2goaS50b1N0cmluZygpKTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgdmFyIGRiS2V5ID0gInR1bmVyIjsNCiAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCBkYXRhW2RiS2V5XSwgZGJLZXkpOw0KICAgICAgICAgICAgICAgIHNlbGVjdC5zZXRBdHRyaWJ1dGUoIm9uZm9jdXMiLCAiamF2YXNjcmlwdDogcmV0dXJuOyIpOw0KICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5wbGF5bGlzdC50dW5lci50aXRsZX19Iiwgc2VsZWN0KTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgICAgIHZhciBkYktleSA9ICJ0dW5lciI7DQogICAgICAgICAgICAgICAgaWYgKGRhdGFbZGJLZXldID09IHVuZGVmaW5lZCkgew0KICAgICAgICAgICAgICAgICAgICBkYXRhW2RiS2V5XSA9IDE7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicmVhZG9ubHkiLCAidHJ1ZSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LmNsYXNzTmFtZSA9ICJub3RBdmFpbGFibGUiOw0KICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5wbGF5bGlzdC50dW5lci50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgY29udGVudC5kZXNjcmlwdGlvbigie3sucGxheWxpc3QudHVuZXIuZGVzY3JpcHRpb259fSIpOw0KICAgICAgICAgICAgLy8gSW50ZXJhY3Rpb24NCiAgICAgICAgICAgIGNvbnRlbnQuY3JlYXRlSW50ZXJhY3Rpb24oKTsNCiAgICAgICAgICAgIC8vIERlbGV0ZQ0KICAgICAgICAgICAgaWYgKGRhdGFbImlkLnByb3ZpZGVyIl0gIT0gIi0iKSB7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImRlbGV0ZSIsICJ7ey5idXR0b24uZGVsZXRlfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogc2F2ZVBvcHVwRGF0YSgiaGRociIsICInICsgaWQgKyAnIiwgdHJ1ZSwgMCknKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5jbGFzc05hbWUgPSAiZGVsZXRlIjsNCiAgICAgICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJiYWNrIiwgInt7LmJ1dHRvbi5iYWNrfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJwbGF5bGlzdCIpJyk7DQogICAgICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICAvLyBBYm9ydA0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImNhbmNlbCIsICJ7ey5idXR0b24uY2FuY2VsfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBzaG93RWxlbWVudCgicG9wdXAiLCBmYWxzZSk7Jyk7DQogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIC8vIFVwZGF0ZQ0KICAgICAgICAgICAgaWYgKGRhdGFbImlkLnByb3ZpZGVyIl0gIT0gIi0iKSB7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgInVwZGF0ZSIsICJ7ey5idXR0b24udXBkYXRlfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogc2F2ZVBvcHVwRGF0YSgiaGRociIsICInICsgaWQgKyAnIiwgZmFsc2UsIDEpJyk7DQogICAgICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICAvLyBTYXZlDQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAic2F2ZSIsICJ7ey5idXR0b24uc2F2ZX19Iik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogc2F2ZVBvcHVwRGF0YSgiaGRociIsICInICsgaWQgKyAnIiwgZmFsc2UsIDApJyk7DQogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJmaWx0ZXIiOg0KICAgICAgICAgICAgY29udGVudC5jcmVhdGVIZWFkbGluZShkYXRhVHlwZSk7DQogICAgICAgICAgICAvLyBUeXBlDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAidHlwZSI7DQogICAgICAgICAgICB2YXIgdGV4dCA9IFsiTTNVOiAiICsgInt7LmZpbHRlci50eXBlLmdyb3VwVGl0bGV9fSIsICJ4VGVWZTogIiArICJ7ey5maWx0ZXIudHlwZS5jdXN0b21GaWx0ZXJ9fSJdOw0KICAgICAgICAgICAgdmFyIHZhbHVlcyA9IFsiamF2YXNjcmlwdDogb3BlblBvcFVwKCdncm91cC10aXRsZScpIiwgImphdmFzY3JpcHQ6IG9wZW5Qb3BVcCgnY3VzdG9tLWZpbHRlcicpIl07DQogICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCAiamF2YXNjcmlwdDogb3BlblBvcFVwKCdncm91cC10aXRsZScpIiwgZGJLZXkpOw0KICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgiaWQiLCBpZCk7DQogICAgICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICdqYXZhc2NyaXB0OiBjaGFuZ2VCdXR0b25BY3Rpb24odGhpcywgIm5leHQiLCAib25jbGljayIpOycpOyAvLyBjaGFuZ2VCdXR0b25BY3Rpb24NCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5maWx0ZXIudHlwZS50aXRsZX19Iiwgc2VsZWN0KTsNCiAgICAgICAgICAgIC8vIEludGVyYWN0aW9uDQogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUludGVyYWN0aW9uKCk7DQogICAgICAgICAgICAvLyBBYm9ydA0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImNhbmNlbCIsICJ7ey5idXR0b24uY2FuY2VsfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBzaG93RWxlbWVudCgicG9wdXAiLCBmYWxzZSk7Jyk7DQogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIC8vIE5leHQNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJuZXh0IiwgInt7LmJ1dHRvbi5uZXh0fX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoImdyb3VwLXRpdGxlIiknKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgiaWQiLCAnbmV4dCcpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSAiY3VzdG9tLWZpbHRlciI6DQogICAgICAgIGNhc2UgImdyb3VwLXRpdGxlIjoNCiAgICAgICAgICAgIHN3aXRjaCAoZGF0YVR5cGUpIHsNCiAgICAgICAgICAgICAgICBjYXNlICJjdXN0b20tZmlsdGVyIjoNCiAgICAgICAgICAgICAgICAgICAgY29udGVudC5jcmVhdGVIZWFkbGluZSgie3suZmlsdGVyLmN1c3RvbX19IiArICIgRmlsdGVyIik7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgImdyb3VwLXRpdGxlIjoNCiAgICAgICAgICAgICAgICAgICAgY29udGVudC5jcmVhdGVIZWFkbGluZSgie3suZmlsdGVyLmdyb3VwfX0iICsgIiBGaWx0ZXIiKTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICB9DQogICAgICAgICAgICAvLyBOYW1lICAgICAgDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAibmFtZSI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3suZmlsdGVyLm5hbWUucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LmZpbHRlci5uYW1lLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBEZXNjcmlwdGlvbg0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gImRlc2NyaXB0aW9uIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5maWx0ZXIuZGVzY3JpcHRpb24ucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LmZpbHRlci5kZXNjcmlwdGlvbi50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgLy8gVHlwZQ0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gInR5cGUiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiaGlkZGVuIiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCIiLCBpbnB1dCk7DQogICAgICAgICAgICB2YXIgZmlsdGVyVHlwZSA9IGRhdGFbZGJLZXldOw0KICAgICAgICAgICAgc3dpdGNoIChmaWx0ZXJUeXBlKSB7DQogICAgICAgICAgICAgICAgY2FzZSAiY3VzdG9tLWZpbHRlciI6DQogICAgICAgICAgICAgICAgICAgIC8vIENhc2Ugc2Vuc2l0aXZlDQogICAgICAgICAgICAgICAgICAgIHZhciBkYktleSA9ICJjYXNlU2Vuc2l0aXZlIjsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChkYktleSk7DQogICAgICAgICAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhW2RiS2V5XTsNCiAgICAgICAgICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LmZpbHRlci5jYXNlU2Vuc2l0aXZlLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAgICAgICAgIC8vIEZpbHRlciBSdWxlIChDdXN0b20pDQogICAgICAgICAgICAgICAgICAgIHZhciBkYktleSA9ICJmaWx0ZXIiOw0KICAgICAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5maWx0ZXIuZmlsdGVyUnVsZS5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5maWx0ZXIuZmlsdGVyUnVsZS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBjYXNlICJncm91cC10aXRsZSI6DQogICAgICAgICAgICAgICAgICAgIC8vYWxlcnQoZGJLZXkgKyAiICIgKyBmaWx0ZXJUeXBlKQ0KICAgICAgICAgICAgICAgICAgICAvLyBGaWx0ZXIgYmFzZWQgb24gdGhlIGdyb3VwcyBpbiB0aGUgTTNVDQogICAgICAgICAgICAgICAgICAgIHZhciBkYktleSA9ICJmaWx0ZXIiOw0KICAgICAgICAgICAgICAgICAgICB2YXIgZ3JvdXBzTTNVID0gZ2V0TG9jYWxEYXRhKCJtM3VHcm91cHMiLCAiIik7DQogICAgICAgICAgICAgICAgICAgIHZhciB0ZXh0ID0gZ3JvdXBzTTNVWyJ0ZXh0Il07DQogICAgICAgICAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBncm91cHNNM1VbInZhbHVlIl07DQogICAgICAgICAgICAgICAgICAgIHZhciBzZWxlY3QgPSBjb250ZW50LmNyZWF0ZVNlbGVjdCh0ZXh0LCB2YWx1ZXMsIGRhdGFbZGJLZXldLCBkYktleSk7DQogICAgICAgICAgICAgICAgICAgIHNlbGVjdC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5maWx0ZXIuZmlsdGVyR3JvdXAudGl0bGV9fSIsIHNlbGVjdCk7DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuZGVzY3JpcHRpb24oInt7LmZpbHRlci5maWx0ZXJHcm91cC5kZXNjcmlwdGlvbn19Iik7DQogICAgICAgICAgICAgICAgICAgIC8vIENhc2Ugc2Vuc2V0aXZlDQogICAgICAgICAgICAgICAgICAgIHZhciBkYktleSA9ICJjYXNlU2Vuc2l0aXZlIjsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChkYktleSk7DQogICAgICAgICAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhW2RiS2V5XTsNCiAgICAgICAgICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LmZpbHRlci5jYXNlU2Vuc2l0aXZlLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAgICAgICAgIHZhciBkYktleSA9ICJpbmNsdWRlIjsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3suZmlsdGVyLmluY2x1ZGUucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3suZmlsdGVyLmluY2x1ZGUudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgICAgICAgICAgY29udGVudC5kZXNjcmlwdGlvbigie3suZmlsdGVyLmluY2x1ZGUuZGVzY3JpcHRpb259fSIpOw0KICAgICAgICAgICAgICAgICAgICB2YXIgZGJLZXkgPSAiZXhjbHVkZSI7DQogICAgICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LmZpbHRlci5leGNsdWRlLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LmZpbHRlci5leGNsdWRlLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuZGVzY3JpcHRpb24oInt7LmZpbHRlci5leGNsdWRlLmRlc2NyaXB0aW9ufX0iKTsNCiAgICAgICAgICAgICAgICAgICAgLy8gUHJlc2VydmUgTTNVIFBsYXlsaXN0IENoYW5uZWwgTWFwcGluZw0KICAgICAgICAgICAgICAgICAgICB2YXIgZGJLZXkgPSAicHJlc2VydmVNYXBwaW5nIjsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChkYktleSk7DQogICAgICAgICAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhW2RiS2V5XTsNCiAgICAgICAgICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LmZpbHRlci5wcmVzZXJ2ZU1hcHBpbmcudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgICAgICAgICAgLy8gU3RhcnRpbmcgQ2hhbm5lbCBOdW1iZXIgTWFwcGluZw0KICAgICAgICAgICAgICAgICAgICB2YXIgZGJLZXkgPSAic3RhcnRpbmdDaGFubmVsIjsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3suZmlsdGVyLnN0YXJ0aW5nQ2hhbm5lbC5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5maWx0ZXIuc3RhcnRpbmdDaGFubmVsLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAgICAgICAgIC8vIEZpbGwgTWlzc2luZyBFUEcgRGF0YQ0KICAgICAgICAgICAgICAgICAgICAvLyBUaGUgZm9sbG93aW5nIGNvZGUgb25seSB3b3JrcyB3aGVuIHhUZVZlIER1bW15IGFscmVhZHkgZXhpc3RzDQogICAgICAgICAgICAgICAgICAgIC8vIHZhciBkYktleTpzdHJpbmcgPSAiZGVmYXVsdE1pc3NpbmdFUEciDQogICAgICAgICAgICAgICAgICAgIC8vIHZhciB4bWx0djpYTUxUVkZpbGUgPSBuZXcgWE1MVFZGaWxlKCkNCiAgICAgICAgICAgICAgICAgICAgLy8gdmFyIHNlbGVjdCA9IHhtbHR2LmdldFByb2dyYW1zKCJ4VGVWZSBEdW1teSIsIGRhdGFbZGJLZXldKQ0KICAgICAgICAgICAgICAgICAgICAvLyBzZWxlY3Quc2V0QXR0cmlidXRlKCJuYW1lIiwgZGJLZXkpDQogICAgICAgICAgICAgICAgICAgIC8vIHNlbGVjdC5zZXRBdHRyaWJ1dGUoImlkIiwgInBvcHVwLW1pc3NpbmctZXBnIikNCiAgICAgICAgICAgICAgICAgICAgLy8gVGhlIHdvcmthcm91bmQgaXMgY3VycmVudGx5IHRvIGhhcmQgY29kZSB0aGUgeFRlVmUgRHVtbXkgZGF0YQ0KICAgICAgICAgICAgICAgICAgICB2YXIgZGJLZXkgPSAiZGVmYXVsdE1pc3NpbmdFUEciOw0KICAgICAgICAgICAgICAgICAgICB2YXIgbGlzdE9wdGlvbnMgPSB7ICJ0ZXh0IjogWyItIiwgIjMwIE1pbnV0ZXMgKDMwX01pbnV0ZXMpIiwgIjYwIE1pbnV0ZXMgKDYwX01pbnV0ZXMpIiwgIjkwIE1pbnV0ZXMgKDkwX01pbnV0ZXMpIiwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAiMTIwIE1pbnV0ZXMgKDEyMF9NaW51dGVzKSIsICIxODAgTWludXRlcyAoMzBfTWludXRlcykiLCAiMjQwIE1pbnV0ZXMgKDMwX01pbnV0ZXMpIiwgIjM2MCBNaW51dGVzICgzMF9NaW51dGVzKSJdLA0KICAgICAgICAgICAgICAgICAgICAgICAgInZhbHVlIjogWyItIiwgIjMwX01pbnV0ZXMiLCAiNjBfTWludXRlcyIsICI5MF9NaW51dGVzIiwgIjEyMF9NaW51dGVzIiwgIjE4MF9NaW51dGVzIiwgIjI0MF9NaW51dGVzIiwgIjM2MF9NaW51dGVzIixdIH07DQogICAgICAgICAgICAgICAgICAgIHZhciB0ZXh0ID0gbGlzdE9wdGlvbnNbInRleHQiXTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHZhbHVlcyA9IGxpc3RPcHRpb25zWyJ2YWx1ZSJdOw0KICAgICAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCBkYXRhW2RiS2V5XSwgZGJLZXkpOw0KICAgICAgICAgICAgICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3suZmlsdGVyLmRlZmF1bHRNaXNzaW5nRVBHLnRpdGxlfX0iLCBzZWxlY3QpOw0KICAgICAgICAgICAgICAgICAgICBjb250ZW50LmRlc2NyaXB0aW9uKCJ7ey5maWx0ZXIuZGVmYXVsdE1pc3NpbmdFUEcuZGVzY3JpcHRpb259fSIpOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBkZWZhdWx0Og0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIC8vIEludGVyYWN0aW9uDQogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUludGVyYWN0aW9uKCk7DQogICAgICAgICAgICAvLyBEZWxldGUNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJkZWxldGUiLCAie3suYnV0dG9uLmRlbGV0ZX19Iik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogc2F2ZVBvcHVwRGF0YSgiZmlsdGVyIiwgIicgKyBpZCArICciLCB0cnVlLCAwKScpOw0KICAgICAgICAgICAgaW5wdXQuY2xhc3NOYW1lID0gImRlbGV0ZSI7DQogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIC8vIEFib3J0DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAiY2FuY2VsIiwgInt7LmJ1dHRvbi5jYW5jZWx9fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IHNob3dFbGVtZW50KCJwb3B1cCIsIGZhbHNlKTsnKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgLy8gU2F2ZQ0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgInNhdmUiLCAie3suYnV0dG9uLnNhdmV9fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoImZpbHRlciIsICInICsgaWQgKyAnIiwgZmFsc2UsIDApJyk7DQogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJ4bWx0diI6DQogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUhlYWRsaW5lKGRhdGFUeXBlKTsNCiAgICAgICAgICAgIC8vIE5hbWUNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJuYW1lIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey54bWx0di5uYW1lLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey54bWx0di5uYW1lLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBEZXNjcmlwdGlvbg0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gImRlc2NyaXB0aW9uIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey54bWx0di5kZXNjcmlwdGlvbi5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sueG1sdHYuZGVzY3JpcHRpb24udGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIFVSTA0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gImZpbGUuc291cmNlIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey54bWx0di5maWxlWE1MVFYucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnhtbHR2LmZpbGVYTUxUVi50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgLy8gSW50ZXJhY3Rpb24NCiAgICAgICAgICAgIGNvbnRlbnQuY3JlYXRlSW50ZXJhY3Rpb24oKTsNCiAgICAgICAgICAgIC8vIERlbGV0ZQ0KICAgICAgICAgICAgaWYgKGRhdGFbImlkLnByb3ZpZGVyIl0gIT0gIi0iKSB7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImRlbGV0ZSIsICJ7ey5idXR0b24uZGVsZXRlfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogc2F2ZVBvcHVwRGF0YSgieG1sdHYiLCAiJyArIGlkICsgJyIsIHRydWUsIDApJyk7DQogICAgICAgICAgICAgICAgaW5wdXQuY2xhc3NOYW1lID0gImRlbGV0ZSI7DQogICAgICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICAvLyBBYm9ydA0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImNhbmNlbCIsICJ7ey5idXR0b24uY2FuY2VsfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBzaG93RWxlbWVudCgicG9wdXAiLCBmYWxzZSk7Jyk7DQogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIC8vIFVwZGF0ZQ0KICAgICAgICAgICAgaWYgKGRhdGFbImlkLnByb3ZpZGVyIl0gIT0gIi0iKSB7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgInVwZGF0ZSIsICJ7ey5idXR0b24udXBkYXRlfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogc2F2ZVBvcHVwRGF0YSgieG1sdHYiLCAiJyArIGlkICsgJyIsIGZhbHNlLCAxKScpOw0KICAgICAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgLy8gU2F2ZQ0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgInNhdmUiLCAie3suYnV0dG9uLnNhdmV9fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoInhtbHR2IiwgIicgKyBpZCArICciLCBmYWxzZSwgMCknKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGNhc2UgInVzZXJzIjoNCiAgICAgICAgICAgIGNvbnRlbnQuY3JlYXRlSGVhZGxpbmUoInt7Lm1haW5NZW51Lml0ZW0udXNlcnN9fSIpOw0KICAgICAgICAgICAgLy8gVXNlciBuYW1lDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAidXNlcm5hbWUiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnVzZXJzLnVzZXJuYW1lLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey51c2Vycy51c2VybmFtZS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgLy8gTmV3IFBhcnNzd29yZA0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gInBhc3N3b3JkIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInBhc3N3b3JkIiwgZGJLZXksICIiKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3sudXNlcnMucGFzc3dvcmQucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnVzZXJzLnBhc3N3b3JkLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBDb25maXJtYXRpb24NCiAgICAgICAgICAgIHZhciBkYktleSA9ICJjb25maXJtIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInBhc3N3b3JkIiwgZGJLZXksICIiKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3sudXNlcnMuY29uZmlybS5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sudXNlcnMuY29uZmlybS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgLy8gQXV0aGVudGljYXRpb24gV0VCDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAiYXV0aGVudGljYXRpb24ud2ViIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goZGJLZXkpOw0KICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGFbZGJLZXldOw0KICAgICAgICAgICAgaWYgKGRhdGFbImRlZmF1bHRVc2VyIl0gPT0gdHJ1ZSkgew0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICJqYXZhc2NyaXB0OiByZXR1cm4gZmFsc2UiKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey51c2Vycy53ZWIudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIEF1dGhlbnRpY2F0aW9uIFBNUw0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gImF1dGhlbnRpY2F0aW9uLnBtcyI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KGRiS2V5KTsNCiAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhW2RiS2V5XTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey51c2Vycy5wbXMudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIEF1dGhlbnRpY2F0aW9uIE0zVQ0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gImF1dGhlbnRpY2F0aW9uLm0zdSI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KGRiS2V5KTsNCiAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhW2RiS2V5XTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey51c2Vycy5tM3UudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIEF1dGhlbnRpY2F0aW9uIFhNTA0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gImF1dGhlbnRpY2F0aW9uLnhtbCI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KGRiS2V5KTsNCiAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhW2RiS2V5XTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey51c2Vycy54bWwudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIEF1dGhlbnRpY2F0aW9uIEFQSQ0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gImF1dGhlbnRpY2F0aW9uLmFwaSI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KGRiS2V5KTsNCiAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhW2RiS2V5XTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey51c2Vycy5hcGkudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIEludGVyYWN0aW9uDQogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUludGVyYWN0aW9uKCk7DQogICAgICAgICAgICAvLyBEZWxldGUNCiAgICAgICAgICAgIGlmIChkYXRhWyJkZWZhdWx0VXNlciJdICE9IHRydWUgJiYgaWQgIT0gIi0iKSB7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImRlbGV0ZSIsICJ7ey5idXR0b24uZGVsZXRlfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5jbGFzc05hbWUgPSAiZGVsZXRlIjsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogc2F2ZVBvcHVwRGF0YSgiJyArIGRhdGFUeXBlICsgJyIsICInICsgaWQgKyAnIiwgdHJ1ZSwgMCknKTsNCiAgICAgICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIC8vIEFib3J0DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAiY2FuY2VsIiwgInt7LmJ1dHRvbi5jYW5jZWx9fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IHNob3dFbGVtZW50KCJwb3B1cCIsIGZhbHNlKTsnKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgLy8gU2F2ZQ0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgInNhdmUiLCAie3suYnV0dG9uLnNhdmV9fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoIicgKyBkYXRhVHlwZSArICciLCAiJyArIGlkICsgJyIsICJmYWxzZSIpOycpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSAibWFwcGluZyI6DQogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUhlYWRsaW5lKCJ7ey5tYWluTWVudS5pdGVtLm1hcHBpbmd9fSIpOw0KICAgICAgICAgICAgLy8gQWN0aXZlDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAieC1hY3RpdmUiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChkYktleSk7DQogICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YVtkYktleV07DQogICAgICAgICAgICBpbnB1dC5pZCA9ICJhY3RpdmUiOw0KICAgICAgICAgICAgLy9pbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIikNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdG9nZ2xlQ2hhbm5lbFN0YXR1cygnIiArIGlkICsgIicsIHRoaXMpIik7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3subWFwcGluZy5hY3RpdmUudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIENoYW5uZWwgbmFtZQ0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gIngtbmFtZSI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgIGlmIChCVUxLX0VESVQgPT0gdHJ1ZSkgew0KICAgICAgICAgICAgICAgIGlucHV0LnN0eWxlLmJvcmRlciA9ICJzb2xpZCAxcHggcmVkIjsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInJlYWRvbmx5IiwgInRydWUiKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5tYXBwaW5nLmNoYW5uZWxOYW1lLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICBjb250ZW50LmRlc2NyaXB0aW9uKGRhdGFbIm5hbWUiXSk7DQogICAgICAgICAgICAvLyBEZXNjcmlwdGlvbg0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gIngtZGVzY3JpcHRpb24iOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7Lm1hcHBpbmcuZGVzY3JpcHRpb24ucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7Lm1hcHBpbmcuZGVzY3JpcHRpb24udGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIFVwZGF0ZSB0aGUgY2hhbm5lbCBuYW1lDQogICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgiX3V1aWQua2V5IikpIHsNCiAgICAgICAgICAgICAgICBpZiAoZGF0YVsiX3V1aWQua2V5Il0gIT0gIiIpIHsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGRiS2V5ID0gIngtdXBkYXRlLWNoYW5uZWwtbmFtZSI7DQogICAgICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goZGJLZXkpOw0KICAgICAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhW2RiS2V5XTsNCiAgICAgICAgICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7Lm1hcHBpbmcudXBkYXRlQ2hhbm5lbE5hbWUudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9DQogICAgICAgICAgICAvLyBMb2dvIFVSTCAoQ2hhbm5lbCkgDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAidHZnLWxvZ28iOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoImlkIiwgImNoYW5uZWwtaWNvbiIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7Lm1hcHBpbmcuY2hhbm5lbExvZ28udGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIENoYW5uZWwgbG9nbyB1cGRhdGUNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJ4LXVwZGF0ZS1jaGFubmVsLWljb24iOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChkYktleSk7DQogICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YVtkYktleV07DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoImlkIiwgInVwZGF0ZS1pY29uIik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnOyBjaGFuZ2VDaGFubmVsTG9nbygnIiArIGlkICsgIicpOyIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7Lm1hcHBpbmcudXBkYXRlQ2hhbm5lbExvZ28udGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIEV4cGFuZCBFUEcgY2F0ZWdvcnkNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJ4LWNhdGVnb3J5IjsNCiAgICAgICAgICAgIHZhciB0ZXh0ID0gWyItIiwgIktpZHMgKEVtYnkgb25seSkiLCAiTmV3cyIsICJNb3ZpZSIsICJTZXJpZXMiLCAiU3BvcnRzIl07DQogICAgICAgICAgICB2YXIgdmFsdWVzID0gWyIiLCAiS2lkcyIsICJOZXdzIiwgIk1vdmllIiwgIlNlcmllcyIsICJTcG9ydHMiXTsNCiAgICAgICAgICAgIHZhciBzZWxlY3QgPSBjb250ZW50LmNyZWF0ZVNlbGVjdCh0ZXh0LCB2YWx1ZXMsIGRhdGFbZGJLZXldLCBkYktleSk7DQogICAgICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7Lm1hcHBpbmcuZXBnQ2F0ZWdvcnkudGl0bGV9fSIsIHNlbGVjdCk7DQogICAgICAgICAgICAvLyBNM1UgZ3JvdXAgdGl0bGUNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJ4LWdyb3VwLXRpdGxlIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgaW5wdXQuZGF0YXNldC5vbGRWYWx1ZSA9IGRhdGFbZGJLZXldOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7Lm1hcHBpbmcubTN1R3JvdXBUaXRsZS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgaWYgKGRhdGFbImdyb3VwLXRpdGxlIl0gIT0gdW5kZWZpbmVkKSB7DQogICAgICAgICAgICAgICAgY29udGVudC5kZXNjcmlwdGlvbihkYXRhWyJncm91cC10aXRsZSJdKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGlmIChkYXRhWyJ4LXVwZGF0ZS1jaGFubmVsLWdyb3VwIl0gPT0gdHJ1ZSkgew0KICAgICAgICAgICAgICAgIGlucHV0LmRpc2FibGVkID0gdHJ1ZTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIC8vIFVwZGF0ZSBjaGFubmVsIGdyb3VwIGNoZWNrYm94DQogICAgICAgICAgICB2YXIgZGJLZXkgPSAieC11cGRhdGUtY2hhbm5lbC1ncm91cCI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KGRiS2V5KTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdG9nZ2xlR3JvdXBVcGRhdGVDYignIiArIGlkICsgIicsIHRoaXMpOyIpOw0KICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGFbZGJLZXldOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7Lm1hcHBpbmcudXBkYXRlQ2hhbm5lbEdyb3VwLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICBjb250ZW50LmRlc2NyaXB0aW9uKCJ7ey5tYXBwaW5nLnVwZGF0ZUNoYW5uZWxHcm91cC5kZXNjcmlwdGlvbn19Iik7DQogICAgICAgICAgICAvLyBYTUxUViBmaWxlDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAneC14bWx0di1maWxlJzsNCiAgICAgICAgICAgIGNvbnN0IHhtbFR2RmlsZSA9IGRhdGFbZGJLZXldOw0KICAgICAgICAgICAgdmFyIHhtbFR2ID0gbmV3IFhNTFRWRmlsZSgpOw0KICAgICAgICAgICAgY29uc3QgeG1sVHZGaWxlU2VsZWN0ID0geG1sVHYuZ2V0RmlsZXMoZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgeG1sVHZGaWxlU2VsZWN0LnNldEF0dHJpYnV0ZSgnbmFtZScsIGRiS2V5KTsNCiAgICAgICAgICAgIHhtbFR2RmlsZVNlbGVjdC5zZXRBdHRyaWJ1dGUoJ2lkJywgJ3BvcHVwLXhtbHR2Jyk7DQogICAgICAgICAgICB4bWxUdkZpbGVTZWxlY3Quc2V0QXR0cmlidXRlKCdvbmNoYW5nZScsIGBqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJzsgc2V0WG1sdHZDaGFubmVsKCcke2lkfScsIHRoaXMpO2ApOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coJ3t7Lm1hcHBpbmcueG1sdHZGaWxlLnRpdGxlfX0nLCB4bWxUdkZpbGVTZWxlY3QpOw0KICAgICAgICAgICAgLy8gWE1MVFYgTWFwcGluZw0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gJ3gtbWFwcGluZyc7DQogICAgICAgICAgICB2YXIgeG1sVHYgPSBuZXcgWE1MVFZGaWxlKCk7DQogICAgICAgICAgICBjb25zdCBjdXJyZW50WG1sVHZJZCA9IGRhdGFbZGJLZXldOw0KICAgICAgICAgICAgY29uc3QgeG1sVHZJZFNlbGVjdCA9IHhtbFR2LmdldFByb2dyYW1zKHhtbFR2RmlsZSwgY3VycmVudFhtbFR2SWQpOw0KICAgICAgICAgICAgeG1sVHZJZFNlbGVjdC5zZXRBdHRyaWJ1dGUoJ25hbWUnLCBkYktleSk7DQogICAgICAgICAgICB4bWxUdklkU2VsZWN0LnNldEF0dHJpYnV0ZSgnaWQnLCAncG9wdXAtbWFwcGluZycpOw0KICAgICAgICAgICAgeG1sVHZJZFNlbGVjdC5zZXRBdHRyaWJ1dGUoJ29uY2hhbmdlJywgYGphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnOyBjaGVja1htbHR2Q2hhbm5lbCgnJHtpZH0nLCB0aGlzLCAnJHt4bWxUdkZpbGV9Jyk7YCk7DQogICAgICAgICAgICBzb3J0U2VsZWN0KHhtbFR2SWRTZWxlY3QpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coJ3t7Lm1hcHBpbmcueG1sdHZDaGFubmVsLnRpdGxlfX0nLCB4bWxUdklkU2VsZWN0KTsNCiAgICAgICAgICAgIC8vIFRpbWVzaGlmdA0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gIngtdGltZXNoaWZ0IjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5tYXBwaW5nLnRpbWVzaGlmdC5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoImlkIiwgInRpbWVzaGlmdCIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7Lm1hcHBpbmcudGltZXNoaWZ0LnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBJbnRlcmFjdGlvbg0KICAgICAgICAgICAgY29udGVudC5jcmVhdGVJbnRlcmFjdGlvbigpOw0KICAgICAgICAgICAgLy8gVXBsb2FkIGxvZ28NCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJjYW5jZWwiLCAie3suYnV0dG9uLnVwbG9hZExvZ299fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IHVwbG9hZExvZ28oKTsnKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgLy8gQWJvcnQNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJjYW5jZWwiLCAie3suYnV0dG9uLmNhbmNlbH19Iik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogc2hvd0VsZW1lbnQoInBvcHVwIiwgZmFsc2UpOycpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICAvLyBGaW5pc2hlZA0KICAgICAgICAgICAgdmFyIGlkcyA9IFtdOw0KICAgICAgICAgICAgaWRzID0gZ2V0QWxsU2VsZWN0ZWRDaGFubmVscygpOw0KICAgICAgICAgICAgaWYgKGlkcy5sZW5ndGggPT0gMCkgew0KICAgICAgICAgICAgICAgIGlkcy5wdXNoKGlkKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJzYXZlIiwgInt7LmJ1dHRvbi5kb25lfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBkb25lUG9wdXBEYXRhKCInICsgZGF0YVR5cGUgKyAnIiwgIicgKyBpZHMgKyAnIiwgImZhbHNlIik7Jyk7DQogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBkZWZhdWx0Og0KICAgICAgICAgICAgYnJlYWs7DQogICAgfQ0KICAgIHNob3dQb3BVcEVsZW1lbnQoJ3BvcHVwLWN1c3RvbScpOw0KfQ0KY2xhc3MgWE1MVFZGaWxlIHsNCiAgICBnZXRGaWxlcyhzZXQpIHsNCiAgICAgICAgbGV0IGZpbGVJRHMgPSBnZXRPd25PYmpQcm9wcyhTRVJWRVJbInhlcGciXVsieG1sdHZNYXAiXSk7DQogICAgICAgIGxldCB2YWx1ZXMgPSBuZXcgQXJyYXkoIi0iKTsNCiAgICAgICAgbGV0IHRleHQgPSBuZXcgQXJyYXkoIi0iKTsNCiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBmaWxlSURzLmxlbmd0aDsgaSsrKSB7DQogICAgICAgICAgICBpZiAoZmlsZUlEc1tpXSAhPSAieFRlVmUgRHVtbXkiKSB7DQogICAgICAgICAgICAgICAgdmFsdWVzLnB1c2goZ2V0VmFsdWVGcm9tUHJvdmlkZXJGaWxlKGZpbGVJRHNbaV0sICJ4bWx0diIsICJmaWxlLnh0ZXZlIikpOw0KICAgICAgICAgICAgICAgIHRleHQucHVzaChnZXRWYWx1ZUZyb21Qcm92aWRlckZpbGUoZmlsZUlEc1tpXSwgInhtbHR2IiwgIm5hbWUiKSk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICB2YWx1ZXMucHVzaChmaWxlSURzW2ldKTsNCiAgICAgICAgICAgICAgICB0ZXh0LnB1c2goZmlsZUlEc1tpXSk7DQogICAgICAgICAgICB9DQogICAgICAgIH0NCiAgICAgICAgbGV0IHNlbGVjdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlNFTEVDVCIpOw0KICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRleHQubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgICAgIHZhciBvcHRpb24gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJPUFRJT04iKTsNCiAgICAgICAgICAgIG9wdGlvbi5zZXRBdHRyaWJ1dGUoInZhbHVlIiwgdmFsdWVzW2ldKTsNCiAgICAgICAgICAgIG9wdGlvbi5pbm5lclRleHQgPSB0ZXh0W2ldOw0KICAgICAgICAgICAgc2VsZWN0LmFwcGVuZENoaWxkKG9wdGlvbik7DQogICAgICAgIH0NCiAgICAgICAgaWYgKHNldCAhPSAiIikgew0KICAgICAgICAgICAgc2VsZWN0LnZhbHVlID0gc2V0Ow0KICAgICAgICB9DQogICAgICAgIHJldHVybiBzZWxlY3Q7DQogICAgfQ0KICAgIGdldFByb2dyYW1zKHhtbFR2RmlsZSwgY3VycmVudFhtbFR2SWQpIHsNCiAgICAgICAgY29uc3QgdmFsdWVzID0gZ2V0T3duT2JqUHJvcHMoU0VSVkVSWyd4ZXBnJ11bJ3htbHR2TWFwJ11beG1sVHZGaWxlXSk7DQogICAgICAgIGNvbnN0IHRleHQgPSBbXTsNCiAgICAgICAgbGV0IGZyaWVuZGx5TmFtZTsNCiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB2YWx1ZXMubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgICAgIGlmIChTRVJWRVJbJ3hlcGcnXVsneG1sdHZNYXAnXVt4bWxUdkZpbGVdW3ZhbHVlc1tpXV0uaGFzT3duUHJvcGVydHkoJ2ZyaWVuZGx5LW5hbWUnKSA9PSB0cnVlKSB7DQogICAgICAgICAgICAgICAgZnJpZW5kbHlOYW1lID0gU0VSVkVSWyd4ZXBnJ11bJ3htbHR2TWFwJ11beG1sVHZGaWxlXVt2YWx1ZXNbaV1dWydmcmllbmRseS1uYW1lJ107DQogICAgICAgICAgICB9DQogICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICBmcmllbmRseU5hbWUgPSAnLSc7DQogICAgICAgICAgICB9DQogICAgICAgICAgICB0ZXh0W2ldID0gYCR7ZnJpZW5kbHlOYW1lfSAoJHt2YWx1ZXNbaV19KWA7DQogICAgICAgIH0NCiAgICAgICAgdGV4dC51bnNoaWZ0KCctJyk7DQogICAgICAgIHZhbHVlcy51bnNoaWZ0KCctJyk7DQogICAgICAgIGNvbnN0IHNlbGVjdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NlbGVjdCcpOw0KICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRleHQubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgICAgIGNvbnN0IG9wdGlvbiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ29wdGlvbicpOw0KICAgICAgICAgICAgb3B0aW9uLnNldEF0dHJpYnV0ZSgndmFsdWUnLCB2YWx1ZXNbaV0pOw0KICAgICAgICAgICAgb3B0aW9uLmlubmVyVGV4dCA9IHRleHRbaV07DQogICAgICAgICAgICBzZWxlY3QuYXBwZW5kQ2hpbGQob3B0aW9uKTsNCiAgICAgICAgfQ0KICAgICAgICBzZWxlY3QudmFsdWUgPSAoY3VycmVudFhtbFR2SWQgPT0gJycpID8gJy0nIDogY3VycmVudFhtbFR2SWQ7DQogICAgICAgIHJldHVybiBzZWxlY3Q7DQogICAgfQ0KfQ0KZnVuY3Rpb24gZ2V0VmFsdWVGcm9tUHJvdmlkZXJGaWxlKGZpbGUsIGZpbGVUeXBlLCBrZXkpIHsNCiAgICBpZiAoZmlsZSA9PSAieFRlVmUgRHVtbXkiKSB7DQogICAgICAgIHJldHVybiBmaWxlOw0KICAgIH0NCiAgICBsZXQgZmlsZUlEOw0KICAgIGxldCBpbmRpY2F0b3IgPSBmaWxlLmNoYXJBdCgwKTsNCiAgICBzd2l0Y2ggKGluZGljYXRvcikgew0KICAgICAgICBjYXNlICJNIjoNCiAgICAgICAgICAgIGZpbGVUeXBlID0gIm0zdSI7DQogICAgICAgICAgICBmaWxlSUQgPSBmaWxlOw0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGNhc2UgIkgiOg0KICAgICAgICAgICAgZmlsZVR5cGUgPSAiaGRociI7DQogICAgICAgICAgICBmaWxlSUQgPSBmaWxlOw0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGNhc2UgIlgiOg0KICAgICAgICAgICAgZmlsZVR5cGUgPSAieG1sdHYiOw0KICAgICAgICAgICAgZmlsZUlEID0gZmlsZS5zdWJzdHJpbmcoMCwgZmlsZS5sYXN0SW5kZXhPZignLicpKTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgIH0NCiAgICBpZiAoU0VSVkVSWyJzZXR0aW5ncyJdWyJmaWxlcyJdW2ZpbGVUeXBlXS5oYXNPd25Qcm9wZXJ0eShmaWxlSUQpID09IHRydWUpIHsNCiAgICAgICAgdmFyIGRhdGEgPSBTRVJWRVJbInNldHRpbmdzIl1bImZpbGVzIl1bZmlsZVR5cGVdW2ZpbGVJRF07DQogICAgICAgIHJldHVybiBkYXRhW2tleV07DQogICAgfQ0KICAgIHJldHVybjsNCn0NCmZ1bmN0aW9uIHNldFhtbHR2Q2hhbm5lbChlcGdNYXBJZCwgeG1sVHZGaWxlU2VsZWN0KSB7DQogICAgY29uc3QgeG1sVHYgPSBuZXcgWE1MVFZGaWxlKCk7DQogICAgY29uc3QgbmV3WG1sVHZGaWxlID0geG1sVHZGaWxlU2VsZWN0LnZhbHVlOw0KICAgIC8vIFJlbW92ZSBvbGQgWE1MVFYgSUQgc2VsZWN0aW9uIGJveA0KICAgIGNvbnN0IHhtbFR2SWRTZWxlY3RQYXJlbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncG9wdXAtbWFwcGluZycpLnBhcmVudEVsZW1lbnQ7DQogICAgeG1sVHZJZFNlbGVjdFBhcmVudC5pbm5lckhUTUwgPSAnJzsNCiAgICAvLyBDcmVhdGUgbmV3IFhNTFRWIElEIHNlbGVjdGlvbiBib3gNCiAgICBjb25zdCB0dmdJZCA9IFNFUlZFUlsneGVwZyddWydlcGdNYXBwaW5nJ11bZXBnTWFwSWRdWyd0dmctaWQnXTsNCiAgICBjb25zdCBuZXdYbWxUdklkU2VsZWN0ID0geG1sVHYuZ2V0UHJvZ3JhbXMobmV3WG1sVHZGaWxlLCB0dmdJZCk7DQogICAgbmV3WG1sVHZJZFNlbGVjdC5zZXRBdHRyaWJ1dGUoJ25hbWUnLCAneC1tYXBwaW5nJyk7DQogICAgbmV3WG1sVHZJZFNlbGVjdC5zZXRBdHRyaWJ1dGUoJ2lkJywgJ3BvcHVwLW1hcHBpbmcnKTsNCiAgICBuZXdYbWxUdklkU2VsZWN0LnNldEF0dHJpYnV0ZSgnb25jaGFuZ2UnLCBgamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCc7IGNoZWNrWG1sdHZDaGFubmVsKCcke2VwZ01hcElkfScsIHRoaXMsICcke25ld1htbFR2RmlsZX0nKTtgKTsNCiAgICBuZXdYbWxUdklkU2VsZWN0LmNsYXNzTmFtZSA9ICdjaGFuZ2VkJzsNCiAgICBzb3J0U2VsZWN0KG5ld1htbFR2SWRTZWxlY3QpOw0KICAgIC8vIEFkZCBuZXcgWE1MVFYgSUQgc2VsZWN0aW9uIGJveCB0byBpdCdzIHBhcmVudA0KICAgIHhtbFR2SWRTZWxlY3RQYXJlbnQuYXBwZW5kQ2hpbGQobmV3WG1sVHZJZFNlbGVjdCk7DQogICAgY2hlY2tYbWx0dkNoYW5uZWwoZXBnTWFwSWQsIG5ld1htbFR2SWRTZWxlY3QsIG5ld1htbFR2RmlsZSk7DQp9DQpmdW5jdGlvbiBjaGVja1htbHR2Q2hhbm5lbChlcGdNYXBJZCwgeG1sVHZJZFNlbGVjdCwgeG1sVHZGaWxlKSB7DQogICAgY29uc3QgbmV3WG1sVHZJZCA9IHhtbFR2SWRTZWxlY3QudmFsdWU7DQogICAgY29uc3QgY2hhbm5lbEFjdGl2ZUNiID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2FjdGl2ZScpOw0KICAgIGNvbnN0IGNoYW5uZWxBY3RpdmUgPSBuZXdYbWxUdklkICE9ICctJzsNCiAgICBjaGFubmVsQWN0aXZlQ2IuY2hlY2tlZCA9IGNoYW5uZWxBY3RpdmU7DQogICAgY2hhbm5lbEFjdGl2ZUNiLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJzsNCiAgICBpZiAoeG1sVHZGaWxlICE9ICd4VGVWZSBEdW1teScgJiYgY2hhbm5lbEFjdGl2ZSA9PSB0cnVlKSB7DQogICAgICAgIGNoYW5nZUNoYW5uZWxMb2dvKGVwZ01hcElkKTsNCiAgICAgICAgcmV0dXJuOw0KICAgIH0NCiAgICBpZiAoeG1sVHZGaWxlID09ICd4VGVWZSBEdW1teScpIHsNCiAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3VwZGF0ZS1pY29uJykuY2hlY2tlZCA9IGZhbHNlOw0KICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndXBkYXRlLWljb24nKS5jbGFzc05hbWUgPSAnY2hhbmdlZCc7DQogICAgfQ0KfQ0KZnVuY3Rpb24gY2hhbmdlQ2hhbm5lbExvZ28oZXBnTWFwSWQpIHsNCiAgICBjb25zdCBjaGFubmVsID0gU0VSVkVSWyd4ZXBnJ11bJ2VwZ01hcHBpbmcnXVtlcGdNYXBJZF07DQogICAgY29uc3QgeG1sVHZGaWxlU2VsZWN0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3BvcHVwLXhtbHR2Jyk7DQogICAgY29uc3QgeG1sVHZGaWxlID0geG1sVHZGaWxlU2VsZWN0Lm9wdGlvbnNbeG1sVHZGaWxlU2VsZWN0LnNlbGVjdGVkSW5kZXhdLnZhbHVlOw0KICAgIGNvbnN0IHhtbFR2SWRTZWxlY3QgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncG9wdXAtbWFwcGluZycpOw0KICAgIGNvbnN0IG5ld1htbFR2SWQgPSB4bWxUdklkU2VsZWN0Lm9wdGlvbnNbeG1sVHZJZFNlbGVjdC5zZWxlY3RlZEluZGV4XS52YWx1ZTsNCiAgICBjb25zdCB4bWxUdkxvZ28gPSBTRVJWRVJbJ3hlcGcnXVsneG1sdHZNYXAnXVt4bWxUdkZpbGVdW25ld1htbFR2SWRdWydpY29uJ107DQogICAgY29uc3QgdXBkYXRlTG9nbyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd1cGRhdGUtaWNvbicpLmNoZWNrZWQ7DQogICAgbGV0IGxvZ287DQogICAgaWYgKHVwZGF0ZUxvZ28gPT0gdHJ1ZSAmJiB4bWxUdkZpbGUgIT0gJ3hUZVZlIER1bW15Jykgew0KICAgICAgICBpZiAoU0VSVkVSWyd4ZXBnJ11bJ3htbHR2TWFwJ11beG1sVHZGaWxlXS5oYXNPd25Qcm9wZXJ0eShuZXdYbWxUdklkKSkgew0KICAgICAgICAgICAgbG9nbyA9IHhtbFR2TG9nbzsNCiAgICAgICAgfQ0KICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgIGxvZ28gPSBjaGFubmVsWyd0dmctbG9nbyddOw0KICAgICAgICB9DQogICAgICAgIHZhciBsb2dvSW5wdXQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY2hhbm5lbC1pY29uJyk7DQogICAgICAgIGxvZ29JbnB1dC52YWx1ZSA9IGxvZ287DQogICAgICAgIGlmIChCVUxLX0VESVQgPT0gZmFsc2UpIHsNCiAgICAgICAgICAgIGxvZ29JbnB1dC5jbGFzc05hbWUgPSAnY2hhbmdlZCc7DQogICAgICAgIH0NCiAgICB9DQp9DQpmdW5jdGlvbiBzYXZlUG9wdXBEYXRhKGRhdGFUeXBlLCBpZCwgcmVtb3ZlLCBvcHRpb24pIHsNCiAgICBpZiAoZGF0YVR5cGUgPT0gIm1hcHBpbmciKSB7DQogICAgICAgIGxldCBkYXRhID0ge307DQogICAgICAgIGNvbnNvbGUubG9nKCJTYXZlIG1hcHBpbmcgZGF0YSIpOw0KICAgICAgICBsZXQgY21kID0gInNhdmVFcGdNYXBwaW5nIjsNCiAgICAgICAgZGF0YVsiZXBnTWFwcGluZyJdID0gU0VSVkVSWyJ4ZXBnIl1bImVwZ01hcHBpbmciXTsNCiAgICAgICAgY29uc29sZS5sb2coIlNFTkQgVE8gU0VSVkVSIik7DQogICAgICAgIGxldCBzZXJ2ZXIgPSBuZXcgU2VydmVyKGNtZCk7DQogICAgICAgIHNlcnZlci5yZXF1ZXN0KGRhdGEpOw0KICAgICAgICBkZWxldGUgVU5ET1siZXBnTWFwcGluZyJdOw0KICAgICAgICByZXR1cm47DQogICAgfQ0KICAgIGNvbnNvbGUubG9nKCJTYXZlIHBvcHVwIGRhdGEiKTsNCiAgICBsZXQgZGl2ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInBvcHVwLWN1c3RvbSIpOw0KICAgIGxldCBpbnB1dHMgPSBkaXYuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlRBQkxFIilbMF0uZ2V0RWxlbWVudHNCeVRhZ05hbWUoIklOUFVUIik7DQogICAgbGV0IHNlbGVjdHMgPSBkaXYuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlRBQkxFIilbMF0uZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlNFTEVDVCIpOw0KICAgIGxldCBpbnB1dCA9IHt9Ow0KICAgIGxldCBjb25maXJtTXNnOw0KICAgIGZvciAobGV0IGkgPSAwOyBpIDwgc2VsZWN0cy5sZW5ndGg7IGkrKykgew0KICAgICAgICB2YXIgbmFtZTsNCiAgICAgICAgbmFtZSA9IHNlbGVjdHNbaV0ubmFtZTsNCiAgICAgICAgdmFyIHZhbHVlID0gc2VsZWN0c1tpXS52YWx1ZTsNCiAgICAgICAgc3dpdGNoIChuYW1lKSB7DQogICAgICAgICAgICBjYXNlICJ0dW5lciI6DQogICAgICAgICAgICAgICAgaW5wdXRbbmFtZV0gPSBwYXJzZUludCh2YWx1ZSk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBkZWZhdWx0Og0KICAgICAgICAgICAgICAgIGlucHV0W25hbWVdID0gdmFsdWU7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIH0NCiAgICB9DQogICAgZm9yIChsZXQgaSA9IDA7IGkgPCBpbnB1dHMubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgc3dpdGNoIChpbnB1dHNbaV0udHlwZSkgew0KICAgICAgICAgICAgY2FzZSAiY2hlY2tib3giOg0KICAgICAgICAgICAgICAgIG5hbWUgPSBpbnB1dHNbaV0ubmFtZTsNCiAgICAgICAgICAgICAgICBpbnB1dFtuYW1lXSA9IGlucHV0c1tpXS5jaGVja2VkOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAidGV4dCI6DQogICAgICAgICAgICBjYXNlICJoaWRkZW4iOg0KICAgICAgICAgICAgY2FzZSAicGFzc3dvcmQiOg0KICAgICAgICAgICAgICAgIG5hbWUgPSBpbnB1dHNbaV0ubmFtZTsNCiAgICAgICAgICAgICAgICBzd2l0Y2ggKG5hbWUpIHsNCiAgICAgICAgICAgICAgICAgICAgY2FzZSAidHVuZXIiOg0KICAgICAgICAgICAgICAgICAgICAgICAgaW5wdXRbbmFtZV0gPSBwYXJzZUludChpbnB1dHNbaV0udmFsdWUpOw0KICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICAgICAgICAgICAgICBpbnB1dFtuYW1lXSA9IGlucHV0c1tpXS52YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgfQ0KICAgIH0NCiAgICBsZXQgZGF0YSA9IHt9Ow0KICAgIGxldCBjbWQ7DQogICAgaWYgKHJlbW92ZSA9PSB0cnVlKSB7DQogICAgICAgIGlucHV0WyJkZWxldGUiXSA9IHRydWU7DQogICAgfQ0KICAgIHN3aXRjaCAoZGF0YVR5cGUpIHsNCiAgICAgICAgY2FzZSAidXNlcnMiOg0KICAgICAgICAgICAgY29uZmlybU1zZyA9ICJEZWxldGUgdGhpcyB1c2VyPyI7DQogICAgICAgICAgICBpZiAoaWQgPT0gIi0iKSB7DQogICAgICAgICAgICAgICAgY21kID0gInNhdmVOZXdVc2VyIjsNCiAgICAgICAgICAgICAgICBkYXRhWyJ1c2VyRGF0YSJdID0gaW5wdXQ7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICBjbWQgPSAic2F2ZVVzZXJEYXRhIjsNCiAgICAgICAgICAgICAgICBsZXQgZCA9IHt9Ow0KICAgICAgICAgICAgICAgIGRbaWRdID0gaW5wdXQ7DQogICAgICAgICAgICAgICAgZGF0YVsidXNlckRhdGEiXSA9IGQ7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSAibTN1IjoNCiAgICAgICAgICAgIGNvbmZpcm1Nc2cgPSAiRGVsZXRlIHRoaXMgcGxheWxpc3Q/IjsNCiAgICAgICAgICAgIHN3aXRjaCAob3B0aW9uKSB7DQogICAgICAgICAgICAgICAgLy8gUG9wdXA6IFNhdmUNCiAgICAgICAgICAgICAgICBjYXNlIDA6DQogICAgICAgICAgICAgICAgICAgIGNtZCA9ICJzYXZlRmlsZXNNM1UiOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICAvLyBQb3B1cDogVXBkYXRlDQogICAgICAgICAgICAgICAgY2FzZSAxOg0KICAgICAgICAgICAgICAgICAgICBjbWQgPSAidXBkYXRlRmlsZU0zVSI7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgZGF0YVsiZmlsZXMiXSA9IHt9Ow0KICAgICAgICAgICAgZGF0YVsiZmlsZXMiXVtkYXRhVHlwZV0gPSB7fTsNCiAgICAgICAgICAgIGRhdGFbImZpbGVzIl1bZGF0YVR5cGVdW2lkXSA9IGlucHV0Ow0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGNhc2UgImhkaHIiOg0KICAgICAgICAgICAgY29uZmlybU1zZyA9ICJEZWxldGUgdGhpcyBIREhvbWVSdW4gdHVuZXI/IjsNCiAgICAgICAgICAgIHN3aXRjaCAob3B0aW9uKSB7DQogICAgICAgICAgICAgICAgLy8gUG9wdXA6IFNhdmUNCiAgICAgICAgICAgICAgICBjYXNlIDA6DQogICAgICAgICAgICAgICAgICAgIGNtZCA9ICJzYXZlRmlsZXNIREhSIjsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgLy8gUG9wdXA6IFVwZGF0ZQ0KICAgICAgICAgICAgICAgIGNhc2UgMToNCiAgICAgICAgICAgICAgICAgICAgY21kID0gInVwZGF0ZUZpbGVIREhSIjsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBkYXRhWyJmaWxlcyJdID0ge307DQogICAgICAgICAgICBkYXRhWyJmaWxlcyJdW2RhdGFUeXBlXSA9IHt9Ow0KICAgICAgICAgICAgZGF0YVsiZmlsZXMiXVtkYXRhVHlwZV1baWRdID0gaW5wdXQ7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSAieG1sdHYiOg0KICAgICAgICAgICAgY29uZmlybU1zZyA9ICJEZWxldGUgdGhpcyBYTUxUViBmaWxlPyI7DQogICAgICAgICAgICBzd2l0Y2ggKG9wdGlvbikgew0KICAgICAgICAgICAgICAgIC8vIFBvcHVwOiBTYXZlDQogICAgICAgICAgICAgICAgY2FzZSAwOg0KICAgICAgICAgICAgICAgICAgICBjbWQgPSAic2F2ZUZpbGVzWE1MVFYiOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICAvLyBQb3B1cDogVXBkYXRlDQogICAgICAgICAgICAgICAgY2FzZSAxOg0KICAgICAgICAgICAgICAgICAgICBjbWQgPSAidXBkYXRlRmlsZVhNTFRWIjsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBkYXRhWyJmaWxlcyJdID0ge307DQogICAgICAgICAgICBkYXRhWyJmaWxlcyJdW2RhdGFUeXBlXSA9IHt9Ow0KICAgICAgICAgICAgZGF0YVsiZmlsZXMiXVtkYXRhVHlwZV1baWRdID0gaW5wdXQ7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSAiZmlsdGVyIjoNCiAgICAgICAgICAgIGNvbmZpcm1Nc2cgPSAiRGVsZXRlIHRoaXMgZmlsdGVyPyI7DQogICAgICAgICAgICBjbWQgPSAic2F2ZUZpbHRlciI7DQogICAgICAgICAgICBkYXRhWyJmaWx0ZXIiXSA9IHt9Ow0KICAgICAgICAgICAgZGF0YVsiZmlsdGVyIl1baWRdID0gaW5wdXQ7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgIGNvbnNvbGUubG9nKGRhdGFUeXBlLCBpZCk7DQogICAgICAgICAgICByZXR1cm47DQogICAgfQ0KICAgIGlmIChyZW1vdmUgPT0gdHJ1ZSkgew0KICAgICAgICBpZiAoIWNvbmZpcm0oY29uZmlybU1zZykpIHsNCiAgICAgICAgICAgIHNob3dFbGVtZW50KCJwb3B1cCIsIGZhbHNlKTsNCiAgICAgICAgICAgIHJldHVybjsNCiAgICAgICAgfQ0KICAgIH0NCiAgICBjb25zb2xlLmxvZygiU0VORCBUTyBTRVJWRVIiKTsNCiAgICBjb25zb2xlLmxvZyhkYXRhKTsNCiAgICBsZXQgc2VydmVyID0gbmV3IFNlcnZlcihjbWQpOw0KICAgIHNlcnZlci5yZXF1ZXN0KGRhdGEpOw0KfQ0KZnVuY3Rpb24gZG9uZVBvcHVwRGF0YShkYXRhVHlwZSwgaWRzU3RyKSB7DQogICAgbGV0IGlkcyA9IGlkc1N0ci5zcGxpdCgnLCcpOw0KICAgIGxldCBkaXYgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicG9wdXAtY3VzdG9tIik7DQogICAgbGV0IGlucHV0cyA9IGRpdi5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCJjaGFuZ2VkIik7DQogICAgaWRzLmZvckVhY2goaWQgPT4gew0KICAgICAgICBsZXQgaW5wdXQ7DQogICAgICAgIGlucHV0ID0gU0VSVkVSWyJ4ZXBnIl1bImVwZ01hcHBpbmciXVtpZF07DQogICAgICAgIGNvbnNvbGUubG9nKGlucHV0KTsNCiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBpbnB1dHMubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgICAgIGxldCBuYW1lOw0KICAgICAgICAgICAgbGV0IHZhbHVlOw0KICAgICAgICAgICAgc3dpdGNoIChpbnB1dHNbaV0udGFnTmFtZSkgew0KICAgICAgICAgICAgICAgIGNhc2UgIklOUFVUIjoNCiAgICAgICAgICAgICAgICAgICAgc3dpdGNoIChpbnB1dHNbaV0udHlwZSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAiY2hlY2tib3giOg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWUgPSBpbnB1dHNbaV0ubmFtZTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IGlucHV0c1tpXS5jaGVja2VkOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlucHV0W25hbWVdID0gdmFsdWU7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgICAgICAgICBjYXNlICJ0ZXh0IjoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lID0gaW5wdXRzW2ldLm5hbWU7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSBpbnB1dHNbaV0udmFsdWU7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5wdXRbbmFtZV0gPSB2YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBjYXNlICJTRUxFQ1QiOg0KICAgICAgICAgICAgICAgICAgICBuYW1lID0gaW5wdXRzW2ldLm5hbWU7DQogICAgICAgICAgICAgICAgICAgIHZhbHVlID0gaW5wdXRzW2ldLnZhbHVlOw0KICAgICAgICAgICAgICAgICAgICBpbnB1dFtuYW1lXSA9IHZhbHVlOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIHN3aXRjaCAobmFtZSkgew0KICAgICAgICAgICAgICAgIGNhc2UgInR2Zy1sb2dvIjoNCiAgICAgICAgICAgICAgICAgICAgLy8oZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpLmNoaWxkTm9kZXNbMl0uZmlyc3RDaGlsZCBhcyBIVE1MRWxlbWVudCkuc2V0QXR0cmlidXRlKCJzcmMiLCB2YWx1ZSkNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAieC1uYW1lIjoNCiAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpLmNoaWxkTm9kZXNbM10uZmlyc3RDaGlsZC5pbm5lckhUTUwgPSB2YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAieC1jYXRlZ29yeSI6DQogICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5jaGlsZE5vZGVzWzNdLmZpcnN0Q2hpbGQuY2xhc3NOYW1lID0gdmFsdWU7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgIngtZ3JvdXAtdGl0bGUiOg0KICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkuY2hpbGROb2Rlc1s1XS5maXJzdENoaWxkLmlubmVySFRNTCA9IHZhbHVlOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBjYXNlICJ4LXhtbHR2LWZpbGUiOg0KICAgICAgICAgICAgICAgICAgICBpZiAodmFsdWUgIT0gInhUZVZlIER1bW15IiAmJiB2YWx1ZSAhPSAiLSIpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlID0gZ2V0VmFsdWVGcm9tUHJvdmlkZXJGaWxlKHZhbHVlLCAieG1sdHYiLCAibmFtZSIpOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIGlmICh2YWx1ZSA9PSAiLSIpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGlucHV0WyJ4LWFjdGl2ZSJdID0gZmFsc2U7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpLmNoaWxkTm9kZXNbNl0uZmlyc3RDaGlsZC5pbm5lckhUTUwgPSB2YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAieC1tYXBwaW5nIjoNCiAgICAgICAgICAgICAgICAgICAgaWYgKHZhbHVlID09ICItIikgew0KICAgICAgICAgICAgICAgICAgICAgICAgaW5wdXRbIngtYWN0aXZlIl0gPSBmYWxzZTsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkuY2hpbGROb2Rlc1s3XS5maXJzdENoaWxkLmlubmVySFRNTCA9IHZhbHVlOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBjYXNlICJ4LXRpbWVzaGlmdCI6DQogICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5jaGlsZE5vZGVzWzhdLmZpcnN0Q2hpbGQuaW5uZXJIVE1MID0gdmFsdWU7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICB9DQogICAgICAgICAgICBjcmVhdGVTZWFyY2hPYmooKTsNCiAgICAgICAgICAgIHNlYXJjaEluTWFwcGluZygpOw0KICAgICAgICB9DQogICAgICAgIGlmIChpbnB1dFsieC1hY3RpdmUiXSA9PSBmYWxzZSkgew0KICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpLmNsYXNzTmFtZSA9ICJub3RBY3RpdmVFUEciOw0KICAgICAgICB9DQogICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpLmNsYXNzTmFtZSA9ICJhY3RpdmVFUEciOw0KICAgICAgICB9DQogICAgICAgIGNvbnNvbGUubG9nKGlucHV0WyJ0dmctbG9nbyJdKTsNCiAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpLmNoaWxkTm9kZXNbMl0uZmlyc3RDaGlsZC5zZXRBdHRyaWJ1dGUoInNyYyIsIGlucHV0WyJ0dmctbG9nbyJdKTsNCiAgICB9KTsNCiAgICBzaG93RWxlbWVudCgicG9wdXAiLCBmYWxzZSk7DQogICAgcmV0dXJuOw0KfQ0KZnVuY3Rpb24gc2hvd1ByZXZpZXcoZWxlbWVudCkgew0KICAgIGxldCBkaXYgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibXlTdHJlYW1zQm94Iik7DQogICAgc3dpdGNoIChlbGVtZW50KSB7DQogICAgICAgIGNhc2UgZmFsc2U6DQogICAgICAgICAgICBkaXYuY2xhc3NOYW1lID0gIm5vdFZpc2libGUiOw0KICAgICAgICAgICAgcmV0dXJuOw0KICAgIH0NCiAgICBsZXQgc3RyZWFtcyA9IFsiYWN0aXZlU3RyZWFtcyIsICJpbmFjdGl2ZVN0cmVhbXMiXTsNCiAgICBzdHJlYW1zLmZvckVhY2gocHJldmlldyA9PiB7DQogICAgICAgIGxldCB0YWJsZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHByZXZpZXcpOw0KICAgICAgICB0YWJsZS5pbm5lckhUTUwgPSAiIjsNCiAgICAgICAgbGV0IG9iaiA9IFNFUlZFUlsiZGF0YSJdWyJTdHJlYW1QcmV2aWV3VUkiXVtwcmV2aWV3XTsNCiAgICAgICAgb2JqLmZvckVhY2goY2hhbm5lbCA9PiB7DQogICAgICAgICAgICBsZXQgdHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJUUiIpOw0KICAgICAgICAgICAgbGV0IHRkS2V5ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgIGxldCB0ZFZhbCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICB0ZEtleS5jbGFzc05hbWUgPSAidGRLZXkiOw0KICAgICAgICAgICAgdGRWYWwuY2xhc3NOYW1lID0gInRkVmFsIjsNCiAgICAgICAgICAgIHN3aXRjaCAocHJldmlldykgew0KICAgICAgICAgICAgICAgIGNhc2UgImFjdGl2ZVN0cmVhbXMiOg0KICAgICAgICAgICAgICAgICAgICB0ZEtleS5pbm5lclRleHQgPSAiQ2hhbm5lbDogKCspIjsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAiaW5hY3RpdmVTdHJlYW1zIjoNCiAgICAgICAgICAgICAgICAgICAgdGRLZXkuaW5uZXJUZXh0ID0gIkNoYW5uZWw6ICgtKSI7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgdGRWYWwuaW5uZXJUZXh0ID0gY2hhbm5lbDsNCiAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKHRkS2V5KTsNCiAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKHRkVmFsKTsNCiAgICAgICAgICAgIHRhYmxlLmFwcGVuZENoaWxkKHRyKTsNCiAgICAgICAgfSk7DQogICAgfSk7DQogICAgc2hvd0VsZW1lbnQoImxvYWRpbmciLCBmYWxzZSk7DQogICAgZGl2LmNsYXNzTmFtZSA9ICJ2aXNpYmxlIjsNCiAgICByZXR1cm47DQp9DQo=" webUI["html/js/network_ts.js"] = "Y2xhc3MgU2VydmVyIHsNCiAgICBjb25zdHJ1Y3RvcihjbWQpIHsNCiAgICAgICAgdGhpcy5jbWQgPSBjbWQ7DQogICAgfQ0KICAgIHJlcXVlc3QoZGF0YSkgew0KICAgICAgICBpZiAoU0VSVkVSX0NPTk5FQ1RJT04gPT0gdHJ1ZSkgew0KICAgICAgICAgICAgcmV0dXJuOw0KICAgICAgICB9DQogICAgICAgIFNFUlZFUl9DT05ORUNUSU9OID0gdHJ1ZTsNCiAgICAgICAgaWYgKHRoaXMuY21kICE9ICJ1cGRhdGVMb2ciKSB7DQogICAgICAgICAgICBzaG93RWxlbWVudCgibG9hZGluZyIsIHRydWUpOw0KICAgICAgICAgICAgVU5ETyA9IG5ldyBPYmplY3QoKTsNCiAgICAgICAgfQ0KICAgICAgICBzd2l0Y2ggKHdpbmRvdy5sb2NhdGlvbi5wcm90b2NvbCkgew0KICAgICAgICAgICAgY2FzZSAiaHR0cDoiOg0KICAgICAgICAgICAgICAgIHRoaXMucHJvdG9jb2wgPSAid3M6Ly8iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiaHR0cHM6IjoNCiAgICAgICAgICAgICAgICB0aGlzLnByb3RvY29sID0gIndzczovLyI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIH0NCiAgICAgICAgdmFyIHVybCA9IHRoaXMucHJvdG9jb2wgKyB3aW5kb3cubG9jYXRpb24uaG9zdG5hbWUgKyAiOiIgKyB3aW5kb3cubG9jYXRpb24ucG9ydCArICIvZGF0YS8iICsgIj9Ub2tlbj0iICsgZ2V0Q29va2llKCJUb2tlbiIpOw0KICAgICAgICBkYXRhWyJjbWQiXSA9IHRoaXMuY21kOw0KICAgICAgICB2YXIgd3MgPSBuZXcgV2ViU29ja2V0KHVybCk7DQogICAgICAgIHdzLm9ub3BlbiA9IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgICAgIFdTX0FWQUlMQUJMRSA9IHRydWU7DQogICAgICAgICAgICB0aGlzLnNlbmQoSlNPTi5zdHJpbmdpZnkoZGF0YSkpOw0KICAgICAgICB9Ow0KICAgICAgICB3cy5vbmVycm9yID0gZnVuY3Rpb24gKHdzRXJyRXZ0KSB7DQogICAgICAgICAgICBjb25zb2xlLmxvZygiTm8gd2Vic29ja2V0IGNvbm5lY3Rpb24gdG8geFRlVmUgY291bGQgYmUgZXN0YWJsaXNoZWQuIENoZWNrIHlvdXIgbmV0d29yayBjb25maWd1cmF0aW9uLiIpOw0KICAgICAgICAgICAgU0VSVkVSX0NPTk5FQ1RJT04gPSBmYWxzZTsNCiAgICAgICAgICAgIGlmIChXU19BVkFJTEFCTEUgPT0gZmFsc2UpIHsNCiAgICAgICAgICAgICAgICBhbGVydCgiTm8gd2Vic29ja2V0IGNvbm5lY3Rpb24gdG8geFRlVmUgY291bGQgYmUgZXN0YWJsaXNoZWQuIENoZWNrIHlvdXIgbmV0d29yayBjb25maWd1cmF0aW9uLiIpOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9Ow0KICAgICAgICB3cy5vbm1lc3NhZ2UgPSBmdW5jdGlvbiAod3NNZXNzYWdlRXZ0KSB7DQogICAgICAgICAgICBTRVJWRVJfQ09OTkVDVElPTiA9IGZhbHNlOw0KICAgICAgICAgICAgc2hvd0VsZW1lbnQoImxvYWRpbmciLCBmYWxzZSk7DQogICAgICAgICAgICBjb25zdCByZXNwb25zZSA9IEpTT04ucGFyc2Uod3NNZXNzYWdlRXZ0LmRhdGEpOw0KICAgICAgICAgICAgaWYgKHJlc3BvbnNlLmhhc093blByb3BlcnR5KCJ0b2tlbiIpKSB7DQogICAgICAgICAgICAgICAgZG9jdW1lbnQuY29va2llID0gIlRva2VuPSIgKyByZXNwb25zZVsidG9rZW4iXTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGlmIChyZXNwb25zZVsic3RhdHVzIl0gPT0gZmFsc2UpIHsNCiAgICAgICAgICAgICAgICBhbGVydChyZXNwb25zZVsiZXJyIl0pOw0KICAgICAgICAgICAgICAgIHJldHVybjsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGlmIChyZXNwb25zZS5oYXNPd25Qcm9wZXJ0eSgnb3BlbkxpbmsnKSkgew0KICAgICAgICAgICAgICAgIHdpbmRvdy5sb2NhdGlvbiA9IHJlc3BvbnNlWydvcGVuTGluayddOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgaWYgKHJlc3BvbnNlLmhhc093blByb3BlcnR5KCJyZWxvYWQiKSkgew0KICAgICAgICAgICAgICAgIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGlmIChyZXNwb25zZS5oYXNPd25Qcm9wZXJ0eSgiYWxlcnQiKSkgew0KICAgICAgICAgICAgICAgIGFsZXJ0KHJlc3BvbnNlWyJhbGVydCJdKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGlmIChyZXNwb25zZS5oYXNPd25Qcm9wZXJ0eSgibG9nb1VSTCIpKSB7DQogICAgICAgICAgICAgICAgdmFyIGRpdiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjaGFubmVsLWljb24iKTsNCiAgICAgICAgICAgICAgICBkaXYudmFsdWUgPSByZXNwb25zZVsibG9nb1VSTCJdOw0KICAgICAgICAgICAgICAgIGRpdi5jbGFzc05hbWUgPSAiY2hhbmdlZCI7DQogICAgICAgICAgICAgICAgcmV0dXJuOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgc3dpdGNoIChkYXRhWyJjbWQiXSkgew0KICAgICAgICAgICAgICAgIGNhc2UgInVwZGF0ZUxvZyI6DQogICAgICAgICAgICAgICAgICAgIFNFUlZFUlsibG9nIl0gPSByZXNwb25zZVsibG9nIl07DQogICAgICAgICAgICAgICAgICAgIGlmIChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29udGVudF9sb2ciKSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgc2hvd0xvZ3MoZmFsc2UpOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIHJldHVybjsNCiAgICAgICAgICAgICAgICBkZWZhdWx0Og0KICAgICAgICAgICAgICAgICAgICBTRVJWRVIgPSBuZXcgT2JqZWN0KCk7DQogICAgICAgICAgICAgICAgICAgIFNFUlZFUiA9IHJlc3BvbnNlOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGlmIChyZXNwb25zZS5oYXNPd25Qcm9wZXJ0eSgib3Blbk1lbnUiKSkgew0KICAgICAgICAgICAgICAgIHZhciBtZW51ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQocmVzcG9uc2VbIm9wZW5NZW51Il0pOw0KICAgICAgICAgICAgICAgIG1lbnUuY2xpY2soKTsNCiAgICAgICAgICAgICAgICBzaG93RWxlbWVudCgicG9wdXAiLCBmYWxzZSk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBpZiAocmVzcG9uc2UuaGFzT3duUHJvcGVydHkoInJlbG9hZCIpKSB7DQogICAgICAgICAgICAgICAgbG9jYXRpb24ucmVsb2FkKCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBpZiAocmVzcG9uc2UuaGFzT3duUHJvcGVydHkoIndpemFyZCIpKSB7DQogICAgICAgICAgICAgICAgY3JlYXRlTGF5b3V0KCk7DQogICAgICAgICAgICAgICAgY29uZmlndXJhdGlvbldpemFyZFtyZXNwb25zZVsid2l6YXJkIl1dLmNyZWF0ZVdpemFyZCgpOw0KICAgICAgICAgICAgICAgIHJldHVybjsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGNyZWF0ZUxheW91dCgpOw0KICAgICAgICB9Ow0KICAgIH0NCn0NCmZ1bmN0aW9uIGdldENvb2tpZShuYW1lKSB7DQogICAgdmFyIHZhbHVlID0gIjsgIiArIGRvY3VtZW50LmNvb2tpZTsNCiAgICB2YXIgcGFydHMgPSB2YWx1ZS5zcGxpdCgiOyAiICsgbmFtZSArICI9Iik7DQogICAgaWYgKHBhcnRzLmxlbmd0aCA9PSAyKSB7DQogICAgICAgIHJldHVybiBwYXJ0cy5wb3AoKS5zcGxpdCgiOyIpLnNoaWZ0KCk7DQogICAgfQ0KfQ0K" - webUI["html/js/settings_ts.js"] = "Y2xhc3MgU2V0dGluZ3NDYXRlZ29yeSB7DQogICAgY29uc3RydWN0b3IoKSB7DQogICAgICAgIHRoaXMuRG9jdW1lbnRJRCA9ICJjb250ZW50X3NldHRpbmdzIjsNCiAgICB9DQogICAgY3JlYXRlQ2F0ZWdvcnlIZWFkbGluZSh2YWx1ZSkgew0KICAgICAgICB2YXIgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIkg0Iik7DQogICAgICAgIGVsZW1lbnQuaW5uZXJIVE1MID0gdmFsdWU7DQogICAgICAgIHJldHVybiBlbGVtZW50Ow0KICAgIH0NCiAgICBjcmVhdGVIUigpIHsNCiAgICAgICAgdmFyIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJIUiIpOw0KICAgICAgICByZXR1cm4gZWxlbWVudDsNCiAgICB9DQogICAgY3JlYXRlU2V0dGluZ3Moc2V0dGluZ3NLZXkpIHsNCiAgICAgICAgdmFyIHNldHRpbmcgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJUUiIpOw0KICAgICAgICB2YXIgY29udGVudCA9IG5ldyBQb3B1cENvbnRlbnQoKTsNCiAgICAgICAgdmFyIGRhdGEgPSBTRVJWRVJbInNldHRpbmdzIl1bc2V0dGluZ3NLZXldOw0KICAgICAgICBzd2l0Y2ggKHNldHRpbmdzS2V5KSB7DQogICAgICAgICAgICAvLyBUZXh0IGlucHV0cw0KICAgICAgICAgICAgY2FzZSAidXBkYXRlIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLnVwZGF0ZS50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsICJ1cGRhdGUiLCBkYXRhLnRvU3RyaW5nKCkpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3suc2V0dGluZ3MudXBkYXRlLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJiYWNrdXAucGF0aCI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5iYWNrdXBQYXRoLnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgImJhY2t1cC5wYXRoIiwgZGF0YSk7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5zZXR0aW5ncy5iYWNrdXBQYXRoLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ0ZW1wLnBhdGgiOg0KICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MudGVtcFBhdGgudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCAidGVtcC5wYXRoIiwgZGF0YSk7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5zZXR0aW5ncy50bXBQYXRoLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ1c2VyLmFnZW50IjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLnVzZXJBZ2VudC50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsICJ1c2VyLmFnZW50IiwgZGF0YSk7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5zZXR0aW5ncy51c2VyQWdlbnQucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImJ1ZmZlci50aW1lb3V0IjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmJ1ZmZlclRpbWVvdXQudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCAiYnVmZmVyLnRpbWVvdXQiLCBkYXRhKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnNldHRpbmdzLmJ1ZmZlclRpbWVvdXQucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImZmbXBlZy5wYXRoIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmZmbXBlZ1BhdGgudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCAiZmZtcGVnLnBhdGgiLCBkYXRhKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnNldHRpbmdzLmZmbXBlZ1BhdGgucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImZmbXBlZy5vcHRpb25zIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmZmbXBlZ09wdGlvbnMudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCAiZmZtcGVnLm9wdGlvbnMiLCBkYXRhKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnNldHRpbmdzLmZmbXBlZ09wdGlvbnMucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInZsYy5wYXRoIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLnZsY1BhdGgudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCAidmxjLnBhdGgiLCBkYXRhKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnNldHRpbmdzLnZsY1BhdGgucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInZsYy5vcHRpb25zIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLnZsY09wdGlvbnMudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCAidmxjLm9wdGlvbnMiLCBkYXRhKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnNldHRpbmdzLnZsY09wdGlvbnMucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIC8vIENoZWNrYm94ZXMNCiAgICAgICAgICAgIGNhc2UgInRsc01vZGUiOg0KICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MudGxzTW9kZS50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChzZXR0aW5nc0tleSk7DQogICAgICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGE7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiYXV0aGVudGljYXRpb24ud2ViIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmF1dGhlbnRpY2F0aW9uV0VCLnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KHNldHRpbmdzS2V5KTsNCiAgICAgICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJhdXRoZW50aWNhdGlvbi5wbXMiOg0KICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MuYXV0aGVudGljYXRpb25QTVMudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goc2V0dGluZ3NLZXkpOw0KICAgICAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImF1dGhlbnRpY2F0aW9uLm0zdSI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5hdXRoZW50aWNhdGlvbk0zVS50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChzZXR0aW5nc0tleSk7DQogICAgICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGE7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiYXV0aGVudGljYXRpb24ueG1sIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmF1dGhlbnRpY2F0aW9uWE1MLnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KHNldHRpbmdzS2V5KTsNCiAgICAgICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJhdXRoZW50aWNhdGlvbi5hcGkiOg0KICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MuYXV0aGVudGljYXRpb25BUEkudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goc2V0dGluZ3NLZXkpOw0KICAgICAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImZpbGVzLnVwZGF0ZSI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5maWxlc1VwZGF0ZS50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChzZXR0aW5nc0tleSk7DQogICAgICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGE7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiY2FjaGUuaW1hZ2VzIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmNhY2hlSW1hZ2VzLnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KHNldHRpbmdzS2V5KTsNCiAgICAgICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ4ZXBnLnJlcGxhY2UubWlzc2luZy5pbWFnZXMiOg0KICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MucmVwbGFjZUVtcHR5SW1hZ2VzLnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KHNldHRpbmdzS2V5KTsNCiAgICAgICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ4dGV2ZUF1dG9VcGRhdGUiOg0KICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MueHRldmVBdXRvVXBkYXRlLnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KHNldHRpbmdzS2V5KTsNCiAgICAgICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJhcGkiOg0KICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MuYXBpLnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KHNldHRpbmdzS2V5KTsNCiAgICAgICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAvLyBTZWxlY3QNCiAgICAgICAgICAgIGNhc2UgImhvc3RJUCI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5ob3N0SVAudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciB0ZXh0ID0gU0VSVkVSWyJpcEFkZHJlc3Nlc1Y0SG9zdCJdOw0KICAgICAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBTRVJWRVJbImlwQWRkcmVzc2VzVjRIb3N0Il07DQogICAgICAgICAgICAgICAgdmFyIHNlbGVjdCA9IGNvbnRlbnQuY3JlYXRlU2VsZWN0KHRleHQsIHZhbHVlcywgZGF0YSwgc2V0dGluZ3NLZXkpOw0KICAgICAgICAgICAgICAgIHNlbGVjdC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChzZWxlY3QpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAidHVuZXIiOg0KICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MudHVuZXIudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciB0ZXh0ID0gbmV3IEFycmF5KCk7DQogICAgICAgICAgICAgICAgdmFyIHZhbHVlcyA9IG5ldyBBcnJheSgpOw0KICAgICAgICAgICAgICAgIGZvciAodmFyIGkgPSAxOyBpIDw9IDEwMDsgaSsrKSB7DQogICAgICAgICAgICAgICAgICAgIHRleHQucHVzaChpKTsNCiAgICAgICAgICAgICAgICAgICAgdmFsdWVzLnB1c2goaSk7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIHZhciBzZWxlY3QgPSBjb250ZW50LmNyZWF0ZVNlbGVjdCh0ZXh0LCB2YWx1ZXMsIGRhdGEsIHNldHRpbmdzS2V5KTsNCiAgICAgICAgICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQoc2VsZWN0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImVwZ1NvdXJjZSI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5lcGdTb3VyY2UudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciB0ZXh0ID0gWyJQTVMiLCAiWEVQRyJdOw0KICAgICAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBbIlBNUyIsICJYRVBHIl07DQogICAgICAgICAgICAgICAgdmFyIHNlbGVjdCA9IGNvbnRlbnQuY3JlYXRlU2VsZWN0KHRleHQsIHZhbHVlcywgZGF0YSwgc2V0dGluZ3NLZXkpOw0KICAgICAgICAgICAgICAgIHNlbGVjdC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChzZWxlY3QpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiYmFja3VwLmtlZXAiOg0KICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MuYmFja3VwS2VlcC50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIHRleHQgPSBbIjUiLCAiMTAiLCAiMjAiLCAiMzAiLCAiNDAiLCAiNTAiXTsNCiAgICAgICAgICAgICAgICB2YXIgdmFsdWVzID0gWyI1IiwgIjEwIiwgIjIwIiwgIjMwIiwgIjQwIiwgIjUwIl07DQogICAgICAgICAgICAgICAgdmFyIHNlbGVjdCA9IGNvbnRlbnQuY3JlYXRlU2VsZWN0KHRleHQsIHZhbHVlcywgZGF0YSwgc2V0dGluZ3NLZXkpOw0KICAgICAgICAgICAgICAgIHNlbGVjdC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChzZWxlY3QpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiYnVmZmVyLnNpemUua2IiOg0KICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MuYnVmZmVyU2l6ZS50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIHRleHQgPSBbIjAuNSBNQiIsICIxIE1CIiwgIjIgTUIiLCAiMyBNQiIsICI0IE1CIiwgIjUgTUIiLCAiNiBNQiIsICI3IE1CIiwgIjggTUIiXTsNCiAgICAgICAgICAgICAgICB2YXIgdmFsdWVzID0gWyI1MTIiLCAiMTAyNCIsICIyMDQ4IiwgIjMwNzIiLCAiNDA5NiIsICI1MTIwIiwgIjYxNDQiLCAiNzE2OCIsICI4MTkyIl07DQogICAgICAgICAgICAgICAgdmFyIHNlbGVjdCA9IGNvbnRlbnQuY3JlYXRlU2VsZWN0KHRleHQsIHZhbHVlcywgZGF0YSwgc2V0dGluZ3NLZXkpOw0KICAgICAgICAgICAgICAgIHNlbGVjdC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChzZWxlY3QpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiYnVmZmVyIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLnN0cmVhbUJ1ZmZlcmluZy50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIHRleHQgPSBbInt7LnNldHRpbmdzLnN0cmVhbUJ1ZmZlcmluZy5pbmZvX2ZhbHNlfX0iLCAieFRlVmU6ICh7ey5zZXR0aW5ncy5zdHJlYW1CdWZmZXJpbmcuaW5mb194dGV2ZX19KSIsICJGRm1wZWc6ICh7ey5zZXR0aW5ncy5zdHJlYW1CdWZmZXJpbmcuaW5mb19mZm1wZWd9fSkiLCAiVkxDOiAoe3suc2V0dGluZ3Muc3RyZWFtQnVmZmVyaW5nLmluZm9fdmxjfX0pIl07DQogICAgICAgICAgICAgICAgdmFyIHZhbHVlcyA9IFsiLSIsICJ4dGV2ZSIsICJmZm1wZWciLCAidmxjIl07DQogICAgICAgICAgICAgICAgdmFyIHNlbGVjdCA9IGNvbnRlbnQuY3JlYXRlU2VsZWN0KHRleHQsIHZhbHVlcywgZGF0YSwgc2V0dGluZ3NLZXkpOw0KICAgICAgICAgICAgICAgIHNlbGVjdC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChzZWxlY3QpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAidWRweHkiOg0KICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MudWRweHkudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCAidWRweHkiLCBkYXRhKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnNldHRpbmdzLnVkcHh5LnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIH0NCiAgICAgICAgcmV0dXJuIHNldHRpbmc7DQogICAgfQ0KICAgIGNyZWF0ZURlc2NyaXB0aW9uKHNldHRpbmdzS2V5KSB7DQogICAgICAgIHZhciBkZXNjcmlwdGlvbiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlRSIik7DQogICAgICAgIHZhciB0ZXh0Ow0KICAgICAgICBzd2l0Y2ggKHNldHRpbmdzS2V5KSB7DQogICAgICAgICAgICBjYXNlICJ0bHNNb2RlIjoNCiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLnRsc01vZGUuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJhdXRoZW50aWNhdGlvbi53ZWIiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MuYXV0aGVudGljYXRpb25XRUIuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJhdXRoZW50aWNhdGlvbi5tM3UiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MuYXV0aGVudGljYXRpb25NM1UuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJhdXRoZW50aWNhdGlvbi5wbXMiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MuYXV0aGVudGljYXRpb25QTVMuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJhdXRoZW50aWNhdGlvbi54bWwiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MuYXV0aGVudGljYXRpb25YTUwuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJhdXRoZW50aWNhdGlvbi5hcGkiOg0KICAgICAgICAgICAgICAgIGlmIChTRVJWRVJbInNldHRpbmdzIl1bImF1dGhlbnRpY2F0aW9uLndlYiJdID09IHRydWUpIHsNCiAgICAgICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5hdXRoZW50aWNhdGlvbkFQSS5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ4dGV2ZUF1dG9VcGRhdGUiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MueHRldmVBdXRvVXBkYXRlLmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiYmFja3VwLmtlZXAiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MuYmFja3VwS2VlcC5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImJhY2t1cC5wYXRoIjoNCiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLmJhY2t1cFBhdGguZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ0ZW1wLnBhdGgiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MudGVtcFBhdGguZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJidWZmZXIiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3Muc3RyZWFtQnVmZmVyaW5nLmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiYnVmZmVyLnNpemUua2IiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MuYnVmZmVyU2l6ZS5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImJ1ZmZlci50aW1lb3V0IjoNCiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLmJ1ZmZlclRpbWVvdXQuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ1c2VyLmFnZW50IjoNCiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLnVzZXJBZ2VudC5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImZmbXBlZy5wYXRoIjoNCiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLmZmbXBlZ1BhdGguZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJmZm1wZWcub3B0aW9ucyI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5mZm1wZWdPcHRpb25zLmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAidmxjLnBhdGgiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MudmxjUGF0aC5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInZsYy5vcHRpb25zIjoNCiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLnZsY09wdGlvbnMuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJlcGdTb3VyY2UiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MuZXBnU291cmNlLmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiaG9zdElQIjoNCiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLmhvc3RJUC5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInR1bmVyIjoNCiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLnR1bmVyLmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAidXBkYXRlIjoNCiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLnVwZGF0ZS5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImFwaSI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5hcGkuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJmaWxlcy51cGRhdGUiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MuZmlsZXNVcGRhdGUuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJjYWNoZS5pbWFnZXMiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MuY2FjaGVJbWFnZXMuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ4ZXBnLnJlcGxhY2UubWlzc2luZy5pbWFnZXMiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MucmVwbGFjZUVtcHR5SW1hZ2VzLmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAidWRweHkiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MudWRweHkuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBkZWZhdWx0Og0KICAgICAgICAgICAgICAgIHRleHQgPSAiIjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgfQ0KICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICIiOw0KICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgIHZhciBwcmUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJQUkUiKTsNCiAgICAgICAgcHJlLmlubmVySFRNTCA9IHRleHQ7DQogICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQocHJlKTsNCiAgICAgICAgZGVzY3JpcHRpb24uYXBwZW5kQ2hpbGQodGRMZWZ0KTsNCiAgICAgICAgZGVzY3JpcHRpb24uYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgIHJldHVybiBkZXNjcmlwdGlvbjsNCiAgICB9DQp9DQpjbGFzcyBTZXR0aW5nc0NhdGVnb3J5SXRlbSBleHRlbmRzIFNldHRpbmdzQ2F0ZWdvcnkgew0KICAgIGNvbnN0cnVjdG9yKGhlYWRsaW5lLCBzZXR0aW5nc0tleXMpIHsNCiAgICAgICAgc3VwZXIoKTsNCiAgICAgICAgdGhpcy5oZWFkbGluZSA9IGhlYWRsaW5lOw0KICAgICAgICB0aGlzLnNldHRpbmdzS2V5cyA9IHNldHRpbmdzS2V5czsNCiAgICB9DQogICAgY3JlYXRlQ2F0ZWdvcnkoKSB7DQogICAgICAgIHZhciBoZWFkbGluZSA9IHRoaXMuY3JlYXRlQ2F0ZWdvcnlIZWFkbGluZSh0aGlzLmhlYWRsaW5lKTsNCiAgICAgICAgdmFyIHNldHRpbmdzS2V5cyA9IHRoaXMuc2V0dGluZ3NLZXlzOw0KICAgICAgICB2YXIgZG9jID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQodGhpcy5Eb2N1bWVudElEKTsNCiAgICAgICAgZG9jLmFwcGVuZENoaWxkKGhlYWRsaW5lKTsNCiAgICAgICAgLy8gQ3JlYXRlIGEgdGFibGUgZm9yIHRoZSBjYXRlZ29yeQ0KICAgICAgICB2YXIgdGFibGUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJUQUJMRSIpOw0KICAgICAgICB2YXIga2V5cyA9IHNldHRpbmdzS2V5cy5zcGxpdCgiLCIpOw0KICAgICAgICBrZXlzLmZvckVhY2goc2V0dGluZ3NLZXkgPT4gew0KICAgICAgICAgICAgc3dpdGNoIChzZXR0aW5nc0tleSkgew0KICAgICAgICAgICAgICAgIGNhc2UgImF1dGhlbnRpY2F0aW9uLnBtcyI6DQogICAgICAgICAgICAgICAgY2FzZSAiYXV0aGVudGljYXRpb24ubTN1IjoNCiAgICAgICAgICAgICAgICBjYXNlICJhdXRoZW50aWNhdGlvbi54bWwiOg0KICAgICAgICAgICAgICAgIGNhc2UgImF1dGhlbnRpY2F0aW9uLmFwaSI6DQogICAgICAgICAgICAgICAgICAgIGlmIChTRVJWRVJbInNldHRpbmdzIl1bImF1dGhlbnRpY2F0aW9uLndlYiJdID09IGZhbHNlKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICAgICAgICAgIHZhciBpdGVtID0gdGhpcy5jcmVhdGVTZXR0aW5ncyhzZXR0aW5nc0tleSk7DQogICAgICAgICAgICAgICAgICAgIHZhciBkZXNjcmlwdGlvbiA9IHRoaXMuY3JlYXRlRGVzY3JpcHRpb24oc2V0dGluZ3NLZXkpOw0KICAgICAgICAgICAgICAgICAgICB0YWJsZS5hcHBlbmRDaGlsZChpdGVtKTsNCiAgICAgICAgICAgICAgICAgICAgdGFibGUuYXBwZW5kQ2hpbGQoZGVzY3JpcHRpb24pOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfSk7DQogICAgICAgIGRvYy5hcHBlbmRDaGlsZCh0YWJsZSk7DQogICAgICAgIGRvYy5hcHBlbmRDaGlsZCh0aGlzLmNyZWF0ZUhSKCkpOw0KICAgIH0NCn0NCmZ1bmN0aW9uIHNob3dTZXR0aW5ncygpIHsNCiAgICBjb25zb2xlLmxvZygiU0VUVElOR1MiKTsNCiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHNldHRpbmdzQ2F0ZWdvcnkubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgc2V0dGluZ3NDYXRlZ29yeVtpXS5jcmVhdGVDYXRlZ29yeSgpOw0KICAgIH0NCn0NCmZ1bmN0aW9uIHNhdmVTZXR0aW5ncygpIHsNCiAgICBjb25zb2xlLmxvZygiU2F2ZSBTZXR0aW5ncyIpOw0KICAgIHZhciBjbWQgPSAic2F2ZVNldHRpbmdzIjsNCiAgICB2YXIgZGl2ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnRlbnRfc2V0dGluZ3MiKTsNCiAgICB2YXIgc2V0dGluZ3MgPSBkaXYuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSgiY2hhbmdlZCIpOw0KICAgIHZhciBuZXdTZXR0aW5ncyA9IG5ldyBPYmplY3QoKTsNCiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHNldHRpbmdzLmxlbmd0aDsgaSsrKSB7DQogICAgICAgIHZhciBuYW1lOw0KICAgICAgICB2YXIgdmFsdWU7DQogICAgICAgIHN3aXRjaCAoc2V0dGluZ3NbaV0udGFnTmFtZSkgew0KICAgICAgICAgICAgY2FzZSAiSU5QVVQiOg0KICAgICAgICAgICAgICAgIHN3aXRjaCAoc2V0dGluZ3NbaV0udHlwZSkgew0KICAgICAgICAgICAgICAgICAgICBjYXNlICJjaGVja2JveCI6DQogICAgICAgICAgICAgICAgICAgICAgICBuYW1lID0gc2V0dGluZ3NbaV0ubmFtZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlID0gc2V0dGluZ3NbaV0uY2hlY2tlZDsNCiAgICAgICAgICAgICAgICAgICAgICAgIG5ld1NldHRpbmdzW25hbWVdID0gdmFsdWU7DQogICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICAgICAgY2FzZSAidGV4dCI6DQogICAgICAgICAgICAgICAgICAgICAgICBuYW1lID0gc2V0dGluZ3NbaV0ubmFtZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlID0gc2V0dGluZ3NbaV0udmFsdWU7DQogICAgICAgICAgICAgICAgICAgICAgICBzd2l0Y2ggKG5hbWUpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYXNlICJ1cGRhdGUiOg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IHZhbHVlLnNwbGl0KCIsIik7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlID0gdmFsdWUuZmlsdGVyKGZ1bmN0aW9uIChlKSB7IHJldHVybiBlOyB9KTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAiYnVmZmVyLnRpbWVvdXQiOg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IHBhcnNlRmxvYXQodmFsdWUpOw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgbmV3U2V0dGluZ3NbbmFtZV0gPSB2YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgIlNFTEVDVCI6DQogICAgICAgICAgICAgICAgbmFtZSA9IHNldHRpbmdzW2ldLm5hbWU7DQogICAgICAgICAgICAgICAgdmFsdWUgPSBzZXR0aW5nc1tpXS52YWx1ZTsNCiAgICAgICAgICAgICAgICAvLyBJZiB0aGUgdmFsdWUgaXMgYSBudW1iZXIsIHN0b3JlIGl0IGFzIGEgbnVtYmVyDQogICAgICAgICAgICAgICAgaWYgKGlzTmFOKHZhbHVlKSkgew0KICAgICAgICAgICAgICAgICAgICBuZXdTZXR0aW5nc1tuYW1lXSA9IHZhbHVlOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICAgICAgbmV3U2V0dGluZ3NbbmFtZV0gPSBwYXJzZUludCh2YWx1ZSk7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICB9DQogICAgfQ0KICAgIHZhciBkYXRhID0gbmV3IE9iamVjdCgpOw0KICAgIGRhdGFbInNldHRpbmdzIl0gPSBuZXdTZXR0aW5nczsNCiAgICB2YXIgc2VydmVyID0gbmV3IFNlcnZlcihjbWQpOw0KICAgIHNlcnZlci5yZXF1ZXN0KGRhdGEpOw0KfQ0K" - webUI["html/lang/en.json"] = "ew0KICAibWFpbk1lbnUiOg0KICB7DQogICAgIml0ZW0iOg0KICAgIHsNCiAgICAgICJwbGF5bGlzdCI6ICJQbGF5bGlzdCIsDQogICAgICAicG1zSUQiOiAiUE1TIElEIiwNCiAgICAgICJmaWx0ZXIiOiAiRmlsdGVyIiwNCiAgICAgICJ4bWx0diI6ICJYTUxUViIsDQogICAgICAibWFwcGluZyI6ICJNYXBwaW5nIiwNCiAgICAgICJ1c2VycyI6ICJVc2VycyIsDQogICAgICAic2V0dGluZ3MiOiAiU2V0dGluZ3MiLA0KICAgICAgImxvZyI6ICJMb2ciLA0KICAgICAgImxvZ291dCI6ICJMb2dvdXQiDQogICAgfSwNCiAgICAiaGVhZGxpbmUiOg0KICAgIHsNCiAgICAgICJwbGF5bGlzdCI6ICJMb2NhbCBvciByZW1vdGUgcGxheWxpc3RzIiwNCiAgICAgICJmaWx0ZXIiOiAiRmlsdGVyIHBsYXlsaXN0IiwNCiAgICAgICJ4bWx0diI6ICJMb2NhbCBvciByZW1vdGUgWE1MVFYgZmlsZXMiLA0KICAgICAgIm1hcHBpbmciOiAiTWFwIHBsYXlsaXN0IGNoYW5uZWxzIHRvIEVQRyBjaGFubmVscyIsDQogICAgICAidXNlcnMiOiAiVXNlciBtYW5hZ2VtZW50IiwNCiAgICAgICJzZXR0aW5ncyI6ICJTZXR0aW5ncyIsDQogICAgICAibG9nIjogIkxvZyIsDQogICAgICAibG9nb3V0IjogIkxvZ291dCINCiAgICB9DQogIH0sDQogICJjb25maXJtIjoNCiAgew0KICAgICJyZXN0b3JlIjogIkFsbCBkYXRhIHdpbGwgYmUgcmVwbGFjZWQgd2l0aCB0aG9zZSBmcm9tIHRoZSBiYWNrdXAuIFNob3VsZCB0aGUgZmlsZXMgYmUgcmVzdG9yZWQ/Ig0KICB9LA0KICAiYWxlcnQiOg0KICB7DQogICAgImZpbGVMb2FkaW5nRXJyb3IiOiAiRmlsZSBjb3VsZG4ndCBiZSBsb2FkZWQiLA0KICAgICJpbnZhbGlkQ2hhbm5lbE51bWJlciI6ICJJbnZhbGlkIGNoYW5uZWwgbnVtYmVyIiwNCiAgICAibWlzc2luZ0lucHV0IjogIk1pc3NpbmcgaW5wdXQiDQogIH0sDQogICJidXR0b24iOg0KICB7DQogICAgImJhY2siOiAiQmFjayIsDQogICAgImJhY2t1cCI6ICJCYWNrdXAiLA0KICAgICJidWxrRWRpdCI6ICJCdWxrIEVkaXQiLA0KICAgICJjYW5jZWwiOiAiQ2FuY2VsIiwNCiAgICAiZGVsZXRlIjogIkRlbGV0ZSIsDQogICAgImRvbmUiOiAiRG9uZSIsDQogICAgImxvZ2luIjogIkxvZ2luIiwNCiAgICAibmV3IjogIk5ldyIsDQogICAgIm5leHQiOiAiTmV4dCIsDQogICAgInJlc3RvcmUiOiAiUmVzdG9yZSIsDQogICAgInNhdmUiOiAiU2F2ZSIsDQogICAgInNlYXJjaCI6ICJTZWFyY2giLA0KICAgICJ1cGRhdGUiOiAiVXBkYXRlIiwNCiAgICAiY3JhZXRlQWNjb3VudCI6ICJDcmVhdGUgQWNjb3VudCIsDQogICAgInJlc2V0TG9ncyI6ICJSZXNldCBMb2dzIiwNCiAgICAidXBsb2FkTG9nbyI6ICJVcGxvYWQgTG9nbyINCiAgfSwNCiAgImZpbHRlciI6DQogIHsNCiAgICAidGFibGUiOg0KICAgIHsNCiAgICAgICJzdGFydGluZ0NoYW5uZWwiOiAiU3RhcnRpbmcgQ2guIE5vLiIsDQogICAgICAibmFtZSI6ICJGaWx0ZXIgTmFtZSIsDQogICAgICAidHlwZSI6ICJGaWx0ZXIgVHlwZSIsDQogICAgICAiZmlsdGVyIjogIkZpbHRlciINCiAgICB9LA0KICAgICJjdXN0b20iOiAiQ3VzdG9tIiwNCiAgICAiZ3JvdXAiOiAiTTNVIEdyb3VwIiwNCiAgICAibmFtZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIkZpbHRlciBOYW1lIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJGaWx0ZXIgbmFtZSIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgImRlc2NyaXB0aW9uIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiRGVzY3JpcHRpb24iLA0KICAgICAgInBsYWNlaG9sZGVyIjogIkRlc2NyaXB0aW9uIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAidHlwZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIlR5cGUiLA0KICAgICAgImdyb3VwVGl0bGUiOiAiR3JvdXAgVGl0bGUiLA0KICAgICAgImN1c3RvbUZpbHRlciI6ICJDdXN0b20gRmlsdGVyIg0KICAgIH0sDQogICAgImNhc2VTZW5zaXRpdmUiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJDYXNlIFNlbnNpdGl2ZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAiZmlsdGVyUnVsZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIkZpbHRlciBSdWxlIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJTcG9ydCB7SER9ICF7RVMsSVR9IiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAiZmlsdGVyR3JvdXAiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJHcm91cCBUaXRsZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJTZWxlY3QgYSBNM1UgZ3JvdXAuIChDb3VudGVyKTxicj5DaGFuZ2luZyB0aGUgZ3JvdXAgdGl0bGUgaW4gdGhlIE0zVSBpbnZhbGlkYXRlcyB0aGUgZmlsdGVyLiINCiAgICB9LA0KICAgICJpbmNsdWRlIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiSW5jbHVkZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiRkhELFVIRCIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiQ2hhbm5lbCBuYW1lIG11c3QgaW5jbHVkZS48YnI+KENvbW1hIHNlcGFyYXRlZCkgQ29tbWEgbWVhbnMgb3IiDQogICAgfSwNCiAgICAiZXhjbHVkZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIkV4Y2x1ZGUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIkVTLElUIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJDaGFubmVsIG5hbWUgbXVzdCBub3QgY29udGFpbi48YnI+KENvbW1hIHNlcGFyYXRlZCkgQ29tbWEgbWVhbnMgb3IiDQogICAgfSwNCiAgICAicHJlc2VydmVNYXBwaW5nIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiUHJlc2VydmUgRXhpc3RpbmcgTTNVPGJyPkNoYW5uZWwgTnVtYmVycyIsDQogICAgICAicGFsY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJQcmVzZXJ2ZSBleGlzdGluZyBNM1UgcGxheWxpc3QgY2hhbm5lbCBudW1iZXJzPyINCiAgICB9LA0KICAgICJzdGFydGluZ0NoYW5uZWwiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJTdGFydGluZyBDaGFubmVsIE51bWJlciIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAiZGVmYXVsdE1pc3NpbmdFUEciOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJGaWxsIE1pc3NpbmcgRVBHIERhdGEiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiV2hlbiB0aGVyZSBpcyBubyBtYXRjaGluZyBFUEcgZGF0YSBmb3IgY2hhbm5lbCwgPGJyPmF1dG9maWxsIHdpdGggeFRlVmUgZHVtbXkgRVBHIGRhdGE/Ig0KICAgIH0NCg0KICB9LA0KICAicGxheWxpc3QiOg0KICB7DQogICAgInRhYmxlIjoNCiAgICB7DQogICAgICAicGxheWxpc3QiOiAiUGxheWxpc3QiLA0KICAgICAgInR1bmVyIjogIlR1bmVyIiwNCiAgICAgICJsYXN0VXBkYXRlIjogIkxhc3QgVXBkYXRlIiwNCiAgICAgICJhdmFpbGFiaWxpdHkiOiAiQXZhaWxhYmlsaXR5IiwNCiAgICAgICJ0eXBlIjogIlR5cGUiLA0KICAgICAgInN0cmVhbXMiOiAiU3RyZWFtcyIsDQogICAgICAiZ3JvdXBUaXRsZSI6ICJncm91cC10aXRsZSIsDQogICAgICAidHZnSUQiOiAidHZnLWlkIiwNCiAgICAgICJ1bmlxdWVJRCI6ICJVbmlxdWUgSUQiDQogICAgfSwNCiAgICAicGxheWxpc3RUeXBlIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiUGxheWxpc3QgdHlwZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAidHlwZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIlR5cGUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgIm5hbWUiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJOYW1lIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJQbGF5bGlzdCBuYW1lIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAiZGVzY3JpcHRpb24iOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJEZXNjcmlwdGlvbiIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiRGVzY3JpcHRpb24iLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJmaWxlTTNVIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiTTNVIEZpbGUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIkZpbGUgcGF0aCBvciBVUkwgb2YgdGhlIE0zVSIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgImZpbGVIREhSIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiSERIb21lUnVuIElQIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJJUCBhZGRyZXNzIGFuZCBwb3J0ICgxOTIuMTY4LjEuMTA6NTAwNCkiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJ0dW5lciI6DQogICAgew0KICAgICAgInRpdGxlIjogIlR1bmVyIC8gU3RyZWFtcyIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJOdW1iZXIgb2YgcGFyYWxsZWwgY29ubmVjdGlvbnMgdGhhdCBjYW4gYmUgZXN0YWJsaXNoZWQgdG8gdGhlIHByb3ZpZGVyLiA8YnI+T25seSBhdmFpbGFibGUgd2l0aCBhY3RpdmF0ZWQgYnVmZmVyLjxicj5OZXcgc2V0dGluZ3Mgd2lsbCBvbmx5IGJlIGFwcGxpZWQgYWZ0ZXIgcXVpdHRpbmcgYWxsIHN0cmVhbXMuIg0KICAgIH0NCiAgfSwNCiAgInhtbHR2IjoNCiAgew0KICAgICJ0YWJsZSI6DQogICAgew0KICAgICAgImd1aWRlIjogIkd1aWRlIiwNCiAgICAgICJsYXN0VXBkYXRlIjogIkxhc3QgVXBkYXRlIiwNCiAgICAgICJhdmFpbGFiaWxpdHkiOiAiQXZhaWxhYmlsaXR5IiwNCiAgICAgICJjaGFubmVscyI6ICJDaGFubmVscyIsDQogICAgICAicHJvZ3JhbXMiOiAiUHJvZ3JhbXMiDQogICAgfSwNCiAgICAibmFtZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIk5hbWUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIkd1aWRlIG5hbWUiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJkZXNjcmlwdGlvbiI6DQogICAgew0KICAgICAgInRpdGxlIjogIkRlc2NyaXB0aW9uIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJEZXNjcmlwdGlvbiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgImZpbGVYTUxUViI6DQogICAgew0KICAgICAgInRpdGxlIjogIlhNTFRWIEZpbGUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIkZpbGUgcGF0aCBvciBVUkwgb2YgdGhlIFhNTFRWIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfQ0KICB9LA0KICAibWFwcGluZyI6DQogIHsNCiAgICAidGFibGUiOg0KICAgIHsNCiAgICAgICJjaE5vIjogIkNoLiBOby4iLA0KICAgICAgImxvZ28iOiAiTG9nbyIsDQogICAgICAiY2hhbm5lbE5hbWUiOiAiQ2hhbm5lbCBOYW1lIiwNCiAgICAgICJwbGF5bGlzdCI6ICJQbGF5bGlzdCIsDQogICAgICAiZ3JvdXBUaXRsZSI6ICJHcm91cCBUaXRsZSIsDQogICAgICAieG1sdHZGaWxlIjogIlhNTFRWIEZpbGUiLA0KICAgICAgInhtbHR2SUQiOiAiWE1MVFYgSUQiLA0KICAgICAgInRpbWVzaGlmdCI6ICJUaW1lc2hpZnQiDQogICAgfSwNCiAgICAiYWN0aXZlIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiQWN0aXZlIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJjaGFubmVsTmFtZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIkNoYW5uZWwgTmFtZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAiZGVzY3JpcHRpb24iOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJDaGFubmVsIERlc2NyaXB0aW9uIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJVc2VkIGJ5IHRoZSBEdW1teSBhcyBhbiBYTUwgZGVzY3JpcHRpb24iLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJ1cGRhdGVDaGFubmVsTmFtZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIlVwZGF0ZSBDaGFubmVsIE5hbWUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgInVwZGF0ZUNoYW5uZWxHcm91cCI6DQogICAgew0KICAgICAgInRpdGxlIjogIlVwZGF0ZSBDaGFubmVsIEdyb3VwIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIklmIGNoZWNrZWQsIHVzZSBncm91cCBmcm9tIHRoZSBkYXRhYmFzZSINCiAgICB9LA0KICAgICJjaGFubmVsTG9nbyI6DQogICAgew0KICAgICAgInRpdGxlIjogIkxvZ28gVVJMIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJ1cGRhdGVDaGFubmVsTG9nbyI6DQogICAgew0KICAgICAgInRpdGxlIjogIlVwZGF0ZSBDaGFubmVsIExvZ28iLA0KICAgICAgInBsYWNlaG9sZGVyIjogIiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgImVwZ0NhdGVnb3J5IjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiRVBHIENhdGVnb3J5IiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJtM3VHcm91cFRpdGxlIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiR3JvdXAgVGl0bGUgKHh0ZXZlLm0zdSkiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgInhtbHR2RmlsZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIlhNTFRWIEZpbGUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgInhtbHR2Q2hhbm5lbCI6DQogICAgew0KICAgICAgInRpdGxlIjogIlhNTFRWIENoYW5uZWwiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgInRpbWVzaGlmdCI6DQogICAgew0KICAgICAgInRpdGxlIjogIlRpbWVzaGlmdCIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiMCIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0NCiAgfSwNCiAgInVzZXJzIjoNCiAgew0KICAgICJ0YWJsZSI6DQogICAgew0KICAgICAgInVzZXJuYW1lIjogIlVzZXJuYW1lIiwNCiAgICAgICJwYXNzd29yZCI6ICJQYXNzd29yZCIsDQogICAgICAid2ViIjogIldFQiIsDQogICAgICAicG1zIjogIlBNUyIsDQogICAgICAibTN1IjogIk0zVSIsDQogICAgICAieG1sIjogIlhNTCIsDQogICAgICAiYXBpIjogIkFQSSINCiAgICB9LA0KICAgICJ1c2VybmFtZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIlVzZXJuYW1lIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJVc2VybmFtZSIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgInBhc3N3b3JkIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiUGFzc3dvcmQiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIlBhc3N3b3JkIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAiY29uZmlybSI6DQogICAgew0KICAgICAgInRpdGxlIjogIkNvbmZpcm0iLA0KICAgICAgInBsYWNlaG9sZGVyIjogIlBhc3N3b3JkIGNvbmZpcm0iLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJ3ZWIiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJXZWIgQWNjZXNzIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJwbXMiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJQTVMgQWNjZXNzIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJtM3UiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJNM1UgQWNjZXNzIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJ4bWwiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJYTUwgQWNjZXNzIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJhcGkiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJBUEkgQWNjZXNzIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9DQogIH0sDQogICJzZXR0aW5ncyI6DQogIHsNCiAgICAiY2F0ZWdvcnkiOg0KICAgIHsNCiAgICAgICJnZW5lcmFsIjogIkdlbmVyYWwiLA0KICAgICAgImZpbGVzIjogIkZpbGVzIiwNCiAgICAgICJzdHJlYW1pbmciOiAiU3RyZWFtaW5nIiwNCiAgICAgICJiYWNrdXAiOiAiQmFja3VwIiwNCiAgICAgICJhdXRoZW50aWNhdGlvbiI6ICJBdXRoZW50aWNhdGlvbiINCiAgICB9LA0KICAgICJ1cGRhdGUiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJTY2hlZHVsZSBmb3IgdXBkYXRpbmcgKFBsYXlsaXN0LCBYTUxUViwgQmFja3VwKSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiMDAwMCwxMDAwLDIwMDAiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIlRpbWUgaW4gMjQgaG91ciBmb3JtYXQgKDA4MDAgPSA4OjAwIGFtKS4gTW9yZSB0aW1lcyBjYW4gYmUgZW50ZXJlZCBjb21tYSBzZXBhcmF0ZWQuIExlYXZlIHRoaXMgZmllbGQgZW1wdHkgaWYgbm8gdXBkYXRlcyBhcmUgdG8gYmUgY2FycmllZCBvdXQuIg0KICAgIH0sDQogICAgImFwaSI6DQogICAgew0KICAgICAgInRpdGxlIjogIkFQSSBJbnRlcmZhY2UiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIlZpYSBBUEkgaW50ZXJmYWNlIGl0IGlzIHBvc3NpYmxlIHRvIHNlbmQgY29tbWFuZHMgdG8geFRlVmUuIEFQSSBkb2N1bWVudGF0aW9uIGlzIDxhIGhyZWY9J2h0dHBzOi8vZ2l0aHViLmNvbS94dGV2ZS1wcm9qZWN0L3hUZVZlLURvY3VtZW50YXRpb24vYmxvYi9tYXN0ZXIvZW4vY29uZmlndXJhdGlvbi5tZCNhcGknPmhlcmU8L2E+Ig0KICAgIH0sDQogICAgImVwZ1NvdXJjZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIkVQRyBTb3VyY2UiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIlBNUzo8YnI+LSBVc2UgRVBHIGRhdGEgZnJvbSBQbGV4IG9yIEVtYnkgPGJyPjxicj5YRVBHOjxicj4tIFVzZSBvZiBvbmUgb3IgbW9yZSBYTUxUViBmaWxlczxicj4tIENoYW5uZWwgbWFuYWdlbWVudDxicj4tIE0zVSAvIFhNTFRWIGV4cG9ydCAoSFRUUCBsaW5rIGZvciBJUFRWIGFwcHMpIg0KICAgIH0sDQogICAgInR1bmVyIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiTnVtYmVyIG9mIFR1bmVycyIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiTnVtYmVyIG9mIHBhcmFsbGVsIGNvbm5lY3Rpb25zIHRoYXQgY2FuIGJlIGVzdGFibGlzaGVkIHRvIHRoZSBwcm92aWRlci48YnI+QXZhaWxhYmxlIGZvcjogUGxleCwgRW1ieSAoSERIUiksIE0zVSAod2l0aCBhY3RpdmUgYnVmZmVyKS48YnI+QWZ0ZXIgYSBjaGFuZ2UsIHhUZVZlIG11c3QgYmUgZGVsZXRlIGluIHRoZSBQbGV4IC8gRW1ieSBEVlIgc2V0dGluZ3MgYW5kIHNldCB1cCBhZ2Fpbi4iDQogICAgfSwNCiAgICAiaG9zdElQIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiSG9zdCBJUCIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiSVAgYWRkcmVzcyB4VGVWZSB3aWxsIHVzZSB0byBmb3JtIE0zVSBhbmQgWE1MVFYgZmlsZXMiDQogICAgfSwNCiAgICAidGxzTW9kZSI6IHsNCiAgICAgICJ0aXRsZSI6ICJUTFMgKEhUVFBTKSBtb2RlIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJDaGFuZ2VzIHdlYiBzZXJ2ZXIgcHJvdG9jb2wgdG8gSFRUUFMuPGJyPkZvciBkZXRhaWxzLCBzZWUgPGE+aHR0cHM6Ly9naXRodWIuY29tL1NDUDAwMi94VGVWZSN0bHMtbW9kZTwvYT4iDQogICAgfSwNCiAgICAiZmlsZXNVcGRhdGUiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJVcGRhdGVzIGFsbCBmaWxlcyBhdCBzdGFydHVwIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJVcGRhdGVzIGFsbCBwbGF5bGlzdHMsIHR1bmVyIGFuZCBYTUxUViBmaWxlcyBhdCBzdGFydHVwLiINCiAgICB9LA0KICAgICJjYWNoZUltYWdlcyI6DQogICAgew0KICAgICAgInRpdGxlIjogIkltYWdlIENhY2hpbmciLA0KICAgICAgImRlc2NyaXB0aW9uIjogIkFsbCBpbWFnZXMgZnJvbSB0aGUgWE1MVFYgZmlsZSBhcmUgY2FjaGVkLCBhbGxvd2luZyBmYXN0ZXIgcmVuZGVyaW5nIG9mIHRoZSBncmlkIGluIHRoZSBjbGllbnQuPGJyPkRvd25sb2FkaW5nIHRoZSBpbWFnZXMgbWF5IHRha2UgYSB3aGlsZSBhbmQgd2lsbCBiZSBkb25lIGluIHRoZSBiYWNrZ3JvdW5kLiINCiAgICB9LA0KICAgICJyZXBsYWNlRW1wdHlJbWFnZXMiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJSZXBsYWNlIG1pc3NpbmcgcHJvZ3JhbSBpbWFnZXMiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIklmIHRoZSBwb3N0ZXIgaW4gdGhlIFhNTFRWIHByb2dyYW0gaXMgbWlzc2luZywgdGhlIGNoYW5uZWwgbG9nbyB3aWxsIGJlIHVzZWQuIg0KICAgIH0sDQogICAgInh0ZXZlQXV0b1VwZGF0ZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIkF1dG9tYXRpYyB1cGRhdGUgb2YgeFRlVmUiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIklmIGEgbmV3IHZlcnNpb24gb2YgeFRlVmUgaXMgYXZhaWxhYmxlLCBpdCB3aWxsIGJlIGF1dG9tYXRpY2FsbHkgaW5zdGFsbGVkLiBUaGUgdXBkYXRlcyBhcmUgZG93bmxvYWRlZCBmcm9tIEdpdEh1Yi4iDQogICAgfSwNCiAgICAic3RyZWFtQnVmZmVyaW5nIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiU3RyZWFtIEJ1ZmZlciIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiRnVuY3Rpb25zIG9mIHRoZSBidWZmZXI6PGJyPi0gVGhlIHN0cmVhbSBpcyBwYXNzZWQgZnJvbSB4VGVWZSwgRkZtcGVnIG9yIFZMQyB0byBQbGV4LCBFbWJ5IG9yIE0zVSBQbGF5ZXI8YnI+LSBTbWFsbCBqZXJraW5nIG9mIHRoZSBzdHJlYW1zIGNhbiBiZSBjb21wZW5zYXRlZDxicj4tIEhMUyAvIE0zVTggc3VwcG9ydDxicj4tIFJUUCAvIFJUUFMgc3VwcG9ydCAob25seSBGRm1wZWcgb3IgVkxDKTxicj4tIFJlLXN0cmVhbWluZzxicj4tIFNlcGFyYXRlIHR1bmVyIGxpbWl0IGZvciBlYWNoIHBsYXlsaXN0IiwNCiAgICAgICJpbmZvX2ZhbHNlIjogIk5vIEJ1ZmZlciAoQ2xpZW50IGNvbm5lY3RzIHRvIHRoZSBzdHJlYW1pbmcgc2VydmVyKSIsDQogICAgICAiaW5mb194dGV2ZSI6ICJ4VGVWZSBjb25uZWN0cyB0byB0aGUgc3RyZWFtaW5nIHNlcnZlciIsDQogICAgICAiaW5mb19mZm1wZWciOiAiRkZtcGVnIGNvbm5lY3RzIHRvIHRoZSBzdHJlYW1pbmcgc2VydmVyIiwNCiAgICAgICJpbmZvX3ZsYyI6ICJWTEMgY29ubmVjdHMgdG8gdGhlIHN0cmVhbWluZyBzZXJ2ZXIiDQoNCiAgICB9LA0KICAgICJ1ZHB4eSI6DQogICAgew0KICAgICAgInRpdGxlIjogIlVEUHh5IGFkZHJlc3MiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIlRoZSBhZGRyZXNzIG9mIHlvdXIgVURQeHkgc2VydmVyLiBJZiBzZXQsIGFuZCB0aGUgY2hhbm5lbCBVUkxzIGluIHRoZSBtM3UgaXMgbXVsdGljYXN0LCB4VGVWZSB3aWxsIHJld3JpdGUgaXQgc28gdGhhdCBpdCBpcyBhY2Nlc3NlZCB2aWEgdGhlIFVEUHh5IHNlcnZpY2UuIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJob3N0OnBvcnQiDQogICAgfSwNCiAgICAiZmZtcGVnUGF0aCI6DQogICAgew0KICAgICAgInRpdGxlIjogIkZGbXBlZyBCaW5hcnkgUGF0aCIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiUGF0aCB0byBGRm1wZWcgYmluYXJ5LiIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiL3BhdGgvdG8vZmZtcGVnIg0KICAgIH0sDQogICAgImZmbXBlZ09wdGlvbnMiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJGRm1wZWcgT3B0aW9ucyIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiRkZtcGVnIG9wdGlvbnMuPGJyPk9ubHkgY2hhbmdlIGlmIHlvdSBrbm93IHdoYXQgeW91IGFyZSBkb2luZy48YnI+TGVhdmUgYmxhbmsgdG8gc2V0IGRlZmF1bHQgc2V0dGluZ3MuIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJMZWF2ZSBibGFuayB0byBzZXQgZGVmYXVsdCBzZXR0aW5ncyINCiAgICB9LA0KICAgICJ2bGNQYXRoIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiVkxDIC8gQ1ZMQyBCaW5hcnkgUGF0aCIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiUGF0aCB0byBWTEMgLyBDVkxDIGJpbmFyeS4iLA0KICAgICAgInBsYWNlaG9sZGVyIjogIi9wYXRoL3RvL2N2bGMiDQogICAgfSwNCiAgICAidmxjT3B0aW9ucyI6DQogICAgew0KICAgICAgInRpdGxlIjogIlZMQyAvIENWTEMgT3B0aW9ucyIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiVkxDIC8gQ1ZMQyBvcHRpb25zLjxicj5Pbmx5IGNoYW5nZSBpZiB5b3Uga25vdyB3aGF0IHlvdSBhcmUgZG9pbmcuPGJyPkxlYXZlIGJsYW5rIHRvIHNldCBkZWZhdWx0IHNldHRpbmdzLiIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiTGVhdmUgYmxhbmsgdG8gc2V0IGRlZmF1bHQgc2V0dGluZ3MiDQogICAgfSwNCiAgICAiYnVmZmVyU2l6ZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIkJ1ZmZlciBTaXplIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJCdWZmZXIgc2l6ZSBpbiBNQi48YnI+TTNVODogSWYgdGhlIFRTIHNlZ21lbnQgc21hbGxlciB0aGVuIHRoZSBidWZmZXIgc2l6ZSwgdGhlIGZpbGUgc2l6ZSBvZiB0aGUgc2VnbWVudCBpcyB1c2VkLiINCiAgICB9LA0KICAgICJidWZmZXJUaW1lb3V0IjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiVGltZW91dCBmb3IgbmV3IGNsaWVudCBjb25uZWN0aW9ucyIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiVGhlIHhUZVZlIGJ1ZmZlciB3YWl0cyB1bnRpbCBuZXcgY2xpZW50IGNvbm5lY3Rpb25zIGFyZSBlc3RhYmxpc2hlZC4gSGVscGZ1bCBmb3IgZmFzdCBjaGFubmVsIHN3aXRjaGluZy4gVmFsdWUgaW4gbWlsbGlzZWNvbmRzLiIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiMTAwIg0KICAgIH0sDQogICAgInVzZXJBZ2VudCI6DQogICAgew0KICAgICAgInRpdGxlIjogIlVzZXIgQWdlbnQiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIlVzZXIgQWdlbnQgZm9yIEhUVFAgcmVxdWVzdHMuIEZvciBldmVyeSBIVFRQIGNvbm5lY3Rpb24sIHRoaXMgdmFsdWUgaXMgdXNlZCBmb3IgdGhlIHVzZXIgYWdlbnQuIFNob3VsZCBvbmx5IGJlIGNoYW5nZWQgaWYgeFRlVmUgaXMgYmxvY2tlZC4iLA0KICAgICAgInBsYWNlaG9sZGVyIjogInhUZVZlIg0KICAgIH0sDQogICAgImJhY2t1cFBhdGgiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJMb2NhdGlvbiBmb3IgYXV0b21hdGljIGJhY2t1cHMiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIi9tbnQvZGF0YS9iYWNrdXAveHRldmUvIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJCZWZvcmUgYW55IHVwZGF0ZSBvZiB0aGUgcHJvdmlkZXIgZGF0YSBieSB0aGUgc2NoZWR1bGUsIHhUZVZlIGNyZWF0ZXMgYSBiYWNrdXAuIFRoZSBwYXRoIGZvciB0aGUgYXV0b21hdGljIGJhY2t1cHMgY2FuIGJlIGNoYW5nZWQuIHhUZVZlIHJlcXVpcmVzIHdyaXRlIHBlcm1pc3Npb24gZm9yIHRoaXMgZm9sZGVyLiINCiAgICB9LA0KICAgICJ0ZW1wUGF0aCI6DQogICAgew0KICAgICAgInRpdGxlIjogIkxvY2F0aW9uIGZvciB0aGUgdGVtcG9yYXJ5IGZpbGVzIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIvdG1wL3h0ZXZlLyIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiTG9jYXRpb24gZm9yIHRoZSBidWZmZXIgZmlsZXMuIg0KICAgIH0sDQogICAgImJhY2t1cEtlZXAiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJOdW1iZXIgb2YgYmFja3VwcyB0byBrZWVwIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJOdW1iZXIgb2YgYmFja3VwcyB0byBrZWVwLiBPbGRlciBiYWNrdXBzIGFyZSBhdXRvbWF0aWNhbGx5IGRlbGV0ZWQuIg0KICAgIH0sDQogICAgImF1dGhlbnRpY2F0aW9uV0VCIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiV0VCIEF1dGhlbnRpY2F0aW9uIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJBY2Nlc3MgdG8gdGhlIHdlYiBpbnRlcmZhY2Ugb25seSBwb3NzaWJsZSB3aXRoIGNyZWRlbnRpYWxzLiINCiAgICB9LA0KICAgICJhdXRoZW50aWNhdGlvblBNUyI6DQogICAgew0KICAgICAgInRpdGxlIjogIlBNUyBBdXRoZW50aWNhdGlvbiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiUGxleCByZXF1ZXN0cyBhcmUgb25seSBwb3NzaWJsZSB3aXRoIGF1dGhlbnRpY2F0aW9uLiA8YnI+PGI+V2FybmluZyEhITwvYj4gQWZ0ZXIgYWN0aXZhdGluZyB0aGlzIGZ1bmN0aW9uIHhUZVZlIG11c3QgYmUgZGVsZXRlIGluIHRoZSBQTVMgRFZSIHNldHRpbmdzIGFuZCBzZXQgdXAgYWdhaW4uIg0KICAgIH0sDQogICAgImF1dGhlbnRpY2F0aW9uTTNVIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiTTNVIEF1dGhlbnRpY2F0aW9uIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJEb3dubG9hZGluZyB0aGUgeHRldmUubTN1IGZpbGUgdmlhIGFuIEhUVFAgcmVxdWVzdCBpcyBvbmx5IHBvc3NpYmxlIHdpdGggYXV0aGVudGljYXRpb24uIg0KICAgIH0sDQogICAgImF1dGhlbnRpY2F0aW9uWE1MIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiWE1MIEF1dGhlbnRpY2F0aW9uIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJEb3dubG9hZGluZyB0aGUgeHRldmUueG1sIGZpbGUgdmlhIGFuIEhUVFAgcmVxdWVzdCBpcyBvbmx5IHBvc3NpYmxlIHdpdGggYXV0aGVudGljYXRpb24iDQogICAgfSwNCiAgICAiYXV0aGVudGljYXRpb25BUEkiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJBUEkgQXV0aGVudGljYXRpb24iLA0KICAgICAgImRlc2NyaXB0aW9uIjogIkFjY2VzcyB0byB0aGUgQVBJIGludGVyZmFjZSBpcyBvbmx5IHBvc3NpYmxlIHdpdGggYXV0aGVudGljYXRpb24uIg0KICAgIH0NCiAgfSwNCiAgIndpemFyZCI6DQogIHsNCiAgICAiZXBnU291cmNlIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiRVBHIFNvdXJjZSIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiUE1TOjxicj4tIFVzZSBFUEcgZGF0YSBmcm9tIFBsZXggb3IgRW1ieSA8YnI+PGJyPlhFUEc6PGJyPi0gVXNlIG9mIG9uZSBvciBtb3JlIFhNTFRWIGZpbGVzPGJyPi0gQ2hhbm5lbCBtYW5hZ2VtZW50PGJyPi0gTTNVIC8gWE1MVFYgZXhwb3J0IChIVFRQIGxpbmsgZm9yIElQVFYgYXBwcykiDQogICAgfSwNCiAgICAidHVuZXIiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJOdW1iZXIgb2YgdHVuZXJzIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJOdW1iZXIgb2YgcGFyYWxsZWwgY29ubmVjdGlvbnMgdGhhdCBjYW4gYmUgZXN0YWJsaXNoZWQgdG8gdGhlIHByb3ZpZGVyLjxicj5BdmFpbGFibGUgZm9yOiBQbGV4LCBFbWJ5IChIREhSKSwgTTNVICh3aXRoIGFjdGl2ZSBidWZmZXIpLjxicj5BZnRlciBhIGNoYW5nZSwgeFRlVmUgbXVzdCBiZSBkZWxldGUgaW4gdGhlIFBsZXggLyBFbWJ5IERWUiBzZXR0aW5ncyBhbmQgc2V0IHVwIGFnYWluLiINCiAgICB9LA0KICAgICJtM3UiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJNM1UgUGxheWxpc3QiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIkZpbGUgcGF0aCBvciBVUkwgb2YgdGhlIE0zVSIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiTG9jYWwgb3IgcmVtb3RlIHBsYXlsaXN0cyINCiAgICB9LA0KICAgICJ4bWx0diI6DQogICAgew0KICAgICAgInRpdGxlIjogIlhNTFRWIEZpbGUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIkZpbGUgcGF0aCBvciBVUkwgb2YgdGhlIFhNTFRWIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJMb2NhbCBvciByZW1vdGUgWE1MVFYgZmlsZSINCiAgICB9DQogIH0sDQogICJsb2dpbiI6DQogIHsNCiAgICAiZmFpbGVkIjogIlVzZXIgYXV0aGVudGljYXRpb24gZmFpbGVkIiwNCiAgICAiaGVhZGxpbmUiOiAiTG9naW4iLA0KICAgICJ1c2VybmFtZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIlVzZXJuYW1lIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJVc2VybmFtZSINCiAgICB9LA0KICAgICJwYXNzd29yZCI6DQogICAgew0KICAgICAgInRpdGxlIjogIlBhc3N3b3JkIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJQYXNzd29yZCINCiAgICB9DQogIH0sDQogICJhY2NvdW50IjoNCiAgew0KICAgICJmYWlsZWQiOiAiUGFzc3dvcmQgZG9lcyBub3QgbWF0Y2giLA0KICAgICJoZWFkbGluZSI6ICJDcmVhdGUgdXNlciBhY2NvdW50IiwNCiAgICAidXNlcm5hbWUiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJVc2VybmFtZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiVXNlcm5hbWUiDQogICAgfSwNCiAgICAicGFzc3dvcmQiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJQYXNzd29yZCIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiUGFzc3dvcmQiDQogICAgfSwNCiAgICAiY29uZmlybSI6DQogICAgew0KICAgICAgInRpdGxlIjogIkNvbmZpcm0iLA0KICAgICAgInBsYWNlaG9sZGVyIjogIkNvbmZpcm0iDQogICAgfQ0KICB9DQp9" + webUI["html/js/settings_ts.js"] = "Y2xhc3MgU2V0dGluZ3NDYXRlZ29yeSB7DQogICAgY29uc3RydWN0b3IoKSB7DQogICAgICAgIHRoaXMuRG9jdW1lbnRJRCA9ICJjb250ZW50X3NldHRpbmdzIjsNCiAgICB9DQogICAgY3JlYXRlQ2F0ZWdvcnlIZWFkbGluZSh2YWx1ZSkgew0KICAgICAgICB2YXIgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIkg0Iik7DQogICAgICAgIGVsZW1lbnQuaW5uZXJIVE1MID0gdmFsdWU7DQogICAgICAgIHJldHVybiBlbGVtZW50Ow0KICAgIH0NCiAgICBjcmVhdGVIUigpIHsNCiAgICAgICAgdmFyIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJIUiIpOw0KICAgICAgICByZXR1cm4gZWxlbWVudDsNCiAgICB9DQogICAgY3JlYXRlU2V0dGluZ3Moc2V0dGluZ3NLZXkpIHsNCiAgICAgICAgdmFyIHNldHRpbmcgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJUUiIpOw0KICAgICAgICB2YXIgY29udGVudCA9IG5ldyBQb3B1cENvbnRlbnQoKTsNCiAgICAgICAgdmFyIGRhdGEgPSBTRVJWRVJbInNldHRpbmdzIl1bc2V0dGluZ3NLZXldOw0KICAgICAgICBzd2l0Y2ggKHNldHRpbmdzS2V5KSB7DQogICAgICAgICAgICAvLyBUZXh0IGlucHV0cw0KICAgICAgICAgICAgY2FzZSAidXBkYXRlIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLnVwZGF0ZS50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsICJ1cGRhdGUiLCBkYXRhLnRvU3RyaW5nKCkpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3suc2V0dGluZ3MudXBkYXRlLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJiYWNrdXAucGF0aCI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5iYWNrdXBQYXRoLnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgImJhY2t1cC5wYXRoIiwgZGF0YSk7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5zZXR0aW5ncy5iYWNrdXBQYXRoLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ0ZW1wLnBhdGgiOg0KICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MudGVtcFBhdGgudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCAidGVtcC5wYXRoIiwgZGF0YSk7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5zZXR0aW5ncy50bXBQYXRoLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ1c2VyLmFnZW50IjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLnVzZXJBZ2VudC50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsICJ1c2VyLmFnZW50IiwgZGF0YSk7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5zZXR0aW5ncy51c2VyQWdlbnQucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImJ1ZmZlci50aW1lb3V0IjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmJ1ZmZlclRpbWVvdXQudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCAiYnVmZmVyLnRpbWVvdXQiLCBkYXRhKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnNldHRpbmdzLmJ1ZmZlclRpbWVvdXQucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImZmbXBlZy5wYXRoIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmZmbXBlZ1BhdGgudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCAiZmZtcGVnLnBhdGgiLCBkYXRhKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnNldHRpbmdzLmZmbXBlZ1BhdGgucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImZmbXBlZy5vcHRpb25zIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmZmbXBlZ09wdGlvbnMudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCAiZmZtcGVnLm9wdGlvbnMiLCBkYXRhKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnNldHRpbmdzLmZmbXBlZ09wdGlvbnMucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInZsYy5wYXRoIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLnZsY1BhdGgudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCAidmxjLnBhdGgiLCBkYXRhKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnNldHRpbmdzLnZsY1BhdGgucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInZsYy5vcHRpb25zIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLnZsY09wdGlvbnMudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCAidmxjLm9wdGlvbnMiLCBkYXRhKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnNldHRpbmdzLnZsY09wdGlvbnMucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIC8vIENoZWNrYm94ZXMNCiAgICAgICAgICAgIGNhc2UgInRsc01vZGUiOg0KICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MudGxzTW9kZS50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChzZXR0aW5nc0tleSk7DQogICAgICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGE7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiYXV0aGVudGljYXRpb24ud2ViIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmF1dGhlbnRpY2F0aW9uV0VCLnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KHNldHRpbmdzS2V5KTsNCiAgICAgICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJhdXRoZW50aWNhdGlvbi5wbXMiOg0KICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MuYXV0aGVudGljYXRpb25QTVMudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goc2V0dGluZ3NLZXkpOw0KICAgICAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImF1dGhlbnRpY2F0aW9uLm0zdSI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5hdXRoZW50aWNhdGlvbk0zVS50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChzZXR0aW5nc0tleSk7DQogICAgICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGE7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiYXV0aGVudGljYXRpb24ueG1sIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmF1dGhlbnRpY2F0aW9uWE1MLnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KHNldHRpbmdzS2V5KTsNCiAgICAgICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJhdXRoZW50aWNhdGlvbi5hcGkiOg0KICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MuYXV0aGVudGljYXRpb25BUEkudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goc2V0dGluZ3NLZXkpOw0KICAgICAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImZpbGVzLnVwZGF0ZSI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5maWxlc1VwZGF0ZS50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChzZXR0aW5nc0tleSk7DQogICAgICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGE7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiY2FjaGUuaW1hZ2VzIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmNhY2hlSW1hZ2VzLnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KHNldHRpbmdzS2V5KTsNCiAgICAgICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ4ZXBnLnJlcGxhY2UubWlzc2luZy5pbWFnZXMiOg0KICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MucmVwbGFjZUVtcHR5SW1hZ2VzLnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KHNldHRpbmdzS2V5KTsNCiAgICAgICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJzdG9yZUJ1ZmZlckluUkFNIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLnN0b3JlQnVmZmVySW5SQU0udGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goc2V0dGluZ3NLZXkpOw0KICAgICAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInh0ZXZlQXV0b1VwZGF0ZSI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy54dGV2ZUF1dG9VcGRhdGUudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goc2V0dGluZ3NLZXkpOw0KICAgICAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImFwaSI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5hcGkudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goc2V0dGluZ3NLZXkpOw0KICAgICAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIC8vIFNlbGVjdA0KICAgICAgICAgICAgY2FzZSAiaG9zdElQIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmhvc3RJUC50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIHRleHQgPSBTRVJWRVJbImlwQWRkcmVzc2VzVjRIb3N0Il07DQogICAgICAgICAgICAgICAgdmFyIHZhbHVlcyA9IFNFUlZFUlsiaXBBZGRyZXNzZXNWNEhvc3QiXTsNCiAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCBkYXRhLCBzZXR0aW5nc0tleSk7DQogICAgICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKHNlbGVjdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ0dW5lciI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy50dW5lci50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIHRleHQgPSBuZXcgQXJyYXkoKTsNCiAgICAgICAgICAgICAgICB2YXIgdmFsdWVzID0gbmV3IEFycmF5KCk7DQogICAgICAgICAgICAgICAgZm9yICh2YXIgaSA9IDE7IGkgPD0gMTAwOyBpKyspIHsNCiAgICAgICAgICAgICAgICAgICAgdGV4dC5wdXNoKGkpOw0KICAgICAgICAgICAgICAgICAgICB2YWx1ZXMucHVzaChpKTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgdmFyIHNlbGVjdCA9IGNvbnRlbnQuY3JlYXRlU2VsZWN0KHRleHQsIHZhbHVlcywgZGF0YSwgc2V0dGluZ3NLZXkpOw0KICAgICAgICAgICAgICAgIHNlbGVjdC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChzZWxlY3QpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiZXBnU291cmNlIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmVwZ1NvdXJjZS50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIHRleHQgPSBbIlBNUyIsICJYRVBHIl07DQogICAgICAgICAgICAgICAgdmFyIHZhbHVlcyA9IFsiUE1TIiwgIlhFUEciXTsNCiAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCBkYXRhLCBzZXR0aW5nc0tleSk7DQogICAgICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKHNlbGVjdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJiYWNrdXAua2VlcCI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5iYWNrdXBLZWVwLnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgdGV4dCA9IFsiNSIsICIxMCIsICIyMCIsICIzMCIsICI0MCIsICI1MCJdOw0KICAgICAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBbIjUiLCAiMTAiLCAiMjAiLCAiMzAiLCAiNDAiLCAiNTAiXTsNCiAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCBkYXRhLCBzZXR0aW5nc0tleSk7DQogICAgICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKHNlbGVjdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJidWZmZXIuc2l6ZS5rYiI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5idWZmZXJTaXplLnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgdGV4dCA9IFsiMC41IE1CIiwgIjEgTUIiLCAiMiBNQiIsICIzIE1CIiwgIjQgTUIiLCAiNSBNQiIsICI2IE1CIiwgIjcgTUIiLCAiOCBNQiJdOw0KICAgICAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBbIjUxMiIsICIxMDI0IiwgIjIwNDgiLCAiMzA3MiIsICI0MDk2IiwgIjUxMjAiLCAiNjE0NCIsICI3MTY4IiwgIjgxOTIiXTsNCiAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCBkYXRhLCBzZXR0aW5nc0tleSk7DQogICAgICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKHNlbGVjdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJidWZmZXIiOg0KICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3Muc3RyZWFtQnVmZmVyaW5nLnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgdGV4dCA9IFsie3suc2V0dGluZ3Muc3RyZWFtQnVmZmVyaW5nLmluZm9fZmFsc2V9fSIsICJ4VGVWZTogKHt7LnNldHRpbmdzLnN0cmVhbUJ1ZmZlcmluZy5pbmZvX3h0ZXZlfX0pIiwgIkZGbXBlZzogKHt7LnNldHRpbmdzLnN0cmVhbUJ1ZmZlcmluZy5pbmZvX2ZmbXBlZ319KSIsICJWTEM6ICh7ey5zZXR0aW5ncy5zdHJlYW1CdWZmZXJpbmcuaW5mb192bGN9fSkiXTsNCiAgICAgICAgICAgICAgICB2YXIgdmFsdWVzID0gWyItIiwgInh0ZXZlIiwgImZmbXBlZyIsICJ2bGMiXTsNCiAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCBkYXRhLCBzZXR0aW5nc0tleSk7DQogICAgICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKHNlbGVjdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ1ZHB4eSI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy51ZHB4eS50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsICJ1ZHB4eSIsIGRhdGEpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3suc2V0dGluZ3MudWRweHkucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgfQ0KICAgICAgICByZXR1cm4gc2V0dGluZzsNCiAgICB9DQogICAgY3JlYXRlRGVzY3JpcHRpb24oc2V0dGluZ3NLZXkpIHsNCiAgICAgICAgdmFyIGRlc2NyaXB0aW9uID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVFIiKTsNCiAgICAgICAgdmFyIHRleHQ7DQogICAgICAgIHN3aXRjaCAoc2V0dGluZ3NLZXkpIHsNCiAgICAgICAgICAgIGNhc2UgInRsc01vZGUiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MudGxzTW9kZS5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImF1dGhlbnRpY2F0aW9uLndlYiI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5hdXRoZW50aWNhdGlvbldFQi5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImF1dGhlbnRpY2F0aW9uLm0zdSI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5hdXRoZW50aWNhdGlvbk0zVS5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImF1dGhlbnRpY2F0aW9uLnBtcyI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5hdXRoZW50aWNhdGlvblBNUy5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImF1dGhlbnRpY2F0aW9uLnhtbCI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5hdXRoZW50aWNhdGlvblhNTC5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImF1dGhlbnRpY2F0aW9uLmFwaSI6DQogICAgICAgICAgICAgICAgaWYgKFNFUlZFUlsic2V0dGluZ3MiXVsiYXV0aGVudGljYXRpb24ud2ViIl0gPT0gdHJ1ZSkgew0KICAgICAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLmF1dGhlbnRpY2F0aW9uQVBJLmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInh0ZXZlQXV0b1VwZGF0ZSI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy54dGV2ZUF1dG9VcGRhdGUuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJiYWNrdXAua2VlcCI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5iYWNrdXBLZWVwLmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiYmFja3VwLnBhdGgiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MuYmFja3VwUGF0aC5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInRlbXAucGF0aCI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy50ZW1wUGF0aC5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImJ1ZmZlciI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5zdHJlYW1CdWZmZXJpbmcuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJidWZmZXIuc2l6ZS5rYiI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5idWZmZXJTaXplLmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAic3RvcmVCdWZmZXJJblJBTSI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5zdG9yZUJ1ZmZlckluUkFNLmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiYnVmZmVyLnRpbWVvdXQiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MuYnVmZmVyVGltZW91dC5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInVzZXIuYWdlbnQiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MudXNlckFnZW50LmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiZmZtcGVnLnBhdGgiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MuZmZtcGVnUGF0aC5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImZmbXBlZy5vcHRpb25zIjoNCiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLmZmbXBlZ09wdGlvbnMuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ2bGMucGF0aCI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy52bGNQYXRoLmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAidmxjLm9wdGlvbnMiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MudmxjT3B0aW9ucy5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImVwZ1NvdXJjZSI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5lcGdTb3VyY2UuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJob3N0SVAiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MuaG9zdElQLmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAidHVuZXIiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MudHVuZXIuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ1cGRhdGUiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MudXBkYXRlLmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiYXBpIjoNCiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLmFwaS5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImZpbGVzLnVwZGF0ZSI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5maWxlc1VwZGF0ZS5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImNhY2hlLmltYWdlcyI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5jYWNoZUltYWdlcy5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInhlcGcucmVwbGFjZS5taXNzaW5nLmltYWdlcyI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5yZXBsYWNlRW1wdHlJbWFnZXMuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ1ZHB4eSI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy51ZHB4eS5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICAgICAgdGV4dCA9ICIiOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICB9DQogICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gIiI7DQogICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgdmFyIHByZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlBSRSIpOw0KICAgICAgICBwcmUuaW5uZXJIVE1MID0gdGV4dDsNCiAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChwcmUpOw0KICAgICAgICBkZXNjcmlwdGlvbi5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICBkZXNjcmlwdGlvbi5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgcmV0dXJuIGRlc2NyaXB0aW9uOw0KICAgIH0NCn0NCmNsYXNzIFNldHRpbmdzQ2F0ZWdvcnlJdGVtIGV4dGVuZHMgU2V0dGluZ3NDYXRlZ29yeSB7DQogICAgY29uc3RydWN0b3IoaGVhZGxpbmUsIHNldHRpbmdzS2V5cykgew0KICAgICAgICBzdXBlcigpOw0KICAgICAgICB0aGlzLmhlYWRsaW5lID0gaGVhZGxpbmU7DQogICAgICAgIHRoaXMuc2V0dGluZ3NLZXlzID0gc2V0dGluZ3NLZXlzOw0KICAgIH0NCiAgICBjcmVhdGVDYXRlZ29yeSgpIHsNCiAgICAgICAgdmFyIGhlYWRsaW5lID0gdGhpcy5jcmVhdGVDYXRlZ29yeUhlYWRsaW5lKHRoaXMuaGVhZGxpbmUpOw0KICAgICAgICB2YXIgc2V0dGluZ3NLZXlzID0gdGhpcy5zZXR0aW5nc0tleXM7DQogICAgICAgIHZhciBkb2MgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCh0aGlzLkRvY3VtZW50SUQpOw0KICAgICAgICBkb2MuYXBwZW5kQ2hpbGQoaGVhZGxpbmUpOw0KICAgICAgICAvLyBDcmVhdGUgYSB0YWJsZSBmb3IgdGhlIGNhdGVnb3J5DQogICAgICAgIHZhciB0YWJsZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlRBQkxFIik7DQogICAgICAgIHZhciBrZXlzID0gc2V0dGluZ3NLZXlzLnNwbGl0KCIsIik7DQogICAgICAgIGtleXMuZm9yRWFjaChzZXR0aW5nc0tleSA9PiB7DQogICAgICAgICAgICBzd2l0Y2ggKHNldHRpbmdzS2V5KSB7DQogICAgICAgICAgICAgICAgY2FzZSAiYXV0aGVudGljYXRpb24ucG1zIjoNCiAgICAgICAgICAgICAgICBjYXNlICJhdXRoZW50aWNhdGlvbi5tM3UiOg0KICAgICAgICAgICAgICAgIGNhc2UgImF1dGhlbnRpY2F0aW9uLnhtbCI6DQogICAgICAgICAgICAgICAgY2FzZSAiYXV0aGVudGljYXRpb24uYXBpIjoNCiAgICAgICAgICAgICAgICAgICAgaWYgKFNFUlZFUlsic2V0dGluZ3MiXVsiYXV0aGVudGljYXRpb24ud2ViIl0gPT0gZmFsc2UpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgICAgICAgICAgdmFyIGl0ZW0gPSB0aGlzLmNyZWF0ZVNldHRpbmdzKHNldHRpbmdzS2V5KTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGRlc2NyaXB0aW9uID0gdGhpcy5jcmVhdGVEZXNjcmlwdGlvbihzZXR0aW5nc0tleSk7DQogICAgICAgICAgICAgICAgICAgIHRhYmxlLmFwcGVuZENoaWxkKGl0ZW0pOw0KICAgICAgICAgICAgICAgICAgICB0YWJsZS5hcHBlbmRDaGlsZChkZXNjcmlwdGlvbik7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9KTsNCiAgICAgICAgZG9jLmFwcGVuZENoaWxkKHRhYmxlKTsNCiAgICAgICAgZG9jLmFwcGVuZENoaWxkKHRoaXMuY3JlYXRlSFIoKSk7DQogICAgfQ0KfQ0KZnVuY3Rpb24gc2hvd1NldHRpbmdzKCkgew0KICAgIGNvbnNvbGUubG9nKCJTRVRUSU5HUyIpOw0KICAgIGZvciAobGV0IGkgPSAwOyBpIDwgc2V0dGluZ3NDYXRlZ29yeS5sZW5ndGg7IGkrKykgew0KICAgICAgICBzZXR0aW5nc0NhdGVnb3J5W2ldLmNyZWF0ZUNhdGVnb3J5KCk7DQogICAgfQ0KfQ0KZnVuY3Rpb24gc2F2ZVNldHRpbmdzKCkgew0KICAgIGNvbnNvbGUubG9nKCJTYXZlIFNldHRpbmdzIik7DQogICAgdmFyIGNtZCA9ICJzYXZlU2V0dGluZ3MiOw0KICAgIHZhciBkaXYgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29udGVudF9zZXR0aW5ncyIpOw0KICAgIHZhciBzZXR0aW5ncyA9IGRpdi5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCJjaGFuZ2VkIik7DQogICAgdmFyIG5ld1NldHRpbmdzID0gbmV3IE9iamVjdCgpOw0KICAgIGZvciAobGV0IGkgPSAwOyBpIDwgc2V0dGluZ3MubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgdmFyIG5hbWU7DQogICAgICAgIHZhciB2YWx1ZTsNCiAgICAgICAgc3dpdGNoIChzZXR0aW5nc1tpXS50YWdOYW1lKSB7DQogICAgICAgICAgICBjYXNlICJJTlBVVCI6DQogICAgICAgICAgICAgICAgc3dpdGNoIChzZXR0aW5nc1tpXS50eXBlKSB7DQogICAgICAgICAgICAgICAgICAgIGNhc2UgImNoZWNrYm94IjoNCiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWUgPSBzZXR0aW5nc1tpXS5uYW1lOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSBzZXR0aW5nc1tpXS5jaGVja2VkOw0KICAgICAgICAgICAgICAgICAgICAgICAgbmV3U2V0dGluZ3NbbmFtZV0gPSB2YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgICAgICBjYXNlICJ0ZXh0IjoNCiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWUgPSBzZXR0aW5nc1tpXS5uYW1lOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSBzZXR0aW5nc1tpXS52YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHN3aXRjaCAobmFtZSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgInVwZGF0ZSI6DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlID0gdmFsdWUuc3BsaXQoIiwiKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSB2YWx1ZS5maWx0ZXIoZnVuY3Rpb24gKGUpIHsgcmV0dXJuIGU7IH0pOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYXNlICJidWZmZXIudGltZW91dCI6DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlID0gcGFyc2VGbG9hdCh2YWx1ZSk7DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICBuZXdTZXR0aW5nc1tuYW1lXSA9IHZhbHVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiU0VMRUNUIjoNCiAgICAgICAgICAgICAgICBuYW1lID0gc2V0dGluZ3NbaV0ubmFtZTsNCiAgICAgICAgICAgICAgICB2YWx1ZSA9IHNldHRpbmdzW2ldLnZhbHVlOw0KICAgICAgICAgICAgICAgIC8vIElmIHRoZSB2YWx1ZSBpcyBhIG51bWJlciwgc3RvcmUgaXQgYXMgYSBudW1iZXINCiAgICAgICAgICAgICAgICBpZiAoaXNOYU4odmFsdWUpKSB7DQogICAgICAgICAgICAgICAgICAgIG5ld1NldHRpbmdzW25hbWVdID0gdmFsdWU7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgICAgICAgICBuZXdTZXR0aW5nc1tuYW1lXSA9IHBhcnNlSW50KHZhbHVlKTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIH0NCiAgICB9DQogICAgdmFyIGRhdGEgPSBuZXcgT2JqZWN0KCk7DQogICAgZGF0YVsic2V0dGluZ3MiXSA9IG5ld1NldHRpbmdzOw0KICAgIHZhciBzZXJ2ZXIgPSBuZXcgU2VydmVyKGNtZCk7DQogICAgc2VydmVyLnJlcXVlc3QoZGF0YSk7DQp9DQo=" + webUI["html/lang/en.json"] = "ew0KICAibWFpbk1lbnUiOg0KICB7DQogICAgIml0ZW0iOg0KICAgIHsNCiAgICAgICJwbGF5bGlzdCI6ICJQbGF5bGlzdCIsDQogICAgICAicG1zSUQiOiAiUE1TIElEIiwNCiAgICAgICJmaWx0ZXIiOiAiRmlsdGVyIiwNCiAgICAgICJ4bWx0diI6ICJYTUxUViIsDQogICAgICAibWFwcGluZyI6ICJNYXBwaW5nIiwNCiAgICAgICJ1c2VycyI6ICJVc2VycyIsDQogICAgICAic2V0dGluZ3MiOiAiU2V0dGluZ3MiLA0KICAgICAgImxvZyI6ICJMb2ciLA0KICAgICAgImxvZ291dCI6ICJMb2dvdXQiDQogICAgfSwNCiAgICAiaGVhZGxpbmUiOg0KICAgIHsNCiAgICAgICJwbGF5bGlzdCI6ICJMb2NhbCBvciByZW1vdGUgcGxheWxpc3RzIiwNCiAgICAgICJmaWx0ZXIiOiAiRmlsdGVyIHBsYXlsaXN0IiwNCiAgICAgICJ4bWx0diI6ICJMb2NhbCBvciByZW1vdGUgWE1MVFYgZmlsZXMiLA0KICAgICAgIm1hcHBpbmciOiAiTWFwIHBsYXlsaXN0IGNoYW5uZWxzIHRvIEVQRyBjaGFubmVscyIsDQogICAgICAidXNlcnMiOiAiVXNlciBtYW5hZ2VtZW50IiwNCiAgICAgICJzZXR0aW5ncyI6ICJTZXR0aW5ncyIsDQogICAgICAibG9nIjogIkxvZyIsDQogICAgICAibG9nb3V0IjogIkxvZ291dCINCiAgICB9DQogIH0sDQogICJjb25maXJtIjoNCiAgew0KICAgICJyZXN0b3JlIjogIkFsbCBkYXRhIHdpbGwgYmUgcmVwbGFjZWQgd2l0aCB0aG9zZSBmcm9tIHRoZSBiYWNrdXAuIFNob3VsZCB0aGUgZmlsZXMgYmUgcmVzdG9yZWQ/Ig0KICB9LA0KICAiYWxlcnQiOg0KICB7DQogICAgImZpbGVMb2FkaW5nRXJyb3IiOiAiRmlsZSBjb3VsZG4ndCBiZSBsb2FkZWQiLA0KICAgICJpbnZhbGlkQ2hhbm5lbE51bWJlciI6ICJJbnZhbGlkIGNoYW5uZWwgbnVtYmVyIiwNCiAgICAibWlzc2luZ0lucHV0IjogIk1pc3NpbmcgaW5wdXQiDQogIH0sDQogICJidXR0b24iOg0KICB7DQogICAgImJhY2siOiAiQmFjayIsDQogICAgImJhY2t1cCI6ICJCYWNrdXAiLA0KICAgICJidWxrRWRpdCI6ICJCdWxrIEVkaXQiLA0KICAgICJjYW5jZWwiOiAiQ2FuY2VsIiwNCiAgICAiZGVsZXRlIjogIkRlbGV0ZSIsDQogICAgImRvbmUiOiAiRG9uZSIsDQogICAgImxvZ2luIjogIkxvZ2luIiwNCiAgICAibmV3IjogIk5ldyIsDQogICAgIm5leHQiOiAiTmV4dCIsDQogICAgInJlc3RvcmUiOiAiUmVzdG9yZSIsDQogICAgInNhdmUiOiAiU2F2ZSIsDQogICAgInNlYXJjaCI6ICJTZWFyY2giLA0KICAgICJ1cGRhdGUiOiAiVXBkYXRlIiwNCiAgICAiY3JhZXRlQWNjb3VudCI6ICJDcmVhdGUgQWNjb3VudCIsDQogICAgInJlc2V0TG9ncyI6ICJSZXNldCBMb2dzIiwNCiAgICAidXBsb2FkTG9nbyI6ICJVcGxvYWQgTG9nbyINCiAgfSwNCiAgImZpbHRlciI6DQogIHsNCiAgICAidGFibGUiOg0KICAgIHsNCiAgICAgICJzdGFydGluZ0NoYW5uZWwiOiAiU3RhcnRpbmcgQ2guIE5vLiIsDQogICAgICAibmFtZSI6ICJGaWx0ZXIgTmFtZSIsDQogICAgICAidHlwZSI6ICJGaWx0ZXIgVHlwZSIsDQogICAgICAiZmlsdGVyIjogIkZpbHRlciINCiAgICB9LA0KICAgICJjdXN0b20iOiAiQ3VzdG9tIiwNCiAgICAiZ3JvdXAiOiAiTTNVIEdyb3VwIiwNCiAgICAibmFtZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIkZpbHRlciBOYW1lIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJGaWx0ZXIgbmFtZSIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgImRlc2NyaXB0aW9uIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiRGVzY3JpcHRpb24iLA0KICAgICAgInBsYWNlaG9sZGVyIjogIkRlc2NyaXB0aW9uIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAidHlwZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIlR5cGUiLA0KICAgICAgImdyb3VwVGl0bGUiOiAiR3JvdXAgVGl0bGUiLA0KICAgICAgImN1c3RvbUZpbHRlciI6ICJDdXN0b20gRmlsdGVyIg0KICAgIH0sDQogICAgImNhc2VTZW5zaXRpdmUiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJDYXNlIFNlbnNpdGl2ZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAiZmlsdGVyUnVsZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIkZpbHRlciBSdWxlIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJTcG9ydCB7SER9ICF7RVMsSVR9IiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAiZmlsdGVyR3JvdXAiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJHcm91cCBUaXRsZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJTZWxlY3QgYSBNM1UgZ3JvdXAuIChDb3VudGVyKTxicj5DaGFuZ2luZyB0aGUgZ3JvdXAgdGl0bGUgaW4gdGhlIE0zVSBpbnZhbGlkYXRlcyB0aGUgZmlsdGVyLiINCiAgICB9LA0KICAgICJpbmNsdWRlIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiSW5jbHVkZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiRkhELFVIRCIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiQ2hhbm5lbCBuYW1lIG11c3QgaW5jbHVkZS48YnI+KENvbW1hIHNlcGFyYXRlZCkgQ29tbWEgbWVhbnMgb3IiDQogICAgfSwNCiAgICAiZXhjbHVkZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIkV4Y2x1ZGUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIkVTLElUIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJDaGFubmVsIG5hbWUgbXVzdCBub3QgY29udGFpbi48YnI+KENvbW1hIHNlcGFyYXRlZCkgQ29tbWEgbWVhbnMgb3IiDQogICAgfSwNCiAgICAicHJlc2VydmVNYXBwaW5nIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiUHJlc2VydmUgRXhpc3RpbmcgTTNVPGJyPkNoYW5uZWwgTnVtYmVycyIsDQogICAgICAicGFsY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJQcmVzZXJ2ZSBleGlzdGluZyBNM1UgcGxheWxpc3QgY2hhbm5lbCBudW1iZXJzPyINCiAgICB9LA0KICAgICJzdGFydGluZ0NoYW5uZWwiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJTdGFydGluZyBDaGFubmVsIE51bWJlciIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAiZGVmYXVsdE1pc3NpbmdFUEciOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJGaWxsIE1pc3NpbmcgRVBHIERhdGEiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiV2hlbiB0aGVyZSBpcyBubyBtYXRjaGluZyBFUEcgZGF0YSBmb3IgY2hhbm5lbCwgPGJyPmF1dG9maWxsIHdpdGggeFRlVmUgZHVtbXkgRVBHIGRhdGE/Ig0KICAgIH0NCg0KICB9LA0KICAicGxheWxpc3QiOg0KICB7DQogICAgInRhYmxlIjoNCiAgICB7DQogICAgICAicGxheWxpc3QiOiAiUGxheWxpc3QiLA0KICAgICAgInR1bmVyIjogIlR1bmVyIiwNCiAgICAgICJsYXN0VXBkYXRlIjogIkxhc3QgVXBkYXRlIiwNCiAgICAgICJhdmFpbGFiaWxpdHkiOiAiQXZhaWxhYmlsaXR5IiwNCiAgICAgICJ0eXBlIjogIlR5cGUiLA0KICAgICAgInN0cmVhbXMiOiAiU3RyZWFtcyIsDQogICAgICAiZ3JvdXBUaXRsZSI6ICJncm91cC10aXRsZSIsDQogICAgICAidHZnSUQiOiAidHZnLWlkIiwNCiAgICAgICJ1bmlxdWVJRCI6ICJVbmlxdWUgSUQiDQogICAgfSwNCiAgICAicGxheWxpc3RUeXBlIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiUGxheWxpc3QgdHlwZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAidHlwZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIlR5cGUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgIm5hbWUiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJOYW1lIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJQbGF5bGlzdCBuYW1lIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAiZGVzY3JpcHRpb24iOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJEZXNjcmlwdGlvbiIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiRGVzY3JpcHRpb24iLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJmaWxlTTNVIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiTTNVIEZpbGUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIkZpbGUgcGF0aCBvciBVUkwgb2YgdGhlIE0zVSIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgImZpbGVIREhSIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiSERIb21lUnVuIElQIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJJUCBhZGRyZXNzIGFuZCBwb3J0ICgxOTIuMTY4LjEuMTA6NTAwNCkiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJ0dW5lciI6DQogICAgew0KICAgICAgInRpdGxlIjogIlR1bmVyIC8gU3RyZWFtcyIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJOdW1iZXIgb2YgcGFyYWxsZWwgY29ubmVjdGlvbnMgdGhhdCBjYW4gYmUgZXN0YWJsaXNoZWQgdG8gdGhlIHByb3ZpZGVyLiA8YnI+T25seSBhdmFpbGFibGUgd2l0aCBhY3RpdmF0ZWQgYnVmZmVyLjxicj5OZXcgc2V0dGluZ3Mgd2lsbCBvbmx5IGJlIGFwcGxpZWQgYWZ0ZXIgcXVpdHRpbmcgYWxsIHN0cmVhbXMuIg0KICAgIH0NCiAgfSwNCiAgInhtbHR2IjoNCiAgew0KICAgICJ0YWJsZSI6DQogICAgew0KICAgICAgImd1aWRlIjogIkd1aWRlIiwNCiAgICAgICJsYXN0VXBkYXRlIjogIkxhc3QgVXBkYXRlIiwNCiAgICAgICJhdmFpbGFiaWxpdHkiOiAiQXZhaWxhYmlsaXR5IiwNCiAgICAgICJjaGFubmVscyI6ICJDaGFubmVscyIsDQogICAgICAicHJvZ3JhbXMiOiAiUHJvZ3JhbXMiDQogICAgfSwNCiAgICAibmFtZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIk5hbWUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIkd1aWRlIG5hbWUiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJkZXNjcmlwdGlvbiI6DQogICAgew0KICAgICAgInRpdGxlIjogIkRlc2NyaXB0aW9uIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJEZXNjcmlwdGlvbiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgImZpbGVYTUxUViI6DQogICAgew0KICAgICAgInRpdGxlIjogIlhNTFRWIEZpbGUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIkZpbGUgcGF0aCBvciBVUkwgb2YgdGhlIFhNTFRWIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfQ0KICB9LA0KICAibWFwcGluZyI6DQogIHsNCiAgICAidGFibGUiOg0KICAgIHsNCiAgICAgICJjaE5vIjogIkNoLiBOby4iLA0KICAgICAgImxvZ28iOiAiTG9nbyIsDQogICAgICAiY2hhbm5lbE5hbWUiOiAiQ2hhbm5lbCBOYW1lIiwNCiAgICAgICJwbGF5bGlzdCI6ICJQbGF5bGlzdCIsDQogICAgICAiZ3JvdXBUaXRsZSI6ICJHcm91cCBUaXRsZSIsDQogICAgICAieG1sdHZGaWxlIjogIlhNTFRWIEZpbGUiLA0KICAgICAgInhtbHR2SUQiOiAiWE1MVFYgSUQiLA0KICAgICAgInRpbWVzaGlmdCI6ICJUaW1lc2hpZnQiDQogICAgfSwNCiAgICAiYWN0aXZlIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiQWN0aXZlIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJjaGFubmVsTmFtZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIkNoYW5uZWwgTmFtZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAiZGVzY3JpcHRpb24iOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJDaGFubmVsIERlc2NyaXB0aW9uIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJVc2VkIGJ5IHRoZSBEdW1teSBhcyBhbiBYTUwgZGVzY3JpcHRpb24iLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJ1cGRhdGVDaGFubmVsTmFtZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIlVwZGF0ZSBDaGFubmVsIE5hbWUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgInVwZGF0ZUNoYW5uZWxHcm91cCI6DQogICAgew0KICAgICAgInRpdGxlIjogIlVwZGF0ZSBDaGFubmVsIEdyb3VwIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIklmIGNoZWNrZWQsIHVzZSBncm91cCBmcm9tIHRoZSBkYXRhYmFzZSINCiAgICB9LA0KICAgICJjaGFubmVsTG9nbyI6DQogICAgew0KICAgICAgInRpdGxlIjogIkxvZ28gVVJMIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJ1cGRhdGVDaGFubmVsTG9nbyI6DQogICAgew0KICAgICAgInRpdGxlIjogIlVwZGF0ZSBDaGFubmVsIExvZ28iLA0KICAgICAgInBsYWNlaG9sZGVyIjogIiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgImVwZ0NhdGVnb3J5IjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiRVBHIENhdGVnb3J5IiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJtM3VHcm91cFRpdGxlIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiR3JvdXAgVGl0bGUgKHh0ZXZlLm0zdSkiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgInhtbHR2RmlsZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIlhNTFRWIEZpbGUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgInhtbHR2Q2hhbm5lbCI6DQogICAgew0KICAgICAgInRpdGxlIjogIlhNTFRWIENoYW5uZWwiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgInRpbWVzaGlmdCI6DQogICAgew0KICAgICAgInRpdGxlIjogIlRpbWVzaGlmdCIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiMCIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0NCiAgfSwNCiAgInVzZXJzIjoNCiAgew0KICAgICJ0YWJsZSI6DQogICAgew0KICAgICAgInVzZXJuYW1lIjogIlVzZXJuYW1lIiwNCiAgICAgICJwYXNzd29yZCI6ICJQYXNzd29yZCIsDQogICAgICAid2ViIjogIldFQiIsDQogICAgICAicG1zIjogIlBNUyIsDQogICAgICAibTN1IjogIk0zVSIsDQogICAgICAieG1sIjogIlhNTCIsDQogICAgICAiYXBpIjogIkFQSSINCiAgICB9LA0KICAgICJ1c2VybmFtZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIlVzZXJuYW1lIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJVc2VybmFtZSIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgInBhc3N3b3JkIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiUGFzc3dvcmQiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIlBhc3N3b3JkIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAiY29uZmlybSI6DQogICAgew0KICAgICAgInRpdGxlIjogIkNvbmZpcm0iLA0KICAgICAgInBsYWNlaG9sZGVyIjogIlBhc3N3b3JkIGNvbmZpcm0iLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJ3ZWIiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJXZWIgQWNjZXNzIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJwbXMiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJQTVMgQWNjZXNzIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJtM3UiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJNM1UgQWNjZXNzIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJ4bWwiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJYTUwgQWNjZXNzIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJhcGkiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJBUEkgQWNjZXNzIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9DQogIH0sDQogICJzZXR0aW5ncyI6DQogIHsNCiAgICAiY2F0ZWdvcnkiOg0KICAgIHsNCiAgICAgICJnZW5lcmFsIjogIkdlbmVyYWwiLA0KICAgICAgImZpbGVzIjogIkZpbGVzIiwNCiAgICAgICJzdHJlYW1pbmciOiAiU3RyZWFtaW5nIiwNCiAgICAgICJiYWNrdXAiOiAiQmFja3VwIiwNCiAgICAgICJhdXRoZW50aWNhdGlvbiI6ICJBdXRoZW50aWNhdGlvbiINCiAgICB9LA0KICAgICJ1cGRhdGUiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJTY2hlZHVsZSBmb3IgdXBkYXRpbmcgKFBsYXlsaXN0LCBYTUxUViwgQmFja3VwKSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiMDAwMCwxMDAwLDIwMDAiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIlRpbWUgaW4gMjQgaG91ciBmb3JtYXQgKDA4MDAgPSA4OjAwIGFtKS4gTW9yZSB0aW1lcyBjYW4gYmUgZW50ZXJlZCBjb21tYSBzZXBhcmF0ZWQuIExlYXZlIHRoaXMgZmllbGQgZW1wdHkgaWYgbm8gdXBkYXRlcyBhcmUgdG8gYmUgY2FycmllZCBvdXQuIg0KICAgIH0sDQogICAgImFwaSI6DQogICAgew0KICAgICAgInRpdGxlIjogIkFQSSBJbnRlcmZhY2UiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIlZpYSBBUEkgaW50ZXJmYWNlIGl0IGlzIHBvc3NpYmxlIHRvIHNlbmQgY29tbWFuZHMgdG8geFRlVmUuIEFQSSBkb2N1bWVudGF0aW9uIGlzIDxhIGhyZWY9J2h0dHBzOi8vZ2l0aHViLmNvbS94dGV2ZS1wcm9qZWN0L3hUZVZlLURvY3VtZW50YXRpb24vYmxvYi9tYXN0ZXIvZW4vY29uZmlndXJhdGlvbi5tZCNhcGknPmhlcmU8L2E+Ig0KICAgIH0sDQogICAgImVwZ1NvdXJjZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIkVQRyBTb3VyY2UiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIlBNUzo8YnI+LSBVc2UgRVBHIGRhdGEgZnJvbSBQbGV4IG9yIEVtYnkgPGJyPjxicj5YRVBHOjxicj4tIFVzZSBvZiBvbmUgb3IgbW9yZSBYTUxUViBmaWxlczxicj4tIENoYW5uZWwgbWFuYWdlbWVudDxicj4tIE0zVSAvIFhNTFRWIGV4cG9ydCAoSFRUUCBsaW5rIGZvciBJUFRWIGFwcHMpIg0KICAgIH0sDQogICAgInR1bmVyIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiTnVtYmVyIG9mIFR1bmVycyIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiTnVtYmVyIG9mIHBhcmFsbGVsIGNvbm5lY3Rpb25zIHRoYXQgY2FuIGJlIGVzdGFibGlzaGVkIHRvIHRoZSBwcm92aWRlci48YnI+QXZhaWxhYmxlIGZvcjogUGxleCwgRW1ieSAoSERIUiksIE0zVSAod2l0aCBhY3RpdmUgYnVmZmVyKS48YnI+QWZ0ZXIgYSBjaGFuZ2UsIHhUZVZlIG11c3QgYmUgZGVsZXRlIGluIHRoZSBQbGV4IC8gRW1ieSBEVlIgc2V0dGluZ3MgYW5kIHNldCB1cCBhZ2Fpbi4iDQogICAgfSwNCiAgICAiaG9zdElQIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiSG9zdCBJUCIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiSVAgYWRkcmVzcyB4VGVWZSB3aWxsIHVzZSB0byBmb3JtIE0zVSBhbmQgWE1MVFYgZmlsZXMiDQogICAgfSwNCiAgICAidGxzTW9kZSI6IHsNCiAgICAgICJ0aXRsZSI6ICJUTFMgKEhUVFBTKSBtb2RlIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJDaGFuZ2VzIHdlYiBzZXJ2ZXIgcHJvdG9jb2wgdG8gSFRUUFMuPGJyPkZvciBkZXRhaWxzLCBzZWUgPGE+aHR0cHM6Ly9naXRodWIuY29tL1NDUDAwMi94VGVWZSN0bHMtbW9kZTwvYT4iDQogICAgfSwNCiAgICAiZmlsZXNVcGRhdGUiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJVcGRhdGVzIGFsbCBmaWxlcyBhdCBzdGFydHVwIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJVcGRhdGVzIGFsbCBwbGF5bGlzdHMsIHR1bmVyIGFuZCBYTUxUViBmaWxlcyBhdCBzdGFydHVwLiINCiAgICB9LA0KICAgICJjYWNoZUltYWdlcyI6DQogICAgew0KICAgICAgInRpdGxlIjogIkltYWdlIENhY2hpbmciLA0KICAgICAgImRlc2NyaXB0aW9uIjogIkFsbCBpbWFnZXMgZnJvbSB0aGUgWE1MVFYgZmlsZSBhcmUgY2FjaGVkLCBhbGxvd2luZyBmYXN0ZXIgcmVuZGVyaW5nIG9mIHRoZSBncmlkIGluIHRoZSBjbGllbnQuPGJyPkRvd25sb2FkaW5nIHRoZSBpbWFnZXMgbWF5IHRha2UgYSB3aGlsZSBhbmQgd2lsbCBiZSBkb25lIGluIHRoZSBiYWNrZ3JvdW5kLiINCiAgICB9LA0KICAgICJyZXBsYWNlRW1wdHlJbWFnZXMiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJSZXBsYWNlIG1pc3NpbmcgcHJvZ3JhbSBpbWFnZXMiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIklmIHRoZSBwb3N0ZXIgaW4gdGhlIFhNTFRWIHByb2dyYW0gaXMgbWlzc2luZywgdGhlIGNoYW5uZWwgbG9nbyB3aWxsIGJlIHVzZWQuIg0KICAgIH0sDQogICAgInh0ZXZlQXV0b1VwZGF0ZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIkF1dG9tYXRpYyB1cGRhdGUgb2YgeFRlVmUiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIklmIGEgbmV3IHZlcnNpb24gb2YgeFRlVmUgaXMgYXZhaWxhYmxlLCBpdCB3aWxsIGJlIGF1dG9tYXRpY2FsbHkgaW5zdGFsbGVkLiBUaGUgdXBkYXRlcyBhcmUgZG93bmxvYWRlZCBmcm9tIEdpdEh1Yi4iDQogICAgfSwNCiAgICAic3RyZWFtQnVmZmVyaW5nIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiU3RyZWFtIEJ1ZmZlciIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiRnVuY3Rpb25zIG9mIHRoZSBidWZmZXI6PGJyPi0gVGhlIHN0cmVhbSBpcyBwYXNzZWQgZnJvbSB4VGVWZSwgRkZtcGVnIG9yIFZMQyB0byBQbGV4LCBFbWJ5IG9yIE0zVSBQbGF5ZXI8YnI+LSBTbWFsbCBqZXJraW5nIG9mIHRoZSBzdHJlYW1zIGNhbiBiZSBjb21wZW5zYXRlZDxicj4tIEhMUyAvIE0zVTggc3VwcG9ydDxicj4tIFJUUCAvIFJUUFMgc3VwcG9ydCAob25seSBGRm1wZWcgb3IgVkxDKTxicj4tIFJlLXN0cmVhbWluZzxicj4tIFNlcGFyYXRlIHR1bmVyIGxpbWl0IGZvciBlYWNoIHBsYXlsaXN0IiwNCiAgICAgICJpbmZvX2ZhbHNlIjogIk5vIEJ1ZmZlciAoQ2xpZW50IGNvbm5lY3RzIHRvIHRoZSBzdHJlYW1pbmcgc2VydmVyKSIsDQogICAgICAiaW5mb194dGV2ZSI6ICJ4VGVWZSBjb25uZWN0cyB0byB0aGUgc3RyZWFtaW5nIHNlcnZlciIsDQogICAgICAiaW5mb19mZm1wZWciOiAiRkZtcGVnIGNvbm5lY3RzIHRvIHRoZSBzdHJlYW1pbmcgc2VydmVyIiwNCiAgICAgICJpbmZvX3ZsYyI6ICJWTEMgY29ubmVjdHMgdG8gdGhlIHN0cmVhbWluZyBzZXJ2ZXIiDQoNCiAgICB9LA0KICAgICJ1ZHB4eSI6DQogICAgew0KICAgICAgInRpdGxlIjogIlVEUHh5IGFkZHJlc3MiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIlRoZSBhZGRyZXNzIG9mIHlvdXIgVURQeHkgc2VydmVyLiBJZiBzZXQsIGFuZCB0aGUgY2hhbm5lbCBVUkxzIGluIHRoZSBtM3UgaXMgbXVsdGljYXN0LCB4VGVWZSB3aWxsIHJld3JpdGUgaXQgc28gdGhhdCBpdCBpcyBhY2Nlc3NlZCB2aWEgdGhlIFVEUHh5IHNlcnZpY2UuIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJob3N0OnBvcnQiDQogICAgfSwNCiAgICAiZmZtcGVnUGF0aCI6DQogICAgew0KICAgICAgInRpdGxlIjogIkZGbXBlZyBCaW5hcnkgUGF0aCIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiUGF0aCB0byBGRm1wZWcgYmluYXJ5LiIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiL3BhdGgvdG8vZmZtcGVnIg0KICAgIH0sDQogICAgImZmbXBlZ09wdGlvbnMiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJGRm1wZWcgT3B0aW9ucyIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiRkZtcGVnIG9wdGlvbnMuPGJyPk9ubHkgY2hhbmdlIGlmIHlvdSBrbm93IHdoYXQgeW91IGFyZSBkb2luZy48YnI+TGVhdmUgYmxhbmsgdG8gc2V0IGRlZmF1bHQgc2V0dGluZ3MuIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJMZWF2ZSBibGFuayB0byBzZXQgZGVmYXVsdCBzZXR0aW5ncyINCiAgICB9LA0KICAgICJ2bGNQYXRoIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiVkxDIC8gQ1ZMQyBCaW5hcnkgUGF0aCIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiUGF0aCB0byBWTEMgLyBDVkxDIGJpbmFyeS4iLA0KICAgICAgInBsYWNlaG9sZGVyIjogIi9wYXRoL3RvL2N2bGMiDQogICAgfSwNCiAgICAidmxjT3B0aW9ucyI6DQogICAgew0KICAgICAgInRpdGxlIjogIlZMQyAvIENWTEMgT3B0aW9ucyIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiVkxDIC8gQ1ZMQyBvcHRpb25zLjxicj5Pbmx5IGNoYW5nZSBpZiB5b3Uga25vdyB3aGF0IHlvdSBhcmUgZG9pbmcuPGJyPkxlYXZlIGJsYW5rIHRvIHNldCBkZWZhdWx0IHNldHRpbmdzLiIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiTGVhdmUgYmxhbmsgdG8gc2V0IGRlZmF1bHQgc2V0dGluZ3MiDQogICAgfSwNCiAgICAiYnVmZmVyU2l6ZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIkJ1ZmZlciBTaXplIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJCdWZmZXIgc2l6ZSBpbiBNQi48YnI+TTNVODogSWYgdGhlIFRTIHNlZ21lbnQgc21hbGxlciB0aGVuIHRoZSBidWZmZXIgc2l6ZSwgdGhlIGZpbGUgc2l6ZSBvZiB0aGUgc2VnbWVudCBpcyB1c2VkLiINCiAgICB9LA0KICAgICJzdG9yZUJ1ZmZlckluUkFNIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiU3RvcmUgYnVmZmVyIGluIFJBTSIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiSWYgY2hlY2tlZCwgd3JpdGUgYnVmZmVyIHRvIFJBTSBpbnN0ZWFkIG9mIHdyaXRpbmcgdG8gZGlzayINCiAgICB9LA0KICAgICJidWZmZXJUaW1lb3V0IjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiVGltZW91dCBmb3IgbmV3IGNsaWVudCBjb25uZWN0aW9ucyIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiVGhlIHhUZVZlIGJ1ZmZlciB3YWl0cyB1bnRpbCBuZXcgY2xpZW50IGNvbm5lY3Rpb25zIGFyZSBlc3RhYmxpc2hlZC4gSGVscGZ1bCBmb3IgZmFzdCBjaGFubmVsIHN3aXRjaGluZy4gVmFsdWUgaW4gbWlsbGlzZWNvbmRzLiIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiMTAwIg0KICAgIH0sDQogICAgInVzZXJBZ2VudCI6DQogICAgew0KICAgICAgInRpdGxlIjogIlVzZXIgQWdlbnQiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIlVzZXIgQWdlbnQgZm9yIEhUVFAgcmVxdWVzdHMuIEZvciBldmVyeSBIVFRQIGNvbm5lY3Rpb24sIHRoaXMgdmFsdWUgaXMgdXNlZCBmb3IgdGhlIHVzZXIgYWdlbnQuIFNob3VsZCBvbmx5IGJlIGNoYW5nZWQgaWYgeFRlVmUgaXMgYmxvY2tlZC4iLA0KICAgICAgInBsYWNlaG9sZGVyIjogInhUZVZlIg0KICAgIH0sDQogICAgImJhY2t1cFBhdGgiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJMb2NhdGlvbiBmb3IgYXV0b21hdGljIGJhY2t1cHMiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIi9tbnQvZGF0YS9iYWNrdXAveHRldmUvIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJCZWZvcmUgYW55IHVwZGF0ZSBvZiB0aGUgcHJvdmlkZXIgZGF0YSBieSB0aGUgc2NoZWR1bGUsIHhUZVZlIGNyZWF0ZXMgYSBiYWNrdXAuIFRoZSBwYXRoIGZvciB0aGUgYXV0b21hdGljIGJhY2t1cHMgY2FuIGJlIGNoYW5nZWQuIHhUZVZlIHJlcXVpcmVzIHdyaXRlIHBlcm1pc3Npb24gZm9yIHRoaXMgZm9sZGVyLiINCiAgICB9LA0KICAgICJ0ZW1wUGF0aCI6DQogICAgew0KICAgICAgInRpdGxlIjogIkxvY2F0aW9uIGZvciB0aGUgdGVtcG9yYXJ5IGZpbGVzIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIvdG1wL3h0ZXZlLyIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiTG9jYXRpb24gZm9yIHRoZSBidWZmZXIgZmlsZXMuIg0KICAgIH0sDQogICAgImJhY2t1cEtlZXAiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJOdW1iZXIgb2YgYmFja3VwcyB0byBrZWVwIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJOdW1iZXIgb2YgYmFja3VwcyB0byBrZWVwLiBPbGRlciBiYWNrdXBzIGFyZSBhdXRvbWF0aWNhbGx5IGRlbGV0ZWQuIg0KICAgIH0sDQogICAgImF1dGhlbnRpY2F0aW9uV0VCIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiV0VCIEF1dGhlbnRpY2F0aW9uIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJBY2Nlc3MgdG8gdGhlIHdlYiBpbnRlcmZhY2Ugb25seSBwb3NzaWJsZSB3aXRoIGNyZWRlbnRpYWxzLiINCiAgICB9LA0KICAgICJhdXRoZW50aWNhdGlvblBNUyI6DQogICAgew0KICAgICAgInRpdGxlIjogIlBNUyBBdXRoZW50aWNhdGlvbiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiUGxleCByZXF1ZXN0cyBhcmUgb25seSBwb3NzaWJsZSB3aXRoIGF1dGhlbnRpY2F0aW9uLiA8YnI+PGI+V2FybmluZyEhITwvYj4gQWZ0ZXIgYWN0aXZhdGluZyB0aGlzIGZ1bmN0aW9uIHhUZVZlIG11c3QgYmUgZGVsZXRlIGluIHRoZSBQTVMgRFZSIHNldHRpbmdzIGFuZCBzZXQgdXAgYWdhaW4uIg0KICAgIH0sDQogICAgImF1dGhlbnRpY2F0aW9uTTNVIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiTTNVIEF1dGhlbnRpY2F0aW9uIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJEb3dubG9hZGluZyB0aGUgeHRldmUubTN1IGZpbGUgdmlhIGFuIEhUVFAgcmVxdWVzdCBpcyBvbmx5IHBvc3NpYmxlIHdpdGggYXV0aGVudGljYXRpb24uIg0KICAgIH0sDQogICAgImF1dGhlbnRpY2F0aW9uWE1MIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiWE1MIEF1dGhlbnRpY2F0aW9uIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJEb3dubG9hZGluZyB0aGUgeHRldmUueG1sIGZpbGUgdmlhIGFuIEhUVFAgcmVxdWVzdCBpcyBvbmx5IHBvc3NpYmxlIHdpdGggYXV0aGVudGljYXRpb24iDQogICAgfSwNCiAgICAiYXV0aGVudGljYXRpb25BUEkiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJBUEkgQXV0aGVudGljYXRpb24iLA0KICAgICAgImRlc2NyaXB0aW9uIjogIkFjY2VzcyB0byB0aGUgQVBJIGludGVyZmFjZSBpcyBvbmx5IHBvc3NpYmxlIHdpdGggYXV0aGVudGljYXRpb24uIg0KICAgIH0NCiAgfSwNCiAgIndpemFyZCI6DQogIHsNCiAgICAiZXBnU291cmNlIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiRVBHIFNvdXJjZSIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiUE1TOjxicj4tIFVzZSBFUEcgZGF0YSBmcm9tIFBsZXggb3IgRW1ieSA8YnI+PGJyPlhFUEc6PGJyPi0gVXNlIG9mIG9uZSBvciBtb3JlIFhNTFRWIGZpbGVzPGJyPi0gQ2hhbm5lbCBtYW5hZ2VtZW50PGJyPi0gTTNVIC8gWE1MVFYgZXhwb3J0IChIVFRQIGxpbmsgZm9yIElQVFYgYXBwcykiDQogICAgfSwNCiAgICAidHVuZXIiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJOdW1iZXIgb2YgdHVuZXJzIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJOdW1iZXIgb2YgcGFyYWxsZWwgY29ubmVjdGlvbnMgdGhhdCBjYW4gYmUgZXN0YWJsaXNoZWQgdG8gdGhlIHByb3ZpZGVyLjxicj5BdmFpbGFibGUgZm9yOiBQbGV4LCBFbWJ5IChIREhSKSwgTTNVICh3aXRoIGFjdGl2ZSBidWZmZXIpLjxicj5BZnRlciBhIGNoYW5nZSwgeFRlVmUgbXVzdCBiZSBkZWxldGUgaW4gdGhlIFBsZXggLyBFbWJ5IERWUiBzZXR0aW5ncyBhbmQgc2V0IHVwIGFnYWluLiINCiAgICB9LA0KICAgICJtM3UiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJNM1UgUGxheWxpc3QiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIkZpbGUgcGF0aCBvciBVUkwgb2YgdGhlIE0zVSIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiTG9jYWwgb3IgcmVtb3RlIHBsYXlsaXN0cyINCiAgICB9LA0KICAgICJ4bWx0diI6DQogICAgew0KICAgICAgInRpdGxlIjogIlhNTFRWIEZpbGUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIkZpbGUgcGF0aCBvciBVUkwgb2YgdGhlIFhNTFRWIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJMb2NhbCBvciByZW1vdGUgWE1MVFYgZmlsZSINCiAgICB9DQogIH0sDQogICJsb2dpbiI6DQogIHsNCiAgICAiZmFpbGVkIjogIlVzZXIgYXV0aGVudGljYXRpb24gZmFpbGVkIiwNCiAgICAiaGVhZGxpbmUiOiAiTG9naW4iLA0KICAgICJ1c2VybmFtZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIlVzZXJuYW1lIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJVc2VybmFtZSINCiAgICB9LA0KICAgICJwYXNzd29yZCI6DQogICAgew0KICAgICAgInRpdGxlIjogIlBhc3N3b3JkIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJQYXNzd29yZCINCiAgICB9DQogIH0sDQogICJhY2NvdW50IjoNCiAgew0KICAgICJmYWlsZWQiOiAiUGFzc3dvcmQgZG9lcyBub3QgbWF0Y2giLA0KICAgICJoZWFkbGluZSI6ICJDcmVhdGUgdXNlciBhY2NvdW50IiwNCiAgICAidXNlcm5hbWUiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJVc2VybmFtZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiVXNlcm5hbWUiDQogICAgfSwNCiAgICAicGFzc3dvcmQiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJQYXNzd29yZCIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiUGFzc3dvcmQiDQogICAgfSwNCiAgICAiY29uZmlybSI6DQogICAgew0KICAgICAgInRpdGxlIjogIkNvbmZpcm0iLA0KICAgICAgInBsYWNlaG9sZGVyIjogIkNvbmZpcm0iDQogICAgfQ0KICB9DQp9" webUI["html/login.html"] = "PCFkb2N0eXBlIGh0bWw+DQo8aHRtbD4NCiAgPGhlYWQ+DQogICAgPG1ldGEgY2hhcnNldD0idXRmLTgiPg0KICAgIDxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgsIGluaXRpYWwtc2NhbGU9MS4wIiAvPiANCiAgICA8dGl0bGU+eFRlVmU8L3RpdGxlPg0KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iY3NzL3NjcmVlbi5jc3MiIHR5cGU9InRleHQvY3NzIj4NCiAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9ImNzcy9iYXNlLmNzcyIgdHlwZT0idGV4dC9jc3MiPg0KICAgIDxzY3JpcHQgbGFuZ3VhZ2U9ImphdmFzY3JpcHQiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJqcy9uZXR3b3JrX3RzLmpzIj48L3NjcmlwdD4NCiAgICA8c2NyaXB0IGxhbmd1YWdlPSJqYXZhc2NyaXB0IiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ianMvYXV0aGVudGljYXRpb25fdHMuanMiPjwvc2NyaXB0Pg0KICA8L2hlYWQ+DQoNCiAgICA8Ym9keT4NCiAgICAgICAgICANCiAgICAgIDxkaXYgaWQ9ImhlYWRlciIgY2xhc3M9ImltZ0NlbnRlciI+PC9kaXY+DQoNCiAgICAgIDxkaXYgaWQ9ImJveCI+DQoNCiAgICAgICAgPGRpdiBpZD0iaGVhZGxpbmUiPg0KICAgICAgICAgIDxoMSBpZD0iaGVhZC10ZXh0IiBjbGFzcz0iY2VudGVyIj57ey5sb2dpbi5oZWFkbGluZX19PC9oMT4NCiAgICAgICAgPC9kaXY+DQoNCiAgICAgICAgPHAgaWQ9ImVyciIgY2xhc3M9ImVycm9yTXNnIGNlbnRlciI+e3suYXV0aGVudGljYXRpb25FcnJ9fTwvcD4NCg0KICAgICAgICA8ZGl2IGlkPSJjb250ZW50Ij4NCg0KICAgICAgICAgICAgPGZvcm0gaWQ9ImF1dGhlbnRpY2F0aW9uIiBhY3Rpb249IiIgbWV0aG9kPSJwb3N0Ij4NCg0KICAgICAgICAgICAgICA8aDU+e3subG9naW4udXNlcm5hbWUudGl0bGV9fTo8L2g1Pg0KICAgICAgICAgICAgICA8aW5wdXQgaWQ9InVzZXJuYW1lIiB0eXBlPSJ0ZXh0IiBuYW1lPSJ1c2VybmFtZSIgcGxhY2Vob2xkZXI9IlVzZXJuYW1lIiB2YWx1ZT0iIj4NCiAgICAgICAgICAgICAgPGg1Pnt7LmxvZ2luLnBhc3N3b3JkLnRpdGxlfX06PC9oNT4NCiAgICAgICAgICAgICAgPGlucHV0IGlkPSJwYXNzd29yZCIgdHlwZT0icGFzc3dvcmQiIG5hbWU9InBhc3N3b3JkIiBwbGFjZWhvbGRlcj0iUGFzc3dvcmQiIHZhbHVlPSIiPg0KDQogICAgICAgICAgICA8L2Zvcm0+DQoNCiAgICAgICAgPC9kaXY+DQoNCiAgICAgICAgPGRpdiBpZD0iYm94LWZvb3RlciI+DQogICAgICAgICAgPGlucHV0IGlkPSJzdWJtaXQiIGNsYXNzPSIiIHR5cGU9ImJ1dHRvbiIgdmFsdWU9Int7LmJ1dHRvbi5sb2dpbn19IiBvbmNsaWNrPSJqYXZhc2NyaXB0OiBsb2dpbigpOyI+DQogICAgICAgIDwvZGl2Pg0KICAgICAgICANCiAgICAgIDwvZGl2Pg0KDQogICAgPC9ib2R5Pg0KICAgIA0KPC9odG1sPg==" webUI["html/maintenance.html"] = "PCFkb2N0eXBlIGh0bWw+DQo8aHRtbD4NCiAgPGhlYWQ+DQogICAgPG1ldGEgY2hhcnNldD0idXRmLTgiPg0KICAgIDxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgsIGluaXRpYWwtc2NhbGU9MS4wIiAvPiANCiAgICA8dGl0bGU+eFRlVmU8L3RpdGxlPg0KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iY3NzL3NjcmVlbi5jc3MiIHR5cGU9InRleHQvY3NzIj4NCiAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9ImNzcy9iYXNlLmNzcyIgdHlwZT0idGV4dC9jc3MiPg0KICA8L2hlYWQ+DQoNCiAgICA8Ym9keT4NCiAgICAgICAgICANCiAgICAgIDxkaXYgaWQ9ImhlYWRlciIgY2xhc3M9ImltZ0NlbnRlciI+PC9kaXY+DQoNCiAgICAgIDxkaXYgaWQ9ImJveCI+DQoNCiAgICAgICAgPGRpdiBpZD0iaGVhZGxpbmUiPg0KICAgICAgICAgIDxoMSBpZD0iaGVhZC10ZXh0IiBjbGFzcz0iY2VudGVyIj5NYWludGVuYW5jZTwvaDE+ICAgICAgDQogICAgICAgIDwvZGl2PiAgDQoNCiAgICAgICAgPGRpdiBpZD0iY29udGVudCI+DQogICAgICAgICAgeFRlVmUgaXMgdXBkYXRpbmcgdGhlIGRhdGFiYXNlLCBwbGVhc2UgdHJ5IGFnYWluIGxhdGVyLg0KICAgICAgICA8L2Rpdj4NCg0KICAgICAgICA8ZGl2IGlkPSJib3gtZm9vdGVyIj48L2Rpdj4NCiAgICAgICAgDQogICAgICA8L2Rpdj4NCg0KICAgIDwvYm9keT4NCjwvaHRtbD4=" webUI["html/video/stream-limit.ts"] = "R0AREABC8CUAAcEAAP8B/wAB/IAUSBIBBkZGbXBlZwlTZXJ2aWNlMDF3fEPK//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////9HQAAQAACwDQABwQAAAAHwACqxBLL//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////0dQABAAArASAAHBAADhAPAAG+EA8AAVvU1W////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////R0EAMAdQAAB7DH4AAAAB4AAAgMAKMQAJEKERAAfYYQAAAAEJ8AAAAAFnZAAorNlAeAIn5cBEAAADAAQAAAMAyDxgxlgAAAABaOvjyyLAAAABBgX//6rcRem95tlIt5Ys2CDZI+7veDI2NCAtIGNvcmUgMTUyIHIyODU0IGU5YTU5MDMgLSBILjI2NC9NUEVHLTQgQVZDIGNvZGVjIC0gQ29weWxlZnQgMjAwMy0yMDE3IC0gaHR0cDovL3dHAQARd3cudmlkZW9sYW4ub3JnL3gyNjQuaHRtbCAtIG9wdGlvbnM6IGNhYmFjPTEgcmVmPTMgZGVibG9jaz0xOjA6MCBhbmFseXNlPTB4MzoweDExMyBtZT1oZXggc3VibWU9NyBwc3k9MSBwc3lfcmQ9MS4wMDowLjAwIG1peGVkX3JlZj0xIG1lX3JhbmdlPTE2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ACqxBLL//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////0dQABEAArASAAHBAADhAPAAG+EA8AAVvU1W////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////RwEAGO10tGlFAwyE91Tzg8923ovJk1dv2xh1gVlYQFtWdZ6NSQ8vgHM7/tMfIZPsqgCU856rdBJJRMDaor/oWA7pkvSmC2aqaC5fd/mkWUPTuG8fRhGqOY1rKxLNSI3HtTQAcuVBxRM0NfMw0ky/JMJYZiCgXcNsxpxl+khr/9fKtO5Fg2VNBti92xcZimHUZDJMQTBOY6vSR9L1N2O/kJQCpdfuc9bkcUTMjH/es/lAySxvbiislkohqkpHAQAZVatwHI0t9eHCUfDyWUEtuCNyDwQFOVMtaYEQJrTrhQX0VduT86F0u0wN9ag0uPsrmX6Rid/x5S7KI1SkS+qP6cdmgSP57uiF4dG6IKsWNfGBLY09H/CFlrg73WINQkkp2diKkdEmtZetn8+ZAKzR5eXN5FebiKt6pIkNLuSofjosypEs2o6boKsfpmbtOV0idOeWDM9C8EIcn3aZwk1s2KBDvt1DlY+i2Cuvhk3XoKLT+pq/bOC5QkcBABolcOXneZXLoQw9W1PH1f/of92Ytjj8okrWijcQAKlE5l8XoTb9qrOiZnDOhqwcMlB9H9rorq041I89hChohYoSkJElcM8V+r8WYN5axD1BNyfwaHAOm4UN2/VEYOkNSfMjmx2S0WW/F2ha8Jj4fc4QgqcXr+TnnbwqLkLTValK4Qa1pcv7PIbDq6zCUfxe04guZ8xEhPQjp17/G6IB/6uq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wnibxQ/cXEblVnM47wbCN3iy4eHjYB5MoIICrSYmd8nt4V0toLs084KJlmnur5FbApYM4W79ff4oZkW88Cg8Fv8TnWhh1Hqc4UlhMbRKm2QxDgfBxar3U7BwNR6prrXXjqfR7ja3tPli+H7Jez/xcTg32QpHAQAdTa7pSSgBvmOqzz175NAFIhwE9p3d71F9jLvhaPv8q1iKopL0kizwzEWElnXWmNhfLkl/Au8KujnoKUaxVdTe+zAZm2dOkejnpNVtVj0Aw9wKcG3ZQ1iRZrUFRIoPKYlmR+oi0LrupuhYABtgPbdCbDtezGTr0nw9wVd/rZ6V+1wcoJ6+8VAVueIdwI3brqm6EoFHiI8L6lER+9SefB8fHo4NYgr/I8jSxaa/2PLX2K/DjrlY6bN8fEcBAB7DXsuh8DITF6CYWj2HTFvqfzlic3QHXnHtvsTFNpyVY1LY8y/fRK2mwALN6IB5W3OuyoKiA3K0lJdQUv2gYhHWvPTV218HYrD0rkbMxRH0SiEEkrHDeOt5T1HtWD13D2/QvMu535fsfZyeaFDjdCE9M0Xi8Lfc7Xj1ZNGend7Jo7/cEiczFkc1vB4z2JpFGZreV2EdquyEzC2STFJtfimyx8QlLngEuR1cxH+lWEcFX+mvBa/eqktIRwEAH6VazFLPNsnHZqsI66TVoArQuUUGFAzr8MT8GZ9V6qpZa5D0jA/4eGi6Kq0smUgRExnqIbSMLWqDf/Pk2YT3MpHTu9VE3Dn9blgB6KsVIkWnB98Y2n/6DrZDcF94Ndu0Ka4U/RZwdV5O5KcO+lU2ZiIOYTYZ6Ie0d+tApxYxJ+YmxaDoCyRNe6crw/yzR5SflT8ddi/E2BM+l+nwVDiKZ/714fmrBxFKWuqLiQNHV19o1cZ8Ubun+ZtHQAASAACwDQABwQAAAAHwACqxBLL//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////0dQABIAArASAAHBAADhAPAAG+EA8AAVvU1W////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////RwEAEH1s3BdtHdF1ln55B24wdACF/ggcRtPmB4IUB6cZJ+m32I4R48ZkdhAFBulgWcsv0wZwH0o1yi3i4qm3rJ98AUKdB9PsNyG9gURV0bTw4myAj6g5Dgodfv6w9bsbOxsGUWkvgAJ3rrR010BvZbIa6CMRCQRjxkCfRF77ansRJZT0JzhtYeSS/ZJob8Rr2jrng3W2rkmHtE+rdqlPiHxmwkRZvYGhBxwiJO2L6f+l/cABsfs09rA+A0pHAQAREZay3TBUIAfMWhApE+LaPgeyOYtaPFONA9aC0h4QrFkaLZfb86678MK+zLgqDBsDoj50eZHMVcczRjs4sYlv7RG8RIWKb5lB9Kn/8+CkxiiA11cHH1yzLX2SKCmhsak/+P/zYQ1EDvEj33bl9e3Jd62cTI+Qw99KrsWnUMN8hFNeXzoGHA3aec+Li4NFboF8sa6lCPR6Csxsvxw8DJaWCnER5Z0p+nKhXavF/eNHQ0DX47ohycc87UcBABKsYHCHXXe3vK1cFYDWO6rhwM6hxCdJ+/X+VB1akQejL6iBMdUPuadUqBnbprwJM0dWpSSn9uuZZeqe46iZOGIJUo69d8x+ZSvPcBH/dK1Y0LJnoWdgWH51SQg7eYqcwjQW3BOy7ZF02Hn1EhTuhsN7ms8zv3WIeEBDBq0T3Idl+Tmw9iJU9skVYiwygHG2+0XwrLa6y+uiQPwMzrnEr1kuf24XoAqrJTZQiVH3aQF4d94yDreWu2KPRwEAE2FsynHZaUcBXEFbeX0nSxZ7sRcRjJvc7RYOny6N8QFwKDVO7jpRWWYM55kuepBOyZ+7BFYeG+FU1kR+ZfmqyDNkD4D1IPwNh6u9JQxDymfN/aMcQC3WxdvCKquPsAut6dugpGkOFtIe+W3ayc4V/J978P+h1EDFMbFjxRPuXht0K2dBQZCJ0ybISUDqWzhPuep8CdxSU4MvMVfdXh7FLl/BqKJUTT+vM+Pz3XnqCQQmH5TjQ4CK55VHAQAUEtgfkBwIYgtwHkhjmtLw7HNTeJeMfTjATEKcyuKzItSeYxHBmGzQ/+G2otpPCOkVAXJ9mfx7LxrW4joZ0ttTRQJ/wqMUK1IN349LiJoo8y/+FwN4jPNDwIleJG697riqnmLOweFW8spHKLBfnHcyC1pG6EIxFpTqUQ0KHqXD/KXIHKioJNAOVwQ1Gfloxebo/Tdtd00dpHP3gcsAOnV75APCYOjVIlwm2X6ViDeZw6Btdb/Br/+yokcBABU3+eOESLlneGbR5SLiL8wPkoRaZ5X7xFlMTMvsv9yHk26bVdmsubSdbYS1Hy64n0+NnL7C1aLD7aJxOudMjVW5goZbfO2KxBQkCD4HFA284wbaB5vOL7mRilCn6YEs1kiwf22+fBLNUmXDb2p353wrD/ygTDhlki66USvUmd/ZAs9uzAddegEzy7Xn00YysWTu/hegYyZtWFC+X5dhLubWJ7n96y5wjrP7PAOXoQQtFUH9j/rBiP/7RwEAFnL/wYKYuj80mPGtimSbF/E9K7XwjwBz8yHZubmVMTCmwkZBM4h0FR1thnUGiSjqjJT6SfunWCZ/dZDQplrzS00UKcUP399SyM+nNG1br8Za0ZYwWch8nyLHYXSRuxdnrfUUespsOQo1cWSLGf0pV2HIcHoiAAEKwPU6irB5BSoFvB1qKVjgEk+QwAEYAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAABHAQA3pAD/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////AwAAAwAAAwAAAwAAAwAAAwBbwUdBABgAAAHgAACAwAoxAAmBIREAB/SBAAAAAQnwAAAAAUGaJGxDv/6plgAAAwAAAwAAAwAAAwAAAwAAAwAAAwAKCKB0AIhy1ftwLNISWucTFC7xeBcaIzP3oZjZo8uT9hqZVstWGnrPz+vjaA5FuCO+K2w7/o39LygDO7aL+0zSrN90LW7r133x8+f+PEKk8d7pd2fj4RYuMOXOYunzFzRX/4IvR1XsK5WJYwVkOca3yfo7DTvUBP9rgSiTRwEAGQD6CFK1PBC4qYCa+coLVnX+jgODNrau5YJXIekDI4+wUNV+5T5HE4e2t5EGAjn77+kC1Vghmvx8KqPnylVUvsaTofheggxHsPuxn1zQt6nA59UglrRUMn8b4pmrvfqTBSqU949+AcNAI6M/eAqz6r0RG5KNeBhx8R2f0x2kujwHU3pc3rlPb6ZrFM/2HiG97eEIezrvWFG7YAAAAwAAAwAE1KRo1VfbdZQ/tOpNGxFmTcQoFidyD2tHAQAapTTIErUKA2Rc9uIzGJu+oW0uNOxRyl6oJNUNJp5L9TIshNS1CmUKgdCaE3LkLwdE8iUkUnIGfWLiWpWmjzsINYC8dnDaSptB53yJkBu0SsR00oo1PZ0pl4ZzoXGSYQJTPaVCbj6FNqm5wcnUqKTB/rgHdPdnDj0K8asLABeo/n3XCXrDorI+LYSD1FBgmV9O7RZdjfL0NnXOQkiq/ZGirwVV0cUF1aHtZx1yHlAAZKuuu7TqB13CAUcBADuRAP///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////yj/IrOvAEoXDNGy+nrxWN0l8cmuqWYaUJpuM9XgAAADAAADAAKmR0EAPAcQAACJHH4AAAAB4AAAgMAKMQAJSOERAAkQoQAAAAEJ8AAAAAFBnkJ4hf8AAAMAAAMAAAMAAAMAAAMAAAMAAAMAC/BmhyuvLmkCgKTgACEXfOVvHRHdpBEEmTTz9pIZCa2FD0CXukzDCakOHekTpJQSdsfd7a/jjM1/5lBtKCAGQ6zOCSQ6DeKtyw+CugDuuglGipwmvQW+FIDjnZ6HRd0uaSOGy6VB3h9MI1o4nqaCqVwwIgubYZFHAQA9XgD////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////WcZrO6BEiqf8pCxYwlz2mkdUzY/ipM/TIHS4m5xQAAAMAAAMAAA5sVm90p14dlvWgBgY7XQ9KVOJKLtaMAN5KiffVQtNuzW5DfL+RewZpAAADAAADAAAQMUdBAB4AAAHgAACAgAUhAAkswQAAAAEJ8AAAAAEBnmF0Qr8AAAMAAAMAAAMAAAMAAAMAAAMAAAMAABJfBjP2+4+W7ZybyT130+Ma4WSqICfd/dS4YtjrLlmh5VBlfrtwJqdN1PBTYDkwGOOONqZQeFN6lLGJoDzvuh3kv1aDBLqug+JhvrSeu5ebnvcrtQzb2REwJL3h9mvtkr0WfDu4AAADAAADAAs32Y4C/6Ns79oCGj6oqLltY3T4I0/QRwEAP5wA//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////8BeoWLRnKQmVgO/RBoBfcK85AAAAMAAAMACFhHQQAwBxAAAJcsfgAAAAHgAACAwAoxAAllAREACUjhAAAAAQnwAAAAAQGeY2pCvwAAAwAAAwAAAwAAAwAAAwAAAwAAAwAAEmDKfLGXsvBBQPNYXlEd6WueJ4deApfcHESlG+7V6u0AiWQqJvNZYM+3Js3Lj9Ldc9yYIHqruVwfMtCYGlX3wMavI/DrhMuJw+RreIF8SKsJD8CMccAAAAMAAAMACrFZOBgEqaP/8EyWsAHV6CgcAgfyox/roEcBADGuAP//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////AAADAAADAHTBR0EAEgAAAeAAAIDACjEACfGhEQAJZQEAAAABCfAAAAABQZpoSahBaJlMCHf//qmWAAADAAADAAADAAADAAADAAADAAADAAALf8A2bry6lUyIAQGNFfVK2Cd7h4qDqmqpvmXfkfTwo2Ab79AHhajxJ4MPWIgAAA84xLRIx7I2CrWjWe96OvgkzgS9mtvhuxdzAgpuIOJI3DEY9mviDDZz8XSAAAADAAADAB7AZkj9AAHHGvk+Pzlku8UkWa5HAQAzogD//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////6HjAkbF/gsWuvw4QAAAAwAAAwAccUdBADQHEAAApTx+AAAAAeAAAIDACjEACblhEQAJgSEAAAABCfAAAAABQZ6GRREsL/8AAAMAAAMAAAMAAAMAAAMAAAMAAAMAAA3URJB/3lMHSmOd0GYZnfpoR80WdqxlyHzPX+V81VUMeXIGrRgq5agd+ACdjoGI036yQ/rmpGw0CmMBrKwpI+nwFo3SP0s1rI2yHBZaiPJjSUgw33rBkxXcq55kfLf2sAAAAwAAAwACBWolidWDnIeQAAADRwEANbEA//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////8AAAMADulHQQA2NAD///////////////////////////////////////////////////////////////////8AAAHgAACAgAUhAAmdQQAAAAEJ8AAAAAEBnqV0Qr8AAAMAAAMAAAMAAAMAAAMAAAMAAAMAABJXNihCnx11JUosH2hBE53O/YN+GPHqcnJiQBIf3maTAAj5iRt+7GYUKBAU9iCXTiouCjGYgAAAAwAAAwA9p4HQBg2cAAADAAADAADGgUdBADc4EAAAs0x+AP////////////////////////////////////////////////////////////////8AAAHgAACAwAoxAAnVgREACblhAAAAAQnwAAAAAQGep2pCvwAAAwAAAwAAAwAAAwAAAwAAAwAAAwAAAwBR6/L83y+ZevtMZ0FW4lp8qV7fVXQAhLAWlS6mDxvpaSUgChorvgTMXtxJEIAAAAMAAAMACqFCAAADAAADAAADAAz4R0EAOCsA////////////////////////////////////////////////////////AAAB4AAAgMAKMQALYiERAAnVgQAAAAEJ8AAAAAFBmqxJqEFsmUwId//+qZYAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAApQTq0hABLvkcWCYrAaRRPNDrECJGlF/11BYvG9+JJ9Y86nxnmQzPxtAAe1UgOsXAAADAAADAAADAAADAAADAAADAAADA/JHQQA5JhAAAMFcfgD/////////////////////////////////////////AAAB4AAAgMAKMQALKeERAAnxoQAAAAEJ8AAAAAFBnspFFSwv/wAAAwAAAwAAAwAAAwAAAwAAAwAAAwAADdRFmvrVE0KXDOGwWddlwYa1foib7tXZKmkua6R4APb4b8+tXwdSNNqgf2IVNwGTohgQAcMvp6SiQxpiQym4AAADAAADAANUNUAAAAMAAAMAAAMBN0dBADo8AP//////////////////////////////////////////////////////////////////////////////AAAB4AAAgIAFIQALDcEAAAABCfAAAAABAZ7pdEK/AAADAAADAAADAAADAAADAAADAAADAAADAFHTAfujIUaaLSuklb9y0/so9AEtQAqkAxOviALQZ5jNt/iOkABrCOZ4md0iUnFwAAADAAADAALwckAAAAMAAAMAAATcR0EAO0IQAADPbH4A//////////////////////////////////////////////////////////////////////////////8AAAHgAACAwAoxAAtGAREACynhAAAAAQnwAAAAAQGe62pCvwAAAwAAAwAAAwAAAwAAAwAAAwAAAwAAAwBR6/L83y+WryR9gmVKPGbIhJpkgAFgHCej3gB6rAHPgHHAAAADAAADAAAYIV0AAAMAAAMAAAMABnxHQQA8UQD//////////////////////////////////////////////////////////////////////////////////////////////////////////wAAAeAAAIDACjEAC9KhEQALRgEAAAABCfAAAAABQZrwSahBbJlMCG///qeEAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAAZ8UdBAD00EAAA3Xx+AP///////////////////////////////////////////////////////////wAAAeAAAIDACjEAC5phEQALYiEAAAABCfAAAAABQZ8ORRUsL/8AAAMAAAMAAAMAAAMAAAMAAAMAAAMAAA3URZr61RNClwzhI2ZXdRHYLZWc1yTgKRhTIXBNABHQKIIyYNyc+AaEn1jhATEAAAMAAAMAAAMAckkIAAADAAADAAADAEbBR0EAPkYA////////////////////////////////////////////////////////////////////////////////////////////AAAB4AAAgIAFIQALfkEAAAABCfAAAAABAZ8tdEK/AAADAAADAAADAAADAAADAAADAAADAAADAFHTAfujIUAYRtY0f/43cIs2OjxACR2hMR1QBGYX+34JGAAAAwAAAwAAAwKEJ6AAAAMAAAMAAAMA3oFHQQA/QhAAAOuMfgD//////////////////////////////////////////////////////////////////////////////wAAAeAAAIDACjEAC7aBEQALmmEAAAABCfAAAAABAZ8vakK/AAADAAADAAADAAADAAADAAADAAADAAADAFHr8vzfL5avJH2CZUo8ZsiEmmSAAWAcJ6PeAHqsAc+AccAAAAMAAAMAABghXQAAAwAAAwAAAwAGfEdBADBRAP//////////////////////////////////////////////////////////////////////////////////////////////////////////AAAB4AAAgMAKMQANQyERAAu2gQAAAAEJ8AAAAAFBmzRJqEFsmUwIZ//+nhAAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAGVAR0EAMTQQAAD5nH4A////////////////////////////////////////////////////////////AAAB4AAAgMAKMQANCuERAAvSoQAAAAEJ8AAAAAFBn1JFFSwv/wAAAwAAAwAAAwAAAwAAAwAAAwAAAwAADdRFmvrVE0KXDOEjZld1EdgtlZzXJOApGFMhcE0AEdAogjJg3Jz4BoSfWOEBMQAAAwAAAwAAAwBySQgAAAMAAAMAAAMARsFHQQAyRgD///////////////////////////////////////////////////////////////////////////////////////////8AAAHgAACAgAUhAAvuwQAAAAEJ8AAAAAEBn3F0Qr8AAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAUdMB+6MhQBhG1jR//jdwizY6PEAJHaExHVAEZhf7fgkYAAADAAADAAADAoQnoAAAAwAAAwAAAwDegEdBADNCEAABB6x+AP//////////////////////////////////////////////////////////////////////////////AAAB4AAAgMAKMQANJwERAA0K4QAAAAEJ8AAAAAEBn3NqQr8AAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAUevy/N8vlq8kfYJlSjxmyISaZIABYBwno94AeqwBz4BxwAAAAwAAAwAAGCFdAAADAAADAAADAAZ8R0EANFIA////////////////////////////////////////////////////////////////////////////////////////////////////////////AAAB4AAAgMAKMQANs6ERAA0nAQAAAAEJ8AAAAAFBm3hJqEFsmUwIV//+OEAAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAYtHQQA1NBAAARW8fgD///////////////////////////////////////////////////////////8AAAHgAACAwAoxAA17YREADUMhAAAAAQnwAAAAAUGflkUVLC//AAADAAADAAADAAADAAADAAADAAADAAAN1EWa+tUTQpcM4SNmV3UR2C2VnNck4CkYUyFwTQAR0CiCMmDcnPgGhJ9Y4QExAAADAAADAAADAHJJCAAAAwAAAwAAAwBGwEdBADZGAP///////////////////////////////////////////////////////////////////////////////////////////wAAAeAAAICABSEADV9BAAAAAQnwAAAAAQGftXRCvwAAAwAAAwAAAwAAAwAAAwAAAwAAAwAAAwBR0wH7oyFAGEbWNH/+N3CLNjo8QAkdoTEdUARmF/t+CRgAAAMAAAMAAAMChCegAAADAAADAAADAN6BR0EAN0IQAAEjzH4A//////////////////////////////////////////////////////////////////////////////8AAAHgAACAwAoxAA2XgREADXthAAAAAQnwAAAAAQGft2pCvwAAAwAAAwAAAwAAAwAAAwAAAwAAAwAAAwBR6/L83y+WryR9gmVKPGbIhJpkgAFgHCej3gB6rAHPgHHAAAADAAADAAAYIV0AAAMAAAMAAAMABn0=" diff --git a/src/webserver.go b/src/webserver.go index a0c1d79..01d3beb 100644 --- a/src/webserver.go +++ b/src/webserver.go @@ -460,6 +460,7 @@ func WS(w http.ResponseWriter, r *http.Request) { var authenticationUpdate = Settings.AuthenticationWEB var previousTLSMode = Settings.TLSMode var previousHostIP = Settings.HostIP + var previousStoreBufferInRAM = Settings.StoreBufferInRAM response.Settings, err = updateServerSettings(request) if err == nil { @@ -488,6 +489,10 @@ func WS(w http.ResponseWriter, r *http.Request) { restartWebserver <- true } + if Settings.StoreBufferInRAM != previousStoreBufferInRAM { + initBufferVFS(Settings.StoreBufferInRAM) + } + } case "saveFilesM3U": diff --git a/ts/base_ts.ts b/ts/base_ts.ts index 2633656..85485b0 100644 --- a/ts/base_ts.ts +++ b/ts/base_ts.ts @@ -23,7 +23,7 @@ menuItems.push(new MainMenuItem("logout", "{{.mainMenu.item.logout}}", "logout.p var settingsCategory = new Array() settingsCategory.push(new SettingsCategoryItem("{{.settings.category.general}}", "tlsMode,xteveAutoUpdate,hostIP,tuner,epgSource,api")) settingsCategory.push(new SettingsCategoryItem("{{.settings.category.files}}", "update,files.update,temp.path,cache.images,xepg.replace.missing.images")) -settingsCategory.push(new SettingsCategoryItem("{{.settings.category.streaming}}", "buffer,udpxy,buffer.size.kb,buffer.timeout,user.agent,ffmpeg.path,ffmpeg.options,vlc.path,vlc.options")) +settingsCategory.push(new SettingsCategoryItem("{{.settings.category.streaming}}", "buffer,udpxy,buffer.size.kb,storeBufferInRAM,buffer.timeout,user.agent,ffmpeg.path,ffmpeg.options,vlc.path,vlc.options")) settingsCategory.push(new SettingsCategoryItem("{{.settings.category.backup}}", "backup.path,backup.keep")) settingsCategory.push(new SettingsCategoryItem("{{.settings.category.authentication}}", "authentication.web,authentication.pms,authentication.m3u,authentication.xml,authentication.api")) diff --git a/ts/settings_ts.ts b/ts/settings_ts.ts index da062d5..9ef209b 100644 --- a/ts/settings_ts.ts +++ b/ts/settings_ts.ts @@ -272,6 +272,20 @@ class SettingsCategory { setting.appendChild(tdRight) break + case "storeBufferInRAM": + var tdLeft = document.createElement("TD") + tdLeft.innerHTML = "{{.settings.storeBufferInRAM.title}}" + ":" + + var tdRight = document.createElement("TD") + var input = content.createCheckbox(settingsKey) + input.checked = data + input.setAttribute("onchange", "javascript: this.className = 'changed'") + tdRight.appendChild(input) + + setting.appendChild(tdLeft) + setting.appendChild(tdRight) + break + case "xteveAutoUpdate": var tdLeft = document.createElement("TD") tdLeft.innerHTML = "{{.settings.xteveAutoUpdate.title}}" + ":" @@ -480,6 +494,10 @@ class SettingsCategory { text = "{{.settings.bufferSize.description}}" break + case "storeBufferInRAM": + text = "{{.settings.storeBufferInRAM.description}}" + break + case "buffer.timeout": text = "{{.settings.bufferTimeout.description}}" break diff --git a/xteve.go b/xteve.go index 198f2f5..565f361 100644 --- a/xteve.go +++ b/xteve.go @@ -37,10 +37,10 @@ var GitHub = GitHubStruct{Branch: "master", User: "SCP002", Repo: "xTeVe", Updat const Name = "xTeVe" // Version : Version, the Build Number is parsed in the main func -const Version = "2.3.1.0000" +const Version = "2.4.0.0000" // DBVersion : Database Version -const DBVersion = "2.2.2" +const DBVersion = "2.2.3" // APIVersion : API Version const APIVersion = "1.1.0" From 7413770661d756ff542678eb51ea3d757faa629e Mon Sep 17 00:00:00 2001 From: SCP002 Date: Tue, 26 Apr 2022 23:58:45 +0300 Subject: [PATCH 094/189] Remove forgotten // TODO from code --- src/buffer.go | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/buffer.go b/src/buffer.go index 206bc2c..1fdf52c 100644 --- a/src/buffer.go +++ b/src/buffer.go @@ -26,8 +26,6 @@ import ( "github.com/avfs/avfs/vfs/osfs" ) -// TODO: Removes VFS buffer files but dont write them again (?) - func createStreamID(stream map[int]ThisStream) (streamID int) { var debug string From dc10b34227bfa2277852d23052a346dcb89dde06 Mon Sep 17 00:00:00 2001 From: SCP002 Date: Wed, 27 Apr 2022 22:30:50 +0300 Subject: [PATCH 095/189] Rework of "XMLTV Channel" field in mapping modal (take 1). Clearup console.log messages --- html/js/authentication_ts.js | 2 - html/js/base_ts.js | 10 +-- html/js/configuration_ts.js | 3 - html/js/menu_ts.js | 132 ++++++++++++++++------------- html/js/settings_ts.js | 2 - src/webUI.go | 10 +-- src/xepg.go | 13 --- ts/authentication_ts.ts | 4 - ts/base_ts.ts | 15 +--- ts/configuration_ts.ts | 4 - ts/menu_ts.ts | 157 ++++++++++++++++++----------------- ts/settings_ts.ts | 3 +- 12 files changed, 166 insertions(+), 189 deletions(-) diff --git a/html/js/authentication_ts.js b/html/js/authentication_ts.js index f708119..4b48d51 100644 --- a/html/js/authentication_ts.js +++ b/html/js/authentication_ts.js @@ -4,7 +4,6 @@ function login() { var div = document.getElementById("content"); var form = document.getElementById("authentication"); var inputs = div.getElementsByTagName("INPUT"); - console.log(inputs); for (var i = inputs.length - 1; i >= 0; i--) { var key = inputs[i].name; var value = inputs[i].value; @@ -27,6 +26,5 @@ function login() { return; } } - console.log(data); form.submit(); } diff --git a/html/js/base_ts.js b/html/js/base_ts.js index 8460816..7ee811a 100644 --- a/html/js/base_ts.js +++ b/html/js/base_ts.js @@ -177,7 +177,7 @@ function sortTable(column) { xValue = x.getElementsByTagName("P")[0].innerText.toLowerCase(); break; default: - console.log(x.childNodes[0].tagName); + break; } sortArr.push({ key: xValue ? xValue : i, row: rows[i] }); } @@ -295,7 +295,6 @@ function changeChannelNumber(element) { } data[dbID]["x-channelID"] = newNumber.toString(); element.value = newNumber; - console.log(data[dbID]["x-channelID"]); if (COLUMN_TO_SORT == 1) { COLUMN_TO_SORT = -1; sortTable(1); @@ -304,10 +303,7 @@ function changeChannelNumber(element) { } function backup() { var data = new Object(); - console.log("Backup data"); var cmd = "xteveBackup"; - console.log("SEND TO SERVER"); - console.log(data); var server = new Server(cmd); server.request(data); return; @@ -383,7 +379,6 @@ function restore() { if (file) { reader.readAsDataURL(file); reader.onload = function () { - console.log(reader.result); var data = new Object(); var cmd = "xteveRestore"; data["base64"] = reader.result; @@ -421,7 +416,6 @@ function uploadLogo() { if (file) { reader.readAsDataURL(file); reader.onload = function () { - console.log(reader.result); var data = new Object(); var cmd = "uploadLogo"; data["base64"] = reader.result; @@ -455,6 +449,7 @@ function checkUndo(key) { } return; } +// TODO: Probably don't need this anymore. Remove before finishing with xmltv picker. function sortSelect(select) { const tempArr = []; const selectedValue = select.options[select.selectedIndex].value; @@ -485,7 +480,6 @@ function sortSelect(select) { select.selectedIndex = newSelectedIndex; } function updateLog() { - console.log("TOKEN"); var server = new Server("updateLog"); server.request(new Object()); } diff --git a/html/js/configuration_ts.js b/html/js/configuration_ts.js index db6bff1..1a15265 100644 --- a/html/js/configuration_ts.js +++ b/html/js/configuration_ts.js @@ -62,13 +62,11 @@ class WizardItem extends WizardCategory { description = "{{.wizard.xmltv.description}}"; break; default: - console.log(key); break; } var pre = document.createElement("PRE"); pre.innerHTML = description; doc.appendChild(pre); - console.log(headline, key); } } function readyForConfiguration(wizard) { @@ -120,7 +118,6 @@ function saveWizard() { data["wizard"] = wizard; var server = new Server(cmd); server.request(data); - console.log(data); } // Wizard var configurationWizard = new Array(); diff --git a/html/js/menu_ts.js b/html/js/menu_ts.js index 1d7eff4..82c7bba 100644 --- a/html/js/menu_ts.js +++ b/html/js/menu_ts.js @@ -50,7 +50,6 @@ class MainMenuItem extends MainMenu { this.tableHeader = ["BULK", "{{.mapping.table.chNo}}", "{{.mapping.table.logo}}", "{{.mapping.table.channelName}}", "{{.mapping.table.playlist}}", "{{.mapping.table.groupTitle}}", "{{.mapping.table.xmltvFile}}", "{{.mapping.table.xmltvID}}", "{{.mapping.table.timeshift}}"]; break; } - //console.log(this.menuKey, this.tableHeader); } } class Content { @@ -311,13 +310,11 @@ class Content { BULK_EDIT = false; createSearchObj(); checkUndo("epgMapping"); - console.log("MAPPING"); data = SERVER["xepg"]["epgMapping"]; var keys = getOwnObjProps(data); keys.forEach(key => { var tr = document.createElement("TR"); tr.id = key; - //tr.setAttribute('oncontextmenu', 'javascript: rightClick(this)') switch (data[key]["x-active"]) { case true: tr.className = "activeEPG"; @@ -337,7 +334,6 @@ class Content { cell.child = true; cell.childType = "INPUTCHANNEL"; cell.value = data[key]["x-channelID"]; - //td.setAttribute('onclick', 'javascript: changeChannelNumber("' + key + '", this)') tr.appendChild(cell.createCell()); // Logo var cell = new Cell(); @@ -362,7 +358,6 @@ class Content { var cell = new Cell(); cell.child = true; cell.childType = "P"; - //cell.value = data[key]["_file.m3u.name"] cell.value = getValueFromProviderFile(data[key]["_file.m3u.id"], "m3u", "name"); var td = cell.createCell(); td.setAttribute('onclick', 'javascript: openPopUp("mapping", this)'); @@ -395,7 +390,6 @@ class Content { var cell = new Cell(); cell.child = true; cell.childType = "P"; - //var value = str.substring(1, 4); var value = data[key]["x-mapping"]; if (value.length > 20) { value = data[key]["x-mapping"].substring(0, 20) + "..."; @@ -421,7 +415,6 @@ class Content { alert(); break; default: - console.log("Table content (menuKey):", menuKey); break; } return rows; @@ -589,7 +582,6 @@ class ShowContent extends Content { document.cookie = "Token= ; expires = Thu, 01 Jan 1970 00:00:00 GMT"; break; default: - console.log("Show content (menuKey):", menuKey); break; } // Create table (if needed) @@ -1357,12 +1349,15 @@ function openPopUp(dataType, element) { var dbKey = 'x-mapping'; var xmlTv = new XMLTVFile(); const currentXmlTvId = data[dbKey]; - const xmlTvIdSelect = xmlTv.getPrograms(xmlTvFile, currentXmlTvId); - xmlTvIdSelect.setAttribute('name', dbKey); - xmlTvIdSelect.setAttribute('id', 'popup-mapping'); - xmlTvIdSelect.setAttribute('onchange', `javascript: this.className = 'changed'; checkXmltvChannel('${id}', this, '${xmlTvFile}');`); - sortSelect(xmlTvIdSelect); - content.appendRow('{{.mapping.xmltvChannel.title}}', xmlTvIdSelect); + const [xmlTvIdContainer, xmlTvIdInput, xmlTvIdDatalist] = xmlTv.newXmlTvIdPicker(xmlTvFile, currentXmlTvId); + xmlTvIdContainer.setAttribute('id', 'xmltv-id-picker-container'); + xmlTvIdInput.setAttribute('list', 'xmltv-id-picker-datalist'); + xmlTvIdInput.setAttribute('name', 'x-mapping'); // Should stay x-mapping as it will be used in donePopupData to make a server request + xmlTvIdInput.setAttribute('id', 'xmltv-id-picker-input'); + xmlTvIdInput.setAttribute('onchange', `javascript: this.className = 'changed'; checkXmltvChannel('${id}', this, '${xmlTvFile}');`); + xmlTvIdDatalist.setAttribute('id', 'xmltv-id-picker-datalist'); + // sortSelect(xmlTvIdDatalist); // TODO: Better sort before adding + content.appendRow('{{.mapping.xmltvChannel.title}}', xmlTvIdContainer); // Timeshift var dbKey = "x-timeshift"; var input = content.createInput("text", dbKey, data[dbKey]); @@ -1422,30 +1417,52 @@ class XMLTVFile { } return select; } - getPrograms(xmlTvFile, currentXmlTvId) { - const values = getOwnObjProps(SERVER['xepg']['xmltvMap'][xmlTvFile]); - const text = []; - let friendlyName; - for (let i = 0; i < values.length; i++) { - if (SERVER['xepg']['xmltvMap'][xmlTvFile][values[i]].hasOwnProperty('friendly-name') == true) { - friendlyName = SERVER['xepg']['xmltvMap'][xmlTvFile][values[i]]['friendly-name']; - } - else { - friendlyName = '-'; - } - text[i] = `${friendlyName} (${values[i]})`; - } - text.unshift('-'); - values.unshift('-'); - const select = document.createElement('select'); - for (let i = 0; i < text.length; i++) { - const option = document.createElement('option'); - option.setAttribute('value', values[i]); - option.innerText = text[i]; - select.appendChild(option); + // TODO: Display FULL list, see: + // > https://stackoverflow.com/questions/37478727/how-can-i-make-a-browser-display-all-datalist-options-when-a-default-value-is-se + // > https://www.hongkiat.com/blog/search-select-using-datalist/ + // > https://jqueryui.com/autocomplete/#combobox OR https://select2.org/dropdown + /** + * @param xmlTvFile XML file path to get EPG from. + * @param currentXmlTvId Current XMLTV ID to set initial input value to. + * @returns Array of, sequentially: + * 1) Container of the picker. + * 2) Input field to type at and get choice from. + * 3) Datalist containing every option. + */ + newXmlTvIdPicker(xmlTvFile, currentXmlTvId) { + const container = document.createElement('div'); + const input = document.createElement('input'); + input.setAttribute('type', 'text'); + input.value = currentXmlTvId ? currentXmlTvId : '-'; + container.appendChild(input); + const datalist = document.createElement('datalist'); + const option = document.createElement('option'); + option.setAttribute('value', '-'); + option.innerText = '-'; + datalist.appendChild(option); + const epg = SERVER['xepg']['xmltvMap'][xmlTvFile]; + if (epg) { + const programIds = getOwnObjProps(epg); + programIds.forEach((programId) => { + const program = epg[programId]; + if (program.hasOwnProperty('display-names')) { + program['display-names'].forEach((displayName) => { + const option = document.createElement('option'); + option.setAttribute('value', programId); + option.innerText = displayName['Value']; + datalist.appendChild(option); + }); + } + else { + const option = document.createElement('option'); + option.setAttribute('value', programId); + option.innerText = '-'; + datalist.appendChild(option); + } + }); } - select.value = (currentXmlTvId == '') ? '-' : currentXmlTvId; - return select; + container.appendChild(datalist); + return [container, input, datalist]; } } function getValueFromProviderFile(file, fileType, key) { @@ -1478,22 +1495,27 @@ function setXmltvChannel(epgMapId, xmlTvFileSelect) { const xmlTv = new XMLTVFile(); const newXmlTvFile = xmlTvFileSelect.value; // Remove old XMLTV ID selection box - const xmlTvIdSelectParent = document.getElementById('popup-mapping').parentElement; - xmlTvIdSelectParent.innerHTML = ''; + const xmlTvIdPickerParent = document.getElementById('xmltv-id-picker-container').parentElement; + xmlTvIdPickerParent.innerHTML = ''; // Create new XMLTV ID selection box const tvgId = SERVER['xepg']['epgMapping'][epgMapId]['tvg-id']; - const newXmlTvIdSelect = xmlTv.getPrograms(newXmlTvFile, tvgId); - newXmlTvIdSelect.setAttribute('name', 'x-mapping'); - newXmlTvIdSelect.setAttribute('id', 'popup-mapping'); - newXmlTvIdSelect.setAttribute('onchange', `javascript: this.className = 'changed'; checkXmltvChannel('${epgMapId}', this, '${newXmlTvFile}');`); - newXmlTvIdSelect.className = 'changed'; - sortSelect(newXmlTvIdSelect); + const [xmlTvIdContainer, xmlTvIdInput, xmlTvIdDatalist] = xmlTv.newXmlTvIdPicker(newXmlTvFile, tvgId); + xmlTvIdContainer.setAttribute('id', 'xmltv-id-picker-container'); + xmlTvIdInput.setAttribute('list', 'xmltv-id-picker-datalist'); + xmlTvIdInput.setAttribute('name', 'x-mapping'); // Should stay x-mapping as it will be used in donePopupData to make a server request + xmlTvIdInput.setAttribute('id', 'xmltv-id-picker-input'); + xmlTvIdInput.setAttribute('onchange', `javascript: this.className = 'changed'; checkXmltvChannel('${epgMapId}', this, '${newXmlTvFile}');`); + xmlTvIdInput.classList.add('changed'); + xmlTvIdDatalist.setAttribute('id', 'xmltv-id-picker-datalist'); + // sortSelect(xmlTvIdDatalist); // TODO: Better sort before adding // Add new XMLTV ID selection box to it's parent - xmlTvIdSelectParent.appendChild(newXmlTvIdSelect); - checkXmltvChannel(epgMapId, newXmlTvIdSelect, newXmlTvFile); + xmlTvIdPickerParent.appendChild(xmlTvIdContainer); + checkXmltvChannel(epgMapId, xmlTvIdInput, newXmlTvFile); } -function checkXmltvChannel(epgMapId, xmlTvIdSelect, xmlTvFile) { - const newXmlTvId = xmlTvIdSelect.value; +function checkXmltvChannel(epgMapId, xmlTvIdInput, xmlTvFile) { + // If empty, set to '-' + xmlTvIdInput.value = xmlTvIdInput.value ? xmlTvIdInput.value : '-'; + const newXmlTvId = xmlTvIdInput.value; const channelActiveCb = document.getElementById('active'); const channelActive = newXmlTvId != '-'; channelActiveCb.checked = channelActive; @@ -1511,8 +1533,8 @@ function changeChannelLogo(epgMapId) { const channel = SERVER['xepg']['epgMapping'][epgMapId]; const xmlTvFileSelect = document.getElementById('popup-xmltv'); const xmlTvFile = xmlTvFileSelect.options[xmlTvFileSelect.selectedIndex].value; - const xmlTvIdSelect = document.getElementById('popup-mapping'); - const newXmlTvId = xmlTvIdSelect.options[xmlTvIdSelect.selectedIndex].value; + const xmlTvIdInput = document.getElementById('xmltv-id-picker-input'); + const newXmlTvId = xmlTvIdInput.value; const xmlTvLogo = SERVER['xepg']['xmltvMap'][xmlTvFile][newXmlTvId]['icon']; const updateLogo = document.getElementById('update-icon').checked; let logo; @@ -1533,16 +1555,13 @@ function changeChannelLogo(epgMapId) { function savePopupData(dataType, id, remove, option) { if (dataType == "mapping") { let data = {}; - console.log("Save mapping data"); let cmd = "saveEpgMapping"; data["epgMapping"] = SERVER["xepg"]["epgMapping"]; - console.log("SEND TO SERVER"); let server = new Server(cmd); server.request(data); delete UNDO["epgMapping"]; return; } - console.log("Save popup data"); let div = document.getElementById("popup-custom"); let inputs = div.getElementsByTagName("TABLE")[0].getElementsByTagName("INPUT"); let selects = div.getElementsByTagName("TABLE")[0].getElementsByTagName("SELECT"); @@ -1656,7 +1675,6 @@ function savePopupData(dataType, id, remove, option) { data["filter"][id] = input; break; default: - console.log(dataType, id); return; } if (remove == true) { @@ -1665,8 +1683,6 @@ function savePopupData(dataType, id, remove, option) { return; } } - console.log("SEND TO SERVER"); - console.log(data); let server = new Server(cmd); server.request(data); } @@ -1677,7 +1693,6 @@ function donePopupData(dataType, idsStr) { ids.forEach(id => { let input; input = SERVER["xepg"]["epgMapping"][id]; - console.log(input); for (let i = 0; i < inputs.length; i++) { let name; let value; @@ -1744,7 +1759,6 @@ function donePopupData(dataType, idsStr) { else { document.getElementById(id).className = "activeEPG"; } - console.log(input["tvg-logo"]); document.getElementById(id).childNodes[2].firstChild.setAttribute("src", input["tvg-logo"]); }); showElement("popup", false); diff --git a/html/js/settings_ts.js b/html/js/settings_ts.js index d2cb8e9..39fdd8b 100644 --- a/html/js/settings_ts.js +++ b/html/js/settings_ts.js @@ -481,13 +481,11 @@ class SettingsCategoryItem extends SettingsCategory { } } function showSettings() { - console.log("SETTINGS"); for (let i = 0; i < settingsCategory.length; i++) { settingsCategory[i].createCategory(); } } function saveSettings() { - console.log("Save Settings"); var cmd = "saveSettings"; var div = document.getElementById("content_settings"); var settings = div.getElementsByClassName("changed"); diff --git a/src/webUI.go b/src/webUI.go index c0e6d4c..b95fad2 100644 --- a/src/webUI.go +++ b/src/webUI.go @@ -24,14 +24,14 @@ func loadHTMLMap() { webUI["html/img/x_white.png"] = "iVBORw0KGgoAAAANSUhEUgAAAQAAAAEACAIAAADTED8xAAAAAXNSR0IArs4c6QAAAAlwSFlzAAAWJQAAFiUBSVIk8AAAA6ppVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IlhNUCBDb3JlIDUuNC4wIj4KICAgPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIgogICAgICAgICAgICB4bWxuczp0aWZmPSJodHRwOi8vbnMuYWRvYmUuY29tL3RpZmYvMS4wLyIKICAgICAgICAgICAgeG1sbnM6ZXhpZj0iaHR0cDovL25zLmFkb2JlLmNvbS9leGlmLzEuMC8iPgogICAgICAgICA8eG1wOk1vZGlmeURhdGU+MjAxOC0xMS0xNVQxNzoxMToyNTwveG1wOk1vZGlmeURhdGU+CiAgICAgICAgIDx4bXA6Q3JlYXRvclRvb2w+UGl4ZWxtYXRvciAzLjM8L3htcDpDcmVhdG9yVG9vbD4KICAgICAgICAgPHRpZmY6T3JpZW50YXRpb24+MTwvdGlmZjpPcmllbnRhdGlvbj4KICAgICAgICAgPHRpZmY6Q29tcHJlc3Npb24+NTwvdGlmZjpDb21wcmVzc2lvbj4KICAgICAgICAgPHRpZmY6UmVzb2x1dGlvblVuaXQ+MjwvdGlmZjpSZXNvbHV0aW9uVW5pdD4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+MTQ0PC90aWZmOllSZXNvbHV0aW9uPgogICAgICAgICA8dGlmZjpYUmVzb2x1dGlvbj4xNDQ8L3RpZmY6WFJlc29sdXRpb24+CiAgICAgICAgIDxleGlmOlBpeGVsWERpbWVuc2lvbj4yNTY8L2V4aWY6UGl4ZWxYRGltZW5zaW9uPgogICAgICAgICA8ZXhpZjpDb2xvclNwYWNlPjE8L2V4aWY6Q29sb3JTcGFj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" webUI["html/img/xmltv.png"] = "iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAAAXNSR0IArs4c6QAAAAlwSFlzAAAsSwAALEsBpT2WqQAABCRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IlhNUCBDb3JlIDUuNC4wIj4KICAgPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIgogICAgICAgICAgICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgICAgICAgICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyI+CiAgICAgICAgIDx0aWZmOlJlc29sdXRpb25Vbml0PjI8L3RpZmY6UmVzb2x1dGlvblVuaXQ+CiAgICAgICAgIDx0aWZmOkNvbXByZXNzaW9uPjU8L3RpZmY6Q29tcHJlc3Npb24+CiAgICAgICAgIDx0aWZmOlhSZXNvbHV0aW9uPjI4ODwvdGlmZjpYUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6T3JpZW50YXRpb24+MTwvdGlmZjpPcmllbnRhdGlvbj4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+Mjg4PC90aWZmOllSZXNvbHV0aW9uPgogICAgICAgICA8ZXhpZjpQaXhlbFhEaW1lbnNpb24+NTA8L2V4aWY6UGl4ZWxYRGltZW5zaW9uPgogICAgICAgICA8ZXhpZjpDb2xvclNwYWNlPjE8L2V4aWY6Q29sb3JTcGFjZT4KICAgICAgICAgPGV4aWY6UGl4ZWxZRGltZW5zaW9uPjUwPC9leGlmOlBpeGVsWURpbWVuc2lvbj4KICAgICAgICAgPGRjOnN1YmplY3Q+CiAgICAgICAgICAgIDxyZGY6QmFnLz4KICAgICAgICAgPC9kYzpzdWJqZWN0PgogICAgICAgICA8eG1wOk1vZGlmeURhdGU+MjAxOC0wNy0yOFQyMDowNzozMzwveG1wOk1vZGlmeURhdGU+CiAgICAgICAgIDx4bXA6Q3JlYXRvclRvb2w+UGl4ZWxtYXRvciAzLjM8L3htcDpDcmVhdG9yVG9vbD4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgIDwvcmRmOlJERj4KPC94OnhtcG1ldGE+Co6j9bsAAAGgSURBVGgF7VqxTsNADL0gYGEon8DOwsbAAH8BYmJn6cYIn8DC3h0+oixISFRiYYCJL0AwMMBAeK5w2rpV6uikxHfYknW98+vds18TK21DWGBlWR7CH+BfcEv2AzLP8HP42gLqkyUATuEp2PWEdQjF9ATs1zF/g29Mrxt+vVcUxR3xWxEktzFPJQmivsv8ZSI9DiQyVnxlIonwn6fpiczXpNuVVXH8O+a3Ys3y9NUyuf/NTTbEHZTjUlGSRzSiPhroUIENwB4AS/vS/susDwDhTpYBER9g7wHh5DWyibV9CiitCZbIafDEYUuJHQI3Nr/9ciWsjK6IFSWYhyvClbAyZqOIlYJG84jq7E1Ot97Zm+TinV1TrWwudk9EI3ebGFekzWprzspGEU2ySWCiOrs/s9dr7M/s9fVJJJrNXcsTsfaJc0WsKZINH+/sf1Jqvl1n1f2ZnStRN/pdq646XcSkIh9dkIg4s+IrE3nCpp8RG7f91ns+cCYR/LD4jcAZB42PN+A7/mcQ8ZxJhBYQvMJwBB/BKTFLVoLMC/wCfgyv7BesTKUC2LKM3wAAAABJRU5ErkJggg==" webUI["html/index.html"] = "PCFkb2N0eXBlIGh0bWw+DQo8aHRtbD4NCiAgPGhlYWQ+DQogICAgPG1ldGEgY2hhcnNldD0idXRmLTgiPg0KICAgIDwhLS0tDQogICAgPG1ldGEgbmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9IndpZHRoPWRldmljZS13aWR0aCwgaW5pdGlhbC1zY2FsZT0xLjAiIC8+IA0KICAgIC0tPg0KICAgIDx0aXRsZT54VGVWZTwvdGl0bGU+DQogICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJjc3Mvc2NyZWVuLmNzcyIgdHlwZT0idGV4dC9jc3MiPg0KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iY3NzL2Jhc2UuY3NzIiB0eXBlPSJ0ZXh0L2NzcyI+DQoNCiAgICA8c2NyaXB0IGxhbmd1YWdlPSJqYXZhc2NyaXB0IiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ianMvbmV0d29ya190cy5qcyI+PC9zY3JpcHQ+DQogICAgPHNjcmlwdCBsYW5ndWFnZT0iamF2YXNjcmlwdCIgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9ImpzL21lbnVfdHMuanMiPjwvc2NyaXB0Pg0KICAgIDxzY3JpcHQgbGFuZ3VhZ2U9ImphdmFzY3JpcHQiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJqcy9zZXR0aW5nc190cy5qcyI+PC9zY3JpcHQ+DQogICAgPHNjcmlwdCBsYW5ndWFnZT0iamF2YXNjcmlwdCIgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9ImpzL2xvZ3NfdHMuanMiPjwvc2NyaXB0Pg0KICAgIDxzY3JpcHQgbGFuZ3VhZ2U9ImphdmFzY3JpcHQiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJqcy9iYXNlX3RzLmpzIj48L3NjcmlwdD4NCg0KICA8L2hlYWQ+DQoNCiAgICA8Ym9keSBvbmxvYWQ9ImphdmFzY3JpcHQ6IFBhZ2VSZWFkeSgpOyI+DQoNCiAgICAgIDxkaXYgaWQ9ImxvYWRpbmciIGNsYXNzPSJub25lIj4NCiAgICAgICAgPGRpdiBjbGFzcz0ibG9hZGVyIj48L2Rpdj4NCiAgICAgIDwvZGl2Pg0KDQogICAgICA8ZGl2IGlkPSJwb3B1cCIgY2xhc3M9Im5vbmUiPg0KICAgICAgICA8ZGl2IGlkPSJwb3B1cC1jdXN0b20iPjwvZGl2Pg0KICAgICAgPC9kaXY+DQoNCiAgICAgIDxkaXYgaWQ9ImxheW91dCI+DQoNCiAgICAgICAgPCEtLQ0KICAgICAgICA8ZGl2IGlkPSJub3RpZmljYXRpb24iPg0KICAgICAgICAgIDxkaXYgY2xhc3M9ImVsZW1lbnQiPg0KICAgICAgICAgICAgPGg1PlhFUEc8L2g1Pg0KICAgICAgICAgICAgPHByZT4xMS4wNS4yMDE5IC0gMjA6MjE8L3ByZT4NCiAgICAgICAgICAgIDxocj4NCiAgICAgICAgICAgIDxwPkhhbGxvIGRhcyBpc3QgZWluIFRlc3QuIFVuZCBub2NoIG1laHIgVGV4dC48L3A+DQogICAgICAgICAgPC9kaXY+DQogICAgICAgIDwvZGl2Pg0KICAgICAgLS0+DQoNCiAgICAgICAgPGRpdiBpZD0ibWVudS13cmFwcGVyIiBjbGFzcz0ibGF5b3V0LWxlZnQiPg0KICAgICAgICAgIDxkaXYgaWQ9ICJicmFuY2giPjwvZGl2Pg0KICAgICAgICAgIDxkaXYgaWQ9ImxvZ28iPjwvZGl2Pg0KICAgICAgICAgIDxuYXYgaWQ9Im1haW4tbWVudSI+PC9uYXY+DQogICAgICAgIDwvZGl2Pg0KDQogICAgICAgIDxkaXYgY2xhc3M9ImxheW91dC1yaWdodCI+DQoNCiAgICAgICAgICA8dGFibGUgaWQ9ImNsaWVudEluZm8iIGNsYXNzPSIiPg0KDQogICAgICAgICAgICA8dHI+DQogICAgICAgICAgICAgIDx0ZCBjbGFzcz0idGRLZXkiPnhUZVZlOjwvdGQ+DQogICAgICAgICAgICAgIDx0ZCBpZD0idmVyc2lvbiIgY2xhc3M9InRkVmFsIj4mbmJzcDs8L3RkPg0KICAgICAgICAgICAgICA8dGQgY2xhc3M9InRkS2V5Ij5PUzo8L3RkPg0KICAgICAgICAgICAgICA8dGQgaWQ9Im9zIiBjbGFzcz0idGRWYWwiPiZuYnNwOzwvdGQ+DQogICAgICAgICAgICAgIDx0ZCBjbGFzcz0idGRLZXkgcGhvbmUiPkRWUiBJUDo8L3RkPg0KICAgICAgICAgICAgICA8dGQgaWQ9IkRWUiIgY2xhc3M9InRkVmFsIHBob25lIj4mbmJzcDs8L3RkPg0KICAgICAgICAgICAgPC90cj4NCg0KICAgICAgICAgICAgPHRyPg0KICAgICAgICAgICAgICA8dGQgY2xhc3M9InRkS2V5Ij5VVUlEOjwvdGQ+DQogICAgICAgICAgICAgIDx0ZCBpZD0idXVpZCIgY2xhc3M9InRkVmFsIj4mbmJzcDs8L3RkPg0KICAgICAgICAgICAgICA8dGQgY2xhc3M9InRkS2V5Ij5BcmNoOjwvdGQ+DQogICAgICAgICAgICAgIDx0ZCBpZD0iYXJjaCIgY2xhc3M9InRkVmFsIj4mbmJzcDs8L3RkPg0KICAgICAgICAgICAgICA8dGQgY2xhc3M9InRkS2V5IHBob25lIj5NM1UgVVJMOjwvdGQ+DQogICAgICAgICAgICAgIDx0ZCBpZD0ibTN1LXVybCIgY2xhc3M9InRkVmFsIHBob25lIj4mbmJzcDs8L3RkPg0KICAgICAgICAgICAgPC90cj4NCg0KICAgICAgICAgICAgPHRyPg0KICAgICAgICAgICAgICA8dGQgY2xhc3M9InRkS2V5Ij5BdmFpbGFibGUgU3RyZWFtczo8L3RkPg0KICAgICAgICAgICAgICA8dGQgaWQ9InN0cmVhbXMiIGNsYXNzPSJ0ZFZhbCI+Jm5ic3A7PC90ZD4NCiAgICAgICAgICAgICAgPHRkIGNsYXNzPSJ0ZEtleSI+RVBHIFNvdXJjZTo8L3RkPg0KICAgICAgICAgICAgICA8dGQgaWQ9ImVwZ1NvdXJjZSIgY2xhc3M9InRkVmFsIj4mbmJzcDs8L3RkPg0KICAgICAgICAgICAgICA8dGQgY2xhc3M9InRkS2V5IHBob25lIj5YRVBHIFVSTDo8L3RkPg0KICAgICAgICAgICAgICA8dGQgaWQ9InhlcGctdXJsIiBjbGFzcz0idGRWYWwgcGhvbmUiPiZuYnNwOzwvdGQ+DQogICAgICAgICAgICA8L3RyPg0KDQogICAgICAgICAgICA8dHI+DQogICAgICAgICAgICAgIDx0ZCBjbGFzcz0idGRLZXkiPlhFUEcgQ2hhbm5lbHM6PC90ZD4NCiAgICAgICAgICAgICAgPHRkIGlkPSJ4ZXBnIiBjbGFzcz0idGRWYWwiPiZuYnNwOzwvdGQ+DQogICAgICAgICAgICAgIDx0ZCBjbGFzcz0idGRLZXkiPkVycm9yczo8L3RkPg0KICAgICAgICAgICAgICA8dGQgaWQ9ImVycm9ycyIgY2xhc3M9InRkVmFsIj4mbmJzcDs8L3RkPg0KICAgICAgICAgICAgICA8dGQgY2xhc3M9InRkS2V5Ij5XYXJuaW5nczo8L3RkPg0KICAgICAgICAgICAgICA8dGQgaWQ9Indhcm5pbmdzIiBjbGFzcz0idGRWYWwiPiZuYnNwOzwvdGQ+DQogICAgICAgICAgICA8L3RyPg0KDQogICAgICAgICAgPC90YWJsZT4NCiAgICAgICAgIA0KICAgICAgICAgIDxkaXYgaWQ9Im15U3RyZWFtc0JveCIgY2xhc3M9Im5vdFZpc2libGUiPg0KDQogICAgICAgICAgICA8ZGl2IGlkPSJhbGxTdHJlYW1zIj4NCiAgICAgICAgICAgICAgPHRhYmxlIGlkPSJhY3RpdmVTdHJlYW1zIj48L3RhYmxlPg0KICAgICAgICAgICAgICA8dGFibGUgaWQ9ImluYWN0aXZlU3RyZWFtcyI+PC90YWJsZT4NCiAgICAgICAgICAgIDwvZGl2Pg0KDQogICAgICAgICAgPC9kaXY+DQogICAgICAgICAgDQogICAgICAgICAgPGRpdiBpZD0iY29udGVudCIgY2xhc3M9IiI+PC9kaXY+DQogICAgICAgICAgICANCiAgICAgICAgPC9kaXY+DQoNCiAgICAgIDwvZGl2Pg0KICAgICAgDQogICAgPC9ib2R5Pg0KICAgIA0KPC9odG1sPg==" - webUI["html/js/authentication_ts.js"] = "ZnVuY3Rpb24gbG9naW4oKSB7DQogICAgdmFyIGVyciA9IGZhbHNlOw0KICAgIHZhciBkYXRhID0gbmV3IE9iamVjdCgpOw0KICAgIHZhciBkaXYgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29udGVudCIpOw0KICAgIHZhciBmb3JtID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImF1dGhlbnRpY2F0aW9uIik7DQogICAgdmFyIGlucHV0cyA9IGRpdi5nZXRFbGVtZW50c0J5VGFnTmFtZSgiSU5QVVQiKTsNCiAgICBjb25zb2xlLmxvZyhpbnB1dHMpOw0KICAgIGZvciAodmFyIGkgPSBpbnB1dHMubGVuZ3RoIC0gMTsgaSA+PSAwOyBpLS0pIHsNCiAgICAgICAgdmFyIGtleSA9IGlucHV0c1tpXS5uYW1lOw0KICAgICAgICB2YXIgdmFsdWUgPSBpbnB1dHNbaV0udmFsdWU7DQogICAgICAgIGlmICh2YWx1ZS5sZW5ndGggPT0gMCkgew0KICAgICAgICAgICAgaW5wdXRzW2ldLnN0eWxlLmJvcmRlckNvbG9yID0gInJlZCI7DQogICAgICAgICAgICBlcnIgPSB0cnVlOw0KICAgICAgICB9DQogICAgICAgIGRhdGFba2V5XSA9IHZhbHVlOw0KICAgIH0NCiAgICBpZiAoZXJyID09IHRydWUpIHsNCiAgICAgICAgZGF0YSA9IG5ldyBPYmplY3QoKTsNCiAgICAgICAgcmV0dXJuOw0KICAgIH0NCiAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgiY29uZmlybSIpKSB7DQogICAgICAgIGlmIChkYXRhWyJjb25maXJtIl0gIT0gZGF0YVsicGFzc3dvcmQiXSkgew0KICAgICAgICAgICAgYWxlcnQoInNkYWZzZCIpOw0KICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Bhc3N3b3JkJykuc3R5bGUuYm9yZGVyQ29sb3IgPSAicmVkIjsNCiAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjb25maXJtJykuc3R5bGUuYm9yZGVyQ29sb3IgPSAicmVkIjsNCiAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJlcnIiKS5pbm5lckhUTUwgPSAie3suYWNjb3VudC5mYWlsZWR9fSI7DQogICAgICAgICAgICByZXR1cm47DQogICAgICAgIH0NCiAgICB9DQogICAgY29uc29sZS5sb2coZGF0YSk7DQogICAgZm9ybS5zdWJtaXQoKTsNCn0NCg==" - webUI["html/js/base_ts.js"] = "dmFyIFNFUlZFUiA9IG5ldyBPYmplY3QoKTsNCnZhciBCVUxLX0VESVQgPSBmYWxzZTsNCnZhciBDT0xVTU5fVE9fU09SVDsNCnZhciBTRUFSQ0hfTUFQUElORyA9IG5ldyBPYmplY3QoKTsNCnZhciBVTkRPID0gbmV3IE9iamVjdCgpOw0KdmFyIFNFUlZFUl9DT05ORUNUSU9OID0gZmFsc2U7DQp2YXIgV1NfQVZBSUxBQkxFID0gZmFsc2U7DQovLyBNZW51DQp2YXIgbWVudUl0ZW1zID0gbmV3IEFycmF5KCk7DQptZW51SXRlbXMucHVzaChuZXcgTWFpbk1lbnVJdGVtKCJwbGF5bGlzdCIsICJ7ey5tYWluTWVudS5pdGVtLnBsYXlsaXN0fX0iLCAibTN1LnBuZyIsICJ7ey5tYWluTWVudS5oZWFkbGluZS5wbGF5bGlzdH19IikpOw0KLy9tZW51SXRlbXMucHVzaChuZXcgTWFpbk1lbnVJdGVtKCJwbXNJRCIsICJ7ey5tYWluTWVudS5pdGVtLnBtc0lEfX0iLCAibnVtYmVyLnBuZyIsICJ7ey5tYWluTWVudS5oZWFkbGluZS5wbXNJRH19IikpDQptZW51SXRlbXMucHVzaChuZXcgTWFpbk1lbnVJdGVtKCJmaWx0ZXIiLCAie3subWFpbk1lbnUuaXRlbS5maWx0ZXJ9fSIsICJmaWx0ZXIucG5nIiwgInt7Lm1haW5NZW51LmhlYWRsaW5lLmZpbHRlcn19IikpOw0KbWVudUl0ZW1zLnB1c2gobmV3IE1haW5NZW51SXRlbSgieG1sdHYiLCAie3subWFpbk1lbnUuaXRlbS54bWx0dn19IiwgInhtbHR2LnBuZyIsICJ7ey5tYWluTWVudS5oZWFkbGluZS54bWx0dn19IikpOw0KbWVudUl0ZW1zLnB1c2gobmV3IE1haW5NZW51SXRlbSgibWFwcGluZyIsICJ7ey5tYWluTWVudS5pdGVtLm1hcHBpbmd9fSIsICJtYXBwaW5nLnBuZyIsICJ7ey5tYWluTWVudS5oZWFkbGluZS5tYXBwaW5nfX0iKSk7DQptZW51SXRlbXMucHVzaChuZXcgTWFpbk1lbnVJdGVtKCJ1c2VycyIsICJ7ey5tYWluTWVudS5pdGVtLnVzZXJzfX0iLCAidXNlcnMucG5nIiwgInt7Lm1haW5NZW51LmhlYWRsaW5lLnVzZXJzfX0iKSk7DQptZW51SXRlbXMucHVzaChuZXcgTWFpbk1lbnVJdGVtKCJzZXR0aW5ncyIsICJ7ey5tYWluTWVudS5pdGVtLnNldHRpbmdzfX0iLCAic2V0dGluZ3MucG5nIiwgInt7Lm1haW5NZW51LmhlYWRsaW5lLnNldHRpbmdzfX0iKSk7DQptZW51SXRlbXMucHVzaChuZXcgTWFpbk1lbnVJdGVtKCJsb2ciLCAie3subWFpbk1lbnUuaXRlbS5sb2d9fSIsICJsb2cucG5nIiwgInt7Lm1haW5NZW51LmhlYWRsaW5lLmxvZ319IikpOw0KbWVudUl0ZW1zLnB1c2gobmV3IE1haW5NZW51SXRlbSgibG9nb3V0IiwgInt7Lm1haW5NZW51Lml0ZW0ubG9nb3V0fX0iLCAibG9nb3V0LnBuZyIsICJ7ey5tYWluTWVudS5oZWFkbGluZS5sb2dvdXR9fSIpKTsNCi8vIFNldHRpbmdzIGNhdGVnb3JpZXMNCnZhciBzZXR0aW5nc0NhdGVnb3J5ID0gbmV3IEFycmF5KCk7DQpzZXR0aW5nc0NhdGVnb3J5LnB1c2gobmV3IFNldHRpbmdzQ2F0ZWdvcnlJdGVtKCJ7ey5zZXR0aW5ncy5jYXRlZ29yeS5nZW5lcmFsfX0iLCAidGxzTW9kZSx4dGV2ZUF1dG9VcGRhdGUsaG9zdElQLHR1bmVyLGVwZ1NvdXJjZSxhcGkiKSk7DQpzZXR0aW5nc0NhdGVnb3J5LnB1c2gobmV3IFNldHRpbmdzQ2F0ZWdvcnlJdGVtKCJ7ey5zZXR0aW5ncy5jYXRlZ29yeS5maWxlc319IiwgInVwZGF0ZSxmaWxlcy51cGRhdGUsdGVtcC5wYXRoLGNhY2hlLmltYWdlcyx4ZXBnLnJlcGxhY2UubWlzc2luZy5pbWFnZXMiKSk7DQpzZXR0aW5nc0NhdGVnb3J5LnB1c2gobmV3IFNldHRpbmdzQ2F0ZWdvcnlJdGVtKCJ7ey5zZXR0aW5ncy5jYXRlZ29yeS5zdHJlYW1pbmd9fSIsICJidWZmZXIsdWRweHksYnVmZmVyLnNpemUua2Isc3RvcmVCdWZmZXJJblJBTSxidWZmZXIudGltZW91dCx1c2VyLmFnZW50LGZmbXBlZy5wYXRoLGZmbXBlZy5vcHRpb25zLHZsYy5wYXRoLHZsYy5vcHRpb25zIikpOw0Kc2V0dGluZ3NDYXRlZ29yeS5wdXNoKG5ldyBTZXR0aW5nc0NhdGVnb3J5SXRlbSgie3suc2V0dGluZ3MuY2F0ZWdvcnkuYmFja3VwfX0iLCAiYmFja3VwLnBhdGgsYmFja3VwLmtlZXAiKSk7DQpzZXR0aW5nc0NhdGVnb3J5LnB1c2gobmV3IFNldHRpbmdzQ2F0ZWdvcnlJdGVtKCJ7ey5zZXR0aW5ncy5jYXRlZ29yeS5hdXRoZW50aWNhdGlvbn19IiwgImF1dGhlbnRpY2F0aW9uLndlYixhdXRoZW50aWNhdGlvbi5wbXMsYXV0aGVudGljYXRpb24ubTN1LGF1dGhlbnRpY2F0aW9uLnhtbCxhdXRoZW50aWNhdGlvbi5hcGkiKSk7DQpmdW5jdGlvbiBzaG93UG9wVXBFbGVtZW50KGVsbSkgew0KICAgIHZhciBhbGxFbGVtZW50cyA9IG5ldyBBcnJheSgicG9wdXAtY3VzdG9tIik7DQogICAgZm9yICh2YXIgaSA9IDA7IGkgPCBhbGxFbGVtZW50cy5sZW5ndGg7IGkrKykgew0KICAgICAgICBzaG93RWxlbWVudChhbGxFbGVtZW50c1tpXSwgZmFsc2UpOw0KICAgIH0NCiAgICBzaG93RWxlbWVudChlbG0sIHRydWUpOw0KICAgIHNldFRpbWVvdXQoZnVuY3Rpb24gKCkgew0KICAgICAgICBzaG93RWxlbWVudCgicG9wdXAiLCB0cnVlKTsNCiAgICB9LCAxMCk7DQogICAgcmV0dXJuOw0KfQ0KZnVuY3Rpb24gc2hvd0VsZW1lbnQoZWxtSUQsIHR5cGUpIHsNCiAgICB2YXIgY3NzQ2xhc3M7DQogICAgc3dpdGNoICh0eXBlKSB7DQogICAgICAgIGNhc2UgdHJ1ZToNCiAgICAgICAgICAgIGNzc0NsYXNzID0gImJsb2NrIjsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlIGZhbHNlOg0KICAgICAgICAgICAgY3NzQ2xhc3MgPSAibm9uZSI7DQogICAgICAgICAgICBicmVhazsNCiAgICB9DQogICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoZWxtSUQpLmNsYXNzTmFtZSA9IGNzc0NsYXNzOw0KfQ0KZnVuY3Rpb24gY2hhbmdlQnV0dG9uQWN0aW9uKGVsZW1lbnQsIGJ1dHRvbklELCBhdHRyaWJ1dGUpIHsNCiAgICB2YXIgdmFsdWUgPSBlbGVtZW50Lm9wdGlvbnNbZWxlbWVudC5zZWxlY3RlZEluZGV4XS52YWx1ZTsNCiAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChidXR0b25JRCkuc2V0QXR0cmlidXRlKGF0dHJpYnV0ZSwgdmFsdWUpOw0KfQ0KZnVuY3Rpb24gZ2V0TG9jYWxEYXRhKGRhdGFUeXBlLCBpZCkgew0KICAgIGxldCBkYXRhID0ge307DQogICAgc3dpdGNoIChkYXRhVHlwZSkgew0KICAgICAgICBjYXNlICJtM3UiOg0KICAgICAgICAgICAgZGF0YSA9IFNFUlZFUlsic2V0dGluZ3MiXVsiZmlsZXMiXVtkYXRhVHlwZV1baWRdOw0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGNhc2UgImhkaHIiOg0KICAgICAgICAgICAgZGF0YSA9IFNFUlZFUlsic2V0dGluZ3MiXVsiZmlsZXMiXVtkYXRhVHlwZV1baWRdOw0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGNhc2UgImZpbHRlciI6DQogICAgICAgIGNhc2UgImN1c3RvbS1maWx0ZXIiOg0KICAgICAgICBjYXNlICJncm91cC10aXRsZSI6DQogICAgICAgICAgICBpZiAoaWQgPT0gLTEpIHsNCiAgICAgICAgICAgICAgICBkYXRhWyJhY3RpdmUiXSA9IHRydWU7DQogICAgICAgICAgICAgICAgZGF0YVsiY2FzZVNlbnNpdGl2ZSJdID0gZmFsc2U7DQogICAgICAgICAgICAgICAgZGF0YVsiZGVzY3JpcHRpb24iXSA9ICIiOw0KICAgICAgICAgICAgICAgIGRhdGFbImV4Y2x1ZGUiXSA9ICIiOw0KICAgICAgICAgICAgICAgIGRhdGFbImZpbHRlciJdID0gIiI7DQogICAgICAgICAgICAgICAgZGF0YVsiaW5jbHVkZSJdID0gIiI7DQogICAgICAgICAgICAgICAgZGF0YVsibmFtZSJdID0gIiI7DQogICAgICAgICAgICAgICAgZGF0YVsidHlwZSJdID0gImdyb3VwLXRpdGxlIjsNCiAgICAgICAgICAgICAgICBkYXRhWyJwcmVzZXJ2ZU1hcHBpbmciXSA9IHRydWU7DQogICAgICAgICAgICAgICAgZGF0YVsic3RhcnRpbmdDaGFubmVsIl0gPSBTRVJWRVJbInNldHRpbmdzIl1bIm1hcHBpbmcuZmlyc3QuY2hhbm5lbCJdOw0KICAgICAgICAgICAgICAgIGRhdGFbImRlZmF1bHRNaXNzaW5nRVBHIl0gPSAiLSI7DQogICAgICAgICAgICAgICAgU0VSVkVSWyJzZXR0aW5ncyJdWyJmaWx0ZXIiXVtpZF0gPSBkYXRhOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgZGF0YSA9IFNFUlZFUlsic2V0dGluZ3MiXVsiZmlsdGVyIl1baWRdOw0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGNhc2UgInhtbHR2IjoNCiAgICAgICAgICAgIGRhdGEgPSBTRVJWRVJbInNldHRpbmdzIl1bImZpbGVzIl1bZGF0YVR5cGVdW2lkXTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJ1c2VycyI6DQogICAgICAgICAgICBkYXRhID0gU0VSVkVSWyJ1c2VycyJdW2lkXVsiZGF0YSJdOw0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGNhc2UgIm1hcHBpbmciOg0KICAgICAgICAgICAgZGF0YSA9IFNFUlZFUlsieGVwZyJdWyJlcGdNYXBwaW5nIl1baWRdOw0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGNhc2UgIm0zdUdyb3VwcyI6DQogICAgICAgICAgICBkYXRhID0gU0VSVkVSWyJkYXRhIl1bInBsYXlsaXN0Il1bIm0zdSJdWyJncm91cHMiXTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgIH0NCiAgICByZXR1cm4gZGF0YTsNCn0NCmZ1bmN0aW9uIGdldE93bk9ialByb3BzKG9iamVjdCkgew0KICAgIHJldHVybiBvYmplY3QgPyBPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyhvYmplY3QpIDogW107DQp9DQpmdW5jdGlvbiBnZXRBbGxTZWxlY3RlZENoYW5uZWxzKCkgew0KICAgIHZhciBjaGFubmVscyA9IG5ldyBBcnJheSgpOw0KICAgIGlmIChCVUxLX0VESVQgPT0gZmFsc2UpIHsNCiAgICAgICAgcmV0dXJuIGNoYW5uZWxzOw0KICAgIH0NCiAgICB2YXIgdHJzID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnRlbnRfdGFibGUiKS5nZXRFbGVtZW50c0J5VGFnTmFtZSgiVFIiKTsNCiAgICBmb3IgKHZhciBpID0gMTsgaSA8IHRycy5sZW5ndGg7IGkrKykgew0KICAgICAgICBpZiAodHJzW2ldLnN0eWxlLmRpc3BsYXkgIT0gIm5vbmUiKSB7DQogICAgICAgICAgICBpZiAodHJzW2ldLmZpcnN0Q2hpbGQuZmlyc3RDaGlsZC5jaGVja2VkID09IHRydWUpIHsNCiAgICAgICAgICAgICAgICBjaGFubmVscy5wdXNoKHRyc1tpXS5pZCk7DQogICAgICAgICAgICB9DQogICAgICAgIH0NCiAgICB9DQogICAgcmV0dXJuIGNoYW5uZWxzOw0KfQ0KZnVuY3Rpb24gc2VsZWN0QWxsQ2hhbm5lbHMoKSB7DQogICAgdmFyIGJ1bGsgPSBmYWxzZTsNCiAgICB2YXIgdHJzID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnRlbnRfdGFibGUiKS5nZXRFbGVtZW50c0J5VGFnTmFtZSgiVFIiKTsNCiAgICBpZiAodHJzWzBdLmZpcnN0Q2hpbGQuZmlyc3RDaGlsZC5jaGVja2VkID09IHRydWUpIHsNCiAgICAgICAgYnVsayA9IHRydWU7DQogICAgfQ0KICAgIGZvciAodmFyIGkgPSAxOyBpIDwgdHJzLmxlbmd0aDsgaSsrKSB7DQogICAgICAgIGlmICh0cnNbaV0uc3R5bGUuZGlzcGxheSAhPSAibm9uZSIpIHsNCiAgICAgICAgICAgIHN3aXRjaCAoYnVsaykgew0KICAgICAgICAgICAgICAgIGNhc2UgdHJ1ZToNCiAgICAgICAgICAgICAgICAgICAgdHJzW2ldLmZpcnN0Q2hpbGQuZmlyc3RDaGlsZC5jaGVja2VkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSBmYWxzZToNCiAgICAgICAgICAgICAgICAgICAgdHJzW2ldLmZpcnN0Q2hpbGQuZmlyc3RDaGlsZC5jaGVja2VkID0gZmFsc2U7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQogICAgfQ0KICAgIHJldHVybjsNCn0NCmZ1bmN0aW9uIGJ1bGtFZGl0KCkgew0KICAgIEJVTEtfRURJVCA9ICFCVUxLX0VESVQ7DQogICAgdmFyIGNsYXNzTmFtZTsNCiAgICB2YXIgcm93cyA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlDbGFzc05hbWUoImJ1bGsiKTsNCiAgICBzd2l0Y2ggKEJVTEtfRURJVCkgew0KICAgICAgICBjYXNlIHRydWU6DQogICAgICAgICAgICBjbGFzc05hbWUgPSAiYnVsayBzaG93QnVsayI7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSBmYWxzZToNCiAgICAgICAgICAgIGNsYXNzTmFtZSA9ICJidWxrIGhpZGVCdWxrIjsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgIH0NCiAgICBmb3IgKHZhciBpID0gMDsgaSA8IHJvd3MubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgcm93c1tpXS5jbGFzc05hbWUgPSBjbGFzc05hbWU7DQogICAgICAgIHJvd3NbaV0uY2hlY2tlZCA9IGZhbHNlOw0KICAgIH0NCiAgICByZXR1cm47DQp9DQpmdW5jdGlvbiBzb3J0VGFibGUoY29sdW1uKSB7DQogICAgaWYgKGNvbHVtbiA9PSBDT0xVTU5fVE9fU09SVCkgew0KICAgICAgICByZXR1cm47DQogICAgfQ0KICAgIGNvbnN0IHRhYmxlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnRlbnRfdGFibGUiKTsNCiAgICBjb25zdCB0YWJsZUhlYWQgPSB0YWJsZS5nZXRFbGVtZW50c0J5VGFnTmFtZSgiVFIiKVswXTsNCiAgICBjb25zdCB0YWJsZUl0ZW1zID0gdGFibGVIZWFkLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJURCIpOw0KICAgIGNvbnN0IHNvcnRBcnIgPSBbXTsNCiAgICBsZXQgeFZhbHVlOw0KICAgIGlmIChjb2x1bW4gPj0gMCAmJiBDT0xVTU5fVE9fU09SVCA+PSAwKSB7DQogICAgICAgIHRhYmxlSXRlbXNbQ09MVU1OX1RPX1NPUlRdLmNsYXNzTmFtZSA9ICJwb2ludGVyIjsNCiAgICAgICAgdGFibGVJdGVtc1tjb2x1bW5dLmNsYXNzTmFtZSA9ICJzb3J0VGhpcyI7DQogICAgfQ0KICAgIENPTFVNTl9UT19TT1JUID0gY29sdW1uOw0KICAgIGNvbnN0IHJvd3MgPSB0YWJsZS5yb3dzOw0KICAgIGlmIChyb3dzWzFdICE9IHVuZGVmaW5lZCkgew0KICAgICAgICBjb25zdCB0YWJsZUhlYWRlciA9IHJvd3NbMF07DQogICAgICAgIGxldCB4ID0gcm93c1sxXS5nZXRFbGVtZW50c0J5VGFnTmFtZSgiVEQiKVtjb2x1bW5dOw0KICAgICAgICBmb3IgKGxldCBpID0gMTsgaSA8IHJvd3MubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgICAgIHggPSByb3dzW2ldLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJURCIpW2NvbHVtbl07DQogICAgICAgICAgICBzd2l0Y2ggKHguY2hpbGROb2Rlc1swXS50YWdOYW1lLnRvTG93ZXJDYXNlKCkpIHsNCiAgICAgICAgICAgICAgICBjYXNlICJpbnB1dCI6DQogICAgICAgICAgICAgICAgICAgIHhWYWx1ZSA9IHguZ2V0RWxlbWVudHNCeVRhZ05hbWUoIklOUFVUIilbMF0udmFsdWUudG9Mb3dlckNhc2UoKTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAicCI6DQogICAgICAgICAgICAgICAgICAgIHhWYWx1ZSA9IHguZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlAiKVswXS5pbm5lclRleHQudG9Mb3dlckNhc2UoKTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coeC5jaGlsZE5vZGVzWzBdLnRhZ05hbWUpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgc29ydEFyci5wdXNoKHsga2V5OiB4VmFsdWUgPyB4VmFsdWUgOiBpLCByb3c6IHJvd3NbaV0gfSk7DQogICAgICAgIH0NCiAgICAgICAgd2hpbGUgKHRhYmxlLmZpcnN0Q2hpbGQpIHsNCiAgICAgICAgICAgIHRhYmxlLnJlbW92ZUNoaWxkKHRhYmxlLmZpcnN0Q2hpbGQpOw0KICAgICAgICB9DQogICAgICAgIHNvcnRBcnIuc29ydCgoc2UxLCBzZTIpID0+IHsNCiAgICAgICAgICAgIGNvbnN0IHNlMUtleU51bSA9IHBhcnNlRmxvYXQoU3RyaW5nKHNlMS5rZXkpKTsNCiAgICAgICAgICAgIGNvbnN0IHNlMktleU51bSA9IHBhcnNlRmxvYXQoU3RyaW5nKHNlMi5rZXkpKTsNCiAgICAgICAgICAgIGlmICghaXNOYU4oc2UxS2V5TnVtKSAmJiAhaXNOYU4oc2UyS2V5TnVtKSkgew0KICAgICAgICAgICAgICAgIHJldHVybiBzZTFLZXlOdW0gLSBzZTJLZXlOdW07DQogICAgICAgICAgICB9DQogICAgICAgICAgICBpZiAoc2UxLmtleSA8IHNlMi5rZXkpIHsNCiAgICAgICAgICAgICAgICByZXR1cm4gLTE7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBpZiAoc2UxLmtleSA+IHNlMi5rZXkpIHsNCiAgICAgICAgICAgICAgICByZXR1cm4gMTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIHJldHVybiAwOw0KICAgICAgICB9KTsNCiAgICAgICAgdGFibGUuYXBwZW5kQ2hpbGQodGFibGVIZWFkZXIpOw0KICAgICAgICBzb3J0QXJyLmZvckVhY2goKHNlKSA9PiB7DQogICAgICAgICAgICB0YWJsZS5hcHBlbmRDaGlsZChzZS5yb3cpOw0KICAgICAgICB9KTsNCiAgICB9DQogICAgcmV0dXJuOw0KfQ0KZnVuY3Rpb24gY3JlYXRlU2VhcmNoT2JqKCkgew0KICAgIFNFQVJDSF9NQVBQSU5HID0gbmV3IE9iamVjdCgpOw0KICAgIHZhciBkYXRhID0gU0VSVkVSWyJ4ZXBnIl1bImVwZ01hcHBpbmciXTsNCiAgICB2YXIgY2hhbm5lbHMgPSBnZXRPd25PYmpQcm9wcyhkYXRhKTsNCiAgICB2YXIgY2hhbm5lbEtleXMgPSBbIngtYWN0aXZlIiwgIngtY2hhbm5lbElEIiwgIngtbmFtZSIsICJfZmlsZS5tM3UubmFtZSIsICJ4LWdyb3VwLXRpdGxlIiwgIngteG1sdHYtZmlsZSJdOw0KICAgIGNoYW5uZWxzLmZvckVhY2goaWQgPT4gew0KICAgICAgICBjaGFubmVsS2V5cy5mb3JFYWNoKGtleSA9PiB7DQogICAgICAgICAgICBpZiAoa2V5ID09ICJ4LWFjdGl2ZSIpIHsNCiAgICAgICAgICAgICAgICBzd2l0Y2ggKGRhdGFbaWRdW2tleV0pIHsNCiAgICAgICAgICAgICAgICAgICAgY2FzZSB0cnVlOg0KICAgICAgICAgICAgICAgICAgICAgICAgU0VBUkNIX01BUFBJTkdbaWRdID0gIm9ubGluZSAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgICAgIGNhc2UgZmFsc2U6DQogICAgICAgICAgICAgICAgICAgICAgICBTRUFSQ0hfTUFQUElOR1tpZF0gPSAib2ZmbGluZSAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgZWxzZSB7DQogICAgICAgICAgICAgICAgaWYgKGtleSA9PSAieC14bWx0di1maWxlIikgew0KICAgICAgICAgICAgICAgICAgICB2YXIgeG1sdHZGaWxlID0gZ2V0VmFsdWVGcm9tUHJvdmlkZXJGaWxlKGRhdGFbaWRdW2tleV0sICJ4bWx0diIsICJuYW1lIik7DQogICAgICAgICAgICAgICAgICAgIGlmICh4bWx0dkZpbGUgIT0gdW5kZWZpbmVkKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBTRUFSQ0hfTUFQUElOR1tpZF0gPSBTRUFSQ0hfTUFQUElOR1tpZF0gKyB4bWx0dkZpbGUgKyAiICI7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgZWxzZSB7DQogICAgICAgICAgICAgICAgICAgIFNFQVJDSF9NQVBQSU5HW2lkXSA9IFNFQVJDSF9NQVBQSU5HW2lkXSArIGRhdGFbaWRdW2tleV0gKyAiICI7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfQ0KICAgICAgICB9KTsNCiAgICB9KTsNCiAgICByZXR1cm47DQp9DQpmdW5jdGlvbiBzZWFyY2hJbk1hcHBpbmcoKSB7DQogICAgdmFyIHNlYXJjaFZhbHVlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNlYXJjaE1hcHBpbmciKS52YWx1ZTsNCiAgICB2YXIgdHJzID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnRlbnRfdGFibGUiKS5nZXRFbGVtZW50c0J5VGFnTmFtZSgiVFIiKTsNCiAgICBmb3IgKHZhciBpID0gMTsgaSA8IHRycy5sZW5ndGg7ICsraSkgew0KICAgICAgICB2YXIgaWQgPSB0cnNbaV0uZ2V0QXR0cmlidXRlKCJpZCIpOw0KICAgICAgICB2YXIgZWxlbWVudCA9IFNFQVJDSF9NQVBQSU5HW2lkXTsNCiAgICAgICAgc3dpdGNoIChlbGVtZW50LnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoc2VhcmNoVmFsdWUudG9Mb3dlckNhc2UoKSkpIHsNCiAgICAgICAgICAgIGNhc2UgdHJ1ZToNCiAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkuc3R5bGUuZGlzcGxheSA9ICIiOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSBmYWxzZToNCiAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkuc3R5bGUuZGlzcGxheSA9ICJub25lIjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgfQ0KICAgIH0NCiAgICByZXR1cm47DQp9DQpmdW5jdGlvbiBjYWxjdWxhdGVXcmFwcGVySGVpZ2h0KCkgew0KICAgIGlmIChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYm94LXdyYXBwZXIiKSkgew0KICAgICAgICB2YXIgZWxtID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImJveC13cmFwcGVyIik7DQogICAgICAgIHZhciBkaXZzID0gbmV3IEFycmF5KCJteVN0cmVhbXNCb3giLCAiY2xpZW50SW5mbyIsICJjb250ZW50Iik7DQogICAgICAgIHZhciBlbGVtZW50c0hlaWdodCA9IDAgLSBlbG0ub2Zmc2V0SGVpZ2h0Ow0KICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGRpdnMubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgICAgIGVsZW1lbnRzSGVpZ2h0ID0gZWxlbWVudHNIZWlnaHQgKyBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChkaXZzW2ldKS5vZmZzZXRIZWlnaHQ7DQogICAgICAgIH0NCiAgICAgICAgZWxtLnN0eWxlLmhlaWdodCA9IHdpbmRvdy5pbm5lckhlaWdodCAtIGVsZW1lbnRzSGVpZ2h0ICsgInB4IjsNCiAgICB9DQogICAgcmV0dXJuOw0KfQ0KZnVuY3Rpb24gY2hhbmdlQ2hhbm5lbE51bWJlcihlbGVtZW50KSB7DQogICAgdmFyIGRiSUQgPSBlbGVtZW50LnBhcmVudE5vZGUucGFyZW50Tm9kZS5pZDsNCiAgICB2YXIgbmV3TnVtYmVyID0gcGFyc2VGbG9hdChlbGVtZW50LnZhbHVlKTsNCiAgICB2YXIgY2hhbm5lbE51bWJlcnMgPSBbXTsNCiAgICB2YXIgZGF0YSA9IFNFUlZFUlsieGVwZyJdWyJlcGdNYXBwaW5nIl07DQogICAgdmFyIGNoYW5uZWxzID0gZ2V0T3duT2JqUHJvcHMoZGF0YSk7DQogICAgaWYgKGlzTmFOKG5ld051bWJlcikpIHsNCiAgICAgICAgYWxlcnQoInt7LmFsZXJ0LmludmFsaWRDaGFubmVsTnVtYmVyfX0iKTsNCiAgICAgICAgcmV0dXJuOw0KICAgIH0NCiAgICBjaGFubmVscy5mb3JFYWNoKGlkID0+IHsNCiAgICAgICAgdmFyIGNoYW5uZWxOdW1iZXIgPSBwYXJzZUZsb2F0KGRhdGFbaWRdWyJ4LWNoYW5uZWxJRCJdKTsNCiAgICAgICAgY2hhbm5lbE51bWJlcnMucHVzaChjaGFubmVsTnVtYmVyKTsNCiAgICB9KTsNCiAgICBmb3IgKHZhciBpID0gMDsgaSA8IGNoYW5uZWxOdW1iZXJzLmxlbmd0aDsgaSsrKSB7DQogICAgICAgIGlmIChjaGFubmVsTnVtYmVycy5pbmRleE9mKG5ld051bWJlcikgPT0gLTEpIHsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICB9DQogICAgICAgIGlmIChNYXRoLmZsb29yKG5ld051bWJlcikgPT0gbmV3TnVtYmVyKSB7DQogICAgICAgICAgICBuZXdOdW1iZXIgPSBuZXdOdW1iZXIgKyAxOw0KICAgICAgICB9DQogICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgbmV3TnVtYmVyID0gbmV3TnVtYmVyICsgMC4xOw0KICAgICAgICAgICAgbmV3TnVtYmVyLnRvRml4ZWQoMSk7DQogICAgICAgICAgICBuZXdOdW1iZXIgPSBNYXRoLnJvdW5kKG5ld051bWJlciAqIDEwKSAvIDEwOw0KICAgICAgICB9DQogICAgfQ0KICAgIGRhdGFbZGJJRF1bIngtY2hhbm5lbElEIl0gPSBuZXdOdW1iZXIudG9TdHJpbmcoKTsNCiAgICBlbGVtZW50LnZhbHVlID0gbmV3TnVtYmVyOw0KICAgIGNvbnNvbGUubG9nKGRhdGFbZGJJRF1bIngtY2hhbm5lbElEIl0pOw0KICAgIGlmIChDT0xVTU5fVE9fU09SVCA9PSAxKSB7DQogICAgICAgIENPTFVNTl9UT19TT1JUID0gLTE7DQogICAgICAgIHNvcnRUYWJsZSgxKTsNCiAgICB9DQogICAgcmV0dXJuOw0KfQ0KZnVuY3Rpb24gYmFja3VwKCkgew0KICAgIHZhciBkYXRhID0gbmV3IE9iamVjdCgpOw0KICAgIGNvbnNvbGUubG9nKCJCYWNrdXAgZGF0YSIpOw0KICAgIHZhciBjbWQgPSAieHRldmVCYWNrdXAiOw0KICAgIGNvbnNvbGUubG9nKCJTRU5EIFRPIFNFUlZFUiIpOw0KICAgIGNvbnNvbGUubG9nKGRhdGEpOw0KICAgIHZhciBzZXJ2ZXIgPSBuZXcgU2VydmVyKGNtZCk7DQogICAgc2VydmVyLnJlcXVlc3QoZGF0YSk7DQogICAgcmV0dXJuOw0KfQ0KZnVuY3Rpb24gdG9nZ2xlQ2hhbm5lbFN0YXR1cyhpZCkgew0KICAgIHZhciBlbGVtZW50Ow0KICAgIHZhciBzdGF0dXM7DQogICAgaWYgKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJhY3RpdmUiKSkgew0KICAgICAgICB2YXIgY2hlY2tib3ggPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYWN0aXZlIik7DQogICAgICAgIHN0YXR1cyA9IChjaGVja2JveCkuY2hlY2tlZDsNCiAgICB9DQogICAgdmFyIGlkcyA9IGdldEFsbFNlbGVjdGVkQ2hhbm5lbHMoKTsNCiAgICBpZiAoaWRzLmxlbmd0aCA9PSAwKSB7DQogICAgICAgIGlkcy5wdXNoKGlkKTsNCiAgICB9DQogICAgaWRzLmZvckVhY2goaWQgPT4gew0KICAgICAgICB2YXIgY2hhbm5lbCA9IFNFUlZFUlsieGVwZyJdWyJlcGdNYXBwaW5nIl1baWRdOw0KICAgICAgICBjaGFubmVsWyJ4LWFjdGl2ZSJdID0gc3RhdHVzOw0KICAgICAgICBzd2l0Y2ggKGNoYW5uZWxbIngtYWN0aXZlIl0pIHsNCiAgICAgICAgICAgIGNhc2UgdHJ1ZToNCiAgICAgICAgICAgICAgICBpZiAoY2hhbm5lbFsieC14bWx0di1maWxlIl0gPT0gIi0iIHx8IGNoYW5uZWxbIngtbWFwcGluZyJdID09ICItIikgew0KICAgICAgICAgICAgICAgICAgICBpZiAoQlVMS19FRElUID09IGZhbHNlKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBhbGVydChjaGFubmVsWyJ4LW5hbWUiXSArICI6IE1pc3NpbmcgWE1MVFYgZmlsZSAvIGNoYW5uZWwiKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNoZWNrYm94LmNoZWNrZWQgPSBmYWxzZTsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBjaGFubmVsWyJ4LWFjdGl2ZSJdID0gZmFsc2U7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSBmYWxzZToNCiAgICAgICAgICAgICAgICAvLyBjb2RlLi4uDQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIH0NCiAgICAgICAgaWYgKGNoYW5uZWxbIngtYWN0aXZlIl0gPT0gZmFsc2UpIHsNCiAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5jbGFzc05hbWUgPSAibm90QWN0aXZlRVBHIjsNCiAgICAgICAgfQ0KICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5jbGFzc05hbWUgPSAiYWN0aXZlRVBHIjsNCiAgICAgICAgfQ0KICAgIH0pOw0KfQ0KZnVuY3Rpb24gdG9nZ2xlR3JvdXBVcGRhdGVDYih4ZXBnSWQsIHRhcmdldCkgew0KICAgIHRhcmdldC5jbGFzc05hbWUgPSAnY2hhbmdlZCc7DQogICAgY29uc3QgZ3JvdXBJbnB1dCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ2lucHV0W25hbWU9IngtZ3JvdXAtdGl0bGUiXScpOw0KICAgIGNvbnN0IG1hcHBpbmcgPSBnZXRMb2NhbERhdGEoJ21hcHBpbmcnLCB4ZXBnSWQpOw0KICAgIGlmICh0YXJnZXQuY2hlY2tlZCkgew0KICAgICAgICBncm91cElucHV0LmRhdGFzZXQub2xkVmFsdWUgPSBncm91cElucHV0LnZhbHVlOw0KICAgICAgICBncm91cElucHV0LnZhbHVlID0gbWFwcGluZ1snZ3JvdXAtdGl0bGUnXTsNCiAgICAgICAgZ3JvdXBJbnB1dC5kaXNhYmxlZCA9IHRydWU7DQogICAgfQ0KICAgIGVsc2Ugew0KICAgICAgICBncm91cElucHV0LnZhbHVlID0gZ3JvdXBJbnB1dC5kYXRhc2V0Lm9sZFZhbHVlOw0KICAgICAgICBncm91cElucHV0LmRpc2FibGVkID0gZmFsc2U7DQogICAgfQ0KICAgIGdyb3VwSW5wdXQuY2xhc3NOYW1lID0gJ2NoYW5nZWQnOw0KfQ0KZnVuY3Rpb24gcmVzdG9yZSgpIHsNCiAgICBpZiAoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3VwbG9hZCcpKSB7DQogICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd1cGxvYWQnKS5yZW1vdmUoKTsNCiAgICB9DQogICAgdmFyIHJlc3RvcmUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJJTlBVVCIpOw0KICAgIHJlc3RvcmUuc2V0QXR0cmlidXRlKCJ0eXBlIiwgImZpbGUiKTsNCiAgICByZXN0b3JlLnNldEF0dHJpYnV0ZSgiY2xhc3MiLCAibm90VmlzaWJsZSIpOw0KICAgIHJlc3RvcmUuc2V0QXR0cmlidXRlKCJuYW1lIiwgIiIpOw0KICAgIHJlc3RvcmUuaWQgPSAidXBsb2FkIjsNCiAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHJlc3RvcmUpOw0KICAgIHJlc3RvcmUuY2xpY2soKTsNCiAgICByZXN0b3JlLm9uY2hhbmdlID0gZnVuY3Rpb24gKCkgew0KICAgICAgICB2YXIgZmlsZW5hbWUgPSByZXN0b3JlLmZpbGVzWzBdLm5hbWU7DQogICAgICAgIHZhciBjaGVjayA9IGNvbmZpcm0oIkZpbGU6ICIgKyBmaWxlbmFtZSArICJcbnt7LmNvbmZpcm0ucmVzdG9yZX19Iik7DQogICAgICAgIGlmIChjaGVjayA9PSB0cnVlKSB7DQogICAgICAgICAgICB2YXIgcmVhZGVyID0gbmV3IEZpbGVSZWFkZXIoKTsNCiAgICAgICAgICAgIHZhciBmaWxlID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignaW5wdXRbdHlwZT1maWxlXScpLmZpbGVzWzBdOw0KICAgICAgICAgICAgaWYgKGZpbGUpIHsNCiAgICAgICAgICAgICAgICByZWFkZXIucmVhZEFzRGF0YVVSTChmaWxlKTsNCiAgICAgICAgICAgICAgICByZWFkZXIub25sb2FkID0gZnVuY3Rpb24gKCkgew0KICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhyZWFkZXIucmVzdWx0KTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGRhdGEgPSBuZXcgT2JqZWN0KCk7DQogICAgICAgICAgICAgICAgICAgIHZhciBjbWQgPSAieHRldmVSZXN0b3JlIjsNCiAgICAgICAgICAgICAgICAgICAgZGF0YVsiYmFzZTY0Il0gPSByZWFkZXIucmVzdWx0Ow0KICAgICAgICAgICAgICAgICAgICB2YXIgc2VydmVyID0gbmV3IFNlcnZlcihjbWQpOw0KICAgICAgICAgICAgICAgICAgICBzZXJ2ZXIucmVxdWVzdChkYXRhKTsNCiAgICAgICAgICAgICAgICB9Ow0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgZWxzZSB7DQogICAgICAgICAgICAgICAgYWxlcnQoIkZpbGUgY291bGQgbm90IGJlIGxvYWRlZCIpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgcmVzdG9yZS5yZW1vdmUoKTsNCiAgICAgICAgICAgIHJldHVybjsNCiAgICAgICAgfQ0KICAgIH07DQogICAgcmV0dXJuOw0KfQ0KZnVuY3Rpb24gdXBsb2FkTG9nbygpIHsNCiAgICBpZiAoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3VwbG9hZCcpKSB7DQogICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd1cGxvYWQnKS5yZW1vdmUoKTsNCiAgICB9DQogICAgdmFyIHVwbG9hZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIklOUFVUIik7DQogICAgdXBsb2FkLnNldEF0dHJpYnV0ZSgidHlwZSIsICJmaWxlIik7DQogICAgdXBsb2FkLnNldEF0dHJpYnV0ZSgiY2xhc3MiLCAibm90VmlzaWJsZSIpOw0KICAgIHVwbG9hZC5zZXRBdHRyaWJ1dGUoIm5hbWUiLCAiIik7DQogICAgdXBsb2FkLmlkID0gInVwbG9hZCI7DQogICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZCh1cGxvYWQpOw0KICAgIHVwbG9hZC5jbGljaygpOw0KICAgIHVwbG9hZC5vbmJsdXIgPSBmdW5jdGlvbiAoKSB7DQogICAgICAgIGFsZXJ0KCk7DQogICAgfTsNCiAgICB1cGxvYWQub25jaGFuZ2UgPSBmdW5jdGlvbiAoKSB7DQogICAgICAgIHZhciBmaWxlbmFtZSA9IHVwbG9hZC5maWxlc1swXS5uYW1lOw0KICAgICAgICB2YXIgcmVhZGVyID0gbmV3IEZpbGVSZWFkZXIoKTsNCiAgICAgICAgdmFyIGZpbGUgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCdpbnB1dFt0eXBlPWZpbGVdJykuZmlsZXNbMF07DQogICAgICAgIGlmIChmaWxlKSB7DQogICAgICAgICAgICByZWFkZXIucmVhZEFzRGF0YVVSTChmaWxlKTsNCiAgICAgICAgICAgIHJlYWRlci5vbmxvYWQgPSBmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICAgICAgY29uc29sZS5sb2cocmVhZGVyLnJlc3VsdCk7DQogICAgICAgICAgICAgICAgdmFyIGRhdGEgPSBuZXcgT2JqZWN0KCk7DQogICAgICAgICAgICAgICAgdmFyIGNtZCA9ICJ1cGxvYWRMb2dvIjsNCiAgICAgICAgICAgICAgICBkYXRhWyJiYXNlNjQiXSA9IHJlYWRlci5yZXN1bHQ7DQogICAgICAgICAgICAgICAgZGF0YVsiZmlsZW5hbWUiXSA9IGZpbGUubmFtZTsNCiAgICAgICAgICAgICAgICB2YXIgc2VydmVyID0gbmV3IFNlcnZlcihjbWQpOw0KICAgICAgICAgICAgICAgIHNlcnZlci5yZXF1ZXN0KGRhdGEpOw0KICAgICAgICAgICAgICAgIHZhciB1cGRhdGVMb2dvID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3VwZGF0ZS1pY29uJyk7DQogICAgICAgICAgICAgICAgdXBkYXRlTG9nby5jaGVja2VkID0gZmFsc2U7DQogICAgICAgICAgICAgICAgdXBkYXRlTG9nby5jbGFzc05hbWUgPSAiY2hhbmdlZCI7DQogICAgICAgICAgICB9Ow0KICAgICAgICB9DQogICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgYWxlcnQoIkZpbGUgY291bGQgbm90IGJlIGxvYWRlZCIpOw0KICAgICAgICB9DQogICAgICAgIHVwbG9hZC5yZW1vdmUoKTsNCiAgICAgICAgcmV0dXJuOw0KICAgIH07DQp9DQpmdW5jdGlvbiBjaGVja1VuZG8oa2V5KSB7DQogICAgc3dpdGNoIChrZXkpIHsNCiAgICAgICAgY2FzZSAiZXBnTWFwcGluZyI6DQogICAgICAgICAgICBpZiAoVU5ETy5oYXNPd25Qcm9wZXJ0eShrZXkpKSB7DQogICAgICAgICAgICAgICAgU0VSVkVSWyJ4ZXBnIl1ba2V5XSA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkoVU5ET1trZXldKSk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICBVTkRPW2tleV0gPSBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KFNFUlZFUlsieGVwZyJdW2tleV0pKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBkZWZhdWx0Og0KICAgICAgICAgICAgYnJlYWs7DQogICAgfQ0KICAgIHJldHVybjsNCn0NCmZ1bmN0aW9uIHNvcnRTZWxlY3Qoc2VsZWN0KSB7DQogICAgY29uc3QgdGVtcEFyciA9IFtdOw0KICAgIGNvbnN0IHNlbGVjdGVkVmFsdWUgPSBzZWxlY3Qub3B0aW9uc1tzZWxlY3Quc2VsZWN0ZWRJbmRleF0udmFsdWU7DQogICAgZm9yIChjb25zdCBzZWxlY3RPcHRpb24gb2Ygc2VsZWN0Lm9wdGlvbnMpIHsNCiAgICAgICAgdGVtcEFyci5wdXNoKHNlbGVjdE9wdGlvbik7DQogICAgfQ0KICAgIHRlbXBBcnIuc29ydCgobzEsIG8yKSA9PiB7DQogICAgICAgIGlmIChvMS50ZXh0IDwgbzIudGV4dCkgew0KICAgICAgICAgICAgcmV0dXJuIC0xOw0KICAgICAgICB9DQogICAgICAgIGlmIChvMS50ZXh0ID4gbzIudGV4dCkgew0KICAgICAgICAgICAgcmV0dXJuIDE7DQogICAgICAgIH0NCiAgICAgICAgcmV0dXJuIDA7DQogICAgfSk7DQogICAgd2hpbGUgKHNlbGVjdC5vcHRpb25zLmxlbmd0aCA+IDApIHsNCiAgICAgICAgc2VsZWN0Lm9wdGlvbnNbMF0gPSBudWxsOw0KICAgIH0NCiAgICA7DQogICAgbGV0IG5ld1NlbGVjdGVkSW5kZXggPSAwOw0KICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGVtcEFyci5sZW5ndGg7IGkrKykgew0KICAgICAgICBzZWxlY3Qub3B0aW9uc1tpXSA9IHRlbXBBcnJbaV07DQogICAgICAgIGlmIChzZWxlY3Qub3B0aW9uc1tpXS52YWx1ZSA9PSBzZWxlY3RlZFZhbHVlKSB7DQogICAgICAgICAgICBuZXdTZWxlY3RlZEluZGV4ID0gaTsNCiAgICAgICAgfQ0KICAgIH0NCiAgICAvLyBTZXQgbmV3IHNlbGVjdGVkIGluZGV4IGFmdGVyIHNvcnRpbmcNCiAgICBzZWxlY3Quc2VsZWN0ZWRJbmRleCA9IG5ld1NlbGVjdGVkSW5kZXg7DQp9DQpmdW5jdGlvbiB1cGRhdGVMb2coKSB7DQogICAgY29uc29sZS5sb2coIlRPS0VOIik7DQogICAgdmFyIHNlcnZlciA9IG5ldyBTZXJ2ZXIoInVwZGF0ZUxvZyIpOw0KICAgIHNlcnZlci5yZXF1ZXN0KG5ldyBPYmplY3QoKSk7DQp9DQo=" + webUI["html/js/authentication_ts.js"] = "ZnVuY3Rpb24gbG9naW4oKSB7DQogICAgdmFyIGVyciA9IGZhbHNlOw0KICAgIHZhciBkYXRhID0gbmV3IE9iamVjdCgpOw0KICAgIHZhciBkaXYgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29udGVudCIpOw0KICAgIHZhciBmb3JtID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImF1dGhlbnRpY2F0aW9uIik7DQogICAgdmFyIGlucHV0cyA9IGRpdi5nZXRFbGVtZW50c0J5VGFnTmFtZSgiSU5QVVQiKTsNCiAgICBmb3IgKHZhciBpID0gaW5wdXRzLmxlbmd0aCAtIDE7IGkgPj0gMDsgaS0tKSB7DQogICAgICAgIHZhciBrZXkgPSBpbnB1dHNbaV0ubmFtZTsNCiAgICAgICAgdmFyIHZhbHVlID0gaW5wdXRzW2ldLnZhbHVlOw0KICAgICAgICBpZiAodmFsdWUubGVuZ3RoID09IDApIHsNCiAgICAgICAgICAgIGlucHV0c1tpXS5zdHlsZS5ib3JkZXJDb2xvciA9ICJyZWQiOw0KICAgICAgICAgICAgZXJyID0gdHJ1ZTsNCiAgICAgICAgfQ0KICAgICAgICBkYXRhW2tleV0gPSB2YWx1ZTsNCiAgICB9DQogICAgaWYgKGVyciA9PSB0cnVlKSB7DQogICAgICAgIGRhdGEgPSBuZXcgT2JqZWN0KCk7DQogICAgICAgIHJldHVybjsNCiAgICB9DQogICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoImNvbmZpcm0iKSkgew0KICAgICAgICBpZiAoZGF0YVsiY29uZmlybSJdICE9IGRhdGFbInBhc3N3b3JkIl0pIHsNCiAgICAgICAgICAgIGFsZXJ0KCJzZGFmc2QiKTsNCiAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdwYXNzd29yZCcpLnN0eWxlLmJvcmRlckNvbG9yID0gInJlZCI7DQogICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY29uZmlybScpLnN0eWxlLmJvcmRlckNvbG9yID0gInJlZCI7DQogICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZXJyIikuaW5uZXJIVE1MID0gInt7LmFjY291bnQuZmFpbGVkfX0iOw0KICAgICAgICAgICAgcmV0dXJuOw0KICAgICAgICB9DQogICAgfQ0KICAgIGZvcm0uc3VibWl0KCk7DQp9DQo=" + webUI["html/js/base_ts.js"] = "dmFyIFNFUlZFUiA9IG5ldyBPYmplY3QoKTsNCnZhciBCVUxLX0VESVQgPSBmYWxzZTsNCnZhciBDT0xVTU5fVE9fU09SVDsNCnZhciBTRUFSQ0hfTUFQUElORyA9IG5ldyBPYmplY3QoKTsNCnZhciBVTkRPID0gbmV3IE9iamVjdCgpOw0KdmFyIFNFUlZFUl9DT05ORUNUSU9OID0gZmFsc2U7DQp2YXIgV1NfQVZBSUxBQkxFID0gZmFsc2U7DQovLyBNZW51DQp2YXIgbWVudUl0ZW1zID0gbmV3IEFycmF5KCk7DQptZW51SXRlbXMucHVzaChuZXcgTWFpbk1lbnVJdGVtKCJwbGF5bGlzdCIsICJ7ey5tYWluTWVudS5pdGVtLnBsYXlsaXN0fX0iLCAibTN1LnBuZyIsICJ7ey5tYWluTWVudS5oZWFkbGluZS5wbGF5bGlzdH19IikpOw0KLy9tZW51SXRlbXMucHVzaChuZXcgTWFpbk1lbnVJdGVtKCJwbXNJRCIsICJ7ey5tYWluTWVudS5pdGVtLnBtc0lEfX0iLCAibnVtYmVyLnBuZyIsICJ7ey5tYWluTWVudS5oZWFkbGluZS5wbXNJRH19IikpDQptZW51SXRlbXMucHVzaChuZXcgTWFpbk1lbnVJdGVtKCJmaWx0ZXIiLCAie3subWFpbk1lbnUuaXRlbS5maWx0ZXJ9fSIsICJmaWx0ZXIucG5nIiwgInt7Lm1haW5NZW51LmhlYWRsaW5lLmZpbHRlcn19IikpOw0KbWVudUl0ZW1zLnB1c2gobmV3IE1haW5NZW51SXRlbSgieG1sdHYiLCAie3subWFpbk1lbnUuaXRlbS54bWx0dn19IiwgInhtbHR2LnBuZyIsICJ7ey5tYWluTWVudS5oZWFkbGluZS54bWx0dn19IikpOw0KbWVudUl0ZW1zLnB1c2gobmV3IE1haW5NZW51SXRlbSgibWFwcGluZyIsICJ7ey5tYWluTWVudS5pdGVtLm1hcHBpbmd9fSIsICJtYXBwaW5nLnBuZyIsICJ7ey5tYWluTWVudS5oZWFkbGluZS5tYXBwaW5nfX0iKSk7DQptZW51SXRlbXMucHVzaChuZXcgTWFpbk1lbnVJdGVtKCJ1c2VycyIsICJ7ey5tYWluTWVudS5pdGVtLnVzZXJzfX0iLCAidXNlcnMucG5nIiwgInt7Lm1haW5NZW51LmhlYWRsaW5lLnVzZXJzfX0iKSk7DQptZW51SXRlbXMucHVzaChuZXcgTWFpbk1lbnVJdGVtKCJzZXR0aW5ncyIsICJ7ey5tYWluTWVudS5pdGVtLnNldHRpbmdzfX0iLCAic2V0dGluZ3MucG5nIiwgInt7Lm1haW5NZW51LmhlYWRsaW5lLnNldHRpbmdzfX0iKSk7DQptZW51SXRlbXMucHVzaChuZXcgTWFpbk1lbnVJdGVtKCJsb2ciLCAie3subWFpbk1lbnUuaXRlbS5sb2d9fSIsICJsb2cucG5nIiwgInt7Lm1haW5NZW51LmhlYWRsaW5lLmxvZ319IikpOw0KbWVudUl0ZW1zLnB1c2gobmV3IE1haW5NZW51SXRlbSgibG9nb3V0IiwgInt7Lm1haW5NZW51Lml0ZW0ubG9nb3V0fX0iLCAibG9nb3V0LnBuZyIsICJ7ey5tYWluTWVudS5oZWFkbGluZS5sb2dvdXR9fSIpKTsNCi8vIFNldHRpbmdzIGNhdGVnb3JpZXMNCnZhciBzZXR0aW5nc0NhdGVnb3J5ID0gbmV3IEFycmF5KCk7DQpzZXR0aW5nc0NhdGVnb3J5LnB1c2gobmV3IFNldHRpbmdzQ2F0ZWdvcnlJdGVtKCJ7ey5zZXR0aW5ncy5jYXRlZ29yeS5nZW5lcmFsfX0iLCAidGxzTW9kZSx4dGV2ZUF1dG9VcGRhdGUsaG9zdElQLHR1bmVyLGVwZ1NvdXJjZSxhcGkiKSk7DQpzZXR0aW5nc0NhdGVnb3J5LnB1c2gobmV3IFNldHRpbmdzQ2F0ZWdvcnlJdGVtKCJ7ey5zZXR0aW5ncy5jYXRlZ29yeS5maWxlc319IiwgInVwZGF0ZSxmaWxlcy51cGRhdGUsdGVtcC5wYXRoLGNhY2hlLmltYWdlcyx4ZXBnLnJlcGxhY2UubWlzc2luZy5pbWFnZXMiKSk7DQpzZXR0aW5nc0NhdGVnb3J5LnB1c2gobmV3IFNldHRpbmdzQ2F0ZWdvcnlJdGVtKCJ7ey5zZXR0aW5ncy5jYXRlZ29yeS5zdHJlYW1pbmd9fSIsICJidWZmZXIsdWRweHksYnVmZmVyLnNpemUua2Isc3RvcmVCdWZmZXJJblJBTSxidWZmZXIudGltZW91dCx1c2VyLmFnZW50LGZmbXBlZy5wYXRoLGZmbXBlZy5vcHRpb25zLHZsYy5wYXRoLHZsYy5vcHRpb25zIikpOw0Kc2V0dGluZ3NDYXRlZ29yeS5wdXNoKG5ldyBTZXR0aW5nc0NhdGVnb3J5SXRlbSgie3suc2V0dGluZ3MuY2F0ZWdvcnkuYmFja3VwfX0iLCAiYmFja3VwLnBhdGgsYmFja3VwLmtlZXAiKSk7DQpzZXR0aW5nc0NhdGVnb3J5LnB1c2gobmV3IFNldHRpbmdzQ2F0ZWdvcnlJdGVtKCJ7ey5zZXR0aW5ncy5jYXRlZ29yeS5hdXRoZW50aWNhdGlvbn19IiwgImF1dGhlbnRpY2F0aW9uLndlYixhdXRoZW50aWNhdGlvbi5wbXMsYXV0aGVudGljYXRpb24ubTN1LGF1dGhlbnRpY2F0aW9uLnhtbCxhdXRoZW50aWNhdGlvbi5hcGkiKSk7DQpmdW5jdGlvbiBzaG93UG9wVXBFbGVtZW50KGVsbSkgew0KICAgIHZhciBhbGxFbGVtZW50cyA9IG5ldyBBcnJheSgicG9wdXAtY3VzdG9tIik7DQogICAgZm9yICh2YXIgaSA9IDA7IGkgPCBhbGxFbGVtZW50cy5sZW5ndGg7IGkrKykgew0KICAgICAgICBzaG93RWxlbWVudChhbGxFbGVtZW50c1tpXSwgZmFsc2UpOw0KICAgIH0NCiAgICBzaG93RWxlbWVudChlbG0sIHRydWUpOw0KICAgIHNldFRpbWVvdXQoZnVuY3Rpb24gKCkgew0KICAgICAgICBzaG93RWxlbWVudCgicG9wdXAiLCB0cnVlKTsNCiAgICB9LCAxMCk7DQogICAgcmV0dXJuOw0KfQ0KZnVuY3Rpb24gc2hvd0VsZW1lbnQoZWxtSUQsIHR5cGUpIHsNCiAgICB2YXIgY3NzQ2xhc3M7DQogICAgc3dpdGNoICh0eXBlKSB7DQogICAgICAgIGNhc2UgdHJ1ZToNCiAgICAgICAgICAgIGNzc0NsYXNzID0gImJsb2NrIjsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlIGZhbHNlOg0KICAgICAgICAgICAgY3NzQ2xhc3MgPSAibm9uZSI7DQogICAgICAgICAgICBicmVhazsNCiAgICB9DQogICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoZWxtSUQpLmNsYXNzTmFtZSA9IGNzc0NsYXNzOw0KfQ0KZnVuY3Rpb24gY2hhbmdlQnV0dG9uQWN0aW9uKGVsZW1lbnQsIGJ1dHRvbklELCBhdHRyaWJ1dGUpIHsNCiAgICB2YXIgdmFsdWUgPSBlbGVtZW50Lm9wdGlvbnNbZWxlbWVudC5zZWxlY3RlZEluZGV4XS52YWx1ZTsNCiAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChidXR0b25JRCkuc2V0QXR0cmlidXRlKGF0dHJpYnV0ZSwgdmFsdWUpOw0KfQ0KZnVuY3Rpb24gZ2V0TG9jYWxEYXRhKGRhdGFUeXBlLCBpZCkgew0KICAgIGxldCBkYXRhID0ge307DQogICAgc3dpdGNoIChkYXRhVHlwZSkgew0KICAgICAgICBjYXNlICJtM3UiOg0KICAgICAgICAgICAgZGF0YSA9IFNFUlZFUlsic2V0dGluZ3MiXVsiZmlsZXMiXVtkYXRhVHlwZV1baWRdOw0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGNhc2UgImhkaHIiOg0KICAgICAgICAgICAgZGF0YSA9IFNFUlZFUlsic2V0dGluZ3MiXVsiZmlsZXMiXVtkYXRhVHlwZV1baWRdOw0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGNhc2UgImZpbHRlciI6DQogICAgICAgIGNhc2UgImN1c3RvbS1maWx0ZXIiOg0KICAgICAgICBjYXNlICJncm91cC10aXRsZSI6DQogICAgICAgICAgICBpZiAoaWQgPT0gLTEpIHsNCiAgICAgICAgICAgICAgICBkYXRhWyJhY3RpdmUiXSA9IHRydWU7DQogICAgICAgICAgICAgICAgZGF0YVsiY2FzZVNlbnNpdGl2ZSJdID0gZmFsc2U7DQogICAgICAgICAgICAgICAgZGF0YVsiZGVzY3JpcHRpb24iXSA9ICIiOw0KICAgICAgICAgICAgICAgIGRhdGFbImV4Y2x1ZGUiXSA9ICIiOw0KICAgICAgICAgICAgICAgIGRhdGFbImZpbHRlciJdID0gIiI7DQogICAgICAgICAgICAgICAgZGF0YVsiaW5jbHVkZSJdID0gIiI7DQogICAgICAgICAgICAgICAgZGF0YVsibmFtZSJdID0gIiI7DQogICAgICAgICAgICAgICAgZGF0YVsidHlwZSJdID0gImdyb3VwLXRpdGxlIjsNCiAgICAgICAgICAgICAgICBkYXRhWyJwcmVzZXJ2ZU1hcHBpbmciXSA9IHRydWU7DQogICAgICAgICAgICAgICAgZGF0YVsic3RhcnRpbmdDaGFubmVsIl0gPSBTRVJWRVJbInNldHRpbmdzIl1bIm1hcHBpbmcuZmlyc3QuY2hhbm5lbCJdOw0KICAgICAgICAgICAgICAgIGRhdGFbImRlZmF1bHRNaXNzaW5nRVBHIl0gPSAiLSI7DQogICAgICAgICAgICAgICAgU0VSVkVSWyJzZXR0aW5ncyJdWyJmaWx0ZXIiXVtpZF0gPSBkYXRhOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgZGF0YSA9IFNFUlZFUlsic2V0dGluZ3MiXVsiZmlsdGVyIl1baWRdOw0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGNhc2UgInhtbHR2IjoNCiAgICAgICAgICAgIGRhdGEgPSBTRVJWRVJbInNldHRpbmdzIl1bImZpbGVzIl1bZGF0YVR5cGVdW2lkXTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJ1c2VycyI6DQogICAgICAgICAgICBkYXRhID0gU0VSVkVSWyJ1c2VycyJdW2lkXVsiZGF0YSJdOw0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGNhc2UgIm1hcHBpbmciOg0KICAgICAgICAgICAgZGF0YSA9IFNFUlZFUlsieGVwZyJdWyJlcGdNYXBwaW5nIl1baWRdOw0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGNhc2UgIm0zdUdyb3VwcyI6DQogICAgICAgICAgICBkYXRhID0gU0VSVkVSWyJkYXRhIl1bInBsYXlsaXN0Il1bIm0zdSJdWyJncm91cHMiXTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgIH0NCiAgICByZXR1cm4gZGF0YTsNCn0NCmZ1bmN0aW9uIGdldE93bk9ialByb3BzKG9iamVjdCkgew0KICAgIHJldHVybiBvYmplY3QgPyBPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyhvYmplY3QpIDogW107DQp9DQpmdW5jdGlvbiBnZXRBbGxTZWxlY3RlZENoYW5uZWxzKCkgew0KICAgIHZhciBjaGFubmVscyA9IG5ldyBBcnJheSgpOw0KICAgIGlmIChCVUxLX0VESVQgPT0gZmFsc2UpIHsNCiAgICAgICAgcmV0dXJuIGNoYW5uZWxzOw0KICAgIH0NCiAgICB2YXIgdHJzID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnRlbnRfdGFibGUiKS5nZXRFbGVtZW50c0J5VGFnTmFtZSgiVFIiKTsNCiAgICBmb3IgKHZhciBpID0gMTsgaSA8IHRycy5sZW5ndGg7IGkrKykgew0KICAgICAgICBpZiAodHJzW2ldLnN0eWxlLmRpc3BsYXkgIT0gIm5vbmUiKSB7DQogICAgICAgICAgICBpZiAodHJzW2ldLmZpcnN0Q2hpbGQuZmlyc3RDaGlsZC5jaGVja2VkID09IHRydWUpIHsNCiAgICAgICAgICAgICAgICBjaGFubmVscy5wdXNoKHRyc1tpXS5pZCk7DQogICAgICAgICAgICB9DQogICAgICAgIH0NCiAgICB9DQogICAgcmV0dXJuIGNoYW5uZWxzOw0KfQ0KZnVuY3Rpb24gc2VsZWN0QWxsQ2hhbm5lbHMoKSB7DQogICAgdmFyIGJ1bGsgPSBmYWxzZTsNCiAgICB2YXIgdHJzID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnRlbnRfdGFibGUiKS5nZXRFbGVtZW50c0J5VGFnTmFtZSgiVFIiKTsNCiAgICBpZiAodHJzWzBdLmZpcnN0Q2hpbGQuZmlyc3RDaGlsZC5jaGVja2VkID09IHRydWUpIHsNCiAgICAgICAgYnVsayA9IHRydWU7DQogICAgfQ0KICAgIGZvciAodmFyIGkgPSAxOyBpIDwgdHJzLmxlbmd0aDsgaSsrKSB7DQogICAgICAgIGlmICh0cnNbaV0uc3R5bGUuZGlzcGxheSAhPSAibm9uZSIpIHsNCiAgICAgICAgICAgIHN3aXRjaCAoYnVsaykgew0KICAgICAgICAgICAgICAgIGNhc2UgdHJ1ZToNCiAgICAgICAgICAgICAgICAgICAgdHJzW2ldLmZpcnN0Q2hpbGQuZmlyc3RDaGlsZC5jaGVja2VkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSBmYWxzZToNCiAgICAgICAgICAgICAgICAgICAgdHJzW2ldLmZpcnN0Q2hpbGQuZmlyc3RDaGlsZC5jaGVja2VkID0gZmFsc2U7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQogICAgfQ0KICAgIHJldHVybjsNCn0NCmZ1bmN0aW9uIGJ1bGtFZGl0KCkgew0KICAgIEJVTEtfRURJVCA9ICFCVUxLX0VESVQ7DQogICAgdmFyIGNsYXNzTmFtZTsNCiAgICB2YXIgcm93cyA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlDbGFzc05hbWUoImJ1bGsiKTsNCiAgICBzd2l0Y2ggKEJVTEtfRURJVCkgew0KICAgICAgICBjYXNlIHRydWU6DQogICAgICAgICAgICBjbGFzc05hbWUgPSAiYnVsayBzaG93QnVsayI7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSBmYWxzZToNCiAgICAgICAgICAgIGNsYXNzTmFtZSA9ICJidWxrIGhpZGVCdWxrIjsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgIH0NCiAgICBmb3IgKHZhciBpID0gMDsgaSA8IHJvd3MubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgcm93c1tpXS5jbGFzc05hbWUgPSBjbGFzc05hbWU7DQogICAgICAgIHJvd3NbaV0uY2hlY2tlZCA9IGZhbHNlOw0KICAgIH0NCiAgICByZXR1cm47DQp9DQpmdW5jdGlvbiBzb3J0VGFibGUoY29sdW1uKSB7DQogICAgaWYgKGNvbHVtbiA9PSBDT0xVTU5fVE9fU09SVCkgew0KICAgICAgICByZXR1cm47DQogICAgfQ0KICAgIGNvbnN0IHRhYmxlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnRlbnRfdGFibGUiKTsNCiAgICBjb25zdCB0YWJsZUhlYWQgPSB0YWJsZS5nZXRFbGVtZW50c0J5VGFnTmFtZSgiVFIiKVswXTsNCiAgICBjb25zdCB0YWJsZUl0ZW1zID0gdGFibGVIZWFkLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJURCIpOw0KICAgIGNvbnN0IHNvcnRBcnIgPSBbXTsNCiAgICBsZXQgeFZhbHVlOw0KICAgIGlmIChjb2x1bW4gPj0gMCAmJiBDT0xVTU5fVE9fU09SVCA+PSAwKSB7DQogICAgICAgIHRhYmxlSXRlbXNbQ09MVU1OX1RPX1NPUlRdLmNsYXNzTmFtZSA9ICJwb2ludGVyIjsNCiAgICAgICAgdGFibGVJdGVtc1tjb2x1bW5dLmNsYXNzTmFtZSA9ICJzb3J0VGhpcyI7DQogICAgfQ0KICAgIENPTFVNTl9UT19TT1JUID0gY29sdW1uOw0KICAgIGNvbnN0IHJvd3MgPSB0YWJsZS5yb3dzOw0KICAgIGlmIChyb3dzWzFdICE9IHVuZGVmaW5lZCkgew0KICAgICAgICBjb25zdCB0YWJsZUhlYWRlciA9IHJvd3NbMF07DQogICAgICAgIGxldCB4ID0gcm93c1sxXS5nZXRFbGVtZW50c0J5VGFnTmFtZSgiVEQiKVtjb2x1bW5dOw0KICAgICAgICBmb3IgKGxldCBpID0gMTsgaSA8IHJvd3MubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgICAgIHggPSByb3dzW2ldLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJURCIpW2NvbHVtbl07DQogICAgICAgICAgICBzd2l0Y2ggKHguY2hpbGROb2Rlc1swXS50YWdOYW1lLnRvTG93ZXJDYXNlKCkpIHsNCiAgICAgICAgICAgICAgICBjYXNlICJpbnB1dCI6DQogICAgICAgICAgICAgICAgICAgIHhWYWx1ZSA9IHguZ2V0RWxlbWVudHNCeVRhZ05hbWUoIklOUFVUIilbMF0udmFsdWUudG9Mb3dlckNhc2UoKTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAicCI6DQogICAgICAgICAgICAgICAgICAgIHhWYWx1ZSA9IHguZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlAiKVswXS5pbm5lclRleHQudG9Mb3dlckNhc2UoKTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBzb3J0QXJyLnB1c2goeyBrZXk6IHhWYWx1ZSA/IHhWYWx1ZSA6IGksIHJvdzogcm93c1tpXSB9KTsNCiAgICAgICAgfQ0KICAgICAgICB3aGlsZSAodGFibGUuZmlyc3RDaGlsZCkgew0KICAgICAgICAgICAgdGFibGUucmVtb3ZlQ2hpbGQodGFibGUuZmlyc3RDaGlsZCk7DQogICAgICAgIH0NCiAgICAgICAgc29ydEFyci5zb3J0KChzZTEsIHNlMikgPT4gew0KICAgICAgICAgICAgY29uc3Qgc2UxS2V5TnVtID0gcGFyc2VGbG9hdChTdHJpbmcoc2UxLmtleSkpOw0KICAgICAgICAgICAgY29uc3Qgc2UyS2V5TnVtID0gcGFyc2VGbG9hdChTdHJpbmcoc2UyLmtleSkpOw0KICAgICAgICAgICAgaWYgKCFpc05hTihzZTFLZXlOdW0pICYmICFpc05hTihzZTJLZXlOdW0pKSB7DQogICAgICAgICAgICAgICAgcmV0dXJuIHNlMUtleU51bSAtIHNlMktleU51bTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGlmIChzZTEua2V5IDwgc2UyLmtleSkgew0KICAgICAgICAgICAgICAgIHJldHVybiAtMTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGlmIChzZTEua2V5ID4gc2UyLmtleSkgew0KICAgICAgICAgICAgICAgIHJldHVybiAxOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgcmV0dXJuIDA7DQogICAgICAgIH0pOw0KICAgICAgICB0YWJsZS5hcHBlbmRDaGlsZCh0YWJsZUhlYWRlcik7DQogICAgICAgIHNvcnRBcnIuZm9yRWFjaCgoc2UpID0+IHsNCiAgICAgICAgICAgIHRhYmxlLmFwcGVuZENoaWxkKHNlLnJvdyk7DQogICAgICAgIH0pOw0KICAgIH0NCiAgICByZXR1cm47DQp9DQpmdW5jdGlvbiBjcmVhdGVTZWFyY2hPYmooKSB7DQogICAgU0VBUkNIX01BUFBJTkcgPSBuZXcgT2JqZWN0KCk7DQogICAgdmFyIGRhdGEgPSBTRVJWRVJbInhlcGciXVsiZXBnTWFwcGluZyJdOw0KICAgIHZhciBjaGFubmVscyA9IGdldE93bk9ialByb3BzKGRhdGEpOw0KICAgIHZhciBjaGFubmVsS2V5cyA9IFsieC1hY3RpdmUiLCAieC1jaGFubmVsSUQiLCAieC1uYW1lIiwgIl9maWxlLm0zdS5uYW1lIiwgIngtZ3JvdXAtdGl0bGUiLCAieC14bWx0di1maWxlIl07DQogICAgY2hhbm5lbHMuZm9yRWFjaChpZCA9PiB7DQogICAgICAgIGNoYW5uZWxLZXlzLmZvckVhY2goa2V5ID0+IHsNCiAgICAgICAgICAgIGlmIChrZXkgPT0gIngtYWN0aXZlIikgew0KICAgICAgICAgICAgICAgIHN3aXRjaCAoZGF0YVtpZF1ba2V5XSkgew0KICAgICAgICAgICAgICAgICAgICBjYXNlIHRydWU6DQogICAgICAgICAgICAgICAgICAgICAgICBTRUFSQ0hfTUFQUElOR1tpZF0gPSAib25saW5lICI7DQogICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICAgICAgY2FzZSBmYWxzZToNCiAgICAgICAgICAgICAgICAgICAgICAgIFNFQVJDSF9NQVBQSU5HW2lkXSA9ICJvZmZsaW5lICI7DQogICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9DQogICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICBpZiAoa2V5ID09ICJ4LXhtbHR2LWZpbGUiKSB7DQogICAgICAgICAgICAgICAgICAgIHZhciB4bWx0dkZpbGUgPSBnZXRWYWx1ZUZyb21Qcm92aWRlckZpbGUoZGF0YVtpZF1ba2V5XSwgInhtbHR2IiwgIm5hbWUiKTsNCiAgICAgICAgICAgICAgICAgICAgaWYgKHhtbHR2RmlsZSAhPSB1bmRlZmluZWQpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIFNFQVJDSF9NQVBQSU5HW2lkXSA9IFNFQVJDSF9NQVBQSU5HW2lkXSArIHhtbHR2RmlsZSArICIgIjsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICAgICAgU0VBUkNIX01BUFBJTkdbaWRdID0gU0VBUkNIX01BUFBJTkdbaWRdICsgZGF0YVtpZF1ba2V5XSArICIgIjsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9DQogICAgICAgIH0pOw0KICAgIH0pOw0KICAgIHJldHVybjsNCn0NCmZ1bmN0aW9uIHNlYXJjaEluTWFwcGluZygpIHsNCiAgICB2YXIgc2VhcmNoVmFsdWUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic2VhcmNoTWFwcGluZyIpLnZhbHVlOw0KICAgIHZhciB0cnMgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29udGVudF90YWJsZSIpLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJUUiIpOw0KICAgIGZvciAodmFyIGkgPSAxOyBpIDwgdHJzLmxlbmd0aDsgKytpKSB7DQogICAgICAgIHZhciBpZCA9IHRyc1tpXS5nZXRBdHRyaWJ1dGUoImlkIik7DQogICAgICAgIHZhciBlbGVtZW50ID0gU0VBUkNIX01BUFBJTkdbaWRdOw0KICAgICAgICBzd2l0Y2ggKGVsZW1lbnQudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhzZWFyY2hWYWx1ZS50b0xvd2VyQ2FzZSgpKSkgew0KICAgICAgICAgICAgY2FzZSB0cnVlOg0KICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5zdHlsZS5kaXNwbGF5ID0gIiI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlIGZhbHNlOg0KICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5zdHlsZS5kaXNwbGF5ID0gIm5vbmUiOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICB9DQogICAgfQ0KICAgIHJldHVybjsNCn0NCmZ1bmN0aW9uIGNhbGN1bGF0ZVdyYXBwZXJIZWlnaHQoKSB7DQogICAgaWYgKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJib3gtd3JhcHBlciIpKSB7DQogICAgICAgIHZhciBlbG0gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYm94LXdyYXBwZXIiKTsNCiAgICAgICAgdmFyIGRpdnMgPSBuZXcgQXJyYXkoIm15U3RyZWFtc0JveCIsICJjbGllbnRJbmZvIiwgImNvbnRlbnQiKTsNCiAgICAgICAgdmFyIGVsZW1lbnRzSGVpZ2h0ID0gMCAtIGVsbS5vZmZzZXRIZWlnaHQ7DQogICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgZGl2cy5sZW5ndGg7IGkrKykgew0KICAgICAgICAgICAgZWxlbWVudHNIZWlnaHQgPSBlbGVtZW50c0hlaWdodCArIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGRpdnNbaV0pLm9mZnNldEhlaWdodDsNCiAgICAgICAgfQ0KICAgICAgICBlbG0uc3R5bGUuaGVpZ2h0ID0gd2luZG93LmlubmVySGVpZ2h0IC0gZWxlbWVudHNIZWlnaHQgKyAicHgiOw0KICAgIH0NCiAgICByZXR1cm47DQp9DQpmdW5jdGlvbiBjaGFuZ2VDaGFubmVsTnVtYmVyKGVsZW1lbnQpIHsNCiAgICB2YXIgZGJJRCA9IGVsZW1lbnQucGFyZW50Tm9kZS5wYXJlbnROb2RlLmlkOw0KICAgIHZhciBuZXdOdW1iZXIgPSBwYXJzZUZsb2F0KGVsZW1lbnQudmFsdWUpOw0KICAgIHZhciBjaGFubmVsTnVtYmVycyA9IFtdOw0KICAgIHZhciBkYXRhID0gU0VSVkVSWyJ4ZXBnIl1bImVwZ01hcHBpbmciXTsNCiAgICB2YXIgY2hhbm5lbHMgPSBnZXRPd25PYmpQcm9wcyhkYXRhKTsNCiAgICBpZiAoaXNOYU4obmV3TnVtYmVyKSkgew0KICAgICAgICBhbGVydCgie3suYWxlcnQuaW52YWxpZENoYW5uZWxOdW1iZXJ9fSIpOw0KICAgICAgICByZXR1cm47DQogICAgfQ0KICAgIGNoYW5uZWxzLmZvckVhY2goaWQgPT4gew0KICAgICAgICB2YXIgY2hhbm5lbE51bWJlciA9IHBhcnNlRmxvYXQoZGF0YVtpZF1bIngtY2hhbm5lbElEIl0pOw0KICAgICAgICBjaGFubmVsTnVtYmVycy5wdXNoKGNoYW5uZWxOdW1iZXIpOw0KICAgIH0pOw0KICAgIGZvciAodmFyIGkgPSAwOyBpIDwgY2hhbm5lbE51bWJlcnMubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgaWYgKGNoYW5uZWxOdW1iZXJzLmluZGV4T2YobmV3TnVtYmVyKSA9PSAtMSkgew0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIH0NCiAgICAgICAgaWYgKE1hdGguZmxvb3IobmV3TnVtYmVyKSA9PSBuZXdOdW1iZXIpIHsNCiAgICAgICAgICAgIG5ld051bWJlciA9IG5ld051bWJlciArIDE7DQogICAgICAgIH0NCiAgICAgICAgZWxzZSB7DQogICAgICAgICAgICBuZXdOdW1iZXIgPSBuZXdOdW1iZXIgKyAwLjE7DQogICAgICAgICAgICBuZXdOdW1iZXIudG9GaXhlZCgxKTsNCiAgICAgICAgICAgIG5ld051bWJlciA9IE1hdGgucm91bmQobmV3TnVtYmVyICogMTApIC8gMTA7DQogICAgICAgIH0NCiAgICB9DQogICAgZGF0YVtkYklEXVsieC1jaGFubmVsSUQiXSA9IG5ld051bWJlci50b1N0cmluZygpOw0KICAgIGVsZW1lbnQudmFsdWUgPSBuZXdOdW1iZXI7DQogICAgaWYgKENPTFVNTl9UT19TT1JUID09IDEpIHsNCiAgICAgICAgQ09MVU1OX1RPX1NPUlQgPSAtMTsNCiAgICAgICAgc29ydFRhYmxlKDEpOw0KICAgIH0NCiAgICByZXR1cm47DQp9DQpmdW5jdGlvbiBiYWNrdXAoKSB7DQogICAgdmFyIGRhdGEgPSBuZXcgT2JqZWN0KCk7DQogICAgdmFyIGNtZCA9ICJ4dGV2ZUJhY2t1cCI7DQogICAgdmFyIHNlcnZlciA9IG5ldyBTZXJ2ZXIoY21kKTsNCiAgICBzZXJ2ZXIucmVxdWVzdChkYXRhKTsNCiAgICByZXR1cm47DQp9DQpmdW5jdGlvbiB0b2dnbGVDaGFubmVsU3RhdHVzKGlkKSB7DQogICAgdmFyIGVsZW1lbnQ7DQogICAgdmFyIHN0YXR1czsNCiAgICBpZiAoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImFjdGl2ZSIpKSB7DQogICAgICAgIHZhciBjaGVja2JveCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJhY3RpdmUiKTsNCiAgICAgICAgc3RhdHVzID0gKGNoZWNrYm94KS5jaGVja2VkOw0KICAgIH0NCiAgICB2YXIgaWRzID0gZ2V0QWxsU2VsZWN0ZWRDaGFubmVscygpOw0KICAgIGlmIChpZHMubGVuZ3RoID09IDApIHsNCiAgICAgICAgaWRzLnB1c2goaWQpOw0KICAgIH0NCiAgICBpZHMuZm9yRWFjaChpZCA9PiB7DQogICAgICAgIHZhciBjaGFubmVsID0gU0VSVkVSWyJ4ZXBnIl1bImVwZ01hcHBpbmciXVtpZF07DQogICAgICAgIGNoYW5uZWxbIngtYWN0aXZlIl0gPSBzdGF0dXM7DQogICAgICAgIHN3aXRjaCAoY2hhbm5lbFsieC1hY3RpdmUiXSkgew0KICAgICAgICAgICAgY2FzZSB0cnVlOg0KICAgICAgICAgICAgICAgIGlmIChjaGFubmVsWyJ4LXhtbHR2LWZpbGUiXSA9PSAiLSIgfHwgY2hhbm5lbFsieC1tYXBwaW5nIl0gPT0gIi0iKSB7DQogICAgICAgICAgICAgICAgICAgIGlmIChCVUxLX0VESVQgPT0gZmFsc2UpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGFsZXJ0KGNoYW5uZWxbIngtbmFtZSJdICsgIjogTWlzc2luZyBYTUxUViBmaWxlIC8gY2hhbm5lbCIpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2hlY2tib3guY2hlY2tlZCA9IGZhbHNlOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIGNoYW5uZWxbIngtYWN0aXZlIl0gPSBmYWxzZTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlIGZhbHNlOg0KICAgICAgICAgICAgICAgIC8vIGNvZGUuLi4NCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgfQ0KICAgICAgICBpZiAoY2hhbm5lbFsieC1hY3RpdmUiXSA9PSBmYWxzZSkgew0KICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpLmNsYXNzTmFtZSA9ICJub3RBY3RpdmVFUEciOw0KICAgICAgICB9DQogICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpLmNsYXNzTmFtZSA9ICJhY3RpdmVFUEciOw0KICAgICAgICB9DQogICAgfSk7DQp9DQpmdW5jdGlvbiB0b2dnbGVHcm91cFVwZGF0ZUNiKHhlcGdJZCwgdGFyZ2V0KSB7DQogICAgdGFyZ2V0LmNsYXNzTmFtZSA9ICdjaGFuZ2VkJzsNCiAgICBjb25zdCBncm91cElucHV0ID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignaW5wdXRbbmFtZT0ieC1ncm91cC10aXRsZSJdJyk7DQogICAgY29uc3QgbWFwcGluZyA9IGdldExvY2FsRGF0YSgnbWFwcGluZycsIHhlcGdJZCk7DQogICAgaWYgKHRhcmdldC5jaGVja2VkKSB7DQogICAgICAgIGdyb3VwSW5wdXQuZGF0YXNldC5vbGRWYWx1ZSA9IGdyb3VwSW5wdXQudmFsdWU7DQogICAgICAgIGdyb3VwSW5wdXQudmFsdWUgPSBtYXBwaW5nWydncm91cC10aXRsZSddOw0KICAgICAgICBncm91cElucHV0LmRpc2FibGVkID0gdHJ1ZTsNCiAgICB9DQogICAgZWxzZSB7DQogICAgICAgIGdyb3VwSW5wdXQudmFsdWUgPSBncm91cElucHV0LmRhdGFzZXQub2xkVmFsdWU7DQogICAgICAgIGdyb3VwSW5wdXQuZGlzYWJsZWQgPSBmYWxzZTsNCiAgICB9DQogICAgZ3JvdXBJbnB1dC5jbGFzc05hbWUgPSAnY2hhbmdlZCc7DQp9DQpmdW5jdGlvbiByZXN0b3JlKCkgew0KICAgIGlmIChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndXBsb2FkJykpIHsNCiAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3VwbG9hZCcpLnJlbW92ZSgpOw0KICAgIH0NCiAgICB2YXIgcmVzdG9yZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIklOUFVUIik7DQogICAgcmVzdG9yZS5zZXRBdHRyaWJ1dGUoInR5cGUiLCAiZmlsZSIpOw0KICAgIHJlc3RvcmUuc2V0QXR0cmlidXRlKCJjbGFzcyIsICJub3RWaXNpYmxlIik7DQogICAgcmVzdG9yZS5zZXRBdHRyaWJ1dGUoIm5hbWUiLCAiIik7DQogICAgcmVzdG9yZS5pZCA9ICJ1cGxvYWQiOw0KICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQocmVzdG9yZSk7DQogICAgcmVzdG9yZS5jbGljaygpOw0KICAgIHJlc3RvcmUub25jaGFuZ2UgPSBmdW5jdGlvbiAoKSB7DQogICAgICAgIHZhciBmaWxlbmFtZSA9IHJlc3RvcmUuZmlsZXNbMF0ubmFtZTsNCiAgICAgICAgdmFyIGNoZWNrID0gY29uZmlybSgiRmlsZTogIiArIGZpbGVuYW1lICsgIlxue3suY29uZmlybS5yZXN0b3JlfX0iKTsNCiAgICAgICAgaWYgKGNoZWNrID09IHRydWUpIHsNCiAgICAgICAgICAgIHZhciByZWFkZXIgPSBuZXcgRmlsZVJlYWRlcigpOw0KICAgICAgICAgICAgdmFyIGZpbGUgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCdpbnB1dFt0eXBlPWZpbGVdJykuZmlsZXNbMF07DQogICAgICAgICAgICBpZiAoZmlsZSkgew0KICAgICAgICAgICAgICAgIHJlYWRlci5yZWFkQXNEYXRhVVJMKGZpbGUpOw0KICAgICAgICAgICAgICAgIHJlYWRlci5vbmxvYWQgPSBmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICAgICAgICAgIHZhciBkYXRhID0gbmV3IE9iamVjdCgpOw0KICAgICAgICAgICAgICAgICAgICB2YXIgY21kID0gInh0ZXZlUmVzdG9yZSI7DQogICAgICAgICAgICAgICAgICAgIGRhdGFbImJhc2U2NCJdID0gcmVhZGVyLnJlc3VsdDsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHNlcnZlciA9IG5ldyBTZXJ2ZXIoY21kKTsNCiAgICAgICAgICAgICAgICAgICAgc2VydmVyLnJlcXVlc3QoZGF0YSk7DQogICAgICAgICAgICAgICAgfTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgICAgIGFsZXJ0KCJGaWxlIGNvdWxkIG5vdCBiZSBsb2FkZWQiKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIHJlc3RvcmUucmVtb3ZlKCk7DQogICAgICAgICAgICByZXR1cm47DQogICAgICAgIH0NCiAgICB9Ow0KICAgIHJldHVybjsNCn0NCmZ1bmN0aW9uIHVwbG9hZExvZ28oKSB7DQogICAgaWYgKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd1cGxvYWQnKSkgew0KICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndXBsb2FkJykucmVtb3ZlKCk7DQogICAgfQ0KICAgIHZhciB1cGxvYWQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJJTlBVVCIpOw0KICAgIHVwbG9hZC5zZXRBdHRyaWJ1dGUoInR5cGUiLCAiZmlsZSIpOw0KICAgIHVwbG9hZC5zZXRBdHRyaWJ1dGUoImNsYXNzIiwgIm5vdFZpc2libGUiKTsNCiAgICB1cGxvYWQuc2V0QXR0cmlidXRlKCJuYW1lIiwgIiIpOw0KICAgIHVwbG9hZC5pZCA9ICJ1cGxvYWQiOw0KICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQodXBsb2FkKTsNCiAgICB1cGxvYWQuY2xpY2soKTsNCiAgICB1cGxvYWQub25ibHVyID0gZnVuY3Rpb24gKCkgew0KICAgICAgICBhbGVydCgpOw0KICAgIH07DQogICAgdXBsb2FkLm9uY2hhbmdlID0gZnVuY3Rpb24gKCkgew0KICAgICAgICB2YXIgZmlsZW5hbWUgPSB1cGxvYWQuZmlsZXNbMF0ubmFtZTsNCiAgICAgICAgdmFyIHJlYWRlciA9IG5ldyBGaWxlUmVhZGVyKCk7DQogICAgICAgIHZhciBmaWxlID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignaW5wdXRbdHlwZT1maWxlXScpLmZpbGVzWzBdOw0KICAgICAgICBpZiAoZmlsZSkgew0KICAgICAgICAgICAgcmVhZGVyLnJlYWRBc0RhdGFVUkwoZmlsZSk7DQogICAgICAgICAgICByZWFkZXIub25sb2FkID0gZnVuY3Rpb24gKCkgew0KICAgICAgICAgICAgICAgIHZhciBkYXRhID0gbmV3IE9iamVjdCgpOw0KICAgICAgICAgICAgICAgIHZhciBjbWQgPSAidXBsb2FkTG9nbyI7DQogICAgICAgICAgICAgICAgZGF0YVsiYmFzZTY0Il0gPSByZWFkZXIucmVzdWx0Ow0KICAgICAgICAgICAgICAgIGRhdGFbImZpbGVuYW1lIl0gPSBmaWxlLm5hbWU7DQogICAgICAgICAgICAgICAgdmFyIHNlcnZlciA9IG5ldyBTZXJ2ZXIoY21kKTsNCiAgICAgICAgICAgICAgICBzZXJ2ZXIucmVxdWVzdChkYXRhKTsNCiAgICAgICAgICAgICAgICB2YXIgdXBkYXRlTG9nbyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd1cGRhdGUtaWNvbicpOw0KICAgICAgICAgICAgICAgIHVwZGF0ZUxvZ28uY2hlY2tlZCA9IGZhbHNlOw0KICAgICAgICAgICAgICAgIHVwZGF0ZUxvZ28uY2xhc3NOYW1lID0gImNoYW5nZWQiOw0KICAgICAgICAgICAgfTsNCiAgICAgICAgfQ0KICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgIGFsZXJ0KCJGaWxlIGNvdWxkIG5vdCBiZSBsb2FkZWQiKTsNCiAgICAgICAgfQ0KICAgICAgICB1cGxvYWQucmVtb3ZlKCk7DQogICAgICAgIHJldHVybjsNCiAgICB9Ow0KfQ0KZnVuY3Rpb24gY2hlY2tVbmRvKGtleSkgew0KICAgIHN3aXRjaCAoa2V5KSB7DQogICAgICAgIGNhc2UgImVwZ01hcHBpbmciOg0KICAgICAgICAgICAgaWYgKFVORE8uaGFzT3duUHJvcGVydHkoa2V5KSkgew0KICAgICAgICAgICAgICAgIFNFUlZFUlsieGVwZyJdW2tleV0gPSBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KFVORE9ba2V5XSkpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgZWxzZSB7DQogICAgICAgICAgICAgICAgVU5ET1trZXldID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeShTRVJWRVJbInhlcGciXVtrZXldKSk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgIGJyZWFrOw0KICAgIH0NCiAgICByZXR1cm47DQp9DQovLyBUT0RPOiBQcm9iYWJseSBkb24ndCBuZWVkIHRoaXMgYW55bW9yZS4gUmVtb3ZlIGJlZm9yZSBmaW5pc2hpbmcgd2l0aCB4bWx0diBwaWNrZXIuDQpmdW5jdGlvbiBzb3J0U2VsZWN0KHNlbGVjdCkgew0KICAgIGNvbnN0IHRlbXBBcnIgPSBbXTsNCiAgICBjb25zdCBzZWxlY3RlZFZhbHVlID0gc2VsZWN0Lm9wdGlvbnNbc2VsZWN0LnNlbGVjdGVkSW5kZXhdLnZhbHVlOw0KICAgIGZvciAoY29uc3Qgc2VsZWN0T3B0aW9uIG9mIHNlbGVjdC5vcHRpb25zKSB7DQogICAgICAgIHRlbXBBcnIucHVzaChzZWxlY3RPcHRpb24pOw0KICAgIH0NCiAgICB0ZW1wQXJyLnNvcnQoKG8xLCBvMikgPT4gew0KICAgICAgICBpZiAobzEudGV4dCA8IG8yLnRleHQpIHsNCiAgICAgICAgICAgIHJldHVybiAtMTsNCiAgICAgICAgfQ0KICAgICAgICBpZiAobzEudGV4dCA+IG8yLnRleHQpIHsNCiAgICAgICAgICAgIHJldHVybiAxOw0KICAgICAgICB9DQogICAgICAgIHJldHVybiAwOw0KICAgIH0pOw0KICAgIHdoaWxlIChzZWxlY3Qub3B0aW9ucy5sZW5ndGggPiAwKSB7DQogICAgICAgIHNlbGVjdC5vcHRpb25zWzBdID0gbnVsbDsNCiAgICB9DQogICAgOw0KICAgIGxldCBuZXdTZWxlY3RlZEluZGV4ID0gMDsNCiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRlbXBBcnIubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgc2VsZWN0Lm9wdGlvbnNbaV0gPSB0ZW1wQXJyW2ldOw0KICAgICAgICBpZiAoc2VsZWN0Lm9wdGlvbnNbaV0udmFsdWUgPT0gc2VsZWN0ZWRWYWx1ZSkgew0KICAgICAgICAgICAgbmV3U2VsZWN0ZWRJbmRleCA9IGk7DQogICAgICAgIH0NCiAgICB9DQogICAgLy8gU2V0IG5ldyBzZWxlY3RlZCBpbmRleCBhZnRlciBzb3J0aW5nDQogICAgc2VsZWN0LnNlbGVjdGVkSW5kZXggPSBuZXdTZWxlY3RlZEluZGV4Ow0KfQ0KZnVuY3Rpb24gdXBkYXRlTG9nKCkgew0KICAgIHZhciBzZXJ2ZXIgPSBuZXcgU2VydmVyKCJ1cGRhdGVMb2ciKTsNCiAgICBzZXJ2ZXIucmVxdWVzdChuZXcgT2JqZWN0KCkpOw0KfQ0K" webUI["html/js/classes_ts.js"] = "dmFyIF9fZXh0ZW5kcyA9ICh0aGlzICYmIHRoaXMuX19leHRlbmRzKSB8fCAoZnVuY3Rpb24gKCkgew0KICAgIHZhciBleHRlbmRTdGF0aWNzID0gZnVuY3Rpb24gKGQsIGIpIHsNCiAgICAgICAgZXh0ZW5kU3RhdGljcyA9IE9iamVjdC5zZXRQcm90b3R5cGVPZiB8fA0KICAgICAgICAgICAgKHsgX19wcm90b19fOiBbXSB9IGluc3RhbmNlb2YgQXJyYXkgJiYgZnVuY3Rpb24gKGQsIGIpIHsgZC5fX3Byb3RvX18gPSBiOyB9KSB8fA0KICAgICAgICAgICAgZnVuY3Rpb24gKGQsIGIpIHsgZm9yICh2YXIgcCBpbiBiKSBpZiAoYi5oYXNPd25Qcm9wZXJ0eShwKSkgZFtwXSA9IGJbcF07IH07DQogICAgICAgIHJldHVybiBleHRlbmRTdGF0aWNzKGQsIGIpOw0KICAgIH07DQogICAgcmV0dXJuIGZ1bmN0aW9uIChkLCBiKSB7DQogICAgICAgIGV4dGVuZFN0YXRpY3MoZCwgYik7DQogICAgICAgIGZ1bmN0aW9uIF9fKCkgeyB0aGlzLmNvbnN0cnVjdG9yID0gZDsgfQ0KICAgICAgICBkLnByb3RvdHlwZSA9IGIgPT09IG51bGwgPyBPYmplY3QuY3JlYXRlKGIpIDogKF9fLnByb3RvdHlwZSA9IGIucHJvdG90eXBlLCBuZXcgX18oKSk7DQogICAgfTsNCn0pKCk7DQp2YXIgTWFpbk1lbnUgPSAvKiogQGNsYXNzICovIChmdW5jdGlvbiAoKSB7DQogICAgZnVuY3Rpb24gTWFpbk1lbnUoKSB7DQogICAgICAgIHRoaXMuRG9jdW1lbnRJRCA9ICJtYWluLW1lbnUiOw0KICAgICAgICB0aGlzLkhUTUxUYWcgPSAiTEkiOw0KICAgIH0NCiAgICBNYWluTWVudS5wcm90b3R5cGUuY3JlYXRlID0gZnVuY3Rpb24gKCkgew0KICAgICAgICBjb25zb2xlLmxvZyh0aGlzLkRvY3VtZW50SUQpOw0KICAgIH07DQogICAgcmV0dXJuIE1haW5NZW51Ow0KfSgpKTsNCnZhciBNYWluTWVudUl0ZW0gPSAvKiogQGNsYXNzICovIChmdW5jdGlvbiAoX3N1cGVyKSB7DQogICAgX19leHRlbmRzKE1haW5NZW51SXRlbSwgX3N1cGVyKTsNCiAgICBmdW5jdGlvbiBNYWluTWVudUl0ZW0oKSB7DQogICAgICAgIHJldHVybiBfc3VwZXIgIT09IG51bGwgJiYgX3N1cGVyLmFwcGx5KHRoaXMsIGFyZ3VtZW50cykgfHwgdGhpczsNCiAgICB9DQogICAgTWFpbk1lbnVJdGVtLnByb3RvdHlwZS5jcmVhdGUyID0gZnVuY3Rpb24gKCkgew0KICAgICAgICB2YXIgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQodGhpcy5IVE1MVGFnKTsNCiAgICAgICAgZWxlbWVudC5pbm5lclRleHQgPSB0aGlzLlZhbHVlOw0KICAgICAgICBjb25zb2xlLmxvZyhlbGVtZW50KTsNCiAgICB9Ow0KICAgIHJldHVybiBNYWluTWVudUl0ZW07DQp9KE1haW5NZW51KSk7DQpmdW5jdGlvbiBwYWdlUmVhZHkoKSB7DQogICAgdmFyIGl0ZW0gPSBuZXcgTWFpbk1lbnVJdGVtKCk7DQogICAgaXRlbS5WYWx1ZSA9ICJUZXN0IjsNCiAgICBpdGVtLmNyZWF0ZTIoKTsNCn0NCg==" - webUI["html/js/configuration_ts.js"] = "Y2xhc3MgV2l6YXJkQ2F0ZWdvcnkgew0KICAgIGNvbnN0cnVjdG9yKCkgew0KICAgICAgICB0aGlzLkRvY3VtZW50SUQgPSAiY29udGVudCI7DQogICAgfQ0KICAgIGNyZWF0ZUNhdGVnb3J5SGVhZGxpbmUodmFsdWUpIHsNCiAgICAgICAgdmFyIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJINCIpOw0KICAgICAgICBlbGVtZW50LmlubmVySFRNTCA9IHZhbHVlOw0KICAgICAgICByZXR1cm4gZWxlbWVudDsNCiAgICB9DQp9DQpjbGFzcyBXaXphcmRJdGVtIGV4dGVuZHMgV2l6YXJkQ2F0ZWdvcnkgew0KICAgIGNvbnN0cnVjdG9yKGtleSwgaGVhZGxpbmUpIHsNCiAgICAgICAgc3VwZXIoKTsNCiAgICAgICAgdGhpcy5oZWFkbGluZSA9IGhlYWRsaW5lOw0KICAgICAgICB0aGlzLmtleSA9IGtleTsNCiAgICB9DQogICAgY3JlYXRlV2l6YXJkKCkgew0KICAgICAgICB2YXIgaGVhZGxpbmUgPSB0aGlzLmNyZWF0ZUNhdGVnb3J5SGVhZGxpbmUodGhpcy5oZWFkbGluZSk7DQogICAgICAgIHZhciBrZXkgPSB0aGlzLmtleTsNCiAgICAgICAgdmFyIGNvbnRlbnQgPSBuZXcgUG9wdXBDb250ZW50KCk7DQogICAgICAgIHZhciBkZXNjcmlwdGlvbjsNCiAgICAgICAgdmFyIGRvYyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHRoaXMuRG9jdW1lbnRJRCk7DQogICAgICAgIGRvYy5pbm5lckhUTUwgPSAiIjsNCiAgICAgICAgZG9jLmFwcGVuZENoaWxkKGhlYWRsaW5lKTsNCiAgICAgICAgc3dpdGNoIChrZXkpIHsNCiAgICAgICAgICAgIGNhc2UgInR1bmVyIjoNCiAgICAgICAgICAgICAgICB2YXIgdGV4dCA9IG5ldyBBcnJheSgpOw0KICAgICAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBuZXcgQXJyYXkoKTsNCiAgICAgICAgICAgICAgICBmb3IgKHZhciBpID0gMTsgaSA8PSAxMDA7IGkrKykgew0KICAgICAgICAgICAgICAgICAgICB0ZXh0LnB1c2goaSk7DQogICAgICAgICAgICAgICAgICAgIHZhbHVlcy5wdXNoKGkpOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCAiMSIsIGtleSk7DQogICAgICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgiY2xhc3MiLCAid2l6YXJkIik7DQogICAgICAgICAgICAgICAgc2VsZWN0LmlkID0ga2V5Ow0KICAgICAgICAgICAgICAgIGRvYy5hcHBlbmRDaGlsZChzZWxlY3QpOw0KICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uID0gInt7LndpemFyZC50dW5lci5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImVwZ1NvdXJjZSI6DQogICAgICAgICAgICAgICAgdmFyIHRleHQgPSBbIlBNUyIsICJYRVBHIl07DQogICAgICAgICAgICAgICAgdmFyIHZhbHVlcyA9IFsiUE1TIiwgIlhFUEciXTsNCiAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCAiWEVQRyIsIGtleSk7DQogICAgICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgiY2xhc3MiLCAid2l6YXJkIik7DQogICAgICAgICAgICAgICAgc2VsZWN0LmlkID0ga2V5Ow0KICAgICAgICAgICAgICAgIGRvYy5hcHBlbmRDaGlsZChzZWxlY3QpOw0KICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uID0gInt7LndpemFyZC5lcGdTb3VyY2UuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJtM3UiOg0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBrZXksICIiKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LndpemFyZC5tM3UucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgiY2xhc3MiLCAid2l6YXJkIik7DQogICAgICAgICAgICAgICAgaW5wdXQuaWQgPSBrZXk7DQogICAgICAgICAgICAgICAgZG9jLmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbiA9ICJ7ey53aXphcmQubTN1LmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAieG1sdHYiOg0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBrZXksICIiKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LndpemFyZC54bWx0di5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJjbGFzcyIsICJ3aXphcmQiKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5pZCA9IGtleTsNCiAgICAgICAgICAgICAgICBkb2MuYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uID0gInt7LndpemFyZC54bWx0di5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICAgICAgY29uc29sZS5sb2coa2V5KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgfQ0KICAgICAgICB2YXIgcHJlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiUFJFIik7DQogICAgICAgIHByZS5pbm5lckhUTUwgPSBkZXNjcmlwdGlvbjsNCiAgICAgICAgZG9jLmFwcGVuZENoaWxkKHByZSk7DQogICAgICAgIGNvbnNvbGUubG9nKGhlYWRsaW5lLCBrZXkpOw0KICAgIH0NCn0NCmZ1bmN0aW9uIHJlYWR5Rm9yQ29uZmlndXJhdGlvbih3aXphcmQpIHsNCiAgICB2YXIgc2VydmVyID0gbmV3IFNlcnZlcigiZ2V0U2VydmVyQ29uZmlnIik7DQogICAgc2VydmVyLnJlcXVlc3QobmV3IE9iamVjdCgpKTsNCiAgICBzaG93RWxlbWVudCgibG9hZGluZyIsIGZhbHNlKTsNCiAgICBjb25maWd1cmF0aW9uV2l6YXJkW3dpemFyZF0uY3JlYXRlV2l6YXJkKCk7DQp9DQpmdW5jdGlvbiBzYXZlV2l6YXJkKCkgew0KICAgIHZhciBjbWQgPSAic2F2ZVdpemFyZCI7DQogICAgdmFyIGRpdiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb250ZW50Iik7DQogICAgdmFyIGNvbmZpZyA9IGRpdi5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCJ3aXphcmQiKTsNCiAgICB2YXIgd2l6YXJkID0gbmV3IE9iamVjdCgpOw0KICAgIGZvciAodmFyIGkgPSAwOyBpIDwgY29uZmlnLmxlbmd0aDsgaSsrKSB7DQogICAgICAgIHZhciBuYW1lOw0KICAgICAgICB2YXIgdmFsdWU7DQogICAgICAgIHN3aXRjaCAoY29uZmlnW2ldLnRhZ05hbWUpIHsNCiAgICAgICAgICAgIGNhc2UgIlNFTEVDVCI6DQogICAgICAgICAgICAgICAgbmFtZSA9IGNvbmZpZ1tpXS5uYW1lOw0KICAgICAgICAgICAgICAgIHZhbHVlID0gY29uZmlnW2ldLnZhbHVlOw0KICAgICAgICAgICAgICAgIC8vIElmIHRoZSB2YWx1ZSBpcyBhIG51bWJlciwgc3RvcmUgaXQgYXMgYSBudW1iZXINCiAgICAgICAgICAgICAgICBpZiAoaXNOYU4odmFsdWUpKSB7DQogICAgICAgICAgICAgICAgICAgIHdpemFyZFtuYW1lXSA9IHZhbHVlOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICAgICAgd2l6YXJkW25hbWVdID0gcGFyc2VJbnQodmFsdWUpOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgIklOUFVUIjoNCiAgICAgICAgICAgICAgICBzd2l0Y2ggKGNvbmZpZ1tpXS50eXBlKSB7DQogICAgICAgICAgICAgICAgICAgIGNhc2UgInRleHQiOg0KICAgICAgICAgICAgICAgICAgICAgICAgbmFtZSA9IGNvbmZpZ1tpXS5uYW1lOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSBjb25maWdbaV0udmFsdWU7DQogICAgICAgICAgICAgICAgICAgICAgICBpZiAodmFsdWUubGVuZ3RoID09IDApIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgbXNnID0gbmFtZS50b1VwcGVyQ2FzZSgpICsgIjogIiArICJ7ey5hbGVydC5taXNzaW5nSW5wdXR9fSI7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgYWxlcnQobXNnKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICB3aXphcmRbbmFtZV0gPSB2YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICAgICAgLy8gY29kZS4uLg0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICB9DQogICAgfQ0KICAgIHZhciBkYXRhID0gbmV3IE9iamVjdCgpOw0KICAgIGRhdGFbIndpemFyZCJdID0gd2l6YXJkOw0KICAgIHZhciBzZXJ2ZXIgPSBuZXcgU2VydmVyKGNtZCk7DQogICAgc2VydmVyLnJlcXVlc3QoZGF0YSk7DQogICAgY29uc29sZS5sb2coZGF0YSk7DQp9DQovLyBXaXphcmQNCnZhciBjb25maWd1cmF0aW9uV2l6YXJkID0gbmV3IEFycmF5KCk7DQpjb25maWd1cmF0aW9uV2l6YXJkLnB1c2gobmV3IFdpemFyZEl0ZW0oInR1bmVyIiwgInt7LndpemFyZC50dW5lci50aXRsZX19IikpOw0KY29uZmlndXJhdGlvbldpemFyZC5wdXNoKG5ldyBXaXphcmRJdGVtKCJlcGdTb3VyY2UiLCAie3sud2l6YXJkLmVwZ1NvdXJjZS50aXRsZX19IikpOw0KY29uZmlndXJhdGlvbldpemFyZC5wdXNoKG5ldyBXaXphcmRJdGVtKCJtM3UiLCAie3sud2l6YXJkLm0zdS50aXRsZX19IikpOw0KY29uZmlndXJhdGlvbldpemFyZC5wdXNoKG5ldyBXaXphcmRJdGVtKCJ4bWx0diIsICJ7ey53aXphcmQueG1sdHYudGl0bGV9fSIpKTsNCg==" + webUI["html/js/configuration_ts.js"] = "Y2xhc3MgV2l6YXJkQ2F0ZWdvcnkgew0KICAgIGNvbnN0cnVjdG9yKCkgew0KICAgICAgICB0aGlzLkRvY3VtZW50SUQgPSAiY29udGVudCI7DQogICAgfQ0KICAgIGNyZWF0ZUNhdGVnb3J5SGVhZGxpbmUodmFsdWUpIHsNCiAgICAgICAgdmFyIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJINCIpOw0KICAgICAgICBlbGVtZW50LmlubmVySFRNTCA9IHZhbHVlOw0KICAgICAgICByZXR1cm4gZWxlbWVudDsNCiAgICB9DQp9DQpjbGFzcyBXaXphcmRJdGVtIGV4dGVuZHMgV2l6YXJkQ2F0ZWdvcnkgew0KICAgIGNvbnN0cnVjdG9yKGtleSwgaGVhZGxpbmUpIHsNCiAgICAgICAgc3VwZXIoKTsNCiAgICAgICAgdGhpcy5oZWFkbGluZSA9IGhlYWRsaW5lOw0KICAgICAgICB0aGlzLmtleSA9IGtleTsNCiAgICB9DQogICAgY3JlYXRlV2l6YXJkKCkgew0KICAgICAgICB2YXIgaGVhZGxpbmUgPSB0aGlzLmNyZWF0ZUNhdGVnb3J5SGVhZGxpbmUodGhpcy5oZWFkbGluZSk7DQogICAgICAgIHZhciBrZXkgPSB0aGlzLmtleTsNCiAgICAgICAgdmFyIGNvbnRlbnQgPSBuZXcgUG9wdXBDb250ZW50KCk7DQogICAgICAgIHZhciBkZXNjcmlwdGlvbjsNCiAgICAgICAgdmFyIGRvYyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHRoaXMuRG9jdW1lbnRJRCk7DQogICAgICAgIGRvYy5pbm5lckhUTUwgPSAiIjsNCiAgICAgICAgZG9jLmFwcGVuZENoaWxkKGhlYWRsaW5lKTsNCiAgICAgICAgc3dpdGNoIChrZXkpIHsNCiAgICAgICAgICAgIGNhc2UgInR1bmVyIjoNCiAgICAgICAgICAgICAgICB2YXIgdGV4dCA9IG5ldyBBcnJheSgpOw0KICAgICAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBuZXcgQXJyYXkoKTsNCiAgICAgICAgICAgICAgICBmb3IgKHZhciBpID0gMTsgaSA8PSAxMDA7IGkrKykgew0KICAgICAgICAgICAgICAgICAgICB0ZXh0LnB1c2goaSk7DQogICAgICAgICAgICAgICAgICAgIHZhbHVlcy5wdXNoKGkpOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCAiMSIsIGtleSk7DQogICAgICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgiY2xhc3MiLCAid2l6YXJkIik7DQogICAgICAgICAgICAgICAgc2VsZWN0LmlkID0ga2V5Ow0KICAgICAgICAgICAgICAgIGRvYy5hcHBlbmRDaGlsZChzZWxlY3QpOw0KICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uID0gInt7LndpemFyZC50dW5lci5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImVwZ1NvdXJjZSI6DQogICAgICAgICAgICAgICAgdmFyIHRleHQgPSBbIlBNUyIsICJYRVBHIl07DQogICAgICAgICAgICAgICAgdmFyIHZhbHVlcyA9IFsiUE1TIiwgIlhFUEciXTsNCiAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCAiWEVQRyIsIGtleSk7DQogICAgICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgiY2xhc3MiLCAid2l6YXJkIik7DQogICAgICAgICAgICAgICAgc2VsZWN0LmlkID0ga2V5Ow0KICAgICAgICAgICAgICAgIGRvYy5hcHBlbmRDaGlsZChzZWxlY3QpOw0KICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uID0gInt7LndpemFyZC5lcGdTb3VyY2UuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJtM3UiOg0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBrZXksICIiKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LndpemFyZC5tM3UucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgiY2xhc3MiLCAid2l6YXJkIik7DQogICAgICAgICAgICAgICAgaW5wdXQuaWQgPSBrZXk7DQogICAgICAgICAgICAgICAgZG9jLmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbiA9ICJ7ey53aXphcmQubTN1LmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAieG1sdHYiOg0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBrZXksICIiKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LndpemFyZC54bWx0di5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJjbGFzcyIsICJ3aXphcmQiKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5pZCA9IGtleTsNCiAgICAgICAgICAgICAgICBkb2MuYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uID0gInt7LndpemFyZC54bWx0di5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIH0NCiAgICAgICAgdmFyIHByZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlBSRSIpOw0KICAgICAgICBwcmUuaW5uZXJIVE1MID0gZGVzY3JpcHRpb247DQogICAgICAgIGRvYy5hcHBlbmRDaGlsZChwcmUpOw0KICAgIH0NCn0NCmZ1bmN0aW9uIHJlYWR5Rm9yQ29uZmlndXJhdGlvbih3aXphcmQpIHsNCiAgICB2YXIgc2VydmVyID0gbmV3IFNlcnZlcigiZ2V0U2VydmVyQ29uZmlnIik7DQogICAgc2VydmVyLnJlcXVlc3QobmV3IE9iamVjdCgpKTsNCiAgICBzaG93RWxlbWVudCgibG9hZGluZyIsIGZhbHNlKTsNCiAgICBjb25maWd1cmF0aW9uV2l6YXJkW3dpemFyZF0uY3JlYXRlV2l6YXJkKCk7DQp9DQpmdW5jdGlvbiBzYXZlV2l6YXJkKCkgew0KICAgIHZhciBjbWQgPSAic2F2ZVdpemFyZCI7DQogICAgdmFyIGRpdiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb250ZW50Iik7DQogICAgdmFyIGNvbmZpZyA9IGRpdi5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCJ3aXphcmQiKTsNCiAgICB2YXIgd2l6YXJkID0gbmV3IE9iamVjdCgpOw0KICAgIGZvciAodmFyIGkgPSAwOyBpIDwgY29uZmlnLmxlbmd0aDsgaSsrKSB7DQogICAgICAgIHZhciBuYW1lOw0KICAgICAgICB2YXIgdmFsdWU7DQogICAgICAgIHN3aXRjaCAoY29uZmlnW2ldLnRhZ05hbWUpIHsNCiAgICAgICAgICAgIGNhc2UgIlNFTEVDVCI6DQogICAgICAgICAgICAgICAgbmFtZSA9IGNvbmZpZ1tpXS5uYW1lOw0KICAgICAgICAgICAgICAgIHZhbHVlID0gY29uZmlnW2ldLnZhbHVlOw0KICAgICAgICAgICAgICAgIC8vIElmIHRoZSB2YWx1ZSBpcyBhIG51bWJlciwgc3RvcmUgaXQgYXMgYSBudW1iZXINCiAgICAgICAgICAgICAgICBpZiAoaXNOYU4odmFsdWUpKSB7DQogICAgICAgICAgICAgICAgICAgIHdpemFyZFtuYW1lXSA9IHZhbHVlOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICAgICAgd2l6YXJkW25hbWVdID0gcGFyc2VJbnQodmFsdWUpOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgIklOUFVUIjoNCiAgICAgICAgICAgICAgICBzd2l0Y2ggKGNvbmZpZ1tpXS50eXBlKSB7DQogICAgICAgICAgICAgICAgICAgIGNhc2UgInRleHQiOg0KICAgICAgICAgICAgICAgICAgICAgICAgbmFtZSA9IGNvbmZpZ1tpXS5uYW1lOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSBjb25maWdbaV0udmFsdWU7DQogICAgICAgICAgICAgICAgICAgICAgICBpZiAodmFsdWUubGVuZ3RoID09IDApIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgbXNnID0gbmFtZS50b1VwcGVyQ2FzZSgpICsgIjogIiArICJ7ey5hbGVydC5taXNzaW5nSW5wdXR9fSI7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgYWxlcnQobXNnKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICB3aXphcmRbbmFtZV0gPSB2YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICAgICAgLy8gY29kZS4uLg0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICB9DQogICAgfQ0KICAgIHZhciBkYXRhID0gbmV3IE9iamVjdCgpOw0KICAgIGRhdGFbIndpemFyZCJdID0gd2l6YXJkOw0KICAgIHZhciBzZXJ2ZXIgPSBuZXcgU2VydmVyKGNtZCk7DQogICAgc2VydmVyLnJlcXVlc3QoZGF0YSk7DQp9DQovLyBXaXphcmQNCnZhciBjb25maWd1cmF0aW9uV2l6YXJkID0gbmV3IEFycmF5KCk7DQpjb25maWd1cmF0aW9uV2l6YXJkLnB1c2gobmV3IFdpemFyZEl0ZW0oInR1bmVyIiwgInt7LndpemFyZC50dW5lci50aXRsZX19IikpOw0KY29uZmlndXJhdGlvbldpemFyZC5wdXNoKG5ldyBXaXphcmRJdGVtKCJlcGdTb3VyY2UiLCAie3sud2l6YXJkLmVwZ1NvdXJjZS50aXRsZX19IikpOw0KY29uZmlndXJhdGlvbldpemFyZC5wdXNoKG5ldyBXaXphcmRJdGVtKCJtM3UiLCAie3sud2l6YXJkLm0zdS50aXRsZX19IikpOw0KY29uZmlndXJhdGlvbldpemFyZC5wdXNoKG5ldyBXaXphcmRJdGVtKCJ4bWx0diIsICJ7ey53aXphcmQueG1sdHYudGl0bGV9fSIpKTsNCg==" webUI["html/js/logs_ts.js"] = "Y2xhc3MgTG9nIHsNCiAgICBjcmVhdGVMb2coZW50cnkpIHsNCiAgICAgICAgdmFyIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJQUkUiKTsNCiAgICAgICAgaWYgKGVudHJ5LmluZGV4T2YoIldBUk5JTkciKSAhPSAtMSkgew0KICAgICAgICAgICAgZWxlbWVudC5jbGFzc05hbWUgPSAid2FybmluZ01zZyI7DQogICAgICAgIH0NCiAgICAgICAgaWYgKGVudHJ5LmluZGV4T2YoIkVSUk9SIikgIT0gLTEpIHsNCiAgICAgICAgICAgIGVsZW1lbnQuY2xhc3NOYW1lID0gImVycm9yTXNnIjsNCiAgICAgICAgfQ0KICAgICAgICBpZiAoZW50cnkuaW5kZXhPZigiREVCVUciKSAhPSAtMSkgew0KICAgICAgICAgICAgZWxlbWVudC5jbGFzc05hbWUgPSAiZGVidWdNc2ciOw0KICAgICAgICB9DQogICAgICAgIGVsZW1lbnQuaW5uZXJIVE1MID0gZW50cnk7DQogICAgICAgIHJldHVybiBlbGVtZW50Ow0KICAgIH0NCn0NCmZ1bmN0aW9uIHNob3dMb2dzKGJvdHRvbSkgew0KICAgIHZhciBsb2cgPSBuZXcgTG9nKCk7DQogICAgdmFyIGxvZ3MgPSBTRVJWRVJbImxvZyJdWyJsb2ciXTsNCiAgICB2YXIgZGl2ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnRlbnRfbG9nIik7DQogICAgZGl2LmlubmVySFRNTCA9ICIiOw0KICAgIHZhciBrZXlzID0gZ2V0T3duT2JqUHJvcHMobG9ncyk7DQogICAga2V5cy5mb3JFYWNoKGxvZ0lEID0+IHsNCiAgICAgICAgdmFyIGVudHJ5ID0gbG9nLmNyZWF0ZUxvZyhsb2dzW2xvZ0lEXSk7DQogICAgICAgIGRpdi5hcHBlbmQoZW50cnkpOw0KICAgIH0pOw0KICAgIHNldFRpbWVvdXQoZnVuY3Rpb24gKCkgew0KICAgICAgICBpZiAoYm90dG9tID09IHRydWUpIHsNCiAgICAgICAgICAgIHZhciB3cmFwcGVyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImJveC13cmFwcGVyIik7DQogICAgICAgICAgICB3cmFwcGVyLnNjcm9sbFRvcCA9IHdyYXBwZXIuc2Nyb2xsSGVpZ2h0Ow0KICAgICAgICB9DQogICAgfSwgMTApOw0KfQ0KZnVuY3Rpb24gcmVzZXRMb2dzKCkgew0KICAgIHZhciBjbWQgPSAicmVzZXRMb2dzIjsNCiAgICB2YXIgZGF0YSA9IG5ldyBPYmplY3QoKTsNCiAgICB2YXIgc2VydmVyID0gbmV3IFNlcnZlcihjbWQpOw0KICAgIHNlcnZlci5yZXF1ZXN0KGRhdGEpOw0KfQ0K" - webUI["html/js/menu_ts.js"] = "Y2xhc3MgTWFpbk1lbnUgew0KICAgIGNvbnN0cnVjdG9yKCkgew0KICAgICAgICB0aGlzLkRvY3VtZW50SUQgPSAibWFpbi1tZW51IjsNCiAgICAgICAgdGhpcy5IVE1MVGFnID0gIkxJIjsNCiAgICAgICAgdGhpcy5JbWFnZVBhdGggPSAiaW1nLyI7DQogICAgfQ0KICAgIGNyZWF0ZUlNRyhzcmMpIHsNCiAgICAgICAgbGV0IGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJJTUciKTsNCiAgICAgICAgZWxlbWVudC5zZXRBdHRyaWJ1dGUoInNyYyIsIHRoaXMuSW1hZ2VQYXRoICsgc3JjKTsNCiAgICAgICAgcmV0dXJuIGVsZW1lbnQ7DQogICAgfQ0KICAgIGNyZWF0ZVZhbHVlKHZhbHVlKSB7DQogICAgICAgIGxldCBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiUCIpOw0KICAgICAgICBlbGVtZW50LmlubmVySFRNTCA9IHZhbHVlOw0KICAgICAgICByZXR1cm4gZWxlbWVudDsNCiAgICB9DQp9DQpjbGFzcyBNYWluTWVudUl0ZW0gZXh0ZW5kcyBNYWluTWVudSB7DQogICAgY29uc3RydWN0b3IobWVudUtleSwgdmFsdWUsIGltYWdlLCBoZWFkbGluZSkgew0KICAgICAgICBzdXBlcigpOw0KICAgICAgICB0aGlzLm1lbnVLZXkgPSBtZW51S2V5Ow0KICAgICAgICB0aGlzLnZhbHVlID0gdmFsdWU7DQogICAgICAgIHRoaXMuaW1nU3JjID0gaW1hZ2U7DQogICAgICAgIHRoaXMuaGVhZGxpbmUgPSBoZWFkbGluZTsNCiAgICB9DQogICAgY3JlYXRlSXRlbSgpIHsNCiAgICAgICAgbGV0IGl0ZW0gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJMSSIpOw0KICAgICAgICBpdGVtLnNldEF0dHJpYnV0ZSgib25jbGljayIsICJqYXZhc2NyaXB0OiBvcGVuVGhpc01lbnUodGhpcykiKTsNCiAgICAgICAgaXRlbS5zZXRBdHRyaWJ1dGUoImlkIiwgdGhpcy5pZCk7DQogICAgICAgIGxldCBpbWcgPSB0aGlzLmNyZWF0ZUlNRyh0aGlzLmltZ1NyYyk7DQogICAgICAgIGxldCB2YWx1ZSA9IHRoaXMuY3JlYXRlVmFsdWUodGhpcy52YWx1ZSk7DQogICAgICAgIGl0ZW0uYXBwZW5kQ2hpbGQoaW1nKTsNCiAgICAgICAgaXRlbS5hcHBlbmRDaGlsZCh2YWx1ZSk7DQogICAgICAgIGxldCBkb2MgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCh0aGlzLkRvY3VtZW50SUQpOw0KICAgICAgICBkb2MuYXBwZW5kQ2hpbGQoaXRlbSk7DQogICAgICAgIHN3aXRjaCAodGhpcy5tZW51S2V5KSB7DQogICAgICAgICAgICBjYXNlICJwbGF5bGlzdCI6DQogICAgICAgICAgICAgICAgdGhpcy50YWJsZUhlYWRlciA9IFsie3sucGxheWxpc3QudGFibGUucGxheWxpc3R9fSIsICJ7ey5wbGF5bGlzdC50YWJsZS50dW5lcn19IiwgInt7LnBsYXlsaXN0LnRhYmxlLmxhc3RVcGRhdGV9fSIsICJ7ey5wbGF5bGlzdC50YWJsZS5hdmFpbGFiaWxpdHl9fSAlIiwgInt7LnBsYXlsaXN0LnRhYmxlLnR5cGV9fSIsICJ7ey5wbGF5bGlzdC50YWJsZS5zdHJlYW1zfX0iLCAie3sucGxheWxpc3QudGFibGUuZ3JvdXBUaXRsZX19ICUiLCAie3sucGxheWxpc3QudGFibGUudHZnSUR9fSAlIiwgInt7LnBsYXlsaXN0LnRhYmxlLnVuaXF1ZUlEfX0gJSJdOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAieG1sdHYiOg0KICAgICAgICAgICAgICAgIHRoaXMudGFibGVIZWFkZXIgPSBbInt7LnhtbHR2LnRhYmxlLmd1aWRlfX0iLCAie3sueG1sdHYudGFibGUubGFzdFVwZGF0ZX19IiwgInt7LnhtbHR2LnRhYmxlLmF2YWlsYWJpbGl0eX19ICUiLCAie3sueG1sdHYudGFibGUuY2hhbm5lbHN9fSIsICJ7ey54bWx0di50YWJsZS5wcm9ncmFtc319Il07DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJmaWx0ZXIiOg0KICAgICAgICAgICAgICAgIHRoaXMudGFibGVIZWFkZXIgPSBbInt7LmZpbHRlci50YWJsZS5zdGFydGluZ0NoYW5uZWx9fSIsICJ7ey5maWx0ZXIudGFibGUubmFtZX19IiwgInt7LmZpbHRlci50YWJsZS50eXBlfX0iLCAie3suZmlsdGVyLnRhYmxlLmZpbHRlcn19Il07DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ1c2VycyI6DQogICAgICAgICAgICAgICAgdGhpcy50YWJsZUhlYWRlciA9IFsie3sudXNlcnMudGFibGUudXNlcm5hbWV9fSIsICJ7ey51c2Vycy50YWJsZS5wYXNzd29yZH19IiwgInt7LnVzZXJzLnRhYmxlLndlYn19IiwgInt7LnVzZXJzLnRhYmxlLnBtc319IiwgInt7LnVzZXJzLnRhYmxlLm0zdX19IiwgInt7LnVzZXJzLnRhYmxlLnhtbH19IiwgInt7LnVzZXJzLnRhYmxlLmFwaX19Il07DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJtYXBwaW5nIjoNCiAgICAgICAgICAgICAgICB0aGlzLnRhYmxlSGVhZGVyID0gWyJCVUxLIiwgInt7Lm1hcHBpbmcudGFibGUuY2hOb319IiwgInt7Lm1hcHBpbmcudGFibGUubG9nb319IiwgInt7Lm1hcHBpbmcudGFibGUuY2hhbm5lbE5hbWV9fSIsICJ7ey5tYXBwaW5nLnRhYmxlLnBsYXlsaXN0fX0iLCAie3subWFwcGluZy50YWJsZS5ncm91cFRpdGxlfX0iLCAie3subWFwcGluZy50YWJsZS54bWx0dkZpbGV9fSIsICJ7ey5tYXBwaW5nLnRhYmxlLnhtbHR2SUR9fSIsICJ7ey5tYXBwaW5nLnRhYmxlLnRpbWVzaGlmdH19Il07DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIH0NCiAgICAgICAgLy9jb25zb2xlLmxvZyh0aGlzLm1lbnVLZXksIHRoaXMudGFibGVIZWFkZXIpOw0KICAgIH0NCn0NCmNsYXNzIENvbnRlbnQgew0KICAgIGNvbnN0cnVjdG9yKCkgew0KICAgICAgICB0aGlzLkRvY3VtZW50SUQgPSAiY29udGVudCI7DQogICAgICAgIHRoaXMuVGFibGVJRCA9ICJjb250ZW50X3RhYmxlIjsNCiAgICAgICAgdGhpcy5oZWFkZXJDbGFzcyA9ICJjb250ZW50X3RhYmxlX2hlYWRlciI7DQogICAgICAgIHRoaXMuaW50ZXJhY3Rpb25JRCA9ICJjb250ZW50LWludGVyYWN0aW9uIjsNCiAgICB9DQogICAgY3JlYXRlSGVhZGxpbmUodmFsdWUpIHsNCiAgICAgICAgbGV0IGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJIMyIpOw0KICAgICAgICBlbGVtZW50LmlubmVySFRNTCA9IHZhbHVlOw0KICAgICAgICByZXR1cm4gZWxlbWVudDsNCiAgICB9DQogICAgY3JlYXRlSFIoKSB7DQogICAgICAgIHJldHVybiBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJIUiIpOw0KICAgIH0NCiAgICBjcmVhdGVJbnRlcmFjdGlvbigpIHsNCiAgICAgICAgbGV0IGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJESVYiKTsNCiAgICAgICAgZWxlbWVudC5zZXRBdHRyaWJ1dGUoImlkIiwgdGhpcy5pbnRlcmFjdGlvbklEKTsNCiAgICAgICAgcmV0dXJuIGVsZW1lbnQ7DQogICAgfQ0KICAgIGNyZWF0ZURJVigpIHsNCiAgICAgICAgbGV0IGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJESVYiKTsNCiAgICAgICAgZWxlbWVudC5pZCA9IHRoaXMuRGl2SUQ7DQogICAgICAgIHJldHVybiBlbGVtZW50Ow0KICAgIH0NCiAgICBjcmVhdGVUQUJMRSgpIHsNCiAgICAgICAgbGV0IGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJUQUJMRSIpOw0KICAgICAgICBlbGVtZW50LmlkID0gdGhpcy5UYWJsZUlEOw0KICAgICAgICByZXR1cm4gZWxlbWVudDsNCiAgICB9DQogICAgY3JlYXRlVGFibGVSb3coKSB7DQogICAgICAgIGxldCBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVFIiKTsNCiAgICAgICAgZWxlbWVudC5jbGFzc05hbWUgPSB0aGlzLmhlYWRlckNsYXNzOw0KICAgICAgICByZXR1cm4gZWxlbWVudDsNCiAgICB9DQogICAgY3JlYXRlVGFibGVDb250ZW50KG1lbnVLZXkpIHsNCiAgICAgICAgbGV0IGRhdGEgPSB7fTsNCiAgICAgICAgbGV0IHJvd3MgPSBbXTsNCiAgICAgICAgbGV0IGZpbGVUeXBlcyA9IFtdOw0KICAgICAgICBzd2l0Y2ggKG1lbnVLZXkpIHsNCiAgICAgICAgICAgIGNhc2UgInBsYXlsaXN0IjoNCiAgICAgICAgICAgICAgICBmaWxlVHlwZXMgPSBbIm0zdSIsICJoZGhyIl07DQogICAgICAgICAgICAgICAgZmlsZVR5cGVzLmZvckVhY2goZmlsZVR5cGUgPT4gew0KICAgICAgICAgICAgICAgICAgICBkYXRhID0gU0VSVkVSWyJzZXR0aW5ncyJdWyJmaWxlcyJdW2ZpbGVUeXBlXTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGtleXMgPSBnZXRPd25PYmpQcm9wcyhkYXRhKTsNCiAgICAgICAgICAgICAgICAgICAga2V5cy5mb3JFYWNoKGtleSA9PiB7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgdHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJUUiIpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuaWQgPSBrZXk7DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCInICsgZmlsZVR5cGUgKyAnIiwgdGhpcyknKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJuYW1lIl07DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgaWYgKFNFUlZFUlsic2V0dGluZ3MiXVsiYnVmZmVyIl0gIT0gIi0iKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsidHVuZXIiXTsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSAiLSI7DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsibGFzdC51cGRhdGUiXTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJwcm92aWRlci5hdmFpbGFiaWxpdHkiXTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJ0eXBlIl0udG9VcHBlckNhc2UoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJjb21wYXRpYmlsaXR5Il1bInN0cmVhbXMiXTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJjb21wYXRpYmlsaXR5Il1bImdyb3VwLnRpdGxlIl07DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsiY29tcGF0aWJpbGl0eSJdWyJ0dmcuaWQiXTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJjb21wYXRpYmlsaXR5Il1bInN0cmVhbS5pZCJdOw0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgcm93cy5wdXNoKHRyKTsNCiAgICAgICAgICAgICAgICAgICAgfSk7DQogICAgICAgICAgICAgICAgfSk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJmaWx0ZXIiOg0KICAgICAgICAgICAgICAgIGRlbGV0ZSBTRVJWRVJbInNldHRpbmdzIl1bImZpbHRlciJdWy0xXTsNCiAgICAgICAgICAgICAgICBkYXRhID0gU0VSVkVSWyJzZXR0aW5ncyJdWyJmaWx0ZXIiXTsNCiAgICAgICAgICAgICAgICB2YXIga2V5cyA9IGdldE93bk9ialByb3BzKGRhdGEpOw0KICAgICAgICAgICAgICAgIGtleXMuZm9yRWFjaChrZXkgPT4gew0KICAgICAgICAgICAgICAgICAgICB2YXIgdHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJUUiIpOw0KICAgICAgICAgICAgICAgICAgICB0ci5pZCA9IGtleTsNCiAgICAgICAgICAgICAgICAgICAgdHIuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgiJyArIGRhdGFba2V5XVsidHlwZSJdICsgJyIsIHRoaXMpJyk7DQogICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJzdGFydGluZ0NoYW5uZWwiXTsNCiAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsibmFtZSJdOw0KICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICBzd2l0Y2ggKGRhdGFba2V5XVsidHlwZSJdKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBjYXNlICJjdXN0b20tZmlsdGVyIjoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gInt7LmZpbHRlci5jdXN0b219fSI7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgICAgICAgICBjYXNlICJncm91cC10aXRsZSI6DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9ICJ7ey5maWx0ZXIuZ3JvdXB9fSI7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgICAgICAgICBkZWZhdWx0Og0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bImZpbHRlciJdOw0KICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgIHJvd3MucHVzaCh0cik7DQogICAgICAgICAgICAgICAgfSk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ4bWx0diI6DQogICAgICAgICAgICAgICAgZmlsZVR5cGVzID0gbmV3IEFycmF5KCJ4bWx0diIpOw0KICAgICAgICAgICAgICAgIGZpbGVUeXBlcy5mb3JFYWNoKGZpbGVUeXBlID0+IHsNCiAgICAgICAgICAgICAgICAgICAgZGF0YSA9IFNFUlZFUlsic2V0dGluZ3MiXVsiZmlsZXMiXVtmaWxlVHlwZV07DQogICAgICAgICAgICAgICAgICAgIHZhciBrZXlzID0gZ2V0T3duT2JqUHJvcHMoZGF0YSk7DQogICAgICAgICAgICAgICAgICAgIGtleXMuZm9yRWFjaChrZXkgPT4gew0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVFIiKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmlkID0ga2V5Ow0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgiJyArIGZpbGVUeXBlICsgJyIsIHRoaXMpJyk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsibmFtZSJdOw0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bImxhc3QudXBkYXRlIl07DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsicHJvdmlkZXIuYXZhaWxhYmlsaXR5Il07DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsiY29tcGF0aWJpbGl0eSJdWyJ4bWx0di5jaGFubmVscyJdOw0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bImNvbXBhdGliaWxpdHkiXVsieG1sdHYucHJvZ3JhbXMiXTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHJvd3MucHVzaCh0cik7DQogICAgICAgICAgICAgICAgICAgIH0pOw0KICAgICAgICAgICAgICAgIH0pOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAidXNlcnMiOg0KICAgICAgICAgICAgICAgIGZpbGVUeXBlcyA9IG5ldyBBcnJheSgidXNlcnMiKTsNCiAgICAgICAgICAgICAgICBmaWxlVHlwZXMuZm9yRWFjaChmaWxlVHlwZSA9PiB7DQogICAgICAgICAgICAgICAgICAgIGRhdGEgPSBTRVJWRVJbZmlsZVR5cGVdOw0KICAgICAgICAgICAgICAgICAgICB2YXIga2V5cyA9IGdldE93bk9ialByb3BzKGRhdGEpOw0KICAgICAgICAgICAgICAgICAgICBrZXlzLmZvckVhY2goa2V5ID0+IHsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciB0ciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlRSIik7DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5pZCA9IGtleTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoIicgKyBmaWxlVHlwZSArICciLCB0aGlzKScpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bImRhdGEiXVsidXNlcm5hbWUiXTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gIioqKioqKiI7DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGRhdGFba2V5XVsiZGF0YSJdWyJhdXRoZW50aWNhdGlvbi53ZWIiXSA9PSB0cnVlKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9ICLinJMiOw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9ICItIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgICAgICBpZiAoZGF0YVtrZXldWyJkYXRhIl1bImF1dGhlbnRpY2F0aW9uLnBtcyJdID09IHRydWUpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gIuKckyI7DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gIi0iOw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChkYXRhW2tleV1bImRhdGEiXVsiYXV0aGVudGljYXRpb24ubTN1Il0gPT0gdHJ1ZSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSAi4pyTIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSAiLSI7DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGRhdGFba2V5XVsiZGF0YSJdWyJhdXRoZW50aWNhdGlvbi54bWwiXSA9PSB0cnVlKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9ICLinJMiOw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9ICItIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgICAgICBpZiAoZGF0YVtrZXldWyJkYXRhIl1bImF1dGhlbnRpY2F0aW9uLmFwaSJdID09IHRydWUpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gIuKckyI7DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gIi0iOw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgcm93cy5wdXNoKHRyKTsNCiAgICAgICAgICAgICAgICAgICAgfSk7DQogICAgICAgICAgICAgICAgfSk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJtYXBwaW5nIjoNCiAgICAgICAgICAgICAgICBCVUxLX0VESVQgPSBmYWxzZTsNCiAgICAgICAgICAgICAgICBjcmVhdGVTZWFyY2hPYmooKTsNCiAgICAgICAgICAgICAgICBjaGVja1VuZG8oImVwZ01hcHBpbmciKTsNCiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZygiTUFQUElORyIpOw0KICAgICAgICAgICAgICAgIGRhdGEgPSBTRVJWRVJbInhlcGciXVsiZXBnTWFwcGluZyJdOw0KICAgICAgICAgICAgICAgIHZhciBrZXlzID0gZ2V0T3duT2JqUHJvcHMoZGF0YSk7DQogICAgICAgICAgICAgICAga2V5cy5mb3JFYWNoKGtleSA9PiB7DQogICAgICAgICAgICAgICAgICAgIHZhciB0ciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlRSIik7DQogICAgICAgICAgICAgICAgICAgIHRyLmlkID0ga2V5Ow0KICAgICAgICAgICAgICAgICAgICAvL3RyLnNldEF0dHJpYnV0ZSgnb25jb250ZXh0bWVudScsICdqYXZhc2NyaXB0OiByaWdodENsaWNrKHRoaXMpJykNCiAgICAgICAgICAgICAgICAgICAgc3dpdGNoIChkYXRhW2tleV1bIngtYWN0aXZlIl0pIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgdHJ1ZToNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ci5jbGFzc05hbWUgPSAiYWN0aXZlRVBHIjsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgZmFsc2U6DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgdHIuY2xhc3NOYW1lID0gIm5vdEFjdGl2ZUVQRyI7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgLy8gQnVsaw0KICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJCVUxLIjsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGZhbHNlOw0KICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgIC8vIENoYW5uZWwgbnVtYmVyDQogICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIklOUFVUQ0hBTk5FTCI7DQogICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bIngtY2hhbm5lbElEIl07DQogICAgICAgICAgICAgICAgICAgIC8vdGQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IGNoYW5nZUNoYW5uZWxOdW1iZXIoIicgKyBrZXkgKyAnIiwgdGhpcyknKQ0KICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgIC8vIExvZ28NCiAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiSU1HIjsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5pbWFnZVVSTCA9IGRhdGFba2V5XVsidHZnLWxvZ28iXTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHRkID0gY2VsbC5jcmVhdGVDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgIHRkLnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoIm1hcHBpbmciLCB0aGlzKScpOw0KICAgICAgICAgICAgICAgICAgICB0ZC5pZCA9IGtleTsNCiAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQodGQpOw0KICAgICAgICAgICAgICAgICAgICAvLyBDaGFubmVsIG5hbWUNCiAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2xhc3NOYW1lID0gZGF0YVtrZXldWyJ4LWNhdGVnb3J5Il07DQogICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bIngtbmFtZSJdOw0KICAgICAgICAgICAgICAgICAgICB2YXIgdGQgPSBjZWxsLmNyZWF0ZUNlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgdGQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgibWFwcGluZyIsIHRoaXMpJyk7DQogICAgICAgICAgICAgICAgICAgIHRkLmlkID0ga2V5Ow0KICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZCh0ZCk7DQogICAgICAgICAgICAgICAgICAgIC8vIFBsYXlsaXN0DQogICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAvL2NlbGwudmFsdWUgPSBkYXRhW2tleV1bIl9maWxlLm0zdS5uYW1lIl0gDQogICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBnZXRWYWx1ZUZyb21Qcm92aWRlckZpbGUoZGF0YVtrZXldWyJfZmlsZS5tM3UuaWQiXSwgIm0zdSIsICJuYW1lIik7DQogICAgICAgICAgICAgICAgICAgIHZhciB0ZCA9IGNlbGwuY3JlYXRlQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICB0ZC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJtYXBwaW5nIiwgdGhpcyknKTsNCiAgICAgICAgICAgICAgICAgICAgdGQuaWQgPSBrZXk7DQogICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKHRkKTsNCiAgICAgICAgICAgICAgICAgICAgLy8gR3JvdXAgKGdyb3VwLXRpdGxlKQ0KICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsieC1ncm91cC10aXRsZSJdOw0KICAgICAgICAgICAgICAgICAgICB2YXIgdGQgPSBjZWxsLmNyZWF0ZUNlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgdGQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgibWFwcGluZyIsIHRoaXMpJyk7DQogICAgICAgICAgICAgICAgICAgIHRkLmlkID0ga2V5Ow0KICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZCh0ZCk7DQogICAgICAgICAgICAgICAgICAgIC8vIFhNTFRWIGZpbGUNCiAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgIGlmIChkYXRhW2tleV1bIngteG1sdHYtZmlsZSJdICE9ICItIikgew0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGdldFZhbHVlRnJvbVByb3ZpZGVyRmlsZShkYXRhW2tleV1bIngteG1sdHYtZmlsZSJdLCAieG1sdHYiLCAibmFtZSIpOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsieC14bWx0di1maWxlIl07DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgdmFyIHRkID0gY2VsbC5jcmVhdGVDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgIHRkLnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoIm1hcHBpbmciLCB0aGlzKScpOw0KICAgICAgICAgICAgICAgICAgICB0ZC5pZCA9IGtleTsNCiAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQodGQpOw0KICAgICAgICAgICAgICAgICAgICAvLyBYTUxUViBDaGFubmVsDQogICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAvL3ZhciB2YWx1ZSA9IHN0ci5zdWJzdHJpbmcoMSwgNCk7DQogICAgICAgICAgICAgICAgICAgIHZhciB2YWx1ZSA9IGRhdGFba2V5XVsieC1tYXBwaW5nIl07DQogICAgICAgICAgICAgICAgICAgIGlmICh2YWx1ZS5sZW5ndGggPiAyMCkgew0KICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSBkYXRhW2tleV1bIngtbWFwcGluZyJdLnN1YnN0cmluZygwLCAyMCkgKyAiLi4uIjsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gdmFsdWU7DQogICAgICAgICAgICAgICAgICAgIHZhciB0ZCA9IGNlbGwuY3JlYXRlQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICB0ZC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJtYXBwaW5nIiwgdGhpcyknKTsNCiAgICAgICAgICAgICAgICAgICAgdGQuaWQgPSBrZXk7DQogICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKHRkKTsNCiAgICAgICAgICAgICAgICAgICAgLy8gVGltZVNoaWZ0DQogICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJ4LXRpbWVzaGlmdCJdOw0KICAgICAgICAgICAgICAgICAgICB2YXIgdGQgPSBjZWxsLmNyZWF0ZUNlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgdGQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgibWFwcGluZyIsIHRoaXMpJyk7DQogICAgICAgICAgICAgICAgICAgIHRkLmlkID0ga2V5Ow0KICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZCh0ZCk7DQogICAgICAgICAgICAgICAgICAgIHJvd3MucHVzaCh0cik7DQogICAgICAgICAgICAgICAgfSk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJzZXR0aW5ncyI6DQogICAgICAgICAgICAgICAgYWxlcnQoKTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICAgICAgY29uc29sZS5sb2coIlRhYmxlIGNvbnRlbnQgKG1lbnVLZXkpOiIsIG1lbnVLZXkpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICB9DQogICAgICAgIHJldHVybiByb3dzOw0KICAgIH0NCn0NCmNsYXNzIENlbGwgew0KICAgIGNyZWF0ZUNlbGwoKSB7DQogICAgICAgIGxldCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgIGlmICh0aGlzLmNoaWxkID09IHRydWUpIHsNCiAgICAgICAgICAgIHZhciBlbGVtZW50Ow0KICAgICAgICAgICAgc3dpdGNoICh0aGlzLmNoaWxkVHlwZSkgew0KICAgICAgICAgICAgICAgIGNhc2UgIlAiOg0KICAgICAgICAgICAgICAgICAgICBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCh0aGlzLmNoaWxkVHlwZSk7DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQuaW5uZXJIVE1MID0gdGhpcy52YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC5jbGFzc05hbWUgPSB0aGlzLmNsYXNzTmFtZTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAiSU5QVVQiOg0KICAgICAgICAgICAgICAgICAgICBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCh0aGlzLmNoaWxkVHlwZSk7DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQudmFsdWUgPSB0aGlzLnZhbHVlOw0KICAgICAgICAgICAgICAgICAgICBlbGVtZW50LnR5cGUgPSAidGV4dCI7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgIklOUFVUQ0hBTk5FTCI6DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJJTlBVVCIpOw0KICAgICAgICAgICAgICAgICAgICBlbGVtZW50LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2c2NyaXB0OiBjaGFuZ2VDaGFubmVsTnVtYmVyKHRoaXMpIik7DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQudmFsdWUgPSB0aGlzLnZhbHVlOw0KICAgICAgICAgICAgICAgICAgICBlbGVtZW50LnR5cGUgPSAidGV4dCI7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgIkJVTEsiOg0KICAgICAgICAgICAgICAgICAgICBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiSU5QVVQiKTsNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC5jaGVja2VkID0gdGhpcy52YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC50eXBlID0gImNoZWNrYm94IjsNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC5jbGFzc05hbWUgPSAiYnVsayBoaWRlQnVsayI7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgIkJVTEtfSEVBRCI6DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJJTlBVVCIpOw0KICAgICAgICAgICAgICAgICAgICBlbGVtZW50LmNoZWNrZWQgPSB0aGlzLnZhbHVlOw0KICAgICAgICAgICAgICAgICAgICBlbGVtZW50LnR5cGUgPSAiY2hlY2tib3giOw0KICAgICAgICAgICAgICAgICAgICBlbGVtZW50LmNsYXNzTmFtZSA9ICJidWxrIGhpZGVCdWxrIjsNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAiamF2YXNjcmlwdDogc2VsZWN0QWxsQ2hhbm5lbHMoKSIpOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBjYXNlICJJTUciOg0KICAgICAgICAgICAgICAgICAgICBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCh0aGlzLmNoaWxkVHlwZSk7DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQuc2V0QXR0cmlidXRlKCJzcmMiLCB0aGlzLmltYWdlVVJMKTsNCiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuaW1hZ2VVUkwgIT0gIiIpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGVsZW1lbnQuc2V0QXR0cmlidXRlKCJvbmVycm9yIiwgImphdmFzY3JpcHQ6IHRoaXMub25lcnJvcj1udWxsO3RoaXMuc3JjPScnIik7DQogICAgICAgICAgICAgICAgICAgICAgICAvL29uZXJyb3I9InRoaXMub25lcnJvcj1udWxsO3RoaXMuc3JjPSdtaXNzaW5nLmdpZic7Ig0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9DQogICAgICAgICAgICB0ZC5hcHBlbmRDaGlsZChlbGVtZW50KTsNCiAgICAgICAgfQ0KICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgIHRkLmlubmVySFRNTCA9IHRoaXMudmFsdWU7DQogICAgICAgIH0NCiAgICAgICAgaWYgKHRoaXMub25jbGljayA9PSB0cnVlKSB7DQogICAgICAgICAgICB0ZC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCB0aGlzLm9uY2xpY2tGdW5jdGlvbik7DQogICAgICAgICAgICB0ZC5jbGFzc05hbWUgPSAicG9pbnRlciI7DQogICAgICAgIH0NCiAgICAgICAgaWYgKHRoaXMudGRDbGFzc05hbWUgIT0gdW5kZWZpbmVkKSB7DQogICAgICAgICAgICB0ZC5jbGFzc05hbWUgPSB0aGlzLnRkQ2xhc3NOYW1lOw0KICAgICAgICB9DQogICAgICAgIHJldHVybiB0ZDsNCiAgICB9DQp9DQpjbGFzcyBTaG93Q29udGVudCBleHRlbmRzIENvbnRlbnQgew0KICAgIGNvbnN0cnVjdG9yKG1lbnVJRCkgew0KICAgICAgICBzdXBlcigpOw0KICAgICAgICB0aGlzLm1lbnVJRCA9IG1lbnVJRDsNCiAgICB9DQogICAgY3JlYXRlSW5wdXQodHlwZSwgbmFtZSwgdmFsdWUpIHsNCiAgICAgICAgbGV0IGlucHV0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiSU5QVVQiKTsNCiAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJ0eXBlIiwgdHlwZSk7DQogICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgibmFtZSIsIG5hbWUpOw0KICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInZhbHVlIiwgdmFsdWUpOw0KICAgICAgICByZXR1cm4gaW5wdXQ7DQogICAgfQ0KICAgIHNob3coKSB7DQogICAgICAgIENPTFVNTl9UT19TT1JUID0gLTE7DQogICAgICAgIC8vIERlbGV0ZSBvbGQgY29udGVudA0KICAgICAgICBsZXQgZG9jID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQodGhpcy5Eb2N1bWVudElEKTsNCiAgICAgICAgZG9jLmlubmVySFRNTCA9ICIiOw0KICAgICAgICBzaG93UHJldmlldyhmYWxzZSk7DQogICAgICAgIC8vIEhlYWRsaW5lDQogICAgICAgIGxldCBoZWFkbGluZSA9IG1lbnVJdGVtc1t0aGlzLm1lbnVJRF0uaGVhZGxpbmU7DQogICAgICAgIGxldCBtZW51S2V5ID0gbWVudUl0ZW1zW3RoaXMubWVudUlEXS5tZW51S2V5Ow0KICAgICAgICBsZXQgaCA9IHRoaXMuY3JlYXRlSGVhZGxpbmUoaGVhZGxpbmUpOw0KICAgICAgICBkb2MuYXBwZW5kQ2hpbGQoaCk7DQogICAgICAgIGxldCBociA9IHRoaXMuY3JlYXRlSFIoKTsNCiAgICAgICAgZG9jLmFwcGVuZENoaWxkKGhyKTsNCiAgICAgICAgLy8gSW50ZXJhY3Rpb24NCiAgICAgICAgbGV0IGRpdiA9IHRoaXMuY3JlYXRlSW50ZXJhY3Rpb24oKTsNCiAgICAgICAgZG9jLmFwcGVuZENoaWxkKGRpdik7DQogICAgICAgIGxldCBpbnRlcmFjdGlvbiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHRoaXMuaW50ZXJhY3Rpb25JRCk7DQogICAgICAgIHN3aXRjaCAobWVudUtleSkgew0KICAgICAgICAgICAgY2FzZSAicGxheWxpc3QiOg0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IHRoaXMuY3JlYXRlSW5wdXQoImJ1dHRvbiIsIG1lbnVLZXksICJ7ey5idXR0b24ubmV3fX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoImlkIiwgIi0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJwbGF5bGlzdCIpJyk7DQogICAgICAgICAgICAgICAgaW50ZXJhY3Rpb24uYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiZmlsdGVyIjoNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSB0aGlzLmNyZWF0ZUlucHV0KCJidXR0b24iLCBtZW51S2V5LCAie3suYnV0dG9uLm5ld319Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJpZCIsIC0xKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJmaWx0ZXIiLCB0aGlzKScpOw0KICAgICAgICAgICAgICAgIGludGVyYWN0aW9uLmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInhtbHR2IjoNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSB0aGlzLmNyZWF0ZUlucHV0KCJidXR0b24iLCBtZW51S2V5LCAie3suYnV0dG9uLm5ld319Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJpZCIsICJ4bWx0diIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoInhtbHR2IiknKTsNCiAgICAgICAgICAgICAgICBpbnRlcmFjdGlvbi5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ1c2VycyI6DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gdGhpcy5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgbWVudUtleSwgInt7LmJ1dHRvbi5uZXd9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgiaWQiLCAidXNlcnMiKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJ1c2VycyIpJyk7DQogICAgICAgICAgICAgICAgaW50ZXJhY3Rpb24uYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAibWFwcGluZyI6DQogICAgICAgICAgICAgICAgc2hvd0VsZW1lbnQoImxvYWRpbmciLCB0cnVlKTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSB0aGlzLmNyZWF0ZUlucHV0KCJidXR0b24iLCBtZW51S2V5LCAie3suYnV0dG9uLnNhdmV9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBzYXZlUG9wdXBEYXRhKCJtYXBwaW5nIiwgIiIsICIiKScpOw0KICAgICAgICAgICAgICAgIGludGVyYWN0aW9uLmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSB0aGlzLmNyZWF0ZUlucHV0KCJidXR0b24iLCBtZW51S2V5LCAie3suYnV0dG9uLmJ1bGtFZGl0fX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogYnVsa0VkaXQoKScpOw0KICAgICAgICAgICAgICAgIGludGVyYWN0aW9uLmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSB0aGlzLmNyZWF0ZUlucHV0KCJzZWFyY2giLCAic2VhcmNoIiwgIiIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgiaWQiLCAic2VhcmNoTWFwcGluZyIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3suYnV0dG9uLnNlYXJjaH19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuY2xhc3NOYW1lID0gInNlYXJjaCI7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICdqYXZhc2NyaXB0OiBzZWFyY2hJbk1hcHBpbmcoKScpOw0KICAgICAgICAgICAgICAgIGludGVyYWN0aW9uLmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInNldHRpbmdzIjoNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSB0aGlzLmNyZWF0ZUlucHV0KCJidXR0b24iLCBtZW51S2V5LCAie3suYnV0dG9uLnNhdmV9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBzYXZlU2V0dGluZ3MoKTsnKTsNCiAgICAgICAgICAgICAgICBpbnRlcmFjdGlvbi5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gdGhpcy5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgbWVudUtleSwgInt7LmJ1dHRvbi5iYWNrdXB9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBiYWNrdXAoKTsnKTsNCiAgICAgICAgICAgICAgICBpbnRlcmFjdGlvbi5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gdGhpcy5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgbWVudUtleSwgInt7LmJ1dHRvbi5yZXN0b3JlfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogcmVzdG9yZSgpOycpOw0KICAgICAgICAgICAgICAgIGludGVyYWN0aW9uLmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICB2YXIgd3JhcHBlciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIkRJViIpOw0KICAgICAgICAgICAgICAgIHdyYXBwZXIuc2V0QXR0cmlidXRlKCJpZCIsICJib3gtd3JhcHBlciIpOw0KICAgICAgICAgICAgICAgIGRvYy5hcHBlbmRDaGlsZCh3cmFwcGVyKTsNCiAgICAgICAgICAgICAgICB0aGlzLkRpdklEID0gImNvbnRlbnRfc2V0dGluZ3MiOw0KICAgICAgICAgICAgICAgIHZhciBzZXR0aW5ncyA9IHRoaXMuY3JlYXRlRElWKCk7DQogICAgICAgICAgICAgICAgd3JhcHBlci5hcHBlbmRDaGlsZChzZXR0aW5ncyk7DQogICAgICAgICAgICAgICAgc2hvd1NldHRpbmdzKCk7DQogICAgICAgICAgICAgICAgcmV0dXJuOw0KICAgICAgICAgICAgY2FzZSAibG9nIjoNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSB0aGlzLmNyZWF0ZUlucHV0KCJidXR0b24iLCBtZW51S2V5LCAie3suYnV0dG9uLnJlc2V0TG9nc319Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IHJlc2V0TG9ncygpOycpOw0KICAgICAgICAgICAgICAgIGludGVyYWN0aW9uLmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICB2YXIgd3JhcHBlciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIkRJViIpOw0KICAgICAgICAgICAgICAgIHdyYXBwZXIuc2V0QXR0cmlidXRlKCJpZCIsICJib3gtd3JhcHBlciIpOw0KICAgICAgICAgICAgICAgIGRvYy5hcHBlbmRDaGlsZCh3cmFwcGVyKTsNCiAgICAgICAgICAgICAgICB0aGlzLkRpdklEID0gImNvbnRlbnRfbG9nIjsNCiAgICAgICAgICAgICAgICB2YXIgbG9ncyA9IHRoaXMuY3JlYXRlRElWKCk7DQogICAgICAgICAgICAgICAgd3JhcHBlci5hcHBlbmRDaGlsZChsb2dzKTsNCiAgICAgICAgICAgICAgICBzaG93TG9ncyh0cnVlKTsNCiAgICAgICAgICAgICAgICByZXR1cm47DQogICAgICAgICAgICBjYXNlICJsb2dvdXQiOg0KICAgICAgICAgICAgICAgIGxvY2F0aW9uLnJlbG9hZCgpOw0KICAgICAgICAgICAgICAgIGRvY3VtZW50LmNvb2tpZSA9ICJUb2tlbj0gOyBleHBpcmVzID0gVGh1LCAwMSBKYW4gMTk3MCAwMDowMDowMCBHTVQiOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZygiU2hvdyBjb250ZW50IChtZW51S2V5KToiLCBtZW51S2V5KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgfQ0KICAgICAgICAvLyBDcmVhdGUgdGFibGUgKGlmIG5lZWRlZCkNCiAgICAgICAgdmFyIHRhYmxlSGVhZGVyID0gbWVudUl0ZW1zW3RoaXMubWVudUlEXS50YWJsZUhlYWRlcjsNCiAgICAgICAgaWYgKHRhYmxlSGVhZGVyLmxlbmd0aCA+IDApIHsNCiAgICAgICAgICAgIHZhciB3cmFwcGVyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiRElWIik7DQogICAgICAgICAgICBkb2MuYXBwZW5kQ2hpbGQod3JhcHBlcik7DQogICAgICAgICAgICB3cmFwcGVyLnNldEF0dHJpYnV0ZSgiaWQiLCAiYm94LXdyYXBwZXIiKTsNCiAgICAgICAgICAgIHZhciB0YWJsZSA9IHRoaXMuY3JlYXRlVEFCTEUoKTsNCiAgICAgICAgICAgIHdyYXBwZXIuYXBwZW5kQ2hpbGQodGFibGUpOw0KICAgICAgICAgICAgdmFyIGhlYWRlciA9IHRoaXMuY3JlYXRlVGFibGVSb3coKTsNCiAgICAgICAgICAgIHRhYmxlLmFwcGVuZENoaWxkKGhlYWRlcik7DQogICAgICAgICAgICAvLyBUYWJsZSBoZWFkZXINCiAgICAgICAgICAgIHRhYmxlSGVhZGVyLmZvckVhY2goZWxlbWVudCA9PiB7DQogICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBlbGVtZW50Ow0KICAgICAgICAgICAgICAgIGlmIChlbGVtZW50ID09ICJCVUxLIikgew0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJCVUxLX0hFQUQiOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZmFsc2U7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIGlmIChtZW51S2V5ID09ICJtYXBwaW5nIikgew0KICAgICAgICAgICAgICAgICAgICBpZiAoZWxlbWVudCA9PSAie3subWFwcGluZy50YWJsZS5jaE5vfX0iKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLm9uY2xpY2sgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5vbmNsaWNrRnVuY3Rpb24gPSAiamF2YXNjcmlwdDogc29ydFRhYmxlKDEpOyI7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnRkQ2xhc3NOYW1lID0gInNvcnRUaGlzIjsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBpZiAoZWxlbWVudCA9PSAie3subWFwcGluZy50YWJsZS5jaGFubmVsTmFtZX19Iikgew0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5vbmNsaWNrID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwub25jbGlja0Z1bmN0aW9uID0gImphdmFzY3JpcHQ6IHNvcnRUYWJsZSgzKTsiOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIGlmIChlbGVtZW50ID09ICJ7ey5tYXBwaW5nLnRhYmxlLnBsYXlsaXN0fX0iKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLm9uY2xpY2sgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5vbmNsaWNrRnVuY3Rpb24gPSAiamF2YXNjcmlwdDogc29ydFRhYmxlKDQpOyI7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgaWYgKGVsZW1lbnQgPT0gInt7Lm1hcHBpbmcudGFibGUuZ3JvdXBUaXRsZX19Iikgew0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5vbmNsaWNrID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwub25jbGlja0Z1bmN0aW9uID0gImphdmFzY3JpcHQ6IHNvcnRUYWJsZSg1KTsiOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIGlmIChlbGVtZW50ID09ICJ7ey5tYXBwaW5nLnRhYmxlLnRpbWVzaGlmdH19Iikgew0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5vbmNsaWNrID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwub25jbGlja0Z1bmN0aW9uID0gImphdmFzY3JpcHQ6IHNvcnRUYWJsZSg4KTsiOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIGlmIChtZW51S2V5ID09ICJmaWx0ZXIiKSB7DQogICAgICAgICAgICAgICAgICAgIGlmIChlbGVtZW50ID09ICJ7ey5maWx0ZXIudGFibGUuc3RhcnRpbmdDaGFubmVsfX0iKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLm9uY2xpY2sgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5vbmNsaWNrRnVuY3Rpb24gPSAiamF2YXNjcmlwdDogc29ydFRhYmxlKDApOyI7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnRkQ2xhc3NOYW1lID0gInNvcnRUaGlzIjsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBpZiAoZWxlbWVudCA9PSAie3suZmlsdGVyLnRhYmxlLm5hbWV9fSIpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwub25jbGljayA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLm9uY2xpY2tGdW5jdGlvbiA9ICJqYXZhc2NyaXB0OiBzb3J0VGFibGUoMSk7IjsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBpZiAoZWxlbWVudCA9PSAie3suZmlsdGVyLnRhYmxlLnR5cGV9fSIpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwub25jbGljayA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLm9uY2xpY2tGdW5jdGlvbiA9ICJqYXZhc2NyaXB0OiBzb3J0VGFibGUoMik7IjsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBpZiAoZWxlbWVudCA9PSAie3suZmlsdGVyLnRhYmxlLmZpbHRlcn19Iikgew0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5vbmNsaWNrID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwub25jbGlja0Z1bmN0aW9uID0gImphdmFzY3JpcHQ6IHNvcnRUYWJsZSgzKTsiOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIGhlYWRlci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICB9KTsNCiAgICAgICAgICAgIHRhYmxlLmFwcGVuZENoaWxkKGhlYWRlcik7DQogICAgICAgICAgICAvLyBDb250ZW50IG9mIHRoZSB0YWJsZQ0KICAgICAgICAgICAgdmFyIHJvd3MgPSB0aGlzLmNyZWF0ZVRhYmxlQ29udGVudChtZW51S2V5KTsNCiAgICAgICAgICAgIHJvd3MuZm9yRWFjaCh0ciA9PiB7DQogICAgICAgICAgICAgICAgdGFibGUuYXBwZW5kQ2hpbGQodHIpOw0KICAgICAgICAgICAgfSk7DQogICAgICAgIH0NCiAgICAgICAgc3dpdGNoIChtZW51S2V5KSB7DQogICAgICAgICAgICBjYXNlICJtYXBwaW5nIjoNCiAgICAgICAgICAgICAgICBzb3J0VGFibGUoMSk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJmaWx0ZXIiOg0KICAgICAgICAgICAgICAgIHNob3dQcmV2aWV3KHRydWUpOw0KICAgICAgICAgICAgICAgIHNvcnRUYWJsZSgwKTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICAgICAgQ09MVU1OX1RPX1NPUlQgPSAtMTsNCiAgICAgICAgICAgICAgICBzb3J0VGFibGUoMCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIH0NCiAgICAgICAgc2hvd0VsZW1lbnQoImxvYWRpbmciLCBmYWxzZSk7DQogICAgfQ0KfQ0KZnVuY3Rpb24gUGFnZVJlYWR5KCkgew0KICAgIGxldCBzZXJ2ZXIgPSBuZXcgU2VydmVyKCJnZXRTZXJ2ZXJDb25maWciKTsNCiAgICBzZXJ2ZXIucmVxdWVzdCh7fSk7DQogICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoInJlc2l6ZSIsIGZ1bmN0aW9uICgpIHsNCiAgICAgICAgY2FsY3VsYXRlV3JhcHBlckhlaWdodCgpOw0KICAgIH0sIHRydWUpOw0KICAgIHNldEludGVydmFsKGZ1bmN0aW9uICgpIHsNCiAgICAgICAgdXBkYXRlTG9nKCk7DQogICAgfSwgMTAwMDApOw0KICAgIHJldHVybjsNCn0NCmZ1bmN0aW9uIGNyZWF0ZUxheW91dCgpIHsNCiAgICAvLyBDbGllbnQgSW5mbw0KICAgIGxldCBvYmogPSBTRVJWRVJbImNsaWVudEluZm8iXTsNCiAgICBsZXQga2V5cyA9IGdldE93bk9ialByb3BzKG9iaik7DQogICAgZm9yICh2YXIgaSA9IDA7IGkgPCBrZXlzLmxlbmd0aDsgaSsrKSB7DQogICAgICAgIGlmIChkb2N1bWVudC5nZXRFbGVtZW50QnlJZChrZXlzW2ldKSkgew0KICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoa2V5c1tpXSkuaW5uZXJIVE1MID0gb2JqW2tleXNbaV1dOw0KICAgICAgICB9DQogICAgfQ0KICAgIGlmICghZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm1haW4tbWVudSIpKSB7DQogICAgICAgIHJldHVybjsNCiAgICB9DQogICAgLy8gQ3JlYXRlIG1lbnUNCiAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibWFpbi1tZW51IikuaW5uZXJIVE1MID0gIiI7DQogICAgZm9yIChsZXQgaSA9IDA7IGkgPCBtZW51SXRlbXMubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgbWVudUl0ZW1zW2ldLmlkID0gaTsNCiAgICAgICAgc3dpdGNoIChtZW51SXRlbXNbaV1bIm1lbnVLZXkiXSkgew0KICAgICAgICAgICAgY2FzZSAidXNlcnMiOg0KICAgICAgICAgICAgY2FzZSAibG9nb3V0IjoNCiAgICAgICAgICAgICAgICBpZiAoU0VSVkVSWyJzZXR0aW5ncyJdWyJhdXRoZW50aWNhdGlvbi53ZWIiXSA9PSB0cnVlKSB7DQogICAgICAgICAgICAgICAgICAgIG1lbnVJdGVtc1tpXS5jcmVhdGVJdGVtKCk7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAibWFwcGluZyI6DQogICAgICAgICAgICBjYXNlICJ4bWx0diI6DQogICAgICAgICAgICAgICAgaWYgKFNFUlZFUlsiY2xpZW50SW5mbyJdWyJlcGdTb3VyY2UiXSA9PSAiWEVQRyIpIHsNCiAgICAgICAgICAgICAgICAgICAgbWVudUl0ZW1zW2ldLmNyZWF0ZUl0ZW0oKTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBkZWZhdWx0Og0KICAgICAgICAgICAgICAgIG1lbnVJdGVtc1tpXS5jcmVhdGVJdGVtKCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIH0NCiAgICB9DQogICAgcmV0dXJuOw0KfQ0KZnVuY3Rpb24gb3BlblRoaXNNZW51KGVsZW1lbnQpIHsNCiAgICBsZXQgaWQgPSBlbGVtZW50LmlkOw0KICAgIGxldCBjb250ZW50ID0gbmV3IFNob3dDb250ZW50KGlkKTsNCiAgICBjb250ZW50LnNob3coKTsNCiAgICBjYWxjdWxhdGVXcmFwcGVySGVpZ2h0KCk7DQogICAgcmV0dXJuOw0KfQ0KY2xhc3MgUG9wdXBXaW5kb3cgew0KICAgIGNvbnN0cnVjdG9yKCkgew0KICAgICAgICB0aGlzLkRvY3VtZW50SUQgPSAicG9wdXAtY3VzdG9tIjsNCiAgICAgICAgdGhpcy5JbnRlcmFjdGlvbklEID0gImludGVyYWN0aW9uIjsNCiAgICAgICAgdGhpcy5kb2MgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCh0aGlzLkRvY3VtZW50SUQpOw0KICAgIH0NCiAgICBjcmVhdGVUaXRsZSh0aXRsZSkgew0KICAgICAgICBsZXQgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICB0ZC5jbGFzc05hbWUgPSAibGVmdCI7DQogICAgICAgIHRkLmlubmVySFRNTCA9IHRpdGxlICsgIjoiOw0KICAgICAgICByZXR1cm4gdGQ7DQogICAgfQ0KICAgIGNyZWF0ZUNvbnRlbnQoZWxlbWVudCkgew0KICAgICAgICBsZXQgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICB0ZC5hcHBlbmRDaGlsZChlbGVtZW50KTsNCiAgICAgICAgcmV0dXJuIHRkOw0KICAgIH0NCiAgICBjcmVhdGVJbnRlcmFjdGlvbigpIHsNCiAgICAgICAgbGV0IGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOw0KICAgICAgICBkaXYuc2V0QXR0cmlidXRlKCJpZCIsICJwb3B1cC1pbnRlcmFjdGlvbiIpOw0KICAgICAgICBkaXYuY2xhc3NOYW1lID0gImludGVyYWN0aW9uIjsNCiAgICAgICAgdGhpcy5kb2MuYXBwZW5kQ2hpbGQoZGl2KTsNCiAgICB9DQp9DQpjbGFzcyBQb3B1cENvbnRlbnQgZXh0ZW5kcyBQb3B1cFdpbmRvdyB7DQogICAgY29uc3RydWN0b3IoKSB7DQogICAgICAgIHN1cGVyKC4uLmFyZ3VtZW50cyk7DQogICAgICAgIHRoaXMudGFibGUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJUQUJMRSIpOw0KICAgIH0NCiAgICBjcmVhdGVIZWFkbGluZShoZWFkbGluZSkgew0KICAgICAgICB0aGlzLmRvYy5pbm5lckhUTUwgPSAiIjsNCiAgICAgICAgdmFyIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJIMyIpOw0KICAgICAgICBlbGVtZW50LmlubmVySFRNTCA9IGhlYWRsaW5lLnRvVXBwZXJDYXNlKCk7DQogICAgICAgIHRoaXMuZG9jLmFwcGVuZENoaWxkKGVsZW1lbnQpOw0KICAgICAgICAvLyBDcmVhdGUgdGFibGUNCiAgICAgICAgdGhpcy50YWJsZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlRBQkxFIik7DQogICAgICAgIHRoaXMuZG9jLmFwcGVuZENoaWxkKHRoaXMudGFibGUpOw0KICAgIH0NCiAgICBhcHBlbmRSb3codGl0bGUsIGVsZW1lbnQpIHsNCiAgICAgICAgbGV0IHRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVFIiKTsNCiAgICAgICAgLy8gVGl0bGUNCiAgICAgICAgaWYgKHRpdGxlLmxlbmd0aCAhPSAwKSB7DQogICAgICAgICAgICB0ci5hcHBlbmRDaGlsZCh0aGlzLmNyZWF0ZVRpdGxlKHRpdGxlKSk7DQogICAgICAgIH0NCiAgICAgICAgLy8gQ29udGVudA0KICAgICAgICB0ci5hcHBlbmRDaGlsZCh0aGlzLmNyZWF0ZUNvbnRlbnQoZWxlbWVudCkpOw0KICAgICAgICB0aGlzLnRhYmxlLmFwcGVuZENoaWxkKHRyKTsNCiAgICB9DQogICAgY3JlYXRlSW5wdXQodHlwZSwgbmFtZSwgdmFsdWUpIHsNCiAgICAgICAgbGV0IGlucHV0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiSU5QVVQiKTsNCiAgICAgICAgaWYgKHZhbHVlID09IHVuZGVmaW5lZCkgew0KICAgICAgICAgICAgdmFsdWUgPSAiIjsNCiAgICAgICAgfQ0KICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInR5cGUiLCB0eXBlKTsNCiAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJuYW1lIiwgbmFtZSk7DQogICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgidmFsdWUiLCB2YWx1ZSk7DQogICAgICAgIHJldHVybiBpbnB1dDsNCiAgICB9DQogICAgY3JlYXRlQ2hlY2tib3gobmFtZSkgew0KICAgICAgICBsZXQgaW5wdXQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJJTlBVVCIpOw0KICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInR5cGUiLCAiY2hlY2tib3giKTsNCiAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJuYW1lIiwgbmFtZSk7DQogICAgICAgIHJldHVybiBpbnB1dDsNCiAgICB9DQogICAgLy8gQ3JlYXRlcyBhIHNlbGVjdGlvbiBvZiBtdWx0aXBsZSBvcHRpb25zIHZhbHVlcyB3aXRoIHRleHQgZGVzY3JpcHRpb25zDQogICAgY3JlYXRlU2VsZWN0KHRleHQsIHZhbHVlcywgc2V0LCBkYktleSkgew0KICAgICAgICBsZXQgc2VsZWN0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiU0VMRUNUIik7DQogICAgICAgIHNlbGVjdC5zZXRBdHRyaWJ1dGUoIm5hbWUiLCBkYktleSk7DQogICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGV4dC5sZW5ndGg7IGkrKykgew0KICAgICAgICAgICAgbGV0IG9wdGlvbiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIk9QVElPTiIpOw0KICAgICAgICAgICAgb3B0aW9uLnNldEF0dHJpYnV0ZSgidmFsdWUiLCB2YWx1ZXNbaV0pOw0KICAgICAgICAgICAgb3B0aW9uLmlubmVyVGV4dCA9IHRleHRbaV07DQogICAgICAgICAgICBzZWxlY3QuYXBwZW5kQ2hpbGQob3B0aW9uKTsNCiAgICAgICAgfQ0KICAgICAgICBpZiAoc2V0ICE9ICIiKSB7DQogICAgICAgICAgICBzZWxlY3QudmFsdWUgPSBzZXQ7DQogICAgICAgIH0NCiAgICAgICAgaWYgKHNldCA9PSB1bmRlZmluZWQpIHsNCiAgICAgICAgICAgIHNlbGVjdC52YWx1ZSA9IHZhbHVlc1swXTsNCiAgICAgICAgfQ0KICAgICAgICByZXR1cm4gc2VsZWN0Ow0KICAgIH0NCiAgICBzZWxlY3RPcHRpb24oc2VsZWN0LCB2YWx1ZSkgew0KICAgICAgICAvL3NlbGVjdC5zZWxlY3RlZE9wdGlvbnMgPSB2YWx1ZQ0KICAgICAgICBsZXQgcyA9IHNlbGVjdDsNCiAgICAgICAgcy5vcHRpb25zW3Muc2VsZWN0ZWRJbmRleF0udmFsdWUgPSB2YWx1ZTsNCiAgICAgICAgcmV0dXJuIHNlbGVjdDsNCiAgICB9DQogICAgZGVzY3JpcHRpb24odmFsdWUpIHsNCiAgICAgICAgbGV0IHRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVFIiKTsNCiAgICAgICAgbGV0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgbGV0IHNwYW4gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJQUkUiKTsNCiAgICAgICAgc3Bhbi5pbm5lckhUTUwgPSB2YWx1ZTsNCiAgICAgICAgdHIuYXBwZW5kQ2hpbGQodGQpOw0KICAgICAgICB0ci5hcHBlbmRDaGlsZCh0aGlzLmNyZWF0ZUNvbnRlbnQoc3BhbikpOw0KICAgICAgICB0aGlzLnRhYmxlLmFwcGVuZENoaWxkKHRyKTsNCiAgICB9DQogICAgLy8gSW50ZXJhY3Rpb24NCiAgICBhZGRJbnRlcmFjdGlvbihlbGVtZW50KSB7DQogICAgICAgIGxldCBpbnRlcmFjdGlvbiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJwb3B1cC1pbnRlcmFjdGlvbiIpOw0KICAgICAgICBpbnRlcmFjdGlvbi5hcHBlbmRDaGlsZChlbGVtZW50KTsNCiAgICB9DQp9DQpmdW5jdGlvbiBvcGVuUG9wVXAoZGF0YVR5cGUsIGVsZW1lbnQpIHsNCiAgICBsZXQgZGF0YSA9IHt9Ow0KICAgIGxldCBpZDsNCiAgICBzd2l0Y2ggKGVsZW1lbnQpIHsNCiAgICAgICAgY2FzZSB1bmRlZmluZWQ6DQogICAgICAgICAgICBzd2l0Y2ggKGRhdGFUeXBlKSB7DQogICAgICAgICAgICAgICAgY2FzZSAiZ3JvdXAtdGl0bGUiOg0KICAgICAgICAgICAgICAgICAgICBpZiAoaWQgPT0gdW5kZWZpbmVkKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBpZCA9IC0xOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIGRhdGEgPSBnZXRMb2NhbERhdGEoImZpbHRlciIsIGlkKTsNCiAgICAgICAgICAgICAgICAgICAgZGF0YVsidHlwZSJdID0gImdyb3VwLXRpdGxlIjsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAiY3VzdG9tLWZpbHRlciI6DQogICAgICAgICAgICAgICAgICAgIGlmIChpZCA9PSB1bmRlZmluZWQpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGlkID0gLTE7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgZGF0YSA9IGdldExvY2FsRGF0YSgiZmlsdGVyIiwgaWQpOw0KICAgICAgICAgICAgICAgICAgICBkYXRhWyJ0eXBlIl0gPSAiY3VzdG9tLWZpbHRlciI7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICAgICAgICAgIGRhdGFbImlkLnByb3ZpZGVyIl0gPSAiLSI7DQogICAgICAgICAgICAgICAgICAgIGRhdGFbInR5cGUiXSA9IGRhdGFUeXBlOw0KICAgICAgICAgICAgICAgICAgICBpZCA9ICItIjsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgIGlkID0gZWxlbWVudC5pZDsNCiAgICAgICAgICAgIGRhdGEgPSBnZXRMb2NhbERhdGEoZGF0YVR5cGUsIGlkKTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgIH0NCiAgICBsZXQgY29udGVudCA9IG5ldyBQb3B1cENvbnRlbnQoKTsNCiAgICBzd2l0Y2ggKGRhdGFUeXBlKSB7DQogICAgICAgIGNhc2UgInBsYXlsaXN0IjoNCiAgICAgICAgICAgIGNvbnRlbnQuY3JlYXRlSGVhZGxpbmUoInt7LnBsYXlsaXN0LnBsYXlsaXN0VHlwZS50aXRsZX19Iik7DQogICAgICAgICAgICAvLyBUeXBlDQogICAgICAgICAgICB2YXIgdGV4dCA9IFsiTTNVIiwgIkhESG9tZVJ1biJdOw0KICAgICAgICAgICAgdmFyIHZhbHVlcyA9IFsiamF2YXNjcmlwdDogb3BlblBvcFVwKCdtM3UnKSIsICJqYXZhc2NyaXB0OiBvcGVuUG9wVXAoJ2hkaHInKSJdOw0KICAgICAgICAgICAgdmFyIHNlbGVjdCA9IGNvbnRlbnQuY3JlYXRlU2VsZWN0KHRleHQsIHZhbHVlcywgIiIsICJ0eXBlIik7DQogICAgICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJpZCIsICJ0eXBlIik7DQogICAgICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICdqYXZhc2NyaXB0OiBjaGFuZ2VCdXR0b25BY3Rpb24odGhpcywgIm5leHQiLCAib25jbGljayIpJyk7IC8vIGNoYW5nZUJ1dHRvbkFjdGlvbg0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnBsYXlsaXN0LnR5cGUudGl0bGV9fSIsIHNlbGVjdCk7DQogICAgICAgICAgICAvLyBJbnRlcmFjdGlvbg0KICAgICAgICAgICAgY29udGVudC5jcmVhdGVJbnRlcmFjdGlvbigpOw0KICAgICAgICAgICAgLy8gQWJvcnQNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJjYW5jZWwiLCAie3suYnV0dG9uLmNhbmNlbH19Iik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogc2hvd0VsZW1lbnQoInBvcHVwIiwgZmFsc2UpOycpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICAvLyBOZXh0DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAibmV4dCIsICJ7ey5idXR0b24ubmV4dH19Iik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJtM3UiKScpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJpZCIsICduZXh0Jyk7DQogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJtM3UiOg0KICAgICAgICAgICAgY29udGVudC5jcmVhdGVIZWFkbGluZShkYXRhVHlwZSk7DQogICAgICAgICAgICAvLyBOYW1lDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAibmFtZSI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3sucGxheWxpc3QubmFtZS5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sucGxheWxpc3QubmFtZS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgLy8gRGVzY3JpcHRpb24NCiAgICAgICAgICAgIHZhciBkYktleSA9ICJkZXNjcmlwdGlvbiI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3sucGxheWxpc3QuZGVzY3JpcHRpb24ucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnBsYXlsaXN0LmRlc2NyaXB0aW9uLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBVUkwNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJmaWxlLnNvdXJjZSI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3sucGxheWxpc3QuZmlsZU0zVS5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sucGxheWxpc3QuZmlsZU0zVS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgLy8gVHVuZXINCiAgICAgICAgICAgIGlmIChTRVJWRVJbInNldHRpbmdzIl1bImJ1ZmZlciJdICE9ICItIikgew0KICAgICAgICAgICAgICAgIHZhciB0ZXh0ID0gW107DQogICAgICAgICAgICAgICAgdmFyIHZhbHVlcyA9IFtdOw0KICAgICAgICAgICAgICAgIGZvciAodmFyIGkgPSAxOyBpIDw9IDEwMDsgaSsrKSB7DQogICAgICAgICAgICAgICAgICAgIHRleHQucHVzaChpLnRvU3RyaW5nKCkpOw0KICAgICAgICAgICAgICAgICAgICB2YWx1ZXMucHVzaChpLnRvU3RyaW5nKCkpOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB2YXIgZGJLZXkgPSAidHVuZXIiOw0KICAgICAgICAgICAgICAgIHZhciBzZWxlY3QgPSBjb250ZW50LmNyZWF0ZVNlbGVjdCh0ZXh0LCB2YWx1ZXMsIGRhdGFbZGJLZXldLCBkYktleSk7DQogICAgICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25mb2N1cyIsICJqYXZhc2NyaXB0OiByZXR1cm47Iik7DQogICAgICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnBsYXlsaXN0LnR1bmVyLnRpdGxlfX0iLCBzZWxlY3QpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgZWxzZSB7DQogICAgICAgICAgICAgICAgdmFyIGRiS2V5ID0gInR1bmVyIjsNCiAgICAgICAgICAgICAgICBpZiAoZGF0YVtkYktleV0gPT0gdW5kZWZpbmVkKSB7DQogICAgICAgICAgICAgICAgICAgIGRhdGFbZGJLZXldID0gMTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJyZWFkb25seSIsICJ0cnVlIik7DQogICAgICAgICAgICAgICAgaW5wdXQuY2xhc3NOYW1lID0gIm5vdEF2YWlsYWJsZSI7DQogICAgICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnBsYXlsaXN0LnR1bmVyLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBjb250ZW50LmRlc2NyaXB0aW9uKCJ7ey5wbGF5bGlzdC50dW5lci5kZXNjcmlwdGlvbn19Iik7DQogICAgICAgICAgICAvLyBJbnRlcmF0aW9uDQogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUludGVyYWN0aW9uKCk7DQogICAgICAgICAgICAvLyBEZWxldGUNCiAgICAgICAgICAgIGlmIChkYXRhWyJpZC5wcm92aWRlciJdICE9ICItIikgew0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJkZWxldGUiLCAie3suYnV0dG9uLmRlbGV0ZX19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuY2xhc3NOYW1lID0gImRlbGV0ZSI7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoIm0zdSIsICInICsgaWQgKyAnIiwgdHJ1ZSwgMCknKTsNCiAgICAgICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJiYWNrIiwgInt7LmJ1dHRvbi5iYWNrfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJwbGF5bGlzdCIpJyk7DQogICAgICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICAvLyBBYm9ydA0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImNhbmNlbCIsICJ7ey5idXR0b24uY2FuY2VsfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBzaG93RWxlbWVudCgicG9wdXAiLCBmYWxzZSk7Jyk7DQogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIC8vIFVwZGF0ZQ0KICAgICAgICAgICAgaWYgKGRhdGFbImlkLnByb3ZpZGVyIl0gIT0gIi0iKSB7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgInVwZGF0ZSIsICJ7ey5idXR0b24udXBkYXRlfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogc2F2ZVBvcHVwRGF0YSgibTN1IiwgIicgKyBpZCArICciLCBmYWxzZSwgMSknKTsNCiAgICAgICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIC8vIFNhdmUNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJzYXZlIiwgInt7LmJ1dHRvbi5zYXZlfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBzYXZlUG9wdXBEYXRhKCJtM3UiLCAiJyArIGlkICsgJyIsIGZhbHNlLCAwKScpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSAiaGRociI6DQogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUhlYWRsaW5lKGRhdGFUeXBlKTsNCiAgICAgICAgICAgIC8vIE5hbWUNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJuYW1lIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5wbGF5bGlzdC5uYW1lLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5wbGF5bGlzdC5uYW1lLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBEZXNjcmlwdGlvbg0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gImRlc2NyaXB0aW9uIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5wbGF5bGlzdC5kZXNjcmlwdGlvbi5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sucGxheWxpc3QuZGVzY3JpcHRpb24ucGxhY2Vob2xkZXJ9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIFVSTA0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gImZpbGUuc291cmNlIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5wbGF5bGlzdC5maWxlSERIUi5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sucGxheWxpc3QuZmlsZUhESFIudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIFR1bmVyDQogICAgICAgICAgICBpZiAoU0VSVkVSWyJzZXR0aW5ncyJdWyJidWZmZXIiXSAhPSAiLSIpIHsNCiAgICAgICAgICAgICAgICB2YXIgdGV4dCA9IFtdOw0KICAgICAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBbXTsNCiAgICAgICAgICAgICAgICBmb3IgKHZhciBpID0gMTsgaSA8PSAxMDA7IGkrKykgew0KICAgICAgICAgICAgICAgICAgICB0ZXh0LnB1c2goaS50b1N0cmluZygpKTsNCiAgICAgICAgICAgICAgICAgICAgdmFsdWVzLnB1c2goaS50b1N0cmluZygpKTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgdmFyIGRiS2V5ID0gInR1bmVyIjsNCiAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCBkYXRhW2RiS2V5XSwgZGJLZXkpOw0KICAgICAgICAgICAgICAgIHNlbGVjdC5zZXRBdHRyaWJ1dGUoIm9uZm9jdXMiLCAiamF2YXNjcmlwdDogcmV0dXJuOyIpOw0KICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5wbGF5bGlzdC50dW5lci50aXRsZX19Iiwgc2VsZWN0KTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgICAgIHZhciBkYktleSA9ICJ0dW5lciI7DQogICAgICAgICAgICAgICAgaWYgKGRhdGFbZGJLZXldID09IHVuZGVmaW5lZCkgew0KICAgICAgICAgICAgICAgICAgICBkYXRhW2RiS2V5XSA9IDE7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicmVhZG9ubHkiLCAidHJ1ZSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LmNsYXNzTmFtZSA9ICJub3RBdmFpbGFibGUiOw0KICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5wbGF5bGlzdC50dW5lci50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgY29udGVudC5kZXNjcmlwdGlvbigie3sucGxheWxpc3QudHVuZXIuZGVzY3JpcHRpb259fSIpOw0KICAgICAgICAgICAgLy8gSW50ZXJhY3Rpb24NCiAgICAgICAgICAgIGNvbnRlbnQuY3JlYXRlSW50ZXJhY3Rpb24oKTsNCiAgICAgICAgICAgIC8vIERlbGV0ZQ0KICAgICAgICAgICAgaWYgKGRhdGFbImlkLnByb3ZpZGVyIl0gIT0gIi0iKSB7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImRlbGV0ZSIsICJ7ey5idXR0b24uZGVsZXRlfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogc2F2ZVBvcHVwRGF0YSgiaGRociIsICInICsgaWQgKyAnIiwgdHJ1ZSwgMCknKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5jbGFzc05hbWUgPSAiZGVsZXRlIjsNCiAgICAgICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJiYWNrIiwgInt7LmJ1dHRvbi5iYWNrfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJwbGF5bGlzdCIpJyk7DQogICAgICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICAvLyBBYm9ydA0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImNhbmNlbCIsICJ7ey5idXR0b24uY2FuY2VsfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBzaG93RWxlbWVudCgicG9wdXAiLCBmYWxzZSk7Jyk7DQogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIC8vIFVwZGF0ZQ0KICAgICAgICAgICAgaWYgKGRhdGFbImlkLnByb3ZpZGVyIl0gIT0gIi0iKSB7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgInVwZGF0ZSIsICJ7ey5idXR0b24udXBkYXRlfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogc2F2ZVBvcHVwRGF0YSgiaGRociIsICInICsgaWQgKyAnIiwgZmFsc2UsIDEpJyk7DQogICAgICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICAvLyBTYXZlDQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAic2F2ZSIsICJ7ey5idXR0b24uc2F2ZX19Iik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogc2F2ZVBvcHVwRGF0YSgiaGRociIsICInICsgaWQgKyAnIiwgZmFsc2UsIDApJyk7DQogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJmaWx0ZXIiOg0KICAgICAgICAgICAgY29udGVudC5jcmVhdGVIZWFkbGluZShkYXRhVHlwZSk7DQogICAgICAgICAgICAvLyBUeXBlDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAidHlwZSI7DQogICAgICAgICAgICB2YXIgdGV4dCA9IFsiTTNVOiAiICsgInt7LmZpbHRlci50eXBlLmdyb3VwVGl0bGV9fSIsICJ4VGVWZTogIiArICJ7ey5maWx0ZXIudHlwZS5jdXN0b21GaWx0ZXJ9fSJdOw0KICAgICAgICAgICAgdmFyIHZhbHVlcyA9IFsiamF2YXNjcmlwdDogb3BlblBvcFVwKCdncm91cC10aXRsZScpIiwgImphdmFzY3JpcHQ6IG9wZW5Qb3BVcCgnY3VzdG9tLWZpbHRlcicpIl07DQogICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCAiamF2YXNjcmlwdDogb3BlblBvcFVwKCdncm91cC10aXRsZScpIiwgZGJLZXkpOw0KICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgiaWQiLCBpZCk7DQogICAgICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICdqYXZhc2NyaXB0OiBjaGFuZ2VCdXR0b25BY3Rpb24odGhpcywgIm5leHQiLCAib25jbGljayIpOycpOyAvLyBjaGFuZ2VCdXR0b25BY3Rpb24NCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5maWx0ZXIudHlwZS50aXRsZX19Iiwgc2VsZWN0KTsNCiAgICAgICAgICAgIC8vIEludGVyYWN0aW9uDQogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUludGVyYWN0aW9uKCk7DQogICAgICAgICAgICAvLyBBYm9ydA0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImNhbmNlbCIsICJ7ey5idXR0b24uY2FuY2VsfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBzaG93RWxlbWVudCgicG9wdXAiLCBmYWxzZSk7Jyk7DQogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIC8vIE5leHQNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJuZXh0IiwgInt7LmJ1dHRvbi5uZXh0fX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoImdyb3VwLXRpdGxlIiknKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgiaWQiLCAnbmV4dCcpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSAiY3VzdG9tLWZpbHRlciI6DQogICAgICAgIGNhc2UgImdyb3VwLXRpdGxlIjoNCiAgICAgICAgICAgIHN3aXRjaCAoZGF0YVR5cGUpIHsNCiAgICAgICAgICAgICAgICBjYXNlICJjdXN0b20tZmlsdGVyIjoNCiAgICAgICAgICAgICAgICAgICAgY29udGVudC5jcmVhdGVIZWFkbGluZSgie3suZmlsdGVyLmN1c3RvbX19IiArICIgRmlsdGVyIik7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgImdyb3VwLXRpdGxlIjoNCiAgICAgICAgICAgICAgICAgICAgY29udGVudC5jcmVhdGVIZWFkbGluZSgie3suZmlsdGVyLmdyb3VwfX0iICsgIiBGaWx0ZXIiKTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICB9DQogICAgICAgICAgICAvLyBOYW1lICAgICAgDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAibmFtZSI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3suZmlsdGVyLm5hbWUucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LmZpbHRlci5uYW1lLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBEZXNjcmlwdGlvbg0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gImRlc2NyaXB0aW9uIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5maWx0ZXIuZGVzY3JpcHRpb24ucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LmZpbHRlci5kZXNjcmlwdGlvbi50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgLy8gVHlwZQ0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gInR5cGUiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiaGlkZGVuIiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCIiLCBpbnB1dCk7DQogICAgICAgICAgICB2YXIgZmlsdGVyVHlwZSA9IGRhdGFbZGJLZXldOw0KICAgICAgICAgICAgc3dpdGNoIChmaWx0ZXJUeXBlKSB7DQogICAgICAgICAgICAgICAgY2FzZSAiY3VzdG9tLWZpbHRlciI6DQogICAgICAgICAgICAgICAgICAgIC8vIENhc2Ugc2Vuc2l0aXZlDQogICAgICAgICAgICAgICAgICAgIHZhciBkYktleSA9ICJjYXNlU2Vuc2l0aXZlIjsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChkYktleSk7DQogICAgICAgICAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhW2RiS2V5XTsNCiAgICAgICAgICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LmZpbHRlci5jYXNlU2Vuc2l0aXZlLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAgICAgICAgIC8vIEZpbHRlciBSdWxlIChDdXN0b20pDQogICAgICAgICAgICAgICAgICAgIHZhciBkYktleSA9ICJmaWx0ZXIiOw0KICAgICAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5maWx0ZXIuZmlsdGVyUnVsZS5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5maWx0ZXIuZmlsdGVyUnVsZS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBjYXNlICJncm91cC10aXRsZSI6DQogICAgICAgICAgICAgICAgICAgIC8vYWxlcnQoZGJLZXkgKyAiICIgKyBmaWx0ZXJUeXBlKQ0KICAgICAgICAgICAgICAgICAgICAvLyBGaWx0ZXIgYmFzZWQgb24gdGhlIGdyb3VwcyBpbiB0aGUgTTNVDQogICAgICAgICAgICAgICAgICAgIHZhciBkYktleSA9ICJmaWx0ZXIiOw0KICAgICAgICAgICAgICAgICAgICB2YXIgZ3JvdXBzTTNVID0gZ2V0TG9jYWxEYXRhKCJtM3VHcm91cHMiLCAiIik7DQogICAgICAgICAgICAgICAgICAgIHZhciB0ZXh0ID0gZ3JvdXBzTTNVWyJ0ZXh0Il07DQogICAgICAgICAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBncm91cHNNM1VbInZhbHVlIl07DQogICAgICAgICAgICAgICAgICAgIHZhciBzZWxlY3QgPSBjb250ZW50LmNyZWF0ZVNlbGVjdCh0ZXh0LCB2YWx1ZXMsIGRhdGFbZGJLZXldLCBkYktleSk7DQogICAgICAgICAgICAgICAgICAgIHNlbGVjdC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5maWx0ZXIuZmlsdGVyR3JvdXAudGl0bGV9fSIsIHNlbGVjdCk7DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuZGVzY3JpcHRpb24oInt7LmZpbHRlci5maWx0ZXJHcm91cC5kZXNjcmlwdGlvbn19Iik7DQogICAgICAgICAgICAgICAgICAgIC8vIENhc2Ugc2Vuc2V0aXZlDQogICAgICAgICAgICAgICAgICAgIHZhciBkYktleSA9ICJjYXNlU2Vuc2l0aXZlIjsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChkYktleSk7DQogICAgICAgICAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhW2RiS2V5XTsNCiAgICAgICAgICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LmZpbHRlci5jYXNlU2Vuc2l0aXZlLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAgICAgICAgIHZhciBkYktleSA9ICJpbmNsdWRlIjsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3suZmlsdGVyLmluY2x1ZGUucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3suZmlsdGVyLmluY2x1ZGUudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgICAgICAgICAgY29udGVudC5kZXNjcmlwdGlvbigie3suZmlsdGVyLmluY2x1ZGUuZGVzY3JpcHRpb259fSIpOw0KICAgICAgICAgICAgICAgICAgICB2YXIgZGJLZXkgPSAiZXhjbHVkZSI7DQogICAgICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LmZpbHRlci5leGNsdWRlLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LmZpbHRlci5leGNsdWRlLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuZGVzY3JpcHRpb24oInt7LmZpbHRlci5leGNsdWRlLmRlc2NyaXB0aW9ufX0iKTsNCiAgICAgICAgICAgICAgICAgICAgLy8gUHJlc2VydmUgTTNVIFBsYXlsaXN0IENoYW5uZWwgTWFwcGluZw0KICAgICAgICAgICAgICAgICAgICB2YXIgZGJLZXkgPSAicHJlc2VydmVNYXBwaW5nIjsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChkYktleSk7DQogICAgICAgICAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhW2RiS2V5XTsNCiAgICAgICAgICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LmZpbHRlci5wcmVzZXJ2ZU1hcHBpbmcudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgICAgICAgICAgLy8gU3RhcnRpbmcgQ2hhbm5lbCBOdW1iZXIgTWFwcGluZw0KICAgICAgICAgICAgICAgICAgICB2YXIgZGJLZXkgPSAic3RhcnRpbmdDaGFubmVsIjsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3suZmlsdGVyLnN0YXJ0aW5nQ2hhbm5lbC5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5maWx0ZXIuc3RhcnRpbmdDaGFubmVsLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAgICAgICAgIC8vIEZpbGwgTWlzc2luZyBFUEcgRGF0YQ0KICAgICAgICAgICAgICAgICAgICAvLyBUaGUgZm9sbG93aW5nIGNvZGUgb25seSB3b3JrcyB3aGVuIHhUZVZlIER1bW15IGFscmVhZHkgZXhpc3RzDQogICAgICAgICAgICAgICAgICAgIC8vIHZhciBkYktleTpzdHJpbmcgPSAiZGVmYXVsdE1pc3NpbmdFUEciDQogICAgICAgICAgICAgICAgICAgIC8vIHZhciB4bWx0djpYTUxUVkZpbGUgPSBuZXcgWE1MVFZGaWxlKCkNCiAgICAgICAgICAgICAgICAgICAgLy8gdmFyIHNlbGVjdCA9IHhtbHR2LmdldFByb2dyYW1zKCJ4VGVWZSBEdW1teSIsIGRhdGFbZGJLZXldKQ0KICAgICAgICAgICAgICAgICAgICAvLyBzZWxlY3Quc2V0QXR0cmlidXRlKCJuYW1lIiwgZGJLZXkpDQogICAgICAgICAgICAgICAgICAgIC8vIHNlbGVjdC5zZXRBdHRyaWJ1dGUoImlkIiwgInBvcHVwLW1pc3NpbmctZXBnIikNCiAgICAgICAgICAgICAgICAgICAgLy8gVGhlIHdvcmthcm91bmQgaXMgY3VycmVudGx5IHRvIGhhcmQgY29kZSB0aGUgeFRlVmUgRHVtbXkgZGF0YQ0KICAgICAgICAgICAgICAgICAgICB2YXIgZGJLZXkgPSAiZGVmYXVsdE1pc3NpbmdFUEciOw0KICAgICAgICAgICAgICAgICAgICB2YXIgbGlzdE9wdGlvbnMgPSB7ICJ0ZXh0IjogWyItIiwgIjMwIE1pbnV0ZXMgKDMwX01pbnV0ZXMpIiwgIjYwIE1pbnV0ZXMgKDYwX01pbnV0ZXMpIiwgIjkwIE1pbnV0ZXMgKDkwX01pbnV0ZXMpIiwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAiMTIwIE1pbnV0ZXMgKDEyMF9NaW51dGVzKSIsICIxODAgTWludXRlcyAoMzBfTWludXRlcykiLCAiMjQwIE1pbnV0ZXMgKDMwX01pbnV0ZXMpIiwgIjM2MCBNaW51dGVzICgzMF9NaW51dGVzKSJdLA0KICAgICAgICAgICAgICAgICAgICAgICAgInZhbHVlIjogWyItIiwgIjMwX01pbnV0ZXMiLCAiNjBfTWludXRlcyIsICI5MF9NaW51dGVzIiwgIjEyMF9NaW51dGVzIiwgIjE4MF9NaW51dGVzIiwgIjI0MF9NaW51dGVzIiwgIjM2MF9NaW51dGVzIixdIH07DQogICAgICAgICAgICAgICAgICAgIHZhciB0ZXh0ID0gbGlzdE9wdGlvbnNbInRleHQiXTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHZhbHVlcyA9IGxpc3RPcHRpb25zWyJ2YWx1ZSJdOw0KICAgICAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCBkYXRhW2RiS2V5XSwgZGJLZXkpOw0KICAgICAgICAgICAgICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3suZmlsdGVyLmRlZmF1bHRNaXNzaW5nRVBHLnRpdGxlfX0iLCBzZWxlY3QpOw0KICAgICAgICAgICAgICAgICAgICBjb250ZW50LmRlc2NyaXB0aW9uKCJ7ey5maWx0ZXIuZGVmYXVsdE1pc3NpbmdFUEcuZGVzY3JpcHRpb259fSIpOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBkZWZhdWx0Og0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIC8vIEludGVyYWN0aW9uDQogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUludGVyYWN0aW9uKCk7DQogICAgICAgICAgICAvLyBEZWxldGUNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJkZWxldGUiLCAie3suYnV0dG9uLmRlbGV0ZX19Iik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogc2F2ZVBvcHVwRGF0YSgiZmlsdGVyIiwgIicgKyBpZCArICciLCB0cnVlLCAwKScpOw0KICAgICAgICAgICAgaW5wdXQuY2xhc3NOYW1lID0gImRlbGV0ZSI7DQogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIC8vIEFib3J0DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAiY2FuY2VsIiwgInt7LmJ1dHRvbi5jYW5jZWx9fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IHNob3dFbGVtZW50KCJwb3B1cCIsIGZhbHNlKTsnKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgLy8gU2F2ZQ0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgInNhdmUiLCAie3suYnV0dG9uLnNhdmV9fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoImZpbHRlciIsICInICsgaWQgKyAnIiwgZmFsc2UsIDApJyk7DQogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJ4bWx0diI6DQogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUhlYWRsaW5lKGRhdGFUeXBlKTsNCiAgICAgICAgICAgIC8vIE5hbWUNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJuYW1lIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey54bWx0di5uYW1lLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey54bWx0di5uYW1lLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBEZXNjcmlwdGlvbg0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gImRlc2NyaXB0aW9uIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey54bWx0di5kZXNjcmlwdGlvbi5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sueG1sdHYuZGVzY3JpcHRpb24udGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIFVSTA0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gImZpbGUuc291cmNlIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey54bWx0di5maWxlWE1MVFYucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnhtbHR2LmZpbGVYTUxUVi50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgLy8gSW50ZXJhY3Rpb24NCiAgICAgICAgICAgIGNvbnRlbnQuY3JlYXRlSW50ZXJhY3Rpb24oKTsNCiAgICAgICAgICAgIC8vIERlbGV0ZQ0KICAgICAgICAgICAgaWYgKGRhdGFbImlkLnByb3ZpZGVyIl0gIT0gIi0iKSB7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImRlbGV0ZSIsICJ7ey5idXR0b24uZGVsZXRlfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogc2F2ZVBvcHVwRGF0YSgieG1sdHYiLCAiJyArIGlkICsgJyIsIHRydWUsIDApJyk7DQogICAgICAgICAgICAgICAgaW5wdXQuY2xhc3NOYW1lID0gImRlbGV0ZSI7DQogICAgICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICAvLyBBYm9ydA0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImNhbmNlbCIsICJ7ey5idXR0b24uY2FuY2VsfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBzaG93RWxlbWVudCgicG9wdXAiLCBmYWxzZSk7Jyk7DQogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIC8vIFVwZGF0ZQ0KICAgICAgICAgICAgaWYgKGRhdGFbImlkLnByb3ZpZGVyIl0gIT0gIi0iKSB7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgInVwZGF0ZSIsICJ7ey5idXR0b24udXBkYXRlfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogc2F2ZVBvcHVwRGF0YSgieG1sdHYiLCAiJyArIGlkICsgJyIsIGZhbHNlLCAxKScpOw0KICAgICAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgLy8gU2F2ZQ0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgInNhdmUiLCAie3suYnV0dG9uLnNhdmV9fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoInhtbHR2IiwgIicgKyBpZCArICciLCBmYWxzZSwgMCknKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGNhc2UgInVzZXJzIjoNCiAgICAgICAgICAgIGNvbnRlbnQuY3JlYXRlSGVhZGxpbmUoInt7Lm1haW5NZW51Lml0ZW0udXNlcnN9fSIpOw0KICAgICAgICAgICAgLy8gVXNlciBuYW1lDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAidXNlcm5hbWUiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnVzZXJzLnVzZXJuYW1lLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey51c2Vycy51c2VybmFtZS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgLy8gTmV3IFBhcnNzd29yZA0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gInBhc3N3b3JkIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInBhc3N3b3JkIiwgZGJLZXksICIiKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3sudXNlcnMucGFzc3dvcmQucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnVzZXJzLnBhc3N3b3JkLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBDb25maXJtYXRpb24NCiAgICAgICAgICAgIHZhciBkYktleSA9ICJjb25maXJtIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInBhc3N3b3JkIiwgZGJLZXksICIiKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3sudXNlcnMuY29uZmlybS5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sudXNlcnMuY29uZmlybS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgLy8gQXV0aGVudGljYXRpb24gV0VCDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAiYXV0aGVudGljYXRpb24ud2ViIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goZGJLZXkpOw0KICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGFbZGJLZXldOw0KICAgICAgICAgICAgaWYgKGRhdGFbImRlZmF1bHRVc2VyIl0gPT0gdHJ1ZSkgew0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICJqYXZhc2NyaXB0OiByZXR1cm4gZmFsc2UiKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey51c2Vycy53ZWIudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIEF1dGhlbnRpY2F0aW9uIFBNUw0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gImF1dGhlbnRpY2F0aW9uLnBtcyI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KGRiS2V5KTsNCiAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhW2RiS2V5XTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey51c2Vycy5wbXMudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIEF1dGhlbnRpY2F0aW9uIE0zVQ0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gImF1dGhlbnRpY2F0aW9uLm0zdSI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KGRiS2V5KTsNCiAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhW2RiS2V5XTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey51c2Vycy5tM3UudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIEF1dGhlbnRpY2F0aW9uIFhNTA0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gImF1dGhlbnRpY2F0aW9uLnhtbCI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KGRiS2V5KTsNCiAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhW2RiS2V5XTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey51c2Vycy54bWwudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIEF1dGhlbnRpY2F0aW9uIEFQSQ0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gImF1dGhlbnRpY2F0aW9uLmFwaSI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KGRiS2V5KTsNCiAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhW2RiS2V5XTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey51c2Vycy5hcGkudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIEludGVyYWN0aW9uDQogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUludGVyYWN0aW9uKCk7DQogICAgICAgICAgICAvLyBEZWxldGUNCiAgICAgICAgICAgIGlmIChkYXRhWyJkZWZhdWx0VXNlciJdICE9IHRydWUgJiYgaWQgIT0gIi0iKSB7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImRlbGV0ZSIsICJ7ey5idXR0b24uZGVsZXRlfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5jbGFzc05hbWUgPSAiZGVsZXRlIjsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogc2F2ZVBvcHVwRGF0YSgiJyArIGRhdGFUeXBlICsgJyIsICInICsgaWQgKyAnIiwgdHJ1ZSwgMCknKTsNCiAgICAgICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIC8vIEFib3J0DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAiY2FuY2VsIiwgInt7LmJ1dHRvbi5jYW5jZWx9fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IHNob3dFbGVtZW50KCJwb3B1cCIsIGZhbHNlKTsnKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgLy8gU2F2ZQ0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgInNhdmUiLCAie3suYnV0dG9uLnNhdmV9fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoIicgKyBkYXRhVHlwZSArICciLCAiJyArIGlkICsgJyIsICJmYWxzZSIpOycpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSAibWFwcGluZyI6DQogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUhlYWRsaW5lKCJ7ey5tYWluTWVudS5pdGVtLm1hcHBpbmd9fSIpOw0KICAgICAgICAgICAgLy8gQWN0aXZlDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAieC1hY3RpdmUiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChkYktleSk7DQogICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YVtkYktleV07DQogICAgICAgICAgICBpbnB1dC5pZCA9ICJhY3RpdmUiOw0KICAgICAgICAgICAgLy9pbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIikNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdG9nZ2xlQ2hhbm5lbFN0YXR1cygnIiArIGlkICsgIicsIHRoaXMpIik7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3subWFwcGluZy5hY3RpdmUudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIENoYW5uZWwgbmFtZQ0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gIngtbmFtZSI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgIGlmIChCVUxLX0VESVQgPT0gdHJ1ZSkgew0KICAgICAgICAgICAgICAgIGlucHV0LnN0eWxlLmJvcmRlciA9ICJzb2xpZCAxcHggcmVkIjsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInJlYWRvbmx5IiwgInRydWUiKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5tYXBwaW5nLmNoYW5uZWxOYW1lLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICBjb250ZW50LmRlc2NyaXB0aW9uKGRhdGFbIm5hbWUiXSk7DQogICAgICAgICAgICAvLyBEZXNjcmlwdGlvbg0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gIngtZGVzY3JpcHRpb24iOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7Lm1hcHBpbmcuZGVzY3JpcHRpb24ucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7Lm1hcHBpbmcuZGVzY3JpcHRpb24udGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIFVwZGF0ZSB0aGUgY2hhbm5lbCBuYW1lDQogICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgiX3V1aWQua2V5IikpIHsNCiAgICAgICAgICAgICAgICBpZiAoZGF0YVsiX3V1aWQua2V5Il0gIT0gIiIpIHsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGRiS2V5ID0gIngtdXBkYXRlLWNoYW5uZWwtbmFtZSI7DQogICAgICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goZGJLZXkpOw0KICAgICAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhW2RiS2V5XTsNCiAgICAgICAgICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7Lm1hcHBpbmcudXBkYXRlQ2hhbm5lbE5hbWUudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9DQogICAgICAgICAgICAvLyBMb2dvIFVSTCAoQ2hhbm5lbCkgDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAidHZnLWxvZ28iOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoImlkIiwgImNoYW5uZWwtaWNvbiIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7Lm1hcHBpbmcuY2hhbm5lbExvZ28udGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIENoYW5uZWwgbG9nbyB1cGRhdGUNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJ4LXVwZGF0ZS1jaGFubmVsLWljb24iOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChkYktleSk7DQogICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YVtkYktleV07DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoImlkIiwgInVwZGF0ZS1pY29uIik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnOyBjaGFuZ2VDaGFubmVsTG9nbygnIiArIGlkICsgIicpOyIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7Lm1hcHBpbmcudXBkYXRlQ2hhbm5lbExvZ28udGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIEV4cGFuZCBFUEcgY2F0ZWdvcnkNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJ4LWNhdGVnb3J5IjsNCiAgICAgICAgICAgIHZhciB0ZXh0ID0gWyItIiwgIktpZHMgKEVtYnkgb25seSkiLCAiTmV3cyIsICJNb3ZpZSIsICJTZXJpZXMiLCAiU3BvcnRzIl07DQogICAgICAgICAgICB2YXIgdmFsdWVzID0gWyIiLCAiS2lkcyIsICJOZXdzIiwgIk1vdmllIiwgIlNlcmllcyIsICJTcG9ydHMiXTsNCiAgICAgICAgICAgIHZhciBzZWxlY3QgPSBjb250ZW50LmNyZWF0ZVNlbGVjdCh0ZXh0LCB2YWx1ZXMsIGRhdGFbZGJLZXldLCBkYktleSk7DQogICAgICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7Lm1hcHBpbmcuZXBnQ2F0ZWdvcnkudGl0bGV9fSIsIHNlbGVjdCk7DQogICAgICAgICAgICAvLyBNM1UgZ3JvdXAgdGl0bGUNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJ4LWdyb3VwLXRpdGxlIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgaW5wdXQuZGF0YXNldC5vbGRWYWx1ZSA9IGRhdGFbZGJLZXldOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7Lm1hcHBpbmcubTN1R3JvdXBUaXRsZS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgaWYgKGRhdGFbImdyb3VwLXRpdGxlIl0gIT0gdW5kZWZpbmVkKSB7DQogICAgICAgICAgICAgICAgY29udGVudC5kZXNjcmlwdGlvbihkYXRhWyJncm91cC10aXRsZSJdKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGlmIChkYXRhWyJ4LXVwZGF0ZS1jaGFubmVsLWdyb3VwIl0gPT0gdHJ1ZSkgew0KICAgICAgICAgICAgICAgIGlucHV0LmRpc2FibGVkID0gdHJ1ZTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIC8vIFVwZGF0ZSBjaGFubmVsIGdyb3VwIGNoZWNrYm94DQogICAgICAgICAgICB2YXIgZGJLZXkgPSAieC11cGRhdGUtY2hhbm5lbC1ncm91cCI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KGRiS2V5KTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdG9nZ2xlR3JvdXBVcGRhdGVDYignIiArIGlkICsgIicsIHRoaXMpOyIpOw0KICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGFbZGJLZXldOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7Lm1hcHBpbmcudXBkYXRlQ2hhbm5lbEdyb3VwLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICBjb250ZW50LmRlc2NyaXB0aW9uKCJ7ey5tYXBwaW5nLnVwZGF0ZUNoYW5uZWxHcm91cC5kZXNjcmlwdGlvbn19Iik7DQogICAgICAgICAgICAvLyBYTUxUViBmaWxlDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAneC14bWx0di1maWxlJzsNCiAgICAgICAgICAgIGNvbnN0IHhtbFR2RmlsZSA9IGRhdGFbZGJLZXldOw0KICAgICAgICAgICAgdmFyIHhtbFR2ID0gbmV3IFhNTFRWRmlsZSgpOw0KICAgICAgICAgICAgY29uc3QgeG1sVHZGaWxlU2VsZWN0ID0geG1sVHYuZ2V0RmlsZXMoZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgeG1sVHZGaWxlU2VsZWN0LnNldEF0dHJpYnV0ZSgnbmFtZScsIGRiS2V5KTsNCiAgICAgICAgICAgIHhtbFR2RmlsZVNlbGVjdC5zZXRBdHRyaWJ1dGUoJ2lkJywgJ3BvcHVwLXhtbHR2Jyk7DQogICAgICAgICAgICB4bWxUdkZpbGVTZWxlY3Quc2V0QXR0cmlidXRlKCdvbmNoYW5nZScsIGBqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJzsgc2V0WG1sdHZDaGFubmVsKCcke2lkfScsIHRoaXMpO2ApOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coJ3t7Lm1hcHBpbmcueG1sdHZGaWxlLnRpdGxlfX0nLCB4bWxUdkZpbGVTZWxlY3QpOw0KICAgICAgICAgICAgLy8gWE1MVFYgTWFwcGluZw0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gJ3gtbWFwcGluZyc7DQogICAgICAgICAgICB2YXIgeG1sVHYgPSBuZXcgWE1MVFZGaWxlKCk7DQogICAgICAgICAgICBjb25zdCBjdXJyZW50WG1sVHZJZCA9IGRhdGFbZGJLZXldOw0KICAgICAgICAgICAgY29uc3QgeG1sVHZJZFNlbGVjdCA9IHhtbFR2LmdldFByb2dyYW1zKHhtbFR2RmlsZSwgY3VycmVudFhtbFR2SWQpOw0KICAgICAgICAgICAgeG1sVHZJZFNlbGVjdC5zZXRBdHRyaWJ1dGUoJ25hbWUnLCBkYktleSk7DQogICAgICAgICAgICB4bWxUdklkU2VsZWN0LnNldEF0dHJpYnV0ZSgnaWQnLCAncG9wdXAtbWFwcGluZycpOw0KICAgICAgICAgICAgeG1sVHZJZFNlbGVjdC5zZXRBdHRyaWJ1dGUoJ29uY2hhbmdlJywgYGphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnOyBjaGVja1htbHR2Q2hhbm5lbCgnJHtpZH0nLCB0aGlzLCAnJHt4bWxUdkZpbGV9Jyk7YCk7DQogICAgICAgICAgICBzb3J0U2VsZWN0KHhtbFR2SWRTZWxlY3QpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coJ3t7Lm1hcHBpbmcueG1sdHZDaGFubmVsLnRpdGxlfX0nLCB4bWxUdklkU2VsZWN0KTsNCiAgICAgICAgICAgIC8vIFRpbWVzaGlmdA0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gIngtdGltZXNoaWZ0IjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5tYXBwaW5nLnRpbWVzaGlmdC5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoImlkIiwgInRpbWVzaGlmdCIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7Lm1hcHBpbmcudGltZXNoaWZ0LnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBJbnRlcmFjdGlvbg0KICAgICAgICAgICAgY29udGVudC5jcmVhdGVJbnRlcmFjdGlvbigpOw0KICAgICAgICAgICAgLy8gVXBsb2FkIGxvZ28NCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJjYW5jZWwiLCAie3suYnV0dG9uLnVwbG9hZExvZ299fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IHVwbG9hZExvZ28oKTsnKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgLy8gQWJvcnQNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJjYW5jZWwiLCAie3suYnV0dG9uLmNhbmNlbH19Iik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogc2hvd0VsZW1lbnQoInBvcHVwIiwgZmFsc2UpOycpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICAvLyBGaW5pc2hlZA0KICAgICAgICAgICAgdmFyIGlkcyA9IFtdOw0KICAgICAgICAgICAgaWRzID0gZ2V0QWxsU2VsZWN0ZWRDaGFubmVscygpOw0KICAgICAgICAgICAgaWYgKGlkcy5sZW5ndGggPT0gMCkgew0KICAgICAgICAgICAgICAgIGlkcy5wdXNoKGlkKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJzYXZlIiwgInt7LmJ1dHRvbi5kb25lfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBkb25lUG9wdXBEYXRhKCInICsgZGF0YVR5cGUgKyAnIiwgIicgKyBpZHMgKyAnIiwgImZhbHNlIik7Jyk7DQogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBkZWZhdWx0Og0KICAgICAgICAgICAgYnJlYWs7DQogICAgfQ0KICAgIHNob3dQb3BVcEVsZW1lbnQoJ3BvcHVwLWN1c3RvbScpOw0KfQ0KY2xhc3MgWE1MVFZGaWxlIHsNCiAgICBnZXRGaWxlcyhzZXQpIHsNCiAgICAgICAgbGV0IGZpbGVJRHMgPSBnZXRPd25PYmpQcm9wcyhTRVJWRVJbInhlcGciXVsieG1sdHZNYXAiXSk7DQogICAgICAgIGxldCB2YWx1ZXMgPSBuZXcgQXJyYXkoIi0iKTsNCiAgICAgICAgbGV0IHRleHQgPSBuZXcgQXJyYXkoIi0iKTsNCiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBmaWxlSURzLmxlbmd0aDsgaSsrKSB7DQogICAgICAgICAgICBpZiAoZmlsZUlEc1tpXSAhPSAieFRlVmUgRHVtbXkiKSB7DQogICAgICAgICAgICAgICAgdmFsdWVzLnB1c2goZ2V0VmFsdWVGcm9tUHJvdmlkZXJGaWxlKGZpbGVJRHNbaV0sICJ4bWx0diIsICJmaWxlLnh0ZXZlIikpOw0KICAgICAgICAgICAgICAgIHRleHQucHVzaChnZXRWYWx1ZUZyb21Qcm92aWRlckZpbGUoZmlsZUlEc1tpXSwgInhtbHR2IiwgIm5hbWUiKSk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICB2YWx1ZXMucHVzaChmaWxlSURzW2ldKTsNCiAgICAgICAgICAgICAgICB0ZXh0LnB1c2goZmlsZUlEc1tpXSk7DQogICAgICAgICAgICB9DQogICAgICAgIH0NCiAgICAgICAgbGV0IHNlbGVjdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlNFTEVDVCIpOw0KICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRleHQubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgICAgIHZhciBvcHRpb24gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJPUFRJT04iKTsNCiAgICAgICAgICAgIG9wdGlvbi5zZXRBdHRyaWJ1dGUoInZhbHVlIiwgdmFsdWVzW2ldKTsNCiAgICAgICAgICAgIG9wdGlvbi5pbm5lclRleHQgPSB0ZXh0W2ldOw0KICAgICAgICAgICAgc2VsZWN0LmFwcGVuZENoaWxkKG9wdGlvbik7DQogICAgICAgIH0NCiAgICAgICAgaWYgKHNldCAhPSAiIikgew0KICAgICAgICAgICAgc2VsZWN0LnZhbHVlID0gc2V0Ow0KICAgICAgICB9DQogICAgICAgIHJldHVybiBzZWxlY3Q7DQogICAgfQ0KICAgIGdldFByb2dyYW1zKHhtbFR2RmlsZSwgY3VycmVudFhtbFR2SWQpIHsNCiAgICAgICAgY29uc3QgdmFsdWVzID0gZ2V0T3duT2JqUHJvcHMoU0VSVkVSWyd4ZXBnJ11bJ3htbHR2TWFwJ11beG1sVHZGaWxlXSk7DQogICAgICAgIGNvbnN0IHRleHQgPSBbXTsNCiAgICAgICAgbGV0IGZyaWVuZGx5TmFtZTsNCiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB2YWx1ZXMubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgICAgIGlmIChTRVJWRVJbJ3hlcGcnXVsneG1sdHZNYXAnXVt4bWxUdkZpbGVdW3ZhbHVlc1tpXV0uaGFzT3duUHJvcGVydHkoJ2ZyaWVuZGx5LW5hbWUnKSA9PSB0cnVlKSB7DQogICAgICAgICAgICAgICAgZnJpZW5kbHlOYW1lID0gU0VSVkVSWyd4ZXBnJ11bJ3htbHR2TWFwJ11beG1sVHZGaWxlXVt2YWx1ZXNbaV1dWydmcmllbmRseS1uYW1lJ107DQogICAgICAgICAgICB9DQogICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICBmcmllbmRseU5hbWUgPSAnLSc7DQogICAgICAgICAgICB9DQogICAgICAgICAgICB0ZXh0W2ldID0gYCR7ZnJpZW5kbHlOYW1lfSAoJHt2YWx1ZXNbaV19KWA7DQogICAgICAgIH0NCiAgICAgICAgdGV4dC51bnNoaWZ0KCctJyk7DQogICAgICAgIHZhbHVlcy51bnNoaWZ0KCctJyk7DQogICAgICAgIGNvbnN0IHNlbGVjdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NlbGVjdCcpOw0KICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRleHQubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgICAgIGNvbnN0IG9wdGlvbiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ29wdGlvbicpOw0KICAgICAgICAgICAgb3B0aW9uLnNldEF0dHJpYnV0ZSgndmFsdWUnLCB2YWx1ZXNbaV0pOw0KICAgICAgICAgICAgb3B0aW9uLmlubmVyVGV4dCA9IHRleHRbaV07DQogICAgICAgICAgICBzZWxlY3QuYXBwZW5kQ2hpbGQob3B0aW9uKTsNCiAgICAgICAgfQ0KICAgICAgICBzZWxlY3QudmFsdWUgPSAoY3VycmVudFhtbFR2SWQgPT0gJycpID8gJy0nIDogY3VycmVudFhtbFR2SWQ7DQogICAgICAgIHJldHVybiBzZWxlY3Q7DQogICAgfQ0KfQ0KZnVuY3Rpb24gZ2V0VmFsdWVGcm9tUHJvdmlkZXJGaWxlKGZpbGUsIGZpbGVUeXBlLCBrZXkpIHsNCiAgICBpZiAoZmlsZSA9PSAieFRlVmUgRHVtbXkiKSB7DQogICAgICAgIHJldHVybiBmaWxlOw0KICAgIH0NCiAgICBsZXQgZmlsZUlEOw0KICAgIGxldCBpbmRpY2F0b3IgPSBmaWxlLmNoYXJBdCgwKTsNCiAgICBzd2l0Y2ggKGluZGljYXRvcikgew0KICAgICAgICBjYXNlICJNIjoNCiAgICAgICAgICAgIGZpbGVUeXBlID0gIm0zdSI7DQogICAgICAgICAgICBmaWxlSUQgPSBmaWxlOw0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGNhc2UgIkgiOg0KICAgICAgICAgICAgZmlsZVR5cGUgPSAiaGRociI7DQogICAgICAgICAgICBmaWxlSUQgPSBmaWxlOw0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGNhc2UgIlgiOg0KICAgICAgICAgICAgZmlsZVR5cGUgPSAieG1sdHYiOw0KICAgICAgICAgICAgZmlsZUlEID0gZmlsZS5zdWJzdHJpbmcoMCwgZmlsZS5sYXN0SW5kZXhPZignLicpKTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgIH0NCiAgICBpZiAoU0VSVkVSWyJzZXR0aW5ncyJdWyJmaWxlcyJdW2ZpbGVUeXBlXS5oYXNPd25Qcm9wZXJ0eShmaWxlSUQpID09IHRydWUpIHsNCiAgICAgICAgdmFyIGRhdGEgPSBTRVJWRVJbInNldHRpbmdzIl1bImZpbGVzIl1bZmlsZVR5cGVdW2ZpbGVJRF07DQogICAgICAgIHJldHVybiBkYXRhW2tleV07DQogICAgfQ0KICAgIHJldHVybjsNCn0NCmZ1bmN0aW9uIHNldFhtbHR2Q2hhbm5lbChlcGdNYXBJZCwgeG1sVHZGaWxlU2VsZWN0KSB7DQogICAgY29uc3QgeG1sVHYgPSBuZXcgWE1MVFZGaWxlKCk7DQogICAgY29uc3QgbmV3WG1sVHZGaWxlID0geG1sVHZGaWxlU2VsZWN0LnZhbHVlOw0KICAgIC8vIFJlbW92ZSBvbGQgWE1MVFYgSUQgc2VsZWN0aW9uIGJveA0KICAgIGNvbnN0IHhtbFR2SWRTZWxlY3RQYXJlbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncG9wdXAtbWFwcGluZycpLnBhcmVudEVsZW1lbnQ7DQogICAgeG1sVHZJZFNlbGVjdFBhcmVudC5pbm5lckhUTUwgPSAnJzsNCiAgICAvLyBDcmVhdGUgbmV3IFhNTFRWIElEIHNlbGVjdGlvbiBib3gNCiAgICBjb25zdCB0dmdJZCA9IFNFUlZFUlsneGVwZyddWydlcGdNYXBwaW5nJ11bZXBnTWFwSWRdWyd0dmctaWQnXTsNCiAgICBjb25zdCBuZXdYbWxUdklkU2VsZWN0ID0geG1sVHYuZ2V0UHJvZ3JhbXMobmV3WG1sVHZGaWxlLCB0dmdJZCk7DQogICAgbmV3WG1sVHZJZFNlbGVjdC5zZXRBdHRyaWJ1dGUoJ25hbWUnLCAneC1tYXBwaW5nJyk7DQogICAgbmV3WG1sVHZJZFNlbGVjdC5zZXRBdHRyaWJ1dGUoJ2lkJywgJ3BvcHVwLW1hcHBpbmcnKTsNCiAgICBuZXdYbWxUdklkU2VsZWN0LnNldEF0dHJpYnV0ZSgnb25jaGFuZ2UnLCBgamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCc7IGNoZWNrWG1sdHZDaGFubmVsKCcke2VwZ01hcElkfScsIHRoaXMsICcke25ld1htbFR2RmlsZX0nKTtgKTsNCiAgICBuZXdYbWxUdklkU2VsZWN0LmNsYXNzTmFtZSA9ICdjaGFuZ2VkJzsNCiAgICBzb3J0U2VsZWN0KG5ld1htbFR2SWRTZWxlY3QpOw0KICAgIC8vIEFkZCBuZXcgWE1MVFYgSUQgc2VsZWN0aW9uIGJveCB0byBpdCdzIHBhcmVudA0KICAgIHhtbFR2SWRTZWxlY3RQYXJlbnQuYXBwZW5kQ2hpbGQobmV3WG1sVHZJZFNlbGVjdCk7DQogICAgY2hlY2tYbWx0dkNoYW5uZWwoZXBnTWFwSWQsIG5ld1htbFR2SWRTZWxlY3QsIG5ld1htbFR2RmlsZSk7DQp9DQpmdW5jdGlvbiBjaGVja1htbHR2Q2hhbm5lbChlcGdNYXBJZCwgeG1sVHZJZFNlbGVjdCwgeG1sVHZGaWxlKSB7DQogICAgY29uc3QgbmV3WG1sVHZJZCA9IHhtbFR2SWRTZWxlY3QudmFsdWU7DQogICAgY29uc3QgY2hhbm5lbEFjdGl2ZUNiID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2FjdGl2ZScpOw0KICAgIGNvbnN0IGNoYW5uZWxBY3RpdmUgPSBuZXdYbWxUdklkICE9ICctJzsNCiAgICBjaGFubmVsQWN0aXZlQ2IuY2hlY2tlZCA9IGNoYW5uZWxBY3RpdmU7DQogICAgY2hhbm5lbEFjdGl2ZUNiLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJzsNCiAgICBpZiAoeG1sVHZGaWxlICE9ICd4VGVWZSBEdW1teScgJiYgY2hhbm5lbEFjdGl2ZSA9PSB0cnVlKSB7DQogICAgICAgIGNoYW5nZUNoYW5uZWxMb2dvKGVwZ01hcElkKTsNCiAgICAgICAgcmV0dXJuOw0KICAgIH0NCiAgICBpZiAoeG1sVHZGaWxlID09ICd4VGVWZSBEdW1teScpIHsNCiAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3VwZGF0ZS1pY29uJykuY2hlY2tlZCA9IGZhbHNlOw0KICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndXBkYXRlLWljb24nKS5jbGFzc05hbWUgPSAnY2hhbmdlZCc7DQogICAgfQ0KfQ0KZnVuY3Rpb24gY2hhbmdlQ2hhbm5lbExvZ28oZXBnTWFwSWQpIHsNCiAgICBjb25zdCBjaGFubmVsID0gU0VSVkVSWyd4ZXBnJ11bJ2VwZ01hcHBpbmcnXVtlcGdNYXBJZF07DQogICAgY29uc3QgeG1sVHZGaWxlU2VsZWN0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3BvcHVwLXhtbHR2Jyk7DQogICAgY29uc3QgeG1sVHZGaWxlID0geG1sVHZGaWxlU2VsZWN0Lm9wdGlvbnNbeG1sVHZGaWxlU2VsZWN0LnNlbGVjdGVkSW5kZXhdLnZhbHVlOw0KICAgIGNvbnN0IHhtbFR2SWRTZWxlY3QgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncG9wdXAtbWFwcGluZycpOw0KICAgIGNvbnN0IG5ld1htbFR2SWQgPSB4bWxUdklkU2VsZWN0Lm9wdGlvbnNbeG1sVHZJZFNlbGVjdC5zZWxlY3RlZEluZGV4XS52YWx1ZTsNCiAgICBjb25zdCB4bWxUdkxvZ28gPSBTRVJWRVJbJ3hlcGcnXVsneG1sdHZNYXAnXVt4bWxUdkZpbGVdW25ld1htbFR2SWRdWydpY29uJ107DQogICAgY29uc3QgdXBkYXRlTG9nbyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd1cGRhdGUtaWNvbicpLmNoZWNrZWQ7DQogICAgbGV0IGxvZ287DQogICAgaWYgKHVwZGF0ZUxvZ28gPT0gdHJ1ZSAmJiB4bWxUdkZpbGUgIT0gJ3hUZVZlIER1bW15Jykgew0KICAgICAgICBpZiAoU0VSVkVSWyd4ZXBnJ11bJ3htbHR2TWFwJ11beG1sVHZGaWxlXS5oYXNPd25Qcm9wZXJ0eShuZXdYbWxUdklkKSkgew0KICAgICAgICAgICAgbG9nbyA9IHhtbFR2TG9nbzsNCiAgICAgICAgfQ0KICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgIGxvZ28gPSBjaGFubmVsWyd0dmctbG9nbyddOw0KICAgICAgICB9DQogICAgICAgIHZhciBsb2dvSW5wdXQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY2hhbm5lbC1pY29uJyk7DQogICAgICAgIGxvZ29JbnB1dC52YWx1ZSA9IGxvZ287DQogICAgICAgIGlmIChCVUxLX0VESVQgPT0gZmFsc2UpIHsNCiAgICAgICAgICAgIGxvZ29JbnB1dC5jbGFzc05hbWUgPSAnY2hhbmdlZCc7DQogICAgICAgIH0NCiAgICB9DQp9DQpmdW5jdGlvbiBzYXZlUG9wdXBEYXRhKGRhdGFUeXBlLCBpZCwgcmVtb3ZlLCBvcHRpb24pIHsNCiAgICBpZiAoZGF0YVR5cGUgPT0gIm1hcHBpbmciKSB7DQogICAgICAgIGxldCBkYXRhID0ge307DQogICAgICAgIGNvbnNvbGUubG9nKCJTYXZlIG1hcHBpbmcgZGF0YSIpOw0KICAgICAgICBsZXQgY21kID0gInNhdmVFcGdNYXBwaW5nIjsNCiAgICAgICAgZGF0YVsiZXBnTWFwcGluZyJdID0gU0VSVkVSWyJ4ZXBnIl1bImVwZ01hcHBpbmciXTsNCiAgICAgICAgY29uc29sZS5sb2coIlNFTkQgVE8gU0VSVkVSIik7DQogICAgICAgIGxldCBzZXJ2ZXIgPSBuZXcgU2VydmVyKGNtZCk7DQogICAgICAgIHNlcnZlci5yZXF1ZXN0KGRhdGEpOw0KICAgICAgICBkZWxldGUgVU5ET1siZXBnTWFwcGluZyJdOw0KICAgICAgICByZXR1cm47DQogICAgfQ0KICAgIGNvbnNvbGUubG9nKCJTYXZlIHBvcHVwIGRhdGEiKTsNCiAgICBsZXQgZGl2ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInBvcHVwLWN1c3RvbSIpOw0KICAgIGxldCBpbnB1dHMgPSBkaXYuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlRBQkxFIilbMF0uZ2V0RWxlbWVudHNCeVRhZ05hbWUoIklOUFVUIik7DQogICAgbGV0IHNlbGVjdHMgPSBkaXYuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlRBQkxFIilbMF0uZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlNFTEVDVCIpOw0KICAgIGxldCBpbnB1dCA9IHt9Ow0KICAgIGxldCBjb25maXJtTXNnOw0KICAgIGZvciAobGV0IGkgPSAwOyBpIDwgc2VsZWN0cy5sZW5ndGg7IGkrKykgew0KICAgICAgICB2YXIgbmFtZTsNCiAgICAgICAgbmFtZSA9IHNlbGVjdHNbaV0ubmFtZTsNCiAgICAgICAgdmFyIHZhbHVlID0gc2VsZWN0c1tpXS52YWx1ZTsNCiAgICAgICAgc3dpdGNoIChuYW1lKSB7DQogICAgICAgICAgICBjYXNlICJ0dW5lciI6DQogICAgICAgICAgICAgICAgaW5wdXRbbmFtZV0gPSBwYXJzZUludCh2YWx1ZSk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBkZWZhdWx0Og0KICAgICAgICAgICAgICAgIGlucHV0W25hbWVdID0gdmFsdWU7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIH0NCiAgICB9DQogICAgZm9yIChsZXQgaSA9IDA7IGkgPCBpbnB1dHMubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgc3dpdGNoIChpbnB1dHNbaV0udHlwZSkgew0KICAgICAgICAgICAgY2FzZSAiY2hlY2tib3giOg0KICAgICAgICAgICAgICAgIG5hbWUgPSBpbnB1dHNbaV0ubmFtZTsNCiAgICAgICAgICAgICAgICBpbnB1dFtuYW1lXSA9IGlucHV0c1tpXS5jaGVja2VkOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAidGV4dCI6DQogICAgICAgICAgICBjYXNlICJoaWRkZW4iOg0KICAgICAgICAgICAgY2FzZSAicGFzc3dvcmQiOg0KICAgICAgICAgICAgICAgIG5hbWUgPSBpbnB1dHNbaV0ubmFtZTsNCiAgICAgICAgICAgICAgICBzd2l0Y2ggKG5hbWUpIHsNCiAgICAgICAgICAgICAgICAgICAgY2FzZSAidHVuZXIiOg0KICAgICAgICAgICAgICAgICAgICAgICAgaW5wdXRbbmFtZV0gPSBwYXJzZUludChpbnB1dHNbaV0udmFsdWUpOw0KICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICAgICAgICAgICAgICBpbnB1dFtuYW1lXSA9IGlucHV0c1tpXS52YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgfQ0KICAgIH0NCiAgICBsZXQgZGF0YSA9IHt9Ow0KICAgIGxldCBjbWQ7DQogICAgaWYgKHJlbW92ZSA9PSB0cnVlKSB7DQogICAgICAgIGlucHV0WyJkZWxldGUiXSA9IHRydWU7DQogICAgfQ0KICAgIHN3aXRjaCAoZGF0YVR5cGUpIHsNCiAgICAgICAgY2FzZSAidXNlcnMiOg0KICAgICAgICAgICAgY29uZmlybU1zZyA9ICJEZWxldGUgdGhpcyB1c2VyPyI7DQogICAgICAgICAgICBpZiAoaWQgPT0gIi0iKSB7DQogICAgICAgICAgICAgICAgY21kID0gInNhdmVOZXdVc2VyIjsNCiAgICAgICAgICAgICAgICBkYXRhWyJ1c2VyRGF0YSJdID0gaW5wdXQ7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICBjbWQgPSAic2F2ZVVzZXJEYXRhIjsNCiAgICAgICAgICAgICAgICBsZXQgZCA9IHt9Ow0KICAgICAgICAgICAgICAgIGRbaWRdID0gaW5wdXQ7DQogICAgICAgICAgICAgICAgZGF0YVsidXNlckRhdGEiXSA9IGQ7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSAibTN1IjoNCiAgICAgICAgICAgIGNvbmZpcm1Nc2cgPSAiRGVsZXRlIHRoaXMgcGxheWxpc3Q/IjsNCiAgICAgICAgICAgIHN3aXRjaCAob3B0aW9uKSB7DQogICAgICAgICAgICAgICAgLy8gUG9wdXA6IFNhdmUNCiAgICAgICAgICAgICAgICBjYXNlIDA6DQogICAgICAgICAgICAgICAgICAgIGNtZCA9ICJzYXZlRmlsZXNNM1UiOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICAvLyBQb3B1cDogVXBkYXRlDQogICAgICAgICAgICAgICAgY2FzZSAxOg0KICAgICAgICAgICAgICAgICAgICBjbWQgPSAidXBkYXRlRmlsZU0zVSI7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgZGF0YVsiZmlsZXMiXSA9IHt9Ow0KICAgICAgICAgICAgZGF0YVsiZmlsZXMiXVtkYXRhVHlwZV0gPSB7fTsNCiAgICAgICAgICAgIGRhdGFbImZpbGVzIl1bZGF0YVR5cGVdW2lkXSA9IGlucHV0Ow0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGNhc2UgImhkaHIiOg0KICAgICAgICAgICAgY29uZmlybU1zZyA9ICJEZWxldGUgdGhpcyBIREhvbWVSdW4gdHVuZXI/IjsNCiAgICAgICAgICAgIHN3aXRjaCAob3B0aW9uKSB7DQogICAgICAgICAgICAgICAgLy8gUG9wdXA6IFNhdmUNCiAgICAgICAgICAgICAgICBjYXNlIDA6DQogICAgICAgICAgICAgICAgICAgIGNtZCA9ICJzYXZlRmlsZXNIREhSIjsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgLy8gUG9wdXA6IFVwZGF0ZQ0KICAgICAgICAgICAgICAgIGNhc2UgMToNCiAgICAgICAgICAgICAgICAgICAgY21kID0gInVwZGF0ZUZpbGVIREhSIjsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBkYXRhWyJmaWxlcyJdID0ge307DQogICAgICAgICAgICBkYXRhWyJmaWxlcyJdW2RhdGFUeXBlXSA9IHt9Ow0KICAgICAgICAgICAgZGF0YVsiZmlsZXMiXVtkYXRhVHlwZV1baWRdID0gaW5wdXQ7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSAieG1sdHYiOg0KICAgICAgICAgICAgY29uZmlybU1zZyA9ICJEZWxldGUgdGhpcyBYTUxUViBmaWxlPyI7DQogICAgICAgICAgICBzd2l0Y2ggKG9wdGlvbikgew0KICAgICAgICAgICAgICAgIC8vIFBvcHVwOiBTYXZlDQogICAgICAgICAgICAgICAgY2FzZSAwOg0KICAgICAgICAgICAgICAgICAgICBjbWQgPSAic2F2ZUZpbGVzWE1MVFYiOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICAvLyBQb3B1cDogVXBkYXRlDQogICAgICAgICAgICAgICAgY2FzZSAxOg0KICAgICAgICAgICAgICAgICAgICBjbWQgPSAidXBkYXRlRmlsZVhNTFRWIjsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBkYXRhWyJmaWxlcyJdID0ge307DQogICAgICAgICAgICBkYXRhWyJmaWxlcyJdW2RhdGFUeXBlXSA9IHt9Ow0KICAgICAgICAgICAgZGF0YVsiZmlsZXMiXVtkYXRhVHlwZV1baWRdID0gaW5wdXQ7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSAiZmlsdGVyIjoNCiAgICAgICAgICAgIGNvbmZpcm1Nc2cgPSAiRGVsZXRlIHRoaXMgZmlsdGVyPyI7DQogICAgICAgICAgICBjbWQgPSAic2F2ZUZpbHRlciI7DQogICAgICAgICAgICBkYXRhWyJmaWx0ZXIiXSA9IHt9Ow0KICAgICAgICAgICAgZGF0YVsiZmlsdGVyIl1baWRdID0gaW5wdXQ7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgIGNvbnNvbGUubG9nKGRhdGFUeXBlLCBpZCk7DQogICAgICAgICAgICByZXR1cm47DQogICAgfQ0KICAgIGlmIChyZW1vdmUgPT0gdHJ1ZSkgew0KICAgICAgICBpZiAoIWNvbmZpcm0oY29uZmlybU1zZykpIHsNCiAgICAgICAgICAgIHNob3dFbGVtZW50KCJwb3B1cCIsIGZhbHNlKTsNCiAgICAgICAgICAgIHJldHVybjsNCiAgICAgICAgfQ0KICAgIH0NCiAgICBjb25zb2xlLmxvZygiU0VORCBUTyBTRVJWRVIiKTsNCiAgICBjb25zb2xlLmxvZyhkYXRhKTsNCiAgICBsZXQgc2VydmVyID0gbmV3IFNlcnZlcihjbWQpOw0KICAgIHNlcnZlci5yZXF1ZXN0KGRhdGEpOw0KfQ0KZnVuY3Rpb24gZG9uZVBvcHVwRGF0YShkYXRhVHlwZSwgaWRzU3RyKSB7DQogICAgbGV0IGlkcyA9IGlkc1N0ci5zcGxpdCgnLCcpOw0KICAgIGxldCBkaXYgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicG9wdXAtY3VzdG9tIik7DQogICAgbGV0IGlucHV0cyA9IGRpdi5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCJjaGFuZ2VkIik7DQogICAgaWRzLmZvckVhY2goaWQgPT4gew0KICAgICAgICBsZXQgaW5wdXQ7DQogICAgICAgIGlucHV0ID0gU0VSVkVSWyJ4ZXBnIl1bImVwZ01hcHBpbmciXVtpZF07DQogICAgICAgIGNvbnNvbGUubG9nKGlucHV0KTsNCiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBpbnB1dHMubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgICAgIGxldCBuYW1lOw0KICAgICAgICAgICAgbGV0IHZhbHVlOw0KICAgICAgICAgICAgc3dpdGNoIChpbnB1dHNbaV0udGFnTmFtZSkgew0KICAgICAgICAgICAgICAgIGNhc2UgIklOUFVUIjoNCiAgICAgICAgICAgICAgICAgICAgc3dpdGNoIChpbnB1dHNbaV0udHlwZSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAiY2hlY2tib3giOg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWUgPSBpbnB1dHNbaV0ubmFtZTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IGlucHV0c1tpXS5jaGVja2VkOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlucHV0W25hbWVdID0gdmFsdWU7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgICAgICAgICBjYXNlICJ0ZXh0IjoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lID0gaW5wdXRzW2ldLm5hbWU7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSBpbnB1dHNbaV0udmFsdWU7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5wdXRbbmFtZV0gPSB2YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBjYXNlICJTRUxFQ1QiOg0KICAgICAgICAgICAgICAgICAgICBuYW1lID0gaW5wdXRzW2ldLm5hbWU7DQogICAgICAgICAgICAgICAgICAgIHZhbHVlID0gaW5wdXRzW2ldLnZhbHVlOw0KICAgICAgICAgICAgICAgICAgICBpbnB1dFtuYW1lXSA9IHZhbHVlOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIHN3aXRjaCAobmFtZSkgew0KICAgICAgICAgICAgICAgIGNhc2UgInR2Zy1sb2dvIjoNCiAgICAgICAgICAgICAgICAgICAgLy8oZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpLmNoaWxkTm9kZXNbMl0uZmlyc3RDaGlsZCBhcyBIVE1MRWxlbWVudCkuc2V0QXR0cmlidXRlKCJzcmMiLCB2YWx1ZSkNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAieC1uYW1lIjoNCiAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpLmNoaWxkTm9kZXNbM10uZmlyc3RDaGlsZC5pbm5lckhUTUwgPSB2YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAieC1jYXRlZ29yeSI6DQogICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5jaGlsZE5vZGVzWzNdLmZpcnN0Q2hpbGQuY2xhc3NOYW1lID0gdmFsdWU7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgIngtZ3JvdXAtdGl0bGUiOg0KICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkuY2hpbGROb2Rlc1s1XS5maXJzdENoaWxkLmlubmVySFRNTCA9IHZhbHVlOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBjYXNlICJ4LXhtbHR2LWZpbGUiOg0KICAgICAgICAgICAgICAgICAgICBpZiAodmFsdWUgIT0gInhUZVZlIER1bW15IiAmJiB2YWx1ZSAhPSAiLSIpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlID0gZ2V0VmFsdWVGcm9tUHJvdmlkZXJGaWxlKHZhbHVlLCAieG1sdHYiLCAibmFtZSIpOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIGlmICh2YWx1ZSA9PSAiLSIpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGlucHV0WyJ4LWFjdGl2ZSJdID0gZmFsc2U7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpLmNoaWxkTm9kZXNbNl0uZmlyc3RDaGlsZC5pbm5lckhUTUwgPSB2YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAieC1tYXBwaW5nIjoNCiAgICAgICAgICAgICAgICAgICAgaWYgKHZhbHVlID09ICItIikgew0KICAgICAgICAgICAgICAgICAgICAgICAgaW5wdXRbIngtYWN0aXZlIl0gPSBmYWxzZTsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkuY2hpbGROb2Rlc1s3XS5maXJzdENoaWxkLmlubmVySFRNTCA9IHZhbHVlOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBjYXNlICJ4LXRpbWVzaGlmdCI6DQogICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5jaGlsZE5vZGVzWzhdLmZpcnN0Q2hpbGQuaW5uZXJIVE1MID0gdmFsdWU7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICB9DQogICAgICAgICAgICBjcmVhdGVTZWFyY2hPYmooKTsNCiAgICAgICAgICAgIHNlYXJjaEluTWFwcGluZygpOw0KICAgICAgICB9DQogICAgICAgIGlmIChpbnB1dFsieC1hY3RpdmUiXSA9PSBmYWxzZSkgew0KICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpLmNsYXNzTmFtZSA9ICJub3RBY3RpdmVFUEciOw0KICAgICAgICB9DQogICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpLmNsYXNzTmFtZSA9ICJhY3RpdmVFUEciOw0KICAgICAgICB9DQogICAgICAgIGNvbnNvbGUubG9nKGlucHV0WyJ0dmctbG9nbyJdKTsNCiAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpLmNoaWxkTm9kZXNbMl0uZmlyc3RDaGlsZC5zZXRBdHRyaWJ1dGUoInNyYyIsIGlucHV0WyJ0dmctbG9nbyJdKTsNCiAgICB9KTsNCiAgICBzaG93RWxlbWVudCgicG9wdXAiLCBmYWxzZSk7DQogICAgcmV0dXJuOw0KfQ0KZnVuY3Rpb24gc2hvd1ByZXZpZXcoZWxlbWVudCkgew0KICAgIGxldCBkaXYgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibXlTdHJlYW1zQm94Iik7DQogICAgc3dpdGNoIChlbGVtZW50KSB7DQogICAgICAgIGNhc2UgZmFsc2U6DQogICAgICAgICAgICBkaXYuY2xhc3NOYW1lID0gIm5vdFZpc2libGUiOw0KICAgICAgICAgICAgcmV0dXJuOw0KICAgIH0NCiAgICBsZXQgc3RyZWFtcyA9IFsiYWN0aXZlU3RyZWFtcyIsICJpbmFjdGl2ZVN0cmVhbXMiXTsNCiAgICBzdHJlYW1zLmZvckVhY2gocHJldmlldyA9PiB7DQogICAgICAgIGxldCB0YWJsZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHByZXZpZXcpOw0KICAgICAgICB0YWJsZS5pbm5lckhUTUwgPSAiIjsNCiAgICAgICAgbGV0IG9iaiA9IFNFUlZFUlsiZGF0YSJdWyJTdHJlYW1QcmV2aWV3VUkiXVtwcmV2aWV3XTsNCiAgICAgICAgb2JqLmZvckVhY2goY2hhbm5lbCA9PiB7DQogICAgICAgICAgICBsZXQgdHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJUUiIpOw0KICAgICAgICAgICAgbGV0IHRkS2V5ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgIGxldCB0ZFZhbCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICB0ZEtleS5jbGFzc05hbWUgPSAidGRLZXkiOw0KICAgICAgICAgICAgdGRWYWwuY2xhc3NOYW1lID0gInRkVmFsIjsNCiAgICAgICAgICAgIHN3aXRjaCAocHJldmlldykgew0KICAgICAgICAgICAgICAgIGNhc2UgImFjdGl2ZVN0cmVhbXMiOg0KICAgICAgICAgICAgICAgICAgICB0ZEtleS5pbm5lclRleHQgPSAiQ2hhbm5lbDogKCspIjsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAiaW5hY3RpdmVTdHJlYW1zIjoNCiAgICAgICAgICAgICAgICAgICAgdGRLZXkuaW5uZXJUZXh0ID0gIkNoYW5uZWw6ICgtKSI7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgdGRWYWwuaW5uZXJUZXh0ID0gY2hhbm5lbDsNCiAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKHRkS2V5KTsNCiAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKHRkVmFsKTsNCiAgICAgICAgICAgIHRhYmxlLmFwcGVuZENoaWxkKHRyKTsNCiAgICAgICAgfSk7DQogICAgfSk7DQogICAgc2hvd0VsZW1lbnQoImxvYWRpbmciLCBmYWxzZSk7DQogICAgZGl2LmNsYXNzTmFtZSA9ICJ2aXNpYmxlIjsNCiAgICByZXR1cm47DQp9DQo=" + webUI["html/js/menu_ts.js"] = "Y2xhc3MgTWFpbk1lbnUgew0KICAgIGNvbnN0cnVjdG9yKCkgew0KICAgICAgICB0aGlzLkRvY3VtZW50SUQgPSAibWFpbi1tZW51IjsNCiAgICAgICAgdGhpcy5IVE1MVGFnID0gIkxJIjsNCiAgICAgICAgdGhpcy5JbWFnZVBhdGggPSAiaW1nLyI7DQogICAgfQ0KICAgIGNyZWF0ZUlNRyhzcmMpIHsNCiAgICAgICAgbGV0IGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJJTUciKTsNCiAgICAgICAgZWxlbWVudC5zZXRBdHRyaWJ1dGUoInNyYyIsIHRoaXMuSW1hZ2VQYXRoICsgc3JjKTsNCiAgICAgICAgcmV0dXJuIGVsZW1lbnQ7DQogICAgfQ0KICAgIGNyZWF0ZVZhbHVlKHZhbHVlKSB7DQogICAgICAgIGxldCBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiUCIpOw0KICAgICAgICBlbGVtZW50LmlubmVySFRNTCA9IHZhbHVlOw0KICAgICAgICByZXR1cm4gZWxlbWVudDsNCiAgICB9DQp9DQpjbGFzcyBNYWluTWVudUl0ZW0gZXh0ZW5kcyBNYWluTWVudSB7DQogICAgY29uc3RydWN0b3IobWVudUtleSwgdmFsdWUsIGltYWdlLCBoZWFkbGluZSkgew0KICAgICAgICBzdXBlcigpOw0KICAgICAgICB0aGlzLm1lbnVLZXkgPSBtZW51S2V5Ow0KICAgICAgICB0aGlzLnZhbHVlID0gdmFsdWU7DQogICAgICAgIHRoaXMuaW1nU3JjID0gaW1hZ2U7DQogICAgICAgIHRoaXMuaGVhZGxpbmUgPSBoZWFkbGluZTsNCiAgICB9DQogICAgY3JlYXRlSXRlbSgpIHsNCiAgICAgICAgbGV0IGl0ZW0gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJMSSIpOw0KICAgICAgICBpdGVtLnNldEF0dHJpYnV0ZSgib25jbGljayIsICJqYXZhc2NyaXB0OiBvcGVuVGhpc01lbnUodGhpcykiKTsNCiAgICAgICAgaXRlbS5zZXRBdHRyaWJ1dGUoImlkIiwgdGhpcy5pZCk7DQogICAgICAgIGxldCBpbWcgPSB0aGlzLmNyZWF0ZUlNRyh0aGlzLmltZ1NyYyk7DQogICAgICAgIGxldCB2YWx1ZSA9IHRoaXMuY3JlYXRlVmFsdWUodGhpcy52YWx1ZSk7DQogICAgICAgIGl0ZW0uYXBwZW5kQ2hpbGQoaW1nKTsNCiAgICAgICAgaXRlbS5hcHBlbmRDaGlsZCh2YWx1ZSk7DQogICAgICAgIGxldCBkb2MgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCh0aGlzLkRvY3VtZW50SUQpOw0KICAgICAgICBkb2MuYXBwZW5kQ2hpbGQoaXRlbSk7DQogICAgICAgIHN3aXRjaCAodGhpcy5tZW51S2V5KSB7DQogICAgICAgICAgICBjYXNlICJwbGF5bGlzdCI6DQogICAgICAgICAgICAgICAgdGhpcy50YWJsZUhlYWRlciA9IFsie3sucGxheWxpc3QudGFibGUucGxheWxpc3R9fSIsICJ7ey5wbGF5bGlzdC50YWJsZS50dW5lcn19IiwgInt7LnBsYXlsaXN0LnRhYmxlLmxhc3RVcGRhdGV9fSIsICJ7ey5wbGF5bGlzdC50YWJsZS5hdmFpbGFiaWxpdHl9fSAlIiwgInt7LnBsYXlsaXN0LnRhYmxlLnR5cGV9fSIsICJ7ey5wbGF5bGlzdC50YWJsZS5zdHJlYW1zfX0iLCAie3sucGxheWxpc3QudGFibGUuZ3JvdXBUaXRsZX19ICUiLCAie3sucGxheWxpc3QudGFibGUudHZnSUR9fSAlIiwgInt7LnBsYXlsaXN0LnRhYmxlLnVuaXF1ZUlEfX0gJSJdOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAieG1sdHYiOg0KICAgICAgICAgICAgICAgIHRoaXMudGFibGVIZWFkZXIgPSBbInt7LnhtbHR2LnRhYmxlLmd1aWRlfX0iLCAie3sueG1sdHYudGFibGUubGFzdFVwZGF0ZX19IiwgInt7LnhtbHR2LnRhYmxlLmF2YWlsYWJpbGl0eX19ICUiLCAie3sueG1sdHYudGFibGUuY2hhbm5lbHN9fSIsICJ7ey54bWx0di50YWJsZS5wcm9ncmFtc319Il07DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJmaWx0ZXIiOg0KICAgICAgICAgICAgICAgIHRoaXMudGFibGVIZWFkZXIgPSBbInt7LmZpbHRlci50YWJsZS5zdGFydGluZ0NoYW5uZWx9fSIsICJ7ey5maWx0ZXIudGFibGUubmFtZX19IiwgInt7LmZpbHRlci50YWJsZS50eXBlfX0iLCAie3suZmlsdGVyLnRhYmxlLmZpbHRlcn19Il07DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ1c2VycyI6DQogICAgICAgICAgICAgICAgdGhpcy50YWJsZUhlYWRlciA9IFsie3sudXNlcnMudGFibGUudXNlcm5hbWV9fSIsICJ7ey51c2Vycy50YWJsZS5wYXNzd29yZH19IiwgInt7LnVzZXJzLnRhYmxlLndlYn19IiwgInt7LnVzZXJzLnRhYmxlLnBtc319IiwgInt7LnVzZXJzLnRhYmxlLm0zdX19IiwgInt7LnVzZXJzLnRhYmxlLnhtbH19IiwgInt7LnVzZXJzLnRhYmxlLmFwaX19Il07DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJtYXBwaW5nIjoNCiAgICAgICAgICAgICAgICB0aGlzLnRhYmxlSGVhZGVyID0gWyJCVUxLIiwgInt7Lm1hcHBpbmcudGFibGUuY2hOb319IiwgInt7Lm1hcHBpbmcudGFibGUubG9nb319IiwgInt7Lm1hcHBpbmcudGFibGUuY2hhbm5lbE5hbWV9fSIsICJ7ey5tYXBwaW5nLnRhYmxlLnBsYXlsaXN0fX0iLCAie3subWFwcGluZy50YWJsZS5ncm91cFRpdGxlfX0iLCAie3subWFwcGluZy50YWJsZS54bWx0dkZpbGV9fSIsICJ7ey5tYXBwaW5nLnRhYmxlLnhtbHR2SUR9fSIsICJ7ey5tYXBwaW5nLnRhYmxlLnRpbWVzaGlmdH19Il07DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIH0NCiAgICB9DQp9DQpjbGFzcyBDb250ZW50IHsNCiAgICBjb25zdHJ1Y3RvcigpIHsNCiAgICAgICAgdGhpcy5Eb2N1bWVudElEID0gImNvbnRlbnQiOw0KICAgICAgICB0aGlzLlRhYmxlSUQgPSAiY29udGVudF90YWJsZSI7DQogICAgICAgIHRoaXMuaGVhZGVyQ2xhc3MgPSAiY29udGVudF90YWJsZV9oZWFkZXIiOw0KICAgICAgICB0aGlzLmludGVyYWN0aW9uSUQgPSAiY29udGVudC1pbnRlcmFjdGlvbiI7DQogICAgfQ0KICAgIGNyZWF0ZUhlYWRsaW5lKHZhbHVlKSB7DQogICAgICAgIGxldCBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiSDMiKTsNCiAgICAgICAgZWxlbWVudC5pbm5lckhUTUwgPSB2YWx1ZTsNCiAgICAgICAgcmV0dXJuIGVsZW1lbnQ7DQogICAgfQ0KICAgIGNyZWF0ZUhSKCkgew0KICAgICAgICByZXR1cm4gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiSFIiKTsNCiAgICB9DQogICAgY3JlYXRlSW50ZXJhY3Rpb24oKSB7DQogICAgICAgIGxldCBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiRElWIik7DQogICAgICAgIGVsZW1lbnQuc2V0QXR0cmlidXRlKCJpZCIsIHRoaXMuaW50ZXJhY3Rpb25JRCk7DQogICAgICAgIHJldHVybiBlbGVtZW50Ow0KICAgIH0NCiAgICBjcmVhdGVESVYoKSB7DQogICAgICAgIGxldCBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiRElWIik7DQogICAgICAgIGVsZW1lbnQuaWQgPSB0aGlzLkRpdklEOw0KICAgICAgICByZXR1cm4gZWxlbWVudDsNCiAgICB9DQogICAgY3JlYXRlVEFCTEUoKSB7DQogICAgICAgIGxldCBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEFCTEUiKTsNCiAgICAgICAgZWxlbWVudC5pZCA9IHRoaXMuVGFibGVJRDsNCiAgICAgICAgcmV0dXJuIGVsZW1lbnQ7DQogICAgfQ0KICAgIGNyZWF0ZVRhYmxlUm93KCkgew0KICAgICAgICBsZXQgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlRSIik7DQogICAgICAgIGVsZW1lbnQuY2xhc3NOYW1lID0gdGhpcy5oZWFkZXJDbGFzczsNCiAgICAgICAgcmV0dXJuIGVsZW1lbnQ7DQogICAgfQ0KICAgIGNyZWF0ZVRhYmxlQ29udGVudChtZW51S2V5KSB7DQogICAgICAgIGxldCBkYXRhID0ge307DQogICAgICAgIGxldCByb3dzID0gW107DQogICAgICAgIGxldCBmaWxlVHlwZXMgPSBbXTsNCiAgICAgICAgc3dpdGNoIChtZW51S2V5KSB7DQogICAgICAgICAgICBjYXNlICJwbGF5bGlzdCI6DQogICAgICAgICAgICAgICAgZmlsZVR5cGVzID0gWyJtM3UiLCAiaGRociJdOw0KICAgICAgICAgICAgICAgIGZpbGVUeXBlcy5mb3JFYWNoKGZpbGVUeXBlID0+IHsNCiAgICAgICAgICAgICAgICAgICAgZGF0YSA9IFNFUlZFUlsic2V0dGluZ3MiXVsiZmlsZXMiXVtmaWxlVHlwZV07DQogICAgICAgICAgICAgICAgICAgIHZhciBrZXlzID0gZ2V0T3duT2JqUHJvcHMoZGF0YSk7DQogICAgICAgICAgICAgICAgICAgIGtleXMuZm9yRWFjaChrZXkgPT4gew0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVFIiKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmlkID0ga2V5Ow0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgiJyArIGZpbGVUeXBlICsgJyIsIHRoaXMpJyk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsibmFtZSJdOw0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChTRVJWRVJbInNldHRpbmdzIl1bImJ1ZmZlciJdICE9ICItIikgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bInR1bmVyIl07DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gIi0iOw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bImxhc3QudXBkYXRlIl07DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsicHJvdmlkZXIuYXZhaWxhYmlsaXR5Il07DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsidHlwZSJdLnRvVXBwZXJDYXNlKCk7DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsiY29tcGF0aWJpbGl0eSJdWyJzdHJlYW1zIl07DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsiY29tcGF0aWJpbGl0eSJdWyJncm91cC50aXRsZSJdOw0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bImNvbXBhdGliaWxpdHkiXVsidHZnLmlkIl07DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsiY29tcGF0aWJpbGl0eSJdWyJzdHJlYW0uaWQiXTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHJvd3MucHVzaCh0cik7DQogICAgICAgICAgICAgICAgICAgIH0pOw0KICAgICAgICAgICAgICAgIH0pOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiZmlsdGVyIjoNCiAgICAgICAgICAgICAgICBkZWxldGUgU0VSVkVSWyJzZXR0aW5ncyJdWyJmaWx0ZXIiXVstMV07DQogICAgICAgICAgICAgICAgZGF0YSA9IFNFUlZFUlsic2V0dGluZ3MiXVsiZmlsdGVyIl07DQogICAgICAgICAgICAgICAgdmFyIGtleXMgPSBnZXRPd25PYmpQcm9wcyhkYXRhKTsNCiAgICAgICAgICAgICAgICBrZXlzLmZvckVhY2goa2V5ID0+IHsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVFIiKTsNCiAgICAgICAgICAgICAgICAgICAgdHIuaWQgPSBrZXk7DQogICAgICAgICAgICAgICAgICAgIHRyLnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoIicgKyBkYXRhW2tleV1bInR5cGUiXSArICciLCB0aGlzKScpOw0KICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsic3RhcnRpbmdDaGFubmVsIl07DQogICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bIm5hbWUiXTsNCiAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgc3dpdGNoIChkYXRhW2tleV1bInR5cGUiXSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAiY3VzdG9tLWZpbHRlciI6DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9ICJ7ey5maWx0ZXIuY3VzdG9tfX0iOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAiZ3JvdXAtdGl0bGUiOg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSAie3suZmlsdGVyLmdyb3VwfX0iOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJmaWx0ZXIiXTsNCiAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICByb3dzLnB1c2godHIpOw0KICAgICAgICAgICAgICAgIH0pOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAieG1sdHYiOg0KICAgICAgICAgICAgICAgIGZpbGVUeXBlcyA9IG5ldyBBcnJheSgieG1sdHYiKTsNCiAgICAgICAgICAgICAgICBmaWxlVHlwZXMuZm9yRWFjaChmaWxlVHlwZSA9PiB7DQogICAgICAgICAgICAgICAgICAgIGRhdGEgPSBTRVJWRVJbInNldHRpbmdzIl1bImZpbGVzIl1bZmlsZVR5cGVdOw0KICAgICAgICAgICAgICAgICAgICB2YXIga2V5cyA9IGdldE93bk9ialByb3BzKGRhdGEpOw0KICAgICAgICAgICAgICAgICAgICBrZXlzLmZvckVhY2goa2V5ID0+IHsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciB0ciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlRSIik7DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5pZCA9IGtleTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoIicgKyBmaWxlVHlwZSArICciLCB0aGlzKScpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bIm5hbWUiXTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJsYXN0LnVwZGF0ZSJdOw0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bInByb3ZpZGVyLmF2YWlsYWJpbGl0eSJdOw0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bImNvbXBhdGliaWxpdHkiXVsieG1sdHYuY2hhbm5lbHMiXTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJjb21wYXRpYmlsaXR5Il1bInhtbHR2LnByb2dyYW1zIl07DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICByb3dzLnB1c2godHIpOw0KICAgICAgICAgICAgICAgICAgICB9KTsNCiAgICAgICAgICAgICAgICB9KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInVzZXJzIjoNCiAgICAgICAgICAgICAgICBmaWxlVHlwZXMgPSBuZXcgQXJyYXkoInVzZXJzIik7DQogICAgICAgICAgICAgICAgZmlsZVR5cGVzLmZvckVhY2goZmlsZVR5cGUgPT4gew0KICAgICAgICAgICAgICAgICAgICBkYXRhID0gU0VSVkVSW2ZpbGVUeXBlXTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGtleXMgPSBnZXRPd25PYmpQcm9wcyhkYXRhKTsNCiAgICAgICAgICAgICAgICAgICAga2V5cy5mb3JFYWNoKGtleSA9PiB7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgdHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJUUiIpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuaWQgPSBrZXk7DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCInICsgZmlsZVR5cGUgKyAnIiwgdGhpcyknKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJkYXRhIl1bInVzZXJuYW1lIl07DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9ICIqKioqKioiOw0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChkYXRhW2tleV1bImRhdGEiXVsiYXV0aGVudGljYXRpb24ud2ViIl0gPT0gdHJ1ZSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSAi4pyTIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSAiLSI7DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGRhdGFba2V5XVsiZGF0YSJdWyJhdXRoZW50aWNhdGlvbi5wbXMiXSA9PSB0cnVlKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9ICLinJMiOw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9ICItIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgICAgICBpZiAoZGF0YVtrZXldWyJkYXRhIl1bImF1dGhlbnRpY2F0aW9uLm0zdSJdID09IHRydWUpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gIuKckyI7DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gIi0iOw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChkYXRhW2tleV1bImRhdGEiXVsiYXV0aGVudGljYXRpb24ueG1sIl0gPT0gdHJ1ZSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSAi4pyTIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSAiLSI7DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGRhdGFba2V5XVsiZGF0YSJdWyJhdXRoZW50aWNhdGlvbi5hcGkiXSA9PSB0cnVlKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9ICLinJMiOw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9ICItIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHJvd3MucHVzaCh0cik7DQogICAgICAgICAgICAgICAgICAgIH0pOw0KICAgICAgICAgICAgICAgIH0pOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAibWFwcGluZyI6DQogICAgICAgICAgICAgICAgQlVMS19FRElUID0gZmFsc2U7DQogICAgICAgICAgICAgICAgY3JlYXRlU2VhcmNoT2JqKCk7DQogICAgICAgICAgICAgICAgY2hlY2tVbmRvKCJlcGdNYXBwaW5nIik7DQogICAgICAgICAgICAgICAgZGF0YSA9IFNFUlZFUlsieGVwZyJdWyJlcGdNYXBwaW5nIl07DQogICAgICAgICAgICAgICAgdmFyIGtleXMgPSBnZXRPd25PYmpQcm9wcyhkYXRhKTsNCiAgICAgICAgICAgICAgICBrZXlzLmZvckVhY2goa2V5ID0+IHsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVFIiKTsNCiAgICAgICAgICAgICAgICAgICAgdHIuaWQgPSBrZXk7DQogICAgICAgICAgICAgICAgICAgIHN3aXRjaCAoZGF0YVtrZXldWyJ4LWFjdGl2ZSJdKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBjYXNlIHRydWU6DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgdHIuY2xhc3NOYW1lID0gImFjdGl2ZUVQRyI7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgICAgICAgICBjYXNlIGZhbHNlOg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyLmNsYXNzTmFtZSA9ICJub3RBY3RpdmVFUEciOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIC8vIEJ1bGsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiQlVMSyI7DQogICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBmYWxzZTsNCiAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAvLyBDaGFubmVsIG51bWJlcg0KICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJJTlBVVENIQU5ORUwiOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJ4LWNoYW5uZWxJRCJdOw0KICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgIC8vIExvZ28NCiAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiSU1HIjsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5pbWFnZVVSTCA9IGRhdGFba2V5XVsidHZnLWxvZ28iXTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHRkID0gY2VsbC5jcmVhdGVDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgIHRkLnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoIm1hcHBpbmciLCB0aGlzKScpOw0KICAgICAgICAgICAgICAgICAgICB0ZC5pZCA9IGtleTsNCiAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQodGQpOw0KICAgICAgICAgICAgICAgICAgICAvLyBDaGFubmVsIG5hbWUNCiAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2xhc3NOYW1lID0gZGF0YVtrZXldWyJ4LWNhdGVnb3J5Il07DQogICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bIngtbmFtZSJdOw0KICAgICAgICAgICAgICAgICAgICB2YXIgdGQgPSBjZWxsLmNyZWF0ZUNlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgdGQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgibWFwcGluZyIsIHRoaXMpJyk7DQogICAgICAgICAgICAgICAgICAgIHRkLmlkID0ga2V5Ow0KICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZCh0ZCk7DQogICAgICAgICAgICAgICAgICAgIC8vIFBsYXlsaXN0DQogICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZ2V0VmFsdWVGcm9tUHJvdmlkZXJGaWxlKGRhdGFba2V5XVsiX2ZpbGUubTN1LmlkIl0sICJtM3UiLCAibmFtZSIpOw0KICAgICAgICAgICAgICAgICAgICB2YXIgdGQgPSBjZWxsLmNyZWF0ZUNlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgdGQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgibWFwcGluZyIsIHRoaXMpJyk7DQogICAgICAgICAgICAgICAgICAgIHRkLmlkID0ga2V5Ow0KICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZCh0ZCk7DQogICAgICAgICAgICAgICAgICAgIC8vIEdyb3VwIChncm91cC10aXRsZSkNCiAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bIngtZ3JvdXAtdGl0bGUiXTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHRkID0gY2VsbC5jcmVhdGVDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgIHRkLnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoIm1hcHBpbmciLCB0aGlzKScpOw0KICAgICAgICAgICAgICAgICAgICB0ZC5pZCA9IGtleTsNCiAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQodGQpOw0KICAgICAgICAgICAgICAgICAgICAvLyBYTUxUViBmaWxlDQogICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICBpZiAoZGF0YVtrZXldWyJ4LXhtbHR2LWZpbGUiXSAhPSAiLSIpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBnZXRWYWx1ZUZyb21Qcm92aWRlckZpbGUoZGF0YVtrZXldWyJ4LXhtbHR2LWZpbGUiXSwgInhtbHR2IiwgIm5hbWUiKTsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bIngteG1sdHYtZmlsZSJdOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIHZhciB0ZCA9IGNlbGwuY3JlYXRlQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICB0ZC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJtYXBwaW5nIiwgdGhpcyknKTsNCiAgICAgICAgICAgICAgICAgICAgdGQuaWQgPSBrZXk7DQogICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKHRkKTsNCiAgICAgICAgICAgICAgICAgICAgLy8gWE1MVFYgQ2hhbm5lbA0KICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHZhbHVlID0gZGF0YVtrZXldWyJ4LW1hcHBpbmciXTsNCiAgICAgICAgICAgICAgICAgICAgaWYgKHZhbHVlLmxlbmd0aCA+IDIwKSB7DQogICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IGRhdGFba2V5XVsieC1tYXBwaW5nIl0uc3Vic3RyaW5nKDAsIDIwKSArICIuLi4iOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSB2YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHRkID0gY2VsbC5jcmVhdGVDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgIHRkLnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoIm1hcHBpbmciLCB0aGlzKScpOw0KICAgICAgICAgICAgICAgICAgICB0ZC5pZCA9IGtleTsNCiAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQodGQpOw0KICAgICAgICAgICAgICAgICAgICAvLyBUaW1lU2hpZnQNCiAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bIngtdGltZXNoaWZ0Il07DQogICAgICAgICAgICAgICAgICAgIHZhciB0ZCA9IGNlbGwuY3JlYXRlQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICB0ZC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJtYXBwaW5nIiwgdGhpcyknKTsNCiAgICAgICAgICAgICAgICAgICAgdGQuaWQgPSBrZXk7DQogICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKHRkKTsNCiAgICAgICAgICAgICAgICAgICAgcm93cy5wdXNoKHRyKTsNCiAgICAgICAgICAgICAgICB9KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInNldHRpbmdzIjoNCiAgICAgICAgICAgICAgICBhbGVydCgpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgfQ0KICAgICAgICByZXR1cm4gcm93czsNCiAgICB9DQp9DQpjbGFzcyBDZWxsIHsNCiAgICBjcmVhdGVDZWxsKCkgew0KICAgICAgICBsZXQgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICBpZiAodGhpcy5jaGlsZCA9PSB0cnVlKSB7DQogICAgICAgICAgICB2YXIgZWxlbWVudDsNCiAgICAgICAgICAgIHN3aXRjaCAodGhpcy5jaGlsZFR5cGUpIHsNCiAgICAgICAgICAgICAgICBjYXNlICJQIjoNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQodGhpcy5jaGlsZFR5cGUpOw0KICAgICAgICAgICAgICAgICAgICBlbGVtZW50LmlubmVySFRNTCA9IHRoaXMudmFsdWU7DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQuY2xhc3NOYW1lID0gdGhpcy5jbGFzc05hbWU7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgIklOUFVUIjoNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQodGhpcy5jaGlsZFR5cGUpOw0KICAgICAgICAgICAgICAgICAgICBlbGVtZW50LnZhbHVlID0gdGhpcy52YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC50eXBlID0gInRleHQiOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBjYXNlICJJTlBVVENIQU5ORUwiOg0KICAgICAgICAgICAgICAgICAgICBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiSU5QVVQiKTsNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdnNjcmlwdDogY2hhbmdlQ2hhbm5lbE51bWJlcih0aGlzKSIpOw0KICAgICAgICAgICAgICAgICAgICBlbGVtZW50LnZhbHVlID0gdGhpcy52YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC50eXBlID0gInRleHQiOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBjYXNlICJCVUxLIjoNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIklOUFVUIik7DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQuY2hlY2tlZCA9IHRoaXMudmFsdWU7DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQudHlwZSA9ICJjaGVja2JveCI7DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQuY2xhc3NOYW1lID0gImJ1bGsgaGlkZUJ1bGsiOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBjYXNlICJCVUxLX0hFQUQiOg0KICAgICAgICAgICAgICAgICAgICBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiSU5QVVQiKTsNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC5jaGVja2VkID0gdGhpcy52YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC50eXBlID0gImNoZWNrYm94IjsNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC5jbGFzc05hbWUgPSAiYnVsayBoaWRlQnVsayI7DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgImphdmFzY3JpcHQ6IHNlbGVjdEFsbENoYW5uZWxzKCkiKTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAiSU1HIjoNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQodGhpcy5jaGlsZFR5cGUpOw0KICAgICAgICAgICAgICAgICAgICBlbGVtZW50LnNldEF0dHJpYnV0ZSgic3JjIiwgdGhpcy5pbWFnZVVSTCk7DQogICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLmltYWdlVVJMICE9ICIiKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBlbGVtZW50LnNldEF0dHJpYnV0ZSgib25lcnJvciIsICJqYXZhc2NyaXB0OiB0aGlzLm9uZXJyb3I9bnVsbDt0aGlzLnNyYz0nJyIpOw0KICAgICAgICAgICAgICAgICAgICAgICAgLy9vbmVycm9yPSJ0aGlzLm9uZXJyb3I9bnVsbDt0aGlzLnNyYz0nbWlzc2luZy5naWYnOyINCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgdGQuYXBwZW5kQ2hpbGQoZWxlbWVudCk7DQogICAgICAgIH0NCiAgICAgICAgZWxzZSB7DQogICAgICAgICAgICB0ZC5pbm5lckhUTUwgPSB0aGlzLnZhbHVlOw0KICAgICAgICB9DQogICAgICAgIGlmICh0aGlzLm9uY2xpY2sgPT0gdHJ1ZSkgew0KICAgICAgICAgICAgdGQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgdGhpcy5vbmNsaWNrRnVuY3Rpb24pOw0KICAgICAgICAgICAgdGQuY2xhc3NOYW1lID0gInBvaW50ZXIiOw0KICAgICAgICB9DQogICAgICAgIGlmICh0aGlzLnRkQ2xhc3NOYW1lICE9IHVuZGVmaW5lZCkgew0KICAgICAgICAgICAgdGQuY2xhc3NOYW1lID0gdGhpcy50ZENsYXNzTmFtZTsNCiAgICAgICAgfQ0KICAgICAgICByZXR1cm4gdGQ7DQogICAgfQ0KfQ0KY2xhc3MgU2hvd0NvbnRlbnQgZXh0ZW5kcyBDb250ZW50IHsNCiAgICBjb25zdHJ1Y3RvcihtZW51SUQpIHsNCiAgICAgICAgc3VwZXIoKTsNCiAgICAgICAgdGhpcy5tZW51SUQgPSBtZW51SUQ7DQogICAgfQ0KICAgIGNyZWF0ZUlucHV0KHR5cGUsIG5hbWUsIHZhbHVlKSB7DQogICAgICAgIGxldCBpbnB1dCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIklOUFVUIik7DQogICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgidHlwZSIsIHR5cGUpOw0KICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm5hbWUiLCBuYW1lKTsNCiAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJ2YWx1ZSIsIHZhbHVlKTsNCiAgICAgICAgcmV0dXJuIGlucHV0Ow0KICAgIH0NCiAgICBzaG93KCkgew0KICAgICAgICBDT0xVTU5fVE9fU09SVCA9IC0xOw0KICAgICAgICAvLyBEZWxldGUgb2xkIGNvbnRlbnQNCiAgICAgICAgbGV0IGRvYyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHRoaXMuRG9jdW1lbnRJRCk7DQogICAgICAgIGRvYy5pbm5lckhUTUwgPSAiIjsNCiAgICAgICAgc2hvd1ByZXZpZXcoZmFsc2UpOw0KICAgICAgICAvLyBIZWFkbGluZQ0KICAgICAgICBsZXQgaGVhZGxpbmUgPSBtZW51SXRlbXNbdGhpcy5tZW51SURdLmhlYWRsaW5lOw0KICAgICAgICBsZXQgbWVudUtleSA9IG1lbnVJdGVtc1t0aGlzLm1lbnVJRF0ubWVudUtleTsNCiAgICAgICAgbGV0IGggPSB0aGlzLmNyZWF0ZUhlYWRsaW5lKGhlYWRsaW5lKTsNCiAgICAgICAgZG9jLmFwcGVuZENoaWxkKGgpOw0KICAgICAgICBsZXQgaHIgPSB0aGlzLmNyZWF0ZUhSKCk7DQogICAgICAgIGRvYy5hcHBlbmRDaGlsZChocik7DQogICAgICAgIC8vIEludGVyYWN0aW9uDQogICAgICAgIGxldCBkaXYgPSB0aGlzLmNyZWF0ZUludGVyYWN0aW9uKCk7DQogICAgICAgIGRvYy5hcHBlbmRDaGlsZChkaXYpOw0KICAgICAgICBsZXQgaW50ZXJhY3Rpb24gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCh0aGlzLmludGVyYWN0aW9uSUQpOw0KICAgICAgICBzd2l0Y2ggKG1lbnVLZXkpIHsNCiAgICAgICAgICAgIGNhc2UgInBsYXlsaXN0IjoNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSB0aGlzLmNyZWF0ZUlucHV0KCJidXR0b24iLCBtZW51S2V5LCAie3suYnV0dG9uLm5ld319Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJpZCIsICItIik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgicGxheWxpc3QiKScpOw0KICAgICAgICAgICAgICAgIGludGVyYWN0aW9uLmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImZpbHRlciI6DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gdGhpcy5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgbWVudUtleSwgInt7LmJ1dHRvbi5uZXd9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgiaWQiLCAtMSk7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgiZmlsdGVyIiwgdGhpcyknKTsNCiAgICAgICAgICAgICAgICBpbnRlcmFjdGlvbi5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ4bWx0diI6DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gdGhpcy5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgbWVudUtleSwgInt7LmJ1dHRvbi5uZXd9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgiaWQiLCAieG1sdHYiKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJ4bWx0diIpJyk7DQogICAgICAgICAgICAgICAgaW50ZXJhY3Rpb24uYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAidXNlcnMiOg0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IHRoaXMuY3JlYXRlSW5wdXQoImJ1dHRvbiIsIG1lbnVLZXksICJ7ey5idXR0b24ubmV3fX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoImlkIiwgInVzZXJzIik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgidXNlcnMiKScpOw0KICAgICAgICAgICAgICAgIGludGVyYWN0aW9uLmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgIm1hcHBpbmciOg0KICAgICAgICAgICAgICAgIHNob3dFbGVtZW50KCJsb2FkaW5nIiwgdHJ1ZSk7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gdGhpcy5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgbWVudUtleSwgInt7LmJ1dHRvbi5zYXZlfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogc2F2ZVBvcHVwRGF0YSgibWFwcGluZyIsICIiLCAiIiknKTsNCiAgICAgICAgICAgICAgICBpbnRlcmFjdGlvbi5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gdGhpcy5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgbWVudUtleSwgInt7LmJ1dHRvbi5idWxrRWRpdH19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IGJ1bGtFZGl0KCknKTsNCiAgICAgICAgICAgICAgICBpbnRlcmFjdGlvbi5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gdGhpcy5jcmVhdGVJbnB1dCgic2VhcmNoIiwgInNlYXJjaCIsICIiKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoImlkIiwgInNlYXJjaE1hcHBpbmciKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LmJ1dHRvbi5zZWFyY2h9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LmNsYXNzTmFtZSA9ICJzZWFyY2giOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAnamF2YXNjcmlwdDogc2VhcmNoSW5NYXBwaW5nKCknKTsNCiAgICAgICAgICAgICAgICBpbnRlcmFjdGlvbi5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJzZXR0aW5ncyI6DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gdGhpcy5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgbWVudUtleSwgInt7LmJ1dHRvbi5zYXZlfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogc2F2ZVNldHRpbmdzKCk7Jyk7DQogICAgICAgICAgICAgICAgaW50ZXJhY3Rpb24uYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IHRoaXMuY3JlYXRlSW5wdXQoImJ1dHRvbiIsIG1lbnVLZXksICJ7ey5idXR0b24uYmFja3VwfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogYmFja3VwKCk7Jyk7DQogICAgICAgICAgICAgICAgaW50ZXJhY3Rpb24uYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IHRoaXMuY3JlYXRlSW5wdXQoImJ1dHRvbiIsIG1lbnVLZXksICJ7ey5idXR0b24ucmVzdG9yZX19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IHJlc3RvcmUoKTsnKTsNCiAgICAgICAgICAgICAgICBpbnRlcmFjdGlvbi5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgdmFyIHdyYXBwZXIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJESVYiKTsNCiAgICAgICAgICAgICAgICB3cmFwcGVyLnNldEF0dHJpYnV0ZSgiaWQiLCAiYm94LXdyYXBwZXIiKTsNCiAgICAgICAgICAgICAgICBkb2MuYXBwZW5kQ2hpbGQod3JhcHBlcik7DQogICAgICAgICAgICAgICAgdGhpcy5EaXZJRCA9ICJjb250ZW50X3NldHRpbmdzIjsNCiAgICAgICAgICAgICAgICB2YXIgc2V0dGluZ3MgPSB0aGlzLmNyZWF0ZURJVigpOw0KICAgICAgICAgICAgICAgIHdyYXBwZXIuYXBwZW5kQ2hpbGQoc2V0dGluZ3MpOw0KICAgICAgICAgICAgICAgIHNob3dTZXR0aW5ncygpOw0KICAgICAgICAgICAgICAgIHJldHVybjsNCiAgICAgICAgICAgIGNhc2UgImxvZyI6DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gdGhpcy5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgbWVudUtleSwgInt7LmJ1dHRvbi5yZXNldExvZ3N9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiByZXNldExvZ3MoKTsnKTsNCiAgICAgICAgICAgICAgICBpbnRlcmFjdGlvbi5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgdmFyIHdyYXBwZXIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJESVYiKTsNCiAgICAgICAgICAgICAgICB3cmFwcGVyLnNldEF0dHJpYnV0ZSgiaWQiLCAiYm94LXdyYXBwZXIiKTsNCiAgICAgICAgICAgICAgICBkb2MuYXBwZW5kQ2hpbGQod3JhcHBlcik7DQogICAgICAgICAgICAgICAgdGhpcy5EaXZJRCA9ICJjb250ZW50X2xvZyI7DQogICAgICAgICAgICAgICAgdmFyIGxvZ3MgPSB0aGlzLmNyZWF0ZURJVigpOw0KICAgICAgICAgICAgICAgIHdyYXBwZXIuYXBwZW5kQ2hpbGQobG9ncyk7DQogICAgICAgICAgICAgICAgc2hvd0xvZ3ModHJ1ZSk7DQogICAgICAgICAgICAgICAgcmV0dXJuOw0KICAgICAgICAgICAgY2FzZSAibG9nb3V0IjoNCiAgICAgICAgICAgICAgICBsb2NhdGlvbi5yZWxvYWQoKTsNCiAgICAgICAgICAgICAgICBkb2N1bWVudC5jb29raWUgPSAiVG9rZW49IDsgZXhwaXJlcyA9IFRodSwgMDEgSmFuIDE5NzAgMDA6MDA6MDAgR01UIjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIH0NCiAgICAgICAgLy8gQ3JlYXRlIHRhYmxlIChpZiBuZWVkZWQpDQogICAgICAgIHZhciB0YWJsZUhlYWRlciA9IG1lbnVJdGVtc1t0aGlzLm1lbnVJRF0udGFibGVIZWFkZXI7DQogICAgICAgIGlmICh0YWJsZUhlYWRlci5sZW5ndGggPiAwKSB7DQogICAgICAgICAgICB2YXIgd3JhcHBlciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIkRJViIpOw0KICAgICAgICAgICAgZG9jLmFwcGVuZENoaWxkKHdyYXBwZXIpOw0KICAgICAgICAgICAgd3JhcHBlci5zZXRBdHRyaWJ1dGUoImlkIiwgImJveC13cmFwcGVyIik7DQogICAgICAgICAgICB2YXIgdGFibGUgPSB0aGlzLmNyZWF0ZVRBQkxFKCk7DQogICAgICAgICAgICB3cmFwcGVyLmFwcGVuZENoaWxkKHRhYmxlKTsNCiAgICAgICAgICAgIHZhciBoZWFkZXIgPSB0aGlzLmNyZWF0ZVRhYmxlUm93KCk7DQogICAgICAgICAgICB0YWJsZS5hcHBlbmRDaGlsZChoZWFkZXIpOw0KICAgICAgICAgICAgLy8gVGFibGUgaGVhZGVyDQogICAgICAgICAgICB0YWJsZUhlYWRlci5mb3JFYWNoKGVsZW1lbnQgPT4gew0KICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZWxlbWVudDsNCiAgICAgICAgICAgICAgICBpZiAoZWxlbWVudCA9PSAiQlVMSyIpIHsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiQlVMS19IRUFEIjsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGZhbHNlOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBpZiAobWVudUtleSA9PSAibWFwcGluZyIpIHsNCiAgICAgICAgICAgICAgICAgICAgaWYgKGVsZW1lbnQgPT0gInt7Lm1hcHBpbmcudGFibGUuY2hOb319Iikgew0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5vbmNsaWNrID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwub25jbGlja0Z1bmN0aW9uID0gImphdmFzY3JpcHQ6IHNvcnRUYWJsZSgxKTsiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC50ZENsYXNzTmFtZSA9ICJzb3J0VGhpcyI7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgaWYgKGVsZW1lbnQgPT0gInt7Lm1hcHBpbmcudGFibGUuY2hhbm5lbE5hbWV9fSIpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwub25jbGljayA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLm9uY2xpY2tGdW5jdGlvbiA9ICJqYXZhc2NyaXB0OiBzb3J0VGFibGUoMyk7IjsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBpZiAoZWxlbWVudCA9PSAie3subWFwcGluZy50YWJsZS5wbGF5bGlzdH19Iikgew0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5vbmNsaWNrID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwub25jbGlja0Z1bmN0aW9uID0gImphdmFzY3JpcHQ6IHNvcnRUYWJsZSg0KTsiOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIGlmIChlbGVtZW50ID09ICJ7ey5tYXBwaW5nLnRhYmxlLmdyb3VwVGl0bGV9fSIpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwub25jbGljayA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLm9uY2xpY2tGdW5jdGlvbiA9ICJqYXZhc2NyaXB0OiBzb3J0VGFibGUoNSk7IjsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBpZiAoZWxlbWVudCA9PSAie3subWFwcGluZy50YWJsZS50aW1lc2hpZnR9fSIpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwub25jbGljayA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLm9uY2xpY2tGdW5jdGlvbiA9ICJqYXZhc2NyaXB0OiBzb3J0VGFibGUoOCk7IjsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBpZiAobWVudUtleSA9PSAiZmlsdGVyIikgew0KICAgICAgICAgICAgICAgICAgICBpZiAoZWxlbWVudCA9PSAie3suZmlsdGVyLnRhYmxlLnN0YXJ0aW5nQ2hhbm5lbH19Iikgew0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5vbmNsaWNrID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwub25jbGlja0Z1bmN0aW9uID0gImphdmFzY3JpcHQ6IHNvcnRUYWJsZSgwKTsiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC50ZENsYXNzTmFtZSA9ICJzb3J0VGhpcyI7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgaWYgKGVsZW1lbnQgPT0gInt7LmZpbHRlci50YWJsZS5uYW1lfX0iKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLm9uY2xpY2sgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5vbmNsaWNrRnVuY3Rpb24gPSAiamF2YXNjcmlwdDogc29ydFRhYmxlKDEpOyI7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgaWYgKGVsZW1lbnQgPT0gInt7LmZpbHRlci50YWJsZS50eXBlfX0iKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLm9uY2xpY2sgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5vbmNsaWNrRnVuY3Rpb24gPSAiamF2YXNjcmlwdDogc29ydFRhYmxlKDIpOyI7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgaWYgKGVsZW1lbnQgPT0gInt7LmZpbHRlci50YWJsZS5maWx0ZXJ9fSIpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwub25jbGljayA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLm9uY2xpY2tGdW5jdGlvbiA9ICJqYXZhc2NyaXB0OiBzb3J0VGFibGUoMyk7IjsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBoZWFkZXIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgfSk7DQogICAgICAgICAgICB0YWJsZS5hcHBlbmRDaGlsZChoZWFkZXIpOw0KICAgICAgICAgICAgLy8gQ29udGVudCBvZiB0aGUgdGFibGUNCiAgICAgICAgICAgIHZhciByb3dzID0gdGhpcy5jcmVhdGVUYWJsZUNvbnRlbnQobWVudUtleSk7DQogICAgICAgICAgICByb3dzLmZvckVhY2godHIgPT4gew0KICAgICAgICAgICAgICAgIHRhYmxlLmFwcGVuZENoaWxkKHRyKTsNCiAgICAgICAgICAgIH0pOw0KICAgICAgICB9DQogICAgICAgIHN3aXRjaCAobWVudUtleSkgew0KICAgICAgICAgICAgY2FzZSAibWFwcGluZyI6DQogICAgICAgICAgICAgICAgc29ydFRhYmxlKDEpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiZmlsdGVyIjoNCiAgICAgICAgICAgICAgICBzaG93UHJldmlldyh0cnVlKTsNCiAgICAgICAgICAgICAgICBzb3J0VGFibGUoMCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBkZWZhdWx0Og0KICAgICAgICAgICAgICAgIENPTFVNTl9UT19TT1JUID0gLTE7DQogICAgICAgICAgICAgICAgc29ydFRhYmxlKDApOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICB9DQogICAgICAgIHNob3dFbGVtZW50KCJsb2FkaW5nIiwgZmFsc2UpOw0KICAgIH0NCn0NCmZ1bmN0aW9uIFBhZ2VSZWFkeSgpIHsNCiAgICBsZXQgc2VydmVyID0gbmV3IFNlcnZlcigiZ2V0U2VydmVyQ29uZmlnIik7DQogICAgc2VydmVyLnJlcXVlc3Qoe30pOw0KICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJyZXNpemUiLCBmdW5jdGlvbiAoKSB7DQogICAgICAgIGNhbGN1bGF0ZVdyYXBwZXJIZWlnaHQoKTsNCiAgICB9LCB0cnVlKTsNCiAgICBzZXRJbnRlcnZhbChmdW5jdGlvbiAoKSB7DQogICAgICAgIHVwZGF0ZUxvZygpOw0KICAgIH0sIDEwMDAwKTsNCiAgICByZXR1cm47DQp9DQpmdW5jdGlvbiBjcmVhdGVMYXlvdXQoKSB7DQogICAgLy8gQ2xpZW50IEluZm8NCiAgICBsZXQgb2JqID0gU0VSVkVSWyJjbGllbnRJbmZvIl07DQogICAgbGV0IGtleXMgPSBnZXRPd25PYmpQcm9wcyhvYmopOw0KICAgIGZvciAodmFyIGkgPSAwOyBpIDwga2V5cy5sZW5ndGg7IGkrKykgew0KICAgICAgICBpZiAoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoa2V5c1tpXSkpIHsNCiAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGtleXNbaV0pLmlubmVySFRNTCA9IG9ialtrZXlzW2ldXTsNCiAgICAgICAgfQ0KICAgIH0NCiAgICBpZiAoIWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJtYWluLW1lbnUiKSkgew0KICAgICAgICByZXR1cm47DQogICAgfQ0KICAgIC8vIENyZWF0ZSBtZW51DQogICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm1haW4tbWVudSIpLmlubmVySFRNTCA9ICIiOw0KICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbWVudUl0ZW1zLmxlbmd0aDsgaSsrKSB7DQogICAgICAgIG1lbnVJdGVtc1tpXS5pZCA9IGk7DQogICAgICAgIHN3aXRjaCAobWVudUl0ZW1zW2ldWyJtZW51S2V5Il0pIHsNCiAgICAgICAgICAgIGNhc2UgInVzZXJzIjoNCiAgICAgICAgICAgIGNhc2UgImxvZ291dCI6DQogICAgICAgICAgICAgICAgaWYgKFNFUlZFUlsic2V0dGluZ3MiXVsiYXV0aGVudGljYXRpb24ud2ViIl0gPT0gdHJ1ZSkgew0KICAgICAgICAgICAgICAgICAgICBtZW51SXRlbXNbaV0uY3JlYXRlSXRlbSgpOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgIm1hcHBpbmciOg0KICAgICAgICAgICAgY2FzZSAieG1sdHYiOg0KICAgICAgICAgICAgICAgIGlmIChTRVJWRVJbImNsaWVudEluZm8iXVsiZXBnU291cmNlIl0gPT0gIlhFUEciKSB7DQogICAgICAgICAgICAgICAgICAgIG1lbnVJdGVtc1tpXS5jcmVhdGVJdGVtKCk7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgICAgICBtZW51SXRlbXNbaV0uY3JlYXRlSXRlbSgpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICB9DQogICAgfQ0KICAgIHJldHVybjsNCn0NCmZ1bmN0aW9uIG9wZW5UaGlzTWVudShlbGVtZW50KSB7DQogICAgbGV0IGlkID0gZWxlbWVudC5pZDsNCiAgICBsZXQgY29udGVudCA9IG5ldyBTaG93Q29udGVudChpZCk7DQogICAgY29udGVudC5zaG93KCk7DQogICAgY2FsY3VsYXRlV3JhcHBlckhlaWdodCgpOw0KICAgIHJldHVybjsNCn0NCmNsYXNzIFBvcHVwV2luZG93IHsNCiAgICBjb25zdHJ1Y3RvcigpIHsNCiAgICAgICAgdGhpcy5Eb2N1bWVudElEID0gInBvcHVwLWN1c3RvbSI7DQogICAgICAgIHRoaXMuSW50ZXJhY3Rpb25JRCA9ICJpbnRlcmFjdGlvbiI7DQogICAgICAgIHRoaXMuZG9jID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQodGhpcy5Eb2N1bWVudElEKTsNCiAgICB9DQogICAgY3JlYXRlVGl0bGUodGl0bGUpIHsNCiAgICAgICAgbGV0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgdGQuY2xhc3NOYW1lID0gImxlZnQiOw0KICAgICAgICB0ZC5pbm5lckhUTUwgPSB0aXRsZSArICI6IjsNCiAgICAgICAgcmV0dXJuIHRkOw0KICAgIH0NCiAgICBjcmVhdGVDb250ZW50KGVsZW1lbnQpIHsNCiAgICAgICAgbGV0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgdGQuYXBwZW5kQ2hpbGQoZWxlbWVudCk7DQogICAgICAgIHJldHVybiB0ZDsNCiAgICB9DQogICAgY3JlYXRlSW50ZXJhY3Rpb24oKSB7DQogICAgICAgIGxldCBkaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsNCiAgICAgICAgZGl2LnNldEF0dHJpYnV0ZSgiaWQiLCAicG9wdXAtaW50ZXJhY3Rpb24iKTsNCiAgICAgICAgZGl2LmNsYXNzTmFtZSA9ICJpbnRlcmFjdGlvbiI7DQogICAgICAgIHRoaXMuZG9jLmFwcGVuZENoaWxkKGRpdik7DQogICAgfQ0KfQ0KY2xhc3MgUG9wdXBDb250ZW50IGV4dGVuZHMgUG9wdXBXaW5kb3cgew0KICAgIGNvbnN0cnVjdG9yKCkgew0KICAgICAgICBzdXBlciguLi5hcmd1bWVudHMpOw0KICAgICAgICB0aGlzLnRhYmxlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEFCTEUiKTsNCiAgICB9DQogICAgY3JlYXRlSGVhZGxpbmUoaGVhZGxpbmUpIHsNCiAgICAgICAgdGhpcy5kb2MuaW5uZXJIVE1MID0gIiI7DQogICAgICAgIHZhciBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiSDMiKTsNCiAgICAgICAgZWxlbWVudC5pbm5lckhUTUwgPSBoZWFkbGluZS50b1VwcGVyQ2FzZSgpOw0KICAgICAgICB0aGlzLmRvYy5hcHBlbmRDaGlsZChlbGVtZW50KTsNCiAgICAgICAgLy8gQ3JlYXRlIHRhYmxlDQogICAgICAgIHRoaXMudGFibGUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJUQUJMRSIpOw0KICAgICAgICB0aGlzLmRvYy5hcHBlbmRDaGlsZCh0aGlzLnRhYmxlKTsNCiAgICB9DQogICAgYXBwZW5kUm93KHRpdGxlLCBlbGVtZW50KSB7DQogICAgICAgIGxldCB0ciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlRSIik7DQogICAgICAgIC8vIFRpdGxlDQogICAgICAgIGlmICh0aXRsZS5sZW5ndGggIT0gMCkgew0KICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQodGhpcy5jcmVhdGVUaXRsZSh0aXRsZSkpOw0KICAgICAgICB9DQogICAgICAgIC8vIENvbnRlbnQNCiAgICAgICAgdHIuYXBwZW5kQ2hpbGQodGhpcy5jcmVhdGVDb250ZW50KGVsZW1lbnQpKTsNCiAgICAgICAgdGhpcy50YWJsZS5hcHBlbmRDaGlsZCh0cik7DQogICAgfQ0KICAgIGNyZWF0ZUlucHV0KHR5cGUsIG5hbWUsIHZhbHVlKSB7DQogICAgICAgIGxldCBpbnB1dCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIklOUFVUIik7DQogICAgICAgIGlmICh2YWx1ZSA9PSB1bmRlZmluZWQpIHsNCiAgICAgICAgICAgIHZhbHVlID0gIiI7DQogICAgICAgIH0NCiAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJ0eXBlIiwgdHlwZSk7DQogICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgibmFtZSIsIG5hbWUpOw0KICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInZhbHVlIiwgdmFsdWUpOw0KICAgICAgICByZXR1cm4gaW5wdXQ7DQogICAgfQ0KICAgIGNyZWF0ZUNoZWNrYm94KG5hbWUpIHsNCiAgICAgICAgbGV0IGlucHV0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiSU5QVVQiKTsNCiAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJ0eXBlIiwgImNoZWNrYm94Iik7DQogICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgibmFtZSIsIG5hbWUpOw0KICAgICAgICByZXR1cm4gaW5wdXQ7DQogICAgfQ0KICAgIC8vIENyZWF0ZXMgYSBzZWxlY3Rpb24gb2YgbXVsdGlwbGUgb3B0aW9ucyB2YWx1ZXMgd2l0aCB0ZXh0IGRlc2NyaXB0aW9ucw0KICAgIGNyZWF0ZVNlbGVjdCh0ZXh0LCB2YWx1ZXMsIHNldCwgZGJLZXkpIHsNCiAgICAgICAgbGV0IHNlbGVjdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlNFTEVDVCIpOw0KICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJuYW1lIiwgZGJLZXkpOw0KICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRleHQubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgICAgIGxldCBvcHRpb24gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJPUFRJT04iKTsNCiAgICAgICAgICAgIG9wdGlvbi5zZXRBdHRyaWJ1dGUoInZhbHVlIiwgdmFsdWVzW2ldKTsNCiAgICAgICAgICAgIG9wdGlvbi5pbm5lclRleHQgPSB0ZXh0W2ldOw0KICAgICAgICAgICAgc2VsZWN0LmFwcGVuZENoaWxkKG9wdGlvbik7DQogICAgICAgIH0NCiAgICAgICAgaWYgKHNldCAhPSAiIikgew0KICAgICAgICAgICAgc2VsZWN0LnZhbHVlID0gc2V0Ow0KICAgICAgICB9DQogICAgICAgIGlmIChzZXQgPT0gdW5kZWZpbmVkKSB7DQogICAgICAgICAgICBzZWxlY3QudmFsdWUgPSB2YWx1ZXNbMF07DQogICAgICAgIH0NCiAgICAgICAgcmV0dXJuIHNlbGVjdDsNCiAgICB9DQogICAgc2VsZWN0T3B0aW9uKHNlbGVjdCwgdmFsdWUpIHsNCiAgICAgICAgLy9zZWxlY3Quc2VsZWN0ZWRPcHRpb25zID0gdmFsdWUNCiAgICAgICAgbGV0IHMgPSBzZWxlY3Q7DQogICAgICAgIHMub3B0aW9uc1tzLnNlbGVjdGVkSW5kZXhdLnZhbHVlID0gdmFsdWU7DQogICAgICAgIHJldHVybiBzZWxlY3Q7DQogICAgfQ0KICAgIGRlc2NyaXB0aW9uKHZhbHVlKSB7DQogICAgICAgIGxldCB0ciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlRSIik7DQogICAgICAgIGxldCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgIGxldCBzcGFuID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiUFJFIik7DQogICAgICAgIHNwYW4uaW5uZXJIVE1MID0gdmFsdWU7DQogICAgICAgIHRyLmFwcGVuZENoaWxkKHRkKTsNCiAgICAgICAgdHIuYXBwZW5kQ2hpbGQodGhpcy5jcmVhdGVDb250ZW50KHNwYW4pKTsNCiAgICAgICAgdGhpcy50YWJsZS5hcHBlbmRDaGlsZCh0cik7DQogICAgfQ0KICAgIC8vIEludGVyYWN0aW9uDQogICAgYWRkSW50ZXJhY3Rpb24oZWxlbWVudCkgew0KICAgICAgICBsZXQgaW50ZXJhY3Rpb24gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicG9wdXAtaW50ZXJhY3Rpb24iKTsNCiAgICAgICAgaW50ZXJhY3Rpb24uYXBwZW5kQ2hpbGQoZWxlbWVudCk7DQogICAgfQ0KfQ0KZnVuY3Rpb24gb3BlblBvcFVwKGRhdGFUeXBlLCBlbGVtZW50KSB7DQogICAgbGV0IGRhdGEgPSB7fTsNCiAgICBsZXQgaWQ7DQogICAgc3dpdGNoIChlbGVtZW50KSB7DQogICAgICAgIGNhc2UgdW5kZWZpbmVkOg0KICAgICAgICAgICAgc3dpdGNoIChkYXRhVHlwZSkgew0KICAgICAgICAgICAgICAgIGNhc2UgImdyb3VwLXRpdGxlIjoNCiAgICAgICAgICAgICAgICAgICAgaWYgKGlkID09IHVuZGVmaW5lZCkgew0KICAgICAgICAgICAgICAgICAgICAgICAgaWQgPSAtMTsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBkYXRhID0gZ2V0TG9jYWxEYXRhKCJmaWx0ZXIiLCBpZCk7DQogICAgICAgICAgICAgICAgICAgIGRhdGFbInR5cGUiXSA9ICJncm91cC10aXRsZSI7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgImN1c3RvbS1maWx0ZXIiOg0KICAgICAgICAgICAgICAgICAgICBpZiAoaWQgPT0gdW5kZWZpbmVkKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBpZCA9IC0xOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIGRhdGEgPSBnZXRMb2NhbERhdGEoImZpbHRlciIsIGlkKTsNCiAgICAgICAgICAgICAgICAgICAgZGF0YVsidHlwZSJdID0gImN1c3RvbS1maWx0ZXIiOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBkZWZhdWx0Og0KICAgICAgICAgICAgICAgICAgICBkYXRhWyJpZC5wcm92aWRlciJdID0gIi0iOw0KICAgICAgICAgICAgICAgICAgICBkYXRhWyJ0eXBlIl0gPSBkYXRhVHlwZTsNCiAgICAgICAgICAgICAgICAgICAgaWQgPSAiLSI7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICBpZCA9IGVsZW1lbnQuaWQ7DQogICAgICAgICAgICBkYXRhID0gZ2V0TG9jYWxEYXRhKGRhdGFUeXBlLCBpZCk7DQogICAgICAgICAgICBicmVhazsNCiAgICB9DQogICAgbGV0IGNvbnRlbnQgPSBuZXcgUG9wdXBDb250ZW50KCk7DQogICAgc3dpdGNoIChkYXRhVHlwZSkgew0KICAgICAgICBjYXNlICJwbGF5bGlzdCI6DQogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUhlYWRsaW5lKCJ7ey5wbGF5bGlzdC5wbGF5bGlzdFR5cGUudGl0bGV9fSIpOw0KICAgICAgICAgICAgLy8gVHlwZQ0KICAgICAgICAgICAgdmFyIHRleHQgPSBbIk0zVSIsICJIREhvbWVSdW4iXTsNCiAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBbImphdmFzY3JpcHQ6IG9wZW5Qb3BVcCgnbTN1JykiLCAiamF2YXNjcmlwdDogb3BlblBvcFVwKCdoZGhyJykiXTsNCiAgICAgICAgICAgIHZhciBzZWxlY3QgPSBjb250ZW50LmNyZWF0ZVNlbGVjdCh0ZXh0LCB2YWx1ZXMsICIiLCAidHlwZSIpOw0KICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgiaWQiLCAidHlwZSIpOw0KICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAnamF2YXNjcmlwdDogY2hhbmdlQnV0dG9uQWN0aW9uKHRoaXMsICJuZXh0IiwgIm9uY2xpY2siKScpOyAvLyBjaGFuZ2VCdXR0b25BY3Rpb24NCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5wbGF5bGlzdC50eXBlLnRpdGxlfX0iLCBzZWxlY3QpOw0KICAgICAgICAgICAgLy8gSW50ZXJhY3Rpb24NCiAgICAgICAgICAgIGNvbnRlbnQuY3JlYXRlSW50ZXJhY3Rpb24oKTsNCiAgICAgICAgICAgIC8vIEFib3J0DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAiY2FuY2VsIiwgInt7LmJ1dHRvbi5jYW5jZWx9fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IHNob3dFbGVtZW50KCJwb3B1cCIsIGZhbHNlKTsnKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgLy8gTmV4dA0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgIm5leHQiLCAie3suYnV0dG9uLm5leHR9fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgibTN1IiknKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgiaWQiLCAnbmV4dCcpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSAibTN1IjoNCiAgICAgICAgICAgIGNvbnRlbnQuY3JlYXRlSGVhZGxpbmUoZGF0YVR5cGUpOw0KICAgICAgICAgICAgLy8gTmFtZQ0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gIm5hbWUiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnBsYXlsaXN0Lm5hbWUucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnBsYXlsaXN0Lm5hbWUudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIERlc2NyaXB0aW9uDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAiZGVzY3JpcHRpb24iOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnBsYXlsaXN0LmRlc2NyaXB0aW9uLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5wbGF5bGlzdC5kZXNjcmlwdGlvbi50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgLy8gVVJMDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAiZmlsZS5zb3VyY2UiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnBsYXlsaXN0LmZpbGVNM1UucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnBsYXlsaXN0LmZpbGVNM1UudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIFR1bmVyDQogICAgICAgICAgICBpZiAoU0VSVkVSWyJzZXR0aW5ncyJdWyJidWZmZXIiXSAhPSAiLSIpIHsNCiAgICAgICAgICAgICAgICB2YXIgdGV4dCA9IFtdOw0KICAgICAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBbXTsNCiAgICAgICAgICAgICAgICBmb3IgKHZhciBpID0gMTsgaSA8PSAxMDA7IGkrKykgew0KICAgICAgICAgICAgICAgICAgICB0ZXh0LnB1c2goaS50b1N0cmluZygpKTsNCiAgICAgICAgICAgICAgICAgICAgdmFsdWVzLnB1c2goaS50b1N0cmluZygpKTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgdmFyIGRiS2V5ID0gInR1bmVyIjsNCiAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCBkYXRhW2RiS2V5XSwgZGJLZXkpOw0KICAgICAgICAgICAgICAgIHNlbGVjdC5zZXRBdHRyaWJ1dGUoIm9uZm9jdXMiLCAiamF2YXNjcmlwdDogcmV0dXJuOyIpOw0KICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5wbGF5bGlzdC50dW5lci50aXRsZX19Iiwgc2VsZWN0KTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgICAgIHZhciBkYktleSA9ICJ0dW5lciI7DQogICAgICAgICAgICAgICAgaWYgKGRhdGFbZGJLZXldID09IHVuZGVmaW5lZCkgew0KICAgICAgICAgICAgICAgICAgICBkYXRhW2RiS2V5XSA9IDE7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicmVhZG9ubHkiLCAidHJ1ZSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LmNsYXNzTmFtZSA9ICJub3RBdmFpbGFibGUiOw0KICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5wbGF5bGlzdC50dW5lci50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgY29udGVudC5kZXNjcmlwdGlvbigie3sucGxheWxpc3QudHVuZXIuZGVzY3JpcHRpb259fSIpOw0KICAgICAgICAgICAgLy8gSW50ZXJhdGlvbg0KICAgICAgICAgICAgY29udGVudC5jcmVhdGVJbnRlcmFjdGlvbigpOw0KICAgICAgICAgICAgLy8gRGVsZXRlDQogICAgICAgICAgICBpZiAoZGF0YVsiaWQucHJvdmlkZXIiXSAhPSAiLSIpIHsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAiZGVsZXRlIiwgInt7LmJ1dHRvbi5kZWxldGV9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LmNsYXNzTmFtZSA9ICJkZWxldGUiOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBzYXZlUG9wdXBEYXRhKCJtM3UiLCAiJyArIGlkICsgJyIsIHRydWUsIDApJyk7DQogICAgICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAiYmFjayIsICJ7ey5idXR0b24uYmFja319Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgicGxheWxpc3QiKScpOw0KICAgICAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgLy8gQWJvcnQNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJjYW5jZWwiLCAie3suYnV0dG9uLmNhbmNlbH19Iik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogc2hvd0VsZW1lbnQoInBvcHVwIiwgZmFsc2UpOycpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICAvLyBVcGRhdGUNCiAgICAgICAgICAgIGlmIChkYXRhWyJpZC5wcm92aWRlciJdICE9ICItIikgew0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJ1cGRhdGUiLCAie3suYnV0dG9uLnVwZGF0ZX19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoIm0zdSIsICInICsgaWQgKyAnIiwgZmFsc2UsIDEpJyk7DQogICAgICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICAvLyBTYXZlDQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAic2F2ZSIsICJ7ey5idXR0b24uc2F2ZX19Iik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogc2F2ZVBvcHVwRGF0YSgibTN1IiwgIicgKyBpZCArICciLCBmYWxzZSwgMCknKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGNhc2UgImhkaHIiOg0KICAgICAgICAgICAgY29udGVudC5jcmVhdGVIZWFkbGluZShkYXRhVHlwZSk7DQogICAgICAgICAgICAvLyBOYW1lDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAibmFtZSI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3sucGxheWxpc3QubmFtZS5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sucGxheWxpc3QubmFtZS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgLy8gRGVzY3JpcHRpb24NCiAgICAgICAgICAgIHZhciBkYktleSA9ICJkZXNjcmlwdGlvbiI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3sucGxheWxpc3QuZGVzY3JpcHRpb24ucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnBsYXlsaXN0LmRlc2NyaXB0aW9uLnBsYWNlaG9sZGVyfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBVUkwNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJmaWxlLnNvdXJjZSI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3sucGxheWxpc3QuZmlsZUhESFIucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnBsYXlsaXN0LmZpbGVIREhSLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBUdW5lcg0KICAgICAgICAgICAgaWYgKFNFUlZFUlsic2V0dGluZ3MiXVsiYnVmZmVyIl0gIT0gIi0iKSB7DQogICAgICAgICAgICAgICAgdmFyIHRleHQgPSBbXTsNCiAgICAgICAgICAgICAgICB2YXIgdmFsdWVzID0gW107DQogICAgICAgICAgICAgICAgZm9yICh2YXIgaSA9IDE7IGkgPD0gMTAwOyBpKyspIHsNCiAgICAgICAgICAgICAgICAgICAgdGV4dC5wdXNoKGkudG9TdHJpbmcoKSk7DQogICAgICAgICAgICAgICAgICAgIHZhbHVlcy5wdXNoKGkudG9TdHJpbmcoKSk7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIHZhciBkYktleSA9ICJ0dW5lciI7DQogICAgICAgICAgICAgICAgdmFyIHNlbGVjdCA9IGNvbnRlbnQuY3JlYXRlU2VsZWN0KHRleHQsIHZhbHVlcywgZGF0YVtkYktleV0sIGRiS2V5KTsNCiAgICAgICAgICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJvbmZvY3VzIiwgImphdmFzY3JpcHQ6IHJldHVybjsiKTsNCiAgICAgICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sucGxheWxpc3QudHVuZXIudGl0bGV9fSIsIHNlbGVjdCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICB2YXIgZGJLZXkgPSAidHVuZXIiOw0KICAgICAgICAgICAgICAgIGlmIChkYXRhW2RiS2V5XSA9PSB1bmRlZmluZWQpIHsNCiAgICAgICAgICAgICAgICAgICAgZGF0YVtkYktleV0gPSAxOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInJlYWRvbmx5IiwgInRydWUiKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5jbGFzc05hbWUgPSAibm90QXZhaWxhYmxlIjsNCiAgICAgICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sucGxheWxpc3QudHVuZXIudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGNvbnRlbnQuZGVzY3JpcHRpb24oInt7LnBsYXlsaXN0LnR1bmVyLmRlc2NyaXB0aW9ufX0iKTsNCiAgICAgICAgICAgIC8vIEludGVyYWN0aW9uDQogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUludGVyYWN0aW9uKCk7DQogICAgICAgICAgICAvLyBEZWxldGUNCiAgICAgICAgICAgIGlmIChkYXRhWyJpZC5wcm92aWRlciJdICE9ICItIikgew0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJkZWxldGUiLCAie3suYnV0dG9uLmRlbGV0ZX19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoImhkaHIiLCAiJyArIGlkICsgJyIsIHRydWUsIDApJyk7DQogICAgICAgICAgICAgICAgaW5wdXQuY2xhc3NOYW1lID0gImRlbGV0ZSI7DQogICAgICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAiYmFjayIsICJ7ey5idXR0b24uYmFja319Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgicGxheWxpc3QiKScpOw0KICAgICAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgLy8gQWJvcnQNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJjYW5jZWwiLCAie3suYnV0dG9uLmNhbmNlbH19Iik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogc2hvd0VsZW1lbnQoInBvcHVwIiwgZmFsc2UpOycpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICAvLyBVcGRhdGUNCiAgICAgICAgICAgIGlmIChkYXRhWyJpZC5wcm92aWRlciJdICE9ICItIikgew0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJ1cGRhdGUiLCAie3suYnV0dG9uLnVwZGF0ZX19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoImhkaHIiLCAiJyArIGlkICsgJyIsIGZhbHNlLCAxKScpOw0KICAgICAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgLy8gU2F2ZQ0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgInNhdmUiLCAie3suYnV0dG9uLnNhdmV9fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoImhkaHIiLCAiJyArIGlkICsgJyIsIGZhbHNlLCAwKScpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSAiZmlsdGVyIjoNCiAgICAgICAgICAgIGNvbnRlbnQuY3JlYXRlSGVhZGxpbmUoZGF0YVR5cGUpOw0KICAgICAgICAgICAgLy8gVHlwZQ0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gInR5cGUiOw0KICAgICAgICAgICAgdmFyIHRleHQgPSBbIk0zVTogIiArICJ7ey5maWx0ZXIudHlwZS5ncm91cFRpdGxlfX0iLCAieFRlVmU6ICIgKyAie3suZmlsdGVyLnR5cGUuY3VzdG9tRmlsdGVyfX0iXTsNCiAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBbImphdmFzY3JpcHQ6IG9wZW5Qb3BVcCgnZ3JvdXAtdGl0bGUnKSIsICJqYXZhc2NyaXB0OiBvcGVuUG9wVXAoJ2N1c3RvbS1maWx0ZXInKSJdOw0KICAgICAgICAgICAgdmFyIHNlbGVjdCA9IGNvbnRlbnQuY3JlYXRlU2VsZWN0KHRleHQsIHZhbHVlcywgImphdmFzY3JpcHQ6IG9wZW5Qb3BVcCgnZ3JvdXAtdGl0bGUnKSIsIGRiS2V5KTsNCiAgICAgICAgICAgIHNlbGVjdC5zZXRBdHRyaWJ1dGUoImlkIiwgaWQpOw0KICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAnamF2YXNjcmlwdDogY2hhbmdlQnV0dG9uQWN0aW9uKHRoaXMsICJuZXh0IiwgIm9uY2xpY2siKTsnKTsgLy8gY2hhbmdlQnV0dG9uQWN0aW9uDQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3suZmlsdGVyLnR5cGUudGl0bGV9fSIsIHNlbGVjdCk7DQogICAgICAgICAgICAvLyBJbnRlcmFjdGlvbg0KICAgICAgICAgICAgY29udGVudC5jcmVhdGVJbnRlcmFjdGlvbigpOw0KICAgICAgICAgICAgLy8gQWJvcnQNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJjYW5jZWwiLCAie3suYnV0dG9uLmNhbmNlbH19Iik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogc2hvd0VsZW1lbnQoInBvcHVwIiwgZmFsc2UpOycpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICAvLyBOZXh0DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAibmV4dCIsICJ7ey5idXR0b24ubmV4dH19Iik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJncm91cC10aXRsZSIpJyk7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoImlkIiwgJ25leHQnKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGNhc2UgImN1c3RvbS1maWx0ZXIiOg0KICAgICAgICBjYXNlICJncm91cC10aXRsZSI6DQogICAgICAgICAgICBzd2l0Y2ggKGRhdGFUeXBlKSB7DQogICAgICAgICAgICAgICAgY2FzZSAiY3VzdG9tLWZpbHRlciI6DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuY3JlYXRlSGVhZGxpbmUoInt7LmZpbHRlci5jdXN0b219fSIgKyAiIEZpbHRlciIpOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBjYXNlICJncm91cC10aXRsZSI6DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuY3JlYXRlSGVhZGxpbmUoInt7LmZpbHRlci5ncm91cH19IiArICIgRmlsdGVyIik7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgLy8gTmFtZSAgICAgIA0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gIm5hbWUiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LmZpbHRlci5uYW1lLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5maWx0ZXIubmFtZS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgLy8gRGVzY3JpcHRpb24NCiAgICAgICAgICAgIHZhciBkYktleSA9ICJkZXNjcmlwdGlvbiI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3suZmlsdGVyLmRlc2NyaXB0aW9uLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5maWx0ZXIuZGVzY3JpcHRpb24udGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIFR5cGUNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJ0eXBlIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImhpZGRlbiIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygiIiwgaW5wdXQpOw0KICAgICAgICAgICAgdmFyIGZpbHRlclR5cGUgPSBkYXRhW2RiS2V5XTsNCiAgICAgICAgICAgIHN3aXRjaCAoZmlsdGVyVHlwZSkgew0KICAgICAgICAgICAgICAgIGNhc2UgImN1c3RvbS1maWx0ZXIiOg0KICAgICAgICAgICAgICAgICAgICAvLyBDYXNlIHNlbnNpdGl2ZQ0KICAgICAgICAgICAgICAgICAgICB2YXIgZGJLZXkgPSAiY2FzZVNlbnNpdGl2ZSI7DQogICAgICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goZGJLZXkpOw0KICAgICAgICAgICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YVtkYktleV07DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5maWx0ZXIuY2FzZVNlbnNpdGl2ZS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgICAgICAgICAvLyBGaWx0ZXIgUnVsZSAoQ3VzdG9tKQ0KICAgICAgICAgICAgICAgICAgICB2YXIgZGJLZXkgPSAiZmlsdGVyIjsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3suZmlsdGVyLmZpbHRlclJ1bGUucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3suZmlsdGVyLmZpbHRlclJ1bGUudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAiZ3JvdXAtdGl0bGUiOg0KICAgICAgICAgICAgICAgICAgICAvL2FsZXJ0KGRiS2V5ICsgIiAiICsgZmlsdGVyVHlwZSkNCiAgICAgICAgICAgICAgICAgICAgLy8gRmlsdGVyIGJhc2VkIG9uIHRoZSBncm91cHMgaW4gdGhlIE0zVQ0KICAgICAgICAgICAgICAgICAgICB2YXIgZGJLZXkgPSAiZmlsdGVyIjsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGdyb3Vwc00zVSA9IGdldExvY2FsRGF0YSgibTN1R3JvdXBzIiwgIiIpOw0KICAgICAgICAgICAgICAgICAgICB2YXIgdGV4dCA9IGdyb3Vwc00zVVsidGV4dCJdOw0KICAgICAgICAgICAgICAgICAgICB2YXIgdmFsdWVzID0gZ3JvdXBzTTNVWyJ2YWx1ZSJdOw0KICAgICAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCBkYXRhW2RiS2V5XSwgZGJLZXkpOw0KICAgICAgICAgICAgICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3suZmlsdGVyLmZpbHRlckdyb3VwLnRpdGxlfX0iLCBzZWxlY3QpOw0KICAgICAgICAgICAgICAgICAgICBjb250ZW50LmRlc2NyaXB0aW9uKCJ7ey5maWx0ZXIuZmlsdGVyR3JvdXAuZGVzY3JpcHRpb259fSIpOw0KICAgICAgICAgICAgICAgICAgICAvLyBDYXNlIHNlbnNldGl2ZQ0KICAgICAgICAgICAgICAgICAgICB2YXIgZGJLZXkgPSAiY2FzZVNlbnNpdGl2ZSI7DQogICAgICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goZGJLZXkpOw0KICAgICAgICAgICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YVtkYktleV07DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5maWx0ZXIuY2FzZVNlbnNpdGl2ZS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgICAgICAgICB2YXIgZGJLZXkgPSAiaW5jbHVkZSI7DQogICAgICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LmZpbHRlci5pbmNsdWRlLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LmZpbHRlci5pbmNsdWRlLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuZGVzY3JpcHRpb24oInt7LmZpbHRlci5pbmNsdWRlLmRlc2NyaXB0aW9ufX0iKTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGRiS2V5ID0gImV4Y2x1ZGUiOw0KICAgICAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5maWx0ZXIuZXhjbHVkZS5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5maWx0ZXIuZXhjbHVkZS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgICAgICAgICBjb250ZW50LmRlc2NyaXB0aW9uKCJ7ey5maWx0ZXIuZXhjbHVkZS5kZXNjcmlwdGlvbn19Iik7DQogICAgICAgICAgICAgICAgICAgIC8vIFByZXNlcnZlIE0zVSBQbGF5bGlzdCBDaGFubmVsIE1hcHBpbmcNCiAgICAgICAgICAgICAgICAgICAgdmFyIGRiS2V5ID0gInByZXNlcnZlTWFwcGluZyI7DQogICAgICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goZGJLZXkpOw0KICAgICAgICAgICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YVtkYktleV07DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5maWx0ZXIucHJlc2VydmVNYXBwaW5nLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAgICAgICAgIC8vIFN0YXJ0aW5nIENoYW5uZWwgTnVtYmVyIE1hcHBpbmcNCiAgICAgICAgICAgICAgICAgICAgdmFyIGRiS2V5ID0gInN0YXJ0aW5nQ2hhbm5lbCI7DQogICAgICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LmZpbHRlci5zdGFydGluZ0NoYW5uZWwucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3suZmlsdGVyLnN0YXJ0aW5nQ2hhbm5lbC50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgICAgICAgICAvLyBGaWxsIE1pc3NpbmcgRVBHIERhdGENCiAgICAgICAgICAgICAgICAgICAgLy8gVGhlIGZvbGxvd2luZyBjb2RlIG9ubHkgd29ya3Mgd2hlbiB4VGVWZSBEdW1teSBhbHJlYWR5IGV4aXN0cw0KICAgICAgICAgICAgICAgICAgICAvLyB2YXIgZGJLZXk6c3RyaW5nID0gImRlZmF1bHRNaXNzaW5nRVBHIg0KICAgICAgICAgICAgICAgICAgICAvLyB2YXIgeG1sdHY6WE1MVFZGaWxlID0gbmV3IFhNTFRWRmlsZSgpDQogICAgICAgICAgICAgICAgICAgIC8vIHZhciBzZWxlY3QgPSB4bWx0di5nZXRQcm9ncmFtcygieFRlVmUgRHVtbXkiLCBkYXRhW2RiS2V5XSkNCiAgICAgICAgICAgICAgICAgICAgLy8gc2VsZWN0LnNldEF0dHJpYnV0ZSgibmFtZSIsIGRiS2V5KQ0KICAgICAgICAgICAgICAgICAgICAvLyBzZWxlY3Quc2V0QXR0cmlidXRlKCJpZCIsICJwb3B1cC1taXNzaW5nLWVwZyIpDQogICAgICAgICAgICAgICAgICAgIC8vIFRoZSB3b3JrYXJvdW5kIGlzIGN1cnJlbnRseSB0byBoYXJkIGNvZGUgdGhlIHhUZVZlIER1bW15IGRhdGENCiAgICAgICAgICAgICAgICAgICAgdmFyIGRiS2V5ID0gImRlZmF1bHRNaXNzaW5nRVBHIjsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGxpc3RPcHRpb25zID0geyAidGV4dCI6IFsiLSIsICIzMCBNaW51dGVzICgzMF9NaW51dGVzKSIsICI2MCBNaW51dGVzICg2MF9NaW51dGVzKSIsICI5MCBNaW51dGVzICg5MF9NaW51dGVzKSIsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgIjEyMCBNaW51dGVzICgxMjBfTWludXRlcykiLCAiMTgwIE1pbnV0ZXMgKDMwX01pbnV0ZXMpIiwgIjI0MCBNaW51dGVzICgzMF9NaW51dGVzKSIsICIzNjAgTWludXRlcyAoMzBfTWludXRlcykiXSwNCiAgICAgICAgICAgICAgICAgICAgICAgICJ2YWx1ZSI6IFsiLSIsICIzMF9NaW51dGVzIiwgIjYwX01pbnV0ZXMiLCAiOTBfTWludXRlcyIsICIxMjBfTWludXRlcyIsICIxODBfTWludXRlcyIsICIyNDBfTWludXRlcyIsICIzNjBfTWludXRlcyIsXSB9Ow0KICAgICAgICAgICAgICAgICAgICB2YXIgdGV4dCA9IGxpc3RPcHRpb25zWyJ0ZXh0Il07DQogICAgICAgICAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBsaXN0T3B0aW9uc1sidmFsdWUiXTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHNlbGVjdCA9IGNvbnRlbnQuY3JlYXRlU2VsZWN0KHRleHQsIHZhbHVlcywgZGF0YVtkYktleV0sIGRiS2V5KTsNCiAgICAgICAgICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LmZpbHRlci5kZWZhdWx0TWlzc2luZ0VQRy50aXRsZX19Iiwgc2VsZWN0KTsNCiAgICAgICAgICAgICAgICAgICAgY29udGVudC5kZXNjcmlwdGlvbigie3suZmlsdGVyLmRlZmF1bHRNaXNzaW5nRVBHLmRlc2NyaXB0aW9ufX0iKTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICB9DQogICAgICAgICAgICAvLyBJbnRlcmFjdGlvbg0KICAgICAgICAgICAgY29udGVudC5jcmVhdGVJbnRlcmFjdGlvbigpOw0KICAgICAgICAgICAgLy8gRGVsZXRlDQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAiZGVsZXRlIiwgInt7LmJ1dHRvbi5kZWxldGV9fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoImZpbHRlciIsICInICsgaWQgKyAnIiwgdHJ1ZSwgMCknKTsNCiAgICAgICAgICAgIGlucHV0LmNsYXNzTmFtZSA9ICJkZWxldGUiOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICAvLyBBYm9ydA0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImNhbmNlbCIsICJ7ey5idXR0b24uY2FuY2VsfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBzaG93RWxlbWVudCgicG9wdXAiLCBmYWxzZSk7Jyk7DQogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIC8vIFNhdmUNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJzYXZlIiwgInt7LmJ1dHRvbi5zYXZlfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBzYXZlUG9wdXBEYXRhKCJmaWx0ZXIiLCAiJyArIGlkICsgJyIsIGZhbHNlLCAwKScpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSAieG1sdHYiOg0KICAgICAgICAgICAgY29udGVudC5jcmVhdGVIZWFkbGluZShkYXRhVHlwZSk7DQogICAgICAgICAgICAvLyBOYW1lDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAibmFtZSI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3sueG1sdHYubmFtZS5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sueG1sdHYubmFtZS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgLy8gRGVzY3JpcHRpb24NCiAgICAgICAgICAgIHZhciBkYktleSA9ICJkZXNjcmlwdGlvbiI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3sueG1sdHYuZGVzY3JpcHRpb24ucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnhtbHR2LmRlc2NyaXB0aW9uLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBVUkwNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJmaWxlLnNvdXJjZSI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3sueG1sdHYuZmlsZVhNTFRWLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey54bWx0di5maWxlWE1MVFYudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIEludGVyYWN0aW9uDQogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUludGVyYWN0aW9uKCk7DQogICAgICAgICAgICAvLyBEZWxldGUNCiAgICAgICAgICAgIGlmIChkYXRhWyJpZC5wcm92aWRlciJdICE9ICItIikgew0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJkZWxldGUiLCAie3suYnV0dG9uLmRlbGV0ZX19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoInhtbHR2IiwgIicgKyBpZCArICciLCB0cnVlLCAwKScpOw0KICAgICAgICAgICAgICAgIGlucHV0LmNsYXNzTmFtZSA9ICJkZWxldGUiOw0KICAgICAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgLy8gQWJvcnQNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJjYW5jZWwiLCAie3suYnV0dG9uLmNhbmNlbH19Iik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogc2hvd0VsZW1lbnQoInBvcHVwIiwgZmFsc2UpOycpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICAvLyBVcGRhdGUNCiAgICAgICAgICAgIGlmIChkYXRhWyJpZC5wcm92aWRlciJdICE9ICItIikgew0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJ1cGRhdGUiLCAie3suYnV0dG9uLnVwZGF0ZX19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoInhtbHR2IiwgIicgKyBpZCArICciLCBmYWxzZSwgMSknKTsNCiAgICAgICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIC8vIFNhdmUNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJzYXZlIiwgInt7LmJ1dHRvbi5zYXZlfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBzYXZlUG9wdXBEYXRhKCJ4bWx0diIsICInICsgaWQgKyAnIiwgZmFsc2UsIDApJyk7DQogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJ1c2VycyI6DQogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUhlYWRsaW5lKCJ7ey5tYWluTWVudS5pdGVtLnVzZXJzfX0iKTsNCiAgICAgICAgICAgIC8vIFVzZXIgbmFtZQ0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gInVzZXJuYW1lIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey51c2Vycy51c2VybmFtZS5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sudXNlcnMudXNlcm5hbWUudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIE5ldyBQYXJzc3dvcmQNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJwYXNzd29yZCI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJwYXNzd29yZCIsIGRiS2V5LCAiIik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnVzZXJzLnBhc3N3b3JkLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey51c2Vycy5wYXNzd29yZC50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgLy8gQ29uZmlybWF0aW9uDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAiY29uZmlybSI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJwYXNzd29yZCIsIGRiS2V5LCAiIik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnVzZXJzLmNvbmZpcm0ucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnVzZXJzLmNvbmZpcm0udGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIEF1dGhlbnRpY2F0aW9uIFdFQg0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gImF1dGhlbnRpY2F0aW9uLndlYiI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KGRiS2V5KTsNCiAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhW2RiS2V5XTsNCiAgICAgICAgICAgIGlmIChkYXRhWyJkZWZhdWx0VXNlciJdID09IHRydWUpIHsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAiamF2YXNjcmlwdDogcmV0dXJuIGZhbHNlIik7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sudXNlcnMud2ViLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBBdXRoZW50aWNhdGlvbiBQTVMNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJhdXRoZW50aWNhdGlvbi5wbXMiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChkYktleSk7DQogICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YVtkYktleV07DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sudXNlcnMucG1zLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBBdXRoZW50aWNhdGlvbiBNM1UNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJhdXRoZW50aWNhdGlvbi5tM3UiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChkYktleSk7DQogICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YVtkYktleV07DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sudXNlcnMubTN1LnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBBdXRoZW50aWNhdGlvbiBYTUwNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJhdXRoZW50aWNhdGlvbi54bWwiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChkYktleSk7DQogICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YVtkYktleV07DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sudXNlcnMueG1sLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBBdXRoZW50aWNhdGlvbiBBUEkNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJhdXRoZW50aWNhdGlvbi5hcGkiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChkYktleSk7DQogICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YVtkYktleV07DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sudXNlcnMuYXBpLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBJbnRlcmFjdGlvbg0KICAgICAgICAgICAgY29udGVudC5jcmVhdGVJbnRlcmFjdGlvbigpOw0KICAgICAgICAgICAgLy8gRGVsZXRlDQogICAgICAgICAgICBpZiAoZGF0YVsiZGVmYXVsdFVzZXIiXSAhPSB0cnVlICYmIGlkICE9ICItIikgew0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJkZWxldGUiLCAie3suYnV0dG9uLmRlbGV0ZX19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuY2xhc3NOYW1lID0gImRlbGV0ZSI7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoIicgKyBkYXRhVHlwZSArICciLCAiJyArIGlkICsgJyIsIHRydWUsIDApJyk7DQogICAgICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICAvLyBBYm9ydA0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImNhbmNlbCIsICJ7ey5idXR0b24uY2FuY2VsfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBzaG93RWxlbWVudCgicG9wdXAiLCBmYWxzZSk7Jyk7DQogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIC8vIFNhdmUNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJzYXZlIiwgInt7LmJ1dHRvbi5zYXZlfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBzYXZlUG9wdXBEYXRhKCInICsgZGF0YVR5cGUgKyAnIiwgIicgKyBpZCArICciLCAiZmFsc2UiKTsnKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGNhc2UgIm1hcHBpbmciOg0KICAgICAgICAgICAgY29udGVudC5jcmVhdGVIZWFkbGluZSgie3subWFpbk1lbnUuaXRlbS5tYXBwaW5nfX0iKTsNCiAgICAgICAgICAgIC8vIEFjdGl2ZQ0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gIngtYWN0aXZlIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goZGJLZXkpOw0KICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGFbZGJLZXldOw0KICAgICAgICAgICAgaW5wdXQuaWQgPSAiYWN0aXZlIjsNCiAgICAgICAgICAgIC8vaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpDQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRvZ2dsZUNoYW5uZWxTdGF0dXMoJyIgKyBpZCArICInLCB0aGlzKSIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7Lm1hcHBpbmcuYWN0aXZlLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBDaGFubmVsIG5hbWUNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJ4LW5hbWUiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICBpZiAoQlVMS19FRElUID09IHRydWUpIHsNCiAgICAgICAgICAgICAgICBpbnB1dC5zdHlsZS5ib3JkZXIgPSAic29saWQgMXB4IHJlZCI7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJyZWFkb25seSIsICJ0cnVlIik7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3subWFwcGluZy5jaGFubmVsTmFtZS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgY29udGVudC5kZXNjcmlwdGlvbihkYXRhWyJuYW1lIl0pOw0KICAgICAgICAgICAgLy8gRGVzY3JpcHRpb24NCiAgICAgICAgICAgIHZhciBkYktleSA9ICJ4LWRlc2NyaXB0aW9uIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5tYXBwaW5nLmRlc2NyaXB0aW9uLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5tYXBwaW5nLmRlc2NyaXB0aW9uLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBVcGRhdGUgdGhlIGNoYW5uZWwgbmFtZQ0KICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoIl91dWlkLmtleSIpKSB7DQogICAgICAgICAgICAgICAgaWYgKGRhdGFbIl91dWlkLmtleSJdICE9ICIiKSB7DQogICAgICAgICAgICAgICAgICAgIHZhciBkYktleSA9ICJ4LXVwZGF0ZS1jaGFubmVsLW5hbWUiOw0KICAgICAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KGRiS2V5KTsNCiAgICAgICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YVtkYktleV07DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5tYXBwaW5nLnVwZGF0ZUNoYW5uZWxOYW1lLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgLy8gTG9nbyBVUkwgKENoYW5uZWwpIA0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gInR2Zy1sb2dvIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJpZCIsICJjaGFubmVsLWljb24iKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5tYXBwaW5nLmNoYW5uZWxMb2dvLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBDaGFubmVsIGxvZ28gdXBkYXRlDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAieC11cGRhdGUtY2hhbm5lbC1pY29uIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goZGJLZXkpOw0KICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGFbZGJLZXldOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJpZCIsICJ1cGRhdGUtaWNvbiIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJzsgY2hhbmdlQ2hhbm5lbExvZ28oJyIgKyBpZCArICInKTsiKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5tYXBwaW5nLnVwZGF0ZUNoYW5uZWxMb2dvLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBFeHBhbmQgRVBHIGNhdGVnb3J5DQogICAgICAgICAgICB2YXIgZGJLZXkgPSAieC1jYXRlZ29yeSI7DQogICAgICAgICAgICB2YXIgdGV4dCA9IFsiLSIsICJLaWRzIChFbWJ5IG9ubHkpIiwgIk5ld3MiLCAiTW92aWUiLCAiU2VyaWVzIiwgIlNwb3J0cyJdOw0KICAgICAgICAgICAgdmFyIHZhbHVlcyA9IFsiIiwgIktpZHMiLCAiTmV3cyIsICJNb3ZpZSIsICJTZXJpZXMiLCAiU3BvcnRzIl07DQogICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCBkYXRhW2RiS2V5XSwgZGJLZXkpOw0KICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5tYXBwaW5nLmVwZ0NhdGVnb3J5LnRpdGxlfX0iLCBzZWxlY3QpOw0KICAgICAgICAgICAgLy8gTTNVIGdyb3VwIHRpdGxlDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAieC1ncm91cC10aXRsZSI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgIGlucHV0LmRhdGFzZXQub2xkVmFsdWUgPSBkYXRhW2RiS2V5XTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5tYXBwaW5nLm0zdUdyb3VwVGl0bGUudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIGlmIChkYXRhWyJncm91cC10aXRsZSJdICE9IHVuZGVmaW5lZCkgew0KICAgICAgICAgICAgICAgIGNvbnRlbnQuZGVzY3JpcHRpb24oZGF0YVsiZ3JvdXAtdGl0bGUiXSk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBpZiAoZGF0YVsieC11cGRhdGUtY2hhbm5lbC1ncm91cCJdID09IHRydWUpIHsNCiAgICAgICAgICAgICAgICBpbnB1dC5kaXNhYmxlZCA9IHRydWU7DQogICAgICAgICAgICB9DQogICAgICAgICAgICAvLyBVcGRhdGUgY2hhbm5lbCBncm91cCBjaGVja2JveA0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gIngtdXBkYXRlLWNoYW5uZWwtZ3JvdXAiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChkYktleSk7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRvZ2dsZUdyb3VwVXBkYXRlQ2IoJyIgKyBpZCArICInLCB0aGlzKTsiKTsNCiAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhW2RiS2V5XTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5tYXBwaW5nLnVwZGF0ZUNoYW5uZWxHcm91cC50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgY29udGVudC5kZXNjcmlwdGlvbigie3subWFwcGluZy51cGRhdGVDaGFubmVsR3JvdXAuZGVzY3JpcHRpb259fSIpOw0KICAgICAgICAgICAgLy8gWE1MVFYgZmlsZQ0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gJ3gteG1sdHYtZmlsZSc7DQogICAgICAgICAgICBjb25zdCB4bWxUdkZpbGUgPSBkYXRhW2RiS2V5XTsNCiAgICAgICAgICAgIHZhciB4bWxUdiA9IG5ldyBYTUxUVkZpbGUoKTsNCiAgICAgICAgICAgIGNvbnN0IHhtbFR2RmlsZVNlbGVjdCA9IHhtbFR2LmdldEZpbGVzKGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIHhtbFR2RmlsZVNlbGVjdC5zZXRBdHRyaWJ1dGUoJ25hbWUnLCBkYktleSk7DQogICAgICAgICAgICB4bWxUdkZpbGVTZWxlY3Quc2V0QXR0cmlidXRlKCdpZCcsICdwb3B1cC14bWx0dicpOw0KICAgICAgICAgICAgeG1sVHZGaWxlU2VsZWN0LnNldEF0dHJpYnV0ZSgnb25jaGFuZ2UnLCBgamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCc7IHNldFhtbHR2Q2hhbm5lbCgnJHtpZH0nLCB0aGlzKTtgKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCd7ey5tYXBwaW5nLnhtbHR2RmlsZS50aXRsZX19JywgeG1sVHZGaWxlU2VsZWN0KTsNCiAgICAgICAgICAgIC8vIFhNTFRWIE1hcHBpbmcNCiAgICAgICAgICAgIHZhciBkYktleSA9ICd4LW1hcHBpbmcnOw0KICAgICAgICAgICAgdmFyIHhtbFR2ID0gbmV3IFhNTFRWRmlsZSgpOw0KICAgICAgICAgICAgY29uc3QgY3VycmVudFhtbFR2SWQgPSBkYXRhW2RiS2V5XTsNCiAgICAgICAgICAgIGNvbnN0IFt4bWxUdklkQ29udGFpbmVyLCB4bWxUdklkSW5wdXQsIHhtbFR2SWREYXRhbGlzdF0gPSB4bWxUdi5uZXdYbWxUdklkUGlja2VyKHhtbFR2RmlsZSwgY3VycmVudFhtbFR2SWQpOw0KICAgICAgICAgICAgeG1sVHZJZENvbnRhaW5lci5zZXRBdHRyaWJ1dGUoJ2lkJywgJ3htbHR2LWlkLXBpY2tlci1jb250YWluZXInKTsNCiAgICAgICAgICAgIHhtbFR2SWRJbnB1dC5zZXRBdHRyaWJ1dGUoJ2xpc3QnLCAneG1sdHYtaWQtcGlja2VyLWRhdGFsaXN0Jyk7DQogICAgICAgICAgICB4bWxUdklkSW5wdXQuc2V0QXR0cmlidXRlKCduYW1lJywgJ3gtbWFwcGluZycpOyAvLyBTaG91bGQgc3RheSB4LW1hcHBpbmcgYXMgaXQgd2lsbCBiZSB1c2VkIGluIGRvbmVQb3B1cERhdGEgdG8gbWFrZSBhIHNlcnZlciByZXF1ZXN0DQogICAgICAgICAgICB4bWxUdklkSW5wdXQuc2V0QXR0cmlidXRlKCdpZCcsICd4bWx0di1pZC1waWNrZXItaW5wdXQnKTsNCiAgICAgICAgICAgIHhtbFR2SWRJbnB1dC5zZXRBdHRyaWJ1dGUoJ29uY2hhbmdlJywgYGphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnOyBjaGVja1htbHR2Q2hhbm5lbCgnJHtpZH0nLCB0aGlzLCAnJHt4bWxUdkZpbGV9Jyk7YCk7DQogICAgICAgICAgICB4bWxUdklkRGF0YWxpc3Quc2V0QXR0cmlidXRlKCdpZCcsICd4bWx0di1pZC1waWNrZXItZGF0YWxpc3QnKTsNCiAgICAgICAgICAgIC8vIHNvcnRTZWxlY3QoeG1sVHZJZERhdGFsaXN0KTsgLy8gVE9ETzogQmV0dGVyIHNvcnQgYmVmb3JlIGFkZGluZw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coJ3t7Lm1hcHBpbmcueG1sdHZDaGFubmVsLnRpdGxlfX0nLCB4bWxUdklkQ29udGFpbmVyKTsNCiAgICAgICAgICAgIC8vIFRpbWVzaGlmdA0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gIngtdGltZXNoaWZ0IjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5tYXBwaW5nLnRpbWVzaGlmdC5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoImlkIiwgInRpbWVzaGlmdCIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7Lm1hcHBpbmcudGltZXNoaWZ0LnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBJbnRlcmFjdGlvbg0KICAgICAgICAgICAgY29udGVudC5jcmVhdGVJbnRlcmFjdGlvbigpOw0KICAgICAgICAgICAgLy8gVXBsb2FkIGxvZ28NCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJjYW5jZWwiLCAie3suYnV0dG9uLnVwbG9hZExvZ299fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IHVwbG9hZExvZ28oKTsnKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgLy8gQWJvcnQNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJjYW5jZWwiLCAie3suYnV0dG9uLmNhbmNlbH19Iik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogc2hvd0VsZW1lbnQoInBvcHVwIiwgZmFsc2UpOycpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICAvLyBGaW5pc2hlZA0KICAgICAgICAgICAgdmFyIGlkcyA9IFtdOw0KICAgICAgICAgICAgaWRzID0gZ2V0QWxsU2VsZWN0ZWRDaGFubmVscygpOw0KICAgICAgICAgICAgaWYgKGlkcy5sZW5ndGggPT0gMCkgew0KICAgICAgICAgICAgICAgIGlkcy5wdXNoKGlkKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJzYXZlIiwgInt7LmJ1dHRvbi5kb25lfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBkb25lUG9wdXBEYXRhKCInICsgZGF0YVR5cGUgKyAnIiwgIicgKyBpZHMgKyAnIiwgImZhbHNlIik7Jyk7DQogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBkZWZhdWx0Og0KICAgICAgICAgICAgYnJlYWs7DQogICAgfQ0KICAgIHNob3dQb3BVcEVsZW1lbnQoJ3BvcHVwLWN1c3RvbScpOw0KfQ0KY2xhc3MgWE1MVFZGaWxlIHsNCiAgICBnZXRGaWxlcyhzZXQpIHsNCiAgICAgICAgbGV0IGZpbGVJRHMgPSBnZXRPd25PYmpQcm9wcyhTRVJWRVJbInhlcGciXVsieG1sdHZNYXAiXSk7DQogICAgICAgIGxldCB2YWx1ZXMgPSBuZXcgQXJyYXkoIi0iKTsNCiAgICAgICAgbGV0IHRleHQgPSBuZXcgQXJyYXkoIi0iKTsNCiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBmaWxlSURzLmxlbmd0aDsgaSsrKSB7DQogICAgICAgICAgICBpZiAoZmlsZUlEc1tpXSAhPSAieFRlVmUgRHVtbXkiKSB7DQogICAgICAgICAgICAgICAgdmFsdWVzLnB1c2goZ2V0VmFsdWVGcm9tUHJvdmlkZXJGaWxlKGZpbGVJRHNbaV0sICJ4bWx0diIsICJmaWxlLnh0ZXZlIikpOw0KICAgICAgICAgICAgICAgIHRleHQucHVzaChnZXRWYWx1ZUZyb21Qcm92aWRlckZpbGUoZmlsZUlEc1tpXSwgInhtbHR2IiwgIm5hbWUiKSk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICB2YWx1ZXMucHVzaChmaWxlSURzW2ldKTsNCiAgICAgICAgICAgICAgICB0ZXh0LnB1c2goZmlsZUlEc1tpXSk7DQogICAgICAgICAgICB9DQogICAgICAgIH0NCiAgICAgICAgbGV0IHNlbGVjdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlNFTEVDVCIpOw0KICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRleHQubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgICAgIHZhciBvcHRpb24gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJPUFRJT04iKTsNCiAgICAgICAgICAgIG9wdGlvbi5zZXRBdHRyaWJ1dGUoInZhbHVlIiwgdmFsdWVzW2ldKTsNCiAgICAgICAgICAgIG9wdGlvbi5pbm5lclRleHQgPSB0ZXh0W2ldOw0KICAgICAgICAgICAgc2VsZWN0LmFwcGVuZENoaWxkKG9wdGlvbik7DQogICAgICAgIH0NCiAgICAgICAgaWYgKHNldCAhPSAiIikgew0KICAgICAgICAgICAgc2VsZWN0LnZhbHVlID0gc2V0Ow0KICAgICAgICB9DQogICAgICAgIHJldHVybiBzZWxlY3Q7DQogICAgfQ0KICAgIC8vIFRPRE86IERpc3BsYXkgRlVMTCBsaXN0LCBzZWU6DQogICAgLy8gPiBodHRwczovL3N0YWNrb3ZlcmZsb3cuY29tL3F1ZXN0aW9ucy8zNzQ3ODcyNy9ob3ctY2FuLWktbWFrZS1hLWJyb3dzZXItZGlzcGxheS1hbGwtZGF0YWxpc3Qtb3B0aW9ucy13aGVuLWEtZGVmYXVsdC12YWx1ZS1pcy1zZQ0KICAgIC8vID4gaHR0cHM6Ly93d3cuaG9uZ2tpYXQuY29tL2Jsb2cvc2VhcmNoLXNlbGVjdC11c2luZy1kYXRhbGlzdC8NCiAgICAvLyA+IGh0dHBzOi8vanF1ZXJ5dWkuY29tL2F1dG9jb21wbGV0ZS8jY29tYm9ib3ggT1IgaHR0cHM6Ly9zZWxlY3QyLm9yZy9kcm9wZG93bg0KICAgIC8qKg0KICAgICAqIEBwYXJhbSB4bWxUdkZpbGUgWE1MIGZpbGUgcGF0aCB0byBnZXQgRVBHIGZyb20uDQogICAgICogQHBhcmFtIGN1cnJlbnRYbWxUdklkIEN1cnJlbnQgWE1MVFYgSUQgdG8gc2V0IGluaXRpYWwgaW5wdXQgdmFsdWUgdG8uDQogICAgICogQHJldHVybnMgQXJyYXkgb2YsIHNlcXVlbnRpYWxseToNCiAgICAgKiAxKSBDb250YWluZXIgb2YgdGhlIHBpY2tlci4NCiAgICAgKiAyKSBJbnB1dCBmaWVsZCB0byB0eXBlIGF0IGFuZCBnZXQgY2hvaWNlIGZyb20uDQogICAgICogMykgRGF0YWxpc3QgY29udGFpbmluZyBldmVyeSBvcHRpb24uDQogICAgICovDQogICAgbmV3WG1sVHZJZFBpY2tlcih4bWxUdkZpbGUsIGN1cnJlbnRYbWxUdklkKSB7DQogICAgICAgIGNvbnN0IGNvbnRhaW5lciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOw0KICAgICAgICBjb25zdCBpbnB1dCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2lucHV0Jyk7DQogICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgndHlwZScsICd0ZXh0Jyk7DQogICAgICAgIGlucHV0LnZhbHVlID0gY3VycmVudFhtbFR2SWQgPyBjdXJyZW50WG1sVHZJZCA6ICctJzsNCiAgICAgICAgY29udGFpbmVyLmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgY29uc3QgZGF0YWxpc3QgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkYXRhbGlzdCcpOw0KICAgICAgICBjb25zdCBvcHRpb24gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdvcHRpb24nKTsNCiAgICAgICAgb3B0aW9uLnNldEF0dHJpYnV0ZSgndmFsdWUnLCAnLScpOw0KICAgICAgICBvcHRpb24uaW5uZXJUZXh0ID0gJy0nOw0KICAgICAgICBkYXRhbGlzdC5hcHBlbmRDaGlsZChvcHRpb24pOw0KICAgICAgICBjb25zdCBlcGcgPSBTRVJWRVJbJ3hlcGcnXVsneG1sdHZNYXAnXVt4bWxUdkZpbGVdOw0KICAgICAgICBpZiAoZXBnKSB7DQogICAgICAgICAgICBjb25zdCBwcm9ncmFtSWRzID0gZ2V0T3duT2JqUHJvcHMoZXBnKTsNCiAgICAgICAgICAgIHByb2dyYW1JZHMuZm9yRWFjaCgocHJvZ3JhbUlkKSA9PiB7DQogICAgICAgICAgICAgICAgY29uc3QgcHJvZ3JhbSA9IGVwZ1twcm9ncmFtSWRdOw0KICAgICAgICAgICAgICAgIGlmIChwcm9ncmFtLmhhc093blByb3BlcnR5KCdkaXNwbGF5LW5hbWVzJykpIHsNCiAgICAgICAgICAgICAgICAgICAgcHJvZ3JhbVsnZGlzcGxheS1uYW1lcyddLmZvckVhY2goKGRpc3BsYXlOYW1lKSA9PiB7DQogICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBvcHRpb24gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdvcHRpb24nKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIG9wdGlvbi5zZXRBdHRyaWJ1dGUoJ3ZhbHVlJywgcHJvZ3JhbUlkKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIG9wdGlvbi5pbm5lclRleHQgPSBkaXNwbGF5TmFtZVsnVmFsdWUnXTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGRhdGFsaXN0LmFwcGVuZENoaWxkKG9wdGlvbik7DQogICAgICAgICAgICAgICAgICAgIH0pOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICAgICAgY29uc3Qgb3B0aW9uID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnb3B0aW9uJyk7DQogICAgICAgICAgICAgICAgICAgIG9wdGlvbi5zZXRBdHRyaWJ1dGUoJ3ZhbHVlJywgcHJvZ3JhbUlkKTsNCiAgICAgICAgICAgICAgICAgICAgb3B0aW9uLmlubmVyVGV4dCA9ICctJzsNCiAgICAgICAgICAgICAgICAgICAgZGF0YWxpc3QuYXBwZW5kQ2hpbGQob3B0aW9uKTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9KTsNCiAgICAgICAgfQ0KICAgICAgICBjb250YWluZXIuYXBwZW5kQ2hpbGQoZGF0YWxpc3QpOw0KICAgICAgICByZXR1cm4gW2NvbnRhaW5lciwgaW5wdXQsIGRhdGFsaXN0XTsNCiAgICB9DQp9DQpmdW5jdGlvbiBnZXRWYWx1ZUZyb21Qcm92aWRlckZpbGUoZmlsZSwgZmlsZVR5cGUsIGtleSkgew0KICAgIGlmIChmaWxlID09ICJ4VGVWZSBEdW1teSIpIHsNCiAgICAgICAgcmV0dXJuIGZpbGU7DQogICAgfQ0KICAgIGxldCBmaWxlSUQ7DQogICAgbGV0IGluZGljYXRvciA9IGZpbGUuY2hhckF0KDApOw0KICAgIHN3aXRjaCAoaW5kaWNhdG9yKSB7DQogICAgICAgIGNhc2UgIk0iOg0KICAgICAgICAgICAgZmlsZVR5cGUgPSAibTN1IjsNCiAgICAgICAgICAgIGZpbGVJRCA9IGZpbGU7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSAiSCI6DQogICAgICAgICAgICBmaWxlVHlwZSA9ICJoZGhyIjsNCiAgICAgICAgICAgIGZpbGVJRCA9IGZpbGU7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSAiWCI6DQogICAgICAgICAgICBmaWxlVHlwZSA9ICJ4bWx0diI7DQogICAgICAgICAgICBmaWxlSUQgPSBmaWxlLnN1YnN0cmluZygwLCBmaWxlLmxhc3RJbmRleE9mKCcuJykpOw0KICAgICAgICAgICAgYnJlYWs7DQogICAgfQ0KICAgIGlmIChTRVJWRVJbInNldHRpbmdzIl1bImZpbGVzIl1bZmlsZVR5cGVdLmhhc093blByb3BlcnR5KGZpbGVJRCkgPT0gdHJ1ZSkgew0KICAgICAgICB2YXIgZGF0YSA9IFNFUlZFUlsic2V0dGluZ3MiXVsiZmlsZXMiXVtmaWxlVHlwZV1bZmlsZUlEXTsNCiAgICAgICAgcmV0dXJuIGRhdGFba2V5XTsNCiAgICB9DQogICAgcmV0dXJuOw0KfQ0KZnVuY3Rpb24gc2V0WG1sdHZDaGFubmVsKGVwZ01hcElkLCB4bWxUdkZpbGVTZWxlY3QpIHsNCiAgICBjb25zdCB4bWxUdiA9IG5ldyBYTUxUVkZpbGUoKTsNCiAgICBjb25zdCBuZXdYbWxUdkZpbGUgPSB4bWxUdkZpbGVTZWxlY3QudmFsdWU7DQogICAgLy8gUmVtb3ZlIG9sZCBYTUxUViBJRCBzZWxlY3Rpb24gYm94DQogICAgY29uc3QgeG1sVHZJZFBpY2tlclBhcmVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd4bWx0di1pZC1waWNrZXItY29udGFpbmVyJykucGFyZW50RWxlbWVudDsNCiAgICB4bWxUdklkUGlja2VyUGFyZW50LmlubmVySFRNTCA9ICcnOw0KICAgIC8vIENyZWF0ZSBuZXcgWE1MVFYgSUQgc2VsZWN0aW9uIGJveA0KICAgIGNvbnN0IHR2Z0lkID0gU0VSVkVSWyd4ZXBnJ11bJ2VwZ01hcHBpbmcnXVtlcGdNYXBJZF1bJ3R2Zy1pZCddOw0KICAgIGNvbnN0IFt4bWxUdklkQ29udGFpbmVyLCB4bWxUdklkSW5wdXQsIHhtbFR2SWREYXRhbGlzdF0gPSB4bWxUdi5uZXdYbWxUdklkUGlja2VyKG5ld1htbFR2RmlsZSwgdHZnSWQpOw0KICAgIHhtbFR2SWRDb250YWluZXIuc2V0QXR0cmlidXRlKCdpZCcsICd4bWx0di1pZC1waWNrZXItY29udGFpbmVyJyk7DQogICAgeG1sVHZJZElucHV0LnNldEF0dHJpYnV0ZSgnbGlzdCcsICd4bWx0di1pZC1waWNrZXItZGF0YWxpc3QnKTsNCiAgICB4bWxUdklkSW5wdXQuc2V0QXR0cmlidXRlKCduYW1lJywgJ3gtbWFwcGluZycpOyAvLyBTaG91bGQgc3RheSB4LW1hcHBpbmcgYXMgaXQgd2lsbCBiZSB1c2VkIGluIGRvbmVQb3B1cERhdGEgdG8gbWFrZSBhIHNlcnZlciByZXF1ZXN0DQogICAgeG1sVHZJZElucHV0LnNldEF0dHJpYnV0ZSgnaWQnLCAneG1sdHYtaWQtcGlja2VyLWlucHV0Jyk7DQogICAgeG1sVHZJZElucHV0LnNldEF0dHJpYnV0ZSgnb25jaGFuZ2UnLCBgamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCc7IGNoZWNrWG1sdHZDaGFubmVsKCcke2VwZ01hcElkfScsIHRoaXMsICcke25ld1htbFR2RmlsZX0nKTtgKTsNCiAgICB4bWxUdklkSW5wdXQuY2xhc3NMaXN0LmFkZCgnY2hhbmdlZCcpOw0KICAgIHhtbFR2SWREYXRhbGlzdC5zZXRBdHRyaWJ1dGUoJ2lkJywgJ3htbHR2LWlkLXBpY2tlci1kYXRhbGlzdCcpOw0KICAgIC8vIHNvcnRTZWxlY3QoeG1sVHZJZERhdGFsaXN0KTsgLy8gVE9ETzogQmV0dGVyIHNvcnQgYmVmb3JlIGFkZGluZw0KICAgIC8vIEFkZCBuZXcgWE1MVFYgSUQgc2VsZWN0aW9uIGJveCB0byBpdCdzIHBhcmVudA0KICAgIHhtbFR2SWRQaWNrZXJQYXJlbnQuYXBwZW5kQ2hpbGQoeG1sVHZJZENvbnRhaW5lcik7DQogICAgY2hlY2tYbWx0dkNoYW5uZWwoZXBnTWFwSWQsIHhtbFR2SWRJbnB1dCwgbmV3WG1sVHZGaWxlKTsNCn0NCmZ1bmN0aW9uIGNoZWNrWG1sdHZDaGFubmVsKGVwZ01hcElkLCB4bWxUdklkSW5wdXQsIHhtbFR2RmlsZSkgew0KICAgIC8vIElmIGVtcHR5LCBzZXQgdG8gJy0nDQogICAgeG1sVHZJZElucHV0LnZhbHVlID0geG1sVHZJZElucHV0LnZhbHVlID8geG1sVHZJZElucHV0LnZhbHVlIDogJy0nOw0KICAgIGNvbnN0IG5ld1htbFR2SWQgPSB4bWxUdklkSW5wdXQudmFsdWU7DQogICAgY29uc3QgY2hhbm5lbEFjdGl2ZUNiID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2FjdGl2ZScpOw0KICAgIGNvbnN0IGNoYW5uZWxBY3RpdmUgPSBuZXdYbWxUdklkICE9ICctJzsNCiAgICBjaGFubmVsQWN0aXZlQ2IuY2hlY2tlZCA9IGNoYW5uZWxBY3RpdmU7DQogICAgY2hhbm5lbEFjdGl2ZUNiLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJzsNCiAgICBpZiAoeG1sVHZGaWxlICE9ICd4VGVWZSBEdW1teScgJiYgY2hhbm5lbEFjdGl2ZSA9PSB0cnVlKSB7DQogICAgICAgIGNoYW5nZUNoYW5uZWxMb2dvKGVwZ01hcElkKTsNCiAgICAgICAgcmV0dXJuOw0KICAgIH0NCiAgICBpZiAoeG1sVHZGaWxlID09ICd4VGVWZSBEdW1teScpIHsNCiAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3VwZGF0ZS1pY29uJykuY2hlY2tlZCA9IGZhbHNlOw0KICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndXBkYXRlLWljb24nKS5jbGFzc05hbWUgPSAnY2hhbmdlZCc7DQogICAgfQ0KfQ0KZnVuY3Rpb24gY2hhbmdlQ2hhbm5lbExvZ28oZXBnTWFwSWQpIHsNCiAgICBjb25zdCBjaGFubmVsID0gU0VSVkVSWyd4ZXBnJ11bJ2VwZ01hcHBpbmcnXVtlcGdNYXBJZF07DQogICAgY29uc3QgeG1sVHZGaWxlU2VsZWN0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3BvcHVwLXhtbHR2Jyk7DQogICAgY29uc3QgeG1sVHZGaWxlID0geG1sVHZGaWxlU2VsZWN0Lm9wdGlvbnNbeG1sVHZGaWxlU2VsZWN0LnNlbGVjdGVkSW5kZXhdLnZhbHVlOw0KICAgIGNvbnN0IHhtbFR2SWRJbnB1dCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd4bWx0di1pZC1waWNrZXItaW5wdXQnKTsNCiAgICBjb25zdCBuZXdYbWxUdklkID0geG1sVHZJZElucHV0LnZhbHVlOw0KICAgIGNvbnN0IHhtbFR2TG9nbyA9IFNFUlZFUlsneGVwZyddWyd4bWx0dk1hcCddW3htbFR2RmlsZV1bbmV3WG1sVHZJZF1bJ2ljb24nXTsNCiAgICBjb25zdCB1cGRhdGVMb2dvID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3VwZGF0ZS1pY29uJykuY2hlY2tlZDsNCiAgICBsZXQgbG9nbzsNCiAgICBpZiAodXBkYXRlTG9nbyA9PSB0cnVlICYmIHhtbFR2RmlsZSAhPSAneFRlVmUgRHVtbXknKSB7DQogICAgICAgIGlmIChTRVJWRVJbJ3hlcGcnXVsneG1sdHZNYXAnXVt4bWxUdkZpbGVdLmhhc093blByb3BlcnR5KG5ld1htbFR2SWQpKSB7DQogICAgICAgICAgICBsb2dvID0geG1sVHZMb2dvOw0KICAgICAgICB9DQogICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgbG9nbyA9IGNoYW5uZWxbJ3R2Zy1sb2dvJ107DQogICAgICAgIH0NCiAgICAgICAgdmFyIGxvZ29JbnB1dCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjaGFubmVsLWljb24nKTsNCiAgICAgICAgbG9nb0lucHV0LnZhbHVlID0gbG9nbzsNCiAgICAgICAgaWYgKEJVTEtfRURJVCA9PSBmYWxzZSkgew0KICAgICAgICAgICAgbG9nb0lucHV0LmNsYXNzTmFtZSA9ICdjaGFuZ2VkJzsNCiAgICAgICAgfQ0KICAgIH0NCn0NCmZ1bmN0aW9uIHNhdmVQb3B1cERhdGEoZGF0YVR5cGUsIGlkLCByZW1vdmUsIG9wdGlvbikgew0KICAgIGlmIChkYXRhVHlwZSA9PSAibWFwcGluZyIpIHsNCiAgICAgICAgbGV0IGRhdGEgPSB7fTsNCiAgICAgICAgbGV0IGNtZCA9ICJzYXZlRXBnTWFwcGluZyI7DQogICAgICAgIGRhdGFbImVwZ01hcHBpbmciXSA9IFNFUlZFUlsieGVwZyJdWyJlcGdNYXBwaW5nIl07DQogICAgICAgIGxldCBzZXJ2ZXIgPSBuZXcgU2VydmVyKGNtZCk7DQogICAgICAgIHNlcnZlci5yZXF1ZXN0KGRhdGEpOw0KICAgICAgICBkZWxldGUgVU5ET1siZXBnTWFwcGluZyJdOw0KICAgICAgICByZXR1cm47DQogICAgfQ0KICAgIGxldCBkaXYgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicG9wdXAtY3VzdG9tIik7DQogICAgbGV0IGlucHV0cyA9IGRpdi5nZXRFbGVtZW50c0J5VGFnTmFtZSgiVEFCTEUiKVswXS5nZXRFbGVtZW50c0J5VGFnTmFtZSgiSU5QVVQiKTsNCiAgICBsZXQgc2VsZWN0cyA9IGRpdi5nZXRFbGVtZW50c0J5VGFnTmFtZSgiVEFCTEUiKVswXS5nZXRFbGVtZW50c0J5VGFnTmFtZSgiU0VMRUNUIik7DQogICAgbGV0IGlucHV0ID0ge307DQogICAgbGV0IGNvbmZpcm1Nc2c7DQogICAgZm9yIChsZXQgaSA9IDA7IGkgPCBzZWxlY3RzLmxlbmd0aDsgaSsrKSB7DQogICAgICAgIHZhciBuYW1lOw0KICAgICAgICBuYW1lID0gc2VsZWN0c1tpXS5uYW1lOw0KICAgICAgICB2YXIgdmFsdWUgPSBzZWxlY3RzW2ldLnZhbHVlOw0KICAgICAgICBzd2l0Y2ggKG5hbWUpIHsNCiAgICAgICAgICAgIGNhc2UgInR1bmVyIjoNCiAgICAgICAgICAgICAgICBpbnB1dFtuYW1lXSA9IHBhcnNlSW50KHZhbHVlKTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICAgICAgaW5wdXRbbmFtZV0gPSB2YWx1ZTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgfQ0KICAgIH0NCiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGlucHV0cy5sZW5ndGg7IGkrKykgew0KICAgICAgICBzd2l0Y2ggKGlucHV0c1tpXS50eXBlKSB7DQogICAgICAgICAgICBjYXNlICJjaGVja2JveCI6DQogICAgICAgICAgICAgICAgbmFtZSA9IGlucHV0c1tpXS5uYW1lOw0KICAgICAgICAgICAgICAgIGlucHV0W25hbWVdID0gaW5wdXRzW2ldLmNoZWNrZWQ7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ0ZXh0IjoNCiAgICAgICAgICAgIGNhc2UgImhpZGRlbiI6DQogICAgICAgICAgICBjYXNlICJwYXNzd29yZCI6DQogICAgICAgICAgICAgICAgbmFtZSA9IGlucHV0c1tpXS5uYW1lOw0KICAgICAgICAgICAgICAgIHN3aXRjaCAobmFtZSkgew0KICAgICAgICAgICAgICAgICAgICBjYXNlICJ0dW5lciI6DQogICAgICAgICAgICAgICAgICAgICAgICBpbnB1dFtuYW1lXSA9IHBhcnNlSW50KGlucHV0c1tpXS52YWx1ZSk7DQogICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgICAgICAgICAgICAgIGlucHV0W25hbWVdID0gaW5wdXRzW2ldLnZhbHVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICB9DQogICAgfQ0KICAgIGxldCBkYXRhID0ge307DQogICAgbGV0IGNtZDsNCiAgICBpZiAocmVtb3ZlID09IHRydWUpIHsNCiAgICAgICAgaW5wdXRbImRlbGV0ZSJdID0gdHJ1ZTsNCiAgICB9DQogICAgc3dpdGNoIChkYXRhVHlwZSkgew0KICAgICAgICBjYXNlICJ1c2VycyI6DQogICAgICAgICAgICBjb25maXJtTXNnID0gIkRlbGV0ZSB0aGlzIHVzZXI/IjsNCiAgICAgICAgICAgIGlmIChpZCA9PSAiLSIpIHsNCiAgICAgICAgICAgICAgICBjbWQgPSAic2F2ZU5ld1VzZXIiOw0KICAgICAgICAgICAgICAgIGRhdGFbInVzZXJEYXRhIl0gPSBpbnB1dDsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgICAgIGNtZCA9ICJzYXZlVXNlckRhdGEiOw0KICAgICAgICAgICAgICAgIGxldCBkID0ge307DQogICAgICAgICAgICAgICAgZFtpZF0gPSBpbnB1dDsNCiAgICAgICAgICAgICAgICBkYXRhWyJ1c2VyRGF0YSJdID0gZDsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJtM3UiOg0KICAgICAgICAgICAgY29uZmlybU1zZyA9ICJEZWxldGUgdGhpcyBwbGF5bGlzdD8iOw0KICAgICAgICAgICAgc3dpdGNoIChvcHRpb24pIHsNCiAgICAgICAgICAgICAgICAvLyBQb3B1cDogU2F2ZQ0KICAgICAgICAgICAgICAgIGNhc2UgMDoNCiAgICAgICAgICAgICAgICAgICAgY21kID0gInNhdmVGaWxlc00zVSI7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIC8vIFBvcHVwOiBVcGRhdGUNCiAgICAgICAgICAgICAgICBjYXNlIDE6DQogICAgICAgICAgICAgICAgICAgIGNtZCA9ICJ1cGRhdGVGaWxlTTNVIjsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBkYXRhWyJmaWxlcyJdID0ge307DQogICAgICAgICAgICBkYXRhWyJmaWxlcyJdW2RhdGFUeXBlXSA9IHt9Ow0KICAgICAgICAgICAgZGF0YVsiZmlsZXMiXVtkYXRhVHlwZV1baWRdID0gaW5wdXQ7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSAiaGRociI6DQogICAgICAgICAgICBjb25maXJtTXNnID0gIkRlbGV0ZSB0aGlzIEhESG9tZVJ1biB0dW5lcj8iOw0KICAgICAgICAgICAgc3dpdGNoIChvcHRpb24pIHsNCiAgICAgICAgICAgICAgICAvLyBQb3B1cDogU2F2ZQ0KICAgICAgICAgICAgICAgIGNhc2UgMDoNCiAgICAgICAgICAgICAgICAgICAgY21kID0gInNhdmVGaWxlc0hESFIiOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICAvLyBQb3B1cDogVXBkYXRlDQogICAgICAgICAgICAgICAgY2FzZSAxOg0KICAgICAgICAgICAgICAgICAgICBjbWQgPSAidXBkYXRlRmlsZUhESFIiOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGRhdGFbImZpbGVzIl0gPSB7fTsNCiAgICAgICAgICAgIGRhdGFbImZpbGVzIl1bZGF0YVR5cGVdID0ge307DQogICAgICAgICAgICBkYXRhWyJmaWxlcyJdW2RhdGFUeXBlXVtpZF0gPSBpbnB1dDsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJ4bWx0diI6DQogICAgICAgICAgICBjb25maXJtTXNnID0gIkRlbGV0ZSB0aGlzIFhNTFRWIGZpbGU/IjsNCiAgICAgICAgICAgIHN3aXRjaCAob3B0aW9uKSB7DQogICAgICAgICAgICAgICAgLy8gUG9wdXA6IFNhdmUNCiAgICAgICAgICAgICAgICBjYXNlIDA6DQogICAgICAgICAgICAgICAgICAgIGNtZCA9ICJzYXZlRmlsZXNYTUxUViI7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIC8vIFBvcHVwOiBVcGRhdGUNCiAgICAgICAgICAgICAgICBjYXNlIDE6DQogICAgICAgICAgICAgICAgICAgIGNtZCA9ICJ1cGRhdGVGaWxlWE1MVFYiOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGRhdGFbImZpbGVzIl0gPSB7fTsNCiAgICAgICAgICAgIGRhdGFbImZpbGVzIl1bZGF0YVR5cGVdID0ge307DQogICAgICAgICAgICBkYXRhWyJmaWxlcyJdW2RhdGFUeXBlXVtpZF0gPSBpbnB1dDsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJmaWx0ZXIiOg0KICAgICAgICAgICAgY29uZmlybU1zZyA9ICJEZWxldGUgdGhpcyBmaWx0ZXI/IjsNCiAgICAgICAgICAgIGNtZCA9ICJzYXZlRmlsdGVyIjsNCiAgICAgICAgICAgIGRhdGFbImZpbHRlciJdID0ge307DQogICAgICAgICAgICBkYXRhWyJmaWx0ZXIiXVtpZF0gPSBpbnB1dDsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBkZWZhdWx0Og0KICAgICAgICAgICAgcmV0dXJuOw0KICAgIH0NCiAgICBpZiAocmVtb3ZlID09IHRydWUpIHsNCiAgICAgICAgaWYgKCFjb25maXJtKGNvbmZpcm1Nc2cpKSB7DQogICAgICAgICAgICBzaG93RWxlbWVudCgicG9wdXAiLCBmYWxzZSk7DQogICAgICAgICAgICByZXR1cm47DQogICAgICAgIH0NCiAgICB9DQogICAgbGV0IHNlcnZlciA9IG5ldyBTZXJ2ZXIoY21kKTsNCiAgICBzZXJ2ZXIucmVxdWVzdChkYXRhKTsNCn0NCmZ1bmN0aW9uIGRvbmVQb3B1cERhdGEoZGF0YVR5cGUsIGlkc1N0cikgew0KICAgIGxldCBpZHMgPSBpZHNTdHIuc3BsaXQoJywnKTsNCiAgICBsZXQgZGl2ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInBvcHVwLWN1c3RvbSIpOw0KICAgIGxldCBpbnB1dHMgPSBkaXYuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSgiY2hhbmdlZCIpOw0KICAgIGlkcy5mb3JFYWNoKGlkID0+IHsNCiAgICAgICAgbGV0IGlucHV0Ow0KICAgICAgICBpbnB1dCA9IFNFUlZFUlsieGVwZyJdWyJlcGdNYXBwaW5nIl1baWRdOw0KICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGlucHV0cy5sZW5ndGg7IGkrKykgew0KICAgICAgICAgICAgbGV0IG5hbWU7DQogICAgICAgICAgICBsZXQgdmFsdWU7DQogICAgICAgICAgICBzd2l0Y2ggKGlucHV0c1tpXS50YWdOYW1lKSB7DQogICAgICAgICAgICAgICAgY2FzZSAiSU5QVVQiOg0KICAgICAgICAgICAgICAgICAgICBzd2l0Y2ggKGlucHV0c1tpXS50eXBlKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBjYXNlICJjaGVja2JveCI6DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZSA9IGlucHV0c1tpXS5uYW1lOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlID0gaW5wdXRzW2ldLmNoZWNrZWQ7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5wdXRbbmFtZV0gPSB2YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgInRleHQiOg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWUgPSBpbnB1dHNbaV0ubmFtZTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IGlucHV0c1tpXS52YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnB1dFtuYW1lXSA9IHZhbHVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgIlNFTEVDVCI6DQogICAgICAgICAgICAgICAgICAgIG5hbWUgPSBpbnB1dHNbaV0ubmFtZTsNCiAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSBpbnB1dHNbaV0udmFsdWU7DQogICAgICAgICAgICAgICAgICAgIGlucHV0W25hbWVdID0gdmFsdWU7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgc3dpdGNoIChuYW1lKSB7DQogICAgICAgICAgICAgICAgY2FzZSAidHZnLWxvZ28iOg0KICAgICAgICAgICAgICAgICAgICAvLyhkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkuY2hpbGROb2Rlc1syXS5maXJzdENoaWxkIGFzIEhUTUxFbGVtZW50KS5zZXRBdHRyaWJ1dGUoInNyYyIsIHZhbHVlKQ0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBjYXNlICJ4LW5hbWUiOg0KICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkuY2hpbGROb2Rlc1szXS5maXJzdENoaWxkLmlubmVySFRNTCA9IHZhbHVlOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBjYXNlICJ4LWNhdGVnb3J5IjoNCiAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpLmNoaWxkTm9kZXNbM10uZmlyc3RDaGlsZC5jbGFzc05hbWUgPSB2YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAieC1ncm91cC10aXRsZSI6DQogICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5jaGlsZE5vZGVzWzVdLmZpcnN0Q2hpbGQuaW5uZXJIVE1MID0gdmFsdWU7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgIngteG1sdHYtZmlsZSI6DQogICAgICAgICAgICAgICAgICAgIGlmICh2YWx1ZSAhPSAieFRlVmUgRHVtbXkiICYmIHZhbHVlICE9ICItIikgew0KICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSBnZXRWYWx1ZUZyb21Qcm92aWRlckZpbGUodmFsdWUsICJ4bWx0diIsICJuYW1lIik7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgaWYgKHZhbHVlID09ICItIikgew0KICAgICAgICAgICAgICAgICAgICAgICAgaW5wdXRbIngtYWN0aXZlIl0gPSBmYWxzZTsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkuY2hpbGROb2Rlc1s2XS5maXJzdENoaWxkLmlubmVySFRNTCA9IHZhbHVlOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBjYXNlICJ4LW1hcHBpbmciOg0KICAgICAgICAgICAgICAgICAgICBpZiAodmFsdWUgPT0gIi0iKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBpbnB1dFsieC1hY3RpdmUiXSA9IGZhbHNlOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5jaGlsZE5vZGVzWzddLmZpcnN0Q2hpbGQuaW5uZXJIVE1MID0gdmFsdWU7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgIngtdGltZXNoaWZ0IjoNCiAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpLmNoaWxkTm9kZXNbOF0uZmlyc3RDaGlsZC5pbm5lckhUTUwgPSB2YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGNyZWF0ZVNlYXJjaE9iaigpOw0KICAgICAgICAgICAgc2VhcmNoSW5NYXBwaW5nKCk7DQogICAgICAgIH0NCiAgICAgICAgaWYgKGlucHV0WyJ4LWFjdGl2ZSJdID09IGZhbHNlKSB7DQogICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkuY2xhc3NOYW1lID0gIm5vdEFjdGl2ZUVQRyI7DQogICAgICAgIH0NCiAgICAgICAgZWxzZSB7DQogICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkuY2xhc3NOYW1lID0gImFjdGl2ZUVQRyI7DQogICAgICAgIH0NCiAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpLmNoaWxkTm9kZXNbMl0uZmlyc3RDaGlsZC5zZXRBdHRyaWJ1dGUoInNyYyIsIGlucHV0WyJ0dmctbG9nbyJdKTsNCiAgICB9KTsNCiAgICBzaG93RWxlbWVudCgicG9wdXAiLCBmYWxzZSk7DQogICAgcmV0dXJuOw0KfQ0KZnVuY3Rpb24gc2hvd1ByZXZpZXcoZWxlbWVudCkgew0KICAgIGxldCBkaXYgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibXlTdHJlYW1zQm94Iik7DQogICAgc3dpdGNoIChlbGVtZW50KSB7DQogICAgICAgIGNhc2UgZmFsc2U6DQogICAgICAgICAgICBkaXYuY2xhc3NOYW1lID0gIm5vdFZpc2libGUiOw0KICAgICAgICAgICAgcmV0dXJuOw0KICAgIH0NCiAgICBsZXQgc3RyZWFtcyA9IFsiYWN0aXZlU3RyZWFtcyIsICJpbmFjdGl2ZVN0cmVhbXMiXTsNCiAgICBzdHJlYW1zLmZvckVhY2gocHJldmlldyA9PiB7DQogICAgICAgIGxldCB0YWJsZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHByZXZpZXcpOw0KICAgICAgICB0YWJsZS5pbm5lckhUTUwgPSAiIjsNCiAgICAgICAgbGV0IG9iaiA9IFNFUlZFUlsiZGF0YSJdWyJTdHJlYW1QcmV2aWV3VUkiXVtwcmV2aWV3XTsNCiAgICAgICAgb2JqLmZvckVhY2goY2hhbm5lbCA9PiB7DQogICAgICAgICAgICBsZXQgdHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJUUiIpOw0KICAgICAgICAgICAgbGV0IHRkS2V5ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgIGxldCB0ZFZhbCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICB0ZEtleS5jbGFzc05hbWUgPSAidGRLZXkiOw0KICAgICAgICAgICAgdGRWYWwuY2xhc3NOYW1lID0gInRkVmFsIjsNCiAgICAgICAgICAgIHN3aXRjaCAocHJldmlldykgew0KICAgICAgICAgICAgICAgIGNhc2UgImFjdGl2ZVN0cmVhbXMiOg0KICAgICAgICAgICAgICAgICAgICB0ZEtleS5pbm5lclRleHQgPSAiQ2hhbm5lbDogKCspIjsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAiaW5hY3RpdmVTdHJlYW1zIjoNCiAgICAgICAgICAgICAgICAgICAgdGRLZXkuaW5uZXJUZXh0ID0gIkNoYW5uZWw6ICgtKSI7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgdGRWYWwuaW5uZXJUZXh0ID0gY2hhbm5lbDsNCiAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKHRkS2V5KTsNCiAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKHRkVmFsKTsNCiAgICAgICAgICAgIHRhYmxlLmFwcGVuZENoaWxkKHRyKTsNCiAgICAgICAgfSk7DQogICAgfSk7DQogICAgc2hvd0VsZW1lbnQoImxvYWRpbmciLCBmYWxzZSk7DQogICAgZGl2LmNsYXNzTmFtZSA9ICJ2aXNpYmxlIjsNCiAgICByZXR1cm47DQp9DQo=" webUI["html/js/network_ts.js"] = "Y2xhc3MgU2VydmVyIHsNCiAgICBjb25zdHJ1Y3RvcihjbWQpIHsNCiAgICAgICAgdGhpcy5jbWQgPSBjbWQ7DQogICAgfQ0KICAgIHJlcXVlc3QoZGF0YSkgew0KICAgICAgICBpZiAoU0VSVkVSX0NPTk5FQ1RJT04gPT0gdHJ1ZSkgew0KICAgICAgICAgICAgcmV0dXJuOw0KICAgICAgICB9DQogICAgICAgIFNFUlZFUl9DT05ORUNUSU9OID0gdHJ1ZTsNCiAgICAgICAgaWYgKHRoaXMuY21kICE9ICJ1cGRhdGVMb2ciKSB7DQogICAgICAgICAgICBzaG93RWxlbWVudCgibG9hZGluZyIsIHRydWUpOw0KICAgICAgICAgICAgVU5ETyA9IG5ldyBPYmplY3QoKTsNCiAgICAgICAgfQ0KICAgICAgICBzd2l0Y2ggKHdpbmRvdy5sb2NhdGlvbi5wcm90b2NvbCkgew0KICAgICAgICAgICAgY2FzZSAiaHR0cDoiOg0KICAgICAgICAgICAgICAgIHRoaXMucHJvdG9jb2wgPSAid3M6Ly8iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiaHR0cHM6IjoNCiAgICAgICAgICAgICAgICB0aGlzLnByb3RvY29sID0gIndzczovLyI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIH0NCiAgICAgICAgdmFyIHVybCA9IHRoaXMucHJvdG9jb2wgKyB3aW5kb3cubG9jYXRpb24uaG9zdG5hbWUgKyAiOiIgKyB3aW5kb3cubG9jYXRpb24ucG9ydCArICIvZGF0YS8iICsgIj9Ub2tlbj0iICsgZ2V0Q29va2llKCJUb2tlbiIpOw0KICAgICAgICBkYXRhWyJjbWQiXSA9IHRoaXMuY21kOw0KICAgICAgICB2YXIgd3MgPSBuZXcgV2ViU29ja2V0KHVybCk7DQogICAgICAgIHdzLm9ub3BlbiA9IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgICAgIFdTX0FWQUlMQUJMRSA9IHRydWU7DQogICAgICAgICAgICB0aGlzLnNlbmQoSlNPTi5zdHJpbmdpZnkoZGF0YSkpOw0KICAgICAgICB9Ow0KICAgICAgICB3cy5vbmVycm9yID0gZnVuY3Rpb24gKHdzRXJyRXZ0KSB7DQogICAgICAgICAgICBjb25zb2xlLmxvZygiTm8gd2Vic29ja2V0IGNvbm5lY3Rpb24gdG8geFRlVmUgY291bGQgYmUgZXN0YWJsaXNoZWQuIENoZWNrIHlvdXIgbmV0d29yayBjb25maWd1cmF0aW9uLiIpOw0KICAgICAgICAgICAgU0VSVkVSX0NPTk5FQ1RJT04gPSBmYWxzZTsNCiAgICAgICAgICAgIGlmIChXU19BVkFJTEFCTEUgPT0gZmFsc2UpIHsNCiAgICAgICAgICAgICAgICBhbGVydCgiTm8gd2Vic29ja2V0IGNvbm5lY3Rpb24gdG8geFRlVmUgY291bGQgYmUgZXN0YWJsaXNoZWQuIENoZWNrIHlvdXIgbmV0d29yayBjb25maWd1cmF0aW9uLiIpOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9Ow0KICAgICAgICB3cy5vbm1lc3NhZ2UgPSBmdW5jdGlvbiAod3NNZXNzYWdlRXZ0KSB7DQogICAgICAgICAgICBTRVJWRVJfQ09OTkVDVElPTiA9IGZhbHNlOw0KICAgICAgICAgICAgc2hvd0VsZW1lbnQoImxvYWRpbmciLCBmYWxzZSk7DQogICAgICAgICAgICBjb25zdCByZXNwb25zZSA9IEpTT04ucGFyc2Uod3NNZXNzYWdlRXZ0LmRhdGEpOw0KICAgICAgICAgICAgaWYgKHJlc3BvbnNlLmhhc093blByb3BlcnR5KCJ0b2tlbiIpKSB7DQogICAgICAgICAgICAgICAgZG9jdW1lbnQuY29va2llID0gIlRva2VuPSIgKyByZXNwb25zZVsidG9rZW4iXTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGlmIChyZXNwb25zZVsic3RhdHVzIl0gPT0gZmFsc2UpIHsNCiAgICAgICAgICAgICAgICBhbGVydChyZXNwb25zZVsiZXJyIl0pOw0KICAgICAgICAgICAgICAgIHJldHVybjsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGlmIChyZXNwb25zZS5oYXNPd25Qcm9wZXJ0eSgnb3BlbkxpbmsnKSkgew0KICAgICAgICAgICAgICAgIHdpbmRvdy5sb2NhdGlvbiA9IHJlc3BvbnNlWydvcGVuTGluayddOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgaWYgKHJlc3BvbnNlLmhhc093blByb3BlcnR5KCJyZWxvYWQiKSkgew0KICAgICAgICAgICAgICAgIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGlmIChyZXNwb25zZS5oYXNPd25Qcm9wZXJ0eSgiYWxlcnQiKSkgew0KICAgICAgICAgICAgICAgIGFsZXJ0KHJlc3BvbnNlWyJhbGVydCJdKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGlmIChyZXNwb25zZS5oYXNPd25Qcm9wZXJ0eSgibG9nb1VSTCIpKSB7DQogICAgICAgICAgICAgICAgdmFyIGRpdiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjaGFubmVsLWljb24iKTsNCiAgICAgICAgICAgICAgICBkaXYudmFsdWUgPSByZXNwb25zZVsibG9nb1VSTCJdOw0KICAgICAgICAgICAgICAgIGRpdi5jbGFzc05hbWUgPSAiY2hhbmdlZCI7DQogICAgICAgICAgICAgICAgcmV0dXJuOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgc3dpdGNoIChkYXRhWyJjbWQiXSkgew0KICAgICAgICAgICAgICAgIGNhc2UgInVwZGF0ZUxvZyI6DQogICAgICAgICAgICAgICAgICAgIFNFUlZFUlsibG9nIl0gPSByZXNwb25zZVsibG9nIl07DQogICAgICAgICAgICAgICAgICAgIGlmIChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29udGVudF9sb2ciKSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgc2hvd0xvZ3MoZmFsc2UpOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIHJldHVybjsNCiAgICAgICAgICAgICAgICBkZWZhdWx0Og0KICAgICAgICAgICAgICAgICAgICBTRVJWRVIgPSBuZXcgT2JqZWN0KCk7DQogICAgICAgICAgICAgICAgICAgIFNFUlZFUiA9IHJlc3BvbnNlOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGlmIChyZXNwb25zZS5oYXNPd25Qcm9wZXJ0eSgib3Blbk1lbnUiKSkgew0KICAgICAgICAgICAgICAgIHZhciBtZW51ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQocmVzcG9uc2VbIm9wZW5NZW51Il0pOw0KICAgICAgICAgICAgICAgIG1lbnUuY2xpY2soKTsNCiAgICAgICAgICAgICAgICBzaG93RWxlbWVudCgicG9wdXAiLCBmYWxzZSk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBpZiAocmVzcG9uc2UuaGFzT3duUHJvcGVydHkoInJlbG9hZCIpKSB7DQogICAgICAgICAgICAgICAgbG9jYXRpb24ucmVsb2FkKCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBpZiAocmVzcG9uc2UuaGFzT3duUHJvcGVydHkoIndpemFyZCIpKSB7DQogICAgICAgICAgICAgICAgY3JlYXRlTGF5b3V0KCk7DQogICAgICAgICAgICAgICAgY29uZmlndXJhdGlvbldpemFyZFtyZXNwb25zZVsid2l6YXJkIl1dLmNyZWF0ZVdpemFyZCgpOw0KICAgICAgICAgICAgICAgIHJldHVybjsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGNyZWF0ZUxheW91dCgpOw0KICAgICAgICB9Ow0KICAgIH0NCn0NCmZ1bmN0aW9uIGdldENvb2tpZShuYW1lKSB7DQogICAgdmFyIHZhbHVlID0gIjsgIiArIGRvY3VtZW50LmNvb2tpZTsNCiAgICB2YXIgcGFydHMgPSB2YWx1ZS5zcGxpdCgiOyAiICsgbmFtZSArICI9Iik7DQogICAgaWYgKHBhcnRzLmxlbmd0aCA9PSAyKSB7DQogICAgICAgIHJldHVybiBwYXJ0cy5wb3AoKS5zcGxpdCgiOyIpLnNoaWZ0KCk7DQogICAgfQ0KfQ0K" - webUI["html/js/settings_ts.js"] = "Y2xhc3MgU2V0dGluZ3NDYXRlZ29yeSB7DQogICAgY29uc3RydWN0b3IoKSB7DQogICAgICAgIHRoaXMuRG9jdW1lbnRJRCA9ICJjb250ZW50X3NldHRpbmdzIjsNCiAgICB9DQogICAgY3JlYXRlQ2F0ZWdvcnlIZWFkbGluZSh2YWx1ZSkgew0KICAgICAgICB2YXIgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIkg0Iik7DQogICAgICAgIGVsZW1lbnQuaW5uZXJIVE1MID0gdmFsdWU7DQogICAgICAgIHJldHVybiBlbGVtZW50Ow0KICAgIH0NCiAgICBjcmVhdGVIUigpIHsNCiAgICAgICAgdmFyIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJIUiIpOw0KICAgICAgICByZXR1cm4gZWxlbWVudDsNCiAgICB9DQogICAgY3JlYXRlU2V0dGluZ3Moc2V0dGluZ3NLZXkpIHsNCiAgICAgICAgdmFyIHNldHRpbmcgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJUUiIpOw0KICAgICAgICB2YXIgY29udGVudCA9IG5ldyBQb3B1cENvbnRlbnQoKTsNCiAgICAgICAgdmFyIGRhdGEgPSBTRVJWRVJbInNldHRpbmdzIl1bc2V0dGluZ3NLZXldOw0KICAgICAgICBzd2l0Y2ggKHNldHRpbmdzS2V5KSB7DQogICAgICAgICAgICAvLyBUZXh0IGlucHV0cw0KICAgICAgICAgICAgY2FzZSAidXBkYXRlIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLnVwZGF0ZS50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsICJ1cGRhdGUiLCBkYXRhLnRvU3RyaW5nKCkpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3suc2V0dGluZ3MudXBkYXRlLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJiYWNrdXAucGF0aCI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5iYWNrdXBQYXRoLnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgImJhY2t1cC5wYXRoIiwgZGF0YSk7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5zZXR0aW5ncy5iYWNrdXBQYXRoLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ0ZW1wLnBhdGgiOg0KICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MudGVtcFBhdGgudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCAidGVtcC5wYXRoIiwgZGF0YSk7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5zZXR0aW5ncy50bXBQYXRoLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ1c2VyLmFnZW50IjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLnVzZXJBZ2VudC50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsICJ1c2VyLmFnZW50IiwgZGF0YSk7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5zZXR0aW5ncy51c2VyQWdlbnQucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImJ1ZmZlci50aW1lb3V0IjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmJ1ZmZlclRpbWVvdXQudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCAiYnVmZmVyLnRpbWVvdXQiLCBkYXRhKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnNldHRpbmdzLmJ1ZmZlclRpbWVvdXQucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImZmbXBlZy5wYXRoIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmZmbXBlZ1BhdGgudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCAiZmZtcGVnLnBhdGgiLCBkYXRhKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnNldHRpbmdzLmZmbXBlZ1BhdGgucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImZmbXBlZy5vcHRpb25zIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmZmbXBlZ09wdGlvbnMudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCAiZmZtcGVnLm9wdGlvbnMiLCBkYXRhKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnNldHRpbmdzLmZmbXBlZ09wdGlvbnMucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInZsYy5wYXRoIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLnZsY1BhdGgudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCAidmxjLnBhdGgiLCBkYXRhKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnNldHRpbmdzLnZsY1BhdGgucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInZsYy5vcHRpb25zIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLnZsY09wdGlvbnMudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCAidmxjLm9wdGlvbnMiLCBkYXRhKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnNldHRpbmdzLnZsY09wdGlvbnMucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIC8vIENoZWNrYm94ZXMNCiAgICAgICAgICAgIGNhc2UgInRsc01vZGUiOg0KICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MudGxzTW9kZS50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChzZXR0aW5nc0tleSk7DQogICAgICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGE7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiYXV0aGVudGljYXRpb24ud2ViIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmF1dGhlbnRpY2F0aW9uV0VCLnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KHNldHRpbmdzS2V5KTsNCiAgICAgICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJhdXRoZW50aWNhdGlvbi5wbXMiOg0KICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MuYXV0aGVudGljYXRpb25QTVMudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goc2V0dGluZ3NLZXkpOw0KICAgICAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImF1dGhlbnRpY2F0aW9uLm0zdSI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5hdXRoZW50aWNhdGlvbk0zVS50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChzZXR0aW5nc0tleSk7DQogICAgICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGE7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiYXV0aGVudGljYXRpb24ueG1sIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmF1dGhlbnRpY2F0aW9uWE1MLnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KHNldHRpbmdzS2V5KTsNCiAgICAgICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJhdXRoZW50aWNhdGlvbi5hcGkiOg0KICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MuYXV0aGVudGljYXRpb25BUEkudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goc2V0dGluZ3NLZXkpOw0KICAgICAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImZpbGVzLnVwZGF0ZSI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5maWxlc1VwZGF0ZS50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChzZXR0aW5nc0tleSk7DQogICAgICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGE7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiY2FjaGUuaW1hZ2VzIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmNhY2hlSW1hZ2VzLnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KHNldHRpbmdzS2V5KTsNCiAgICAgICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ4ZXBnLnJlcGxhY2UubWlzc2luZy5pbWFnZXMiOg0KICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MucmVwbGFjZUVtcHR5SW1hZ2VzLnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KHNldHRpbmdzS2V5KTsNCiAgICAgICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJzdG9yZUJ1ZmZlckluUkFNIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLnN0b3JlQnVmZmVySW5SQU0udGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goc2V0dGluZ3NLZXkpOw0KICAgICAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInh0ZXZlQXV0b1VwZGF0ZSI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy54dGV2ZUF1dG9VcGRhdGUudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goc2V0dGluZ3NLZXkpOw0KICAgICAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImFwaSI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5hcGkudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goc2V0dGluZ3NLZXkpOw0KICAgICAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIC8vIFNlbGVjdA0KICAgICAgICAgICAgY2FzZSAiaG9zdElQIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmhvc3RJUC50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIHRleHQgPSBTRVJWRVJbImlwQWRkcmVzc2VzVjRIb3N0Il07DQogICAgICAgICAgICAgICAgdmFyIHZhbHVlcyA9IFNFUlZFUlsiaXBBZGRyZXNzZXNWNEhvc3QiXTsNCiAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCBkYXRhLCBzZXR0aW5nc0tleSk7DQogICAgICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKHNlbGVjdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ0dW5lciI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy50dW5lci50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIHRleHQgPSBuZXcgQXJyYXkoKTsNCiAgICAgICAgICAgICAgICB2YXIgdmFsdWVzID0gbmV3IEFycmF5KCk7DQogICAgICAgICAgICAgICAgZm9yICh2YXIgaSA9IDE7IGkgPD0gMTAwOyBpKyspIHsNCiAgICAgICAgICAgICAgICAgICAgdGV4dC5wdXNoKGkpOw0KICAgICAgICAgICAgICAgICAgICB2YWx1ZXMucHVzaChpKTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgdmFyIHNlbGVjdCA9IGNvbnRlbnQuY3JlYXRlU2VsZWN0KHRleHQsIHZhbHVlcywgZGF0YSwgc2V0dGluZ3NLZXkpOw0KICAgICAgICAgICAgICAgIHNlbGVjdC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChzZWxlY3QpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiZXBnU291cmNlIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmVwZ1NvdXJjZS50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIHRleHQgPSBbIlBNUyIsICJYRVBHIl07DQogICAgICAgICAgICAgICAgdmFyIHZhbHVlcyA9IFsiUE1TIiwgIlhFUEciXTsNCiAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCBkYXRhLCBzZXR0aW5nc0tleSk7DQogICAgICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKHNlbGVjdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJiYWNrdXAua2VlcCI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5iYWNrdXBLZWVwLnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgdGV4dCA9IFsiNSIsICIxMCIsICIyMCIsICIzMCIsICI0MCIsICI1MCJdOw0KICAgICAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBbIjUiLCAiMTAiLCAiMjAiLCAiMzAiLCAiNDAiLCAiNTAiXTsNCiAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCBkYXRhLCBzZXR0aW5nc0tleSk7DQogICAgICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKHNlbGVjdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJidWZmZXIuc2l6ZS5rYiI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5idWZmZXJTaXplLnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgdGV4dCA9IFsiMC41IE1CIiwgIjEgTUIiLCAiMiBNQiIsICIzIE1CIiwgIjQgTUIiLCAiNSBNQiIsICI2IE1CIiwgIjcgTUIiLCAiOCBNQiJdOw0KICAgICAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBbIjUxMiIsICIxMDI0IiwgIjIwNDgiLCAiMzA3MiIsICI0MDk2IiwgIjUxMjAiLCAiNjE0NCIsICI3MTY4IiwgIjgxOTIiXTsNCiAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCBkYXRhLCBzZXR0aW5nc0tleSk7DQogICAgICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKHNlbGVjdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJidWZmZXIiOg0KICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3Muc3RyZWFtQnVmZmVyaW5nLnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgdGV4dCA9IFsie3suc2V0dGluZ3Muc3RyZWFtQnVmZmVyaW5nLmluZm9fZmFsc2V9fSIsICJ4VGVWZTogKHt7LnNldHRpbmdzLnN0cmVhbUJ1ZmZlcmluZy5pbmZvX3h0ZXZlfX0pIiwgIkZGbXBlZzogKHt7LnNldHRpbmdzLnN0cmVhbUJ1ZmZlcmluZy5pbmZvX2ZmbXBlZ319KSIsICJWTEM6ICh7ey5zZXR0aW5ncy5zdHJlYW1CdWZmZXJpbmcuaW5mb192bGN9fSkiXTsNCiAgICAgICAgICAgICAgICB2YXIgdmFsdWVzID0gWyItIiwgInh0ZXZlIiwgImZmbXBlZyIsICJ2bGMiXTsNCiAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCBkYXRhLCBzZXR0aW5nc0tleSk7DQogICAgICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKHNlbGVjdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ1ZHB4eSI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy51ZHB4eS50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsICJ1ZHB4eSIsIGRhdGEpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3suc2V0dGluZ3MudWRweHkucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgfQ0KICAgICAgICByZXR1cm4gc2V0dGluZzsNCiAgICB9DQogICAgY3JlYXRlRGVzY3JpcHRpb24oc2V0dGluZ3NLZXkpIHsNCiAgICAgICAgdmFyIGRlc2NyaXB0aW9uID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVFIiKTsNCiAgICAgICAgdmFyIHRleHQ7DQogICAgICAgIHN3aXRjaCAoc2V0dGluZ3NLZXkpIHsNCiAgICAgICAgICAgIGNhc2UgInRsc01vZGUiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MudGxzTW9kZS5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImF1dGhlbnRpY2F0aW9uLndlYiI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5hdXRoZW50aWNhdGlvbldFQi5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImF1dGhlbnRpY2F0aW9uLm0zdSI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5hdXRoZW50aWNhdGlvbk0zVS5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImF1dGhlbnRpY2F0aW9uLnBtcyI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5hdXRoZW50aWNhdGlvblBNUy5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImF1dGhlbnRpY2F0aW9uLnhtbCI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5hdXRoZW50aWNhdGlvblhNTC5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImF1dGhlbnRpY2F0aW9uLmFwaSI6DQogICAgICAgICAgICAgICAgaWYgKFNFUlZFUlsic2V0dGluZ3MiXVsiYXV0aGVudGljYXRpb24ud2ViIl0gPT0gdHJ1ZSkgew0KICAgICAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLmF1dGhlbnRpY2F0aW9uQVBJLmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInh0ZXZlQXV0b1VwZGF0ZSI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy54dGV2ZUF1dG9VcGRhdGUuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJiYWNrdXAua2VlcCI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5iYWNrdXBLZWVwLmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiYmFja3VwLnBhdGgiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MuYmFja3VwUGF0aC5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInRlbXAucGF0aCI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy50ZW1wUGF0aC5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImJ1ZmZlciI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5zdHJlYW1CdWZmZXJpbmcuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJidWZmZXIuc2l6ZS5rYiI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5idWZmZXJTaXplLmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAic3RvcmVCdWZmZXJJblJBTSI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5zdG9yZUJ1ZmZlckluUkFNLmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiYnVmZmVyLnRpbWVvdXQiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MuYnVmZmVyVGltZW91dC5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInVzZXIuYWdlbnQiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MudXNlckFnZW50LmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiZmZtcGVnLnBhdGgiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MuZmZtcGVnUGF0aC5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImZmbXBlZy5vcHRpb25zIjoNCiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLmZmbXBlZ09wdGlvbnMuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ2bGMucGF0aCI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy52bGNQYXRoLmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAidmxjLm9wdGlvbnMiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MudmxjT3B0aW9ucy5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImVwZ1NvdXJjZSI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5lcGdTb3VyY2UuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJob3N0SVAiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MuaG9zdElQLmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAidHVuZXIiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MudHVuZXIuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ1cGRhdGUiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MudXBkYXRlLmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiYXBpIjoNCiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLmFwaS5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImZpbGVzLnVwZGF0ZSI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5maWxlc1VwZGF0ZS5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImNhY2hlLmltYWdlcyI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5jYWNoZUltYWdlcy5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInhlcGcucmVwbGFjZS5taXNzaW5nLmltYWdlcyI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5yZXBsYWNlRW1wdHlJbWFnZXMuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ1ZHB4eSI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy51ZHB4eS5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICAgICAgdGV4dCA9ICIiOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICB9DQogICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gIiI7DQogICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgdmFyIHByZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlBSRSIpOw0KICAgICAgICBwcmUuaW5uZXJIVE1MID0gdGV4dDsNCiAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChwcmUpOw0KICAgICAgICBkZXNjcmlwdGlvbi5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICBkZXNjcmlwdGlvbi5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgcmV0dXJuIGRlc2NyaXB0aW9uOw0KICAgIH0NCn0NCmNsYXNzIFNldHRpbmdzQ2F0ZWdvcnlJdGVtIGV4dGVuZHMgU2V0dGluZ3NDYXRlZ29yeSB7DQogICAgY29uc3RydWN0b3IoaGVhZGxpbmUsIHNldHRpbmdzS2V5cykgew0KICAgICAgICBzdXBlcigpOw0KICAgICAgICB0aGlzLmhlYWRsaW5lID0gaGVhZGxpbmU7DQogICAgICAgIHRoaXMuc2V0dGluZ3NLZXlzID0gc2V0dGluZ3NLZXlzOw0KICAgIH0NCiAgICBjcmVhdGVDYXRlZ29yeSgpIHsNCiAgICAgICAgdmFyIGhlYWRsaW5lID0gdGhpcy5jcmVhdGVDYXRlZ29yeUhlYWRsaW5lKHRoaXMuaGVhZGxpbmUpOw0KICAgICAgICB2YXIgc2V0dGluZ3NLZXlzID0gdGhpcy5zZXR0aW5nc0tleXM7DQogICAgICAgIHZhciBkb2MgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCh0aGlzLkRvY3VtZW50SUQpOw0KICAgICAgICBkb2MuYXBwZW5kQ2hpbGQoaGVhZGxpbmUpOw0KICAgICAgICAvLyBDcmVhdGUgYSB0YWJsZSBmb3IgdGhlIGNhdGVnb3J5DQogICAgICAgIHZhciB0YWJsZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlRBQkxFIik7DQogICAgICAgIHZhciBrZXlzID0gc2V0dGluZ3NLZXlzLnNwbGl0KCIsIik7DQogICAgICAgIGtleXMuZm9yRWFjaChzZXR0aW5nc0tleSA9PiB7DQogICAgICAgICAgICBzd2l0Y2ggKHNldHRpbmdzS2V5KSB7DQogICAgICAgICAgICAgICAgY2FzZSAiYXV0aGVudGljYXRpb24ucG1zIjoNCiAgICAgICAgICAgICAgICBjYXNlICJhdXRoZW50aWNhdGlvbi5tM3UiOg0KICAgICAgICAgICAgICAgIGNhc2UgImF1dGhlbnRpY2F0aW9uLnhtbCI6DQogICAgICAgICAgICAgICAgY2FzZSAiYXV0aGVudGljYXRpb24uYXBpIjoNCiAgICAgICAgICAgICAgICAgICAgaWYgKFNFUlZFUlsic2V0dGluZ3MiXVsiYXV0aGVudGljYXRpb24ud2ViIl0gPT0gZmFsc2UpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgICAgICAgICAgdmFyIGl0ZW0gPSB0aGlzLmNyZWF0ZVNldHRpbmdzKHNldHRpbmdzS2V5KTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGRlc2NyaXB0aW9uID0gdGhpcy5jcmVhdGVEZXNjcmlwdGlvbihzZXR0aW5nc0tleSk7DQogICAgICAgICAgICAgICAgICAgIHRhYmxlLmFwcGVuZENoaWxkKGl0ZW0pOw0KICAgICAgICAgICAgICAgICAgICB0YWJsZS5hcHBlbmRDaGlsZChkZXNjcmlwdGlvbik7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9KTsNCiAgICAgICAgZG9jLmFwcGVuZENoaWxkKHRhYmxlKTsNCiAgICAgICAgZG9jLmFwcGVuZENoaWxkKHRoaXMuY3JlYXRlSFIoKSk7DQogICAgfQ0KfQ0KZnVuY3Rpb24gc2hvd1NldHRpbmdzKCkgew0KICAgIGNvbnNvbGUubG9nKCJTRVRUSU5HUyIpOw0KICAgIGZvciAobGV0IGkgPSAwOyBpIDwgc2V0dGluZ3NDYXRlZ29yeS5sZW5ndGg7IGkrKykgew0KICAgICAgICBzZXR0aW5nc0NhdGVnb3J5W2ldLmNyZWF0ZUNhdGVnb3J5KCk7DQogICAgfQ0KfQ0KZnVuY3Rpb24gc2F2ZVNldHRpbmdzKCkgew0KICAgIGNvbnNvbGUubG9nKCJTYXZlIFNldHRpbmdzIik7DQogICAgdmFyIGNtZCA9ICJzYXZlU2V0dGluZ3MiOw0KICAgIHZhciBkaXYgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29udGVudF9zZXR0aW5ncyIpOw0KICAgIHZhciBzZXR0aW5ncyA9IGRpdi5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCJjaGFuZ2VkIik7DQogICAgdmFyIG5ld1NldHRpbmdzID0gbmV3IE9iamVjdCgpOw0KICAgIGZvciAobGV0IGkgPSAwOyBpIDwgc2V0dGluZ3MubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgdmFyIG5hbWU7DQogICAgICAgIHZhciB2YWx1ZTsNCiAgICAgICAgc3dpdGNoIChzZXR0aW5nc1tpXS50YWdOYW1lKSB7DQogICAgICAgICAgICBjYXNlICJJTlBVVCI6DQogICAgICAgICAgICAgICAgc3dpdGNoIChzZXR0aW5nc1tpXS50eXBlKSB7DQogICAgICAgICAgICAgICAgICAgIGNhc2UgImNoZWNrYm94IjoNCiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWUgPSBzZXR0aW5nc1tpXS5uYW1lOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSBzZXR0aW5nc1tpXS5jaGVja2VkOw0KICAgICAgICAgICAgICAgICAgICAgICAgbmV3U2V0dGluZ3NbbmFtZV0gPSB2YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgICAgICBjYXNlICJ0ZXh0IjoNCiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWUgPSBzZXR0aW5nc1tpXS5uYW1lOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSBzZXR0aW5nc1tpXS52YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHN3aXRjaCAobmFtZSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgInVwZGF0ZSI6DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlID0gdmFsdWUuc3BsaXQoIiwiKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSB2YWx1ZS5maWx0ZXIoZnVuY3Rpb24gKGUpIHsgcmV0dXJuIGU7IH0pOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYXNlICJidWZmZXIudGltZW91dCI6DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlID0gcGFyc2VGbG9hdCh2YWx1ZSk7DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICBuZXdTZXR0aW5nc1tuYW1lXSA9IHZhbHVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiU0VMRUNUIjoNCiAgICAgICAgICAgICAgICBuYW1lID0gc2V0dGluZ3NbaV0ubmFtZTsNCiAgICAgICAgICAgICAgICB2YWx1ZSA9IHNldHRpbmdzW2ldLnZhbHVlOw0KICAgICAgICAgICAgICAgIC8vIElmIHRoZSB2YWx1ZSBpcyBhIG51bWJlciwgc3RvcmUgaXQgYXMgYSBudW1iZXINCiAgICAgICAgICAgICAgICBpZiAoaXNOYU4odmFsdWUpKSB7DQogICAgICAgICAgICAgICAgICAgIG5ld1NldHRpbmdzW25hbWVdID0gdmFsdWU7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgICAgICAgICBuZXdTZXR0aW5nc1tuYW1lXSA9IHBhcnNlSW50KHZhbHVlKTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIH0NCiAgICB9DQogICAgdmFyIGRhdGEgPSBuZXcgT2JqZWN0KCk7DQogICAgZGF0YVsic2V0dGluZ3MiXSA9IG5ld1NldHRpbmdzOw0KICAgIHZhciBzZXJ2ZXIgPSBuZXcgU2VydmVyKGNtZCk7DQogICAgc2VydmVyLnJlcXVlc3QoZGF0YSk7DQp9DQo=" + webUI["html/js/settings_ts.js"] = "Y2xhc3MgU2V0dGluZ3NDYXRlZ29yeSB7DQogICAgY29uc3RydWN0b3IoKSB7DQogICAgICAgIHRoaXMuRG9jdW1lbnRJRCA9ICJjb250ZW50X3NldHRpbmdzIjsNCiAgICB9DQogICAgY3JlYXRlQ2F0ZWdvcnlIZWFkbGluZSh2YWx1ZSkgew0KICAgICAgICB2YXIgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIkg0Iik7DQogICAgICAgIGVsZW1lbnQuaW5uZXJIVE1MID0gdmFsdWU7DQogICAgICAgIHJldHVybiBlbGVtZW50Ow0KICAgIH0NCiAgICBjcmVhdGVIUigpIHsNCiAgICAgICAgdmFyIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJIUiIpOw0KICAgICAgICByZXR1cm4gZWxlbWVudDsNCiAgICB9DQogICAgY3JlYXRlU2V0dGluZ3Moc2V0dGluZ3NLZXkpIHsNCiAgICAgICAgdmFyIHNldHRpbmcgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJUUiIpOw0KICAgICAgICB2YXIgY29udGVudCA9IG5ldyBQb3B1cENvbnRlbnQoKTsNCiAgICAgICAgdmFyIGRhdGEgPSBTRVJWRVJbInNldHRpbmdzIl1bc2V0dGluZ3NLZXldOw0KICAgICAgICBzd2l0Y2ggKHNldHRpbmdzS2V5KSB7DQogICAgICAgICAgICAvLyBUZXh0IGlucHV0cw0KICAgICAgICAgICAgY2FzZSAidXBkYXRlIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLnVwZGF0ZS50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsICJ1cGRhdGUiLCBkYXRhLnRvU3RyaW5nKCkpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3suc2V0dGluZ3MudXBkYXRlLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJiYWNrdXAucGF0aCI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5iYWNrdXBQYXRoLnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgImJhY2t1cC5wYXRoIiwgZGF0YSk7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5zZXR0aW5ncy5iYWNrdXBQYXRoLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ0ZW1wLnBhdGgiOg0KICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MudGVtcFBhdGgudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCAidGVtcC5wYXRoIiwgZGF0YSk7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5zZXR0aW5ncy50bXBQYXRoLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ1c2VyLmFnZW50IjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLnVzZXJBZ2VudC50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsICJ1c2VyLmFnZW50IiwgZGF0YSk7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5zZXR0aW5ncy51c2VyQWdlbnQucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImJ1ZmZlci50aW1lb3V0IjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmJ1ZmZlclRpbWVvdXQudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCAiYnVmZmVyLnRpbWVvdXQiLCBkYXRhKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnNldHRpbmdzLmJ1ZmZlclRpbWVvdXQucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImZmbXBlZy5wYXRoIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmZmbXBlZ1BhdGgudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCAiZmZtcGVnLnBhdGgiLCBkYXRhKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnNldHRpbmdzLmZmbXBlZ1BhdGgucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImZmbXBlZy5vcHRpb25zIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmZmbXBlZ09wdGlvbnMudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCAiZmZtcGVnLm9wdGlvbnMiLCBkYXRhKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnNldHRpbmdzLmZmbXBlZ09wdGlvbnMucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInZsYy5wYXRoIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLnZsY1BhdGgudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCAidmxjLnBhdGgiLCBkYXRhKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnNldHRpbmdzLnZsY1BhdGgucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInZsYy5vcHRpb25zIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLnZsY09wdGlvbnMudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCAidmxjLm9wdGlvbnMiLCBkYXRhKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnNldHRpbmdzLnZsY09wdGlvbnMucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIC8vIENoZWNrYm94ZXMNCiAgICAgICAgICAgIGNhc2UgInRsc01vZGUiOg0KICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MudGxzTW9kZS50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChzZXR0aW5nc0tleSk7DQogICAgICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGE7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiYXV0aGVudGljYXRpb24ud2ViIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmF1dGhlbnRpY2F0aW9uV0VCLnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KHNldHRpbmdzS2V5KTsNCiAgICAgICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJhdXRoZW50aWNhdGlvbi5wbXMiOg0KICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MuYXV0aGVudGljYXRpb25QTVMudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goc2V0dGluZ3NLZXkpOw0KICAgICAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImF1dGhlbnRpY2F0aW9uLm0zdSI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5hdXRoZW50aWNhdGlvbk0zVS50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChzZXR0aW5nc0tleSk7DQogICAgICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGE7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiYXV0aGVudGljYXRpb24ueG1sIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmF1dGhlbnRpY2F0aW9uWE1MLnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KHNldHRpbmdzS2V5KTsNCiAgICAgICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJhdXRoZW50aWNhdGlvbi5hcGkiOg0KICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MuYXV0aGVudGljYXRpb25BUEkudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goc2V0dGluZ3NLZXkpOw0KICAgICAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImZpbGVzLnVwZGF0ZSI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5maWxlc1VwZGF0ZS50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChzZXR0aW5nc0tleSk7DQogICAgICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGE7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiY2FjaGUuaW1hZ2VzIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmNhY2hlSW1hZ2VzLnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KHNldHRpbmdzS2V5KTsNCiAgICAgICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ4ZXBnLnJlcGxhY2UubWlzc2luZy5pbWFnZXMiOg0KICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MucmVwbGFjZUVtcHR5SW1hZ2VzLnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KHNldHRpbmdzS2V5KTsNCiAgICAgICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJzdG9yZUJ1ZmZlckluUkFNIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLnN0b3JlQnVmZmVySW5SQU0udGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goc2V0dGluZ3NLZXkpOw0KICAgICAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInh0ZXZlQXV0b1VwZGF0ZSI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy54dGV2ZUF1dG9VcGRhdGUudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goc2V0dGluZ3NLZXkpOw0KICAgICAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImFwaSI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5hcGkudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goc2V0dGluZ3NLZXkpOw0KICAgICAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIC8vIFNlbGVjdA0KICAgICAgICAgICAgY2FzZSAiaG9zdElQIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmhvc3RJUC50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIHRleHQgPSBTRVJWRVJbImlwQWRkcmVzc2VzVjRIb3N0Il07DQogICAgICAgICAgICAgICAgdmFyIHZhbHVlcyA9IFNFUlZFUlsiaXBBZGRyZXNzZXNWNEhvc3QiXTsNCiAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCBkYXRhLCBzZXR0aW5nc0tleSk7DQogICAgICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKHNlbGVjdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ0dW5lciI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy50dW5lci50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIHRleHQgPSBuZXcgQXJyYXkoKTsNCiAgICAgICAgICAgICAgICB2YXIgdmFsdWVzID0gbmV3IEFycmF5KCk7DQogICAgICAgICAgICAgICAgZm9yICh2YXIgaSA9IDE7IGkgPD0gMTAwOyBpKyspIHsNCiAgICAgICAgICAgICAgICAgICAgdGV4dC5wdXNoKGkpOw0KICAgICAgICAgICAgICAgICAgICB2YWx1ZXMucHVzaChpKTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgdmFyIHNlbGVjdCA9IGNvbnRlbnQuY3JlYXRlU2VsZWN0KHRleHQsIHZhbHVlcywgZGF0YSwgc2V0dGluZ3NLZXkpOw0KICAgICAgICAgICAgICAgIHNlbGVjdC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChzZWxlY3QpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiZXBnU291cmNlIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmVwZ1NvdXJjZS50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIHRleHQgPSBbIlBNUyIsICJYRVBHIl07DQogICAgICAgICAgICAgICAgdmFyIHZhbHVlcyA9IFsiUE1TIiwgIlhFUEciXTsNCiAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCBkYXRhLCBzZXR0aW5nc0tleSk7DQogICAgICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKHNlbGVjdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJiYWNrdXAua2VlcCI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5iYWNrdXBLZWVwLnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgdGV4dCA9IFsiNSIsICIxMCIsICIyMCIsICIzMCIsICI0MCIsICI1MCJdOw0KICAgICAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBbIjUiLCAiMTAiLCAiMjAiLCAiMzAiLCAiNDAiLCAiNTAiXTsNCiAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCBkYXRhLCBzZXR0aW5nc0tleSk7DQogICAgICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKHNlbGVjdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJidWZmZXIuc2l6ZS5rYiI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5idWZmZXJTaXplLnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgdGV4dCA9IFsiMC41IE1CIiwgIjEgTUIiLCAiMiBNQiIsICIzIE1CIiwgIjQgTUIiLCAiNSBNQiIsICI2IE1CIiwgIjcgTUIiLCAiOCBNQiJdOw0KICAgICAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBbIjUxMiIsICIxMDI0IiwgIjIwNDgiLCAiMzA3MiIsICI0MDk2IiwgIjUxMjAiLCAiNjE0NCIsICI3MTY4IiwgIjgxOTIiXTsNCiAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCBkYXRhLCBzZXR0aW5nc0tleSk7DQogICAgICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKHNlbGVjdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJidWZmZXIiOg0KICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3Muc3RyZWFtQnVmZmVyaW5nLnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgdGV4dCA9IFsie3suc2V0dGluZ3Muc3RyZWFtQnVmZmVyaW5nLmluZm9fZmFsc2V9fSIsICJ4VGVWZTogKHt7LnNldHRpbmdzLnN0cmVhbUJ1ZmZlcmluZy5pbmZvX3h0ZXZlfX0pIiwgIkZGbXBlZzogKHt7LnNldHRpbmdzLnN0cmVhbUJ1ZmZlcmluZy5pbmZvX2ZmbXBlZ319KSIsICJWTEM6ICh7ey5zZXR0aW5ncy5zdHJlYW1CdWZmZXJpbmcuaW5mb192bGN9fSkiXTsNCiAgICAgICAgICAgICAgICB2YXIgdmFsdWVzID0gWyItIiwgInh0ZXZlIiwgImZmbXBlZyIsICJ2bGMiXTsNCiAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCBkYXRhLCBzZXR0aW5nc0tleSk7DQogICAgICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKHNlbGVjdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ1ZHB4eSI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy51ZHB4eS50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsICJ1ZHB4eSIsIGRhdGEpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3suc2V0dGluZ3MudWRweHkucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgfQ0KICAgICAgICByZXR1cm4gc2V0dGluZzsNCiAgICB9DQogICAgY3JlYXRlRGVzY3JpcHRpb24oc2V0dGluZ3NLZXkpIHsNCiAgICAgICAgdmFyIGRlc2NyaXB0aW9uID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVFIiKTsNCiAgICAgICAgdmFyIHRleHQ7DQogICAgICAgIHN3aXRjaCAoc2V0dGluZ3NLZXkpIHsNCiAgICAgICAgICAgIGNhc2UgInRsc01vZGUiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MudGxzTW9kZS5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImF1dGhlbnRpY2F0aW9uLndlYiI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5hdXRoZW50aWNhdGlvbldFQi5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImF1dGhlbnRpY2F0aW9uLm0zdSI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5hdXRoZW50aWNhdGlvbk0zVS5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImF1dGhlbnRpY2F0aW9uLnBtcyI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5hdXRoZW50aWNhdGlvblBNUy5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImF1dGhlbnRpY2F0aW9uLnhtbCI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5hdXRoZW50aWNhdGlvblhNTC5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImF1dGhlbnRpY2F0aW9uLmFwaSI6DQogICAgICAgICAgICAgICAgaWYgKFNFUlZFUlsic2V0dGluZ3MiXVsiYXV0aGVudGljYXRpb24ud2ViIl0gPT0gdHJ1ZSkgew0KICAgICAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLmF1dGhlbnRpY2F0aW9uQVBJLmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInh0ZXZlQXV0b1VwZGF0ZSI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy54dGV2ZUF1dG9VcGRhdGUuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJiYWNrdXAua2VlcCI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5iYWNrdXBLZWVwLmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiYmFja3VwLnBhdGgiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MuYmFja3VwUGF0aC5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInRlbXAucGF0aCI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy50ZW1wUGF0aC5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImJ1ZmZlciI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5zdHJlYW1CdWZmZXJpbmcuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJidWZmZXIuc2l6ZS5rYiI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5idWZmZXJTaXplLmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAic3RvcmVCdWZmZXJJblJBTSI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5zdG9yZUJ1ZmZlckluUkFNLmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiYnVmZmVyLnRpbWVvdXQiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MuYnVmZmVyVGltZW91dC5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInVzZXIuYWdlbnQiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MudXNlckFnZW50LmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiZmZtcGVnLnBhdGgiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MuZmZtcGVnUGF0aC5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImZmbXBlZy5vcHRpb25zIjoNCiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLmZmbXBlZ09wdGlvbnMuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ2bGMucGF0aCI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy52bGNQYXRoLmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAidmxjLm9wdGlvbnMiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MudmxjT3B0aW9ucy5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImVwZ1NvdXJjZSI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5lcGdTb3VyY2UuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJob3N0SVAiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MuaG9zdElQLmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAidHVuZXIiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MudHVuZXIuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ1cGRhdGUiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MudXBkYXRlLmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiYXBpIjoNCiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLmFwaS5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImZpbGVzLnVwZGF0ZSI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5maWxlc1VwZGF0ZS5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImNhY2hlLmltYWdlcyI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5jYWNoZUltYWdlcy5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInhlcGcucmVwbGFjZS5taXNzaW5nLmltYWdlcyI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5yZXBsYWNlRW1wdHlJbWFnZXMuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ1ZHB4eSI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy51ZHB4eS5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICAgICAgdGV4dCA9ICIiOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICB9DQogICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gIiI7DQogICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgdmFyIHByZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlBSRSIpOw0KICAgICAgICBwcmUuaW5uZXJIVE1MID0gdGV4dDsNCiAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChwcmUpOw0KICAgICAgICBkZXNjcmlwdGlvbi5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICBkZXNjcmlwdGlvbi5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgcmV0dXJuIGRlc2NyaXB0aW9uOw0KICAgIH0NCn0NCmNsYXNzIFNldHRpbmdzQ2F0ZWdvcnlJdGVtIGV4dGVuZHMgU2V0dGluZ3NDYXRlZ29yeSB7DQogICAgY29uc3RydWN0b3IoaGVhZGxpbmUsIHNldHRpbmdzS2V5cykgew0KICAgICAgICBzdXBlcigpOw0KICAgICAgICB0aGlzLmhlYWRsaW5lID0gaGVhZGxpbmU7DQogICAgICAgIHRoaXMuc2V0dGluZ3NLZXlzID0gc2V0dGluZ3NLZXlzOw0KICAgIH0NCiAgICBjcmVhdGVDYXRlZ29yeSgpIHsNCiAgICAgICAgdmFyIGhlYWRsaW5lID0gdGhpcy5jcmVhdGVDYXRlZ29yeUhlYWRsaW5lKHRoaXMuaGVhZGxpbmUpOw0KICAgICAgICB2YXIgc2V0dGluZ3NLZXlzID0gdGhpcy5zZXR0aW5nc0tleXM7DQogICAgICAgIHZhciBkb2MgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCh0aGlzLkRvY3VtZW50SUQpOw0KICAgICAgICBkb2MuYXBwZW5kQ2hpbGQoaGVhZGxpbmUpOw0KICAgICAgICAvLyBDcmVhdGUgYSB0YWJsZSBmb3IgdGhlIGNhdGVnb3J5DQogICAgICAgIHZhciB0YWJsZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlRBQkxFIik7DQogICAgICAgIHZhciBrZXlzID0gc2V0dGluZ3NLZXlzLnNwbGl0KCIsIik7DQogICAgICAgIGtleXMuZm9yRWFjaChzZXR0aW5nc0tleSA9PiB7DQogICAgICAgICAgICBzd2l0Y2ggKHNldHRpbmdzS2V5KSB7DQogICAgICAgICAgICAgICAgY2FzZSAiYXV0aGVudGljYXRpb24ucG1zIjoNCiAgICAgICAgICAgICAgICBjYXNlICJhdXRoZW50aWNhdGlvbi5tM3UiOg0KICAgICAgICAgICAgICAgIGNhc2UgImF1dGhlbnRpY2F0aW9uLnhtbCI6DQogICAgICAgICAgICAgICAgY2FzZSAiYXV0aGVudGljYXRpb24uYXBpIjoNCiAgICAgICAgICAgICAgICAgICAgaWYgKFNFUlZFUlsic2V0dGluZ3MiXVsiYXV0aGVudGljYXRpb24ud2ViIl0gPT0gZmFsc2UpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgICAgICAgICAgdmFyIGl0ZW0gPSB0aGlzLmNyZWF0ZVNldHRpbmdzKHNldHRpbmdzS2V5KTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGRlc2NyaXB0aW9uID0gdGhpcy5jcmVhdGVEZXNjcmlwdGlvbihzZXR0aW5nc0tleSk7DQogICAgICAgICAgICAgICAgICAgIHRhYmxlLmFwcGVuZENoaWxkKGl0ZW0pOw0KICAgICAgICAgICAgICAgICAgICB0YWJsZS5hcHBlbmRDaGlsZChkZXNjcmlwdGlvbik7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9KTsNCiAgICAgICAgZG9jLmFwcGVuZENoaWxkKHRhYmxlKTsNCiAgICAgICAgZG9jLmFwcGVuZENoaWxkKHRoaXMuY3JlYXRlSFIoKSk7DQogICAgfQ0KfQ0KZnVuY3Rpb24gc2hvd1NldHRpbmdzKCkgew0KICAgIGZvciAobGV0IGkgPSAwOyBpIDwgc2V0dGluZ3NDYXRlZ29yeS5sZW5ndGg7IGkrKykgew0KICAgICAgICBzZXR0aW5nc0NhdGVnb3J5W2ldLmNyZWF0ZUNhdGVnb3J5KCk7DQogICAgfQ0KfQ0KZnVuY3Rpb24gc2F2ZVNldHRpbmdzKCkgew0KICAgIHZhciBjbWQgPSAic2F2ZVNldHRpbmdzIjsNCiAgICB2YXIgZGl2ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnRlbnRfc2V0dGluZ3MiKTsNCiAgICB2YXIgc2V0dGluZ3MgPSBkaXYuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSgiY2hhbmdlZCIpOw0KICAgIHZhciBuZXdTZXR0aW5ncyA9IG5ldyBPYmplY3QoKTsNCiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHNldHRpbmdzLmxlbmd0aDsgaSsrKSB7DQogICAgICAgIHZhciBuYW1lOw0KICAgICAgICB2YXIgdmFsdWU7DQogICAgICAgIHN3aXRjaCAoc2V0dGluZ3NbaV0udGFnTmFtZSkgew0KICAgICAgICAgICAgY2FzZSAiSU5QVVQiOg0KICAgICAgICAgICAgICAgIHN3aXRjaCAoc2V0dGluZ3NbaV0udHlwZSkgew0KICAgICAgICAgICAgICAgICAgICBjYXNlICJjaGVja2JveCI6DQogICAgICAgICAgICAgICAgICAgICAgICBuYW1lID0gc2V0dGluZ3NbaV0ubmFtZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlID0gc2V0dGluZ3NbaV0uY2hlY2tlZDsNCiAgICAgICAgICAgICAgICAgICAgICAgIG5ld1NldHRpbmdzW25hbWVdID0gdmFsdWU7DQogICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICAgICAgY2FzZSAidGV4dCI6DQogICAgICAgICAgICAgICAgICAgICAgICBuYW1lID0gc2V0dGluZ3NbaV0ubmFtZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlID0gc2V0dGluZ3NbaV0udmFsdWU7DQogICAgICAgICAgICAgICAgICAgICAgICBzd2l0Y2ggKG5hbWUpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYXNlICJ1cGRhdGUiOg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IHZhbHVlLnNwbGl0KCIsIik7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlID0gdmFsdWUuZmlsdGVyKGZ1bmN0aW9uIChlKSB7IHJldHVybiBlOyB9KTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAiYnVmZmVyLnRpbWVvdXQiOg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IHBhcnNlRmxvYXQodmFsdWUpOw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgbmV3U2V0dGluZ3NbbmFtZV0gPSB2YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgIlNFTEVDVCI6DQogICAgICAgICAgICAgICAgbmFtZSA9IHNldHRpbmdzW2ldLm5hbWU7DQogICAgICAgICAgICAgICAgdmFsdWUgPSBzZXR0aW5nc1tpXS52YWx1ZTsNCiAgICAgICAgICAgICAgICAvLyBJZiB0aGUgdmFsdWUgaXMgYSBudW1iZXIsIHN0b3JlIGl0IGFzIGEgbnVtYmVyDQogICAgICAgICAgICAgICAgaWYgKGlzTmFOKHZhbHVlKSkgew0KICAgICAgICAgICAgICAgICAgICBuZXdTZXR0aW5nc1tuYW1lXSA9IHZhbHVlOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICAgICAgbmV3U2V0dGluZ3NbbmFtZV0gPSBwYXJzZUludCh2YWx1ZSk7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICB9DQogICAgfQ0KICAgIHZhciBkYXRhID0gbmV3IE9iamVjdCgpOw0KICAgIGRhdGFbInNldHRpbmdzIl0gPSBuZXdTZXR0aW5nczsNCiAgICB2YXIgc2VydmVyID0gbmV3IFNlcnZlcihjbWQpOw0KICAgIHNlcnZlci5yZXF1ZXN0KGRhdGEpOw0KfQ0K" webUI["html/lang/en.json"] = "ew0KICAibWFpbk1lbnUiOg0KICB7DQogICAgIml0ZW0iOg0KICAgIHsNCiAgICAgICJwbGF5bGlzdCI6ICJQbGF5bGlzdCIsDQogICAgICAicG1zSUQiOiAiUE1TIElEIiwNCiAgICAgICJmaWx0ZXIiOiAiRmlsdGVyIiwNCiAgICAgICJ4bWx0diI6ICJYTUxUViIsDQogICAgICAibWFwcGluZyI6ICJNYXBwaW5nIiwNCiAgICAgICJ1c2VycyI6ICJVc2VycyIsDQogICAgICAic2V0dGluZ3MiOiAiU2V0dGluZ3MiLA0KICAgICAgImxvZyI6ICJMb2ciLA0KICAgICAgImxvZ291dCI6ICJMb2dvdXQiDQogICAgfSwNCiAgICAiaGVhZGxpbmUiOg0KICAgIHsNCiAgICAgICJwbGF5bGlzdCI6ICJMb2NhbCBvciByZW1vdGUgcGxheWxpc3RzIiwNCiAgICAgICJmaWx0ZXIiOiAiRmlsdGVyIHBsYXlsaXN0IiwNCiAgICAgICJ4bWx0diI6ICJMb2NhbCBvciByZW1vdGUgWE1MVFYgZmlsZXMiLA0KICAgICAgIm1hcHBpbmciOiAiTWFwIHBsYXlsaXN0IGNoYW5uZWxzIHRvIEVQRyBjaGFubmVscyIsDQogICAgICAidXNlcnMiOiAiVXNlciBtYW5hZ2VtZW50IiwNCiAgICAgICJzZXR0aW5ncyI6ICJTZXR0aW5ncyIsDQogICAgICAibG9nIjogIkxvZyIsDQogICAgICAibG9nb3V0IjogIkxvZ291dCINCiAgICB9DQogIH0sDQogICJjb25maXJtIjoNCiAgew0KICAgICJyZXN0b3JlIjogIkFsbCBkYXRhIHdpbGwgYmUgcmVwbGFjZWQgd2l0aCB0aG9zZSBmcm9tIHRoZSBiYWNrdXAuIFNob3VsZCB0aGUgZmlsZXMgYmUgcmVzdG9yZWQ/Ig0KICB9LA0KICAiYWxlcnQiOg0KICB7DQogICAgImZpbGVMb2FkaW5nRXJyb3IiOiAiRmlsZSBjb3VsZG4ndCBiZSBsb2FkZWQiLA0KICAgICJpbnZhbGlkQ2hhbm5lbE51bWJlciI6ICJJbnZhbGlkIGNoYW5uZWwgbnVtYmVyIiwNCiAgICAibWlzc2luZ0lucHV0IjogIk1pc3NpbmcgaW5wdXQiDQogIH0sDQogICJidXR0b24iOg0KICB7DQogICAgImJhY2siOiAiQmFjayIsDQogICAgImJhY2t1cCI6ICJCYWNrdXAiLA0KICAgICJidWxrRWRpdCI6ICJCdWxrIEVkaXQiLA0KICAgICJjYW5jZWwiOiAiQ2FuY2VsIiwNCiAgICAiZGVsZXRlIjogIkRlbGV0ZSIsDQogICAgImRvbmUiOiAiRG9uZSIsDQogICAgImxvZ2luIjogIkxvZ2luIiwNCiAgICAibmV3IjogIk5ldyIsDQogICAgIm5leHQiOiAiTmV4dCIsDQogICAgInJlc3RvcmUiOiAiUmVzdG9yZSIsDQogICAgInNhdmUiOiAiU2F2ZSIsDQogICAgInNlYXJjaCI6ICJTZWFyY2giLA0KICAgICJ1cGRhdGUiOiAiVXBkYXRlIiwNCiAgICAiY3JhZXRlQWNjb3VudCI6ICJDcmVhdGUgQWNjb3VudCIsDQogICAgInJlc2V0TG9ncyI6ICJSZXNldCBMb2dzIiwNCiAgICAidXBsb2FkTG9nbyI6ICJVcGxvYWQgTG9nbyINCiAgfSwNCiAgImZpbHRlciI6DQogIHsNCiAgICAidGFibGUiOg0KICAgIHsNCiAgICAgICJzdGFydGluZ0NoYW5uZWwiOiAiU3RhcnRpbmcgQ2guIE5vLiIsDQogICAgICAibmFtZSI6ICJGaWx0ZXIgTmFtZSIsDQogICAgICAidHlwZSI6ICJGaWx0ZXIgVHlwZSIsDQogICAgICAiZmlsdGVyIjogIkZpbHRlciINCiAgICB9LA0KICAgICJjdXN0b20iOiAiQ3VzdG9tIiwNCiAgICAiZ3JvdXAiOiAiTTNVIEdyb3VwIiwNCiAgICAibmFtZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIkZpbHRlciBOYW1lIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJGaWx0ZXIgbmFtZSIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgImRlc2NyaXB0aW9uIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiRGVzY3JpcHRpb24iLA0KICAgICAgInBsYWNlaG9sZGVyIjogIkRlc2NyaXB0aW9uIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAidHlwZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIlR5cGUiLA0KICAgICAgImdyb3VwVGl0bGUiOiAiR3JvdXAgVGl0bGUiLA0KICAgICAgImN1c3RvbUZpbHRlciI6ICJDdXN0b20gRmlsdGVyIg0KICAgIH0sDQogICAgImNhc2VTZW5zaXRpdmUiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJDYXNlIFNlbnNpdGl2ZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAiZmlsdGVyUnVsZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIkZpbHRlciBSdWxlIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJTcG9ydCB7SER9ICF7RVMsSVR9IiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAiZmlsdGVyR3JvdXAiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJHcm91cCBUaXRsZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJTZWxlY3QgYSBNM1UgZ3JvdXAuIChDb3VudGVyKTxicj5DaGFuZ2luZyB0aGUgZ3JvdXAgdGl0bGUgaW4gdGhlIE0zVSBpbnZhbGlkYXRlcyB0aGUgZmlsdGVyLiINCiAgICB9LA0KICAgICJpbmNsdWRlIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiSW5jbHVkZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiRkhELFVIRCIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiQ2hhbm5lbCBuYW1lIG11c3QgaW5jbHVkZS48YnI+KENvbW1hIHNlcGFyYXRlZCkgQ29tbWEgbWVhbnMgb3IiDQogICAgfSwNCiAgICAiZXhjbHVkZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIkV4Y2x1ZGUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIkVTLElUIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJDaGFubmVsIG5hbWUgbXVzdCBub3QgY29udGFpbi48YnI+KENvbW1hIHNlcGFyYXRlZCkgQ29tbWEgbWVhbnMgb3IiDQogICAgfSwNCiAgICAicHJlc2VydmVNYXBwaW5nIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiUHJlc2VydmUgRXhpc3RpbmcgTTNVPGJyPkNoYW5uZWwgTnVtYmVycyIsDQogICAgICAicGFsY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJQcmVzZXJ2ZSBleGlzdGluZyBNM1UgcGxheWxpc3QgY2hhbm5lbCBudW1iZXJzPyINCiAgICB9LA0KICAgICJzdGFydGluZ0NoYW5uZWwiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJTdGFydGluZyBDaGFubmVsIE51bWJlciIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAiZGVmYXVsdE1pc3NpbmdFUEciOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJGaWxsIE1pc3NpbmcgRVBHIERhdGEiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiV2hlbiB0aGVyZSBpcyBubyBtYXRjaGluZyBFUEcgZGF0YSBmb3IgY2hhbm5lbCwgPGJyPmF1dG9maWxsIHdpdGggeFRlVmUgZHVtbXkgRVBHIGRhdGE/Ig0KICAgIH0NCg0KICB9LA0KICAicGxheWxpc3QiOg0KICB7DQogICAgInRhYmxlIjoNCiAgICB7DQogICAgICAicGxheWxpc3QiOiAiUGxheWxpc3QiLA0KICAgICAgInR1bmVyIjogIlR1bmVyIiwNCiAgICAgICJsYXN0VXBkYXRlIjogIkxhc3QgVXBkYXRlIiwNCiAgICAgICJhdmFpbGFiaWxpdHkiOiAiQXZhaWxhYmlsaXR5IiwNCiAgICAgICJ0eXBlIjogIlR5cGUiLA0KICAgICAgInN0cmVhbXMiOiAiU3RyZWFtcyIsDQogICAgICAiZ3JvdXBUaXRsZSI6ICJncm91cC10aXRsZSIsDQogICAgICAidHZnSUQiOiAidHZnLWlkIiwNCiAgICAgICJ1bmlxdWVJRCI6ICJVbmlxdWUgSUQiDQogICAgfSwNCiAgICAicGxheWxpc3RUeXBlIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiUGxheWxpc3QgdHlwZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAidHlwZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIlR5cGUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgIm5hbWUiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJOYW1lIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJQbGF5bGlzdCBuYW1lIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAiZGVzY3JpcHRpb24iOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJEZXNjcmlwdGlvbiIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiRGVzY3JpcHRpb24iLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJmaWxlTTNVIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiTTNVIEZpbGUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIkZpbGUgcGF0aCBvciBVUkwgb2YgdGhlIE0zVSIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgImZpbGVIREhSIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiSERIb21lUnVuIElQIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJJUCBhZGRyZXNzIGFuZCBwb3J0ICgxOTIuMTY4LjEuMTA6NTAwNCkiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJ0dW5lciI6DQogICAgew0KICAgICAgInRpdGxlIjogIlR1bmVyIC8gU3RyZWFtcyIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJOdW1iZXIgb2YgcGFyYWxsZWwgY29ubmVjdGlvbnMgdGhhdCBjYW4gYmUgZXN0YWJsaXNoZWQgdG8gdGhlIHByb3ZpZGVyLiA8YnI+T25seSBhdmFpbGFibGUgd2l0aCBhY3RpdmF0ZWQgYnVmZmVyLjxicj5OZXcgc2V0dGluZ3Mgd2lsbCBvbmx5IGJlIGFwcGxpZWQgYWZ0ZXIgcXVpdHRpbmcgYWxsIHN0cmVhbXMuIg0KICAgIH0NCiAgfSwNCiAgInhtbHR2IjoNCiAgew0KICAgICJ0YWJsZSI6DQogICAgew0KICAgICAgImd1aWRlIjogIkd1aWRlIiwNCiAgICAgICJsYXN0VXBkYXRlIjogIkxhc3QgVXBkYXRlIiwNCiAgICAgICJhdmFpbGFiaWxpdHkiOiAiQXZhaWxhYmlsaXR5IiwNCiAgICAgICJjaGFubmVscyI6ICJDaGFubmVscyIsDQogICAgICAicHJvZ3JhbXMiOiAiUHJvZ3JhbXMiDQogICAgfSwNCiAgICAibmFtZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIk5hbWUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIkd1aWRlIG5hbWUiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJkZXNjcmlwdGlvbiI6DQogICAgew0KICAgICAgInRpdGxlIjogIkRlc2NyaXB0aW9uIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJEZXNjcmlwdGlvbiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgImZpbGVYTUxUViI6DQogICAgew0KICAgICAgInRpdGxlIjogIlhNTFRWIEZpbGUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIkZpbGUgcGF0aCBvciBVUkwgb2YgdGhlIFhNTFRWIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfQ0KICB9LA0KICAibWFwcGluZyI6DQogIHsNCiAgICAidGFibGUiOg0KICAgIHsNCiAgICAgICJjaE5vIjogIkNoLiBOby4iLA0KICAgICAgImxvZ28iOiAiTG9nbyIsDQogICAgICAiY2hhbm5lbE5hbWUiOiAiQ2hhbm5lbCBOYW1lIiwNCiAgICAgICJwbGF5bGlzdCI6ICJQbGF5bGlzdCIsDQogICAgICAiZ3JvdXBUaXRsZSI6ICJHcm91cCBUaXRsZSIsDQogICAgICAieG1sdHZGaWxlIjogIlhNTFRWIEZpbGUiLA0KICAgICAgInhtbHR2SUQiOiAiWE1MVFYgSUQiLA0KICAgICAgInRpbWVzaGlmdCI6ICJUaW1lc2hpZnQiDQogICAgfSwNCiAgICAiYWN0aXZlIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiQWN0aXZlIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJjaGFubmVsTmFtZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIkNoYW5uZWwgTmFtZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAiZGVzY3JpcHRpb24iOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJDaGFubmVsIERlc2NyaXB0aW9uIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJVc2VkIGJ5IHRoZSBEdW1teSBhcyBhbiBYTUwgZGVzY3JpcHRpb24iLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJ1cGRhdGVDaGFubmVsTmFtZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIlVwZGF0ZSBDaGFubmVsIE5hbWUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgInVwZGF0ZUNoYW5uZWxHcm91cCI6DQogICAgew0KICAgICAgInRpdGxlIjogIlVwZGF0ZSBDaGFubmVsIEdyb3VwIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIklmIGNoZWNrZWQsIHVzZSBncm91cCBmcm9tIHRoZSBkYXRhYmFzZSINCiAgICB9LA0KICAgICJjaGFubmVsTG9nbyI6DQogICAgew0KICAgICAgInRpdGxlIjogIkxvZ28gVVJMIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJ1cGRhdGVDaGFubmVsTG9nbyI6DQogICAgew0KICAgICAgInRpdGxlIjogIlVwZGF0ZSBDaGFubmVsIExvZ28iLA0KICAgICAgInBsYWNlaG9sZGVyIjogIiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgImVwZ0NhdGVnb3J5IjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiRVBHIENhdGVnb3J5IiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJtM3VHcm91cFRpdGxlIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiR3JvdXAgVGl0bGUgKHh0ZXZlLm0zdSkiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgInhtbHR2RmlsZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIlhNTFRWIEZpbGUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgInhtbHR2Q2hhbm5lbCI6DQogICAgew0KICAgICAgInRpdGxlIjogIlhNTFRWIENoYW5uZWwiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgInRpbWVzaGlmdCI6DQogICAgew0KICAgICAgInRpdGxlIjogIlRpbWVzaGlmdCIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiMCIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0NCiAgfSwNCiAgInVzZXJzIjoNCiAgew0KICAgICJ0YWJsZSI6DQogICAgew0KICAgICAgInVzZXJuYW1lIjogIlVzZXJuYW1lIiwNCiAgICAgICJwYXNzd29yZCI6ICJQYXNzd29yZCIsDQogICAgICAid2ViIjogIldFQiIsDQogICAgICAicG1zIjogIlBNUyIsDQogICAgICAibTN1IjogIk0zVSIsDQogICAgICAieG1sIjogIlhNTCIsDQogICAgICAiYXBpIjogIkFQSSINCiAgICB9LA0KICAgICJ1c2VybmFtZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIlVzZXJuYW1lIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJVc2VybmFtZSIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgInBhc3N3b3JkIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiUGFzc3dvcmQiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIlBhc3N3b3JkIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAiY29uZmlybSI6DQogICAgew0KICAgICAgInRpdGxlIjogIkNvbmZpcm0iLA0KICAgICAgInBsYWNlaG9sZGVyIjogIlBhc3N3b3JkIGNvbmZpcm0iLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJ3ZWIiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJXZWIgQWNjZXNzIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJwbXMiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJQTVMgQWNjZXNzIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJtM3UiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJNM1UgQWNjZXNzIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJ4bWwiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJYTUwgQWNjZXNzIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJhcGkiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJBUEkgQWNjZXNzIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9DQogIH0sDQogICJzZXR0aW5ncyI6DQogIHsNCiAgICAiY2F0ZWdvcnkiOg0KICAgIHsNCiAgICAgICJnZW5lcmFsIjogIkdlbmVyYWwiLA0KICAgICAgImZpbGVzIjogIkZpbGVzIiwNCiAgICAgICJzdHJlYW1pbmciOiAiU3RyZWFtaW5nIiwNCiAgICAgICJiYWNrdXAiOiAiQmFja3VwIiwNCiAgICAgICJhdXRoZW50aWNhdGlvbiI6ICJBdXRoZW50aWNhdGlvbiINCiAgICB9LA0KICAgICJ1cGRhdGUiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJTY2hlZHVsZSBmb3IgdXBkYXRpbmcgKFBsYXlsaXN0LCBYTUxUViwgQmFja3VwKSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiMDAwMCwxMDAwLDIwMDAiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIlRpbWUgaW4gMjQgaG91ciBmb3JtYXQgKDA4MDAgPSA4OjAwIGFtKS4gTW9yZSB0aW1lcyBjYW4gYmUgZW50ZXJlZCBjb21tYSBzZXBhcmF0ZWQuIExlYXZlIHRoaXMgZmllbGQgZW1wdHkgaWYgbm8gdXBkYXRlcyBhcmUgdG8gYmUgY2FycmllZCBvdXQuIg0KICAgIH0sDQogICAgImFwaSI6DQogICAgew0KICAgICAgInRpdGxlIjogIkFQSSBJbnRlcmZhY2UiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIlZpYSBBUEkgaW50ZXJmYWNlIGl0IGlzIHBvc3NpYmxlIHRvIHNlbmQgY29tbWFuZHMgdG8geFRlVmUuIEFQSSBkb2N1bWVudGF0aW9uIGlzIDxhIGhyZWY9J2h0dHBzOi8vZ2l0aHViLmNvbS94dGV2ZS1wcm9qZWN0L3hUZVZlLURvY3VtZW50YXRpb24vYmxvYi9tYXN0ZXIvZW4vY29uZmlndXJhdGlvbi5tZCNhcGknPmhlcmU8L2E+Ig0KICAgIH0sDQogICAgImVwZ1NvdXJjZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIkVQRyBTb3VyY2UiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIlBNUzo8YnI+LSBVc2UgRVBHIGRhdGEgZnJvbSBQbGV4IG9yIEVtYnkgPGJyPjxicj5YRVBHOjxicj4tIFVzZSBvZiBvbmUgb3IgbW9yZSBYTUxUViBmaWxlczxicj4tIENoYW5uZWwgbWFuYWdlbWVudDxicj4tIE0zVSAvIFhNTFRWIGV4cG9ydCAoSFRUUCBsaW5rIGZvciBJUFRWIGFwcHMpIg0KICAgIH0sDQogICAgInR1bmVyIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiTnVtYmVyIG9mIFR1bmVycyIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiTnVtYmVyIG9mIHBhcmFsbGVsIGNvbm5lY3Rpb25zIHRoYXQgY2FuIGJlIGVzdGFibGlzaGVkIHRvIHRoZSBwcm92aWRlci48YnI+QXZhaWxhYmxlIGZvcjogUGxleCwgRW1ieSAoSERIUiksIE0zVSAod2l0aCBhY3RpdmUgYnVmZmVyKS48YnI+QWZ0ZXIgYSBjaGFuZ2UsIHhUZVZlIG11c3QgYmUgZGVsZXRlIGluIHRoZSBQbGV4IC8gRW1ieSBEVlIgc2V0dGluZ3MgYW5kIHNldCB1cCBhZ2Fpbi4iDQogICAgfSwNCiAgICAiaG9zdElQIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiSG9zdCBJUCIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiSVAgYWRkcmVzcyB4VGVWZSB3aWxsIHVzZSB0byBmb3JtIE0zVSBhbmQgWE1MVFYgZmlsZXMiDQogICAgfSwNCiAgICAidGxzTW9kZSI6IHsNCiAgICAgICJ0aXRsZSI6ICJUTFMgKEhUVFBTKSBtb2RlIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJDaGFuZ2VzIHdlYiBzZXJ2ZXIgcHJvdG9jb2wgdG8gSFRUUFMuPGJyPkZvciBkZXRhaWxzLCBzZWUgPGE+aHR0cHM6Ly9naXRodWIuY29tL1NDUDAwMi94VGVWZSN0bHMtbW9kZTwvYT4iDQogICAgfSwNCiAgICAiZmlsZXNVcGRhdGUiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJVcGRhdGVzIGFsbCBmaWxlcyBhdCBzdGFydHVwIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJVcGRhdGVzIGFsbCBwbGF5bGlzdHMsIHR1bmVyIGFuZCBYTUxUViBmaWxlcyBhdCBzdGFydHVwLiINCiAgICB9LA0KICAgICJjYWNoZUltYWdlcyI6DQogICAgew0KICAgICAgInRpdGxlIjogIkltYWdlIENhY2hpbmciLA0KICAgICAgImRlc2NyaXB0aW9uIjogIkFsbCBpbWFnZXMgZnJvbSB0aGUgWE1MVFYgZmlsZSBhcmUgY2FjaGVkLCBhbGxvd2luZyBmYXN0ZXIgcmVuZGVyaW5nIG9mIHRoZSBncmlkIGluIHRoZSBjbGllbnQuPGJyPkRvd25sb2FkaW5nIHRoZSBpbWFnZXMgbWF5IHRha2UgYSB3aGlsZSBhbmQgd2lsbCBiZSBkb25lIGluIHRoZSBiYWNrZ3JvdW5kLiINCiAgICB9LA0KICAgICJyZXBsYWNlRW1wdHlJbWFnZXMiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJSZXBsYWNlIG1pc3NpbmcgcHJvZ3JhbSBpbWFnZXMiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIklmIHRoZSBwb3N0ZXIgaW4gdGhlIFhNTFRWIHByb2dyYW0gaXMgbWlzc2luZywgdGhlIGNoYW5uZWwgbG9nbyB3aWxsIGJlIHVzZWQuIg0KICAgIH0sDQogICAgInh0ZXZlQXV0b1VwZGF0ZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIkF1dG9tYXRpYyB1cGRhdGUgb2YgeFRlVmUiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIklmIGEgbmV3IHZlcnNpb24gb2YgeFRlVmUgaXMgYXZhaWxhYmxlLCBpdCB3aWxsIGJlIGF1dG9tYXRpY2FsbHkgaW5zdGFsbGVkLiBUaGUgdXBkYXRlcyBhcmUgZG93bmxvYWRlZCBmcm9tIEdpdEh1Yi4iDQogICAgfSwNCiAgICAic3RyZWFtQnVmZmVyaW5nIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiU3RyZWFtIEJ1ZmZlciIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiRnVuY3Rpb25zIG9mIHRoZSBidWZmZXI6PGJyPi0gVGhlIHN0cmVhbSBpcyBwYXNzZWQgZnJvbSB4VGVWZSwgRkZtcGVnIG9yIFZMQyB0byBQbGV4LCBFbWJ5IG9yIE0zVSBQbGF5ZXI8YnI+LSBTbWFsbCBqZXJraW5nIG9mIHRoZSBzdHJlYW1zIGNhbiBiZSBjb21wZW5zYXRlZDxicj4tIEhMUyAvIE0zVTggc3VwcG9ydDxicj4tIFJUUCAvIFJUUFMgc3VwcG9ydCAob25seSBGRm1wZWcgb3IgVkxDKTxicj4tIFJlLXN0cmVhbWluZzxicj4tIFNlcGFyYXRlIHR1bmVyIGxpbWl0IGZvciBlYWNoIHBsYXlsaXN0IiwNCiAgICAgICJpbmZvX2ZhbHNlIjogIk5vIEJ1ZmZlciAoQ2xpZW50IGNvbm5lY3RzIHRvIHRoZSBzdHJlYW1pbmcgc2VydmVyKSIsDQogICAgICAiaW5mb194dGV2ZSI6ICJ4VGVWZSBjb25uZWN0cyB0byB0aGUgc3RyZWFtaW5nIHNlcnZlciIsDQogICAgICAiaW5mb19mZm1wZWciOiAiRkZtcGVnIGNvbm5lY3RzIHRvIHRoZSBzdHJlYW1pbmcgc2VydmVyIiwNCiAgICAgICJpbmZvX3ZsYyI6ICJWTEMgY29ubmVjdHMgdG8gdGhlIHN0cmVhbWluZyBzZXJ2ZXIiDQoNCiAgICB9LA0KICAgICJ1ZHB4eSI6DQogICAgew0KICAgICAgInRpdGxlIjogIlVEUHh5IGFkZHJlc3MiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIlRoZSBhZGRyZXNzIG9mIHlvdXIgVURQeHkgc2VydmVyLiBJZiBzZXQsIGFuZCB0aGUgY2hhbm5lbCBVUkxzIGluIHRoZSBtM3UgaXMgbXVsdGljYXN0LCB4VGVWZSB3aWxsIHJld3JpdGUgaXQgc28gdGhhdCBpdCBpcyBhY2Nlc3NlZCB2aWEgdGhlIFVEUHh5IHNlcnZpY2UuIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJob3N0OnBvcnQiDQogICAgfSwNCiAgICAiZmZtcGVnUGF0aCI6DQogICAgew0KICAgICAgInRpdGxlIjogIkZGbXBlZyBCaW5hcnkgUGF0aCIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiUGF0aCB0byBGRm1wZWcgYmluYXJ5LiIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiL3BhdGgvdG8vZmZtcGVnIg0KICAgIH0sDQogICAgImZmbXBlZ09wdGlvbnMiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJGRm1wZWcgT3B0aW9ucyIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiRkZtcGVnIG9wdGlvbnMuPGJyPk9ubHkgY2hhbmdlIGlmIHlvdSBrbm93IHdoYXQgeW91IGFyZSBkb2luZy48YnI+TGVhdmUgYmxhbmsgdG8gc2V0IGRlZmF1bHQgc2V0dGluZ3MuIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJMZWF2ZSBibGFuayB0byBzZXQgZGVmYXVsdCBzZXR0aW5ncyINCiAgICB9LA0KICAgICJ2bGNQYXRoIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiVkxDIC8gQ1ZMQyBCaW5hcnkgUGF0aCIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiUGF0aCB0byBWTEMgLyBDVkxDIGJpbmFyeS4iLA0KICAgICAgInBsYWNlaG9sZGVyIjogIi9wYXRoL3RvL2N2bGMiDQogICAgfSwNCiAgICAidmxjT3B0aW9ucyI6DQogICAgew0KICAgICAgInRpdGxlIjogIlZMQyAvIENWTEMgT3B0aW9ucyIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiVkxDIC8gQ1ZMQyBvcHRpb25zLjxicj5Pbmx5IGNoYW5nZSBpZiB5b3Uga25vdyB3aGF0IHlvdSBhcmUgZG9pbmcuPGJyPkxlYXZlIGJsYW5rIHRvIHNldCBkZWZhdWx0IHNldHRpbmdzLiIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiTGVhdmUgYmxhbmsgdG8gc2V0IGRlZmF1bHQgc2V0dGluZ3MiDQogICAgfSwNCiAgICAiYnVmZmVyU2l6ZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIkJ1ZmZlciBTaXplIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJCdWZmZXIgc2l6ZSBpbiBNQi48YnI+TTNVODogSWYgdGhlIFRTIHNlZ21lbnQgc21hbGxlciB0aGVuIHRoZSBidWZmZXIgc2l6ZSwgdGhlIGZpbGUgc2l6ZSBvZiB0aGUgc2VnbWVudCBpcyB1c2VkLiINCiAgICB9LA0KICAgICJzdG9yZUJ1ZmZlckluUkFNIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiU3RvcmUgYnVmZmVyIGluIFJBTSIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiSWYgY2hlY2tlZCwgd3JpdGUgYnVmZmVyIHRvIFJBTSBpbnN0ZWFkIG9mIHdyaXRpbmcgdG8gZGlzayINCiAgICB9LA0KICAgICJidWZmZXJUaW1lb3V0IjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiVGltZW91dCBmb3IgbmV3IGNsaWVudCBjb25uZWN0aW9ucyIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiVGhlIHhUZVZlIGJ1ZmZlciB3YWl0cyB1bnRpbCBuZXcgY2xpZW50IGNvbm5lY3Rpb25zIGFyZSBlc3RhYmxpc2hlZC4gSGVscGZ1bCBmb3IgZmFzdCBjaGFubmVsIHN3aXRjaGluZy4gVmFsdWUgaW4gbWlsbGlzZWNvbmRzLiIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiMTAwIg0KICAgIH0sDQogICAgInVzZXJBZ2VudCI6DQogICAgew0KICAgICAgInRpdGxlIjogIlVzZXIgQWdlbnQiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIlVzZXIgQWdlbnQgZm9yIEhUVFAgcmVxdWVzdHMuIEZvciBldmVyeSBIVFRQIGNvbm5lY3Rpb24sIHRoaXMgdmFsdWUgaXMgdXNlZCBmb3IgdGhlIHVzZXIgYWdlbnQuIFNob3VsZCBvbmx5IGJlIGNoYW5nZWQgaWYgeFRlVmUgaXMgYmxvY2tlZC4iLA0KICAgICAgInBsYWNlaG9sZGVyIjogInhUZVZlIg0KICAgIH0sDQogICAgImJhY2t1cFBhdGgiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJMb2NhdGlvbiBmb3IgYXV0b21hdGljIGJhY2t1cHMiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIi9tbnQvZGF0YS9iYWNrdXAveHRldmUvIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJCZWZvcmUgYW55IHVwZGF0ZSBvZiB0aGUgcHJvdmlkZXIgZGF0YSBieSB0aGUgc2NoZWR1bGUsIHhUZVZlIGNyZWF0ZXMgYSBiYWNrdXAuIFRoZSBwYXRoIGZvciB0aGUgYXV0b21hdGljIGJhY2t1cHMgY2FuIGJlIGNoYW5nZWQuIHhUZVZlIHJlcXVpcmVzIHdyaXRlIHBlcm1pc3Npb24gZm9yIHRoaXMgZm9sZGVyLiINCiAgICB9LA0KICAgICJ0ZW1wUGF0aCI6DQogICAgew0KICAgICAgInRpdGxlIjogIkxvY2F0aW9uIGZvciB0aGUgdGVtcG9yYXJ5IGZpbGVzIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIvdG1wL3h0ZXZlLyIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiTG9jYXRpb24gZm9yIHRoZSBidWZmZXIgZmlsZXMuIg0KICAgIH0sDQogICAgImJhY2t1cEtlZXAiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJOdW1iZXIgb2YgYmFja3VwcyB0byBrZWVwIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJOdW1iZXIgb2YgYmFja3VwcyB0byBrZWVwLiBPbGRlciBiYWNrdXBzIGFyZSBhdXRvbWF0aWNhbGx5IGRlbGV0ZWQuIg0KICAgIH0sDQogICAgImF1dGhlbnRpY2F0aW9uV0VCIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiV0VCIEF1dGhlbnRpY2F0aW9uIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJBY2Nlc3MgdG8gdGhlIHdlYiBpbnRlcmZhY2Ugb25seSBwb3NzaWJsZSB3aXRoIGNyZWRlbnRpYWxzLiINCiAgICB9LA0KICAgICJhdXRoZW50aWNhdGlvblBNUyI6DQogICAgew0KICAgICAgInRpdGxlIjogIlBNUyBBdXRoZW50aWNhdGlvbiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiUGxleCByZXF1ZXN0cyBhcmUgb25seSBwb3NzaWJsZSB3aXRoIGF1dGhlbnRpY2F0aW9uLiA8YnI+PGI+V2FybmluZyEhITwvYj4gQWZ0ZXIgYWN0aXZhdGluZyB0aGlzIGZ1bmN0aW9uIHhUZVZlIG11c3QgYmUgZGVsZXRlIGluIHRoZSBQTVMgRFZSIHNldHRpbmdzIGFuZCBzZXQgdXAgYWdhaW4uIg0KICAgIH0sDQogICAgImF1dGhlbnRpY2F0aW9uTTNVIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiTTNVIEF1dGhlbnRpY2F0aW9uIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJEb3dubG9hZGluZyB0aGUgeHRldmUubTN1IGZpbGUgdmlhIGFuIEhUVFAgcmVxdWVzdCBpcyBvbmx5IHBvc3NpYmxlIHdpdGggYXV0aGVudGljYXRpb24uIg0KICAgIH0sDQogICAgImF1dGhlbnRpY2F0aW9uWE1MIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiWE1MIEF1dGhlbnRpY2F0aW9uIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJEb3dubG9hZGluZyB0aGUgeHRldmUueG1sIGZpbGUgdmlhIGFuIEhUVFAgcmVxdWVzdCBpcyBvbmx5IHBvc3NpYmxlIHdpdGggYXV0aGVudGljYXRpb24iDQogICAgfSwNCiAgICAiYXV0aGVudGljYXRpb25BUEkiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJBUEkgQXV0aGVudGljYXRpb24iLA0KICAgICAgImRlc2NyaXB0aW9uIjogIkFjY2VzcyB0byB0aGUgQVBJIGludGVyZmFjZSBpcyBvbmx5IHBvc3NpYmxlIHdpdGggYXV0aGVudGljYXRpb24uIg0KICAgIH0NCiAgfSwNCiAgIndpemFyZCI6DQogIHsNCiAgICAiZXBnU291cmNlIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiRVBHIFNvdXJjZSIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiUE1TOjxicj4tIFVzZSBFUEcgZGF0YSBmcm9tIFBsZXggb3IgRW1ieSA8YnI+PGJyPlhFUEc6PGJyPi0gVXNlIG9mIG9uZSBvciBtb3JlIFhNTFRWIGZpbGVzPGJyPi0gQ2hhbm5lbCBtYW5hZ2VtZW50PGJyPi0gTTNVIC8gWE1MVFYgZXhwb3J0IChIVFRQIGxpbmsgZm9yIElQVFYgYXBwcykiDQogICAgfSwNCiAgICAidHVuZXIiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJOdW1iZXIgb2YgdHVuZXJzIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJOdW1iZXIgb2YgcGFyYWxsZWwgY29ubmVjdGlvbnMgdGhhdCBjYW4gYmUgZXN0YWJsaXNoZWQgdG8gdGhlIHByb3ZpZGVyLjxicj5BdmFpbGFibGUgZm9yOiBQbGV4LCBFbWJ5IChIREhSKSwgTTNVICh3aXRoIGFjdGl2ZSBidWZmZXIpLjxicj5BZnRlciBhIGNoYW5nZSwgeFRlVmUgbXVzdCBiZSBkZWxldGUgaW4gdGhlIFBsZXggLyBFbWJ5IERWUiBzZXR0aW5ncyBhbmQgc2V0IHVwIGFnYWluLiINCiAgICB9LA0KICAgICJtM3UiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJNM1UgUGxheWxpc3QiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIkZpbGUgcGF0aCBvciBVUkwgb2YgdGhlIE0zVSIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiTG9jYWwgb3IgcmVtb3RlIHBsYXlsaXN0cyINCiAgICB9LA0KICAgICJ4bWx0diI6DQogICAgew0KICAgICAgInRpdGxlIjogIlhNTFRWIEZpbGUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIkZpbGUgcGF0aCBvciBVUkwgb2YgdGhlIFhNTFRWIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJMb2NhbCBvciByZW1vdGUgWE1MVFYgZmlsZSINCiAgICB9DQogIH0sDQogICJsb2dpbiI6DQogIHsNCiAgICAiZmFpbGVkIjogIlVzZXIgYXV0aGVudGljYXRpb24gZmFpbGVkIiwNCiAgICAiaGVhZGxpbmUiOiAiTG9naW4iLA0KICAgICJ1c2VybmFtZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIlVzZXJuYW1lIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJVc2VybmFtZSINCiAgICB9LA0KICAgICJwYXNzd29yZCI6DQogICAgew0KICAgICAgInRpdGxlIjogIlBhc3N3b3JkIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJQYXNzd29yZCINCiAgICB9DQogIH0sDQogICJhY2NvdW50IjoNCiAgew0KICAgICJmYWlsZWQiOiAiUGFzc3dvcmQgZG9lcyBub3QgbWF0Y2giLA0KICAgICJoZWFkbGluZSI6ICJDcmVhdGUgdXNlciBhY2NvdW50IiwNCiAgICAidXNlcm5hbWUiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJVc2VybmFtZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiVXNlcm5hbWUiDQogICAgfSwNCiAgICAicGFzc3dvcmQiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJQYXNzd29yZCIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiUGFzc3dvcmQiDQogICAgfSwNCiAgICAiY29uZmlybSI6DQogICAgew0KICAgICAgInRpdGxlIjogIkNvbmZpcm0iLA0KICAgICAgInBsYWNlaG9sZGVyIjogIkNvbmZpcm0iDQogICAgfQ0KICB9DQp9" webUI["html/login.html"] = "PCFkb2N0eXBlIGh0bWw+DQo8aHRtbD4NCiAgPGhlYWQ+DQogICAgPG1ldGEgY2hhcnNldD0idXRmLTgiPg0KICAgIDxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgsIGluaXRpYWwtc2NhbGU9MS4wIiAvPiANCiAgICA8dGl0bGU+eFRlVmU8L3RpdGxlPg0KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iY3NzL3NjcmVlbi5jc3MiIHR5cGU9InRleHQvY3NzIj4NCiAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9ImNzcy9iYXNlLmNzcyIgdHlwZT0idGV4dC9jc3MiPg0KICAgIDxzY3JpcHQgbGFuZ3VhZ2U9ImphdmFzY3JpcHQiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJqcy9uZXR3b3JrX3RzLmpzIj48L3NjcmlwdD4NCiAgICA8c2NyaXB0IGxhbmd1YWdlPSJqYXZhc2NyaXB0IiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ianMvYXV0aGVudGljYXRpb25fdHMuanMiPjwvc2NyaXB0Pg0KICA8L2hlYWQ+DQoNCiAgICA8Ym9keT4NCiAgICAgICAgICANCiAgICAgIDxkaXYgaWQ9ImhlYWRlciIgY2xhc3M9ImltZ0NlbnRlciI+PC9kaXY+DQoNCiAgICAgIDxkaXYgaWQ9ImJveCI+DQoNCiAgICAgICAgPGRpdiBpZD0iaGVhZGxpbmUiPg0KICAgICAgICAgIDxoMSBpZD0iaGVhZC10ZXh0IiBjbGFzcz0iY2VudGVyIj57ey5sb2dpbi5oZWFkbGluZX19PC9oMT4NCiAgICAgICAgPC9kaXY+DQoNCiAgICAgICAgPHAgaWQ9ImVyciIgY2xhc3M9ImVycm9yTXNnIGNlbnRlciI+e3suYXV0aGVudGljYXRpb25FcnJ9fTwvcD4NCg0KICAgICAgICA8ZGl2IGlkPSJjb250ZW50Ij4NCg0KICAgICAgICAgICAgPGZvcm0gaWQ9ImF1dGhlbnRpY2F0aW9uIiBhY3Rpb249IiIgbWV0aG9kPSJwb3N0Ij4NCg0KICAgICAgICAgICAgICA8aDU+e3subG9naW4udXNlcm5hbWUudGl0bGV9fTo8L2g1Pg0KICAgICAgICAgICAgICA8aW5wdXQgaWQ9InVzZXJuYW1lIiB0eXBlPSJ0ZXh0IiBuYW1lPSJ1c2VybmFtZSIgcGxhY2Vob2xkZXI9IlVzZXJuYW1lIiB2YWx1ZT0iIj4NCiAgICAgICAgICAgICAgPGg1Pnt7LmxvZ2luLnBhc3N3b3JkLnRpdGxlfX06PC9oNT4NCiAgICAgICAgICAgICAgPGlucHV0IGlkPSJwYXNzd29yZCIgdHlwZT0icGFzc3dvcmQiIG5hbWU9InBhc3N3b3JkIiBwbGFjZWhvbGRlcj0iUGFzc3dvcmQiIHZhbHVlPSIiPg0KDQogICAgICAgICAgICA8L2Zvcm0+DQoNCiAgICAgICAgPC9kaXY+DQoNCiAgICAgICAgPGRpdiBpZD0iYm94LWZvb3RlciI+DQogICAgICAgICAgPGlucHV0IGlkPSJzdWJtaXQiIGNsYXNzPSIiIHR5cGU9ImJ1dHRvbiIgdmFsdWU9Int7LmJ1dHRvbi5sb2dpbn19IiBvbmNsaWNrPSJqYXZhc2NyaXB0OiBsb2dpbigpOyI+DQogICAgICAgIDwvZGl2Pg0KICAgICAgICANCiAgICAgIDwvZGl2Pg0KDQogICAgPC9ib2R5Pg0KICAgIA0KPC9odG1sPg==" webUI["html/maintenance.html"] = "PCFkb2N0eXBlIGh0bWw+DQo8aHRtbD4NCiAgPGhlYWQ+DQogICAgPG1ldGEgY2hhcnNldD0idXRmLTgiPg0KICAgIDxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgsIGluaXRpYWwtc2NhbGU9MS4wIiAvPiANCiAgICA8dGl0bGU+eFRlVmU8L3RpdGxlPg0KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iY3NzL3NjcmVlbi5jc3MiIHR5cGU9InRleHQvY3NzIj4NCiAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9ImNzcy9iYXNlLmNzcyIgdHlwZT0idGV4dC9jc3MiPg0KICA8L2hlYWQ+DQoNCiAgICA8Ym9keT4NCiAgICAgICAgICANCiAgICAgIDxkaXYgaWQ9ImhlYWRlciIgY2xhc3M9ImltZ0NlbnRlciI+PC9kaXY+DQoNCiAgICAgIDxkaXYgaWQ9ImJveCI+DQoNCiAgICAgICAgPGRpdiBpZD0iaGVhZGxpbmUiPg0KICAgICAgICAgIDxoMSBpZD0iaGVhZC10ZXh0IiBjbGFzcz0iY2VudGVyIj5NYWludGVuYW5jZTwvaDE+ICAgICAgDQogICAgICAgIDwvZGl2PiAgDQoNCiAgICAgICAgPGRpdiBpZD0iY29udGVudCI+DQogICAgICAgICAgeFRlVmUgaXMgdXBkYXRpbmcgdGhlIGRhdGFiYXNlLCBwbGVhc2UgdHJ5IGFnYWluIGxhdGVyLg0KICAgICAgICA8L2Rpdj4NCg0KICAgICAgICA8ZGl2IGlkPSJib3gtZm9vdGVyIj48L2Rpdj4NCiAgICAgICAgDQogICAgICA8L2Rpdj4NCg0KICAgIDwvYm9keT4NCjwvaHRtbD4=" diff --git a/src/xepg.go b/src/xepg.go index 053b979..0a0dbbd 100644 --- a/src/xepg.go +++ b/src/xepg.go @@ -156,17 +156,6 @@ func createXEPGMapping() { var tmpMap = make(map[string]interface{}) - var getFriendlyName = func(channel Channel) (friendlyName string) { - switch len(channel.DisplayNames) { - case 1: - friendlyName = channel.DisplayNames[0].Value - default: - friendlyName = fmt.Sprintf("%s (%s)", channel.DisplayNames[1].Value, channel.DisplayNames[0].Value) - } - - return - } - if len(Data.XMLTV.Files) > 0 { for i := len(Data.XMLTV.Files) - 1; i >= 0; i-- { @@ -199,7 +188,6 @@ func createXEPGMapping() { channel["id"] = c.ID channel["display-names"] = c.DisplayNames - channel["friendly-name"] = getFriendlyName(*c) channel["icon"] = c.Icon.Src xmltvMap[c.ID] = channel @@ -231,7 +219,6 @@ func createXEPGMapping() { for _, i := range times { var dummyChannel = make(map[string]interface{}) - dummyChannel["friendly-name"] = i + " Minutes" dummyChannel["display-names"] = []DisplayName{{Value: i + " Minutes"}} dummyChannel["id"] = i + "_Minutes" dummyChannel["icon"] = "" diff --git a/ts/authentication_ts.ts b/ts/authentication_ts.ts index 133b71a..f823b94 100644 --- a/ts/authentication_ts.ts +++ b/ts/authentication_ts.ts @@ -6,8 +6,6 @@ function login() { var inputs:any = div.getElementsByTagName("INPUT") - console.log(inputs) - for (var i = inputs.length - 1; i >= 0; i--) { var key:string = (inputs[i] as HTMLInputElement).name @@ -39,8 +37,6 @@ function login() { } } - - console.log(data) form.submit(); diff --git a/ts/base_ts.ts b/ts/base_ts.ts index 85485b0..106ea29 100644 --- a/ts/base_ts.ts +++ b/ts/base_ts.ts @@ -242,7 +242,7 @@ function sortTable(column) { break; default: - console.log(x.childNodes[0].tagName); + break; } sortArr.push({key: xValue ? xValue : i, row: rows[i]}); @@ -416,8 +416,6 @@ function changeChannelNumber(element) { data[dbID]["x-channelID"] = newNumber.toString() element.value = newNumber - console.log(data[dbID]["x-channelID"]) - if (COLUMN_TO_SORT == 1) { COLUMN_TO_SORT = -1 sortTable(1) @@ -429,17 +427,12 @@ function changeChannelNumber(element) { function backup() { var data = new Object() - console.log("Backup data") - var cmd = "xteveBackup" - - console.log("SEND TO SERVER"); - console.log(data) - var server:Server = new Server(cmd) server.request(data) return + } function toggleChannelStatus(id:string) { @@ -541,7 +534,6 @@ function restore() { reader.readAsDataURL(file); reader.onload = function() { - console.log(reader.result); var data = new Object(); var cmd = "xteveRestore" data["base64"] = reader.result @@ -594,7 +586,6 @@ function uploadLogo() { reader.readAsDataURL(file); reader.onload = function() { - console.log(reader.result); var data = new Object(); var cmd = "uploadLogo" data["base64"] = reader.result @@ -638,6 +629,7 @@ function checkUndo(key:string) { return } +// TODO: Probably don't need this anymore. Remove before finishing with xmltv picker. function sortSelect(select: HTMLSelectElement) { const tempArr: HTMLOptionElement[] = []; const selectedValue = select.options[select.selectedIndex].value; @@ -676,7 +668,6 @@ function sortSelect(select: HTMLSelectElement) { function updateLog() { - console.log("TOKEN") var server:Server = new Server("updateLog") server.request(new Object()) diff --git a/ts/configuration_ts.ts b/ts/configuration_ts.ts index e81db2f..e69c971 100644 --- a/ts/configuration_ts.ts +++ b/ts/configuration_ts.ts @@ -83,15 +83,12 @@ class WizardItem extends WizardCategory { break default: - console.log(key) break; } var pre = document.createElement("PRE") pre.innerHTML = description doc.appendChild(pre) - - console.log(headline, key) } @@ -166,7 +163,6 @@ function saveWizard() { var server:Server = new Server(cmd) server.request(data) - console.log(data) } // Wizard diff --git a/ts/menu_ts.ts b/ts/menu_ts.ts index 4580575..b98c1af 100644 --- a/ts/menu_ts.ts +++ b/ts/menu_ts.ts @@ -68,8 +68,6 @@ class MainMenuItem extends MainMenu { break } - - //console.log(this.menuKey, this.tableHeader); } } @@ -390,7 +388,6 @@ class Content { BULK_EDIT = false createSearchObj() checkUndo("epgMapping") - console.log("MAPPING") data = SERVER["xepg"]["epgMapping"] var keys = getOwnObjProps(data) @@ -398,8 +395,6 @@ class Content { var tr = document.createElement("TR") tr.id = key - //tr.setAttribute('oncontextmenu', 'javascript: rightClick(this)') - switch (data[key]["x-active"]) { case true: tr.className = "activeEPG" @@ -422,7 +417,6 @@ class Content { cell.child = true cell.childType = "INPUTCHANNEL" cell.value = data[key]["x-channelID"] - //td.setAttribute('onclick', 'javascript: changeChannelNumber("' + key + '", this)') tr.appendChild(cell.createCell()) // Logo @@ -446,13 +440,11 @@ class Content { td.setAttribute('onclick', 'javascript: openPopUp("mapping", this)') td.id = key tr.appendChild(td) - // Playlist var cell:Cell = new Cell() cell.child = true cell.childType = "P" - //cell.value = data[key]["_file.m3u.name"] cell.value = getValueFromProviderFile(data[key]["_file.m3u.id"], "m3u", "name") var td = cell.createCell() td.setAttribute('onclick', 'javascript: openPopUp("mapping", this)') @@ -490,7 +482,6 @@ class Content { var cell:Cell = new Cell() cell.child = true cell.childType = "P" - //var value = str.substring(1, 4); var value = data[key]["x-mapping"] if (value.length > 20) { value = data[key]["x-mapping"].substring(0, 20) + "..." @@ -499,7 +490,6 @@ class Content { var td = cell.createCell() td.setAttribute('onclick', 'javascript: openPopUp("mapping", this)') td.id = key - tr.appendChild(td) // TimeShift @@ -522,8 +512,6 @@ class Content { break default: - console.log("Table content (menuKey):", menuKey); - break } @@ -751,7 +739,6 @@ class ShowContent extends Content { break default: - console.log("Show content (menuKey):", menuKey); break; } @@ -1687,13 +1674,15 @@ function openPopUp(dataType, element) { var dbKey: string = 'x-mapping'; var xmlTv = new XMLTVFile(); const currentXmlTvId: string = data[dbKey]; - const xmlTvIdSelect = xmlTv.getPrograms(xmlTvFile, currentXmlTvId); - xmlTvIdSelect.setAttribute('name', dbKey); - xmlTvIdSelect.setAttribute('id', 'popup-mapping'); - xmlTvIdSelect.setAttribute('onchange', `javascript: this.className = 'changed'; checkXmltvChannel('${id}', this, '${xmlTvFile}');`); - - sortSelect(xmlTvIdSelect); - content.appendRow('{{.mapping.xmltvChannel.title}}', xmlTvIdSelect); + const [xmlTvIdContainer, xmlTvIdInput, xmlTvIdDatalist] = xmlTv.newXmlTvIdPicker(xmlTvFile, currentXmlTvId); + xmlTvIdContainer.setAttribute('id', 'xmltv-id-picker-container'); + xmlTvIdInput.setAttribute('list', 'xmltv-id-picker-datalist'); + xmlTvIdInput.setAttribute('name', 'x-mapping'); // Should stay x-mapping as it will be used in donePopupData to make a server request + xmlTvIdInput.setAttribute('id', 'xmltv-id-picker-input'); + xmlTvIdInput.setAttribute('onchange', `javascript: this.className = 'changed'; checkXmltvChannel('${id}', this, '${xmlTvFile}');`); + xmlTvIdDatalist.setAttribute('id', 'xmltv-id-picker-datalist'); + // sortSelect(xmlTvIdDatalist); // TODO: Better sort before adding + content.appendRow('{{.mapping.xmltvChannel.title}}', xmlTvIdContainer); // Timeshift var dbKey:string = "x-timeshift" @@ -1769,36 +1758,61 @@ class XMLTVFile { return select } - getPrograms(xmlTvFile: string, currentXmlTvId: string): HTMLSelectElement { - const values = getOwnObjProps(SERVER['xepg']['xmltvMap'][xmlTvFile]); - const text: string[] = []; - let friendlyName: string; - - for (let i = 0; i < values.length; i++) { - if (SERVER['xepg']['xmltvMap'][xmlTvFile][values[i]].hasOwnProperty('friendly-name') == true) { - friendlyName = SERVER['xepg']['xmltvMap'][xmlTvFile][values[i]]['friendly-name']; - } else { - friendlyName = '-'; - } - - text[i] = `${friendlyName} (${values[i]})`; - } - - text.unshift('-'); - values.unshift('-'); - - const select = (document.createElement('select') as HTMLSelectElement); - - for (let i = 0; i < text.length; i++) { - const option = document.createElement('option'); - option.setAttribute('value', values[i]); - option.innerText = text[i]; - select.appendChild(option); + // TODO: Display FULL list, see: + // > https://stackoverflow.com/questions/37478727/how-can-i-make-a-browser-display-all-datalist-options-when-a-default-value-is-se + // > https://www.hongkiat.com/blog/search-select-using-datalist/ + // > https://jqueryui.com/autocomplete/#combobox OR https://select2.org/dropdown + + /** + * @param xmlTvFile XML file path to get EPG from. + * @param currentXmlTvId Current XMLTV ID to set initial input value to. + * @returns Array of, sequentially: + * 1) Container of the picker. + * 2) Input field to type at and get choice from. + * 3) Datalist containing every option. + */ + newXmlTvIdPicker(xmlTvFile: string, currentXmlTvId: string): [HTMLDivElement, HTMLInputElement, HTMLDataListElement] { + const container = document.createElement('div'); + const input = document.createElement('input'); + input.setAttribute('type', 'text'); + input.value = currentXmlTvId ? currentXmlTvId : '-'; + + container.appendChild(input); + + const datalist = document.createElement('datalist'); + + const option = document.createElement('option'); + option.setAttribute('value', '-'); + option.innerText = '-'; + datalist.appendChild(option); + + const epg: Object = SERVER['xepg']['xmltvMap'][xmlTvFile]; + + if (epg) { + const programIds = getOwnObjProps(epg); + + programIds.forEach((programId) => { + const program: Object = epg[programId]; + + if (program.hasOwnProperty('display-names')) { + program['display-names'].forEach((displayName: Object) => { + const option: HTMLOptionElement = document.createElement('option'); + option.setAttribute('value', programId); + option.innerText = displayName['Value']; + datalist.appendChild(option); + }); + } else { + const option: HTMLOptionElement = document.createElement('option'); + option.setAttribute('value', programId); + option.innerText = '-'; + datalist.appendChild(option); + } + }); } - select.value = (currentXmlTvId == '') ? '-' : currentXmlTvId; + container.appendChild(datalist); - return select; + return [container, input, datalist]; } return @@ -1846,29 +1860,35 @@ function setXmltvChannel(epgMapId: string, xmlTvFileSelect: HTMLSelectElement) { const newXmlTvFile = xmlTvFileSelect.value; // Remove old XMLTV ID selection box - const xmlTvIdSelectParent = document.getElementById('popup-mapping').parentElement as HTMLTableCellElement; - xmlTvIdSelectParent.innerHTML = ''; + const xmlTvIdPickerParent = document.getElementById('xmltv-id-picker-container').parentElement as HTMLTableCellElement; + xmlTvIdPickerParent.innerHTML = ''; // Create new XMLTV ID selection box const tvgId: string = SERVER['xepg']['epgMapping'][epgMapId]['tvg-id']; - const newXmlTvIdSelect = xmlTv.getPrograms(newXmlTvFile, tvgId); - newXmlTvIdSelect.setAttribute('name', 'x-mapping'); - newXmlTvIdSelect.setAttribute('id', 'popup-mapping'); - newXmlTvIdSelect.setAttribute('onchange', `javascript: this.className = 'changed'; checkXmltvChannel('${epgMapId}', this, '${newXmlTvFile}');`); - newXmlTvIdSelect.className = 'changed'; - sortSelect(newXmlTvIdSelect); + const [xmlTvIdContainer, xmlTvIdInput, xmlTvIdDatalist] = xmlTv.newXmlTvIdPicker(newXmlTvFile, tvgId); + xmlTvIdContainer.setAttribute('id', 'xmltv-id-picker-container'); + xmlTvIdInput.setAttribute('list', 'xmltv-id-picker-datalist'); + xmlTvIdInput.setAttribute('name', 'x-mapping'); // Should stay x-mapping as it will be used in donePopupData to make a server request + xmlTvIdInput.setAttribute('id', 'xmltv-id-picker-input'); + xmlTvIdInput.setAttribute('onchange', `javascript: this.className = 'changed'; checkXmltvChannel('${epgMapId}', this, '${newXmlTvFile}');`); + xmlTvIdInput.classList.add('changed'); + xmlTvIdDatalist.setAttribute('id', 'xmltv-id-picker-datalist'); + // sortSelect(xmlTvIdDatalist); // TODO: Better sort before adding // Add new XMLTV ID selection box to it's parent - xmlTvIdSelectParent.appendChild(newXmlTvIdSelect); + xmlTvIdPickerParent.appendChild(xmlTvIdContainer); - checkXmltvChannel(epgMapId, newXmlTvIdSelect, newXmlTvFile); + checkXmltvChannel(epgMapId, xmlTvIdInput, newXmlTvFile); } -function checkXmltvChannel(epgMapId: string, xmlTvIdSelect: HTMLSelectElement, xmlTvFile: string) { +function checkXmltvChannel(epgMapId: string, xmlTvIdInput: HTMLInputElement, xmlTvFile: string) { + + // If empty, set to '-' + xmlTvIdInput.value = xmlTvIdInput.value ? xmlTvIdInput.value : '-'; - const newXmlTvId = xmlTvIdSelect.value; + const newXmlTvId = xmlTvIdInput.value; const channelActiveCb = document.getElementById('active') as HTMLInputElement; const channelActive = newXmlTvId != '-'; @@ -1895,8 +1915,8 @@ function changeChannelLogo(epgMapId: string) { const xmlTvFileSelect = document.getElementById('popup-xmltv') as HTMLSelectElement; const xmlTvFile = xmlTvFileSelect.options[xmlTvFileSelect.selectedIndex].value; - const xmlTvIdSelect = document.getElementById('popup-mapping') as HTMLSelectElement; - const newXmlTvId = xmlTvIdSelect.options[xmlTvIdSelect.selectedIndex].value; + const xmlTvIdInput = document.getElementById('xmltv-id-picker-input') as HTMLInputElement; + const newXmlTvId = xmlTvIdInput.value; const xmlTvLogo = SERVER['xepg']['xmltvMap'][xmlTvFile][newXmlTvId]['icon']; const updateLogo = (document.getElementById('update-icon') as HTMLInputElement).checked; @@ -1927,12 +1947,8 @@ function savePopupData(dataType: string, id: string, remove: Boolean, option: nu if (dataType == "mapping") { let data = {} - console.log("Save mapping data") - let cmd = "saveEpgMapping" data["epgMapping"] = SERVER["xepg"]["epgMapping"] - - console.log("SEND TO SERVER"); let server:Server = new Server(cmd) server.request(data) @@ -1942,7 +1958,6 @@ function savePopupData(dataType: string, id: string, remove: Boolean, option: nu return } - console.log("Save popup data") let div = document.getElementById("popup-custom") let inputs = div.getElementsByTagName("TABLE")[0].getElementsByTagName("INPUT"); @@ -2099,7 +2114,6 @@ function savePopupData(dataType: string, id: string, remove: Boolean, option: nu break default: - console.log(dataType, id); return } @@ -2112,10 +2126,6 @@ function savePopupData(dataType: string, id: string, remove: Boolean, option: nu } } - - console.log("SEND TO SERVER"); - - console.log(data); let server:Server = new Server(cmd) server.request(data) @@ -2127,13 +2137,11 @@ function donePopupData(dataType:string, idsStr:string) { let ids:string[] = idsStr.split(','); let div = document.getElementById("popup-custom") let inputs = div.getElementsByClassName("changed") - + ids.forEach(id => { let input: Object; input = SERVER["xepg"]["epgMapping"][id] - console.log(input); - for (let i = 0; i < inputs.length; i++) { let name:string @@ -2226,7 +2234,6 @@ function donePopupData(dataType:string, idsStr:string) { document.getElementById(id).className = "activeEPG" } - console.log(input["tvg-logo"]); (document.getElementById(id).childNodes[2].firstChild as HTMLElement).setAttribute("src", input["tvg-logo"]) diff --git a/ts/settings_ts.ts b/ts/settings_ts.ts index 9ef209b..a53fa3c 100644 --- a/ts/settings_ts.ts +++ b/ts/settings_ts.ts @@ -635,7 +635,6 @@ class SettingsCategoryItem extends SettingsCategory { } function showSettings() { - console.log("SETTINGS"); for (let i = 0; i < settingsCategory.length; i++) { settingsCategory[i].createCategory() @@ -644,7 +643,6 @@ function showSettings() { } function saveSettings() { - console.log("Save Settings"); var cmd = "saveSettings" var div = document.getElementById("content_settings") @@ -710,4 +708,5 @@ function saveSettings() { var server:Server = new Server(cmd) server.request(data) + } From fe69e6a4f33d270cb1589e5e54b9d9940d237188 Mon Sep 17 00:00:00 2001 From: SCP002 Date: Thu, 28 Apr 2022 00:50:46 +0300 Subject: [PATCH 096/189] Remove unused frontend function: sortSelect --- html/js/base_ts.js | 30 ------------------------------ html/js/menu_ts.js | 2 -- src/webUI.go | 4 ++-- ts/base_ts.ts | 37 ------------------------------------- ts/menu_ts.ts | 6 ++---- 5 files changed, 4 insertions(+), 75 deletions(-) diff --git a/html/js/base_ts.js b/html/js/base_ts.js index 7ee811a..1aaea3a 100644 --- a/html/js/base_ts.js +++ b/html/js/base_ts.js @@ -449,36 +449,6 @@ function checkUndo(key) { } return; } -// TODO: Probably don't need this anymore. Remove before finishing with xmltv picker. -function sortSelect(select) { - const tempArr = []; - const selectedValue = select.options[select.selectedIndex].value; - for (const selectOption of select.options) { - tempArr.push(selectOption); - } - tempArr.sort((o1, o2) => { - if (o1.text < o2.text) { - return -1; - } - if (o1.text > o2.text) { - return 1; - } - return 0; - }); - while (select.options.length > 0) { - select.options[0] = null; - } - ; - let newSelectedIndex = 0; - for (let i = 0; i < tempArr.length; i++) { - select.options[i] = tempArr[i]; - if (select.options[i].value == selectedValue) { - newSelectedIndex = i; - } - } - // Set new selected index after sorting - select.selectedIndex = newSelectedIndex; -} function updateLog() { var server = new Server("updateLog"); server.request(new Object()); diff --git a/html/js/menu_ts.js b/html/js/menu_ts.js index 82c7bba..16bef69 100644 --- a/html/js/menu_ts.js +++ b/html/js/menu_ts.js @@ -1356,7 +1356,6 @@ function openPopUp(dataType, element) { xmlTvIdInput.setAttribute('id', 'xmltv-id-picker-input'); xmlTvIdInput.setAttribute('onchange', `javascript: this.className = 'changed'; checkXmltvChannel('${id}', this, '${xmlTvFile}');`); xmlTvIdDatalist.setAttribute('id', 'xmltv-id-picker-datalist'); - // sortSelect(xmlTvIdDatalist); // TODO: Better sort before adding content.appendRow('{{.mapping.xmltvChannel.title}}', xmlTvIdContainer); // Timeshift var dbKey = "x-timeshift"; @@ -1507,7 +1506,6 @@ function setXmltvChannel(epgMapId, xmlTvFileSelect) { xmlTvIdInput.setAttribute('onchange', `javascript: this.className = 'changed'; checkXmltvChannel('${epgMapId}', this, '${newXmlTvFile}');`); xmlTvIdInput.classList.add('changed'); xmlTvIdDatalist.setAttribute('id', 'xmltv-id-picker-datalist'); - // sortSelect(xmlTvIdDatalist); // TODO: Better sort before adding // Add new XMLTV ID selection box to it's parent xmlTvIdPickerParent.appendChild(xmlTvIdContainer); checkXmltvChannel(epgMapId, xmlTvIdInput, newXmlTvFile); diff --git a/src/webUI.go b/src/webUI.go index b95fad2..6214c17 100644 --- a/src/webUI.go +++ b/src/webUI.go @@ -25,11 +25,11 @@ func loadHTMLMap() { webUI["html/img/xmltv.png"] = "iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAAAXNSR0IArs4c6QAAAAlwSFlzAAAsSwAALEsBpT2WqQAABCRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IlhNUCBDb3JlIDUuNC4wIj4KICAgPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIgogICAgICAgICAgICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgICAgICAgICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyI+CiAgICAgICAgIDx0aWZmOlJlc29sdXRpb25Vbml0PjI8L3RpZmY6UmVzb2x1dGlvblVuaXQ+CiAgICAgICAgIDx0aWZmOkNvbXByZXNzaW9uPjU8L3RpZmY6Q29tcHJlc3Npb24+CiAgICAgICAgIDx0aWZmOlhSZXNvbHV0aW9uPjI4ODwvdGlmZjpYUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6T3JpZW50YXRpb24+MTwvdGlmZjpPcmllbnRhdGlvbj4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+Mjg4PC90aWZmOllSZXNvbHV0aW9uPgogICAgICAgICA8ZXhpZjpQaXhlbFhEaW1lbnNpb24+NTA8L2V4aWY6UGl4ZWxYRGltZW5zaW9uPgogICAgICAgICA8ZXhpZjpDb2xvclNwYWNlPjE8L2V4aWY6Q29sb3JTcGFjZT4KICAgICAgICAgPGV4aWY6UGl4ZWxZRGltZW5zaW9uPjUwPC9leGlmOlBpeGVsWURpbWVuc2lvbj4KICAgICAgICAgPGRjOnN1YmplY3Q+CiAgICAgICAgICAgIDxyZGY6QmFnLz4KICAgICAgICAgPC9kYzpzdWJqZWN0PgogICAgICAgICA8eG1wOk1vZGlmeURhdGU+MjAxOC0wNy0yOFQyMDowNzozMzwveG1wOk1vZGlmeURhdGU+CiAgICAgICAgIDx4bXA6Q3JlYXRvclRvb2w+UGl4ZWxtYXRvciAzLjM8L3htcDpDcmVhdG9yVG9vbD4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgIDwvcmRmOlJERj4KPC94OnhtcG1ldGE+Co6j9bsAAAGgSURBVGgF7VqxTsNADL0gYGEon8DOwsbAAH8BYmJn6cYIn8DC3h0+oixISFRiYYCJL0AwMMBAeK5w2rpV6uikxHfYknW98+vds18TK21DWGBlWR7CH+BfcEv2AzLP8HP42gLqkyUATuEp2PWEdQjF9ATs1zF/g29Mrxt+vVcUxR3xWxEktzFPJQmivsv8ZSI9DiQyVnxlIonwn6fpiczXpNuVVXH8O+a3Ys3y9NUyuf/NTTbEHZTjUlGSRzSiPhroUIENwB4AS/vS/susDwDhTpYBER9g7wHh5DWyibV9CiitCZbIafDEYUuJHQI3Nr/9ciWsjK6IFSWYhyvClbAyZqOIlYJG84jq7E1Ot97Zm+TinV1TrWwudk9EI3ebGFekzWprzspGEU2ySWCiOrs/s9dr7M/s9fVJJJrNXcsTsfaJc0WsKZINH+/sf1Jqvl1n1f2ZnStRN/pdq646XcSkIh9dkIg4s+IrE3nCpp8RG7f91ns+cCYR/LD4jcAZB42PN+A7/mcQ8ZxJhBYQvMJwBB/BKTFLVoLMC/wCfgyv7BesTKUC2LKM3wAAAABJRU5ErkJggg==" webUI["html/index.html"] = "PCFkb2N0eXBlIGh0bWw+DQo8aHRtbD4NCiAgPGhlYWQ+DQogICAgPG1ldGEgY2hhcnNldD0idXRmLTgiPg0KICAgIDwhLS0tDQogICAgPG1ldGEgbmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9IndpZHRoPWRldmljZS13aWR0aCwgaW5pdGlhbC1zY2FsZT0xLjAiIC8+IA0KICAgIC0tPg0KICAgIDx0aXRsZT54VGVWZTwvdGl0bGU+DQogICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJjc3Mvc2NyZWVuLmNzcyIgdHlwZT0idGV4dC9jc3MiPg0KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iY3NzL2Jhc2UuY3NzIiB0eXBlPSJ0ZXh0L2NzcyI+DQoNCiAgICA8c2NyaXB0IGxhbmd1YWdlPSJqYXZhc2NyaXB0IiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ianMvbmV0d29ya190cy5qcyI+PC9zY3JpcHQ+DQogICAgPHNjcmlwdCBsYW5ndWFnZT0iamF2YXNjcmlwdCIgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9ImpzL21lbnVfdHMuanMiPjwvc2NyaXB0Pg0KICAgIDxzY3JpcHQgbGFuZ3VhZ2U9ImphdmFzY3JpcHQiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJqcy9zZXR0aW5nc190cy5qcyI+PC9zY3JpcHQ+DQogICAgPHNjcmlwdCBsYW5ndWFnZT0iamF2YXNjcmlwdCIgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9ImpzL2xvZ3NfdHMuanMiPjwvc2NyaXB0Pg0KICAgIDxzY3JpcHQgbGFuZ3VhZ2U9ImphdmFzY3JpcHQiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJqcy9iYXNlX3RzLmpzIj48L3NjcmlwdD4NCg0KICA8L2hlYWQ+DQoNCiAgICA8Ym9keSBvbmxvYWQ9ImphdmFzY3JpcHQ6IFBhZ2VSZWFkeSgpOyI+DQoNCiAgICAgIDxkaXYgaWQ9ImxvYWRpbmciIGNsYXNzPSJub25lIj4NCiAgICAgICAgPGRpdiBjbGFzcz0ibG9hZGVyIj48L2Rpdj4NCiAgICAgIDwvZGl2Pg0KDQogICAgICA8ZGl2IGlkPSJwb3B1cCIgY2xhc3M9Im5vbmUiPg0KICAgICAgICA8ZGl2IGlkPSJwb3B1cC1jdXN0b20iPjwvZGl2Pg0KICAgICAgPC9kaXY+DQoNCiAgICAgIDxkaXYgaWQ9ImxheW91dCI+DQoNCiAgICAgICAgPCEtLQ0KICAgICAgICA8ZGl2IGlkPSJub3RpZmljYXRpb24iPg0KICAgICAgICAgIDxkaXYgY2xhc3M9ImVsZW1lbnQiPg0KICAgICAgICAgICAgPGg1PlhFUEc8L2g1Pg0KICAgICAgICAgICAgPHByZT4xMS4wNS4yMDE5IC0gMjA6MjE8L3ByZT4NCiAgICAgICAgICAgIDxocj4NCiAgICAgICAgICAgIDxwPkhhbGxvIGRhcyBpc3QgZWluIFRlc3QuIFVuZCBub2NoIG1laHIgVGV4dC48L3A+DQogICAgICAgICAgPC9kaXY+DQogICAgICAgIDwvZGl2Pg0KICAgICAgLS0+DQoNCiAgICAgICAgPGRpdiBpZD0ibWVudS13cmFwcGVyIiBjbGFzcz0ibGF5b3V0LWxlZnQiPg0KICAgICAgICAgIDxkaXYgaWQ9ICJicmFuY2giPjwvZGl2Pg0KICAgICAgICAgIDxkaXYgaWQ9ImxvZ28iPjwvZGl2Pg0KICAgICAgICAgIDxuYXYgaWQ9Im1haW4tbWVudSI+PC9uYXY+DQogICAgICAgIDwvZGl2Pg0KDQogICAgICAgIDxkaXYgY2xhc3M9ImxheW91dC1yaWdodCI+DQoNCiAgICAgICAgICA8dGFibGUgaWQ9ImNsaWVudEluZm8iIGNsYXNzPSIiPg0KDQogICAgICAgICAgICA8dHI+DQogICAgICAgICAgICAgIDx0ZCBjbGFzcz0idGRLZXkiPnhUZVZlOjwvdGQ+DQogICAgICAgICAgICAgIDx0ZCBpZD0idmVyc2lvbiIgY2xhc3M9InRkVmFsIj4mbmJzcDs8L3RkPg0KICAgICAgICAgICAgICA8dGQgY2xhc3M9InRkS2V5Ij5PUzo8L3RkPg0KICAgICAgICAgICAgICA8dGQgaWQ9Im9zIiBjbGFzcz0idGRWYWwiPiZuYnNwOzwvdGQ+DQogICAgICAgICAgICAgIDx0ZCBjbGFzcz0idGRLZXkgcGhvbmUiPkRWUiBJUDo8L3RkPg0KICAgICAgICAgICAgICA8dGQgaWQ9IkRWUiIgY2xhc3M9InRkVmFsIHBob25lIj4mbmJzcDs8L3RkPg0KICAgICAgICAgICAgPC90cj4NCg0KICAgICAgICAgICAgPHRyPg0KICAgICAgICAgICAgICA8dGQgY2xhc3M9InRkS2V5Ij5VVUlEOjwvdGQ+DQogICAgICAgICAgICAgIDx0ZCBpZD0idXVpZCIgY2xhc3M9InRkVmFsIj4mbmJzcDs8L3RkPg0KICAgICAgICAgICAgICA8dGQgY2xhc3M9InRkS2V5Ij5BcmNoOjwvdGQ+DQogICAgICAgICAgICAgIDx0ZCBpZD0iYXJjaCIgY2xhc3M9InRkVmFsIj4mbmJzcDs8L3RkPg0KICAgICAgICAgICAgICA8dGQgY2xhc3M9InRkS2V5IHBob25lIj5NM1UgVVJMOjwvdGQ+DQogICAgICAgICAgICAgIDx0ZCBpZD0ibTN1LXVybCIgY2xhc3M9InRkVmFsIHBob25lIj4mbmJzcDs8L3RkPg0KICAgICAgICAgICAgPC90cj4NCg0KICAgICAgICAgICAgPHRyPg0KICAgICAgICAgICAgICA8dGQgY2xhc3M9InRkS2V5Ij5BdmFpbGFibGUgU3RyZWFtczo8L3RkPg0KICAgICAgICAgICAgICA8dGQgaWQ9InN0cmVhbXMiIGNsYXNzPSJ0ZFZhbCI+Jm5ic3A7PC90ZD4NCiAgICAgICAgICAgICAgPHRkIGNsYXNzPSJ0ZEtleSI+RVBHIFNvdXJjZTo8L3RkPg0KICAgICAgICAgICAgICA8dGQgaWQ9ImVwZ1NvdXJjZSIgY2xhc3M9InRkVmFsIj4mbmJzcDs8L3RkPg0KICAgICAgICAgICAgICA8dGQgY2xhc3M9InRkS2V5IHBob25lIj5YRVBHIFVSTDo8L3RkPg0KICAgICAgICAgICAgICA8dGQgaWQ9InhlcGctdXJsIiBjbGFzcz0idGRWYWwgcGhvbmUiPiZuYnNwOzwvdGQ+DQogICAgICAgICAgICA8L3RyPg0KDQogICAgICAgICAgICA8dHI+DQogICAgICAgICAgICAgIDx0ZCBjbGFzcz0idGRLZXkiPlhFUEcgQ2hhbm5lbHM6PC90ZD4NCiAgICAgICAgICAgICAgPHRkIGlkPSJ4ZXBnIiBjbGFzcz0idGRWYWwiPiZuYnNwOzwvdGQ+DQogICAgICAgICAgICAgIDx0ZCBjbGFzcz0idGRLZXkiPkVycm9yczo8L3RkPg0KICAgICAgICAgICAgICA8dGQgaWQ9ImVycm9ycyIgY2xhc3M9InRkVmFsIj4mbmJzcDs8L3RkPg0KICAgICAgICAgICAgICA8dGQgY2xhc3M9InRkS2V5Ij5XYXJuaW5nczo8L3RkPg0KICAgICAgICAgICAgICA8dGQgaWQ9Indhcm5pbmdzIiBjbGFzcz0idGRWYWwiPiZuYnNwOzwvdGQ+DQogICAgICAgICAgICA8L3RyPg0KDQogICAgICAgICAgPC90YWJsZT4NCiAgICAgICAgIA0KICAgICAgICAgIDxkaXYgaWQ9Im15U3RyZWFtc0JveCIgY2xhc3M9Im5vdFZpc2libGUiPg0KDQogICAgICAgICAgICA8ZGl2IGlkPSJhbGxTdHJlYW1zIj4NCiAgICAgICAgICAgICAgPHRhYmxlIGlkPSJhY3RpdmVTdHJlYW1zIj48L3RhYmxlPg0KICAgICAgICAgICAgICA8dGFibGUgaWQ9ImluYWN0aXZlU3RyZWFtcyI+PC90YWJsZT4NCiAgICAgICAgICAgIDwvZGl2Pg0KDQogICAgICAgICAgPC9kaXY+DQogICAgICAgICAgDQogICAgICAgICAgPGRpdiBpZD0iY29udGVudCIgY2xhc3M9IiI+PC9kaXY+DQogICAgICAgICAgICANCiAgICAgICAgPC9kaXY+DQoNCiAgICAgIDwvZGl2Pg0KICAgICAgDQogICAgPC9ib2R5Pg0KICAgIA0KPC9odG1sPg==" webUI["html/js/authentication_ts.js"] = "ZnVuY3Rpb24gbG9naW4oKSB7DQogICAgdmFyIGVyciA9IGZhbHNlOw0KICAgIHZhciBkYXRhID0gbmV3IE9iamVjdCgpOw0KICAgIHZhciBkaXYgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29udGVudCIpOw0KICAgIHZhciBmb3JtID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImF1dGhlbnRpY2F0aW9uIik7DQogICAgdmFyIGlucHV0cyA9IGRpdi5nZXRFbGVtZW50c0J5VGFnTmFtZSgiSU5QVVQiKTsNCiAgICBmb3IgKHZhciBpID0gaW5wdXRzLmxlbmd0aCAtIDE7IGkgPj0gMDsgaS0tKSB7DQogICAgICAgIHZhciBrZXkgPSBpbnB1dHNbaV0ubmFtZTsNCiAgICAgICAgdmFyIHZhbHVlID0gaW5wdXRzW2ldLnZhbHVlOw0KICAgICAgICBpZiAodmFsdWUubGVuZ3RoID09IDApIHsNCiAgICAgICAgICAgIGlucHV0c1tpXS5zdHlsZS5ib3JkZXJDb2xvciA9ICJyZWQiOw0KICAgICAgICAgICAgZXJyID0gdHJ1ZTsNCiAgICAgICAgfQ0KICAgICAgICBkYXRhW2tleV0gPSB2YWx1ZTsNCiAgICB9DQogICAgaWYgKGVyciA9PSB0cnVlKSB7DQogICAgICAgIGRhdGEgPSBuZXcgT2JqZWN0KCk7DQogICAgICAgIHJldHVybjsNCiAgICB9DQogICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoImNvbmZpcm0iKSkgew0KICAgICAgICBpZiAoZGF0YVsiY29uZmlybSJdICE9IGRhdGFbInBhc3N3b3JkIl0pIHsNCiAgICAgICAgICAgIGFsZXJ0KCJzZGFmc2QiKTsNCiAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdwYXNzd29yZCcpLnN0eWxlLmJvcmRlckNvbG9yID0gInJlZCI7DQogICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY29uZmlybScpLnN0eWxlLmJvcmRlckNvbG9yID0gInJlZCI7DQogICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZXJyIikuaW5uZXJIVE1MID0gInt7LmFjY291bnQuZmFpbGVkfX0iOw0KICAgICAgICAgICAgcmV0dXJuOw0KICAgICAgICB9DQogICAgfQ0KICAgIGZvcm0uc3VibWl0KCk7DQp9DQo=" - webUI["html/js/base_ts.js"] = "dmFyIFNFUlZFUiA9IG5ldyBPYmplY3QoKTsNCnZhciBCVUxLX0VESVQgPSBmYWxzZTsNCnZhciBDT0xVTU5fVE9fU09SVDsNCnZhciBTRUFSQ0hfTUFQUElORyA9IG5ldyBPYmplY3QoKTsNCnZhciBVTkRPID0gbmV3IE9iamVjdCgpOw0KdmFyIFNFUlZFUl9DT05ORUNUSU9OID0gZmFsc2U7DQp2YXIgV1NfQVZBSUxBQkxFID0gZmFsc2U7DQovLyBNZW51DQp2YXIgbWVudUl0ZW1zID0gbmV3IEFycmF5KCk7DQptZW51SXRlbXMucHVzaChuZXcgTWFpbk1lbnVJdGVtKCJwbGF5bGlzdCIsICJ7ey5tYWluTWVudS5pdGVtLnBsYXlsaXN0fX0iLCAibTN1LnBuZyIsICJ7ey5tYWluTWVudS5oZWFkbGluZS5wbGF5bGlzdH19IikpOw0KLy9tZW51SXRlbXMucHVzaChuZXcgTWFpbk1lbnVJdGVtKCJwbXNJRCIsICJ7ey5tYWluTWVudS5pdGVtLnBtc0lEfX0iLCAibnVtYmVyLnBuZyIsICJ7ey5tYWluTWVudS5oZWFkbGluZS5wbXNJRH19IikpDQptZW51SXRlbXMucHVzaChuZXcgTWFpbk1lbnVJdGVtKCJmaWx0ZXIiLCAie3subWFpbk1lbnUuaXRlbS5maWx0ZXJ9fSIsICJmaWx0ZXIucG5nIiwgInt7Lm1haW5NZW51LmhlYWRsaW5lLmZpbHRlcn19IikpOw0KbWVudUl0ZW1zLnB1c2gobmV3IE1haW5NZW51SXRlbSgieG1sdHYiLCAie3subWFpbk1lbnUuaXRlbS54bWx0dn19IiwgInhtbHR2LnBuZyIsICJ7ey5tYWluTWVudS5oZWFkbGluZS54bWx0dn19IikpOw0KbWVudUl0ZW1zLnB1c2gobmV3IE1haW5NZW51SXRlbSgibWFwcGluZyIsICJ7ey5tYWluTWVudS5pdGVtLm1hcHBpbmd9fSIsICJtYXBwaW5nLnBuZyIsICJ7ey5tYWluTWVudS5oZWFkbGluZS5tYXBwaW5nfX0iKSk7DQptZW51SXRlbXMucHVzaChuZXcgTWFpbk1lbnVJdGVtKCJ1c2VycyIsICJ7ey5tYWluTWVudS5pdGVtLnVzZXJzfX0iLCAidXNlcnMucG5nIiwgInt7Lm1haW5NZW51LmhlYWRsaW5lLnVzZXJzfX0iKSk7DQptZW51SXRlbXMucHVzaChuZXcgTWFpbk1lbnVJdGVtKCJzZXR0aW5ncyIsICJ7ey5tYWluTWVudS5pdGVtLnNldHRpbmdzfX0iLCAic2V0dGluZ3MucG5nIiwgInt7Lm1haW5NZW51LmhlYWRsaW5lLnNldHRpbmdzfX0iKSk7DQptZW51SXRlbXMucHVzaChuZXcgTWFpbk1lbnVJdGVtKCJsb2ciLCAie3subWFpbk1lbnUuaXRlbS5sb2d9fSIsICJsb2cucG5nIiwgInt7Lm1haW5NZW51LmhlYWRsaW5lLmxvZ319IikpOw0KbWVudUl0ZW1zLnB1c2gobmV3IE1haW5NZW51SXRlbSgibG9nb3V0IiwgInt7Lm1haW5NZW51Lml0ZW0ubG9nb3V0fX0iLCAibG9nb3V0LnBuZyIsICJ7ey5tYWluTWVudS5oZWFkbGluZS5sb2dvdXR9fSIpKTsNCi8vIFNldHRpbmdzIGNhdGVnb3JpZXMNCnZhciBzZXR0aW5nc0NhdGVnb3J5ID0gbmV3IEFycmF5KCk7DQpzZXR0aW5nc0NhdGVnb3J5LnB1c2gobmV3IFNldHRpbmdzQ2F0ZWdvcnlJdGVtKCJ7ey5zZXR0aW5ncy5jYXRlZ29yeS5nZW5lcmFsfX0iLCAidGxzTW9kZSx4dGV2ZUF1dG9VcGRhdGUsaG9zdElQLHR1bmVyLGVwZ1NvdXJjZSxhcGkiKSk7DQpzZXR0aW5nc0NhdGVnb3J5LnB1c2gobmV3IFNldHRpbmdzQ2F0ZWdvcnlJdGVtKCJ7ey5zZXR0aW5ncy5jYXRlZ29yeS5maWxlc319IiwgInVwZGF0ZSxmaWxlcy51cGRhdGUsdGVtcC5wYXRoLGNhY2hlLmltYWdlcyx4ZXBnLnJlcGxhY2UubWlzc2luZy5pbWFnZXMiKSk7DQpzZXR0aW5nc0NhdGVnb3J5LnB1c2gobmV3IFNldHRpbmdzQ2F0ZWdvcnlJdGVtKCJ7ey5zZXR0aW5ncy5jYXRlZ29yeS5zdHJlYW1pbmd9fSIsICJidWZmZXIsdWRweHksYnVmZmVyLnNpemUua2Isc3RvcmVCdWZmZXJJblJBTSxidWZmZXIudGltZW91dCx1c2VyLmFnZW50LGZmbXBlZy5wYXRoLGZmbXBlZy5vcHRpb25zLHZsYy5wYXRoLHZsYy5vcHRpb25zIikpOw0Kc2V0dGluZ3NDYXRlZ29yeS5wdXNoKG5ldyBTZXR0aW5nc0NhdGVnb3J5SXRlbSgie3suc2V0dGluZ3MuY2F0ZWdvcnkuYmFja3VwfX0iLCAiYmFja3VwLnBhdGgsYmFja3VwLmtlZXAiKSk7DQpzZXR0aW5nc0NhdGVnb3J5LnB1c2gobmV3IFNldHRpbmdzQ2F0ZWdvcnlJdGVtKCJ7ey5zZXR0aW5ncy5jYXRlZ29yeS5hdXRoZW50aWNhdGlvbn19IiwgImF1dGhlbnRpY2F0aW9uLndlYixhdXRoZW50aWNhdGlvbi5wbXMsYXV0aGVudGljYXRpb24ubTN1LGF1dGhlbnRpY2F0aW9uLnhtbCxhdXRoZW50aWNhdGlvbi5hcGkiKSk7DQpmdW5jdGlvbiBzaG93UG9wVXBFbGVtZW50KGVsbSkgew0KICAgIHZhciBhbGxFbGVtZW50cyA9IG5ldyBBcnJheSgicG9wdXAtY3VzdG9tIik7DQogICAgZm9yICh2YXIgaSA9IDA7IGkgPCBhbGxFbGVtZW50cy5sZW5ndGg7IGkrKykgew0KICAgICAgICBzaG93RWxlbWVudChhbGxFbGVtZW50c1tpXSwgZmFsc2UpOw0KICAgIH0NCiAgICBzaG93RWxlbWVudChlbG0sIHRydWUpOw0KICAgIHNldFRpbWVvdXQoZnVuY3Rpb24gKCkgew0KICAgICAgICBzaG93RWxlbWVudCgicG9wdXAiLCB0cnVlKTsNCiAgICB9LCAxMCk7DQogICAgcmV0dXJuOw0KfQ0KZnVuY3Rpb24gc2hvd0VsZW1lbnQoZWxtSUQsIHR5cGUpIHsNCiAgICB2YXIgY3NzQ2xhc3M7DQogICAgc3dpdGNoICh0eXBlKSB7DQogICAgICAgIGNhc2UgdHJ1ZToNCiAgICAgICAgICAgIGNzc0NsYXNzID0gImJsb2NrIjsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlIGZhbHNlOg0KICAgICAgICAgICAgY3NzQ2xhc3MgPSAibm9uZSI7DQogICAgICAgICAgICBicmVhazsNCiAgICB9DQogICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoZWxtSUQpLmNsYXNzTmFtZSA9IGNzc0NsYXNzOw0KfQ0KZnVuY3Rpb24gY2hhbmdlQnV0dG9uQWN0aW9uKGVsZW1lbnQsIGJ1dHRvbklELCBhdHRyaWJ1dGUpIHsNCiAgICB2YXIgdmFsdWUgPSBlbGVtZW50Lm9wdGlvbnNbZWxlbWVudC5zZWxlY3RlZEluZGV4XS52YWx1ZTsNCiAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChidXR0b25JRCkuc2V0QXR0cmlidXRlKGF0dHJpYnV0ZSwgdmFsdWUpOw0KfQ0KZnVuY3Rpb24gZ2V0TG9jYWxEYXRhKGRhdGFUeXBlLCBpZCkgew0KICAgIGxldCBkYXRhID0ge307DQogICAgc3dpdGNoIChkYXRhVHlwZSkgew0KICAgICAgICBjYXNlICJtM3UiOg0KICAgICAgICAgICAgZGF0YSA9IFNFUlZFUlsic2V0dGluZ3MiXVsiZmlsZXMiXVtkYXRhVHlwZV1baWRdOw0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGNhc2UgImhkaHIiOg0KICAgICAgICAgICAgZGF0YSA9IFNFUlZFUlsic2V0dGluZ3MiXVsiZmlsZXMiXVtkYXRhVHlwZV1baWRdOw0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGNhc2UgImZpbHRlciI6DQogICAgICAgIGNhc2UgImN1c3RvbS1maWx0ZXIiOg0KICAgICAgICBjYXNlICJncm91cC10aXRsZSI6DQogICAgICAgICAgICBpZiAoaWQgPT0gLTEpIHsNCiAgICAgICAgICAgICAgICBkYXRhWyJhY3RpdmUiXSA9IHRydWU7DQogICAgICAgICAgICAgICAgZGF0YVsiY2FzZVNlbnNpdGl2ZSJdID0gZmFsc2U7DQogICAgICAgICAgICAgICAgZGF0YVsiZGVzY3JpcHRpb24iXSA9ICIiOw0KICAgICAgICAgICAgICAgIGRhdGFbImV4Y2x1ZGUiXSA9ICIiOw0KICAgICAgICAgICAgICAgIGRhdGFbImZpbHRlciJdID0gIiI7DQogICAgICAgICAgICAgICAgZGF0YVsiaW5jbHVkZSJdID0gIiI7DQogICAgICAgICAgICAgICAgZGF0YVsibmFtZSJdID0gIiI7DQogICAgICAgICAgICAgICAgZGF0YVsidHlwZSJdID0gImdyb3VwLXRpdGxlIjsNCiAgICAgICAgICAgICAgICBkYXRhWyJwcmVzZXJ2ZU1hcHBpbmciXSA9IHRydWU7DQogICAgICAgICAgICAgICAgZGF0YVsic3RhcnRpbmdDaGFubmVsIl0gPSBTRVJWRVJbInNldHRpbmdzIl1bIm1hcHBpbmcuZmlyc3QuY2hhbm5lbCJdOw0KICAgICAgICAgICAgICAgIGRhdGFbImRlZmF1bHRNaXNzaW5nRVBHIl0gPSAiLSI7DQogICAgICAgICAgICAgICAgU0VSVkVSWyJzZXR0aW5ncyJdWyJmaWx0ZXIiXVtpZF0gPSBkYXRhOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgZGF0YSA9IFNFUlZFUlsic2V0dGluZ3MiXVsiZmlsdGVyIl1baWRdOw0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGNhc2UgInhtbHR2IjoNCiAgICAgICAgICAgIGRhdGEgPSBTRVJWRVJbInNldHRpbmdzIl1bImZpbGVzIl1bZGF0YVR5cGVdW2lkXTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJ1c2VycyI6DQogICAgICAgICAgICBkYXRhID0gU0VSVkVSWyJ1c2VycyJdW2lkXVsiZGF0YSJdOw0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGNhc2UgIm1hcHBpbmciOg0KICAgICAgICAgICAgZGF0YSA9IFNFUlZFUlsieGVwZyJdWyJlcGdNYXBwaW5nIl1baWRdOw0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGNhc2UgIm0zdUdyb3VwcyI6DQogICAgICAgICAgICBkYXRhID0gU0VSVkVSWyJkYXRhIl1bInBsYXlsaXN0Il1bIm0zdSJdWyJncm91cHMiXTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgIH0NCiAgICByZXR1cm4gZGF0YTsNCn0NCmZ1bmN0aW9uIGdldE93bk9ialByb3BzKG9iamVjdCkgew0KICAgIHJldHVybiBvYmplY3QgPyBPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyhvYmplY3QpIDogW107DQp9DQpmdW5jdGlvbiBnZXRBbGxTZWxlY3RlZENoYW5uZWxzKCkgew0KICAgIHZhciBjaGFubmVscyA9IG5ldyBBcnJheSgpOw0KICAgIGlmIChCVUxLX0VESVQgPT0gZmFsc2UpIHsNCiAgICAgICAgcmV0dXJuIGNoYW5uZWxzOw0KICAgIH0NCiAgICB2YXIgdHJzID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnRlbnRfdGFibGUiKS5nZXRFbGVtZW50c0J5VGFnTmFtZSgiVFIiKTsNCiAgICBmb3IgKHZhciBpID0gMTsgaSA8IHRycy5sZW5ndGg7IGkrKykgew0KICAgICAgICBpZiAodHJzW2ldLnN0eWxlLmRpc3BsYXkgIT0gIm5vbmUiKSB7DQogICAgICAgICAgICBpZiAodHJzW2ldLmZpcnN0Q2hpbGQuZmlyc3RDaGlsZC5jaGVja2VkID09IHRydWUpIHsNCiAgICAgICAgICAgICAgICBjaGFubmVscy5wdXNoKHRyc1tpXS5pZCk7DQogICAgICAgICAgICB9DQogICAgICAgIH0NCiAgICB9DQogICAgcmV0dXJuIGNoYW5uZWxzOw0KfQ0KZnVuY3Rpb24gc2VsZWN0QWxsQ2hhbm5lbHMoKSB7DQogICAgdmFyIGJ1bGsgPSBmYWxzZTsNCiAgICB2YXIgdHJzID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnRlbnRfdGFibGUiKS5nZXRFbGVtZW50c0J5VGFnTmFtZSgiVFIiKTsNCiAgICBpZiAodHJzWzBdLmZpcnN0Q2hpbGQuZmlyc3RDaGlsZC5jaGVja2VkID09IHRydWUpIHsNCiAgICAgICAgYnVsayA9IHRydWU7DQogICAgfQ0KICAgIGZvciAodmFyIGkgPSAxOyBpIDwgdHJzLmxlbmd0aDsgaSsrKSB7DQogICAgICAgIGlmICh0cnNbaV0uc3R5bGUuZGlzcGxheSAhPSAibm9uZSIpIHsNCiAgICAgICAgICAgIHN3aXRjaCAoYnVsaykgew0KICAgICAgICAgICAgICAgIGNhc2UgdHJ1ZToNCiAgICAgICAgICAgICAgICAgICAgdHJzW2ldLmZpcnN0Q2hpbGQuZmlyc3RDaGlsZC5jaGVja2VkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSBmYWxzZToNCiAgICAgICAgICAgICAgICAgICAgdHJzW2ldLmZpcnN0Q2hpbGQuZmlyc3RDaGlsZC5jaGVja2VkID0gZmFsc2U7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQogICAgfQ0KICAgIHJldHVybjsNCn0NCmZ1bmN0aW9uIGJ1bGtFZGl0KCkgew0KICAgIEJVTEtfRURJVCA9ICFCVUxLX0VESVQ7DQogICAgdmFyIGNsYXNzTmFtZTsNCiAgICB2YXIgcm93cyA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlDbGFzc05hbWUoImJ1bGsiKTsNCiAgICBzd2l0Y2ggKEJVTEtfRURJVCkgew0KICAgICAgICBjYXNlIHRydWU6DQogICAgICAgICAgICBjbGFzc05hbWUgPSAiYnVsayBzaG93QnVsayI7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSBmYWxzZToNCiAgICAgICAgICAgIGNsYXNzTmFtZSA9ICJidWxrIGhpZGVCdWxrIjsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgIH0NCiAgICBmb3IgKHZhciBpID0gMDsgaSA8IHJvd3MubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgcm93c1tpXS5jbGFzc05hbWUgPSBjbGFzc05hbWU7DQogICAgICAgIHJvd3NbaV0uY2hlY2tlZCA9IGZhbHNlOw0KICAgIH0NCiAgICByZXR1cm47DQp9DQpmdW5jdGlvbiBzb3J0VGFibGUoY29sdW1uKSB7DQogICAgaWYgKGNvbHVtbiA9PSBDT0xVTU5fVE9fU09SVCkgew0KICAgICAgICByZXR1cm47DQogICAgfQ0KICAgIGNvbnN0IHRhYmxlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnRlbnRfdGFibGUiKTsNCiAgICBjb25zdCB0YWJsZUhlYWQgPSB0YWJsZS5nZXRFbGVtZW50c0J5VGFnTmFtZSgiVFIiKVswXTsNCiAgICBjb25zdCB0YWJsZUl0ZW1zID0gdGFibGVIZWFkLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJURCIpOw0KICAgIGNvbnN0IHNvcnRBcnIgPSBbXTsNCiAgICBsZXQgeFZhbHVlOw0KICAgIGlmIChjb2x1bW4gPj0gMCAmJiBDT0xVTU5fVE9fU09SVCA+PSAwKSB7DQogICAgICAgIHRhYmxlSXRlbXNbQ09MVU1OX1RPX1NPUlRdLmNsYXNzTmFtZSA9ICJwb2ludGVyIjsNCiAgICAgICAgdGFibGVJdGVtc1tjb2x1bW5dLmNsYXNzTmFtZSA9ICJzb3J0VGhpcyI7DQogICAgfQ0KICAgIENPTFVNTl9UT19TT1JUID0gY29sdW1uOw0KICAgIGNvbnN0IHJvd3MgPSB0YWJsZS5yb3dzOw0KICAgIGlmIChyb3dzWzFdICE9IHVuZGVmaW5lZCkgew0KICAgICAgICBjb25zdCB0YWJsZUhlYWRlciA9IHJvd3NbMF07DQogICAgICAgIGxldCB4ID0gcm93c1sxXS5nZXRFbGVtZW50c0J5VGFnTmFtZSgiVEQiKVtjb2x1bW5dOw0KICAgICAgICBmb3IgKGxldCBpID0gMTsgaSA8IHJvd3MubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgICAgIHggPSByb3dzW2ldLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJURCIpW2NvbHVtbl07DQogICAgICAgICAgICBzd2l0Y2ggKHguY2hpbGROb2Rlc1swXS50YWdOYW1lLnRvTG93ZXJDYXNlKCkpIHsNCiAgICAgICAgICAgICAgICBjYXNlICJpbnB1dCI6DQogICAgICAgICAgICAgICAgICAgIHhWYWx1ZSA9IHguZ2V0RWxlbWVudHNCeVRhZ05hbWUoIklOUFVUIilbMF0udmFsdWUudG9Mb3dlckNhc2UoKTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAicCI6DQogICAgICAgICAgICAgICAgICAgIHhWYWx1ZSA9IHguZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlAiKVswXS5pbm5lclRleHQudG9Mb3dlckNhc2UoKTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBzb3J0QXJyLnB1c2goeyBrZXk6IHhWYWx1ZSA/IHhWYWx1ZSA6IGksIHJvdzogcm93c1tpXSB9KTsNCiAgICAgICAgfQ0KICAgICAgICB3aGlsZSAodGFibGUuZmlyc3RDaGlsZCkgew0KICAgICAgICAgICAgdGFibGUucmVtb3ZlQ2hpbGQodGFibGUuZmlyc3RDaGlsZCk7DQogICAgICAgIH0NCiAgICAgICAgc29ydEFyci5zb3J0KChzZTEsIHNlMikgPT4gew0KICAgICAgICAgICAgY29uc3Qgc2UxS2V5TnVtID0gcGFyc2VGbG9hdChTdHJpbmcoc2UxLmtleSkpOw0KICAgICAgICAgICAgY29uc3Qgc2UyS2V5TnVtID0gcGFyc2VGbG9hdChTdHJpbmcoc2UyLmtleSkpOw0KICAgICAgICAgICAgaWYgKCFpc05hTihzZTFLZXlOdW0pICYmICFpc05hTihzZTJLZXlOdW0pKSB7DQogICAgICAgICAgICAgICAgcmV0dXJuIHNlMUtleU51bSAtIHNlMktleU51bTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGlmIChzZTEua2V5IDwgc2UyLmtleSkgew0KICAgICAgICAgICAgICAgIHJldHVybiAtMTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGlmIChzZTEua2V5ID4gc2UyLmtleSkgew0KICAgICAgICAgICAgICAgIHJldHVybiAxOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgcmV0dXJuIDA7DQogICAgICAgIH0pOw0KICAgICAgICB0YWJsZS5hcHBlbmRDaGlsZCh0YWJsZUhlYWRlcik7DQogICAgICAgIHNvcnRBcnIuZm9yRWFjaCgoc2UpID0+IHsNCiAgICAgICAgICAgIHRhYmxlLmFwcGVuZENoaWxkKHNlLnJvdyk7DQogICAgICAgIH0pOw0KICAgIH0NCiAgICByZXR1cm47DQp9DQpmdW5jdGlvbiBjcmVhdGVTZWFyY2hPYmooKSB7DQogICAgU0VBUkNIX01BUFBJTkcgPSBuZXcgT2JqZWN0KCk7DQogICAgdmFyIGRhdGEgPSBTRVJWRVJbInhlcGciXVsiZXBnTWFwcGluZyJdOw0KICAgIHZhciBjaGFubmVscyA9IGdldE93bk9ialByb3BzKGRhdGEpOw0KICAgIHZhciBjaGFubmVsS2V5cyA9IFsieC1hY3RpdmUiLCAieC1jaGFubmVsSUQiLCAieC1uYW1lIiwgIl9maWxlLm0zdS5uYW1lIiwgIngtZ3JvdXAtdGl0bGUiLCAieC14bWx0di1maWxlIl07DQogICAgY2hhbm5lbHMuZm9yRWFjaChpZCA9PiB7DQogICAgICAgIGNoYW5uZWxLZXlzLmZvckVhY2goa2V5ID0+IHsNCiAgICAgICAgICAgIGlmIChrZXkgPT0gIngtYWN0aXZlIikgew0KICAgICAgICAgICAgICAgIHN3aXRjaCAoZGF0YVtpZF1ba2V5XSkgew0KICAgICAgICAgICAgICAgICAgICBjYXNlIHRydWU6DQogICAgICAgICAgICAgICAgICAgICAgICBTRUFSQ0hfTUFQUElOR1tpZF0gPSAib25saW5lICI7DQogICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICAgICAgY2FzZSBmYWxzZToNCiAgICAgICAgICAgICAgICAgICAgICAgIFNFQVJDSF9NQVBQSU5HW2lkXSA9ICJvZmZsaW5lICI7DQogICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9DQogICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICBpZiAoa2V5ID09ICJ4LXhtbHR2LWZpbGUiKSB7DQogICAgICAgICAgICAgICAgICAgIHZhciB4bWx0dkZpbGUgPSBnZXRWYWx1ZUZyb21Qcm92aWRlckZpbGUoZGF0YVtpZF1ba2V5XSwgInhtbHR2IiwgIm5hbWUiKTsNCiAgICAgICAgICAgICAgICAgICAgaWYgKHhtbHR2RmlsZSAhPSB1bmRlZmluZWQpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIFNFQVJDSF9NQVBQSU5HW2lkXSA9IFNFQVJDSF9NQVBQSU5HW2lkXSArIHhtbHR2RmlsZSArICIgIjsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICAgICAgU0VBUkNIX01BUFBJTkdbaWRdID0gU0VBUkNIX01BUFBJTkdbaWRdICsgZGF0YVtpZF1ba2V5XSArICIgIjsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9DQogICAgICAgIH0pOw0KICAgIH0pOw0KICAgIHJldHVybjsNCn0NCmZ1bmN0aW9uIHNlYXJjaEluTWFwcGluZygpIHsNCiAgICB2YXIgc2VhcmNoVmFsdWUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic2VhcmNoTWFwcGluZyIpLnZhbHVlOw0KICAgIHZhciB0cnMgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29udGVudF90YWJsZSIpLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJUUiIpOw0KICAgIGZvciAodmFyIGkgPSAxOyBpIDwgdHJzLmxlbmd0aDsgKytpKSB7DQogICAgICAgIHZhciBpZCA9IHRyc1tpXS5nZXRBdHRyaWJ1dGUoImlkIik7DQogICAgICAgIHZhciBlbGVtZW50ID0gU0VBUkNIX01BUFBJTkdbaWRdOw0KICAgICAgICBzd2l0Y2ggKGVsZW1lbnQudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhzZWFyY2hWYWx1ZS50b0xvd2VyQ2FzZSgpKSkgew0KICAgICAgICAgICAgY2FzZSB0cnVlOg0KICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5zdHlsZS5kaXNwbGF5ID0gIiI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlIGZhbHNlOg0KICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5zdHlsZS5kaXNwbGF5ID0gIm5vbmUiOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICB9DQogICAgfQ0KICAgIHJldHVybjsNCn0NCmZ1bmN0aW9uIGNhbGN1bGF0ZVdyYXBwZXJIZWlnaHQoKSB7DQogICAgaWYgKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJib3gtd3JhcHBlciIpKSB7DQogICAgICAgIHZhciBlbG0gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYm94LXdyYXBwZXIiKTsNCiAgICAgICAgdmFyIGRpdnMgPSBuZXcgQXJyYXkoIm15U3RyZWFtc0JveCIsICJjbGllbnRJbmZvIiwgImNvbnRlbnQiKTsNCiAgICAgICAgdmFyIGVsZW1lbnRzSGVpZ2h0ID0gMCAtIGVsbS5vZmZzZXRIZWlnaHQ7DQogICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgZGl2cy5sZW5ndGg7IGkrKykgew0KICAgICAgICAgICAgZWxlbWVudHNIZWlnaHQgPSBlbGVtZW50c0hlaWdodCArIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGRpdnNbaV0pLm9mZnNldEhlaWdodDsNCiAgICAgICAgfQ0KICAgICAgICBlbG0uc3R5bGUuaGVpZ2h0ID0gd2luZG93LmlubmVySGVpZ2h0IC0gZWxlbWVudHNIZWlnaHQgKyAicHgiOw0KICAgIH0NCiAgICByZXR1cm47DQp9DQpmdW5jdGlvbiBjaGFuZ2VDaGFubmVsTnVtYmVyKGVsZW1lbnQpIHsNCiAgICB2YXIgZGJJRCA9IGVsZW1lbnQucGFyZW50Tm9kZS5wYXJlbnROb2RlLmlkOw0KICAgIHZhciBuZXdOdW1iZXIgPSBwYXJzZUZsb2F0KGVsZW1lbnQudmFsdWUpOw0KICAgIHZhciBjaGFubmVsTnVtYmVycyA9IFtdOw0KICAgIHZhciBkYXRhID0gU0VSVkVSWyJ4ZXBnIl1bImVwZ01hcHBpbmciXTsNCiAgICB2YXIgY2hhbm5lbHMgPSBnZXRPd25PYmpQcm9wcyhkYXRhKTsNCiAgICBpZiAoaXNOYU4obmV3TnVtYmVyKSkgew0KICAgICAgICBhbGVydCgie3suYWxlcnQuaW52YWxpZENoYW5uZWxOdW1iZXJ9fSIpOw0KICAgICAgICByZXR1cm47DQogICAgfQ0KICAgIGNoYW5uZWxzLmZvckVhY2goaWQgPT4gew0KICAgICAgICB2YXIgY2hhbm5lbE51bWJlciA9IHBhcnNlRmxvYXQoZGF0YVtpZF1bIngtY2hhbm5lbElEIl0pOw0KICAgICAgICBjaGFubmVsTnVtYmVycy5wdXNoKGNoYW5uZWxOdW1iZXIpOw0KICAgIH0pOw0KICAgIGZvciAodmFyIGkgPSAwOyBpIDwgY2hhbm5lbE51bWJlcnMubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgaWYgKGNoYW5uZWxOdW1iZXJzLmluZGV4T2YobmV3TnVtYmVyKSA9PSAtMSkgew0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIH0NCiAgICAgICAgaWYgKE1hdGguZmxvb3IobmV3TnVtYmVyKSA9PSBuZXdOdW1iZXIpIHsNCiAgICAgICAgICAgIG5ld051bWJlciA9IG5ld051bWJlciArIDE7DQogICAgICAgIH0NCiAgICAgICAgZWxzZSB7DQogICAgICAgICAgICBuZXdOdW1iZXIgPSBuZXdOdW1iZXIgKyAwLjE7DQogICAgICAgICAgICBuZXdOdW1iZXIudG9GaXhlZCgxKTsNCiAgICAgICAgICAgIG5ld051bWJlciA9IE1hdGgucm91bmQobmV3TnVtYmVyICogMTApIC8gMTA7DQogICAgICAgIH0NCiAgICB9DQogICAgZGF0YVtkYklEXVsieC1jaGFubmVsSUQiXSA9IG5ld051bWJlci50b1N0cmluZygpOw0KICAgIGVsZW1lbnQudmFsdWUgPSBuZXdOdW1iZXI7DQogICAgaWYgKENPTFVNTl9UT19TT1JUID09IDEpIHsNCiAgICAgICAgQ09MVU1OX1RPX1NPUlQgPSAtMTsNCiAgICAgICAgc29ydFRhYmxlKDEpOw0KICAgIH0NCiAgICByZXR1cm47DQp9DQpmdW5jdGlvbiBiYWNrdXAoKSB7DQogICAgdmFyIGRhdGEgPSBuZXcgT2JqZWN0KCk7DQogICAgdmFyIGNtZCA9ICJ4dGV2ZUJhY2t1cCI7DQogICAgdmFyIHNlcnZlciA9IG5ldyBTZXJ2ZXIoY21kKTsNCiAgICBzZXJ2ZXIucmVxdWVzdChkYXRhKTsNCiAgICByZXR1cm47DQp9DQpmdW5jdGlvbiB0b2dnbGVDaGFubmVsU3RhdHVzKGlkKSB7DQogICAgdmFyIGVsZW1lbnQ7DQogICAgdmFyIHN0YXR1czsNCiAgICBpZiAoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImFjdGl2ZSIpKSB7DQogICAgICAgIHZhciBjaGVja2JveCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJhY3RpdmUiKTsNCiAgICAgICAgc3RhdHVzID0gKGNoZWNrYm94KS5jaGVja2VkOw0KICAgIH0NCiAgICB2YXIgaWRzID0gZ2V0QWxsU2VsZWN0ZWRDaGFubmVscygpOw0KICAgIGlmIChpZHMubGVuZ3RoID09IDApIHsNCiAgICAgICAgaWRzLnB1c2goaWQpOw0KICAgIH0NCiAgICBpZHMuZm9yRWFjaChpZCA9PiB7DQogICAgICAgIHZhciBjaGFubmVsID0gU0VSVkVSWyJ4ZXBnIl1bImVwZ01hcHBpbmciXVtpZF07DQogICAgICAgIGNoYW5uZWxbIngtYWN0aXZlIl0gPSBzdGF0dXM7DQogICAgICAgIHN3aXRjaCAoY2hhbm5lbFsieC1hY3RpdmUiXSkgew0KICAgICAgICAgICAgY2FzZSB0cnVlOg0KICAgICAgICAgICAgICAgIGlmIChjaGFubmVsWyJ4LXhtbHR2LWZpbGUiXSA9PSAiLSIgfHwgY2hhbm5lbFsieC1tYXBwaW5nIl0gPT0gIi0iKSB7DQogICAgICAgICAgICAgICAgICAgIGlmIChCVUxLX0VESVQgPT0gZmFsc2UpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGFsZXJ0KGNoYW5uZWxbIngtbmFtZSJdICsgIjogTWlzc2luZyBYTUxUViBmaWxlIC8gY2hhbm5lbCIpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2hlY2tib3guY2hlY2tlZCA9IGZhbHNlOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIGNoYW5uZWxbIngtYWN0aXZlIl0gPSBmYWxzZTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlIGZhbHNlOg0KICAgICAgICAgICAgICAgIC8vIGNvZGUuLi4NCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgfQ0KICAgICAgICBpZiAoY2hhbm5lbFsieC1hY3RpdmUiXSA9PSBmYWxzZSkgew0KICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpLmNsYXNzTmFtZSA9ICJub3RBY3RpdmVFUEciOw0KICAgICAgICB9DQogICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpLmNsYXNzTmFtZSA9ICJhY3RpdmVFUEciOw0KICAgICAgICB9DQogICAgfSk7DQp9DQpmdW5jdGlvbiB0b2dnbGVHcm91cFVwZGF0ZUNiKHhlcGdJZCwgdGFyZ2V0KSB7DQogICAgdGFyZ2V0LmNsYXNzTmFtZSA9ICdjaGFuZ2VkJzsNCiAgICBjb25zdCBncm91cElucHV0ID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignaW5wdXRbbmFtZT0ieC1ncm91cC10aXRsZSJdJyk7DQogICAgY29uc3QgbWFwcGluZyA9IGdldExvY2FsRGF0YSgnbWFwcGluZycsIHhlcGdJZCk7DQogICAgaWYgKHRhcmdldC5jaGVja2VkKSB7DQogICAgICAgIGdyb3VwSW5wdXQuZGF0YXNldC5vbGRWYWx1ZSA9IGdyb3VwSW5wdXQudmFsdWU7DQogICAgICAgIGdyb3VwSW5wdXQudmFsdWUgPSBtYXBwaW5nWydncm91cC10aXRsZSddOw0KICAgICAgICBncm91cElucHV0LmRpc2FibGVkID0gdHJ1ZTsNCiAgICB9DQogICAgZWxzZSB7DQogICAgICAgIGdyb3VwSW5wdXQudmFsdWUgPSBncm91cElucHV0LmRhdGFzZXQub2xkVmFsdWU7DQogICAgICAgIGdyb3VwSW5wdXQuZGlzYWJsZWQgPSBmYWxzZTsNCiAgICB9DQogICAgZ3JvdXBJbnB1dC5jbGFzc05hbWUgPSAnY2hhbmdlZCc7DQp9DQpmdW5jdGlvbiByZXN0b3JlKCkgew0KICAgIGlmIChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndXBsb2FkJykpIHsNCiAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3VwbG9hZCcpLnJlbW92ZSgpOw0KICAgIH0NCiAgICB2YXIgcmVzdG9yZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIklOUFVUIik7DQogICAgcmVzdG9yZS5zZXRBdHRyaWJ1dGUoInR5cGUiLCAiZmlsZSIpOw0KICAgIHJlc3RvcmUuc2V0QXR0cmlidXRlKCJjbGFzcyIsICJub3RWaXNpYmxlIik7DQogICAgcmVzdG9yZS5zZXRBdHRyaWJ1dGUoIm5hbWUiLCAiIik7DQogICAgcmVzdG9yZS5pZCA9ICJ1cGxvYWQiOw0KICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQocmVzdG9yZSk7DQogICAgcmVzdG9yZS5jbGljaygpOw0KICAgIHJlc3RvcmUub25jaGFuZ2UgPSBmdW5jdGlvbiAoKSB7DQogICAgICAgIHZhciBmaWxlbmFtZSA9IHJlc3RvcmUuZmlsZXNbMF0ubmFtZTsNCiAgICAgICAgdmFyIGNoZWNrID0gY29uZmlybSgiRmlsZTogIiArIGZpbGVuYW1lICsgIlxue3suY29uZmlybS5yZXN0b3JlfX0iKTsNCiAgICAgICAgaWYgKGNoZWNrID09IHRydWUpIHsNCiAgICAgICAgICAgIHZhciByZWFkZXIgPSBuZXcgRmlsZVJlYWRlcigpOw0KICAgICAgICAgICAgdmFyIGZpbGUgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCdpbnB1dFt0eXBlPWZpbGVdJykuZmlsZXNbMF07DQogICAgICAgICAgICBpZiAoZmlsZSkgew0KICAgICAgICAgICAgICAgIHJlYWRlci5yZWFkQXNEYXRhVVJMKGZpbGUpOw0KICAgICAgICAgICAgICAgIHJlYWRlci5vbmxvYWQgPSBmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICAgICAgICAgIHZhciBkYXRhID0gbmV3IE9iamVjdCgpOw0KICAgICAgICAgICAgICAgICAgICB2YXIgY21kID0gInh0ZXZlUmVzdG9yZSI7DQogICAgICAgICAgICAgICAgICAgIGRhdGFbImJhc2U2NCJdID0gcmVhZGVyLnJlc3VsdDsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHNlcnZlciA9IG5ldyBTZXJ2ZXIoY21kKTsNCiAgICAgICAgICAgICAgICAgICAgc2VydmVyLnJlcXVlc3QoZGF0YSk7DQogICAgICAgICAgICAgICAgfTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgICAgIGFsZXJ0KCJGaWxlIGNvdWxkIG5vdCBiZSBsb2FkZWQiKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIHJlc3RvcmUucmVtb3ZlKCk7DQogICAgICAgICAgICByZXR1cm47DQogICAgICAgIH0NCiAgICB9Ow0KICAgIHJldHVybjsNCn0NCmZ1bmN0aW9uIHVwbG9hZExvZ28oKSB7DQogICAgaWYgKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd1cGxvYWQnKSkgew0KICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndXBsb2FkJykucmVtb3ZlKCk7DQogICAgfQ0KICAgIHZhciB1cGxvYWQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJJTlBVVCIpOw0KICAgIHVwbG9hZC5zZXRBdHRyaWJ1dGUoInR5cGUiLCAiZmlsZSIpOw0KICAgIHVwbG9hZC5zZXRBdHRyaWJ1dGUoImNsYXNzIiwgIm5vdFZpc2libGUiKTsNCiAgICB1cGxvYWQuc2V0QXR0cmlidXRlKCJuYW1lIiwgIiIpOw0KICAgIHVwbG9hZC5pZCA9ICJ1cGxvYWQiOw0KICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQodXBsb2FkKTsNCiAgICB1cGxvYWQuY2xpY2soKTsNCiAgICB1cGxvYWQub25ibHVyID0gZnVuY3Rpb24gKCkgew0KICAgICAgICBhbGVydCgpOw0KICAgIH07DQogICAgdXBsb2FkLm9uY2hhbmdlID0gZnVuY3Rpb24gKCkgew0KICAgICAgICB2YXIgZmlsZW5hbWUgPSB1cGxvYWQuZmlsZXNbMF0ubmFtZTsNCiAgICAgICAgdmFyIHJlYWRlciA9IG5ldyBGaWxlUmVhZGVyKCk7DQogICAgICAgIHZhciBmaWxlID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignaW5wdXRbdHlwZT1maWxlXScpLmZpbGVzWzBdOw0KICAgICAgICBpZiAoZmlsZSkgew0KICAgICAgICAgICAgcmVhZGVyLnJlYWRBc0RhdGFVUkwoZmlsZSk7DQogICAgICAgICAgICByZWFkZXIub25sb2FkID0gZnVuY3Rpb24gKCkgew0KICAgICAgICAgICAgICAgIHZhciBkYXRhID0gbmV3IE9iamVjdCgpOw0KICAgICAgICAgICAgICAgIHZhciBjbWQgPSAidXBsb2FkTG9nbyI7DQogICAgICAgICAgICAgICAgZGF0YVsiYmFzZTY0Il0gPSByZWFkZXIucmVzdWx0Ow0KICAgICAgICAgICAgICAgIGRhdGFbImZpbGVuYW1lIl0gPSBmaWxlLm5hbWU7DQogICAgICAgICAgICAgICAgdmFyIHNlcnZlciA9IG5ldyBTZXJ2ZXIoY21kKTsNCiAgICAgICAgICAgICAgICBzZXJ2ZXIucmVxdWVzdChkYXRhKTsNCiAgICAgICAgICAgICAgICB2YXIgdXBkYXRlTG9nbyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd1cGRhdGUtaWNvbicpOw0KICAgICAgICAgICAgICAgIHVwZGF0ZUxvZ28uY2hlY2tlZCA9IGZhbHNlOw0KICAgICAgICAgICAgICAgIHVwZGF0ZUxvZ28uY2xhc3NOYW1lID0gImNoYW5nZWQiOw0KICAgICAgICAgICAgfTsNCiAgICAgICAgfQ0KICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgIGFsZXJ0KCJGaWxlIGNvdWxkIG5vdCBiZSBsb2FkZWQiKTsNCiAgICAgICAgfQ0KICAgICAgICB1cGxvYWQucmVtb3ZlKCk7DQogICAgICAgIHJldHVybjsNCiAgICB9Ow0KfQ0KZnVuY3Rpb24gY2hlY2tVbmRvKGtleSkgew0KICAgIHN3aXRjaCAoa2V5KSB7DQogICAgICAgIGNhc2UgImVwZ01hcHBpbmciOg0KICAgICAgICAgICAgaWYgKFVORE8uaGFzT3duUHJvcGVydHkoa2V5KSkgew0KICAgICAgICAgICAgICAgIFNFUlZFUlsieGVwZyJdW2tleV0gPSBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KFVORE9ba2V5XSkpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgZWxzZSB7DQogICAgICAgICAgICAgICAgVU5ET1trZXldID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeShTRVJWRVJbInhlcGciXVtrZXldKSk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgIGJyZWFrOw0KICAgIH0NCiAgICByZXR1cm47DQp9DQovLyBUT0RPOiBQcm9iYWJseSBkb24ndCBuZWVkIHRoaXMgYW55bW9yZS4gUmVtb3ZlIGJlZm9yZSBmaW5pc2hpbmcgd2l0aCB4bWx0diBwaWNrZXIuDQpmdW5jdGlvbiBzb3J0U2VsZWN0KHNlbGVjdCkgew0KICAgIGNvbnN0IHRlbXBBcnIgPSBbXTsNCiAgICBjb25zdCBzZWxlY3RlZFZhbHVlID0gc2VsZWN0Lm9wdGlvbnNbc2VsZWN0LnNlbGVjdGVkSW5kZXhdLnZhbHVlOw0KICAgIGZvciAoY29uc3Qgc2VsZWN0T3B0aW9uIG9mIHNlbGVjdC5vcHRpb25zKSB7DQogICAgICAgIHRlbXBBcnIucHVzaChzZWxlY3RPcHRpb24pOw0KICAgIH0NCiAgICB0ZW1wQXJyLnNvcnQoKG8xLCBvMikgPT4gew0KICAgICAgICBpZiAobzEudGV4dCA8IG8yLnRleHQpIHsNCiAgICAgICAgICAgIHJldHVybiAtMTsNCiAgICAgICAgfQ0KICAgICAgICBpZiAobzEudGV4dCA+IG8yLnRleHQpIHsNCiAgICAgICAgICAgIHJldHVybiAxOw0KICAgICAgICB9DQogICAgICAgIHJldHVybiAwOw0KICAgIH0pOw0KICAgIHdoaWxlIChzZWxlY3Qub3B0aW9ucy5sZW5ndGggPiAwKSB7DQogICAgICAgIHNlbGVjdC5vcHRpb25zWzBdID0gbnVsbDsNCiAgICB9DQogICAgOw0KICAgIGxldCBuZXdTZWxlY3RlZEluZGV4ID0gMDsNCiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRlbXBBcnIubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgc2VsZWN0Lm9wdGlvbnNbaV0gPSB0ZW1wQXJyW2ldOw0KICAgICAgICBpZiAoc2VsZWN0Lm9wdGlvbnNbaV0udmFsdWUgPT0gc2VsZWN0ZWRWYWx1ZSkgew0KICAgICAgICAgICAgbmV3U2VsZWN0ZWRJbmRleCA9IGk7DQogICAgICAgIH0NCiAgICB9DQogICAgLy8gU2V0IG5ldyBzZWxlY3RlZCBpbmRleCBhZnRlciBzb3J0aW5nDQogICAgc2VsZWN0LnNlbGVjdGVkSW5kZXggPSBuZXdTZWxlY3RlZEluZGV4Ow0KfQ0KZnVuY3Rpb24gdXBkYXRlTG9nKCkgew0KICAgIHZhciBzZXJ2ZXIgPSBuZXcgU2VydmVyKCJ1cGRhdGVMb2ciKTsNCiAgICBzZXJ2ZXIucmVxdWVzdChuZXcgT2JqZWN0KCkpOw0KfQ0K" + webUI["html/js/base_ts.js"] = "dmFyIFNFUlZFUiA9IG5ldyBPYmplY3QoKTsNCnZhciBCVUxLX0VESVQgPSBmYWxzZTsNCnZhciBDT0xVTU5fVE9fU09SVDsNCnZhciBTRUFSQ0hfTUFQUElORyA9IG5ldyBPYmplY3QoKTsNCnZhciBVTkRPID0gbmV3IE9iamVjdCgpOw0KdmFyIFNFUlZFUl9DT05ORUNUSU9OID0gZmFsc2U7DQp2YXIgV1NfQVZBSUxBQkxFID0gZmFsc2U7DQovLyBNZW51DQp2YXIgbWVudUl0ZW1zID0gbmV3IEFycmF5KCk7DQptZW51SXRlbXMucHVzaChuZXcgTWFpbk1lbnVJdGVtKCJwbGF5bGlzdCIsICJ7ey5tYWluTWVudS5pdGVtLnBsYXlsaXN0fX0iLCAibTN1LnBuZyIsICJ7ey5tYWluTWVudS5oZWFkbGluZS5wbGF5bGlzdH19IikpOw0KLy9tZW51SXRlbXMucHVzaChuZXcgTWFpbk1lbnVJdGVtKCJwbXNJRCIsICJ7ey5tYWluTWVudS5pdGVtLnBtc0lEfX0iLCAibnVtYmVyLnBuZyIsICJ7ey5tYWluTWVudS5oZWFkbGluZS5wbXNJRH19IikpDQptZW51SXRlbXMucHVzaChuZXcgTWFpbk1lbnVJdGVtKCJmaWx0ZXIiLCAie3subWFpbk1lbnUuaXRlbS5maWx0ZXJ9fSIsICJmaWx0ZXIucG5nIiwgInt7Lm1haW5NZW51LmhlYWRsaW5lLmZpbHRlcn19IikpOw0KbWVudUl0ZW1zLnB1c2gobmV3IE1haW5NZW51SXRlbSgieG1sdHYiLCAie3subWFpbk1lbnUuaXRlbS54bWx0dn19IiwgInhtbHR2LnBuZyIsICJ7ey5tYWluTWVudS5oZWFkbGluZS54bWx0dn19IikpOw0KbWVudUl0ZW1zLnB1c2gobmV3IE1haW5NZW51SXRlbSgibWFwcGluZyIsICJ7ey5tYWluTWVudS5pdGVtLm1hcHBpbmd9fSIsICJtYXBwaW5nLnBuZyIsICJ7ey5tYWluTWVudS5oZWFkbGluZS5tYXBwaW5nfX0iKSk7DQptZW51SXRlbXMucHVzaChuZXcgTWFpbk1lbnVJdGVtKCJ1c2VycyIsICJ7ey5tYWluTWVudS5pdGVtLnVzZXJzfX0iLCAidXNlcnMucG5nIiwgInt7Lm1haW5NZW51LmhlYWRsaW5lLnVzZXJzfX0iKSk7DQptZW51SXRlbXMucHVzaChuZXcgTWFpbk1lbnVJdGVtKCJzZXR0aW5ncyIsICJ7ey5tYWluTWVudS5pdGVtLnNldHRpbmdzfX0iLCAic2V0dGluZ3MucG5nIiwgInt7Lm1haW5NZW51LmhlYWRsaW5lLnNldHRpbmdzfX0iKSk7DQptZW51SXRlbXMucHVzaChuZXcgTWFpbk1lbnVJdGVtKCJsb2ciLCAie3subWFpbk1lbnUuaXRlbS5sb2d9fSIsICJsb2cucG5nIiwgInt7Lm1haW5NZW51LmhlYWRsaW5lLmxvZ319IikpOw0KbWVudUl0ZW1zLnB1c2gobmV3IE1haW5NZW51SXRlbSgibG9nb3V0IiwgInt7Lm1haW5NZW51Lml0ZW0ubG9nb3V0fX0iLCAibG9nb3V0LnBuZyIsICJ7ey5tYWluTWVudS5oZWFkbGluZS5sb2dvdXR9fSIpKTsNCi8vIFNldHRpbmdzIGNhdGVnb3JpZXMNCnZhciBzZXR0aW5nc0NhdGVnb3J5ID0gbmV3IEFycmF5KCk7DQpzZXR0aW5nc0NhdGVnb3J5LnB1c2gobmV3IFNldHRpbmdzQ2F0ZWdvcnlJdGVtKCJ7ey5zZXR0aW5ncy5jYXRlZ29yeS5nZW5lcmFsfX0iLCAidGxzTW9kZSx4dGV2ZUF1dG9VcGRhdGUsaG9zdElQLHR1bmVyLGVwZ1NvdXJjZSxhcGkiKSk7DQpzZXR0aW5nc0NhdGVnb3J5LnB1c2gobmV3IFNldHRpbmdzQ2F0ZWdvcnlJdGVtKCJ7ey5zZXR0aW5ncy5jYXRlZ29yeS5maWxlc319IiwgInVwZGF0ZSxmaWxlcy51cGRhdGUsdGVtcC5wYXRoLGNhY2hlLmltYWdlcyx4ZXBnLnJlcGxhY2UubWlzc2luZy5pbWFnZXMiKSk7DQpzZXR0aW5nc0NhdGVnb3J5LnB1c2gobmV3IFNldHRpbmdzQ2F0ZWdvcnlJdGVtKCJ7ey5zZXR0aW5ncy5jYXRlZ29yeS5zdHJlYW1pbmd9fSIsICJidWZmZXIsdWRweHksYnVmZmVyLnNpemUua2Isc3RvcmVCdWZmZXJJblJBTSxidWZmZXIudGltZW91dCx1c2VyLmFnZW50LGZmbXBlZy5wYXRoLGZmbXBlZy5vcHRpb25zLHZsYy5wYXRoLHZsYy5vcHRpb25zIikpOw0Kc2V0dGluZ3NDYXRlZ29yeS5wdXNoKG5ldyBTZXR0aW5nc0NhdGVnb3J5SXRlbSgie3suc2V0dGluZ3MuY2F0ZWdvcnkuYmFja3VwfX0iLCAiYmFja3VwLnBhdGgsYmFja3VwLmtlZXAiKSk7DQpzZXR0aW5nc0NhdGVnb3J5LnB1c2gobmV3IFNldHRpbmdzQ2F0ZWdvcnlJdGVtKCJ7ey5zZXR0aW5ncy5jYXRlZ29yeS5hdXRoZW50aWNhdGlvbn19IiwgImF1dGhlbnRpY2F0aW9uLndlYixhdXRoZW50aWNhdGlvbi5wbXMsYXV0aGVudGljYXRpb24ubTN1LGF1dGhlbnRpY2F0aW9uLnhtbCxhdXRoZW50aWNhdGlvbi5hcGkiKSk7DQpmdW5jdGlvbiBzaG93UG9wVXBFbGVtZW50KGVsbSkgew0KICAgIHZhciBhbGxFbGVtZW50cyA9IG5ldyBBcnJheSgicG9wdXAtY3VzdG9tIik7DQogICAgZm9yICh2YXIgaSA9IDA7IGkgPCBhbGxFbGVtZW50cy5sZW5ndGg7IGkrKykgew0KICAgICAgICBzaG93RWxlbWVudChhbGxFbGVtZW50c1tpXSwgZmFsc2UpOw0KICAgIH0NCiAgICBzaG93RWxlbWVudChlbG0sIHRydWUpOw0KICAgIHNldFRpbWVvdXQoZnVuY3Rpb24gKCkgew0KICAgICAgICBzaG93RWxlbWVudCgicG9wdXAiLCB0cnVlKTsNCiAgICB9LCAxMCk7DQogICAgcmV0dXJuOw0KfQ0KZnVuY3Rpb24gc2hvd0VsZW1lbnQoZWxtSUQsIHR5cGUpIHsNCiAgICB2YXIgY3NzQ2xhc3M7DQogICAgc3dpdGNoICh0eXBlKSB7DQogICAgICAgIGNhc2UgdHJ1ZToNCiAgICAgICAgICAgIGNzc0NsYXNzID0gImJsb2NrIjsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlIGZhbHNlOg0KICAgICAgICAgICAgY3NzQ2xhc3MgPSAibm9uZSI7DQogICAgICAgICAgICBicmVhazsNCiAgICB9DQogICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoZWxtSUQpLmNsYXNzTmFtZSA9IGNzc0NsYXNzOw0KfQ0KZnVuY3Rpb24gY2hhbmdlQnV0dG9uQWN0aW9uKGVsZW1lbnQsIGJ1dHRvbklELCBhdHRyaWJ1dGUpIHsNCiAgICB2YXIgdmFsdWUgPSBlbGVtZW50Lm9wdGlvbnNbZWxlbWVudC5zZWxlY3RlZEluZGV4XS52YWx1ZTsNCiAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChidXR0b25JRCkuc2V0QXR0cmlidXRlKGF0dHJpYnV0ZSwgdmFsdWUpOw0KfQ0KZnVuY3Rpb24gZ2V0TG9jYWxEYXRhKGRhdGFUeXBlLCBpZCkgew0KICAgIGxldCBkYXRhID0ge307DQogICAgc3dpdGNoIChkYXRhVHlwZSkgew0KICAgICAgICBjYXNlICJtM3UiOg0KICAgICAgICAgICAgZGF0YSA9IFNFUlZFUlsic2V0dGluZ3MiXVsiZmlsZXMiXVtkYXRhVHlwZV1baWRdOw0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGNhc2UgImhkaHIiOg0KICAgICAgICAgICAgZGF0YSA9IFNFUlZFUlsic2V0dGluZ3MiXVsiZmlsZXMiXVtkYXRhVHlwZV1baWRdOw0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGNhc2UgImZpbHRlciI6DQogICAgICAgIGNhc2UgImN1c3RvbS1maWx0ZXIiOg0KICAgICAgICBjYXNlICJncm91cC10aXRsZSI6DQogICAgICAgICAgICBpZiAoaWQgPT0gLTEpIHsNCiAgICAgICAgICAgICAgICBkYXRhWyJhY3RpdmUiXSA9IHRydWU7DQogICAgICAgICAgICAgICAgZGF0YVsiY2FzZVNlbnNpdGl2ZSJdID0gZmFsc2U7DQogICAgICAgICAgICAgICAgZGF0YVsiZGVzY3JpcHRpb24iXSA9ICIiOw0KICAgICAgICAgICAgICAgIGRhdGFbImV4Y2x1ZGUiXSA9ICIiOw0KICAgICAgICAgICAgICAgIGRhdGFbImZpbHRlciJdID0gIiI7DQogICAgICAgICAgICAgICAgZGF0YVsiaW5jbHVkZSJdID0gIiI7DQogICAgICAgICAgICAgICAgZGF0YVsibmFtZSJdID0gIiI7DQogICAgICAgICAgICAgICAgZGF0YVsidHlwZSJdID0gImdyb3VwLXRpdGxlIjsNCiAgICAgICAgICAgICAgICBkYXRhWyJwcmVzZXJ2ZU1hcHBpbmciXSA9IHRydWU7DQogICAgICAgICAgICAgICAgZGF0YVsic3RhcnRpbmdDaGFubmVsIl0gPSBTRVJWRVJbInNldHRpbmdzIl1bIm1hcHBpbmcuZmlyc3QuY2hhbm5lbCJdOw0KICAgICAgICAgICAgICAgIGRhdGFbImRlZmF1bHRNaXNzaW5nRVBHIl0gPSAiLSI7DQogICAgICAgICAgICAgICAgU0VSVkVSWyJzZXR0aW5ncyJdWyJmaWx0ZXIiXVtpZF0gPSBkYXRhOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgZGF0YSA9IFNFUlZFUlsic2V0dGluZ3MiXVsiZmlsdGVyIl1baWRdOw0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGNhc2UgInhtbHR2IjoNCiAgICAgICAgICAgIGRhdGEgPSBTRVJWRVJbInNldHRpbmdzIl1bImZpbGVzIl1bZGF0YVR5cGVdW2lkXTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJ1c2VycyI6DQogICAgICAgICAgICBkYXRhID0gU0VSVkVSWyJ1c2VycyJdW2lkXVsiZGF0YSJdOw0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGNhc2UgIm1hcHBpbmciOg0KICAgICAgICAgICAgZGF0YSA9IFNFUlZFUlsieGVwZyJdWyJlcGdNYXBwaW5nIl1baWRdOw0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGNhc2UgIm0zdUdyb3VwcyI6DQogICAgICAgICAgICBkYXRhID0gU0VSVkVSWyJkYXRhIl1bInBsYXlsaXN0Il1bIm0zdSJdWyJncm91cHMiXTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgIH0NCiAgICByZXR1cm4gZGF0YTsNCn0NCmZ1bmN0aW9uIGdldE93bk9ialByb3BzKG9iamVjdCkgew0KICAgIHJldHVybiBvYmplY3QgPyBPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyhvYmplY3QpIDogW107DQp9DQpmdW5jdGlvbiBnZXRBbGxTZWxlY3RlZENoYW5uZWxzKCkgew0KICAgIHZhciBjaGFubmVscyA9IG5ldyBBcnJheSgpOw0KICAgIGlmIChCVUxLX0VESVQgPT0gZmFsc2UpIHsNCiAgICAgICAgcmV0dXJuIGNoYW5uZWxzOw0KICAgIH0NCiAgICB2YXIgdHJzID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnRlbnRfdGFibGUiKS5nZXRFbGVtZW50c0J5VGFnTmFtZSgiVFIiKTsNCiAgICBmb3IgKHZhciBpID0gMTsgaSA8IHRycy5sZW5ndGg7IGkrKykgew0KICAgICAgICBpZiAodHJzW2ldLnN0eWxlLmRpc3BsYXkgIT0gIm5vbmUiKSB7DQogICAgICAgICAgICBpZiAodHJzW2ldLmZpcnN0Q2hpbGQuZmlyc3RDaGlsZC5jaGVja2VkID09IHRydWUpIHsNCiAgICAgICAgICAgICAgICBjaGFubmVscy5wdXNoKHRyc1tpXS5pZCk7DQogICAgICAgICAgICB9DQogICAgICAgIH0NCiAgICB9DQogICAgcmV0dXJuIGNoYW5uZWxzOw0KfQ0KZnVuY3Rpb24gc2VsZWN0QWxsQ2hhbm5lbHMoKSB7DQogICAgdmFyIGJ1bGsgPSBmYWxzZTsNCiAgICB2YXIgdHJzID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnRlbnRfdGFibGUiKS5nZXRFbGVtZW50c0J5VGFnTmFtZSgiVFIiKTsNCiAgICBpZiAodHJzWzBdLmZpcnN0Q2hpbGQuZmlyc3RDaGlsZC5jaGVja2VkID09IHRydWUpIHsNCiAgICAgICAgYnVsayA9IHRydWU7DQogICAgfQ0KICAgIGZvciAodmFyIGkgPSAxOyBpIDwgdHJzLmxlbmd0aDsgaSsrKSB7DQogICAgICAgIGlmICh0cnNbaV0uc3R5bGUuZGlzcGxheSAhPSAibm9uZSIpIHsNCiAgICAgICAgICAgIHN3aXRjaCAoYnVsaykgew0KICAgICAgICAgICAgICAgIGNhc2UgdHJ1ZToNCiAgICAgICAgICAgICAgICAgICAgdHJzW2ldLmZpcnN0Q2hpbGQuZmlyc3RDaGlsZC5jaGVja2VkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSBmYWxzZToNCiAgICAgICAgICAgICAgICAgICAgdHJzW2ldLmZpcnN0Q2hpbGQuZmlyc3RDaGlsZC5jaGVja2VkID0gZmFsc2U7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQogICAgfQ0KICAgIHJldHVybjsNCn0NCmZ1bmN0aW9uIGJ1bGtFZGl0KCkgew0KICAgIEJVTEtfRURJVCA9ICFCVUxLX0VESVQ7DQogICAgdmFyIGNsYXNzTmFtZTsNCiAgICB2YXIgcm93cyA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlDbGFzc05hbWUoImJ1bGsiKTsNCiAgICBzd2l0Y2ggKEJVTEtfRURJVCkgew0KICAgICAgICBjYXNlIHRydWU6DQogICAgICAgICAgICBjbGFzc05hbWUgPSAiYnVsayBzaG93QnVsayI7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSBmYWxzZToNCiAgICAgICAgICAgIGNsYXNzTmFtZSA9ICJidWxrIGhpZGVCdWxrIjsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgIH0NCiAgICBmb3IgKHZhciBpID0gMDsgaSA8IHJvd3MubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgcm93c1tpXS5jbGFzc05hbWUgPSBjbGFzc05hbWU7DQogICAgICAgIHJvd3NbaV0uY2hlY2tlZCA9IGZhbHNlOw0KICAgIH0NCiAgICByZXR1cm47DQp9DQpmdW5jdGlvbiBzb3J0VGFibGUoY29sdW1uKSB7DQogICAgaWYgKGNvbHVtbiA9PSBDT0xVTU5fVE9fU09SVCkgew0KICAgICAgICByZXR1cm47DQogICAgfQ0KICAgIGNvbnN0IHRhYmxlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnRlbnRfdGFibGUiKTsNCiAgICBjb25zdCB0YWJsZUhlYWQgPSB0YWJsZS5nZXRFbGVtZW50c0J5VGFnTmFtZSgiVFIiKVswXTsNCiAgICBjb25zdCB0YWJsZUl0ZW1zID0gdGFibGVIZWFkLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJURCIpOw0KICAgIGNvbnN0IHNvcnRBcnIgPSBbXTsNCiAgICBsZXQgeFZhbHVlOw0KICAgIGlmIChjb2x1bW4gPj0gMCAmJiBDT0xVTU5fVE9fU09SVCA+PSAwKSB7DQogICAgICAgIHRhYmxlSXRlbXNbQ09MVU1OX1RPX1NPUlRdLmNsYXNzTmFtZSA9ICJwb2ludGVyIjsNCiAgICAgICAgdGFibGVJdGVtc1tjb2x1bW5dLmNsYXNzTmFtZSA9ICJzb3J0VGhpcyI7DQogICAgfQ0KICAgIENPTFVNTl9UT19TT1JUID0gY29sdW1uOw0KICAgIGNvbnN0IHJvd3MgPSB0YWJsZS5yb3dzOw0KICAgIGlmIChyb3dzWzFdICE9IHVuZGVmaW5lZCkgew0KICAgICAgICBjb25zdCB0YWJsZUhlYWRlciA9IHJvd3NbMF07DQogICAgICAgIGxldCB4ID0gcm93c1sxXS5nZXRFbGVtZW50c0J5VGFnTmFtZSgiVEQiKVtjb2x1bW5dOw0KICAgICAgICBmb3IgKGxldCBpID0gMTsgaSA8IHJvd3MubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgICAgIHggPSByb3dzW2ldLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJURCIpW2NvbHVtbl07DQogICAgICAgICAgICBzd2l0Y2ggKHguY2hpbGROb2Rlc1swXS50YWdOYW1lLnRvTG93ZXJDYXNlKCkpIHsNCiAgICAgICAgICAgICAgICBjYXNlICJpbnB1dCI6DQogICAgICAgICAgICAgICAgICAgIHhWYWx1ZSA9IHguZ2V0RWxlbWVudHNCeVRhZ05hbWUoIklOUFVUIilbMF0udmFsdWUudG9Mb3dlckNhc2UoKTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAicCI6DQogICAgICAgICAgICAgICAgICAgIHhWYWx1ZSA9IHguZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlAiKVswXS5pbm5lclRleHQudG9Mb3dlckNhc2UoKTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBzb3J0QXJyLnB1c2goeyBrZXk6IHhWYWx1ZSA/IHhWYWx1ZSA6IGksIHJvdzogcm93c1tpXSB9KTsNCiAgICAgICAgfQ0KICAgICAgICB3aGlsZSAodGFibGUuZmlyc3RDaGlsZCkgew0KICAgICAgICAgICAgdGFibGUucmVtb3ZlQ2hpbGQodGFibGUuZmlyc3RDaGlsZCk7DQogICAgICAgIH0NCiAgICAgICAgc29ydEFyci5zb3J0KChzZTEsIHNlMikgPT4gew0KICAgICAgICAgICAgY29uc3Qgc2UxS2V5TnVtID0gcGFyc2VGbG9hdChTdHJpbmcoc2UxLmtleSkpOw0KICAgICAgICAgICAgY29uc3Qgc2UyS2V5TnVtID0gcGFyc2VGbG9hdChTdHJpbmcoc2UyLmtleSkpOw0KICAgICAgICAgICAgaWYgKCFpc05hTihzZTFLZXlOdW0pICYmICFpc05hTihzZTJLZXlOdW0pKSB7DQogICAgICAgICAgICAgICAgcmV0dXJuIHNlMUtleU51bSAtIHNlMktleU51bTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGlmIChzZTEua2V5IDwgc2UyLmtleSkgew0KICAgICAgICAgICAgICAgIHJldHVybiAtMTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGlmIChzZTEua2V5ID4gc2UyLmtleSkgew0KICAgICAgICAgICAgICAgIHJldHVybiAxOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgcmV0dXJuIDA7DQogICAgICAgIH0pOw0KICAgICAgICB0YWJsZS5hcHBlbmRDaGlsZCh0YWJsZUhlYWRlcik7DQogICAgICAgIHNvcnRBcnIuZm9yRWFjaCgoc2UpID0+IHsNCiAgICAgICAgICAgIHRhYmxlLmFwcGVuZENoaWxkKHNlLnJvdyk7DQogICAgICAgIH0pOw0KICAgIH0NCiAgICByZXR1cm47DQp9DQpmdW5jdGlvbiBjcmVhdGVTZWFyY2hPYmooKSB7DQogICAgU0VBUkNIX01BUFBJTkcgPSBuZXcgT2JqZWN0KCk7DQogICAgdmFyIGRhdGEgPSBTRVJWRVJbInhlcGciXVsiZXBnTWFwcGluZyJdOw0KICAgIHZhciBjaGFubmVscyA9IGdldE93bk9ialByb3BzKGRhdGEpOw0KICAgIHZhciBjaGFubmVsS2V5cyA9IFsieC1hY3RpdmUiLCAieC1jaGFubmVsSUQiLCAieC1uYW1lIiwgIl9maWxlLm0zdS5uYW1lIiwgIngtZ3JvdXAtdGl0bGUiLCAieC14bWx0di1maWxlIl07DQogICAgY2hhbm5lbHMuZm9yRWFjaChpZCA9PiB7DQogICAgICAgIGNoYW5uZWxLZXlzLmZvckVhY2goa2V5ID0+IHsNCiAgICAgICAgICAgIGlmIChrZXkgPT0gIngtYWN0aXZlIikgew0KICAgICAgICAgICAgICAgIHN3aXRjaCAoZGF0YVtpZF1ba2V5XSkgew0KICAgICAgICAgICAgICAgICAgICBjYXNlIHRydWU6DQogICAgICAgICAgICAgICAgICAgICAgICBTRUFSQ0hfTUFQUElOR1tpZF0gPSAib25saW5lICI7DQogICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICAgICAgY2FzZSBmYWxzZToNCiAgICAgICAgICAgICAgICAgICAgICAgIFNFQVJDSF9NQVBQSU5HW2lkXSA9ICJvZmZsaW5lICI7DQogICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9DQogICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICBpZiAoa2V5ID09ICJ4LXhtbHR2LWZpbGUiKSB7DQogICAgICAgICAgICAgICAgICAgIHZhciB4bWx0dkZpbGUgPSBnZXRWYWx1ZUZyb21Qcm92aWRlckZpbGUoZGF0YVtpZF1ba2V5XSwgInhtbHR2IiwgIm5hbWUiKTsNCiAgICAgICAgICAgICAgICAgICAgaWYgKHhtbHR2RmlsZSAhPSB1bmRlZmluZWQpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIFNFQVJDSF9NQVBQSU5HW2lkXSA9IFNFQVJDSF9NQVBQSU5HW2lkXSArIHhtbHR2RmlsZSArICIgIjsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICAgICAgU0VBUkNIX01BUFBJTkdbaWRdID0gU0VBUkNIX01BUFBJTkdbaWRdICsgZGF0YVtpZF1ba2V5XSArICIgIjsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9DQogICAgICAgIH0pOw0KICAgIH0pOw0KICAgIHJldHVybjsNCn0NCmZ1bmN0aW9uIHNlYXJjaEluTWFwcGluZygpIHsNCiAgICB2YXIgc2VhcmNoVmFsdWUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic2VhcmNoTWFwcGluZyIpLnZhbHVlOw0KICAgIHZhciB0cnMgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29udGVudF90YWJsZSIpLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJUUiIpOw0KICAgIGZvciAodmFyIGkgPSAxOyBpIDwgdHJzLmxlbmd0aDsgKytpKSB7DQogICAgICAgIHZhciBpZCA9IHRyc1tpXS5nZXRBdHRyaWJ1dGUoImlkIik7DQogICAgICAgIHZhciBlbGVtZW50ID0gU0VBUkNIX01BUFBJTkdbaWRdOw0KICAgICAgICBzd2l0Y2ggKGVsZW1lbnQudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhzZWFyY2hWYWx1ZS50b0xvd2VyQ2FzZSgpKSkgew0KICAgICAgICAgICAgY2FzZSB0cnVlOg0KICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5zdHlsZS5kaXNwbGF5ID0gIiI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlIGZhbHNlOg0KICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5zdHlsZS5kaXNwbGF5ID0gIm5vbmUiOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICB9DQogICAgfQ0KICAgIHJldHVybjsNCn0NCmZ1bmN0aW9uIGNhbGN1bGF0ZVdyYXBwZXJIZWlnaHQoKSB7DQogICAgaWYgKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJib3gtd3JhcHBlciIpKSB7DQogICAgICAgIHZhciBlbG0gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYm94LXdyYXBwZXIiKTsNCiAgICAgICAgdmFyIGRpdnMgPSBuZXcgQXJyYXkoIm15U3RyZWFtc0JveCIsICJjbGllbnRJbmZvIiwgImNvbnRlbnQiKTsNCiAgICAgICAgdmFyIGVsZW1lbnRzSGVpZ2h0ID0gMCAtIGVsbS5vZmZzZXRIZWlnaHQ7DQogICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgZGl2cy5sZW5ndGg7IGkrKykgew0KICAgICAgICAgICAgZWxlbWVudHNIZWlnaHQgPSBlbGVtZW50c0hlaWdodCArIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGRpdnNbaV0pLm9mZnNldEhlaWdodDsNCiAgICAgICAgfQ0KICAgICAgICBlbG0uc3R5bGUuaGVpZ2h0ID0gd2luZG93LmlubmVySGVpZ2h0IC0gZWxlbWVudHNIZWlnaHQgKyAicHgiOw0KICAgIH0NCiAgICByZXR1cm47DQp9DQpmdW5jdGlvbiBjaGFuZ2VDaGFubmVsTnVtYmVyKGVsZW1lbnQpIHsNCiAgICB2YXIgZGJJRCA9IGVsZW1lbnQucGFyZW50Tm9kZS5wYXJlbnROb2RlLmlkOw0KICAgIHZhciBuZXdOdW1iZXIgPSBwYXJzZUZsb2F0KGVsZW1lbnQudmFsdWUpOw0KICAgIHZhciBjaGFubmVsTnVtYmVycyA9IFtdOw0KICAgIHZhciBkYXRhID0gU0VSVkVSWyJ4ZXBnIl1bImVwZ01hcHBpbmciXTsNCiAgICB2YXIgY2hhbm5lbHMgPSBnZXRPd25PYmpQcm9wcyhkYXRhKTsNCiAgICBpZiAoaXNOYU4obmV3TnVtYmVyKSkgew0KICAgICAgICBhbGVydCgie3suYWxlcnQuaW52YWxpZENoYW5uZWxOdW1iZXJ9fSIpOw0KICAgICAgICByZXR1cm47DQogICAgfQ0KICAgIGNoYW5uZWxzLmZvckVhY2goaWQgPT4gew0KICAgICAgICB2YXIgY2hhbm5lbE51bWJlciA9IHBhcnNlRmxvYXQoZGF0YVtpZF1bIngtY2hhbm5lbElEIl0pOw0KICAgICAgICBjaGFubmVsTnVtYmVycy5wdXNoKGNoYW5uZWxOdW1iZXIpOw0KICAgIH0pOw0KICAgIGZvciAodmFyIGkgPSAwOyBpIDwgY2hhbm5lbE51bWJlcnMubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgaWYgKGNoYW5uZWxOdW1iZXJzLmluZGV4T2YobmV3TnVtYmVyKSA9PSAtMSkgew0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIH0NCiAgICAgICAgaWYgKE1hdGguZmxvb3IobmV3TnVtYmVyKSA9PSBuZXdOdW1iZXIpIHsNCiAgICAgICAgICAgIG5ld051bWJlciA9IG5ld051bWJlciArIDE7DQogICAgICAgIH0NCiAgICAgICAgZWxzZSB7DQogICAgICAgICAgICBuZXdOdW1iZXIgPSBuZXdOdW1iZXIgKyAwLjE7DQogICAgICAgICAgICBuZXdOdW1iZXIudG9GaXhlZCgxKTsNCiAgICAgICAgICAgIG5ld051bWJlciA9IE1hdGgucm91bmQobmV3TnVtYmVyICogMTApIC8gMTA7DQogICAgICAgIH0NCiAgICB9DQogICAgZGF0YVtkYklEXVsieC1jaGFubmVsSUQiXSA9IG5ld051bWJlci50b1N0cmluZygpOw0KICAgIGVsZW1lbnQudmFsdWUgPSBuZXdOdW1iZXI7DQogICAgaWYgKENPTFVNTl9UT19TT1JUID09IDEpIHsNCiAgICAgICAgQ09MVU1OX1RPX1NPUlQgPSAtMTsNCiAgICAgICAgc29ydFRhYmxlKDEpOw0KICAgIH0NCiAgICByZXR1cm47DQp9DQpmdW5jdGlvbiBiYWNrdXAoKSB7DQogICAgdmFyIGRhdGEgPSBuZXcgT2JqZWN0KCk7DQogICAgdmFyIGNtZCA9ICJ4dGV2ZUJhY2t1cCI7DQogICAgdmFyIHNlcnZlciA9IG5ldyBTZXJ2ZXIoY21kKTsNCiAgICBzZXJ2ZXIucmVxdWVzdChkYXRhKTsNCiAgICByZXR1cm47DQp9DQpmdW5jdGlvbiB0b2dnbGVDaGFubmVsU3RhdHVzKGlkKSB7DQogICAgdmFyIGVsZW1lbnQ7DQogICAgdmFyIHN0YXR1czsNCiAgICBpZiAoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImFjdGl2ZSIpKSB7DQogICAgICAgIHZhciBjaGVja2JveCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJhY3RpdmUiKTsNCiAgICAgICAgc3RhdHVzID0gKGNoZWNrYm94KS5jaGVja2VkOw0KICAgIH0NCiAgICB2YXIgaWRzID0gZ2V0QWxsU2VsZWN0ZWRDaGFubmVscygpOw0KICAgIGlmIChpZHMubGVuZ3RoID09IDApIHsNCiAgICAgICAgaWRzLnB1c2goaWQpOw0KICAgIH0NCiAgICBpZHMuZm9yRWFjaChpZCA9PiB7DQogICAgICAgIHZhciBjaGFubmVsID0gU0VSVkVSWyJ4ZXBnIl1bImVwZ01hcHBpbmciXVtpZF07DQogICAgICAgIGNoYW5uZWxbIngtYWN0aXZlIl0gPSBzdGF0dXM7DQogICAgICAgIHN3aXRjaCAoY2hhbm5lbFsieC1hY3RpdmUiXSkgew0KICAgICAgICAgICAgY2FzZSB0cnVlOg0KICAgICAgICAgICAgICAgIGlmIChjaGFubmVsWyJ4LXhtbHR2LWZpbGUiXSA9PSAiLSIgfHwgY2hhbm5lbFsieC1tYXBwaW5nIl0gPT0gIi0iKSB7DQogICAgICAgICAgICAgICAgICAgIGlmIChCVUxLX0VESVQgPT0gZmFsc2UpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGFsZXJ0KGNoYW5uZWxbIngtbmFtZSJdICsgIjogTWlzc2luZyBYTUxUViBmaWxlIC8gY2hhbm5lbCIpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2hlY2tib3guY2hlY2tlZCA9IGZhbHNlOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIGNoYW5uZWxbIngtYWN0aXZlIl0gPSBmYWxzZTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlIGZhbHNlOg0KICAgICAgICAgICAgICAgIC8vIGNvZGUuLi4NCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgfQ0KICAgICAgICBpZiAoY2hhbm5lbFsieC1hY3RpdmUiXSA9PSBmYWxzZSkgew0KICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpLmNsYXNzTmFtZSA9ICJub3RBY3RpdmVFUEciOw0KICAgICAgICB9DQogICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpLmNsYXNzTmFtZSA9ICJhY3RpdmVFUEciOw0KICAgICAgICB9DQogICAgfSk7DQp9DQpmdW5jdGlvbiB0b2dnbGVHcm91cFVwZGF0ZUNiKHhlcGdJZCwgdGFyZ2V0KSB7DQogICAgdGFyZ2V0LmNsYXNzTmFtZSA9ICdjaGFuZ2VkJzsNCiAgICBjb25zdCBncm91cElucHV0ID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignaW5wdXRbbmFtZT0ieC1ncm91cC10aXRsZSJdJyk7DQogICAgY29uc3QgbWFwcGluZyA9IGdldExvY2FsRGF0YSgnbWFwcGluZycsIHhlcGdJZCk7DQogICAgaWYgKHRhcmdldC5jaGVja2VkKSB7DQogICAgICAgIGdyb3VwSW5wdXQuZGF0YXNldC5vbGRWYWx1ZSA9IGdyb3VwSW5wdXQudmFsdWU7DQogICAgICAgIGdyb3VwSW5wdXQudmFsdWUgPSBtYXBwaW5nWydncm91cC10aXRsZSddOw0KICAgICAgICBncm91cElucHV0LmRpc2FibGVkID0gdHJ1ZTsNCiAgICB9DQogICAgZWxzZSB7DQogICAgICAgIGdyb3VwSW5wdXQudmFsdWUgPSBncm91cElucHV0LmRhdGFzZXQub2xkVmFsdWU7DQogICAgICAgIGdyb3VwSW5wdXQuZGlzYWJsZWQgPSBmYWxzZTsNCiAgICB9DQogICAgZ3JvdXBJbnB1dC5jbGFzc05hbWUgPSAnY2hhbmdlZCc7DQp9DQpmdW5jdGlvbiByZXN0b3JlKCkgew0KICAgIGlmIChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndXBsb2FkJykpIHsNCiAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3VwbG9hZCcpLnJlbW92ZSgpOw0KICAgIH0NCiAgICB2YXIgcmVzdG9yZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIklOUFVUIik7DQogICAgcmVzdG9yZS5zZXRBdHRyaWJ1dGUoInR5cGUiLCAiZmlsZSIpOw0KICAgIHJlc3RvcmUuc2V0QXR0cmlidXRlKCJjbGFzcyIsICJub3RWaXNpYmxlIik7DQogICAgcmVzdG9yZS5zZXRBdHRyaWJ1dGUoIm5hbWUiLCAiIik7DQogICAgcmVzdG9yZS5pZCA9ICJ1cGxvYWQiOw0KICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQocmVzdG9yZSk7DQogICAgcmVzdG9yZS5jbGljaygpOw0KICAgIHJlc3RvcmUub25jaGFuZ2UgPSBmdW5jdGlvbiAoKSB7DQogICAgICAgIHZhciBmaWxlbmFtZSA9IHJlc3RvcmUuZmlsZXNbMF0ubmFtZTsNCiAgICAgICAgdmFyIGNoZWNrID0gY29uZmlybSgiRmlsZTogIiArIGZpbGVuYW1lICsgIlxue3suY29uZmlybS5yZXN0b3JlfX0iKTsNCiAgICAgICAgaWYgKGNoZWNrID09IHRydWUpIHsNCiAgICAgICAgICAgIHZhciByZWFkZXIgPSBuZXcgRmlsZVJlYWRlcigpOw0KICAgICAgICAgICAgdmFyIGZpbGUgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCdpbnB1dFt0eXBlPWZpbGVdJykuZmlsZXNbMF07DQogICAgICAgICAgICBpZiAoZmlsZSkgew0KICAgICAgICAgICAgICAgIHJlYWRlci5yZWFkQXNEYXRhVVJMKGZpbGUpOw0KICAgICAgICAgICAgICAgIHJlYWRlci5vbmxvYWQgPSBmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICAgICAgICAgIHZhciBkYXRhID0gbmV3IE9iamVjdCgpOw0KICAgICAgICAgICAgICAgICAgICB2YXIgY21kID0gInh0ZXZlUmVzdG9yZSI7DQogICAgICAgICAgICAgICAgICAgIGRhdGFbImJhc2U2NCJdID0gcmVhZGVyLnJlc3VsdDsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHNlcnZlciA9IG5ldyBTZXJ2ZXIoY21kKTsNCiAgICAgICAgICAgICAgICAgICAgc2VydmVyLnJlcXVlc3QoZGF0YSk7DQogICAgICAgICAgICAgICAgfTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgICAgIGFsZXJ0KCJGaWxlIGNvdWxkIG5vdCBiZSBsb2FkZWQiKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIHJlc3RvcmUucmVtb3ZlKCk7DQogICAgICAgICAgICByZXR1cm47DQogICAgICAgIH0NCiAgICB9Ow0KICAgIHJldHVybjsNCn0NCmZ1bmN0aW9uIHVwbG9hZExvZ28oKSB7DQogICAgaWYgKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd1cGxvYWQnKSkgew0KICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndXBsb2FkJykucmVtb3ZlKCk7DQogICAgfQ0KICAgIHZhciB1cGxvYWQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJJTlBVVCIpOw0KICAgIHVwbG9hZC5zZXRBdHRyaWJ1dGUoInR5cGUiLCAiZmlsZSIpOw0KICAgIHVwbG9hZC5zZXRBdHRyaWJ1dGUoImNsYXNzIiwgIm5vdFZpc2libGUiKTsNCiAgICB1cGxvYWQuc2V0QXR0cmlidXRlKCJuYW1lIiwgIiIpOw0KICAgIHVwbG9hZC5pZCA9ICJ1cGxvYWQiOw0KICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQodXBsb2FkKTsNCiAgICB1cGxvYWQuY2xpY2soKTsNCiAgICB1cGxvYWQub25ibHVyID0gZnVuY3Rpb24gKCkgew0KICAgICAgICBhbGVydCgpOw0KICAgIH07DQogICAgdXBsb2FkLm9uY2hhbmdlID0gZnVuY3Rpb24gKCkgew0KICAgICAgICB2YXIgZmlsZW5hbWUgPSB1cGxvYWQuZmlsZXNbMF0ubmFtZTsNCiAgICAgICAgdmFyIHJlYWRlciA9IG5ldyBGaWxlUmVhZGVyKCk7DQogICAgICAgIHZhciBmaWxlID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignaW5wdXRbdHlwZT1maWxlXScpLmZpbGVzWzBdOw0KICAgICAgICBpZiAoZmlsZSkgew0KICAgICAgICAgICAgcmVhZGVyLnJlYWRBc0RhdGFVUkwoZmlsZSk7DQogICAgICAgICAgICByZWFkZXIub25sb2FkID0gZnVuY3Rpb24gKCkgew0KICAgICAgICAgICAgICAgIHZhciBkYXRhID0gbmV3IE9iamVjdCgpOw0KICAgICAgICAgICAgICAgIHZhciBjbWQgPSAidXBsb2FkTG9nbyI7DQogICAgICAgICAgICAgICAgZGF0YVsiYmFzZTY0Il0gPSByZWFkZXIucmVzdWx0Ow0KICAgICAgICAgICAgICAgIGRhdGFbImZpbGVuYW1lIl0gPSBmaWxlLm5hbWU7DQogICAgICAgICAgICAgICAgdmFyIHNlcnZlciA9IG5ldyBTZXJ2ZXIoY21kKTsNCiAgICAgICAgICAgICAgICBzZXJ2ZXIucmVxdWVzdChkYXRhKTsNCiAgICAgICAgICAgICAgICB2YXIgdXBkYXRlTG9nbyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd1cGRhdGUtaWNvbicpOw0KICAgICAgICAgICAgICAgIHVwZGF0ZUxvZ28uY2hlY2tlZCA9IGZhbHNlOw0KICAgICAgICAgICAgICAgIHVwZGF0ZUxvZ28uY2xhc3NOYW1lID0gImNoYW5nZWQiOw0KICAgICAgICAgICAgfTsNCiAgICAgICAgfQ0KICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgIGFsZXJ0KCJGaWxlIGNvdWxkIG5vdCBiZSBsb2FkZWQiKTsNCiAgICAgICAgfQ0KICAgICAgICB1cGxvYWQucmVtb3ZlKCk7DQogICAgICAgIHJldHVybjsNCiAgICB9Ow0KfQ0KZnVuY3Rpb24gY2hlY2tVbmRvKGtleSkgew0KICAgIHN3aXRjaCAoa2V5KSB7DQogICAgICAgIGNhc2UgImVwZ01hcHBpbmciOg0KICAgICAgICAgICAgaWYgKFVORE8uaGFzT3duUHJvcGVydHkoa2V5KSkgew0KICAgICAgICAgICAgICAgIFNFUlZFUlsieGVwZyJdW2tleV0gPSBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KFVORE9ba2V5XSkpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgZWxzZSB7DQogICAgICAgICAgICAgICAgVU5ET1trZXldID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeShTRVJWRVJbInhlcGciXVtrZXldKSk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgIGJyZWFrOw0KICAgIH0NCiAgICByZXR1cm47DQp9DQpmdW5jdGlvbiB1cGRhdGVMb2coKSB7DQogICAgdmFyIHNlcnZlciA9IG5ldyBTZXJ2ZXIoInVwZGF0ZUxvZyIpOw0KICAgIHNlcnZlci5yZXF1ZXN0KG5ldyBPYmplY3QoKSk7DQp9DQo=" webUI["html/js/classes_ts.js"] = "dmFyIF9fZXh0ZW5kcyA9ICh0aGlzICYmIHRoaXMuX19leHRlbmRzKSB8fCAoZnVuY3Rpb24gKCkgew0KICAgIHZhciBleHRlbmRTdGF0aWNzID0gZnVuY3Rpb24gKGQsIGIpIHsNCiAgICAgICAgZXh0ZW5kU3RhdGljcyA9IE9iamVjdC5zZXRQcm90b3R5cGVPZiB8fA0KICAgICAgICAgICAgKHsgX19wcm90b19fOiBbXSB9IGluc3RhbmNlb2YgQXJyYXkgJiYgZnVuY3Rpb24gKGQsIGIpIHsgZC5fX3Byb3RvX18gPSBiOyB9KSB8fA0KICAgICAgICAgICAgZnVuY3Rpb24gKGQsIGIpIHsgZm9yICh2YXIgcCBpbiBiKSBpZiAoYi5oYXNPd25Qcm9wZXJ0eShwKSkgZFtwXSA9IGJbcF07IH07DQogICAgICAgIHJldHVybiBleHRlbmRTdGF0aWNzKGQsIGIpOw0KICAgIH07DQogICAgcmV0dXJuIGZ1bmN0aW9uIChkLCBiKSB7DQogICAgICAgIGV4dGVuZFN0YXRpY3MoZCwgYik7DQogICAgICAgIGZ1bmN0aW9uIF9fKCkgeyB0aGlzLmNvbnN0cnVjdG9yID0gZDsgfQ0KICAgICAgICBkLnByb3RvdHlwZSA9IGIgPT09IG51bGwgPyBPYmplY3QuY3JlYXRlKGIpIDogKF9fLnByb3RvdHlwZSA9IGIucHJvdG90eXBlLCBuZXcgX18oKSk7DQogICAgfTsNCn0pKCk7DQp2YXIgTWFpbk1lbnUgPSAvKiogQGNsYXNzICovIChmdW5jdGlvbiAoKSB7DQogICAgZnVuY3Rpb24gTWFpbk1lbnUoKSB7DQogICAgICAgIHRoaXMuRG9jdW1lbnRJRCA9ICJtYWluLW1lbnUiOw0KICAgICAgICB0aGlzLkhUTUxUYWcgPSAiTEkiOw0KICAgIH0NCiAgICBNYWluTWVudS5wcm90b3R5cGUuY3JlYXRlID0gZnVuY3Rpb24gKCkgew0KICAgICAgICBjb25zb2xlLmxvZyh0aGlzLkRvY3VtZW50SUQpOw0KICAgIH07DQogICAgcmV0dXJuIE1haW5NZW51Ow0KfSgpKTsNCnZhciBNYWluTWVudUl0ZW0gPSAvKiogQGNsYXNzICovIChmdW5jdGlvbiAoX3N1cGVyKSB7DQogICAgX19leHRlbmRzKE1haW5NZW51SXRlbSwgX3N1cGVyKTsNCiAgICBmdW5jdGlvbiBNYWluTWVudUl0ZW0oKSB7DQogICAgICAgIHJldHVybiBfc3VwZXIgIT09IG51bGwgJiYgX3N1cGVyLmFwcGx5KHRoaXMsIGFyZ3VtZW50cykgfHwgdGhpczsNCiAgICB9DQogICAgTWFpbk1lbnVJdGVtLnByb3RvdHlwZS5jcmVhdGUyID0gZnVuY3Rpb24gKCkgew0KICAgICAgICB2YXIgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQodGhpcy5IVE1MVGFnKTsNCiAgICAgICAgZWxlbWVudC5pbm5lclRleHQgPSB0aGlzLlZhbHVlOw0KICAgICAgICBjb25zb2xlLmxvZyhlbGVtZW50KTsNCiAgICB9Ow0KICAgIHJldHVybiBNYWluTWVudUl0ZW07DQp9KE1haW5NZW51KSk7DQpmdW5jdGlvbiBwYWdlUmVhZHkoKSB7DQogICAgdmFyIGl0ZW0gPSBuZXcgTWFpbk1lbnVJdGVtKCk7DQogICAgaXRlbS5WYWx1ZSA9ICJUZXN0IjsNCiAgICBpdGVtLmNyZWF0ZTIoKTsNCn0NCg==" webUI["html/js/configuration_ts.js"] = "Y2xhc3MgV2l6YXJkQ2F0ZWdvcnkgew0KICAgIGNvbnN0cnVjdG9yKCkgew0KICAgICAgICB0aGlzLkRvY3VtZW50SUQgPSAiY29udGVudCI7DQogICAgfQ0KICAgIGNyZWF0ZUNhdGVnb3J5SGVhZGxpbmUodmFsdWUpIHsNCiAgICAgICAgdmFyIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJINCIpOw0KICAgICAgICBlbGVtZW50LmlubmVySFRNTCA9IHZhbHVlOw0KICAgICAgICByZXR1cm4gZWxlbWVudDsNCiAgICB9DQp9DQpjbGFzcyBXaXphcmRJdGVtIGV4dGVuZHMgV2l6YXJkQ2F0ZWdvcnkgew0KICAgIGNvbnN0cnVjdG9yKGtleSwgaGVhZGxpbmUpIHsNCiAgICAgICAgc3VwZXIoKTsNCiAgICAgICAgdGhpcy5oZWFkbGluZSA9IGhlYWRsaW5lOw0KICAgICAgICB0aGlzLmtleSA9IGtleTsNCiAgICB9DQogICAgY3JlYXRlV2l6YXJkKCkgew0KICAgICAgICB2YXIgaGVhZGxpbmUgPSB0aGlzLmNyZWF0ZUNhdGVnb3J5SGVhZGxpbmUodGhpcy5oZWFkbGluZSk7DQogICAgICAgIHZhciBrZXkgPSB0aGlzLmtleTsNCiAgICAgICAgdmFyIGNvbnRlbnQgPSBuZXcgUG9wdXBDb250ZW50KCk7DQogICAgICAgIHZhciBkZXNjcmlwdGlvbjsNCiAgICAgICAgdmFyIGRvYyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHRoaXMuRG9jdW1lbnRJRCk7DQogICAgICAgIGRvYy5pbm5lckhUTUwgPSAiIjsNCiAgICAgICAgZG9jLmFwcGVuZENoaWxkKGhlYWRsaW5lKTsNCiAgICAgICAgc3dpdGNoIChrZXkpIHsNCiAgICAgICAgICAgIGNhc2UgInR1bmVyIjoNCiAgICAgICAgICAgICAgICB2YXIgdGV4dCA9IG5ldyBBcnJheSgpOw0KICAgICAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBuZXcgQXJyYXkoKTsNCiAgICAgICAgICAgICAgICBmb3IgKHZhciBpID0gMTsgaSA8PSAxMDA7IGkrKykgew0KICAgICAgICAgICAgICAgICAgICB0ZXh0LnB1c2goaSk7DQogICAgICAgICAgICAgICAgICAgIHZhbHVlcy5wdXNoKGkpOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCAiMSIsIGtleSk7DQogICAgICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgiY2xhc3MiLCAid2l6YXJkIik7DQogICAgICAgICAgICAgICAgc2VsZWN0LmlkID0ga2V5Ow0KICAgICAgICAgICAgICAgIGRvYy5hcHBlbmRDaGlsZChzZWxlY3QpOw0KICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uID0gInt7LndpemFyZC50dW5lci5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImVwZ1NvdXJjZSI6DQogICAgICAgICAgICAgICAgdmFyIHRleHQgPSBbIlBNUyIsICJYRVBHIl07DQogICAgICAgICAgICAgICAgdmFyIHZhbHVlcyA9IFsiUE1TIiwgIlhFUEciXTsNCiAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCAiWEVQRyIsIGtleSk7DQogICAgICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgiY2xhc3MiLCAid2l6YXJkIik7DQogICAgICAgICAgICAgICAgc2VsZWN0LmlkID0ga2V5Ow0KICAgICAgICAgICAgICAgIGRvYy5hcHBlbmRDaGlsZChzZWxlY3QpOw0KICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uID0gInt7LndpemFyZC5lcGdTb3VyY2UuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJtM3UiOg0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBrZXksICIiKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LndpemFyZC5tM3UucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgiY2xhc3MiLCAid2l6YXJkIik7DQogICAgICAgICAgICAgICAgaW5wdXQuaWQgPSBrZXk7DQogICAgICAgICAgICAgICAgZG9jLmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbiA9ICJ7ey53aXphcmQubTN1LmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAieG1sdHYiOg0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBrZXksICIiKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LndpemFyZC54bWx0di5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJjbGFzcyIsICJ3aXphcmQiKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5pZCA9IGtleTsNCiAgICAgICAgICAgICAgICBkb2MuYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uID0gInt7LndpemFyZC54bWx0di5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIH0NCiAgICAgICAgdmFyIHByZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlBSRSIpOw0KICAgICAgICBwcmUuaW5uZXJIVE1MID0gZGVzY3JpcHRpb247DQogICAgICAgIGRvYy5hcHBlbmRDaGlsZChwcmUpOw0KICAgIH0NCn0NCmZ1bmN0aW9uIHJlYWR5Rm9yQ29uZmlndXJhdGlvbih3aXphcmQpIHsNCiAgICB2YXIgc2VydmVyID0gbmV3IFNlcnZlcigiZ2V0U2VydmVyQ29uZmlnIik7DQogICAgc2VydmVyLnJlcXVlc3QobmV3IE9iamVjdCgpKTsNCiAgICBzaG93RWxlbWVudCgibG9hZGluZyIsIGZhbHNlKTsNCiAgICBjb25maWd1cmF0aW9uV2l6YXJkW3dpemFyZF0uY3JlYXRlV2l6YXJkKCk7DQp9DQpmdW5jdGlvbiBzYXZlV2l6YXJkKCkgew0KICAgIHZhciBjbWQgPSAic2F2ZVdpemFyZCI7DQogICAgdmFyIGRpdiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb250ZW50Iik7DQogICAgdmFyIGNvbmZpZyA9IGRpdi5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCJ3aXphcmQiKTsNCiAgICB2YXIgd2l6YXJkID0gbmV3IE9iamVjdCgpOw0KICAgIGZvciAodmFyIGkgPSAwOyBpIDwgY29uZmlnLmxlbmd0aDsgaSsrKSB7DQogICAgICAgIHZhciBuYW1lOw0KICAgICAgICB2YXIgdmFsdWU7DQogICAgICAgIHN3aXRjaCAoY29uZmlnW2ldLnRhZ05hbWUpIHsNCiAgICAgICAgICAgIGNhc2UgIlNFTEVDVCI6DQogICAgICAgICAgICAgICAgbmFtZSA9IGNvbmZpZ1tpXS5uYW1lOw0KICAgICAgICAgICAgICAgIHZhbHVlID0gY29uZmlnW2ldLnZhbHVlOw0KICAgICAgICAgICAgICAgIC8vIElmIHRoZSB2YWx1ZSBpcyBhIG51bWJlciwgc3RvcmUgaXQgYXMgYSBudW1iZXINCiAgICAgICAgICAgICAgICBpZiAoaXNOYU4odmFsdWUpKSB7DQogICAgICAgICAgICAgICAgICAgIHdpemFyZFtuYW1lXSA9IHZhbHVlOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICAgICAgd2l6YXJkW25hbWVdID0gcGFyc2VJbnQodmFsdWUpOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgIklOUFVUIjoNCiAgICAgICAgICAgICAgICBzd2l0Y2ggKGNvbmZpZ1tpXS50eXBlKSB7DQogICAgICAgICAgICAgICAgICAgIGNhc2UgInRleHQiOg0KICAgICAgICAgICAgICAgICAgICAgICAgbmFtZSA9IGNvbmZpZ1tpXS5uYW1lOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSBjb25maWdbaV0udmFsdWU7DQogICAgICAgICAgICAgICAgICAgICAgICBpZiAodmFsdWUubGVuZ3RoID09IDApIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgbXNnID0gbmFtZS50b1VwcGVyQ2FzZSgpICsgIjogIiArICJ7ey5hbGVydC5taXNzaW5nSW5wdXR9fSI7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgYWxlcnQobXNnKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICB3aXphcmRbbmFtZV0gPSB2YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICAgICAgLy8gY29kZS4uLg0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICB9DQogICAgfQ0KICAgIHZhciBkYXRhID0gbmV3IE9iamVjdCgpOw0KICAgIGRhdGFbIndpemFyZCJdID0gd2l6YXJkOw0KICAgIHZhciBzZXJ2ZXIgPSBuZXcgU2VydmVyKGNtZCk7DQogICAgc2VydmVyLnJlcXVlc3QoZGF0YSk7DQp9DQovLyBXaXphcmQNCnZhciBjb25maWd1cmF0aW9uV2l6YXJkID0gbmV3IEFycmF5KCk7DQpjb25maWd1cmF0aW9uV2l6YXJkLnB1c2gobmV3IFdpemFyZEl0ZW0oInR1bmVyIiwgInt7LndpemFyZC50dW5lci50aXRsZX19IikpOw0KY29uZmlndXJhdGlvbldpemFyZC5wdXNoKG5ldyBXaXphcmRJdGVtKCJlcGdTb3VyY2UiLCAie3sud2l6YXJkLmVwZ1NvdXJjZS50aXRsZX19IikpOw0KY29uZmlndXJhdGlvbldpemFyZC5wdXNoKG5ldyBXaXphcmRJdGVtKCJtM3UiLCAie3sud2l6YXJkLm0zdS50aXRsZX19IikpOw0KY29uZmlndXJhdGlvbldpemFyZC5wdXNoKG5ldyBXaXphcmRJdGVtKCJ4bWx0diIsICJ7ey53aXphcmQueG1sdHYudGl0bGV9fSIpKTsNCg==" webUI["html/js/logs_ts.js"] = "Y2xhc3MgTG9nIHsNCiAgICBjcmVhdGVMb2coZW50cnkpIHsNCiAgICAgICAgdmFyIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJQUkUiKTsNCiAgICAgICAgaWYgKGVudHJ5LmluZGV4T2YoIldBUk5JTkciKSAhPSAtMSkgew0KICAgICAgICAgICAgZWxlbWVudC5jbGFzc05hbWUgPSAid2FybmluZ01zZyI7DQogICAgICAgIH0NCiAgICAgICAgaWYgKGVudHJ5LmluZGV4T2YoIkVSUk9SIikgIT0gLTEpIHsNCiAgICAgICAgICAgIGVsZW1lbnQuY2xhc3NOYW1lID0gImVycm9yTXNnIjsNCiAgICAgICAgfQ0KICAgICAgICBpZiAoZW50cnkuaW5kZXhPZigiREVCVUciKSAhPSAtMSkgew0KICAgICAgICAgICAgZWxlbWVudC5jbGFzc05hbWUgPSAiZGVidWdNc2ciOw0KICAgICAgICB9DQogICAgICAgIGVsZW1lbnQuaW5uZXJIVE1MID0gZW50cnk7DQogICAgICAgIHJldHVybiBlbGVtZW50Ow0KICAgIH0NCn0NCmZ1bmN0aW9uIHNob3dMb2dzKGJvdHRvbSkgew0KICAgIHZhciBsb2cgPSBuZXcgTG9nKCk7DQogICAgdmFyIGxvZ3MgPSBTRVJWRVJbImxvZyJdWyJsb2ciXTsNCiAgICB2YXIgZGl2ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnRlbnRfbG9nIik7DQogICAgZGl2LmlubmVySFRNTCA9ICIiOw0KICAgIHZhciBrZXlzID0gZ2V0T3duT2JqUHJvcHMobG9ncyk7DQogICAga2V5cy5mb3JFYWNoKGxvZ0lEID0+IHsNCiAgICAgICAgdmFyIGVudHJ5ID0gbG9nLmNyZWF0ZUxvZyhsb2dzW2xvZ0lEXSk7DQogICAgICAgIGRpdi5hcHBlbmQoZW50cnkpOw0KICAgIH0pOw0KICAgIHNldFRpbWVvdXQoZnVuY3Rpb24gKCkgew0KICAgICAgICBpZiAoYm90dG9tID09IHRydWUpIHsNCiAgICAgICAgICAgIHZhciB3cmFwcGVyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImJveC13cmFwcGVyIik7DQogICAgICAgICAgICB3cmFwcGVyLnNjcm9sbFRvcCA9IHdyYXBwZXIuc2Nyb2xsSGVpZ2h0Ow0KICAgICAgICB9DQogICAgfSwgMTApOw0KfQ0KZnVuY3Rpb24gcmVzZXRMb2dzKCkgew0KICAgIHZhciBjbWQgPSAicmVzZXRMb2dzIjsNCiAgICB2YXIgZGF0YSA9IG5ldyBPYmplY3QoKTsNCiAgICB2YXIgc2VydmVyID0gbmV3IFNlcnZlcihjbWQpOw0KICAgIHNlcnZlci5yZXF1ZXN0KGRhdGEpOw0KfQ0K" - webUI["html/js/menu_ts.js"] = "Y2xhc3MgTWFpbk1lbnUgew0KICAgIGNvbnN0cnVjdG9yKCkgew0KICAgICAgICB0aGlzLkRvY3VtZW50SUQgPSAibWFpbi1tZW51IjsNCiAgICAgICAgdGhpcy5IVE1MVGFnID0gIkxJIjsNCiAgICAgICAgdGhpcy5JbWFnZVBhdGggPSAiaW1nLyI7DQogICAgfQ0KICAgIGNyZWF0ZUlNRyhzcmMpIHsNCiAgICAgICAgbGV0IGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJJTUciKTsNCiAgICAgICAgZWxlbWVudC5zZXRBdHRyaWJ1dGUoInNyYyIsIHRoaXMuSW1hZ2VQYXRoICsgc3JjKTsNCiAgICAgICAgcmV0dXJuIGVsZW1lbnQ7DQogICAgfQ0KICAgIGNyZWF0ZVZhbHVlKHZhbHVlKSB7DQogICAgICAgIGxldCBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiUCIpOw0KICAgICAgICBlbGVtZW50LmlubmVySFRNTCA9IHZhbHVlOw0KICAgICAgICByZXR1cm4gZWxlbWVudDsNCiAgICB9DQp9DQpjbGFzcyBNYWluTWVudUl0ZW0gZXh0ZW5kcyBNYWluTWVudSB7DQogICAgY29uc3RydWN0b3IobWVudUtleSwgdmFsdWUsIGltYWdlLCBoZWFkbGluZSkgew0KICAgICAgICBzdXBlcigpOw0KICAgICAgICB0aGlzLm1lbnVLZXkgPSBtZW51S2V5Ow0KICAgICAgICB0aGlzLnZhbHVlID0gdmFsdWU7DQogICAgICAgIHRoaXMuaW1nU3JjID0gaW1hZ2U7DQogICAgICAgIHRoaXMuaGVhZGxpbmUgPSBoZWFkbGluZTsNCiAgICB9DQogICAgY3JlYXRlSXRlbSgpIHsNCiAgICAgICAgbGV0IGl0ZW0gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJMSSIpOw0KICAgICAgICBpdGVtLnNldEF0dHJpYnV0ZSgib25jbGljayIsICJqYXZhc2NyaXB0OiBvcGVuVGhpc01lbnUodGhpcykiKTsNCiAgICAgICAgaXRlbS5zZXRBdHRyaWJ1dGUoImlkIiwgdGhpcy5pZCk7DQogICAgICAgIGxldCBpbWcgPSB0aGlzLmNyZWF0ZUlNRyh0aGlzLmltZ1NyYyk7DQogICAgICAgIGxldCB2YWx1ZSA9IHRoaXMuY3JlYXRlVmFsdWUodGhpcy52YWx1ZSk7DQogICAgICAgIGl0ZW0uYXBwZW5kQ2hpbGQoaW1nKTsNCiAgICAgICAgaXRlbS5hcHBlbmRDaGlsZCh2YWx1ZSk7DQogICAgICAgIGxldCBkb2MgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCh0aGlzLkRvY3VtZW50SUQpOw0KICAgICAgICBkb2MuYXBwZW5kQ2hpbGQoaXRlbSk7DQogICAgICAgIHN3aXRjaCAodGhpcy5tZW51S2V5KSB7DQogICAgICAgICAgICBjYXNlICJwbGF5bGlzdCI6DQogICAgICAgICAgICAgICAgdGhpcy50YWJsZUhlYWRlciA9IFsie3sucGxheWxpc3QudGFibGUucGxheWxpc3R9fSIsICJ7ey5wbGF5bGlzdC50YWJsZS50dW5lcn19IiwgInt7LnBsYXlsaXN0LnRhYmxlLmxhc3RVcGRhdGV9fSIsICJ7ey5wbGF5bGlzdC50YWJsZS5hdmFpbGFiaWxpdHl9fSAlIiwgInt7LnBsYXlsaXN0LnRhYmxlLnR5cGV9fSIsICJ7ey5wbGF5bGlzdC50YWJsZS5zdHJlYW1zfX0iLCAie3sucGxheWxpc3QudGFibGUuZ3JvdXBUaXRsZX19ICUiLCAie3sucGxheWxpc3QudGFibGUudHZnSUR9fSAlIiwgInt7LnBsYXlsaXN0LnRhYmxlLnVuaXF1ZUlEfX0gJSJdOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAieG1sdHYiOg0KICAgICAgICAgICAgICAgIHRoaXMudGFibGVIZWFkZXIgPSBbInt7LnhtbHR2LnRhYmxlLmd1aWRlfX0iLCAie3sueG1sdHYudGFibGUubGFzdFVwZGF0ZX19IiwgInt7LnhtbHR2LnRhYmxlLmF2YWlsYWJpbGl0eX19ICUiLCAie3sueG1sdHYudGFibGUuY2hhbm5lbHN9fSIsICJ7ey54bWx0di50YWJsZS5wcm9ncmFtc319Il07DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJmaWx0ZXIiOg0KICAgICAgICAgICAgICAgIHRoaXMudGFibGVIZWFkZXIgPSBbInt7LmZpbHRlci50YWJsZS5zdGFydGluZ0NoYW5uZWx9fSIsICJ7ey5maWx0ZXIudGFibGUubmFtZX19IiwgInt7LmZpbHRlci50YWJsZS50eXBlfX0iLCAie3suZmlsdGVyLnRhYmxlLmZpbHRlcn19Il07DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ1c2VycyI6DQogICAgICAgICAgICAgICAgdGhpcy50YWJsZUhlYWRlciA9IFsie3sudXNlcnMudGFibGUudXNlcm5hbWV9fSIsICJ7ey51c2Vycy50YWJsZS5wYXNzd29yZH19IiwgInt7LnVzZXJzLnRhYmxlLndlYn19IiwgInt7LnVzZXJzLnRhYmxlLnBtc319IiwgInt7LnVzZXJzLnRhYmxlLm0zdX19IiwgInt7LnVzZXJzLnRhYmxlLnhtbH19IiwgInt7LnVzZXJzLnRhYmxlLmFwaX19Il07DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJtYXBwaW5nIjoNCiAgICAgICAgICAgICAgICB0aGlzLnRhYmxlSGVhZGVyID0gWyJCVUxLIiwgInt7Lm1hcHBpbmcudGFibGUuY2hOb319IiwgInt7Lm1hcHBpbmcudGFibGUubG9nb319IiwgInt7Lm1hcHBpbmcudGFibGUuY2hhbm5lbE5hbWV9fSIsICJ7ey5tYXBwaW5nLnRhYmxlLnBsYXlsaXN0fX0iLCAie3subWFwcGluZy50YWJsZS5ncm91cFRpdGxlfX0iLCAie3subWFwcGluZy50YWJsZS54bWx0dkZpbGV9fSIsICJ7ey5tYXBwaW5nLnRhYmxlLnhtbHR2SUR9fSIsICJ7ey5tYXBwaW5nLnRhYmxlLnRpbWVzaGlmdH19Il07DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIH0NCiAgICB9DQp9DQpjbGFzcyBDb250ZW50IHsNCiAgICBjb25zdHJ1Y3RvcigpIHsNCiAgICAgICAgdGhpcy5Eb2N1bWVudElEID0gImNvbnRlbnQiOw0KICAgICAgICB0aGlzLlRhYmxlSUQgPSAiY29udGVudF90YWJsZSI7DQogICAgICAgIHRoaXMuaGVhZGVyQ2xhc3MgPSAiY29udGVudF90YWJsZV9oZWFkZXIiOw0KICAgICAgICB0aGlzLmludGVyYWN0aW9uSUQgPSAiY29udGVudC1pbnRlcmFjdGlvbiI7DQogICAgfQ0KICAgIGNyZWF0ZUhlYWRsaW5lKHZhbHVlKSB7DQogICAgICAgIGxldCBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiSDMiKTsNCiAgICAgICAgZWxlbWVudC5pbm5lckhUTUwgPSB2YWx1ZTsNCiAgICAgICAgcmV0dXJuIGVsZW1lbnQ7DQogICAgfQ0KICAgIGNyZWF0ZUhSKCkgew0KICAgICAgICByZXR1cm4gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiSFIiKTsNCiAgICB9DQogICAgY3JlYXRlSW50ZXJhY3Rpb24oKSB7DQogICAgICAgIGxldCBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiRElWIik7DQogICAgICAgIGVsZW1lbnQuc2V0QXR0cmlidXRlKCJpZCIsIHRoaXMuaW50ZXJhY3Rpb25JRCk7DQogICAgICAgIHJldHVybiBlbGVtZW50Ow0KICAgIH0NCiAgICBjcmVhdGVESVYoKSB7DQogICAgICAgIGxldCBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiRElWIik7DQogICAgICAgIGVsZW1lbnQuaWQgPSB0aGlzLkRpdklEOw0KICAgICAgICByZXR1cm4gZWxlbWVudDsNCiAgICB9DQogICAgY3JlYXRlVEFCTEUoKSB7DQogICAgICAgIGxldCBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEFCTEUiKTsNCiAgICAgICAgZWxlbWVudC5pZCA9IHRoaXMuVGFibGVJRDsNCiAgICAgICAgcmV0dXJuIGVsZW1lbnQ7DQogICAgfQ0KICAgIGNyZWF0ZVRhYmxlUm93KCkgew0KICAgICAgICBsZXQgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlRSIik7DQogICAgICAgIGVsZW1lbnQuY2xhc3NOYW1lID0gdGhpcy5oZWFkZXJDbGFzczsNCiAgICAgICAgcmV0dXJuIGVsZW1lbnQ7DQogICAgfQ0KICAgIGNyZWF0ZVRhYmxlQ29udGVudChtZW51S2V5KSB7DQogICAgICAgIGxldCBkYXRhID0ge307DQogICAgICAgIGxldCByb3dzID0gW107DQogICAgICAgIGxldCBmaWxlVHlwZXMgPSBbXTsNCiAgICAgICAgc3dpdGNoIChtZW51S2V5KSB7DQogICAgICAgICAgICBjYXNlICJwbGF5bGlzdCI6DQogICAgICAgICAgICAgICAgZmlsZVR5cGVzID0gWyJtM3UiLCAiaGRociJdOw0KICAgICAgICAgICAgICAgIGZpbGVUeXBlcy5mb3JFYWNoKGZpbGVUeXBlID0+IHsNCiAgICAgICAgICAgICAgICAgICAgZGF0YSA9IFNFUlZFUlsic2V0dGluZ3MiXVsiZmlsZXMiXVtmaWxlVHlwZV07DQogICAgICAgICAgICAgICAgICAgIHZhciBrZXlzID0gZ2V0T3duT2JqUHJvcHMoZGF0YSk7DQogICAgICAgICAgICAgICAgICAgIGtleXMuZm9yRWFjaChrZXkgPT4gew0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVFIiKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmlkID0ga2V5Ow0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgiJyArIGZpbGVUeXBlICsgJyIsIHRoaXMpJyk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsibmFtZSJdOw0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChTRVJWRVJbInNldHRpbmdzIl1bImJ1ZmZlciJdICE9ICItIikgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bInR1bmVyIl07DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gIi0iOw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bImxhc3QudXBkYXRlIl07DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsicHJvdmlkZXIuYXZhaWxhYmlsaXR5Il07DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsidHlwZSJdLnRvVXBwZXJDYXNlKCk7DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsiY29tcGF0aWJpbGl0eSJdWyJzdHJlYW1zIl07DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsiY29tcGF0aWJpbGl0eSJdWyJncm91cC50aXRsZSJdOw0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bImNvbXBhdGliaWxpdHkiXVsidHZnLmlkIl07DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsiY29tcGF0aWJpbGl0eSJdWyJzdHJlYW0uaWQiXTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHJvd3MucHVzaCh0cik7DQogICAgICAgICAgICAgICAgICAgIH0pOw0KICAgICAgICAgICAgICAgIH0pOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiZmlsdGVyIjoNCiAgICAgICAgICAgICAgICBkZWxldGUgU0VSVkVSWyJzZXR0aW5ncyJdWyJmaWx0ZXIiXVstMV07DQogICAgICAgICAgICAgICAgZGF0YSA9IFNFUlZFUlsic2V0dGluZ3MiXVsiZmlsdGVyIl07DQogICAgICAgICAgICAgICAgdmFyIGtleXMgPSBnZXRPd25PYmpQcm9wcyhkYXRhKTsNCiAgICAgICAgICAgICAgICBrZXlzLmZvckVhY2goa2V5ID0+IHsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVFIiKTsNCiAgICAgICAgICAgICAgICAgICAgdHIuaWQgPSBrZXk7DQogICAgICAgICAgICAgICAgICAgIHRyLnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoIicgKyBkYXRhW2tleV1bInR5cGUiXSArICciLCB0aGlzKScpOw0KICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsic3RhcnRpbmdDaGFubmVsIl07DQogICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bIm5hbWUiXTsNCiAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgc3dpdGNoIChkYXRhW2tleV1bInR5cGUiXSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAiY3VzdG9tLWZpbHRlciI6DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9ICJ7ey5maWx0ZXIuY3VzdG9tfX0iOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAiZ3JvdXAtdGl0bGUiOg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSAie3suZmlsdGVyLmdyb3VwfX0iOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJmaWx0ZXIiXTsNCiAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICByb3dzLnB1c2godHIpOw0KICAgICAgICAgICAgICAgIH0pOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAieG1sdHYiOg0KICAgICAgICAgICAgICAgIGZpbGVUeXBlcyA9IG5ldyBBcnJheSgieG1sdHYiKTsNCiAgICAgICAgICAgICAgICBmaWxlVHlwZXMuZm9yRWFjaChmaWxlVHlwZSA9PiB7DQogICAgICAgICAgICAgICAgICAgIGRhdGEgPSBTRVJWRVJbInNldHRpbmdzIl1bImZpbGVzIl1bZmlsZVR5cGVdOw0KICAgICAgICAgICAgICAgICAgICB2YXIga2V5cyA9IGdldE93bk9ialByb3BzKGRhdGEpOw0KICAgICAgICAgICAgICAgICAgICBrZXlzLmZvckVhY2goa2V5ID0+IHsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciB0ciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlRSIik7DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5pZCA9IGtleTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoIicgKyBmaWxlVHlwZSArICciLCB0aGlzKScpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bIm5hbWUiXTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJsYXN0LnVwZGF0ZSJdOw0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bInByb3ZpZGVyLmF2YWlsYWJpbGl0eSJdOw0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bImNvbXBhdGliaWxpdHkiXVsieG1sdHYuY2hhbm5lbHMiXTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJjb21wYXRpYmlsaXR5Il1bInhtbHR2LnByb2dyYW1zIl07DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICByb3dzLnB1c2godHIpOw0KICAgICAgICAgICAgICAgICAgICB9KTsNCiAgICAgICAgICAgICAgICB9KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInVzZXJzIjoNCiAgICAgICAgICAgICAgICBmaWxlVHlwZXMgPSBuZXcgQXJyYXkoInVzZXJzIik7DQogICAgICAgICAgICAgICAgZmlsZVR5cGVzLmZvckVhY2goZmlsZVR5cGUgPT4gew0KICAgICAgICAgICAgICAgICAgICBkYXRhID0gU0VSVkVSW2ZpbGVUeXBlXTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGtleXMgPSBnZXRPd25PYmpQcm9wcyhkYXRhKTsNCiAgICAgICAgICAgICAgICAgICAga2V5cy5mb3JFYWNoKGtleSA9PiB7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgdHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJUUiIpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuaWQgPSBrZXk7DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCInICsgZmlsZVR5cGUgKyAnIiwgdGhpcyknKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJkYXRhIl1bInVzZXJuYW1lIl07DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9ICIqKioqKioiOw0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChkYXRhW2tleV1bImRhdGEiXVsiYXV0aGVudGljYXRpb24ud2ViIl0gPT0gdHJ1ZSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSAi4pyTIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSAiLSI7DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGRhdGFba2V5XVsiZGF0YSJdWyJhdXRoZW50aWNhdGlvbi5wbXMiXSA9PSB0cnVlKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9ICLinJMiOw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9ICItIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgICAgICBpZiAoZGF0YVtrZXldWyJkYXRhIl1bImF1dGhlbnRpY2F0aW9uLm0zdSJdID09IHRydWUpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gIuKckyI7DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gIi0iOw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChkYXRhW2tleV1bImRhdGEiXVsiYXV0aGVudGljYXRpb24ueG1sIl0gPT0gdHJ1ZSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSAi4pyTIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSAiLSI7DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGRhdGFba2V5XVsiZGF0YSJdWyJhdXRoZW50aWNhdGlvbi5hcGkiXSA9PSB0cnVlKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9ICLinJMiOw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9ICItIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHJvd3MucHVzaCh0cik7DQogICAgICAgICAgICAgICAgICAgIH0pOw0KICAgICAgICAgICAgICAgIH0pOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAibWFwcGluZyI6DQogICAgICAgICAgICAgICAgQlVMS19FRElUID0gZmFsc2U7DQogICAgICAgICAgICAgICAgY3JlYXRlU2VhcmNoT2JqKCk7DQogICAgICAgICAgICAgICAgY2hlY2tVbmRvKCJlcGdNYXBwaW5nIik7DQogICAgICAgICAgICAgICAgZGF0YSA9IFNFUlZFUlsieGVwZyJdWyJlcGdNYXBwaW5nIl07DQogICAgICAgICAgICAgICAgdmFyIGtleXMgPSBnZXRPd25PYmpQcm9wcyhkYXRhKTsNCiAgICAgICAgICAgICAgICBrZXlzLmZvckVhY2goa2V5ID0+IHsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVFIiKTsNCiAgICAgICAgICAgICAgICAgICAgdHIuaWQgPSBrZXk7DQogICAgICAgICAgICAgICAgICAgIHN3aXRjaCAoZGF0YVtrZXldWyJ4LWFjdGl2ZSJdKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBjYXNlIHRydWU6DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgdHIuY2xhc3NOYW1lID0gImFjdGl2ZUVQRyI7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgICAgICAgICBjYXNlIGZhbHNlOg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyLmNsYXNzTmFtZSA9ICJub3RBY3RpdmVFUEciOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIC8vIEJ1bGsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiQlVMSyI7DQogICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBmYWxzZTsNCiAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAvLyBDaGFubmVsIG51bWJlcg0KICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJJTlBVVENIQU5ORUwiOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJ4LWNoYW5uZWxJRCJdOw0KICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgIC8vIExvZ28NCiAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiSU1HIjsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5pbWFnZVVSTCA9IGRhdGFba2V5XVsidHZnLWxvZ28iXTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHRkID0gY2VsbC5jcmVhdGVDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgIHRkLnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoIm1hcHBpbmciLCB0aGlzKScpOw0KICAgICAgICAgICAgICAgICAgICB0ZC5pZCA9IGtleTsNCiAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQodGQpOw0KICAgICAgICAgICAgICAgICAgICAvLyBDaGFubmVsIG5hbWUNCiAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2xhc3NOYW1lID0gZGF0YVtrZXldWyJ4LWNhdGVnb3J5Il07DQogICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bIngtbmFtZSJdOw0KICAgICAgICAgICAgICAgICAgICB2YXIgdGQgPSBjZWxsLmNyZWF0ZUNlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgdGQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgibWFwcGluZyIsIHRoaXMpJyk7DQogICAgICAgICAgICAgICAgICAgIHRkLmlkID0ga2V5Ow0KICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZCh0ZCk7DQogICAgICAgICAgICAgICAgICAgIC8vIFBsYXlsaXN0DQogICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZ2V0VmFsdWVGcm9tUHJvdmlkZXJGaWxlKGRhdGFba2V5XVsiX2ZpbGUubTN1LmlkIl0sICJtM3UiLCAibmFtZSIpOw0KICAgICAgICAgICAgICAgICAgICB2YXIgdGQgPSBjZWxsLmNyZWF0ZUNlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgdGQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgibWFwcGluZyIsIHRoaXMpJyk7DQogICAgICAgICAgICAgICAgICAgIHRkLmlkID0ga2V5Ow0KICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZCh0ZCk7DQogICAgICAgICAgICAgICAgICAgIC8vIEdyb3VwIChncm91cC10aXRsZSkNCiAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bIngtZ3JvdXAtdGl0bGUiXTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHRkID0gY2VsbC5jcmVhdGVDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgIHRkLnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoIm1hcHBpbmciLCB0aGlzKScpOw0KICAgICAgICAgICAgICAgICAgICB0ZC5pZCA9IGtleTsNCiAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQodGQpOw0KICAgICAgICAgICAgICAgICAgICAvLyBYTUxUViBmaWxlDQogICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICBpZiAoZGF0YVtrZXldWyJ4LXhtbHR2LWZpbGUiXSAhPSAiLSIpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBnZXRWYWx1ZUZyb21Qcm92aWRlckZpbGUoZGF0YVtrZXldWyJ4LXhtbHR2LWZpbGUiXSwgInhtbHR2IiwgIm5hbWUiKTsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bIngteG1sdHYtZmlsZSJdOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIHZhciB0ZCA9IGNlbGwuY3JlYXRlQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICB0ZC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJtYXBwaW5nIiwgdGhpcyknKTsNCiAgICAgICAgICAgICAgICAgICAgdGQuaWQgPSBrZXk7DQogICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKHRkKTsNCiAgICAgICAgICAgICAgICAgICAgLy8gWE1MVFYgQ2hhbm5lbA0KICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHZhbHVlID0gZGF0YVtrZXldWyJ4LW1hcHBpbmciXTsNCiAgICAgICAgICAgICAgICAgICAgaWYgKHZhbHVlLmxlbmd0aCA+IDIwKSB7DQogICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IGRhdGFba2V5XVsieC1tYXBwaW5nIl0uc3Vic3RyaW5nKDAsIDIwKSArICIuLi4iOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSB2YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHRkID0gY2VsbC5jcmVhdGVDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgIHRkLnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoIm1hcHBpbmciLCB0aGlzKScpOw0KICAgICAgICAgICAgICAgICAgICB0ZC5pZCA9IGtleTsNCiAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQodGQpOw0KICAgICAgICAgICAgICAgICAgICAvLyBUaW1lU2hpZnQNCiAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bIngtdGltZXNoaWZ0Il07DQogICAgICAgICAgICAgICAgICAgIHZhciB0ZCA9IGNlbGwuY3JlYXRlQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICB0ZC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJtYXBwaW5nIiwgdGhpcyknKTsNCiAgICAgICAgICAgICAgICAgICAgdGQuaWQgPSBrZXk7DQogICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKHRkKTsNCiAgICAgICAgICAgICAgICAgICAgcm93cy5wdXNoKHRyKTsNCiAgICAgICAgICAgICAgICB9KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInNldHRpbmdzIjoNCiAgICAgICAgICAgICAgICBhbGVydCgpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgfQ0KICAgICAgICByZXR1cm4gcm93czsNCiAgICB9DQp9DQpjbGFzcyBDZWxsIHsNCiAgICBjcmVhdGVDZWxsKCkgew0KICAgICAgICBsZXQgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICBpZiAodGhpcy5jaGlsZCA9PSB0cnVlKSB7DQogICAgICAgICAgICB2YXIgZWxlbWVudDsNCiAgICAgICAgICAgIHN3aXRjaCAodGhpcy5jaGlsZFR5cGUpIHsNCiAgICAgICAgICAgICAgICBjYXNlICJQIjoNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQodGhpcy5jaGlsZFR5cGUpOw0KICAgICAgICAgICAgICAgICAgICBlbGVtZW50LmlubmVySFRNTCA9IHRoaXMudmFsdWU7DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQuY2xhc3NOYW1lID0gdGhpcy5jbGFzc05hbWU7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgIklOUFVUIjoNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQodGhpcy5jaGlsZFR5cGUpOw0KICAgICAgICAgICAgICAgICAgICBlbGVtZW50LnZhbHVlID0gdGhpcy52YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC50eXBlID0gInRleHQiOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBjYXNlICJJTlBVVENIQU5ORUwiOg0KICAgICAgICAgICAgICAgICAgICBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiSU5QVVQiKTsNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdnNjcmlwdDogY2hhbmdlQ2hhbm5lbE51bWJlcih0aGlzKSIpOw0KICAgICAgICAgICAgICAgICAgICBlbGVtZW50LnZhbHVlID0gdGhpcy52YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC50eXBlID0gInRleHQiOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBjYXNlICJCVUxLIjoNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIklOUFVUIik7DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQuY2hlY2tlZCA9IHRoaXMudmFsdWU7DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQudHlwZSA9ICJjaGVja2JveCI7DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQuY2xhc3NOYW1lID0gImJ1bGsgaGlkZUJ1bGsiOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBjYXNlICJCVUxLX0hFQUQiOg0KICAgICAgICAgICAgICAgICAgICBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiSU5QVVQiKTsNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC5jaGVja2VkID0gdGhpcy52YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC50eXBlID0gImNoZWNrYm94IjsNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC5jbGFzc05hbWUgPSAiYnVsayBoaWRlQnVsayI7DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgImphdmFzY3JpcHQ6IHNlbGVjdEFsbENoYW5uZWxzKCkiKTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAiSU1HIjoNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQodGhpcy5jaGlsZFR5cGUpOw0KICAgICAgICAgICAgICAgICAgICBlbGVtZW50LnNldEF0dHJpYnV0ZSgic3JjIiwgdGhpcy5pbWFnZVVSTCk7DQogICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLmltYWdlVVJMICE9ICIiKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBlbGVtZW50LnNldEF0dHJpYnV0ZSgib25lcnJvciIsICJqYXZhc2NyaXB0OiB0aGlzLm9uZXJyb3I9bnVsbDt0aGlzLnNyYz0nJyIpOw0KICAgICAgICAgICAgICAgICAgICAgICAgLy9vbmVycm9yPSJ0aGlzLm9uZXJyb3I9bnVsbDt0aGlzLnNyYz0nbWlzc2luZy5naWYnOyINCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgdGQuYXBwZW5kQ2hpbGQoZWxlbWVudCk7DQogICAgICAgIH0NCiAgICAgICAgZWxzZSB7DQogICAgICAgICAgICB0ZC5pbm5lckhUTUwgPSB0aGlzLnZhbHVlOw0KICAgICAgICB9DQogICAgICAgIGlmICh0aGlzLm9uY2xpY2sgPT0gdHJ1ZSkgew0KICAgICAgICAgICAgdGQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgdGhpcy5vbmNsaWNrRnVuY3Rpb24pOw0KICAgICAgICAgICAgdGQuY2xhc3NOYW1lID0gInBvaW50ZXIiOw0KICAgICAgICB9DQogICAgICAgIGlmICh0aGlzLnRkQ2xhc3NOYW1lICE9IHVuZGVmaW5lZCkgew0KICAgICAgICAgICAgdGQuY2xhc3NOYW1lID0gdGhpcy50ZENsYXNzTmFtZTsNCiAgICAgICAgfQ0KICAgICAgICByZXR1cm4gdGQ7DQogICAgfQ0KfQ0KY2xhc3MgU2hvd0NvbnRlbnQgZXh0ZW5kcyBDb250ZW50IHsNCiAgICBjb25zdHJ1Y3RvcihtZW51SUQpIHsNCiAgICAgICAgc3VwZXIoKTsNCiAgICAgICAgdGhpcy5tZW51SUQgPSBtZW51SUQ7DQogICAgfQ0KICAgIGNyZWF0ZUlucHV0KHR5cGUsIG5hbWUsIHZhbHVlKSB7DQogICAgICAgIGxldCBpbnB1dCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIklOUFVUIik7DQogICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgidHlwZSIsIHR5cGUpOw0KICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm5hbWUiLCBuYW1lKTsNCiAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJ2YWx1ZSIsIHZhbHVlKTsNCiAgICAgICAgcmV0dXJuIGlucHV0Ow0KICAgIH0NCiAgICBzaG93KCkgew0KICAgICAgICBDT0xVTU5fVE9fU09SVCA9IC0xOw0KICAgICAgICAvLyBEZWxldGUgb2xkIGNvbnRlbnQNCiAgICAgICAgbGV0IGRvYyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHRoaXMuRG9jdW1lbnRJRCk7DQogICAgICAgIGRvYy5pbm5lckhUTUwgPSAiIjsNCiAgICAgICAgc2hvd1ByZXZpZXcoZmFsc2UpOw0KICAgICAgICAvLyBIZWFkbGluZQ0KICAgICAgICBsZXQgaGVhZGxpbmUgPSBtZW51SXRlbXNbdGhpcy5tZW51SURdLmhlYWRsaW5lOw0KICAgICAgICBsZXQgbWVudUtleSA9IG1lbnVJdGVtc1t0aGlzLm1lbnVJRF0ubWVudUtleTsNCiAgICAgICAgbGV0IGggPSB0aGlzLmNyZWF0ZUhlYWRsaW5lKGhlYWRsaW5lKTsNCiAgICAgICAgZG9jLmFwcGVuZENoaWxkKGgpOw0KICAgICAgICBsZXQgaHIgPSB0aGlzLmNyZWF0ZUhSKCk7DQogICAgICAgIGRvYy5hcHBlbmRDaGlsZChocik7DQogICAgICAgIC8vIEludGVyYWN0aW9uDQogICAgICAgIGxldCBkaXYgPSB0aGlzLmNyZWF0ZUludGVyYWN0aW9uKCk7DQogICAgICAgIGRvYy5hcHBlbmRDaGlsZChkaXYpOw0KICAgICAgICBsZXQgaW50ZXJhY3Rpb24gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCh0aGlzLmludGVyYWN0aW9uSUQpOw0KICAgICAgICBzd2l0Y2ggKG1lbnVLZXkpIHsNCiAgICAgICAgICAgIGNhc2UgInBsYXlsaXN0IjoNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSB0aGlzLmNyZWF0ZUlucHV0KCJidXR0b24iLCBtZW51S2V5LCAie3suYnV0dG9uLm5ld319Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJpZCIsICItIik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgicGxheWxpc3QiKScpOw0KICAgICAgICAgICAgICAgIGludGVyYWN0aW9uLmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImZpbHRlciI6DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gdGhpcy5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgbWVudUtleSwgInt7LmJ1dHRvbi5uZXd9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgiaWQiLCAtMSk7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgiZmlsdGVyIiwgdGhpcyknKTsNCiAgICAgICAgICAgICAgICBpbnRlcmFjdGlvbi5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ4bWx0diI6DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gdGhpcy5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgbWVudUtleSwgInt7LmJ1dHRvbi5uZXd9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgiaWQiLCAieG1sdHYiKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJ4bWx0diIpJyk7DQogICAgICAgICAgICAgICAgaW50ZXJhY3Rpb24uYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAidXNlcnMiOg0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IHRoaXMuY3JlYXRlSW5wdXQoImJ1dHRvbiIsIG1lbnVLZXksICJ7ey5idXR0b24ubmV3fX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoImlkIiwgInVzZXJzIik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgidXNlcnMiKScpOw0KICAgICAgICAgICAgICAgIGludGVyYWN0aW9uLmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgIm1hcHBpbmciOg0KICAgICAgICAgICAgICAgIHNob3dFbGVtZW50KCJsb2FkaW5nIiwgdHJ1ZSk7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gdGhpcy5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgbWVudUtleSwgInt7LmJ1dHRvbi5zYXZlfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogc2F2ZVBvcHVwRGF0YSgibWFwcGluZyIsICIiLCAiIiknKTsNCiAgICAgICAgICAgICAgICBpbnRlcmFjdGlvbi5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gdGhpcy5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgbWVudUtleSwgInt7LmJ1dHRvbi5idWxrRWRpdH19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IGJ1bGtFZGl0KCknKTsNCiAgICAgICAgICAgICAgICBpbnRlcmFjdGlvbi5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gdGhpcy5jcmVhdGVJbnB1dCgic2VhcmNoIiwgInNlYXJjaCIsICIiKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoImlkIiwgInNlYXJjaE1hcHBpbmciKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LmJ1dHRvbi5zZWFyY2h9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LmNsYXNzTmFtZSA9ICJzZWFyY2giOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAnamF2YXNjcmlwdDogc2VhcmNoSW5NYXBwaW5nKCknKTsNCiAgICAgICAgICAgICAgICBpbnRlcmFjdGlvbi5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJzZXR0aW5ncyI6DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gdGhpcy5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgbWVudUtleSwgInt7LmJ1dHRvbi5zYXZlfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogc2F2ZVNldHRpbmdzKCk7Jyk7DQogICAgICAgICAgICAgICAgaW50ZXJhY3Rpb24uYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IHRoaXMuY3JlYXRlSW5wdXQoImJ1dHRvbiIsIG1lbnVLZXksICJ7ey5idXR0b24uYmFja3VwfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogYmFja3VwKCk7Jyk7DQogICAgICAgICAgICAgICAgaW50ZXJhY3Rpb24uYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IHRoaXMuY3JlYXRlSW5wdXQoImJ1dHRvbiIsIG1lbnVLZXksICJ7ey5idXR0b24ucmVzdG9yZX19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IHJlc3RvcmUoKTsnKTsNCiAgICAgICAgICAgICAgICBpbnRlcmFjdGlvbi5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgdmFyIHdyYXBwZXIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJESVYiKTsNCiAgICAgICAgICAgICAgICB3cmFwcGVyLnNldEF0dHJpYnV0ZSgiaWQiLCAiYm94LXdyYXBwZXIiKTsNCiAgICAgICAgICAgICAgICBkb2MuYXBwZW5kQ2hpbGQod3JhcHBlcik7DQogICAgICAgICAgICAgICAgdGhpcy5EaXZJRCA9ICJjb250ZW50X3NldHRpbmdzIjsNCiAgICAgICAgICAgICAgICB2YXIgc2V0dGluZ3MgPSB0aGlzLmNyZWF0ZURJVigpOw0KICAgICAgICAgICAgICAgIHdyYXBwZXIuYXBwZW5kQ2hpbGQoc2V0dGluZ3MpOw0KICAgICAgICAgICAgICAgIHNob3dTZXR0aW5ncygpOw0KICAgICAgICAgICAgICAgIHJldHVybjsNCiAgICAgICAgICAgIGNhc2UgImxvZyI6DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gdGhpcy5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgbWVudUtleSwgInt7LmJ1dHRvbi5yZXNldExvZ3N9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiByZXNldExvZ3MoKTsnKTsNCiAgICAgICAgICAgICAgICBpbnRlcmFjdGlvbi5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgdmFyIHdyYXBwZXIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJESVYiKTsNCiAgICAgICAgICAgICAgICB3cmFwcGVyLnNldEF0dHJpYnV0ZSgiaWQiLCAiYm94LXdyYXBwZXIiKTsNCiAgICAgICAgICAgICAgICBkb2MuYXBwZW5kQ2hpbGQod3JhcHBlcik7DQogICAgICAgICAgICAgICAgdGhpcy5EaXZJRCA9ICJjb250ZW50X2xvZyI7DQogICAgICAgICAgICAgICAgdmFyIGxvZ3MgPSB0aGlzLmNyZWF0ZURJVigpOw0KICAgICAgICAgICAgICAgIHdyYXBwZXIuYXBwZW5kQ2hpbGQobG9ncyk7DQogICAgICAgICAgICAgICAgc2hvd0xvZ3ModHJ1ZSk7DQogICAgICAgICAgICAgICAgcmV0dXJuOw0KICAgICAgICAgICAgY2FzZSAibG9nb3V0IjoNCiAgICAgICAgICAgICAgICBsb2NhdGlvbi5yZWxvYWQoKTsNCiAgICAgICAgICAgICAgICBkb2N1bWVudC5jb29raWUgPSAiVG9rZW49IDsgZXhwaXJlcyA9IFRodSwgMDEgSmFuIDE5NzAgMDA6MDA6MDAgR01UIjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIH0NCiAgICAgICAgLy8gQ3JlYXRlIHRhYmxlIChpZiBuZWVkZWQpDQogICAgICAgIHZhciB0YWJsZUhlYWRlciA9IG1lbnVJdGVtc1t0aGlzLm1lbnVJRF0udGFibGVIZWFkZXI7DQogICAgICAgIGlmICh0YWJsZUhlYWRlci5sZW5ndGggPiAwKSB7DQogICAgICAgICAgICB2YXIgd3JhcHBlciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIkRJViIpOw0KICAgICAgICAgICAgZG9jLmFwcGVuZENoaWxkKHdyYXBwZXIpOw0KICAgICAgICAgICAgd3JhcHBlci5zZXRBdHRyaWJ1dGUoImlkIiwgImJveC13cmFwcGVyIik7DQogICAgICAgICAgICB2YXIgdGFibGUgPSB0aGlzLmNyZWF0ZVRBQkxFKCk7DQogICAgICAgICAgICB3cmFwcGVyLmFwcGVuZENoaWxkKHRhYmxlKTsNCiAgICAgICAgICAgIHZhciBoZWFkZXIgPSB0aGlzLmNyZWF0ZVRhYmxlUm93KCk7DQogICAgICAgICAgICB0YWJsZS5hcHBlbmRDaGlsZChoZWFkZXIpOw0KICAgICAgICAgICAgLy8gVGFibGUgaGVhZGVyDQogICAgICAgICAgICB0YWJsZUhlYWRlci5mb3JFYWNoKGVsZW1lbnQgPT4gew0KICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZWxlbWVudDsNCiAgICAgICAgICAgICAgICBpZiAoZWxlbWVudCA9PSAiQlVMSyIpIHsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiQlVMS19IRUFEIjsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGZhbHNlOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBpZiAobWVudUtleSA9PSAibWFwcGluZyIpIHsNCiAgICAgICAgICAgICAgICAgICAgaWYgKGVsZW1lbnQgPT0gInt7Lm1hcHBpbmcudGFibGUuY2hOb319Iikgew0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5vbmNsaWNrID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwub25jbGlja0Z1bmN0aW9uID0gImphdmFzY3JpcHQ6IHNvcnRUYWJsZSgxKTsiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC50ZENsYXNzTmFtZSA9ICJzb3J0VGhpcyI7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgaWYgKGVsZW1lbnQgPT0gInt7Lm1hcHBpbmcudGFibGUuY2hhbm5lbE5hbWV9fSIpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwub25jbGljayA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLm9uY2xpY2tGdW5jdGlvbiA9ICJqYXZhc2NyaXB0OiBzb3J0VGFibGUoMyk7IjsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBpZiAoZWxlbWVudCA9PSAie3subWFwcGluZy50YWJsZS5wbGF5bGlzdH19Iikgew0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5vbmNsaWNrID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwub25jbGlja0Z1bmN0aW9uID0gImphdmFzY3JpcHQ6IHNvcnRUYWJsZSg0KTsiOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIGlmIChlbGVtZW50ID09ICJ7ey5tYXBwaW5nLnRhYmxlLmdyb3VwVGl0bGV9fSIpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwub25jbGljayA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLm9uY2xpY2tGdW5jdGlvbiA9ICJqYXZhc2NyaXB0OiBzb3J0VGFibGUoNSk7IjsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBpZiAoZWxlbWVudCA9PSAie3subWFwcGluZy50YWJsZS50aW1lc2hpZnR9fSIpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwub25jbGljayA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLm9uY2xpY2tGdW5jdGlvbiA9ICJqYXZhc2NyaXB0OiBzb3J0VGFibGUoOCk7IjsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBpZiAobWVudUtleSA9PSAiZmlsdGVyIikgew0KICAgICAgICAgICAgICAgICAgICBpZiAoZWxlbWVudCA9PSAie3suZmlsdGVyLnRhYmxlLnN0YXJ0aW5nQ2hhbm5lbH19Iikgew0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5vbmNsaWNrID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwub25jbGlja0Z1bmN0aW9uID0gImphdmFzY3JpcHQ6IHNvcnRUYWJsZSgwKTsiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC50ZENsYXNzTmFtZSA9ICJzb3J0VGhpcyI7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgaWYgKGVsZW1lbnQgPT0gInt7LmZpbHRlci50YWJsZS5uYW1lfX0iKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLm9uY2xpY2sgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5vbmNsaWNrRnVuY3Rpb24gPSAiamF2YXNjcmlwdDogc29ydFRhYmxlKDEpOyI7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgaWYgKGVsZW1lbnQgPT0gInt7LmZpbHRlci50YWJsZS50eXBlfX0iKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLm9uY2xpY2sgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5vbmNsaWNrRnVuY3Rpb24gPSAiamF2YXNjcmlwdDogc29ydFRhYmxlKDIpOyI7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgaWYgKGVsZW1lbnQgPT0gInt7LmZpbHRlci50YWJsZS5maWx0ZXJ9fSIpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwub25jbGljayA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLm9uY2xpY2tGdW5jdGlvbiA9ICJqYXZhc2NyaXB0OiBzb3J0VGFibGUoMyk7IjsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBoZWFkZXIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgfSk7DQogICAgICAgICAgICB0YWJsZS5hcHBlbmRDaGlsZChoZWFkZXIpOw0KICAgICAgICAgICAgLy8gQ29udGVudCBvZiB0aGUgdGFibGUNCiAgICAgICAgICAgIHZhciByb3dzID0gdGhpcy5jcmVhdGVUYWJsZUNvbnRlbnQobWVudUtleSk7DQogICAgICAgICAgICByb3dzLmZvckVhY2godHIgPT4gew0KICAgICAgICAgICAgICAgIHRhYmxlLmFwcGVuZENoaWxkKHRyKTsNCiAgICAgICAgICAgIH0pOw0KICAgICAgICB9DQogICAgICAgIHN3aXRjaCAobWVudUtleSkgew0KICAgICAgICAgICAgY2FzZSAibWFwcGluZyI6DQogICAgICAgICAgICAgICAgc29ydFRhYmxlKDEpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiZmlsdGVyIjoNCiAgICAgICAgICAgICAgICBzaG93UHJldmlldyh0cnVlKTsNCiAgICAgICAgICAgICAgICBzb3J0VGFibGUoMCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBkZWZhdWx0Og0KICAgICAgICAgICAgICAgIENPTFVNTl9UT19TT1JUID0gLTE7DQogICAgICAgICAgICAgICAgc29ydFRhYmxlKDApOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICB9DQogICAgICAgIHNob3dFbGVtZW50KCJsb2FkaW5nIiwgZmFsc2UpOw0KICAgIH0NCn0NCmZ1bmN0aW9uIFBhZ2VSZWFkeSgpIHsNCiAgICBsZXQgc2VydmVyID0gbmV3IFNlcnZlcigiZ2V0U2VydmVyQ29uZmlnIik7DQogICAgc2VydmVyLnJlcXVlc3Qoe30pOw0KICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJyZXNpemUiLCBmdW5jdGlvbiAoKSB7DQogICAgICAgIGNhbGN1bGF0ZVdyYXBwZXJIZWlnaHQoKTsNCiAgICB9LCB0cnVlKTsNCiAgICBzZXRJbnRlcnZhbChmdW5jdGlvbiAoKSB7DQogICAgICAgIHVwZGF0ZUxvZygpOw0KICAgIH0sIDEwMDAwKTsNCiAgICByZXR1cm47DQp9DQpmdW5jdGlvbiBjcmVhdGVMYXlvdXQoKSB7DQogICAgLy8gQ2xpZW50IEluZm8NCiAgICBsZXQgb2JqID0gU0VSVkVSWyJjbGllbnRJbmZvIl07DQogICAgbGV0IGtleXMgPSBnZXRPd25PYmpQcm9wcyhvYmopOw0KICAgIGZvciAodmFyIGkgPSAwOyBpIDwga2V5cy5sZW5ndGg7IGkrKykgew0KICAgICAgICBpZiAoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoa2V5c1tpXSkpIHsNCiAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGtleXNbaV0pLmlubmVySFRNTCA9IG9ialtrZXlzW2ldXTsNCiAgICAgICAgfQ0KICAgIH0NCiAgICBpZiAoIWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJtYWluLW1lbnUiKSkgew0KICAgICAgICByZXR1cm47DQogICAgfQ0KICAgIC8vIENyZWF0ZSBtZW51DQogICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm1haW4tbWVudSIpLmlubmVySFRNTCA9ICIiOw0KICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbWVudUl0ZW1zLmxlbmd0aDsgaSsrKSB7DQogICAgICAgIG1lbnVJdGVtc1tpXS5pZCA9IGk7DQogICAgICAgIHN3aXRjaCAobWVudUl0ZW1zW2ldWyJtZW51S2V5Il0pIHsNCiAgICAgICAgICAgIGNhc2UgInVzZXJzIjoNCiAgICAgICAgICAgIGNhc2UgImxvZ291dCI6DQogICAgICAgICAgICAgICAgaWYgKFNFUlZFUlsic2V0dGluZ3MiXVsiYXV0aGVudGljYXRpb24ud2ViIl0gPT0gdHJ1ZSkgew0KICAgICAgICAgICAgICAgICAgICBtZW51SXRlbXNbaV0uY3JlYXRlSXRlbSgpOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgIm1hcHBpbmciOg0KICAgICAgICAgICAgY2FzZSAieG1sdHYiOg0KICAgICAgICAgICAgICAgIGlmIChTRVJWRVJbImNsaWVudEluZm8iXVsiZXBnU291cmNlIl0gPT0gIlhFUEciKSB7DQogICAgICAgICAgICAgICAgICAgIG1lbnVJdGVtc1tpXS5jcmVhdGVJdGVtKCk7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgICAgICBtZW51SXRlbXNbaV0uY3JlYXRlSXRlbSgpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICB9DQogICAgfQ0KICAgIHJldHVybjsNCn0NCmZ1bmN0aW9uIG9wZW5UaGlzTWVudShlbGVtZW50KSB7DQogICAgbGV0IGlkID0gZWxlbWVudC5pZDsNCiAgICBsZXQgY29udGVudCA9IG5ldyBTaG93Q29udGVudChpZCk7DQogICAgY29udGVudC5zaG93KCk7DQogICAgY2FsY3VsYXRlV3JhcHBlckhlaWdodCgpOw0KICAgIHJldHVybjsNCn0NCmNsYXNzIFBvcHVwV2luZG93IHsNCiAgICBjb25zdHJ1Y3RvcigpIHsNCiAgICAgICAgdGhpcy5Eb2N1bWVudElEID0gInBvcHVwLWN1c3RvbSI7DQogICAgICAgIHRoaXMuSW50ZXJhY3Rpb25JRCA9ICJpbnRlcmFjdGlvbiI7DQogICAgICAgIHRoaXMuZG9jID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQodGhpcy5Eb2N1bWVudElEKTsNCiAgICB9DQogICAgY3JlYXRlVGl0bGUodGl0bGUpIHsNCiAgICAgICAgbGV0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgdGQuY2xhc3NOYW1lID0gImxlZnQiOw0KICAgICAgICB0ZC5pbm5lckhUTUwgPSB0aXRsZSArICI6IjsNCiAgICAgICAgcmV0dXJuIHRkOw0KICAgIH0NCiAgICBjcmVhdGVDb250ZW50KGVsZW1lbnQpIHsNCiAgICAgICAgbGV0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgdGQuYXBwZW5kQ2hpbGQoZWxlbWVudCk7DQogICAgICAgIHJldHVybiB0ZDsNCiAgICB9DQogICAgY3JlYXRlSW50ZXJhY3Rpb24oKSB7DQogICAgICAgIGxldCBkaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsNCiAgICAgICAgZGl2LnNldEF0dHJpYnV0ZSgiaWQiLCAicG9wdXAtaW50ZXJhY3Rpb24iKTsNCiAgICAgICAgZGl2LmNsYXNzTmFtZSA9ICJpbnRlcmFjdGlvbiI7DQogICAgICAgIHRoaXMuZG9jLmFwcGVuZENoaWxkKGRpdik7DQogICAgfQ0KfQ0KY2xhc3MgUG9wdXBDb250ZW50IGV4dGVuZHMgUG9wdXBXaW5kb3cgew0KICAgIGNvbnN0cnVjdG9yKCkgew0KICAgICAgICBzdXBlciguLi5hcmd1bWVudHMpOw0KICAgICAgICB0aGlzLnRhYmxlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEFCTEUiKTsNCiAgICB9DQogICAgY3JlYXRlSGVhZGxpbmUoaGVhZGxpbmUpIHsNCiAgICAgICAgdGhpcy5kb2MuaW5uZXJIVE1MID0gIiI7DQogICAgICAgIHZhciBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiSDMiKTsNCiAgICAgICAgZWxlbWVudC5pbm5lckhUTUwgPSBoZWFkbGluZS50b1VwcGVyQ2FzZSgpOw0KICAgICAgICB0aGlzLmRvYy5hcHBlbmRDaGlsZChlbGVtZW50KTsNCiAgICAgICAgLy8gQ3JlYXRlIHRhYmxlDQogICAgICAgIHRoaXMudGFibGUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJUQUJMRSIpOw0KICAgICAgICB0aGlzLmRvYy5hcHBlbmRDaGlsZCh0aGlzLnRhYmxlKTsNCiAgICB9DQogICAgYXBwZW5kUm93KHRpdGxlLCBlbGVtZW50KSB7DQogICAgICAgIGxldCB0ciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlRSIik7DQogICAgICAgIC8vIFRpdGxlDQogICAgICAgIGlmICh0aXRsZS5sZW5ndGggIT0gMCkgew0KICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQodGhpcy5jcmVhdGVUaXRsZSh0aXRsZSkpOw0KICAgICAgICB9DQogICAgICAgIC8vIENvbnRlbnQNCiAgICAgICAgdHIuYXBwZW5kQ2hpbGQodGhpcy5jcmVhdGVDb250ZW50KGVsZW1lbnQpKTsNCiAgICAgICAgdGhpcy50YWJsZS5hcHBlbmRDaGlsZCh0cik7DQogICAgfQ0KICAgIGNyZWF0ZUlucHV0KHR5cGUsIG5hbWUsIHZhbHVlKSB7DQogICAgICAgIGxldCBpbnB1dCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIklOUFVUIik7DQogICAgICAgIGlmICh2YWx1ZSA9PSB1bmRlZmluZWQpIHsNCiAgICAgICAgICAgIHZhbHVlID0gIiI7DQogICAgICAgIH0NCiAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJ0eXBlIiwgdHlwZSk7DQogICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgibmFtZSIsIG5hbWUpOw0KICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInZhbHVlIiwgdmFsdWUpOw0KICAgICAgICByZXR1cm4gaW5wdXQ7DQogICAgfQ0KICAgIGNyZWF0ZUNoZWNrYm94KG5hbWUpIHsNCiAgICAgICAgbGV0IGlucHV0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiSU5QVVQiKTsNCiAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJ0eXBlIiwgImNoZWNrYm94Iik7DQogICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgibmFtZSIsIG5hbWUpOw0KICAgICAgICByZXR1cm4gaW5wdXQ7DQogICAgfQ0KICAgIC8vIENyZWF0ZXMgYSBzZWxlY3Rpb24gb2YgbXVsdGlwbGUgb3B0aW9ucyB2YWx1ZXMgd2l0aCB0ZXh0IGRlc2NyaXB0aW9ucw0KICAgIGNyZWF0ZVNlbGVjdCh0ZXh0LCB2YWx1ZXMsIHNldCwgZGJLZXkpIHsNCiAgICAgICAgbGV0IHNlbGVjdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlNFTEVDVCIpOw0KICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJuYW1lIiwgZGJLZXkpOw0KICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRleHQubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgICAgIGxldCBvcHRpb24gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJPUFRJT04iKTsNCiAgICAgICAgICAgIG9wdGlvbi5zZXRBdHRyaWJ1dGUoInZhbHVlIiwgdmFsdWVzW2ldKTsNCiAgICAgICAgICAgIG9wdGlvbi5pbm5lclRleHQgPSB0ZXh0W2ldOw0KICAgICAgICAgICAgc2VsZWN0LmFwcGVuZENoaWxkKG9wdGlvbik7DQogICAgICAgIH0NCiAgICAgICAgaWYgKHNldCAhPSAiIikgew0KICAgICAgICAgICAgc2VsZWN0LnZhbHVlID0gc2V0Ow0KICAgICAgICB9DQogICAgICAgIGlmIChzZXQgPT0gdW5kZWZpbmVkKSB7DQogICAgICAgICAgICBzZWxlY3QudmFsdWUgPSB2YWx1ZXNbMF07DQogICAgICAgIH0NCiAgICAgICAgcmV0dXJuIHNlbGVjdDsNCiAgICB9DQogICAgc2VsZWN0T3B0aW9uKHNlbGVjdCwgdmFsdWUpIHsNCiAgICAgICAgLy9zZWxlY3Quc2VsZWN0ZWRPcHRpb25zID0gdmFsdWUNCiAgICAgICAgbGV0IHMgPSBzZWxlY3Q7DQogICAgICAgIHMub3B0aW9uc1tzLnNlbGVjdGVkSW5kZXhdLnZhbHVlID0gdmFsdWU7DQogICAgICAgIHJldHVybiBzZWxlY3Q7DQogICAgfQ0KICAgIGRlc2NyaXB0aW9uKHZhbHVlKSB7DQogICAgICAgIGxldCB0ciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlRSIik7DQogICAgICAgIGxldCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgIGxldCBzcGFuID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiUFJFIik7DQogICAgICAgIHNwYW4uaW5uZXJIVE1MID0gdmFsdWU7DQogICAgICAgIHRyLmFwcGVuZENoaWxkKHRkKTsNCiAgICAgICAgdHIuYXBwZW5kQ2hpbGQodGhpcy5jcmVhdGVDb250ZW50KHNwYW4pKTsNCiAgICAgICAgdGhpcy50YWJsZS5hcHBlbmRDaGlsZCh0cik7DQogICAgfQ0KICAgIC8vIEludGVyYWN0aW9uDQogICAgYWRkSW50ZXJhY3Rpb24oZWxlbWVudCkgew0KICAgICAgICBsZXQgaW50ZXJhY3Rpb24gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicG9wdXAtaW50ZXJhY3Rpb24iKTsNCiAgICAgICAgaW50ZXJhY3Rpb24uYXBwZW5kQ2hpbGQoZWxlbWVudCk7DQogICAgfQ0KfQ0KZnVuY3Rpb24gb3BlblBvcFVwKGRhdGFUeXBlLCBlbGVtZW50KSB7DQogICAgbGV0IGRhdGEgPSB7fTsNCiAgICBsZXQgaWQ7DQogICAgc3dpdGNoIChlbGVtZW50KSB7DQogICAgICAgIGNhc2UgdW5kZWZpbmVkOg0KICAgICAgICAgICAgc3dpdGNoIChkYXRhVHlwZSkgew0KICAgICAgICAgICAgICAgIGNhc2UgImdyb3VwLXRpdGxlIjoNCiAgICAgICAgICAgICAgICAgICAgaWYgKGlkID09IHVuZGVmaW5lZCkgew0KICAgICAgICAgICAgICAgICAgICAgICAgaWQgPSAtMTsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBkYXRhID0gZ2V0TG9jYWxEYXRhKCJmaWx0ZXIiLCBpZCk7DQogICAgICAgICAgICAgICAgICAgIGRhdGFbInR5cGUiXSA9ICJncm91cC10aXRsZSI7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgImN1c3RvbS1maWx0ZXIiOg0KICAgICAgICAgICAgICAgICAgICBpZiAoaWQgPT0gdW5kZWZpbmVkKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBpZCA9IC0xOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIGRhdGEgPSBnZXRMb2NhbERhdGEoImZpbHRlciIsIGlkKTsNCiAgICAgICAgICAgICAgICAgICAgZGF0YVsidHlwZSJdID0gImN1c3RvbS1maWx0ZXIiOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBkZWZhdWx0Og0KICAgICAgICAgICAgICAgICAgICBkYXRhWyJpZC5wcm92aWRlciJdID0gIi0iOw0KICAgICAgICAgICAgICAgICAgICBkYXRhWyJ0eXBlIl0gPSBkYXRhVHlwZTsNCiAgICAgICAgICAgICAgICAgICAgaWQgPSAiLSI7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICBpZCA9IGVsZW1lbnQuaWQ7DQogICAgICAgICAgICBkYXRhID0gZ2V0TG9jYWxEYXRhKGRhdGFUeXBlLCBpZCk7DQogICAgICAgICAgICBicmVhazsNCiAgICB9DQogICAgbGV0IGNvbnRlbnQgPSBuZXcgUG9wdXBDb250ZW50KCk7DQogICAgc3dpdGNoIChkYXRhVHlwZSkgew0KICAgICAgICBjYXNlICJwbGF5bGlzdCI6DQogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUhlYWRsaW5lKCJ7ey5wbGF5bGlzdC5wbGF5bGlzdFR5cGUudGl0bGV9fSIpOw0KICAgICAgICAgICAgLy8gVHlwZQ0KICAgICAgICAgICAgdmFyIHRleHQgPSBbIk0zVSIsICJIREhvbWVSdW4iXTsNCiAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBbImphdmFzY3JpcHQ6IG9wZW5Qb3BVcCgnbTN1JykiLCAiamF2YXNjcmlwdDogb3BlblBvcFVwKCdoZGhyJykiXTsNCiAgICAgICAgICAgIHZhciBzZWxlY3QgPSBjb250ZW50LmNyZWF0ZVNlbGVjdCh0ZXh0LCB2YWx1ZXMsICIiLCAidHlwZSIpOw0KICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgiaWQiLCAidHlwZSIpOw0KICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAnamF2YXNjcmlwdDogY2hhbmdlQnV0dG9uQWN0aW9uKHRoaXMsICJuZXh0IiwgIm9uY2xpY2siKScpOyAvLyBjaGFuZ2VCdXR0b25BY3Rpb24NCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5wbGF5bGlzdC50eXBlLnRpdGxlfX0iLCBzZWxlY3QpOw0KICAgICAgICAgICAgLy8gSW50ZXJhY3Rpb24NCiAgICAgICAgICAgIGNvbnRlbnQuY3JlYXRlSW50ZXJhY3Rpb24oKTsNCiAgICAgICAgICAgIC8vIEFib3J0DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAiY2FuY2VsIiwgInt7LmJ1dHRvbi5jYW5jZWx9fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IHNob3dFbGVtZW50KCJwb3B1cCIsIGZhbHNlKTsnKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgLy8gTmV4dA0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgIm5leHQiLCAie3suYnV0dG9uLm5leHR9fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgibTN1IiknKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgiaWQiLCAnbmV4dCcpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSAibTN1IjoNCiAgICAgICAgICAgIGNvbnRlbnQuY3JlYXRlSGVhZGxpbmUoZGF0YVR5cGUpOw0KICAgICAgICAgICAgLy8gTmFtZQ0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gIm5hbWUiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnBsYXlsaXN0Lm5hbWUucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnBsYXlsaXN0Lm5hbWUudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIERlc2NyaXB0aW9uDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAiZGVzY3JpcHRpb24iOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnBsYXlsaXN0LmRlc2NyaXB0aW9uLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5wbGF5bGlzdC5kZXNjcmlwdGlvbi50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgLy8gVVJMDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAiZmlsZS5zb3VyY2UiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnBsYXlsaXN0LmZpbGVNM1UucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnBsYXlsaXN0LmZpbGVNM1UudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIFR1bmVyDQogICAgICAgICAgICBpZiAoU0VSVkVSWyJzZXR0aW5ncyJdWyJidWZmZXIiXSAhPSAiLSIpIHsNCiAgICAgICAgICAgICAgICB2YXIgdGV4dCA9IFtdOw0KICAgICAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBbXTsNCiAgICAgICAgICAgICAgICBmb3IgKHZhciBpID0gMTsgaSA8PSAxMDA7IGkrKykgew0KICAgICAgICAgICAgICAgICAgICB0ZXh0LnB1c2goaS50b1N0cmluZygpKTsNCiAgICAgICAgICAgICAgICAgICAgdmFsdWVzLnB1c2goaS50b1N0cmluZygpKTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgdmFyIGRiS2V5ID0gInR1bmVyIjsNCiAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCBkYXRhW2RiS2V5XSwgZGJLZXkpOw0KICAgICAgICAgICAgICAgIHNlbGVjdC5zZXRBdHRyaWJ1dGUoIm9uZm9jdXMiLCAiamF2YXNjcmlwdDogcmV0dXJuOyIpOw0KICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5wbGF5bGlzdC50dW5lci50aXRsZX19Iiwgc2VsZWN0KTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgICAgIHZhciBkYktleSA9ICJ0dW5lciI7DQogICAgICAgICAgICAgICAgaWYgKGRhdGFbZGJLZXldID09IHVuZGVmaW5lZCkgew0KICAgICAgICAgICAgICAgICAgICBkYXRhW2RiS2V5XSA9IDE7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicmVhZG9ubHkiLCAidHJ1ZSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LmNsYXNzTmFtZSA9ICJub3RBdmFpbGFibGUiOw0KICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5wbGF5bGlzdC50dW5lci50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgY29udGVudC5kZXNjcmlwdGlvbigie3sucGxheWxpc3QudHVuZXIuZGVzY3JpcHRpb259fSIpOw0KICAgICAgICAgICAgLy8gSW50ZXJhdGlvbg0KICAgICAgICAgICAgY29udGVudC5jcmVhdGVJbnRlcmFjdGlvbigpOw0KICAgICAgICAgICAgLy8gRGVsZXRlDQogICAgICAgICAgICBpZiAoZGF0YVsiaWQucHJvdmlkZXIiXSAhPSAiLSIpIHsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAiZGVsZXRlIiwgInt7LmJ1dHRvbi5kZWxldGV9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LmNsYXNzTmFtZSA9ICJkZWxldGUiOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBzYXZlUG9wdXBEYXRhKCJtM3UiLCAiJyArIGlkICsgJyIsIHRydWUsIDApJyk7DQogICAgICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAiYmFjayIsICJ7ey5idXR0b24uYmFja319Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgicGxheWxpc3QiKScpOw0KICAgICAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgLy8gQWJvcnQNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJjYW5jZWwiLCAie3suYnV0dG9uLmNhbmNlbH19Iik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogc2hvd0VsZW1lbnQoInBvcHVwIiwgZmFsc2UpOycpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICAvLyBVcGRhdGUNCiAgICAgICAgICAgIGlmIChkYXRhWyJpZC5wcm92aWRlciJdICE9ICItIikgew0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJ1cGRhdGUiLCAie3suYnV0dG9uLnVwZGF0ZX19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoIm0zdSIsICInICsgaWQgKyAnIiwgZmFsc2UsIDEpJyk7DQogICAgICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICAvLyBTYXZlDQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAic2F2ZSIsICJ7ey5idXR0b24uc2F2ZX19Iik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogc2F2ZVBvcHVwRGF0YSgibTN1IiwgIicgKyBpZCArICciLCBmYWxzZSwgMCknKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGNhc2UgImhkaHIiOg0KICAgICAgICAgICAgY29udGVudC5jcmVhdGVIZWFkbGluZShkYXRhVHlwZSk7DQogICAgICAgICAgICAvLyBOYW1lDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAibmFtZSI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3sucGxheWxpc3QubmFtZS5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sucGxheWxpc3QubmFtZS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgLy8gRGVzY3JpcHRpb24NCiAgICAgICAgICAgIHZhciBkYktleSA9ICJkZXNjcmlwdGlvbiI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3sucGxheWxpc3QuZGVzY3JpcHRpb24ucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnBsYXlsaXN0LmRlc2NyaXB0aW9uLnBsYWNlaG9sZGVyfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBVUkwNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJmaWxlLnNvdXJjZSI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3sucGxheWxpc3QuZmlsZUhESFIucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnBsYXlsaXN0LmZpbGVIREhSLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBUdW5lcg0KICAgICAgICAgICAgaWYgKFNFUlZFUlsic2V0dGluZ3MiXVsiYnVmZmVyIl0gIT0gIi0iKSB7DQogICAgICAgICAgICAgICAgdmFyIHRleHQgPSBbXTsNCiAgICAgICAgICAgICAgICB2YXIgdmFsdWVzID0gW107DQogICAgICAgICAgICAgICAgZm9yICh2YXIgaSA9IDE7IGkgPD0gMTAwOyBpKyspIHsNCiAgICAgICAgICAgICAgICAgICAgdGV4dC5wdXNoKGkudG9TdHJpbmcoKSk7DQogICAgICAgICAgICAgICAgICAgIHZhbHVlcy5wdXNoKGkudG9TdHJpbmcoKSk7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIHZhciBkYktleSA9ICJ0dW5lciI7DQogICAgICAgICAgICAgICAgdmFyIHNlbGVjdCA9IGNvbnRlbnQuY3JlYXRlU2VsZWN0KHRleHQsIHZhbHVlcywgZGF0YVtkYktleV0sIGRiS2V5KTsNCiAgICAgICAgICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJvbmZvY3VzIiwgImphdmFzY3JpcHQ6IHJldHVybjsiKTsNCiAgICAgICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sucGxheWxpc3QudHVuZXIudGl0bGV9fSIsIHNlbGVjdCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICB2YXIgZGJLZXkgPSAidHVuZXIiOw0KICAgICAgICAgICAgICAgIGlmIChkYXRhW2RiS2V5XSA9PSB1bmRlZmluZWQpIHsNCiAgICAgICAgICAgICAgICAgICAgZGF0YVtkYktleV0gPSAxOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInJlYWRvbmx5IiwgInRydWUiKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5jbGFzc05hbWUgPSAibm90QXZhaWxhYmxlIjsNCiAgICAgICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sucGxheWxpc3QudHVuZXIudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGNvbnRlbnQuZGVzY3JpcHRpb24oInt7LnBsYXlsaXN0LnR1bmVyLmRlc2NyaXB0aW9ufX0iKTsNCiAgICAgICAgICAgIC8vIEludGVyYWN0aW9uDQogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUludGVyYWN0aW9uKCk7DQogICAgICAgICAgICAvLyBEZWxldGUNCiAgICAgICAgICAgIGlmIChkYXRhWyJpZC5wcm92aWRlciJdICE9ICItIikgew0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJkZWxldGUiLCAie3suYnV0dG9uLmRlbGV0ZX19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoImhkaHIiLCAiJyArIGlkICsgJyIsIHRydWUsIDApJyk7DQogICAgICAgICAgICAgICAgaW5wdXQuY2xhc3NOYW1lID0gImRlbGV0ZSI7DQogICAgICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAiYmFjayIsICJ7ey5idXR0b24uYmFja319Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgicGxheWxpc3QiKScpOw0KICAgICAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgLy8gQWJvcnQNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJjYW5jZWwiLCAie3suYnV0dG9uLmNhbmNlbH19Iik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogc2hvd0VsZW1lbnQoInBvcHVwIiwgZmFsc2UpOycpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICAvLyBVcGRhdGUNCiAgICAgICAgICAgIGlmIChkYXRhWyJpZC5wcm92aWRlciJdICE9ICItIikgew0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJ1cGRhdGUiLCAie3suYnV0dG9uLnVwZGF0ZX19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoImhkaHIiLCAiJyArIGlkICsgJyIsIGZhbHNlLCAxKScpOw0KICAgICAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgLy8gU2F2ZQ0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgInNhdmUiLCAie3suYnV0dG9uLnNhdmV9fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoImhkaHIiLCAiJyArIGlkICsgJyIsIGZhbHNlLCAwKScpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSAiZmlsdGVyIjoNCiAgICAgICAgICAgIGNvbnRlbnQuY3JlYXRlSGVhZGxpbmUoZGF0YVR5cGUpOw0KICAgICAgICAgICAgLy8gVHlwZQ0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gInR5cGUiOw0KICAgICAgICAgICAgdmFyIHRleHQgPSBbIk0zVTogIiArICJ7ey5maWx0ZXIudHlwZS5ncm91cFRpdGxlfX0iLCAieFRlVmU6ICIgKyAie3suZmlsdGVyLnR5cGUuY3VzdG9tRmlsdGVyfX0iXTsNCiAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBbImphdmFzY3JpcHQ6IG9wZW5Qb3BVcCgnZ3JvdXAtdGl0bGUnKSIsICJqYXZhc2NyaXB0OiBvcGVuUG9wVXAoJ2N1c3RvbS1maWx0ZXInKSJdOw0KICAgICAgICAgICAgdmFyIHNlbGVjdCA9IGNvbnRlbnQuY3JlYXRlU2VsZWN0KHRleHQsIHZhbHVlcywgImphdmFzY3JpcHQ6IG9wZW5Qb3BVcCgnZ3JvdXAtdGl0bGUnKSIsIGRiS2V5KTsNCiAgICAgICAgICAgIHNlbGVjdC5zZXRBdHRyaWJ1dGUoImlkIiwgaWQpOw0KICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAnamF2YXNjcmlwdDogY2hhbmdlQnV0dG9uQWN0aW9uKHRoaXMsICJuZXh0IiwgIm9uY2xpY2siKTsnKTsgLy8gY2hhbmdlQnV0dG9uQWN0aW9uDQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3suZmlsdGVyLnR5cGUudGl0bGV9fSIsIHNlbGVjdCk7DQogICAgICAgICAgICAvLyBJbnRlcmFjdGlvbg0KICAgICAgICAgICAgY29udGVudC5jcmVhdGVJbnRlcmFjdGlvbigpOw0KICAgICAgICAgICAgLy8gQWJvcnQNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJjYW5jZWwiLCAie3suYnV0dG9uLmNhbmNlbH19Iik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogc2hvd0VsZW1lbnQoInBvcHVwIiwgZmFsc2UpOycpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICAvLyBOZXh0DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAibmV4dCIsICJ7ey5idXR0b24ubmV4dH19Iik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJncm91cC10aXRsZSIpJyk7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoImlkIiwgJ25leHQnKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGNhc2UgImN1c3RvbS1maWx0ZXIiOg0KICAgICAgICBjYXNlICJncm91cC10aXRsZSI6DQogICAgICAgICAgICBzd2l0Y2ggKGRhdGFUeXBlKSB7DQogICAgICAgICAgICAgICAgY2FzZSAiY3VzdG9tLWZpbHRlciI6DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuY3JlYXRlSGVhZGxpbmUoInt7LmZpbHRlci5jdXN0b219fSIgKyAiIEZpbHRlciIpOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBjYXNlICJncm91cC10aXRsZSI6DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuY3JlYXRlSGVhZGxpbmUoInt7LmZpbHRlci5ncm91cH19IiArICIgRmlsdGVyIik7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgLy8gTmFtZSAgICAgIA0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gIm5hbWUiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LmZpbHRlci5uYW1lLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5maWx0ZXIubmFtZS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgLy8gRGVzY3JpcHRpb24NCiAgICAgICAgICAgIHZhciBkYktleSA9ICJkZXNjcmlwdGlvbiI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3suZmlsdGVyLmRlc2NyaXB0aW9uLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5maWx0ZXIuZGVzY3JpcHRpb24udGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIFR5cGUNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJ0eXBlIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImhpZGRlbiIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygiIiwgaW5wdXQpOw0KICAgICAgICAgICAgdmFyIGZpbHRlclR5cGUgPSBkYXRhW2RiS2V5XTsNCiAgICAgICAgICAgIHN3aXRjaCAoZmlsdGVyVHlwZSkgew0KICAgICAgICAgICAgICAgIGNhc2UgImN1c3RvbS1maWx0ZXIiOg0KICAgICAgICAgICAgICAgICAgICAvLyBDYXNlIHNlbnNpdGl2ZQ0KICAgICAgICAgICAgICAgICAgICB2YXIgZGJLZXkgPSAiY2FzZVNlbnNpdGl2ZSI7DQogICAgICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goZGJLZXkpOw0KICAgICAgICAgICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YVtkYktleV07DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5maWx0ZXIuY2FzZVNlbnNpdGl2ZS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgICAgICAgICAvLyBGaWx0ZXIgUnVsZSAoQ3VzdG9tKQ0KICAgICAgICAgICAgICAgICAgICB2YXIgZGJLZXkgPSAiZmlsdGVyIjsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3suZmlsdGVyLmZpbHRlclJ1bGUucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3suZmlsdGVyLmZpbHRlclJ1bGUudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAiZ3JvdXAtdGl0bGUiOg0KICAgICAgICAgICAgICAgICAgICAvL2FsZXJ0KGRiS2V5ICsgIiAiICsgZmlsdGVyVHlwZSkNCiAgICAgICAgICAgICAgICAgICAgLy8gRmlsdGVyIGJhc2VkIG9uIHRoZSBncm91cHMgaW4gdGhlIE0zVQ0KICAgICAgICAgICAgICAgICAgICB2YXIgZGJLZXkgPSAiZmlsdGVyIjsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGdyb3Vwc00zVSA9IGdldExvY2FsRGF0YSgibTN1R3JvdXBzIiwgIiIpOw0KICAgICAgICAgICAgICAgICAgICB2YXIgdGV4dCA9IGdyb3Vwc00zVVsidGV4dCJdOw0KICAgICAgICAgICAgICAgICAgICB2YXIgdmFsdWVzID0gZ3JvdXBzTTNVWyJ2YWx1ZSJdOw0KICAgICAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCBkYXRhW2RiS2V5XSwgZGJLZXkpOw0KICAgICAgICAgICAgICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3suZmlsdGVyLmZpbHRlckdyb3VwLnRpdGxlfX0iLCBzZWxlY3QpOw0KICAgICAgICAgICAgICAgICAgICBjb250ZW50LmRlc2NyaXB0aW9uKCJ7ey5maWx0ZXIuZmlsdGVyR3JvdXAuZGVzY3JpcHRpb259fSIpOw0KICAgICAgICAgICAgICAgICAgICAvLyBDYXNlIHNlbnNldGl2ZQ0KICAgICAgICAgICAgICAgICAgICB2YXIgZGJLZXkgPSAiY2FzZVNlbnNpdGl2ZSI7DQogICAgICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goZGJLZXkpOw0KICAgICAgICAgICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YVtkYktleV07DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5maWx0ZXIuY2FzZVNlbnNpdGl2ZS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgICAgICAgICB2YXIgZGJLZXkgPSAiaW5jbHVkZSI7DQogICAgICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LmZpbHRlci5pbmNsdWRlLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LmZpbHRlci5pbmNsdWRlLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuZGVzY3JpcHRpb24oInt7LmZpbHRlci5pbmNsdWRlLmRlc2NyaXB0aW9ufX0iKTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGRiS2V5ID0gImV4Y2x1ZGUiOw0KICAgICAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5maWx0ZXIuZXhjbHVkZS5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5maWx0ZXIuZXhjbHVkZS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgICAgICAgICBjb250ZW50LmRlc2NyaXB0aW9uKCJ7ey5maWx0ZXIuZXhjbHVkZS5kZXNjcmlwdGlvbn19Iik7DQogICAgICAgICAgICAgICAgICAgIC8vIFByZXNlcnZlIE0zVSBQbGF5bGlzdCBDaGFubmVsIE1hcHBpbmcNCiAgICAgICAgICAgICAgICAgICAgdmFyIGRiS2V5ID0gInByZXNlcnZlTWFwcGluZyI7DQogICAgICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goZGJLZXkpOw0KICAgICAgICAgICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YVtkYktleV07DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5maWx0ZXIucHJlc2VydmVNYXBwaW5nLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAgICAgICAgIC8vIFN0YXJ0aW5nIENoYW5uZWwgTnVtYmVyIE1hcHBpbmcNCiAgICAgICAgICAgICAgICAgICAgdmFyIGRiS2V5ID0gInN0YXJ0aW5nQ2hhbm5lbCI7DQogICAgICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LmZpbHRlci5zdGFydGluZ0NoYW5uZWwucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3suZmlsdGVyLnN0YXJ0aW5nQ2hhbm5lbC50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgICAgICAgICAvLyBGaWxsIE1pc3NpbmcgRVBHIERhdGENCiAgICAgICAgICAgICAgICAgICAgLy8gVGhlIGZvbGxvd2luZyBjb2RlIG9ubHkgd29ya3Mgd2hlbiB4VGVWZSBEdW1teSBhbHJlYWR5IGV4aXN0cw0KICAgICAgICAgICAgICAgICAgICAvLyB2YXIgZGJLZXk6c3RyaW5nID0gImRlZmF1bHRNaXNzaW5nRVBHIg0KICAgICAgICAgICAgICAgICAgICAvLyB2YXIgeG1sdHY6WE1MVFZGaWxlID0gbmV3IFhNTFRWRmlsZSgpDQogICAgICAgICAgICAgICAgICAgIC8vIHZhciBzZWxlY3QgPSB4bWx0di5nZXRQcm9ncmFtcygieFRlVmUgRHVtbXkiLCBkYXRhW2RiS2V5XSkNCiAgICAgICAgICAgICAgICAgICAgLy8gc2VsZWN0LnNldEF0dHJpYnV0ZSgibmFtZSIsIGRiS2V5KQ0KICAgICAgICAgICAgICAgICAgICAvLyBzZWxlY3Quc2V0QXR0cmlidXRlKCJpZCIsICJwb3B1cC1taXNzaW5nLWVwZyIpDQogICAgICAgICAgICAgICAgICAgIC8vIFRoZSB3b3JrYXJvdW5kIGlzIGN1cnJlbnRseSB0byBoYXJkIGNvZGUgdGhlIHhUZVZlIER1bW15IGRhdGENCiAgICAgICAgICAgICAgICAgICAgdmFyIGRiS2V5ID0gImRlZmF1bHRNaXNzaW5nRVBHIjsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGxpc3RPcHRpb25zID0geyAidGV4dCI6IFsiLSIsICIzMCBNaW51dGVzICgzMF9NaW51dGVzKSIsICI2MCBNaW51dGVzICg2MF9NaW51dGVzKSIsICI5MCBNaW51dGVzICg5MF9NaW51dGVzKSIsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgIjEyMCBNaW51dGVzICgxMjBfTWludXRlcykiLCAiMTgwIE1pbnV0ZXMgKDMwX01pbnV0ZXMpIiwgIjI0MCBNaW51dGVzICgzMF9NaW51dGVzKSIsICIzNjAgTWludXRlcyAoMzBfTWludXRlcykiXSwNCiAgICAgICAgICAgICAgICAgICAgICAgICJ2YWx1ZSI6IFsiLSIsICIzMF9NaW51dGVzIiwgIjYwX01pbnV0ZXMiLCAiOTBfTWludXRlcyIsICIxMjBfTWludXRlcyIsICIxODBfTWludXRlcyIsICIyNDBfTWludXRlcyIsICIzNjBfTWludXRlcyIsXSB9Ow0KICAgICAgICAgICAgICAgICAgICB2YXIgdGV4dCA9IGxpc3RPcHRpb25zWyJ0ZXh0Il07DQogICAgICAgICAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBsaXN0T3B0aW9uc1sidmFsdWUiXTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHNlbGVjdCA9IGNvbnRlbnQuY3JlYXRlU2VsZWN0KHRleHQsIHZhbHVlcywgZGF0YVtkYktleV0sIGRiS2V5KTsNCiAgICAgICAgICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LmZpbHRlci5kZWZhdWx0TWlzc2luZ0VQRy50aXRsZX19Iiwgc2VsZWN0KTsNCiAgICAgICAgICAgICAgICAgICAgY29udGVudC5kZXNjcmlwdGlvbigie3suZmlsdGVyLmRlZmF1bHRNaXNzaW5nRVBHLmRlc2NyaXB0aW9ufX0iKTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICB9DQogICAgICAgICAgICAvLyBJbnRlcmFjdGlvbg0KICAgICAgICAgICAgY29udGVudC5jcmVhdGVJbnRlcmFjdGlvbigpOw0KICAgICAgICAgICAgLy8gRGVsZXRlDQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAiZGVsZXRlIiwgInt7LmJ1dHRvbi5kZWxldGV9fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoImZpbHRlciIsICInICsgaWQgKyAnIiwgdHJ1ZSwgMCknKTsNCiAgICAgICAgICAgIGlucHV0LmNsYXNzTmFtZSA9ICJkZWxldGUiOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICAvLyBBYm9ydA0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImNhbmNlbCIsICJ7ey5idXR0b24uY2FuY2VsfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBzaG93RWxlbWVudCgicG9wdXAiLCBmYWxzZSk7Jyk7DQogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIC8vIFNhdmUNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJzYXZlIiwgInt7LmJ1dHRvbi5zYXZlfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBzYXZlUG9wdXBEYXRhKCJmaWx0ZXIiLCAiJyArIGlkICsgJyIsIGZhbHNlLCAwKScpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSAieG1sdHYiOg0KICAgICAgICAgICAgY29udGVudC5jcmVhdGVIZWFkbGluZShkYXRhVHlwZSk7DQogICAgICAgICAgICAvLyBOYW1lDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAibmFtZSI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3sueG1sdHYubmFtZS5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sueG1sdHYubmFtZS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgLy8gRGVzY3JpcHRpb24NCiAgICAgICAgICAgIHZhciBkYktleSA9ICJkZXNjcmlwdGlvbiI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3sueG1sdHYuZGVzY3JpcHRpb24ucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnhtbHR2LmRlc2NyaXB0aW9uLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBVUkwNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJmaWxlLnNvdXJjZSI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3sueG1sdHYuZmlsZVhNTFRWLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey54bWx0di5maWxlWE1MVFYudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIEludGVyYWN0aW9uDQogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUludGVyYWN0aW9uKCk7DQogICAgICAgICAgICAvLyBEZWxldGUNCiAgICAgICAgICAgIGlmIChkYXRhWyJpZC5wcm92aWRlciJdICE9ICItIikgew0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJkZWxldGUiLCAie3suYnV0dG9uLmRlbGV0ZX19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoInhtbHR2IiwgIicgKyBpZCArICciLCB0cnVlLCAwKScpOw0KICAgICAgICAgICAgICAgIGlucHV0LmNsYXNzTmFtZSA9ICJkZWxldGUiOw0KICAgICAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgLy8gQWJvcnQNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJjYW5jZWwiLCAie3suYnV0dG9uLmNhbmNlbH19Iik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogc2hvd0VsZW1lbnQoInBvcHVwIiwgZmFsc2UpOycpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICAvLyBVcGRhdGUNCiAgICAgICAgICAgIGlmIChkYXRhWyJpZC5wcm92aWRlciJdICE9ICItIikgew0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJ1cGRhdGUiLCAie3suYnV0dG9uLnVwZGF0ZX19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoInhtbHR2IiwgIicgKyBpZCArICciLCBmYWxzZSwgMSknKTsNCiAgICAgICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIC8vIFNhdmUNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJzYXZlIiwgInt7LmJ1dHRvbi5zYXZlfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBzYXZlUG9wdXBEYXRhKCJ4bWx0diIsICInICsgaWQgKyAnIiwgZmFsc2UsIDApJyk7DQogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJ1c2VycyI6DQogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUhlYWRsaW5lKCJ7ey5tYWluTWVudS5pdGVtLnVzZXJzfX0iKTsNCiAgICAgICAgICAgIC8vIFVzZXIgbmFtZQ0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gInVzZXJuYW1lIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey51c2Vycy51c2VybmFtZS5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sudXNlcnMudXNlcm5hbWUudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIE5ldyBQYXJzc3dvcmQNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJwYXNzd29yZCI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJwYXNzd29yZCIsIGRiS2V5LCAiIik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnVzZXJzLnBhc3N3b3JkLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey51c2Vycy5wYXNzd29yZC50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgLy8gQ29uZmlybWF0aW9uDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAiY29uZmlybSI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJwYXNzd29yZCIsIGRiS2V5LCAiIik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnVzZXJzLmNvbmZpcm0ucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnVzZXJzLmNvbmZpcm0udGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIEF1dGhlbnRpY2F0aW9uIFdFQg0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gImF1dGhlbnRpY2F0aW9uLndlYiI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KGRiS2V5KTsNCiAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhW2RiS2V5XTsNCiAgICAgICAgICAgIGlmIChkYXRhWyJkZWZhdWx0VXNlciJdID09IHRydWUpIHsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAiamF2YXNjcmlwdDogcmV0dXJuIGZhbHNlIik7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sudXNlcnMud2ViLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBBdXRoZW50aWNhdGlvbiBQTVMNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJhdXRoZW50aWNhdGlvbi5wbXMiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChkYktleSk7DQogICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YVtkYktleV07DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sudXNlcnMucG1zLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBBdXRoZW50aWNhdGlvbiBNM1UNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJhdXRoZW50aWNhdGlvbi5tM3UiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChkYktleSk7DQogICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YVtkYktleV07DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sudXNlcnMubTN1LnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBBdXRoZW50aWNhdGlvbiBYTUwNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJhdXRoZW50aWNhdGlvbi54bWwiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChkYktleSk7DQogICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YVtkYktleV07DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sudXNlcnMueG1sLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBBdXRoZW50aWNhdGlvbiBBUEkNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJhdXRoZW50aWNhdGlvbi5hcGkiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChkYktleSk7DQogICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YVtkYktleV07DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sudXNlcnMuYXBpLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBJbnRlcmFjdGlvbg0KICAgICAgICAgICAgY29udGVudC5jcmVhdGVJbnRlcmFjdGlvbigpOw0KICAgICAgICAgICAgLy8gRGVsZXRlDQogICAgICAgICAgICBpZiAoZGF0YVsiZGVmYXVsdFVzZXIiXSAhPSB0cnVlICYmIGlkICE9ICItIikgew0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJkZWxldGUiLCAie3suYnV0dG9uLmRlbGV0ZX19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuY2xhc3NOYW1lID0gImRlbGV0ZSI7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoIicgKyBkYXRhVHlwZSArICciLCAiJyArIGlkICsgJyIsIHRydWUsIDApJyk7DQogICAgICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICAvLyBBYm9ydA0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImNhbmNlbCIsICJ7ey5idXR0b24uY2FuY2VsfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBzaG93RWxlbWVudCgicG9wdXAiLCBmYWxzZSk7Jyk7DQogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIC8vIFNhdmUNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJzYXZlIiwgInt7LmJ1dHRvbi5zYXZlfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBzYXZlUG9wdXBEYXRhKCInICsgZGF0YVR5cGUgKyAnIiwgIicgKyBpZCArICciLCAiZmFsc2UiKTsnKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGNhc2UgIm1hcHBpbmciOg0KICAgICAgICAgICAgY29udGVudC5jcmVhdGVIZWFkbGluZSgie3subWFpbk1lbnUuaXRlbS5tYXBwaW5nfX0iKTsNCiAgICAgICAgICAgIC8vIEFjdGl2ZQ0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gIngtYWN0aXZlIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goZGJLZXkpOw0KICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGFbZGJLZXldOw0KICAgICAgICAgICAgaW5wdXQuaWQgPSAiYWN0aXZlIjsNCiAgICAgICAgICAgIC8vaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpDQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRvZ2dsZUNoYW5uZWxTdGF0dXMoJyIgKyBpZCArICInLCB0aGlzKSIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7Lm1hcHBpbmcuYWN0aXZlLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBDaGFubmVsIG5hbWUNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJ4LW5hbWUiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICBpZiAoQlVMS19FRElUID09IHRydWUpIHsNCiAgICAgICAgICAgICAgICBpbnB1dC5zdHlsZS5ib3JkZXIgPSAic29saWQgMXB4IHJlZCI7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJyZWFkb25seSIsICJ0cnVlIik7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3subWFwcGluZy5jaGFubmVsTmFtZS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgY29udGVudC5kZXNjcmlwdGlvbihkYXRhWyJuYW1lIl0pOw0KICAgICAgICAgICAgLy8gRGVzY3JpcHRpb24NCiAgICAgICAgICAgIHZhciBkYktleSA9ICJ4LWRlc2NyaXB0aW9uIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5tYXBwaW5nLmRlc2NyaXB0aW9uLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5tYXBwaW5nLmRlc2NyaXB0aW9uLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBVcGRhdGUgdGhlIGNoYW5uZWwgbmFtZQ0KICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoIl91dWlkLmtleSIpKSB7DQogICAgICAgICAgICAgICAgaWYgKGRhdGFbIl91dWlkLmtleSJdICE9ICIiKSB7DQogICAgICAgICAgICAgICAgICAgIHZhciBkYktleSA9ICJ4LXVwZGF0ZS1jaGFubmVsLW5hbWUiOw0KICAgICAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KGRiS2V5KTsNCiAgICAgICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YVtkYktleV07DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5tYXBwaW5nLnVwZGF0ZUNoYW5uZWxOYW1lLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgLy8gTG9nbyBVUkwgKENoYW5uZWwpIA0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gInR2Zy1sb2dvIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJpZCIsICJjaGFubmVsLWljb24iKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5tYXBwaW5nLmNoYW5uZWxMb2dvLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBDaGFubmVsIGxvZ28gdXBkYXRlDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAieC11cGRhdGUtY2hhbm5lbC1pY29uIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goZGJLZXkpOw0KICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGFbZGJLZXldOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJpZCIsICJ1cGRhdGUtaWNvbiIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJzsgY2hhbmdlQ2hhbm5lbExvZ28oJyIgKyBpZCArICInKTsiKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5tYXBwaW5nLnVwZGF0ZUNoYW5uZWxMb2dvLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBFeHBhbmQgRVBHIGNhdGVnb3J5DQogICAgICAgICAgICB2YXIgZGJLZXkgPSAieC1jYXRlZ29yeSI7DQogICAgICAgICAgICB2YXIgdGV4dCA9IFsiLSIsICJLaWRzIChFbWJ5IG9ubHkpIiwgIk5ld3MiLCAiTW92aWUiLCAiU2VyaWVzIiwgIlNwb3J0cyJdOw0KICAgICAgICAgICAgdmFyIHZhbHVlcyA9IFsiIiwgIktpZHMiLCAiTmV3cyIsICJNb3ZpZSIsICJTZXJpZXMiLCAiU3BvcnRzIl07DQogICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCBkYXRhW2RiS2V5XSwgZGJLZXkpOw0KICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5tYXBwaW5nLmVwZ0NhdGVnb3J5LnRpdGxlfX0iLCBzZWxlY3QpOw0KICAgICAgICAgICAgLy8gTTNVIGdyb3VwIHRpdGxlDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAieC1ncm91cC10aXRsZSI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgIGlucHV0LmRhdGFzZXQub2xkVmFsdWUgPSBkYXRhW2RiS2V5XTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5tYXBwaW5nLm0zdUdyb3VwVGl0bGUudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIGlmIChkYXRhWyJncm91cC10aXRsZSJdICE9IHVuZGVmaW5lZCkgew0KICAgICAgICAgICAgICAgIGNvbnRlbnQuZGVzY3JpcHRpb24oZGF0YVsiZ3JvdXAtdGl0bGUiXSk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBpZiAoZGF0YVsieC11cGRhdGUtY2hhbm5lbC1ncm91cCJdID09IHRydWUpIHsNCiAgICAgICAgICAgICAgICBpbnB1dC5kaXNhYmxlZCA9IHRydWU7DQogICAgICAgICAgICB9DQogICAgICAgICAgICAvLyBVcGRhdGUgY2hhbm5lbCBncm91cCBjaGVja2JveA0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gIngtdXBkYXRlLWNoYW5uZWwtZ3JvdXAiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChkYktleSk7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRvZ2dsZUdyb3VwVXBkYXRlQ2IoJyIgKyBpZCArICInLCB0aGlzKTsiKTsNCiAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhW2RiS2V5XTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5tYXBwaW5nLnVwZGF0ZUNoYW5uZWxHcm91cC50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgY29udGVudC5kZXNjcmlwdGlvbigie3subWFwcGluZy51cGRhdGVDaGFubmVsR3JvdXAuZGVzY3JpcHRpb259fSIpOw0KICAgICAgICAgICAgLy8gWE1MVFYgZmlsZQ0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gJ3gteG1sdHYtZmlsZSc7DQogICAgICAgICAgICBjb25zdCB4bWxUdkZpbGUgPSBkYXRhW2RiS2V5XTsNCiAgICAgICAgICAgIHZhciB4bWxUdiA9IG5ldyBYTUxUVkZpbGUoKTsNCiAgICAgICAgICAgIGNvbnN0IHhtbFR2RmlsZVNlbGVjdCA9IHhtbFR2LmdldEZpbGVzKGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIHhtbFR2RmlsZVNlbGVjdC5zZXRBdHRyaWJ1dGUoJ25hbWUnLCBkYktleSk7DQogICAgICAgICAgICB4bWxUdkZpbGVTZWxlY3Quc2V0QXR0cmlidXRlKCdpZCcsICdwb3B1cC14bWx0dicpOw0KICAgICAgICAgICAgeG1sVHZGaWxlU2VsZWN0LnNldEF0dHJpYnV0ZSgnb25jaGFuZ2UnLCBgamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCc7IHNldFhtbHR2Q2hhbm5lbCgnJHtpZH0nLCB0aGlzKTtgKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCd7ey5tYXBwaW5nLnhtbHR2RmlsZS50aXRsZX19JywgeG1sVHZGaWxlU2VsZWN0KTsNCiAgICAgICAgICAgIC8vIFhNTFRWIE1hcHBpbmcNCiAgICAgICAgICAgIHZhciBkYktleSA9ICd4LW1hcHBpbmcnOw0KICAgICAgICAgICAgdmFyIHhtbFR2ID0gbmV3IFhNTFRWRmlsZSgpOw0KICAgICAgICAgICAgY29uc3QgY3VycmVudFhtbFR2SWQgPSBkYXRhW2RiS2V5XTsNCiAgICAgICAgICAgIGNvbnN0IFt4bWxUdklkQ29udGFpbmVyLCB4bWxUdklkSW5wdXQsIHhtbFR2SWREYXRhbGlzdF0gPSB4bWxUdi5uZXdYbWxUdklkUGlja2VyKHhtbFR2RmlsZSwgY3VycmVudFhtbFR2SWQpOw0KICAgICAgICAgICAgeG1sVHZJZENvbnRhaW5lci5zZXRBdHRyaWJ1dGUoJ2lkJywgJ3htbHR2LWlkLXBpY2tlci1jb250YWluZXInKTsNCiAgICAgICAgICAgIHhtbFR2SWRJbnB1dC5zZXRBdHRyaWJ1dGUoJ2xpc3QnLCAneG1sdHYtaWQtcGlja2VyLWRhdGFsaXN0Jyk7DQogICAgICAgICAgICB4bWxUdklkSW5wdXQuc2V0QXR0cmlidXRlKCduYW1lJywgJ3gtbWFwcGluZycpOyAvLyBTaG91bGQgc3RheSB4LW1hcHBpbmcgYXMgaXQgd2lsbCBiZSB1c2VkIGluIGRvbmVQb3B1cERhdGEgdG8gbWFrZSBhIHNlcnZlciByZXF1ZXN0DQogICAgICAgICAgICB4bWxUdklkSW5wdXQuc2V0QXR0cmlidXRlKCdpZCcsICd4bWx0di1pZC1waWNrZXItaW5wdXQnKTsNCiAgICAgICAgICAgIHhtbFR2SWRJbnB1dC5zZXRBdHRyaWJ1dGUoJ29uY2hhbmdlJywgYGphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnOyBjaGVja1htbHR2Q2hhbm5lbCgnJHtpZH0nLCB0aGlzLCAnJHt4bWxUdkZpbGV9Jyk7YCk7DQogICAgICAgICAgICB4bWxUdklkRGF0YWxpc3Quc2V0QXR0cmlidXRlKCdpZCcsICd4bWx0di1pZC1waWNrZXItZGF0YWxpc3QnKTsNCiAgICAgICAgICAgIC8vIHNvcnRTZWxlY3QoeG1sVHZJZERhdGFsaXN0KTsgLy8gVE9ETzogQmV0dGVyIHNvcnQgYmVmb3JlIGFkZGluZw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coJ3t7Lm1hcHBpbmcueG1sdHZDaGFubmVsLnRpdGxlfX0nLCB4bWxUdklkQ29udGFpbmVyKTsNCiAgICAgICAgICAgIC8vIFRpbWVzaGlmdA0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gIngtdGltZXNoaWZ0IjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5tYXBwaW5nLnRpbWVzaGlmdC5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoImlkIiwgInRpbWVzaGlmdCIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7Lm1hcHBpbmcudGltZXNoaWZ0LnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBJbnRlcmFjdGlvbg0KICAgICAgICAgICAgY29udGVudC5jcmVhdGVJbnRlcmFjdGlvbigpOw0KICAgICAgICAgICAgLy8gVXBsb2FkIGxvZ28NCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJjYW5jZWwiLCAie3suYnV0dG9uLnVwbG9hZExvZ299fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IHVwbG9hZExvZ28oKTsnKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgLy8gQWJvcnQNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJjYW5jZWwiLCAie3suYnV0dG9uLmNhbmNlbH19Iik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogc2hvd0VsZW1lbnQoInBvcHVwIiwgZmFsc2UpOycpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICAvLyBGaW5pc2hlZA0KICAgICAgICAgICAgdmFyIGlkcyA9IFtdOw0KICAgICAgICAgICAgaWRzID0gZ2V0QWxsU2VsZWN0ZWRDaGFubmVscygpOw0KICAgICAgICAgICAgaWYgKGlkcy5sZW5ndGggPT0gMCkgew0KICAgICAgICAgICAgICAgIGlkcy5wdXNoKGlkKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJzYXZlIiwgInt7LmJ1dHRvbi5kb25lfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBkb25lUG9wdXBEYXRhKCInICsgZGF0YVR5cGUgKyAnIiwgIicgKyBpZHMgKyAnIiwgImZhbHNlIik7Jyk7DQogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBkZWZhdWx0Og0KICAgICAgICAgICAgYnJlYWs7DQogICAgfQ0KICAgIHNob3dQb3BVcEVsZW1lbnQoJ3BvcHVwLWN1c3RvbScpOw0KfQ0KY2xhc3MgWE1MVFZGaWxlIHsNCiAgICBnZXRGaWxlcyhzZXQpIHsNCiAgICAgICAgbGV0IGZpbGVJRHMgPSBnZXRPd25PYmpQcm9wcyhTRVJWRVJbInhlcGciXVsieG1sdHZNYXAiXSk7DQogICAgICAgIGxldCB2YWx1ZXMgPSBuZXcgQXJyYXkoIi0iKTsNCiAgICAgICAgbGV0IHRleHQgPSBuZXcgQXJyYXkoIi0iKTsNCiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBmaWxlSURzLmxlbmd0aDsgaSsrKSB7DQogICAgICAgICAgICBpZiAoZmlsZUlEc1tpXSAhPSAieFRlVmUgRHVtbXkiKSB7DQogICAgICAgICAgICAgICAgdmFsdWVzLnB1c2goZ2V0VmFsdWVGcm9tUHJvdmlkZXJGaWxlKGZpbGVJRHNbaV0sICJ4bWx0diIsICJmaWxlLnh0ZXZlIikpOw0KICAgICAgICAgICAgICAgIHRleHQucHVzaChnZXRWYWx1ZUZyb21Qcm92aWRlckZpbGUoZmlsZUlEc1tpXSwgInhtbHR2IiwgIm5hbWUiKSk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICB2YWx1ZXMucHVzaChmaWxlSURzW2ldKTsNCiAgICAgICAgICAgICAgICB0ZXh0LnB1c2goZmlsZUlEc1tpXSk7DQogICAgICAgICAgICB9DQogICAgICAgIH0NCiAgICAgICAgbGV0IHNlbGVjdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlNFTEVDVCIpOw0KICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRleHQubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgICAgIHZhciBvcHRpb24gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJPUFRJT04iKTsNCiAgICAgICAgICAgIG9wdGlvbi5zZXRBdHRyaWJ1dGUoInZhbHVlIiwgdmFsdWVzW2ldKTsNCiAgICAgICAgICAgIG9wdGlvbi5pbm5lclRleHQgPSB0ZXh0W2ldOw0KICAgICAgICAgICAgc2VsZWN0LmFwcGVuZENoaWxkKG9wdGlvbik7DQogICAgICAgIH0NCiAgICAgICAgaWYgKHNldCAhPSAiIikgew0KICAgICAgICAgICAgc2VsZWN0LnZhbHVlID0gc2V0Ow0KICAgICAgICB9DQogICAgICAgIHJldHVybiBzZWxlY3Q7DQogICAgfQ0KICAgIC8vIFRPRE86IERpc3BsYXkgRlVMTCBsaXN0LCBzZWU6DQogICAgLy8gPiBodHRwczovL3N0YWNrb3ZlcmZsb3cuY29tL3F1ZXN0aW9ucy8zNzQ3ODcyNy9ob3ctY2FuLWktbWFrZS1hLWJyb3dzZXItZGlzcGxheS1hbGwtZGF0YWxpc3Qtb3B0aW9ucy13aGVuLWEtZGVmYXVsdC12YWx1ZS1pcy1zZQ0KICAgIC8vID4gaHR0cHM6Ly93d3cuaG9uZ2tpYXQuY29tL2Jsb2cvc2VhcmNoLXNlbGVjdC11c2luZy1kYXRhbGlzdC8NCiAgICAvLyA+IGh0dHBzOi8vanF1ZXJ5dWkuY29tL2F1dG9jb21wbGV0ZS8jY29tYm9ib3ggT1IgaHR0cHM6Ly9zZWxlY3QyLm9yZy9kcm9wZG93bg0KICAgIC8qKg0KICAgICAqIEBwYXJhbSB4bWxUdkZpbGUgWE1MIGZpbGUgcGF0aCB0byBnZXQgRVBHIGZyb20uDQogICAgICogQHBhcmFtIGN1cnJlbnRYbWxUdklkIEN1cnJlbnQgWE1MVFYgSUQgdG8gc2V0IGluaXRpYWwgaW5wdXQgdmFsdWUgdG8uDQogICAgICogQHJldHVybnMgQXJyYXkgb2YsIHNlcXVlbnRpYWxseToNCiAgICAgKiAxKSBDb250YWluZXIgb2YgdGhlIHBpY2tlci4NCiAgICAgKiAyKSBJbnB1dCBmaWVsZCB0byB0eXBlIGF0IGFuZCBnZXQgY2hvaWNlIGZyb20uDQogICAgICogMykgRGF0YWxpc3QgY29udGFpbmluZyBldmVyeSBvcHRpb24uDQogICAgICovDQogICAgbmV3WG1sVHZJZFBpY2tlcih4bWxUdkZpbGUsIGN1cnJlbnRYbWxUdklkKSB7DQogICAgICAgIGNvbnN0IGNvbnRhaW5lciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOw0KICAgICAgICBjb25zdCBpbnB1dCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2lucHV0Jyk7DQogICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgndHlwZScsICd0ZXh0Jyk7DQogICAgICAgIGlucHV0LnZhbHVlID0gY3VycmVudFhtbFR2SWQgPyBjdXJyZW50WG1sVHZJZCA6ICctJzsNCiAgICAgICAgY29udGFpbmVyLmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgY29uc3QgZGF0YWxpc3QgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkYXRhbGlzdCcpOw0KICAgICAgICBjb25zdCBvcHRpb24gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdvcHRpb24nKTsNCiAgICAgICAgb3B0aW9uLnNldEF0dHJpYnV0ZSgndmFsdWUnLCAnLScpOw0KICAgICAgICBvcHRpb24uaW5uZXJUZXh0ID0gJy0nOw0KICAgICAgICBkYXRhbGlzdC5hcHBlbmRDaGlsZChvcHRpb24pOw0KICAgICAgICBjb25zdCBlcGcgPSBTRVJWRVJbJ3hlcGcnXVsneG1sdHZNYXAnXVt4bWxUdkZpbGVdOw0KICAgICAgICBpZiAoZXBnKSB7DQogICAgICAgICAgICBjb25zdCBwcm9ncmFtSWRzID0gZ2V0T3duT2JqUHJvcHMoZXBnKTsNCiAgICAgICAgICAgIHByb2dyYW1JZHMuZm9yRWFjaCgocHJvZ3JhbUlkKSA9PiB7DQogICAgICAgICAgICAgICAgY29uc3QgcHJvZ3JhbSA9IGVwZ1twcm9ncmFtSWRdOw0KICAgICAgICAgICAgICAgIGlmIChwcm9ncmFtLmhhc093blByb3BlcnR5KCdkaXNwbGF5LW5hbWVzJykpIHsNCiAgICAgICAgICAgICAgICAgICAgcHJvZ3JhbVsnZGlzcGxheS1uYW1lcyddLmZvckVhY2goKGRpc3BsYXlOYW1lKSA9PiB7DQogICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBvcHRpb24gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdvcHRpb24nKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIG9wdGlvbi5zZXRBdHRyaWJ1dGUoJ3ZhbHVlJywgcHJvZ3JhbUlkKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIG9wdGlvbi5pbm5lclRleHQgPSBkaXNwbGF5TmFtZVsnVmFsdWUnXTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGRhdGFsaXN0LmFwcGVuZENoaWxkKG9wdGlvbik7DQogICAgICAgICAgICAgICAgICAgIH0pOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICAgICAgY29uc3Qgb3B0aW9uID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnb3B0aW9uJyk7DQogICAgICAgICAgICAgICAgICAgIG9wdGlvbi5zZXRBdHRyaWJ1dGUoJ3ZhbHVlJywgcHJvZ3JhbUlkKTsNCiAgICAgICAgICAgICAgICAgICAgb3B0aW9uLmlubmVyVGV4dCA9ICctJzsNCiAgICAgICAgICAgICAgICAgICAgZGF0YWxpc3QuYXBwZW5kQ2hpbGQob3B0aW9uKTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9KTsNCiAgICAgICAgfQ0KICAgICAgICBjb250YWluZXIuYXBwZW5kQ2hpbGQoZGF0YWxpc3QpOw0KICAgICAgICByZXR1cm4gW2NvbnRhaW5lciwgaW5wdXQsIGRhdGFsaXN0XTsNCiAgICB9DQp9DQpmdW5jdGlvbiBnZXRWYWx1ZUZyb21Qcm92aWRlckZpbGUoZmlsZSwgZmlsZVR5cGUsIGtleSkgew0KICAgIGlmIChmaWxlID09ICJ4VGVWZSBEdW1teSIpIHsNCiAgICAgICAgcmV0dXJuIGZpbGU7DQogICAgfQ0KICAgIGxldCBmaWxlSUQ7DQogICAgbGV0IGluZGljYXRvciA9IGZpbGUuY2hhckF0KDApOw0KICAgIHN3aXRjaCAoaW5kaWNhdG9yKSB7DQogICAgICAgIGNhc2UgIk0iOg0KICAgICAgICAgICAgZmlsZVR5cGUgPSAibTN1IjsNCiAgICAgICAgICAgIGZpbGVJRCA9IGZpbGU7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSAiSCI6DQogICAgICAgICAgICBmaWxlVHlwZSA9ICJoZGhyIjsNCiAgICAgICAgICAgIGZpbGVJRCA9IGZpbGU7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSAiWCI6DQogICAgICAgICAgICBmaWxlVHlwZSA9ICJ4bWx0diI7DQogICAgICAgICAgICBmaWxlSUQgPSBmaWxlLnN1YnN0cmluZygwLCBmaWxlLmxhc3RJbmRleE9mKCcuJykpOw0KICAgICAgICAgICAgYnJlYWs7DQogICAgfQ0KICAgIGlmIChTRVJWRVJbInNldHRpbmdzIl1bImZpbGVzIl1bZmlsZVR5cGVdLmhhc093blByb3BlcnR5KGZpbGVJRCkgPT0gdHJ1ZSkgew0KICAgICAgICB2YXIgZGF0YSA9IFNFUlZFUlsic2V0dGluZ3MiXVsiZmlsZXMiXVtmaWxlVHlwZV1bZmlsZUlEXTsNCiAgICAgICAgcmV0dXJuIGRhdGFba2V5XTsNCiAgICB9DQogICAgcmV0dXJuOw0KfQ0KZnVuY3Rpb24gc2V0WG1sdHZDaGFubmVsKGVwZ01hcElkLCB4bWxUdkZpbGVTZWxlY3QpIHsNCiAgICBjb25zdCB4bWxUdiA9IG5ldyBYTUxUVkZpbGUoKTsNCiAgICBjb25zdCBuZXdYbWxUdkZpbGUgPSB4bWxUdkZpbGVTZWxlY3QudmFsdWU7DQogICAgLy8gUmVtb3ZlIG9sZCBYTUxUViBJRCBzZWxlY3Rpb24gYm94DQogICAgY29uc3QgeG1sVHZJZFBpY2tlclBhcmVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd4bWx0di1pZC1waWNrZXItY29udGFpbmVyJykucGFyZW50RWxlbWVudDsNCiAgICB4bWxUdklkUGlja2VyUGFyZW50LmlubmVySFRNTCA9ICcnOw0KICAgIC8vIENyZWF0ZSBuZXcgWE1MVFYgSUQgc2VsZWN0aW9uIGJveA0KICAgIGNvbnN0IHR2Z0lkID0gU0VSVkVSWyd4ZXBnJ11bJ2VwZ01hcHBpbmcnXVtlcGdNYXBJZF1bJ3R2Zy1pZCddOw0KICAgIGNvbnN0IFt4bWxUdklkQ29udGFpbmVyLCB4bWxUdklkSW5wdXQsIHhtbFR2SWREYXRhbGlzdF0gPSB4bWxUdi5uZXdYbWxUdklkUGlja2VyKG5ld1htbFR2RmlsZSwgdHZnSWQpOw0KICAgIHhtbFR2SWRDb250YWluZXIuc2V0QXR0cmlidXRlKCdpZCcsICd4bWx0di1pZC1waWNrZXItY29udGFpbmVyJyk7DQogICAgeG1sVHZJZElucHV0LnNldEF0dHJpYnV0ZSgnbGlzdCcsICd4bWx0di1pZC1waWNrZXItZGF0YWxpc3QnKTsNCiAgICB4bWxUdklkSW5wdXQuc2V0QXR0cmlidXRlKCduYW1lJywgJ3gtbWFwcGluZycpOyAvLyBTaG91bGQgc3RheSB4LW1hcHBpbmcgYXMgaXQgd2lsbCBiZSB1c2VkIGluIGRvbmVQb3B1cERhdGEgdG8gbWFrZSBhIHNlcnZlciByZXF1ZXN0DQogICAgeG1sVHZJZElucHV0LnNldEF0dHJpYnV0ZSgnaWQnLCAneG1sdHYtaWQtcGlja2VyLWlucHV0Jyk7DQogICAgeG1sVHZJZElucHV0LnNldEF0dHJpYnV0ZSgnb25jaGFuZ2UnLCBgamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCc7IGNoZWNrWG1sdHZDaGFubmVsKCcke2VwZ01hcElkfScsIHRoaXMsICcke25ld1htbFR2RmlsZX0nKTtgKTsNCiAgICB4bWxUdklkSW5wdXQuY2xhc3NMaXN0LmFkZCgnY2hhbmdlZCcpOw0KICAgIHhtbFR2SWREYXRhbGlzdC5zZXRBdHRyaWJ1dGUoJ2lkJywgJ3htbHR2LWlkLXBpY2tlci1kYXRhbGlzdCcpOw0KICAgIC8vIHNvcnRTZWxlY3QoeG1sVHZJZERhdGFsaXN0KTsgLy8gVE9ETzogQmV0dGVyIHNvcnQgYmVmb3JlIGFkZGluZw0KICAgIC8vIEFkZCBuZXcgWE1MVFYgSUQgc2VsZWN0aW9uIGJveCB0byBpdCdzIHBhcmVudA0KICAgIHhtbFR2SWRQaWNrZXJQYXJlbnQuYXBwZW5kQ2hpbGQoeG1sVHZJZENvbnRhaW5lcik7DQogICAgY2hlY2tYbWx0dkNoYW5uZWwoZXBnTWFwSWQsIHhtbFR2SWRJbnB1dCwgbmV3WG1sVHZGaWxlKTsNCn0NCmZ1bmN0aW9uIGNoZWNrWG1sdHZDaGFubmVsKGVwZ01hcElkLCB4bWxUdklkSW5wdXQsIHhtbFR2RmlsZSkgew0KICAgIC8vIElmIGVtcHR5LCBzZXQgdG8gJy0nDQogICAgeG1sVHZJZElucHV0LnZhbHVlID0geG1sVHZJZElucHV0LnZhbHVlID8geG1sVHZJZElucHV0LnZhbHVlIDogJy0nOw0KICAgIGNvbnN0IG5ld1htbFR2SWQgPSB4bWxUdklkSW5wdXQudmFsdWU7DQogICAgY29uc3QgY2hhbm5lbEFjdGl2ZUNiID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2FjdGl2ZScpOw0KICAgIGNvbnN0IGNoYW5uZWxBY3RpdmUgPSBuZXdYbWxUdklkICE9ICctJzsNCiAgICBjaGFubmVsQWN0aXZlQ2IuY2hlY2tlZCA9IGNoYW5uZWxBY3RpdmU7DQogICAgY2hhbm5lbEFjdGl2ZUNiLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJzsNCiAgICBpZiAoeG1sVHZGaWxlICE9ICd4VGVWZSBEdW1teScgJiYgY2hhbm5lbEFjdGl2ZSA9PSB0cnVlKSB7DQogICAgICAgIGNoYW5nZUNoYW5uZWxMb2dvKGVwZ01hcElkKTsNCiAgICAgICAgcmV0dXJuOw0KICAgIH0NCiAgICBpZiAoeG1sVHZGaWxlID09ICd4VGVWZSBEdW1teScpIHsNCiAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3VwZGF0ZS1pY29uJykuY2hlY2tlZCA9IGZhbHNlOw0KICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndXBkYXRlLWljb24nKS5jbGFzc05hbWUgPSAnY2hhbmdlZCc7DQogICAgfQ0KfQ0KZnVuY3Rpb24gY2hhbmdlQ2hhbm5lbExvZ28oZXBnTWFwSWQpIHsNCiAgICBjb25zdCBjaGFubmVsID0gU0VSVkVSWyd4ZXBnJ11bJ2VwZ01hcHBpbmcnXVtlcGdNYXBJZF07DQogICAgY29uc3QgeG1sVHZGaWxlU2VsZWN0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3BvcHVwLXhtbHR2Jyk7DQogICAgY29uc3QgeG1sVHZGaWxlID0geG1sVHZGaWxlU2VsZWN0Lm9wdGlvbnNbeG1sVHZGaWxlU2VsZWN0LnNlbGVjdGVkSW5kZXhdLnZhbHVlOw0KICAgIGNvbnN0IHhtbFR2SWRJbnB1dCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd4bWx0di1pZC1waWNrZXItaW5wdXQnKTsNCiAgICBjb25zdCBuZXdYbWxUdklkID0geG1sVHZJZElucHV0LnZhbHVlOw0KICAgIGNvbnN0IHhtbFR2TG9nbyA9IFNFUlZFUlsneGVwZyddWyd4bWx0dk1hcCddW3htbFR2RmlsZV1bbmV3WG1sVHZJZF1bJ2ljb24nXTsNCiAgICBjb25zdCB1cGRhdGVMb2dvID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3VwZGF0ZS1pY29uJykuY2hlY2tlZDsNCiAgICBsZXQgbG9nbzsNCiAgICBpZiAodXBkYXRlTG9nbyA9PSB0cnVlICYmIHhtbFR2RmlsZSAhPSAneFRlVmUgRHVtbXknKSB7DQogICAgICAgIGlmIChTRVJWRVJbJ3hlcGcnXVsneG1sdHZNYXAnXVt4bWxUdkZpbGVdLmhhc093blByb3BlcnR5KG5ld1htbFR2SWQpKSB7DQogICAgICAgICAgICBsb2dvID0geG1sVHZMb2dvOw0KICAgICAgICB9DQogICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgbG9nbyA9IGNoYW5uZWxbJ3R2Zy1sb2dvJ107DQogICAgICAgIH0NCiAgICAgICAgdmFyIGxvZ29JbnB1dCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjaGFubmVsLWljb24nKTsNCiAgICAgICAgbG9nb0lucHV0LnZhbHVlID0gbG9nbzsNCiAgICAgICAgaWYgKEJVTEtfRURJVCA9PSBmYWxzZSkgew0KICAgICAgICAgICAgbG9nb0lucHV0LmNsYXNzTmFtZSA9ICdjaGFuZ2VkJzsNCiAgICAgICAgfQ0KICAgIH0NCn0NCmZ1bmN0aW9uIHNhdmVQb3B1cERhdGEoZGF0YVR5cGUsIGlkLCByZW1vdmUsIG9wdGlvbikgew0KICAgIGlmIChkYXRhVHlwZSA9PSAibWFwcGluZyIpIHsNCiAgICAgICAgbGV0IGRhdGEgPSB7fTsNCiAgICAgICAgbGV0IGNtZCA9ICJzYXZlRXBnTWFwcGluZyI7DQogICAgICAgIGRhdGFbImVwZ01hcHBpbmciXSA9IFNFUlZFUlsieGVwZyJdWyJlcGdNYXBwaW5nIl07DQogICAgICAgIGxldCBzZXJ2ZXIgPSBuZXcgU2VydmVyKGNtZCk7DQogICAgICAgIHNlcnZlci5yZXF1ZXN0KGRhdGEpOw0KICAgICAgICBkZWxldGUgVU5ET1siZXBnTWFwcGluZyJdOw0KICAgICAgICByZXR1cm47DQogICAgfQ0KICAgIGxldCBkaXYgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicG9wdXAtY3VzdG9tIik7DQogICAgbGV0IGlucHV0cyA9IGRpdi5nZXRFbGVtZW50c0J5VGFnTmFtZSgiVEFCTEUiKVswXS5nZXRFbGVtZW50c0J5VGFnTmFtZSgiSU5QVVQiKTsNCiAgICBsZXQgc2VsZWN0cyA9IGRpdi5nZXRFbGVtZW50c0J5VGFnTmFtZSgiVEFCTEUiKVswXS5nZXRFbGVtZW50c0J5VGFnTmFtZSgiU0VMRUNUIik7DQogICAgbGV0IGlucHV0ID0ge307DQogICAgbGV0IGNvbmZpcm1Nc2c7DQogICAgZm9yIChsZXQgaSA9IDA7IGkgPCBzZWxlY3RzLmxlbmd0aDsgaSsrKSB7DQogICAgICAgIHZhciBuYW1lOw0KICAgICAgICBuYW1lID0gc2VsZWN0c1tpXS5uYW1lOw0KICAgICAgICB2YXIgdmFsdWUgPSBzZWxlY3RzW2ldLnZhbHVlOw0KICAgICAgICBzd2l0Y2ggKG5hbWUpIHsNCiAgICAgICAgICAgIGNhc2UgInR1bmVyIjoNCiAgICAgICAgICAgICAgICBpbnB1dFtuYW1lXSA9IHBhcnNlSW50KHZhbHVlKTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICAgICAgaW5wdXRbbmFtZV0gPSB2YWx1ZTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgfQ0KICAgIH0NCiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGlucHV0cy5sZW5ndGg7IGkrKykgew0KICAgICAgICBzd2l0Y2ggKGlucHV0c1tpXS50eXBlKSB7DQogICAgICAgICAgICBjYXNlICJjaGVja2JveCI6DQogICAgICAgICAgICAgICAgbmFtZSA9IGlucHV0c1tpXS5uYW1lOw0KICAgICAgICAgICAgICAgIGlucHV0W25hbWVdID0gaW5wdXRzW2ldLmNoZWNrZWQ7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ0ZXh0IjoNCiAgICAgICAgICAgIGNhc2UgImhpZGRlbiI6DQogICAgICAgICAgICBjYXNlICJwYXNzd29yZCI6DQogICAgICAgICAgICAgICAgbmFtZSA9IGlucHV0c1tpXS5uYW1lOw0KICAgICAgICAgICAgICAgIHN3aXRjaCAobmFtZSkgew0KICAgICAgICAgICAgICAgICAgICBjYXNlICJ0dW5lciI6DQogICAgICAgICAgICAgICAgICAgICAgICBpbnB1dFtuYW1lXSA9IHBhcnNlSW50KGlucHV0c1tpXS52YWx1ZSk7DQogICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgICAgICAgICAgICAgIGlucHV0W25hbWVdID0gaW5wdXRzW2ldLnZhbHVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICB9DQogICAgfQ0KICAgIGxldCBkYXRhID0ge307DQogICAgbGV0IGNtZDsNCiAgICBpZiAocmVtb3ZlID09IHRydWUpIHsNCiAgICAgICAgaW5wdXRbImRlbGV0ZSJdID0gdHJ1ZTsNCiAgICB9DQogICAgc3dpdGNoIChkYXRhVHlwZSkgew0KICAgICAgICBjYXNlICJ1c2VycyI6DQogICAgICAgICAgICBjb25maXJtTXNnID0gIkRlbGV0ZSB0aGlzIHVzZXI/IjsNCiAgICAgICAgICAgIGlmIChpZCA9PSAiLSIpIHsNCiAgICAgICAgICAgICAgICBjbWQgPSAic2F2ZU5ld1VzZXIiOw0KICAgICAgICAgICAgICAgIGRhdGFbInVzZXJEYXRhIl0gPSBpbnB1dDsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgICAgIGNtZCA9ICJzYXZlVXNlckRhdGEiOw0KICAgICAgICAgICAgICAgIGxldCBkID0ge307DQogICAgICAgICAgICAgICAgZFtpZF0gPSBpbnB1dDsNCiAgICAgICAgICAgICAgICBkYXRhWyJ1c2VyRGF0YSJdID0gZDsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJtM3UiOg0KICAgICAgICAgICAgY29uZmlybU1zZyA9ICJEZWxldGUgdGhpcyBwbGF5bGlzdD8iOw0KICAgICAgICAgICAgc3dpdGNoIChvcHRpb24pIHsNCiAgICAgICAgICAgICAgICAvLyBQb3B1cDogU2F2ZQ0KICAgICAgICAgICAgICAgIGNhc2UgMDoNCiAgICAgICAgICAgICAgICAgICAgY21kID0gInNhdmVGaWxlc00zVSI7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIC8vIFBvcHVwOiBVcGRhdGUNCiAgICAgICAgICAgICAgICBjYXNlIDE6DQogICAgICAgICAgICAgICAgICAgIGNtZCA9ICJ1cGRhdGVGaWxlTTNVIjsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBkYXRhWyJmaWxlcyJdID0ge307DQogICAgICAgICAgICBkYXRhWyJmaWxlcyJdW2RhdGFUeXBlXSA9IHt9Ow0KICAgICAgICAgICAgZGF0YVsiZmlsZXMiXVtkYXRhVHlwZV1baWRdID0gaW5wdXQ7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSAiaGRociI6DQogICAgICAgICAgICBjb25maXJtTXNnID0gIkRlbGV0ZSB0aGlzIEhESG9tZVJ1biB0dW5lcj8iOw0KICAgICAgICAgICAgc3dpdGNoIChvcHRpb24pIHsNCiAgICAgICAgICAgICAgICAvLyBQb3B1cDogU2F2ZQ0KICAgICAgICAgICAgICAgIGNhc2UgMDoNCiAgICAgICAgICAgICAgICAgICAgY21kID0gInNhdmVGaWxlc0hESFIiOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICAvLyBQb3B1cDogVXBkYXRlDQogICAgICAgICAgICAgICAgY2FzZSAxOg0KICAgICAgICAgICAgICAgICAgICBjbWQgPSAidXBkYXRlRmlsZUhESFIiOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGRhdGFbImZpbGVzIl0gPSB7fTsNCiAgICAgICAgICAgIGRhdGFbImZpbGVzIl1bZGF0YVR5cGVdID0ge307DQogICAgICAgICAgICBkYXRhWyJmaWxlcyJdW2RhdGFUeXBlXVtpZF0gPSBpbnB1dDsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJ4bWx0diI6DQogICAgICAgICAgICBjb25maXJtTXNnID0gIkRlbGV0ZSB0aGlzIFhNTFRWIGZpbGU/IjsNCiAgICAgICAgICAgIHN3aXRjaCAob3B0aW9uKSB7DQogICAgICAgICAgICAgICAgLy8gUG9wdXA6IFNhdmUNCiAgICAgICAgICAgICAgICBjYXNlIDA6DQogICAgICAgICAgICAgICAgICAgIGNtZCA9ICJzYXZlRmlsZXNYTUxUViI7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIC8vIFBvcHVwOiBVcGRhdGUNCiAgICAgICAgICAgICAgICBjYXNlIDE6DQogICAgICAgICAgICAgICAgICAgIGNtZCA9ICJ1cGRhdGVGaWxlWE1MVFYiOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGRhdGFbImZpbGVzIl0gPSB7fTsNCiAgICAgICAgICAgIGRhdGFbImZpbGVzIl1bZGF0YVR5cGVdID0ge307DQogICAgICAgICAgICBkYXRhWyJmaWxlcyJdW2RhdGFUeXBlXVtpZF0gPSBpbnB1dDsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJmaWx0ZXIiOg0KICAgICAgICAgICAgY29uZmlybU1zZyA9ICJEZWxldGUgdGhpcyBmaWx0ZXI/IjsNCiAgICAgICAgICAgIGNtZCA9ICJzYXZlRmlsdGVyIjsNCiAgICAgICAgICAgIGRhdGFbImZpbHRlciJdID0ge307DQogICAgICAgICAgICBkYXRhWyJmaWx0ZXIiXVtpZF0gPSBpbnB1dDsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBkZWZhdWx0Og0KICAgICAgICAgICAgcmV0dXJuOw0KICAgIH0NCiAgICBpZiAocmVtb3ZlID09IHRydWUpIHsNCiAgICAgICAgaWYgKCFjb25maXJtKGNvbmZpcm1Nc2cpKSB7DQogICAgICAgICAgICBzaG93RWxlbWVudCgicG9wdXAiLCBmYWxzZSk7DQogICAgICAgICAgICByZXR1cm47DQogICAgICAgIH0NCiAgICB9DQogICAgbGV0IHNlcnZlciA9IG5ldyBTZXJ2ZXIoY21kKTsNCiAgICBzZXJ2ZXIucmVxdWVzdChkYXRhKTsNCn0NCmZ1bmN0aW9uIGRvbmVQb3B1cERhdGEoZGF0YVR5cGUsIGlkc1N0cikgew0KICAgIGxldCBpZHMgPSBpZHNTdHIuc3BsaXQoJywnKTsNCiAgICBsZXQgZGl2ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInBvcHVwLWN1c3RvbSIpOw0KICAgIGxldCBpbnB1dHMgPSBkaXYuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSgiY2hhbmdlZCIpOw0KICAgIGlkcy5mb3JFYWNoKGlkID0+IHsNCiAgICAgICAgbGV0IGlucHV0Ow0KICAgICAgICBpbnB1dCA9IFNFUlZFUlsieGVwZyJdWyJlcGdNYXBwaW5nIl1baWRdOw0KICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGlucHV0cy5sZW5ndGg7IGkrKykgew0KICAgICAgICAgICAgbGV0IG5hbWU7DQogICAgICAgICAgICBsZXQgdmFsdWU7DQogICAgICAgICAgICBzd2l0Y2ggKGlucHV0c1tpXS50YWdOYW1lKSB7DQogICAgICAgICAgICAgICAgY2FzZSAiSU5QVVQiOg0KICAgICAgICAgICAgICAgICAgICBzd2l0Y2ggKGlucHV0c1tpXS50eXBlKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBjYXNlICJjaGVja2JveCI6DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZSA9IGlucHV0c1tpXS5uYW1lOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlID0gaW5wdXRzW2ldLmNoZWNrZWQ7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5wdXRbbmFtZV0gPSB2YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgInRleHQiOg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWUgPSBpbnB1dHNbaV0ubmFtZTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IGlucHV0c1tpXS52YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnB1dFtuYW1lXSA9IHZhbHVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgIlNFTEVDVCI6DQogICAgICAgICAgICAgICAgICAgIG5hbWUgPSBpbnB1dHNbaV0ubmFtZTsNCiAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSBpbnB1dHNbaV0udmFsdWU7DQogICAgICAgICAgICAgICAgICAgIGlucHV0W25hbWVdID0gdmFsdWU7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgc3dpdGNoIChuYW1lKSB7DQogICAgICAgICAgICAgICAgY2FzZSAidHZnLWxvZ28iOg0KICAgICAgICAgICAgICAgICAgICAvLyhkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkuY2hpbGROb2Rlc1syXS5maXJzdENoaWxkIGFzIEhUTUxFbGVtZW50KS5zZXRBdHRyaWJ1dGUoInNyYyIsIHZhbHVlKQ0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBjYXNlICJ4LW5hbWUiOg0KICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkuY2hpbGROb2Rlc1szXS5maXJzdENoaWxkLmlubmVySFRNTCA9IHZhbHVlOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBjYXNlICJ4LWNhdGVnb3J5IjoNCiAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpLmNoaWxkTm9kZXNbM10uZmlyc3RDaGlsZC5jbGFzc05hbWUgPSB2YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAieC1ncm91cC10aXRsZSI6DQogICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5jaGlsZE5vZGVzWzVdLmZpcnN0Q2hpbGQuaW5uZXJIVE1MID0gdmFsdWU7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgIngteG1sdHYtZmlsZSI6DQogICAgICAgICAgICAgICAgICAgIGlmICh2YWx1ZSAhPSAieFRlVmUgRHVtbXkiICYmIHZhbHVlICE9ICItIikgew0KICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSBnZXRWYWx1ZUZyb21Qcm92aWRlckZpbGUodmFsdWUsICJ4bWx0diIsICJuYW1lIik7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgaWYgKHZhbHVlID09ICItIikgew0KICAgICAgICAgICAgICAgICAgICAgICAgaW5wdXRbIngtYWN0aXZlIl0gPSBmYWxzZTsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkuY2hpbGROb2Rlc1s2XS5maXJzdENoaWxkLmlubmVySFRNTCA9IHZhbHVlOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBjYXNlICJ4LW1hcHBpbmciOg0KICAgICAgICAgICAgICAgICAgICBpZiAodmFsdWUgPT0gIi0iKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBpbnB1dFsieC1hY3RpdmUiXSA9IGZhbHNlOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5jaGlsZE5vZGVzWzddLmZpcnN0Q2hpbGQuaW5uZXJIVE1MID0gdmFsdWU7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgIngtdGltZXNoaWZ0IjoNCiAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpLmNoaWxkTm9kZXNbOF0uZmlyc3RDaGlsZC5pbm5lckhUTUwgPSB2YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGNyZWF0ZVNlYXJjaE9iaigpOw0KICAgICAgICAgICAgc2VhcmNoSW5NYXBwaW5nKCk7DQogICAgICAgIH0NCiAgICAgICAgaWYgKGlucHV0WyJ4LWFjdGl2ZSJdID09IGZhbHNlKSB7DQogICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkuY2xhc3NOYW1lID0gIm5vdEFjdGl2ZUVQRyI7DQogICAgICAgIH0NCiAgICAgICAgZWxzZSB7DQogICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkuY2xhc3NOYW1lID0gImFjdGl2ZUVQRyI7DQogICAgICAgIH0NCiAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpLmNoaWxkTm9kZXNbMl0uZmlyc3RDaGlsZC5zZXRBdHRyaWJ1dGUoInNyYyIsIGlucHV0WyJ0dmctbG9nbyJdKTsNCiAgICB9KTsNCiAgICBzaG93RWxlbWVudCgicG9wdXAiLCBmYWxzZSk7DQogICAgcmV0dXJuOw0KfQ0KZnVuY3Rpb24gc2hvd1ByZXZpZXcoZWxlbWVudCkgew0KICAgIGxldCBkaXYgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibXlTdHJlYW1zQm94Iik7DQogICAgc3dpdGNoIChlbGVtZW50KSB7DQogICAgICAgIGNhc2UgZmFsc2U6DQogICAgICAgICAgICBkaXYuY2xhc3NOYW1lID0gIm5vdFZpc2libGUiOw0KICAgICAgICAgICAgcmV0dXJuOw0KICAgIH0NCiAgICBsZXQgc3RyZWFtcyA9IFsiYWN0aXZlU3RyZWFtcyIsICJpbmFjdGl2ZVN0cmVhbXMiXTsNCiAgICBzdHJlYW1zLmZvckVhY2gocHJldmlldyA9PiB7DQogICAgICAgIGxldCB0YWJsZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHByZXZpZXcpOw0KICAgICAgICB0YWJsZS5pbm5lckhUTUwgPSAiIjsNCiAgICAgICAgbGV0IG9iaiA9IFNFUlZFUlsiZGF0YSJdWyJTdHJlYW1QcmV2aWV3VUkiXVtwcmV2aWV3XTsNCiAgICAgICAgb2JqLmZvckVhY2goY2hhbm5lbCA9PiB7DQogICAgICAgICAgICBsZXQgdHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJUUiIpOw0KICAgICAgICAgICAgbGV0IHRkS2V5ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgIGxldCB0ZFZhbCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICB0ZEtleS5jbGFzc05hbWUgPSAidGRLZXkiOw0KICAgICAgICAgICAgdGRWYWwuY2xhc3NOYW1lID0gInRkVmFsIjsNCiAgICAgICAgICAgIHN3aXRjaCAocHJldmlldykgew0KICAgICAgICAgICAgICAgIGNhc2UgImFjdGl2ZVN0cmVhbXMiOg0KICAgICAgICAgICAgICAgICAgICB0ZEtleS5pbm5lclRleHQgPSAiQ2hhbm5lbDogKCspIjsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAiaW5hY3RpdmVTdHJlYW1zIjoNCiAgICAgICAgICAgICAgICAgICAgdGRLZXkuaW5uZXJUZXh0ID0gIkNoYW5uZWw6ICgtKSI7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgdGRWYWwuaW5uZXJUZXh0ID0gY2hhbm5lbDsNCiAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKHRkS2V5KTsNCiAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKHRkVmFsKTsNCiAgICAgICAgICAgIHRhYmxlLmFwcGVuZENoaWxkKHRyKTsNCiAgICAgICAgfSk7DQogICAgfSk7DQogICAgc2hvd0VsZW1lbnQoImxvYWRpbmciLCBmYWxzZSk7DQogICAgZGl2LmNsYXNzTmFtZSA9ICJ2aXNpYmxlIjsNCiAgICByZXR1cm47DQp9DQo=" + webUI["html/js/menu_ts.js"] = "Y2xhc3MgTWFpbk1lbnUgew0KICAgIGNvbnN0cnVjdG9yKCkgew0KICAgICAgICB0aGlzLkRvY3VtZW50SUQgPSAibWFpbi1tZW51IjsNCiAgICAgICAgdGhpcy5IVE1MVGFnID0gIkxJIjsNCiAgICAgICAgdGhpcy5JbWFnZVBhdGggPSAiaW1nLyI7DQogICAgfQ0KICAgIGNyZWF0ZUlNRyhzcmMpIHsNCiAgICAgICAgbGV0IGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJJTUciKTsNCiAgICAgICAgZWxlbWVudC5zZXRBdHRyaWJ1dGUoInNyYyIsIHRoaXMuSW1hZ2VQYXRoICsgc3JjKTsNCiAgICAgICAgcmV0dXJuIGVsZW1lbnQ7DQogICAgfQ0KICAgIGNyZWF0ZVZhbHVlKHZhbHVlKSB7DQogICAgICAgIGxldCBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiUCIpOw0KICAgICAgICBlbGVtZW50LmlubmVySFRNTCA9IHZhbHVlOw0KICAgICAgICByZXR1cm4gZWxlbWVudDsNCiAgICB9DQp9DQpjbGFzcyBNYWluTWVudUl0ZW0gZXh0ZW5kcyBNYWluTWVudSB7DQogICAgY29uc3RydWN0b3IobWVudUtleSwgdmFsdWUsIGltYWdlLCBoZWFkbGluZSkgew0KICAgICAgICBzdXBlcigpOw0KICAgICAgICB0aGlzLm1lbnVLZXkgPSBtZW51S2V5Ow0KICAgICAgICB0aGlzLnZhbHVlID0gdmFsdWU7DQogICAgICAgIHRoaXMuaW1nU3JjID0gaW1hZ2U7DQogICAgICAgIHRoaXMuaGVhZGxpbmUgPSBoZWFkbGluZTsNCiAgICB9DQogICAgY3JlYXRlSXRlbSgpIHsNCiAgICAgICAgbGV0IGl0ZW0gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJMSSIpOw0KICAgICAgICBpdGVtLnNldEF0dHJpYnV0ZSgib25jbGljayIsICJqYXZhc2NyaXB0OiBvcGVuVGhpc01lbnUodGhpcykiKTsNCiAgICAgICAgaXRlbS5zZXRBdHRyaWJ1dGUoImlkIiwgdGhpcy5pZCk7DQogICAgICAgIGxldCBpbWcgPSB0aGlzLmNyZWF0ZUlNRyh0aGlzLmltZ1NyYyk7DQogICAgICAgIGxldCB2YWx1ZSA9IHRoaXMuY3JlYXRlVmFsdWUodGhpcy52YWx1ZSk7DQogICAgICAgIGl0ZW0uYXBwZW5kQ2hpbGQoaW1nKTsNCiAgICAgICAgaXRlbS5hcHBlbmRDaGlsZCh2YWx1ZSk7DQogICAgICAgIGxldCBkb2MgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCh0aGlzLkRvY3VtZW50SUQpOw0KICAgICAgICBkb2MuYXBwZW5kQ2hpbGQoaXRlbSk7DQogICAgICAgIHN3aXRjaCAodGhpcy5tZW51S2V5KSB7DQogICAgICAgICAgICBjYXNlICJwbGF5bGlzdCI6DQogICAgICAgICAgICAgICAgdGhpcy50YWJsZUhlYWRlciA9IFsie3sucGxheWxpc3QudGFibGUucGxheWxpc3R9fSIsICJ7ey5wbGF5bGlzdC50YWJsZS50dW5lcn19IiwgInt7LnBsYXlsaXN0LnRhYmxlLmxhc3RVcGRhdGV9fSIsICJ7ey5wbGF5bGlzdC50YWJsZS5hdmFpbGFiaWxpdHl9fSAlIiwgInt7LnBsYXlsaXN0LnRhYmxlLnR5cGV9fSIsICJ7ey5wbGF5bGlzdC50YWJsZS5zdHJlYW1zfX0iLCAie3sucGxheWxpc3QudGFibGUuZ3JvdXBUaXRsZX19ICUiLCAie3sucGxheWxpc3QudGFibGUudHZnSUR9fSAlIiwgInt7LnBsYXlsaXN0LnRhYmxlLnVuaXF1ZUlEfX0gJSJdOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAieG1sdHYiOg0KICAgICAgICAgICAgICAgIHRoaXMudGFibGVIZWFkZXIgPSBbInt7LnhtbHR2LnRhYmxlLmd1aWRlfX0iLCAie3sueG1sdHYudGFibGUubGFzdFVwZGF0ZX19IiwgInt7LnhtbHR2LnRhYmxlLmF2YWlsYWJpbGl0eX19ICUiLCAie3sueG1sdHYudGFibGUuY2hhbm5lbHN9fSIsICJ7ey54bWx0di50YWJsZS5wcm9ncmFtc319Il07DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJmaWx0ZXIiOg0KICAgICAgICAgICAgICAgIHRoaXMudGFibGVIZWFkZXIgPSBbInt7LmZpbHRlci50YWJsZS5zdGFydGluZ0NoYW5uZWx9fSIsICJ7ey5maWx0ZXIudGFibGUubmFtZX19IiwgInt7LmZpbHRlci50YWJsZS50eXBlfX0iLCAie3suZmlsdGVyLnRhYmxlLmZpbHRlcn19Il07DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ1c2VycyI6DQogICAgICAgICAgICAgICAgdGhpcy50YWJsZUhlYWRlciA9IFsie3sudXNlcnMudGFibGUudXNlcm5hbWV9fSIsICJ7ey51c2Vycy50YWJsZS5wYXNzd29yZH19IiwgInt7LnVzZXJzLnRhYmxlLndlYn19IiwgInt7LnVzZXJzLnRhYmxlLnBtc319IiwgInt7LnVzZXJzLnRhYmxlLm0zdX19IiwgInt7LnVzZXJzLnRhYmxlLnhtbH19IiwgInt7LnVzZXJzLnRhYmxlLmFwaX19Il07DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJtYXBwaW5nIjoNCiAgICAgICAgICAgICAgICB0aGlzLnRhYmxlSGVhZGVyID0gWyJCVUxLIiwgInt7Lm1hcHBpbmcudGFibGUuY2hOb319IiwgInt7Lm1hcHBpbmcudGFibGUubG9nb319IiwgInt7Lm1hcHBpbmcudGFibGUuY2hhbm5lbE5hbWV9fSIsICJ7ey5tYXBwaW5nLnRhYmxlLnBsYXlsaXN0fX0iLCAie3subWFwcGluZy50YWJsZS5ncm91cFRpdGxlfX0iLCAie3subWFwcGluZy50YWJsZS54bWx0dkZpbGV9fSIsICJ7ey5tYXBwaW5nLnRhYmxlLnhtbHR2SUR9fSIsICJ7ey5tYXBwaW5nLnRhYmxlLnRpbWVzaGlmdH19Il07DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIH0NCiAgICB9DQp9DQpjbGFzcyBDb250ZW50IHsNCiAgICBjb25zdHJ1Y3RvcigpIHsNCiAgICAgICAgdGhpcy5Eb2N1bWVudElEID0gImNvbnRlbnQiOw0KICAgICAgICB0aGlzLlRhYmxlSUQgPSAiY29udGVudF90YWJsZSI7DQogICAgICAgIHRoaXMuaGVhZGVyQ2xhc3MgPSAiY29udGVudF90YWJsZV9oZWFkZXIiOw0KICAgICAgICB0aGlzLmludGVyYWN0aW9uSUQgPSAiY29udGVudC1pbnRlcmFjdGlvbiI7DQogICAgfQ0KICAgIGNyZWF0ZUhlYWRsaW5lKHZhbHVlKSB7DQogICAgICAgIGxldCBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiSDMiKTsNCiAgICAgICAgZWxlbWVudC5pbm5lckhUTUwgPSB2YWx1ZTsNCiAgICAgICAgcmV0dXJuIGVsZW1lbnQ7DQogICAgfQ0KICAgIGNyZWF0ZUhSKCkgew0KICAgICAgICByZXR1cm4gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiSFIiKTsNCiAgICB9DQogICAgY3JlYXRlSW50ZXJhY3Rpb24oKSB7DQogICAgICAgIGxldCBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiRElWIik7DQogICAgICAgIGVsZW1lbnQuc2V0QXR0cmlidXRlKCJpZCIsIHRoaXMuaW50ZXJhY3Rpb25JRCk7DQogICAgICAgIHJldHVybiBlbGVtZW50Ow0KICAgIH0NCiAgICBjcmVhdGVESVYoKSB7DQogICAgICAgIGxldCBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiRElWIik7DQogICAgICAgIGVsZW1lbnQuaWQgPSB0aGlzLkRpdklEOw0KICAgICAgICByZXR1cm4gZWxlbWVudDsNCiAgICB9DQogICAgY3JlYXRlVEFCTEUoKSB7DQogICAgICAgIGxldCBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEFCTEUiKTsNCiAgICAgICAgZWxlbWVudC5pZCA9IHRoaXMuVGFibGVJRDsNCiAgICAgICAgcmV0dXJuIGVsZW1lbnQ7DQogICAgfQ0KICAgIGNyZWF0ZVRhYmxlUm93KCkgew0KICAgICAgICBsZXQgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlRSIik7DQogICAgICAgIGVsZW1lbnQuY2xhc3NOYW1lID0gdGhpcy5oZWFkZXJDbGFzczsNCiAgICAgICAgcmV0dXJuIGVsZW1lbnQ7DQogICAgfQ0KICAgIGNyZWF0ZVRhYmxlQ29udGVudChtZW51S2V5KSB7DQogICAgICAgIGxldCBkYXRhID0ge307DQogICAgICAgIGxldCByb3dzID0gW107DQogICAgICAgIGxldCBmaWxlVHlwZXMgPSBbXTsNCiAgICAgICAgc3dpdGNoIChtZW51S2V5KSB7DQogICAgICAgICAgICBjYXNlICJwbGF5bGlzdCI6DQogICAgICAgICAgICAgICAgZmlsZVR5cGVzID0gWyJtM3UiLCAiaGRociJdOw0KICAgICAgICAgICAgICAgIGZpbGVUeXBlcy5mb3JFYWNoKGZpbGVUeXBlID0+IHsNCiAgICAgICAgICAgICAgICAgICAgZGF0YSA9IFNFUlZFUlsic2V0dGluZ3MiXVsiZmlsZXMiXVtmaWxlVHlwZV07DQogICAgICAgICAgICAgICAgICAgIHZhciBrZXlzID0gZ2V0T3duT2JqUHJvcHMoZGF0YSk7DQogICAgICAgICAgICAgICAgICAgIGtleXMuZm9yRWFjaChrZXkgPT4gew0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVFIiKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmlkID0ga2V5Ow0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgiJyArIGZpbGVUeXBlICsgJyIsIHRoaXMpJyk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsibmFtZSJdOw0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChTRVJWRVJbInNldHRpbmdzIl1bImJ1ZmZlciJdICE9ICItIikgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bInR1bmVyIl07DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gIi0iOw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bImxhc3QudXBkYXRlIl07DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsicHJvdmlkZXIuYXZhaWxhYmlsaXR5Il07DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsidHlwZSJdLnRvVXBwZXJDYXNlKCk7DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsiY29tcGF0aWJpbGl0eSJdWyJzdHJlYW1zIl07DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsiY29tcGF0aWJpbGl0eSJdWyJncm91cC50aXRsZSJdOw0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bImNvbXBhdGliaWxpdHkiXVsidHZnLmlkIl07DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsiY29tcGF0aWJpbGl0eSJdWyJzdHJlYW0uaWQiXTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHJvd3MucHVzaCh0cik7DQogICAgICAgICAgICAgICAgICAgIH0pOw0KICAgICAgICAgICAgICAgIH0pOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiZmlsdGVyIjoNCiAgICAgICAgICAgICAgICBkZWxldGUgU0VSVkVSWyJzZXR0aW5ncyJdWyJmaWx0ZXIiXVstMV07DQogICAgICAgICAgICAgICAgZGF0YSA9IFNFUlZFUlsic2V0dGluZ3MiXVsiZmlsdGVyIl07DQogICAgICAgICAgICAgICAgdmFyIGtleXMgPSBnZXRPd25PYmpQcm9wcyhkYXRhKTsNCiAgICAgICAgICAgICAgICBrZXlzLmZvckVhY2goa2V5ID0+IHsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVFIiKTsNCiAgICAgICAgICAgICAgICAgICAgdHIuaWQgPSBrZXk7DQogICAgICAgICAgICAgICAgICAgIHRyLnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoIicgKyBkYXRhW2tleV1bInR5cGUiXSArICciLCB0aGlzKScpOw0KICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsic3RhcnRpbmdDaGFubmVsIl07DQogICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bIm5hbWUiXTsNCiAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgc3dpdGNoIChkYXRhW2tleV1bInR5cGUiXSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAiY3VzdG9tLWZpbHRlciI6DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9ICJ7ey5maWx0ZXIuY3VzdG9tfX0iOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAiZ3JvdXAtdGl0bGUiOg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSAie3suZmlsdGVyLmdyb3VwfX0iOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJmaWx0ZXIiXTsNCiAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICByb3dzLnB1c2godHIpOw0KICAgICAgICAgICAgICAgIH0pOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAieG1sdHYiOg0KICAgICAgICAgICAgICAgIGZpbGVUeXBlcyA9IG5ldyBBcnJheSgieG1sdHYiKTsNCiAgICAgICAgICAgICAgICBmaWxlVHlwZXMuZm9yRWFjaChmaWxlVHlwZSA9PiB7DQogICAgICAgICAgICAgICAgICAgIGRhdGEgPSBTRVJWRVJbInNldHRpbmdzIl1bImZpbGVzIl1bZmlsZVR5cGVdOw0KICAgICAgICAgICAgICAgICAgICB2YXIga2V5cyA9IGdldE93bk9ialByb3BzKGRhdGEpOw0KICAgICAgICAgICAgICAgICAgICBrZXlzLmZvckVhY2goa2V5ID0+IHsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciB0ciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlRSIik7DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5pZCA9IGtleTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoIicgKyBmaWxlVHlwZSArICciLCB0aGlzKScpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bIm5hbWUiXTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJsYXN0LnVwZGF0ZSJdOw0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bInByb3ZpZGVyLmF2YWlsYWJpbGl0eSJdOw0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bImNvbXBhdGliaWxpdHkiXVsieG1sdHYuY2hhbm5lbHMiXTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJjb21wYXRpYmlsaXR5Il1bInhtbHR2LnByb2dyYW1zIl07DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICByb3dzLnB1c2godHIpOw0KICAgICAgICAgICAgICAgICAgICB9KTsNCiAgICAgICAgICAgICAgICB9KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInVzZXJzIjoNCiAgICAgICAgICAgICAgICBmaWxlVHlwZXMgPSBuZXcgQXJyYXkoInVzZXJzIik7DQogICAgICAgICAgICAgICAgZmlsZVR5cGVzLmZvckVhY2goZmlsZVR5cGUgPT4gew0KICAgICAgICAgICAgICAgICAgICBkYXRhID0gU0VSVkVSW2ZpbGVUeXBlXTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGtleXMgPSBnZXRPd25PYmpQcm9wcyhkYXRhKTsNCiAgICAgICAgICAgICAgICAgICAga2V5cy5mb3JFYWNoKGtleSA9PiB7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgdHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJUUiIpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuaWQgPSBrZXk7DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCInICsgZmlsZVR5cGUgKyAnIiwgdGhpcyknKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJkYXRhIl1bInVzZXJuYW1lIl07DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9ICIqKioqKioiOw0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChkYXRhW2tleV1bImRhdGEiXVsiYXV0aGVudGljYXRpb24ud2ViIl0gPT0gdHJ1ZSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSAi4pyTIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSAiLSI7DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGRhdGFba2V5XVsiZGF0YSJdWyJhdXRoZW50aWNhdGlvbi5wbXMiXSA9PSB0cnVlKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9ICLinJMiOw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9ICItIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgICAgICBpZiAoZGF0YVtrZXldWyJkYXRhIl1bImF1dGhlbnRpY2F0aW9uLm0zdSJdID09IHRydWUpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gIuKckyI7DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gIi0iOw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChkYXRhW2tleV1bImRhdGEiXVsiYXV0aGVudGljYXRpb24ueG1sIl0gPT0gdHJ1ZSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSAi4pyTIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSAiLSI7DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGRhdGFba2V5XVsiZGF0YSJdWyJhdXRoZW50aWNhdGlvbi5hcGkiXSA9PSB0cnVlKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9ICLinJMiOw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9ICItIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHJvd3MucHVzaCh0cik7DQogICAgICAgICAgICAgICAgICAgIH0pOw0KICAgICAgICAgICAgICAgIH0pOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAibWFwcGluZyI6DQogICAgICAgICAgICAgICAgQlVMS19FRElUID0gZmFsc2U7DQogICAgICAgICAgICAgICAgY3JlYXRlU2VhcmNoT2JqKCk7DQogICAgICAgICAgICAgICAgY2hlY2tVbmRvKCJlcGdNYXBwaW5nIik7DQogICAgICAgICAgICAgICAgZGF0YSA9IFNFUlZFUlsieGVwZyJdWyJlcGdNYXBwaW5nIl07DQogICAgICAgICAgICAgICAgdmFyIGtleXMgPSBnZXRPd25PYmpQcm9wcyhkYXRhKTsNCiAgICAgICAgICAgICAgICBrZXlzLmZvckVhY2goa2V5ID0+IHsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVFIiKTsNCiAgICAgICAgICAgICAgICAgICAgdHIuaWQgPSBrZXk7DQogICAgICAgICAgICAgICAgICAgIHN3aXRjaCAoZGF0YVtrZXldWyJ4LWFjdGl2ZSJdKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBjYXNlIHRydWU6DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgdHIuY2xhc3NOYW1lID0gImFjdGl2ZUVQRyI7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgICAgICAgICBjYXNlIGZhbHNlOg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyLmNsYXNzTmFtZSA9ICJub3RBY3RpdmVFUEciOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIC8vIEJ1bGsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiQlVMSyI7DQogICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBmYWxzZTsNCiAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAvLyBDaGFubmVsIG51bWJlcg0KICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJJTlBVVENIQU5ORUwiOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJ4LWNoYW5uZWxJRCJdOw0KICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgIC8vIExvZ28NCiAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiSU1HIjsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5pbWFnZVVSTCA9IGRhdGFba2V5XVsidHZnLWxvZ28iXTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHRkID0gY2VsbC5jcmVhdGVDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgIHRkLnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoIm1hcHBpbmciLCB0aGlzKScpOw0KICAgICAgICAgICAgICAgICAgICB0ZC5pZCA9IGtleTsNCiAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQodGQpOw0KICAgICAgICAgICAgICAgICAgICAvLyBDaGFubmVsIG5hbWUNCiAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2xhc3NOYW1lID0gZGF0YVtrZXldWyJ4LWNhdGVnb3J5Il07DQogICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bIngtbmFtZSJdOw0KICAgICAgICAgICAgICAgICAgICB2YXIgdGQgPSBjZWxsLmNyZWF0ZUNlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgdGQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgibWFwcGluZyIsIHRoaXMpJyk7DQogICAgICAgICAgICAgICAgICAgIHRkLmlkID0ga2V5Ow0KICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZCh0ZCk7DQogICAgICAgICAgICAgICAgICAgIC8vIFBsYXlsaXN0DQogICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZ2V0VmFsdWVGcm9tUHJvdmlkZXJGaWxlKGRhdGFba2V5XVsiX2ZpbGUubTN1LmlkIl0sICJtM3UiLCAibmFtZSIpOw0KICAgICAgICAgICAgICAgICAgICB2YXIgdGQgPSBjZWxsLmNyZWF0ZUNlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgdGQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgibWFwcGluZyIsIHRoaXMpJyk7DQogICAgICAgICAgICAgICAgICAgIHRkLmlkID0ga2V5Ow0KICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZCh0ZCk7DQogICAgICAgICAgICAgICAgICAgIC8vIEdyb3VwIChncm91cC10aXRsZSkNCiAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bIngtZ3JvdXAtdGl0bGUiXTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHRkID0gY2VsbC5jcmVhdGVDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgIHRkLnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoIm1hcHBpbmciLCB0aGlzKScpOw0KICAgICAgICAgICAgICAgICAgICB0ZC5pZCA9IGtleTsNCiAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQodGQpOw0KICAgICAgICAgICAgICAgICAgICAvLyBYTUxUViBmaWxlDQogICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICBpZiAoZGF0YVtrZXldWyJ4LXhtbHR2LWZpbGUiXSAhPSAiLSIpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBnZXRWYWx1ZUZyb21Qcm92aWRlckZpbGUoZGF0YVtrZXldWyJ4LXhtbHR2LWZpbGUiXSwgInhtbHR2IiwgIm5hbWUiKTsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bIngteG1sdHYtZmlsZSJdOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIHZhciB0ZCA9IGNlbGwuY3JlYXRlQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICB0ZC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJtYXBwaW5nIiwgdGhpcyknKTsNCiAgICAgICAgICAgICAgICAgICAgdGQuaWQgPSBrZXk7DQogICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKHRkKTsNCiAgICAgICAgICAgICAgICAgICAgLy8gWE1MVFYgQ2hhbm5lbA0KICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHZhbHVlID0gZGF0YVtrZXldWyJ4LW1hcHBpbmciXTsNCiAgICAgICAgICAgICAgICAgICAgaWYgKHZhbHVlLmxlbmd0aCA+IDIwKSB7DQogICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IGRhdGFba2V5XVsieC1tYXBwaW5nIl0uc3Vic3RyaW5nKDAsIDIwKSArICIuLi4iOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSB2YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHRkID0gY2VsbC5jcmVhdGVDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgIHRkLnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoIm1hcHBpbmciLCB0aGlzKScpOw0KICAgICAgICAgICAgICAgICAgICB0ZC5pZCA9IGtleTsNCiAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQodGQpOw0KICAgICAgICAgICAgICAgICAgICAvLyBUaW1lU2hpZnQNCiAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bIngtdGltZXNoaWZ0Il07DQogICAgICAgICAgICAgICAgICAgIHZhciB0ZCA9IGNlbGwuY3JlYXRlQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICB0ZC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJtYXBwaW5nIiwgdGhpcyknKTsNCiAgICAgICAgICAgICAgICAgICAgdGQuaWQgPSBrZXk7DQogICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKHRkKTsNCiAgICAgICAgICAgICAgICAgICAgcm93cy5wdXNoKHRyKTsNCiAgICAgICAgICAgICAgICB9KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInNldHRpbmdzIjoNCiAgICAgICAgICAgICAgICBhbGVydCgpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgfQ0KICAgICAgICByZXR1cm4gcm93czsNCiAgICB9DQp9DQpjbGFzcyBDZWxsIHsNCiAgICBjcmVhdGVDZWxsKCkgew0KICAgICAgICBsZXQgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICBpZiAodGhpcy5jaGlsZCA9PSB0cnVlKSB7DQogICAgICAgICAgICB2YXIgZWxlbWVudDsNCiAgICAgICAgICAgIHN3aXRjaCAodGhpcy5jaGlsZFR5cGUpIHsNCiAgICAgICAgICAgICAgICBjYXNlICJQIjoNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQodGhpcy5jaGlsZFR5cGUpOw0KICAgICAgICAgICAgICAgICAgICBlbGVtZW50LmlubmVySFRNTCA9IHRoaXMudmFsdWU7DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQuY2xhc3NOYW1lID0gdGhpcy5jbGFzc05hbWU7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgIklOUFVUIjoNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQodGhpcy5jaGlsZFR5cGUpOw0KICAgICAgICAgICAgICAgICAgICBlbGVtZW50LnZhbHVlID0gdGhpcy52YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC50eXBlID0gInRleHQiOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBjYXNlICJJTlBVVENIQU5ORUwiOg0KICAgICAgICAgICAgICAgICAgICBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiSU5QVVQiKTsNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdnNjcmlwdDogY2hhbmdlQ2hhbm5lbE51bWJlcih0aGlzKSIpOw0KICAgICAgICAgICAgICAgICAgICBlbGVtZW50LnZhbHVlID0gdGhpcy52YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC50eXBlID0gInRleHQiOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBjYXNlICJCVUxLIjoNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIklOUFVUIik7DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQuY2hlY2tlZCA9IHRoaXMudmFsdWU7DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQudHlwZSA9ICJjaGVja2JveCI7DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQuY2xhc3NOYW1lID0gImJ1bGsgaGlkZUJ1bGsiOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBjYXNlICJCVUxLX0hFQUQiOg0KICAgICAgICAgICAgICAgICAgICBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiSU5QVVQiKTsNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC5jaGVja2VkID0gdGhpcy52YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC50eXBlID0gImNoZWNrYm94IjsNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC5jbGFzc05hbWUgPSAiYnVsayBoaWRlQnVsayI7DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgImphdmFzY3JpcHQ6IHNlbGVjdEFsbENoYW5uZWxzKCkiKTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAiSU1HIjoNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQodGhpcy5jaGlsZFR5cGUpOw0KICAgICAgICAgICAgICAgICAgICBlbGVtZW50LnNldEF0dHJpYnV0ZSgic3JjIiwgdGhpcy5pbWFnZVVSTCk7DQogICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLmltYWdlVVJMICE9ICIiKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBlbGVtZW50LnNldEF0dHJpYnV0ZSgib25lcnJvciIsICJqYXZhc2NyaXB0OiB0aGlzLm9uZXJyb3I9bnVsbDt0aGlzLnNyYz0nJyIpOw0KICAgICAgICAgICAgICAgICAgICAgICAgLy9vbmVycm9yPSJ0aGlzLm9uZXJyb3I9bnVsbDt0aGlzLnNyYz0nbWlzc2luZy5naWYnOyINCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgdGQuYXBwZW5kQ2hpbGQoZWxlbWVudCk7DQogICAgICAgIH0NCiAgICAgICAgZWxzZSB7DQogICAgICAgICAgICB0ZC5pbm5lckhUTUwgPSB0aGlzLnZhbHVlOw0KICAgICAgICB9DQogICAgICAgIGlmICh0aGlzLm9uY2xpY2sgPT0gdHJ1ZSkgew0KICAgICAgICAgICAgdGQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgdGhpcy5vbmNsaWNrRnVuY3Rpb24pOw0KICAgICAgICAgICAgdGQuY2xhc3NOYW1lID0gInBvaW50ZXIiOw0KICAgICAgICB9DQogICAgICAgIGlmICh0aGlzLnRkQ2xhc3NOYW1lICE9IHVuZGVmaW5lZCkgew0KICAgICAgICAgICAgdGQuY2xhc3NOYW1lID0gdGhpcy50ZENsYXNzTmFtZTsNCiAgICAgICAgfQ0KICAgICAgICByZXR1cm4gdGQ7DQogICAgfQ0KfQ0KY2xhc3MgU2hvd0NvbnRlbnQgZXh0ZW5kcyBDb250ZW50IHsNCiAgICBjb25zdHJ1Y3RvcihtZW51SUQpIHsNCiAgICAgICAgc3VwZXIoKTsNCiAgICAgICAgdGhpcy5tZW51SUQgPSBtZW51SUQ7DQogICAgfQ0KICAgIGNyZWF0ZUlucHV0KHR5cGUsIG5hbWUsIHZhbHVlKSB7DQogICAgICAgIGxldCBpbnB1dCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIklOUFVUIik7DQogICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgidHlwZSIsIHR5cGUpOw0KICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm5hbWUiLCBuYW1lKTsNCiAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJ2YWx1ZSIsIHZhbHVlKTsNCiAgICAgICAgcmV0dXJuIGlucHV0Ow0KICAgIH0NCiAgICBzaG93KCkgew0KICAgICAgICBDT0xVTU5fVE9fU09SVCA9IC0xOw0KICAgICAgICAvLyBEZWxldGUgb2xkIGNvbnRlbnQNCiAgICAgICAgbGV0IGRvYyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHRoaXMuRG9jdW1lbnRJRCk7DQogICAgICAgIGRvYy5pbm5lckhUTUwgPSAiIjsNCiAgICAgICAgc2hvd1ByZXZpZXcoZmFsc2UpOw0KICAgICAgICAvLyBIZWFkbGluZQ0KICAgICAgICBsZXQgaGVhZGxpbmUgPSBtZW51SXRlbXNbdGhpcy5tZW51SURdLmhlYWRsaW5lOw0KICAgICAgICBsZXQgbWVudUtleSA9IG1lbnVJdGVtc1t0aGlzLm1lbnVJRF0ubWVudUtleTsNCiAgICAgICAgbGV0IGggPSB0aGlzLmNyZWF0ZUhlYWRsaW5lKGhlYWRsaW5lKTsNCiAgICAgICAgZG9jLmFwcGVuZENoaWxkKGgpOw0KICAgICAgICBsZXQgaHIgPSB0aGlzLmNyZWF0ZUhSKCk7DQogICAgICAgIGRvYy5hcHBlbmRDaGlsZChocik7DQogICAgICAgIC8vIEludGVyYWN0aW9uDQogICAgICAgIGxldCBkaXYgPSB0aGlzLmNyZWF0ZUludGVyYWN0aW9uKCk7DQogICAgICAgIGRvYy5hcHBlbmRDaGlsZChkaXYpOw0KICAgICAgICBsZXQgaW50ZXJhY3Rpb24gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCh0aGlzLmludGVyYWN0aW9uSUQpOw0KICAgICAgICBzd2l0Y2ggKG1lbnVLZXkpIHsNCiAgICAgICAgICAgIGNhc2UgInBsYXlsaXN0IjoNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSB0aGlzLmNyZWF0ZUlucHV0KCJidXR0b24iLCBtZW51S2V5LCAie3suYnV0dG9uLm5ld319Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJpZCIsICItIik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgicGxheWxpc3QiKScpOw0KICAgICAgICAgICAgICAgIGludGVyYWN0aW9uLmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImZpbHRlciI6DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gdGhpcy5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgbWVudUtleSwgInt7LmJ1dHRvbi5uZXd9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgiaWQiLCAtMSk7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgiZmlsdGVyIiwgdGhpcyknKTsNCiAgICAgICAgICAgICAgICBpbnRlcmFjdGlvbi5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ4bWx0diI6DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gdGhpcy5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgbWVudUtleSwgInt7LmJ1dHRvbi5uZXd9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgiaWQiLCAieG1sdHYiKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJ4bWx0diIpJyk7DQogICAgICAgICAgICAgICAgaW50ZXJhY3Rpb24uYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAidXNlcnMiOg0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IHRoaXMuY3JlYXRlSW5wdXQoImJ1dHRvbiIsIG1lbnVLZXksICJ7ey5idXR0b24ubmV3fX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoImlkIiwgInVzZXJzIik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgidXNlcnMiKScpOw0KICAgICAgICAgICAgICAgIGludGVyYWN0aW9uLmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgIm1hcHBpbmciOg0KICAgICAgICAgICAgICAgIHNob3dFbGVtZW50KCJsb2FkaW5nIiwgdHJ1ZSk7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gdGhpcy5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgbWVudUtleSwgInt7LmJ1dHRvbi5zYXZlfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogc2F2ZVBvcHVwRGF0YSgibWFwcGluZyIsICIiLCAiIiknKTsNCiAgICAgICAgICAgICAgICBpbnRlcmFjdGlvbi5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gdGhpcy5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgbWVudUtleSwgInt7LmJ1dHRvbi5idWxrRWRpdH19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IGJ1bGtFZGl0KCknKTsNCiAgICAgICAgICAgICAgICBpbnRlcmFjdGlvbi5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gdGhpcy5jcmVhdGVJbnB1dCgic2VhcmNoIiwgInNlYXJjaCIsICIiKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoImlkIiwgInNlYXJjaE1hcHBpbmciKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LmJ1dHRvbi5zZWFyY2h9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LmNsYXNzTmFtZSA9ICJzZWFyY2giOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAnamF2YXNjcmlwdDogc2VhcmNoSW5NYXBwaW5nKCknKTsNCiAgICAgICAgICAgICAgICBpbnRlcmFjdGlvbi5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJzZXR0aW5ncyI6DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gdGhpcy5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgbWVudUtleSwgInt7LmJ1dHRvbi5zYXZlfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogc2F2ZVNldHRpbmdzKCk7Jyk7DQogICAgICAgICAgICAgICAgaW50ZXJhY3Rpb24uYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IHRoaXMuY3JlYXRlSW5wdXQoImJ1dHRvbiIsIG1lbnVLZXksICJ7ey5idXR0b24uYmFja3VwfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogYmFja3VwKCk7Jyk7DQogICAgICAgICAgICAgICAgaW50ZXJhY3Rpb24uYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IHRoaXMuY3JlYXRlSW5wdXQoImJ1dHRvbiIsIG1lbnVLZXksICJ7ey5idXR0b24ucmVzdG9yZX19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IHJlc3RvcmUoKTsnKTsNCiAgICAgICAgICAgICAgICBpbnRlcmFjdGlvbi5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgdmFyIHdyYXBwZXIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJESVYiKTsNCiAgICAgICAgICAgICAgICB3cmFwcGVyLnNldEF0dHJpYnV0ZSgiaWQiLCAiYm94LXdyYXBwZXIiKTsNCiAgICAgICAgICAgICAgICBkb2MuYXBwZW5kQ2hpbGQod3JhcHBlcik7DQogICAgICAgICAgICAgICAgdGhpcy5EaXZJRCA9ICJjb250ZW50X3NldHRpbmdzIjsNCiAgICAgICAgICAgICAgICB2YXIgc2V0dGluZ3MgPSB0aGlzLmNyZWF0ZURJVigpOw0KICAgICAgICAgICAgICAgIHdyYXBwZXIuYXBwZW5kQ2hpbGQoc2V0dGluZ3MpOw0KICAgICAgICAgICAgICAgIHNob3dTZXR0aW5ncygpOw0KICAgICAgICAgICAgICAgIHJldHVybjsNCiAgICAgICAgICAgIGNhc2UgImxvZyI6DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gdGhpcy5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgbWVudUtleSwgInt7LmJ1dHRvbi5yZXNldExvZ3N9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiByZXNldExvZ3MoKTsnKTsNCiAgICAgICAgICAgICAgICBpbnRlcmFjdGlvbi5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgdmFyIHdyYXBwZXIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJESVYiKTsNCiAgICAgICAgICAgICAgICB3cmFwcGVyLnNldEF0dHJpYnV0ZSgiaWQiLCAiYm94LXdyYXBwZXIiKTsNCiAgICAgICAgICAgICAgICBkb2MuYXBwZW5kQ2hpbGQod3JhcHBlcik7DQogICAgICAgICAgICAgICAgdGhpcy5EaXZJRCA9ICJjb250ZW50X2xvZyI7DQogICAgICAgICAgICAgICAgdmFyIGxvZ3MgPSB0aGlzLmNyZWF0ZURJVigpOw0KICAgICAgICAgICAgICAgIHdyYXBwZXIuYXBwZW5kQ2hpbGQobG9ncyk7DQogICAgICAgICAgICAgICAgc2hvd0xvZ3ModHJ1ZSk7DQogICAgICAgICAgICAgICAgcmV0dXJuOw0KICAgICAgICAgICAgY2FzZSAibG9nb3V0IjoNCiAgICAgICAgICAgICAgICBsb2NhdGlvbi5yZWxvYWQoKTsNCiAgICAgICAgICAgICAgICBkb2N1bWVudC5jb29raWUgPSAiVG9rZW49IDsgZXhwaXJlcyA9IFRodSwgMDEgSmFuIDE5NzAgMDA6MDA6MDAgR01UIjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIH0NCiAgICAgICAgLy8gQ3JlYXRlIHRhYmxlIChpZiBuZWVkZWQpDQogICAgICAgIHZhciB0YWJsZUhlYWRlciA9IG1lbnVJdGVtc1t0aGlzLm1lbnVJRF0udGFibGVIZWFkZXI7DQogICAgICAgIGlmICh0YWJsZUhlYWRlci5sZW5ndGggPiAwKSB7DQogICAgICAgICAgICB2YXIgd3JhcHBlciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIkRJViIpOw0KICAgICAgICAgICAgZG9jLmFwcGVuZENoaWxkKHdyYXBwZXIpOw0KICAgICAgICAgICAgd3JhcHBlci5zZXRBdHRyaWJ1dGUoImlkIiwgImJveC13cmFwcGVyIik7DQogICAgICAgICAgICB2YXIgdGFibGUgPSB0aGlzLmNyZWF0ZVRBQkxFKCk7DQogICAgICAgICAgICB3cmFwcGVyLmFwcGVuZENoaWxkKHRhYmxlKTsNCiAgICAgICAgICAgIHZhciBoZWFkZXIgPSB0aGlzLmNyZWF0ZVRhYmxlUm93KCk7DQogICAgICAgICAgICB0YWJsZS5hcHBlbmRDaGlsZChoZWFkZXIpOw0KICAgICAgICAgICAgLy8gVGFibGUgaGVhZGVyDQogICAgICAgICAgICB0YWJsZUhlYWRlci5mb3JFYWNoKGVsZW1lbnQgPT4gew0KICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZWxlbWVudDsNCiAgICAgICAgICAgICAgICBpZiAoZWxlbWVudCA9PSAiQlVMSyIpIHsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiQlVMS19IRUFEIjsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGZhbHNlOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBpZiAobWVudUtleSA9PSAibWFwcGluZyIpIHsNCiAgICAgICAgICAgICAgICAgICAgaWYgKGVsZW1lbnQgPT0gInt7Lm1hcHBpbmcudGFibGUuY2hOb319Iikgew0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5vbmNsaWNrID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwub25jbGlja0Z1bmN0aW9uID0gImphdmFzY3JpcHQ6IHNvcnRUYWJsZSgxKTsiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC50ZENsYXNzTmFtZSA9ICJzb3J0VGhpcyI7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgaWYgKGVsZW1lbnQgPT0gInt7Lm1hcHBpbmcudGFibGUuY2hhbm5lbE5hbWV9fSIpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwub25jbGljayA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLm9uY2xpY2tGdW5jdGlvbiA9ICJqYXZhc2NyaXB0OiBzb3J0VGFibGUoMyk7IjsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBpZiAoZWxlbWVudCA9PSAie3subWFwcGluZy50YWJsZS5wbGF5bGlzdH19Iikgew0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5vbmNsaWNrID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwub25jbGlja0Z1bmN0aW9uID0gImphdmFzY3JpcHQ6IHNvcnRUYWJsZSg0KTsiOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIGlmIChlbGVtZW50ID09ICJ7ey5tYXBwaW5nLnRhYmxlLmdyb3VwVGl0bGV9fSIpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwub25jbGljayA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLm9uY2xpY2tGdW5jdGlvbiA9ICJqYXZhc2NyaXB0OiBzb3J0VGFibGUoNSk7IjsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBpZiAoZWxlbWVudCA9PSAie3subWFwcGluZy50YWJsZS50aW1lc2hpZnR9fSIpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwub25jbGljayA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLm9uY2xpY2tGdW5jdGlvbiA9ICJqYXZhc2NyaXB0OiBzb3J0VGFibGUoOCk7IjsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBpZiAobWVudUtleSA9PSAiZmlsdGVyIikgew0KICAgICAgICAgICAgICAgICAgICBpZiAoZWxlbWVudCA9PSAie3suZmlsdGVyLnRhYmxlLnN0YXJ0aW5nQ2hhbm5lbH19Iikgew0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5vbmNsaWNrID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwub25jbGlja0Z1bmN0aW9uID0gImphdmFzY3JpcHQ6IHNvcnRUYWJsZSgwKTsiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC50ZENsYXNzTmFtZSA9ICJzb3J0VGhpcyI7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgaWYgKGVsZW1lbnQgPT0gInt7LmZpbHRlci50YWJsZS5uYW1lfX0iKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLm9uY2xpY2sgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5vbmNsaWNrRnVuY3Rpb24gPSAiamF2YXNjcmlwdDogc29ydFRhYmxlKDEpOyI7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgaWYgKGVsZW1lbnQgPT0gInt7LmZpbHRlci50YWJsZS50eXBlfX0iKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLm9uY2xpY2sgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5vbmNsaWNrRnVuY3Rpb24gPSAiamF2YXNjcmlwdDogc29ydFRhYmxlKDIpOyI7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgaWYgKGVsZW1lbnQgPT0gInt7LmZpbHRlci50YWJsZS5maWx0ZXJ9fSIpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwub25jbGljayA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLm9uY2xpY2tGdW5jdGlvbiA9ICJqYXZhc2NyaXB0OiBzb3J0VGFibGUoMyk7IjsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBoZWFkZXIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgfSk7DQogICAgICAgICAgICB0YWJsZS5hcHBlbmRDaGlsZChoZWFkZXIpOw0KICAgICAgICAgICAgLy8gQ29udGVudCBvZiB0aGUgdGFibGUNCiAgICAgICAgICAgIHZhciByb3dzID0gdGhpcy5jcmVhdGVUYWJsZUNvbnRlbnQobWVudUtleSk7DQogICAgICAgICAgICByb3dzLmZvckVhY2godHIgPT4gew0KICAgICAgICAgICAgICAgIHRhYmxlLmFwcGVuZENoaWxkKHRyKTsNCiAgICAgICAgICAgIH0pOw0KICAgICAgICB9DQogICAgICAgIHN3aXRjaCAobWVudUtleSkgew0KICAgICAgICAgICAgY2FzZSAibWFwcGluZyI6DQogICAgICAgICAgICAgICAgc29ydFRhYmxlKDEpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiZmlsdGVyIjoNCiAgICAgICAgICAgICAgICBzaG93UHJldmlldyh0cnVlKTsNCiAgICAgICAgICAgICAgICBzb3J0VGFibGUoMCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBkZWZhdWx0Og0KICAgICAgICAgICAgICAgIENPTFVNTl9UT19TT1JUID0gLTE7DQogICAgICAgICAgICAgICAgc29ydFRhYmxlKDApOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICB9DQogICAgICAgIHNob3dFbGVtZW50KCJsb2FkaW5nIiwgZmFsc2UpOw0KICAgIH0NCn0NCmZ1bmN0aW9uIFBhZ2VSZWFkeSgpIHsNCiAgICBsZXQgc2VydmVyID0gbmV3IFNlcnZlcigiZ2V0U2VydmVyQ29uZmlnIik7DQogICAgc2VydmVyLnJlcXVlc3Qoe30pOw0KICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJyZXNpemUiLCBmdW5jdGlvbiAoKSB7DQogICAgICAgIGNhbGN1bGF0ZVdyYXBwZXJIZWlnaHQoKTsNCiAgICB9LCB0cnVlKTsNCiAgICBzZXRJbnRlcnZhbChmdW5jdGlvbiAoKSB7DQogICAgICAgIHVwZGF0ZUxvZygpOw0KICAgIH0sIDEwMDAwKTsNCiAgICByZXR1cm47DQp9DQpmdW5jdGlvbiBjcmVhdGVMYXlvdXQoKSB7DQogICAgLy8gQ2xpZW50IEluZm8NCiAgICBsZXQgb2JqID0gU0VSVkVSWyJjbGllbnRJbmZvIl07DQogICAgbGV0IGtleXMgPSBnZXRPd25PYmpQcm9wcyhvYmopOw0KICAgIGZvciAodmFyIGkgPSAwOyBpIDwga2V5cy5sZW5ndGg7IGkrKykgew0KICAgICAgICBpZiAoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoa2V5c1tpXSkpIHsNCiAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGtleXNbaV0pLmlubmVySFRNTCA9IG9ialtrZXlzW2ldXTsNCiAgICAgICAgfQ0KICAgIH0NCiAgICBpZiAoIWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJtYWluLW1lbnUiKSkgew0KICAgICAgICByZXR1cm47DQogICAgfQ0KICAgIC8vIENyZWF0ZSBtZW51DQogICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm1haW4tbWVudSIpLmlubmVySFRNTCA9ICIiOw0KICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbWVudUl0ZW1zLmxlbmd0aDsgaSsrKSB7DQogICAgICAgIG1lbnVJdGVtc1tpXS5pZCA9IGk7DQogICAgICAgIHN3aXRjaCAobWVudUl0ZW1zW2ldWyJtZW51S2V5Il0pIHsNCiAgICAgICAgICAgIGNhc2UgInVzZXJzIjoNCiAgICAgICAgICAgIGNhc2UgImxvZ291dCI6DQogICAgICAgICAgICAgICAgaWYgKFNFUlZFUlsic2V0dGluZ3MiXVsiYXV0aGVudGljYXRpb24ud2ViIl0gPT0gdHJ1ZSkgew0KICAgICAgICAgICAgICAgICAgICBtZW51SXRlbXNbaV0uY3JlYXRlSXRlbSgpOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgIm1hcHBpbmciOg0KICAgICAgICAgICAgY2FzZSAieG1sdHYiOg0KICAgICAgICAgICAgICAgIGlmIChTRVJWRVJbImNsaWVudEluZm8iXVsiZXBnU291cmNlIl0gPT0gIlhFUEciKSB7DQogICAgICAgICAgICAgICAgICAgIG1lbnVJdGVtc1tpXS5jcmVhdGVJdGVtKCk7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgICAgICBtZW51SXRlbXNbaV0uY3JlYXRlSXRlbSgpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICB9DQogICAgfQ0KICAgIHJldHVybjsNCn0NCmZ1bmN0aW9uIG9wZW5UaGlzTWVudShlbGVtZW50KSB7DQogICAgbGV0IGlkID0gZWxlbWVudC5pZDsNCiAgICBsZXQgY29udGVudCA9IG5ldyBTaG93Q29udGVudChpZCk7DQogICAgY29udGVudC5zaG93KCk7DQogICAgY2FsY3VsYXRlV3JhcHBlckhlaWdodCgpOw0KICAgIHJldHVybjsNCn0NCmNsYXNzIFBvcHVwV2luZG93IHsNCiAgICBjb25zdHJ1Y3RvcigpIHsNCiAgICAgICAgdGhpcy5Eb2N1bWVudElEID0gInBvcHVwLWN1c3RvbSI7DQogICAgICAgIHRoaXMuSW50ZXJhY3Rpb25JRCA9ICJpbnRlcmFjdGlvbiI7DQogICAgICAgIHRoaXMuZG9jID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQodGhpcy5Eb2N1bWVudElEKTsNCiAgICB9DQogICAgY3JlYXRlVGl0bGUodGl0bGUpIHsNCiAgICAgICAgbGV0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgdGQuY2xhc3NOYW1lID0gImxlZnQiOw0KICAgICAgICB0ZC5pbm5lckhUTUwgPSB0aXRsZSArICI6IjsNCiAgICAgICAgcmV0dXJuIHRkOw0KICAgIH0NCiAgICBjcmVhdGVDb250ZW50KGVsZW1lbnQpIHsNCiAgICAgICAgbGV0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgdGQuYXBwZW5kQ2hpbGQoZWxlbWVudCk7DQogICAgICAgIHJldHVybiB0ZDsNCiAgICB9DQogICAgY3JlYXRlSW50ZXJhY3Rpb24oKSB7DQogICAgICAgIGxldCBkaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsNCiAgICAgICAgZGl2LnNldEF0dHJpYnV0ZSgiaWQiLCAicG9wdXAtaW50ZXJhY3Rpb24iKTsNCiAgICAgICAgZGl2LmNsYXNzTmFtZSA9ICJpbnRlcmFjdGlvbiI7DQogICAgICAgIHRoaXMuZG9jLmFwcGVuZENoaWxkKGRpdik7DQogICAgfQ0KfQ0KY2xhc3MgUG9wdXBDb250ZW50IGV4dGVuZHMgUG9wdXBXaW5kb3cgew0KICAgIGNvbnN0cnVjdG9yKCkgew0KICAgICAgICBzdXBlciguLi5hcmd1bWVudHMpOw0KICAgICAgICB0aGlzLnRhYmxlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEFCTEUiKTsNCiAgICB9DQogICAgY3JlYXRlSGVhZGxpbmUoaGVhZGxpbmUpIHsNCiAgICAgICAgdGhpcy5kb2MuaW5uZXJIVE1MID0gIiI7DQogICAgICAgIHZhciBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiSDMiKTsNCiAgICAgICAgZWxlbWVudC5pbm5lckhUTUwgPSBoZWFkbGluZS50b1VwcGVyQ2FzZSgpOw0KICAgICAgICB0aGlzLmRvYy5hcHBlbmRDaGlsZChlbGVtZW50KTsNCiAgICAgICAgLy8gQ3JlYXRlIHRhYmxlDQogICAgICAgIHRoaXMudGFibGUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJUQUJMRSIpOw0KICAgICAgICB0aGlzLmRvYy5hcHBlbmRDaGlsZCh0aGlzLnRhYmxlKTsNCiAgICB9DQogICAgYXBwZW5kUm93KHRpdGxlLCBlbGVtZW50KSB7DQogICAgICAgIGxldCB0ciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlRSIik7DQogICAgICAgIC8vIFRpdGxlDQogICAgICAgIGlmICh0aXRsZS5sZW5ndGggIT0gMCkgew0KICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQodGhpcy5jcmVhdGVUaXRsZSh0aXRsZSkpOw0KICAgICAgICB9DQogICAgICAgIC8vIENvbnRlbnQNCiAgICAgICAgdHIuYXBwZW5kQ2hpbGQodGhpcy5jcmVhdGVDb250ZW50KGVsZW1lbnQpKTsNCiAgICAgICAgdGhpcy50YWJsZS5hcHBlbmRDaGlsZCh0cik7DQogICAgfQ0KICAgIGNyZWF0ZUlucHV0KHR5cGUsIG5hbWUsIHZhbHVlKSB7DQogICAgICAgIGxldCBpbnB1dCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIklOUFVUIik7DQogICAgICAgIGlmICh2YWx1ZSA9PSB1bmRlZmluZWQpIHsNCiAgICAgICAgICAgIHZhbHVlID0gIiI7DQogICAgICAgIH0NCiAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJ0eXBlIiwgdHlwZSk7DQogICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgibmFtZSIsIG5hbWUpOw0KICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInZhbHVlIiwgdmFsdWUpOw0KICAgICAgICByZXR1cm4gaW5wdXQ7DQogICAgfQ0KICAgIGNyZWF0ZUNoZWNrYm94KG5hbWUpIHsNCiAgICAgICAgbGV0IGlucHV0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiSU5QVVQiKTsNCiAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJ0eXBlIiwgImNoZWNrYm94Iik7DQogICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgibmFtZSIsIG5hbWUpOw0KICAgICAgICByZXR1cm4gaW5wdXQ7DQogICAgfQ0KICAgIC8vIENyZWF0ZXMgYSBzZWxlY3Rpb24gb2YgbXVsdGlwbGUgb3B0aW9ucyB2YWx1ZXMgd2l0aCB0ZXh0IGRlc2NyaXB0aW9ucw0KICAgIGNyZWF0ZVNlbGVjdCh0ZXh0LCB2YWx1ZXMsIHNldCwgZGJLZXkpIHsNCiAgICAgICAgbGV0IHNlbGVjdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlNFTEVDVCIpOw0KICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJuYW1lIiwgZGJLZXkpOw0KICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRleHQubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgICAgIGxldCBvcHRpb24gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJPUFRJT04iKTsNCiAgICAgICAgICAgIG9wdGlvbi5zZXRBdHRyaWJ1dGUoInZhbHVlIiwgdmFsdWVzW2ldKTsNCiAgICAgICAgICAgIG9wdGlvbi5pbm5lclRleHQgPSB0ZXh0W2ldOw0KICAgICAgICAgICAgc2VsZWN0LmFwcGVuZENoaWxkKG9wdGlvbik7DQogICAgICAgIH0NCiAgICAgICAgaWYgKHNldCAhPSAiIikgew0KICAgICAgICAgICAgc2VsZWN0LnZhbHVlID0gc2V0Ow0KICAgICAgICB9DQogICAgICAgIGlmIChzZXQgPT0gdW5kZWZpbmVkKSB7DQogICAgICAgICAgICBzZWxlY3QudmFsdWUgPSB2YWx1ZXNbMF07DQogICAgICAgIH0NCiAgICAgICAgcmV0dXJuIHNlbGVjdDsNCiAgICB9DQogICAgc2VsZWN0T3B0aW9uKHNlbGVjdCwgdmFsdWUpIHsNCiAgICAgICAgLy9zZWxlY3Quc2VsZWN0ZWRPcHRpb25zID0gdmFsdWUNCiAgICAgICAgbGV0IHMgPSBzZWxlY3Q7DQogICAgICAgIHMub3B0aW9uc1tzLnNlbGVjdGVkSW5kZXhdLnZhbHVlID0gdmFsdWU7DQogICAgICAgIHJldHVybiBzZWxlY3Q7DQogICAgfQ0KICAgIGRlc2NyaXB0aW9uKHZhbHVlKSB7DQogICAgICAgIGxldCB0ciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlRSIik7DQogICAgICAgIGxldCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgIGxldCBzcGFuID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiUFJFIik7DQogICAgICAgIHNwYW4uaW5uZXJIVE1MID0gdmFsdWU7DQogICAgICAgIHRyLmFwcGVuZENoaWxkKHRkKTsNCiAgICAgICAgdHIuYXBwZW5kQ2hpbGQodGhpcy5jcmVhdGVDb250ZW50KHNwYW4pKTsNCiAgICAgICAgdGhpcy50YWJsZS5hcHBlbmRDaGlsZCh0cik7DQogICAgfQ0KICAgIC8vIEludGVyYWN0aW9uDQogICAgYWRkSW50ZXJhY3Rpb24oZWxlbWVudCkgew0KICAgICAgICBsZXQgaW50ZXJhY3Rpb24gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicG9wdXAtaW50ZXJhY3Rpb24iKTsNCiAgICAgICAgaW50ZXJhY3Rpb24uYXBwZW5kQ2hpbGQoZWxlbWVudCk7DQogICAgfQ0KfQ0KZnVuY3Rpb24gb3BlblBvcFVwKGRhdGFUeXBlLCBlbGVtZW50KSB7DQogICAgbGV0IGRhdGEgPSB7fTsNCiAgICBsZXQgaWQ7DQogICAgc3dpdGNoIChlbGVtZW50KSB7DQogICAgICAgIGNhc2UgdW5kZWZpbmVkOg0KICAgICAgICAgICAgc3dpdGNoIChkYXRhVHlwZSkgew0KICAgICAgICAgICAgICAgIGNhc2UgImdyb3VwLXRpdGxlIjoNCiAgICAgICAgICAgICAgICAgICAgaWYgKGlkID09IHVuZGVmaW5lZCkgew0KICAgICAgICAgICAgICAgICAgICAgICAgaWQgPSAtMTsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBkYXRhID0gZ2V0TG9jYWxEYXRhKCJmaWx0ZXIiLCBpZCk7DQogICAgICAgICAgICAgICAgICAgIGRhdGFbInR5cGUiXSA9ICJncm91cC10aXRsZSI7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgImN1c3RvbS1maWx0ZXIiOg0KICAgICAgICAgICAgICAgICAgICBpZiAoaWQgPT0gdW5kZWZpbmVkKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBpZCA9IC0xOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIGRhdGEgPSBnZXRMb2NhbERhdGEoImZpbHRlciIsIGlkKTsNCiAgICAgICAgICAgICAgICAgICAgZGF0YVsidHlwZSJdID0gImN1c3RvbS1maWx0ZXIiOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBkZWZhdWx0Og0KICAgICAgICAgICAgICAgICAgICBkYXRhWyJpZC5wcm92aWRlciJdID0gIi0iOw0KICAgICAgICAgICAgICAgICAgICBkYXRhWyJ0eXBlIl0gPSBkYXRhVHlwZTsNCiAgICAgICAgICAgICAgICAgICAgaWQgPSAiLSI7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICBpZCA9IGVsZW1lbnQuaWQ7DQogICAgICAgICAgICBkYXRhID0gZ2V0TG9jYWxEYXRhKGRhdGFUeXBlLCBpZCk7DQogICAgICAgICAgICBicmVhazsNCiAgICB9DQogICAgbGV0IGNvbnRlbnQgPSBuZXcgUG9wdXBDb250ZW50KCk7DQogICAgc3dpdGNoIChkYXRhVHlwZSkgew0KICAgICAgICBjYXNlICJwbGF5bGlzdCI6DQogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUhlYWRsaW5lKCJ7ey5wbGF5bGlzdC5wbGF5bGlzdFR5cGUudGl0bGV9fSIpOw0KICAgICAgICAgICAgLy8gVHlwZQ0KICAgICAgICAgICAgdmFyIHRleHQgPSBbIk0zVSIsICJIREhvbWVSdW4iXTsNCiAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBbImphdmFzY3JpcHQ6IG9wZW5Qb3BVcCgnbTN1JykiLCAiamF2YXNjcmlwdDogb3BlblBvcFVwKCdoZGhyJykiXTsNCiAgICAgICAgICAgIHZhciBzZWxlY3QgPSBjb250ZW50LmNyZWF0ZVNlbGVjdCh0ZXh0LCB2YWx1ZXMsICIiLCAidHlwZSIpOw0KICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgiaWQiLCAidHlwZSIpOw0KICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAnamF2YXNjcmlwdDogY2hhbmdlQnV0dG9uQWN0aW9uKHRoaXMsICJuZXh0IiwgIm9uY2xpY2siKScpOyAvLyBjaGFuZ2VCdXR0b25BY3Rpb24NCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5wbGF5bGlzdC50eXBlLnRpdGxlfX0iLCBzZWxlY3QpOw0KICAgICAgICAgICAgLy8gSW50ZXJhY3Rpb24NCiAgICAgICAgICAgIGNvbnRlbnQuY3JlYXRlSW50ZXJhY3Rpb24oKTsNCiAgICAgICAgICAgIC8vIEFib3J0DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAiY2FuY2VsIiwgInt7LmJ1dHRvbi5jYW5jZWx9fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IHNob3dFbGVtZW50KCJwb3B1cCIsIGZhbHNlKTsnKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgLy8gTmV4dA0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgIm5leHQiLCAie3suYnV0dG9uLm5leHR9fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgibTN1IiknKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgiaWQiLCAnbmV4dCcpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSAibTN1IjoNCiAgICAgICAgICAgIGNvbnRlbnQuY3JlYXRlSGVhZGxpbmUoZGF0YVR5cGUpOw0KICAgICAgICAgICAgLy8gTmFtZQ0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gIm5hbWUiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnBsYXlsaXN0Lm5hbWUucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnBsYXlsaXN0Lm5hbWUudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIERlc2NyaXB0aW9uDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAiZGVzY3JpcHRpb24iOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnBsYXlsaXN0LmRlc2NyaXB0aW9uLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5wbGF5bGlzdC5kZXNjcmlwdGlvbi50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgLy8gVVJMDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAiZmlsZS5zb3VyY2UiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnBsYXlsaXN0LmZpbGVNM1UucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnBsYXlsaXN0LmZpbGVNM1UudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIFR1bmVyDQogICAgICAgICAgICBpZiAoU0VSVkVSWyJzZXR0aW5ncyJdWyJidWZmZXIiXSAhPSAiLSIpIHsNCiAgICAgICAgICAgICAgICB2YXIgdGV4dCA9IFtdOw0KICAgICAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBbXTsNCiAgICAgICAgICAgICAgICBmb3IgKHZhciBpID0gMTsgaSA8PSAxMDA7IGkrKykgew0KICAgICAgICAgICAgICAgICAgICB0ZXh0LnB1c2goaS50b1N0cmluZygpKTsNCiAgICAgICAgICAgICAgICAgICAgdmFsdWVzLnB1c2goaS50b1N0cmluZygpKTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgdmFyIGRiS2V5ID0gInR1bmVyIjsNCiAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCBkYXRhW2RiS2V5XSwgZGJLZXkpOw0KICAgICAgICAgICAgICAgIHNlbGVjdC5zZXRBdHRyaWJ1dGUoIm9uZm9jdXMiLCAiamF2YXNjcmlwdDogcmV0dXJuOyIpOw0KICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5wbGF5bGlzdC50dW5lci50aXRsZX19Iiwgc2VsZWN0KTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgICAgIHZhciBkYktleSA9ICJ0dW5lciI7DQogICAgICAgICAgICAgICAgaWYgKGRhdGFbZGJLZXldID09IHVuZGVmaW5lZCkgew0KICAgICAgICAgICAgICAgICAgICBkYXRhW2RiS2V5XSA9IDE7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicmVhZG9ubHkiLCAidHJ1ZSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LmNsYXNzTmFtZSA9ICJub3RBdmFpbGFibGUiOw0KICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5wbGF5bGlzdC50dW5lci50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgY29udGVudC5kZXNjcmlwdGlvbigie3sucGxheWxpc3QudHVuZXIuZGVzY3JpcHRpb259fSIpOw0KICAgICAgICAgICAgLy8gSW50ZXJhdGlvbg0KICAgICAgICAgICAgY29udGVudC5jcmVhdGVJbnRlcmFjdGlvbigpOw0KICAgICAgICAgICAgLy8gRGVsZXRlDQogICAgICAgICAgICBpZiAoZGF0YVsiaWQucHJvdmlkZXIiXSAhPSAiLSIpIHsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAiZGVsZXRlIiwgInt7LmJ1dHRvbi5kZWxldGV9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LmNsYXNzTmFtZSA9ICJkZWxldGUiOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBzYXZlUG9wdXBEYXRhKCJtM3UiLCAiJyArIGlkICsgJyIsIHRydWUsIDApJyk7DQogICAgICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAiYmFjayIsICJ7ey5idXR0b24uYmFja319Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgicGxheWxpc3QiKScpOw0KICAgICAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgLy8gQWJvcnQNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJjYW5jZWwiLCAie3suYnV0dG9uLmNhbmNlbH19Iik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogc2hvd0VsZW1lbnQoInBvcHVwIiwgZmFsc2UpOycpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICAvLyBVcGRhdGUNCiAgICAgICAgICAgIGlmIChkYXRhWyJpZC5wcm92aWRlciJdICE9ICItIikgew0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJ1cGRhdGUiLCAie3suYnV0dG9uLnVwZGF0ZX19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoIm0zdSIsICInICsgaWQgKyAnIiwgZmFsc2UsIDEpJyk7DQogICAgICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICAvLyBTYXZlDQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAic2F2ZSIsICJ7ey5idXR0b24uc2F2ZX19Iik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogc2F2ZVBvcHVwRGF0YSgibTN1IiwgIicgKyBpZCArICciLCBmYWxzZSwgMCknKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGNhc2UgImhkaHIiOg0KICAgICAgICAgICAgY29udGVudC5jcmVhdGVIZWFkbGluZShkYXRhVHlwZSk7DQogICAgICAgICAgICAvLyBOYW1lDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAibmFtZSI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3sucGxheWxpc3QubmFtZS5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sucGxheWxpc3QubmFtZS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgLy8gRGVzY3JpcHRpb24NCiAgICAgICAgICAgIHZhciBkYktleSA9ICJkZXNjcmlwdGlvbiI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3sucGxheWxpc3QuZGVzY3JpcHRpb24ucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnBsYXlsaXN0LmRlc2NyaXB0aW9uLnBsYWNlaG9sZGVyfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBVUkwNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJmaWxlLnNvdXJjZSI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3sucGxheWxpc3QuZmlsZUhESFIucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnBsYXlsaXN0LmZpbGVIREhSLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBUdW5lcg0KICAgICAgICAgICAgaWYgKFNFUlZFUlsic2V0dGluZ3MiXVsiYnVmZmVyIl0gIT0gIi0iKSB7DQogICAgICAgICAgICAgICAgdmFyIHRleHQgPSBbXTsNCiAgICAgICAgICAgICAgICB2YXIgdmFsdWVzID0gW107DQogICAgICAgICAgICAgICAgZm9yICh2YXIgaSA9IDE7IGkgPD0gMTAwOyBpKyspIHsNCiAgICAgICAgICAgICAgICAgICAgdGV4dC5wdXNoKGkudG9TdHJpbmcoKSk7DQogICAgICAgICAgICAgICAgICAgIHZhbHVlcy5wdXNoKGkudG9TdHJpbmcoKSk7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIHZhciBkYktleSA9ICJ0dW5lciI7DQogICAgICAgICAgICAgICAgdmFyIHNlbGVjdCA9IGNvbnRlbnQuY3JlYXRlU2VsZWN0KHRleHQsIHZhbHVlcywgZGF0YVtkYktleV0sIGRiS2V5KTsNCiAgICAgICAgICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJvbmZvY3VzIiwgImphdmFzY3JpcHQ6IHJldHVybjsiKTsNCiAgICAgICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sucGxheWxpc3QudHVuZXIudGl0bGV9fSIsIHNlbGVjdCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICB2YXIgZGJLZXkgPSAidHVuZXIiOw0KICAgICAgICAgICAgICAgIGlmIChkYXRhW2RiS2V5XSA9PSB1bmRlZmluZWQpIHsNCiAgICAgICAgICAgICAgICAgICAgZGF0YVtkYktleV0gPSAxOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInJlYWRvbmx5IiwgInRydWUiKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5jbGFzc05hbWUgPSAibm90QXZhaWxhYmxlIjsNCiAgICAgICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sucGxheWxpc3QudHVuZXIudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGNvbnRlbnQuZGVzY3JpcHRpb24oInt7LnBsYXlsaXN0LnR1bmVyLmRlc2NyaXB0aW9ufX0iKTsNCiAgICAgICAgICAgIC8vIEludGVyYWN0aW9uDQogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUludGVyYWN0aW9uKCk7DQogICAgICAgICAgICAvLyBEZWxldGUNCiAgICAgICAgICAgIGlmIChkYXRhWyJpZC5wcm92aWRlciJdICE9ICItIikgew0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJkZWxldGUiLCAie3suYnV0dG9uLmRlbGV0ZX19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoImhkaHIiLCAiJyArIGlkICsgJyIsIHRydWUsIDApJyk7DQogICAgICAgICAgICAgICAgaW5wdXQuY2xhc3NOYW1lID0gImRlbGV0ZSI7DQogICAgICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAiYmFjayIsICJ7ey5idXR0b24uYmFja319Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgicGxheWxpc3QiKScpOw0KICAgICAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgLy8gQWJvcnQNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJjYW5jZWwiLCAie3suYnV0dG9uLmNhbmNlbH19Iik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogc2hvd0VsZW1lbnQoInBvcHVwIiwgZmFsc2UpOycpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICAvLyBVcGRhdGUNCiAgICAgICAgICAgIGlmIChkYXRhWyJpZC5wcm92aWRlciJdICE9ICItIikgew0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJ1cGRhdGUiLCAie3suYnV0dG9uLnVwZGF0ZX19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoImhkaHIiLCAiJyArIGlkICsgJyIsIGZhbHNlLCAxKScpOw0KICAgICAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgLy8gU2F2ZQ0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgInNhdmUiLCAie3suYnV0dG9uLnNhdmV9fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoImhkaHIiLCAiJyArIGlkICsgJyIsIGZhbHNlLCAwKScpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSAiZmlsdGVyIjoNCiAgICAgICAgICAgIGNvbnRlbnQuY3JlYXRlSGVhZGxpbmUoZGF0YVR5cGUpOw0KICAgICAgICAgICAgLy8gVHlwZQ0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gInR5cGUiOw0KICAgICAgICAgICAgdmFyIHRleHQgPSBbIk0zVTogIiArICJ7ey5maWx0ZXIudHlwZS5ncm91cFRpdGxlfX0iLCAieFRlVmU6ICIgKyAie3suZmlsdGVyLnR5cGUuY3VzdG9tRmlsdGVyfX0iXTsNCiAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBbImphdmFzY3JpcHQ6IG9wZW5Qb3BVcCgnZ3JvdXAtdGl0bGUnKSIsICJqYXZhc2NyaXB0OiBvcGVuUG9wVXAoJ2N1c3RvbS1maWx0ZXInKSJdOw0KICAgICAgICAgICAgdmFyIHNlbGVjdCA9IGNvbnRlbnQuY3JlYXRlU2VsZWN0KHRleHQsIHZhbHVlcywgImphdmFzY3JpcHQ6IG9wZW5Qb3BVcCgnZ3JvdXAtdGl0bGUnKSIsIGRiS2V5KTsNCiAgICAgICAgICAgIHNlbGVjdC5zZXRBdHRyaWJ1dGUoImlkIiwgaWQpOw0KICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAnamF2YXNjcmlwdDogY2hhbmdlQnV0dG9uQWN0aW9uKHRoaXMsICJuZXh0IiwgIm9uY2xpY2siKTsnKTsgLy8gY2hhbmdlQnV0dG9uQWN0aW9uDQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3suZmlsdGVyLnR5cGUudGl0bGV9fSIsIHNlbGVjdCk7DQogICAgICAgICAgICAvLyBJbnRlcmFjdGlvbg0KICAgICAgICAgICAgY29udGVudC5jcmVhdGVJbnRlcmFjdGlvbigpOw0KICAgICAgICAgICAgLy8gQWJvcnQNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJjYW5jZWwiLCAie3suYnV0dG9uLmNhbmNlbH19Iik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogc2hvd0VsZW1lbnQoInBvcHVwIiwgZmFsc2UpOycpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICAvLyBOZXh0DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAibmV4dCIsICJ7ey5idXR0b24ubmV4dH19Iik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJncm91cC10aXRsZSIpJyk7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoImlkIiwgJ25leHQnKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGNhc2UgImN1c3RvbS1maWx0ZXIiOg0KICAgICAgICBjYXNlICJncm91cC10aXRsZSI6DQogICAgICAgICAgICBzd2l0Y2ggKGRhdGFUeXBlKSB7DQogICAgICAgICAgICAgICAgY2FzZSAiY3VzdG9tLWZpbHRlciI6DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuY3JlYXRlSGVhZGxpbmUoInt7LmZpbHRlci5jdXN0b219fSIgKyAiIEZpbHRlciIpOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBjYXNlICJncm91cC10aXRsZSI6DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuY3JlYXRlSGVhZGxpbmUoInt7LmZpbHRlci5ncm91cH19IiArICIgRmlsdGVyIik7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgLy8gTmFtZSAgICAgIA0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gIm5hbWUiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LmZpbHRlci5uYW1lLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5maWx0ZXIubmFtZS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgLy8gRGVzY3JpcHRpb24NCiAgICAgICAgICAgIHZhciBkYktleSA9ICJkZXNjcmlwdGlvbiI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3suZmlsdGVyLmRlc2NyaXB0aW9uLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5maWx0ZXIuZGVzY3JpcHRpb24udGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIFR5cGUNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJ0eXBlIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImhpZGRlbiIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygiIiwgaW5wdXQpOw0KICAgICAgICAgICAgdmFyIGZpbHRlclR5cGUgPSBkYXRhW2RiS2V5XTsNCiAgICAgICAgICAgIHN3aXRjaCAoZmlsdGVyVHlwZSkgew0KICAgICAgICAgICAgICAgIGNhc2UgImN1c3RvbS1maWx0ZXIiOg0KICAgICAgICAgICAgICAgICAgICAvLyBDYXNlIHNlbnNpdGl2ZQ0KICAgICAgICAgICAgICAgICAgICB2YXIgZGJLZXkgPSAiY2FzZVNlbnNpdGl2ZSI7DQogICAgICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goZGJLZXkpOw0KICAgICAgICAgICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YVtkYktleV07DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5maWx0ZXIuY2FzZVNlbnNpdGl2ZS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgICAgICAgICAvLyBGaWx0ZXIgUnVsZSAoQ3VzdG9tKQ0KICAgICAgICAgICAgICAgICAgICB2YXIgZGJLZXkgPSAiZmlsdGVyIjsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3suZmlsdGVyLmZpbHRlclJ1bGUucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3suZmlsdGVyLmZpbHRlclJ1bGUudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAiZ3JvdXAtdGl0bGUiOg0KICAgICAgICAgICAgICAgICAgICAvL2FsZXJ0KGRiS2V5ICsgIiAiICsgZmlsdGVyVHlwZSkNCiAgICAgICAgICAgICAgICAgICAgLy8gRmlsdGVyIGJhc2VkIG9uIHRoZSBncm91cHMgaW4gdGhlIE0zVQ0KICAgICAgICAgICAgICAgICAgICB2YXIgZGJLZXkgPSAiZmlsdGVyIjsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGdyb3Vwc00zVSA9IGdldExvY2FsRGF0YSgibTN1R3JvdXBzIiwgIiIpOw0KICAgICAgICAgICAgICAgICAgICB2YXIgdGV4dCA9IGdyb3Vwc00zVVsidGV4dCJdOw0KICAgICAgICAgICAgICAgICAgICB2YXIgdmFsdWVzID0gZ3JvdXBzTTNVWyJ2YWx1ZSJdOw0KICAgICAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCBkYXRhW2RiS2V5XSwgZGJLZXkpOw0KICAgICAgICAgICAgICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3suZmlsdGVyLmZpbHRlckdyb3VwLnRpdGxlfX0iLCBzZWxlY3QpOw0KICAgICAgICAgICAgICAgICAgICBjb250ZW50LmRlc2NyaXB0aW9uKCJ7ey5maWx0ZXIuZmlsdGVyR3JvdXAuZGVzY3JpcHRpb259fSIpOw0KICAgICAgICAgICAgICAgICAgICAvLyBDYXNlIHNlbnNldGl2ZQ0KICAgICAgICAgICAgICAgICAgICB2YXIgZGJLZXkgPSAiY2FzZVNlbnNpdGl2ZSI7DQogICAgICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goZGJLZXkpOw0KICAgICAgICAgICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YVtkYktleV07DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5maWx0ZXIuY2FzZVNlbnNpdGl2ZS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgICAgICAgICB2YXIgZGJLZXkgPSAiaW5jbHVkZSI7DQogICAgICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LmZpbHRlci5pbmNsdWRlLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LmZpbHRlci5pbmNsdWRlLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuZGVzY3JpcHRpb24oInt7LmZpbHRlci5pbmNsdWRlLmRlc2NyaXB0aW9ufX0iKTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGRiS2V5ID0gImV4Y2x1ZGUiOw0KICAgICAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5maWx0ZXIuZXhjbHVkZS5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5maWx0ZXIuZXhjbHVkZS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgICAgICAgICBjb250ZW50LmRlc2NyaXB0aW9uKCJ7ey5maWx0ZXIuZXhjbHVkZS5kZXNjcmlwdGlvbn19Iik7DQogICAgICAgICAgICAgICAgICAgIC8vIFByZXNlcnZlIE0zVSBQbGF5bGlzdCBDaGFubmVsIE1hcHBpbmcNCiAgICAgICAgICAgICAgICAgICAgdmFyIGRiS2V5ID0gInByZXNlcnZlTWFwcGluZyI7DQogICAgICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goZGJLZXkpOw0KICAgICAgICAgICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YVtkYktleV07DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5maWx0ZXIucHJlc2VydmVNYXBwaW5nLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAgICAgICAgIC8vIFN0YXJ0aW5nIENoYW5uZWwgTnVtYmVyIE1hcHBpbmcNCiAgICAgICAgICAgICAgICAgICAgdmFyIGRiS2V5ID0gInN0YXJ0aW5nQ2hhbm5lbCI7DQogICAgICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LmZpbHRlci5zdGFydGluZ0NoYW5uZWwucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3suZmlsdGVyLnN0YXJ0aW5nQ2hhbm5lbC50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgICAgICAgICAvLyBGaWxsIE1pc3NpbmcgRVBHIERhdGENCiAgICAgICAgICAgICAgICAgICAgLy8gVGhlIGZvbGxvd2luZyBjb2RlIG9ubHkgd29ya3Mgd2hlbiB4VGVWZSBEdW1teSBhbHJlYWR5IGV4aXN0cw0KICAgICAgICAgICAgICAgICAgICAvLyB2YXIgZGJLZXk6c3RyaW5nID0gImRlZmF1bHRNaXNzaW5nRVBHIg0KICAgICAgICAgICAgICAgICAgICAvLyB2YXIgeG1sdHY6WE1MVFZGaWxlID0gbmV3IFhNTFRWRmlsZSgpDQogICAgICAgICAgICAgICAgICAgIC8vIHZhciBzZWxlY3QgPSB4bWx0di5nZXRQcm9ncmFtcygieFRlVmUgRHVtbXkiLCBkYXRhW2RiS2V5XSkNCiAgICAgICAgICAgICAgICAgICAgLy8gc2VsZWN0LnNldEF0dHJpYnV0ZSgibmFtZSIsIGRiS2V5KQ0KICAgICAgICAgICAgICAgICAgICAvLyBzZWxlY3Quc2V0QXR0cmlidXRlKCJpZCIsICJwb3B1cC1taXNzaW5nLWVwZyIpDQogICAgICAgICAgICAgICAgICAgIC8vIFRoZSB3b3JrYXJvdW5kIGlzIGN1cnJlbnRseSB0byBoYXJkIGNvZGUgdGhlIHhUZVZlIER1bW15IGRhdGENCiAgICAgICAgICAgICAgICAgICAgdmFyIGRiS2V5ID0gImRlZmF1bHRNaXNzaW5nRVBHIjsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGxpc3RPcHRpb25zID0geyAidGV4dCI6IFsiLSIsICIzMCBNaW51dGVzICgzMF9NaW51dGVzKSIsICI2MCBNaW51dGVzICg2MF9NaW51dGVzKSIsICI5MCBNaW51dGVzICg5MF9NaW51dGVzKSIsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgIjEyMCBNaW51dGVzICgxMjBfTWludXRlcykiLCAiMTgwIE1pbnV0ZXMgKDMwX01pbnV0ZXMpIiwgIjI0MCBNaW51dGVzICgzMF9NaW51dGVzKSIsICIzNjAgTWludXRlcyAoMzBfTWludXRlcykiXSwNCiAgICAgICAgICAgICAgICAgICAgICAgICJ2YWx1ZSI6IFsiLSIsICIzMF9NaW51dGVzIiwgIjYwX01pbnV0ZXMiLCAiOTBfTWludXRlcyIsICIxMjBfTWludXRlcyIsICIxODBfTWludXRlcyIsICIyNDBfTWludXRlcyIsICIzNjBfTWludXRlcyIsXSB9Ow0KICAgICAgICAgICAgICAgICAgICB2YXIgdGV4dCA9IGxpc3RPcHRpb25zWyJ0ZXh0Il07DQogICAgICAgICAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBsaXN0T3B0aW9uc1sidmFsdWUiXTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHNlbGVjdCA9IGNvbnRlbnQuY3JlYXRlU2VsZWN0KHRleHQsIHZhbHVlcywgZGF0YVtkYktleV0sIGRiS2V5KTsNCiAgICAgICAgICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LmZpbHRlci5kZWZhdWx0TWlzc2luZ0VQRy50aXRsZX19Iiwgc2VsZWN0KTsNCiAgICAgICAgICAgICAgICAgICAgY29udGVudC5kZXNjcmlwdGlvbigie3suZmlsdGVyLmRlZmF1bHRNaXNzaW5nRVBHLmRlc2NyaXB0aW9ufX0iKTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICB9DQogICAgICAgICAgICAvLyBJbnRlcmFjdGlvbg0KICAgICAgICAgICAgY29udGVudC5jcmVhdGVJbnRlcmFjdGlvbigpOw0KICAgICAgICAgICAgLy8gRGVsZXRlDQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAiZGVsZXRlIiwgInt7LmJ1dHRvbi5kZWxldGV9fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoImZpbHRlciIsICInICsgaWQgKyAnIiwgdHJ1ZSwgMCknKTsNCiAgICAgICAgICAgIGlucHV0LmNsYXNzTmFtZSA9ICJkZWxldGUiOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICAvLyBBYm9ydA0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImNhbmNlbCIsICJ7ey5idXR0b24uY2FuY2VsfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBzaG93RWxlbWVudCgicG9wdXAiLCBmYWxzZSk7Jyk7DQogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIC8vIFNhdmUNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJzYXZlIiwgInt7LmJ1dHRvbi5zYXZlfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBzYXZlUG9wdXBEYXRhKCJmaWx0ZXIiLCAiJyArIGlkICsgJyIsIGZhbHNlLCAwKScpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSAieG1sdHYiOg0KICAgICAgICAgICAgY29udGVudC5jcmVhdGVIZWFkbGluZShkYXRhVHlwZSk7DQogICAgICAgICAgICAvLyBOYW1lDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAibmFtZSI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3sueG1sdHYubmFtZS5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sueG1sdHYubmFtZS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgLy8gRGVzY3JpcHRpb24NCiAgICAgICAgICAgIHZhciBkYktleSA9ICJkZXNjcmlwdGlvbiI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3sueG1sdHYuZGVzY3JpcHRpb24ucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnhtbHR2LmRlc2NyaXB0aW9uLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBVUkwNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJmaWxlLnNvdXJjZSI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3sueG1sdHYuZmlsZVhNTFRWLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey54bWx0di5maWxlWE1MVFYudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIEludGVyYWN0aW9uDQogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUludGVyYWN0aW9uKCk7DQogICAgICAgICAgICAvLyBEZWxldGUNCiAgICAgICAgICAgIGlmIChkYXRhWyJpZC5wcm92aWRlciJdICE9ICItIikgew0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJkZWxldGUiLCAie3suYnV0dG9uLmRlbGV0ZX19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoInhtbHR2IiwgIicgKyBpZCArICciLCB0cnVlLCAwKScpOw0KICAgICAgICAgICAgICAgIGlucHV0LmNsYXNzTmFtZSA9ICJkZWxldGUiOw0KICAgICAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgLy8gQWJvcnQNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJjYW5jZWwiLCAie3suYnV0dG9uLmNhbmNlbH19Iik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogc2hvd0VsZW1lbnQoInBvcHVwIiwgZmFsc2UpOycpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICAvLyBVcGRhdGUNCiAgICAgICAgICAgIGlmIChkYXRhWyJpZC5wcm92aWRlciJdICE9ICItIikgew0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJ1cGRhdGUiLCAie3suYnV0dG9uLnVwZGF0ZX19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoInhtbHR2IiwgIicgKyBpZCArICciLCBmYWxzZSwgMSknKTsNCiAgICAgICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIC8vIFNhdmUNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJzYXZlIiwgInt7LmJ1dHRvbi5zYXZlfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBzYXZlUG9wdXBEYXRhKCJ4bWx0diIsICInICsgaWQgKyAnIiwgZmFsc2UsIDApJyk7DQogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJ1c2VycyI6DQogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUhlYWRsaW5lKCJ7ey5tYWluTWVudS5pdGVtLnVzZXJzfX0iKTsNCiAgICAgICAgICAgIC8vIFVzZXIgbmFtZQ0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gInVzZXJuYW1lIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey51c2Vycy51c2VybmFtZS5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sudXNlcnMudXNlcm5hbWUudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIE5ldyBQYXJzc3dvcmQNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJwYXNzd29yZCI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJwYXNzd29yZCIsIGRiS2V5LCAiIik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnVzZXJzLnBhc3N3b3JkLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey51c2Vycy5wYXNzd29yZC50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgLy8gQ29uZmlybWF0aW9uDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAiY29uZmlybSI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJwYXNzd29yZCIsIGRiS2V5LCAiIik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnVzZXJzLmNvbmZpcm0ucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnVzZXJzLmNvbmZpcm0udGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIEF1dGhlbnRpY2F0aW9uIFdFQg0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gImF1dGhlbnRpY2F0aW9uLndlYiI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KGRiS2V5KTsNCiAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhW2RiS2V5XTsNCiAgICAgICAgICAgIGlmIChkYXRhWyJkZWZhdWx0VXNlciJdID09IHRydWUpIHsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAiamF2YXNjcmlwdDogcmV0dXJuIGZhbHNlIik7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sudXNlcnMud2ViLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBBdXRoZW50aWNhdGlvbiBQTVMNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJhdXRoZW50aWNhdGlvbi5wbXMiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChkYktleSk7DQogICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YVtkYktleV07DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sudXNlcnMucG1zLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBBdXRoZW50aWNhdGlvbiBNM1UNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJhdXRoZW50aWNhdGlvbi5tM3UiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChkYktleSk7DQogICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YVtkYktleV07DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sudXNlcnMubTN1LnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBBdXRoZW50aWNhdGlvbiBYTUwNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJhdXRoZW50aWNhdGlvbi54bWwiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChkYktleSk7DQogICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YVtkYktleV07DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sudXNlcnMueG1sLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBBdXRoZW50aWNhdGlvbiBBUEkNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJhdXRoZW50aWNhdGlvbi5hcGkiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChkYktleSk7DQogICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YVtkYktleV07DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sudXNlcnMuYXBpLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBJbnRlcmFjdGlvbg0KICAgICAgICAgICAgY29udGVudC5jcmVhdGVJbnRlcmFjdGlvbigpOw0KICAgICAgICAgICAgLy8gRGVsZXRlDQogICAgICAgICAgICBpZiAoZGF0YVsiZGVmYXVsdFVzZXIiXSAhPSB0cnVlICYmIGlkICE9ICItIikgew0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJkZWxldGUiLCAie3suYnV0dG9uLmRlbGV0ZX19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuY2xhc3NOYW1lID0gImRlbGV0ZSI7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoIicgKyBkYXRhVHlwZSArICciLCAiJyArIGlkICsgJyIsIHRydWUsIDApJyk7DQogICAgICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICAvLyBBYm9ydA0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImNhbmNlbCIsICJ7ey5idXR0b24uY2FuY2VsfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBzaG93RWxlbWVudCgicG9wdXAiLCBmYWxzZSk7Jyk7DQogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIC8vIFNhdmUNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJzYXZlIiwgInt7LmJ1dHRvbi5zYXZlfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBzYXZlUG9wdXBEYXRhKCInICsgZGF0YVR5cGUgKyAnIiwgIicgKyBpZCArICciLCAiZmFsc2UiKTsnKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGNhc2UgIm1hcHBpbmciOg0KICAgICAgICAgICAgY29udGVudC5jcmVhdGVIZWFkbGluZSgie3subWFpbk1lbnUuaXRlbS5tYXBwaW5nfX0iKTsNCiAgICAgICAgICAgIC8vIEFjdGl2ZQ0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gIngtYWN0aXZlIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goZGJLZXkpOw0KICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGFbZGJLZXldOw0KICAgICAgICAgICAgaW5wdXQuaWQgPSAiYWN0aXZlIjsNCiAgICAgICAgICAgIC8vaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpDQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRvZ2dsZUNoYW5uZWxTdGF0dXMoJyIgKyBpZCArICInLCB0aGlzKSIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7Lm1hcHBpbmcuYWN0aXZlLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBDaGFubmVsIG5hbWUNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJ4LW5hbWUiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICBpZiAoQlVMS19FRElUID09IHRydWUpIHsNCiAgICAgICAgICAgICAgICBpbnB1dC5zdHlsZS5ib3JkZXIgPSAic29saWQgMXB4IHJlZCI7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJyZWFkb25seSIsICJ0cnVlIik7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3subWFwcGluZy5jaGFubmVsTmFtZS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgY29udGVudC5kZXNjcmlwdGlvbihkYXRhWyJuYW1lIl0pOw0KICAgICAgICAgICAgLy8gRGVzY3JpcHRpb24NCiAgICAgICAgICAgIHZhciBkYktleSA9ICJ4LWRlc2NyaXB0aW9uIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5tYXBwaW5nLmRlc2NyaXB0aW9uLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5tYXBwaW5nLmRlc2NyaXB0aW9uLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBVcGRhdGUgdGhlIGNoYW5uZWwgbmFtZQ0KICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoIl91dWlkLmtleSIpKSB7DQogICAgICAgICAgICAgICAgaWYgKGRhdGFbIl91dWlkLmtleSJdICE9ICIiKSB7DQogICAgICAgICAgICAgICAgICAgIHZhciBkYktleSA9ICJ4LXVwZGF0ZS1jaGFubmVsLW5hbWUiOw0KICAgICAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KGRiS2V5KTsNCiAgICAgICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YVtkYktleV07DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5tYXBwaW5nLnVwZGF0ZUNoYW5uZWxOYW1lLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgLy8gTG9nbyBVUkwgKENoYW5uZWwpIA0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gInR2Zy1sb2dvIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJpZCIsICJjaGFubmVsLWljb24iKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5tYXBwaW5nLmNoYW5uZWxMb2dvLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBDaGFubmVsIGxvZ28gdXBkYXRlDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAieC11cGRhdGUtY2hhbm5lbC1pY29uIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goZGJLZXkpOw0KICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGFbZGJLZXldOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJpZCIsICJ1cGRhdGUtaWNvbiIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJzsgY2hhbmdlQ2hhbm5lbExvZ28oJyIgKyBpZCArICInKTsiKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5tYXBwaW5nLnVwZGF0ZUNoYW5uZWxMb2dvLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBFeHBhbmQgRVBHIGNhdGVnb3J5DQogICAgICAgICAgICB2YXIgZGJLZXkgPSAieC1jYXRlZ29yeSI7DQogICAgICAgICAgICB2YXIgdGV4dCA9IFsiLSIsICJLaWRzIChFbWJ5IG9ubHkpIiwgIk5ld3MiLCAiTW92aWUiLCAiU2VyaWVzIiwgIlNwb3J0cyJdOw0KICAgICAgICAgICAgdmFyIHZhbHVlcyA9IFsiIiwgIktpZHMiLCAiTmV3cyIsICJNb3ZpZSIsICJTZXJpZXMiLCAiU3BvcnRzIl07DQogICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCBkYXRhW2RiS2V5XSwgZGJLZXkpOw0KICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5tYXBwaW5nLmVwZ0NhdGVnb3J5LnRpdGxlfX0iLCBzZWxlY3QpOw0KICAgICAgICAgICAgLy8gTTNVIGdyb3VwIHRpdGxlDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAieC1ncm91cC10aXRsZSI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgIGlucHV0LmRhdGFzZXQub2xkVmFsdWUgPSBkYXRhW2RiS2V5XTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5tYXBwaW5nLm0zdUdyb3VwVGl0bGUudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIGlmIChkYXRhWyJncm91cC10aXRsZSJdICE9IHVuZGVmaW5lZCkgew0KICAgICAgICAgICAgICAgIGNvbnRlbnQuZGVzY3JpcHRpb24oZGF0YVsiZ3JvdXAtdGl0bGUiXSk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBpZiAoZGF0YVsieC11cGRhdGUtY2hhbm5lbC1ncm91cCJdID09IHRydWUpIHsNCiAgICAgICAgICAgICAgICBpbnB1dC5kaXNhYmxlZCA9IHRydWU7DQogICAgICAgICAgICB9DQogICAgICAgICAgICAvLyBVcGRhdGUgY2hhbm5lbCBncm91cCBjaGVja2JveA0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gIngtdXBkYXRlLWNoYW5uZWwtZ3JvdXAiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChkYktleSk7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRvZ2dsZUdyb3VwVXBkYXRlQ2IoJyIgKyBpZCArICInLCB0aGlzKTsiKTsNCiAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhW2RiS2V5XTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5tYXBwaW5nLnVwZGF0ZUNoYW5uZWxHcm91cC50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgY29udGVudC5kZXNjcmlwdGlvbigie3subWFwcGluZy51cGRhdGVDaGFubmVsR3JvdXAuZGVzY3JpcHRpb259fSIpOw0KICAgICAgICAgICAgLy8gWE1MVFYgZmlsZQ0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gJ3gteG1sdHYtZmlsZSc7DQogICAgICAgICAgICBjb25zdCB4bWxUdkZpbGUgPSBkYXRhW2RiS2V5XTsNCiAgICAgICAgICAgIHZhciB4bWxUdiA9IG5ldyBYTUxUVkZpbGUoKTsNCiAgICAgICAgICAgIGNvbnN0IHhtbFR2RmlsZVNlbGVjdCA9IHhtbFR2LmdldEZpbGVzKGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIHhtbFR2RmlsZVNlbGVjdC5zZXRBdHRyaWJ1dGUoJ25hbWUnLCBkYktleSk7DQogICAgICAgICAgICB4bWxUdkZpbGVTZWxlY3Quc2V0QXR0cmlidXRlKCdpZCcsICdwb3B1cC14bWx0dicpOw0KICAgICAgICAgICAgeG1sVHZGaWxlU2VsZWN0LnNldEF0dHJpYnV0ZSgnb25jaGFuZ2UnLCBgamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCc7IHNldFhtbHR2Q2hhbm5lbCgnJHtpZH0nLCB0aGlzKTtgKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCd7ey5tYXBwaW5nLnhtbHR2RmlsZS50aXRsZX19JywgeG1sVHZGaWxlU2VsZWN0KTsNCiAgICAgICAgICAgIC8vIFhNTFRWIE1hcHBpbmcNCiAgICAgICAgICAgIHZhciBkYktleSA9ICd4LW1hcHBpbmcnOw0KICAgICAgICAgICAgdmFyIHhtbFR2ID0gbmV3IFhNTFRWRmlsZSgpOw0KICAgICAgICAgICAgY29uc3QgY3VycmVudFhtbFR2SWQgPSBkYXRhW2RiS2V5XTsNCiAgICAgICAgICAgIGNvbnN0IFt4bWxUdklkQ29udGFpbmVyLCB4bWxUdklkSW5wdXQsIHhtbFR2SWREYXRhbGlzdF0gPSB4bWxUdi5uZXdYbWxUdklkUGlja2VyKHhtbFR2RmlsZSwgY3VycmVudFhtbFR2SWQpOw0KICAgICAgICAgICAgeG1sVHZJZENvbnRhaW5lci5zZXRBdHRyaWJ1dGUoJ2lkJywgJ3htbHR2LWlkLXBpY2tlci1jb250YWluZXInKTsNCiAgICAgICAgICAgIHhtbFR2SWRJbnB1dC5zZXRBdHRyaWJ1dGUoJ2xpc3QnLCAneG1sdHYtaWQtcGlja2VyLWRhdGFsaXN0Jyk7DQogICAgICAgICAgICB4bWxUdklkSW5wdXQuc2V0QXR0cmlidXRlKCduYW1lJywgJ3gtbWFwcGluZycpOyAvLyBTaG91bGQgc3RheSB4LW1hcHBpbmcgYXMgaXQgd2lsbCBiZSB1c2VkIGluIGRvbmVQb3B1cERhdGEgdG8gbWFrZSBhIHNlcnZlciByZXF1ZXN0DQogICAgICAgICAgICB4bWxUdklkSW5wdXQuc2V0QXR0cmlidXRlKCdpZCcsICd4bWx0di1pZC1waWNrZXItaW5wdXQnKTsNCiAgICAgICAgICAgIHhtbFR2SWRJbnB1dC5zZXRBdHRyaWJ1dGUoJ29uY2hhbmdlJywgYGphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnOyBjaGVja1htbHR2Q2hhbm5lbCgnJHtpZH0nLCB0aGlzLCAnJHt4bWxUdkZpbGV9Jyk7YCk7DQogICAgICAgICAgICB4bWxUdklkRGF0YWxpc3Quc2V0QXR0cmlidXRlKCdpZCcsICd4bWx0di1pZC1waWNrZXItZGF0YWxpc3QnKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCd7ey5tYXBwaW5nLnhtbHR2Q2hhbm5lbC50aXRsZX19JywgeG1sVHZJZENvbnRhaW5lcik7DQogICAgICAgICAgICAvLyBUaW1lc2hpZnQNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJ4LXRpbWVzaGlmdCI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3subWFwcGluZy50aW1lc2hpZnQucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJpZCIsICJ0aW1lc2hpZnQiKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5tYXBwaW5nLnRpbWVzaGlmdC50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgLy8gSW50ZXJhY3Rpb24NCiAgICAgICAgICAgIGNvbnRlbnQuY3JlYXRlSW50ZXJhY3Rpb24oKTsNCiAgICAgICAgICAgIC8vIFVwbG9hZCBsb2dvDQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAiY2FuY2VsIiwgInt7LmJ1dHRvbi51cGxvYWRMb2dvfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiB1cGxvYWRMb2dvKCk7Jyk7DQogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIC8vIEFib3J0DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAiY2FuY2VsIiwgInt7LmJ1dHRvbi5jYW5jZWx9fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IHNob3dFbGVtZW50KCJwb3B1cCIsIGZhbHNlKTsnKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgLy8gRmluaXNoZWQNCiAgICAgICAgICAgIHZhciBpZHMgPSBbXTsNCiAgICAgICAgICAgIGlkcyA9IGdldEFsbFNlbGVjdGVkQ2hhbm5lbHMoKTsNCiAgICAgICAgICAgIGlmIChpZHMubGVuZ3RoID09IDApIHsNCiAgICAgICAgICAgICAgICBpZHMucHVzaChpZCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAic2F2ZSIsICJ7ey5idXR0b24uZG9uZX19Iik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogZG9uZVBvcHVwRGF0YSgiJyArIGRhdGFUeXBlICsgJyIsICInICsgaWRzICsgJyIsICJmYWxzZSIpOycpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgIGJyZWFrOw0KICAgIH0NCiAgICBzaG93UG9wVXBFbGVtZW50KCdwb3B1cC1jdXN0b20nKTsNCn0NCmNsYXNzIFhNTFRWRmlsZSB7DQogICAgZ2V0RmlsZXMoc2V0KSB7DQogICAgICAgIGxldCBmaWxlSURzID0gZ2V0T3duT2JqUHJvcHMoU0VSVkVSWyJ4ZXBnIl1bInhtbHR2TWFwIl0pOw0KICAgICAgICBsZXQgdmFsdWVzID0gbmV3IEFycmF5KCItIik7DQogICAgICAgIGxldCB0ZXh0ID0gbmV3IEFycmF5KCItIik7DQogICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgZmlsZUlEcy5sZW5ndGg7IGkrKykgew0KICAgICAgICAgICAgaWYgKGZpbGVJRHNbaV0gIT0gInhUZVZlIER1bW15Iikgew0KICAgICAgICAgICAgICAgIHZhbHVlcy5wdXNoKGdldFZhbHVlRnJvbVByb3ZpZGVyRmlsZShmaWxlSURzW2ldLCAieG1sdHYiLCAiZmlsZS54dGV2ZSIpKTsNCiAgICAgICAgICAgICAgICB0ZXh0LnB1c2goZ2V0VmFsdWVGcm9tUHJvdmlkZXJGaWxlKGZpbGVJRHNbaV0sICJ4bWx0diIsICJuYW1lIikpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgZWxzZSB7DQogICAgICAgICAgICAgICAgdmFsdWVzLnB1c2goZmlsZUlEc1tpXSk7DQogICAgICAgICAgICAgICAgdGV4dC5wdXNoKGZpbGVJRHNbaV0pOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQogICAgICAgIGxldCBzZWxlY3QgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJTRUxFQ1QiKTsNCiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0ZXh0Lmxlbmd0aDsgaSsrKSB7DQogICAgICAgICAgICB2YXIgb3B0aW9uID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiT1BUSU9OIik7DQogICAgICAgICAgICBvcHRpb24uc2V0QXR0cmlidXRlKCJ2YWx1ZSIsIHZhbHVlc1tpXSk7DQogICAgICAgICAgICBvcHRpb24uaW5uZXJUZXh0ID0gdGV4dFtpXTsNCiAgICAgICAgICAgIHNlbGVjdC5hcHBlbmRDaGlsZChvcHRpb24pOw0KICAgICAgICB9DQogICAgICAgIGlmIChzZXQgIT0gIiIpIHsNCiAgICAgICAgICAgIHNlbGVjdC52YWx1ZSA9IHNldDsNCiAgICAgICAgfQ0KICAgICAgICByZXR1cm4gc2VsZWN0Ow0KICAgIH0NCiAgICAvLyBUT0RPOiBEaXNwbGF5IEZVTEwgbGlzdCwgc2VlOg0KICAgIC8vID4gaHR0cHM6Ly9zdGFja292ZXJmbG93LmNvbS9xdWVzdGlvbnMvMzc0Nzg3MjcvaG93LWNhbi1pLW1ha2UtYS1icm93c2VyLWRpc3BsYXktYWxsLWRhdGFsaXN0LW9wdGlvbnMtd2hlbi1hLWRlZmF1bHQtdmFsdWUtaXMtc2UNCiAgICAvLyA+IGh0dHBzOi8vd3d3LmhvbmdraWF0LmNvbS9ibG9nL3NlYXJjaC1zZWxlY3QtdXNpbmctZGF0YWxpc3QvDQogICAgLy8gPiBodHRwczovL2pxdWVyeXVpLmNvbS9hdXRvY29tcGxldGUvI2NvbWJvYm94IE9SIGh0dHBzOi8vc2VsZWN0Mi5vcmcvZHJvcGRvd24NCiAgICAvKioNCiAgICAgKiBAcGFyYW0geG1sVHZGaWxlIFhNTCBmaWxlIHBhdGggdG8gZ2V0IEVQRyBmcm9tLg0KICAgICAqIEBwYXJhbSBjdXJyZW50WG1sVHZJZCBDdXJyZW50IFhNTFRWIElEIHRvIHNldCBpbml0aWFsIGlucHV0IHZhbHVlIHRvLg0KICAgICAqIEByZXR1cm5zIEFycmF5IG9mLCBzZXF1ZW50aWFsbHk6DQogICAgICogMSkgQ29udGFpbmVyIG9mIHRoZSBwaWNrZXIuDQogICAgICogMikgSW5wdXQgZmllbGQgdG8gdHlwZSBhdCBhbmQgZ2V0IGNob2ljZSBmcm9tLg0KICAgICAqIDMpIERhdGFsaXN0IGNvbnRhaW5pbmcgZXZlcnkgb3B0aW9uLg0KICAgICAqLw0KICAgIG5ld1htbFR2SWRQaWNrZXIoeG1sVHZGaWxlLCBjdXJyZW50WG1sVHZJZCkgew0KICAgICAgICBjb25zdCBjb250YWluZXIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsNCiAgICAgICAgY29uc3QgaW5wdXQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdpbnB1dCcpOw0KICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoJ3R5cGUnLCAndGV4dCcpOw0KICAgICAgICBpbnB1dC52YWx1ZSA9IGN1cnJlbnRYbWxUdklkID8gY3VycmVudFhtbFR2SWQgOiAnLSc7DQogICAgICAgIGNvbnRhaW5lci5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgIGNvbnN0IGRhdGFsaXN0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGF0YWxpc3QnKTsNCiAgICAgICAgY29uc3Qgb3B0aW9uID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnb3B0aW9uJyk7DQogICAgICAgIG9wdGlvbi5zZXRBdHRyaWJ1dGUoJ3ZhbHVlJywgJy0nKTsNCiAgICAgICAgb3B0aW9uLmlubmVyVGV4dCA9ICctJzsNCiAgICAgICAgZGF0YWxpc3QuYXBwZW5kQ2hpbGQob3B0aW9uKTsNCiAgICAgICAgY29uc3QgZXBnID0gU0VSVkVSWyd4ZXBnJ11bJ3htbHR2TWFwJ11beG1sVHZGaWxlXTsNCiAgICAgICAgaWYgKGVwZykgew0KICAgICAgICAgICAgY29uc3QgcHJvZ3JhbUlkcyA9IGdldE93bk9ialByb3BzKGVwZyk7DQogICAgICAgICAgICBwcm9ncmFtSWRzLmZvckVhY2goKHByb2dyYW1JZCkgPT4gew0KICAgICAgICAgICAgICAgIGNvbnN0IHByb2dyYW0gPSBlcGdbcHJvZ3JhbUlkXTsNCiAgICAgICAgICAgICAgICBpZiAocHJvZ3JhbS5oYXNPd25Qcm9wZXJ0eSgnZGlzcGxheS1uYW1lcycpKSB7DQogICAgICAgICAgICAgICAgICAgIHByb2dyYW1bJ2Rpc3BsYXktbmFtZXMnXS5mb3JFYWNoKChkaXNwbGF5TmFtZSkgPT4gew0KICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgb3B0aW9uID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnb3B0aW9uJyk7DQogICAgICAgICAgICAgICAgICAgICAgICBvcHRpb24uc2V0QXR0cmlidXRlKCd2YWx1ZScsIHByb2dyYW1JZCk7DQogICAgICAgICAgICAgICAgICAgICAgICBvcHRpb24uaW5uZXJUZXh0ID0gZGlzcGxheU5hbWVbJ1ZhbHVlJ107DQogICAgICAgICAgICAgICAgICAgICAgICBkYXRhbGlzdC5hcHBlbmRDaGlsZChvcHRpb24pOw0KICAgICAgICAgICAgICAgICAgICB9KTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgZWxzZSB7DQogICAgICAgICAgICAgICAgICAgIGNvbnN0IG9wdGlvbiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ29wdGlvbicpOw0KICAgICAgICAgICAgICAgICAgICBvcHRpb24uc2V0QXR0cmlidXRlKCd2YWx1ZScsIHByb2dyYW1JZCk7DQogICAgICAgICAgICAgICAgICAgIG9wdGlvbi5pbm5lclRleHQgPSAnLSc7DQogICAgICAgICAgICAgICAgICAgIGRhdGFsaXN0LmFwcGVuZENoaWxkKG9wdGlvbik7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfSk7DQogICAgICAgIH0NCiAgICAgICAgY29udGFpbmVyLmFwcGVuZENoaWxkKGRhdGFsaXN0KTsNCiAgICAgICAgcmV0dXJuIFtjb250YWluZXIsIGlucHV0LCBkYXRhbGlzdF07DQogICAgfQ0KfQ0KZnVuY3Rpb24gZ2V0VmFsdWVGcm9tUHJvdmlkZXJGaWxlKGZpbGUsIGZpbGVUeXBlLCBrZXkpIHsNCiAgICBpZiAoZmlsZSA9PSAieFRlVmUgRHVtbXkiKSB7DQogICAgICAgIHJldHVybiBmaWxlOw0KICAgIH0NCiAgICBsZXQgZmlsZUlEOw0KICAgIGxldCBpbmRpY2F0b3IgPSBmaWxlLmNoYXJBdCgwKTsNCiAgICBzd2l0Y2ggKGluZGljYXRvcikgew0KICAgICAgICBjYXNlICJNIjoNCiAgICAgICAgICAgIGZpbGVUeXBlID0gIm0zdSI7DQogICAgICAgICAgICBmaWxlSUQgPSBmaWxlOw0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGNhc2UgIkgiOg0KICAgICAgICAgICAgZmlsZVR5cGUgPSAiaGRociI7DQogICAgICAgICAgICBmaWxlSUQgPSBmaWxlOw0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGNhc2UgIlgiOg0KICAgICAgICAgICAgZmlsZVR5cGUgPSAieG1sdHYiOw0KICAgICAgICAgICAgZmlsZUlEID0gZmlsZS5zdWJzdHJpbmcoMCwgZmlsZS5sYXN0SW5kZXhPZignLicpKTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgIH0NCiAgICBpZiAoU0VSVkVSWyJzZXR0aW5ncyJdWyJmaWxlcyJdW2ZpbGVUeXBlXS5oYXNPd25Qcm9wZXJ0eShmaWxlSUQpID09IHRydWUpIHsNCiAgICAgICAgdmFyIGRhdGEgPSBTRVJWRVJbInNldHRpbmdzIl1bImZpbGVzIl1bZmlsZVR5cGVdW2ZpbGVJRF07DQogICAgICAgIHJldHVybiBkYXRhW2tleV07DQogICAgfQ0KICAgIHJldHVybjsNCn0NCmZ1bmN0aW9uIHNldFhtbHR2Q2hhbm5lbChlcGdNYXBJZCwgeG1sVHZGaWxlU2VsZWN0KSB7DQogICAgY29uc3QgeG1sVHYgPSBuZXcgWE1MVFZGaWxlKCk7DQogICAgY29uc3QgbmV3WG1sVHZGaWxlID0geG1sVHZGaWxlU2VsZWN0LnZhbHVlOw0KICAgIC8vIFJlbW92ZSBvbGQgWE1MVFYgSUQgc2VsZWN0aW9uIGJveA0KICAgIGNvbnN0IHhtbFR2SWRQaWNrZXJQYXJlbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgneG1sdHYtaWQtcGlja2VyLWNvbnRhaW5lcicpLnBhcmVudEVsZW1lbnQ7DQogICAgeG1sVHZJZFBpY2tlclBhcmVudC5pbm5lckhUTUwgPSAnJzsNCiAgICAvLyBDcmVhdGUgbmV3IFhNTFRWIElEIHNlbGVjdGlvbiBib3gNCiAgICBjb25zdCB0dmdJZCA9IFNFUlZFUlsneGVwZyddWydlcGdNYXBwaW5nJ11bZXBnTWFwSWRdWyd0dmctaWQnXTsNCiAgICBjb25zdCBbeG1sVHZJZENvbnRhaW5lciwgeG1sVHZJZElucHV0LCB4bWxUdklkRGF0YWxpc3RdID0geG1sVHYubmV3WG1sVHZJZFBpY2tlcihuZXdYbWxUdkZpbGUsIHR2Z0lkKTsNCiAgICB4bWxUdklkQ29udGFpbmVyLnNldEF0dHJpYnV0ZSgnaWQnLCAneG1sdHYtaWQtcGlja2VyLWNvbnRhaW5lcicpOw0KICAgIHhtbFR2SWRJbnB1dC5zZXRBdHRyaWJ1dGUoJ2xpc3QnLCAneG1sdHYtaWQtcGlja2VyLWRhdGFsaXN0Jyk7DQogICAgeG1sVHZJZElucHV0LnNldEF0dHJpYnV0ZSgnbmFtZScsICd4LW1hcHBpbmcnKTsgLy8gU2hvdWxkIHN0YXkgeC1tYXBwaW5nIGFzIGl0IHdpbGwgYmUgdXNlZCBpbiBkb25lUG9wdXBEYXRhIHRvIG1ha2UgYSBzZXJ2ZXIgcmVxdWVzdA0KICAgIHhtbFR2SWRJbnB1dC5zZXRBdHRyaWJ1dGUoJ2lkJywgJ3htbHR2LWlkLXBpY2tlci1pbnB1dCcpOw0KICAgIHhtbFR2SWRJbnB1dC5zZXRBdHRyaWJ1dGUoJ29uY2hhbmdlJywgYGphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnOyBjaGVja1htbHR2Q2hhbm5lbCgnJHtlcGdNYXBJZH0nLCB0aGlzLCAnJHtuZXdYbWxUdkZpbGV9Jyk7YCk7DQogICAgeG1sVHZJZElucHV0LmNsYXNzTGlzdC5hZGQoJ2NoYW5nZWQnKTsNCiAgICB4bWxUdklkRGF0YWxpc3Quc2V0QXR0cmlidXRlKCdpZCcsICd4bWx0di1pZC1waWNrZXItZGF0YWxpc3QnKTsNCiAgICAvLyBBZGQgbmV3IFhNTFRWIElEIHNlbGVjdGlvbiBib3ggdG8gaXQncyBwYXJlbnQNCiAgICB4bWxUdklkUGlja2VyUGFyZW50LmFwcGVuZENoaWxkKHhtbFR2SWRDb250YWluZXIpOw0KICAgIGNoZWNrWG1sdHZDaGFubmVsKGVwZ01hcElkLCB4bWxUdklkSW5wdXQsIG5ld1htbFR2RmlsZSk7DQp9DQpmdW5jdGlvbiBjaGVja1htbHR2Q2hhbm5lbChlcGdNYXBJZCwgeG1sVHZJZElucHV0LCB4bWxUdkZpbGUpIHsNCiAgICAvLyBJZiBlbXB0eSwgc2V0IHRvICctJw0KICAgIHhtbFR2SWRJbnB1dC52YWx1ZSA9IHhtbFR2SWRJbnB1dC52YWx1ZSA/IHhtbFR2SWRJbnB1dC52YWx1ZSA6ICctJzsNCiAgICBjb25zdCBuZXdYbWxUdklkID0geG1sVHZJZElucHV0LnZhbHVlOw0KICAgIGNvbnN0IGNoYW5uZWxBY3RpdmVDYiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdhY3RpdmUnKTsNCiAgICBjb25zdCBjaGFubmVsQWN0aXZlID0gbmV3WG1sVHZJZCAhPSAnLSc7DQogICAgY2hhbm5lbEFjdGl2ZUNiLmNoZWNrZWQgPSBjaGFubmVsQWN0aXZlOw0KICAgIGNoYW5uZWxBY3RpdmVDYi5jbGFzc05hbWUgPSAnY2hhbmdlZCc7DQogICAgaWYgKHhtbFR2RmlsZSAhPSAneFRlVmUgRHVtbXknICYmIGNoYW5uZWxBY3RpdmUgPT0gdHJ1ZSkgew0KICAgICAgICBjaGFuZ2VDaGFubmVsTG9nbyhlcGdNYXBJZCk7DQogICAgICAgIHJldHVybjsNCiAgICB9DQogICAgaWYgKHhtbFR2RmlsZSA9PSAneFRlVmUgRHVtbXknKSB7DQogICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd1cGRhdGUtaWNvbicpLmNoZWNrZWQgPSBmYWxzZTsNCiAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3VwZGF0ZS1pY29uJykuY2xhc3NOYW1lID0gJ2NoYW5nZWQnOw0KICAgIH0NCn0NCmZ1bmN0aW9uIGNoYW5nZUNoYW5uZWxMb2dvKGVwZ01hcElkKSB7DQogICAgY29uc3QgY2hhbm5lbCA9IFNFUlZFUlsneGVwZyddWydlcGdNYXBwaW5nJ11bZXBnTWFwSWRdOw0KICAgIGNvbnN0IHhtbFR2RmlsZVNlbGVjdCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdwb3B1cC14bWx0dicpOw0KICAgIGNvbnN0IHhtbFR2RmlsZSA9IHhtbFR2RmlsZVNlbGVjdC5vcHRpb25zW3htbFR2RmlsZVNlbGVjdC5zZWxlY3RlZEluZGV4XS52YWx1ZTsNCiAgICBjb25zdCB4bWxUdklkSW5wdXQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgneG1sdHYtaWQtcGlja2VyLWlucHV0Jyk7DQogICAgY29uc3QgbmV3WG1sVHZJZCA9IHhtbFR2SWRJbnB1dC52YWx1ZTsNCiAgICBjb25zdCB4bWxUdkxvZ28gPSBTRVJWRVJbJ3hlcGcnXVsneG1sdHZNYXAnXVt4bWxUdkZpbGVdW25ld1htbFR2SWRdWydpY29uJ107DQogICAgY29uc3QgdXBkYXRlTG9nbyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd1cGRhdGUtaWNvbicpLmNoZWNrZWQ7DQogICAgbGV0IGxvZ287DQogICAgaWYgKHVwZGF0ZUxvZ28gPT0gdHJ1ZSAmJiB4bWxUdkZpbGUgIT0gJ3hUZVZlIER1bW15Jykgew0KICAgICAgICBpZiAoU0VSVkVSWyd4ZXBnJ11bJ3htbHR2TWFwJ11beG1sVHZGaWxlXS5oYXNPd25Qcm9wZXJ0eShuZXdYbWxUdklkKSkgew0KICAgICAgICAgICAgbG9nbyA9IHhtbFR2TG9nbzsNCiAgICAgICAgfQ0KICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgIGxvZ28gPSBjaGFubmVsWyd0dmctbG9nbyddOw0KICAgICAgICB9DQogICAgICAgIHZhciBsb2dvSW5wdXQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY2hhbm5lbC1pY29uJyk7DQogICAgICAgIGxvZ29JbnB1dC52YWx1ZSA9IGxvZ287DQogICAgICAgIGlmIChCVUxLX0VESVQgPT0gZmFsc2UpIHsNCiAgICAgICAgICAgIGxvZ29JbnB1dC5jbGFzc05hbWUgPSAnY2hhbmdlZCc7DQogICAgICAgIH0NCiAgICB9DQp9DQpmdW5jdGlvbiBzYXZlUG9wdXBEYXRhKGRhdGFUeXBlLCBpZCwgcmVtb3ZlLCBvcHRpb24pIHsNCiAgICBpZiAoZGF0YVR5cGUgPT0gIm1hcHBpbmciKSB7DQogICAgICAgIGxldCBkYXRhID0ge307DQogICAgICAgIGxldCBjbWQgPSAic2F2ZUVwZ01hcHBpbmciOw0KICAgICAgICBkYXRhWyJlcGdNYXBwaW5nIl0gPSBTRVJWRVJbInhlcGciXVsiZXBnTWFwcGluZyJdOw0KICAgICAgICBsZXQgc2VydmVyID0gbmV3IFNlcnZlcihjbWQpOw0KICAgICAgICBzZXJ2ZXIucmVxdWVzdChkYXRhKTsNCiAgICAgICAgZGVsZXRlIFVORE9bImVwZ01hcHBpbmciXTsNCiAgICAgICAgcmV0dXJuOw0KICAgIH0NCiAgICBsZXQgZGl2ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInBvcHVwLWN1c3RvbSIpOw0KICAgIGxldCBpbnB1dHMgPSBkaXYuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlRBQkxFIilbMF0uZ2V0RWxlbWVudHNCeVRhZ05hbWUoIklOUFVUIik7DQogICAgbGV0IHNlbGVjdHMgPSBkaXYuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlRBQkxFIilbMF0uZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlNFTEVDVCIpOw0KICAgIGxldCBpbnB1dCA9IHt9Ow0KICAgIGxldCBjb25maXJtTXNnOw0KICAgIGZvciAobGV0IGkgPSAwOyBpIDwgc2VsZWN0cy5sZW5ndGg7IGkrKykgew0KICAgICAgICB2YXIgbmFtZTsNCiAgICAgICAgbmFtZSA9IHNlbGVjdHNbaV0ubmFtZTsNCiAgICAgICAgdmFyIHZhbHVlID0gc2VsZWN0c1tpXS52YWx1ZTsNCiAgICAgICAgc3dpdGNoIChuYW1lKSB7DQogICAgICAgICAgICBjYXNlICJ0dW5lciI6DQogICAgICAgICAgICAgICAgaW5wdXRbbmFtZV0gPSBwYXJzZUludCh2YWx1ZSk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBkZWZhdWx0Og0KICAgICAgICAgICAgICAgIGlucHV0W25hbWVdID0gdmFsdWU7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIH0NCiAgICB9DQogICAgZm9yIChsZXQgaSA9IDA7IGkgPCBpbnB1dHMubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgc3dpdGNoIChpbnB1dHNbaV0udHlwZSkgew0KICAgICAgICAgICAgY2FzZSAiY2hlY2tib3giOg0KICAgICAgICAgICAgICAgIG5hbWUgPSBpbnB1dHNbaV0ubmFtZTsNCiAgICAgICAgICAgICAgICBpbnB1dFtuYW1lXSA9IGlucHV0c1tpXS5jaGVja2VkOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAidGV4dCI6DQogICAgICAgICAgICBjYXNlICJoaWRkZW4iOg0KICAgICAgICAgICAgY2FzZSAicGFzc3dvcmQiOg0KICAgICAgICAgICAgICAgIG5hbWUgPSBpbnB1dHNbaV0ubmFtZTsNCiAgICAgICAgICAgICAgICBzd2l0Y2ggKG5hbWUpIHsNCiAgICAgICAgICAgICAgICAgICAgY2FzZSAidHVuZXIiOg0KICAgICAgICAgICAgICAgICAgICAgICAgaW5wdXRbbmFtZV0gPSBwYXJzZUludChpbnB1dHNbaV0udmFsdWUpOw0KICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICAgICAgICAgICAgICBpbnB1dFtuYW1lXSA9IGlucHV0c1tpXS52YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgfQ0KICAgIH0NCiAgICBsZXQgZGF0YSA9IHt9Ow0KICAgIGxldCBjbWQ7DQogICAgaWYgKHJlbW92ZSA9PSB0cnVlKSB7DQogICAgICAgIGlucHV0WyJkZWxldGUiXSA9IHRydWU7DQogICAgfQ0KICAgIHN3aXRjaCAoZGF0YVR5cGUpIHsNCiAgICAgICAgY2FzZSAidXNlcnMiOg0KICAgICAgICAgICAgY29uZmlybU1zZyA9ICJEZWxldGUgdGhpcyB1c2VyPyI7DQogICAgICAgICAgICBpZiAoaWQgPT0gIi0iKSB7DQogICAgICAgICAgICAgICAgY21kID0gInNhdmVOZXdVc2VyIjsNCiAgICAgICAgICAgICAgICBkYXRhWyJ1c2VyRGF0YSJdID0gaW5wdXQ7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICBjbWQgPSAic2F2ZVVzZXJEYXRhIjsNCiAgICAgICAgICAgICAgICBsZXQgZCA9IHt9Ow0KICAgICAgICAgICAgICAgIGRbaWRdID0gaW5wdXQ7DQogICAgICAgICAgICAgICAgZGF0YVsidXNlckRhdGEiXSA9IGQ7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSAibTN1IjoNCiAgICAgICAgICAgIGNvbmZpcm1Nc2cgPSAiRGVsZXRlIHRoaXMgcGxheWxpc3Q/IjsNCiAgICAgICAgICAgIHN3aXRjaCAob3B0aW9uKSB7DQogICAgICAgICAgICAgICAgLy8gUG9wdXA6IFNhdmUNCiAgICAgICAgICAgICAgICBjYXNlIDA6DQogICAgICAgICAgICAgICAgICAgIGNtZCA9ICJzYXZlRmlsZXNNM1UiOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICAvLyBQb3B1cDogVXBkYXRlDQogICAgICAgICAgICAgICAgY2FzZSAxOg0KICAgICAgICAgICAgICAgICAgICBjbWQgPSAidXBkYXRlRmlsZU0zVSI7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgZGF0YVsiZmlsZXMiXSA9IHt9Ow0KICAgICAgICAgICAgZGF0YVsiZmlsZXMiXVtkYXRhVHlwZV0gPSB7fTsNCiAgICAgICAgICAgIGRhdGFbImZpbGVzIl1bZGF0YVR5cGVdW2lkXSA9IGlucHV0Ow0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGNhc2UgImhkaHIiOg0KICAgICAgICAgICAgY29uZmlybU1zZyA9ICJEZWxldGUgdGhpcyBIREhvbWVSdW4gdHVuZXI/IjsNCiAgICAgICAgICAgIHN3aXRjaCAob3B0aW9uKSB7DQogICAgICAgICAgICAgICAgLy8gUG9wdXA6IFNhdmUNCiAgICAgICAgICAgICAgICBjYXNlIDA6DQogICAgICAgICAgICAgICAgICAgIGNtZCA9ICJzYXZlRmlsZXNIREhSIjsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgLy8gUG9wdXA6IFVwZGF0ZQ0KICAgICAgICAgICAgICAgIGNhc2UgMToNCiAgICAgICAgICAgICAgICAgICAgY21kID0gInVwZGF0ZUZpbGVIREhSIjsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBkYXRhWyJmaWxlcyJdID0ge307DQogICAgICAgICAgICBkYXRhWyJmaWxlcyJdW2RhdGFUeXBlXSA9IHt9Ow0KICAgICAgICAgICAgZGF0YVsiZmlsZXMiXVtkYXRhVHlwZV1baWRdID0gaW5wdXQ7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSAieG1sdHYiOg0KICAgICAgICAgICAgY29uZmlybU1zZyA9ICJEZWxldGUgdGhpcyBYTUxUViBmaWxlPyI7DQogICAgICAgICAgICBzd2l0Y2ggKG9wdGlvbikgew0KICAgICAgICAgICAgICAgIC8vIFBvcHVwOiBTYXZlDQogICAgICAgICAgICAgICAgY2FzZSAwOg0KICAgICAgICAgICAgICAgICAgICBjbWQgPSAic2F2ZUZpbGVzWE1MVFYiOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICAvLyBQb3B1cDogVXBkYXRlDQogICAgICAgICAgICAgICAgY2FzZSAxOg0KICAgICAgICAgICAgICAgICAgICBjbWQgPSAidXBkYXRlRmlsZVhNTFRWIjsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBkYXRhWyJmaWxlcyJdID0ge307DQogICAgICAgICAgICBkYXRhWyJmaWxlcyJdW2RhdGFUeXBlXSA9IHt9Ow0KICAgICAgICAgICAgZGF0YVsiZmlsZXMiXVtkYXRhVHlwZV1baWRdID0gaW5wdXQ7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSAiZmlsdGVyIjoNCiAgICAgICAgICAgIGNvbmZpcm1Nc2cgPSAiRGVsZXRlIHRoaXMgZmlsdGVyPyI7DQogICAgICAgICAgICBjbWQgPSAic2F2ZUZpbHRlciI7DQogICAgICAgICAgICBkYXRhWyJmaWx0ZXIiXSA9IHt9Ow0KICAgICAgICAgICAgZGF0YVsiZmlsdGVyIl1baWRdID0gaW5wdXQ7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgIHJldHVybjsNCiAgICB9DQogICAgaWYgKHJlbW92ZSA9PSB0cnVlKSB7DQogICAgICAgIGlmICghY29uZmlybShjb25maXJtTXNnKSkgew0KICAgICAgICAgICAgc2hvd0VsZW1lbnQoInBvcHVwIiwgZmFsc2UpOw0KICAgICAgICAgICAgcmV0dXJuOw0KICAgICAgICB9DQogICAgfQ0KICAgIGxldCBzZXJ2ZXIgPSBuZXcgU2VydmVyKGNtZCk7DQogICAgc2VydmVyLnJlcXVlc3QoZGF0YSk7DQp9DQpmdW5jdGlvbiBkb25lUG9wdXBEYXRhKGRhdGFUeXBlLCBpZHNTdHIpIHsNCiAgICBsZXQgaWRzID0gaWRzU3RyLnNwbGl0KCcsJyk7DQogICAgbGV0IGRpdiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJwb3B1cC1jdXN0b20iKTsNCiAgICBsZXQgaW5wdXRzID0gZGl2LmdldEVsZW1lbnRzQnlDbGFzc05hbWUoImNoYW5nZWQiKTsNCiAgICBpZHMuZm9yRWFjaChpZCA9PiB7DQogICAgICAgIGxldCBpbnB1dDsNCiAgICAgICAgaW5wdXQgPSBTRVJWRVJbInhlcGciXVsiZXBnTWFwcGluZyJdW2lkXTsNCiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBpbnB1dHMubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgICAgIGxldCBuYW1lOw0KICAgICAgICAgICAgbGV0IHZhbHVlOw0KICAgICAgICAgICAgc3dpdGNoIChpbnB1dHNbaV0udGFnTmFtZSkgew0KICAgICAgICAgICAgICAgIGNhc2UgIklOUFVUIjoNCiAgICAgICAgICAgICAgICAgICAgc3dpdGNoIChpbnB1dHNbaV0udHlwZSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAiY2hlY2tib3giOg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWUgPSBpbnB1dHNbaV0ubmFtZTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IGlucHV0c1tpXS5jaGVja2VkOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlucHV0W25hbWVdID0gdmFsdWU7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgICAgICAgICBjYXNlICJ0ZXh0IjoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lID0gaW5wdXRzW2ldLm5hbWU7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSBpbnB1dHNbaV0udmFsdWU7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5wdXRbbmFtZV0gPSB2YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBjYXNlICJTRUxFQ1QiOg0KICAgICAgICAgICAgICAgICAgICBuYW1lID0gaW5wdXRzW2ldLm5hbWU7DQogICAgICAgICAgICAgICAgICAgIHZhbHVlID0gaW5wdXRzW2ldLnZhbHVlOw0KICAgICAgICAgICAgICAgICAgICBpbnB1dFtuYW1lXSA9IHZhbHVlOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIHN3aXRjaCAobmFtZSkgew0KICAgICAgICAgICAgICAgIGNhc2UgInR2Zy1sb2dvIjoNCiAgICAgICAgICAgICAgICAgICAgLy8oZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpLmNoaWxkTm9kZXNbMl0uZmlyc3RDaGlsZCBhcyBIVE1MRWxlbWVudCkuc2V0QXR0cmlidXRlKCJzcmMiLCB2YWx1ZSkNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAieC1uYW1lIjoNCiAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpLmNoaWxkTm9kZXNbM10uZmlyc3RDaGlsZC5pbm5lckhUTUwgPSB2YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAieC1jYXRlZ29yeSI6DQogICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5jaGlsZE5vZGVzWzNdLmZpcnN0Q2hpbGQuY2xhc3NOYW1lID0gdmFsdWU7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgIngtZ3JvdXAtdGl0bGUiOg0KICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkuY2hpbGROb2Rlc1s1XS5maXJzdENoaWxkLmlubmVySFRNTCA9IHZhbHVlOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBjYXNlICJ4LXhtbHR2LWZpbGUiOg0KICAgICAgICAgICAgICAgICAgICBpZiAodmFsdWUgIT0gInhUZVZlIER1bW15IiAmJiB2YWx1ZSAhPSAiLSIpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlID0gZ2V0VmFsdWVGcm9tUHJvdmlkZXJGaWxlKHZhbHVlLCAieG1sdHYiLCAibmFtZSIpOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIGlmICh2YWx1ZSA9PSAiLSIpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGlucHV0WyJ4LWFjdGl2ZSJdID0gZmFsc2U7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpLmNoaWxkTm9kZXNbNl0uZmlyc3RDaGlsZC5pbm5lckhUTUwgPSB2YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAieC1tYXBwaW5nIjoNCiAgICAgICAgICAgICAgICAgICAgaWYgKHZhbHVlID09ICItIikgew0KICAgICAgICAgICAgICAgICAgICAgICAgaW5wdXRbIngtYWN0aXZlIl0gPSBmYWxzZTsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkuY2hpbGROb2Rlc1s3XS5maXJzdENoaWxkLmlubmVySFRNTCA9IHZhbHVlOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBjYXNlICJ4LXRpbWVzaGlmdCI6DQogICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5jaGlsZE5vZGVzWzhdLmZpcnN0Q2hpbGQuaW5uZXJIVE1MID0gdmFsdWU7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICB9DQogICAgICAgICAgICBjcmVhdGVTZWFyY2hPYmooKTsNCiAgICAgICAgICAgIHNlYXJjaEluTWFwcGluZygpOw0KICAgICAgICB9DQogICAgICAgIGlmIChpbnB1dFsieC1hY3RpdmUiXSA9PSBmYWxzZSkgew0KICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpLmNsYXNzTmFtZSA9ICJub3RBY3RpdmVFUEciOw0KICAgICAgICB9DQogICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpLmNsYXNzTmFtZSA9ICJhY3RpdmVFUEciOw0KICAgICAgICB9DQogICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5jaGlsZE5vZGVzWzJdLmZpcnN0Q2hpbGQuc2V0QXR0cmlidXRlKCJzcmMiLCBpbnB1dFsidHZnLWxvZ28iXSk7DQogICAgfSk7DQogICAgc2hvd0VsZW1lbnQoInBvcHVwIiwgZmFsc2UpOw0KICAgIHJldHVybjsNCn0NCmZ1bmN0aW9uIHNob3dQcmV2aWV3KGVsZW1lbnQpIHsNCiAgICBsZXQgZGl2ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm15U3RyZWFtc0JveCIpOw0KICAgIHN3aXRjaCAoZWxlbWVudCkgew0KICAgICAgICBjYXNlIGZhbHNlOg0KICAgICAgICAgICAgZGl2LmNsYXNzTmFtZSA9ICJub3RWaXNpYmxlIjsNCiAgICAgICAgICAgIHJldHVybjsNCiAgICB9DQogICAgbGV0IHN0cmVhbXMgPSBbImFjdGl2ZVN0cmVhbXMiLCAiaW5hY3RpdmVTdHJlYW1zIl07DQogICAgc3RyZWFtcy5mb3JFYWNoKHByZXZpZXcgPT4gew0KICAgICAgICBsZXQgdGFibGUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChwcmV2aWV3KTsNCiAgICAgICAgdGFibGUuaW5uZXJIVE1MID0gIiI7DQogICAgICAgIGxldCBvYmogPSBTRVJWRVJbImRhdGEiXVsiU3RyZWFtUHJldmlld1VJIl1bcHJldmlld107DQogICAgICAgIG9iai5mb3JFYWNoKGNoYW5uZWwgPT4gew0KICAgICAgICAgICAgbGV0IHRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVFIiKTsNCiAgICAgICAgICAgIGxldCB0ZEtleSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICBsZXQgdGRWYWwgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgdGRLZXkuY2xhc3NOYW1lID0gInRkS2V5IjsNCiAgICAgICAgICAgIHRkVmFsLmNsYXNzTmFtZSA9ICJ0ZFZhbCI7DQogICAgICAgICAgICBzd2l0Y2ggKHByZXZpZXcpIHsNCiAgICAgICAgICAgICAgICBjYXNlICJhY3RpdmVTdHJlYW1zIjoNCiAgICAgICAgICAgICAgICAgICAgdGRLZXkuaW5uZXJUZXh0ID0gIkNoYW5uZWw6ICgrKSI7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgImluYWN0aXZlU3RyZWFtcyI6DQogICAgICAgICAgICAgICAgICAgIHRkS2V5LmlubmVyVGV4dCA9ICJDaGFubmVsOiAoLSkiOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIHRkVmFsLmlubmVyVGV4dCA9IGNoYW5uZWw7DQogICAgICAgICAgICB0ci5hcHBlbmRDaGlsZCh0ZEtleSk7DQogICAgICAgICAgICB0ci5hcHBlbmRDaGlsZCh0ZFZhbCk7DQogICAgICAgICAgICB0YWJsZS5hcHBlbmRDaGlsZCh0cik7DQogICAgICAgIH0pOw0KICAgIH0pOw0KICAgIHNob3dFbGVtZW50KCJsb2FkaW5nIiwgZmFsc2UpOw0KICAgIGRpdi5jbGFzc05hbWUgPSAidmlzaWJsZSI7DQogICAgcmV0dXJuOw0KfQ0K" webUI["html/js/network_ts.js"] = "Y2xhc3MgU2VydmVyIHsNCiAgICBjb25zdHJ1Y3RvcihjbWQpIHsNCiAgICAgICAgdGhpcy5jbWQgPSBjbWQ7DQogICAgfQ0KICAgIHJlcXVlc3QoZGF0YSkgew0KICAgICAgICBpZiAoU0VSVkVSX0NPTk5FQ1RJT04gPT0gdHJ1ZSkgew0KICAgICAgICAgICAgcmV0dXJuOw0KICAgICAgICB9DQogICAgICAgIFNFUlZFUl9DT05ORUNUSU9OID0gdHJ1ZTsNCiAgICAgICAgaWYgKHRoaXMuY21kICE9ICJ1cGRhdGVMb2ciKSB7DQogICAgICAgICAgICBzaG93RWxlbWVudCgibG9hZGluZyIsIHRydWUpOw0KICAgICAgICAgICAgVU5ETyA9IG5ldyBPYmplY3QoKTsNCiAgICAgICAgfQ0KICAgICAgICBzd2l0Y2ggKHdpbmRvdy5sb2NhdGlvbi5wcm90b2NvbCkgew0KICAgICAgICAgICAgY2FzZSAiaHR0cDoiOg0KICAgICAgICAgICAgICAgIHRoaXMucHJvdG9jb2wgPSAid3M6Ly8iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiaHR0cHM6IjoNCiAgICAgICAgICAgICAgICB0aGlzLnByb3RvY29sID0gIndzczovLyI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIH0NCiAgICAgICAgdmFyIHVybCA9IHRoaXMucHJvdG9jb2wgKyB3aW5kb3cubG9jYXRpb24uaG9zdG5hbWUgKyAiOiIgKyB3aW5kb3cubG9jYXRpb24ucG9ydCArICIvZGF0YS8iICsgIj9Ub2tlbj0iICsgZ2V0Q29va2llKCJUb2tlbiIpOw0KICAgICAgICBkYXRhWyJjbWQiXSA9IHRoaXMuY21kOw0KICAgICAgICB2YXIgd3MgPSBuZXcgV2ViU29ja2V0KHVybCk7DQogICAgICAgIHdzLm9ub3BlbiA9IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgICAgIFdTX0FWQUlMQUJMRSA9IHRydWU7DQogICAgICAgICAgICB0aGlzLnNlbmQoSlNPTi5zdHJpbmdpZnkoZGF0YSkpOw0KICAgICAgICB9Ow0KICAgICAgICB3cy5vbmVycm9yID0gZnVuY3Rpb24gKHdzRXJyRXZ0KSB7DQogICAgICAgICAgICBjb25zb2xlLmxvZygiTm8gd2Vic29ja2V0IGNvbm5lY3Rpb24gdG8geFRlVmUgY291bGQgYmUgZXN0YWJsaXNoZWQuIENoZWNrIHlvdXIgbmV0d29yayBjb25maWd1cmF0aW9uLiIpOw0KICAgICAgICAgICAgU0VSVkVSX0NPTk5FQ1RJT04gPSBmYWxzZTsNCiAgICAgICAgICAgIGlmIChXU19BVkFJTEFCTEUgPT0gZmFsc2UpIHsNCiAgICAgICAgICAgICAgICBhbGVydCgiTm8gd2Vic29ja2V0IGNvbm5lY3Rpb24gdG8geFRlVmUgY291bGQgYmUgZXN0YWJsaXNoZWQuIENoZWNrIHlvdXIgbmV0d29yayBjb25maWd1cmF0aW9uLiIpOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9Ow0KICAgICAgICB3cy5vbm1lc3NhZ2UgPSBmdW5jdGlvbiAod3NNZXNzYWdlRXZ0KSB7DQogICAgICAgICAgICBTRVJWRVJfQ09OTkVDVElPTiA9IGZhbHNlOw0KICAgICAgICAgICAgc2hvd0VsZW1lbnQoImxvYWRpbmciLCBmYWxzZSk7DQogICAgICAgICAgICBjb25zdCByZXNwb25zZSA9IEpTT04ucGFyc2Uod3NNZXNzYWdlRXZ0LmRhdGEpOw0KICAgICAgICAgICAgaWYgKHJlc3BvbnNlLmhhc093blByb3BlcnR5KCJ0b2tlbiIpKSB7DQogICAgICAgICAgICAgICAgZG9jdW1lbnQuY29va2llID0gIlRva2VuPSIgKyByZXNwb25zZVsidG9rZW4iXTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGlmIChyZXNwb25zZVsic3RhdHVzIl0gPT0gZmFsc2UpIHsNCiAgICAgICAgICAgICAgICBhbGVydChyZXNwb25zZVsiZXJyIl0pOw0KICAgICAgICAgICAgICAgIHJldHVybjsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGlmIChyZXNwb25zZS5oYXNPd25Qcm9wZXJ0eSgnb3BlbkxpbmsnKSkgew0KICAgICAgICAgICAgICAgIHdpbmRvdy5sb2NhdGlvbiA9IHJlc3BvbnNlWydvcGVuTGluayddOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgaWYgKHJlc3BvbnNlLmhhc093blByb3BlcnR5KCJyZWxvYWQiKSkgew0KICAgICAgICAgICAgICAgIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGlmIChyZXNwb25zZS5oYXNPd25Qcm9wZXJ0eSgiYWxlcnQiKSkgew0KICAgICAgICAgICAgICAgIGFsZXJ0KHJlc3BvbnNlWyJhbGVydCJdKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGlmIChyZXNwb25zZS5oYXNPd25Qcm9wZXJ0eSgibG9nb1VSTCIpKSB7DQogICAgICAgICAgICAgICAgdmFyIGRpdiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjaGFubmVsLWljb24iKTsNCiAgICAgICAgICAgICAgICBkaXYudmFsdWUgPSByZXNwb25zZVsibG9nb1VSTCJdOw0KICAgICAgICAgICAgICAgIGRpdi5jbGFzc05hbWUgPSAiY2hhbmdlZCI7DQogICAgICAgICAgICAgICAgcmV0dXJuOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgc3dpdGNoIChkYXRhWyJjbWQiXSkgew0KICAgICAgICAgICAgICAgIGNhc2UgInVwZGF0ZUxvZyI6DQogICAgICAgICAgICAgICAgICAgIFNFUlZFUlsibG9nIl0gPSByZXNwb25zZVsibG9nIl07DQogICAgICAgICAgICAgICAgICAgIGlmIChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29udGVudF9sb2ciKSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgc2hvd0xvZ3MoZmFsc2UpOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIHJldHVybjsNCiAgICAgICAgICAgICAgICBkZWZhdWx0Og0KICAgICAgICAgICAgICAgICAgICBTRVJWRVIgPSBuZXcgT2JqZWN0KCk7DQogICAgICAgICAgICAgICAgICAgIFNFUlZFUiA9IHJlc3BvbnNlOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGlmIChyZXNwb25zZS5oYXNPd25Qcm9wZXJ0eSgib3Blbk1lbnUiKSkgew0KICAgICAgICAgICAgICAgIHZhciBtZW51ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQocmVzcG9uc2VbIm9wZW5NZW51Il0pOw0KICAgICAgICAgICAgICAgIG1lbnUuY2xpY2soKTsNCiAgICAgICAgICAgICAgICBzaG93RWxlbWVudCgicG9wdXAiLCBmYWxzZSk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBpZiAocmVzcG9uc2UuaGFzT3duUHJvcGVydHkoInJlbG9hZCIpKSB7DQogICAgICAgICAgICAgICAgbG9jYXRpb24ucmVsb2FkKCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBpZiAocmVzcG9uc2UuaGFzT3duUHJvcGVydHkoIndpemFyZCIpKSB7DQogICAgICAgICAgICAgICAgY3JlYXRlTGF5b3V0KCk7DQogICAgICAgICAgICAgICAgY29uZmlndXJhdGlvbldpemFyZFtyZXNwb25zZVsid2l6YXJkIl1dLmNyZWF0ZVdpemFyZCgpOw0KICAgICAgICAgICAgICAgIHJldHVybjsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGNyZWF0ZUxheW91dCgpOw0KICAgICAgICB9Ow0KICAgIH0NCn0NCmZ1bmN0aW9uIGdldENvb2tpZShuYW1lKSB7DQogICAgdmFyIHZhbHVlID0gIjsgIiArIGRvY3VtZW50LmNvb2tpZTsNCiAgICB2YXIgcGFydHMgPSB2YWx1ZS5zcGxpdCgiOyAiICsgbmFtZSArICI9Iik7DQogICAgaWYgKHBhcnRzLmxlbmd0aCA9PSAyKSB7DQogICAgICAgIHJldHVybiBwYXJ0cy5wb3AoKS5zcGxpdCgiOyIpLnNoaWZ0KCk7DQogICAgfQ0KfQ0K" webUI["html/js/settings_ts.js"] = "Y2xhc3MgU2V0dGluZ3NDYXRlZ29yeSB7DQogICAgY29uc3RydWN0b3IoKSB7DQogICAgICAgIHRoaXMuRG9jdW1lbnRJRCA9ICJjb250ZW50X3NldHRpbmdzIjsNCiAgICB9DQogICAgY3JlYXRlQ2F0ZWdvcnlIZWFkbGluZSh2YWx1ZSkgew0KICAgICAgICB2YXIgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIkg0Iik7DQogICAgICAgIGVsZW1lbnQuaW5uZXJIVE1MID0gdmFsdWU7DQogICAgICAgIHJldHVybiBlbGVtZW50Ow0KICAgIH0NCiAgICBjcmVhdGVIUigpIHsNCiAgICAgICAgdmFyIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJIUiIpOw0KICAgICAgICByZXR1cm4gZWxlbWVudDsNCiAgICB9DQogICAgY3JlYXRlU2V0dGluZ3Moc2V0dGluZ3NLZXkpIHsNCiAgICAgICAgdmFyIHNldHRpbmcgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJUUiIpOw0KICAgICAgICB2YXIgY29udGVudCA9IG5ldyBQb3B1cENvbnRlbnQoKTsNCiAgICAgICAgdmFyIGRhdGEgPSBTRVJWRVJbInNldHRpbmdzIl1bc2V0dGluZ3NLZXldOw0KICAgICAgICBzd2l0Y2ggKHNldHRpbmdzS2V5KSB7DQogICAgICAgICAgICAvLyBUZXh0IGlucHV0cw0KICAgICAgICAgICAgY2FzZSAidXBkYXRlIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLnVwZGF0ZS50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsICJ1cGRhdGUiLCBkYXRhLnRvU3RyaW5nKCkpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3suc2V0dGluZ3MudXBkYXRlLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJiYWNrdXAucGF0aCI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5iYWNrdXBQYXRoLnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgImJhY2t1cC5wYXRoIiwgZGF0YSk7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5zZXR0aW5ncy5iYWNrdXBQYXRoLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ0ZW1wLnBhdGgiOg0KICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MudGVtcFBhdGgudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCAidGVtcC5wYXRoIiwgZGF0YSk7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5zZXR0aW5ncy50bXBQYXRoLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ1c2VyLmFnZW50IjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLnVzZXJBZ2VudC50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsICJ1c2VyLmFnZW50IiwgZGF0YSk7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5zZXR0aW5ncy51c2VyQWdlbnQucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImJ1ZmZlci50aW1lb3V0IjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmJ1ZmZlclRpbWVvdXQudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCAiYnVmZmVyLnRpbWVvdXQiLCBkYXRhKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnNldHRpbmdzLmJ1ZmZlclRpbWVvdXQucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImZmbXBlZy5wYXRoIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmZmbXBlZ1BhdGgudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCAiZmZtcGVnLnBhdGgiLCBkYXRhKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnNldHRpbmdzLmZmbXBlZ1BhdGgucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImZmbXBlZy5vcHRpb25zIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmZmbXBlZ09wdGlvbnMudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCAiZmZtcGVnLm9wdGlvbnMiLCBkYXRhKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnNldHRpbmdzLmZmbXBlZ09wdGlvbnMucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInZsYy5wYXRoIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLnZsY1BhdGgudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCAidmxjLnBhdGgiLCBkYXRhKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnNldHRpbmdzLnZsY1BhdGgucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInZsYy5vcHRpb25zIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLnZsY09wdGlvbnMudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCAidmxjLm9wdGlvbnMiLCBkYXRhKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnNldHRpbmdzLnZsY09wdGlvbnMucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIC8vIENoZWNrYm94ZXMNCiAgICAgICAgICAgIGNhc2UgInRsc01vZGUiOg0KICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MudGxzTW9kZS50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChzZXR0aW5nc0tleSk7DQogICAgICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGE7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiYXV0aGVudGljYXRpb24ud2ViIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmF1dGhlbnRpY2F0aW9uV0VCLnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KHNldHRpbmdzS2V5KTsNCiAgICAgICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJhdXRoZW50aWNhdGlvbi5wbXMiOg0KICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MuYXV0aGVudGljYXRpb25QTVMudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goc2V0dGluZ3NLZXkpOw0KICAgICAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImF1dGhlbnRpY2F0aW9uLm0zdSI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5hdXRoZW50aWNhdGlvbk0zVS50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChzZXR0aW5nc0tleSk7DQogICAgICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGE7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiYXV0aGVudGljYXRpb24ueG1sIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmF1dGhlbnRpY2F0aW9uWE1MLnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KHNldHRpbmdzS2V5KTsNCiAgICAgICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJhdXRoZW50aWNhdGlvbi5hcGkiOg0KICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MuYXV0aGVudGljYXRpb25BUEkudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goc2V0dGluZ3NLZXkpOw0KICAgICAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImZpbGVzLnVwZGF0ZSI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5maWxlc1VwZGF0ZS50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChzZXR0aW5nc0tleSk7DQogICAgICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGE7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiY2FjaGUuaW1hZ2VzIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmNhY2hlSW1hZ2VzLnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KHNldHRpbmdzS2V5KTsNCiAgICAgICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ4ZXBnLnJlcGxhY2UubWlzc2luZy5pbWFnZXMiOg0KICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MucmVwbGFjZUVtcHR5SW1hZ2VzLnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KHNldHRpbmdzS2V5KTsNCiAgICAgICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJzdG9yZUJ1ZmZlckluUkFNIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLnN0b3JlQnVmZmVySW5SQU0udGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goc2V0dGluZ3NLZXkpOw0KICAgICAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInh0ZXZlQXV0b1VwZGF0ZSI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy54dGV2ZUF1dG9VcGRhdGUudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goc2V0dGluZ3NLZXkpOw0KICAgICAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImFwaSI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5hcGkudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goc2V0dGluZ3NLZXkpOw0KICAgICAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIC8vIFNlbGVjdA0KICAgICAgICAgICAgY2FzZSAiaG9zdElQIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmhvc3RJUC50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIHRleHQgPSBTRVJWRVJbImlwQWRkcmVzc2VzVjRIb3N0Il07DQogICAgICAgICAgICAgICAgdmFyIHZhbHVlcyA9IFNFUlZFUlsiaXBBZGRyZXNzZXNWNEhvc3QiXTsNCiAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCBkYXRhLCBzZXR0aW5nc0tleSk7DQogICAgICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKHNlbGVjdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ0dW5lciI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy50dW5lci50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIHRleHQgPSBuZXcgQXJyYXkoKTsNCiAgICAgICAgICAgICAgICB2YXIgdmFsdWVzID0gbmV3IEFycmF5KCk7DQogICAgICAgICAgICAgICAgZm9yICh2YXIgaSA9IDE7IGkgPD0gMTAwOyBpKyspIHsNCiAgICAgICAgICAgICAgICAgICAgdGV4dC5wdXNoKGkpOw0KICAgICAgICAgICAgICAgICAgICB2YWx1ZXMucHVzaChpKTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgdmFyIHNlbGVjdCA9IGNvbnRlbnQuY3JlYXRlU2VsZWN0KHRleHQsIHZhbHVlcywgZGF0YSwgc2V0dGluZ3NLZXkpOw0KICAgICAgICAgICAgICAgIHNlbGVjdC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChzZWxlY3QpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiZXBnU291cmNlIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmVwZ1NvdXJjZS50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIHRleHQgPSBbIlBNUyIsICJYRVBHIl07DQogICAgICAgICAgICAgICAgdmFyIHZhbHVlcyA9IFsiUE1TIiwgIlhFUEciXTsNCiAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCBkYXRhLCBzZXR0aW5nc0tleSk7DQogICAgICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKHNlbGVjdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJiYWNrdXAua2VlcCI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5iYWNrdXBLZWVwLnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgdGV4dCA9IFsiNSIsICIxMCIsICIyMCIsICIzMCIsICI0MCIsICI1MCJdOw0KICAgICAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBbIjUiLCAiMTAiLCAiMjAiLCAiMzAiLCAiNDAiLCAiNTAiXTsNCiAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCBkYXRhLCBzZXR0aW5nc0tleSk7DQogICAgICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKHNlbGVjdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJidWZmZXIuc2l6ZS5rYiI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5idWZmZXJTaXplLnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgdGV4dCA9IFsiMC41IE1CIiwgIjEgTUIiLCAiMiBNQiIsICIzIE1CIiwgIjQgTUIiLCAiNSBNQiIsICI2IE1CIiwgIjcgTUIiLCAiOCBNQiJdOw0KICAgICAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBbIjUxMiIsICIxMDI0IiwgIjIwNDgiLCAiMzA3MiIsICI0MDk2IiwgIjUxMjAiLCAiNjE0NCIsICI3MTY4IiwgIjgxOTIiXTsNCiAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCBkYXRhLCBzZXR0aW5nc0tleSk7DQogICAgICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKHNlbGVjdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJidWZmZXIiOg0KICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3Muc3RyZWFtQnVmZmVyaW5nLnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgdGV4dCA9IFsie3suc2V0dGluZ3Muc3RyZWFtQnVmZmVyaW5nLmluZm9fZmFsc2V9fSIsICJ4VGVWZTogKHt7LnNldHRpbmdzLnN0cmVhbUJ1ZmZlcmluZy5pbmZvX3h0ZXZlfX0pIiwgIkZGbXBlZzogKHt7LnNldHRpbmdzLnN0cmVhbUJ1ZmZlcmluZy5pbmZvX2ZmbXBlZ319KSIsICJWTEM6ICh7ey5zZXR0aW5ncy5zdHJlYW1CdWZmZXJpbmcuaW5mb192bGN9fSkiXTsNCiAgICAgICAgICAgICAgICB2YXIgdmFsdWVzID0gWyItIiwgInh0ZXZlIiwgImZmbXBlZyIsICJ2bGMiXTsNCiAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCBkYXRhLCBzZXR0aW5nc0tleSk7DQogICAgICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKHNlbGVjdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ1ZHB4eSI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy51ZHB4eS50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsICJ1ZHB4eSIsIGRhdGEpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3suc2V0dGluZ3MudWRweHkucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgfQ0KICAgICAgICByZXR1cm4gc2V0dGluZzsNCiAgICB9DQogICAgY3JlYXRlRGVzY3JpcHRpb24oc2V0dGluZ3NLZXkpIHsNCiAgICAgICAgdmFyIGRlc2NyaXB0aW9uID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVFIiKTsNCiAgICAgICAgdmFyIHRleHQ7DQogICAgICAgIHN3aXRjaCAoc2V0dGluZ3NLZXkpIHsNCiAgICAgICAgICAgIGNhc2UgInRsc01vZGUiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MudGxzTW9kZS5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImF1dGhlbnRpY2F0aW9uLndlYiI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5hdXRoZW50aWNhdGlvbldFQi5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImF1dGhlbnRpY2F0aW9uLm0zdSI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5hdXRoZW50aWNhdGlvbk0zVS5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImF1dGhlbnRpY2F0aW9uLnBtcyI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5hdXRoZW50aWNhdGlvblBNUy5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImF1dGhlbnRpY2F0aW9uLnhtbCI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5hdXRoZW50aWNhdGlvblhNTC5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImF1dGhlbnRpY2F0aW9uLmFwaSI6DQogICAgICAgICAgICAgICAgaWYgKFNFUlZFUlsic2V0dGluZ3MiXVsiYXV0aGVudGljYXRpb24ud2ViIl0gPT0gdHJ1ZSkgew0KICAgICAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLmF1dGhlbnRpY2F0aW9uQVBJLmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInh0ZXZlQXV0b1VwZGF0ZSI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy54dGV2ZUF1dG9VcGRhdGUuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJiYWNrdXAua2VlcCI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5iYWNrdXBLZWVwLmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiYmFja3VwLnBhdGgiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MuYmFja3VwUGF0aC5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInRlbXAucGF0aCI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy50ZW1wUGF0aC5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImJ1ZmZlciI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5zdHJlYW1CdWZmZXJpbmcuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJidWZmZXIuc2l6ZS5rYiI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5idWZmZXJTaXplLmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAic3RvcmVCdWZmZXJJblJBTSI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5zdG9yZUJ1ZmZlckluUkFNLmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiYnVmZmVyLnRpbWVvdXQiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MuYnVmZmVyVGltZW91dC5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInVzZXIuYWdlbnQiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MudXNlckFnZW50LmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiZmZtcGVnLnBhdGgiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MuZmZtcGVnUGF0aC5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImZmbXBlZy5vcHRpb25zIjoNCiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLmZmbXBlZ09wdGlvbnMuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ2bGMucGF0aCI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy52bGNQYXRoLmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAidmxjLm9wdGlvbnMiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MudmxjT3B0aW9ucy5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImVwZ1NvdXJjZSI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5lcGdTb3VyY2UuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJob3N0SVAiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MuaG9zdElQLmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAidHVuZXIiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MudHVuZXIuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ1cGRhdGUiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MudXBkYXRlLmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiYXBpIjoNCiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLmFwaS5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImZpbGVzLnVwZGF0ZSI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5maWxlc1VwZGF0ZS5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImNhY2hlLmltYWdlcyI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5jYWNoZUltYWdlcy5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInhlcGcucmVwbGFjZS5taXNzaW5nLmltYWdlcyI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5yZXBsYWNlRW1wdHlJbWFnZXMuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ1ZHB4eSI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy51ZHB4eS5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICAgICAgdGV4dCA9ICIiOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICB9DQogICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gIiI7DQogICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgdmFyIHByZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlBSRSIpOw0KICAgICAgICBwcmUuaW5uZXJIVE1MID0gdGV4dDsNCiAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChwcmUpOw0KICAgICAgICBkZXNjcmlwdGlvbi5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICBkZXNjcmlwdGlvbi5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgcmV0dXJuIGRlc2NyaXB0aW9uOw0KICAgIH0NCn0NCmNsYXNzIFNldHRpbmdzQ2F0ZWdvcnlJdGVtIGV4dGVuZHMgU2V0dGluZ3NDYXRlZ29yeSB7DQogICAgY29uc3RydWN0b3IoaGVhZGxpbmUsIHNldHRpbmdzS2V5cykgew0KICAgICAgICBzdXBlcigpOw0KICAgICAgICB0aGlzLmhlYWRsaW5lID0gaGVhZGxpbmU7DQogICAgICAgIHRoaXMuc2V0dGluZ3NLZXlzID0gc2V0dGluZ3NLZXlzOw0KICAgIH0NCiAgICBjcmVhdGVDYXRlZ29yeSgpIHsNCiAgICAgICAgdmFyIGhlYWRsaW5lID0gdGhpcy5jcmVhdGVDYXRlZ29yeUhlYWRsaW5lKHRoaXMuaGVhZGxpbmUpOw0KICAgICAgICB2YXIgc2V0dGluZ3NLZXlzID0gdGhpcy5zZXR0aW5nc0tleXM7DQogICAgICAgIHZhciBkb2MgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCh0aGlzLkRvY3VtZW50SUQpOw0KICAgICAgICBkb2MuYXBwZW5kQ2hpbGQoaGVhZGxpbmUpOw0KICAgICAgICAvLyBDcmVhdGUgYSB0YWJsZSBmb3IgdGhlIGNhdGVnb3J5DQogICAgICAgIHZhciB0YWJsZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlRBQkxFIik7DQogICAgICAgIHZhciBrZXlzID0gc2V0dGluZ3NLZXlzLnNwbGl0KCIsIik7DQogICAgICAgIGtleXMuZm9yRWFjaChzZXR0aW5nc0tleSA9PiB7DQogICAgICAgICAgICBzd2l0Y2ggKHNldHRpbmdzS2V5KSB7DQogICAgICAgICAgICAgICAgY2FzZSAiYXV0aGVudGljYXRpb24ucG1zIjoNCiAgICAgICAgICAgICAgICBjYXNlICJhdXRoZW50aWNhdGlvbi5tM3UiOg0KICAgICAgICAgICAgICAgIGNhc2UgImF1dGhlbnRpY2F0aW9uLnhtbCI6DQogICAgICAgICAgICAgICAgY2FzZSAiYXV0aGVudGljYXRpb24uYXBpIjoNCiAgICAgICAgICAgICAgICAgICAgaWYgKFNFUlZFUlsic2V0dGluZ3MiXVsiYXV0aGVudGljYXRpb24ud2ViIl0gPT0gZmFsc2UpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgICAgICAgICAgdmFyIGl0ZW0gPSB0aGlzLmNyZWF0ZVNldHRpbmdzKHNldHRpbmdzS2V5KTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGRlc2NyaXB0aW9uID0gdGhpcy5jcmVhdGVEZXNjcmlwdGlvbihzZXR0aW5nc0tleSk7DQogICAgICAgICAgICAgICAgICAgIHRhYmxlLmFwcGVuZENoaWxkKGl0ZW0pOw0KICAgICAgICAgICAgICAgICAgICB0YWJsZS5hcHBlbmRDaGlsZChkZXNjcmlwdGlvbik7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9KTsNCiAgICAgICAgZG9jLmFwcGVuZENoaWxkKHRhYmxlKTsNCiAgICAgICAgZG9jLmFwcGVuZENoaWxkKHRoaXMuY3JlYXRlSFIoKSk7DQogICAgfQ0KfQ0KZnVuY3Rpb24gc2hvd1NldHRpbmdzKCkgew0KICAgIGZvciAobGV0IGkgPSAwOyBpIDwgc2V0dGluZ3NDYXRlZ29yeS5sZW5ndGg7IGkrKykgew0KICAgICAgICBzZXR0aW5nc0NhdGVnb3J5W2ldLmNyZWF0ZUNhdGVnb3J5KCk7DQogICAgfQ0KfQ0KZnVuY3Rpb24gc2F2ZVNldHRpbmdzKCkgew0KICAgIHZhciBjbWQgPSAic2F2ZVNldHRpbmdzIjsNCiAgICB2YXIgZGl2ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnRlbnRfc2V0dGluZ3MiKTsNCiAgICB2YXIgc2V0dGluZ3MgPSBkaXYuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSgiY2hhbmdlZCIpOw0KICAgIHZhciBuZXdTZXR0aW5ncyA9IG5ldyBPYmplY3QoKTsNCiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHNldHRpbmdzLmxlbmd0aDsgaSsrKSB7DQogICAgICAgIHZhciBuYW1lOw0KICAgICAgICB2YXIgdmFsdWU7DQogICAgICAgIHN3aXRjaCAoc2V0dGluZ3NbaV0udGFnTmFtZSkgew0KICAgICAgICAgICAgY2FzZSAiSU5QVVQiOg0KICAgICAgICAgICAgICAgIHN3aXRjaCAoc2V0dGluZ3NbaV0udHlwZSkgew0KICAgICAgICAgICAgICAgICAgICBjYXNlICJjaGVja2JveCI6DQogICAgICAgICAgICAgICAgICAgICAgICBuYW1lID0gc2V0dGluZ3NbaV0ubmFtZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlID0gc2V0dGluZ3NbaV0uY2hlY2tlZDsNCiAgICAgICAgICAgICAgICAgICAgICAgIG5ld1NldHRpbmdzW25hbWVdID0gdmFsdWU7DQogICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICAgICAgY2FzZSAidGV4dCI6DQogICAgICAgICAgICAgICAgICAgICAgICBuYW1lID0gc2V0dGluZ3NbaV0ubmFtZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlID0gc2V0dGluZ3NbaV0udmFsdWU7DQogICAgICAgICAgICAgICAgICAgICAgICBzd2l0Y2ggKG5hbWUpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYXNlICJ1cGRhdGUiOg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IHZhbHVlLnNwbGl0KCIsIik7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlID0gdmFsdWUuZmlsdGVyKGZ1bmN0aW9uIChlKSB7IHJldHVybiBlOyB9KTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAiYnVmZmVyLnRpbWVvdXQiOg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IHBhcnNlRmxvYXQodmFsdWUpOw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgbmV3U2V0dGluZ3NbbmFtZV0gPSB2YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgIlNFTEVDVCI6DQogICAgICAgICAgICAgICAgbmFtZSA9IHNldHRpbmdzW2ldLm5hbWU7DQogICAgICAgICAgICAgICAgdmFsdWUgPSBzZXR0aW5nc1tpXS52YWx1ZTsNCiAgICAgICAgICAgICAgICAvLyBJZiB0aGUgdmFsdWUgaXMgYSBudW1iZXIsIHN0b3JlIGl0IGFzIGEgbnVtYmVyDQogICAgICAgICAgICAgICAgaWYgKGlzTmFOKHZhbHVlKSkgew0KICAgICAgICAgICAgICAgICAgICBuZXdTZXR0aW5nc1tuYW1lXSA9IHZhbHVlOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICAgICAgbmV3U2V0dGluZ3NbbmFtZV0gPSBwYXJzZUludCh2YWx1ZSk7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICB9DQogICAgfQ0KICAgIHZhciBkYXRhID0gbmV3IE9iamVjdCgpOw0KICAgIGRhdGFbInNldHRpbmdzIl0gPSBuZXdTZXR0aW5nczsNCiAgICB2YXIgc2VydmVyID0gbmV3IFNlcnZlcihjbWQpOw0KICAgIHNlcnZlci5yZXF1ZXN0KGRhdGEpOw0KfQ0K" webUI["html/lang/en.json"] = "ew0KICAibWFpbk1lbnUiOg0KICB7DQogICAgIml0ZW0iOg0KICAgIHsNCiAgICAgICJwbGF5bGlzdCI6ICJQbGF5bGlzdCIsDQogICAgICAicG1zSUQiOiAiUE1TIElEIiwNCiAgICAgICJmaWx0ZXIiOiAiRmlsdGVyIiwNCiAgICAgICJ4bWx0diI6ICJYTUxUViIsDQogICAgICAibWFwcGluZyI6ICJNYXBwaW5nIiwNCiAgICAgICJ1c2VycyI6ICJVc2VycyIsDQogICAgICAic2V0dGluZ3MiOiAiU2V0dGluZ3MiLA0KICAgICAgImxvZyI6ICJMb2ciLA0KICAgICAgImxvZ291dCI6ICJMb2dvdXQiDQogICAgfSwNCiAgICAiaGVhZGxpbmUiOg0KICAgIHsNCiAgICAgICJwbGF5bGlzdCI6ICJMb2NhbCBvciByZW1vdGUgcGxheWxpc3RzIiwNCiAgICAgICJmaWx0ZXIiOiAiRmlsdGVyIHBsYXlsaXN0IiwNCiAgICAgICJ4bWx0diI6ICJMb2NhbCBvciByZW1vdGUgWE1MVFYgZmlsZXMiLA0KICAgICAgIm1hcHBpbmciOiAiTWFwIHBsYXlsaXN0IGNoYW5uZWxzIHRvIEVQRyBjaGFubmVscyIsDQogICAgICAidXNlcnMiOiAiVXNlciBtYW5hZ2VtZW50IiwNCiAgICAgICJzZXR0aW5ncyI6ICJTZXR0aW5ncyIsDQogICAgICAibG9nIjogIkxvZyIsDQogICAgICAibG9nb3V0IjogIkxvZ291dCINCiAgICB9DQogIH0sDQogICJjb25maXJtIjoNCiAgew0KICAgICJyZXN0b3JlIjogIkFsbCBkYXRhIHdpbGwgYmUgcmVwbGFjZWQgd2l0aCB0aG9zZSBmcm9tIHRoZSBiYWNrdXAuIFNob3VsZCB0aGUgZmlsZXMgYmUgcmVzdG9yZWQ/Ig0KICB9LA0KICAiYWxlcnQiOg0KICB7DQogICAgImZpbGVMb2FkaW5nRXJyb3IiOiAiRmlsZSBjb3VsZG4ndCBiZSBsb2FkZWQiLA0KICAgICJpbnZhbGlkQ2hhbm5lbE51bWJlciI6ICJJbnZhbGlkIGNoYW5uZWwgbnVtYmVyIiwNCiAgICAibWlzc2luZ0lucHV0IjogIk1pc3NpbmcgaW5wdXQiDQogIH0sDQogICJidXR0b24iOg0KICB7DQogICAgImJhY2siOiAiQmFjayIsDQogICAgImJhY2t1cCI6ICJCYWNrdXAiLA0KICAgICJidWxrRWRpdCI6ICJCdWxrIEVkaXQiLA0KICAgICJjYW5jZWwiOiAiQ2FuY2VsIiwNCiAgICAiZGVsZXRlIjogIkRlbGV0ZSIsDQogICAgImRvbmUiOiAiRG9uZSIsDQogICAgImxvZ2luIjogIkxvZ2luIiwNCiAgICAibmV3IjogIk5ldyIsDQogICAgIm5leHQiOiAiTmV4dCIsDQogICAgInJlc3RvcmUiOiAiUmVzdG9yZSIsDQogICAgInNhdmUiOiAiU2F2ZSIsDQogICAgInNlYXJjaCI6ICJTZWFyY2giLA0KICAgICJ1cGRhdGUiOiAiVXBkYXRlIiwNCiAgICAiY3JhZXRlQWNjb3VudCI6ICJDcmVhdGUgQWNjb3VudCIsDQogICAgInJlc2V0TG9ncyI6ICJSZXNldCBMb2dzIiwNCiAgICAidXBsb2FkTG9nbyI6ICJVcGxvYWQgTG9nbyINCiAgfSwNCiAgImZpbHRlciI6DQogIHsNCiAgICAidGFibGUiOg0KICAgIHsNCiAgICAgICJzdGFydGluZ0NoYW5uZWwiOiAiU3RhcnRpbmcgQ2guIE5vLiIsDQogICAgICAibmFtZSI6ICJGaWx0ZXIgTmFtZSIsDQogICAgICAidHlwZSI6ICJGaWx0ZXIgVHlwZSIsDQogICAgICAiZmlsdGVyIjogIkZpbHRlciINCiAgICB9LA0KICAgICJjdXN0b20iOiAiQ3VzdG9tIiwNCiAgICAiZ3JvdXAiOiAiTTNVIEdyb3VwIiwNCiAgICAibmFtZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIkZpbHRlciBOYW1lIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJGaWx0ZXIgbmFtZSIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgImRlc2NyaXB0aW9uIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiRGVzY3JpcHRpb24iLA0KICAgICAgInBsYWNlaG9sZGVyIjogIkRlc2NyaXB0aW9uIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAidHlwZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIlR5cGUiLA0KICAgICAgImdyb3VwVGl0bGUiOiAiR3JvdXAgVGl0bGUiLA0KICAgICAgImN1c3RvbUZpbHRlciI6ICJDdXN0b20gRmlsdGVyIg0KICAgIH0sDQogICAgImNhc2VTZW5zaXRpdmUiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJDYXNlIFNlbnNpdGl2ZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAiZmlsdGVyUnVsZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIkZpbHRlciBSdWxlIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJTcG9ydCB7SER9ICF7RVMsSVR9IiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAiZmlsdGVyR3JvdXAiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJHcm91cCBUaXRsZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJTZWxlY3QgYSBNM1UgZ3JvdXAuIChDb3VudGVyKTxicj5DaGFuZ2luZyB0aGUgZ3JvdXAgdGl0bGUgaW4gdGhlIE0zVSBpbnZhbGlkYXRlcyB0aGUgZmlsdGVyLiINCiAgICB9LA0KICAgICJpbmNsdWRlIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiSW5jbHVkZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiRkhELFVIRCIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiQ2hhbm5lbCBuYW1lIG11c3QgaW5jbHVkZS48YnI+KENvbW1hIHNlcGFyYXRlZCkgQ29tbWEgbWVhbnMgb3IiDQogICAgfSwNCiAgICAiZXhjbHVkZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIkV4Y2x1ZGUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIkVTLElUIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJDaGFubmVsIG5hbWUgbXVzdCBub3QgY29udGFpbi48YnI+KENvbW1hIHNlcGFyYXRlZCkgQ29tbWEgbWVhbnMgb3IiDQogICAgfSwNCiAgICAicHJlc2VydmVNYXBwaW5nIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiUHJlc2VydmUgRXhpc3RpbmcgTTNVPGJyPkNoYW5uZWwgTnVtYmVycyIsDQogICAgICAicGFsY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJQcmVzZXJ2ZSBleGlzdGluZyBNM1UgcGxheWxpc3QgY2hhbm5lbCBudW1iZXJzPyINCiAgICB9LA0KICAgICJzdGFydGluZ0NoYW5uZWwiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJTdGFydGluZyBDaGFubmVsIE51bWJlciIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAiZGVmYXVsdE1pc3NpbmdFUEciOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJGaWxsIE1pc3NpbmcgRVBHIERhdGEiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiV2hlbiB0aGVyZSBpcyBubyBtYXRjaGluZyBFUEcgZGF0YSBmb3IgY2hhbm5lbCwgPGJyPmF1dG9maWxsIHdpdGggeFRlVmUgZHVtbXkgRVBHIGRhdGE/Ig0KICAgIH0NCg0KICB9LA0KICAicGxheWxpc3QiOg0KICB7DQogICAgInRhYmxlIjoNCiAgICB7DQogICAgICAicGxheWxpc3QiOiAiUGxheWxpc3QiLA0KICAgICAgInR1bmVyIjogIlR1bmVyIiwNCiAgICAgICJsYXN0VXBkYXRlIjogIkxhc3QgVXBkYXRlIiwNCiAgICAgICJhdmFpbGFiaWxpdHkiOiAiQXZhaWxhYmlsaXR5IiwNCiAgICAgICJ0eXBlIjogIlR5cGUiLA0KICAgICAgInN0cmVhbXMiOiAiU3RyZWFtcyIsDQogICAgICAiZ3JvdXBUaXRsZSI6ICJncm91cC10aXRsZSIsDQogICAgICAidHZnSUQiOiAidHZnLWlkIiwNCiAgICAgICJ1bmlxdWVJRCI6ICJVbmlxdWUgSUQiDQogICAgfSwNCiAgICAicGxheWxpc3RUeXBlIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiUGxheWxpc3QgdHlwZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAidHlwZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIlR5cGUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgIm5hbWUiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJOYW1lIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJQbGF5bGlzdCBuYW1lIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAiZGVzY3JpcHRpb24iOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJEZXNjcmlwdGlvbiIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiRGVzY3JpcHRpb24iLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJmaWxlTTNVIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiTTNVIEZpbGUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIkZpbGUgcGF0aCBvciBVUkwgb2YgdGhlIE0zVSIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgImZpbGVIREhSIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiSERIb21lUnVuIElQIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJJUCBhZGRyZXNzIGFuZCBwb3J0ICgxOTIuMTY4LjEuMTA6NTAwNCkiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJ0dW5lciI6DQogICAgew0KICAgICAgInRpdGxlIjogIlR1bmVyIC8gU3RyZWFtcyIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJOdW1iZXIgb2YgcGFyYWxsZWwgY29ubmVjdGlvbnMgdGhhdCBjYW4gYmUgZXN0YWJsaXNoZWQgdG8gdGhlIHByb3ZpZGVyLiA8YnI+T25seSBhdmFpbGFibGUgd2l0aCBhY3RpdmF0ZWQgYnVmZmVyLjxicj5OZXcgc2V0dGluZ3Mgd2lsbCBvbmx5IGJlIGFwcGxpZWQgYWZ0ZXIgcXVpdHRpbmcgYWxsIHN0cmVhbXMuIg0KICAgIH0NCiAgfSwNCiAgInhtbHR2IjoNCiAgew0KICAgICJ0YWJsZSI6DQogICAgew0KICAgICAgImd1aWRlIjogIkd1aWRlIiwNCiAgICAgICJsYXN0VXBkYXRlIjogIkxhc3QgVXBkYXRlIiwNCiAgICAgICJhdmFpbGFiaWxpdHkiOiAiQXZhaWxhYmlsaXR5IiwNCiAgICAgICJjaGFubmVscyI6ICJDaGFubmVscyIsDQogICAgICAicHJvZ3JhbXMiOiAiUHJvZ3JhbXMiDQogICAgfSwNCiAgICAibmFtZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIk5hbWUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIkd1aWRlIG5hbWUiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJkZXNjcmlwdGlvbiI6DQogICAgew0KICAgICAgInRpdGxlIjogIkRlc2NyaXB0aW9uIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJEZXNjcmlwdGlvbiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgImZpbGVYTUxUViI6DQogICAgew0KICAgICAgInRpdGxlIjogIlhNTFRWIEZpbGUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIkZpbGUgcGF0aCBvciBVUkwgb2YgdGhlIFhNTFRWIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfQ0KICB9LA0KICAibWFwcGluZyI6DQogIHsNCiAgICAidGFibGUiOg0KICAgIHsNCiAgICAgICJjaE5vIjogIkNoLiBOby4iLA0KICAgICAgImxvZ28iOiAiTG9nbyIsDQogICAgICAiY2hhbm5lbE5hbWUiOiAiQ2hhbm5lbCBOYW1lIiwNCiAgICAgICJwbGF5bGlzdCI6ICJQbGF5bGlzdCIsDQogICAgICAiZ3JvdXBUaXRsZSI6ICJHcm91cCBUaXRsZSIsDQogICAgICAieG1sdHZGaWxlIjogIlhNTFRWIEZpbGUiLA0KICAgICAgInhtbHR2SUQiOiAiWE1MVFYgSUQiLA0KICAgICAgInRpbWVzaGlmdCI6ICJUaW1lc2hpZnQiDQogICAgfSwNCiAgICAiYWN0aXZlIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiQWN0aXZlIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJjaGFubmVsTmFtZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIkNoYW5uZWwgTmFtZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAiZGVzY3JpcHRpb24iOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJDaGFubmVsIERlc2NyaXB0aW9uIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJVc2VkIGJ5IHRoZSBEdW1teSBhcyBhbiBYTUwgZGVzY3JpcHRpb24iLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJ1cGRhdGVDaGFubmVsTmFtZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIlVwZGF0ZSBDaGFubmVsIE5hbWUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgInVwZGF0ZUNoYW5uZWxHcm91cCI6DQogICAgew0KICAgICAgInRpdGxlIjogIlVwZGF0ZSBDaGFubmVsIEdyb3VwIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIklmIGNoZWNrZWQsIHVzZSBncm91cCBmcm9tIHRoZSBkYXRhYmFzZSINCiAgICB9LA0KICAgICJjaGFubmVsTG9nbyI6DQogICAgew0KICAgICAgInRpdGxlIjogIkxvZ28gVVJMIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJ1cGRhdGVDaGFubmVsTG9nbyI6DQogICAgew0KICAgICAgInRpdGxlIjogIlVwZGF0ZSBDaGFubmVsIExvZ28iLA0KICAgICAgInBsYWNlaG9sZGVyIjogIiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgImVwZ0NhdGVnb3J5IjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiRVBHIENhdGVnb3J5IiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJtM3VHcm91cFRpdGxlIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiR3JvdXAgVGl0bGUgKHh0ZXZlLm0zdSkiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgInhtbHR2RmlsZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIlhNTFRWIEZpbGUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgInhtbHR2Q2hhbm5lbCI6DQogICAgew0KICAgICAgInRpdGxlIjogIlhNTFRWIENoYW5uZWwiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgInRpbWVzaGlmdCI6DQogICAgew0KICAgICAgInRpdGxlIjogIlRpbWVzaGlmdCIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiMCIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0NCiAgfSwNCiAgInVzZXJzIjoNCiAgew0KICAgICJ0YWJsZSI6DQogICAgew0KICAgICAgInVzZXJuYW1lIjogIlVzZXJuYW1lIiwNCiAgICAgICJwYXNzd29yZCI6ICJQYXNzd29yZCIsDQogICAgICAid2ViIjogIldFQiIsDQogICAgICAicG1zIjogIlBNUyIsDQogICAgICAibTN1IjogIk0zVSIsDQogICAgICAieG1sIjogIlhNTCIsDQogICAgICAiYXBpIjogIkFQSSINCiAgICB9LA0KICAgICJ1c2VybmFtZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIlVzZXJuYW1lIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJVc2VybmFtZSIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgInBhc3N3b3JkIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiUGFzc3dvcmQiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIlBhc3N3b3JkIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAiY29uZmlybSI6DQogICAgew0KICAgICAgInRpdGxlIjogIkNvbmZpcm0iLA0KICAgICAgInBsYWNlaG9sZGVyIjogIlBhc3N3b3JkIGNvbmZpcm0iLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJ3ZWIiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJXZWIgQWNjZXNzIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJwbXMiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJQTVMgQWNjZXNzIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJtM3UiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJNM1UgQWNjZXNzIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJ4bWwiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJYTUwgQWNjZXNzIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJhcGkiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJBUEkgQWNjZXNzIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9DQogIH0sDQogICJzZXR0aW5ncyI6DQogIHsNCiAgICAiY2F0ZWdvcnkiOg0KICAgIHsNCiAgICAgICJnZW5lcmFsIjogIkdlbmVyYWwiLA0KICAgICAgImZpbGVzIjogIkZpbGVzIiwNCiAgICAgICJzdHJlYW1pbmciOiAiU3RyZWFtaW5nIiwNCiAgICAgICJiYWNrdXAiOiAiQmFja3VwIiwNCiAgICAgICJhdXRoZW50aWNhdGlvbiI6ICJBdXRoZW50aWNhdGlvbiINCiAgICB9LA0KICAgICJ1cGRhdGUiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJTY2hlZHVsZSBmb3IgdXBkYXRpbmcgKFBsYXlsaXN0LCBYTUxUViwgQmFja3VwKSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiMDAwMCwxMDAwLDIwMDAiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIlRpbWUgaW4gMjQgaG91ciBmb3JtYXQgKDA4MDAgPSA4OjAwIGFtKS4gTW9yZSB0aW1lcyBjYW4gYmUgZW50ZXJlZCBjb21tYSBzZXBhcmF0ZWQuIExlYXZlIHRoaXMgZmllbGQgZW1wdHkgaWYgbm8gdXBkYXRlcyBhcmUgdG8gYmUgY2FycmllZCBvdXQuIg0KICAgIH0sDQogICAgImFwaSI6DQogICAgew0KICAgICAgInRpdGxlIjogIkFQSSBJbnRlcmZhY2UiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIlZpYSBBUEkgaW50ZXJmYWNlIGl0IGlzIHBvc3NpYmxlIHRvIHNlbmQgY29tbWFuZHMgdG8geFRlVmUuIEFQSSBkb2N1bWVudGF0aW9uIGlzIDxhIGhyZWY9J2h0dHBzOi8vZ2l0aHViLmNvbS94dGV2ZS1wcm9qZWN0L3hUZVZlLURvY3VtZW50YXRpb24vYmxvYi9tYXN0ZXIvZW4vY29uZmlndXJhdGlvbi5tZCNhcGknPmhlcmU8L2E+Ig0KICAgIH0sDQogICAgImVwZ1NvdXJjZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIkVQRyBTb3VyY2UiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIlBNUzo8YnI+LSBVc2UgRVBHIGRhdGEgZnJvbSBQbGV4IG9yIEVtYnkgPGJyPjxicj5YRVBHOjxicj4tIFVzZSBvZiBvbmUgb3IgbW9yZSBYTUxUViBmaWxlczxicj4tIENoYW5uZWwgbWFuYWdlbWVudDxicj4tIE0zVSAvIFhNTFRWIGV4cG9ydCAoSFRUUCBsaW5rIGZvciBJUFRWIGFwcHMpIg0KICAgIH0sDQogICAgInR1bmVyIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiTnVtYmVyIG9mIFR1bmVycyIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiTnVtYmVyIG9mIHBhcmFsbGVsIGNvbm5lY3Rpb25zIHRoYXQgY2FuIGJlIGVzdGFibGlzaGVkIHRvIHRoZSBwcm92aWRlci48YnI+QXZhaWxhYmxlIGZvcjogUGxleCwgRW1ieSAoSERIUiksIE0zVSAod2l0aCBhY3RpdmUgYnVmZmVyKS48YnI+QWZ0ZXIgYSBjaGFuZ2UsIHhUZVZlIG11c3QgYmUgZGVsZXRlIGluIHRoZSBQbGV4IC8gRW1ieSBEVlIgc2V0dGluZ3MgYW5kIHNldCB1cCBhZ2Fpbi4iDQogICAgfSwNCiAgICAiaG9zdElQIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiSG9zdCBJUCIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiSVAgYWRkcmVzcyB4VGVWZSB3aWxsIHVzZSB0byBmb3JtIE0zVSBhbmQgWE1MVFYgZmlsZXMiDQogICAgfSwNCiAgICAidGxzTW9kZSI6IHsNCiAgICAgICJ0aXRsZSI6ICJUTFMgKEhUVFBTKSBtb2RlIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJDaGFuZ2VzIHdlYiBzZXJ2ZXIgcHJvdG9jb2wgdG8gSFRUUFMuPGJyPkZvciBkZXRhaWxzLCBzZWUgPGE+aHR0cHM6Ly9naXRodWIuY29tL1NDUDAwMi94VGVWZSN0bHMtbW9kZTwvYT4iDQogICAgfSwNCiAgICAiZmlsZXNVcGRhdGUiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJVcGRhdGVzIGFsbCBmaWxlcyBhdCBzdGFydHVwIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJVcGRhdGVzIGFsbCBwbGF5bGlzdHMsIHR1bmVyIGFuZCBYTUxUViBmaWxlcyBhdCBzdGFydHVwLiINCiAgICB9LA0KICAgICJjYWNoZUltYWdlcyI6DQogICAgew0KICAgICAgInRpdGxlIjogIkltYWdlIENhY2hpbmciLA0KICAgICAgImRlc2NyaXB0aW9uIjogIkFsbCBpbWFnZXMgZnJvbSB0aGUgWE1MVFYgZmlsZSBhcmUgY2FjaGVkLCBhbGxvd2luZyBmYXN0ZXIgcmVuZGVyaW5nIG9mIHRoZSBncmlkIGluIHRoZSBjbGllbnQuPGJyPkRvd25sb2FkaW5nIHRoZSBpbWFnZXMgbWF5IHRha2UgYSB3aGlsZSBhbmQgd2lsbCBiZSBkb25lIGluIHRoZSBiYWNrZ3JvdW5kLiINCiAgICB9LA0KICAgICJyZXBsYWNlRW1wdHlJbWFnZXMiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJSZXBsYWNlIG1pc3NpbmcgcHJvZ3JhbSBpbWFnZXMiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIklmIHRoZSBwb3N0ZXIgaW4gdGhlIFhNTFRWIHByb2dyYW0gaXMgbWlzc2luZywgdGhlIGNoYW5uZWwgbG9nbyB3aWxsIGJlIHVzZWQuIg0KICAgIH0sDQogICAgInh0ZXZlQXV0b1VwZGF0ZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIkF1dG9tYXRpYyB1cGRhdGUgb2YgeFRlVmUiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIklmIGEgbmV3IHZlcnNpb24gb2YgeFRlVmUgaXMgYXZhaWxhYmxlLCBpdCB3aWxsIGJlIGF1dG9tYXRpY2FsbHkgaW5zdGFsbGVkLiBUaGUgdXBkYXRlcyBhcmUgZG93bmxvYWRlZCBmcm9tIEdpdEh1Yi4iDQogICAgfSwNCiAgICAic3RyZWFtQnVmZmVyaW5nIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiU3RyZWFtIEJ1ZmZlciIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiRnVuY3Rpb25zIG9mIHRoZSBidWZmZXI6PGJyPi0gVGhlIHN0cmVhbSBpcyBwYXNzZWQgZnJvbSB4VGVWZSwgRkZtcGVnIG9yIFZMQyB0byBQbGV4LCBFbWJ5IG9yIE0zVSBQbGF5ZXI8YnI+LSBTbWFsbCBqZXJraW5nIG9mIHRoZSBzdHJlYW1zIGNhbiBiZSBjb21wZW5zYXRlZDxicj4tIEhMUyAvIE0zVTggc3VwcG9ydDxicj4tIFJUUCAvIFJUUFMgc3VwcG9ydCAob25seSBGRm1wZWcgb3IgVkxDKTxicj4tIFJlLXN0cmVhbWluZzxicj4tIFNlcGFyYXRlIHR1bmVyIGxpbWl0IGZvciBlYWNoIHBsYXlsaXN0IiwNCiAgICAgICJpbmZvX2ZhbHNlIjogIk5vIEJ1ZmZlciAoQ2xpZW50IGNvbm5lY3RzIHRvIHRoZSBzdHJlYW1pbmcgc2VydmVyKSIsDQogICAgICAiaW5mb194dGV2ZSI6ICJ4VGVWZSBjb25uZWN0cyB0byB0aGUgc3RyZWFtaW5nIHNlcnZlciIsDQogICAgICAiaW5mb19mZm1wZWciOiAiRkZtcGVnIGNvbm5lY3RzIHRvIHRoZSBzdHJlYW1pbmcgc2VydmVyIiwNCiAgICAgICJpbmZvX3ZsYyI6ICJWTEMgY29ubmVjdHMgdG8gdGhlIHN0cmVhbWluZyBzZXJ2ZXIiDQoNCiAgICB9LA0KICAgICJ1ZHB4eSI6DQogICAgew0KICAgICAgInRpdGxlIjogIlVEUHh5IGFkZHJlc3MiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIlRoZSBhZGRyZXNzIG9mIHlvdXIgVURQeHkgc2VydmVyLiBJZiBzZXQsIGFuZCB0aGUgY2hhbm5lbCBVUkxzIGluIHRoZSBtM3UgaXMgbXVsdGljYXN0LCB4VGVWZSB3aWxsIHJld3JpdGUgaXQgc28gdGhhdCBpdCBpcyBhY2Nlc3NlZCB2aWEgdGhlIFVEUHh5IHNlcnZpY2UuIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJob3N0OnBvcnQiDQogICAgfSwNCiAgICAiZmZtcGVnUGF0aCI6DQogICAgew0KICAgICAgInRpdGxlIjogIkZGbXBlZyBCaW5hcnkgUGF0aCIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiUGF0aCB0byBGRm1wZWcgYmluYXJ5LiIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiL3BhdGgvdG8vZmZtcGVnIg0KICAgIH0sDQogICAgImZmbXBlZ09wdGlvbnMiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJGRm1wZWcgT3B0aW9ucyIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiRkZtcGVnIG9wdGlvbnMuPGJyPk9ubHkgY2hhbmdlIGlmIHlvdSBrbm93IHdoYXQgeW91IGFyZSBkb2luZy48YnI+TGVhdmUgYmxhbmsgdG8gc2V0IGRlZmF1bHQgc2V0dGluZ3MuIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJMZWF2ZSBibGFuayB0byBzZXQgZGVmYXVsdCBzZXR0aW5ncyINCiAgICB9LA0KICAgICJ2bGNQYXRoIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiVkxDIC8gQ1ZMQyBCaW5hcnkgUGF0aCIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiUGF0aCB0byBWTEMgLyBDVkxDIGJpbmFyeS4iLA0KICAgICAgInBsYWNlaG9sZGVyIjogIi9wYXRoL3RvL2N2bGMiDQogICAgfSwNCiAgICAidmxjT3B0aW9ucyI6DQogICAgew0KICAgICAgInRpdGxlIjogIlZMQyAvIENWTEMgT3B0aW9ucyIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiVkxDIC8gQ1ZMQyBvcHRpb25zLjxicj5Pbmx5IGNoYW5nZSBpZiB5b3Uga25vdyB3aGF0IHlvdSBhcmUgZG9pbmcuPGJyPkxlYXZlIGJsYW5rIHRvIHNldCBkZWZhdWx0IHNldHRpbmdzLiIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiTGVhdmUgYmxhbmsgdG8gc2V0IGRlZmF1bHQgc2V0dGluZ3MiDQogICAgfSwNCiAgICAiYnVmZmVyU2l6ZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIkJ1ZmZlciBTaXplIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJCdWZmZXIgc2l6ZSBpbiBNQi48YnI+TTNVODogSWYgdGhlIFRTIHNlZ21lbnQgc21hbGxlciB0aGVuIHRoZSBidWZmZXIgc2l6ZSwgdGhlIGZpbGUgc2l6ZSBvZiB0aGUgc2VnbWVudCBpcyB1c2VkLiINCiAgICB9LA0KICAgICJzdG9yZUJ1ZmZlckluUkFNIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiU3RvcmUgYnVmZmVyIGluIFJBTSIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiSWYgY2hlY2tlZCwgd3JpdGUgYnVmZmVyIHRvIFJBTSBpbnN0ZWFkIG9mIHdyaXRpbmcgdG8gZGlzayINCiAgICB9LA0KICAgICJidWZmZXJUaW1lb3V0IjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiVGltZW91dCBmb3IgbmV3IGNsaWVudCBjb25uZWN0aW9ucyIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiVGhlIHhUZVZlIGJ1ZmZlciB3YWl0cyB1bnRpbCBuZXcgY2xpZW50IGNvbm5lY3Rpb25zIGFyZSBlc3RhYmxpc2hlZC4gSGVscGZ1bCBmb3IgZmFzdCBjaGFubmVsIHN3aXRjaGluZy4gVmFsdWUgaW4gbWlsbGlzZWNvbmRzLiIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiMTAwIg0KICAgIH0sDQogICAgInVzZXJBZ2VudCI6DQogICAgew0KICAgICAgInRpdGxlIjogIlVzZXIgQWdlbnQiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIlVzZXIgQWdlbnQgZm9yIEhUVFAgcmVxdWVzdHMuIEZvciBldmVyeSBIVFRQIGNvbm5lY3Rpb24sIHRoaXMgdmFsdWUgaXMgdXNlZCBmb3IgdGhlIHVzZXIgYWdlbnQuIFNob3VsZCBvbmx5IGJlIGNoYW5nZWQgaWYgeFRlVmUgaXMgYmxvY2tlZC4iLA0KICAgICAgInBsYWNlaG9sZGVyIjogInhUZVZlIg0KICAgIH0sDQogICAgImJhY2t1cFBhdGgiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJMb2NhdGlvbiBmb3IgYXV0b21hdGljIGJhY2t1cHMiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIi9tbnQvZGF0YS9iYWNrdXAveHRldmUvIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJCZWZvcmUgYW55IHVwZGF0ZSBvZiB0aGUgcHJvdmlkZXIgZGF0YSBieSB0aGUgc2NoZWR1bGUsIHhUZVZlIGNyZWF0ZXMgYSBiYWNrdXAuIFRoZSBwYXRoIGZvciB0aGUgYXV0b21hdGljIGJhY2t1cHMgY2FuIGJlIGNoYW5nZWQuIHhUZVZlIHJlcXVpcmVzIHdyaXRlIHBlcm1pc3Npb24gZm9yIHRoaXMgZm9sZGVyLiINCiAgICB9LA0KICAgICJ0ZW1wUGF0aCI6DQogICAgew0KICAgICAgInRpdGxlIjogIkxvY2F0aW9uIGZvciB0aGUgdGVtcG9yYXJ5IGZpbGVzIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIvdG1wL3h0ZXZlLyIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiTG9jYXRpb24gZm9yIHRoZSBidWZmZXIgZmlsZXMuIg0KICAgIH0sDQogICAgImJhY2t1cEtlZXAiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJOdW1iZXIgb2YgYmFja3VwcyB0byBrZWVwIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJOdW1iZXIgb2YgYmFja3VwcyB0byBrZWVwLiBPbGRlciBiYWNrdXBzIGFyZSBhdXRvbWF0aWNhbGx5IGRlbGV0ZWQuIg0KICAgIH0sDQogICAgImF1dGhlbnRpY2F0aW9uV0VCIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiV0VCIEF1dGhlbnRpY2F0aW9uIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJBY2Nlc3MgdG8gdGhlIHdlYiBpbnRlcmZhY2Ugb25seSBwb3NzaWJsZSB3aXRoIGNyZWRlbnRpYWxzLiINCiAgICB9LA0KICAgICJhdXRoZW50aWNhdGlvblBNUyI6DQogICAgew0KICAgICAgInRpdGxlIjogIlBNUyBBdXRoZW50aWNhdGlvbiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiUGxleCByZXF1ZXN0cyBhcmUgb25seSBwb3NzaWJsZSB3aXRoIGF1dGhlbnRpY2F0aW9uLiA8YnI+PGI+V2FybmluZyEhITwvYj4gQWZ0ZXIgYWN0aXZhdGluZyB0aGlzIGZ1bmN0aW9uIHhUZVZlIG11c3QgYmUgZGVsZXRlIGluIHRoZSBQTVMgRFZSIHNldHRpbmdzIGFuZCBzZXQgdXAgYWdhaW4uIg0KICAgIH0sDQogICAgImF1dGhlbnRpY2F0aW9uTTNVIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiTTNVIEF1dGhlbnRpY2F0aW9uIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJEb3dubG9hZGluZyB0aGUgeHRldmUubTN1IGZpbGUgdmlhIGFuIEhUVFAgcmVxdWVzdCBpcyBvbmx5IHBvc3NpYmxlIHdpdGggYXV0aGVudGljYXRpb24uIg0KICAgIH0sDQogICAgImF1dGhlbnRpY2F0aW9uWE1MIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiWE1MIEF1dGhlbnRpY2F0aW9uIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJEb3dubG9hZGluZyB0aGUgeHRldmUueG1sIGZpbGUgdmlhIGFuIEhUVFAgcmVxdWVzdCBpcyBvbmx5IHBvc3NpYmxlIHdpdGggYXV0aGVudGljYXRpb24iDQogICAgfSwNCiAgICAiYXV0aGVudGljYXRpb25BUEkiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJBUEkgQXV0aGVudGljYXRpb24iLA0KICAgICAgImRlc2NyaXB0aW9uIjogIkFjY2VzcyB0byB0aGUgQVBJIGludGVyZmFjZSBpcyBvbmx5IHBvc3NpYmxlIHdpdGggYXV0aGVudGljYXRpb24uIg0KICAgIH0NCiAgfSwNCiAgIndpemFyZCI6DQogIHsNCiAgICAiZXBnU291cmNlIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiRVBHIFNvdXJjZSIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiUE1TOjxicj4tIFVzZSBFUEcgZGF0YSBmcm9tIFBsZXggb3IgRW1ieSA8YnI+PGJyPlhFUEc6PGJyPi0gVXNlIG9mIG9uZSBvciBtb3JlIFhNTFRWIGZpbGVzPGJyPi0gQ2hhbm5lbCBtYW5hZ2VtZW50PGJyPi0gTTNVIC8gWE1MVFYgZXhwb3J0IChIVFRQIGxpbmsgZm9yIElQVFYgYXBwcykiDQogICAgfSwNCiAgICAidHVuZXIiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJOdW1iZXIgb2YgdHVuZXJzIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJOdW1iZXIgb2YgcGFyYWxsZWwgY29ubmVjdGlvbnMgdGhhdCBjYW4gYmUgZXN0YWJsaXNoZWQgdG8gdGhlIHByb3ZpZGVyLjxicj5BdmFpbGFibGUgZm9yOiBQbGV4LCBFbWJ5IChIREhSKSwgTTNVICh3aXRoIGFjdGl2ZSBidWZmZXIpLjxicj5BZnRlciBhIGNoYW5nZSwgeFRlVmUgbXVzdCBiZSBkZWxldGUgaW4gdGhlIFBsZXggLyBFbWJ5IERWUiBzZXR0aW5ncyBhbmQgc2V0IHVwIGFnYWluLiINCiAgICB9LA0KICAgICJtM3UiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJNM1UgUGxheWxpc3QiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIkZpbGUgcGF0aCBvciBVUkwgb2YgdGhlIE0zVSIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiTG9jYWwgb3IgcmVtb3RlIHBsYXlsaXN0cyINCiAgICB9LA0KICAgICJ4bWx0diI6DQogICAgew0KICAgICAgInRpdGxlIjogIlhNTFRWIEZpbGUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIkZpbGUgcGF0aCBvciBVUkwgb2YgdGhlIFhNTFRWIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJMb2NhbCBvciByZW1vdGUgWE1MVFYgZmlsZSINCiAgICB9DQogIH0sDQogICJsb2dpbiI6DQogIHsNCiAgICAiZmFpbGVkIjogIlVzZXIgYXV0aGVudGljYXRpb24gZmFpbGVkIiwNCiAgICAiaGVhZGxpbmUiOiAiTG9naW4iLA0KICAgICJ1c2VybmFtZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIlVzZXJuYW1lIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJVc2VybmFtZSINCiAgICB9LA0KICAgICJwYXNzd29yZCI6DQogICAgew0KICAgICAgInRpdGxlIjogIlBhc3N3b3JkIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJQYXNzd29yZCINCiAgICB9DQogIH0sDQogICJhY2NvdW50IjoNCiAgew0KICAgICJmYWlsZWQiOiAiUGFzc3dvcmQgZG9lcyBub3QgbWF0Y2giLA0KICAgICJoZWFkbGluZSI6ICJDcmVhdGUgdXNlciBhY2NvdW50IiwNCiAgICAidXNlcm5hbWUiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJVc2VybmFtZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiVXNlcm5hbWUiDQogICAgfSwNCiAgICAicGFzc3dvcmQiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJQYXNzd29yZCIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiUGFzc3dvcmQiDQogICAgfSwNCiAgICAiY29uZmlybSI6DQogICAgew0KICAgICAgInRpdGxlIjogIkNvbmZpcm0iLA0KICAgICAgInBsYWNlaG9sZGVyIjogIkNvbmZpcm0iDQogICAgfQ0KICB9DQp9" diff --git a/ts/base_ts.ts b/ts/base_ts.ts index 106ea29..42dcac6 100644 --- a/ts/base_ts.ts +++ b/ts/base_ts.ts @@ -629,43 +629,6 @@ function checkUndo(key:string) { return } -// TODO: Probably don't need this anymore. Remove before finishing with xmltv picker. -function sortSelect(select: HTMLSelectElement) { - const tempArr: HTMLOptionElement[] = []; - const selectedValue = select.options[select.selectedIndex].value; - - for (const selectOption of select.options) { - tempArr.push(selectOption); - } - - tempArr.sort((o1: HTMLOptionElement, o2: HTMLOptionElement) => { - if (o1.text < o2.text) { - return -1; - } - if (o1.text > o2.text) { - return 1; - } - return 0; - }); - - while (select.options.length > 0) { - select.options[0] = null; - }; - - let newSelectedIndex = 0; - - for (let i = 0; i < tempArr.length; i++) { - select.options[i] = tempArr[i]; - - if(select.options[i].value == selectedValue) { - newSelectedIndex = i; - } - } - - // Set new selected index after sorting - select.selectedIndex = newSelectedIndex; -} - function updateLog() { var server:Server = new Server("updateLog") diff --git a/ts/menu_ts.ts b/ts/menu_ts.ts index b98c1af..eec10f5 100644 --- a/ts/menu_ts.ts +++ b/ts/menu_ts.ts @@ -1681,7 +1681,6 @@ function openPopUp(dataType, element) { xmlTvIdInput.setAttribute('id', 'xmltv-id-picker-input'); xmlTvIdInput.setAttribute('onchange', `javascript: this.className = 'changed'; checkXmltvChannel('${id}', this, '${xmlTvFile}');`); xmlTvIdDatalist.setAttribute('id', 'xmltv-id-picker-datalist'); - // sortSelect(xmlTvIdDatalist); // TODO: Better sort before adding content.appendRow('{{.mapping.xmltvChannel.title}}', xmlTvIdContainer); // Timeshift @@ -1796,13 +1795,13 @@ class XMLTVFile { if (program.hasOwnProperty('display-names')) { program['display-names'].forEach((displayName: Object) => { - const option: HTMLOptionElement = document.createElement('option'); + const option = document.createElement('option'); option.setAttribute('value', programId); option.innerText = displayName['Value']; datalist.appendChild(option); }); } else { - const option: HTMLOptionElement = document.createElement('option'); + const option = document.createElement('option'); option.setAttribute('value', programId); option.innerText = '-'; datalist.appendChild(option); @@ -1874,7 +1873,6 @@ function setXmltvChannel(epgMapId: string, xmlTvFileSelect: HTMLSelectElement) { xmlTvIdInput.setAttribute('onchange', `javascript: this.className = 'changed'; checkXmltvChannel('${epgMapId}', this, '${newXmlTvFile}');`); xmlTvIdInput.classList.add('changed'); xmlTvIdDatalist.setAttribute('id', 'xmltv-id-picker-datalist'); - // sortSelect(xmlTvIdDatalist); // TODO: Better sort before adding // Add new XMLTV ID selection box to it's parent xmlTvIdPickerParent.appendChild(xmlTvIdContainer); From d2b60f5abde3b47a0006245ecf179284f24c98c4 Mon Sep 17 00:00:00 2001 From: SCP002 Date: Thu, 28 Apr 2022 22:01:05 +0300 Subject: [PATCH 097/189] Fix a bunch of small bugs related to xmltv id picker default value --- html/js/menu_ts.js | 30 +++++++++++++++++++----------- src/webUI.go | 2 +- ts/menu_ts.ts | 34 ++++++++++++++++++++++------------ 3 files changed, 42 insertions(+), 24 deletions(-) diff --git a/html/js/menu_ts.js b/html/js/menu_ts.js index 16bef69..2df5061 100644 --- a/html/js/menu_ts.js +++ b/html/js/menu_ts.js @@ -1354,7 +1354,7 @@ function openPopUp(dataType, element) { xmlTvIdInput.setAttribute('list', 'xmltv-id-picker-datalist'); xmlTvIdInput.setAttribute('name', 'x-mapping'); // Should stay x-mapping as it will be used in donePopupData to make a server request xmlTvIdInput.setAttribute('id', 'xmltv-id-picker-input'); - xmlTvIdInput.setAttribute('onchange', `javascript: this.className = 'changed'; checkXmltvChannel('${id}', this, '${xmlTvFile}');`); + xmlTvIdInput.setAttribute('onchange', `javascript: this.className = 'changed'; checkXmltvChannel('${id}', this.value, '${xmlTvFile}');`); xmlTvIdDatalist.setAttribute('id', 'xmltv-id-picker-datalist'); content.appendRow('{{.mapping.xmltvChannel.title}}', xmlTvIdContainer); // Timeshift @@ -1419,7 +1419,6 @@ class XMLTVFile { // TODO: Display FULL list, see: // > https://stackoverflow.com/questions/37478727/how-can-i-make-a-browser-display-all-datalist-options-when-a-default-value-is-se // > https://www.hongkiat.com/blog/search-select-using-datalist/ - // > https://jqueryui.com/autocomplete/#combobox OR https://select2.org/dropdown /** * @param xmlTvFile XML file path to get EPG from. * @param currentXmlTvId Current XMLTV ID to set initial input value to. @@ -1432,7 +1431,20 @@ class XMLTVFile { const container = document.createElement('div'); const input = document.createElement('input'); input.setAttribute('type', 'text'); - input.value = currentXmlTvId ? currentXmlTvId : '-'; + // Initially, set value to '-' if input is empty + input.value = (currentXmlTvId) ? currentXmlTvId : '-'; + // When input is focused, remove '-' from it + input.addEventListener('focus', (evt) => { + const target = evt.target; + target.value = (target.value === '-') ? '' : target.value; + }); + // When input lose focus or take a value, if it's empty, set value to '-' + input.addEventListener('blur', setFallbackValue); + input.addEventListener('change', setFallbackValue); + function setFallbackValue(evt) { + const target = evt.target; + target.value = (target.value) ? target.value : '-'; + } container.appendChild(input); const datalist = document.createElement('datalist'); const option = document.createElement('option'); @@ -1503,17 +1515,14 @@ function setXmltvChannel(epgMapId, xmlTvFileSelect) { xmlTvIdInput.setAttribute('list', 'xmltv-id-picker-datalist'); xmlTvIdInput.setAttribute('name', 'x-mapping'); // Should stay x-mapping as it will be used in donePopupData to make a server request xmlTvIdInput.setAttribute('id', 'xmltv-id-picker-input'); - xmlTvIdInput.setAttribute('onchange', `javascript: this.className = 'changed'; checkXmltvChannel('${epgMapId}', this, '${newXmlTvFile}');`); + xmlTvIdInput.setAttribute('onchange', `javascript: this.className = 'changed'; checkXmltvChannel('${epgMapId}', this.value, '${newXmlTvFile}');`); xmlTvIdInput.classList.add('changed'); xmlTvIdDatalist.setAttribute('id', 'xmltv-id-picker-datalist'); // Add new XMLTV ID selection box to it's parent xmlTvIdPickerParent.appendChild(xmlTvIdContainer); - checkXmltvChannel(epgMapId, xmlTvIdInput, newXmlTvFile); + checkXmltvChannel(epgMapId, xmlTvIdInput.value, newXmlTvFile); } -function checkXmltvChannel(epgMapId, xmlTvIdInput, xmlTvFile) { - // If empty, set to '-' - xmlTvIdInput.value = xmlTvIdInput.value ? xmlTvIdInput.value : '-'; - const newXmlTvId = xmlTvIdInput.value; +function checkXmltvChannel(epgMapId, newXmlTvId, xmlTvFile) { const channelActiveCb = document.getElementById('active'); const channelActive = newXmlTvId != '-'; channelActiveCb.checked = channelActive; @@ -1533,12 +1542,11 @@ function changeChannelLogo(epgMapId) { const xmlTvFile = xmlTvFileSelect.options[xmlTvFileSelect.selectedIndex].value; const xmlTvIdInput = document.getElementById('xmltv-id-picker-input'); const newXmlTvId = xmlTvIdInput.value; - const xmlTvLogo = SERVER['xepg']['xmltvMap'][xmlTvFile][newXmlTvId]['icon']; const updateLogo = document.getElementById('update-icon').checked; let logo; if (updateLogo == true && xmlTvFile != 'xTeVe Dummy') { if (SERVER['xepg']['xmltvMap'][xmlTvFile].hasOwnProperty(newXmlTvId)) { - logo = xmlTvLogo; + logo = SERVER['xepg']['xmltvMap'][xmlTvFile][newXmlTvId]['icon']; } else { logo = channel['tvg-logo']; diff --git a/src/webUI.go b/src/webUI.go index 6214c17..6e4105f 100644 --- a/src/webUI.go +++ b/src/webUI.go @@ -29,7 +29,7 @@ func loadHTMLMap() { webUI["html/js/classes_ts.js"] = "dmFyIF9fZXh0ZW5kcyA9ICh0aGlzICYmIHRoaXMuX19leHRlbmRzKSB8fCAoZnVuY3Rpb24gKCkgew0KICAgIHZhciBleHRlbmRTdGF0aWNzID0gZnVuY3Rpb24gKGQsIGIpIHsNCiAgICAgICAgZXh0ZW5kU3RhdGljcyA9IE9iamVjdC5zZXRQcm90b3R5cGVPZiB8fA0KICAgICAgICAgICAgKHsgX19wcm90b19fOiBbXSB9IGluc3RhbmNlb2YgQXJyYXkgJiYgZnVuY3Rpb24gKGQsIGIpIHsgZC5fX3Byb3RvX18gPSBiOyB9KSB8fA0KICAgICAgICAgICAgZnVuY3Rpb24gKGQsIGIpIHsgZm9yICh2YXIgcCBpbiBiKSBpZiAoYi5oYXNPd25Qcm9wZXJ0eShwKSkgZFtwXSA9IGJbcF07IH07DQogICAgICAgIHJldHVybiBleHRlbmRTdGF0aWNzKGQsIGIpOw0KICAgIH07DQogICAgcmV0dXJuIGZ1bmN0aW9uIChkLCBiKSB7DQogICAgICAgIGV4dGVuZFN0YXRpY3MoZCwgYik7DQogICAgICAgIGZ1bmN0aW9uIF9fKCkgeyB0aGlzLmNvbnN0cnVjdG9yID0gZDsgfQ0KICAgICAgICBkLnByb3RvdHlwZSA9IGIgPT09IG51bGwgPyBPYmplY3QuY3JlYXRlKGIpIDogKF9fLnByb3RvdHlwZSA9IGIucHJvdG90eXBlLCBuZXcgX18oKSk7DQogICAgfTsNCn0pKCk7DQp2YXIgTWFpbk1lbnUgPSAvKiogQGNsYXNzICovIChmdW5jdGlvbiAoKSB7DQogICAgZnVuY3Rpb24gTWFpbk1lbnUoKSB7DQogICAgICAgIHRoaXMuRG9jdW1lbnRJRCA9ICJtYWluLW1lbnUiOw0KICAgICAgICB0aGlzLkhUTUxUYWcgPSAiTEkiOw0KICAgIH0NCiAgICBNYWluTWVudS5wcm90b3R5cGUuY3JlYXRlID0gZnVuY3Rpb24gKCkgew0KICAgICAgICBjb25zb2xlLmxvZyh0aGlzLkRvY3VtZW50SUQpOw0KICAgIH07DQogICAgcmV0dXJuIE1haW5NZW51Ow0KfSgpKTsNCnZhciBNYWluTWVudUl0ZW0gPSAvKiogQGNsYXNzICovIChmdW5jdGlvbiAoX3N1cGVyKSB7DQogICAgX19leHRlbmRzKE1haW5NZW51SXRlbSwgX3N1cGVyKTsNCiAgICBmdW5jdGlvbiBNYWluTWVudUl0ZW0oKSB7DQogICAgICAgIHJldHVybiBfc3VwZXIgIT09IG51bGwgJiYgX3N1cGVyLmFwcGx5KHRoaXMsIGFyZ3VtZW50cykgfHwgdGhpczsNCiAgICB9DQogICAgTWFpbk1lbnVJdGVtLnByb3RvdHlwZS5jcmVhdGUyID0gZnVuY3Rpb24gKCkgew0KICAgICAgICB2YXIgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQodGhpcy5IVE1MVGFnKTsNCiAgICAgICAgZWxlbWVudC5pbm5lclRleHQgPSB0aGlzLlZhbHVlOw0KICAgICAgICBjb25zb2xlLmxvZyhlbGVtZW50KTsNCiAgICB9Ow0KICAgIHJldHVybiBNYWluTWVudUl0ZW07DQp9KE1haW5NZW51KSk7DQpmdW5jdGlvbiBwYWdlUmVhZHkoKSB7DQogICAgdmFyIGl0ZW0gPSBuZXcgTWFpbk1lbnVJdGVtKCk7DQogICAgaXRlbS5WYWx1ZSA9ICJUZXN0IjsNCiAgICBpdGVtLmNyZWF0ZTIoKTsNCn0NCg==" webUI["html/js/configuration_ts.js"] = "Y2xhc3MgV2l6YXJkQ2F0ZWdvcnkgew0KICAgIGNvbnN0cnVjdG9yKCkgew0KICAgICAgICB0aGlzLkRvY3VtZW50SUQgPSAiY29udGVudCI7DQogICAgfQ0KICAgIGNyZWF0ZUNhdGVnb3J5SGVhZGxpbmUodmFsdWUpIHsNCiAgICAgICAgdmFyIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJINCIpOw0KICAgICAgICBlbGVtZW50LmlubmVySFRNTCA9IHZhbHVlOw0KICAgICAgICByZXR1cm4gZWxlbWVudDsNCiAgICB9DQp9DQpjbGFzcyBXaXphcmRJdGVtIGV4dGVuZHMgV2l6YXJkQ2F0ZWdvcnkgew0KICAgIGNvbnN0cnVjdG9yKGtleSwgaGVhZGxpbmUpIHsNCiAgICAgICAgc3VwZXIoKTsNCiAgICAgICAgdGhpcy5oZWFkbGluZSA9IGhlYWRsaW5lOw0KICAgICAgICB0aGlzLmtleSA9IGtleTsNCiAgICB9DQogICAgY3JlYXRlV2l6YXJkKCkgew0KICAgICAgICB2YXIgaGVhZGxpbmUgPSB0aGlzLmNyZWF0ZUNhdGVnb3J5SGVhZGxpbmUodGhpcy5oZWFkbGluZSk7DQogICAgICAgIHZhciBrZXkgPSB0aGlzLmtleTsNCiAgICAgICAgdmFyIGNvbnRlbnQgPSBuZXcgUG9wdXBDb250ZW50KCk7DQogICAgICAgIHZhciBkZXNjcmlwdGlvbjsNCiAgICAgICAgdmFyIGRvYyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHRoaXMuRG9jdW1lbnRJRCk7DQogICAgICAgIGRvYy5pbm5lckhUTUwgPSAiIjsNCiAgICAgICAgZG9jLmFwcGVuZENoaWxkKGhlYWRsaW5lKTsNCiAgICAgICAgc3dpdGNoIChrZXkpIHsNCiAgICAgICAgICAgIGNhc2UgInR1bmVyIjoNCiAgICAgICAgICAgICAgICB2YXIgdGV4dCA9IG5ldyBBcnJheSgpOw0KICAgICAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBuZXcgQXJyYXkoKTsNCiAgICAgICAgICAgICAgICBmb3IgKHZhciBpID0gMTsgaSA8PSAxMDA7IGkrKykgew0KICAgICAgICAgICAgICAgICAgICB0ZXh0LnB1c2goaSk7DQogICAgICAgICAgICAgICAgICAgIHZhbHVlcy5wdXNoKGkpOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCAiMSIsIGtleSk7DQogICAgICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgiY2xhc3MiLCAid2l6YXJkIik7DQogICAgICAgICAgICAgICAgc2VsZWN0LmlkID0ga2V5Ow0KICAgICAgICAgICAgICAgIGRvYy5hcHBlbmRDaGlsZChzZWxlY3QpOw0KICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uID0gInt7LndpemFyZC50dW5lci5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImVwZ1NvdXJjZSI6DQogICAgICAgICAgICAgICAgdmFyIHRleHQgPSBbIlBNUyIsICJYRVBHIl07DQogICAgICAgICAgICAgICAgdmFyIHZhbHVlcyA9IFsiUE1TIiwgIlhFUEciXTsNCiAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCAiWEVQRyIsIGtleSk7DQogICAgICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgiY2xhc3MiLCAid2l6YXJkIik7DQogICAgICAgICAgICAgICAgc2VsZWN0LmlkID0ga2V5Ow0KICAgICAgICAgICAgICAgIGRvYy5hcHBlbmRDaGlsZChzZWxlY3QpOw0KICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uID0gInt7LndpemFyZC5lcGdTb3VyY2UuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJtM3UiOg0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBrZXksICIiKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LndpemFyZC5tM3UucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgiY2xhc3MiLCAid2l6YXJkIik7DQogICAgICAgICAgICAgICAgaW5wdXQuaWQgPSBrZXk7DQogICAgICAgICAgICAgICAgZG9jLmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbiA9ICJ7ey53aXphcmQubTN1LmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAieG1sdHYiOg0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBrZXksICIiKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LndpemFyZC54bWx0di5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJjbGFzcyIsICJ3aXphcmQiKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5pZCA9IGtleTsNCiAgICAgICAgICAgICAgICBkb2MuYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uID0gInt7LndpemFyZC54bWx0di5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIH0NCiAgICAgICAgdmFyIHByZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlBSRSIpOw0KICAgICAgICBwcmUuaW5uZXJIVE1MID0gZGVzY3JpcHRpb247DQogICAgICAgIGRvYy5hcHBlbmRDaGlsZChwcmUpOw0KICAgIH0NCn0NCmZ1bmN0aW9uIHJlYWR5Rm9yQ29uZmlndXJhdGlvbih3aXphcmQpIHsNCiAgICB2YXIgc2VydmVyID0gbmV3IFNlcnZlcigiZ2V0U2VydmVyQ29uZmlnIik7DQogICAgc2VydmVyLnJlcXVlc3QobmV3IE9iamVjdCgpKTsNCiAgICBzaG93RWxlbWVudCgibG9hZGluZyIsIGZhbHNlKTsNCiAgICBjb25maWd1cmF0aW9uV2l6YXJkW3dpemFyZF0uY3JlYXRlV2l6YXJkKCk7DQp9DQpmdW5jdGlvbiBzYXZlV2l6YXJkKCkgew0KICAgIHZhciBjbWQgPSAic2F2ZVdpemFyZCI7DQogICAgdmFyIGRpdiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb250ZW50Iik7DQogICAgdmFyIGNvbmZpZyA9IGRpdi5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCJ3aXphcmQiKTsNCiAgICB2YXIgd2l6YXJkID0gbmV3IE9iamVjdCgpOw0KICAgIGZvciAodmFyIGkgPSAwOyBpIDwgY29uZmlnLmxlbmd0aDsgaSsrKSB7DQogICAgICAgIHZhciBuYW1lOw0KICAgICAgICB2YXIgdmFsdWU7DQogICAgICAgIHN3aXRjaCAoY29uZmlnW2ldLnRhZ05hbWUpIHsNCiAgICAgICAgICAgIGNhc2UgIlNFTEVDVCI6DQogICAgICAgICAgICAgICAgbmFtZSA9IGNvbmZpZ1tpXS5uYW1lOw0KICAgICAgICAgICAgICAgIHZhbHVlID0gY29uZmlnW2ldLnZhbHVlOw0KICAgICAgICAgICAgICAgIC8vIElmIHRoZSB2YWx1ZSBpcyBhIG51bWJlciwgc3RvcmUgaXQgYXMgYSBudW1iZXINCiAgICAgICAgICAgICAgICBpZiAoaXNOYU4odmFsdWUpKSB7DQogICAgICAgICAgICAgICAgICAgIHdpemFyZFtuYW1lXSA9IHZhbHVlOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICAgICAgd2l6YXJkW25hbWVdID0gcGFyc2VJbnQodmFsdWUpOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgIklOUFVUIjoNCiAgICAgICAgICAgICAgICBzd2l0Y2ggKGNvbmZpZ1tpXS50eXBlKSB7DQogICAgICAgICAgICAgICAgICAgIGNhc2UgInRleHQiOg0KICAgICAgICAgICAgICAgICAgICAgICAgbmFtZSA9IGNvbmZpZ1tpXS5uYW1lOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSBjb25maWdbaV0udmFsdWU7DQogICAgICAgICAgICAgICAgICAgICAgICBpZiAodmFsdWUubGVuZ3RoID09IDApIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgbXNnID0gbmFtZS50b1VwcGVyQ2FzZSgpICsgIjogIiArICJ7ey5hbGVydC5taXNzaW5nSW5wdXR9fSI7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgYWxlcnQobXNnKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICB3aXphcmRbbmFtZV0gPSB2YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICAgICAgLy8gY29kZS4uLg0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICB9DQogICAgfQ0KICAgIHZhciBkYXRhID0gbmV3IE9iamVjdCgpOw0KICAgIGRhdGFbIndpemFyZCJdID0gd2l6YXJkOw0KICAgIHZhciBzZXJ2ZXIgPSBuZXcgU2VydmVyKGNtZCk7DQogICAgc2VydmVyLnJlcXVlc3QoZGF0YSk7DQp9DQovLyBXaXphcmQNCnZhciBjb25maWd1cmF0aW9uV2l6YXJkID0gbmV3IEFycmF5KCk7DQpjb25maWd1cmF0aW9uV2l6YXJkLnB1c2gobmV3IFdpemFyZEl0ZW0oInR1bmVyIiwgInt7LndpemFyZC50dW5lci50aXRsZX19IikpOw0KY29uZmlndXJhdGlvbldpemFyZC5wdXNoKG5ldyBXaXphcmRJdGVtKCJlcGdTb3VyY2UiLCAie3sud2l6YXJkLmVwZ1NvdXJjZS50aXRsZX19IikpOw0KY29uZmlndXJhdGlvbldpemFyZC5wdXNoKG5ldyBXaXphcmRJdGVtKCJtM3UiLCAie3sud2l6YXJkLm0zdS50aXRsZX19IikpOw0KY29uZmlndXJhdGlvbldpemFyZC5wdXNoKG5ldyBXaXphcmRJdGVtKCJ4bWx0diIsICJ7ey53aXphcmQueG1sdHYudGl0bGV9fSIpKTsNCg==" webUI["html/js/logs_ts.js"] = "Y2xhc3MgTG9nIHsNCiAgICBjcmVhdGVMb2coZW50cnkpIHsNCiAgICAgICAgdmFyIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJQUkUiKTsNCiAgICAgICAgaWYgKGVudHJ5LmluZGV4T2YoIldBUk5JTkciKSAhPSAtMSkgew0KICAgICAgICAgICAgZWxlbWVudC5jbGFzc05hbWUgPSAid2FybmluZ01zZyI7DQogICAgICAgIH0NCiAgICAgICAgaWYgKGVudHJ5LmluZGV4T2YoIkVSUk9SIikgIT0gLTEpIHsNCiAgICAgICAgICAgIGVsZW1lbnQuY2xhc3NOYW1lID0gImVycm9yTXNnIjsNCiAgICAgICAgfQ0KICAgICAgICBpZiAoZW50cnkuaW5kZXhPZigiREVCVUciKSAhPSAtMSkgew0KICAgICAgICAgICAgZWxlbWVudC5jbGFzc05hbWUgPSAiZGVidWdNc2ciOw0KICAgICAgICB9DQogICAgICAgIGVsZW1lbnQuaW5uZXJIVE1MID0gZW50cnk7DQogICAgICAgIHJldHVybiBlbGVtZW50Ow0KICAgIH0NCn0NCmZ1bmN0aW9uIHNob3dMb2dzKGJvdHRvbSkgew0KICAgIHZhciBsb2cgPSBuZXcgTG9nKCk7DQogICAgdmFyIGxvZ3MgPSBTRVJWRVJbImxvZyJdWyJsb2ciXTsNCiAgICB2YXIgZGl2ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnRlbnRfbG9nIik7DQogICAgZGl2LmlubmVySFRNTCA9ICIiOw0KICAgIHZhciBrZXlzID0gZ2V0T3duT2JqUHJvcHMobG9ncyk7DQogICAga2V5cy5mb3JFYWNoKGxvZ0lEID0+IHsNCiAgICAgICAgdmFyIGVudHJ5ID0gbG9nLmNyZWF0ZUxvZyhsb2dzW2xvZ0lEXSk7DQogICAgICAgIGRpdi5hcHBlbmQoZW50cnkpOw0KICAgIH0pOw0KICAgIHNldFRpbWVvdXQoZnVuY3Rpb24gKCkgew0KICAgICAgICBpZiAoYm90dG9tID09IHRydWUpIHsNCiAgICAgICAgICAgIHZhciB3cmFwcGVyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImJveC13cmFwcGVyIik7DQogICAgICAgICAgICB3cmFwcGVyLnNjcm9sbFRvcCA9IHdyYXBwZXIuc2Nyb2xsSGVpZ2h0Ow0KICAgICAgICB9DQogICAgfSwgMTApOw0KfQ0KZnVuY3Rpb24gcmVzZXRMb2dzKCkgew0KICAgIHZhciBjbWQgPSAicmVzZXRMb2dzIjsNCiAgICB2YXIgZGF0YSA9IG5ldyBPYmplY3QoKTsNCiAgICB2YXIgc2VydmVyID0gbmV3IFNlcnZlcihjbWQpOw0KICAgIHNlcnZlci5yZXF1ZXN0KGRhdGEpOw0KfQ0K" - webUI["html/js/menu_ts.js"] = "Y2xhc3MgTWFpbk1lbnUgew0KICAgIGNvbnN0cnVjdG9yKCkgew0KICAgICAgICB0aGlzLkRvY3VtZW50SUQgPSAibWFpbi1tZW51IjsNCiAgICAgICAgdGhpcy5IVE1MVGFnID0gIkxJIjsNCiAgICAgICAgdGhpcy5JbWFnZVBhdGggPSAiaW1nLyI7DQogICAgfQ0KICAgIGNyZWF0ZUlNRyhzcmMpIHsNCiAgICAgICAgbGV0IGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJJTUciKTsNCiAgICAgICAgZWxlbWVudC5zZXRBdHRyaWJ1dGUoInNyYyIsIHRoaXMuSW1hZ2VQYXRoICsgc3JjKTsNCiAgICAgICAgcmV0dXJuIGVsZW1lbnQ7DQogICAgfQ0KICAgIGNyZWF0ZVZhbHVlKHZhbHVlKSB7DQogICAgICAgIGxldCBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiUCIpOw0KICAgICAgICBlbGVtZW50LmlubmVySFRNTCA9IHZhbHVlOw0KICAgICAgICByZXR1cm4gZWxlbWVudDsNCiAgICB9DQp9DQpjbGFzcyBNYWluTWVudUl0ZW0gZXh0ZW5kcyBNYWluTWVudSB7DQogICAgY29uc3RydWN0b3IobWVudUtleSwgdmFsdWUsIGltYWdlLCBoZWFkbGluZSkgew0KICAgICAgICBzdXBlcigpOw0KICAgICAgICB0aGlzLm1lbnVLZXkgPSBtZW51S2V5Ow0KICAgICAgICB0aGlzLnZhbHVlID0gdmFsdWU7DQogICAgICAgIHRoaXMuaW1nU3JjID0gaW1hZ2U7DQogICAgICAgIHRoaXMuaGVhZGxpbmUgPSBoZWFkbGluZTsNCiAgICB9DQogICAgY3JlYXRlSXRlbSgpIHsNCiAgICAgICAgbGV0IGl0ZW0gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJMSSIpOw0KICAgICAgICBpdGVtLnNldEF0dHJpYnV0ZSgib25jbGljayIsICJqYXZhc2NyaXB0OiBvcGVuVGhpc01lbnUodGhpcykiKTsNCiAgICAgICAgaXRlbS5zZXRBdHRyaWJ1dGUoImlkIiwgdGhpcy5pZCk7DQogICAgICAgIGxldCBpbWcgPSB0aGlzLmNyZWF0ZUlNRyh0aGlzLmltZ1NyYyk7DQogICAgICAgIGxldCB2YWx1ZSA9IHRoaXMuY3JlYXRlVmFsdWUodGhpcy52YWx1ZSk7DQogICAgICAgIGl0ZW0uYXBwZW5kQ2hpbGQoaW1nKTsNCiAgICAgICAgaXRlbS5hcHBlbmRDaGlsZCh2YWx1ZSk7DQogICAgICAgIGxldCBkb2MgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCh0aGlzLkRvY3VtZW50SUQpOw0KICAgICAgICBkb2MuYXBwZW5kQ2hpbGQoaXRlbSk7DQogICAgICAgIHN3aXRjaCAodGhpcy5tZW51S2V5KSB7DQogICAgICAgICAgICBjYXNlICJwbGF5bGlzdCI6DQogICAgICAgICAgICAgICAgdGhpcy50YWJsZUhlYWRlciA9IFsie3sucGxheWxpc3QudGFibGUucGxheWxpc3R9fSIsICJ7ey5wbGF5bGlzdC50YWJsZS50dW5lcn19IiwgInt7LnBsYXlsaXN0LnRhYmxlLmxhc3RVcGRhdGV9fSIsICJ7ey5wbGF5bGlzdC50YWJsZS5hdmFpbGFiaWxpdHl9fSAlIiwgInt7LnBsYXlsaXN0LnRhYmxlLnR5cGV9fSIsICJ7ey5wbGF5bGlzdC50YWJsZS5zdHJlYW1zfX0iLCAie3sucGxheWxpc3QudGFibGUuZ3JvdXBUaXRsZX19ICUiLCAie3sucGxheWxpc3QudGFibGUudHZnSUR9fSAlIiwgInt7LnBsYXlsaXN0LnRhYmxlLnVuaXF1ZUlEfX0gJSJdOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAieG1sdHYiOg0KICAgICAgICAgICAgICAgIHRoaXMudGFibGVIZWFkZXIgPSBbInt7LnhtbHR2LnRhYmxlLmd1aWRlfX0iLCAie3sueG1sdHYudGFibGUubGFzdFVwZGF0ZX19IiwgInt7LnhtbHR2LnRhYmxlLmF2YWlsYWJpbGl0eX19ICUiLCAie3sueG1sdHYudGFibGUuY2hhbm5lbHN9fSIsICJ7ey54bWx0di50YWJsZS5wcm9ncmFtc319Il07DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJmaWx0ZXIiOg0KICAgICAgICAgICAgICAgIHRoaXMudGFibGVIZWFkZXIgPSBbInt7LmZpbHRlci50YWJsZS5zdGFydGluZ0NoYW5uZWx9fSIsICJ7ey5maWx0ZXIudGFibGUubmFtZX19IiwgInt7LmZpbHRlci50YWJsZS50eXBlfX0iLCAie3suZmlsdGVyLnRhYmxlLmZpbHRlcn19Il07DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ1c2VycyI6DQogICAgICAgICAgICAgICAgdGhpcy50YWJsZUhlYWRlciA9IFsie3sudXNlcnMudGFibGUudXNlcm5hbWV9fSIsICJ7ey51c2Vycy50YWJsZS5wYXNzd29yZH19IiwgInt7LnVzZXJzLnRhYmxlLndlYn19IiwgInt7LnVzZXJzLnRhYmxlLnBtc319IiwgInt7LnVzZXJzLnRhYmxlLm0zdX19IiwgInt7LnVzZXJzLnRhYmxlLnhtbH19IiwgInt7LnVzZXJzLnRhYmxlLmFwaX19Il07DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJtYXBwaW5nIjoNCiAgICAgICAgICAgICAgICB0aGlzLnRhYmxlSGVhZGVyID0gWyJCVUxLIiwgInt7Lm1hcHBpbmcudGFibGUuY2hOb319IiwgInt7Lm1hcHBpbmcudGFibGUubG9nb319IiwgInt7Lm1hcHBpbmcudGFibGUuY2hhbm5lbE5hbWV9fSIsICJ7ey5tYXBwaW5nLnRhYmxlLnBsYXlsaXN0fX0iLCAie3subWFwcGluZy50YWJsZS5ncm91cFRpdGxlfX0iLCAie3subWFwcGluZy50YWJsZS54bWx0dkZpbGV9fSIsICJ7ey5tYXBwaW5nLnRhYmxlLnhtbHR2SUR9fSIsICJ7ey5tYXBwaW5nLnRhYmxlLnRpbWVzaGlmdH19Il07DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIH0NCiAgICB9DQp9DQpjbGFzcyBDb250ZW50IHsNCiAgICBjb25zdHJ1Y3RvcigpIHsNCiAgICAgICAgdGhpcy5Eb2N1bWVudElEID0gImNvbnRlbnQiOw0KICAgICAgICB0aGlzLlRhYmxlSUQgPSAiY29udGVudF90YWJsZSI7DQogICAgICAgIHRoaXMuaGVhZGVyQ2xhc3MgPSAiY29udGVudF90YWJsZV9oZWFkZXIiOw0KICAgICAgICB0aGlzLmludGVyYWN0aW9uSUQgPSAiY29udGVudC1pbnRlcmFjdGlvbiI7DQogICAgfQ0KICAgIGNyZWF0ZUhlYWRsaW5lKHZhbHVlKSB7DQogICAgICAgIGxldCBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiSDMiKTsNCiAgICAgICAgZWxlbWVudC5pbm5lckhUTUwgPSB2YWx1ZTsNCiAgICAgICAgcmV0dXJuIGVsZW1lbnQ7DQogICAgfQ0KICAgIGNyZWF0ZUhSKCkgew0KICAgICAgICByZXR1cm4gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiSFIiKTsNCiAgICB9DQogICAgY3JlYXRlSW50ZXJhY3Rpb24oKSB7DQogICAgICAgIGxldCBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiRElWIik7DQogICAgICAgIGVsZW1lbnQuc2V0QXR0cmlidXRlKCJpZCIsIHRoaXMuaW50ZXJhY3Rpb25JRCk7DQogICAgICAgIHJldHVybiBlbGVtZW50Ow0KICAgIH0NCiAgICBjcmVhdGVESVYoKSB7DQogICAgICAgIGxldCBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiRElWIik7DQogICAgICAgIGVsZW1lbnQuaWQgPSB0aGlzLkRpdklEOw0KICAgICAgICByZXR1cm4gZWxlbWVudDsNCiAgICB9DQogICAgY3JlYXRlVEFCTEUoKSB7DQogICAgICAgIGxldCBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEFCTEUiKTsNCiAgICAgICAgZWxlbWVudC5pZCA9IHRoaXMuVGFibGVJRDsNCiAgICAgICAgcmV0dXJuIGVsZW1lbnQ7DQogICAgfQ0KICAgIGNyZWF0ZVRhYmxlUm93KCkgew0KICAgICAgICBsZXQgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlRSIik7DQogICAgICAgIGVsZW1lbnQuY2xhc3NOYW1lID0gdGhpcy5oZWFkZXJDbGFzczsNCiAgICAgICAgcmV0dXJuIGVsZW1lbnQ7DQogICAgfQ0KICAgIGNyZWF0ZVRhYmxlQ29udGVudChtZW51S2V5KSB7DQogICAgICAgIGxldCBkYXRhID0ge307DQogICAgICAgIGxldCByb3dzID0gW107DQogICAgICAgIGxldCBmaWxlVHlwZXMgPSBbXTsNCiAgICAgICAgc3dpdGNoIChtZW51S2V5KSB7DQogICAgICAgICAgICBjYXNlICJwbGF5bGlzdCI6DQogICAgICAgICAgICAgICAgZmlsZVR5cGVzID0gWyJtM3UiLCAiaGRociJdOw0KICAgICAgICAgICAgICAgIGZpbGVUeXBlcy5mb3JFYWNoKGZpbGVUeXBlID0+IHsNCiAgICAgICAgICAgICAgICAgICAgZGF0YSA9IFNFUlZFUlsic2V0dGluZ3MiXVsiZmlsZXMiXVtmaWxlVHlwZV07DQogICAgICAgICAgICAgICAgICAgIHZhciBrZXlzID0gZ2V0T3duT2JqUHJvcHMoZGF0YSk7DQogICAgICAgICAgICAgICAgICAgIGtleXMuZm9yRWFjaChrZXkgPT4gew0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVFIiKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmlkID0ga2V5Ow0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgiJyArIGZpbGVUeXBlICsgJyIsIHRoaXMpJyk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsibmFtZSJdOw0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChTRVJWRVJbInNldHRpbmdzIl1bImJ1ZmZlciJdICE9ICItIikgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bInR1bmVyIl07DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gIi0iOw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bImxhc3QudXBkYXRlIl07DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsicHJvdmlkZXIuYXZhaWxhYmlsaXR5Il07DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsidHlwZSJdLnRvVXBwZXJDYXNlKCk7DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsiY29tcGF0aWJpbGl0eSJdWyJzdHJlYW1zIl07DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsiY29tcGF0aWJpbGl0eSJdWyJncm91cC50aXRsZSJdOw0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bImNvbXBhdGliaWxpdHkiXVsidHZnLmlkIl07DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsiY29tcGF0aWJpbGl0eSJdWyJzdHJlYW0uaWQiXTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHJvd3MucHVzaCh0cik7DQogICAgICAgICAgICAgICAgICAgIH0pOw0KICAgICAgICAgICAgICAgIH0pOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiZmlsdGVyIjoNCiAgICAgICAgICAgICAgICBkZWxldGUgU0VSVkVSWyJzZXR0aW5ncyJdWyJmaWx0ZXIiXVstMV07DQogICAgICAgICAgICAgICAgZGF0YSA9IFNFUlZFUlsic2V0dGluZ3MiXVsiZmlsdGVyIl07DQogICAgICAgICAgICAgICAgdmFyIGtleXMgPSBnZXRPd25PYmpQcm9wcyhkYXRhKTsNCiAgICAgICAgICAgICAgICBrZXlzLmZvckVhY2goa2V5ID0+IHsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVFIiKTsNCiAgICAgICAgICAgICAgICAgICAgdHIuaWQgPSBrZXk7DQogICAgICAgICAgICAgICAgICAgIHRyLnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoIicgKyBkYXRhW2tleV1bInR5cGUiXSArICciLCB0aGlzKScpOw0KICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsic3RhcnRpbmdDaGFubmVsIl07DQogICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bIm5hbWUiXTsNCiAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgc3dpdGNoIChkYXRhW2tleV1bInR5cGUiXSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAiY3VzdG9tLWZpbHRlciI6DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9ICJ7ey5maWx0ZXIuY3VzdG9tfX0iOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAiZ3JvdXAtdGl0bGUiOg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSAie3suZmlsdGVyLmdyb3VwfX0iOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJmaWx0ZXIiXTsNCiAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICByb3dzLnB1c2godHIpOw0KICAgICAgICAgICAgICAgIH0pOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAieG1sdHYiOg0KICAgICAgICAgICAgICAgIGZpbGVUeXBlcyA9IG5ldyBBcnJheSgieG1sdHYiKTsNCiAgICAgICAgICAgICAgICBmaWxlVHlwZXMuZm9yRWFjaChmaWxlVHlwZSA9PiB7DQogICAgICAgICAgICAgICAgICAgIGRhdGEgPSBTRVJWRVJbInNldHRpbmdzIl1bImZpbGVzIl1bZmlsZVR5cGVdOw0KICAgICAgICAgICAgICAgICAgICB2YXIga2V5cyA9IGdldE93bk9ialByb3BzKGRhdGEpOw0KICAgICAgICAgICAgICAgICAgICBrZXlzLmZvckVhY2goa2V5ID0+IHsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciB0ciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlRSIik7DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5pZCA9IGtleTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoIicgKyBmaWxlVHlwZSArICciLCB0aGlzKScpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bIm5hbWUiXTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJsYXN0LnVwZGF0ZSJdOw0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bInByb3ZpZGVyLmF2YWlsYWJpbGl0eSJdOw0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bImNvbXBhdGliaWxpdHkiXVsieG1sdHYuY2hhbm5lbHMiXTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJjb21wYXRpYmlsaXR5Il1bInhtbHR2LnByb2dyYW1zIl07DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICByb3dzLnB1c2godHIpOw0KICAgICAgICAgICAgICAgICAgICB9KTsNCiAgICAgICAgICAgICAgICB9KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInVzZXJzIjoNCiAgICAgICAgICAgICAgICBmaWxlVHlwZXMgPSBuZXcgQXJyYXkoInVzZXJzIik7DQogICAgICAgICAgICAgICAgZmlsZVR5cGVzLmZvckVhY2goZmlsZVR5cGUgPT4gew0KICAgICAgICAgICAgICAgICAgICBkYXRhID0gU0VSVkVSW2ZpbGVUeXBlXTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGtleXMgPSBnZXRPd25PYmpQcm9wcyhkYXRhKTsNCiAgICAgICAgICAgICAgICAgICAga2V5cy5mb3JFYWNoKGtleSA9PiB7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgdHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJUUiIpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuaWQgPSBrZXk7DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCInICsgZmlsZVR5cGUgKyAnIiwgdGhpcyknKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJkYXRhIl1bInVzZXJuYW1lIl07DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9ICIqKioqKioiOw0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChkYXRhW2tleV1bImRhdGEiXVsiYXV0aGVudGljYXRpb24ud2ViIl0gPT0gdHJ1ZSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSAi4pyTIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSAiLSI7DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGRhdGFba2V5XVsiZGF0YSJdWyJhdXRoZW50aWNhdGlvbi5wbXMiXSA9PSB0cnVlKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9ICLinJMiOw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9ICItIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgICAgICBpZiAoZGF0YVtrZXldWyJkYXRhIl1bImF1dGhlbnRpY2F0aW9uLm0zdSJdID09IHRydWUpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gIuKckyI7DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gIi0iOw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChkYXRhW2tleV1bImRhdGEiXVsiYXV0aGVudGljYXRpb24ueG1sIl0gPT0gdHJ1ZSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSAi4pyTIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSAiLSI7DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGRhdGFba2V5XVsiZGF0YSJdWyJhdXRoZW50aWNhdGlvbi5hcGkiXSA9PSB0cnVlKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9ICLinJMiOw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9ICItIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHJvd3MucHVzaCh0cik7DQogICAgICAgICAgICAgICAgICAgIH0pOw0KICAgICAgICAgICAgICAgIH0pOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAibWFwcGluZyI6DQogICAgICAgICAgICAgICAgQlVMS19FRElUID0gZmFsc2U7DQogICAgICAgICAgICAgICAgY3JlYXRlU2VhcmNoT2JqKCk7DQogICAgICAgICAgICAgICAgY2hlY2tVbmRvKCJlcGdNYXBwaW5nIik7DQogICAgICAgICAgICAgICAgZGF0YSA9IFNFUlZFUlsieGVwZyJdWyJlcGdNYXBwaW5nIl07DQogICAgICAgICAgICAgICAgdmFyIGtleXMgPSBnZXRPd25PYmpQcm9wcyhkYXRhKTsNCiAgICAgICAgICAgICAgICBrZXlzLmZvckVhY2goa2V5ID0+IHsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVFIiKTsNCiAgICAgICAgICAgICAgICAgICAgdHIuaWQgPSBrZXk7DQogICAgICAgICAgICAgICAgICAgIHN3aXRjaCAoZGF0YVtrZXldWyJ4LWFjdGl2ZSJdKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBjYXNlIHRydWU6DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgdHIuY2xhc3NOYW1lID0gImFjdGl2ZUVQRyI7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgICAgICAgICBjYXNlIGZhbHNlOg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyLmNsYXNzTmFtZSA9ICJub3RBY3RpdmVFUEciOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIC8vIEJ1bGsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiQlVMSyI7DQogICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBmYWxzZTsNCiAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAvLyBDaGFubmVsIG51bWJlcg0KICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJJTlBVVENIQU5ORUwiOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJ4LWNoYW5uZWxJRCJdOw0KICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgIC8vIExvZ28NCiAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiSU1HIjsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5pbWFnZVVSTCA9IGRhdGFba2V5XVsidHZnLWxvZ28iXTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHRkID0gY2VsbC5jcmVhdGVDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgIHRkLnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoIm1hcHBpbmciLCB0aGlzKScpOw0KICAgICAgICAgICAgICAgICAgICB0ZC5pZCA9IGtleTsNCiAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQodGQpOw0KICAgICAgICAgICAgICAgICAgICAvLyBDaGFubmVsIG5hbWUNCiAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2xhc3NOYW1lID0gZGF0YVtrZXldWyJ4LWNhdGVnb3J5Il07DQogICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bIngtbmFtZSJdOw0KICAgICAgICAgICAgICAgICAgICB2YXIgdGQgPSBjZWxsLmNyZWF0ZUNlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgdGQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgibWFwcGluZyIsIHRoaXMpJyk7DQogICAgICAgICAgICAgICAgICAgIHRkLmlkID0ga2V5Ow0KICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZCh0ZCk7DQogICAgICAgICAgICAgICAgICAgIC8vIFBsYXlsaXN0DQogICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZ2V0VmFsdWVGcm9tUHJvdmlkZXJGaWxlKGRhdGFba2V5XVsiX2ZpbGUubTN1LmlkIl0sICJtM3UiLCAibmFtZSIpOw0KICAgICAgICAgICAgICAgICAgICB2YXIgdGQgPSBjZWxsLmNyZWF0ZUNlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgdGQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgibWFwcGluZyIsIHRoaXMpJyk7DQogICAgICAgICAgICAgICAgICAgIHRkLmlkID0ga2V5Ow0KICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZCh0ZCk7DQogICAgICAgICAgICAgICAgICAgIC8vIEdyb3VwIChncm91cC10aXRsZSkNCiAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bIngtZ3JvdXAtdGl0bGUiXTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHRkID0gY2VsbC5jcmVhdGVDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgIHRkLnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoIm1hcHBpbmciLCB0aGlzKScpOw0KICAgICAgICAgICAgICAgICAgICB0ZC5pZCA9IGtleTsNCiAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQodGQpOw0KICAgICAgICAgICAgICAgICAgICAvLyBYTUxUViBmaWxlDQogICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICBpZiAoZGF0YVtrZXldWyJ4LXhtbHR2LWZpbGUiXSAhPSAiLSIpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBnZXRWYWx1ZUZyb21Qcm92aWRlckZpbGUoZGF0YVtrZXldWyJ4LXhtbHR2LWZpbGUiXSwgInhtbHR2IiwgIm5hbWUiKTsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bIngteG1sdHYtZmlsZSJdOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIHZhciB0ZCA9IGNlbGwuY3JlYXRlQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICB0ZC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJtYXBwaW5nIiwgdGhpcyknKTsNCiAgICAgICAgICAgICAgICAgICAgdGQuaWQgPSBrZXk7DQogICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKHRkKTsNCiAgICAgICAgICAgICAgICAgICAgLy8gWE1MVFYgQ2hhbm5lbA0KICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHZhbHVlID0gZGF0YVtrZXldWyJ4LW1hcHBpbmciXTsNCiAgICAgICAgICAgICAgICAgICAgaWYgKHZhbHVlLmxlbmd0aCA+IDIwKSB7DQogICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IGRhdGFba2V5XVsieC1tYXBwaW5nIl0uc3Vic3RyaW5nKDAsIDIwKSArICIuLi4iOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSB2YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHRkID0gY2VsbC5jcmVhdGVDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgIHRkLnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoIm1hcHBpbmciLCB0aGlzKScpOw0KICAgICAgICAgICAgICAgICAgICB0ZC5pZCA9IGtleTsNCiAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQodGQpOw0KICAgICAgICAgICAgICAgICAgICAvLyBUaW1lU2hpZnQNCiAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bIngtdGltZXNoaWZ0Il07DQogICAgICAgICAgICAgICAgICAgIHZhciB0ZCA9IGNlbGwuY3JlYXRlQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICB0ZC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJtYXBwaW5nIiwgdGhpcyknKTsNCiAgICAgICAgICAgICAgICAgICAgdGQuaWQgPSBrZXk7DQogICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKHRkKTsNCiAgICAgICAgICAgICAgICAgICAgcm93cy5wdXNoKHRyKTsNCiAgICAgICAgICAgICAgICB9KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInNldHRpbmdzIjoNCiAgICAgICAgICAgICAgICBhbGVydCgpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgfQ0KICAgICAgICByZXR1cm4gcm93czsNCiAgICB9DQp9DQpjbGFzcyBDZWxsIHsNCiAgICBjcmVhdGVDZWxsKCkgew0KICAgICAgICBsZXQgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICBpZiAodGhpcy5jaGlsZCA9PSB0cnVlKSB7DQogICAgICAgICAgICB2YXIgZWxlbWVudDsNCiAgICAgICAgICAgIHN3aXRjaCAodGhpcy5jaGlsZFR5cGUpIHsNCiAgICAgICAgICAgICAgICBjYXNlICJQIjoNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQodGhpcy5jaGlsZFR5cGUpOw0KICAgICAgICAgICAgICAgICAgICBlbGVtZW50LmlubmVySFRNTCA9IHRoaXMudmFsdWU7DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQuY2xhc3NOYW1lID0gdGhpcy5jbGFzc05hbWU7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgIklOUFVUIjoNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQodGhpcy5jaGlsZFR5cGUpOw0KICAgICAgICAgICAgICAgICAgICBlbGVtZW50LnZhbHVlID0gdGhpcy52YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC50eXBlID0gInRleHQiOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBjYXNlICJJTlBVVENIQU5ORUwiOg0KICAgICAgICAgICAgICAgICAgICBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiSU5QVVQiKTsNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdnNjcmlwdDogY2hhbmdlQ2hhbm5lbE51bWJlcih0aGlzKSIpOw0KICAgICAgICAgICAgICAgICAgICBlbGVtZW50LnZhbHVlID0gdGhpcy52YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC50eXBlID0gInRleHQiOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBjYXNlICJCVUxLIjoNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIklOUFVUIik7DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQuY2hlY2tlZCA9IHRoaXMudmFsdWU7DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQudHlwZSA9ICJjaGVja2JveCI7DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQuY2xhc3NOYW1lID0gImJ1bGsgaGlkZUJ1bGsiOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBjYXNlICJCVUxLX0hFQUQiOg0KICAgICAgICAgICAgICAgICAgICBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiSU5QVVQiKTsNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC5jaGVja2VkID0gdGhpcy52YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC50eXBlID0gImNoZWNrYm94IjsNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC5jbGFzc05hbWUgPSAiYnVsayBoaWRlQnVsayI7DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgImphdmFzY3JpcHQ6IHNlbGVjdEFsbENoYW5uZWxzKCkiKTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAiSU1HIjoNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQodGhpcy5jaGlsZFR5cGUpOw0KICAgICAgICAgICAgICAgICAgICBlbGVtZW50LnNldEF0dHJpYnV0ZSgic3JjIiwgdGhpcy5pbWFnZVVSTCk7DQogICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLmltYWdlVVJMICE9ICIiKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBlbGVtZW50LnNldEF0dHJpYnV0ZSgib25lcnJvciIsICJqYXZhc2NyaXB0OiB0aGlzLm9uZXJyb3I9bnVsbDt0aGlzLnNyYz0nJyIpOw0KICAgICAgICAgICAgICAgICAgICAgICAgLy9vbmVycm9yPSJ0aGlzLm9uZXJyb3I9bnVsbDt0aGlzLnNyYz0nbWlzc2luZy5naWYnOyINCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgdGQuYXBwZW5kQ2hpbGQoZWxlbWVudCk7DQogICAgICAgIH0NCiAgICAgICAgZWxzZSB7DQogICAgICAgICAgICB0ZC5pbm5lckhUTUwgPSB0aGlzLnZhbHVlOw0KICAgICAgICB9DQogICAgICAgIGlmICh0aGlzLm9uY2xpY2sgPT0gdHJ1ZSkgew0KICAgICAgICAgICAgdGQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgdGhpcy5vbmNsaWNrRnVuY3Rpb24pOw0KICAgICAgICAgICAgdGQuY2xhc3NOYW1lID0gInBvaW50ZXIiOw0KICAgICAgICB9DQogICAgICAgIGlmICh0aGlzLnRkQ2xhc3NOYW1lICE9IHVuZGVmaW5lZCkgew0KICAgICAgICAgICAgdGQuY2xhc3NOYW1lID0gdGhpcy50ZENsYXNzTmFtZTsNCiAgICAgICAgfQ0KICAgICAgICByZXR1cm4gdGQ7DQogICAgfQ0KfQ0KY2xhc3MgU2hvd0NvbnRlbnQgZXh0ZW5kcyBDb250ZW50IHsNCiAgICBjb25zdHJ1Y3RvcihtZW51SUQpIHsNCiAgICAgICAgc3VwZXIoKTsNCiAgICAgICAgdGhpcy5tZW51SUQgPSBtZW51SUQ7DQogICAgfQ0KICAgIGNyZWF0ZUlucHV0KHR5cGUsIG5hbWUsIHZhbHVlKSB7DQogICAgICAgIGxldCBpbnB1dCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIklOUFVUIik7DQogICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgidHlwZSIsIHR5cGUpOw0KICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm5hbWUiLCBuYW1lKTsNCiAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJ2YWx1ZSIsIHZhbHVlKTsNCiAgICAgICAgcmV0dXJuIGlucHV0Ow0KICAgIH0NCiAgICBzaG93KCkgew0KICAgICAgICBDT0xVTU5fVE9fU09SVCA9IC0xOw0KICAgICAgICAvLyBEZWxldGUgb2xkIGNvbnRlbnQNCiAgICAgICAgbGV0IGRvYyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHRoaXMuRG9jdW1lbnRJRCk7DQogICAgICAgIGRvYy5pbm5lckhUTUwgPSAiIjsNCiAgICAgICAgc2hvd1ByZXZpZXcoZmFsc2UpOw0KICAgICAgICAvLyBIZWFkbGluZQ0KICAgICAgICBsZXQgaGVhZGxpbmUgPSBtZW51SXRlbXNbdGhpcy5tZW51SURdLmhlYWRsaW5lOw0KICAgICAgICBsZXQgbWVudUtleSA9IG1lbnVJdGVtc1t0aGlzLm1lbnVJRF0ubWVudUtleTsNCiAgICAgICAgbGV0IGggPSB0aGlzLmNyZWF0ZUhlYWRsaW5lKGhlYWRsaW5lKTsNCiAgICAgICAgZG9jLmFwcGVuZENoaWxkKGgpOw0KICAgICAgICBsZXQgaHIgPSB0aGlzLmNyZWF0ZUhSKCk7DQogICAgICAgIGRvYy5hcHBlbmRDaGlsZChocik7DQogICAgICAgIC8vIEludGVyYWN0aW9uDQogICAgICAgIGxldCBkaXYgPSB0aGlzLmNyZWF0ZUludGVyYWN0aW9uKCk7DQogICAgICAgIGRvYy5hcHBlbmRDaGlsZChkaXYpOw0KICAgICAgICBsZXQgaW50ZXJhY3Rpb24gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCh0aGlzLmludGVyYWN0aW9uSUQpOw0KICAgICAgICBzd2l0Y2ggKG1lbnVLZXkpIHsNCiAgICAgICAgICAgIGNhc2UgInBsYXlsaXN0IjoNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSB0aGlzLmNyZWF0ZUlucHV0KCJidXR0b24iLCBtZW51S2V5LCAie3suYnV0dG9uLm5ld319Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJpZCIsICItIik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgicGxheWxpc3QiKScpOw0KICAgICAgICAgICAgICAgIGludGVyYWN0aW9uLmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImZpbHRlciI6DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gdGhpcy5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgbWVudUtleSwgInt7LmJ1dHRvbi5uZXd9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgiaWQiLCAtMSk7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgiZmlsdGVyIiwgdGhpcyknKTsNCiAgICAgICAgICAgICAgICBpbnRlcmFjdGlvbi5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ4bWx0diI6DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gdGhpcy5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgbWVudUtleSwgInt7LmJ1dHRvbi5uZXd9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgiaWQiLCAieG1sdHYiKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJ4bWx0diIpJyk7DQogICAgICAgICAgICAgICAgaW50ZXJhY3Rpb24uYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAidXNlcnMiOg0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IHRoaXMuY3JlYXRlSW5wdXQoImJ1dHRvbiIsIG1lbnVLZXksICJ7ey5idXR0b24ubmV3fX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoImlkIiwgInVzZXJzIik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgidXNlcnMiKScpOw0KICAgICAgICAgICAgICAgIGludGVyYWN0aW9uLmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgIm1hcHBpbmciOg0KICAgICAgICAgICAgICAgIHNob3dFbGVtZW50KCJsb2FkaW5nIiwgdHJ1ZSk7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gdGhpcy5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgbWVudUtleSwgInt7LmJ1dHRvbi5zYXZlfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogc2F2ZVBvcHVwRGF0YSgibWFwcGluZyIsICIiLCAiIiknKTsNCiAgICAgICAgICAgICAgICBpbnRlcmFjdGlvbi5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gdGhpcy5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgbWVudUtleSwgInt7LmJ1dHRvbi5idWxrRWRpdH19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IGJ1bGtFZGl0KCknKTsNCiAgICAgICAgICAgICAgICBpbnRlcmFjdGlvbi5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gdGhpcy5jcmVhdGVJbnB1dCgic2VhcmNoIiwgInNlYXJjaCIsICIiKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoImlkIiwgInNlYXJjaE1hcHBpbmciKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LmJ1dHRvbi5zZWFyY2h9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LmNsYXNzTmFtZSA9ICJzZWFyY2giOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAnamF2YXNjcmlwdDogc2VhcmNoSW5NYXBwaW5nKCknKTsNCiAgICAgICAgICAgICAgICBpbnRlcmFjdGlvbi5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJzZXR0aW5ncyI6DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gdGhpcy5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgbWVudUtleSwgInt7LmJ1dHRvbi5zYXZlfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogc2F2ZVNldHRpbmdzKCk7Jyk7DQogICAgICAgICAgICAgICAgaW50ZXJhY3Rpb24uYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IHRoaXMuY3JlYXRlSW5wdXQoImJ1dHRvbiIsIG1lbnVLZXksICJ7ey5idXR0b24uYmFja3VwfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogYmFja3VwKCk7Jyk7DQogICAgICAgICAgICAgICAgaW50ZXJhY3Rpb24uYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IHRoaXMuY3JlYXRlSW5wdXQoImJ1dHRvbiIsIG1lbnVLZXksICJ7ey5idXR0b24ucmVzdG9yZX19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IHJlc3RvcmUoKTsnKTsNCiAgICAgICAgICAgICAgICBpbnRlcmFjdGlvbi5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgdmFyIHdyYXBwZXIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJESVYiKTsNCiAgICAgICAgICAgICAgICB3cmFwcGVyLnNldEF0dHJpYnV0ZSgiaWQiLCAiYm94LXdyYXBwZXIiKTsNCiAgICAgICAgICAgICAgICBkb2MuYXBwZW5kQ2hpbGQod3JhcHBlcik7DQogICAgICAgICAgICAgICAgdGhpcy5EaXZJRCA9ICJjb250ZW50X3NldHRpbmdzIjsNCiAgICAgICAgICAgICAgICB2YXIgc2V0dGluZ3MgPSB0aGlzLmNyZWF0ZURJVigpOw0KICAgICAgICAgICAgICAgIHdyYXBwZXIuYXBwZW5kQ2hpbGQoc2V0dGluZ3MpOw0KICAgICAgICAgICAgICAgIHNob3dTZXR0aW5ncygpOw0KICAgICAgICAgICAgICAgIHJldHVybjsNCiAgICAgICAgICAgIGNhc2UgImxvZyI6DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gdGhpcy5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgbWVudUtleSwgInt7LmJ1dHRvbi5yZXNldExvZ3N9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiByZXNldExvZ3MoKTsnKTsNCiAgICAgICAgICAgICAgICBpbnRlcmFjdGlvbi5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgdmFyIHdyYXBwZXIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJESVYiKTsNCiAgICAgICAgICAgICAgICB3cmFwcGVyLnNldEF0dHJpYnV0ZSgiaWQiLCAiYm94LXdyYXBwZXIiKTsNCiAgICAgICAgICAgICAgICBkb2MuYXBwZW5kQ2hpbGQod3JhcHBlcik7DQogICAgICAgICAgICAgICAgdGhpcy5EaXZJRCA9ICJjb250ZW50X2xvZyI7DQogICAgICAgICAgICAgICAgdmFyIGxvZ3MgPSB0aGlzLmNyZWF0ZURJVigpOw0KICAgICAgICAgICAgICAgIHdyYXBwZXIuYXBwZW5kQ2hpbGQobG9ncyk7DQogICAgICAgICAgICAgICAgc2hvd0xvZ3ModHJ1ZSk7DQogICAgICAgICAgICAgICAgcmV0dXJuOw0KICAgICAgICAgICAgY2FzZSAibG9nb3V0IjoNCiAgICAgICAgICAgICAgICBsb2NhdGlvbi5yZWxvYWQoKTsNCiAgICAgICAgICAgICAgICBkb2N1bWVudC5jb29raWUgPSAiVG9rZW49IDsgZXhwaXJlcyA9IFRodSwgMDEgSmFuIDE5NzAgMDA6MDA6MDAgR01UIjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIH0NCiAgICAgICAgLy8gQ3JlYXRlIHRhYmxlIChpZiBuZWVkZWQpDQogICAgICAgIHZhciB0YWJsZUhlYWRlciA9IG1lbnVJdGVtc1t0aGlzLm1lbnVJRF0udGFibGVIZWFkZXI7DQogICAgICAgIGlmICh0YWJsZUhlYWRlci5sZW5ndGggPiAwKSB7DQogICAgICAgICAgICB2YXIgd3JhcHBlciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIkRJViIpOw0KICAgICAgICAgICAgZG9jLmFwcGVuZENoaWxkKHdyYXBwZXIpOw0KICAgICAgICAgICAgd3JhcHBlci5zZXRBdHRyaWJ1dGUoImlkIiwgImJveC13cmFwcGVyIik7DQogICAgICAgICAgICB2YXIgdGFibGUgPSB0aGlzLmNyZWF0ZVRBQkxFKCk7DQogICAgICAgICAgICB3cmFwcGVyLmFwcGVuZENoaWxkKHRhYmxlKTsNCiAgICAgICAgICAgIHZhciBoZWFkZXIgPSB0aGlzLmNyZWF0ZVRhYmxlUm93KCk7DQogICAgICAgICAgICB0YWJsZS5hcHBlbmRDaGlsZChoZWFkZXIpOw0KICAgICAgICAgICAgLy8gVGFibGUgaGVhZGVyDQogICAgICAgICAgICB0YWJsZUhlYWRlci5mb3JFYWNoKGVsZW1lbnQgPT4gew0KICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZWxlbWVudDsNCiAgICAgICAgICAgICAgICBpZiAoZWxlbWVudCA9PSAiQlVMSyIpIHsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiQlVMS19IRUFEIjsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGZhbHNlOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBpZiAobWVudUtleSA9PSAibWFwcGluZyIpIHsNCiAgICAgICAgICAgICAgICAgICAgaWYgKGVsZW1lbnQgPT0gInt7Lm1hcHBpbmcudGFibGUuY2hOb319Iikgew0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5vbmNsaWNrID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwub25jbGlja0Z1bmN0aW9uID0gImphdmFzY3JpcHQ6IHNvcnRUYWJsZSgxKTsiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC50ZENsYXNzTmFtZSA9ICJzb3J0VGhpcyI7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgaWYgKGVsZW1lbnQgPT0gInt7Lm1hcHBpbmcudGFibGUuY2hhbm5lbE5hbWV9fSIpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwub25jbGljayA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLm9uY2xpY2tGdW5jdGlvbiA9ICJqYXZhc2NyaXB0OiBzb3J0VGFibGUoMyk7IjsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBpZiAoZWxlbWVudCA9PSAie3subWFwcGluZy50YWJsZS5wbGF5bGlzdH19Iikgew0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5vbmNsaWNrID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwub25jbGlja0Z1bmN0aW9uID0gImphdmFzY3JpcHQ6IHNvcnRUYWJsZSg0KTsiOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIGlmIChlbGVtZW50ID09ICJ7ey5tYXBwaW5nLnRhYmxlLmdyb3VwVGl0bGV9fSIpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwub25jbGljayA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLm9uY2xpY2tGdW5jdGlvbiA9ICJqYXZhc2NyaXB0OiBzb3J0VGFibGUoNSk7IjsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBpZiAoZWxlbWVudCA9PSAie3subWFwcGluZy50YWJsZS50aW1lc2hpZnR9fSIpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwub25jbGljayA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLm9uY2xpY2tGdW5jdGlvbiA9ICJqYXZhc2NyaXB0OiBzb3J0VGFibGUoOCk7IjsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBpZiAobWVudUtleSA9PSAiZmlsdGVyIikgew0KICAgICAgICAgICAgICAgICAgICBpZiAoZWxlbWVudCA9PSAie3suZmlsdGVyLnRhYmxlLnN0YXJ0aW5nQ2hhbm5lbH19Iikgew0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5vbmNsaWNrID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwub25jbGlja0Z1bmN0aW9uID0gImphdmFzY3JpcHQ6IHNvcnRUYWJsZSgwKTsiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC50ZENsYXNzTmFtZSA9ICJzb3J0VGhpcyI7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgaWYgKGVsZW1lbnQgPT0gInt7LmZpbHRlci50YWJsZS5uYW1lfX0iKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLm9uY2xpY2sgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5vbmNsaWNrRnVuY3Rpb24gPSAiamF2YXNjcmlwdDogc29ydFRhYmxlKDEpOyI7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgaWYgKGVsZW1lbnQgPT0gInt7LmZpbHRlci50YWJsZS50eXBlfX0iKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLm9uY2xpY2sgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5vbmNsaWNrRnVuY3Rpb24gPSAiamF2YXNjcmlwdDogc29ydFRhYmxlKDIpOyI7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgaWYgKGVsZW1lbnQgPT0gInt7LmZpbHRlci50YWJsZS5maWx0ZXJ9fSIpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwub25jbGljayA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLm9uY2xpY2tGdW5jdGlvbiA9ICJqYXZhc2NyaXB0OiBzb3J0VGFibGUoMyk7IjsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBoZWFkZXIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgfSk7DQogICAgICAgICAgICB0YWJsZS5hcHBlbmRDaGlsZChoZWFkZXIpOw0KICAgICAgICAgICAgLy8gQ29udGVudCBvZiB0aGUgdGFibGUNCiAgICAgICAgICAgIHZhciByb3dzID0gdGhpcy5jcmVhdGVUYWJsZUNvbnRlbnQobWVudUtleSk7DQogICAgICAgICAgICByb3dzLmZvckVhY2godHIgPT4gew0KICAgICAgICAgICAgICAgIHRhYmxlLmFwcGVuZENoaWxkKHRyKTsNCiAgICAgICAgICAgIH0pOw0KICAgICAgICB9DQogICAgICAgIHN3aXRjaCAobWVudUtleSkgew0KICAgICAgICAgICAgY2FzZSAibWFwcGluZyI6DQogICAgICAgICAgICAgICAgc29ydFRhYmxlKDEpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiZmlsdGVyIjoNCiAgICAgICAgICAgICAgICBzaG93UHJldmlldyh0cnVlKTsNCiAgICAgICAgICAgICAgICBzb3J0VGFibGUoMCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBkZWZhdWx0Og0KICAgICAgICAgICAgICAgIENPTFVNTl9UT19TT1JUID0gLTE7DQogICAgICAgICAgICAgICAgc29ydFRhYmxlKDApOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICB9DQogICAgICAgIHNob3dFbGVtZW50KCJsb2FkaW5nIiwgZmFsc2UpOw0KICAgIH0NCn0NCmZ1bmN0aW9uIFBhZ2VSZWFkeSgpIHsNCiAgICBsZXQgc2VydmVyID0gbmV3IFNlcnZlcigiZ2V0U2VydmVyQ29uZmlnIik7DQogICAgc2VydmVyLnJlcXVlc3Qoe30pOw0KICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJyZXNpemUiLCBmdW5jdGlvbiAoKSB7DQogICAgICAgIGNhbGN1bGF0ZVdyYXBwZXJIZWlnaHQoKTsNCiAgICB9LCB0cnVlKTsNCiAgICBzZXRJbnRlcnZhbChmdW5jdGlvbiAoKSB7DQogICAgICAgIHVwZGF0ZUxvZygpOw0KICAgIH0sIDEwMDAwKTsNCiAgICByZXR1cm47DQp9DQpmdW5jdGlvbiBjcmVhdGVMYXlvdXQoKSB7DQogICAgLy8gQ2xpZW50IEluZm8NCiAgICBsZXQgb2JqID0gU0VSVkVSWyJjbGllbnRJbmZvIl07DQogICAgbGV0IGtleXMgPSBnZXRPd25PYmpQcm9wcyhvYmopOw0KICAgIGZvciAodmFyIGkgPSAwOyBpIDwga2V5cy5sZW5ndGg7IGkrKykgew0KICAgICAgICBpZiAoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoa2V5c1tpXSkpIHsNCiAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGtleXNbaV0pLmlubmVySFRNTCA9IG9ialtrZXlzW2ldXTsNCiAgICAgICAgfQ0KICAgIH0NCiAgICBpZiAoIWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJtYWluLW1lbnUiKSkgew0KICAgICAgICByZXR1cm47DQogICAgfQ0KICAgIC8vIENyZWF0ZSBtZW51DQogICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm1haW4tbWVudSIpLmlubmVySFRNTCA9ICIiOw0KICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbWVudUl0ZW1zLmxlbmd0aDsgaSsrKSB7DQogICAgICAgIG1lbnVJdGVtc1tpXS5pZCA9IGk7DQogICAgICAgIHN3aXRjaCAobWVudUl0ZW1zW2ldWyJtZW51S2V5Il0pIHsNCiAgICAgICAgICAgIGNhc2UgInVzZXJzIjoNCiAgICAgICAgICAgIGNhc2UgImxvZ291dCI6DQogICAgICAgICAgICAgICAgaWYgKFNFUlZFUlsic2V0dGluZ3MiXVsiYXV0aGVudGljYXRpb24ud2ViIl0gPT0gdHJ1ZSkgew0KICAgICAgICAgICAgICAgICAgICBtZW51SXRlbXNbaV0uY3JlYXRlSXRlbSgpOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgIm1hcHBpbmciOg0KICAgICAgICAgICAgY2FzZSAieG1sdHYiOg0KICAgICAgICAgICAgICAgIGlmIChTRVJWRVJbImNsaWVudEluZm8iXVsiZXBnU291cmNlIl0gPT0gIlhFUEciKSB7DQogICAgICAgICAgICAgICAgICAgIG1lbnVJdGVtc1tpXS5jcmVhdGVJdGVtKCk7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgICAgICBtZW51SXRlbXNbaV0uY3JlYXRlSXRlbSgpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICB9DQogICAgfQ0KICAgIHJldHVybjsNCn0NCmZ1bmN0aW9uIG9wZW5UaGlzTWVudShlbGVtZW50KSB7DQogICAgbGV0IGlkID0gZWxlbWVudC5pZDsNCiAgICBsZXQgY29udGVudCA9IG5ldyBTaG93Q29udGVudChpZCk7DQogICAgY29udGVudC5zaG93KCk7DQogICAgY2FsY3VsYXRlV3JhcHBlckhlaWdodCgpOw0KICAgIHJldHVybjsNCn0NCmNsYXNzIFBvcHVwV2luZG93IHsNCiAgICBjb25zdHJ1Y3RvcigpIHsNCiAgICAgICAgdGhpcy5Eb2N1bWVudElEID0gInBvcHVwLWN1c3RvbSI7DQogICAgICAgIHRoaXMuSW50ZXJhY3Rpb25JRCA9ICJpbnRlcmFjdGlvbiI7DQogICAgICAgIHRoaXMuZG9jID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQodGhpcy5Eb2N1bWVudElEKTsNCiAgICB9DQogICAgY3JlYXRlVGl0bGUodGl0bGUpIHsNCiAgICAgICAgbGV0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgdGQuY2xhc3NOYW1lID0gImxlZnQiOw0KICAgICAgICB0ZC5pbm5lckhUTUwgPSB0aXRsZSArICI6IjsNCiAgICAgICAgcmV0dXJuIHRkOw0KICAgIH0NCiAgICBjcmVhdGVDb250ZW50KGVsZW1lbnQpIHsNCiAgICAgICAgbGV0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgdGQuYXBwZW5kQ2hpbGQoZWxlbWVudCk7DQogICAgICAgIHJldHVybiB0ZDsNCiAgICB9DQogICAgY3JlYXRlSW50ZXJhY3Rpb24oKSB7DQogICAgICAgIGxldCBkaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsNCiAgICAgICAgZGl2LnNldEF0dHJpYnV0ZSgiaWQiLCAicG9wdXAtaW50ZXJhY3Rpb24iKTsNCiAgICAgICAgZGl2LmNsYXNzTmFtZSA9ICJpbnRlcmFjdGlvbiI7DQogICAgICAgIHRoaXMuZG9jLmFwcGVuZENoaWxkKGRpdik7DQogICAgfQ0KfQ0KY2xhc3MgUG9wdXBDb250ZW50IGV4dGVuZHMgUG9wdXBXaW5kb3cgew0KICAgIGNvbnN0cnVjdG9yKCkgew0KICAgICAgICBzdXBlciguLi5hcmd1bWVudHMpOw0KICAgICAgICB0aGlzLnRhYmxlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEFCTEUiKTsNCiAgICB9DQogICAgY3JlYXRlSGVhZGxpbmUoaGVhZGxpbmUpIHsNCiAgICAgICAgdGhpcy5kb2MuaW5uZXJIVE1MID0gIiI7DQogICAgICAgIHZhciBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiSDMiKTsNCiAgICAgICAgZWxlbWVudC5pbm5lckhUTUwgPSBoZWFkbGluZS50b1VwcGVyQ2FzZSgpOw0KICAgICAgICB0aGlzLmRvYy5hcHBlbmRDaGlsZChlbGVtZW50KTsNCiAgICAgICAgLy8gQ3JlYXRlIHRhYmxlDQogICAgICAgIHRoaXMudGFibGUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJUQUJMRSIpOw0KICAgICAgICB0aGlzLmRvYy5hcHBlbmRDaGlsZCh0aGlzLnRhYmxlKTsNCiAgICB9DQogICAgYXBwZW5kUm93KHRpdGxlLCBlbGVtZW50KSB7DQogICAgICAgIGxldCB0ciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlRSIik7DQogICAgICAgIC8vIFRpdGxlDQogICAgICAgIGlmICh0aXRsZS5sZW5ndGggIT0gMCkgew0KICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQodGhpcy5jcmVhdGVUaXRsZSh0aXRsZSkpOw0KICAgICAgICB9DQogICAgICAgIC8vIENvbnRlbnQNCiAgICAgICAgdHIuYXBwZW5kQ2hpbGQodGhpcy5jcmVhdGVDb250ZW50KGVsZW1lbnQpKTsNCiAgICAgICAgdGhpcy50YWJsZS5hcHBlbmRDaGlsZCh0cik7DQogICAgfQ0KICAgIGNyZWF0ZUlucHV0KHR5cGUsIG5hbWUsIHZhbHVlKSB7DQogICAgICAgIGxldCBpbnB1dCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIklOUFVUIik7DQogICAgICAgIGlmICh2YWx1ZSA9PSB1bmRlZmluZWQpIHsNCiAgICAgICAgICAgIHZhbHVlID0gIiI7DQogICAgICAgIH0NCiAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJ0eXBlIiwgdHlwZSk7DQogICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgibmFtZSIsIG5hbWUpOw0KICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInZhbHVlIiwgdmFsdWUpOw0KICAgICAgICByZXR1cm4gaW5wdXQ7DQogICAgfQ0KICAgIGNyZWF0ZUNoZWNrYm94KG5hbWUpIHsNCiAgICAgICAgbGV0IGlucHV0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiSU5QVVQiKTsNCiAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJ0eXBlIiwgImNoZWNrYm94Iik7DQogICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgibmFtZSIsIG5hbWUpOw0KICAgICAgICByZXR1cm4gaW5wdXQ7DQogICAgfQ0KICAgIC8vIENyZWF0ZXMgYSBzZWxlY3Rpb24gb2YgbXVsdGlwbGUgb3B0aW9ucyB2YWx1ZXMgd2l0aCB0ZXh0IGRlc2NyaXB0aW9ucw0KICAgIGNyZWF0ZVNlbGVjdCh0ZXh0LCB2YWx1ZXMsIHNldCwgZGJLZXkpIHsNCiAgICAgICAgbGV0IHNlbGVjdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlNFTEVDVCIpOw0KICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJuYW1lIiwgZGJLZXkpOw0KICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRleHQubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgICAgIGxldCBvcHRpb24gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJPUFRJT04iKTsNCiAgICAgICAgICAgIG9wdGlvbi5zZXRBdHRyaWJ1dGUoInZhbHVlIiwgdmFsdWVzW2ldKTsNCiAgICAgICAgICAgIG9wdGlvbi5pbm5lclRleHQgPSB0ZXh0W2ldOw0KICAgICAgICAgICAgc2VsZWN0LmFwcGVuZENoaWxkKG9wdGlvbik7DQogICAgICAgIH0NCiAgICAgICAgaWYgKHNldCAhPSAiIikgew0KICAgICAgICAgICAgc2VsZWN0LnZhbHVlID0gc2V0Ow0KICAgICAgICB9DQogICAgICAgIGlmIChzZXQgPT0gdW5kZWZpbmVkKSB7DQogICAgICAgICAgICBzZWxlY3QudmFsdWUgPSB2YWx1ZXNbMF07DQogICAgICAgIH0NCiAgICAgICAgcmV0dXJuIHNlbGVjdDsNCiAgICB9DQogICAgc2VsZWN0T3B0aW9uKHNlbGVjdCwgdmFsdWUpIHsNCiAgICAgICAgLy9zZWxlY3Quc2VsZWN0ZWRPcHRpb25zID0gdmFsdWUNCiAgICAgICAgbGV0IHMgPSBzZWxlY3Q7DQogICAgICAgIHMub3B0aW9uc1tzLnNlbGVjdGVkSW5kZXhdLnZhbHVlID0gdmFsdWU7DQogICAgICAgIHJldHVybiBzZWxlY3Q7DQogICAgfQ0KICAgIGRlc2NyaXB0aW9uKHZhbHVlKSB7DQogICAgICAgIGxldCB0ciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlRSIik7DQogICAgICAgIGxldCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgIGxldCBzcGFuID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiUFJFIik7DQogICAgICAgIHNwYW4uaW5uZXJIVE1MID0gdmFsdWU7DQogICAgICAgIHRyLmFwcGVuZENoaWxkKHRkKTsNCiAgICAgICAgdHIuYXBwZW5kQ2hpbGQodGhpcy5jcmVhdGVDb250ZW50KHNwYW4pKTsNCiAgICAgICAgdGhpcy50YWJsZS5hcHBlbmRDaGlsZCh0cik7DQogICAgfQ0KICAgIC8vIEludGVyYWN0aW9uDQogICAgYWRkSW50ZXJhY3Rpb24oZWxlbWVudCkgew0KICAgICAgICBsZXQgaW50ZXJhY3Rpb24gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicG9wdXAtaW50ZXJhY3Rpb24iKTsNCiAgICAgICAgaW50ZXJhY3Rpb24uYXBwZW5kQ2hpbGQoZWxlbWVudCk7DQogICAgfQ0KfQ0KZnVuY3Rpb24gb3BlblBvcFVwKGRhdGFUeXBlLCBlbGVtZW50KSB7DQogICAgbGV0IGRhdGEgPSB7fTsNCiAgICBsZXQgaWQ7DQogICAgc3dpdGNoIChlbGVtZW50KSB7DQogICAgICAgIGNhc2UgdW5kZWZpbmVkOg0KICAgICAgICAgICAgc3dpdGNoIChkYXRhVHlwZSkgew0KICAgICAgICAgICAgICAgIGNhc2UgImdyb3VwLXRpdGxlIjoNCiAgICAgICAgICAgICAgICAgICAgaWYgKGlkID09IHVuZGVmaW5lZCkgew0KICAgICAgICAgICAgICAgICAgICAgICAgaWQgPSAtMTsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBkYXRhID0gZ2V0TG9jYWxEYXRhKCJmaWx0ZXIiLCBpZCk7DQogICAgICAgICAgICAgICAgICAgIGRhdGFbInR5cGUiXSA9ICJncm91cC10aXRsZSI7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgImN1c3RvbS1maWx0ZXIiOg0KICAgICAgICAgICAgICAgICAgICBpZiAoaWQgPT0gdW5kZWZpbmVkKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBpZCA9IC0xOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIGRhdGEgPSBnZXRMb2NhbERhdGEoImZpbHRlciIsIGlkKTsNCiAgICAgICAgICAgICAgICAgICAgZGF0YVsidHlwZSJdID0gImN1c3RvbS1maWx0ZXIiOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBkZWZhdWx0Og0KICAgICAgICAgICAgICAgICAgICBkYXRhWyJpZC5wcm92aWRlciJdID0gIi0iOw0KICAgICAgICAgICAgICAgICAgICBkYXRhWyJ0eXBlIl0gPSBkYXRhVHlwZTsNCiAgICAgICAgICAgICAgICAgICAgaWQgPSAiLSI7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICBpZCA9IGVsZW1lbnQuaWQ7DQogICAgICAgICAgICBkYXRhID0gZ2V0TG9jYWxEYXRhKGRhdGFUeXBlLCBpZCk7DQogICAgICAgICAgICBicmVhazsNCiAgICB9DQogICAgbGV0IGNvbnRlbnQgPSBuZXcgUG9wdXBDb250ZW50KCk7DQogICAgc3dpdGNoIChkYXRhVHlwZSkgew0KICAgICAgICBjYXNlICJwbGF5bGlzdCI6DQogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUhlYWRsaW5lKCJ7ey5wbGF5bGlzdC5wbGF5bGlzdFR5cGUudGl0bGV9fSIpOw0KICAgICAgICAgICAgLy8gVHlwZQ0KICAgICAgICAgICAgdmFyIHRleHQgPSBbIk0zVSIsICJIREhvbWVSdW4iXTsNCiAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBbImphdmFzY3JpcHQ6IG9wZW5Qb3BVcCgnbTN1JykiLCAiamF2YXNjcmlwdDogb3BlblBvcFVwKCdoZGhyJykiXTsNCiAgICAgICAgICAgIHZhciBzZWxlY3QgPSBjb250ZW50LmNyZWF0ZVNlbGVjdCh0ZXh0LCB2YWx1ZXMsICIiLCAidHlwZSIpOw0KICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgiaWQiLCAidHlwZSIpOw0KICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAnamF2YXNjcmlwdDogY2hhbmdlQnV0dG9uQWN0aW9uKHRoaXMsICJuZXh0IiwgIm9uY2xpY2siKScpOyAvLyBjaGFuZ2VCdXR0b25BY3Rpb24NCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5wbGF5bGlzdC50eXBlLnRpdGxlfX0iLCBzZWxlY3QpOw0KICAgICAgICAgICAgLy8gSW50ZXJhY3Rpb24NCiAgICAgICAgICAgIGNvbnRlbnQuY3JlYXRlSW50ZXJhY3Rpb24oKTsNCiAgICAgICAgICAgIC8vIEFib3J0DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAiY2FuY2VsIiwgInt7LmJ1dHRvbi5jYW5jZWx9fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IHNob3dFbGVtZW50KCJwb3B1cCIsIGZhbHNlKTsnKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgLy8gTmV4dA0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgIm5leHQiLCAie3suYnV0dG9uLm5leHR9fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgibTN1IiknKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgiaWQiLCAnbmV4dCcpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSAibTN1IjoNCiAgICAgICAgICAgIGNvbnRlbnQuY3JlYXRlSGVhZGxpbmUoZGF0YVR5cGUpOw0KICAgICAgICAgICAgLy8gTmFtZQ0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gIm5hbWUiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnBsYXlsaXN0Lm5hbWUucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnBsYXlsaXN0Lm5hbWUudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIERlc2NyaXB0aW9uDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAiZGVzY3JpcHRpb24iOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnBsYXlsaXN0LmRlc2NyaXB0aW9uLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5wbGF5bGlzdC5kZXNjcmlwdGlvbi50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgLy8gVVJMDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAiZmlsZS5zb3VyY2UiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnBsYXlsaXN0LmZpbGVNM1UucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnBsYXlsaXN0LmZpbGVNM1UudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIFR1bmVyDQogICAgICAgICAgICBpZiAoU0VSVkVSWyJzZXR0aW5ncyJdWyJidWZmZXIiXSAhPSAiLSIpIHsNCiAgICAgICAgICAgICAgICB2YXIgdGV4dCA9IFtdOw0KICAgICAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBbXTsNCiAgICAgICAgICAgICAgICBmb3IgKHZhciBpID0gMTsgaSA8PSAxMDA7IGkrKykgew0KICAgICAgICAgICAgICAgICAgICB0ZXh0LnB1c2goaS50b1N0cmluZygpKTsNCiAgICAgICAgICAgICAgICAgICAgdmFsdWVzLnB1c2goaS50b1N0cmluZygpKTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgdmFyIGRiS2V5ID0gInR1bmVyIjsNCiAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCBkYXRhW2RiS2V5XSwgZGJLZXkpOw0KICAgICAgICAgICAgICAgIHNlbGVjdC5zZXRBdHRyaWJ1dGUoIm9uZm9jdXMiLCAiamF2YXNjcmlwdDogcmV0dXJuOyIpOw0KICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5wbGF5bGlzdC50dW5lci50aXRsZX19Iiwgc2VsZWN0KTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgICAgIHZhciBkYktleSA9ICJ0dW5lciI7DQogICAgICAgICAgICAgICAgaWYgKGRhdGFbZGJLZXldID09IHVuZGVmaW5lZCkgew0KICAgICAgICAgICAgICAgICAgICBkYXRhW2RiS2V5XSA9IDE7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicmVhZG9ubHkiLCAidHJ1ZSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LmNsYXNzTmFtZSA9ICJub3RBdmFpbGFibGUiOw0KICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5wbGF5bGlzdC50dW5lci50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgY29udGVudC5kZXNjcmlwdGlvbigie3sucGxheWxpc3QudHVuZXIuZGVzY3JpcHRpb259fSIpOw0KICAgICAgICAgICAgLy8gSW50ZXJhdGlvbg0KICAgICAgICAgICAgY29udGVudC5jcmVhdGVJbnRlcmFjdGlvbigpOw0KICAgICAgICAgICAgLy8gRGVsZXRlDQogICAgICAgICAgICBpZiAoZGF0YVsiaWQucHJvdmlkZXIiXSAhPSAiLSIpIHsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAiZGVsZXRlIiwgInt7LmJ1dHRvbi5kZWxldGV9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LmNsYXNzTmFtZSA9ICJkZWxldGUiOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBzYXZlUG9wdXBEYXRhKCJtM3UiLCAiJyArIGlkICsgJyIsIHRydWUsIDApJyk7DQogICAgICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAiYmFjayIsICJ7ey5idXR0b24uYmFja319Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgicGxheWxpc3QiKScpOw0KICAgICAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgLy8gQWJvcnQNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJjYW5jZWwiLCAie3suYnV0dG9uLmNhbmNlbH19Iik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogc2hvd0VsZW1lbnQoInBvcHVwIiwgZmFsc2UpOycpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICAvLyBVcGRhdGUNCiAgICAgICAgICAgIGlmIChkYXRhWyJpZC5wcm92aWRlciJdICE9ICItIikgew0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJ1cGRhdGUiLCAie3suYnV0dG9uLnVwZGF0ZX19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoIm0zdSIsICInICsgaWQgKyAnIiwgZmFsc2UsIDEpJyk7DQogICAgICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICAvLyBTYXZlDQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAic2F2ZSIsICJ7ey5idXR0b24uc2F2ZX19Iik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogc2F2ZVBvcHVwRGF0YSgibTN1IiwgIicgKyBpZCArICciLCBmYWxzZSwgMCknKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGNhc2UgImhkaHIiOg0KICAgICAgICAgICAgY29udGVudC5jcmVhdGVIZWFkbGluZShkYXRhVHlwZSk7DQogICAgICAgICAgICAvLyBOYW1lDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAibmFtZSI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3sucGxheWxpc3QubmFtZS5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sucGxheWxpc3QubmFtZS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgLy8gRGVzY3JpcHRpb24NCiAgICAgICAgICAgIHZhciBkYktleSA9ICJkZXNjcmlwdGlvbiI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3sucGxheWxpc3QuZGVzY3JpcHRpb24ucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnBsYXlsaXN0LmRlc2NyaXB0aW9uLnBsYWNlaG9sZGVyfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBVUkwNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJmaWxlLnNvdXJjZSI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3sucGxheWxpc3QuZmlsZUhESFIucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnBsYXlsaXN0LmZpbGVIREhSLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBUdW5lcg0KICAgICAgICAgICAgaWYgKFNFUlZFUlsic2V0dGluZ3MiXVsiYnVmZmVyIl0gIT0gIi0iKSB7DQogICAgICAgICAgICAgICAgdmFyIHRleHQgPSBbXTsNCiAgICAgICAgICAgICAgICB2YXIgdmFsdWVzID0gW107DQogICAgICAgICAgICAgICAgZm9yICh2YXIgaSA9IDE7IGkgPD0gMTAwOyBpKyspIHsNCiAgICAgICAgICAgICAgICAgICAgdGV4dC5wdXNoKGkudG9TdHJpbmcoKSk7DQogICAgICAgICAgICAgICAgICAgIHZhbHVlcy5wdXNoKGkudG9TdHJpbmcoKSk7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIHZhciBkYktleSA9ICJ0dW5lciI7DQogICAgICAgICAgICAgICAgdmFyIHNlbGVjdCA9IGNvbnRlbnQuY3JlYXRlU2VsZWN0KHRleHQsIHZhbHVlcywgZGF0YVtkYktleV0sIGRiS2V5KTsNCiAgICAgICAgICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJvbmZvY3VzIiwgImphdmFzY3JpcHQ6IHJldHVybjsiKTsNCiAgICAgICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sucGxheWxpc3QudHVuZXIudGl0bGV9fSIsIHNlbGVjdCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICB2YXIgZGJLZXkgPSAidHVuZXIiOw0KICAgICAgICAgICAgICAgIGlmIChkYXRhW2RiS2V5XSA9PSB1bmRlZmluZWQpIHsNCiAgICAgICAgICAgICAgICAgICAgZGF0YVtkYktleV0gPSAxOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInJlYWRvbmx5IiwgInRydWUiKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5jbGFzc05hbWUgPSAibm90QXZhaWxhYmxlIjsNCiAgICAgICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sucGxheWxpc3QudHVuZXIudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGNvbnRlbnQuZGVzY3JpcHRpb24oInt7LnBsYXlsaXN0LnR1bmVyLmRlc2NyaXB0aW9ufX0iKTsNCiAgICAgICAgICAgIC8vIEludGVyYWN0aW9uDQogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUludGVyYWN0aW9uKCk7DQogICAgICAgICAgICAvLyBEZWxldGUNCiAgICAgICAgICAgIGlmIChkYXRhWyJpZC5wcm92aWRlciJdICE9ICItIikgew0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJkZWxldGUiLCAie3suYnV0dG9uLmRlbGV0ZX19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoImhkaHIiLCAiJyArIGlkICsgJyIsIHRydWUsIDApJyk7DQogICAgICAgICAgICAgICAgaW5wdXQuY2xhc3NOYW1lID0gImRlbGV0ZSI7DQogICAgICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAiYmFjayIsICJ7ey5idXR0b24uYmFja319Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgicGxheWxpc3QiKScpOw0KICAgICAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgLy8gQWJvcnQNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJjYW5jZWwiLCAie3suYnV0dG9uLmNhbmNlbH19Iik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogc2hvd0VsZW1lbnQoInBvcHVwIiwgZmFsc2UpOycpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICAvLyBVcGRhdGUNCiAgICAgICAgICAgIGlmIChkYXRhWyJpZC5wcm92aWRlciJdICE9ICItIikgew0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJ1cGRhdGUiLCAie3suYnV0dG9uLnVwZGF0ZX19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoImhkaHIiLCAiJyArIGlkICsgJyIsIGZhbHNlLCAxKScpOw0KICAgICAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgLy8gU2F2ZQ0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgInNhdmUiLCAie3suYnV0dG9uLnNhdmV9fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoImhkaHIiLCAiJyArIGlkICsgJyIsIGZhbHNlLCAwKScpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSAiZmlsdGVyIjoNCiAgICAgICAgICAgIGNvbnRlbnQuY3JlYXRlSGVhZGxpbmUoZGF0YVR5cGUpOw0KICAgICAgICAgICAgLy8gVHlwZQ0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gInR5cGUiOw0KICAgICAgICAgICAgdmFyIHRleHQgPSBbIk0zVTogIiArICJ7ey5maWx0ZXIudHlwZS5ncm91cFRpdGxlfX0iLCAieFRlVmU6ICIgKyAie3suZmlsdGVyLnR5cGUuY3VzdG9tRmlsdGVyfX0iXTsNCiAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBbImphdmFzY3JpcHQ6IG9wZW5Qb3BVcCgnZ3JvdXAtdGl0bGUnKSIsICJqYXZhc2NyaXB0OiBvcGVuUG9wVXAoJ2N1c3RvbS1maWx0ZXInKSJdOw0KICAgICAgICAgICAgdmFyIHNlbGVjdCA9IGNvbnRlbnQuY3JlYXRlU2VsZWN0KHRleHQsIHZhbHVlcywgImphdmFzY3JpcHQ6IG9wZW5Qb3BVcCgnZ3JvdXAtdGl0bGUnKSIsIGRiS2V5KTsNCiAgICAgICAgICAgIHNlbGVjdC5zZXRBdHRyaWJ1dGUoImlkIiwgaWQpOw0KICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAnamF2YXNjcmlwdDogY2hhbmdlQnV0dG9uQWN0aW9uKHRoaXMsICJuZXh0IiwgIm9uY2xpY2siKTsnKTsgLy8gY2hhbmdlQnV0dG9uQWN0aW9uDQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3suZmlsdGVyLnR5cGUudGl0bGV9fSIsIHNlbGVjdCk7DQogICAgICAgICAgICAvLyBJbnRlcmFjdGlvbg0KICAgICAgICAgICAgY29udGVudC5jcmVhdGVJbnRlcmFjdGlvbigpOw0KICAgICAgICAgICAgLy8gQWJvcnQNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJjYW5jZWwiLCAie3suYnV0dG9uLmNhbmNlbH19Iik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogc2hvd0VsZW1lbnQoInBvcHVwIiwgZmFsc2UpOycpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICAvLyBOZXh0DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAibmV4dCIsICJ7ey5idXR0b24ubmV4dH19Iik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJncm91cC10aXRsZSIpJyk7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoImlkIiwgJ25leHQnKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGNhc2UgImN1c3RvbS1maWx0ZXIiOg0KICAgICAgICBjYXNlICJncm91cC10aXRsZSI6DQogICAgICAgICAgICBzd2l0Y2ggKGRhdGFUeXBlKSB7DQogICAgICAgICAgICAgICAgY2FzZSAiY3VzdG9tLWZpbHRlciI6DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuY3JlYXRlSGVhZGxpbmUoInt7LmZpbHRlci5jdXN0b219fSIgKyAiIEZpbHRlciIpOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBjYXNlICJncm91cC10aXRsZSI6DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuY3JlYXRlSGVhZGxpbmUoInt7LmZpbHRlci5ncm91cH19IiArICIgRmlsdGVyIik7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgLy8gTmFtZSAgICAgIA0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gIm5hbWUiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LmZpbHRlci5uYW1lLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5maWx0ZXIubmFtZS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgLy8gRGVzY3JpcHRpb24NCiAgICAgICAgICAgIHZhciBkYktleSA9ICJkZXNjcmlwdGlvbiI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3suZmlsdGVyLmRlc2NyaXB0aW9uLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5maWx0ZXIuZGVzY3JpcHRpb24udGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIFR5cGUNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJ0eXBlIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImhpZGRlbiIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygiIiwgaW5wdXQpOw0KICAgICAgICAgICAgdmFyIGZpbHRlclR5cGUgPSBkYXRhW2RiS2V5XTsNCiAgICAgICAgICAgIHN3aXRjaCAoZmlsdGVyVHlwZSkgew0KICAgICAgICAgICAgICAgIGNhc2UgImN1c3RvbS1maWx0ZXIiOg0KICAgICAgICAgICAgICAgICAgICAvLyBDYXNlIHNlbnNpdGl2ZQ0KICAgICAgICAgICAgICAgICAgICB2YXIgZGJLZXkgPSAiY2FzZVNlbnNpdGl2ZSI7DQogICAgICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goZGJLZXkpOw0KICAgICAgICAgICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YVtkYktleV07DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5maWx0ZXIuY2FzZVNlbnNpdGl2ZS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgICAgICAgICAvLyBGaWx0ZXIgUnVsZSAoQ3VzdG9tKQ0KICAgICAgICAgICAgICAgICAgICB2YXIgZGJLZXkgPSAiZmlsdGVyIjsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3suZmlsdGVyLmZpbHRlclJ1bGUucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3suZmlsdGVyLmZpbHRlclJ1bGUudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAiZ3JvdXAtdGl0bGUiOg0KICAgICAgICAgICAgICAgICAgICAvL2FsZXJ0KGRiS2V5ICsgIiAiICsgZmlsdGVyVHlwZSkNCiAgICAgICAgICAgICAgICAgICAgLy8gRmlsdGVyIGJhc2VkIG9uIHRoZSBncm91cHMgaW4gdGhlIE0zVQ0KICAgICAgICAgICAgICAgICAgICB2YXIgZGJLZXkgPSAiZmlsdGVyIjsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGdyb3Vwc00zVSA9IGdldExvY2FsRGF0YSgibTN1R3JvdXBzIiwgIiIpOw0KICAgICAgICAgICAgICAgICAgICB2YXIgdGV4dCA9IGdyb3Vwc00zVVsidGV4dCJdOw0KICAgICAgICAgICAgICAgICAgICB2YXIgdmFsdWVzID0gZ3JvdXBzTTNVWyJ2YWx1ZSJdOw0KICAgICAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCBkYXRhW2RiS2V5XSwgZGJLZXkpOw0KICAgICAgICAgICAgICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3suZmlsdGVyLmZpbHRlckdyb3VwLnRpdGxlfX0iLCBzZWxlY3QpOw0KICAgICAgICAgICAgICAgICAgICBjb250ZW50LmRlc2NyaXB0aW9uKCJ7ey5maWx0ZXIuZmlsdGVyR3JvdXAuZGVzY3JpcHRpb259fSIpOw0KICAgICAgICAgICAgICAgICAgICAvLyBDYXNlIHNlbnNldGl2ZQ0KICAgICAgICAgICAgICAgICAgICB2YXIgZGJLZXkgPSAiY2FzZVNlbnNpdGl2ZSI7DQogICAgICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goZGJLZXkpOw0KICAgICAgICAgICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YVtkYktleV07DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5maWx0ZXIuY2FzZVNlbnNpdGl2ZS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgICAgICAgICB2YXIgZGJLZXkgPSAiaW5jbHVkZSI7DQogICAgICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LmZpbHRlci5pbmNsdWRlLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LmZpbHRlci5pbmNsdWRlLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuZGVzY3JpcHRpb24oInt7LmZpbHRlci5pbmNsdWRlLmRlc2NyaXB0aW9ufX0iKTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGRiS2V5ID0gImV4Y2x1ZGUiOw0KICAgICAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5maWx0ZXIuZXhjbHVkZS5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5maWx0ZXIuZXhjbHVkZS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgICAgICAgICBjb250ZW50LmRlc2NyaXB0aW9uKCJ7ey5maWx0ZXIuZXhjbHVkZS5kZXNjcmlwdGlvbn19Iik7DQogICAgICAgICAgICAgICAgICAgIC8vIFByZXNlcnZlIE0zVSBQbGF5bGlzdCBDaGFubmVsIE1hcHBpbmcNCiAgICAgICAgICAgICAgICAgICAgdmFyIGRiS2V5ID0gInByZXNlcnZlTWFwcGluZyI7DQogICAgICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goZGJLZXkpOw0KICAgICAgICAgICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YVtkYktleV07DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5maWx0ZXIucHJlc2VydmVNYXBwaW5nLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAgICAgICAgIC8vIFN0YXJ0aW5nIENoYW5uZWwgTnVtYmVyIE1hcHBpbmcNCiAgICAgICAgICAgICAgICAgICAgdmFyIGRiS2V5ID0gInN0YXJ0aW5nQ2hhbm5lbCI7DQogICAgICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LmZpbHRlci5zdGFydGluZ0NoYW5uZWwucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3suZmlsdGVyLnN0YXJ0aW5nQ2hhbm5lbC50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgICAgICAgICAvLyBGaWxsIE1pc3NpbmcgRVBHIERhdGENCiAgICAgICAgICAgICAgICAgICAgLy8gVGhlIGZvbGxvd2luZyBjb2RlIG9ubHkgd29ya3Mgd2hlbiB4VGVWZSBEdW1teSBhbHJlYWR5IGV4aXN0cw0KICAgICAgICAgICAgICAgICAgICAvLyB2YXIgZGJLZXk6c3RyaW5nID0gImRlZmF1bHRNaXNzaW5nRVBHIg0KICAgICAgICAgICAgICAgICAgICAvLyB2YXIgeG1sdHY6WE1MVFZGaWxlID0gbmV3IFhNTFRWRmlsZSgpDQogICAgICAgICAgICAgICAgICAgIC8vIHZhciBzZWxlY3QgPSB4bWx0di5nZXRQcm9ncmFtcygieFRlVmUgRHVtbXkiLCBkYXRhW2RiS2V5XSkNCiAgICAgICAgICAgICAgICAgICAgLy8gc2VsZWN0LnNldEF0dHJpYnV0ZSgibmFtZSIsIGRiS2V5KQ0KICAgICAgICAgICAgICAgICAgICAvLyBzZWxlY3Quc2V0QXR0cmlidXRlKCJpZCIsICJwb3B1cC1taXNzaW5nLWVwZyIpDQogICAgICAgICAgICAgICAgICAgIC8vIFRoZSB3b3JrYXJvdW5kIGlzIGN1cnJlbnRseSB0byBoYXJkIGNvZGUgdGhlIHhUZVZlIER1bW15IGRhdGENCiAgICAgICAgICAgICAgICAgICAgdmFyIGRiS2V5ID0gImRlZmF1bHRNaXNzaW5nRVBHIjsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGxpc3RPcHRpb25zID0geyAidGV4dCI6IFsiLSIsICIzMCBNaW51dGVzICgzMF9NaW51dGVzKSIsICI2MCBNaW51dGVzICg2MF9NaW51dGVzKSIsICI5MCBNaW51dGVzICg5MF9NaW51dGVzKSIsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgIjEyMCBNaW51dGVzICgxMjBfTWludXRlcykiLCAiMTgwIE1pbnV0ZXMgKDMwX01pbnV0ZXMpIiwgIjI0MCBNaW51dGVzICgzMF9NaW51dGVzKSIsICIzNjAgTWludXRlcyAoMzBfTWludXRlcykiXSwNCiAgICAgICAgICAgICAgICAgICAgICAgICJ2YWx1ZSI6IFsiLSIsICIzMF9NaW51dGVzIiwgIjYwX01pbnV0ZXMiLCAiOTBfTWludXRlcyIsICIxMjBfTWludXRlcyIsICIxODBfTWludXRlcyIsICIyNDBfTWludXRlcyIsICIzNjBfTWludXRlcyIsXSB9Ow0KICAgICAgICAgICAgICAgICAgICB2YXIgdGV4dCA9IGxpc3RPcHRpb25zWyJ0ZXh0Il07DQogICAgICAgICAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBsaXN0T3B0aW9uc1sidmFsdWUiXTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHNlbGVjdCA9IGNvbnRlbnQuY3JlYXRlU2VsZWN0KHRleHQsIHZhbHVlcywgZGF0YVtkYktleV0sIGRiS2V5KTsNCiAgICAgICAgICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LmZpbHRlci5kZWZhdWx0TWlzc2luZ0VQRy50aXRsZX19Iiwgc2VsZWN0KTsNCiAgICAgICAgICAgICAgICAgICAgY29udGVudC5kZXNjcmlwdGlvbigie3suZmlsdGVyLmRlZmF1bHRNaXNzaW5nRVBHLmRlc2NyaXB0aW9ufX0iKTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICB9DQogICAgICAgICAgICAvLyBJbnRlcmFjdGlvbg0KICAgICAgICAgICAgY29udGVudC5jcmVhdGVJbnRlcmFjdGlvbigpOw0KICAgICAgICAgICAgLy8gRGVsZXRlDQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAiZGVsZXRlIiwgInt7LmJ1dHRvbi5kZWxldGV9fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoImZpbHRlciIsICInICsgaWQgKyAnIiwgdHJ1ZSwgMCknKTsNCiAgICAgICAgICAgIGlucHV0LmNsYXNzTmFtZSA9ICJkZWxldGUiOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICAvLyBBYm9ydA0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImNhbmNlbCIsICJ7ey5idXR0b24uY2FuY2VsfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBzaG93RWxlbWVudCgicG9wdXAiLCBmYWxzZSk7Jyk7DQogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIC8vIFNhdmUNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJzYXZlIiwgInt7LmJ1dHRvbi5zYXZlfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBzYXZlUG9wdXBEYXRhKCJmaWx0ZXIiLCAiJyArIGlkICsgJyIsIGZhbHNlLCAwKScpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSAieG1sdHYiOg0KICAgICAgICAgICAgY29udGVudC5jcmVhdGVIZWFkbGluZShkYXRhVHlwZSk7DQogICAgICAgICAgICAvLyBOYW1lDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAibmFtZSI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3sueG1sdHYubmFtZS5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sueG1sdHYubmFtZS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgLy8gRGVzY3JpcHRpb24NCiAgICAgICAgICAgIHZhciBkYktleSA9ICJkZXNjcmlwdGlvbiI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3sueG1sdHYuZGVzY3JpcHRpb24ucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnhtbHR2LmRlc2NyaXB0aW9uLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBVUkwNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJmaWxlLnNvdXJjZSI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3sueG1sdHYuZmlsZVhNTFRWLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey54bWx0di5maWxlWE1MVFYudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIEludGVyYWN0aW9uDQogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUludGVyYWN0aW9uKCk7DQogICAgICAgICAgICAvLyBEZWxldGUNCiAgICAgICAgICAgIGlmIChkYXRhWyJpZC5wcm92aWRlciJdICE9ICItIikgew0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJkZWxldGUiLCAie3suYnV0dG9uLmRlbGV0ZX19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoInhtbHR2IiwgIicgKyBpZCArICciLCB0cnVlLCAwKScpOw0KICAgICAgICAgICAgICAgIGlucHV0LmNsYXNzTmFtZSA9ICJkZWxldGUiOw0KICAgICAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgLy8gQWJvcnQNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJjYW5jZWwiLCAie3suYnV0dG9uLmNhbmNlbH19Iik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogc2hvd0VsZW1lbnQoInBvcHVwIiwgZmFsc2UpOycpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICAvLyBVcGRhdGUNCiAgICAgICAgICAgIGlmIChkYXRhWyJpZC5wcm92aWRlciJdICE9ICItIikgew0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJ1cGRhdGUiLCAie3suYnV0dG9uLnVwZGF0ZX19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoInhtbHR2IiwgIicgKyBpZCArICciLCBmYWxzZSwgMSknKTsNCiAgICAgICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIC8vIFNhdmUNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJzYXZlIiwgInt7LmJ1dHRvbi5zYXZlfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBzYXZlUG9wdXBEYXRhKCJ4bWx0diIsICInICsgaWQgKyAnIiwgZmFsc2UsIDApJyk7DQogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJ1c2VycyI6DQogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUhlYWRsaW5lKCJ7ey5tYWluTWVudS5pdGVtLnVzZXJzfX0iKTsNCiAgICAgICAgICAgIC8vIFVzZXIgbmFtZQ0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gInVzZXJuYW1lIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey51c2Vycy51c2VybmFtZS5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sudXNlcnMudXNlcm5hbWUudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIE5ldyBQYXJzc3dvcmQNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJwYXNzd29yZCI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJwYXNzd29yZCIsIGRiS2V5LCAiIik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnVzZXJzLnBhc3N3b3JkLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey51c2Vycy5wYXNzd29yZC50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgLy8gQ29uZmlybWF0aW9uDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAiY29uZmlybSI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJwYXNzd29yZCIsIGRiS2V5LCAiIik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnVzZXJzLmNvbmZpcm0ucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnVzZXJzLmNvbmZpcm0udGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIEF1dGhlbnRpY2F0aW9uIFdFQg0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gImF1dGhlbnRpY2F0aW9uLndlYiI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KGRiS2V5KTsNCiAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhW2RiS2V5XTsNCiAgICAgICAgICAgIGlmIChkYXRhWyJkZWZhdWx0VXNlciJdID09IHRydWUpIHsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAiamF2YXNjcmlwdDogcmV0dXJuIGZhbHNlIik7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sudXNlcnMud2ViLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBBdXRoZW50aWNhdGlvbiBQTVMNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJhdXRoZW50aWNhdGlvbi5wbXMiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChkYktleSk7DQogICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YVtkYktleV07DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sudXNlcnMucG1zLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBBdXRoZW50aWNhdGlvbiBNM1UNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJhdXRoZW50aWNhdGlvbi5tM3UiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChkYktleSk7DQogICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YVtkYktleV07DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sudXNlcnMubTN1LnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBBdXRoZW50aWNhdGlvbiBYTUwNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJhdXRoZW50aWNhdGlvbi54bWwiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChkYktleSk7DQogICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YVtkYktleV07DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sudXNlcnMueG1sLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBBdXRoZW50aWNhdGlvbiBBUEkNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJhdXRoZW50aWNhdGlvbi5hcGkiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChkYktleSk7DQogICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YVtkYktleV07DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sudXNlcnMuYXBpLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBJbnRlcmFjdGlvbg0KICAgICAgICAgICAgY29udGVudC5jcmVhdGVJbnRlcmFjdGlvbigpOw0KICAgICAgICAgICAgLy8gRGVsZXRlDQogICAgICAgICAgICBpZiAoZGF0YVsiZGVmYXVsdFVzZXIiXSAhPSB0cnVlICYmIGlkICE9ICItIikgew0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJkZWxldGUiLCAie3suYnV0dG9uLmRlbGV0ZX19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuY2xhc3NOYW1lID0gImRlbGV0ZSI7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoIicgKyBkYXRhVHlwZSArICciLCAiJyArIGlkICsgJyIsIHRydWUsIDApJyk7DQogICAgICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICAvLyBBYm9ydA0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImNhbmNlbCIsICJ7ey5idXR0b24uY2FuY2VsfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBzaG93RWxlbWVudCgicG9wdXAiLCBmYWxzZSk7Jyk7DQogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIC8vIFNhdmUNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJzYXZlIiwgInt7LmJ1dHRvbi5zYXZlfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBzYXZlUG9wdXBEYXRhKCInICsgZGF0YVR5cGUgKyAnIiwgIicgKyBpZCArICciLCAiZmFsc2UiKTsnKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGNhc2UgIm1hcHBpbmciOg0KICAgICAgICAgICAgY29udGVudC5jcmVhdGVIZWFkbGluZSgie3subWFpbk1lbnUuaXRlbS5tYXBwaW5nfX0iKTsNCiAgICAgICAgICAgIC8vIEFjdGl2ZQ0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gIngtYWN0aXZlIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goZGJLZXkpOw0KICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGFbZGJLZXldOw0KICAgICAgICAgICAgaW5wdXQuaWQgPSAiYWN0aXZlIjsNCiAgICAgICAgICAgIC8vaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpDQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRvZ2dsZUNoYW5uZWxTdGF0dXMoJyIgKyBpZCArICInLCB0aGlzKSIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7Lm1hcHBpbmcuYWN0aXZlLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBDaGFubmVsIG5hbWUNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJ4LW5hbWUiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICBpZiAoQlVMS19FRElUID09IHRydWUpIHsNCiAgICAgICAgICAgICAgICBpbnB1dC5zdHlsZS5ib3JkZXIgPSAic29saWQgMXB4IHJlZCI7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJyZWFkb25seSIsICJ0cnVlIik7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3subWFwcGluZy5jaGFubmVsTmFtZS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgY29udGVudC5kZXNjcmlwdGlvbihkYXRhWyJuYW1lIl0pOw0KICAgICAgICAgICAgLy8gRGVzY3JpcHRpb24NCiAgICAgICAgICAgIHZhciBkYktleSA9ICJ4LWRlc2NyaXB0aW9uIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5tYXBwaW5nLmRlc2NyaXB0aW9uLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5tYXBwaW5nLmRlc2NyaXB0aW9uLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBVcGRhdGUgdGhlIGNoYW5uZWwgbmFtZQ0KICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoIl91dWlkLmtleSIpKSB7DQogICAgICAgICAgICAgICAgaWYgKGRhdGFbIl91dWlkLmtleSJdICE9ICIiKSB7DQogICAgICAgICAgICAgICAgICAgIHZhciBkYktleSA9ICJ4LXVwZGF0ZS1jaGFubmVsLW5hbWUiOw0KICAgICAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KGRiS2V5KTsNCiAgICAgICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YVtkYktleV07DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5tYXBwaW5nLnVwZGF0ZUNoYW5uZWxOYW1lLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgLy8gTG9nbyBVUkwgKENoYW5uZWwpIA0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gInR2Zy1sb2dvIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJpZCIsICJjaGFubmVsLWljb24iKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5tYXBwaW5nLmNoYW5uZWxMb2dvLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBDaGFubmVsIGxvZ28gdXBkYXRlDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAieC11cGRhdGUtY2hhbm5lbC1pY29uIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goZGJLZXkpOw0KICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGFbZGJLZXldOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJpZCIsICJ1cGRhdGUtaWNvbiIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJzsgY2hhbmdlQ2hhbm5lbExvZ28oJyIgKyBpZCArICInKTsiKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5tYXBwaW5nLnVwZGF0ZUNoYW5uZWxMb2dvLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBFeHBhbmQgRVBHIGNhdGVnb3J5DQogICAgICAgICAgICB2YXIgZGJLZXkgPSAieC1jYXRlZ29yeSI7DQogICAgICAgICAgICB2YXIgdGV4dCA9IFsiLSIsICJLaWRzIChFbWJ5IG9ubHkpIiwgIk5ld3MiLCAiTW92aWUiLCAiU2VyaWVzIiwgIlNwb3J0cyJdOw0KICAgICAgICAgICAgdmFyIHZhbHVlcyA9IFsiIiwgIktpZHMiLCAiTmV3cyIsICJNb3ZpZSIsICJTZXJpZXMiLCAiU3BvcnRzIl07DQogICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCBkYXRhW2RiS2V5XSwgZGJLZXkpOw0KICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5tYXBwaW5nLmVwZ0NhdGVnb3J5LnRpdGxlfX0iLCBzZWxlY3QpOw0KICAgICAgICAgICAgLy8gTTNVIGdyb3VwIHRpdGxlDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAieC1ncm91cC10aXRsZSI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgIGlucHV0LmRhdGFzZXQub2xkVmFsdWUgPSBkYXRhW2RiS2V5XTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5tYXBwaW5nLm0zdUdyb3VwVGl0bGUudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIGlmIChkYXRhWyJncm91cC10aXRsZSJdICE9IHVuZGVmaW5lZCkgew0KICAgICAgICAgICAgICAgIGNvbnRlbnQuZGVzY3JpcHRpb24oZGF0YVsiZ3JvdXAtdGl0bGUiXSk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBpZiAoZGF0YVsieC11cGRhdGUtY2hhbm5lbC1ncm91cCJdID09IHRydWUpIHsNCiAgICAgICAgICAgICAgICBpbnB1dC5kaXNhYmxlZCA9IHRydWU7DQogICAgICAgICAgICB9DQogICAgICAgICAgICAvLyBVcGRhdGUgY2hhbm5lbCBncm91cCBjaGVja2JveA0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gIngtdXBkYXRlLWNoYW5uZWwtZ3JvdXAiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChkYktleSk7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRvZ2dsZUdyb3VwVXBkYXRlQ2IoJyIgKyBpZCArICInLCB0aGlzKTsiKTsNCiAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhW2RiS2V5XTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5tYXBwaW5nLnVwZGF0ZUNoYW5uZWxHcm91cC50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgY29udGVudC5kZXNjcmlwdGlvbigie3subWFwcGluZy51cGRhdGVDaGFubmVsR3JvdXAuZGVzY3JpcHRpb259fSIpOw0KICAgICAgICAgICAgLy8gWE1MVFYgZmlsZQ0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gJ3gteG1sdHYtZmlsZSc7DQogICAgICAgICAgICBjb25zdCB4bWxUdkZpbGUgPSBkYXRhW2RiS2V5XTsNCiAgICAgICAgICAgIHZhciB4bWxUdiA9IG5ldyBYTUxUVkZpbGUoKTsNCiAgICAgICAgICAgIGNvbnN0IHhtbFR2RmlsZVNlbGVjdCA9IHhtbFR2LmdldEZpbGVzKGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIHhtbFR2RmlsZVNlbGVjdC5zZXRBdHRyaWJ1dGUoJ25hbWUnLCBkYktleSk7DQogICAgICAgICAgICB4bWxUdkZpbGVTZWxlY3Quc2V0QXR0cmlidXRlKCdpZCcsICdwb3B1cC14bWx0dicpOw0KICAgICAgICAgICAgeG1sVHZGaWxlU2VsZWN0LnNldEF0dHJpYnV0ZSgnb25jaGFuZ2UnLCBgamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCc7IHNldFhtbHR2Q2hhbm5lbCgnJHtpZH0nLCB0aGlzKTtgKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCd7ey5tYXBwaW5nLnhtbHR2RmlsZS50aXRsZX19JywgeG1sVHZGaWxlU2VsZWN0KTsNCiAgICAgICAgICAgIC8vIFhNTFRWIE1hcHBpbmcNCiAgICAgICAgICAgIHZhciBkYktleSA9ICd4LW1hcHBpbmcnOw0KICAgICAgICAgICAgdmFyIHhtbFR2ID0gbmV3IFhNTFRWRmlsZSgpOw0KICAgICAgICAgICAgY29uc3QgY3VycmVudFhtbFR2SWQgPSBkYXRhW2RiS2V5XTsNCiAgICAgICAgICAgIGNvbnN0IFt4bWxUdklkQ29udGFpbmVyLCB4bWxUdklkSW5wdXQsIHhtbFR2SWREYXRhbGlzdF0gPSB4bWxUdi5uZXdYbWxUdklkUGlja2VyKHhtbFR2RmlsZSwgY3VycmVudFhtbFR2SWQpOw0KICAgICAgICAgICAgeG1sVHZJZENvbnRhaW5lci5zZXRBdHRyaWJ1dGUoJ2lkJywgJ3htbHR2LWlkLXBpY2tlci1jb250YWluZXInKTsNCiAgICAgICAgICAgIHhtbFR2SWRJbnB1dC5zZXRBdHRyaWJ1dGUoJ2xpc3QnLCAneG1sdHYtaWQtcGlja2VyLWRhdGFsaXN0Jyk7DQogICAgICAgICAgICB4bWxUdklkSW5wdXQuc2V0QXR0cmlidXRlKCduYW1lJywgJ3gtbWFwcGluZycpOyAvLyBTaG91bGQgc3RheSB4LW1hcHBpbmcgYXMgaXQgd2lsbCBiZSB1c2VkIGluIGRvbmVQb3B1cERhdGEgdG8gbWFrZSBhIHNlcnZlciByZXF1ZXN0DQogICAgICAgICAgICB4bWxUdklkSW5wdXQuc2V0QXR0cmlidXRlKCdpZCcsICd4bWx0di1pZC1waWNrZXItaW5wdXQnKTsNCiAgICAgICAgICAgIHhtbFR2SWRJbnB1dC5zZXRBdHRyaWJ1dGUoJ29uY2hhbmdlJywgYGphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnOyBjaGVja1htbHR2Q2hhbm5lbCgnJHtpZH0nLCB0aGlzLCAnJHt4bWxUdkZpbGV9Jyk7YCk7DQogICAgICAgICAgICB4bWxUdklkRGF0YWxpc3Quc2V0QXR0cmlidXRlKCdpZCcsICd4bWx0di1pZC1waWNrZXItZGF0YWxpc3QnKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCd7ey5tYXBwaW5nLnhtbHR2Q2hhbm5lbC50aXRsZX19JywgeG1sVHZJZENvbnRhaW5lcik7DQogICAgICAgICAgICAvLyBUaW1lc2hpZnQNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJ4LXRpbWVzaGlmdCI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3subWFwcGluZy50aW1lc2hpZnQucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJpZCIsICJ0aW1lc2hpZnQiKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5tYXBwaW5nLnRpbWVzaGlmdC50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgLy8gSW50ZXJhY3Rpb24NCiAgICAgICAgICAgIGNvbnRlbnQuY3JlYXRlSW50ZXJhY3Rpb24oKTsNCiAgICAgICAgICAgIC8vIFVwbG9hZCBsb2dvDQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAiY2FuY2VsIiwgInt7LmJ1dHRvbi51cGxvYWRMb2dvfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiB1cGxvYWRMb2dvKCk7Jyk7DQogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIC8vIEFib3J0DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAiY2FuY2VsIiwgInt7LmJ1dHRvbi5jYW5jZWx9fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IHNob3dFbGVtZW50KCJwb3B1cCIsIGZhbHNlKTsnKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgLy8gRmluaXNoZWQNCiAgICAgICAgICAgIHZhciBpZHMgPSBbXTsNCiAgICAgICAgICAgIGlkcyA9IGdldEFsbFNlbGVjdGVkQ2hhbm5lbHMoKTsNCiAgICAgICAgICAgIGlmIChpZHMubGVuZ3RoID09IDApIHsNCiAgICAgICAgICAgICAgICBpZHMucHVzaChpZCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAic2F2ZSIsICJ7ey5idXR0b24uZG9uZX19Iik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogZG9uZVBvcHVwRGF0YSgiJyArIGRhdGFUeXBlICsgJyIsICInICsgaWRzICsgJyIsICJmYWxzZSIpOycpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgIGJyZWFrOw0KICAgIH0NCiAgICBzaG93UG9wVXBFbGVtZW50KCdwb3B1cC1jdXN0b20nKTsNCn0NCmNsYXNzIFhNTFRWRmlsZSB7DQogICAgZ2V0RmlsZXMoc2V0KSB7DQogICAgICAgIGxldCBmaWxlSURzID0gZ2V0T3duT2JqUHJvcHMoU0VSVkVSWyJ4ZXBnIl1bInhtbHR2TWFwIl0pOw0KICAgICAgICBsZXQgdmFsdWVzID0gbmV3IEFycmF5KCItIik7DQogICAgICAgIGxldCB0ZXh0ID0gbmV3IEFycmF5KCItIik7DQogICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgZmlsZUlEcy5sZW5ndGg7IGkrKykgew0KICAgICAgICAgICAgaWYgKGZpbGVJRHNbaV0gIT0gInhUZVZlIER1bW15Iikgew0KICAgICAgICAgICAgICAgIHZhbHVlcy5wdXNoKGdldFZhbHVlRnJvbVByb3ZpZGVyRmlsZShmaWxlSURzW2ldLCAieG1sdHYiLCAiZmlsZS54dGV2ZSIpKTsNCiAgICAgICAgICAgICAgICB0ZXh0LnB1c2goZ2V0VmFsdWVGcm9tUHJvdmlkZXJGaWxlKGZpbGVJRHNbaV0sICJ4bWx0diIsICJuYW1lIikpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgZWxzZSB7DQogICAgICAgICAgICAgICAgdmFsdWVzLnB1c2goZmlsZUlEc1tpXSk7DQogICAgICAgICAgICAgICAgdGV4dC5wdXNoKGZpbGVJRHNbaV0pOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQogICAgICAgIGxldCBzZWxlY3QgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJTRUxFQ1QiKTsNCiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0ZXh0Lmxlbmd0aDsgaSsrKSB7DQogICAgICAgICAgICB2YXIgb3B0aW9uID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiT1BUSU9OIik7DQogICAgICAgICAgICBvcHRpb24uc2V0QXR0cmlidXRlKCJ2YWx1ZSIsIHZhbHVlc1tpXSk7DQogICAgICAgICAgICBvcHRpb24uaW5uZXJUZXh0ID0gdGV4dFtpXTsNCiAgICAgICAgICAgIHNlbGVjdC5hcHBlbmRDaGlsZChvcHRpb24pOw0KICAgICAgICB9DQogICAgICAgIGlmIChzZXQgIT0gIiIpIHsNCiAgICAgICAgICAgIHNlbGVjdC52YWx1ZSA9IHNldDsNCiAgICAgICAgfQ0KICAgICAgICByZXR1cm4gc2VsZWN0Ow0KICAgIH0NCiAgICAvLyBUT0RPOiBEaXNwbGF5IEZVTEwgbGlzdCwgc2VlOg0KICAgIC8vID4gaHR0cHM6Ly9zdGFja292ZXJmbG93LmNvbS9xdWVzdGlvbnMvMzc0Nzg3MjcvaG93LWNhbi1pLW1ha2UtYS1icm93c2VyLWRpc3BsYXktYWxsLWRhdGFsaXN0LW9wdGlvbnMtd2hlbi1hLWRlZmF1bHQtdmFsdWUtaXMtc2UNCiAgICAvLyA+IGh0dHBzOi8vd3d3LmhvbmdraWF0LmNvbS9ibG9nL3NlYXJjaC1zZWxlY3QtdXNpbmctZGF0YWxpc3QvDQogICAgLy8gPiBodHRwczovL2pxdWVyeXVpLmNvbS9hdXRvY29tcGxldGUvI2NvbWJvYm94IE9SIGh0dHBzOi8vc2VsZWN0Mi5vcmcvZHJvcGRvd24NCiAgICAvKioNCiAgICAgKiBAcGFyYW0geG1sVHZGaWxlIFhNTCBmaWxlIHBhdGggdG8gZ2V0IEVQRyBmcm9tLg0KICAgICAqIEBwYXJhbSBjdXJyZW50WG1sVHZJZCBDdXJyZW50IFhNTFRWIElEIHRvIHNldCBpbml0aWFsIGlucHV0IHZhbHVlIHRvLg0KICAgICAqIEByZXR1cm5zIEFycmF5IG9mLCBzZXF1ZW50aWFsbHk6DQogICAgICogMSkgQ29udGFpbmVyIG9mIHRoZSBwaWNrZXIuDQogICAgICogMikgSW5wdXQgZmllbGQgdG8gdHlwZSBhdCBhbmQgZ2V0IGNob2ljZSBmcm9tLg0KICAgICAqIDMpIERhdGFsaXN0IGNvbnRhaW5pbmcgZXZlcnkgb3B0aW9uLg0KICAgICAqLw0KICAgIG5ld1htbFR2SWRQaWNrZXIoeG1sVHZGaWxlLCBjdXJyZW50WG1sVHZJZCkgew0KICAgICAgICBjb25zdCBjb250YWluZXIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsNCiAgICAgICAgY29uc3QgaW5wdXQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdpbnB1dCcpOw0KICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoJ3R5cGUnLCAndGV4dCcpOw0KICAgICAgICBpbnB1dC52YWx1ZSA9IGN1cnJlbnRYbWxUdklkID8gY3VycmVudFhtbFR2SWQgOiAnLSc7DQogICAgICAgIGNvbnRhaW5lci5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgIGNvbnN0IGRhdGFsaXN0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGF0YWxpc3QnKTsNCiAgICAgICAgY29uc3Qgb3B0aW9uID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnb3B0aW9uJyk7DQogICAgICAgIG9wdGlvbi5zZXRBdHRyaWJ1dGUoJ3ZhbHVlJywgJy0nKTsNCiAgICAgICAgb3B0aW9uLmlubmVyVGV4dCA9ICctJzsNCiAgICAgICAgZGF0YWxpc3QuYXBwZW5kQ2hpbGQob3B0aW9uKTsNCiAgICAgICAgY29uc3QgZXBnID0gU0VSVkVSWyd4ZXBnJ11bJ3htbHR2TWFwJ11beG1sVHZGaWxlXTsNCiAgICAgICAgaWYgKGVwZykgew0KICAgICAgICAgICAgY29uc3QgcHJvZ3JhbUlkcyA9IGdldE93bk9ialByb3BzKGVwZyk7DQogICAgICAgICAgICBwcm9ncmFtSWRzLmZvckVhY2goKHByb2dyYW1JZCkgPT4gew0KICAgICAgICAgICAgICAgIGNvbnN0IHByb2dyYW0gPSBlcGdbcHJvZ3JhbUlkXTsNCiAgICAgICAgICAgICAgICBpZiAocHJvZ3JhbS5oYXNPd25Qcm9wZXJ0eSgnZGlzcGxheS1uYW1lcycpKSB7DQogICAgICAgICAgICAgICAgICAgIHByb2dyYW1bJ2Rpc3BsYXktbmFtZXMnXS5mb3JFYWNoKChkaXNwbGF5TmFtZSkgPT4gew0KICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgb3B0aW9uID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnb3B0aW9uJyk7DQogICAgICAgICAgICAgICAgICAgICAgICBvcHRpb24uc2V0QXR0cmlidXRlKCd2YWx1ZScsIHByb2dyYW1JZCk7DQogICAgICAgICAgICAgICAgICAgICAgICBvcHRpb24uaW5uZXJUZXh0ID0gZGlzcGxheU5hbWVbJ1ZhbHVlJ107DQogICAgICAgICAgICAgICAgICAgICAgICBkYXRhbGlzdC5hcHBlbmRDaGlsZChvcHRpb24pOw0KICAgICAgICAgICAgICAgICAgICB9KTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgZWxzZSB7DQogICAgICAgICAgICAgICAgICAgIGNvbnN0IG9wdGlvbiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ29wdGlvbicpOw0KICAgICAgICAgICAgICAgICAgICBvcHRpb24uc2V0QXR0cmlidXRlKCd2YWx1ZScsIHByb2dyYW1JZCk7DQogICAgICAgICAgICAgICAgICAgIG9wdGlvbi5pbm5lclRleHQgPSAnLSc7DQogICAgICAgICAgICAgICAgICAgIGRhdGFsaXN0LmFwcGVuZENoaWxkKG9wdGlvbik7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfSk7DQogICAgICAgIH0NCiAgICAgICAgY29udGFpbmVyLmFwcGVuZENoaWxkKGRhdGFsaXN0KTsNCiAgICAgICAgcmV0dXJuIFtjb250YWluZXIsIGlucHV0LCBkYXRhbGlzdF07DQogICAgfQ0KfQ0KZnVuY3Rpb24gZ2V0VmFsdWVGcm9tUHJvdmlkZXJGaWxlKGZpbGUsIGZpbGVUeXBlLCBrZXkpIHsNCiAgICBpZiAoZmlsZSA9PSAieFRlVmUgRHVtbXkiKSB7DQogICAgICAgIHJldHVybiBmaWxlOw0KICAgIH0NCiAgICBsZXQgZmlsZUlEOw0KICAgIGxldCBpbmRpY2F0b3IgPSBmaWxlLmNoYXJBdCgwKTsNCiAgICBzd2l0Y2ggKGluZGljYXRvcikgew0KICAgICAgICBjYXNlICJNIjoNCiAgICAgICAgICAgIGZpbGVUeXBlID0gIm0zdSI7DQogICAgICAgICAgICBmaWxlSUQgPSBmaWxlOw0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGNhc2UgIkgiOg0KICAgICAgICAgICAgZmlsZVR5cGUgPSAiaGRociI7DQogICAgICAgICAgICBmaWxlSUQgPSBmaWxlOw0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGNhc2UgIlgiOg0KICAgICAgICAgICAgZmlsZVR5cGUgPSAieG1sdHYiOw0KICAgICAgICAgICAgZmlsZUlEID0gZmlsZS5zdWJzdHJpbmcoMCwgZmlsZS5sYXN0SW5kZXhPZignLicpKTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgIH0NCiAgICBpZiAoU0VSVkVSWyJzZXR0aW5ncyJdWyJmaWxlcyJdW2ZpbGVUeXBlXS5oYXNPd25Qcm9wZXJ0eShmaWxlSUQpID09IHRydWUpIHsNCiAgICAgICAgdmFyIGRhdGEgPSBTRVJWRVJbInNldHRpbmdzIl1bImZpbGVzIl1bZmlsZVR5cGVdW2ZpbGVJRF07DQogICAgICAgIHJldHVybiBkYXRhW2tleV07DQogICAgfQ0KICAgIHJldHVybjsNCn0NCmZ1bmN0aW9uIHNldFhtbHR2Q2hhbm5lbChlcGdNYXBJZCwgeG1sVHZGaWxlU2VsZWN0KSB7DQogICAgY29uc3QgeG1sVHYgPSBuZXcgWE1MVFZGaWxlKCk7DQogICAgY29uc3QgbmV3WG1sVHZGaWxlID0geG1sVHZGaWxlU2VsZWN0LnZhbHVlOw0KICAgIC8vIFJlbW92ZSBvbGQgWE1MVFYgSUQgc2VsZWN0aW9uIGJveA0KICAgIGNvbnN0IHhtbFR2SWRQaWNrZXJQYXJlbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgneG1sdHYtaWQtcGlja2VyLWNvbnRhaW5lcicpLnBhcmVudEVsZW1lbnQ7DQogICAgeG1sVHZJZFBpY2tlclBhcmVudC5pbm5lckhUTUwgPSAnJzsNCiAgICAvLyBDcmVhdGUgbmV3IFhNTFRWIElEIHNlbGVjdGlvbiBib3gNCiAgICBjb25zdCB0dmdJZCA9IFNFUlZFUlsneGVwZyddWydlcGdNYXBwaW5nJ11bZXBnTWFwSWRdWyd0dmctaWQnXTsNCiAgICBjb25zdCBbeG1sVHZJZENvbnRhaW5lciwgeG1sVHZJZElucHV0LCB4bWxUdklkRGF0YWxpc3RdID0geG1sVHYubmV3WG1sVHZJZFBpY2tlcihuZXdYbWxUdkZpbGUsIHR2Z0lkKTsNCiAgICB4bWxUdklkQ29udGFpbmVyLnNldEF0dHJpYnV0ZSgnaWQnLCAneG1sdHYtaWQtcGlja2VyLWNvbnRhaW5lcicpOw0KICAgIHhtbFR2SWRJbnB1dC5zZXRBdHRyaWJ1dGUoJ2xpc3QnLCAneG1sdHYtaWQtcGlja2VyLWRhdGFsaXN0Jyk7DQogICAgeG1sVHZJZElucHV0LnNldEF0dHJpYnV0ZSgnbmFtZScsICd4LW1hcHBpbmcnKTsgLy8gU2hvdWxkIHN0YXkgeC1tYXBwaW5nIGFzIGl0IHdpbGwgYmUgdXNlZCBpbiBkb25lUG9wdXBEYXRhIHRvIG1ha2UgYSBzZXJ2ZXIgcmVxdWVzdA0KICAgIHhtbFR2SWRJbnB1dC5zZXRBdHRyaWJ1dGUoJ2lkJywgJ3htbHR2LWlkLXBpY2tlci1pbnB1dCcpOw0KICAgIHhtbFR2SWRJbnB1dC5zZXRBdHRyaWJ1dGUoJ29uY2hhbmdlJywgYGphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnOyBjaGVja1htbHR2Q2hhbm5lbCgnJHtlcGdNYXBJZH0nLCB0aGlzLCAnJHtuZXdYbWxUdkZpbGV9Jyk7YCk7DQogICAgeG1sVHZJZElucHV0LmNsYXNzTGlzdC5hZGQoJ2NoYW5nZWQnKTsNCiAgICB4bWxUdklkRGF0YWxpc3Quc2V0QXR0cmlidXRlKCdpZCcsICd4bWx0di1pZC1waWNrZXItZGF0YWxpc3QnKTsNCiAgICAvLyBBZGQgbmV3IFhNTFRWIElEIHNlbGVjdGlvbiBib3ggdG8gaXQncyBwYXJlbnQNCiAgICB4bWxUdklkUGlja2VyUGFyZW50LmFwcGVuZENoaWxkKHhtbFR2SWRDb250YWluZXIpOw0KICAgIGNoZWNrWG1sdHZDaGFubmVsKGVwZ01hcElkLCB4bWxUdklkSW5wdXQsIG5ld1htbFR2RmlsZSk7DQp9DQpmdW5jdGlvbiBjaGVja1htbHR2Q2hhbm5lbChlcGdNYXBJZCwgeG1sVHZJZElucHV0LCB4bWxUdkZpbGUpIHsNCiAgICAvLyBJZiBlbXB0eSwgc2V0IHRvICctJw0KICAgIHhtbFR2SWRJbnB1dC52YWx1ZSA9IHhtbFR2SWRJbnB1dC52YWx1ZSA/IHhtbFR2SWRJbnB1dC52YWx1ZSA6ICctJzsNCiAgICBjb25zdCBuZXdYbWxUdklkID0geG1sVHZJZElucHV0LnZhbHVlOw0KICAgIGNvbnN0IGNoYW5uZWxBY3RpdmVDYiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdhY3RpdmUnKTsNCiAgICBjb25zdCBjaGFubmVsQWN0aXZlID0gbmV3WG1sVHZJZCAhPSAnLSc7DQogICAgY2hhbm5lbEFjdGl2ZUNiLmNoZWNrZWQgPSBjaGFubmVsQWN0aXZlOw0KICAgIGNoYW5uZWxBY3RpdmVDYi5jbGFzc05hbWUgPSAnY2hhbmdlZCc7DQogICAgaWYgKHhtbFR2RmlsZSAhPSAneFRlVmUgRHVtbXknICYmIGNoYW5uZWxBY3RpdmUgPT0gdHJ1ZSkgew0KICAgICAgICBjaGFuZ2VDaGFubmVsTG9nbyhlcGdNYXBJZCk7DQogICAgICAgIHJldHVybjsNCiAgICB9DQogICAgaWYgKHhtbFR2RmlsZSA9PSAneFRlVmUgRHVtbXknKSB7DQogICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd1cGRhdGUtaWNvbicpLmNoZWNrZWQgPSBmYWxzZTsNCiAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3VwZGF0ZS1pY29uJykuY2xhc3NOYW1lID0gJ2NoYW5nZWQnOw0KICAgIH0NCn0NCmZ1bmN0aW9uIGNoYW5nZUNoYW5uZWxMb2dvKGVwZ01hcElkKSB7DQogICAgY29uc3QgY2hhbm5lbCA9IFNFUlZFUlsneGVwZyddWydlcGdNYXBwaW5nJ11bZXBnTWFwSWRdOw0KICAgIGNvbnN0IHhtbFR2RmlsZVNlbGVjdCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdwb3B1cC14bWx0dicpOw0KICAgIGNvbnN0IHhtbFR2RmlsZSA9IHhtbFR2RmlsZVNlbGVjdC5vcHRpb25zW3htbFR2RmlsZVNlbGVjdC5zZWxlY3RlZEluZGV4XS52YWx1ZTsNCiAgICBjb25zdCB4bWxUdklkSW5wdXQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgneG1sdHYtaWQtcGlja2VyLWlucHV0Jyk7DQogICAgY29uc3QgbmV3WG1sVHZJZCA9IHhtbFR2SWRJbnB1dC52YWx1ZTsNCiAgICBjb25zdCB4bWxUdkxvZ28gPSBTRVJWRVJbJ3hlcGcnXVsneG1sdHZNYXAnXVt4bWxUdkZpbGVdW25ld1htbFR2SWRdWydpY29uJ107DQogICAgY29uc3QgdXBkYXRlTG9nbyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd1cGRhdGUtaWNvbicpLmNoZWNrZWQ7DQogICAgbGV0IGxvZ287DQogICAgaWYgKHVwZGF0ZUxvZ28gPT0gdHJ1ZSAmJiB4bWxUdkZpbGUgIT0gJ3hUZVZlIER1bW15Jykgew0KICAgICAgICBpZiAoU0VSVkVSWyd4ZXBnJ11bJ3htbHR2TWFwJ11beG1sVHZGaWxlXS5oYXNPd25Qcm9wZXJ0eShuZXdYbWxUdklkKSkgew0KICAgICAgICAgICAgbG9nbyA9IHhtbFR2TG9nbzsNCiAgICAgICAgfQ0KICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgIGxvZ28gPSBjaGFubmVsWyd0dmctbG9nbyddOw0KICAgICAgICB9DQogICAgICAgIHZhciBsb2dvSW5wdXQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY2hhbm5lbC1pY29uJyk7DQogICAgICAgIGxvZ29JbnB1dC52YWx1ZSA9IGxvZ287DQogICAgICAgIGlmIChCVUxLX0VESVQgPT0gZmFsc2UpIHsNCiAgICAgICAgICAgIGxvZ29JbnB1dC5jbGFzc05hbWUgPSAnY2hhbmdlZCc7DQogICAgICAgIH0NCiAgICB9DQp9DQpmdW5jdGlvbiBzYXZlUG9wdXBEYXRhKGRhdGFUeXBlLCBpZCwgcmVtb3ZlLCBvcHRpb24pIHsNCiAgICBpZiAoZGF0YVR5cGUgPT0gIm1hcHBpbmciKSB7DQogICAgICAgIGxldCBkYXRhID0ge307DQogICAgICAgIGxldCBjbWQgPSAic2F2ZUVwZ01hcHBpbmciOw0KICAgICAgICBkYXRhWyJlcGdNYXBwaW5nIl0gPSBTRVJWRVJbInhlcGciXVsiZXBnTWFwcGluZyJdOw0KICAgICAgICBsZXQgc2VydmVyID0gbmV3IFNlcnZlcihjbWQpOw0KICAgICAgICBzZXJ2ZXIucmVxdWVzdChkYXRhKTsNCiAgICAgICAgZGVsZXRlIFVORE9bImVwZ01hcHBpbmciXTsNCiAgICAgICAgcmV0dXJuOw0KICAgIH0NCiAgICBsZXQgZGl2ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInBvcHVwLWN1c3RvbSIpOw0KICAgIGxldCBpbnB1dHMgPSBkaXYuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlRBQkxFIilbMF0uZ2V0RWxlbWVudHNCeVRhZ05hbWUoIklOUFVUIik7DQogICAgbGV0IHNlbGVjdHMgPSBkaXYuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlRBQkxFIilbMF0uZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlNFTEVDVCIpOw0KICAgIGxldCBpbnB1dCA9IHt9Ow0KICAgIGxldCBjb25maXJtTXNnOw0KICAgIGZvciAobGV0IGkgPSAwOyBpIDwgc2VsZWN0cy5sZW5ndGg7IGkrKykgew0KICAgICAgICB2YXIgbmFtZTsNCiAgICAgICAgbmFtZSA9IHNlbGVjdHNbaV0ubmFtZTsNCiAgICAgICAgdmFyIHZhbHVlID0gc2VsZWN0c1tpXS52YWx1ZTsNCiAgICAgICAgc3dpdGNoIChuYW1lKSB7DQogICAgICAgICAgICBjYXNlICJ0dW5lciI6DQogICAgICAgICAgICAgICAgaW5wdXRbbmFtZV0gPSBwYXJzZUludCh2YWx1ZSk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBkZWZhdWx0Og0KICAgICAgICAgICAgICAgIGlucHV0W25hbWVdID0gdmFsdWU7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIH0NCiAgICB9DQogICAgZm9yIChsZXQgaSA9IDA7IGkgPCBpbnB1dHMubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgc3dpdGNoIChpbnB1dHNbaV0udHlwZSkgew0KICAgICAgICAgICAgY2FzZSAiY2hlY2tib3giOg0KICAgICAgICAgICAgICAgIG5hbWUgPSBpbnB1dHNbaV0ubmFtZTsNCiAgICAgICAgICAgICAgICBpbnB1dFtuYW1lXSA9IGlucHV0c1tpXS5jaGVja2VkOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAidGV4dCI6DQogICAgICAgICAgICBjYXNlICJoaWRkZW4iOg0KICAgICAgICAgICAgY2FzZSAicGFzc3dvcmQiOg0KICAgICAgICAgICAgICAgIG5hbWUgPSBpbnB1dHNbaV0ubmFtZTsNCiAgICAgICAgICAgICAgICBzd2l0Y2ggKG5hbWUpIHsNCiAgICAgICAgICAgICAgICAgICAgY2FzZSAidHVuZXIiOg0KICAgICAgICAgICAgICAgICAgICAgICAgaW5wdXRbbmFtZV0gPSBwYXJzZUludChpbnB1dHNbaV0udmFsdWUpOw0KICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICAgICAgICAgICAgICBpbnB1dFtuYW1lXSA9IGlucHV0c1tpXS52YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgfQ0KICAgIH0NCiAgICBsZXQgZGF0YSA9IHt9Ow0KICAgIGxldCBjbWQ7DQogICAgaWYgKHJlbW92ZSA9PSB0cnVlKSB7DQogICAgICAgIGlucHV0WyJkZWxldGUiXSA9IHRydWU7DQogICAgfQ0KICAgIHN3aXRjaCAoZGF0YVR5cGUpIHsNCiAgICAgICAgY2FzZSAidXNlcnMiOg0KICAgICAgICAgICAgY29uZmlybU1zZyA9ICJEZWxldGUgdGhpcyB1c2VyPyI7DQogICAgICAgICAgICBpZiAoaWQgPT0gIi0iKSB7DQogICAgICAgICAgICAgICAgY21kID0gInNhdmVOZXdVc2VyIjsNCiAgICAgICAgICAgICAgICBkYXRhWyJ1c2VyRGF0YSJdID0gaW5wdXQ7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICBjbWQgPSAic2F2ZVVzZXJEYXRhIjsNCiAgICAgICAgICAgICAgICBsZXQgZCA9IHt9Ow0KICAgICAgICAgICAgICAgIGRbaWRdID0gaW5wdXQ7DQogICAgICAgICAgICAgICAgZGF0YVsidXNlckRhdGEiXSA9IGQ7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSAibTN1IjoNCiAgICAgICAgICAgIGNvbmZpcm1Nc2cgPSAiRGVsZXRlIHRoaXMgcGxheWxpc3Q/IjsNCiAgICAgICAgICAgIHN3aXRjaCAob3B0aW9uKSB7DQogICAgICAgICAgICAgICAgLy8gUG9wdXA6IFNhdmUNCiAgICAgICAgICAgICAgICBjYXNlIDA6DQogICAgICAgICAgICAgICAgICAgIGNtZCA9ICJzYXZlRmlsZXNNM1UiOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICAvLyBQb3B1cDogVXBkYXRlDQogICAgICAgICAgICAgICAgY2FzZSAxOg0KICAgICAgICAgICAgICAgICAgICBjbWQgPSAidXBkYXRlRmlsZU0zVSI7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgZGF0YVsiZmlsZXMiXSA9IHt9Ow0KICAgICAgICAgICAgZGF0YVsiZmlsZXMiXVtkYXRhVHlwZV0gPSB7fTsNCiAgICAgICAgICAgIGRhdGFbImZpbGVzIl1bZGF0YVR5cGVdW2lkXSA9IGlucHV0Ow0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGNhc2UgImhkaHIiOg0KICAgICAgICAgICAgY29uZmlybU1zZyA9ICJEZWxldGUgdGhpcyBIREhvbWVSdW4gdHVuZXI/IjsNCiAgICAgICAgICAgIHN3aXRjaCAob3B0aW9uKSB7DQogICAgICAgICAgICAgICAgLy8gUG9wdXA6IFNhdmUNCiAgICAgICAgICAgICAgICBjYXNlIDA6DQogICAgICAgICAgICAgICAgICAgIGNtZCA9ICJzYXZlRmlsZXNIREhSIjsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgLy8gUG9wdXA6IFVwZGF0ZQ0KICAgICAgICAgICAgICAgIGNhc2UgMToNCiAgICAgICAgICAgICAgICAgICAgY21kID0gInVwZGF0ZUZpbGVIREhSIjsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBkYXRhWyJmaWxlcyJdID0ge307DQogICAgICAgICAgICBkYXRhWyJmaWxlcyJdW2RhdGFUeXBlXSA9IHt9Ow0KICAgICAgICAgICAgZGF0YVsiZmlsZXMiXVtkYXRhVHlwZV1baWRdID0gaW5wdXQ7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSAieG1sdHYiOg0KICAgICAgICAgICAgY29uZmlybU1zZyA9ICJEZWxldGUgdGhpcyBYTUxUViBmaWxlPyI7DQogICAgICAgICAgICBzd2l0Y2ggKG9wdGlvbikgew0KICAgICAgICAgICAgICAgIC8vIFBvcHVwOiBTYXZlDQogICAgICAgICAgICAgICAgY2FzZSAwOg0KICAgICAgICAgICAgICAgICAgICBjbWQgPSAic2F2ZUZpbGVzWE1MVFYiOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICAvLyBQb3B1cDogVXBkYXRlDQogICAgICAgICAgICAgICAgY2FzZSAxOg0KICAgICAgICAgICAgICAgICAgICBjbWQgPSAidXBkYXRlRmlsZVhNTFRWIjsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBkYXRhWyJmaWxlcyJdID0ge307DQogICAgICAgICAgICBkYXRhWyJmaWxlcyJdW2RhdGFUeXBlXSA9IHt9Ow0KICAgICAgICAgICAgZGF0YVsiZmlsZXMiXVtkYXRhVHlwZV1baWRdID0gaW5wdXQ7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSAiZmlsdGVyIjoNCiAgICAgICAgICAgIGNvbmZpcm1Nc2cgPSAiRGVsZXRlIHRoaXMgZmlsdGVyPyI7DQogICAgICAgICAgICBjbWQgPSAic2F2ZUZpbHRlciI7DQogICAgICAgICAgICBkYXRhWyJmaWx0ZXIiXSA9IHt9Ow0KICAgICAgICAgICAgZGF0YVsiZmlsdGVyIl1baWRdID0gaW5wdXQ7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgIHJldHVybjsNCiAgICB9DQogICAgaWYgKHJlbW92ZSA9PSB0cnVlKSB7DQogICAgICAgIGlmICghY29uZmlybShjb25maXJtTXNnKSkgew0KICAgICAgICAgICAgc2hvd0VsZW1lbnQoInBvcHVwIiwgZmFsc2UpOw0KICAgICAgICAgICAgcmV0dXJuOw0KICAgICAgICB9DQogICAgfQ0KICAgIGxldCBzZXJ2ZXIgPSBuZXcgU2VydmVyKGNtZCk7DQogICAgc2VydmVyLnJlcXVlc3QoZGF0YSk7DQp9DQpmdW5jdGlvbiBkb25lUG9wdXBEYXRhKGRhdGFUeXBlLCBpZHNTdHIpIHsNCiAgICBsZXQgaWRzID0gaWRzU3RyLnNwbGl0KCcsJyk7DQogICAgbGV0IGRpdiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJwb3B1cC1jdXN0b20iKTsNCiAgICBsZXQgaW5wdXRzID0gZGl2LmdldEVsZW1lbnRzQnlDbGFzc05hbWUoImNoYW5nZWQiKTsNCiAgICBpZHMuZm9yRWFjaChpZCA9PiB7DQogICAgICAgIGxldCBpbnB1dDsNCiAgICAgICAgaW5wdXQgPSBTRVJWRVJbInhlcGciXVsiZXBnTWFwcGluZyJdW2lkXTsNCiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBpbnB1dHMubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgICAgIGxldCBuYW1lOw0KICAgICAgICAgICAgbGV0IHZhbHVlOw0KICAgICAgICAgICAgc3dpdGNoIChpbnB1dHNbaV0udGFnTmFtZSkgew0KICAgICAgICAgICAgICAgIGNhc2UgIklOUFVUIjoNCiAgICAgICAgICAgICAgICAgICAgc3dpdGNoIChpbnB1dHNbaV0udHlwZSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAiY2hlY2tib3giOg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWUgPSBpbnB1dHNbaV0ubmFtZTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IGlucHV0c1tpXS5jaGVja2VkOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlucHV0W25hbWVdID0gdmFsdWU7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgICAgICAgICBjYXNlICJ0ZXh0IjoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lID0gaW5wdXRzW2ldLm5hbWU7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSBpbnB1dHNbaV0udmFsdWU7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5wdXRbbmFtZV0gPSB2YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBjYXNlICJTRUxFQ1QiOg0KICAgICAgICAgICAgICAgICAgICBuYW1lID0gaW5wdXRzW2ldLm5hbWU7DQogICAgICAgICAgICAgICAgICAgIHZhbHVlID0gaW5wdXRzW2ldLnZhbHVlOw0KICAgICAgICAgICAgICAgICAgICBpbnB1dFtuYW1lXSA9IHZhbHVlOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIHN3aXRjaCAobmFtZSkgew0KICAgICAgICAgICAgICAgIGNhc2UgInR2Zy1sb2dvIjoNCiAgICAgICAgICAgICAgICAgICAgLy8oZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpLmNoaWxkTm9kZXNbMl0uZmlyc3RDaGlsZCBhcyBIVE1MRWxlbWVudCkuc2V0QXR0cmlidXRlKCJzcmMiLCB2YWx1ZSkNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAieC1uYW1lIjoNCiAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpLmNoaWxkTm9kZXNbM10uZmlyc3RDaGlsZC5pbm5lckhUTUwgPSB2YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAieC1jYXRlZ29yeSI6DQogICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5jaGlsZE5vZGVzWzNdLmZpcnN0Q2hpbGQuY2xhc3NOYW1lID0gdmFsdWU7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgIngtZ3JvdXAtdGl0bGUiOg0KICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkuY2hpbGROb2Rlc1s1XS5maXJzdENoaWxkLmlubmVySFRNTCA9IHZhbHVlOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBjYXNlICJ4LXhtbHR2LWZpbGUiOg0KICAgICAgICAgICAgICAgICAgICBpZiAodmFsdWUgIT0gInhUZVZlIER1bW15IiAmJiB2YWx1ZSAhPSAiLSIpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlID0gZ2V0VmFsdWVGcm9tUHJvdmlkZXJGaWxlKHZhbHVlLCAieG1sdHYiLCAibmFtZSIpOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIGlmICh2YWx1ZSA9PSAiLSIpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGlucHV0WyJ4LWFjdGl2ZSJdID0gZmFsc2U7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpLmNoaWxkTm9kZXNbNl0uZmlyc3RDaGlsZC5pbm5lckhUTUwgPSB2YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAieC1tYXBwaW5nIjoNCiAgICAgICAgICAgICAgICAgICAgaWYgKHZhbHVlID09ICItIikgew0KICAgICAgICAgICAgICAgICAgICAgICAgaW5wdXRbIngtYWN0aXZlIl0gPSBmYWxzZTsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkuY2hpbGROb2Rlc1s3XS5maXJzdENoaWxkLmlubmVySFRNTCA9IHZhbHVlOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBjYXNlICJ4LXRpbWVzaGlmdCI6DQogICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5jaGlsZE5vZGVzWzhdLmZpcnN0Q2hpbGQuaW5uZXJIVE1MID0gdmFsdWU7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICB9DQogICAgICAgICAgICBjcmVhdGVTZWFyY2hPYmooKTsNCiAgICAgICAgICAgIHNlYXJjaEluTWFwcGluZygpOw0KICAgICAgICB9DQogICAgICAgIGlmIChpbnB1dFsieC1hY3RpdmUiXSA9PSBmYWxzZSkgew0KICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpLmNsYXNzTmFtZSA9ICJub3RBY3RpdmVFUEciOw0KICAgICAgICB9DQogICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpLmNsYXNzTmFtZSA9ICJhY3RpdmVFUEciOw0KICAgICAgICB9DQogICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5jaGlsZE5vZGVzWzJdLmZpcnN0Q2hpbGQuc2V0QXR0cmlidXRlKCJzcmMiLCBpbnB1dFsidHZnLWxvZ28iXSk7DQogICAgfSk7DQogICAgc2hvd0VsZW1lbnQoInBvcHVwIiwgZmFsc2UpOw0KICAgIHJldHVybjsNCn0NCmZ1bmN0aW9uIHNob3dQcmV2aWV3KGVsZW1lbnQpIHsNCiAgICBsZXQgZGl2ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm15U3RyZWFtc0JveCIpOw0KICAgIHN3aXRjaCAoZWxlbWVudCkgew0KICAgICAgICBjYXNlIGZhbHNlOg0KICAgICAgICAgICAgZGl2LmNsYXNzTmFtZSA9ICJub3RWaXNpYmxlIjsNCiAgICAgICAgICAgIHJldHVybjsNCiAgICB9DQogICAgbGV0IHN0cmVhbXMgPSBbImFjdGl2ZVN0cmVhbXMiLCAiaW5hY3RpdmVTdHJlYW1zIl07DQogICAgc3RyZWFtcy5mb3JFYWNoKHByZXZpZXcgPT4gew0KICAgICAgICBsZXQgdGFibGUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChwcmV2aWV3KTsNCiAgICAgICAgdGFibGUuaW5uZXJIVE1MID0gIiI7DQogICAgICAgIGxldCBvYmogPSBTRVJWRVJbImRhdGEiXVsiU3RyZWFtUHJldmlld1VJIl1bcHJldmlld107DQogICAgICAgIG9iai5mb3JFYWNoKGNoYW5uZWwgPT4gew0KICAgICAgICAgICAgbGV0IHRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVFIiKTsNCiAgICAgICAgICAgIGxldCB0ZEtleSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICBsZXQgdGRWYWwgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgdGRLZXkuY2xhc3NOYW1lID0gInRkS2V5IjsNCiAgICAgICAgICAgIHRkVmFsLmNsYXNzTmFtZSA9ICJ0ZFZhbCI7DQogICAgICAgICAgICBzd2l0Y2ggKHByZXZpZXcpIHsNCiAgICAgICAgICAgICAgICBjYXNlICJhY3RpdmVTdHJlYW1zIjoNCiAgICAgICAgICAgICAgICAgICAgdGRLZXkuaW5uZXJUZXh0ID0gIkNoYW5uZWw6ICgrKSI7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgImluYWN0aXZlU3RyZWFtcyI6DQogICAgICAgICAgICAgICAgICAgIHRkS2V5LmlubmVyVGV4dCA9ICJDaGFubmVsOiAoLSkiOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIHRkVmFsLmlubmVyVGV4dCA9IGNoYW5uZWw7DQogICAgICAgICAgICB0ci5hcHBlbmRDaGlsZCh0ZEtleSk7DQogICAgICAgICAgICB0ci5hcHBlbmRDaGlsZCh0ZFZhbCk7DQogICAgICAgICAgICB0YWJsZS5hcHBlbmRDaGlsZCh0cik7DQogICAgICAgIH0pOw0KICAgIH0pOw0KICAgIHNob3dFbGVtZW50KCJsb2FkaW5nIiwgZmFsc2UpOw0KICAgIGRpdi5jbGFzc05hbWUgPSAidmlzaWJsZSI7DQogICAgcmV0dXJuOw0KfQ0K" + webUI["html/js/menu_ts.js"] = "Y2xhc3MgTWFpbk1lbnUgew0KICAgIGNvbnN0cnVjdG9yKCkgew0KICAgICAgICB0aGlzLkRvY3VtZW50SUQgPSAibWFpbi1tZW51IjsNCiAgICAgICAgdGhpcy5IVE1MVGFnID0gIkxJIjsNCiAgICAgICAgdGhpcy5JbWFnZVBhdGggPSAiaW1nLyI7DQogICAgfQ0KICAgIGNyZWF0ZUlNRyhzcmMpIHsNCiAgICAgICAgbGV0IGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJJTUciKTsNCiAgICAgICAgZWxlbWVudC5zZXRBdHRyaWJ1dGUoInNyYyIsIHRoaXMuSW1hZ2VQYXRoICsgc3JjKTsNCiAgICAgICAgcmV0dXJuIGVsZW1lbnQ7DQogICAgfQ0KICAgIGNyZWF0ZVZhbHVlKHZhbHVlKSB7DQogICAgICAgIGxldCBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiUCIpOw0KICAgICAgICBlbGVtZW50LmlubmVySFRNTCA9IHZhbHVlOw0KICAgICAgICByZXR1cm4gZWxlbWVudDsNCiAgICB9DQp9DQpjbGFzcyBNYWluTWVudUl0ZW0gZXh0ZW5kcyBNYWluTWVudSB7DQogICAgY29uc3RydWN0b3IobWVudUtleSwgdmFsdWUsIGltYWdlLCBoZWFkbGluZSkgew0KICAgICAgICBzdXBlcigpOw0KICAgICAgICB0aGlzLm1lbnVLZXkgPSBtZW51S2V5Ow0KICAgICAgICB0aGlzLnZhbHVlID0gdmFsdWU7DQogICAgICAgIHRoaXMuaW1nU3JjID0gaW1hZ2U7DQogICAgICAgIHRoaXMuaGVhZGxpbmUgPSBoZWFkbGluZTsNCiAgICB9DQogICAgY3JlYXRlSXRlbSgpIHsNCiAgICAgICAgbGV0IGl0ZW0gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJMSSIpOw0KICAgICAgICBpdGVtLnNldEF0dHJpYnV0ZSgib25jbGljayIsICJqYXZhc2NyaXB0OiBvcGVuVGhpc01lbnUodGhpcykiKTsNCiAgICAgICAgaXRlbS5zZXRBdHRyaWJ1dGUoImlkIiwgdGhpcy5pZCk7DQogICAgICAgIGxldCBpbWcgPSB0aGlzLmNyZWF0ZUlNRyh0aGlzLmltZ1NyYyk7DQogICAgICAgIGxldCB2YWx1ZSA9IHRoaXMuY3JlYXRlVmFsdWUodGhpcy52YWx1ZSk7DQogICAgICAgIGl0ZW0uYXBwZW5kQ2hpbGQoaW1nKTsNCiAgICAgICAgaXRlbS5hcHBlbmRDaGlsZCh2YWx1ZSk7DQogICAgICAgIGxldCBkb2MgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCh0aGlzLkRvY3VtZW50SUQpOw0KICAgICAgICBkb2MuYXBwZW5kQ2hpbGQoaXRlbSk7DQogICAgICAgIHN3aXRjaCAodGhpcy5tZW51S2V5KSB7DQogICAgICAgICAgICBjYXNlICJwbGF5bGlzdCI6DQogICAgICAgICAgICAgICAgdGhpcy50YWJsZUhlYWRlciA9IFsie3sucGxheWxpc3QudGFibGUucGxheWxpc3R9fSIsICJ7ey5wbGF5bGlzdC50YWJsZS50dW5lcn19IiwgInt7LnBsYXlsaXN0LnRhYmxlLmxhc3RVcGRhdGV9fSIsICJ7ey5wbGF5bGlzdC50YWJsZS5hdmFpbGFiaWxpdHl9fSAlIiwgInt7LnBsYXlsaXN0LnRhYmxlLnR5cGV9fSIsICJ7ey5wbGF5bGlzdC50YWJsZS5zdHJlYW1zfX0iLCAie3sucGxheWxpc3QudGFibGUuZ3JvdXBUaXRsZX19ICUiLCAie3sucGxheWxpc3QudGFibGUudHZnSUR9fSAlIiwgInt7LnBsYXlsaXN0LnRhYmxlLnVuaXF1ZUlEfX0gJSJdOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAieG1sdHYiOg0KICAgICAgICAgICAgICAgIHRoaXMudGFibGVIZWFkZXIgPSBbInt7LnhtbHR2LnRhYmxlLmd1aWRlfX0iLCAie3sueG1sdHYudGFibGUubGFzdFVwZGF0ZX19IiwgInt7LnhtbHR2LnRhYmxlLmF2YWlsYWJpbGl0eX19ICUiLCAie3sueG1sdHYudGFibGUuY2hhbm5lbHN9fSIsICJ7ey54bWx0di50YWJsZS5wcm9ncmFtc319Il07DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJmaWx0ZXIiOg0KICAgICAgICAgICAgICAgIHRoaXMudGFibGVIZWFkZXIgPSBbInt7LmZpbHRlci50YWJsZS5zdGFydGluZ0NoYW5uZWx9fSIsICJ7ey5maWx0ZXIudGFibGUubmFtZX19IiwgInt7LmZpbHRlci50YWJsZS50eXBlfX0iLCAie3suZmlsdGVyLnRhYmxlLmZpbHRlcn19Il07DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ1c2VycyI6DQogICAgICAgICAgICAgICAgdGhpcy50YWJsZUhlYWRlciA9IFsie3sudXNlcnMudGFibGUudXNlcm5hbWV9fSIsICJ7ey51c2Vycy50YWJsZS5wYXNzd29yZH19IiwgInt7LnVzZXJzLnRhYmxlLndlYn19IiwgInt7LnVzZXJzLnRhYmxlLnBtc319IiwgInt7LnVzZXJzLnRhYmxlLm0zdX19IiwgInt7LnVzZXJzLnRhYmxlLnhtbH19IiwgInt7LnVzZXJzLnRhYmxlLmFwaX19Il07DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJtYXBwaW5nIjoNCiAgICAgICAgICAgICAgICB0aGlzLnRhYmxlSGVhZGVyID0gWyJCVUxLIiwgInt7Lm1hcHBpbmcudGFibGUuY2hOb319IiwgInt7Lm1hcHBpbmcudGFibGUubG9nb319IiwgInt7Lm1hcHBpbmcudGFibGUuY2hhbm5lbE5hbWV9fSIsICJ7ey5tYXBwaW5nLnRhYmxlLnBsYXlsaXN0fX0iLCAie3subWFwcGluZy50YWJsZS5ncm91cFRpdGxlfX0iLCAie3subWFwcGluZy50YWJsZS54bWx0dkZpbGV9fSIsICJ7ey5tYXBwaW5nLnRhYmxlLnhtbHR2SUR9fSIsICJ7ey5tYXBwaW5nLnRhYmxlLnRpbWVzaGlmdH19Il07DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIH0NCiAgICB9DQp9DQpjbGFzcyBDb250ZW50IHsNCiAgICBjb25zdHJ1Y3RvcigpIHsNCiAgICAgICAgdGhpcy5Eb2N1bWVudElEID0gImNvbnRlbnQiOw0KICAgICAgICB0aGlzLlRhYmxlSUQgPSAiY29udGVudF90YWJsZSI7DQogICAgICAgIHRoaXMuaGVhZGVyQ2xhc3MgPSAiY29udGVudF90YWJsZV9oZWFkZXIiOw0KICAgICAgICB0aGlzLmludGVyYWN0aW9uSUQgPSAiY29udGVudC1pbnRlcmFjdGlvbiI7DQogICAgfQ0KICAgIGNyZWF0ZUhlYWRsaW5lKHZhbHVlKSB7DQogICAgICAgIGxldCBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiSDMiKTsNCiAgICAgICAgZWxlbWVudC5pbm5lckhUTUwgPSB2YWx1ZTsNCiAgICAgICAgcmV0dXJuIGVsZW1lbnQ7DQogICAgfQ0KICAgIGNyZWF0ZUhSKCkgew0KICAgICAgICByZXR1cm4gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiSFIiKTsNCiAgICB9DQogICAgY3JlYXRlSW50ZXJhY3Rpb24oKSB7DQogICAgICAgIGxldCBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiRElWIik7DQogICAgICAgIGVsZW1lbnQuc2V0QXR0cmlidXRlKCJpZCIsIHRoaXMuaW50ZXJhY3Rpb25JRCk7DQogICAgICAgIHJldHVybiBlbGVtZW50Ow0KICAgIH0NCiAgICBjcmVhdGVESVYoKSB7DQogICAgICAgIGxldCBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiRElWIik7DQogICAgICAgIGVsZW1lbnQuaWQgPSB0aGlzLkRpdklEOw0KICAgICAgICByZXR1cm4gZWxlbWVudDsNCiAgICB9DQogICAgY3JlYXRlVEFCTEUoKSB7DQogICAgICAgIGxldCBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEFCTEUiKTsNCiAgICAgICAgZWxlbWVudC5pZCA9IHRoaXMuVGFibGVJRDsNCiAgICAgICAgcmV0dXJuIGVsZW1lbnQ7DQogICAgfQ0KICAgIGNyZWF0ZVRhYmxlUm93KCkgew0KICAgICAgICBsZXQgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlRSIik7DQogICAgICAgIGVsZW1lbnQuY2xhc3NOYW1lID0gdGhpcy5oZWFkZXJDbGFzczsNCiAgICAgICAgcmV0dXJuIGVsZW1lbnQ7DQogICAgfQ0KICAgIGNyZWF0ZVRhYmxlQ29udGVudChtZW51S2V5KSB7DQogICAgICAgIGxldCBkYXRhID0ge307DQogICAgICAgIGxldCByb3dzID0gW107DQogICAgICAgIGxldCBmaWxlVHlwZXMgPSBbXTsNCiAgICAgICAgc3dpdGNoIChtZW51S2V5KSB7DQogICAgICAgICAgICBjYXNlICJwbGF5bGlzdCI6DQogICAgICAgICAgICAgICAgZmlsZVR5cGVzID0gWyJtM3UiLCAiaGRociJdOw0KICAgICAgICAgICAgICAgIGZpbGVUeXBlcy5mb3JFYWNoKGZpbGVUeXBlID0+IHsNCiAgICAgICAgICAgICAgICAgICAgZGF0YSA9IFNFUlZFUlsic2V0dGluZ3MiXVsiZmlsZXMiXVtmaWxlVHlwZV07DQogICAgICAgICAgICAgICAgICAgIHZhciBrZXlzID0gZ2V0T3duT2JqUHJvcHMoZGF0YSk7DQogICAgICAgICAgICAgICAgICAgIGtleXMuZm9yRWFjaChrZXkgPT4gew0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVFIiKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmlkID0ga2V5Ow0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgiJyArIGZpbGVUeXBlICsgJyIsIHRoaXMpJyk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsibmFtZSJdOw0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChTRVJWRVJbInNldHRpbmdzIl1bImJ1ZmZlciJdICE9ICItIikgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bInR1bmVyIl07DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gIi0iOw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bImxhc3QudXBkYXRlIl07DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsicHJvdmlkZXIuYXZhaWxhYmlsaXR5Il07DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsidHlwZSJdLnRvVXBwZXJDYXNlKCk7DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsiY29tcGF0aWJpbGl0eSJdWyJzdHJlYW1zIl07DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsiY29tcGF0aWJpbGl0eSJdWyJncm91cC50aXRsZSJdOw0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bImNvbXBhdGliaWxpdHkiXVsidHZnLmlkIl07DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsiY29tcGF0aWJpbGl0eSJdWyJzdHJlYW0uaWQiXTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHJvd3MucHVzaCh0cik7DQogICAgICAgICAgICAgICAgICAgIH0pOw0KICAgICAgICAgICAgICAgIH0pOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiZmlsdGVyIjoNCiAgICAgICAgICAgICAgICBkZWxldGUgU0VSVkVSWyJzZXR0aW5ncyJdWyJmaWx0ZXIiXVstMV07DQogICAgICAgICAgICAgICAgZGF0YSA9IFNFUlZFUlsic2V0dGluZ3MiXVsiZmlsdGVyIl07DQogICAgICAgICAgICAgICAgdmFyIGtleXMgPSBnZXRPd25PYmpQcm9wcyhkYXRhKTsNCiAgICAgICAgICAgICAgICBrZXlzLmZvckVhY2goa2V5ID0+IHsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVFIiKTsNCiAgICAgICAgICAgICAgICAgICAgdHIuaWQgPSBrZXk7DQogICAgICAgICAgICAgICAgICAgIHRyLnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoIicgKyBkYXRhW2tleV1bInR5cGUiXSArICciLCB0aGlzKScpOw0KICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsic3RhcnRpbmdDaGFubmVsIl07DQogICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bIm5hbWUiXTsNCiAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgc3dpdGNoIChkYXRhW2tleV1bInR5cGUiXSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAiY3VzdG9tLWZpbHRlciI6DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9ICJ7ey5maWx0ZXIuY3VzdG9tfX0iOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAiZ3JvdXAtdGl0bGUiOg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSAie3suZmlsdGVyLmdyb3VwfX0iOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJmaWx0ZXIiXTsNCiAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICByb3dzLnB1c2godHIpOw0KICAgICAgICAgICAgICAgIH0pOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAieG1sdHYiOg0KICAgICAgICAgICAgICAgIGZpbGVUeXBlcyA9IG5ldyBBcnJheSgieG1sdHYiKTsNCiAgICAgICAgICAgICAgICBmaWxlVHlwZXMuZm9yRWFjaChmaWxlVHlwZSA9PiB7DQogICAgICAgICAgICAgICAgICAgIGRhdGEgPSBTRVJWRVJbInNldHRpbmdzIl1bImZpbGVzIl1bZmlsZVR5cGVdOw0KICAgICAgICAgICAgICAgICAgICB2YXIga2V5cyA9IGdldE93bk9ialByb3BzKGRhdGEpOw0KICAgICAgICAgICAgICAgICAgICBrZXlzLmZvckVhY2goa2V5ID0+IHsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciB0ciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlRSIik7DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5pZCA9IGtleTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoIicgKyBmaWxlVHlwZSArICciLCB0aGlzKScpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bIm5hbWUiXTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJsYXN0LnVwZGF0ZSJdOw0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bInByb3ZpZGVyLmF2YWlsYWJpbGl0eSJdOw0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bImNvbXBhdGliaWxpdHkiXVsieG1sdHYuY2hhbm5lbHMiXTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJjb21wYXRpYmlsaXR5Il1bInhtbHR2LnByb2dyYW1zIl07DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICByb3dzLnB1c2godHIpOw0KICAgICAgICAgICAgICAgICAgICB9KTsNCiAgICAgICAgICAgICAgICB9KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInVzZXJzIjoNCiAgICAgICAgICAgICAgICBmaWxlVHlwZXMgPSBuZXcgQXJyYXkoInVzZXJzIik7DQogICAgICAgICAgICAgICAgZmlsZVR5cGVzLmZvckVhY2goZmlsZVR5cGUgPT4gew0KICAgICAgICAgICAgICAgICAgICBkYXRhID0gU0VSVkVSW2ZpbGVUeXBlXTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGtleXMgPSBnZXRPd25PYmpQcm9wcyhkYXRhKTsNCiAgICAgICAgICAgICAgICAgICAga2V5cy5mb3JFYWNoKGtleSA9PiB7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgdHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJUUiIpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuaWQgPSBrZXk7DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCInICsgZmlsZVR5cGUgKyAnIiwgdGhpcyknKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJkYXRhIl1bInVzZXJuYW1lIl07DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9ICIqKioqKioiOw0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChkYXRhW2tleV1bImRhdGEiXVsiYXV0aGVudGljYXRpb24ud2ViIl0gPT0gdHJ1ZSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSAi4pyTIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSAiLSI7DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGRhdGFba2V5XVsiZGF0YSJdWyJhdXRoZW50aWNhdGlvbi5wbXMiXSA9PSB0cnVlKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9ICLinJMiOw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9ICItIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgICAgICBpZiAoZGF0YVtrZXldWyJkYXRhIl1bImF1dGhlbnRpY2F0aW9uLm0zdSJdID09IHRydWUpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gIuKckyI7DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gIi0iOw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChkYXRhW2tleV1bImRhdGEiXVsiYXV0aGVudGljYXRpb24ueG1sIl0gPT0gdHJ1ZSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSAi4pyTIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSAiLSI7DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGRhdGFba2V5XVsiZGF0YSJdWyJhdXRoZW50aWNhdGlvbi5hcGkiXSA9PSB0cnVlKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9ICLinJMiOw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9ICItIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHJvd3MucHVzaCh0cik7DQogICAgICAgICAgICAgICAgICAgIH0pOw0KICAgICAgICAgICAgICAgIH0pOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAibWFwcGluZyI6DQogICAgICAgICAgICAgICAgQlVMS19FRElUID0gZmFsc2U7DQogICAgICAgICAgICAgICAgY3JlYXRlU2VhcmNoT2JqKCk7DQogICAgICAgICAgICAgICAgY2hlY2tVbmRvKCJlcGdNYXBwaW5nIik7DQogICAgICAgICAgICAgICAgZGF0YSA9IFNFUlZFUlsieGVwZyJdWyJlcGdNYXBwaW5nIl07DQogICAgICAgICAgICAgICAgdmFyIGtleXMgPSBnZXRPd25PYmpQcm9wcyhkYXRhKTsNCiAgICAgICAgICAgICAgICBrZXlzLmZvckVhY2goa2V5ID0+IHsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVFIiKTsNCiAgICAgICAgICAgICAgICAgICAgdHIuaWQgPSBrZXk7DQogICAgICAgICAgICAgICAgICAgIHN3aXRjaCAoZGF0YVtrZXldWyJ4LWFjdGl2ZSJdKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBjYXNlIHRydWU6DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgdHIuY2xhc3NOYW1lID0gImFjdGl2ZUVQRyI7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgICAgICAgICBjYXNlIGZhbHNlOg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyLmNsYXNzTmFtZSA9ICJub3RBY3RpdmVFUEciOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIC8vIEJ1bGsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiQlVMSyI7DQogICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBmYWxzZTsNCiAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAvLyBDaGFubmVsIG51bWJlcg0KICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJJTlBVVENIQU5ORUwiOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJ4LWNoYW5uZWxJRCJdOw0KICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgIC8vIExvZ28NCiAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiSU1HIjsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5pbWFnZVVSTCA9IGRhdGFba2V5XVsidHZnLWxvZ28iXTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHRkID0gY2VsbC5jcmVhdGVDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgIHRkLnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoIm1hcHBpbmciLCB0aGlzKScpOw0KICAgICAgICAgICAgICAgICAgICB0ZC5pZCA9IGtleTsNCiAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQodGQpOw0KICAgICAgICAgICAgICAgICAgICAvLyBDaGFubmVsIG5hbWUNCiAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2xhc3NOYW1lID0gZGF0YVtrZXldWyJ4LWNhdGVnb3J5Il07DQogICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bIngtbmFtZSJdOw0KICAgICAgICAgICAgICAgICAgICB2YXIgdGQgPSBjZWxsLmNyZWF0ZUNlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgdGQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgibWFwcGluZyIsIHRoaXMpJyk7DQogICAgICAgICAgICAgICAgICAgIHRkLmlkID0ga2V5Ow0KICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZCh0ZCk7DQogICAgICAgICAgICAgICAgICAgIC8vIFBsYXlsaXN0DQogICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZ2V0VmFsdWVGcm9tUHJvdmlkZXJGaWxlKGRhdGFba2V5XVsiX2ZpbGUubTN1LmlkIl0sICJtM3UiLCAibmFtZSIpOw0KICAgICAgICAgICAgICAgICAgICB2YXIgdGQgPSBjZWxsLmNyZWF0ZUNlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgdGQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgibWFwcGluZyIsIHRoaXMpJyk7DQogICAgICAgICAgICAgICAgICAgIHRkLmlkID0ga2V5Ow0KICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZCh0ZCk7DQogICAgICAgICAgICAgICAgICAgIC8vIEdyb3VwIChncm91cC10aXRsZSkNCiAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bIngtZ3JvdXAtdGl0bGUiXTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHRkID0gY2VsbC5jcmVhdGVDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgIHRkLnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoIm1hcHBpbmciLCB0aGlzKScpOw0KICAgICAgICAgICAgICAgICAgICB0ZC5pZCA9IGtleTsNCiAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQodGQpOw0KICAgICAgICAgICAgICAgICAgICAvLyBYTUxUViBmaWxlDQogICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICBpZiAoZGF0YVtrZXldWyJ4LXhtbHR2LWZpbGUiXSAhPSAiLSIpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBnZXRWYWx1ZUZyb21Qcm92aWRlckZpbGUoZGF0YVtrZXldWyJ4LXhtbHR2LWZpbGUiXSwgInhtbHR2IiwgIm5hbWUiKTsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bIngteG1sdHYtZmlsZSJdOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIHZhciB0ZCA9IGNlbGwuY3JlYXRlQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICB0ZC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJtYXBwaW5nIiwgdGhpcyknKTsNCiAgICAgICAgICAgICAgICAgICAgdGQuaWQgPSBrZXk7DQogICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKHRkKTsNCiAgICAgICAgICAgICAgICAgICAgLy8gWE1MVFYgQ2hhbm5lbA0KICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHZhbHVlID0gZGF0YVtrZXldWyJ4LW1hcHBpbmciXTsNCiAgICAgICAgICAgICAgICAgICAgaWYgKHZhbHVlLmxlbmd0aCA+IDIwKSB7DQogICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IGRhdGFba2V5XVsieC1tYXBwaW5nIl0uc3Vic3RyaW5nKDAsIDIwKSArICIuLi4iOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSB2YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHRkID0gY2VsbC5jcmVhdGVDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgIHRkLnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoIm1hcHBpbmciLCB0aGlzKScpOw0KICAgICAgICAgICAgICAgICAgICB0ZC5pZCA9IGtleTsNCiAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQodGQpOw0KICAgICAgICAgICAgICAgICAgICAvLyBUaW1lU2hpZnQNCiAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bIngtdGltZXNoaWZ0Il07DQogICAgICAgICAgICAgICAgICAgIHZhciB0ZCA9IGNlbGwuY3JlYXRlQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICB0ZC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJtYXBwaW5nIiwgdGhpcyknKTsNCiAgICAgICAgICAgICAgICAgICAgdGQuaWQgPSBrZXk7DQogICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKHRkKTsNCiAgICAgICAgICAgICAgICAgICAgcm93cy5wdXNoKHRyKTsNCiAgICAgICAgICAgICAgICB9KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInNldHRpbmdzIjoNCiAgICAgICAgICAgICAgICBhbGVydCgpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgfQ0KICAgICAgICByZXR1cm4gcm93czsNCiAgICB9DQp9DQpjbGFzcyBDZWxsIHsNCiAgICBjcmVhdGVDZWxsKCkgew0KICAgICAgICBsZXQgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICBpZiAodGhpcy5jaGlsZCA9PSB0cnVlKSB7DQogICAgICAgICAgICB2YXIgZWxlbWVudDsNCiAgICAgICAgICAgIHN3aXRjaCAodGhpcy5jaGlsZFR5cGUpIHsNCiAgICAgICAgICAgICAgICBjYXNlICJQIjoNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQodGhpcy5jaGlsZFR5cGUpOw0KICAgICAgICAgICAgICAgICAgICBlbGVtZW50LmlubmVySFRNTCA9IHRoaXMudmFsdWU7DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQuY2xhc3NOYW1lID0gdGhpcy5jbGFzc05hbWU7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgIklOUFVUIjoNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQodGhpcy5jaGlsZFR5cGUpOw0KICAgICAgICAgICAgICAgICAgICBlbGVtZW50LnZhbHVlID0gdGhpcy52YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC50eXBlID0gInRleHQiOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBjYXNlICJJTlBVVENIQU5ORUwiOg0KICAgICAgICAgICAgICAgICAgICBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiSU5QVVQiKTsNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdnNjcmlwdDogY2hhbmdlQ2hhbm5lbE51bWJlcih0aGlzKSIpOw0KICAgICAgICAgICAgICAgICAgICBlbGVtZW50LnZhbHVlID0gdGhpcy52YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC50eXBlID0gInRleHQiOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBjYXNlICJCVUxLIjoNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIklOUFVUIik7DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQuY2hlY2tlZCA9IHRoaXMudmFsdWU7DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQudHlwZSA9ICJjaGVja2JveCI7DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQuY2xhc3NOYW1lID0gImJ1bGsgaGlkZUJ1bGsiOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBjYXNlICJCVUxLX0hFQUQiOg0KICAgICAgICAgICAgICAgICAgICBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiSU5QVVQiKTsNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC5jaGVja2VkID0gdGhpcy52YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC50eXBlID0gImNoZWNrYm94IjsNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC5jbGFzc05hbWUgPSAiYnVsayBoaWRlQnVsayI7DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgImphdmFzY3JpcHQ6IHNlbGVjdEFsbENoYW5uZWxzKCkiKTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAiSU1HIjoNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQodGhpcy5jaGlsZFR5cGUpOw0KICAgICAgICAgICAgICAgICAgICBlbGVtZW50LnNldEF0dHJpYnV0ZSgic3JjIiwgdGhpcy5pbWFnZVVSTCk7DQogICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLmltYWdlVVJMICE9ICIiKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBlbGVtZW50LnNldEF0dHJpYnV0ZSgib25lcnJvciIsICJqYXZhc2NyaXB0OiB0aGlzLm9uZXJyb3I9bnVsbDt0aGlzLnNyYz0nJyIpOw0KICAgICAgICAgICAgICAgICAgICAgICAgLy9vbmVycm9yPSJ0aGlzLm9uZXJyb3I9bnVsbDt0aGlzLnNyYz0nbWlzc2luZy5naWYnOyINCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgdGQuYXBwZW5kQ2hpbGQoZWxlbWVudCk7DQogICAgICAgIH0NCiAgICAgICAgZWxzZSB7DQogICAgICAgICAgICB0ZC5pbm5lckhUTUwgPSB0aGlzLnZhbHVlOw0KICAgICAgICB9DQogICAgICAgIGlmICh0aGlzLm9uY2xpY2sgPT0gdHJ1ZSkgew0KICAgICAgICAgICAgdGQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgdGhpcy5vbmNsaWNrRnVuY3Rpb24pOw0KICAgICAgICAgICAgdGQuY2xhc3NOYW1lID0gInBvaW50ZXIiOw0KICAgICAgICB9DQogICAgICAgIGlmICh0aGlzLnRkQ2xhc3NOYW1lICE9IHVuZGVmaW5lZCkgew0KICAgICAgICAgICAgdGQuY2xhc3NOYW1lID0gdGhpcy50ZENsYXNzTmFtZTsNCiAgICAgICAgfQ0KICAgICAgICByZXR1cm4gdGQ7DQogICAgfQ0KfQ0KY2xhc3MgU2hvd0NvbnRlbnQgZXh0ZW5kcyBDb250ZW50IHsNCiAgICBjb25zdHJ1Y3RvcihtZW51SUQpIHsNCiAgICAgICAgc3VwZXIoKTsNCiAgICAgICAgdGhpcy5tZW51SUQgPSBtZW51SUQ7DQogICAgfQ0KICAgIGNyZWF0ZUlucHV0KHR5cGUsIG5hbWUsIHZhbHVlKSB7DQogICAgICAgIGxldCBpbnB1dCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIklOUFVUIik7DQogICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgidHlwZSIsIHR5cGUpOw0KICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm5hbWUiLCBuYW1lKTsNCiAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJ2YWx1ZSIsIHZhbHVlKTsNCiAgICAgICAgcmV0dXJuIGlucHV0Ow0KICAgIH0NCiAgICBzaG93KCkgew0KICAgICAgICBDT0xVTU5fVE9fU09SVCA9IC0xOw0KICAgICAgICAvLyBEZWxldGUgb2xkIGNvbnRlbnQNCiAgICAgICAgbGV0IGRvYyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHRoaXMuRG9jdW1lbnRJRCk7DQogICAgICAgIGRvYy5pbm5lckhUTUwgPSAiIjsNCiAgICAgICAgc2hvd1ByZXZpZXcoZmFsc2UpOw0KICAgICAgICAvLyBIZWFkbGluZQ0KICAgICAgICBsZXQgaGVhZGxpbmUgPSBtZW51SXRlbXNbdGhpcy5tZW51SURdLmhlYWRsaW5lOw0KICAgICAgICBsZXQgbWVudUtleSA9IG1lbnVJdGVtc1t0aGlzLm1lbnVJRF0ubWVudUtleTsNCiAgICAgICAgbGV0IGggPSB0aGlzLmNyZWF0ZUhlYWRsaW5lKGhlYWRsaW5lKTsNCiAgICAgICAgZG9jLmFwcGVuZENoaWxkKGgpOw0KICAgICAgICBsZXQgaHIgPSB0aGlzLmNyZWF0ZUhSKCk7DQogICAgICAgIGRvYy5hcHBlbmRDaGlsZChocik7DQogICAgICAgIC8vIEludGVyYWN0aW9uDQogICAgICAgIGxldCBkaXYgPSB0aGlzLmNyZWF0ZUludGVyYWN0aW9uKCk7DQogICAgICAgIGRvYy5hcHBlbmRDaGlsZChkaXYpOw0KICAgICAgICBsZXQgaW50ZXJhY3Rpb24gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCh0aGlzLmludGVyYWN0aW9uSUQpOw0KICAgICAgICBzd2l0Y2ggKG1lbnVLZXkpIHsNCiAgICAgICAgICAgIGNhc2UgInBsYXlsaXN0IjoNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSB0aGlzLmNyZWF0ZUlucHV0KCJidXR0b24iLCBtZW51S2V5LCAie3suYnV0dG9uLm5ld319Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJpZCIsICItIik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgicGxheWxpc3QiKScpOw0KICAgICAgICAgICAgICAgIGludGVyYWN0aW9uLmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImZpbHRlciI6DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gdGhpcy5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgbWVudUtleSwgInt7LmJ1dHRvbi5uZXd9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgiaWQiLCAtMSk7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgiZmlsdGVyIiwgdGhpcyknKTsNCiAgICAgICAgICAgICAgICBpbnRlcmFjdGlvbi5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ4bWx0diI6DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gdGhpcy5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgbWVudUtleSwgInt7LmJ1dHRvbi5uZXd9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgiaWQiLCAieG1sdHYiKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJ4bWx0diIpJyk7DQogICAgICAgICAgICAgICAgaW50ZXJhY3Rpb24uYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAidXNlcnMiOg0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IHRoaXMuY3JlYXRlSW5wdXQoImJ1dHRvbiIsIG1lbnVLZXksICJ7ey5idXR0b24ubmV3fX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoImlkIiwgInVzZXJzIik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgidXNlcnMiKScpOw0KICAgICAgICAgICAgICAgIGludGVyYWN0aW9uLmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgIm1hcHBpbmciOg0KICAgICAgICAgICAgICAgIHNob3dFbGVtZW50KCJsb2FkaW5nIiwgdHJ1ZSk7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gdGhpcy5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgbWVudUtleSwgInt7LmJ1dHRvbi5zYXZlfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogc2F2ZVBvcHVwRGF0YSgibWFwcGluZyIsICIiLCAiIiknKTsNCiAgICAgICAgICAgICAgICBpbnRlcmFjdGlvbi5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gdGhpcy5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgbWVudUtleSwgInt7LmJ1dHRvbi5idWxrRWRpdH19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IGJ1bGtFZGl0KCknKTsNCiAgICAgICAgICAgICAgICBpbnRlcmFjdGlvbi5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gdGhpcy5jcmVhdGVJbnB1dCgic2VhcmNoIiwgInNlYXJjaCIsICIiKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoImlkIiwgInNlYXJjaE1hcHBpbmciKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LmJ1dHRvbi5zZWFyY2h9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LmNsYXNzTmFtZSA9ICJzZWFyY2giOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAnamF2YXNjcmlwdDogc2VhcmNoSW5NYXBwaW5nKCknKTsNCiAgICAgICAgICAgICAgICBpbnRlcmFjdGlvbi5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJzZXR0aW5ncyI6DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gdGhpcy5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgbWVudUtleSwgInt7LmJ1dHRvbi5zYXZlfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogc2F2ZVNldHRpbmdzKCk7Jyk7DQogICAgICAgICAgICAgICAgaW50ZXJhY3Rpb24uYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IHRoaXMuY3JlYXRlSW5wdXQoImJ1dHRvbiIsIG1lbnVLZXksICJ7ey5idXR0b24uYmFja3VwfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogYmFja3VwKCk7Jyk7DQogICAgICAgICAgICAgICAgaW50ZXJhY3Rpb24uYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IHRoaXMuY3JlYXRlSW5wdXQoImJ1dHRvbiIsIG1lbnVLZXksICJ7ey5idXR0b24ucmVzdG9yZX19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IHJlc3RvcmUoKTsnKTsNCiAgICAgICAgICAgICAgICBpbnRlcmFjdGlvbi5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgdmFyIHdyYXBwZXIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJESVYiKTsNCiAgICAgICAgICAgICAgICB3cmFwcGVyLnNldEF0dHJpYnV0ZSgiaWQiLCAiYm94LXdyYXBwZXIiKTsNCiAgICAgICAgICAgICAgICBkb2MuYXBwZW5kQ2hpbGQod3JhcHBlcik7DQogICAgICAgICAgICAgICAgdGhpcy5EaXZJRCA9ICJjb250ZW50X3NldHRpbmdzIjsNCiAgICAgICAgICAgICAgICB2YXIgc2V0dGluZ3MgPSB0aGlzLmNyZWF0ZURJVigpOw0KICAgICAgICAgICAgICAgIHdyYXBwZXIuYXBwZW5kQ2hpbGQoc2V0dGluZ3MpOw0KICAgICAgICAgICAgICAgIHNob3dTZXR0aW5ncygpOw0KICAgICAgICAgICAgICAgIHJldHVybjsNCiAgICAgICAgICAgIGNhc2UgImxvZyI6DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gdGhpcy5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgbWVudUtleSwgInt7LmJ1dHRvbi5yZXNldExvZ3N9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiByZXNldExvZ3MoKTsnKTsNCiAgICAgICAgICAgICAgICBpbnRlcmFjdGlvbi5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgdmFyIHdyYXBwZXIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJESVYiKTsNCiAgICAgICAgICAgICAgICB3cmFwcGVyLnNldEF0dHJpYnV0ZSgiaWQiLCAiYm94LXdyYXBwZXIiKTsNCiAgICAgICAgICAgICAgICBkb2MuYXBwZW5kQ2hpbGQod3JhcHBlcik7DQogICAgICAgICAgICAgICAgdGhpcy5EaXZJRCA9ICJjb250ZW50X2xvZyI7DQogICAgICAgICAgICAgICAgdmFyIGxvZ3MgPSB0aGlzLmNyZWF0ZURJVigpOw0KICAgICAgICAgICAgICAgIHdyYXBwZXIuYXBwZW5kQ2hpbGQobG9ncyk7DQogICAgICAgICAgICAgICAgc2hvd0xvZ3ModHJ1ZSk7DQogICAgICAgICAgICAgICAgcmV0dXJuOw0KICAgICAgICAgICAgY2FzZSAibG9nb3V0IjoNCiAgICAgICAgICAgICAgICBsb2NhdGlvbi5yZWxvYWQoKTsNCiAgICAgICAgICAgICAgICBkb2N1bWVudC5jb29raWUgPSAiVG9rZW49IDsgZXhwaXJlcyA9IFRodSwgMDEgSmFuIDE5NzAgMDA6MDA6MDAgR01UIjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIH0NCiAgICAgICAgLy8gQ3JlYXRlIHRhYmxlIChpZiBuZWVkZWQpDQogICAgICAgIHZhciB0YWJsZUhlYWRlciA9IG1lbnVJdGVtc1t0aGlzLm1lbnVJRF0udGFibGVIZWFkZXI7DQogICAgICAgIGlmICh0YWJsZUhlYWRlci5sZW5ndGggPiAwKSB7DQogICAgICAgICAgICB2YXIgd3JhcHBlciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIkRJViIpOw0KICAgICAgICAgICAgZG9jLmFwcGVuZENoaWxkKHdyYXBwZXIpOw0KICAgICAgICAgICAgd3JhcHBlci5zZXRBdHRyaWJ1dGUoImlkIiwgImJveC13cmFwcGVyIik7DQogICAgICAgICAgICB2YXIgdGFibGUgPSB0aGlzLmNyZWF0ZVRBQkxFKCk7DQogICAgICAgICAgICB3cmFwcGVyLmFwcGVuZENoaWxkKHRhYmxlKTsNCiAgICAgICAgICAgIHZhciBoZWFkZXIgPSB0aGlzLmNyZWF0ZVRhYmxlUm93KCk7DQogICAgICAgICAgICB0YWJsZS5hcHBlbmRDaGlsZChoZWFkZXIpOw0KICAgICAgICAgICAgLy8gVGFibGUgaGVhZGVyDQogICAgICAgICAgICB0YWJsZUhlYWRlci5mb3JFYWNoKGVsZW1lbnQgPT4gew0KICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZWxlbWVudDsNCiAgICAgICAgICAgICAgICBpZiAoZWxlbWVudCA9PSAiQlVMSyIpIHsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiQlVMS19IRUFEIjsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGZhbHNlOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBpZiAobWVudUtleSA9PSAibWFwcGluZyIpIHsNCiAgICAgICAgICAgICAgICAgICAgaWYgKGVsZW1lbnQgPT0gInt7Lm1hcHBpbmcudGFibGUuY2hOb319Iikgew0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5vbmNsaWNrID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwub25jbGlja0Z1bmN0aW9uID0gImphdmFzY3JpcHQ6IHNvcnRUYWJsZSgxKTsiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC50ZENsYXNzTmFtZSA9ICJzb3J0VGhpcyI7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgaWYgKGVsZW1lbnQgPT0gInt7Lm1hcHBpbmcudGFibGUuY2hhbm5lbE5hbWV9fSIpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwub25jbGljayA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLm9uY2xpY2tGdW5jdGlvbiA9ICJqYXZhc2NyaXB0OiBzb3J0VGFibGUoMyk7IjsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBpZiAoZWxlbWVudCA9PSAie3subWFwcGluZy50YWJsZS5wbGF5bGlzdH19Iikgew0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5vbmNsaWNrID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwub25jbGlja0Z1bmN0aW9uID0gImphdmFzY3JpcHQ6IHNvcnRUYWJsZSg0KTsiOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIGlmIChlbGVtZW50ID09ICJ7ey5tYXBwaW5nLnRhYmxlLmdyb3VwVGl0bGV9fSIpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwub25jbGljayA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLm9uY2xpY2tGdW5jdGlvbiA9ICJqYXZhc2NyaXB0OiBzb3J0VGFibGUoNSk7IjsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBpZiAoZWxlbWVudCA9PSAie3subWFwcGluZy50YWJsZS50aW1lc2hpZnR9fSIpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwub25jbGljayA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLm9uY2xpY2tGdW5jdGlvbiA9ICJqYXZhc2NyaXB0OiBzb3J0VGFibGUoOCk7IjsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBpZiAobWVudUtleSA9PSAiZmlsdGVyIikgew0KICAgICAgICAgICAgICAgICAgICBpZiAoZWxlbWVudCA9PSAie3suZmlsdGVyLnRhYmxlLnN0YXJ0aW5nQ2hhbm5lbH19Iikgew0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5vbmNsaWNrID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwub25jbGlja0Z1bmN0aW9uID0gImphdmFzY3JpcHQ6IHNvcnRUYWJsZSgwKTsiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC50ZENsYXNzTmFtZSA9ICJzb3J0VGhpcyI7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgaWYgKGVsZW1lbnQgPT0gInt7LmZpbHRlci50YWJsZS5uYW1lfX0iKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLm9uY2xpY2sgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5vbmNsaWNrRnVuY3Rpb24gPSAiamF2YXNjcmlwdDogc29ydFRhYmxlKDEpOyI7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgaWYgKGVsZW1lbnQgPT0gInt7LmZpbHRlci50YWJsZS50eXBlfX0iKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLm9uY2xpY2sgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5vbmNsaWNrRnVuY3Rpb24gPSAiamF2YXNjcmlwdDogc29ydFRhYmxlKDIpOyI7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgaWYgKGVsZW1lbnQgPT0gInt7LmZpbHRlci50YWJsZS5maWx0ZXJ9fSIpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwub25jbGljayA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLm9uY2xpY2tGdW5jdGlvbiA9ICJqYXZhc2NyaXB0OiBzb3J0VGFibGUoMyk7IjsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBoZWFkZXIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgfSk7DQogICAgICAgICAgICB0YWJsZS5hcHBlbmRDaGlsZChoZWFkZXIpOw0KICAgICAgICAgICAgLy8gQ29udGVudCBvZiB0aGUgdGFibGUNCiAgICAgICAgICAgIHZhciByb3dzID0gdGhpcy5jcmVhdGVUYWJsZUNvbnRlbnQobWVudUtleSk7DQogICAgICAgICAgICByb3dzLmZvckVhY2godHIgPT4gew0KICAgICAgICAgICAgICAgIHRhYmxlLmFwcGVuZENoaWxkKHRyKTsNCiAgICAgICAgICAgIH0pOw0KICAgICAgICB9DQogICAgICAgIHN3aXRjaCAobWVudUtleSkgew0KICAgICAgICAgICAgY2FzZSAibWFwcGluZyI6DQogICAgICAgICAgICAgICAgc29ydFRhYmxlKDEpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiZmlsdGVyIjoNCiAgICAgICAgICAgICAgICBzaG93UHJldmlldyh0cnVlKTsNCiAgICAgICAgICAgICAgICBzb3J0VGFibGUoMCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBkZWZhdWx0Og0KICAgICAgICAgICAgICAgIENPTFVNTl9UT19TT1JUID0gLTE7DQogICAgICAgICAgICAgICAgc29ydFRhYmxlKDApOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICB9DQogICAgICAgIHNob3dFbGVtZW50KCJsb2FkaW5nIiwgZmFsc2UpOw0KICAgIH0NCn0NCmZ1bmN0aW9uIFBhZ2VSZWFkeSgpIHsNCiAgICBsZXQgc2VydmVyID0gbmV3IFNlcnZlcigiZ2V0U2VydmVyQ29uZmlnIik7DQogICAgc2VydmVyLnJlcXVlc3Qoe30pOw0KICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJyZXNpemUiLCBmdW5jdGlvbiAoKSB7DQogICAgICAgIGNhbGN1bGF0ZVdyYXBwZXJIZWlnaHQoKTsNCiAgICB9LCB0cnVlKTsNCiAgICBzZXRJbnRlcnZhbChmdW5jdGlvbiAoKSB7DQogICAgICAgIHVwZGF0ZUxvZygpOw0KICAgIH0sIDEwMDAwKTsNCiAgICByZXR1cm47DQp9DQpmdW5jdGlvbiBjcmVhdGVMYXlvdXQoKSB7DQogICAgLy8gQ2xpZW50IEluZm8NCiAgICBsZXQgb2JqID0gU0VSVkVSWyJjbGllbnRJbmZvIl07DQogICAgbGV0IGtleXMgPSBnZXRPd25PYmpQcm9wcyhvYmopOw0KICAgIGZvciAodmFyIGkgPSAwOyBpIDwga2V5cy5sZW5ndGg7IGkrKykgew0KICAgICAgICBpZiAoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoa2V5c1tpXSkpIHsNCiAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGtleXNbaV0pLmlubmVySFRNTCA9IG9ialtrZXlzW2ldXTsNCiAgICAgICAgfQ0KICAgIH0NCiAgICBpZiAoIWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJtYWluLW1lbnUiKSkgew0KICAgICAgICByZXR1cm47DQogICAgfQ0KICAgIC8vIENyZWF0ZSBtZW51DQogICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm1haW4tbWVudSIpLmlubmVySFRNTCA9ICIiOw0KICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbWVudUl0ZW1zLmxlbmd0aDsgaSsrKSB7DQogICAgICAgIG1lbnVJdGVtc1tpXS5pZCA9IGk7DQogICAgICAgIHN3aXRjaCAobWVudUl0ZW1zW2ldWyJtZW51S2V5Il0pIHsNCiAgICAgICAgICAgIGNhc2UgInVzZXJzIjoNCiAgICAgICAgICAgIGNhc2UgImxvZ291dCI6DQogICAgICAgICAgICAgICAgaWYgKFNFUlZFUlsic2V0dGluZ3MiXVsiYXV0aGVudGljYXRpb24ud2ViIl0gPT0gdHJ1ZSkgew0KICAgICAgICAgICAgICAgICAgICBtZW51SXRlbXNbaV0uY3JlYXRlSXRlbSgpOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgIm1hcHBpbmciOg0KICAgICAgICAgICAgY2FzZSAieG1sdHYiOg0KICAgICAgICAgICAgICAgIGlmIChTRVJWRVJbImNsaWVudEluZm8iXVsiZXBnU291cmNlIl0gPT0gIlhFUEciKSB7DQogICAgICAgICAgICAgICAgICAgIG1lbnVJdGVtc1tpXS5jcmVhdGVJdGVtKCk7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgICAgICBtZW51SXRlbXNbaV0uY3JlYXRlSXRlbSgpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICB9DQogICAgfQ0KICAgIHJldHVybjsNCn0NCmZ1bmN0aW9uIG9wZW5UaGlzTWVudShlbGVtZW50KSB7DQogICAgbGV0IGlkID0gZWxlbWVudC5pZDsNCiAgICBsZXQgY29udGVudCA9IG5ldyBTaG93Q29udGVudChpZCk7DQogICAgY29udGVudC5zaG93KCk7DQogICAgY2FsY3VsYXRlV3JhcHBlckhlaWdodCgpOw0KICAgIHJldHVybjsNCn0NCmNsYXNzIFBvcHVwV2luZG93IHsNCiAgICBjb25zdHJ1Y3RvcigpIHsNCiAgICAgICAgdGhpcy5Eb2N1bWVudElEID0gInBvcHVwLWN1c3RvbSI7DQogICAgICAgIHRoaXMuSW50ZXJhY3Rpb25JRCA9ICJpbnRlcmFjdGlvbiI7DQogICAgICAgIHRoaXMuZG9jID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQodGhpcy5Eb2N1bWVudElEKTsNCiAgICB9DQogICAgY3JlYXRlVGl0bGUodGl0bGUpIHsNCiAgICAgICAgbGV0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgdGQuY2xhc3NOYW1lID0gImxlZnQiOw0KICAgICAgICB0ZC5pbm5lckhUTUwgPSB0aXRsZSArICI6IjsNCiAgICAgICAgcmV0dXJuIHRkOw0KICAgIH0NCiAgICBjcmVhdGVDb250ZW50KGVsZW1lbnQpIHsNCiAgICAgICAgbGV0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgdGQuYXBwZW5kQ2hpbGQoZWxlbWVudCk7DQogICAgICAgIHJldHVybiB0ZDsNCiAgICB9DQogICAgY3JlYXRlSW50ZXJhY3Rpb24oKSB7DQogICAgICAgIGxldCBkaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsNCiAgICAgICAgZGl2LnNldEF0dHJpYnV0ZSgiaWQiLCAicG9wdXAtaW50ZXJhY3Rpb24iKTsNCiAgICAgICAgZGl2LmNsYXNzTmFtZSA9ICJpbnRlcmFjdGlvbiI7DQogICAgICAgIHRoaXMuZG9jLmFwcGVuZENoaWxkKGRpdik7DQogICAgfQ0KfQ0KY2xhc3MgUG9wdXBDb250ZW50IGV4dGVuZHMgUG9wdXBXaW5kb3cgew0KICAgIGNvbnN0cnVjdG9yKCkgew0KICAgICAgICBzdXBlciguLi5hcmd1bWVudHMpOw0KICAgICAgICB0aGlzLnRhYmxlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEFCTEUiKTsNCiAgICB9DQogICAgY3JlYXRlSGVhZGxpbmUoaGVhZGxpbmUpIHsNCiAgICAgICAgdGhpcy5kb2MuaW5uZXJIVE1MID0gIiI7DQogICAgICAgIHZhciBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiSDMiKTsNCiAgICAgICAgZWxlbWVudC5pbm5lckhUTUwgPSBoZWFkbGluZS50b1VwcGVyQ2FzZSgpOw0KICAgICAgICB0aGlzLmRvYy5hcHBlbmRDaGlsZChlbGVtZW50KTsNCiAgICAgICAgLy8gQ3JlYXRlIHRhYmxlDQogICAgICAgIHRoaXMudGFibGUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJUQUJMRSIpOw0KICAgICAgICB0aGlzLmRvYy5hcHBlbmRDaGlsZCh0aGlzLnRhYmxlKTsNCiAgICB9DQogICAgYXBwZW5kUm93KHRpdGxlLCBlbGVtZW50KSB7DQogICAgICAgIGxldCB0ciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlRSIik7DQogICAgICAgIC8vIFRpdGxlDQogICAgICAgIGlmICh0aXRsZS5sZW5ndGggIT0gMCkgew0KICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQodGhpcy5jcmVhdGVUaXRsZSh0aXRsZSkpOw0KICAgICAgICB9DQogICAgICAgIC8vIENvbnRlbnQNCiAgICAgICAgdHIuYXBwZW5kQ2hpbGQodGhpcy5jcmVhdGVDb250ZW50KGVsZW1lbnQpKTsNCiAgICAgICAgdGhpcy50YWJsZS5hcHBlbmRDaGlsZCh0cik7DQogICAgfQ0KICAgIGNyZWF0ZUlucHV0KHR5cGUsIG5hbWUsIHZhbHVlKSB7DQogICAgICAgIGxldCBpbnB1dCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIklOUFVUIik7DQogICAgICAgIGlmICh2YWx1ZSA9PSB1bmRlZmluZWQpIHsNCiAgICAgICAgICAgIHZhbHVlID0gIiI7DQogICAgICAgIH0NCiAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJ0eXBlIiwgdHlwZSk7DQogICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgibmFtZSIsIG5hbWUpOw0KICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInZhbHVlIiwgdmFsdWUpOw0KICAgICAgICByZXR1cm4gaW5wdXQ7DQogICAgfQ0KICAgIGNyZWF0ZUNoZWNrYm94KG5hbWUpIHsNCiAgICAgICAgbGV0IGlucHV0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiSU5QVVQiKTsNCiAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJ0eXBlIiwgImNoZWNrYm94Iik7DQogICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgibmFtZSIsIG5hbWUpOw0KICAgICAgICByZXR1cm4gaW5wdXQ7DQogICAgfQ0KICAgIC8vIENyZWF0ZXMgYSBzZWxlY3Rpb24gb2YgbXVsdGlwbGUgb3B0aW9ucyB2YWx1ZXMgd2l0aCB0ZXh0IGRlc2NyaXB0aW9ucw0KICAgIGNyZWF0ZVNlbGVjdCh0ZXh0LCB2YWx1ZXMsIHNldCwgZGJLZXkpIHsNCiAgICAgICAgbGV0IHNlbGVjdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlNFTEVDVCIpOw0KICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJuYW1lIiwgZGJLZXkpOw0KICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRleHQubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgICAgIGxldCBvcHRpb24gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJPUFRJT04iKTsNCiAgICAgICAgICAgIG9wdGlvbi5zZXRBdHRyaWJ1dGUoInZhbHVlIiwgdmFsdWVzW2ldKTsNCiAgICAgICAgICAgIG9wdGlvbi5pbm5lclRleHQgPSB0ZXh0W2ldOw0KICAgICAgICAgICAgc2VsZWN0LmFwcGVuZENoaWxkKG9wdGlvbik7DQogICAgICAgIH0NCiAgICAgICAgaWYgKHNldCAhPSAiIikgew0KICAgICAgICAgICAgc2VsZWN0LnZhbHVlID0gc2V0Ow0KICAgICAgICB9DQogICAgICAgIGlmIChzZXQgPT0gdW5kZWZpbmVkKSB7DQogICAgICAgICAgICBzZWxlY3QudmFsdWUgPSB2YWx1ZXNbMF07DQogICAgICAgIH0NCiAgICAgICAgcmV0dXJuIHNlbGVjdDsNCiAgICB9DQogICAgc2VsZWN0T3B0aW9uKHNlbGVjdCwgdmFsdWUpIHsNCiAgICAgICAgLy9zZWxlY3Quc2VsZWN0ZWRPcHRpb25zID0gdmFsdWUNCiAgICAgICAgbGV0IHMgPSBzZWxlY3Q7DQogICAgICAgIHMub3B0aW9uc1tzLnNlbGVjdGVkSW5kZXhdLnZhbHVlID0gdmFsdWU7DQogICAgICAgIHJldHVybiBzZWxlY3Q7DQogICAgfQ0KICAgIGRlc2NyaXB0aW9uKHZhbHVlKSB7DQogICAgICAgIGxldCB0ciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlRSIik7DQogICAgICAgIGxldCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgIGxldCBzcGFuID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiUFJFIik7DQogICAgICAgIHNwYW4uaW5uZXJIVE1MID0gdmFsdWU7DQogICAgICAgIHRyLmFwcGVuZENoaWxkKHRkKTsNCiAgICAgICAgdHIuYXBwZW5kQ2hpbGQodGhpcy5jcmVhdGVDb250ZW50KHNwYW4pKTsNCiAgICAgICAgdGhpcy50YWJsZS5hcHBlbmRDaGlsZCh0cik7DQogICAgfQ0KICAgIC8vIEludGVyYWN0aW9uDQogICAgYWRkSW50ZXJhY3Rpb24oZWxlbWVudCkgew0KICAgICAgICBsZXQgaW50ZXJhY3Rpb24gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicG9wdXAtaW50ZXJhY3Rpb24iKTsNCiAgICAgICAgaW50ZXJhY3Rpb24uYXBwZW5kQ2hpbGQoZWxlbWVudCk7DQogICAgfQ0KfQ0KZnVuY3Rpb24gb3BlblBvcFVwKGRhdGFUeXBlLCBlbGVtZW50KSB7DQogICAgbGV0IGRhdGEgPSB7fTsNCiAgICBsZXQgaWQ7DQogICAgc3dpdGNoIChlbGVtZW50KSB7DQogICAgICAgIGNhc2UgdW5kZWZpbmVkOg0KICAgICAgICAgICAgc3dpdGNoIChkYXRhVHlwZSkgew0KICAgICAgICAgICAgICAgIGNhc2UgImdyb3VwLXRpdGxlIjoNCiAgICAgICAgICAgICAgICAgICAgaWYgKGlkID09IHVuZGVmaW5lZCkgew0KICAgICAgICAgICAgICAgICAgICAgICAgaWQgPSAtMTsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBkYXRhID0gZ2V0TG9jYWxEYXRhKCJmaWx0ZXIiLCBpZCk7DQogICAgICAgICAgICAgICAgICAgIGRhdGFbInR5cGUiXSA9ICJncm91cC10aXRsZSI7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgImN1c3RvbS1maWx0ZXIiOg0KICAgICAgICAgICAgICAgICAgICBpZiAoaWQgPT0gdW5kZWZpbmVkKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBpZCA9IC0xOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIGRhdGEgPSBnZXRMb2NhbERhdGEoImZpbHRlciIsIGlkKTsNCiAgICAgICAgICAgICAgICAgICAgZGF0YVsidHlwZSJdID0gImN1c3RvbS1maWx0ZXIiOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBkZWZhdWx0Og0KICAgICAgICAgICAgICAgICAgICBkYXRhWyJpZC5wcm92aWRlciJdID0gIi0iOw0KICAgICAgICAgICAgICAgICAgICBkYXRhWyJ0eXBlIl0gPSBkYXRhVHlwZTsNCiAgICAgICAgICAgICAgICAgICAgaWQgPSAiLSI7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICBpZCA9IGVsZW1lbnQuaWQ7DQogICAgICAgICAgICBkYXRhID0gZ2V0TG9jYWxEYXRhKGRhdGFUeXBlLCBpZCk7DQogICAgICAgICAgICBicmVhazsNCiAgICB9DQogICAgbGV0IGNvbnRlbnQgPSBuZXcgUG9wdXBDb250ZW50KCk7DQogICAgc3dpdGNoIChkYXRhVHlwZSkgew0KICAgICAgICBjYXNlICJwbGF5bGlzdCI6DQogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUhlYWRsaW5lKCJ7ey5wbGF5bGlzdC5wbGF5bGlzdFR5cGUudGl0bGV9fSIpOw0KICAgICAgICAgICAgLy8gVHlwZQ0KICAgICAgICAgICAgdmFyIHRleHQgPSBbIk0zVSIsICJIREhvbWVSdW4iXTsNCiAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBbImphdmFzY3JpcHQ6IG9wZW5Qb3BVcCgnbTN1JykiLCAiamF2YXNjcmlwdDogb3BlblBvcFVwKCdoZGhyJykiXTsNCiAgICAgICAgICAgIHZhciBzZWxlY3QgPSBjb250ZW50LmNyZWF0ZVNlbGVjdCh0ZXh0LCB2YWx1ZXMsICIiLCAidHlwZSIpOw0KICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgiaWQiLCAidHlwZSIpOw0KICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAnamF2YXNjcmlwdDogY2hhbmdlQnV0dG9uQWN0aW9uKHRoaXMsICJuZXh0IiwgIm9uY2xpY2siKScpOyAvLyBjaGFuZ2VCdXR0b25BY3Rpb24NCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5wbGF5bGlzdC50eXBlLnRpdGxlfX0iLCBzZWxlY3QpOw0KICAgICAgICAgICAgLy8gSW50ZXJhY3Rpb24NCiAgICAgICAgICAgIGNvbnRlbnQuY3JlYXRlSW50ZXJhY3Rpb24oKTsNCiAgICAgICAgICAgIC8vIEFib3J0DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAiY2FuY2VsIiwgInt7LmJ1dHRvbi5jYW5jZWx9fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IHNob3dFbGVtZW50KCJwb3B1cCIsIGZhbHNlKTsnKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgLy8gTmV4dA0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgIm5leHQiLCAie3suYnV0dG9uLm5leHR9fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgibTN1IiknKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgiaWQiLCAnbmV4dCcpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSAibTN1IjoNCiAgICAgICAgICAgIGNvbnRlbnQuY3JlYXRlSGVhZGxpbmUoZGF0YVR5cGUpOw0KICAgICAgICAgICAgLy8gTmFtZQ0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gIm5hbWUiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnBsYXlsaXN0Lm5hbWUucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnBsYXlsaXN0Lm5hbWUudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIERlc2NyaXB0aW9uDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAiZGVzY3JpcHRpb24iOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnBsYXlsaXN0LmRlc2NyaXB0aW9uLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5wbGF5bGlzdC5kZXNjcmlwdGlvbi50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgLy8gVVJMDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAiZmlsZS5zb3VyY2UiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnBsYXlsaXN0LmZpbGVNM1UucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnBsYXlsaXN0LmZpbGVNM1UudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIFR1bmVyDQogICAgICAgICAgICBpZiAoU0VSVkVSWyJzZXR0aW5ncyJdWyJidWZmZXIiXSAhPSAiLSIpIHsNCiAgICAgICAgICAgICAgICB2YXIgdGV4dCA9IFtdOw0KICAgICAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBbXTsNCiAgICAgICAgICAgICAgICBmb3IgKHZhciBpID0gMTsgaSA8PSAxMDA7IGkrKykgew0KICAgICAgICAgICAgICAgICAgICB0ZXh0LnB1c2goaS50b1N0cmluZygpKTsNCiAgICAgICAgICAgICAgICAgICAgdmFsdWVzLnB1c2goaS50b1N0cmluZygpKTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgdmFyIGRiS2V5ID0gInR1bmVyIjsNCiAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCBkYXRhW2RiS2V5XSwgZGJLZXkpOw0KICAgICAgICAgICAgICAgIHNlbGVjdC5zZXRBdHRyaWJ1dGUoIm9uZm9jdXMiLCAiamF2YXNjcmlwdDogcmV0dXJuOyIpOw0KICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5wbGF5bGlzdC50dW5lci50aXRsZX19Iiwgc2VsZWN0KTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgICAgIHZhciBkYktleSA9ICJ0dW5lciI7DQogICAgICAgICAgICAgICAgaWYgKGRhdGFbZGJLZXldID09IHVuZGVmaW5lZCkgew0KICAgICAgICAgICAgICAgICAgICBkYXRhW2RiS2V5XSA9IDE7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicmVhZG9ubHkiLCAidHJ1ZSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LmNsYXNzTmFtZSA9ICJub3RBdmFpbGFibGUiOw0KICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5wbGF5bGlzdC50dW5lci50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgY29udGVudC5kZXNjcmlwdGlvbigie3sucGxheWxpc3QudHVuZXIuZGVzY3JpcHRpb259fSIpOw0KICAgICAgICAgICAgLy8gSW50ZXJhdGlvbg0KICAgICAgICAgICAgY29udGVudC5jcmVhdGVJbnRlcmFjdGlvbigpOw0KICAgICAgICAgICAgLy8gRGVsZXRlDQogICAgICAgICAgICBpZiAoZGF0YVsiaWQucHJvdmlkZXIiXSAhPSAiLSIpIHsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAiZGVsZXRlIiwgInt7LmJ1dHRvbi5kZWxldGV9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LmNsYXNzTmFtZSA9ICJkZWxldGUiOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBzYXZlUG9wdXBEYXRhKCJtM3UiLCAiJyArIGlkICsgJyIsIHRydWUsIDApJyk7DQogICAgICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAiYmFjayIsICJ7ey5idXR0b24uYmFja319Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgicGxheWxpc3QiKScpOw0KICAgICAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgLy8gQWJvcnQNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJjYW5jZWwiLCAie3suYnV0dG9uLmNhbmNlbH19Iik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogc2hvd0VsZW1lbnQoInBvcHVwIiwgZmFsc2UpOycpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICAvLyBVcGRhdGUNCiAgICAgICAgICAgIGlmIChkYXRhWyJpZC5wcm92aWRlciJdICE9ICItIikgew0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJ1cGRhdGUiLCAie3suYnV0dG9uLnVwZGF0ZX19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoIm0zdSIsICInICsgaWQgKyAnIiwgZmFsc2UsIDEpJyk7DQogICAgICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICAvLyBTYXZlDQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAic2F2ZSIsICJ7ey5idXR0b24uc2F2ZX19Iik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogc2F2ZVBvcHVwRGF0YSgibTN1IiwgIicgKyBpZCArICciLCBmYWxzZSwgMCknKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGNhc2UgImhkaHIiOg0KICAgICAgICAgICAgY29udGVudC5jcmVhdGVIZWFkbGluZShkYXRhVHlwZSk7DQogICAgICAgICAgICAvLyBOYW1lDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAibmFtZSI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3sucGxheWxpc3QubmFtZS5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sucGxheWxpc3QubmFtZS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgLy8gRGVzY3JpcHRpb24NCiAgICAgICAgICAgIHZhciBkYktleSA9ICJkZXNjcmlwdGlvbiI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3sucGxheWxpc3QuZGVzY3JpcHRpb24ucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnBsYXlsaXN0LmRlc2NyaXB0aW9uLnBsYWNlaG9sZGVyfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBVUkwNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJmaWxlLnNvdXJjZSI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3sucGxheWxpc3QuZmlsZUhESFIucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnBsYXlsaXN0LmZpbGVIREhSLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBUdW5lcg0KICAgICAgICAgICAgaWYgKFNFUlZFUlsic2V0dGluZ3MiXVsiYnVmZmVyIl0gIT0gIi0iKSB7DQogICAgICAgICAgICAgICAgdmFyIHRleHQgPSBbXTsNCiAgICAgICAgICAgICAgICB2YXIgdmFsdWVzID0gW107DQogICAgICAgICAgICAgICAgZm9yICh2YXIgaSA9IDE7IGkgPD0gMTAwOyBpKyspIHsNCiAgICAgICAgICAgICAgICAgICAgdGV4dC5wdXNoKGkudG9TdHJpbmcoKSk7DQogICAgICAgICAgICAgICAgICAgIHZhbHVlcy5wdXNoKGkudG9TdHJpbmcoKSk7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIHZhciBkYktleSA9ICJ0dW5lciI7DQogICAgICAgICAgICAgICAgdmFyIHNlbGVjdCA9IGNvbnRlbnQuY3JlYXRlU2VsZWN0KHRleHQsIHZhbHVlcywgZGF0YVtkYktleV0sIGRiS2V5KTsNCiAgICAgICAgICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJvbmZvY3VzIiwgImphdmFzY3JpcHQ6IHJldHVybjsiKTsNCiAgICAgICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sucGxheWxpc3QudHVuZXIudGl0bGV9fSIsIHNlbGVjdCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICB2YXIgZGJLZXkgPSAidHVuZXIiOw0KICAgICAgICAgICAgICAgIGlmIChkYXRhW2RiS2V5XSA9PSB1bmRlZmluZWQpIHsNCiAgICAgICAgICAgICAgICAgICAgZGF0YVtkYktleV0gPSAxOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInJlYWRvbmx5IiwgInRydWUiKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5jbGFzc05hbWUgPSAibm90QXZhaWxhYmxlIjsNCiAgICAgICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sucGxheWxpc3QudHVuZXIudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGNvbnRlbnQuZGVzY3JpcHRpb24oInt7LnBsYXlsaXN0LnR1bmVyLmRlc2NyaXB0aW9ufX0iKTsNCiAgICAgICAgICAgIC8vIEludGVyYWN0aW9uDQogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUludGVyYWN0aW9uKCk7DQogICAgICAgICAgICAvLyBEZWxldGUNCiAgICAgICAgICAgIGlmIChkYXRhWyJpZC5wcm92aWRlciJdICE9ICItIikgew0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJkZWxldGUiLCAie3suYnV0dG9uLmRlbGV0ZX19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoImhkaHIiLCAiJyArIGlkICsgJyIsIHRydWUsIDApJyk7DQogICAgICAgICAgICAgICAgaW5wdXQuY2xhc3NOYW1lID0gImRlbGV0ZSI7DQogICAgICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAiYmFjayIsICJ7ey5idXR0b24uYmFja319Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgicGxheWxpc3QiKScpOw0KICAgICAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgLy8gQWJvcnQNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJjYW5jZWwiLCAie3suYnV0dG9uLmNhbmNlbH19Iik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogc2hvd0VsZW1lbnQoInBvcHVwIiwgZmFsc2UpOycpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICAvLyBVcGRhdGUNCiAgICAgICAgICAgIGlmIChkYXRhWyJpZC5wcm92aWRlciJdICE9ICItIikgew0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJ1cGRhdGUiLCAie3suYnV0dG9uLnVwZGF0ZX19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoImhkaHIiLCAiJyArIGlkICsgJyIsIGZhbHNlLCAxKScpOw0KICAgICAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgLy8gU2F2ZQ0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgInNhdmUiLCAie3suYnV0dG9uLnNhdmV9fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoImhkaHIiLCAiJyArIGlkICsgJyIsIGZhbHNlLCAwKScpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSAiZmlsdGVyIjoNCiAgICAgICAgICAgIGNvbnRlbnQuY3JlYXRlSGVhZGxpbmUoZGF0YVR5cGUpOw0KICAgICAgICAgICAgLy8gVHlwZQ0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gInR5cGUiOw0KICAgICAgICAgICAgdmFyIHRleHQgPSBbIk0zVTogIiArICJ7ey5maWx0ZXIudHlwZS5ncm91cFRpdGxlfX0iLCAieFRlVmU6ICIgKyAie3suZmlsdGVyLnR5cGUuY3VzdG9tRmlsdGVyfX0iXTsNCiAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBbImphdmFzY3JpcHQ6IG9wZW5Qb3BVcCgnZ3JvdXAtdGl0bGUnKSIsICJqYXZhc2NyaXB0OiBvcGVuUG9wVXAoJ2N1c3RvbS1maWx0ZXInKSJdOw0KICAgICAgICAgICAgdmFyIHNlbGVjdCA9IGNvbnRlbnQuY3JlYXRlU2VsZWN0KHRleHQsIHZhbHVlcywgImphdmFzY3JpcHQ6IG9wZW5Qb3BVcCgnZ3JvdXAtdGl0bGUnKSIsIGRiS2V5KTsNCiAgICAgICAgICAgIHNlbGVjdC5zZXRBdHRyaWJ1dGUoImlkIiwgaWQpOw0KICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAnamF2YXNjcmlwdDogY2hhbmdlQnV0dG9uQWN0aW9uKHRoaXMsICJuZXh0IiwgIm9uY2xpY2siKTsnKTsgLy8gY2hhbmdlQnV0dG9uQWN0aW9uDQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3suZmlsdGVyLnR5cGUudGl0bGV9fSIsIHNlbGVjdCk7DQogICAgICAgICAgICAvLyBJbnRlcmFjdGlvbg0KICAgICAgICAgICAgY29udGVudC5jcmVhdGVJbnRlcmFjdGlvbigpOw0KICAgICAgICAgICAgLy8gQWJvcnQNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJjYW5jZWwiLCAie3suYnV0dG9uLmNhbmNlbH19Iik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogc2hvd0VsZW1lbnQoInBvcHVwIiwgZmFsc2UpOycpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICAvLyBOZXh0DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAibmV4dCIsICJ7ey5idXR0b24ubmV4dH19Iik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJncm91cC10aXRsZSIpJyk7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoImlkIiwgJ25leHQnKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGNhc2UgImN1c3RvbS1maWx0ZXIiOg0KICAgICAgICBjYXNlICJncm91cC10aXRsZSI6DQogICAgICAgICAgICBzd2l0Y2ggKGRhdGFUeXBlKSB7DQogICAgICAgICAgICAgICAgY2FzZSAiY3VzdG9tLWZpbHRlciI6DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuY3JlYXRlSGVhZGxpbmUoInt7LmZpbHRlci5jdXN0b219fSIgKyAiIEZpbHRlciIpOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBjYXNlICJncm91cC10aXRsZSI6DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuY3JlYXRlSGVhZGxpbmUoInt7LmZpbHRlci5ncm91cH19IiArICIgRmlsdGVyIik7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgLy8gTmFtZSAgICAgIA0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gIm5hbWUiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LmZpbHRlci5uYW1lLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5maWx0ZXIubmFtZS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgLy8gRGVzY3JpcHRpb24NCiAgICAgICAgICAgIHZhciBkYktleSA9ICJkZXNjcmlwdGlvbiI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3suZmlsdGVyLmRlc2NyaXB0aW9uLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5maWx0ZXIuZGVzY3JpcHRpb24udGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIFR5cGUNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJ0eXBlIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImhpZGRlbiIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygiIiwgaW5wdXQpOw0KICAgICAgICAgICAgdmFyIGZpbHRlclR5cGUgPSBkYXRhW2RiS2V5XTsNCiAgICAgICAgICAgIHN3aXRjaCAoZmlsdGVyVHlwZSkgew0KICAgICAgICAgICAgICAgIGNhc2UgImN1c3RvbS1maWx0ZXIiOg0KICAgICAgICAgICAgICAgICAgICAvLyBDYXNlIHNlbnNpdGl2ZQ0KICAgICAgICAgICAgICAgICAgICB2YXIgZGJLZXkgPSAiY2FzZVNlbnNpdGl2ZSI7DQogICAgICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goZGJLZXkpOw0KICAgICAgICAgICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YVtkYktleV07DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5maWx0ZXIuY2FzZVNlbnNpdGl2ZS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgICAgICAgICAvLyBGaWx0ZXIgUnVsZSAoQ3VzdG9tKQ0KICAgICAgICAgICAgICAgICAgICB2YXIgZGJLZXkgPSAiZmlsdGVyIjsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3suZmlsdGVyLmZpbHRlclJ1bGUucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3suZmlsdGVyLmZpbHRlclJ1bGUudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAiZ3JvdXAtdGl0bGUiOg0KICAgICAgICAgICAgICAgICAgICAvL2FsZXJ0KGRiS2V5ICsgIiAiICsgZmlsdGVyVHlwZSkNCiAgICAgICAgICAgICAgICAgICAgLy8gRmlsdGVyIGJhc2VkIG9uIHRoZSBncm91cHMgaW4gdGhlIE0zVQ0KICAgICAgICAgICAgICAgICAgICB2YXIgZGJLZXkgPSAiZmlsdGVyIjsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGdyb3Vwc00zVSA9IGdldExvY2FsRGF0YSgibTN1R3JvdXBzIiwgIiIpOw0KICAgICAgICAgICAgICAgICAgICB2YXIgdGV4dCA9IGdyb3Vwc00zVVsidGV4dCJdOw0KICAgICAgICAgICAgICAgICAgICB2YXIgdmFsdWVzID0gZ3JvdXBzTTNVWyJ2YWx1ZSJdOw0KICAgICAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCBkYXRhW2RiS2V5XSwgZGJLZXkpOw0KICAgICAgICAgICAgICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3suZmlsdGVyLmZpbHRlckdyb3VwLnRpdGxlfX0iLCBzZWxlY3QpOw0KICAgICAgICAgICAgICAgICAgICBjb250ZW50LmRlc2NyaXB0aW9uKCJ7ey5maWx0ZXIuZmlsdGVyR3JvdXAuZGVzY3JpcHRpb259fSIpOw0KICAgICAgICAgICAgICAgICAgICAvLyBDYXNlIHNlbnNldGl2ZQ0KICAgICAgICAgICAgICAgICAgICB2YXIgZGJLZXkgPSAiY2FzZVNlbnNpdGl2ZSI7DQogICAgICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goZGJLZXkpOw0KICAgICAgICAgICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YVtkYktleV07DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5maWx0ZXIuY2FzZVNlbnNpdGl2ZS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgICAgICAgICB2YXIgZGJLZXkgPSAiaW5jbHVkZSI7DQogICAgICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LmZpbHRlci5pbmNsdWRlLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LmZpbHRlci5pbmNsdWRlLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuZGVzY3JpcHRpb24oInt7LmZpbHRlci5pbmNsdWRlLmRlc2NyaXB0aW9ufX0iKTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGRiS2V5ID0gImV4Y2x1ZGUiOw0KICAgICAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5maWx0ZXIuZXhjbHVkZS5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5maWx0ZXIuZXhjbHVkZS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgICAgICAgICBjb250ZW50LmRlc2NyaXB0aW9uKCJ7ey5maWx0ZXIuZXhjbHVkZS5kZXNjcmlwdGlvbn19Iik7DQogICAgICAgICAgICAgICAgICAgIC8vIFByZXNlcnZlIE0zVSBQbGF5bGlzdCBDaGFubmVsIE1hcHBpbmcNCiAgICAgICAgICAgICAgICAgICAgdmFyIGRiS2V5ID0gInByZXNlcnZlTWFwcGluZyI7DQogICAgICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goZGJLZXkpOw0KICAgICAgICAgICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YVtkYktleV07DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5maWx0ZXIucHJlc2VydmVNYXBwaW5nLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAgICAgICAgIC8vIFN0YXJ0aW5nIENoYW5uZWwgTnVtYmVyIE1hcHBpbmcNCiAgICAgICAgICAgICAgICAgICAgdmFyIGRiS2V5ID0gInN0YXJ0aW5nQ2hhbm5lbCI7DQogICAgICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LmZpbHRlci5zdGFydGluZ0NoYW5uZWwucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3suZmlsdGVyLnN0YXJ0aW5nQ2hhbm5lbC50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgICAgICAgICAvLyBGaWxsIE1pc3NpbmcgRVBHIERhdGENCiAgICAgICAgICAgICAgICAgICAgLy8gVGhlIGZvbGxvd2luZyBjb2RlIG9ubHkgd29ya3Mgd2hlbiB4VGVWZSBEdW1teSBhbHJlYWR5IGV4aXN0cw0KICAgICAgICAgICAgICAgICAgICAvLyB2YXIgZGJLZXk6c3RyaW5nID0gImRlZmF1bHRNaXNzaW5nRVBHIg0KICAgICAgICAgICAgICAgICAgICAvLyB2YXIgeG1sdHY6WE1MVFZGaWxlID0gbmV3IFhNTFRWRmlsZSgpDQogICAgICAgICAgICAgICAgICAgIC8vIHZhciBzZWxlY3QgPSB4bWx0di5nZXRQcm9ncmFtcygieFRlVmUgRHVtbXkiLCBkYXRhW2RiS2V5XSkNCiAgICAgICAgICAgICAgICAgICAgLy8gc2VsZWN0LnNldEF0dHJpYnV0ZSgibmFtZSIsIGRiS2V5KQ0KICAgICAgICAgICAgICAgICAgICAvLyBzZWxlY3Quc2V0QXR0cmlidXRlKCJpZCIsICJwb3B1cC1taXNzaW5nLWVwZyIpDQogICAgICAgICAgICAgICAgICAgIC8vIFRoZSB3b3JrYXJvdW5kIGlzIGN1cnJlbnRseSB0byBoYXJkIGNvZGUgdGhlIHhUZVZlIER1bW15IGRhdGENCiAgICAgICAgICAgICAgICAgICAgdmFyIGRiS2V5ID0gImRlZmF1bHRNaXNzaW5nRVBHIjsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGxpc3RPcHRpb25zID0geyAidGV4dCI6IFsiLSIsICIzMCBNaW51dGVzICgzMF9NaW51dGVzKSIsICI2MCBNaW51dGVzICg2MF9NaW51dGVzKSIsICI5MCBNaW51dGVzICg5MF9NaW51dGVzKSIsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgIjEyMCBNaW51dGVzICgxMjBfTWludXRlcykiLCAiMTgwIE1pbnV0ZXMgKDMwX01pbnV0ZXMpIiwgIjI0MCBNaW51dGVzICgzMF9NaW51dGVzKSIsICIzNjAgTWludXRlcyAoMzBfTWludXRlcykiXSwNCiAgICAgICAgICAgICAgICAgICAgICAgICJ2YWx1ZSI6IFsiLSIsICIzMF9NaW51dGVzIiwgIjYwX01pbnV0ZXMiLCAiOTBfTWludXRlcyIsICIxMjBfTWludXRlcyIsICIxODBfTWludXRlcyIsICIyNDBfTWludXRlcyIsICIzNjBfTWludXRlcyIsXSB9Ow0KICAgICAgICAgICAgICAgICAgICB2YXIgdGV4dCA9IGxpc3RPcHRpb25zWyJ0ZXh0Il07DQogICAgICAgICAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBsaXN0T3B0aW9uc1sidmFsdWUiXTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHNlbGVjdCA9IGNvbnRlbnQuY3JlYXRlU2VsZWN0KHRleHQsIHZhbHVlcywgZGF0YVtkYktleV0sIGRiS2V5KTsNCiAgICAgICAgICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LmZpbHRlci5kZWZhdWx0TWlzc2luZ0VQRy50aXRsZX19Iiwgc2VsZWN0KTsNCiAgICAgICAgICAgICAgICAgICAgY29udGVudC5kZXNjcmlwdGlvbigie3suZmlsdGVyLmRlZmF1bHRNaXNzaW5nRVBHLmRlc2NyaXB0aW9ufX0iKTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICB9DQogICAgICAgICAgICAvLyBJbnRlcmFjdGlvbg0KICAgICAgICAgICAgY29udGVudC5jcmVhdGVJbnRlcmFjdGlvbigpOw0KICAgICAgICAgICAgLy8gRGVsZXRlDQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAiZGVsZXRlIiwgInt7LmJ1dHRvbi5kZWxldGV9fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoImZpbHRlciIsICInICsgaWQgKyAnIiwgdHJ1ZSwgMCknKTsNCiAgICAgICAgICAgIGlucHV0LmNsYXNzTmFtZSA9ICJkZWxldGUiOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICAvLyBBYm9ydA0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImNhbmNlbCIsICJ7ey5idXR0b24uY2FuY2VsfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBzaG93RWxlbWVudCgicG9wdXAiLCBmYWxzZSk7Jyk7DQogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIC8vIFNhdmUNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJzYXZlIiwgInt7LmJ1dHRvbi5zYXZlfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBzYXZlUG9wdXBEYXRhKCJmaWx0ZXIiLCAiJyArIGlkICsgJyIsIGZhbHNlLCAwKScpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSAieG1sdHYiOg0KICAgICAgICAgICAgY29udGVudC5jcmVhdGVIZWFkbGluZShkYXRhVHlwZSk7DQogICAgICAgICAgICAvLyBOYW1lDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAibmFtZSI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3sueG1sdHYubmFtZS5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sueG1sdHYubmFtZS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgLy8gRGVzY3JpcHRpb24NCiAgICAgICAgICAgIHZhciBkYktleSA9ICJkZXNjcmlwdGlvbiI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3sueG1sdHYuZGVzY3JpcHRpb24ucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnhtbHR2LmRlc2NyaXB0aW9uLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBVUkwNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJmaWxlLnNvdXJjZSI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3sueG1sdHYuZmlsZVhNTFRWLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey54bWx0di5maWxlWE1MVFYudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIEludGVyYWN0aW9uDQogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUludGVyYWN0aW9uKCk7DQogICAgICAgICAgICAvLyBEZWxldGUNCiAgICAgICAgICAgIGlmIChkYXRhWyJpZC5wcm92aWRlciJdICE9ICItIikgew0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJkZWxldGUiLCAie3suYnV0dG9uLmRlbGV0ZX19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoInhtbHR2IiwgIicgKyBpZCArICciLCB0cnVlLCAwKScpOw0KICAgICAgICAgICAgICAgIGlucHV0LmNsYXNzTmFtZSA9ICJkZWxldGUiOw0KICAgICAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgLy8gQWJvcnQNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJjYW5jZWwiLCAie3suYnV0dG9uLmNhbmNlbH19Iik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogc2hvd0VsZW1lbnQoInBvcHVwIiwgZmFsc2UpOycpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICAvLyBVcGRhdGUNCiAgICAgICAgICAgIGlmIChkYXRhWyJpZC5wcm92aWRlciJdICE9ICItIikgew0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJ1cGRhdGUiLCAie3suYnV0dG9uLnVwZGF0ZX19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoInhtbHR2IiwgIicgKyBpZCArICciLCBmYWxzZSwgMSknKTsNCiAgICAgICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIC8vIFNhdmUNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJzYXZlIiwgInt7LmJ1dHRvbi5zYXZlfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBzYXZlUG9wdXBEYXRhKCJ4bWx0diIsICInICsgaWQgKyAnIiwgZmFsc2UsIDApJyk7DQogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJ1c2VycyI6DQogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUhlYWRsaW5lKCJ7ey5tYWluTWVudS5pdGVtLnVzZXJzfX0iKTsNCiAgICAgICAgICAgIC8vIFVzZXIgbmFtZQ0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gInVzZXJuYW1lIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey51c2Vycy51c2VybmFtZS5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sudXNlcnMudXNlcm5hbWUudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIE5ldyBQYXJzc3dvcmQNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJwYXNzd29yZCI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJwYXNzd29yZCIsIGRiS2V5LCAiIik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnVzZXJzLnBhc3N3b3JkLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey51c2Vycy5wYXNzd29yZC50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgLy8gQ29uZmlybWF0aW9uDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAiY29uZmlybSI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJwYXNzd29yZCIsIGRiS2V5LCAiIik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnVzZXJzLmNvbmZpcm0ucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnVzZXJzLmNvbmZpcm0udGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIEF1dGhlbnRpY2F0aW9uIFdFQg0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gImF1dGhlbnRpY2F0aW9uLndlYiI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KGRiS2V5KTsNCiAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhW2RiS2V5XTsNCiAgICAgICAgICAgIGlmIChkYXRhWyJkZWZhdWx0VXNlciJdID09IHRydWUpIHsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAiamF2YXNjcmlwdDogcmV0dXJuIGZhbHNlIik7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sudXNlcnMud2ViLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBBdXRoZW50aWNhdGlvbiBQTVMNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJhdXRoZW50aWNhdGlvbi5wbXMiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChkYktleSk7DQogICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YVtkYktleV07DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sudXNlcnMucG1zLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBBdXRoZW50aWNhdGlvbiBNM1UNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJhdXRoZW50aWNhdGlvbi5tM3UiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChkYktleSk7DQogICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YVtkYktleV07DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sudXNlcnMubTN1LnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBBdXRoZW50aWNhdGlvbiBYTUwNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJhdXRoZW50aWNhdGlvbi54bWwiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChkYktleSk7DQogICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YVtkYktleV07DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sudXNlcnMueG1sLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBBdXRoZW50aWNhdGlvbiBBUEkNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJhdXRoZW50aWNhdGlvbi5hcGkiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChkYktleSk7DQogICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YVtkYktleV07DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sudXNlcnMuYXBpLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBJbnRlcmFjdGlvbg0KICAgICAgICAgICAgY29udGVudC5jcmVhdGVJbnRlcmFjdGlvbigpOw0KICAgICAgICAgICAgLy8gRGVsZXRlDQogICAgICAgICAgICBpZiAoZGF0YVsiZGVmYXVsdFVzZXIiXSAhPSB0cnVlICYmIGlkICE9ICItIikgew0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJkZWxldGUiLCAie3suYnV0dG9uLmRlbGV0ZX19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuY2xhc3NOYW1lID0gImRlbGV0ZSI7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoIicgKyBkYXRhVHlwZSArICciLCAiJyArIGlkICsgJyIsIHRydWUsIDApJyk7DQogICAgICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICAvLyBBYm9ydA0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImNhbmNlbCIsICJ7ey5idXR0b24uY2FuY2VsfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBzaG93RWxlbWVudCgicG9wdXAiLCBmYWxzZSk7Jyk7DQogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIC8vIFNhdmUNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJzYXZlIiwgInt7LmJ1dHRvbi5zYXZlfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBzYXZlUG9wdXBEYXRhKCInICsgZGF0YVR5cGUgKyAnIiwgIicgKyBpZCArICciLCAiZmFsc2UiKTsnKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGNhc2UgIm1hcHBpbmciOg0KICAgICAgICAgICAgY29udGVudC5jcmVhdGVIZWFkbGluZSgie3subWFpbk1lbnUuaXRlbS5tYXBwaW5nfX0iKTsNCiAgICAgICAgICAgIC8vIEFjdGl2ZQ0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gIngtYWN0aXZlIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goZGJLZXkpOw0KICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGFbZGJLZXldOw0KICAgICAgICAgICAgaW5wdXQuaWQgPSAiYWN0aXZlIjsNCiAgICAgICAgICAgIC8vaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpDQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRvZ2dsZUNoYW5uZWxTdGF0dXMoJyIgKyBpZCArICInLCB0aGlzKSIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7Lm1hcHBpbmcuYWN0aXZlLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBDaGFubmVsIG5hbWUNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJ4LW5hbWUiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICBpZiAoQlVMS19FRElUID09IHRydWUpIHsNCiAgICAgICAgICAgICAgICBpbnB1dC5zdHlsZS5ib3JkZXIgPSAic29saWQgMXB4IHJlZCI7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJyZWFkb25seSIsICJ0cnVlIik7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3subWFwcGluZy5jaGFubmVsTmFtZS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgY29udGVudC5kZXNjcmlwdGlvbihkYXRhWyJuYW1lIl0pOw0KICAgICAgICAgICAgLy8gRGVzY3JpcHRpb24NCiAgICAgICAgICAgIHZhciBkYktleSA9ICJ4LWRlc2NyaXB0aW9uIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5tYXBwaW5nLmRlc2NyaXB0aW9uLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5tYXBwaW5nLmRlc2NyaXB0aW9uLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBVcGRhdGUgdGhlIGNoYW5uZWwgbmFtZQ0KICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoIl91dWlkLmtleSIpKSB7DQogICAgICAgICAgICAgICAgaWYgKGRhdGFbIl91dWlkLmtleSJdICE9ICIiKSB7DQogICAgICAgICAgICAgICAgICAgIHZhciBkYktleSA9ICJ4LXVwZGF0ZS1jaGFubmVsLW5hbWUiOw0KICAgICAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KGRiS2V5KTsNCiAgICAgICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YVtkYktleV07DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5tYXBwaW5nLnVwZGF0ZUNoYW5uZWxOYW1lLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgLy8gTG9nbyBVUkwgKENoYW5uZWwpIA0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gInR2Zy1sb2dvIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJpZCIsICJjaGFubmVsLWljb24iKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5tYXBwaW5nLmNoYW5uZWxMb2dvLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBDaGFubmVsIGxvZ28gdXBkYXRlDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAieC11cGRhdGUtY2hhbm5lbC1pY29uIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goZGJLZXkpOw0KICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGFbZGJLZXldOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJpZCIsICJ1cGRhdGUtaWNvbiIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJzsgY2hhbmdlQ2hhbm5lbExvZ28oJyIgKyBpZCArICInKTsiKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5tYXBwaW5nLnVwZGF0ZUNoYW5uZWxMb2dvLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBFeHBhbmQgRVBHIGNhdGVnb3J5DQogICAgICAgICAgICB2YXIgZGJLZXkgPSAieC1jYXRlZ29yeSI7DQogICAgICAgICAgICB2YXIgdGV4dCA9IFsiLSIsICJLaWRzIChFbWJ5IG9ubHkpIiwgIk5ld3MiLCAiTW92aWUiLCAiU2VyaWVzIiwgIlNwb3J0cyJdOw0KICAgICAgICAgICAgdmFyIHZhbHVlcyA9IFsiIiwgIktpZHMiLCAiTmV3cyIsICJNb3ZpZSIsICJTZXJpZXMiLCAiU3BvcnRzIl07DQogICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCBkYXRhW2RiS2V5XSwgZGJLZXkpOw0KICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5tYXBwaW5nLmVwZ0NhdGVnb3J5LnRpdGxlfX0iLCBzZWxlY3QpOw0KICAgICAgICAgICAgLy8gTTNVIGdyb3VwIHRpdGxlDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAieC1ncm91cC10aXRsZSI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgIGlucHV0LmRhdGFzZXQub2xkVmFsdWUgPSBkYXRhW2RiS2V5XTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5tYXBwaW5nLm0zdUdyb3VwVGl0bGUudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIGlmIChkYXRhWyJncm91cC10aXRsZSJdICE9IHVuZGVmaW5lZCkgew0KICAgICAgICAgICAgICAgIGNvbnRlbnQuZGVzY3JpcHRpb24oZGF0YVsiZ3JvdXAtdGl0bGUiXSk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBpZiAoZGF0YVsieC11cGRhdGUtY2hhbm5lbC1ncm91cCJdID09IHRydWUpIHsNCiAgICAgICAgICAgICAgICBpbnB1dC5kaXNhYmxlZCA9IHRydWU7DQogICAgICAgICAgICB9DQogICAgICAgICAgICAvLyBVcGRhdGUgY2hhbm5lbCBncm91cCBjaGVja2JveA0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gIngtdXBkYXRlLWNoYW5uZWwtZ3JvdXAiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChkYktleSk7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRvZ2dsZUdyb3VwVXBkYXRlQ2IoJyIgKyBpZCArICInLCB0aGlzKTsiKTsNCiAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhW2RiS2V5XTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5tYXBwaW5nLnVwZGF0ZUNoYW5uZWxHcm91cC50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgY29udGVudC5kZXNjcmlwdGlvbigie3subWFwcGluZy51cGRhdGVDaGFubmVsR3JvdXAuZGVzY3JpcHRpb259fSIpOw0KICAgICAgICAgICAgLy8gWE1MVFYgZmlsZQ0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gJ3gteG1sdHYtZmlsZSc7DQogICAgICAgICAgICBjb25zdCB4bWxUdkZpbGUgPSBkYXRhW2RiS2V5XTsNCiAgICAgICAgICAgIHZhciB4bWxUdiA9IG5ldyBYTUxUVkZpbGUoKTsNCiAgICAgICAgICAgIGNvbnN0IHhtbFR2RmlsZVNlbGVjdCA9IHhtbFR2LmdldEZpbGVzKGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIHhtbFR2RmlsZVNlbGVjdC5zZXRBdHRyaWJ1dGUoJ25hbWUnLCBkYktleSk7DQogICAgICAgICAgICB4bWxUdkZpbGVTZWxlY3Quc2V0QXR0cmlidXRlKCdpZCcsICdwb3B1cC14bWx0dicpOw0KICAgICAgICAgICAgeG1sVHZGaWxlU2VsZWN0LnNldEF0dHJpYnV0ZSgnb25jaGFuZ2UnLCBgamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCc7IHNldFhtbHR2Q2hhbm5lbCgnJHtpZH0nLCB0aGlzKTtgKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCd7ey5tYXBwaW5nLnhtbHR2RmlsZS50aXRsZX19JywgeG1sVHZGaWxlU2VsZWN0KTsNCiAgICAgICAgICAgIC8vIFhNTFRWIE1hcHBpbmcNCiAgICAgICAgICAgIHZhciBkYktleSA9ICd4LW1hcHBpbmcnOw0KICAgICAgICAgICAgdmFyIHhtbFR2ID0gbmV3IFhNTFRWRmlsZSgpOw0KICAgICAgICAgICAgY29uc3QgY3VycmVudFhtbFR2SWQgPSBkYXRhW2RiS2V5XTsNCiAgICAgICAgICAgIGNvbnN0IFt4bWxUdklkQ29udGFpbmVyLCB4bWxUdklkSW5wdXQsIHhtbFR2SWREYXRhbGlzdF0gPSB4bWxUdi5uZXdYbWxUdklkUGlja2VyKHhtbFR2RmlsZSwgY3VycmVudFhtbFR2SWQpOw0KICAgICAgICAgICAgeG1sVHZJZENvbnRhaW5lci5zZXRBdHRyaWJ1dGUoJ2lkJywgJ3htbHR2LWlkLXBpY2tlci1jb250YWluZXInKTsNCiAgICAgICAgICAgIHhtbFR2SWRJbnB1dC5zZXRBdHRyaWJ1dGUoJ2xpc3QnLCAneG1sdHYtaWQtcGlja2VyLWRhdGFsaXN0Jyk7DQogICAgICAgICAgICB4bWxUdklkSW5wdXQuc2V0QXR0cmlidXRlKCduYW1lJywgJ3gtbWFwcGluZycpOyAvLyBTaG91bGQgc3RheSB4LW1hcHBpbmcgYXMgaXQgd2lsbCBiZSB1c2VkIGluIGRvbmVQb3B1cERhdGEgdG8gbWFrZSBhIHNlcnZlciByZXF1ZXN0DQogICAgICAgICAgICB4bWxUdklkSW5wdXQuc2V0QXR0cmlidXRlKCdpZCcsICd4bWx0di1pZC1waWNrZXItaW5wdXQnKTsNCiAgICAgICAgICAgIHhtbFR2SWRJbnB1dC5zZXRBdHRyaWJ1dGUoJ29uY2hhbmdlJywgYGphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnOyBjaGVja1htbHR2Q2hhbm5lbCgnJHtpZH0nLCB0aGlzLnZhbHVlLCAnJHt4bWxUdkZpbGV9Jyk7YCk7DQogICAgICAgICAgICB4bWxUdklkRGF0YWxpc3Quc2V0QXR0cmlidXRlKCdpZCcsICd4bWx0di1pZC1waWNrZXItZGF0YWxpc3QnKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCd7ey5tYXBwaW5nLnhtbHR2Q2hhbm5lbC50aXRsZX19JywgeG1sVHZJZENvbnRhaW5lcik7DQogICAgICAgICAgICAvLyBUaW1lc2hpZnQNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJ4LXRpbWVzaGlmdCI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3subWFwcGluZy50aW1lc2hpZnQucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJpZCIsICJ0aW1lc2hpZnQiKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5tYXBwaW5nLnRpbWVzaGlmdC50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgLy8gSW50ZXJhY3Rpb24NCiAgICAgICAgICAgIGNvbnRlbnQuY3JlYXRlSW50ZXJhY3Rpb24oKTsNCiAgICAgICAgICAgIC8vIFVwbG9hZCBsb2dvDQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAiY2FuY2VsIiwgInt7LmJ1dHRvbi51cGxvYWRMb2dvfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiB1cGxvYWRMb2dvKCk7Jyk7DQogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIC8vIEFib3J0DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAiY2FuY2VsIiwgInt7LmJ1dHRvbi5jYW5jZWx9fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IHNob3dFbGVtZW50KCJwb3B1cCIsIGZhbHNlKTsnKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgLy8gRmluaXNoZWQNCiAgICAgICAgICAgIHZhciBpZHMgPSBbXTsNCiAgICAgICAgICAgIGlkcyA9IGdldEFsbFNlbGVjdGVkQ2hhbm5lbHMoKTsNCiAgICAgICAgICAgIGlmIChpZHMubGVuZ3RoID09IDApIHsNCiAgICAgICAgICAgICAgICBpZHMucHVzaChpZCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAic2F2ZSIsICJ7ey5idXR0b24uZG9uZX19Iik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogZG9uZVBvcHVwRGF0YSgiJyArIGRhdGFUeXBlICsgJyIsICInICsgaWRzICsgJyIsICJmYWxzZSIpOycpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgIGJyZWFrOw0KICAgIH0NCiAgICBzaG93UG9wVXBFbGVtZW50KCdwb3B1cC1jdXN0b20nKTsNCn0NCmNsYXNzIFhNTFRWRmlsZSB7DQogICAgZ2V0RmlsZXMoc2V0KSB7DQogICAgICAgIGxldCBmaWxlSURzID0gZ2V0T3duT2JqUHJvcHMoU0VSVkVSWyJ4ZXBnIl1bInhtbHR2TWFwIl0pOw0KICAgICAgICBsZXQgdmFsdWVzID0gbmV3IEFycmF5KCItIik7DQogICAgICAgIGxldCB0ZXh0ID0gbmV3IEFycmF5KCItIik7DQogICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgZmlsZUlEcy5sZW5ndGg7IGkrKykgew0KICAgICAgICAgICAgaWYgKGZpbGVJRHNbaV0gIT0gInhUZVZlIER1bW15Iikgew0KICAgICAgICAgICAgICAgIHZhbHVlcy5wdXNoKGdldFZhbHVlRnJvbVByb3ZpZGVyRmlsZShmaWxlSURzW2ldLCAieG1sdHYiLCAiZmlsZS54dGV2ZSIpKTsNCiAgICAgICAgICAgICAgICB0ZXh0LnB1c2goZ2V0VmFsdWVGcm9tUHJvdmlkZXJGaWxlKGZpbGVJRHNbaV0sICJ4bWx0diIsICJuYW1lIikpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgZWxzZSB7DQogICAgICAgICAgICAgICAgdmFsdWVzLnB1c2goZmlsZUlEc1tpXSk7DQogICAgICAgICAgICAgICAgdGV4dC5wdXNoKGZpbGVJRHNbaV0pOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQogICAgICAgIGxldCBzZWxlY3QgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJTRUxFQ1QiKTsNCiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0ZXh0Lmxlbmd0aDsgaSsrKSB7DQogICAgICAgICAgICB2YXIgb3B0aW9uID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiT1BUSU9OIik7DQogICAgICAgICAgICBvcHRpb24uc2V0QXR0cmlidXRlKCJ2YWx1ZSIsIHZhbHVlc1tpXSk7DQogICAgICAgICAgICBvcHRpb24uaW5uZXJUZXh0ID0gdGV4dFtpXTsNCiAgICAgICAgICAgIHNlbGVjdC5hcHBlbmRDaGlsZChvcHRpb24pOw0KICAgICAgICB9DQogICAgICAgIGlmIChzZXQgIT0gIiIpIHsNCiAgICAgICAgICAgIHNlbGVjdC52YWx1ZSA9IHNldDsNCiAgICAgICAgfQ0KICAgICAgICByZXR1cm4gc2VsZWN0Ow0KICAgIH0NCiAgICAvLyBUT0RPOiBEaXNwbGF5IEZVTEwgbGlzdCwgc2VlOg0KICAgIC8vID4gaHR0cHM6Ly9zdGFja292ZXJmbG93LmNvbS9xdWVzdGlvbnMvMzc0Nzg3MjcvaG93LWNhbi1pLW1ha2UtYS1icm93c2VyLWRpc3BsYXktYWxsLWRhdGFsaXN0LW9wdGlvbnMtd2hlbi1hLWRlZmF1bHQtdmFsdWUtaXMtc2UNCiAgICAvLyA+IGh0dHBzOi8vd3d3LmhvbmdraWF0LmNvbS9ibG9nL3NlYXJjaC1zZWxlY3QtdXNpbmctZGF0YWxpc3QvDQogICAgLyoqDQogICAgICogQHBhcmFtIHhtbFR2RmlsZSBYTUwgZmlsZSBwYXRoIHRvIGdldCBFUEcgZnJvbS4NCiAgICAgKiBAcGFyYW0gY3VycmVudFhtbFR2SWQgQ3VycmVudCBYTUxUViBJRCB0byBzZXQgaW5pdGlhbCBpbnB1dCB2YWx1ZSB0by4NCiAgICAgKiBAcmV0dXJucyBBcnJheSBvZiwgc2VxdWVudGlhbGx5Og0KICAgICAqIDEpIENvbnRhaW5lciBvZiB0aGUgcGlja2VyLg0KICAgICAqIDIpIElucHV0IGZpZWxkIHRvIHR5cGUgYXQgYW5kIGdldCBjaG9pY2UgZnJvbS4NCiAgICAgKiAzKSBEYXRhbGlzdCBjb250YWluaW5nIGV2ZXJ5IG9wdGlvbi4NCiAgICAgKi8NCiAgICBuZXdYbWxUdklkUGlja2VyKHhtbFR2RmlsZSwgY3VycmVudFhtbFR2SWQpIHsNCiAgICAgICAgY29uc3QgY29udGFpbmVyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7DQogICAgICAgIGNvbnN0IGlucHV0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnaW5wdXQnKTsNCiAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCd0eXBlJywgJ3RleHQnKTsNCiAgICAgICAgLy8gSW5pdGlhbGx5LCBzZXQgdmFsdWUgdG8gJy0nIGlmIGlucHV0IGlzIGVtcHR5DQogICAgICAgIGlucHV0LnZhbHVlID0gKGN1cnJlbnRYbWxUdklkKSA/IGN1cnJlbnRYbWxUdklkIDogJy0nOw0KICAgICAgICAvLyBXaGVuIGlucHV0IGlzIGZvY3VzZWQsIHJlbW92ZSAnLScgZnJvbSBpdA0KICAgICAgICBpbnB1dC5hZGRFdmVudExpc3RlbmVyKCdmb2N1cycsIChldnQpID0+IHsNCiAgICAgICAgICAgIGNvbnN0IHRhcmdldCA9IGV2dC50YXJnZXQ7DQogICAgICAgICAgICB0YXJnZXQudmFsdWUgPSAodGFyZ2V0LnZhbHVlID09PSAnLScpID8gJycgOiB0YXJnZXQudmFsdWU7DQogICAgICAgIH0pOw0KICAgICAgICAvLyBXaGVuIGlucHV0IGxvc2UgZm9jdXMgb3IgdGFrZSBhIHZhbHVlLCBpZiBpdCdzIGVtcHR5LCBzZXQgdmFsdWUgdG8gJy0nDQogICAgICAgIGlucHV0LmFkZEV2ZW50TGlzdGVuZXIoJ2JsdXInLCBzZXRGYWxsYmFja1ZhbHVlKTsNCiAgICAgICAgaW5wdXQuYWRkRXZlbnRMaXN0ZW5lcignY2hhbmdlJywgc2V0RmFsbGJhY2tWYWx1ZSk7DQogICAgICAgIGZ1bmN0aW9uIHNldEZhbGxiYWNrVmFsdWUoZXZ0KSB7DQogICAgICAgICAgICBjb25zdCB0YXJnZXQgPSBldnQudGFyZ2V0Ow0KICAgICAgICAgICAgdGFyZ2V0LnZhbHVlID0gKHRhcmdldC52YWx1ZSkgPyB0YXJnZXQudmFsdWUgOiAnLSc7DQogICAgICAgIH0NCiAgICAgICAgY29udGFpbmVyLmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgY29uc3QgZGF0YWxpc3QgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkYXRhbGlzdCcpOw0KICAgICAgICBjb25zdCBvcHRpb24gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdvcHRpb24nKTsNCiAgICAgICAgb3B0aW9uLnNldEF0dHJpYnV0ZSgndmFsdWUnLCAnLScpOw0KICAgICAgICBvcHRpb24uaW5uZXJUZXh0ID0gJy0nOw0KICAgICAgICBkYXRhbGlzdC5hcHBlbmRDaGlsZChvcHRpb24pOw0KICAgICAgICBjb25zdCBlcGcgPSBTRVJWRVJbJ3hlcGcnXVsneG1sdHZNYXAnXVt4bWxUdkZpbGVdOw0KICAgICAgICBpZiAoZXBnKSB7DQogICAgICAgICAgICBjb25zdCBwcm9ncmFtSWRzID0gZ2V0T3duT2JqUHJvcHMoZXBnKTsNCiAgICAgICAgICAgIHByb2dyYW1JZHMuZm9yRWFjaCgocHJvZ3JhbUlkKSA9PiB7DQogICAgICAgICAgICAgICAgY29uc3QgcHJvZ3JhbSA9IGVwZ1twcm9ncmFtSWRdOw0KICAgICAgICAgICAgICAgIGlmIChwcm9ncmFtLmhhc093blByb3BlcnR5KCdkaXNwbGF5LW5hbWVzJykpIHsNCiAgICAgICAgICAgICAgICAgICAgcHJvZ3JhbVsnZGlzcGxheS1uYW1lcyddLmZvckVhY2goKGRpc3BsYXlOYW1lKSA9PiB7DQogICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBvcHRpb24gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdvcHRpb24nKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIG9wdGlvbi5zZXRBdHRyaWJ1dGUoJ3ZhbHVlJywgcHJvZ3JhbUlkKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIG9wdGlvbi5pbm5lclRleHQgPSBkaXNwbGF5TmFtZVsnVmFsdWUnXTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGRhdGFsaXN0LmFwcGVuZENoaWxkKG9wdGlvbik7DQogICAgICAgICAgICAgICAgICAgIH0pOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICAgICAgY29uc3Qgb3B0aW9uID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnb3B0aW9uJyk7DQogICAgICAgICAgICAgICAgICAgIG9wdGlvbi5zZXRBdHRyaWJ1dGUoJ3ZhbHVlJywgcHJvZ3JhbUlkKTsNCiAgICAgICAgICAgICAgICAgICAgb3B0aW9uLmlubmVyVGV4dCA9ICctJzsNCiAgICAgICAgICAgICAgICAgICAgZGF0YWxpc3QuYXBwZW5kQ2hpbGQob3B0aW9uKTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9KTsNCiAgICAgICAgfQ0KICAgICAgICBjb250YWluZXIuYXBwZW5kQ2hpbGQoZGF0YWxpc3QpOw0KICAgICAgICByZXR1cm4gW2NvbnRhaW5lciwgaW5wdXQsIGRhdGFsaXN0XTsNCiAgICB9DQp9DQpmdW5jdGlvbiBnZXRWYWx1ZUZyb21Qcm92aWRlckZpbGUoZmlsZSwgZmlsZVR5cGUsIGtleSkgew0KICAgIGlmIChmaWxlID09ICJ4VGVWZSBEdW1teSIpIHsNCiAgICAgICAgcmV0dXJuIGZpbGU7DQogICAgfQ0KICAgIGxldCBmaWxlSUQ7DQogICAgbGV0IGluZGljYXRvciA9IGZpbGUuY2hhckF0KDApOw0KICAgIHN3aXRjaCAoaW5kaWNhdG9yKSB7DQogICAgICAgIGNhc2UgIk0iOg0KICAgICAgICAgICAgZmlsZVR5cGUgPSAibTN1IjsNCiAgICAgICAgICAgIGZpbGVJRCA9IGZpbGU7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSAiSCI6DQogICAgICAgICAgICBmaWxlVHlwZSA9ICJoZGhyIjsNCiAgICAgICAgICAgIGZpbGVJRCA9IGZpbGU7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSAiWCI6DQogICAgICAgICAgICBmaWxlVHlwZSA9ICJ4bWx0diI7DQogICAgICAgICAgICBmaWxlSUQgPSBmaWxlLnN1YnN0cmluZygwLCBmaWxlLmxhc3RJbmRleE9mKCcuJykpOw0KICAgICAgICAgICAgYnJlYWs7DQogICAgfQ0KICAgIGlmIChTRVJWRVJbInNldHRpbmdzIl1bImZpbGVzIl1bZmlsZVR5cGVdLmhhc093blByb3BlcnR5KGZpbGVJRCkgPT0gdHJ1ZSkgew0KICAgICAgICB2YXIgZGF0YSA9IFNFUlZFUlsic2V0dGluZ3MiXVsiZmlsZXMiXVtmaWxlVHlwZV1bZmlsZUlEXTsNCiAgICAgICAgcmV0dXJuIGRhdGFba2V5XTsNCiAgICB9DQogICAgcmV0dXJuOw0KfQ0KZnVuY3Rpb24gc2V0WG1sdHZDaGFubmVsKGVwZ01hcElkLCB4bWxUdkZpbGVTZWxlY3QpIHsNCiAgICBjb25zdCB4bWxUdiA9IG5ldyBYTUxUVkZpbGUoKTsNCiAgICBjb25zdCBuZXdYbWxUdkZpbGUgPSB4bWxUdkZpbGVTZWxlY3QudmFsdWU7DQogICAgLy8gUmVtb3ZlIG9sZCBYTUxUViBJRCBzZWxlY3Rpb24gYm94DQogICAgY29uc3QgeG1sVHZJZFBpY2tlclBhcmVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd4bWx0di1pZC1waWNrZXItY29udGFpbmVyJykucGFyZW50RWxlbWVudDsNCiAgICB4bWxUdklkUGlja2VyUGFyZW50LmlubmVySFRNTCA9ICcnOw0KICAgIC8vIENyZWF0ZSBuZXcgWE1MVFYgSUQgc2VsZWN0aW9uIGJveA0KICAgIGNvbnN0IHR2Z0lkID0gU0VSVkVSWyd4ZXBnJ11bJ2VwZ01hcHBpbmcnXVtlcGdNYXBJZF1bJ3R2Zy1pZCddOw0KICAgIGNvbnN0IFt4bWxUdklkQ29udGFpbmVyLCB4bWxUdklkSW5wdXQsIHhtbFR2SWREYXRhbGlzdF0gPSB4bWxUdi5uZXdYbWxUdklkUGlja2VyKG5ld1htbFR2RmlsZSwgdHZnSWQpOw0KICAgIHhtbFR2SWRDb250YWluZXIuc2V0QXR0cmlidXRlKCdpZCcsICd4bWx0di1pZC1waWNrZXItY29udGFpbmVyJyk7DQogICAgeG1sVHZJZElucHV0LnNldEF0dHJpYnV0ZSgnbGlzdCcsICd4bWx0di1pZC1waWNrZXItZGF0YWxpc3QnKTsNCiAgICB4bWxUdklkSW5wdXQuc2V0QXR0cmlidXRlKCduYW1lJywgJ3gtbWFwcGluZycpOyAvLyBTaG91bGQgc3RheSB4LW1hcHBpbmcgYXMgaXQgd2lsbCBiZSB1c2VkIGluIGRvbmVQb3B1cERhdGEgdG8gbWFrZSBhIHNlcnZlciByZXF1ZXN0DQogICAgeG1sVHZJZElucHV0LnNldEF0dHJpYnV0ZSgnaWQnLCAneG1sdHYtaWQtcGlja2VyLWlucHV0Jyk7DQogICAgeG1sVHZJZElucHV0LnNldEF0dHJpYnV0ZSgnb25jaGFuZ2UnLCBgamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCc7IGNoZWNrWG1sdHZDaGFubmVsKCcke2VwZ01hcElkfScsIHRoaXMudmFsdWUsICcke25ld1htbFR2RmlsZX0nKTtgKTsNCiAgICB4bWxUdklkSW5wdXQuY2xhc3NMaXN0LmFkZCgnY2hhbmdlZCcpOw0KICAgIHhtbFR2SWREYXRhbGlzdC5zZXRBdHRyaWJ1dGUoJ2lkJywgJ3htbHR2LWlkLXBpY2tlci1kYXRhbGlzdCcpOw0KICAgIC8vIEFkZCBuZXcgWE1MVFYgSUQgc2VsZWN0aW9uIGJveCB0byBpdCdzIHBhcmVudA0KICAgIHhtbFR2SWRQaWNrZXJQYXJlbnQuYXBwZW5kQ2hpbGQoeG1sVHZJZENvbnRhaW5lcik7DQogICAgY2hlY2tYbWx0dkNoYW5uZWwoZXBnTWFwSWQsIHhtbFR2SWRJbnB1dC52YWx1ZSwgbmV3WG1sVHZGaWxlKTsNCn0NCmZ1bmN0aW9uIGNoZWNrWG1sdHZDaGFubmVsKGVwZ01hcElkLCBuZXdYbWxUdklkLCB4bWxUdkZpbGUpIHsNCiAgICBjb25zdCBjaGFubmVsQWN0aXZlQ2IgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYWN0aXZlJyk7DQogICAgY29uc3QgY2hhbm5lbEFjdGl2ZSA9IG5ld1htbFR2SWQgIT0gJy0nOw0KICAgIGNoYW5uZWxBY3RpdmVDYi5jaGVja2VkID0gY2hhbm5lbEFjdGl2ZTsNCiAgICBjaGFubmVsQWN0aXZlQ2IuY2xhc3NOYW1lID0gJ2NoYW5nZWQnOw0KICAgIGlmICh4bWxUdkZpbGUgIT0gJ3hUZVZlIER1bW15JyAmJiBjaGFubmVsQWN0aXZlID09IHRydWUpIHsNCiAgICAgICAgY2hhbmdlQ2hhbm5lbExvZ28oZXBnTWFwSWQpOw0KICAgICAgICByZXR1cm47DQogICAgfQ0KICAgIGlmICh4bWxUdkZpbGUgPT0gJ3hUZVZlIER1bW15Jykgew0KICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndXBkYXRlLWljb24nKS5jaGVja2VkID0gZmFsc2U7DQogICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd1cGRhdGUtaWNvbicpLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJzsNCiAgICB9DQp9DQpmdW5jdGlvbiBjaGFuZ2VDaGFubmVsTG9nbyhlcGdNYXBJZCkgew0KICAgIGNvbnN0IGNoYW5uZWwgPSBTRVJWRVJbJ3hlcGcnXVsnZXBnTWFwcGluZyddW2VwZ01hcElkXTsNCiAgICBjb25zdCB4bWxUdkZpbGVTZWxlY3QgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncG9wdXAteG1sdHYnKTsNCiAgICBjb25zdCB4bWxUdkZpbGUgPSB4bWxUdkZpbGVTZWxlY3Qub3B0aW9uc1t4bWxUdkZpbGVTZWxlY3Quc2VsZWN0ZWRJbmRleF0udmFsdWU7DQogICAgY29uc3QgeG1sVHZJZElucHV0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3htbHR2LWlkLXBpY2tlci1pbnB1dCcpOw0KICAgIGNvbnN0IG5ld1htbFR2SWQgPSB4bWxUdklkSW5wdXQudmFsdWU7DQogICAgY29uc3QgdXBkYXRlTG9nbyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd1cGRhdGUtaWNvbicpLmNoZWNrZWQ7DQogICAgbGV0IGxvZ287DQogICAgaWYgKHVwZGF0ZUxvZ28gPT0gdHJ1ZSAmJiB4bWxUdkZpbGUgIT0gJ3hUZVZlIER1bW15Jykgew0KICAgICAgICBpZiAoU0VSVkVSWyd4ZXBnJ11bJ3htbHR2TWFwJ11beG1sVHZGaWxlXS5oYXNPd25Qcm9wZXJ0eShuZXdYbWxUdklkKSkgew0KICAgICAgICAgICAgbG9nbyA9IFNFUlZFUlsneGVwZyddWyd4bWx0dk1hcCddW3htbFR2RmlsZV1bbmV3WG1sVHZJZF1bJ2ljb24nXTsNCiAgICAgICAgfQ0KICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgIGxvZ28gPSBjaGFubmVsWyd0dmctbG9nbyddOw0KICAgICAgICB9DQogICAgICAgIHZhciBsb2dvSW5wdXQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY2hhbm5lbC1pY29uJyk7DQogICAgICAgIGxvZ29JbnB1dC52YWx1ZSA9IGxvZ287DQogICAgICAgIGlmIChCVUxLX0VESVQgPT0gZmFsc2UpIHsNCiAgICAgICAgICAgIGxvZ29JbnB1dC5jbGFzc05hbWUgPSAnY2hhbmdlZCc7DQogICAgICAgIH0NCiAgICB9DQp9DQpmdW5jdGlvbiBzYXZlUG9wdXBEYXRhKGRhdGFUeXBlLCBpZCwgcmVtb3ZlLCBvcHRpb24pIHsNCiAgICBpZiAoZGF0YVR5cGUgPT0gIm1hcHBpbmciKSB7DQogICAgICAgIGxldCBkYXRhID0ge307DQogICAgICAgIGxldCBjbWQgPSAic2F2ZUVwZ01hcHBpbmciOw0KICAgICAgICBkYXRhWyJlcGdNYXBwaW5nIl0gPSBTRVJWRVJbInhlcGciXVsiZXBnTWFwcGluZyJdOw0KICAgICAgICBsZXQgc2VydmVyID0gbmV3IFNlcnZlcihjbWQpOw0KICAgICAgICBzZXJ2ZXIucmVxdWVzdChkYXRhKTsNCiAgICAgICAgZGVsZXRlIFVORE9bImVwZ01hcHBpbmciXTsNCiAgICAgICAgcmV0dXJuOw0KICAgIH0NCiAgICBsZXQgZGl2ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInBvcHVwLWN1c3RvbSIpOw0KICAgIGxldCBpbnB1dHMgPSBkaXYuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlRBQkxFIilbMF0uZ2V0RWxlbWVudHNCeVRhZ05hbWUoIklOUFVUIik7DQogICAgbGV0IHNlbGVjdHMgPSBkaXYuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlRBQkxFIilbMF0uZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlNFTEVDVCIpOw0KICAgIGxldCBpbnB1dCA9IHt9Ow0KICAgIGxldCBjb25maXJtTXNnOw0KICAgIGZvciAobGV0IGkgPSAwOyBpIDwgc2VsZWN0cy5sZW5ndGg7IGkrKykgew0KICAgICAgICB2YXIgbmFtZTsNCiAgICAgICAgbmFtZSA9IHNlbGVjdHNbaV0ubmFtZTsNCiAgICAgICAgdmFyIHZhbHVlID0gc2VsZWN0c1tpXS52YWx1ZTsNCiAgICAgICAgc3dpdGNoIChuYW1lKSB7DQogICAgICAgICAgICBjYXNlICJ0dW5lciI6DQogICAgICAgICAgICAgICAgaW5wdXRbbmFtZV0gPSBwYXJzZUludCh2YWx1ZSk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBkZWZhdWx0Og0KICAgICAgICAgICAgICAgIGlucHV0W25hbWVdID0gdmFsdWU7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIH0NCiAgICB9DQogICAgZm9yIChsZXQgaSA9IDA7IGkgPCBpbnB1dHMubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgc3dpdGNoIChpbnB1dHNbaV0udHlwZSkgew0KICAgICAgICAgICAgY2FzZSAiY2hlY2tib3giOg0KICAgICAgICAgICAgICAgIG5hbWUgPSBpbnB1dHNbaV0ubmFtZTsNCiAgICAgICAgICAgICAgICBpbnB1dFtuYW1lXSA9IGlucHV0c1tpXS5jaGVja2VkOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAidGV4dCI6DQogICAgICAgICAgICBjYXNlICJoaWRkZW4iOg0KICAgICAgICAgICAgY2FzZSAicGFzc3dvcmQiOg0KICAgICAgICAgICAgICAgIG5hbWUgPSBpbnB1dHNbaV0ubmFtZTsNCiAgICAgICAgICAgICAgICBzd2l0Y2ggKG5hbWUpIHsNCiAgICAgICAgICAgICAgICAgICAgY2FzZSAidHVuZXIiOg0KICAgICAgICAgICAgICAgICAgICAgICAgaW5wdXRbbmFtZV0gPSBwYXJzZUludChpbnB1dHNbaV0udmFsdWUpOw0KICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICAgICAgICAgICAgICBpbnB1dFtuYW1lXSA9IGlucHV0c1tpXS52YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgfQ0KICAgIH0NCiAgICBsZXQgZGF0YSA9IHt9Ow0KICAgIGxldCBjbWQ7DQogICAgaWYgKHJlbW92ZSA9PSB0cnVlKSB7DQogICAgICAgIGlucHV0WyJkZWxldGUiXSA9IHRydWU7DQogICAgfQ0KICAgIHN3aXRjaCAoZGF0YVR5cGUpIHsNCiAgICAgICAgY2FzZSAidXNlcnMiOg0KICAgICAgICAgICAgY29uZmlybU1zZyA9ICJEZWxldGUgdGhpcyB1c2VyPyI7DQogICAgICAgICAgICBpZiAoaWQgPT0gIi0iKSB7DQogICAgICAgICAgICAgICAgY21kID0gInNhdmVOZXdVc2VyIjsNCiAgICAgICAgICAgICAgICBkYXRhWyJ1c2VyRGF0YSJdID0gaW5wdXQ7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICBjbWQgPSAic2F2ZVVzZXJEYXRhIjsNCiAgICAgICAgICAgICAgICBsZXQgZCA9IHt9Ow0KICAgICAgICAgICAgICAgIGRbaWRdID0gaW5wdXQ7DQogICAgICAgICAgICAgICAgZGF0YVsidXNlckRhdGEiXSA9IGQ7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSAibTN1IjoNCiAgICAgICAgICAgIGNvbmZpcm1Nc2cgPSAiRGVsZXRlIHRoaXMgcGxheWxpc3Q/IjsNCiAgICAgICAgICAgIHN3aXRjaCAob3B0aW9uKSB7DQogICAgICAgICAgICAgICAgLy8gUG9wdXA6IFNhdmUNCiAgICAgICAgICAgICAgICBjYXNlIDA6DQogICAgICAgICAgICAgICAgICAgIGNtZCA9ICJzYXZlRmlsZXNNM1UiOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICAvLyBQb3B1cDogVXBkYXRlDQogICAgICAgICAgICAgICAgY2FzZSAxOg0KICAgICAgICAgICAgICAgICAgICBjbWQgPSAidXBkYXRlRmlsZU0zVSI7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgZGF0YVsiZmlsZXMiXSA9IHt9Ow0KICAgICAgICAgICAgZGF0YVsiZmlsZXMiXVtkYXRhVHlwZV0gPSB7fTsNCiAgICAgICAgICAgIGRhdGFbImZpbGVzIl1bZGF0YVR5cGVdW2lkXSA9IGlucHV0Ow0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGNhc2UgImhkaHIiOg0KICAgICAgICAgICAgY29uZmlybU1zZyA9ICJEZWxldGUgdGhpcyBIREhvbWVSdW4gdHVuZXI/IjsNCiAgICAgICAgICAgIHN3aXRjaCAob3B0aW9uKSB7DQogICAgICAgICAgICAgICAgLy8gUG9wdXA6IFNhdmUNCiAgICAgICAgICAgICAgICBjYXNlIDA6DQogICAgICAgICAgICAgICAgICAgIGNtZCA9ICJzYXZlRmlsZXNIREhSIjsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgLy8gUG9wdXA6IFVwZGF0ZQ0KICAgICAgICAgICAgICAgIGNhc2UgMToNCiAgICAgICAgICAgICAgICAgICAgY21kID0gInVwZGF0ZUZpbGVIREhSIjsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBkYXRhWyJmaWxlcyJdID0ge307DQogICAgICAgICAgICBkYXRhWyJmaWxlcyJdW2RhdGFUeXBlXSA9IHt9Ow0KICAgICAgICAgICAgZGF0YVsiZmlsZXMiXVtkYXRhVHlwZV1baWRdID0gaW5wdXQ7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSAieG1sdHYiOg0KICAgICAgICAgICAgY29uZmlybU1zZyA9ICJEZWxldGUgdGhpcyBYTUxUViBmaWxlPyI7DQogICAgICAgICAgICBzd2l0Y2ggKG9wdGlvbikgew0KICAgICAgICAgICAgICAgIC8vIFBvcHVwOiBTYXZlDQogICAgICAgICAgICAgICAgY2FzZSAwOg0KICAgICAgICAgICAgICAgICAgICBjbWQgPSAic2F2ZUZpbGVzWE1MVFYiOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICAvLyBQb3B1cDogVXBkYXRlDQogICAgICAgICAgICAgICAgY2FzZSAxOg0KICAgICAgICAgICAgICAgICAgICBjbWQgPSAidXBkYXRlRmlsZVhNTFRWIjsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBkYXRhWyJmaWxlcyJdID0ge307DQogICAgICAgICAgICBkYXRhWyJmaWxlcyJdW2RhdGFUeXBlXSA9IHt9Ow0KICAgICAgICAgICAgZGF0YVsiZmlsZXMiXVtkYXRhVHlwZV1baWRdID0gaW5wdXQ7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSAiZmlsdGVyIjoNCiAgICAgICAgICAgIGNvbmZpcm1Nc2cgPSAiRGVsZXRlIHRoaXMgZmlsdGVyPyI7DQogICAgICAgICAgICBjbWQgPSAic2F2ZUZpbHRlciI7DQogICAgICAgICAgICBkYXRhWyJmaWx0ZXIiXSA9IHt9Ow0KICAgICAgICAgICAgZGF0YVsiZmlsdGVyIl1baWRdID0gaW5wdXQ7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgIHJldHVybjsNCiAgICB9DQogICAgaWYgKHJlbW92ZSA9PSB0cnVlKSB7DQogICAgICAgIGlmICghY29uZmlybShjb25maXJtTXNnKSkgew0KICAgICAgICAgICAgc2hvd0VsZW1lbnQoInBvcHVwIiwgZmFsc2UpOw0KICAgICAgICAgICAgcmV0dXJuOw0KICAgICAgICB9DQogICAgfQ0KICAgIGxldCBzZXJ2ZXIgPSBuZXcgU2VydmVyKGNtZCk7DQogICAgc2VydmVyLnJlcXVlc3QoZGF0YSk7DQp9DQpmdW5jdGlvbiBkb25lUG9wdXBEYXRhKGRhdGFUeXBlLCBpZHNTdHIpIHsNCiAgICBsZXQgaWRzID0gaWRzU3RyLnNwbGl0KCcsJyk7DQogICAgbGV0IGRpdiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJwb3B1cC1jdXN0b20iKTsNCiAgICBsZXQgaW5wdXRzID0gZGl2LmdldEVsZW1lbnRzQnlDbGFzc05hbWUoImNoYW5nZWQiKTsNCiAgICBpZHMuZm9yRWFjaChpZCA9PiB7DQogICAgICAgIGxldCBpbnB1dDsNCiAgICAgICAgaW5wdXQgPSBTRVJWRVJbInhlcGciXVsiZXBnTWFwcGluZyJdW2lkXTsNCiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBpbnB1dHMubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgICAgIGxldCBuYW1lOw0KICAgICAgICAgICAgbGV0IHZhbHVlOw0KICAgICAgICAgICAgc3dpdGNoIChpbnB1dHNbaV0udGFnTmFtZSkgew0KICAgICAgICAgICAgICAgIGNhc2UgIklOUFVUIjoNCiAgICAgICAgICAgICAgICAgICAgc3dpdGNoIChpbnB1dHNbaV0udHlwZSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAiY2hlY2tib3giOg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWUgPSBpbnB1dHNbaV0ubmFtZTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IGlucHV0c1tpXS5jaGVja2VkOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlucHV0W25hbWVdID0gdmFsdWU7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgICAgICAgICBjYXNlICJ0ZXh0IjoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lID0gaW5wdXRzW2ldLm5hbWU7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSBpbnB1dHNbaV0udmFsdWU7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5wdXRbbmFtZV0gPSB2YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBjYXNlICJTRUxFQ1QiOg0KICAgICAgICAgICAgICAgICAgICBuYW1lID0gaW5wdXRzW2ldLm5hbWU7DQogICAgICAgICAgICAgICAgICAgIHZhbHVlID0gaW5wdXRzW2ldLnZhbHVlOw0KICAgICAgICAgICAgICAgICAgICBpbnB1dFtuYW1lXSA9IHZhbHVlOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIHN3aXRjaCAobmFtZSkgew0KICAgICAgICAgICAgICAgIGNhc2UgInR2Zy1sb2dvIjoNCiAgICAgICAgICAgICAgICAgICAgLy8oZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpLmNoaWxkTm9kZXNbMl0uZmlyc3RDaGlsZCBhcyBIVE1MRWxlbWVudCkuc2V0QXR0cmlidXRlKCJzcmMiLCB2YWx1ZSkNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAieC1uYW1lIjoNCiAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpLmNoaWxkTm9kZXNbM10uZmlyc3RDaGlsZC5pbm5lckhUTUwgPSB2YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAieC1jYXRlZ29yeSI6DQogICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5jaGlsZE5vZGVzWzNdLmZpcnN0Q2hpbGQuY2xhc3NOYW1lID0gdmFsdWU7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgIngtZ3JvdXAtdGl0bGUiOg0KICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkuY2hpbGROb2Rlc1s1XS5maXJzdENoaWxkLmlubmVySFRNTCA9IHZhbHVlOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBjYXNlICJ4LXhtbHR2LWZpbGUiOg0KICAgICAgICAgICAgICAgICAgICBpZiAodmFsdWUgIT0gInhUZVZlIER1bW15IiAmJiB2YWx1ZSAhPSAiLSIpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlID0gZ2V0VmFsdWVGcm9tUHJvdmlkZXJGaWxlKHZhbHVlLCAieG1sdHYiLCAibmFtZSIpOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIGlmICh2YWx1ZSA9PSAiLSIpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGlucHV0WyJ4LWFjdGl2ZSJdID0gZmFsc2U7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpLmNoaWxkTm9kZXNbNl0uZmlyc3RDaGlsZC5pbm5lckhUTUwgPSB2YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAieC1tYXBwaW5nIjoNCiAgICAgICAgICAgICAgICAgICAgaWYgKHZhbHVlID09ICItIikgew0KICAgICAgICAgICAgICAgICAgICAgICAgaW5wdXRbIngtYWN0aXZlIl0gPSBmYWxzZTsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkuY2hpbGROb2Rlc1s3XS5maXJzdENoaWxkLmlubmVySFRNTCA9IHZhbHVlOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBjYXNlICJ4LXRpbWVzaGlmdCI6DQogICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5jaGlsZE5vZGVzWzhdLmZpcnN0Q2hpbGQuaW5uZXJIVE1MID0gdmFsdWU7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICB9DQogICAgICAgICAgICBjcmVhdGVTZWFyY2hPYmooKTsNCiAgICAgICAgICAgIHNlYXJjaEluTWFwcGluZygpOw0KICAgICAgICB9DQogICAgICAgIGlmIChpbnB1dFsieC1hY3RpdmUiXSA9PSBmYWxzZSkgew0KICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpLmNsYXNzTmFtZSA9ICJub3RBY3RpdmVFUEciOw0KICAgICAgICB9DQogICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpLmNsYXNzTmFtZSA9ICJhY3RpdmVFUEciOw0KICAgICAgICB9DQogICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5jaGlsZE5vZGVzWzJdLmZpcnN0Q2hpbGQuc2V0QXR0cmlidXRlKCJzcmMiLCBpbnB1dFsidHZnLWxvZ28iXSk7DQogICAgfSk7DQogICAgc2hvd0VsZW1lbnQoInBvcHVwIiwgZmFsc2UpOw0KICAgIHJldHVybjsNCn0NCmZ1bmN0aW9uIHNob3dQcmV2aWV3KGVsZW1lbnQpIHsNCiAgICBsZXQgZGl2ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm15U3RyZWFtc0JveCIpOw0KICAgIHN3aXRjaCAoZWxlbWVudCkgew0KICAgICAgICBjYXNlIGZhbHNlOg0KICAgICAgICAgICAgZGl2LmNsYXNzTmFtZSA9ICJub3RWaXNpYmxlIjsNCiAgICAgICAgICAgIHJldHVybjsNCiAgICB9DQogICAgbGV0IHN0cmVhbXMgPSBbImFjdGl2ZVN0cmVhbXMiLCAiaW5hY3RpdmVTdHJlYW1zIl07DQogICAgc3RyZWFtcy5mb3JFYWNoKHByZXZpZXcgPT4gew0KICAgICAgICBsZXQgdGFibGUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChwcmV2aWV3KTsNCiAgICAgICAgdGFibGUuaW5uZXJIVE1MID0gIiI7DQogICAgICAgIGxldCBvYmogPSBTRVJWRVJbImRhdGEiXVsiU3RyZWFtUHJldmlld1VJIl1bcHJldmlld107DQogICAgICAgIG9iai5mb3JFYWNoKGNoYW5uZWwgPT4gew0KICAgICAgICAgICAgbGV0IHRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVFIiKTsNCiAgICAgICAgICAgIGxldCB0ZEtleSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICBsZXQgdGRWYWwgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgdGRLZXkuY2xhc3NOYW1lID0gInRkS2V5IjsNCiAgICAgICAgICAgIHRkVmFsLmNsYXNzTmFtZSA9ICJ0ZFZhbCI7DQogICAgICAgICAgICBzd2l0Y2ggKHByZXZpZXcpIHsNCiAgICAgICAgICAgICAgICBjYXNlICJhY3RpdmVTdHJlYW1zIjoNCiAgICAgICAgICAgICAgICAgICAgdGRLZXkuaW5uZXJUZXh0ID0gIkNoYW5uZWw6ICgrKSI7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgImluYWN0aXZlU3RyZWFtcyI6DQogICAgICAgICAgICAgICAgICAgIHRkS2V5LmlubmVyVGV4dCA9ICJDaGFubmVsOiAoLSkiOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIHRkVmFsLmlubmVyVGV4dCA9IGNoYW5uZWw7DQogICAgICAgICAgICB0ci5hcHBlbmRDaGlsZCh0ZEtleSk7DQogICAgICAgICAgICB0ci5hcHBlbmRDaGlsZCh0ZFZhbCk7DQogICAgICAgICAgICB0YWJsZS5hcHBlbmRDaGlsZCh0cik7DQogICAgICAgIH0pOw0KICAgIH0pOw0KICAgIHNob3dFbGVtZW50KCJsb2FkaW5nIiwgZmFsc2UpOw0KICAgIGRpdi5jbGFzc05hbWUgPSAidmlzaWJsZSI7DQogICAgcmV0dXJuOw0KfQ0K" webUI["html/js/network_ts.js"] = "Y2xhc3MgU2VydmVyIHsNCiAgICBjb25zdHJ1Y3RvcihjbWQpIHsNCiAgICAgICAgdGhpcy5jbWQgPSBjbWQ7DQogICAgfQ0KICAgIHJlcXVlc3QoZGF0YSkgew0KICAgICAgICBpZiAoU0VSVkVSX0NPTk5FQ1RJT04gPT0gdHJ1ZSkgew0KICAgICAgICAgICAgcmV0dXJuOw0KICAgICAgICB9DQogICAgICAgIFNFUlZFUl9DT05ORUNUSU9OID0gdHJ1ZTsNCiAgICAgICAgaWYgKHRoaXMuY21kICE9ICJ1cGRhdGVMb2ciKSB7DQogICAgICAgICAgICBzaG93RWxlbWVudCgibG9hZGluZyIsIHRydWUpOw0KICAgICAgICAgICAgVU5ETyA9IG5ldyBPYmplY3QoKTsNCiAgICAgICAgfQ0KICAgICAgICBzd2l0Y2ggKHdpbmRvdy5sb2NhdGlvbi5wcm90b2NvbCkgew0KICAgICAgICAgICAgY2FzZSAiaHR0cDoiOg0KICAgICAgICAgICAgICAgIHRoaXMucHJvdG9jb2wgPSAid3M6Ly8iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiaHR0cHM6IjoNCiAgICAgICAgICAgICAgICB0aGlzLnByb3RvY29sID0gIndzczovLyI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIH0NCiAgICAgICAgdmFyIHVybCA9IHRoaXMucHJvdG9jb2wgKyB3aW5kb3cubG9jYXRpb24uaG9zdG5hbWUgKyAiOiIgKyB3aW5kb3cubG9jYXRpb24ucG9ydCArICIvZGF0YS8iICsgIj9Ub2tlbj0iICsgZ2V0Q29va2llKCJUb2tlbiIpOw0KICAgICAgICBkYXRhWyJjbWQiXSA9IHRoaXMuY21kOw0KICAgICAgICB2YXIgd3MgPSBuZXcgV2ViU29ja2V0KHVybCk7DQogICAgICAgIHdzLm9ub3BlbiA9IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgICAgIFdTX0FWQUlMQUJMRSA9IHRydWU7DQogICAgICAgICAgICB0aGlzLnNlbmQoSlNPTi5zdHJpbmdpZnkoZGF0YSkpOw0KICAgICAgICB9Ow0KICAgICAgICB3cy5vbmVycm9yID0gZnVuY3Rpb24gKHdzRXJyRXZ0KSB7DQogICAgICAgICAgICBjb25zb2xlLmxvZygiTm8gd2Vic29ja2V0IGNvbm5lY3Rpb24gdG8geFRlVmUgY291bGQgYmUgZXN0YWJsaXNoZWQuIENoZWNrIHlvdXIgbmV0d29yayBjb25maWd1cmF0aW9uLiIpOw0KICAgICAgICAgICAgU0VSVkVSX0NPTk5FQ1RJT04gPSBmYWxzZTsNCiAgICAgICAgICAgIGlmIChXU19BVkFJTEFCTEUgPT0gZmFsc2UpIHsNCiAgICAgICAgICAgICAgICBhbGVydCgiTm8gd2Vic29ja2V0IGNvbm5lY3Rpb24gdG8geFRlVmUgY291bGQgYmUgZXN0YWJsaXNoZWQuIENoZWNrIHlvdXIgbmV0d29yayBjb25maWd1cmF0aW9uLiIpOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9Ow0KICAgICAgICB3cy5vbm1lc3NhZ2UgPSBmdW5jdGlvbiAod3NNZXNzYWdlRXZ0KSB7DQogICAgICAgICAgICBTRVJWRVJfQ09OTkVDVElPTiA9IGZhbHNlOw0KICAgICAgICAgICAgc2hvd0VsZW1lbnQoImxvYWRpbmciLCBmYWxzZSk7DQogICAgICAgICAgICBjb25zdCByZXNwb25zZSA9IEpTT04ucGFyc2Uod3NNZXNzYWdlRXZ0LmRhdGEpOw0KICAgICAgICAgICAgaWYgKHJlc3BvbnNlLmhhc093blByb3BlcnR5KCJ0b2tlbiIpKSB7DQogICAgICAgICAgICAgICAgZG9jdW1lbnQuY29va2llID0gIlRva2VuPSIgKyByZXNwb25zZVsidG9rZW4iXTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGlmIChyZXNwb25zZVsic3RhdHVzIl0gPT0gZmFsc2UpIHsNCiAgICAgICAgICAgICAgICBhbGVydChyZXNwb25zZVsiZXJyIl0pOw0KICAgICAgICAgICAgICAgIHJldHVybjsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGlmIChyZXNwb25zZS5oYXNPd25Qcm9wZXJ0eSgnb3BlbkxpbmsnKSkgew0KICAgICAgICAgICAgICAgIHdpbmRvdy5sb2NhdGlvbiA9IHJlc3BvbnNlWydvcGVuTGluayddOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgaWYgKHJlc3BvbnNlLmhhc093blByb3BlcnR5KCJyZWxvYWQiKSkgew0KICAgICAgICAgICAgICAgIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGlmIChyZXNwb25zZS5oYXNPd25Qcm9wZXJ0eSgiYWxlcnQiKSkgew0KICAgICAgICAgICAgICAgIGFsZXJ0KHJlc3BvbnNlWyJhbGVydCJdKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGlmIChyZXNwb25zZS5oYXNPd25Qcm9wZXJ0eSgibG9nb1VSTCIpKSB7DQogICAgICAgICAgICAgICAgdmFyIGRpdiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjaGFubmVsLWljb24iKTsNCiAgICAgICAgICAgICAgICBkaXYudmFsdWUgPSByZXNwb25zZVsibG9nb1VSTCJdOw0KICAgICAgICAgICAgICAgIGRpdi5jbGFzc05hbWUgPSAiY2hhbmdlZCI7DQogICAgICAgICAgICAgICAgcmV0dXJuOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgc3dpdGNoIChkYXRhWyJjbWQiXSkgew0KICAgICAgICAgICAgICAgIGNhc2UgInVwZGF0ZUxvZyI6DQogICAgICAgICAgICAgICAgICAgIFNFUlZFUlsibG9nIl0gPSByZXNwb25zZVsibG9nIl07DQogICAgICAgICAgICAgICAgICAgIGlmIChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29udGVudF9sb2ciKSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgc2hvd0xvZ3MoZmFsc2UpOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIHJldHVybjsNCiAgICAgICAgICAgICAgICBkZWZhdWx0Og0KICAgICAgICAgICAgICAgICAgICBTRVJWRVIgPSBuZXcgT2JqZWN0KCk7DQogICAgICAgICAgICAgICAgICAgIFNFUlZFUiA9IHJlc3BvbnNlOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGlmIChyZXNwb25zZS5oYXNPd25Qcm9wZXJ0eSgib3Blbk1lbnUiKSkgew0KICAgICAgICAgICAgICAgIHZhciBtZW51ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQocmVzcG9uc2VbIm9wZW5NZW51Il0pOw0KICAgICAgICAgICAgICAgIG1lbnUuY2xpY2soKTsNCiAgICAgICAgICAgICAgICBzaG93RWxlbWVudCgicG9wdXAiLCBmYWxzZSk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBpZiAocmVzcG9uc2UuaGFzT3duUHJvcGVydHkoInJlbG9hZCIpKSB7DQogICAgICAgICAgICAgICAgbG9jYXRpb24ucmVsb2FkKCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBpZiAocmVzcG9uc2UuaGFzT3duUHJvcGVydHkoIndpemFyZCIpKSB7DQogICAgICAgICAgICAgICAgY3JlYXRlTGF5b3V0KCk7DQogICAgICAgICAgICAgICAgY29uZmlndXJhdGlvbldpemFyZFtyZXNwb25zZVsid2l6YXJkIl1dLmNyZWF0ZVdpemFyZCgpOw0KICAgICAgICAgICAgICAgIHJldHVybjsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGNyZWF0ZUxheW91dCgpOw0KICAgICAgICB9Ow0KICAgIH0NCn0NCmZ1bmN0aW9uIGdldENvb2tpZShuYW1lKSB7DQogICAgdmFyIHZhbHVlID0gIjsgIiArIGRvY3VtZW50LmNvb2tpZTsNCiAgICB2YXIgcGFydHMgPSB2YWx1ZS5zcGxpdCgiOyAiICsgbmFtZSArICI9Iik7DQogICAgaWYgKHBhcnRzLmxlbmd0aCA9PSAyKSB7DQogICAgICAgIHJldHVybiBwYXJ0cy5wb3AoKS5zcGxpdCgiOyIpLnNoaWZ0KCk7DQogICAgfQ0KfQ0K" webUI["html/js/settings_ts.js"] = "Y2xhc3MgU2V0dGluZ3NDYXRlZ29yeSB7DQogICAgY29uc3RydWN0b3IoKSB7DQogICAgICAgIHRoaXMuRG9jdW1lbnRJRCA9ICJjb250ZW50X3NldHRpbmdzIjsNCiAgICB9DQogICAgY3JlYXRlQ2F0ZWdvcnlIZWFkbGluZSh2YWx1ZSkgew0KICAgICAgICB2YXIgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIkg0Iik7DQogICAgICAgIGVsZW1lbnQuaW5uZXJIVE1MID0gdmFsdWU7DQogICAgICAgIHJldHVybiBlbGVtZW50Ow0KICAgIH0NCiAgICBjcmVhdGVIUigpIHsNCiAgICAgICAgdmFyIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJIUiIpOw0KICAgICAgICByZXR1cm4gZWxlbWVudDsNCiAgICB9DQogICAgY3JlYXRlU2V0dGluZ3Moc2V0dGluZ3NLZXkpIHsNCiAgICAgICAgdmFyIHNldHRpbmcgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJUUiIpOw0KICAgICAgICB2YXIgY29udGVudCA9IG5ldyBQb3B1cENvbnRlbnQoKTsNCiAgICAgICAgdmFyIGRhdGEgPSBTRVJWRVJbInNldHRpbmdzIl1bc2V0dGluZ3NLZXldOw0KICAgICAgICBzd2l0Y2ggKHNldHRpbmdzS2V5KSB7DQogICAgICAgICAgICAvLyBUZXh0IGlucHV0cw0KICAgICAgICAgICAgY2FzZSAidXBkYXRlIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLnVwZGF0ZS50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsICJ1cGRhdGUiLCBkYXRhLnRvU3RyaW5nKCkpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3suc2V0dGluZ3MudXBkYXRlLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJiYWNrdXAucGF0aCI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5iYWNrdXBQYXRoLnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgImJhY2t1cC5wYXRoIiwgZGF0YSk7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5zZXR0aW5ncy5iYWNrdXBQYXRoLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ0ZW1wLnBhdGgiOg0KICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MudGVtcFBhdGgudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCAidGVtcC5wYXRoIiwgZGF0YSk7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5zZXR0aW5ncy50bXBQYXRoLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ1c2VyLmFnZW50IjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLnVzZXJBZ2VudC50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsICJ1c2VyLmFnZW50IiwgZGF0YSk7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5zZXR0aW5ncy51c2VyQWdlbnQucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImJ1ZmZlci50aW1lb3V0IjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmJ1ZmZlclRpbWVvdXQudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCAiYnVmZmVyLnRpbWVvdXQiLCBkYXRhKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnNldHRpbmdzLmJ1ZmZlclRpbWVvdXQucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImZmbXBlZy5wYXRoIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmZmbXBlZ1BhdGgudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCAiZmZtcGVnLnBhdGgiLCBkYXRhKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnNldHRpbmdzLmZmbXBlZ1BhdGgucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImZmbXBlZy5vcHRpb25zIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmZmbXBlZ09wdGlvbnMudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCAiZmZtcGVnLm9wdGlvbnMiLCBkYXRhKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnNldHRpbmdzLmZmbXBlZ09wdGlvbnMucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInZsYy5wYXRoIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLnZsY1BhdGgudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCAidmxjLnBhdGgiLCBkYXRhKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnNldHRpbmdzLnZsY1BhdGgucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInZsYy5vcHRpb25zIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLnZsY09wdGlvbnMudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCAidmxjLm9wdGlvbnMiLCBkYXRhKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnNldHRpbmdzLnZsY09wdGlvbnMucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIC8vIENoZWNrYm94ZXMNCiAgICAgICAgICAgIGNhc2UgInRsc01vZGUiOg0KICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MudGxzTW9kZS50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChzZXR0aW5nc0tleSk7DQogICAgICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGE7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiYXV0aGVudGljYXRpb24ud2ViIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmF1dGhlbnRpY2F0aW9uV0VCLnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KHNldHRpbmdzS2V5KTsNCiAgICAgICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJhdXRoZW50aWNhdGlvbi5wbXMiOg0KICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MuYXV0aGVudGljYXRpb25QTVMudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goc2V0dGluZ3NLZXkpOw0KICAgICAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImF1dGhlbnRpY2F0aW9uLm0zdSI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5hdXRoZW50aWNhdGlvbk0zVS50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChzZXR0aW5nc0tleSk7DQogICAgICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGE7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiYXV0aGVudGljYXRpb24ueG1sIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmF1dGhlbnRpY2F0aW9uWE1MLnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KHNldHRpbmdzS2V5KTsNCiAgICAgICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJhdXRoZW50aWNhdGlvbi5hcGkiOg0KICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MuYXV0aGVudGljYXRpb25BUEkudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goc2V0dGluZ3NLZXkpOw0KICAgICAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImZpbGVzLnVwZGF0ZSI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5maWxlc1VwZGF0ZS50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChzZXR0aW5nc0tleSk7DQogICAgICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGE7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiY2FjaGUuaW1hZ2VzIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmNhY2hlSW1hZ2VzLnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KHNldHRpbmdzS2V5KTsNCiAgICAgICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ4ZXBnLnJlcGxhY2UubWlzc2luZy5pbWFnZXMiOg0KICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MucmVwbGFjZUVtcHR5SW1hZ2VzLnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KHNldHRpbmdzS2V5KTsNCiAgICAgICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJzdG9yZUJ1ZmZlckluUkFNIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLnN0b3JlQnVmZmVySW5SQU0udGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goc2V0dGluZ3NLZXkpOw0KICAgICAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInh0ZXZlQXV0b1VwZGF0ZSI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy54dGV2ZUF1dG9VcGRhdGUudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goc2V0dGluZ3NLZXkpOw0KICAgICAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImFwaSI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5hcGkudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goc2V0dGluZ3NLZXkpOw0KICAgICAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIC8vIFNlbGVjdA0KICAgICAgICAgICAgY2FzZSAiaG9zdElQIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmhvc3RJUC50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIHRleHQgPSBTRVJWRVJbImlwQWRkcmVzc2VzVjRIb3N0Il07DQogICAgICAgICAgICAgICAgdmFyIHZhbHVlcyA9IFNFUlZFUlsiaXBBZGRyZXNzZXNWNEhvc3QiXTsNCiAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCBkYXRhLCBzZXR0aW5nc0tleSk7DQogICAgICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKHNlbGVjdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ0dW5lciI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy50dW5lci50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIHRleHQgPSBuZXcgQXJyYXkoKTsNCiAgICAgICAgICAgICAgICB2YXIgdmFsdWVzID0gbmV3IEFycmF5KCk7DQogICAgICAgICAgICAgICAgZm9yICh2YXIgaSA9IDE7IGkgPD0gMTAwOyBpKyspIHsNCiAgICAgICAgICAgICAgICAgICAgdGV4dC5wdXNoKGkpOw0KICAgICAgICAgICAgICAgICAgICB2YWx1ZXMucHVzaChpKTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgdmFyIHNlbGVjdCA9IGNvbnRlbnQuY3JlYXRlU2VsZWN0KHRleHQsIHZhbHVlcywgZGF0YSwgc2V0dGluZ3NLZXkpOw0KICAgICAgICAgICAgICAgIHNlbGVjdC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChzZWxlY3QpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiZXBnU291cmNlIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmVwZ1NvdXJjZS50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIHRleHQgPSBbIlBNUyIsICJYRVBHIl07DQogICAgICAgICAgICAgICAgdmFyIHZhbHVlcyA9IFsiUE1TIiwgIlhFUEciXTsNCiAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCBkYXRhLCBzZXR0aW5nc0tleSk7DQogICAgICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKHNlbGVjdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJiYWNrdXAua2VlcCI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5iYWNrdXBLZWVwLnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgdGV4dCA9IFsiNSIsICIxMCIsICIyMCIsICIzMCIsICI0MCIsICI1MCJdOw0KICAgICAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBbIjUiLCAiMTAiLCAiMjAiLCAiMzAiLCAiNDAiLCAiNTAiXTsNCiAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCBkYXRhLCBzZXR0aW5nc0tleSk7DQogICAgICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKHNlbGVjdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJidWZmZXIuc2l6ZS5rYiI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5idWZmZXJTaXplLnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgdGV4dCA9IFsiMC41IE1CIiwgIjEgTUIiLCAiMiBNQiIsICIzIE1CIiwgIjQgTUIiLCAiNSBNQiIsICI2IE1CIiwgIjcgTUIiLCAiOCBNQiJdOw0KICAgICAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBbIjUxMiIsICIxMDI0IiwgIjIwNDgiLCAiMzA3MiIsICI0MDk2IiwgIjUxMjAiLCAiNjE0NCIsICI3MTY4IiwgIjgxOTIiXTsNCiAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCBkYXRhLCBzZXR0aW5nc0tleSk7DQogICAgICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKHNlbGVjdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJidWZmZXIiOg0KICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3Muc3RyZWFtQnVmZmVyaW5nLnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgdGV4dCA9IFsie3suc2V0dGluZ3Muc3RyZWFtQnVmZmVyaW5nLmluZm9fZmFsc2V9fSIsICJ4VGVWZTogKHt7LnNldHRpbmdzLnN0cmVhbUJ1ZmZlcmluZy5pbmZvX3h0ZXZlfX0pIiwgIkZGbXBlZzogKHt7LnNldHRpbmdzLnN0cmVhbUJ1ZmZlcmluZy5pbmZvX2ZmbXBlZ319KSIsICJWTEM6ICh7ey5zZXR0aW5ncy5zdHJlYW1CdWZmZXJpbmcuaW5mb192bGN9fSkiXTsNCiAgICAgICAgICAgICAgICB2YXIgdmFsdWVzID0gWyItIiwgInh0ZXZlIiwgImZmbXBlZyIsICJ2bGMiXTsNCiAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCBkYXRhLCBzZXR0aW5nc0tleSk7DQogICAgICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKHNlbGVjdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ1ZHB4eSI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy51ZHB4eS50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsICJ1ZHB4eSIsIGRhdGEpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3suc2V0dGluZ3MudWRweHkucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgfQ0KICAgICAgICByZXR1cm4gc2V0dGluZzsNCiAgICB9DQogICAgY3JlYXRlRGVzY3JpcHRpb24oc2V0dGluZ3NLZXkpIHsNCiAgICAgICAgdmFyIGRlc2NyaXB0aW9uID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVFIiKTsNCiAgICAgICAgdmFyIHRleHQ7DQogICAgICAgIHN3aXRjaCAoc2V0dGluZ3NLZXkpIHsNCiAgICAgICAgICAgIGNhc2UgInRsc01vZGUiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MudGxzTW9kZS5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImF1dGhlbnRpY2F0aW9uLndlYiI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5hdXRoZW50aWNhdGlvbldFQi5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImF1dGhlbnRpY2F0aW9uLm0zdSI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5hdXRoZW50aWNhdGlvbk0zVS5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImF1dGhlbnRpY2F0aW9uLnBtcyI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5hdXRoZW50aWNhdGlvblBNUy5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImF1dGhlbnRpY2F0aW9uLnhtbCI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5hdXRoZW50aWNhdGlvblhNTC5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImF1dGhlbnRpY2F0aW9uLmFwaSI6DQogICAgICAgICAgICAgICAgaWYgKFNFUlZFUlsic2V0dGluZ3MiXVsiYXV0aGVudGljYXRpb24ud2ViIl0gPT0gdHJ1ZSkgew0KICAgICAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLmF1dGhlbnRpY2F0aW9uQVBJLmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInh0ZXZlQXV0b1VwZGF0ZSI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy54dGV2ZUF1dG9VcGRhdGUuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJiYWNrdXAua2VlcCI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5iYWNrdXBLZWVwLmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiYmFja3VwLnBhdGgiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MuYmFja3VwUGF0aC5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInRlbXAucGF0aCI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy50ZW1wUGF0aC5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImJ1ZmZlciI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5zdHJlYW1CdWZmZXJpbmcuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJidWZmZXIuc2l6ZS5rYiI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5idWZmZXJTaXplLmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAic3RvcmVCdWZmZXJJblJBTSI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5zdG9yZUJ1ZmZlckluUkFNLmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiYnVmZmVyLnRpbWVvdXQiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MuYnVmZmVyVGltZW91dC5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInVzZXIuYWdlbnQiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MudXNlckFnZW50LmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiZmZtcGVnLnBhdGgiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MuZmZtcGVnUGF0aC5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImZmbXBlZy5vcHRpb25zIjoNCiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLmZmbXBlZ09wdGlvbnMuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ2bGMucGF0aCI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy52bGNQYXRoLmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAidmxjLm9wdGlvbnMiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MudmxjT3B0aW9ucy5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImVwZ1NvdXJjZSI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5lcGdTb3VyY2UuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJob3N0SVAiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MuaG9zdElQLmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAidHVuZXIiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MudHVuZXIuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ1cGRhdGUiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MudXBkYXRlLmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiYXBpIjoNCiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLmFwaS5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImZpbGVzLnVwZGF0ZSI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5maWxlc1VwZGF0ZS5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImNhY2hlLmltYWdlcyI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5jYWNoZUltYWdlcy5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInhlcGcucmVwbGFjZS5taXNzaW5nLmltYWdlcyI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5yZXBsYWNlRW1wdHlJbWFnZXMuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ1ZHB4eSI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy51ZHB4eS5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICAgICAgdGV4dCA9ICIiOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICB9DQogICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gIiI7DQogICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgdmFyIHByZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlBSRSIpOw0KICAgICAgICBwcmUuaW5uZXJIVE1MID0gdGV4dDsNCiAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChwcmUpOw0KICAgICAgICBkZXNjcmlwdGlvbi5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICBkZXNjcmlwdGlvbi5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgcmV0dXJuIGRlc2NyaXB0aW9uOw0KICAgIH0NCn0NCmNsYXNzIFNldHRpbmdzQ2F0ZWdvcnlJdGVtIGV4dGVuZHMgU2V0dGluZ3NDYXRlZ29yeSB7DQogICAgY29uc3RydWN0b3IoaGVhZGxpbmUsIHNldHRpbmdzS2V5cykgew0KICAgICAgICBzdXBlcigpOw0KICAgICAgICB0aGlzLmhlYWRsaW5lID0gaGVhZGxpbmU7DQogICAgICAgIHRoaXMuc2V0dGluZ3NLZXlzID0gc2V0dGluZ3NLZXlzOw0KICAgIH0NCiAgICBjcmVhdGVDYXRlZ29yeSgpIHsNCiAgICAgICAgdmFyIGhlYWRsaW5lID0gdGhpcy5jcmVhdGVDYXRlZ29yeUhlYWRsaW5lKHRoaXMuaGVhZGxpbmUpOw0KICAgICAgICB2YXIgc2V0dGluZ3NLZXlzID0gdGhpcy5zZXR0aW5nc0tleXM7DQogICAgICAgIHZhciBkb2MgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCh0aGlzLkRvY3VtZW50SUQpOw0KICAgICAgICBkb2MuYXBwZW5kQ2hpbGQoaGVhZGxpbmUpOw0KICAgICAgICAvLyBDcmVhdGUgYSB0YWJsZSBmb3IgdGhlIGNhdGVnb3J5DQogICAgICAgIHZhciB0YWJsZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlRBQkxFIik7DQogICAgICAgIHZhciBrZXlzID0gc2V0dGluZ3NLZXlzLnNwbGl0KCIsIik7DQogICAgICAgIGtleXMuZm9yRWFjaChzZXR0aW5nc0tleSA9PiB7DQogICAgICAgICAgICBzd2l0Y2ggKHNldHRpbmdzS2V5KSB7DQogICAgICAgICAgICAgICAgY2FzZSAiYXV0aGVudGljYXRpb24ucG1zIjoNCiAgICAgICAgICAgICAgICBjYXNlICJhdXRoZW50aWNhdGlvbi5tM3UiOg0KICAgICAgICAgICAgICAgIGNhc2UgImF1dGhlbnRpY2F0aW9uLnhtbCI6DQogICAgICAgICAgICAgICAgY2FzZSAiYXV0aGVudGljYXRpb24uYXBpIjoNCiAgICAgICAgICAgICAgICAgICAgaWYgKFNFUlZFUlsic2V0dGluZ3MiXVsiYXV0aGVudGljYXRpb24ud2ViIl0gPT0gZmFsc2UpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgICAgICAgICAgdmFyIGl0ZW0gPSB0aGlzLmNyZWF0ZVNldHRpbmdzKHNldHRpbmdzS2V5KTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGRlc2NyaXB0aW9uID0gdGhpcy5jcmVhdGVEZXNjcmlwdGlvbihzZXR0aW5nc0tleSk7DQogICAgICAgICAgICAgICAgICAgIHRhYmxlLmFwcGVuZENoaWxkKGl0ZW0pOw0KICAgICAgICAgICAgICAgICAgICB0YWJsZS5hcHBlbmRDaGlsZChkZXNjcmlwdGlvbik7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9KTsNCiAgICAgICAgZG9jLmFwcGVuZENoaWxkKHRhYmxlKTsNCiAgICAgICAgZG9jLmFwcGVuZENoaWxkKHRoaXMuY3JlYXRlSFIoKSk7DQogICAgfQ0KfQ0KZnVuY3Rpb24gc2hvd1NldHRpbmdzKCkgew0KICAgIGZvciAobGV0IGkgPSAwOyBpIDwgc2V0dGluZ3NDYXRlZ29yeS5sZW5ndGg7IGkrKykgew0KICAgICAgICBzZXR0aW5nc0NhdGVnb3J5W2ldLmNyZWF0ZUNhdGVnb3J5KCk7DQogICAgfQ0KfQ0KZnVuY3Rpb24gc2F2ZVNldHRpbmdzKCkgew0KICAgIHZhciBjbWQgPSAic2F2ZVNldHRpbmdzIjsNCiAgICB2YXIgZGl2ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnRlbnRfc2V0dGluZ3MiKTsNCiAgICB2YXIgc2V0dGluZ3MgPSBkaXYuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSgiY2hhbmdlZCIpOw0KICAgIHZhciBuZXdTZXR0aW5ncyA9IG5ldyBPYmplY3QoKTsNCiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHNldHRpbmdzLmxlbmd0aDsgaSsrKSB7DQogICAgICAgIHZhciBuYW1lOw0KICAgICAgICB2YXIgdmFsdWU7DQogICAgICAgIHN3aXRjaCAoc2V0dGluZ3NbaV0udGFnTmFtZSkgew0KICAgICAgICAgICAgY2FzZSAiSU5QVVQiOg0KICAgICAgICAgICAgICAgIHN3aXRjaCAoc2V0dGluZ3NbaV0udHlwZSkgew0KICAgICAgICAgICAgICAgICAgICBjYXNlICJjaGVja2JveCI6DQogICAgICAgICAgICAgICAgICAgICAgICBuYW1lID0gc2V0dGluZ3NbaV0ubmFtZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlID0gc2V0dGluZ3NbaV0uY2hlY2tlZDsNCiAgICAgICAgICAgICAgICAgICAgICAgIG5ld1NldHRpbmdzW25hbWVdID0gdmFsdWU7DQogICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICAgICAgY2FzZSAidGV4dCI6DQogICAgICAgICAgICAgICAgICAgICAgICBuYW1lID0gc2V0dGluZ3NbaV0ubmFtZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlID0gc2V0dGluZ3NbaV0udmFsdWU7DQogICAgICAgICAgICAgICAgICAgICAgICBzd2l0Y2ggKG5hbWUpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYXNlICJ1cGRhdGUiOg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IHZhbHVlLnNwbGl0KCIsIik7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlID0gdmFsdWUuZmlsdGVyKGZ1bmN0aW9uIChlKSB7IHJldHVybiBlOyB9KTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAiYnVmZmVyLnRpbWVvdXQiOg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IHBhcnNlRmxvYXQodmFsdWUpOw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgbmV3U2V0dGluZ3NbbmFtZV0gPSB2YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgIlNFTEVDVCI6DQogICAgICAgICAgICAgICAgbmFtZSA9IHNldHRpbmdzW2ldLm5hbWU7DQogICAgICAgICAgICAgICAgdmFsdWUgPSBzZXR0aW5nc1tpXS52YWx1ZTsNCiAgICAgICAgICAgICAgICAvLyBJZiB0aGUgdmFsdWUgaXMgYSBudW1iZXIsIHN0b3JlIGl0IGFzIGEgbnVtYmVyDQogICAgICAgICAgICAgICAgaWYgKGlzTmFOKHZhbHVlKSkgew0KICAgICAgICAgICAgICAgICAgICBuZXdTZXR0aW5nc1tuYW1lXSA9IHZhbHVlOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICAgICAgbmV3U2V0dGluZ3NbbmFtZV0gPSBwYXJzZUludCh2YWx1ZSk7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICB9DQogICAgfQ0KICAgIHZhciBkYXRhID0gbmV3IE9iamVjdCgpOw0KICAgIGRhdGFbInNldHRpbmdzIl0gPSBuZXdTZXR0aW5nczsNCiAgICB2YXIgc2VydmVyID0gbmV3IFNlcnZlcihjbWQpOw0KICAgIHNlcnZlci5yZXF1ZXN0KGRhdGEpOw0KfQ0K" webUI["html/lang/en.json"] = "ew0KICAibWFpbk1lbnUiOg0KICB7DQogICAgIml0ZW0iOg0KICAgIHsNCiAgICAgICJwbGF5bGlzdCI6ICJQbGF5bGlzdCIsDQogICAgICAicG1zSUQiOiAiUE1TIElEIiwNCiAgICAgICJmaWx0ZXIiOiAiRmlsdGVyIiwNCiAgICAgICJ4bWx0diI6ICJYTUxUViIsDQogICAgICAibWFwcGluZyI6ICJNYXBwaW5nIiwNCiAgICAgICJ1c2VycyI6ICJVc2VycyIsDQogICAgICAic2V0dGluZ3MiOiAiU2V0dGluZ3MiLA0KICAgICAgImxvZyI6ICJMb2ciLA0KICAgICAgImxvZ291dCI6ICJMb2dvdXQiDQogICAgfSwNCiAgICAiaGVhZGxpbmUiOg0KICAgIHsNCiAgICAgICJwbGF5bGlzdCI6ICJMb2NhbCBvciByZW1vdGUgcGxheWxpc3RzIiwNCiAgICAgICJmaWx0ZXIiOiAiRmlsdGVyIHBsYXlsaXN0IiwNCiAgICAgICJ4bWx0diI6ICJMb2NhbCBvciByZW1vdGUgWE1MVFYgZmlsZXMiLA0KICAgICAgIm1hcHBpbmciOiAiTWFwIHBsYXlsaXN0IGNoYW5uZWxzIHRvIEVQRyBjaGFubmVscyIsDQogICAgICAidXNlcnMiOiAiVXNlciBtYW5hZ2VtZW50IiwNCiAgICAgICJzZXR0aW5ncyI6ICJTZXR0aW5ncyIsDQogICAgICAibG9nIjogIkxvZyIsDQogICAgICAibG9nb3V0IjogIkxvZ291dCINCiAgICB9DQogIH0sDQogICJjb25maXJtIjoNCiAgew0KICAgICJyZXN0b3JlIjogIkFsbCBkYXRhIHdpbGwgYmUgcmVwbGFjZWQgd2l0aCB0aG9zZSBmcm9tIHRoZSBiYWNrdXAuIFNob3VsZCB0aGUgZmlsZXMgYmUgcmVzdG9yZWQ/Ig0KICB9LA0KICAiYWxlcnQiOg0KICB7DQogICAgImZpbGVMb2FkaW5nRXJyb3IiOiAiRmlsZSBjb3VsZG4ndCBiZSBsb2FkZWQiLA0KICAgICJpbnZhbGlkQ2hhbm5lbE51bWJlciI6ICJJbnZhbGlkIGNoYW5uZWwgbnVtYmVyIiwNCiAgICAibWlzc2luZ0lucHV0IjogIk1pc3NpbmcgaW5wdXQiDQogIH0sDQogICJidXR0b24iOg0KICB7DQogICAgImJhY2siOiAiQmFjayIsDQogICAgImJhY2t1cCI6ICJCYWNrdXAiLA0KICAgICJidWxrRWRpdCI6ICJCdWxrIEVkaXQiLA0KICAgICJjYW5jZWwiOiAiQ2FuY2VsIiwNCiAgICAiZGVsZXRlIjogIkRlbGV0ZSIsDQogICAgImRvbmUiOiAiRG9uZSIsDQogICAgImxvZ2luIjogIkxvZ2luIiwNCiAgICAibmV3IjogIk5ldyIsDQogICAgIm5leHQiOiAiTmV4dCIsDQogICAgInJlc3RvcmUiOiAiUmVzdG9yZSIsDQogICAgInNhdmUiOiAiU2F2ZSIsDQogICAgInNlYXJjaCI6ICJTZWFyY2giLA0KICAgICJ1cGRhdGUiOiAiVXBkYXRlIiwNCiAgICAiY3JhZXRlQWNjb3VudCI6ICJDcmVhdGUgQWNjb3VudCIsDQogICAgInJlc2V0TG9ncyI6ICJSZXNldCBMb2dzIiwNCiAgICAidXBsb2FkTG9nbyI6ICJVcGxvYWQgTG9nbyINCiAgfSwNCiAgImZpbHRlciI6DQogIHsNCiAgICAidGFibGUiOg0KICAgIHsNCiAgICAgICJzdGFydGluZ0NoYW5uZWwiOiAiU3RhcnRpbmcgQ2guIE5vLiIsDQogICAgICAibmFtZSI6ICJGaWx0ZXIgTmFtZSIsDQogICAgICAidHlwZSI6ICJGaWx0ZXIgVHlwZSIsDQogICAgICAiZmlsdGVyIjogIkZpbHRlciINCiAgICB9LA0KICAgICJjdXN0b20iOiAiQ3VzdG9tIiwNCiAgICAiZ3JvdXAiOiAiTTNVIEdyb3VwIiwNCiAgICAibmFtZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIkZpbHRlciBOYW1lIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJGaWx0ZXIgbmFtZSIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgImRlc2NyaXB0aW9uIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiRGVzY3JpcHRpb24iLA0KICAgICAgInBsYWNlaG9sZGVyIjogIkRlc2NyaXB0aW9uIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAidHlwZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIlR5cGUiLA0KICAgICAgImdyb3VwVGl0bGUiOiAiR3JvdXAgVGl0bGUiLA0KICAgICAgImN1c3RvbUZpbHRlciI6ICJDdXN0b20gRmlsdGVyIg0KICAgIH0sDQogICAgImNhc2VTZW5zaXRpdmUiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJDYXNlIFNlbnNpdGl2ZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAiZmlsdGVyUnVsZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIkZpbHRlciBSdWxlIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJTcG9ydCB7SER9ICF7RVMsSVR9IiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAiZmlsdGVyR3JvdXAiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJHcm91cCBUaXRsZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJTZWxlY3QgYSBNM1UgZ3JvdXAuIChDb3VudGVyKTxicj5DaGFuZ2luZyB0aGUgZ3JvdXAgdGl0bGUgaW4gdGhlIE0zVSBpbnZhbGlkYXRlcyB0aGUgZmlsdGVyLiINCiAgICB9LA0KICAgICJpbmNsdWRlIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiSW5jbHVkZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiRkhELFVIRCIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiQ2hhbm5lbCBuYW1lIG11c3QgaW5jbHVkZS48YnI+KENvbW1hIHNlcGFyYXRlZCkgQ29tbWEgbWVhbnMgb3IiDQogICAgfSwNCiAgICAiZXhjbHVkZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIkV4Y2x1ZGUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIkVTLElUIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJDaGFubmVsIG5hbWUgbXVzdCBub3QgY29udGFpbi48YnI+KENvbW1hIHNlcGFyYXRlZCkgQ29tbWEgbWVhbnMgb3IiDQogICAgfSwNCiAgICAicHJlc2VydmVNYXBwaW5nIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiUHJlc2VydmUgRXhpc3RpbmcgTTNVPGJyPkNoYW5uZWwgTnVtYmVycyIsDQogICAgICAicGFsY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJQcmVzZXJ2ZSBleGlzdGluZyBNM1UgcGxheWxpc3QgY2hhbm5lbCBudW1iZXJzPyINCiAgICB9LA0KICAgICJzdGFydGluZ0NoYW5uZWwiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJTdGFydGluZyBDaGFubmVsIE51bWJlciIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAiZGVmYXVsdE1pc3NpbmdFUEciOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJGaWxsIE1pc3NpbmcgRVBHIERhdGEiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiV2hlbiB0aGVyZSBpcyBubyBtYXRjaGluZyBFUEcgZGF0YSBmb3IgY2hhbm5lbCwgPGJyPmF1dG9maWxsIHdpdGggeFRlVmUgZHVtbXkgRVBHIGRhdGE/Ig0KICAgIH0NCg0KICB9LA0KICAicGxheWxpc3QiOg0KICB7DQogICAgInRhYmxlIjoNCiAgICB7DQogICAgICAicGxheWxpc3QiOiAiUGxheWxpc3QiLA0KICAgICAgInR1bmVyIjogIlR1bmVyIiwNCiAgICAgICJsYXN0VXBkYXRlIjogIkxhc3QgVXBkYXRlIiwNCiAgICAgICJhdmFpbGFiaWxpdHkiOiAiQXZhaWxhYmlsaXR5IiwNCiAgICAgICJ0eXBlIjogIlR5cGUiLA0KICAgICAgInN0cmVhbXMiOiAiU3RyZWFtcyIsDQogICAgICAiZ3JvdXBUaXRsZSI6ICJncm91cC10aXRsZSIsDQogICAgICAidHZnSUQiOiAidHZnLWlkIiwNCiAgICAgICJ1bmlxdWVJRCI6ICJVbmlxdWUgSUQiDQogICAgfSwNCiAgICAicGxheWxpc3RUeXBlIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiUGxheWxpc3QgdHlwZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAidHlwZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIlR5cGUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgIm5hbWUiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJOYW1lIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJQbGF5bGlzdCBuYW1lIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAiZGVzY3JpcHRpb24iOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJEZXNjcmlwdGlvbiIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiRGVzY3JpcHRpb24iLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJmaWxlTTNVIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiTTNVIEZpbGUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIkZpbGUgcGF0aCBvciBVUkwgb2YgdGhlIE0zVSIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgImZpbGVIREhSIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiSERIb21lUnVuIElQIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJJUCBhZGRyZXNzIGFuZCBwb3J0ICgxOTIuMTY4LjEuMTA6NTAwNCkiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJ0dW5lciI6DQogICAgew0KICAgICAgInRpdGxlIjogIlR1bmVyIC8gU3RyZWFtcyIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJOdW1iZXIgb2YgcGFyYWxsZWwgY29ubmVjdGlvbnMgdGhhdCBjYW4gYmUgZXN0YWJsaXNoZWQgdG8gdGhlIHByb3ZpZGVyLiA8YnI+T25seSBhdmFpbGFibGUgd2l0aCBhY3RpdmF0ZWQgYnVmZmVyLjxicj5OZXcgc2V0dGluZ3Mgd2lsbCBvbmx5IGJlIGFwcGxpZWQgYWZ0ZXIgcXVpdHRpbmcgYWxsIHN0cmVhbXMuIg0KICAgIH0NCiAgfSwNCiAgInhtbHR2IjoNCiAgew0KICAgICJ0YWJsZSI6DQogICAgew0KICAgICAgImd1aWRlIjogIkd1aWRlIiwNCiAgICAgICJsYXN0VXBkYXRlIjogIkxhc3QgVXBkYXRlIiwNCiAgICAgICJhdmFpbGFiaWxpdHkiOiAiQXZhaWxhYmlsaXR5IiwNCiAgICAgICJjaGFubmVscyI6ICJDaGFubmVscyIsDQogICAgICAicHJvZ3JhbXMiOiAiUHJvZ3JhbXMiDQogICAgfSwNCiAgICAibmFtZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIk5hbWUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIkd1aWRlIG5hbWUiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJkZXNjcmlwdGlvbiI6DQogICAgew0KICAgICAgInRpdGxlIjogIkRlc2NyaXB0aW9uIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJEZXNjcmlwdGlvbiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgImZpbGVYTUxUViI6DQogICAgew0KICAgICAgInRpdGxlIjogIlhNTFRWIEZpbGUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIkZpbGUgcGF0aCBvciBVUkwgb2YgdGhlIFhNTFRWIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfQ0KICB9LA0KICAibWFwcGluZyI6DQogIHsNCiAgICAidGFibGUiOg0KICAgIHsNCiAgICAgICJjaE5vIjogIkNoLiBOby4iLA0KICAgICAgImxvZ28iOiAiTG9nbyIsDQogICAgICAiY2hhbm5lbE5hbWUiOiAiQ2hhbm5lbCBOYW1lIiwNCiAgICAgICJwbGF5bGlzdCI6ICJQbGF5bGlzdCIsDQogICAgICAiZ3JvdXBUaXRsZSI6ICJHcm91cCBUaXRsZSIsDQogICAgICAieG1sdHZGaWxlIjogIlhNTFRWIEZpbGUiLA0KICAgICAgInhtbHR2SUQiOiAiWE1MVFYgSUQiLA0KICAgICAgInRpbWVzaGlmdCI6ICJUaW1lc2hpZnQiDQogICAgfSwNCiAgICAiYWN0aXZlIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiQWN0aXZlIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJjaGFubmVsTmFtZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIkNoYW5uZWwgTmFtZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAiZGVzY3JpcHRpb24iOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJDaGFubmVsIERlc2NyaXB0aW9uIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJVc2VkIGJ5IHRoZSBEdW1teSBhcyBhbiBYTUwgZGVzY3JpcHRpb24iLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJ1cGRhdGVDaGFubmVsTmFtZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIlVwZGF0ZSBDaGFubmVsIE5hbWUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgInVwZGF0ZUNoYW5uZWxHcm91cCI6DQogICAgew0KICAgICAgInRpdGxlIjogIlVwZGF0ZSBDaGFubmVsIEdyb3VwIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIklmIGNoZWNrZWQsIHVzZSBncm91cCBmcm9tIHRoZSBkYXRhYmFzZSINCiAgICB9LA0KICAgICJjaGFubmVsTG9nbyI6DQogICAgew0KICAgICAgInRpdGxlIjogIkxvZ28gVVJMIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJ1cGRhdGVDaGFubmVsTG9nbyI6DQogICAgew0KICAgICAgInRpdGxlIjogIlVwZGF0ZSBDaGFubmVsIExvZ28iLA0KICAgICAgInBsYWNlaG9sZGVyIjogIiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgImVwZ0NhdGVnb3J5IjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiRVBHIENhdGVnb3J5IiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJtM3VHcm91cFRpdGxlIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiR3JvdXAgVGl0bGUgKHh0ZXZlLm0zdSkiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgInhtbHR2RmlsZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIlhNTFRWIEZpbGUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgInhtbHR2Q2hhbm5lbCI6DQogICAgew0KICAgICAgInRpdGxlIjogIlhNTFRWIENoYW5uZWwiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgInRpbWVzaGlmdCI6DQogICAgew0KICAgICAgInRpdGxlIjogIlRpbWVzaGlmdCIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiMCIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0NCiAgfSwNCiAgInVzZXJzIjoNCiAgew0KICAgICJ0YWJsZSI6DQogICAgew0KICAgICAgInVzZXJuYW1lIjogIlVzZXJuYW1lIiwNCiAgICAgICJwYXNzd29yZCI6ICJQYXNzd29yZCIsDQogICAgICAid2ViIjogIldFQiIsDQogICAgICAicG1zIjogIlBNUyIsDQogICAgICAibTN1IjogIk0zVSIsDQogICAgICAieG1sIjogIlhNTCIsDQogICAgICAiYXBpIjogIkFQSSINCiAgICB9LA0KICAgICJ1c2VybmFtZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIlVzZXJuYW1lIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJVc2VybmFtZSIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgInBhc3N3b3JkIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiUGFzc3dvcmQiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIlBhc3N3b3JkIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAiY29uZmlybSI6DQogICAgew0KICAgICAgInRpdGxlIjogIkNvbmZpcm0iLA0KICAgICAgInBsYWNlaG9sZGVyIjogIlBhc3N3b3JkIGNvbmZpcm0iLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJ3ZWIiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJXZWIgQWNjZXNzIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJwbXMiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJQTVMgQWNjZXNzIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJtM3UiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJNM1UgQWNjZXNzIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJ4bWwiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJYTUwgQWNjZXNzIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJhcGkiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJBUEkgQWNjZXNzIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9DQogIH0sDQogICJzZXR0aW5ncyI6DQogIHsNCiAgICAiY2F0ZWdvcnkiOg0KICAgIHsNCiAgICAgICJnZW5lcmFsIjogIkdlbmVyYWwiLA0KICAgICAgImZpbGVzIjogIkZpbGVzIiwNCiAgICAgICJzdHJlYW1pbmciOiAiU3RyZWFtaW5nIiwNCiAgICAgICJiYWNrdXAiOiAiQmFja3VwIiwNCiAgICAgICJhdXRoZW50aWNhdGlvbiI6ICJBdXRoZW50aWNhdGlvbiINCiAgICB9LA0KICAgICJ1cGRhdGUiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJTY2hlZHVsZSBmb3IgdXBkYXRpbmcgKFBsYXlsaXN0LCBYTUxUViwgQmFja3VwKSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiMDAwMCwxMDAwLDIwMDAiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIlRpbWUgaW4gMjQgaG91ciBmb3JtYXQgKDA4MDAgPSA4OjAwIGFtKS4gTW9yZSB0aW1lcyBjYW4gYmUgZW50ZXJlZCBjb21tYSBzZXBhcmF0ZWQuIExlYXZlIHRoaXMgZmllbGQgZW1wdHkgaWYgbm8gdXBkYXRlcyBhcmUgdG8gYmUgY2FycmllZCBvdXQuIg0KICAgIH0sDQogICAgImFwaSI6DQogICAgew0KICAgICAgInRpdGxlIjogIkFQSSBJbnRlcmZhY2UiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIlZpYSBBUEkgaW50ZXJmYWNlIGl0IGlzIHBvc3NpYmxlIHRvIHNlbmQgY29tbWFuZHMgdG8geFRlVmUuIEFQSSBkb2N1bWVudGF0aW9uIGlzIDxhIGhyZWY9J2h0dHBzOi8vZ2l0aHViLmNvbS94dGV2ZS1wcm9qZWN0L3hUZVZlLURvY3VtZW50YXRpb24vYmxvYi9tYXN0ZXIvZW4vY29uZmlndXJhdGlvbi5tZCNhcGknPmhlcmU8L2E+Ig0KICAgIH0sDQogICAgImVwZ1NvdXJjZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIkVQRyBTb3VyY2UiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIlBNUzo8YnI+LSBVc2UgRVBHIGRhdGEgZnJvbSBQbGV4IG9yIEVtYnkgPGJyPjxicj5YRVBHOjxicj4tIFVzZSBvZiBvbmUgb3IgbW9yZSBYTUxUViBmaWxlczxicj4tIENoYW5uZWwgbWFuYWdlbWVudDxicj4tIE0zVSAvIFhNTFRWIGV4cG9ydCAoSFRUUCBsaW5rIGZvciBJUFRWIGFwcHMpIg0KICAgIH0sDQogICAgInR1bmVyIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiTnVtYmVyIG9mIFR1bmVycyIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiTnVtYmVyIG9mIHBhcmFsbGVsIGNvbm5lY3Rpb25zIHRoYXQgY2FuIGJlIGVzdGFibGlzaGVkIHRvIHRoZSBwcm92aWRlci48YnI+QXZhaWxhYmxlIGZvcjogUGxleCwgRW1ieSAoSERIUiksIE0zVSAod2l0aCBhY3RpdmUgYnVmZmVyKS48YnI+QWZ0ZXIgYSBjaGFuZ2UsIHhUZVZlIG11c3QgYmUgZGVsZXRlIGluIHRoZSBQbGV4IC8gRW1ieSBEVlIgc2V0dGluZ3MgYW5kIHNldCB1cCBhZ2Fpbi4iDQogICAgfSwNCiAgICAiaG9zdElQIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiSG9zdCBJUCIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiSVAgYWRkcmVzcyB4VGVWZSB3aWxsIHVzZSB0byBmb3JtIE0zVSBhbmQgWE1MVFYgZmlsZXMiDQogICAgfSwNCiAgICAidGxzTW9kZSI6IHsNCiAgICAgICJ0aXRsZSI6ICJUTFMgKEhUVFBTKSBtb2RlIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJDaGFuZ2VzIHdlYiBzZXJ2ZXIgcHJvdG9jb2wgdG8gSFRUUFMuPGJyPkZvciBkZXRhaWxzLCBzZWUgPGE+aHR0cHM6Ly9naXRodWIuY29tL1NDUDAwMi94VGVWZSN0bHMtbW9kZTwvYT4iDQogICAgfSwNCiAgICAiZmlsZXNVcGRhdGUiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJVcGRhdGVzIGFsbCBmaWxlcyBhdCBzdGFydHVwIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJVcGRhdGVzIGFsbCBwbGF5bGlzdHMsIHR1bmVyIGFuZCBYTUxUViBmaWxlcyBhdCBzdGFydHVwLiINCiAgICB9LA0KICAgICJjYWNoZUltYWdlcyI6DQogICAgew0KICAgICAgInRpdGxlIjogIkltYWdlIENhY2hpbmciLA0KICAgICAgImRlc2NyaXB0aW9uIjogIkFsbCBpbWFnZXMgZnJvbSB0aGUgWE1MVFYgZmlsZSBhcmUgY2FjaGVkLCBhbGxvd2luZyBmYXN0ZXIgcmVuZGVyaW5nIG9mIHRoZSBncmlkIGluIHRoZSBjbGllbnQuPGJyPkRvd25sb2FkaW5nIHRoZSBpbWFnZXMgbWF5IHRha2UgYSB3aGlsZSBhbmQgd2lsbCBiZSBkb25lIGluIHRoZSBiYWNrZ3JvdW5kLiINCiAgICB9LA0KICAgICJyZXBsYWNlRW1wdHlJbWFnZXMiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJSZXBsYWNlIG1pc3NpbmcgcHJvZ3JhbSBpbWFnZXMiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIklmIHRoZSBwb3N0ZXIgaW4gdGhlIFhNTFRWIHByb2dyYW0gaXMgbWlzc2luZywgdGhlIGNoYW5uZWwgbG9nbyB3aWxsIGJlIHVzZWQuIg0KICAgIH0sDQogICAgInh0ZXZlQXV0b1VwZGF0ZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIkF1dG9tYXRpYyB1cGRhdGUgb2YgeFRlVmUiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIklmIGEgbmV3IHZlcnNpb24gb2YgeFRlVmUgaXMgYXZhaWxhYmxlLCBpdCB3aWxsIGJlIGF1dG9tYXRpY2FsbHkgaW5zdGFsbGVkLiBUaGUgdXBkYXRlcyBhcmUgZG93bmxvYWRlZCBmcm9tIEdpdEh1Yi4iDQogICAgfSwNCiAgICAic3RyZWFtQnVmZmVyaW5nIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiU3RyZWFtIEJ1ZmZlciIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiRnVuY3Rpb25zIG9mIHRoZSBidWZmZXI6PGJyPi0gVGhlIHN0cmVhbSBpcyBwYXNzZWQgZnJvbSB4VGVWZSwgRkZtcGVnIG9yIFZMQyB0byBQbGV4LCBFbWJ5IG9yIE0zVSBQbGF5ZXI8YnI+LSBTbWFsbCBqZXJraW5nIG9mIHRoZSBzdHJlYW1zIGNhbiBiZSBjb21wZW5zYXRlZDxicj4tIEhMUyAvIE0zVTggc3VwcG9ydDxicj4tIFJUUCAvIFJUUFMgc3VwcG9ydCAob25seSBGRm1wZWcgb3IgVkxDKTxicj4tIFJlLXN0cmVhbWluZzxicj4tIFNlcGFyYXRlIHR1bmVyIGxpbWl0IGZvciBlYWNoIHBsYXlsaXN0IiwNCiAgICAgICJpbmZvX2ZhbHNlIjogIk5vIEJ1ZmZlciAoQ2xpZW50IGNvbm5lY3RzIHRvIHRoZSBzdHJlYW1pbmcgc2VydmVyKSIsDQogICAgICAiaW5mb194dGV2ZSI6ICJ4VGVWZSBjb25uZWN0cyB0byB0aGUgc3RyZWFtaW5nIHNlcnZlciIsDQogICAgICAiaW5mb19mZm1wZWciOiAiRkZtcGVnIGNvbm5lY3RzIHRvIHRoZSBzdHJlYW1pbmcgc2VydmVyIiwNCiAgICAgICJpbmZvX3ZsYyI6ICJWTEMgY29ubmVjdHMgdG8gdGhlIHN0cmVhbWluZyBzZXJ2ZXIiDQoNCiAgICB9LA0KICAgICJ1ZHB4eSI6DQogICAgew0KICAgICAgInRpdGxlIjogIlVEUHh5IGFkZHJlc3MiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIlRoZSBhZGRyZXNzIG9mIHlvdXIgVURQeHkgc2VydmVyLiBJZiBzZXQsIGFuZCB0aGUgY2hhbm5lbCBVUkxzIGluIHRoZSBtM3UgaXMgbXVsdGljYXN0LCB4VGVWZSB3aWxsIHJld3JpdGUgaXQgc28gdGhhdCBpdCBpcyBhY2Nlc3NlZCB2aWEgdGhlIFVEUHh5IHNlcnZpY2UuIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJob3N0OnBvcnQiDQogICAgfSwNCiAgICAiZmZtcGVnUGF0aCI6DQogICAgew0KICAgICAgInRpdGxlIjogIkZGbXBlZyBCaW5hcnkgUGF0aCIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiUGF0aCB0byBGRm1wZWcgYmluYXJ5LiIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiL3BhdGgvdG8vZmZtcGVnIg0KICAgIH0sDQogICAgImZmbXBlZ09wdGlvbnMiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJGRm1wZWcgT3B0aW9ucyIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiRkZtcGVnIG9wdGlvbnMuPGJyPk9ubHkgY2hhbmdlIGlmIHlvdSBrbm93IHdoYXQgeW91IGFyZSBkb2luZy48YnI+TGVhdmUgYmxhbmsgdG8gc2V0IGRlZmF1bHQgc2V0dGluZ3MuIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJMZWF2ZSBibGFuayB0byBzZXQgZGVmYXVsdCBzZXR0aW5ncyINCiAgICB9LA0KICAgICJ2bGNQYXRoIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiVkxDIC8gQ1ZMQyBCaW5hcnkgUGF0aCIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiUGF0aCB0byBWTEMgLyBDVkxDIGJpbmFyeS4iLA0KICAgICAgInBsYWNlaG9sZGVyIjogIi9wYXRoL3RvL2N2bGMiDQogICAgfSwNCiAgICAidmxjT3B0aW9ucyI6DQogICAgew0KICAgICAgInRpdGxlIjogIlZMQyAvIENWTEMgT3B0aW9ucyIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiVkxDIC8gQ1ZMQyBvcHRpb25zLjxicj5Pbmx5IGNoYW5nZSBpZiB5b3Uga25vdyB3aGF0IHlvdSBhcmUgZG9pbmcuPGJyPkxlYXZlIGJsYW5rIHRvIHNldCBkZWZhdWx0IHNldHRpbmdzLiIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiTGVhdmUgYmxhbmsgdG8gc2V0IGRlZmF1bHQgc2V0dGluZ3MiDQogICAgfSwNCiAgICAiYnVmZmVyU2l6ZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIkJ1ZmZlciBTaXplIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJCdWZmZXIgc2l6ZSBpbiBNQi48YnI+TTNVODogSWYgdGhlIFRTIHNlZ21lbnQgc21hbGxlciB0aGVuIHRoZSBidWZmZXIgc2l6ZSwgdGhlIGZpbGUgc2l6ZSBvZiB0aGUgc2VnbWVudCBpcyB1c2VkLiINCiAgICB9LA0KICAgICJzdG9yZUJ1ZmZlckluUkFNIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiU3RvcmUgYnVmZmVyIGluIFJBTSIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiSWYgY2hlY2tlZCwgd3JpdGUgYnVmZmVyIHRvIFJBTSBpbnN0ZWFkIG9mIHdyaXRpbmcgdG8gZGlzayINCiAgICB9LA0KICAgICJidWZmZXJUaW1lb3V0IjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiVGltZW91dCBmb3IgbmV3IGNsaWVudCBjb25uZWN0aW9ucyIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiVGhlIHhUZVZlIGJ1ZmZlciB3YWl0cyB1bnRpbCBuZXcgY2xpZW50IGNvbm5lY3Rpb25zIGFyZSBlc3RhYmxpc2hlZC4gSGVscGZ1bCBmb3IgZmFzdCBjaGFubmVsIHN3aXRjaGluZy4gVmFsdWUgaW4gbWlsbGlzZWNvbmRzLiIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiMTAwIg0KICAgIH0sDQogICAgInVzZXJBZ2VudCI6DQogICAgew0KICAgICAgInRpdGxlIjogIlVzZXIgQWdlbnQiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIlVzZXIgQWdlbnQgZm9yIEhUVFAgcmVxdWVzdHMuIEZvciBldmVyeSBIVFRQIGNvbm5lY3Rpb24sIHRoaXMgdmFsdWUgaXMgdXNlZCBmb3IgdGhlIHVzZXIgYWdlbnQuIFNob3VsZCBvbmx5IGJlIGNoYW5nZWQgaWYgeFRlVmUgaXMgYmxvY2tlZC4iLA0KICAgICAgInBsYWNlaG9sZGVyIjogInhUZVZlIg0KICAgIH0sDQogICAgImJhY2t1cFBhdGgiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJMb2NhdGlvbiBmb3IgYXV0b21hdGljIGJhY2t1cHMiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIi9tbnQvZGF0YS9iYWNrdXAveHRldmUvIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJCZWZvcmUgYW55IHVwZGF0ZSBvZiB0aGUgcHJvdmlkZXIgZGF0YSBieSB0aGUgc2NoZWR1bGUsIHhUZVZlIGNyZWF0ZXMgYSBiYWNrdXAuIFRoZSBwYXRoIGZvciB0aGUgYXV0b21hdGljIGJhY2t1cHMgY2FuIGJlIGNoYW5nZWQuIHhUZVZlIHJlcXVpcmVzIHdyaXRlIHBlcm1pc3Npb24gZm9yIHRoaXMgZm9sZGVyLiINCiAgICB9LA0KICAgICJ0ZW1wUGF0aCI6DQogICAgew0KICAgICAgInRpdGxlIjogIkxvY2F0aW9uIGZvciB0aGUgdGVtcG9yYXJ5IGZpbGVzIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIvdG1wL3h0ZXZlLyIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiTG9jYXRpb24gZm9yIHRoZSBidWZmZXIgZmlsZXMuIg0KICAgIH0sDQogICAgImJhY2t1cEtlZXAiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJOdW1iZXIgb2YgYmFja3VwcyB0byBrZWVwIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJOdW1iZXIgb2YgYmFja3VwcyB0byBrZWVwLiBPbGRlciBiYWNrdXBzIGFyZSBhdXRvbWF0aWNhbGx5IGRlbGV0ZWQuIg0KICAgIH0sDQogICAgImF1dGhlbnRpY2F0aW9uV0VCIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiV0VCIEF1dGhlbnRpY2F0aW9uIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJBY2Nlc3MgdG8gdGhlIHdlYiBpbnRlcmZhY2Ugb25seSBwb3NzaWJsZSB3aXRoIGNyZWRlbnRpYWxzLiINCiAgICB9LA0KICAgICJhdXRoZW50aWNhdGlvblBNUyI6DQogICAgew0KICAgICAgInRpdGxlIjogIlBNUyBBdXRoZW50aWNhdGlvbiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiUGxleCByZXF1ZXN0cyBhcmUgb25seSBwb3NzaWJsZSB3aXRoIGF1dGhlbnRpY2F0aW9uLiA8YnI+PGI+V2FybmluZyEhITwvYj4gQWZ0ZXIgYWN0aXZhdGluZyB0aGlzIGZ1bmN0aW9uIHhUZVZlIG11c3QgYmUgZGVsZXRlIGluIHRoZSBQTVMgRFZSIHNldHRpbmdzIGFuZCBzZXQgdXAgYWdhaW4uIg0KICAgIH0sDQogICAgImF1dGhlbnRpY2F0aW9uTTNVIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiTTNVIEF1dGhlbnRpY2F0aW9uIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJEb3dubG9hZGluZyB0aGUgeHRldmUubTN1IGZpbGUgdmlhIGFuIEhUVFAgcmVxdWVzdCBpcyBvbmx5IHBvc3NpYmxlIHdpdGggYXV0aGVudGljYXRpb24uIg0KICAgIH0sDQogICAgImF1dGhlbnRpY2F0aW9uWE1MIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiWE1MIEF1dGhlbnRpY2F0aW9uIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJEb3dubG9hZGluZyB0aGUgeHRldmUueG1sIGZpbGUgdmlhIGFuIEhUVFAgcmVxdWVzdCBpcyBvbmx5IHBvc3NpYmxlIHdpdGggYXV0aGVudGljYXRpb24iDQogICAgfSwNCiAgICAiYXV0aGVudGljYXRpb25BUEkiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJBUEkgQXV0aGVudGljYXRpb24iLA0KICAgICAgImRlc2NyaXB0aW9uIjogIkFjY2VzcyB0byB0aGUgQVBJIGludGVyZmFjZSBpcyBvbmx5IHBvc3NpYmxlIHdpdGggYXV0aGVudGljYXRpb24uIg0KICAgIH0NCiAgfSwNCiAgIndpemFyZCI6DQogIHsNCiAgICAiZXBnU291cmNlIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiRVBHIFNvdXJjZSIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiUE1TOjxicj4tIFVzZSBFUEcgZGF0YSBmcm9tIFBsZXggb3IgRW1ieSA8YnI+PGJyPlhFUEc6PGJyPi0gVXNlIG9mIG9uZSBvciBtb3JlIFhNTFRWIGZpbGVzPGJyPi0gQ2hhbm5lbCBtYW5hZ2VtZW50PGJyPi0gTTNVIC8gWE1MVFYgZXhwb3J0IChIVFRQIGxpbmsgZm9yIElQVFYgYXBwcykiDQogICAgfSwNCiAgICAidHVuZXIiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJOdW1iZXIgb2YgdHVuZXJzIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJOdW1iZXIgb2YgcGFyYWxsZWwgY29ubmVjdGlvbnMgdGhhdCBjYW4gYmUgZXN0YWJsaXNoZWQgdG8gdGhlIHByb3ZpZGVyLjxicj5BdmFpbGFibGUgZm9yOiBQbGV4LCBFbWJ5IChIREhSKSwgTTNVICh3aXRoIGFjdGl2ZSBidWZmZXIpLjxicj5BZnRlciBhIGNoYW5nZSwgeFRlVmUgbXVzdCBiZSBkZWxldGUgaW4gdGhlIFBsZXggLyBFbWJ5IERWUiBzZXR0aW5ncyBhbmQgc2V0IHVwIGFnYWluLiINCiAgICB9LA0KICAgICJtM3UiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJNM1UgUGxheWxpc3QiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIkZpbGUgcGF0aCBvciBVUkwgb2YgdGhlIE0zVSIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiTG9jYWwgb3IgcmVtb3RlIHBsYXlsaXN0cyINCiAgICB9LA0KICAgICJ4bWx0diI6DQogICAgew0KICAgICAgInRpdGxlIjogIlhNTFRWIEZpbGUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIkZpbGUgcGF0aCBvciBVUkwgb2YgdGhlIFhNTFRWIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJMb2NhbCBvciByZW1vdGUgWE1MVFYgZmlsZSINCiAgICB9DQogIH0sDQogICJsb2dpbiI6DQogIHsNCiAgICAiZmFpbGVkIjogIlVzZXIgYXV0aGVudGljYXRpb24gZmFpbGVkIiwNCiAgICAiaGVhZGxpbmUiOiAiTG9naW4iLA0KICAgICJ1c2VybmFtZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIlVzZXJuYW1lIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJVc2VybmFtZSINCiAgICB9LA0KICAgICJwYXNzd29yZCI6DQogICAgew0KICAgICAgInRpdGxlIjogIlBhc3N3b3JkIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJQYXNzd29yZCINCiAgICB9DQogIH0sDQogICJhY2NvdW50IjoNCiAgew0KICAgICJmYWlsZWQiOiAiUGFzc3dvcmQgZG9lcyBub3QgbWF0Y2giLA0KICAgICJoZWFkbGluZSI6ICJDcmVhdGUgdXNlciBhY2NvdW50IiwNCiAgICAidXNlcm5hbWUiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJVc2VybmFtZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiVXNlcm5hbWUiDQogICAgfSwNCiAgICAicGFzc3dvcmQiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJQYXNzd29yZCIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiUGFzc3dvcmQiDQogICAgfSwNCiAgICAiY29uZmlybSI6DQogICAgew0KICAgICAgInRpdGxlIjogIkNvbmZpcm0iLA0KICAgICAgInBsYWNlaG9sZGVyIjogIkNvbmZpcm0iDQogICAgfQ0KICB9DQp9" diff --git a/ts/menu_ts.ts b/ts/menu_ts.ts index eec10f5..3784063 100644 --- a/ts/menu_ts.ts +++ b/ts/menu_ts.ts @@ -1679,7 +1679,7 @@ function openPopUp(dataType, element) { xmlTvIdInput.setAttribute('list', 'xmltv-id-picker-datalist'); xmlTvIdInput.setAttribute('name', 'x-mapping'); // Should stay x-mapping as it will be used in donePopupData to make a server request xmlTvIdInput.setAttribute('id', 'xmltv-id-picker-input'); - xmlTvIdInput.setAttribute('onchange', `javascript: this.className = 'changed'; checkXmltvChannel('${id}', this, '${xmlTvFile}');`); + xmlTvIdInput.setAttribute('onchange', `javascript: this.className = 'changed'; checkXmltvChannel('${id}', this.value, '${xmlTvFile}');`); xmlTvIdDatalist.setAttribute('id', 'xmltv-id-picker-datalist'); content.appendRow('{{.mapping.xmltvChannel.title}}', xmlTvIdContainer); @@ -1760,7 +1760,6 @@ class XMLTVFile { // TODO: Display FULL list, see: // > https://stackoverflow.com/questions/37478727/how-can-i-make-a-browser-display-all-datalist-options-when-a-default-value-is-se // > https://www.hongkiat.com/blog/search-select-using-datalist/ - // > https://jqueryui.com/autocomplete/#combobox OR https://select2.org/dropdown /** * @param xmlTvFile XML file path to get EPG from. @@ -1774,7 +1773,23 @@ class XMLTVFile { const container = document.createElement('div'); const input = document.createElement('input'); input.setAttribute('type', 'text'); - input.value = currentXmlTvId ? currentXmlTvId : '-'; + + // Initially, set value to '-' if input is empty + input.value = (currentXmlTvId) ? currentXmlTvId : '-'; + + // When input is focused, remove '-' from it + input.addEventListener('focus', (evt) => { + const target = evt.target as HTMLInputElement; + target.value = (target.value === '-') ? '' : target.value; + }); + + // When input lose focus or take a value, if it's empty, set value to '-' + input.addEventListener('blur', setFallbackValue); + input.addEventListener('change', setFallbackValue); + function setFallbackValue(evt: Event) { + const target = evt.target as HTMLInputElement; + target.value = (target.value) ? target.value : '-'; + } container.appendChild(input); @@ -1870,23 +1885,19 @@ function setXmltvChannel(epgMapId: string, xmlTvFileSelect: HTMLSelectElement) { xmlTvIdInput.setAttribute('list', 'xmltv-id-picker-datalist'); xmlTvIdInput.setAttribute('name', 'x-mapping'); // Should stay x-mapping as it will be used in donePopupData to make a server request xmlTvIdInput.setAttribute('id', 'xmltv-id-picker-input'); - xmlTvIdInput.setAttribute('onchange', `javascript: this.className = 'changed'; checkXmltvChannel('${epgMapId}', this, '${newXmlTvFile}');`); + xmlTvIdInput.setAttribute('onchange', `javascript: this.className = 'changed'; checkXmltvChannel('${epgMapId}', this.value, '${newXmlTvFile}');`); xmlTvIdInput.classList.add('changed'); xmlTvIdDatalist.setAttribute('id', 'xmltv-id-picker-datalist'); // Add new XMLTV ID selection box to it's parent xmlTvIdPickerParent.appendChild(xmlTvIdContainer); - checkXmltvChannel(epgMapId, xmlTvIdInput, newXmlTvFile); + checkXmltvChannel(epgMapId, xmlTvIdInput.value, newXmlTvFile); } -function checkXmltvChannel(epgMapId: string, xmlTvIdInput: HTMLInputElement, xmlTvFile: string) { - - // If empty, set to '-' - xmlTvIdInput.value = xmlTvIdInput.value ? xmlTvIdInput.value : '-'; +function checkXmltvChannel(epgMapId: string, newXmlTvId: string, xmlTvFile: string) { - const newXmlTvId = xmlTvIdInput.value; const channelActiveCb = document.getElementById('active') as HTMLInputElement; const channelActive = newXmlTvId != '-'; @@ -1916,7 +1927,6 @@ function changeChannelLogo(epgMapId: string) { const xmlTvIdInput = document.getElementById('xmltv-id-picker-input') as HTMLInputElement; const newXmlTvId = xmlTvIdInput.value; - const xmlTvLogo = SERVER['xepg']['xmltvMap'][xmlTvFile][newXmlTvId]['icon']; const updateLogo = (document.getElementById('update-icon') as HTMLInputElement).checked; let logo: string; @@ -1924,7 +1934,7 @@ function changeChannelLogo(epgMapId: string) { if (updateLogo == true && xmlTvFile != 'xTeVe Dummy') { if (SERVER['xepg']['xmltvMap'][xmlTvFile].hasOwnProperty(newXmlTvId)) { - logo = xmlTvLogo; + logo = SERVER['xepg']['xmltvMap'][xmlTvFile][newXmlTvId]['icon']; } else { logo = channel['tvg-logo']; } From 06ffb190220203811ea0d1377b289d9463b28508 Mon Sep 17 00:00:00 2001 From: SCP002 Date: Thu, 28 Apr 2022 22:26:06 +0300 Subject: [PATCH 098/189] Update dependencies, remove TODO --- go.mod | 12 ++++++------ go.sum | 12 ++++++++++++ html/js/menu_ts.js | 3 --- src/webUI.go | 2 +- ts/menu_ts.ts | 4 ---- 5 files changed, 19 insertions(+), 14 deletions(-) diff --git a/go.mod b/go.mod index 4d610df..cd1bdd6 100644 --- a/go.mod +++ b/go.mod @@ -5,18 +5,18 @@ go 1.18 require ( github.com/gorilla/websocket v1.5.0 github.com/kardianos/osext v0.0.0-20190222173326-2bc1f35cddc0 - github.com/koron/go-ssdp v0.0.2 - github.com/samber/lo v1.11.0 + github.com/koron/go-ssdp v0.0.3 + github.com/samber/lo v1.18.0 github.com/stretchr/testify v1.7.1 ) -require github.com/avfs/avfs v0.28.0 +require github.com/avfs/avfs v0.29.0 require ( github.com/davecgh/go-spew v1.1.1 // indirect github.com/pmezard/go-difflib v1.0.0 // indirect - golang.org/x/exp v0.0.0-20220303212507-bbda1eaf7a17 // indirect - golang.org/x/net v0.0.0-20220403103023-749bd193bc2b // indirect - golang.org/x/sys v0.0.0-20220405210540-1e041c57c461 // indirect + golang.org/x/exp v0.0.0-20220428152302-39d4317da171 // indirect + golang.org/x/net v0.0.0-20220425223048-2871e0cb64e4 // indirect + golang.org/x/sys v0.0.0-20220422013727-9388b58f7150 // indirect gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b // indirect ) diff --git a/go.sum b/go.sum index ce3e39f..5d6509c 100644 --- a/go.sum +++ b/go.sum @@ -1,5 +1,7 @@ github.com/avfs/avfs v0.28.0 h1:srNIj81bIqD8J5QP/F46WfLfcy/viVDqo82XEERFm0E= github.com/avfs/avfs v0.28.0/go.mod h1:CSGcc8vnwdripDtbXQ6hzmKazmnJFZ7m2ObyomzneEg= +github.com/avfs/avfs v0.29.0 h1:9LBkWAQkxrrRQmw5oPBXjbVkAb/zQ4iNLYyt0GunZuo= +github.com/avfs/avfs v0.29.0/go.mod h1:CSGcc8vnwdripDtbXQ6hzmKazmnJFZ7m2ObyomzneEg= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= @@ -9,12 +11,16 @@ github.com/kardianos/osext v0.0.0-20190222173326-2bc1f35cddc0 h1:iQTw/8FWTuc7uia github.com/kardianos/osext v0.0.0-20190222173326-2bc1f35cddc0/go.mod h1:1NbS8ALrpOvjt0rHPNLyCIeMtbizbir8U//inJ+zuB8= github.com/koron/go-ssdp v0.0.2 h1:fL3wAoyT6hXHQlORyXUW4Q23kkQpJRgEAYcZB5BR71o= github.com/koron/go-ssdp v0.0.2/go.mod h1:XoLfkAiA2KeZsYh4DbHxD7h3nR2AZNqVQOa+LJuqPYs= +github.com/koron/go-ssdp v0.0.3 h1:JivLMY45N76b4p/vsWGOKewBQu6uf39y8l+AQ7sDKx8= +github.com/koron/go-ssdp v0.0.3/go.mod h1:b2MxI6yh02pKrsyNoQUsk4+YNikaGhe4894J+Q5lDvA= github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e h1:fD57ERR4JtEqsWbfPhv4DMiApHyliiK5xCTNVSPiaAs= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/samber/lo v1.11.0 h1:JfeYozXL1xfkhRUFOfH13ociyeiLSC/GRJjGKI668xM= github.com/samber/lo v1.11.0/go.mod h1:2I7tgIv8Q1SG2xEIkRq0F2i2zgxVpnyPOP0d3Gj2r+A= +github.com/samber/lo v1.18.0 h1:Us2BxtWXMLfIHm7lOJ3FnsSz1pzYAI7yfRZPV/5nBPU= +github.com/samber/lo v1.18.0/go.mod h1:2I7tgIv8Q1SG2xEIkRq0F2i2zgxVpnyPOP0d3Gj2r+A= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/testify v1.7.1 h1:5TQK59W5E3v0r2duFAb7P95B6hEeOyEnHRa8MjYSMTY= github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= @@ -23,15 +29,21 @@ golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACk golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/exp v0.0.0-20220303212507-bbda1eaf7a17 h1:3MTrJm4PyNL9NBqvYDSj3DHl46qQakyfqfWo4jgfaEM= golang.org/x/exp v0.0.0-20220303212507-bbda1eaf7a17/go.mod h1:lgLbSvA5ygNOMpwM/9anMpWVlVJ7Z+cHWq/eFuinpGE= +golang.org/x/exp v0.0.0-20220428152302-39d4317da171 h1:TfdoLivD44QwvssI9Sv1xwa5DcL5XQr4au4sZ2F2NV4= +golang.org/x/exp v0.0.0-20220428152302-39d4317da171/go.mod h1:lgLbSvA5ygNOMpwM/9anMpWVlVJ7Z+cHWq/eFuinpGE= golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20200904194848-62affa334b73/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= golang.org/x/net v0.0.0-20220403103023-749bd193bc2b h1:vI32FkLJNAWtGD4BwkThwEy6XS7ZLLMHkSkYfF8M0W0= golang.org/x/net v0.0.0-20220403103023-749bd193bc2b/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= +golang.org/x/net v0.0.0-20220425223048-2871e0cb64e4 h1:HVyaeDAYux4pnY+D/SiwmLOR36ewZ4iGQIIrtnuCjFA= +golang.org/x/net v0.0.0-20220425223048-2871e0cb64e4/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20220405210540-1e041c57c461 h1:kHVeDEnfKn3T238CvrUcz6KeEsFHVaKh4kMTt6Wsysg= golang.org/x/sys v0.0.0-20220405210540-1e041c57c461/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220422013727-9388b58f7150 h1:xHms4gcpe1YE7A3yIllJXP16CMAGuqwO2lX1mTyyRRc= +golang.org/x/sys v0.0.0-20220422013727-9388b58f7150/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20200227125254-8fa46927fb4f h1:BLraFXnmrev5lT+xlilqcH8XK9/i0At2xKjWk4p6zsU= diff --git a/html/js/menu_ts.js b/html/js/menu_ts.js index 2df5061..9591441 100644 --- a/html/js/menu_ts.js +++ b/html/js/menu_ts.js @@ -1416,9 +1416,6 @@ class XMLTVFile { } return select; } - // TODO: Display FULL list, see: - // > https://stackoverflow.com/questions/37478727/how-can-i-make-a-browser-display-all-datalist-options-when-a-default-value-is-se - // > https://www.hongkiat.com/blog/search-select-using-datalist/ /** * @param xmlTvFile XML file path to get EPG from. * @param currentXmlTvId Current XMLTV ID to set initial input value to. diff --git a/src/webUI.go b/src/webUI.go index 6e4105f..39bd2e5 100644 --- a/src/webUI.go +++ b/src/webUI.go @@ -29,7 +29,7 @@ func loadHTMLMap() { webUI["html/js/classes_ts.js"] = "dmFyIF9fZXh0ZW5kcyA9ICh0aGlzICYmIHRoaXMuX19leHRlbmRzKSB8fCAoZnVuY3Rpb24gKCkgew0KICAgIHZhciBleHRlbmRTdGF0aWNzID0gZnVuY3Rpb24gKGQsIGIpIHsNCiAgICAgICAgZXh0ZW5kU3RhdGljcyA9IE9iamVjdC5zZXRQcm90b3R5cGVPZiB8fA0KICAgICAgICAgICAgKHsgX19wcm90b19fOiBbXSB9IGluc3RhbmNlb2YgQXJyYXkgJiYgZnVuY3Rpb24gKGQsIGIpIHsgZC5fX3Byb3RvX18gPSBiOyB9KSB8fA0KICAgICAgICAgICAgZnVuY3Rpb24gKGQsIGIpIHsgZm9yICh2YXIgcCBpbiBiKSBpZiAoYi5oYXNPd25Qcm9wZXJ0eShwKSkgZFtwXSA9IGJbcF07IH07DQogICAgICAgIHJldHVybiBleHRlbmRTdGF0aWNzKGQsIGIpOw0KICAgIH07DQogICAgcmV0dXJuIGZ1bmN0aW9uIChkLCBiKSB7DQogICAgICAgIGV4dGVuZFN0YXRpY3MoZCwgYik7DQogICAgICAgIGZ1bmN0aW9uIF9fKCkgeyB0aGlzLmNvbnN0cnVjdG9yID0gZDsgfQ0KICAgICAgICBkLnByb3RvdHlwZSA9IGIgPT09IG51bGwgPyBPYmplY3QuY3JlYXRlKGIpIDogKF9fLnByb3RvdHlwZSA9IGIucHJvdG90eXBlLCBuZXcgX18oKSk7DQogICAgfTsNCn0pKCk7DQp2YXIgTWFpbk1lbnUgPSAvKiogQGNsYXNzICovIChmdW5jdGlvbiAoKSB7DQogICAgZnVuY3Rpb24gTWFpbk1lbnUoKSB7DQogICAgICAgIHRoaXMuRG9jdW1lbnRJRCA9ICJtYWluLW1lbnUiOw0KICAgICAgICB0aGlzLkhUTUxUYWcgPSAiTEkiOw0KICAgIH0NCiAgICBNYWluTWVudS5wcm90b3R5cGUuY3JlYXRlID0gZnVuY3Rpb24gKCkgew0KICAgICAgICBjb25zb2xlLmxvZyh0aGlzLkRvY3VtZW50SUQpOw0KICAgIH07DQogICAgcmV0dXJuIE1haW5NZW51Ow0KfSgpKTsNCnZhciBNYWluTWVudUl0ZW0gPSAvKiogQGNsYXNzICovIChmdW5jdGlvbiAoX3N1cGVyKSB7DQogICAgX19leHRlbmRzKE1haW5NZW51SXRlbSwgX3N1cGVyKTsNCiAgICBmdW5jdGlvbiBNYWluTWVudUl0ZW0oKSB7DQogICAgICAgIHJldHVybiBfc3VwZXIgIT09IG51bGwgJiYgX3N1cGVyLmFwcGx5KHRoaXMsIGFyZ3VtZW50cykgfHwgdGhpczsNCiAgICB9DQogICAgTWFpbk1lbnVJdGVtLnByb3RvdHlwZS5jcmVhdGUyID0gZnVuY3Rpb24gKCkgew0KICAgICAgICB2YXIgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQodGhpcy5IVE1MVGFnKTsNCiAgICAgICAgZWxlbWVudC5pbm5lclRleHQgPSB0aGlzLlZhbHVlOw0KICAgICAgICBjb25zb2xlLmxvZyhlbGVtZW50KTsNCiAgICB9Ow0KICAgIHJldHVybiBNYWluTWVudUl0ZW07DQp9KE1haW5NZW51KSk7DQpmdW5jdGlvbiBwYWdlUmVhZHkoKSB7DQogICAgdmFyIGl0ZW0gPSBuZXcgTWFpbk1lbnVJdGVtKCk7DQogICAgaXRlbS5WYWx1ZSA9ICJUZXN0IjsNCiAgICBpdGVtLmNyZWF0ZTIoKTsNCn0NCg==" webUI["html/js/configuration_ts.js"] = "Y2xhc3MgV2l6YXJkQ2F0ZWdvcnkgew0KICAgIGNvbnN0cnVjdG9yKCkgew0KICAgICAgICB0aGlzLkRvY3VtZW50SUQgPSAiY29udGVudCI7DQogICAgfQ0KICAgIGNyZWF0ZUNhdGVnb3J5SGVhZGxpbmUodmFsdWUpIHsNCiAgICAgICAgdmFyIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJINCIpOw0KICAgICAgICBlbGVtZW50LmlubmVySFRNTCA9IHZhbHVlOw0KICAgICAgICByZXR1cm4gZWxlbWVudDsNCiAgICB9DQp9DQpjbGFzcyBXaXphcmRJdGVtIGV4dGVuZHMgV2l6YXJkQ2F0ZWdvcnkgew0KICAgIGNvbnN0cnVjdG9yKGtleSwgaGVhZGxpbmUpIHsNCiAgICAgICAgc3VwZXIoKTsNCiAgICAgICAgdGhpcy5oZWFkbGluZSA9IGhlYWRsaW5lOw0KICAgICAgICB0aGlzLmtleSA9IGtleTsNCiAgICB9DQogICAgY3JlYXRlV2l6YXJkKCkgew0KICAgICAgICB2YXIgaGVhZGxpbmUgPSB0aGlzLmNyZWF0ZUNhdGVnb3J5SGVhZGxpbmUodGhpcy5oZWFkbGluZSk7DQogICAgICAgIHZhciBrZXkgPSB0aGlzLmtleTsNCiAgICAgICAgdmFyIGNvbnRlbnQgPSBuZXcgUG9wdXBDb250ZW50KCk7DQogICAgICAgIHZhciBkZXNjcmlwdGlvbjsNCiAgICAgICAgdmFyIGRvYyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHRoaXMuRG9jdW1lbnRJRCk7DQogICAgICAgIGRvYy5pbm5lckhUTUwgPSAiIjsNCiAgICAgICAgZG9jLmFwcGVuZENoaWxkKGhlYWRsaW5lKTsNCiAgICAgICAgc3dpdGNoIChrZXkpIHsNCiAgICAgICAgICAgIGNhc2UgInR1bmVyIjoNCiAgICAgICAgICAgICAgICB2YXIgdGV4dCA9IG5ldyBBcnJheSgpOw0KICAgICAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBuZXcgQXJyYXkoKTsNCiAgICAgICAgICAgICAgICBmb3IgKHZhciBpID0gMTsgaSA8PSAxMDA7IGkrKykgew0KICAgICAgICAgICAgICAgICAgICB0ZXh0LnB1c2goaSk7DQogICAgICAgICAgICAgICAgICAgIHZhbHVlcy5wdXNoKGkpOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCAiMSIsIGtleSk7DQogICAgICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgiY2xhc3MiLCAid2l6YXJkIik7DQogICAgICAgICAgICAgICAgc2VsZWN0LmlkID0ga2V5Ow0KICAgICAgICAgICAgICAgIGRvYy5hcHBlbmRDaGlsZChzZWxlY3QpOw0KICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uID0gInt7LndpemFyZC50dW5lci5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImVwZ1NvdXJjZSI6DQogICAgICAgICAgICAgICAgdmFyIHRleHQgPSBbIlBNUyIsICJYRVBHIl07DQogICAgICAgICAgICAgICAgdmFyIHZhbHVlcyA9IFsiUE1TIiwgIlhFUEciXTsNCiAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCAiWEVQRyIsIGtleSk7DQogICAgICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgiY2xhc3MiLCAid2l6YXJkIik7DQogICAgICAgICAgICAgICAgc2VsZWN0LmlkID0ga2V5Ow0KICAgICAgICAgICAgICAgIGRvYy5hcHBlbmRDaGlsZChzZWxlY3QpOw0KICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uID0gInt7LndpemFyZC5lcGdTb3VyY2UuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJtM3UiOg0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBrZXksICIiKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LndpemFyZC5tM3UucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgiY2xhc3MiLCAid2l6YXJkIik7DQogICAgICAgICAgICAgICAgaW5wdXQuaWQgPSBrZXk7DQogICAgICAgICAgICAgICAgZG9jLmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbiA9ICJ7ey53aXphcmQubTN1LmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAieG1sdHYiOg0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBrZXksICIiKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LndpemFyZC54bWx0di5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJjbGFzcyIsICJ3aXphcmQiKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5pZCA9IGtleTsNCiAgICAgICAgICAgICAgICBkb2MuYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uID0gInt7LndpemFyZC54bWx0di5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIH0NCiAgICAgICAgdmFyIHByZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlBSRSIpOw0KICAgICAgICBwcmUuaW5uZXJIVE1MID0gZGVzY3JpcHRpb247DQogICAgICAgIGRvYy5hcHBlbmRDaGlsZChwcmUpOw0KICAgIH0NCn0NCmZ1bmN0aW9uIHJlYWR5Rm9yQ29uZmlndXJhdGlvbih3aXphcmQpIHsNCiAgICB2YXIgc2VydmVyID0gbmV3IFNlcnZlcigiZ2V0U2VydmVyQ29uZmlnIik7DQogICAgc2VydmVyLnJlcXVlc3QobmV3IE9iamVjdCgpKTsNCiAgICBzaG93RWxlbWVudCgibG9hZGluZyIsIGZhbHNlKTsNCiAgICBjb25maWd1cmF0aW9uV2l6YXJkW3dpemFyZF0uY3JlYXRlV2l6YXJkKCk7DQp9DQpmdW5jdGlvbiBzYXZlV2l6YXJkKCkgew0KICAgIHZhciBjbWQgPSAic2F2ZVdpemFyZCI7DQogICAgdmFyIGRpdiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb250ZW50Iik7DQogICAgdmFyIGNvbmZpZyA9IGRpdi5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCJ3aXphcmQiKTsNCiAgICB2YXIgd2l6YXJkID0gbmV3IE9iamVjdCgpOw0KICAgIGZvciAodmFyIGkgPSAwOyBpIDwgY29uZmlnLmxlbmd0aDsgaSsrKSB7DQogICAgICAgIHZhciBuYW1lOw0KICAgICAgICB2YXIgdmFsdWU7DQogICAgICAgIHN3aXRjaCAoY29uZmlnW2ldLnRhZ05hbWUpIHsNCiAgICAgICAgICAgIGNhc2UgIlNFTEVDVCI6DQogICAgICAgICAgICAgICAgbmFtZSA9IGNvbmZpZ1tpXS5uYW1lOw0KICAgICAgICAgICAgICAgIHZhbHVlID0gY29uZmlnW2ldLnZhbHVlOw0KICAgICAgICAgICAgICAgIC8vIElmIHRoZSB2YWx1ZSBpcyBhIG51bWJlciwgc3RvcmUgaXQgYXMgYSBudW1iZXINCiAgICAgICAgICAgICAgICBpZiAoaXNOYU4odmFsdWUpKSB7DQogICAgICAgICAgICAgICAgICAgIHdpemFyZFtuYW1lXSA9IHZhbHVlOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICAgICAgd2l6YXJkW25hbWVdID0gcGFyc2VJbnQodmFsdWUpOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgIklOUFVUIjoNCiAgICAgICAgICAgICAgICBzd2l0Y2ggKGNvbmZpZ1tpXS50eXBlKSB7DQogICAgICAgICAgICAgICAgICAgIGNhc2UgInRleHQiOg0KICAgICAgICAgICAgICAgICAgICAgICAgbmFtZSA9IGNvbmZpZ1tpXS5uYW1lOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSBjb25maWdbaV0udmFsdWU7DQogICAgICAgICAgICAgICAgICAgICAgICBpZiAodmFsdWUubGVuZ3RoID09IDApIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgbXNnID0gbmFtZS50b1VwcGVyQ2FzZSgpICsgIjogIiArICJ7ey5hbGVydC5taXNzaW5nSW5wdXR9fSI7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgYWxlcnQobXNnKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICB3aXphcmRbbmFtZV0gPSB2YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICAgICAgLy8gY29kZS4uLg0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICB9DQogICAgfQ0KICAgIHZhciBkYXRhID0gbmV3IE9iamVjdCgpOw0KICAgIGRhdGFbIndpemFyZCJdID0gd2l6YXJkOw0KICAgIHZhciBzZXJ2ZXIgPSBuZXcgU2VydmVyKGNtZCk7DQogICAgc2VydmVyLnJlcXVlc3QoZGF0YSk7DQp9DQovLyBXaXphcmQNCnZhciBjb25maWd1cmF0aW9uV2l6YXJkID0gbmV3IEFycmF5KCk7DQpjb25maWd1cmF0aW9uV2l6YXJkLnB1c2gobmV3IFdpemFyZEl0ZW0oInR1bmVyIiwgInt7LndpemFyZC50dW5lci50aXRsZX19IikpOw0KY29uZmlndXJhdGlvbldpemFyZC5wdXNoKG5ldyBXaXphcmRJdGVtKCJlcGdTb3VyY2UiLCAie3sud2l6YXJkLmVwZ1NvdXJjZS50aXRsZX19IikpOw0KY29uZmlndXJhdGlvbldpemFyZC5wdXNoKG5ldyBXaXphcmRJdGVtKCJtM3UiLCAie3sud2l6YXJkLm0zdS50aXRsZX19IikpOw0KY29uZmlndXJhdGlvbldpemFyZC5wdXNoKG5ldyBXaXphcmRJdGVtKCJ4bWx0diIsICJ7ey53aXphcmQueG1sdHYudGl0bGV9fSIpKTsNCg==" webUI["html/js/logs_ts.js"] = "Y2xhc3MgTG9nIHsNCiAgICBjcmVhdGVMb2coZW50cnkpIHsNCiAgICAgICAgdmFyIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJQUkUiKTsNCiAgICAgICAgaWYgKGVudHJ5LmluZGV4T2YoIldBUk5JTkciKSAhPSAtMSkgew0KICAgICAgICAgICAgZWxlbWVudC5jbGFzc05hbWUgPSAid2FybmluZ01zZyI7DQogICAgICAgIH0NCiAgICAgICAgaWYgKGVudHJ5LmluZGV4T2YoIkVSUk9SIikgIT0gLTEpIHsNCiAgICAgICAgICAgIGVsZW1lbnQuY2xhc3NOYW1lID0gImVycm9yTXNnIjsNCiAgICAgICAgfQ0KICAgICAgICBpZiAoZW50cnkuaW5kZXhPZigiREVCVUciKSAhPSAtMSkgew0KICAgICAgICAgICAgZWxlbWVudC5jbGFzc05hbWUgPSAiZGVidWdNc2ciOw0KICAgICAgICB9DQogICAgICAgIGVsZW1lbnQuaW5uZXJIVE1MID0gZW50cnk7DQogICAgICAgIHJldHVybiBlbGVtZW50Ow0KICAgIH0NCn0NCmZ1bmN0aW9uIHNob3dMb2dzKGJvdHRvbSkgew0KICAgIHZhciBsb2cgPSBuZXcgTG9nKCk7DQogICAgdmFyIGxvZ3MgPSBTRVJWRVJbImxvZyJdWyJsb2ciXTsNCiAgICB2YXIgZGl2ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnRlbnRfbG9nIik7DQogICAgZGl2LmlubmVySFRNTCA9ICIiOw0KICAgIHZhciBrZXlzID0gZ2V0T3duT2JqUHJvcHMobG9ncyk7DQogICAga2V5cy5mb3JFYWNoKGxvZ0lEID0+IHsNCiAgICAgICAgdmFyIGVudHJ5ID0gbG9nLmNyZWF0ZUxvZyhsb2dzW2xvZ0lEXSk7DQogICAgICAgIGRpdi5hcHBlbmQoZW50cnkpOw0KICAgIH0pOw0KICAgIHNldFRpbWVvdXQoZnVuY3Rpb24gKCkgew0KICAgICAgICBpZiAoYm90dG9tID09IHRydWUpIHsNCiAgICAgICAgICAgIHZhciB3cmFwcGVyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImJveC13cmFwcGVyIik7DQogICAgICAgICAgICB3cmFwcGVyLnNjcm9sbFRvcCA9IHdyYXBwZXIuc2Nyb2xsSGVpZ2h0Ow0KICAgICAgICB9DQogICAgfSwgMTApOw0KfQ0KZnVuY3Rpb24gcmVzZXRMb2dzKCkgew0KICAgIHZhciBjbWQgPSAicmVzZXRMb2dzIjsNCiAgICB2YXIgZGF0YSA9IG5ldyBPYmplY3QoKTsNCiAgICB2YXIgc2VydmVyID0gbmV3IFNlcnZlcihjbWQpOw0KICAgIHNlcnZlci5yZXF1ZXN0KGRhdGEpOw0KfQ0K" - webUI["html/js/menu_ts.js"] = "Y2xhc3MgTWFpbk1lbnUgew0KICAgIGNvbnN0cnVjdG9yKCkgew0KICAgICAgICB0aGlzLkRvY3VtZW50SUQgPSAibWFpbi1tZW51IjsNCiAgICAgICAgdGhpcy5IVE1MVGFnID0gIkxJIjsNCiAgICAgICAgdGhpcy5JbWFnZVBhdGggPSAiaW1nLyI7DQogICAgfQ0KICAgIGNyZWF0ZUlNRyhzcmMpIHsNCiAgICAgICAgbGV0IGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJJTUciKTsNCiAgICAgICAgZWxlbWVudC5zZXRBdHRyaWJ1dGUoInNyYyIsIHRoaXMuSW1hZ2VQYXRoICsgc3JjKTsNCiAgICAgICAgcmV0dXJuIGVsZW1lbnQ7DQogICAgfQ0KICAgIGNyZWF0ZVZhbHVlKHZhbHVlKSB7DQogICAgICAgIGxldCBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiUCIpOw0KICAgICAgICBlbGVtZW50LmlubmVySFRNTCA9IHZhbHVlOw0KICAgICAgICByZXR1cm4gZWxlbWVudDsNCiAgICB9DQp9DQpjbGFzcyBNYWluTWVudUl0ZW0gZXh0ZW5kcyBNYWluTWVudSB7DQogICAgY29uc3RydWN0b3IobWVudUtleSwgdmFsdWUsIGltYWdlLCBoZWFkbGluZSkgew0KICAgICAgICBzdXBlcigpOw0KICAgICAgICB0aGlzLm1lbnVLZXkgPSBtZW51S2V5Ow0KICAgICAgICB0aGlzLnZhbHVlID0gdmFsdWU7DQogICAgICAgIHRoaXMuaW1nU3JjID0gaW1hZ2U7DQogICAgICAgIHRoaXMuaGVhZGxpbmUgPSBoZWFkbGluZTsNCiAgICB9DQogICAgY3JlYXRlSXRlbSgpIHsNCiAgICAgICAgbGV0IGl0ZW0gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJMSSIpOw0KICAgICAgICBpdGVtLnNldEF0dHJpYnV0ZSgib25jbGljayIsICJqYXZhc2NyaXB0OiBvcGVuVGhpc01lbnUodGhpcykiKTsNCiAgICAgICAgaXRlbS5zZXRBdHRyaWJ1dGUoImlkIiwgdGhpcy5pZCk7DQogICAgICAgIGxldCBpbWcgPSB0aGlzLmNyZWF0ZUlNRyh0aGlzLmltZ1NyYyk7DQogICAgICAgIGxldCB2YWx1ZSA9IHRoaXMuY3JlYXRlVmFsdWUodGhpcy52YWx1ZSk7DQogICAgICAgIGl0ZW0uYXBwZW5kQ2hpbGQoaW1nKTsNCiAgICAgICAgaXRlbS5hcHBlbmRDaGlsZCh2YWx1ZSk7DQogICAgICAgIGxldCBkb2MgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCh0aGlzLkRvY3VtZW50SUQpOw0KICAgICAgICBkb2MuYXBwZW5kQ2hpbGQoaXRlbSk7DQogICAgICAgIHN3aXRjaCAodGhpcy5tZW51S2V5KSB7DQogICAgICAgICAgICBjYXNlICJwbGF5bGlzdCI6DQogICAgICAgICAgICAgICAgdGhpcy50YWJsZUhlYWRlciA9IFsie3sucGxheWxpc3QudGFibGUucGxheWxpc3R9fSIsICJ7ey5wbGF5bGlzdC50YWJsZS50dW5lcn19IiwgInt7LnBsYXlsaXN0LnRhYmxlLmxhc3RVcGRhdGV9fSIsICJ7ey5wbGF5bGlzdC50YWJsZS5hdmFpbGFiaWxpdHl9fSAlIiwgInt7LnBsYXlsaXN0LnRhYmxlLnR5cGV9fSIsICJ7ey5wbGF5bGlzdC50YWJsZS5zdHJlYW1zfX0iLCAie3sucGxheWxpc3QudGFibGUuZ3JvdXBUaXRsZX19ICUiLCAie3sucGxheWxpc3QudGFibGUudHZnSUR9fSAlIiwgInt7LnBsYXlsaXN0LnRhYmxlLnVuaXF1ZUlEfX0gJSJdOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAieG1sdHYiOg0KICAgICAgICAgICAgICAgIHRoaXMudGFibGVIZWFkZXIgPSBbInt7LnhtbHR2LnRhYmxlLmd1aWRlfX0iLCAie3sueG1sdHYudGFibGUubGFzdFVwZGF0ZX19IiwgInt7LnhtbHR2LnRhYmxlLmF2YWlsYWJpbGl0eX19ICUiLCAie3sueG1sdHYudGFibGUuY2hhbm5lbHN9fSIsICJ7ey54bWx0di50YWJsZS5wcm9ncmFtc319Il07DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJmaWx0ZXIiOg0KICAgICAgICAgICAgICAgIHRoaXMudGFibGVIZWFkZXIgPSBbInt7LmZpbHRlci50YWJsZS5zdGFydGluZ0NoYW5uZWx9fSIsICJ7ey5maWx0ZXIudGFibGUubmFtZX19IiwgInt7LmZpbHRlci50YWJsZS50eXBlfX0iLCAie3suZmlsdGVyLnRhYmxlLmZpbHRlcn19Il07DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ1c2VycyI6DQogICAgICAgICAgICAgICAgdGhpcy50YWJsZUhlYWRlciA9IFsie3sudXNlcnMudGFibGUudXNlcm5hbWV9fSIsICJ7ey51c2Vycy50YWJsZS5wYXNzd29yZH19IiwgInt7LnVzZXJzLnRhYmxlLndlYn19IiwgInt7LnVzZXJzLnRhYmxlLnBtc319IiwgInt7LnVzZXJzLnRhYmxlLm0zdX19IiwgInt7LnVzZXJzLnRhYmxlLnhtbH19IiwgInt7LnVzZXJzLnRhYmxlLmFwaX19Il07DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJtYXBwaW5nIjoNCiAgICAgICAgICAgICAgICB0aGlzLnRhYmxlSGVhZGVyID0gWyJCVUxLIiwgInt7Lm1hcHBpbmcudGFibGUuY2hOb319IiwgInt7Lm1hcHBpbmcudGFibGUubG9nb319IiwgInt7Lm1hcHBpbmcudGFibGUuY2hhbm5lbE5hbWV9fSIsICJ7ey5tYXBwaW5nLnRhYmxlLnBsYXlsaXN0fX0iLCAie3subWFwcGluZy50YWJsZS5ncm91cFRpdGxlfX0iLCAie3subWFwcGluZy50YWJsZS54bWx0dkZpbGV9fSIsICJ7ey5tYXBwaW5nLnRhYmxlLnhtbHR2SUR9fSIsICJ7ey5tYXBwaW5nLnRhYmxlLnRpbWVzaGlmdH19Il07DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIH0NCiAgICB9DQp9DQpjbGFzcyBDb250ZW50IHsNCiAgICBjb25zdHJ1Y3RvcigpIHsNCiAgICAgICAgdGhpcy5Eb2N1bWVudElEID0gImNvbnRlbnQiOw0KICAgICAgICB0aGlzLlRhYmxlSUQgPSAiY29udGVudF90YWJsZSI7DQogICAgICAgIHRoaXMuaGVhZGVyQ2xhc3MgPSAiY29udGVudF90YWJsZV9oZWFkZXIiOw0KICAgICAgICB0aGlzLmludGVyYWN0aW9uSUQgPSAiY29udGVudC1pbnRlcmFjdGlvbiI7DQogICAgfQ0KICAgIGNyZWF0ZUhlYWRsaW5lKHZhbHVlKSB7DQogICAgICAgIGxldCBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiSDMiKTsNCiAgICAgICAgZWxlbWVudC5pbm5lckhUTUwgPSB2YWx1ZTsNCiAgICAgICAgcmV0dXJuIGVsZW1lbnQ7DQogICAgfQ0KICAgIGNyZWF0ZUhSKCkgew0KICAgICAgICByZXR1cm4gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiSFIiKTsNCiAgICB9DQogICAgY3JlYXRlSW50ZXJhY3Rpb24oKSB7DQogICAgICAgIGxldCBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiRElWIik7DQogICAgICAgIGVsZW1lbnQuc2V0QXR0cmlidXRlKCJpZCIsIHRoaXMuaW50ZXJhY3Rpb25JRCk7DQogICAgICAgIHJldHVybiBlbGVtZW50Ow0KICAgIH0NCiAgICBjcmVhdGVESVYoKSB7DQogICAgICAgIGxldCBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiRElWIik7DQogICAgICAgIGVsZW1lbnQuaWQgPSB0aGlzLkRpdklEOw0KICAgICAgICByZXR1cm4gZWxlbWVudDsNCiAgICB9DQogICAgY3JlYXRlVEFCTEUoKSB7DQogICAgICAgIGxldCBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEFCTEUiKTsNCiAgICAgICAgZWxlbWVudC5pZCA9IHRoaXMuVGFibGVJRDsNCiAgICAgICAgcmV0dXJuIGVsZW1lbnQ7DQogICAgfQ0KICAgIGNyZWF0ZVRhYmxlUm93KCkgew0KICAgICAgICBsZXQgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlRSIik7DQogICAgICAgIGVsZW1lbnQuY2xhc3NOYW1lID0gdGhpcy5oZWFkZXJDbGFzczsNCiAgICAgICAgcmV0dXJuIGVsZW1lbnQ7DQogICAgfQ0KICAgIGNyZWF0ZVRhYmxlQ29udGVudChtZW51S2V5KSB7DQogICAgICAgIGxldCBkYXRhID0ge307DQogICAgICAgIGxldCByb3dzID0gW107DQogICAgICAgIGxldCBmaWxlVHlwZXMgPSBbXTsNCiAgICAgICAgc3dpdGNoIChtZW51S2V5KSB7DQogICAgICAgICAgICBjYXNlICJwbGF5bGlzdCI6DQogICAgICAgICAgICAgICAgZmlsZVR5cGVzID0gWyJtM3UiLCAiaGRociJdOw0KICAgICAgICAgICAgICAgIGZpbGVUeXBlcy5mb3JFYWNoKGZpbGVUeXBlID0+IHsNCiAgICAgICAgICAgICAgICAgICAgZGF0YSA9IFNFUlZFUlsic2V0dGluZ3MiXVsiZmlsZXMiXVtmaWxlVHlwZV07DQogICAgICAgICAgICAgICAgICAgIHZhciBrZXlzID0gZ2V0T3duT2JqUHJvcHMoZGF0YSk7DQogICAgICAgICAgICAgICAgICAgIGtleXMuZm9yRWFjaChrZXkgPT4gew0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVFIiKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmlkID0ga2V5Ow0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgiJyArIGZpbGVUeXBlICsgJyIsIHRoaXMpJyk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsibmFtZSJdOw0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChTRVJWRVJbInNldHRpbmdzIl1bImJ1ZmZlciJdICE9ICItIikgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bInR1bmVyIl07DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gIi0iOw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bImxhc3QudXBkYXRlIl07DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsicHJvdmlkZXIuYXZhaWxhYmlsaXR5Il07DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsidHlwZSJdLnRvVXBwZXJDYXNlKCk7DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsiY29tcGF0aWJpbGl0eSJdWyJzdHJlYW1zIl07DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsiY29tcGF0aWJpbGl0eSJdWyJncm91cC50aXRsZSJdOw0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bImNvbXBhdGliaWxpdHkiXVsidHZnLmlkIl07DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsiY29tcGF0aWJpbGl0eSJdWyJzdHJlYW0uaWQiXTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHJvd3MucHVzaCh0cik7DQogICAgICAgICAgICAgICAgICAgIH0pOw0KICAgICAgICAgICAgICAgIH0pOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiZmlsdGVyIjoNCiAgICAgICAgICAgICAgICBkZWxldGUgU0VSVkVSWyJzZXR0aW5ncyJdWyJmaWx0ZXIiXVstMV07DQogICAgICAgICAgICAgICAgZGF0YSA9IFNFUlZFUlsic2V0dGluZ3MiXVsiZmlsdGVyIl07DQogICAgICAgICAgICAgICAgdmFyIGtleXMgPSBnZXRPd25PYmpQcm9wcyhkYXRhKTsNCiAgICAgICAgICAgICAgICBrZXlzLmZvckVhY2goa2V5ID0+IHsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVFIiKTsNCiAgICAgICAgICAgICAgICAgICAgdHIuaWQgPSBrZXk7DQogICAgICAgICAgICAgICAgICAgIHRyLnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoIicgKyBkYXRhW2tleV1bInR5cGUiXSArICciLCB0aGlzKScpOw0KICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsic3RhcnRpbmdDaGFubmVsIl07DQogICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bIm5hbWUiXTsNCiAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgc3dpdGNoIChkYXRhW2tleV1bInR5cGUiXSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAiY3VzdG9tLWZpbHRlciI6DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9ICJ7ey5maWx0ZXIuY3VzdG9tfX0iOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAiZ3JvdXAtdGl0bGUiOg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSAie3suZmlsdGVyLmdyb3VwfX0iOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJmaWx0ZXIiXTsNCiAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICByb3dzLnB1c2godHIpOw0KICAgICAgICAgICAgICAgIH0pOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAieG1sdHYiOg0KICAgICAgICAgICAgICAgIGZpbGVUeXBlcyA9IG5ldyBBcnJheSgieG1sdHYiKTsNCiAgICAgICAgICAgICAgICBmaWxlVHlwZXMuZm9yRWFjaChmaWxlVHlwZSA9PiB7DQogICAgICAgICAgICAgICAgICAgIGRhdGEgPSBTRVJWRVJbInNldHRpbmdzIl1bImZpbGVzIl1bZmlsZVR5cGVdOw0KICAgICAgICAgICAgICAgICAgICB2YXIga2V5cyA9IGdldE93bk9ialByb3BzKGRhdGEpOw0KICAgICAgICAgICAgICAgICAgICBrZXlzLmZvckVhY2goa2V5ID0+IHsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciB0ciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlRSIik7DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5pZCA9IGtleTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoIicgKyBmaWxlVHlwZSArICciLCB0aGlzKScpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bIm5hbWUiXTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJsYXN0LnVwZGF0ZSJdOw0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bInByb3ZpZGVyLmF2YWlsYWJpbGl0eSJdOw0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bImNvbXBhdGliaWxpdHkiXVsieG1sdHYuY2hhbm5lbHMiXTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJjb21wYXRpYmlsaXR5Il1bInhtbHR2LnByb2dyYW1zIl07DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICByb3dzLnB1c2godHIpOw0KICAgICAgICAgICAgICAgICAgICB9KTsNCiAgICAgICAgICAgICAgICB9KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInVzZXJzIjoNCiAgICAgICAgICAgICAgICBmaWxlVHlwZXMgPSBuZXcgQXJyYXkoInVzZXJzIik7DQogICAgICAgICAgICAgICAgZmlsZVR5cGVzLmZvckVhY2goZmlsZVR5cGUgPT4gew0KICAgICAgICAgICAgICAgICAgICBkYXRhID0gU0VSVkVSW2ZpbGVUeXBlXTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGtleXMgPSBnZXRPd25PYmpQcm9wcyhkYXRhKTsNCiAgICAgICAgICAgICAgICAgICAga2V5cy5mb3JFYWNoKGtleSA9PiB7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgdHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJUUiIpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuaWQgPSBrZXk7DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCInICsgZmlsZVR5cGUgKyAnIiwgdGhpcyknKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJkYXRhIl1bInVzZXJuYW1lIl07DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9ICIqKioqKioiOw0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChkYXRhW2tleV1bImRhdGEiXVsiYXV0aGVudGljYXRpb24ud2ViIl0gPT0gdHJ1ZSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSAi4pyTIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSAiLSI7DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGRhdGFba2V5XVsiZGF0YSJdWyJhdXRoZW50aWNhdGlvbi5wbXMiXSA9PSB0cnVlKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9ICLinJMiOw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9ICItIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgICAgICBpZiAoZGF0YVtrZXldWyJkYXRhIl1bImF1dGhlbnRpY2F0aW9uLm0zdSJdID09IHRydWUpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gIuKckyI7DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gIi0iOw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChkYXRhW2tleV1bImRhdGEiXVsiYXV0aGVudGljYXRpb24ueG1sIl0gPT0gdHJ1ZSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSAi4pyTIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSAiLSI7DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGRhdGFba2V5XVsiZGF0YSJdWyJhdXRoZW50aWNhdGlvbi5hcGkiXSA9PSB0cnVlKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9ICLinJMiOw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9ICItIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHJvd3MucHVzaCh0cik7DQogICAgICAgICAgICAgICAgICAgIH0pOw0KICAgICAgICAgICAgICAgIH0pOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAibWFwcGluZyI6DQogICAgICAgICAgICAgICAgQlVMS19FRElUID0gZmFsc2U7DQogICAgICAgICAgICAgICAgY3JlYXRlU2VhcmNoT2JqKCk7DQogICAgICAgICAgICAgICAgY2hlY2tVbmRvKCJlcGdNYXBwaW5nIik7DQogICAgICAgICAgICAgICAgZGF0YSA9IFNFUlZFUlsieGVwZyJdWyJlcGdNYXBwaW5nIl07DQogICAgICAgICAgICAgICAgdmFyIGtleXMgPSBnZXRPd25PYmpQcm9wcyhkYXRhKTsNCiAgICAgICAgICAgICAgICBrZXlzLmZvckVhY2goa2V5ID0+IHsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVFIiKTsNCiAgICAgICAgICAgICAgICAgICAgdHIuaWQgPSBrZXk7DQogICAgICAgICAgICAgICAgICAgIHN3aXRjaCAoZGF0YVtrZXldWyJ4LWFjdGl2ZSJdKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBjYXNlIHRydWU6DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgdHIuY2xhc3NOYW1lID0gImFjdGl2ZUVQRyI7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgICAgICAgICBjYXNlIGZhbHNlOg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyLmNsYXNzTmFtZSA9ICJub3RBY3RpdmVFUEciOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIC8vIEJ1bGsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiQlVMSyI7DQogICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBmYWxzZTsNCiAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAvLyBDaGFubmVsIG51bWJlcg0KICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJJTlBVVENIQU5ORUwiOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJ4LWNoYW5uZWxJRCJdOw0KICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgIC8vIExvZ28NCiAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiSU1HIjsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5pbWFnZVVSTCA9IGRhdGFba2V5XVsidHZnLWxvZ28iXTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHRkID0gY2VsbC5jcmVhdGVDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgIHRkLnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoIm1hcHBpbmciLCB0aGlzKScpOw0KICAgICAgICAgICAgICAgICAgICB0ZC5pZCA9IGtleTsNCiAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQodGQpOw0KICAgICAgICAgICAgICAgICAgICAvLyBDaGFubmVsIG5hbWUNCiAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2xhc3NOYW1lID0gZGF0YVtrZXldWyJ4LWNhdGVnb3J5Il07DQogICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bIngtbmFtZSJdOw0KICAgICAgICAgICAgICAgICAgICB2YXIgdGQgPSBjZWxsLmNyZWF0ZUNlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgdGQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgibWFwcGluZyIsIHRoaXMpJyk7DQogICAgICAgICAgICAgICAgICAgIHRkLmlkID0ga2V5Ow0KICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZCh0ZCk7DQogICAgICAgICAgICAgICAgICAgIC8vIFBsYXlsaXN0DQogICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZ2V0VmFsdWVGcm9tUHJvdmlkZXJGaWxlKGRhdGFba2V5XVsiX2ZpbGUubTN1LmlkIl0sICJtM3UiLCAibmFtZSIpOw0KICAgICAgICAgICAgICAgICAgICB2YXIgdGQgPSBjZWxsLmNyZWF0ZUNlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgdGQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgibWFwcGluZyIsIHRoaXMpJyk7DQogICAgICAgICAgICAgICAgICAgIHRkLmlkID0ga2V5Ow0KICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZCh0ZCk7DQogICAgICAgICAgICAgICAgICAgIC8vIEdyb3VwIChncm91cC10aXRsZSkNCiAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bIngtZ3JvdXAtdGl0bGUiXTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHRkID0gY2VsbC5jcmVhdGVDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgIHRkLnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoIm1hcHBpbmciLCB0aGlzKScpOw0KICAgICAgICAgICAgICAgICAgICB0ZC5pZCA9IGtleTsNCiAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQodGQpOw0KICAgICAgICAgICAgICAgICAgICAvLyBYTUxUViBmaWxlDQogICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICBpZiAoZGF0YVtrZXldWyJ4LXhtbHR2LWZpbGUiXSAhPSAiLSIpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBnZXRWYWx1ZUZyb21Qcm92aWRlckZpbGUoZGF0YVtrZXldWyJ4LXhtbHR2LWZpbGUiXSwgInhtbHR2IiwgIm5hbWUiKTsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bIngteG1sdHYtZmlsZSJdOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIHZhciB0ZCA9IGNlbGwuY3JlYXRlQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICB0ZC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJtYXBwaW5nIiwgdGhpcyknKTsNCiAgICAgICAgICAgICAgICAgICAgdGQuaWQgPSBrZXk7DQogICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKHRkKTsNCiAgICAgICAgICAgICAgICAgICAgLy8gWE1MVFYgQ2hhbm5lbA0KICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHZhbHVlID0gZGF0YVtrZXldWyJ4LW1hcHBpbmciXTsNCiAgICAgICAgICAgICAgICAgICAgaWYgKHZhbHVlLmxlbmd0aCA+IDIwKSB7DQogICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IGRhdGFba2V5XVsieC1tYXBwaW5nIl0uc3Vic3RyaW5nKDAsIDIwKSArICIuLi4iOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSB2YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHRkID0gY2VsbC5jcmVhdGVDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgIHRkLnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoIm1hcHBpbmciLCB0aGlzKScpOw0KICAgICAgICAgICAgICAgICAgICB0ZC5pZCA9IGtleTsNCiAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQodGQpOw0KICAgICAgICAgICAgICAgICAgICAvLyBUaW1lU2hpZnQNCiAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bIngtdGltZXNoaWZ0Il07DQogICAgICAgICAgICAgICAgICAgIHZhciB0ZCA9IGNlbGwuY3JlYXRlQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICB0ZC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJtYXBwaW5nIiwgdGhpcyknKTsNCiAgICAgICAgICAgICAgICAgICAgdGQuaWQgPSBrZXk7DQogICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKHRkKTsNCiAgICAgICAgICAgICAgICAgICAgcm93cy5wdXNoKHRyKTsNCiAgICAgICAgICAgICAgICB9KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInNldHRpbmdzIjoNCiAgICAgICAgICAgICAgICBhbGVydCgpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgfQ0KICAgICAgICByZXR1cm4gcm93czsNCiAgICB9DQp9DQpjbGFzcyBDZWxsIHsNCiAgICBjcmVhdGVDZWxsKCkgew0KICAgICAgICBsZXQgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICBpZiAodGhpcy5jaGlsZCA9PSB0cnVlKSB7DQogICAgICAgICAgICB2YXIgZWxlbWVudDsNCiAgICAgICAgICAgIHN3aXRjaCAodGhpcy5jaGlsZFR5cGUpIHsNCiAgICAgICAgICAgICAgICBjYXNlICJQIjoNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQodGhpcy5jaGlsZFR5cGUpOw0KICAgICAgICAgICAgICAgICAgICBlbGVtZW50LmlubmVySFRNTCA9IHRoaXMudmFsdWU7DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQuY2xhc3NOYW1lID0gdGhpcy5jbGFzc05hbWU7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgIklOUFVUIjoNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQodGhpcy5jaGlsZFR5cGUpOw0KICAgICAgICAgICAgICAgICAgICBlbGVtZW50LnZhbHVlID0gdGhpcy52YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC50eXBlID0gInRleHQiOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBjYXNlICJJTlBVVENIQU5ORUwiOg0KICAgICAgICAgICAgICAgICAgICBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiSU5QVVQiKTsNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdnNjcmlwdDogY2hhbmdlQ2hhbm5lbE51bWJlcih0aGlzKSIpOw0KICAgICAgICAgICAgICAgICAgICBlbGVtZW50LnZhbHVlID0gdGhpcy52YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC50eXBlID0gInRleHQiOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBjYXNlICJCVUxLIjoNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIklOUFVUIik7DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQuY2hlY2tlZCA9IHRoaXMudmFsdWU7DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQudHlwZSA9ICJjaGVja2JveCI7DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQuY2xhc3NOYW1lID0gImJ1bGsgaGlkZUJ1bGsiOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBjYXNlICJCVUxLX0hFQUQiOg0KICAgICAgICAgICAgICAgICAgICBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiSU5QVVQiKTsNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC5jaGVja2VkID0gdGhpcy52YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC50eXBlID0gImNoZWNrYm94IjsNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC5jbGFzc05hbWUgPSAiYnVsayBoaWRlQnVsayI7DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgImphdmFzY3JpcHQ6IHNlbGVjdEFsbENoYW5uZWxzKCkiKTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAiSU1HIjoNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQodGhpcy5jaGlsZFR5cGUpOw0KICAgICAgICAgICAgICAgICAgICBlbGVtZW50LnNldEF0dHJpYnV0ZSgic3JjIiwgdGhpcy5pbWFnZVVSTCk7DQogICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLmltYWdlVVJMICE9ICIiKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBlbGVtZW50LnNldEF0dHJpYnV0ZSgib25lcnJvciIsICJqYXZhc2NyaXB0OiB0aGlzLm9uZXJyb3I9bnVsbDt0aGlzLnNyYz0nJyIpOw0KICAgICAgICAgICAgICAgICAgICAgICAgLy9vbmVycm9yPSJ0aGlzLm9uZXJyb3I9bnVsbDt0aGlzLnNyYz0nbWlzc2luZy5naWYnOyINCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgdGQuYXBwZW5kQ2hpbGQoZWxlbWVudCk7DQogICAgICAgIH0NCiAgICAgICAgZWxzZSB7DQogICAgICAgICAgICB0ZC5pbm5lckhUTUwgPSB0aGlzLnZhbHVlOw0KICAgICAgICB9DQogICAgICAgIGlmICh0aGlzLm9uY2xpY2sgPT0gdHJ1ZSkgew0KICAgICAgICAgICAgdGQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgdGhpcy5vbmNsaWNrRnVuY3Rpb24pOw0KICAgICAgICAgICAgdGQuY2xhc3NOYW1lID0gInBvaW50ZXIiOw0KICAgICAgICB9DQogICAgICAgIGlmICh0aGlzLnRkQ2xhc3NOYW1lICE9IHVuZGVmaW5lZCkgew0KICAgICAgICAgICAgdGQuY2xhc3NOYW1lID0gdGhpcy50ZENsYXNzTmFtZTsNCiAgICAgICAgfQ0KICAgICAgICByZXR1cm4gdGQ7DQogICAgfQ0KfQ0KY2xhc3MgU2hvd0NvbnRlbnQgZXh0ZW5kcyBDb250ZW50IHsNCiAgICBjb25zdHJ1Y3RvcihtZW51SUQpIHsNCiAgICAgICAgc3VwZXIoKTsNCiAgICAgICAgdGhpcy5tZW51SUQgPSBtZW51SUQ7DQogICAgfQ0KICAgIGNyZWF0ZUlucHV0KHR5cGUsIG5hbWUsIHZhbHVlKSB7DQogICAgICAgIGxldCBpbnB1dCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIklOUFVUIik7DQogICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgidHlwZSIsIHR5cGUpOw0KICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm5hbWUiLCBuYW1lKTsNCiAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJ2YWx1ZSIsIHZhbHVlKTsNCiAgICAgICAgcmV0dXJuIGlucHV0Ow0KICAgIH0NCiAgICBzaG93KCkgew0KICAgICAgICBDT0xVTU5fVE9fU09SVCA9IC0xOw0KICAgICAgICAvLyBEZWxldGUgb2xkIGNvbnRlbnQNCiAgICAgICAgbGV0IGRvYyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHRoaXMuRG9jdW1lbnRJRCk7DQogICAgICAgIGRvYy5pbm5lckhUTUwgPSAiIjsNCiAgICAgICAgc2hvd1ByZXZpZXcoZmFsc2UpOw0KICAgICAgICAvLyBIZWFkbGluZQ0KICAgICAgICBsZXQgaGVhZGxpbmUgPSBtZW51SXRlbXNbdGhpcy5tZW51SURdLmhlYWRsaW5lOw0KICAgICAgICBsZXQgbWVudUtleSA9IG1lbnVJdGVtc1t0aGlzLm1lbnVJRF0ubWVudUtleTsNCiAgICAgICAgbGV0IGggPSB0aGlzLmNyZWF0ZUhlYWRsaW5lKGhlYWRsaW5lKTsNCiAgICAgICAgZG9jLmFwcGVuZENoaWxkKGgpOw0KICAgICAgICBsZXQgaHIgPSB0aGlzLmNyZWF0ZUhSKCk7DQogICAgICAgIGRvYy5hcHBlbmRDaGlsZChocik7DQogICAgICAgIC8vIEludGVyYWN0aW9uDQogICAgICAgIGxldCBkaXYgPSB0aGlzLmNyZWF0ZUludGVyYWN0aW9uKCk7DQogICAgICAgIGRvYy5hcHBlbmRDaGlsZChkaXYpOw0KICAgICAgICBsZXQgaW50ZXJhY3Rpb24gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCh0aGlzLmludGVyYWN0aW9uSUQpOw0KICAgICAgICBzd2l0Y2ggKG1lbnVLZXkpIHsNCiAgICAgICAgICAgIGNhc2UgInBsYXlsaXN0IjoNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSB0aGlzLmNyZWF0ZUlucHV0KCJidXR0b24iLCBtZW51S2V5LCAie3suYnV0dG9uLm5ld319Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJpZCIsICItIik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgicGxheWxpc3QiKScpOw0KICAgICAgICAgICAgICAgIGludGVyYWN0aW9uLmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImZpbHRlciI6DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gdGhpcy5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgbWVudUtleSwgInt7LmJ1dHRvbi5uZXd9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgiaWQiLCAtMSk7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgiZmlsdGVyIiwgdGhpcyknKTsNCiAgICAgICAgICAgICAgICBpbnRlcmFjdGlvbi5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ4bWx0diI6DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gdGhpcy5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgbWVudUtleSwgInt7LmJ1dHRvbi5uZXd9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgiaWQiLCAieG1sdHYiKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJ4bWx0diIpJyk7DQogICAgICAgICAgICAgICAgaW50ZXJhY3Rpb24uYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAidXNlcnMiOg0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IHRoaXMuY3JlYXRlSW5wdXQoImJ1dHRvbiIsIG1lbnVLZXksICJ7ey5idXR0b24ubmV3fX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoImlkIiwgInVzZXJzIik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgidXNlcnMiKScpOw0KICAgICAgICAgICAgICAgIGludGVyYWN0aW9uLmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgIm1hcHBpbmciOg0KICAgICAgICAgICAgICAgIHNob3dFbGVtZW50KCJsb2FkaW5nIiwgdHJ1ZSk7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gdGhpcy5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgbWVudUtleSwgInt7LmJ1dHRvbi5zYXZlfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogc2F2ZVBvcHVwRGF0YSgibWFwcGluZyIsICIiLCAiIiknKTsNCiAgICAgICAgICAgICAgICBpbnRlcmFjdGlvbi5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gdGhpcy5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgbWVudUtleSwgInt7LmJ1dHRvbi5idWxrRWRpdH19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IGJ1bGtFZGl0KCknKTsNCiAgICAgICAgICAgICAgICBpbnRlcmFjdGlvbi5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gdGhpcy5jcmVhdGVJbnB1dCgic2VhcmNoIiwgInNlYXJjaCIsICIiKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoImlkIiwgInNlYXJjaE1hcHBpbmciKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LmJ1dHRvbi5zZWFyY2h9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LmNsYXNzTmFtZSA9ICJzZWFyY2giOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAnamF2YXNjcmlwdDogc2VhcmNoSW5NYXBwaW5nKCknKTsNCiAgICAgICAgICAgICAgICBpbnRlcmFjdGlvbi5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJzZXR0aW5ncyI6DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gdGhpcy5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgbWVudUtleSwgInt7LmJ1dHRvbi5zYXZlfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogc2F2ZVNldHRpbmdzKCk7Jyk7DQogICAgICAgICAgICAgICAgaW50ZXJhY3Rpb24uYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IHRoaXMuY3JlYXRlSW5wdXQoImJ1dHRvbiIsIG1lbnVLZXksICJ7ey5idXR0b24uYmFja3VwfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogYmFja3VwKCk7Jyk7DQogICAgICAgICAgICAgICAgaW50ZXJhY3Rpb24uYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IHRoaXMuY3JlYXRlSW5wdXQoImJ1dHRvbiIsIG1lbnVLZXksICJ7ey5idXR0b24ucmVzdG9yZX19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IHJlc3RvcmUoKTsnKTsNCiAgICAgICAgICAgICAgICBpbnRlcmFjdGlvbi5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgdmFyIHdyYXBwZXIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJESVYiKTsNCiAgICAgICAgICAgICAgICB3cmFwcGVyLnNldEF0dHJpYnV0ZSgiaWQiLCAiYm94LXdyYXBwZXIiKTsNCiAgICAgICAgICAgICAgICBkb2MuYXBwZW5kQ2hpbGQod3JhcHBlcik7DQogICAgICAgICAgICAgICAgdGhpcy5EaXZJRCA9ICJjb250ZW50X3NldHRpbmdzIjsNCiAgICAgICAgICAgICAgICB2YXIgc2V0dGluZ3MgPSB0aGlzLmNyZWF0ZURJVigpOw0KICAgICAgICAgICAgICAgIHdyYXBwZXIuYXBwZW5kQ2hpbGQoc2V0dGluZ3MpOw0KICAgICAgICAgICAgICAgIHNob3dTZXR0aW5ncygpOw0KICAgICAgICAgICAgICAgIHJldHVybjsNCiAgICAgICAgICAgIGNhc2UgImxvZyI6DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gdGhpcy5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgbWVudUtleSwgInt7LmJ1dHRvbi5yZXNldExvZ3N9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiByZXNldExvZ3MoKTsnKTsNCiAgICAgICAgICAgICAgICBpbnRlcmFjdGlvbi5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgdmFyIHdyYXBwZXIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJESVYiKTsNCiAgICAgICAgICAgICAgICB3cmFwcGVyLnNldEF0dHJpYnV0ZSgiaWQiLCAiYm94LXdyYXBwZXIiKTsNCiAgICAgICAgICAgICAgICBkb2MuYXBwZW5kQ2hpbGQod3JhcHBlcik7DQogICAgICAgICAgICAgICAgdGhpcy5EaXZJRCA9ICJjb250ZW50X2xvZyI7DQogICAgICAgICAgICAgICAgdmFyIGxvZ3MgPSB0aGlzLmNyZWF0ZURJVigpOw0KICAgICAgICAgICAgICAgIHdyYXBwZXIuYXBwZW5kQ2hpbGQobG9ncyk7DQogICAgICAgICAgICAgICAgc2hvd0xvZ3ModHJ1ZSk7DQogICAgICAgICAgICAgICAgcmV0dXJuOw0KICAgICAgICAgICAgY2FzZSAibG9nb3V0IjoNCiAgICAgICAgICAgICAgICBsb2NhdGlvbi5yZWxvYWQoKTsNCiAgICAgICAgICAgICAgICBkb2N1bWVudC5jb29raWUgPSAiVG9rZW49IDsgZXhwaXJlcyA9IFRodSwgMDEgSmFuIDE5NzAgMDA6MDA6MDAgR01UIjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIH0NCiAgICAgICAgLy8gQ3JlYXRlIHRhYmxlIChpZiBuZWVkZWQpDQogICAgICAgIHZhciB0YWJsZUhlYWRlciA9IG1lbnVJdGVtc1t0aGlzLm1lbnVJRF0udGFibGVIZWFkZXI7DQogICAgICAgIGlmICh0YWJsZUhlYWRlci5sZW5ndGggPiAwKSB7DQogICAgICAgICAgICB2YXIgd3JhcHBlciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIkRJViIpOw0KICAgICAgICAgICAgZG9jLmFwcGVuZENoaWxkKHdyYXBwZXIpOw0KICAgICAgICAgICAgd3JhcHBlci5zZXRBdHRyaWJ1dGUoImlkIiwgImJveC13cmFwcGVyIik7DQogICAgICAgICAgICB2YXIgdGFibGUgPSB0aGlzLmNyZWF0ZVRBQkxFKCk7DQogICAgICAgICAgICB3cmFwcGVyLmFwcGVuZENoaWxkKHRhYmxlKTsNCiAgICAgICAgICAgIHZhciBoZWFkZXIgPSB0aGlzLmNyZWF0ZVRhYmxlUm93KCk7DQogICAgICAgICAgICB0YWJsZS5hcHBlbmRDaGlsZChoZWFkZXIpOw0KICAgICAgICAgICAgLy8gVGFibGUgaGVhZGVyDQogICAgICAgICAgICB0YWJsZUhlYWRlci5mb3JFYWNoKGVsZW1lbnQgPT4gew0KICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZWxlbWVudDsNCiAgICAgICAgICAgICAgICBpZiAoZWxlbWVudCA9PSAiQlVMSyIpIHsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiQlVMS19IRUFEIjsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGZhbHNlOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBpZiAobWVudUtleSA9PSAibWFwcGluZyIpIHsNCiAgICAgICAgICAgICAgICAgICAgaWYgKGVsZW1lbnQgPT0gInt7Lm1hcHBpbmcudGFibGUuY2hOb319Iikgew0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5vbmNsaWNrID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwub25jbGlja0Z1bmN0aW9uID0gImphdmFzY3JpcHQ6IHNvcnRUYWJsZSgxKTsiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC50ZENsYXNzTmFtZSA9ICJzb3J0VGhpcyI7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgaWYgKGVsZW1lbnQgPT0gInt7Lm1hcHBpbmcudGFibGUuY2hhbm5lbE5hbWV9fSIpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwub25jbGljayA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLm9uY2xpY2tGdW5jdGlvbiA9ICJqYXZhc2NyaXB0OiBzb3J0VGFibGUoMyk7IjsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBpZiAoZWxlbWVudCA9PSAie3subWFwcGluZy50YWJsZS5wbGF5bGlzdH19Iikgew0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5vbmNsaWNrID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwub25jbGlja0Z1bmN0aW9uID0gImphdmFzY3JpcHQ6IHNvcnRUYWJsZSg0KTsiOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIGlmIChlbGVtZW50ID09ICJ7ey5tYXBwaW5nLnRhYmxlLmdyb3VwVGl0bGV9fSIpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwub25jbGljayA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLm9uY2xpY2tGdW5jdGlvbiA9ICJqYXZhc2NyaXB0OiBzb3J0VGFibGUoNSk7IjsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBpZiAoZWxlbWVudCA9PSAie3subWFwcGluZy50YWJsZS50aW1lc2hpZnR9fSIpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwub25jbGljayA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLm9uY2xpY2tGdW5jdGlvbiA9ICJqYXZhc2NyaXB0OiBzb3J0VGFibGUoOCk7IjsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBpZiAobWVudUtleSA9PSAiZmlsdGVyIikgew0KICAgICAgICAgICAgICAgICAgICBpZiAoZWxlbWVudCA9PSAie3suZmlsdGVyLnRhYmxlLnN0YXJ0aW5nQ2hhbm5lbH19Iikgew0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5vbmNsaWNrID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwub25jbGlja0Z1bmN0aW9uID0gImphdmFzY3JpcHQ6IHNvcnRUYWJsZSgwKTsiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC50ZENsYXNzTmFtZSA9ICJzb3J0VGhpcyI7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgaWYgKGVsZW1lbnQgPT0gInt7LmZpbHRlci50YWJsZS5uYW1lfX0iKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLm9uY2xpY2sgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5vbmNsaWNrRnVuY3Rpb24gPSAiamF2YXNjcmlwdDogc29ydFRhYmxlKDEpOyI7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgaWYgKGVsZW1lbnQgPT0gInt7LmZpbHRlci50YWJsZS50eXBlfX0iKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLm9uY2xpY2sgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5vbmNsaWNrRnVuY3Rpb24gPSAiamF2YXNjcmlwdDogc29ydFRhYmxlKDIpOyI7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgaWYgKGVsZW1lbnQgPT0gInt7LmZpbHRlci50YWJsZS5maWx0ZXJ9fSIpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwub25jbGljayA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLm9uY2xpY2tGdW5jdGlvbiA9ICJqYXZhc2NyaXB0OiBzb3J0VGFibGUoMyk7IjsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBoZWFkZXIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgfSk7DQogICAgICAgICAgICB0YWJsZS5hcHBlbmRDaGlsZChoZWFkZXIpOw0KICAgICAgICAgICAgLy8gQ29udGVudCBvZiB0aGUgdGFibGUNCiAgICAgICAgICAgIHZhciByb3dzID0gdGhpcy5jcmVhdGVUYWJsZUNvbnRlbnQobWVudUtleSk7DQogICAgICAgICAgICByb3dzLmZvckVhY2godHIgPT4gew0KICAgICAgICAgICAgICAgIHRhYmxlLmFwcGVuZENoaWxkKHRyKTsNCiAgICAgICAgICAgIH0pOw0KICAgICAgICB9DQogICAgICAgIHN3aXRjaCAobWVudUtleSkgew0KICAgICAgICAgICAgY2FzZSAibWFwcGluZyI6DQogICAgICAgICAgICAgICAgc29ydFRhYmxlKDEpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiZmlsdGVyIjoNCiAgICAgICAgICAgICAgICBzaG93UHJldmlldyh0cnVlKTsNCiAgICAgICAgICAgICAgICBzb3J0VGFibGUoMCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBkZWZhdWx0Og0KICAgICAgICAgICAgICAgIENPTFVNTl9UT19TT1JUID0gLTE7DQogICAgICAgICAgICAgICAgc29ydFRhYmxlKDApOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICB9DQogICAgICAgIHNob3dFbGVtZW50KCJsb2FkaW5nIiwgZmFsc2UpOw0KICAgIH0NCn0NCmZ1bmN0aW9uIFBhZ2VSZWFkeSgpIHsNCiAgICBsZXQgc2VydmVyID0gbmV3IFNlcnZlcigiZ2V0U2VydmVyQ29uZmlnIik7DQogICAgc2VydmVyLnJlcXVlc3Qoe30pOw0KICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJyZXNpemUiLCBmdW5jdGlvbiAoKSB7DQogICAgICAgIGNhbGN1bGF0ZVdyYXBwZXJIZWlnaHQoKTsNCiAgICB9LCB0cnVlKTsNCiAgICBzZXRJbnRlcnZhbChmdW5jdGlvbiAoKSB7DQogICAgICAgIHVwZGF0ZUxvZygpOw0KICAgIH0sIDEwMDAwKTsNCiAgICByZXR1cm47DQp9DQpmdW5jdGlvbiBjcmVhdGVMYXlvdXQoKSB7DQogICAgLy8gQ2xpZW50IEluZm8NCiAgICBsZXQgb2JqID0gU0VSVkVSWyJjbGllbnRJbmZvIl07DQogICAgbGV0IGtleXMgPSBnZXRPd25PYmpQcm9wcyhvYmopOw0KICAgIGZvciAodmFyIGkgPSAwOyBpIDwga2V5cy5sZW5ndGg7IGkrKykgew0KICAgICAgICBpZiAoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoa2V5c1tpXSkpIHsNCiAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGtleXNbaV0pLmlubmVySFRNTCA9IG9ialtrZXlzW2ldXTsNCiAgICAgICAgfQ0KICAgIH0NCiAgICBpZiAoIWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJtYWluLW1lbnUiKSkgew0KICAgICAgICByZXR1cm47DQogICAgfQ0KICAgIC8vIENyZWF0ZSBtZW51DQogICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm1haW4tbWVudSIpLmlubmVySFRNTCA9ICIiOw0KICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbWVudUl0ZW1zLmxlbmd0aDsgaSsrKSB7DQogICAgICAgIG1lbnVJdGVtc1tpXS5pZCA9IGk7DQogICAgICAgIHN3aXRjaCAobWVudUl0ZW1zW2ldWyJtZW51S2V5Il0pIHsNCiAgICAgICAgICAgIGNhc2UgInVzZXJzIjoNCiAgICAgICAgICAgIGNhc2UgImxvZ291dCI6DQogICAgICAgICAgICAgICAgaWYgKFNFUlZFUlsic2V0dGluZ3MiXVsiYXV0aGVudGljYXRpb24ud2ViIl0gPT0gdHJ1ZSkgew0KICAgICAgICAgICAgICAgICAgICBtZW51SXRlbXNbaV0uY3JlYXRlSXRlbSgpOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgIm1hcHBpbmciOg0KICAgICAgICAgICAgY2FzZSAieG1sdHYiOg0KICAgICAgICAgICAgICAgIGlmIChTRVJWRVJbImNsaWVudEluZm8iXVsiZXBnU291cmNlIl0gPT0gIlhFUEciKSB7DQogICAgICAgICAgICAgICAgICAgIG1lbnVJdGVtc1tpXS5jcmVhdGVJdGVtKCk7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgICAgICBtZW51SXRlbXNbaV0uY3JlYXRlSXRlbSgpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICB9DQogICAgfQ0KICAgIHJldHVybjsNCn0NCmZ1bmN0aW9uIG9wZW5UaGlzTWVudShlbGVtZW50KSB7DQogICAgbGV0IGlkID0gZWxlbWVudC5pZDsNCiAgICBsZXQgY29udGVudCA9IG5ldyBTaG93Q29udGVudChpZCk7DQogICAgY29udGVudC5zaG93KCk7DQogICAgY2FsY3VsYXRlV3JhcHBlckhlaWdodCgpOw0KICAgIHJldHVybjsNCn0NCmNsYXNzIFBvcHVwV2luZG93IHsNCiAgICBjb25zdHJ1Y3RvcigpIHsNCiAgICAgICAgdGhpcy5Eb2N1bWVudElEID0gInBvcHVwLWN1c3RvbSI7DQogICAgICAgIHRoaXMuSW50ZXJhY3Rpb25JRCA9ICJpbnRlcmFjdGlvbiI7DQogICAgICAgIHRoaXMuZG9jID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQodGhpcy5Eb2N1bWVudElEKTsNCiAgICB9DQogICAgY3JlYXRlVGl0bGUodGl0bGUpIHsNCiAgICAgICAgbGV0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgdGQuY2xhc3NOYW1lID0gImxlZnQiOw0KICAgICAgICB0ZC5pbm5lckhUTUwgPSB0aXRsZSArICI6IjsNCiAgICAgICAgcmV0dXJuIHRkOw0KICAgIH0NCiAgICBjcmVhdGVDb250ZW50KGVsZW1lbnQpIHsNCiAgICAgICAgbGV0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgdGQuYXBwZW5kQ2hpbGQoZWxlbWVudCk7DQogICAgICAgIHJldHVybiB0ZDsNCiAgICB9DQogICAgY3JlYXRlSW50ZXJhY3Rpb24oKSB7DQogICAgICAgIGxldCBkaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsNCiAgICAgICAgZGl2LnNldEF0dHJpYnV0ZSgiaWQiLCAicG9wdXAtaW50ZXJhY3Rpb24iKTsNCiAgICAgICAgZGl2LmNsYXNzTmFtZSA9ICJpbnRlcmFjdGlvbiI7DQogICAgICAgIHRoaXMuZG9jLmFwcGVuZENoaWxkKGRpdik7DQogICAgfQ0KfQ0KY2xhc3MgUG9wdXBDb250ZW50IGV4dGVuZHMgUG9wdXBXaW5kb3cgew0KICAgIGNvbnN0cnVjdG9yKCkgew0KICAgICAgICBzdXBlciguLi5hcmd1bWVudHMpOw0KICAgICAgICB0aGlzLnRhYmxlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEFCTEUiKTsNCiAgICB9DQogICAgY3JlYXRlSGVhZGxpbmUoaGVhZGxpbmUpIHsNCiAgICAgICAgdGhpcy5kb2MuaW5uZXJIVE1MID0gIiI7DQogICAgICAgIHZhciBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiSDMiKTsNCiAgICAgICAgZWxlbWVudC5pbm5lckhUTUwgPSBoZWFkbGluZS50b1VwcGVyQ2FzZSgpOw0KICAgICAgICB0aGlzLmRvYy5hcHBlbmRDaGlsZChlbGVtZW50KTsNCiAgICAgICAgLy8gQ3JlYXRlIHRhYmxlDQogICAgICAgIHRoaXMudGFibGUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJUQUJMRSIpOw0KICAgICAgICB0aGlzLmRvYy5hcHBlbmRDaGlsZCh0aGlzLnRhYmxlKTsNCiAgICB9DQogICAgYXBwZW5kUm93KHRpdGxlLCBlbGVtZW50KSB7DQogICAgICAgIGxldCB0ciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlRSIik7DQogICAgICAgIC8vIFRpdGxlDQogICAgICAgIGlmICh0aXRsZS5sZW5ndGggIT0gMCkgew0KICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQodGhpcy5jcmVhdGVUaXRsZSh0aXRsZSkpOw0KICAgICAgICB9DQogICAgICAgIC8vIENvbnRlbnQNCiAgICAgICAgdHIuYXBwZW5kQ2hpbGQodGhpcy5jcmVhdGVDb250ZW50KGVsZW1lbnQpKTsNCiAgICAgICAgdGhpcy50YWJsZS5hcHBlbmRDaGlsZCh0cik7DQogICAgfQ0KICAgIGNyZWF0ZUlucHV0KHR5cGUsIG5hbWUsIHZhbHVlKSB7DQogICAgICAgIGxldCBpbnB1dCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIklOUFVUIik7DQogICAgICAgIGlmICh2YWx1ZSA9PSB1bmRlZmluZWQpIHsNCiAgICAgICAgICAgIHZhbHVlID0gIiI7DQogICAgICAgIH0NCiAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJ0eXBlIiwgdHlwZSk7DQogICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgibmFtZSIsIG5hbWUpOw0KICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInZhbHVlIiwgdmFsdWUpOw0KICAgICAgICByZXR1cm4gaW5wdXQ7DQogICAgfQ0KICAgIGNyZWF0ZUNoZWNrYm94KG5hbWUpIHsNCiAgICAgICAgbGV0IGlucHV0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiSU5QVVQiKTsNCiAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJ0eXBlIiwgImNoZWNrYm94Iik7DQogICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgibmFtZSIsIG5hbWUpOw0KICAgICAgICByZXR1cm4gaW5wdXQ7DQogICAgfQ0KICAgIC8vIENyZWF0ZXMgYSBzZWxlY3Rpb24gb2YgbXVsdGlwbGUgb3B0aW9ucyB2YWx1ZXMgd2l0aCB0ZXh0IGRlc2NyaXB0aW9ucw0KICAgIGNyZWF0ZVNlbGVjdCh0ZXh0LCB2YWx1ZXMsIHNldCwgZGJLZXkpIHsNCiAgICAgICAgbGV0IHNlbGVjdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlNFTEVDVCIpOw0KICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJuYW1lIiwgZGJLZXkpOw0KICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRleHQubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgICAgIGxldCBvcHRpb24gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJPUFRJT04iKTsNCiAgICAgICAgICAgIG9wdGlvbi5zZXRBdHRyaWJ1dGUoInZhbHVlIiwgdmFsdWVzW2ldKTsNCiAgICAgICAgICAgIG9wdGlvbi5pbm5lclRleHQgPSB0ZXh0W2ldOw0KICAgICAgICAgICAgc2VsZWN0LmFwcGVuZENoaWxkKG9wdGlvbik7DQogICAgICAgIH0NCiAgICAgICAgaWYgKHNldCAhPSAiIikgew0KICAgICAgICAgICAgc2VsZWN0LnZhbHVlID0gc2V0Ow0KICAgICAgICB9DQogICAgICAgIGlmIChzZXQgPT0gdW5kZWZpbmVkKSB7DQogICAgICAgICAgICBzZWxlY3QudmFsdWUgPSB2YWx1ZXNbMF07DQogICAgICAgIH0NCiAgICAgICAgcmV0dXJuIHNlbGVjdDsNCiAgICB9DQogICAgc2VsZWN0T3B0aW9uKHNlbGVjdCwgdmFsdWUpIHsNCiAgICAgICAgLy9zZWxlY3Quc2VsZWN0ZWRPcHRpb25zID0gdmFsdWUNCiAgICAgICAgbGV0IHMgPSBzZWxlY3Q7DQogICAgICAgIHMub3B0aW9uc1tzLnNlbGVjdGVkSW5kZXhdLnZhbHVlID0gdmFsdWU7DQogICAgICAgIHJldHVybiBzZWxlY3Q7DQogICAgfQ0KICAgIGRlc2NyaXB0aW9uKHZhbHVlKSB7DQogICAgICAgIGxldCB0ciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlRSIik7DQogICAgICAgIGxldCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgIGxldCBzcGFuID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiUFJFIik7DQogICAgICAgIHNwYW4uaW5uZXJIVE1MID0gdmFsdWU7DQogICAgICAgIHRyLmFwcGVuZENoaWxkKHRkKTsNCiAgICAgICAgdHIuYXBwZW5kQ2hpbGQodGhpcy5jcmVhdGVDb250ZW50KHNwYW4pKTsNCiAgICAgICAgdGhpcy50YWJsZS5hcHBlbmRDaGlsZCh0cik7DQogICAgfQ0KICAgIC8vIEludGVyYWN0aW9uDQogICAgYWRkSW50ZXJhY3Rpb24oZWxlbWVudCkgew0KICAgICAgICBsZXQgaW50ZXJhY3Rpb24gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicG9wdXAtaW50ZXJhY3Rpb24iKTsNCiAgICAgICAgaW50ZXJhY3Rpb24uYXBwZW5kQ2hpbGQoZWxlbWVudCk7DQogICAgfQ0KfQ0KZnVuY3Rpb24gb3BlblBvcFVwKGRhdGFUeXBlLCBlbGVtZW50KSB7DQogICAgbGV0IGRhdGEgPSB7fTsNCiAgICBsZXQgaWQ7DQogICAgc3dpdGNoIChlbGVtZW50KSB7DQogICAgICAgIGNhc2UgdW5kZWZpbmVkOg0KICAgICAgICAgICAgc3dpdGNoIChkYXRhVHlwZSkgew0KICAgICAgICAgICAgICAgIGNhc2UgImdyb3VwLXRpdGxlIjoNCiAgICAgICAgICAgICAgICAgICAgaWYgKGlkID09IHVuZGVmaW5lZCkgew0KICAgICAgICAgICAgICAgICAgICAgICAgaWQgPSAtMTsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBkYXRhID0gZ2V0TG9jYWxEYXRhKCJmaWx0ZXIiLCBpZCk7DQogICAgICAgICAgICAgICAgICAgIGRhdGFbInR5cGUiXSA9ICJncm91cC10aXRsZSI7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgImN1c3RvbS1maWx0ZXIiOg0KICAgICAgICAgICAgICAgICAgICBpZiAoaWQgPT0gdW5kZWZpbmVkKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBpZCA9IC0xOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIGRhdGEgPSBnZXRMb2NhbERhdGEoImZpbHRlciIsIGlkKTsNCiAgICAgICAgICAgICAgICAgICAgZGF0YVsidHlwZSJdID0gImN1c3RvbS1maWx0ZXIiOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBkZWZhdWx0Og0KICAgICAgICAgICAgICAgICAgICBkYXRhWyJpZC5wcm92aWRlciJdID0gIi0iOw0KICAgICAgICAgICAgICAgICAgICBkYXRhWyJ0eXBlIl0gPSBkYXRhVHlwZTsNCiAgICAgICAgICAgICAgICAgICAgaWQgPSAiLSI7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICBpZCA9IGVsZW1lbnQuaWQ7DQogICAgICAgICAgICBkYXRhID0gZ2V0TG9jYWxEYXRhKGRhdGFUeXBlLCBpZCk7DQogICAgICAgICAgICBicmVhazsNCiAgICB9DQogICAgbGV0IGNvbnRlbnQgPSBuZXcgUG9wdXBDb250ZW50KCk7DQogICAgc3dpdGNoIChkYXRhVHlwZSkgew0KICAgICAgICBjYXNlICJwbGF5bGlzdCI6DQogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUhlYWRsaW5lKCJ7ey5wbGF5bGlzdC5wbGF5bGlzdFR5cGUudGl0bGV9fSIpOw0KICAgICAgICAgICAgLy8gVHlwZQ0KICAgICAgICAgICAgdmFyIHRleHQgPSBbIk0zVSIsICJIREhvbWVSdW4iXTsNCiAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBbImphdmFzY3JpcHQ6IG9wZW5Qb3BVcCgnbTN1JykiLCAiamF2YXNjcmlwdDogb3BlblBvcFVwKCdoZGhyJykiXTsNCiAgICAgICAgICAgIHZhciBzZWxlY3QgPSBjb250ZW50LmNyZWF0ZVNlbGVjdCh0ZXh0LCB2YWx1ZXMsICIiLCAidHlwZSIpOw0KICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgiaWQiLCAidHlwZSIpOw0KICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAnamF2YXNjcmlwdDogY2hhbmdlQnV0dG9uQWN0aW9uKHRoaXMsICJuZXh0IiwgIm9uY2xpY2siKScpOyAvLyBjaGFuZ2VCdXR0b25BY3Rpb24NCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5wbGF5bGlzdC50eXBlLnRpdGxlfX0iLCBzZWxlY3QpOw0KICAgICAgICAgICAgLy8gSW50ZXJhY3Rpb24NCiAgICAgICAgICAgIGNvbnRlbnQuY3JlYXRlSW50ZXJhY3Rpb24oKTsNCiAgICAgICAgICAgIC8vIEFib3J0DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAiY2FuY2VsIiwgInt7LmJ1dHRvbi5jYW5jZWx9fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IHNob3dFbGVtZW50KCJwb3B1cCIsIGZhbHNlKTsnKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgLy8gTmV4dA0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgIm5leHQiLCAie3suYnV0dG9uLm5leHR9fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgibTN1IiknKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgiaWQiLCAnbmV4dCcpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSAibTN1IjoNCiAgICAgICAgICAgIGNvbnRlbnQuY3JlYXRlSGVhZGxpbmUoZGF0YVR5cGUpOw0KICAgICAgICAgICAgLy8gTmFtZQ0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gIm5hbWUiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnBsYXlsaXN0Lm5hbWUucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnBsYXlsaXN0Lm5hbWUudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIERlc2NyaXB0aW9uDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAiZGVzY3JpcHRpb24iOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnBsYXlsaXN0LmRlc2NyaXB0aW9uLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5wbGF5bGlzdC5kZXNjcmlwdGlvbi50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgLy8gVVJMDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAiZmlsZS5zb3VyY2UiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnBsYXlsaXN0LmZpbGVNM1UucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnBsYXlsaXN0LmZpbGVNM1UudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIFR1bmVyDQogICAgICAgICAgICBpZiAoU0VSVkVSWyJzZXR0aW5ncyJdWyJidWZmZXIiXSAhPSAiLSIpIHsNCiAgICAgICAgICAgICAgICB2YXIgdGV4dCA9IFtdOw0KICAgICAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBbXTsNCiAgICAgICAgICAgICAgICBmb3IgKHZhciBpID0gMTsgaSA8PSAxMDA7IGkrKykgew0KICAgICAgICAgICAgICAgICAgICB0ZXh0LnB1c2goaS50b1N0cmluZygpKTsNCiAgICAgICAgICAgICAgICAgICAgdmFsdWVzLnB1c2goaS50b1N0cmluZygpKTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgdmFyIGRiS2V5ID0gInR1bmVyIjsNCiAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCBkYXRhW2RiS2V5XSwgZGJLZXkpOw0KICAgICAgICAgICAgICAgIHNlbGVjdC5zZXRBdHRyaWJ1dGUoIm9uZm9jdXMiLCAiamF2YXNjcmlwdDogcmV0dXJuOyIpOw0KICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5wbGF5bGlzdC50dW5lci50aXRsZX19Iiwgc2VsZWN0KTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgICAgIHZhciBkYktleSA9ICJ0dW5lciI7DQogICAgICAgICAgICAgICAgaWYgKGRhdGFbZGJLZXldID09IHVuZGVmaW5lZCkgew0KICAgICAgICAgICAgICAgICAgICBkYXRhW2RiS2V5XSA9IDE7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicmVhZG9ubHkiLCAidHJ1ZSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LmNsYXNzTmFtZSA9ICJub3RBdmFpbGFibGUiOw0KICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5wbGF5bGlzdC50dW5lci50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgY29udGVudC5kZXNjcmlwdGlvbigie3sucGxheWxpc3QudHVuZXIuZGVzY3JpcHRpb259fSIpOw0KICAgICAgICAgICAgLy8gSW50ZXJhdGlvbg0KICAgICAgICAgICAgY29udGVudC5jcmVhdGVJbnRlcmFjdGlvbigpOw0KICAgICAgICAgICAgLy8gRGVsZXRlDQogICAgICAgICAgICBpZiAoZGF0YVsiaWQucHJvdmlkZXIiXSAhPSAiLSIpIHsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAiZGVsZXRlIiwgInt7LmJ1dHRvbi5kZWxldGV9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LmNsYXNzTmFtZSA9ICJkZWxldGUiOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBzYXZlUG9wdXBEYXRhKCJtM3UiLCAiJyArIGlkICsgJyIsIHRydWUsIDApJyk7DQogICAgICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAiYmFjayIsICJ7ey5idXR0b24uYmFja319Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgicGxheWxpc3QiKScpOw0KICAgICAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgLy8gQWJvcnQNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJjYW5jZWwiLCAie3suYnV0dG9uLmNhbmNlbH19Iik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogc2hvd0VsZW1lbnQoInBvcHVwIiwgZmFsc2UpOycpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICAvLyBVcGRhdGUNCiAgICAgICAgICAgIGlmIChkYXRhWyJpZC5wcm92aWRlciJdICE9ICItIikgew0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJ1cGRhdGUiLCAie3suYnV0dG9uLnVwZGF0ZX19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoIm0zdSIsICInICsgaWQgKyAnIiwgZmFsc2UsIDEpJyk7DQogICAgICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICAvLyBTYXZlDQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAic2F2ZSIsICJ7ey5idXR0b24uc2F2ZX19Iik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogc2F2ZVBvcHVwRGF0YSgibTN1IiwgIicgKyBpZCArICciLCBmYWxzZSwgMCknKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGNhc2UgImhkaHIiOg0KICAgICAgICAgICAgY29udGVudC5jcmVhdGVIZWFkbGluZShkYXRhVHlwZSk7DQogICAgICAgICAgICAvLyBOYW1lDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAibmFtZSI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3sucGxheWxpc3QubmFtZS5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sucGxheWxpc3QubmFtZS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgLy8gRGVzY3JpcHRpb24NCiAgICAgICAgICAgIHZhciBkYktleSA9ICJkZXNjcmlwdGlvbiI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3sucGxheWxpc3QuZGVzY3JpcHRpb24ucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnBsYXlsaXN0LmRlc2NyaXB0aW9uLnBsYWNlaG9sZGVyfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBVUkwNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJmaWxlLnNvdXJjZSI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3sucGxheWxpc3QuZmlsZUhESFIucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnBsYXlsaXN0LmZpbGVIREhSLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBUdW5lcg0KICAgICAgICAgICAgaWYgKFNFUlZFUlsic2V0dGluZ3MiXVsiYnVmZmVyIl0gIT0gIi0iKSB7DQogICAgICAgICAgICAgICAgdmFyIHRleHQgPSBbXTsNCiAgICAgICAgICAgICAgICB2YXIgdmFsdWVzID0gW107DQogICAgICAgICAgICAgICAgZm9yICh2YXIgaSA9IDE7IGkgPD0gMTAwOyBpKyspIHsNCiAgICAgICAgICAgICAgICAgICAgdGV4dC5wdXNoKGkudG9TdHJpbmcoKSk7DQogICAgICAgICAgICAgICAgICAgIHZhbHVlcy5wdXNoKGkudG9TdHJpbmcoKSk7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIHZhciBkYktleSA9ICJ0dW5lciI7DQogICAgICAgICAgICAgICAgdmFyIHNlbGVjdCA9IGNvbnRlbnQuY3JlYXRlU2VsZWN0KHRleHQsIHZhbHVlcywgZGF0YVtkYktleV0sIGRiS2V5KTsNCiAgICAgICAgICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJvbmZvY3VzIiwgImphdmFzY3JpcHQ6IHJldHVybjsiKTsNCiAgICAgICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sucGxheWxpc3QudHVuZXIudGl0bGV9fSIsIHNlbGVjdCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICB2YXIgZGJLZXkgPSAidHVuZXIiOw0KICAgICAgICAgICAgICAgIGlmIChkYXRhW2RiS2V5XSA9PSB1bmRlZmluZWQpIHsNCiAgICAgICAgICAgICAgICAgICAgZGF0YVtkYktleV0gPSAxOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInJlYWRvbmx5IiwgInRydWUiKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5jbGFzc05hbWUgPSAibm90QXZhaWxhYmxlIjsNCiAgICAgICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sucGxheWxpc3QudHVuZXIudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGNvbnRlbnQuZGVzY3JpcHRpb24oInt7LnBsYXlsaXN0LnR1bmVyLmRlc2NyaXB0aW9ufX0iKTsNCiAgICAgICAgICAgIC8vIEludGVyYWN0aW9uDQogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUludGVyYWN0aW9uKCk7DQogICAgICAgICAgICAvLyBEZWxldGUNCiAgICAgICAgICAgIGlmIChkYXRhWyJpZC5wcm92aWRlciJdICE9ICItIikgew0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJkZWxldGUiLCAie3suYnV0dG9uLmRlbGV0ZX19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoImhkaHIiLCAiJyArIGlkICsgJyIsIHRydWUsIDApJyk7DQogICAgICAgICAgICAgICAgaW5wdXQuY2xhc3NOYW1lID0gImRlbGV0ZSI7DQogICAgICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAiYmFjayIsICJ7ey5idXR0b24uYmFja319Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgicGxheWxpc3QiKScpOw0KICAgICAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgLy8gQWJvcnQNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJjYW5jZWwiLCAie3suYnV0dG9uLmNhbmNlbH19Iik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogc2hvd0VsZW1lbnQoInBvcHVwIiwgZmFsc2UpOycpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICAvLyBVcGRhdGUNCiAgICAgICAgICAgIGlmIChkYXRhWyJpZC5wcm92aWRlciJdICE9ICItIikgew0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJ1cGRhdGUiLCAie3suYnV0dG9uLnVwZGF0ZX19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoImhkaHIiLCAiJyArIGlkICsgJyIsIGZhbHNlLCAxKScpOw0KICAgICAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgLy8gU2F2ZQ0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgInNhdmUiLCAie3suYnV0dG9uLnNhdmV9fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoImhkaHIiLCAiJyArIGlkICsgJyIsIGZhbHNlLCAwKScpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSAiZmlsdGVyIjoNCiAgICAgICAgICAgIGNvbnRlbnQuY3JlYXRlSGVhZGxpbmUoZGF0YVR5cGUpOw0KICAgICAgICAgICAgLy8gVHlwZQ0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gInR5cGUiOw0KICAgICAgICAgICAgdmFyIHRleHQgPSBbIk0zVTogIiArICJ7ey5maWx0ZXIudHlwZS5ncm91cFRpdGxlfX0iLCAieFRlVmU6ICIgKyAie3suZmlsdGVyLnR5cGUuY3VzdG9tRmlsdGVyfX0iXTsNCiAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBbImphdmFzY3JpcHQ6IG9wZW5Qb3BVcCgnZ3JvdXAtdGl0bGUnKSIsICJqYXZhc2NyaXB0OiBvcGVuUG9wVXAoJ2N1c3RvbS1maWx0ZXInKSJdOw0KICAgICAgICAgICAgdmFyIHNlbGVjdCA9IGNvbnRlbnQuY3JlYXRlU2VsZWN0KHRleHQsIHZhbHVlcywgImphdmFzY3JpcHQ6IG9wZW5Qb3BVcCgnZ3JvdXAtdGl0bGUnKSIsIGRiS2V5KTsNCiAgICAgICAgICAgIHNlbGVjdC5zZXRBdHRyaWJ1dGUoImlkIiwgaWQpOw0KICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAnamF2YXNjcmlwdDogY2hhbmdlQnV0dG9uQWN0aW9uKHRoaXMsICJuZXh0IiwgIm9uY2xpY2siKTsnKTsgLy8gY2hhbmdlQnV0dG9uQWN0aW9uDQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3suZmlsdGVyLnR5cGUudGl0bGV9fSIsIHNlbGVjdCk7DQogICAgICAgICAgICAvLyBJbnRlcmFjdGlvbg0KICAgICAgICAgICAgY29udGVudC5jcmVhdGVJbnRlcmFjdGlvbigpOw0KICAgICAgICAgICAgLy8gQWJvcnQNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJjYW5jZWwiLCAie3suYnV0dG9uLmNhbmNlbH19Iik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogc2hvd0VsZW1lbnQoInBvcHVwIiwgZmFsc2UpOycpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICAvLyBOZXh0DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAibmV4dCIsICJ7ey5idXR0b24ubmV4dH19Iik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJncm91cC10aXRsZSIpJyk7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoImlkIiwgJ25leHQnKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGNhc2UgImN1c3RvbS1maWx0ZXIiOg0KICAgICAgICBjYXNlICJncm91cC10aXRsZSI6DQogICAgICAgICAgICBzd2l0Y2ggKGRhdGFUeXBlKSB7DQogICAgICAgICAgICAgICAgY2FzZSAiY3VzdG9tLWZpbHRlciI6DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuY3JlYXRlSGVhZGxpbmUoInt7LmZpbHRlci5jdXN0b219fSIgKyAiIEZpbHRlciIpOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBjYXNlICJncm91cC10aXRsZSI6DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuY3JlYXRlSGVhZGxpbmUoInt7LmZpbHRlci5ncm91cH19IiArICIgRmlsdGVyIik7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgLy8gTmFtZSAgICAgIA0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gIm5hbWUiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LmZpbHRlci5uYW1lLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5maWx0ZXIubmFtZS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgLy8gRGVzY3JpcHRpb24NCiAgICAgICAgICAgIHZhciBkYktleSA9ICJkZXNjcmlwdGlvbiI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3suZmlsdGVyLmRlc2NyaXB0aW9uLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5maWx0ZXIuZGVzY3JpcHRpb24udGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIFR5cGUNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJ0eXBlIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImhpZGRlbiIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygiIiwgaW5wdXQpOw0KICAgICAgICAgICAgdmFyIGZpbHRlclR5cGUgPSBkYXRhW2RiS2V5XTsNCiAgICAgICAgICAgIHN3aXRjaCAoZmlsdGVyVHlwZSkgew0KICAgICAgICAgICAgICAgIGNhc2UgImN1c3RvbS1maWx0ZXIiOg0KICAgICAgICAgICAgICAgICAgICAvLyBDYXNlIHNlbnNpdGl2ZQ0KICAgICAgICAgICAgICAgICAgICB2YXIgZGJLZXkgPSAiY2FzZVNlbnNpdGl2ZSI7DQogICAgICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goZGJLZXkpOw0KICAgICAgICAgICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YVtkYktleV07DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5maWx0ZXIuY2FzZVNlbnNpdGl2ZS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgICAgICAgICAvLyBGaWx0ZXIgUnVsZSAoQ3VzdG9tKQ0KICAgICAgICAgICAgICAgICAgICB2YXIgZGJLZXkgPSAiZmlsdGVyIjsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3suZmlsdGVyLmZpbHRlclJ1bGUucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3suZmlsdGVyLmZpbHRlclJ1bGUudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAiZ3JvdXAtdGl0bGUiOg0KICAgICAgICAgICAgICAgICAgICAvL2FsZXJ0KGRiS2V5ICsgIiAiICsgZmlsdGVyVHlwZSkNCiAgICAgICAgICAgICAgICAgICAgLy8gRmlsdGVyIGJhc2VkIG9uIHRoZSBncm91cHMgaW4gdGhlIE0zVQ0KICAgICAgICAgICAgICAgICAgICB2YXIgZGJLZXkgPSAiZmlsdGVyIjsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGdyb3Vwc00zVSA9IGdldExvY2FsRGF0YSgibTN1R3JvdXBzIiwgIiIpOw0KICAgICAgICAgICAgICAgICAgICB2YXIgdGV4dCA9IGdyb3Vwc00zVVsidGV4dCJdOw0KICAgICAgICAgICAgICAgICAgICB2YXIgdmFsdWVzID0gZ3JvdXBzTTNVWyJ2YWx1ZSJdOw0KICAgICAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCBkYXRhW2RiS2V5XSwgZGJLZXkpOw0KICAgICAgICAgICAgICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3suZmlsdGVyLmZpbHRlckdyb3VwLnRpdGxlfX0iLCBzZWxlY3QpOw0KICAgICAgICAgICAgICAgICAgICBjb250ZW50LmRlc2NyaXB0aW9uKCJ7ey5maWx0ZXIuZmlsdGVyR3JvdXAuZGVzY3JpcHRpb259fSIpOw0KICAgICAgICAgICAgICAgICAgICAvLyBDYXNlIHNlbnNldGl2ZQ0KICAgICAgICAgICAgICAgICAgICB2YXIgZGJLZXkgPSAiY2FzZVNlbnNpdGl2ZSI7DQogICAgICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goZGJLZXkpOw0KICAgICAgICAgICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YVtkYktleV07DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5maWx0ZXIuY2FzZVNlbnNpdGl2ZS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgICAgICAgICB2YXIgZGJLZXkgPSAiaW5jbHVkZSI7DQogICAgICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LmZpbHRlci5pbmNsdWRlLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LmZpbHRlci5pbmNsdWRlLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuZGVzY3JpcHRpb24oInt7LmZpbHRlci5pbmNsdWRlLmRlc2NyaXB0aW9ufX0iKTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGRiS2V5ID0gImV4Y2x1ZGUiOw0KICAgICAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5maWx0ZXIuZXhjbHVkZS5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5maWx0ZXIuZXhjbHVkZS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgICAgICAgICBjb250ZW50LmRlc2NyaXB0aW9uKCJ7ey5maWx0ZXIuZXhjbHVkZS5kZXNjcmlwdGlvbn19Iik7DQogICAgICAgICAgICAgICAgICAgIC8vIFByZXNlcnZlIE0zVSBQbGF5bGlzdCBDaGFubmVsIE1hcHBpbmcNCiAgICAgICAgICAgICAgICAgICAgdmFyIGRiS2V5ID0gInByZXNlcnZlTWFwcGluZyI7DQogICAgICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goZGJLZXkpOw0KICAgICAgICAgICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YVtkYktleV07DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5maWx0ZXIucHJlc2VydmVNYXBwaW5nLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAgICAgICAgIC8vIFN0YXJ0aW5nIENoYW5uZWwgTnVtYmVyIE1hcHBpbmcNCiAgICAgICAgICAgICAgICAgICAgdmFyIGRiS2V5ID0gInN0YXJ0aW5nQ2hhbm5lbCI7DQogICAgICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LmZpbHRlci5zdGFydGluZ0NoYW5uZWwucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3suZmlsdGVyLnN0YXJ0aW5nQ2hhbm5lbC50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgICAgICAgICAvLyBGaWxsIE1pc3NpbmcgRVBHIERhdGENCiAgICAgICAgICAgICAgICAgICAgLy8gVGhlIGZvbGxvd2luZyBjb2RlIG9ubHkgd29ya3Mgd2hlbiB4VGVWZSBEdW1teSBhbHJlYWR5IGV4aXN0cw0KICAgICAgICAgICAgICAgICAgICAvLyB2YXIgZGJLZXk6c3RyaW5nID0gImRlZmF1bHRNaXNzaW5nRVBHIg0KICAgICAgICAgICAgICAgICAgICAvLyB2YXIgeG1sdHY6WE1MVFZGaWxlID0gbmV3IFhNTFRWRmlsZSgpDQogICAgICAgICAgICAgICAgICAgIC8vIHZhciBzZWxlY3QgPSB4bWx0di5nZXRQcm9ncmFtcygieFRlVmUgRHVtbXkiLCBkYXRhW2RiS2V5XSkNCiAgICAgICAgICAgICAgICAgICAgLy8gc2VsZWN0LnNldEF0dHJpYnV0ZSgibmFtZSIsIGRiS2V5KQ0KICAgICAgICAgICAgICAgICAgICAvLyBzZWxlY3Quc2V0QXR0cmlidXRlKCJpZCIsICJwb3B1cC1taXNzaW5nLWVwZyIpDQogICAgICAgICAgICAgICAgICAgIC8vIFRoZSB3b3JrYXJvdW5kIGlzIGN1cnJlbnRseSB0byBoYXJkIGNvZGUgdGhlIHhUZVZlIER1bW15IGRhdGENCiAgICAgICAgICAgICAgICAgICAgdmFyIGRiS2V5ID0gImRlZmF1bHRNaXNzaW5nRVBHIjsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGxpc3RPcHRpb25zID0geyAidGV4dCI6IFsiLSIsICIzMCBNaW51dGVzICgzMF9NaW51dGVzKSIsICI2MCBNaW51dGVzICg2MF9NaW51dGVzKSIsICI5MCBNaW51dGVzICg5MF9NaW51dGVzKSIsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgIjEyMCBNaW51dGVzICgxMjBfTWludXRlcykiLCAiMTgwIE1pbnV0ZXMgKDMwX01pbnV0ZXMpIiwgIjI0MCBNaW51dGVzICgzMF9NaW51dGVzKSIsICIzNjAgTWludXRlcyAoMzBfTWludXRlcykiXSwNCiAgICAgICAgICAgICAgICAgICAgICAgICJ2YWx1ZSI6IFsiLSIsICIzMF9NaW51dGVzIiwgIjYwX01pbnV0ZXMiLCAiOTBfTWludXRlcyIsICIxMjBfTWludXRlcyIsICIxODBfTWludXRlcyIsICIyNDBfTWludXRlcyIsICIzNjBfTWludXRlcyIsXSB9Ow0KICAgICAgICAgICAgICAgICAgICB2YXIgdGV4dCA9IGxpc3RPcHRpb25zWyJ0ZXh0Il07DQogICAgICAgICAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBsaXN0T3B0aW9uc1sidmFsdWUiXTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHNlbGVjdCA9IGNvbnRlbnQuY3JlYXRlU2VsZWN0KHRleHQsIHZhbHVlcywgZGF0YVtkYktleV0sIGRiS2V5KTsNCiAgICAgICAgICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LmZpbHRlci5kZWZhdWx0TWlzc2luZ0VQRy50aXRsZX19Iiwgc2VsZWN0KTsNCiAgICAgICAgICAgICAgICAgICAgY29udGVudC5kZXNjcmlwdGlvbigie3suZmlsdGVyLmRlZmF1bHRNaXNzaW5nRVBHLmRlc2NyaXB0aW9ufX0iKTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICB9DQogICAgICAgICAgICAvLyBJbnRlcmFjdGlvbg0KICAgICAgICAgICAgY29udGVudC5jcmVhdGVJbnRlcmFjdGlvbigpOw0KICAgICAgICAgICAgLy8gRGVsZXRlDQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAiZGVsZXRlIiwgInt7LmJ1dHRvbi5kZWxldGV9fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoImZpbHRlciIsICInICsgaWQgKyAnIiwgdHJ1ZSwgMCknKTsNCiAgICAgICAgICAgIGlucHV0LmNsYXNzTmFtZSA9ICJkZWxldGUiOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICAvLyBBYm9ydA0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImNhbmNlbCIsICJ7ey5idXR0b24uY2FuY2VsfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBzaG93RWxlbWVudCgicG9wdXAiLCBmYWxzZSk7Jyk7DQogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIC8vIFNhdmUNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJzYXZlIiwgInt7LmJ1dHRvbi5zYXZlfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBzYXZlUG9wdXBEYXRhKCJmaWx0ZXIiLCAiJyArIGlkICsgJyIsIGZhbHNlLCAwKScpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSAieG1sdHYiOg0KICAgICAgICAgICAgY29udGVudC5jcmVhdGVIZWFkbGluZShkYXRhVHlwZSk7DQogICAgICAgICAgICAvLyBOYW1lDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAibmFtZSI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3sueG1sdHYubmFtZS5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sueG1sdHYubmFtZS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgLy8gRGVzY3JpcHRpb24NCiAgICAgICAgICAgIHZhciBkYktleSA9ICJkZXNjcmlwdGlvbiI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3sueG1sdHYuZGVzY3JpcHRpb24ucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnhtbHR2LmRlc2NyaXB0aW9uLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBVUkwNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJmaWxlLnNvdXJjZSI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3sueG1sdHYuZmlsZVhNTFRWLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey54bWx0di5maWxlWE1MVFYudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIEludGVyYWN0aW9uDQogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUludGVyYWN0aW9uKCk7DQogICAgICAgICAgICAvLyBEZWxldGUNCiAgICAgICAgICAgIGlmIChkYXRhWyJpZC5wcm92aWRlciJdICE9ICItIikgew0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJkZWxldGUiLCAie3suYnV0dG9uLmRlbGV0ZX19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoInhtbHR2IiwgIicgKyBpZCArICciLCB0cnVlLCAwKScpOw0KICAgICAgICAgICAgICAgIGlucHV0LmNsYXNzTmFtZSA9ICJkZWxldGUiOw0KICAgICAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgLy8gQWJvcnQNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJjYW5jZWwiLCAie3suYnV0dG9uLmNhbmNlbH19Iik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogc2hvd0VsZW1lbnQoInBvcHVwIiwgZmFsc2UpOycpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICAvLyBVcGRhdGUNCiAgICAgICAgICAgIGlmIChkYXRhWyJpZC5wcm92aWRlciJdICE9ICItIikgew0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJ1cGRhdGUiLCAie3suYnV0dG9uLnVwZGF0ZX19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoInhtbHR2IiwgIicgKyBpZCArICciLCBmYWxzZSwgMSknKTsNCiAgICAgICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIC8vIFNhdmUNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJzYXZlIiwgInt7LmJ1dHRvbi5zYXZlfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBzYXZlUG9wdXBEYXRhKCJ4bWx0diIsICInICsgaWQgKyAnIiwgZmFsc2UsIDApJyk7DQogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJ1c2VycyI6DQogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUhlYWRsaW5lKCJ7ey5tYWluTWVudS5pdGVtLnVzZXJzfX0iKTsNCiAgICAgICAgICAgIC8vIFVzZXIgbmFtZQ0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gInVzZXJuYW1lIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey51c2Vycy51c2VybmFtZS5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sudXNlcnMudXNlcm5hbWUudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIE5ldyBQYXJzc3dvcmQNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJwYXNzd29yZCI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJwYXNzd29yZCIsIGRiS2V5LCAiIik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnVzZXJzLnBhc3N3b3JkLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey51c2Vycy5wYXNzd29yZC50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgLy8gQ29uZmlybWF0aW9uDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAiY29uZmlybSI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJwYXNzd29yZCIsIGRiS2V5LCAiIik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnVzZXJzLmNvbmZpcm0ucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnVzZXJzLmNvbmZpcm0udGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIEF1dGhlbnRpY2F0aW9uIFdFQg0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gImF1dGhlbnRpY2F0aW9uLndlYiI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KGRiS2V5KTsNCiAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhW2RiS2V5XTsNCiAgICAgICAgICAgIGlmIChkYXRhWyJkZWZhdWx0VXNlciJdID09IHRydWUpIHsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAiamF2YXNjcmlwdDogcmV0dXJuIGZhbHNlIik7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sudXNlcnMud2ViLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBBdXRoZW50aWNhdGlvbiBQTVMNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJhdXRoZW50aWNhdGlvbi5wbXMiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChkYktleSk7DQogICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YVtkYktleV07DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sudXNlcnMucG1zLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBBdXRoZW50aWNhdGlvbiBNM1UNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJhdXRoZW50aWNhdGlvbi5tM3UiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChkYktleSk7DQogICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YVtkYktleV07DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sudXNlcnMubTN1LnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBBdXRoZW50aWNhdGlvbiBYTUwNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJhdXRoZW50aWNhdGlvbi54bWwiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChkYktleSk7DQogICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YVtkYktleV07DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sudXNlcnMueG1sLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBBdXRoZW50aWNhdGlvbiBBUEkNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJhdXRoZW50aWNhdGlvbi5hcGkiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChkYktleSk7DQogICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YVtkYktleV07DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sudXNlcnMuYXBpLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBJbnRlcmFjdGlvbg0KICAgICAgICAgICAgY29udGVudC5jcmVhdGVJbnRlcmFjdGlvbigpOw0KICAgICAgICAgICAgLy8gRGVsZXRlDQogICAgICAgICAgICBpZiAoZGF0YVsiZGVmYXVsdFVzZXIiXSAhPSB0cnVlICYmIGlkICE9ICItIikgew0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJkZWxldGUiLCAie3suYnV0dG9uLmRlbGV0ZX19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuY2xhc3NOYW1lID0gImRlbGV0ZSI7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoIicgKyBkYXRhVHlwZSArICciLCAiJyArIGlkICsgJyIsIHRydWUsIDApJyk7DQogICAgICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICAvLyBBYm9ydA0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImNhbmNlbCIsICJ7ey5idXR0b24uY2FuY2VsfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBzaG93RWxlbWVudCgicG9wdXAiLCBmYWxzZSk7Jyk7DQogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIC8vIFNhdmUNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJzYXZlIiwgInt7LmJ1dHRvbi5zYXZlfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBzYXZlUG9wdXBEYXRhKCInICsgZGF0YVR5cGUgKyAnIiwgIicgKyBpZCArICciLCAiZmFsc2UiKTsnKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGNhc2UgIm1hcHBpbmciOg0KICAgICAgICAgICAgY29udGVudC5jcmVhdGVIZWFkbGluZSgie3subWFpbk1lbnUuaXRlbS5tYXBwaW5nfX0iKTsNCiAgICAgICAgICAgIC8vIEFjdGl2ZQ0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gIngtYWN0aXZlIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goZGJLZXkpOw0KICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGFbZGJLZXldOw0KICAgICAgICAgICAgaW5wdXQuaWQgPSAiYWN0aXZlIjsNCiAgICAgICAgICAgIC8vaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpDQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRvZ2dsZUNoYW5uZWxTdGF0dXMoJyIgKyBpZCArICInLCB0aGlzKSIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7Lm1hcHBpbmcuYWN0aXZlLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBDaGFubmVsIG5hbWUNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJ4LW5hbWUiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICBpZiAoQlVMS19FRElUID09IHRydWUpIHsNCiAgICAgICAgICAgICAgICBpbnB1dC5zdHlsZS5ib3JkZXIgPSAic29saWQgMXB4IHJlZCI7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJyZWFkb25seSIsICJ0cnVlIik7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3subWFwcGluZy5jaGFubmVsTmFtZS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgY29udGVudC5kZXNjcmlwdGlvbihkYXRhWyJuYW1lIl0pOw0KICAgICAgICAgICAgLy8gRGVzY3JpcHRpb24NCiAgICAgICAgICAgIHZhciBkYktleSA9ICJ4LWRlc2NyaXB0aW9uIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5tYXBwaW5nLmRlc2NyaXB0aW9uLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5tYXBwaW5nLmRlc2NyaXB0aW9uLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBVcGRhdGUgdGhlIGNoYW5uZWwgbmFtZQ0KICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoIl91dWlkLmtleSIpKSB7DQogICAgICAgICAgICAgICAgaWYgKGRhdGFbIl91dWlkLmtleSJdICE9ICIiKSB7DQogICAgICAgICAgICAgICAgICAgIHZhciBkYktleSA9ICJ4LXVwZGF0ZS1jaGFubmVsLW5hbWUiOw0KICAgICAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KGRiS2V5KTsNCiAgICAgICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YVtkYktleV07DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5tYXBwaW5nLnVwZGF0ZUNoYW5uZWxOYW1lLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgLy8gTG9nbyBVUkwgKENoYW5uZWwpIA0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gInR2Zy1sb2dvIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJpZCIsICJjaGFubmVsLWljb24iKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5tYXBwaW5nLmNoYW5uZWxMb2dvLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBDaGFubmVsIGxvZ28gdXBkYXRlDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAieC11cGRhdGUtY2hhbm5lbC1pY29uIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goZGJLZXkpOw0KICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGFbZGJLZXldOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJpZCIsICJ1cGRhdGUtaWNvbiIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJzsgY2hhbmdlQ2hhbm5lbExvZ28oJyIgKyBpZCArICInKTsiKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5tYXBwaW5nLnVwZGF0ZUNoYW5uZWxMb2dvLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBFeHBhbmQgRVBHIGNhdGVnb3J5DQogICAgICAgICAgICB2YXIgZGJLZXkgPSAieC1jYXRlZ29yeSI7DQogICAgICAgICAgICB2YXIgdGV4dCA9IFsiLSIsICJLaWRzIChFbWJ5IG9ubHkpIiwgIk5ld3MiLCAiTW92aWUiLCAiU2VyaWVzIiwgIlNwb3J0cyJdOw0KICAgICAgICAgICAgdmFyIHZhbHVlcyA9IFsiIiwgIktpZHMiLCAiTmV3cyIsICJNb3ZpZSIsICJTZXJpZXMiLCAiU3BvcnRzIl07DQogICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCBkYXRhW2RiS2V5XSwgZGJLZXkpOw0KICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5tYXBwaW5nLmVwZ0NhdGVnb3J5LnRpdGxlfX0iLCBzZWxlY3QpOw0KICAgICAgICAgICAgLy8gTTNVIGdyb3VwIHRpdGxlDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAieC1ncm91cC10aXRsZSI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgIGlucHV0LmRhdGFzZXQub2xkVmFsdWUgPSBkYXRhW2RiS2V5XTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5tYXBwaW5nLm0zdUdyb3VwVGl0bGUudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIGlmIChkYXRhWyJncm91cC10aXRsZSJdICE9IHVuZGVmaW5lZCkgew0KICAgICAgICAgICAgICAgIGNvbnRlbnQuZGVzY3JpcHRpb24oZGF0YVsiZ3JvdXAtdGl0bGUiXSk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBpZiAoZGF0YVsieC11cGRhdGUtY2hhbm5lbC1ncm91cCJdID09IHRydWUpIHsNCiAgICAgICAgICAgICAgICBpbnB1dC5kaXNhYmxlZCA9IHRydWU7DQogICAgICAgICAgICB9DQogICAgICAgICAgICAvLyBVcGRhdGUgY2hhbm5lbCBncm91cCBjaGVja2JveA0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gIngtdXBkYXRlLWNoYW5uZWwtZ3JvdXAiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChkYktleSk7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRvZ2dsZUdyb3VwVXBkYXRlQ2IoJyIgKyBpZCArICInLCB0aGlzKTsiKTsNCiAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhW2RiS2V5XTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5tYXBwaW5nLnVwZGF0ZUNoYW5uZWxHcm91cC50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgY29udGVudC5kZXNjcmlwdGlvbigie3subWFwcGluZy51cGRhdGVDaGFubmVsR3JvdXAuZGVzY3JpcHRpb259fSIpOw0KICAgICAgICAgICAgLy8gWE1MVFYgZmlsZQ0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gJ3gteG1sdHYtZmlsZSc7DQogICAgICAgICAgICBjb25zdCB4bWxUdkZpbGUgPSBkYXRhW2RiS2V5XTsNCiAgICAgICAgICAgIHZhciB4bWxUdiA9IG5ldyBYTUxUVkZpbGUoKTsNCiAgICAgICAgICAgIGNvbnN0IHhtbFR2RmlsZVNlbGVjdCA9IHhtbFR2LmdldEZpbGVzKGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIHhtbFR2RmlsZVNlbGVjdC5zZXRBdHRyaWJ1dGUoJ25hbWUnLCBkYktleSk7DQogICAgICAgICAgICB4bWxUdkZpbGVTZWxlY3Quc2V0QXR0cmlidXRlKCdpZCcsICdwb3B1cC14bWx0dicpOw0KICAgICAgICAgICAgeG1sVHZGaWxlU2VsZWN0LnNldEF0dHJpYnV0ZSgnb25jaGFuZ2UnLCBgamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCc7IHNldFhtbHR2Q2hhbm5lbCgnJHtpZH0nLCB0aGlzKTtgKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCd7ey5tYXBwaW5nLnhtbHR2RmlsZS50aXRsZX19JywgeG1sVHZGaWxlU2VsZWN0KTsNCiAgICAgICAgICAgIC8vIFhNTFRWIE1hcHBpbmcNCiAgICAgICAgICAgIHZhciBkYktleSA9ICd4LW1hcHBpbmcnOw0KICAgICAgICAgICAgdmFyIHhtbFR2ID0gbmV3IFhNTFRWRmlsZSgpOw0KICAgICAgICAgICAgY29uc3QgY3VycmVudFhtbFR2SWQgPSBkYXRhW2RiS2V5XTsNCiAgICAgICAgICAgIGNvbnN0IFt4bWxUdklkQ29udGFpbmVyLCB4bWxUdklkSW5wdXQsIHhtbFR2SWREYXRhbGlzdF0gPSB4bWxUdi5uZXdYbWxUdklkUGlja2VyKHhtbFR2RmlsZSwgY3VycmVudFhtbFR2SWQpOw0KICAgICAgICAgICAgeG1sVHZJZENvbnRhaW5lci5zZXRBdHRyaWJ1dGUoJ2lkJywgJ3htbHR2LWlkLXBpY2tlci1jb250YWluZXInKTsNCiAgICAgICAgICAgIHhtbFR2SWRJbnB1dC5zZXRBdHRyaWJ1dGUoJ2xpc3QnLCAneG1sdHYtaWQtcGlja2VyLWRhdGFsaXN0Jyk7DQogICAgICAgICAgICB4bWxUdklkSW5wdXQuc2V0QXR0cmlidXRlKCduYW1lJywgJ3gtbWFwcGluZycpOyAvLyBTaG91bGQgc3RheSB4LW1hcHBpbmcgYXMgaXQgd2lsbCBiZSB1c2VkIGluIGRvbmVQb3B1cERhdGEgdG8gbWFrZSBhIHNlcnZlciByZXF1ZXN0DQogICAgICAgICAgICB4bWxUdklkSW5wdXQuc2V0QXR0cmlidXRlKCdpZCcsICd4bWx0di1pZC1waWNrZXItaW5wdXQnKTsNCiAgICAgICAgICAgIHhtbFR2SWRJbnB1dC5zZXRBdHRyaWJ1dGUoJ29uY2hhbmdlJywgYGphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnOyBjaGVja1htbHR2Q2hhbm5lbCgnJHtpZH0nLCB0aGlzLnZhbHVlLCAnJHt4bWxUdkZpbGV9Jyk7YCk7DQogICAgICAgICAgICB4bWxUdklkRGF0YWxpc3Quc2V0QXR0cmlidXRlKCdpZCcsICd4bWx0di1pZC1waWNrZXItZGF0YWxpc3QnKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCd7ey5tYXBwaW5nLnhtbHR2Q2hhbm5lbC50aXRsZX19JywgeG1sVHZJZENvbnRhaW5lcik7DQogICAgICAgICAgICAvLyBUaW1lc2hpZnQNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJ4LXRpbWVzaGlmdCI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3subWFwcGluZy50aW1lc2hpZnQucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJpZCIsICJ0aW1lc2hpZnQiKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5tYXBwaW5nLnRpbWVzaGlmdC50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgLy8gSW50ZXJhY3Rpb24NCiAgICAgICAgICAgIGNvbnRlbnQuY3JlYXRlSW50ZXJhY3Rpb24oKTsNCiAgICAgICAgICAgIC8vIFVwbG9hZCBsb2dvDQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAiY2FuY2VsIiwgInt7LmJ1dHRvbi51cGxvYWRMb2dvfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiB1cGxvYWRMb2dvKCk7Jyk7DQogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIC8vIEFib3J0DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAiY2FuY2VsIiwgInt7LmJ1dHRvbi5jYW5jZWx9fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IHNob3dFbGVtZW50KCJwb3B1cCIsIGZhbHNlKTsnKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgLy8gRmluaXNoZWQNCiAgICAgICAgICAgIHZhciBpZHMgPSBbXTsNCiAgICAgICAgICAgIGlkcyA9IGdldEFsbFNlbGVjdGVkQ2hhbm5lbHMoKTsNCiAgICAgICAgICAgIGlmIChpZHMubGVuZ3RoID09IDApIHsNCiAgICAgICAgICAgICAgICBpZHMucHVzaChpZCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAic2F2ZSIsICJ7ey5idXR0b24uZG9uZX19Iik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogZG9uZVBvcHVwRGF0YSgiJyArIGRhdGFUeXBlICsgJyIsICInICsgaWRzICsgJyIsICJmYWxzZSIpOycpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgIGJyZWFrOw0KICAgIH0NCiAgICBzaG93UG9wVXBFbGVtZW50KCdwb3B1cC1jdXN0b20nKTsNCn0NCmNsYXNzIFhNTFRWRmlsZSB7DQogICAgZ2V0RmlsZXMoc2V0KSB7DQogICAgICAgIGxldCBmaWxlSURzID0gZ2V0T3duT2JqUHJvcHMoU0VSVkVSWyJ4ZXBnIl1bInhtbHR2TWFwIl0pOw0KICAgICAgICBsZXQgdmFsdWVzID0gbmV3IEFycmF5KCItIik7DQogICAgICAgIGxldCB0ZXh0ID0gbmV3IEFycmF5KCItIik7DQogICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgZmlsZUlEcy5sZW5ndGg7IGkrKykgew0KICAgICAgICAgICAgaWYgKGZpbGVJRHNbaV0gIT0gInhUZVZlIER1bW15Iikgew0KICAgICAgICAgICAgICAgIHZhbHVlcy5wdXNoKGdldFZhbHVlRnJvbVByb3ZpZGVyRmlsZShmaWxlSURzW2ldLCAieG1sdHYiLCAiZmlsZS54dGV2ZSIpKTsNCiAgICAgICAgICAgICAgICB0ZXh0LnB1c2goZ2V0VmFsdWVGcm9tUHJvdmlkZXJGaWxlKGZpbGVJRHNbaV0sICJ4bWx0diIsICJuYW1lIikpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgZWxzZSB7DQogICAgICAgICAgICAgICAgdmFsdWVzLnB1c2goZmlsZUlEc1tpXSk7DQogICAgICAgICAgICAgICAgdGV4dC5wdXNoKGZpbGVJRHNbaV0pOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQogICAgICAgIGxldCBzZWxlY3QgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJTRUxFQ1QiKTsNCiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0ZXh0Lmxlbmd0aDsgaSsrKSB7DQogICAgICAgICAgICB2YXIgb3B0aW9uID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiT1BUSU9OIik7DQogICAgICAgICAgICBvcHRpb24uc2V0QXR0cmlidXRlKCJ2YWx1ZSIsIHZhbHVlc1tpXSk7DQogICAgICAgICAgICBvcHRpb24uaW5uZXJUZXh0ID0gdGV4dFtpXTsNCiAgICAgICAgICAgIHNlbGVjdC5hcHBlbmRDaGlsZChvcHRpb24pOw0KICAgICAgICB9DQogICAgICAgIGlmIChzZXQgIT0gIiIpIHsNCiAgICAgICAgICAgIHNlbGVjdC52YWx1ZSA9IHNldDsNCiAgICAgICAgfQ0KICAgICAgICByZXR1cm4gc2VsZWN0Ow0KICAgIH0NCiAgICAvLyBUT0RPOiBEaXNwbGF5IEZVTEwgbGlzdCwgc2VlOg0KICAgIC8vID4gaHR0cHM6Ly9zdGFja292ZXJmbG93LmNvbS9xdWVzdGlvbnMvMzc0Nzg3MjcvaG93LWNhbi1pLW1ha2UtYS1icm93c2VyLWRpc3BsYXktYWxsLWRhdGFsaXN0LW9wdGlvbnMtd2hlbi1hLWRlZmF1bHQtdmFsdWUtaXMtc2UNCiAgICAvLyA+IGh0dHBzOi8vd3d3LmhvbmdraWF0LmNvbS9ibG9nL3NlYXJjaC1zZWxlY3QtdXNpbmctZGF0YWxpc3QvDQogICAgLyoqDQogICAgICogQHBhcmFtIHhtbFR2RmlsZSBYTUwgZmlsZSBwYXRoIHRvIGdldCBFUEcgZnJvbS4NCiAgICAgKiBAcGFyYW0gY3VycmVudFhtbFR2SWQgQ3VycmVudCBYTUxUViBJRCB0byBzZXQgaW5pdGlhbCBpbnB1dCB2YWx1ZSB0by4NCiAgICAgKiBAcmV0dXJucyBBcnJheSBvZiwgc2VxdWVudGlhbGx5Og0KICAgICAqIDEpIENvbnRhaW5lciBvZiB0aGUgcGlja2VyLg0KICAgICAqIDIpIElucHV0IGZpZWxkIHRvIHR5cGUgYXQgYW5kIGdldCBjaG9pY2UgZnJvbS4NCiAgICAgKiAzKSBEYXRhbGlzdCBjb250YWluaW5nIGV2ZXJ5IG9wdGlvbi4NCiAgICAgKi8NCiAgICBuZXdYbWxUdklkUGlja2VyKHhtbFR2RmlsZSwgY3VycmVudFhtbFR2SWQpIHsNCiAgICAgICAgY29uc3QgY29udGFpbmVyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7DQogICAgICAgIGNvbnN0IGlucHV0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnaW5wdXQnKTsNCiAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCd0eXBlJywgJ3RleHQnKTsNCiAgICAgICAgLy8gSW5pdGlhbGx5LCBzZXQgdmFsdWUgdG8gJy0nIGlmIGlucHV0IGlzIGVtcHR5DQogICAgICAgIGlucHV0LnZhbHVlID0gKGN1cnJlbnRYbWxUdklkKSA/IGN1cnJlbnRYbWxUdklkIDogJy0nOw0KICAgICAgICAvLyBXaGVuIGlucHV0IGlzIGZvY3VzZWQsIHJlbW92ZSAnLScgZnJvbSBpdA0KICAgICAgICBpbnB1dC5hZGRFdmVudExpc3RlbmVyKCdmb2N1cycsIChldnQpID0+IHsNCiAgICAgICAgICAgIGNvbnN0IHRhcmdldCA9IGV2dC50YXJnZXQ7DQogICAgICAgICAgICB0YXJnZXQudmFsdWUgPSAodGFyZ2V0LnZhbHVlID09PSAnLScpID8gJycgOiB0YXJnZXQudmFsdWU7DQogICAgICAgIH0pOw0KICAgICAgICAvLyBXaGVuIGlucHV0IGxvc2UgZm9jdXMgb3IgdGFrZSBhIHZhbHVlLCBpZiBpdCdzIGVtcHR5LCBzZXQgdmFsdWUgdG8gJy0nDQogICAgICAgIGlucHV0LmFkZEV2ZW50TGlzdGVuZXIoJ2JsdXInLCBzZXRGYWxsYmFja1ZhbHVlKTsNCiAgICAgICAgaW5wdXQuYWRkRXZlbnRMaXN0ZW5lcignY2hhbmdlJywgc2V0RmFsbGJhY2tWYWx1ZSk7DQogICAgICAgIGZ1bmN0aW9uIHNldEZhbGxiYWNrVmFsdWUoZXZ0KSB7DQogICAgICAgICAgICBjb25zdCB0YXJnZXQgPSBldnQudGFyZ2V0Ow0KICAgICAgICAgICAgdGFyZ2V0LnZhbHVlID0gKHRhcmdldC52YWx1ZSkgPyB0YXJnZXQudmFsdWUgOiAnLSc7DQogICAgICAgIH0NCiAgICAgICAgY29udGFpbmVyLmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgY29uc3QgZGF0YWxpc3QgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkYXRhbGlzdCcpOw0KICAgICAgICBjb25zdCBvcHRpb24gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdvcHRpb24nKTsNCiAgICAgICAgb3B0aW9uLnNldEF0dHJpYnV0ZSgndmFsdWUnLCAnLScpOw0KICAgICAgICBvcHRpb24uaW5uZXJUZXh0ID0gJy0nOw0KICAgICAgICBkYXRhbGlzdC5hcHBlbmRDaGlsZChvcHRpb24pOw0KICAgICAgICBjb25zdCBlcGcgPSBTRVJWRVJbJ3hlcGcnXVsneG1sdHZNYXAnXVt4bWxUdkZpbGVdOw0KICAgICAgICBpZiAoZXBnKSB7DQogICAgICAgICAgICBjb25zdCBwcm9ncmFtSWRzID0gZ2V0T3duT2JqUHJvcHMoZXBnKTsNCiAgICAgICAgICAgIHByb2dyYW1JZHMuZm9yRWFjaCgocHJvZ3JhbUlkKSA9PiB7DQogICAgICAgICAgICAgICAgY29uc3QgcHJvZ3JhbSA9IGVwZ1twcm9ncmFtSWRdOw0KICAgICAgICAgICAgICAgIGlmIChwcm9ncmFtLmhhc093blByb3BlcnR5KCdkaXNwbGF5LW5hbWVzJykpIHsNCiAgICAgICAgICAgICAgICAgICAgcHJvZ3JhbVsnZGlzcGxheS1uYW1lcyddLmZvckVhY2goKGRpc3BsYXlOYW1lKSA9PiB7DQogICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBvcHRpb24gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdvcHRpb24nKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIG9wdGlvbi5zZXRBdHRyaWJ1dGUoJ3ZhbHVlJywgcHJvZ3JhbUlkKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIG9wdGlvbi5pbm5lclRleHQgPSBkaXNwbGF5TmFtZVsnVmFsdWUnXTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGRhdGFsaXN0LmFwcGVuZENoaWxkKG9wdGlvbik7DQogICAgICAgICAgICAgICAgICAgIH0pOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICAgICAgY29uc3Qgb3B0aW9uID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnb3B0aW9uJyk7DQogICAgICAgICAgICAgICAgICAgIG9wdGlvbi5zZXRBdHRyaWJ1dGUoJ3ZhbHVlJywgcHJvZ3JhbUlkKTsNCiAgICAgICAgICAgICAgICAgICAgb3B0aW9uLmlubmVyVGV4dCA9ICctJzsNCiAgICAgICAgICAgICAgICAgICAgZGF0YWxpc3QuYXBwZW5kQ2hpbGQob3B0aW9uKTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9KTsNCiAgICAgICAgfQ0KICAgICAgICBjb250YWluZXIuYXBwZW5kQ2hpbGQoZGF0YWxpc3QpOw0KICAgICAgICByZXR1cm4gW2NvbnRhaW5lciwgaW5wdXQsIGRhdGFsaXN0XTsNCiAgICB9DQp9DQpmdW5jdGlvbiBnZXRWYWx1ZUZyb21Qcm92aWRlckZpbGUoZmlsZSwgZmlsZVR5cGUsIGtleSkgew0KICAgIGlmIChmaWxlID09ICJ4VGVWZSBEdW1teSIpIHsNCiAgICAgICAgcmV0dXJuIGZpbGU7DQogICAgfQ0KICAgIGxldCBmaWxlSUQ7DQogICAgbGV0IGluZGljYXRvciA9IGZpbGUuY2hhckF0KDApOw0KICAgIHN3aXRjaCAoaW5kaWNhdG9yKSB7DQogICAgICAgIGNhc2UgIk0iOg0KICAgICAgICAgICAgZmlsZVR5cGUgPSAibTN1IjsNCiAgICAgICAgICAgIGZpbGVJRCA9IGZpbGU7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSAiSCI6DQogICAgICAgICAgICBmaWxlVHlwZSA9ICJoZGhyIjsNCiAgICAgICAgICAgIGZpbGVJRCA9IGZpbGU7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSAiWCI6DQogICAgICAgICAgICBmaWxlVHlwZSA9ICJ4bWx0diI7DQogICAgICAgICAgICBmaWxlSUQgPSBmaWxlLnN1YnN0cmluZygwLCBmaWxlLmxhc3RJbmRleE9mKCcuJykpOw0KICAgICAgICAgICAgYnJlYWs7DQogICAgfQ0KICAgIGlmIChTRVJWRVJbInNldHRpbmdzIl1bImZpbGVzIl1bZmlsZVR5cGVdLmhhc093blByb3BlcnR5KGZpbGVJRCkgPT0gdHJ1ZSkgew0KICAgICAgICB2YXIgZGF0YSA9IFNFUlZFUlsic2V0dGluZ3MiXVsiZmlsZXMiXVtmaWxlVHlwZV1bZmlsZUlEXTsNCiAgICAgICAgcmV0dXJuIGRhdGFba2V5XTsNCiAgICB9DQogICAgcmV0dXJuOw0KfQ0KZnVuY3Rpb24gc2V0WG1sdHZDaGFubmVsKGVwZ01hcElkLCB4bWxUdkZpbGVTZWxlY3QpIHsNCiAgICBjb25zdCB4bWxUdiA9IG5ldyBYTUxUVkZpbGUoKTsNCiAgICBjb25zdCBuZXdYbWxUdkZpbGUgPSB4bWxUdkZpbGVTZWxlY3QudmFsdWU7DQogICAgLy8gUmVtb3ZlIG9sZCBYTUxUViBJRCBzZWxlY3Rpb24gYm94DQogICAgY29uc3QgeG1sVHZJZFBpY2tlclBhcmVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd4bWx0di1pZC1waWNrZXItY29udGFpbmVyJykucGFyZW50RWxlbWVudDsNCiAgICB4bWxUdklkUGlja2VyUGFyZW50LmlubmVySFRNTCA9ICcnOw0KICAgIC8vIENyZWF0ZSBuZXcgWE1MVFYgSUQgc2VsZWN0aW9uIGJveA0KICAgIGNvbnN0IHR2Z0lkID0gU0VSVkVSWyd4ZXBnJ11bJ2VwZ01hcHBpbmcnXVtlcGdNYXBJZF1bJ3R2Zy1pZCddOw0KICAgIGNvbnN0IFt4bWxUdklkQ29udGFpbmVyLCB4bWxUdklkSW5wdXQsIHhtbFR2SWREYXRhbGlzdF0gPSB4bWxUdi5uZXdYbWxUdklkUGlja2VyKG5ld1htbFR2RmlsZSwgdHZnSWQpOw0KICAgIHhtbFR2SWRDb250YWluZXIuc2V0QXR0cmlidXRlKCdpZCcsICd4bWx0di1pZC1waWNrZXItY29udGFpbmVyJyk7DQogICAgeG1sVHZJZElucHV0LnNldEF0dHJpYnV0ZSgnbGlzdCcsICd4bWx0di1pZC1waWNrZXItZGF0YWxpc3QnKTsNCiAgICB4bWxUdklkSW5wdXQuc2V0QXR0cmlidXRlKCduYW1lJywgJ3gtbWFwcGluZycpOyAvLyBTaG91bGQgc3RheSB4LW1hcHBpbmcgYXMgaXQgd2lsbCBiZSB1c2VkIGluIGRvbmVQb3B1cERhdGEgdG8gbWFrZSBhIHNlcnZlciByZXF1ZXN0DQogICAgeG1sVHZJZElucHV0LnNldEF0dHJpYnV0ZSgnaWQnLCAneG1sdHYtaWQtcGlja2VyLWlucHV0Jyk7DQogICAgeG1sVHZJZElucHV0LnNldEF0dHJpYnV0ZSgnb25jaGFuZ2UnLCBgamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCc7IGNoZWNrWG1sdHZDaGFubmVsKCcke2VwZ01hcElkfScsIHRoaXMudmFsdWUsICcke25ld1htbFR2RmlsZX0nKTtgKTsNCiAgICB4bWxUdklkSW5wdXQuY2xhc3NMaXN0LmFkZCgnY2hhbmdlZCcpOw0KICAgIHhtbFR2SWREYXRhbGlzdC5zZXRBdHRyaWJ1dGUoJ2lkJywgJ3htbHR2LWlkLXBpY2tlci1kYXRhbGlzdCcpOw0KICAgIC8vIEFkZCBuZXcgWE1MVFYgSUQgc2VsZWN0aW9uIGJveCB0byBpdCdzIHBhcmVudA0KICAgIHhtbFR2SWRQaWNrZXJQYXJlbnQuYXBwZW5kQ2hpbGQoeG1sVHZJZENvbnRhaW5lcik7DQogICAgY2hlY2tYbWx0dkNoYW5uZWwoZXBnTWFwSWQsIHhtbFR2SWRJbnB1dC52YWx1ZSwgbmV3WG1sVHZGaWxlKTsNCn0NCmZ1bmN0aW9uIGNoZWNrWG1sdHZDaGFubmVsKGVwZ01hcElkLCBuZXdYbWxUdklkLCB4bWxUdkZpbGUpIHsNCiAgICBjb25zdCBjaGFubmVsQWN0aXZlQ2IgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYWN0aXZlJyk7DQogICAgY29uc3QgY2hhbm5lbEFjdGl2ZSA9IG5ld1htbFR2SWQgIT0gJy0nOw0KICAgIGNoYW5uZWxBY3RpdmVDYi5jaGVja2VkID0gY2hhbm5lbEFjdGl2ZTsNCiAgICBjaGFubmVsQWN0aXZlQ2IuY2xhc3NOYW1lID0gJ2NoYW5nZWQnOw0KICAgIGlmICh4bWxUdkZpbGUgIT0gJ3hUZVZlIER1bW15JyAmJiBjaGFubmVsQWN0aXZlID09IHRydWUpIHsNCiAgICAgICAgY2hhbmdlQ2hhbm5lbExvZ28oZXBnTWFwSWQpOw0KICAgICAgICByZXR1cm47DQogICAgfQ0KICAgIGlmICh4bWxUdkZpbGUgPT0gJ3hUZVZlIER1bW15Jykgew0KICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndXBkYXRlLWljb24nKS5jaGVja2VkID0gZmFsc2U7DQogICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd1cGRhdGUtaWNvbicpLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJzsNCiAgICB9DQp9DQpmdW5jdGlvbiBjaGFuZ2VDaGFubmVsTG9nbyhlcGdNYXBJZCkgew0KICAgIGNvbnN0IGNoYW5uZWwgPSBTRVJWRVJbJ3hlcGcnXVsnZXBnTWFwcGluZyddW2VwZ01hcElkXTsNCiAgICBjb25zdCB4bWxUdkZpbGVTZWxlY3QgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncG9wdXAteG1sdHYnKTsNCiAgICBjb25zdCB4bWxUdkZpbGUgPSB4bWxUdkZpbGVTZWxlY3Qub3B0aW9uc1t4bWxUdkZpbGVTZWxlY3Quc2VsZWN0ZWRJbmRleF0udmFsdWU7DQogICAgY29uc3QgeG1sVHZJZElucHV0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3htbHR2LWlkLXBpY2tlci1pbnB1dCcpOw0KICAgIGNvbnN0IG5ld1htbFR2SWQgPSB4bWxUdklkSW5wdXQudmFsdWU7DQogICAgY29uc3QgdXBkYXRlTG9nbyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd1cGRhdGUtaWNvbicpLmNoZWNrZWQ7DQogICAgbGV0IGxvZ287DQogICAgaWYgKHVwZGF0ZUxvZ28gPT0gdHJ1ZSAmJiB4bWxUdkZpbGUgIT0gJ3hUZVZlIER1bW15Jykgew0KICAgICAgICBpZiAoU0VSVkVSWyd4ZXBnJ11bJ3htbHR2TWFwJ11beG1sVHZGaWxlXS5oYXNPd25Qcm9wZXJ0eShuZXdYbWxUdklkKSkgew0KICAgICAgICAgICAgbG9nbyA9IFNFUlZFUlsneGVwZyddWyd4bWx0dk1hcCddW3htbFR2RmlsZV1bbmV3WG1sVHZJZF1bJ2ljb24nXTsNCiAgICAgICAgfQ0KICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgIGxvZ28gPSBjaGFubmVsWyd0dmctbG9nbyddOw0KICAgICAgICB9DQogICAgICAgIHZhciBsb2dvSW5wdXQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY2hhbm5lbC1pY29uJyk7DQogICAgICAgIGxvZ29JbnB1dC52YWx1ZSA9IGxvZ287DQogICAgICAgIGlmIChCVUxLX0VESVQgPT0gZmFsc2UpIHsNCiAgICAgICAgICAgIGxvZ29JbnB1dC5jbGFzc05hbWUgPSAnY2hhbmdlZCc7DQogICAgICAgIH0NCiAgICB9DQp9DQpmdW5jdGlvbiBzYXZlUG9wdXBEYXRhKGRhdGFUeXBlLCBpZCwgcmVtb3ZlLCBvcHRpb24pIHsNCiAgICBpZiAoZGF0YVR5cGUgPT0gIm1hcHBpbmciKSB7DQogICAgICAgIGxldCBkYXRhID0ge307DQogICAgICAgIGxldCBjbWQgPSAic2F2ZUVwZ01hcHBpbmciOw0KICAgICAgICBkYXRhWyJlcGdNYXBwaW5nIl0gPSBTRVJWRVJbInhlcGciXVsiZXBnTWFwcGluZyJdOw0KICAgICAgICBsZXQgc2VydmVyID0gbmV3IFNlcnZlcihjbWQpOw0KICAgICAgICBzZXJ2ZXIucmVxdWVzdChkYXRhKTsNCiAgICAgICAgZGVsZXRlIFVORE9bImVwZ01hcHBpbmciXTsNCiAgICAgICAgcmV0dXJuOw0KICAgIH0NCiAgICBsZXQgZGl2ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInBvcHVwLWN1c3RvbSIpOw0KICAgIGxldCBpbnB1dHMgPSBkaXYuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlRBQkxFIilbMF0uZ2V0RWxlbWVudHNCeVRhZ05hbWUoIklOUFVUIik7DQogICAgbGV0IHNlbGVjdHMgPSBkaXYuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlRBQkxFIilbMF0uZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlNFTEVDVCIpOw0KICAgIGxldCBpbnB1dCA9IHt9Ow0KICAgIGxldCBjb25maXJtTXNnOw0KICAgIGZvciAobGV0IGkgPSAwOyBpIDwgc2VsZWN0cy5sZW5ndGg7IGkrKykgew0KICAgICAgICB2YXIgbmFtZTsNCiAgICAgICAgbmFtZSA9IHNlbGVjdHNbaV0ubmFtZTsNCiAgICAgICAgdmFyIHZhbHVlID0gc2VsZWN0c1tpXS52YWx1ZTsNCiAgICAgICAgc3dpdGNoIChuYW1lKSB7DQogICAgICAgICAgICBjYXNlICJ0dW5lciI6DQogICAgICAgICAgICAgICAgaW5wdXRbbmFtZV0gPSBwYXJzZUludCh2YWx1ZSk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBkZWZhdWx0Og0KICAgICAgICAgICAgICAgIGlucHV0W25hbWVdID0gdmFsdWU7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIH0NCiAgICB9DQogICAgZm9yIChsZXQgaSA9IDA7IGkgPCBpbnB1dHMubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgc3dpdGNoIChpbnB1dHNbaV0udHlwZSkgew0KICAgICAgICAgICAgY2FzZSAiY2hlY2tib3giOg0KICAgICAgICAgICAgICAgIG5hbWUgPSBpbnB1dHNbaV0ubmFtZTsNCiAgICAgICAgICAgICAgICBpbnB1dFtuYW1lXSA9IGlucHV0c1tpXS5jaGVja2VkOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAidGV4dCI6DQogICAgICAgICAgICBjYXNlICJoaWRkZW4iOg0KICAgICAgICAgICAgY2FzZSAicGFzc3dvcmQiOg0KICAgICAgICAgICAgICAgIG5hbWUgPSBpbnB1dHNbaV0ubmFtZTsNCiAgICAgICAgICAgICAgICBzd2l0Y2ggKG5hbWUpIHsNCiAgICAgICAgICAgICAgICAgICAgY2FzZSAidHVuZXIiOg0KICAgICAgICAgICAgICAgICAgICAgICAgaW5wdXRbbmFtZV0gPSBwYXJzZUludChpbnB1dHNbaV0udmFsdWUpOw0KICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICAgICAgICAgICAgICBpbnB1dFtuYW1lXSA9IGlucHV0c1tpXS52YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgfQ0KICAgIH0NCiAgICBsZXQgZGF0YSA9IHt9Ow0KICAgIGxldCBjbWQ7DQogICAgaWYgKHJlbW92ZSA9PSB0cnVlKSB7DQogICAgICAgIGlucHV0WyJkZWxldGUiXSA9IHRydWU7DQogICAgfQ0KICAgIHN3aXRjaCAoZGF0YVR5cGUpIHsNCiAgICAgICAgY2FzZSAidXNlcnMiOg0KICAgICAgICAgICAgY29uZmlybU1zZyA9ICJEZWxldGUgdGhpcyB1c2VyPyI7DQogICAgICAgICAgICBpZiAoaWQgPT0gIi0iKSB7DQogICAgICAgICAgICAgICAgY21kID0gInNhdmVOZXdVc2VyIjsNCiAgICAgICAgICAgICAgICBkYXRhWyJ1c2VyRGF0YSJdID0gaW5wdXQ7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICBjbWQgPSAic2F2ZVVzZXJEYXRhIjsNCiAgICAgICAgICAgICAgICBsZXQgZCA9IHt9Ow0KICAgICAgICAgICAgICAgIGRbaWRdID0gaW5wdXQ7DQogICAgICAgICAgICAgICAgZGF0YVsidXNlckRhdGEiXSA9IGQ7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSAibTN1IjoNCiAgICAgICAgICAgIGNvbmZpcm1Nc2cgPSAiRGVsZXRlIHRoaXMgcGxheWxpc3Q/IjsNCiAgICAgICAgICAgIHN3aXRjaCAob3B0aW9uKSB7DQogICAgICAgICAgICAgICAgLy8gUG9wdXA6IFNhdmUNCiAgICAgICAgICAgICAgICBjYXNlIDA6DQogICAgICAgICAgICAgICAgICAgIGNtZCA9ICJzYXZlRmlsZXNNM1UiOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICAvLyBQb3B1cDogVXBkYXRlDQogICAgICAgICAgICAgICAgY2FzZSAxOg0KICAgICAgICAgICAgICAgICAgICBjbWQgPSAidXBkYXRlRmlsZU0zVSI7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgZGF0YVsiZmlsZXMiXSA9IHt9Ow0KICAgICAgICAgICAgZGF0YVsiZmlsZXMiXVtkYXRhVHlwZV0gPSB7fTsNCiAgICAgICAgICAgIGRhdGFbImZpbGVzIl1bZGF0YVR5cGVdW2lkXSA9IGlucHV0Ow0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGNhc2UgImhkaHIiOg0KICAgICAgICAgICAgY29uZmlybU1zZyA9ICJEZWxldGUgdGhpcyBIREhvbWVSdW4gdHVuZXI/IjsNCiAgICAgICAgICAgIHN3aXRjaCAob3B0aW9uKSB7DQogICAgICAgICAgICAgICAgLy8gUG9wdXA6IFNhdmUNCiAgICAgICAgICAgICAgICBjYXNlIDA6DQogICAgICAgICAgICAgICAgICAgIGNtZCA9ICJzYXZlRmlsZXNIREhSIjsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgLy8gUG9wdXA6IFVwZGF0ZQ0KICAgICAgICAgICAgICAgIGNhc2UgMToNCiAgICAgICAgICAgICAgICAgICAgY21kID0gInVwZGF0ZUZpbGVIREhSIjsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBkYXRhWyJmaWxlcyJdID0ge307DQogICAgICAgICAgICBkYXRhWyJmaWxlcyJdW2RhdGFUeXBlXSA9IHt9Ow0KICAgICAgICAgICAgZGF0YVsiZmlsZXMiXVtkYXRhVHlwZV1baWRdID0gaW5wdXQ7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSAieG1sdHYiOg0KICAgICAgICAgICAgY29uZmlybU1zZyA9ICJEZWxldGUgdGhpcyBYTUxUViBmaWxlPyI7DQogICAgICAgICAgICBzd2l0Y2ggKG9wdGlvbikgew0KICAgICAgICAgICAgICAgIC8vIFBvcHVwOiBTYXZlDQogICAgICAgICAgICAgICAgY2FzZSAwOg0KICAgICAgICAgICAgICAgICAgICBjbWQgPSAic2F2ZUZpbGVzWE1MVFYiOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICAvLyBQb3B1cDogVXBkYXRlDQogICAgICAgICAgICAgICAgY2FzZSAxOg0KICAgICAgICAgICAgICAgICAgICBjbWQgPSAidXBkYXRlRmlsZVhNTFRWIjsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBkYXRhWyJmaWxlcyJdID0ge307DQogICAgICAgICAgICBkYXRhWyJmaWxlcyJdW2RhdGFUeXBlXSA9IHt9Ow0KICAgICAgICAgICAgZGF0YVsiZmlsZXMiXVtkYXRhVHlwZV1baWRdID0gaW5wdXQ7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSAiZmlsdGVyIjoNCiAgICAgICAgICAgIGNvbmZpcm1Nc2cgPSAiRGVsZXRlIHRoaXMgZmlsdGVyPyI7DQogICAgICAgICAgICBjbWQgPSAic2F2ZUZpbHRlciI7DQogICAgICAgICAgICBkYXRhWyJmaWx0ZXIiXSA9IHt9Ow0KICAgICAgICAgICAgZGF0YVsiZmlsdGVyIl1baWRdID0gaW5wdXQ7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgIHJldHVybjsNCiAgICB9DQogICAgaWYgKHJlbW92ZSA9PSB0cnVlKSB7DQogICAgICAgIGlmICghY29uZmlybShjb25maXJtTXNnKSkgew0KICAgICAgICAgICAgc2hvd0VsZW1lbnQoInBvcHVwIiwgZmFsc2UpOw0KICAgICAgICAgICAgcmV0dXJuOw0KICAgICAgICB9DQogICAgfQ0KICAgIGxldCBzZXJ2ZXIgPSBuZXcgU2VydmVyKGNtZCk7DQogICAgc2VydmVyLnJlcXVlc3QoZGF0YSk7DQp9DQpmdW5jdGlvbiBkb25lUG9wdXBEYXRhKGRhdGFUeXBlLCBpZHNTdHIpIHsNCiAgICBsZXQgaWRzID0gaWRzU3RyLnNwbGl0KCcsJyk7DQogICAgbGV0IGRpdiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJwb3B1cC1jdXN0b20iKTsNCiAgICBsZXQgaW5wdXRzID0gZGl2LmdldEVsZW1lbnRzQnlDbGFzc05hbWUoImNoYW5nZWQiKTsNCiAgICBpZHMuZm9yRWFjaChpZCA9PiB7DQogICAgICAgIGxldCBpbnB1dDsNCiAgICAgICAgaW5wdXQgPSBTRVJWRVJbInhlcGciXVsiZXBnTWFwcGluZyJdW2lkXTsNCiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBpbnB1dHMubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgICAgIGxldCBuYW1lOw0KICAgICAgICAgICAgbGV0IHZhbHVlOw0KICAgICAgICAgICAgc3dpdGNoIChpbnB1dHNbaV0udGFnTmFtZSkgew0KICAgICAgICAgICAgICAgIGNhc2UgIklOUFVUIjoNCiAgICAgICAgICAgICAgICAgICAgc3dpdGNoIChpbnB1dHNbaV0udHlwZSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAiY2hlY2tib3giOg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWUgPSBpbnB1dHNbaV0ubmFtZTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IGlucHV0c1tpXS5jaGVja2VkOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlucHV0W25hbWVdID0gdmFsdWU7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgICAgICAgICBjYXNlICJ0ZXh0IjoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lID0gaW5wdXRzW2ldLm5hbWU7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSBpbnB1dHNbaV0udmFsdWU7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5wdXRbbmFtZV0gPSB2YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBjYXNlICJTRUxFQ1QiOg0KICAgICAgICAgICAgICAgICAgICBuYW1lID0gaW5wdXRzW2ldLm5hbWU7DQogICAgICAgICAgICAgICAgICAgIHZhbHVlID0gaW5wdXRzW2ldLnZhbHVlOw0KICAgICAgICAgICAgICAgICAgICBpbnB1dFtuYW1lXSA9IHZhbHVlOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIHN3aXRjaCAobmFtZSkgew0KICAgICAgICAgICAgICAgIGNhc2UgInR2Zy1sb2dvIjoNCiAgICAgICAgICAgICAgICAgICAgLy8oZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpLmNoaWxkTm9kZXNbMl0uZmlyc3RDaGlsZCBhcyBIVE1MRWxlbWVudCkuc2V0QXR0cmlidXRlKCJzcmMiLCB2YWx1ZSkNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAieC1uYW1lIjoNCiAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpLmNoaWxkTm9kZXNbM10uZmlyc3RDaGlsZC5pbm5lckhUTUwgPSB2YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAieC1jYXRlZ29yeSI6DQogICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5jaGlsZE5vZGVzWzNdLmZpcnN0Q2hpbGQuY2xhc3NOYW1lID0gdmFsdWU7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgIngtZ3JvdXAtdGl0bGUiOg0KICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkuY2hpbGROb2Rlc1s1XS5maXJzdENoaWxkLmlubmVySFRNTCA9IHZhbHVlOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBjYXNlICJ4LXhtbHR2LWZpbGUiOg0KICAgICAgICAgICAgICAgICAgICBpZiAodmFsdWUgIT0gInhUZVZlIER1bW15IiAmJiB2YWx1ZSAhPSAiLSIpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlID0gZ2V0VmFsdWVGcm9tUHJvdmlkZXJGaWxlKHZhbHVlLCAieG1sdHYiLCAibmFtZSIpOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIGlmICh2YWx1ZSA9PSAiLSIpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGlucHV0WyJ4LWFjdGl2ZSJdID0gZmFsc2U7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpLmNoaWxkTm9kZXNbNl0uZmlyc3RDaGlsZC5pbm5lckhUTUwgPSB2YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAieC1tYXBwaW5nIjoNCiAgICAgICAgICAgICAgICAgICAgaWYgKHZhbHVlID09ICItIikgew0KICAgICAgICAgICAgICAgICAgICAgICAgaW5wdXRbIngtYWN0aXZlIl0gPSBmYWxzZTsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkuY2hpbGROb2Rlc1s3XS5maXJzdENoaWxkLmlubmVySFRNTCA9IHZhbHVlOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBjYXNlICJ4LXRpbWVzaGlmdCI6DQogICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5jaGlsZE5vZGVzWzhdLmZpcnN0Q2hpbGQuaW5uZXJIVE1MID0gdmFsdWU7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICB9DQogICAgICAgICAgICBjcmVhdGVTZWFyY2hPYmooKTsNCiAgICAgICAgICAgIHNlYXJjaEluTWFwcGluZygpOw0KICAgICAgICB9DQogICAgICAgIGlmIChpbnB1dFsieC1hY3RpdmUiXSA9PSBmYWxzZSkgew0KICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpLmNsYXNzTmFtZSA9ICJub3RBY3RpdmVFUEciOw0KICAgICAgICB9DQogICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpLmNsYXNzTmFtZSA9ICJhY3RpdmVFUEciOw0KICAgICAgICB9DQogICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5jaGlsZE5vZGVzWzJdLmZpcnN0Q2hpbGQuc2V0QXR0cmlidXRlKCJzcmMiLCBpbnB1dFsidHZnLWxvZ28iXSk7DQogICAgfSk7DQogICAgc2hvd0VsZW1lbnQoInBvcHVwIiwgZmFsc2UpOw0KICAgIHJldHVybjsNCn0NCmZ1bmN0aW9uIHNob3dQcmV2aWV3KGVsZW1lbnQpIHsNCiAgICBsZXQgZGl2ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm15U3RyZWFtc0JveCIpOw0KICAgIHN3aXRjaCAoZWxlbWVudCkgew0KICAgICAgICBjYXNlIGZhbHNlOg0KICAgICAgICAgICAgZGl2LmNsYXNzTmFtZSA9ICJub3RWaXNpYmxlIjsNCiAgICAgICAgICAgIHJldHVybjsNCiAgICB9DQogICAgbGV0IHN0cmVhbXMgPSBbImFjdGl2ZVN0cmVhbXMiLCAiaW5hY3RpdmVTdHJlYW1zIl07DQogICAgc3RyZWFtcy5mb3JFYWNoKHByZXZpZXcgPT4gew0KICAgICAgICBsZXQgdGFibGUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChwcmV2aWV3KTsNCiAgICAgICAgdGFibGUuaW5uZXJIVE1MID0gIiI7DQogICAgICAgIGxldCBvYmogPSBTRVJWRVJbImRhdGEiXVsiU3RyZWFtUHJldmlld1VJIl1bcHJldmlld107DQogICAgICAgIG9iai5mb3JFYWNoKGNoYW5uZWwgPT4gew0KICAgICAgICAgICAgbGV0IHRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVFIiKTsNCiAgICAgICAgICAgIGxldCB0ZEtleSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICBsZXQgdGRWYWwgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgdGRLZXkuY2xhc3NOYW1lID0gInRkS2V5IjsNCiAgICAgICAgICAgIHRkVmFsLmNsYXNzTmFtZSA9ICJ0ZFZhbCI7DQogICAgICAgICAgICBzd2l0Y2ggKHByZXZpZXcpIHsNCiAgICAgICAgICAgICAgICBjYXNlICJhY3RpdmVTdHJlYW1zIjoNCiAgICAgICAgICAgICAgICAgICAgdGRLZXkuaW5uZXJUZXh0ID0gIkNoYW5uZWw6ICgrKSI7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgImluYWN0aXZlU3RyZWFtcyI6DQogICAgICAgICAgICAgICAgICAgIHRkS2V5LmlubmVyVGV4dCA9ICJDaGFubmVsOiAoLSkiOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIHRkVmFsLmlubmVyVGV4dCA9IGNoYW5uZWw7DQogICAgICAgICAgICB0ci5hcHBlbmRDaGlsZCh0ZEtleSk7DQogICAgICAgICAgICB0ci5hcHBlbmRDaGlsZCh0ZFZhbCk7DQogICAgICAgICAgICB0YWJsZS5hcHBlbmRDaGlsZCh0cik7DQogICAgICAgIH0pOw0KICAgIH0pOw0KICAgIHNob3dFbGVtZW50KCJsb2FkaW5nIiwgZmFsc2UpOw0KICAgIGRpdi5jbGFzc05hbWUgPSAidmlzaWJsZSI7DQogICAgcmV0dXJuOw0KfQ0K" + webUI["html/js/menu_ts.js"] = "Y2xhc3MgTWFpbk1lbnUgew0KICAgIGNvbnN0cnVjdG9yKCkgew0KICAgICAgICB0aGlzLkRvY3VtZW50SUQgPSAibWFpbi1tZW51IjsNCiAgICAgICAgdGhpcy5IVE1MVGFnID0gIkxJIjsNCiAgICAgICAgdGhpcy5JbWFnZVBhdGggPSAiaW1nLyI7DQogICAgfQ0KICAgIGNyZWF0ZUlNRyhzcmMpIHsNCiAgICAgICAgbGV0IGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJJTUciKTsNCiAgICAgICAgZWxlbWVudC5zZXRBdHRyaWJ1dGUoInNyYyIsIHRoaXMuSW1hZ2VQYXRoICsgc3JjKTsNCiAgICAgICAgcmV0dXJuIGVsZW1lbnQ7DQogICAgfQ0KICAgIGNyZWF0ZVZhbHVlKHZhbHVlKSB7DQogICAgICAgIGxldCBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiUCIpOw0KICAgICAgICBlbGVtZW50LmlubmVySFRNTCA9IHZhbHVlOw0KICAgICAgICByZXR1cm4gZWxlbWVudDsNCiAgICB9DQp9DQpjbGFzcyBNYWluTWVudUl0ZW0gZXh0ZW5kcyBNYWluTWVudSB7DQogICAgY29uc3RydWN0b3IobWVudUtleSwgdmFsdWUsIGltYWdlLCBoZWFkbGluZSkgew0KICAgICAgICBzdXBlcigpOw0KICAgICAgICB0aGlzLm1lbnVLZXkgPSBtZW51S2V5Ow0KICAgICAgICB0aGlzLnZhbHVlID0gdmFsdWU7DQogICAgICAgIHRoaXMuaW1nU3JjID0gaW1hZ2U7DQogICAgICAgIHRoaXMuaGVhZGxpbmUgPSBoZWFkbGluZTsNCiAgICB9DQogICAgY3JlYXRlSXRlbSgpIHsNCiAgICAgICAgbGV0IGl0ZW0gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJMSSIpOw0KICAgICAgICBpdGVtLnNldEF0dHJpYnV0ZSgib25jbGljayIsICJqYXZhc2NyaXB0OiBvcGVuVGhpc01lbnUodGhpcykiKTsNCiAgICAgICAgaXRlbS5zZXRBdHRyaWJ1dGUoImlkIiwgdGhpcy5pZCk7DQogICAgICAgIGxldCBpbWcgPSB0aGlzLmNyZWF0ZUlNRyh0aGlzLmltZ1NyYyk7DQogICAgICAgIGxldCB2YWx1ZSA9IHRoaXMuY3JlYXRlVmFsdWUodGhpcy52YWx1ZSk7DQogICAgICAgIGl0ZW0uYXBwZW5kQ2hpbGQoaW1nKTsNCiAgICAgICAgaXRlbS5hcHBlbmRDaGlsZCh2YWx1ZSk7DQogICAgICAgIGxldCBkb2MgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCh0aGlzLkRvY3VtZW50SUQpOw0KICAgICAgICBkb2MuYXBwZW5kQ2hpbGQoaXRlbSk7DQogICAgICAgIHN3aXRjaCAodGhpcy5tZW51S2V5KSB7DQogICAgICAgICAgICBjYXNlICJwbGF5bGlzdCI6DQogICAgICAgICAgICAgICAgdGhpcy50YWJsZUhlYWRlciA9IFsie3sucGxheWxpc3QudGFibGUucGxheWxpc3R9fSIsICJ7ey5wbGF5bGlzdC50YWJsZS50dW5lcn19IiwgInt7LnBsYXlsaXN0LnRhYmxlLmxhc3RVcGRhdGV9fSIsICJ7ey5wbGF5bGlzdC50YWJsZS5hdmFpbGFiaWxpdHl9fSAlIiwgInt7LnBsYXlsaXN0LnRhYmxlLnR5cGV9fSIsICJ7ey5wbGF5bGlzdC50YWJsZS5zdHJlYW1zfX0iLCAie3sucGxheWxpc3QudGFibGUuZ3JvdXBUaXRsZX19ICUiLCAie3sucGxheWxpc3QudGFibGUudHZnSUR9fSAlIiwgInt7LnBsYXlsaXN0LnRhYmxlLnVuaXF1ZUlEfX0gJSJdOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAieG1sdHYiOg0KICAgICAgICAgICAgICAgIHRoaXMudGFibGVIZWFkZXIgPSBbInt7LnhtbHR2LnRhYmxlLmd1aWRlfX0iLCAie3sueG1sdHYudGFibGUubGFzdFVwZGF0ZX19IiwgInt7LnhtbHR2LnRhYmxlLmF2YWlsYWJpbGl0eX19ICUiLCAie3sueG1sdHYudGFibGUuY2hhbm5lbHN9fSIsICJ7ey54bWx0di50YWJsZS5wcm9ncmFtc319Il07DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJmaWx0ZXIiOg0KICAgICAgICAgICAgICAgIHRoaXMudGFibGVIZWFkZXIgPSBbInt7LmZpbHRlci50YWJsZS5zdGFydGluZ0NoYW5uZWx9fSIsICJ7ey5maWx0ZXIudGFibGUubmFtZX19IiwgInt7LmZpbHRlci50YWJsZS50eXBlfX0iLCAie3suZmlsdGVyLnRhYmxlLmZpbHRlcn19Il07DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ1c2VycyI6DQogICAgICAgICAgICAgICAgdGhpcy50YWJsZUhlYWRlciA9IFsie3sudXNlcnMudGFibGUudXNlcm5hbWV9fSIsICJ7ey51c2Vycy50YWJsZS5wYXNzd29yZH19IiwgInt7LnVzZXJzLnRhYmxlLndlYn19IiwgInt7LnVzZXJzLnRhYmxlLnBtc319IiwgInt7LnVzZXJzLnRhYmxlLm0zdX19IiwgInt7LnVzZXJzLnRhYmxlLnhtbH19IiwgInt7LnVzZXJzLnRhYmxlLmFwaX19Il07DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJtYXBwaW5nIjoNCiAgICAgICAgICAgICAgICB0aGlzLnRhYmxlSGVhZGVyID0gWyJCVUxLIiwgInt7Lm1hcHBpbmcudGFibGUuY2hOb319IiwgInt7Lm1hcHBpbmcudGFibGUubG9nb319IiwgInt7Lm1hcHBpbmcudGFibGUuY2hhbm5lbE5hbWV9fSIsICJ7ey5tYXBwaW5nLnRhYmxlLnBsYXlsaXN0fX0iLCAie3subWFwcGluZy50YWJsZS5ncm91cFRpdGxlfX0iLCAie3subWFwcGluZy50YWJsZS54bWx0dkZpbGV9fSIsICJ7ey5tYXBwaW5nLnRhYmxlLnhtbHR2SUR9fSIsICJ7ey5tYXBwaW5nLnRhYmxlLnRpbWVzaGlmdH19Il07DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIH0NCiAgICB9DQp9DQpjbGFzcyBDb250ZW50IHsNCiAgICBjb25zdHJ1Y3RvcigpIHsNCiAgICAgICAgdGhpcy5Eb2N1bWVudElEID0gImNvbnRlbnQiOw0KICAgICAgICB0aGlzLlRhYmxlSUQgPSAiY29udGVudF90YWJsZSI7DQogICAgICAgIHRoaXMuaGVhZGVyQ2xhc3MgPSAiY29udGVudF90YWJsZV9oZWFkZXIiOw0KICAgICAgICB0aGlzLmludGVyYWN0aW9uSUQgPSAiY29udGVudC1pbnRlcmFjdGlvbiI7DQogICAgfQ0KICAgIGNyZWF0ZUhlYWRsaW5lKHZhbHVlKSB7DQogICAgICAgIGxldCBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiSDMiKTsNCiAgICAgICAgZWxlbWVudC5pbm5lckhUTUwgPSB2YWx1ZTsNCiAgICAgICAgcmV0dXJuIGVsZW1lbnQ7DQogICAgfQ0KICAgIGNyZWF0ZUhSKCkgew0KICAgICAgICByZXR1cm4gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiSFIiKTsNCiAgICB9DQogICAgY3JlYXRlSW50ZXJhY3Rpb24oKSB7DQogICAgICAgIGxldCBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiRElWIik7DQogICAgICAgIGVsZW1lbnQuc2V0QXR0cmlidXRlKCJpZCIsIHRoaXMuaW50ZXJhY3Rpb25JRCk7DQogICAgICAgIHJldHVybiBlbGVtZW50Ow0KICAgIH0NCiAgICBjcmVhdGVESVYoKSB7DQogICAgICAgIGxldCBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiRElWIik7DQogICAgICAgIGVsZW1lbnQuaWQgPSB0aGlzLkRpdklEOw0KICAgICAgICByZXR1cm4gZWxlbWVudDsNCiAgICB9DQogICAgY3JlYXRlVEFCTEUoKSB7DQogICAgICAgIGxldCBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEFCTEUiKTsNCiAgICAgICAgZWxlbWVudC5pZCA9IHRoaXMuVGFibGVJRDsNCiAgICAgICAgcmV0dXJuIGVsZW1lbnQ7DQogICAgfQ0KICAgIGNyZWF0ZVRhYmxlUm93KCkgew0KICAgICAgICBsZXQgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlRSIik7DQogICAgICAgIGVsZW1lbnQuY2xhc3NOYW1lID0gdGhpcy5oZWFkZXJDbGFzczsNCiAgICAgICAgcmV0dXJuIGVsZW1lbnQ7DQogICAgfQ0KICAgIGNyZWF0ZVRhYmxlQ29udGVudChtZW51S2V5KSB7DQogICAgICAgIGxldCBkYXRhID0ge307DQogICAgICAgIGxldCByb3dzID0gW107DQogICAgICAgIGxldCBmaWxlVHlwZXMgPSBbXTsNCiAgICAgICAgc3dpdGNoIChtZW51S2V5KSB7DQogICAgICAgICAgICBjYXNlICJwbGF5bGlzdCI6DQogICAgICAgICAgICAgICAgZmlsZVR5cGVzID0gWyJtM3UiLCAiaGRociJdOw0KICAgICAgICAgICAgICAgIGZpbGVUeXBlcy5mb3JFYWNoKGZpbGVUeXBlID0+IHsNCiAgICAgICAgICAgICAgICAgICAgZGF0YSA9IFNFUlZFUlsic2V0dGluZ3MiXVsiZmlsZXMiXVtmaWxlVHlwZV07DQogICAgICAgICAgICAgICAgICAgIHZhciBrZXlzID0gZ2V0T3duT2JqUHJvcHMoZGF0YSk7DQogICAgICAgICAgICAgICAgICAgIGtleXMuZm9yRWFjaChrZXkgPT4gew0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVFIiKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmlkID0ga2V5Ow0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgiJyArIGZpbGVUeXBlICsgJyIsIHRoaXMpJyk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsibmFtZSJdOw0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChTRVJWRVJbInNldHRpbmdzIl1bImJ1ZmZlciJdICE9ICItIikgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bInR1bmVyIl07DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gIi0iOw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bImxhc3QudXBkYXRlIl07DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsicHJvdmlkZXIuYXZhaWxhYmlsaXR5Il07DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsidHlwZSJdLnRvVXBwZXJDYXNlKCk7DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsiY29tcGF0aWJpbGl0eSJdWyJzdHJlYW1zIl07DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsiY29tcGF0aWJpbGl0eSJdWyJncm91cC50aXRsZSJdOw0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bImNvbXBhdGliaWxpdHkiXVsidHZnLmlkIl07DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsiY29tcGF0aWJpbGl0eSJdWyJzdHJlYW0uaWQiXTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHJvd3MucHVzaCh0cik7DQogICAgICAgICAgICAgICAgICAgIH0pOw0KICAgICAgICAgICAgICAgIH0pOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiZmlsdGVyIjoNCiAgICAgICAgICAgICAgICBkZWxldGUgU0VSVkVSWyJzZXR0aW5ncyJdWyJmaWx0ZXIiXVstMV07DQogICAgICAgICAgICAgICAgZGF0YSA9IFNFUlZFUlsic2V0dGluZ3MiXVsiZmlsdGVyIl07DQogICAgICAgICAgICAgICAgdmFyIGtleXMgPSBnZXRPd25PYmpQcm9wcyhkYXRhKTsNCiAgICAgICAgICAgICAgICBrZXlzLmZvckVhY2goa2V5ID0+IHsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVFIiKTsNCiAgICAgICAgICAgICAgICAgICAgdHIuaWQgPSBrZXk7DQogICAgICAgICAgICAgICAgICAgIHRyLnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoIicgKyBkYXRhW2tleV1bInR5cGUiXSArICciLCB0aGlzKScpOw0KICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsic3RhcnRpbmdDaGFubmVsIl07DQogICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bIm5hbWUiXTsNCiAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgc3dpdGNoIChkYXRhW2tleV1bInR5cGUiXSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAiY3VzdG9tLWZpbHRlciI6DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9ICJ7ey5maWx0ZXIuY3VzdG9tfX0iOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAiZ3JvdXAtdGl0bGUiOg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSAie3suZmlsdGVyLmdyb3VwfX0iOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJmaWx0ZXIiXTsNCiAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICByb3dzLnB1c2godHIpOw0KICAgICAgICAgICAgICAgIH0pOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAieG1sdHYiOg0KICAgICAgICAgICAgICAgIGZpbGVUeXBlcyA9IG5ldyBBcnJheSgieG1sdHYiKTsNCiAgICAgICAgICAgICAgICBmaWxlVHlwZXMuZm9yRWFjaChmaWxlVHlwZSA9PiB7DQogICAgICAgICAgICAgICAgICAgIGRhdGEgPSBTRVJWRVJbInNldHRpbmdzIl1bImZpbGVzIl1bZmlsZVR5cGVdOw0KICAgICAgICAgICAgICAgICAgICB2YXIga2V5cyA9IGdldE93bk9ialByb3BzKGRhdGEpOw0KICAgICAgICAgICAgICAgICAgICBrZXlzLmZvckVhY2goa2V5ID0+IHsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciB0ciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlRSIik7DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5pZCA9IGtleTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoIicgKyBmaWxlVHlwZSArICciLCB0aGlzKScpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bIm5hbWUiXTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJsYXN0LnVwZGF0ZSJdOw0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bInByb3ZpZGVyLmF2YWlsYWJpbGl0eSJdOw0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bImNvbXBhdGliaWxpdHkiXVsieG1sdHYuY2hhbm5lbHMiXTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJjb21wYXRpYmlsaXR5Il1bInhtbHR2LnByb2dyYW1zIl07DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICByb3dzLnB1c2godHIpOw0KICAgICAgICAgICAgICAgICAgICB9KTsNCiAgICAgICAgICAgICAgICB9KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInVzZXJzIjoNCiAgICAgICAgICAgICAgICBmaWxlVHlwZXMgPSBuZXcgQXJyYXkoInVzZXJzIik7DQogICAgICAgICAgICAgICAgZmlsZVR5cGVzLmZvckVhY2goZmlsZVR5cGUgPT4gew0KICAgICAgICAgICAgICAgICAgICBkYXRhID0gU0VSVkVSW2ZpbGVUeXBlXTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGtleXMgPSBnZXRPd25PYmpQcm9wcyhkYXRhKTsNCiAgICAgICAgICAgICAgICAgICAga2V5cy5mb3JFYWNoKGtleSA9PiB7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgdHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJUUiIpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuaWQgPSBrZXk7DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCInICsgZmlsZVR5cGUgKyAnIiwgdGhpcyknKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJkYXRhIl1bInVzZXJuYW1lIl07DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9ICIqKioqKioiOw0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChkYXRhW2tleV1bImRhdGEiXVsiYXV0aGVudGljYXRpb24ud2ViIl0gPT0gdHJ1ZSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSAi4pyTIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSAiLSI7DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGRhdGFba2V5XVsiZGF0YSJdWyJhdXRoZW50aWNhdGlvbi5wbXMiXSA9PSB0cnVlKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9ICLinJMiOw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9ICItIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgICAgICBpZiAoZGF0YVtrZXldWyJkYXRhIl1bImF1dGhlbnRpY2F0aW9uLm0zdSJdID09IHRydWUpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gIuKckyI7DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gIi0iOw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChkYXRhW2tleV1bImRhdGEiXVsiYXV0aGVudGljYXRpb24ueG1sIl0gPT0gdHJ1ZSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSAi4pyTIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSAiLSI7DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGRhdGFba2V5XVsiZGF0YSJdWyJhdXRoZW50aWNhdGlvbi5hcGkiXSA9PSB0cnVlKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9ICLinJMiOw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9ICItIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHJvd3MucHVzaCh0cik7DQogICAgICAgICAgICAgICAgICAgIH0pOw0KICAgICAgICAgICAgICAgIH0pOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAibWFwcGluZyI6DQogICAgICAgICAgICAgICAgQlVMS19FRElUID0gZmFsc2U7DQogICAgICAgICAgICAgICAgY3JlYXRlU2VhcmNoT2JqKCk7DQogICAgICAgICAgICAgICAgY2hlY2tVbmRvKCJlcGdNYXBwaW5nIik7DQogICAgICAgICAgICAgICAgZGF0YSA9IFNFUlZFUlsieGVwZyJdWyJlcGdNYXBwaW5nIl07DQogICAgICAgICAgICAgICAgdmFyIGtleXMgPSBnZXRPd25PYmpQcm9wcyhkYXRhKTsNCiAgICAgICAgICAgICAgICBrZXlzLmZvckVhY2goa2V5ID0+IHsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVFIiKTsNCiAgICAgICAgICAgICAgICAgICAgdHIuaWQgPSBrZXk7DQogICAgICAgICAgICAgICAgICAgIHN3aXRjaCAoZGF0YVtrZXldWyJ4LWFjdGl2ZSJdKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBjYXNlIHRydWU6DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgdHIuY2xhc3NOYW1lID0gImFjdGl2ZUVQRyI7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgICAgICAgICBjYXNlIGZhbHNlOg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyLmNsYXNzTmFtZSA9ICJub3RBY3RpdmVFUEciOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIC8vIEJ1bGsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiQlVMSyI7DQogICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBmYWxzZTsNCiAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAvLyBDaGFubmVsIG51bWJlcg0KICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJJTlBVVENIQU5ORUwiOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJ4LWNoYW5uZWxJRCJdOw0KICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgIC8vIExvZ28NCiAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiSU1HIjsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5pbWFnZVVSTCA9IGRhdGFba2V5XVsidHZnLWxvZ28iXTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHRkID0gY2VsbC5jcmVhdGVDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgIHRkLnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoIm1hcHBpbmciLCB0aGlzKScpOw0KICAgICAgICAgICAgICAgICAgICB0ZC5pZCA9IGtleTsNCiAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQodGQpOw0KICAgICAgICAgICAgICAgICAgICAvLyBDaGFubmVsIG5hbWUNCiAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2xhc3NOYW1lID0gZGF0YVtrZXldWyJ4LWNhdGVnb3J5Il07DQogICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bIngtbmFtZSJdOw0KICAgICAgICAgICAgICAgICAgICB2YXIgdGQgPSBjZWxsLmNyZWF0ZUNlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgdGQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgibWFwcGluZyIsIHRoaXMpJyk7DQogICAgICAgICAgICAgICAgICAgIHRkLmlkID0ga2V5Ow0KICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZCh0ZCk7DQogICAgICAgICAgICAgICAgICAgIC8vIFBsYXlsaXN0DQogICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZ2V0VmFsdWVGcm9tUHJvdmlkZXJGaWxlKGRhdGFba2V5XVsiX2ZpbGUubTN1LmlkIl0sICJtM3UiLCAibmFtZSIpOw0KICAgICAgICAgICAgICAgICAgICB2YXIgdGQgPSBjZWxsLmNyZWF0ZUNlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgdGQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgibWFwcGluZyIsIHRoaXMpJyk7DQogICAgICAgICAgICAgICAgICAgIHRkLmlkID0ga2V5Ow0KICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZCh0ZCk7DQogICAgICAgICAgICAgICAgICAgIC8vIEdyb3VwIChncm91cC10aXRsZSkNCiAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bIngtZ3JvdXAtdGl0bGUiXTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHRkID0gY2VsbC5jcmVhdGVDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgIHRkLnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoIm1hcHBpbmciLCB0aGlzKScpOw0KICAgICAgICAgICAgICAgICAgICB0ZC5pZCA9IGtleTsNCiAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQodGQpOw0KICAgICAgICAgICAgICAgICAgICAvLyBYTUxUViBmaWxlDQogICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICBpZiAoZGF0YVtrZXldWyJ4LXhtbHR2LWZpbGUiXSAhPSAiLSIpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBnZXRWYWx1ZUZyb21Qcm92aWRlckZpbGUoZGF0YVtrZXldWyJ4LXhtbHR2LWZpbGUiXSwgInhtbHR2IiwgIm5hbWUiKTsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bIngteG1sdHYtZmlsZSJdOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIHZhciB0ZCA9IGNlbGwuY3JlYXRlQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICB0ZC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJtYXBwaW5nIiwgdGhpcyknKTsNCiAgICAgICAgICAgICAgICAgICAgdGQuaWQgPSBrZXk7DQogICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKHRkKTsNCiAgICAgICAgICAgICAgICAgICAgLy8gWE1MVFYgQ2hhbm5lbA0KICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHZhbHVlID0gZGF0YVtrZXldWyJ4LW1hcHBpbmciXTsNCiAgICAgICAgICAgICAgICAgICAgaWYgKHZhbHVlLmxlbmd0aCA+IDIwKSB7DQogICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IGRhdGFba2V5XVsieC1tYXBwaW5nIl0uc3Vic3RyaW5nKDAsIDIwKSArICIuLi4iOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSB2YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHRkID0gY2VsbC5jcmVhdGVDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgIHRkLnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoIm1hcHBpbmciLCB0aGlzKScpOw0KICAgICAgICAgICAgICAgICAgICB0ZC5pZCA9IGtleTsNCiAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQodGQpOw0KICAgICAgICAgICAgICAgICAgICAvLyBUaW1lU2hpZnQNCiAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bIngtdGltZXNoaWZ0Il07DQogICAgICAgICAgICAgICAgICAgIHZhciB0ZCA9IGNlbGwuY3JlYXRlQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICB0ZC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJtYXBwaW5nIiwgdGhpcyknKTsNCiAgICAgICAgICAgICAgICAgICAgdGQuaWQgPSBrZXk7DQogICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKHRkKTsNCiAgICAgICAgICAgICAgICAgICAgcm93cy5wdXNoKHRyKTsNCiAgICAgICAgICAgICAgICB9KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInNldHRpbmdzIjoNCiAgICAgICAgICAgICAgICBhbGVydCgpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgfQ0KICAgICAgICByZXR1cm4gcm93czsNCiAgICB9DQp9DQpjbGFzcyBDZWxsIHsNCiAgICBjcmVhdGVDZWxsKCkgew0KICAgICAgICBsZXQgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICBpZiAodGhpcy5jaGlsZCA9PSB0cnVlKSB7DQogICAgICAgICAgICB2YXIgZWxlbWVudDsNCiAgICAgICAgICAgIHN3aXRjaCAodGhpcy5jaGlsZFR5cGUpIHsNCiAgICAgICAgICAgICAgICBjYXNlICJQIjoNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQodGhpcy5jaGlsZFR5cGUpOw0KICAgICAgICAgICAgICAgICAgICBlbGVtZW50LmlubmVySFRNTCA9IHRoaXMudmFsdWU7DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQuY2xhc3NOYW1lID0gdGhpcy5jbGFzc05hbWU7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgIklOUFVUIjoNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQodGhpcy5jaGlsZFR5cGUpOw0KICAgICAgICAgICAgICAgICAgICBlbGVtZW50LnZhbHVlID0gdGhpcy52YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC50eXBlID0gInRleHQiOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBjYXNlICJJTlBVVENIQU5ORUwiOg0KICAgICAgICAgICAgICAgICAgICBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiSU5QVVQiKTsNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdnNjcmlwdDogY2hhbmdlQ2hhbm5lbE51bWJlcih0aGlzKSIpOw0KICAgICAgICAgICAgICAgICAgICBlbGVtZW50LnZhbHVlID0gdGhpcy52YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC50eXBlID0gInRleHQiOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBjYXNlICJCVUxLIjoNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIklOUFVUIik7DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQuY2hlY2tlZCA9IHRoaXMudmFsdWU7DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQudHlwZSA9ICJjaGVja2JveCI7DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQuY2xhc3NOYW1lID0gImJ1bGsgaGlkZUJ1bGsiOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBjYXNlICJCVUxLX0hFQUQiOg0KICAgICAgICAgICAgICAgICAgICBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiSU5QVVQiKTsNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC5jaGVja2VkID0gdGhpcy52YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC50eXBlID0gImNoZWNrYm94IjsNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC5jbGFzc05hbWUgPSAiYnVsayBoaWRlQnVsayI7DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgImphdmFzY3JpcHQ6IHNlbGVjdEFsbENoYW5uZWxzKCkiKTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAiSU1HIjoNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQodGhpcy5jaGlsZFR5cGUpOw0KICAgICAgICAgICAgICAgICAgICBlbGVtZW50LnNldEF0dHJpYnV0ZSgic3JjIiwgdGhpcy5pbWFnZVVSTCk7DQogICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLmltYWdlVVJMICE9ICIiKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBlbGVtZW50LnNldEF0dHJpYnV0ZSgib25lcnJvciIsICJqYXZhc2NyaXB0OiB0aGlzLm9uZXJyb3I9bnVsbDt0aGlzLnNyYz0nJyIpOw0KICAgICAgICAgICAgICAgICAgICAgICAgLy9vbmVycm9yPSJ0aGlzLm9uZXJyb3I9bnVsbDt0aGlzLnNyYz0nbWlzc2luZy5naWYnOyINCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgdGQuYXBwZW5kQ2hpbGQoZWxlbWVudCk7DQogICAgICAgIH0NCiAgICAgICAgZWxzZSB7DQogICAgICAgICAgICB0ZC5pbm5lckhUTUwgPSB0aGlzLnZhbHVlOw0KICAgICAgICB9DQogICAgICAgIGlmICh0aGlzLm9uY2xpY2sgPT0gdHJ1ZSkgew0KICAgICAgICAgICAgdGQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgdGhpcy5vbmNsaWNrRnVuY3Rpb24pOw0KICAgICAgICAgICAgdGQuY2xhc3NOYW1lID0gInBvaW50ZXIiOw0KICAgICAgICB9DQogICAgICAgIGlmICh0aGlzLnRkQ2xhc3NOYW1lICE9IHVuZGVmaW5lZCkgew0KICAgICAgICAgICAgdGQuY2xhc3NOYW1lID0gdGhpcy50ZENsYXNzTmFtZTsNCiAgICAgICAgfQ0KICAgICAgICByZXR1cm4gdGQ7DQogICAgfQ0KfQ0KY2xhc3MgU2hvd0NvbnRlbnQgZXh0ZW5kcyBDb250ZW50IHsNCiAgICBjb25zdHJ1Y3RvcihtZW51SUQpIHsNCiAgICAgICAgc3VwZXIoKTsNCiAgICAgICAgdGhpcy5tZW51SUQgPSBtZW51SUQ7DQogICAgfQ0KICAgIGNyZWF0ZUlucHV0KHR5cGUsIG5hbWUsIHZhbHVlKSB7DQogICAgICAgIGxldCBpbnB1dCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIklOUFVUIik7DQogICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgidHlwZSIsIHR5cGUpOw0KICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm5hbWUiLCBuYW1lKTsNCiAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJ2YWx1ZSIsIHZhbHVlKTsNCiAgICAgICAgcmV0dXJuIGlucHV0Ow0KICAgIH0NCiAgICBzaG93KCkgew0KICAgICAgICBDT0xVTU5fVE9fU09SVCA9IC0xOw0KICAgICAgICAvLyBEZWxldGUgb2xkIGNvbnRlbnQNCiAgICAgICAgbGV0IGRvYyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHRoaXMuRG9jdW1lbnRJRCk7DQogICAgICAgIGRvYy5pbm5lckhUTUwgPSAiIjsNCiAgICAgICAgc2hvd1ByZXZpZXcoZmFsc2UpOw0KICAgICAgICAvLyBIZWFkbGluZQ0KICAgICAgICBsZXQgaGVhZGxpbmUgPSBtZW51SXRlbXNbdGhpcy5tZW51SURdLmhlYWRsaW5lOw0KICAgICAgICBsZXQgbWVudUtleSA9IG1lbnVJdGVtc1t0aGlzLm1lbnVJRF0ubWVudUtleTsNCiAgICAgICAgbGV0IGggPSB0aGlzLmNyZWF0ZUhlYWRsaW5lKGhlYWRsaW5lKTsNCiAgICAgICAgZG9jLmFwcGVuZENoaWxkKGgpOw0KICAgICAgICBsZXQgaHIgPSB0aGlzLmNyZWF0ZUhSKCk7DQogICAgICAgIGRvYy5hcHBlbmRDaGlsZChocik7DQogICAgICAgIC8vIEludGVyYWN0aW9uDQogICAgICAgIGxldCBkaXYgPSB0aGlzLmNyZWF0ZUludGVyYWN0aW9uKCk7DQogICAgICAgIGRvYy5hcHBlbmRDaGlsZChkaXYpOw0KICAgICAgICBsZXQgaW50ZXJhY3Rpb24gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCh0aGlzLmludGVyYWN0aW9uSUQpOw0KICAgICAgICBzd2l0Y2ggKG1lbnVLZXkpIHsNCiAgICAgICAgICAgIGNhc2UgInBsYXlsaXN0IjoNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSB0aGlzLmNyZWF0ZUlucHV0KCJidXR0b24iLCBtZW51S2V5LCAie3suYnV0dG9uLm5ld319Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJpZCIsICItIik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgicGxheWxpc3QiKScpOw0KICAgICAgICAgICAgICAgIGludGVyYWN0aW9uLmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImZpbHRlciI6DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gdGhpcy5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgbWVudUtleSwgInt7LmJ1dHRvbi5uZXd9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgiaWQiLCAtMSk7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgiZmlsdGVyIiwgdGhpcyknKTsNCiAgICAgICAgICAgICAgICBpbnRlcmFjdGlvbi5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ4bWx0diI6DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gdGhpcy5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgbWVudUtleSwgInt7LmJ1dHRvbi5uZXd9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgiaWQiLCAieG1sdHYiKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJ4bWx0diIpJyk7DQogICAgICAgICAgICAgICAgaW50ZXJhY3Rpb24uYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAidXNlcnMiOg0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IHRoaXMuY3JlYXRlSW5wdXQoImJ1dHRvbiIsIG1lbnVLZXksICJ7ey5idXR0b24ubmV3fX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoImlkIiwgInVzZXJzIik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgidXNlcnMiKScpOw0KICAgICAgICAgICAgICAgIGludGVyYWN0aW9uLmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgIm1hcHBpbmciOg0KICAgICAgICAgICAgICAgIHNob3dFbGVtZW50KCJsb2FkaW5nIiwgdHJ1ZSk7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gdGhpcy5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgbWVudUtleSwgInt7LmJ1dHRvbi5zYXZlfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogc2F2ZVBvcHVwRGF0YSgibWFwcGluZyIsICIiLCAiIiknKTsNCiAgICAgICAgICAgICAgICBpbnRlcmFjdGlvbi5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gdGhpcy5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgbWVudUtleSwgInt7LmJ1dHRvbi5idWxrRWRpdH19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IGJ1bGtFZGl0KCknKTsNCiAgICAgICAgICAgICAgICBpbnRlcmFjdGlvbi5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gdGhpcy5jcmVhdGVJbnB1dCgic2VhcmNoIiwgInNlYXJjaCIsICIiKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoImlkIiwgInNlYXJjaE1hcHBpbmciKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LmJ1dHRvbi5zZWFyY2h9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LmNsYXNzTmFtZSA9ICJzZWFyY2giOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAnamF2YXNjcmlwdDogc2VhcmNoSW5NYXBwaW5nKCknKTsNCiAgICAgICAgICAgICAgICBpbnRlcmFjdGlvbi5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJzZXR0aW5ncyI6DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gdGhpcy5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgbWVudUtleSwgInt7LmJ1dHRvbi5zYXZlfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogc2F2ZVNldHRpbmdzKCk7Jyk7DQogICAgICAgICAgICAgICAgaW50ZXJhY3Rpb24uYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IHRoaXMuY3JlYXRlSW5wdXQoImJ1dHRvbiIsIG1lbnVLZXksICJ7ey5idXR0b24uYmFja3VwfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogYmFja3VwKCk7Jyk7DQogICAgICAgICAgICAgICAgaW50ZXJhY3Rpb24uYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IHRoaXMuY3JlYXRlSW5wdXQoImJ1dHRvbiIsIG1lbnVLZXksICJ7ey5idXR0b24ucmVzdG9yZX19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IHJlc3RvcmUoKTsnKTsNCiAgICAgICAgICAgICAgICBpbnRlcmFjdGlvbi5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgdmFyIHdyYXBwZXIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJESVYiKTsNCiAgICAgICAgICAgICAgICB3cmFwcGVyLnNldEF0dHJpYnV0ZSgiaWQiLCAiYm94LXdyYXBwZXIiKTsNCiAgICAgICAgICAgICAgICBkb2MuYXBwZW5kQ2hpbGQod3JhcHBlcik7DQogICAgICAgICAgICAgICAgdGhpcy5EaXZJRCA9ICJjb250ZW50X3NldHRpbmdzIjsNCiAgICAgICAgICAgICAgICB2YXIgc2V0dGluZ3MgPSB0aGlzLmNyZWF0ZURJVigpOw0KICAgICAgICAgICAgICAgIHdyYXBwZXIuYXBwZW5kQ2hpbGQoc2V0dGluZ3MpOw0KICAgICAgICAgICAgICAgIHNob3dTZXR0aW5ncygpOw0KICAgICAgICAgICAgICAgIHJldHVybjsNCiAgICAgICAgICAgIGNhc2UgImxvZyI6DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gdGhpcy5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgbWVudUtleSwgInt7LmJ1dHRvbi5yZXNldExvZ3N9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiByZXNldExvZ3MoKTsnKTsNCiAgICAgICAgICAgICAgICBpbnRlcmFjdGlvbi5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgdmFyIHdyYXBwZXIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJESVYiKTsNCiAgICAgICAgICAgICAgICB3cmFwcGVyLnNldEF0dHJpYnV0ZSgiaWQiLCAiYm94LXdyYXBwZXIiKTsNCiAgICAgICAgICAgICAgICBkb2MuYXBwZW5kQ2hpbGQod3JhcHBlcik7DQogICAgICAgICAgICAgICAgdGhpcy5EaXZJRCA9ICJjb250ZW50X2xvZyI7DQogICAgICAgICAgICAgICAgdmFyIGxvZ3MgPSB0aGlzLmNyZWF0ZURJVigpOw0KICAgICAgICAgICAgICAgIHdyYXBwZXIuYXBwZW5kQ2hpbGQobG9ncyk7DQogICAgICAgICAgICAgICAgc2hvd0xvZ3ModHJ1ZSk7DQogICAgICAgICAgICAgICAgcmV0dXJuOw0KICAgICAgICAgICAgY2FzZSAibG9nb3V0IjoNCiAgICAgICAgICAgICAgICBsb2NhdGlvbi5yZWxvYWQoKTsNCiAgICAgICAgICAgICAgICBkb2N1bWVudC5jb29raWUgPSAiVG9rZW49IDsgZXhwaXJlcyA9IFRodSwgMDEgSmFuIDE5NzAgMDA6MDA6MDAgR01UIjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIH0NCiAgICAgICAgLy8gQ3JlYXRlIHRhYmxlIChpZiBuZWVkZWQpDQogICAgICAgIHZhciB0YWJsZUhlYWRlciA9IG1lbnVJdGVtc1t0aGlzLm1lbnVJRF0udGFibGVIZWFkZXI7DQogICAgICAgIGlmICh0YWJsZUhlYWRlci5sZW5ndGggPiAwKSB7DQogICAgICAgICAgICB2YXIgd3JhcHBlciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIkRJViIpOw0KICAgICAgICAgICAgZG9jLmFwcGVuZENoaWxkKHdyYXBwZXIpOw0KICAgICAgICAgICAgd3JhcHBlci5zZXRBdHRyaWJ1dGUoImlkIiwgImJveC13cmFwcGVyIik7DQogICAgICAgICAgICB2YXIgdGFibGUgPSB0aGlzLmNyZWF0ZVRBQkxFKCk7DQogICAgICAgICAgICB3cmFwcGVyLmFwcGVuZENoaWxkKHRhYmxlKTsNCiAgICAgICAgICAgIHZhciBoZWFkZXIgPSB0aGlzLmNyZWF0ZVRhYmxlUm93KCk7DQogICAgICAgICAgICB0YWJsZS5hcHBlbmRDaGlsZChoZWFkZXIpOw0KICAgICAgICAgICAgLy8gVGFibGUgaGVhZGVyDQogICAgICAgICAgICB0YWJsZUhlYWRlci5mb3JFYWNoKGVsZW1lbnQgPT4gew0KICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZWxlbWVudDsNCiAgICAgICAgICAgICAgICBpZiAoZWxlbWVudCA9PSAiQlVMSyIpIHsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiQlVMS19IRUFEIjsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGZhbHNlOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBpZiAobWVudUtleSA9PSAibWFwcGluZyIpIHsNCiAgICAgICAgICAgICAgICAgICAgaWYgKGVsZW1lbnQgPT0gInt7Lm1hcHBpbmcudGFibGUuY2hOb319Iikgew0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5vbmNsaWNrID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwub25jbGlja0Z1bmN0aW9uID0gImphdmFzY3JpcHQ6IHNvcnRUYWJsZSgxKTsiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC50ZENsYXNzTmFtZSA9ICJzb3J0VGhpcyI7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgaWYgKGVsZW1lbnQgPT0gInt7Lm1hcHBpbmcudGFibGUuY2hhbm5lbE5hbWV9fSIpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwub25jbGljayA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLm9uY2xpY2tGdW5jdGlvbiA9ICJqYXZhc2NyaXB0OiBzb3J0VGFibGUoMyk7IjsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBpZiAoZWxlbWVudCA9PSAie3subWFwcGluZy50YWJsZS5wbGF5bGlzdH19Iikgew0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5vbmNsaWNrID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwub25jbGlja0Z1bmN0aW9uID0gImphdmFzY3JpcHQ6IHNvcnRUYWJsZSg0KTsiOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIGlmIChlbGVtZW50ID09ICJ7ey5tYXBwaW5nLnRhYmxlLmdyb3VwVGl0bGV9fSIpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwub25jbGljayA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLm9uY2xpY2tGdW5jdGlvbiA9ICJqYXZhc2NyaXB0OiBzb3J0VGFibGUoNSk7IjsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBpZiAoZWxlbWVudCA9PSAie3subWFwcGluZy50YWJsZS50aW1lc2hpZnR9fSIpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwub25jbGljayA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLm9uY2xpY2tGdW5jdGlvbiA9ICJqYXZhc2NyaXB0OiBzb3J0VGFibGUoOCk7IjsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBpZiAobWVudUtleSA9PSAiZmlsdGVyIikgew0KICAgICAgICAgICAgICAgICAgICBpZiAoZWxlbWVudCA9PSAie3suZmlsdGVyLnRhYmxlLnN0YXJ0aW5nQ2hhbm5lbH19Iikgew0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5vbmNsaWNrID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwub25jbGlja0Z1bmN0aW9uID0gImphdmFzY3JpcHQ6IHNvcnRUYWJsZSgwKTsiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC50ZENsYXNzTmFtZSA9ICJzb3J0VGhpcyI7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgaWYgKGVsZW1lbnQgPT0gInt7LmZpbHRlci50YWJsZS5uYW1lfX0iKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLm9uY2xpY2sgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5vbmNsaWNrRnVuY3Rpb24gPSAiamF2YXNjcmlwdDogc29ydFRhYmxlKDEpOyI7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgaWYgKGVsZW1lbnQgPT0gInt7LmZpbHRlci50YWJsZS50eXBlfX0iKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLm9uY2xpY2sgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5vbmNsaWNrRnVuY3Rpb24gPSAiamF2YXNjcmlwdDogc29ydFRhYmxlKDIpOyI7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgaWYgKGVsZW1lbnQgPT0gInt7LmZpbHRlci50YWJsZS5maWx0ZXJ9fSIpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwub25jbGljayA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLm9uY2xpY2tGdW5jdGlvbiA9ICJqYXZhc2NyaXB0OiBzb3J0VGFibGUoMyk7IjsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBoZWFkZXIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgfSk7DQogICAgICAgICAgICB0YWJsZS5hcHBlbmRDaGlsZChoZWFkZXIpOw0KICAgICAgICAgICAgLy8gQ29udGVudCBvZiB0aGUgdGFibGUNCiAgICAgICAgICAgIHZhciByb3dzID0gdGhpcy5jcmVhdGVUYWJsZUNvbnRlbnQobWVudUtleSk7DQogICAgICAgICAgICByb3dzLmZvckVhY2godHIgPT4gew0KICAgICAgICAgICAgICAgIHRhYmxlLmFwcGVuZENoaWxkKHRyKTsNCiAgICAgICAgICAgIH0pOw0KICAgICAgICB9DQogICAgICAgIHN3aXRjaCAobWVudUtleSkgew0KICAgICAgICAgICAgY2FzZSAibWFwcGluZyI6DQogICAgICAgICAgICAgICAgc29ydFRhYmxlKDEpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiZmlsdGVyIjoNCiAgICAgICAgICAgICAgICBzaG93UHJldmlldyh0cnVlKTsNCiAgICAgICAgICAgICAgICBzb3J0VGFibGUoMCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBkZWZhdWx0Og0KICAgICAgICAgICAgICAgIENPTFVNTl9UT19TT1JUID0gLTE7DQogICAgICAgICAgICAgICAgc29ydFRhYmxlKDApOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICB9DQogICAgICAgIHNob3dFbGVtZW50KCJsb2FkaW5nIiwgZmFsc2UpOw0KICAgIH0NCn0NCmZ1bmN0aW9uIFBhZ2VSZWFkeSgpIHsNCiAgICBsZXQgc2VydmVyID0gbmV3IFNlcnZlcigiZ2V0U2VydmVyQ29uZmlnIik7DQogICAgc2VydmVyLnJlcXVlc3Qoe30pOw0KICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJyZXNpemUiLCBmdW5jdGlvbiAoKSB7DQogICAgICAgIGNhbGN1bGF0ZVdyYXBwZXJIZWlnaHQoKTsNCiAgICB9LCB0cnVlKTsNCiAgICBzZXRJbnRlcnZhbChmdW5jdGlvbiAoKSB7DQogICAgICAgIHVwZGF0ZUxvZygpOw0KICAgIH0sIDEwMDAwKTsNCiAgICByZXR1cm47DQp9DQpmdW5jdGlvbiBjcmVhdGVMYXlvdXQoKSB7DQogICAgLy8gQ2xpZW50IEluZm8NCiAgICBsZXQgb2JqID0gU0VSVkVSWyJjbGllbnRJbmZvIl07DQogICAgbGV0IGtleXMgPSBnZXRPd25PYmpQcm9wcyhvYmopOw0KICAgIGZvciAodmFyIGkgPSAwOyBpIDwga2V5cy5sZW5ndGg7IGkrKykgew0KICAgICAgICBpZiAoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoa2V5c1tpXSkpIHsNCiAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGtleXNbaV0pLmlubmVySFRNTCA9IG9ialtrZXlzW2ldXTsNCiAgICAgICAgfQ0KICAgIH0NCiAgICBpZiAoIWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJtYWluLW1lbnUiKSkgew0KICAgICAgICByZXR1cm47DQogICAgfQ0KICAgIC8vIENyZWF0ZSBtZW51DQogICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm1haW4tbWVudSIpLmlubmVySFRNTCA9ICIiOw0KICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbWVudUl0ZW1zLmxlbmd0aDsgaSsrKSB7DQogICAgICAgIG1lbnVJdGVtc1tpXS5pZCA9IGk7DQogICAgICAgIHN3aXRjaCAobWVudUl0ZW1zW2ldWyJtZW51S2V5Il0pIHsNCiAgICAgICAgICAgIGNhc2UgInVzZXJzIjoNCiAgICAgICAgICAgIGNhc2UgImxvZ291dCI6DQogICAgICAgICAgICAgICAgaWYgKFNFUlZFUlsic2V0dGluZ3MiXVsiYXV0aGVudGljYXRpb24ud2ViIl0gPT0gdHJ1ZSkgew0KICAgICAgICAgICAgICAgICAgICBtZW51SXRlbXNbaV0uY3JlYXRlSXRlbSgpOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgIm1hcHBpbmciOg0KICAgICAgICAgICAgY2FzZSAieG1sdHYiOg0KICAgICAgICAgICAgICAgIGlmIChTRVJWRVJbImNsaWVudEluZm8iXVsiZXBnU291cmNlIl0gPT0gIlhFUEciKSB7DQogICAgICAgICAgICAgICAgICAgIG1lbnVJdGVtc1tpXS5jcmVhdGVJdGVtKCk7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgICAgICBtZW51SXRlbXNbaV0uY3JlYXRlSXRlbSgpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICB9DQogICAgfQ0KICAgIHJldHVybjsNCn0NCmZ1bmN0aW9uIG9wZW5UaGlzTWVudShlbGVtZW50KSB7DQogICAgbGV0IGlkID0gZWxlbWVudC5pZDsNCiAgICBsZXQgY29udGVudCA9IG5ldyBTaG93Q29udGVudChpZCk7DQogICAgY29udGVudC5zaG93KCk7DQogICAgY2FsY3VsYXRlV3JhcHBlckhlaWdodCgpOw0KICAgIHJldHVybjsNCn0NCmNsYXNzIFBvcHVwV2luZG93IHsNCiAgICBjb25zdHJ1Y3RvcigpIHsNCiAgICAgICAgdGhpcy5Eb2N1bWVudElEID0gInBvcHVwLWN1c3RvbSI7DQogICAgICAgIHRoaXMuSW50ZXJhY3Rpb25JRCA9ICJpbnRlcmFjdGlvbiI7DQogICAgICAgIHRoaXMuZG9jID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQodGhpcy5Eb2N1bWVudElEKTsNCiAgICB9DQogICAgY3JlYXRlVGl0bGUodGl0bGUpIHsNCiAgICAgICAgbGV0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgdGQuY2xhc3NOYW1lID0gImxlZnQiOw0KICAgICAgICB0ZC5pbm5lckhUTUwgPSB0aXRsZSArICI6IjsNCiAgICAgICAgcmV0dXJuIHRkOw0KICAgIH0NCiAgICBjcmVhdGVDb250ZW50KGVsZW1lbnQpIHsNCiAgICAgICAgbGV0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgdGQuYXBwZW5kQ2hpbGQoZWxlbWVudCk7DQogICAgICAgIHJldHVybiB0ZDsNCiAgICB9DQogICAgY3JlYXRlSW50ZXJhY3Rpb24oKSB7DQogICAgICAgIGxldCBkaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsNCiAgICAgICAgZGl2LnNldEF0dHJpYnV0ZSgiaWQiLCAicG9wdXAtaW50ZXJhY3Rpb24iKTsNCiAgICAgICAgZGl2LmNsYXNzTmFtZSA9ICJpbnRlcmFjdGlvbiI7DQogICAgICAgIHRoaXMuZG9jLmFwcGVuZENoaWxkKGRpdik7DQogICAgfQ0KfQ0KY2xhc3MgUG9wdXBDb250ZW50IGV4dGVuZHMgUG9wdXBXaW5kb3cgew0KICAgIGNvbnN0cnVjdG9yKCkgew0KICAgICAgICBzdXBlciguLi5hcmd1bWVudHMpOw0KICAgICAgICB0aGlzLnRhYmxlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEFCTEUiKTsNCiAgICB9DQogICAgY3JlYXRlSGVhZGxpbmUoaGVhZGxpbmUpIHsNCiAgICAgICAgdGhpcy5kb2MuaW5uZXJIVE1MID0gIiI7DQogICAgICAgIHZhciBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiSDMiKTsNCiAgICAgICAgZWxlbWVudC5pbm5lckhUTUwgPSBoZWFkbGluZS50b1VwcGVyQ2FzZSgpOw0KICAgICAgICB0aGlzLmRvYy5hcHBlbmRDaGlsZChlbGVtZW50KTsNCiAgICAgICAgLy8gQ3JlYXRlIHRhYmxlDQogICAgICAgIHRoaXMudGFibGUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJUQUJMRSIpOw0KICAgICAgICB0aGlzLmRvYy5hcHBlbmRDaGlsZCh0aGlzLnRhYmxlKTsNCiAgICB9DQogICAgYXBwZW5kUm93KHRpdGxlLCBlbGVtZW50KSB7DQogICAgICAgIGxldCB0ciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlRSIik7DQogICAgICAgIC8vIFRpdGxlDQogICAgICAgIGlmICh0aXRsZS5sZW5ndGggIT0gMCkgew0KICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQodGhpcy5jcmVhdGVUaXRsZSh0aXRsZSkpOw0KICAgICAgICB9DQogICAgICAgIC8vIENvbnRlbnQNCiAgICAgICAgdHIuYXBwZW5kQ2hpbGQodGhpcy5jcmVhdGVDb250ZW50KGVsZW1lbnQpKTsNCiAgICAgICAgdGhpcy50YWJsZS5hcHBlbmRDaGlsZCh0cik7DQogICAgfQ0KICAgIGNyZWF0ZUlucHV0KHR5cGUsIG5hbWUsIHZhbHVlKSB7DQogICAgICAgIGxldCBpbnB1dCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIklOUFVUIik7DQogICAgICAgIGlmICh2YWx1ZSA9PSB1bmRlZmluZWQpIHsNCiAgICAgICAgICAgIHZhbHVlID0gIiI7DQogICAgICAgIH0NCiAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJ0eXBlIiwgdHlwZSk7DQogICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgibmFtZSIsIG5hbWUpOw0KICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInZhbHVlIiwgdmFsdWUpOw0KICAgICAgICByZXR1cm4gaW5wdXQ7DQogICAgfQ0KICAgIGNyZWF0ZUNoZWNrYm94KG5hbWUpIHsNCiAgICAgICAgbGV0IGlucHV0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiSU5QVVQiKTsNCiAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJ0eXBlIiwgImNoZWNrYm94Iik7DQogICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgibmFtZSIsIG5hbWUpOw0KICAgICAgICByZXR1cm4gaW5wdXQ7DQogICAgfQ0KICAgIC8vIENyZWF0ZXMgYSBzZWxlY3Rpb24gb2YgbXVsdGlwbGUgb3B0aW9ucyB2YWx1ZXMgd2l0aCB0ZXh0IGRlc2NyaXB0aW9ucw0KICAgIGNyZWF0ZVNlbGVjdCh0ZXh0LCB2YWx1ZXMsIHNldCwgZGJLZXkpIHsNCiAgICAgICAgbGV0IHNlbGVjdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlNFTEVDVCIpOw0KICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJuYW1lIiwgZGJLZXkpOw0KICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRleHQubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgICAgIGxldCBvcHRpb24gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJPUFRJT04iKTsNCiAgICAgICAgICAgIG9wdGlvbi5zZXRBdHRyaWJ1dGUoInZhbHVlIiwgdmFsdWVzW2ldKTsNCiAgICAgICAgICAgIG9wdGlvbi5pbm5lclRleHQgPSB0ZXh0W2ldOw0KICAgICAgICAgICAgc2VsZWN0LmFwcGVuZENoaWxkKG9wdGlvbik7DQogICAgICAgIH0NCiAgICAgICAgaWYgKHNldCAhPSAiIikgew0KICAgICAgICAgICAgc2VsZWN0LnZhbHVlID0gc2V0Ow0KICAgICAgICB9DQogICAgICAgIGlmIChzZXQgPT0gdW5kZWZpbmVkKSB7DQogICAgICAgICAgICBzZWxlY3QudmFsdWUgPSB2YWx1ZXNbMF07DQogICAgICAgIH0NCiAgICAgICAgcmV0dXJuIHNlbGVjdDsNCiAgICB9DQogICAgc2VsZWN0T3B0aW9uKHNlbGVjdCwgdmFsdWUpIHsNCiAgICAgICAgLy9zZWxlY3Quc2VsZWN0ZWRPcHRpb25zID0gdmFsdWUNCiAgICAgICAgbGV0IHMgPSBzZWxlY3Q7DQogICAgICAgIHMub3B0aW9uc1tzLnNlbGVjdGVkSW5kZXhdLnZhbHVlID0gdmFsdWU7DQogICAgICAgIHJldHVybiBzZWxlY3Q7DQogICAgfQ0KICAgIGRlc2NyaXB0aW9uKHZhbHVlKSB7DQogICAgICAgIGxldCB0ciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlRSIik7DQogICAgICAgIGxldCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgIGxldCBzcGFuID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiUFJFIik7DQogICAgICAgIHNwYW4uaW5uZXJIVE1MID0gdmFsdWU7DQogICAgICAgIHRyLmFwcGVuZENoaWxkKHRkKTsNCiAgICAgICAgdHIuYXBwZW5kQ2hpbGQodGhpcy5jcmVhdGVDb250ZW50KHNwYW4pKTsNCiAgICAgICAgdGhpcy50YWJsZS5hcHBlbmRDaGlsZCh0cik7DQogICAgfQ0KICAgIC8vIEludGVyYWN0aW9uDQogICAgYWRkSW50ZXJhY3Rpb24oZWxlbWVudCkgew0KICAgICAgICBsZXQgaW50ZXJhY3Rpb24gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicG9wdXAtaW50ZXJhY3Rpb24iKTsNCiAgICAgICAgaW50ZXJhY3Rpb24uYXBwZW5kQ2hpbGQoZWxlbWVudCk7DQogICAgfQ0KfQ0KZnVuY3Rpb24gb3BlblBvcFVwKGRhdGFUeXBlLCBlbGVtZW50KSB7DQogICAgbGV0IGRhdGEgPSB7fTsNCiAgICBsZXQgaWQ7DQogICAgc3dpdGNoIChlbGVtZW50KSB7DQogICAgICAgIGNhc2UgdW5kZWZpbmVkOg0KICAgICAgICAgICAgc3dpdGNoIChkYXRhVHlwZSkgew0KICAgICAgICAgICAgICAgIGNhc2UgImdyb3VwLXRpdGxlIjoNCiAgICAgICAgICAgICAgICAgICAgaWYgKGlkID09IHVuZGVmaW5lZCkgew0KICAgICAgICAgICAgICAgICAgICAgICAgaWQgPSAtMTsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBkYXRhID0gZ2V0TG9jYWxEYXRhKCJmaWx0ZXIiLCBpZCk7DQogICAgICAgICAgICAgICAgICAgIGRhdGFbInR5cGUiXSA9ICJncm91cC10aXRsZSI7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgImN1c3RvbS1maWx0ZXIiOg0KICAgICAgICAgICAgICAgICAgICBpZiAoaWQgPT0gdW5kZWZpbmVkKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBpZCA9IC0xOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIGRhdGEgPSBnZXRMb2NhbERhdGEoImZpbHRlciIsIGlkKTsNCiAgICAgICAgICAgICAgICAgICAgZGF0YVsidHlwZSJdID0gImN1c3RvbS1maWx0ZXIiOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBkZWZhdWx0Og0KICAgICAgICAgICAgICAgICAgICBkYXRhWyJpZC5wcm92aWRlciJdID0gIi0iOw0KICAgICAgICAgICAgICAgICAgICBkYXRhWyJ0eXBlIl0gPSBkYXRhVHlwZTsNCiAgICAgICAgICAgICAgICAgICAgaWQgPSAiLSI7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICBpZCA9IGVsZW1lbnQuaWQ7DQogICAgICAgICAgICBkYXRhID0gZ2V0TG9jYWxEYXRhKGRhdGFUeXBlLCBpZCk7DQogICAgICAgICAgICBicmVhazsNCiAgICB9DQogICAgbGV0IGNvbnRlbnQgPSBuZXcgUG9wdXBDb250ZW50KCk7DQogICAgc3dpdGNoIChkYXRhVHlwZSkgew0KICAgICAgICBjYXNlICJwbGF5bGlzdCI6DQogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUhlYWRsaW5lKCJ7ey5wbGF5bGlzdC5wbGF5bGlzdFR5cGUudGl0bGV9fSIpOw0KICAgICAgICAgICAgLy8gVHlwZQ0KICAgICAgICAgICAgdmFyIHRleHQgPSBbIk0zVSIsICJIREhvbWVSdW4iXTsNCiAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBbImphdmFzY3JpcHQ6IG9wZW5Qb3BVcCgnbTN1JykiLCAiamF2YXNjcmlwdDogb3BlblBvcFVwKCdoZGhyJykiXTsNCiAgICAgICAgICAgIHZhciBzZWxlY3QgPSBjb250ZW50LmNyZWF0ZVNlbGVjdCh0ZXh0LCB2YWx1ZXMsICIiLCAidHlwZSIpOw0KICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgiaWQiLCAidHlwZSIpOw0KICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAnamF2YXNjcmlwdDogY2hhbmdlQnV0dG9uQWN0aW9uKHRoaXMsICJuZXh0IiwgIm9uY2xpY2siKScpOyAvLyBjaGFuZ2VCdXR0b25BY3Rpb24NCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5wbGF5bGlzdC50eXBlLnRpdGxlfX0iLCBzZWxlY3QpOw0KICAgICAgICAgICAgLy8gSW50ZXJhY3Rpb24NCiAgICAgICAgICAgIGNvbnRlbnQuY3JlYXRlSW50ZXJhY3Rpb24oKTsNCiAgICAgICAgICAgIC8vIEFib3J0DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAiY2FuY2VsIiwgInt7LmJ1dHRvbi5jYW5jZWx9fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IHNob3dFbGVtZW50KCJwb3B1cCIsIGZhbHNlKTsnKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgLy8gTmV4dA0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgIm5leHQiLCAie3suYnV0dG9uLm5leHR9fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgibTN1IiknKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgiaWQiLCAnbmV4dCcpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSAibTN1IjoNCiAgICAgICAgICAgIGNvbnRlbnQuY3JlYXRlSGVhZGxpbmUoZGF0YVR5cGUpOw0KICAgICAgICAgICAgLy8gTmFtZQ0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gIm5hbWUiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnBsYXlsaXN0Lm5hbWUucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnBsYXlsaXN0Lm5hbWUudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIERlc2NyaXB0aW9uDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAiZGVzY3JpcHRpb24iOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnBsYXlsaXN0LmRlc2NyaXB0aW9uLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5wbGF5bGlzdC5kZXNjcmlwdGlvbi50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgLy8gVVJMDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAiZmlsZS5zb3VyY2UiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnBsYXlsaXN0LmZpbGVNM1UucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnBsYXlsaXN0LmZpbGVNM1UudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIFR1bmVyDQogICAgICAgICAgICBpZiAoU0VSVkVSWyJzZXR0aW5ncyJdWyJidWZmZXIiXSAhPSAiLSIpIHsNCiAgICAgICAgICAgICAgICB2YXIgdGV4dCA9IFtdOw0KICAgICAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBbXTsNCiAgICAgICAgICAgICAgICBmb3IgKHZhciBpID0gMTsgaSA8PSAxMDA7IGkrKykgew0KICAgICAgICAgICAgICAgICAgICB0ZXh0LnB1c2goaS50b1N0cmluZygpKTsNCiAgICAgICAgICAgICAgICAgICAgdmFsdWVzLnB1c2goaS50b1N0cmluZygpKTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgdmFyIGRiS2V5ID0gInR1bmVyIjsNCiAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCBkYXRhW2RiS2V5XSwgZGJLZXkpOw0KICAgICAgICAgICAgICAgIHNlbGVjdC5zZXRBdHRyaWJ1dGUoIm9uZm9jdXMiLCAiamF2YXNjcmlwdDogcmV0dXJuOyIpOw0KICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5wbGF5bGlzdC50dW5lci50aXRsZX19Iiwgc2VsZWN0KTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgICAgIHZhciBkYktleSA9ICJ0dW5lciI7DQogICAgICAgICAgICAgICAgaWYgKGRhdGFbZGJLZXldID09IHVuZGVmaW5lZCkgew0KICAgICAgICAgICAgICAgICAgICBkYXRhW2RiS2V5XSA9IDE7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicmVhZG9ubHkiLCAidHJ1ZSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LmNsYXNzTmFtZSA9ICJub3RBdmFpbGFibGUiOw0KICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5wbGF5bGlzdC50dW5lci50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgY29udGVudC5kZXNjcmlwdGlvbigie3sucGxheWxpc3QudHVuZXIuZGVzY3JpcHRpb259fSIpOw0KICAgICAgICAgICAgLy8gSW50ZXJhdGlvbg0KICAgICAgICAgICAgY29udGVudC5jcmVhdGVJbnRlcmFjdGlvbigpOw0KICAgICAgICAgICAgLy8gRGVsZXRlDQogICAgICAgICAgICBpZiAoZGF0YVsiaWQucHJvdmlkZXIiXSAhPSAiLSIpIHsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAiZGVsZXRlIiwgInt7LmJ1dHRvbi5kZWxldGV9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LmNsYXNzTmFtZSA9ICJkZWxldGUiOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBzYXZlUG9wdXBEYXRhKCJtM3UiLCAiJyArIGlkICsgJyIsIHRydWUsIDApJyk7DQogICAgICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAiYmFjayIsICJ7ey5idXR0b24uYmFja319Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgicGxheWxpc3QiKScpOw0KICAgICAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgLy8gQWJvcnQNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJjYW5jZWwiLCAie3suYnV0dG9uLmNhbmNlbH19Iik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogc2hvd0VsZW1lbnQoInBvcHVwIiwgZmFsc2UpOycpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICAvLyBVcGRhdGUNCiAgICAgICAgICAgIGlmIChkYXRhWyJpZC5wcm92aWRlciJdICE9ICItIikgew0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJ1cGRhdGUiLCAie3suYnV0dG9uLnVwZGF0ZX19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoIm0zdSIsICInICsgaWQgKyAnIiwgZmFsc2UsIDEpJyk7DQogICAgICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICAvLyBTYXZlDQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAic2F2ZSIsICJ7ey5idXR0b24uc2F2ZX19Iik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogc2F2ZVBvcHVwRGF0YSgibTN1IiwgIicgKyBpZCArICciLCBmYWxzZSwgMCknKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGNhc2UgImhkaHIiOg0KICAgICAgICAgICAgY29udGVudC5jcmVhdGVIZWFkbGluZShkYXRhVHlwZSk7DQogICAgICAgICAgICAvLyBOYW1lDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAibmFtZSI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3sucGxheWxpc3QubmFtZS5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sucGxheWxpc3QubmFtZS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgLy8gRGVzY3JpcHRpb24NCiAgICAgICAgICAgIHZhciBkYktleSA9ICJkZXNjcmlwdGlvbiI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3sucGxheWxpc3QuZGVzY3JpcHRpb24ucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnBsYXlsaXN0LmRlc2NyaXB0aW9uLnBsYWNlaG9sZGVyfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBVUkwNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJmaWxlLnNvdXJjZSI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3sucGxheWxpc3QuZmlsZUhESFIucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnBsYXlsaXN0LmZpbGVIREhSLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBUdW5lcg0KICAgICAgICAgICAgaWYgKFNFUlZFUlsic2V0dGluZ3MiXVsiYnVmZmVyIl0gIT0gIi0iKSB7DQogICAgICAgICAgICAgICAgdmFyIHRleHQgPSBbXTsNCiAgICAgICAgICAgICAgICB2YXIgdmFsdWVzID0gW107DQogICAgICAgICAgICAgICAgZm9yICh2YXIgaSA9IDE7IGkgPD0gMTAwOyBpKyspIHsNCiAgICAgICAgICAgICAgICAgICAgdGV4dC5wdXNoKGkudG9TdHJpbmcoKSk7DQogICAgICAgICAgICAgICAgICAgIHZhbHVlcy5wdXNoKGkudG9TdHJpbmcoKSk7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIHZhciBkYktleSA9ICJ0dW5lciI7DQogICAgICAgICAgICAgICAgdmFyIHNlbGVjdCA9IGNvbnRlbnQuY3JlYXRlU2VsZWN0KHRleHQsIHZhbHVlcywgZGF0YVtkYktleV0sIGRiS2V5KTsNCiAgICAgICAgICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJvbmZvY3VzIiwgImphdmFzY3JpcHQ6IHJldHVybjsiKTsNCiAgICAgICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sucGxheWxpc3QudHVuZXIudGl0bGV9fSIsIHNlbGVjdCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICB2YXIgZGJLZXkgPSAidHVuZXIiOw0KICAgICAgICAgICAgICAgIGlmIChkYXRhW2RiS2V5XSA9PSB1bmRlZmluZWQpIHsNCiAgICAgICAgICAgICAgICAgICAgZGF0YVtkYktleV0gPSAxOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInJlYWRvbmx5IiwgInRydWUiKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5jbGFzc05hbWUgPSAibm90QXZhaWxhYmxlIjsNCiAgICAgICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sucGxheWxpc3QudHVuZXIudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGNvbnRlbnQuZGVzY3JpcHRpb24oInt7LnBsYXlsaXN0LnR1bmVyLmRlc2NyaXB0aW9ufX0iKTsNCiAgICAgICAgICAgIC8vIEludGVyYWN0aW9uDQogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUludGVyYWN0aW9uKCk7DQogICAgICAgICAgICAvLyBEZWxldGUNCiAgICAgICAgICAgIGlmIChkYXRhWyJpZC5wcm92aWRlciJdICE9ICItIikgew0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJkZWxldGUiLCAie3suYnV0dG9uLmRlbGV0ZX19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoImhkaHIiLCAiJyArIGlkICsgJyIsIHRydWUsIDApJyk7DQogICAgICAgICAgICAgICAgaW5wdXQuY2xhc3NOYW1lID0gImRlbGV0ZSI7DQogICAgICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAiYmFjayIsICJ7ey5idXR0b24uYmFja319Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgicGxheWxpc3QiKScpOw0KICAgICAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgLy8gQWJvcnQNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJjYW5jZWwiLCAie3suYnV0dG9uLmNhbmNlbH19Iik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogc2hvd0VsZW1lbnQoInBvcHVwIiwgZmFsc2UpOycpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICAvLyBVcGRhdGUNCiAgICAgICAgICAgIGlmIChkYXRhWyJpZC5wcm92aWRlciJdICE9ICItIikgew0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJ1cGRhdGUiLCAie3suYnV0dG9uLnVwZGF0ZX19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoImhkaHIiLCAiJyArIGlkICsgJyIsIGZhbHNlLCAxKScpOw0KICAgICAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgLy8gU2F2ZQ0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgInNhdmUiLCAie3suYnV0dG9uLnNhdmV9fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoImhkaHIiLCAiJyArIGlkICsgJyIsIGZhbHNlLCAwKScpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSAiZmlsdGVyIjoNCiAgICAgICAgICAgIGNvbnRlbnQuY3JlYXRlSGVhZGxpbmUoZGF0YVR5cGUpOw0KICAgICAgICAgICAgLy8gVHlwZQ0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gInR5cGUiOw0KICAgICAgICAgICAgdmFyIHRleHQgPSBbIk0zVTogIiArICJ7ey5maWx0ZXIudHlwZS5ncm91cFRpdGxlfX0iLCAieFRlVmU6ICIgKyAie3suZmlsdGVyLnR5cGUuY3VzdG9tRmlsdGVyfX0iXTsNCiAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBbImphdmFzY3JpcHQ6IG9wZW5Qb3BVcCgnZ3JvdXAtdGl0bGUnKSIsICJqYXZhc2NyaXB0OiBvcGVuUG9wVXAoJ2N1c3RvbS1maWx0ZXInKSJdOw0KICAgICAgICAgICAgdmFyIHNlbGVjdCA9IGNvbnRlbnQuY3JlYXRlU2VsZWN0KHRleHQsIHZhbHVlcywgImphdmFzY3JpcHQ6IG9wZW5Qb3BVcCgnZ3JvdXAtdGl0bGUnKSIsIGRiS2V5KTsNCiAgICAgICAgICAgIHNlbGVjdC5zZXRBdHRyaWJ1dGUoImlkIiwgaWQpOw0KICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAnamF2YXNjcmlwdDogY2hhbmdlQnV0dG9uQWN0aW9uKHRoaXMsICJuZXh0IiwgIm9uY2xpY2siKTsnKTsgLy8gY2hhbmdlQnV0dG9uQWN0aW9uDQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3suZmlsdGVyLnR5cGUudGl0bGV9fSIsIHNlbGVjdCk7DQogICAgICAgICAgICAvLyBJbnRlcmFjdGlvbg0KICAgICAgICAgICAgY29udGVudC5jcmVhdGVJbnRlcmFjdGlvbigpOw0KICAgICAgICAgICAgLy8gQWJvcnQNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJjYW5jZWwiLCAie3suYnV0dG9uLmNhbmNlbH19Iik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogc2hvd0VsZW1lbnQoInBvcHVwIiwgZmFsc2UpOycpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICAvLyBOZXh0DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAibmV4dCIsICJ7ey5idXR0b24ubmV4dH19Iik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJncm91cC10aXRsZSIpJyk7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoImlkIiwgJ25leHQnKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGNhc2UgImN1c3RvbS1maWx0ZXIiOg0KICAgICAgICBjYXNlICJncm91cC10aXRsZSI6DQogICAgICAgICAgICBzd2l0Y2ggKGRhdGFUeXBlKSB7DQogICAgICAgICAgICAgICAgY2FzZSAiY3VzdG9tLWZpbHRlciI6DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuY3JlYXRlSGVhZGxpbmUoInt7LmZpbHRlci5jdXN0b219fSIgKyAiIEZpbHRlciIpOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBjYXNlICJncm91cC10aXRsZSI6DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuY3JlYXRlSGVhZGxpbmUoInt7LmZpbHRlci5ncm91cH19IiArICIgRmlsdGVyIik7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgLy8gTmFtZSAgICAgIA0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gIm5hbWUiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LmZpbHRlci5uYW1lLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5maWx0ZXIubmFtZS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgLy8gRGVzY3JpcHRpb24NCiAgICAgICAgICAgIHZhciBkYktleSA9ICJkZXNjcmlwdGlvbiI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3suZmlsdGVyLmRlc2NyaXB0aW9uLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5maWx0ZXIuZGVzY3JpcHRpb24udGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIFR5cGUNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJ0eXBlIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImhpZGRlbiIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygiIiwgaW5wdXQpOw0KICAgICAgICAgICAgdmFyIGZpbHRlclR5cGUgPSBkYXRhW2RiS2V5XTsNCiAgICAgICAgICAgIHN3aXRjaCAoZmlsdGVyVHlwZSkgew0KICAgICAgICAgICAgICAgIGNhc2UgImN1c3RvbS1maWx0ZXIiOg0KICAgICAgICAgICAgICAgICAgICAvLyBDYXNlIHNlbnNpdGl2ZQ0KICAgICAgICAgICAgICAgICAgICB2YXIgZGJLZXkgPSAiY2FzZVNlbnNpdGl2ZSI7DQogICAgICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goZGJLZXkpOw0KICAgICAgICAgICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YVtkYktleV07DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5maWx0ZXIuY2FzZVNlbnNpdGl2ZS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgICAgICAgICAvLyBGaWx0ZXIgUnVsZSAoQ3VzdG9tKQ0KICAgICAgICAgICAgICAgICAgICB2YXIgZGJLZXkgPSAiZmlsdGVyIjsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3suZmlsdGVyLmZpbHRlclJ1bGUucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3suZmlsdGVyLmZpbHRlclJ1bGUudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAiZ3JvdXAtdGl0bGUiOg0KICAgICAgICAgICAgICAgICAgICAvL2FsZXJ0KGRiS2V5ICsgIiAiICsgZmlsdGVyVHlwZSkNCiAgICAgICAgICAgICAgICAgICAgLy8gRmlsdGVyIGJhc2VkIG9uIHRoZSBncm91cHMgaW4gdGhlIE0zVQ0KICAgICAgICAgICAgICAgICAgICB2YXIgZGJLZXkgPSAiZmlsdGVyIjsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGdyb3Vwc00zVSA9IGdldExvY2FsRGF0YSgibTN1R3JvdXBzIiwgIiIpOw0KICAgICAgICAgICAgICAgICAgICB2YXIgdGV4dCA9IGdyb3Vwc00zVVsidGV4dCJdOw0KICAgICAgICAgICAgICAgICAgICB2YXIgdmFsdWVzID0gZ3JvdXBzTTNVWyJ2YWx1ZSJdOw0KICAgICAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCBkYXRhW2RiS2V5XSwgZGJLZXkpOw0KICAgICAgICAgICAgICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3suZmlsdGVyLmZpbHRlckdyb3VwLnRpdGxlfX0iLCBzZWxlY3QpOw0KICAgICAgICAgICAgICAgICAgICBjb250ZW50LmRlc2NyaXB0aW9uKCJ7ey5maWx0ZXIuZmlsdGVyR3JvdXAuZGVzY3JpcHRpb259fSIpOw0KICAgICAgICAgICAgICAgICAgICAvLyBDYXNlIHNlbnNldGl2ZQ0KICAgICAgICAgICAgICAgICAgICB2YXIgZGJLZXkgPSAiY2FzZVNlbnNpdGl2ZSI7DQogICAgICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goZGJLZXkpOw0KICAgICAgICAgICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YVtkYktleV07DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5maWx0ZXIuY2FzZVNlbnNpdGl2ZS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgICAgICAgICB2YXIgZGJLZXkgPSAiaW5jbHVkZSI7DQogICAgICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LmZpbHRlci5pbmNsdWRlLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LmZpbHRlci5pbmNsdWRlLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuZGVzY3JpcHRpb24oInt7LmZpbHRlci5pbmNsdWRlLmRlc2NyaXB0aW9ufX0iKTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGRiS2V5ID0gImV4Y2x1ZGUiOw0KICAgICAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5maWx0ZXIuZXhjbHVkZS5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5maWx0ZXIuZXhjbHVkZS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgICAgICAgICBjb250ZW50LmRlc2NyaXB0aW9uKCJ7ey5maWx0ZXIuZXhjbHVkZS5kZXNjcmlwdGlvbn19Iik7DQogICAgICAgICAgICAgICAgICAgIC8vIFByZXNlcnZlIE0zVSBQbGF5bGlzdCBDaGFubmVsIE1hcHBpbmcNCiAgICAgICAgICAgICAgICAgICAgdmFyIGRiS2V5ID0gInByZXNlcnZlTWFwcGluZyI7DQogICAgICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goZGJLZXkpOw0KICAgICAgICAgICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YVtkYktleV07DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5maWx0ZXIucHJlc2VydmVNYXBwaW5nLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAgICAgICAgIC8vIFN0YXJ0aW5nIENoYW5uZWwgTnVtYmVyIE1hcHBpbmcNCiAgICAgICAgICAgICAgICAgICAgdmFyIGRiS2V5ID0gInN0YXJ0aW5nQ2hhbm5lbCI7DQogICAgICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LmZpbHRlci5zdGFydGluZ0NoYW5uZWwucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3suZmlsdGVyLnN0YXJ0aW5nQ2hhbm5lbC50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgICAgICAgICAvLyBGaWxsIE1pc3NpbmcgRVBHIERhdGENCiAgICAgICAgICAgICAgICAgICAgLy8gVGhlIGZvbGxvd2luZyBjb2RlIG9ubHkgd29ya3Mgd2hlbiB4VGVWZSBEdW1teSBhbHJlYWR5IGV4aXN0cw0KICAgICAgICAgICAgICAgICAgICAvLyB2YXIgZGJLZXk6c3RyaW5nID0gImRlZmF1bHRNaXNzaW5nRVBHIg0KICAgICAgICAgICAgICAgICAgICAvLyB2YXIgeG1sdHY6WE1MVFZGaWxlID0gbmV3IFhNTFRWRmlsZSgpDQogICAgICAgICAgICAgICAgICAgIC8vIHZhciBzZWxlY3QgPSB4bWx0di5nZXRQcm9ncmFtcygieFRlVmUgRHVtbXkiLCBkYXRhW2RiS2V5XSkNCiAgICAgICAgICAgICAgICAgICAgLy8gc2VsZWN0LnNldEF0dHJpYnV0ZSgibmFtZSIsIGRiS2V5KQ0KICAgICAgICAgICAgICAgICAgICAvLyBzZWxlY3Quc2V0QXR0cmlidXRlKCJpZCIsICJwb3B1cC1taXNzaW5nLWVwZyIpDQogICAgICAgICAgICAgICAgICAgIC8vIFRoZSB3b3JrYXJvdW5kIGlzIGN1cnJlbnRseSB0byBoYXJkIGNvZGUgdGhlIHhUZVZlIER1bW15IGRhdGENCiAgICAgICAgICAgICAgICAgICAgdmFyIGRiS2V5ID0gImRlZmF1bHRNaXNzaW5nRVBHIjsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGxpc3RPcHRpb25zID0geyAidGV4dCI6IFsiLSIsICIzMCBNaW51dGVzICgzMF9NaW51dGVzKSIsICI2MCBNaW51dGVzICg2MF9NaW51dGVzKSIsICI5MCBNaW51dGVzICg5MF9NaW51dGVzKSIsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgIjEyMCBNaW51dGVzICgxMjBfTWludXRlcykiLCAiMTgwIE1pbnV0ZXMgKDMwX01pbnV0ZXMpIiwgIjI0MCBNaW51dGVzICgzMF9NaW51dGVzKSIsICIzNjAgTWludXRlcyAoMzBfTWludXRlcykiXSwNCiAgICAgICAgICAgICAgICAgICAgICAgICJ2YWx1ZSI6IFsiLSIsICIzMF9NaW51dGVzIiwgIjYwX01pbnV0ZXMiLCAiOTBfTWludXRlcyIsICIxMjBfTWludXRlcyIsICIxODBfTWludXRlcyIsICIyNDBfTWludXRlcyIsICIzNjBfTWludXRlcyIsXSB9Ow0KICAgICAgICAgICAgICAgICAgICB2YXIgdGV4dCA9IGxpc3RPcHRpb25zWyJ0ZXh0Il07DQogICAgICAgICAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBsaXN0T3B0aW9uc1sidmFsdWUiXTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHNlbGVjdCA9IGNvbnRlbnQuY3JlYXRlU2VsZWN0KHRleHQsIHZhbHVlcywgZGF0YVtkYktleV0sIGRiS2V5KTsNCiAgICAgICAgICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LmZpbHRlci5kZWZhdWx0TWlzc2luZ0VQRy50aXRsZX19Iiwgc2VsZWN0KTsNCiAgICAgICAgICAgICAgICAgICAgY29udGVudC5kZXNjcmlwdGlvbigie3suZmlsdGVyLmRlZmF1bHRNaXNzaW5nRVBHLmRlc2NyaXB0aW9ufX0iKTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICB9DQogICAgICAgICAgICAvLyBJbnRlcmFjdGlvbg0KICAgICAgICAgICAgY29udGVudC5jcmVhdGVJbnRlcmFjdGlvbigpOw0KICAgICAgICAgICAgLy8gRGVsZXRlDQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAiZGVsZXRlIiwgInt7LmJ1dHRvbi5kZWxldGV9fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoImZpbHRlciIsICInICsgaWQgKyAnIiwgdHJ1ZSwgMCknKTsNCiAgICAgICAgICAgIGlucHV0LmNsYXNzTmFtZSA9ICJkZWxldGUiOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICAvLyBBYm9ydA0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImNhbmNlbCIsICJ7ey5idXR0b24uY2FuY2VsfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBzaG93RWxlbWVudCgicG9wdXAiLCBmYWxzZSk7Jyk7DQogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIC8vIFNhdmUNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJzYXZlIiwgInt7LmJ1dHRvbi5zYXZlfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBzYXZlUG9wdXBEYXRhKCJmaWx0ZXIiLCAiJyArIGlkICsgJyIsIGZhbHNlLCAwKScpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSAieG1sdHYiOg0KICAgICAgICAgICAgY29udGVudC5jcmVhdGVIZWFkbGluZShkYXRhVHlwZSk7DQogICAgICAgICAgICAvLyBOYW1lDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAibmFtZSI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3sueG1sdHYubmFtZS5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sueG1sdHYubmFtZS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgLy8gRGVzY3JpcHRpb24NCiAgICAgICAgICAgIHZhciBkYktleSA9ICJkZXNjcmlwdGlvbiI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3sueG1sdHYuZGVzY3JpcHRpb24ucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnhtbHR2LmRlc2NyaXB0aW9uLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBVUkwNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJmaWxlLnNvdXJjZSI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3sueG1sdHYuZmlsZVhNTFRWLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey54bWx0di5maWxlWE1MVFYudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIEludGVyYWN0aW9uDQogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUludGVyYWN0aW9uKCk7DQogICAgICAgICAgICAvLyBEZWxldGUNCiAgICAgICAgICAgIGlmIChkYXRhWyJpZC5wcm92aWRlciJdICE9ICItIikgew0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJkZWxldGUiLCAie3suYnV0dG9uLmRlbGV0ZX19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoInhtbHR2IiwgIicgKyBpZCArICciLCB0cnVlLCAwKScpOw0KICAgICAgICAgICAgICAgIGlucHV0LmNsYXNzTmFtZSA9ICJkZWxldGUiOw0KICAgICAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgLy8gQWJvcnQNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJjYW5jZWwiLCAie3suYnV0dG9uLmNhbmNlbH19Iik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogc2hvd0VsZW1lbnQoInBvcHVwIiwgZmFsc2UpOycpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICAvLyBVcGRhdGUNCiAgICAgICAgICAgIGlmIChkYXRhWyJpZC5wcm92aWRlciJdICE9ICItIikgew0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJ1cGRhdGUiLCAie3suYnV0dG9uLnVwZGF0ZX19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoInhtbHR2IiwgIicgKyBpZCArICciLCBmYWxzZSwgMSknKTsNCiAgICAgICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIC8vIFNhdmUNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJzYXZlIiwgInt7LmJ1dHRvbi5zYXZlfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBzYXZlUG9wdXBEYXRhKCJ4bWx0diIsICInICsgaWQgKyAnIiwgZmFsc2UsIDApJyk7DQogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJ1c2VycyI6DQogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUhlYWRsaW5lKCJ7ey5tYWluTWVudS5pdGVtLnVzZXJzfX0iKTsNCiAgICAgICAgICAgIC8vIFVzZXIgbmFtZQ0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gInVzZXJuYW1lIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey51c2Vycy51c2VybmFtZS5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sudXNlcnMudXNlcm5hbWUudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIE5ldyBQYXJzc3dvcmQNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJwYXNzd29yZCI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJwYXNzd29yZCIsIGRiS2V5LCAiIik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnVzZXJzLnBhc3N3b3JkLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey51c2Vycy5wYXNzd29yZC50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgLy8gQ29uZmlybWF0aW9uDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAiY29uZmlybSI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJwYXNzd29yZCIsIGRiS2V5LCAiIik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnVzZXJzLmNvbmZpcm0ucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnVzZXJzLmNvbmZpcm0udGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIEF1dGhlbnRpY2F0aW9uIFdFQg0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gImF1dGhlbnRpY2F0aW9uLndlYiI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KGRiS2V5KTsNCiAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhW2RiS2V5XTsNCiAgICAgICAgICAgIGlmIChkYXRhWyJkZWZhdWx0VXNlciJdID09IHRydWUpIHsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAiamF2YXNjcmlwdDogcmV0dXJuIGZhbHNlIik7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sudXNlcnMud2ViLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBBdXRoZW50aWNhdGlvbiBQTVMNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJhdXRoZW50aWNhdGlvbi5wbXMiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChkYktleSk7DQogICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YVtkYktleV07DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sudXNlcnMucG1zLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBBdXRoZW50aWNhdGlvbiBNM1UNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJhdXRoZW50aWNhdGlvbi5tM3UiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChkYktleSk7DQogICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YVtkYktleV07DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sudXNlcnMubTN1LnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBBdXRoZW50aWNhdGlvbiBYTUwNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJhdXRoZW50aWNhdGlvbi54bWwiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChkYktleSk7DQogICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YVtkYktleV07DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sudXNlcnMueG1sLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBBdXRoZW50aWNhdGlvbiBBUEkNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJhdXRoZW50aWNhdGlvbi5hcGkiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChkYktleSk7DQogICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YVtkYktleV07DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sudXNlcnMuYXBpLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBJbnRlcmFjdGlvbg0KICAgICAgICAgICAgY29udGVudC5jcmVhdGVJbnRlcmFjdGlvbigpOw0KICAgICAgICAgICAgLy8gRGVsZXRlDQogICAgICAgICAgICBpZiAoZGF0YVsiZGVmYXVsdFVzZXIiXSAhPSB0cnVlICYmIGlkICE9ICItIikgew0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJkZWxldGUiLCAie3suYnV0dG9uLmRlbGV0ZX19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuY2xhc3NOYW1lID0gImRlbGV0ZSI7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoIicgKyBkYXRhVHlwZSArICciLCAiJyArIGlkICsgJyIsIHRydWUsIDApJyk7DQogICAgICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICAvLyBBYm9ydA0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImNhbmNlbCIsICJ7ey5idXR0b24uY2FuY2VsfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBzaG93RWxlbWVudCgicG9wdXAiLCBmYWxzZSk7Jyk7DQogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIC8vIFNhdmUNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJzYXZlIiwgInt7LmJ1dHRvbi5zYXZlfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBzYXZlUG9wdXBEYXRhKCInICsgZGF0YVR5cGUgKyAnIiwgIicgKyBpZCArICciLCAiZmFsc2UiKTsnKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGNhc2UgIm1hcHBpbmciOg0KICAgICAgICAgICAgY29udGVudC5jcmVhdGVIZWFkbGluZSgie3subWFpbk1lbnUuaXRlbS5tYXBwaW5nfX0iKTsNCiAgICAgICAgICAgIC8vIEFjdGl2ZQ0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gIngtYWN0aXZlIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goZGJLZXkpOw0KICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGFbZGJLZXldOw0KICAgICAgICAgICAgaW5wdXQuaWQgPSAiYWN0aXZlIjsNCiAgICAgICAgICAgIC8vaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpDQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRvZ2dsZUNoYW5uZWxTdGF0dXMoJyIgKyBpZCArICInLCB0aGlzKSIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7Lm1hcHBpbmcuYWN0aXZlLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBDaGFubmVsIG5hbWUNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJ4LW5hbWUiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICBpZiAoQlVMS19FRElUID09IHRydWUpIHsNCiAgICAgICAgICAgICAgICBpbnB1dC5zdHlsZS5ib3JkZXIgPSAic29saWQgMXB4IHJlZCI7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJyZWFkb25seSIsICJ0cnVlIik7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3subWFwcGluZy5jaGFubmVsTmFtZS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgY29udGVudC5kZXNjcmlwdGlvbihkYXRhWyJuYW1lIl0pOw0KICAgICAgICAgICAgLy8gRGVzY3JpcHRpb24NCiAgICAgICAgICAgIHZhciBkYktleSA9ICJ4LWRlc2NyaXB0aW9uIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5tYXBwaW5nLmRlc2NyaXB0aW9uLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5tYXBwaW5nLmRlc2NyaXB0aW9uLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBVcGRhdGUgdGhlIGNoYW5uZWwgbmFtZQ0KICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoIl91dWlkLmtleSIpKSB7DQogICAgICAgICAgICAgICAgaWYgKGRhdGFbIl91dWlkLmtleSJdICE9ICIiKSB7DQogICAgICAgICAgICAgICAgICAgIHZhciBkYktleSA9ICJ4LXVwZGF0ZS1jaGFubmVsLW5hbWUiOw0KICAgICAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KGRiS2V5KTsNCiAgICAgICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YVtkYktleV07DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5tYXBwaW5nLnVwZGF0ZUNoYW5uZWxOYW1lLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgLy8gTG9nbyBVUkwgKENoYW5uZWwpIA0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gInR2Zy1sb2dvIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJpZCIsICJjaGFubmVsLWljb24iKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5tYXBwaW5nLmNoYW5uZWxMb2dvLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBDaGFubmVsIGxvZ28gdXBkYXRlDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAieC11cGRhdGUtY2hhbm5lbC1pY29uIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goZGJLZXkpOw0KICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGFbZGJLZXldOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJpZCIsICJ1cGRhdGUtaWNvbiIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJzsgY2hhbmdlQ2hhbm5lbExvZ28oJyIgKyBpZCArICInKTsiKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5tYXBwaW5nLnVwZGF0ZUNoYW5uZWxMb2dvLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBFeHBhbmQgRVBHIGNhdGVnb3J5DQogICAgICAgICAgICB2YXIgZGJLZXkgPSAieC1jYXRlZ29yeSI7DQogICAgICAgICAgICB2YXIgdGV4dCA9IFsiLSIsICJLaWRzIChFbWJ5IG9ubHkpIiwgIk5ld3MiLCAiTW92aWUiLCAiU2VyaWVzIiwgIlNwb3J0cyJdOw0KICAgICAgICAgICAgdmFyIHZhbHVlcyA9IFsiIiwgIktpZHMiLCAiTmV3cyIsICJNb3ZpZSIsICJTZXJpZXMiLCAiU3BvcnRzIl07DQogICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCBkYXRhW2RiS2V5XSwgZGJLZXkpOw0KICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5tYXBwaW5nLmVwZ0NhdGVnb3J5LnRpdGxlfX0iLCBzZWxlY3QpOw0KICAgICAgICAgICAgLy8gTTNVIGdyb3VwIHRpdGxlDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAieC1ncm91cC10aXRsZSI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgIGlucHV0LmRhdGFzZXQub2xkVmFsdWUgPSBkYXRhW2RiS2V5XTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5tYXBwaW5nLm0zdUdyb3VwVGl0bGUudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIGlmIChkYXRhWyJncm91cC10aXRsZSJdICE9IHVuZGVmaW5lZCkgew0KICAgICAgICAgICAgICAgIGNvbnRlbnQuZGVzY3JpcHRpb24oZGF0YVsiZ3JvdXAtdGl0bGUiXSk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBpZiAoZGF0YVsieC11cGRhdGUtY2hhbm5lbC1ncm91cCJdID09IHRydWUpIHsNCiAgICAgICAgICAgICAgICBpbnB1dC5kaXNhYmxlZCA9IHRydWU7DQogICAgICAgICAgICB9DQogICAgICAgICAgICAvLyBVcGRhdGUgY2hhbm5lbCBncm91cCBjaGVja2JveA0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gIngtdXBkYXRlLWNoYW5uZWwtZ3JvdXAiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChkYktleSk7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRvZ2dsZUdyb3VwVXBkYXRlQ2IoJyIgKyBpZCArICInLCB0aGlzKTsiKTsNCiAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhW2RiS2V5XTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5tYXBwaW5nLnVwZGF0ZUNoYW5uZWxHcm91cC50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgY29udGVudC5kZXNjcmlwdGlvbigie3subWFwcGluZy51cGRhdGVDaGFubmVsR3JvdXAuZGVzY3JpcHRpb259fSIpOw0KICAgICAgICAgICAgLy8gWE1MVFYgZmlsZQ0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gJ3gteG1sdHYtZmlsZSc7DQogICAgICAgICAgICBjb25zdCB4bWxUdkZpbGUgPSBkYXRhW2RiS2V5XTsNCiAgICAgICAgICAgIHZhciB4bWxUdiA9IG5ldyBYTUxUVkZpbGUoKTsNCiAgICAgICAgICAgIGNvbnN0IHhtbFR2RmlsZVNlbGVjdCA9IHhtbFR2LmdldEZpbGVzKGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIHhtbFR2RmlsZVNlbGVjdC5zZXRBdHRyaWJ1dGUoJ25hbWUnLCBkYktleSk7DQogICAgICAgICAgICB4bWxUdkZpbGVTZWxlY3Quc2V0QXR0cmlidXRlKCdpZCcsICdwb3B1cC14bWx0dicpOw0KICAgICAgICAgICAgeG1sVHZGaWxlU2VsZWN0LnNldEF0dHJpYnV0ZSgnb25jaGFuZ2UnLCBgamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCc7IHNldFhtbHR2Q2hhbm5lbCgnJHtpZH0nLCB0aGlzKTtgKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCd7ey5tYXBwaW5nLnhtbHR2RmlsZS50aXRsZX19JywgeG1sVHZGaWxlU2VsZWN0KTsNCiAgICAgICAgICAgIC8vIFhNTFRWIE1hcHBpbmcNCiAgICAgICAgICAgIHZhciBkYktleSA9ICd4LW1hcHBpbmcnOw0KICAgICAgICAgICAgdmFyIHhtbFR2ID0gbmV3IFhNTFRWRmlsZSgpOw0KICAgICAgICAgICAgY29uc3QgY3VycmVudFhtbFR2SWQgPSBkYXRhW2RiS2V5XTsNCiAgICAgICAgICAgIGNvbnN0IFt4bWxUdklkQ29udGFpbmVyLCB4bWxUdklkSW5wdXQsIHhtbFR2SWREYXRhbGlzdF0gPSB4bWxUdi5uZXdYbWxUdklkUGlja2VyKHhtbFR2RmlsZSwgY3VycmVudFhtbFR2SWQpOw0KICAgICAgICAgICAgeG1sVHZJZENvbnRhaW5lci5zZXRBdHRyaWJ1dGUoJ2lkJywgJ3htbHR2LWlkLXBpY2tlci1jb250YWluZXInKTsNCiAgICAgICAgICAgIHhtbFR2SWRJbnB1dC5zZXRBdHRyaWJ1dGUoJ2xpc3QnLCAneG1sdHYtaWQtcGlja2VyLWRhdGFsaXN0Jyk7DQogICAgICAgICAgICB4bWxUdklkSW5wdXQuc2V0QXR0cmlidXRlKCduYW1lJywgJ3gtbWFwcGluZycpOyAvLyBTaG91bGQgc3RheSB4LW1hcHBpbmcgYXMgaXQgd2lsbCBiZSB1c2VkIGluIGRvbmVQb3B1cERhdGEgdG8gbWFrZSBhIHNlcnZlciByZXF1ZXN0DQogICAgICAgICAgICB4bWxUdklkSW5wdXQuc2V0QXR0cmlidXRlKCdpZCcsICd4bWx0di1pZC1waWNrZXItaW5wdXQnKTsNCiAgICAgICAgICAgIHhtbFR2SWRJbnB1dC5zZXRBdHRyaWJ1dGUoJ29uY2hhbmdlJywgYGphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnOyBjaGVja1htbHR2Q2hhbm5lbCgnJHtpZH0nLCB0aGlzLnZhbHVlLCAnJHt4bWxUdkZpbGV9Jyk7YCk7DQogICAgICAgICAgICB4bWxUdklkRGF0YWxpc3Quc2V0QXR0cmlidXRlKCdpZCcsICd4bWx0di1pZC1waWNrZXItZGF0YWxpc3QnKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCd7ey5tYXBwaW5nLnhtbHR2Q2hhbm5lbC50aXRsZX19JywgeG1sVHZJZENvbnRhaW5lcik7DQogICAgICAgICAgICAvLyBUaW1lc2hpZnQNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJ4LXRpbWVzaGlmdCI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3subWFwcGluZy50aW1lc2hpZnQucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJpZCIsICJ0aW1lc2hpZnQiKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5tYXBwaW5nLnRpbWVzaGlmdC50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgLy8gSW50ZXJhY3Rpb24NCiAgICAgICAgICAgIGNvbnRlbnQuY3JlYXRlSW50ZXJhY3Rpb24oKTsNCiAgICAgICAgICAgIC8vIFVwbG9hZCBsb2dvDQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAiY2FuY2VsIiwgInt7LmJ1dHRvbi51cGxvYWRMb2dvfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiB1cGxvYWRMb2dvKCk7Jyk7DQogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIC8vIEFib3J0DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAiY2FuY2VsIiwgInt7LmJ1dHRvbi5jYW5jZWx9fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IHNob3dFbGVtZW50KCJwb3B1cCIsIGZhbHNlKTsnKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgLy8gRmluaXNoZWQNCiAgICAgICAgICAgIHZhciBpZHMgPSBbXTsNCiAgICAgICAgICAgIGlkcyA9IGdldEFsbFNlbGVjdGVkQ2hhbm5lbHMoKTsNCiAgICAgICAgICAgIGlmIChpZHMubGVuZ3RoID09IDApIHsNCiAgICAgICAgICAgICAgICBpZHMucHVzaChpZCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAic2F2ZSIsICJ7ey5idXR0b24uZG9uZX19Iik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogZG9uZVBvcHVwRGF0YSgiJyArIGRhdGFUeXBlICsgJyIsICInICsgaWRzICsgJyIsICJmYWxzZSIpOycpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgIGJyZWFrOw0KICAgIH0NCiAgICBzaG93UG9wVXBFbGVtZW50KCdwb3B1cC1jdXN0b20nKTsNCn0NCmNsYXNzIFhNTFRWRmlsZSB7DQogICAgZ2V0RmlsZXMoc2V0KSB7DQogICAgICAgIGxldCBmaWxlSURzID0gZ2V0T3duT2JqUHJvcHMoU0VSVkVSWyJ4ZXBnIl1bInhtbHR2TWFwIl0pOw0KICAgICAgICBsZXQgdmFsdWVzID0gbmV3IEFycmF5KCItIik7DQogICAgICAgIGxldCB0ZXh0ID0gbmV3IEFycmF5KCItIik7DQogICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgZmlsZUlEcy5sZW5ndGg7IGkrKykgew0KICAgICAgICAgICAgaWYgKGZpbGVJRHNbaV0gIT0gInhUZVZlIER1bW15Iikgew0KICAgICAgICAgICAgICAgIHZhbHVlcy5wdXNoKGdldFZhbHVlRnJvbVByb3ZpZGVyRmlsZShmaWxlSURzW2ldLCAieG1sdHYiLCAiZmlsZS54dGV2ZSIpKTsNCiAgICAgICAgICAgICAgICB0ZXh0LnB1c2goZ2V0VmFsdWVGcm9tUHJvdmlkZXJGaWxlKGZpbGVJRHNbaV0sICJ4bWx0diIsICJuYW1lIikpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgZWxzZSB7DQogICAgICAgICAgICAgICAgdmFsdWVzLnB1c2goZmlsZUlEc1tpXSk7DQogICAgICAgICAgICAgICAgdGV4dC5wdXNoKGZpbGVJRHNbaV0pOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQogICAgICAgIGxldCBzZWxlY3QgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJTRUxFQ1QiKTsNCiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0ZXh0Lmxlbmd0aDsgaSsrKSB7DQogICAgICAgICAgICB2YXIgb3B0aW9uID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiT1BUSU9OIik7DQogICAgICAgICAgICBvcHRpb24uc2V0QXR0cmlidXRlKCJ2YWx1ZSIsIHZhbHVlc1tpXSk7DQogICAgICAgICAgICBvcHRpb24uaW5uZXJUZXh0ID0gdGV4dFtpXTsNCiAgICAgICAgICAgIHNlbGVjdC5hcHBlbmRDaGlsZChvcHRpb24pOw0KICAgICAgICB9DQogICAgICAgIGlmIChzZXQgIT0gIiIpIHsNCiAgICAgICAgICAgIHNlbGVjdC52YWx1ZSA9IHNldDsNCiAgICAgICAgfQ0KICAgICAgICByZXR1cm4gc2VsZWN0Ow0KICAgIH0NCiAgICAvKioNCiAgICAgKiBAcGFyYW0geG1sVHZGaWxlIFhNTCBmaWxlIHBhdGggdG8gZ2V0IEVQRyBmcm9tLg0KICAgICAqIEBwYXJhbSBjdXJyZW50WG1sVHZJZCBDdXJyZW50IFhNTFRWIElEIHRvIHNldCBpbml0aWFsIGlucHV0IHZhbHVlIHRvLg0KICAgICAqIEByZXR1cm5zIEFycmF5IG9mLCBzZXF1ZW50aWFsbHk6DQogICAgICogMSkgQ29udGFpbmVyIG9mIHRoZSBwaWNrZXIuDQogICAgICogMikgSW5wdXQgZmllbGQgdG8gdHlwZSBhdCBhbmQgZ2V0IGNob2ljZSBmcm9tLg0KICAgICAqIDMpIERhdGFsaXN0IGNvbnRhaW5pbmcgZXZlcnkgb3B0aW9uLg0KICAgICAqLw0KICAgIG5ld1htbFR2SWRQaWNrZXIoeG1sVHZGaWxlLCBjdXJyZW50WG1sVHZJZCkgew0KICAgICAgICBjb25zdCBjb250YWluZXIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsNCiAgICAgICAgY29uc3QgaW5wdXQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdpbnB1dCcpOw0KICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoJ3R5cGUnLCAndGV4dCcpOw0KICAgICAgICAvLyBJbml0aWFsbHksIHNldCB2YWx1ZSB0byAnLScgaWYgaW5wdXQgaXMgZW1wdHkNCiAgICAgICAgaW5wdXQudmFsdWUgPSAoY3VycmVudFhtbFR2SWQpID8gY3VycmVudFhtbFR2SWQgOiAnLSc7DQogICAgICAgIC8vIFdoZW4gaW5wdXQgaXMgZm9jdXNlZCwgcmVtb3ZlICctJyBmcm9tIGl0DQogICAgICAgIGlucHV0LmFkZEV2ZW50TGlzdGVuZXIoJ2ZvY3VzJywgKGV2dCkgPT4gew0KICAgICAgICAgICAgY29uc3QgdGFyZ2V0ID0gZXZ0LnRhcmdldDsNCiAgICAgICAgICAgIHRhcmdldC52YWx1ZSA9ICh0YXJnZXQudmFsdWUgPT09ICctJykgPyAnJyA6IHRhcmdldC52YWx1ZTsNCiAgICAgICAgfSk7DQogICAgICAgIC8vIFdoZW4gaW5wdXQgbG9zZSBmb2N1cyBvciB0YWtlIGEgdmFsdWUsIGlmIGl0J3MgZW1wdHksIHNldCB2YWx1ZSB0byAnLScNCiAgICAgICAgaW5wdXQuYWRkRXZlbnRMaXN0ZW5lcignYmx1cicsIHNldEZhbGxiYWNrVmFsdWUpOw0KICAgICAgICBpbnB1dC5hZGRFdmVudExpc3RlbmVyKCdjaGFuZ2UnLCBzZXRGYWxsYmFja1ZhbHVlKTsNCiAgICAgICAgZnVuY3Rpb24gc2V0RmFsbGJhY2tWYWx1ZShldnQpIHsNCiAgICAgICAgICAgIGNvbnN0IHRhcmdldCA9IGV2dC50YXJnZXQ7DQogICAgICAgICAgICB0YXJnZXQudmFsdWUgPSAodGFyZ2V0LnZhbHVlKSA/IHRhcmdldC52YWx1ZSA6ICctJzsNCiAgICAgICAgfQ0KICAgICAgICBjb250YWluZXIuYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICBjb25zdCBkYXRhbGlzdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RhdGFsaXN0Jyk7DQogICAgICAgIGNvbnN0IG9wdGlvbiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ29wdGlvbicpOw0KICAgICAgICBvcHRpb24uc2V0QXR0cmlidXRlKCd2YWx1ZScsICctJyk7DQogICAgICAgIG9wdGlvbi5pbm5lclRleHQgPSAnLSc7DQogICAgICAgIGRhdGFsaXN0LmFwcGVuZENoaWxkKG9wdGlvbik7DQogICAgICAgIGNvbnN0IGVwZyA9IFNFUlZFUlsneGVwZyddWyd4bWx0dk1hcCddW3htbFR2RmlsZV07DQogICAgICAgIGlmIChlcGcpIHsNCiAgICAgICAgICAgIGNvbnN0IHByb2dyYW1JZHMgPSBnZXRPd25PYmpQcm9wcyhlcGcpOw0KICAgICAgICAgICAgcHJvZ3JhbUlkcy5mb3JFYWNoKChwcm9ncmFtSWQpID0+IHsNCiAgICAgICAgICAgICAgICBjb25zdCBwcm9ncmFtID0gZXBnW3Byb2dyYW1JZF07DQogICAgICAgICAgICAgICAgaWYgKHByb2dyYW0uaGFzT3duUHJvcGVydHkoJ2Rpc3BsYXktbmFtZXMnKSkgew0KICAgICAgICAgICAgICAgICAgICBwcm9ncmFtWydkaXNwbGF5LW5hbWVzJ10uZm9yRWFjaCgoZGlzcGxheU5hbWUpID0+IHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IG9wdGlvbiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ29wdGlvbicpOw0KICAgICAgICAgICAgICAgICAgICAgICAgb3B0aW9uLnNldEF0dHJpYnV0ZSgndmFsdWUnLCBwcm9ncmFtSWQpOw0KICAgICAgICAgICAgICAgICAgICAgICAgb3B0aW9uLmlubmVyVGV4dCA9IGRpc3BsYXlOYW1lWydWYWx1ZSddOw0KICAgICAgICAgICAgICAgICAgICAgICAgZGF0YWxpc3QuYXBwZW5kQ2hpbGQob3B0aW9uKTsNCiAgICAgICAgICAgICAgICAgICAgfSk7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgICAgICAgICBjb25zdCBvcHRpb24gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdvcHRpb24nKTsNCiAgICAgICAgICAgICAgICAgICAgb3B0aW9uLnNldEF0dHJpYnV0ZSgndmFsdWUnLCBwcm9ncmFtSWQpOw0KICAgICAgICAgICAgICAgICAgICBvcHRpb24uaW5uZXJUZXh0ID0gJy0nOw0KICAgICAgICAgICAgICAgICAgICBkYXRhbGlzdC5hcHBlbmRDaGlsZChvcHRpb24pOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0pOw0KICAgICAgICB9DQogICAgICAgIGNvbnRhaW5lci5hcHBlbmRDaGlsZChkYXRhbGlzdCk7DQogICAgICAgIHJldHVybiBbY29udGFpbmVyLCBpbnB1dCwgZGF0YWxpc3RdOw0KICAgIH0NCn0NCmZ1bmN0aW9uIGdldFZhbHVlRnJvbVByb3ZpZGVyRmlsZShmaWxlLCBmaWxlVHlwZSwga2V5KSB7DQogICAgaWYgKGZpbGUgPT0gInhUZVZlIER1bW15Iikgew0KICAgICAgICByZXR1cm4gZmlsZTsNCiAgICB9DQogICAgbGV0IGZpbGVJRDsNCiAgICBsZXQgaW5kaWNhdG9yID0gZmlsZS5jaGFyQXQoMCk7DQogICAgc3dpdGNoIChpbmRpY2F0b3IpIHsNCiAgICAgICAgY2FzZSAiTSI6DQogICAgICAgICAgICBmaWxlVHlwZSA9ICJtM3UiOw0KICAgICAgICAgICAgZmlsZUlEID0gZmlsZTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJIIjoNCiAgICAgICAgICAgIGZpbGVUeXBlID0gImhkaHIiOw0KICAgICAgICAgICAgZmlsZUlEID0gZmlsZTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJYIjoNCiAgICAgICAgICAgIGZpbGVUeXBlID0gInhtbHR2IjsNCiAgICAgICAgICAgIGZpbGVJRCA9IGZpbGUuc3Vic3RyaW5nKDAsIGZpbGUubGFzdEluZGV4T2YoJy4nKSk7DQogICAgICAgICAgICBicmVhazsNCiAgICB9DQogICAgaWYgKFNFUlZFUlsic2V0dGluZ3MiXVsiZmlsZXMiXVtmaWxlVHlwZV0uaGFzT3duUHJvcGVydHkoZmlsZUlEKSA9PSB0cnVlKSB7DQogICAgICAgIHZhciBkYXRhID0gU0VSVkVSWyJzZXR0aW5ncyJdWyJmaWxlcyJdW2ZpbGVUeXBlXVtmaWxlSURdOw0KICAgICAgICByZXR1cm4gZGF0YVtrZXldOw0KICAgIH0NCiAgICByZXR1cm47DQp9DQpmdW5jdGlvbiBzZXRYbWx0dkNoYW5uZWwoZXBnTWFwSWQsIHhtbFR2RmlsZVNlbGVjdCkgew0KICAgIGNvbnN0IHhtbFR2ID0gbmV3IFhNTFRWRmlsZSgpOw0KICAgIGNvbnN0IG5ld1htbFR2RmlsZSA9IHhtbFR2RmlsZVNlbGVjdC52YWx1ZTsNCiAgICAvLyBSZW1vdmUgb2xkIFhNTFRWIElEIHNlbGVjdGlvbiBib3gNCiAgICBjb25zdCB4bWxUdklkUGlja2VyUGFyZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3htbHR2LWlkLXBpY2tlci1jb250YWluZXInKS5wYXJlbnRFbGVtZW50Ow0KICAgIHhtbFR2SWRQaWNrZXJQYXJlbnQuaW5uZXJIVE1MID0gJyc7DQogICAgLy8gQ3JlYXRlIG5ldyBYTUxUViBJRCBzZWxlY3Rpb24gYm94DQogICAgY29uc3QgdHZnSWQgPSBTRVJWRVJbJ3hlcGcnXVsnZXBnTWFwcGluZyddW2VwZ01hcElkXVsndHZnLWlkJ107DQogICAgY29uc3QgW3htbFR2SWRDb250YWluZXIsIHhtbFR2SWRJbnB1dCwgeG1sVHZJZERhdGFsaXN0XSA9IHhtbFR2Lm5ld1htbFR2SWRQaWNrZXIobmV3WG1sVHZGaWxlLCB0dmdJZCk7DQogICAgeG1sVHZJZENvbnRhaW5lci5zZXRBdHRyaWJ1dGUoJ2lkJywgJ3htbHR2LWlkLXBpY2tlci1jb250YWluZXInKTsNCiAgICB4bWxUdklkSW5wdXQuc2V0QXR0cmlidXRlKCdsaXN0JywgJ3htbHR2LWlkLXBpY2tlci1kYXRhbGlzdCcpOw0KICAgIHhtbFR2SWRJbnB1dC5zZXRBdHRyaWJ1dGUoJ25hbWUnLCAneC1tYXBwaW5nJyk7IC8vIFNob3VsZCBzdGF5IHgtbWFwcGluZyBhcyBpdCB3aWxsIGJlIHVzZWQgaW4gZG9uZVBvcHVwRGF0YSB0byBtYWtlIGEgc2VydmVyIHJlcXVlc3QNCiAgICB4bWxUdklkSW5wdXQuc2V0QXR0cmlidXRlKCdpZCcsICd4bWx0di1pZC1waWNrZXItaW5wdXQnKTsNCiAgICB4bWxUdklkSW5wdXQuc2V0QXR0cmlidXRlKCdvbmNoYW5nZScsIGBqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJzsgY2hlY2tYbWx0dkNoYW5uZWwoJyR7ZXBnTWFwSWR9JywgdGhpcy52YWx1ZSwgJyR7bmV3WG1sVHZGaWxlfScpO2ApOw0KICAgIHhtbFR2SWRJbnB1dC5jbGFzc0xpc3QuYWRkKCdjaGFuZ2VkJyk7DQogICAgeG1sVHZJZERhdGFsaXN0LnNldEF0dHJpYnV0ZSgnaWQnLCAneG1sdHYtaWQtcGlja2VyLWRhdGFsaXN0Jyk7DQogICAgLy8gQWRkIG5ldyBYTUxUViBJRCBzZWxlY3Rpb24gYm94IHRvIGl0J3MgcGFyZW50DQogICAgeG1sVHZJZFBpY2tlclBhcmVudC5hcHBlbmRDaGlsZCh4bWxUdklkQ29udGFpbmVyKTsNCiAgICBjaGVja1htbHR2Q2hhbm5lbChlcGdNYXBJZCwgeG1sVHZJZElucHV0LnZhbHVlLCBuZXdYbWxUdkZpbGUpOw0KfQ0KZnVuY3Rpb24gY2hlY2tYbWx0dkNoYW5uZWwoZXBnTWFwSWQsIG5ld1htbFR2SWQsIHhtbFR2RmlsZSkgew0KICAgIGNvbnN0IGNoYW5uZWxBY3RpdmVDYiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdhY3RpdmUnKTsNCiAgICBjb25zdCBjaGFubmVsQWN0aXZlID0gbmV3WG1sVHZJZCAhPSAnLSc7DQogICAgY2hhbm5lbEFjdGl2ZUNiLmNoZWNrZWQgPSBjaGFubmVsQWN0aXZlOw0KICAgIGNoYW5uZWxBY3RpdmVDYi5jbGFzc05hbWUgPSAnY2hhbmdlZCc7DQogICAgaWYgKHhtbFR2RmlsZSAhPSAneFRlVmUgRHVtbXknICYmIGNoYW5uZWxBY3RpdmUgPT0gdHJ1ZSkgew0KICAgICAgICBjaGFuZ2VDaGFubmVsTG9nbyhlcGdNYXBJZCk7DQogICAgICAgIHJldHVybjsNCiAgICB9DQogICAgaWYgKHhtbFR2RmlsZSA9PSAneFRlVmUgRHVtbXknKSB7DQogICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd1cGRhdGUtaWNvbicpLmNoZWNrZWQgPSBmYWxzZTsNCiAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3VwZGF0ZS1pY29uJykuY2xhc3NOYW1lID0gJ2NoYW5nZWQnOw0KICAgIH0NCn0NCmZ1bmN0aW9uIGNoYW5nZUNoYW5uZWxMb2dvKGVwZ01hcElkKSB7DQogICAgY29uc3QgY2hhbm5lbCA9IFNFUlZFUlsneGVwZyddWydlcGdNYXBwaW5nJ11bZXBnTWFwSWRdOw0KICAgIGNvbnN0IHhtbFR2RmlsZVNlbGVjdCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdwb3B1cC14bWx0dicpOw0KICAgIGNvbnN0IHhtbFR2RmlsZSA9IHhtbFR2RmlsZVNlbGVjdC5vcHRpb25zW3htbFR2RmlsZVNlbGVjdC5zZWxlY3RlZEluZGV4XS52YWx1ZTsNCiAgICBjb25zdCB4bWxUdklkSW5wdXQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgneG1sdHYtaWQtcGlja2VyLWlucHV0Jyk7DQogICAgY29uc3QgbmV3WG1sVHZJZCA9IHhtbFR2SWRJbnB1dC52YWx1ZTsNCiAgICBjb25zdCB1cGRhdGVMb2dvID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3VwZGF0ZS1pY29uJykuY2hlY2tlZDsNCiAgICBsZXQgbG9nbzsNCiAgICBpZiAodXBkYXRlTG9nbyA9PSB0cnVlICYmIHhtbFR2RmlsZSAhPSAneFRlVmUgRHVtbXknKSB7DQogICAgICAgIGlmIChTRVJWRVJbJ3hlcGcnXVsneG1sdHZNYXAnXVt4bWxUdkZpbGVdLmhhc093blByb3BlcnR5KG5ld1htbFR2SWQpKSB7DQogICAgICAgICAgICBsb2dvID0gU0VSVkVSWyd4ZXBnJ11bJ3htbHR2TWFwJ11beG1sVHZGaWxlXVtuZXdYbWxUdklkXVsnaWNvbiddOw0KICAgICAgICB9DQogICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgbG9nbyA9IGNoYW5uZWxbJ3R2Zy1sb2dvJ107DQogICAgICAgIH0NCiAgICAgICAgdmFyIGxvZ29JbnB1dCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjaGFubmVsLWljb24nKTsNCiAgICAgICAgbG9nb0lucHV0LnZhbHVlID0gbG9nbzsNCiAgICAgICAgaWYgKEJVTEtfRURJVCA9PSBmYWxzZSkgew0KICAgICAgICAgICAgbG9nb0lucHV0LmNsYXNzTmFtZSA9ICdjaGFuZ2VkJzsNCiAgICAgICAgfQ0KICAgIH0NCn0NCmZ1bmN0aW9uIHNhdmVQb3B1cERhdGEoZGF0YVR5cGUsIGlkLCByZW1vdmUsIG9wdGlvbikgew0KICAgIGlmIChkYXRhVHlwZSA9PSAibWFwcGluZyIpIHsNCiAgICAgICAgbGV0IGRhdGEgPSB7fTsNCiAgICAgICAgbGV0IGNtZCA9ICJzYXZlRXBnTWFwcGluZyI7DQogICAgICAgIGRhdGFbImVwZ01hcHBpbmciXSA9IFNFUlZFUlsieGVwZyJdWyJlcGdNYXBwaW5nIl07DQogICAgICAgIGxldCBzZXJ2ZXIgPSBuZXcgU2VydmVyKGNtZCk7DQogICAgICAgIHNlcnZlci5yZXF1ZXN0KGRhdGEpOw0KICAgICAgICBkZWxldGUgVU5ET1siZXBnTWFwcGluZyJdOw0KICAgICAgICByZXR1cm47DQogICAgfQ0KICAgIGxldCBkaXYgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicG9wdXAtY3VzdG9tIik7DQogICAgbGV0IGlucHV0cyA9IGRpdi5nZXRFbGVtZW50c0J5VGFnTmFtZSgiVEFCTEUiKVswXS5nZXRFbGVtZW50c0J5VGFnTmFtZSgiSU5QVVQiKTsNCiAgICBsZXQgc2VsZWN0cyA9IGRpdi5nZXRFbGVtZW50c0J5VGFnTmFtZSgiVEFCTEUiKVswXS5nZXRFbGVtZW50c0J5VGFnTmFtZSgiU0VMRUNUIik7DQogICAgbGV0IGlucHV0ID0ge307DQogICAgbGV0IGNvbmZpcm1Nc2c7DQogICAgZm9yIChsZXQgaSA9IDA7IGkgPCBzZWxlY3RzLmxlbmd0aDsgaSsrKSB7DQogICAgICAgIHZhciBuYW1lOw0KICAgICAgICBuYW1lID0gc2VsZWN0c1tpXS5uYW1lOw0KICAgICAgICB2YXIgdmFsdWUgPSBzZWxlY3RzW2ldLnZhbHVlOw0KICAgICAgICBzd2l0Y2ggKG5hbWUpIHsNCiAgICAgICAgICAgIGNhc2UgInR1bmVyIjoNCiAgICAgICAgICAgICAgICBpbnB1dFtuYW1lXSA9IHBhcnNlSW50KHZhbHVlKTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICAgICAgaW5wdXRbbmFtZV0gPSB2YWx1ZTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgfQ0KICAgIH0NCiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGlucHV0cy5sZW5ndGg7IGkrKykgew0KICAgICAgICBzd2l0Y2ggKGlucHV0c1tpXS50eXBlKSB7DQogICAgICAgICAgICBjYXNlICJjaGVja2JveCI6DQogICAgICAgICAgICAgICAgbmFtZSA9IGlucHV0c1tpXS5uYW1lOw0KICAgICAgICAgICAgICAgIGlucHV0W25hbWVdID0gaW5wdXRzW2ldLmNoZWNrZWQ7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ0ZXh0IjoNCiAgICAgICAgICAgIGNhc2UgImhpZGRlbiI6DQogICAgICAgICAgICBjYXNlICJwYXNzd29yZCI6DQogICAgICAgICAgICAgICAgbmFtZSA9IGlucHV0c1tpXS5uYW1lOw0KICAgICAgICAgICAgICAgIHN3aXRjaCAobmFtZSkgew0KICAgICAgICAgICAgICAgICAgICBjYXNlICJ0dW5lciI6DQogICAgICAgICAgICAgICAgICAgICAgICBpbnB1dFtuYW1lXSA9IHBhcnNlSW50KGlucHV0c1tpXS52YWx1ZSk7DQogICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgICAgICAgICAgICAgIGlucHV0W25hbWVdID0gaW5wdXRzW2ldLnZhbHVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICB9DQogICAgfQ0KICAgIGxldCBkYXRhID0ge307DQogICAgbGV0IGNtZDsNCiAgICBpZiAocmVtb3ZlID09IHRydWUpIHsNCiAgICAgICAgaW5wdXRbImRlbGV0ZSJdID0gdHJ1ZTsNCiAgICB9DQogICAgc3dpdGNoIChkYXRhVHlwZSkgew0KICAgICAgICBjYXNlICJ1c2VycyI6DQogICAgICAgICAgICBjb25maXJtTXNnID0gIkRlbGV0ZSB0aGlzIHVzZXI/IjsNCiAgICAgICAgICAgIGlmIChpZCA9PSAiLSIpIHsNCiAgICAgICAgICAgICAgICBjbWQgPSAic2F2ZU5ld1VzZXIiOw0KICAgICAgICAgICAgICAgIGRhdGFbInVzZXJEYXRhIl0gPSBpbnB1dDsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgICAgIGNtZCA9ICJzYXZlVXNlckRhdGEiOw0KICAgICAgICAgICAgICAgIGxldCBkID0ge307DQogICAgICAgICAgICAgICAgZFtpZF0gPSBpbnB1dDsNCiAgICAgICAgICAgICAgICBkYXRhWyJ1c2VyRGF0YSJdID0gZDsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJtM3UiOg0KICAgICAgICAgICAgY29uZmlybU1zZyA9ICJEZWxldGUgdGhpcyBwbGF5bGlzdD8iOw0KICAgICAgICAgICAgc3dpdGNoIChvcHRpb24pIHsNCiAgICAgICAgICAgICAgICAvLyBQb3B1cDogU2F2ZQ0KICAgICAgICAgICAgICAgIGNhc2UgMDoNCiAgICAgICAgICAgICAgICAgICAgY21kID0gInNhdmVGaWxlc00zVSI7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIC8vIFBvcHVwOiBVcGRhdGUNCiAgICAgICAgICAgICAgICBjYXNlIDE6DQogICAgICAgICAgICAgICAgICAgIGNtZCA9ICJ1cGRhdGVGaWxlTTNVIjsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBkYXRhWyJmaWxlcyJdID0ge307DQogICAgICAgICAgICBkYXRhWyJmaWxlcyJdW2RhdGFUeXBlXSA9IHt9Ow0KICAgICAgICAgICAgZGF0YVsiZmlsZXMiXVtkYXRhVHlwZV1baWRdID0gaW5wdXQ7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSAiaGRociI6DQogICAgICAgICAgICBjb25maXJtTXNnID0gIkRlbGV0ZSB0aGlzIEhESG9tZVJ1biB0dW5lcj8iOw0KICAgICAgICAgICAgc3dpdGNoIChvcHRpb24pIHsNCiAgICAgICAgICAgICAgICAvLyBQb3B1cDogU2F2ZQ0KICAgICAgICAgICAgICAgIGNhc2UgMDoNCiAgICAgICAgICAgICAgICAgICAgY21kID0gInNhdmVGaWxlc0hESFIiOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICAvLyBQb3B1cDogVXBkYXRlDQogICAgICAgICAgICAgICAgY2FzZSAxOg0KICAgICAgICAgICAgICAgICAgICBjbWQgPSAidXBkYXRlRmlsZUhESFIiOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGRhdGFbImZpbGVzIl0gPSB7fTsNCiAgICAgICAgICAgIGRhdGFbImZpbGVzIl1bZGF0YVR5cGVdID0ge307DQogICAgICAgICAgICBkYXRhWyJmaWxlcyJdW2RhdGFUeXBlXVtpZF0gPSBpbnB1dDsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJ4bWx0diI6DQogICAgICAgICAgICBjb25maXJtTXNnID0gIkRlbGV0ZSB0aGlzIFhNTFRWIGZpbGU/IjsNCiAgICAgICAgICAgIHN3aXRjaCAob3B0aW9uKSB7DQogICAgICAgICAgICAgICAgLy8gUG9wdXA6IFNhdmUNCiAgICAgICAgICAgICAgICBjYXNlIDA6DQogICAgICAgICAgICAgICAgICAgIGNtZCA9ICJzYXZlRmlsZXNYTUxUViI7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIC8vIFBvcHVwOiBVcGRhdGUNCiAgICAgICAgICAgICAgICBjYXNlIDE6DQogICAgICAgICAgICAgICAgICAgIGNtZCA9ICJ1cGRhdGVGaWxlWE1MVFYiOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGRhdGFbImZpbGVzIl0gPSB7fTsNCiAgICAgICAgICAgIGRhdGFbImZpbGVzIl1bZGF0YVR5cGVdID0ge307DQogICAgICAgICAgICBkYXRhWyJmaWxlcyJdW2RhdGFUeXBlXVtpZF0gPSBpbnB1dDsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJmaWx0ZXIiOg0KICAgICAgICAgICAgY29uZmlybU1zZyA9ICJEZWxldGUgdGhpcyBmaWx0ZXI/IjsNCiAgICAgICAgICAgIGNtZCA9ICJzYXZlRmlsdGVyIjsNCiAgICAgICAgICAgIGRhdGFbImZpbHRlciJdID0ge307DQogICAgICAgICAgICBkYXRhWyJmaWx0ZXIiXVtpZF0gPSBpbnB1dDsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBkZWZhdWx0Og0KICAgICAgICAgICAgcmV0dXJuOw0KICAgIH0NCiAgICBpZiAocmVtb3ZlID09IHRydWUpIHsNCiAgICAgICAgaWYgKCFjb25maXJtKGNvbmZpcm1Nc2cpKSB7DQogICAgICAgICAgICBzaG93RWxlbWVudCgicG9wdXAiLCBmYWxzZSk7DQogICAgICAgICAgICByZXR1cm47DQogICAgICAgIH0NCiAgICB9DQogICAgbGV0IHNlcnZlciA9IG5ldyBTZXJ2ZXIoY21kKTsNCiAgICBzZXJ2ZXIucmVxdWVzdChkYXRhKTsNCn0NCmZ1bmN0aW9uIGRvbmVQb3B1cERhdGEoZGF0YVR5cGUsIGlkc1N0cikgew0KICAgIGxldCBpZHMgPSBpZHNTdHIuc3BsaXQoJywnKTsNCiAgICBsZXQgZGl2ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInBvcHVwLWN1c3RvbSIpOw0KICAgIGxldCBpbnB1dHMgPSBkaXYuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSgiY2hhbmdlZCIpOw0KICAgIGlkcy5mb3JFYWNoKGlkID0+IHsNCiAgICAgICAgbGV0IGlucHV0Ow0KICAgICAgICBpbnB1dCA9IFNFUlZFUlsieGVwZyJdWyJlcGdNYXBwaW5nIl1baWRdOw0KICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGlucHV0cy5sZW5ndGg7IGkrKykgew0KICAgICAgICAgICAgbGV0IG5hbWU7DQogICAgICAgICAgICBsZXQgdmFsdWU7DQogICAgICAgICAgICBzd2l0Y2ggKGlucHV0c1tpXS50YWdOYW1lKSB7DQogICAgICAgICAgICAgICAgY2FzZSAiSU5QVVQiOg0KICAgICAgICAgICAgICAgICAgICBzd2l0Y2ggKGlucHV0c1tpXS50eXBlKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBjYXNlICJjaGVja2JveCI6DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZSA9IGlucHV0c1tpXS5uYW1lOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlID0gaW5wdXRzW2ldLmNoZWNrZWQ7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5wdXRbbmFtZV0gPSB2YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgInRleHQiOg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWUgPSBpbnB1dHNbaV0ubmFtZTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IGlucHV0c1tpXS52YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnB1dFtuYW1lXSA9IHZhbHVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgIlNFTEVDVCI6DQogICAgICAgICAgICAgICAgICAgIG5hbWUgPSBpbnB1dHNbaV0ubmFtZTsNCiAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSBpbnB1dHNbaV0udmFsdWU7DQogICAgICAgICAgICAgICAgICAgIGlucHV0W25hbWVdID0gdmFsdWU7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgc3dpdGNoIChuYW1lKSB7DQogICAgICAgICAgICAgICAgY2FzZSAidHZnLWxvZ28iOg0KICAgICAgICAgICAgICAgICAgICAvLyhkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkuY2hpbGROb2Rlc1syXS5maXJzdENoaWxkIGFzIEhUTUxFbGVtZW50KS5zZXRBdHRyaWJ1dGUoInNyYyIsIHZhbHVlKQ0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBjYXNlICJ4LW5hbWUiOg0KICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkuY2hpbGROb2Rlc1szXS5maXJzdENoaWxkLmlubmVySFRNTCA9IHZhbHVlOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBjYXNlICJ4LWNhdGVnb3J5IjoNCiAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpLmNoaWxkTm9kZXNbM10uZmlyc3RDaGlsZC5jbGFzc05hbWUgPSB2YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAieC1ncm91cC10aXRsZSI6DQogICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5jaGlsZE5vZGVzWzVdLmZpcnN0Q2hpbGQuaW5uZXJIVE1MID0gdmFsdWU7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgIngteG1sdHYtZmlsZSI6DQogICAgICAgICAgICAgICAgICAgIGlmICh2YWx1ZSAhPSAieFRlVmUgRHVtbXkiICYmIHZhbHVlICE9ICItIikgew0KICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSBnZXRWYWx1ZUZyb21Qcm92aWRlckZpbGUodmFsdWUsICJ4bWx0diIsICJuYW1lIik7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgaWYgKHZhbHVlID09ICItIikgew0KICAgICAgICAgICAgICAgICAgICAgICAgaW5wdXRbIngtYWN0aXZlIl0gPSBmYWxzZTsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkuY2hpbGROb2Rlc1s2XS5maXJzdENoaWxkLmlubmVySFRNTCA9IHZhbHVlOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBjYXNlICJ4LW1hcHBpbmciOg0KICAgICAgICAgICAgICAgICAgICBpZiAodmFsdWUgPT0gIi0iKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBpbnB1dFsieC1hY3RpdmUiXSA9IGZhbHNlOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5jaGlsZE5vZGVzWzddLmZpcnN0Q2hpbGQuaW5uZXJIVE1MID0gdmFsdWU7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgIngtdGltZXNoaWZ0IjoNCiAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpLmNoaWxkTm9kZXNbOF0uZmlyc3RDaGlsZC5pbm5lckhUTUwgPSB2YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGNyZWF0ZVNlYXJjaE9iaigpOw0KICAgICAgICAgICAgc2VhcmNoSW5NYXBwaW5nKCk7DQogICAgICAgIH0NCiAgICAgICAgaWYgKGlucHV0WyJ4LWFjdGl2ZSJdID09IGZhbHNlKSB7DQogICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkuY2xhc3NOYW1lID0gIm5vdEFjdGl2ZUVQRyI7DQogICAgICAgIH0NCiAgICAgICAgZWxzZSB7DQogICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkuY2xhc3NOYW1lID0gImFjdGl2ZUVQRyI7DQogICAgICAgIH0NCiAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpLmNoaWxkTm9kZXNbMl0uZmlyc3RDaGlsZC5zZXRBdHRyaWJ1dGUoInNyYyIsIGlucHV0WyJ0dmctbG9nbyJdKTsNCiAgICB9KTsNCiAgICBzaG93RWxlbWVudCgicG9wdXAiLCBmYWxzZSk7DQogICAgcmV0dXJuOw0KfQ0KZnVuY3Rpb24gc2hvd1ByZXZpZXcoZWxlbWVudCkgew0KICAgIGxldCBkaXYgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibXlTdHJlYW1zQm94Iik7DQogICAgc3dpdGNoIChlbGVtZW50KSB7DQogICAgICAgIGNhc2UgZmFsc2U6DQogICAgICAgICAgICBkaXYuY2xhc3NOYW1lID0gIm5vdFZpc2libGUiOw0KICAgICAgICAgICAgcmV0dXJuOw0KICAgIH0NCiAgICBsZXQgc3RyZWFtcyA9IFsiYWN0aXZlU3RyZWFtcyIsICJpbmFjdGl2ZVN0cmVhbXMiXTsNCiAgICBzdHJlYW1zLmZvckVhY2gocHJldmlldyA9PiB7DQogICAgICAgIGxldCB0YWJsZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHByZXZpZXcpOw0KICAgICAgICB0YWJsZS5pbm5lckhUTUwgPSAiIjsNCiAgICAgICAgbGV0IG9iaiA9IFNFUlZFUlsiZGF0YSJdWyJTdHJlYW1QcmV2aWV3VUkiXVtwcmV2aWV3XTsNCiAgICAgICAgb2JqLmZvckVhY2goY2hhbm5lbCA9PiB7DQogICAgICAgICAgICBsZXQgdHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJUUiIpOw0KICAgICAgICAgICAgbGV0IHRkS2V5ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgIGxldCB0ZFZhbCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICB0ZEtleS5jbGFzc05hbWUgPSAidGRLZXkiOw0KICAgICAgICAgICAgdGRWYWwuY2xhc3NOYW1lID0gInRkVmFsIjsNCiAgICAgICAgICAgIHN3aXRjaCAocHJldmlldykgew0KICAgICAgICAgICAgICAgIGNhc2UgImFjdGl2ZVN0cmVhbXMiOg0KICAgICAgICAgICAgICAgICAgICB0ZEtleS5pbm5lclRleHQgPSAiQ2hhbm5lbDogKCspIjsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAiaW5hY3RpdmVTdHJlYW1zIjoNCiAgICAgICAgICAgICAgICAgICAgdGRLZXkuaW5uZXJUZXh0ID0gIkNoYW5uZWw6ICgtKSI7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgdGRWYWwuaW5uZXJUZXh0ID0gY2hhbm5lbDsNCiAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKHRkS2V5KTsNCiAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKHRkVmFsKTsNCiAgICAgICAgICAgIHRhYmxlLmFwcGVuZENoaWxkKHRyKTsNCiAgICAgICAgfSk7DQogICAgfSk7DQogICAgc2hvd0VsZW1lbnQoImxvYWRpbmciLCBmYWxzZSk7DQogICAgZGl2LmNsYXNzTmFtZSA9ICJ2aXNpYmxlIjsNCiAgICByZXR1cm47DQp9DQo=" webUI["html/js/network_ts.js"] = "Y2xhc3MgU2VydmVyIHsNCiAgICBjb25zdHJ1Y3RvcihjbWQpIHsNCiAgICAgICAgdGhpcy5jbWQgPSBjbWQ7DQogICAgfQ0KICAgIHJlcXVlc3QoZGF0YSkgew0KICAgICAgICBpZiAoU0VSVkVSX0NPTk5FQ1RJT04gPT0gdHJ1ZSkgew0KICAgICAgICAgICAgcmV0dXJuOw0KICAgICAgICB9DQogICAgICAgIFNFUlZFUl9DT05ORUNUSU9OID0gdHJ1ZTsNCiAgICAgICAgaWYgKHRoaXMuY21kICE9ICJ1cGRhdGVMb2ciKSB7DQogICAgICAgICAgICBzaG93RWxlbWVudCgibG9hZGluZyIsIHRydWUpOw0KICAgICAgICAgICAgVU5ETyA9IG5ldyBPYmplY3QoKTsNCiAgICAgICAgfQ0KICAgICAgICBzd2l0Y2ggKHdpbmRvdy5sb2NhdGlvbi5wcm90b2NvbCkgew0KICAgICAgICAgICAgY2FzZSAiaHR0cDoiOg0KICAgICAgICAgICAgICAgIHRoaXMucHJvdG9jb2wgPSAid3M6Ly8iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiaHR0cHM6IjoNCiAgICAgICAgICAgICAgICB0aGlzLnByb3RvY29sID0gIndzczovLyI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIH0NCiAgICAgICAgdmFyIHVybCA9IHRoaXMucHJvdG9jb2wgKyB3aW5kb3cubG9jYXRpb24uaG9zdG5hbWUgKyAiOiIgKyB3aW5kb3cubG9jYXRpb24ucG9ydCArICIvZGF0YS8iICsgIj9Ub2tlbj0iICsgZ2V0Q29va2llKCJUb2tlbiIpOw0KICAgICAgICBkYXRhWyJjbWQiXSA9IHRoaXMuY21kOw0KICAgICAgICB2YXIgd3MgPSBuZXcgV2ViU29ja2V0KHVybCk7DQogICAgICAgIHdzLm9ub3BlbiA9IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgICAgIFdTX0FWQUlMQUJMRSA9IHRydWU7DQogICAgICAgICAgICB0aGlzLnNlbmQoSlNPTi5zdHJpbmdpZnkoZGF0YSkpOw0KICAgICAgICB9Ow0KICAgICAgICB3cy5vbmVycm9yID0gZnVuY3Rpb24gKHdzRXJyRXZ0KSB7DQogICAgICAgICAgICBjb25zb2xlLmxvZygiTm8gd2Vic29ja2V0IGNvbm5lY3Rpb24gdG8geFRlVmUgY291bGQgYmUgZXN0YWJsaXNoZWQuIENoZWNrIHlvdXIgbmV0d29yayBjb25maWd1cmF0aW9uLiIpOw0KICAgICAgICAgICAgU0VSVkVSX0NPTk5FQ1RJT04gPSBmYWxzZTsNCiAgICAgICAgICAgIGlmIChXU19BVkFJTEFCTEUgPT0gZmFsc2UpIHsNCiAgICAgICAgICAgICAgICBhbGVydCgiTm8gd2Vic29ja2V0IGNvbm5lY3Rpb24gdG8geFRlVmUgY291bGQgYmUgZXN0YWJsaXNoZWQuIENoZWNrIHlvdXIgbmV0d29yayBjb25maWd1cmF0aW9uLiIpOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9Ow0KICAgICAgICB3cy5vbm1lc3NhZ2UgPSBmdW5jdGlvbiAod3NNZXNzYWdlRXZ0KSB7DQogICAgICAgICAgICBTRVJWRVJfQ09OTkVDVElPTiA9IGZhbHNlOw0KICAgICAgICAgICAgc2hvd0VsZW1lbnQoImxvYWRpbmciLCBmYWxzZSk7DQogICAgICAgICAgICBjb25zdCByZXNwb25zZSA9IEpTT04ucGFyc2Uod3NNZXNzYWdlRXZ0LmRhdGEpOw0KICAgICAgICAgICAgaWYgKHJlc3BvbnNlLmhhc093blByb3BlcnR5KCJ0b2tlbiIpKSB7DQogICAgICAgICAgICAgICAgZG9jdW1lbnQuY29va2llID0gIlRva2VuPSIgKyByZXNwb25zZVsidG9rZW4iXTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGlmIChyZXNwb25zZVsic3RhdHVzIl0gPT0gZmFsc2UpIHsNCiAgICAgICAgICAgICAgICBhbGVydChyZXNwb25zZVsiZXJyIl0pOw0KICAgICAgICAgICAgICAgIHJldHVybjsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGlmIChyZXNwb25zZS5oYXNPd25Qcm9wZXJ0eSgnb3BlbkxpbmsnKSkgew0KICAgICAgICAgICAgICAgIHdpbmRvdy5sb2NhdGlvbiA9IHJlc3BvbnNlWydvcGVuTGluayddOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgaWYgKHJlc3BvbnNlLmhhc093blByb3BlcnR5KCJyZWxvYWQiKSkgew0KICAgICAgICAgICAgICAgIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGlmIChyZXNwb25zZS5oYXNPd25Qcm9wZXJ0eSgiYWxlcnQiKSkgew0KICAgICAgICAgICAgICAgIGFsZXJ0KHJlc3BvbnNlWyJhbGVydCJdKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGlmIChyZXNwb25zZS5oYXNPd25Qcm9wZXJ0eSgibG9nb1VSTCIpKSB7DQogICAgICAgICAgICAgICAgdmFyIGRpdiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjaGFubmVsLWljb24iKTsNCiAgICAgICAgICAgICAgICBkaXYudmFsdWUgPSByZXNwb25zZVsibG9nb1VSTCJdOw0KICAgICAgICAgICAgICAgIGRpdi5jbGFzc05hbWUgPSAiY2hhbmdlZCI7DQogICAgICAgICAgICAgICAgcmV0dXJuOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgc3dpdGNoIChkYXRhWyJjbWQiXSkgew0KICAgICAgICAgICAgICAgIGNhc2UgInVwZGF0ZUxvZyI6DQogICAgICAgICAgICAgICAgICAgIFNFUlZFUlsibG9nIl0gPSByZXNwb25zZVsibG9nIl07DQogICAgICAgICAgICAgICAgICAgIGlmIChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29udGVudF9sb2ciKSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgc2hvd0xvZ3MoZmFsc2UpOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIHJldHVybjsNCiAgICAgICAgICAgICAgICBkZWZhdWx0Og0KICAgICAgICAgICAgICAgICAgICBTRVJWRVIgPSBuZXcgT2JqZWN0KCk7DQogICAgICAgICAgICAgICAgICAgIFNFUlZFUiA9IHJlc3BvbnNlOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGlmIChyZXNwb25zZS5oYXNPd25Qcm9wZXJ0eSgib3Blbk1lbnUiKSkgew0KICAgICAgICAgICAgICAgIHZhciBtZW51ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQocmVzcG9uc2VbIm9wZW5NZW51Il0pOw0KICAgICAgICAgICAgICAgIG1lbnUuY2xpY2soKTsNCiAgICAgICAgICAgICAgICBzaG93RWxlbWVudCgicG9wdXAiLCBmYWxzZSk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBpZiAocmVzcG9uc2UuaGFzT3duUHJvcGVydHkoInJlbG9hZCIpKSB7DQogICAgICAgICAgICAgICAgbG9jYXRpb24ucmVsb2FkKCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBpZiAocmVzcG9uc2UuaGFzT3duUHJvcGVydHkoIndpemFyZCIpKSB7DQogICAgICAgICAgICAgICAgY3JlYXRlTGF5b3V0KCk7DQogICAgICAgICAgICAgICAgY29uZmlndXJhdGlvbldpemFyZFtyZXNwb25zZVsid2l6YXJkIl1dLmNyZWF0ZVdpemFyZCgpOw0KICAgICAgICAgICAgICAgIHJldHVybjsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGNyZWF0ZUxheW91dCgpOw0KICAgICAgICB9Ow0KICAgIH0NCn0NCmZ1bmN0aW9uIGdldENvb2tpZShuYW1lKSB7DQogICAgdmFyIHZhbHVlID0gIjsgIiArIGRvY3VtZW50LmNvb2tpZTsNCiAgICB2YXIgcGFydHMgPSB2YWx1ZS5zcGxpdCgiOyAiICsgbmFtZSArICI9Iik7DQogICAgaWYgKHBhcnRzLmxlbmd0aCA9PSAyKSB7DQogICAgICAgIHJldHVybiBwYXJ0cy5wb3AoKS5zcGxpdCgiOyIpLnNoaWZ0KCk7DQogICAgfQ0KfQ0K" webUI["html/js/settings_ts.js"] = "Y2xhc3MgU2V0dGluZ3NDYXRlZ29yeSB7DQogICAgY29uc3RydWN0b3IoKSB7DQogICAgICAgIHRoaXMuRG9jdW1lbnRJRCA9ICJjb250ZW50X3NldHRpbmdzIjsNCiAgICB9DQogICAgY3JlYXRlQ2F0ZWdvcnlIZWFkbGluZSh2YWx1ZSkgew0KICAgICAgICB2YXIgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIkg0Iik7DQogICAgICAgIGVsZW1lbnQuaW5uZXJIVE1MID0gdmFsdWU7DQogICAgICAgIHJldHVybiBlbGVtZW50Ow0KICAgIH0NCiAgICBjcmVhdGVIUigpIHsNCiAgICAgICAgdmFyIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJIUiIpOw0KICAgICAgICByZXR1cm4gZWxlbWVudDsNCiAgICB9DQogICAgY3JlYXRlU2V0dGluZ3Moc2V0dGluZ3NLZXkpIHsNCiAgICAgICAgdmFyIHNldHRpbmcgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJUUiIpOw0KICAgICAgICB2YXIgY29udGVudCA9IG5ldyBQb3B1cENvbnRlbnQoKTsNCiAgICAgICAgdmFyIGRhdGEgPSBTRVJWRVJbInNldHRpbmdzIl1bc2V0dGluZ3NLZXldOw0KICAgICAgICBzd2l0Y2ggKHNldHRpbmdzS2V5KSB7DQogICAgICAgICAgICAvLyBUZXh0IGlucHV0cw0KICAgICAgICAgICAgY2FzZSAidXBkYXRlIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLnVwZGF0ZS50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsICJ1cGRhdGUiLCBkYXRhLnRvU3RyaW5nKCkpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3suc2V0dGluZ3MudXBkYXRlLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJiYWNrdXAucGF0aCI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5iYWNrdXBQYXRoLnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgImJhY2t1cC5wYXRoIiwgZGF0YSk7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5zZXR0aW5ncy5iYWNrdXBQYXRoLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ0ZW1wLnBhdGgiOg0KICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MudGVtcFBhdGgudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCAidGVtcC5wYXRoIiwgZGF0YSk7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5zZXR0aW5ncy50bXBQYXRoLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ1c2VyLmFnZW50IjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLnVzZXJBZ2VudC50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsICJ1c2VyLmFnZW50IiwgZGF0YSk7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5zZXR0aW5ncy51c2VyQWdlbnQucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImJ1ZmZlci50aW1lb3V0IjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmJ1ZmZlclRpbWVvdXQudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCAiYnVmZmVyLnRpbWVvdXQiLCBkYXRhKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnNldHRpbmdzLmJ1ZmZlclRpbWVvdXQucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImZmbXBlZy5wYXRoIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmZmbXBlZ1BhdGgudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCAiZmZtcGVnLnBhdGgiLCBkYXRhKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnNldHRpbmdzLmZmbXBlZ1BhdGgucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImZmbXBlZy5vcHRpb25zIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmZmbXBlZ09wdGlvbnMudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCAiZmZtcGVnLm9wdGlvbnMiLCBkYXRhKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnNldHRpbmdzLmZmbXBlZ09wdGlvbnMucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInZsYy5wYXRoIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLnZsY1BhdGgudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCAidmxjLnBhdGgiLCBkYXRhKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnNldHRpbmdzLnZsY1BhdGgucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInZsYy5vcHRpb25zIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLnZsY09wdGlvbnMudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCAidmxjLm9wdGlvbnMiLCBkYXRhKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnNldHRpbmdzLnZsY09wdGlvbnMucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIC8vIENoZWNrYm94ZXMNCiAgICAgICAgICAgIGNhc2UgInRsc01vZGUiOg0KICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MudGxzTW9kZS50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChzZXR0aW5nc0tleSk7DQogICAgICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGE7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiYXV0aGVudGljYXRpb24ud2ViIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmF1dGhlbnRpY2F0aW9uV0VCLnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KHNldHRpbmdzS2V5KTsNCiAgICAgICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJhdXRoZW50aWNhdGlvbi5wbXMiOg0KICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MuYXV0aGVudGljYXRpb25QTVMudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goc2V0dGluZ3NLZXkpOw0KICAgICAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImF1dGhlbnRpY2F0aW9uLm0zdSI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5hdXRoZW50aWNhdGlvbk0zVS50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChzZXR0aW5nc0tleSk7DQogICAgICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGE7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiYXV0aGVudGljYXRpb24ueG1sIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmF1dGhlbnRpY2F0aW9uWE1MLnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KHNldHRpbmdzS2V5KTsNCiAgICAgICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJhdXRoZW50aWNhdGlvbi5hcGkiOg0KICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MuYXV0aGVudGljYXRpb25BUEkudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goc2V0dGluZ3NLZXkpOw0KICAgICAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImZpbGVzLnVwZGF0ZSI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5maWxlc1VwZGF0ZS50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChzZXR0aW5nc0tleSk7DQogICAgICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGE7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiY2FjaGUuaW1hZ2VzIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmNhY2hlSW1hZ2VzLnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KHNldHRpbmdzS2V5KTsNCiAgICAgICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ4ZXBnLnJlcGxhY2UubWlzc2luZy5pbWFnZXMiOg0KICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MucmVwbGFjZUVtcHR5SW1hZ2VzLnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KHNldHRpbmdzS2V5KTsNCiAgICAgICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJzdG9yZUJ1ZmZlckluUkFNIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLnN0b3JlQnVmZmVySW5SQU0udGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goc2V0dGluZ3NLZXkpOw0KICAgICAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInh0ZXZlQXV0b1VwZGF0ZSI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy54dGV2ZUF1dG9VcGRhdGUudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goc2V0dGluZ3NLZXkpOw0KICAgICAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImFwaSI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5hcGkudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goc2V0dGluZ3NLZXkpOw0KICAgICAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIC8vIFNlbGVjdA0KICAgICAgICAgICAgY2FzZSAiaG9zdElQIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmhvc3RJUC50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIHRleHQgPSBTRVJWRVJbImlwQWRkcmVzc2VzVjRIb3N0Il07DQogICAgICAgICAgICAgICAgdmFyIHZhbHVlcyA9IFNFUlZFUlsiaXBBZGRyZXNzZXNWNEhvc3QiXTsNCiAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCBkYXRhLCBzZXR0aW5nc0tleSk7DQogICAgICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKHNlbGVjdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ0dW5lciI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy50dW5lci50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIHRleHQgPSBuZXcgQXJyYXkoKTsNCiAgICAgICAgICAgICAgICB2YXIgdmFsdWVzID0gbmV3IEFycmF5KCk7DQogICAgICAgICAgICAgICAgZm9yICh2YXIgaSA9IDE7IGkgPD0gMTAwOyBpKyspIHsNCiAgICAgICAgICAgICAgICAgICAgdGV4dC5wdXNoKGkpOw0KICAgICAgICAgICAgICAgICAgICB2YWx1ZXMucHVzaChpKTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgdmFyIHNlbGVjdCA9IGNvbnRlbnQuY3JlYXRlU2VsZWN0KHRleHQsIHZhbHVlcywgZGF0YSwgc2V0dGluZ3NLZXkpOw0KICAgICAgICAgICAgICAgIHNlbGVjdC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChzZWxlY3QpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiZXBnU291cmNlIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmVwZ1NvdXJjZS50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIHRleHQgPSBbIlBNUyIsICJYRVBHIl07DQogICAgICAgICAgICAgICAgdmFyIHZhbHVlcyA9IFsiUE1TIiwgIlhFUEciXTsNCiAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCBkYXRhLCBzZXR0aW5nc0tleSk7DQogICAgICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKHNlbGVjdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJiYWNrdXAua2VlcCI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5iYWNrdXBLZWVwLnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgdGV4dCA9IFsiNSIsICIxMCIsICIyMCIsICIzMCIsICI0MCIsICI1MCJdOw0KICAgICAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBbIjUiLCAiMTAiLCAiMjAiLCAiMzAiLCAiNDAiLCAiNTAiXTsNCiAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCBkYXRhLCBzZXR0aW5nc0tleSk7DQogICAgICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKHNlbGVjdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJidWZmZXIuc2l6ZS5rYiI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5idWZmZXJTaXplLnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgdGV4dCA9IFsiMC41IE1CIiwgIjEgTUIiLCAiMiBNQiIsICIzIE1CIiwgIjQgTUIiLCAiNSBNQiIsICI2IE1CIiwgIjcgTUIiLCAiOCBNQiJdOw0KICAgICAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBbIjUxMiIsICIxMDI0IiwgIjIwNDgiLCAiMzA3MiIsICI0MDk2IiwgIjUxMjAiLCAiNjE0NCIsICI3MTY4IiwgIjgxOTIiXTsNCiAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCBkYXRhLCBzZXR0aW5nc0tleSk7DQogICAgICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKHNlbGVjdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJidWZmZXIiOg0KICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3Muc3RyZWFtQnVmZmVyaW5nLnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgdGV4dCA9IFsie3suc2V0dGluZ3Muc3RyZWFtQnVmZmVyaW5nLmluZm9fZmFsc2V9fSIsICJ4VGVWZTogKHt7LnNldHRpbmdzLnN0cmVhbUJ1ZmZlcmluZy5pbmZvX3h0ZXZlfX0pIiwgIkZGbXBlZzogKHt7LnNldHRpbmdzLnN0cmVhbUJ1ZmZlcmluZy5pbmZvX2ZmbXBlZ319KSIsICJWTEM6ICh7ey5zZXR0aW5ncy5zdHJlYW1CdWZmZXJpbmcuaW5mb192bGN9fSkiXTsNCiAgICAgICAgICAgICAgICB2YXIgdmFsdWVzID0gWyItIiwgInh0ZXZlIiwgImZmbXBlZyIsICJ2bGMiXTsNCiAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCBkYXRhLCBzZXR0aW5nc0tleSk7DQogICAgICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKHNlbGVjdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ1ZHB4eSI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy51ZHB4eS50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsICJ1ZHB4eSIsIGRhdGEpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3suc2V0dGluZ3MudWRweHkucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgfQ0KICAgICAgICByZXR1cm4gc2V0dGluZzsNCiAgICB9DQogICAgY3JlYXRlRGVzY3JpcHRpb24oc2V0dGluZ3NLZXkpIHsNCiAgICAgICAgdmFyIGRlc2NyaXB0aW9uID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVFIiKTsNCiAgICAgICAgdmFyIHRleHQ7DQogICAgICAgIHN3aXRjaCAoc2V0dGluZ3NLZXkpIHsNCiAgICAgICAgICAgIGNhc2UgInRsc01vZGUiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MudGxzTW9kZS5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImF1dGhlbnRpY2F0aW9uLndlYiI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5hdXRoZW50aWNhdGlvbldFQi5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImF1dGhlbnRpY2F0aW9uLm0zdSI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5hdXRoZW50aWNhdGlvbk0zVS5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImF1dGhlbnRpY2F0aW9uLnBtcyI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5hdXRoZW50aWNhdGlvblBNUy5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImF1dGhlbnRpY2F0aW9uLnhtbCI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5hdXRoZW50aWNhdGlvblhNTC5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImF1dGhlbnRpY2F0aW9uLmFwaSI6DQogICAgICAgICAgICAgICAgaWYgKFNFUlZFUlsic2V0dGluZ3MiXVsiYXV0aGVudGljYXRpb24ud2ViIl0gPT0gdHJ1ZSkgew0KICAgICAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLmF1dGhlbnRpY2F0aW9uQVBJLmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInh0ZXZlQXV0b1VwZGF0ZSI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy54dGV2ZUF1dG9VcGRhdGUuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJiYWNrdXAua2VlcCI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5iYWNrdXBLZWVwLmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiYmFja3VwLnBhdGgiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MuYmFja3VwUGF0aC5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInRlbXAucGF0aCI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy50ZW1wUGF0aC5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImJ1ZmZlciI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5zdHJlYW1CdWZmZXJpbmcuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJidWZmZXIuc2l6ZS5rYiI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5idWZmZXJTaXplLmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAic3RvcmVCdWZmZXJJblJBTSI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5zdG9yZUJ1ZmZlckluUkFNLmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiYnVmZmVyLnRpbWVvdXQiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MuYnVmZmVyVGltZW91dC5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInVzZXIuYWdlbnQiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MudXNlckFnZW50LmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiZmZtcGVnLnBhdGgiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MuZmZtcGVnUGF0aC5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImZmbXBlZy5vcHRpb25zIjoNCiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLmZmbXBlZ09wdGlvbnMuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ2bGMucGF0aCI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy52bGNQYXRoLmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAidmxjLm9wdGlvbnMiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MudmxjT3B0aW9ucy5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImVwZ1NvdXJjZSI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5lcGdTb3VyY2UuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJob3N0SVAiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MuaG9zdElQLmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAidHVuZXIiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MudHVuZXIuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ1cGRhdGUiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MudXBkYXRlLmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiYXBpIjoNCiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLmFwaS5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImZpbGVzLnVwZGF0ZSI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5maWxlc1VwZGF0ZS5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImNhY2hlLmltYWdlcyI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5jYWNoZUltYWdlcy5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInhlcGcucmVwbGFjZS5taXNzaW5nLmltYWdlcyI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5yZXBsYWNlRW1wdHlJbWFnZXMuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ1ZHB4eSI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy51ZHB4eS5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICAgICAgdGV4dCA9ICIiOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICB9DQogICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gIiI7DQogICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgdmFyIHByZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlBSRSIpOw0KICAgICAgICBwcmUuaW5uZXJIVE1MID0gdGV4dDsNCiAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChwcmUpOw0KICAgICAgICBkZXNjcmlwdGlvbi5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICBkZXNjcmlwdGlvbi5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgcmV0dXJuIGRlc2NyaXB0aW9uOw0KICAgIH0NCn0NCmNsYXNzIFNldHRpbmdzQ2F0ZWdvcnlJdGVtIGV4dGVuZHMgU2V0dGluZ3NDYXRlZ29yeSB7DQogICAgY29uc3RydWN0b3IoaGVhZGxpbmUsIHNldHRpbmdzS2V5cykgew0KICAgICAgICBzdXBlcigpOw0KICAgICAgICB0aGlzLmhlYWRsaW5lID0gaGVhZGxpbmU7DQogICAgICAgIHRoaXMuc2V0dGluZ3NLZXlzID0gc2V0dGluZ3NLZXlzOw0KICAgIH0NCiAgICBjcmVhdGVDYXRlZ29yeSgpIHsNCiAgICAgICAgdmFyIGhlYWRsaW5lID0gdGhpcy5jcmVhdGVDYXRlZ29yeUhlYWRsaW5lKHRoaXMuaGVhZGxpbmUpOw0KICAgICAgICB2YXIgc2V0dGluZ3NLZXlzID0gdGhpcy5zZXR0aW5nc0tleXM7DQogICAgICAgIHZhciBkb2MgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCh0aGlzLkRvY3VtZW50SUQpOw0KICAgICAgICBkb2MuYXBwZW5kQ2hpbGQoaGVhZGxpbmUpOw0KICAgICAgICAvLyBDcmVhdGUgYSB0YWJsZSBmb3IgdGhlIGNhdGVnb3J5DQogICAgICAgIHZhciB0YWJsZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlRBQkxFIik7DQogICAgICAgIHZhciBrZXlzID0gc2V0dGluZ3NLZXlzLnNwbGl0KCIsIik7DQogICAgICAgIGtleXMuZm9yRWFjaChzZXR0aW5nc0tleSA9PiB7DQogICAgICAgICAgICBzd2l0Y2ggKHNldHRpbmdzS2V5KSB7DQogICAgICAgICAgICAgICAgY2FzZSAiYXV0aGVudGljYXRpb24ucG1zIjoNCiAgICAgICAgICAgICAgICBjYXNlICJhdXRoZW50aWNhdGlvbi5tM3UiOg0KICAgICAgICAgICAgICAgIGNhc2UgImF1dGhlbnRpY2F0aW9uLnhtbCI6DQogICAgICAgICAgICAgICAgY2FzZSAiYXV0aGVudGljYXRpb24uYXBpIjoNCiAgICAgICAgICAgICAgICAgICAgaWYgKFNFUlZFUlsic2V0dGluZ3MiXVsiYXV0aGVudGljYXRpb24ud2ViIl0gPT0gZmFsc2UpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgICAgICAgICAgdmFyIGl0ZW0gPSB0aGlzLmNyZWF0ZVNldHRpbmdzKHNldHRpbmdzS2V5KTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGRlc2NyaXB0aW9uID0gdGhpcy5jcmVhdGVEZXNjcmlwdGlvbihzZXR0aW5nc0tleSk7DQogICAgICAgICAgICAgICAgICAgIHRhYmxlLmFwcGVuZENoaWxkKGl0ZW0pOw0KICAgICAgICAgICAgICAgICAgICB0YWJsZS5hcHBlbmRDaGlsZChkZXNjcmlwdGlvbik7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9KTsNCiAgICAgICAgZG9jLmFwcGVuZENoaWxkKHRhYmxlKTsNCiAgICAgICAgZG9jLmFwcGVuZENoaWxkKHRoaXMuY3JlYXRlSFIoKSk7DQogICAgfQ0KfQ0KZnVuY3Rpb24gc2hvd1NldHRpbmdzKCkgew0KICAgIGZvciAobGV0IGkgPSAwOyBpIDwgc2V0dGluZ3NDYXRlZ29yeS5sZW5ndGg7IGkrKykgew0KICAgICAgICBzZXR0aW5nc0NhdGVnb3J5W2ldLmNyZWF0ZUNhdGVnb3J5KCk7DQogICAgfQ0KfQ0KZnVuY3Rpb24gc2F2ZVNldHRpbmdzKCkgew0KICAgIHZhciBjbWQgPSAic2F2ZVNldHRpbmdzIjsNCiAgICB2YXIgZGl2ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnRlbnRfc2V0dGluZ3MiKTsNCiAgICB2YXIgc2V0dGluZ3MgPSBkaXYuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSgiY2hhbmdlZCIpOw0KICAgIHZhciBuZXdTZXR0aW5ncyA9IG5ldyBPYmplY3QoKTsNCiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHNldHRpbmdzLmxlbmd0aDsgaSsrKSB7DQogICAgICAgIHZhciBuYW1lOw0KICAgICAgICB2YXIgdmFsdWU7DQogICAgICAgIHN3aXRjaCAoc2V0dGluZ3NbaV0udGFnTmFtZSkgew0KICAgICAgICAgICAgY2FzZSAiSU5QVVQiOg0KICAgICAgICAgICAgICAgIHN3aXRjaCAoc2V0dGluZ3NbaV0udHlwZSkgew0KICAgICAgICAgICAgICAgICAgICBjYXNlICJjaGVja2JveCI6DQogICAgICAgICAgICAgICAgICAgICAgICBuYW1lID0gc2V0dGluZ3NbaV0ubmFtZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlID0gc2V0dGluZ3NbaV0uY2hlY2tlZDsNCiAgICAgICAgICAgICAgICAgICAgICAgIG5ld1NldHRpbmdzW25hbWVdID0gdmFsdWU7DQogICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICAgICAgY2FzZSAidGV4dCI6DQogICAgICAgICAgICAgICAgICAgICAgICBuYW1lID0gc2V0dGluZ3NbaV0ubmFtZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlID0gc2V0dGluZ3NbaV0udmFsdWU7DQogICAgICAgICAgICAgICAgICAgICAgICBzd2l0Y2ggKG5hbWUpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYXNlICJ1cGRhdGUiOg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IHZhbHVlLnNwbGl0KCIsIik7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlID0gdmFsdWUuZmlsdGVyKGZ1bmN0aW9uIChlKSB7IHJldHVybiBlOyB9KTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAiYnVmZmVyLnRpbWVvdXQiOg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IHBhcnNlRmxvYXQodmFsdWUpOw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgbmV3U2V0dGluZ3NbbmFtZV0gPSB2YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgIlNFTEVDVCI6DQogICAgICAgICAgICAgICAgbmFtZSA9IHNldHRpbmdzW2ldLm5hbWU7DQogICAgICAgICAgICAgICAgdmFsdWUgPSBzZXR0aW5nc1tpXS52YWx1ZTsNCiAgICAgICAgICAgICAgICAvLyBJZiB0aGUgdmFsdWUgaXMgYSBudW1iZXIsIHN0b3JlIGl0IGFzIGEgbnVtYmVyDQogICAgICAgICAgICAgICAgaWYgKGlzTmFOKHZhbHVlKSkgew0KICAgICAgICAgICAgICAgICAgICBuZXdTZXR0aW5nc1tuYW1lXSA9IHZhbHVlOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICAgICAgbmV3U2V0dGluZ3NbbmFtZV0gPSBwYXJzZUludCh2YWx1ZSk7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICB9DQogICAgfQ0KICAgIHZhciBkYXRhID0gbmV3IE9iamVjdCgpOw0KICAgIGRhdGFbInNldHRpbmdzIl0gPSBuZXdTZXR0aW5nczsNCiAgICB2YXIgc2VydmVyID0gbmV3IFNlcnZlcihjbWQpOw0KICAgIHNlcnZlci5yZXF1ZXN0KGRhdGEpOw0KfQ0K" webUI["html/lang/en.json"] = "ew0KICAibWFpbk1lbnUiOg0KICB7DQogICAgIml0ZW0iOg0KICAgIHsNCiAgICAgICJwbGF5bGlzdCI6ICJQbGF5bGlzdCIsDQogICAgICAicG1zSUQiOiAiUE1TIElEIiwNCiAgICAgICJmaWx0ZXIiOiAiRmlsdGVyIiwNCiAgICAgICJ4bWx0diI6ICJYTUxUViIsDQogICAgICAibWFwcGluZyI6ICJNYXBwaW5nIiwNCiAgICAgICJ1c2VycyI6ICJVc2VycyIsDQogICAgICAic2V0dGluZ3MiOiAiU2V0dGluZ3MiLA0KICAgICAgImxvZyI6ICJMb2ciLA0KICAgICAgImxvZ291dCI6ICJMb2dvdXQiDQogICAgfSwNCiAgICAiaGVhZGxpbmUiOg0KICAgIHsNCiAgICAgICJwbGF5bGlzdCI6ICJMb2NhbCBvciByZW1vdGUgcGxheWxpc3RzIiwNCiAgICAgICJmaWx0ZXIiOiAiRmlsdGVyIHBsYXlsaXN0IiwNCiAgICAgICJ4bWx0diI6ICJMb2NhbCBvciByZW1vdGUgWE1MVFYgZmlsZXMiLA0KICAgICAgIm1hcHBpbmciOiAiTWFwIHBsYXlsaXN0IGNoYW5uZWxzIHRvIEVQRyBjaGFubmVscyIsDQogICAgICAidXNlcnMiOiAiVXNlciBtYW5hZ2VtZW50IiwNCiAgICAgICJzZXR0aW5ncyI6ICJTZXR0aW5ncyIsDQogICAgICAibG9nIjogIkxvZyIsDQogICAgICAibG9nb3V0IjogIkxvZ291dCINCiAgICB9DQogIH0sDQogICJjb25maXJtIjoNCiAgew0KICAgICJyZXN0b3JlIjogIkFsbCBkYXRhIHdpbGwgYmUgcmVwbGFjZWQgd2l0aCB0aG9zZSBmcm9tIHRoZSBiYWNrdXAuIFNob3VsZCB0aGUgZmlsZXMgYmUgcmVzdG9yZWQ/Ig0KICB9LA0KICAiYWxlcnQiOg0KICB7DQogICAgImZpbGVMb2FkaW5nRXJyb3IiOiAiRmlsZSBjb3VsZG4ndCBiZSBsb2FkZWQiLA0KICAgICJpbnZhbGlkQ2hhbm5lbE51bWJlciI6ICJJbnZhbGlkIGNoYW5uZWwgbnVtYmVyIiwNCiAgICAibWlzc2luZ0lucHV0IjogIk1pc3NpbmcgaW5wdXQiDQogIH0sDQogICJidXR0b24iOg0KICB7DQogICAgImJhY2siOiAiQmFjayIsDQogICAgImJhY2t1cCI6ICJCYWNrdXAiLA0KICAgICJidWxrRWRpdCI6ICJCdWxrIEVkaXQiLA0KICAgICJjYW5jZWwiOiAiQ2FuY2VsIiwNCiAgICAiZGVsZXRlIjogIkRlbGV0ZSIsDQogICAgImRvbmUiOiAiRG9uZSIsDQogICAgImxvZ2luIjogIkxvZ2luIiwNCiAgICAibmV3IjogIk5ldyIsDQogICAgIm5leHQiOiAiTmV4dCIsDQogICAgInJlc3RvcmUiOiAiUmVzdG9yZSIsDQogICAgInNhdmUiOiAiU2F2ZSIsDQogICAgInNlYXJjaCI6ICJTZWFyY2giLA0KICAgICJ1cGRhdGUiOiAiVXBkYXRlIiwNCiAgICAiY3JhZXRlQWNjb3VudCI6ICJDcmVhdGUgQWNjb3VudCIsDQogICAgInJlc2V0TG9ncyI6ICJSZXNldCBMb2dzIiwNCiAgICAidXBsb2FkTG9nbyI6ICJVcGxvYWQgTG9nbyINCiAgfSwNCiAgImZpbHRlciI6DQogIHsNCiAgICAidGFibGUiOg0KICAgIHsNCiAgICAgICJzdGFydGluZ0NoYW5uZWwiOiAiU3RhcnRpbmcgQ2guIE5vLiIsDQogICAgICAibmFtZSI6ICJGaWx0ZXIgTmFtZSIsDQogICAgICAidHlwZSI6ICJGaWx0ZXIgVHlwZSIsDQogICAgICAiZmlsdGVyIjogIkZpbHRlciINCiAgICB9LA0KICAgICJjdXN0b20iOiAiQ3VzdG9tIiwNCiAgICAiZ3JvdXAiOiAiTTNVIEdyb3VwIiwNCiAgICAibmFtZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIkZpbHRlciBOYW1lIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJGaWx0ZXIgbmFtZSIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgImRlc2NyaXB0aW9uIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiRGVzY3JpcHRpb24iLA0KICAgICAgInBsYWNlaG9sZGVyIjogIkRlc2NyaXB0aW9uIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAidHlwZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIlR5cGUiLA0KICAgICAgImdyb3VwVGl0bGUiOiAiR3JvdXAgVGl0bGUiLA0KICAgICAgImN1c3RvbUZpbHRlciI6ICJDdXN0b20gRmlsdGVyIg0KICAgIH0sDQogICAgImNhc2VTZW5zaXRpdmUiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJDYXNlIFNlbnNpdGl2ZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAiZmlsdGVyUnVsZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIkZpbHRlciBSdWxlIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJTcG9ydCB7SER9ICF7RVMsSVR9IiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAiZmlsdGVyR3JvdXAiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJHcm91cCBUaXRsZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJTZWxlY3QgYSBNM1UgZ3JvdXAuIChDb3VudGVyKTxicj5DaGFuZ2luZyB0aGUgZ3JvdXAgdGl0bGUgaW4gdGhlIE0zVSBpbnZhbGlkYXRlcyB0aGUgZmlsdGVyLiINCiAgICB9LA0KICAgICJpbmNsdWRlIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiSW5jbHVkZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiRkhELFVIRCIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiQ2hhbm5lbCBuYW1lIG11c3QgaW5jbHVkZS48YnI+KENvbW1hIHNlcGFyYXRlZCkgQ29tbWEgbWVhbnMgb3IiDQogICAgfSwNCiAgICAiZXhjbHVkZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIkV4Y2x1ZGUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIkVTLElUIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJDaGFubmVsIG5hbWUgbXVzdCBub3QgY29udGFpbi48YnI+KENvbW1hIHNlcGFyYXRlZCkgQ29tbWEgbWVhbnMgb3IiDQogICAgfSwNCiAgICAicHJlc2VydmVNYXBwaW5nIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiUHJlc2VydmUgRXhpc3RpbmcgTTNVPGJyPkNoYW5uZWwgTnVtYmVycyIsDQogICAgICAicGFsY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJQcmVzZXJ2ZSBleGlzdGluZyBNM1UgcGxheWxpc3QgY2hhbm5lbCBudW1iZXJzPyINCiAgICB9LA0KICAgICJzdGFydGluZ0NoYW5uZWwiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJTdGFydGluZyBDaGFubmVsIE51bWJlciIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAiZGVmYXVsdE1pc3NpbmdFUEciOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJGaWxsIE1pc3NpbmcgRVBHIERhdGEiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiV2hlbiB0aGVyZSBpcyBubyBtYXRjaGluZyBFUEcgZGF0YSBmb3IgY2hhbm5lbCwgPGJyPmF1dG9maWxsIHdpdGggeFRlVmUgZHVtbXkgRVBHIGRhdGE/Ig0KICAgIH0NCg0KICB9LA0KICAicGxheWxpc3QiOg0KICB7DQogICAgInRhYmxlIjoNCiAgICB7DQogICAgICAicGxheWxpc3QiOiAiUGxheWxpc3QiLA0KICAgICAgInR1bmVyIjogIlR1bmVyIiwNCiAgICAgICJsYXN0VXBkYXRlIjogIkxhc3QgVXBkYXRlIiwNCiAgICAgICJhdmFpbGFiaWxpdHkiOiAiQXZhaWxhYmlsaXR5IiwNCiAgICAgICJ0eXBlIjogIlR5cGUiLA0KICAgICAgInN0cmVhbXMiOiAiU3RyZWFtcyIsDQogICAgICAiZ3JvdXBUaXRsZSI6ICJncm91cC10aXRsZSIsDQogICAgICAidHZnSUQiOiAidHZnLWlkIiwNCiAgICAgICJ1bmlxdWVJRCI6ICJVbmlxdWUgSUQiDQogICAgfSwNCiAgICAicGxheWxpc3RUeXBlIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiUGxheWxpc3QgdHlwZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAidHlwZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIlR5cGUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgIm5hbWUiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJOYW1lIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJQbGF5bGlzdCBuYW1lIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAiZGVzY3JpcHRpb24iOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJEZXNjcmlwdGlvbiIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiRGVzY3JpcHRpb24iLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJmaWxlTTNVIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiTTNVIEZpbGUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIkZpbGUgcGF0aCBvciBVUkwgb2YgdGhlIE0zVSIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgImZpbGVIREhSIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiSERIb21lUnVuIElQIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJJUCBhZGRyZXNzIGFuZCBwb3J0ICgxOTIuMTY4LjEuMTA6NTAwNCkiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJ0dW5lciI6DQogICAgew0KICAgICAgInRpdGxlIjogIlR1bmVyIC8gU3RyZWFtcyIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJOdW1iZXIgb2YgcGFyYWxsZWwgY29ubmVjdGlvbnMgdGhhdCBjYW4gYmUgZXN0YWJsaXNoZWQgdG8gdGhlIHByb3ZpZGVyLiA8YnI+T25seSBhdmFpbGFibGUgd2l0aCBhY3RpdmF0ZWQgYnVmZmVyLjxicj5OZXcgc2V0dGluZ3Mgd2lsbCBvbmx5IGJlIGFwcGxpZWQgYWZ0ZXIgcXVpdHRpbmcgYWxsIHN0cmVhbXMuIg0KICAgIH0NCiAgfSwNCiAgInhtbHR2IjoNCiAgew0KICAgICJ0YWJsZSI6DQogICAgew0KICAgICAgImd1aWRlIjogIkd1aWRlIiwNCiAgICAgICJsYXN0VXBkYXRlIjogIkxhc3QgVXBkYXRlIiwNCiAgICAgICJhdmFpbGFiaWxpdHkiOiAiQXZhaWxhYmlsaXR5IiwNCiAgICAgICJjaGFubmVscyI6ICJDaGFubmVscyIsDQogICAgICAicHJvZ3JhbXMiOiAiUHJvZ3JhbXMiDQogICAgfSwNCiAgICAibmFtZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIk5hbWUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIkd1aWRlIG5hbWUiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJkZXNjcmlwdGlvbiI6DQogICAgew0KICAgICAgInRpdGxlIjogIkRlc2NyaXB0aW9uIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJEZXNjcmlwdGlvbiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgImZpbGVYTUxUViI6DQogICAgew0KICAgICAgInRpdGxlIjogIlhNTFRWIEZpbGUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIkZpbGUgcGF0aCBvciBVUkwgb2YgdGhlIFhNTFRWIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfQ0KICB9LA0KICAibWFwcGluZyI6DQogIHsNCiAgICAidGFibGUiOg0KICAgIHsNCiAgICAgICJjaE5vIjogIkNoLiBOby4iLA0KICAgICAgImxvZ28iOiAiTG9nbyIsDQogICAgICAiY2hhbm5lbE5hbWUiOiAiQ2hhbm5lbCBOYW1lIiwNCiAgICAgICJwbGF5bGlzdCI6ICJQbGF5bGlzdCIsDQogICAgICAiZ3JvdXBUaXRsZSI6ICJHcm91cCBUaXRsZSIsDQogICAgICAieG1sdHZGaWxlIjogIlhNTFRWIEZpbGUiLA0KICAgICAgInhtbHR2SUQiOiAiWE1MVFYgSUQiLA0KICAgICAgInRpbWVzaGlmdCI6ICJUaW1lc2hpZnQiDQogICAgfSwNCiAgICAiYWN0aXZlIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiQWN0aXZlIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJjaGFubmVsTmFtZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIkNoYW5uZWwgTmFtZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAiZGVzY3JpcHRpb24iOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJDaGFubmVsIERlc2NyaXB0aW9uIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJVc2VkIGJ5IHRoZSBEdW1teSBhcyBhbiBYTUwgZGVzY3JpcHRpb24iLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJ1cGRhdGVDaGFubmVsTmFtZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIlVwZGF0ZSBDaGFubmVsIE5hbWUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgInVwZGF0ZUNoYW5uZWxHcm91cCI6DQogICAgew0KICAgICAgInRpdGxlIjogIlVwZGF0ZSBDaGFubmVsIEdyb3VwIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIklmIGNoZWNrZWQsIHVzZSBncm91cCBmcm9tIHRoZSBkYXRhYmFzZSINCiAgICB9LA0KICAgICJjaGFubmVsTG9nbyI6DQogICAgew0KICAgICAgInRpdGxlIjogIkxvZ28gVVJMIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJ1cGRhdGVDaGFubmVsTG9nbyI6DQogICAgew0KICAgICAgInRpdGxlIjogIlVwZGF0ZSBDaGFubmVsIExvZ28iLA0KICAgICAgInBsYWNlaG9sZGVyIjogIiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgImVwZ0NhdGVnb3J5IjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiRVBHIENhdGVnb3J5IiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJtM3VHcm91cFRpdGxlIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiR3JvdXAgVGl0bGUgKHh0ZXZlLm0zdSkiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgInhtbHR2RmlsZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIlhNTFRWIEZpbGUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgInhtbHR2Q2hhbm5lbCI6DQogICAgew0KICAgICAgInRpdGxlIjogIlhNTFRWIENoYW5uZWwiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgInRpbWVzaGlmdCI6DQogICAgew0KICAgICAgInRpdGxlIjogIlRpbWVzaGlmdCIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiMCIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0NCiAgfSwNCiAgInVzZXJzIjoNCiAgew0KICAgICJ0YWJsZSI6DQogICAgew0KICAgICAgInVzZXJuYW1lIjogIlVzZXJuYW1lIiwNCiAgICAgICJwYXNzd29yZCI6ICJQYXNzd29yZCIsDQogICAgICAid2ViIjogIldFQiIsDQogICAgICAicG1zIjogIlBNUyIsDQogICAgICAibTN1IjogIk0zVSIsDQogICAgICAieG1sIjogIlhNTCIsDQogICAgICAiYXBpIjogIkFQSSINCiAgICB9LA0KICAgICJ1c2VybmFtZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIlVzZXJuYW1lIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJVc2VybmFtZSIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgInBhc3N3b3JkIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiUGFzc3dvcmQiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIlBhc3N3b3JkIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAiY29uZmlybSI6DQogICAgew0KICAgICAgInRpdGxlIjogIkNvbmZpcm0iLA0KICAgICAgInBsYWNlaG9sZGVyIjogIlBhc3N3b3JkIGNvbmZpcm0iLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJ3ZWIiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJXZWIgQWNjZXNzIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJwbXMiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJQTVMgQWNjZXNzIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJtM3UiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJNM1UgQWNjZXNzIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJ4bWwiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJYTUwgQWNjZXNzIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJhcGkiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJBUEkgQWNjZXNzIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9DQogIH0sDQogICJzZXR0aW5ncyI6DQogIHsNCiAgICAiY2F0ZWdvcnkiOg0KICAgIHsNCiAgICAgICJnZW5lcmFsIjogIkdlbmVyYWwiLA0KICAgICAgImZpbGVzIjogIkZpbGVzIiwNCiAgICAgICJzdHJlYW1pbmciOiAiU3RyZWFtaW5nIiwNCiAgICAgICJiYWNrdXAiOiAiQmFja3VwIiwNCiAgICAgICJhdXRoZW50aWNhdGlvbiI6ICJBdXRoZW50aWNhdGlvbiINCiAgICB9LA0KICAgICJ1cGRhdGUiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJTY2hlZHVsZSBmb3IgdXBkYXRpbmcgKFBsYXlsaXN0LCBYTUxUViwgQmFja3VwKSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiMDAwMCwxMDAwLDIwMDAiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIlRpbWUgaW4gMjQgaG91ciBmb3JtYXQgKDA4MDAgPSA4OjAwIGFtKS4gTW9yZSB0aW1lcyBjYW4gYmUgZW50ZXJlZCBjb21tYSBzZXBhcmF0ZWQuIExlYXZlIHRoaXMgZmllbGQgZW1wdHkgaWYgbm8gdXBkYXRlcyBhcmUgdG8gYmUgY2FycmllZCBvdXQuIg0KICAgIH0sDQogICAgImFwaSI6DQogICAgew0KICAgICAgInRpdGxlIjogIkFQSSBJbnRlcmZhY2UiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIlZpYSBBUEkgaW50ZXJmYWNlIGl0IGlzIHBvc3NpYmxlIHRvIHNlbmQgY29tbWFuZHMgdG8geFRlVmUuIEFQSSBkb2N1bWVudGF0aW9uIGlzIDxhIGhyZWY9J2h0dHBzOi8vZ2l0aHViLmNvbS94dGV2ZS1wcm9qZWN0L3hUZVZlLURvY3VtZW50YXRpb24vYmxvYi9tYXN0ZXIvZW4vY29uZmlndXJhdGlvbi5tZCNhcGknPmhlcmU8L2E+Ig0KICAgIH0sDQogICAgImVwZ1NvdXJjZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIkVQRyBTb3VyY2UiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIlBNUzo8YnI+LSBVc2UgRVBHIGRhdGEgZnJvbSBQbGV4IG9yIEVtYnkgPGJyPjxicj5YRVBHOjxicj4tIFVzZSBvZiBvbmUgb3IgbW9yZSBYTUxUViBmaWxlczxicj4tIENoYW5uZWwgbWFuYWdlbWVudDxicj4tIE0zVSAvIFhNTFRWIGV4cG9ydCAoSFRUUCBsaW5rIGZvciBJUFRWIGFwcHMpIg0KICAgIH0sDQogICAgInR1bmVyIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiTnVtYmVyIG9mIFR1bmVycyIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiTnVtYmVyIG9mIHBhcmFsbGVsIGNvbm5lY3Rpb25zIHRoYXQgY2FuIGJlIGVzdGFibGlzaGVkIHRvIHRoZSBwcm92aWRlci48YnI+QXZhaWxhYmxlIGZvcjogUGxleCwgRW1ieSAoSERIUiksIE0zVSAod2l0aCBhY3RpdmUgYnVmZmVyKS48YnI+QWZ0ZXIgYSBjaGFuZ2UsIHhUZVZlIG11c3QgYmUgZGVsZXRlIGluIHRoZSBQbGV4IC8gRW1ieSBEVlIgc2V0dGluZ3MgYW5kIHNldCB1cCBhZ2Fpbi4iDQogICAgfSwNCiAgICAiaG9zdElQIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiSG9zdCBJUCIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiSVAgYWRkcmVzcyB4VGVWZSB3aWxsIHVzZSB0byBmb3JtIE0zVSBhbmQgWE1MVFYgZmlsZXMiDQogICAgfSwNCiAgICAidGxzTW9kZSI6IHsNCiAgICAgICJ0aXRsZSI6ICJUTFMgKEhUVFBTKSBtb2RlIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJDaGFuZ2VzIHdlYiBzZXJ2ZXIgcHJvdG9jb2wgdG8gSFRUUFMuPGJyPkZvciBkZXRhaWxzLCBzZWUgPGE+aHR0cHM6Ly9naXRodWIuY29tL1NDUDAwMi94VGVWZSN0bHMtbW9kZTwvYT4iDQogICAgfSwNCiAgICAiZmlsZXNVcGRhdGUiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJVcGRhdGVzIGFsbCBmaWxlcyBhdCBzdGFydHVwIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJVcGRhdGVzIGFsbCBwbGF5bGlzdHMsIHR1bmVyIGFuZCBYTUxUViBmaWxlcyBhdCBzdGFydHVwLiINCiAgICB9LA0KICAgICJjYWNoZUltYWdlcyI6DQogICAgew0KICAgICAgInRpdGxlIjogIkltYWdlIENhY2hpbmciLA0KICAgICAgImRlc2NyaXB0aW9uIjogIkFsbCBpbWFnZXMgZnJvbSB0aGUgWE1MVFYgZmlsZSBhcmUgY2FjaGVkLCBhbGxvd2luZyBmYXN0ZXIgcmVuZGVyaW5nIG9mIHRoZSBncmlkIGluIHRoZSBjbGllbnQuPGJyPkRvd25sb2FkaW5nIHRoZSBpbWFnZXMgbWF5IHRha2UgYSB3aGlsZSBhbmQgd2lsbCBiZSBkb25lIGluIHRoZSBiYWNrZ3JvdW5kLiINCiAgICB9LA0KICAgICJyZXBsYWNlRW1wdHlJbWFnZXMiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJSZXBsYWNlIG1pc3NpbmcgcHJvZ3JhbSBpbWFnZXMiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIklmIHRoZSBwb3N0ZXIgaW4gdGhlIFhNTFRWIHByb2dyYW0gaXMgbWlzc2luZywgdGhlIGNoYW5uZWwgbG9nbyB3aWxsIGJlIHVzZWQuIg0KICAgIH0sDQogICAgInh0ZXZlQXV0b1VwZGF0ZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIkF1dG9tYXRpYyB1cGRhdGUgb2YgeFRlVmUiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIklmIGEgbmV3IHZlcnNpb24gb2YgeFRlVmUgaXMgYXZhaWxhYmxlLCBpdCB3aWxsIGJlIGF1dG9tYXRpY2FsbHkgaW5zdGFsbGVkLiBUaGUgdXBkYXRlcyBhcmUgZG93bmxvYWRlZCBmcm9tIEdpdEh1Yi4iDQogICAgfSwNCiAgICAic3RyZWFtQnVmZmVyaW5nIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiU3RyZWFtIEJ1ZmZlciIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiRnVuY3Rpb25zIG9mIHRoZSBidWZmZXI6PGJyPi0gVGhlIHN0cmVhbSBpcyBwYXNzZWQgZnJvbSB4VGVWZSwgRkZtcGVnIG9yIFZMQyB0byBQbGV4LCBFbWJ5IG9yIE0zVSBQbGF5ZXI8YnI+LSBTbWFsbCBqZXJraW5nIG9mIHRoZSBzdHJlYW1zIGNhbiBiZSBjb21wZW5zYXRlZDxicj4tIEhMUyAvIE0zVTggc3VwcG9ydDxicj4tIFJUUCAvIFJUUFMgc3VwcG9ydCAob25seSBGRm1wZWcgb3IgVkxDKTxicj4tIFJlLXN0cmVhbWluZzxicj4tIFNlcGFyYXRlIHR1bmVyIGxpbWl0IGZvciBlYWNoIHBsYXlsaXN0IiwNCiAgICAgICJpbmZvX2ZhbHNlIjogIk5vIEJ1ZmZlciAoQ2xpZW50IGNvbm5lY3RzIHRvIHRoZSBzdHJlYW1pbmcgc2VydmVyKSIsDQogICAgICAiaW5mb194dGV2ZSI6ICJ4VGVWZSBjb25uZWN0cyB0byB0aGUgc3RyZWFtaW5nIHNlcnZlciIsDQogICAgICAiaW5mb19mZm1wZWciOiAiRkZtcGVnIGNvbm5lY3RzIHRvIHRoZSBzdHJlYW1pbmcgc2VydmVyIiwNCiAgICAgICJpbmZvX3ZsYyI6ICJWTEMgY29ubmVjdHMgdG8gdGhlIHN0cmVhbWluZyBzZXJ2ZXIiDQoNCiAgICB9LA0KICAgICJ1ZHB4eSI6DQogICAgew0KICAgICAgInRpdGxlIjogIlVEUHh5IGFkZHJlc3MiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIlRoZSBhZGRyZXNzIG9mIHlvdXIgVURQeHkgc2VydmVyLiBJZiBzZXQsIGFuZCB0aGUgY2hhbm5lbCBVUkxzIGluIHRoZSBtM3UgaXMgbXVsdGljYXN0LCB4VGVWZSB3aWxsIHJld3JpdGUgaXQgc28gdGhhdCBpdCBpcyBhY2Nlc3NlZCB2aWEgdGhlIFVEUHh5IHNlcnZpY2UuIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJob3N0OnBvcnQiDQogICAgfSwNCiAgICAiZmZtcGVnUGF0aCI6DQogICAgew0KICAgICAgInRpdGxlIjogIkZGbXBlZyBCaW5hcnkgUGF0aCIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiUGF0aCB0byBGRm1wZWcgYmluYXJ5LiIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiL3BhdGgvdG8vZmZtcGVnIg0KICAgIH0sDQogICAgImZmbXBlZ09wdGlvbnMiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJGRm1wZWcgT3B0aW9ucyIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiRkZtcGVnIG9wdGlvbnMuPGJyPk9ubHkgY2hhbmdlIGlmIHlvdSBrbm93IHdoYXQgeW91IGFyZSBkb2luZy48YnI+TGVhdmUgYmxhbmsgdG8gc2V0IGRlZmF1bHQgc2V0dGluZ3MuIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJMZWF2ZSBibGFuayB0byBzZXQgZGVmYXVsdCBzZXR0aW5ncyINCiAgICB9LA0KICAgICJ2bGNQYXRoIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiVkxDIC8gQ1ZMQyBCaW5hcnkgUGF0aCIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiUGF0aCB0byBWTEMgLyBDVkxDIGJpbmFyeS4iLA0KICAgICAgInBsYWNlaG9sZGVyIjogIi9wYXRoL3RvL2N2bGMiDQogICAgfSwNCiAgICAidmxjT3B0aW9ucyI6DQogICAgew0KICAgICAgInRpdGxlIjogIlZMQyAvIENWTEMgT3B0aW9ucyIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiVkxDIC8gQ1ZMQyBvcHRpb25zLjxicj5Pbmx5IGNoYW5nZSBpZiB5b3Uga25vdyB3aGF0IHlvdSBhcmUgZG9pbmcuPGJyPkxlYXZlIGJsYW5rIHRvIHNldCBkZWZhdWx0IHNldHRpbmdzLiIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiTGVhdmUgYmxhbmsgdG8gc2V0IGRlZmF1bHQgc2V0dGluZ3MiDQogICAgfSwNCiAgICAiYnVmZmVyU2l6ZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIkJ1ZmZlciBTaXplIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJCdWZmZXIgc2l6ZSBpbiBNQi48YnI+TTNVODogSWYgdGhlIFRTIHNlZ21lbnQgc21hbGxlciB0aGVuIHRoZSBidWZmZXIgc2l6ZSwgdGhlIGZpbGUgc2l6ZSBvZiB0aGUgc2VnbWVudCBpcyB1c2VkLiINCiAgICB9LA0KICAgICJzdG9yZUJ1ZmZlckluUkFNIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiU3RvcmUgYnVmZmVyIGluIFJBTSIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiSWYgY2hlY2tlZCwgd3JpdGUgYnVmZmVyIHRvIFJBTSBpbnN0ZWFkIG9mIHdyaXRpbmcgdG8gZGlzayINCiAgICB9LA0KICAgICJidWZmZXJUaW1lb3V0IjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiVGltZW91dCBmb3IgbmV3IGNsaWVudCBjb25uZWN0aW9ucyIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiVGhlIHhUZVZlIGJ1ZmZlciB3YWl0cyB1bnRpbCBuZXcgY2xpZW50IGNvbm5lY3Rpb25zIGFyZSBlc3RhYmxpc2hlZC4gSGVscGZ1bCBmb3IgZmFzdCBjaGFubmVsIHN3aXRjaGluZy4gVmFsdWUgaW4gbWlsbGlzZWNvbmRzLiIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiMTAwIg0KICAgIH0sDQogICAgInVzZXJBZ2VudCI6DQogICAgew0KICAgICAgInRpdGxlIjogIlVzZXIgQWdlbnQiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIlVzZXIgQWdlbnQgZm9yIEhUVFAgcmVxdWVzdHMuIEZvciBldmVyeSBIVFRQIGNvbm5lY3Rpb24sIHRoaXMgdmFsdWUgaXMgdXNlZCBmb3IgdGhlIHVzZXIgYWdlbnQuIFNob3VsZCBvbmx5IGJlIGNoYW5nZWQgaWYgeFRlVmUgaXMgYmxvY2tlZC4iLA0KICAgICAgInBsYWNlaG9sZGVyIjogInhUZVZlIg0KICAgIH0sDQogICAgImJhY2t1cFBhdGgiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJMb2NhdGlvbiBmb3IgYXV0b21hdGljIGJhY2t1cHMiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIi9tbnQvZGF0YS9iYWNrdXAveHRldmUvIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJCZWZvcmUgYW55IHVwZGF0ZSBvZiB0aGUgcHJvdmlkZXIgZGF0YSBieSB0aGUgc2NoZWR1bGUsIHhUZVZlIGNyZWF0ZXMgYSBiYWNrdXAuIFRoZSBwYXRoIGZvciB0aGUgYXV0b21hdGljIGJhY2t1cHMgY2FuIGJlIGNoYW5nZWQuIHhUZVZlIHJlcXVpcmVzIHdyaXRlIHBlcm1pc3Npb24gZm9yIHRoaXMgZm9sZGVyLiINCiAgICB9LA0KICAgICJ0ZW1wUGF0aCI6DQogICAgew0KICAgICAgInRpdGxlIjogIkxvY2F0aW9uIGZvciB0aGUgdGVtcG9yYXJ5IGZpbGVzIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIvdG1wL3h0ZXZlLyIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiTG9jYXRpb24gZm9yIHRoZSBidWZmZXIgZmlsZXMuIg0KICAgIH0sDQogICAgImJhY2t1cEtlZXAiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJOdW1iZXIgb2YgYmFja3VwcyB0byBrZWVwIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJOdW1iZXIgb2YgYmFja3VwcyB0byBrZWVwLiBPbGRlciBiYWNrdXBzIGFyZSBhdXRvbWF0aWNhbGx5IGRlbGV0ZWQuIg0KICAgIH0sDQogICAgImF1dGhlbnRpY2F0aW9uV0VCIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiV0VCIEF1dGhlbnRpY2F0aW9uIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJBY2Nlc3MgdG8gdGhlIHdlYiBpbnRlcmZhY2Ugb25seSBwb3NzaWJsZSB3aXRoIGNyZWRlbnRpYWxzLiINCiAgICB9LA0KICAgICJhdXRoZW50aWNhdGlvblBNUyI6DQogICAgew0KICAgICAgInRpdGxlIjogIlBNUyBBdXRoZW50aWNhdGlvbiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiUGxleCByZXF1ZXN0cyBhcmUgb25seSBwb3NzaWJsZSB3aXRoIGF1dGhlbnRpY2F0aW9uLiA8YnI+PGI+V2FybmluZyEhITwvYj4gQWZ0ZXIgYWN0aXZhdGluZyB0aGlzIGZ1bmN0aW9uIHhUZVZlIG11c3QgYmUgZGVsZXRlIGluIHRoZSBQTVMgRFZSIHNldHRpbmdzIGFuZCBzZXQgdXAgYWdhaW4uIg0KICAgIH0sDQogICAgImF1dGhlbnRpY2F0aW9uTTNVIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiTTNVIEF1dGhlbnRpY2F0aW9uIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJEb3dubG9hZGluZyB0aGUgeHRldmUubTN1IGZpbGUgdmlhIGFuIEhUVFAgcmVxdWVzdCBpcyBvbmx5IHBvc3NpYmxlIHdpdGggYXV0aGVudGljYXRpb24uIg0KICAgIH0sDQogICAgImF1dGhlbnRpY2F0aW9uWE1MIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiWE1MIEF1dGhlbnRpY2F0aW9uIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJEb3dubG9hZGluZyB0aGUgeHRldmUueG1sIGZpbGUgdmlhIGFuIEhUVFAgcmVxdWVzdCBpcyBvbmx5IHBvc3NpYmxlIHdpdGggYXV0aGVudGljYXRpb24iDQogICAgfSwNCiAgICAiYXV0aGVudGljYXRpb25BUEkiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJBUEkgQXV0aGVudGljYXRpb24iLA0KICAgICAgImRlc2NyaXB0aW9uIjogIkFjY2VzcyB0byB0aGUgQVBJIGludGVyZmFjZSBpcyBvbmx5IHBvc3NpYmxlIHdpdGggYXV0aGVudGljYXRpb24uIg0KICAgIH0NCiAgfSwNCiAgIndpemFyZCI6DQogIHsNCiAgICAiZXBnU291cmNlIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiRVBHIFNvdXJjZSIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiUE1TOjxicj4tIFVzZSBFUEcgZGF0YSBmcm9tIFBsZXggb3IgRW1ieSA8YnI+PGJyPlhFUEc6PGJyPi0gVXNlIG9mIG9uZSBvciBtb3JlIFhNTFRWIGZpbGVzPGJyPi0gQ2hhbm5lbCBtYW5hZ2VtZW50PGJyPi0gTTNVIC8gWE1MVFYgZXhwb3J0IChIVFRQIGxpbmsgZm9yIElQVFYgYXBwcykiDQogICAgfSwNCiAgICAidHVuZXIiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJOdW1iZXIgb2YgdHVuZXJzIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJOdW1iZXIgb2YgcGFyYWxsZWwgY29ubmVjdGlvbnMgdGhhdCBjYW4gYmUgZXN0YWJsaXNoZWQgdG8gdGhlIHByb3ZpZGVyLjxicj5BdmFpbGFibGUgZm9yOiBQbGV4LCBFbWJ5IChIREhSKSwgTTNVICh3aXRoIGFjdGl2ZSBidWZmZXIpLjxicj5BZnRlciBhIGNoYW5nZSwgeFRlVmUgbXVzdCBiZSBkZWxldGUgaW4gdGhlIFBsZXggLyBFbWJ5IERWUiBzZXR0aW5ncyBhbmQgc2V0IHVwIGFnYWluLiINCiAgICB9LA0KICAgICJtM3UiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJNM1UgUGxheWxpc3QiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIkZpbGUgcGF0aCBvciBVUkwgb2YgdGhlIE0zVSIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiTG9jYWwgb3IgcmVtb3RlIHBsYXlsaXN0cyINCiAgICB9LA0KICAgICJ4bWx0diI6DQogICAgew0KICAgICAgInRpdGxlIjogIlhNTFRWIEZpbGUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIkZpbGUgcGF0aCBvciBVUkwgb2YgdGhlIFhNTFRWIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJMb2NhbCBvciByZW1vdGUgWE1MVFYgZmlsZSINCiAgICB9DQogIH0sDQogICJsb2dpbiI6DQogIHsNCiAgICAiZmFpbGVkIjogIlVzZXIgYXV0aGVudGljYXRpb24gZmFpbGVkIiwNCiAgICAiaGVhZGxpbmUiOiAiTG9naW4iLA0KICAgICJ1c2VybmFtZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIlVzZXJuYW1lIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJVc2VybmFtZSINCiAgICB9LA0KICAgICJwYXNzd29yZCI6DQogICAgew0KICAgICAgInRpdGxlIjogIlBhc3N3b3JkIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJQYXNzd29yZCINCiAgICB9DQogIH0sDQogICJhY2NvdW50IjoNCiAgew0KICAgICJmYWlsZWQiOiAiUGFzc3dvcmQgZG9lcyBub3QgbWF0Y2giLA0KICAgICJoZWFkbGluZSI6ICJDcmVhdGUgdXNlciBhY2NvdW50IiwNCiAgICAidXNlcm5hbWUiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJVc2VybmFtZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiVXNlcm5hbWUiDQogICAgfSwNCiAgICAicGFzc3dvcmQiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJQYXNzd29yZCIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiUGFzc3dvcmQiDQogICAgfSwNCiAgICAiY29uZmlybSI6DQogICAgew0KICAgICAgInRpdGxlIjogIkNvbmZpcm0iLA0KICAgICAgInBsYWNlaG9sZGVyIjogIkNvbmZpcm0iDQogICAgfQ0KICB9DQp9" diff --git a/ts/menu_ts.ts b/ts/menu_ts.ts index 3784063..53162c0 100644 --- a/ts/menu_ts.ts +++ b/ts/menu_ts.ts @@ -1757,10 +1757,6 @@ class XMLTVFile { return select } - // TODO: Display FULL list, see: - // > https://stackoverflow.com/questions/37478727/how-can-i-make-a-browser-display-all-datalist-options-when-a-default-value-is-se - // > https://www.hongkiat.com/blog/search-select-using-datalist/ - /** * @param xmlTvFile XML file path to get EPG from. * @param currentXmlTvId Current XMLTV ID to set initial input value to. From 121a9dcb78bf4b5e1d4f71f0522fcd73e84a498f Mon Sep 17 00:00:00 2001 From: SCP002 Date: Thu, 28 Apr 2022 22:39:12 +0300 Subject: [PATCH 099/189] Add input to change starting channel number in custom filter popup. Closes #33 --- html/js/menu_ts.js | 5 +++++ src/webUI.go | 2 +- ts/menu_ts.ts | 6 ++++++ 3 files changed, 12 insertions(+), 1 deletion(-) diff --git a/html/js/menu_ts.js b/html/js/menu_ts.js index 9591441..3d8191c 100644 --- a/html/js/menu_ts.js +++ b/html/js/menu_ts.js @@ -1082,6 +1082,11 @@ function openPopUp(dataType, element) { var input = content.createInput("text", dbKey, data[dbKey]); input.setAttribute("placeholder", "{{.filter.filterRule.placeholder}}"); content.appendRow("{{.filter.filterRule.title}}", input); + // Starting Channel Number Mapping + var dbKey = "startingChannel"; + var input = content.createInput("text", dbKey, data[dbKey]); + input.setAttribute("placeholder", "{{.filter.startingChannel.placeholder}}"); + content.appendRow("{{.filter.startingChannel.title}}", input); break; case "group-title": //alert(dbKey + " " + filterType) diff --git a/src/webUI.go b/src/webUI.go index 39bd2e5..8b7d487 100644 --- a/src/webUI.go +++ b/src/webUI.go @@ -29,7 +29,7 @@ func loadHTMLMap() { webUI["html/js/classes_ts.js"] = "dmFyIF9fZXh0ZW5kcyA9ICh0aGlzICYmIHRoaXMuX19leHRlbmRzKSB8fCAoZnVuY3Rpb24gKCkgew0KICAgIHZhciBleHRlbmRTdGF0aWNzID0gZnVuY3Rpb24gKGQsIGIpIHsNCiAgICAgICAgZXh0ZW5kU3RhdGljcyA9IE9iamVjdC5zZXRQcm90b3R5cGVPZiB8fA0KICAgICAgICAgICAgKHsgX19wcm90b19fOiBbXSB9IGluc3RhbmNlb2YgQXJyYXkgJiYgZnVuY3Rpb24gKGQsIGIpIHsgZC5fX3Byb3RvX18gPSBiOyB9KSB8fA0KICAgICAgICAgICAgZnVuY3Rpb24gKGQsIGIpIHsgZm9yICh2YXIgcCBpbiBiKSBpZiAoYi5oYXNPd25Qcm9wZXJ0eShwKSkgZFtwXSA9IGJbcF07IH07DQogICAgICAgIHJldHVybiBleHRlbmRTdGF0aWNzKGQsIGIpOw0KICAgIH07DQogICAgcmV0dXJuIGZ1bmN0aW9uIChkLCBiKSB7DQogICAgICAgIGV4dGVuZFN0YXRpY3MoZCwgYik7DQogICAgICAgIGZ1bmN0aW9uIF9fKCkgeyB0aGlzLmNvbnN0cnVjdG9yID0gZDsgfQ0KICAgICAgICBkLnByb3RvdHlwZSA9IGIgPT09IG51bGwgPyBPYmplY3QuY3JlYXRlKGIpIDogKF9fLnByb3RvdHlwZSA9IGIucHJvdG90eXBlLCBuZXcgX18oKSk7DQogICAgfTsNCn0pKCk7DQp2YXIgTWFpbk1lbnUgPSAvKiogQGNsYXNzICovIChmdW5jdGlvbiAoKSB7DQogICAgZnVuY3Rpb24gTWFpbk1lbnUoKSB7DQogICAgICAgIHRoaXMuRG9jdW1lbnRJRCA9ICJtYWluLW1lbnUiOw0KICAgICAgICB0aGlzLkhUTUxUYWcgPSAiTEkiOw0KICAgIH0NCiAgICBNYWluTWVudS5wcm90b3R5cGUuY3JlYXRlID0gZnVuY3Rpb24gKCkgew0KICAgICAgICBjb25zb2xlLmxvZyh0aGlzLkRvY3VtZW50SUQpOw0KICAgIH07DQogICAgcmV0dXJuIE1haW5NZW51Ow0KfSgpKTsNCnZhciBNYWluTWVudUl0ZW0gPSAvKiogQGNsYXNzICovIChmdW5jdGlvbiAoX3N1cGVyKSB7DQogICAgX19leHRlbmRzKE1haW5NZW51SXRlbSwgX3N1cGVyKTsNCiAgICBmdW5jdGlvbiBNYWluTWVudUl0ZW0oKSB7DQogICAgICAgIHJldHVybiBfc3VwZXIgIT09IG51bGwgJiYgX3N1cGVyLmFwcGx5KHRoaXMsIGFyZ3VtZW50cykgfHwgdGhpczsNCiAgICB9DQogICAgTWFpbk1lbnVJdGVtLnByb3RvdHlwZS5jcmVhdGUyID0gZnVuY3Rpb24gKCkgew0KICAgICAgICB2YXIgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQodGhpcy5IVE1MVGFnKTsNCiAgICAgICAgZWxlbWVudC5pbm5lclRleHQgPSB0aGlzLlZhbHVlOw0KICAgICAgICBjb25zb2xlLmxvZyhlbGVtZW50KTsNCiAgICB9Ow0KICAgIHJldHVybiBNYWluTWVudUl0ZW07DQp9KE1haW5NZW51KSk7DQpmdW5jdGlvbiBwYWdlUmVhZHkoKSB7DQogICAgdmFyIGl0ZW0gPSBuZXcgTWFpbk1lbnVJdGVtKCk7DQogICAgaXRlbS5WYWx1ZSA9ICJUZXN0IjsNCiAgICBpdGVtLmNyZWF0ZTIoKTsNCn0NCg==" webUI["html/js/configuration_ts.js"] = "Y2xhc3MgV2l6YXJkQ2F0ZWdvcnkgew0KICAgIGNvbnN0cnVjdG9yKCkgew0KICAgICAgICB0aGlzLkRvY3VtZW50SUQgPSAiY29udGVudCI7DQogICAgfQ0KICAgIGNyZWF0ZUNhdGVnb3J5SGVhZGxpbmUodmFsdWUpIHsNCiAgICAgICAgdmFyIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJINCIpOw0KICAgICAgICBlbGVtZW50LmlubmVySFRNTCA9IHZhbHVlOw0KICAgICAgICByZXR1cm4gZWxlbWVudDsNCiAgICB9DQp9DQpjbGFzcyBXaXphcmRJdGVtIGV4dGVuZHMgV2l6YXJkQ2F0ZWdvcnkgew0KICAgIGNvbnN0cnVjdG9yKGtleSwgaGVhZGxpbmUpIHsNCiAgICAgICAgc3VwZXIoKTsNCiAgICAgICAgdGhpcy5oZWFkbGluZSA9IGhlYWRsaW5lOw0KICAgICAgICB0aGlzLmtleSA9IGtleTsNCiAgICB9DQogICAgY3JlYXRlV2l6YXJkKCkgew0KICAgICAgICB2YXIgaGVhZGxpbmUgPSB0aGlzLmNyZWF0ZUNhdGVnb3J5SGVhZGxpbmUodGhpcy5oZWFkbGluZSk7DQogICAgICAgIHZhciBrZXkgPSB0aGlzLmtleTsNCiAgICAgICAgdmFyIGNvbnRlbnQgPSBuZXcgUG9wdXBDb250ZW50KCk7DQogICAgICAgIHZhciBkZXNjcmlwdGlvbjsNCiAgICAgICAgdmFyIGRvYyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHRoaXMuRG9jdW1lbnRJRCk7DQogICAgICAgIGRvYy5pbm5lckhUTUwgPSAiIjsNCiAgICAgICAgZG9jLmFwcGVuZENoaWxkKGhlYWRsaW5lKTsNCiAgICAgICAgc3dpdGNoIChrZXkpIHsNCiAgICAgICAgICAgIGNhc2UgInR1bmVyIjoNCiAgICAgICAgICAgICAgICB2YXIgdGV4dCA9IG5ldyBBcnJheSgpOw0KICAgICAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBuZXcgQXJyYXkoKTsNCiAgICAgICAgICAgICAgICBmb3IgKHZhciBpID0gMTsgaSA8PSAxMDA7IGkrKykgew0KICAgICAgICAgICAgICAgICAgICB0ZXh0LnB1c2goaSk7DQogICAgICAgICAgICAgICAgICAgIHZhbHVlcy5wdXNoKGkpOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCAiMSIsIGtleSk7DQogICAgICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgiY2xhc3MiLCAid2l6YXJkIik7DQogICAgICAgICAgICAgICAgc2VsZWN0LmlkID0ga2V5Ow0KICAgICAgICAgICAgICAgIGRvYy5hcHBlbmRDaGlsZChzZWxlY3QpOw0KICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uID0gInt7LndpemFyZC50dW5lci5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImVwZ1NvdXJjZSI6DQogICAgICAgICAgICAgICAgdmFyIHRleHQgPSBbIlBNUyIsICJYRVBHIl07DQogICAgICAgICAgICAgICAgdmFyIHZhbHVlcyA9IFsiUE1TIiwgIlhFUEciXTsNCiAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCAiWEVQRyIsIGtleSk7DQogICAgICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgiY2xhc3MiLCAid2l6YXJkIik7DQogICAgICAgICAgICAgICAgc2VsZWN0LmlkID0ga2V5Ow0KICAgICAgICAgICAgICAgIGRvYy5hcHBlbmRDaGlsZChzZWxlY3QpOw0KICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uID0gInt7LndpemFyZC5lcGdTb3VyY2UuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJtM3UiOg0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBrZXksICIiKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LndpemFyZC5tM3UucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgiY2xhc3MiLCAid2l6YXJkIik7DQogICAgICAgICAgICAgICAgaW5wdXQuaWQgPSBrZXk7DQogICAgICAgICAgICAgICAgZG9jLmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbiA9ICJ7ey53aXphcmQubTN1LmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAieG1sdHYiOg0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBrZXksICIiKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LndpemFyZC54bWx0di5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJjbGFzcyIsICJ3aXphcmQiKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5pZCA9IGtleTsNCiAgICAgICAgICAgICAgICBkb2MuYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uID0gInt7LndpemFyZC54bWx0di5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIH0NCiAgICAgICAgdmFyIHByZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlBSRSIpOw0KICAgICAgICBwcmUuaW5uZXJIVE1MID0gZGVzY3JpcHRpb247DQogICAgICAgIGRvYy5hcHBlbmRDaGlsZChwcmUpOw0KICAgIH0NCn0NCmZ1bmN0aW9uIHJlYWR5Rm9yQ29uZmlndXJhdGlvbih3aXphcmQpIHsNCiAgICB2YXIgc2VydmVyID0gbmV3IFNlcnZlcigiZ2V0U2VydmVyQ29uZmlnIik7DQogICAgc2VydmVyLnJlcXVlc3QobmV3IE9iamVjdCgpKTsNCiAgICBzaG93RWxlbWVudCgibG9hZGluZyIsIGZhbHNlKTsNCiAgICBjb25maWd1cmF0aW9uV2l6YXJkW3dpemFyZF0uY3JlYXRlV2l6YXJkKCk7DQp9DQpmdW5jdGlvbiBzYXZlV2l6YXJkKCkgew0KICAgIHZhciBjbWQgPSAic2F2ZVdpemFyZCI7DQogICAgdmFyIGRpdiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb250ZW50Iik7DQogICAgdmFyIGNvbmZpZyA9IGRpdi5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCJ3aXphcmQiKTsNCiAgICB2YXIgd2l6YXJkID0gbmV3IE9iamVjdCgpOw0KICAgIGZvciAodmFyIGkgPSAwOyBpIDwgY29uZmlnLmxlbmd0aDsgaSsrKSB7DQogICAgICAgIHZhciBuYW1lOw0KICAgICAgICB2YXIgdmFsdWU7DQogICAgICAgIHN3aXRjaCAoY29uZmlnW2ldLnRhZ05hbWUpIHsNCiAgICAgICAgICAgIGNhc2UgIlNFTEVDVCI6DQogICAgICAgICAgICAgICAgbmFtZSA9IGNvbmZpZ1tpXS5uYW1lOw0KICAgICAgICAgICAgICAgIHZhbHVlID0gY29uZmlnW2ldLnZhbHVlOw0KICAgICAgICAgICAgICAgIC8vIElmIHRoZSB2YWx1ZSBpcyBhIG51bWJlciwgc3RvcmUgaXQgYXMgYSBudW1iZXINCiAgICAgICAgICAgICAgICBpZiAoaXNOYU4odmFsdWUpKSB7DQogICAgICAgICAgICAgICAgICAgIHdpemFyZFtuYW1lXSA9IHZhbHVlOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICAgICAgd2l6YXJkW25hbWVdID0gcGFyc2VJbnQodmFsdWUpOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgIklOUFVUIjoNCiAgICAgICAgICAgICAgICBzd2l0Y2ggKGNvbmZpZ1tpXS50eXBlKSB7DQogICAgICAgICAgICAgICAgICAgIGNhc2UgInRleHQiOg0KICAgICAgICAgICAgICAgICAgICAgICAgbmFtZSA9IGNvbmZpZ1tpXS5uYW1lOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSBjb25maWdbaV0udmFsdWU7DQogICAgICAgICAgICAgICAgICAgICAgICBpZiAodmFsdWUubGVuZ3RoID09IDApIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgbXNnID0gbmFtZS50b1VwcGVyQ2FzZSgpICsgIjogIiArICJ7ey5hbGVydC5taXNzaW5nSW5wdXR9fSI7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgYWxlcnQobXNnKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICB3aXphcmRbbmFtZV0gPSB2YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICAgICAgLy8gY29kZS4uLg0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICB9DQogICAgfQ0KICAgIHZhciBkYXRhID0gbmV3IE9iamVjdCgpOw0KICAgIGRhdGFbIndpemFyZCJdID0gd2l6YXJkOw0KICAgIHZhciBzZXJ2ZXIgPSBuZXcgU2VydmVyKGNtZCk7DQogICAgc2VydmVyLnJlcXVlc3QoZGF0YSk7DQp9DQovLyBXaXphcmQNCnZhciBjb25maWd1cmF0aW9uV2l6YXJkID0gbmV3IEFycmF5KCk7DQpjb25maWd1cmF0aW9uV2l6YXJkLnB1c2gobmV3IFdpemFyZEl0ZW0oInR1bmVyIiwgInt7LndpemFyZC50dW5lci50aXRsZX19IikpOw0KY29uZmlndXJhdGlvbldpemFyZC5wdXNoKG5ldyBXaXphcmRJdGVtKCJlcGdTb3VyY2UiLCAie3sud2l6YXJkLmVwZ1NvdXJjZS50aXRsZX19IikpOw0KY29uZmlndXJhdGlvbldpemFyZC5wdXNoKG5ldyBXaXphcmRJdGVtKCJtM3UiLCAie3sud2l6YXJkLm0zdS50aXRsZX19IikpOw0KY29uZmlndXJhdGlvbldpemFyZC5wdXNoKG5ldyBXaXphcmRJdGVtKCJ4bWx0diIsICJ7ey53aXphcmQueG1sdHYudGl0bGV9fSIpKTsNCg==" webUI["html/js/logs_ts.js"] = "Y2xhc3MgTG9nIHsNCiAgICBjcmVhdGVMb2coZW50cnkpIHsNCiAgICAgICAgdmFyIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJQUkUiKTsNCiAgICAgICAgaWYgKGVudHJ5LmluZGV4T2YoIldBUk5JTkciKSAhPSAtMSkgew0KICAgICAgICAgICAgZWxlbWVudC5jbGFzc05hbWUgPSAid2FybmluZ01zZyI7DQogICAgICAgIH0NCiAgICAgICAgaWYgKGVudHJ5LmluZGV4T2YoIkVSUk9SIikgIT0gLTEpIHsNCiAgICAgICAgICAgIGVsZW1lbnQuY2xhc3NOYW1lID0gImVycm9yTXNnIjsNCiAgICAgICAgfQ0KICAgICAgICBpZiAoZW50cnkuaW5kZXhPZigiREVCVUciKSAhPSAtMSkgew0KICAgICAgICAgICAgZWxlbWVudC5jbGFzc05hbWUgPSAiZGVidWdNc2ciOw0KICAgICAgICB9DQogICAgICAgIGVsZW1lbnQuaW5uZXJIVE1MID0gZW50cnk7DQogICAgICAgIHJldHVybiBlbGVtZW50Ow0KICAgIH0NCn0NCmZ1bmN0aW9uIHNob3dMb2dzKGJvdHRvbSkgew0KICAgIHZhciBsb2cgPSBuZXcgTG9nKCk7DQogICAgdmFyIGxvZ3MgPSBTRVJWRVJbImxvZyJdWyJsb2ciXTsNCiAgICB2YXIgZGl2ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnRlbnRfbG9nIik7DQogICAgZGl2LmlubmVySFRNTCA9ICIiOw0KICAgIHZhciBrZXlzID0gZ2V0T3duT2JqUHJvcHMobG9ncyk7DQogICAga2V5cy5mb3JFYWNoKGxvZ0lEID0+IHsNCiAgICAgICAgdmFyIGVudHJ5ID0gbG9nLmNyZWF0ZUxvZyhsb2dzW2xvZ0lEXSk7DQogICAgICAgIGRpdi5hcHBlbmQoZW50cnkpOw0KICAgIH0pOw0KICAgIHNldFRpbWVvdXQoZnVuY3Rpb24gKCkgew0KICAgICAgICBpZiAoYm90dG9tID09IHRydWUpIHsNCiAgICAgICAgICAgIHZhciB3cmFwcGVyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImJveC13cmFwcGVyIik7DQogICAgICAgICAgICB3cmFwcGVyLnNjcm9sbFRvcCA9IHdyYXBwZXIuc2Nyb2xsSGVpZ2h0Ow0KICAgICAgICB9DQogICAgfSwgMTApOw0KfQ0KZnVuY3Rpb24gcmVzZXRMb2dzKCkgew0KICAgIHZhciBjbWQgPSAicmVzZXRMb2dzIjsNCiAgICB2YXIgZGF0YSA9IG5ldyBPYmplY3QoKTsNCiAgICB2YXIgc2VydmVyID0gbmV3IFNlcnZlcihjbWQpOw0KICAgIHNlcnZlci5yZXF1ZXN0KGRhdGEpOw0KfQ0K" - webUI["html/js/menu_ts.js"] = "Y2xhc3MgTWFpbk1lbnUgew0KICAgIGNvbnN0cnVjdG9yKCkgew0KICAgICAgICB0aGlzLkRvY3VtZW50SUQgPSAibWFpbi1tZW51IjsNCiAgICAgICAgdGhpcy5IVE1MVGFnID0gIkxJIjsNCiAgICAgICAgdGhpcy5JbWFnZVBhdGggPSAiaW1nLyI7DQogICAgfQ0KICAgIGNyZWF0ZUlNRyhzcmMpIHsNCiAgICAgICAgbGV0IGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJJTUciKTsNCiAgICAgICAgZWxlbWVudC5zZXRBdHRyaWJ1dGUoInNyYyIsIHRoaXMuSW1hZ2VQYXRoICsgc3JjKTsNCiAgICAgICAgcmV0dXJuIGVsZW1lbnQ7DQogICAgfQ0KICAgIGNyZWF0ZVZhbHVlKHZhbHVlKSB7DQogICAgICAgIGxldCBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiUCIpOw0KICAgICAgICBlbGVtZW50LmlubmVySFRNTCA9IHZhbHVlOw0KICAgICAgICByZXR1cm4gZWxlbWVudDsNCiAgICB9DQp9DQpjbGFzcyBNYWluTWVudUl0ZW0gZXh0ZW5kcyBNYWluTWVudSB7DQogICAgY29uc3RydWN0b3IobWVudUtleSwgdmFsdWUsIGltYWdlLCBoZWFkbGluZSkgew0KICAgICAgICBzdXBlcigpOw0KICAgICAgICB0aGlzLm1lbnVLZXkgPSBtZW51S2V5Ow0KICAgICAgICB0aGlzLnZhbHVlID0gdmFsdWU7DQogICAgICAgIHRoaXMuaW1nU3JjID0gaW1hZ2U7DQogICAgICAgIHRoaXMuaGVhZGxpbmUgPSBoZWFkbGluZTsNCiAgICB9DQogICAgY3JlYXRlSXRlbSgpIHsNCiAgICAgICAgbGV0IGl0ZW0gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJMSSIpOw0KICAgICAgICBpdGVtLnNldEF0dHJpYnV0ZSgib25jbGljayIsICJqYXZhc2NyaXB0OiBvcGVuVGhpc01lbnUodGhpcykiKTsNCiAgICAgICAgaXRlbS5zZXRBdHRyaWJ1dGUoImlkIiwgdGhpcy5pZCk7DQogICAgICAgIGxldCBpbWcgPSB0aGlzLmNyZWF0ZUlNRyh0aGlzLmltZ1NyYyk7DQogICAgICAgIGxldCB2YWx1ZSA9IHRoaXMuY3JlYXRlVmFsdWUodGhpcy52YWx1ZSk7DQogICAgICAgIGl0ZW0uYXBwZW5kQ2hpbGQoaW1nKTsNCiAgICAgICAgaXRlbS5hcHBlbmRDaGlsZCh2YWx1ZSk7DQogICAgICAgIGxldCBkb2MgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCh0aGlzLkRvY3VtZW50SUQpOw0KICAgICAgICBkb2MuYXBwZW5kQ2hpbGQoaXRlbSk7DQogICAgICAgIHN3aXRjaCAodGhpcy5tZW51S2V5KSB7DQogICAgICAgICAgICBjYXNlICJwbGF5bGlzdCI6DQogICAgICAgICAgICAgICAgdGhpcy50YWJsZUhlYWRlciA9IFsie3sucGxheWxpc3QudGFibGUucGxheWxpc3R9fSIsICJ7ey5wbGF5bGlzdC50YWJsZS50dW5lcn19IiwgInt7LnBsYXlsaXN0LnRhYmxlLmxhc3RVcGRhdGV9fSIsICJ7ey5wbGF5bGlzdC50YWJsZS5hdmFpbGFiaWxpdHl9fSAlIiwgInt7LnBsYXlsaXN0LnRhYmxlLnR5cGV9fSIsICJ7ey5wbGF5bGlzdC50YWJsZS5zdHJlYW1zfX0iLCAie3sucGxheWxpc3QudGFibGUuZ3JvdXBUaXRsZX19ICUiLCAie3sucGxheWxpc3QudGFibGUudHZnSUR9fSAlIiwgInt7LnBsYXlsaXN0LnRhYmxlLnVuaXF1ZUlEfX0gJSJdOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAieG1sdHYiOg0KICAgICAgICAgICAgICAgIHRoaXMudGFibGVIZWFkZXIgPSBbInt7LnhtbHR2LnRhYmxlLmd1aWRlfX0iLCAie3sueG1sdHYudGFibGUubGFzdFVwZGF0ZX19IiwgInt7LnhtbHR2LnRhYmxlLmF2YWlsYWJpbGl0eX19ICUiLCAie3sueG1sdHYudGFibGUuY2hhbm5lbHN9fSIsICJ7ey54bWx0di50YWJsZS5wcm9ncmFtc319Il07DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJmaWx0ZXIiOg0KICAgICAgICAgICAgICAgIHRoaXMudGFibGVIZWFkZXIgPSBbInt7LmZpbHRlci50YWJsZS5zdGFydGluZ0NoYW5uZWx9fSIsICJ7ey5maWx0ZXIudGFibGUubmFtZX19IiwgInt7LmZpbHRlci50YWJsZS50eXBlfX0iLCAie3suZmlsdGVyLnRhYmxlLmZpbHRlcn19Il07DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ1c2VycyI6DQogICAgICAgICAgICAgICAgdGhpcy50YWJsZUhlYWRlciA9IFsie3sudXNlcnMudGFibGUudXNlcm5hbWV9fSIsICJ7ey51c2Vycy50YWJsZS5wYXNzd29yZH19IiwgInt7LnVzZXJzLnRhYmxlLndlYn19IiwgInt7LnVzZXJzLnRhYmxlLnBtc319IiwgInt7LnVzZXJzLnRhYmxlLm0zdX19IiwgInt7LnVzZXJzLnRhYmxlLnhtbH19IiwgInt7LnVzZXJzLnRhYmxlLmFwaX19Il07DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJtYXBwaW5nIjoNCiAgICAgICAgICAgICAgICB0aGlzLnRhYmxlSGVhZGVyID0gWyJCVUxLIiwgInt7Lm1hcHBpbmcudGFibGUuY2hOb319IiwgInt7Lm1hcHBpbmcudGFibGUubG9nb319IiwgInt7Lm1hcHBpbmcudGFibGUuY2hhbm5lbE5hbWV9fSIsICJ7ey5tYXBwaW5nLnRhYmxlLnBsYXlsaXN0fX0iLCAie3subWFwcGluZy50YWJsZS5ncm91cFRpdGxlfX0iLCAie3subWFwcGluZy50YWJsZS54bWx0dkZpbGV9fSIsICJ7ey5tYXBwaW5nLnRhYmxlLnhtbHR2SUR9fSIsICJ7ey5tYXBwaW5nLnRhYmxlLnRpbWVzaGlmdH19Il07DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIH0NCiAgICB9DQp9DQpjbGFzcyBDb250ZW50IHsNCiAgICBjb25zdHJ1Y3RvcigpIHsNCiAgICAgICAgdGhpcy5Eb2N1bWVudElEID0gImNvbnRlbnQiOw0KICAgICAgICB0aGlzLlRhYmxlSUQgPSAiY29udGVudF90YWJsZSI7DQogICAgICAgIHRoaXMuaGVhZGVyQ2xhc3MgPSAiY29udGVudF90YWJsZV9oZWFkZXIiOw0KICAgICAgICB0aGlzLmludGVyYWN0aW9uSUQgPSAiY29udGVudC1pbnRlcmFjdGlvbiI7DQogICAgfQ0KICAgIGNyZWF0ZUhlYWRsaW5lKHZhbHVlKSB7DQogICAgICAgIGxldCBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiSDMiKTsNCiAgICAgICAgZWxlbWVudC5pbm5lckhUTUwgPSB2YWx1ZTsNCiAgICAgICAgcmV0dXJuIGVsZW1lbnQ7DQogICAgfQ0KICAgIGNyZWF0ZUhSKCkgew0KICAgICAgICByZXR1cm4gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiSFIiKTsNCiAgICB9DQogICAgY3JlYXRlSW50ZXJhY3Rpb24oKSB7DQogICAgICAgIGxldCBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiRElWIik7DQogICAgICAgIGVsZW1lbnQuc2V0QXR0cmlidXRlKCJpZCIsIHRoaXMuaW50ZXJhY3Rpb25JRCk7DQogICAgICAgIHJldHVybiBlbGVtZW50Ow0KICAgIH0NCiAgICBjcmVhdGVESVYoKSB7DQogICAgICAgIGxldCBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiRElWIik7DQogICAgICAgIGVsZW1lbnQuaWQgPSB0aGlzLkRpdklEOw0KICAgICAgICByZXR1cm4gZWxlbWVudDsNCiAgICB9DQogICAgY3JlYXRlVEFCTEUoKSB7DQogICAgICAgIGxldCBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEFCTEUiKTsNCiAgICAgICAgZWxlbWVudC5pZCA9IHRoaXMuVGFibGVJRDsNCiAgICAgICAgcmV0dXJuIGVsZW1lbnQ7DQogICAgfQ0KICAgIGNyZWF0ZVRhYmxlUm93KCkgew0KICAgICAgICBsZXQgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlRSIik7DQogICAgICAgIGVsZW1lbnQuY2xhc3NOYW1lID0gdGhpcy5oZWFkZXJDbGFzczsNCiAgICAgICAgcmV0dXJuIGVsZW1lbnQ7DQogICAgfQ0KICAgIGNyZWF0ZVRhYmxlQ29udGVudChtZW51S2V5KSB7DQogICAgICAgIGxldCBkYXRhID0ge307DQogICAgICAgIGxldCByb3dzID0gW107DQogICAgICAgIGxldCBmaWxlVHlwZXMgPSBbXTsNCiAgICAgICAgc3dpdGNoIChtZW51S2V5KSB7DQogICAgICAgICAgICBjYXNlICJwbGF5bGlzdCI6DQogICAgICAgICAgICAgICAgZmlsZVR5cGVzID0gWyJtM3UiLCAiaGRociJdOw0KICAgICAgICAgICAgICAgIGZpbGVUeXBlcy5mb3JFYWNoKGZpbGVUeXBlID0+IHsNCiAgICAgICAgICAgICAgICAgICAgZGF0YSA9IFNFUlZFUlsic2V0dGluZ3MiXVsiZmlsZXMiXVtmaWxlVHlwZV07DQogICAgICAgICAgICAgICAgICAgIHZhciBrZXlzID0gZ2V0T3duT2JqUHJvcHMoZGF0YSk7DQogICAgICAgICAgICAgICAgICAgIGtleXMuZm9yRWFjaChrZXkgPT4gew0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVFIiKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmlkID0ga2V5Ow0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgiJyArIGZpbGVUeXBlICsgJyIsIHRoaXMpJyk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsibmFtZSJdOw0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChTRVJWRVJbInNldHRpbmdzIl1bImJ1ZmZlciJdICE9ICItIikgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bInR1bmVyIl07DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gIi0iOw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bImxhc3QudXBkYXRlIl07DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsicHJvdmlkZXIuYXZhaWxhYmlsaXR5Il07DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsidHlwZSJdLnRvVXBwZXJDYXNlKCk7DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsiY29tcGF0aWJpbGl0eSJdWyJzdHJlYW1zIl07DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsiY29tcGF0aWJpbGl0eSJdWyJncm91cC50aXRsZSJdOw0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bImNvbXBhdGliaWxpdHkiXVsidHZnLmlkIl07DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsiY29tcGF0aWJpbGl0eSJdWyJzdHJlYW0uaWQiXTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHJvd3MucHVzaCh0cik7DQogICAgICAgICAgICAgICAgICAgIH0pOw0KICAgICAgICAgICAgICAgIH0pOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiZmlsdGVyIjoNCiAgICAgICAgICAgICAgICBkZWxldGUgU0VSVkVSWyJzZXR0aW5ncyJdWyJmaWx0ZXIiXVstMV07DQogICAgICAgICAgICAgICAgZGF0YSA9IFNFUlZFUlsic2V0dGluZ3MiXVsiZmlsdGVyIl07DQogICAgICAgICAgICAgICAgdmFyIGtleXMgPSBnZXRPd25PYmpQcm9wcyhkYXRhKTsNCiAgICAgICAgICAgICAgICBrZXlzLmZvckVhY2goa2V5ID0+IHsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVFIiKTsNCiAgICAgICAgICAgICAgICAgICAgdHIuaWQgPSBrZXk7DQogICAgICAgICAgICAgICAgICAgIHRyLnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoIicgKyBkYXRhW2tleV1bInR5cGUiXSArICciLCB0aGlzKScpOw0KICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsic3RhcnRpbmdDaGFubmVsIl07DQogICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bIm5hbWUiXTsNCiAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgc3dpdGNoIChkYXRhW2tleV1bInR5cGUiXSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAiY3VzdG9tLWZpbHRlciI6DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9ICJ7ey5maWx0ZXIuY3VzdG9tfX0iOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAiZ3JvdXAtdGl0bGUiOg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSAie3suZmlsdGVyLmdyb3VwfX0iOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJmaWx0ZXIiXTsNCiAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICByb3dzLnB1c2godHIpOw0KICAgICAgICAgICAgICAgIH0pOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAieG1sdHYiOg0KICAgICAgICAgICAgICAgIGZpbGVUeXBlcyA9IG5ldyBBcnJheSgieG1sdHYiKTsNCiAgICAgICAgICAgICAgICBmaWxlVHlwZXMuZm9yRWFjaChmaWxlVHlwZSA9PiB7DQogICAgICAgICAgICAgICAgICAgIGRhdGEgPSBTRVJWRVJbInNldHRpbmdzIl1bImZpbGVzIl1bZmlsZVR5cGVdOw0KICAgICAgICAgICAgICAgICAgICB2YXIga2V5cyA9IGdldE93bk9ialByb3BzKGRhdGEpOw0KICAgICAgICAgICAgICAgICAgICBrZXlzLmZvckVhY2goa2V5ID0+IHsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciB0ciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlRSIik7DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5pZCA9IGtleTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoIicgKyBmaWxlVHlwZSArICciLCB0aGlzKScpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bIm5hbWUiXTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJsYXN0LnVwZGF0ZSJdOw0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bInByb3ZpZGVyLmF2YWlsYWJpbGl0eSJdOw0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bImNvbXBhdGliaWxpdHkiXVsieG1sdHYuY2hhbm5lbHMiXTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJjb21wYXRpYmlsaXR5Il1bInhtbHR2LnByb2dyYW1zIl07DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICByb3dzLnB1c2godHIpOw0KICAgICAgICAgICAgICAgICAgICB9KTsNCiAgICAgICAgICAgICAgICB9KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInVzZXJzIjoNCiAgICAgICAgICAgICAgICBmaWxlVHlwZXMgPSBuZXcgQXJyYXkoInVzZXJzIik7DQogICAgICAgICAgICAgICAgZmlsZVR5cGVzLmZvckVhY2goZmlsZVR5cGUgPT4gew0KICAgICAgICAgICAgICAgICAgICBkYXRhID0gU0VSVkVSW2ZpbGVUeXBlXTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGtleXMgPSBnZXRPd25PYmpQcm9wcyhkYXRhKTsNCiAgICAgICAgICAgICAgICAgICAga2V5cy5mb3JFYWNoKGtleSA9PiB7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgdHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJUUiIpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuaWQgPSBrZXk7DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCInICsgZmlsZVR5cGUgKyAnIiwgdGhpcyknKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJkYXRhIl1bInVzZXJuYW1lIl07DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9ICIqKioqKioiOw0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChkYXRhW2tleV1bImRhdGEiXVsiYXV0aGVudGljYXRpb24ud2ViIl0gPT0gdHJ1ZSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSAi4pyTIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSAiLSI7DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGRhdGFba2V5XVsiZGF0YSJdWyJhdXRoZW50aWNhdGlvbi5wbXMiXSA9PSB0cnVlKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9ICLinJMiOw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9ICItIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgICAgICBpZiAoZGF0YVtrZXldWyJkYXRhIl1bImF1dGhlbnRpY2F0aW9uLm0zdSJdID09IHRydWUpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gIuKckyI7DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gIi0iOw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChkYXRhW2tleV1bImRhdGEiXVsiYXV0aGVudGljYXRpb24ueG1sIl0gPT0gdHJ1ZSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSAi4pyTIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSAiLSI7DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGRhdGFba2V5XVsiZGF0YSJdWyJhdXRoZW50aWNhdGlvbi5hcGkiXSA9PSB0cnVlKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9ICLinJMiOw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9ICItIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHJvd3MucHVzaCh0cik7DQogICAgICAgICAgICAgICAgICAgIH0pOw0KICAgICAgICAgICAgICAgIH0pOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAibWFwcGluZyI6DQogICAgICAgICAgICAgICAgQlVMS19FRElUID0gZmFsc2U7DQogICAgICAgICAgICAgICAgY3JlYXRlU2VhcmNoT2JqKCk7DQogICAgICAgICAgICAgICAgY2hlY2tVbmRvKCJlcGdNYXBwaW5nIik7DQogICAgICAgICAgICAgICAgZGF0YSA9IFNFUlZFUlsieGVwZyJdWyJlcGdNYXBwaW5nIl07DQogICAgICAgICAgICAgICAgdmFyIGtleXMgPSBnZXRPd25PYmpQcm9wcyhkYXRhKTsNCiAgICAgICAgICAgICAgICBrZXlzLmZvckVhY2goa2V5ID0+IHsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVFIiKTsNCiAgICAgICAgICAgICAgICAgICAgdHIuaWQgPSBrZXk7DQogICAgICAgICAgICAgICAgICAgIHN3aXRjaCAoZGF0YVtrZXldWyJ4LWFjdGl2ZSJdKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBjYXNlIHRydWU6DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgdHIuY2xhc3NOYW1lID0gImFjdGl2ZUVQRyI7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgICAgICAgICBjYXNlIGZhbHNlOg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyLmNsYXNzTmFtZSA9ICJub3RBY3RpdmVFUEciOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIC8vIEJ1bGsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiQlVMSyI7DQogICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBmYWxzZTsNCiAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAvLyBDaGFubmVsIG51bWJlcg0KICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJJTlBVVENIQU5ORUwiOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJ4LWNoYW5uZWxJRCJdOw0KICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgIC8vIExvZ28NCiAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiSU1HIjsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5pbWFnZVVSTCA9IGRhdGFba2V5XVsidHZnLWxvZ28iXTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHRkID0gY2VsbC5jcmVhdGVDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgIHRkLnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoIm1hcHBpbmciLCB0aGlzKScpOw0KICAgICAgICAgICAgICAgICAgICB0ZC5pZCA9IGtleTsNCiAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQodGQpOw0KICAgICAgICAgICAgICAgICAgICAvLyBDaGFubmVsIG5hbWUNCiAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2xhc3NOYW1lID0gZGF0YVtrZXldWyJ4LWNhdGVnb3J5Il07DQogICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bIngtbmFtZSJdOw0KICAgICAgICAgICAgICAgICAgICB2YXIgdGQgPSBjZWxsLmNyZWF0ZUNlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgdGQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgibWFwcGluZyIsIHRoaXMpJyk7DQogICAgICAgICAgICAgICAgICAgIHRkLmlkID0ga2V5Ow0KICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZCh0ZCk7DQogICAgICAgICAgICAgICAgICAgIC8vIFBsYXlsaXN0DQogICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZ2V0VmFsdWVGcm9tUHJvdmlkZXJGaWxlKGRhdGFba2V5XVsiX2ZpbGUubTN1LmlkIl0sICJtM3UiLCAibmFtZSIpOw0KICAgICAgICAgICAgICAgICAgICB2YXIgdGQgPSBjZWxsLmNyZWF0ZUNlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgdGQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgibWFwcGluZyIsIHRoaXMpJyk7DQogICAgICAgICAgICAgICAgICAgIHRkLmlkID0ga2V5Ow0KICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZCh0ZCk7DQogICAgICAgICAgICAgICAgICAgIC8vIEdyb3VwIChncm91cC10aXRsZSkNCiAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bIngtZ3JvdXAtdGl0bGUiXTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHRkID0gY2VsbC5jcmVhdGVDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgIHRkLnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoIm1hcHBpbmciLCB0aGlzKScpOw0KICAgICAgICAgICAgICAgICAgICB0ZC5pZCA9IGtleTsNCiAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQodGQpOw0KICAgICAgICAgICAgICAgICAgICAvLyBYTUxUViBmaWxlDQogICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICBpZiAoZGF0YVtrZXldWyJ4LXhtbHR2LWZpbGUiXSAhPSAiLSIpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBnZXRWYWx1ZUZyb21Qcm92aWRlckZpbGUoZGF0YVtrZXldWyJ4LXhtbHR2LWZpbGUiXSwgInhtbHR2IiwgIm5hbWUiKTsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bIngteG1sdHYtZmlsZSJdOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIHZhciB0ZCA9IGNlbGwuY3JlYXRlQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICB0ZC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJtYXBwaW5nIiwgdGhpcyknKTsNCiAgICAgICAgICAgICAgICAgICAgdGQuaWQgPSBrZXk7DQogICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKHRkKTsNCiAgICAgICAgICAgICAgICAgICAgLy8gWE1MVFYgQ2hhbm5lbA0KICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHZhbHVlID0gZGF0YVtrZXldWyJ4LW1hcHBpbmciXTsNCiAgICAgICAgICAgICAgICAgICAgaWYgKHZhbHVlLmxlbmd0aCA+IDIwKSB7DQogICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IGRhdGFba2V5XVsieC1tYXBwaW5nIl0uc3Vic3RyaW5nKDAsIDIwKSArICIuLi4iOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSB2YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHRkID0gY2VsbC5jcmVhdGVDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgIHRkLnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoIm1hcHBpbmciLCB0aGlzKScpOw0KICAgICAgICAgICAgICAgICAgICB0ZC5pZCA9IGtleTsNCiAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQodGQpOw0KICAgICAgICAgICAgICAgICAgICAvLyBUaW1lU2hpZnQNCiAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bIngtdGltZXNoaWZ0Il07DQogICAgICAgICAgICAgICAgICAgIHZhciB0ZCA9IGNlbGwuY3JlYXRlQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICB0ZC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJtYXBwaW5nIiwgdGhpcyknKTsNCiAgICAgICAgICAgICAgICAgICAgdGQuaWQgPSBrZXk7DQogICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKHRkKTsNCiAgICAgICAgICAgICAgICAgICAgcm93cy5wdXNoKHRyKTsNCiAgICAgICAgICAgICAgICB9KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInNldHRpbmdzIjoNCiAgICAgICAgICAgICAgICBhbGVydCgpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgfQ0KICAgICAgICByZXR1cm4gcm93czsNCiAgICB9DQp9DQpjbGFzcyBDZWxsIHsNCiAgICBjcmVhdGVDZWxsKCkgew0KICAgICAgICBsZXQgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICBpZiAodGhpcy5jaGlsZCA9PSB0cnVlKSB7DQogICAgICAgICAgICB2YXIgZWxlbWVudDsNCiAgICAgICAgICAgIHN3aXRjaCAodGhpcy5jaGlsZFR5cGUpIHsNCiAgICAgICAgICAgICAgICBjYXNlICJQIjoNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQodGhpcy5jaGlsZFR5cGUpOw0KICAgICAgICAgICAgICAgICAgICBlbGVtZW50LmlubmVySFRNTCA9IHRoaXMudmFsdWU7DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQuY2xhc3NOYW1lID0gdGhpcy5jbGFzc05hbWU7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgIklOUFVUIjoNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQodGhpcy5jaGlsZFR5cGUpOw0KICAgICAgICAgICAgICAgICAgICBlbGVtZW50LnZhbHVlID0gdGhpcy52YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC50eXBlID0gInRleHQiOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBjYXNlICJJTlBVVENIQU5ORUwiOg0KICAgICAgICAgICAgICAgICAgICBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiSU5QVVQiKTsNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdnNjcmlwdDogY2hhbmdlQ2hhbm5lbE51bWJlcih0aGlzKSIpOw0KICAgICAgICAgICAgICAgICAgICBlbGVtZW50LnZhbHVlID0gdGhpcy52YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC50eXBlID0gInRleHQiOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBjYXNlICJCVUxLIjoNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIklOUFVUIik7DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQuY2hlY2tlZCA9IHRoaXMudmFsdWU7DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQudHlwZSA9ICJjaGVja2JveCI7DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQuY2xhc3NOYW1lID0gImJ1bGsgaGlkZUJ1bGsiOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBjYXNlICJCVUxLX0hFQUQiOg0KICAgICAgICAgICAgICAgICAgICBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiSU5QVVQiKTsNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC5jaGVja2VkID0gdGhpcy52YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC50eXBlID0gImNoZWNrYm94IjsNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC5jbGFzc05hbWUgPSAiYnVsayBoaWRlQnVsayI7DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgImphdmFzY3JpcHQ6IHNlbGVjdEFsbENoYW5uZWxzKCkiKTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAiSU1HIjoNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQodGhpcy5jaGlsZFR5cGUpOw0KICAgICAgICAgICAgICAgICAgICBlbGVtZW50LnNldEF0dHJpYnV0ZSgic3JjIiwgdGhpcy5pbWFnZVVSTCk7DQogICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLmltYWdlVVJMICE9ICIiKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBlbGVtZW50LnNldEF0dHJpYnV0ZSgib25lcnJvciIsICJqYXZhc2NyaXB0OiB0aGlzLm9uZXJyb3I9bnVsbDt0aGlzLnNyYz0nJyIpOw0KICAgICAgICAgICAgICAgICAgICAgICAgLy9vbmVycm9yPSJ0aGlzLm9uZXJyb3I9bnVsbDt0aGlzLnNyYz0nbWlzc2luZy5naWYnOyINCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgdGQuYXBwZW5kQ2hpbGQoZWxlbWVudCk7DQogICAgICAgIH0NCiAgICAgICAgZWxzZSB7DQogICAgICAgICAgICB0ZC5pbm5lckhUTUwgPSB0aGlzLnZhbHVlOw0KICAgICAgICB9DQogICAgICAgIGlmICh0aGlzLm9uY2xpY2sgPT0gdHJ1ZSkgew0KICAgICAgICAgICAgdGQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgdGhpcy5vbmNsaWNrRnVuY3Rpb24pOw0KICAgICAgICAgICAgdGQuY2xhc3NOYW1lID0gInBvaW50ZXIiOw0KICAgICAgICB9DQogICAgICAgIGlmICh0aGlzLnRkQ2xhc3NOYW1lICE9IHVuZGVmaW5lZCkgew0KICAgICAgICAgICAgdGQuY2xhc3NOYW1lID0gdGhpcy50ZENsYXNzTmFtZTsNCiAgICAgICAgfQ0KICAgICAgICByZXR1cm4gdGQ7DQogICAgfQ0KfQ0KY2xhc3MgU2hvd0NvbnRlbnQgZXh0ZW5kcyBDb250ZW50IHsNCiAgICBjb25zdHJ1Y3RvcihtZW51SUQpIHsNCiAgICAgICAgc3VwZXIoKTsNCiAgICAgICAgdGhpcy5tZW51SUQgPSBtZW51SUQ7DQogICAgfQ0KICAgIGNyZWF0ZUlucHV0KHR5cGUsIG5hbWUsIHZhbHVlKSB7DQogICAgICAgIGxldCBpbnB1dCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIklOUFVUIik7DQogICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgidHlwZSIsIHR5cGUpOw0KICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm5hbWUiLCBuYW1lKTsNCiAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJ2YWx1ZSIsIHZhbHVlKTsNCiAgICAgICAgcmV0dXJuIGlucHV0Ow0KICAgIH0NCiAgICBzaG93KCkgew0KICAgICAgICBDT0xVTU5fVE9fU09SVCA9IC0xOw0KICAgICAgICAvLyBEZWxldGUgb2xkIGNvbnRlbnQNCiAgICAgICAgbGV0IGRvYyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHRoaXMuRG9jdW1lbnRJRCk7DQogICAgICAgIGRvYy5pbm5lckhUTUwgPSAiIjsNCiAgICAgICAgc2hvd1ByZXZpZXcoZmFsc2UpOw0KICAgICAgICAvLyBIZWFkbGluZQ0KICAgICAgICBsZXQgaGVhZGxpbmUgPSBtZW51SXRlbXNbdGhpcy5tZW51SURdLmhlYWRsaW5lOw0KICAgICAgICBsZXQgbWVudUtleSA9IG1lbnVJdGVtc1t0aGlzLm1lbnVJRF0ubWVudUtleTsNCiAgICAgICAgbGV0IGggPSB0aGlzLmNyZWF0ZUhlYWRsaW5lKGhlYWRsaW5lKTsNCiAgICAgICAgZG9jLmFwcGVuZENoaWxkKGgpOw0KICAgICAgICBsZXQgaHIgPSB0aGlzLmNyZWF0ZUhSKCk7DQogICAgICAgIGRvYy5hcHBlbmRDaGlsZChocik7DQogICAgICAgIC8vIEludGVyYWN0aW9uDQogICAgICAgIGxldCBkaXYgPSB0aGlzLmNyZWF0ZUludGVyYWN0aW9uKCk7DQogICAgICAgIGRvYy5hcHBlbmRDaGlsZChkaXYpOw0KICAgICAgICBsZXQgaW50ZXJhY3Rpb24gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCh0aGlzLmludGVyYWN0aW9uSUQpOw0KICAgICAgICBzd2l0Y2ggKG1lbnVLZXkpIHsNCiAgICAgICAgICAgIGNhc2UgInBsYXlsaXN0IjoNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSB0aGlzLmNyZWF0ZUlucHV0KCJidXR0b24iLCBtZW51S2V5LCAie3suYnV0dG9uLm5ld319Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJpZCIsICItIik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgicGxheWxpc3QiKScpOw0KICAgICAgICAgICAgICAgIGludGVyYWN0aW9uLmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImZpbHRlciI6DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gdGhpcy5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgbWVudUtleSwgInt7LmJ1dHRvbi5uZXd9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgiaWQiLCAtMSk7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgiZmlsdGVyIiwgdGhpcyknKTsNCiAgICAgICAgICAgICAgICBpbnRlcmFjdGlvbi5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ4bWx0diI6DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gdGhpcy5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgbWVudUtleSwgInt7LmJ1dHRvbi5uZXd9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgiaWQiLCAieG1sdHYiKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJ4bWx0diIpJyk7DQogICAgICAgICAgICAgICAgaW50ZXJhY3Rpb24uYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAidXNlcnMiOg0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IHRoaXMuY3JlYXRlSW5wdXQoImJ1dHRvbiIsIG1lbnVLZXksICJ7ey5idXR0b24ubmV3fX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoImlkIiwgInVzZXJzIik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgidXNlcnMiKScpOw0KICAgICAgICAgICAgICAgIGludGVyYWN0aW9uLmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgIm1hcHBpbmciOg0KICAgICAgICAgICAgICAgIHNob3dFbGVtZW50KCJsb2FkaW5nIiwgdHJ1ZSk7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gdGhpcy5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgbWVudUtleSwgInt7LmJ1dHRvbi5zYXZlfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogc2F2ZVBvcHVwRGF0YSgibWFwcGluZyIsICIiLCAiIiknKTsNCiAgICAgICAgICAgICAgICBpbnRlcmFjdGlvbi5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gdGhpcy5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgbWVudUtleSwgInt7LmJ1dHRvbi5idWxrRWRpdH19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IGJ1bGtFZGl0KCknKTsNCiAgICAgICAgICAgICAgICBpbnRlcmFjdGlvbi5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gdGhpcy5jcmVhdGVJbnB1dCgic2VhcmNoIiwgInNlYXJjaCIsICIiKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoImlkIiwgInNlYXJjaE1hcHBpbmciKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LmJ1dHRvbi5zZWFyY2h9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LmNsYXNzTmFtZSA9ICJzZWFyY2giOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAnamF2YXNjcmlwdDogc2VhcmNoSW5NYXBwaW5nKCknKTsNCiAgICAgICAgICAgICAgICBpbnRlcmFjdGlvbi5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJzZXR0aW5ncyI6DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gdGhpcy5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgbWVudUtleSwgInt7LmJ1dHRvbi5zYXZlfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogc2F2ZVNldHRpbmdzKCk7Jyk7DQogICAgICAgICAgICAgICAgaW50ZXJhY3Rpb24uYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IHRoaXMuY3JlYXRlSW5wdXQoImJ1dHRvbiIsIG1lbnVLZXksICJ7ey5idXR0b24uYmFja3VwfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogYmFja3VwKCk7Jyk7DQogICAgICAgICAgICAgICAgaW50ZXJhY3Rpb24uYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IHRoaXMuY3JlYXRlSW5wdXQoImJ1dHRvbiIsIG1lbnVLZXksICJ7ey5idXR0b24ucmVzdG9yZX19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IHJlc3RvcmUoKTsnKTsNCiAgICAgICAgICAgICAgICBpbnRlcmFjdGlvbi5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgdmFyIHdyYXBwZXIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJESVYiKTsNCiAgICAgICAgICAgICAgICB3cmFwcGVyLnNldEF0dHJpYnV0ZSgiaWQiLCAiYm94LXdyYXBwZXIiKTsNCiAgICAgICAgICAgICAgICBkb2MuYXBwZW5kQ2hpbGQod3JhcHBlcik7DQogICAgICAgICAgICAgICAgdGhpcy5EaXZJRCA9ICJjb250ZW50X3NldHRpbmdzIjsNCiAgICAgICAgICAgICAgICB2YXIgc2V0dGluZ3MgPSB0aGlzLmNyZWF0ZURJVigpOw0KICAgICAgICAgICAgICAgIHdyYXBwZXIuYXBwZW5kQ2hpbGQoc2V0dGluZ3MpOw0KICAgICAgICAgICAgICAgIHNob3dTZXR0aW5ncygpOw0KICAgICAgICAgICAgICAgIHJldHVybjsNCiAgICAgICAgICAgIGNhc2UgImxvZyI6DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gdGhpcy5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgbWVudUtleSwgInt7LmJ1dHRvbi5yZXNldExvZ3N9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiByZXNldExvZ3MoKTsnKTsNCiAgICAgICAgICAgICAgICBpbnRlcmFjdGlvbi5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgdmFyIHdyYXBwZXIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJESVYiKTsNCiAgICAgICAgICAgICAgICB3cmFwcGVyLnNldEF0dHJpYnV0ZSgiaWQiLCAiYm94LXdyYXBwZXIiKTsNCiAgICAgICAgICAgICAgICBkb2MuYXBwZW5kQ2hpbGQod3JhcHBlcik7DQogICAgICAgICAgICAgICAgdGhpcy5EaXZJRCA9ICJjb250ZW50X2xvZyI7DQogICAgICAgICAgICAgICAgdmFyIGxvZ3MgPSB0aGlzLmNyZWF0ZURJVigpOw0KICAgICAgICAgICAgICAgIHdyYXBwZXIuYXBwZW5kQ2hpbGQobG9ncyk7DQogICAgICAgICAgICAgICAgc2hvd0xvZ3ModHJ1ZSk7DQogICAgICAgICAgICAgICAgcmV0dXJuOw0KICAgICAgICAgICAgY2FzZSAibG9nb3V0IjoNCiAgICAgICAgICAgICAgICBsb2NhdGlvbi5yZWxvYWQoKTsNCiAgICAgICAgICAgICAgICBkb2N1bWVudC5jb29raWUgPSAiVG9rZW49IDsgZXhwaXJlcyA9IFRodSwgMDEgSmFuIDE5NzAgMDA6MDA6MDAgR01UIjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIH0NCiAgICAgICAgLy8gQ3JlYXRlIHRhYmxlIChpZiBuZWVkZWQpDQogICAgICAgIHZhciB0YWJsZUhlYWRlciA9IG1lbnVJdGVtc1t0aGlzLm1lbnVJRF0udGFibGVIZWFkZXI7DQogICAgICAgIGlmICh0YWJsZUhlYWRlci5sZW5ndGggPiAwKSB7DQogICAgICAgICAgICB2YXIgd3JhcHBlciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIkRJViIpOw0KICAgICAgICAgICAgZG9jLmFwcGVuZENoaWxkKHdyYXBwZXIpOw0KICAgICAgICAgICAgd3JhcHBlci5zZXRBdHRyaWJ1dGUoImlkIiwgImJveC13cmFwcGVyIik7DQogICAgICAgICAgICB2YXIgdGFibGUgPSB0aGlzLmNyZWF0ZVRBQkxFKCk7DQogICAgICAgICAgICB3cmFwcGVyLmFwcGVuZENoaWxkKHRhYmxlKTsNCiAgICAgICAgICAgIHZhciBoZWFkZXIgPSB0aGlzLmNyZWF0ZVRhYmxlUm93KCk7DQogICAgICAgICAgICB0YWJsZS5hcHBlbmRDaGlsZChoZWFkZXIpOw0KICAgICAgICAgICAgLy8gVGFibGUgaGVhZGVyDQogICAgICAgICAgICB0YWJsZUhlYWRlci5mb3JFYWNoKGVsZW1lbnQgPT4gew0KICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZWxlbWVudDsNCiAgICAgICAgICAgICAgICBpZiAoZWxlbWVudCA9PSAiQlVMSyIpIHsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiQlVMS19IRUFEIjsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGZhbHNlOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBpZiAobWVudUtleSA9PSAibWFwcGluZyIpIHsNCiAgICAgICAgICAgICAgICAgICAgaWYgKGVsZW1lbnQgPT0gInt7Lm1hcHBpbmcudGFibGUuY2hOb319Iikgew0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5vbmNsaWNrID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwub25jbGlja0Z1bmN0aW9uID0gImphdmFzY3JpcHQ6IHNvcnRUYWJsZSgxKTsiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC50ZENsYXNzTmFtZSA9ICJzb3J0VGhpcyI7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgaWYgKGVsZW1lbnQgPT0gInt7Lm1hcHBpbmcudGFibGUuY2hhbm5lbE5hbWV9fSIpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwub25jbGljayA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLm9uY2xpY2tGdW5jdGlvbiA9ICJqYXZhc2NyaXB0OiBzb3J0VGFibGUoMyk7IjsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBpZiAoZWxlbWVudCA9PSAie3subWFwcGluZy50YWJsZS5wbGF5bGlzdH19Iikgew0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5vbmNsaWNrID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwub25jbGlja0Z1bmN0aW9uID0gImphdmFzY3JpcHQ6IHNvcnRUYWJsZSg0KTsiOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIGlmIChlbGVtZW50ID09ICJ7ey5tYXBwaW5nLnRhYmxlLmdyb3VwVGl0bGV9fSIpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwub25jbGljayA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLm9uY2xpY2tGdW5jdGlvbiA9ICJqYXZhc2NyaXB0OiBzb3J0VGFibGUoNSk7IjsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBpZiAoZWxlbWVudCA9PSAie3subWFwcGluZy50YWJsZS50aW1lc2hpZnR9fSIpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwub25jbGljayA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLm9uY2xpY2tGdW5jdGlvbiA9ICJqYXZhc2NyaXB0OiBzb3J0VGFibGUoOCk7IjsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBpZiAobWVudUtleSA9PSAiZmlsdGVyIikgew0KICAgICAgICAgICAgICAgICAgICBpZiAoZWxlbWVudCA9PSAie3suZmlsdGVyLnRhYmxlLnN0YXJ0aW5nQ2hhbm5lbH19Iikgew0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5vbmNsaWNrID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwub25jbGlja0Z1bmN0aW9uID0gImphdmFzY3JpcHQ6IHNvcnRUYWJsZSgwKTsiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC50ZENsYXNzTmFtZSA9ICJzb3J0VGhpcyI7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgaWYgKGVsZW1lbnQgPT0gInt7LmZpbHRlci50YWJsZS5uYW1lfX0iKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLm9uY2xpY2sgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5vbmNsaWNrRnVuY3Rpb24gPSAiamF2YXNjcmlwdDogc29ydFRhYmxlKDEpOyI7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgaWYgKGVsZW1lbnQgPT0gInt7LmZpbHRlci50YWJsZS50eXBlfX0iKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLm9uY2xpY2sgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5vbmNsaWNrRnVuY3Rpb24gPSAiamF2YXNjcmlwdDogc29ydFRhYmxlKDIpOyI7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgaWYgKGVsZW1lbnQgPT0gInt7LmZpbHRlci50YWJsZS5maWx0ZXJ9fSIpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwub25jbGljayA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLm9uY2xpY2tGdW5jdGlvbiA9ICJqYXZhc2NyaXB0OiBzb3J0VGFibGUoMyk7IjsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBoZWFkZXIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgfSk7DQogICAgICAgICAgICB0YWJsZS5hcHBlbmRDaGlsZChoZWFkZXIpOw0KICAgICAgICAgICAgLy8gQ29udGVudCBvZiB0aGUgdGFibGUNCiAgICAgICAgICAgIHZhciByb3dzID0gdGhpcy5jcmVhdGVUYWJsZUNvbnRlbnQobWVudUtleSk7DQogICAgICAgICAgICByb3dzLmZvckVhY2godHIgPT4gew0KICAgICAgICAgICAgICAgIHRhYmxlLmFwcGVuZENoaWxkKHRyKTsNCiAgICAgICAgICAgIH0pOw0KICAgICAgICB9DQogICAgICAgIHN3aXRjaCAobWVudUtleSkgew0KICAgICAgICAgICAgY2FzZSAibWFwcGluZyI6DQogICAgICAgICAgICAgICAgc29ydFRhYmxlKDEpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiZmlsdGVyIjoNCiAgICAgICAgICAgICAgICBzaG93UHJldmlldyh0cnVlKTsNCiAgICAgICAgICAgICAgICBzb3J0VGFibGUoMCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBkZWZhdWx0Og0KICAgICAgICAgICAgICAgIENPTFVNTl9UT19TT1JUID0gLTE7DQogICAgICAgICAgICAgICAgc29ydFRhYmxlKDApOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICB9DQogICAgICAgIHNob3dFbGVtZW50KCJsb2FkaW5nIiwgZmFsc2UpOw0KICAgIH0NCn0NCmZ1bmN0aW9uIFBhZ2VSZWFkeSgpIHsNCiAgICBsZXQgc2VydmVyID0gbmV3IFNlcnZlcigiZ2V0U2VydmVyQ29uZmlnIik7DQogICAgc2VydmVyLnJlcXVlc3Qoe30pOw0KICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJyZXNpemUiLCBmdW5jdGlvbiAoKSB7DQogICAgICAgIGNhbGN1bGF0ZVdyYXBwZXJIZWlnaHQoKTsNCiAgICB9LCB0cnVlKTsNCiAgICBzZXRJbnRlcnZhbChmdW5jdGlvbiAoKSB7DQogICAgICAgIHVwZGF0ZUxvZygpOw0KICAgIH0sIDEwMDAwKTsNCiAgICByZXR1cm47DQp9DQpmdW5jdGlvbiBjcmVhdGVMYXlvdXQoKSB7DQogICAgLy8gQ2xpZW50IEluZm8NCiAgICBsZXQgb2JqID0gU0VSVkVSWyJjbGllbnRJbmZvIl07DQogICAgbGV0IGtleXMgPSBnZXRPd25PYmpQcm9wcyhvYmopOw0KICAgIGZvciAodmFyIGkgPSAwOyBpIDwga2V5cy5sZW5ndGg7IGkrKykgew0KICAgICAgICBpZiAoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoa2V5c1tpXSkpIHsNCiAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGtleXNbaV0pLmlubmVySFRNTCA9IG9ialtrZXlzW2ldXTsNCiAgICAgICAgfQ0KICAgIH0NCiAgICBpZiAoIWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJtYWluLW1lbnUiKSkgew0KICAgICAgICByZXR1cm47DQogICAgfQ0KICAgIC8vIENyZWF0ZSBtZW51DQogICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm1haW4tbWVudSIpLmlubmVySFRNTCA9ICIiOw0KICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbWVudUl0ZW1zLmxlbmd0aDsgaSsrKSB7DQogICAgICAgIG1lbnVJdGVtc1tpXS5pZCA9IGk7DQogICAgICAgIHN3aXRjaCAobWVudUl0ZW1zW2ldWyJtZW51S2V5Il0pIHsNCiAgICAgICAgICAgIGNhc2UgInVzZXJzIjoNCiAgICAgICAgICAgIGNhc2UgImxvZ291dCI6DQogICAgICAgICAgICAgICAgaWYgKFNFUlZFUlsic2V0dGluZ3MiXVsiYXV0aGVudGljYXRpb24ud2ViIl0gPT0gdHJ1ZSkgew0KICAgICAgICAgICAgICAgICAgICBtZW51SXRlbXNbaV0uY3JlYXRlSXRlbSgpOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgIm1hcHBpbmciOg0KICAgICAgICAgICAgY2FzZSAieG1sdHYiOg0KICAgICAgICAgICAgICAgIGlmIChTRVJWRVJbImNsaWVudEluZm8iXVsiZXBnU291cmNlIl0gPT0gIlhFUEciKSB7DQogICAgICAgICAgICAgICAgICAgIG1lbnVJdGVtc1tpXS5jcmVhdGVJdGVtKCk7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgICAgICBtZW51SXRlbXNbaV0uY3JlYXRlSXRlbSgpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICB9DQogICAgfQ0KICAgIHJldHVybjsNCn0NCmZ1bmN0aW9uIG9wZW5UaGlzTWVudShlbGVtZW50KSB7DQogICAgbGV0IGlkID0gZWxlbWVudC5pZDsNCiAgICBsZXQgY29udGVudCA9IG5ldyBTaG93Q29udGVudChpZCk7DQogICAgY29udGVudC5zaG93KCk7DQogICAgY2FsY3VsYXRlV3JhcHBlckhlaWdodCgpOw0KICAgIHJldHVybjsNCn0NCmNsYXNzIFBvcHVwV2luZG93IHsNCiAgICBjb25zdHJ1Y3RvcigpIHsNCiAgICAgICAgdGhpcy5Eb2N1bWVudElEID0gInBvcHVwLWN1c3RvbSI7DQogICAgICAgIHRoaXMuSW50ZXJhY3Rpb25JRCA9ICJpbnRlcmFjdGlvbiI7DQogICAgICAgIHRoaXMuZG9jID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQodGhpcy5Eb2N1bWVudElEKTsNCiAgICB9DQogICAgY3JlYXRlVGl0bGUodGl0bGUpIHsNCiAgICAgICAgbGV0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgdGQuY2xhc3NOYW1lID0gImxlZnQiOw0KICAgICAgICB0ZC5pbm5lckhUTUwgPSB0aXRsZSArICI6IjsNCiAgICAgICAgcmV0dXJuIHRkOw0KICAgIH0NCiAgICBjcmVhdGVDb250ZW50KGVsZW1lbnQpIHsNCiAgICAgICAgbGV0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgdGQuYXBwZW5kQ2hpbGQoZWxlbWVudCk7DQogICAgICAgIHJldHVybiB0ZDsNCiAgICB9DQogICAgY3JlYXRlSW50ZXJhY3Rpb24oKSB7DQogICAgICAgIGxldCBkaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsNCiAgICAgICAgZGl2LnNldEF0dHJpYnV0ZSgiaWQiLCAicG9wdXAtaW50ZXJhY3Rpb24iKTsNCiAgICAgICAgZGl2LmNsYXNzTmFtZSA9ICJpbnRlcmFjdGlvbiI7DQogICAgICAgIHRoaXMuZG9jLmFwcGVuZENoaWxkKGRpdik7DQogICAgfQ0KfQ0KY2xhc3MgUG9wdXBDb250ZW50IGV4dGVuZHMgUG9wdXBXaW5kb3cgew0KICAgIGNvbnN0cnVjdG9yKCkgew0KICAgICAgICBzdXBlciguLi5hcmd1bWVudHMpOw0KICAgICAgICB0aGlzLnRhYmxlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEFCTEUiKTsNCiAgICB9DQogICAgY3JlYXRlSGVhZGxpbmUoaGVhZGxpbmUpIHsNCiAgICAgICAgdGhpcy5kb2MuaW5uZXJIVE1MID0gIiI7DQogICAgICAgIHZhciBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiSDMiKTsNCiAgICAgICAgZWxlbWVudC5pbm5lckhUTUwgPSBoZWFkbGluZS50b1VwcGVyQ2FzZSgpOw0KICAgICAgICB0aGlzLmRvYy5hcHBlbmRDaGlsZChlbGVtZW50KTsNCiAgICAgICAgLy8gQ3JlYXRlIHRhYmxlDQogICAgICAgIHRoaXMudGFibGUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJUQUJMRSIpOw0KICAgICAgICB0aGlzLmRvYy5hcHBlbmRDaGlsZCh0aGlzLnRhYmxlKTsNCiAgICB9DQogICAgYXBwZW5kUm93KHRpdGxlLCBlbGVtZW50KSB7DQogICAgICAgIGxldCB0ciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlRSIik7DQogICAgICAgIC8vIFRpdGxlDQogICAgICAgIGlmICh0aXRsZS5sZW5ndGggIT0gMCkgew0KICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQodGhpcy5jcmVhdGVUaXRsZSh0aXRsZSkpOw0KICAgICAgICB9DQogICAgICAgIC8vIENvbnRlbnQNCiAgICAgICAgdHIuYXBwZW5kQ2hpbGQodGhpcy5jcmVhdGVDb250ZW50KGVsZW1lbnQpKTsNCiAgICAgICAgdGhpcy50YWJsZS5hcHBlbmRDaGlsZCh0cik7DQogICAgfQ0KICAgIGNyZWF0ZUlucHV0KHR5cGUsIG5hbWUsIHZhbHVlKSB7DQogICAgICAgIGxldCBpbnB1dCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIklOUFVUIik7DQogICAgICAgIGlmICh2YWx1ZSA9PSB1bmRlZmluZWQpIHsNCiAgICAgICAgICAgIHZhbHVlID0gIiI7DQogICAgICAgIH0NCiAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJ0eXBlIiwgdHlwZSk7DQogICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgibmFtZSIsIG5hbWUpOw0KICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInZhbHVlIiwgdmFsdWUpOw0KICAgICAgICByZXR1cm4gaW5wdXQ7DQogICAgfQ0KICAgIGNyZWF0ZUNoZWNrYm94KG5hbWUpIHsNCiAgICAgICAgbGV0IGlucHV0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiSU5QVVQiKTsNCiAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJ0eXBlIiwgImNoZWNrYm94Iik7DQogICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgibmFtZSIsIG5hbWUpOw0KICAgICAgICByZXR1cm4gaW5wdXQ7DQogICAgfQ0KICAgIC8vIENyZWF0ZXMgYSBzZWxlY3Rpb24gb2YgbXVsdGlwbGUgb3B0aW9ucyB2YWx1ZXMgd2l0aCB0ZXh0IGRlc2NyaXB0aW9ucw0KICAgIGNyZWF0ZVNlbGVjdCh0ZXh0LCB2YWx1ZXMsIHNldCwgZGJLZXkpIHsNCiAgICAgICAgbGV0IHNlbGVjdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlNFTEVDVCIpOw0KICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJuYW1lIiwgZGJLZXkpOw0KICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRleHQubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgICAgIGxldCBvcHRpb24gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJPUFRJT04iKTsNCiAgICAgICAgICAgIG9wdGlvbi5zZXRBdHRyaWJ1dGUoInZhbHVlIiwgdmFsdWVzW2ldKTsNCiAgICAgICAgICAgIG9wdGlvbi5pbm5lclRleHQgPSB0ZXh0W2ldOw0KICAgICAgICAgICAgc2VsZWN0LmFwcGVuZENoaWxkKG9wdGlvbik7DQogICAgICAgIH0NCiAgICAgICAgaWYgKHNldCAhPSAiIikgew0KICAgICAgICAgICAgc2VsZWN0LnZhbHVlID0gc2V0Ow0KICAgICAgICB9DQogICAgICAgIGlmIChzZXQgPT0gdW5kZWZpbmVkKSB7DQogICAgICAgICAgICBzZWxlY3QudmFsdWUgPSB2YWx1ZXNbMF07DQogICAgICAgIH0NCiAgICAgICAgcmV0dXJuIHNlbGVjdDsNCiAgICB9DQogICAgc2VsZWN0T3B0aW9uKHNlbGVjdCwgdmFsdWUpIHsNCiAgICAgICAgLy9zZWxlY3Quc2VsZWN0ZWRPcHRpb25zID0gdmFsdWUNCiAgICAgICAgbGV0IHMgPSBzZWxlY3Q7DQogICAgICAgIHMub3B0aW9uc1tzLnNlbGVjdGVkSW5kZXhdLnZhbHVlID0gdmFsdWU7DQogICAgICAgIHJldHVybiBzZWxlY3Q7DQogICAgfQ0KICAgIGRlc2NyaXB0aW9uKHZhbHVlKSB7DQogICAgICAgIGxldCB0ciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlRSIik7DQogICAgICAgIGxldCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgIGxldCBzcGFuID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiUFJFIik7DQogICAgICAgIHNwYW4uaW5uZXJIVE1MID0gdmFsdWU7DQogICAgICAgIHRyLmFwcGVuZENoaWxkKHRkKTsNCiAgICAgICAgdHIuYXBwZW5kQ2hpbGQodGhpcy5jcmVhdGVDb250ZW50KHNwYW4pKTsNCiAgICAgICAgdGhpcy50YWJsZS5hcHBlbmRDaGlsZCh0cik7DQogICAgfQ0KICAgIC8vIEludGVyYWN0aW9uDQogICAgYWRkSW50ZXJhY3Rpb24oZWxlbWVudCkgew0KICAgICAgICBsZXQgaW50ZXJhY3Rpb24gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicG9wdXAtaW50ZXJhY3Rpb24iKTsNCiAgICAgICAgaW50ZXJhY3Rpb24uYXBwZW5kQ2hpbGQoZWxlbWVudCk7DQogICAgfQ0KfQ0KZnVuY3Rpb24gb3BlblBvcFVwKGRhdGFUeXBlLCBlbGVtZW50KSB7DQogICAgbGV0IGRhdGEgPSB7fTsNCiAgICBsZXQgaWQ7DQogICAgc3dpdGNoIChlbGVtZW50KSB7DQogICAgICAgIGNhc2UgdW5kZWZpbmVkOg0KICAgICAgICAgICAgc3dpdGNoIChkYXRhVHlwZSkgew0KICAgICAgICAgICAgICAgIGNhc2UgImdyb3VwLXRpdGxlIjoNCiAgICAgICAgICAgICAgICAgICAgaWYgKGlkID09IHVuZGVmaW5lZCkgew0KICAgICAgICAgICAgICAgICAgICAgICAgaWQgPSAtMTsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBkYXRhID0gZ2V0TG9jYWxEYXRhKCJmaWx0ZXIiLCBpZCk7DQogICAgICAgICAgICAgICAgICAgIGRhdGFbInR5cGUiXSA9ICJncm91cC10aXRsZSI7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgImN1c3RvbS1maWx0ZXIiOg0KICAgICAgICAgICAgICAgICAgICBpZiAoaWQgPT0gdW5kZWZpbmVkKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBpZCA9IC0xOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIGRhdGEgPSBnZXRMb2NhbERhdGEoImZpbHRlciIsIGlkKTsNCiAgICAgICAgICAgICAgICAgICAgZGF0YVsidHlwZSJdID0gImN1c3RvbS1maWx0ZXIiOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBkZWZhdWx0Og0KICAgICAgICAgICAgICAgICAgICBkYXRhWyJpZC5wcm92aWRlciJdID0gIi0iOw0KICAgICAgICAgICAgICAgICAgICBkYXRhWyJ0eXBlIl0gPSBkYXRhVHlwZTsNCiAgICAgICAgICAgICAgICAgICAgaWQgPSAiLSI7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICBpZCA9IGVsZW1lbnQuaWQ7DQogICAgICAgICAgICBkYXRhID0gZ2V0TG9jYWxEYXRhKGRhdGFUeXBlLCBpZCk7DQogICAgICAgICAgICBicmVhazsNCiAgICB9DQogICAgbGV0IGNvbnRlbnQgPSBuZXcgUG9wdXBDb250ZW50KCk7DQogICAgc3dpdGNoIChkYXRhVHlwZSkgew0KICAgICAgICBjYXNlICJwbGF5bGlzdCI6DQogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUhlYWRsaW5lKCJ7ey5wbGF5bGlzdC5wbGF5bGlzdFR5cGUudGl0bGV9fSIpOw0KICAgICAgICAgICAgLy8gVHlwZQ0KICAgICAgICAgICAgdmFyIHRleHQgPSBbIk0zVSIsICJIREhvbWVSdW4iXTsNCiAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBbImphdmFzY3JpcHQ6IG9wZW5Qb3BVcCgnbTN1JykiLCAiamF2YXNjcmlwdDogb3BlblBvcFVwKCdoZGhyJykiXTsNCiAgICAgICAgICAgIHZhciBzZWxlY3QgPSBjb250ZW50LmNyZWF0ZVNlbGVjdCh0ZXh0LCB2YWx1ZXMsICIiLCAidHlwZSIpOw0KICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgiaWQiLCAidHlwZSIpOw0KICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAnamF2YXNjcmlwdDogY2hhbmdlQnV0dG9uQWN0aW9uKHRoaXMsICJuZXh0IiwgIm9uY2xpY2siKScpOyAvLyBjaGFuZ2VCdXR0b25BY3Rpb24NCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5wbGF5bGlzdC50eXBlLnRpdGxlfX0iLCBzZWxlY3QpOw0KICAgICAgICAgICAgLy8gSW50ZXJhY3Rpb24NCiAgICAgICAgICAgIGNvbnRlbnQuY3JlYXRlSW50ZXJhY3Rpb24oKTsNCiAgICAgICAgICAgIC8vIEFib3J0DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAiY2FuY2VsIiwgInt7LmJ1dHRvbi5jYW5jZWx9fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IHNob3dFbGVtZW50KCJwb3B1cCIsIGZhbHNlKTsnKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgLy8gTmV4dA0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgIm5leHQiLCAie3suYnV0dG9uLm5leHR9fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgibTN1IiknKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgiaWQiLCAnbmV4dCcpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSAibTN1IjoNCiAgICAgICAgICAgIGNvbnRlbnQuY3JlYXRlSGVhZGxpbmUoZGF0YVR5cGUpOw0KICAgICAgICAgICAgLy8gTmFtZQ0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gIm5hbWUiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnBsYXlsaXN0Lm5hbWUucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnBsYXlsaXN0Lm5hbWUudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIERlc2NyaXB0aW9uDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAiZGVzY3JpcHRpb24iOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnBsYXlsaXN0LmRlc2NyaXB0aW9uLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5wbGF5bGlzdC5kZXNjcmlwdGlvbi50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgLy8gVVJMDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAiZmlsZS5zb3VyY2UiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnBsYXlsaXN0LmZpbGVNM1UucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnBsYXlsaXN0LmZpbGVNM1UudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIFR1bmVyDQogICAgICAgICAgICBpZiAoU0VSVkVSWyJzZXR0aW5ncyJdWyJidWZmZXIiXSAhPSAiLSIpIHsNCiAgICAgICAgICAgICAgICB2YXIgdGV4dCA9IFtdOw0KICAgICAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBbXTsNCiAgICAgICAgICAgICAgICBmb3IgKHZhciBpID0gMTsgaSA8PSAxMDA7IGkrKykgew0KICAgICAgICAgICAgICAgICAgICB0ZXh0LnB1c2goaS50b1N0cmluZygpKTsNCiAgICAgICAgICAgICAgICAgICAgdmFsdWVzLnB1c2goaS50b1N0cmluZygpKTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgdmFyIGRiS2V5ID0gInR1bmVyIjsNCiAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCBkYXRhW2RiS2V5XSwgZGJLZXkpOw0KICAgICAgICAgICAgICAgIHNlbGVjdC5zZXRBdHRyaWJ1dGUoIm9uZm9jdXMiLCAiamF2YXNjcmlwdDogcmV0dXJuOyIpOw0KICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5wbGF5bGlzdC50dW5lci50aXRsZX19Iiwgc2VsZWN0KTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgICAgIHZhciBkYktleSA9ICJ0dW5lciI7DQogICAgICAgICAgICAgICAgaWYgKGRhdGFbZGJLZXldID09IHVuZGVmaW5lZCkgew0KICAgICAgICAgICAgICAgICAgICBkYXRhW2RiS2V5XSA9IDE7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicmVhZG9ubHkiLCAidHJ1ZSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LmNsYXNzTmFtZSA9ICJub3RBdmFpbGFibGUiOw0KICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5wbGF5bGlzdC50dW5lci50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgY29udGVudC5kZXNjcmlwdGlvbigie3sucGxheWxpc3QudHVuZXIuZGVzY3JpcHRpb259fSIpOw0KICAgICAgICAgICAgLy8gSW50ZXJhdGlvbg0KICAgICAgICAgICAgY29udGVudC5jcmVhdGVJbnRlcmFjdGlvbigpOw0KICAgICAgICAgICAgLy8gRGVsZXRlDQogICAgICAgICAgICBpZiAoZGF0YVsiaWQucHJvdmlkZXIiXSAhPSAiLSIpIHsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAiZGVsZXRlIiwgInt7LmJ1dHRvbi5kZWxldGV9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LmNsYXNzTmFtZSA9ICJkZWxldGUiOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBzYXZlUG9wdXBEYXRhKCJtM3UiLCAiJyArIGlkICsgJyIsIHRydWUsIDApJyk7DQogICAgICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAiYmFjayIsICJ7ey5idXR0b24uYmFja319Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgicGxheWxpc3QiKScpOw0KICAgICAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgLy8gQWJvcnQNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJjYW5jZWwiLCAie3suYnV0dG9uLmNhbmNlbH19Iik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogc2hvd0VsZW1lbnQoInBvcHVwIiwgZmFsc2UpOycpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICAvLyBVcGRhdGUNCiAgICAgICAgICAgIGlmIChkYXRhWyJpZC5wcm92aWRlciJdICE9ICItIikgew0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJ1cGRhdGUiLCAie3suYnV0dG9uLnVwZGF0ZX19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoIm0zdSIsICInICsgaWQgKyAnIiwgZmFsc2UsIDEpJyk7DQogICAgICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICAvLyBTYXZlDQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAic2F2ZSIsICJ7ey5idXR0b24uc2F2ZX19Iik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogc2F2ZVBvcHVwRGF0YSgibTN1IiwgIicgKyBpZCArICciLCBmYWxzZSwgMCknKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGNhc2UgImhkaHIiOg0KICAgICAgICAgICAgY29udGVudC5jcmVhdGVIZWFkbGluZShkYXRhVHlwZSk7DQogICAgICAgICAgICAvLyBOYW1lDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAibmFtZSI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3sucGxheWxpc3QubmFtZS5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sucGxheWxpc3QubmFtZS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgLy8gRGVzY3JpcHRpb24NCiAgICAgICAgICAgIHZhciBkYktleSA9ICJkZXNjcmlwdGlvbiI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3sucGxheWxpc3QuZGVzY3JpcHRpb24ucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnBsYXlsaXN0LmRlc2NyaXB0aW9uLnBsYWNlaG9sZGVyfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBVUkwNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJmaWxlLnNvdXJjZSI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3sucGxheWxpc3QuZmlsZUhESFIucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnBsYXlsaXN0LmZpbGVIREhSLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBUdW5lcg0KICAgICAgICAgICAgaWYgKFNFUlZFUlsic2V0dGluZ3MiXVsiYnVmZmVyIl0gIT0gIi0iKSB7DQogICAgICAgICAgICAgICAgdmFyIHRleHQgPSBbXTsNCiAgICAgICAgICAgICAgICB2YXIgdmFsdWVzID0gW107DQogICAgICAgICAgICAgICAgZm9yICh2YXIgaSA9IDE7IGkgPD0gMTAwOyBpKyspIHsNCiAgICAgICAgICAgICAgICAgICAgdGV4dC5wdXNoKGkudG9TdHJpbmcoKSk7DQogICAgICAgICAgICAgICAgICAgIHZhbHVlcy5wdXNoKGkudG9TdHJpbmcoKSk7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIHZhciBkYktleSA9ICJ0dW5lciI7DQogICAgICAgICAgICAgICAgdmFyIHNlbGVjdCA9IGNvbnRlbnQuY3JlYXRlU2VsZWN0KHRleHQsIHZhbHVlcywgZGF0YVtkYktleV0sIGRiS2V5KTsNCiAgICAgICAgICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJvbmZvY3VzIiwgImphdmFzY3JpcHQ6IHJldHVybjsiKTsNCiAgICAgICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sucGxheWxpc3QudHVuZXIudGl0bGV9fSIsIHNlbGVjdCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICB2YXIgZGJLZXkgPSAidHVuZXIiOw0KICAgICAgICAgICAgICAgIGlmIChkYXRhW2RiS2V5XSA9PSB1bmRlZmluZWQpIHsNCiAgICAgICAgICAgICAgICAgICAgZGF0YVtkYktleV0gPSAxOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInJlYWRvbmx5IiwgInRydWUiKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5jbGFzc05hbWUgPSAibm90QXZhaWxhYmxlIjsNCiAgICAgICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sucGxheWxpc3QudHVuZXIudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGNvbnRlbnQuZGVzY3JpcHRpb24oInt7LnBsYXlsaXN0LnR1bmVyLmRlc2NyaXB0aW9ufX0iKTsNCiAgICAgICAgICAgIC8vIEludGVyYWN0aW9uDQogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUludGVyYWN0aW9uKCk7DQogICAgICAgICAgICAvLyBEZWxldGUNCiAgICAgICAgICAgIGlmIChkYXRhWyJpZC5wcm92aWRlciJdICE9ICItIikgew0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJkZWxldGUiLCAie3suYnV0dG9uLmRlbGV0ZX19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoImhkaHIiLCAiJyArIGlkICsgJyIsIHRydWUsIDApJyk7DQogICAgICAgICAgICAgICAgaW5wdXQuY2xhc3NOYW1lID0gImRlbGV0ZSI7DQogICAgICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAiYmFjayIsICJ7ey5idXR0b24uYmFja319Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgicGxheWxpc3QiKScpOw0KICAgICAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgLy8gQWJvcnQNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJjYW5jZWwiLCAie3suYnV0dG9uLmNhbmNlbH19Iik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogc2hvd0VsZW1lbnQoInBvcHVwIiwgZmFsc2UpOycpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICAvLyBVcGRhdGUNCiAgICAgICAgICAgIGlmIChkYXRhWyJpZC5wcm92aWRlciJdICE9ICItIikgew0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJ1cGRhdGUiLCAie3suYnV0dG9uLnVwZGF0ZX19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoImhkaHIiLCAiJyArIGlkICsgJyIsIGZhbHNlLCAxKScpOw0KICAgICAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgLy8gU2F2ZQ0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgInNhdmUiLCAie3suYnV0dG9uLnNhdmV9fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoImhkaHIiLCAiJyArIGlkICsgJyIsIGZhbHNlLCAwKScpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSAiZmlsdGVyIjoNCiAgICAgICAgICAgIGNvbnRlbnQuY3JlYXRlSGVhZGxpbmUoZGF0YVR5cGUpOw0KICAgICAgICAgICAgLy8gVHlwZQ0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gInR5cGUiOw0KICAgICAgICAgICAgdmFyIHRleHQgPSBbIk0zVTogIiArICJ7ey5maWx0ZXIudHlwZS5ncm91cFRpdGxlfX0iLCAieFRlVmU6ICIgKyAie3suZmlsdGVyLnR5cGUuY3VzdG9tRmlsdGVyfX0iXTsNCiAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBbImphdmFzY3JpcHQ6IG9wZW5Qb3BVcCgnZ3JvdXAtdGl0bGUnKSIsICJqYXZhc2NyaXB0OiBvcGVuUG9wVXAoJ2N1c3RvbS1maWx0ZXInKSJdOw0KICAgICAgICAgICAgdmFyIHNlbGVjdCA9IGNvbnRlbnQuY3JlYXRlU2VsZWN0KHRleHQsIHZhbHVlcywgImphdmFzY3JpcHQ6IG9wZW5Qb3BVcCgnZ3JvdXAtdGl0bGUnKSIsIGRiS2V5KTsNCiAgICAgICAgICAgIHNlbGVjdC5zZXRBdHRyaWJ1dGUoImlkIiwgaWQpOw0KICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAnamF2YXNjcmlwdDogY2hhbmdlQnV0dG9uQWN0aW9uKHRoaXMsICJuZXh0IiwgIm9uY2xpY2siKTsnKTsgLy8gY2hhbmdlQnV0dG9uQWN0aW9uDQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3suZmlsdGVyLnR5cGUudGl0bGV9fSIsIHNlbGVjdCk7DQogICAgICAgICAgICAvLyBJbnRlcmFjdGlvbg0KICAgICAgICAgICAgY29udGVudC5jcmVhdGVJbnRlcmFjdGlvbigpOw0KICAgICAgICAgICAgLy8gQWJvcnQNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJjYW5jZWwiLCAie3suYnV0dG9uLmNhbmNlbH19Iik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogc2hvd0VsZW1lbnQoInBvcHVwIiwgZmFsc2UpOycpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICAvLyBOZXh0DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAibmV4dCIsICJ7ey5idXR0b24ubmV4dH19Iik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJncm91cC10aXRsZSIpJyk7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoImlkIiwgJ25leHQnKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGNhc2UgImN1c3RvbS1maWx0ZXIiOg0KICAgICAgICBjYXNlICJncm91cC10aXRsZSI6DQogICAgICAgICAgICBzd2l0Y2ggKGRhdGFUeXBlKSB7DQogICAgICAgICAgICAgICAgY2FzZSAiY3VzdG9tLWZpbHRlciI6DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuY3JlYXRlSGVhZGxpbmUoInt7LmZpbHRlci5jdXN0b219fSIgKyAiIEZpbHRlciIpOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBjYXNlICJncm91cC10aXRsZSI6DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuY3JlYXRlSGVhZGxpbmUoInt7LmZpbHRlci5ncm91cH19IiArICIgRmlsdGVyIik7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgLy8gTmFtZSAgICAgIA0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gIm5hbWUiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LmZpbHRlci5uYW1lLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5maWx0ZXIubmFtZS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgLy8gRGVzY3JpcHRpb24NCiAgICAgICAgICAgIHZhciBkYktleSA9ICJkZXNjcmlwdGlvbiI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3suZmlsdGVyLmRlc2NyaXB0aW9uLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5maWx0ZXIuZGVzY3JpcHRpb24udGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIFR5cGUNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJ0eXBlIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImhpZGRlbiIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygiIiwgaW5wdXQpOw0KICAgICAgICAgICAgdmFyIGZpbHRlclR5cGUgPSBkYXRhW2RiS2V5XTsNCiAgICAgICAgICAgIHN3aXRjaCAoZmlsdGVyVHlwZSkgew0KICAgICAgICAgICAgICAgIGNhc2UgImN1c3RvbS1maWx0ZXIiOg0KICAgICAgICAgICAgICAgICAgICAvLyBDYXNlIHNlbnNpdGl2ZQ0KICAgICAgICAgICAgICAgICAgICB2YXIgZGJLZXkgPSAiY2FzZVNlbnNpdGl2ZSI7DQogICAgICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goZGJLZXkpOw0KICAgICAgICAgICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YVtkYktleV07DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5maWx0ZXIuY2FzZVNlbnNpdGl2ZS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgICAgICAgICAvLyBGaWx0ZXIgUnVsZSAoQ3VzdG9tKQ0KICAgICAgICAgICAgICAgICAgICB2YXIgZGJLZXkgPSAiZmlsdGVyIjsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3suZmlsdGVyLmZpbHRlclJ1bGUucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3suZmlsdGVyLmZpbHRlclJ1bGUudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAiZ3JvdXAtdGl0bGUiOg0KICAgICAgICAgICAgICAgICAgICAvL2FsZXJ0KGRiS2V5ICsgIiAiICsgZmlsdGVyVHlwZSkNCiAgICAgICAgICAgICAgICAgICAgLy8gRmlsdGVyIGJhc2VkIG9uIHRoZSBncm91cHMgaW4gdGhlIE0zVQ0KICAgICAgICAgICAgICAgICAgICB2YXIgZGJLZXkgPSAiZmlsdGVyIjsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGdyb3Vwc00zVSA9IGdldExvY2FsRGF0YSgibTN1R3JvdXBzIiwgIiIpOw0KICAgICAgICAgICAgICAgICAgICB2YXIgdGV4dCA9IGdyb3Vwc00zVVsidGV4dCJdOw0KICAgICAgICAgICAgICAgICAgICB2YXIgdmFsdWVzID0gZ3JvdXBzTTNVWyJ2YWx1ZSJdOw0KICAgICAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCBkYXRhW2RiS2V5XSwgZGJLZXkpOw0KICAgICAgICAgICAgICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3suZmlsdGVyLmZpbHRlckdyb3VwLnRpdGxlfX0iLCBzZWxlY3QpOw0KICAgICAgICAgICAgICAgICAgICBjb250ZW50LmRlc2NyaXB0aW9uKCJ7ey5maWx0ZXIuZmlsdGVyR3JvdXAuZGVzY3JpcHRpb259fSIpOw0KICAgICAgICAgICAgICAgICAgICAvLyBDYXNlIHNlbnNldGl2ZQ0KICAgICAgICAgICAgICAgICAgICB2YXIgZGJLZXkgPSAiY2FzZVNlbnNpdGl2ZSI7DQogICAgICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goZGJLZXkpOw0KICAgICAgICAgICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YVtkYktleV07DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5maWx0ZXIuY2FzZVNlbnNpdGl2ZS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgICAgICAgICB2YXIgZGJLZXkgPSAiaW5jbHVkZSI7DQogICAgICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LmZpbHRlci5pbmNsdWRlLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LmZpbHRlci5pbmNsdWRlLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuZGVzY3JpcHRpb24oInt7LmZpbHRlci5pbmNsdWRlLmRlc2NyaXB0aW9ufX0iKTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGRiS2V5ID0gImV4Y2x1ZGUiOw0KICAgICAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5maWx0ZXIuZXhjbHVkZS5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5maWx0ZXIuZXhjbHVkZS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgICAgICAgICBjb250ZW50LmRlc2NyaXB0aW9uKCJ7ey5maWx0ZXIuZXhjbHVkZS5kZXNjcmlwdGlvbn19Iik7DQogICAgICAgICAgICAgICAgICAgIC8vIFByZXNlcnZlIE0zVSBQbGF5bGlzdCBDaGFubmVsIE1hcHBpbmcNCiAgICAgICAgICAgICAgICAgICAgdmFyIGRiS2V5ID0gInByZXNlcnZlTWFwcGluZyI7DQogICAgICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goZGJLZXkpOw0KICAgICAgICAgICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YVtkYktleV07DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5maWx0ZXIucHJlc2VydmVNYXBwaW5nLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAgICAgICAgIC8vIFN0YXJ0aW5nIENoYW5uZWwgTnVtYmVyIE1hcHBpbmcNCiAgICAgICAgICAgICAgICAgICAgdmFyIGRiS2V5ID0gInN0YXJ0aW5nQ2hhbm5lbCI7DQogICAgICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LmZpbHRlci5zdGFydGluZ0NoYW5uZWwucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3suZmlsdGVyLnN0YXJ0aW5nQ2hhbm5lbC50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgICAgICAgICAvLyBGaWxsIE1pc3NpbmcgRVBHIERhdGENCiAgICAgICAgICAgICAgICAgICAgLy8gVGhlIGZvbGxvd2luZyBjb2RlIG9ubHkgd29ya3Mgd2hlbiB4VGVWZSBEdW1teSBhbHJlYWR5IGV4aXN0cw0KICAgICAgICAgICAgICAgICAgICAvLyB2YXIgZGJLZXk6c3RyaW5nID0gImRlZmF1bHRNaXNzaW5nRVBHIg0KICAgICAgICAgICAgICAgICAgICAvLyB2YXIgeG1sdHY6WE1MVFZGaWxlID0gbmV3IFhNTFRWRmlsZSgpDQogICAgICAgICAgICAgICAgICAgIC8vIHZhciBzZWxlY3QgPSB4bWx0di5nZXRQcm9ncmFtcygieFRlVmUgRHVtbXkiLCBkYXRhW2RiS2V5XSkNCiAgICAgICAgICAgICAgICAgICAgLy8gc2VsZWN0LnNldEF0dHJpYnV0ZSgibmFtZSIsIGRiS2V5KQ0KICAgICAgICAgICAgICAgICAgICAvLyBzZWxlY3Quc2V0QXR0cmlidXRlKCJpZCIsICJwb3B1cC1taXNzaW5nLWVwZyIpDQogICAgICAgICAgICAgICAgICAgIC8vIFRoZSB3b3JrYXJvdW5kIGlzIGN1cnJlbnRseSB0byBoYXJkIGNvZGUgdGhlIHhUZVZlIER1bW15IGRhdGENCiAgICAgICAgICAgICAgICAgICAgdmFyIGRiS2V5ID0gImRlZmF1bHRNaXNzaW5nRVBHIjsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGxpc3RPcHRpb25zID0geyAidGV4dCI6IFsiLSIsICIzMCBNaW51dGVzICgzMF9NaW51dGVzKSIsICI2MCBNaW51dGVzICg2MF9NaW51dGVzKSIsICI5MCBNaW51dGVzICg5MF9NaW51dGVzKSIsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgIjEyMCBNaW51dGVzICgxMjBfTWludXRlcykiLCAiMTgwIE1pbnV0ZXMgKDMwX01pbnV0ZXMpIiwgIjI0MCBNaW51dGVzICgzMF9NaW51dGVzKSIsICIzNjAgTWludXRlcyAoMzBfTWludXRlcykiXSwNCiAgICAgICAgICAgICAgICAgICAgICAgICJ2YWx1ZSI6IFsiLSIsICIzMF9NaW51dGVzIiwgIjYwX01pbnV0ZXMiLCAiOTBfTWludXRlcyIsICIxMjBfTWludXRlcyIsICIxODBfTWludXRlcyIsICIyNDBfTWludXRlcyIsICIzNjBfTWludXRlcyIsXSB9Ow0KICAgICAgICAgICAgICAgICAgICB2YXIgdGV4dCA9IGxpc3RPcHRpb25zWyJ0ZXh0Il07DQogICAgICAgICAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBsaXN0T3B0aW9uc1sidmFsdWUiXTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHNlbGVjdCA9IGNvbnRlbnQuY3JlYXRlU2VsZWN0KHRleHQsIHZhbHVlcywgZGF0YVtkYktleV0sIGRiS2V5KTsNCiAgICAgICAgICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LmZpbHRlci5kZWZhdWx0TWlzc2luZ0VQRy50aXRsZX19Iiwgc2VsZWN0KTsNCiAgICAgICAgICAgICAgICAgICAgY29udGVudC5kZXNjcmlwdGlvbigie3suZmlsdGVyLmRlZmF1bHRNaXNzaW5nRVBHLmRlc2NyaXB0aW9ufX0iKTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICB9DQogICAgICAgICAgICAvLyBJbnRlcmFjdGlvbg0KICAgICAgICAgICAgY29udGVudC5jcmVhdGVJbnRlcmFjdGlvbigpOw0KICAgICAgICAgICAgLy8gRGVsZXRlDQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAiZGVsZXRlIiwgInt7LmJ1dHRvbi5kZWxldGV9fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoImZpbHRlciIsICInICsgaWQgKyAnIiwgdHJ1ZSwgMCknKTsNCiAgICAgICAgICAgIGlucHV0LmNsYXNzTmFtZSA9ICJkZWxldGUiOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICAvLyBBYm9ydA0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImNhbmNlbCIsICJ7ey5idXR0b24uY2FuY2VsfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBzaG93RWxlbWVudCgicG9wdXAiLCBmYWxzZSk7Jyk7DQogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIC8vIFNhdmUNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJzYXZlIiwgInt7LmJ1dHRvbi5zYXZlfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBzYXZlUG9wdXBEYXRhKCJmaWx0ZXIiLCAiJyArIGlkICsgJyIsIGZhbHNlLCAwKScpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSAieG1sdHYiOg0KICAgICAgICAgICAgY29udGVudC5jcmVhdGVIZWFkbGluZShkYXRhVHlwZSk7DQogICAgICAgICAgICAvLyBOYW1lDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAibmFtZSI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3sueG1sdHYubmFtZS5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sueG1sdHYubmFtZS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgLy8gRGVzY3JpcHRpb24NCiAgICAgICAgICAgIHZhciBkYktleSA9ICJkZXNjcmlwdGlvbiI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3sueG1sdHYuZGVzY3JpcHRpb24ucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnhtbHR2LmRlc2NyaXB0aW9uLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBVUkwNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJmaWxlLnNvdXJjZSI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3sueG1sdHYuZmlsZVhNTFRWLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey54bWx0di5maWxlWE1MVFYudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIEludGVyYWN0aW9uDQogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUludGVyYWN0aW9uKCk7DQogICAgICAgICAgICAvLyBEZWxldGUNCiAgICAgICAgICAgIGlmIChkYXRhWyJpZC5wcm92aWRlciJdICE9ICItIikgew0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJkZWxldGUiLCAie3suYnV0dG9uLmRlbGV0ZX19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoInhtbHR2IiwgIicgKyBpZCArICciLCB0cnVlLCAwKScpOw0KICAgICAgICAgICAgICAgIGlucHV0LmNsYXNzTmFtZSA9ICJkZWxldGUiOw0KICAgICAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgLy8gQWJvcnQNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJjYW5jZWwiLCAie3suYnV0dG9uLmNhbmNlbH19Iik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogc2hvd0VsZW1lbnQoInBvcHVwIiwgZmFsc2UpOycpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICAvLyBVcGRhdGUNCiAgICAgICAgICAgIGlmIChkYXRhWyJpZC5wcm92aWRlciJdICE9ICItIikgew0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJ1cGRhdGUiLCAie3suYnV0dG9uLnVwZGF0ZX19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoInhtbHR2IiwgIicgKyBpZCArICciLCBmYWxzZSwgMSknKTsNCiAgICAgICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIC8vIFNhdmUNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJzYXZlIiwgInt7LmJ1dHRvbi5zYXZlfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBzYXZlUG9wdXBEYXRhKCJ4bWx0diIsICInICsgaWQgKyAnIiwgZmFsc2UsIDApJyk7DQogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJ1c2VycyI6DQogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUhlYWRsaW5lKCJ7ey5tYWluTWVudS5pdGVtLnVzZXJzfX0iKTsNCiAgICAgICAgICAgIC8vIFVzZXIgbmFtZQ0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gInVzZXJuYW1lIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey51c2Vycy51c2VybmFtZS5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sudXNlcnMudXNlcm5hbWUudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIE5ldyBQYXJzc3dvcmQNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJwYXNzd29yZCI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJwYXNzd29yZCIsIGRiS2V5LCAiIik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnVzZXJzLnBhc3N3b3JkLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey51c2Vycy5wYXNzd29yZC50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgLy8gQ29uZmlybWF0aW9uDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAiY29uZmlybSI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJwYXNzd29yZCIsIGRiS2V5LCAiIik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnVzZXJzLmNvbmZpcm0ucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnVzZXJzLmNvbmZpcm0udGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIEF1dGhlbnRpY2F0aW9uIFdFQg0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gImF1dGhlbnRpY2F0aW9uLndlYiI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KGRiS2V5KTsNCiAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhW2RiS2V5XTsNCiAgICAgICAgICAgIGlmIChkYXRhWyJkZWZhdWx0VXNlciJdID09IHRydWUpIHsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAiamF2YXNjcmlwdDogcmV0dXJuIGZhbHNlIik7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sudXNlcnMud2ViLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBBdXRoZW50aWNhdGlvbiBQTVMNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJhdXRoZW50aWNhdGlvbi5wbXMiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChkYktleSk7DQogICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YVtkYktleV07DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sudXNlcnMucG1zLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBBdXRoZW50aWNhdGlvbiBNM1UNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJhdXRoZW50aWNhdGlvbi5tM3UiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChkYktleSk7DQogICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YVtkYktleV07DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sudXNlcnMubTN1LnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBBdXRoZW50aWNhdGlvbiBYTUwNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJhdXRoZW50aWNhdGlvbi54bWwiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChkYktleSk7DQogICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YVtkYktleV07DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sudXNlcnMueG1sLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBBdXRoZW50aWNhdGlvbiBBUEkNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJhdXRoZW50aWNhdGlvbi5hcGkiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChkYktleSk7DQogICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YVtkYktleV07DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sudXNlcnMuYXBpLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBJbnRlcmFjdGlvbg0KICAgICAgICAgICAgY29udGVudC5jcmVhdGVJbnRlcmFjdGlvbigpOw0KICAgICAgICAgICAgLy8gRGVsZXRlDQogICAgICAgICAgICBpZiAoZGF0YVsiZGVmYXVsdFVzZXIiXSAhPSB0cnVlICYmIGlkICE9ICItIikgew0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJkZWxldGUiLCAie3suYnV0dG9uLmRlbGV0ZX19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuY2xhc3NOYW1lID0gImRlbGV0ZSI7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoIicgKyBkYXRhVHlwZSArICciLCAiJyArIGlkICsgJyIsIHRydWUsIDApJyk7DQogICAgICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICAvLyBBYm9ydA0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImNhbmNlbCIsICJ7ey5idXR0b24uY2FuY2VsfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBzaG93RWxlbWVudCgicG9wdXAiLCBmYWxzZSk7Jyk7DQogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIC8vIFNhdmUNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJzYXZlIiwgInt7LmJ1dHRvbi5zYXZlfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBzYXZlUG9wdXBEYXRhKCInICsgZGF0YVR5cGUgKyAnIiwgIicgKyBpZCArICciLCAiZmFsc2UiKTsnKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGNhc2UgIm1hcHBpbmciOg0KICAgICAgICAgICAgY29udGVudC5jcmVhdGVIZWFkbGluZSgie3subWFpbk1lbnUuaXRlbS5tYXBwaW5nfX0iKTsNCiAgICAgICAgICAgIC8vIEFjdGl2ZQ0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gIngtYWN0aXZlIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goZGJLZXkpOw0KICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGFbZGJLZXldOw0KICAgICAgICAgICAgaW5wdXQuaWQgPSAiYWN0aXZlIjsNCiAgICAgICAgICAgIC8vaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpDQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRvZ2dsZUNoYW5uZWxTdGF0dXMoJyIgKyBpZCArICInLCB0aGlzKSIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7Lm1hcHBpbmcuYWN0aXZlLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBDaGFubmVsIG5hbWUNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJ4LW5hbWUiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICBpZiAoQlVMS19FRElUID09IHRydWUpIHsNCiAgICAgICAgICAgICAgICBpbnB1dC5zdHlsZS5ib3JkZXIgPSAic29saWQgMXB4IHJlZCI7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJyZWFkb25seSIsICJ0cnVlIik7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3subWFwcGluZy5jaGFubmVsTmFtZS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgY29udGVudC5kZXNjcmlwdGlvbihkYXRhWyJuYW1lIl0pOw0KICAgICAgICAgICAgLy8gRGVzY3JpcHRpb24NCiAgICAgICAgICAgIHZhciBkYktleSA9ICJ4LWRlc2NyaXB0aW9uIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5tYXBwaW5nLmRlc2NyaXB0aW9uLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5tYXBwaW5nLmRlc2NyaXB0aW9uLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBVcGRhdGUgdGhlIGNoYW5uZWwgbmFtZQ0KICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoIl91dWlkLmtleSIpKSB7DQogICAgICAgICAgICAgICAgaWYgKGRhdGFbIl91dWlkLmtleSJdICE9ICIiKSB7DQogICAgICAgICAgICAgICAgICAgIHZhciBkYktleSA9ICJ4LXVwZGF0ZS1jaGFubmVsLW5hbWUiOw0KICAgICAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KGRiS2V5KTsNCiAgICAgICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YVtkYktleV07DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5tYXBwaW5nLnVwZGF0ZUNoYW5uZWxOYW1lLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgLy8gTG9nbyBVUkwgKENoYW5uZWwpIA0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gInR2Zy1sb2dvIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJpZCIsICJjaGFubmVsLWljb24iKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5tYXBwaW5nLmNoYW5uZWxMb2dvLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBDaGFubmVsIGxvZ28gdXBkYXRlDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAieC11cGRhdGUtY2hhbm5lbC1pY29uIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goZGJLZXkpOw0KICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGFbZGJLZXldOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJpZCIsICJ1cGRhdGUtaWNvbiIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJzsgY2hhbmdlQ2hhbm5lbExvZ28oJyIgKyBpZCArICInKTsiKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5tYXBwaW5nLnVwZGF0ZUNoYW5uZWxMb2dvLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBFeHBhbmQgRVBHIGNhdGVnb3J5DQogICAgICAgICAgICB2YXIgZGJLZXkgPSAieC1jYXRlZ29yeSI7DQogICAgICAgICAgICB2YXIgdGV4dCA9IFsiLSIsICJLaWRzIChFbWJ5IG9ubHkpIiwgIk5ld3MiLCAiTW92aWUiLCAiU2VyaWVzIiwgIlNwb3J0cyJdOw0KICAgICAgICAgICAgdmFyIHZhbHVlcyA9IFsiIiwgIktpZHMiLCAiTmV3cyIsICJNb3ZpZSIsICJTZXJpZXMiLCAiU3BvcnRzIl07DQogICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCBkYXRhW2RiS2V5XSwgZGJLZXkpOw0KICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5tYXBwaW5nLmVwZ0NhdGVnb3J5LnRpdGxlfX0iLCBzZWxlY3QpOw0KICAgICAgICAgICAgLy8gTTNVIGdyb3VwIHRpdGxlDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAieC1ncm91cC10aXRsZSI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgIGlucHV0LmRhdGFzZXQub2xkVmFsdWUgPSBkYXRhW2RiS2V5XTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5tYXBwaW5nLm0zdUdyb3VwVGl0bGUudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIGlmIChkYXRhWyJncm91cC10aXRsZSJdICE9IHVuZGVmaW5lZCkgew0KICAgICAgICAgICAgICAgIGNvbnRlbnQuZGVzY3JpcHRpb24oZGF0YVsiZ3JvdXAtdGl0bGUiXSk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBpZiAoZGF0YVsieC11cGRhdGUtY2hhbm5lbC1ncm91cCJdID09IHRydWUpIHsNCiAgICAgICAgICAgICAgICBpbnB1dC5kaXNhYmxlZCA9IHRydWU7DQogICAgICAgICAgICB9DQogICAgICAgICAgICAvLyBVcGRhdGUgY2hhbm5lbCBncm91cCBjaGVja2JveA0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gIngtdXBkYXRlLWNoYW5uZWwtZ3JvdXAiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChkYktleSk7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRvZ2dsZUdyb3VwVXBkYXRlQ2IoJyIgKyBpZCArICInLCB0aGlzKTsiKTsNCiAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhW2RiS2V5XTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5tYXBwaW5nLnVwZGF0ZUNoYW5uZWxHcm91cC50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgY29udGVudC5kZXNjcmlwdGlvbigie3subWFwcGluZy51cGRhdGVDaGFubmVsR3JvdXAuZGVzY3JpcHRpb259fSIpOw0KICAgICAgICAgICAgLy8gWE1MVFYgZmlsZQ0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gJ3gteG1sdHYtZmlsZSc7DQogICAgICAgICAgICBjb25zdCB4bWxUdkZpbGUgPSBkYXRhW2RiS2V5XTsNCiAgICAgICAgICAgIHZhciB4bWxUdiA9IG5ldyBYTUxUVkZpbGUoKTsNCiAgICAgICAgICAgIGNvbnN0IHhtbFR2RmlsZVNlbGVjdCA9IHhtbFR2LmdldEZpbGVzKGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIHhtbFR2RmlsZVNlbGVjdC5zZXRBdHRyaWJ1dGUoJ25hbWUnLCBkYktleSk7DQogICAgICAgICAgICB4bWxUdkZpbGVTZWxlY3Quc2V0QXR0cmlidXRlKCdpZCcsICdwb3B1cC14bWx0dicpOw0KICAgICAgICAgICAgeG1sVHZGaWxlU2VsZWN0LnNldEF0dHJpYnV0ZSgnb25jaGFuZ2UnLCBgamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCc7IHNldFhtbHR2Q2hhbm5lbCgnJHtpZH0nLCB0aGlzKTtgKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCd7ey5tYXBwaW5nLnhtbHR2RmlsZS50aXRsZX19JywgeG1sVHZGaWxlU2VsZWN0KTsNCiAgICAgICAgICAgIC8vIFhNTFRWIE1hcHBpbmcNCiAgICAgICAgICAgIHZhciBkYktleSA9ICd4LW1hcHBpbmcnOw0KICAgICAgICAgICAgdmFyIHhtbFR2ID0gbmV3IFhNTFRWRmlsZSgpOw0KICAgICAgICAgICAgY29uc3QgY3VycmVudFhtbFR2SWQgPSBkYXRhW2RiS2V5XTsNCiAgICAgICAgICAgIGNvbnN0IFt4bWxUdklkQ29udGFpbmVyLCB4bWxUdklkSW5wdXQsIHhtbFR2SWREYXRhbGlzdF0gPSB4bWxUdi5uZXdYbWxUdklkUGlja2VyKHhtbFR2RmlsZSwgY3VycmVudFhtbFR2SWQpOw0KICAgICAgICAgICAgeG1sVHZJZENvbnRhaW5lci5zZXRBdHRyaWJ1dGUoJ2lkJywgJ3htbHR2LWlkLXBpY2tlci1jb250YWluZXInKTsNCiAgICAgICAgICAgIHhtbFR2SWRJbnB1dC5zZXRBdHRyaWJ1dGUoJ2xpc3QnLCAneG1sdHYtaWQtcGlja2VyLWRhdGFsaXN0Jyk7DQogICAgICAgICAgICB4bWxUdklkSW5wdXQuc2V0QXR0cmlidXRlKCduYW1lJywgJ3gtbWFwcGluZycpOyAvLyBTaG91bGQgc3RheSB4LW1hcHBpbmcgYXMgaXQgd2lsbCBiZSB1c2VkIGluIGRvbmVQb3B1cERhdGEgdG8gbWFrZSBhIHNlcnZlciByZXF1ZXN0DQogICAgICAgICAgICB4bWxUdklkSW5wdXQuc2V0QXR0cmlidXRlKCdpZCcsICd4bWx0di1pZC1waWNrZXItaW5wdXQnKTsNCiAgICAgICAgICAgIHhtbFR2SWRJbnB1dC5zZXRBdHRyaWJ1dGUoJ29uY2hhbmdlJywgYGphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnOyBjaGVja1htbHR2Q2hhbm5lbCgnJHtpZH0nLCB0aGlzLnZhbHVlLCAnJHt4bWxUdkZpbGV9Jyk7YCk7DQogICAgICAgICAgICB4bWxUdklkRGF0YWxpc3Quc2V0QXR0cmlidXRlKCdpZCcsICd4bWx0di1pZC1waWNrZXItZGF0YWxpc3QnKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCd7ey5tYXBwaW5nLnhtbHR2Q2hhbm5lbC50aXRsZX19JywgeG1sVHZJZENvbnRhaW5lcik7DQogICAgICAgICAgICAvLyBUaW1lc2hpZnQNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJ4LXRpbWVzaGlmdCI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3subWFwcGluZy50aW1lc2hpZnQucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJpZCIsICJ0aW1lc2hpZnQiKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5tYXBwaW5nLnRpbWVzaGlmdC50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgLy8gSW50ZXJhY3Rpb24NCiAgICAgICAgICAgIGNvbnRlbnQuY3JlYXRlSW50ZXJhY3Rpb24oKTsNCiAgICAgICAgICAgIC8vIFVwbG9hZCBsb2dvDQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAiY2FuY2VsIiwgInt7LmJ1dHRvbi51cGxvYWRMb2dvfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiB1cGxvYWRMb2dvKCk7Jyk7DQogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIC8vIEFib3J0DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAiY2FuY2VsIiwgInt7LmJ1dHRvbi5jYW5jZWx9fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IHNob3dFbGVtZW50KCJwb3B1cCIsIGZhbHNlKTsnKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgLy8gRmluaXNoZWQNCiAgICAgICAgICAgIHZhciBpZHMgPSBbXTsNCiAgICAgICAgICAgIGlkcyA9IGdldEFsbFNlbGVjdGVkQ2hhbm5lbHMoKTsNCiAgICAgICAgICAgIGlmIChpZHMubGVuZ3RoID09IDApIHsNCiAgICAgICAgICAgICAgICBpZHMucHVzaChpZCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAic2F2ZSIsICJ7ey5idXR0b24uZG9uZX19Iik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogZG9uZVBvcHVwRGF0YSgiJyArIGRhdGFUeXBlICsgJyIsICInICsgaWRzICsgJyIsICJmYWxzZSIpOycpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgIGJyZWFrOw0KICAgIH0NCiAgICBzaG93UG9wVXBFbGVtZW50KCdwb3B1cC1jdXN0b20nKTsNCn0NCmNsYXNzIFhNTFRWRmlsZSB7DQogICAgZ2V0RmlsZXMoc2V0KSB7DQogICAgICAgIGxldCBmaWxlSURzID0gZ2V0T3duT2JqUHJvcHMoU0VSVkVSWyJ4ZXBnIl1bInhtbHR2TWFwIl0pOw0KICAgICAgICBsZXQgdmFsdWVzID0gbmV3IEFycmF5KCItIik7DQogICAgICAgIGxldCB0ZXh0ID0gbmV3IEFycmF5KCItIik7DQogICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgZmlsZUlEcy5sZW5ndGg7IGkrKykgew0KICAgICAgICAgICAgaWYgKGZpbGVJRHNbaV0gIT0gInhUZVZlIER1bW15Iikgew0KICAgICAgICAgICAgICAgIHZhbHVlcy5wdXNoKGdldFZhbHVlRnJvbVByb3ZpZGVyRmlsZShmaWxlSURzW2ldLCAieG1sdHYiLCAiZmlsZS54dGV2ZSIpKTsNCiAgICAgICAgICAgICAgICB0ZXh0LnB1c2goZ2V0VmFsdWVGcm9tUHJvdmlkZXJGaWxlKGZpbGVJRHNbaV0sICJ4bWx0diIsICJuYW1lIikpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgZWxzZSB7DQogICAgICAgICAgICAgICAgdmFsdWVzLnB1c2goZmlsZUlEc1tpXSk7DQogICAgICAgICAgICAgICAgdGV4dC5wdXNoKGZpbGVJRHNbaV0pOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQogICAgICAgIGxldCBzZWxlY3QgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJTRUxFQ1QiKTsNCiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0ZXh0Lmxlbmd0aDsgaSsrKSB7DQogICAgICAgICAgICB2YXIgb3B0aW9uID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiT1BUSU9OIik7DQogICAgICAgICAgICBvcHRpb24uc2V0QXR0cmlidXRlKCJ2YWx1ZSIsIHZhbHVlc1tpXSk7DQogICAgICAgICAgICBvcHRpb24uaW5uZXJUZXh0ID0gdGV4dFtpXTsNCiAgICAgICAgICAgIHNlbGVjdC5hcHBlbmRDaGlsZChvcHRpb24pOw0KICAgICAgICB9DQogICAgICAgIGlmIChzZXQgIT0gIiIpIHsNCiAgICAgICAgICAgIHNlbGVjdC52YWx1ZSA9IHNldDsNCiAgICAgICAgfQ0KICAgICAgICByZXR1cm4gc2VsZWN0Ow0KICAgIH0NCiAgICAvKioNCiAgICAgKiBAcGFyYW0geG1sVHZGaWxlIFhNTCBmaWxlIHBhdGggdG8gZ2V0IEVQRyBmcm9tLg0KICAgICAqIEBwYXJhbSBjdXJyZW50WG1sVHZJZCBDdXJyZW50IFhNTFRWIElEIHRvIHNldCBpbml0aWFsIGlucHV0IHZhbHVlIHRvLg0KICAgICAqIEByZXR1cm5zIEFycmF5IG9mLCBzZXF1ZW50aWFsbHk6DQogICAgICogMSkgQ29udGFpbmVyIG9mIHRoZSBwaWNrZXIuDQogICAgICogMikgSW5wdXQgZmllbGQgdG8gdHlwZSBhdCBhbmQgZ2V0IGNob2ljZSBmcm9tLg0KICAgICAqIDMpIERhdGFsaXN0IGNvbnRhaW5pbmcgZXZlcnkgb3B0aW9uLg0KICAgICAqLw0KICAgIG5ld1htbFR2SWRQaWNrZXIoeG1sVHZGaWxlLCBjdXJyZW50WG1sVHZJZCkgew0KICAgICAgICBjb25zdCBjb250YWluZXIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsNCiAgICAgICAgY29uc3QgaW5wdXQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdpbnB1dCcpOw0KICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoJ3R5cGUnLCAndGV4dCcpOw0KICAgICAgICAvLyBJbml0aWFsbHksIHNldCB2YWx1ZSB0byAnLScgaWYgaW5wdXQgaXMgZW1wdHkNCiAgICAgICAgaW5wdXQudmFsdWUgPSAoY3VycmVudFhtbFR2SWQpID8gY3VycmVudFhtbFR2SWQgOiAnLSc7DQogICAgICAgIC8vIFdoZW4gaW5wdXQgaXMgZm9jdXNlZCwgcmVtb3ZlICctJyBmcm9tIGl0DQogICAgICAgIGlucHV0LmFkZEV2ZW50TGlzdGVuZXIoJ2ZvY3VzJywgKGV2dCkgPT4gew0KICAgICAgICAgICAgY29uc3QgdGFyZ2V0ID0gZXZ0LnRhcmdldDsNCiAgICAgICAgICAgIHRhcmdldC52YWx1ZSA9ICh0YXJnZXQudmFsdWUgPT09ICctJykgPyAnJyA6IHRhcmdldC52YWx1ZTsNCiAgICAgICAgfSk7DQogICAgICAgIC8vIFdoZW4gaW5wdXQgbG9zZSBmb2N1cyBvciB0YWtlIGEgdmFsdWUsIGlmIGl0J3MgZW1wdHksIHNldCB2YWx1ZSB0byAnLScNCiAgICAgICAgaW5wdXQuYWRkRXZlbnRMaXN0ZW5lcignYmx1cicsIHNldEZhbGxiYWNrVmFsdWUpOw0KICAgICAgICBpbnB1dC5hZGRFdmVudExpc3RlbmVyKCdjaGFuZ2UnLCBzZXRGYWxsYmFja1ZhbHVlKTsNCiAgICAgICAgZnVuY3Rpb24gc2V0RmFsbGJhY2tWYWx1ZShldnQpIHsNCiAgICAgICAgICAgIGNvbnN0IHRhcmdldCA9IGV2dC50YXJnZXQ7DQogICAgICAgICAgICB0YXJnZXQudmFsdWUgPSAodGFyZ2V0LnZhbHVlKSA/IHRhcmdldC52YWx1ZSA6ICctJzsNCiAgICAgICAgfQ0KICAgICAgICBjb250YWluZXIuYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICBjb25zdCBkYXRhbGlzdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RhdGFsaXN0Jyk7DQogICAgICAgIGNvbnN0IG9wdGlvbiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ29wdGlvbicpOw0KICAgICAgICBvcHRpb24uc2V0QXR0cmlidXRlKCd2YWx1ZScsICctJyk7DQogICAgICAgIG9wdGlvbi5pbm5lclRleHQgPSAnLSc7DQogICAgICAgIGRhdGFsaXN0LmFwcGVuZENoaWxkKG9wdGlvbik7DQogICAgICAgIGNvbnN0IGVwZyA9IFNFUlZFUlsneGVwZyddWyd4bWx0dk1hcCddW3htbFR2RmlsZV07DQogICAgICAgIGlmIChlcGcpIHsNCiAgICAgICAgICAgIGNvbnN0IHByb2dyYW1JZHMgPSBnZXRPd25PYmpQcm9wcyhlcGcpOw0KICAgICAgICAgICAgcHJvZ3JhbUlkcy5mb3JFYWNoKChwcm9ncmFtSWQpID0+IHsNCiAgICAgICAgICAgICAgICBjb25zdCBwcm9ncmFtID0gZXBnW3Byb2dyYW1JZF07DQogICAgICAgICAgICAgICAgaWYgKHByb2dyYW0uaGFzT3duUHJvcGVydHkoJ2Rpc3BsYXktbmFtZXMnKSkgew0KICAgICAgICAgICAgICAgICAgICBwcm9ncmFtWydkaXNwbGF5LW5hbWVzJ10uZm9yRWFjaCgoZGlzcGxheU5hbWUpID0+IHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IG9wdGlvbiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ29wdGlvbicpOw0KICAgICAgICAgICAgICAgICAgICAgICAgb3B0aW9uLnNldEF0dHJpYnV0ZSgndmFsdWUnLCBwcm9ncmFtSWQpOw0KICAgICAgICAgICAgICAgICAgICAgICAgb3B0aW9uLmlubmVyVGV4dCA9IGRpc3BsYXlOYW1lWydWYWx1ZSddOw0KICAgICAgICAgICAgICAgICAgICAgICAgZGF0YWxpc3QuYXBwZW5kQ2hpbGQob3B0aW9uKTsNCiAgICAgICAgICAgICAgICAgICAgfSk7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgICAgICAgICBjb25zdCBvcHRpb24gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdvcHRpb24nKTsNCiAgICAgICAgICAgICAgICAgICAgb3B0aW9uLnNldEF0dHJpYnV0ZSgndmFsdWUnLCBwcm9ncmFtSWQpOw0KICAgICAgICAgICAgICAgICAgICBvcHRpb24uaW5uZXJUZXh0ID0gJy0nOw0KICAgICAgICAgICAgICAgICAgICBkYXRhbGlzdC5hcHBlbmRDaGlsZChvcHRpb24pOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0pOw0KICAgICAgICB9DQogICAgICAgIGNvbnRhaW5lci5hcHBlbmRDaGlsZChkYXRhbGlzdCk7DQogICAgICAgIHJldHVybiBbY29udGFpbmVyLCBpbnB1dCwgZGF0YWxpc3RdOw0KICAgIH0NCn0NCmZ1bmN0aW9uIGdldFZhbHVlRnJvbVByb3ZpZGVyRmlsZShmaWxlLCBmaWxlVHlwZSwga2V5KSB7DQogICAgaWYgKGZpbGUgPT0gInhUZVZlIER1bW15Iikgew0KICAgICAgICByZXR1cm4gZmlsZTsNCiAgICB9DQogICAgbGV0IGZpbGVJRDsNCiAgICBsZXQgaW5kaWNhdG9yID0gZmlsZS5jaGFyQXQoMCk7DQogICAgc3dpdGNoIChpbmRpY2F0b3IpIHsNCiAgICAgICAgY2FzZSAiTSI6DQogICAgICAgICAgICBmaWxlVHlwZSA9ICJtM3UiOw0KICAgICAgICAgICAgZmlsZUlEID0gZmlsZTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJIIjoNCiAgICAgICAgICAgIGZpbGVUeXBlID0gImhkaHIiOw0KICAgICAgICAgICAgZmlsZUlEID0gZmlsZTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJYIjoNCiAgICAgICAgICAgIGZpbGVUeXBlID0gInhtbHR2IjsNCiAgICAgICAgICAgIGZpbGVJRCA9IGZpbGUuc3Vic3RyaW5nKDAsIGZpbGUubGFzdEluZGV4T2YoJy4nKSk7DQogICAgICAgICAgICBicmVhazsNCiAgICB9DQogICAgaWYgKFNFUlZFUlsic2V0dGluZ3MiXVsiZmlsZXMiXVtmaWxlVHlwZV0uaGFzT3duUHJvcGVydHkoZmlsZUlEKSA9PSB0cnVlKSB7DQogICAgICAgIHZhciBkYXRhID0gU0VSVkVSWyJzZXR0aW5ncyJdWyJmaWxlcyJdW2ZpbGVUeXBlXVtmaWxlSURdOw0KICAgICAgICByZXR1cm4gZGF0YVtrZXldOw0KICAgIH0NCiAgICByZXR1cm47DQp9DQpmdW5jdGlvbiBzZXRYbWx0dkNoYW5uZWwoZXBnTWFwSWQsIHhtbFR2RmlsZVNlbGVjdCkgew0KICAgIGNvbnN0IHhtbFR2ID0gbmV3IFhNTFRWRmlsZSgpOw0KICAgIGNvbnN0IG5ld1htbFR2RmlsZSA9IHhtbFR2RmlsZVNlbGVjdC52YWx1ZTsNCiAgICAvLyBSZW1vdmUgb2xkIFhNTFRWIElEIHNlbGVjdGlvbiBib3gNCiAgICBjb25zdCB4bWxUdklkUGlja2VyUGFyZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3htbHR2LWlkLXBpY2tlci1jb250YWluZXInKS5wYXJlbnRFbGVtZW50Ow0KICAgIHhtbFR2SWRQaWNrZXJQYXJlbnQuaW5uZXJIVE1MID0gJyc7DQogICAgLy8gQ3JlYXRlIG5ldyBYTUxUViBJRCBzZWxlY3Rpb24gYm94DQogICAgY29uc3QgdHZnSWQgPSBTRVJWRVJbJ3hlcGcnXVsnZXBnTWFwcGluZyddW2VwZ01hcElkXVsndHZnLWlkJ107DQogICAgY29uc3QgW3htbFR2SWRDb250YWluZXIsIHhtbFR2SWRJbnB1dCwgeG1sVHZJZERhdGFsaXN0XSA9IHhtbFR2Lm5ld1htbFR2SWRQaWNrZXIobmV3WG1sVHZGaWxlLCB0dmdJZCk7DQogICAgeG1sVHZJZENvbnRhaW5lci5zZXRBdHRyaWJ1dGUoJ2lkJywgJ3htbHR2LWlkLXBpY2tlci1jb250YWluZXInKTsNCiAgICB4bWxUdklkSW5wdXQuc2V0QXR0cmlidXRlKCdsaXN0JywgJ3htbHR2LWlkLXBpY2tlci1kYXRhbGlzdCcpOw0KICAgIHhtbFR2SWRJbnB1dC5zZXRBdHRyaWJ1dGUoJ25hbWUnLCAneC1tYXBwaW5nJyk7IC8vIFNob3VsZCBzdGF5IHgtbWFwcGluZyBhcyBpdCB3aWxsIGJlIHVzZWQgaW4gZG9uZVBvcHVwRGF0YSB0byBtYWtlIGEgc2VydmVyIHJlcXVlc3QNCiAgICB4bWxUdklkSW5wdXQuc2V0QXR0cmlidXRlKCdpZCcsICd4bWx0di1pZC1waWNrZXItaW5wdXQnKTsNCiAgICB4bWxUdklkSW5wdXQuc2V0QXR0cmlidXRlKCdvbmNoYW5nZScsIGBqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJzsgY2hlY2tYbWx0dkNoYW5uZWwoJyR7ZXBnTWFwSWR9JywgdGhpcy52YWx1ZSwgJyR7bmV3WG1sVHZGaWxlfScpO2ApOw0KICAgIHhtbFR2SWRJbnB1dC5jbGFzc0xpc3QuYWRkKCdjaGFuZ2VkJyk7DQogICAgeG1sVHZJZERhdGFsaXN0LnNldEF0dHJpYnV0ZSgnaWQnLCAneG1sdHYtaWQtcGlja2VyLWRhdGFsaXN0Jyk7DQogICAgLy8gQWRkIG5ldyBYTUxUViBJRCBzZWxlY3Rpb24gYm94IHRvIGl0J3MgcGFyZW50DQogICAgeG1sVHZJZFBpY2tlclBhcmVudC5hcHBlbmRDaGlsZCh4bWxUdklkQ29udGFpbmVyKTsNCiAgICBjaGVja1htbHR2Q2hhbm5lbChlcGdNYXBJZCwgeG1sVHZJZElucHV0LnZhbHVlLCBuZXdYbWxUdkZpbGUpOw0KfQ0KZnVuY3Rpb24gY2hlY2tYbWx0dkNoYW5uZWwoZXBnTWFwSWQsIG5ld1htbFR2SWQsIHhtbFR2RmlsZSkgew0KICAgIGNvbnN0IGNoYW5uZWxBY3RpdmVDYiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdhY3RpdmUnKTsNCiAgICBjb25zdCBjaGFubmVsQWN0aXZlID0gbmV3WG1sVHZJZCAhPSAnLSc7DQogICAgY2hhbm5lbEFjdGl2ZUNiLmNoZWNrZWQgPSBjaGFubmVsQWN0aXZlOw0KICAgIGNoYW5uZWxBY3RpdmVDYi5jbGFzc05hbWUgPSAnY2hhbmdlZCc7DQogICAgaWYgKHhtbFR2RmlsZSAhPSAneFRlVmUgRHVtbXknICYmIGNoYW5uZWxBY3RpdmUgPT0gdHJ1ZSkgew0KICAgICAgICBjaGFuZ2VDaGFubmVsTG9nbyhlcGdNYXBJZCk7DQogICAgICAgIHJldHVybjsNCiAgICB9DQogICAgaWYgKHhtbFR2RmlsZSA9PSAneFRlVmUgRHVtbXknKSB7DQogICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd1cGRhdGUtaWNvbicpLmNoZWNrZWQgPSBmYWxzZTsNCiAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3VwZGF0ZS1pY29uJykuY2xhc3NOYW1lID0gJ2NoYW5nZWQnOw0KICAgIH0NCn0NCmZ1bmN0aW9uIGNoYW5nZUNoYW5uZWxMb2dvKGVwZ01hcElkKSB7DQogICAgY29uc3QgY2hhbm5lbCA9IFNFUlZFUlsneGVwZyddWydlcGdNYXBwaW5nJ11bZXBnTWFwSWRdOw0KICAgIGNvbnN0IHhtbFR2RmlsZVNlbGVjdCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdwb3B1cC14bWx0dicpOw0KICAgIGNvbnN0IHhtbFR2RmlsZSA9IHhtbFR2RmlsZVNlbGVjdC5vcHRpb25zW3htbFR2RmlsZVNlbGVjdC5zZWxlY3RlZEluZGV4XS52YWx1ZTsNCiAgICBjb25zdCB4bWxUdklkSW5wdXQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgneG1sdHYtaWQtcGlja2VyLWlucHV0Jyk7DQogICAgY29uc3QgbmV3WG1sVHZJZCA9IHhtbFR2SWRJbnB1dC52YWx1ZTsNCiAgICBjb25zdCB1cGRhdGVMb2dvID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3VwZGF0ZS1pY29uJykuY2hlY2tlZDsNCiAgICBsZXQgbG9nbzsNCiAgICBpZiAodXBkYXRlTG9nbyA9PSB0cnVlICYmIHhtbFR2RmlsZSAhPSAneFRlVmUgRHVtbXknKSB7DQogICAgICAgIGlmIChTRVJWRVJbJ3hlcGcnXVsneG1sdHZNYXAnXVt4bWxUdkZpbGVdLmhhc093blByb3BlcnR5KG5ld1htbFR2SWQpKSB7DQogICAgICAgICAgICBsb2dvID0gU0VSVkVSWyd4ZXBnJ11bJ3htbHR2TWFwJ11beG1sVHZGaWxlXVtuZXdYbWxUdklkXVsnaWNvbiddOw0KICAgICAgICB9DQogICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgbG9nbyA9IGNoYW5uZWxbJ3R2Zy1sb2dvJ107DQogICAgICAgIH0NCiAgICAgICAgdmFyIGxvZ29JbnB1dCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjaGFubmVsLWljb24nKTsNCiAgICAgICAgbG9nb0lucHV0LnZhbHVlID0gbG9nbzsNCiAgICAgICAgaWYgKEJVTEtfRURJVCA9PSBmYWxzZSkgew0KICAgICAgICAgICAgbG9nb0lucHV0LmNsYXNzTmFtZSA9ICdjaGFuZ2VkJzsNCiAgICAgICAgfQ0KICAgIH0NCn0NCmZ1bmN0aW9uIHNhdmVQb3B1cERhdGEoZGF0YVR5cGUsIGlkLCByZW1vdmUsIG9wdGlvbikgew0KICAgIGlmIChkYXRhVHlwZSA9PSAibWFwcGluZyIpIHsNCiAgICAgICAgbGV0IGRhdGEgPSB7fTsNCiAgICAgICAgbGV0IGNtZCA9ICJzYXZlRXBnTWFwcGluZyI7DQogICAgICAgIGRhdGFbImVwZ01hcHBpbmciXSA9IFNFUlZFUlsieGVwZyJdWyJlcGdNYXBwaW5nIl07DQogICAgICAgIGxldCBzZXJ2ZXIgPSBuZXcgU2VydmVyKGNtZCk7DQogICAgICAgIHNlcnZlci5yZXF1ZXN0KGRhdGEpOw0KICAgICAgICBkZWxldGUgVU5ET1siZXBnTWFwcGluZyJdOw0KICAgICAgICByZXR1cm47DQogICAgfQ0KICAgIGxldCBkaXYgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicG9wdXAtY3VzdG9tIik7DQogICAgbGV0IGlucHV0cyA9IGRpdi5nZXRFbGVtZW50c0J5VGFnTmFtZSgiVEFCTEUiKVswXS5nZXRFbGVtZW50c0J5VGFnTmFtZSgiSU5QVVQiKTsNCiAgICBsZXQgc2VsZWN0cyA9IGRpdi5nZXRFbGVtZW50c0J5VGFnTmFtZSgiVEFCTEUiKVswXS5nZXRFbGVtZW50c0J5VGFnTmFtZSgiU0VMRUNUIik7DQogICAgbGV0IGlucHV0ID0ge307DQogICAgbGV0IGNvbmZpcm1Nc2c7DQogICAgZm9yIChsZXQgaSA9IDA7IGkgPCBzZWxlY3RzLmxlbmd0aDsgaSsrKSB7DQogICAgICAgIHZhciBuYW1lOw0KICAgICAgICBuYW1lID0gc2VsZWN0c1tpXS5uYW1lOw0KICAgICAgICB2YXIgdmFsdWUgPSBzZWxlY3RzW2ldLnZhbHVlOw0KICAgICAgICBzd2l0Y2ggKG5hbWUpIHsNCiAgICAgICAgICAgIGNhc2UgInR1bmVyIjoNCiAgICAgICAgICAgICAgICBpbnB1dFtuYW1lXSA9IHBhcnNlSW50KHZhbHVlKTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICAgICAgaW5wdXRbbmFtZV0gPSB2YWx1ZTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgfQ0KICAgIH0NCiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGlucHV0cy5sZW5ndGg7IGkrKykgew0KICAgICAgICBzd2l0Y2ggKGlucHV0c1tpXS50eXBlKSB7DQogICAgICAgICAgICBjYXNlICJjaGVja2JveCI6DQogICAgICAgICAgICAgICAgbmFtZSA9IGlucHV0c1tpXS5uYW1lOw0KICAgICAgICAgICAgICAgIGlucHV0W25hbWVdID0gaW5wdXRzW2ldLmNoZWNrZWQ7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ0ZXh0IjoNCiAgICAgICAgICAgIGNhc2UgImhpZGRlbiI6DQogICAgICAgICAgICBjYXNlICJwYXNzd29yZCI6DQogICAgICAgICAgICAgICAgbmFtZSA9IGlucHV0c1tpXS5uYW1lOw0KICAgICAgICAgICAgICAgIHN3aXRjaCAobmFtZSkgew0KICAgICAgICAgICAgICAgICAgICBjYXNlICJ0dW5lciI6DQogICAgICAgICAgICAgICAgICAgICAgICBpbnB1dFtuYW1lXSA9IHBhcnNlSW50KGlucHV0c1tpXS52YWx1ZSk7DQogICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgICAgICAgICAgICAgIGlucHV0W25hbWVdID0gaW5wdXRzW2ldLnZhbHVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICB9DQogICAgfQ0KICAgIGxldCBkYXRhID0ge307DQogICAgbGV0IGNtZDsNCiAgICBpZiAocmVtb3ZlID09IHRydWUpIHsNCiAgICAgICAgaW5wdXRbImRlbGV0ZSJdID0gdHJ1ZTsNCiAgICB9DQogICAgc3dpdGNoIChkYXRhVHlwZSkgew0KICAgICAgICBjYXNlICJ1c2VycyI6DQogICAgICAgICAgICBjb25maXJtTXNnID0gIkRlbGV0ZSB0aGlzIHVzZXI/IjsNCiAgICAgICAgICAgIGlmIChpZCA9PSAiLSIpIHsNCiAgICAgICAgICAgICAgICBjbWQgPSAic2F2ZU5ld1VzZXIiOw0KICAgICAgICAgICAgICAgIGRhdGFbInVzZXJEYXRhIl0gPSBpbnB1dDsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgICAgIGNtZCA9ICJzYXZlVXNlckRhdGEiOw0KICAgICAgICAgICAgICAgIGxldCBkID0ge307DQogICAgICAgICAgICAgICAgZFtpZF0gPSBpbnB1dDsNCiAgICAgICAgICAgICAgICBkYXRhWyJ1c2VyRGF0YSJdID0gZDsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJtM3UiOg0KICAgICAgICAgICAgY29uZmlybU1zZyA9ICJEZWxldGUgdGhpcyBwbGF5bGlzdD8iOw0KICAgICAgICAgICAgc3dpdGNoIChvcHRpb24pIHsNCiAgICAgICAgICAgICAgICAvLyBQb3B1cDogU2F2ZQ0KICAgICAgICAgICAgICAgIGNhc2UgMDoNCiAgICAgICAgICAgICAgICAgICAgY21kID0gInNhdmVGaWxlc00zVSI7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIC8vIFBvcHVwOiBVcGRhdGUNCiAgICAgICAgICAgICAgICBjYXNlIDE6DQogICAgICAgICAgICAgICAgICAgIGNtZCA9ICJ1cGRhdGVGaWxlTTNVIjsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBkYXRhWyJmaWxlcyJdID0ge307DQogICAgICAgICAgICBkYXRhWyJmaWxlcyJdW2RhdGFUeXBlXSA9IHt9Ow0KICAgICAgICAgICAgZGF0YVsiZmlsZXMiXVtkYXRhVHlwZV1baWRdID0gaW5wdXQ7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSAiaGRociI6DQogICAgICAgICAgICBjb25maXJtTXNnID0gIkRlbGV0ZSB0aGlzIEhESG9tZVJ1biB0dW5lcj8iOw0KICAgICAgICAgICAgc3dpdGNoIChvcHRpb24pIHsNCiAgICAgICAgICAgICAgICAvLyBQb3B1cDogU2F2ZQ0KICAgICAgICAgICAgICAgIGNhc2UgMDoNCiAgICAgICAgICAgICAgICAgICAgY21kID0gInNhdmVGaWxlc0hESFIiOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICAvLyBQb3B1cDogVXBkYXRlDQogICAgICAgICAgICAgICAgY2FzZSAxOg0KICAgICAgICAgICAgICAgICAgICBjbWQgPSAidXBkYXRlRmlsZUhESFIiOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGRhdGFbImZpbGVzIl0gPSB7fTsNCiAgICAgICAgICAgIGRhdGFbImZpbGVzIl1bZGF0YVR5cGVdID0ge307DQogICAgICAgICAgICBkYXRhWyJmaWxlcyJdW2RhdGFUeXBlXVtpZF0gPSBpbnB1dDsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJ4bWx0diI6DQogICAgICAgICAgICBjb25maXJtTXNnID0gIkRlbGV0ZSB0aGlzIFhNTFRWIGZpbGU/IjsNCiAgICAgICAgICAgIHN3aXRjaCAob3B0aW9uKSB7DQogICAgICAgICAgICAgICAgLy8gUG9wdXA6IFNhdmUNCiAgICAgICAgICAgICAgICBjYXNlIDA6DQogICAgICAgICAgICAgICAgICAgIGNtZCA9ICJzYXZlRmlsZXNYTUxUViI7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIC8vIFBvcHVwOiBVcGRhdGUNCiAgICAgICAgICAgICAgICBjYXNlIDE6DQogICAgICAgICAgICAgICAgICAgIGNtZCA9ICJ1cGRhdGVGaWxlWE1MVFYiOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGRhdGFbImZpbGVzIl0gPSB7fTsNCiAgICAgICAgICAgIGRhdGFbImZpbGVzIl1bZGF0YVR5cGVdID0ge307DQogICAgICAgICAgICBkYXRhWyJmaWxlcyJdW2RhdGFUeXBlXVtpZF0gPSBpbnB1dDsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJmaWx0ZXIiOg0KICAgICAgICAgICAgY29uZmlybU1zZyA9ICJEZWxldGUgdGhpcyBmaWx0ZXI/IjsNCiAgICAgICAgICAgIGNtZCA9ICJzYXZlRmlsdGVyIjsNCiAgICAgICAgICAgIGRhdGFbImZpbHRlciJdID0ge307DQogICAgICAgICAgICBkYXRhWyJmaWx0ZXIiXVtpZF0gPSBpbnB1dDsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBkZWZhdWx0Og0KICAgICAgICAgICAgcmV0dXJuOw0KICAgIH0NCiAgICBpZiAocmVtb3ZlID09IHRydWUpIHsNCiAgICAgICAgaWYgKCFjb25maXJtKGNvbmZpcm1Nc2cpKSB7DQogICAgICAgICAgICBzaG93RWxlbWVudCgicG9wdXAiLCBmYWxzZSk7DQogICAgICAgICAgICByZXR1cm47DQogICAgICAgIH0NCiAgICB9DQogICAgbGV0IHNlcnZlciA9IG5ldyBTZXJ2ZXIoY21kKTsNCiAgICBzZXJ2ZXIucmVxdWVzdChkYXRhKTsNCn0NCmZ1bmN0aW9uIGRvbmVQb3B1cERhdGEoZGF0YVR5cGUsIGlkc1N0cikgew0KICAgIGxldCBpZHMgPSBpZHNTdHIuc3BsaXQoJywnKTsNCiAgICBsZXQgZGl2ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInBvcHVwLWN1c3RvbSIpOw0KICAgIGxldCBpbnB1dHMgPSBkaXYuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSgiY2hhbmdlZCIpOw0KICAgIGlkcy5mb3JFYWNoKGlkID0+IHsNCiAgICAgICAgbGV0IGlucHV0Ow0KICAgICAgICBpbnB1dCA9IFNFUlZFUlsieGVwZyJdWyJlcGdNYXBwaW5nIl1baWRdOw0KICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGlucHV0cy5sZW5ndGg7IGkrKykgew0KICAgICAgICAgICAgbGV0IG5hbWU7DQogICAgICAgICAgICBsZXQgdmFsdWU7DQogICAgICAgICAgICBzd2l0Y2ggKGlucHV0c1tpXS50YWdOYW1lKSB7DQogICAgICAgICAgICAgICAgY2FzZSAiSU5QVVQiOg0KICAgICAgICAgICAgICAgICAgICBzd2l0Y2ggKGlucHV0c1tpXS50eXBlKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBjYXNlICJjaGVja2JveCI6DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZSA9IGlucHV0c1tpXS5uYW1lOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlID0gaW5wdXRzW2ldLmNoZWNrZWQ7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5wdXRbbmFtZV0gPSB2YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgInRleHQiOg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWUgPSBpbnB1dHNbaV0ubmFtZTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IGlucHV0c1tpXS52YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnB1dFtuYW1lXSA9IHZhbHVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgIlNFTEVDVCI6DQogICAgICAgICAgICAgICAgICAgIG5hbWUgPSBpbnB1dHNbaV0ubmFtZTsNCiAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSBpbnB1dHNbaV0udmFsdWU7DQogICAgICAgICAgICAgICAgICAgIGlucHV0W25hbWVdID0gdmFsdWU7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgc3dpdGNoIChuYW1lKSB7DQogICAgICAgICAgICAgICAgY2FzZSAidHZnLWxvZ28iOg0KICAgICAgICAgICAgICAgICAgICAvLyhkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkuY2hpbGROb2Rlc1syXS5maXJzdENoaWxkIGFzIEhUTUxFbGVtZW50KS5zZXRBdHRyaWJ1dGUoInNyYyIsIHZhbHVlKQ0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBjYXNlICJ4LW5hbWUiOg0KICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkuY2hpbGROb2Rlc1szXS5maXJzdENoaWxkLmlubmVySFRNTCA9IHZhbHVlOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBjYXNlICJ4LWNhdGVnb3J5IjoNCiAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpLmNoaWxkTm9kZXNbM10uZmlyc3RDaGlsZC5jbGFzc05hbWUgPSB2YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAieC1ncm91cC10aXRsZSI6DQogICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5jaGlsZE5vZGVzWzVdLmZpcnN0Q2hpbGQuaW5uZXJIVE1MID0gdmFsdWU7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgIngteG1sdHYtZmlsZSI6DQogICAgICAgICAgICAgICAgICAgIGlmICh2YWx1ZSAhPSAieFRlVmUgRHVtbXkiICYmIHZhbHVlICE9ICItIikgew0KICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSBnZXRWYWx1ZUZyb21Qcm92aWRlckZpbGUodmFsdWUsICJ4bWx0diIsICJuYW1lIik7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgaWYgKHZhbHVlID09ICItIikgew0KICAgICAgICAgICAgICAgICAgICAgICAgaW5wdXRbIngtYWN0aXZlIl0gPSBmYWxzZTsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkuY2hpbGROb2Rlc1s2XS5maXJzdENoaWxkLmlubmVySFRNTCA9IHZhbHVlOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBjYXNlICJ4LW1hcHBpbmciOg0KICAgICAgICAgICAgICAgICAgICBpZiAodmFsdWUgPT0gIi0iKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBpbnB1dFsieC1hY3RpdmUiXSA9IGZhbHNlOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5jaGlsZE5vZGVzWzddLmZpcnN0Q2hpbGQuaW5uZXJIVE1MID0gdmFsdWU7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgIngtdGltZXNoaWZ0IjoNCiAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpLmNoaWxkTm9kZXNbOF0uZmlyc3RDaGlsZC5pbm5lckhUTUwgPSB2YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGNyZWF0ZVNlYXJjaE9iaigpOw0KICAgICAgICAgICAgc2VhcmNoSW5NYXBwaW5nKCk7DQogICAgICAgIH0NCiAgICAgICAgaWYgKGlucHV0WyJ4LWFjdGl2ZSJdID09IGZhbHNlKSB7DQogICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkuY2xhc3NOYW1lID0gIm5vdEFjdGl2ZUVQRyI7DQogICAgICAgIH0NCiAgICAgICAgZWxzZSB7DQogICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkuY2xhc3NOYW1lID0gImFjdGl2ZUVQRyI7DQogICAgICAgIH0NCiAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpLmNoaWxkTm9kZXNbMl0uZmlyc3RDaGlsZC5zZXRBdHRyaWJ1dGUoInNyYyIsIGlucHV0WyJ0dmctbG9nbyJdKTsNCiAgICB9KTsNCiAgICBzaG93RWxlbWVudCgicG9wdXAiLCBmYWxzZSk7DQogICAgcmV0dXJuOw0KfQ0KZnVuY3Rpb24gc2hvd1ByZXZpZXcoZWxlbWVudCkgew0KICAgIGxldCBkaXYgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibXlTdHJlYW1zQm94Iik7DQogICAgc3dpdGNoIChlbGVtZW50KSB7DQogICAgICAgIGNhc2UgZmFsc2U6DQogICAgICAgICAgICBkaXYuY2xhc3NOYW1lID0gIm5vdFZpc2libGUiOw0KICAgICAgICAgICAgcmV0dXJuOw0KICAgIH0NCiAgICBsZXQgc3RyZWFtcyA9IFsiYWN0aXZlU3RyZWFtcyIsICJpbmFjdGl2ZVN0cmVhbXMiXTsNCiAgICBzdHJlYW1zLmZvckVhY2gocHJldmlldyA9PiB7DQogICAgICAgIGxldCB0YWJsZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHByZXZpZXcpOw0KICAgICAgICB0YWJsZS5pbm5lckhUTUwgPSAiIjsNCiAgICAgICAgbGV0IG9iaiA9IFNFUlZFUlsiZGF0YSJdWyJTdHJlYW1QcmV2aWV3VUkiXVtwcmV2aWV3XTsNCiAgICAgICAgb2JqLmZvckVhY2goY2hhbm5lbCA9PiB7DQogICAgICAgICAgICBsZXQgdHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJUUiIpOw0KICAgICAgICAgICAgbGV0IHRkS2V5ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgIGxldCB0ZFZhbCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICB0ZEtleS5jbGFzc05hbWUgPSAidGRLZXkiOw0KICAgICAgICAgICAgdGRWYWwuY2xhc3NOYW1lID0gInRkVmFsIjsNCiAgICAgICAgICAgIHN3aXRjaCAocHJldmlldykgew0KICAgICAgICAgICAgICAgIGNhc2UgImFjdGl2ZVN0cmVhbXMiOg0KICAgICAgICAgICAgICAgICAgICB0ZEtleS5pbm5lclRleHQgPSAiQ2hhbm5lbDogKCspIjsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAiaW5hY3RpdmVTdHJlYW1zIjoNCiAgICAgICAgICAgICAgICAgICAgdGRLZXkuaW5uZXJUZXh0ID0gIkNoYW5uZWw6ICgtKSI7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgdGRWYWwuaW5uZXJUZXh0ID0gY2hhbm5lbDsNCiAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKHRkS2V5KTsNCiAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKHRkVmFsKTsNCiAgICAgICAgICAgIHRhYmxlLmFwcGVuZENoaWxkKHRyKTsNCiAgICAgICAgfSk7DQogICAgfSk7DQogICAgc2hvd0VsZW1lbnQoImxvYWRpbmciLCBmYWxzZSk7DQogICAgZGl2LmNsYXNzTmFtZSA9ICJ2aXNpYmxlIjsNCiAgICByZXR1cm47DQp9DQo=" + webUI["html/js/menu_ts.js"] = "Y2xhc3MgTWFpbk1lbnUgew0KICAgIGNvbnN0cnVjdG9yKCkgew0KICAgICAgICB0aGlzLkRvY3VtZW50SUQgPSAibWFpbi1tZW51IjsNCiAgICAgICAgdGhpcy5IVE1MVGFnID0gIkxJIjsNCiAgICAgICAgdGhpcy5JbWFnZVBhdGggPSAiaW1nLyI7DQogICAgfQ0KICAgIGNyZWF0ZUlNRyhzcmMpIHsNCiAgICAgICAgbGV0IGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJJTUciKTsNCiAgICAgICAgZWxlbWVudC5zZXRBdHRyaWJ1dGUoInNyYyIsIHRoaXMuSW1hZ2VQYXRoICsgc3JjKTsNCiAgICAgICAgcmV0dXJuIGVsZW1lbnQ7DQogICAgfQ0KICAgIGNyZWF0ZVZhbHVlKHZhbHVlKSB7DQogICAgICAgIGxldCBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiUCIpOw0KICAgICAgICBlbGVtZW50LmlubmVySFRNTCA9IHZhbHVlOw0KICAgICAgICByZXR1cm4gZWxlbWVudDsNCiAgICB9DQp9DQpjbGFzcyBNYWluTWVudUl0ZW0gZXh0ZW5kcyBNYWluTWVudSB7DQogICAgY29uc3RydWN0b3IobWVudUtleSwgdmFsdWUsIGltYWdlLCBoZWFkbGluZSkgew0KICAgICAgICBzdXBlcigpOw0KICAgICAgICB0aGlzLm1lbnVLZXkgPSBtZW51S2V5Ow0KICAgICAgICB0aGlzLnZhbHVlID0gdmFsdWU7DQogICAgICAgIHRoaXMuaW1nU3JjID0gaW1hZ2U7DQogICAgICAgIHRoaXMuaGVhZGxpbmUgPSBoZWFkbGluZTsNCiAgICB9DQogICAgY3JlYXRlSXRlbSgpIHsNCiAgICAgICAgbGV0IGl0ZW0gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJMSSIpOw0KICAgICAgICBpdGVtLnNldEF0dHJpYnV0ZSgib25jbGljayIsICJqYXZhc2NyaXB0OiBvcGVuVGhpc01lbnUodGhpcykiKTsNCiAgICAgICAgaXRlbS5zZXRBdHRyaWJ1dGUoImlkIiwgdGhpcy5pZCk7DQogICAgICAgIGxldCBpbWcgPSB0aGlzLmNyZWF0ZUlNRyh0aGlzLmltZ1NyYyk7DQogICAgICAgIGxldCB2YWx1ZSA9IHRoaXMuY3JlYXRlVmFsdWUodGhpcy52YWx1ZSk7DQogICAgICAgIGl0ZW0uYXBwZW5kQ2hpbGQoaW1nKTsNCiAgICAgICAgaXRlbS5hcHBlbmRDaGlsZCh2YWx1ZSk7DQogICAgICAgIGxldCBkb2MgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCh0aGlzLkRvY3VtZW50SUQpOw0KICAgICAgICBkb2MuYXBwZW5kQ2hpbGQoaXRlbSk7DQogICAgICAgIHN3aXRjaCAodGhpcy5tZW51S2V5KSB7DQogICAgICAgICAgICBjYXNlICJwbGF5bGlzdCI6DQogICAgICAgICAgICAgICAgdGhpcy50YWJsZUhlYWRlciA9IFsie3sucGxheWxpc3QudGFibGUucGxheWxpc3R9fSIsICJ7ey5wbGF5bGlzdC50YWJsZS50dW5lcn19IiwgInt7LnBsYXlsaXN0LnRhYmxlLmxhc3RVcGRhdGV9fSIsICJ7ey5wbGF5bGlzdC50YWJsZS5hdmFpbGFiaWxpdHl9fSAlIiwgInt7LnBsYXlsaXN0LnRhYmxlLnR5cGV9fSIsICJ7ey5wbGF5bGlzdC50YWJsZS5zdHJlYW1zfX0iLCAie3sucGxheWxpc3QudGFibGUuZ3JvdXBUaXRsZX19ICUiLCAie3sucGxheWxpc3QudGFibGUudHZnSUR9fSAlIiwgInt7LnBsYXlsaXN0LnRhYmxlLnVuaXF1ZUlEfX0gJSJdOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAieG1sdHYiOg0KICAgICAgICAgICAgICAgIHRoaXMudGFibGVIZWFkZXIgPSBbInt7LnhtbHR2LnRhYmxlLmd1aWRlfX0iLCAie3sueG1sdHYudGFibGUubGFzdFVwZGF0ZX19IiwgInt7LnhtbHR2LnRhYmxlLmF2YWlsYWJpbGl0eX19ICUiLCAie3sueG1sdHYudGFibGUuY2hhbm5lbHN9fSIsICJ7ey54bWx0di50YWJsZS5wcm9ncmFtc319Il07DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJmaWx0ZXIiOg0KICAgICAgICAgICAgICAgIHRoaXMudGFibGVIZWFkZXIgPSBbInt7LmZpbHRlci50YWJsZS5zdGFydGluZ0NoYW5uZWx9fSIsICJ7ey5maWx0ZXIudGFibGUubmFtZX19IiwgInt7LmZpbHRlci50YWJsZS50eXBlfX0iLCAie3suZmlsdGVyLnRhYmxlLmZpbHRlcn19Il07DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ1c2VycyI6DQogICAgICAgICAgICAgICAgdGhpcy50YWJsZUhlYWRlciA9IFsie3sudXNlcnMudGFibGUudXNlcm5hbWV9fSIsICJ7ey51c2Vycy50YWJsZS5wYXNzd29yZH19IiwgInt7LnVzZXJzLnRhYmxlLndlYn19IiwgInt7LnVzZXJzLnRhYmxlLnBtc319IiwgInt7LnVzZXJzLnRhYmxlLm0zdX19IiwgInt7LnVzZXJzLnRhYmxlLnhtbH19IiwgInt7LnVzZXJzLnRhYmxlLmFwaX19Il07DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJtYXBwaW5nIjoNCiAgICAgICAgICAgICAgICB0aGlzLnRhYmxlSGVhZGVyID0gWyJCVUxLIiwgInt7Lm1hcHBpbmcudGFibGUuY2hOb319IiwgInt7Lm1hcHBpbmcudGFibGUubG9nb319IiwgInt7Lm1hcHBpbmcudGFibGUuY2hhbm5lbE5hbWV9fSIsICJ7ey5tYXBwaW5nLnRhYmxlLnBsYXlsaXN0fX0iLCAie3subWFwcGluZy50YWJsZS5ncm91cFRpdGxlfX0iLCAie3subWFwcGluZy50YWJsZS54bWx0dkZpbGV9fSIsICJ7ey5tYXBwaW5nLnRhYmxlLnhtbHR2SUR9fSIsICJ7ey5tYXBwaW5nLnRhYmxlLnRpbWVzaGlmdH19Il07DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIH0NCiAgICB9DQp9DQpjbGFzcyBDb250ZW50IHsNCiAgICBjb25zdHJ1Y3RvcigpIHsNCiAgICAgICAgdGhpcy5Eb2N1bWVudElEID0gImNvbnRlbnQiOw0KICAgICAgICB0aGlzLlRhYmxlSUQgPSAiY29udGVudF90YWJsZSI7DQogICAgICAgIHRoaXMuaGVhZGVyQ2xhc3MgPSAiY29udGVudF90YWJsZV9oZWFkZXIiOw0KICAgICAgICB0aGlzLmludGVyYWN0aW9uSUQgPSAiY29udGVudC1pbnRlcmFjdGlvbiI7DQogICAgfQ0KICAgIGNyZWF0ZUhlYWRsaW5lKHZhbHVlKSB7DQogICAgICAgIGxldCBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiSDMiKTsNCiAgICAgICAgZWxlbWVudC5pbm5lckhUTUwgPSB2YWx1ZTsNCiAgICAgICAgcmV0dXJuIGVsZW1lbnQ7DQogICAgfQ0KICAgIGNyZWF0ZUhSKCkgew0KICAgICAgICByZXR1cm4gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiSFIiKTsNCiAgICB9DQogICAgY3JlYXRlSW50ZXJhY3Rpb24oKSB7DQogICAgICAgIGxldCBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiRElWIik7DQogICAgICAgIGVsZW1lbnQuc2V0QXR0cmlidXRlKCJpZCIsIHRoaXMuaW50ZXJhY3Rpb25JRCk7DQogICAgICAgIHJldHVybiBlbGVtZW50Ow0KICAgIH0NCiAgICBjcmVhdGVESVYoKSB7DQogICAgICAgIGxldCBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiRElWIik7DQogICAgICAgIGVsZW1lbnQuaWQgPSB0aGlzLkRpdklEOw0KICAgICAgICByZXR1cm4gZWxlbWVudDsNCiAgICB9DQogICAgY3JlYXRlVEFCTEUoKSB7DQogICAgICAgIGxldCBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEFCTEUiKTsNCiAgICAgICAgZWxlbWVudC5pZCA9IHRoaXMuVGFibGVJRDsNCiAgICAgICAgcmV0dXJuIGVsZW1lbnQ7DQogICAgfQ0KICAgIGNyZWF0ZVRhYmxlUm93KCkgew0KICAgICAgICBsZXQgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlRSIik7DQogICAgICAgIGVsZW1lbnQuY2xhc3NOYW1lID0gdGhpcy5oZWFkZXJDbGFzczsNCiAgICAgICAgcmV0dXJuIGVsZW1lbnQ7DQogICAgfQ0KICAgIGNyZWF0ZVRhYmxlQ29udGVudChtZW51S2V5KSB7DQogICAgICAgIGxldCBkYXRhID0ge307DQogICAgICAgIGxldCByb3dzID0gW107DQogICAgICAgIGxldCBmaWxlVHlwZXMgPSBbXTsNCiAgICAgICAgc3dpdGNoIChtZW51S2V5KSB7DQogICAgICAgICAgICBjYXNlICJwbGF5bGlzdCI6DQogICAgICAgICAgICAgICAgZmlsZVR5cGVzID0gWyJtM3UiLCAiaGRociJdOw0KICAgICAgICAgICAgICAgIGZpbGVUeXBlcy5mb3JFYWNoKGZpbGVUeXBlID0+IHsNCiAgICAgICAgICAgICAgICAgICAgZGF0YSA9IFNFUlZFUlsic2V0dGluZ3MiXVsiZmlsZXMiXVtmaWxlVHlwZV07DQogICAgICAgICAgICAgICAgICAgIHZhciBrZXlzID0gZ2V0T3duT2JqUHJvcHMoZGF0YSk7DQogICAgICAgICAgICAgICAgICAgIGtleXMuZm9yRWFjaChrZXkgPT4gew0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVFIiKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmlkID0ga2V5Ow0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgiJyArIGZpbGVUeXBlICsgJyIsIHRoaXMpJyk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsibmFtZSJdOw0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChTRVJWRVJbInNldHRpbmdzIl1bImJ1ZmZlciJdICE9ICItIikgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bInR1bmVyIl07DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gIi0iOw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bImxhc3QudXBkYXRlIl07DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsicHJvdmlkZXIuYXZhaWxhYmlsaXR5Il07DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsidHlwZSJdLnRvVXBwZXJDYXNlKCk7DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsiY29tcGF0aWJpbGl0eSJdWyJzdHJlYW1zIl07DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsiY29tcGF0aWJpbGl0eSJdWyJncm91cC50aXRsZSJdOw0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bImNvbXBhdGliaWxpdHkiXVsidHZnLmlkIl07DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsiY29tcGF0aWJpbGl0eSJdWyJzdHJlYW0uaWQiXTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHJvd3MucHVzaCh0cik7DQogICAgICAgICAgICAgICAgICAgIH0pOw0KICAgICAgICAgICAgICAgIH0pOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiZmlsdGVyIjoNCiAgICAgICAgICAgICAgICBkZWxldGUgU0VSVkVSWyJzZXR0aW5ncyJdWyJmaWx0ZXIiXVstMV07DQogICAgICAgICAgICAgICAgZGF0YSA9IFNFUlZFUlsic2V0dGluZ3MiXVsiZmlsdGVyIl07DQogICAgICAgICAgICAgICAgdmFyIGtleXMgPSBnZXRPd25PYmpQcm9wcyhkYXRhKTsNCiAgICAgICAgICAgICAgICBrZXlzLmZvckVhY2goa2V5ID0+IHsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVFIiKTsNCiAgICAgICAgICAgICAgICAgICAgdHIuaWQgPSBrZXk7DQogICAgICAgICAgICAgICAgICAgIHRyLnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoIicgKyBkYXRhW2tleV1bInR5cGUiXSArICciLCB0aGlzKScpOw0KICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsic3RhcnRpbmdDaGFubmVsIl07DQogICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bIm5hbWUiXTsNCiAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgc3dpdGNoIChkYXRhW2tleV1bInR5cGUiXSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAiY3VzdG9tLWZpbHRlciI6DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9ICJ7ey5maWx0ZXIuY3VzdG9tfX0iOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAiZ3JvdXAtdGl0bGUiOg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSAie3suZmlsdGVyLmdyb3VwfX0iOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJmaWx0ZXIiXTsNCiAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICByb3dzLnB1c2godHIpOw0KICAgICAgICAgICAgICAgIH0pOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAieG1sdHYiOg0KICAgICAgICAgICAgICAgIGZpbGVUeXBlcyA9IG5ldyBBcnJheSgieG1sdHYiKTsNCiAgICAgICAgICAgICAgICBmaWxlVHlwZXMuZm9yRWFjaChmaWxlVHlwZSA9PiB7DQogICAgICAgICAgICAgICAgICAgIGRhdGEgPSBTRVJWRVJbInNldHRpbmdzIl1bImZpbGVzIl1bZmlsZVR5cGVdOw0KICAgICAgICAgICAgICAgICAgICB2YXIga2V5cyA9IGdldE93bk9ialByb3BzKGRhdGEpOw0KICAgICAgICAgICAgICAgICAgICBrZXlzLmZvckVhY2goa2V5ID0+IHsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciB0ciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlRSIik7DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5pZCA9IGtleTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoIicgKyBmaWxlVHlwZSArICciLCB0aGlzKScpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bIm5hbWUiXTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJsYXN0LnVwZGF0ZSJdOw0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bInByb3ZpZGVyLmF2YWlsYWJpbGl0eSJdOw0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bImNvbXBhdGliaWxpdHkiXVsieG1sdHYuY2hhbm5lbHMiXTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJjb21wYXRpYmlsaXR5Il1bInhtbHR2LnByb2dyYW1zIl07DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICByb3dzLnB1c2godHIpOw0KICAgICAgICAgICAgICAgICAgICB9KTsNCiAgICAgICAgICAgICAgICB9KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInVzZXJzIjoNCiAgICAgICAgICAgICAgICBmaWxlVHlwZXMgPSBuZXcgQXJyYXkoInVzZXJzIik7DQogICAgICAgICAgICAgICAgZmlsZVR5cGVzLmZvckVhY2goZmlsZVR5cGUgPT4gew0KICAgICAgICAgICAgICAgICAgICBkYXRhID0gU0VSVkVSW2ZpbGVUeXBlXTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGtleXMgPSBnZXRPd25PYmpQcm9wcyhkYXRhKTsNCiAgICAgICAgICAgICAgICAgICAga2V5cy5mb3JFYWNoKGtleSA9PiB7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgdHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJUUiIpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuaWQgPSBrZXk7DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCInICsgZmlsZVR5cGUgKyAnIiwgdGhpcyknKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJkYXRhIl1bInVzZXJuYW1lIl07DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9ICIqKioqKioiOw0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChkYXRhW2tleV1bImRhdGEiXVsiYXV0aGVudGljYXRpb24ud2ViIl0gPT0gdHJ1ZSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSAi4pyTIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSAiLSI7DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGRhdGFba2V5XVsiZGF0YSJdWyJhdXRoZW50aWNhdGlvbi5wbXMiXSA9PSB0cnVlKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9ICLinJMiOw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9ICItIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgICAgICBpZiAoZGF0YVtrZXldWyJkYXRhIl1bImF1dGhlbnRpY2F0aW9uLm0zdSJdID09IHRydWUpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gIuKckyI7DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gIi0iOw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChkYXRhW2tleV1bImRhdGEiXVsiYXV0aGVudGljYXRpb24ueG1sIl0gPT0gdHJ1ZSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSAi4pyTIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSAiLSI7DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGRhdGFba2V5XVsiZGF0YSJdWyJhdXRoZW50aWNhdGlvbi5hcGkiXSA9PSB0cnVlKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9ICLinJMiOw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9ICItIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHJvd3MucHVzaCh0cik7DQogICAgICAgICAgICAgICAgICAgIH0pOw0KICAgICAgICAgICAgICAgIH0pOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAibWFwcGluZyI6DQogICAgICAgICAgICAgICAgQlVMS19FRElUID0gZmFsc2U7DQogICAgICAgICAgICAgICAgY3JlYXRlU2VhcmNoT2JqKCk7DQogICAgICAgICAgICAgICAgY2hlY2tVbmRvKCJlcGdNYXBwaW5nIik7DQogICAgICAgICAgICAgICAgZGF0YSA9IFNFUlZFUlsieGVwZyJdWyJlcGdNYXBwaW5nIl07DQogICAgICAgICAgICAgICAgdmFyIGtleXMgPSBnZXRPd25PYmpQcm9wcyhkYXRhKTsNCiAgICAgICAgICAgICAgICBrZXlzLmZvckVhY2goa2V5ID0+IHsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVFIiKTsNCiAgICAgICAgICAgICAgICAgICAgdHIuaWQgPSBrZXk7DQogICAgICAgICAgICAgICAgICAgIHN3aXRjaCAoZGF0YVtrZXldWyJ4LWFjdGl2ZSJdKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBjYXNlIHRydWU6DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgdHIuY2xhc3NOYW1lID0gImFjdGl2ZUVQRyI7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgICAgICAgICBjYXNlIGZhbHNlOg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyLmNsYXNzTmFtZSA9ICJub3RBY3RpdmVFUEciOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIC8vIEJ1bGsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiQlVMSyI7DQogICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBmYWxzZTsNCiAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAvLyBDaGFubmVsIG51bWJlcg0KICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJJTlBVVENIQU5ORUwiOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJ4LWNoYW5uZWxJRCJdOw0KICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgIC8vIExvZ28NCiAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiSU1HIjsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5pbWFnZVVSTCA9IGRhdGFba2V5XVsidHZnLWxvZ28iXTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHRkID0gY2VsbC5jcmVhdGVDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgIHRkLnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoIm1hcHBpbmciLCB0aGlzKScpOw0KICAgICAgICAgICAgICAgICAgICB0ZC5pZCA9IGtleTsNCiAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQodGQpOw0KICAgICAgICAgICAgICAgICAgICAvLyBDaGFubmVsIG5hbWUNCiAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2xhc3NOYW1lID0gZGF0YVtrZXldWyJ4LWNhdGVnb3J5Il07DQogICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bIngtbmFtZSJdOw0KICAgICAgICAgICAgICAgICAgICB2YXIgdGQgPSBjZWxsLmNyZWF0ZUNlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgdGQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgibWFwcGluZyIsIHRoaXMpJyk7DQogICAgICAgICAgICAgICAgICAgIHRkLmlkID0ga2V5Ow0KICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZCh0ZCk7DQogICAgICAgICAgICAgICAgICAgIC8vIFBsYXlsaXN0DQogICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZ2V0VmFsdWVGcm9tUHJvdmlkZXJGaWxlKGRhdGFba2V5XVsiX2ZpbGUubTN1LmlkIl0sICJtM3UiLCAibmFtZSIpOw0KICAgICAgICAgICAgICAgICAgICB2YXIgdGQgPSBjZWxsLmNyZWF0ZUNlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgdGQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgibWFwcGluZyIsIHRoaXMpJyk7DQogICAgICAgICAgICAgICAgICAgIHRkLmlkID0ga2V5Ow0KICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZCh0ZCk7DQogICAgICAgICAgICAgICAgICAgIC8vIEdyb3VwIChncm91cC10aXRsZSkNCiAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bIngtZ3JvdXAtdGl0bGUiXTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHRkID0gY2VsbC5jcmVhdGVDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgIHRkLnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoIm1hcHBpbmciLCB0aGlzKScpOw0KICAgICAgICAgICAgICAgICAgICB0ZC5pZCA9IGtleTsNCiAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQodGQpOw0KICAgICAgICAgICAgICAgICAgICAvLyBYTUxUViBmaWxlDQogICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICBpZiAoZGF0YVtrZXldWyJ4LXhtbHR2LWZpbGUiXSAhPSAiLSIpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBnZXRWYWx1ZUZyb21Qcm92aWRlckZpbGUoZGF0YVtrZXldWyJ4LXhtbHR2LWZpbGUiXSwgInhtbHR2IiwgIm5hbWUiKTsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bIngteG1sdHYtZmlsZSJdOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIHZhciB0ZCA9IGNlbGwuY3JlYXRlQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICB0ZC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJtYXBwaW5nIiwgdGhpcyknKTsNCiAgICAgICAgICAgICAgICAgICAgdGQuaWQgPSBrZXk7DQogICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKHRkKTsNCiAgICAgICAgICAgICAgICAgICAgLy8gWE1MVFYgQ2hhbm5lbA0KICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHZhbHVlID0gZGF0YVtrZXldWyJ4LW1hcHBpbmciXTsNCiAgICAgICAgICAgICAgICAgICAgaWYgKHZhbHVlLmxlbmd0aCA+IDIwKSB7DQogICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IGRhdGFba2V5XVsieC1tYXBwaW5nIl0uc3Vic3RyaW5nKDAsIDIwKSArICIuLi4iOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSB2YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHRkID0gY2VsbC5jcmVhdGVDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgIHRkLnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoIm1hcHBpbmciLCB0aGlzKScpOw0KICAgICAgICAgICAgICAgICAgICB0ZC5pZCA9IGtleTsNCiAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQodGQpOw0KICAgICAgICAgICAgICAgICAgICAvLyBUaW1lU2hpZnQNCiAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bIngtdGltZXNoaWZ0Il07DQogICAgICAgICAgICAgICAgICAgIHZhciB0ZCA9IGNlbGwuY3JlYXRlQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICB0ZC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJtYXBwaW5nIiwgdGhpcyknKTsNCiAgICAgICAgICAgICAgICAgICAgdGQuaWQgPSBrZXk7DQogICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKHRkKTsNCiAgICAgICAgICAgICAgICAgICAgcm93cy5wdXNoKHRyKTsNCiAgICAgICAgICAgICAgICB9KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInNldHRpbmdzIjoNCiAgICAgICAgICAgICAgICBhbGVydCgpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgfQ0KICAgICAgICByZXR1cm4gcm93czsNCiAgICB9DQp9DQpjbGFzcyBDZWxsIHsNCiAgICBjcmVhdGVDZWxsKCkgew0KICAgICAgICBsZXQgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICBpZiAodGhpcy5jaGlsZCA9PSB0cnVlKSB7DQogICAgICAgICAgICB2YXIgZWxlbWVudDsNCiAgICAgICAgICAgIHN3aXRjaCAodGhpcy5jaGlsZFR5cGUpIHsNCiAgICAgICAgICAgICAgICBjYXNlICJQIjoNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQodGhpcy5jaGlsZFR5cGUpOw0KICAgICAgICAgICAgICAgICAgICBlbGVtZW50LmlubmVySFRNTCA9IHRoaXMudmFsdWU7DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQuY2xhc3NOYW1lID0gdGhpcy5jbGFzc05hbWU7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgIklOUFVUIjoNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQodGhpcy5jaGlsZFR5cGUpOw0KICAgICAgICAgICAgICAgICAgICBlbGVtZW50LnZhbHVlID0gdGhpcy52YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC50eXBlID0gInRleHQiOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBjYXNlICJJTlBVVENIQU5ORUwiOg0KICAgICAgICAgICAgICAgICAgICBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiSU5QVVQiKTsNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdnNjcmlwdDogY2hhbmdlQ2hhbm5lbE51bWJlcih0aGlzKSIpOw0KICAgICAgICAgICAgICAgICAgICBlbGVtZW50LnZhbHVlID0gdGhpcy52YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC50eXBlID0gInRleHQiOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBjYXNlICJCVUxLIjoNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIklOUFVUIik7DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQuY2hlY2tlZCA9IHRoaXMudmFsdWU7DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQudHlwZSA9ICJjaGVja2JveCI7DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQuY2xhc3NOYW1lID0gImJ1bGsgaGlkZUJ1bGsiOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBjYXNlICJCVUxLX0hFQUQiOg0KICAgICAgICAgICAgICAgICAgICBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiSU5QVVQiKTsNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC5jaGVja2VkID0gdGhpcy52YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC50eXBlID0gImNoZWNrYm94IjsNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC5jbGFzc05hbWUgPSAiYnVsayBoaWRlQnVsayI7DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgImphdmFzY3JpcHQ6IHNlbGVjdEFsbENoYW5uZWxzKCkiKTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAiSU1HIjoNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQodGhpcy5jaGlsZFR5cGUpOw0KICAgICAgICAgICAgICAgICAgICBlbGVtZW50LnNldEF0dHJpYnV0ZSgic3JjIiwgdGhpcy5pbWFnZVVSTCk7DQogICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLmltYWdlVVJMICE9ICIiKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBlbGVtZW50LnNldEF0dHJpYnV0ZSgib25lcnJvciIsICJqYXZhc2NyaXB0OiB0aGlzLm9uZXJyb3I9bnVsbDt0aGlzLnNyYz0nJyIpOw0KICAgICAgICAgICAgICAgICAgICAgICAgLy9vbmVycm9yPSJ0aGlzLm9uZXJyb3I9bnVsbDt0aGlzLnNyYz0nbWlzc2luZy5naWYnOyINCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgdGQuYXBwZW5kQ2hpbGQoZWxlbWVudCk7DQogICAgICAgIH0NCiAgICAgICAgZWxzZSB7DQogICAgICAgICAgICB0ZC5pbm5lckhUTUwgPSB0aGlzLnZhbHVlOw0KICAgICAgICB9DQogICAgICAgIGlmICh0aGlzLm9uY2xpY2sgPT0gdHJ1ZSkgew0KICAgICAgICAgICAgdGQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgdGhpcy5vbmNsaWNrRnVuY3Rpb24pOw0KICAgICAgICAgICAgdGQuY2xhc3NOYW1lID0gInBvaW50ZXIiOw0KICAgICAgICB9DQogICAgICAgIGlmICh0aGlzLnRkQ2xhc3NOYW1lICE9IHVuZGVmaW5lZCkgew0KICAgICAgICAgICAgdGQuY2xhc3NOYW1lID0gdGhpcy50ZENsYXNzTmFtZTsNCiAgICAgICAgfQ0KICAgICAgICByZXR1cm4gdGQ7DQogICAgfQ0KfQ0KY2xhc3MgU2hvd0NvbnRlbnQgZXh0ZW5kcyBDb250ZW50IHsNCiAgICBjb25zdHJ1Y3RvcihtZW51SUQpIHsNCiAgICAgICAgc3VwZXIoKTsNCiAgICAgICAgdGhpcy5tZW51SUQgPSBtZW51SUQ7DQogICAgfQ0KICAgIGNyZWF0ZUlucHV0KHR5cGUsIG5hbWUsIHZhbHVlKSB7DQogICAgICAgIGxldCBpbnB1dCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIklOUFVUIik7DQogICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgidHlwZSIsIHR5cGUpOw0KICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm5hbWUiLCBuYW1lKTsNCiAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJ2YWx1ZSIsIHZhbHVlKTsNCiAgICAgICAgcmV0dXJuIGlucHV0Ow0KICAgIH0NCiAgICBzaG93KCkgew0KICAgICAgICBDT0xVTU5fVE9fU09SVCA9IC0xOw0KICAgICAgICAvLyBEZWxldGUgb2xkIGNvbnRlbnQNCiAgICAgICAgbGV0IGRvYyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHRoaXMuRG9jdW1lbnRJRCk7DQogICAgICAgIGRvYy5pbm5lckhUTUwgPSAiIjsNCiAgICAgICAgc2hvd1ByZXZpZXcoZmFsc2UpOw0KICAgICAgICAvLyBIZWFkbGluZQ0KICAgICAgICBsZXQgaGVhZGxpbmUgPSBtZW51SXRlbXNbdGhpcy5tZW51SURdLmhlYWRsaW5lOw0KICAgICAgICBsZXQgbWVudUtleSA9IG1lbnVJdGVtc1t0aGlzLm1lbnVJRF0ubWVudUtleTsNCiAgICAgICAgbGV0IGggPSB0aGlzLmNyZWF0ZUhlYWRsaW5lKGhlYWRsaW5lKTsNCiAgICAgICAgZG9jLmFwcGVuZENoaWxkKGgpOw0KICAgICAgICBsZXQgaHIgPSB0aGlzLmNyZWF0ZUhSKCk7DQogICAgICAgIGRvYy5hcHBlbmRDaGlsZChocik7DQogICAgICAgIC8vIEludGVyYWN0aW9uDQogICAgICAgIGxldCBkaXYgPSB0aGlzLmNyZWF0ZUludGVyYWN0aW9uKCk7DQogICAgICAgIGRvYy5hcHBlbmRDaGlsZChkaXYpOw0KICAgICAgICBsZXQgaW50ZXJhY3Rpb24gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCh0aGlzLmludGVyYWN0aW9uSUQpOw0KICAgICAgICBzd2l0Y2ggKG1lbnVLZXkpIHsNCiAgICAgICAgICAgIGNhc2UgInBsYXlsaXN0IjoNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSB0aGlzLmNyZWF0ZUlucHV0KCJidXR0b24iLCBtZW51S2V5LCAie3suYnV0dG9uLm5ld319Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJpZCIsICItIik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgicGxheWxpc3QiKScpOw0KICAgICAgICAgICAgICAgIGludGVyYWN0aW9uLmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImZpbHRlciI6DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gdGhpcy5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgbWVudUtleSwgInt7LmJ1dHRvbi5uZXd9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgiaWQiLCAtMSk7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgiZmlsdGVyIiwgdGhpcyknKTsNCiAgICAgICAgICAgICAgICBpbnRlcmFjdGlvbi5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ4bWx0diI6DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gdGhpcy5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgbWVudUtleSwgInt7LmJ1dHRvbi5uZXd9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgiaWQiLCAieG1sdHYiKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJ4bWx0diIpJyk7DQogICAgICAgICAgICAgICAgaW50ZXJhY3Rpb24uYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAidXNlcnMiOg0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IHRoaXMuY3JlYXRlSW5wdXQoImJ1dHRvbiIsIG1lbnVLZXksICJ7ey5idXR0b24ubmV3fX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoImlkIiwgInVzZXJzIik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgidXNlcnMiKScpOw0KICAgICAgICAgICAgICAgIGludGVyYWN0aW9uLmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgIm1hcHBpbmciOg0KICAgICAgICAgICAgICAgIHNob3dFbGVtZW50KCJsb2FkaW5nIiwgdHJ1ZSk7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gdGhpcy5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgbWVudUtleSwgInt7LmJ1dHRvbi5zYXZlfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogc2F2ZVBvcHVwRGF0YSgibWFwcGluZyIsICIiLCAiIiknKTsNCiAgICAgICAgICAgICAgICBpbnRlcmFjdGlvbi5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gdGhpcy5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgbWVudUtleSwgInt7LmJ1dHRvbi5idWxrRWRpdH19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IGJ1bGtFZGl0KCknKTsNCiAgICAgICAgICAgICAgICBpbnRlcmFjdGlvbi5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gdGhpcy5jcmVhdGVJbnB1dCgic2VhcmNoIiwgInNlYXJjaCIsICIiKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoImlkIiwgInNlYXJjaE1hcHBpbmciKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LmJ1dHRvbi5zZWFyY2h9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LmNsYXNzTmFtZSA9ICJzZWFyY2giOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAnamF2YXNjcmlwdDogc2VhcmNoSW5NYXBwaW5nKCknKTsNCiAgICAgICAgICAgICAgICBpbnRlcmFjdGlvbi5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJzZXR0aW5ncyI6DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gdGhpcy5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgbWVudUtleSwgInt7LmJ1dHRvbi5zYXZlfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogc2F2ZVNldHRpbmdzKCk7Jyk7DQogICAgICAgICAgICAgICAgaW50ZXJhY3Rpb24uYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IHRoaXMuY3JlYXRlSW5wdXQoImJ1dHRvbiIsIG1lbnVLZXksICJ7ey5idXR0b24uYmFja3VwfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogYmFja3VwKCk7Jyk7DQogICAgICAgICAgICAgICAgaW50ZXJhY3Rpb24uYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IHRoaXMuY3JlYXRlSW5wdXQoImJ1dHRvbiIsIG1lbnVLZXksICJ7ey5idXR0b24ucmVzdG9yZX19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IHJlc3RvcmUoKTsnKTsNCiAgICAgICAgICAgICAgICBpbnRlcmFjdGlvbi5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgdmFyIHdyYXBwZXIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJESVYiKTsNCiAgICAgICAgICAgICAgICB3cmFwcGVyLnNldEF0dHJpYnV0ZSgiaWQiLCAiYm94LXdyYXBwZXIiKTsNCiAgICAgICAgICAgICAgICBkb2MuYXBwZW5kQ2hpbGQod3JhcHBlcik7DQogICAgICAgICAgICAgICAgdGhpcy5EaXZJRCA9ICJjb250ZW50X3NldHRpbmdzIjsNCiAgICAgICAgICAgICAgICB2YXIgc2V0dGluZ3MgPSB0aGlzLmNyZWF0ZURJVigpOw0KICAgICAgICAgICAgICAgIHdyYXBwZXIuYXBwZW5kQ2hpbGQoc2V0dGluZ3MpOw0KICAgICAgICAgICAgICAgIHNob3dTZXR0aW5ncygpOw0KICAgICAgICAgICAgICAgIHJldHVybjsNCiAgICAgICAgICAgIGNhc2UgImxvZyI6DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gdGhpcy5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgbWVudUtleSwgInt7LmJ1dHRvbi5yZXNldExvZ3N9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiByZXNldExvZ3MoKTsnKTsNCiAgICAgICAgICAgICAgICBpbnRlcmFjdGlvbi5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgdmFyIHdyYXBwZXIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJESVYiKTsNCiAgICAgICAgICAgICAgICB3cmFwcGVyLnNldEF0dHJpYnV0ZSgiaWQiLCAiYm94LXdyYXBwZXIiKTsNCiAgICAgICAgICAgICAgICBkb2MuYXBwZW5kQ2hpbGQod3JhcHBlcik7DQogICAgICAgICAgICAgICAgdGhpcy5EaXZJRCA9ICJjb250ZW50X2xvZyI7DQogICAgICAgICAgICAgICAgdmFyIGxvZ3MgPSB0aGlzLmNyZWF0ZURJVigpOw0KICAgICAgICAgICAgICAgIHdyYXBwZXIuYXBwZW5kQ2hpbGQobG9ncyk7DQogICAgICAgICAgICAgICAgc2hvd0xvZ3ModHJ1ZSk7DQogICAgICAgICAgICAgICAgcmV0dXJuOw0KICAgICAgICAgICAgY2FzZSAibG9nb3V0IjoNCiAgICAgICAgICAgICAgICBsb2NhdGlvbi5yZWxvYWQoKTsNCiAgICAgICAgICAgICAgICBkb2N1bWVudC5jb29raWUgPSAiVG9rZW49IDsgZXhwaXJlcyA9IFRodSwgMDEgSmFuIDE5NzAgMDA6MDA6MDAgR01UIjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIH0NCiAgICAgICAgLy8gQ3JlYXRlIHRhYmxlIChpZiBuZWVkZWQpDQogICAgICAgIHZhciB0YWJsZUhlYWRlciA9IG1lbnVJdGVtc1t0aGlzLm1lbnVJRF0udGFibGVIZWFkZXI7DQogICAgICAgIGlmICh0YWJsZUhlYWRlci5sZW5ndGggPiAwKSB7DQogICAgICAgICAgICB2YXIgd3JhcHBlciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIkRJViIpOw0KICAgICAgICAgICAgZG9jLmFwcGVuZENoaWxkKHdyYXBwZXIpOw0KICAgICAgICAgICAgd3JhcHBlci5zZXRBdHRyaWJ1dGUoImlkIiwgImJveC13cmFwcGVyIik7DQogICAgICAgICAgICB2YXIgdGFibGUgPSB0aGlzLmNyZWF0ZVRBQkxFKCk7DQogICAgICAgICAgICB3cmFwcGVyLmFwcGVuZENoaWxkKHRhYmxlKTsNCiAgICAgICAgICAgIHZhciBoZWFkZXIgPSB0aGlzLmNyZWF0ZVRhYmxlUm93KCk7DQogICAgICAgICAgICB0YWJsZS5hcHBlbmRDaGlsZChoZWFkZXIpOw0KICAgICAgICAgICAgLy8gVGFibGUgaGVhZGVyDQogICAgICAgICAgICB0YWJsZUhlYWRlci5mb3JFYWNoKGVsZW1lbnQgPT4gew0KICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZWxlbWVudDsNCiAgICAgICAgICAgICAgICBpZiAoZWxlbWVudCA9PSAiQlVMSyIpIHsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiQlVMS19IRUFEIjsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGZhbHNlOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBpZiAobWVudUtleSA9PSAibWFwcGluZyIpIHsNCiAgICAgICAgICAgICAgICAgICAgaWYgKGVsZW1lbnQgPT0gInt7Lm1hcHBpbmcudGFibGUuY2hOb319Iikgew0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5vbmNsaWNrID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwub25jbGlja0Z1bmN0aW9uID0gImphdmFzY3JpcHQ6IHNvcnRUYWJsZSgxKTsiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC50ZENsYXNzTmFtZSA9ICJzb3J0VGhpcyI7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgaWYgKGVsZW1lbnQgPT0gInt7Lm1hcHBpbmcudGFibGUuY2hhbm5lbE5hbWV9fSIpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwub25jbGljayA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLm9uY2xpY2tGdW5jdGlvbiA9ICJqYXZhc2NyaXB0OiBzb3J0VGFibGUoMyk7IjsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBpZiAoZWxlbWVudCA9PSAie3subWFwcGluZy50YWJsZS5wbGF5bGlzdH19Iikgew0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5vbmNsaWNrID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwub25jbGlja0Z1bmN0aW9uID0gImphdmFzY3JpcHQ6IHNvcnRUYWJsZSg0KTsiOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIGlmIChlbGVtZW50ID09ICJ7ey5tYXBwaW5nLnRhYmxlLmdyb3VwVGl0bGV9fSIpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwub25jbGljayA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLm9uY2xpY2tGdW5jdGlvbiA9ICJqYXZhc2NyaXB0OiBzb3J0VGFibGUoNSk7IjsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBpZiAoZWxlbWVudCA9PSAie3subWFwcGluZy50YWJsZS50aW1lc2hpZnR9fSIpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwub25jbGljayA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLm9uY2xpY2tGdW5jdGlvbiA9ICJqYXZhc2NyaXB0OiBzb3J0VGFibGUoOCk7IjsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBpZiAobWVudUtleSA9PSAiZmlsdGVyIikgew0KICAgICAgICAgICAgICAgICAgICBpZiAoZWxlbWVudCA9PSAie3suZmlsdGVyLnRhYmxlLnN0YXJ0aW5nQ2hhbm5lbH19Iikgew0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5vbmNsaWNrID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwub25jbGlja0Z1bmN0aW9uID0gImphdmFzY3JpcHQ6IHNvcnRUYWJsZSgwKTsiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC50ZENsYXNzTmFtZSA9ICJzb3J0VGhpcyI7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgaWYgKGVsZW1lbnQgPT0gInt7LmZpbHRlci50YWJsZS5uYW1lfX0iKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLm9uY2xpY2sgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5vbmNsaWNrRnVuY3Rpb24gPSAiamF2YXNjcmlwdDogc29ydFRhYmxlKDEpOyI7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgaWYgKGVsZW1lbnQgPT0gInt7LmZpbHRlci50YWJsZS50eXBlfX0iKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLm9uY2xpY2sgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5vbmNsaWNrRnVuY3Rpb24gPSAiamF2YXNjcmlwdDogc29ydFRhYmxlKDIpOyI7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgaWYgKGVsZW1lbnQgPT0gInt7LmZpbHRlci50YWJsZS5maWx0ZXJ9fSIpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwub25jbGljayA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLm9uY2xpY2tGdW5jdGlvbiA9ICJqYXZhc2NyaXB0OiBzb3J0VGFibGUoMyk7IjsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBoZWFkZXIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgfSk7DQogICAgICAgICAgICB0YWJsZS5hcHBlbmRDaGlsZChoZWFkZXIpOw0KICAgICAgICAgICAgLy8gQ29udGVudCBvZiB0aGUgdGFibGUNCiAgICAgICAgICAgIHZhciByb3dzID0gdGhpcy5jcmVhdGVUYWJsZUNvbnRlbnQobWVudUtleSk7DQogICAgICAgICAgICByb3dzLmZvckVhY2godHIgPT4gew0KICAgICAgICAgICAgICAgIHRhYmxlLmFwcGVuZENoaWxkKHRyKTsNCiAgICAgICAgICAgIH0pOw0KICAgICAgICB9DQogICAgICAgIHN3aXRjaCAobWVudUtleSkgew0KICAgICAgICAgICAgY2FzZSAibWFwcGluZyI6DQogICAgICAgICAgICAgICAgc29ydFRhYmxlKDEpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiZmlsdGVyIjoNCiAgICAgICAgICAgICAgICBzaG93UHJldmlldyh0cnVlKTsNCiAgICAgICAgICAgICAgICBzb3J0VGFibGUoMCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBkZWZhdWx0Og0KICAgICAgICAgICAgICAgIENPTFVNTl9UT19TT1JUID0gLTE7DQogICAgICAgICAgICAgICAgc29ydFRhYmxlKDApOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICB9DQogICAgICAgIHNob3dFbGVtZW50KCJsb2FkaW5nIiwgZmFsc2UpOw0KICAgIH0NCn0NCmZ1bmN0aW9uIFBhZ2VSZWFkeSgpIHsNCiAgICBsZXQgc2VydmVyID0gbmV3IFNlcnZlcigiZ2V0U2VydmVyQ29uZmlnIik7DQogICAgc2VydmVyLnJlcXVlc3Qoe30pOw0KICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJyZXNpemUiLCBmdW5jdGlvbiAoKSB7DQogICAgICAgIGNhbGN1bGF0ZVdyYXBwZXJIZWlnaHQoKTsNCiAgICB9LCB0cnVlKTsNCiAgICBzZXRJbnRlcnZhbChmdW5jdGlvbiAoKSB7DQogICAgICAgIHVwZGF0ZUxvZygpOw0KICAgIH0sIDEwMDAwKTsNCiAgICByZXR1cm47DQp9DQpmdW5jdGlvbiBjcmVhdGVMYXlvdXQoKSB7DQogICAgLy8gQ2xpZW50IEluZm8NCiAgICBsZXQgb2JqID0gU0VSVkVSWyJjbGllbnRJbmZvIl07DQogICAgbGV0IGtleXMgPSBnZXRPd25PYmpQcm9wcyhvYmopOw0KICAgIGZvciAodmFyIGkgPSAwOyBpIDwga2V5cy5sZW5ndGg7IGkrKykgew0KICAgICAgICBpZiAoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoa2V5c1tpXSkpIHsNCiAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGtleXNbaV0pLmlubmVySFRNTCA9IG9ialtrZXlzW2ldXTsNCiAgICAgICAgfQ0KICAgIH0NCiAgICBpZiAoIWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJtYWluLW1lbnUiKSkgew0KICAgICAgICByZXR1cm47DQogICAgfQ0KICAgIC8vIENyZWF0ZSBtZW51DQogICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm1haW4tbWVudSIpLmlubmVySFRNTCA9ICIiOw0KICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbWVudUl0ZW1zLmxlbmd0aDsgaSsrKSB7DQogICAgICAgIG1lbnVJdGVtc1tpXS5pZCA9IGk7DQogICAgICAgIHN3aXRjaCAobWVudUl0ZW1zW2ldWyJtZW51S2V5Il0pIHsNCiAgICAgICAgICAgIGNhc2UgInVzZXJzIjoNCiAgICAgICAgICAgIGNhc2UgImxvZ291dCI6DQogICAgICAgICAgICAgICAgaWYgKFNFUlZFUlsic2V0dGluZ3MiXVsiYXV0aGVudGljYXRpb24ud2ViIl0gPT0gdHJ1ZSkgew0KICAgICAgICAgICAgICAgICAgICBtZW51SXRlbXNbaV0uY3JlYXRlSXRlbSgpOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgIm1hcHBpbmciOg0KICAgICAgICAgICAgY2FzZSAieG1sdHYiOg0KICAgICAgICAgICAgICAgIGlmIChTRVJWRVJbImNsaWVudEluZm8iXVsiZXBnU291cmNlIl0gPT0gIlhFUEciKSB7DQogICAgICAgICAgICAgICAgICAgIG1lbnVJdGVtc1tpXS5jcmVhdGVJdGVtKCk7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgICAgICBtZW51SXRlbXNbaV0uY3JlYXRlSXRlbSgpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICB9DQogICAgfQ0KICAgIHJldHVybjsNCn0NCmZ1bmN0aW9uIG9wZW5UaGlzTWVudShlbGVtZW50KSB7DQogICAgbGV0IGlkID0gZWxlbWVudC5pZDsNCiAgICBsZXQgY29udGVudCA9IG5ldyBTaG93Q29udGVudChpZCk7DQogICAgY29udGVudC5zaG93KCk7DQogICAgY2FsY3VsYXRlV3JhcHBlckhlaWdodCgpOw0KICAgIHJldHVybjsNCn0NCmNsYXNzIFBvcHVwV2luZG93IHsNCiAgICBjb25zdHJ1Y3RvcigpIHsNCiAgICAgICAgdGhpcy5Eb2N1bWVudElEID0gInBvcHVwLWN1c3RvbSI7DQogICAgICAgIHRoaXMuSW50ZXJhY3Rpb25JRCA9ICJpbnRlcmFjdGlvbiI7DQogICAgICAgIHRoaXMuZG9jID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQodGhpcy5Eb2N1bWVudElEKTsNCiAgICB9DQogICAgY3JlYXRlVGl0bGUodGl0bGUpIHsNCiAgICAgICAgbGV0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgdGQuY2xhc3NOYW1lID0gImxlZnQiOw0KICAgICAgICB0ZC5pbm5lckhUTUwgPSB0aXRsZSArICI6IjsNCiAgICAgICAgcmV0dXJuIHRkOw0KICAgIH0NCiAgICBjcmVhdGVDb250ZW50KGVsZW1lbnQpIHsNCiAgICAgICAgbGV0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgdGQuYXBwZW5kQ2hpbGQoZWxlbWVudCk7DQogICAgICAgIHJldHVybiB0ZDsNCiAgICB9DQogICAgY3JlYXRlSW50ZXJhY3Rpb24oKSB7DQogICAgICAgIGxldCBkaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsNCiAgICAgICAgZGl2LnNldEF0dHJpYnV0ZSgiaWQiLCAicG9wdXAtaW50ZXJhY3Rpb24iKTsNCiAgICAgICAgZGl2LmNsYXNzTmFtZSA9ICJpbnRlcmFjdGlvbiI7DQogICAgICAgIHRoaXMuZG9jLmFwcGVuZENoaWxkKGRpdik7DQogICAgfQ0KfQ0KY2xhc3MgUG9wdXBDb250ZW50IGV4dGVuZHMgUG9wdXBXaW5kb3cgew0KICAgIGNvbnN0cnVjdG9yKCkgew0KICAgICAgICBzdXBlciguLi5hcmd1bWVudHMpOw0KICAgICAgICB0aGlzLnRhYmxlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEFCTEUiKTsNCiAgICB9DQogICAgY3JlYXRlSGVhZGxpbmUoaGVhZGxpbmUpIHsNCiAgICAgICAgdGhpcy5kb2MuaW5uZXJIVE1MID0gIiI7DQogICAgICAgIHZhciBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiSDMiKTsNCiAgICAgICAgZWxlbWVudC5pbm5lckhUTUwgPSBoZWFkbGluZS50b1VwcGVyQ2FzZSgpOw0KICAgICAgICB0aGlzLmRvYy5hcHBlbmRDaGlsZChlbGVtZW50KTsNCiAgICAgICAgLy8gQ3JlYXRlIHRhYmxlDQogICAgICAgIHRoaXMudGFibGUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJUQUJMRSIpOw0KICAgICAgICB0aGlzLmRvYy5hcHBlbmRDaGlsZCh0aGlzLnRhYmxlKTsNCiAgICB9DQogICAgYXBwZW5kUm93KHRpdGxlLCBlbGVtZW50KSB7DQogICAgICAgIGxldCB0ciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlRSIik7DQogICAgICAgIC8vIFRpdGxlDQogICAgICAgIGlmICh0aXRsZS5sZW5ndGggIT0gMCkgew0KICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQodGhpcy5jcmVhdGVUaXRsZSh0aXRsZSkpOw0KICAgICAgICB9DQogICAgICAgIC8vIENvbnRlbnQNCiAgICAgICAgdHIuYXBwZW5kQ2hpbGQodGhpcy5jcmVhdGVDb250ZW50KGVsZW1lbnQpKTsNCiAgICAgICAgdGhpcy50YWJsZS5hcHBlbmRDaGlsZCh0cik7DQogICAgfQ0KICAgIGNyZWF0ZUlucHV0KHR5cGUsIG5hbWUsIHZhbHVlKSB7DQogICAgICAgIGxldCBpbnB1dCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIklOUFVUIik7DQogICAgICAgIGlmICh2YWx1ZSA9PSB1bmRlZmluZWQpIHsNCiAgICAgICAgICAgIHZhbHVlID0gIiI7DQogICAgICAgIH0NCiAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJ0eXBlIiwgdHlwZSk7DQogICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgibmFtZSIsIG5hbWUpOw0KICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInZhbHVlIiwgdmFsdWUpOw0KICAgICAgICByZXR1cm4gaW5wdXQ7DQogICAgfQ0KICAgIGNyZWF0ZUNoZWNrYm94KG5hbWUpIHsNCiAgICAgICAgbGV0IGlucHV0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiSU5QVVQiKTsNCiAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJ0eXBlIiwgImNoZWNrYm94Iik7DQogICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgibmFtZSIsIG5hbWUpOw0KICAgICAgICByZXR1cm4gaW5wdXQ7DQogICAgfQ0KICAgIC8vIENyZWF0ZXMgYSBzZWxlY3Rpb24gb2YgbXVsdGlwbGUgb3B0aW9ucyB2YWx1ZXMgd2l0aCB0ZXh0IGRlc2NyaXB0aW9ucw0KICAgIGNyZWF0ZVNlbGVjdCh0ZXh0LCB2YWx1ZXMsIHNldCwgZGJLZXkpIHsNCiAgICAgICAgbGV0IHNlbGVjdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlNFTEVDVCIpOw0KICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJuYW1lIiwgZGJLZXkpOw0KICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRleHQubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgICAgIGxldCBvcHRpb24gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJPUFRJT04iKTsNCiAgICAgICAgICAgIG9wdGlvbi5zZXRBdHRyaWJ1dGUoInZhbHVlIiwgdmFsdWVzW2ldKTsNCiAgICAgICAgICAgIG9wdGlvbi5pbm5lclRleHQgPSB0ZXh0W2ldOw0KICAgICAgICAgICAgc2VsZWN0LmFwcGVuZENoaWxkKG9wdGlvbik7DQogICAgICAgIH0NCiAgICAgICAgaWYgKHNldCAhPSAiIikgew0KICAgICAgICAgICAgc2VsZWN0LnZhbHVlID0gc2V0Ow0KICAgICAgICB9DQogICAgICAgIGlmIChzZXQgPT0gdW5kZWZpbmVkKSB7DQogICAgICAgICAgICBzZWxlY3QudmFsdWUgPSB2YWx1ZXNbMF07DQogICAgICAgIH0NCiAgICAgICAgcmV0dXJuIHNlbGVjdDsNCiAgICB9DQogICAgc2VsZWN0T3B0aW9uKHNlbGVjdCwgdmFsdWUpIHsNCiAgICAgICAgLy9zZWxlY3Quc2VsZWN0ZWRPcHRpb25zID0gdmFsdWUNCiAgICAgICAgbGV0IHMgPSBzZWxlY3Q7DQogICAgICAgIHMub3B0aW9uc1tzLnNlbGVjdGVkSW5kZXhdLnZhbHVlID0gdmFsdWU7DQogICAgICAgIHJldHVybiBzZWxlY3Q7DQogICAgfQ0KICAgIGRlc2NyaXB0aW9uKHZhbHVlKSB7DQogICAgICAgIGxldCB0ciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlRSIik7DQogICAgICAgIGxldCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgIGxldCBzcGFuID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiUFJFIik7DQogICAgICAgIHNwYW4uaW5uZXJIVE1MID0gdmFsdWU7DQogICAgICAgIHRyLmFwcGVuZENoaWxkKHRkKTsNCiAgICAgICAgdHIuYXBwZW5kQ2hpbGQodGhpcy5jcmVhdGVDb250ZW50KHNwYW4pKTsNCiAgICAgICAgdGhpcy50YWJsZS5hcHBlbmRDaGlsZCh0cik7DQogICAgfQ0KICAgIC8vIEludGVyYWN0aW9uDQogICAgYWRkSW50ZXJhY3Rpb24oZWxlbWVudCkgew0KICAgICAgICBsZXQgaW50ZXJhY3Rpb24gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicG9wdXAtaW50ZXJhY3Rpb24iKTsNCiAgICAgICAgaW50ZXJhY3Rpb24uYXBwZW5kQ2hpbGQoZWxlbWVudCk7DQogICAgfQ0KfQ0KZnVuY3Rpb24gb3BlblBvcFVwKGRhdGFUeXBlLCBlbGVtZW50KSB7DQogICAgbGV0IGRhdGEgPSB7fTsNCiAgICBsZXQgaWQ7DQogICAgc3dpdGNoIChlbGVtZW50KSB7DQogICAgICAgIGNhc2UgdW5kZWZpbmVkOg0KICAgICAgICAgICAgc3dpdGNoIChkYXRhVHlwZSkgew0KICAgICAgICAgICAgICAgIGNhc2UgImdyb3VwLXRpdGxlIjoNCiAgICAgICAgICAgICAgICAgICAgaWYgKGlkID09IHVuZGVmaW5lZCkgew0KICAgICAgICAgICAgICAgICAgICAgICAgaWQgPSAtMTsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBkYXRhID0gZ2V0TG9jYWxEYXRhKCJmaWx0ZXIiLCBpZCk7DQogICAgICAgICAgICAgICAgICAgIGRhdGFbInR5cGUiXSA9ICJncm91cC10aXRsZSI7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgImN1c3RvbS1maWx0ZXIiOg0KICAgICAgICAgICAgICAgICAgICBpZiAoaWQgPT0gdW5kZWZpbmVkKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBpZCA9IC0xOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIGRhdGEgPSBnZXRMb2NhbERhdGEoImZpbHRlciIsIGlkKTsNCiAgICAgICAgICAgICAgICAgICAgZGF0YVsidHlwZSJdID0gImN1c3RvbS1maWx0ZXIiOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBkZWZhdWx0Og0KICAgICAgICAgICAgICAgICAgICBkYXRhWyJpZC5wcm92aWRlciJdID0gIi0iOw0KICAgICAgICAgICAgICAgICAgICBkYXRhWyJ0eXBlIl0gPSBkYXRhVHlwZTsNCiAgICAgICAgICAgICAgICAgICAgaWQgPSAiLSI7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICBpZCA9IGVsZW1lbnQuaWQ7DQogICAgICAgICAgICBkYXRhID0gZ2V0TG9jYWxEYXRhKGRhdGFUeXBlLCBpZCk7DQogICAgICAgICAgICBicmVhazsNCiAgICB9DQogICAgbGV0IGNvbnRlbnQgPSBuZXcgUG9wdXBDb250ZW50KCk7DQogICAgc3dpdGNoIChkYXRhVHlwZSkgew0KICAgICAgICBjYXNlICJwbGF5bGlzdCI6DQogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUhlYWRsaW5lKCJ7ey5wbGF5bGlzdC5wbGF5bGlzdFR5cGUudGl0bGV9fSIpOw0KICAgICAgICAgICAgLy8gVHlwZQ0KICAgICAgICAgICAgdmFyIHRleHQgPSBbIk0zVSIsICJIREhvbWVSdW4iXTsNCiAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBbImphdmFzY3JpcHQ6IG9wZW5Qb3BVcCgnbTN1JykiLCAiamF2YXNjcmlwdDogb3BlblBvcFVwKCdoZGhyJykiXTsNCiAgICAgICAgICAgIHZhciBzZWxlY3QgPSBjb250ZW50LmNyZWF0ZVNlbGVjdCh0ZXh0LCB2YWx1ZXMsICIiLCAidHlwZSIpOw0KICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgiaWQiLCAidHlwZSIpOw0KICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAnamF2YXNjcmlwdDogY2hhbmdlQnV0dG9uQWN0aW9uKHRoaXMsICJuZXh0IiwgIm9uY2xpY2siKScpOyAvLyBjaGFuZ2VCdXR0b25BY3Rpb24NCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5wbGF5bGlzdC50eXBlLnRpdGxlfX0iLCBzZWxlY3QpOw0KICAgICAgICAgICAgLy8gSW50ZXJhY3Rpb24NCiAgICAgICAgICAgIGNvbnRlbnQuY3JlYXRlSW50ZXJhY3Rpb24oKTsNCiAgICAgICAgICAgIC8vIEFib3J0DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAiY2FuY2VsIiwgInt7LmJ1dHRvbi5jYW5jZWx9fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IHNob3dFbGVtZW50KCJwb3B1cCIsIGZhbHNlKTsnKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgLy8gTmV4dA0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgIm5leHQiLCAie3suYnV0dG9uLm5leHR9fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgibTN1IiknKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgiaWQiLCAnbmV4dCcpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSAibTN1IjoNCiAgICAgICAgICAgIGNvbnRlbnQuY3JlYXRlSGVhZGxpbmUoZGF0YVR5cGUpOw0KICAgICAgICAgICAgLy8gTmFtZQ0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gIm5hbWUiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnBsYXlsaXN0Lm5hbWUucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnBsYXlsaXN0Lm5hbWUudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIERlc2NyaXB0aW9uDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAiZGVzY3JpcHRpb24iOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnBsYXlsaXN0LmRlc2NyaXB0aW9uLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5wbGF5bGlzdC5kZXNjcmlwdGlvbi50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgLy8gVVJMDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAiZmlsZS5zb3VyY2UiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnBsYXlsaXN0LmZpbGVNM1UucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnBsYXlsaXN0LmZpbGVNM1UudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIFR1bmVyDQogICAgICAgICAgICBpZiAoU0VSVkVSWyJzZXR0aW5ncyJdWyJidWZmZXIiXSAhPSAiLSIpIHsNCiAgICAgICAgICAgICAgICB2YXIgdGV4dCA9IFtdOw0KICAgICAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBbXTsNCiAgICAgICAgICAgICAgICBmb3IgKHZhciBpID0gMTsgaSA8PSAxMDA7IGkrKykgew0KICAgICAgICAgICAgICAgICAgICB0ZXh0LnB1c2goaS50b1N0cmluZygpKTsNCiAgICAgICAgICAgICAgICAgICAgdmFsdWVzLnB1c2goaS50b1N0cmluZygpKTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgdmFyIGRiS2V5ID0gInR1bmVyIjsNCiAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCBkYXRhW2RiS2V5XSwgZGJLZXkpOw0KICAgICAgICAgICAgICAgIHNlbGVjdC5zZXRBdHRyaWJ1dGUoIm9uZm9jdXMiLCAiamF2YXNjcmlwdDogcmV0dXJuOyIpOw0KICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5wbGF5bGlzdC50dW5lci50aXRsZX19Iiwgc2VsZWN0KTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgICAgIHZhciBkYktleSA9ICJ0dW5lciI7DQogICAgICAgICAgICAgICAgaWYgKGRhdGFbZGJLZXldID09IHVuZGVmaW5lZCkgew0KICAgICAgICAgICAgICAgICAgICBkYXRhW2RiS2V5XSA9IDE7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicmVhZG9ubHkiLCAidHJ1ZSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LmNsYXNzTmFtZSA9ICJub3RBdmFpbGFibGUiOw0KICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5wbGF5bGlzdC50dW5lci50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgY29udGVudC5kZXNjcmlwdGlvbigie3sucGxheWxpc3QudHVuZXIuZGVzY3JpcHRpb259fSIpOw0KICAgICAgICAgICAgLy8gSW50ZXJhdGlvbg0KICAgICAgICAgICAgY29udGVudC5jcmVhdGVJbnRlcmFjdGlvbigpOw0KICAgICAgICAgICAgLy8gRGVsZXRlDQogICAgICAgICAgICBpZiAoZGF0YVsiaWQucHJvdmlkZXIiXSAhPSAiLSIpIHsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAiZGVsZXRlIiwgInt7LmJ1dHRvbi5kZWxldGV9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LmNsYXNzTmFtZSA9ICJkZWxldGUiOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBzYXZlUG9wdXBEYXRhKCJtM3UiLCAiJyArIGlkICsgJyIsIHRydWUsIDApJyk7DQogICAgICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAiYmFjayIsICJ7ey5idXR0b24uYmFja319Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgicGxheWxpc3QiKScpOw0KICAgICAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgLy8gQWJvcnQNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJjYW5jZWwiLCAie3suYnV0dG9uLmNhbmNlbH19Iik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogc2hvd0VsZW1lbnQoInBvcHVwIiwgZmFsc2UpOycpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICAvLyBVcGRhdGUNCiAgICAgICAgICAgIGlmIChkYXRhWyJpZC5wcm92aWRlciJdICE9ICItIikgew0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJ1cGRhdGUiLCAie3suYnV0dG9uLnVwZGF0ZX19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoIm0zdSIsICInICsgaWQgKyAnIiwgZmFsc2UsIDEpJyk7DQogICAgICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICAvLyBTYXZlDQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAic2F2ZSIsICJ7ey5idXR0b24uc2F2ZX19Iik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogc2F2ZVBvcHVwRGF0YSgibTN1IiwgIicgKyBpZCArICciLCBmYWxzZSwgMCknKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGNhc2UgImhkaHIiOg0KICAgICAgICAgICAgY29udGVudC5jcmVhdGVIZWFkbGluZShkYXRhVHlwZSk7DQogICAgICAgICAgICAvLyBOYW1lDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAibmFtZSI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3sucGxheWxpc3QubmFtZS5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sucGxheWxpc3QubmFtZS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgLy8gRGVzY3JpcHRpb24NCiAgICAgICAgICAgIHZhciBkYktleSA9ICJkZXNjcmlwdGlvbiI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3sucGxheWxpc3QuZGVzY3JpcHRpb24ucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnBsYXlsaXN0LmRlc2NyaXB0aW9uLnBsYWNlaG9sZGVyfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBVUkwNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJmaWxlLnNvdXJjZSI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3sucGxheWxpc3QuZmlsZUhESFIucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnBsYXlsaXN0LmZpbGVIREhSLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBUdW5lcg0KICAgICAgICAgICAgaWYgKFNFUlZFUlsic2V0dGluZ3MiXVsiYnVmZmVyIl0gIT0gIi0iKSB7DQogICAgICAgICAgICAgICAgdmFyIHRleHQgPSBbXTsNCiAgICAgICAgICAgICAgICB2YXIgdmFsdWVzID0gW107DQogICAgICAgICAgICAgICAgZm9yICh2YXIgaSA9IDE7IGkgPD0gMTAwOyBpKyspIHsNCiAgICAgICAgICAgICAgICAgICAgdGV4dC5wdXNoKGkudG9TdHJpbmcoKSk7DQogICAgICAgICAgICAgICAgICAgIHZhbHVlcy5wdXNoKGkudG9TdHJpbmcoKSk7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIHZhciBkYktleSA9ICJ0dW5lciI7DQogICAgICAgICAgICAgICAgdmFyIHNlbGVjdCA9IGNvbnRlbnQuY3JlYXRlU2VsZWN0KHRleHQsIHZhbHVlcywgZGF0YVtkYktleV0sIGRiS2V5KTsNCiAgICAgICAgICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJvbmZvY3VzIiwgImphdmFzY3JpcHQ6IHJldHVybjsiKTsNCiAgICAgICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sucGxheWxpc3QudHVuZXIudGl0bGV9fSIsIHNlbGVjdCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICB2YXIgZGJLZXkgPSAidHVuZXIiOw0KICAgICAgICAgICAgICAgIGlmIChkYXRhW2RiS2V5XSA9PSB1bmRlZmluZWQpIHsNCiAgICAgICAgICAgICAgICAgICAgZGF0YVtkYktleV0gPSAxOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInJlYWRvbmx5IiwgInRydWUiKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5jbGFzc05hbWUgPSAibm90QXZhaWxhYmxlIjsNCiAgICAgICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sucGxheWxpc3QudHVuZXIudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGNvbnRlbnQuZGVzY3JpcHRpb24oInt7LnBsYXlsaXN0LnR1bmVyLmRlc2NyaXB0aW9ufX0iKTsNCiAgICAgICAgICAgIC8vIEludGVyYWN0aW9uDQogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUludGVyYWN0aW9uKCk7DQogICAgICAgICAgICAvLyBEZWxldGUNCiAgICAgICAgICAgIGlmIChkYXRhWyJpZC5wcm92aWRlciJdICE9ICItIikgew0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJkZWxldGUiLCAie3suYnV0dG9uLmRlbGV0ZX19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoImhkaHIiLCAiJyArIGlkICsgJyIsIHRydWUsIDApJyk7DQogICAgICAgICAgICAgICAgaW5wdXQuY2xhc3NOYW1lID0gImRlbGV0ZSI7DQogICAgICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAiYmFjayIsICJ7ey5idXR0b24uYmFja319Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgicGxheWxpc3QiKScpOw0KICAgICAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgLy8gQWJvcnQNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJjYW5jZWwiLCAie3suYnV0dG9uLmNhbmNlbH19Iik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogc2hvd0VsZW1lbnQoInBvcHVwIiwgZmFsc2UpOycpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICAvLyBVcGRhdGUNCiAgICAgICAgICAgIGlmIChkYXRhWyJpZC5wcm92aWRlciJdICE9ICItIikgew0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJ1cGRhdGUiLCAie3suYnV0dG9uLnVwZGF0ZX19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoImhkaHIiLCAiJyArIGlkICsgJyIsIGZhbHNlLCAxKScpOw0KICAgICAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgLy8gU2F2ZQ0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgInNhdmUiLCAie3suYnV0dG9uLnNhdmV9fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoImhkaHIiLCAiJyArIGlkICsgJyIsIGZhbHNlLCAwKScpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSAiZmlsdGVyIjoNCiAgICAgICAgICAgIGNvbnRlbnQuY3JlYXRlSGVhZGxpbmUoZGF0YVR5cGUpOw0KICAgICAgICAgICAgLy8gVHlwZQ0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gInR5cGUiOw0KICAgICAgICAgICAgdmFyIHRleHQgPSBbIk0zVTogIiArICJ7ey5maWx0ZXIudHlwZS5ncm91cFRpdGxlfX0iLCAieFRlVmU6ICIgKyAie3suZmlsdGVyLnR5cGUuY3VzdG9tRmlsdGVyfX0iXTsNCiAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBbImphdmFzY3JpcHQ6IG9wZW5Qb3BVcCgnZ3JvdXAtdGl0bGUnKSIsICJqYXZhc2NyaXB0OiBvcGVuUG9wVXAoJ2N1c3RvbS1maWx0ZXInKSJdOw0KICAgICAgICAgICAgdmFyIHNlbGVjdCA9IGNvbnRlbnQuY3JlYXRlU2VsZWN0KHRleHQsIHZhbHVlcywgImphdmFzY3JpcHQ6IG9wZW5Qb3BVcCgnZ3JvdXAtdGl0bGUnKSIsIGRiS2V5KTsNCiAgICAgICAgICAgIHNlbGVjdC5zZXRBdHRyaWJ1dGUoImlkIiwgaWQpOw0KICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAnamF2YXNjcmlwdDogY2hhbmdlQnV0dG9uQWN0aW9uKHRoaXMsICJuZXh0IiwgIm9uY2xpY2siKTsnKTsgLy8gY2hhbmdlQnV0dG9uQWN0aW9uDQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3suZmlsdGVyLnR5cGUudGl0bGV9fSIsIHNlbGVjdCk7DQogICAgICAgICAgICAvLyBJbnRlcmFjdGlvbg0KICAgICAgICAgICAgY29udGVudC5jcmVhdGVJbnRlcmFjdGlvbigpOw0KICAgICAgICAgICAgLy8gQWJvcnQNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJjYW5jZWwiLCAie3suYnV0dG9uLmNhbmNlbH19Iik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogc2hvd0VsZW1lbnQoInBvcHVwIiwgZmFsc2UpOycpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICAvLyBOZXh0DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAibmV4dCIsICJ7ey5idXR0b24ubmV4dH19Iik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJncm91cC10aXRsZSIpJyk7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoImlkIiwgJ25leHQnKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGNhc2UgImN1c3RvbS1maWx0ZXIiOg0KICAgICAgICBjYXNlICJncm91cC10aXRsZSI6DQogICAgICAgICAgICBzd2l0Y2ggKGRhdGFUeXBlKSB7DQogICAgICAgICAgICAgICAgY2FzZSAiY3VzdG9tLWZpbHRlciI6DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuY3JlYXRlSGVhZGxpbmUoInt7LmZpbHRlci5jdXN0b219fSIgKyAiIEZpbHRlciIpOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBjYXNlICJncm91cC10aXRsZSI6DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuY3JlYXRlSGVhZGxpbmUoInt7LmZpbHRlci5ncm91cH19IiArICIgRmlsdGVyIik7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgLy8gTmFtZSAgICAgIA0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gIm5hbWUiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LmZpbHRlci5uYW1lLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5maWx0ZXIubmFtZS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgLy8gRGVzY3JpcHRpb24NCiAgICAgICAgICAgIHZhciBkYktleSA9ICJkZXNjcmlwdGlvbiI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3suZmlsdGVyLmRlc2NyaXB0aW9uLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5maWx0ZXIuZGVzY3JpcHRpb24udGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIFR5cGUNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJ0eXBlIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImhpZGRlbiIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygiIiwgaW5wdXQpOw0KICAgICAgICAgICAgdmFyIGZpbHRlclR5cGUgPSBkYXRhW2RiS2V5XTsNCiAgICAgICAgICAgIHN3aXRjaCAoZmlsdGVyVHlwZSkgew0KICAgICAgICAgICAgICAgIGNhc2UgImN1c3RvbS1maWx0ZXIiOg0KICAgICAgICAgICAgICAgICAgICAvLyBDYXNlIHNlbnNpdGl2ZQ0KICAgICAgICAgICAgICAgICAgICB2YXIgZGJLZXkgPSAiY2FzZVNlbnNpdGl2ZSI7DQogICAgICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goZGJLZXkpOw0KICAgICAgICAgICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YVtkYktleV07DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5maWx0ZXIuY2FzZVNlbnNpdGl2ZS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgICAgICAgICAvLyBGaWx0ZXIgUnVsZSAoQ3VzdG9tKQ0KICAgICAgICAgICAgICAgICAgICB2YXIgZGJLZXkgPSAiZmlsdGVyIjsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3suZmlsdGVyLmZpbHRlclJ1bGUucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3suZmlsdGVyLmZpbHRlclJ1bGUudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgICAgICAgICAgLy8gU3RhcnRpbmcgQ2hhbm5lbCBOdW1iZXIgTWFwcGluZw0KICAgICAgICAgICAgICAgICAgICB2YXIgZGJLZXkgPSAic3RhcnRpbmdDaGFubmVsIjsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3suZmlsdGVyLnN0YXJ0aW5nQ2hhbm5lbC5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5maWx0ZXIuc3RhcnRpbmdDaGFubmVsLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgImdyb3VwLXRpdGxlIjoNCiAgICAgICAgICAgICAgICAgICAgLy9hbGVydChkYktleSArICIgIiArIGZpbHRlclR5cGUpDQogICAgICAgICAgICAgICAgICAgIC8vIEZpbHRlciBiYXNlZCBvbiB0aGUgZ3JvdXBzIGluIHRoZSBNM1UNCiAgICAgICAgICAgICAgICAgICAgdmFyIGRiS2V5ID0gImZpbHRlciI7DQogICAgICAgICAgICAgICAgICAgIHZhciBncm91cHNNM1UgPSBnZXRMb2NhbERhdGEoIm0zdUdyb3VwcyIsICIiKTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHRleHQgPSBncm91cHNNM1VbInRleHQiXTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHZhbHVlcyA9IGdyb3Vwc00zVVsidmFsdWUiXTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHNlbGVjdCA9IGNvbnRlbnQuY3JlYXRlU2VsZWN0KHRleHQsIHZhbHVlcywgZGF0YVtkYktleV0sIGRiS2V5KTsNCiAgICAgICAgICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LmZpbHRlci5maWx0ZXJHcm91cC50aXRsZX19Iiwgc2VsZWN0KTsNCiAgICAgICAgICAgICAgICAgICAgY29udGVudC5kZXNjcmlwdGlvbigie3suZmlsdGVyLmZpbHRlckdyb3VwLmRlc2NyaXB0aW9ufX0iKTsNCiAgICAgICAgICAgICAgICAgICAgLy8gQ2FzZSBzZW5zZXRpdmUNCiAgICAgICAgICAgICAgICAgICAgdmFyIGRiS2V5ID0gImNhc2VTZW5zaXRpdmUiOw0KICAgICAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KGRiS2V5KTsNCiAgICAgICAgICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGFbZGJLZXldOw0KICAgICAgICAgICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3suZmlsdGVyLmNhc2VTZW5zaXRpdmUudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGRiS2V5ID0gImluY2x1ZGUiOw0KICAgICAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5maWx0ZXIuaW5jbHVkZS5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5maWx0ZXIuaW5jbHVkZS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgICAgICAgICBjb250ZW50LmRlc2NyaXB0aW9uKCJ7ey5maWx0ZXIuaW5jbHVkZS5kZXNjcmlwdGlvbn19Iik7DQogICAgICAgICAgICAgICAgICAgIHZhciBkYktleSA9ICJleGNsdWRlIjsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3suZmlsdGVyLmV4Y2x1ZGUucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3suZmlsdGVyLmV4Y2x1ZGUudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgICAgICAgICAgY29udGVudC5kZXNjcmlwdGlvbigie3suZmlsdGVyLmV4Y2x1ZGUuZGVzY3JpcHRpb259fSIpOw0KICAgICAgICAgICAgICAgICAgICAvLyBQcmVzZXJ2ZSBNM1UgUGxheWxpc3QgQ2hhbm5lbCBNYXBwaW5nDQogICAgICAgICAgICAgICAgICAgIHZhciBkYktleSA9ICJwcmVzZXJ2ZU1hcHBpbmciOw0KICAgICAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KGRiS2V5KTsNCiAgICAgICAgICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGFbZGJLZXldOw0KICAgICAgICAgICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3suZmlsdGVyLnByZXNlcnZlTWFwcGluZy50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgICAgICAgICAvLyBTdGFydGluZyBDaGFubmVsIE51bWJlciBNYXBwaW5nDQogICAgICAgICAgICAgICAgICAgIHZhciBkYktleSA9ICJzdGFydGluZ0NoYW5uZWwiOw0KICAgICAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5maWx0ZXIuc3RhcnRpbmdDaGFubmVsLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LmZpbHRlci5zdGFydGluZ0NoYW5uZWwudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgICAgICAgICAgLy8gRmlsbCBNaXNzaW5nIEVQRyBEYXRhDQogICAgICAgICAgICAgICAgICAgIC8vIFRoZSBmb2xsb3dpbmcgY29kZSBvbmx5IHdvcmtzIHdoZW4geFRlVmUgRHVtbXkgYWxyZWFkeSBleGlzdHMNCiAgICAgICAgICAgICAgICAgICAgLy8gdmFyIGRiS2V5OnN0cmluZyA9ICJkZWZhdWx0TWlzc2luZ0VQRyINCiAgICAgICAgICAgICAgICAgICAgLy8gdmFyIHhtbHR2OlhNTFRWRmlsZSA9IG5ldyBYTUxUVkZpbGUoKQ0KICAgICAgICAgICAgICAgICAgICAvLyB2YXIgc2VsZWN0ID0geG1sdHYuZ2V0UHJvZ3JhbXMoInhUZVZlIER1bW15IiwgZGF0YVtkYktleV0pDQogICAgICAgICAgICAgICAgICAgIC8vIHNlbGVjdC5zZXRBdHRyaWJ1dGUoIm5hbWUiLCBkYktleSkNCiAgICAgICAgICAgICAgICAgICAgLy8gc2VsZWN0LnNldEF0dHJpYnV0ZSgiaWQiLCAicG9wdXAtbWlzc2luZy1lcGciKQ0KICAgICAgICAgICAgICAgICAgICAvLyBUaGUgd29ya2Fyb3VuZCBpcyBjdXJyZW50bHkgdG8gaGFyZCBjb2RlIHRoZSB4VGVWZSBEdW1teSBkYXRhDQogICAgICAgICAgICAgICAgICAgIHZhciBkYktleSA9ICJkZWZhdWx0TWlzc2luZ0VQRyI7DQogICAgICAgICAgICAgICAgICAgIHZhciBsaXN0T3B0aW9ucyA9IHsgInRleHQiOiBbIi0iLCAiMzAgTWludXRlcyAoMzBfTWludXRlcykiLCAiNjAgTWludXRlcyAoNjBfTWludXRlcykiLCAiOTAgTWludXRlcyAoOTBfTWludXRlcykiLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICIxMjAgTWludXRlcyAoMTIwX01pbnV0ZXMpIiwgIjE4MCBNaW51dGVzICgzMF9NaW51dGVzKSIsICIyNDAgTWludXRlcyAoMzBfTWludXRlcykiLCAiMzYwIE1pbnV0ZXMgKDMwX01pbnV0ZXMpIl0sDQogICAgICAgICAgICAgICAgICAgICAgICAidmFsdWUiOiBbIi0iLCAiMzBfTWludXRlcyIsICI2MF9NaW51dGVzIiwgIjkwX01pbnV0ZXMiLCAiMTIwX01pbnV0ZXMiLCAiMTgwX01pbnV0ZXMiLCAiMjQwX01pbnV0ZXMiLCAiMzYwX01pbnV0ZXMiLF0gfTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHRleHQgPSBsaXN0T3B0aW9uc1sidGV4dCJdOw0KICAgICAgICAgICAgICAgICAgICB2YXIgdmFsdWVzID0gbGlzdE9wdGlvbnNbInZhbHVlIl07DQogICAgICAgICAgICAgICAgICAgIHZhciBzZWxlY3QgPSBjb250ZW50LmNyZWF0ZVNlbGVjdCh0ZXh0LCB2YWx1ZXMsIGRhdGFbZGJLZXldLCBkYktleSk7DQogICAgICAgICAgICAgICAgICAgIHNlbGVjdC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5maWx0ZXIuZGVmYXVsdE1pc3NpbmdFUEcudGl0bGV9fSIsIHNlbGVjdCk7DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuZGVzY3JpcHRpb24oInt7LmZpbHRlci5kZWZhdWx0TWlzc2luZ0VQRy5kZXNjcmlwdGlvbn19Iik7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgLy8gSW50ZXJhY3Rpb24NCiAgICAgICAgICAgIGNvbnRlbnQuY3JlYXRlSW50ZXJhY3Rpb24oKTsNCiAgICAgICAgICAgIC8vIERlbGV0ZQ0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImRlbGV0ZSIsICJ7ey5idXR0b24uZGVsZXRlfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBzYXZlUG9wdXBEYXRhKCJmaWx0ZXIiLCAiJyArIGlkICsgJyIsIHRydWUsIDApJyk7DQogICAgICAgICAgICBpbnB1dC5jbGFzc05hbWUgPSAiZGVsZXRlIjsNCiAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgLy8gQWJvcnQNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJjYW5jZWwiLCAie3suYnV0dG9uLmNhbmNlbH19Iik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogc2hvd0VsZW1lbnQoInBvcHVwIiwgZmFsc2UpOycpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICAvLyBTYXZlDQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAic2F2ZSIsICJ7ey5idXR0b24uc2F2ZX19Iik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogc2F2ZVBvcHVwRGF0YSgiZmlsdGVyIiwgIicgKyBpZCArICciLCBmYWxzZSwgMCknKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGNhc2UgInhtbHR2IjoNCiAgICAgICAgICAgIGNvbnRlbnQuY3JlYXRlSGVhZGxpbmUoZGF0YVR5cGUpOw0KICAgICAgICAgICAgLy8gTmFtZQ0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gIm5hbWUiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnhtbHR2Lm5hbWUucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnhtbHR2Lm5hbWUudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIERlc2NyaXB0aW9uDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAiZGVzY3JpcHRpb24iOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnhtbHR2LmRlc2NyaXB0aW9uLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey54bWx0di5kZXNjcmlwdGlvbi50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgLy8gVVJMDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAiZmlsZS5zb3VyY2UiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnhtbHR2LmZpbGVYTUxUVi5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sueG1sdHYuZmlsZVhNTFRWLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBJbnRlcmFjdGlvbg0KICAgICAgICAgICAgY29udGVudC5jcmVhdGVJbnRlcmFjdGlvbigpOw0KICAgICAgICAgICAgLy8gRGVsZXRlDQogICAgICAgICAgICBpZiAoZGF0YVsiaWQucHJvdmlkZXIiXSAhPSAiLSIpIHsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAiZGVsZXRlIiwgInt7LmJ1dHRvbi5kZWxldGV9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBzYXZlUG9wdXBEYXRhKCJ4bWx0diIsICInICsgaWQgKyAnIiwgdHJ1ZSwgMCknKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5jbGFzc05hbWUgPSAiZGVsZXRlIjsNCiAgICAgICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIC8vIEFib3J0DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAiY2FuY2VsIiwgInt7LmJ1dHRvbi5jYW5jZWx9fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IHNob3dFbGVtZW50KCJwb3B1cCIsIGZhbHNlKTsnKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgLy8gVXBkYXRlDQogICAgICAgICAgICBpZiAoZGF0YVsiaWQucHJvdmlkZXIiXSAhPSAiLSIpIHsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAidXBkYXRlIiwgInt7LmJ1dHRvbi51cGRhdGV9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBzYXZlUG9wdXBEYXRhKCJ4bWx0diIsICInICsgaWQgKyAnIiwgZmFsc2UsIDEpJyk7DQogICAgICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICAvLyBTYXZlDQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAic2F2ZSIsICJ7ey5idXR0b24uc2F2ZX19Iik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogc2F2ZVBvcHVwRGF0YSgieG1sdHYiLCAiJyArIGlkICsgJyIsIGZhbHNlLCAwKScpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSAidXNlcnMiOg0KICAgICAgICAgICAgY29udGVudC5jcmVhdGVIZWFkbGluZSgie3subWFpbk1lbnUuaXRlbS51c2Vyc319Iik7DQogICAgICAgICAgICAvLyBVc2VyIG5hbWUNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJ1c2VybmFtZSI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3sudXNlcnMudXNlcm5hbWUucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnVzZXJzLnVzZXJuYW1lLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBOZXcgUGFyc3N3b3JkDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAicGFzc3dvcmQiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgicGFzc3dvcmQiLCBkYktleSwgIiIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey51c2Vycy5wYXNzd29yZC5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sudXNlcnMucGFzc3dvcmQudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIENvbmZpcm1hdGlvbg0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gImNvbmZpcm0iOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgicGFzc3dvcmQiLCBkYktleSwgIiIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey51c2Vycy5jb25maXJtLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey51c2Vycy5jb25maXJtLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBBdXRoZW50aWNhdGlvbiBXRUINCiAgICAgICAgICAgIHZhciBkYktleSA9ICJhdXRoZW50aWNhdGlvbi53ZWIiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChkYktleSk7DQogICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YVtkYktleV07DQogICAgICAgICAgICBpZiAoZGF0YVsiZGVmYXVsdFVzZXIiXSA9PSB0cnVlKSB7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgImphdmFzY3JpcHQ6IHJldHVybiBmYWxzZSIpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnVzZXJzLndlYi50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgLy8gQXV0aGVudGljYXRpb24gUE1TDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAiYXV0aGVudGljYXRpb24ucG1zIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goZGJLZXkpOw0KICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGFbZGJLZXldOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnVzZXJzLnBtcy50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgLy8gQXV0aGVudGljYXRpb24gTTNVDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAiYXV0aGVudGljYXRpb24ubTN1IjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goZGJLZXkpOw0KICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGFbZGJLZXldOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnVzZXJzLm0zdS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgLy8gQXV0aGVudGljYXRpb24gWE1MDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAiYXV0aGVudGljYXRpb24ueG1sIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goZGJLZXkpOw0KICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGFbZGJLZXldOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnVzZXJzLnhtbC50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgLy8gQXV0aGVudGljYXRpb24gQVBJDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAiYXV0aGVudGljYXRpb24uYXBpIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goZGJLZXkpOw0KICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGFbZGJLZXldOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnVzZXJzLmFwaS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgLy8gSW50ZXJhY3Rpb24NCiAgICAgICAgICAgIGNvbnRlbnQuY3JlYXRlSW50ZXJhY3Rpb24oKTsNCiAgICAgICAgICAgIC8vIERlbGV0ZQ0KICAgICAgICAgICAgaWYgKGRhdGFbImRlZmF1bHRVc2VyIl0gIT0gdHJ1ZSAmJiBpZCAhPSAiLSIpIHsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAiZGVsZXRlIiwgInt7LmJ1dHRvbi5kZWxldGV9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LmNsYXNzTmFtZSA9ICJkZWxldGUiOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBzYXZlUG9wdXBEYXRhKCInICsgZGF0YVR5cGUgKyAnIiwgIicgKyBpZCArICciLCB0cnVlLCAwKScpOw0KICAgICAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgLy8gQWJvcnQNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJjYW5jZWwiLCAie3suYnV0dG9uLmNhbmNlbH19Iik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogc2hvd0VsZW1lbnQoInBvcHVwIiwgZmFsc2UpOycpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICAvLyBTYXZlDQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAic2F2ZSIsICJ7ey5idXR0b24uc2F2ZX19Iik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogc2F2ZVBvcHVwRGF0YSgiJyArIGRhdGFUeXBlICsgJyIsICInICsgaWQgKyAnIiwgImZhbHNlIik7Jyk7DQogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJtYXBwaW5nIjoNCiAgICAgICAgICAgIGNvbnRlbnQuY3JlYXRlSGVhZGxpbmUoInt7Lm1haW5NZW51Lml0ZW0ubWFwcGluZ319Iik7DQogICAgICAgICAgICAvLyBBY3RpdmUNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJ4LWFjdGl2ZSI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KGRiS2V5KTsNCiAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhW2RiS2V5XTsNCiAgICAgICAgICAgIGlucHV0LmlkID0gImFjdGl2ZSI7DQogICAgICAgICAgICAvL2lucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKQ0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0b2dnbGVDaGFubmVsU3RhdHVzKCciICsgaWQgKyAiJywgdGhpcykiKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5tYXBwaW5nLmFjdGl2ZS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgLy8gQ2hhbm5lbCBuYW1lDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAieC1uYW1lIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgaWYgKEJVTEtfRURJVCA9PSB0cnVlKSB7DQogICAgICAgICAgICAgICAgaW5wdXQuc3R5bGUuYm9yZGVyID0gInNvbGlkIDFweCByZWQiOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicmVhZG9ubHkiLCAidHJ1ZSIpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7Lm1hcHBpbmcuY2hhbm5lbE5hbWUudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIGNvbnRlbnQuZGVzY3JpcHRpb24oZGF0YVsibmFtZSJdKTsNCiAgICAgICAgICAgIC8vIERlc2NyaXB0aW9uDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAieC1kZXNjcmlwdGlvbiI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3subWFwcGluZy5kZXNjcmlwdGlvbi5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3subWFwcGluZy5kZXNjcmlwdGlvbi50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgLy8gVXBkYXRlIHRoZSBjaGFubmVsIG5hbWUNCiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCJfdXVpZC5rZXkiKSkgew0KICAgICAgICAgICAgICAgIGlmIChkYXRhWyJfdXVpZC5rZXkiXSAhPSAiIikgew0KICAgICAgICAgICAgICAgICAgICB2YXIgZGJLZXkgPSAieC11cGRhdGUtY2hhbm5lbC1uYW1lIjsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChkYktleSk7DQogICAgICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGFbZGJLZXldOw0KICAgICAgICAgICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3subWFwcGluZy51cGRhdGVDaGFubmVsTmFtZS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIC8vIExvZ28gVVJMIChDaGFubmVsKSANCiAgICAgICAgICAgIHZhciBkYktleSA9ICJ0dmctbG9nbyI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgiaWQiLCAiY2hhbm5lbC1pY29uIik7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3subWFwcGluZy5jaGFubmVsTG9nby50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgLy8gQ2hhbm5lbCBsb2dvIHVwZGF0ZQ0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gIngtdXBkYXRlLWNoYW5uZWwtaWNvbiI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KGRiS2V5KTsNCiAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhW2RiS2V5XTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgiaWQiLCAidXBkYXRlLWljb24iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCc7IGNoYW5nZUNoYW5uZWxMb2dvKCciICsgaWQgKyAiJyk7Iik7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3subWFwcGluZy51cGRhdGVDaGFubmVsTG9nby50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgLy8gRXhwYW5kIEVQRyBjYXRlZ29yeQ0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gIngtY2F0ZWdvcnkiOw0KICAgICAgICAgICAgdmFyIHRleHQgPSBbIi0iLCAiS2lkcyAoRW1ieSBvbmx5KSIsICJOZXdzIiwgIk1vdmllIiwgIlNlcmllcyIsICJTcG9ydHMiXTsNCiAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBbIiIsICJLaWRzIiwgIk5ld3MiLCAiTW92aWUiLCAiU2VyaWVzIiwgIlNwb3J0cyJdOw0KICAgICAgICAgICAgdmFyIHNlbGVjdCA9IGNvbnRlbnQuY3JlYXRlU2VsZWN0KHRleHQsIHZhbHVlcywgZGF0YVtkYktleV0sIGRiS2V5KTsNCiAgICAgICAgICAgIHNlbGVjdC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3subWFwcGluZy5lcGdDYXRlZ29yeS50aXRsZX19Iiwgc2VsZWN0KTsNCiAgICAgICAgICAgIC8vIE0zVSBncm91cCB0aXRsZQ0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gIngtZ3JvdXAtdGl0bGUiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICBpbnB1dC5kYXRhc2V0Lm9sZFZhbHVlID0gZGF0YVtkYktleV07DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3subWFwcGluZy5tM3VHcm91cFRpdGxlLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICBpZiAoZGF0YVsiZ3JvdXAtdGl0bGUiXSAhPSB1bmRlZmluZWQpIHsNCiAgICAgICAgICAgICAgICBjb250ZW50LmRlc2NyaXB0aW9uKGRhdGFbImdyb3VwLXRpdGxlIl0pOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgaWYgKGRhdGFbIngtdXBkYXRlLWNoYW5uZWwtZ3JvdXAiXSA9PSB0cnVlKSB7DQogICAgICAgICAgICAgICAgaW5wdXQuZGlzYWJsZWQgPSB0cnVlOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgLy8gVXBkYXRlIGNoYW5uZWwgZ3JvdXAgY2hlY2tib3gNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJ4LXVwZGF0ZS1jaGFubmVsLWdyb3VwIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goZGJLZXkpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0b2dnbGVHcm91cFVwZGF0ZUNiKCciICsgaWQgKyAiJywgdGhpcyk7Iik7DQogICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YVtkYktleV07DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3subWFwcGluZy51cGRhdGVDaGFubmVsR3JvdXAudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIGNvbnRlbnQuZGVzY3JpcHRpb24oInt7Lm1hcHBpbmcudXBkYXRlQ2hhbm5lbEdyb3VwLmRlc2NyaXB0aW9ufX0iKTsNCiAgICAgICAgICAgIC8vIFhNTFRWIGZpbGUNCiAgICAgICAgICAgIHZhciBkYktleSA9ICd4LXhtbHR2LWZpbGUnOw0KICAgICAgICAgICAgY29uc3QgeG1sVHZGaWxlID0gZGF0YVtkYktleV07DQogICAgICAgICAgICB2YXIgeG1sVHYgPSBuZXcgWE1MVFZGaWxlKCk7DQogICAgICAgICAgICBjb25zdCB4bWxUdkZpbGVTZWxlY3QgPSB4bWxUdi5nZXRGaWxlcyhkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICB4bWxUdkZpbGVTZWxlY3Quc2V0QXR0cmlidXRlKCduYW1lJywgZGJLZXkpOw0KICAgICAgICAgICAgeG1sVHZGaWxlU2VsZWN0LnNldEF0dHJpYnV0ZSgnaWQnLCAncG9wdXAteG1sdHYnKTsNCiAgICAgICAgICAgIHhtbFR2RmlsZVNlbGVjdC5zZXRBdHRyaWJ1dGUoJ29uY2hhbmdlJywgYGphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnOyBzZXRYbWx0dkNoYW5uZWwoJyR7aWR9JywgdGhpcyk7YCk7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygne3subWFwcGluZy54bWx0dkZpbGUudGl0bGV9fScsIHhtbFR2RmlsZVNlbGVjdCk7DQogICAgICAgICAgICAvLyBYTUxUViBNYXBwaW5nDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAneC1tYXBwaW5nJzsNCiAgICAgICAgICAgIHZhciB4bWxUdiA9IG5ldyBYTUxUVkZpbGUoKTsNCiAgICAgICAgICAgIGNvbnN0IGN1cnJlbnRYbWxUdklkID0gZGF0YVtkYktleV07DQogICAgICAgICAgICBjb25zdCBbeG1sVHZJZENvbnRhaW5lciwgeG1sVHZJZElucHV0LCB4bWxUdklkRGF0YWxpc3RdID0geG1sVHYubmV3WG1sVHZJZFBpY2tlcih4bWxUdkZpbGUsIGN1cnJlbnRYbWxUdklkKTsNCiAgICAgICAgICAgIHhtbFR2SWRDb250YWluZXIuc2V0QXR0cmlidXRlKCdpZCcsICd4bWx0di1pZC1waWNrZXItY29udGFpbmVyJyk7DQogICAgICAgICAgICB4bWxUdklkSW5wdXQuc2V0QXR0cmlidXRlKCdsaXN0JywgJ3htbHR2LWlkLXBpY2tlci1kYXRhbGlzdCcpOw0KICAgICAgICAgICAgeG1sVHZJZElucHV0LnNldEF0dHJpYnV0ZSgnbmFtZScsICd4LW1hcHBpbmcnKTsgLy8gU2hvdWxkIHN0YXkgeC1tYXBwaW5nIGFzIGl0IHdpbGwgYmUgdXNlZCBpbiBkb25lUG9wdXBEYXRhIHRvIG1ha2UgYSBzZXJ2ZXIgcmVxdWVzdA0KICAgICAgICAgICAgeG1sVHZJZElucHV0LnNldEF0dHJpYnV0ZSgnaWQnLCAneG1sdHYtaWQtcGlja2VyLWlucHV0Jyk7DQogICAgICAgICAgICB4bWxUdklkSW5wdXQuc2V0QXR0cmlidXRlKCdvbmNoYW5nZScsIGBqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJzsgY2hlY2tYbWx0dkNoYW5uZWwoJyR7aWR9JywgdGhpcy52YWx1ZSwgJyR7eG1sVHZGaWxlfScpO2ApOw0KICAgICAgICAgICAgeG1sVHZJZERhdGFsaXN0LnNldEF0dHJpYnV0ZSgnaWQnLCAneG1sdHYtaWQtcGlja2VyLWRhdGFsaXN0Jyk7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygne3subWFwcGluZy54bWx0dkNoYW5uZWwudGl0bGV9fScsIHhtbFR2SWRDb250YWluZXIpOw0KICAgICAgICAgICAgLy8gVGltZXNoaWZ0DQogICAgICAgICAgICB2YXIgZGJLZXkgPSAieC10aW1lc2hpZnQiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7Lm1hcHBpbmcudGltZXNoaWZ0LnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgiaWQiLCAidGltZXNoaWZ0Iik7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3subWFwcGluZy50aW1lc2hpZnQudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIEludGVyYWN0aW9uDQogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUludGVyYWN0aW9uKCk7DQogICAgICAgICAgICAvLyBVcGxvYWQgbG9nbw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImNhbmNlbCIsICJ7ey5idXR0b24udXBsb2FkTG9nb319Iik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogdXBsb2FkTG9nbygpOycpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICAvLyBBYm9ydA0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImNhbmNlbCIsICJ7ey5idXR0b24uY2FuY2VsfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBzaG93RWxlbWVudCgicG9wdXAiLCBmYWxzZSk7Jyk7DQogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIC8vIEZpbmlzaGVkDQogICAgICAgICAgICB2YXIgaWRzID0gW107DQogICAgICAgICAgICBpZHMgPSBnZXRBbGxTZWxlY3RlZENoYW5uZWxzKCk7DQogICAgICAgICAgICBpZiAoaWRzLmxlbmd0aCA9PSAwKSB7DQogICAgICAgICAgICAgICAgaWRzLnB1c2goaWQpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgInNhdmUiLCAie3suYnV0dG9uLmRvbmV9fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IGRvbmVQb3B1cERhdGEoIicgKyBkYXRhVHlwZSArICciLCAiJyArIGlkcyArICciLCAiZmFsc2UiKTsnKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICBicmVhazsNCiAgICB9DQogICAgc2hvd1BvcFVwRWxlbWVudCgncG9wdXAtY3VzdG9tJyk7DQp9DQpjbGFzcyBYTUxUVkZpbGUgew0KICAgIGdldEZpbGVzKHNldCkgew0KICAgICAgICBsZXQgZmlsZUlEcyA9IGdldE93bk9ialByb3BzKFNFUlZFUlsieGVwZyJdWyJ4bWx0dk1hcCJdKTsNCiAgICAgICAgbGV0IHZhbHVlcyA9IG5ldyBBcnJheSgiLSIpOw0KICAgICAgICBsZXQgdGV4dCA9IG5ldyBBcnJheSgiLSIpOw0KICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGZpbGVJRHMubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgICAgIGlmIChmaWxlSURzW2ldICE9ICJ4VGVWZSBEdW1teSIpIHsNCiAgICAgICAgICAgICAgICB2YWx1ZXMucHVzaChnZXRWYWx1ZUZyb21Qcm92aWRlckZpbGUoZmlsZUlEc1tpXSwgInhtbHR2IiwgImZpbGUueHRldmUiKSk7DQogICAgICAgICAgICAgICAgdGV4dC5wdXNoKGdldFZhbHVlRnJvbVByb3ZpZGVyRmlsZShmaWxlSURzW2ldLCAieG1sdHYiLCAibmFtZSIpKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgICAgIHZhbHVlcy5wdXNoKGZpbGVJRHNbaV0pOw0KICAgICAgICAgICAgICAgIHRleHQucHVzaChmaWxlSURzW2ldKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KICAgICAgICBsZXQgc2VsZWN0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiU0VMRUNUIik7DQogICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGV4dC5sZW5ndGg7IGkrKykgew0KICAgICAgICAgICAgdmFyIG9wdGlvbiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIk9QVElPTiIpOw0KICAgICAgICAgICAgb3B0aW9uLnNldEF0dHJpYnV0ZSgidmFsdWUiLCB2YWx1ZXNbaV0pOw0KICAgICAgICAgICAgb3B0aW9uLmlubmVyVGV4dCA9IHRleHRbaV07DQogICAgICAgICAgICBzZWxlY3QuYXBwZW5kQ2hpbGQob3B0aW9uKTsNCiAgICAgICAgfQ0KICAgICAgICBpZiAoc2V0ICE9ICIiKSB7DQogICAgICAgICAgICBzZWxlY3QudmFsdWUgPSBzZXQ7DQogICAgICAgIH0NCiAgICAgICAgcmV0dXJuIHNlbGVjdDsNCiAgICB9DQogICAgLyoqDQogICAgICogQHBhcmFtIHhtbFR2RmlsZSBYTUwgZmlsZSBwYXRoIHRvIGdldCBFUEcgZnJvbS4NCiAgICAgKiBAcGFyYW0gY3VycmVudFhtbFR2SWQgQ3VycmVudCBYTUxUViBJRCB0byBzZXQgaW5pdGlhbCBpbnB1dCB2YWx1ZSB0by4NCiAgICAgKiBAcmV0dXJucyBBcnJheSBvZiwgc2VxdWVudGlhbGx5Og0KICAgICAqIDEpIENvbnRhaW5lciBvZiB0aGUgcGlja2VyLg0KICAgICAqIDIpIElucHV0IGZpZWxkIHRvIHR5cGUgYXQgYW5kIGdldCBjaG9pY2UgZnJvbS4NCiAgICAgKiAzKSBEYXRhbGlzdCBjb250YWluaW5nIGV2ZXJ5IG9wdGlvbi4NCiAgICAgKi8NCiAgICBuZXdYbWxUdklkUGlja2VyKHhtbFR2RmlsZSwgY3VycmVudFhtbFR2SWQpIHsNCiAgICAgICAgY29uc3QgY29udGFpbmVyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7DQogICAgICAgIGNvbnN0IGlucHV0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnaW5wdXQnKTsNCiAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCd0eXBlJywgJ3RleHQnKTsNCiAgICAgICAgLy8gSW5pdGlhbGx5LCBzZXQgdmFsdWUgdG8gJy0nIGlmIGlucHV0IGlzIGVtcHR5DQogICAgICAgIGlucHV0LnZhbHVlID0gKGN1cnJlbnRYbWxUdklkKSA/IGN1cnJlbnRYbWxUdklkIDogJy0nOw0KICAgICAgICAvLyBXaGVuIGlucHV0IGlzIGZvY3VzZWQsIHJlbW92ZSAnLScgZnJvbSBpdA0KICAgICAgICBpbnB1dC5hZGRFdmVudExpc3RlbmVyKCdmb2N1cycsIChldnQpID0+IHsNCiAgICAgICAgICAgIGNvbnN0IHRhcmdldCA9IGV2dC50YXJnZXQ7DQogICAgICAgICAgICB0YXJnZXQudmFsdWUgPSAodGFyZ2V0LnZhbHVlID09PSAnLScpID8gJycgOiB0YXJnZXQudmFsdWU7DQogICAgICAgIH0pOw0KICAgICAgICAvLyBXaGVuIGlucHV0IGxvc2UgZm9jdXMgb3IgdGFrZSBhIHZhbHVlLCBpZiBpdCdzIGVtcHR5LCBzZXQgdmFsdWUgdG8gJy0nDQogICAgICAgIGlucHV0LmFkZEV2ZW50TGlzdGVuZXIoJ2JsdXInLCBzZXRGYWxsYmFja1ZhbHVlKTsNCiAgICAgICAgaW5wdXQuYWRkRXZlbnRMaXN0ZW5lcignY2hhbmdlJywgc2V0RmFsbGJhY2tWYWx1ZSk7DQogICAgICAgIGZ1bmN0aW9uIHNldEZhbGxiYWNrVmFsdWUoZXZ0KSB7DQogICAgICAgICAgICBjb25zdCB0YXJnZXQgPSBldnQudGFyZ2V0Ow0KICAgICAgICAgICAgdGFyZ2V0LnZhbHVlID0gKHRhcmdldC52YWx1ZSkgPyB0YXJnZXQudmFsdWUgOiAnLSc7DQogICAgICAgIH0NCiAgICAgICAgY29udGFpbmVyLmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgY29uc3QgZGF0YWxpc3QgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkYXRhbGlzdCcpOw0KICAgICAgICBjb25zdCBvcHRpb24gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdvcHRpb24nKTsNCiAgICAgICAgb3B0aW9uLnNldEF0dHJpYnV0ZSgndmFsdWUnLCAnLScpOw0KICAgICAgICBvcHRpb24uaW5uZXJUZXh0ID0gJy0nOw0KICAgICAgICBkYXRhbGlzdC5hcHBlbmRDaGlsZChvcHRpb24pOw0KICAgICAgICBjb25zdCBlcGcgPSBTRVJWRVJbJ3hlcGcnXVsneG1sdHZNYXAnXVt4bWxUdkZpbGVdOw0KICAgICAgICBpZiAoZXBnKSB7DQogICAgICAgICAgICBjb25zdCBwcm9ncmFtSWRzID0gZ2V0T3duT2JqUHJvcHMoZXBnKTsNCiAgICAgICAgICAgIHByb2dyYW1JZHMuZm9yRWFjaCgocHJvZ3JhbUlkKSA9PiB7DQogICAgICAgICAgICAgICAgY29uc3QgcHJvZ3JhbSA9IGVwZ1twcm9ncmFtSWRdOw0KICAgICAgICAgICAgICAgIGlmIChwcm9ncmFtLmhhc093blByb3BlcnR5KCdkaXNwbGF5LW5hbWVzJykpIHsNCiAgICAgICAgICAgICAgICAgICAgcHJvZ3JhbVsnZGlzcGxheS1uYW1lcyddLmZvckVhY2goKGRpc3BsYXlOYW1lKSA9PiB7DQogICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBvcHRpb24gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdvcHRpb24nKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIG9wdGlvbi5zZXRBdHRyaWJ1dGUoJ3ZhbHVlJywgcHJvZ3JhbUlkKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIG9wdGlvbi5pbm5lclRleHQgPSBkaXNwbGF5TmFtZVsnVmFsdWUnXTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGRhdGFsaXN0LmFwcGVuZENoaWxkKG9wdGlvbik7DQogICAgICAgICAgICAgICAgICAgIH0pOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICAgICAgY29uc3Qgb3B0aW9uID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnb3B0aW9uJyk7DQogICAgICAgICAgICAgICAgICAgIG9wdGlvbi5zZXRBdHRyaWJ1dGUoJ3ZhbHVlJywgcHJvZ3JhbUlkKTsNCiAgICAgICAgICAgICAgICAgICAgb3B0aW9uLmlubmVyVGV4dCA9ICctJzsNCiAgICAgICAgICAgICAgICAgICAgZGF0YWxpc3QuYXBwZW5kQ2hpbGQob3B0aW9uKTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9KTsNCiAgICAgICAgfQ0KICAgICAgICBjb250YWluZXIuYXBwZW5kQ2hpbGQoZGF0YWxpc3QpOw0KICAgICAgICByZXR1cm4gW2NvbnRhaW5lciwgaW5wdXQsIGRhdGFsaXN0XTsNCiAgICB9DQp9DQpmdW5jdGlvbiBnZXRWYWx1ZUZyb21Qcm92aWRlckZpbGUoZmlsZSwgZmlsZVR5cGUsIGtleSkgew0KICAgIGlmIChmaWxlID09ICJ4VGVWZSBEdW1teSIpIHsNCiAgICAgICAgcmV0dXJuIGZpbGU7DQogICAgfQ0KICAgIGxldCBmaWxlSUQ7DQogICAgbGV0IGluZGljYXRvciA9IGZpbGUuY2hhckF0KDApOw0KICAgIHN3aXRjaCAoaW5kaWNhdG9yKSB7DQogICAgICAgIGNhc2UgIk0iOg0KICAgICAgICAgICAgZmlsZVR5cGUgPSAibTN1IjsNCiAgICAgICAgICAgIGZpbGVJRCA9IGZpbGU7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSAiSCI6DQogICAgICAgICAgICBmaWxlVHlwZSA9ICJoZGhyIjsNCiAgICAgICAgICAgIGZpbGVJRCA9IGZpbGU7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSAiWCI6DQogICAgICAgICAgICBmaWxlVHlwZSA9ICJ4bWx0diI7DQogICAgICAgICAgICBmaWxlSUQgPSBmaWxlLnN1YnN0cmluZygwLCBmaWxlLmxhc3RJbmRleE9mKCcuJykpOw0KICAgICAgICAgICAgYnJlYWs7DQogICAgfQ0KICAgIGlmIChTRVJWRVJbInNldHRpbmdzIl1bImZpbGVzIl1bZmlsZVR5cGVdLmhhc093blByb3BlcnR5KGZpbGVJRCkgPT0gdHJ1ZSkgew0KICAgICAgICB2YXIgZGF0YSA9IFNFUlZFUlsic2V0dGluZ3MiXVsiZmlsZXMiXVtmaWxlVHlwZV1bZmlsZUlEXTsNCiAgICAgICAgcmV0dXJuIGRhdGFba2V5XTsNCiAgICB9DQogICAgcmV0dXJuOw0KfQ0KZnVuY3Rpb24gc2V0WG1sdHZDaGFubmVsKGVwZ01hcElkLCB4bWxUdkZpbGVTZWxlY3QpIHsNCiAgICBjb25zdCB4bWxUdiA9IG5ldyBYTUxUVkZpbGUoKTsNCiAgICBjb25zdCBuZXdYbWxUdkZpbGUgPSB4bWxUdkZpbGVTZWxlY3QudmFsdWU7DQogICAgLy8gUmVtb3ZlIG9sZCBYTUxUViBJRCBzZWxlY3Rpb24gYm94DQogICAgY29uc3QgeG1sVHZJZFBpY2tlclBhcmVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd4bWx0di1pZC1waWNrZXItY29udGFpbmVyJykucGFyZW50RWxlbWVudDsNCiAgICB4bWxUdklkUGlja2VyUGFyZW50LmlubmVySFRNTCA9ICcnOw0KICAgIC8vIENyZWF0ZSBuZXcgWE1MVFYgSUQgc2VsZWN0aW9uIGJveA0KICAgIGNvbnN0IHR2Z0lkID0gU0VSVkVSWyd4ZXBnJ11bJ2VwZ01hcHBpbmcnXVtlcGdNYXBJZF1bJ3R2Zy1pZCddOw0KICAgIGNvbnN0IFt4bWxUdklkQ29udGFpbmVyLCB4bWxUdklkSW5wdXQsIHhtbFR2SWREYXRhbGlzdF0gPSB4bWxUdi5uZXdYbWxUdklkUGlja2VyKG5ld1htbFR2RmlsZSwgdHZnSWQpOw0KICAgIHhtbFR2SWRDb250YWluZXIuc2V0QXR0cmlidXRlKCdpZCcsICd4bWx0di1pZC1waWNrZXItY29udGFpbmVyJyk7DQogICAgeG1sVHZJZElucHV0LnNldEF0dHJpYnV0ZSgnbGlzdCcsICd4bWx0di1pZC1waWNrZXItZGF0YWxpc3QnKTsNCiAgICB4bWxUdklkSW5wdXQuc2V0QXR0cmlidXRlKCduYW1lJywgJ3gtbWFwcGluZycpOyAvLyBTaG91bGQgc3RheSB4LW1hcHBpbmcgYXMgaXQgd2lsbCBiZSB1c2VkIGluIGRvbmVQb3B1cERhdGEgdG8gbWFrZSBhIHNlcnZlciByZXF1ZXN0DQogICAgeG1sVHZJZElucHV0LnNldEF0dHJpYnV0ZSgnaWQnLCAneG1sdHYtaWQtcGlja2VyLWlucHV0Jyk7DQogICAgeG1sVHZJZElucHV0LnNldEF0dHJpYnV0ZSgnb25jaGFuZ2UnLCBgamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCc7IGNoZWNrWG1sdHZDaGFubmVsKCcke2VwZ01hcElkfScsIHRoaXMudmFsdWUsICcke25ld1htbFR2RmlsZX0nKTtgKTsNCiAgICB4bWxUdklkSW5wdXQuY2xhc3NMaXN0LmFkZCgnY2hhbmdlZCcpOw0KICAgIHhtbFR2SWREYXRhbGlzdC5zZXRBdHRyaWJ1dGUoJ2lkJywgJ3htbHR2LWlkLXBpY2tlci1kYXRhbGlzdCcpOw0KICAgIC8vIEFkZCBuZXcgWE1MVFYgSUQgc2VsZWN0aW9uIGJveCB0byBpdCdzIHBhcmVudA0KICAgIHhtbFR2SWRQaWNrZXJQYXJlbnQuYXBwZW5kQ2hpbGQoeG1sVHZJZENvbnRhaW5lcik7DQogICAgY2hlY2tYbWx0dkNoYW5uZWwoZXBnTWFwSWQsIHhtbFR2SWRJbnB1dC52YWx1ZSwgbmV3WG1sVHZGaWxlKTsNCn0NCmZ1bmN0aW9uIGNoZWNrWG1sdHZDaGFubmVsKGVwZ01hcElkLCBuZXdYbWxUdklkLCB4bWxUdkZpbGUpIHsNCiAgICBjb25zdCBjaGFubmVsQWN0aXZlQ2IgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYWN0aXZlJyk7DQogICAgY29uc3QgY2hhbm5lbEFjdGl2ZSA9IG5ld1htbFR2SWQgIT0gJy0nOw0KICAgIGNoYW5uZWxBY3RpdmVDYi5jaGVja2VkID0gY2hhbm5lbEFjdGl2ZTsNCiAgICBjaGFubmVsQWN0aXZlQ2IuY2xhc3NOYW1lID0gJ2NoYW5nZWQnOw0KICAgIGlmICh4bWxUdkZpbGUgIT0gJ3hUZVZlIER1bW15JyAmJiBjaGFubmVsQWN0aXZlID09IHRydWUpIHsNCiAgICAgICAgY2hhbmdlQ2hhbm5lbExvZ28oZXBnTWFwSWQpOw0KICAgICAgICByZXR1cm47DQogICAgfQ0KICAgIGlmICh4bWxUdkZpbGUgPT0gJ3hUZVZlIER1bW15Jykgew0KICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndXBkYXRlLWljb24nKS5jaGVja2VkID0gZmFsc2U7DQogICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd1cGRhdGUtaWNvbicpLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJzsNCiAgICB9DQp9DQpmdW5jdGlvbiBjaGFuZ2VDaGFubmVsTG9nbyhlcGdNYXBJZCkgew0KICAgIGNvbnN0IGNoYW5uZWwgPSBTRVJWRVJbJ3hlcGcnXVsnZXBnTWFwcGluZyddW2VwZ01hcElkXTsNCiAgICBjb25zdCB4bWxUdkZpbGVTZWxlY3QgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncG9wdXAteG1sdHYnKTsNCiAgICBjb25zdCB4bWxUdkZpbGUgPSB4bWxUdkZpbGVTZWxlY3Qub3B0aW9uc1t4bWxUdkZpbGVTZWxlY3Quc2VsZWN0ZWRJbmRleF0udmFsdWU7DQogICAgY29uc3QgeG1sVHZJZElucHV0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3htbHR2LWlkLXBpY2tlci1pbnB1dCcpOw0KICAgIGNvbnN0IG5ld1htbFR2SWQgPSB4bWxUdklkSW5wdXQudmFsdWU7DQogICAgY29uc3QgdXBkYXRlTG9nbyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd1cGRhdGUtaWNvbicpLmNoZWNrZWQ7DQogICAgbGV0IGxvZ287DQogICAgaWYgKHVwZGF0ZUxvZ28gPT0gdHJ1ZSAmJiB4bWxUdkZpbGUgIT0gJ3hUZVZlIER1bW15Jykgew0KICAgICAgICBpZiAoU0VSVkVSWyd4ZXBnJ11bJ3htbHR2TWFwJ11beG1sVHZGaWxlXS5oYXNPd25Qcm9wZXJ0eShuZXdYbWxUdklkKSkgew0KICAgICAgICAgICAgbG9nbyA9IFNFUlZFUlsneGVwZyddWyd4bWx0dk1hcCddW3htbFR2RmlsZV1bbmV3WG1sVHZJZF1bJ2ljb24nXTsNCiAgICAgICAgfQ0KICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgIGxvZ28gPSBjaGFubmVsWyd0dmctbG9nbyddOw0KICAgICAgICB9DQogICAgICAgIHZhciBsb2dvSW5wdXQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY2hhbm5lbC1pY29uJyk7DQogICAgICAgIGxvZ29JbnB1dC52YWx1ZSA9IGxvZ287DQogICAgICAgIGlmIChCVUxLX0VESVQgPT0gZmFsc2UpIHsNCiAgICAgICAgICAgIGxvZ29JbnB1dC5jbGFzc05hbWUgPSAnY2hhbmdlZCc7DQogICAgICAgIH0NCiAgICB9DQp9DQpmdW5jdGlvbiBzYXZlUG9wdXBEYXRhKGRhdGFUeXBlLCBpZCwgcmVtb3ZlLCBvcHRpb24pIHsNCiAgICBpZiAoZGF0YVR5cGUgPT0gIm1hcHBpbmciKSB7DQogICAgICAgIGxldCBkYXRhID0ge307DQogICAgICAgIGxldCBjbWQgPSAic2F2ZUVwZ01hcHBpbmciOw0KICAgICAgICBkYXRhWyJlcGdNYXBwaW5nIl0gPSBTRVJWRVJbInhlcGciXVsiZXBnTWFwcGluZyJdOw0KICAgICAgICBsZXQgc2VydmVyID0gbmV3IFNlcnZlcihjbWQpOw0KICAgICAgICBzZXJ2ZXIucmVxdWVzdChkYXRhKTsNCiAgICAgICAgZGVsZXRlIFVORE9bImVwZ01hcHBpbmciXTsNCiAgICAgICAgcmV0dXJuOw0KICAgIH0NCiAgICBsZXQgZGl2ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInBvcHVwLWN1c3RvbSIpOw0KICAgIGxldCBpbnB1dHMgPSBkaXYuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlRBQkxFIilbMF0uZ2V0RWxlbWVudHNCeVRhZ05hbWUoIklOUFVUIik7DQogICAgbGV0IHNlbGVjdHMgPSBkaXYuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlRBQkxFIilbMF0uZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlNFTEVDVCIpOw0KICAgIGxldCBpbnB1dCA9IHt9Ow0KICAgIGxldCBjb25maXJtTXNnOw0KICAgIGZvciAobGV0IGkgPSAwOyBpIDwgc2VsZWN0cy5sZW5ndGg7IGkrKykgew0KICAgICAgICB2YXIgbmFtZTsNCiAgICAgICAgbmFtZSA9IHNlbGVjdHNbaV0ubmFtZTsNCiAgICAgICAgdmFyIHZhbHVlID0gc2VsZWN0c1tpXS52YWx1ZTsNCiAgICAgICAgc3dpdGNoIChuYW1lKSB7DQogICAgICAgICAgICBjYXNlICJ0dW5lciI6DQogICAgICAgICAgICAgICAgaW5wdXRbbmFtZV0gPSBwYXJzZUludCh2YWx1ZSk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBkZWZhdWx0Og0KICAgICAgICAgICAgICAgIGlucHV0W25hbWVdID0gdmFsdWU7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIH0NCiAgICB9DQogICAgZm9yIChsZXQgaSA9IDA7IGkgPCBpbnB1dHMubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgc3dpdGNoIChpbnB1dHNbaV0udHlwZSkgew0KICAgICAgICAgICAgY2FzZSAiY2hlY2tib3giOg0KICAgICAgICAgICAgICAgIG5hbWUgPSBpbnB1dHNbaV0ubmFtZTsNCiAgICAgICAgICAgICAgICBpbnB1dFtuYW1lXSA9IGlucHV0c1tpXS5jaGVja2VkOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAidGV4dCI6DQogICAgICAgICAgICBjYXNlICJoaWRkZW4iOg0KICAgICAgICAgICAgY2FzZSAicGFzc3dvcmQiOg0KICAgICAgICAgICAgICAgIG5hbWUgPSBpbnB1dHNbaV0ubmFtZTsNCiAgICAgICAgICAgICAgICBzd2l0Y2ggKG5hbWUpIHsNCiAgICAgICAgICAgICAgICAgICAgY2FzZSAidHVuZXIiOg0KICAgICAgICAgICAgICAgICAgICAgICAgaW5wdXRbbmFtZV0gPSBwYXJzZUludChpbnB1dHNbaV0udmFsdWUpOw0KICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICAgICAgICAgICAgICBpbnB1dFtuYW1lXSA9IGlucHV0c1tpXS52YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgfQ0KICAgIH0NCiAgICBsZXQgZGF0YSA9IHt9Ow0KICAgIGxldCBjbWQ7DQogICAgaWYgKHJlbW92ZSA9PSB0cnVlKSB7DQogICAgICAgIGlucHV0WyJkZWxldGUiXSA9IHRydWU7DQogICAgfQ0KICAgIHN3aXRjaCAoZGF0YVR5cGUpIHsNCiAgICAgICAgY2FzZSAidXNlcnMiOg0KICAgICAgICAgICAgY29uZmlybU1zZyA9ICJEZWxldGUgdGhpcyB1c2VyPyI7DQogICAgICAgICAgICBpZiAoaWQgPT0gIi0iKSB7DQogICAgICAgICAgICAgICAgY21kID0gInNhdmVOZXdVc2VyIjsNCiAgICAgICAgICAgICAgICBkYXRhWyJ1c2VyRGF0YSJdID0gaW5wdXQ7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICBjbWQgPSAic2F2ZVVzZXJEYXRhIjsNCiAgICAgICAgICAgICAgICBsZXQgZCA9IHt9Ow0KICAgICAgICAgICAgICAgIGRbaWRdID0gaW5wdXQ7DQogICAgICAgICAgICAgICAgZGF0YVsidXNlckRhdGEiXSA9IGQ7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSAibTN1IjoNCiAgICAgICAgICAgIGNvbmZpcm1Nc2cgPSAiRGVsZXRlIHRoaXMgcGxheWxpc3Q/IjsNCiAgICAgICAgICAgIHN3aXRjaCAob3B0aW9uKSB7DQogICAgICAgICAgICAgICAgLy8gUG9wdXA6IFNhdmUNCiAgICAgICAgICAgICAgICBjYXNlIDA6DQogICAgICAgICAgICAgICAgICAgIGNtZCA9ICJzYXZlRmlsZXNNM1UiOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICAvLyBQb3B1cDogVXBkYXRlDQogICAgICAgICAgICAgICAgY2FzZSAxOg0KICAgICAgICAgICAgICAgICAgICBjbWQgPSAidXBkYXRlRmlsZU0zVSI7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgZGF0YVsiZmlsZXMiXSA9IHt9Ow0KICAgICAgICAgICAgZGF0YVsiZmlsZXMiXVtkYXRhVHlwZV0gPSB7fTsNCiAgICAgICAgICAgIGRhdGFbImZpbGVzIl1bZGF0YVR5cGVdW2lkXSA9IGlucHV0Ow0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGNhc2UgImhkaHIiOg0KICAgICAgICAgICAgY29uZmlybU1zZyA9ICJEZWxldGUgdGhpcyBIREhvbWVSdW4gdHVuZXI/IjsNCiAgICAgICAgICAgIHN3aXRjaCAob3B0aW9uKSB7DQogICAgICAgICAgICAgICAgLy8gUG9wdXA6IFNhdmUNCiAgICAgICAgICAgICAgICBjYXNlIDA6DQogICAgICAgICAgICAgICAgICAgIGNtZCA9ICJzYXZlRmlsZXNIREhSIjsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgLy8gUG9wdXA6IFVwZGF0ZQ0KICAgICAgICAgICAgICAgIGNhc2UgMToNCiAgICAgICAgICAgICAgICAgICAgY21kID0gInVwZGF0ZUZpbGVIREhSIjsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBkYXRhWyJmaWxlcyJdID0ge307DQogICAgICAgICAgICBkYXRhWyJmaWxlcyJdW2RhdGFUeXBlXSA9IHt9Ow0KICAgICAgICAgICAgZGF0YVsiZmlsZXMiXVtkYXRhVHlwZV1baWRdID0gaW5wdXQ7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSAieG1sdHYiOg0KICAgICAgICAgICAgY29uZmlybU1zZyA9ICJEZWxldGUgdGhpcyBYTUxUViBmaWxlPyI7DQogICAgICAgICAgICBzd2l0Y2ggKG9wdGlvbikgew0KICAgICAgICAgICAgICAgIC8vIFBvcHVwOiBTYXZlDQogICAgICAgICAgICAgICAgY2FzZSAwOg0KICAgICAgICAgICAgICAgICAgICBjbWQgPSAic2F2ZUZpbGVzWE1MVFYiOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICAvLyBQb3B1cDogVXBkYXRlDQogICAgICAgICAgICAgICAgY2FzZSAxOg0KICAgICAgICAgICAgICAgICAgICBjbWQgPSAidXBkYXRlRmlsZVhNTFRWIjsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBkYXRhWyJmaWxlcyJdID0ge307DQogICAgICAgICAgICBkYXRhWyJmaWxlcyJdW2RhdGFUeXBlXSA9IHt9Ow0KICAgICAgICAgICAgZGF0YVsiZmlsZXMiXVtkYXRhVHlwZV1baWRdID0gaW5wdXQ7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSAiZmlsdGVyIjoNCiAgICAgICAgICAgIGNvbmZpcm1Nc2cgPSAiRGVsZXRlIHRoaXMgZmlsdGVyPyI7DQogICAgICAgICAgICBjbWQgPSAic2F2ZUZpbHRlciI7DQogICAgICAgICAgICBkYXRhWyJmaWx0ZXIiXSA9IHt9Ow0KICAgICAgICAgICAgZGF0YVsiZmlsdGVyIl1baWRdID0gaW5wdXQ7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgIHJldHVybjsNCiAgICB9DQogICAgaWYgKHJlbW92ZSA9PSB0cnVlKSB7DQogICAgICAgIGlmICghY29uZmlybShjb25maXJtTXNnKSkgew0KICAgICAgICAgICAgc2hvd0VsZW1lbnQoInBvcHVwIiwgZmFsc2UpOw0KICAgICAgICAgICAgcmV0dXJuOw0KICAgICAgICB9DQogICAgfQ0KICAgIGxldCBzZXJ2ZXIgPSBuZXcgU2VydmVyKGNtZCk7DQogICAgc2VydmVyLnJlcXVlc3QoZGF0YSk7DQp9DQpmdW5jdGlvbiBkb25lUG9wdXBEYXRhKGRhdGFUeXBlLCBpZHNTdHIpIHsNCiAgICBsZXQgaWRzID0gaWRzU3RyLnNwbGl0KCcsJyk7DQogICAgbGV0IGRpdiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJwb3B1cC1jdXN0b20iKTsNCiAgICBsZXQgaW5wdXRzID0gZGl2LmdldEVsZW1lbnRzQnlDbGFzc05hbWUoImNoYW5nZWQiKTsNCiAgICBpZHMuZm9yRWFjaChpZCA9PiB7DQogICAgICAgIGxldCBpbnB1dDsNCiAgICAgICAgaW5wdXQgPSBTRVJWRVJbInhlcGciXVsiZXBnTWFwcGluZyJdW2lkXTsNCiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBpbnB1dHMubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgICAgIGxldCBuYW1lOw0KICAgICAgICAgICAgbGV0IHZhbHVlOw0KICAgICAgICAgICAgc3dpdGNoIChpbnB1dHNbaV0udGFnTmFtZSkgew0KICAgICAgICAgICAgICAgIGNhc2UgIklOUFVUIjoNCiAgICAgICAgICAgICAgICAgICAgc3dpdGNoIChpbnB1dHNbaV0udHlwZSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAiY2hlY2tib3giOg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWUgPSBpbnB1dHNbaV0ubmFtZTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IGlucHV0c1tpXS5jaGVja2VkOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlucHV0W25hbWVdID0gdmFsdWU7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgICAgICAgICBjYXNlICJ0ZXh0IjoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lID0gaW5wdXRzW2ldLm5hbWU7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSBpbnB1dHNbaV0udmFsdWU7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5wdXRbbmFtZV0gPSB2YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBjYXNlICJTRUxFQ1QiOg0KICAgICAgICAgICAgICAgICAgICBuYW1lID0gaW5wdXRzW2ldLm5hbWU7DQogICAgICAgICAgICAgICAgICAgIHZhbHVlID0gaW5wdXRzW2ldLnZhbHVlOw0KICAgICAgICAgICAgICAgICAgICBpbnB1dFtuYW1lXSA9IHZhbHVlOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIHN3aXRjaCAobmFtZSkgew0KICAgICAgICAgICAgICAgIGNhc2UgInR2Zy1sb2dvIjoNCiAgICAgICAgICAgICAgICAgICAgLy8oZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpLmNoaWxkTm9kZXNbMl0uZmlyc3RDaGlsZCBhcyBIVE1MRWxlbWVudCkuc2V0QXR0cmlidXRlKCJzcmMiLCB2YWx1ZSkNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAieC1uYW1lIjoNCiAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpLmNoaWxkTm9kZXNbM10uZmlyc3RDaGlsZC5pbm5lckhUTUwgPSB2YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAieC1jYXRlZ29yeSI6DQogICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5jaGlsZE5vZGVzWzNdLmZpcnN0Q2hpbGQuY2xhc3NOYW1lID0gdmFsdWU7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgIngtZ3JvdXAtdGl0bGUiOg0KICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkuY2hpbGROb2Rlc1s1XS5maXJzdENoaWxkLmlubmVySFRNTCA9IHZhbHVlOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBjYXNlICJ4LXhtbHR2LWZpbGUiOg0KICAgICAgICAgICAgICAgICAgICBpZiAodmFsdWUgIT0gInhUZVZlIER1bW15IiAmJiB2YWx1ZSAhPSAiLSIpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlID0gZ2V0VmFsdWVGcm9tUHJvdmlkZXJGaWxlKHZhbHVlLCAieG1sdHYiLCAibmFtZSIpOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIGlmICh2YWx1ZSA9PSAiLSIpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGlucHV0WyJ4LWFjdGl2ZSJdID0gZmFsc2U7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpLmNoaWxkTm9kZXNbNl0uZmlyc3RDaGlsZC5pbm5lckhUTUwgPSB2YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAieC1tYXBwaW5nIjoNCiAgICAgICAgICAgICAgICAgICAgaWYgKHZhbHVlID09ICItIikgew0KICAgICAgICAgICAgICAgICAgICAgICAgaW5wdXRbIngtYWN0aXZlIl0gPSBmYWxzZTsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkuY2hpbGROb2Rlc1s3XS5maXJzdENoaWxkLmlubmVySFRNTCA9IHZhbHVlOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBjYXNlICJ4LXRpbWVzaGlmdCI6DQogICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5jaGlsZE5vZGVzWzhdLmZpcnN0Q2hpbGQuaW5uZXJIVE1MID0gdmFsdWU7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICB9DQogICAgICAgICAgICBjcmVhdGVTZWFyY2hPYmooKTsNCiAgICAgICAgICAgIHNlYXJjaEluTWFwcGluZygpOw0KICAgICAgICB9DQogICAgICAgIGlmIChpbnB1dFsieC1hY3RpdmUiXSA9PSBmYWxzZSkgew0KICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpLmNsYXNzTmFtZSA9ICJub3RBY3RpdmVFUEciOw0KICAgICAgICB9DQogICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpLmNsYXNzTmFtZSA9ICJhY3RpdmVFUEciOw0KICAgICAgICB9DQogICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5jaGlsZE5vZGVzWzJdLmZpcnN0Q2hpbGQuc2V0QXR0cmlidXRlKCJzcmMiLCBpbnB1dFsidHZnLWxvZ28iXSk7DQogICAgfSk7DQogICAgc2hvd0VsZW1lbnQoInBvcHVwIiwgZmFsc2UpOw0KICAgIHJldHVybjsNCn0NCmZ1bmN0aW9uIHNob3dQcmV2aWV3KGVsZW1lbnQpIHsNCiAgICBsZXQgZGl2ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm15U3RyZWFtc0JveCIpOw0KICAgIHN3aXRjaCAoZWxlbWVudCkgew0KICAgICAgICBjYXNlIGZhbHNlOg0KICAgICAgICAgICAgZGl2LmNsYXNzTmFtZSA9ICJub3RWaXNpYmxlIjsNCiAgICAgICAgICAgIHJldHVybjsNCiAgICB9DQogICAgbGV0IHN0cmVhbXMgPSBbImFjdGl2ZVN0cmVhbXMiLCAiaW5hY3RpdmVTdHJlYW1zIl07DQogICAgc3RyZWFtcy5mb3JFYWNoKHByZXZpZXcgPT4gew0KICAgICAgICBsZXQgdGFibGUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChwcmV2aWV3KTsNCiAgICAgICAgdGFibGUuaW5uZXJIVE1MID0gIiI7DQogICAgICAgIGxldCBvYmogPSBTRVJWRVJbImRhdGEiXVsiU3RyZWFtUHJldmlld1VJIl1bcHJldmlld107DQogICAgICAgIG9iai5mb3JFYWNoKGNoYW5uZWwgPT4gew0KICAgICAgICAgICAgbGV0IHRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVFIiKTsNCiAgICAgICAgICAgIGxldCB0ZEtleSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICBsZXQgdGRWYWwgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgdGRLZXkuY2xhc3NOYW1lID0gInRkS2V5IjsNCiAgICAgICAgICAgIHRkVmFsLmNsYXNzTmFtZSA9ICJ0ZFZhbCI7DQogICAgICAgICAgICBzd2l0Y2ggKHByZXZpZXcpIHsNCiAgICAgICAgICAgICAgICBjYXNlICJhY3RpdmVTdHJlYW1zIjoNCiAgICAgICAgICAgICAgICAgICAgdGRLZXkuaW5uZXJUZXh0ID0gIkNoYW5uZWw6ICgrKSI7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgImluYWN0aXZlU3RyZWFtcyI6DQogICAgICAgICAgICAgICAgICAgIHRkS2V5LmlubmVyVGV4dCA9ICJDaGFubmVsOiAoLSkiOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIHRkVmFsLmlubmVyVGV4dCA9IGNoYW5uZWw7DQogICAgICAgICAgICB0ci5hcHBlbmRDaGlsZCh0ZEtleSk7DQogICAgICAgICAgICB0ci5hcHBlbmRDaGlsZCh0ZFZhbCk7DQogICAgICAgICAgICB0YWJsZS5hcHBlbmRDaGlsZCh0cik7DQogICAgICAgIH0pOw0KICAgIH0pOw0KICAgIHNob3dFbGVtZW50KCJsb2FkaW5nIiwgZmFsc2UpOw0KICAgIGRpdi5jbGFzc05hbWUgPSAidmlzaWJsZSI7DQogICAgcmV0dXJuOw0KfQ0K" webUI["html/js/network_ts.js"] = "Y2xhc3MgU2VydmVyIHsNCiAgICBjb25zdHJ1Y3RvcihjbWQpIHsNCiAgICAgICAgdGhpcy5jbWQgPSBjbWQ7DQogICAgfQ0KICAgIHJlcXVlc3QoZGF0YSkgew0KICAgICAgICBpZiAoU0VSVkVSX0NPTk5FQ1RJT04gPT0gdHJ1ZSkgew0KICAgICAgICAgICAgcmV0dXJuOw0KICAgICAgICB9DQogICAgICAgIFNFUlZFUl9DT05ORUNUSU9OID0gdHJ1ZTsNCiAgICAgICAgaWYgKHRoaXMuY21kICE9ICJ1cGRhdGVMb2ciKSB7DQogICAgICAgICAgICBzaG93RWxlbWVudCgibG9hZGluZyIsIHRydWUpOw0KICAgICAgICAgICAgVU5ETyA9IG5ldyBPYmplY3QoKTsNCiAgICAgICAgfQ0KICAgICAgICBzd2l0Y2ggKHdpbmRvdy5sb2NhdGlvbi5wcm90b2NvbCkgew0KICAgICAgICAgICAgY2FzZSAiaHR0cDoiOg0KICAgICAgICAgICAgICAgIHRoaXMucHJvdG9jb2wgPSAid3M6Ly8iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiaHR0cHM6IjoNCiAgICAgICAgICAgICAgICB0aGlzLnByb3RvY29sID0gIndzczovLyI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIH0NCiAgICAgICAgdmFyIHVybCA9IHRoaXMucHJvdG9jb2wgKyB3aW5kb3cubG9jYXRpb24uaG9zdG5hbWUgKyAiOiIgKyB3aW5kb3cubG9jYXRpb24ucG9ydCArICIvZGF0YS8iICsgIj9Ub2tlbj0iICsgZ2V0Q29va2llKCJUb2tlbiIpOw0KICAgICAgICBkYXRhWyJjbWQiXSA9IHRoaXMuY21kOw0KICAgICAgICB2YXIgd3MgPSBuZXcgV2ViU29ja2V0KHVybCk7DQogICAgICAgIHdzLm9ub3BlbiA9IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgICAgIFdTX0FWQUlMQUJMRSA9IHRydWU7DQogICAgICAgICAgICB0aGlzLnNlbmQoSlNPTi5zdHJpbmdpZnkoZGF0YSkpOw0KICAgICAgICB9Ow0KICAgICAgICB3cy5vbmVycm9yID0gZnVuY3Rpb24gKHdzRXJyRXZ0KSB7DQogICAgICAgICAgICBjb25zb2xlLmxvZygiTm8gd2Vic29ja2V0IGNvbm5lY3Rpb24gdG8geFRlVmUgY291bGQgYmUgZXN0YWJsaXNoZWQuIENoZWNrIHlvdXIgbmV0d29yayBjb25maWd1cmF0aW9uLiIpOw0KICAgICAgICAgICAgU0VSVkVSX0NPTk5FQ1RJT04gPSBmYWxzZTsNCiAgICAgICAgICAgIGlmIChXU19BVkFJTEFCTEUgPT0gZmFsc2UpIHsNCiAgICAgICAgICAgICAgICBhbGVydCgiTm8gd2Vic29ja2V0IGNvbm5lY3Rpb24gdG8geFRlVmUgY291bGQgYmUgZXN0YWJsaXNoZWQuIENoZWNrIHlvdXIgbmV0d29yayBjb25maWd1cmF0aW9uLiIpOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9Ow0KICAgICAgICB3cy5vbm1lc3NhZ2UgPSBmdW5jdGlvbiAod3NNZXNzYWdlRXZ0KSB7DQogICAgICAgICAgICBTRVJWRVJfQ09OTkVDVElPTiA9IGZhbHNlOw0KICAgICAgICAgICAgc2hvd0VsZW1lbnQoImxvYWRpbmciLCBmYWxzZSk7DQogICAgICAgICAgICBjb25zdCByZXNwb25zZSA9IEpTT04ucGFyc2Uod3NNZXNzYWdlRXZ0LmRhdGEpOw0KICAgICAgICAgICAgaWYgKHJlc3BvbnNlLmhhc093blByb3BlcnR5KCJ0b2tlbiIpKSB7DQogICAgICAgICAgICAgICAgZG9jdW1lbnQuY29va2llID0gIlRva2VuPSIgKyByZXNwb25zZVsidG9rZW4iXTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGlmIChyZXNwb25zZVsic3RhdHVzIl0gPT0gZmFsc2UpIHsNCiAgICAgICAgICAgICAgICBhbGVydChyZXNwb25zZVsiZXJyIl0pOw0KICAgICAgICAgICAgICAgIHJldHVybjsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGlmIChyZXNwb25zZS5oYXNPd25Qcm9wZXJ0eSgnb3BlbkxpbmsnKSkgew0KICAgICAgICAgICAgICAgIHdpbmRvdy5sb2NhdGlvbiA9IHJlc3BvbnNlWydvcGVuTGluayddOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgaWYgKHJlc3BvbnNlLmhhc093blByb3BlcnR5KCJyZWxvYWQiKSkgew0KICAgICAgICAgICAgICAgIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGlmIChyZXNwb25zZS5oYXNPd25Qcm9wZXJ0eSgiYWxlcnQiKSkgew0KICAgICAgICAgICAgICAgIGFsZXJ0KHJlc3BvbnNlWyJhbGVydCJdKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGlmIChyZXNwb25zZS5oYXNPd25Qcm9wZXJ0eSgibG9nb1VSTCIpKSB7DQogICAgICAgICAgICAgICAgdmFyIGRpdiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjaGFubmVsLWljb24iKTsNCiAgICAgICAgICAgICAgICBkaXYudmFsdWUgPSByZXNwb25zZVsibG9nb1VSTCJdOw0KICAgICAgICAgICAgICAgIGRpdi5jbGFzc05hbWUgPSAiY2hhbmdlZCI7DQogICAgICAgICAgICAgICAgcmV0dXJuOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgc3dpdGNoIChkYXRhWyJjbWQiXSkgew0KICAgICAgICAgICAgICAgIGNhc2UgInVwZGF0ZUxvZyI6DQogICAgICAgICAgICAgICAgICAgIFNFUlZFUlsibG9nIl0gPSByZXNwb25zZVsibG9nIl07DQogICAgICAgICAgICAgICAgICAgIGlmIChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29udGVudF9sb2ciKSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgc2hvd0xvZ3MoZmFsc2UpOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIHJldHVybjsNCiAgICAgICAgICAgICAgICBkZWZhdWx0Og0KICAgICAgICAgICAgICAgICAgICBTRVJWRVIgPSBuZXcgT2JqZWN0KCk7DQogICAgICAgICAgICAgICAgICAgIFNFUlZFUiA9IHJlc3BvbnNlOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGlmIChyZXNwb25zZS5oYXNPd25Qcm9wZXJ0eSgib3Blbk1lbnUiKSkgew0KICAgICAgICAgICAgICAgIHZhciBtZW51ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQocmVzcG9uc2VbIm9wZW5NZW51Il0pOw0KICAgICAgICAgICAgICAgIG1lbnUuY2xpY2soKTsNCiAgICAgICAgICAgICAgICBzaG93RWxlbWVudCgicG9wdXAiLCBmYWxzZSk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBpZiAocmVzcG9uc2UuaGFzT3duUHJvcGVydHkoInJlbG9hZCIpKSB7DQogICAgICAgICAgICAgICAgbG9jYXRpb24ucmVsb2FkKCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBpZiAocmVzcG9uc2UuaGFzT3duUHJvcGVydHkoIndpemFyZCIpKSB7DQogICAgICAgICAgICAgICAgY3JlYXRlTGF5b3V0KCk7DQogICAgICAgICAgICAgICAgY29uZmlndXJhdGlvbldpemFyZFtyZXNwb25zZVsid2l6YXJkIl1dLmNyZWF0ZVdpemFyZCgpOw0KICAgICAgICAgICAgICAgIHJldHVybjsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGNyZWF0ZUxheW91dCgpOw0KICAgICAgICB9Ow0KICAgIH0NCn0NCmZ1bmN0aW9uIGdldENvb2tpZShuYW1lKSB7DQogICAgdmFyIHZhbHVlID0gIjsgIiArIGRvY3VtZW50LmNvb2tpZTsNCiAgICB2YXIgcGFydHMgPSB2YWx1ZS5zcGxpdCgiOyAiICsgbmFtZSArICI9Iik7DQogICAgaWYgKHBhcnRzLmxlbmd0aCA9PSAyKSB7DQogICAgICAgIHJldHVybiBwYXJ0cy5wb3AoKS5zcGxpdCgiOyIpLnNoaWZ0KCk7DQogICAgfQ0KfQ0K" webUI["html/js/settings_ts.js"] = "Y2xhc3MgU2V0dGluZ3NDYXRlZ29yeSB7DQogICAgY29uc3RydWN0b3IoKSB7DQogICAgICAgIHRoaXMuRG9jdW1lbnRJRCA9ICJjb250ZW50X3NldHRpbmdzIjsNCiAgICB9DQogICAgY3JlYXRlQ2F0ZWdvcnlIZWFkbGluZSh2YWx1ZSkgew0KICAgICAgICB2YXIgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIkg0Iik7DQogICAgICAgIGVsZW1lbnQuaW5uZXJIVE1MID0gdmFsdWU7DQogICAgICAgIHJldHVybiBlbGVtZW50Ow0KICAgIH0NCiAgICBjcmVhdGVIUigpIHsNCiAgICAgICAgdmFyIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJIUiIpOw0KICAgICAgICByZXR1cm4gZWxlbWVudDsNCiAgICB9DQogICAgY3JlYXRlU2V0dGluZ3Moc2V0dGluZ3NLZXkpIHsNCiAgICAgICAgdmFyIHNldHRpbmcgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJUUiIpOw0KICAgICAgICB2YXIgY29udGVudCA9IG5ldyBQb3B1cENvbnRlbnQoKTsNCiAgICAgICAgdmFyIGRhdGEgPSBTRVJWRVJbInNldHRpbmdzIl1bc2V0dGluZ3NLZXldOw0KICAgICAgICBzd2l0Y2ggKHNldHRpbmdzS2V5KSB7DQogICAgICAgICAgICAvLyBUZXh0IGlucHV0cw0KICAgICAgICAgICAgY2FzZSAidXBkYXRlIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLnVwZGF0ZS50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsICJ1cGRhdGUiLCBkYXRhLnRvU3RyaW5nKCkpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3suc2V0dGluZ3MudXBkYXRlLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJiYWNrdXAucGF0aCI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5iYWNrdXBQYXRoLnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgImJhY2t1cC5wYXRoIiwgZGF0YSk7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5zZXR0aW5ncy5iYWNrdXBQYXRoLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ0ZW1wLnBhdGgiOg0KICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MudGVtcFBhdGgudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCAidGVtcC5wYXRoIiwgZGF0YSk7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5zZXR0aW5ncy50bXBQYXRoLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ1c2VyLmFnZW50IjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLnVzZXJBZ2VudC50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsICJ1c2VyLmFnZW50IiwgZGF0YSk7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5zZXR0aW5ncy51c2VyQWdlbnQucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImJ1ZmZlci50aW1lb3V0IjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmJ1ZmZlclRpbWVvdXQudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCAiYnVmZmVyLnRpbWVvdXQiLCBkYXRhKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnNldHRpbmdzLmJ1ZmZlclRpbWVvdXQucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImZmbXBlZy5wYXRoIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmZmbXBlZ1BhdGgudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCAiZmZtcGVnLnBhdGgiLCBkYXRhKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnNldHRpbmdzLmZmbXBlZ1BhdGgucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImZmbXBlZy5vcHRpb25zIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmZmbXBlZ09wdGlvbnMudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCAiZmZtcGVnLm9wdGlvbnMiLCBkYXRhKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnNldHRpbmdzLmZmbXBlZ09wdGlvbnMucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInZsYy5wYXRoIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLnZsY1BhdGgudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCAidmxjLnBhdGgiLCBkYXRhKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnNldHRpbmdzLnZsY1BhdGgucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInZsYy5vcHRpb25zIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLnZsY09wdGlvbnMudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCAidmxjLm9wdGlvbnMiLCBkYXRhKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnNldHRpbmdzLnZsY09wdGlvbnMucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIC8vIENoZWNrYm94ZXMNCiAgICAgICAgICAgIGNhc2UgInRsc01vZGUiOg0KICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MudGxzTW9kZS50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChzZXR0aW5nc0tleSk7DQogICAgICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGE7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiYXV0aGVudGljYXRpb24ud2ViIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmF1dGhlbnRpY2F0aW9uV0VCLnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KHNldHRpbmdzS2V5KTsNCiAgICAgICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJhdXRoZW50aWNhdGlvbi5wbXMiOg0KICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MuYXV0aGVudGljYXRpb25QTVMudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goc2V0dGluZ3NLZXkpOw0KICAgICAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImF1dGhlbnRpY2F0aW9uLm0zdSI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5hdXRoZW50aWNhdGlvbk0zVS50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChzZXR0aW5nc0tleSk7DQogICAgICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGE7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiYXV0aGVudGljYXRpb24ueG1sIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmF1dGhlbnRpY2F0aW9uWE1MLnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KHNldHRpbmdzS2V5KTsNCiAgICAgICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJhdXRoZW50aWNhdGlvbi5hcGkiOg0KICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MuYXV0aGVudGljYXRpb25BUEkudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goc2V0dGluZ3NLZXkpOw0KICAgICAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImZpbGVzLnVwZGF0ZSI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5maWxlc1VwZGF0ZS50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChzZXR0aW5nc0tleSk7DQogICAgICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGE7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiY2FjaGUuaW1hZ2VzIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmNhY2hlSW1hZ2VzLnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KHNldHRpbmdzS2V5KTsNCiAgICAgICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ4ZXBnLnJlcGxhY2UubWlzc2luZy5pbWFnZXMiOg0KICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MucmVwbGFjZUVtcHR5SW1hZ2VzLnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KHNldHRpbmdzS2V5KTsNCiAgICAgICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJzdG9yZUJ1ZmZlckluUkFNIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLnN0b3JlQnVmZmVySW5SQU0udGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goc2V0dGluZ3NLZXkpOw0KICAgICAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInh0ZXZlQXV0b1VwZGF0ZSI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy54dGV2ZUF1dG9VcGRhdGUudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goc2V0dGluZ3NLZXkpOw0KICAgICAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImFwaSI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5hcGkudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goc2V0dGluZ3NLZXkpOw0KICAgICAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIC8vIFNlbGVjdA0KICAgICAgICAgICAgY2FzZSAiaG9zdElQIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmhvc3RJUC50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIHRleHQgPSBTRVJWRVJbImlwQWRkcmVzc2VzVjRIb3N0Il07DQogICAgICAgICAgICAgICAgdmFyIHZhbHVlcyA9IFNFUlZFUlsiaXBBZGRyZXNzZXNWNEhvc3QiXTsNCiAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCBkYXRhLCBzZXR0aW5nc0tleSk7DQogICAgICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKHNlbGVjdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ0dW5lciI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy50dW5lci50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIHRleHQgPSBuZXcgQXJyYXkoKTsNCiAgICAgICAgICAgICAgICB2YXIgdmFsdWVzID0gbmV3IEFycmF5KCk7DQogICAgICAgICAgICAgICAgZm9yICh2YXIgaSA9IDE7IGkgPD0gMTAwOyBpKyspIHsNCiAgICAgICAgICAgICAgICAgICAgdGV4dC5wdXNoKGkpOw0KICAgICAgICAgICAgICAgICAgICB2YWx1ZXMucHVzaChpKTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgdmFyIHNlbGVjdCA9IGNvbnRlbnQuY3JlYXRlU2VsZWN0KHRleHQsIHZhbHVlcywgZGF0YSwgc2V0dGluZ3NLZXkpOw0KICAgICAgICAgICAgICAgIHNlbGVjdC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChzZWxlY3QpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiZXBnU291cmNlIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmVwZ1NvdXJjZS50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIHRleHQgPSBbIlBNUyIsICJYRVBHIl07DQogICAgICAgICAgICAgICAgdmFyIHZhbHVlcyA9IFsiUE1TIiwgIlhFUEciXTsNCiAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCBkYXRhLCBzZXR0aW5nc0tleSk7DQogICAgICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKHNlbGVjdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJiYWNrdXAua2VlcCI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5iYWNrdXBLZWVwLnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgdGV4dCA9IFsiNSIsICIxMCIsICIyMCIsICIzMCIsICI0MCIsICI1MCJdOw0KICAgICAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBbIjUiLCAiMTAiLCAiMjAiLCAiMzAiLCAiNDAiLCAiNTAiXTsNCiAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCBkYXRhLCBzZXR0aW5nc0tleSk7DQogICAgICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKHNlbGVjdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJidWZmZXIuc2l6ZS5rYiI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5idWZmZXJTaXplLnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgdGV4dCA9IFsiMC41IE1CIiwgIjEgTUIiLCAiMiBNQiIsICIzIE1CIiwgIjQgTUIiLCAiNSBNQiIsICI2IE1CIiwgIjcgTUIiLCAiOCBNQiJdOw0KICAgICAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBbIjUxMiIsICIxMDI0IiwgIjIwNDgiLCAiMzA3MiIsICI0MDk2IiwgIjUxMjAiLCAiNjE0NCIsICI3MTY4IiwgIjgxOTIiXTsNCiAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCBkYXRhLCBzZXR0aW5nc0tleSk7DQogICAgICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKHNlbGVjdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJidWZmZXIiOg0KICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3Muc3RyZWFtQnVmZmVyaW5nLnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgdGV4dCA9IFsie3suc2V0dGluZ3Muc3RyZWFtQnVmZmVyaW5nLmluZm9fZmFsc2V9fSIsICJ4VGVWZTogKHt7LnNldHRpbmdzLnN0cmVhbUJ1ZmZlcmluZy5pbmZvX3h0ZXZlfX0pIiwgIkZGbXBlZzogKHt7LnNldHRpbmdzLnN0cmVhbUJ1ZmZlcmluZy5pbmZvX2ZmbXBlZ319KSIsICJWTEM6ICh7ey5zZXR0aW5ncy5zdHJlYW1CdWZmZXJpbmcuaW5mb192bGN9fSkiXTsNCiAgICAgICAgICAgICAgICB2YXIgdmFsdWVzID0gWyItIiwgInh0ZXZlIiwgImZmbXBlZyIsICJ2bGMiXTsNCiAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCBkYXRhLCBzZXR0aW5nc0tleSk7DQogICAgICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKHNlbGVjdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ1ZHB4eSI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy51ZHB4eS50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsICJ1ZHB4eSIsIGRhdGEpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3suc2V0dGluZ3MudWRweHkucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgfQ0KICAgICAgICByZXR1cm4gc2V0dGluZzsNCiAgICB9DQogICAgY3JlYXRlRGVzY3JpcHRpb24oc2V0dGluZ3NLZXkpIHsNCiAgICAgICAgdmFyIGRlc2NyaXB0aW9uID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVFIiKTsNCiAgICAgICAgdmFyIHRleHQ7DQogICAgICAgIHN3aXRjaCAoc2V0dGluZ3NLZXkpIHsNCiAgICAgICAgICAgIGNhc2UgInRsc01vZGUiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MudGxzTW9kZS5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImF1dGhlbnRpY2F0aW9uLndlYiI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5hdXRoZW50aWNhdGlvbldFQi5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImF1dGhlbnRpY2F0aW9uLm0zdSI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5hdXRoZW50aWNhdGlvbk0zVS5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImF1dGhlbnRpY2F0aW9uLnBtcyI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5hdXRoZW50aWNhdGlvblBNUy5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImF1dGhlbnRpY2F0aW9uLnhtbCI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5hdXRoZW50aWNhdGlvblhNTC5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImF1dGhlbnRpY2F0aW9uLmFwaSI6DQogICAgICAgICAgICAgICAgaWYgKFNFUlZFUlsic2V0dGluZ3MiXVsiYXV0aGVudGljYXRpb24ud2ViIl0gPT0gdHJ1ZSkgew0KICAgICAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLmF1dGhlbnRpY2F0aW9uQVBJLmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInh0ZXZlQXV0b1VwZGF0ZSI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy54dGV2ZUF1dG9VcGRhdGUuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJiYWNrdXAua2VlcCI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5iYWNrdXBLZWVwLmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiYmFja3VwLnBhdGgiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MuYmFja3VwUGF0aC5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInRlbXAucGF0aCI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy50ZW1wUGF0aC5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImJ1ZmZlciI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5zdHJlYW1CdWZmZXJpbmcuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJidWZmZXIuc2l6ZS5rYiI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5idWZmZXJTaXplLmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAic3RvcmVCdWZmZXJJblJBTSI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5zdG9yZUJ1ZmZlckluUkFNLmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiYnVmZmVyLnRpbWVvdXQiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MuYnVmZmVyVGltZW91dC5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInVzZXIuYWdlbnQiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MudXNlckFnZW50LmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiZmZtcGVnLnBhdGgiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MuZmZtcGVnUGF0aC5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImZmbXBlZy5vcHRpb25zIjoNCiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLmZmbXBlZ09wdGlvbnMuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ2bGMucGF0aCI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy52bGNQYXRoLmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAidmxjLm9wdGlvbnMiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MudmxjT3B0aW9ucy5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImVwZ1NvdXJjZSI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5lcGdTb3VyY2UuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJob3N0SVAiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MuaG9zdElQLmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAidHVuZXIiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MudHVuZXIuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ1cGRhdGUiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MudXBkYXRlLmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiYXBpIjoNCiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLmFwaS5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImZpbGVzLnVwZGF0ZSI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5maWxlc1VwZGF0ZS5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImNhY2hlLmltYWdlcyI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5jYWNoZUltYWdlcy5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInhlcGcucmVwbGFjZS5taXNzaW5nLmltYWdlcyI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5yZXBsYWNlRW1wdHlJbWFnZXMuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ1ZHB4eSI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy51ZHB4eS5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICAgICAgdGV4dCA9ICIiOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICB9DQogICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gIiI7DQogICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgdmFyIHByZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlBSRSIpOw0KICAgICAgICBwcmUuaW5uZXJIVE1MID0gdGV4dDsNCiAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChwcmUpOw0KICAgICAgICBkZXNjcmlwdGlvbi5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICBkZXNjcmlwdGlvbi5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgcmV0dXJuIGRlc2NyaXB0aW9uOw0KICAgIH0NCn0NCmNsYXNzIFNldHRpbmdzQ2F0ZWdvcnlJdGVtIGV4dGVuZHMgU2V0dGluZ3NDYXRlZ29yeSB7DQogICAgY29uc3RydWN0b3IoaGVhZGxpbmUsIHNldHRpbmdzS2V5cykgew0KICAgICAgICBzdXBlcigpOw0KICAgICAgICB0aGlzLmhlYWRsaW5lID0gaGVhZGxpbmU7DQogICAgICAgIHRoaXMuc2V0dGluZ3NLZXlzID0gc2V0dGluZ3NLZXlzOw0KICAgIH0NCiAgICBjcmVhdGVDYXRlZ29yeSgpIHsNCiAgICAgICAgdmFyIGhlYWRsaW5lID0gdGhpcy5jcmVhdGVDYXRlZ29yeUhlYWRsaW5lKHRoaXMuaGVhZGxpbmUpOw0KICAgICAgICB2YXIgc2V0dGluZ3NLZXlzID0gdGhpcy5zZXR0aW5nc0tleXM7DQogICAgICAgIHZhciBkb2MgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCh0aGlzLkRvY3VtZW50SUQpOw0KICAgICAgICBkb2MuYXBwZW5kQ2hpbGQoaGVhZGxpbmUpOw0KICAgICAgICAvLyBDcmVhdGUgYSB0YWJsZSBmb3IgdGhlIGNhdGVnb3J5DQogICAgICAgIHZhciB0YWJsZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlRBQkxFIik7DQogICAgICAgIHZhciBrZXlzID0gc2V0dGluZ3NLZXlzLnNwbGl0KCIsIik7DQogICAgICAgIGtleXMuZm9yRWFjaChzZXR0aW5nc0tleSA9PiB7DQogICAgICAgICAgICBzd2l0Y2ggKHNldHRpbmdzS2V5KSB7DQogICAgICAgICAgICAgICAgY2FzZSAiYXV0aGVudGljYXRpb24ucG1zIjoNCiAgICAgICAgICAgICAgICBjYXNlICJhdXRoZW50aWNhdGlvbi5tM3UiOg0KICAgICAgICAgICAgICAgIGNhc2UgImF1dGhlbnRpY2F0aW9uLnhtbCI6DQogICAgICAgICAgICAgICAgY2FzZSAiYXV0aGVudGljYXRpb24uYXBpIjoNCiAgICAgICAgICAgICAgICAgICAgaWYgKFNFUlZFUlsic2V0dGluZ3MiXVsiYXV0aGVudGljYXRpb24ud2ViIl0gPT0gZmFsc2UpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgICAgICAgICAgdmFyIGl0ZW0gPSB0aGlzLmNyZWF0ZVNldHRpbmdzKHNldHRpbmdzS2V5KTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGRlc2NyaXB0aW9uID0gdGhpcy5jcmVhdGVEZXNjcmlwdGlvbihzZXR0aW5nc0tleSk7DQogICAgICAgICAgICAgICAgICAgIHRhYmxlLmFwcGVuZENoaWxkKGl0ZW0pOw0KICAgICAgICAgICAgICAgICAgICB0YWJsZS5hcHBlbmRDaGlsZChkZXNjcmlwdGlvbik7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9KTsNCiAgICAgICAgZG9jLmFwcGVuZENoaWxkKHRhYmxlKTsNCiAgICAgICAgZG9jLmFwcGVuZENoaWxkKHRoaXMuY3JlYXRlSFIoKSk7DQogICAgfQ0KfQ0KZnVuY3Rpb24gc2hvd1NldHRpbmdzKCkgew0KICAgIGZvciAobGV0IGkgPSAwOyBpIDwgc2V0dGluZ3NDYXRlZ29yeS5sZW5ndGg7IGkrKykgew0KICAgICAgICBzZXR0aW5nc0NhdGVnb3J5W2ldLmNyZWF0ZUNhdGVnb3J5KCk7DQogICAgfQ0KfQ0KZnVuY3Rpb24gc2F2ZVNldHRpbmdzKCkgew0KICAgIHZhciBjbWQgPSAic2F2ZVNldHRpbmdzIjsNCiAgICB2YXIgZGl2ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnRlbnRfc2V0dGluZ3MiKTsNCiAgICB2YXIgc2V0dGluZ3MgPSBkaXYuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSgiY2hhbmdlZCIpOw0KICAgIHZhciBuZXdTZXR0aW5ncyA9IG5ldyBPYmplY3QoKTsNCiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHNldHRpbmdzLmxlbmd0aDsgaSsrKSB7DQogICAgICAgIHZhciBuYW1lOw0KICAgICAgICB2YXIgdmFsdWU7DQogICAgICAgIHN3aXRjaCAoc2V0dGluZ3NbaV0udGFnTmFtZSkgew0KICAgICAgICAgICAgY2FzZSAiSU5QVVQiOg0KICAgICAgICAgICAgICAgIHN3aXRjaCAoc2V0dGluZ3NbaV0udHlwZSkgew0KICAgICAgICAgICAgICAgICAgICBjYXNlICJjaGVja2JveCI6DQogICAgICAgICAgICAgICAgICAgICAgICBuYW1lID0gc2V0dGluZ3NbaV0ubmFtZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlID0gc2V0dGluZ3NbaV0uY2hlY2tlZDsNCiAgICAgICAgICAgICAgICAgICAgICAgIG5ld1NldHRpbmdzW25hbWVdID0gdmFsdWU7DQogICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICAgICAgY2FzZSAidGV4dCI6DQogICAgICAgICAgICAgICAgICAgICAgICBuYW1lID0gc2V0dGluZ3NbaV0ubmFtZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlID0gc2V0dGluZ3NbaV0udmFsdWU7DQogICAgICAgICAgICAgICAgICAgICAgICBzd2l0Y2ggKG5hbWUpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYXNlICJ1cGRhdGUiOg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IHZhbHVlLnNwbGl0KCIsIik7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlID0gdmFsdWUuZmlsdGVyKGZ1bmN0aW9uIChlKSB7IHJldHVybiBlOyB9KTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAiYnVmZmVyLnRpbWVvdXQiOg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IHBhcnNlRmxvYXQodmFsdWUpOw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgbmV3U2V0dGluZ3NbbmFtZV0gPSB2YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgIlNFTEVDVCI6DQogICAgICAgICAgICAgICAgbmFtZSA9IHNldHRpbmdzW2ldLm5hbWU7DQogICAgICAgICAgICAgICAgdmFsdWUgPSBzZXR0aW5nc1tpXS52YWx1ZTsNCiAgICAgICAgICAgICAgICAvLyBJZiB0aGUgdmFsdWUgaXMgYSBudW1iZXIsIHN0b3JlIGl0IGFzIGEgbnVtYmVyDQogICAgICAgICAgICAgICAgaWYgKGlzTmFOKHZhbHVlKSkgew0KICAgICAgICAgICAgICAgICAgICBuZXdTZXR0aW5nc1tuYW1lXSA9IHZhbHVlOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICAgICAgbmV3U2V0dGluZ3NbbmFtZV0gPSBwYXJzZUludCh2YWx1ZSk7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICB9DQogICAgfQ0KICAgIHZhciBkYXRhID0gbmV3IE9iamVjdCgpOw0KICAgIGRhdGFbInNldHRpbmdzIl0gPSBuZXdTZXR0aW5nczsNCiAgICB2YXIgc2VydmVyID0gbmV3IFNlcnZlcihjbWQpOw0KICAgIHNlcnZlci5yZXF1ZXN0KGRhdGEpOw0KfQ0K" webUI["html/lang/en.json"] = "ew0KICAibWFpbk1lbnUiOg0KICB7DQogICAgIml0ZW0iOg0KICAgIHsNCiAgICAgICJwbGF5bGlzdCI6ICJQbGF5bGlzdCIsDQogICAgICAicG1zSUQiOiAiUE1TIElEIiwNCiAgICAgICJmaWx0ZXIiOiAiRmlsdGVyIiwNCiAgICAgICJ4bWx0diI6ICJYTUxUViIsDQogICAgICAibWFwcGluZyI6ICJNYXBwaW5nIiwNCiAgICAgICJ1c2VycyI6ICJVc2VycyIsDQogICAgICAic2V0dGluZ3MiOiAiU2V0dGluZ3MiLA0KICAgICAgImxvZyI6ICJMb2ciLA0KICAgICAgImxvZ291dCI6ICJMb2dvdXQiDQogICAgfSwNCiAgICAiaGVhZGxpbmUiOg0KICAgIHsNCiAgICAgICJwbGF5bGlzdCI6ICJMb2NhbCBvciByZW1vdGUgcGxheWxpc3RzIiwNCiAgICAgICJmaWx0ZXIiOiAiRmlsdGVyIHBsYXlsaXN0IiwNCiAgICAgICJ4bWx0diI6ICJMb2NhbCBvciByZW1vdGUgWE1MVFYgZmlsZXMiLA0KICAgICAgIm1hcHBpbmciOiAiTWFwIHBsYXlsaXN0IGNoYW5uZWxzIHRvIEVQRyBjaGFubmVscyIsDQogICAgICAidXNlcnMiOiAiVXNlciBtYW5hZ2VtZW50IiwNCiAgICAgICJzZXR0aW5ncyI6ICJTZXR0aW5ncyIsDQogICAgICAibG9nIjogIkxvZyIsDQogICAgICAibG9nb3V0IjogIkxvZ291dCINCiAgICB9DQogIH0sDQogICJjb25maXJtIjoNCiAgew0KICAgICJyZXN0b3JlIjogIkFsbCBkYXRhIHdpbGwgYmUgcmVwbGFjZWQgd2l0aCB0aG9zZSBmcm9tIHRoZSBiYWNrdXAuIFNob3VsZCB0aGUgZmlsZXMgYmUgcmVzdG9yZWQ/Ig0KICB9LA0KICAiYWxlcnQiOg0KICB7DQogICAgImZpbGVMb2FkaW5nRXJyb3IiOiAiRmlsZSBjb3VsZG4ndCBiZSBsb2FkZWQiLA0KICAgICJpbnZhbGlkQ2hhbm5lbE51bWJlciI6ICJJbnZhbGlkIGNoYW5uZWwgbnVtYmVyIiwNCiAgICAibWlzc2luZ0lucHV0IjogIk1pc3NpbmcgaW5wdXQiDQogIH0sDQogICJidXR0b24iOg0KICB7DQogICAgImJhY2siOiAiQmFjayIsDQogICAgImJhY2t1cCI6ICJCYWNrdXAiLA0KICAgICJidWxrRWRpdCI6ICJCdWxrIEVkaXQiLA0KICAgICJjYW5jZWwiOiAiQ2FuY2VsIiwNCiAgICAiZGVsZXRlIjogIkRlbGV0ZSIsDQogICAgImRvbmUiOiAiRG9uZSIsDQogICAgImxvZ2luIjogIkxvZ2luIiwNCiAgICAibmV3IjogIk5ldyIsDQogICAgIm5leHQiOiAiTmV4dCIsDQogICAgInJlc3RvcmUiOiAiUmVzdG9yZSIsDQogICAgInNhdmUiOiAiU2F2ZSIsDQogICAgInNlYXJjaCI6ICJTZWFyY2giLA0KICAgICJ1cGRhdGUiOiAiVXBkYXRlIiwNCiAgICAiY3JhZXRlQWNjb3VudCI6ICJDcmVhdGUgQWNjb3VudCIsDQogICAgInJlc2V0TG9ncyI6ICJSZXNldCBMb2dzIiwNCiAgICAidXBsb2FkTG9nbyI6ICJVcGxvYWQgTG9nbyINCiAgfSwNCiAgImZpbHRlciI6DQogIHsNCiAgICAidGFibGUiOg0KICAgIHsNCiAgICAgICJzdGFydGluZ0NoYW5uZWwiOiAiU3RhcnRpbmcgQ2guIE5vLiIsDQogICAgICAibmFtZSI6ICJGaWx0ZXIgTmFtZSIsDQogICAgICAidHlwZSI6ICJGaWx0ZXIgVHlwZSIsDQogICAgICAiZmlsdGVyIjogIkZpbHRlciINCiAgICB9LA0KICAgICJjdXN0b20iOiAiQ3VzdG9tIiwNCiAgICAiZ3JvdXAiOiAiTTNVIEdyb3VwIiwNCiAgICAibmFtZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIkZpbHRlciBOYW1lIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJGaWx0ZXIgbmFtZSIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgImRlc2NyaXB0aW9uIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiRGVzY3JpcHRpb24iLA0KICAgICAgInBsYWNlaG9sZGVyIjogIkRlc2NyaXB0aW9uIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAidHlwZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIlR5cGUiLA0KICAgICAgImdyb3VwVGl0bGUiOiAiR3JvdXAgVGl0bGUiLA0KICAgICAgImN1c3RvbUZpbHRlciI6ICJDdXN0b20gRmlsdGVyIg0KICAgIH0sDQogICAgImNhc2VTZW5zaXRpdmUiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJDYXNlIFNlbnNpdGl2ZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAiZmlsdGVyUnVsZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIkZpbHRlciBSdWxlIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJTcG9ydCB7SER9ICF7RVMsSVR9IiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAiZmlsdGVyR3JvdXAiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJHcm91cCBUaXRsZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJTZWxlY3QgYSBNM1UgZ3JvdXAuIChDb3VudGVyKTxicj5DaGFuZ2luZyB0aGUgZ3JvdXAgdGl0bGUgaW4gdGhlIE0zVSBpbnZhbGlkYXRlcyB0aGUgZmlsdGVyLiINCiAgICB9LA0KICAgICJpbmNsdWRlIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiSW5jbHVkZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiRkhELFVIRCIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiQ2hhbm5lbCBuYW1lIG11c3QgaW5jbHVkZS48YnI+KENvbW1hIHNlcGFyYXRlZCkgQ29tbWEgbWVhbnMgb3IiDQogICAgfSwNCiAgICAiZXhjbHVkZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIkV4Y2x1ZGUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIkVTLElUIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJDaGFubmVsIG5hbWUgbXVzdCBub3QgY29udGFpbi48YnI+KENvbW1hIHNlcGFyYXRlZCkgQ29tbWEgbWVhbnMgb3IiDQogICAgfSwNCiAgICAicHJlc2VydmVNYXBwaW5nIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiUHJlc2VydmUgRXhpc3RpbmcgTTNVPGJyPkNoYW5uZWwgTnVtYmVycyIsDQogICAgICAicGFsY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJQcmVzZXJ2ZSBleGlzdGluZyBNM1UgcGxheWxpc3QgY2hhbm5lbCBudW1iZXJzPyINCiAgICB9LA0KICAgICJzdGFydGluZ0NoYW5uZWwiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJTdGFydGluZyBDaGFubmVsIE51bWJlciIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAiZGVmYXVsdE1pc3NpbmdFUEciOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJGaWxsIE1pc3NpbmcgRVBHIERhdGEiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiV2hlbiB0aGVyZSBpcyBubyBtYXRjaGluZyBFUEcgZGF0YSBmb3IgY2hhbm5lbCwgPGJyPmF1dG9maWxsIHdpdGggeFRlVmUgZHVtbXkgRVBHIGRhdGE/Ig0KICAgIH0NCg0KICB9LA0KICAicGxheWxpc3QiOg0KICB7DQogICAgInRhYmxlIjoNCiAgICB7DQogICAgICAicGxheWxpc3QiOiAiUGxheWxpc3QiLA0KICAgICAgInR1bmVyIjogIlR1bmVyIiwNCiAgICAgICJsYXN0VXBkYXRlIjogIkxhc3QgVXBkYXRlIiwNCiAgICAgICJhdmFpbGFiaWxpdHkiOiAiQXZhaWxhYmlsaXR5IiwNCiAgICAgICJ0eXBlIjogIlR5cGUiLA0KICAgICAgInN0cmVhbXMiOiAiU3RyZWFtcyIsDQogICAgICAiZ3JvdXBUaXRsZSI6ICJncm91cC10aXRsZSIsDQogICAgICAidHZnSUQiOiAidHZnLWlkIiwNCiAgICAgICJ1bmlxdWVJRCI6ICJVbmlxdWUgSUQiDQogICAgfSwNCiAgICAicGxheWxpc3RUeXBlIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiUGxheWxpc3QgdHlwZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAidHlwZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIlR5cGUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgIm5hbWUiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJOYW1lIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJQbGF5bGlzdCBuYW1lIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAiZGVzY3JpcHRpb24iOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJEZXNjcmlwdGlvbiIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiRGVzY3JpcHRpb24iLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJmaWxlTTNVIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiTTNVIEZpbGUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIkZpbGUgcGF0aCBvciBVUkwgb2YgdGhlIE0zVSIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgImZpbGVIREhSIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiSERIb21lUnVuIElQIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJJUCBhZGRyZXNzIGFuZCBwb3J0ICgxOTIuMTY4LjEuMTA6NTAwNCkiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJ0dW5lciI6DQogICAgew0KICAgICAgInRpdGxlIjogIlR1bmVyIC8gU3RyZWFtcyIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJOdW1iZXIgb2YgcGFyYWxsZWwgY29ubmVjdGlvbnMgdGhhdCBjYW4gYmUgZXN0YWJsaXNoZWQgdG8gdGhlIHByb3ZpZGVyLiA8YnI+T25seSBhdmFpbGFibGUgd2l0aCBhY3RpdmF0ZWQgYnVmZmVyLjxicj5OZXcgc2V0dGluZ3Mgd2lsbCBvbmx5IGJlIGFwcGxpZWQgYWZ0ZXIgcXVpdHRpbmcgYWxsIHN0cmVhbXMuIg0KICAgIH0NCiAgfSwNCiAgInhtbHR2IjoNCiAgew0KICAgICJ0YWJsZSI6DQogICAgew0KICAgICAgImd1aWRlIjogIkd1aWRlIiwNCiAgICAgICJsYXN0VXBkYXRlIjogIkxhc3QgVXBkYXRlIiwNCiAgICAgICJhdmFpbGFiaWxpdHkiOiAiQXZhaWxhYmlsaXR5IiwNCiAgICAgICJjaGFubmVscyI6ICJDaGFubmVscyIsDQogICAgICAicHJvZ3JhbXMiOiAiUHJvZ3JhbXMiDQogICAgfSwNCiAgICAibmFtZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIk5hbWUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIkd1aWRlIG5hbWUiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJkZXNjcmlwdGlvbiI6DQogICAgew0KICAgICAgInRpdGxlIjogIkRlc2NyaXB0aW9uIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJEZXNjcmlwdGlvbiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgImZpbGVYTUxUViI6DQogICAgew0KICAgICAgInRpdGxlIjogIlhNTFRWIEZpbGUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIkZpbGUgcGF0aCBvciBVUkwgb2YgdGhlIFhNTFRWIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfQ0KICB9LA0KICAibWFwcGluZyI6DQogIHsNCiAgICAidGFibGUiOg0KICAgIHsNCiAgICAgICJjaE5vIjogIkNoLiBOby4iLA0KICAgICAgImxvZ28iOiAiTG9nbyIsDQogICAgICAiY2hhbm5lbE5hbWUiOiAiQ2hhbm5lbCBOYW1lIiwNCiAgICAgICJwbGF5bGlzdCI6ICJQbGF5bGlzdCIsDQogICAgICAiZ3JvdXBUaXRsZSI6ICJHcm91cCBUaXRsZSIsDQogICAgICAieG1sdHZGaWxlIjogIlhNTFRWIEZpbGUiLA0KICAgICAgInhtbHR2SUQiOiAiWE1MVFYgSUQiLA0KICAgICAgInRpbWVzaGlmdCI6ICJUaW1lc2hpZnQiDQogICAgfSwNCiAgICAiYWN0aXZlIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiQWN0aXZlIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJjaGFubmVsTmFtZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIkNoYW5uZWwgTmFtZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAiZGVzY3JpcHRpb24iOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJDaGFubmVsIERlc2NyaXB0aW9uIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJVc2VkIGJ5IHRoZSBEdW1teSBhcyBhbiBYTUwgZGVzY3JpcHRpb24iLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJ1cGRhdGVDaGFubmVsTmFtZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIlVwZGF0ZSBDaGFubmVsIE5hbWUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgInVwZGF0ZUNoYW5uZWxHcm91cCI6DQogICAgew0KICAgICAgInRpdGxlIjogIlVwZGF0ZSBDaGFubmVsIEdyb3VwIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIklmIGNoZWNrZWQsIHVzZSBncm91cCBmcm9tIHRoZSBkYXRhYmFzZSINCiAgICB9LA0KICAgICJjaGFubmVsTG9nbyI6DQogICAgew0KICAgICAgInRpdGxlIjogIkxvZ28gVVJMIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJ1cGRhdGVDaGFubmVsTG9nbyI6DQogICAgew0KICAgICAgInRpdGxlIjogIlVwZGF0ZSBDaGFubmVsIExvZ28iLA0KICAgICAgInBsYWNlaG9sZGVyIjogIiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgImVwZ0NhdGVnb3J5IjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiRVBHIENhdGVnb3J5IiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJtM3VHcm91cFRpdGxlIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiR3JvdXAgVGl0bGUgKHh0ZXZlLm0zdSkiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgInhtbHR2RmlsZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIlhNTFRWIEZpbGUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgInhtbHR2Q2hhbm5lbCI6DQogICAgew0KICAgICAgInRpdGxlIjogIlhNTFRWIENoYW5uZWwiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgInRpbWVzaGlmdCI6DQogICAgew0KICAgICAgInRpdGxlIjogIlRpbWVzaGlmdCIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiMCIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0NCiAgfSwNCiAgInVzZXJzIjoNCiAgew0KICAgICJ0YWJsZSI6DQogICAgew0KICAgICAgInVzZXJuYW1lIjogIlVzZXJuYW1lIiwNCiAgICAgICJwYXNzd29yZCI6ICJQYXNzd29yZCIsDQogICAgICAid2ViIjogIldFQiIsDQogICAgICAicG1zIjogIlBNUyIsDQogICAgICAibTN1IjogIk0zVSIsDQogICAgICAieG1sIjogIlhNTCIsDQogICAgICAiYXBpIjogIkFQSSINCiAgICB9LA0KICAgICJ1c2VybmFtZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIlVzZXJuYW1lIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJVc2VybmFtZSIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgInBhc3N3b3JkIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiUGFzc3dvcmQiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIlBhc3N3b3JkIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAiY29uZmlybSI6DQogICAgew0KICAgICAgInRpdGxlIjogIkNvbmZpcm0iLA0KICAgICAgInBsYWNlaG9sZGVyIjogIlBhc3N3b3JkIGNvbmZpcm0iLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJ3ZWIiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJXZWIgQWNjZXNzIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJwbXMiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJQTVMgQWNjZXNzIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJtM3UiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJNM1UgQWNjZXNzIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJ4bWwiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJYTUwgQWNjZXNzIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJhcGkiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJBUEkgQWNjZXNzIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9DQogIH0sDQogICJzZXR0aW5ncyI6DQogIHsNCiAgICAiY2F0ZWdvcnkiOg0KICAgIHsNCiAgICAgICJnZW5lcmFsIjogIkdlbmVyYWwiLA0KICAgICAgImZpbGVzIjogIkZpbGVzIiwNCiAgICAgICJzdHJlYW1pbmciOiAiU3RyZWFtaW5nIiwNCiAgICAgICJiYWNrdXAiOiAiQmFja3VwIiwNCiAgICAgICJhdXRoZW50aWNhdGlvbiI6ICJBdXRoZW50aWNhdGlvbiINCiAgICB9LA0KICAgICJ1cGRhdGUiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJTY2hlZHVsZSBmb3IgdXBkYXRpbmcgKFBsYXlsaXN0LCBYTUxUViwgQmFja3VwKSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiMDAwMCwxMDAwLDIwMDAiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIlRpbWUgaW4gMjQgaG91ciBmb3JtYXQgKDA4MDAgPSA4OjAwIGFtKS4gTW9yZSB0aW1lcyBjYW4gYmUgZW50ZXJlZCBjb21tYSBzZXBhcmF0ZWQuIExlYXZlIHRoaXMgZmllbGQgZW1wdHkgaWYgbm8gdXBkYXRlcyBhcmUgdG8gYmUgY2FycmllZCBvdXQuIg0KICAgIH0sDQogICAgImFwaSI6DQogICAgew0KICAgICAgInRpdGxlIjogIkFQSSBJbnRlcmZhY2UiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIlZpYSBBUEkgaW50ZXJmYWNlIGl0IGlzIHBvc3NpYmxlIHRvIHNlbmQgY29tbWFuZHMgdG8geFRlVmUuIEFQSSBkb2N1bWVudGF0aW9uIGlzIDxhIGhyZWY9J2h0dHBzOi8vZ2l0aHViLmNvbS94dGV2ZS1wcm9qZWN0L3hUZVZlLURvY3VtZW50YXRpb24vYmxvYi9tYXN0ZXIvZW4vY29uZmlndXJhdGlvbi5tZCNhcGknPmhlcmU8L2E+Ig0KICAgIH0sDQogICAgImVwZ1NvdXJjZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIkVQRyBTb3VyY2UiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIlBNUzo8YnI+LSBVc2UgRVBHIGRhdGEgZnJvbSBQbGV4IG9yIEVtYnkgPGJyPjxicj5YRVBHOjxicj4tIFVzZSBvZiBvbmUgb3IgbW9yZSBYTUxUViBmaWxlczxicj4tIENoYW5uZWwgbWFuYWdlbWVudDxicj4tIE0zVSAvIFhNTFRWIGV4cG9ydCAoSFRUUCBsaW5rIGZvciBJUFRWIGFwcHMpIg0KICAgIH0sDQogICAgInR1bmVyIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiTnVtYmVyIG9mIFR1bmVycyIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiTnVtYmVyIG9mIHBhcmFsbGVsIGNvbm5lY3Rpb25zIHRoYXQgY2FuIGJlIGVzdGFibGlzaGVkIHRvIHRoZSBwcm92aWRlci48YnI+QXZhaWxhYmxlIGZvcjogUGxleCwgRW1ieSAoSERIUiksIE0zVSAod2l0aCBhY3RpdmUgYnVmZmVyKS48YnI+QWZ0ZXIgYSBjaGFuZ2UsIHhUZVZlIG11c3QgYmUgZGVsZXRlIGluIHRoZSBQbGV4IC8gRW1ieSBEVlIgc2V0dGluZ3MgYW5kIHNldCB1cCBhZ2Fpbi4iDQogICAgfSwNCiAgICAiaG9zdElQIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiSG9zdCBJUCIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiSVAgYWRkcmVzcyB4VGVWZSB3aWxsIHVzZSB0byBmb3JtIE0zVSBhbmQgWE1MVFYgZmlsZXMiDQogICAgfSwNCiAgICAidGxzTW9kZSI6IHsNCiAgICAgICJ0aXRsZSI6ICJUTFMgKEhUVFBTKSBtb2RlIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJDaGFuZ2VzIHdlYiBzZXJ2ZXIgcHJvdG9jb2wgdG8gSFRUUFMuPGJyPkZvciBkZXRhaWxzLCBzZWUgPGE+aHR0cHM6Ly9naXRodWIuY29tL1NDUDAwMi94VGVWZSN0bHMtbW9kZTwvYT4iDQogICAgfSwNCiAgICAiZmlsZXNVcGRhdGUiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJVcGRhdGVzIGFsbCBmaWxlcyBhdCBzdGFydHVwIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJVcGRhdGVzIGFsbCBwbGF5bGlzdHMsIHR1bmVyIGFuZCBYTUxUViBmaWxlcyBhdCBzdGFydHVwLiINCiAgICB9LA0KICAgICJjYWNoZUltYWdlcyI6DQogICAgew0KICAgICAgInRpdGxlIjogIkltYWdlIENhY2hpbmciLA0KICAgICAgImRlc2NyaXB0aW9uIjogIkFsbCBpbWFnZXMgZnJvbSB0aGUgWE1MVFYgZmlsZSBhcmUgY2FjaGVkLCBhbGxvd2luZyBmYXN0ZXIgcmVuZGVyaW5nIG9mIHRoZSBncmlkIGluIHRoZSBjbGllbnQuPGJyPkRvd25sb2FkaW5nIHRoZSBpbWFnZXMgbWF5IHRha2UgYSB3aGlsZSBhbmQgd2lsbCBiZSBkb25lIGluIHRoZSBiYWNrZ3JvdW5kLiINCiAgICB9LA0KICAgICJyZXBsYWNlRW1wdHlJbWFnZXMiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJSZXBsYWNlIG1pc3NpbmcgcHJvZ3JhbSBpbWFnZXMiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIklmIHRoZSBwb3N0ZXIgaW4gdGhlIFhNTFRWIHByb2dyYW0gaXMgbWlzc2luZywgdGhlIGNoYW5uZWwgbG9nbyB3aWxsIGJlIHVzZWQuIg0KICAgIH0sDQogICAgInh0ZXZlQXV0b1VwZGF0ZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIkF1dG9tYXRpYyB1cGRhdGUgb2YgeFRlVmUiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIklmIGEgbmV3IHZlcnNpb24gb2YgeFRlVmUgaXMgYXZhaWxhYmxlLCBpdCB3aWxsIGJlIGF1dG9tYXRpY2FsbHkgaW5zdGFsbGVkLiBUaGUgdXBkYXRlcyBhcmUgZG93bmxvYWRlZCBmcm9tIEdpdEh1Yi4iDQogICAgfSwNCiAgICAic3RyZWFtQnVmZmVyaW5nIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiU3RyZWFtIEJ1ZmZlciIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiRnVuY3Rpb25zIG9mIHRoZSBidWZmZXI6PGJyPi0gVGhlIHN0cmVhbSBpcyBwYXNzZWQgZnJvbSB4VGVWZSwgRkZtcGVnIG9yIFZMQyB0byBQbGV4LCBFbWJ5IG9yIE0zVSBQbGF5ZXI8YnI+LSBTbWFsbCBqZXJraW5nIG9mIHRoZSBzdHJlYW1zIGNhbiBiZSBjb21wZW5zYXRlZDxicj4tIEhMUyAvIE0zVTggc3VwcG9ydDxicj4tIFJUUCAvIFJUUFMgc3VwcG9ydCAob25seSBGRm1wZWcgb3IgVkxDKTxicj4tIFJlLXN0cmVhbWluZzxicj4tIFNlcGFyYXRlIHR1bmVyIGxpbWl0IGZvciBlYWNoIHBsYXlsaXN0IiwNCiAgICAgICJpbmZvX2ZhbHNlIjogIk5vIEJ1ZmZlciAoQ2xpZW50IGNvbm5lY3RzIHRvIHRoZSBzdHJlYW1pbmcgc2VydmVyKSIsDQogICAgICAiaW5mb194dGV2ZSI6ICJ4VGVWZSBjb25uZWN0cyB0byB0aGUgc3RyZWFtaW5nIHNlcnZlciIsDQogICAgICAiaW5mb19mZm1wZWciOiAiRkZtcGVnIGNvbm5lY3RzIHRvIHRoZSBzdHJlYW1pbmcgc2VydmVyIiwNCiAgICAgICJpbmZvX3ZsYyI6ICJWTEMgY29ubmVjdHMgdG8gdGhlIHN0cmVhbWluZyBzZXJ2ZXIiDQoNCiAgICB9LA0KICAgICJ1ZHB4eSI6DQogICAgew0KICAgICAgInRpdGxlIjogIlVEUHh5IGFkZHJlc3MiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIlRoZSBhZGRyZXNzIG9mIHlvdXIgVURQeHkgc2VydmVyLiBJZiBzZXQsIGFuZCB0aGUgY2hhbm5lbCBVUkxzIGluIHRoZSBtM3UgaXMgbXVsdGljYXN0LCB4VGVWZSB3aWxsIHJld3JpdGUgaXQgc28gdGhhdCBpdCBpcyBhY2Nlc3NlZCB2aWEgdGhlIFVEUHh5IHNlcnZpY2UuIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJob3N0OnBvcnQiDQogICAgfSwNCiAgICAiZmZtcGVnUGF0aCI6DQogICAgew0KICAgICAgInRpdGxlIjogIkZGbXBlZyBCaW5hcnkgUGF0aCIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiUGF0aCB0byBGRm1wZWcgYmluYXJ5LiIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiL3BhdGgvdG8vZmZtcGVnIg0KICAgIH0sDQogICAgImZmbXBlZ09wdGlvbnMiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJGRm1wZWcgT3B0aW9ucyIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiRkZtcGVnIG9wdGlvbnMuPGJyPk9ubHkgY2hhbmdlIGlmIHlvdSBrbm93IHdoYXQgeW91IGFyZSBkb2luZy48YnI+TGVhdmUgYmxhbmsgdG8gc2V0IGRlZmF1bHQgc2V0dGluZ3MuIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJMZWF2ZSBibGFuayB0byBzZXQgZGVmYXVsdCBzZXR0aW5ncyINCiAgICB9LA0KICAgICJ2bGNQYXRoIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiVkxDIC8gQ1ZMQyBCaW5hcnkgUGF0aCIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiUGF0aCB0byBWTEMgLyBDVkxDIGJpbmFyeS4iLA0KICAgICAgInBsYWNlaG9sZGVyIjogIi9wYXRoL3RvL2N2bGMiDQogICAgfSwNCiAgICAidmxjT3B0aW9ucyI6DQogICAgew0KICAgICAgInRpdGxlIjogIlZMQyAvIENWTEMgT3B0aW9ucyIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiVkxDIC8gQ1ZMQyBvcHRpb25zLjxicj5Pbmx5IGNoYW5nZSBpZiB5b3Uga25vdyB3aGF0IHlvdSBhcmUgZG9pbmcuPGJyPkxlYXZlIGJsYW5rIHRvIHNldCBkZWZhdWx0IHNldHRpbmdzLiIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiTGVhdmUgYmxhbmsgdG8gc2V0IGRlZmF1bHQgc2V0dGluZ3MiDQogICAgfSwNCiAgICAiYnVmZmVyU2l6ZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIkJ1ZmZlciBTaXplIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJCdWZmZXIgc2l6ZSBpbiBNQi48YnI+TTNVODogSWYgdGhlIFRTIHNlZ21lbnQgc21hbGxlciB0aGVuIHRoZSBidWZmZXIgc2l6ZSwgdGhlIGZpbGUgc2l6ZSBvZiB0aGUgc2VnbWVudCBpcyB1c2VkLiINCiAgICB9LA0KICAgICJzdG9yZUJ1ZmZlckluUkFNIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiU3RvcmUgYnVmZmVyIGluIFJBTSIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiSWYgY2hlY2tlZCwgd3JpdGUgYnVmZmVyIHRvIFJBTSBpbnN0ZWFkIG9mIHdyaXRpbmcgdG8gZGlzayINCiAgICB9LA0KICAgICJidWZmZXJUaW1lb3V0IjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiVGltZW91dCBmb3IgbmV3IGNsaWVudCBjb25uZWN0aW9ucyIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiVGhlIHhUZVZlIGJ1ZmZlciB3YWl0cyB1bnRpbCBuZXcgY2xpZW50IGNvbm5lY3Rpb25zIGFyZSBlc3RhYmxpc2hlZC4gSGVscGZ1bCBmb3IgZmFzdCBjaGFubmVsIHN3aXRjaGluZy4gVmFsdWUgaW4gbWlsbGlzZWNvbmRzLiIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiMTAwIg0KICAgIH0sDQogICAgInVzZXJBZ2VudCI6DQogICAgew0KICAgICAgInRpdGxlIjogIlVzZXIgQWdlbnQiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIlVzZXIgQWdlbnQgZm9yIEhUVFAgcmVxdWVzdHMuIEZvciBldmVyeSBIVFRQIGNvbm5lY3Rpb24sIHRoaXMgdmFsdWUgaXMgdXNlZCBmb3IgdGhlIHVzZXIgYWdlbnQuIFNob3VsZCBvbmx5IGJlIGNoYW5nZWQgaWYgeFRlVmUgaXMgYmxvY2tlZC4iLA0KICAgICAgInBsYWNlaG9sZGVyIjogInhUZVZlIg0KICAgIH0sDQogICAgImJhY2t1cFBhdGgiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJMb2NhdGlvbiBmb3IgYXV0b21hdGljIGJhY2t1cHMiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIi9tbnQvZGF0YS9iYWNrdXAveHRldmUvIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJCZWZvcmUgYW55IHVwZGF0ZSBvZiB0aGUgcHJvdmlkZXIgZGF0YSBieSB0aGUgc2NoZWR1bGUsIHhUZVZlIGNyZWF0ZXMgYSBiYWNrdXAuIFRoZSBwYXRoIGZvciB0aGUgYXV0b21hdGljIGJhY2t1cHMgY2FuIGJlIGNoYW5nZWQuIHhUZVZlIHJlcXVpcmVzIHdyaXRlIHBlcm1pc3Npb24gZm9yIHRoaXMgZm9sZGVyLiINCiAgICB9LA0KICAgICJ0ZW1wUGF0aCI6DQogICAgew0KICAgICAgInRpdGxlIjogIkxvY2F0aW9uIGZvciB0aGUgdGVtcG9yYXJ5IGZpbGVzIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIvdG1wL3h0ZXZlLyIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiTG9jYXRpb24gZm9yIHRoZSBidWZmZXIgZmlsZXMuIg0KICAgIH0sDQogICAgImJhY2t1cEtlZXAiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJOdW1iZXIgb2YgYmFja3VwcyB0byBrZWVwIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJOdW1iZXIgb2YgYmFja3VwcyB0byBrZWVwLiBPbGRlciBiYWNrdXBzIGFyZSBhdXRvbWF0aWNhbGx5IGRlbGV0ZWQuIg0KICAgIH0sDQogICAgImF1dGhlbnRpY2F0aW9uV0VCIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiV0VCIEF1dGhlbnRpY2F0aW9uIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJBY2Nlc3MgdG8gdGhlIHdlYiBpbnRlcmZhY2Ugb25seSBwb3NzaWJsZSB3aXRoIGNyZWRlbnRpYWxzLiINCiAgICB9LA0KICAgICJhdXRoZW50aWNhdGlvblBNUyI6DQogICAgew0KICAgICAgInRpdGxlIjogIlBNUyBBdXRoZW50aWNhdGlvbiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiUGxleCByZXF1ZXN0cyBhcmUgb25seSBwb3NzaWJsZSB3aXRoIGF1dGhlbnRpY2F0aW9uLiA8YnI+PGI+V2FybmluZyEhITwvYj4gQWZ0ZXIgYWN0aXZhdGluZyB0aGlzIGZ1bmN0aW9uIHhUZVZlIG11c3QgYmUgZGVsZXRlIGluIHRoZSBQTVMgRFZSIHNldHRpbmdzIGFuZCBzZXQgdXAgYWdhaW4uIg0KICAgIH0sDQogICAgImF1dGhlbnRpY2F0aW9uTTNVIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiTTNVIEF1dGhlbnRpY2F0aW9uIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJEb3dubG9hZGluZyB0aGUgeHRldmUubTN1IGZpbGUgdmlhIGFuIEhUVFAgcmVxdWVzdCBpcyBvbmx5IHBvc3NpYmxlIHdpdGggYXV0aGVudGljYXRpb24uIg0KICAgIH0sDQogICAgImF1dGhlbnRpY2F0aW9uWE1MIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiWE1MIEF1dGhlbnRpY2F0aW9uIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJEb3dubG9hZGluZyB0aGUgeHRldmUueG1sIGZpbGUgdmlhIGFuIEhUVFAgcmVxdWVzdCBpcyBvbmx5IHBvc3NpYmxlIHdpdGggYXV0aGVudGljYXRpb24iDQogICAgfSwNCiAgICAiYXV0aGVudGljYXRpb25BUEkiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJBUEkgQXV0aGVudGljYXRpb24iLA0KICAgICAgImRlc2NyaXB0aW9uIjogIkFjY2VzcyB0byB0aGUgQVBJIGludGVyZmFjZSBpcyBvbmx5IHBvc3NpYmxlIHdpdGggYXV0aGVudGljYXRpb24uIg0KICAgIH0NCiAgfSwNCiAgIndpemFyZCI6DQogIHsNCiAgICAiZXBnU291cmNlIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiRVBHIFNvdXJjZSIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiUE1TOjxicj4tIFVzZSBFUEcgZGF0YSBmcm9tIFBsZXggb3IgRW1ieSA8YnI+PGJyPlhFUEc6PGJyPi0gVXNlIG9mIG9uZSBvciBtb3JlIFhNTFRWIGZpbGVzPGJyPi0gQ2hhbm5lbCBtYW5hZ2VtZW50PGJyPi0gTTNVIC8gWE1MVFYgZXhwb3J0IChIVFRQIGxpbmsgZm9yIElQVFYgYXBwcykiDQogICAgfSwNCiAgICAidHVuZXIiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJOdW1iZXIgb2YgdHVuZXJzIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJOdW1iZXIgb2YgcGFyYWxsZWwgY29ubmVjdGlvbnMgdGhhdCBjYW4gYmUgZXN0YWJsaXNoZWQgdG8gdGhlIHByb3ZpZGVyLjxicj5BdmFpbGFibGUgZm9yOiBQbGV4LCBFbWJ5IChIREhSKSwgTTNVICh3aXRoIGFjdGl2ZSBidWZmZXIpLjxicj5BZnRlciBhIGNoYW5nZSwgeFRlVmUgbXVzdCBiZSBkZWxldGUgaW4gdGhlIFBsZXggLyBFbWJ5IERWUiBzZXR0aW5ncyBhbmQgc2V0IHVwIGFnYWluLiINCiAgICB9LA0KICAgICJtM3UiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJNM1UgUGxheWxpc3QiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIkZpbGUgcGF0aCBvciBVUkwgb2YgdGhlIE0zVSIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiTG9jYWwgb3IgcmVtb3RlIHBsYXlsaXN0cyINCiAgICB9LA0KICAgICJ4bWx0diI6DQogICAgew0KICAgICAgInRpdGxlIjogIlhNTFRWIEZpbGUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIkZpbGUgcGF0aCBvciBVUkwgb2YgdGhlIFhNTFRWIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJMb2NhbCBvciByZW1vdGUgWE1MVFYgZmlsZSINCiAgICB9DQogIH0sDQogICJsb2dpbiI6DQogIHsNCiAgICAiZmFpbGVkIjogIlVzZXIgYXV0aGVudGljYXRpb24gZmFpbGVkIiwNCiAgICAiaGVhZGxpbmUiOiAiTG9naW4iLA0KICAgICJ1c2VybmFtZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIlVzZXJuYW1lIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJVc2VybmFtZSINCiAgICB9LA0KICAgICJwYXNzd29yZCI6DQogICAgew0KICAgICAgInRpdGxlIjogIlBhc3N3b3JkIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJQYXNzd29yZCINCiAgICB9DQogIH0sDQogICJhY2NvdW50IjoNCiAgew0KICAgICJmYWlsZWQiOiAiUGFzc3dvcmQgZG9lcyBub3QgbWF0Y2giLA0KICAgICJoZWFkbGluZSI6ICJDcmVhdGUgdXNlciBhY2NvdW50IiwNCiAgICAidXNlcm5hbWUiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJVc2VybmFtZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiVXNlcm5hbWUiDQogICAgfSwNCiAgICAicGFzc3dvcmQiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJQYXNzd29yZCIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiUGFzc3dvcmQiDQogICAgfSwNCiAgICAiY29uZmlybSI6DQogICAgew0KICAgICAgInRpdGxlIjogIkNvbmZpcm0iLA0KICAgICAgInBsYWNlaG9sZGVyIjogIkNvbmZpcm0iDQogICAgfQ0KICB9DQp9" diff --git a/ts/menu_ts.ts b/ts/menu_ts.ts index 53162c0..eaa6ec1 100644 --- a/ts/menu_ts.ts +++ b/ts/menu_ts.ts @@ -1355,6 +1355,12 @@ function openPopUp(dataType, element) { input.setAttribute("placeholder", "{{.filter.filterRule.placeholder}}") content.appendRow("{{.filter.filterRule.title}}", input) + // Starting Channel Number Mapping + var dbKey:string = "startingChannel" + var input = content.createInput("text", dbKey, data[dbKey]) + input.setAttribute("placeholder", "{{.filter.startingChannel.placeholder}}") + content.appendRow("{{.filter.startingChannel.title}}", input) + break; case "group-title": From b1118fe977a97ee98cd796eaf9909f25cd1c52f6 Mon Sep 17 00:00:00 2001 From: SCP002 Date: Thu, 28 Apr 2022 23:54:25 +0300 Subject: [PATCH 100/189] Increase program version to 2.4.1.0000 --- xteve.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/xteve.go b/xteve.go index 565f361..59d827b 100644 --- a/xteve.go +++ b/xteve.go @@ -37,7 +37,7 @@ var GitHub = GitHubStruct{Branch: "master", User: "SCP002", Repo: "xTeVe", Updat const Name = "xTeVe" // Version : Version, the Build Number is parsed in the main func -const Version = "2.4.0.0000" +const Version = "2.4.1.0000" // DBVersion : Database Version const DBVersion = "2.2.3" From 06e60751ed81c5dfeb0b18f4f21ee7a3b50a97cb Mon Sep 17 00:00:00 2001 From: SCP002 Date: Sat, 30 Apr 2022 01:10:20 +0300 Subject: [PATCH 101/189] Update avfs dependency to v0.30.0. Closes #32 --- go.mod | 4 ++-- go.sum | 4 ++++ 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/go.mod b/go.mod index cd1bdd6..0d531cb 100644 --- a/go.mod +++ b/go.mod @@ -10,13 +10,13 @@ require ( github.com/stretchr/testify v1.7.1 ) -require github.com/avfs/avfs v0.29.0 +require github.com/avfs/avfs v0.30.0 require ( github.com/davecgh/go-spew v1.1.1 // indirect github.com/pmezard/go-difflib v1.0.0 // indirect golang.org/x/exp v0.0.0-20220428152302-39d4317da171 // indirect golang.org/x/net v0.0.0-20220425223048-2871e0cb64e4 // indirect - golang.org/x/sys v0.0.0-20220422013727-9388b58f7150 // indirect + golang.org/x/sys v0.0.0-20220429121018-84afa8d3f7b3 // indirect gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b // indirect ) diff --git a/go.sum b/go.sum index 5d6509c..789d7cf 100644 --- a/go.sum +++ b/go.sum @@ -2,6 +2,8 @@ github.com/avfs/avfs v0.28.0 h1:srNIj81bIqD8J5QP/F46WfLfcy/viVDqo82XEERFm0E= github.com/avfs/avfs v0.28.0/go.mod h1:CSGcc8vnwdripDtbXQ6hzmKazmnJFZ7m2ObyomzneEg= github.com/avfs/avfs v0.29.0 h1:9LBkWAQkxrrRQmw5oPBXjbVkAb/zQ4iNLYyt0GunZuo= github.com/avfs/avfs v0.29.0/go.mod h1:CSGcc8vnwdripDtbXQ6hzmKazmnJFZ7m2ObyomzneEg= +github.com/avfs/avfs v0.30.0 h1:rrcJMJNdqXj8bsVNEXItbA4Oj1NxOE1/h+YtJ3ah2z8= +github.com/avfs/avfs v0.30.0/go.mod h1:CSGcc8vnwdripDtbXQ6hzmKazmnJFZ7m2ObyomzneEg= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= @@ -44,6 +46,8 @@ golang.org/x/sys v0.0.0-20220405210540-1e041c57c461 h1:kHVeDEnfKn3T238CvrUcz6KeE golang.org/x/sys v0.0.0-20220405210540-1e041c57c461/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220422013727-9388b58f7150 h1:xHms4gcpe1YE7A3yIllJXP16CMAGuqwO2lX1mTyyRRc= golang.org/x/sys v0.0.0-20220422013727-9388b58f7150/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220429121018-84afa8d3f7b3 h1:kBsBifDikLCf5sUMbcD8p73OinDtAQWQp8+n7FiyzlA= +golang.org/x/sys v0.0.0-20220429121018-84afa8d3f7b3/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20200227125254-8fa46927fb4f h1:BLraFXnmrev5lT+xlilqcH8XK9/i0At2xKjWk4p6zsU= From d4be1ce8f8e702e953e5ee4ec5067e7392afac37 Mon Sep 17 00:00:00 2001 From: SCP002 Date: Sat, 30 Apr 2022 01:42:04 +0300 Subject: [PATCH 102/189] Fix broken scrolling on the Logs page in web UI. Closes #37 --- html/js/logs_ts.js | 1 + src/webUI.go | 2 +- ts/logs_ts.ts | 1 + 3 files changed, 3 insertions(+), 1 deletion(-) diff --git a/html/js/logs_ts.js b/html/js/logs_ts.js index fafb912..83ba41a 100644 --- a/html/js/logs_ts.js +++ b/html/js/logs_ts.js @@ -1,6 +1,7 @@ class Log { createLog(entry) { var element = document.createElement("PRE"); + entry = String(entry); if (entry.indexOf("WARNING") != -1) { element.className = "warningMsg"; } diff --git a/src/webUI.go b/src/webUI.go index 8b7d487..f1ee075 100644 --- a/src/webUI.go +++ b/src/webUI.go @@ -28,7 +28,7 @@ func loadHTMLMap() { webUI["html/js/base_ts.js"] = "dmFyIFNFUlZFUiA9IG5ldyBPYmplY3QoKTsNCnZhciBCVUxLX0VESVQgPSBmYWxzZTsNCnZhciBDT0xVTU5fVE9fU09SVDsNCnZhciBTRUFSQ0hfTUFQUElORyA9IG5ldyBPYmplY3QoKTsNCnZhciBVTkRPID0gbmV3IE9iamVjdCgpOw0KdmFyIFNFUlZFUl9DT05ORUNUSU9OID0gZmFsc2U7DQp2YXIgV1NfQVZBSUxBQkxFID0gZmFsc2U7DQovLyBNZW51DQp2YXIgbWVudUl0ZW1zID0gbmV3IEFycmF5KCk7DQptZW51SXRlbXMucHVzaChuZXcgTWFpbk1lbnVJdGVtKCJwbGF5bGlzdCIsICJ7ey5tYWluTWVudS5pdGVtLnBsYXlsaXN0fX0iLCAibTN1LnBuZyIsICJ7ey5tYWluTWVudS5oZWFkbGluZS5wbGF5bGlzdH19IikpOw0KLy9tZW51SXRlbXMucHVzaChuZXcgTWFpbk1lbnVJdGVtKCJwbXNJRCIsICJ7ey5tYWluTWVudS5pdGVtLnBtc0lEfX0iLCAibnVtYmVyLnBuZyIsICJ7ey5tYWluTWVudS5oZWFkbGluZS5wbXNJRH19IikpDQptZW51SXRlbXMucHVzaChuZXcgTWFpbk1lbnVJdGVtKCJmaWx0ZXIiLCAie3subWFpbk1lbnUuaXRlbS5maWx0ZXJ9fSIsICJmaWx0ZXIucG5nIiwgInt7Lm1haW5NZW51LmhlYWRsaW5lLmZpbHRlcn19IikpOw0KbWVudUl0ZW1zLnB1c2gobmV3IE1haW5NZW51SXRlbSgieG1sdHYiLCAie3subWFpbk1lbnUuaXRlbS54bWx0dn19IiwgInhtbHR2LnBuZyIsICJ7ey5tYWluTWVudS5oZWFkbGluZS54bWx0dn19IikpOw0KbWVudUl0ZW1zLnB1c2gobmV3IE1haW5NZW51SXRlbSgibWFwcGluZyIsICJ7ey5tYWluTWVudS5pdGVtLm1hcHBpbmd9fSIsICJtYXBwaW5nLnBuZyIsICJ7ey5tYWluTWVudS5oZWFkbGluZS5tYXBwaW5nfX0iKSk7DQptZW51SXRlbXMucHVzaChuZXcgTWFpbk1lbnVJdGVtKCJ1c2VycyIsICJ7ey5tYWluTWVudS5pdGVtLnVzZXJzfX0iLCAidXNlcnMucG5nIiwgInt7Lm1haW5NZW51LmhlYWRsaW5lLnVzZXJzfX0iKSk7DQptZW51SXRlbXMucHVzaChuZXcgTWFpbk1lbnVJdGVtKCJzZXR0aW5ncyIsICJ7ey5tYWluTWVudS5pdGVtLnNldHRpbmdzfX0iLCAic2V0dGluZ3MucG5nIiwgInt7Lm1haW5NZW51LmhlYWRsaW5lLnNldHRpbmdzfX0iKSk7DQptZW51SXRlbXMucHVzaChuZXcgTWFpbk1lbnVJdGVtKCJsb2ciLCAie3subWFpbk1lbnUuaXRlbS5sb2d9fSIsICJsb2cucG5nIiwgInt7Lm1haW5NZW51LmhlYWRsaW5lLmxvZ319IikpOw0KbWVudUl0ZW1zLnB1c2gobmV3IE1haW5NZW51SXRlbSgibG9nb3V0IiwgInt7Lm1haW5NZW51Lml0ZW0ubG9nb3V0fX0iLCAibG9nb3V0LnBuZyIsICJ7ey5tYWluTWVudS5oZWFkbGluZS5sb2dvdXR9fSIpKTsNCi8vIFNldHRpbmdzIGNhdGVnb3JpZXMNCnZhciBzZXR0aW5nc0NhdGVnb3J5ID0gbmV3IEFycmF5KCk7DQpzZXR0aW5nc0NhdGVnb3J5LnB1c2gobmV3IFNldHRpbmdzQ2F0ZWdvcnlJdGVtKCJ7ey5zZXR0aW5ncy5jYXRlZ29yeS5nZW5lcmFsfX0iLCAidGxzTW9kZSx4dGV2ZUF1dG9VcGRhdGUsaG9zdElQLHR1bmVyLGVwZ1NvdXJjZSxhcGkiKSk7DQpzZXR0aW5nc0NhdGVnb3J5LnB1c2gobmV3IFNldHRpbmdzQ2F0ZWdvcnlJdGVtKCJ7ey5zZXR0aW5ncy5jYXRlZ29yeS5maWxlc319IiwgInVwZGF0ZSxmaWxlcy51cGRhdGUsdGVtcC5wYXRoLGNhY2hlLmltYWdlcyx4ZXBnLnJlcGxhY2UubWlzc2luZy5pbWFnZXMiKSk7DQpzZXR0aW5nc0NhdGVnb3J5LnB1c2gobmV3IFNldHRpbmdzQ2F0ZWdvcnlJdGVtKCJ7ey5zZXR0aW5ncy5jYXRlZ29yeS5zdHJlYW1pbmd9fSIsICJidWZmZXIsdWRweHksYnVmZmVyLnNpemUua2Isc3RvcmVCdWZmZXJJblJBTSxidWZmZXIudGltZW91dCx1c2VyLmFnZW50LGZmbXBlZy5wYXRoLGZmbXBlZy5vcHRpb25zLHZsYy5wYXRoLHZsYy5vcHRpb25zIikpOw0Kc2V0dGluZ3NDYXRlZ29yeS5wdXNoKG5ldyBTZXR0aW5nc0NhdGVnb3J5SXRlbSgie3suc2V0dGluZ3MuY2F0ZWdvcnkuYmFja3VwfX0iLCAiYmFja3VwLnBhdGgsYmFja3VwLmtlZXAiKSk7DQpzZXR0aW5nc0NhdGVnb3J5LnB1c2gobmV3IFNldHRpbmdzQ2F0ZWdvcnlJdGVtKCJ7ey5zZXR0aW5ncy5jYXRlZ29yeS5hdXRoZW50aWNhdGlvbn19IiwgImF1dGhlbnRpY2F0aW9uLndlYixhdXRoZW50aWNhdGlvbi5wbXMsYXV0aGVudGljYXRpb24ubTN1LGF1dGhlbnRpY2F0aW9uLnhtbCxhdXRoZW50aWNhdGlvbi5hcGkiKSk7DQpmdW5jdGlvbiBzaG93UG9wVXBFbGVtZW50KGVsbSkgew0KICAgIHZhciBhbGxFbGVtZW50cyA9IG5ldyBBcnJheSgicG9wdXAtY3VzdG9tIik7DQogICAgZm9yICh2YXIgaSA9IDA7IGkgPCBhbGxFbGVtZW50cy5sZW5ndGg7IGkrKykgew0KICAgICAgICBzaG93RWxlbWVudChhbGxFbGVtZW50c1tpXSwgZmFsc2UpOw0KICAgIH0NCiAgICBzaG93RWxlbWVudChlbG0sIHRydWUpOw0KICAgIHNldFRpbWVvdXQoZnVuY3Rpb24gKCkgew0KICAgICAgICBzaG93RWxlbWVudCgicG9wdXAiLCB0cnVlKTsNCiAgICB9LCAxMCk7DQogICAgcmV0dXJuOw0KfQ0KZnVuY3Rpb24gc2hvd0VsZW1lbnQoZWxtSUQsIHR5cGUpIHsNCiAgICB2YXIgY3NzQ2xhc3M7DQogICAgc3dpdGNoICh0eXBlKSB7DQogICAgICAgIGNhc2UgdHJ1ZToNCiAgICAgICAgICAgIGNzc0NsYXNzID0gImJsb2NrIjsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlIGZhbHNlOg0KICAgICAgICAgICAgY3NzQ2xhc3MgPSAibm9uZSI7DQogICAgICAgICAgICBicmVhazsNCiAgICB9DQogICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoZWxtSUQpLmNsYXNzTmFtZSA9IGNzc0NsYXNzOw0KfQ0KZnVuY3Rpb24gY2hhbmdlQnV0dG9uQWN0aW9uKGVsZW1lbnQsIGJ1dHRvbklELCBhdHRyaWJ1dGUpIHsNCiAgICB2YXIgdmFsdWUgPSBlbGVtZW50Lm9wdGlvbnNbZWxlbWVudC5zZWxlY3RlZEluZGV4XS52YWx1ZTsNCiAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChidXR0b25JRCkuc2V0QXR0cmlidXRlKGF0dHJpYnV0ZSwgdmFsdWUpOw0KfQ0KZnVuY3Rpb24gZ2V0TG9jYWxEYXRhKGRhdGFUeXBlLCBpZCkgew0KICAgIGxldCBkYXRhID0ge307DQogICAgc3dpdGNoIChkYXRhVHlwZSkgew0KICAgICAgICBjYXNlICJtM3UiOg0KICAgICAgICAgICAgZGF0YSA9IFNFUlZFUlsic2V0dGluZ3MiXVsiZmlsZXMiXVtkYXRhVHlwZV1baWRdOw0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGNhc2UgImhkaHIiOg0KICAgICAgICAgICAgZGF0YSA9IFNFUlZFUlsic2V0dGluZ3MiXVsiZmlsZXMiXVtkYXRhVHlwZV1baWRdOw0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGNhc2UgImZpbHRlciI6DQogICAgICAgIGNhc2UgImN1c3RvbS1maWx0ZXIiOg0KICAgICAgICBjYXNlICJncm91cC10aXRsZSI6DQogICAgICAgICAgICBpZiAoaWQgPT0gLTEpIHsNCiAgICAgICAgICAgICAgICBkYXRhWyJhY3RpdmUiXSA9IHRydWU7DQogICAgICAgICAgICAgICAgZGF0YVsiY2FzZVNlbnNpdGl2ZSJdID0gZmFsc2U7DQogICAgICAgICAgICAgICAgZGF0YVsiZGVzY3JpcHRpb24iXSA9ICIiOw0KICAgICAgICAgICAgICAgIGRhdGFbImV4Y2x1ZGUiXSA9ICIiOw0KICAgICAgICAgICAgICAgIGRhdGFbImZpbHRlciJdID0gIiI7DQogICAgICAgICAgICAgICAgZGF0YVsiaW5jbHVkZSJdID0gIiI7DQogICAgICAgICAgICAgICAgZGF0YVsibmFtZSJdID0gIiI7DQogICAgICAgICAgICAgICAgZGF0YVsidHlwZSJdID0gImdyb3VwLXRpdGxlIjsNCiAgICAgICAgICAgICAgICBkYXRhWyJwcmVzZXJ2ZU1hcHBpbmciXSA9IHRydWU7DQogICAgICAgICAgICAgICAgZGF0YVsic3RhcnRpbmdDaGFubmVsIl0gPSBTRVJWRVJbInNldHRpbmdzIl1bIm1hcHBpbmcuZmlyc3QuY2hhbm5lbCJdOw0KICAgICAgICAgICAgICAgIGRhdGFbImRlZmF1bHRNaXNzaW5nRVBHIl0gPSAiLSI7DQogICAgICAgICAgICAgICAgU0VSVkVSWyJzZXR0aW5ncyJdWyJmaWx0ZXIiXVtpZF0gPSBkYXRhOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgZGF0YSA9IFNFUlZFUlsic2V0dGluZ3MiXVsiZmlsdGVyIl1baWRdOw0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGNhc2UgInhtbHR2IjoNCiAgICAgICAgICAgIGRhdGEgPSBTRVJWRVJbInNldHRpbmdzIl1bImZpbGVzIl1bZGF0YVR5cGVdW2lkXTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJ1c2VycyI6DQogICAgICAgICAgICBkYXRhID0gU0VSVkVSWyJ1c2VycyJdW2lkXVsiZGF0YSJdOw0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGNhc2UgIm1hcHBpbmciOg0KICAgICAgICAgICAgZGF0YSA9IFNFUlZFUlsieGVwZyJdWyJlcGdNYXBwaW5nIl1baWRdOw0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGNhc2UgIm0zdUdyb3VwcyI6DQogICAgICAgICAgICBkYXRhID0gU0VSVkVSWyJkYXRhIl1bInBsYXlsaXN0Il1bIm0zdSJdWyJncm91cHMiXTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgIH0NCiAgICByZXR1cm4gZGF0YTsNCn0NCmZ1bmN0aW9uIGdldE93bk9ialByb3BzKG9iamVjdCkgew0KICAgIHJldHVybiBvYmplY3QgPyBPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyhvYmplY3QpIDogW107DQp9DQpmdW5jdGlvbiBnZXRBbGxTZWxlY3RlZENoYW5uZWxzKCkgew0KICAgIHZhciBjaGFubmVscyA9IG5ldyBBcnJheSgpOw0KICAgIGlmIChCVUxLX0VESVQgPT0gZmFsc2UpIHsNCiAgICAgICAgcmV0dXJuIGNoYW5uZWxzOw0KICAgIH0NCiAgICB2YXIgdHJzID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnRlbnRfdGFibGUiKS5nZXRFbGVtZW50c0J5VGFnTmFtZSgiVFIiKTsNCiAgICBmb3IgKHZhciBpID0gMTsgaSA8IHRycy5sZW5ndGg7IGkrKykgew0KICAgICAgICBpZiAodHJzW2ldLnN0eWxlLmRpc3BsYXkgIT0gIm5vbmUiKSB7DQogICAgICAgICAgICBpZiAodHJzW2ldLmZpcnN0Q2hpbGQuZmlyc3RDaGlsZC5jaGVja2VkID09IHRydWUpIHsNCiAgICAgICAgICAgICAgICBjaGFubmVscy5wdXNoKHRyc1tpXS5pZCk7DQogICAgICAgICAgICB9DQogICAgICAgIH0NCiAgICB9DQogICAgcmV0dXJuIGNoYW5uZWxzOw0KfQ0KZnVuY3Rpb24gc2VsZWN0QWxsQ2hhbm5lbHMoKSB7DQogICAgdmFyIGJ1bGsgPSBmYWxzZTsNCiAgICB2YXIgdHJzID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnRlbnRfdGFibGUiKS5nZXRFbGVtZW50c0J5VGFnTmFtZSgiVFIiKTsNCiAgICBpZiAodHJzWzBdLmZpcnN0Q2hpbGQuZmlyc3RDaGlsZC5jaGVja2VkID09IHRydWUpIHsNCiAgICAgICAgYnVsayA9IHRydWU7DQogICAgfQ0KICAgIGZvciAodmFyIGkgPSAxOyBpIDwgdHJzLmxlbmd0aDsgaSsrKSB7DQogICAgICAgIGlmICh0cnNbaV0uc3R5bGUuZGlzcGxheSAhPSAibm9uZSIpIHsNCiAgICAgICAgICAgIHN3aXRjaCAoYnVsaykgew0KICAgICAgICAgICAgICAgIGNhc2UgdHJ1ZToNCiAgICAgICAgICAgICAgICAgICAgdHJzW2ldLmZpcnN0Q2hpbGQuZmlyc3RDaGlsZC5jaGVja2VkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSBmYWxzZToNCiAgICAgICAgICAgICAgICAgICAgdHJzW2ldLmZpcnN0Q2hpbGQuZmlyc3RDaGlsZC5jaGVja2VkID0gZmFsc2U7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQogICAgfQ0KICAgIHJldHVybjsNCn0NCmZ1bmN0aW9uIGJ1bGtFZGl0KCkgew0KICAgIEJVTEtfRURJVCA9ICFCVUxLX0VESVQ7DQogICAgdmFyIGNsYXNzTmFtZTsNCiAgICB2YXIgcm93cyA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlDbGFzc05hbWUoImJ1bGsiKTsNCiAgICBzd2l0Y2ggKEJVTEtfRURJVCkgew0KICAgICAgICBjYXNlIHRydWU6DQogICAgICAgICAgICBjbGFzc05hbWUgPSAiYnVsayBzaG93QnVsayI7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSBmYWxzZToNCiAgICAgICAgICAgIGNsYXNzTmFtZSA9ICJidWxrIGhpZGVCdWxrIjsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgIH0NCiAgICBmb3IgKHZhciBpID0gMDsgaSA8IHJvd3MubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgcm93c1tpXS5jbGFzc05hbWUgPSBjbGFzc05hbWU7DQogICAgICAgIHJvd3NbaV0uY2hlY2tlZCA9IGZhbHNlOw0KICAgIH0NCiAgICByZXR1cm47DQp9DQpmdW5jdGlvbiBzb3J0VGFibGUoY29sdW1uKSB7DQogICAgaWYgKGNvbHVtbiA9PSBDT0xVTU5fVE9fU09SVCkgew0KICAgICAgICByZXR1cm47DQogICAgfQ0KICAgIGNvbnN0IHRhYmxlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnRlbnRfdGFibGUiKTsNCiAgICBjb25zdCB0YWJsZUhlYWQgPSB0YWJsZS5nZXRFbGVtZW50c0J5VGFnTmFtZSgiVFIiKVswXTsNCiAgICBjb25zdCB0YWJsZUl0ZW1zID0gdGFibGVIZWFkLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJURCIpOw0KICAgIGNvbnN0IHNvcnRBcnIgPSBbXTsNCiAgICBsZXQgeFZhbHVlOw0KICAgIGlmIChjb2x1bW4gPj0gMCAmJiBDT0xVTU5fVE9fU09SVCA+PSAwKSB7DQogICAgICAgIHRhYmxlSXRlbXNbQ09MVU1OX1RPX1NPUlRdLmNsYXNzTmFtZSA9ICJwb2ludGVyIjsNCiAgICAgICAgdGFibGVJdGVtc1tjb2x1bW5dLmNsYXNzTmFtZSA9ICJzb3J0VGhpcyI7DQogICAgfQ0KICAgIENPTFVNTl9UT19TT1JUID0gY29sdW1uOw0KICAgIGNvbnN0IHJvd3MgPSB0YWJsZS5yb3dzOw0KICAgIGlmIChyb3dzWzFdICE9IHVuZGVmaW5lZCkgew0KICAgICAgICBjb25zdCB0YWJsZUhlYWRlciA9IHJvd3NbMF07DQogICAgICAgIGxldCB4ID0gcm93c1sxXS5nZXRFbGVtZW50c0J5VGFnTmFtZSgiVEQiKVtjb2x1bW5dOw0KICAgICAgICBmb3IgKGxldCBpID0gMTsgaSA8IHJvd3MubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgICAgIHggPSByb3dzW2ldLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJURCIpW2NvbHVtbl07DQogICAgICAgICAgICBzd2l0Y2ggKHguY2hpbGROb2Rlc1swXS50YWdOYW1lLnRvTG93ZXJDYXNlKCkpIHsNCiAgICAgICAgICAgICAgICBjYXNlICJpbnB1dCI6DQogICAgICAgICAgICAgICAgICAgIHhWYWx1ZSA9IHguZ2V0RWxlbWVudHNCeVRhZ05hbWUoIklOUFVUIilbMF0udmFsdWUudG9Mb3dlckNhc2UoKTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAicCI6DQogICAgICAgICAgICAgICAgICAgIHhWYWx1ZSA9IHguZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlAiKVswXS5pbm5lclRleHQudG9Mb3dlckNhc2UoKTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBzb3J0QXJyLnB1c2goeyBrZXk6IHhWYWx1ZSA/IHhWYWx1ZSA6IGksIHJvdzogcm93c1tpXSB9KTsNCiAgICAgICAgfQ0KICAgICAgICB3aGlsZSAodGFibGUuZmlyc3RDaGlsZCkgew0KICAgICAgICAgICAgdGFibGUucmVtb3ZlQ2hpbGQodGFibGUuZmlyc3RDaGlsZCk7DQogICAgICAgIH0NCiAgICAgICAgc29ydEFyci5zb3J0KChzZTEsIHNlMikgPT4gew0KICAgICAgICAgICAgY29uc3Qgc2UxS2V5TnVtID0gcGFyc2VGbG9hdChTdHJpbmcoc2UxLmtleSkpOw0KICAgICAgICAgICAgY29uc3Qgc2UyS2V5TnVtID0gcGFyc2VGbG9hdChTdHJpbmcoc2UyLmtleSkpOw0KICAgICAgICAgICAgaWYgKCFpc05hTihzZTFLZXlOdW0pICYmICFpc05hTihzZTJLZXlOdW0pKSB7DQogICAgICAgICAgICAgICAgcmV0dXJuIHNlMUtleU51bSAtIHNlMktleU51bTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGlmIChzZTEua2V5IDwgc2UyLmtleSkgew0KICAgICAgICAgICAgICAgIHJldHVybiAtMTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGlmIChzZTEua2V5ID4gc2UyLmtleSkgew0KICAgICAgICAgICAgICAgIHJldHVybiAxOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgcmV0dXJuIDA7DQogICAgICAgIH0pOw0KICAgICAgICB0YWJsZS5hcHBlbmRDaGlsZCh0YWJsZUhlYWRlcik7DQogICAgICAgIHNvcnRBcnIuZm9yRWFjaCgoc2UpID0+IHsNCiAgICAgICAgICAgIHRhYmxlLmFwcGVuZENoaWxkKHNlLnJvdyk7DQogICAgICAgIH0pOw0KICAgIH0NCiAgICByZXR1cm47DQp9DQpmdW5jdGlvbiBjcmVhdGVTZWFyY2hPYmooKSB7DQogICAgU0VBUkNIX01BUFBJTkcgPSBuZXcgT2JqZWN0KCk7DQogICAgdmFyIGRhdGEgPSBTRVJWRVJbInhlcGciXVsiZXBnTWFwcGluZyJdOw0KICAgIHZhciBjaGFubmVscyA9IGdldE93bk9ialByb3BzKGRhdGEpOw0KICAgIHZhciBjaGFubmVsS2V5cyA9IFsieC1hY3RpdmUiLCAieC1jaGFubmVsSUQiLCAieC1uYW1lIiwgIl9maWxlLm0zdS5uYW1lIiwgIngtZ3JvdXAtdGl0bGUiLCAieC14bWx0di1maWxlIl07DQogICAgY2hhbm5lbHMuZm9yRWFjaChpZCA9PiB7DQogICAgICAgIGNoYW5uZWxLZXlzLmZvckVhY2goa2V5ID0+IHsNCiAgICAgICAgICAgIGlmIChrZXkgPT0gIngtYWN0aXZlIikgew0KICAgICAgICAgICAgICAgIHN3aXRjaCAoZGF0YVtpZF1ba2V5XSkgew0KICAgICAgICAgICAgICAgICAgICBjYXNlIHRydWU6DQogICAgICAgICAgICAgICAgICAgICAgICBTRUFSQ0hfTUFQUElOR1tpZF0gPSAib25saW5lICI7DQogICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICAgICAgY2FzZSBmYWxzZToNCiAgICAgICAgICAgICAgICAgICAgICAgIFNFQVJDSF9NQVBQSU5HW2lkXSA9ICJvZmZsaW5lICI7DQogICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9DQogICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICBpZiAoa2V5ID09ICJ4LXhtbHR2LWZpbGUiKSB7DQogICAgICAgICAgICAgICAgICAgIHZhciB4bWx0dkZpbGUgPSBnZXRWYWx1ZUZyb21Qcm92aWRlckZpbGUoZGF0YVtpZF1ba2V5XSwgInhtbHR2IiwgIm5hbWUiKTsNCiAgICAgICAgICAgICAgICAgICAgaWYgKHhtbHR2RmlsZSAhPSB1bmRlZmluZWQpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIFNFQVJDSF9NQVBQSU5HW2lkXSA9IFNFQVJDSF9NQVBQSU5HW2lkXSArIHhtbHR2RmlsZSArICIgIjsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICAgICAgU0VBUkNIX01BUFBJTkdbaWRdID0gU0VBUkNIX01BUFBJTkdbaWRdICsgZGF0YVtpZF1ba2V5XSArICIgIjsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9DQogICAgICAgIH0pOw0KICAgIH0pOw0KICAgIHJldHVybjsNCn0NCmZ1bmN0aW9uIHNlYXJjaEluTWFwcGluZygpIHsNCiAgICB2YXIgc2VhcmNoVmFsdWUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic2VhcmNoTWFwcGluZyIpLnZhbHVlOw0KICAgIHZhciB0cnMgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29udGVudF90YWJsZSIpLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJUUiIpOw0KICAgIGZvciAodmFyIGkgPSAxOyBpIDwgdHJzLmxlbmd0aDsgKytpKSB7DQogICAgICAgIHZhciBpZCA9IHRyc1tpXS5nZXRBdHRyaWJ1dGUoImlkIik7DQogICAgICAgIHZhciBlbGVtZW50ID0gU0VBUkNIX01BUFBJTkdbaWRdOw0KICAgICAgICBzd2l0Y2ggKGVsZW1lbnQudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhzZWFyY2hWYWx1ZS50b0xvd2VyQ2FzZSgpKSkgew0KICAgICAgICAgICAgY2FzZSB0cnVlOg0KICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5zdHlsZS5kaXNwbGF5ID0gIiI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlIGZhbHNlOg0KICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5zdHlsZS5kaXNwbGF5ID0gIm5vbmUiOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICB9DQogICAgfQ0KICAgIHJldHVybjsNCn0NCmZ1bmN0aW9uIGNhbGN1bGF0ZVdyYXBwZXJIZWlnaHQoKSB7DQogICAgaWYgKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJib3gtd3JhcHBlciIpKSB7DQogICAgICAgIHZhciBlbG0gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYm94LXdyYXBwZXIiKTsNCiAgICAgICAgdmFyIGRpdnMgPSBuZXcgQXJyYXkoIm15U3RyZWFtc0JveCIsICJjbGllbnRJbmZvIiwgImNvbnRlbnQiKTsNCiAgICAgICAgdmFyIGVsZW1lbnRzSGVpZ2h0ID0gMCAtIGVsbS5vZmZzZXRIZWlnaHQ7DQogICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgZGl2cy5sZW5ndGg7IGkrKykgew0KICAgICAgICAgICAgZWxlbWVudHNIZWlnaHQgPSBlbGVtZW50c0hlaWdodCArIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGRpdnNbaV0pLm9mZnNldEhlaWdodDsNCiAgICAgICAgfQ0KICAgICAgICBlbG0uc3R5bGUuaGVpZ2h0ID0gd2luZG93LmlubmVySGVpZ2h0IC0gZWxlbWVudHNIZWlnaHQgKyAicHgiOw0KICAgIH0NCiAgICByZXR1cm47DQp9DQpmdW5jdGlvbiBjaGFuZ2VDaGFubmVsTnVtYmVyKGVsZW1lbnQpIHsNCiAgICB2YXIgZGJJRCA9IGVsZW1lbnQucGFyZW50Tm9kZS5wYXJlbnROb2RlLmlkOw0KICAgIHZhciBuZXdOdW1iZXIgPSBwYXJzZUZsb2F0KGVsZW1lbnQudmFsdWUpOw0KICAgIHZhciBjaGFubmVsTnVtYmVycyA9IFtdOw0KICAgIHZhciBkYXRhID0gU0VSVkVSWyJ4ZXBnIl1bImVwZ01hcHBpbmciXTsNCiAgICB2YXIgY2hhbm5lbHMgPSBnZXRPd25PYmpQcm9wcyhkYXRhKTsNCiAgICBpZiAoaXNOYU4obmV3TnVtYmVyKSkgew0KICAgICAgICBhbGVydCgie3suYWxlcnQuaW52YWxpZENoYW5uZWxOdW1iZXJ9fSIpOw0KICAgICAgICByZXR1cm47DQogICAgfQ0KICAgIGNoYW5uZWxzLmZvckVhY2goaWQgPT4gew0KICAgICAgICB2YXIgY2hhbm5lbE51bWJlciA9IHBhcnNlRmxvYXQoZGF0YVtpZF1bIngtY2hhbm5lbElEIl0pOw0KICAgICAgICBjaGFubmVsTnVtYmVycy5wdXNoKGNoYW5uZWxOdW1iZXIpOw0KICAgIH0pOw0KICAgIGZvciAodmFyIGkgPSAwOyBpIDwgY2hhbm5lbE51bWJlcnMubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgaWYgKGNoYW5uZWxOdW1iZXJzLmluZGV4T2YobmV3TnVtYmVyKSA9PSAtMSkgew0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIH0NCiAgICAgICAgaWYgKE1hdGguZmxvb3IobmV3TnVtYmVyKSA9PSBuZXdOdW1iZXIpIHsNCiAgICAgICAgICAgIG5ld051bWJlciA9IG5ld051bWJlciArIDE7DQogICAgICAgIH0NCiAgICAgICAgZWxzZSB7DQogICAgICAgICAgICBuZXdOdW1iZXIgPSBuZXdOdW1iZXIgKyAwLjE7DQogICAgICAgICAgICBuZXdOdW1iZXIudG9GaXhlZCgxKTsNCiAgICAgICAgICAgIG5ld051bWJlciA9IE1hdGgucm91bmQobmV3TnVtYmVyICogMTApIC8gMTA7DQogICAgICAgIH0NCiAgICB9DQogICAgZGF0YVtkYklEXVsieC1jaGFubmVsSUQiXSA9IG5ld051bWJlci50b1N0cmluZygpOw0KICAgIGVsZW1lbnQudmFsdWUgPSBuZXdOdW1iZXI7DQogICAgaWYgKENPTFVNTl9UT19TT1JUID09IDEpIHsNCiAgICAgICAgQ09MVU1OX1RPX1NPUlQgPSAtMTsNCiAgICAgICAgc29ydFRhYmxlKDEpOw0KICAgIH0NCiAgICByZXR1cm47DQp9DQpmdW5jdGlvbiBiYWNrdXAoKSB7DQogICAgdmFyIGRhdGEgPSBuZXcgT2JqZWN0KCk7DQogICAgdmFyIGNtZCA9ICJ4dGV2ZUJhY2t1cCI7DQogICAgdmFyIHNlcnZlciA9IG5ldyBTZXJ2ZXIoY21kKTsNCiAgICBzZXJ2ZXIucmVxdWVzdChkYXRhKTsNCiAgICByZXR1cm47DQp9DQpmdW5jdGlvbiB0b2dnbGVDaGFubmVsU3RhdHVzKGlkKSB7DQogICAgdmFyIGVsZW1lbnQ7DQogICAgdmFyIHN0YXR1czsNCiAgICBpZiAoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImFjdGl2ZSIpKSB7DQogICAgICAgIHZhciBjaGVja2JveCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJhY3RpdmUiKTsNCiAgICAgICAgc3RhdHVzID0gKGNoZWNrYm94KS5jaGVja2VkOw0KICAgIH0NCiAgICB2YXIgaWRzID0gZ2V0QWxsU2VsZWN0ZWRDaGFubmVscygpOw0KICAgIGlmIChpZHMubGVuZ3RoID09IDApIHsNCiAgICAgICAgaWRzLnB1c2goaWQpOw0KICAgIH0NCiAgICBpZHMuZm9yRWFjaChpZCA9PiB7DQogICAgICAgIHZhciBjaGFubmVsID0gU0VSVkVSWyJ4ZXBnIl1bImVwZ01hcHBpbmciXVtpZF07DQogICAgICAgIGNoYW5uZWxbIngtYWN0aXZlIl0gPSBzdGF0dXM7DQogICAgICAgIHN3aXRjaCAoY2hhbm5lbFsieC1hY3RpdmUiXSkgew0KICAgICAgICAgICAgY2FzZSB0cnVlOg0KICAgICAgICAgICAgICAgIGlmIChjaGFubmVsWyJ4LXhtbHR2LWZpbGUiXSA9PSAiLSIgfHwgY2hhbm5lbFsieC1tYXBwaW5nIl0gPT0gIi0iKSB7DQogICAgICAgICAgICAgICAgICAgIGlmIChCVUxLX0VESVQgPT0gZmFsc2UpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGFsZXJ0KGNoYW5uZWxbIngtbmFtZSJdICsgIjogTWlzc2luZyBYTUxUViBmaWxlIC8gY2hhbm5lbCIpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2hlY2tib3guY2hlY2tlZCA9IGZhbHNlOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIGNoYW5uZWxbIngtYWN0aXZlIl0gPSBmYWxzZTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlIGZhbHNlOg0KICAgICAgICAgICAgICAgIC8vIGNvZGUuLi4NCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgfQ0KICAgICAgICBpZiAoY2hhbm5lbFsieC1hY3RpdmUiXSA9PSBmYWxzZSkgew0KICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpLmNsYXNzTmFtZSA9ICJub3RBY3RpdmVFUEciOw0KICAgICAgICB9DQogICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpLmNsYXNzTmFtZSA9ICJhY3RpdmVFUEciOw0KICAgICAgICB9DQogICAgfSk7DQp9DQpmdW5jdGlvbiB0b2dnbGVHcm91cFVwZGF0ZUNiKHhlcGdJZCwgdGFyZ2V0KSB7DQogICAgdGFyZ2V0LmNsYXNzTmFtZSA9ICdjaGFuZ2VkJzsNCiAgICBjb25zdCBncm91cElucHV0ID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignaW5wdXRbbmFtZT0ieC1ncm91cC10aXRsZSJdJyk7DQogICAgY29uc3QgbWFwcGluZyA9IGdldExvY2FsRGF0YSgnbWFwcGluZycsIHhlcGdJZCk7DQogICAgaWYgKHRhcmdldC5jaGVja2VkKSB7DQogICAgICAgIGdyb3VwSW5wdXQuZGF0YXNldC5vbGRWYWx1ZSA9IGdyb3VwSW5wdXQudmFsdWU7DQogICAgICAgIGdyb3VwSW5wdXQudmFsdWUgPSBtYXBwaW5nWydncm91cC10aXRsZSddOw0KICAgICAgICBncm91cElucHV0LmRpc2FibGVkID0gdHJ1ZTsNCiAgICB9DQogICAgZWxzZSB7DQogICAgICAgIGdyb3VwSW5wdXQudmFsdWUgPSBncm91cElucHV0LmRhdGFzZXQub2xkVmFsdWU7DQogICAgICAgIGdyb3VwSW5wdXQuZGlzYWJsZWQgPSBmYWxzZTsNCiAgICB9DQogICAgZ3JvdXBJbnB1dC5jbGFzc05hbWUgPSAnY2hhbmdlZCc7DQp9DQpmdW5jdGlvbiByZXN0b3JlKCkgew0KICAgIGlmIChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndXBsb2FkJykpIHsNCiAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3VwbG9hZCcpLnJlbW92ZSgpOw0KICAgIH0NCiAgICB2YXIgcmVzdG9yZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIklOUFVUIik7DQogICAgcmVzdG9yZS5zZXRBdHRyaWJ1dGUoInR5cGUiLCAiZmlsZSIpOw0KICAgIHJlc3RvcmUuc2V0QXR0cmlidXRlKCJjbGFzcyIsICJub3RWaXNpYmxlIik7DQogICAgcmVzdG9yZS5zZXRBdHRyaWJ1dGUoIm5hbWUiLCAiIik7DQogICAgcmVzdG9yZS5pZCA9ICJ1cGxvYWQiOw0KICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQocmVzdG9yZSk7DQogICAgcmVzdG9yZS5jbGljaygpOw0KICAgIHJlc3RvcmUub25jaGFuZ2UgPSBmdW5jdGlvbiAoKSB7DQogICAgICAgIHZhciBmaWxlbmFtZSA9IHJlc3RvcmUuZmlsZXNbMF0ubmFtZTsNCiAgICAgICAgdmFyIGNoZWNrID0gY29uZmlybSgiRmlsZTogIiArIGZpbGVuYW1lICsgIlxue3suY29uZmlybS5yZXN0b3JlfX0iKTsNCiAgICAgICAgaWYgKGNoZWNrID09IHRydWUpIHsNCiAgICAgICAgICAgIHZhciByZWFkZXIgPSBuZXcgRmlsZVJlYWRlcigpOw0KICAgICAgICAgICAgdmFyIGZpbGUgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCdpbnB1dFt0eXBlPWZpbGVdJykuZmlsZXNbMF07DQogICAgICAgICAgICBpZiAoZmlsZSkgew0KICAgICAgICAgICAgICAgIHJlYWRlci5yZWFkQXNEYXRhVVJMKGZpbGUpOw0KICAgICAgICAgICAgICAgIHJlYWRlci5vbmxvYWQgPSBmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICAgICAgICAgIHZhciBkYXRhID0gbmV3IE9iamVjdCgpOw0KICAgICAgICAgICAgICAgICAgICB2YXIgY21kID0gInh0ZXZlUmVzdG9yZSI7DQogICAgICAgICAgICAgICAgICAgIGRhdGFbImJhc2U2NCJdID0gcmVhZGVyLnJlc3VsdDsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHNlcnZlciA9IG5ldyBTZXJ2ZXIoY21kKTsNCiAgICAgICAgICAgICAgICAgICAgc2VydmVyLnJlcXVlc3QoZGF0YSk7DQogICAgICAgICAgICAgICAgfTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgICAgIGFsZXJ0KCJGaWxlIGNvdWxkIG5vdCBiZSBsb2FkZWQiKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIHJlc3RvcmUucmVtb3ZlKCk7DQogICAgICAgICAgICByZXR1cm47DQogICAgICAgIH0NCiAgICB9Ow0KICAgIHJldHVybjsNCn0NCmZ1bmN0aW9uIHVwbG9hZExvZ28oKSB7DQogICAgaWYgKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd1cGxvYWQnKSkgew0KICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndXBsb2FkJykucmVtb3ZlKCk7DQogICAgfQ0KICAgIHZhciB1cGxvYWQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJJTlBVVCIpOw0KICAgIHVwbG9hZC5zZXRBdHRyaWJ1dGUoInR5cGUiLCAiZmlsZSIpOw0KICAgIHVwbG9hZC5zZXRBdHRyaWJ1dGUoImNsYXNzIiwgIm5vdFZpc2libGUiKTsNCiAgICB1cGxvYWQuc2V0QXR0cmlidXRlKCJuYW1lIiwgIiIpOw0KICAgIHVwbG9hZC5pZCA9ICJ1cGxvYWQiOw0KICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQodXBsb2FkKTsNCiAgICB1cGxvYWQuY2xpY2soKTsNCiAgICB1cGxvYWQub25ibHVyID0gZnVuY3Rpb24gKCkgew0KICAgICAgICBhbGVydCgpOw0KICAgIH07DQogICAgdXBsb2FkLm9uY2hhbmdlID0gZnVuY3Rpb24gKCkgew0KICAgICAgICB2YXIgZmlsZW5hbWUgPSB1cGxvYWQuZmlsZXNbMF0ubmFtZTsNCiAgICAgICAgdmFyIHJlYWRlciA9IG5ldyBGaWxlUmVhZGVyKCk7DQogICAgICAgIHZhciBmaWxlID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignaW5wdXRbdHlwZT1maWxlXScpLmZpbGVzWzBdOw0KICAgICAgICBpZiAoZmlsZSkgew0KICAgICAgICAgICAgcmVhZGVyLnJlYWRBc0RhdGFVUkwoZmlsZSk7DQogICAgICAgICAgICByZWFkZXIub25sb2FkID0gZnVuY3Rpb24gKCkgew0KICAgICAgICAgICAgICAgIHZhciBkYXRhID0gbmV3IE9iamVjdCgpOw0KICAgICAgICAgICAgICAgIHZhciBjbWQgPSAidXBsb2FkTG9nbyI7DQogICAgICAgICAgICAgICAgZGF0YVsiYmFzZTY0Il0gPSByZWFkZXIucmVzdWx0Ow0KICAgICAgICAgICAgICAgIGRhdGFbImZpbGVuYW1lIl0gPSBmaWxlLm5hbWU7DQogICAgICAgICAgICAgICAgdmFyIHNlcnZlciA9IG5ldyBTZXJ2ZXIoY21kKTsNCiAgICAgICAgICAgICAgICBzZXJ2ZXIucmVxdWVzdChkYXRhKTsNCiAgICAgICAgICAgICAgICB2YXIgdXBkYXRlTG9nbyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd1cGRhdGUtaWNvbicpOw0KICAgICAgICAgICAgICAgIHVwZGF0ZUxvZ28uY2hlY2tlZCA9IGZhbHNlOw0KICAgICAgICAgICAgICAgIHVwZGF0ZUxvZ28uY2xhc3NOYW1lID0gImNoYW5nZWQiOw0KICAgICAgICAgICAgfTsNCiAgICAgICAgfQ0KICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgIGFsZXJ0KCJGaWxlIGNvdWxkIG5vdCBiZSBsb2FkZWQiKTsNCiAgICAgICAgfQ0KICAgICAgICB1cGxvYWQucmVtb3ZlKCk7DQogICAgICAgIHJldHVybjsNCiAgICB9Ow0KfQ0KZnVuY3Rpb24gY2hlY2tVbmRvKGtleSkgew0KICAgIHN3aXRjaCAoa2V5KSB7DQogICAgICAgIGNhc2UgImVwZ01hcHBpbmciOg0KICAgICAgICAgICAgaWYgKFVORE8uaGFzT3duUHJvcGVydHkoa2V5KSkgew0KICAgICAgICAgICAgICAgIFNFUlZFUlsieGVwZyJdW2tleV0gPSBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KFVORE9ba2V5XSkpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgZWxzZSB7DQogICAgICAgICAgICAgICAgVU5ET1trZXldID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeShTRVJWRVJbInhlcGciXVtrZXldKSk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgIGJyZWFrOw0KICAgIH0NCiAgICByZXR1cm47DQp9DQpmdW5jdGlvbiB1cGRhdGVMb2coKSB7DQogICAgdmFyIHNlcnZlciA9IG5ldyBTZXJ2ZXIoInVwZGF0ZUxvZyIpOw0KICAgIHNlcnZlci5yZXF1ZXN0KG5ldyBPYmplY3QoKSk7DQp9DQo=" webUI["html/js/classes_ts.js"] = "dmFyIF9fZXh0ZW5kcyA9ICh0aGlzICYmIHRoaXMuX19leHRlbmRzKSB8fCAoZnVuY3Rpb24gKCkgew0KICAgIHZhciBleHRlbmRTdGF0aWNzID0gZnVuY3Rpb24gKGQsIGIpIHsNCiAgICAgICAgZXh0ZW5kU3RhdGljcyA9IE9iamVjdC5zZXRQcm90b3R5cGVPZiB8fA0KICAgICAgICAgICAgKHsgX19wcm90b19fOiBbXSB9IGluc3RhbmNlb2YgQXJyYXkgJiYgZnVuY3Rpb24gKGQsIGIpIHsgZC5fX3Byb3RvX18gPSBiOyB9KSB8fA0KICAgICAgICAgICAgZnVuY3Rpb24gKGQsIGIpIHsgZm9yICh2YXIgcCBpbiBiKSBpZiAoYi5oYXNPd25Qcm9wZXJ0eShwKSkgZFtwXSA9IGJbcF07IH07DQogICAgICAgIHJldHVybiBleHRlbmRTdGF0aWNzKGQsIGIpOw0KICAgIH07DQogICAgcmV0dXJuIGZ1bmN0aW9uIChkLCBiKSB7DQogICAgICAgIGV4dGVuZFN0YXRpY3MoZCwgYik7DQogICAgICAgIGZ1bmN0aW9uIF9fKCkgeyB0aGlzLmNvbnN0cnVjdG9yID0gZDsgfQ0KICAgICAgICBkLnByb3RvdHlwZSA9IGIgPT09IG51bGwgPyBPYmplY3QuY3JlYXRlKGIpIDogKF9fLnByb3RvdHlwZSA9IGIucHJvdG90eXBlLCBuZXcgX18oKSk7DQogICAgfTsNCn0pKCk7DQp2YXIgTWFpbk1lbnUgPSAvKiogQGNsYXNzICovIChmdW5jdGlvbiAoKSB7DQogICAgZnVuY3Rpb24gTWFpbk1lbnUoKSB7DQogICAgICAgIHRoaXMuRG9jdW1lbnRJRCA9ICJtYWluLW1lbnUiOw0KICAgICAgICB0aGlzLkhUTUxUYWcgPSAiTEkiOw0KICAgIH0NCiAgICBNYWluTWVudS5wcm90b3R5cGUuY3JlYXRlID0gZnVuY3Rpb24gKCkgew0KICAgICAgICBjb25zb2xlLmxvZyh0aGlzLkRvY3VtZW50SUQpOw0KICAgIH07DQogICAgcmV0dXJuIE1haW5NZW51Ow0KfSgpKTsNCnZhciBNYWluTWVudUl0ZW0gPSAvKiogQGNsYXNzICovIChmdW5jdGlvbiAoX3N1cGVyKSB7DQogICAgX19leHRlbmRzKE1haW5NZW51SXRlbSwgX3N1cGVyKTsNCiAgICBmdW5jdGlvbiBNYWluTWVudUl0ZW0oKSB7DQogICAgICAgIHJldHVybiBfc3VwZXIgIT09IG51bGwgJiYgX3N1cGVyLmFwcGx5KHRoaXMsIGFyZ3VtZW50cykgfHwgdGhpczsNCiAgICB9DQogICAgTWFpbk1lbnVJdGVtLnByb3RvdHlwZS5jcmVhdGUyID0gZnVuY3Rpb24gKCkgew0KICAgICAgICB2YXIgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQodGhpcy5IVE1MVGFnKTsNCiAgICAgICAgZWxlbWVudC5pbm5lclRleHQgPSB0aGlzLlZhbHVlOw0KICAgICAgICBjb25zb2xlLmxvZyhlbGVtZW50KTsNCiAgICB9Ow0KICAgIHJldHVybiBNYWluTWVudUl0ZW07DQp9KE1haW5NZW51KSk7DQpmdW5jdGlvbiBwYWdlUmVhZHkoKSB7DQogICAgdmFyIGl0ZW0gPSBuZXcgTWFpbk1lbnVJdGVtKCk7DQogICAgaXRlbS5WYWx1ZSA9ICJUZXN0IjsNCiAgICBpdGVtLmNyZWF0ZTIoKTsNCn0NCg==" webUI["html/js/configuration_ts.js"] = "Y2xhc3MgV2l6YXJkQ2F0ZWdvcnkgew0KICAgIGNvbnN0cnVjdG9yKCkgew0KICAgICAgICB0aGlzLkRvY3VtZW50SUQgPSAiY29udGVudCI7DQogICAgfQ0KICAgIGNyZWF0ZUNhdGVnb3J5SGVhZGxpbmUodmFsdWUpIHsNCiAgICAgICAgdmFyIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJINCIpOw0KICAgICAgICBlbGVtZW50LmlubmVySFRNTCA9IHZhbHVlOw0KICAgICAgICByZXR1cm4gZWxlbWVudDsNCiAgICB9DQp9DQpjbGFzcyBXaXphcmRJdGVtIGV4dGVuZHMgV2l6YXJkQ2F0ZWdvcnkgew0KICAgIGNvbnN0cnVjdG9yKGtleSwgaGVhZGxpbmUpIHsNCiAgICAgICAgc3VwZXIoKTsNCiAgICAgICAgdGhpcy5oZWFkbGluZSA9IGhlYWRsaW5lOw0KICAgICAgICB0aGlzLmtleSA9IGtleTsNCiAgICB9DQogICAgY3JlYXRlV2l6YXJkKCkgew0KICAgICAgICB2YXIgaGVhZGxpbmUgPSB0aGlzLmNyZWF0ZUNhdGVnb3J5SGVhZGxpbmUodGhpcy5oZWFkbGluZSk7DQogICAgICAgIHZhciBrZXkgPSB0aGlzLmtleTsNCiAgICAgICAgdmFyIGNvbnRlbnQgPSBuZXcgUG9wdXBDb250ZW50KCk7DQogICAgICAgIHZhciBkZXNjcmlwdGlvbjsNCiAgICAgICAgdmFyIGRvYyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHRoaXMuRG9jdW1lbnRJRCk7DQogICAgICAgIGRvYy5pbm5lckhUTUwgPSAiIjsNCiAgICAgICAgZG9jLmFwcGVuZENoaWxkKGhlYWRsaW5lKTsNCiAgICAgICAgc3dpdGNoIChrZXkpIHsNCiAgICAgICAgICAgIGNhc2UgInR1bmVyIjoNCiAgICAgICAgICAgICAgICB2YXIgdGV4dCA9IG5ldyBBcnJheSgpOw0KICAgICAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBuZXcgQXJyYXkoKTsNCiAgICAgICAgICAgICAgICBmb3IgKHZhciBpID0gMTsgaSA8PSAxMDA7IGkrKykgew0KICAgICAgICAgICAgICAgICAgICB0ZXh0LnB1c2goaSk7DQogICAgICAgICAgICAgICAgICAgIHZhbHVlcy5wdXNoKGkpOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCAiMSIsIGtleSk7DQogICAgICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgiY2xhc3MiLCAid2l6YXJkIik7DQogICAgICAgICAgICAgICAgc2VsZWN0LmlkID0ga2V5Ow0KICAgICAgICAgICAgICAgIGRvYy5hcHBlbmRDaGlsZChzZWxlY3QpOw0KICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uID0gInt7LndpemFyZC50dW5lci5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImVwZ1NvdXJjZSI6DQogICAgICAgICAgICAgICAgdmFyIHRleHQgPSBbIlBNUyIsICJYRVBHIl07DQogICAgICAgICAgICAgICAgdmFyIHZhbHVlcyA9IFsiUE1TIiwgIlhFUEciXTsNCiAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCAiWEVQRyIsIGtleSk7DQogICAgICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgiY2xhc3MiLCAid2l6YXJkIik7DQogICAgICAgICAgICAgICAgc2VsZWN0LmlkID0ga2V5Ow0KICAgICAgICAgICAgICAgIGRvYy5hcHBlbmRDaGlsZChzZWxlY3QpOw0KICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uID0gInt7LndpemFyZC5lcGdTb3VyY2UuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJtM3UiOg0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBrZXksICIiKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LndpemFyZC5tM3UucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgiY2xhc3MiLCAid2l6YXJkIik7DQogICAgICAgICAgICAgICAgaW5wdXQuaWQgPSBrZXk7DQogICAgICAgICAgICAgICAgZG9jLmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbiA9ICJ7ey53aXphcmQubTN1LmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAieG1sdHYiOg0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBrZXksICIiKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LndpemFyZC54bWx0di5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJjbGFzcyIsICJ3aXphcmQiKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5pZCA9IGtleTsNCiAgICAgICAgICAgICAgICBkb2MuYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uID0gInt7LndpemFyZC54bWx0di5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIH0NCiAgICAgICAgdmFyIHByZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlBSRSIpOw0KICAgICAgICBwcmUuaW5uZXJIVE1MID0gZGVzY3JpcHRpb247DQogICAgICAgIGRvYy5hcHBlbmRDaGlsZChwcmUpOw0KICAgIH0NCn0NCmZ1bmN0aW9uIHJlYWR5Rm9yQ29uZmlndXJhdGlvbih3aXphcmQpIHsNCiAgICB2YXIgc2VydmVyID0gbmV3IFNlcnZlcigiZ2V0U2VydmVyQ29uZmlnIik7DQogICAgc2VydmVyLnJlcXVlc3QobmV3IE9iamVjdCgpKTsNCiAgICBzaG93RWxlbWVudCgibG9hZGluZyIsIGZhbHNlKTsNCiAgICBjb25maWd1cmF0aW9uV2l6YXJkW3dpemFyZF0uY3JlYXRlV2l6YXJkKCk7DQp9DQpmdW5jdGlvbiBzYXZlV2l6YXJkKCkgew0KICAgIHZhciBjbWQgPSAic2F2ZVdpemFyZCI7DQogICAgdmFyIGRpdiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb250ZW50Iik7DQogICAgdmFyIGNvbmZpZyA9IGRpdi5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCJ3aXphcmQiKTsNCiAgICB2YXIgd2l6YXJkID0gbmV3IE9iamVjdCgpOw0KICAgIGZvciAodmFyIGkgPSAwOyBpIDwgY29uZmlnLmxlbmd0aDsgaSsrKSB7DQogICAgICAgIHZhciBuYW1lOw0KICAgICAgICB2YXIgdmFsdWU7DQogICAgICAgIHN3aXRjaCAoY29uZmlnW2ldLnRhZ05hbWUpIHsNCiAgICAgICAgICAgIGNhc2UgIlNFTEVDVCI6DQogICAgICAgICAgICAgICAgbmFtZSA9IGNvbmZpZ1tpXS5uYW1lOw0KICAgICAgICAgICAgICAgIHZhbHVlID0gY29uZmlnW2ldLnZhbHVlOw0KICAgICAgICAgICAgICAgIC8vIElmIHRoZSB2YWx1ZSBpcyBhIG51bWJlciwgc3RvcmUgaXQgYXMgYSBudW1iZXINCiAgICAgICAgICAgICAgICBpZiAoaXNOYU4odmFsdWUpKSB7DQogICAgICAgICAgICAgICAgICAgIHdpemFyZFtuYW1lXSA9IHZhbHVlOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICAgICAgd2l6YXJkW25hbWVdID0gcGFyc2VJbnQodmFsdWUpOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgIklOUFVUIjoNCiAgICAgICAgICAgICAgICBzd2l0Y2ggKGNvbmZpZ1tpXS50eXBlKSB7DQogICAgICAgICAgICAgICAgICAgIGNhc2UgInRleHQiOg0KICAgICAgICAgICAgICAgICAgICAgICAgbmFtZSA9IGNvbmZpZ1tpXS5uYW1lOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSBjb25maWdbaV0udmFsdWU7DQogICAgICAgICAgICAgICAgICAgICAgICBpZiAodmFsdWUubGVuZ3RoID09IDApIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgbXNnID0gbmFtZS50b1VwcGVyQ2FzZSgpICsgIjogIiArICJ7ey5hbGVydC5taXNzaW5nSW5wdXR9fSI7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgYWxlcnQobXNnKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICB3aXphcmRbbmFtZV0gPSB2YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICAgICAgLy8gY29kZS4uLg0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICB9DQogICAgfQ0KICAgIHZhciBkYXRhID0gbmV3IE9iamVjdCgpOw0KICAgIGRhdGFbIndpemFyZCJdID0gd2l6YXJkOw0KICAgIHZhciBzZXJ2ZXIgPSBuZXcgU2VydmVyKGNtZCk7DQogICAgc2VydmVyLnJlcXVlc3QoZGF0YSk7DQp9DQovLyBXaXphcmQNCnZhciBjb25maWd1cmF0aW9uV2l6YXJkID0gbmV3IEFycmF5KCk7DQpjb25maWd1cmF0aW9uV2l6YXJkLnB1c2gobmV3IFdpemFyZEl0ZW0oInR1bmVyIiwgInt7LndpemFyZC50dW5lci50aXRsZX19IikpOw0KY29uZmlndXJhdGlvbldpemFyZC5wdXNoKG5ldyBXaXphcmRJdGVtKCJlcGdTb3VyY2UiLCAie3sud2l6YXJkLmVwZ1NvdXJjZS50aXRsZX19IikpOw0KY29uZmlndXJhdGlvbldpemFyZC5wdXNoKG5ldyBXaXphcmRJdGVtKCJtM3UiLCAie3sud2l6YXJkLm0zdS50aXRsZX19IikpOw0KY29uZmlndXJhdGlvbldpemFyZC5wdXNoKG5ldyBXaXphcmRJdGVtKCJ4bWx0diIsICJ7ey53aXphcmQueG1sdHYudGl0bGV9fSIpKTsNCg==" - webUI["html/js/logs_ts.js"] = "Y2xhc3MgTG9nIHsNCiAgICBjcmVhdGVMb2coZW50cnkpIHsNCiAgICAgICAgdmFyIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJQUkUiKTsNCiAgICAgICAgaWYgKGVudHJ5LmluZGV4T2YoIldBUk5JTkciKSAhPSAtMSkgew0KICAgICAgICAgICAgZWxlbWVudC5jbGFzc05hbWUgPSAid2FybmluZ01zZyI7DQogICAgICAgIH0NCiAgICAgICAgaWYgKGVudHJ5LmluZGV4T2YoIkVSUk9SIikgIT0gLTEpIHsNCiAgICAgICAgICAgIGVsZW1lbnQuY2xhc3NOYW1lID0gImVycm9yTXNnIjsNCiAgICAgICAgfQ0KICAgICAgICBpZiAoZW50cnkuaW5kZXhPZigiREVCVUciKSAhPSAtMSkgew0KICAgICAgICAgICAgZWxlbWVudC5jbGFzc05hbWUgPSAiZGVidWdNc2ciOw0KICAgICAgICB9DQogICAgICAgIGVsZW1lbnQuaW5uZXJIVE1MID0gZW50cnk7DQogICAgICAgIHJldHVybiBlbGVtZW50Ow0KICAgIH0NCn0NCmZ1bmN0aW9uIHNob3dMb2dzKGJvdHRvbSkgew0KICAgIHZhciBsb2cgPSBuZXcgTG9nKCk7DQogICAgdmFyIGxvZ3MgPSBTRVJWRVJbImxvZyJdWyJsb2ciXTsNCiAgICB2YXIgZGl2ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnRlbnRfbG9nIik7DQogICAgZGl2LmlubmVySFRNTCA9ICIiOw0KICAgIHZhciBrZXlzID0gZ2V0T3duT2JqUHJvcHMobG9ncyk7DQogICAga2V5cy5mb3JFYWNoKGxvZ0lEID0+IHsNCiAgICAgICAgdmFyIGVudHJ5ID0gbG9nLmNyZWF0ZUxvZyhsb2dzW2xvZ0lEXSk7DQogICAgICAgIGRpdi5hcHBlbmQoZW50cnkpOw0KICAgIH0pOw0KICAgIHNldFRpbWVvdXQoZnVuY3Rpb24gKCkgew0KICAgICAgICBpZiAoYm90dG9tID09IHRydWUpIHsNCiAgICAgICAgICAgIHZhciB3cmFwcGVyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImJveC13cmFwcGVyIik7DQogICAgICAgICAgICB3cmFwcGVyLnNjcm9sbFRvcCA9IHdyYXBwZXIuc2Nyb2xsSGVpZ2h0Ow0KICAgICAgICB9DQogICAgfSwgMTApOw0KfQ0KZnVuY3Rpb24gcmVzZXRMb2dzKCkgew0KICAgIHZhciBjbWQgPSAicmVzZXRMb2dzIjsNCiAgICB2YXIgZGF0YSA9IG5ldyBPYmplY3QoKTsNCiAgICB2YXIgc2VydmVyID0gbmV3IFNlcnZlcihjbWQpOw0KICAgIHNlcnZlci5yZXF1ZXN0KGRhdGEpOw0KfQ0K" + webUI["html/js/logs_ts.js"] = "Y2xhc3MgTG9nIHsNCiAgICBjcmVhdGVMb2coZW50cnkpIHsNCiAgICAgICAgdmFyIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJQUkUiKTsNCiAgICAgICAgZW50cnkgPSBTdHJpbmcoZW50cnkpOw0KICAgICAgICBpZiAoZW50cnkuaW5kZXhPZigiV0FSTklORyIpICE9IC0xKSB7DQogICAgICAgICAgICBlbGVtZW50LmNsYXNzTmFtZSA9ICJ3YXJuaW5nTXNnIjsNCiAgICAgICAgfQ0KICAgICAgICBpZiAoZW50cnkuaW5kZXhPZigiRVJST1IiKSAhPSAtMSkgew0KICAgICAgICAgICAgZWxlbWVudC5jbGFzc05hbWUgPSAiZXJyb3JNc2ciOw0KICAgICAgICB9DQogICAgICAgIGlmIChlbnRyeS5pbmRleE9mKCJERUJVRyIpICE9IC0xKSB7DQogICAgICAgICAgICBlbGVtZW50LmNsYXNzTmFtZSA9ICJkZWJ1Z01zZyI7DQogICAgICAgIH0NCiAgICAgICAgZWxlbWVudC5pbm5lckhUTUwgPSBlbnRyeTsNCiAgICAgICAgcmV0dXJuIGVsZW1lbnQ7DQogICAgfQ0KfQ0KZnVuY3Rpb24gc2hvd0xvZ3MoYm90dG9tKSB7DQogICAgdmFyIGxvZyA9IG5ldyBMb2coKTsNCiAgICB2YXIgbG9ncyA9IFNFUlZFUlsibG9nIl1bImxvZyJdOw0KICAgIHZhciBkaXYgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29udGVudF9sb2ciKTsNCiAgICBkaXYuaW5uZXJIVE1MID0gIiI7DQogICAgdmFyIGtleXMgPSBnZXRPd25PYmpQcm9wcyhsb2dzKTsNCiAgICBrZXlzLmZvckVhY2gobG9nSUQgPT4gew0KICAgICAgICB2YXIgZW50cnkgPSBsb2cuY3JlYXRlTG9nKGxvZ3NbbG9nSURdKTsNCiAgICAgICAgZGl2LmFwcGVuZChlbnRyeSk7DQogICAgfSk7DQogICAgc2V0VGltZW91dChmdW5jdGlvbiAoKSB7DQogICAgICAgIGlmIChib3R0b20gPT0gdHJ1ZSkgew0KICAgICAgICAgICAgdmFyIHdyYXBwZXIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYm94LXdyYXBwZXIiKTsNCiAgICAgICAgICAgIHdyYXBwZXIuc2Nyb2xsVG9wID0gd3JhcHBlci5zY3JvbGxIZWlnaHQ7DQogICAgICAgIH0NCiAgICB9LCAxMCk7DQp9DQpmdW5jdGlvbiByZXNldExvZ3MoKSB7DQogICAgdmFyIGNtZCA9ICJyZXNldExvZ3MiOw0KICAgIHZhciBkYXRhID0gbmV3IE9iamVjdCgpOw0KICAgIHZhciBzZXJ2ZXIgPSBuZXcgU2VydmVyKGNtZCk7DQogICAgc2VydmVyLnJlcXVlc3QoZGF0YSk7DQp9DQo=" webUI["html/js/menu_ts.js"] = "Y2xhc3MgTWFpbk1lbnUgew0KICAgIGNvbnN0cnVjdG9yKCkgew0KICAgICAgICB0aGlzLkRvY3VtZW50SUQgPSAibWFpbi1tZW51IjsNCiAgICAgICAgdGhpcy5IVE1MVGFnID0gIkxJIjsNCiAgICAgICAgdGhpcy5JbWFnZVBhdGggPSAiaW1nLyI7DQogICAgfQ0KICAgIGNyZWF0ZUlNRyhzcmMpIHsNCiAgICAgICAgbGV0IGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJJTUciKTsNCiAgICAgICAgZWxlbWVudC5zZXRBdHRyaWJ1dGUoInNyYyIsIHRoaXMuSW1hZ2VQYXRoICsgc3JjKTsNCiAgICAgICAgcmV0dXJuIGVsZW1lbnQ7DQogICAgfQ0KICAgIGNyZWF0ZVZhbHVlKHZhbHVlKSB7DQogICAgICAgIGxldCBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiUCIpOw0KICAgICAgICBlbGVtZW50LmlubmVySFRNTCA9IHZhbHVlOw0KICAgICAgICByZXR1cm4gZWxlbWVudDsNCiAgICB9DQp9DQpjbGFzcyBNYWluTWVudUl0ZW0gZXh0ZW5kcyBNYWluTWVudSB7DQogICAgY29uc3RydWN0b3IobWVudUtleSwgdmFsdWUsIGltYWdlLCBoZWFkbGluZSkgew0KICAgICAgICBzdXBlcigpOw0KICAgICAgICB0aGlzLm1lbnVLZXkgPSBtZW51S2V5Ow0KICAgICAgICB0aGlzLnZhbHVlID0gdmFsdWU7DQogICAgICAgIHRoaXMuaW1nU3JjID0gaW1hZ2U7DQogICAgICAgIHRoaXMuaGVhZGxpbmUgPSBoZWFkbGluZTsNCiAgICB9DQogICAgY3JlYXRlSXRlbSgpIHsNCiAgICAgICAgbGV0IGl0ZW0gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJMSSIpOw0KICAgICAgICBpdGVtLnNldEF0dHJpYnV0ZSgib25jbGljayIsICJqYXZhc2NyaXB0OiBvcGVuVGhpc01lbnUodGhpcykiKTsNCiAgICAgICAgaXRlbS5zZXRBdHRyaWJ1dGUoImlkIiwgdGhpcy5pZCk7DQogICAgICAgIGxldCBpbWcgPSB0aGlzLmNyZWF0ZUlNRyh0aGlzLmltZ1NyYyk7DQogICAgICAgIGxldCB2YWx1ZSA9IHRoaXMuY3JlYXRlVmFsdWUodGhpcy52YWx1ZSk7DQogICAgICAgIGl0ZW0uYXBwZW5kQ2hpbGQoaW1nKTsNCiAgICAgICAgaXRlbS5hcHBlbmRDaGlsZCh2YWx1ZSk7DQogICAgICAgIGxldCBkb2MgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCh0aGlzLkRvY3VtZW50SUQpOw0KICAgICAgICBkb2MuYXBwZW5kQ2hpbGQoaXRlbSk7DQogICAgICAgIHN3aXRjaCAodGhpcy5tZW51S2V5KSB7DQogICAgICAgICAgICBjYXNlICJwbGF5bGlzdCI6DQogICAgICAgICAgICAgICAgdGhpcy50YWJsZUhlYWRlciA9IFsie3sucGxheWxpc3QudGFibGUucGxheWxpc3R9fSIsICJ7ey5wbGF5bGlzdC50YWJsZS50dW5lcn19IiwgInt7LnBsYXlsaXN0LnRhYmxlLmxhc3RVcGRhdGV9fSIsICJ7ey5wbGF5bGlzdC50YWJsZS5hdmFpbGFiaWxpdHl9fSAlIiwgInt7LnBsYXlsaXN0LnRhYmxlLnR5cGV9fSIsICJ7ey5wbGF5bGlzdC50YWJsZS5zdHJlYW1zfX0iLCAie3sucGxheWxpc3QudGFibGUuZ3JvdXBUaXRsZX19ICUiLCAie3sucGxheWxpc3QudGFibGUudHZnSUR9fSAlIiwgInt7LnBsYXlsaXN0LnRhYmxlLnVuaXF1ZUlEfX0gJSJdOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAieG1sdHYiOg0KICAgICAgICAgICAgICAgIHRoaXMudGFibGVIZWFkZXIgPSBbInt7LnhtbHR2LnRhYmxlLmd1aWRlfX0iLCAie3sueG1sdHYudGFibGUubGFzdFVwZGF0ZX19IiwgInt7LnhtbHR2LnRhYmxlLmF2YWlsYWJpbGl0eX19ICUiLCAie3sueG1sdHYudGFibGUuY2hhbm5lbHN9fSIsICJ7ey54bWx0di50YWJsZS5wcm9ncmFtc319Il07DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJmaWx0ZXIiOg0KICAgICAgICAgICAgICAgIHRoaXMudGFibGVIZWFkZXIgPSBbInt7LmZpbHRlci50YWJsZS5zdGFydGluZ0NoYW5uZWx9fSIsICJ7ey5maWx0ZXIudGFibGUubmFtZX19IiwgInt7LmZpbHRlci50YWJsZS50eXBlfX0iLCAie3suZmlsdGVyLnRhYmxlLmZpbHRlcn19Il07DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ1c2VycyI6DQogICAgICAgICAgICAgICAgdGhpcy50YWJsZUhlYWRlciA9IFsie3sudXNlcnMudGFibGUudXNlcm5hbWV9fSIsICJ7ey51c2Vycy50YWJsZS5wYXNzd29yZH19IiwgInt7LnVzZXJzLnRhYmxlLndlYn19IiwgInt7LnVzZXJzLnRhYmxlLnBtc319IiwgInt7LnVzZXJzLnRhYmxlLm0zdX19IiwgInt7LnVzZXJzLnRhYmxlLnhtbH19IiwgInt7LnVzZXJzLnRhYmxlLmFwaX19Il07DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJtYXBwaW5nIjoNCiAgICAgICAgICAgICAgICB0aGlzLnRhYmxlSGVhZGVyID0gWyJCVUxLIiwgInt7Lm1hcHBpbmcudGFibGUuY2hOb319IiwgInt7Lm1hcHBpbmcudGFibGUubG9nb319IiwgInt7Lm1hcHBpbmcudGFibGUuY2hhbm5lbE5hbWV9fSIsICJ7ey5tYXBwaW5nLnRhYmxlLnBsYXlsaXN0fX0iLCAie3subWFwcGluZy50YWJsZS5ncm91cFRpdGxlfX0iLCAie3subWFwcGluZy50YWJsZS54bWx0dkZpbGV9fSIsICJ7ey5tYXBwaW5nLnRhYmxlLnhtbHR2SUR9fSIsICJ7ey5tYXBwaW5nLnRhYmxlLnRpbWVzaGlmdH19Il07DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIH0NCiAgICB9DQp9DQpjbGFzcyBDb250ZW50IHsNCiAgICBjb25zdHJ1Y3RvcigpIHsNCiAgICAgICAgdGhpcy5Eb2N1bWVudElEID0gImNvbnRlbnQiOw0KICAgICAgICB0aGlzLlRhYmxlSUQgPSAiY29udGVudF90YWJsZSI7DQogICAgICAgIHRoaXMuaGVhZGVyQ2xhc3MgPSAiY29udGVudF90YWJsZV9oZWFkZXIiOw0KICAgICAgICB0aGlzLmludGVyYWN0aW9uSUQgPSAiY29udGVudC1pbnRlcmFjdGlvbiI7DQogICAgfQ0KICAgIGNyZWF0ZUhlYWRsaW5lKHZhbHVlKSB7DQogICAgICAgIGxldCBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiSDMiKTsNCiAgICAgICAgZWxlbWVudC5pbm5lckhUTUwgPSB2YWx1ZTsNCiAgICAgICAgcmV0dXJuIGVsZW1lbnQ7DQogICAgfQ0KICAgIGNyZWF0ZUhSKCkgew0KICAgICAgICByZXR1cm4gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiSFIiKTsNCiAgICB9DQogICAgY3JlYXRlSW50ZXJhY3Rpb24oKSB7DQogICAgICAgIGxldCBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiRElWIik7DQogICAgICAgIGVsZW1lbnQuc2V0QXR0cmlidXRlKCJpZCIsIHRoaXMuaW50ZXJhY3Rpb25JRCk7DQogICAgICAgIHJldHVybiBlbGVtZW50Ow0KICAgIH0NCiAgICBjcmVhdGVESVYoKSB7DQogICAgICAgIGxldCBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiRElWIik7DQogICAgICAgIGVsZW1lbnQuaWQgPSB0aGlzLkRpdklEOw0KICAgICAgICByZXR1cm4gZWxlbWVudDsNCiAgICB9DQogICAgY3JlYXRlVEFCTEUoKSB7DQogICAgICAgIGxldCBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEFCTEUiKTsNCiAgICAgICAgZWxlbWVudC5pZCA9IHRoaXMuVGFibGVJRDsNCiAgICAgICAgcmV0dXJuIGVsZW1lbnQ7DQogICAgfQ0KICAgIGNyZWF0ZVRhYmxlUm93KCkgew0KICAgICAgICBsZXQgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlRSIik7DQogICAgICAgIGVsZW1lbnQuY2xhc3NOYW1lID0gdGhpcy5oZWFkZXJDbGFzczsNCiAgICAgICAgcmV0dXJuIGVsZW1lbnQ7DQogICAgfQ0KICAgIGNyZWF0ZVRhYmxlQ29udGVudChtZW51S2V5KSB7DQogICAgICAgIGxldCBkYXRhID0ge307DQogICAgICAgIGxldCByb3dzID0gW107DQogICAgICAgIGxldCBmaWxlVHlwZXMgPSBbXTsNCiAgICAgICAgc3dpdGNoIChtZW51S2V5KSB7DQogICAgICAgICAgICBjYXNlICJwbGF5bGlzdCI6DQogICAgICAgICAgICAgICAgZmlsZVR5cGVzID0gWyJtM3UiLCAiaGRociJdOw0KICAgICAgICAgICAgICAgIGZpbGVUeXBlcy5mb3JFYWNoKGZpbGVUeXBlID0+IHsNCiAgICAgICAgICAgICAgICAgICAgZGF0YSA9IFNFUlZFUlsic2V0dGluZ3MiXVsiZmlsZXMiXVtmaWxlVHlwZV07DQogICAgICAgICAgICAgICAgICAgIHZhciBrZXlzID0gZ2V0T3duT2JqUHJvcHMoZGF0YSk7DQogICAgICAgICAgICAgICAgICAgIGtleXMuZm9yRWFjaChrZXkgPT4gew0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVFIiKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmlkID0ga2V5Ow0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgiJyArIGZpbGVUeXBlICsgJyIsIHRoaXMpJyk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsibmFtZSJdOw0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChTRVJWRVJbInNldHRpbmdzIl1bImJ1ZmZlciJdICE9ICItIikgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bInR1bmVyIl07DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gIi0iOw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bImxhc3QudXBkYXRlIl07DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsicHJvdmlkZXIuYXZhaWxhYmlsaXR5Il07DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsidHlwZSJdLnRvVXBwZXJDYXNlKCk7DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsiY29tcGF0aWJpbGl0eSJdWyJzdHJlYW1zIl07DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsiY29tcGF0aWJpbGl0eSJdWyJncm91cC50aXRsZSJdOw0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bImNvbXBhdGliaWxpdHkiXVsidHZnLmlkIl07DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsiY29tcGF0aWJpbGl0eSJdWyJzdHJlYW0uaWQiXTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHJvd3MucHVzaCh0cik7DQogICAgICAgICAgICAgICAgICAgIH0pOw0KICAgICAgICAgICAgICAgIH0pOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiZmlsdGVyIjoNCiAgICAgICAgICAgICAgICBkZWxldGUgU0VSVkVSWyJzZXR0aW5ncyJdWyJmaWx0ZXIiXVstMV07DQogICAgICAgICAgICAgICAgZGF0YSA9IFNFUlZFUlsic2V0dGluZ3MiXVsiZmlsdGVyIl07DQogICAgICAgICAgICAgICAgdmFyIGtleXMgPSBnZXRPd25PYmpQcm9wcyhkYXRhKTsNCiAgICAgICAgICAgICAgICBrZXlzLmZvckVhY2goa2V5ID0+IHsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVFIiKTsNCiAgICAgICAgICAgICAgICAgICAgdHIuaWQgPSBrZXk7DQogICAgICAgICAgICAgICAgICAgIHRyLnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoIicgKyBkYXRhW2tleV1bInR5cGUiXSArICciLCB0aGlzKScpOw0KICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsic3RhcnRpbmdDaGFubmVsIl07DQogICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bIm5hbWUiXTsNCiAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgc3dpdGNoIChkYXRhW2tleV1bInR5cGUiXSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAiY3VzdG9tLWZpbHRlciI6DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9ICJ7ey5maWx0ZXIuY3VzdG9tfX0iOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAiZ3JvdXAtdGl0bGUiOg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSAie3suZmlsdGVyLmdyb3VwfX0iOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJmaWx0ZXIiXTsNCiAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICByb3dzLnB1c2godHIpOw0KICAgICAgICAgICAgICAgIH0pOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAieG1sdHYiOg0KICAgICAgICAgICAgICAgIGZpbGVUeXBlcyA9IG5ldyBBcnJheSgieG1sdHYiKTsNCiAgICAgICAgICAgICAgICBmaWxlVHlwZXMuZm9yRWFjaChmaWxlVHlwZSA9PiB7DQogICAgICAgICAgICAgICAgICAgIGRhdGEgPSBTRVJWRVJbInNldHRpbmdzIl1bImZpbGVzIl1bZmlsZVR5cGVdOw0KICAgICAgICAgICAgICAgICAgICB2YXIga2V5cyA9IGdldE93bk9ialByb3BzKGRhdGEpOw0KICAgICAgICAgICAgICAgICAgICBrZXlzLmZvckVhY2goa2V5ID0+IHsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciB0ciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlRSIik7DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5pZCA9IGtleTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoIicgKyBmaWxlVHlwZSArICciLCB0aGlzKScpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bIm5hbWUiXTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJsYXN0LnVwZGF0ZSJdOw0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bInByb3ZpZGVyLmF2YWlsYWJpbGl0eSJdOw0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bImNvbXBhdGliaWxpdHkiXVsieG1sdHYuY2hhbm5lbHMiXTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJjb21wYXRpYmlsaXR5Il1bInhtbHR2LnByb2dyYW1zIl07DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICByb3dzLnB1c2godHIpOw0KICAgICAgICAgICAgICAgICAgICB9KTsNCiAgICAgICAgICAgICAgICB9KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInVzZXJzIjoNCiAgICAgICAgICAgICAgICBmaWxlVHlwZXMgPSBuZXcgQXJyYXkoInVzZXJzIik7DQogICAgICAgICAgICAgICAgZmlsZVR5cGVzLmZvckVhY2goZmlsZVR5cGUgPT4gew0KICAgICAgICAgICAgICAgICAgICBkYXRhID0gU0VSVkVSW2ZpbGVUeXBlXTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGtleXMgPSBnZXRPd25PYmpQcm9wcyhkYXRhKTsNCiAgICAgICAgICAgICAgICAgICAga2V5cy5mb3JFYWNoKGtleSA9PiB7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgdHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJUUiIpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuaWQgPSBrZXk7DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCInICsgZmlsZVR5cGUgKyAnIiwgdGhpcyknKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJkYXRhIl1bInVzZXJuYW1lIl07DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9ICIqKioqKioiOw0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChkYXRhW2tleV1bImRhdGEiXVsiYXV0aGVudGljYXRpb24ud2ViIl0gPT0gdHJ1ZSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSAi4pyTIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSAiLSI7DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGRhdGFba2V5XVsiZGF0YSJdWyJhdXRoZW50aWNhdGlvbi5wbXMiXSA9PSB0cnVlKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9ICLinJMiOw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9ICItIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgICAgICBpZiAoZGF0YVtrZXldWyJkYXRhIl1bImF1dGhlbnRpY2F0aW9uLm0zdSJdID09IHRydWUpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gIuKckyI7DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gIi0iOw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChkYXRhW2tleV1bImRhdGEiXVsiYXV0aGVudGljYXRpb24ueG1sIl0gPT0gdHJ1ZSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSAi4pyTIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSAiLSI7DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGRhdGFba2V5XVsiZGF0YSJdWyJhdXRoZW50aWNhdGlvbi5hcGkiXSA9PSB0cnVlKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9ICLinJMiOw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9ICItIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHJvd3MucHVzaCh0cik7DQogICAgICAgICAgICAgICAgICAgIH0pOw0KICAgICAgICAgICAgICAgIH0pOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAibWFwcGluZyI6DQogICAgICAgICAgICAgICAgQlVMS19FRElUID0gZmFsc2U7DQogICAgICAgICAgICAgICAgY3JlYXRlU2VhcmNoT2JqKCk7DQogICAgICAgICAgICAgICAgY2hlY2tVbmRvKCJlcGdNYXBwaW5nIik7DQogICAgICAgICAgICAgICAgZGF0YSA9IFNFUlZFUlsieGVwZyJdWyJlcGdNYXBwaW5nIl07DQogICAgICAgICAgICAgICAgdmFyIGtleXMgPSBnZXRPd25PYmpQcm9wcyhkYXRhKTsNCiAgICAgICAgICAgICAgICBrZXlzLmZvckVhY2goa2V5ID0+IHsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVFIiKTsNCiAgICAgICAgICAgICAgICAgICAgdHIuaWQgPSBrZXk7DQogICAgICAgICAgICAgICAgICAgIHN3aXRjaCAoZGF0YVtrZXldWyJ4LWFjdGl2ZSJdKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBjYXNlIHRydWU6DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgdHIuY2xhc3NOYW1lID0gImFjdGl2ZUVQRyI7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgICAgICAgICBjYXNlIGZhbHNlOg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyLmNsYXNzTmFtZSA9ICJub3RBY3RpdmVFUEciOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIC8vIEJ1bGsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiQlVMSyI7DQogICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBmYWxzZTsNCiAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAvLyBDaGFubmVsIG51bWJlcg0KICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJJTlBVVENIQU5ORUwiOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJ4LWNoYW5uZWxJRCJdOw0KICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgIC8vIExvZ28NCiAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiSU1HIjsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5pbWFnZVVSTCA9IGRhdGFba2V5XVsidHZnLWxvZ28iXTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHRkID0gY2VsbC5jcmVhdGVDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgIHRkLnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoIm1hcHBpbmciLCB0aGlzKScpOw0KICAgICAgICAgICAgICAgICAgICB0ZC5pZCA9IGtleTsNCiAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQodGQpOw0KICAgICAgICAgICAgICAgICAgICAvLyBDaGFubmVsIG5hbWUNCiAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2xhc3NOYW1lID0gZGF0YVtrZXldWyJ4LWNhdGVnb3J5Il07DQogICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bIngtbmFtZSJdOw0KICAgICAgICAgICAgICAgICAgICB2YXIgdGQgPSBjZWxsLmNyZWF0ZUNlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgdGQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgibWFwcGluZyIsIHRoaXMpJyk7DQogICAgICAgICAgICAgICAgICAgIHRkLmlkID0ga2V5Ow0KICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZCh0ZCk7DQogICAgICAgICAgICAgICAgICAgIC8vIFBsYXlsaXN0DQogICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZ2V0VmFsdWVGcm9tUHJvdmlkZXJGaWxlKGRhdGFba2V5XVsiX2ZpbGUubTN1LmlkIl0sICJtM3UiLCAibmFtZSIpOw0KICAgICAgICAgICAgICAgICAgICB2YXIgdGQgPSBjZWxsLmNyZWF0ZUNlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgdGQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgibWFwcGluZyIsIHRoaXMpJyk7DQogICAgICAgICAgICAgICAgICAgIHRkLmlkID0ga2V5Ow0KICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZCh0ZCk7DQogICAgICAgICAgICAgICAgICAgIC8vIEdyb3VwIChncm91cC10aXRsZSkNCiAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bIngtZ3JvdXAtdGl0bGUiXTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHRkID0gY2VsbC5jcmVhdGVDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgIHRkLnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoIm1hcHBpbmciLCB0aGlzKScpOw0KICAgICAgICAgICAgICAgICAgICB0ZC5pZCA9IGtleTsNCiAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQodGQpOw0KICAgICAgICAgICAgICAgICAgICAvLyBYTUxUViBmaWxlDQogICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICBpZiAoZGF0YVtrZXldWyJ4LXhtbHR2LWZpbGUiXSAhPSAiLSIpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBnZXRWYWx1ZUZyb21Qcm92aWRlckZpbGUoZGF0YVtrZXldWyJ4LXhtbHR2LWZpbGUiXSwgInhtbHR2IiwgIm5hbWUiKTsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bIngteG1sdHYtZmlsZSJdOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIHZhciB0ZCA9IGNlbGwuY3JlYXRlQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICB0ZC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJtYXBwaW5nIiwgdGhpcyknKTsNCiAgICAgICAgICAgICAgICAgICAgdGQuaWQgPSBrZXk7DQogICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKHRkKTsNCiAgICAgICAgICAgICAgICAgICAgLy8gWE1MVFYgQ2hhbm5lbA0KICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHZhbHVlID0gZGF0YVtrZXldWyJ4LW1hcHBpbmciXTsNCiAgICAgICAgICAgICAgICAgICAgaWYgKHZhbHVlLmxlbmd0aCA+IDIwKSB7DQogICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IGRhdGFba2V5XVsieC1tYXBwaW5nIl0uc3Vic3RyaW5nKDAsIDIwKSArICIuLi4iOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSB2YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHRkID0gY2VsbC5jcmVhdGVDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgIHRkLnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoIm1hcHBpbmciLCB0aGlzKScpOw0KICAgICAgICAgICAgICAgICAgICB0ZC5pZCA9IGtleTsNCiAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQodGQpOw0KICAgICAgICAgICAgICAgICAgICAvLyBUaW1lU2hpZnQNCiAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bIngtdGltZXNoaWZ0Il07DQogICAgICAgICAgICAgICAgICAgIHZhciB0ZCA9IGNlbGwuY3JlYXRlQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICB0ZC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJtYXBwaW5nIiwgdGhpcyknKTsNCiAgICAgICAgICAgICAgICAgICAgdGQuaWQgPSBrZXk7DQogICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKHRkKTsNCiAgICAgICAgICAgICAgICAgICAgcm93cy5wdXNoKHRyKTsNCiAgICAgICAgICAgICAgICB9KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInNldHRpbmdzIjoNCiAgICAgICAgICAgICAgICBhbGVydCgpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgfQ0KICAgICAgICByZXR1cm4gcm93czsNCiAgICB9DQp9DQpjbGFzcyBDZWxsIHsNCiAgICBjcmVhdGVDZWxsKCkgew0KICAgICAgICBsZXQgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICBpZiAodGhpcy5jaGlsZCA9PSB0cnVlKSB7DQogICAgICAgICAgICB2YXIgZWxlbWVudDsNCiAgICAgICAgICAgIHN3aXRjaCAodGhpcy5jaGlsZFR5cGUpIHsNCiAgICAgICAgICAgICAgICBjYXNlICJQIjoNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQodGhpcy5jaGlsZFR5cGUpOw0KICAgICAgICAgICAgICAgICAgICBlbGVtZW50LmlubmVySFRNTCA9IHRoaXMudmFsdWU7DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQuY2xhc3NOYW1lID0gdGhpcy5jbGFzc05hbWU7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgIklOUFVUIjoNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQodGhpcy5jaGlsZFR5cGUpOw0KICAgICAgICAgICAgICAgICAgICBlbGVtZW50LnZhbHVlID0gdGhpcy52YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC50eXBlID0gInRleHQiOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBjYXNlICJJTlBVVENIQU5ORUwiOg0KICAgICAgICAgICAgICAgICAgICBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiSU5QVVQiKTsNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdnNjcmlwdDogY2hhbmdlQ2hhbm5lbE51bWJlcih0aGlzKSIpOw0KICAgICAgICAgICAgICAgICAgICBlbGVtZW50LnZhbHVlID0gdGhpcy52YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC50eXBlID0gInRleHQiOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBjYXNlICJCVUxLIjoNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIklOUFVUIik7DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQuY2hlY2tlZCA9IHRoaXMudmFsdWU7DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQudHlwZSA9ICJjaGVja2JveCI7DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQuY2xhc3NOYW1lID0gImJ1bGsgaGlkZUJ1bGsiOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBjYXNlICJCVUxLX0hFQUQiOg0KICAgICAgICAgICAgICAgICAgICBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiSU5QVVQiKTsNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC5jaGVja2VkID0gdGhpcy52YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC50eXBlID0gImNoZWNrYm94IjsNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC5jbGFzc05hbWUgPSAiYnVsayBoaWRlQnVsayI7DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgImphdmFzY3JpcHQ6IHNlbGVjdEFsbENoYW5uZWxzKCkiKTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAiSU1HIjoNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQodGhpcy5jaGlsZFR5cGUpOw0KICAgICAgICAgICAgICAgICAgICBlbGVtZW50LnNldEF0dHJpYnV0ZSgic3JjIiwgdGhpcy5pbWFnZVVSTCk7DQogICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLmltYWdlVVJMICE9ICIiKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBlbGVtZW50LnNldEF0dHJpYnV0ZSgib25lcnJvciIsICJqYXZhc2NyaXB0OiB0aGlzLm9uZXJyb3I9bnVsbDt0aGlzLnNyYz0nJyIpOw0KICAgICAgICAgICAgICAgICAgICAgICAgLy9vbmVycm9yPSJ0aGlzLm9uZXJyb3I9bnVsbDt0aGlzLnNyYz0nbWlzc2luZy5naWYnOyINCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgdGQuYXBwZW5kQ2hpbGQoZWxlbWVudCk7DQogICAgICAgIH0NCiAgICAgICAgZWxzZSB7DQogICAgICAgICAgICB0ZC5pbm5lckhUTUwgPSB0aGlzLnZhbHVlOw0KICAgICAgICB9DQogICAgICAgIGlmICh0aGlzLm9uY2xpY2sgPT0gdHJ1ZSkgew0KICAgICAgICAgICAgdGQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgdGhpcy5vbmNsaWNrRnVuY3Rpb24pOw0KICAgICAgICAgICAgdGQuY2xhc3NOYW1lID0gInBvaW50ZXIiOw0KICAgICAgICB9DQogICAgICAgIGlmICh0aGlzLnRkQ2xhc3NOYW1lICE9IHVuZGVmaW5lZCkgew0KICAgICAgICAgICAgdGQuY2xhc3NOYW1lID0gdGhpcy50ZENsYXNzTmFtZTsNCiAgICAgICAgfQ0KICAgICAgICByZXR1cm4gdGQ7DQogICAgfQ0KfQ0KY2xhc3MgU2hvd0NvbnRlbnQgZXh0ZW5kcyBDb250ZW50IHsNCiAgICBjb25zdHJ1Y3RvcihtZW51SUQpIHsNCiAgICAgICAgc3VwZXIoKTsNCiAgICAgICAgdGhpcy5tZW51SUQgPSBtZW51SUQ7DQogICAgfQ0KICAgIGNyZWF0ZUlucHV0KHR5cGUsIG5hbWUsIHZhbHVlKSB7DQogICAgICAgIGxldCBpbnB1dCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIklOUFVUIik7DQogICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgidHlwZSIsIHR5cGUpOw0KICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm5hbWUiLCBuYW1lKTsNCiAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJ2YWx1ZSIsIHZhbHVlKTsNCiAgICAgICAgcmV0dXJuIGlucHV0Ow0KICAgIH0NCiAgICBzaG93KCkgew0KICAgICAgICBDT0xVTU5fVE9fU09SVCA9IC0xOw0KICAgICAgICAvLyBEZWxldGUgb2xkIGNvbnRlbnQNCiAgICAgICAgbGV0IGRvYyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHRoaXMuRG9jdW1lbnRJRCk7DQogICAgICAgIGRvYy5pbm5lckhUTUwgPSAiIjsNCiAgICAgICAgc2hvd1ByZXZpZXcoZmFsc2UpOw0KICAgICAgICAvLyBIZWFkbGluZQ0KICAgICAgICBsZXQgaGVhZGxpbmUgPSBtZW51SXRlbXNbdGhpcy5tZW51SURdLmhlYWRsaW5lOw0KICAgICAgICBsZXQgbWVudUtleSA9IG1lbnVJdGVtc1t0aGlzLm1lbnVJRF0ubWVudUtleTsNCiAgICAgICAgbGV0IGggPSB0aGlzLmNyZWF0ZUhlYWRsaW5lKGhlYWRsaW5lKTsNCiAgICAgICAgZG9jLmFwcGVuZENoaWxkKGgpOw0KICAgICAgICBsZXQgaHIgPSB0aGlzLmNyZWF0ZUhSKCk7DQogICAgICAgIGRvYy5hcHBlbmRDaGlsZChocik7DQogICAgICAgIC8vIEludGVyYWN0aW9uDQogICAgICAgIGxldCBkaXYgPSB0aGlzLmNyZWF0ZUludGVyYWN0aW9uKCk7DQogICAgICAgIGRvYy5hcHBlbmRDaGlsZChkaXYpOw0KICAgICAgICBsZXQgaW50ZXJhY3Rpb24gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCh0aGlzLmludGVyYWN0aW9uSUQpOw0KICAgICAgICBzd2l0Y2ggKG1lbnVLZXkpIHsNCiAgICAgICAgICAgIGNhc2UgInBsYXlsaXN0IjoNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSB0aGlzLmNyZWF0ZUlucHV0KCJidXR0b24iLCBtZW51S2V5LCAie3suYnV0dG9uLm5ld319Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJpZCIsICItIik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgicGxheWxpc3QiKScpOw0KICAgICAgICAgICAgICAgIGludGVyYWN0aW9uLmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImZpbHRlciI6DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gdGhpcy5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgbWVudUtleSwgInt7LmJ1dHRvbi5uZXd9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgiaWQiLCAtMSk7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgiZmlsdGVyIiwgdGhpcyknKTsNCiAgICAgICAgICAgICAgICBpbnRlcmFjdGlvbi5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ4bWx0diI6DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gdGhpcy5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgbWVudUtleSwgInt7LmJ1dHRvbi5uZXd9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgiaWQiLCAieG1sdHYiKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJ4bWx0diIpJyk7DQogICAgICAgICAgICAgICAgaW50ZXJhY3Rpb24uYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAidXNlcnMiOg0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IHRoaXMuY3JlYXRlSW5wdXQoImJ1dHRvbiIsIG1lbnVLZXksICJ7ey5idXR0b24ubmV3fX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoImlkIiwgInVzZXJzIik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgidXNlcnMiKScpOw0KICAgICAgICAgICAgICAgIGludGVyYWN0aW9uLmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgIm1hcHBpbmciOg0KICAgICAgICAgICAgICAgIHNob3dFbGVtZW50KCJsb2FkaW5nIiwgdHJ1ZSk7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gdGhpcy5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgbWVudUtleSwgInt7LmJ1dHRvbi5zYXZlfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogc2F2ZVBvcHVwRGF0YSgibWFwcGluZyIsICIiLCAiIiknKTsNCiAgICAgICAgICAgICAgICBpbnRlcmFjdGlvbi5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gdGhpcy5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgbWVudUtleSwgInt7LmJ1dHRvbi5idWxrRWRpdH19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IGJ1bGtFZGl0KCknKTsNCiAgICAgICAgICAgICAgICBpbnRlcmFjdGlvbi5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gdGhpcy5jcmVhdGVJbnB1dCgic2VhcmNoIiwgInNlYXJjaCIsICIiKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoImlkIiwgInNlYXJjaE1hcHBpbmciKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LmJ1dHRvbi5zZWFyY2h9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LmNsYXNzTmFtZSA9ICJzZWFyY2giOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAnamF2YXNjcmlwdDogc2VhcmNoSW5NYXBwaW5nKCknKTsNCiAgICAgICAgICAgICAgICBpbnRlcmFjdGlvbi5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJzZXR0aW5ncyI6DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gdGhpcy5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgbWVudUtleSwgInt7LmJ1dHRvbi5zYXZlfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogc2F2ZVNldHRpbmdzKCk7Jyk7DQogICAgICAgICAgICAgICAgaW50ZXJhY3Rpb24uYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IHRoaXMuY3JlYXRlSW5wdXQoImJ1dHRvbiIsIG1lbnVLZXksICJ7ey5idXR0b24uYmFja3VwfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogYmFja3VwKCk7Jyk7DQogICAgICAgICAgICAgICAgaW50ZXJhY3Rpb24uYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IHRoaXMuY3JlYXRlSW5wdXQoImJ1dHRvbiIsIG1lbnVLZXksICJ7ey5idXR0b24ucmVzdG9yZX19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IHJlc3RvcmUoKTsnKTsNCiAgICAgICAgICAgICAgICBpbnRlcmFjdGlvbi5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgdmFyIHdyYXBwZXIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJESVYiKTsNCiAgICAgICAgICAgICAgICB3cmFwcGVyLnNldEF0dHJpYnV0ZSgiaWQiLCAiYm94LXdyYXBwZXIiKTsNCiAgICAgICAgICAgICAgICBkb2MuYXBwZW5kQ2hpbGQod3JhcHBlcik7DQogICAgICAgICAgICAgICAgdGhpcy5EaXZJRCA9ICJjb250ZW50X3NldHRpbmdzIjsNCiAgICAgICAgICAgICAgICB2YXIgc2V0dGluZ3MgPSB0aGlzLmNyZWF0ZURJVigpOw0KICAgICAgICAgICAgICAgIHdyYXBwZXIuYXBwZW5kQ2hpbGQoc2V0dGluZ3MpOw0KICAgICAgICAgICAgICAgIHNob3dTZXR0aW5ncygpOw0KICAgICAgICAgICAgICAgIHJldHVybjsNCiAgICAgICAgICAgIGNhc2UgImxvZyI6DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gdGhpcy5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgbWVudUtleSwgInt7LmJ1dHRvbi5yZXNldExvZ3N9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiByZXNldExvZ3MoKTsnKTsNCiAgICAgICAgICAgICAgICBpbnRlcmFjdGlvbi5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgdmFyIHdyYXBwZXIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJESVYiKTsNCiAgICAgICAgICAgICAgICB3cmFwcGVyLnNldEF0dHJpYnV0ZSgiaWQiLCAiYm94LXdyYXBwZXIiKTsNCiAgICAgICAgICAgICAgICBkb2MuYXBwZW5kQ2hpbGQod3JhcHBlcik7DQogICAgICAgICAgICAgICAgdGhpcy5EaXZJRCA9ICJjb250ZW50X2xvZyI7DQogICAgICAgICAgICAgICAgdmFyIGxvZ3MgPSB0aGlzLmNyZWF0ZURJVigpOw0KICAgICAgICAgICAgICAgIHdyYXBwZXIuYXBwZW5kQ2hpbGQobG9ncyk7DQogICAgICAgICAgICAgICAgc2hvd0xvZ3ModHJ1ZSk7DQogICAgICAgICAgICAgICAgcmV0dXJuOw0KICAgICAgICAgICAgY2FzZSAibG9nb3V0IjoNCiAgICAgICAgICAgICAgICBsb2NhdGlvbi5yZWxvYWQoKTsNCiAgICAgICAgICAgICAgICBkb2N1bWVudC5jb29raWUgPSAiVG9rZW49IDsgZXhwaXJlcyA9IFRodSwgMDEgSmFuIDE5NzAgMDA6MDA6MDAgR01UIjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIH0NCiAgICAgICAgLy8gQ3JlYXRlIHRhYmxlIChpZiBuZWVkZWQpDQogICAgICAgIHZhciB0YWJsZUhlYWRlciA9IG1lbnVJdGVtc1t0aGlzLm1lbnVJRF0udGFibGVIZWFkZXI7DQogICAgICAgIGlmICh0YWJsZUhlYWRlci5sZW5ndGggPiAwKSB7DQogICAgICAgICAgICB2YXIgd3JhcHBlciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIkRJViIpOw0KICAgICAgICAgICAgZG9jLmFwcGVuZENoaWxkKHdyYXBwZXIpOw0KICAgICAgICAgICAgd3JhcHBlci5zZXRBdHRyaWJ1dGUoImlkIiwgImJveC13cmFwcGVyIik7DQogICAgICAgICAgICB2YXIgdGFibGUgPSB0aGlzLmNyZWF0ZVRBQkxFKCk7DQogICAgICAgICAgICB3cmFwcGVyLmFwcGVuZENoaWxkKHRhYmxlKTsNCiAgICAgICAgICAgIHZhciBoZWFkZXIgPSB0aGlzLmNyZWF0ZVRhYmxlUm93KCk7DQogICAgICAgICAgICB0YWJsZS5hcHBlbmRDaGlsZChoZWFkZXIpOw0KICAgICAgICAgICAgLy8gVGFibGUgaGVhZGVyDQogICAgICAgICAgICB0YWJsZUhlYWRlci5mb3JFYWNoKGVsZW1lbnQgPT4gew0KICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZWxlbWVudDsNCiAgICAgICAgICAgICAgICBpZiAoZWxlbWVudCA9PSAiQlVMSyIpIHsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiQlVMS19IRUFEIjsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGZhbHNlOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBpZiAobWVudUtleSA9PSAibWFwcGluZyIpIHsNCiAgICAgICAgICAgICAgICAgICAgaWYgKGVsZW1lbnQgPT0gInt7Lm1hcHBpbmcudGFibGUuY2hOb319Iikgew0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5vbmNsaWNrID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwub25jbGlja0Z1bmN0aW9uID0gImphdmFzY3JpcHQ6IHNvcnRUYWJsZSgxKTsiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC50ZENsYXNzTmFtZSA9ICJzb3J0VGhpcyI7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgaWYgKGVsZW1lbnQgPT0gInt7Lm1hcHBpbmcudGFibGUuY2hhbm5lbE5hbWV9fSIpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwub25jbGljayA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLm9uY2xpY2tGdW5jdGlvbiA9ICJqYXZhc2NyaXB0OiBzb3J0VGFibGUoMyk7IjsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBpZiAoZWxlbWVudCA9PSAie3subWFwcGluZy50YWJsZS5wbGF5bGlzdH19Iikgew0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5vbmNsaWNrID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwub25jbGlja0Z1bmN0aW9uID0gImphdmFzY3JpcHQ6IHNvcnRUYWJsZSg0KTsiOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIGlmIChlbGVtZW50ID09ICJ7ey5tYXBwaW5nLnRhYmxlLmdyb3VwVGl0bGV9fSIpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwub25jbGljayA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLm9uY2xpY2tGdW5jdGlvbiA9ICJqYXZhc2NyaXB0OiBzb3J0VGFibGUoNSk7IjsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBpZiAoZWxlbWVudCA9PSAie3subWFwcGluZy50YWJsZS50aW1lc2hpZnR9fSIpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwub25jbGljayA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLm9uY2xpY2tGdW5jdGlvbiA9ICJqYXZhc2NyaXB0OiBzb3J0VGFibGUoOCk7IjsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBpZiAobWVudUtleSA9PSAiZmlsdGVyIikgew0KICAgICAgICAgICAgICAgICAgICBpZiAoZWxlbWVudCA9PSAie3suZmlsdGVyLnRhYmxlLnN0YXJ0aW5nQ2hhbm5lbH19Iikgew0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5vbmNsaWNrID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwub25jbGlja0Z1bmN0aW9uID0gImphdmFzY3JpcHQ6IHNvcnRUYWJsZSgwKTsiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC50ZENsYXNzTmFtZSA9ICJzb3J0VGhpcyI7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgaWYgKGVsZW1lbnQgPT0gInt7LmZpbHRlci50YWJsZS5uYW1lfX0iKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLm9uY2xpY2sgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5vbmNsaWNrRnVuY3Rpb24gPSAiamF2YXNjcmlwdDogc29ydFRhYmxlKDEpOyI7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgaWYgKGVsZW1lbnQgPT0gInt7LmZpbHRlci50YWJsZS50eXBlfX0iKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLm9uY2xpY2sgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5vbmNsaWNrRnVuY3Rpb24gPSAiamF2YXNjcmlwdDogc29ydFRhYmxlKDIpOyI7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgaWYgKGVsZW1lbnQgPT0gInt7LmZpbHRlci50YWJsZS5maWx0ZXJ9fSIpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwub25jbGljayA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLm9uY2xpY2tGdW5jdGlvbiA9ICJqYXZhc2NyaXB0OiBzb3J0VGFibGUoMyk7IjsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBoZWFkZXIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgfSk7DQogICAgICAgICAgICB0YWJsZS5hcHBlbmRDaGlsZChoZWFkZXIpOw0KICAgICAgICAgICAgLy8gQ29udGVudCBvZiB0aGUgdGFibGUNCiAgICAgICAgICAgIHZhciByb3dzID0gdGhpcy5jcmVhdGVUYWJsZUNvbnRlbnQobWVudUtleSk7DQogICAgICAgICAgICByb3dzLmZvckVhY2godHIgPT4gew0KICAgICAgICAgICAgICAgIHRhYmxlLmFwcGVuZENoaWxkKHRyKTsNCiAgICAgICAgICAgIH0pOw0KICAgICAgICB9DQogICAgICAgIHN3aXRjaCAobWVudUtleSkgew0KICAgICAgICAgICAgY2FzZSAibWFwcGluZyI6DQogICAgICAgICAgICAgICAgc29ydFRhYmxlKDEpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiZmlsdGVyIjoNCiAgICAgICAgICAgICAgICBzaG93UHJldmlldyh0cnVlKTsNCiAgICAgICAgICAgICAgICBzb3J0VGFibGUoMCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBkZWZhdWx0Og0KICAgICAgICAgICAgICAgIENPTFVNTl9UT19TT1JUID0gLTE7DQogICAgICAgICAgICAgICAgc29ydFRhYmxlKDApOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICB9DQogICAgICAgIHNob3dFbGVtZW50KCJsb2FkaW5nIiwgZmFsc2UpOw0KICAgIH0NCn0NCmZ1bmN0aW9uIFBhZ2VSZWFkeSgpIHsNCiAgICBsZXQgc2VydmVyID0gbmV3IFNlcnZlcigiZ2V0U2VydmVyQ29uZmlnIik7DQogICAgc2VydmVyLnJlcXVlc3Qoe30pOw0KICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJyZXNpemUiLCBmdW5jdGlvbiAoKSB7DQogICAgICAgIGNhbGN1bGF0ZVdyYXBwZXJIZWlnaHQoKTsNCiAgICB9LCB0cnVlKTsNCiAgICBzZXRJbnRlcnZhbChmdW5jdGlvbiAoKSB7DQogICAgICAgIHVwZGF0ZUxvZygpOw0KICAgIH0sIDEwMDAwKTsNCiAgICByZXR1cm47DQp9DQpmdW5jdGlvbiBjcmVhdGVMYXlvdXQoKSB7DQogICAgLy8gQ2xpZW50IEluZm8NCiAgICBsZXQgb2JqID0gU0VSVkVSWyJjbGllbnRJbmZvIl07DQogICAgbGV0IGtleXMgPSBnZXRPd25PYmpQcm9wcyhvYmopOw0KICAgIGZvciAodmFyIGkgPSAwOyBpIDwga2V5cy5sZW5ndGg7IGkrKykgew0KICAgICAgICBpZiAoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoa2V5c1tpXSkpIHsNCiAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGtleXNbaV0pLmlubmVySFRNTCA9IG9ialtrZXlzW2ldXTsNCiAgICAgICAgfQ0KICAgIH0NCiAgICBpZiAoIWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJtYWluLW1lbnUiKSkgew0KICAgICAgICByZXR1cm47DQogICAgfQ0KICAgIC8vIENyZWF0ZSBtZW51DQogICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm1haW4tbWVudSIpLmlubmVySFRNTCA9ICIiOw0KICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbWVudUl0ZW1zLmxlbmd0aDsgaSsrKSB7DQogICAgICAgIG1lbnVJdGVtc1tpXS5pZCA9IGk7DQogICAgICAgIHN3aXRjaCAobWVudUl0ZW1zW2ldWyJtZW51S2V5Il0pIHsNCiAgICAgICAgICAgIGNhc2UgInVzZXJzIjoNCiAgICAgICAgICAgIGNhc2UgImxvZ291dCI6DQogICAgICAgICAgICAgICAgaWYgKFNFUlZFUlsic2V0dGluZ3MiXVsiYXV0aGVudGljYXRpb24ud2ViIl0gPT0gdHJ1ZSkgew0KICAgICAgICAgICAgICAgICAgICBtZW51SXRlbXNbaV0uY3JlYXRlSXRlbSgpOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgIm1hcHBpbmciOg0KICAgICAgICAgICAgY2FzZSAieG1sdHYiOg0KICAgICAgICAgICAgICAgIGlmIChTRVJWRVJbImNsaWVudEluZm8iXVsiZXBnU291cmNlIl0gPT0gIlhFUEciKSB7DQogICAgICAgICAgICAgICAgICAgIG1lbnVJdGVtc1tpXS5jcmVhdGVJdGVtKCk7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgICAgICBtZW51SXRlbXNbaV0uY3JlYXRlSXRlbSgpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICB9DQogICAgfQ0KICAgIHJldHVybjsNCn0NCmZ1bmN0aW9uIG9wZW5UaGlzTWVudShlbGVtZW50KSB7DQogICAgbGV0IGlkID0gZWxlbWVudC5pZDsNCiAgICBsZXQgY29udGVudCA9IG5ldyBTaG93Q29udGVudChpZCk7DQogICAgY29udGVudC5zaG93KCk7DQogICAgY2FsY3VsYXRlV3JhcHBlckhlaWdodCgpOw0KICAgIHJldHVybjsNCn0NCmNsYXNzIFBvcHVwV2luZG93IHsNCiAgICBjb25zdHJ1Y3RvcigpIHsNCiAgICAgICAgdGhpcy5Eb2N1bWVudElEID0gInBvcHVwLWN1c3RvbSI7DQogICAgICAgIHRoaXMuSW50ZXJhY3Rpb25JRCA9ICJpbnRlcmFjdGlvbiI7DQogICAgICAgIHRoaXMuZG9jID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQodGhpcy5Eb2N1bWVudElEKTsNCiAgICB9DQogICAgY3JlYXRlVGl0bGUodGl0bGUpIHsNCiAgICAgICAgbGV0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgdGQuY2xhc3NOYW1lID0gImxlZnQiOw0KICAgICAgICB0ZC5pbm5lckhUTUwgPSB0aXRsZSArICI6IjsNCiAgICAgICAgcmV0dXJuIHRkOw0KICAgIH0NCiAgICBjcmVhdGVDb250ZW50KGVsZW1lbnQpIHsNCiAgICAgICAgbGV0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgdGQuYXBwZW5kQ2hpbGQoZWxlbWVudCk7DQogICAgICAgIHJldHVybiB0ZDsNCiAgICB9DQogICAgY3JlYXRlSW50ZXJhY3Rpb24oKSB7DQogICAgICAgIGxldCBkaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsNCiAgICAgICAgZGl2LnNldEF0dHJpYnV0ZSgiaWQiLCAicG9wdXAtaW50ZXJhY3Rpb24iKTsNCiAgICAgICAgZGl2LmNsYXNzTmFtZSA9ICJpbnRlcmFjdGlvbiI7DQogICAgICAgIHRoaXMuZG9jLmFwcGVuZENoaWxkKGRpdik7DQogICAgfQ0KfQ0KY2xhc3MgUG9wdXBDb250ZW50IGV4dGVuZHMgUG9wdXBXaW5kb3cgew0KICAgIGNvbnN0cnVjdG9yKCkgew0KICAgICAgICBzdXBlciguLi5hcmd1bWVudHMpOw0KICAgICAgICB0aGlzLnRhYmxlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEFCTEUiKTsNCiAgICB9DQogICAgY3JlYXRlSGVhZGxpbmUoaGVhZGxpbmUpIHsNCiAgICAgICAgdGhpcy5kb2MuaW5uZXJIVE1MID0gIiI7DQogICAgICAgIHZhciBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiSDMiKTsNCiAgICAgICAgZWxlbWVudC5pbm5lckhUTUwgPSBoZWFkbGluZS50b1VwcGVyQ2FzZSgpOw0KICAgICAgICB0aGlzLmRvYy5hcHBlbmRDaGlsZChlbGVtZW50KTsNCiAgICAgICAgLy8gQ3JlYXRlIHRhYmxlDQogICAgICAgIHRoaXMudGFibGUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJUQUJMRSIpOw0KICAgICAgICB0aGlzLmRvYy5hcHBlbmRDaGlsZCh0aGlzLnRhYmxlKTsNCiAgICB9DQogICAgYXBwZW5kUm93KHRpdGxlLCBlbGVtZW50KSB7DQogICAgICAgIGxldCB0ciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlRSIik7DQogICAgICAgIC8vIFRpdGxlDQogICAgICAgIGlmICh0aXRsZS5sZW5ndGggIT0gMCkgew0KICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQodGhpcy5jcmVhdGVUaXRsZSh0aXRsZSkpOw0KICAgICAgICB9DQogICAgICAgIC8vIENvbnRlbnQNCiAgICAgICAgdHIuYXBwZW5kQ2hpbGQodGhpcy5jcmVhdGVDb250ZW50KGVsZW1lbnQpKTsNCiAgICAgICAgdGhpcy50YWJsZS5hcHBlbmRDaGlsZCh0cik7DQogICAgfQ0KICAgIGNyZWF0ZUlucHV0KHR5cGUsIG5hbWUsIHZhbHVlKSB7DQogICAgICAgIGxldCBpbnB1dCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIklOUFVUIik7DQogICAgICAgIGlmICh2YWx1ZSA9PSB1bmRlZmluZWQpIHsNCiAgICAgICAgICAgIHZhbHVlID0gIiI7DQogICAgICAgIH0NCiAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJ0eXBlIiwgdHlwZSk7DQogICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgibmFtZSIsIG5hbWUpOw0KICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInZhbHVlIiwgdmFsdWUpOw0KICAgICAgICByZXR1cm4gaW5wdXQ7DQogICAgfQ0KICAgIGNyZWF0ZUNoZWNrYm94KG5hbWUpIHsNCiAgICAgICAgbGV0IGlucHV0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiSU5QVVQiKTsNCiAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJ0eXBlIiwgImNoZWNrYm94Iik7DQogICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgibmFtZSIsIG5hbWUpOw0KICAgICAgICByZXR1cm4gaW5wdXQ7DQogICAgfQ0KICAgIC8vIENyZWF0ZXMgYSBzZWxlY3Rpb24gb2YgbXVsdGlwbGUgb3B0aW9ucyB2YWx1ZXMgd2l0aCB0ZXh0IGRlc2NyaXB0aW9ucw0KICAgIGNyZWF0ZVNlbGVjdCh0ZXh0LCB2YWx1ZXMsIHNldCwgZGJLZXkpIHsNCiAgICAgICAgbGV0IHNlbGVjdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlNFTEVDVCIpOw0KICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJuYW1lIiwgZGJLZXkpOw0KICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRleHQubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgICAgIGxldCBvcHRpb24gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJPUFRJT04iKTsNCiAgICAgICAgICAgIG9wdGlvbi5zZXRBdHRyaWJ1dGUoInZhbHVlIiwgdmFsdWVzW2ldKTsNCiAgICAgICAgICAgIG9wdGlvbi5pbm5lclRleHQgPSB0ZXh0W2ldOw0KICAgICAgICAgICAgc2VsZWN0LmFwcGVuZENoaWxkKG9wdGlvbik7DQogICAgICAgIH0NCiAgICAgICAgaWYgKHNldCAhPSAiIikgew0KICAgICAgICAgICAgc2VsZWN0LnZhbHVlID0gc2V0Ow0KICAgICAgICB9DQogICAgICAgIGlmIChzZXQgPT0gdW5kZWZpbmVkKSB7DQogICAgICAgICAgICBzZWxlY3QudmFsdWUgPSB2YWx1ZXNbMF07DQogICAgICAgIH0NCiAgICAgICAgcmV0dXJuIHNlbGVjdDsNCiAgICB9DQogICAgc2VsZWN0T3B0aW9uKHNlbGVjdCwgdmFsdWUpIHsNCiAgICAgICAgLy9zZWxlY3Quc2VsZWN0ZWRPcHRpb25zID0gdmFsdWUNCiAgICAgICAgbGV0IHMgPSBzZWxlY3Q7DQogICAgICAgIHMub3B0aW9uc1tzLnNlbGVjdGVkSW5kZXhdLnZhbHVlID0gdmFsdWU7DQogICAgICAgIHJldHVybiBzZWxlY3Q7DQogICAgfQ0KICAgIGRlc2NyaXB0aW9uKHZhbHVlKSB7DQogICAgICAgIGxldCB0ciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlRSIik7DQogICAgICAgIGxldCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgIGxldCBzcGFuID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiUFJFIik7DQogICAgICAgIHNwYW4uaW5uZXJIVE1MID0gdmFsdWU7DQogICAgICAgIHRyLmFwcGVuZENoaWxkKHRkKTsNCiAgICAgICAgdHIuYXBwZW5kQ2hpbGQodGhpcy5jcmVhdGVDb250ZW50KHNwYW4pKTsNCiAgICAgICAgdGhpcy50YWJsZS5hcHBlbmRDaGlsZCh0cik7DQogICAgfQ0KICAgIC8vIEludGVyYWN0aW9uDQogICAgYWRkSW50ZXJhY3Rpb24oZWxlbWVudCkgew0KICAgICAgICBsZXQgaW50ZXJhY3Rpb24gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicG9wdXAtaW50ZXJhY3Rpb24iKTsNCiAgICAgICAgaW50ZXJhY3Rpb24uYXBwZW5kQ2hpbGQoZWxlbWVudCk7DQogICAgfQ0KfQ0KZnVuY3Rpb24gb3BlblBvcFVwKGRhdGFUeXBlLCBlbGVtZW50KSB7DQogICAgbGV0IGRhdGEgPSB7fTsNCiAgICBsZXQgaWQ7DQogICAgc3dpdGNoIChlbGVtZW50KSB7DQogICAgICAgIGNhc2UgdW5kZWZpbmVkOg0KICAgICAgICAgICAgc3dpdGNoIChkYXRhVHlwZSkgew0KICAgICAgICAgICAgICAgIGNhc2UgImdyb3VwLXRpdGxlIjoNCiAgICAgICAgICAgICAgICAgICAgaWYgKGlkID09IHVuZGVmaW5lZCkgew0KICAgICAgICAgICAgICAgICAgICAgICAgaWQgPSAtMTsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBkYXRhID0gZ2V0TG9jYWxEYXRhKCJmaWx0ZXIiLCBpZCk7DQogICAgICAgICAgICAgICAgICAgIGRhdGFbInR5cGUiXSA9ICJncm91cC10aXRsZSI7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgImN1c3RvbS1maWx0ZXIiOg0KICAgICAgICAgICAgICAgICAgICBpZiAoaWQgPT0gdW5kZWZpbmVkKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBpZCA9IC0xOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIGRhdGEgPSBnZXRMb2NhbERhdGEoImZpbHRlciIsIGlkKTsNCiAgICAgICAgICAgICAgICAgICAgZGF0YVsidHlwZSJdID0gImN1c3RvbS1maWx0ZXIiOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBkZWZhdWx0Og0KICAgICAgICAgICAgICAgICAgICBkYXRhWyJpZC5wcm92aWRlciJdID0gIi0iOw0KICAgICAgICAgICAgICAgICAgICBkYXRhWyJ0eXBlIl0gPSBkYXRhVHlwZTsNCiAgICAgICAgICAgICAgICAgICAgaWQgPSAiLSI7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICBpZCA9IGVsZW1lbnQuaWQ7DQogICAgICAgICAgICBkYXRhID0gZ2V0TG9jYWxEYXRhKGRhdGFUeXBlLCBpZCk7DQogICAgICAgICAgICBicmVhazsNCiAgICB9DQogICAgbGV0IGNvbnRlbnQgPSBuZXcgUG9wdXBDb250ZW50KCk7DQogICAgc3dpdGNoIChkYXRhVHlwZSkgew0KICAgICAgICBjYXNlICJwbGF5bGlzdCI6DQogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUhlYWRsaW5lKCJ7ey5wbGF5bGlzdC5wbGF5bGlzdFR5cGUudGl0bGV9fSIpOw0KICAgICAgICAgICAgLy8gVHlwZQ0KICAgICAgICAgICAgdmFyIHRleHQgPSBbIk0zVSIsICJIREhvbWVSdW4iXTsNCiAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBbImphdmFzY3JpcHQ6IG9wZW5Qb3BVcCgnbTN1JykiLCAiamF2YXNjcmlwdDogb3BlblBvcFVwKCdoZGhyJykiXTsNCiAgICAgICAgICAgIHZhciBzZWxlY3QgPSBjb250ZW50LmNyZWF0ZVNlbGVjdCh0ZXh0LCB2YWx1ZXMsICIiLCAidHlwZSIpOw0KICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgiaWQiLCAidHlwZSIpOw0KICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAnamF2YXNjcmlwdDogY2hhbmdlQnV0dG9uQWN0aW9uKHRoaXMsICJuZXh0IiwgIm9uY2xpY2siKScpOyAvLyBjaGFuZ2VCdXR0b25BY3Rpb24NCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5wbGF5bGlzdC50eXBlLnRpdGxlfX0iLCBzZWxlY3QpOw0KICAgICAgICAgICAgLy8gSW50ZXJhY3Rpb24NCiAgICAgICAgICAgIGNvbnRlbnQuY3JlYXRlSW50ZXJhY3Rpb24oKTsNCiAgICAgICAgICAgIC8vIEFib3J0DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAiY2FuY2VsIiwgInt7LmJ1dHRvbi5jYW5jZWx9fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IHNob3dFbGVtZW50KCJwb3B1cCIsIGZhbHNlKTsnKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgLy8gTmV4dA0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgIm5leHQiLCAie3suYnV0dG9uLm5leHR9fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgibTN1IiknKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgiaWQiLCAnbmV4dCcpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSAibTN1IjoNCiAgICAgICAgICAgIGNvbnRlbnQuY3JlYXRlSGVhZGxpbmUoZGF0YVR5cGUpOw0KICAgICAgICAgICAgLy8gTmFtZQ0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gIm5hbWUiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnBsYXlsaXN0Lm5hbWUucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnBsYXlsaXN0Lm5hbWUudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIERlc2NyaXB0aW9uDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAiZGVzY3JpcHRpb24iOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnBsYXlsaXN0LmRlc2NyaXB0aW9uLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5wbGF5bGlzdC5kZXNjcmlwdGlvbi50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgLy8gVVJMDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAiZmlsZS5zb3VyY2UiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnBsYXlsaXN0LmZpbGVNM1UucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnBsYXlsaXN0LmZpbGVNM1UudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIFR1bmVyDQogICAgICAgICAgICBpZiAoU0VSVkVSWyJzZXR0aW5ncyJdWyJidWZmZXIiXSAhPSAiLSIpIHsNCiAgICAgICAgICAgICAgICB2YXIgdGV4dCA9IFtdOw0KICAgICAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBbXTsNCiAgICAgICAgICAgICAgICBmb3IgKHZhciBpID0gMTsgaSA8PSAxMDA7IGkrKykgew0KICAgICAgICAgICAgICAgICAgICB0ZXh0LnB1c2goaS50b1N0cmluZygpKTsNCiAgICAgICAgICAgICAgICAgICAgdmFsdWVzLnB1c2goaS50b1N0cmluZygpKTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgdmFyIGRiS2V5ID0gInR1bmVyIjsNCiAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCBkYXRhW2RiS2V5XSwgZGJLZXkpOw0KICAgICAgICAgICAgICAgIHNlbGVjdC5zZXRBdHRyaWJ1dGUoIm9uZm9jdXMiLCAiamF2YXNjcmlwdDogcmV0dXJuOyIpOw0KICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5wbGF5bGlzdC50dW5lci50aXRsZX19Iiwgc2VsZWN0KTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgICAgIHZhciBkYktleSA9ICJ0dW5lciI7DQogICAgICAgICAgICAgICAgaWYgKGRhdGFbZGJLZXldID09IHVuZGVmaW5lZCkgew0KICAgICAgICAgICAgICAgICAgICBkYXRhW2RiS2V5XSA9IDE7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicmVhZG9ubHkiLCAidHJ1ZSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LmNsYXNzTmFtZSA9ICJub3RBdmFpbGFibGUiOw0KICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5wbGF5bGlzdC50dW5lci50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgY29udGVudC5kZXNjcmlwdGlvbigie3sucGxheWxpc3QudHVuZXIuZGVzY3JpcHRpb259fSIpOw0KICAgICAgICAgICAgLy8gSW50ZXJhdGlvbg0KICAgICAgICAgICAgY29udGVudC5jcmVhdGVJbnRlcmFjdGlvbigpOw0KICAgICAgICAgICAgLy8gRGVsZXRlDQogICAgICAgICAgICBpZiAoZGF0YVsiaWQucHJvdmlkZXIiXSAhPSAiLSIpIHsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAiZGVsZXRlIiwgInt7LmJ1dHRvbi5kZWxldGV9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LmNsYXNzTmFtZSA9ICJkZWxldGUiOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBzYXZlUG9wdXBEYXRhKCJtM3UiLCAiJyArIGlkICsgJyIsIHRydWUsIDApJyk7DQogICAgICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAiYmFjayIsICJ7ey5idXR0b24uYmFja319Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgicGxheWxpc3QiKScpOw0KICAgICAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgLy8gQWJvcnQNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJjYW5jZWwiLCAie3suYnV0dG9uLmNhbmNlbH19Iik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogc2hvd0VsZW1lbnQoInBvcHVwIiwgZmFsc2UpOycpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICAvLyBVcGRhdGUNCiAgICAgICAgICAgIGlmIChkYXRhWyJpZC5wcm92aWRlciJdICE9ICItIikgew0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJ1cGRhdGUiLCAie3suYnV0dG9uLnVwZGF0ZX19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoIm0zdSIsICInICsgaWQgKyAnIiwgZmFsc2UsIDEpJyk7DQogICAgICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICAvLyBTYXZlDQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAic2F2ZSIsICJ7ey5idXR0b24uc2F2ZX19Iik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogc2F2ZVBvcHVwRGF0YSgibTN1IiwgIicgKyBpZCArICciLCBmYWxzZSwgMCknKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGNhc2UgImhkaHIiOg0KICAgICAgICAgICAgY29udGVudC5jcmVhdGVIZWFkbGluZShkYXRhVHlwZSk7DQogICAgICAgICAgICAvLyBOYW1lDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAibmFtZSI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3sucGxheWxpc3QubmFtZS5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sucGxheWxpc3QubmFtZS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgLy8gRGVzY3JpcHRpb24NCiAgICAgICAgICAgIHZhciBkYktleSA9ICJkZXNjcmlwdGlvbiI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3sucGxheWxpc3QuZGVzY3JpcHRpb24ucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnBsYXlsaXN0LmRlc2NyaXB0aW9uLnBsYWNlaG9sZGVyfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBVUkwNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJmaWxlLnNvdXJjZSI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3sucGxheWxpc3QuZmlsZUhESFIucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnBsYXlsaXN0LmZpbGVIREhSLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBUdW5lcg0KICAgICAgICAgICAgaWYgKFNFUlZFUlsic2V0dGluZ3MiXVsiYnVmZmVyIl0gIT0gIi0iKSB7DQogICAgICAgICAgICAgICAgdmFyIHRleHQgPSBbXTsNCiAgICAgICAgICAgICAgICB2YXIgdmFsdWVzID0gW107DQogICAgICAgICAgICAgICAgZm9yICh2YXIgaSA9IDE7IGkgPD0gMTAwOyBpKyspIHsNCiAgICAgICAgICAgICAgICAgICAgdGV4dC5wdXNoKGkudG9TdHJpbmcoKSk7DQogICAgICAgICAgICAgICAgICAgIHZhbHVlcy5wdXNoKGkudG9TdHJpbmcoKSk7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIHZhciBkYktleSA9ICJ0dW5lciI7DQogICAgICAgICAgICAgICAgdmFyIHNlbGVjdCA9IGNvbnRlbnQuY3JlYXRlU2VsZWN0KHRleHQsIHZhbHVlcywgZGF0YVtkYktleV0sIGRiS2V5KTsNCiAgICAgICAgICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJvbmZvY3VzIiwgImphdmFzY3JpcHQ6IHJldHVybjsiKTsNCiAgICAgICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sucGxheWxpc3QudHVuZXIudGl0bGV9fSIsIHNlbGVjdCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICB2YXIgZGJLZXkgPSAidHVuZXIiOw0KICAgICAgICAgICAgICAgIGlmIChkYXRhW2RiS2V5XSA9PSB1bmRlZmluZWQpIHsNCiAgICAgICAgICAgICAgICAgICAgZGF0YVtkYktleV0gPSAxOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInJlYWRvbmx5IiwgInRydWUiKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5jbGFzc05hbWUgPSAibm90QXZhaWxhYmxlIjsNCiAgICAgICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sucGxheWxpc3QudHVuZXIudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGNvbnRlbnQuZGVzY3JpcHRpb24oInt7LnBsYXlsaXN0LnR1bmVyLmRlc2NyaXB0aW9ufX0iKTsNCiAgICAgICAgICAgIC8vIEludGVyYWN0aW9uDQogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUludGVyYWN0aW9uKCk7DQogICAgICAgICAgICAvLyBEZWxldGUNCiAgICAgICAgICAgIGlmIChkYXRhWyJpZC5wcm92aWRlciJdICE9ICItIikgew0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJkZWxldGUiLCAie3suYnV0dG9uLmRlbGV0ZX19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoImhkaHIiLCAiJyArIGlkICsgJyIsIHRydWUsIDApJyk7DQogICAgICAgICAgICAgICAgaW5wdXQuY2xhc3NOYW1lID0gImRlbGV0ZSI7DQogICAgICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAiYmFjayIsICJ7ey5idXR0b24uYmFja319Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgicGxheWxpc3QiKScpOw0KICAgICAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgLy8gQWJvcnQNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJjYW5jZWwiLCAie3suYnV0dG9uLmNhbmNlbH19Iik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogc2hvd0VsZW1lbnQoInBvcHVwIiwgZmFsc2UpOycpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICAvLyBVcGRhdGUNCiAgICAgICAgICAgIGlmIChkYXRhWyJpZC5wcm92aWRlciJdICE9ICItIikgew0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJ1cGRhdGUiLCAie3suYnV0dG9uLnVwZGF0ZX19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoImhkaHIiLCAiJyArIGlkICsgJyIsIGZhbHNlLCAxKScpOw0KICAgICAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgLy8gU2F2ZQ0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgInNhdmUiLCAie3suYnV0dG9uLnNhdmV9fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoImhkaHIiLCAiJyArIGlkICsgJyIsIGZhbHNlLCAwKScpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSAiZmlsdGVyIjoNCiAgICAgICAgICAgIGNvbnRlbnQuY3JlYXRlSGVhZGxpbmUoZGF0YVR5cGUpOw0KICAgICAgICAgICAgLy8gVHlwZQ0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gInR5cGUiOw0KICAgICAgICAgICAgdmFyIHRleHQgPSBbIk0zVTogIiArICJ7ey5maWx0ZXIudHlwZS5ncm91cFRpdGxlfX0iLCAieFRlVmU6ICIgKyAie3suZmlsdGVyLnR5cGUuY3VzdG9tRmlsdGVyfX0iXTsNCiAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBbImphdmFzY3JpcHQ6IG9wZW5Qb3BVcCgnZ3JvdXAtdGl0bGUnKSIsICJqYXZhc2NyaXB0OiBvcGVuUG9wVXAoJ2N1c3RvbS1maWx0ZXInKSJdOw0KICAgICAgICAgICAgdmFyIHNlbGVjdCA9IGNvbnRlbnQuY3JlYXRlU2VsZWN0KHRleHQsIHZhbHVlcywgImphdmFzY3JpcHQ6IG9wZW5Qb3BVcCgnZ3JvdXAtdGl0bGUnKSIsIGRiS2V5KTsNCiAgICAgICAgICAgIHNlbGVjdC5zZXRBdHRyaWJ1dGUoImlkIiwgaWQpOw0KICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAnamF2YXNjcmlwdDogY2hhbmdlQnV0dG9uQWN0aW9uKHRoaXMsICJuZXh0IiwgIm9uY2xpY2siKTsnKTsgLy8gY2hhbmdlQnV0dG9uQWN0aW9uDQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3suZmlsdGVyLnR5cGUudGl0bGV9fSIsIHNlbGVjdCk7DQogICAgICAgICAgICAvLyBJbnRlcmFjdGlvbg0KICAgICAgICAgICAgY29udGVudC5jcmVhdGVJbnRlcmFjdGlvbigpOw0KICAgICAgICAgICAgLy8gQWJvcnQNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJjYW5jZWwiLCAie3suYnV0dG9uLmNhbmNlbH19Iik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogc2hvd0VsZW1lbnQoInBvcHVwIiwgZmFsc2UpOycpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICAvLyBOZXh0DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAibmV4dCIsICJ7ey5idXR0b24ubmV4dH19Iik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJncm91cC10aXRsZSIpJyk7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoImlkIiwgJ25leHQnKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGNhc2UgImN1c3RvbS1maWx0ZXIiOg0KICAgICAgICBjYXNlICJncm91cC10aXRsZSI6DQogICAgICAgICAgICBzd2l0Y2ggKGRhdGFUeXBlKSB7DQogICAgICAgICAgICAgICAgY2FzZSAiY3VzdG9tLWZpbHRlciI6DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuY3JlYXRlSGVhZGxpbmUoInt7LmZpbHRlci5jdXN0b219fSIgKyAiIEZpbHRlciIpOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBjYXNlICJncm91cC10aXRsZSI6DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuY3JlYXRlSGVhZGxpbmUoInt7LmZpbHRlci5ncm91cH19IiArICIgRmlsdGVyIik7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgLy8gTmFtZSAgICAgIA0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gIm5hbWUiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LmZpbHRlci5uYW1lLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5maWx0ZXIubmFtZS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgLy8gRGVzY3JpcHRpb24NCiAgICAgICAgICAgIHZhciBkYktleSA9ICJkZXNjcmlwdGlvbiI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3suZmlsdGVyLmRlc2NyaXB0aW9uLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5maWx0ZXIuZGVzY3JpcHRpb24udGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIFR5cGUNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJ0eXBlIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImhpZGRlbiIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygiIiwgaW5wdXQpOw0KICAgICAgICAgICAgdmFyIGZpbHRlclR5cGUgPSBkYXRhW2RiS2V5XTsNCiAgICAgICAgICAgIHN3aXRjaCAoZmlsdGVyVHlwZSkgew0KICAgICAgICAgICAgICAgIGNhc2UgImN1c3RvbS1maWx0ZXIiOg0KICAgICAgICAgICAgICAgICAgICAvLyBDYXNlIHNlbnNpdGl2ZQ0KICAgICAgICAgICAgICAgICAgICB2YXIgZGJLZXkgPSAiY2FzZVNlbnNpdGl2ZSI7DQogICAgICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goZGJLZXkpOw0KICAgICAgICAgICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YVtkYktleV07DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5maWx0ZXIuY2FzZVNlbnNpdGl2ZS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgICAgICAgICAvLyBGaWx0ZXIgUnVsZSAoQ3VzdG9tKQ0KICAgICAgICAgICAgICAgICAgICB2YXIgZGJLZXkgPSAiZmlsdGVyIjsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3suZmlsdGVyLmZpbHRlclJ1bGUucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3suZmlsdGVyLmZpbHRlclJ1bGUudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgICAgICAgICAgLy8gU3RhcnRpbmcgQ2hhbm5lbCBOdW1iZXIgTWFwcGluZw0KICAgICAgICAgICAgICAgICAgICB2YXIgZGJLZXkgPSAic3RhcnRpbmdDaGFubmVsIjsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3suZmlsdGVyLnN0YXJ0aW5nQ2hhbm5lbC5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5maWx0ZXIuc3RhcnRpbmdDaGFubmVsLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgImdyb3VwLXRpdGxlIjoNCiAgICAgICAgICAgICAgICAgICAgLy9hbGVydChkYktleSArICIgIiArIGZpbHRlclR5cGUpDQogICAgICAgICAgICAgICAgICAgIC8vIEZpbHRlciBiYXNlZCBvbiB0aGUgZ3JvdXBzIGluIHRoZSBNM1UNCiAgICAgICAgICAgICAgICAgICAgdmFyIGRiS2V5ID0gImZpbHRlciI7DQogICAgICAgICAgICAgICAgICAgIHZhciBncm91cHNNM1UgPSBnZXRMb2NhbERhdGEoIm0zdUdyb3VwcyIsICIiKTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHRleHQgPSBncm91cHNNM1VbInRleHQiXTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHZhbHVlcyA9IGdyb3Vwc00zVVsidmFsdWUiXTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHNlbGVjdCA9IGNvbnRlbnQuY3JlYXRlU2VsZWN0KHRleHQsIHZhbHVlcywgZGF0YVtkYktleV0sIGRiS2V5KTsNCiAgICAgICAgICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LmZpbHRlci5maWx0ZXJHcm91cC50aXRsZX19Iiwgc2VsZWN0KTsNCiAgICAgICAgICAgICAgICAgICAgY29udGVudC5kZXNjcmlwdGlvbigie3suZmlsdGVyLmZpbHRlckdyb3VwLmRlc2NyaXB0aW9ufX0iKTsNCiAgICAgICAgICAgICAgICAgICAgLy8gQ2FzZSBzZW5zZXRpdmUNCiAgICAgICAgICAgICAgICAgICAgdmFyIGRiS2V5ID0gImNhc2VTZW5zaXRpdmUiOw0KICAgICAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KGRiS2V5KTsNCiAgICAgICAgICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGFbZGJLZXldOw0KICAgICAgICAgICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3suZmlsdGVyLmNhc2VTZW5zaXRpdmUudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGRiS2V5ID0gImluY2x1ZGUiOw0KICAgICAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5maWx0ZXIuaW5jbHVkZS5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5maWx0ZXIuaW5jbHVkZS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgICAgICAgICBjb250ZW50LmRlc2NyaXB0aW9uKCJ7ey5maWx0ZXIuaW5jbHVkZS5kZXNjcmlwdGlvbn19Iik7DQogICAgICAgICAgICAgICAgICAgIHZhciBkYktleSA9ICJleGNsdWRlIjsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3suZmlsdGVyLmV4Y2x1ZGUucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3suZmlsdGVyLmV4Y2x1ZGUudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgICAgICAgICAgY29udGVudC5kZXNjcmlwdGlvbigie3suZmlsdGVyLmV4Y2x1ZGUuZGVzY3JpcHRpb259fSIpOw0KICAgICAgICAgICAgICAgICAgICAvLyBQcmVzZXJ2ZSBNM1UgUGxheWxpc3QgQ2hhbm5lbCBNYXBwaW5nDQogICAgICAgICAgICAgICAgICAgIHZhciBkYktleSA9ICJwcmVzZXJ2ZU1hcHBpbmciOw0KICAgICAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KGRiS2V5KTsNCiAgICAgICAgICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGFbZGJLZXldOw0KICAgICAgICAgICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3suZmlsdGVyLnByZXNlcnZlTWFwcGluZy50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgICAgICAgICAvLyBTdGFydGluZyBDaGFubmVsIE51bWJlciBNYXBwaW5nDQogICAgICAgICAgICAgICAgICAgIHZhciBkYktleSA9ICJzdGFydGluZ0NoYW5uZWwiOw0KICAgICAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5maWx0ZXIuc3RhcnRpbmdDaGFubmVsLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LmZpbHRlci5zdGFydGluZ0NoYW5uZWwudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgICAgICAgICAgLy8gRmlsbCBNaXNzaW5nIEVQRyBEYXRhDQogICAgICAgICAgICAgICAgICAgIC8vIFRoZSBmb2xsb3dpbmcgY29kZSBvbmx5IHdvcmtzIHdoZW4geFRlVmUgRHVtbXkgYWxyZWFkeSBleGlzdHMNCiAgICAgICAgICAgICAgICAgICAgLy8gdmFyIGRiS2V5OnN0cmluZyA9ICJkZWZhdWx0TWlzc2luZ0VQRyINCiAgICAgICAgICAgICAgICAgICAgLy8gdmFyIHhtbHR2OlhNTFRWRmlsZSA9IG5ldyBYTUxUVkZpbGUoKQ0KICAgICAgICAgICAgICAgICAgICAvLyB2YXIgc2VsZWN0ID0geG1sdHYuZ2V0UHJvZ3JhbXMoInhUZVZlIER1bW15IiwgZGF0YVtkYktleV0pDQogICAgICAgICAgICAgICAgICAgIC8vIHNlbGVjdC5zZXRBdHRyaWJ1dGUoIm5hbWUiLCBkYktleSkNCiAgICAgICAgICAgICAgICAgICAgLy8gc2VsZWN0LnNldEF0dHJpYnV0ZSgiaWQiLCAicG9wdXAtbWlzc2luZy1lcGciKQ0KICAgICAgICAgICAgICAgICAgICAvLyBUaGUgd29ya2Fyb3VuZCBpcyBjdXJyZW50bHkgdG8gaGFyZCBjb2RlIHRoZSB4VGVWZSBEdW1teSBkYXRhDQogICAgICAgICAgICAgICAgICAgIHZhciBkYktleSA9ICJkZWZhdWx0TWlzc2luZ0VQRyI7DQogICAgICAgICAgICAgICAgICAgIHZhciBsaXN0T3B0aW9ucyA9IHsgInRleHQiOiBbIi0iLCAiMzAgTWludXRlcyAoMzBfTWludXRlcykiLCAiNjAgTWludXRlcyAoNjBfTWludXRlcykiLCAiOTAgTWludXRlcyAoOTBfTWludXRlcykiLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICIxMjAgTWludXRlcyAoMTIwX01pbnV0ZXMpIiwgIjE4MCBNaW51dGVzICgzMF9NaW51dGVzKSIsICIyNDAgTWludXRlcyAoMzBfTWludXRlcykiLCAiMzYwIE1pbnV0ZXMgKDMwX01pbnV0ZXMpIl0sDQogICAgICAgICAgICAgICAgICAgICAgICAidmFsdWUiOiBbIi0iLCAiMzBfTWludXRlcyIsICI2MF9NaW51dGVzIiwgIjkwX01pbnV0ZXMiLCAiMTIwX01pbnV0ZXMiLCAiMTgwX01pbnV0ZXMiLCAiMjQwX01pbnV0ZXMiLCAiMzYwX01pbnV0ZXMiLF0gfTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHRleHQgPSBsaXN0T3B0aW9uc1sidGV4dCJdOw0KICAgICAgICAgICAgICAgICAgICB2YXIgdmFsdWVzID0gbGlzdE9wdGlvbnNbInZhbHVlIl07DQogICAgICAgICAgICAgICAgICAgIHZhciBzZWxlY3QgPSBjb250ZW50LmNyZWF0ZVNlbGVjdCh0ZXh0LCB2YWx1ZXMsIGRhdGFbZGJLZXldLCBkYktleSk7DQogICAgICAgICAgICAgICAgICAgIHNlbGVjdC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5maWx0ZXIuZGVmYXVsdE1pc3NpbmdFUEcudGl0bGV9fSIsIHNlbGVjdCk7DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuZGVzY3JpcHRpb24oInt7LmZpbHRlci5kZWZhdWx0TWlzc2luZ0VQRy5kZXNjcmlwdGlvbn19Iik7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgLy8gSW50ZXJhY3Rpb24NCiAgICAgICAgICAgIGNvbnRlbnQuY3JlYXRlSW50ZXJhY3Rpb24oKTsNCiAgICAgICAgICAgIC8vIERlbGV0ZQ0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImRlbGV0ZSIsICJ7ey5idXR0b24uZGVsZXRlfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBzYXZlUG9wdXBEYXRhKCJmaWx0ZXIiLCAiJyArIGlkICsgJyIsIHRydWUsIDApJyk7DQogICAgICAgICAgICBpbnB1dC5jbGFzc05hbWUgPSAiZGVsZXRlIjsNCiAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgLy8gQWJvcnQNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJjYW5jZWwiLCAie3suYnV0dG9uLmNhbmNlbH19Iik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogc2hvd0VsZW1lbnQoInBvcHVwIiwgZmFsc2UpOycpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICAvLyBTYXZlDQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAic2F2ZSIsICJ7ey5idXR0b24uc2F2ZX19Iik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogc2F2ZVBvcHVwRGF0YSgiZmlsdGVyIiwgIicgKyBpZCArICciLCBmYWxzZSwgMCknKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGNhc2UgInhtbHR2IjoNCiAgICAgICAgICAgIGNvbnRlbnQuY3JlYXRlSGVhZGxpbmUoZGF0YVR5cGUpOw0KICAgICAgICAgICAgLy8gTmFtZQ0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gIm5hbWUiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnhtbHR2Lm5hbWUucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnhtbHR2Lm5hbWUudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIERlc2NyaXB0aW9uDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAiZGVzY3JpcHRpb24iOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnhtbHR2LmRlc2NyaXB0aW9uLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey54bWx0di5kZXNjcmlwdGlvbi50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgLy8gVVJMDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAiZmlsZS5zb3VyY2UiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnhtbHR2LmZpbGVYTUxUVi5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sueG1sdHYuZmlsZVhNTFRWLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBJbnRlcmFjdGlvbg0KICAgICAgICAgICAgY29udGVudC5jcmVhdGVJbnRlcmFjdGlvbigpOw0KICAgICAgICAgICAgLy8gRGVsZXRlDQogICAgICAgICAgICBpZiAoZGF0YVsiaWQucHJvdmlkZXIiXSAhPSAiLSIpIHsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAiZGVsZXRlIiwgInt7LmJ1dHRvbi5kZWxldGV9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBzYXZlUG9wdXBEYXRhKCJ4bWx0diIsICInICsgaWQgKyAnIiwgdHJ1ZSwgMCknKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5jbGFzc05hbWUgPSAiZGVsZXRlIjsNCiAgICAgICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIC8vIEFib3J0DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAiY2FuY2VsIiwgInt7LmJ1dHRvbi5jYW5jZWx9fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IHNob3dFbGVtZW50KCJwb3B1cCIsIGZhbHNlKTsnKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgLy8gVXBkYXRlDQogICAgICAgICAgICBpZiAoZGF0YVsiaWQucHJvdmlkZXIiXSAhPSAiLSIpIHsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAidXBkYXRlIiwgInt7LmJ1dHRvbi51cGRhdGV9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBzYXZlUG9wdXBEYXRhKCJ4bWx0diIsICInICsgaWQgKyAnIiwgZmFsc2UsIDEpJyk7DQogICAgICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICAvLyBTYXZlDQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAic2F2ZSIsICJ7ey5idXR0b24uc2F2ZX19Iik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogc2F2ZVBvcHVwRGF0YSgieG1sdHYiLCAiJyArIGlkICsgJyIsIGZhbHNlLCAwKScpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSAidXNlcnMiOg0KICAgICAgICAgICAgY29udGVudC5jcmVhdGVIZWFkbGluZSgie3subWFpbk1lbnUuaXRlbS51c2Vyc319Iik7DQogICAgICAgICAgICAvLyBVc2VyIG5hbWUNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJ1c2VybmFtZSI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3sudXNlcnMudXNlcm5hbWUucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnVzZXJzLnVzZXJuYW1lLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBOZXcgUGFyc3N3b3JkDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAicGFzc3dvcmQiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgicGFzc3dvcmQiLCBkYktleSwgIiIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey51c2Vycy5wYXNzd29yZC5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sudXNlcnMucGFzc3dvcmQudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIENvbmZpcm1hdGlvbg0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gImNvbmZpcm0iOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgicGFzc3dvcmQiLCBkYktleSwgIiIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey51c2Vycy5jb25maXJtLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey51c2Vycy5jb25maXJtLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBBdXRoZW50aWNhdGlvbiBXRUINCiAgICAgICAgICAgIHZhciBkYktleSA9ICJhdXRoZW50aWNhdGlvbi53ZWIiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChkYktleSk7DQogICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YVtkYktleV07DQogICAgICAgICAgICBpZiAoZGF0YVsiZGVmYXVsdFVzZXIiXSA9PSB0cnVlKSB7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgImphdmFzY3JpcHQ6IHJldHVybiBmYWxzZSIpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnVzZXJzLndlYi50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgLy8gQXV0aGVudGljYXRpb24gUE1TDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAiYXV0aGVudGljYXRpb24ucG1zIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goZGJLZXkpOw0KICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGFbZGJLZXldOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnVzZXJzLnBtcy50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgLy8gQXV0aGVudGljYXRpb24gTTNVDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAiYXV0aGVudGljYXRpb24ubTN1IjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goZGJLZXkpOw0KICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGFbZGJLZXldOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnVzZXJzLm0zdS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgLy8gQXV0aGVudGljYXRpb24gWE1MDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAiYXV0aGVudGljYXRpb24ueG1sIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goZGJLZXkpOw0KICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGFbZGJLZXldOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnVzZXJzLnhtbC50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgLy8gQXV0aGVudGljYXRpb24gQVBJDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAiYXV0aGVudGljYXRpb24uYXBpIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goZGJLZXkpOw0KICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGFbZGJLZXldOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnVzZXJzLmFwaS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgLy8gSW50ZXJhY3Rpb24NCiAgICAgICAgICAgIGNvbnRlbnQuY3JlYXRlSW50ZXJhY3Rpb24oKTsNCiAgICAgICAgICAgIC8vIERlbGV0ZQ0KICAgICAgICAgICAgaWYgKGRhdGFbImRlZmF1bHRVc2VyIl0gIT0gdHJ1ZSAmJiBpZCAhPSAiLSIpIHsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAiZGVsZXRlIiwgInt7LmJ1dHRvbi5kZWxldGV9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LmNsYXNzTmFtZSA9ICJkZWxldGUiOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBzYXZlUG9wdXBEYXRhKCInICsgZGF0YVR5cGUgKyAnIiwgIicgKyBpZCArICciLCB0cnVlLCAwKScpOw0KICAgICAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgLy8gQWJvcnQNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJjYW5jZWwiLCAie3suYnV0dG9uLmNhbmNlbH19Iik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogc2hvd0VsZW1lbnQoInBvcHVwIiwgZmFsc2UpOycpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICAvLyBTYXZlDQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAic2F2ZSIsICJ7ey5idXR0b24uc2F2ZX19Iik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogc2F2ZVBvcHVwRGF0YSgiJyArIGRhdGFUeXBlICsgJyIsICInICsgaWQgKyAnIiwgImZhbHNlIik7Jyk7DQogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJtYXBwaW5nIjoNCiAgICAgICAgICAgIGNvbnRlbnQuY3JlYXRlSGVhZGxpbmUoInt7Lm1haW5NZW51Lml0ZW0ubWFwcGluZ319Iik7DQogICAgICAgICAgICAvLyBBY3RpdmUNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJ4LWFjdGl2ZSI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KGRiS2V5KTsNCiAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhW2RiS2V5XTsNCiAgICAgICAgICAgIGlucHV0LmlkID0gImFjdGl2ZSI7DQogICAgICAgICAgICAvL2lucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKQ0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0b2dnbGVDaGFubmVsU3RhdHVzKCciICsgaWQgKyAiJywgdGhpcykiKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5tYXBwaW5nLmFjdGl2ZS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgLy8gQ2hhbm5lbCBuYW1lDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAieC1uYW1lIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgaWYgKEJVTEtfRURJVCA9PSB0cnVlKSB7DQogICAgICAgICAgICAgICAgaW5wdXQuc3R5bGUuYm9yZGVyID0gInNvbGlkIDFweCByZWQiOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicmVhZG9ubHkiLCAidHJ1ZSIpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7Lm1hcHBpbmcuY2hhbm5lbE5hbWUudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIGNvbnRlbnQuZGVzY3JpcHRpb24oZGF0YVsibmFtZSJdKTsNCiAgICAgICAgICAgIC8vIERlc2NyaXB0aW9uDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAieC1kZXNjcmlwdGlvbiI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3subWFwcGluZy5kZXNjcmlwdGlvbi5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3subWFwcGluZy5kZXNjcmlwdGlvbi50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgLy8gVXBkYXRlIHRoZSBjaGFubmVsIG5hbWUNCiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCJfdXVpZC5rZXkiKSkgew0KICAgICAgICAgICAgICAgIGlmIChkYXRhWyJfdXVpZC5rZXkiXSAhPSAiIikgew0KICAgICAgICAgICAgICAgICAgICB2YXIgZGJLZXkgPSAieC11cGRhdGUtY2hhbm5lbC1uYW1lIjsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChkYktleSk7DQogICAgICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGFbZGJLZXldOw0KICAgICAgICAgICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3subWFwcGluZy51cGRhdGVDaGFubmVsTmFtZS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIC8vIExvZ28gVVJMIChDaGFubmVsKSANCiAgICAgICAgICAgIHZhciBkYktleSA9ICJ0dmctbG9nbyI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgiaWQiLCAiY2hhbm5lbC1pY29uIik7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3subWFwcGluZy5jaGFubmVsTG9nby50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgLy8gQ2hhbm5lbCBsb2dvIHVwZGF0ZQ0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gIngtdXBkYXRlLWNoYW5uZWwtaWNvbiI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KGRiS2V5KTsNCiAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhW2RiS2V5XTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgiaWQiLCAidXBkYXRlLWljb24iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCc7IGNoYW5nZUNoYW5uZWxMb2dvKCciICsgaWQgKyAiJyk7Iik7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3subWFwcGluZy51cGRhdGVDaGFubmVsTG9nby50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgLy8gRXhwYW5kIEVQRyBjYXRlZ29yeQ0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gIngtY2F0ZWdvcnkiOw0KICAgICAgICAgICAgdmFyIHRleHQgPSBbIi0iLCAiS2lkcyAoRW1ieSBvbmx5KSIsICJOZXdzIiwgIk1vdmllIiwgIlNlcmllcyIsICJTcG9ydHMiXTsNCiAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBbIiIsICJLaWRzIiwgIk5ld3MiLCAiTW92aWUiLCAiU2VyaWVzIiwgIlNwb3J0cyJdOw0KICAgICAgICAgICAgdmFyIHNlbGVjdCA9IGNvbnRlbnQuY3JlYXRlU2VsZWN0KHRleHQsIHZhbHVlcywgZGF0YVtkYktleV0sIGRiS2V5KTsNCiAgICAgICAgICAgIHNlbGVjdC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3subWFwcGluZy5lcGdDYXRlZ29yeS50aXRsZX19Iiwgc2VsZWN0KTsNCiAgICAgICAgICAgIC8vIE0zVSBncm91cCB0aXRsZQ0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gIngtZ3JvdXAtdGl0bGUiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICBpbnB1dC5kYXRhc2V0Lm9sZFZhbHVlID0gZGF0YVtkYktleV07DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3subWFwcGluZy5tM3VHcm91cFRpdGxlLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICBpZiAoZGF0YVsiZ3JvdXAtdGl0bGUiXSAhPSB1bmRlZmluZWQpIHsNCiAgICAgICAgICAgICAgICBjb250ZW50LmRlc2NyaXB0aW9uKGRhdGFbImdyb3VwLXRpdGxlIl0pOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgaWYgKGRhdGFbIngtdXBkYXRlLWNoYW5uZWwtZ3JvdXAiXSA9PSB0cnVlKSB7DQogICAgICAgICAgICAgICAgaW5wdXQuZGlzYWJsZWQgPSB0cnVlOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgLy8gVXBkYXRlIGNoYW5uZWwgZ3JvdXAgY2hlY2tib3gNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJ4LXVwZGF0ZS1jaGFubmVsLWdyb3VwIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goZGJLZXkpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0b2dnbGVHcm91cFVwZGF0ZUNiKCciICsgaWQgKyAiJywgdGhpcyk7Iik7DQogICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YVtkYktleV07DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3subWFwcGluZy51cGRhdGVDaGFubmVsR3JvdXAudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIGNvbnRlbnQuZGVzY3JpcHRpb24oInt7Lm1hcHBpbmcudXBkYXRlQ2hhbm5lbEdyb3VwLmRlc2NyaXB0aW9ufX0iKTsNCiAgICAgICAgICAgIC8vIFhNTFRWIGZpbGUNCiAgICAgICAgICAgIHZhciBkYktleSA9ICd4LXhtbHR2LWZpbGUnOw0KICAgICAgICAgICAgY29uc3QgeG1sVHZGaWxlID0gZGF0YVtkYktleV07DQogICAgICAgICAgICB2YXIgeG1sVHYgPSBuZXcgWE1MVFZGaWxlKCk7DQogICAgICAgICAgICBjb25zdCB4bWxUdkZpbGVTZWxlY3QgPSB4bWxUdi5nZXRGaWxlcyhkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICB4bWxUdkZpbGVTZWxlY3Quc2V0QXR0cmlidXRlKCduYW1lJywgZGJLZXkpOw0KICAgICAgICAgICAgeG1sVHZGaWxlU2VsZWN0LnNldEF0dHJpYnV0ZSgnaWQnLCAncG9wdXAteG1sdHYnKTsNCiAgICAgICAgICAgIHhtbFR2RmlsZVNlbGVjdC5zZXRBdHRyaWJ1dGUoJ29uY2hhbmdlJywgYGphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnOyBzZXRYbWx0dkNoYW5uZWwoJyR7aWR9JywgdGhpcyk7YCk7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygne3subWFwcGluZy54bWx0dkZpbGUudGl0bGV9fScsIHhtbFR2RmlsZVNlbGVjdCk7DQogICAgICAgICAgICAvLyBYTUxUViBNYXBwaW5nDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAneC1tYXBwaW5nJzsNCiAgICAgICAgICAgIHZhciB4bWxUdiA9IG5ldyBYTUxUVkZpbGUoKTsNCiAgICAgICAgICAgIGNvbnN0IGN1cnJlbnRYbWxUdklkID0gZGF0YVtkYktleV07DQogICAgICAgICAgICBjb25zdCBbeG1sVHZJZENvbnRhaW5lciwgeG1sVHZJZElucHV0LCB4bWxUdklkRGF0YWxpc3RdID0geG1sVHYubmV3WG1sVHZJZFBpY2tlcih4bWxUdkZpbGUsIGN1cnJlbnRYbWxUdklkKTsNCiAgICAgICAgICAgIHhtbFR2SWRDb250YWluZXIuc2V0QXR0cmlidXRlKCdpZCcsICd4bWx0di1pZC1waWNrZXItY29udGFpbmVyJyk7DQogICAgICAgICAgICB4bWxUdklkSW5wdXQuc2V0QXR0cmlidXRlKCdsaXN0JywgJ3htbHR2LWlkLXBpY2tlci1kYXRhbGlzdCcpOw0KICAgICAgICAgICAgeG1sVHZJZElucHV0LnNldEF0dHJpYnV0ZSgnbmFtZScsICd4LW1hcHBpbmcnKTsgLy8gU2hvdWxkIHN0YXkgeC1tYXBwaW5nIGFzIGl0IHdpbGwgYmUgdXNlZCBpbiBkb25lUG9wdXBEYXRhIHRvIG1ha2UgYSBzZXJ2ZXIgcmVxdWVzdA0KICAgICAgICAgICAgeG1sVHZJZElucHV0LnNldEF0dHJpYnV0ZSgnaWQnLCAneG1sdHYtaWQtcGlja2VyLWlucHV0Jyk7DQogICAgICAgICAgICB4bWxUdklkSW5wdXQuc2V0QXR0cmlidXRlKCdvbmNoYW5nZScsIGBqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJzsgY2hlY2tYbWx0dkNoYW5uZWwoJyR7aWR9JywgdGhpcy52YWx1ZSwgJyR7eG1sVHZGaWxlfScpO2ApOw0KICAgICAgICAgICAgeG1sVHZJZERhdGFsaXN0LnNldEF0dHJpYnV0ZSgnaWQnLCAneG1sdHYtaWQtcGlja2VyLWRhdGFsaXN0Jyk7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygne3subWFwcGluZy54bWx0dkNoYW5uZWwudGl0bGV9fScsIHhtbFR2SWRDb250YWluZXIpOw0KICAgICAgICAgICAgLy8gVGltZXNoaWZ0DQogICAgICAgICAgICB2YXIgZGJLZXkgPSAieC10aW1lc2hpZnQiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7Lm1hcHBpbmcudGltZXNoaWZ0LnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgiaWQiLCAidGltZXNoaWZ0Iik7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3subWFwcGluZy50aW1lc2hpZnQudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIEludGVyYWN0aW9uDQogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUludGVyYWN0aW9uKCk7DQogICAgICAgICAgICAvLyBVcGxvYWQgbG9nbw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImNhbmNlbCIsICJ7ey5idXR0b24udXBsb2FkTG9nb319Iik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogdXBsb2FkTG9nbygpOycpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICAvLyBBYm9ydA0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImNhbmNlbCIsICJ7ey5idXR0b24uY2FuY2VsfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBzaG93RWxlbWVudCgicG9wdXAiLCBmYWxzZSk7Jyk7DQogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIC8vIEZpbmlzaGVkDQogICAgICAgICAgICB2YXIgaWRzID0gW107DQogICAgICAgICAgICBpZHMgPSBnZXRBbGxTZWxlY3RlZENoYW5uZWxzKCk7DQogICAgICAgICAgICBpZiAoaWRzLmxlbmd0aCA9PSAwKSB7DQogICAgICAgICAgICAgICAgaWRzLnB1c2goaWQpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgInNhdmUiLCAie3suYnV0dG9uLmRvbmV9fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IGRvbmVQb3B1cERhdGEoIicgKyBkYXRhVHlwZSArICciLCAiJyArIGlkcyArICciLCAiZmFsc2UiKTsnKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICBicmVhazsNCiAgICB9DQogICAgc2hvd1BvcFVwRWxlbWVudCgncG9wdXAtY3VzdG9tJyk7DQp9DQpjbGFzcyBYTUxUVkZpbGUgew0KICAgIGdldEZpbGVzKHNldCkgew0KICAgICAgICBsZXQgZmlsZUlEcyA9IGdldE93bk9ialByb3BzKFNFUlZFUlsieGVwZyJdWyJ4bWx0dk1hcCJdKTsNCiAgICAgICAgbGV0IHZhbHVlcyA9IG5ldyBBcnJheSgiLSIpOw0KICAgICAgICBsZXQgdGV4dCA9IG5ldyBBcnJheSgiLSIpOw0KICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGZpbGVJRHMubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgICAgIGlmIChmaWxlSURzW2ldICE9ICJ4VGVWZSBEdW1teSIpIHsNCiAgICAgICAgICAgICAgICB2YWx1ZXMucHVzaChnZXRWYWx1ZUZyb21Qcm92aWRlckZpbGUoZmlsZUlEc1tpXSwgInhtbHR2IiwgImZpbGUueHRldmUiKSk7DQogICAgICAgICAgICAgICAgdGV4dC5wdXNoKGdldFZhbHVlRnJvbVByb3ZpZGVyRmlsZShmaWxlSURzW2ldLCAieG1sdHYiLCAibmFtZSIpKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgICAgIHZhbHVlcy5wdXNoKGZpbGVJRHNbaV0pOw0KICAgICAgICAgICAgICAgIHRleHQucHVzaChmaWxlSURzW2ldKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KICAgICAgICBsZXQgc2VsZWN0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiU0VMRUNUIik7DQogICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGV4dC5sZW5ndGg7IGkrKykgew0KICAgICAgICAgICAgdmFyIG9wdGlvbiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIk9QVElPTiIpOw0KICAgICAgICAgICAgb3B0aW9uLnNldEF0dHJpYnV0ZSgidmFsdWUiLCB2YWx1ZXNbaV0pOw0KICAgICAgICAgICAgb3B0aW9uLmlubmVyVGV4dCA9IHRleHRbaV07DQogICAgICAgICAgICBzZWxlY3QuYXBwZW5kQ2hpbGQob3B0aW9uKTsNCiAgICAgICAgfQ0KICAgICAgICBpZiAoc2V0ICE9ICIiKSB7DQogICAgICAgICAgICBzZWxlY3QudmFsdWUgPSBzZXQ7DQogICAgICAgIH0NCiAgICAgICAgcmV0dXJuIHNlbGVjdDsNCiAgICB9DQogICAgLyoqDQogICAgICogQHBhcmFtIHhtbFR2RmlsZSBYTUwgZmlsZSBwYXRoIHRvIGdldCBFUEcgZnJvbS4NCiAgICAgKiBAcGFyYW0gY3VycmVudFhtbFR2SWQgQ3VycmVudCBYTUxUViBJRCB0byBzZXQgaW5pdGlhbCBpbnB1dCB2YWx1ZSB0by4NCiAgICAgKiBAcmV0dXJucyBBcnJheSBvZiwgc2VxdWVudGlhbGx5Og0KICAgICAqIDEpIENvbnRhaW5lciBvZiB0aGUgcGlja2VyLg0KICAgICAqIDIpIElucHV0IGZpZWxkIHRvIHR5cGUgYXQgYW5kIGdldCBjaG9pY2UgZnJvbS4NCiAgICAgKiAzKSBEYXRhbGlzdCBjb250YWluaW5nIGV2ZXJ5IG9wdGlvbi4NCiAgICAgKi8NCiAgICBuZXdYbWxUdklkUGlja2VyKHhtbFR2RmlsZSwgY3VycmVudFhtbFR2SWQpIHsNCiAgICAgICAgY29uc3QgY29udGFpbmVyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7DQogICAgICAgIGNvbnN0IGlucHV0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnaW5wdXQnKTsNCiAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCd0eXBlJywgJ3RleHQnKTsNCiAgICAgICAgLy8gSW5pdGlhbGx5LCBzZXQgdmFsdWUgdG8gJy0nIGlmIGlucHV0IGlzIGVtcHR5DQogICAgICAgIGlucHV0LnZhbHVlID0gKGN1cnJlbnRYbWxUdklkKSA/IGN1cnJlbnRYbWxUdklkIDogJy0nOw0KICAgICAgICAvLyBXaGVuIGlucHV0IGlzIGZvY3VzZWQsIHJlbW92ZSAnLScgZnJvbSBpdA0KICAgICAgICBpbnB1dC5hZGRFdmVudExpc3RlbmVyKCdmb2N1cycsIChldnQpID0+IHsNCiAgICAgICAgICAgIGNvbnN0IHRhcmdldCA9IGV2dC50YXJnZXQ7DQogICAgICAgICAgICB0YXJnZXQudmFsdWUgPSAodGFyZ2V0LnZhbHVlID09PSAnLScpID8gJycgOiB0YXJnZXQudmFsdWU7DQogICAgICAgIH0pOw0KICAgICAgICAvLyBXaGVuIGlucHV0IGxvc2UgZm9jdXMgb3IgdGFrZSBhIHZhbHVlLCBpZiBpdCdzIGVtcHR5LCBzZXQgdmFsdWUgdG8gJy0nDQogICAgICAgIGlucHV0LmFkZEV2ZW50TGlzdGVuZXIoJ2JsdXInLCBzZXRGYWxsYmFja1ZhbHVlKTsNCiAgICAgICAgaW5wdXQuYWRkRXZlbnRMaXN0ZW5lcignY2hhbmdlJywgc2V0RmFsbGJhY2tWYWx1ZSk7DQogICAgICAgIGZ1bmN0aW9uIHNldEZhbGxiYWNrVmFsdWUoZXZ0KSB7DQogICAgICAgICAgICBjb25zdCB0YXJnZXQgPSBldnQudGFyZ2V0Ow0KICAgICAgICAgICAgdGFyZ2V0LnZhbHVlID0gKHRhcmdldC52YWx1ZSkgPyB0YXJnZXQudmFsdWUgOiAnLSc7DQogICAgICAgIH0NCiAgICAgICAgY29udGFpbmVyLmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgY29uc3QgZGF0YWxpc3QgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkYXRhbGlzdCcpOw0KICAgICAgICBjb25zdCBvcHRpb24gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdvcHRpb24nKTsNCiAgICAgICAgb3B0aW9uLnNldEF0dHJpYnV0ZSgndmFsdWUnLCAnLScpOw0KICAgICAgICBvcHRpb24uaW5uZXJUZXh0ID0gJy0nOw0KICAgICAgICBkYXRhbGlzdC5hcHBlbmRDaGlsZChvcHRpb24pOw0KICAgICAgICBjb25zdCBlcGcgPSBTRVJWRVJbJ3hlcGcnXVsneG1sdHZNYXAnXVt4bWxUdkZpbGVdOw0KICAgICAgICBpZiAoZXBnKSB7DQogICAgICAgICAgICBjb25zdCBwcm9ncmFtSWRzID0gZ2V0T3duT2JqUHJvcHMoZXBnKTsNCiAgICAgICAgICAgIHByb2dyYW1JZHMuZm9yRWFjaCgocHJvZ3JhbUlkKSA9PiB7DQogICAgICAgICAgICAgICAgY29uc3QgcHJvZ3JhbSA9IGVwZ1twcm9ncmFtSWRdOw0KICAgICAgICAgICAgICAgIGlmIChwcm9ncmFtLmhhc093blByb3BlcnR5KCdkaXNwbGF5LW5hbWVzJykpIHsNCiAgICAgICAgICAgICAgICAgICAgcHJvZ3JhbVsnZGlzcGxheS1uYW1lcyddLmZvckVhY2goKGRpc3BsYXlOYW1lKSA9PiB7DQogICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBvcHRpb24gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdvcHRpb24nKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIG9wdGlvbi5zZXRBdHRyaWJ1dGUoJ3ZhbHVlJywgcHJvZ3JhbUlkKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIG9wdGlvbi5pbm5lclRleHQgPSBkaXNwbGF5TmFtZVsnVmFsdWUnXTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGRhdGFsaXN0LmFwcGVuZENoaWxkKG9wdGlvbik7DQogICAgICAgICAgICAgICAgICAgIH0pOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICAgICAgY29uc3Qgb3B0aW9uID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnb3B0aW9uJyk7DQogICAgICAgICAgICAgICAgICAgIG9wdGlvbi5zZXRBdHRyaWJ1dGUoJ3ZhbHVlJywgcHJvZ3JhbUlkKTsNCiAgICAgICAgICAgICAgICAgICAgb3B0aW9uLmlubmVyVGV4dCA9ICctJzsNCiAgICAgICAgICAgICAgICAgICAgZGF0YWxpc3QuYXBwZW5kQ2hpbGQob3B0aW9uKTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9KTsNCiAgICAgICAgfQ0KICAgICAgICBjb250YWluZXIuYXBwZW5kQ2hpbGQoZGF0YWxpc3QpOw0KICAgICAgICByZXR1cm4gW2NvbnRhaW5lciwgaW5wdXQsIGRhdGFsaXN0XTsNCiAgICB9DQp9DQpmdW5jdGlvbiBnZXRWYWx1ZUZyb21Qcm92aWRlckZpbGUoZmlsZSwgZmlsZVR5cGUsIGtleSkgew0KICAgIGlmIChmaWxlID09ICJ4VGVWZSBEdW1teSIpIHsNCiAgICAgICAgcmV0dXJuIGZpbGU7DQogICAgfQ0KICAgIGxldCBmaWxlSUQ7DQogICAgbGV0IGluZGljYXRvciA9IGZpbGUuY2hhckF0KDApOw0KICAgIHN3aXRjaCAoaW5kaWNhdG9yKSB7DQogICAgICAgIGNhc2UgIk0iOg0KICAgICAgICAgICAgZmlsZVR5cGUgPSAibTN1IjsNCiAgICAgICAgICAgIGZpbGVJRCA9IGZpbGU7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSAiSCI6DQogICAgICAgICAgICBmaWxlVHlwZSA9ICJoZGhyIjsNCiAgICAgICAgICAgIGZpbGVJRCA9IGZpbGU7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSAiWCI6DQogICAgICAgICAgICBmaWxlVHlwZSA9ICJ4bWx0diI7DQogICAgICAgICAgICBmaWxlSUQgPSBmaWxlLnN1YnN0cmluZygwLCBmaWxlLmxhc3RJbmRleE9mKCcuJykpOw0KICAgICAgICAgICAgYnJlYWs7DQogICAgfQ0KICAgIGlmIChTRVJWRVJbInNldHRpbmdzIl1bImZpbGVzIl1bZmlsZVR5cGVdLmhhc093blByb3BlcnR5KGZpbGVJRCkgPT0gdHJ1ZSkgew0KICAgICAgICB2YXIgZGF0YSA9IFNFUlZFUlsic2V0dGluZ3MiXVsiZmlsZXMiXVtmaWxlVHlwZV1bZmlsZUlEXTsNCiAgICAgICAgcmV0dXJuIGRhdGFba2V5XTsNCiAgICB9DQogICAgcmV0dXJuOw0KfQ0KZnVuY3Rpb24gc2V0WG1sdHZDaGFubmVsKGVwZ01hcElkLCB4bWxUdkZpbGVTZWxlY3QpIHsNCiAgICBjb25zdCB4bWxUdiA9IG5ldyBYTUxUVkZpbGUoKTsNCiAgICBjb25zdCBuZXdYbWxUdkZpbGUgPSB4bWxUdkZpbGVTZWxlY3QudmFsdWU7DQogICAgLy8gUmVtb3ZlIG9sZCBYTUxUViBJRCBzZWxlY3Rpb24gYm94DQogICAgY29uc3QgeG1sVHZJZFBpY2tlclBhcmVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd4bWx0di1pZC1waWNrZXItY29udGFpbmVyJykucGFyZW50RWxlbWVudDsNCiAgICB4bWxUdklkUGlja2VyUGFyZW50LmlubmVySFRNTCA9ICcnOw0KICAgIC8vIENyZWF0ZSBuZXcgWE1MVFYgSUQgc2VsZWN0aW9uIGJveA0KICAgIGNvbnN0IHR2Z0lkID0gU0VSVkVSWyd4ZXBnJ11bJ2VwZ01hcHBpbmcnXVtlcGdNYXBJZF1bJ3R2Zy1pZCddOw0KICAgIGNvbnN0IFt4bWxUdklkQ29udGFpbmVyLCB4bWxUdklkSW5wdXQsIHhtbFR2SWREYXRhbGlzdF0gPSB4bWxUdi5uZXdYbWxUdklkUGlja2VyKG5ld1htbFR2RmlsZSwgdHZnSWQpOw0KICAgIHhtbFR2SWRDb250YWluZXIuc2V0QXR0cmlidXRlKCdpZCcsICd4bWx0di1pZC1waWNrZXItY29udGFpbmVyJyk7DQogICAgeG1sVHZJZElucHV0LnNldEF0dHJpYnV0ZSgnbGlzdCcsICd4bWx0di1pZC1waWNrZXItZGF0YWxpc3QnKTsNCiAgICB4bWxUdklkSW5wdXQuc2V0QXR0cmlidXRlKCduYW1lJywgJ3gtbWFwcGluZycpOyAvLyBTaG91bGQgc3RheSB4LW1hcHBpbmcgYXMgaXQgd2lsbCBiZSB1c2VkIGluIGRvbmVQb3B1cERhdGEgdG8gbWFrZSBhIHNlcnZlciByZXF1ZXN0DQogICAgeG1sVHZJZElucHV0LnNldEF0dHJpYnV0ZSgnaWQnLCAneG1sdHYtaWQtcGlja2VyLWlucHV0Jyk7DQogICAgeG1sVHZJZElucHV0LnNldEF0dHJpYnV0ZSgnb25jaGFuZ2UnLCBgamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCc7IGNoZWNrWG1sdHZDaGFubmVsKCcke2VwZ01hcElkfScsIHRoaXMudmFsdWUsICcke25ld1htbFR2RmlsZX0nKTtgKTsNCiAgICB4bWxUdklkSW5wdXQuY2xhc3NMaXN0LmFkZCgnY2hhbmdlZCcpOw0KICAgIHhtbFR2SWREYXRhbGlzdC5zZXRBdHRyaWJ1dGUoJ2lkJywgJ3htbHR2LWlkLXBpY2tlci1kYXRhbGlzdCcpOw0KICAgIC8vIEFkZCBuZXcgWE1MVFYgSUQgc2VsZWN0aW9uIGJveCB0byBpdCdzIHBhcmVudA0KICAgIHhtbFR2SWRQaWNrZXJQYXJlbnQuYXBwZW5kQ2hpbGQoeG1sVHZJZENvbnRhaW5lcik7DQogICAgY2hlY2tYbWx0dkNoYW5uZWwoZXBnTWFwSWQsIHhtbFR2SWRJbnB1dC52YWx1ZSwgbmV3WG1sVHZGaWxlKTsNCn0NCmZ1bmN0aW9uIGNoZWNrWG1sdHZDaGFubmVsKGVwZ01hcElkLCBuZXdYbWxUdklkLCB4bWxUdkZpbGUpIHsNCiAgICBjb25zdCBjaGFubmVsQWN0aXZlQ2IgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYWN0aXZlJyk7DQogICAgY29uc3QgY2hhbm5lbEFjdGl2ZSA9IG5ld1htbFR2SWQgIT0gJy0nOw0KICAgIGNoYW5uZWxBY3RpdmVDYi5jaGVja2VkID0gY2hhbm5lbEFjdGl2ZTsNCiAgICBjaGFubmVsQWN0aXZlQ2IuY2xhc3NOYW1lID0gJ2NoYW5nZWQnOw0KICAgIGlmICh4bWxUdkZpbGUgIT0gJ3hUZVZlIER1bW15JyAmJiBjaGFubmVsQWN0aXZlID09IHRydWUpIHsNCiAgICAgICAgY2hhbmdlQ2hhbm5lbExvZ28oZXBnTWFwSWQpOw0KICAgICAgICByZXR1cm47DQogICAgfQ0KICAgIGlmICh4bWxUdkZpbGUgPT0gJ3hUZVZlIER1bW15Jykgew0KICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndXBkYXRlLWljb24nKS5jaGVja2VkID0gZmFsc2U7DQogICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd1cGRhdGUtaWNvbicpLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJzsNCiAgICB9DQp9DQpmdW5jdGlvbiBjaGFuZ2VDaGFubmVsTG9nbyhlcGdNYXBJZCkgew0KICAgIGNvbnN0IGNoYW5uZWwgPSBTRVJWRVJbJ3hlcGcnXVsnZXBnTWFwcGluZyddW2VwZ01hcElkXTsNCiAgICBjb25zdCB4bWxUdkZpbGVTZWxlY3QgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncG9wdXAteG1sdHYnKTsNCiAgICBjb25zdCB4bWxUdkZpbGUgPSB4bWxUdkZpbGVTZWxlY3Qub3B0aW9uc1t4bWxUdkZpbGVTZWxlY3Quc2VsZWN0ZWRJbmRleF0udmFsdWU7DQogICAgY29uc3QgeG1sVHZJZElucHV0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3htbHR2LWlkLXBpY2tlci1pbnB1dCcpOw0KICAgIGNvbnN0IG5ld1htbFR2SWQgPSB4bWxUdklkSW5wdXQudmFsdWU7DQogICAgY29uc3QgdXBkYXRlTG9nbyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd1cGRhdGUtaWNvbicpLmNoZWNrZWQ7DQogICAgbGV0IGxvZ287DQogICAgaWYgKHVwZGF0ZUxvZ28gPT0gdHJ1ZSAmJiB4bWxUdkZpbGUgIT0gJ3hUZVZlIER1bW15Jykgew0KICAgICAgICBpZiAoU0VSVkVSWyd4ZXBnJ11bJ3htbHR2TWFwJ11beG1sVHZGaWxlXS5oYXNPd25Qcm9wZXJ0eShuZXdYbWxUdklkKSkgew0KICAgICAgICAgICAgbG9nbyA9IFNFUlZFUlsneGVwZyddWyd4bWx0dk1hcCddW3htbFR2RmlsZV1bbmV3WG1sVHZJZF1bJ2ljb24nXTsNCiAgICAgICAgfQ0KICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgIGxvZ28gPSBjaGFubmVsWyd0dmctbG9nbyddOw0KICAgICAgICB9DQogICAgICAgIHZhciBsb2dvSW5wdXQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY2hhbm5lbC1pY29uJyk7DQogICAgICAgIGxvZ29JbnB1dC52YWx1ZSA9IGxvZ287DQogICAgICAgIGlmIChCVUxLX0VESVQgPT0gZmFsc2UpIHsNCiAgICAgICAgICAgIGxvZ29JbnB1dC5jbGFzc05hbWUgPSAnY2hhbmdlZCc7DQogICAgICAgIH0NCiAgICB9DQp9DQpmdW5jdGlvbiBzYXZlUG9wdXBEYXRhKGRhdGFUeXBlLCBpZCwgcmVtb3ZlLCBvcHRpb24pIHsNCiAgICBpZiAoZGF0YVR5cGUgPT0gIm1hcHBpbmciKSB7DQogICAgICAgIGxldCBkYXRhID0ge307DQogICAgICAgIGxldCBjbWQgPSAic2F2ZUVwZ01hcHBpbmciOw0KICAgICAgICBkYXRhWyJlcGdNYXBwaW5nIl0gPSBTRVJWRVJbInhlcGciXVsiZXBnTWFwcGluZyJdOw0KICAgICAgICBsZXQgc2VydmVyID0gbmV3IFNlcnZlcihjbWQpOw0KICAgICAgICBzZXJ2ZXIucmVxdWVzdChkYXRhKTsNCiAgICAgICAgZGVsZXRlIFVORE9bImVwZ01hcHBpbmciXTsNCiAgICAgICAgcmV0dXJuOw0KICAgIH0NCiAgICBsZXQgZGl2ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInBvcHVwLWN1c3RvbSIpOw0KICAgIGxldCBpbnB1dHMgPSBkaXYuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlRBQkxFIilbMF0uZ2V0RWxlbWVudHNCeVRhZ05hbWUoIklOUFVUIik7DQogICAgbGV0IHNlbGVjdHMgPSBkaXYuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlRBQkxFIilbMF0uZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlNFTEVDVCIpOw0KICAgIGxldCBpbnB1dCA9IHt9Ow0KICAgIGxldCBjb25maXJtTXNnOw0KICAgIGZvciAobGV0IGkgPSAwOyBpIDwgc2VsZWN0cy5sZW5ndGg7IGkrKykgew0KICAgICAgICB2YXIgbmFtZTsNCiAgICAgICAgbmFtZSA9IHNlbGVjdHNbaV0ubmFtZTsNCiAgICAgICAgdmFyIHZhbHVlID0gc2VsZWN0c1tpXS52YWx1ZTsNCiAgICAgICAgc3dpdGNoIChuYW1lKSB7DQogICAgICAgICAgICBjYXNlICJ0dW5lciI6DQogICAgICAgICAgICAgICAgaW5wdXRbbmFtZV0gPSBwYXJzZUludCh2YWx1ZSk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBkZWZhdWx0Og0KICAgICAgICAgICAgICAgIGlucHV0W25hbWVdID0gdmFsdWU7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIH0NCiAgICB9DQogICAgZm9yIChsZXQgaSA9IDA7IGkgPCBpbnB1dHMubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgc3dpdGNoIChpbnB1dHNbaV0udHlwZSkgew0KICAgICAgICAgICAgY2FzZSAiY2hlY2tib3giOg0KICAgICAgICAgICAgICAgIG5hbWUgPSBpbnB1dHNbaV0ubmFtZTsNCiAgICAgICAgICAgICAgICBpbnB1dFtuYW1lXSA9IGlucHV0c1tpXS5jaGVja2VkOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAidGV4dCI6DQogICAgICAgICAgICBjYXNlICJoaWRkZW4iOg0KICAgICAgICAgICAgY2FzZSAicGFzc3dvcmQiOg0KICAgICAgICAgICAgICAgIG5hbWUgPSBpbnB1dHNbaV0ubmFtZTsNCiAgICAgICAgICAgICAgICBzd2l0Y2ggKG5hbWUpIHsNCiAgICAgICAgICAgICAgICAgICAgY2FzZSAidHVuZXIiOg0KICAgICAgICAgICAgICAgICAgICAgICAgaW5wdXRbbmFtZV0gPSBwYXJzZUludChpbnB1dHNbaV0udmFsdWUpOw0KICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICAgICAgICAgICAgICBpbnB1dFtuYW1lXSA9IGlucHV0c1tpXS52YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgfQ0KICAgIH0NCiAgICBsZXQgZGF0YSA9IHt9Ow0KICAgIGxldCBjbWQ7DQogICAgaWYgKHJlbW92ZSA9PSB0cnVlKSB7DQogICAgICAgIGlucHV0WyJkZWxldGUiXSA9IHRydWU7DQogICAgfQ0KICAgIHN3aXRjaCAoZGF0YVR5cGUpIHsNCiAgICAgICAgY2FzZSAidXNlcnMiOg0KICAgICAgICAgICAgY29uZmlybU1zZyA9ICJEZWxldGUgdGhpcyB1c2VyPyI7DQogICAgICAgICAgICBpZiAoaWQgPT0gIi0iKSB7DQogICAgICAgICAgICAgICAgY21kID0gInNhdmVOZXdVc2VyIjsNCiAgICAgICAgICAgICAgICBkYXRhWyJ1c2VyRGF0YSJdID0gaW5wdXQ7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICBjbWQgPSAic2F2ZVVzZXJEYXRhIjsNCiAgICAgICAgICAgICAgICBsZXQgZCA9IHt9Ow0KICAgICAgICAgICAgICAgIGRbaWRdID0gaW5wdXQ7DQogICAgICAgICAgICAgICAgZGF0YVsidXNlckRhdGEiXSA9IGQ7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSAibTN1IjoNCiAgICAgICAgICAgIGNvbmZpcm1Nc2cgPSAiRGVsZXRlIHRoaXMgcGxheWxpc3Q/IjsNCiAgICAgICAgICAgIHN3aXRjaCAob3B0aW9uKSB7DQogICAgICAgICAgICAgICAgLy8gUG9wdXA6IFNhdmUNCiAgICAgICAgICAgICAgICBjYXNlIDA6DQogICAgICAgICAgICAgICAgICAgIGNtZCA9ICJzYXZlRmlsZXNNM1UiOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICAvLyBQb3B1cDogVXBkYXRlDQogICAgICAgICAgICAgICAgY2FzZSAxOg0KICAgICAgICAgICAgICAgICAgICBjbWQgPSAidXBkYXRlRmlsZU0zVSI7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgZGF0YVsiZmlsZXMiXSA9IHt9Ow0KICAgICAgICAgICAgZGF0YVsiZmlsZXMiXVtkYXRhVHlwZV0gPSB7fTsNCiAgICAgICAgICAgIGRhdGFbImZpbGVzIl1bZGF0YVR5cGVdW2lkXSA9IGlucHV0Ow0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGNhc2UgImhkaHIiOg0KICAgICAgICAgICAgY29uZmlybU1zZyA9ICJEZWxldGUgdGhpcyBIREhvbWVSdW4gdHVuZXI/IjsNCiAgICAgICAgICAgIHN3aXRjaCAob3B0aW9uKSB7DQogICAgICAgICAgICAgICAgLy8gUG9wdXA6IFNhdmUNCiAgICAgICAgICAgICAgICBjYXNlIDA6DQogICAgICAgICAgICAgICAgICAgIGNtZCA9ICJzYXZlRmlsZXNIREhSIjsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgLy8gUG9wdXA6IFVwZGF0ZQ0KICAgICAgICAgICAgICAgIGNhc2UgMToNCiAgICAgICAgICAgICAgICAgICAgY21kID0gInVwZGF0ZUZpbGVIREhSIjsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBkYXRhWyJmaWxlcyJdID0ge307DQogICAgICAgICAgICBkYXRhWyJmaWxlcyJdW2RhdGFUeXBlXSA9IHt9Ow0KICAgICAgICAgICAgZGF0YVsiZmlsZXMiXVtkYXRhVHlwZV1baWRdID0gaW5wdXQ7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSAieG1sdHYiOg0KICAgICAgICAgICAgY29uZmlybU1zZyA9ICJEZWxldGUgdGhpcyBYTUxUViBmaWxlPyI7DQogICAgICAgICAgICBzd2l0Y2ggKG9wdGlvbikgew0KICAgICAgICAgICAgICAgIC8vIFBvcHVwOiBTYXZlDQogICAgICAgICAgICAgICAgY2FzZSAwOg0KICAgICAgICAgICAgICAgICAgICBjbWQgPSAic2F2ZUZpbGVzWE1MVFYiOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICAvLyBQb3B1cDogVXBkYXRlDQogICAgICAgICAgICAgICAgY2FzZSAxOg0KICAgICAgICAgICAgICAgICAgICBjbWQgPSAidXBkYXRlRmlsZVhNTFRWIjsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBkYXRhWyJmaWxlcyJdID0ge307DQogICAgICAgICAgICBkYXRhWyJmaWxlcyJdW2RhdGFUeXBlXSA9IHt9Ow0KICAgICAgICAgICAgZGF0YVsiZmlsZXMiXVtkYXRhVHlwZV1baWRdID0gaW5wdXQ7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSAiZmlsdGVyIjoNCiAgICAgICAgICAgIGNvbmZpcm1Nc2cgPSAiRGVsZXRlIHRoaXMgZmlsdGVyPyI7DQogICAgICAgICAgICBjbWQgPSAic2F2ZUZpbHRlciI7DQogICAgICAgICAgICBkYXRhWyJmaWx0ZXIiXSA9IHt9Ow0KICAgICAgICAgICAgZGF0YVsiZmlsdGVyIl1baWRdID0gaW5wdXQ7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgIHJldHVybjsNCiAgICB9DQogICAgaWYgKHJlbW92ZSA9PSB0cnVlKSB7DQogICAgICAgIGlmICghY29uZmlybShjb25maXJtTXNnKSkgew0KICAgICAgICAgICAgc2hvd0VsZW1lbnQoInBvcHVwIiwgZmFsc2UpOw0KICAgICAgICAgICAgcmV0dXJuOw0KICAgICAgICB9DQogICAgfQ0KICAgIGxldCBzZXJ2ZXIgPSBuZXcgU2VydmVyKGNtZCk7DQogICAgc2VydmVyLnJlcXVlc3QoZGF0YSk7DQp9DQpmdW5jdGlvbiBkb25lUG9wdXBEYXRhKGRhdGFUeXBlLCBpZHNTdHIpIHsNCiAgICBsZXQgaWRzID0gaWRzU3RyLnNwbGl0KCcsJyk7DQogICAgbGV0IGRpdiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJwb3B1cC1jdXN0b20iKTsNCiAgICBsZXQgaW5wdXRzID0gZGl2LmdldEVsZW1lbnRzQnlDbGFzc05hbWUoImNoYW5nZWQiKTsNCiAgICBpZHMuZm9yRWFjaChpZCA9PiB7DQogICAgICAgIGxldCBpbnB1dDsNCiAgICAgICAgaW5wdXQgPSBTRVJWRVJbInhlcGciXVsiZXBnTWFwcGluZyJdW2lkXTsNCiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBpbnB1dHMubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgICAgIGxldCBuYW1lOw0KICAgICAgICAgICAgbGV0IHZhbHVlOw0KICAgICAgICAgICAgc3dpdGNoIChpbnB1dHNbaV0udGFnTmFtZSkgew0KICAgICAgICAgICAgICAgIGNhc2UgIklOUFVUIjoNCiAgICAgICAgICAgICAgICAgICAgc3dpdGNoIChpbnB1dHNbaV0udHlwZSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAiY2hlY2tib3giOg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWUgPSBpbnB1dHNbaV0ubmFtZTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IGlucHV0c1tpXS5jaGVja2VkOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlucHV0W25hbWVdID0gdmFsdWU7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgICAgICAgICBjYXNlICJ0ZXh0IjoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lID0gaW5wdXRzW2ldLm5hbWU7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSBpbnB1dHNbaV0udmFsdWU7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5wdXRbbmFtZV0gPSB2YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBjYXNlICJTRUxFQ1QiOg0KICAgICAgICAgICAgICAgICAgICBuYW1lID0gaW5wdXRzW2ldLm5hbWU7DQogICAgICAgICAgICAgICAgICAgIHZhbHVlID0gaW5wdXRzW2ldLnZhbHVlOw0KICAgICAgICAgICAgICAgICAgICBpbnB1dFtuYW1lXSA9IHZhbHVlOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIHN3aXRjaCAobmFtZSkgew0KICAgICAgICAgICAgICAgIGNhc2UgInR2Zy1sb2dvIjoNCiAgICAgICAgICAgICAgICAgICAgLy8oZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpLmNoaWxkTm9kZXNbMl0uZmlyc3RDaGlsZCBhcyBIVE1MRWxlbWVudCkuc2V0QXR0cmlidXRlKCJzcmMiLCB2YWx1ZSkNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAieC1uYW1lIjoNCiAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpLmNoaWxkTm9kZXNbM10uZmlyc3RDaGlsZC5pbm5lckhUTUwgPSB2YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAieC1jYXRlZ29yeSI6DQogICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5jaGlsZE5vZGVzWzNdLmZpcnN0Q2hpbGQuY2xhc3NOYW1lID0gdmFsdWU7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgIngtZ3JvdXAtdGl0bGUiOg0KICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkuY2hpbGROb2Rlc1s1XS5maXJzdENoaWxkLmlubmVySFRNTCA9IHZhbHVlOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBjYXNlICJ4LXhtbHR2LWZpbGUiOg0KICAgICAgICAgICAgICAgICAgICBpZiAodmFsdWUgIT0gInhUZVZlIER1bW15IiAmJiB2YWx1ZSAhPSAiLSIpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlID0gZ2V0VmFsdWVGcm9tUHJvdmlkZXJGaWxlKHZhbHVlLCAieG1sdHYiLCAibmFtZSIpOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIGlmICh2YWx1ZSA9PSAiLSIpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGlucHV0WyJ4LWFjdGl2ZSJdID0gZmFsc2U7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpLmNoaWxkTm9kZXNbNl0uZmlyc3RDaGlsZC5pbm5lckhUTUwgPSB2YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAieC1tYXBwaW5nIjoNCiAgICAgICAgICAgICAgICAgICAgaWYgKHZhbHVlID09ICItIikgew0KICAgICAgICAgICAgICAgICAgICAgICAgaW5wdXRbIngtYWN0aXZlIl0gPSBmYWxzZTsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkuY2hpbGROb2Rlc1s3XS5maXJzdENoaWxkLmlubmVySFRNTCA9IHZhbHVlOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBjYXNlICJ4LXRpbWVzaGlmdCI6DQogICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5jaGlsZE5vZGVzWzhdLmZpcnN0Q2hpbGQuaW5uZXJIVE1MID0gdmFsdWU7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICB9DQogICAgICAgICAgICBjcmVhdGVTZWFyY2hPYmooKTsNCiAgICAgICAgICAgIHNlYXJjaEluTWFwcGluZygpOw0KICAgICAgICB9DQogICAgICAgIGlmIChpbnB1dFsieC1hY3RpdmUiXSA9PSBmYWxzZSkgew0KICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpLmNsYXNzTmFtZSA9ICJub3RBY3RpdmVFUEciOw0KICAgICAgICB9DQogICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpLmNsYXNzTmFtZSA9ICJhY3RpdmVFUEciOw0KICAgICAgICB9DQogICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5jaGlsZE5vZGVzWzJdLmZpcnN0Q2hpbGQuc2V0QXR0cmlidXRlKCJzcmMiLCBpbnB1dFsidHZnLWxvZ28iXSk7DQogICAgfSk7DQogICAgc2hvd0VsZW1lbnQoInBvcHVwIiwgZmFsc2UpOw0KICAgIHJldHVybjsNCn0NCmZ1bmN0aW9uIHNob3dQcmV2aWV3KGVsZW1lbnQpIHsNCiAgICBsZXQgZGl2ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm15U3RyZWFtc0JveCIpOw0KICAgIHN3aXRjaCAoZWxlbWVudCkgew0KICAgICAgICBjYXNlIGZhbHNlOg0KICAgICAgICAgICAgZGl2LmNsYXNzTmFtZSA9ICJub3RWaXNpYmxlIjsNCiAgICAgICAgICAgIHJldHVybjsNCiAgICB9DQogICAgbGV0IHN0cmVhbXMgPSBbImFjdGl2ZVN0cmVhbXMiLCAiaW5hY3RpdmVTdHJlYW1zIl07DQogICAgc3RyZWFtcy5mb3JFYWNoKHByZXZpZXcgPT4gew0KICAgICAgICBsZXQgdGFibGUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChwcmV2aWV3KTsNCiAgICAgICAgdGFibGUuaW5uZXJIVE1MID0gIiI7DQogICAgICAgIGxldCBvYmogPSBTRVJWRVJbImRhdGEiXVsiU3RyZWFtUHJldmlld1VJIl1bcHJldmlld107DQogICAgICAgIG9iai5mb3JFYWNoKGNoYW5uZWwgPT4gew0KICAgICAgICAgICAgbGV0IHRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVFIiKTsNCiAgICAgICAgICAgIGxldCB0ZEtleSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICBsZXQgdGRWYWwgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgdGRLZXkuY2xhc3NOYW1lID0gInRkS2V5IjsNCiAgICAgICAgICAgIHRkVmFsLmNsYXNzTmFtZSA9ICJ0ZFZhbCI7DQogICAgICAgICAgICBzd2l0Y2ggKHByZXZpZXcpIHsNCiAgICAgICAgICAgICAgICBjYXNlICJhY3RpdmVTdHJlYW1zIjoNCiAgICAgICAgICAgICAgICAgICAgdGRLZXkuaW5uZXJUZXh0ID0gIkNoYW5uZWw6ICgrKSI7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgImluYWN0aXZlU3RyZWFtcyI6DQogICAgICAgICAgICAgICAgICAgIHRkS2V5LmlubmVyVGV4dCA9ICJDaGFubmVsOiAoLSkiOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIHRkVmFsLmlubmVyVGV4dCA9IGNoYW5uZWw7DQogICAgICAgICAgICB0ci5hcHBlbmRDaGlsZCh0ZEtleSk7DQogICAgICAgICAgICB0ci5hcHBlbmRDaGlsZCh0ZFZhbCk7DQogICAgICAgICAgICB0YWJsZS5hcHBlbmRDaGlsZCh0cik7DQogICAgICAgIH0pOw0KICAgIH0pOw0KICAgIHNob3dFbGVtZW50KCJsb2FkaW5nIiwgZmFsc2UpOw0KICAgIGRpdi5jbGFzc05hbWUgPSAidmlzaWJsZSI7DQogICAgcmV0dXJuOw0KfQ0K" webUI["html/js/network_ts.js"] = "Y2xhc3MgU2VydmVyIHsNCiAgICBjb25zdHJ1Y3RvcihjbWQpIHsNCiAgICAgICAgdGhpcy5jbWQgPSBjbWQ7DQogICAgfQ0KICAgIHJlcXVlc3QoZGF0YSkgew0KICAgICAgICBpZiAoU0VSVkVSX0NPTk5FQ1RJT04gPT0gdHJ1ZSkgew0KICAgICAgICAgICAgcmV0dXJuOw0KICAgICAgICB9DQogICAgICAgIFNFUlZFUl9DT05ORUNUSU9OID0gdHJ1ZTsNCiAgICAgICAgaWYgKHRoaXMuY21kICE9ICJ1cGRhdGVMb2ciKSB7DQogICAgICAgICAgICBzaG93RWxlbWVudCgibG9hZGluZyIsIHRydWUpOw0KICAgICAgICAgICAgVU5ETyA9IG5ldyBPYmplY3QoKTsNCiAgICAgICAgfQ0KICAgICAgICBzd2l0Y2ggKHdpbmRvdy5sb2NhdGlvbi5wcm90b2NvbCkgew0KICAgICAgICAgICAgY2FzZSAiaHR0cDoiOg0KICAgICAgICAgICAgICAgIHRoaXMucHJvdG9jb2wgPSAid3M6Ly8iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiaHR0cHM6IjoNCiAgICAgICAgICAgICAgICB0aGlzLnByb3RvY29sID0gIndzczovLyI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIH0NCiAgICAgICAgdmFyIHVybCA9IHRoaXMucHJvdG9jb2wgKyB3aW5kb3cubG9jYXRpb24uaG9zdG5hbWUgKyAiOiIgKyB3aW5kb3cubG9jYXRpb24ucG9ydCArICIvZGF0YS8iICsgIj9Ub2tlbj0iICsgZ2V0Q29va2llKCJUb2tlbiIpOw0KICAgICAgICBkYXRhWyJjbWQiXSA9IHRoaXMuY21kOw0KICAgICAgICB2YXIgd3MgPSBuZXcgV2ViU29ja2V0KHVybCk7DQogICAgICAgIHdzLm9ub3BlbiA9IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgICAgIFdTX0FWQUlMQUJMRSA9IHRydWU7DQogICAgICAgICAgICB0aGlzLnNlbmQoSlNPTi5zdHJpbmdpZnkoZGF0YSkpOw0KICAgICAgICB9Ow0KICAgICAgICB3cy5vbmVycm9yID0gZnVuY3Rpb24gKHdzRXJyRXZ0KSB7DQogICAgICAgICAgICBjb25zb2xlLmxvZygiTm8gd2Vic29ja2V0IGNvbm5lY3Rpb24gdG8geFRlVmUgY291bGQgYmUgZXN0YWJsaXNoZWQuIENoZWNrIHlvdXIgbmV0d29yayBjb25maWd1cmF0aW9uLiIpOw0KICAgICAgICAgICAgU0VSVkVSX0NPTk5FQ1RJT04gPSBmYWxzZTsNCiAgICAgICAgICAgIGlmIChXU19BVkFJTEFCTEUgPT0gZmFsc2UpIHsNCiAgICAgICAgICAgICAgICBhbGVydCgiTm8gd2Vic29ja2V0IGNvbm5lY3Rpb24gdG8geFRlVmUgY291bGQgYmUgZXN0YWJsaXNoZWQuIENoZWNrIHlvdXIgbmV0d29yayBjb25maWd1cmF0aW9uLiIpOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9Ow0KICAgICAgICB3cy5vbm1lc3NhZ2UgPSBmdW5jdGlvbiAod3NNZXNzYWdlRXZ0KSB7DQogICAgICAgICAgICBTRVJWRVJfQ09OTkVDVElPTiA9IGZhbHNlOw0KICAgICAgICAgICAgc2hvd0VsZW1lbnQoImxvYWRpbmciLCBmYWxzZSk7DQogICAgICAgICAgICBjb25zdCByZXNwb25zZSA9IEpTT04ucGFyc2Uod3NNZXNzYWdlRXZ0LmRhdGEpOw0KICAgICAgICAgICAgaWYgKHJlc3BvbnNlLmhhc093blByb3BlcnR5KCJ0b2tlbiIpKSB7DQogICAgICAgICAgICAgICAgZG9jdW1lbnQuY29va2llID0gIlRva2VuPSIgKyByZXNwb25zZVsidG9rZW4iXTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGlmIChyZXNwb25zZVsic3RhdHVzIl0gPT0gZmFsc2UpIHsNCiAgICAgICAgICAgICAgICBhbGVydChyZXNwb25zZVsiZXJyIl0pOw0KICAgICAgICAgICAgICAgIHJldHVybjsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGlmIChyZXNwb25zZS5oYXNPd25Qcm9wZXJ0eSgnb3BlbkxpbmsnKSkgew0KICAgICAgICAgICAgICAgIHdpbmRvdy5sb2NhdGlvbiA9IHJlc3BvbnNlWydvcGVuTGluayddOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgaWYgKHJlc3BvbnNlLmhhc093blByb3BlcnR5KCJyZWxvYWQiKSkgew0KICAgICAgICAgICAgICAgIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGlmIChyZXNwb25zZS5oYXNPd25Qcm9wZXJ0eSgiYWxlcnQiKSkgew0KICAgICAgICAgICAgICAgIGFsZXJ0KHJlc3BvbnNlWyJhbGVydCJdKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGlmIChyZXNwb25zZS5oYXNPd25Qcm9wZXJ0eSgibG9nb1VSTCIpKSB7DQogICAgICAgICAgICAgICAgdmFyIGRpdiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjaGFubmVsLWljb24iKTsNCiAgICAgICAgICAgICAgICBkaXYudmFsdWUgPSByZXNwb25zZVsibG9nb1VSTCJdOw0KICAgICAgICAgICAgICAgIGRpdi5jbGFzc05hbWUgPSAiY2hhbmdlZCI7DQogICAgICAgICAgICAgICAgcmV0dXJuOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgc3dpdGNoIChkYXRhWyJjbWQiXSkgew0KICAgICAgICAgICAgICAgIGNhc2UgInVwZGF0ZUxvZyI6DQogICAgICAgICAgICAgICAgICAgIFNFUlZFUlsibG9nIl0gPSByZXNwb25zZVsibG9nIl07DQogICAgICAgICAgICAgICAgICAgIGlmIChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29udGVudF9sb2ciKSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgc2hvd0xvZ3MoZmFsc2UpOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIHJldHVybjsNCiAgICAgICAgICAgICAgICBkZWZhdWx0Og0KICAgICAgICAgICAgICAgICAgICBTRVJWRVIgPSBuZXcgT2JqZWN0KCk7DQogICAgICAgICAgICAgICAgICAgIFNFUlZFUiA9IHJlc3BvbnNlOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGlmIChyZXNwb25zZS5oYXNPd25Qcm9wZXJ0eSgib3Blbk1lbnUiKSkgew0KICAgICAgICAgICAgICAgIHZhciBtZW51ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQocmVzcG9uc2VbIm9wZW5NZW51Il0pOw0KICAgICAgICAgICAgICAgIG1lbnUuY2xpY2soKTsNCiAgICAgICAgICAgICAgICBzaG93RWxlbWVudCgicG9wdXAiLCBmYWxzZSk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBpZiAocmVzcG9uc2UuaGFzT3duUHJvcGVydHkoInJlbG9hZCIpKSB7DQogICAgICAgICAgICAgICAgbG9jYXRpb24ucmVsb2FkKCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBpZiAocmVzcG9uc2UuaGFzT3duUHJvcGVydHkoIndpemFyZCIpKSB7DQogICAgICAgICAgICAgICAgY3JlYXRlTGF5b3V0KCk7DQogICAgICAgICAgICAgICAgY29uZmlndXJhdGlvbldpemFyZFtyZXNwb25zZVsid2l6YXJkIl1dLmNyZWF0ZVdpemFyZCgpOw0KICAgICAgICAgICAgICAgIHJldHVybjsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGNyZWF0ZUxheW91dCgpOw0KICAgICAgICB9Ow0KICAgIH0NCn0NCmZ1bmN0aW9uIGdldENvb2tpZShuYW1lKSB7DQogICAgdmFyIHZhbHVlID0gIjsgIiArIGRvY3VtZW50LmNvb2tpZTsNCiAgICB2YXIgcGFydHMgPSB2YWx1ZS5zcGxpdCgiOyAiICsgbmFtZSArICI9Iik7DQogICAgaWYgKHBhcnRzLmxlbmd0aCA9PSAyKSB7DQogICAgICAgIHJldHVybiBwYXJ0cy5wb3AoKS5zcGxpdCgiOyIpLnNoaWZ0KCk7DQogICAgfQ0KfQ0K" webUI["html/js/settings_ts.js"] = "Y2xhc3MgU2V0dGluZ3NDYXRlZ29yeSB7DQogICAgY29uc3RydWN0b3IoKSB7DQogICAgICAgIHRoaXMuRG9jdW1lbnRJRCA9ICJjb250ZW50X3NldHRpbmdzIjsNCiAgICB9DQogICAgY3JlYXRlQ2F0ZWdvcnlIZWFkbGluZSh2YWx1ZSkgew0KICAgICAgICB2YXIgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIkg0Iik7DQogICAgICAgIGVsZW1lbnQuaW5uZXJIVE1MID0gdmFsdWU7DQogICAgICAgIHJldHVybiBlbGVtZW50Ow0KICAgIH0NCiAgICBjcmVhdGVIUigpIHsNCiAgICAgICAgdmFyIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJIUiIpOw0KICAgICAgICByZXR1cm4gZWxlbWVudDsNCiAgICB9DQogICAgY3JlYXRlU2V0dGluZ3Moc2V0dGluZ3NLZXkpIHsNCiAgICAgICAgdmFyIHNldHRpbmcgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJUUiIpOw0KICAgICAgICB2YXIgY29udGVudCA9IG5ldyBQb3B1cENvbnRlbnQoKTsNCiAgICAgICAgdmFyIGRhdGEgPSBTRVJWRVJbInNldHRpbmdzIl1bc2V0dGluZ3NLZXldOw0KICAgICAgICBzd2l0Y2ggKHNldHRpbmdzS2V5KSB7DQogICAgICAgICAgICAvLyBUZXh0IGlucHV0cw0KICAgICAgICAgICAgY2FzZSAidXBkYXRlIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLnVwZGF0ZS50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsICJ1cGRhdGUiLCBkYXRhLnRvU3RyaW5nKCkpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3suc2V0dGluZ3MudXBkYXRlLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJiYWNrdXAucGF0aCI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5iYWNrdXBQYXRoLnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgImJhY2t1cC5wYXRoIiwgZGF0YSk7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5zZXR0aW5ncy5iYWNrdXBQYXRoLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ0ZW1wLnBhdGgiOg0KICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MudGVtcFBhdGgudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCAidGVtcC5wYXRoIiwgZGF0YSk7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5zZXR0aW5ncy50bXBQYXRoLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ1c2VyLmFnZW50IjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLnVzZXJBZ2VudC50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsICJ1c2VyLmFnZW50IiwgZGF0YSk7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5zZXR0aW5ncy51c2VyQWdlbnQucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImJ1ZmZlci50aW1lb3V0IjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmJ1ZmZlclRpbWVvdXQudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCAiYnVmZmVyLnRpbWVvdXQiLCBkYXRhKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnNldHRpbmdzLmJ1ZmZlclRpbWVvdXQucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImZmbXBlZy5wYXRoIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmZmbXBlZ1BhdGgudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCAiZmZtcGVnLnBhdGgiLCBkYXRhKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnNldHRpbmdzLmZmbXBlZ1BhdGgucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImZmbXBlZy5vcHRpb25zIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmZmbXBlZ09wdGlvbnMudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCAiZmZtcGVnLm9wdGlvbnMiLCBkYXRhKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnNldHRpbmdzLmZmbXBlZ09wdGlvbnMucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInZsYy5wYXRoIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLnZsY1BhdGgudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCAidmxjLnBhdGgiLCBkYXRhKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnNldHRpbmdzLnZsY1BhdGgucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInZsYy5vcHRpb25zIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLnZsY09wdGlvbnMudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCAidmxjLm9wdGlvbnMiLCBkYXRhKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnNldHRpbmdzLnZsY09wdGlvbnMucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIC8vIENoZWNrYm94ZXMNCiAgICAgICAgICAgIGNhc2UgInRsc01vZGUiOg0KICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MudGxzTW9kZS50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChzZXR0aW5nc0tleSk7DQogICAgICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGE7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiYXV0aGVudGljYXRpb24ud2ViIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmF1dGhlbnRpY2F0aW9uV0VCLnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KHNldHRpbmdzS2V5KTsNCiAgICAgICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJhdXRoZW50aWNhdGlvbi5wbXMiOg0KICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MuYXV0aGVudGljYXRpb25QTVMudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goc2V0dGluZ3NLZXkpOw0KICAgICAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImF1dGhlbnRpY2F0aW9uLm0zdSI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5hdXRoZW50aWNhdGlvbk0zVS50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChzZXR0aW5nc0tleSk7DQogICAgICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGE7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiYXV0aGVudGljYXRpb24ueG1sIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmF1dGhlbnRpY2F0aW9uWE1MLnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KHNldHRpbmdzS2V5KTsNCiAgICAgICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJhdXRoZW50aWNhdGlvbi5hcGkiOg0KICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MuYXV0aGVudGljYXRpb25BUEkudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goc2V0dGluZ3NLZXkpOw0KICAgICAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImZpbGVzLnVwZGF0ZSI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5maWxlc1VwZGF0ZS50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChzZXR0aW5nc0tleSk7DQogICAgICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGE7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiY2FjaGUuaW1hZ2VzIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmNhY2hlSW1hZ2VzLnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KHNldHRpbmdzS2V5KTsNCiAgICAgICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ4ZXBnLnJlcGxhY2UubWlzc2luZy5pbWFnZXMiOg0KICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MucmVwbGFjZUVtcHR5SW1hZ2VzLnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KHNldHRpbmdzS2V5KTsNCiAgICAgICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJzdG9yZUJ1ZmZlckluUkFNIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLnN0b3JlQnVmZmVySW5SQU0udGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goc2V0dGluZ3NLZXkpOw0KICAgICAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInh0ZXZlQXV0b1VwZGF0ZSI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy54dGV2ZUF1dG9VcGRhdGUudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goc2V0dGluZ3NLZXkpOw0KICAgICAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImFwaSI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5hcGkudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goc2V0dGluZ3NLZXkpOw0KICAgICAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIC8vIFNlbGVjdA0KICAgICAgICAgICAgY2FzZSAiaG9zdElQIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmhvc3RJUC50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIHRleHQgPSBTRVJWRVJbImlwQWRkcmVzc2VzVjRIb3N0Il07DQogICAgICAgICAgICAgICAgdmFyIHZhbHVlcyA9IFNFUlZFUlsiaXBBZGRyZXNzZXNWNEhvc3QiXTsNCiAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCBkYXRhLCBzZXR0aW5nc0tleSk7DQogICAgICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKHNlbGVjdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ0dW5lciI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy50dW5lci50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIHRleHQgPSBuZXcgQXJyYXkoKTsNCiAgICAgICAgICAgICAgICB2YXIgdmFsdWVzID0gbmV3IEFycmF5KCk7DQogICAgICAgICAgICAgICAgZm9yICh2YXIgaSA9IDE7IGkgPD0gMTAwOyBpKyspIHsNCiAgICAgICAgICAgICAgICAgICAgdGV4dC5wdXNoKGkpOw0KICAgICAgICAgICAgICAgICAgICB2YWx1ZXMucHVzaChpKTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgdmFyIHNlbGVjdCA9IGNvbnRlbnQuY3JlYXRlU2VsZWN0KHRleHQsIHZhbHVlcywgZGF0YSwgc2V0dGluZ3NLZXkpOw0KICAgICAgICAgICAgICAgIHNlbGVjdC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChzZWxlY3QpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiZXBnU291cmNlIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmVwZ1NvdXJjZS50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIHRleHQgPSBbIlBNUyIsICJYRVBHIl07DQogICAgICAgICAgICAgICAgdmFyIHZhbHVlcyA9IFsiUE1TIiwgIlhFUEciXTsNCiAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCBkYXRhLCBzZXR0aW5nc0tleSk7DQogICAgICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKHNlbGVjdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJiYWNrdXAua2VlcCI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5iYWNrdXBLZWVwLnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgdGV4dCA9IFsiNSIsICIxMCIsICIyMCIsICIzMCIsICI0MCIsICI1MCJdOw0KICAgICAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBbIjUiLCAiMTAiLCAiMjAiLCAiMzAiLCAiNDAiLCAiNTAiXTsNCiAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCBkYXRhLCBzZXR0aW5nc0tleSk7DQogICAgICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKHNlbGVjdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJidWZmZXIuc2l6ZS5rYiI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5idWZmZXJTaXplLnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgdGV4dCA9IFsiMC41IE1CIiwgIjEgTUIiLCAiMiBNQiIsICIzIE1CIiwgIjQgTUIiLCAiNSBNQiIsICI2IE1CIiwgIjcgTUIiLCAiOCBNQiJdOw0KICAgICAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBbIjUxMiIsICIxMDI0IiwgIjIwNDgiLCAiMzA3MiIsICI0MDk2IiwgIjUxMjAiLCAiNjE0NCIsICI3MTY4IiwgIjgxOTIiXTsNCiAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCBkYXRhLCBzZXR0aW5nc0tleSk7DQogICAgICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKHNlbGVjdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJidWZmZXIiOg0KICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3Muc3RyZWFtQnVmZmVyaW5nLnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgdGV4dCA9IFsie3suc2V0dGluZ3Muc3RyZWFtQnVmZmVyaW5nLmluZm9fZmFsc2V9fSIsICJ4VGVWZTogKHt7LnNldHRpbmdzLnN0cmVhbUJ1ZmZlcmluZy5pbmZvX3h0ZXZlfX0pIiwgIkZGbXBlZzogKHt7LnNldHRpbmdzLnN0cmVhbUJ1ZmZlcmluZy5pbmZvX2ZmbXBlZ319KSIsICJWTEM6ICh7ey5zZXR0aW5ncy5zdHJlYW1CdWZmZXJpbmcuaW5mb192bGN9fSkiXTsNCiAgICAgICAgICAgICAgICB2YXIgdmFsdWVzID0gWyItIiwgInh0ZXZlIiwgImZmbXBlZyIsICJ2bGMiXTsNCiAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCBkYXRhLCBzZXR0aW5nc0tleSk7DQogICAgICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKHNlbGVjdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ1ZHB4eSI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy51ZHB4eS50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsICJ1ZHB4eSIsIGRhdGEpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3suc2V0dGluZ3MudWRweHkucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgfQ0KICAgICAgICByZXR1cm4gc2V0dGluZzsNCiAgICB9DQogICAgY3JlYXRlRGVzY3JpcHRpb24oc2V0dGluZ3NLZXkpIHsNCiAgICAgICAgdmFyIGRlc2NyaXB0aW9uID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVFIiKTsNCiAgICAgICAgdmFyIHRleHQ7DQogICAgICAgIHN3aXRjaCAoc2V0dGluZ3NLZXkpIHsNCiAgICAgICAgICAgIGNhc2UgInRsc01vZGUiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MudGxzTW9kZS5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImF1dGhlbnRpY2F0aW9uLndlYiI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5hdXRoZW50aWNhdGlvbldFQi5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImF1dGhlbnRpY2F0aW9uLm0zdSI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5hdXRoZW50aWNhdGlvbk0zVS5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImF1dGhlbnRpY2F0aW9uLnBtcyI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5hdXRoZW50aWNhdGlvblBNUy5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImF1dGhlbnRpY2F0aW9uLnhtbCI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5hdXRoZW50aWNhdGlvblhNTC5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImF1dGhlbnRpY2F0aW9uLmFwaSI6DQogICAgICAgICAgICAgICAgaWYgKFNFUlZFUlsic2V0dGluZ3MiXVsiYXV0aGVudGljYXRpb24ud2ViIl0gPT0gdHJ1ZSkgew0KICAgICAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLmF1dGhlbnRpY2F0aW9uQVBJLmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInh0ZXZlQXV0b1VwZGF0ZSI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy54dGV2ZUF1dG9VcGRhdGUuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJiYWNrdXAua2VlcCI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5iYWNrdXBLZWVwLmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiYmFja3VwLnBhdGgiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MuYmFja3VwUGF0aC5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInRlbXAucGF0aCI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy50ZW1wUGF0aC5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImJ1ZmZlciI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5zdHJlYW1CdWZmZXJpbmcuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJidWZmZXIuc2l6ZS5rYiI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5idWZmZXJTaXplLmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAic3RvcmVCdWZmZXJJblJBTSI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5zdG9yZUJ1ZmZlckluUkFNLmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiYnVmZmVyLnRpbWVvdXQiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MuYnVmZmVyVGltZW91dC5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInVzZXIuYWdlbnQiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MudXNlckFnZW50LmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiZmZtcGVnLnBhdGgiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MuZmZtcGVnUGF0aC5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImZmbXBlZy5vcHRpb25zIjoNCiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLmZmbXBlZ09wdGlvbnMuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ2bGMucGF0aCI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy52bGNQYXRoLmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAidmxjLm9wdGlvbnMiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MudmxjT3B0aW9ucy5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImVwZ1NvdXJjZSI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5lcGdTb3VyY2UuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJob3N0SVAiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MuaG9zdElQLmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAidHVuZXIiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MudHVuZXIuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ1cGRhdGUiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MudXBkYXRlLmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiYXBpIjoNCiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLmFwaS5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImZpbGVzLnVwZGF0ZSI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5maWxlc1VwZGF0ZS5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImNhY2hlLmltYWdlcyI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5jYWNoZUltYWdlcy5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInhlcGcucmVwbGFjZS5taXNzaW5nLmltYWdlcyI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5yZXBsYWNlRW1wdHlJbWFnZXMuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ1ZHB4eSI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy51ZHB4eS5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICAgICAgdGV4dCA9ICIiOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICB9DQogICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gIiI7DQogICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgdmFyIHByZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlBSRSIpOw0KICAgICAgICBwcmUuaW5uZXJIVE1MID0gdGV4dDsNCiAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChwcmUpOw0KICAgICAgICBkZXNjcmlwdGlvbi5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICBkZXNjcmlwdGlvbi5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgcmV0dXJuIGRlc2NyaXB0aW9uOw0KICAgIH0NCn0NCmNsYXNzIFNldHRpbmdzQ2F0ZWdvcnlJdGVtIGV4dGVuZHMgU2V0dGluZ3NDYXRlZ29yeSB7DQogICAgY29uc3RydWN0b3IoaGVhZGxpbmUsIHNldHRpbmdzS2V5cykgew0KICAgICAgICBzdXBlcigpOw0KICAgICAgICB0aGlzLmhlYWRsaW5lID0gaGVhZGxpbmU7DQogICAgICAgIHRoaXMuc2V0dGluZ3NLZXlzID0gc2V0dGluZ3NLZXlzOw0KICAgIH0NCiAgICBjcmVhdGVDYXRlZ29yeSgpIHsNCiAgICAgICAgdmFyIGhlYWRsaW5lID0gdGhpcy5jcmVhdGVDYXRlZ29yeUhlYWRsaW5lKHRoaXMuaGVhZGxpbmUpOw0KICAgICAgICB2YXIgc2V0dGluZ3NLZXlzID0gdGhpcy5zZXR0aW5nc0tleXM7DQogICAgICAgIHZhciBkb2MgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCh0aGlzLkRvY3VtZW50SUQpOw0KICAgICAgICBkb2MuYXBwZW5kQ2hpbGQoaGVhZGxpbmUpOw0KICAgICAgICAvLyBDcmVhdGUgYSB0YWJsZSBmb3IgdGhlIGNhdGVnb3J5DQogICAgICAgIHZhciB0YWJsZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlRBQkxFIik7DQogICAgICAgIHZhciBrZXlzID0gc2V0dGluZ3NLZXlzLnNwbGl0KCIsIik7DQogICAgICAgIGtleXMuZm9yRWFjaChzZXR0aW5nc0tleSA9PiB7DQogICAgICAgICAgICBzd2l0Y2ggKHNldHRpbmdzS2V5KSB7DQogICAgICAgICAgICAgICAgY2FzZSAiYXV0aGVudGljYXRpb24ucG1zIjoNCiAgICAgICAgICAgICAgICBjYXNlICJhdXRoZW50aWNhdGlvbi5tM3UiOg0KICAgICAgICAgICAgICAgIGNhc2UgImF1dGhlbnRpY2F0aW9uLnhtbCI6DQogICAgICAgICAgICAgICAgY2FzZSAiYXV0aGVudGljYXRpb24uYXBpIjoNCiAgICAgICAgICAgICAgICAgICAgaWYgKFNFUlZFUlsic2V0dGluZ3MiXVsiYXV0aGVudGljYXRpb24ud2ViIl0gPT0gZmFsc2UpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgICAgICAgICAgdmFyIGl0ZW0gPSB0aGlzLmNyZWF0ZVNldHRpbmdzKHNldHRpbmdzS2V5KTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGRlc2NyaXB0aW9uID0gdGhpcy5jcmVhdGVEZXNjcmlwdGlvbihzZXR0aW5nc0tleSk7DQogICAgICAgICAgICAgICAgICAgIHRhYmxlLmFwcGVuZENoaWxkKGl0ZW0pOw0KICAgICAgICAgICAgICAgICAgICB0YWJsZS5hcHBlbmRDaGlsZChkZXNjcmlwdGlvbik7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9KTsNCiAgICAgICAgZG9jLmFwcGVuZENoaWxkKHRhYmxlKTsNCiAgICAgICAgZG9jLmFwcGVuZENoaWxkKHRoaXMuY3JlYXRlSFIoKSk7DQogICAgfQ0KfQ0KZnVuY3Rpb24gc2hvd1NldHRpbmdzKCkgew0KICAgIGZvciAobGV0IGkgPSAwOyBpIDwgc2V0dGluZ3NDYXRlZ29yeS5sZW5ndGg7IGkrKykgew0KICAgICAgICBzZXR0aW5nc0NhdGVnb3J5W2ldLmNyZWF0ZUNhdGVnb3J5KCk7DQogICAgfQ0KfQ0KZnVuY3Rpb24gc2F2ZVNldHRpbmdzKCkgew0KICAgIHZhciBjbWQgPSAic2F2ZVNldHRpbmdzIjsNCiAgICB2YXIgZGl2ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnRlbnRfc2V0dGluZ3MiKTsNCiAgICB2YXIgc2V0dGluZ3MgPSBkaXYuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSgiY2hhbmdlZCIpOw0KICAgIHZhciBuZXdTZXR0aW5ncyA9IG5ldyBPYmplY3QoKTsNCiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHNldHRpbmdzLmxlbmd0aDsgaSsrKSB7DQogICAgICAgIHZhciBuYW1lOw0KICAgICAgICB2YXIgdmFsdWU7DQogICAgICAgIHN3aXRjaCAoc2V0dGluZ3NbaV0udGFnTmFtZSkgew0KICAgICAgICAgICAgY2FzZSAiSU5QVVQiOg0KICAgICAgICAgICAgICAgIHN3aXRjaCAoc2V0dGluZ3NbaV0udHlwZSkgew0KICAgICAgICAgICAgICAgICAgICBjYXNlICJjaGVja2JveCI6DQogICAgICAgICAgICAgICAgICAgICAgICBuYW1lID0gc2V0dGluZ3NbaV0ubmFtZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlID0gc2V0dGluZ3NbaV0uY2hlY2tlZDsNCiAgICAgICAgICAgICAgICAgICAgICAgIG5ld1NldHRpbmdzW25hbWVdID0gdmFsdWU7DQogICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICAgICAgY2FzZSAidGV4dCI6DQogICAgICAgICAgICAgICAgICAgICAgICBuYW1lID0gc2V0dGluZ3NbaV0ubmFtZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlID0gc2V0dGluZ3NbaV0udmFsdWU7DQogICAgICAgICAgICAgICAgICAgICAgICBzd2l0Y2ggKG5hbWUpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYXNlICJ1cGRhdGUiOg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IHZhbHVlLnNwbGl0KCIsIik7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlID0gdmFsdWUuZmlsdGVyKGZ1bmN0aW9uIChlKSB7IHJldHVybiBlOyB9KTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAiYnVmZmVyLnRpbWVvdXQiOg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IHBhcnNlRmxvYXQodmFsdWUpOw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgbmV3U2V0dGluZ3NbbmFtZV0gPSB2YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgIlNFTEVDVCI6DQogICAgICAgICAgICAgICAgbmFtZSA9IHNldHRpbmdzW2ldLm5hbWU7DQogICAgICAgICAgICAgICAgdmFsdWUgPSBzZXR0aW5nc1tpXS52YWx1ZTsNCiAgICAgICAgICAgICAgICAvLyBJZiB0aGUgdmFsdWUgaXMgYSBudW1iZXIsIHN0b3JlIGl0IGFzIGEgbnVtYmVyDQogICAgICAgICAgICAgICAgaWYgKGlzTmFOKHZhbHVlKSkgew0KICAgICAgICAgICAgICAgICAgICBuZXdTZXR0aW5nc1tuYW1lXSA9IHZhbHVlOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICAgICAgbmV3U2V0dGluZ3NbbmFtZV0gPSBwYXJzZUludCh2YWx1ZSk7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICB9DQogICAgfQ0KICAgIHZhciBkYXRhID0gbmV3IE9iamVjdCgpOw0KICAgIGRhdGFbInNldHRpbmdzIl0gPSBuZXdTZXR0aW5nczsNCiAgICB2YXIgc2VydmVyID0gbmV3IFNlcnZlcihjbWQpOw0KICAgIHNlcnZlci5yZXF1ZXN0KGRhdGEpOw0KfQ0K" diff --git a/ts/logs_ts.ts b/ts/logs_ts.ts index a980d3e..33a8d00 100644 --- a/ts/logs_ts.ts +++ b/ts/logs_ts.ts @@ -3,6 +3,7 @@ class Log { createLog(entry:string):any { var element = document.createElement("PRE"); + entry = String(entry); if (entry.indexOf("WARNING") != -1) { element.className = "warningMsg" From d29330cba7be728255c4474b374b4f9d68720a3b Mon Sep 17 00:00:00 2001 From: SCP002 Date: Sun, 1 May 2022 23:27:00 +0300 Subject: [PATCH 103/189] Add updating of channel by name based on regex. Closes #38 --- html/css/screen.css | 3 ++- html/js/base_ts.js | 2 +- html/js/menu_ts.js | 48 ++++++++++++++++++++++++++++++------- html/lang/en.json | 13 ++++++++++ src/screen.go | 2 ++ src/struct-system.go | 56 +++++++++++++++++++++++--------------------- src/webUI.go | 8 +++---- src/xepg.go | 45 +++++++++++++++++++++++++++++------ ts/base_ts.ts | 2 +- ts/menu_ts.ts | 53 ++++++++++++++++++++++++++++++++++------- 10 files changed, 173 insertions(+), 59 deletions(-) diff --git a/html/css/screen.css b/html/css/screen.css index 3e970af..80f2532 100644 --- a/html/css/screen.css +++ b/html/css/screen.css @@ -356,6 +356,7 @@ tbody { width: 100%; z-index: 100; height: 100%; + overflow: scroll; } #mapping-detail, #user-detail, #file-detail, #popup-custom { @@ -364,7 +365,7 @@ tbody { margin-left: auto; margin-right: auto; - max-width: 600px; + max-width: 800px; background-color: #222; padding: 10px; overflow:auto; diff --git a/html/js/base_ts.js b/html/js/base_ts.js index 1aaea3a..264a5f3 100644 --- a/html/js/base_ts.js +++ b/html/js/base_ts.js @@ -209,7 +209,7 @@ function createSearchObj() { SEARCH_MAPPING = new Object(); var data = SERVER["xepg"]["epgMapping"]; var channels = getOwnObjProps(data); - var channelKeys = ["x-active", "x-channelID", "x-name", "_file.m3u.name", "x-group-title", "x-xmltv-file"]; + var channelKeys = ["x-active", "x-channelID", "x-name", "updateChannelNameRegex", "_file.m3u.name", "x-group-title", "x-xmltv-file"]; channels.forEach(id => { channelKeys.forEach(key => { if (key == "x-active") { diff --git a/html/js/menu_ts.js b/html/js/menu_ts.js index 3d8191c..e2edd46 100644 --- a/html/js/menu_ts.js +++ b/html/js/menu_ts.js @@ -47,7 +47,7 @@ class MainMenuItem extends MainMenu { this.tableHeader = ["{{.users.table.username}}", "{{.users.table.password}}", "{{.users.table.web}}", "{{.users.table.pms}}", "{{.users.table.m3u}}", "{{.users.table.xml}}", "{{.users.table.api}}"]; break; case "mapping": - this.tableHeader = ["BULK", "{{.mapping.table.chNo}}", "{{.mapping.table.logo}}", "{{.mapping.table.channelName}}", "{{.mapping.table.playlist}}", "{{.mapping.table.groupTitle}}", "{{.mapping.table.xmltvFile}}", "{{.mapping.table.xmltvID}}", "{{.mapping.table.timeshift}}"]; + this.tableHeader = ["BULK", "{{.mapping.table.chNo}}", "{{.mapping.table.logo}}", "{{.mapping.table.channelName}}", "{{.mapping.table.updateChannelNameRegex}}", "{{.mapping.table.playlist}}", "{{.mapping.table.groupTitle}}", "{{.mapping.table.xmltvFile}}", "{{.mapping.table.xmltvID}}", "{{.mapping.table.timeshift}}"]; break; } } @@ -354,6 +354,15 @@ class Content { td.setAttribute('onclick', 'javascript: openPopUp("mapping", this)'); td.id = key; tr.appendChild(td); + // Update channel name regex + var cell = new Cell(); + cell.child = true; + cell.childType = "P"; + cell.value = data[key]["update-channel-name-regex"]; + var td = cell.createCell(); + td.setAttribute('onclick', 'javascript: openPopUp("mapping", this)'); + td.id = key; + tr.appendChild(td); // Playlist var cell = new Cell(); cell.child = true; @@ -614,17 +623,21 @@ class ShowContent extends Content { cell.onclick = true; cell.onclickFunction = "javascript: sortTable(3);"; } - if (element == "{{.mapping.table.playlist}}") { + if (element == "{{.mapping.table.updateChannelNameRegex}}") { cell.onclick = true; cell.onclickFunction = "javascript: sortTable(4);"; } - if (element == "{{.mapping.table.groupTitle}}") { + if (element == "{{.mapping.table.playlist}}") { cell.onclick = true; cell.onclickFunction = "javascript: sortTable(5);"; } + if (element == "{{.mapping.table.groupTitle}}") { + cell.onclick = true; + cell.onclickFunction = "javascript: sortTable(6);"; + } if (element == "{{.mapping.table.timeshift}}") { cell.onclick = true; - cell.onclickFunction = "javascript: sortTable(8);"; + cell.onclickFunction = "javascript: sortTable(9);"; } } if (menuKey == "filter") { @@ -1292,7 +1305,7 @@ function openPopUp(dataType, element) { input.setAttribute("placeholder", "{{.mapping.description.placeholder}}"); input.setAttribute("onchange", "javascript: this.className = 'changed'"); content.appendRow("{{.mapping.description.title}}", input); - // Update the channel name + // Update the channel x-name if (data.hasOwnProperty("_uuid.key")) { if (data["_uuid.key"] != "") { var dbKey = "x-update-channel-name"; @@ -1302,6 +1315,20 @@ function openPopUp(dataType, element) { content.appendRow("{{.mapping.updateChannelName.title}}", input); } } + // Channel name regex for updating the channel name + var dbKey = "update-channel-name-regex"; + var input = content.createInput("text", dbKey, data[dbKey]); + input.setAttribute("placeholder", "{{.mapping.updateChannelNameRegex.placeholder}}"); + input.setAttribute("onchange", "javascript: this.className = 'changed'"); + content.appendRow("{{.mapping.updateChannelNameRegex.title}}", input); + content.description("{{.mapping.updateChannelNameRegex.description}}"); + // Channel group regex for updating the channel name + var dbKey = "update-channel-name-by-group-regex"; + var input = content.createInput("text", dbKey, data[dbKey]); + input.setAttribute("placeholder", "{{.mapping.updateChannelNameByGroupRegex.placeholder}}"); + input.setAttribute("onchange", "javascript: this.className = 'changed'"); + content.appendRow("{{.mapping.updateChannelNameByGroupRegex.title}}", input); + content.description("{{.mapping.updateChannelNameByGroupRegex.description}}"); // Logo URL (Channel) var dbKey = "tvg-logo"; var input = content.createInput("text", dbKey, data[dbKey]); @@ -1735,8 +1762,11 @@ function donePopupData(dataType, idsStr) { case "x-category": document.getElementById(id).childNodes[3].firstChild.className = value; break; + case "update-channel-name-regex": + document.getElementById(id).childNodes[4].firstChild.innerHTML = value; + break; case "x-group-title": - document.getElementById(id).childNodes[5].firstChild.innerHTML = value; + document.getElementById(id).childNodes[6].firstChild.innerHTML = value; break; case "x-xmltv-file": if (value != "xTeVe Dummy" && value != "-") { @@ -1745,16 +1775,16 @@ function donePopupData(dataType, idsStr) { if (value == "-") { input["x-active"] = false; } - document.getElementById(id).childNodes[6].firstChild.innerHTML = value; + document.getElementById(id).childNodes[7].firstChild.innerHTML = value; break; case "x-mapping": if (value == "-") { input["x-active"] = false; } - document.getElementById(id).childNodes[7].firstChild.innerHTML = value; + document.getElementById(id).childNodes[8].firstChild.innerHTML = value; break; case "x-timeshift": - document.getElementById(id).childNodes[8].firstChild.innerHTML = value; + document.getElementById(id).childNodes[9].firstChild.innerHTML = value; break; default: } diff --git a/html/lang/en.json b/html/lang/en.json index 6c7ee56..a79a5ac 100644 --- a/html/lang/en.json +++ b/html/lang/en.json @@ -226,6 +226,7 @@ "chNo": "Ch. No.", "logo": "Logo", "channelName": "Channel Name", + "updateChannelNameRegex": "Upd. Rx.", "playlist": "Playlist", "groupTitle": "Group Title", "xmltvFile": "XMLTV File", @@ -256,6 +257,18 @@ "placeholder": "", "description": "" }, + "updateChannelNameRegex": + { + "title": "Channel name update regex", + "placeholder": "For example ^PPV.?1.*", + "description": "On update, if any new channel name matches this regex, rename current channel to the first matching name" + }, + "updateChannelNameByGroupRegex": + { + "title": "Only by group regex", + "placeholder": "", + "description": "Rename this channel only if current user-defined group matches this regex" + }, "updateChannelGroup": { "title": "Update Channel Group", diff --git a/src/screen.go b/src/screen.go index fe012d9..89918b4 100644 --- a/src/screen.go +++ b/src/screen.go @@ -255,6 +255,8 @@ func getErrMsg(errCode int) (errMsg string) { errMsg = fmt.Sprintf("Web server could not be stopped.") case 1017: errMsg = fmt.Sprintf("Web server could not be started in TLS mode, fallback to default.") + case 1018: + errMsg = fmt.Sprintf("Failed to compile channel name update regex") case 1020: errMsg = fmt.Sprintf("Data could not be saved, invalid keyword") diff --git a/src/struct-system.go b/src/struct-system.go index df7d6b2..ebc7b31 100644 --- a/src/struct-system.go +++ b/src/struct-system.go @@ -183,33 +183,35 @@ type Filter struct { // XEPGChannelStruct : XEPG Structure type XEPGChannelStruct struct { - FileM3UID string `json:"_file.m3u.id,required"` - FileM3UName string `json:"_file.m3u.name,required"` - FileM3UPath string `json:"_file.m3u.path,required"` - GroupTitle string `json:"group-title,required"` - Name string `json:"name,required"` - TvgID string `json:"tvg-id,required"` - TvgLogo string `json:"tvg-logo,required"` - TvgName string `json:"tvg-name,required"` - TvgShift string `json:"tvg-shift,required"` - URL string `json:"url,required"` - UUIDKey string `json:"_uuid.key,required"` - UUIDValue string `json:"_uuid.value,omitempty"` - Values string `json:"_values,required"` - XActive bool `json:"x-active,required"` - XCategory string `json:"x-category,required"` - XChannelID string `json:"x-channelID,required"` - XEPG string `json:"x-epg,required"` - XGroupTitle string `json:"x-group-title,required"` - XMapping string `json:"x-mapping,required"` - XmltvFile string `json:"x-xmltv-file,required"` - XName string `json:"x-name,required"` - XUpdateChannelIcon bool `json:"x-update-channel-icon,required"` - XUpdateChannelName bool `json:"x-update-channel-name,required"` - XUpdateChannelGroup bool `json:"x-update-channel-group,required"` - XDescription string `json:"x-description,required"` - XTimeshift string `json:"x-timeshift,required"` - DefaultMissingEPG string `json:"x-default-missing-epg,required"` + FileM3UID string `json:"_file.m3u.id,required"` + FileM3UName string `json:"_file.m3u.name,required"` + FileM3UPath string `json:"_file.m3u.path,required"` + GroupTitle string `json:"group-title,required"` + Name string `json:"name,required"` + TvgID string `json:"tvg-id,required"` + TvgLogo string `json:"tvg-logo,required"` + TvgName string `json:"tvg-name,required"` + TvgShift string `json:"tvg-shift,required"` + UpdateChannelNameRegex string `json:"update-channel-name-regex,required"` + UpdateChannelNameByGroupRegex string `json:"update-channel-name-by-group-regex,required"` + URL string `json:"url,required"` + UUIDKey string `json:"_uuid.key,required"` + UUIDValue string `json:"_uuid.value,omitempty"` + Values string `json:"_values,required"` + XActive bool `json:"x-active,required"` + XCategory string `json:"x-category,required"` + XChannelID string `json:"x-channelID,required"` + XEPG string `json:"x-epg,required"` + XGroupTitle string `json:"x-group-title,required"` + XMapping string `json:"x-mapping,required"` + XmltvFile string `json:"x-xmltv-file,required"` + XName string `json:"x-name,required"` + XUpdateChannelIcon bool `json:"x-update-channel-icon,required"` + XUpdateChannelName bool `json:"x-update-channel-name,required"` + XUpdateChannelGroup bool `json:"x-update-channel-group,required"` + XDescription string `json:"x-description,required"` + XTimeshift string `json:"x-timeshift,required"` + DefaultMissingEPG string `json:"x-default-missing-epg,required"` } // M3UChannelStructXEPG : M3U Structure for XEPG diff --git a/src/webUI.go b/src/webUI.go index f1ee075..498c7a6 100644 --- a/src/webUI.go +++ b/src/webUI.go @@ -7,7 +7,7 @@ func loadHTMLMap() { webUI["html/configuration.html"] = "PCFkb2N0eXBlIGh0bWw+DQo8aHRtbD4NCiAgPGhlYWQ+DQogICAgPG1ldGEgY2hhcnNldD0idXRmLTgiPg0KICAgIDxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgsIGluaXRpYWwtc2NhbGU9MS4wIiAvPiANCiAgICA8dGl0bGU+eFRlVmU8L3RpdGxlPg0KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iY3NzL3NjcmVlbi5jc3MiIHR5cGU9InRleHQvY3NzIj4NCiAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9ImNzcy9iYXNlLmNzcyIgdHlwZT0idGV4dC9jc3MiPg0KICAgIDxzY3JpcHQgbGFuZ3VhZ2U9ImphdmFzY3JpcHQiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJqcy9jb25maWd1cmF0aW9uX3RzLmpzIj48L3NjcmlwdD4NCiAgICA8c2NyaXB0IGxhbmd1YWdlPSJqYXZhc2NyaXB0IiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ianMvbmV0d29ya190cy5qcyI+PC9zY3JpcHQ+DQogICAgPHNjcmlwdCBsYW5ndWFnZT0iamF2YXNjcmlwdCIgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9ImpzL21lbnVfdHMuanMiPjwvc2NyaXB0Pg0KICAgIDxzY3JpcHQgbGFuZ3VhZ2U9ImphdmFzY3JpcHQiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJqcy9zZXR0aW5nc190cy5qcyI+PC9zY3JpcHQ+DQogICAgPHNjcmlwdCBsYW5ndWFnZT0iamF2YXNjcmlwdCIgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9ImpzL2Jhc2VfdHMuanMiPjwvc2NyaXB0Pg0KICA8L2hlYWQ+DQoNCiAgICA8Ym9keSBvbmxvYWQ9ImphdmFzY3JpcHQ6IHJlYWR5Rm9yQ29uZmlndXJhdGlvbigwKTsiPg0KICAgICAgICAgIA0KICAgICAgPGRpdiBpZD0ibG9hZGluZyIgY2xhc3M9ImJsb2NrIj4NCiAgICAgICAgPGRpdiBjbGFzcz0ibG9hZGVyIj48L2Rpdj4NCiAgICAgIDwvZGl2Pg0KDQogICAgICA8ZGl2IGlkPSJoZWFkZXIiIGNsYXNzPSJpbWdDZW50ZXIiPjwvZGl2Pg0KICAgICAgPGRpdiBpZD0iYm94Ij4NCiAgICAgICAgDQogICAgICAgIDx0YWJsZSBpZD0iY2xpZW50SW5mbyIgY2xhc3M9InZpc2libGUiPg0KICAgICAgICAgIDx0cj4NCiAgICAgICAgICAgIDx0ZCBjbGFzcz0idGRLZXkiPlZlcnNpb246PC90ZD4NCiAgICAgICAgICAgIDx0ZCBpZD0idmVyc2lvbiIgY2xhc3M9InRkVmFsIj4mbmJzcDs8L3RkPg0KICAgICAgICAgICAgPHRkIGNsYXNzPSJ0ZEtleSI+T1M6PC90ZD4NCiAgICAgICAgICAgIDx0ZCBpZD0ib3MiIGNsYXNzPSJ0ZFZhbCI+Jm5ic3A7PC90ZD4NCiAgICAgICAgICA8L3RyPg0KICAgICAgICAgIDx0cj4NCiAgICAgICAgICAgIDx0ZCBjbGFzcz0idGRLZXkiPlVVSUQ6PC90ZD4NCiAgICAgICAgICAgIDx0ZCBpZD0idXVpZCIgY2xhc3M9InRkVmFsIj4mbmJzcDs8L3RkPg0KICAgICAgICAgICAgPHRkIGNsYXNzPSJ0ZEtleSI+QXJjaDo8L3RkPg0KICAgICAgICAgICAgPHRkIGlkPSJhcmNoIiBjbGFzcz0idGRWYWwiPiZuYnNwOzwvdGQ+DQogICAgICAgICAgPC90cj4NCiAgICAgICAgICA8dHI+DQogICAgICAgICAgICA8dGQgY2xhc3M9InRkS2V5Ij5TdHJlYW1zOjwvdGQ+DQogICAgICAgICAgICA8dGQgaWQ9InN0cmVhbXMiIGNsYXNzPSJ0ZFZhbCI+Jm5ic3A7PC90ZD4NCiAgICAgICAgICAgIDx0ZCBjbGFzcz0idGRLZXkiPkRWUjo8L3RkPg0KICAgICAgICAgICAgPHRkIGlkPSJEVlIiIGNsYXNzPSJ0ZFZhbCI+Jm5ic3A7PC90ZD4NCiAgICAgICAgICA8L3RyPg0KICAgICAgICA8L3RhYmxlPg0KICAgICAgICANCiAgICAgICAgPGRpdiBpZD0iaGVhZGxpbmUiPg0KICAgICAgICAgIDxoMSBpZD0iaGVhZC10ZXh0IiBjbGFzcz0iY2VudGVyIj5Db25maWd1cmF0aW9uPC9oMT4gICAgICANCiAgICAgICAgPC9kaXY+DQogICAgICAgIDxwIGlkPSJlcnIiIGNsYXNzPSJlcnJvck1zZyBjZW50ZXIiPjwvcD4gICANCiAgICAgICAgPGRpdiBpZD0iY29udGVudCI+DQogICAgICAgICAgICANCiAgICAgICAgPC9kaXY+DQogICAgICAgIDxkaXYgaWQ9ImJveC1mb290ZXIiPg0KICAgICAgICAgIDxpbnB1dCBpZD0ibmV4dCIgY2xhc3M9IiIgdHlwZT0iYnV0dG9uIiBuYW1lPSJuZXh0IiB2YWx1ZT0iTmV4dCIgb25jbGljaz0iamF2YXNjcmlwdDogc2F2ZVdpemFyZCgpOyI+DQogICAgICAgIDwvZGl2Pg0KICAgICAgPC9kaXY+DQogICAgPC9ib2R5Pg0KPC9odG1sPg==" webUI["html/create-first-user.html"] = "PCFkb2N0eXBlIGh0bWw+DQo8aHRtbD4NCiAgPGhlYWQ+DQogICAgPG1ldGEgY2hhcnNldD0idXRmLTgiPg0KICAgIDxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgsIGluaXRpYWwtc2NhbGU9MS4wIiAvPiANCiAgICA8dGl0bGU+eFRlVmU8L3RpdGxlPg0KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iY3NzL3NjcmVlbi5jc3MiIHR5cGU9InRleHQvY3NzIj4NCiAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9ImNzcy9iYXNlLmNzcyIgdHlwZT0idGV4dC9jc3MiPg0KICAgIDxzY3JpcHQgbGFuZ3VhZ2U9ImphdmFzY3JpcHQiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJqcy9uZXR3b3JrX3RzLmpzIj48L3NjcmlwdD4NCiAgICA8c2NyaXB0IGxhbmd1YWdlPSJqYXZhc2NyaXB0IiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ianMvYXV0aGVudGljYXRpb25fdHMuanMiPjwvc2NyaXB0Pg0KICA8L2hlYWQ+DQoNCiAgICA8Ym9keT4NCiAgICAgICAgICANCiAgICAgIDxkaXYgaWQ9ImhlYWRlciIgY2xhc3M9ImltZ0NlbnRlciI+PC9kaXY+DQoNCiAgICAgIDxkaXYgaWQ9ImJveCI+DQoNCiAgICAgICAgPGRpdiBpZD0iaGVhZGxpbmUiPg0KICAgICAgICAgIDxoMSBpZD0iaGVhZC10ZXh0IiBjbGFzcz0iY2VudGVyIj57ey5hY2NvdW50LmhlYWRsaW5lfX08L2gxPg0KICAgICAgICA8L2Rpdj4NCg0KICAgICAgICA8cCBpZD0iZXJyIiBjbGFzcz0iZXJyb3JNc2cgY2VudGVyIj48L3A+DQoNCiAgICAgICAgPGRpdiBpZD0iY29udGVudCI+DQoNCiAgICAgICAgICAgIDxmb3JtIGlkPSJhdXRoZW50aWNhdGlvbiIgYWN0aW9uPSIiIG1ldGhvZD0icG9zdCI+DQoNCiAgICAgICAgICAgICAgPGg1Pnt7LmFjY291bnQudXNlcm5hbWUudGl0bGV9fTo8L2g1Pg0KICAgICAgICAgICAgICA8aW5wdXQgaWQ9InVzZXJuYW1lIiB0eXBlPSJ0ZXh0IiBuYW1lPSJ1c2VybmFtZSIgcGxhY2Vob2xkZXI9IlVzZXJuYW1lIiB2YWx1ZT0iIj4NCiAgICAgICAgICAgICAgPGg1Pnt7LmFjY291bnQucGFzc3dvcmQudGl0bGV9fTo8L2g1Pg0KICAgICAgICAgICAgICA8aW5wdXQgaWQ9InBhc3N3b3JkIiB0eXBlPSJwYXNzd29yZCIgbmFtZT0icGFzc3dvcmQiIHBsYWNlaG9sZGVyPSJQYXNzd29yZCIgdmFsdWU9IiI+DQogICAgICAgICAgICAgIDxoNT57ey5hY2NvdW50LmNvbmZpcm0udGl0bGV9fTo8L2g1Pg0KICAgICAgICAgICAgICA8aW5wdXQgaWQ9ImNvbmZpcm0iICB0eXBlPSJwYXNzd29yZCIgbmFtZT0iY29uZmlybSIgIHBsYWNlaG9sZGVyPSJDb25maXJtIiB2YWx1ZT0iIj4NCiAgICAgICAgICAgICAgDQogICAgICAgICAgICA8L2Zvcm0+DQoNCiAgICAgICAgPC9kaXY+DQogICAgICAgIA0KICAgICAgICA8ZGl2IGlkPSJib3gtZm9vdGVyIj4NCiAgICAgICAgICA8aW5wdXQgaWQ9InN1Ym1pdCIgY2xhc3M9IiIgdHlwZT0iYnV0dG9uIiB2YWx1ZT0ie3suYnV0dG9uLmNyYWV0ZUFjY291bnR9fSIgb25jbGljaz0iamF2YXNjcmlwdDogbG9naW4oKTsiPg0KICAgICAgICA8L2Rpdj4NCiAgICAgIA0KICAgICAgICANCiAgICAgIDwvZGl2Pg0KICAgIDwvYm9keT4NCjwvaHRtbD4=" webUI["html/css/base.css"] = "KiB7DQogIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTsNCiAgLW1vei1hcHBlYXJhbmNlOiBub25lOw0KICAtbXMtYXBwZWFyYW5jZTogbm9uZTsNCiAgZm9udC1mYW1pbHk6ICJBcmlhbCIsIHNhbnMtc2VyaWY7DQogIGxldHRlci1zcGFjaW5nOiAycHg7IA0KfQ0KDQovKg0KOjotd2Via2l0LXNjcm9sbGJhciB7IA0KICAgIGRpc3BsYXk6IG5vbmU7IA0KfQ0KKi8NCg0KOjotd2Via2l0LXNjcm9sbGJhciB7DQogIHdpZHRoOiAxMnB4Ow0KICBoZWlnaHQ6IDEycHg7DQp9DQoNCiANCjo6LXdlYmtpdC1zY3JvbGxiYXItdHJhY2sgew0KICAtd2Via2l0LWJveC1zaGFkb3c6IGluc2V0IDAgMCA2cHggcmdiYSgwLDAsMCwwLjMpOyANCiAgYm9yZGVyLXJhZGl1czogNXB4Ow0KICAgIA0KfQ0KIA0KOjotd2Via2l0LXNjcm9sbGJhci10aHVtYiB7DQogIGJvcmRlci1yYWRpdXM6IDVweDsNCiAgLXdlYmtpdC1ib3gtc2hhZG93OiBpbnNldCAwIDAgNnB4IHJnYmEoMCwgMCwgMCwwLjYpOyANCiAgYmFja2dyb3VuZC1jb2xvcjogIzQ0NDsNCn0NCg0KOjotd2Via2l0LXNjcm9sbGJhci10aHVtYjpob3ZlciB7DQogIGJhY2tncm91bmQ6ICMzMzM7IA0KfQ0KDQo6Oi13ZWJraXQtc2Nyb2xsYmFyLWNvcm5lciB7IA0KICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsgDQp9DQoNCmEgew0KICBjb2xvcjogIzAwRTZGRjsNCn0NCg0KaHRtbCwgYm9keSB7DQogIGNvbG9yOiAjZmZmOw0KICBtYXJnaW46IDBweCBhdXRvOw0KICBoZWlnaHQ6IDEwMCU7DQogIGZvbnQtc2l6ZTogMTRweDsNCn0NCg0KaDIgew0KICBmb250LXNpemU6IDI0cHg7DQogIGxldHRlci1zcGFjaW5nOiAycHg7DQp9DQoNCmgzIHsNCiAgZm9udC1zaXplOiAyMnB4Ow0KICBsZXR0ZXItc3BhY2luZzogMXB4Ow0KfQ0KDQpoNCB7DQogIGZvbnQtc2l6ZTogMjBweDsNCiAgbGV0dGVyLXNwYWNpbmc6IDFweDsNCiAgbGluZS1oZWlnaHQ6IDEuNWVtOw0KDQp9DQoNCmg1IHsNCiAgZm9udC1zaXplOiAxNnB4Ow0KICBsZXR0ZXItc3BhY2luZzogMXB4Ow0KICBsaW5lLWhlaWdodDogMS4yZW07DQogIG1hcmdpbjogMjVweCAwcHggMTBweCAwcHg7DQp9DQoNCmhyIHsNCiAgYm9yZGVyOiAwOw0KICBoZWlnaHQ6IDFweDsNCiAgYmFja2dyb3VuZDogIzMzMzsNCiAgbWFyZ2luOiAxMHB4IDBweDsNCn0NCg0KcCB7DQogIG1hcmdpbjogMnB4Ow0KICBwYWRkaW5nOiAycHggNXB4Ow0KfQ0KDQpwcmUgew0KICBtYXJnaW46IDBweCAwcHggNXB4IDBweDsNCiAgZm9udC1zaXplOiAxMnB4Ow0KICBjb2xvcjogI2RkZDsNCiAgbGV0dGVyLXNwYWNpbmc6IDFweDsNCiAgd2hpdGUtc3BhY2U6IHByZS13cmFwOw0KICBmb250LWZhbWlseTogbW9ub3NwYWNlOyANCiAgZm9udC1zaXplOiAxMnB4OyANCiAgZm9udC1zdHlsZTogbm9ybWFsOyANCiAgZm9udC12YXJpYW50OiBub3JtYWw7IA0KICBsaW5lLWhlaWdodDogMS42ZW07IA0KfQ0KDQpsYWJlbCB7DQogIG1hcmdpbi1ib3R0b206IDIwcHg7DQogIGRpc3BsYXk6IGJsb2NrOw0KfQ0KDQpsaSB7DQogIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTsNCiAgYmFja2dyb3VuZC1jb2xvcjogIzExMTsNCiAgcGFkZGluZzogMTBweCAyMHB4Ow0KICBjdXJzb3I6IHBvaW50ZXI7DQogIGJvcmRlci1sZWZ0OiBzb2xpZCAycHggIzExMTsNCiAgdHJhbnNpdGlvbjogYWxsIDAuMzsNCn0NCg0KbGk6aG92ZXIgew0KICBib3JkZXItY29sb3I6ICMwMEU2RkYNCn0NCg0Kc2VsZWN0IHsNCiAgY3Vyc29yOiBwb2ludGVyOw0KICB3aWR0aDogY2FsYygxMDAlICsgMnB4KTsNCiAgYm9yZGVyOiBzb2xpZCAwcHggIzAwRTZGRjsNCiAgYm9yZGVyLXJhZGl1czogMHB4Ow0KICBvdXRsaW5lOiBub25lOw0KICBjb2xvcjogI2ZmZjsNCiAgcGFkZGluZzogOXB4IDEwcHg7DQogIGRpc3BsYXk6YmxvY2s7DQogIGJhY2tncm91bmQtY29sb3I6ICMzMzM7DQogIGZvbnQtc2l6ZTogMTRweDsNCiAgbWFyZ2luOiA1cHggMHB4IDVweCAwcHg7DQp9DQoNCnNlbGVjdDpmb2N1cyB7DQogIG91dGxpbmU6IG5vbmU7DQp9DQoNCmlucHV0IHsNCiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lOw0KICBtYXJnaW46IDVweCAwcHg7DQogIHBhZGRpbmc6IDIuNXB4IDEwcHg7DQogIG91dGxpbmU6IG5vbmU7DQogIGZvbnQtc2l6ZTogMTRweDsNCn0NCg0KaW5wdXRbdHlwZT1idXR0b25dLCBpbnB1dFt0eXBlPXN1Ym1pdF0gew0KICBjdXJzb3I6IHBvaW50ZXI7DQogIGJhY2tncm91bmQtY29sb3I6ICMwMDA7DQogIG1hcmdpbjogMTBweCAxMHB4Ow0KICBwYWRkaW5nOiAxMHB4IDI1cHg7DQogIGJvcmRlcjogc29saWQgMHB4Ow0KICBib3JkZXItY29sb3I6ICMwMDA7DQogIGJvcmRlci1yYWRpdXM6IDNweDsNCiAgb3V0bGluZTogbm9uZTsNCiAgY29sb3I6ICNmZmY7DQp9DQoNCmlucHV0W3R5cGU9YnV0dG9uXTpmb2N1cyB7IA0KICAgb3V0bGluZTogbm9uZTsNCn0NCg0KaW5wdXRbdHlwZT1idXR0b25dOmhvdmVyIHsNCiAgYmFja2dyb3VuZC1jb2xvcjogIzAwRTZGRjsNCiAgY29sb3I6ICMwMDA7DQp9DQoNCmlucHV0W3R5cGU9YnV0dG9uXTpob3Zlci5kZWxldGUgIHsNCiAgYmFja2dyb3VuZC1jb2xvcjogcmVkOw0KICBjb2xvcjogI2ZmZjsNCn0NCg0KaW5wdXRbdHlwZT10ZXh0XSwgaW5wdXRbdHlwZT1zZWFyY2hdLCBpbnB1dFt0eXBlPXBhc3N3b3JkXSB7DQogIGNvbG9yOiAjZmZmOw0KICB3aWR0aDogLXdlYmtpdC1jYWxjKDEwMCUgLSAwcHgpOw0KICB3aWR0aDogLW1vei1jYWxjKDEwMCUgLSAwcHgpOw0KICB3aWR0aDogY2FsYygxMDAlIC0gMHB4KTsNCiAgb3V0bGluZTogbm9uZTsNCiAgYm9yZGVyOiBzb2xpZCAxcHggdHJhbnNwYXJlbnQ7DQogIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50Ow0KICBib3JkZXItYm90dG9tLWNvbG9yOiAjNTU1Ow0KICBib3JkZXItcmFkaXVzOiAwcHg7DQogIHBhZGRpbmc6IDhweCAxMHB4Ow0KfQ0KDQppbnB1dFt0eXBlPSJjaGVja2JveCJdIHsNCiAgYm9yZGVyOiBzb2xpZCAxcHggIzAwRTZGRjsNCiAgYmFja2dyb3VuZC1jb2xvcjogIzMzMzsNCiAgaGVpZ2h0OiAyNXB4Ow0KICB3aWR0aDogMjVweDsNCiAgY3Vyc29yOiBwb2ludGVyOw0KICAvKg0KICAtd2Via2l0LWFwcGVhcmFuY2U6IGNoZWNrYm94Ow0KICAqLw0KfQ0KDQppbnB1dFt0eXBlPSJjaGVja2JveCJdOmNoZWNrZWQgew0KICBjb2xvcjogI2ZmZjsNCiAgYmFja2dyb3VuZC1jb2xvcjogIzAwRTZGRjsNCiAgLypkaXNwbGF5OiBpbmxpbmUtYmxvY2s7Ki8NCn0NCg0KaW5wdXRbdHlwZT0iY2hlY2tib3giXTpiZWZvcmUgew0KICBwb3NpdGlvbjogaW5pdGlhbDsNCiAgbGVmdDogMHB4Ow0KICBtYXJnaW4tbGVmdDogLTRweDsNCiAgY29udGVudDogIiAiOw0KfQ0KDQppbnB1dFt0eXBlPSJjaGVja2JveCJdOmNoZWNrZWQ6YmVmb3JlIHsNCiAgcG9zaXRpb246IGluaXRpYWw7DQogIGxlZnQ6IDBweDsNCiAgbWFyZ2luLWxlZnQ6IC0zcHg7DQogIGNvbnRlbnQ6ICLinJMiOw0KICBjb2xvcjogIzAwMDsNCn0NCg0KDQppbnB1dFt0eXBlPWJ1dHRvbl0uY2FuY2VsIHsNCiAgDQogIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50Ow0KICBib3JkZXItY29sb3I6IHJlZDsNCn0NCg0KaW5wdXRbdHlwZT1idXR0b25dLnNhdmV7DQogIGJhY2tncm91bmQtY29sb3I6ICMxMTE7DQogIGZsb2F0OiByaWdodDsNCn0NCg0KDQppbnB1dFt0eXBlPWJ1dHRvbl0uYmxhY2ssIGlucHV0W3R5cGU9c3VibWl0XS5ibGFja3sNCiAgYmFja2dyb3VuZC1jb2xvcjogIzAwMDsNCiAgYm9yZGVyLWNvbG9yOiAjMDAwOw0KfQ0KDQppbnB1dFt0eXBlPWJ1dHRvbl0uY2VudGVyew0KICBtYXJnaW4tcmlnaHQ6IGF1dG87DQogIG1hcmdpbi1sZWZ0OiBhdXRvOw0KICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDAwOw0KICBib3JkZXItY29sb3I6ICMwMDA7DQp9DQoNCi5wb2ludGVyIHsNCiAgY3Vyc29yOiBwb2ludGVyOw0KfQ0KDQoucG9pbnRlcjpob3ZlciB7DQogIGNvbG9yOiAjMDBFNkZGOw0KICBjdXJzb3I6IHBvaW50ZXI7DQp9DQoNCi5zb3J0VGhpcyB7DQogIGNvbG9yOiAjMDBFNkZGOw0KfQ0KDQoudzQwcHggew0KICBtYXgtd2lkdGg6IDQwcHg7DQp9DQoNCi53NTBweCB7DQogIG1heC13aWR0aDogNTBweDsNCn0NCg0KLnc4MHB4IHsNCiAgbWF4LXdpZHRoOiA4MHB4Ow0KfQ0KDQoudzE1MHB4IHsNCiAgbWF4LXdpZHRoOiAxNTBweDsNCn0NCg0KLncyMDBweCB7DQogIG1heC13aWR0aDogMjAwcHg7DQogIG1pbi13aWR0aDogMTAwcHg7DQogIHdpZHRoOiAyMDBweDsNCiAgb3ZlcmZsb3cteDogaGlkZGVuOw0KICB3aGl0ZS1zcGFjZTogbm93cmFwOw0KICBvdmVyZmxvdzogaGlkZGVuOw0KICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsNCn0NCg0KLnczMDBweCB7DQogIG1heC13aWR0aDogMzAwcHg7DQp9DQoNCi53MjIwcHggew0KICBtYXgtd2lkdGg6IDIyMHB4Ow0KICBjdXJzb3I6IGFsaWFzOw0KfQ0KDQouZm9vdGVyIHsNCiAgZm9udC1zaXplOiAxMHB4Ow0KfQ0KDQouY2VudGVyIHsNCiAgdGV4dC1hbGlnbjogY2VudGVyOw0KfQ0KDQouc2NyZWVuTG9nSGlkZGVuIHsNCiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMHB4LCAtMTEwcHgpOw0KfQ0KDQouYm9yZGVyU3BhY2Ugew0KICBtYXJnaW4tYm90dG9tOiAzMHB4Ow0KfQ0KDQouYmxvY2sgew0KDQp9DQoNCi5ub25lIHsNCiAgZGlzcGxheTogbm9uZTsNCn0NCg0KDQoubm90VmlzaWJsZSB7DQogIGhlaWdodDogMHB4Ow0KICBkaXNwbGF5OiBub25lOw0KICBvcGFjaXR5OiAwOw0KICBib3JkZXItYm90dG9tOiAjMDAwIHNvbGlkIDBweDsNCiAgDQp9DQoNCi52aXNpYmxlIHsNCiAgb3BhY2l0eTogMTsNCiAgZGlzcGxheTogYmxvY2s7DQogIGJvcmRlci1ib3R0b206ICM0NDQgc29saWQgMXB4OyANCiAgcGFkZGluZzogMTBweDsNCn0NCg0KLmZsb2F0UmlnaHQgew0KICBmbG9hdDogcmlnaHQ7DQp9DQoNCi5mbG9hdExlZnQgew0KICBmbG9hdDogbGVmdDsNCn0NCg0KLm1lbnUtYWN0aXZlIHsNCiAgYmFja2dyb3VuZC1jb2xvcjogIzAwRTZGRjsNCn0NCg0KLm1lbnUtbm90QWN0aXZlIHsNCiAgDQp9DQoNCiNicmFuY2ggew0KICBkaXNwbGF5OiB0YWJsZTsNCiAgbWFyZ2luOiBhdXRvOw0KICBjb2xvcjogcmVkOw0KfQ0KDQojaW50ZXJhY3Rpb24gew0KICBtYXJnaW4tYm90dG9tOiAxMDBweDsNCiAgdGV4dC1hbGlnbjogY2VudGVyOw0KICBib3JkZXItYm90dG9tOiBzb2xpZCAwcHggIzc3NzsNCn0NCg0KDQouaGFsZiB7DQogIGRpc3BsYXk6IGJsb2NrOw0KICB3aWR0aDogNDUlOw0KfQ0KDQoubWVudSB7DQogIGJvcmRlcjogc29saWQgMXB4ICMwMEU2RkY7DQp9DQoNCi5pbmZvTXNnIHsNCiAgY29sb3I6ICNhYWE7DQp9DQoNCi5lcnJvck1zZyB7DQogIGNvbG9yOiByZWQ7DQp9DQoNCi53YXJuaW5nTXNnIHsNCiAgY29sb3I6IHllbGxvdzsNCn0NCg0KLmRlYnVnTXNnIHsNCiAgY29sb3I6IG1hZ2VudGE7DQp9DQoNCi5OZXdzLCAuTW92aWUsIC5TZXJpZXMsIC5TcG9ydHMsIC5LaWRzIHsNCiAgYm9yZGVyLWxlZnQ6IHNvbGlkIDJweA0KfQ0KDQouTmV3cyB7DQogIGJvcmRlci1jb2xvcjogdG9tYXRvDQp9DQoNCi5Nb3ZpZSB7DQogIGJvcmRlci1jb2xvcjogcm95YWxibHVlOw0KfQ0KDQouU2VyaWVzIHsNCiAgYm9yZGVyLWNvbG9yOiBnb2xkOw0KfQ0KDQouU3BvcnRzIHsNCiAgYm9yZGVyLWNvbG9yOiB5ZWxsb3dncmVlbjsNCn0NCg0KLktpZHMgew0KICBib3JkZXItY29sb3I6IG1lZGl1bXB1cnBsZTsNCn0NCg0KLyogTG9hZGluZyAqLw0KI2xvYWRpbmcgew0KICBsZWZ0OiAwcHg7DQogIHRvcDogMHB4Ow0KICB6LWluZGV4OiAxMDAwMDsNCiAgcG9zaXRpb246IGFic29sdXRlOw0KICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsMCwwLCAwLjgpOw0KICBtYXJnaW46IGF1dG87DQogIHdpZHRoOiAxMDAlOw0KICBoZWlnaHQ6IDEwMCU7DQp9DQoNCg0KLmxvYWRlciB7DQogIGJvcmRlcjogNXB4IHNvbGlkIHRyYW5zcGFyZW50Ow0KICBib3JkZXItcmFkaXVzOiA1MCU7DQogIGJvcmRlci10b3A6IDVweCBzb2xpZCAjMDBFNkZGOw0KICBib3JkZXItYm90dG9tOiA1cHggc29saWQgIzAwRTZGRjsNCiAgd2lkdGg6IDUwcHg7DQogIGhlaWdodDogNTBweDsNCiAgLXdlYmtpdC1hbmltYXRpb246IHNwaW4gMS4ycyBsaW5lYXIgaW5maW5pdGU7DQogIGFuaW1hdGlvbjogc3BpbiAxLjJzIGxpbmVhciBpbmZpbml0ZTsNCg0KICBwb3NpdGlvbjogZml4ZWQ7DQogIG1hcmdpbjogYXV0bzsNCg0KICB0b3A6IDA7DQogIHJpZ2h0OiAwOw0KICBib3R0b206IDA7DQogIGxlZnQ6IDA7DQogIA0KfQ0KDQpALXdlYmtpdC1rZXlmcmFtZXMgc3BpbiB7DQogIDAlIHsgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTsgfQ0KICAxMDAlIHsgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpOyB9DQp9DQoNCkBrZXlmcmFtZXMgc3BpbiB7DQogIDAlIHsgdHJhbnNmb3JtOiByb3RhdGUoMGRlZyk7IH0NCiAgMTAwJSB7IHRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7IH0NCn0NCg==" - webUI["html/css/screen.css"] = "bmF2IGltZyB7DQogIGRpc3BsYXk6IGJsb2NrOw0KICBtYXgtaGVpZ2h0OiAyMHB4Ow0KICBtYXgtd2lkdGg6IDIwcHg7DQogIGZsb2F0OiBsZWZ0Ow0KfQ0KDQpuYXYgcCB7DQogIHRleHQtYWxpZ246IGxlZnQ7DQogIHBhZGRpbmc6IDBweCAzMHB4Ow0KfQ0KDQojbGF5b3V0IHsNCiAgZGlzcGxheTogYmxvY2s7DQogIGhlaWdodDogMTAwJTsNCn0NCg0KDQoubGF5b3V0LWxlZnQgew0KICBkaXNwbGF5OiBibG9jazsNCiAgbWluLXdpZHRoOiAxNTBweDsNCiAgbWF4LXdpZHRoOiAyMCU7DQogIGJhY2tncm91bmQtY29sb3I6ICMxMTE7DQogIGhlaWdodDogaW5oZXJpdDsNCiAgZmxvYXQ6IGxlZnQ7DQp9DQoNCi5sYXlvdXQtcmlnaHQgew0KICBkaXNwbGF5OiBibG9jazsNCiAgYmFja2dyb3VuZC1jb2xvcjogIzQ0NDsNCn0NCg0KI21lbnUtd3JhcHBlciB7DQogIGhlaWdodDogMTAwJTsNCn0NCg0KDQojbG9nbyB7DQogIGRpc3BsYXk6IGJsb2NrOw0KICBtaW4td2lkdGg6IDE4MHB4Ow0KICB3aWR0aDogMTAwJTsNCiAgaGVpZ2h0OiAxMDBweDsNCiAgYmFja2dyb3VuZDogdXJsKCIuLi9pbWcvbG9nb193XzYwMHgyMDAucG5nIik7DQogIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7DQogIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjsgDQogIGJhY2tncm91bmQtc2l6ZTogMTAwJTsNCn0NCg0KDQojcGFnZSB7DQogIG1heC13aWR0aDogOTUwcHg7DQogIG1hcmdpbjogYXV0bzsNCiAgYmFja2dyb3VuZC1jb2xvcjogIzQ0NDsNCg0KICAvKg0KICBoZWlnaHQ6IC13ZWJraXQtY2FsYygxMDAlIC0gMTMwcHgpOw0KICBoZWlnaHQ6IC1tb3otY2FsYygxMDAlIC0gMTMwcHgpOw0KICBoZWlnaHQ6IGNhbGMoMTAwJSAtIDEzMHB4KTsNCiAgKi8NCiAgDQogIG1pbi1oZWlnaHQ6IC13ZWJraXQtY2FsYygxMDAlIC0gMTIwcHgpOw0KICBtaW4taGVpZ2h0OiAtbW96LWNhbGMoMTAwJSAtIDEyMHB4KTsNCiAgbWluLWhlaWdodDogY2FsYygxMDAlIC0gMTIwcHgpOw0KICANCiAgDQogIGJveC1zaGFkb3c6IDBweCA1cHggNXB4ICMyMjI7DQogIA0KfQ0KDQojdWlTZXR0aW5nIHsNCiAgZmxvYXQ6IHJpZ2h0Ow0KICBtYXJnaW4tcmlnaHQ6IDI1cHg7DQp9DQoNCiNib3ggaW5wdXRbdHlwZT10ZXh0XSwgI2JveCBpbnB1dFt0eXBlPXBhc3N3b3JkXSB7DQogIHdpZHRoOiAtd2Via2l0LWNhbGMoMTAwJSAtIDIwcHgpOw0KICB3aWR0aDogLW1vei1jYWxjKDEwMCUgLSAyMHB4KTsNCiAgd2lkdGg6IGNhbGMoMTAwJSAtIDIwcHgpOw0KfQ0KDQojYm94IGlucHV0W3R5cGU9c3VibWl0XXsNCiAgbWFyZ2luOiA1MHB4IGF1dG87DQp9DQoNCiNzZXR0aW5ncyB7DQogIGRpc3BsYXk6IGJsb2NrOw0KICBwYWRkaW5nOiAxMHB4IDEwcHg7DQp9DQoNCiNzZXR0aW5ncyBoNSB7DQogIG1hcmdpbjogNTBweCAwcHggMTBweCAwcHg7DQp9DQoNCiNjb250ZW50LWludGVyYWN0aW9uIC5zZWFyY2ggew0KICB3aWR0aDogMjAwcHg7DQogIGJvcmRlcjogMXB4IHNvbGlkICMwMDA7DQogIHBhZGRpbmc6IDlweDsNCiAgYmFja2dyb3VuZC1jb2xvcjogIzMzMzsNCiAgbWFyZ2luOiAxMHB4Ow0KICBmbG9hdDogcmlnaHQ7DQogIGJvcmRlci1yYWRpdXM6IDNweDsNCg0KfQ0KDQojbXlTdHJlYW1zIHsNCiAgcG9zaXRpb246IGZpeGVkOw0KICBib3R0b206IDBweDsNCiAgYmFja2dyb3VuZC1jb2xvcjogIzExMTsNCiAgd2lkdGg6IDEwMCU7DQogIG1heC13aWR0aDogOTUwcHg7DQoNCiAgLyoNCiAgbWF4LWhlaWdodDogMTAwcHg7DQogICovDQogIG1hcmdpbi1ib3R0b206IDBweDsNCn0NCg0KI215U3RyZWFtcyBpbWcgew0KICB3aWR0aDogNCU7DQogIHBhZGRpbmc6IDJweCA1cHg7DQogIGN1cnNvcjogcG9pbnRlcjsNCiAgZmxvYXQ6IHJpZ2h0Ow0KfQ0KDQojc2V0dGluZ3MtZm9vdGVyIHsNCg0KfQ0KDQoNCi8qIFdpemFyZCovDQojYm94IHsNCiAgYmFja2dyb3VuZC1jb2xvcjogIzQ0NDsNCiAgbWluLWhlaWdodDogNDAwcHg7DQogIA0KICBkaXNwbGF5OiBmbGV4Ow0KICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOw0KICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47DQp9DQoNCiNib3ggcHsNCiAgcGFkZGluZzogMTBweCAwcHg7DQp9DQoNCiNib3gtZm9vdGVyIHsNCiAgbWFyZ2luLXRvcDogYXV0bzsNCn0NCg0KI2JveC1mb290ZXIgew0KICBtYXJnaW46IGF1dG87DQogIHBhZGRpbmc6IDEwcHg7DQp9DQoNCiNoZWFkbGluZSB7DQogIGJhY2tncm91bmQtY29sb3I6ICMyMjI7DQogIGJvcmRlci1ib3R0b206IHNvbGlkIDJweCAjMjIyOw0KICB0cmFuc2l0aW9uOiBhbGwgMC41czsNCiAgcGFkZGluZzogMTBweCAwcHg7DQogIGRpc3BsYXk6IGJsb2NrOw0KfQ0KDQojY29udGVudCB7DQogIGRpc3BsYXk6IGJsb2NrOw0KICBvdmVyZmxvdzogYXV0bzsNCiAgcGFkZGluZzogMTBweDsNCn0NCg0KLyogLS0tICovDQoNCg0KI2NsaWVudEluZm8sICNhY3RpdmVTdHJlYW1zLCAjaW5hY3RpdmVTdHJlYW1zIHsNCiAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZTsNCiAgZGlzcGxheTogYmxvY2s7DQogIGZvbnQtc2l6ZTogOXB4Ow0KICBiYWNrZ3JvdW5kLWNvbG9yOiAjMTExOw0KICBjb2xvcjogIzAwRTZGRjsNCiAgYm9yZGVyLWJvdHRvbTogc29saWQgMHB4OzsNCiAgcGFkZGluZzogMHB4Ow0KICBsZXR0ZXItc3BhY2luZzogMXB4Ow0KICBvdmVyZmxvdy14OiBoaWRkZW47DQogIGJvcmRlci1zcGFjaW5nOiA0cHggNHB4Ow0KICBib3JkZXItYm90dG9tOiBzb2xpZCAxcHggIzQ0NDsNCn0NCg0KI215U3RyZWFtc0JveCB7DQogIHBvc2l0aW9uOiByZWxhdGl2ZTsNCiAgcGFkZGluZzogMHB4Ow0KICAvKmhlaWdodDogMTAwcHg7Ki8NCiAgbWF4LWhlaWdodDogMTUwcHg7DQogIGJhY2tncm91bmQtY29sb3I6ICMxMTE7DQogIGNvbG9yOiB3aGl0ZTsNCiAgZGlzcGxheTpmbGV4Ow0KICBqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyOw0KICBhbGlnbi1pdGVtczpjZW50ZXI7DQp9DQoNCiNvcGVuU3RyZWFtcyB7DQogIHdpZHRoOiAyMHB4Ow0KICBoZWlnaHQ6IDIwcHg7DQogIGN1cnNvcjogcG9pbnRlcjsNCiAgZmxvYXQ6IHJpZ2h0Ow0KICBwb3NpdGlvbjogYWJzb2x1dGU7DQogIHJpZ2h0OiAwcHg7DQogIGJvdHRvbTogMHB4Ow0KICBiYWNrZ3JvdW5kOiB1cmwoIi4uL2ltZy90b3VjaC5wbmciKTsNCiAgYmFja2dyb3VuZC1jb2xvcjogIzExMTsNCiAgDQogIGJhY2tncm91bmQtcG9zaXRpb246IGJvdHRvbSByaWdodDsgIA0KfQ0KDQojYWxsU3RyZWFtcyB7DQogIHdpZHRoOiAxMDAlOw0KICBoZWlnaHQ6IDEwMCU7DQogIHBhZGRpbmc6IDJweDsgICAgIA0KfQ0KDQojYWN0aXZlU3RyZWFtcywgI2luYWN0aXZlU3RyZWFtcyB7DQogIG92ZXJmbG93LXk6IHNjcm9sbDsNCiAgd2lkdGg6IDUwJTsNCiAgbWF4LWhlaWdodDogMTAwcHg7DQogIGZsb2F0OiBsZWZ0Ow0KfQ0KDQojYWN0aXZlU3RyZWFtcyAudGRLZXksICNpbmFjdGl2ZVN0cmVhbXMgLnRkS2V5IHsNCiAgd2lkdGg6IDc1cHg7DQp9DQoNCg0KDQoNCiNpbmFjdGl2ZVN0cmVhbXMgLnRkS2V5IHsNCiAgY29sb3I6IHJlZDsNCn0NCg0KI2NsaWVudEluZm8gLnRkVmFsLCAjbG9nSW5mbyAudGRWYWwsICNhY3RpdmVTdHJlYW1zIC50ZFZhbCwgI2luYWN0aXZlU3RyZWFtcyAudGRWYWwsICNtYXBwaW5nSW5mbyAudGRWYWx7DQogIGNvbG9yOiAjYWFhOw0KICB3aGl0ZS1zcGFjZTogaW5oZXJpdDsNCn0NCg0KI2JveC13cmFwcGVyIHsNCiAgZGlzcGxheTogaW5saW5lLWJsb2NrOw0KICB3aWR0aDogMTAwJTsNCiAgDQogIG92ZXJmbG93LXk6IHNjcm9sbDsNCn0NCg0KI2NvbnRlbnRfdGFibGUsICNtYXBwaW5nLWRldGFpbC10YWJsZSwgI2NvbnRlbnRfdGFibGUgew0KICBkaXNwbGF5OiB0YWJsZTsNCiAgDQogIGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7DQogIG92ZXJmbG93LXk6IHNjcm9sbDsNCiAgd2lkdGg6IDEwMCU7DQp9DQoNCg0KI2NvbnRlbnRfdGFibGUgLmNvbnRlbnRfdGFibGVfaGVhZGVyIHsNCiAgYmFja2dyb3VuZC1jb2xvcjogIzMzMzsNCiAgaGVpZ2h0OiA1MHB4Ow0KICBib3JkZXItYm90dG9tOiBzb2xpZCAxcHggIzExMTsNCiAgYm9yZGVyLWxlZnQ6IHNvbGlkIDNweCAjMzMzOw0KICBjdXJzb3I6IGF1dG87DQoNCn0NCg0KDQp0Ym9keSB7DQogIHdpZHRoOiAxMDAlOw0KfQ0KDQoNCi50YWJsZUVsbGlwc2lzIHsNCiAgd2lkdGg6IDE1MHB4Ow0KICBvdmVyZmxvdzogaGlkZGVuOw0KICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsNCiAgd2hpdGUtc3BhY2U6IG5vd3JhcDsNCn0NCg0KI2NvbnRlbnRfdGFibGUgaW1nIHsNCiAgZGlzcGxheTogYmxvY2s7DQogIG1heC1oZWlnaHQ6IDI4cHg7DQogIG1hcmdpbi1sZWZ0OiBhdXRvOw0KICBtYXJnaW4tcmlnaHQ6IGF1dG87DQogIG1heC13aWR0aDogMzBweDsNCn0NCg0KI2NvbnRlbnRfdGFibGUgdHJ7DQogIGJvcmRlci1sZWZ0OiBzb2xpZCAzcHggNDQ0Ow0KICBib3JkZXItYm90dG9tOiBzb2xpZCAxcHggIzMzMzsNCiAgY3Vyc29yOiBwb2ludGVyOw0KfQ0KDQojY29udGVudF90YWJsZSB0cjpob3ZlciB7DQogIGJhY2tncm91bmQtY29sb3I6ICMzMzM7DQp9DQoNCiNjb250ZW50X3RhYmxlIHRkIHsNCg0KICBwYWRkaW5nOiAwcHggMnB4Ow0KfQ0KDQojY29udGVudF90YWJsZSBpbnB1dFt0eXBlPXRleHRdew0KICB3aWR0aDogODAlOw0KICBtaW4td2lkdGg6IDM1cHg7DQogIG1heC13aWR0aDogNjBweDsNCiAgYm9yZGVyOiAwcHg7DQogIGJhY2tncm91bmQtY29sb3I6ICMzMzM7DQogIG1hcmdpbi1sZWZ0OiA1cHg7DQogIHRleHQtYWxpZ246IGxlZnQ7DQp9DQoNCiNjb250ZW50X3RhYmxlIGlucHV0W3R5cGU9Y2hlY2tib3hdew0KICBtYXgtd2lkdGg6IDI1cHg7DQogIG1hcmdpbjogYXV0bzsNCn0NCg0KDQouc2hvd0J1bGsgew0KICBkaXNwbGF5OiBibG9jazsNCn0NCg0KLmhpZGVCdWxrIHsNCiAgZGlzcGxheTogbm9uZTsNCn0NCg0KLm5vQnVsayB7DQoNCn0NCg0KI2NvbnRlbnRfdGFibGUgdHIuYWN0aXZlRVBHew0KICBib3JkZXItbGVmdDogc29saWQgM3B4IGxhd25ncmVlbjsNCn0NCg0KI2NvbnRlbnRfdGFibGUgdHIubm90QWN0aXZlRVBHew0KICBib3JkZXItbGVmdDogc29saWQgM3B4IHJlZDsNCn0NCg0KDQojbG9nU2NyZWVuIHB7DQogIHdoaXRlLXNwYWNlOiBwcmU7DQogIGZvbnQtc2l6ZTogMTBweDsNCiAgLyoNCiAgbGluZS1oZWlnaHQ6IDEuNmVtOw0KICBmb250LWZhbWlseTogIkFyaWFsIiwgc2Fucy1zZXJpZjsNCiAgKi8NCiAgbGV0dGVyLXNwYWNpbmc6IDFweDsNCiAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZTsgDQogIGZvbnQtc2l6ZTogMTJweDsgDQogIGZvbnQtc3R5bGU6IG5vcm1hbDsgDQogIGZvbnQtdmFyaWFudDogbm9ybWFsOyANCiAgbGluZS1oZWlnaHQ6IDEuNmVtOyANCn0NCg0KI3BvcHVwIHsNCiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjQpOw0KICBwb3NpdGlvbjogZml4ZWQ7DQogIGxlZnQ6IDBweDsNCiAgd2lkdGg6IDEwMCU7DQogIHotaW5kZXg6IDEwMDsNCiAgaGVpZ2h0OiAxMDAlOw0KfQ0KDQojbWFwcGluZy1kZXRhaWwsICN1c2VyLWRldGFpbCwgI2ZpbGUtZGV0YWlsLCAjcG9wdXAtY3VzdG9tIHsNCiAgYm94LXNoYWRvdzogMHB4IDVweCA0MHB4ICMwMDA7DQogIG1hcmdpbi10b3A6IDIwcHg7DQogIG1hcmdpbi1sZWZ0OiBhdXRvOw0KICBtYXJnaW4tcmlnaHQ6IGF1dG87DQogIA0KICBtYXgtd2lkdGg6IDYwMHB4Ow0KICBiYWNrZ3JvdW5kLWNvbG9yOiAjMjIyOw0KICBwYWRkaW5nOiAxMHB4Ow0KICBvdmVyZmxvdzphdXRvOw0KfQ0KDQojcG9wdXAtY3VzdG9tIGgzIHsNCiAgdGV4dC1hbGlnbjogY2VudGVyOw0KfQ0KDQojZmlsZS1kZXRhaWwgaW5wdXRbdHlwZT10ZXh0XSB7DQogIHdpZHRoOiAtd2Via2l0LWNhbGMoMTAwJSAtIDIwcHgpOw0KICB3aWR0aDogLW1vei1jYWxjKDEwMCUgLSAyMHB4KTsNCiAgd2lkdGg6IGNhbGMoMTAwJSAtIDIwcHgpOw0KfQ0KDQojbWFwcGluZy1kZXRhaWwgaW1nIHsNCiAgZGlzcGxheTogYmxvY2s7DQogIG1heC1oZWlnaHQ6IDMwcHg7DQogIG1hcmdpbi1ib3R0b206IDIwcHg7DQogIG1hcmdpbi1sZWZ0OiBhdXRvOw0KICBtYXJnaW4tcmlnaHQ6IGF1dG87DQp9DQoNCiNwb3B1cC1jdXN0b20gaW5wdXRbdHlwZT10ZXh0XSwgI3BvcHVwLWN1c3RvbSBpbnB1dFt0eXBlPXBhc3N3b3JkXSwgI21hcHBpbmctZGV0YWlsIGlucHV0W3R5cGU9dGV4dF0sICNjb250ZW50X3NldHRpbmdzIGlucHV0W3R5cGU9dGV4dF0sICNjb250ZW50X3NldHRpbmdzIGlucHV0W3R5cGU9cGFzc3dvcmRdew0KICBib3JkZXI6IHNvbGlkIDFweDsNCiAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDsNCiAgYmFja2dyb3VuZC1jb2xvcjogIzMzMzsNCiAgdGV4dC1hbGlnbjogbGVmdDsNCiAgd2lkdGg6IC13ZWJraXQtY2FsYygxMDAlIC0gMjBweCk7DQogIHdpZHRoOiAgICAtbW96LWNhbGMoMTAwJSAtIDIwcHgpOw0KICB3aWR0aDogICAgICAgICBjYWxjKDEwMCUgLSAyMHB4KTsNCn0NCg0KI3BvcHVwLWN1c3RvbSBpbnB1dFt0eXBlPXRleHRdLm5vdEF2YWlsYWJsZSB7DQogIGJvcmRlci1jb2xvcjogcmVkOw0KICBjb2xvcjogIzY2NjsNCiAgY3Vyc29yOiBub3QtYWxsb3dlZDsNCn0NCg0KI3BvcHVwLWN1c3RvbSBpbnB1dFt0eXBlPXRleHRdOmRpc2FibGVkIHsNCiAgY29sb3I6ICM2NjY7DQogIGN1cnNvcjogbm90LWFsbG93ZWQ7DQp9DQoNCiNtYXBwaW5nLWRldGFpbC10YWJsZSwgI3VzZXItZGV0YWlsLXRhYmxlIHsNCiAgZGlzcGxheTogaW5saW5lLXRhYmxlOw0KICB3aWR0aDogMTAwJTsNCn0NCg0KI3BvcHVwLWN1c3RvbSB0YWJsZSwgI2NvbnRlbnRfc2V0dGluZ3MgdGFibGUgew0KICBkaXNwbGF5OiBpbmxpbmUtdGFibGU7DQogIHRhYmxlLWxheW91dDogZml4ZWQ7DQogIHdpZHRoOiAxMDAlOw0KfQ0KDQoNCiNtYXBwaW5nLWRldGFpbC10YWJsZSB0ZCwgI3VzZXItZGV0YWlsLXRhYmxlIHRkIHsNCiAgcGFkZGluZzogMTBweCAwcHg7DQoNCn0NCg0KI21hcHBpbmctZGV0YWlsLXRhYmxlIHRkLmxlZnQsICN1c2VyLWRldGFpbC10YWJsZSB0ZC5sZWZ0LCAjcG9wdXAtY3VzdG9tIHRkLmxlZnQgew0KICB3aWR0aDogMzglOw0KfQ0KDQouaW50ZXJhY3Rpb24sICNpbnRlcmFjdGlvbiB7DQogIG1hcmdpbi10b3A6IDIwcHg7DQogIGRpc3BsYXk6IGlubGluZS1mbGV4Ow0KICBmbG9hdDogcmlnaHQ7DQp9DQoNCi5pbnRlcmFjdGlvbiBpbnB1dFt0eXBlPWJ1dHRvbl0sIC5pbnRlcmFjdGlvbiBpbnB1dFt0eXBlPXN1Ym1pdF0gew0KICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDAwOw0KICBtaW4td2lkdGg6IDEwMHB4Ow0KICBtYXJnaW46IDBweCAxMHB4Ow0KICB0ZXh0LWFsaWduOiBjZW50ZXI7DQp9DQoNCiNub3RpZmljYXRpb24gew0KICBkaXNwbGF5OiBibG9jazsNCiAgcG9zaXRpb246IGZpeGVkOw0KICByaWdodDogMHB4Ow0KICBoZWlnaHQ6IDEwMCU7DQogIHdpZHRoOiAyNTBweDsNCiAgDQogIGJhY2tncm91bmQtY29sb3I6ICMyMjI7DQogIGJveC1zaGFkb3c6IDBweCAwcHggMjBweCAjMDAwOw0KfQ0KDQojbm90aWZpY2F0aW9uIGg1IHsNCiAgYmFja2dyb3VuZC1jb2xvcjogIzEyMTIxMjsNCiAgcGFkZGluZzogNXB4IDEwcHggNXB4IDEwcHg7DQp9DQoNCiNub3RpZmljYXRpb24gcHJlIHsNCiAgcGFkZGluZzogMHB4IDEwcHggMHB4IDEwcHg7DQp9DQoNCiNub3RpZmljYXRpb24gcCB7DQogIGZvbnQtc2l6ZTogMTAgcHg7DQogIG1hcmdpbjogMHB4Ow0KICBwYWRkaW5nOiAwcHggMTBweCA1cHggMTBweDsNCn0NCg0KI25vdGlmaWNhdGlvbiAuZWxlbWVudCB7DQogIC8qcGFkZGluZzogMHB4IDVweDsqLw0KICBtYXJnaW46IDVweCA1cHg7DQogIGJvcmRlci1yYWRpdXM6IDVweDsNCiAgYmFja2dyb3VuZC1jb2xvcjogIzE4MTgxODsNCiAgYm9yZGVyLWxlZnQ6IDEwcHggc29saWQgZ3JlZW47DQp9DQoNCg0KQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2MjBweCl7DQogIGJvZHkgew0KICAgIHdpZHRoOiAxMDAlOw0KICAgIGJhY2tncm91bmQtY29sb3I6ICM0NDQ7DQogIH0NCg0KICBoMSB7DQogICAgZm9udC1zaXplOiAyNnB4Ow0KICAgIGxldHRlci1zcGFjaW5nOiAzcHg7DQogIH0NCg0KICBuYXYgcCB7DQogICAgZGlzcGxheTogYmxvY2s7DQogIH0NCg0KDQoNCiAgI2hlYWRlcl9jb25maWcgew0KICAgIGRpc3BsYXk6IGJsb2NrOw0KICAgIGhlaWdodDogMTAwcHg7DQogICAgYmFja2dyb3VuZDogdXJsKCIuLi9pbWcvbG9nb193XzYwMHgyMDAucG5nIik7DQogICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDsNCiAgICANCiAgICBiYWNrZ3JvdW5kLXNpemU6IDMwMHB4IDEwMHB4Ow0KICB9DQoNCiAgI3NjcmVlbkxvZyB7DQogICAgbWFyZ2luLWxlZnQ6IDMwMHB4Ow0KDQogICAgdHJhbnNpdGlvbjogbm9uZTsNCiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDsNCiAgICBib3JkZXItYm90dG9tOiBzb2xpZCAxcHggdHJhbnNwYXJlbnQ7DQogICAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggIzIyMjsNCiAgfQ0KDQogICNzZXR0aW5ncyB7DQogICAgLyoNCiAgICBoZWlnaHQ6IC13ZWJraXQtY2FsYygxMDAlIC0gMTAwcHgpOw0KICAgIGhlaWdodDogLW1vei1jYWxjKDEwMCUgLSAxMDBweCk7DQogICAgaGVpZ2h0OiBjYWxjKDEwMCUgLSAxMDBweCk7DQogICAgKi8NCiAgICBwb3NpdGlvbjogcmVsYXRpdmU7DQogICAgb3ZlcmZsb3c6IGF1dG87DQogIH0NCg0KDQogIC5zY3JlZW5Mb2dIaWRkZW4gew0KICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDBweCwgMHB4KTsNCiAgfQ0KDQoNCiAgI2JveCB7DQogICAgZGlzcGxheTogYmxvY2s7DQogICAgbWluLWhlaWdodDogNTAwcHg7DQogICAgbWF4LXdpZHRoOiA1MDBweDsNCiAgICBtYXJnaW46IDEwcHggYXV0bzsNCiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNDQ0Ow0KICAgIGJveC1zaGFkb3c6IDBweCA1cHggNXB4ICMyMjI7DQoNCiAgICBkaXNwbGF5OiBmbGV4Ow0KICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47DQogIH0NCg0KICAjc2V0dGluZ3MsICNzZXR0aW5ncy1mb290ZXIgew0KICAgIA0KICB9DQp9DQo=" + webUI["html/css/screen.css"] = "bmF2IGltZyB7DQogIGRpc3BsYXk6IGJsb2NrOw0KICBtYXgtaGVpZ2h0OiAyMHB4Ow0KICBtYXgtd2lkdGg6IDIwcHg7DQogIGZsb2F0OiBsZWZ0Ow0KfQ0KDQpuYXYgcCB7DQogIHRleHQtYWxpZ246IGxlZnQ7DQogIHBhZGRpbmc6IDBweCAzMHB4Ow0KfQ0KDQojbGF5b3V0IHsNCiAgZGlzcGxheTogYmxvY2s7DQogIGhlaWdodDogMTAwJTsNCn0NCg0KDQoubGF5b3V0LWxlZnQgew0KICBkaXNwbGF5OiBibG9jazsNCiAgbWluLXdpZHRoOiAxNTBweDsNCiAgbWF4LXdpZHRoOiAyMCU7DQogIGJhY2tncm91bmQtY29sb3I6ICMxMTE7DQogIGhlaWdodDogaW5oZXJpdDsNCiAgZmxvYXQ6IGxlZnQ7DQp9DQoNCi5sYXlvdXQtcmlnaHQgew0KICBkaXNwbGF5OiBibG9jazsNCiAgYmFja2dyb3VuZC1jb2xvcjogIzQ0NDsNCn0NCg0KI21lbnUtd3JhcHBlciB7DQogIGhlaWdodDogMTAwJTsNCn0NCg0KDQojbG9nbyB7DQogIGRpc3BsYXk6IGJsb2NrOw0KICBtaW4td2lkdGg6IDE4MHB4Ow0KICB3aWR0aDogMTAwJTsNCiAgaGVpZ2h0OiAxMDBweDsNCiAgYmFja2dyb3VuZDogdXJsKCIuLi9pbWcvbG9nb193XzYwMHgyMDAucG5nIik7DQogIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7DQogIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjsgDQogIGJhY2tncm91bmQtc2l6ZTogMTAwJTsNCn0NCg0KDQojcGFnZSB7DQogIG1heC13aWR0aDogOTUwcHg7DQogIG1hcmdpbjogYXV0bzsNCiAgYmFja2dyb3VuZC1jb2xvcjogIzQ0NDsNCg0KICAvKg0KICBoZWlnaHQ6IC13ZWJraXQtY2FsYygxMDAlIC0gMTMwcHgpOw0KICBoZWlnaHQ6IC1tb3otY2FsYygxMDAlIC0gMTMwcHgpOw0KICBoZWlnaHQ6IGNhbGMoMTAwJSAtIDEzMHB4KTsNCiAgKi8NCiAgDQogIG1pbi1oZWlnaHQ6IC13ZWJraXQtY2FsYygxMDAlIC0gMTIwcHgpOw0KICBtaW4taGVpZ2h0OiAtbW96LWNhbGMoMTAwJSAtIDEyMHB4KTsNCiAgbWluLWhlaWdodDogY2FsYygxMDAlIC0gMTIwcHgpOw0KICANCiAgDQogIGJveC1zaGFkb3c6IDBweCA1cHggNXB4ICMyMjI7DQogIA0KfQ0KDQojdWlTZXR0aW5nIHsNCiAgZmxvYXQ6IHJpZ2h0Ow0KICBtYXJnaW4tcmlnaHQ6IDI1cHg7DQp9DQoNCiNib3ggaW5wdXRbdHlwZT10ZXh0XSwgI2JveCBpbnB1dFt0eXBlPXBhc3N3b3JkXSB7DQogIHdpZHRoOiAtd2Via2l0LWNhbGMoMTAwJSAtIDIwcHgpOw0KICB3aWR0aDogLW1vei1jYWxjKDEwMCUgLSAyMHB4KTsNCiAgd2lkdGg6IGNhbGMoMTAwJSAtIDIwcHgpOw0KfQ0KDQojYm94IGlucHV0W3R5cGU9c3VibWl0XXsNCiAgbWFyZ2luOiA1MHB4IGF1dG87DQp9DQoNCiNzZXR0aW5ncyB7DQogIGRpc3BsYXk6IGJsb2NrOw0KICBwYWRkaW5nOiAxMHB4IDEwcHg7DQp9DQoNCiNzZXR0aW5ncyBoNSB7DQogIG1hcmdpbjogNTBweCAwcHggMTBweCAwcHg7DQp9DQoNCiNjb250ZW50LWludGVyYWN0aW9uIC5zZWFyY2ggew0KICB3aWR0aDogMjAwcHg7DQogIGJvcmRlcjogMXB4IHNvbGlkICMwMDA7DQogIHBhZGRpbmc6IDlweDsNCiAgYmFja2dyb3VuZC1jb2xvcjogIzMzMzsNCiAgbWFyZ2luOiAxMHB4Ow0KICBmbG9hdDogcmlnaHQ7DQogIGJvcmRlci1yYWRpdXM6IDNweDsNCg0KfQ0KDQojbXlTdHJlYW1zIHsNCiAgcG9zaXRpb246IGZpeGVkOw0KICBib3R0b206IDBweDsNCiAgYmFja2dyb3VuZC1jb2xvcjogIzExMTsNCiAgd2lkdGg6IDEwMCU7DQogIG1heC13aWR0aDogOTUwcHg7DQoNCiAgLyoNCiAgbWF4LWhlaWdodDogMTAwcHg7DQogICovDQogIG1hcmdpbi1ib3R0b206IDBweDsNCn0NCg0KI215U3RyZWFtcyBpbWcgew0KICB3aWR0aDogNCU7DQogIHBhZGRpbmc6IDJweCA1cHg7DQogIGN1cnNvcjogcG9pbnRlcjsNCiAgZmxvYXQ6IHJpZ2h0Ow0KfQ0KDQojc2V0dGluZ3MtZm9vdGVyIHsNCg0KfQ0KDQoNCi8qIFdpemFyZCovDQojYm94IHsNCiAgYmFja2dyb3VuZC1jb2xvcjogIzQ0NDsNCiAgbWluLWhlaWdodDogNDAwcHg7DQogIA0KICBkaXNwbGF5OiBmbGV4Ow0KICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOw0KICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47DQp9DQoNCiNib3ggcHsNCiAgcGFkZGluZzogMTBweCAwcHg7DQp9DQoNCiNib3gtZm9vdGVyIHsNCiAgbWFyZ2luLXRvcDogYXV0bzsNCn0NCg0KI2JveC1mb290ZXIgew0KICBtYXJnaW46IGF1dG87DQogIHBhZGRpbmc6IDEwcHg7DQp9DQoNCiNoZWFkbGluZSB7DQogIGJhY2tncm91bmQtY29sb3I6ICMyMjI7DQogIGJvcmRlci1ib3R0b206IHNvbGlkIDJweCAjMjIyOw0KICB0cmFuc2l0aW9uOiBhbGwgMC41czsNCiAgcGFkZGluZzogMTBweCAwcHg7DQogIGRpc3BsYXk6IGJsb2NrOw0KfQ0KDQojY29udGVudCB7DQogIGRpc3BsYXk6IGJsb2NrOw0KICBvdmVyZmxvdzogYXV0bzsNCiAgcGFkZGluZzogMTBweDsNCn0NCg0KLyogLS0tICovDQoNCg0KI2NsaWVudEluZm8sICNhY3RpdmVTdHJlYW1zLCAjaW5hY3RpdmVTdHJlYW1zIHsNCiAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZTsNCiAgZGlzcGxheTogYmxvY2s7DQogIGZvbnQtc2l6ZTogOXB4Ow0KICBiYWNrZ3JvdW5kLWNvbG9yOiAjMTExOw0KICBjb2xvcjogIzAwRTZGRjsNCiAgYm9yZGVyLWJvdHRvbTogc29saWQgMHB4OzsNCiAgcGFkZGluZzogMHB4Ow0KICBsZXR0ZXItc3BhY2luZzogMXB4Ow0KICBvdmVyZmxvdy14OiBoaWRkZW47DQogIGJvcmRlci1zcGFjaW5nOiA0cHggNHB4Ow0KICBib3JkZXItYm90dG9tOiBzb2xpZCAxcHggIzQ0NDsNCn0NCg0KI215U3RyZWFtc0JveCB7DQogIHBvc2l0aW9uOiByZWxhdGl2ZTsNCiAgcGFkZGluZzogMHB4Ow0KICAvKmhlaWdodDogMTAwcHg7Ki8NCiAgbWF4LWhlaWdodDogMTUwcHg7DQogIGJhY2tncm91bmQtY29sb3I6ICMxMTE7DQogIGNvbG9yOiB3aGl0ZTsNCiAgZGlzcGxheTpmbGV4Ow0KICBqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyOw0KICBhbGlnbi1pdGVtczpjZW50ZXI7DQp9DQoNCiNvcGVuU3RyZWFtcyB7DQogIHdpZHRoOiAyMHB4Ow0KICBoZWlnaHQ6IDIwcHg7DQogIGN1cnNvcjogcG9pbnRlcjsNCiAgZmxvYXQ6IHJpZ2h0Ow0KICBwb3NpdGlvbjogYWJzb2x1dGU7DQogIHJpZ2h0OiAwcHg7DQogIGJvdHRvbTogMHB4Ow0KICBiYWNrZ3JvdW5kOiB1cmwoIi4uL2ltZy90b3VjaC5wbmciKTsNCiAgYmFja2dyb3VuZC1jb2xvcjogIzExMTsNCiAgDQogIGJhY2tncm91bmQtcG9zaXRpb246IGJvdHRvbSByaWdodDsgIA0KfQ0KDQojYWxsU3RyZWFtcyB7DQogIHdpZHRoOiAxMDAlOw0KICBoZWlnaHQ6IDEwMCU7DQogIHBhZGRpbmc6IDJweDsgICAgIA0KfQ0KDQojYWN0aXZlU3RyZWFtcywgI2luYWN0aXZlU3RyZWFtcyB7DQogIG92ZXJmbG93LXk6IHNjcm9sbDsNCiAgd2lkdGg6IDUwJTsNCiAgbWF4LWhlaWdodDogMTAwcHg7DQogIGZsb2F0OiBsZWZ0Ow0KfQ0KDQojYWN0aXZlU3RyZWFtcyAudGRLZXksICNpbmFjdGl2ZVN0cmVhbXMgLnRkS2V5IHsNCiAgd2lkdGg6IDc1cHg7DQp9DQoNCg0KDQoNCiNpbmFjdGl2ZVN0cmVhbXMgLnRkS2V5IHsNCiAgY29sb3I6IHJlZDsNCn0NCg0KI2NsaWVudEluZm8gLnRkVmFsLCAjbG9nSW5mbyAudGRWYWwsICNhY3RpdmVTdHJlYW1zIC50ZFZhbCwgI2luYWN0aXZlU3RyZWFtcyAudGRWYWwsICNtYXBwaW5nSW5mbyAudGRWYWx7DQogIGNvbG9yOiAjYWFhOw0KICB3aGl0ZS1zcGFjZTogaW5oZXJpdDsNCn0NCg0KI2JveC13cmFwcGVyIHsNCiAgZGlzcGxheTogaW5saW5lLWJsb2NrOw0KICB3aWR0aDogMTAwJTsNCiAgDQogIG92ZXJmbG93LXk6IHNjcm9sbDsNCn0NCg0KI2NvbnRlbnRfdGFibGUsICNtYXBwaW5nLWRldGFpbC10YWJsZSwgI2NvbnRlbnRfdGFibGUgew0KICBkaXNwbGF5OiB0YWJsZTsNCiAgDQogIGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7DQogIG92ZXJmbG93LXk6IHNjcm9sbDsNCiAgd2lkdGg6IDEwMCU7DQp9DQoNCg0KI2NvbnRlbnRfdGFibGUgLmNvbnRlbnRfdGFibGVfaGVhZGVyIHsNCiAgYmFja2dyb3VuZC1jb2xvcjogIzMzMzsNCiAgaGVpZ2h0OiA1MHB4Ow0KICBib3JkZXItYm90dG9tOiBzb2xpZCAxcHggIzExMTsNCiAgYm9yZGVyLWxlZnQ6IHNvbGlkIDNweCAjMzMzOw0KICBjdXJzb3I6IGF1dG87DQoNCn0NCg0KDQp0Ym9keSB7DQogIHdpZHRoOiAxMDAlOw0KfQ0KDQoNCi50YWJsZUVsbGlwc2lzIHsNCiAgd2lkdGg6IDE1MHB4Ow0KICBvdmVyZmxvdzogaGlkZGVuOw0KICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsNCiAgd2hpdGUtc3BhY2U6IG5vd3JhcDsNCn0NCg0KI2NvbnRlbnRfdGFibGUgaW1nIHsNCiAgZGlzcGxheTogYmxvY2s7DQogIG1heC1oZWlnaHQ6IDI4cHg7DQogIG1hcmdpbi1sZWZ0OiBhdXRvOw0KICBtYXJnaW4tcmlnaHQ6IGF1dG87DQogIG1heC13aWR0aDogMzBweDsNCn0NCg0KI2NvbnRlbnRfdGFibGUgdHJ7DQogIGJvcmRlci1sZWZ0OiBzb2xpZCAzcHggNDQ0Ow0KICBib3JkZXItYm90dG9tOiBzb2xpZCAxcHggIzMzMzsNCiAgY3Vyc29yOiBwb2ludGVyOw0KfQ0KDQojY29udGVudF90YWJsZSB0cjpob3ZlciB7DQogIGJhY2tncm91bmQtY29sb3I6ICMzMzM7DQp9DQoNCiNjb250ZW50X3RhYmxlIHRkIHsNCg0KICBwYWRkaW5nOiAwcHggMnB4Ow0KfQ0KDQojY29udGVudF90YWJsZSBpbnB1dFt0eXBlPXRleHRdew0KICB3aWR0aDogODAlOw0KICBtaW4td2lkdGg6IDM1cHg7DQogIG1heC13aWR0aDogNjBweDsNCiAgYm9yZGVyOiAwcHg7DQogIGJhY2tncm91bmQtY29sb3I6ICMzMzM7DQogIG1hcmdpbi1sZWZ0OiA1cHg7DQogIHRleHQtYWxpZ246IGxlZnQ7DQp9DQoNCiNjb250ZW50X3RhYmxlIGlucHV0W3R5cGU9Y2hlY2tib3hdew0KICBtYXgtd2lkdGg6IDI1cHg7DQogIG1hcmdpbjogYXV0bzsNCn0NCg0KDQouc2hvd0J1bGsgew0KICBkaXNwbGF5OiBibG9jazsNCn0NCg0KLmhpZGVCdWxrIHsNCiAgZGlzcGxheTogbm9uZTsNCn0NCg0KLm5vQnVsayB7DQoNCn0NCg0KI2NvbnRlbnRfdGFibGUgdHIuYWN0aXZlRVBHew0KICBib3JkZXItbGVmdDogc29saWQgM3B4IGxhd25ncmVlbjsNCn0NCg0KI2NvbnRlbnRfdGFibGUgdHIubm90QWN0aXZlRVBHew0KICBib3JkZXItbGVmdDogc29saWQgM3B4IHJlZDsNCn0NCg0KDQojbG9nU2NyZWVuIHB7DQogIHdoaXRlLXNwYWNlOiBwcmU7DQogIGZvbnQtc2l6ZTogMTBweDsNCiAgLyoNCiAgbGluZS1oZWlnaHQ6IDEuNmVtOw0KICBmb250LWZhbWlseTogIkFyaWFsIiwgc2Fucy1zZXJpZjsNCiAgKi8NCiAgbGV0dGVyLXNwYWNpbmc6IDFweDsNCiAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZTsgDQogIGZvbnQtc2l6ZTogMTJweDsgDQogIGZvbnQtc3R5bGU6IG5vcm1hbDsgDQogIGZvbnQtdmFyaWFudDogbm9ybWFsOyANCiAgbGluZS1oZWlnaHQ6IDEuNmVtOyANCn0NCg0KI3BvcHVwIHsNCiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjQpOw0KICBwb3NpdGlvbjogZml4ZWQ7DQogIGxlZnQ6IDBweDsNCiAgd2lkdGg6IDEwMCU7DQogIHotaW5kZXg6IDEwMDsNCiAgaGVpZ2h0OiAxMDAlOw0KICBvdmVyZmxvdzogc2Nyb2xsOw0KfQ0KDQojbWFwcGluZy1kZXRhaWwsICN1c2VyLWRldGFpbCwgI2ZpbGUtZGV0YWlsLCAjcG9wdXAtY3VzdG9tIHsNCiAgYm94LXNoYWRvdzogMHB4IDVweCA0MHB4ICMwMDA7DQogIG1hcmdpbi10b3A6IDIwcHg7DQogIG1hcmdpbi1sZWZ0OiBhdXRvOw0KICBtYXJnaW4tcmlnaHQ6IGF1dG87DQogIA0KICBtYXgtd2lkdGg6IDgwMHB4Ow0KICBiYWNrZ3JvdW5kLWNvbG9yOiAjMjIyOw0KICBwYWRkaW5nOiAxMHB4Ow0KICBvdmVyZmxvdzphdXRvOw0KfQ0KDQojcG9wdXAtY3VzdG9tIGgzIHsNCiAgdGV4dC1hbGlnbjogY2VudGVyOw0KfQ0KDQojZmlsZS1kZXRhaWwgaW5wdXRbdHlwZT10ZXh0XSB7DQogIHdpZHRoOiAtd2Via2l0LWNhbGMoMTAwJSAtIDIwcHgpOw0KICB3aWR0aDogLW1vei1jYWxjKDEwMCUgLSAyMHB4KTsNCiAgd2lkdGg6IGNhbGMoMTAwJSAtIDIwcHgpOw0KfQ0KDQojbWFwcGluZy1kZXRhaWwgaW1nIHsNCiAgZGlzcGxheTogYmxvY2s7DQogIG1heC1oZWlnaHQ6IDMwcHg7DQogIG1hcmdpbi1ib3R0b206IDIwcHg7DQogIG1hcmdpbi1sZWZ0OiBhdXRvOw0KICBtYXJnaW4tcmlnaHQ6IGF1dG87DQp9DQoNCiNwb3B1cC1jdXN0b20gaW5wdXRbdHlwZT10ZXh0XSwgI3BvcHVwLWN1c3RvbSBpbnB1dFt0eXBlPXBhc3N3b3JkXSwgI21hcHBpbmctZGV0YWlsIGlucHV0W3R5cGU9dGV4dF0sICNjb250ZW50X3NldHRpbmdzIGlucHV0W3R5cGU9dGV4dF0sICNjb250ZW50X3NldHRpbmdzIGlucHV0W3R5cGU9cGFzc3dvcmRdew0KICBib3JkZXI6IHNvbGlkIDFweDsNCiAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDsNCiAgYmFja2dyb3VuZC1jb2xvcjogIzMzMzsNCiAgdGV4dC1hbGlnbjogbGVmdDsNCiAgd2lkdGg6IC13ZWJraXQtY2FsYygxMDAlIC0gMjBweCk7DQogIHdpZHRoOiAgICAtbW96LWNhbGMoMTAwJSAtIDIwcHgpOw0KICB3aWR0aDogICAgICAgICBjYWxjKDEwMCUgLSAyMHB4KTsNCn0NCg0KI3BvcHVwLWN1c3RvbSBpbnB1dFt0eXBlPXRleHRdLm5vdEF2YWlsYWJsZSB7DQogIGJvcmRlci1jb2xvcjogcmVkOw0KICBjb2xvcjogIzY2NjsNCiAgY3Vyc29yOiBub3QtYWxsb3dlZDsNCn0NCg0KI3BvcHVwLWN1c3RvbSBpbnB1dFt0eXBlPXRleHRdOmRpc2FibGVkIHsNCiAgY29sb3I6ICM2NjY7DQogIGN1cnNvcjogbm90LWFsbG93ZWQ7DQp9DQoNCiNtYXBwaW5nLWRldGFpbC10YWJsZSwgI3VzZXItZGV0YWlsLXRhYmxlIHsNCiAgZGlzcGxheTogaW5saW5lLXRhYmxlOw0KICB3aWR0aDogMTAwJTsNCn0NCg0KI3BvcHVwLWN1c3RvbSB0YWJsZSwgI2NvbnRlbnRfc2V0dGluZ3MgdGFibGUgew0KICBkaXNwbGF5OiBpbmxpbmUtdGFibGU7DQogIHRhYmxlLWxheW91dDogZml4ZWQ7DQogIHdpZHRoOiAxMDAlOw0KfQ0KDQoNCiNtYXBwaW5nLWRldGFpbC10YWJsZSB0ZCwgI3VzZXItZGV0YWlsLXRhYmxlIHRkIHsNCiAgcGFkZGluZzogMTBweCAwcHg7DQoNCn0NCg0KI21hcHBpbmctZGV0YWlsLXRhYmxlIHRkLmxlZnQsICN1c2VyLWRldGFpbC10YWJsZSB0ZC5sZWZ0LCAjcG9wdXAtY3VzdG9tIHRkLmxlZnQgew0KICB3aWR0aDogMzglOw0KfQ0KDQouaW50ZXJhY3Rpb24sICNpbnRlcmFjdGlvbiB7DQogIG1hcmdpbi10b3A6IDIwcHg7DQogIGRpc3BsYXk6IGlubGluZS1mbGV4Ow0KICBmbG9hdDogcmlnaHQ7DQp9DQoNCi5pbnRlcmFjdGlvbiBpbnB1dFt0eXBlPWJ1dHRvbl0sIC5pbnRlcmFjdGlvbiBpbnB1dFt0eXBlPXN1Ym1pdF0gew0KICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDAwOw0KICBtaW4td2lkdGg6IDEwMHB4Ow0KICBtYXJnaW46IDBweCAxMHB4Ow0KICB0ZXh0LWFsaWduOiBjZW50ZXI7DQp9DQoNCiNub3RpZmljYXRpb24gew0KICBkaXNwbGF5OiBibG9jazsNCiAgcG9zaXRpb246IGZpeGVkOw0KICByaWdodDogMHB4Ow0KICBoZWlnaHQ6IDEwMCU7DQogIHdpZHRoOiAyNTBweDsNCiAgDQogIGJhY2tncm91bmQtY29sb3I6ICMyMjI7DQogIGJveC1zaGFkb3c6IDBweCAwcHggMjBweCAjMDAwOw0KfQ0KDQojbm90aWZpY2F0aW9uIGg1IHsNCiAgYmFja2dyb3VuZC1jb2xvcjogIzEyMTIxMjsNCiAgcGFkZGluZzogNXB4IDEwcHggNXB4IDEwcHg7DQp9DQoNCiNub3RpZmljYXRpb24gcHJlIHsNCiAgcGFkZGluZzogMHB4IDEwcHggMHB4IDEwcHg7DQp9DQoNCiNub3RpZmljYXRpb24gcCB7DQogIGZvbnQtc2l6ZTogMTAgcHg7DQogIG1hcmdpbjogMHB4Ow0KICBwYWRkaW5nOiAwcHggMTBweCA1cHggMTBweDsNCn0NCg0KI25vdGlmaWNhdGlvbiAuZWxlbWVudCB7DQogIC8qcGFkZGluZzogMHB4IDVweDsqLw0KICBtYXJnaW46IDVweCA1cHg7DQogIGJvcmRlci1yYWRpdXM6IDVweDsNCiAgYmFja2dyb3VuZC1jb2xvcjogIzE4MTgxODsNCiAgYm9yZGVyLWxlZnQ6IDEwcHggc29saWQgZ3JlZW47DQp9DQoNCg0KQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2MjBweCl7DQogIGJvZHkgew0KICAgIHdpZHRoOiAxMDAlOw0KICAgIGJhY2tncm91bmQtY29sb3I6ICM0NDQ7DQogIH0NCg0KICBoMSB7DQogICAgZm9udC1zaXplOiAyNnB4Ow0KICAgIGxldHRlci1zcGFjaW5nOiAzcHg7DQogIH0NCg0KICBuYXYgcCB7DQogICAgZGlzcGxheTogYmxvY2s7DQogIH0NCg0KDQoNCiAgI2hlYWRlcl9jb25maWcgew0KICAgIGRpc3BsYXk6IGJsb2NrOw0KICAgIGhlaWdodDogMTAwcHg7DQogICAgYmFja2dyb3VuZDogdXJsKCIuLi9pbWcvbG9nb193XzYwMHgyMDAucG5nIik7DQogICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDsNCiAgICANCiAgICBiYWNrZ3JvdW5kLXNpemU6IDMwMHB4IDEwMHB4Ow0KICB9DQoNCiAgI3NjcmVlbkxvZyB7DQogICAgbWFyZ2luLWxlZnQ6IDMwMHB4Ow0KDQogICAgdHJhbnNpdGlvbjogbm9uZTsNCiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDsNCiAgICBib3JkZXItYm90dG9tOiBzb2xpZCAxcHggdHJhbnNwYXJlbnQ7DQogICAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggIzIyMjsNCiAgfQ0KDQogICNzZXR0aW5ncyB7DQogICAgLyoNCiAgICBoZWlnaHQ6IC13ZWJraXQtY2FsYygxMDAlIC0gMTAwcHgpOw0KICAgIGhlaWdodDogLW1vei1jYWxjKDEwMCUgLSAxMDBweCk7DQogICAgaGVpZ2h0OiBjYWxjKDEwMCUgLSAxMDBweCk7DQogICAgKi8NCiAgICBwb3NpdGlvbjogcmVsYXRpdmU7DQogICAgb3ZlcmZsb3c6IGF1dG87DQogIH0NCg0KDQogIC5zY3JlZW5Mb2dIaWRkZW4gew0KICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDBweCwgMHB4KTsNCiAgfQ0KDQoNCiAgI2JveCB7DQogICAgZGlzcGxheTogYmxvY2s7DQogICAgbWluLWhlaWdodDogNTAwcHg7DQogICAgbWF4LXdpZHRoOiA1MDBweDsNCiAgICBtYXJnaW46IDEwcHggYXV0bzsNCiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNDQ0Ow0KICAgIGJveC1zaGFkb3c6IDBweCA1cHggNXB4ICMyMjI7DQoNCiAgICBkaXNwbGF5OiBmbGV4Ow0KICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47DQogIH0NCg0KICAjc2V0dGluZ3MsICNzZXR0aW5ncy1mb290ZXIgew0KICAgIA0KICB9DQp9DQo=" webUI["html/img/BC-QR.jpg"] = "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" webUI["html/img/filter.png"] = "iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAAAXNSR0IArs4c6QAAAAlwSFlzAAAsSwAALEsBpT2WqQAABCRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IlhNUCBDb3JlIDUuNC4wIj4KICAgPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIgogICAgICAgICAgICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgICAgICAgICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyI+CiAgICAgICAgIDx0aWZmOlJlc29sdXRpb25Vbml0PjI8L3RpZmY6UmVzb2x1dGlvblVuaXQ+CiAgICAgICAgIDx0aWZmOkNvbXByZXNzaW9uPjU8L3RpZmY6Q29tcHJlc3Npb24+CiAgICAgICAgIDx0aWZmOlhSZXNvbHV0aW9uPjI4ODwvdGlmZjpYUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6T3JpZW50YXRpb24+MTwvdGlmZjpPcmllbnRhdGlvbj4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+Mjg4PC90aWZmOllSZXNvbHV0aW9uPgogICAgICAgICA8ZXhpZjpQaXhlbFhEaW1lbnNpb24+NTA8L2V4aWY6UGl4ZWxYRGltZW5zaW9uPgogICAgICAgICA8ZXhpZjpDb2xvclNwYWNlPjE8L2V4aWY6Q29sb3JTcGFjZT4KICAgICAgICAgPGV4aWY6UGl4ZWxZRGltZW5zaW9uPjUwPC9leGlmOlBpeGVsWURpbWVuc2lvbj4KICAgICAgICAgPGRjOnN1YmplY3Q+CiAgICAgICAgICAgIDxyZGY6QmFnLz4KICAgICAgICAgPC9kYzpzdWJqZWN0PgogICAgICAgICA8eG1wOk1vZGlmeURhdGU+MjAxOC0wNy0yOFQxOTowNzo2OTwveG1wOk1vZGlmeURhdGU+CiAgICAgICAgIDx4bXA6Q3JlYXRvclRvb2w+UGl4ZWxtYXRvciAzLjM8L3htcDpDcmVhdG9yVG9vbD4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgIDwvcmRmOlJERj4KPC94OnhtcG1ldGE+Cs038OQAAAOISURBVGgF5ZpLSBVRGMfvvfmqCKKiKCqKtE3SQ8haJJm1ctPCZYHrFhXtohcUBLVsU1BRBJKLXpsSKs1aCL1oUUhvMgIloodZKmLZ72+OzNVx7jzOXGfqg/89Z875zv/7f35n7px7vanUP2JptzyGhoYKmK8GW0EZmA/mgW7wHrwDN0BTOp0epPVtxBBnLdgIVoE5YBboBR2gDTTA/5DWn0FeDPaBz8CLdeF0EBR5jYRvKbgABoAXa8Opwit/CudK8NoLs4PPM8ZyBsNnB/jpsD7X0C8cjgDXnaQkqkEPCGMSuGWivxxzx8OQj6xtpHWuPhPloHfEMWzTD0HN2GQY2xuW2Lb+/Fh+VaIQPLE5meh+gmSxFYz+BjBogtjGscfiH26Z2GmbNNltVQAIpwDdP6ZNO2iRYqTpZGhfgWUaiMC2w1kCzkbALcqLvDVvUyK6MW9HFES0b8BvsFwXEZi4F+iBtykCcjtlqf0igr52VJ1eqiIgzzdlrRIZfWfJd3SD8ZbqHvkB4XSDpJNB9V0VcX/cT4Ys/zEzSuSj/3WxW9GpRD7ETpZ/QcOJ6LyfdHugitxNehbob9G7lo4PXWBmQhPqQ/fsDOeUfjqNCU1Csi+TQ5+2luzc3yaRr6elevQZwhZr4bomYam0U41yabYqov5hvSTMjlp6RyuiAarSTLPZmox5246+lVREx/isiuh6NxhUJwF2yEpCWu1bK8WEsjyRgCSa0XrVrjNra2mC7TWD5ilYAuJoA4jSlnppF5dVEU3g0ENTD4b3nsZiZsfGJuGqj8qY+CINGqP2GLZCJ+HjtpblxAJ9k3cPrLfGJrnVUaSCarxw0jFua1lOLNBerANx+byya6IkLM2uLZWpAl6/Mcc1EjvjKtLrJNLqI5HnjfQ+bsVeteb0g2y/t7hGvd7CNjenOL8OkJ40KtOdTF+Cl/nV6Mkf4gxocI9vZPYLLKs9iQrqRIACcM2IXGeSboYrg+rztY5ARaDJWUeo0W+sXudLTFhnApaAW6FkZy/+yuXasLoCrSfwVHAnW0+gK93YawKJMLUIAdNAKwhqnSxcYUpPKB6EBE2mg7VR///EX24jybTQerXnOC70FyVP3gjTPXPTQyaP8NFPNeJrCNTPP667JKOq6VNo/A2hes5ccUjmEmPmDoD5+FMgWCcA+3FG57QJP//kQ1PgGBIOToEDgUn+t4V/AJeGknwARIKLAAAAAElFTkSuQmCC" webUI["html/img/log.png"] = "iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAAAXNSR0IArs4c6QAAAAlwSFlzAAAsSwAALEsBpT2WqQAABCRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IlhNUCBDb3JlIDUuNC4wIj4KICAgPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIgogICAgICAgICAgICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgICAgICAgICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyI+CiAgICAgICAgIDx0aWZmOlJlc29sdXRpb25Vbml0PjI8L3RpZmY6UmVzb2x1dGlvblVuaXQ+CiAgICAgICAgIDx0aWZmOkNvbXByZXNzaW9uPjU8L3RpZmY6Q29tcHJlc3Npb24+CiAgICAgICAgIDx0aWZmOlhSZXNvbHV0aW9uPjI4ODwvdGlmZjpYUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6T3JpZW50YXRpb24+MTwvdGlmZjpPcmllbnRhdGlvbj4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+Mjg4PC90aWZmOllSZXNvbHV0aW9uPgogICAgICAgICA8ZXhpZjpQaXhlbFhEaW1lbnNpb24+NTA8L2V4aWY6UGl4ZWxYRGltZW5zaW9uPgogICAgICAgICA8ZXhpZjpDb2xvclNwYWNlPjE8L2V4aWY6Q29sb3JTcGFjZT4KICAgICAgICAgPGV4aWY6UGl4ZWxZRGltZW5zaW9uPjUwPC9leGlmOlBpeGVsWURpbWVuc2lvbj4KICAgICAgICAgPGRjOnN1YmplY3Q+CiAgICAgICAgICAgIDxyZGY6QmFnLz4KICAgICAgICAgPC9kYzpzdWJqZWN0PgogICAgICAgICA8eG1wOk1vZGlmeURhdGU+MjAxOC0xMC0xNFQxMToxMDo0MjwveG1wOk1vZGlmeURhdGU+CiAgICAgICAgIDx4bXA6Q3JlYXRvclRvb2w+UGl4ZWxtYXRvciAzLjM8L3htcDpDcmVhdG9yVG9vbD4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgIDwvcmRmOlJERj4KPC94OnhtcG1ldGE+CkP32mEAAANASURBVGgF7ZlPiE1RHMffw1AYhiL5k1HEijJiYaFZiHoyFspW2RFRkkSZGgtFWJIwi9FYmo0VOywkKTbKgjSlWcifRCPX51dv6s2d33md77vvXjfmV9859/7u93x/v98959x73p1KRbAkSargAhgDH0E/qIYkuHYEvAPGvwbmNOEerXM/0Q6BRSFuZj/ix0DaDnvCkGppIucDAe4OhzvkcUO+GaELAf8ux7/b8Zlrr+Pvc3zm6nX8NccXdKmFLHaUPJ/Ruhyu5zNap8Nd6PiCLrUQTyi0Rjy/5/M0Zd+smB7M32XwtgBr07aC6yfSTs7XO77OALfH4VbgHsD/HLytVquJx4nyIdQFBsHftscksK5Z0sGhpuN8Or4Aa5sJFHjtO7G2MjKvvZjN1sglOpSlCMt9LrDZ4S4Hd0Qg24vrK+gAZbPtjMqTdFKhEdkIsYxFWP720JlioUK6pzDL41jtpRIqxOOWxecuB3fhRGT8E85YBK8VygI6GSRTCxlH3TaJgyw4O2678aCxO94LbNPovYDdmOrUukIBN/MqwjJEOwGPOHR31W4VONVCLEBR9lAJpBbSrYhn5K5R+quFnGUOr1ICtMIlxjz6XVb6qot9JeKvCPSAdlQJJHDtd8hOIN0wtRDLxx6Ntr0ulalTq1TJNyYzXUjj3SjD8X87Iva7uR8s5+2bi6FtX1oOgi8g2tSn1g2yPx+t3gIR/c90s1+C1vuO/YkxdWrdjxFtE2dE0VELWaqIZ+QuUfqrhZxmyKUvgEoyE1xizOR4YOI8plXXyAZEbYsyTJvXFsUW+x6wGUSbWogJ237rZHSEgojq1CooLT3MdCH6Pcu3xz8zIq0s9lvc2+sgz6dWH/rnQPB/jlybZGoh99hCHJqk0P6TD0jaI/4b7dVYeXVq2bemokyKpRZiHwWKMimWWshxhryjoEpOKXHUNbIN8WcUc5s2r8Vue7l9oAaiTS3EhDeB6EUYnUlGojq1MobLr3uokB/5hcys7OYWKuRl5nD5Cbi5uYXw0ntPHoay2S8Seuol5RZSJ0r/n/DEc/BdrN9kTZrH7BkwDspgwyQxW6uggU3nHnAXvAG/QZE2SrARsL8hJffwDxM0mNDPvT8IAAAAAElFTkSuQmCC" @@ -25,14 +25,14 @@ func loadHTMLMap() { webUI["html/img/xmltv.png"] = "iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAAAXNSR0IArs4c6QAAAAlwSFlzAAAsSwAALEsBpT2WqQAABCRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IlhNUCBDb3JlIDUuNC4wIj4KICAgPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIgogICAgICAgICAgICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgICAgICAgICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyI+CiAgICAgICAgIDx0aWZmOlJlc29sdXRpb25Vbml0PjI8L3RpZmY6UmVzb2x1dGlvblVuaXQ+CiAgICAgICAgIDx0aWZmOkNvbXByZXNzaW9uPjU8L3RpZmY6Q29tcHJlc3Npb24+CiAgICAgICAgIDx0aWZmOlhSZXNvbHV0aW9uPjI4ODwvdGlmZjpYUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6T3JpZW50YXRpb24+MTwvdGlmZjpPcmllbnRhdGlvbj4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+Mjg4PC90aWZmOllSZXNvbHV0aW9uPgogICAgICAgICA8ZXhpZjpQaXhlbFhEaW1lbnNpb24+NTA8L2V4aWY6UGl4ZWxYRGltZW5zaW9uPgogICAgICAgICA8ZXhpZjpDb2xvclNwYWNlPjE8L2V4aWY6Q29sb3JTcGFjZT4KICAgICAgICAgPGV4aWY6UGl4ZWxZRGltZW5zaW9uPjUwPC9leGlmOlBpeGVsWURpbWVuc2lvbj4KICAgICAgICAgPGRjOnN1YmplY3Q+CiAgICAgICAgICAgIDxyZGY6QmFnLz4KICAgICAgICAgPC9kYzpzdWJqZWN0PgogICAgICAgICA8eG1wOk1vZGlmeURhdGU+MjAxOC0wNy0yOFQyMDowNzozMzwveG1wOk1vZGlmeURhdGU+CiAgICAgICAgIDx4bXA6Q3JlYXRvclRvb2w+UGl4ZWxtYXRvciAzLjM8L3htcDpDcmVhdG9yVG9vbD4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgIDwvcmRmOlJERj4KPC94OnhtcG1ldGE+Co6j9bsAAAGgSURBVGgF7VqxTsNADL0gYGEon8DOwsbAAH8BYmJn6cYIn8DC3h0+oixISFRiYYCJL0AwMMBAeK5w2rpV6uikxHfYknW98+vds18TK21DWGBlWR7CH+BfcEv2AzLP8HP42gLqkyUATuEp2PWEdQjF9ATs1zF/g29Mrxt+vVcUxR3xWxEktzFPJQmivsv8ZSI9DiQyVnxlIonwn6fpiczXpNuVVXH8O+a3Ys3y9NUyuf/NTTbEHZTjUlGSRzSiPhroUIENwB4AS/vS/susDwDhTpYBER9g7wHh5DWyibV9CiitCZbIafDEYUuJHQI3Nr/9ciWsjK6IFSWYhyvClbAyZqOIlYJG84jq7E1Ot97Zm+TinV1TrWwudk9EI3ebGFekzWprzspGEU2ySWCiOrs/s9dr7M/s9fVJJJrNXcsTsfaJc0WsKZINH+/sf1Jqvl1n1f2ZnStRN/pdq646XcSkIh9dkIg4s+IrE3nCpp8RG7f91ns+cCYR/LD4jcAZB42PN+A7/mcQ8ZxJhBYQvMJwBB/BKTFLVoLMC/wCfgyv7BesTKUC2LKM3wAAAABJRU5ErkJggg==" webUI["html/index.html"] = "PCFkb2N0eXBlIGh0bWw+DQo8aHRtbD4NCiAgPGhlYWQ+DQogICAgPG1ldGEgY2hhcnNldD0idXRmLTgiPg0KICAgIDwhLS0tDQogICAgPG1ldGEgbmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9IndpZHRoPWRldmljZS13aWR0aCwgaW5pdGlhbC1zY2FsZT0xLjAiIC8+IA0KICAgIC0tPg0KICAgIDx0aXRsZT54VGVWZTwvdGl0bGU+DQogICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJjc3Mvc2NyZWVuLmNzcyIgdHlwZT0idGV4dC9jc3MiPg0KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iY3NzL2Jhc2UuY3NzIiB0eXBlPSJ0ZXh0L2NzcyI+DQoNCiAgICA8c2NyaXB0IGxhbmd1YWdlPSJqYXZhc2NyaXB0IiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ianMvbmV0d29ya190cy5qcyI+PC9zY3JpcHQ+DQogICAgPHNjcmlwdCBsYW5ndWFnZT0iamF2YXNjcmlwdCIgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9ImpzL21lbnVfdHMuanMiPjwvc2NyaXB0Pg0KICAgIDxzY3JpcHQgbGFuZ3VhZ2U9ImphdmFzY3JpcHQiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJqcy9zZXR0aW5nc190cy5qcyI+PC9zY3JpcHQ+DQogICAgPHNjcmlwdCBsYW5ndWFnZT0iamF2YXNjcmlwdCIgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9ImpzL2xvZ3NfdHMuanMiPjwvc2NyaXB0Pg0KICAgIDxzY3JpcHQgbGFuZ3VhZ2U9ImphdmFzY3JpcHQiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJqcy9iYXNlX3RzLmpzIj48L3NjcmlwdD4NCg0KICA8L2hlYWQ+DQoNCiAgICA8Ym9keSBvbmxvYWQ9ImphdmFzY3JpcHQ6IFBhZ2VSZWFkeSgpOyI+DQoNCiAgICAgIDxkaXYgaWQ9ImxvYWRpbmciIGNsYXNzPSJub25lIj4NCiAgICAgICAgPGRpdiBjbGFzcz0ibG9hZGVyIj48L2Rpdj4NCiAgICAgIDwvZGl2Pg0KDQogICAgICA8ZGl2IGlkPSJwb3B1cCIgY2xhc3M9Im5vbmUiPg0KICAgICAgICA8ZGl2IGlkPSJwb3B1cC1jdXN0b20iPjwvZGl2Pg0KICAgICAgPC9kaXY+DQoNCiAgICAgIDxkaXYgaWQ9ImxheW91dCI+DQoNCiAgICAgICAgPCEtLQ0KICAgICAgICA8ZGl2IGlkPSJub3RpZmljYXRpb24iPg0KICAgICAgICAgIDxkaXYgY2xhc3M9ImVsZW1lbnQiPg0KICAgICAgICAgICAgPGg1PlhFUEc8L2g1Pg0KICAgICAgICAgICAgPHByZT4xMS4wNS4yMDE5IC0gMjA6MjE8L3ByZT4NCiAgICAgICAgICAgIDxocj4NCiAgICAgICAgICAgIDxwPkhhbGxvIGRhcyBpc3QgZWluIFRlc3QuIFVuZCBub2NoIG1laHIgVGV4dC48L3A+DQogICAgICAgICAgPC9kaXY+DQogICAgICAgIDwvZGl2Pg0KICAgICAgLS0+DQoNCiAgICAgICAgPGRpdiBpZD0ibWVudS13cmFwcGVyIiBjbGFzcz0ibGF5b3V0LWxlZnQiPg0KICAgICAgICAgIDxkaXYgaWQ9ICJicmFuY2giPjwvZGl2Pg0KICAgICAgICAgIDxkaXYgaWQ9ImxvZ28iPjwvZGl2Pg0KICAgICAgICAgIDxuYXYgaWQ9Im1haW4tbWVudSI+PC9uYXY+DQogICAgICAgIDwvZGl2Pg0KDQogICAgICAgIDxkaXYgY2xhc3M9ImxheW91dC1yaWdodCI+DQoNCiAgICAgICAgICA8dGFibGUgaWQ9ImNsaWVudEluZm8iIGNsYXNzPSIiPg0KDQogICAgICAgICAgICA8dHI+DQogICAgICAgICAgICAgIDx0ZCBjbGFzcz0idGRLZXkiPnhUZVZlOjwvdGQ+DQogICAgICAgICAgICAgIDx0ZCBpZD0idmVyc2lvbiIgY2xhc3M9InRkVmFsIj4mbmJzcDs8L3RkPg0KICAgICAgICAgICAgICA8dGQgY2xhc3M9InRkS2V5Ij5PUzo8L3RkPg0KICAgICAgICAgICAgICA8dGQgaWQ9Im9zIiBjbGFzcz0idGRWYWwiPiZuYnNwOzwvdGQ+DQogICAgICAgICAgICAgIDx0ZCBjbGFzcz0idGRLZXkgcGhvbmUiPkRWUiBJUDo8L3RkPg0KICAgICAgICAgICAgICA8dGQgaWQ9IkRWUiIgY2xhc3M9InRkVmFsIHBob25lIj4mbmJzcDs8L3RkPg0KICAgICAgICAgICAgPC90cj4NCg0KICAgICAgICAgICAgPHRyPg0KICAgICAgICAgICAgICA8dGQgY2xhc3M9InRkS2V5Ij5VVUlEOjwvdGQ+DQogICAgICAgICAgICAgIDx0ZCBpZD0idXVpZCIgY2xhc3M9InRkVmFsIj4mbmJzcDs8L3RkPg0KICAgICAgICAgICAgICA8dGQgY2xhc3M9InRkS2V5Ij5BcmNoOjwvdGQ+DQogICAgICAgICAgICAgIDx0ZCBpZD0iYXJjaCIgY2xhc3M9InRkVmFsIj4mbmJzcDs8L3RkPg0KICAgICAgICAgICAgICA8dGQgY2xhc3M9InRkS2V5IHBob25lIj5NM1UgVVJMOjwvdGQ+DQogICAgICAgICAgICAgIDx0ZCBpZD0ibTN1LXVybCIgY2xhc3M9InRkVmFsIHBob25lIj4mbmJzcDs8L3RkPg0KICAgICAgICAgICAgPC90cj4NCg0KICAgICAgICAgICAgPHRyPg0KICAgICAgICAgICAgICA8dGQgY2xhc3M9InRkS2V5Ij5BdmFpbGFibGUgU3RyZWFtczo8L3RkPg0KICAgICAgICAgICAgICA8dGQgaWQ9InN0cmVhbXMiIGNsYXNzPSJ0ZFZhbCI+Jm5ic3A7PC90ZD4NCiAgICAgICAgICAgICAgPHRkIGNsYXNzPSJ0ZEtleSI+RVBHIFNvdXJjZTo8L3RkPg0KICAgICAgICAgICAgICA8dGQgaWQ9ImVwZ1NvdXJjZSIgY2xhc3M9InRkVmFsIj4mbmJzcDs8L3RkPg0KICAgICAgICAgICAgICA8dGQgY2xhc3M9InRkS2V5IHBob25lIj5YRVBHIFVSTDo8L3RkPg0KICAgICAgICAgICAgICA8dGQgaWQ9InhlcGctdXJsIiBjbGFzcz0idGRWYWwgcGhvbmUiPiZuYnNwOzwvdGQ+DQogICAgICAgICAgICA8L3RyPg0KDQogICAgICAgICAgICA8dHI+DQogICAgICAgICAgICAgIDx0ZCBjbGFzcz0idGRLZXkiPlhFUEcgQ2hhbm5lbHM6PC90ZD4NCiAgICAgICAgICAgICAgPHRkIGlkPSJ4ZXBnIiBjbGFzcz0idGRWYWwiPiZuYnNwOzwvdGQ+DQogICAgICAgICAgICAgIDx0ZCBjbGFzcz0idGRLZXkiPkVycm9yczo8L3RkPg0KICAgICAgICAgICAgICA8dGQgaWQ9ImVycm9ycyIgY2xhc3M9InRkVmFsIj4mbmJzcDs8L3RkPg0KICAgICAgICAgICAgICA8dGQgY2xhc3M9InRkS2V5Ij5XYXJuaW5nczo8L3RkPg0KICAgICAgICAgICAgICA8dGQgaWQ9Indhcm5pbmdzIiBjbGFzcz0idGRWYWwiPiZuYnNwOzwvdGQ+DQogICAgICAgICAgICA8L3RyPg0KDQogICAgICAgICAgPC90YWJsZT4NCiAgICAgICAgIA0KICAgICAgICAgIDxkaXYgaWQ9Im15U3RyZWFtc0JveCIgY2xhc3M9Im5vdFZpc2libGUiPg0KDQogICAgICAgICAgICA8ZGl2IGlkPSJhbGxTdHJlYW1zIj4NCiAgICAgICAgICAgICAgPHRhYmxlIGlkPSJhY3RpdmVTdHJlYW1zIj48L3RhYmxlPg0KICAgICAgICAgICAgICA8dGFibGUgaWQ9ImluYWN0aXZlU3RyZWFtcyI+PC90YWJsZT4NCiAgICAgICAgICAgIDwvZGl2Pg0KDQogICAgICAgICAgPC9kaXY+DQogICAgICAgICAgDQogICAgICAgICAgPGRpdiBpZD0iY29udGVudCIgY2xhc3M9IiI+PC9kaXY+DQogICAgICAgICAgICANCiAgICAgICAgPC9kaXY+DQoNCiAgICAgIDwvZGl2Pg0KICAgICAgDQogICAgPC9ib2R5Pg0KICAgIA0KPC9odG1sPg==" webUI["html/js/authentication_ts.js"] = "ZnVuY3Rpb24gbG9naW4oKSB7DQogICAgdmFyIGVyciA9IGZhbHNlOw0KICAgIHZhciBkYXRhID0gbmV3IE9iamVjdCgpOw0KICAgIHZhciBkaXYgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29udGVudCIpOw0KICAgIHZhciBmb3JtID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImF1dGhlbnRpY2F0aW9uIik7DQogICAgdmFyIGlucHV0cyA9IGRpdi5nZXRFbGVtZW50c0J5VGFnTmFtZSgiSU5QVVQiKTsNCiAgICBmb3IgKHZhciBpID0gaW5wdXRzLmxlbmd0aCAtIDE7IGkgPj0gMDsgaS0tKSB7DQogICAgICAgIHZhciBrZXkgPSBpbnB1dHNbaV0ubmFtZTsNCiAgICAgICAgdmFyIHZhbHVlID0gaW5wdXRzW2ldLnZhbHVlOw0KICAgICAgICBpZiAodmFsdWUubGVuZ3RoID09IDApIHsNCiAgICAgICAgICAgIGlucHV0c1tpXS5zdHlsZS5ib3JkZXJDb2xvciA9ICJyZWQiOw0KICAgICAgICAgICAgZXJyID0gdHJ1ZTsNCiAgICAgICAgfQ0KICAgICAgICBkYXRhW2tleV0gPSB2YWx1ZTsNCiAgICB9DQogICAgaWYgKGVyciA9PSB0cnVlKSB7DQogICAgICAgIGRhdGEgPSBuZXcgT2JqZWN0KCk7DQogICAgICAgIHJldHVybjsNCiAgICB9DQogICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoImNvbmZpcm0iKSkgew0KICAgICAgICBpZiAoZGF0YVsiY29uZmlybSJdICE9IGRhdGFbInBhc3N3b3JkIl0pIHsNCiAgICAgICAgICAgIGFsZXJ0KCJzZGFmc2QiKTsNCiAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdwYXNzd29yZCcpLnN0eWxlLmJvcmRlckNvbG9yID0gInJlZCI7DQogICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY29uZmlybScpLnN0eWxlLmJvcmRlckNvbG9yID0gInJlZCI7DQogICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZXJyIikuaW5uZXJIVE1MID0gInt7LmFjY291bnQuZmFpbGVkfX0iOw0KICAgICAgICAgICAgcmV0dXJuOw0KICAgICAgICB9DQogICAgfQ0KICAgIGZvcm0uc3VibWl0KCk7DQp9DQo=" - webUI["html/js/base_ts.js"] = "dmFyIFNFUlZFUiA9IG5ldyBPYmplY3QoKTsNCnZhciBCVUxLX0VESVQgPSBmYWxzZTsNCnZhciBDT0xVTU5fVE9fU09SVDsNCnZhciBTRUFSQ0hfTUFQUElORyA9IG5ldyBPYmplY3QoKTsNCnZhciBVTkRPID0gbmV3IE9iamVjdCgpOw0KdmFyIFNFUlZFUl9DT05ORUNUSU9OID0gZmFsc2U7DQp2YXIgV1NfQVZBSUxBQkxFID0gZmFsc2U7DQovLyBNZW51DQp2YXIgbWVudUl0ZW1zID0gbmV3IEFycmF5KCk7DQptZW51SXRlbXMucHVzaChuZXcgTWFpbk1lbnVJdGVtKCJwbGF5bGlzdCIsICJ7ey5tYWluTWVudS5pdGVtLnBsYXlsaXN0fX0iLCAibTN1LnBuZyIsICJ7ey5tYWluTWVudS5oZWFkbGluZS5wbGF5bGlzdH19IikpOw0KLy9tZW51SXRlbXMucHVzaChuZXcgTWFpbk1lbnVJdGVtKCJwbXNJRCIsICJ7ey5tYWluTWVudS5pdGVtLnBtc0lEfX0iLCAibnVtYmVyLnBuZyIsICJ7ey5tYWluTWVudS5oZWFkbGluZS5wbXNJRH19IikpDQptZW51SXRlbXMucHVzaChuZXcgTWFpbk1lbnVJdGVtKCJmaWx0ZXIiLCAie3subWFpbk1lbnUuaXRlbS5maWx0ZXJ9fSIsICJmaWx0ZXIucG5nIiwgInt7Lm1haW5NZW51LmhlYWRsaW5lLmZpbHRlcn19IikpOw0KbWVudUl0ZW1zLnB1c2gobmV3IE1haW5NZW51SXRlbSgieG1sdHYiLCAie3subWFpbk1lbnUuaXRlbS54bWx0dn19IiwgInhtbHR2LnBuZyIsICJ7ey5tYWluTWVudS5oZWFkbGluZS54bWx0dn19IikpOw0KbWVudUl0ZW1zLnB1c2gobmV3IE1haW5NZW51SXRlbSgibWFwcGluZyIsICJ7ey5tYWluTWVudS5pdGVtLm1hcHBpbmd9fSIsICJtYXBwaW5nLnBuZyIsICJ7ey5tYWluTWVudS5oZWFkbGluZS5tYXBwaW5nfX0iKSk7DQptZW51SXRlbXMucHVzaChuZXcgTWFpbk1lbnVJdGVtKCJ1c2VycyIsICJ7ey5tYWluTWVudS5pdGVtLnVzZXJzfX0iLCAidXNlcnMucG5nIiwgInt7Lm1haW5NZW51LmhlYWRsaW5lLnVzZXJzfX0iKSk7DQptZW51SXRlbXMucHVzaChuZXcgTWFpbk1lbnVJdGVtKCJzZXR0aW5ncyIsICJ7ey5tYWluTWVudS5pdGVtLnNldHRpbmdzfX0iLCAic2V0dGluZ3MucG5nIiwgInt7Lm1haW5NZW51LmhlYWRsaW5lLnNldHRpbmdzfX0iKSk7DQptZW51SXRlbXMucHVzaChuZXcgTWFpbk1lbnVJdGVtKCJsb2ciLCAie3subWFpbk1lbnUuaXRlbS5sb2d9fSIsICJsb2cucG5nIiwgInt7Lm1haW5NZW51LmhlYWRsaW5lLmxvZ319IikpOw0KbWVudUl0ZW1zLnB1c2gobmV3IE1haW5NZW51SXRlbSgibG9nb3V0IiwgInt7Lm1haW5NZW51Lml0ZW0ubG9nb3V0fX0iLCAibG9nb3V0LnBuZyIsICJ7ey5tYWluTWVudS5oZWFkbGluZS5sb2dvdXR9fSIpKTsNCi8vIFNldHRpbmdzIGNhdGVnb3JpZXMNCnZhciBzZXR0aW5nc0NhdGVnb3J5ID0gbmV3IEFycmF5KCk7DQpzZXR0aW5nc0NhdGVnb3J5LnB1c2gobmV3IFNldHRpbmdzQ2F0ZWdvcnlJdGVtKCJ7ey5zZXR0aW5ncy5jYXRlZ29yeS5nZW5lcmFsfX0iLCAidGxzTW9kZSx4dGV2ZUF1dG9VcGRhdGUsaG9zdElQLHR1bmVyLGVwZ1NvdXJjZSxhcGkiKSk7DQpzZXR0aW5nc0NhdGVnb3J5LnB1c2gobmV3IFNldHRpbmdzQ2F0ZWdvcnlJdGVtKCJ7ey5zZXR0aW5ncy5jYXRlZ29yeS5maWxlc319IiwgInVwZGF0ZSxmaWxlcy51cGRhdGUsdGVtcC5wYXRoLGNhY2hlLmltYWdlcyx4ZXBnLnJlcGxhY2UubWlzc2luZy5pbWFnZXMiKSk7DQpzZXR0aW5nc0NhdGVnb3J5LnB1c2gobmV3IFNldHRpbmdzQ2F0ZWdvcnlJdGVtKCJ7ey5zZXR0aW5ncy5jYXRlZ29yeS5zdHJlYW1pbmd9fSIsICJidWZmZXIsdWRweHksYnVmZmVyLnNpemUua2Isc3RvcmVCdWZmZXJJblJBTSxidWZmZXIudGltZW91dCx1c2VyLmFnZW50LGZmbXBlZy5wYXRoLGZmbXBlZy5vcHRpb25zLHZsYy5wYXRoLHZsYy5vcHRpb25zIikpOw0Kc2V0dGluZ3NDYXRlZ29yeS5wdXNoKG5ldyBTZXR0aW5nc0NhdGVnb3J5SXRlbSgie3suc2V0dGluZ3MuY2F0ZWdvcnkuYmFja3VwfX0iLCAiYmFja3VwLnBhdGgsYmFja3VwLmtlZXAiKSk7DQpzZXR0aW5nc0NhdGVnb3J5LnB1c2gobmV3IFNldHRpbmdzQ2F0ZWdvcnlJdGVtKCJ7ey5zZXR0aW5ncy5jYXRlZ29yeS5hdXRoZW50aWNhdGlvbn19IiwgImF1dGhlbnRpY2F0aW9uLndlYixhdXRoZW50aWNhdGlvbi5wbXMsYXV0aGVudGljYXRpb24ubTN1LGF1dGhlbnRpY2F0aW9uLnhtbCxhdXRoZW50aWNhdGlvbi5hcGkiKSk7DQpmdW5jdGlvbiBzaG93UG9wVXBFbGVtZW50KGVsbSkgew0KICAgIHZhciBhbGxFbGVtZW50cyA9IG5ldyBBcnJheSgicG9wdXAtY3VzdG9tIik7DQogICAgZm9yICh2YXIgaSA9IDA7IGkgPCBhbGxFbGVtZW50cy5sZW5ndGg7IGkrKykgew0KICAgICAgICBzaG93RWxlbWVudChhbGxFbGVtZW50c1tpXSwgZmFsc2UpOw0KICAgIH0NCiAgICBzaG93RWxlbWVudChlbG0sIHRydWUpOw0KICAgIHNldFRpbWVvdXQoZnVuY3Rpb24gKCkgew0KICAgICAgICBzaG93RWxlbWVudCgicG9wdXAiLCB0cnVlKTsNCiAgICB9LCAxMCk7DQogICAgcmV0dXJuOw0KfQ0KZnVuY3Rpb24gc2hvd0VsZW1lbnQoZWxtSUQsIHR5cGUpIHsNCiAgICB2YXIgY3NzQ2xhc3M7DQogICAgc3dpdGNoICh0eXBlKSB7DQogICAgICAgIGNhc2UgdHJ1ZToNCiAgICAgICAgICAgIGNzc0NsYXNzID0gImJsb2NrIjsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlIGZhbHNlOg0KICAgICAgICAgICAgY3NzQ2xhc3MgPSAibm9uZSI7DQogICAgICAgICAgICBicmVhazsNCiAgICB9DQogICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoZWxtSUQpLmNsYXNzTmFtZSA9IGNzc0NsYXNzOw0KfQ0KZnVuY3Rpb24gY2hhbmdlQnV0dG9uQWN0aW9uKGVsZW1lbnQsIGJ1dHRvbklELCBhdHRyaWJ1dGUpIHsNCiAgICB2YXIgdmFsdWUgPSBlbGVtZW50Lm9wdGlvbnNbZWxlbWVudC5zZWxlY3RlZEluZGV4XS52YWx1ZTsNCiAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChidXR0b25JRCkuc2V0QXR0cmlidXRlKGF0dHJpYnV0ZSwgdmFsdWUpOw0KfQ0KZnVuY3Rpb24gZ2V0TG9jYWxEYXRhKGRhdGFUeXBlLCBpZCkgew0KICAgIGxldCBkYXRhID0ge307DQogICAgc3dpdGNoIChkYXRhVHlwZSkgew0KICAgICAgICBjYXNlICJtM3UiOg0KICAgICAgICAgICAgZGF0YSA9IFNFUlZFUlsic2V0dGluZ3MiXVsiZmlsZXMiXVtkYXRhVHlwZV1baWRdOw0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGNhc2UgImhkaHIiOg0KICAgICAgICAgICAgZGF0YSA9IFNFUlZFUlsic2V0dGluZ3MiXVsiZmlsZXMiXVtkYXRhVHlwZV1baWRdOw0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGNhc2UgImZpbHRlciI6DQogICAgICAgIGNhc2UgImN1c3RvbS1maWx0ZXIiOg0KICAgICAgICBjYXNlICJncm91cC10aXRsZSI6DQogICAgICAgICAgICBpZiAoaWQgPT0gLTEpIHsNCiAgICAgICAgICAgICAgICBkYXRhWyJhY3RpdmUiXSA9IHRydWU7DQogICAgICAgICAgICAgICAgZGF0YVsiY2FzZVNlbnNpdGl2ZSJdID0gZmFsc2U7DQogICAgICAgICAgICAgICAgZGF0YVsiZGVzY3JpcHRpb24iXSA9ICIiOw0KICAgICAgICAgICAgICAgIGRhdGFbImV4Y2x1ZGUiXSA9ICIiOw0KICAgICAgICAgICAgICAgIGRhdGFbImZpbHRlciJdID0gIiI7DQogICAgICAgICAgICAgICAgZGF0YVsiaW5jbHVkZSJdID0gIiI7DQogICAgICAgICAgICAgICAgZGF0YVsibmFtZSJdID0gIiI7DQogICAgICAgICAgICAgICAgZGF0YVsidHlwZSJdID0gImdyb3VwLXRpdGxlIjsNCiAgICAgICAgICAgICAgICBkYXRhWyJwcmVzZXJ2ZU1hcHBpbmciXSA9IHRydWU7DQogICAgICAgICAgICAgICAgZGF0YVsic3RhcnRpbmdDaGFubmVsIl0gPSBTRVJWRVJbInNldHRpbmdzIl1bIm1hcHBpbmcuZmlyc3QuY2hhbm5lbCJdOw0KICAgICAgICAgICAgICAgIGRhdGFbImRlZmF1bHRNaXNzaW5nRVBHIl0gPSAiLSI7DQogICAgICAgICAgICAgICAgU0VSVkVSWyJzZXR0aW5ncyJdWyJmaWx0ZXIiXVtpZF0gPSBkYXRhOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgZGF0YSA9IFNFUlZFUlsic2V0dGluZ3MiXVsiZmlsdGVyIl1baWRdOw0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGNhc2UgInhtbHR2IjoNCiAgICAgICAgICAgIGRhdGEgPSBTRVJWRVJbInNldHRpbmdzIl1bImZpbGVzIl1bZGF0YVR5cGVdW2lkXTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJ1c2VycyI6DQogICAgICAgICAgICBkYXRhID0gU0VSVkVSWyJ1c2VycyJdW2lkXVsiZGF0YSJdOw0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGNhc2UgIm1hcHBpbmciOg0KICAgICAgICAgICAgZGF0YSA9IFNFUlZFUlsieGVwZyJdWyJlcGdNYXBwaW5nIl1baWRdOw0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGNhc2UgIm0zdUdyb3VwcyI6DQogICAgICAgICAgICBkYXRhID0gU0VSVkVSWyJkYXRhIl1bInBsYXlsaXN0Il1bIm0zdSJdWyJncm91cHMiXTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgIH0NCiAgICByZXR1cm4gZGF0YTsNCn0NCmZ1bmN0aW9uIGdldE93bk9ialByb3BzKG9iamVjdCkgew0KICAgIHJldHVybiBvYmplY3QgPyBPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyhvYmplY3QpIDogW107DQp9DQpmdW5jdGlvbiBnZXRBbGxTZWxlY3RlZENoYW5uZWxzKCkgew0KICAgIHZhciBjaGFubmVscyA9IG5ldyBBcnJheSgpOw0KICAgIGlmIChCVUxLX0VESVQgPT0gZmFsc2UpIHsNCiAgICAgICAgcmV0dXJuIGNoYW5uZWxzOw0KICAgIH0NCiAgICB2YXIgdHJzID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnRlbnRfdGFibGUiKS5nZXRFbGVtZW50c0J5VGFnTmFtZSgiVFIiKTsNCiAgICBmb3IgKHZhciBpID0gMTsgaSA8IHRycy5sZW5ndGg7IGkrKykgew0KICAgICAgICBpZiAodHJzW2ldLnN0eWxlLmRpc3BsYXkgIT0gIm5vbmUiKSB7DQogICAgICAgICAgICBpZiAodHJzW2ldLmZpcnN0Q2hpbGQuZmlyc3RDaGlsZC5jaGVja2VkID09IHRydWUpIHsNCiAgICAgICAgICAgICAgICBjaGFubmVscy5wdXNoKHRyc1tpXS5pZCk7DQogICAgICAgICAgICB9DQogICAgICAgIH0NCiAgICB9DQogICAgcmV0dXJuIGNoYW5uZWxzOw0KfQ0KZnVuY3Rpb24gc2VsZWN0QWxsQ2hhbm5lbHMoKSB7DQogICAgdmFyIGJ1bGsgPSBmYWxzZTsNCiAgICB2YXIgdHJzID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnRlbnRfdGFibGUiKS5nZXRFbGVtZW50c0J5VGFnTmFtZSgiVFIiKTsNCiAgICBpZiAodHJzWzBdLmZpcnN0Q2hpbGQuZmlyc3RDaGlsZC5jaGVja2VkID09IHRydWUpIHsNCiAgICAgICAgYnVsayA9IHRydWU7DQogICAgfQ0KICAgIGZvciAodmFyIGkgPSAxOyBpIDwgdHJzLmxlbmd0aDsgaSsrKSB7DQogICAgICAgIGlmICh0cnNbaV0uc3R5bGUuZGlzcGxheSAhPSAibm9uZSIpIHsNCiAgICAgICAgICAgIHN3aXRjaCAoYnVsaykgew0KICAgICAgICAgICAgICAgIGNhc2UgdHJ1ZToNCiAgICAgICAgICAgICAgICAgICAgdHJzW2ldLmZpcnN0Q2hpbGQuZmlyc3RDaGlsZC5jaGVja2VkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSBmYWxzZToNCiAgICAgICAgICAgICAgICAgICAgdHJzW2ldLmZpcnN0Q2hpbGQuZmlyc3RDaGlsZC5jaGVja2VkID0gZmFsc2U7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQogICAgfQ0KICAgIHJldHVybjsNCn0NCmZ1bmN0aW9uIGJ1bGtFZGl0KCkgew0KICAgIEJVTEtfRURJVCA9ICFCVUxLX0VESVQ7DQogICAgdmFyIGNsYXNzTmFtZTsNCiAgICB2YXIgcm93cyA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlDbGFzc05hbWUoImJ1bGsiKTsNCiAgICBzd2l0Y2ggKEJVTEtfRURJVCkgew0KICAgICAgICBjYXNlIHRydWU6DQogICAgICAgICAgICBjbGFzc05hbWUgPSAiYnVsayBzaG93QnVsayI7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSBmYWxzZToNCiAgICAgICAgICAgIGNsYXNzTmFtZSA9ICJidWxrIGhpZGVCdWxrIjsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgIH0NCiAgICBmb3IgKHZhciBpID0gMDsgaSA8IHJvd3MubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgcm93c1tpXS5jbGFzc05hbWUgPSBjbGFzc05hbWU7DQogICAgICAgIHJvd3NbaV0uY2hlY2tlZCA9IGZhbHNlOw0KICAgIH0NCiAgICByZXR1cm47DQp9DQpmdW5jdGlvbiBzb3J0VGFibGUoY29sdW1uKSB7DQogICAgaWYgKGNvbHVtbiA9PSBDT0xVTU5fVE9fU09SVCkgew0KICAgICAgICByZXR1cm47DQogICAgfQ0KICAgIGNvbnN0IHRhYmxlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnRlbnRfdGFibGUiKTsNCiAgICBjb25zdCB0YWJsZUhlYWQgPSB0YWJsZS5nZXRFbGVtZW50c0J5VGFnTmFtZSgiVFIiKVswXTsNCiAgICBjb25zdCB0YWJsZUl0ZW1zID0gdGFibGVIZWFkLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJURCIpOw0KICAgIGNvbnN0IHNvcnRBcnIgPSBbXTsNCiAgICBsZXQgeFZhbHVlOw0KICAgIGlmIChjb2x1bW4gPj0gMCAmJiBDT0xVTU5fVE9fU09SVCA+PSAwKSB7DQogICAgICAgIHRhYmxlSXRlbXNbQ09MVU1OX1RPX1NPUlRdLmNsYXNzTmFtZSA9ICJwb2ludGVyIjsNCiAgICAgICAgdGFibGVJdGVtc1tjb2x1bW5dLmNsYXNzTmFtZSA9ICJzb3J0VGhpcyI7DQogICAgfQ0KICAgIENPTFVNTl9UT19TT1JUID0gY29sdW1uOw0KICAgIGNvbnN0IHJvd3MgPSB0YWJsZS5yb3dzOw0KICAgIGlmIChyb3dzWzFdICE9IHVuZGVmaW5lZCkgew0KICAgICAgICBjb25zdCB0YWJsZUhlYWRlciA9IHJvd3NbMF07DQogICAgICAgIGxldCB4ID0gcm93c1sxXS5nZXRFbGVtZW50c0J5VGFnTmFtZSgiVEQiKVtjb2x1bW5dOw0KICAgICAgICBmb3IgKGxldCBpID0gMTsgaSA8IHJvd3MubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgICAgIHggPSByb3dzW2ldLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJURCIpW2NvbHVtbl07DQogICAgICAgICAgICBzd2l0Y2ggKHguY2hpbGROb2Rlc1swXS50YWdOYW1lLnRvTG93ZXJDYXNlKCkpIHsNCiAgICAgICAgICAgICAgICBjYXNlICJpbnB1dCI6DQogICAgICAgICAgICAgICAgICAgIHhWYWx1ZSA9IHguZ2V0RWxlbWVudHNCeVRhZ05hbWUoIklOUFVUIilbMF0udmFsdWUudG9Mb3dlckNhc2UoKTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAicCI6DQogICAgICAgICAgICAgICAgICAgIHhWYWx1ZSA9IHguZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlAiKVswXS5pbm5lclRleHQudG9Mb3dlckNhc2UoKTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBzb3J0QXJyLnB1c2goeyBrZXk6IHhWYWx1ZSA/IHhWYWx1ZSA6IGksIHJvdzogcm93c1tpXSB9KTsNCiAgICAgICAgfQ0KICAgICAgICB3aGlsZSAodGFibGUuZmlyc3RDaGlsZCkgew0KICAgICAgICAgICAgdGFibGUucmVtb3ZlQ2hpbGQodGFibGUuZmlyc3RDaGlsZCk7DQogICAgICAgIH0NCiAgICAgICAgc29ydEFyci5zb3J0KChzZTEsIHNlMikgPT4gew0KICAgICAgICAgICAgY29uc3Qgc2UxS2V5TnVtID0gcGFyc2VGbG9hdChTdHJpbmcoc2UxLmtleSkpOw0KICAgICAgICAgICAgY29uc3Qgc2UyS2V5TnVtID0gcGFyc2VGbG9hdChTdHJpbmcoc2UyLmtleSkpOw0KICAgICAgICAgICAgaWYgKCFpc05hTihzZTFLZXlOdW0pICYmICFpc05hTihzZTJLZXlOdW0pKSB7DQogICAgICAgICAgICAgICAgcmV0dXJuIHNlMUtleU51bSAtIHNlMktleU51bTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGlmIChzZTEua2V5IDwgc2UyLmtleSkgew0KICAgICAgICAgICAgICAgIHJldHVybiAtMTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGlmIChzZTEua2V5ID4gc2UyLmtleSkgew0KICAgICAgICAgICAgICAgIHJldHVybiAxOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgcmV0dXJuIDA7DQogICAgICAgIH0pOw0KICAgICAgICB0YWJsZS5hcHBlbmRDaGlsZCh0YWJsZUhlYWRlcik7DQogICAgICAgIHNvcnRBcnIuZm9yRWFjaCgoc2UpID0+IHsNCiAgICAgICAgICAgIHRhYmxlLmFwcGVuZENoaWxkKHNlLnJvdyk7DQogICAgICAgIH0pOw0KICAgIH0NCiAgICByZXR1cm47DQp9DQpmdW5jdGlvbiBjcmVhdGVTZWFyY2hPYmooKSB7DQogICAgU0VBUkNIX01BUFBJTkcgPSBuZXcgT2JqZWN0KCk7DQogICAgdmFyIGRhdGEgPSBTRVJWRVJbInhlcGciXVsiZXBnTWFwcGluZyJdOw0KICAgIHZhciBjaGFubmVscyA9IGdldE93bk9ialByb3BzKGRhdGEpOw0KICAgIHZhciBjaGFubmVsS2V5cyA9IFsieC1hY3RpdmUiLCAieC1jaGFubmVsSUQiLCAieC1uYW1lIiwgIl9maWxlLm0zdS5uYW1lIiwgIngtZ3JvdXAtdGl0bGUiLCAieC14bWx0di1maWxlIl07DQogICAgY2hhbm5lbHMuZm9yRWFjaChpZCA9PiB7DQogICAgICAgIGNoYW5uZWxLZXlzLmZvckVhY2goa2V5ID0+IHsNCiAgICAgICAgICAgIGlmIChrZXkgPT0gIngtYWN0aXZlIikgew0KICAgICAgICAgICAgICAgIHN3aXRjaCAoZGF0YVtpZF1ba2V5XSkgew0KICAgICAgICAgICAgICAgICAgICBjYXNlIHRydWU6DQogICAgICAgICAgICAgICAgICAgICAgICBTRUFSQ0hfTUFQUElOR1tpZF0gPSAib25saW5lICI7DQogICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICAgICAgY2FzZSBmYWxzZToNCiAgICAgICAgICAgICAgICAgICAgICAgIFNFQVJDSF9NQVBQSU5HW2lkXSA9ICJvZmZsaW5lICI7DQogICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9DQogICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICBpZiAoa2V5ID09ICJ4LXhtbHR2LWZpbGUiKSB7DQogICAgICAgICAgICAgICAgICAgIHZhciB4bWx0dkZpbGUgPSBnZXRWYWx1ZUZyb21Qcm92aWRlckZpbGUoZGF0YVtpZF1ba2V5XSwgInhtbHR2IiwgIm5hbWUiKTsNCiAgICAgICAgICAgICAgICAgICAgaWYgKHhtbHR2RmlsZSAhPSB1bmRlZmluZWQpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIFNFQVJDSF9NQVBQSU5HW2lkXSA9IFNFQVJDSF9NQVBQSU5HW2lkXSArIHhtbHR2RmlsZSArICIgIjsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICAgICAgU0VBUkNIX01BUFBJTkdbaWRdID0gU0VBUkNIX01BUFBJTkdbaWRdICsgZGF0YVtpZF1ba2V5XSArICIgIjsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9DQogICAgICAgIH0pOw0KICAgIH0pOw0KICAgIHJldHVybjsNCn0NCmZ1bmN0aW9uIHNlYXJjaEluTWFwcGluZygpIHsNCiAgICB2YXIgc2VhcmNoVmFsdWUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic2VhcmNoTWFwcGluZyIpLnZhbHVlOw0KICAgIHZhciB0cnMgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29udGVudF90YWJsZSIpLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJUUiIpOw0KICAgIGZvciAodmFyIGkgPSAxOyBpIDwgdHJzLmxlbmd0aDsgKytpKSB7DQogICAgICAgIHZhciBpZCA9IHRyc1tpXS5nZXRBdHRyaWJ1dGUoImlkIik7DQogICAgICAgIHZhciBlbGVtZW50ID0gU0VBUkNIX01BUFBJTkdbaWRdOw0KICAgICAgICBzd2l0Y2ggKGVsZW1lbnQudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhzZWFyY2hWYWx1ZS50b0xvd2VyQ2FzZSgpKSkgew0KICAgICAgICAgICAgY2FzZSB0cnVlOg0KICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5zdHlsZS5kaXNwbGF5ID0gIiI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlIGZhbHNlOg0KICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5zdHlsZS5kaXNwbGF5ID0gIm5vbmUiOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICB9DQogICAgfQ0KICAgIHJldHVybjsNCn0NCmZ1bmN0aW9uIGNhbGN1bGF0ZVdyYXBwZXJIZWlnaHQoKSB7DQogICAgaWYgKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJib3gtd3JhcHBlciIpKSB7DQogICAgICAgIHZhciBlbG0gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYm94LXdyYXBwZXIiKTsNCiAgICAgICAgdmFyIGRpdnMgPSBuZXcgQXJyYXkoIm15U3RyZWFtc0JveCIsICJjbGllbnRJbmZvIiwgImNvbnRlbnQiKTsNCiAgICAgICAgdmFyIGVsZW1lbnRzSGVpZ2h0ID0gMCAtIGVsbS5vZmZzZXRIZWlnaHQ7DQogICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgZGl2cy5sZW5ndGg7IGkrKykgew0KICAgICAgICAgICAgZWxlbWVudHNIZWlnaHQgPSBlbGVtZW50c0hlaWdodCArIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGRpdnNbaV0pLm9mZnNldEhlaWdodDsNCiAgICAgICAgfQ0KICAgICAgICBlbG0uc3R5bGUuaGVpZ2h0ID0gd2luZG93LmlubmVySGVpZ2h0IC0gZWxlbWVudHNIZWlnaHQgKyAicHgiOw0KICAgIH0NCiAgICByZXR1cm47DQp9DQpmdW5jdGlvbiBjaGFuZ2VDaGFubmVsTnVtYmVyKGVsZW1lbnQpIHsNCiAgICB2YXIgZGJJRCA9IGVsZW1lbnQucGFyZW50Tm9kZS5wYXJlbnROb2RlLmlkOw0KICAgIHZhciBuZXdOdW1iZXIgPSBwYXJzZUZsb2F0KGVsZW1lbnQudmFsdWUpOw0KICAgIHZhciBjaGFubmVsTnVtYmVycyA9IFtdOw0KICAgIHZhciBkYXRhID0gU0VSVkVSWyJ4ZXBnIl1bImVwZ01hcHBpbmciXTsNCiAgICB2YXIgY2hhbm5lbHMgPSBnZXRPd25PYmpQcm9wcyhkYXRhKTsNCiAgICBpZiAoaXNOYU4obmV3TnVtYmVyKSkgew0KICAgICAgICBhbGVydCgie3suYWxlcnQuaW52YWxpZENoYW5uZWxOdW1iZXJ9fSIpOw0KICAgICAgICByZXR1cm47DQogICAgfQ0KICAgIGNoYW5uZWxzLmZvckVhY2goaWQgPT4gew0KICAgICAgICB2YXIgY2hhbm5lbE51bWJlciA9IHBhcnNlRmxvYXQoZGF0YVtpZF1bIngtY2hhbm5lbElEIl0pOw0KICAgICAgICBjaGFubmVsTnVtYmVycy5wdXNoKGNoYW5uZWxOdW1iZXIpOw0KICAgIH0pOw0KICAgIGZvciAodmFyIGkgPSAwOyBpIDwgY2hhbm5lbE51bWJlcnMubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgaWYgKGNoYW5uZWxOdW1iZXJzLmluZGV4T2YobmV3TnVtYmVyKSA9PSAtMSkgew0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIH0NCiAgICAgICAgaWYgKE1hdGguZmxvb3IobmV3TnVtYmVyKSA9PSBuZXdOdW1iZXIpIHsNCiAgICAgICAgICAgIG5ld051bWJlciA9IG5ld051bWJlciArIDE7DQogICAgICAgIH0NCiAgICAgICAgZWxzZSB7DQogICAgICAgICAgICBuZXdOdW1iZXIgPSBuZXdOdW1iZXIgKyAwLjE7DQogICAgICAgICAgICBuZXdOdW1iZXIudG9GaXhlZCgxKTsNCiAgICAgICAgICAgIG5ld051bWJlciA9IE1hdGgucm91bmQobmV3TnVtYmVyICogMTApIC8gMTA7DQogICAgICAgIH0NCiAgICB9DQogICAgZGF0YVtkYklEXVsieC1jaGFubmVsSUQiXSA9IG5ld051bWJlci50b1N0cmluZygpOw0KICAgIGVsZW1lbnQudmFsdWUgPSBuZXdOdW1iZXI7DQogICAgaWYgKENPTFVNTl9UT19TT1JUID09IDEpIHsNCiAgICAgICAgQ09MVU1OX1RPX1NPUlQgPSAtMTsNCiAgICAgICAgc29ydFRhYmxlKDEpOw0KICAgIH0NCiAgICByZXR1cm47DQp9DQpmdW5jdGlvbiBiYWNrdXAoKSB7DQogICAgdmFyIGRhdGEgPSBuZXcgT2JqZWN0KCk7DQogICAgdmFyIGNtZCA9ICJ4dGV2ZUJhY2t1cCI7DQogICAgdmFyIHNlcnZlciA9IG5ldyBTZXJ2ZXIoY21kKTsNCiAgICBzZXJ2ZXIucmVxdWVzdChkYXRhKTsNCiAgICByZXR1cm47DQp9DQpmdW5jdGlvbiB0b2dnbGVDaGFubmVsU3RhdHVzKGlkKSB7DQogICAgdmFyIGVsZW1lbnQ7DQogICAgdmFyIHN0YXR1czsNCiAgICBpZiAoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImFjdGl2ZSIpKSB7DQogICAgICAgIHZhciBjaGVja2JveCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJhY3RpdmUiKTsNCiAgICAgICAgc3RhdHVzID0gKGNoZWNrYm94KS5jaGVja2VkOw0KICAgIH0NCiAgICB2YXIgaWRzID0gZ2V0QWxsU2VsZWN0ZWRDaGFubmVscygpOw0KICAgIGlmIChpZHMubGVuZ3RoID09IDApIHsNCiAgICAgICAgaWRzLnB1c2goaWQpOw0KICAgIH0NCiAgICBpZHMuZm9yRWFjaChpZCA9PiB7DQogICAgICAgIHZhciBjaGFubmVsID0gU0VSVkVSWyJ4ZXBnIl1bImVwZ01hcHBpbmciXVtpZF07DQogICAgICAgIGNoYW5uZWxbIngtYWN0aXZlIl0gPSBzdGF0dXM7DQogICAgICAgIHN3aXRjaCAoY2hhbm5lbFsieC1hY3RpdmUiXSkgew0KICAgICAgICAgICAgY2FzZSB0cnVlOg0KICAgICAgICAgICAgICAgIGlmIChjaGFubmVsWyJ4LXhtbHR2LWZpbGUiXSA9PSAiLSIgfHwgY2hhbm5lbFsieC1tYXBwaW5nIl0gPT0gIi0iKSB7DQogICAgICAgICAgICAgICAgICAgIGlmIChCVUxLX0VESVQgPT0gZmFsc2UpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGFsZXJ0KGNoYW5uZWxbIngtbmFtZSJdICsgIjogTWlzc2luZyBYTUxUViBmaWxlIC8gY2hhbm5lbCIpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2hlY2tib3guY2hlY2tlZCA9IGZhbHNlOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIGNoYW5uZWxbIngtYWN0aXZlIl0gPSBmYWxzZTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlIGZhbHNlOg0KICAgICAgICAgICAgICAgIC8vIGNvZGUuLi4NCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgfQ0KICAgICAgICBpZiAoY2hhbm5lbFsieC1hY3RpdmUiXSA9PSBmYWxzZSkgew0KICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpLmNsYXNzTmFtZSA9ICJub3RBY3RpdmVFUEciOw0KICAgICAgICB9DQogICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpLmNsYXNzTmFtZSA9ICJhY3RpdmVFUEciOw0KICAgICAgICB9DQogICAgfSk7DQp9DQpmdW5jdGlvbiB0b2dnbGVHcm91cFVwZGF0ZUNiKHhlcGdJZCwgdGFyZ2V0KSB7DQogICAgdGFyZ2V0LmNsYXNzTmFtZSA9ICdjaGFuZ2VkJzsNCiAgICBjb25zdCBncm91cElucHV0ID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignaW5wdXRbbmFtZT0ieC1ncm91cC10aXRsZSJdJyk7DQogICAgY29uc3QgbWFwcGluZyA9IGdldExvY2FsRGF0YSgnbWFwcGluZycsIHhlcGdJZCk7DQogICAgaWYgKHRhcmdldC5jaGVja2VkKSB7DQogICAgICAgIGdyb3VwSW5wdXQuZGF0YXNldC5vbGRWYWx1ZSA9IGdyb3VwSW5wdXQudmFsdWU7DQogICAgICAgIGdyb3VwSW5wdXQudmFsdWUgPSBtYXBwaW5nWydncm91cC10aXRsZSddOw0KICAgICAgICBncm91cElucHV0LmRpc2FibGVkID0gdHJ1ZTsNCiAgICB9DQogICAgZWxzZSB7DQogICAgICAgIGdyb3VwSW5wdXQudmFsdWUgPSBncm91cElucHV0LmRhdGFzZXQub2xkVmFsdWU7DQogICAgICAgIGdyb3VwSW5wdXQuZGlzYWJsZWQgPSBmYWxzZTsNCiAgICB9DQogICAgZ3JvdXBJbnB1dC5jbGFzc05hbWUgPSAnY2hhbmdlZCc7DQp9DQpmdW5jdGlvbiByZXN0b3JlKCkgew0KICAgIGlmIChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndXBsb2FkJykpIHsNCiAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3VwbG9hZCcpLnJlbW92ZSgpOw0KICAgIH0NCiAgICB2YXIgcmVzdG9yZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIklOUFVUIik7DQogICAgcmVzdG9yZS5zZXRBdHRyaWJ1dGUoInR5cGUiLCAiZmlsZSIpOw0KICAgIHJlc3RvcmUuc2V0QXR0cmlidXRlKCJjbGFzcyIsICJub3RWaXNpYmxlIik7DQogICAgcmVzdG9yZS5zZXRBdHRyaWJ1dGUoIm5hbWUiLCAiIik7DQogICAgcmVzdG9yZS5pZCA9ICJ1cGxvYWQiOw0KICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQocmVzdG9yZSk7DQogICAgcmVzdG9yZS5jbGljaygpOw0KICAgIHJlc3RvcmUub25jaGFuZ2UgPSBmdW5jdGlvbiAoKSB7DQogICAgICAgIHZhciBmaWxlbmFtZSA9IHJlc3RvcmUuZmlsZXNbMF0ubmFtZTsNCiAgICAgICAgdmFyIGNoZWNrID0gY29uZmlybSgiRmlsZTogIiArIGZpbGVuYW1lICsgIlxue3suY29uZmlybS5yZXN0b3JlfX0iKTsNCiAgICAgICAgaWYgKGNoZWNrID09IHRydWUpIHsNCiAgICAgICAgICAgIHZhciByZWFkZXIgPSBuZXcgRmlsZVJlYWRlcigpOw0KICAgICAgICAgICAgdmFyIGZpbGUgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCdpbnB1dFt0eXBlPWZpbGVdJykuZmlsZXNbMF07DQogICAgICAgICAgICBpZiAoZmlsZSkgew0KICAgICAgICAgICAgICAgIHJlYWRlci5yZWFkQXNEYXRhVVJMKGZpbGUpOw0KICAgICAgICAgICAgICAgIHJlYWRlci5vbmxvYWQgPSBmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICAgICAgICAgIHZhciBkYXRhID0gbmV3IE9iamVjdCgpOw0KICAgICAgICAgICAgICAgICAgICB2YXIgY21kID0gInh0ZXZlUmVzdG9yZSI7DQogICAgICAgICAgICAgICAgICAgIGRhdGFbImJhc2U2NCJdID0gcmVhZGVyLnJlc3VsdDsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHNlcnZlciA9IG5ldyBTZXJ2ZXIoY21kKTsNCiAgICAgICAgICAgICAgICAgICAgc2VydmVyLnJlcXVlc3QoZGF0YSk7DQogICAgICAgICAgICAgICAgfTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgICAgIGFsZXJ0KCJGaWxlIGNvdWxkIG5vdCBiZSBsb2FkZWQiKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIHJlc3RvcmUucmVtb3ZlKCk7DQogICAgICAgICAgICByZXR1cm47DQogICAgICAgIH0NCiAgICB9Ow0KICAgIHJldHVybjsNCn0NCmZ1bmN0aW9uIHVwbG9hZExvZ28oKSB7DQogICAgaWYgKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd1cGxvYWQnKSkgew0KICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndXBsb2FkJykucmVtb3ZlKCk7DQogICAgfQ0KICAgIHZhciB1cGxvYWQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJJTlBVVCIpOw0KICAgIHVwbG9hZC5zZXRBdHRyaWJ1dGUoInR5cGUiLCAiZmlsZSIpOw0KICAgIHVwbG9hZC5zZXRBdHRyaWJ1dGUoImNsYXNzIiwgIm5vdFZpc2libGUiKTsNCiAgICB1cGxvYWQuc2V0QXR0cmlidXRlKCJuYW1lIiwgIiIpOw0KICAgIHVwbG9hZC5pZCA9ICJ1cGxvYWQiOw0KICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQodXBsb2FkKTsNCiAgICB1cGxvYWQuY2xpY2soKTsNCiAgICB1cGxvYWQub25ibHVyID0gZnVuY3Rpb24gKCkgew0KICAgICAgICBhbGVydCgpOw0KICAgIH07DQogICAgdXBsb2FkLm9uY2hhbmdlID0gZnVuY3Rpb24gKCkgew0KICAgICAgICB2YXIgZmlsZW5hbWUgPSB1cGxvYWQuZmlsZXNbMF0ubmFtZTsNCiAgICAgICAgdmFyIHJlYWRlciA9IG5ldyBGaWxlUmVhZGVyKCk7DQogICAgICAgIHZhciBmaWxlID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignaW5wdXRbdHlwZT1maWxlXScpLmZpbGVzWzBdOw0KICAgICAgICBpZiAoZmlsZSkgew0KICAgICAgICAgICAgcmVhZGVyLnJlYWRBc0RhdGFVUkwoZmlsZSk7DQogICAgICAgICAgICByZWFkZXIub25sb2FkID0gZnVuY3Rpb24gKCkgew0KICAgICAgICAgICAgICAgIHZhciBkYXRhID0gbmV3IE9iamVjdCgpOw0KICAgICAgICAgICAgICAgIHZhciBjbWQgPSAidXBsb2FkTG9nbyI7DQogICAgICAgICAgICAgICAgZGF0YVsiYmFzZTY0Il0gPSByZWFkZXIucmVzdWx0Ow0KICAgICAgICAgICAgICAgIGRhdGFbImZpbGVuYW1lIl0gPSBmaWxlLm5hbWU7DQogICAgICAgICAgICAgICAgdmFyIHNlcnZlciA9IG5ldyBTZXJ2ZXIoY21kKTsNCiAgICAgICAgICAgICAgICBzZXJ2ZXIucmVxdWVzdChkYXRhKTsNCiAgICAgICAgICAgICAgICB2YXIgdXBkYXRlTG9nbyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd1cGRhdGUtaWNvbicpOw0KICAgICAgICAgICAgICAgIHVwZGF0ZUxvZ28uY2hlY2tlZCA9IGZhbHNlOw0KICAgICAgICAgICAgICAgIHVwZGF0ZUxvZ28uY2xhc3NOYW1lID0gImNoYW5nZWQiOw0KICAgICAgICAgICAgfTsNCiAgICAgICAgfQ0KICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgIGFsZXJ0KCJGaWxlIGNvdWxkIG5vdCBiZSBsb2FkZWQiKTsNCiAgICAgICAgfQ0KICAgICAgICB1cGxvYWQucmVtb3ZlKCk7DQogICAgICAgIHJldHVybjsNCiAgICB9Ow0KfQ0KZnVuY3Rpb24gY2hlY2tVbmRvKGtleSkgew0KICAgIHN3aXRjaCAoa2V5KSB7DQogICAgICAgIGNhc2UgImVwZ01hcHBpbmciOg0KICAgICAgICAgICAgaWYgKFVORE8uaGFzT3duUHJvcGVydHkoa2V5KSkgew0KICAgICAgICAgICAgICAgIFNFUlZFUlsieGVwZyJdW2tleV0gPSBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KFVORE9ba2V5XSkpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgZWxzZSB7DQogICAgICAgICAgICAgICAgVU5ET1trZXldID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeShTRVJWRVJbInhlcGciXVtrZXldKSk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgIGJyZWFrOw0KICAgIH0NCiAgICByZXR1cm47DQp9DQpmdW5jdGlvbiB1cGRhdGVMb2coKSB7DQogICAgdmFyIHNlcnZlciA9IG5ldyBTZXJ2ZXIoInVwZGF0ZUxvZyIpOw0KICAgIHNlcnZlci5yZXF1ZXN0KG5ldyBPYmplY3QoKSk7DQp9DQo=" + webUI["html/js/base_ts.js"] = "dmFyIFNFUlZFUiA9IG5ldyBPYmplY3QoKTsNCnZhciBCVUxLX0VESVQgPSBmYWxzZTsNCnZhciBDT0xVTU5fVE9fU09SVDsNCnZhciBTRUFSQ0hfTUFQUElORyA9IG5ldyBPYmplY3QoKTsNCnZhciBVTkRPID0gbmV3IE9iamVjdCgpOw0KdmFyIFNFUlZFUl9DT05ORUNUSU9OID0gZmFsc2U7DQp2YXIgV1NfQVZBSUxBQkxFID0gZmFsc2U7DQovLyBNZW51DQp2YXIgbWVudUl0ZW1zID0gbmV3IEFycmF5KCk7DQptZW51SXRlbXMucHVzaChuZXcgTWFpbk1lbnVJdGVtKCJwbGF5bGlzdCIsICJ7ey5tYWluTWVudS5pdGVtLnBsYXlsaXN0fX0iLCAibTN1LnBuZyIsICJ7ey5tYWluTWVudS5oZWFkbGluZS5wbGF5bGlzdH19IikpOw0KLy9tZW51SXRlbXMucHVzaChuZXcgTWFpbk1lbnVJdGVtKCJwbXNJRCIsICJ7ey5tYWluTWVudS5pdGVtLnBtc0lEfX0iLCAibnVtYmVyLnBuZyIsICJ7ey5tYWluTWVudS5oZWFkbGluZS5wbXNJRH19IikpDQptZW51SXRlbXMucHVzaChuZXcgTWFpbk1lbnVJdGVtKCJmaWx0ZXIiLCAie3subWFpbk1lbnUuaXRlbS5maWx0ZXJ9fSIsICJmaWx0ZXIucG5nIiwgInt7Lm1haW5NZW51LmhlYWRsaW5lLmZpbHRlcn19IikpOw0KbWVudUl0ZW1zLnB1c2gobmV3IE1haW5NZW51SXRlbSgieG1sdHYiLCAie3subWFpbk1lbnUuaXRlbS54bWx0dn19IiwgInhtbHR2LnBuZyIsICJ7ey5tYWluTWVudS5oZWFkbGluZS54bWx0dn19IikpOw0KbWVudUl0ZW1zLnB1c2gobmV3IE1haW5NZW51SXRlbSgibWFwcGluZyIsICJ7ey5tYWluTWVudS5pdGVtLm1hcHBpbmd9fSIsICJtYXBwaW5nLnBuZyIsICJ7ey5tYWluTWVudS5oZWFkbGluZS5tYXBwaW5nfX0iKSk7DQptZW51SXRlbXMucHVzaChuZXcgTWFpbk1lbnVJdGVtKCJ1c2VycyIsICJ7ey5tYWluTWVudS5pdGVtLnVzZXJzfX0iLCAidXNlcnMucG5nIiwgInt7Lm1haW5NZW51LmhlYWRsaW5lLnVzZXJzfX0iKSk7DQptZW51SXRlbXMucHVzaChuZXcgTWFpbk1lbnVJdGVtKCJzZXR0aW5ncyIsICJ7ey5tYWluTWVudS5pdGVtLnNldHRpbmdzfX0iLCAic2V0dGluZ3MucG5nIiwgInt7Lm1haW5NZW51LmhlYWRsaW5lLnNldHRpbmdzfX0iKSk7DQptZW51SXRlbXMucHVzaChuZXcgTWFpbk1lbnVJdGVtKCJsb2ciLCAie3subWFpbk1lbnUuaXRlbS5sb2d9fSIsICJsb2cucG5nIiwgInt7Lm1haW5NZW51LmhlYWRsaW5lLmxvZ319IikpOw0KbWVudUl0ZW1zLnB1c2gobmV3IE1haW5NZW51SXRlbSgibG9nb3V0IiwgInt7Lm1haW5NZW51Lml0ZW0ubG9nb3V0fX0iLCAibG9nb3V0LnBuZyIsICJ7ey5tYWluTWVudS5oZWFkbGluZS5sb2dvdXR9fSIpKTsNCi8vIFNldHRpbmdzIGNhdGVnb3JpZXMNCnZhciBzZXR0aW5nc0NhdGVnb3J5ID0gbmV3IEFycmF5KCk7DQpzZXR0aW5nc0NhdGVnb3J5LnB1c2gobmV3IFNldHRpbmdzQ2F0ZWdvcnlJdGVtKCJ7ey5zZXR0aW5ncy5jYXRlZ29yeS5nZW5lcmFsfX0iLCAidGxzTW9kZSx4dGV2ZUF1dG9VcGRhdGUsaG9zdElQLHR1bmVyLGVwZ1NvdXJjZSxhcGkiKSk7DQpzZXR0aW5nc0NhdGVnb3J5LnB1c2gobmV3IFNldHRpbmdzQ2F0ZWdvcnlJdGVtKCJ7ey5zZXR0aW5ncy5jYXRlZ29yeS5maWxlc319IiwgInVwZGF0ZSxmaWxlcy51cGRhdGUsdGVtcC5wYXRoLGNhY2hlLmltYWdlcyx4ZXBnLnJlcGxhY2UubWlzc2luZy5pbWFnZXMiKSk7DQpzZXR0aW5nc0NhdGVnb3J5LnB1c2gobmV3IFNldHRpbmdzQ2F0ZWdvcnlJdGVtKCJ7ey5zZXR0aW5ncy5jYXRlZ29yeS5zdHJlYW1pbmd9fSIsICJidWZmZXIsdWRweHksYnVmZmVyLnNpemUua2Isc3RvcmVCdWZmZXJJblJBTSxidWZmZXIudGltZW91dCx1c2VyLmFnZW50LGZmbXBlZy5wYXRoLGZmbXBlZy5vcHRpb25zLHZsYy5wYXRoLHZsYy5vcHRpb25zIikpOw0Kc2V0dGluZ3NDYXRlZ29yeS5wdXNoKG5ldyBTZXR0aW5nc0NhdGVnb3J5SXRlbSgie3suc2V0dGluZ3MuY2F0ZWdvcnkuYmFja3VwfX0iLCAiYmFja3VwLnBhdGgsYmFja3VwLmtlZXAiKSk7DQpzZXR0aW5nc0NhdGVnb3J5LnB1c2gobmV3IFNldHRpbmdzQ2F0ZWdvcnlJdGVtKCJ7ey5zZXR0aW5ncy5jYXRlZ29yeS5hdXRoZW50aWNhdGlvbn19IiwgImF1dGhlbnRpY2F0aW9uLndlYixhdXRoZW50aWNhdGlvbi5wbXMsYXV0aGVudGljYXRpb24ubTN1LGF1dGhlbnRpY2F0aW9uLnhtbCxhdXRoZW50aWNhdGlvbi5hcGkiKSk7DQpmdW5jdGlvbiBzaG93UG9wVXBFbGVtZW50KGVsbSkgew0KICAgIHZhciBhbGxFbGVtZW50cyA9IG5ldyBBcnJheSgicG9wdXAtY3VzdG9tIik7DQogICAgZm9yICh2YXIgaSA9IDA7IGkgPCBhbGxFbGVtZW50cy5sZW5ndGg7IGkrKykgew0KICAgICAgICBzaG93RWxlbWVudChhbGxFbGVtZW50c1tpXSwgZmFsc2UpOw0KICAgIH0NCiAgICBzaG93RWxlbWVudChlbG0sIHRydWUpOw0KICAgIHNldFRpbWVvdXQoZnVuY3Rpb24gKCkgew0KICAgICAgICBzaG93RWxlbWVudCgicG9wdXAiLCB0cnVlKTsNCiAgICB9LCAxMCk7DQogICAgcmV0dXJuOw0KfQ0KZnVuY3Rpb24gc2hvd0VsZW1lbnQoZWxtSUQsIHR5cGUpIHsNCiAgICB2YXIgY3NzQ2xhc3M7DQogICAgc3dpdGNoICh0eXBlKSB7DQogICAgICAgIGNhc2UgdHJ1ZToNCiAgICAgICAgICAgIGNzc0NsYXNzID0gImJsb2NrIjsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlIGZhbHNlOg0KICAgICAgICAgICAgY3NzQ2xhc3MgPSAibm9uZSI7DQogICAgICAgICAgICBicmVhazsNCiAgICB9DQogICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoZWxtSUQpLmNsYXNzTmFtZSA9IGNzc0NsYXNzOw0KfQ0KZnVuY3Rpb24gY2hhbmdlQnV0dG9uQWN0aW9uKGVsZW1lbnQsIGJ1dHRvbklELCBhdHRyaWJ1dGUpIHsNCiAgICB2YXIgdmFsdWUgPSBlbGVtZW50Lm9wdGlvbnNbZWxlbWVudC5zZWxlY3RlZEluZGV4XS52YWx1ZTsNCiAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChidXR0b25JRCkuc2V0QXR0cmlidXRlKGF0dHJpYnV0ZSwgdmFsdWUpOw0KfQ0KZnVuY3Rpb24gZ2V0TG9jYWxEYXRhKGRhdGFUeXBlLCBpZCkgew0KICAgIGxldCBkYXRhID0ge307DQogICAgc3dpdGNoIChkYXRhVHlwZSkgew0KICAgICAgICBjYXNlICJtM3UiOg0KICAgICAgICAgICAgZGF0YSA9IFNFUlZFUlsic2V0dGluZ3MiXVsiZmlsZXMiXVtkYXRhVHlwZV1baWRdOw0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGNhc2UgImhkaHIiOg0KICAgICAgICAgICAgZGF0YSA9IFNFUlZFUlsic2V0dGluZ3MiXVsiZmlsZXMiXVtkYXRhVHlwZV1baWRdOw0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGNhc2UgImZpbHRlciI6DQogICAgICAgIGNhc2UgImN1c3RvbS1maWx0ZXIiOg0KICAgICAgICBjYXNlICJncm91cC10aXRsZSI6DQogICAgICAgICAgICBpZiAoaWQgPT0gLTEpIHsNCiAgICAgICAgICAgICAgICBkYXRhWyJhY3RpdmUiXSA9IHRydWU7DQogICAgICAgICAgICAgICAgZGF0YVsiY2FzZVNlbnNpdGl2ZSJdID0gZmFsc2U7DQogICAgICAgICAgICAgICAgZGF0YVsiZGVzY3JpcHRpb24iXSA9ICIiOw0KICAgICAgICAgICAgICAgIGRhdGFbImV4Y2x1ZGUiXSA9ICIiOw0KICAgICAgICAgICAgICAgIGRhdGFbImZpbHRlciJdID0gIiI7DQogICAgICAgICAgICAgICAgZGF0YVsiaW5jbHVkZSJdID0gIiI7DQogICAgICAgICAgICAgICAgZGF0YVsibmFtZSJdID0gIiI7DQogICAgICAgICAgICAgICAgZGF0YVsidHlwZSJdID0gImdyb3VwLXRpdGxlIjsNCiAgICAgICAgICAgICAgICBkYXRhWyJwcmVzZXJ2ZU1hcHBpbmciXSA9IHRydWU7DQogICAgICAgICAgICAgICAgZGF0YVsic3RhcnRpbmdDaGFubmVsIl0gPSBTRVJWRVJbInNldHRpbmdzIl1bIm1hcHBpbmcuZmlyc3QuY2hhbm5lbCJdOw0KICAgICAgICAgICAgICAgIGRhdGFbImRlZmF1bHRNaXNzaW5nRVBHIl0gPSAiLSI7DQogICAgICAgICAgICAgICAgU0VSVkVSWyJzZXR0aW5ncyJdWyJmaWx0ZXIiXVtpZF0gPSBkYXRhOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgZGF0YSA9IFNFUlZFUlsic2V0dGluZ3MiXVsiZmlsdGVyIl1baWRdOw0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGNhc2UgInhtbHR2IjoNCiAgICAgICAgICAgIGRhdGEgPSBTRVJWRVJbInNldHRpbmdzIl1bImZpbGVzIl1bZGF0YVR5cGVdW2lkXTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJ1c2VycyI6DQogICAgICAgICAgICBkYXRhID0gU0VSVkVSWyJ1c2VycyJdW2lkXVsiZGF0YSJdOw0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGNhc2UgIm1hcHBpbmciOg0KICAgICAgICAgICAgZGF0YSA9IFNFUlZFUlsieGVwZyJdWyJlcGdNYXBwaW5nIl1baWRdOw0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGNhc2UgIm0zdUdyb3VwcyI6DQogICAgICAgICAgICBkYXRhID0gU0VSVkVSWyJkYXRhIl1bInBsYXlsaXN0Il1bIm0zdSJdWyJncm91cHMiXTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgIH0NCiAgICByZXR1cm4gZGF0YTsNCn0NCmZ1bmN0aW9uIGdldE93bk9ialByb3BzKG9iamVjdCkgew0KICAgIHJldHVybiBvYmplY3QgPyBPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyhvYmplY3QpIDogW107DQp9DQpmdW5jdGlvbiBnZXRBbGxTZWxlY3RlZENoYW5uZWxzKCkgew0KICAgIHZhciBjaGFubmVscyA9IG5ldyBBcnJheSgpOw0KICAgIGlmIChCVUxLX0VESVQgPT0gZmFsc2UpIHsNCiAgICAgICAgcmV0dXJuIGNoYW5uZWxzOw0KICAgIH0NCiAgICB2YXIgdHJzID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnRlbnRfdGFibGUiKS5nZXRFbGVtZW50c0J5VGFnTmFtZSgiVFIiKTsNCiAgICBmb3IgKHZhciBpID0gMTsgaSA8IHRycy5sZW5ndGg7IGkrKykgew0KICAgICAgICBpZiAodHJzW2ldLnN0eWxlLmRpc3BsYXkgIT0gIm5vbmUiKSB7DQogICAgICAgICAgICBpZiAodHJzW2ldLmZpcnN0Q2hpbGQuZmlyc3RDaGlsZC5jaGVja2VkID09IHRydWUpIHsNCiAgICAgICAgICAgICAgICBjaGFubmVscy5wdXNoKHRyc1tpXS5pZCk7DQogICAgICAgICAgICB9DQogICAgICAgIH0NCiAgICB9DQogICAgcmV0dXJuIGNoYW5uZWxzOw0KfQ0KZnVuY3Rpb24gc2VsZWN0QWxsQ2hhbm5lbHMoKSB7DQogICAgdmFyIGJ1bGsgPSBmYWxzZTsNCiAgICB2YXIgdHJzID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnRlbnRfdGFibGUiKS5nZXRFbGVtZW50c0J5VGFnTmFtZSgiVFIiKTsNCiAgICBpZiAodHJzWzBdLmZpcnN0Q2hpbGQuZmlyc3RDaGlsZC5jaGVja2VkID09IHRydWUpIHsNCiAgICAgICAgYnVsayA9IHRydWU7DQogICAgfQ0KICAgIGZvciAodmFyIGkgPSAxOyBpIDwgdHJzLmxlbmd0aDsgaSsrKSB7DQogICAgICAgIGlmICh0cnNbaV0uc3R5bGUuZGlzcGxheSAhPSAibm9uZSIpIHsNCiAgICAgICAgICAgIHN3aXRjaCAoYnVsaykgew0KICAgICAgICAgICAgICAgIGNhc2UgdHJ1ZToNCiAgICAgICAgICAgICAgICAgICAgdHJzW2ldLmZpcnN0Q2hpbGQuZmlyc3RDaGlsZC5jaGVja2VkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSBmYWxzZToNCiAgICAgICAgICAgICAgICAgICAgdHJzW2ldLmZpcnN0Q2hpbGQuZmlyc3RDaGlsZC5jaGVja2VkID0gZmFsc2U7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQogICAgfQ0KICAgIHJldHVybjsNCn0NCmZ1bmN0aW9uIGJ1bGtFZGl0KCkgew0KICAgIEJVTEtfRURJVCA9ICFCVUxLX0VESVQ7DQogICAgdmFyIGNsYXNzTmFtZTsNCiAgICB2YXIgcm93cyA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlDbGFzc05hbWUoImJ1bGsiKTsNCiAgICBzd2l0Y2ggKEJVTEtfRURJVCkgew0KICAgICAgICBjYXNlIHRydWU6DQogICAgICAgICAgICBjbGFzc05hbWUgPSAiYnVsayBzaG93QnVsayI7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSBmYWxzZToNCiAgICAgICAgICAgIGNsYXNzTmFtZSA9ICJidWxrIGhpZGVCdWxrIjsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgIH0NCiAgICBmb3IgKHZhciBpID0gMDsgaSA8IHJvd3MubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgcm93c1tpXS5jbGFzc05hbWUgPSBjbGFzc05hbWU7DQogICAgICAgIHJvd3NbaV0uY2hlY2tlZCA9IGZhbHNlOw0KICAgIH0NCiAgICByZXR1cm47DQp9DQpmdW5jdGlvbiBzb3J0VGFibGUoY29sdW1uKSB7DQogICAgaWYgKGNvbHVtbiA9PSBDT0xVTU5fVE9fU09SVCkgew0KICAgICAgICByZXR1cm47DQogICAgfQ0KICAgIGNvbnN0IHRhYmxlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnRlbnRfdGFibGUiKTsNCiAgICBjb25zdCB0YWJsZUhlYWQgPSB0YWJsZS5nZXRFbGVtZW50c0J5VGFnTmFtZSgiVFIiKVswXTsNCiAgICBjb25zdCB0YWJsZUl0ZW1zID0gdGFibGVIZWFkLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJURCIpOw0KICAgIGNvbnN0IHNvcnRBcnIgPSBbXTsNCiAgICBsZXQgeFZhbHVlOw0KICAgIGlmIChjb2x1bW4gPj0gMCAmJiBDT0xVTU5fVE9fU09SVCA+PSAwKSB7DQogICAgICAgIHRhYmxlSXRlbXNbQ09MVU1OX1RPX1NPUlRdLmNsYXNzTmFtZSA9ICJwb2ludGVyIjsNCiAgICAgICAgdGFibGVJdGVtc1tjb2x1bW5dLmNsYXNzTmFtZSA9ICJzb3J0VGhpcyI7DQogICAgfQ0KICAgIENPTFVNTl9UT19TT1JUID0gY29sdW1uOw0KICAgIGNvbnN0IHJvd3MgPSB0YWJsZS5yb3dzOw0KICAgIGlmIChyb3dzWzFdICE9IHVuZGVmaW5lZCkgew0KICAgICAgICBjb25zdCB0YWJsZUhlYWRlciA9IHJvd3NbMF07DQogICAgICAgIGxldCB4ID0gcm93c1sxXS5nZXRFbGVtZW50c0J5VGFnTmFtZSgiVEQiKVtjb2x1bW5dOw0KICAgICAgICBmb3IgKGxldCBpID0gMTsgaSA8IHJvd3MubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgICAgIHggPSByb3dzW2ldLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJURCIpW2NvbHVtbl07DQogICAgICAgICAgICBzd2l0Y2ggKHguY2hpbGROb2Rlc1swXS50YWdOYW1lLnRvTG93ZXJDYXNlKCkpIHsNCiAgICAgICAgICAgICAgICBjYXNlICJpbnB1dCI6DQogICAgICAgICAgICAgICAgICAgIHhWYWx1ZSA9IHguZ2V0RWxlbWVudHNCeVRhZ05hbWUoIklOUFVUIilbMF0udmFsdWUudG9Mb3dlckNhc2UoKTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAicCI6DQogICAgICAgICAgICAgICAgICAgIHhWYWx1ZSA9IHguZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlAiKVswXS5pbm5lclRleHQudG9Mb3dlckNhc2UoKTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBzb3J0QXJyLnB1c2goeyBrZXk6IHhWYWx1ZSA/IHhWYWx1ZSA6IGksIHJvdzogcm93c1tpXSB9KTsNCiAgICAgICAgfQ0KICAgICAgICB3aGlsZSAodGFibGUuZmlyc3RDaGlsZCkgew0KICAgICAgICAgICAgdGFibGUucmVtb3ZlQ2hpbGQodGFibGUuZmlyc3RDaGlsZCk7DQogICAgICAgIH0NCiAgICAgICAgc29ydEFyci5zb3J0KChzZTEsIHNlMikgPT4gew0KICAgICAgICAgICAgY29uc3Qgc2UxS2V5TnVtID0gcGFyc2VGbG9hdChTdHJpbmcoc2UxLmtleSkpOw0KICAgICAgICAgICAgY29uc3Qgc2UyS2V5TnVtID0gcGFyc2VGbG9hdChTdHJpbmcoc2UyLmtleSkpOw0KICAgICAgICAgICAgaWYgKCFpc05hTihzZTFLZXlOdW0pICYmICFpc05hTihzZTJLZXlOdW0pKSB7DQogICAgICAgICAgICAgICAgcmV0dXJuIHNlMUtleU51bSAtIHNlMktleU51bTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGlmIChzZTEua2V5IDwgc2UyLmtleSkgew0KICAgICAgICAgICAgICAgIHJldHVybiAtMTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGlmIChzZTEua2V5ID4gc2UyLmtleSkgew0KICAgICAgICAgICAgICAgIHJldHVybiAxOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgcmV0dXJuIDA7DQogICAgICAgIH0pOw0KICAgICAgICB0YWJsZS5hcHBlbmRDaGlsZCh0YWJsZUhlYWRlcik7DQogICAgICAgIHNvcnRBcnIuZm9yRWFjaCgoc2UpID0+IHsNCiAgICAgICAgICAgIHRhYmxlLmFwcGVuZENoaWxkKHNlLnJvdyk7DQogICAgICAgIH0pOw0KICAgIH0NCiAgICByZXR1cm47DQp9DQpmdW5jdGlvbiBjcmVhdGVTZWFyY2hPYmooKSB7DQogICAgU0VBUkNIX01BUFBJTkcgPSBuZXcgT2JqZWN0KCk7DQogICAgdmFyIGRhdGEgPSBTRVJWRVJbInhlcGciXVsiZXBnTWFwcGluZyJdOw0KICAgIHZhciBjaGFubmVscyA9IGdldE93bk9ialByb3BzKGRhdGEpOw0KICAgIHZhciBjaGFubmVsS2V5cyA9IFsieC1hY3RpdmUiLCAieC1jaGFubmVsSUQiLCAieC1uYW1lIiwgInVwZGF0ZUNoYW5uZWxOYW1lUmVnZXgiLCAiX2ZpbGUubTN1Lm5hbWUiLCAieC1ncm91cC10aXRsZSIsICJ4LXhtbHR2LWZpbGUiXTsNCiAgICBjaGFubmVscy5mb3JFYWNoKGlkID0+IHsNCiAgICAgICAgY2hhbm5lbEtleXMuZm9yRWFjaChrZXkgPT4gew0KICAgICAgICAgICAgaWYgKGtleSA9PSAieC1hY3RpdmUiKSB7DQogICAgICAgICAgICAgICAgc3dpdGNoIChkYXRhW2lkXVtrZXldKSB7DQogICAgICAgICAgICAgICAgICAgIGNhc2UgdHJ1ZToNCiAgICAgICAgICAgICAgICAgICAgICAgIFNFQVJDSF9NQVBQSU5HW2lkXSA9ICJvbmxpbmUgIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgICAgICBjYXNlIGZhbHNlOg0KICAgICAgICAgICAgICAgICAgICAgICAgU0VBUkNIX01BUFBJTkdbaWRdID0gIm9mZmxpbmUgIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgICAgIGlmIChrZXkgPT0gIngteG1sdHYtZmlsZSIpIHsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHhtbHR2RmlsZSA9IGdldFZhbHVlRnJvbVByb3ZpZGVyRmlsZShkYXRhW2lkXVtrZXldLCAieG1sdHYiLCAibmFtZSIpOw0KICAgICAgICAgICAgICAgICAgICBpZiAoeG1sdHZGaWxlICE9IHVuZGVmaW5lZCkgew0KICAgICAgICAgICAgICAgICAgICAgICAgU0VBUkNIX01BUFBJTkdbaWRdID0gU0VBUkNIX01BUFBJTkdbaWRdICsgeG1sdHZGaWxlICsgIiAiOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgICAgICAgICBTRUFSQ0hfTUFQUElOR1tpZF0gPSBTRUFSQ0hfTUFQUElOR1tpZF0gKyBkYXRhW2lkXVtrZXldICsgIiAiOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0NCiAgICAgICAgfSk7DQogICAgfSk7DQogICAgcmV0dXJuOw0KfQ0KZnVuY3Rpb24gc2VhcmNoSW5NYXBwaW5nKCkgew0KICAgIHZhciBzZWFyY2hWYWx1ZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzZWFyY2hNYXBwaW5nIikudmFsdWU7DQogICAgdmFyIHRycyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb250ZW50X3RhYmxlIikuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlRSIik7DQogICAgZm9yICh2YXIgaSA9IDE7IGkgPCB0cnMubGVuZ3RoOyArK2kpIHsNCiAgICAgICAgdmFyIGlkID0gdHJzW2ldLmdldEF0dHJpYnV0ZSgiaWQiKTsNCiAgICAgICAgdmFyIGVsZW1lbnQgPSBTRUFSQ0hfTUFQUElOR1tpZF07DQogICAgICAgIHN3aXRjaCAoZWxlbWVudC50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKHNlYXJjaFZhbHVlLnRvTG93ZXJDYXNlKCkpKSB7DQogICAgICAgICAgICBjYXNlIHRydWU6DQogICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpLnN0eWxlLmRpc3BsYXkgPSAiIjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgZmFsc2U6DQogICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpLnN0eWxlLmRpc3BsYXkgPSAibm9uZSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIH0NCiAgICB9DQogICAgcmV0dXJuOw0KfQ0KZnVuY3Rpb24gY2FsY3VsYXRlV3JhcHBlckhlaWdodCgpIHsNCiAgICBpZiAoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImJveC13cmFwcGVyIikpIHsNCiAgICAgICAgdmFyIGVsbSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJib3gtd3JhcHBlciIpOw0KICAgICAgICB2YXIgZGl2cyA9IG5ldyBBcnJheSgibXlTdHJlYW1zQm94IiwgImNsaWVudEluZm8iLCAiY29udGVudCIpOw0KICAgICAgICB2YXIgZWxlbWVudHNIZWlnaHQgPSAwIC0gZWxtLm9mZnNldEhlaWdodDsNCiAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBkaXZzLmxlbmd0aDsgaSsrKSB7DQogICAgICAgICAgICBlbGVtZW50c0hlaWdodCA9IGVsZW1lbnRzSGVpZ2h0ICsgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoZGl2c1tpXSkub2Zmc2V0SGVpZ2h0Ow0KICAgICAgICB9DQogICAgICAgIGVsbS5zdHlsZS5oZWlnaHQgPSB3aW5kb3cuaW5uZXJIZWlnaHQgLSBlbGVtZW50c0hlaWdodCArICJweCI7DQogICAgfQ0KICAgIHJldHVybjsNCn0NCmZ1bmN0aW9uIGNoYW5nZUNoYW5uZWxOdW1iZXIoZWxlbWVudCkgew0KICAgIHZhciBkYklEID0gZWxlbWVudC5wYXJlbnROb2RlLnBhcmVudE5vZGUuaWQ7DQogICAgdmFyIG5ld051bWJlciA9IHBhcnNlRmxvYXQoZWxlbWVudC52YWx1ZSk7DQogICAgdmFyIGNoYW5uZWxOdW1iZXJzID0gW107DQogICAgdmFyIGRhdGEgPSBTRVJWRVJbInhlcGciXVsiZXBnTWFwcGluZyJdOw0KICAgIHZhciBjaGFubmVscyA9IGdldE93bk9ialByb3BzKGRhdGEpOw0KICAgIGlmIChpc05hTihuZXdOdW1iZXIpKSB7DQogICAgICAgIGFsZXJ0KCJ7ey5hbGVydC5pbnZhbGlkQ2hhbm5lbE51bWJlcn19Iik7DQogICAgICAgIHJldHVybjsNCiAgICB9DQogICAgY2hhbm5lbHMuZm9yRWFjaChpZCA9PiB7DQogICAgICAgIHZhciBjaGFubmVsTnVtYmVyID0gcGFyc2VGbG9hdChkYXRhW2lkXVsieC1jaGFubmVsSUQiXSk7DQogICAgICAgIGNoYW5uZWxOdW1iZXJzLnB1c2goY2hhbm5lbE51bWJlcik7DQogICAgfSk7DQogICAgZm9yICh2YXIgaSA9IDA7IGkgPCBjaGFubmVsTnVtYmVycy5sZW5ndGg7IGkrKykgew0KICAgICAgICBpZiAoY2hhbm5lbE51bWJlcnMuaW5kZXhPZihuZXdOdW1iZXIpID09IC0xKSB7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgfQ0KICAgICAgICBpZiAoTWF0aC5mbG9vcihuZXdOdW1iZXIpID09IG5ld051bWJlcikgew0KICAgICAgICAgICAgbmV3TnVtYmVyID0gbmV3TnVtYmVyICsgMTsNCiAgICAgICAgfQ0KICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgIG5ld051bWJlciA9IG5ld051bWJlciArIDAuMTsNCiAgICAgICAgICAgIG5ld051bWJlci50b0ZpeGVkKDEpOw0KICAgICAgICAgICAgbmV3TnVtYmVyID0gTWF0aC5yb3VuZChuZXdOdW1iZXIgKiAxMCkgLyAxMDsNCiAgICAgICAgfQ0KICAgIH0NCiAgICBkYXRhW2RiSURdWyJ4LWNoYW5uZWxJRCJdID0gbmV3TnVtYmVyLnRvU3RyaW5nKCk7DQogICAgZWxlbWVudC52YWx1ZSA9IG5ld051bWJlcjsNCiAgICBpZiAoQ09MVU1OX1RPX1NPUlQgPT0gMSkgew0KICAgICAgICBDT0xVTU5fVE9fU09SVCA9IC0xOw0KICAgICAgICBzb3J0VGFibGUoMSk7DQogICAgfQ0KICAgIHJldHVybjsNCn0NCmZ1bmN0aW9uIGJhY2t1cCgpIHsNCiAgICB2YXIgZGF0YSA9IG5ldyBPYmplY3QoKTsNCiAgICB2YXIgY21kID0gInh0ZXZlQmFja3VwIjsNCiAgICB2YXIgc2VydmVyID0gbmV3IFNlcnZlcihjbWQpOw0KICAgIHNlcnZlci5yZXF1ZXN0KGRhdGEpOw0KICAgIHJldHVybjsNCn0NCmZ1bmN0aW9uIHRvZ2dsZUNoYW5uZWxTdGF0dXMoaWQpIHsNCiAgICB2YXIgZWxlbWVudDsNCiAgICB2YXIgc3RhdHVzOw0KICAgIGlmIChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYWN0aXZlIikpIHsNCiAgICAgICAgdmFyIGNoZWNrYm94ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImFjdGl2ZSIpOw0KICAgICAgICBzdGF0dXMgPSAoY2hlY2tib3gpLmNoZWNrZWQ7DQogICAgfQ0KICAgIHZhciBpZHMgPSBnZXRBbGxTZWxlY3RlZENoYW5uZWxzKCk7DQogICAgaWYgKGlkcy5sZW5ndGggPT0gMCkgew0KICAgICAgICBpZHMucHVzaChpZCk7DQogICAgfQ0KICAgIGlkcy5mb3JFYWNoKGlkID0+IHsNCiAgICAgICAgdmFyIGNoYW5uZWwgPSBTRVJWRVJbInhlcGciXVsiZXBnTWFwcGluZyJdW2lkXTsNCiAgICAgICAgY2hhbm5lbFsieC1hY3RpdmUiXSA9IHN0YXR1czsNCiAgICAgICAgc3dpdGNoIChjaGFubmVsWyJ4LWFjdGl2ZSJdKSB7DQogICAgICAgICAgICBjYXNlIHRydWU6DQogICAgICAgICAgICAgICAgaWYgKGNoYW5uZWxbIngteG1sdHYtZmlsZSJdID09ICItIiB8fCBjaGFubmVsWyJ4LW1hcHBpbmciXSA9PSAiLSIpIHsNCiAgICAgICAgICAgICAgICAgICAgaWYgKEJVTEtfRURJVCA9PSBmYWxzZSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgYWxlcnQoY2hhbm5lbFsieC1uYW1lIl0gKyAiOiBNaXNzaW5nIFhNTFRWIGZpbGUgLyBjaGFubmVsIik7DQogICAgICAgICAgICAgICAgICAgICAgICBjaGVja2JveC5jaGVja2VkID0gZmFsc2U7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgY2hhbm5lbFsieC1hY3RpdmUiXSA9IGZhbHNlOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgZmFsc2U6DQogICAgICAgICAgICAgICAgLy8gY29kZS4uLg0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICB9DQogICAgICAgIGlmIChjaGFubmVsWyJ4LWFjdGl2ZSJdID09IGZhbHNlKSB7DQogICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkuY2xhc3NOYW1lID0gIm5vdEFjdGl2ZUVQRyI7DQogICAgICAgIH0NCiAgICAgICAgZWxzZSB7DQogICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkuY2xhc3NOYW1lID0gImFjdGl2ZUVQRyI7DQogICAgICAgIH0NCiAgICB9KTsNCn0NCmZ1bmN0aW9uIHRvZ2dsZUdyb3VwVXBkYXRlQ2IoeGVwZ0lkLCB0YXJnZXQpIHsNCiAgICB0YXJnZXQuY2xhc3NOYW1lID0gJ2NoYW5nZWQnOw0KICAgIGNvbnN0IGdyb3VwSW5wdXQgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCdpbnB1dFtuYW1lPSJ4LWdyb3VwLXRpdGxlIl0nKTsNCiAgICBjb25zdCBtYXBwaW5nID0gZ2V0TG9jYWxEYXRhKCdtYXBwaW5nJywgeGVwZ0lkKTsNCiAgICBpZiAodGFyZ2V0LmNoZWNrZWQpIHsNCiAgICAgICAgZ3JvdXBJbnB1dC5kYXRhc2V0Lm9sZFZhbHVlID0gZ3JvdXBJbnB1dC52YWx1ZTsNCiAgICAgICAgZ3JvdXBJbnB1dC52YWx1ZSA9IG1hcHBpbmdbJ2dyb3VwLXRpdGxlJ107DQogICAgICAgIGdyb3VwSW5wdXQuZGlzYWJsZWQgPSB0cnVlOw0KICAgIH0NCiAgICBlbHNlIHsNCiAgICAgICAgZ3JvdXBJbnB1dC52YWx1ZSA9IGdyb3VwSW5wdXQuZGF0YXNldC5vbGRWYWx1ZTsNCiAgICAgICAgZ3JvdXBJbnB1dC5kaXNhYmxlZCA9IGZhbHNlOw0KICAgIH0NCiAgICBncm91cElucHV0LmNsYXNzTmFtZSA9ICdjaGFuZ2VkJzsNCn0NCmZ1bmN0aW9uIHJlc3RvcmUoKSB7DQogICAgaWYgKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd1cGxvYWQnKSkgew0KICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndXBsb2FkJykucmVtb3ZlKCk7DQogICAgfQ0KICAgIHZhciByZXN0b3JlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiSU5QVVQiKTsNCiAgICByZXN0b3JlLnNldEF0dHJpYnV0ZSgidHlwZSIsICJmaWxlIik7DQogICAgcmVzdG9yZS5zZXRBdHRyaWJ1dGUoImNsYXNzIiwgIm5vdFZpc2libGUiKTsNCiAgICByZXN0b3JlLnNldEF0dHJpYnV0ZSgibmFtZSIsICIiKTsNCiAgICByZXN0b3JlLmlkID0gInVwbG9hZCI7DQogICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChyZXN0b3JlKTsNCiAgICByZXN0b3JlLmNsaWNrKCk7DQogICAgcmVzdG9yZS5vbmNoYW5nZSA9IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgdmFyIGZpbGVuYW1lID0gcmVzdG9yZS5maWxlc1swXS5uYW1lOw0KICAgICAgICB2YXIgY2hlY2sgPSBjb25maXJtKCJGaWxlOiAiICsgZmlsZW5hbWUgKyAiXG57ey5jb25maXJtLnJlc3RvcmV9fSIpOw0KICAgICAgICBpZiAoY2hlY2sgPT0gdHJ1ZSkgew0KICAgICAgICAgICAgdmFyIHJlYWRlciA9IG5ldyBGaWxlUmVhZGVyKCk7DQogICAgICAgICAgICB2YXIgZmlsZSA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ2lucHV0W3R5cGU9ZmlsZV0nKS5maWxlc1swXTsNCiAgICAgICAgICAgIGlmIChmaWxlKSB7DQogICAgICAgICAgICAgICAgcmVhZGVyLnJlYWRBc0RhdGFVUkwoZmlsZSk7DQogICAgICAgICAgICAgICAgcmVhZGVyLm9ubG9hZCA9IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGRhdGEgPSBuZXcgT2JqZWN0KCk7DQogICAgICAgICAgICAgICAgICAgIHZhciBjbWQgPSAieHRldmVSZXN0b3JlIjsNCiAgICAgICAgICAgICAgICAgICAgZGF0YVsiYmFzZTY0Il0gPSByZWFkZXIucmVzdWx0Ow0KICAgICAgICAgICAgICAgICAgICB2YXIgc2VydmVyID0gbmV3IFNlcnZlcihjbWQpOw0KICAgICAgICAgICAgICAgICAgICBzZXJ2ZXIucmVxdWVzdChkYXRhKTsNCiAgICAgICAgICAgICAgICB9Ow0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgZWxzZSB7DQogICAgICAgICAgICAgICAgYWxlcnQoIkZpbGUgY291bGQgbm90IGJlIGxvYWRlZCIpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgcmVzdG9yZS5yZW1vdmUoKTsNCiAgICAgICAgICAgIHJldHVybjsNCiAgICAgICAgfQ0KICAgIH07DQogICAgcmV0dXJuOw0KfQ0KZnVuY3Rpb24gdXBsb2FkTG9nbygpIHsNCiAgICBpZiAoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3VwbG9hZCcpKSB7DQogICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd1cGxvYWQnKS5yZW1vdmUoKTsNCiAgICB9DQogICAgdmFyIHVwbG9hZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIklOUFVUIik7DQogICAgdXBsb2FkLnNldEF0dHJpYnV0ZSgidHlwZSIsICJmaWxlIik7DQogICAgdXBsb2FkLnNldEF0dHJpYnV0ZSgiY2xhc3MiLCAibm90VmlzaWJsZSIpOw0KICAgIHVwbG9hZC5zZXRBdHRyaWJ1dGUoIm5hbWUiLCAiIik7DQogICAgdXBsb2FkLmlkID0gInVwbG9hZCI7DQogICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZCh1cGxvYWQpOw0KICAgIHVwbG9hZC5jbGljaygpOw0KICAgIHVwbG9hZC5vbmJsdXIgPSBmdW5jdGlvbiAoKSB7DQogICAgICAgIGFsZXJ0KCk7DQogICAgfTsNCiAgICB1cGxvYWQub25jaGFuZ2UgPSBmdW5jdGlvbiAoKSB7DQogICAgICAgIHZhciBmaWxlbmFtZSA9IHVwbG9hZC5maWxlc1swXS5uYW1lOw0KICAgICAgICB2YXIgcmVhZGVyID0gbmV3IEZpbGVSZWFkZXIoKTsNCiAgICAgICAgdmFyIGZpbGUgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCdpbnB1dFt0eXBlPWZpbGVdJykuZmlsZXNbMF07DQogICAgICAgIGlmIChmaWxlKSB7DQogICAgICAgICAgICByZWFkZXIucmVhZEFzRGF0YVVSTChmaWxlKTsNCiAgICAgICAgICAgIHJlYWRlci5vbmxvYWQgPSBmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICAgICAgdmFyIGRhdGEgPSBuZXcgT2JqZWN0KCk7DQogICAgICAgICAgICAgICAgdmFyIGNtZCA9ICJ1cGxvYWRMb2dvIjsNCiAgICAgICAgICAgICAgICBkYXRhWyJiYXNlNjQiXSA9IHJlYWRlci5yZXN1bHQ7DQogICAgICAgICAgICAgICAgZGF0YVsiZmlsZW5hbWUiXSA9IGZpbGUubmFtZTsNCiAgICAgICAgICAgICAgICB2YXIgc2VydmVyID0gbmV3IFNlcnZlcihjbWQpOw0KICAgICAgICAgICAgICAgIHNlcnZlci5yZXF1ZXN0KGRhdGEpOw0KICAgICAgICAgICAgICAgIHZhciB1cGRhdGVMb2dvID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3VwZGF0ZS1pY29uJyk7DQogICAgICAgICAgICAgICAgdXBkYXRlTG9nby5jaGVja2VkID0gZmFsc2U7DQogICAgICAgICAgICAgICAgdXBkYXRlTG9nby5jbGFzc05hbWUgPSAiY2hhbmdlZCI7DQogICAgICAgICAgICB9Ow0KICAgICAgICB9DQogICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgYWxlcnQoIkZpbGUgY291bGQgbm90IGJlIGxvYWRlZCIpOw0KICAgICAgICB9DQogICAgICAgIHVwbG9hZC5yZW1vdmUoKTsNCiAgICAgICAgcmV0dXJuOw0KICAgIH07DQp9DQpmdW5jdGlvbiBjaGVja1VuZG8oa2V5KSB7DQogICAgc3dpdGNoIChrZXkpIHsNCiAgICAgICAgY2FzZSAiZXBnTWFwcGluZyI6DQogICAgICAgICAgICBpZiAoVU5ETy5oYXNPd25Qcm9wZXJ0eShrZXkpKSB7DQogICAgICAgICAgICAgICAgU0VSVkVSWyJ4ZXBnIl1ba2V5XSA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkoVU5ET1trZXldKSk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICBVTkRPW2tleV0gPSBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KFNFUlZFUlsieGVwZyJdW2tleV0pKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBkZWZhdWx0Og0KICAgICAgICAgICAgYnJlYWs7DQogICAgfQ0KICAgIHJldHVybjsNCn0NCmZ1bmN0aW9uIHVwZGF0ZUxvZygpIHsNCiAgICB2YXIgc2VydmVyID0gbmV3IFNlcnZlcigidXBkYXRlTG9nIik7DQogICAgc2VydmVyLnJlcXVlc3QobmV3IE9iamVjdCgpKTsNCn0NCg==" webUI["html/js/classes_ts.js"] = "dmFyIF9fZXh0ZW5kcyA9ICh0aGlzICYmIHRoaXMuX19leHRlbmRzKSB8fCAoZnVuY3Rpb24gKCkgew0KICAgIHZhciBleHRlbmRTdGF0aWNzID0gZnVuY3Rpb24gKGQsIGIpIHsNCiAgICAgICAgZXh0ZW5kU3RhdGljcyA9IE9iamVjdC5zZXRQcm90b3R5cGVPZiB8fA0KICAgICAgICAgICAgKHsgX19wcm90b19fOiBbXSB9IGluc3RhbmNlb2YgQXJyYXkgJiYgZnVuY3Rpb24gKGQsIGIpIHsgZC5fX3Byb3RvX18gPSBiOyB9KSB8fA0KICAgICAgICAgICAgZnVuY3Rpb24gKGQsIGIpIHsgZm9yICh2YXIgcCBpbiBiKSBpZiAoYi5oYXNPd25Qcm9wZXJ0eShwKSkgZFtwXSA9IGJbcF07IH07DQogICAgICAgIHJldHVybiBleHRlbmRTdGF0aWNzKGQsIGIpOw0KICAgIH07DQogICAgcmV0dXJuIGZ1bmN0aW9uIChkLCBiKSB7DQogICAgICAgIGV4dGVuZFN0YXRpY3MoZCwgYik7DQogICAgICAgIGZ1bmN0aW9uIF9fKCkgeyB0aGlzLmNvbnN0cnVjdG9yID0gZDsgfQ0KICAgICAgICBkLnByb3RvdHlwZSA9IGIgPT09IG51bGwgPyBPYmplY3QuY3JlYXRlKGIpIDogKF9fLnByb3RvdHlwZSA9IGIucHJvdG90eXBlLCBuZXcgX18oKSk7DQogICAgfTsNCn0pKCk7DQp2YXIgTWFpbk1lbnUgPSAvKiogQGNsYXNzICovIChmdW5jdGlvbiAoKSB7DQogICAgZnVuY3Rpb24gTWFpbk1lbnUoKSB7DQogICAgICAgIHRoaXMuRG9jdW1lbnRJRCA9ICJtYWluLW1lbnUiOw0KICAgICAgICB0aGlzLkhUTUxUYWcgPSAiTEkiOw0KICAgIH0NCiAgICBNYWluTWVudS5wcm90b3R5cGUuY3JlYXRlID0gZnVuY3Rpb24gKCkgew0KICAgICAgICBjb25zb2xlLmxvZyh0aGlzLkRvY3VtZW50SUQpOw0KICAgIH07DQogICAgcmV0dXJuIE1haW5NZW51Ow0KfSgpKTsNCnZhciBNYWluTWVudUl0ZW0gPSAvKiogQGNsYXNzICovIChmdW5jdGlvbiAoX3N1cGVyKSB7DQogICAgX19leHRlbmRzKE1haW5NZW51SXRlbSwgX3N1cGVyKTsNCiAgICBmdW5jdGlvbiBNYWluTWVudUl0ZW0oKSB7DQogICAgICAgIHJldHVybiBfc3VwZXIgIT09IG51bGwgJiYgX3N1cGVyLmFwcGx5KHRoaXMsIGFyZ3VtZW50cykgfHwgdGhpczsNCiAgICB9DQogICAgTWFpbk1lbnVJdGVtLnByb3RvdHlwZS5jcmVhdGUyID0gZnVuY3Rpb24gKCkgew0KICAgICAgICB2YXIgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQodGhpcy5IVE1MVGFnKTsNCiAgICAgICAgZWxlbWVudC5pbm5lclRleHQgPSB0aGlzLlZhbHVlOw0KICAgICAgICBjb25zb2xlLmxvZyhlbGVtZW50KTsNCiAgICB9Ow0KICAgIHJldHVybiBNYWluTWVudUl0ZW07DQp9KE1haW5NZW51KSk7DQpmdW5jdGlvbiBwYWdlUmVhZHkoKSB7DQogICAgdmFyIGl0ZW0gPSBuZXcgTWFpbk1lbnVJdGVtKCk7DQogICAgaXRlbS5WYWx1ZSA9ICJUZXN0IjsNCiAgICBpdGVtLmNyZWF0ZTIoKTsNCn0NCg==" webUI["html/js/configuration_ts.js"] = "Y2xhc3MgV2l6YXJkQ2F0ZWdvcnkgew0KICAgIGNvbnN0cnVjdG9yKCkgew0KICAgICAgICB0aGlzLkRvY3VtZW50SUQgPSAiY29udGVudCI7DQogICAgfQ0KICAgIGNyZWF0ZUNhdGVnb3J5SGVhZGxpbmUodmFsdWUpIHsNCiAgICAgICAgdmFyIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJINCIpOw0KICAgICAgICBlbGVtZW50LmlubmVySFRNTCA9IHZhbHVlOw0KICAgICAgICByZXR1cm4gZWxlbWVudDsNCiAgICB9DQp9DQpjbGFzcyBXaXphcmRJdGVtIGV4dGVuZHMgV2l6YXJkQ2F0ZWdvcnkgew0KICAgIGNvbnN0cnVjdG9yKGtleSwgaGVhZGxpbmUpIHsNCiAgICAgICAgc3VwZXIoKTsNCiAgICAgICAgdGhpcy5oZWFkbGluZSA9IGhlYWRsaW5lOw0KICAgICAgICB0aGlzLmtleSA9IGtleTsNCiAgICB9DQogICAgY3JlYXRlV2l6YXJkKCkgew0KICAgICAgICB2YXIgaGVhZGxpbmUgPSB0aGlzLmNyZWF0ZUNhdGVnb3J5SGVhZGxpbmUodGhpcy5oZWFkbGluZSk7DQogICAgICAgIHZhciBrZXkgPSB0aGlzLmtleTsNCiAgICAgICAgdmFyIGNvbnRlbnQgPSBuZXcgUG9wdXBDb250ZW50KCk7DQogICAgICAgIHZhciBkZXNjcmlwdGlvbjsNCiAgICAgICAgdmFyIGRvYyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHRoaXMuRG9jdW1lbnRJRCk7DQogICAgICAgIGRvYy5pbm5lckhUTUwgPSAiIjsNCiAgICAgICAgZG9jLmFwcGVuZENoaWxkKGhlYWRsaW5lKTsNCiAgICAgICAgc3dpdGNoIChrZXkpIHsNCiAgICAgICAgICAgIGNhc2UgInR1bmVyIjoNCiAgICAgICAgICAgICAgICB2YXIgdGV4dCA9IG5ldyBBcnJheSgpOw0KICAgICAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBuZXcgQXJyYXkoKTsNCiAgICAgICAgICAgICAgICBmb3IgKHZhciBpID0gMTsgaSA8PSAxMDA7IGkrKykgew0KICAgICAgICAgICAgICAgICAgICB0ZXh0LnB1c2goaSk7DQogICAgICAgICAgICAgICAgICAgIHZhbHVlcy5wdXNoKGkpOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCAiMSIsIGtleSk7DQogICAgICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgiY2xhc3MiLCAid2l6YXJkIik7DQogICAgICAgICAgICAgICAgc2VsZWN0LmlkID0ga2V5Ow0KICAgICAgICAgICAgICAgIGRvYy5hcHBlbmRDaGlsZChzZWxlY3QpOw0KICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uID0gInt7LndpemFyZC50dW5lci5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImVwZ1NvdXJjZSI6DQogICAgICAgICAgICAgICAgdmFyIHRleHQgPSBbIlBNUyIsICJYRVBHIl07DQogICAgICAgICAgICAgICAgdmFyIHZhbHVlcyA9IFsiUE1TIiwgIlhFUEciXTsNCiAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCAiWEVQRyIsIGtleSk7DQogICAgICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgiY2xhc3MiLCAid2l6YXJkIik7DQogICAgICAgICAgICAgICAgc2VsZWN0LmlkID0ga2V5Ow0KICAgICAgICAgICAgICAgIGRvYy5hcHBlbmRDaGlsZChzZWxlY3QpOw0KICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uID0gInt7LndpemFyZC5lcGdTb3VyY2UuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJtM3UiOg0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBrZXksICIiKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LndpemFyZC5tM3UucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgiY2xhc3MiLCAid2l6YXJkIik7DQogICAgICAgICAgICAgICAgaW5wdXQuaWQgPSBrZXk7DQogICAgICAgICAgICAgICAgZG9jLmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbiA9ICJ7ey53aXphcmQubTN1LmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAieG1sdHYiOg0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBrZXksICIiKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LndpemFyZC54bWx0di5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJjbGFzcyIsICJ3aXphcmQiKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5pZCA9IGtleTsNCiAgICAgICAgICAgICAgICBkb2MuYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uID0gInt7LndpemFyZC54bWx0di5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIH0NCiAgICAgICAgdmFyIHByZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlBSRSIpOw0KICAgICAgICBwcmUuaW5uZXJIVE1MID0gZGVzY3JpcHRpb247DQogICAgICAgIGRvYy5hcHBlbmRDaGlsZChwcmUpOw0KICAgIH0NCn0NCmZ1bmN0aW9uIHJlYWR5Rm9yQ29uZmlndXJhdGlvbih3aXphcmQpIHsNCiAgICB2YXIgc2VydmVyID0gbmV3IFNlcnZlcigiZ2V0U2VydmVyQ29uZmlnIik7DQogICAgc2VydmVyLnJlcXVlc3QobmV3IE9iamVjdCgpKTsNCiAgICBzaG93RWxlbWVudCgibG9hZGluZyIsIGZhbHNlKTsNCiAgICBjb25maWd1cmF0aW9uV2l6YXJkW3dpemFyZF0uY3JlYXRlV2l6YXJkKCk7DQp9DQpmdW5jdGlvbiBzYXZlV2l6YXJkKCkgew0KICAgIHZhciBjbWQgPSAic2F2ZVdpemFyZCI7DQogICAgdmFyIGRpdiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb250ZW50Iik7DQogICAgdmFyIGNvbmZpZyA9IGRpdi5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCJ3aXphcmQiKTsNCiAgICB2YXIgd2l6YXJkID0gbmV3IE9iamVjdCgpOw0KICAgIGZvciAodmFyIGkgPSAwOyBpIDwgY29uZmlnLmxlbmd0aDsgaSsrKSB7DQogICAgICAgIHZhciBuYW1lOw0KICAgICAgICB2YXIgdmFsdWU7DQogICAgICAgIHN3aXRjaCAoY29uZmlnW2ldLnRhZ05hbWUpIHsNCiAgICAgICAgICAgIGNhc2UgIlNFTEVDVCI6DQogICAgICAgICAgICAgICAgbmFtZSA9IGNvbmZpZ1tpXS5uYW1lOw0KICAgICAgICAgICAgICAgIHZhbHVlID0gY29uZmlnW2ldLnZhbHVlOw0KICAgICAgICAgICAgICAgIC8vIElmIHRoZSB2YWx1ZSBpcyBhIG51bWJlciwgc3RvcmUgaXQgYXMgYSBudW1iZXINCiAgICAgICAgICAgICAgICBpZiAoaXNOYU4odmFsdWUpKSB7DQogICAgICAgICAgICAgICAgICAgIHdpemFyZFtuYW1lXSA9IHZhbHVlOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICAgICAgd2l6YXJkW25hbWVdID0gcGFyc2VJbnQodmFsdWUpOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgIklOUFVUIjoNCiAgICAgICAgICAgICAgICBzd2l0Y2ggKGNvbmZpZ1tpXS50eXBlKSB7DQogICAgICAgICAgICAgICAgICAgIGNhc2UgInRleHQiOg0KICAgICAgICAgICAgICAgICAgICAgICAgbmFtZSA9IGNvbmZpZ1tpXS5uYW1lOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSBjb25maWdbaV0udmFsdWU7DQogICAgICAgICAgICAgICAgICAgICAgICBpZiAodmFsdWUubGVuZ3RoID09IDApIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgbXNnID0gbmFtZS50b1VwcGVyQ2FzZSgpICsgIjogIiArICJ7ey5hbGVydC5taXNzaW5nSW5wdXR9fSI7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgYWxlcnQobXNnKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICB3aXphcmRbbmFtZV0gPSB2YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICAgICAgLy8gY29kZS4uLg0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICB9DQogICAgfQ0KICAgIHZhciBkYXRhID0gbmV3IE9iamVjdCgpOw0KICAgIGRhdGFbIndpemFyZCJdID0gd2l6YXJkOw0KICAgIHZhciBzZXJ2ZXIgPSBuZXcgU2VydmVyKGNtZCk7DQogICAgc2VydmVyLnJlcXVlc3QoZGF0YSk7DQp9DQovLyBXaXphcmQNCnZhciBjb25maWd1cmF0aW9uV2l6YXJkID0gbmV3IEFycmF5KCk7DQpjb25maWd1cmF0aW9uV2l6YXJkLnB1c2gobmV3IFdpemFyZEl0ZW0oInR1bmVyIiwgInt7LndpemFyZC50dW5lci50aXRsZX19IikpOw0KY29uZmlndXJhdGlvbldpemFyZC5wdXNoKG5ldyBXaXphcmRJdGVtKCJlcGdTb3VyY2UiLCAie3sud2l6YXJkLmVwZ1NvdXJjZS50aXRsZX19IikpOw0KY29uZmlndXJhdGlvbldpemFyZC5wdXNoKG5ldyBXaXphcmRJdGVtKCJtM3UiLCAie3sud2l6YXJkLm0zdS50aXRsZX19IikpOw0KY29uZmlndXJhdGlvbldpemFyZC5wdXNoKG5ldyBXaXphcmRJdGVtKCJ4bWx0diIsICJ7ey53aXphcmQueG1sdHYudGl0bGV9fSIpKTsNCg==" webUI["html/js/logs_ts.js"] = "Y2xhc3MgTG9nIHsNCiAgICBjcmVhdGVMb2coZW50cnkpIHsNCiAgICAgICAgdmFyIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJQUkUiKTsNCiAgICAgICAgZW50cnkgPSBTdHJpbmcoZW50cnkpOw0KICAgICAgICBpZiAoZW50cnkuaW5kZXhPZigiV0FSTklORyIpICE9IC0xKSB7DQogICAgICAgICAgICBlbGVtZW50LmNsYXNzTmFtZSA9ICJ3YXJuaW5nTXNnIjsNCiAgICAgICAgfQ0KICAgICAgICBpZiAoZW50cnkuaW5kZXhPZigiRVJST1IiKSAhPSAtMSkgew0KICAgICAgICAgICAgZWxlbWVudC5jbGFzc05hbWUgPSAiZXJyb3JNc2ciOw0KICAgICAgICB9DQogICAgICAgIGlmIChlbnRyeS5pbmRleE9mKCJERUJVRyIpICE9IC0xKSB7DQogICAgICAgICAgICBlbGVtZW50LmNsYXNzTmFtZSA9ICJkZWJ1Z01zZyI7DQogICAgICAgIH0NCiAgICAgICAgZWxlbWVudC5pbm5lckhUTUwgPSBlbnRyeTsNCiAgICAgICAgcmV0dXJuIGVsZW1lbnQ7DQogICAgfQ0KfQ0KZnVuY3Rpb24gc2hvd0xvZ3MoYm90dG9tKSB7DQogICAgdmFyIGxvZyA9IG5ldyBMb2coKTsNCiAgICB2YXIgbG9ncyA9IFNFUlZFUlsibG9nIl1bImxvZyJdOw0KICAgIHZhciBkaXYgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29udGVudF9sb2ciKTsNCiAgICBkaXYuaW5uZXJIVE1MID0gIiI7DQogICAgdmFyIGtleXMgPSBnZXRPd25PYmpQcm9wcyhsb2dzKTsNCiAgICBrZXlzLmZvckVhY2gobG9nSUQgPT4gew0KICAgICAgICB2YXIgZW50cnkgPSBsb2cuY3JlYXRlTG9nKGxvZ3NbbG9nSURdKTsNCiAgICAgICAgZGl2LmFwcGVuZChlbnRyeSk7DQogICAgfSk7DQogICAgc2V0VGltZW91dChmdW5jdGlvbiAoKSB7DQogICAgICAgIGlmIChib3R0b20gPT0gdHJ1ZSkgew0KICAgICAgICAgICAgdmFyIHdyYXBwZXIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYm94LXdyYXBwZXIiKTsNCiAgICAgICAgICAgIHdyYXBwZXIuc2Nyb2xsVG9wID0gd3JhcHBlci5zY3JvbGxIZWlnaHQ7DQogICAgICAgIH0NCiAgICB9LCAxMCk7DQp9DQpmdW5jdGlvbiByZXNldExvZ3MoKSB7DQogICAgdmFyIGNtZCA9ICJyZXNldExvZ3MiOw0KICAgIHZhciBkYXRhID0gbmV3IE9iamVjdCgpOw0KICAgIHZhciBzZXJ2ZXIgPSBuZXcgU2VydmVyKGNtZCk7DQogICAgc2VydmVyLnJlcXVlc3QoZGF0YSk7DQp9DQo=" - webUI["html/js/menu_ts.js"] = "Y2xhc3MgTWFpbk1lbnUgew0KICAgIGNvbnN0cnVjdG9yKCkgew0KICAgICAgICB0aGlzLkRvY3VtZW50SUQgPSAibWFpbi1tZW51IjsNCiAgICAgICAgdGhpcy5IVE1MVGFnID0gIkxJIjsNCiAgICAgICAgdGhpcy5JbWFnZVBhdGggPSAiaW1nLyI7DQogICAgfQ0KICAgIGNyZWF0ZUlNRyhzcmMpIHsNCiAgICAgICAgbGV0IGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJJTUciKTsNCiAgICAgICAgZWxlbWVudC5zZXRBdHRyaWJ1dGUoInNyYyIsIHRoaXMuSW1hZ2VQYXRoICsgc3JjKTsNCiAgICAgICAgcmV0dXJuIGVsZW1lbnQ7DQogICAgfQ0KICAgIGNyZWF0ZVZhbHVlKHZhbHVlKSB7DQogICAgICAgIGxldCBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiUCIpOw0KICAgICAgICBlbGVtZW50LmlubmVySFRNTCA9IHZhbHVlOw0KICAgICAgICByZXR1cm4gZWxlbWVudDsNCiAgICB9DQp9DQpjbGFzcyBNYWluTWVudUl0ZW0gZXh0ZW5kcyBNYWluTWVudSB7DQogICAgY29uc3RydWN0b3IobWVudUtleSwgdmFsdWUsIGltYWdlLCBoZWFkbGluZSkgew0KICAgICAgICBzdXBlcigpOw0KICAgICAgICB0aGlzLm1lbnVLZXkgPSBtZW51S2V5Ow0KICAgICAgICB0aGlzLnZhbHVlID0gdmFsdWU7DQogICAgICAgIHRoaXMuaW1nU3JjID0gaW1hZ2U7DQogICAgICAgIHRoaXMuaGVhZGxpbmUgPSBoZWFkbGluZTsNCiAgICB9DQogICAgY3JlYXRlSXRlbSgpIHsNCiAgICAgICAgbGV0IGl0ZW0gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJMSSIpOw0KICAgICAgICBpdGVtLnNldEF0dHJpYnV0ZSgib25jbGljayIsICJqYXZhc2NyaXB0OiBvcGVuVGhpc01lbnUodGhpcykiKTsNCiAgICAgICAgaXRlbS5zZXRBdHRyaWJ1dGUoImlkIiwgdGhpcy5pZCk7DQogICAgICAgIGxldCBpbWcgPSB0aGlzLmNyZWF0ZUlNRyh0aGlzLmltZ1NyYyk7DQogICAgICAgIGxldCB2YWx1ZSA9IHRoaXMuY3JlYXRlVmFsdWUodGhpcy52YWx1ZSk7DQogICAgICAgIGl0ZW0uYXBwZW5kQ2hpbGQoaW1nKTsNCiAgICAgICAgaXRlbS5hcHBlbmRDaGlsZCh2YWx1ZSk7DQogICAgICAgIGxldCBkb2MgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCh0aGlzLkRvY3VtZW50SUQpOw0KICAgICAgICBkb2MuYXBwZW5kQ2hpbGQoaXRlbSk7DQogICAgICAgIHN3aXRjaCAodGhpcy5tZW51S2V5KSB7DQogICAgICAgICAgICBjYXNlICJwbGF5bGlzdCI6DQogICAgICAgICAgICAgICAgdGhpcy50YWJsZUhlYWRlciA9IFsie3sucGxheWxpc3QudGFibGUucGxheWxpc3R9fSIsICJ7ey5wbGF5bGlzdC50YWJsZS50dW5lcn19IiwgInt7LnBsYXlsaXN0LnRhYmxlLmxhc3RVcGRhdGV9fSIsICJ7ey5wbGF5bGlzdC50YWJsZS5hdmFpbGFiaWxpdHl9fSAlIiwgInt7LnBsYXlsaXN0LnRhYmxlLnR5cGV9fSIsICJ7ey5wbGF5bGlzdC50YWJsZS5zdHJlYW1zfX0iLCAie3sucGxheWxpc3QudGFibGUuZ3JvdXBUaXRsZX19ICUiLCAie3sucGxheWxpc3QudGFibGUudHZnSUR9fSAlIiwgInt7LnBsYXlsaXN0LnRhYmxlLnVuaXF1ZUlEfX0gJSJdOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAieG1sdHYiOg0KICAgICAgICAgICAgICAgIHRoaXMudGFibGVIZWFkZXIgPSBbInt7LnhtbHR2LnRhYmxlLmd1aWRlfX0iLCAie3sueG1sdHYudGFibGUubGFzdFVwZGF0ZX19IiwgInt7LnhtbHR2LnRhYmxlLmF2YWlsYWJpbGl0eX19ICUiLCAie3sueG1sdHYudGFibGUuY2hhbm5lbHN9fSIsICJ7ey54bWx0di50YWJsZS5wcm9ncmFtc319Il07DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJmaWx0ZXIiOg0KICAgICAgICAgICAgICAgIHRoaXMudGFibGVIZWFkZXIgPSBbInt7LmZpbHRlci50YWJsZS5zdGFydGluZ0NoYW5uZWx9fSIsICJ7ey5maWx0ZXIudGFibGUubmFtZX19IiwgInt7LmZpbHRlci50YWJsZS50eXBlfX0iLCAie3suZmlsdGVyLnRhYmxlLmZpbHRlcn19Il07DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ1c2VycyI6DQogICAgICAgICAgICAgICAgdGhpcy50YWJsZUhlYWRlciA9IFsie3sudXNlcnMudGFibGUudXNlcm5hbWV9fSIsICJ7ey51c2Vycy50YWJsZS5wYXNzd29yZH19IiwgInt7LnVzZXJzLnRhYmxlLndlYn19IiwgInt7LnVzZXJzLnRhYmxlLnBtc319IiwgInt7LnVzZXJzLnRhYmxlLm0zdX19IiwgInt7LnVzZXJzLnRhYmxlLnhtbH19IiwgInt7LnVzZXJzLnRhYmxlLmFwaX19Il07DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJtYXBwaW5nIjoNCiAgICAgICAgICAgICAgICB0aGlzLnRhYmxlSGVhZGVyID0gWyJCVUxLIiwgInt7Lm1hcHBpbmcudGFibGUuY2hOb319IiwgInt7Lm1hcHBpbmcudGFibGUubG9nb319IiwgInt7Lm1hcHBpbmcudGFibGUuY2hhbm5lbE5hbWV9fSIsICJ7ey5tYXBwaW5nLnRhYmxlLnBsYXlsaXN0fX0iLCAie3subWFwcGluZy50YWJsZS5ncm91cFRpdGxlfX0iLCAie3subWFwcGluZy50YWJsZS54bWx0dkZpbGV9fSIsICJ7ey5tYXBwaW5nLnRhYmxlLnhtbHR2SUR9fSIsICJ7ey5tYXBwaW5nLnRhYmxlLnRpbWVzaGlmdH19Il07DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIH0NCiAgICB9DQp9DQpjbGFzcyBDb250ZW50IHsNCiAgICBjb25zdHJ1Y3RvcigpIHsNCiAgICAgICAgdGhpcy5Eb2N1bWVudElEID0gImNvbnRlbnQiOw0KICAgICAgICB0aGlzLlRhYmxlSUQgPSAiY29udGVudF90YWJsZSI7DQogICAgICAgIHRoaXMuaGVhZGVyQ2xhc3MgPSAiY29udGVudF90YWJsZV9oZWFkZXIiOw0KICAgICAgICB0aGlzLmludGVyYWN0aW9uSUQgPSAiY29udGVudC1pbnRlcmFjdGlvbiI7DQogICAgfQ0KICAgIGNyZWF0ZUhlYWRsaW5lKHZhbHVlKSB7DQogICAgICAgIGxldCBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiSDMiKTsNCiAgICAgICAgZWxlbWVudC5pbm5lckhUTUwgPSB2YWx1ZTsNCiAgICAgICAgcmV0dXJuIGVsZW1lbnQ7DQogICAgfQ0KICAgIGNyZWF0ZUhSKCkgew0KICAgICAgICByZXR1cm4gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiSFIiKTsNCiAgICB9DQogICAgY3JlYXRlSW50ZXJhY3Rpb24oKSB7DQogICAgICAgIGxldCBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiRElWIik7DQogICAgICAgIGVsZW1lbnQuc2V0QXR0cmlidXRlKCJpZCIsIHRoaXMuaW50ZXJhY3Rpb25JRCk7DQogICAgICAgIHJldHVybiBlbGVtZW50Ow0KICAgIH0NCiAgICBjcmVhdGVESVYoKSB7DQogICAgICAgIGxldCBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiRElWIik7DQogICAgICAgIGVsZW1lbnQuaWQgPSB0aGlzLkRpdklEOw0KICAgICAgICByZXR1cm4gZWxlbWVudDsNCiAgICB9DQogICAgY3JlYXRlVEFCTEUoKSB7DQogICAgICAgIGxldCBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEFCTEUiKTsNCiAgICAgICAgZWxlbWVudC5pZCA9IHRoaXMuVGFibGVJRDsNCiAgICAgICAgcmV0dXJuIGVsZW1lbnQ7DQogICAgfQ0KICAgIGNyZWF0ZVRhYmxlUm93KCkgew0KICAgICAgICBsZXQgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlRSIik7DQogICAgICAgIGVsZW1lbnQuY2xhc3NOYW1lID0gdGhpcy5oZWFkZXJDbGFzczsNCiAgICAgICAgcmV0dXJuIGVsZW1lbnQ7DQogICAgfQ0KICAgIGNyZWF0ZVRhYmxlQ29udGVudChtZW51S2V5KSB7DQogICAgICAgIGxldCBkYXRhID0ge307DQogICAgICAgIGxldCByb3dzID0gW107DQogICAgICAgIGxldCBmaWxlVHlwZXMgPSBbXTsNCiAgICAgICAgc3dpdGNoIChtZW51S2V5KSB7DQogICAgICAgICAgICBjYXNlICJwbGF5bGlzdCI6DQogICAgICAgICAgICAgICAgZmlsZVR5cGVzID0gWyJtM3UiLCAiaGRociJdOw0KICAgICAgICAgICAgICAgIGZpbGVUeXBlcy5mb3JFYWNoKGZpbGVUeXBlID0+IHsNCiAgICAgICAgICAgICAgICAgICAgZGF0YSA9IFNFUlZFUlsic2V0dGluZ3MiXVsiZmlsZXMiXVtmaWxlVHlwZV07DQogICAgICAgICAgICAgICAgICAgIHZhciBrZXlzID0gZ2V0T3duT2JqUHJvcHMoZGF0YSk7DQogICAgICAgICAgICAgICAgICAgIGtleXMuZm9yRWFjaChrZXkgPT4gew0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVFIiKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmlkID0ga2V5Ow0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgiJyArIGZpbGVUeXBlICsgJyIsIHRoaXMpJyk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsibmFtZSJdOw0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChTRVJWRVJbInNldHRpbmdzIl1bImJ1ZmZlciJdICE9ICItIikgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bInR1bmVyIl07DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gIi0iOw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bImxhc3QudXBkYXRlIl07DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsicHJvdmlkZXIuYXZhaWxhYmlsaXR5Il07DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsidHlwZSJdLnRvVXBwZXJDYXNlKCk7DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsiY29tcGF0aWJpbGl0eSJdWyJzdHJlYW1zIl07DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsiY29tcGF0aWJpbGl0eSJdWyJncm91cC50aXRsZSJdOw0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bImNvbXBhdGliaWxpdHkiXVsidHZnLmlkIl07DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsiY29tcGF0aWJpbGl0eSJdWyJzdHJlYW0uaWQiXTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHJvd3MucHVzaCh0cik7DQogICAgICAgICAgICAgICAgICAgIH0pOw0KICAgICAgICAgICAgICAgIH0pOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiZmlsdGVyIjoNCiAgICAgICAgICAgICAgICBkZWxldGUgU0VSVkVSWyJzZXR0aW5ncyJdWyJmaWx0ZXIiXVstMV07DQogICAgICAgICAgICAgICAgZGF0YSA9IFNFUlZFUlsic2V0dGluZ3MiXVsiZmlsdGVyIl07DQogICAgICAgICAgICAgICAgdmFyIGtleXMgPSBnZXRPd25PYmpQcm9wcyhkYXRhKTsNCiAgICAgICAgICAgICAgICBrZXlzLmZvckVhY2goa2V5ID0+IHsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVFIiKTsNCiAgICAgICAgICAgICAgICAgICAgdHIuaWQgPSBrZXk7DQogICAgICAgICAgICAgICAgICAgIHRyLnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoIicgKyBkYXRhW2tleV1bInR5cGUiXSArICciLCB0aGlzKScpOw0KICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsic3RhcnRpbmdDaGFubmVsIl07DQogICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bIm5hbWUiXTsNCiAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgc3dpdGNoIChkYXRhW2tleV1bInR5cGUiXSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAiY3VzdG9tLWZpbHRlciI6DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9ICJ7ey5maWx0ZXIuY3VzdG9tfX0iOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAiZ3JvdXAtdGl0bGUiOg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSAie3suZmlsdGVyLmdyb3VwfX0iOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJmaWx0ZXIiXTsNCiAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICByb3dzLnB1c2godHIpOw0KICAgICAgICAgICAgICAgIH0pOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAieG1sdHYiOg0KICAgICAgICAgICAgICAgIGZpbGVUeXBlcyA9IG5ldyBBcnJheSgieG1sdHYiKTsNCiAgICAgICAgICAgICAgICBmaWxlVHlwZXMuZm9yRWFjaChmaWxlVHlwZSA9PiB7DQogICAgICAgICAgICAgICAgICAgIGRhdGEgPSBTRVJWRVJbInNldHRpbmdzIl1bImZpbGVzIl1bZmlsZVR5cGVdOw0KICAgICAgICAgICAgICAgICAgICB2YXIga2V5cyA9IGdldE93bk9ialByb3BzKGRhdGEpOw0KICAgICAgICAgICAgICAgICAgICBrZXlzLmZvckVhY2goa2V5ID0+IHsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciB0ciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlRSIik7DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5pZCA9IGtleTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoIicgKyBmaWxlVHlwZSArICciLCB0aGlzKScpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bIm5hbWUiXTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJsYXN0LnVwZGF0ZSJdOw0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bInByb3ZpZGVyLmF2YWlsYWJpbGl0eSJdOw0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bImNvbXBhdGliaWxpdHkiXVsieG1sdHYuY2hhbm5lbHMiXTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJjb21wYXRpYmlsaXR5Il1bInhtbHR2LnByb2dyYW1zIl07DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICByb3dzLnB1c2godHIpOw0KICAgICAgICAgICAgICAgICAgICB9KTsNCiAgICAgICAgICAgICAgICB9KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInVzZXJzIjoNCiAgICAgICAgICAgICAgICBmaWxlVHlwZXMgPSBuZXcgQXJyYXkoInVzZXJzIik7DQogICAgICAgICAgICAgICAgZmlsZVR5cGVzLmZvckVhY2goZmlsZVR5cGUgPT4gew0KICAgICAgICAgICAgICAgICAgICBkYXRhID0gU0VSVkVSW2ZpbGVUeXBlXTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGtleXMgPSBnZXRPd25PYmpQcm9wcyhkYXRhKTsNCiAgICAgICAgICAgICAgICAgICAga2V5cy5mb3JFYWNoKGtleSA9PiB7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgdHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJUUiIpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuaWQgPSBrZXk7DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCInICsgZmlsZVR5cGUgKyAnIiwgdGhpcyknKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJkYXRhIl1bInVzZXJuYW1lIl07DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9ICIqKioqKioiOw0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChkYXRhW2tleV1bImRhdGEiXVsiYXV0aGVudGljYXRpb24ud2ViIl0gPT0gdHJ1ZSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSAi4pyTIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSAiLSI7DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGRhdGFba2V5XVsiZGF0YSJdWyJhdXRoZW50aWNhdGlvbi5wbXMiXSA9PSB0cnVlKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9ICLinJMiOw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9ICItIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgICAgICBpZiAoZGF0YVtrZXldWyJkYXRhIl1bImF1dGhlbnRpY2F0aW9uLm0zdSJdID09IHRydWUpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gIuKckyI7DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gIi0iOw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChkYXRhW2tleV1bImRhdGEiXVsiYXV0aGVudGljYXRpb24ueG1sIl0gPT0gdHJ1ZSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSAi4pyTIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSAiLSI7DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGRhdGFba2V5XVsiZGF0YSJdWyJhdXRoZW50aWNhdGlvbi5hcGkiXSA9PSB0cnVlKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9ICLinJMiOw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9ICItIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHJvd3MucHVzaCh0cik7DQogICAgICAgICAgICAgICAgICAgIH0pOw0KICAgICAgICAgICAgICAgIH0pOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAibWFwcGluZyI6DQogICAgICAgICAgICAgICAgQlVMS19FRElUID0gZmFsc2U7DQogICAgICAgICAgICAgICAgY3JlYXRlU2VhcmNoT2JqKCk7DQogICAgICAgICAgICAgICAgY2hlY2tVbmRvKCJlcGdNYXBwaW5nIik7DQogICAgICAgICAgICAgICAgZGF0YSA9IFNFUlZFUlsieGVwZyJdWyJlcGdNYXBwaW5nIl07DQogICAgICAgICAgICAgICAgdmFyIGtleXMgPSBnZXRPd25PYmpQcm9wcyhkYXRhKTsNCiAgICAgICAgICAgICAgICBrZXlzLmZvckVhY2goa2V5ID0+IHsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVFIiKTsNCiAgICAgICAgICAgICAgICAgICAgdHIuaWQgPSBrZXk7DQogICAgICAgICAgICAgICAgICAgIHN3aXRjaCAoZGF0YVtrZXldWyJ4LWFjdGl2ZSJdKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBjYXNlIHRydWU6DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgdHIuY2xhc3NOYW1lID0gImFjdGl2ZUVQRyI7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgICAgICAgICBjYXNlIGZhbHNlOg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyLmNsYXNzTmFtZSA9ICJub3RBY3RpdmVFUEciOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIC8vIEJ1bGsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiQlVMSyI7DQogICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBmYWxzZTsNCiAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAvLyBDaGFubmVsIG51bWJlcg0KICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJJTlBVVENIQU5ORUwiOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJ4LWNoYW5uZWxJRCJdOw0KICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgIC8vIExvZ28NCiAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiSU1HIjsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5pbWFnZVVSTCA9IGRhdGFba2V5XVsidHZnLWxvZ28iXTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHRkID0gY2VsbC5jcmVhdGVDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgIHRkLnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoIm1hcHBpbmciLCB0aGlzKScpOw0KICAgICAgICAgICAgICAgICAgICB0ZC5pZCA9IGtleTsNCiAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQodGQpOw0KICAgICAgICAgICAgICAgICAgICAvLyBDaGFubmVsIG5hbWUNCiAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2xhc3NOYW1lID0gZGF0YVtrZXldWyJ4LWNhdGVnb3J5Il07DQogICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bIngtbmFtZSJdOw0KICAgICAgICAgICAgICAgICAgICB2YXIgdGQgPSBjZWxsLmNyZWF0ZUNlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgdGQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgibWFwcGluZyIsIHRoaXMpJyk7DQogICAgICAgICAgICAgICAgICAgIHRkLmlkID0ga2V5Ow0KICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZCh0ZCk7DQogICAgICAgICAgICAgICAgICAgIC8vIFBsYXlsaXN0DQogICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZ2V0VmFsdWVGcm9tUHJvdmlkZXJGaWxlKGRhdGFba2V5XVsiX2ZpbGUubTN1LmlkIl0sICJtM3UiLCAibmFtZSIpOw0KICAgICAgICAgICAgICAgICAgICB2YXIgdGQgPSBjZWxsLmNyZWF0ZUNlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgdGQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgibWFwcGluZyIsIHRoaXMpJyk7DQogICAgICAgICAgICAgICAgICAgIHRkLmlkID0ga2V5Ow0KICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZCh0ZCk7DQogICAgICAgICAgICAgICAgICAgIC8vIEdyb3VwIChncm91cC10aXRsZSkNCiAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bIngtZ3JvdXAtdGl0bGUiXTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHRkID0gY2VsbC5jcmVhdGVDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgIHRkLnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoIm1hcHBpbmciLCB0aGlzKScpOw0KICAgICAgICAgICAgICAgICAgICB0ZC5pZCA9IGtleTsNCiAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQodGQpOw0KICAgICAgICAgICAgICAgICAgICAvLyBYTUxUViBmaWxlDQogICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICBpZiAoZGF0YVtrZXldWyJ4LXhtbHR2LWZpbGUiXSAhPSAiLSIpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBnZXRWYWx1ZUZyb21Qcm92aWRlckZpbGUoZGF0YVtrZXldWyJ4LXhtbHR2LWZpbGUiXSwgInhtbHR2IiwgIm5hbWUiKTsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bIngteG1sdHYtZmlsZSJdOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIHZhciB0ZCA9IGNlbGwuY3JlYXRlQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICB0ZC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJtYXBwaW5nIiwgdGhpcyknKTsNCiAgICAgICAgICAgICAgICAgICAgdGQuaWQgPSBrZXk7DQogICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKHRkKTsNCiAgICAgICAgICAgICAgICAgICAgLy8gWE1MVFYgQ2hhbm5lbA0KICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHZhbHVlID0gZGF0YVtrZXldWyJ4LW1hcHBpbmciXTsNCiAgICAgICAgICAgICAgICAgICAgaWYgKHZhbHVlLmxlbmd0aCA+IDIwKSB7DQogICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IGRhdGFba2V5XVsieC1tYXBwaW5nIl0uc3Vic3RyaW5nKDAsIDIwKSArICIuLi4iOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSB2YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHRkID0gY2VsbC5jcmVhdGVDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgIHRkLnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoIm1hcHBpbmciLCB0aGlzKScpOw0KICAgICAgICAgICAgICAgICAgICB0ZC5pZCA9IGtleTsNCiAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQodGQpOw0KICAgICAgICAgICAgICAgICAgICAvLyBUaW1lU2hpZnQNCiAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bIngtdGltZXNoaWZ0Il07DQogICAgICAgICAgICAgICAgICAgIHZhciB0ZCA9IGNlbGwuY3JlYXRlQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICB0ZC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJtYXBwaW5nIiwgdGhpcyknKTsNCiAgICAgICAgICAgICAgICAgICAgdGQuaWQgPSBrZXk7DQogICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKHRkKTsNCiAgICAgICAgICAgICAgICAgICAgcm93cy5wdXNoKHRyKTsNCiAgICAgICAgICAgICAgICB9KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInNldHRpbmdzIjoNCiAgICAgICAgICAgICAgICBhbGVydCgpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgfQ0KICAgICAgICByZXR1cm4gcm93czsNCiAgICB9DQp9DQpjbGFzcyBDZWxsIHsNCiAgICBjcmVhdGVDZWxsKCkgew0KICAgICAgICBsZXQgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICBpZiAodGhpcy5jaGlsZCA9PSB0cnVlKSB7DQogICAgICAgICAgICB2YXIgZWxlbWVudDsNCiAgICAgICAgICAgIHN3aXRjaCAodGhpcy5jaGlsZFR5cGUpIHsNCiAgICAgICAgICAgICAgICBjYXNlICJQIjoNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQodGhpcy5jaGlsZFR5cGUpOw0KICAgICAgICAgICAgICAgICAgICBlbGVtZW50LmlubmVySFRNTCA9IHRoaXMudmFsdWU7DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQuY2xhc3NOYW1lID0gdGhpcy5jbGFzc05hbWU7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgIklOUFVUIjoNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQodGhpcy5jaGlsZFR5cGUpOw0KICAgICAgICAgICAgICAgICAgICBlbGVtZW50LnZhbHVlID0gdGhpcy52YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC50eXBlID0gInRleHQiOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBjYXNlICJJTlBVVENIQU5ORUwiOg0KICAgICAgICAgICAgICAgICAgICBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiSU5QVVQiKTsNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdnNjcmlwdDogY2hhbmdlQ2hhbm5lbE51bWJlcih0aGlzKSIpOw0KICAgICAgICAgICAgICAgICAgICBlbGVtZW50LnZhbHVlID0gdGhpcy52YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC50eXBlID0gInRleHQiOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBjYXNlICJCVUxLIjoNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIklOUFVUIik7DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQuY2hlY2tlZCA9IHRoaXMudmFsdWU7DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQudHlwZSA9ICJjaGVja2JveCI7DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQuY2xhc3NOYW1lID0gImJ1bGsgaGlkZUJ1bGsiOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBjYXNlICJCVUxLX0hFQUQiOg0KICAgICAgICAgICAgICAgICAgICBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiSU5QVVQiKTsNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC5jaGVja2VkID0gdGhpcy52YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC50eXBlID0gImNoZWNrYm94IjsNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC5jbGFzc05hbWUgPSAiYnVsayBoaWRlQnVsayI7DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgImphdmFzY3JpcHQ6IHNlbGVjdEFsbENoYW5uZWxzKCkiKTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAiSU1HIjoNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQodGhpcy5jaGlsZFR5cGUpOw0KICAgICAgICAgICAgICAgICAgICBlbGVtZW50LnNldEF0dHJpYnV0ZSgic3JjIiwgdGhpcy5pbWFnZVVSTCk7DQogICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLmltYWdlVVJMICE9ICIiKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBlbGVtZW50LnNldEF0dHJpYnV0ZSgib25lcnJvciIsICJqYXZhc2NyaXB0OiB0aGlzLm9uZXJyb3I9bnVsbDt0aGlzLnNyYz0nJyIpOw0KICAgICAgICAgICAgICAgICAgICAgICAgLy9vbmVycm9yPSJ0aGlzLm9uZXJyb3I9bnVsbDt0aGlzLnNyYz0nbWlzc2luZy5naWYnOyINCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgdGQuYXBwZW5kQ2hpbGQoZWxlbWVudCk7DQogICAgICAgIH0NCiAgICAgICAgZWxzZSB7DQogICAgICAgICAgICB0ZC5pbm5lckhUTUwgPSB0aGlzLnZhbHVlOw0KICAgICAgICB9DQogICAgICAgIGlmICh0aGlzLm9uY2xpY2sgPT0gdHJ1ZSkgew0KICAgICAgICAgICAgdGQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgdGhpcy5vbmNsaWNrRnVuY3Rpb24pOw0KICAgICAgICAgICAgdGQuY2xhc3NOYW1lID0gInBvaW50ZXIiOw0KICAgICAgICB9DQogICAgICAgIGlmICh0aGlzLnRkQ2xhc3NOYW1lICE9IHVuZGVmaW5lZCkgew0KICAgICAgICAgICAgdGQuY2xhc3NOYW1lID0gdGhpcy50ZENsYXNzTmFtZTsNCiAgICAgICAgfQ0KICAgICAgICByZXR1cm4gdGQ7DQogICAgfQ0KfQ0KY2xhc3MgU2hvd0NvbnRlbnQgZXh0ZW5kcyBDb250ZW50IHsNCiAgICBjb25zdHJ1Y3RvcihtZW51SUQpIHsNCiAgICAgICAgc3VwZXIoKTsNCiAgICAgICAgdGhpcy5tZW51SUQgPSBtZW51SUQ7DQogICAgfQ0KICAgIGNyZWF0ZUlucHV0KHR5cGUsIG5hbWUsIHZhbHVlKSB7DQogICAgICAgIGxldCBpbnB1dCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIklOUFVUIik7DQogICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgidHlwZSIsIHR5cGUpOw0KICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm5hbWUiLCBuYW1lKTsNCiAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJ2YWx1ZSIsIHZhbHVlKTsNCiAgICAgICAgcmV0dXJuIGlucHV0Ow0KICAgIH0NCiAgICBzaG93KCkgew0KICAgICAgICBDT0xVTU5fVE9fU09SVCA9IC0xOw0KICAgICAgICAvLyBEZWxldGUgb2xkIGNvbnRlbnQNCiAgICAgICAgbGV0IGRvYyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHRoaXMuRG9jdW1lbnRJRCk7DQogICAgICAgIGRvYy5pbm5lckhUTUwgPSAiIjsNCiAgICAgICAgc2hvd1ByZXZpZXcoZmFsc2UpOw0KICAgICAgICAvLyBIZWFkbGluZQ0KICAgICAgICBsZXQgaGVhZGxpbmUgPSBtZW51SXRlbXNbdGhpcy5tZW51SURdLmhlYWRsaW5lOw0KICAgICAgICBsZXQgbWVudUtleSA9IG1lbnVJdGVtc1t0aGlzLm1lbnVJRF0ubWVudUtleTsNCiAgICAgICAgbGV0IGggPSB0aGlzLmNyZWF0ZUhlYWRsaW5lKGhlYWRsaW5lKTsNCiAgICAgICAgZG9jLmFwcGVuZENoaWxkKGgpOw0KICAgICAgICBsZXQgaHIgPSB0aGlzLmNyZWF0ZUhSKCk7DQogICAgICAgIGRvYy5hcHBlbmRDaGlsZChocik7DQogICAgICAgIC8vIEludGVyYWN0aW9uDQogICAgICAgIGxldCBkaXYgPSB0aGlzLmNyZWF0ZUludGVyYWN0aW9uKCk7DQogICAgICAgIGRvYy5hcHBlbmRDaGlsZChkaXYpOw0KICAgICAgICBsZXQgaW50ZXJhY3Rpb24gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCh0aGlzLmludGVyYWN0aW9uSUQpOw0KICAgICAgICBzd2l0Y2ggKG1lbnVLZXkpIHsNCiAgICAgICAgICAgIGNhc2UgInBsYXlsaXN0IjoNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSB0aGlzLmNyZWF0ZUlucHV0KCJidXR0b24iLCBtZW51S2V5LCAie3suYnV0dG9uLm5ld319Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJpZCIsICItIik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgicGxheWxpc3QiKScpOw0KICAgICAgICAgICAgICAgIGludGVyYWN0aW9uLmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImZpbHRlciI6DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gdGhpcy5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgbWVudUtleSwgInt7LmJ1dHRvbi5uZXd9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgiaWQiLCAtMSk7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgiZmlsdGVyIiwgdGhpcyknKTsNCiAgICAgICAgICAgICAgICBpbnRlcmFjdGlvbi5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ4bWx0diI6DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gdGhpcy5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgbWVudUtleSwgInt7LmJ1dHRvbi5uZXd9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgiaWQiLCAieG1sdHYiKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJ4bWx0diIpJyk7DQogICAgICAgICAgICAgICAgaW50ZXJhY3Rpb24uYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAidXNlcnMiOg0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IHRoaXMuY3JlYXRlSW5wdXQoImJ1dHRvbiIsIG1lbnVLZXksICJ7ey5idXR0b24ubmV3fX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoImlkIiwgInVzZXJzIik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgidXNlcnMiKScpOw0KICAgICAgICAgICAgICAgIGludGVyYWN0aW9uLmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgIm1hcHBpbmciOg0KICAgICAgICAgICAgICAgIHNob3dFbGVtZW50KCJsb2FkaW5nIiwgdHJ1ZSk7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gdGhpcy5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgbWVudUtleSwgInt7LmJ1dHRvbi5zYXZlfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogc2F2ZVBvcHVwRGF0YSgibWFwcGluZyIsICIiLCAiIiknKTsNCiAgICAgICAgICAgICAgICBpbnRlcmFjdGlvbi5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gdGhpcy5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgbWVudUtleSwgInt7LmJ1dHRvbi5idWxrRWRpdH19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IGJ1bGtFZGl0KCknKTsNCiAgICAgICAgICAgICAgICBpbnRlcmFjdGlvbi5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gdGhpcy5jcmVhdGVJbnB1dCgic2VhcmNoIiwgInNlYXJjaCIsICIiKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoImlkIiwgInNlYXJjaE1hcHBpbmciKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LmJ1dHRvbi5zZWFyY2h9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LmNsYXNzTmFtZSA9ICJzZWFyY2giOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAnamF2YXNjcmlwdDogc2VhcmNoSW5NYXBwaW5nKCknKTsNCiAgICAgICAgICAgICAgICBpbnRlcmFjdGlvbi5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJzZXR0aW5ncyI6DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gdGhpcy5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgbWVudUtleSwgInt7LmJ1dHRvbi5zYXZlfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogc2F2ZVNldHRpbmdzKCk7Jyk7DQogICAgICAgICAgICAgICAgaW50ZXJhY3Rpb24uYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IHRoaXMuY3JlYXRlSW5wdXQoImJ1dHRvbiIsIG1lbnVLZXksICJ7ey5idXR0b24uYmFja3VwfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogYmFja3VwKCk7Jyk7DQogICAgICAgICAgICAgICAgaW50ZXJhY3Rpb24uYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IHRoaXMuY3JlYXRlSW5wdXQoImJ1dHRvbiIsIG1lbnVLZXksICJ7ey5idXR0b24ucmVzdG9yZX19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IHJlc3RvcmUoKTsnKTsNCiAgICAgICAgICAgICAgICBpbnRlcmFjdGlvbi5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgdmFyIHdyYXBwZXIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJESVYiKTsNCiAgICAgICAgICAgICAgICB3cmFwcGVyLnNldEF0dHJpYnV0ZSgiaWQiLCAiYm94LXdyYXBwZXIiKTsNCiAgICAgICAgICAgICAgICBkb2MuYXBwZW5kQ2hpbGQod3JhcHBlcik7DQogICAgICAgICAgICAgICAgdGhpcy5EaXZJRCA9ICJjb250ZW50X3NldHRpbmdzIjsNCiAgICAgICAgICAgICAgICB2YXIgc2V0dGluZ3MgPSB0aGlzLmNyZWF0ZURJVigpOw0KICAgICAgICAgICAgICAgIHdyYXBwZXIuYXBwZW5kQ2hpbGQoc2V0dGluZ3MpOw0KICAgICAgICAgICAgICAgIHNob3dTZXR0aW5ncygpOw0KICAgICAgICAgICAgICAgIHJldHVybjsNCiAgICAgICAgICAgIGNhc2UgImxvZyI6DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gdGhpcy5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgbWVudUtleSwgInt7LmJ1dHRvbi5yZXNldExvZ3N9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiByZXNldExvZ3MoKTsnKTsNCiAgICAgICAgICAgICAgICBpbnRlcmFjdGlvbi5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgdmFyIHdyYXBwZXIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJESVYiKTsNCiAgICAgICAgICAgICAgICB3cmFwcGVyLnNldEF0dHJpYnV0ZSgiaWQiLCAiYm94LXdyYXBwZXIiKTsNCiAgICAgICAgICAgICAgICBkb2MuYXBwZW5kQ2hpbGQod3JhcHBlcik7DQogICAgICAgICAgICAgICAgdGhpcy5EaXZJRCA9ICJjb250ZW50X2xvZyI7DQogICAgICAgICAgICAgICAgdmFyIGxvZ3MgPSB0aGlzLmNyZWF0ZURJVigpOw0KICAgICAgICAgICAgICAgIHdyYXBwZXIuYXBwZW5kQ2hpbGQobG9ncyk7DQogICAgICAgICAgICAgICAgc2hvd0xvZ3ModHJ1ZSk7DQogICAgICAgICAgICAgICAgcmV0dXJuOw0KICAgICAgICAgICAgY2FzZSAibG9nb3V0IjoNCiAgICAgICAgICAgICAgICBsb2NhdGlvbi5yZWxvYWQoKTsNCiAgICAgICAgICAgICAgICBkb2N1bWVudC5jb29raWUgPSAiVG9rZW49IDsgZXhwaXJlcyA9IFRodSwgMDEgSmFuIDE5NzAgMDA6MDA6MDAgR01UIjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIH0NCiAgICAgICAgLy8gQ3JlYXRlIHRhYmxlIChpZiBuZWVkZWQpDQogICAgICAgIHZhciB0YWJsZUhlYWRlciA9IG1lbnVJdGVtc1t0aGlzLm1lbnVJRF0udGFibGVIZWFkZXI7DQogICAgICAgIGlmICh0YWJsZUhlYWRlci5sZW5ndGggPiAwKSB7DQogICAgICAgICAgICB2YXIgd3JhcHBlciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIkRJViIpOw0KICAgICAgICAgICAgZG9jLmFwcGVuZENoaWxkKHdyYXBwZXIpOw0KICAgICAgICAgICAgd3JhcHBlci5zZXRBdHRyaWJ1dGUoImlkIiwgImJveC13cmFwcGVyIik7DQogICAgICAgICAgICB2YXIgdGFibGUgPSB0aGlzLmNyZWF0ZVRBQkxFKCk7DQogICAgICAgICAgICB3cmFwcGVyLmFwcGVuZENoaWxkKHRhYmxlKTsNCiAgICAgICAgICAgIHZhciBoZWFkZXIgPSB0aGlzLmNyZWF0ZVRhYmxlUm93KCk7DQogICAgICAgICAgICB0YWJsZS5hcHBlbmRDaGlsZChoZWFkZXIpOw0KICAgICAgICAgICAgLy8gVGFibGUgaGVhZGVyDQogICAgICAgICAgICB0YWJsZUhlYWRlci5mb3JFYWNoKGVsZW1lbnQgPT4gew0KICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZWxlbWVudDsNCiAgICAgICAgICAgICAgICBpZiAoZWxlbWVudCA9PSAiQlVMSyIpIHsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiQlVMS19IRUFEIjsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGZhbHNlOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBpZiAobWVudUtleSA9PSAibWFwcGluZyIpIHsNCiAgICAgICAgICAgICAgICAgICAgaWYgKGVsZW1lbnQgPT0gInt7Lm1hcHBpbmcudGFibGUuY2hOb319Iikgew0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5vbmNsaWNrID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwub25jbGlja0Z1bmN0aW9uID0gImphdmFzY3JpcHQ6IHNvcnRUYWJsZSgxKTsiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC50ZENsYXNzTmFtZSA9ICJzb3J0VGhpcyI7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgaWYgKGVsZW1lbnQgPT0gInt7Lm1hcHBpbmcudGFibGUuY2hhbm5lbE5hbWV9fSIpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwub25jbGljayA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLm9uY2xpY2tGdW5jdGlvbiA9ICJqYXZhc2NyaXB0OiBzb3J0VGFibGUoMyk7IjsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBpZiAoZWxlbWVudCA9PSAie3subWFwcGluZy50YWJsZS5wbGF5bGlzdH19Iikgew0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5vbmNsaWNrID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwub25jbGlja0Z1bmN0aW9uID0gImphdmFzY3JpcHQ6IHNvcnRUYWJsZSg0KTsiOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIGlmIChlbGVtZW50ID09ICJ7ey5tYXBwaW5nLnRhYmxlLmdyb3VwVGl0bGV9fSIpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwub25jbGljayA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLm9uY2xpY2tGdW5jdGlvbiA9ICJqYXZhc2NyaXB0OiBzb3J0VGFibGUoNSk7IjsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBpZiAoZWxlbWVudCA9PSAie3subWFwcGluZy50YWJsZS50aW1lc2hpZnR9fSIpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwub25jbGljayA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLm9uY2xpY2tGdW5jdGlvbiA9ICJqYXZhc2NyaXB0OiBzb3J0VGFibGUoOCk7IjsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBpZiAobWVudUtleSA9PSAiZmlsdGVyIikgew0KICAgICAgICAgICAgICAgICAgICBpZiAoZWxlbWVudCA9PSAie3suZmlsdGVyLnRhYmxlLnN0YXJ0aW5nQ2hhbm5lbH19Iikgew0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5vbmNsaWNrID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwub25jbGlja0Z1bmN0aW9uID0gImphdmFzY3JpcHQ6IHNvcnRUYWJsZSgwKTsiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC50ZENsYXNzTmFtZSA9ICJzb3J0VGhpcyI7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgaWYgKGVsZW1lbnQgPT0gInt7LmZpbHRlci50YWJsZS5uYW1lfX0iKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLm9uY2xpY2sgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5vbmNsaWNrRnVuY3Rpb24gPSAiamF2YXNjcmlwdDogc29ydFRhYmxlKDEpOyI7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgaWYgKGVsZW1lbnQgPT0gInt7LmZpbHRlci50YWJsZS50eXBlfX0iKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLm9uY2xpY2sgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5vbmNsaWNrRnVuY3Rpb24gPSAiamF2YXNjcmlwdDogc29ydFRhYmxlKDIpOyI7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgaWYgKGVsZW1lbnQgPT0gInt7LmZpbHRlci50YWJsZS5maWx0ZXJ9fSIpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwub25jbGljayA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLm9uY2xpY2tGdW5jdGlvbiA9ICJqYXZhc2NyaXB0OiBzb3J0VGFibGUoMyk7IjsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBoZWFkZXIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgfSk7DQogICAgICAgICAgICB0YWJsZS5hcHBlbmRDaGlsZChoZWFkZXIpOw0KICAgICAgICAgICAgLy8gQ29udGVudCBvZiB0aGUgdGFibGUNCiAgICAgICAgICAgIHZhciByb3dzID0gdGhpcy5jcmVhdGVUYWJsZUNvbnRlbnQobWVudUtleSk7DQogICAgICAgICAgICByb3dzLmZvckVhY2godHIgPT4gew0KICAgICAgICAgICAgICAgIHRhYmxlLmFwcGVuZENoaWxkKHRyKTsNCiAgICAgICAgICAgIH0pOw0KICAgICAgICB9DQogICAgICAgIHN3aXRjaCAobWVudUtleSkgew0KICAgICAgICAgICAgY2FzZSAibWFwcGluZyI6DQogICAgICAgICAgICAgICAgc29ydFRhYmxlKDEpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiZmlsdGVyIjoNCiAgICAgICAgICAgICAgICBzaG93UHJldmlldyh0cnVlKTsNCiAgICAgICAgICAgICAgICBzb3J0VGFibGUoMCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBkZWZhdWx0Og0KICAgICAgICAgICAgICAgIENPTFVNTl9UT19TT1JUID0gLTE7DQogICAgICAgICAgICAgICAgc29ydFRhYmxlKDApOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICB9DQogICAgICAgIHNob3dFbGVtZW50KCJsb2FkaW5nIiwgZmFsc2UpOw0KICAgIH0NCn0NCmZ1bmN0aW9uIFBhZ2VSZWFkeSgpIHsNCiAgICBsZXQgc2VydmVyID0gbmV3IFNlcnZlcigiZ2V0U2VydmVyQ29uZmlnIik7DQogICAgc2VydmVyLnJlcXVlc3Qoe30pOw0KICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJyZXNpemUiLCBmdW5jdGlvbiAoKSB7DQogICAgICAgIGNhbGN1bGF0ZVdyYXBwZXJIZWlnaHQoKTsNCiAgICB9LCB0cnVlKTsNCiAgICBzZXRJbnRlcnZhbChmdW5jdGlvbiAoKSB7DQogICAgICAgIHVwZGF0ZUxvZygpOw0KICAgIH0sIDEwMDAwKTsNCiAgICByZXR1cm47DQp9DQpmdW5jdGlvbiBjcmVhdGVMYXlvdXQoKSB7DQogICAgLy8gQ2xpZW50IEluZm8NCiAgICBsZXQgb2JqID0gU0VSVkVSWyJjbGllbnRJbmZvIl07DQogICAgbGV0IGtleXMgPSBnZXRPd25PYmpQcm9wcyhvYmopOw0KICAgIGZvciAodmFyIGkgPSAwOyBpIDwga2V5cy5sZW5ndGg7IGkrKykgew0KICAgICAgICBpZiAoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoa2V5c1tpXSkpIHsNCiAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGtleXNbaV0pLmlubmVySFRNTCA9IG9ialtrZXlzW2ldXTsNCiAgICAgICAgfQ0KICAgIH0NCiAgICBpZiAoIWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJtYWluLW1lbnUiKSkgew0KICAgICAgICByZXR1cm47DQogICAgfQ0KICAgIC8vIENyZWF0ZSBtZW51DQogICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm1haW4tbWVudSIpLmlubmVySFRNTCA9ICIiOw0KICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbWVudUl0ZW1zLmxlbmd0aDsgaSsrKSB7DQogICAgICAgIG1lbnVJdGVtc1tpXS5pZCA9IGk7DQogICAgICAgIHN3aXRjaCAobWVudUl0ZW1zW2ldWyJtZW51S2V5Il0pIHsNCiAgICAgICAgICAgIGNhc2UgInVzZXJzIjoNCiAgICAgICAgICAgIGNhc2UgImxvZ291dCI6DQogICAgICAgICAgICAgICAgaWYgKFNFUlZFUlsic2V0dGluZ3MiXVsiYXV0aGVudGljYXRpb24ud2ViIl0gPT0gdHJ1ZSkgew0KICAgICAgICAgICAgICAgICAgICBtZW51SXRlbXNbaV0uY3JlYXRlSXRlbSgpOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgIm1hcHBpbmciOg0KICAgICAgICAgICAgY2FzZSAieG1sdHYiOg0KICAgICAgICAgICAgICAgIGlmIChTRVJWRVJbImNsaWVudEluZm8iXVsiZXBnU291cmNlIl0gPT0gIlhFUEciKSB7DQogICAgICAgICAgICAgICAgICAgIG1lbnVJdGVtc1tpXS5jcmVhdGVJdGVtKCk7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgICAgICBtZW51SXRlbXNbaV0uY3JlYXRlSXRlbSgpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICB9DQogICAgfQ0KICAgIHJldHVybjsNCn0NCmZ1bmN0aW9uIG9wZW5UaGlzTWVudShlbGVtZW50KSB7DQogICAgbGV0IGlkID0gZWxlbWVudC5pZDsNCiAgICBsZXQgY29udGVudCA9IG5ldyBTaG93Q29udGVudChpZCk7DQogICAgY29udGVudC5zaG93KCk7DQogICAgY2FsY3VsYXRlV3JhcHBlckhlaWdodCgpOw0KICAgIHJldHVybjsNCn0NCmNsYXNzIFBvcHVwV2luZG93IHsNCiAgICBjb25zdHJ1Y3RvcigpIHsNCiAgICAgICAgdGhpcy5Eb2N1bWVudElEID0gInBvcHVwLWN1c3RvbSI7DQogICAgICAgIHRoaXMuSW50ZXJhY3Rpb25JRCA9ICJpbnRlcmFjdGlvbiI7DQogICAgICAgIHRoaXMuZG9jID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQodGhpcy5Eb2N1bWVudElEKTsNCiAgICB9DQogICAgY3JlYXRlVGl0bGUodGl0bGUpIHsNCiAgICAgICAgbGV0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgdGQuY2xhc3NOYW1lID0gImxlZnQiOw0KICAgICAgICB0ZC5pbm5lckhUTUwgPSB0aXRsZSArICI6IjsNCiAgICAgICAgcmV0dXJuIHRkOw0KICAgIH0NCiAgICBjcmVhdGVDb250ZW50KGVsZW1lbnQpIHsNCiAgICAgICAgbGV0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgdGQuYXBwZW5kQ2hpbGQoZWxlbWVudCk7DQogICAgICAgIHJldHVybiB0ZDsNCiAgICB9DQogICAgY3JlYXRlSW50ZXJhY3Rpb24oKSB7DQogICAgICAgIGxldCBkaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsNCiAgICAgICAgZGl2LnNldEF0dHJpYnV0ZSgiaWQiLCAicG9wdXAtaW50ZXJhY3Rpb24iKTsNCiAgICAgICAgZGl2LmNsYXNzTmFtZSA9ICJpbnRlcmFjdGlvbiI7DQogICAgICAgIHRoaXMuZG9jLmFwcGVuZENoaWxkKGRpdik7DQogICAgfQ0KfQ0KY2xhc3MgUG9wdXBDb250ZW50IGV4dGVuZHMgUG9wdXBXaW5kb3cgew0KICAgIGNvbnN0cnVjdG9yKCkgew0KICAgICAgICBzdXBlciguLi5hcmd1bWVudHMpOw0KICAgICAgICB0aGlzLnRhYmxlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEFCTEUiKTsNCiAgICB9DQogICAgY3JlYXRlSGVhZGxpbmUoaGVhZGxpbmUpIHsNCiAgICAgICAgdGhpcy5kb2MuaW5uZXJIVE1MID0gIiI7DQogICAgICAgIHZhciBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiSDMiKTsNCiAgICAgICAgZWxlbWVudC5pbm5lckhUTUwgPSBoZWFkbGluZS50b1VwcGVyQ2FzZSgpOw0KICAgICAgICB0aGlzLmRvYy5hcHBlbmRDaGlsZChlbGVtZW50KTsNCiAgICAgICAgLy8gQ3JlYXRlIHRhYmxlDQogICAgICAgIHRoaXMudGFibGUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJUQUJMRSIpOw0KICAgICAgICB0aGlzLmRvYy5hcHBlbmRDaGlsZCh0aGlzLnRhYmxlKTsNCiAgICB9DQogICAgYXBwZW5kUm93KHRpdGxlLCBlbGVtZW50KSB7DQogICAgICAgIGxldCB0ciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlRSIik7DQogICAgICAgIC8vIFRpdGxlDQogICAgICAgIGlmICh0aXRsZS5sZW5ndGggIT0gMCkgew0KICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQodGhpcy5jcmVhdGVUaXRsZSh0aXRsZSkpOw0KICAgICAgICB9DQogICAgICAgIC8vIENvbnRlbnQNCiAgICAgICAgdHIuYXBwZW5kQ2hpbGQodGhpcy5jcmVhdGVDb250ZW50KGVsZW1lbnQpKTsNCiAgICAgICAgdGhpcy50YWJsZS5hcHBlbmRDaGlsZCh0cik7DQogICAgfQ0KICAgIGNyZWF0ZUlucHV0KHR5cGUsIG5hbWUsIHZhbHVlKSB7DQogICAgICAgIGxldCBpbnB1dCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIklOUFVUIik7DQogICAgICAgIGlmICh2YWx1ZSA9PSB1bmRlZmluZWQpIHsNCiAgICAgICAgICAgIHZhbHVlID0gIiI7DQogICAgICAgIH0NCiAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJ0eXBlIiwgdHlwZSk7DQogICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgibmFtZSIsIG5hbWUpOw0KICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInZhbHVlIiwgdmFsdWUpOw0KICAgICAgICByZXR1cm4gaW5wdXQ7DQogICAgfQ0KICAgIGNyZWF0ZUNoZWNrYm94KG5hbWUpIHsNCiAgICAgICAgbGV0IGlucHV0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiSU5QVVQiKTsNCiAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJ0eXBlIiwgImNoZWNrYm94Iik7DQogICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgibmFtZSIsIG5hbWUpOw0KICAgICAgICByZXR1cm4gaW5wdXQ7DQogICAgfQ0KICAgIC8vIENyZWF0ZXMgYSBzZWxlY3Rpb24gb2YgbXVsdGlwbGUgb3B0aW9ucyB2YWx1ZXMgd2l0aCB0ZXh0IGRlc2NyaXB0aW9ucw0KICAgIGNyZWF0ZVNlbGVjdCh0ZXh0LCB2YWx1ZXMsIHNldCwgZGJLZXkpIHsNCiAgICAgICAgbGV0IHNlbGVjdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlNFTEVDVCIpOw0KICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJuYW1lIiwgZGJLZXkpOw0KICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRleHQubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgICAgIGxldCBvcHRpb24gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJPUFRJT04iKTsNCiAgICAgICAgICAgIG9wdGlvbi5zZXRBdHRyaWJ1dGUoInZhbHVlIiwgdmFsdWVzW2ldKTsNCiAgICAgICAgICAgIG9wdGlvbi5pbm5lclRleHQgPSB0ZXh0W2ldOw0KICAgICAgICAgICAgc2VsZWN0LmFwcGVuZENoaWxkKG9wdGlvbik7DQogICAgICAgIH0NCiAgICAgICAgaWYgKHNldCAhPSAiIikgew0KICAgICAgICAgICAgc2VsZWN0LnZhbHVlID0gc2V0Ow0KICAgICAgICB9DQogICAgICAgIGlmIChzZXQgPT0gdW5kZWZpbmVkKSB7DQogICAgICAgICAgICBzZWxlY3QudmFsdWUgPSB2YWx1ZXNbMF07DQogICAgICAgIH0NCiAgICAgICAgcmV0dXJuIHNlbGVjdDsNCiAgICB9DQogICAgc2VsZWN0T3B0aW9uKHNlbGVjdCwgdmFsdWUpIHsNCiAgICAgICAgLy9zZWxlY3Quc2VsZWN0ZWRPcHRpb25zID0gdmFsdWUNCiAgICAgICAgbGV0IHMgPSBzZWxlY3Q7DQogICAgICAgIHMub3B0aW9uc1tzLnNlbGVjdGVkSW5kZXhdLnZhbHVlID0gdmFsdWU7DQogICAgICAgIHJldHVybiBzZWxlY3Q7DQogICAgfQ0KICAgIGRlc2NyaXB0aW9uKHZhbHVlKSB7DQogICAgICAgIGxldCB0ciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlRSIik7DQogICAgICAgIGxldCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgIGxldCBzcGFuID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiUFJFIik7DQogICAgICAgIHNwYW4uaW5uZXJIVE1MID0gdmFsdWU7DQogICAgICAgIHRyLmFwcGVuZENoaWxkKHRkKTsNCiAgICAgICAgdHIuYXBwZW5kQ2hpbGQodGhpcy5jcmVhdGVDb250ZW50KHNwYW4pKTsNCiAgICAgICAgdGhpcy50YWJsZS5hcHBlbmRDaGlsZCh0cik7DQogICAgfQ0KICAgIC8vIEludGVyYWN0aW9uDQogICAgYWRkSW50ZXJhY3Rpb24oZWxlbWVudCkgew0KICAgICAgICBsZXQgaW50ZXJhY3Rpb24gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicG9wdXAtaW50ZXJhY3Rpb24iKTsNCiAgICAgICAgaW50ZXJhY3Rpb24uYXBwZW5kQ2hpbGQoZWxlbWVudCk7DQogICAgfQ0KfQ0KZnVuY3Rpb24gb3BlblBvcFVwKGRhdGFUeXBlLCBlbGVtZW50KSB7DQogICAgbGV0IGRhdGEgPSB7fTsNCiAgICBsZXQgaWQ7DQogICAgc3dpdGNoIChlbGVtZW50KSB7DQogICAgICAgIGNhc2UgdW5kZWZpbmVkOg0KICAgICAgICAgICAgc3dpdGNoIChkYXRhVHlwZSkgew0KICAgICAgICAgICAgICAgIGNhc2UgImdyb3VwLXRpdGxlIjoNCiAgICAgICAgICAgICAgICAgICAgaWYgKGlkID09IHVuZGVmaW5lZCkgew0KICAgICAgICAgICAgICAgICAgICAgICAgaWQgPSAtMTsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBkYXRhID0gZ2V0TG9jYWxEYXRhKCJmaWx0ZXIiLCBpZCk7DQogICAgICAgICAgICAgICAgICAgIGRhdGFbInR5cGUiXSA9ICJncm91cC10aXRsZSI7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgImN1c3RvbS1maWx0ZXIiOg0KICAgICAgICAgICAgICAgICAgICBpZiAoaWQgPT0gdW5kZWZpbmVkKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBpZCA9IC0xOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIGRhdGEgPSBnZXRMb2NhbERhdGEoImZpbHRlciIsIGlkKTsNCiAgICAgICAgICAgICAgICAgICAgZGF0YVsidHlwZSJdID0gImN1c3RvbS1maWx0ZXIiOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBkZWZhdWx0Og0KICAgICAgICAgICAgICAgICAgICBkYXRhWyJpZC5wcm92aWRlciJdID0gIi0iOw0KICAgICAgICAgICAgICAgICAgICBkYXRhWyJ0eXBlIl0gPSBkYXRhVHlwZTsNCiAgICAgICAgICAgICAgICAgICAgaWQgPSAiLSI7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICBpZCA9IGVsZW1lbnQuaWQ7DQogICAgICAgICAgICBkYXRhID0gZ2V0TG9jYWxEYXRhKGRhdGFUeXBlLCBpZCk7DQogICAgICAgICAgICBicmVhazsNCiAgICB9DQogICAgbGV0IGNvbnRlbnQgPSBuZXcgUG9wdXBDb250ZW50KCk7DQogICAgc3dpdGNoIChkYXRhVHlwZSkgew0KICAgICAgICBjYXNlICJwbGF5bGlzdCI6DQogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUhlYWRsaW5lKCJ7ey5wbGF5bGlzdC5wbGF5bGlzdFR5cGUudGl0bGV9fSIpOw0KICAgICAgICAgICAgLy8gVHlwZQ0KICAgICAgICAgICAgdmFyIHRleHQgPSBbIk0zVSIsICJIREhvbWVSdW4iXTsNCiAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBbImphdmFzY3JpcHQ6IG9wZW5Qb3BVcCgnbTN1JykiLCAiamF2YXNjcmlwdDogb3BlblBvcFVwKCdoZGhyJykiXTsNCiAgICAgICAgICAgIHZhciBzZWxlY3QgPSBjb250ZW50LmNyZWF0ZVNlbGVjdCh0ZXh0LCB2YWx1ZXMsICIiLCAidHlwZSIpOw0KICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgiaWQiLCAidHlwZSIpOw0KICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAnamF2YXNjcmlwdDogY2hhbmdlQnV0dG9uQWN0aW9uKHRoaXMsICJuZXh0IiwgIm9uY2xpY2siKScpOyAvLyBjaGFuZ2VCdXR0b25BY3Rpb24NCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5wbGF5bGlzdC50eXBlLnRpdGxlfX0iLCBzZWxlY3QpOw0KICAgICAgICAgICAgLy8gSW50ZXJhY3Rpb24NCiAgICAgICAgICAgIGNvbnRlbnQuY3JlYXRlSW50ZXJhY3Rpb24oKTsNCiAgICAgICAgICAgIC8vIEFib3J0DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAiY2FuY2VsIiwgInt7LmJ1dHRvbi5jYW5jZWx9fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IHNob3dFbGVtZW50KCJwb3B1cCIsIGZhbHNlKTsnKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgLy8gTmV4dA0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgIm5leHQiLCAie3suYnV0dG9uLm5leHR9fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgibTN1IiknKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgiaWQiLCAnbmV4dCcpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSAibTN1IjoNCiAgICAgICAgICAgIGNvbnRlbnQuY3JlYXRlSGVhZGxpbmUoZGF0YVR5cGUpOw0KICAgICAgICAgICAgLy8gTmFtZQ0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gIm5hbWUiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnBsYXlsaXN0Lm5hbWUucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnBsYXlsaXN0Lm5hbWUudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIERlc2NyaXB0aW9uDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAiZGVzY3JpcHRpb24iOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnBsYXlsaXN0LmRlc2NyaXB0aW9uLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5wbGF5bGlzdC5kZXNjcmlwdGlvbi50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgLy8gVVJMDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAiZmlsZS5zb3VyY2UiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnBsYXlsaXN0LmZpbGVNM1UucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnBsYXlsaXN0LmZpbGVNM1UudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIFR1bmVyDQogICAgICAgICAgICBpZiAoU0VSVkVSWyJzZXR0aW5ncyJdWyJidWZmZXIiXSAhPSAiLSIpIHsNCiAgICAgICAgICAgICAgICB2YXIgdGV4dCA9IFtdOw0KICAgICAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBbXTsNCiAgICAgICAgICAgICAgICBmb3IgKHZhciBpID0gMTsgaSA8PSAxMDA7IGkrKykgew0KICAgICAgICAgICAgICAgICAgICB0ZXh0LnB1c2goaS50b1N0cmluZygpKTsNCiAgICAgICAgICAgICAgICAgICAgdmFsdWVzLnB1c2goaS50b1N0cmluZygpKTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgdmFyIGRiS2V5ID0gInR1bmVyIjsNCiAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCBkYXRhW2RiS2V5XSwgZGJLZXkpOw0KICAgICAgICAgICAgICAgIHNlbGVjdC5zZXRBdHRyaWJ1dGUoIm9uZm9jdXMiLCAiamF2YXNjcmlwdDogcmV0dXJuOyIpOw0KICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5wbGF5bGlzdC50dW5lci50aXRsZX19Iiwgc2VsZWN0KTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgICAgIHZhciBkYktleSA9ICJ0dW5lciI7DQogICAgICAgICAgICAgICAgaWYgKGRhdGFbZGJLZXldID09IHVuZGVmaW5lZCkgew0KICAgICAgICAgICAgICAgICAgICBkYXRhW2RiS2V5XSA9IDE7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicmVhZG9ubHkiLCAidHJ1ZSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LmNsYXNzTmFtZSA9ICJub3RBdmFpbGFibGUiOw0KICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5wbGF5bGlzdC50dW5lci50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgY29udGVudC5kZXNjcmlwdGlvbigie3sucGxheWxpc3QudHVuZXIuZGVzY3JpcHRpb259fSIpOw0KICAgICAgICAgICAgLy8gSW50ZXJhdGlvbg0KICAgICAgICAgICAgY29udGVudC5jcmVhdGVJbnRlcmFjdGlvbigpOw0KICAgICAgICAgICAgLy8gRGVsZXRlDQogICAgICAgICAgICBpZiAoZGF0YVsiaWQucHJvdmlkZXIiXSAhPSAiLSIpIHsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAiZGVsZXRlIiwgInt7LmJ1dHRvbi5kZWxldGV9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LmNsYXNzTmFtZSA9ICJkZWxldGUiOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBzYXZlUG9wdXBEYXRhKCJtM3UiLCAiJyArIGlkICsgJyIsIHRydWUsIDApJyk7DQogICAgICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAiYmFjayIsICJ7ey5idXR0b24uYmFja319Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgicGxheWxpc3QiKScpOw0KICAgICAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgLy8gQWJvcnQNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJjYW5jZWwiLCAie3suYnV0dG9uLmNhbmNlbH19Iik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogc2hvd0VsZW1lbnQoInBvcHVwIiwgZmFsc2UpOycpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICAvLyBVcGRhdGUNCiAgICAgICAgICAgIGlmIChkYXRhWyJpZC5wcm92aWRlciJdICE9ICItIikgew0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJ1cGRhdGUiLCAie3suYnV0dG9uLnVwZGF0ZX19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoIm0zdSIsICInICsgaWQgKyAnIiwgZmFsc2UsIDEpJyk7DQogICAgICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICAvLyBTYXZlDQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAic2F2ZSIsICJ7ey5idXR0b24uc2F2ZX19Iik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogc2F2ZVBvcHVwRGF0YSgibTN1IiwgIicgKyBpZCArICciLCBmYWxzZSwgMCknKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGNhc2UgImhkaHIiOg0KICAgICAgICAgICAgY29udGVudC5jcmVhdGVIZWFkbGluZShkYXRhVHlwZSk7DQogICAgICAgICAgICAvLyBOYW1lDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAibmFtZSI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3sucGxheWxpc3QubmFtZS5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sucGxheWxpc3QubmFtZS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgLy8gRGVzY3JpcHRpb24NCiAgICAgICAgICAgIHZhciBkYktleSA9ICJkZXNjcmlwdGlvbiI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3sucGxheWxpc3QuZGVzY3JpcHRpb24ucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnBsYXlsaXN0LmRlc2NyaXB0aW9uLnBsYWNlaG9sZGVyfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBVUkwNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJmaWxlLnNvdXJjZSI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3sucGxheWxpc3QuZmlsZUhESFIucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnBsYXlsaXN0LmZpbGVIREhSLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBUdW5lcg0KICAgICAgICAgICAgaWYgKFNFUlZFUlsic2V0dGluZ3MiXVsiYnVmZmVyIl0gIT0gIi0iKSB7DQogICAgICAgICAgICAgICAgdmFyIHRleHQgPSBbXTsNCiAgICAgICAgICAgICAgICB2YXIgdmFsdWVzID0gW107DQogICAgICAgICAgICAgICAgZm9yICh2YXIgaSA9IDE7IGkgPD0gMTAwOyBpKyspIHsNCiAgICAgICAgICAgICAgICAgICAgdGV4dC5wdXNoKGkudG9TdHJpbmcoKSk7DQogICAgICAgICAgICAgICAgICAgIHZhbHVlcy5wdXNoKGkudG9TdHJpbmcoKSk7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIHZhciBkYktleSA9ICJ0dW5lciI7DQogICAgICAgICAgICAgICAgdmFyIHNlbGVjdCA9IGNvbnRlbnQuY3JlYXRlU2VsZWN0KHRleHQsIHZhbHVlcywgZGF0YVtkYktleV0sIGRiS2V5KTsNCiAgICAgICAgICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJvbmZvY3VzIiwgImphdmFzY3JpcHQ6IHJldHVybjsiKTsNCiAgICAgICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sucGxheWxpc3QudHVuZXIudGl0bGV9fSIsIHNlbGVjdCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICB2YXIgZGJLZXkgPSAidHVuZXIiOw0KICAgICAgICAgICAgICAgIGlmIChkYXRhW2RiS2V5XSA9PSB1bmRlZmluZWQpIHsNCiAgICAgICAgICAgICAgICAgICAgZGF0YVtkYktleV0gPSAxOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInJlYWRvbmx5IiwgInRydWUiKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5jbGFzc05hbWUgPSAibm90QXZhaWxhYmxlIjsNCiAgICAgICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sucGxheWxpc3QudHVuZXIudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGNvbnRlbnQuZGVzY3JpcHRpb24oInt7LnBsYXlsaXN0LnR1bmVyLmRlc2NyaXB0aW9ufX0iKTsNCiAgICAgICAgICAgIC8vIEludGVyYWN0aW9uDQogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUludGVyYWN0aW9uKCk7DQogICAgICAgICAgICAvLyBEZWxldGUNCiAgICAgICAgICAgIGlmIChkYXRhWyJpZC5wcm92aWRlciJdICE9ICItIikgew0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJkZWxldGUiLCAie3suYnV0dG9uLmRlbGV0ZX19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoImhkaHIiLCAiJyArIGlkICsgJyIsIHRydWUsIDApJyk7DQogICAgICAgICAgICAgICAgaW5wdXQuY2xhc3NOYW1lID0gImRlbGV0ZSI7DQogICAgICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAiYmFjayIsICJ7ey5idXR0b24uYmFja319Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgicGxheWxpc3QiKScpOw0KICAgICAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgLy8gQWJvcnQNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJjYW5jZWwiLCAie3suYnV0dG9uLmNhbmNlbH19Iik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogc2hvd0VsZW1lbnQoInBvcHVwIiwgZmFsc2UpOycpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICAvLyBVcGRhdGUNCiAgICAgICAgICAgIGlmIChkYXRhWyJpZC5wcm92aWRlciJdICE9ICItIikgew0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJ1cGRhdGUiLCAie3suYnV0dG9uLnVwZGF0ZX19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoImhkaHIiLCAiJyArIGlkICsgJyIsIGZhbHNlLCAxKScpOw0KICAgICAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgLy8gU2F2ZQ0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgInNhdmUiLCAie3suYnV0dG9uLnNhdmV9fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoImhkaHIiLCAiJyArIGlkICsgJyIsIGZhbHNlLCAwKScpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSAiZmlsdGVyIjoNCiAgICAgICAgICAgIGNvbnRlbnQuY3JlYXRlSGVhZGxpbmUoZGF0YVR5cGUpOw0KICAgICAgICAgICAgLy8gVHlwZQ0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gInR5cGUiOw0KICAgICAgICAgICAgdmFyIHRleHQgPSBbIk0zVTogIiArICJ7ey5maWx0ZXIudHlwZS5ncm91cFRpdGxlfX0iLCAieFRlVmU6ICIgKyAie3suZmlsdGVyLnR5cGUuY3VzdG9tRmlsdGVyfX0iXTsNCiAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBbImphdmFzY3JpcHQ6IG9wZW5Qb3BVcCgnZ3JvdXAtdGl0bGUnKSIsICJqYXZhc2NyaXB0OiBvcGVuUG9wVXAoJ2N1c3RvbS1maWx0ZXInKSJdOw0KICAgICAgICAgICAgdmFyIHNlbGVjdCA9IGNvbnRlbnQuY3JlYXRlU2VsZWN0KHRleHQsIHZhbHVlcywgImphdmFzY3JpcHQ6IG9wZW5Qb3BVcCgnZ3JvdXAtdGl0bGUnKSIsIGRiS2V5KTsNCiAgICAgICAgICAgIHNlbGVjdC5zZXRBdHRyaWJ1dGUoImlkIiwgaWQpOw0KICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAnamF2YXNjcmlwdDogY2hhbmdlQnV0dG9uQWN0aW9uKHRoaXMsICJuZXh0IiwgIm9uY2xpY2siKTsnKTsgLy8gY2hhbmdlQnV0dG9uQWN0aW9uDQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3suZmlsdGVyLnR5cGUudGl0bGV9fSIsIHNlbGVjdCk7DQogICAgICAgICAgICAvLyBJbnRlcmFjdGlvbg0KICAgICAgICAgICAgY29udGVudC5jcmVhdGVJbnRlcmFjdGlvbigpOw0KICAgICAgICAgICAgLy8gQWJvcnQNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJjYW5jZWwiLCAie3suYnV0dG9uLmNhbmNlbH19Iik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogc2hvd0VsZW1lbnQoInBvcHVwIiwgZmFsc2UpOycpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICAvLyBOZXh0DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAibmV4dCIsICJ7ey5idXR0b24ubmV4dH19Iik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJncm91cC10aXRsZSIpJyk7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoImlkIiwgJ25leHQnKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGNhc2UgImN1c3RvbS1maWx0ZXIiOg0KICAgICAgICBjYXNlICJncm91cC10aXRsZSI6DQogICAgICAgICAgICBzd2l0Y2ggKGRhdGFUeXBlKSB7DQogICAgICAgICAgICAgICAgY2FzZSAiY3VzdG9tLWZpbHRlciI6DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuY3JlYXRlSGVhZGxpbmUoInt7LmZpbHRlci5jdXN0b219fSIgKyAiIEZpbHRlciIpOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBjYXNlICJncm91cC10aXRsZSI6DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuY3JlYXRlSGVhZGxpbmUoInt7LmZpbHRlci5ncm91cH19IiArICIgRmlsdGVyIik7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgLy8gTmFtZSAgICAgIA0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gIm5hbWUiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LmZpbHRlci5uYW1lLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5maWx0ZXIubmFtZS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgLy8gRGVzY3JpcHRpb24NCiAgICAgICAgICAgIHZhciBkYktleSA9ICJkZXNjcmlwdGlvbiI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3suZmlsdGVyLmRlc2NyaXB0aW9uLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5maWx0ZXIuZGVzY3JpcHRpb24udGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIFR5cGUNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJ0eXBlIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImhpZGRlbiIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygiIiwgaW5wdXQpOw0KICAgICAgICAgICAgdmFyIGZpbHRlclR5cGUgPSBkYXRhW2RiS2V5XTsNCiAgICAgICAgICAgIHN3aXRjaCAoZmlsdGVyVHlwZSkgew0KICAgICAgICAgICAgICAgIGNhc2UgImN1c3RvbS1maWx0ZXIiOg0KICAgICAgICAgICAgICAgICAgICAvLyBDYXNlIHNlbnNpdGl2ZQ0KICAgICAgICAgICAgICAgICAgICB2YXIgZGJLZXkgPSAiY2FzZVNlbnNpdGl2ZSI7DQogICAgICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goZGJLZXkpOw0KICAgICAgICAgICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YVtkYktleV07DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5maWx0ZXIuY2FzZVNlbnNpdGl2ZS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgICAgICAgICAvLyBGaWx0ZXIgUnVsZSAoQ3VzdG9tKQ0KICAgICAgICAgICAgICAgICAgICB2YXIgZGJLZXkgPSAiZmlsdGVyIjsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3suZmlsdGVyLmZpbHRlclJ1bGUucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3suZmlsdGVyLmZpbHRlclJ1bGUudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgICAgICAgICAgLy8gU3RhcnRpbmcgQ2hhbm5lbCBOdW1iZXIgTWFwcGluZw0KICAgICAgICAgICAgICAgICAgICB2YXIgZGJLZXkgPSAic3RhcnRpbmdDaGFubmVsIjsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3suZmlsdGVyLnN0YXJ0aW5nQ2hhbm5lbC5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5maWx0ZXIuc3RhcnRpbmdDaGFubmVsLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgImdyb3VwLXRpdGxlIjoNCiAgICAgICAgICAgICAgICAgICAgLy9hbGVydChkYktleSArICIgIiArIGZpbHRlclR5cGUpDQogICAgICAgICAgICAgICAgICAgIC8vIEZpbHRlciBiYXNlZCBvbiB0aGUgZ3JvdXBzIGluIHRoZSBNM1UNCiAgICAgICAgICAgICAgICAgICAgdmFyIGRiS2V5ID0gImZpbHRlciI7DQogICAgICAgICAgICAgICAgICAgIHZhciBncm91cHNNM1UgPSBnZXRMb2NhbERhdGEoIm0zdUdyb3VwcyIsICIiKTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHRleHQgPSBncm91cHNNM1VbInRleHQiXTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHZhbHVlcyA9IGdyb3Vwc00zVVsidmFsdWUiXTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHNlbGVjdCA9IGNvbnRlbnQuY3JlYXRlU2VsZWN0KHRleHQsIHZhbHVlcywgZGF0YVtkYktleV0sIGRiS2V5KTsNCiAgICAgICAgICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LmZpbHRlci5maWx0ZXJHcm91cC50aXRsZX19Iiwgc2VsZWN0KTsNCiAgICAgICAgICAgICAgICAgICAgY29udGVudC5kZXNjcmlwdGlvbigie3suZmlsdGVyLmZpbHRlckdyb3VwLmRlc2NyaXB0aW9ufX0iKTsNCiAgICAgICAgICAgICAgICAgICAgLy8gQ2FzZSBzZW5zZXRpdmUNCiAgICAgICAgICAgICAgICAgICAgdmFyIGRiS2V5ID0gImNhc2VTZW5zaXRpdmUiOw0KICAgICAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KGRiS2V5KTsNCiAgICAgICAgICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGFbZGJLZXldOw0KICAgICAgICAgICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3suZmlsdGVyLmNhc2VTZW5zaXRpdmUudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGRiS2V5ID0gImluY2x1ZGUiOw0KICAgICAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5maWx0ZXIuaW5jbHVkZS5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5maWx0ZXIuaW5jbHVkZS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgICAgICAgICBjb250ZW50LmRlc2NyaXB0aW9uKCJ7ey5maWx0ZXIuaW5jbHVkZS5kZXNjcmlwdGlvbn19Iik7DQogICAgICAgICAgICAgICAgICAgIHZhciBkYktleSA9ICJleGNsdWRlIjsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3suZmlsdGVyLmV4Y2x1ZGUucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3suZmlsdGVyLmV4Y2x1ZGUudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgICAgICAgICAgY29udGVudC5kZXNjcmlwdGlvbigie3suZmlsdGVyLmV4Y2x1ZGUuZGVzY3JpcHRpb259fSIpOw0KICAgICAgICAgICAgICAgICAgICAvLyBQcmVzZXJ2ZSBNM1UgUGxheWxpc3QgQ2hhbm5lbCBNYXBwaW5nDQogICAgICAgICAgICAgICAgICAgIHZhciBkYktleSA9ICJwcmVzZXJ2ZU1hcHBpbmciOw0KICAgICAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KGRiS2V5KTsNCiAgICAgICAgICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGFbZGJLZXldOw0KICAgICAgICAgICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3suZmlsdGVyLnByZXNlcnZlTWFwcGluZy50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgICAgICAgICAvLyBTdGFydGluZyBDaGFubmVsIE51bWJlciBNYXBwaW5nDQogICAgICAgICAgICAgICAgICAgIHZhciBkYktleSA9ICJzdGFydGluZ0NoYW5uZWwiOw0KICAgICAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5maWx0ZXIuc3RhcnRpbmdDaGFubmVsLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LmZpbHRlci5zdGFydGluZ0NoYW5uZWwudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgICAgICAgICAgLy8gRmlsbCBNaXNzaW5nIEVQRyBEYXRhDQogICAgICAgICAgICAgICAgICAgIC8vIFRoZSBmb2xsb3dpbmcgY29kZSBvbmx5IHdvcmtzIHdoZW4geFRlVmUgRHVtbXkgYWxyZWFkeSBleGlzdHMNCiAgICAgICAgICAgICAgICAgICAgLy8gdmFyIGRiS2V5OnN0cmluZyA9ICJkZWZhdWx0TWlzc2luZ0VQRyINCiAgICAgICAgICAgICAgICAgICAgLy8gdmFyIHhtbHR2OlhNTFRWRmlsZSA9IG5ldyBYTUxUVkZpbGUoKQ0KICAgICAgICAgICAgICAgICAgICAvLyB2YXIgc2VsZWN0ID0geG1sdHYuZ2V0UHJvZ3JhbXMoInhUZVZlIER1bW15IiwgZGF0YVtkYktleV0pDQogICAgICAgICAgICAgICAgICAgIC8vIHNlbGVjdC5zZXRBdHRyaWJ1dGUoIm5hbWUiLCBkYktleSkNCiAgICAgICAgICAgICAgICAgICAgLy8gc2VsZWN0LnNldEF0dHJpYnV0ZSgiaWQiLCAicG9wdXAtbWlzc2luZy1lcGciKQ0KICAgICAgICAgICAgICAgICAgICAvLyBUaGUgd29ya2Fyb3VuZCBpcyBjdXJyZW50bHkgdG8gaGFyZCBjb2RlIHRoZSB4VGVWZSBEdW1teSBkYXRhDQogICAgICAgICAgICAgICAgICAgIHZhciBkYktleSA9ICJkZWZhdWx0TWlzc2luZ0VQRyI7DQogICAgICAgICAgICAgICAgICAgIHZhciBsaXN0T3B0aW9ucyA9IHsgInRleHQiOiBbIi0iLCAiMzAgTWludXRlcyAoMzBfTWludXRlcykiLCAiNjAgTWludXRlcyAoNjBfTWludXRlcykiLCAiOTAgTWludXRlcyAoOTBfTWludXRlcykiLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICIxMjAgTWludXRlcyAoMTIwX01pbnV0ZXMpIiwgIjE4MCBNaW51dGVzICgzMF9NaW51dGVzKSIsICIyNDAgTWludXRlcyAoMzBfTWludXRlcykiLCAiMzYwIE1pbnV0ZXMgKDMwX01pbnV0ZXMpIl0sDQogICAgICAgICAgICAgICAgICAgICAgICAidmFsdWUiOiBbIi0iLCAiMzBfTWludXRlcyIsICI2MF9NaW51dGVzIiwgIjkwX01pbnV0ZXMiLCAiMTIwX01pbnV0ZXMiLCAiMTgwX01pbnV0ZXMiLCAiMjQwX01pbnV0ZXMiLCAiMzYwX01pbnV0ZXMiLF0gfTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHRleHQgPSBsaXN0T3B0aW9uc1sidGV4dCJdOw0KICAgICAgICAgICAgICAgICAgICB2YXIgdmFsdWVzID0gbGlzdE9wdGlvbnNbInZhbHVlIl07DQogICAgICAgICAgICAgICAgICAgIHZhciBzZWxlY3QgPSBjb250ZW50LmNyZWF0ZVNlbGVjdCh0ZXh0LCB2YWx1ZXMsIGRhdGFbZGJLZXldLCBkYktleSk7DQogICAgICAgICAgICAgICAgICAgIHNlbGVjdC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5maWx0ZXIuZGVmYXVsdE1pc3NpbmdFUEcudGl0bGV9fSIsIHNlbGVjdCk7DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuZGVzY3JpcHRpb24oInt7LmZpbHRlci5kZWZhdWx0TWlzc2luZ0VQRy5kZXNjcmlwdGlvbn19Iik7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgLy8gSW50ZXJhY3Rpb24NCiAgICAgICAgICAgIGNvbnRlbnQuY3JlYXRlSW50ZXJhY3Rpb24oKTsNCiAgICAgICAgICAgIC8vIERlbGV0ZQ0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImRlbGV0ZSIsICJ7ey5idXR0b24uZGVsZXRlfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBzYXZlUG9wdXBEYXRhKCJmaWx0ZXIiLCAiJyArIGlkICsgJyIsIHRydWUsIDApJyk7DQogICAgICAgICAgICBpbnB1dC5jbGFzc05hbWUgPSAiZGVsZXRlIjsNCiAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgLy8gQWJvcnQNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJjYW5jZWwiLCAie3suYnV0dG9uLmNhbmNlbH19Iik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogc2hvd0VsZW1lbnQoInBvcHVwIiwgZmFsc2UpOycpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICAvLyBTYXZlDQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAic2F2ZSIsICJ7ey5idXR0b24uc2F2ZX19Iik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogc2F2ZVBvcHVwRGF0YSgiZmlsdGVyIiwgIicgKyBpZCArICciLCBmYWxzZSwgMCknKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGNhc2UgInhtbHR2IjoNCiAgICAgICAgICAgIGNvbnRlbnQuY3JlYXRlSGVhZGxpbmUoZGF0YVR5cGUpOw0KICAgICAgICAgICAgLy8gTmFtZQ0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gIm5hbWUiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnhtbHR2Lm5hbWUucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnhtbHR2Lm5hbWUudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIERlc2NyaXB0aW9uDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAiZGVzY3JpcHRpb24iOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnhtbHR2LmRlc2NyaXB0aW9uLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey54bWx0di5kZXNjcmlwdGlvbi50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgLy8gVVJMDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAiZmlsZS5zb3VyY2UiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnhtbHR2LmZpbGVYTUxUVi5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sueG1sdHYuZmlsZVhNTFRWLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBJbnRlcmFjdGlvbg0KICAgICAgICAgICAgY29udGVudC5jcmVhdGVJbnRlcmFjdGlvbigpOw0KICAgICAgICAgICAgLy8gRGVsZXRlDQogICAgICAgICAgICBpZiAoZGF0YVsiaWQucHJvdmlkZXIiXSAhPSAiLSIpIHsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAiZGVsZXRlIiwgInt7LmJ1dHRvbi5kZWxldGV9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBzYXZlUG9wdXBEYXRhKCJ4bWx0diIsICInICsgaWQgKyAnIiwgdHJ1ZSwgMCknKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5jbGFzc05hbWUgPSAiZGVsZXRlIjsNCiAgICAgICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIC8vIEFib3J0DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAiY2FuY2VsIiwgInt7LmJ1dHRvbi5jYW5jZWx9fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IHNob3dFbGVtZW50KCJwb3B1cCIsIGZhbHNlKTsnKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgLy8gVXBkYXRlDQogICAgICAgICAgICBpZiAoZGF0YVsiaWQucHJvdmlkZXIiXSAhPSAiLSIpIHsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAidXBkYXRlIiwgInt7LmJ1dHRvbi51cGRhdGV9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBzYXZlUG9wdXBEYXRhKCJ4bWx0diIsICInICsgaWQgKyAnIiwgZmFsc2UsIDEpJyk7DQogICAgICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICAvLyBTYXZlDQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAic2F2ZSIsICJ7ey5idXR0b24uc2F2ZX19Iik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogc2F2ZVBvcHVwRGF0YSgieG1sdHYiLCAiJyArIGlkICsgJyIsIGZhbHNlLCAwKScpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSAidXNlcnMiOg0KICAgICAgICAgICAgY29udGVudC5jcmVhdGVIZWFkbGluZSgie3subWFpbk1lbnUuaXRlbS51c2Vyc319Iik7DQogICAgICAgICAgICAvLyBVc2VyIG5hbWUNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJ1c2VybmFtZSI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3sudXNlcnMudXNlcm5hbWUucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnVzZXJzLnVzZXJuYW1lLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBOZXcgUGFyc3N3b3JkDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAicGFzc3dvcmQiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgicGFzc3dvcmQiLCBkYktleSwgIiIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey51c2Vycy5wYXNzd29yZC5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sudXNlcnMucGFzc3dvcmQudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIENvbmZpcm1hdGlvbg0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gImNvbmZpcm0iOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgicGFzc3dvcmQiLCBkYktleSwgIiIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey51c2Vycy5jb25maXJtLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey51c2Vycy5jb25maXJtLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBBdXRoZW50aWNhdGlvbiBXRUINCiAgICAgICAgICAgIHZhciBkYktleSA9ICJhdXRoZW50aWNhdGlvbi53ZWIiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChkYktleSk7DQogICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YVtkYktleV07DQogICAgICAgICAgICBpZiAoZGF0YVsiZGVmYXVsdFVzZXIiXSA9PSB0cnVlKSB7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgImphdmFzY3JpcHQ6IHJldHVybiBmYWxzZSIpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnVzZXJzLndlYi50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgLy8gQXV0aGVudGljYXRpb24gUE1TDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAiYXV0aGVudGljYXRpb24ucG1zIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goZGJLZXkpOw0KICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGFbZGJLZXldOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnVzZXJzLnBtcy50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgLy8gQXV0aGVudGljYXRpb24gTTNVDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAiYXV0aGVudGljYXRpb24ubTN1IjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goZGJLZXkpOw0KICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGFbZGJLZXldOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnVzZXJzLm0zdS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgLy8gQXV0aGVudGljYXRpb24gWE1MDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAiYXV0aGVudGljYXRpb24ueG1sIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goZGJLZXkpOw0KICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGFbZGJLZXldOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnVzZXJzLnhtbC50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgLy8gQXV0aGVudGljYXRpb24gQVBJDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAiYXV0aGVudGljYXRpb24uYXBpIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goZGJLZXkpOw0KICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGFbZGJLZXldOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnVzZXJzLmFwaS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgLy8gSW50ZXJhY3Rpb24NCiAgICAgICAgICAgIGNvbnRlbnQuY3JlYXRlSW50ZXJhY3Rpb24oKTsNCiAgICAgICAgICAgIC8vIERlbGV0ZQ0KICAgICAgICAgICAgaWYgKGRhdGFbImRlZmF1bHRVc2VyIl0gIT0gdHJ1ZSAmJiBpZCAhPSAiLSIpIHsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAiZGVsZXRlIiwgInt7LmJ1dHRvbi5kZWxldGV9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LmNsYXNzTmFtZSA9ICJkZWxldGUiOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBzYXZlUG9wdXBEYXRhKCInICsgZGF0YVR5cGUgKyAnIiwgIicgKyBpZCArICciLCB0cnVlLCAwKScpOw0KICAgICAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgLy8gQWJvcnQNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJjYW5jZWwiLCAie3suYnV0dG9uLmNhbmNlbH19Iik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogc2hvd0VsZW1lbnQoInBvcHVwIiwgZmFsc2UpOycpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICAvLyBTYXZlDQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAic2F2ZSIsICJ7ey5idXR0b24uc2F2ZX19Iik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogc2F2ZVBvcHVwRGF0YSgiJyArIGRhdGFUeXBlICsgJyIsICInICsgaWQgKyAnIiwgImZhbHNlIik7Jyk7DQogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJtYXBwaW5nIjoNCiAgICAgICAgICAgIGNvbnRlbnQuY3JlYXRlSGVhZGxpbmUoInt7Lm1haW5NZW51Lml0ZW0ubWFwcGluZ319Iik7DQogICAgICAgICAgICAvLyBBY3RpdmUNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJ4LWFjdGl2ZSI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KGRiS2V5KTsNCiAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhW2RiS2V5XTsNCiAgICAgICAgICAgIGlucHV0LmlkID0gImFjdGl2ZSI7DQogICAgICAgICAgICAvL2lucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKQ0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0b2dnbGVDaGFubmVsU3RhdHVzKCciICsgaWQgKyAiJywgdGhpcykiKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5tYXBwaW5nLmFjdGl2ZS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgLy8gQ2hhbm5lbCBuYW1lDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAieC1uYW1lIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgaWYgKEJVTEtfRURJVCA9PSB0cnVlKSB7DQogICAgICAgICAgICAgICAgaW5wdXQuc3R5bGUuYm9yZGVyID0gInNvbGlkIDFweCByZWQiOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicmVhZG9ubHkiLCAidHJ1ZSIpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7Lm1hcHBpbmcuY2hhbm5lbE5hbWUudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIGNvbnRlbnQuZGVzY3JpcHRpb24oZGF0YVsibmFtZSJdKTsNCiAgICAgICAgICAgIC8vIERlc2NyaXB0aW9uDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAieC1kZXNjcmlwdGlvbiI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3subWFwcGluZy5kZXNjcmlwdGlvbi5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3subWFwcGluZy5kZXNjcmlwdGlvbi50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgLy8gVXBkYXRlIHRoZSBjaGFubmVsIG5hbWUNCiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCJfdXVpZC5rZXkiKSkgew0KICAgICAgICAgICAgICAgIGlmIChkYXRhWyJfdXVpZC5rZXkiXSAhPSAiIikgew0KICAgICAgICAgICAgICAgICAgICB2YXIgZGJLZXkgPSAieC11cGRhdGUtY2hhbm5lbC1uYW1lIjsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChkYktleSk7DQogICAgICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGFbZGJLZXldOw0KICAgICAgICAgICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3subWFwcGluZy51cGRhdGVDaGFubmVsTmFtZS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIC8vIExvZ28gVVJMIChDaGFubmVsKSANCiAgICAgICAgICAgIHZhciBkYktleSA9ICJ0dmctbG9nbyI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgiaWQiLCAiY2hhbm5lbC1pY29uIik7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3subWFwcGluZy5jaGFubmVsTG9nby50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgLy8gQ2hhbm5lbCBsb2dvIHVwZGF0ZQ0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gIngtdXBkYXRlLWNoYW5uZWwtaWNvbiI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KGRiS2V5KTsNCiAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhW2RiS2V5XTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgiaWQiLCAidXBkYXRlLWljb24iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCc7IGNoYW5nZUNoYW5uZWxMb2dvKCciICsgaWQgKyAiJyk7Iik7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3subWFwcGluZy51cGRhdGVDaGFubmVsTG9nby50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgLy8gRXhwYW5kIEVQRyBjYXRlZ29yeQ0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gIngtY2F0ZWdvcnkiOw0KICAgICAgICAgICAgdmFyIHRleHQgPSBbIi0iLCAiS2lkcyAoRW1ieSBvbmx5KSIsICJOZXdzIiwgIk1vdmllIiwgIlNlcmllcyIsICJTcG9ydHMiXTsNCiAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBbIiIsICJLaWRzIiwgIk5ld3MiLCAiTW92aWUiLCAiU2VyaWVzIiwgIlNwb3J0cyJdOw0KICAgICAgICAgICAgdmFyIHNlbGVjdCA9IGNvbnRlbnQuY3JlYXRlU2VsZWN0KHRleHQsIHZhbHVlcywgZGF0YVtkYktleV0sIGRiS2V5KTsNCiAgICAgICAgICAgIHNlbGVjdC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3subWFwcGluZy5lcGdDYXRlZ29yeS50aXRsZX19Iiwgc2VsZWN0KTsNCiAgICAgICAgICAgIC8vIE0zVSBncm91cCB0aXRsZQ0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gIngtZ3JvdXAtdGl0bGUiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICBpbnB1dC5kYXRhc2V0Lm9sZFZhbHVlID0gZGF0YVtkYktleV07DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3subWFwcGluZy5tM3VHcm91cFRpdGxlLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICBpZiAoZGF0YVsiZ3JvdXAtdGl0bGUiXSAhPSB1bmRlZmluZWQpIHsNCiAgICAgICAgICAgICAgICBjb250ZW50LmRlc2NyaXB0aW9uKGRhdGFbImdyb3VwLXRpdGxlIl0pOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgaWYgKGRhdGFbIngtdXBkYXRlLWNoYW5uZWwtZ3JvdXAiXSA9PSB0cnVlKSB7DQogICAgICAgICAgICAgICAgaW5wdXQuZGlzYWJsZWQgPSB0cnVlOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgLy8gVXBkYXRlIGNoYW5uZWwgZ3JvdXAgY2hlY2tib3gNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJ4LXVwZGF0ZS1jaGFubmVsLWdyb3VwIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goZGJLZXkpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0b2dnbGVHcm91cFVwZGF0ZUNiKCciICsgaWQgKyAiJywgdGhpcyk7Iik7DQogICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YVtkYktleV07DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3subWFwcGluZy51cGRhdGVDaGFubmVsR3JvdXAudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIGNvbnRlbnQuZGVzY3JpcHRpb24oInt7Lm1hcHBpbmcudXBkYXRlQ2hhbm5lbEdyb3VwLmRlc2NyaXB0aW9ufX0iKTsNCiAgICAgICAgICAgIC8vIFhNTFRWIGZpbGUNCiAgICAgICAgICAgIHZhciBkYktleSA9ICd4LXhtbHR2LWZpbGUnOw0KICAgICAgICAgICAgY29uc3QgeG1sVHZGaWxlID0gZGF0YVtkYktleV07DQogICAgICAgICAgICB2YXIgeG1sVHYgPSBuZXcgWE1MVFZGaWxlKCk7DQogICAgICAgICAgICBjb25zdCB4bWxUdkZpbGVTZWxlY3QgPSB4bWxUdi5nZXRGaWxlcyhkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICB4bWxUdkZpbGVTZWxlY3Quc2V0QXR0cmlidXRlKCduYW1lJywgZGJLZXkpOw0KICAgICAgICAgICAgeG1sVHZGaWxlU2VsZWN0LnNldEF0dHJpYnV0ZSgnaWQnLCAncG9wdXAteG1sdHYnKTsNCiAgICAgICAgICAgIHhtbFR2RmlsZVNlbGVjdC5zZXRBdHRyaWJ1dGUoJ29uY2hhbmdlJywgYGphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnOyBzZXRYbWx0dkNoYW5uZWwoJyR7aWR9JywgdGhpcyk7YCk7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygne3subWFwcGluZy54bWx0dkZpbGUudGl0bGV9fScsIHhtbFR2RmlsZVNlbGVjdCk7DQogICAgICAgICAgICAvLyBYTUxUViBNYXBwaW5nDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAneC1tYXBwaW5nJzsNCiAgICAgICAgICAgIHZhciB4bWxUdiA9IG5ldyBYTUxUVkZpbGUoKTsNCiAgICAgICAgICAgIGNvbnN0IGN1cnJlbnRYbWxUdklkID0gZGF0YVtkYktleV07DQogICAgICAgICAgICBjb25zdCBbeG1sVHZJZENvbnRhaW5lciwgeG1sVHZJZElucHV0LCB4bWxUdklkRGF0YWxpc3RdID0geG1sVHYubmV3WG1sVHZJZFBpY2tlcih4bWxUdkZpbGUsIGN1cnJlbnRYbWxUdklkKTsNCiAgICAgICAgICAgIHhtbFR2SWRDb250YWluZXIuc2V0QXR0cmlidXRlKCdpZCcsICd4bWx0di1pZC1waWNrZXItY29udGFpbmVyJyk7DQogICAgICAgICAgICB4bWxUdklkSW5wdXQuc2V0QXR0cmlidXRlKCdsaXN0JywgJ3htbHR2LWlkLXBpY2tlci1kYXRhbGlzdCcpOw0KICAgICAgICAgICAgeG1sVHZJZElucHV0LnNldEF0dHJpYnV0ZSgnbmFtZScsICd4LW1hcHBpbmcnKTsgLy8gU2hvdWxkIHN0YXkgeC1tYXBwaW5nIGFzIGl0IHdpbGwgYmUgdXNlZCBpbiBkb25lUG9wdXBEYXRhIHRvIG1ha2UgYSBzZXJ2ZXIgcmVxdWVzdA0KICAgICAgICAgICAgeG1sVHZJZElucHV0LnNldEF0dHJpYnV0ZSgnaWQnLCAneG1sdHYtaWQtcGlja2VyLWlucHV0Jyk7DQogICAgICAgICAgICB4bWxUdklkSW5wdXQuc2V0QXR0cmlidXRlKCdvbmNoYW5nZScsIGBqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJzsgY2hlY2tYbWx0dkNoYW5uZWwoJyR7aWR9JywgdGhpcy52YWx1ZSwgJyR7eG1sVHZGaWxlfScpO2ApOw0KICAgICAgICAgICAgeG1sVHZJZERhdGFsaXN0LnNldEF0dHJpYnV0ZSgnaWQnLCAneG1sdHYtaWQtcGlja2VyLWRhdGFsaXN0Jyk7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygne3subWFwcGluZy54bWx0dkNoYW5uZWwudGl0bGV9fScsIHhtbFR2SWRDb250YWluZXIpOw0KICAgICAgICAgICAgLy8gVGltZXNoaWZ0DQogICAgICAgICAgICB2YXIgZGJLZXkgPSAieC10aW1lc2hpZnQiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7Lm1hcHBpbmcudGltZXNoaWZ0LnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgiaWQiLCAidGltZXNoaWZ0Iik7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3subWFwcGluZy50aW1lc2hpZnQudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIEludGVyYWN0aW9uDQogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUludGVyYWN0aW9uKCk7DQogICAgICAgICAgICAvLyBVcGxvYWQgbG9nbw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImNhbmNlbCIsICJ7ey5idXR0b24udXBsb2FkTG9nb319Iik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogdXBsb2FkTG9nbygpOycpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICAvLyBBYm9ydA0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImNhbmNlbCIsICJ7ey5idXR0b24uY2FuY2VsfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBzaG93RWxlbWVudCgicG9wdXAiLCBmYWxzZSk7Jyk7DQogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIC8vIEZpbmlzaGVkDQogICAgICAgICAgICB2YXIgaWRzID0gW107DQogICAgICAgICAgICBpZHMgPSBnZXRBbGxTZWxlY3RlZENoYW5uZWxzKCk7DQogICAgICAgICAgICBpZiAoaWRzLmxlbmd0aCA9PSAwKSB7DQogICAgICAgICAgICAgICAgaWRzLnB1c2goaWQpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgInNhdmUiLCAie3suYnV0dG9uLmRvbmV9fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IGRvbmVQb3B1cERhdGEoIicgKyBkYXRhVHlwZSArICciLCAiJyArIGlkcyArICciLCAiZmFsc2UiKTsnKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICBicmVhazsNCiAgICB9DQogICAgc2hvd1BvcFVwRWxlbWVudCgncG9wdXAtY3VzdG9tJyk7DQp9DQpjbGFzcyBYTUxUVkZpbGUgew0KICAgIGdldEZpbGVzKHNldCkgew0KICAgICAgICBsZXQgZmlsZUlEcyA9IGdldE93bk9ialByb3BzKFNFUlZFUlsieGVwZyJdWyJ4bWx0dk1hcCJdKTsNCiAgICAgICAgbGV0IHZhbHVlcyA9IG5ldyBBcnJheSgiLSIpOw0KICAgICAgICBsZXQgdGV4dCA9IG5ldyBBcnJheSgiLSIpOw0KICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGZpbGVJRHMubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgICAgIGlmIChmaWxlSURzW2ldICE9ICJ4VGVWZSBEdW1teSIpIHsNCiAgICAgICAgICAgICAgICB2YWx1ZXMucHVzaChnZXRWYWx1ZUZyb21Qcm92aWRlckZpbGUoZmlsZUlEc1tpXSwgInhtbHR2IiwgImZpbGUueHRldmUiKSk7DQogICAgICAgICAgICAgICAgdGV4dC5wdXNoKGdldFZhbHVlRnJvbVByb3ZpZGVyRmlsZShmaWxlSURzW2ldLCAieG1sdHYiLCAibmFtZSIpKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgICAgIHZhbHVlcy5wdXNoKGZpbGVJRHNbaV0pOw0KICAgICAgICAgICAgICAgIHRleHQucHVzaChmaWxlSURzW2ldKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KICAgICAgICBsZXQgc2VsZWN0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiU0VMRUNUIik7DQogICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGV4dC5sZW5ndGg7IGkrKykgew0KICAgICAgICAgICAgdmFyIG9wdGlvbiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIk9QVElPTiIpOw0KICAgICAgICAgICAgb3B0aW9uLnNldEF0dHJpYnV0ZSgidmFsdWUiLCB2YWx1ZXNbaV0pOw0KICAgICAgICAgICAgb3B0aW9uLmlubmVyVGV4dCA9IHRleHRbaV07DQogICAgICAgICAgICBzZWxlY3QuYXBwZW5kQ2hpbGQob3B0aW9uKTsNCiAgICAgICAgfQ0KICAgICAgICBpZiAoc2V0ICE9ICIiKSB7DQogICAgICAgICAgICBzZWxlY3QudmFsdWUgPSBzZXQ7DQogICAgICAgIH0NCiAgICAgICAgcmV0dXJuIHNlbGVjdDsNCiAgICB9DQogICAgLyoqDQogICAgICogQHBhcmFtIHhtbFR2RmlsZSBYTUwgZmlsZSBwYXRoIHRvIGdldCBFUEcgZnJvbS4NCiAgICAgKiBAcGFyYW0gY3VycmVudFhtbFR2SWQgQ3VycmVudCBYTUxUViBJRCB0byBzZXQgaW5pdGlhbCBpbnB1dCB2YWx1ZSB0by4NCiAgICAgKiBAcmV0dXJucyBBcnJheSBvZiwgc2VxdWVudGlhbGx5Og0KICAgICAqIDEpIENvbnRhaW5lciBvZiB0aGUgcGlja2VyLg0KICAgICAqIDIpIElucHV0IGZpZWxkIHRvIHR5cGUgYXQgYW5kIGdldCBjaG9pY2UgZnJvbS4NCiAgICAgKiAzKSBEYXRhbGlzdCBjb250YWluaW5nIGV2ZXJ5IG9wdGlvbi4NCiAgICAgKi8NCiAgICBuZXdYbWxUdklkUGlja2VyKHhtbFR2RmlsZSwgY3VycmVudFhtbFR2SWQpIHsNCiAgICAgICAgY29uc3QgY29udGFpbmVyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7DQogICAgICAgIGNvbnN0IGlucHV0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnaW5wdXQnKTsNCiAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCd0eXBlJywgJ3RleHQnKTsNCiAgICAgICAgLy8gSW5pdGlhbGx5LCBzZXQgdmFsdWUgdG8gJy0nIGlmIGlucHV0IGlzIGVtcHR5DQogICAgICAgIGlucHV0LnZhbHVlID0gKGN1cnJlbnRYbWxUdklkKSA/IGN1cnJlbnRYbWxUdklkIDogJy0nOw0KICAgICAgICAvLyBXaGVuIGlucHV0IGlzIGZvY3VzZWQsIHJlbW92ZSAnLScgZnJvbSBpdA0KICAgICAgICBpbnB1dC5hZGRFdmVudExpc3RlbmVyKCdmb2N1cycsIChldnQpID0+IHsNCiAgICAgICAgICAgIGNvbnN0IHRhcmdldCA9IGV2dC50YXJnZXQ7DQogICAgICAgICAgICB0YXJnZXQudmFsdWUgPSAodGFyZ2V0LnZhbHVlID09PSAnLScpID8gJycgOiB0YXJnZXQudmFsdWU7DQogICAgICAgIH0pOw0KICAgICAgICAvLyBXaGVuIGlucHV0IGxvc2UgZm9jdXMgb3IgdGFrZSBhIHZhbHVlLCBpZiBpdCdzIGVtcHR5LCBzZXQgdmFsdWUgdG8gJy0nDQogICAgICAgIGlucHV0LmFkZEV2ZW50TGlzdGVuZXIoJ2JsdXInLCBzZXRGYWxsYmFja1ZhbHVlKTsNCiAgICAgICAgaW5wdXQuYWRkRXZlbnRMaXN0ZW5lcignY2hhbmdlJywgc2V0RmFsbGJhY2tWYWx1ZSk7DQogICAgICAgIGZ1bmN0aW9uIHNldEZhbGxiYWNrVmFsdWUoZXZ0KSB7DQogICAgICAgICAgICBjb25zdCB0YXJnZXQgPSBldnQudGFyZ2V0Ow0KICAgICAgICAgICAgdGFyZ2V0LnZhbHVlID0gKHRhcmdldC52YWx1ZSkgPyB0YXJnZXQudmFsdWUgOiAnLSc7DQogICAgICAgIH0NCiAgICAgICAgY29udGFpbmVyLmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgY29uc3QgZGF0YWxpc3QgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkYXRhbGlzdCcpOw0KICAgICAgICBjb25zdCBvcHRpb24gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdvcHRpb24nKTsNCiAgICAgICAgb3B0aW9uLnNldEF0dHJpYnV0ZSgndmFsdWUnLCAnLScpOw0KICAgICAgICBvcHRpb24uaW5uZXJUZXh0ID0gJy0nOw0KICAgICAgICBkYXRhbGlzdC5hcHBlbmRDaGlsZChvcHRpb24pOw0KICAgICAgICBjb25zdCBlcGcgPSBTRVJWRVJbJ3hlcGcnXVsneG1sdHZNYXAnXVt4bWxUdkZpbGVdOw0KICAgICAgICBpZiAoZXBnKSB7DQogICAgICAgICAgICBjb25zdCBwcm9ncmFtSWRzID0gZ2V0T3duT2JqUHJvcHMoZXBnKTsNCiAgICAgICAgICAgIHByb2dyYW1JZHMuZm9yRWFjaCgocHJvZ3JhbUlkKSA9PiB7DQogICAgICAgICAgICAgICAgY29uc3QgcHJvZ3JhbSA9IGVwZ1twcm9ncmFtSWRdOw0KICAgICAgICAgICAgICAgIGlmIChwcm9ncmFtLmhhc093blByb3BlcnR5KCdkaXNwbGF5LW5hbWVzJykpIHsNCiAgICAgICAgICAgICAgICAgICAgcHJvZ3JhbVsnZGlzcGxheS1uYW1lcyddLmZvckVhY2goKGRpc3BsYXlOYW1lKSA9PiB7DQogICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBvcHRpb24gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdvcHRpb24nKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIG9wdGlvbi5zZXRBdHRyaWJ1dGUoJ3ZhbHVlJywgcHJvZ3JhbUlkKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIG9wdGlvbi5pbm5lclRleHQgPSBkaXNwbGF5TmFtZVsnVmFsdWUnXTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGRhdGFsaXN0LmFwcGVuZENoaWxkKG9wdGlvbik7DQogICAgICAgICAgICAgICAgICAgIH0pOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICAgICAgY29uc3Qgb3B0aW9uID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnb3B0aW9uJyk7DQogICAgICAgICAgICAgICAgICAgIG9wdGlvbi5zZXRBdHRyaWJ1dGUoJ3ZhbHVlJywgcHJvZ3JhbUlkKTsNCiAgICAgICAgICAgICAgICAgICAgb3B0aW9uLmlubmVyVGV4dCA9ICctJzsNCiAgICAgICAgICAgICAgICAgICAgZGF0YWxpc3QuYXBwZW5kQ2hpbGQob3B0aW9uKTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9KTsNCiAgICAgICAgfQ0KICAgICAgICBjb250YWluZXIuYXBwZW5kQ2hpbGQoZGF0YWxpc3QpOw0KICAgICAgICByZXR1cm4gW2NvbnRhaW5lciwgaW5wdXQsIGRhdGFsaXN0XTsNCiAgICB9DQp9DQpmdW5jdGlvbiBnZXRWYWx1ZUZyb21Qcm92aWRlckZpbGUoZmlsZSwgZmlsZVR5cGUsIGtleSkgew0KICAgIGlmIChmaWxlID09ICJ4VGVWZSBEdW1teSIpIHsNCiAgICAgICAgcmV0dXJuIGZpbGU7DQogICAgfQ0KICAgIGxldCBmaWxlSUQ7DQogICAgbGV0IGluZGljYXRvciA9IGZpbGUuY2hhckF0KDApOw0KICAgIHN3aXRjaCAoaW5kaWNhdG9yKSB7DQogICAgICAgIGNhc2UgIk0iOg0KICAgICAgICAgICAgZmlsZVR5cGUgPSAibTN1IjsNCiAgICAgICAgICAgIGZpbGVJRCA9IGZpbGU7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSAiSCI6DQogICAgICAgICAgICBmaWxlVHlwZSA9ICJoZGhyIjsNCiAgICAgICAgICAgIGZpbGVJRCA9IGZpbGU7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSAiWCI6DQogICAgICAgICAgICBmaWxlVHlwZSA9ICJ4bWx0diI7DQogICAgICAgICAgICBmaWxlSUQgPSBmaWxlLnN1YnN0cmluZygwLCBmaWxlLmxhc3RJbmRleE9mKCcuJykpOw0KICAgICAgICAgICAgYnJlYWs7DQogICAgfQ0KICAgIGlmIChTRVJWRVJbInNldHRpbmdzIl1bImZpbGVzIl1bZmlsZVR5cGVdLmhhc093blByb3BlcnR5KGZpbGVJRCkgPT0gdHJ1ZSkgew0KICAgICAgICB2YXIgZGF0YSA9IFNFUlZFUlsic2V0dGluZ3MiXVsiZmlsZXMiXVtmaWxlVHlwZV1bZmlsZUlEXTsNCiAgICAgICAgcmV0dXJuIGRhdGFba2V5XTsNCiAgICB9DQogICAgcmV0dXJuOw0KfQ0KZnVuY3Rpb24gc2V0WG1sdHZDaGFubmVsKGVwZ01hcElkLCB4bWxUdkZpbGVTZWxlY3QpIHsNCiAgICBjb25zdCB4bWxUdiA9IG5ldyBYTUxUVkZpbGUoKTsNCiAgICBjb25zdCBuZXdYbWxUdkZpbGUgPSB4bWxUdkZpbGVTZWxlY3QudmFsdWU7DQogICAgLy8gUmVtb3ZlIG9sZCBYTUxUViBJRCBzZWxlY3Rpb24gYm94DQogICAgY29uc3QgeG1sVHZJZFBpY2tlclBhcmVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd4bWx0di1pZC1waWNrZXItY29udGFpbmVyJykucGFyZW50RWxlbWVudDsNCiAgICB4bWxUdklkUGlja2VyUGFyZW50LmlubmVySFRNTCA9ICcnOw0KICAgIC8vIENyZWF0ZSBuZXcgWE1MVFYgSUQgc2VsZWN0aW9uIGJveA0KICAgIGNvbnN0IHR2Z0lkID0gU0VSVkVSWyd4ZXBnJ11bJ2VwZ01hcHBpbmcnXVtlcGdNYXBJZF1bJ3R2Zy1pZCddOw0KICAgIGNvbnN0IFt4bWxUdklkQ29udGFpbmVyLCB4bWxUdklkSW5wdXQsIHhtbFR2SWREYXRhbGlzdF0gPSB4bWxUdi5uZXdYbWxUdklkUGlja2VyKG5ld1htbFR2RmlsZSwgdHZnSWQpOw0KICAgIHhtbFR2SWRDb250YWluZXIuc2V0QXR0cmlidXRlKCdpZCcsICd4bWx0di1pZC1waWNrZXItY29udGFpbmVyJyk7DQogICAgeG1sVHZJZElucHV0LnNldEF0dHJpYnV0ZSgnbGlzdCcsICd4bWx0di1pZC1waWNrZXItZGF0YWxpc3QnKTsNCiAgICB4bWxUdklkSW5wdXQuc2V0QXR0cmlidXRlKCduYW1lJywgJ3gtbWFwcGluZycpOyAvLyBTaG91bGQgc3RheSB4LW1hcHBpbmcgYXMgaXQgd2lsbCBiZSB1c2VkIGluIGRvbmVQb3B1cERhdGEgdG8gbWFrZSBhIHNlcnZlciByZXF1ZXN0DQogICAgeG1sVHZJZElucHV0LnNldEF0dHJpYnV0ZSgnaWQnLCAneG1sdHYtaWQtcGlja2VyLWlucHV0Jyk7DQogICAgeG1sVHZJZElucHV0LnNldEF0dHJpYnV0ZSgnb25jaGFuZ2UnLCBgamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCc7IGNoZWNrWG1sdHZDaGFubmVsKCcke2VwZ01hcElkfScsIHRoaXMudmFsdWUsICcke25ld1htbFR2RmlsZX0nKTtgKTsNCiAgICB4bWxUdklkSW5wdXQuY2xhc3NMaXN0LmFkZCgnY2hhbmdlZCcpOw0KICAgIHhtbFR2SWREYXRhbGlzdC5zZXRBdHRyaWJ1dGUoJ2lkJywgJ3htbHR2LWlkLXBpY2tlci1kYXRhbGlzdCcpOw0KICAgIC8vIEFkZCBuZXcgWE1MVFYgSUQgc2VsZWN0aW9uIGJveCB0byBpdCdzIHBhcmVudA0KICAgIHhtbFR2SWRQaWNrZXJQYXJlbnQuYXBwZW5kQ2hpbGQoeG1sVHZJZENvbnRhaW5lcik7DQogICAgY2hlY2tYbWx0dkNoYW5uZWwoZXBnTWFwSWQsIHhtbFR2SWRJbnB1dC52YWx1ZSwgbmV3WG1sVHZGaWxlKTsNCn0NCmZ1bmN0aW9uIGNoZWNrWG1sdHZDaGFubmVsKGVwZ01hcElkLCBuZXdYbWxUdklkLCB4bWxUdkZpbGUpIHsNCiAgICBjb25zdCBjaGFubmVsQWN0aXZlQ2IgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYWN0aXZlJyk7DQogICAgY29uc3QgY2hhbm5lbEFjdGl2ZSA9IG5ld1htbFR2SWQgIT0gJy0nOw0KICAgIGNoYW5uZWxBY3RpdmVDYi5jaGVja2VkID0gY2hhbm5lbEFjdGl2ZTsNCiAgICBjaGFubmVsQWN0aXZlQ2IuY2xhc3NOYW1lID0gJ2NoYW5nZWQnOw0KICAgIGlmICh4bWxUdkZpbGUgIT0gJ3hUZVZlIER1bW15JyAmJiBjaGFubmVsQWN0aXZlID09IHRydWUpIHsNCiAgICAgICAgY2hhbmdlQ2hhbm5lbExvZ28oZXBnTWFwSWQpOw0KICAgICAgICByZXR1cm47DQogICAgfQ0KICAgIGlmICh4bWxUdkZpbGUgPT0gJ3hUZVZlIER1bW15Jykgew0KICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndXBkYXRlLWljb24nKS5jaGVja2VkID0gZmFsc2U7DQogICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd1cGRhdGUtaWNvbicpLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJzsNCiAgICB9DQp9DQpmdW5jdGlvbiBjaGFuZ2VDaGFubmVsTG9nbyhlcGdNYXBJZCkgew0KICAgIGNvbnN0IGNoYW5uZWwgPSBTRVJWRVJbJ3hlcGcnXVsnZXBnTWFwcGluZyddW2VwZ01hcElkXTsNCiAgICBjb25zdCB4bWxUdkZpbGVTZWxlY3QgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncG9wdXAteG1sdHYnKTsNCiAgICBjb25zdCB4bWxUdkZpbGUgPSB4bWxUdkZpbGVTZWxlY3Qub3B0aW9uc1t4bWxUdkZpbGVTZWxlY3Quc2VsZWN0ZWRJbmRleF0udmFsdWU7DQogICAgY29uc3QgeG1sVHZJZElucHV0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3htbHR2LWlkLXBpY2tlci1pbnB1dCcpOw0KICAgIGNvbnN0IG5ld1htbFR2SWQgPSB4bWxUdklkSW5wdXQudmFsdWU7DQogICAgY29uc3QgdXBkYXRlTG9nbyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd1cGRhdGUtaWNvbicpLmNoZWNrZWQ7DQogICAgbGV0IGxvZ287DQogICAgaWYgKHVwZGF0ZUxvZ28gPT0gdHJ1ZSAmJiB4bWxUdkZpbGUgIT0gJ3hUZVZlIER1bW15Jykgew0KICAgICAgICBpZiAoU0VSVkVSWyd4ZXBnJ11bJ3htbHR2TWFwJ11beG1sVHZGaWxlXS5oYXNPd25Qcm9wZXJ0eShuZXdYbWxUdklkKSkgew0KICAgICAgICAgICAgbG9nbyA9IFNFUlZFUlsneGVwZyddWyd4bWx0dk1hcCddW3htbFR2RmlsZV1bbmV3WG1sVHZJZF1bJ2ljb24nXTsNCiAgICAgICAgfQ0KICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgIGxvZ28gPSBjaGFubmVsWyd0dmctbG9nbyddOw0KICAgICAgICB9DQogICAgICAgIHZhciBsb2dvSW5wdXQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY2hhbm5lbC1pY29uJyk7DQogICAgICAgIGxvZ29JbnB1dC52YWx1ZSA9IGxvZ287DQogICAgICAgIGlmIChCVUxLX0VESVQgPT0gZmFsc2UpIHsNCiAgICAgICAgICAgIGxvZ29JbnB1dC5jbGFzc05hbWUgPSAnY2hhbmdlZCc7DQogICAgICAgIH0NCiAgICB9DQp9DQpmdW5jdGlvbiBzYXZlUG9wdXBEYXRhKGRhdGFUeXBlLCBpZCwgcmVtb3ZlLCBvcHRpb24pIHsNCiAgICBpZiAoZGF0YVR5cGUgPT0gIm1hcHBpbmciKSB7DQogICAgICAgIGxldCBkYXRhID0ge307DQogICAgICAgIGxldCBjbWQgPSAic2F2ZUVwZ01hcHBpbmciOw0KICAgICAgICBkYXRhWyJlcGdNYXBwaW5nIl0gPSBTRVJWRVJbInhlcGciXVsiZXBnTWFwcGluZyJdOw0KICAgICAgICBsZXQgc2VydmVyID0gbmV3IFNlcnZlcihjbWQpOw0KICAgICAgICBzZXJ2ZXIucmVxdWVzdChkYXRhKTsNCiAgICAgICAgZGVsZXRlIFVORE9bImVwZ01hcHBpbmciXTsNCiAgICAgICAgcmV0dXJuOw0KICAgIH0NCiAgICBsZXQgZGl2ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInBvcHVwLWN1c3RvbSIpOw0KICAgIGxldCBpbnB1dHMgPSBkaXYuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlRBQkxFIilbMF0uZ2V0RWxlbWVudHNCeVRhZ05hbWUoIklOUFVUIik7DQogICAgbGV0IHNlbGVjdHMgPSBkaXYuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlRBQkxFIilbMF0uZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlNFTEVDVCIpOw0KICAgIGxldCBpbnB1dCA9IHt9Ow0KICAgIGxldCBjb25maXJtTXNnOw0KICAgIGZvciAobGV0IGkgPSAwOyBpIDwgc2VsZWN0cy5sZW5ndGg7IGkrKykgew0KICAgICAgICB2YXIgbmFtZTsNCiAgICAgICAgbmFtZSA9IHNlbGVjdHNbaV0ubmFtZTsNCiAgICAgICAgdmFyIHZhbHVlID0gc2VsZWN0c1tpXS52YWx1ZTsNCiAgICAgICAgc3dpdGNoIChuYW1lKSB7DQogICAgICAgICAgICBjYXNlICJ0dW5lciI6DQogICAgICAgICAgICAgICAgaW5wdXRbbmFtZV0gPSBwYXJzZUludCh2YWx1ZSk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBkZWZhdWx0Og0KICAgICAgICAgICAgICAgIGlucHV0W25hbWVdID0gdmFsdWU7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIH0NCiAgICB9DQogICAgZm9yIChsZXQgaSA9IDA7IGkgPCBpbnB1dHMubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgc3dpdGNoIChpbnB1dHNbaV0udHlwZSkgew0KICAgICAgICAgICAgY2FzZSAiY2hlY2tib3giOg0KICAgICAgICAgICAgICAgIG5hbWUgPSBpbnB1dHNbaV0ubmFtZTsNCiAgICAgICAgICAgICAgICBpbnB1dFtuYW1lXSA9IGlucHV0c1tpXS5jaGVja2VkOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAidGV4dCI6DQogICAgICAgICAgICBjYXNlICJoaWRkZW4iOg0KICAgICAgICAgICAgY2FzZSAicGFzc3dvcmQiOg0KICAgICAgICAgICAgICAgIG5hbWUgPSBpbnB1dHNbaV0ubmFtZTsNCiAgICAgICAgICAgICAgICBzd2l0Y2ggKG5hbWUpIHsNCiAgICAgICAgICAgICAgICAgICAgY2FzZSAidHVuZXIiOg0KICAgICAgICAgICAgICAgICAgICAgICAgaW5wdXRbbmFtZV0gPSBwYXJzZUludChpbnB1dHNbaV0udmFsdWUpOw0KICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICAgICAgICAgICAgICBpbnB1dFtuYW1lXSA9IGlucHV0c1tpXS52YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgfQ0KICAgIH0NCiAgICBsZXQgZGF0YSA9IHt9Ow0KICAgIGxldCBjbWQ7DQogICAgaWYgKHJlbW92ZSA9PSB0cnVlKSB7DQogICAgICAgIGlucHV0WyJkZWxldGUiXSA9IHRydWU7DQogICAgfQ0KICAgIHN3aXRjaCAoZGF0YVR5cGUpIHsNCiAgICAgICAgY2FzZSAidXNlcnMiOg0KICAgICAgICAgICAgY29uZmlybU1zZyA9ICJEZWxldGUgdGhpcyB1c2VyPyI7DQogICAgICAgICAgICBpZiAoaWQgPT0gIi0iKSB7DQogICAgICAgICAgICAgICAgY21kID0gInNhdmVOZXdVc2VyIjsNCiAgICAgICAgICAgICAgICBkYXRhWyJ1c2VyRGF0YSJdID0gaW5wdXQ7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICBjbWQgPSAic2F2ZVVzZXJEYXRhIjsNCiAgICAgICAgICAgICAgICBsZXQgZCA9IHt9Ow0KICAgICAgICAgICAgICAgIGRbaWRdID0gaW5wdXQ7DQogICAgICAgICAgICAgICAgZGF0YVsidXNlckRhdGEiXSA9IGQ7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSAibTN1IjoNCiAgICAgICAgICAgIGNvbmZpcm1Nc2cgPSAiRGVsZXRlIHRoaXMgcGxheWxpc3Q/IjsNCiAgICAgICAgICAgIHN3aXRjaCAob3B0aW9uKSB7DQogICAgICAgICAgICAgICAgLy8gUG9wdXA6IFNhdmUNCiAgICAgICAgICAgICAgICBjYXNlIDA6DQogICAgICAgICAgICAgICAgICAgIGNtZCA9ICJzYXZlRmlsZXNNM1UiOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICAvLyBQb3B1cDogVXBkYXRlDQogICAgICAgICAgICAgICAgY2FzZSAxOg0KICAgICAgICAgICAgICAgICAgICBjbWQgPSAidXBkYXRlRmlsZU0zVSI7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgZGF0YVsiZmlsZXMiXSA9IHt9Ow0KICAgICAgICAgICAgZGF0YVsiZmlsZXMiXVtkYXRhVHlwZV0gPSB7fTsNCiAgICAgICAgICAgIGRhdGFbImZpbGVzIl1bZGF0YVR5cGVdW2lkXSA9IGlucHV0Ow0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGNhc2UgImhkaHIiOg0KICAgICAgICAgICAgY29uZmlybU1zZyA9ICJEZWxldGUgdGhpcyBIREhvbWVSdW4gdHVuZXI/IjsNCiAgICAgICAgICAgIHN3aXRjaCAob3B0aW9uKSB7DQogICAgICAgICAgICAgICAgLy8gUG9wdXA6IFNhdmUNCiAgICAgICAgICAgICAgICBjYXNlIDA6DQogICAgICAgICAgICAgICAgICAgIGNtZCA9ICJzYXZlRmlsZXNIREhSIjsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgLy8gUG9wdXA6IFVwZGF0ZQ0KICAgICAgICAgICAgICAgIGNhc2UgMToNCiAgICAgICAgICAgICAgICAgICAgY21kID0gInVwZGF0ZUZpbGVIREhSIjsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBkYXRhWyJmaWxlcyJdID0ge307DQogICAgICAgICAgICBkYXRhWyJmaWxlcyJdW2RhdGFUeXBlXSA9IHt9Ow0KICAgICAgICAgICAgZGF0YVsiZmlsZXMiXVtkYXRhVHlwZV1baWRdID0gaW5wdXQ7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSAieG1sdHYiOg0KICAgICAgICAgICAgY29uZmlybU1zZyA9ICJEZWxldGUgdGhpcyBYTUxUViBmaWxlPyI7DQogICAgICAgICAgICBzd2l0Y2ggKG9wdGlvbikgew0KICAgICAgICAgICAgICAgIC8vIFBvcHVwOiBTYXZlDQogICAgICAgICAgICAgICAgY2FzZSAwOg0KICAgICAgICAgICAgICAgICAgICBjbWQgPSAic2F2ZUZpbGVzWE1MVFYiOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICAvLyBQb3B1cDogVXBkYXRlDQogICAgICAgICAgICAgICAgY2FzZSAxOg0KICAgICAgICAgICAgICAgICAgICBjbWQgPSAidXBkYXRlRmlsZVhNTFRWIjsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBkYXRhWyJmaWxlcyJdID0ge307DQogICAgICAgICAgICBkYXRhWyJmaWxlcyJdW2RhdGFUeXBlXSA9IHt9Ow0KICAgICAgICAgICAgZGF0YVsiZmlsZXMiXVtkYXRhVHlwZV1baWRdID0gaW5wdXQ7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSAiZmlsdGVyIjoNCiAgICAgICAgICAgIGNvbmZpcm1Nc2cgPSAiRGVsZXRlIHRoaXMgZmlsdGVyPyI7DQogICAgICAgICAgICBjbWQgPSAic2F2ZUZpbHRlciI7DQogICAgICAgICAgICBkYXRhWyJmaWx0ZXIiXSA9IHt9Ow0KICAgICAgICAgICAgZGF0YVsiZmlsdGVyIl1baWRdID0gaW5wdXQ7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgIHJldHVybjsNCiAgICB9DQogICAgaWYgKHJlbW92ZSA9PSB0cnVlKSB7DQogICAgICAgIGlmICghY29uZmlybShjb25maXJtTXNnKSkgew0KICAgICAgICAgICAgc2hvd0VsZW1lbnQoInBvcHVwIiwgZmFsc2UpOw0KICAgICAgICAgICAgcmV0dXJuOw0KICAgICAgICB9DQogICAgfQ0KICAgIGxldCBzZXJ2ZXIgPSBuZXcgU2VydmVyKGNtZCk7DQogICAgc2VydmVyLnJlcXVlc3QoZGF0YSk7DQp9DQpmdW5jdGlvbiBkb25lUG9wdXBEYXRhKGRhdGFUeXBlLCBpZHNTdHIpIHsNCiAgICBsZXQgaWRzID0gaWRzU3RyLnNwbGl0KCcsJyk7DQogICAgbGV0IGRpdiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJwb3B1cC1jdXN0b20iKTsNCiAgICBsZXQgaW5wdXRzID0gZGl2LmdldEVsZW1lbnRzQnlDbGFzc05hbWUoImNoYW5nZWQiKTsNCiAgICBpZHMuZm9yRWFjaChpZCA9PiB7DQogICAgICAgIGxldCBpbnB1dDsNCiAgICAgICAgaW5wdXQgPSBTRVJWRVJbInhlcGciXVsiZXBnTWFwcGluZyJdW2lkXTsNCiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBpbnB1dHMubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgICAgIGxldCBuYW1lOw0KICAgICAgICAgICAgbGV0IHZhbHVlOw0KICAgICAgICAgICAgc3dpdGNoIChpbnB1dHNbaV0udGFnTmFtZSkgew0KICAgICAgICAgICAgICAgIGNhc2UgIklOUFVUIjoNCiAgICAgICAgICAgICAgICAgICAgc3dpdGNoIChpbnB1dHNbaV0udHlwZSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAiY2hlY2tib3giOg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWUgPSBpbnB1dHNbaV0ubmFtZTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IGlucHV0c1tpXS5jaGVja2VkOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlucHV0W25hbWVdID0gdmFsdWU7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgICAgICAgICBjYXNlICJ0ZXh0IjoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lID0gaW5wdXRzW2ldLm5hbWU7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSBpbnB1dHNbaV0udmFsdWU7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5wdXRbbmFtZV0gPSB2YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBjYXNlICJTRUxFQ1QiOg0KICAgICAgICAgICAgICAgICAgICBuYW1lID0gaW5wdXRzW2ldLm5hbWU7DQogICAgICAgICAgICAgICAgICAgIHZhbHVlID0gaW5wdXRzW2ldLnZhbHVlOw0KICAgICAgICAgICAgICAgICAgICBpbnB1dFtuYW1lXSA9IHZhbHVlOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIHN3aXRjaCAobmFtZSkgew0KICAgICAgICAgICAgICAgIGNhc2UgInR2Zy1sb2dvIjoNCiAgICAgICAgICAgICAgICAgICAgLy8oZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpLmNoaWxkTm9kZXNbMl0uZmlyc3RDaGlsZCBhcyBIVE1MRWxlbWVudCkuc2V0QXR0cmlidXRlKCJzcmMiLCB2YWx1ZSkNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAieC1uYW1lIjoNCiAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpLmNoaWxkTm9kZXNbM10uZmlyc3RDaGlsZC5pbm5lckhUTUwgPSB2YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAieC1jYXRlZ29yeSI6DQogICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5jaGlsZE5vZGVzWzNdLmZpcnN0Q2hpbGQuY2xhc3NOYW1lID0gdmFsdWU7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgIngtZ3JvdXAtdGl0bGUiOg0KICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkuY2hpbGROb2Rlc1s1XS5maXJzdENoaWxkLmlubmVySFRNTCA9IHZhbHVlOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBjYXNlICJ4LXhtbHR2LWZpbGUiOg0KICAgICAgICAgICAgICAgICAgICBpZiAodmFsdWUgIT0gInhUZVZlIER1bW15IiAmJiB2YWx1ZSAhPSAiLSIpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlID0gZ2V0VmFsdWVGcm9tUHJvdmlkZXJGaWxlKHZhbHVlLCAieG1sdHYiLCAibmFtZSIpOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIGlmICh2YWx1ZSA9PSAiLSIpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGlucHV0WyJ4LWFjdGl2ZSJdID0gZmFsc2U7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpLmNoaWxkTm9kZXNbNl0uZmlyc3RDaGlsZC5pbm5lckhUTUwgPSB2YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAieC1tYXBwaW5nIjoNCiAgICAgICAgICAgICAgICAgICAgaWYgKHZhbHVlID09ICItIikgew0KICAgICAgICAgICAgICAgICAgICAgICAgaW5wdXRbIngtYWN0aXZlIl0gPSBmYWxzZTsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkuY2hpbGROb2Rlc1s3XS5maXJzdENoaWxkLmlubmVySFRNTCA9IHZhbHVlOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBjYXNlICJ4LXRpbWVzaGlmdCI6DQogICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5jaGlsZE5vZGVzWzhdLmZpcnN0Q2hpbGQuaW5uZXJIVE1MID0gdmFsdWU7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICB9DQogICAgICAgICAgICBjcmVhdGVTZWFyY2hPYmooKTsNCiAgICAgICAgICAgIHNlYXJjaEluTWFwcGluZygpOw0KICAgICAgICB9DQogICAgICAgIGlmIChpbnB1dFsieC1hY3RpdmUiXSA9PSBmYWxzZSkgew0KICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpLmNsYXNzTmFtZSA9ICJub3RBY3RpdmVFUEciOw0KICAgICAgICB9DQogICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpLmNsYXNzTmFtZSA9ICJhY3RpdmVFUEciOw0KICAgICAgICB9DQogICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5jaGlsZE5vZGVzWzJdLmZpcnN0Q2hpbGQuc2V0QXR0cmlidXRlKCJzcmMiLCBpbnB1dFsidHZnLWxvZ28iXSk7DQogICAgfSk7DQogICAgc2hvd0VsZW1lbnQoInBvcHVwIiwgZmFsc2UpOw0KICAgIHJldHVybjsNCn0NCmZ1bmN0aW9uIHNob3dQcmV2aWV3KGVsZW1lbnQpIHsNCiAgICBsZXQgZGl2ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm15U3RyZWFtc0JveCIpOw0KICAgIHN3aXRjaCAoZWxlbWVudCkgew0KICAgICAgICBjYXNlIGZhbHNlOg0KICAgICAgICAgICAgZGl2LmNsYXNzTmFtZSA9ICJub3RWaXNpYmxlIjsNCiAgICAgICAgICAgIHJldHVybjsNCiAgICB9DQogICAgbGV0IHN0cmVhbXMgPSBbImFjdGl2ZVN0cmVhbXMiLCAiaW5hY3RpdmVTdHJlYW1zIl07DQogICAgc3RyZWFtcy5mb3JFYWNoKHByZXZpZXcgPT4gew0KICAgICAgICBsZXQgdGFibGUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChwcmV2aWV3KTsNCiAgICAgICAgdGFibGUuaW5uZXJIVE1MID0gIiI7DQogICAgICAgIGxldCBvYmogPSBTRVJWRVJbImRhdGEiXVsiU3RyZWFtUHJldmlld1VJIl1bcHJldmlld107DQogICAgICAgIG9iai5mb3JFYWNoKGNoYW5uZWwgPT4gew0KICAgICAgICAgICAgbGV0IHRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVFIiKTsNCiAgICAgICAgICAgIGxldCB0ZEtleSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICBsZXQgdGRWYWwgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgdGRLZXkuY2xhc3NOYW1lID0gInRkS2V5IjsNCiAgICAgICAgICAgIHRkVmFsLmNsYXNzTmFtZSA9ICJ0ZFZhbCI7DQogICAgICAgICAgICBzd2l0Y2ggKHByZXZpZXcpIHsNCiAgICAgICAgICAgICAgICBjYXNlICJhY3RpdmVTdHJlYW1zIjoNCiAgICAgICAgICAgICAgICAgICAgdGRLZXkuaW5uZXJUZXh0ID0gIkNoYW5uZWw6ICgrKSI7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgImluYWN0aXZlU3RyZWFtcyI6DQogICAgICAgICAgICAgICAgICAgIHRkS2V5LmlubmVyVGV4dCA9ICJDaGFubmVsOiAoLSkiOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIHRkVmFsLmlubmVyVGV4dCA9IGNoYW5uZWw7DQogICAgICAgICAgICB0ci5hcHBlbmRDaGlsZCh0ZEtleSk7DQogICAgICAgICAgICB0ci5hcHBlbmRDaGlsZCh0ZFZhbCk7DQogICAgICAgICAgICB0YWJsZS5hcHBlbmRDaGlsZCh0cik7DQogICAgICAgIH0pOw0KICAgIH0pOw0KICAgIHNob3dFbGVtZW50KCJsb2FkaW5nIiwgZmFsc2UpOw0KICAgIGRpdi5jbGFzc05hbWUgPSAidmlzaWJsZSI7DQogICAgcmV0dXJuOw0KfQ0K" + webUI["html/js/menu_ts.js"] = "Y2xhc3MgTWFpbk1lbnUgew0KICAgIGNvbnN0cnVjdG9yKCkgew0KICAgICAgICB0aGlzLkRvY3VtZW50SUQgPSAibWFpbi1tZW51IjsNCiAgICAgICAgdGhpcy5IVE1MVGFnID0gIkxJIjsNCiAgICAgICAgdGhpcy5JbWFnZVBhdGggPSAiaW1nLyI7DQogICAgfQ0KICAgIGNyZWF0ZUlNRyhzcmMpIHsNCiAgICAgICAgbGV0IGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJJTUciKTsNCiAgICAgICAgZWxlbWVudC5zZXRBdHRyaWJ1dGUoInNyYyIsIHRoaXMuSW1hZ2VQYXRoICsgc3JjKTsNCiAgICAgICAgcmV0dXJuIGVsZW1lbnQ7DQogICAgfQ0KICAgIGNyZWF0ZVZhbHVlKHZhbHVlKSB7DQogICAgICAgIGxldCBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiUCIpOw0KICAgICAgICBlbGVtZW50LmlubmVySFRNTCA9IHZhbHVlOw0KICAgICAgICByZXR1cm4gZWxlbWVudDsNCiAgICB9DQp9DQpjbGFzcyBNYWluTWVudUl0ZW0gZXh0ZW5kcyBNYWluTWVudSB7DQogICAgY29uc3RydWN0b3IobWVudUtleSwgdmFsdWUsIGltYWdlLCBoZWFkbGluZSkgew0KICAgICAgICBzdXBlcigpOw0KICAgICAgICB0aGlzLm1lbnVLZXkgPSBtZW51S2V5Ow0KICAgICAgICB0aGlzLnZhbHVlID0gdmFsdWU7DQogICAgICAgIHRoaXMuaW1nU3JjID0gaW1hZ2U7DQogICAgICAgIHRoaXMuaGVhZGxpbmUgPSBoZWFkbGluZTsNCiAgICB9DQogICAgY3JlYXRlSXRlbSgpIHsNCiAgICAgICAgbGV0IGl0ZW0gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJMSSIpOw0KICAgICAgICBpdGVtLnNldEF0dHJpYnV0ZSgib25jbGljayIsICJqYXZhc2NyaXB0OiBvcGVuVGhpc01lbnUodGhpcykiKTsNCiAgICAgICAgaXRlbS5zZXRBdHRyaWJ1dGUoImlkIiwgdGhpcy5pZCk7DQogICAgICAgIGxldCBpbWcgPSB0aGlzLmNyZWF0ZUlNRyh0aGlzLmltZ1NyYyk7DQogICAgICAgIGxldCB2YWx1ZSA9IHRoaXMuY3JlYXRlVmFsdWUodGhpcy52YWx1ZSk7DQogICAgICAgIGl0ZW0uYXBwZW5kQ2hpbGQoaW1nKTsNCiAgICAgICAgaXRlbS5hcHBlbmRDaGlsZCh2YWx1ZSk7DQogICAgICAgIGxldCBkb2MgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCh0aGlzLkRvY3VtZW50SUQpOw0KICAgICAgICBkb2MuYXBwZW5kQ2hpbGQoaXRlbSk7DQogICAgICAgIHN3aXRjaCAodGhpcy5tZW51S2V5KSB7DQogICAgICAgICAgICBjYXNlICJwbGF5bGlzdCI6DQogICAgICAgICAgICAgICAgdGhpcy50YWJsZUhlYWRlciA9IFsie3sucGxheWxpc3QudGFibGUucGxheWxpc3R9fSIsICJ7ey5wbGF5bGlzdC50YWJsZS50dW5lcn19IiwgInt7LnBsYXlsaXN0LnRhYmxlLmxhc3RVcGRhdGV9fSIsICJ7ey5wbGF5bGlzdC50YWJsZS5hdmFpbGFiaWxpdHl9fSAlIiwgInt7LnBsYXlsaXN0LnRhYmxlLnR5cGV9fSIsICJ7ey5wbGF5bGlzdC50YWJsZS5zdHJlYW1zfX0iLCAie3sucGxheWxpc3QudGFibGUuZ3JvdXBUaXRsZX19ICUiLCAie3sucGxheWxpc3QudGFibGUudHZnSUR9fSAlIiwgInt7LnBsYXlsaXN0LnRhYmxlLnVuaXF1ZUlEfX0gJSJdOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAieG1sdHYiOg0KICAgICAgICAgICAgICAgIHRoaXMudGFibGVIZWFkZXIgPSBbInt7LnhtbHR2LnRhYmxlLmd1aWRlfX0iLCAie3sueG1sdHYudGFibGUubGFzdFVwZGF0ZX19IiwgInt7LnhtbHR2LnRhYmxlLmF2YWlsYWJpbGl0eX19ICUiLCAie3sueG1sdHYudGFibGUuY2hhbm5lbHN9fSIsICJ7ey54bWx0di50YWJsZS5wcm9ncmFtc319Il07DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJmaWx0ZXIiOg0KICAgICAgICAgICAgICAgIHRoaXMudGFibGVIZWFkZXIgPSBbInt7LmZpbHRlci50YWJsZS5zdGFydGluZ0NoYW5uZWx9fSIsICJ7ey5maWx0ZXIudGFibGUubmFtZX19IiwgInt7LmZpbHRlci50YWJsZS50eXBlfX0iLCAie3suZmlsdGVyLnRhYmxlLmZpbHRlcn19Il07DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ1c2VycyI6DQogICAgICAgICAgICAgICAgdGhpcy50YWJsZUhlYWRlciA9IFsie3sudXNlcnMudGFibGUudXNlcm5hbWV9fSIsICJ7ey51c2Vycy50YWJsZS5wYXNzd29yZH19IiwgInt7LnVzZXJzLnRhYmxlLndlYn19IiwgInt7LnVzZXJzLnRhYmxlLnBtc319IiwgInt7LnVzZXJzLnRhYmxlLm0zdX19IiwgInt7LnVzZXJzLnRhYmxlLnhtbH19IiwgInt7LnVzZXJzLnRhYmxlLmFwaX19Il07DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJtYXBwaW5nIjoNCiAgICAgICAgICAgICAgICB0aGlzLnRhYmxlSGVhZGVyID0gWyJCVUxLIiwgInt7Lm1hcHBpbmcudGFibGUuY2hOb319IiwgInt7Lm1hcHBpbmcudGFibGUubG9nb319IiwgInt7Lm1hcHBpbmcudGFibGUuY2hhbm5lbE5hbWV9fSIsICJ7ey5tYXBwaW5nLnRhYmxlLnVwZGF0ZUNoYW5uZWxOYW1lUmVnZXh9fSIsICJ7ey5tYXBwaW5nLnRhYmxlLnBsYXlsaXN0fX0iLCAie3subWFwcGluZy50YWJsZS5ncm91cFRpdGxlfX0iLCAie3subWFwcGluZy50YWJsZS54bWx0dkZpbGV9fSIsICJ7ey5tYXBwaW5nLnRhYmxlLnhtbHR2SUR9fSIsICJ7ey5tYXBwaW5nLnRhYmxlLnRpbWVzaGlmdH19Il07DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIH0NCiAgICB9DQp9DQpjbGFzcyBDb250ZW50IHsNCiAgICBjb25zdHJ1Y3RvcigpIHsNCiAgICAgICAgdGhpcy5Eb2N1bWVudElEID0gImNvbnRlbnQiOw0KICAgICAgICB0aGlzLlRhYmxlSUQgPSAiY29udGVudF90YWJsZSI7DQogICAgICAgIHRoaXMuaGVhZGVyQ2xhc3MgPSAiY29udGVudF90YWJsZV9oZWFkZXIiOw0KICAgICAgICB0aGlzLmludGVyYWN0aW9uSUQgPSAiY29udGVudC1pbnRlcmFjdGlvbiI7DQogICAgfQ0KICAgIGNyZWF0ZUhlYWRsaW5lKHZhbHVlKSB7DQogICAgICAgIGxldCBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiSDMiKTsNCiAgICAgICAgZWxlbWVudC5pbm5lckhUTUwgPSB2YWx1ZTsNCiAgICAgICAgcmV0dXJuIGVsZW1lbnQ7DQogICAgfQ0KICAgIGNyZWF0ZUhSKCkgew0KICAgICAgICByZXR1cm4gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiSFIiKTsNCiAgICB9DQogICAgY3JlYXRlSW50ZXJhY3Rpb24oKSB7DQogICAgICAgIGxldCBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiRElWIik7DQogICAgICAgIGVsZW1lbnQuc2V0QXR0cmlidXRlKCJpZCIsIHRoaXMuaW50ZXJhY3Rpb25JRCk7DQogICAgICAgIHJldHVybiBlbGVtZW50Ow0KICAgIH0NCiAgICBjcmVhdGVESVYoKSB7DQogICAgICAgIGxldCBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiRElWIik7DQogICAgICAgIGVsZW1lbnQuaWQgPSB0aGlzLkRpdklEOw0KICAgICAgICByZXR1cm4gZWxlbWVudDsNCiAgICB9DQogICAgY3JlYXRlVEFCTEUoKSB7DQogICAgICAgIGxldCBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEFCTEUiKTsNCiAgICAgICAgZWxlbWVudC5pZCA9IHRoaXMuVGFibGVJRDsNCiAgICAgICAgcmV0dXJuIGVsZW1lbnQ7DQogICAgfQ0KICAgIGNyZWF0ZVRhYmxlUm93KCkgew0KICAgICAgICBsZXQgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlRSIik7DQogICAgICAgIGVsZW1lbnQuY2xhc3NOYW1lID0gdGhpcy5oZWFkZXJDbGFzczsNCiAgICAgICAgcmV0dXJuIGVsZW1lbnQ7DQogICAgfQ0KICAgIGNyZWF0ZVRhYmxlQ29udGVudChtZW51S2V5KSB7DQogICAgICAgIGxldCBkYXRhID0ge307DQogICAgICAgIGxldCByb3dzID0gW107DQogICAgICAgIGxldCBmaWxlVHlwZXMgPSBbXTsNCiAgICAgICAgc3dpdGNoIChtZW51S2V5KSB7DQogICAgICAgICAgICBjYXNlICJwbGF5bGlzdCI6DQogICAgICAgICAgICAgICAgZmlsZVR5cGVzID0gWyJtM3UiLCAiaGRociJdOw0KICAgICAgICAgICAgICAgIGZpbGVUeXBlcy5mb3JFYWNoKGZpbGVUeXBlID0+IHsNCiAgICAgICAgICAgICAgICAgICAgZGF0YSA9IFNFUlZFUlsic2V0dGluZ3MiXVsiZmlsZXMiXVtmaWxlVHlwZV07DQogICAgICAgICAgICAgICAgICAgIHZhciBrZXlzID0gZ2V0T3duT2JqUHJvcHMoZGF0YSk7DQogICAgICAgICAgICAgICAgICAgIGtleXMuZm9yRWFjaChrZXkgPT4gew0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVFIiKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmlkID0ga2V5Ow0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgiJyArIGZpbGVUeXBlICsgJyIsIHRoaXMpJyk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsibmFtZSJdOw0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChTRVJWRVJbInNldHRpbmdzIl1bImJ1ZmZlciJdICE9ICItIikgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bInR1bmVyIl07DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gIi0iOw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bImxhc3QudXBkYXRlIl07DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsicHJvdmlkZXIuYXZhaWxhYmlsaXR5Il07DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsidHlwZSJdLnRvVXBwZXJDYXNlKCk7DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsiY29tcGF0aWJpbGl0eSJdWyJzdHJlYW1zIl07DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsiY29tcGF0aWJpbGl0eSJdWyJncm91cC50aXRsZSJdOw0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bImNvbXBhdGliaWxpdHkiXVsidHZnLmlkIl07DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsiY29tcGF0aWJpbGl0eSJdWyJzdHJlYW0uaWQiXTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHJvd3MucHVzaCh0cik7DQogICAgICAgICAgICAgICAgICAgIH0pOw0KICAgICAgICAgICAgICAgIH0pOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiZmlsdGVyIjoNCiAgICAgICAgICAgICAgICBkZWxldGUgU0VSVkVSWyJzZXR0aW5ncyJdWyJmaWx0ZXIiXVstMV07DQogICAgICAgICAgICAgICAgZGF0YSA9IFNFUlZFUlsic2V0dGluZ3MiXVsiZmlsdGVyIl07DQogICAgICAgICAgICAgICAgdmFyIGtleXMgPSBnZXRPd25PYmpQcm9wcyhkYXRhKTsNCiAgICAgICAgICAgICAgICBrZXlzLmZvckVhY2goa2V5ID0+IHsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVFIiKTsNCiAgICAgICAgICAgICAgICAgICAgdHIuaWQgPSBrZXk7DQogICAgICAgICAgICAgICAgICAgIHRyLnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoIicgKyBkYXRhW2tleV1bInR5cGUiXSArICciLCB0aGlzKScpOw0KICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsic3RhcnRpbmdDaGFubmVsIl07DQogICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bIm5hbWUiXTsNCiAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgc3dpdGNoIChkYXRhW2tleV1bInR5cGUiXSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAiY3VzdG9tLWZpbHRlciI6DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9ICJ7ey5maWx0ZXIuY3VzdG9tfX0iOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAiZ3JvdXAtdGl0bGUiOg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSAie3suZmlsdGVyLmdyb3VwfX0iOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJmaWx0ZXIiXTsNCiAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICByb3dzLnB1c2godHIpOw0KICAgICAgICAgICAgICAgIH0pOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAieG1sdHYiOg0KICAgICAgICAgICAgICAgIGZpbGVUeXBlcyA9IG5ldyBBcnJheSgieG1sdHYiKTsNCiAgICAgICAgICAgICAgICBmaWxlVHlwZXMuZm9yRWFjaChmaWxlVHlwZSA9PiB7DQogICAgICAgICAgICAgICAgICAgIGRhdGEgPSBTRVJWRVJbInNldHRpbmdzIl1bImZpbGVzIl1bZmlsZVR5cGVdOw0KICAgICAgICAgICAgICAgICAgICB2YXIga2V5cyA9IGdldE93bk9ialByb3BzKGRhdGEpOw0KICAgICAgICAgICAgICAgICAgICBrZXlzLmZvckVhY2goa2V5ID0+IHsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciB0ciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlRSIik7DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5pZCA9IGtleTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoIicgKyBmaWxlVHlwZSArICciLCB0aGlzKScpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bIm5hbWUiXTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJsYXN0LnVwZGF0ZSJdOw0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bInByb3ZpZGVyLmF2YWlsYWJpbGl0eSJdOw0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bImNvbXBhdGliaWxpdHkiXVsieG1sdHYuY2hhbm5lbHMiXTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJjb21wYXRpYmlsaXR5Il1bInhtbHR2LnByb2dyYW1zIl07DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICByb3dzLnB1c2godHIpOw0KICAgICAgICAgICAgICAgICAgICB9KTsNCiAgICAgICAgICAgICAgICB9KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInVzZXJzIjoNCiAgICAgICAgICAgICAgICBmaWxlVHlwZXMgPSBuZXcgQXJyYXkoInVzZXJzIik7DQogICAgICAgICAgICAgICAgZmlsZVR5cGVzLmZvckVhY2goZmlsZVR5cGUgPT4gew0KICAgICAgICAgICAgICAgICAgICBkYXRhID0gU0VSVkVSW2ZpbGVUeXBlXTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGtleXMgPSBnZXRPd25PYmpQcm9wcyhkYXRhKTsNCiAgICAgICAgICAgICAgICAgICAga2V5cy5mb3JFYWNoKGtleSA9PiB7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgdHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJUUiIpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuaWQgPSBrZXk7DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCInICsgZmlsZVR5cGUgKyAnIiwgdGhpcyknKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJkYXRhIl1bInVzZXJuYW1lIl07DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9ICIqKioqKioiOw0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChkYXRhW2tleV1bImRhdGEiXVsiYXV0aGVudGljYXRpb24ud2ViIl0gPT0gdHJ1ZSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSAi4pyTIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSAiLSI7DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGRhdGFba2V5XVsiZGF0YSJdWyJhdXRoZW50aWNhdGlvbi5wbXMiXSA9PSB0cnVlKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9ICLinJMiOw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9ICItIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgICAgICBpZiAoZGF0YVtrZXldWyJkYXRhIl1bImF1dGhlbnRpY2F0aW9uLm0zdSJdID09IHRydWUpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gIuKckyI7DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gIi0iOw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChkYXRhW2tleV1bImRhdGEiXVsiYXV0aGVudGljYXRpb24ueG1sIl0gPT0gdHJ1ZSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSAi4pyTIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSAiLSI7DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGRhdGFba2V5XVsiZGF0YSJdWyJhdXRoZW50aWNhdGlvbi5hcGkiXSA9PSB0cnVlKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9ICLinJMiOw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9ICItIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHJvd3MucHVzaCh0cik7DQogICAgICAgICAgICAgICAgICAgIH0pOw0KICAgICAgICAgICAgICAgIH0pOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAibWFwcGluZyI6DQogICAgICAgICAgICAgICAgQlVMS19FRElUID0gZmFsc2U7DQogICAgICAgICAgICAgICAgY3JlYXRlU2VhcmNoT2JqKCk7DQogICAgICAgICAgICAgICAgY2hlY2tVbmRvKCJlcGdNYXBwaW5nIik7DQogICAgICAgICAgICAgICAgZGF0YSA9IFNFUlZFUlsieGVwZyJdWyJlcGdNYXBwaW5nIl07DQogICAgICAgICAgICAgICAgdmFyIGtleXMgPSBnZXRPd25PYmpQcm9wcyhkYXRhKTsNCiAgICAgICAgICAgICAgICBrZXlzLmZvckVhY2goa2V5ID0+IHsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVFIiKTsNCiAgICAgICAgICAgICAgICAgICAgdHIuaWQgPSBrZXk7DQogICAgICAgICAgICAgICAgICAgIHN3aXRjaCAoZGF0YVtrZXldWyJ4LWFjdGl2ZSJdKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBjYXNlIHRydWU6DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgdHIuY2xhc3NOYW1lID0gImFjdGl2ZUVQRyI7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgICAgICAgICBjYXNlIGZhbHNlOg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyLmNsYXNzTmFtZSA9ICJub3RBY3RpdmVFUEciOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIC8vIEJ1bGsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiQlVMSyI7DQogICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBmYWxzZTsNCiAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAvLyBDaGFubmVsIG51bWJlcg0KICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJJTlBVVENIQU5ORUwiOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJ4LWNoYW5uZWxJRCJdOw0KICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgIC8vIExvZ28NCiAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiSU1HIjsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5pbWFnZVVSTCA9IGRhdGFba2V5XVsidHZnLWxvZ28iXTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHRkID0gY2VsbC5jcmVhdGVDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgIHRkLnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoIm1hcHBpbmciLCB0aGlzKScpOw0KICAgICAgICAgICAgICAgICAgICB0ZC5pZCA9IGtleTsNCiAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQodGQpOw0KICAgICAgICAgICAgICAgICAgICAvLyBDaGFubmVsIG5hbWUNCiAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2xhc3NOYW1lID0gZGF0YVtrZXldWyJ4LWNhdGVnb3J5Il07DQogICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bIngtbmFtZSJdOw0KICAgICAgICAgICAgICAgICAgICB2YXIgdGQgPSBjZWxsLmNyZWF0ZUNlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgdGQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgibWFwcGluZyIsIHRoaXMpJyk7DQogICAgICAgICAgICAgICAgICAgIHRkLmlkID0ga2V5Ow0KICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZCh0ZCk7DQogICAgICAgICAgICAgICAgICAgIC8vIFVwZGF0ZSBjaGFubmVsIG5hbWUgcmVnZXgNCiAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bInVwZGF0ZS1jaGFubmVsLW5hbWUtcmVnZXgiXTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHRkID0gY2VsbC5jcmVhdGVDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgIHRkLnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoIm1hcHBpbmciLCB0aGlzKScpOw0KICAgICAgICAgICAgICAgICAgICB0ZC5pZCA9IGtleTsNCiAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQodGQpOw0KICAgICAgICAgICAgICAgICAgICAvLyBQbGF5bGlzdA0KICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGdldFZhbHVlRnJvbVByb3ZpZGVyRmlsZShkYXRhW2tleV1bIl9maWxlLm0zdS5pZCJdLCAibTN1IiwgIm5hbWUiKTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHRkID0gY2VsbC5jcmVhdGVDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgIHRkLnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoIm1hcHBpbmciLCB0aGlzKScpOw0KICAgICAgICAgICAgICAgICAgICB0ZC5pZCA9IGtleTsNCiAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQodGQpOw0KICAgICAgICAgICAgICAgICAgICAvLyBHcm91cCAoZ3JvdXAtdGl0bGUpDQogICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJ4LWdyb3VwLXRpdGxlIl07DQogICAgICAgICAgICAgICAgICAgIHZhciB0ZCA9IGNlbGwuY3JlYXRlQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICB0ZC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJtYXBwaW5nIiwgdGhpcyknKTsNCiAgICAgICAgICAgICAgICAgICAgdGQuaWQgPSBrZXk7DQogICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKHRkKTsNCiAgICAgICAgICAgICAgICAgICAgLy8gWE1MVFYgZmlsZQ0KICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgaWYgKGRhdGFba2V5XVsieC14bWx0di1maWxlIl0gIT0gIi0iKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZ2V0VmFsdWVGcm9tUHJvdmlkZXJGaWxlKGRhdGFba2V5XVsieC14bWx0di1maWxlIl0sICJ4bWx0diIsICJuYW1lIik7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgZWxzZSB7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJ4LXhtbHR2LWZpbGUiXTsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICB2YXIgdGQgPSBjZWxsLmNyZWF0ZUNlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgdGQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgibWFwcGluZyIsIHRoaXMpJyk7DQogICAgICAgICAgICAgICAgICAgIHRkLmlkID0ga2V5Ow0KICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZCh0ZCk7DQogICAgICAgICAgICAgICAgICAgIC8vIFhNTFRWIENoYW5uZWwNCiAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgIHZhciB2YWx1ZSA9IGRhdGFba2V5XVsieC1tYXBwaW5nIl07DQogICAgICAgICAgICAgICAgICAgIGlmICh2YWx1ZS5sZW5ndGggPiAyMCkgew0KICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSBkYXRhW2tleV1bIngtbWFwcGluZyJdLnN1YnN0cmluZygwLCAyMCkgKyAiLi4uIjsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gdmFsdWU7DQogICAgICAgICAgICAgICAgICAgIHZhciB0ZCA9IGNlbGwuY3JlYXRlQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICB0ZC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJtYXBwaW5nIiwgdGhpcyknKTsNCiAgICAgICAgICAgICAgICAgICAgdGQuaWQgPSBrZXk7DQogICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKHRkKTsNCiAgICAgICAgICAgICAgICAgICAgLy8gVGltZVNoaWZ0DQogICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJ4LXRpbWVzaGlmdCJdOw0KICAgICAgICAgICAgICAgICAgICB2YXIgdGQgPSBjZWxsLmNyZWF0ZUNlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgdGQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgibWFwcGluZyIsIHRoaXMpJyk7DQogICAgICAgICAgICAgICAgICAgIHRkLmlkID0ga2V5Ow0KICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZCh0ZCk7DQogICAgICAgICAgICAgICAgICAgIHJvd3MucHVzaCh0cik7DQogICAgICAgICAgICAgICAgfSk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJzZXR0aW5ncyI6DQogICAgICAgICAgICAgICAgYWxlcnQoKTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIH0NCiAgICAgICAgcmV0dXJuIHJvd3M7DQogICAgfQ0KfQ0KY2xhc3MgQ2VsbCB7DQogICAgY3JlYXRlQ2VsbCgpIHsNCiAgICAgICAgbGV0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgaWYgKHRoaXMuY2hpbGQgPT0gdHJ1ZSkgew0KICAgICAgICAgICAgdmFyIGVsZW1lbnQ7DQogICAgICAgICAgICBzd2l0Y2ggKHRoaXMuY2hpbGRUeXBlKSB7DQogICAgICAgICAgICAgICAgY2FzZSAiUCI6DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KHRoaXMuY2hpbGRUeXBlKTsNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC5pbm5lckhUTUwgPSB0aGlzLnZhbHVlOw0KICAgICAgICAgICAgICAgICAgICBlbGVtZW50LmNsYXNzTmFtZSA9IHRoaXMuY2xhc3NOYW1lOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBjYXNlICJJTlBVVCI6DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KHRoaXMuY2hpbGRUeXBlKTsNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC52YWx1ZSA9IHRoaXMudmFsdWU7DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQudHlwZSA9ICJ0ZXh0IjsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAiSU5QVVRDSEFOTkVMIjoNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIklOUFVUIik7DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZzY3JpcHQ6IGNoYW5nZUNoYW5uZWxOdW1iZXIodGhpcykiKTsNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC52YWx1ZSA9IHRoaXMudmFsdWU7DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQudHlwZSA9ICJ0ZXh0IjsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAiQlVMSyI6DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJJTlBVVCIpOw0KICAgICAgICAgICAgICAgICAgICBlbGVtZW50LmNoZWNrZWQgPSB0aGlzLnZhbHVlOw0KICAgICAgICAgICAgICAgICAgICBlbGVtZW50LnR5cGUgPSAiY2hlY2tib3giOw0KICAgICAgICAgICAgICAgICAgICBlbGVtZW50LmNsYXNzTmFtZSA9ICJidWxrIGhpZGVCdWxrIjsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAiQlVMS19IRUFEIjoNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIklOUFVUIik7DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQuY2hlY2tlZCA9IHRoaXMudmFsdWU7DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQudHlwZSA9ICJjaGVja2JveCI7DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQuY2xhc3NOYW1lID0gImJ1bGsgaGlkZUJ1bGsiOw0KICAgICAgICAgICAgICAgICAgICBlbGVtZW50LnNldEF0dHJpYnV0ZSgib25jbGljayIsICJqYXZhc2NyaXB0OiBzZWxlY3RBbGxDaGFubmVscygpIik7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgIklNRyI6DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KHRoaXMuY2hpbGRUeXBlKTsNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC5zZXRBdHRyaWJ1dGUoInNyYyIsIHRoaXMuaW1hZ2VVUkwpOw0KICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5pbWFnZVVSTCAhPSAiIikgew0KICAgICAgICAgICAgICAgICAgICAgICAgZWxlbWVudC5zZXRBdHRyaWJ1dGUoIm9uZXJyb3IiLCAiamF2YXNjcmlwdDogdGhpcy5vbmVycm9yPW51bGw7dGhpcy5zcmM9JyciKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIC8vb25lcnJvcj0idGhpcy5vbmVycm9yPW51bGw7dGhpcy5zcmM9J21pc3NpbmcuZ2lmJzsiDQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIHRkLmFwcGVuZENoaWxkKGVsZW1lbnQpOw0KICAgICAgICB9DQogICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgdGQuaW5uZXJIVE1MID0gdGhpcy52YWx1ZTsNCiAgICAgICAgfQ0KICAgICAgICBpZiAodGhpcy5vbmNsaWNrID09IHRydWUpIHsNCiAgICAgICAgICAgIHRkLnNldEF0dHJpYnV0ZSgib25jbGljayIsIHRoaXMub25jbGlja0Z1bmN0aW9uKTsNCiAgICAgICAgICAgIHRkLmNsYXNzTmFtZSA9ICJwb2ludGVyIjsNCiAgICAgICAgfQ0KICAgICAgICBpZiAodGhpcy50ZENsYXNzTmFtZSAhPSB1bmRlZmluZWQpIHsNCiAgICAgICAgICAgIHRkLmNsYXNzTmFtZSA9IHRoaXMudGRDbGFzc05hbWU7DQogICAgICAgIH0NCiAgICAgICAgcmV0dXJuIHRkOw0KICAgIH0NCn0NCmNsYXNzIFNob3dDb250ZW50IGV4dGVuZHMgQ29udGVudCB7DQogICAgY29uc3RydWN0b3IobWVudUlEKSB7DQogICAgICAgIHN1cGVyKCk7DQogICAgICAgIHRoaXMubWVudUlEID0gbWVudUlEOw0KICAgIH0NCiAgICBjcmVhdGVJbnB1dCh0eXBlLCBuYW1lLCB2YWx1ZSkgew0KICAgICAgICBsZXQgaW5wdXQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJJTlBVVCIpOw0KICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInR5cGUiLCB0eXBlKTsNCiAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJuYW1lIiwgbmFtZSk7DQogICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgidmFsdWUiLCB2YWx1ZSk7DQogICAgICAgIHJldHVybiBpbnB1dDsNCiAgICB9DQogICAgc2hvdygpIHsNCiAgICAgICAgQ09MVU1OX1RPX1NPUlQgPSAtMTsNCiAgICAgICAgLy8gRGVsZXRlIG9sZCBjb250ZW50DQogICAgICAgIGxldCBkb2MgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCh0aGlzLkRvY3VtZW50SUQpOw0KICAgICAgICBkb2MuaW5uZXJIVE1MID0gIiI7DQogICAgICAgIHNob3dQcmV2aWV3KGZhbHNlKTsNCiAgICAgICAgLy8gSGVhZGxpbmUNCiAgICAgICAgbGV0IGhlYWRsaW5lID0gbWVudUl0ZW1zW3RoaXMubWVudUlEXS5oZWFkbGluZTsNCiAgICAgICAgbGV0IG1lbnVLZXkgPSBtZW51SXRlbXNbdGhpcy5tZW51SURdLm1lbnVLZXk7DQogICAgICAgIGxldCBoID0gdGhpcy5jcmVhdGVIZWFkbGluZShoZWFkbGluZSk7DQogICAgICAgIGRvYy5hcHBlbmRDaGlsZChoKTsNCiAgICAgICAgbGV0IGhyID0gdGhpcy5jcmVhdGVIUigpOw0KICAgICAgICBkb2MuYXBwZW5kQ2hpbGQoaHIpOw0KICAgICAgICAvLyBJbnRlcmFjdGlvbg0KICAgICAgICBsZXQgZGl2ID0gdGhpcy5jcmVhdGVJbnRlcmFjdGlvbigpOw0KICAgICAgICBkb2MuYXBwZW5kQ2hpbGQoZGl2KTsNCiAgICAgICAgbGV0IGludGVyYWN0aW9uID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQodGhpcy5pbnRlcmFjdGlvbklEKTsNCiAgICAgICAgc3dpdGNoIChtZW51S2V5KSB7DQogICAgICAgICAgICBjYXNlICJwbGF5bGlzdCI6DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gdGhpcy5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgbWVudUtleSwgInt7LmJ1dHRvbi5uZXd9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgiaWQiLCAiLSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoInBsYXlsaXN0IiknKTsNCiAgICAgICAgICAgICAgICBpbnRlcmFjdGlvbi5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJmaWx0ZXIiOg0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IHRoaXMuY3JlYXRlSW5wdXQoImJ1dHRvbiIsIG1lbnVLZXksICJ7ey5idXR0b24ubmV3fX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoImlkIiwgLTEpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoImZpbHRlciIsIHRoaXMpJyk7DQogICAgICAgICAgICAgICAgaW50ZXJhY3Rpb24uYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAieG1sdHYiOg0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IHRoaXMuY3JlYXRlSW5wdXQoImJ1dHRvbiIsIG1lbnVLZXksICJ7ey5idXR0b24ubmV3fX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoImlkIiwgInhtbHR2Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgieG1sdHYiKScpOw0KICAgICAgICAgICAgICAgIGludGVyYWN0aW9uLmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInVzZXJzIjoNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSB0aGlzLmNyZWF0ZUlucHV0KCJidXR0b24iLCBtZW51S2V5LCAie3suYnV0dG9uLm5ld319Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJpZCIsICJ1c2VycyIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoInVzZXJzIiknKTsNCiAgICAgICAgICAgICAgICBpbnRlcmFjdGlvbi5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJtYXBwaW5nIjoNCiAgICAgICAgICAgICAgICBzaG93RWxlbWVudCgibG9hZGluZyIsIHRydWUpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IHRoaXMuY3JlYXRlSW5wdXQoImJ1dHRvbiIsIG1lbnVLZXksICJ7ey5idXR0b24uc2F2ZX19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoIm1hcHBpbmciLCAiIiwgIiIpJyk7DQogICAgICAgICAgICAgICAgaW50ZXJhY3Rpb24uYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IHRoaXMuY3JlYXRlSW5wdXQoImJ1dHRvbiIsIG1lbnVLZXksICJ7ey5idXR0b24uYnVsa0VkaXR9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBidWxrRWRpdCgpJyk7DQogICAgICAgICAgICAgICAgaW50ZXJhY3Rpb24uYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IHRoaXMuY3JlYXRlSW5wdXQoInNlYXJjaCIsICJzZWFyY2giLCAiIik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJpZCIsICJzZWFyY2hNYXBwaW5nIik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5idXR0b24uc2VhcmNofX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5jbGFzc05hbWUgPSAic2VhcmNoIjsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgJ2phdmFzY3JpcHQ6IHNlYXJjaEluTWFwcGluZygpJyk7DQogICAgICAgICAgICAgICAgaW50ZXJhY3Rpb24uYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAic2V0dGluZ3MiOg0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IHRoaXMuY3JlYXRlSW5wdXQoImJ1dHRvbiIsIG1lbnVLZXksICJ7ey5idXR0b24uc2F2ZX19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IHNhdmVTZXR0aW5ncygpOycpOw0KICAgICAgICAgICAgICAgIGludGVyYWN0aW9uLmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSB0aGlzLmNyZWF0ZUlucHV0KCJidXR0b24iLCBtZW51S2V5LCAie3suYnV0dG9uLmJhY2t1cH19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IGJhY2t1cCgpOycpOw0KICAgICAgICAgICAgICAgIGludGVyYWN0aW9uLmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSB0aGlzLmNyZWF0ZUlucHV0KCJidXR0b24iLCBtZW51S2V5LCAie3suYnV0dG9uLnJlc3RvcmV9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiByZXN0b3JlKCk7Jyk7DQogICAgICAgICAgICAgICAgaW50ZXJhY3Rpb24uYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIHZhciB3cmFwcGVyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiRElWIik7DQogICAgICAgICAgICAgICAgd3JhcHBlci5zZXRBdHRyaWJ1dGUoImlkIiwgImJveC13cmFwcGVyIik7DQogICAgICAgICAgICAgICAgZG9jLmFwcGVuZENoaWxkKHdyYXBwZXIpOw0KICAgICAgICAgICAgICAgIHRoaXMuRGl2SUQgPSAiY29udGVudF9zZXR0aW5ncyI7DQogICAgICAgICAgICAgICAgdmFyIHNldHRpbmdzID0gdGhpcy5jcmVhdGVESVYoKTsNCiAgICAgICAgICAgICAgICB3cmFwcGVyLmFwcGVuZENoaWxkKHNldHRpbmdzKTsNCiAgICAgICAgICAgICAgICBzaG93U2V0dGluZ3MoKTsNCiAgICAgICAgICAgICAgICByZXR1cm47DQogICAgICAgICAgICBjYXNlICJsb2ciOg0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IHRoaXMuY3JlYXRlSW5wdXQoImJ1dHRvbiIsIG1lbnVLZXksICJ7ey5idXR0b24ucmVzZXRMb2dzfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogcmVzZXRMb2dzKCk7Jyk7DQogICAgICAgICAgICAgICAgaW50ZXJhY3Rpb24uYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIHZhciB3cmFwcGVyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiRElWIik7DQogICAgICAgICAgICAgICAgd3JhcHBlci5zZXRBdHRyaWJ1dGUoImlkIiwgImJveC13cmFwcGVyIik7DQogICAgICAgICAgICAgICAgZG9jLmFwcGVuZENoaWxkKHdyYXBwZXIpOw0KICAgICAgICAgICAgICAgIHRoaXMuRGl2SUQgPSAiY29udGVudF9sb2ciOw0KICAgICAgICAgICAgICAgIHZhciBsb2dzID0gdGhpcy5jcmVhdGVESVYoKTsNCiAgICAgICAgICAgICAgICB3cmFwcGVyLmFwcGVuZENoaWxkKGxvZ3MpOw0KICAgICAgICAgICAgICAgIHNob3dMb2dzKHRydWUpOw0KICAgICAgICAgICAgICAgIHJldHVybjsNCiAgICAgICAgICAgIGNhc2UgImxvZ291dCI6DQogICAgICAgICAgICAgICAgbG9jYXRpb24ucmVsb2FkKCk7DQogICAgICAgICAgICAgICAgZG9jdW1lbnQuY29va2llID0gIlRva2VuPSA7IGV4cGlyZXMgPSBUaHUsIDAxIEphbiAxOTcwIDAwOjAwOjAwIEdNVCI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBkZWZhdWx0Og0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICB9DQogICAgICAgIC8vIENyZWF0ZSB0YWJsZSAoaWYgbmVlZGVkKQ0KICAgICAgICB2YXIgdGFibGVIZWFkZXIgPSBtZW51SXRlbXNbdGhpcy5tZW51SURdLnRhYmxlSGVhZGVyOw0KICAgICAgICBpZiAodGFibGVIZWFkZXIubGVuZ3RoID4gMCkgew0KICAgICAgICAgICAgdmFyIHdyYXBwZXIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJESVYiKTsNCiAgICAgICAgICAgIGRvYy5hcHBlbmRDaGlsZCh3cmFwcGVyKTsNCiAgICAgICAgICAgIHdyYXBwZXIuc2V0QXR0cmlidXRlKCJpZCIsICJib3gtd3JhcHBlciIpOw0KICAgICAgICAgICAgdmFyIHRhYmxlID0gdGhpcy5jcmVhdGVUQUJMRSgpOw0KICAgICAgICAgICAgd3JhcHBlci5hcHBlbmRDaGlsZCh0YWJsZSk7DQogICAgICAgICAgICB2YXIgaGVhZGVyID0gdGhpcy5jcmVhdGVUYWJsZVJvdygpOw0KICAgICAgICAgICAgdGFibGUuYXBwZW5kQ2hpbGQoaGVhZGVyKTsNCiAgICAgICAgICAgIC8vIFRhYmxlIGhlYWRlcg0KICAgICAgICAgICAgdGFibGVIZWFkZXIuZm9yRWFjaChlbGVtZW50ID0+IHsNCiAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGVsZW1lbnQ7DQogICAgICAgICAgICAgICAgaWYgKGVsZW1lbnQgPT0gIkJVTEsiKSB7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIkJVTEtfSEVBRCI7DQogICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBmYWxzZTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgaWYgKG1lbnVLZXkgPT0gIm1hcHBpbmciKSB7DQogICAgICAgICAgICAgICAgICAgIGlmIChlbGVtZW50ID09ICJ7ey5tYXBwaW5nLnRhYmxlLmNoTm99fSIpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwub25jbGljayA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLm9uY2xpY2tGdW5jdGlvbiA9ICJqYXZhc2NyaXB0OiBzb3J0VGFibGUoMSk7IjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudGRDbGFzc05hbWUgPSAic29ydFRoaXMiOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIGlmIChlbGVtZW50ID09ICJ7ey5tYXBwaW5nLnRhYmxlLmNoYW5uZWxOYW1lfX0iKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLm9uY2xpY2sgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5vbmNsaWNrRnVuY3Rpb24gPSAiamF2YXNjcmlwdDogc29ydFRhYmxlKDMpOyI7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgaWYgKGVsZW1lbnQgPT0gInt7Lm1hcHBpbmcudGFibGUudXBkYXRlQ2hhbm5lbE5hbWVSZWdleH19Iikgew0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5vbmNsaWNrID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwub25jbGlja0Z1bmN0aW9uID0gImphdmFzY3JpcHQ6IHNvcnRUYWJsZSg0KTsiOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIGlmIChlbGVtZW50ID09ICJ7ey5tYXBwaW5nLnRhYmxlLnBsYXlsaXN0fX0iKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLm9uY2xpY2sgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5vbmNsaWNrRnVuY3Rpb24gPSAiamF2YXNjcmlwdDogc29ydFRhYmxlKDUpOyI7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgaWYgKGVsZW1lbnQgPT0gInt7Lm1hcHBpbmcudGFibGUuZ3JvdXBUaXRsZX19Iikgew0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5vbmNsaWNrID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwub25jbGlja0Z1bmN0aW9uID0gImphdmFzY3JpcHQ6IHNvcnRUYWJsZSg2KTsiOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIGlmIChlbGVtZW50ID09ICJ7ey5tYXBwaW5nLnRhYmxlLnRpbWVzaGlmdH19Iikgew0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5vbmNsaWNrID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwub25jbGlja0Z1bmN0aW9uID0gImphdmFzY3JpcHQ6IHNvcnRUYWJsZSg5KTsiOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIGlmIChtZW51S2V5ID09ICJmaWx0ZXIiKSB7DQogICAgICAgICAgICAgICAgICAgIGlmIChlbGVtZW50ID09ICJ7ey5maWx0ZXIudGFibGUuc3RhcnRpbmdDaGFubmVsfX0iKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLm9uY2xpY2sgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5vbmNsaWNrRnVuY3Rpb24gPSAiamF2YXNjcmlwdDogc29ydFRhYmxlKDApOyI7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnRkQ2xhc3NOYW1lID0gInNvcnRUaGlzIjsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBpZiAoZWxlbWVudCA9PSAie3suZmlsdGVyLnRhYmxlLm5hbWV9fSIpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwub25jbGljayA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLm9uY2xpY2tGdW5jdGlvbiA9ICJqYXZhc2NyaXB0OiBzb3J0VGFibGUoMSk7IjsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBpZiAoZWxlbWVudCA9PSAie3suZmlsdGVyLnRhYmxlLnR5cGV9fSIpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwub25jbGljayA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLm9uY2xpY2tGdW5jdGlvbiA9ICJqYXZhc2NyaXB0OiBzb3J0VGFibGUoMik7IjsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBpZiAoZWxlbWVudCA9PSAie3suZmlsdGVyLnRhYmxlLmZpbHRlcn19Iikgew0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5vbmNsaWNrID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwub25jbGlja0Z1bmN0aW9uID0gImphdmFzY3JpcHQ6IHNvcnRUYWJsZSgzKTsiOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIGhlYWRlci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICB9KTsNCiAgICAgICAgICAgIHRhYmxlLmFwcGVuZENoaWxkKGhlYWRlcik7DQogICAgICAgICAgICAvLyBDb250ZW50IG9mIHRoZSB0YWJsZQ0KICAgICAgICAgICAgdmFyIHJvd3MgPSB0aGlzLmNyZWF0ZVRhYmxlQ29udGVudChtZW51S2V5KTsNCiAgICAgICAgICAgIHJvd3MuZm9yRWFjaCh0ciA9PiB7DQogICAgICAgICAgICAgICAgdGFibGUuYXBwZW5kQ2hpbGQodHIpOw0KICAgICAgICAgICAgfSk7DQogICAgICAgIH0NCiAgICAgICAgc3dpdGNoIChtZW51S2V5KSB7DQogICAgICAgICAgICBjYXNlICJtYXBwaW5nIjoNCiAgICAgICAgICAgICAgICBzb3J0VGFibGUoMSk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJmaWx0ZXIiOg0KICAgICAgICAgICAgICAgIHNob3dQcmV2aWV3KHRydWUpOw0KICAgICAgICAgICAgICAgIHNvcnRUYWJsZSgwKTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICAgICAgQ09MVU1OX1RPX1NPUlQgPSAtMTsNCiAgICAgICAgICAgICAgICBzb3J0VGFibGUoMCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIH0NCiAgICAgICAgc2hvd0VsZW1lbnQoImxvYWRpbmciLCBmYWxzZSk7DQogICAgfQ0KfQ0KZnVuY3Rpb24gUGFnZVJlYWR5KCkgew0KICAgIGxldCBzZXJ2ZXIgPSBuZXcgU2VydmVyKCJnZXRTZXJ2ZXJDb25maWciKTsNCiAgICBzZXJ2ZXIucmVxdWVzdCh7fSk7DQogICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoInJlc2l6ZSIsIGZ1bmN0aW9uICgpIHsNCiAgICAgICAgY2FsY3VsYXRlV3JhcHBlckhlaWdodCgpOw0KICAgIH0sIHRydWUpOw0KICAgIHNldEludGVydmFsKGZ1bmN0aW9uICgpIHsNCiAgICAgICAgdXBkYXRlTG9nKCk7DQogICAgfSwgMTAwMDApOw0KICAgIHJldHVybjsNCn0NCmZ1bmN0aW9uIGNyZWF0ZUxheW91dCgpIHsNCiAgICAvLyBDbGllbnQgSW5mbw0KICAgIGxldCBvYmogPSBTRVJWRVJbImNsaWVudEluZm8iXTsNCiAgICBsZXQga2V5cyA9IGdldE93bk9ialByb3BzKG9iaik7DQogICAgZm9yICh2YXIgaSA9IDA7IGkgPCBrZXlzLmxlbmd0aDsgaSsrKSB7DQogICAgICAgIGlmIChkb2N1bWVudC5nZXRFbGVtZW50QnlJZChrZXlzW2ldKSkgew0KICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoa2V5c1tpXSkuaW5uZXJIVE1MID0gb2JqW2tleXNbaV1dOw0KICAgICAgICB9DQogICAgfQ0KICAgIGlmICghZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm1haW4tbWVudSIpKSB7DQogICAgICAgIHJldHVybjsNCiAgICB9DQogICAgLy8gQ3JlYXRlIG1lbnUNCiAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibWFpbi1tZW51IikuaW5uZXJIVE1MID0gIiI7DQogICAgZm9yIChsZXQgaSA9IDA7IGkgPCBtZW51SXRlbXMubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgbWVudUl0ZW1zW2ldLmlkID0gaTsNCiAgICAgICAgc3dpdGNoIChtZW51SXRlbXNbaV1bIm1lbnVLZXkiXSkgew0KICAgICAgICAgICAgY2FzZSAidXNlcnMiOg0KICAgICAgICAgICAgY2FzZSAibG9nb3V0IjoNCiAgICAgICAgICAgICAgICBpZiAoU0VSVkVSWyJzZXR0aW5ncyJdWyJhdXRoZW50aWNhdGlvbi53ZWIiXSA9PSB0cnVlKSB7DQogICAgICAgICAgICAgICAgICAgIG1lbnVJdGVtc1tpXS5jcmVhdGVJdGVtKCk7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAibWFwcGluZyI6DQogICAgICAgICAgICBjYXNlICJ4bWx0diI6DQogICAgICAgICAgICAgICAgaWYgKFNFUlZFUlsiY2xpZW50SW5mbyJdWyJlcGdTb3VyY2UiXSA9PSAiWEVQRyIpIHsNCiAgICAgICAgICAgICAgICAgICAgbWVudUl0ZW1zW2ldLmNyZWF0ZUl0ZW0oKTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBkZWZhdWx0Og0KICAgICAgICAgICAgICAgIG1lbnVJdGVtc1tpXS5jcmVhdGVJdGVtKCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIH0NCiAgICB9DQogICAgcmV0dXJuOw0KfQ0KZnVuY3Rpb24gb3BlblRoaXNNZW51KGVsZW1lbnQpIHsNCiAgICBsZXQgaWQgPSBlbGVtZW50LmlkOw0KICAgIGxldCBjb250ZW50ID0gbmV3IFNob3dDb250ZW50KGlkKTsNCiAgICBjb250ZW50LnNob3coKTsNCiAgICBjYWxjdWxhdGVXcmFwcGVySGVpZ2h0KCk7DQogICAgcmV0dXJuOw0KfQ0KY2xhc3MgUG9wdXBXaW5kb3cgew0KICAgIGNvbnN0cnVjdG9yKCkgew0KICAgICAgICB0aGlzLkRvY3VtZW50SUQgPSAicG9wdXAtY3VzdG9tIjsNCiAgICAgICAgdGhpcy5JbnRlcmFjdGlvbklEID0gImludGVyYWN0aW9uIjsNCiAgICAgICAgdGhpcy5kb2MgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCh0aGlzLkRvY3VtZW50SUQpOw0KICAgIH0NCiAgICBjcmVhdGVUaXRsZSh0aXRsZSkgew0KICAgICAgICBsZXQgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICB0ZC5jbGFzc05hbWUgPSAibGVmdCI7DQogICAgICAgIHRkLmlubmVySFRNTCA9IHRpdGxlICsgIjoiOw0KICAgICAgICByZXR1cm4gdGQ7DQogICAgfQ0KICAgIGNyZWF0ZUNvbnRlbnQoZWxlbWVudCkgew0KICAgICAgICBsZXQgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICB0ZC5hcHBlbmRDaGlsZChlbGVtZW50KTsNCiAgICAgICAgcmV0dXJuIHRkOw0KICAgIH0NCiAgICBjcmVhdGVJbnRlcmFjdGlvbigpIHsNCiAgICAgICAgbGV0IGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOw0KICAgICAgICBkaXYuc2V0QXR0cmlidXRlKCJpZCIsICJwb3B1cC1pbnRlcmFjdGlvbiIpOw0KICAgICAgICBkaXYuY2xhc3NOYW1lID0gImludGVyYWN0aW9uIjsNCiAgICAgICAgdGhpcy5kb2MuYXBwZW5kQ2hpbGQoZGl2KTsNCiAgICB9DQp9DQpjbGFzcyBQb3B1cENvbnRlbnQgZXh0ZW5kcyBQb3B1cFdpbmRvdyB7DQogICAgY29uc3RydWN0b3IoKSB7DQogICAgICAgIHN1cGVyKC4uLmFyZ3VtZW50cyk7DQogICAgICAgIHRoaXMudGFibGUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJUQUJMRSIpOw0KICAgIH0NCiAgICBjcmVhdGVIZWFkbGluZShoZWFkbGluZSkgew0KICAgICAgICB0aGlzLmRvYy5pbm5lckhUTUwgPSAiIjsNCiAgICAgICAgdmFyIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJIMyIpOw0KICAgICAgICBlbGVtZW50LmlubmVySFRNTCA9IGhlYWRsaW5lLnRvVXBwZXJDYXNlKCk7DQogICAgICAgIHRoaXMuZG9jLmFwcGVuZENoaWxkKGVsZW1lbnQpOw0KICAgICAgICAvLyBDcmVhdGUgdGFibGUNCiAgICAgICAgdGhpcy50YWJsZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlRBQkxFIik7DQogICAgICAgIHRoaXMuZG9jLmFwcGVuZENoaWxkKHRoaXMudGFibGUpOw0KICAgIH0NCiAgICBhcHBlbmRSb3codGl0bGUsIGVsZW1lbnQpIHsNCiAgICAgICAgbGV0IHRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVFIiKTsNCiAgICAgICAgLy8gVGl0bGUNCiAgICAgICAgaWYgKHRpdGxlLmxlbmd0aCAhPSAwKSB7DQogICAgICAgICAgICB0ci5hcHBlbmRDaGlsZCh0aGlzLmNyZWF0ZVRpdGxlKHRpdGxlKSk7DQogICAgICAgIH0NCiAgICAgICAgLy8gQ29udGVudA0KICAgICAgICB0ci5hcHBlbmRDaGlsZCh0aGlzLmNyZWF0ZUNvbnRlbnQoZWxlbWVudCkpOw0KICAgICAgICB0aGlzLnRhYmxlLmFwcGVuZENoaWxkKHRyKTsNCiAgICB9DQogICAgY3JlYXRlSW5wdXQodHlwZSwgbmFtZSwgdmFsdWUpIHsNCiAgICAgICAgbGV0IGlucHV0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiSU5QVVQiKTsNCiAgICAgICAgaWYgKHZhbHVlID09IHVuZGVmaW5lZCkgew0KICAgICAgICAgICAgdmFsdWUgPSAiIjsNCiAgICAgICAgfQ0KICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInR5cGUiLCB0eXBlKTsNCiAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJuYW1lIiwgbmFtZSk7DQogICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgidmFsdWUiLCB2YWx1ZSk7DQogICAgICAgIHJldHVybiBpbnB1dDsNCiAgICB9DQogICAgY3JlYXRlQ2hlY2tib3gobmFtZSkgew0KICAgICAgICBsZXQgaW5wdXQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJJTlBVVCIpOw0KICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInR5cGUiLCAiY2hlY2tib3giKTsNCiAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJuYW1lIiwgbmFtZSk7DQogICAgICAgIHJldHVybiBpbnB1dDsNCiAgICB9DQogICAgLy8gQ3JlYXRlcyBhIHNlbGVjdGlvbiBvZiBtdWx0aXBsZSBvcHRpb25zIHZhbHVlcyB3aXRoIHRleHQgZGVzY3JpcHRpb25zDQogICAgY3JlYXRlU2VsZWN0KHRleHQsIHZhbHVlcywgc2V0LCBkYktleSkgew0KICAgICAgICBsZXQgc2VsZWN0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiU0VMRUNUIik7DQogICAgICAgIHNlbGVjdC5zZXRBdHRyaWJ1dGUoIm5hbWUiLCBkYktleSk7DQogICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGV4dC5sZW5ndGg7IGkrKykgew0KICAgICAgICAgICAgbGV0IG9wdGlvbiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIk9QVElPTiIpOw0KICAgICAgICAgICAgb3B0aW9uLnNldEF0dHJpYnV0ZSgidmFsdWUiLCB2YWx1ZXNbaV0pOw0KICAgICAgICAgICAgb3B0aW9uLmlubmVyVGV4dCA9IHRleHRbaV07DQogICAgICAgICAgICBzZWxlY3QuYXBwZW5kQ2hpbGQob3B0aW9uKTsNCiAgICAgICAgfQ0KICAgICAgICBpZiAoc2V0ICE9ICIiKSB7DQogICAgICAgICAgICBzZWxlY3QudmFsdWUgPSBzZXQ7DQogICAgICAgIH0NCiAgICAgICAgaWYgKHNldCA9PSB1bmRlZmluZWQpIHsNCiAgICAgICAgICAgIHNlbGVjdC52YWx1ZSA9IHZhbHVlc1swXTsNCiAgICAgICAgfQ0KICAgICAgICByZXR1cm4gc2VsZWN0Ow0KICAgIH0NCiAgICBzZWxlY3RPcHRpb24oc2VsZWN0LCB2YWx1ZSkgew0KICAgICAgICAvL3NlbGVjdC5zZWxlY3RlZE9wdGlvbnMgPSB2YWx1ZQ0KICAgICAgICBsZXQgcyA9IHNlbGVjdDsNCiAgICAgICAgcy5vcHRpb25zW3Muc2VsZWN0ZWRJbmRleF0udmFsdWUgPSB2YWx1ZTsNCiAgICAgICAgcmV0dXJuIHNlbGVjdDsNCiAgICB9DQogICAgZGVzY3JpcHRpb24odmFsdWUpIHsNCiAgICAgICAgbGV0IHRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVFIiKTsNCiAgICAgICAgbGV0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgbGV0IHNwYW4gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJQUkUiKTsNCiAgICAgICAgc3Bhbi5pbm5lckhUTUwgPSB2YWx1ZTsNCiAgICAgICAgdHIuYXBwZW5kQ2hpbGQodGQpOw0KICAgICAgICB0ci5hcHBlbmRDaGlsZCh0aGlzLmNyZWF0ZUNvbnRlbnQoc3BhbikpOw0KICAgICAgICB0aGlzLnRhYmxlLmFwcGVuZENoaWxkKHRyKTsNCiAgICB9DQogICAgLy8gSW50ZXJhY3Rpb24NCiAgICBhZGRJbnRlcmFjdGlvbihlbGVtZW50KSB7DQogICAgICAgIGxldCBpbnRlcmFjdGlvbiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJwb3B1cC1pbnRlcmFjdGlvbiIpOw0KICAgICAgICBpbnRlcmFjdGlvbi5hcHBlbmRDaGlsZChlbGVtZW50KTsNCiAgICB9DQp9DQpmdW5jdGlvbiBvcGVuUG9wVXAoZGF0YVR5cGUsIGVsZW1lbnQpIHsNCiAgICBsZXQgZGF0YSA9IHt9Ow0KICAgIGxldCBpZDsNCiAgICBzd2l0Y2ggKGVsZW1lbnQpIHsNCiAgICAgICAgY2FzZSB1bmRlZmluZWQ6DQogICAgICAgICAgICBzd2l0Y2ggKGRhdGFUeXBlKSB7DQogICAgICAgICAgICAgICAgY2FzZSAiZ3JvdXAtdGl0bGUiOg0KICAgICAgICAgICAgICAgICAgICBpZiAoaWQgPT0gdW5kZWZpbmVkKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBpZCA9IC0xOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIGRhdGEgPSBnZXRMb2NhbERhdGEoImZpbHRlciIsIGlkKTsNCiAgICAgICAgICAgICAgICAgICAgZGF0YVsidHlwZSJdID0gImdyb3VwLXRpdGxlIjsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAiY3VzdG9tLWZpbHRlciI6DQogICAgICAgICAgICAgICAgICAgIGlmIChpZCA9PSB1bmRlZmluZWQpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGlkID0gLTE7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgZGF0YSA9IGdldExvY2FsRGF0YSgiZmlsdGVyIiwgaWQpOw0KICAgICAgICAgICAgICAgICAgICBkYXRhWyJ0eXBlIl0gPSAiY3VzdG9tLWZpbHRlciI7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICAgICAgICAgIGRhdGFbImlkLnByb3ZpZGVyIl0gPSAiLSI7DQogICAgICAgICAgICAgICAgICAgIGRhdGFbInR5cGUiXSA9IGRhdGFUeXBlOw0KICAgICAgICAgICAgICAgICAgICBpZCA9ICItIjsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgIGlkID0gZWxlbWVudC5pZDsNCiAgICAgICAgICAgIGRhdGEgPSBnZXRMb2NhbERhdGEoZGF0YVR5cGUsIGlkKTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgIH0NCiAgICBsZXQgY29udGVudCA9IG5ldyBQb3B1cENvbnRlbnQoKTsNCiAgICBzd2l0Y2ggKGRhdGFUeXBlKSB7DQogICAgICAgIGNhc2UgInBsYXlsaXN0IjoNCiAgICAgICAgICAgIGNvbnRlbnQuY3JlYXRlSGVhZGxpbmUoInt7LnBsYXlsaXN0LnBsYXlsaXN0VHlwZS50aXRsZX19Iik7DQogICAgICAgICAgICAvLyBUeXBlDQogICAgICAgICAgICB2YXIgdGV4dCA9IFsiTTNVIiwgIkhESG9tZVJ1biJdOw0KICAgICAgICAgICAgdmFyIHZhbHVlcyA9IFsiamF2YXNjcmlwdDogb3BlblBvcFVwKCdtM3UnKSIsICJqYXZhc2NyaXB0OiBvcGVuUG9wVXAoJ2hkaHInKSJdOw0KICAgICAgICAgICAgdmFyIHNlbGVjdCA9IGNvbnRlbnQuY3JlYXRlU2VsZWN0KHRleHQsIHZhbHVlcywgIiIsICJ0eXBlIik7DQogICAgICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJpZCIsICJ0eXBlIik7DQogICAgICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICdqYXZhc2NyaXB0OiBjaGFuZ2VCdXR0b25BY3Rpb24odGhpcywgIm5leHQiLCAib25jbGljayIpJyk7IC8vIGNoYW5nZUJ1dHRvbkFjdGlvbg0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnBsYXlsaXN0LnR5cGUudGl0bGV9fSIsIHNlbGVjdCk7DQogICAgICAgICAgICAvLyBJbnRlcmFjdGlvbg0KICAgICAgICAgICAgY29udGVudC5jcmVhdGVJbnRlcmFjdGlvbigpOw0KICAgICAgICAgICAgLy8gQWJvcnQNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJjYW5jZWwiLCAie3suYnV0dG9uLmNhbmNlbH19Iik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogc2hvd0VsZW1lbnQoInBvcHVwIiwgZmFsc2UpOycpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICAvLyBOZXh0DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAibmV4dCIsICJ7ey5idXR0b24ubmV4dH19Iik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJtM3UiKScpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJpZCIsICduZXh0Jyk7DQogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJtM3UiOg0KICAgICAgICAgICAgY29udGVudC5jcmVhdGVIZWFkbGluZShkYXRhVHlwZSk7DQogICAgICAgICAgICAvLyBOYW1lDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAibmFtZSI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3sucGxheWxpc3QubmFtZS5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sucGxheWxpc3QubmFtZS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgLy8gRGVzY3JpcHRpb24NCiAgICAgICAgICAgIHZhciBkYktleSA9ICJkZXNjcmlwdGlvbiI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3sucGxheWxpc3QuZGVzY3JpcHRpb24ucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnBsYXlsaXN0LmRlc2NyaXB0aW9uLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBVUkwNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJmaWxlLnNvdXJjZSI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3sucGxheWxpc3QuZmlsZU0zVS5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sucGxheWxpc3QuZmlsZU0zVS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgLy8gVHVuZXINCiAgICAgICAgICAgIGlmIChTRVJWRVJbInNldHRpbmdzIl1bImJ1ZmZlciJdICE9ICItIikgew0KICAgICAgICAgICAgICAgIHZhciB0ZXh0ID0gW107DQogICAgICAgICAgICAgICAgdmFyIHZhbHVlcyA9IFtdOw0KICAgICAgICAgICAgICAgIGZvciAodmFyIGkgPSAxOyBpIDw9IDEwMDsgaSsrKSB7DQogICAgICAgICAgICAgICAgICAgIHRleHQucHVzaChpLnRvU3RyaW5nKCkpOw0KICAgICAgICAgICAgICAgICAgICB2YWx1ZXMucHVzaChpLnRvU3RyaW5nKCkpOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB2YXIgZGJLZXkgPSAidHVuZXIiOw0KICAgICAgICAgICAgICAgIHZhciBzZWxlY3QgPSBjb250ZW50LmNyZWF0ZVNlbGVjdCh0ZXh0LCB2YWx1ZXMsIGRhdGFbZGJLZXldLCBkYktleSk7DQogICAgICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25mb2N1cyIsICJqYXZhc2NyaXB0OiByZXR1cm47Iik7DQogICAgICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnBsYXlsaXN0LnR1bmVyLnRpdGxlfX0iLCBzZWxlY3QpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgZWxzZSB7DQogICAgICAgICAgICAgICAgdmFyIGRiS2V5ID0gInR1bmVyIjsNCiAgICAgICAgICAgICAgICBpZiAoZGF0YVtkYktleV0gPT0gdW5kZWZpbmVkKSB7DQogICAgICAgICAgICAgICAgICAgIGRhdGFbZGJLZXldID0gMTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJyZWFkb25seSIsICJ0cnVlIik7DQogICAgICAgICAgICAgICAgaW5wdXQuY2xhc3NOYW1lID0gIm5vdEF2YWlsYWJsZSI7DQogICAgICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnBsYXlsaXN0LnR1bmVyLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBjb250ZW50LmRlc2NyaXB0aW9uKCJ7ey5wbGF5bGlzdC50dW5lci5kZXNjcmlwdGlvbn19Iik7DQogICAgICAgICAgICAvLyBJbnRlcmF0aW9uDQogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUludGVyYWN0aW9uKCk7DQogICAgICAgICAgICAvLyBEZWxldGUNCiAgICAgICAgICAgIGlmIChkYXRhWyJpZC5wcm92aWRlciJdICE9ICItIikgew0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJkZWxldGUiLCAie3suYnV0dG9uLmRlbGV0ZX19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuY2xhc3NOYW1lID0gImRlbGV0ZSI7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoIm0zdSIsICInICsgaWQgKyAnIiwgdHJ1ZSwgMCknKTsNCiAgICAgICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJiYWNrIiwgInt7LmJ1dHRvbi5iYWNrfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJwbGF5bGlzdCIpJyk7DQogICAgICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICAvLyBBYm9ydA0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImNhbmNlbCIsICJ7ey5idXR0b24uY2FuY2VsfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBzaG93RWxlbWVudCgicG9wdXAiLCBmYWxzZSk7Jyk7DQogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIC8vIFVwZGF0ZQ0KICAgICAgICAgICAgaWYgKGRhdGFbImlkLnByb3ZpZGVyIl0gIT0gIi0iKSB7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgInVwZGF0ZSIsICJ7ey5idXR0b24udXBkYXRlfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogc2F2ZVBvcHVwRGF0YSgibTN1IiwgIicgKyBpZCArICciLCBmYWxzZSwgMSknKTsNCiAgICAgICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIC8vIFNhdmUNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJzYXZlIiwgInt7LmJ1dHRvbi5zYXZlfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBzYXZlUG9wdXBEYXRhKCJtM3UiLCAiJyArIGlkICsgJyIsIGZhbHNlLCAwKScpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSAiaGRociI6DQogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUhlYWRsaW5lKGRhdGFUeXBlKTsNCiAgICAgICAgICAgIC8vIE5hbWUNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJuYW1lIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5wbGF5bGlzdC5uYW1lLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5wbGF5bGlzdC5uYW1lLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBEZXNjcmlwdGlvbg0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gImRlc2NyaXB0aW9uIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5wbGF5bGlzdC5kZXNjcmlwdGlvbi5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sucGxheWxpc3QuZGVzY3JpcHRpb24ucGxhY2Vob2xkZXJ9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIFVSTA0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gImZpbGUuc291cmNlIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5wbGF5bGlzdC5maWxlSERIUi5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sucGxheWxpc3QuZmlsZUhESFIudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIFR1bmVyDQogICAgICAgICAgICBpZiAoU0VSVkVSWyJzZXR0aW5ncyJdWyJidWZmZXIiXSAhPSAiLSIpIHsNCiAgICAgICAgICAgICAgICB2YXIgdGV4dCA9IFtdOw0KICAgICAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBbXTsNCiAgICAgICAgICAgICAgICBmb3IgKHZhciBpID0gMTsgaSA8PSAxMDA7IGkrKykgew0KICAgICAgICAgICAgICAgICAgICB0ZXh0LnB1c2goaS50b1N0cmluZygpKTsNCiAgICAgICAgICAgICAgICAgICAgdmFsdWVzLnB1c2goaS50b1N0cmluZygpKTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgdmFyIGRiS2V5ID0gInR1bmVyIjsNCiAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCBkYXRhW2RiS2V5XSwgZGJLZXkpOw0KICAgICAgICAgICAgICAgIHNlbGVjdC5zZXRBdHRyaWJ1dGUoIm9uZm9jdXMiLCAiamF2YXNjcmlwdDogcmV0dXJuOyIpOw0KICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5wbGF5bGlzdC50dW5lci50aXRsZX19Iiwgc2VsZWN0KTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgICAgIHZhciBkYktleSA9ICJ0dW5lciI7DQogICAgICAgICAgICAgICAgaWYgKGRhdGFbZGJLZXldID09IHVuZGVmaW5lZCkgew0KICAgICAgICAgICAgICAgICAgICBkYXRhW2RiS2V5XSA9IDE7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicmVhZG9ubHkiLCAidHJ1ZSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LmNsYXNzTmFtZSA9ICJub3RBdmFpbGFibGUiOw0KICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5wbGF5bGlzdC50dW5lci50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgY29udGVudC5kZXNjcmlwdGlvbigie3sucGxheWxpc3QudHVuZXIuZGVzY3JpcHRpb259fSIpOw0KICAgICAgICAgICAgLy8gSW50ZXJhY3Rpb24NCiAgICAgICAgICAgIGNvbnRlbnQuY3JlYXRlSW50ZXJhY3Rpb24oKTsNCiAgICAgICAgICAgIC8vIERlbGV0ZQ0KICAgICAgICAgICAgaWYgKGRhdGFbImlkLnByb3ZpZGVyIl0gIT0gIi0iKSB7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImRlbGV0ZSIsICJ7ey5idXR0b24uZGVsZXRlfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogc2F2ZVBvcHVwRGF0YSgiaGRociIsICInICsgaWQgKyAnIiwgdHJ1ZSwgMCknKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5jbGFzc05hbWUgPSAiZGVsZXRlIjsNCiAgICAgICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJiYWNrIiwgInt7LmJ1dHRvbi5iYWNrfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJwbGF5bGlzdCIpJyk7DQogICAgICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICAvLyBBYm9ydA0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImNhbmNlbCIsICJ7ey5idXR0b24uY2FuY2VsfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBzaG93RWxlbWVudCgicG9wdXAiLCBmYWxzZSk7Jyk7DQogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIC8vIFVwZGF0ZQ0KICAgICAgICAgICAgaWYgKGRhdGFbImlkLnByb3ZpZGVyIl0gIT0gIi0iKSB7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgInVwZGF0ZSIsICJ7ey5idXR0b24udXBkYXRlfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogc2F2ZVBvcHVwRGF0YSgiaGRociIsICInICsgaWQgKyAnIiwgZmFsc2UsIDEpJyk7DQogICAgICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICAvLyBTYXZlDQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAic2F2ZSIsICJ7ey5idXR0b24uc2F2ZX19Iik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogc2F2ZVBvcHVwRGF0YSgiaGRociIsICInICsgaWQgKyAnIiwgZmFsc2UsIDApJyk7DQogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJmaWx0ZXIiOg0KICAgICAgICAgICAgY29udGVudC5jcmVhdGVIZWFkbGluZShkYXRhVHlwZSk7DQogICAgICAgICAgICAvLyBUeXBlDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAidHlwZSI7DQogICAgICAgICAgICB2YXIgdGV4dCA9IFsiTTNVOiAiICsgInt7LmZpbHRlci50eXBlLmdyb3VwVGl0bGV9fSIsICJ4VGVWZTogIiArICJ7ey5maWx0ZXIudHlwZS5jdXN0b21GaWx0ZXJ9fSJdOw0KICAgICAgICAgICAgdmFyIHZhbHVlcyA9IFsiamF2YXNjcmlwdDogb3BlblBvcFVwKCdncm91cC10aXRsZScpIiwgImphdmFzY3JpcHQ6IG9wZW5Qb3BVcCgnY3VzdG9tLWZpbHRlcicpIl07DQogICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCAiamF2YXNjcmlwdDogb3BlblBvcFVwKCdncm91cC10aXRsZScpIiwgZGJLZXkpOw0KICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgiaWQiLCBpZCk7DQogICAgICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICdqYXZhc2NyaXB0OiBjaGFuZ2VCdXR0b25BY3Rpb24odGhpcywgIm5leHQiLCAib25jbGljayIpOycpOyAvLyBjaGFuZ2VCdXR0b25BY3Rpb24NCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5maWx0ZXIudHlwZS50aXRsZX19Iiwgc2VsZWN0KTsNCiAgICAgICAgICAgIC8vIEludGVyYWN0aW9uDQogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUludGVyYWN0aW9uKCk7DQogICAgICAgICAgICAvLyBBYm9ydA0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImNhbmNlbCIsICJ7ey5idXR0b24uY2FuY2VsfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBzaG93RWxlbWVudCgicG9wdXAiLCBmYWxzZSk7Jyk7DQogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIC8vIE5leHQNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJuZXh0IiwgInt7LmJ1dHRvbi5uZXh0fX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoImdyb3VwLXRpdGxlIiknKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgiaWQiLCAnbmV4dCcpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSAiY3VzdG9tLWZpbHRlciI6DQogICAgICAgIGNhc2UgImdyb3VwLXRpdGxlIjoNCiAgICAgICAgICAgIHN3aXRjaCAoZGF0YVR5cGUpIHsNCiAgICAgICAgICAgICAgICBjYXNlICJjdXN0b20tZmlsdGVyIjoNCiAgICAgICAgICAgICAgICAgICAgY29udGVudC5jcmVhdGVIZWFkbGluZSgie3suZmlsdGVyLmN1c3RvbX19IiArICIgRmlsdGVyIik7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgImdyb3VwLXRpdGxlIjoNCiAgICAgICAgICAgICAgICAgICAgY29udGVudC5jcmVhdGVIZWFkbGluZSgie3suZmlsdGVyLmdyb3VwfX0iICsgIiBGaWx0ZXIiKTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICB9DQogICAgICAgICAgICAvLyBOYW1lICAgICAgDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAibmFtZSI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3suZmlsdGVyLm5hbWUucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LmZpbHRlci5uYW1lLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBEZXNjcmlwdGlvbg0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gImRlc2NyaXB0aW9uIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5maWx0ZXIuZGVzY3JpcHRpb24ucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LmZpbHRlci5kZXNjcmlwdGlvbi50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgLy8gVHlwZQ0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gInR5cGUiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiaGlkZGVuIiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCIiLCBpbnB1dCk7DQogICAgICAgICAgICB2YXIgZmlsdGVyVHlwZSA9IGRhdGFbZGJLZXldOw0KICAgICAgICAgICAgc3dpdGNoIChmaWx0ZXJUeXBlKSB7DQogICAgICAgICAgICAgICAgY2FzZSAiY3VzdG9tLWZpbHRlciI6DQogICAgICAgICAgICAgICAgICAgIC8vIENhc2Ugc2Vuc2l0aXZlDQogICAgICAgICAgICAgICAgICAgIHZhciBkYktleSA9ICJjYXNlU2Vuc2l0aXZlIjsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChkYktleSk7DQogICAgICAgICAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhW2RiS2V5XTsNCiAgICAgICAgICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LmZpbHRlci5jYXNlU2Vuc2l0aXZlLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAgICAgICAgIC8vIEZpbHRlciBSdWxlIChDdXN0b20pDQogICAgICAgICAgICAgICAgICAgIHZhciBkYktleSA9ICJmaWx0ZXIiOw0KICAgICAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5maWx0ZXIuZmlsdGVyUnVsZS5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5maWx0ZXIuZmlsdGVyUnVsZS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgICAgICAgICAvLyBTdGFydGluZyBDaGFubmVsIE51bWJlciBNYXBwaW5nDQogICAgICAgICAgICAgICAgICAgIHZhciBkYktleSA9ICJzdGFydGluZ0NoYW5uZWwiOw0KICAgICAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5maWx0ZXIuc3RhcnRpbmdDaGFubmVsLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LmZpbHRlci5zdGFydGluZ0NoYW5uZWwudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAiZ3JvdXAtdGl0bGUiOg0KICAgICAgICAgICAgICAgICAgICAvL2FsZXJ0KGRiS2V5ICsgIiAiICsgZmlsdGVyVHlwZSkNCiAgICAgICAgICAgICAgICAgICAgLy8gRmlsdGVyIGJhc2VkIG9uIHRoZSBncm91cHMgaW4gdGhlIE0zVQ0KICAgICAgICAgICAgICAgICAgICB2YXIgZGJLZXkgPSAiZmlsdGVyIjsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGdyb3Vwc00zVSA9IGdldExvY2FsRGF0YSgibTN1R3JvdXBzIiwgIiIpOw0KICAgICAgICAgICAgICAgICAgICB2YXIgdGV4dCA9IGdyb3Vwc00zVVsidGV4dCJdOw0KICAgICAgICAgICAgICAgICAgICB2YXIgdmFsdWVzID0gZ3JvdXBzTTNVWyJ2YWx1ZSJdOw0KICAgICAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCBkYXRhW2RiS2V5XSwgZGJLZXkpOw0KICAgICAgICAgICAgICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3suZmlsdGVyLmZpbHRlckdyb3VwLnRpdGxlfX0iLCBzZWxlY3QpOw0KICAgICAgICAgICAgICAgICAgICBjb250ZW50LmRlc2NyaXB0aW9uKCJ7ey5maWx0ZXIuZmlsdGVyR3JvdXAuZGVzY3JpcHRpb259fSIpOw0KICAgICAgICAgICAgICAgICAgICAvLyBDYXNlIHNlbnNldGl2ZQ0KICAgICAgICAgICAgICAgICAgICB2YXIgZGJLZXkgPSAiY2FzZVNlbnNpdGl2ZSI7DQogICAgICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goZGJLZXkpOw0KICAgICAgICAgICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YVtkYktleV07DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5maWx0ZXIuY2FzZVNlbnNpdGl2ZS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgICAgICAgICB2YXIgZGJLZXkgPSAiaW5jbHVkZSI7DQogICAgICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LmZpbHRlci5pbmNsdWRlLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LmZpbHRlci5pbmNsdWRlLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuZGVzY3JpcHRpb24oInt7LmZpbHRlci5pbmNsdWRlLmRlc2NyaXB0aW9ufX0iKTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGRiS2V5ID0gImV4Y2x1ZGUiOw0KICAgICAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5maWx0ZXIuZXhjbHVkZS5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5maWx0ZXIuZXhjbHVkZS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgICAgICAgICBjb250ZW50LmRlc2NyaXB0aW9uKCJ7ey5maWx0ZXIuZXhjbHVkZS5kZXNjcmlwdGlvbn19Iik7DQogICAgICAgICAgICAgICAgICAgIC8vIFByZXNlcnZlIE0zVSBQbGF5bGlzdCBDaGFubmVsIE1hcHBpbmcNCiAgICAgICAgICAgICAgICAgICAgdmFyIGRiS2V5ID0gInByZXNlcnZlTWFwcGluZyI7DQogICAgICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goZGJLZXkpOw0KICAgICAgICAgICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YVtkYktleV07DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5maWx0ZXIucHJlc2VydmVNYXBwaW5nLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAgICAgICAgIC8vIFN0YXJ0aW5nIENoYW5uZWwgTnVtYmVyIE1hcHBpbmcNCiAgICAgICAgICAgICAgICAgICAgdmFyIGRiS2V5ID0gInN0YXJ0aW5nQ2hhbm5lbCI7DQogICAgICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LmZpbHRlci5zdGFydGluZ0NoYW5uZWwucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3suZmlsdGVyLnN0YXJ0aW5nQ2hhbm5lbC50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgICAgICAgICAvLyBGaWxsIE1pc3NpbmcgRVBHIERhdGENCiAgICAgICAgICAgICAgICAgICAgLy8gVGhlIGZvbGxvd2luZyBjb2RlIG9ubHkgd29ya3Mgd2hlbiB4VGVWZSBEdW1teSBhbHJlYWR5IGV4aXN0cw0KICAgICAgICAgICAgICAgICAgICAvLyB2YXIgZGJLZXk6c3RyaW5nID0gImRlZmF1bHRNaXNzaW5nRVBHIg0KICAgICAgICAgICAgICAgICAgICAvLyB2YXIgeG1sdHY6WE1MVFZGaWxlID0gbmV3IFhNTFRWRmlsZSgpDQogICAgICAgICAgICAgICAgICAgIC8vIHZhciBzZWxlY3QgPSB4bWx0di5nZXRQcm9ncmFtcygieFRlVmUgRHVtbXkiLCBkYXRhW2RiS2V5XSkNCiAgICAgICAgICAgICAgICAgICAgLy8gc2VsZWN0LnNldEF0dHJpYnV0ZSgibmFtZSIsIGRiS2V5KQ0KICAgICAgICAgICAgICAgICAgICAvLyBzZWxlY3Quc2V0QXR0cmlidXRlKCJpZCIsICJwb3B1cC1taXNzaW5nLWVwZyIpDQogICAgICAgICAgICAgICAgICAgIC8vIFRoZSB3b3JrYXJvdW5kIGlzIGN1cnJlbnRseSB0byBoYXJkIGNvZGUgdGhlIHhUZVZlIER1bW15IGRhdGENCiAgICAgICAgICAgICAgICAgICAgdmFyIGRiS2V5ID0gImRlZmF1bHRNaXNzaW5nRVBHIjsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGxpc3RPcHRpb25zID0geyAidGV4dCI6IFsiLSIsICIzMCBNaW51dGVzICgzMF9NaW51dGVzKSIsICI2MCBNaW51dGVzICg2MF9NaW51dGVzKSIsICI5MCBNaW51dGVzICg5MF9NaW51dGVzKSIsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgIjEyMCBNaW51dGVzICgxMjBfTWludXRlcykiLCAiMTgwIE1pbnV0ZXMgKDMwX01pbnV0ZXMpIiwgIjI0MCBNaW51dGVzICgzMF9NaW51dGVzKSIsICIzNjAgTWludXRlcyAoMzBfTWludXRlcykiXSwNCiAgICAgICAgICAgICAgICAgICAgICAgICJ2YWx1ZSI6IFsiLSIsICIzMF9NaW51dGVzIiwgIjYwX01pbnV0ZXMiLCAiOTBfTWludXRlcyIsICIxMjBfTWludXRlcyIsICIxODBfTWludXRlcyIsICIyNDBfTWludXRlcyIsICIzNjBfTWludXRlcyIsXSB9Ow0KICAgICAgICAgICAgICAgICAgICB2YXIgdGV4dCA9IGxpc3RPcHRpb25zWyJ0ZXh0Il07DQogICAgICAgICAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBsaXN0T3B0aW9uc1sidmFsdWUiXTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHNlbGVjdCA9IGNvbnRlbnQuY3JlYXRlU2VsZWN0KHRleHQsIHZhbHVlcywgZGF0YVtkYktleV0sIGRiS2V5KTsNCiAgICAgICAgICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LmZpbHRlci5kZWZhdWx0TWlzc2luZ0VQRy50aXRsZX19Iiwgc2VsZWN0KTsNCiAgICAgICAgICAgICAgICAgICAgY29udGVudC5kZXNjcmlwdGlvbigie3suZmlsdGVyLmRlZmF1bHRNaXNzaW5nRVBHLmRlc2NyaXB0aW9ufX0iKTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICB9DQogICAgICAgICAgICAvLyBJbnRlcmFjdGlvbg0KICAgICAgICAgICAgY29udGVudC5jcmVhdGVJbnRlcmFjdGlvbigpOw0KICAgICAgICAgICAgLy8gRGVsZXRlDQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAiZGVsZXRlIiwgInt7LmJ1dHRvbi5kZWxldGV9fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoImZpbHRlciIsICInICsgaWQgKyAnIiwgdHJ1ZSwgMCknKTsNCiAgICAgICAgICAgIGlucHV0LmNsYXNzTmFtZSA9ICJkZWxldGUiOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICAvLyBBYm9ydA0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImNhbmNlbCIsICJ7ey5idXR0b24uY2FuY2VsfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBzaG93RWxlbWVudCgicG9wdXAiLCBmYWxzZSk7Jyk7DQogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIC8vIFNhdmUNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJzYXZlIiwgInt7LmJ1dHRvbi5zYXZlfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBzYXZlUG9wdXBEYXRhKCJmaWx0ZXIiLCAiJyArIGlkICsgJyIsIGZhbHNlLCAwKScpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSAieG1sdHYiOg0KICAgICAgICAgICAgY29udGVudC5jcmVhdGVIZWFkbGluZShkYXRhVHlwZSk7DQogICAgICAgICAgICAvLyBOYW1lDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAibmFtZSI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3sueG1sdHYubmFtZS5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sueG1sdHYubmFtZS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgLy8gRGVzY3JpcHRpb24NCiAgICAgICAgICAgIHZhciBkYktleSA9ICJkZXNjcmlwdGlvbiI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3sueG1sdHYuZGVzY3JpcHRpb24ucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnhtbHR2LmRlc2NyaXB0aW9uLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBVUkwNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJmaWxlLnNvdXJjZSI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3sueG1sdHYuZmlsZVhNTFRWLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey54bWx0di5maWxlWE1MVFYudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIEludGVyYWN0aW9uDQogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUludGVyYWN0aW9uKCk7DQogICAgICAgICAgICAvLyBEZWxldGUNCiAgICAgICAgICAgIGlmIChkYXRhWyJpZC5wcm92aWRlciJdICE9ICItIikgew0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJkZWxldGUiLCAie3suYnV0dG9uLmRlbGV0ZX19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoInhtbHR2IiwgIicgKyBpZCArICciLCB0cnVlLCAwKScpOw0KICAgICAgICAgICAgICAgIGlucHV0LmNsYXNzTmFtZSA9ICJkZWxldGUiOw0KICAgICAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgLy8gQWJvcnQNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJjYW5jZWwiLCAie3suYnV0dG9uLmNhbmNlbH19Iik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogc2hvd0VsZW1lbnQoInBvcHVwIiwgZmFsc2UpOycpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICAvLyBVcGRhdGUNCiAgICAgICAgICAgIGlmIChkYXRhWyJpZC5wcm92aWRlciJdICE9ICItIikgew0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJ1cGRhdGUiLCAie3suYnV0dG9uLnVwZGF0ZX19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoInhtbHR2IiwgIicgKyBpZCArICciLCBmYWxzZSwgMSknKTsNCiAgICAgICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIC8vIFNhdmUNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJzYXZlIiwgInt7LmJ1dHRvbi5zYXZlfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBzYXZlUG9wdXBEYXRhKCJ4bWx0diIsICInICsgaWQgKyAnIiwgZmFsc2UsIDApJyk7DQogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJ1c2VycyI6DQogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUhlYWRsaW5lKCJ7ey5tYWluTWVudS5pdGVtLnVzZXJzfX0iKTsNCiAgICAgICAgICAgIC8vIFVzZXIgbmFtZQ0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gInVzZXJuYW1lIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey51c2Vycy51c2VybmFtZS5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sudXNlcnMudXNlcm5hbWUudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIE5ldyBQYXJzc3dvcmQNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJwYXNzd29yZCI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJwYXNzd29yZCIsIGRiS2V5LCAiIik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnVzZXJzLnBhc3N3b3JkLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey51c2Vycy5wYXNzd29yZC50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgLy8gQ29uZmlybWF0aW9uDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAiY29uZmlybSI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJwYXNzd29yZCIsIGRiS2V5LCAiIik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnVzZXJzLmNvbmZpcm0ucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnVzZXJzLmNvbmZpcm0udGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIEF1dGhlbnRpY2F0aW9uIFdFQg0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gImF1dGhlbnRpY2F0aW9uLndlYiI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KGRiS2V5KTsNCiAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhW2RiS2V5XTsNCiAgICAgICAgICAgIGlmIChkYXRhWyJkZWZhdWx0VXNlciJdID09IHRydWUpIHsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAiamF2YXNjcmlwdDogcmV0dXJuIGZhbHNlIik7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sudXNlcnMud2ViLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBBdXRoZW50aWNhdGlvbiBQTVMNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJhdXRoZW50aWNhdGlvbi5wbXMiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChkYktleSk7DQogICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YVtkYktleV07DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sudXNlcnMucG1zLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBBdXRoZW50aWNhdGlvbiBNM1UNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJhdXRoZW50aWNhdGlvbi5tM3UiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChkYktleSk7DQogICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YVtkYktleV07DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sudXNlcnMubTN1LnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBBdXRoZW50aWNhdGlvbiBYTUwNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJhdXRoZW50aWNhdGlvbi54bWwiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChkYktleSk7DQogICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YVtkYktleV07DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sudXNlcnMueG1sLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBBdXRoZW50aWNhdGlvbiBBUEkNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJhdXRoZW50aWNhdGlvbi5hcGkiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChkYktleSk7DQogICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YVtkYktleV07DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sudXNlcnMuYXBpLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBJbnRlcmFjdGlvbg0KICAgICAgICAgICAgY29udGVudC5jcmVhdGVJbnRlcmFjdGlvbigpOw0KICAgICAgICAgICAgLy8gRGVsZXRlDQogICAgICAgICAgICBpZiAoZGF0YVsiZGVmYXVsdFVzZXIiXSAhPSB0cnVlICYmIGlkICE9ICItIikgew0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJkZWxldGUiLCAie3suYnV0dG9uLmRlbGV0ZX19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuY2xhc3NOYW1lID0gImRlbGV0ZSI7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoIicgKyBkYXRhVHlwZSArICciLCAiJyArIGlkICsgJyIsIHRydWUsIDApJyk7DQogICAgICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICAvLyBBYm9ydA0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImNhbmNlbCIsICJ7ey5idXR0b24uY2FuY2VsfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBzaG93RWxlbWVudCgicG9wdXAiLCBmYWxzZSk7Jyk7DQogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIC8vIFNhdmUNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJzYXZlIiwgInt7LmJ1dHRvbi5zYXZlfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBzYXZlUG9wdXBEYXRhKCInICsgZGF0YVR5cGUgKyAnIiwgIicgKyBpZCArICciLCAiZmFsc2UiKTsnKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGNhc2UgIm1hcHBpbmciOg0KICAgICAgICAgICAgY29udGVudC5jcmVhdGVIZWFkbGluZSgie3subWFpbk1lbnUuaXRlbS5tYXBwaW5nfX0iKTsNCiAgICAgICAgICAgIC8vIEFjdGl2ZQ0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gIngtYWN0aXZlIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goZGJLZXkpOw0KICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGFbZGJLZXldOw0KICAgICAgICAgICAgaW5wdXQuaWQgPSAiYWN0aXZlIjsNCiAgICAgICAgICAgIC8vaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpDQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRvZ2dsZUNoYW5uZWxTdGF0dXMoJyIgKyBpZCArICInLCB0aGlzKSIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7Lm1hcHBpbmcuYWN0aXZlLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBDaGFubmVsIG5hbWUNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJ4LW5hbWUiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICBpZiAoQlVMS19FRElUID09IHRydWUpIHsNCiAgICAgICAgICAgICAgICBpbnB1dC5zdHlsZS5ib3JkZXIgPSAic29saWQgMXB4IHJlZCI7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJyZWFkb25seSIsICJ0cnVlIik7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3subWFwcGluZy5jaGFubmVsTmFtZS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgY29udGVudC5kZXNjcmlwdGlvbihkYXRhWyJuYW1lIl0pOw0KICAgICAgICAgICAgLy8gRGVzY3JpcHRpb24NCiAgICAgICAgICAgIHZhciBkYktleSA9ICJ4LWRlc2NyaXB0aW9uIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5tYXBwaW5nLmRlc2NyaXB0aW9uLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5tYXBwaW5nLmRlc2NyaXB0aW9uLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBVcGRhdGUgdGhlIGNoYW5uZWwgeC1uYW1lDQogICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgiX3V1aWQua2V5IikpIHsNCiAgICAgICAgICAgICAgICBpZiAoZGF0YVsiX3V1aWQua2V5Il0gIT0gIiIpIHsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGRiS2V5ID0gIngtdXBkYXRlLWNoYW5uZWwtbmFtZSI7DQogICAgICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goZGJLZXkpOw0KICAgICAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhW2RiS2V5XTsNCiAgICAgICAgICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7Lm1hcHBpbmcudXBkYXRlQ2hhbm5lbE5hbWUudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9DQogICAgICAgICAgICAvLyBDaGFubmVsIG5hbWUgcmVnZXggZm9yIHVwZGF0aW5nIHRoZSBjaGFubmVsIG5hbWUNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJ1cGRhdGUtY2hhbm5lbC1uYW1lLXJlZ2V4IjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5tYXBwaW5nLnVwZGF0ZUNoYW5uZWxOYW1lUmVnZXgucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7Lm1hcHBpbmcudXBkYXRlQ2hhbm5lbE5hbWVSZWdleC50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgY29udGVudC5kZXNjcmlwdGlvbigie3subWFwcGluZy51cGRhdGVDaGFubmVsTmFtZVJlZ2V4LmRlc2NyaXB0aW9ufX0iKTsNCiAgICAgICAgICAgIC8vIENoYW5uZWwgZ3JvdXAgcmVnZXggZm9yIHVwZGF0aW5nIHRoZSBjaGFubmVsIG5hbWUNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJ1cGRhdGUtY2hhbm5lbC1uYW1lLWJ5LWdyb3VwLXJlZ2V4IjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5tYXBwaW5nLnVwZGF0ZUNoYW5uZWxOYW1lQnlHcm91cFJlZ2V4LnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5tYXBwaW5nLnVwZGF0ZUNoYW5uZWxOYW1lQnlHcm91cFJlZ2V4LnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICBjb250ZW50LmRlc2NyaXB0aW9uKCJ7ey5tYXBwaW5nLnVwZGF0ZUNoYW5uZWxOYW1lQnlHcm91cFJlZ2V4LmRlc2NyaXB0aW9ufX0iKTsNCiAgICAgICAgICAgIC8vIExvZ28gVVJMIChDaGFubmVsKSANCiAgICAgICAgICAgIHZhciBkYktleSA9ICJ0dmctbG9nbyI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgiaWQiLCAiY2hhbm5lbC1pY29uIik7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3subWFwcGluZy5jaGFubmVsTG9nby50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgLy8gQ2hhbm5lbCBsb2dvIHVwZGF0ZQ0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gIngtdXBkYXRlLWNoYW5uZWwtaWNvbiI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KGRiS2V5KTsNCiAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhW2RiS2V5XTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgiaWQiLCAidXBkYXRlLWljb24iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCc7IGNoYW5nZUNoYW5uZWxMb2dvKCciICsgaWQgKyAiJyk7Iik7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3subWFwcGluZy51cGRhdGVDaGFubmVsTG9nby50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgLy8gRXhwYW5kIEVQRyBjYXRlZ29yeQ0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gIngtY2F0ZWdvcnkiOw0KICAgICAgICAgICAgdmFyIHRleHQgPSBbIi0iLCAiS2lkcyAoRW1ieSBvbmx5KSIsICJOZXdzIiwgIk1vdmllIiwgIlNlcmllcyIsICJTcG9ydHMiXTsNCiAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBbIiIsICJLaWRzIiwgIk5ld3MiLCAiTW92aWUiLCAiU2VyaWVzIiwgIlNwb3J0cyJdOw0KICAgICAgICAgICAgdmFyIHNlbGVjdCA9IGNvbnRlbnQuY3JlYXRlU2VsZWN0KHRleHQsIHZhbHVlcywgZGF0YVtkYktleV0sIGRiS2V5KTsNCiAgICAgICAgICAgIHNlbGVjdC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3subWFwcGluZy5lcGdDYXRlZ29yeS50aXRsZX19Iiwgc2VsZWN0KTsNCiAgICAgICAgICAgIC8vIE0zVSBncm91cCB0aXRsZQ0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gIngtZ3JvdXAtdGl0bGUiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICBpbnB1dC5kYXRhc2V0Lm9sZFZhbHVlID0gZGF0YVtkYktleV07DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3subWFwcGluZy5tM3VHcm91cFRpdGxlLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICBpZiAoZGF0YVsiZ3JvdXAtdGl0bGUiXSAhPSB1bmRlZmluZWQpIHsNCiAgICAgICAgICAgICAgICBjb250ZW50LmRlc2NyaXB0aW9uKGRhdGFbImdyb3VwLXRpdGxlIl0pOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgaWYgKGRhdGFbIngtdXBkYXRlLWNoYW5uZWwtZ3JvdXAiXSA9PSB0cnVlKSB7DQogICAgICAgICAgICAgICAgaW5wdXQuZGlzYWJsZWQgPSB0cnVlOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgLy8gVXBkYXRlIGNoYW5uZWwgZ3JvdXAgY2hlY2tib3gNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJ4LXVwZGF0ZS1jaGFubmVsLWdyb3VwIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goZGJLZXkpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0b2dnbGVHcm91cFVwZGF0ZUNiKCciICsgaWQgKyAiJywgdGhpcyk7Iik7DQogICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YVtkYktleV07DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3subWFwcGluZy51cGRhdGVDaGFubmVsR3JvdXAudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIGNvbnRlbnQuZGVzY3JpcHRpb24oInt7Lm1hcHBpbmcudXBkYXRlQ2hhbm5lbEdyb3VwLmRlc2NyaXB0aW9ufX0iKTsNCiAgICAgICAgICAgIC8vIFhNTFRWIGZpbGUNCiAgICAgICAgICAgIHZhciBkYktleSA9ICd4LXhtbHR2LWZpbGUnOw0KICAgICAgICAgICAgY29uc3QgeG1sVHZGaWxlID0gZGF0YVtkYktleV07DQogICAgICAgICAgICB2YXIgeG1sVHYgPSBuZXcgWE1MVFZGaWxlKCk7DQogICAgICAgICAgICBjb25zdCB4bWxUdkZpbGVTZWxlY3QgPSB4bWxUdi5nZXRGaWxlcyhkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICB4bWxUdkZpbGVTZWxlY3Quc2V0QXR0cmlidXRlKCduYW1lJywgZGJLZXkpOw0KICAgICAgICAgICAgeG1sVHZGaWxlU2VsZWN0LnNldEF0dHJpYnV0ZSgnaWQnLCAncG9wdXAteG1sdHYnKTsNCiAgICAgICAgICAgIHhtbFR2RmlsZVNlbGVjdC5zZXRBdHRyaWJ1dGUoJ29uY2hhbmdlJywgYGphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnOyBzZXRYbWx0dkNoYW5uZWwoJyR7aWR9JywgdGhpcyk7YCk7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygne3subWFwcGluZy54bWx0dkZpbGUudGl0bGV9fScsIHhtbFR2RmlsZVNlbGVjdCk7DQogICAgICAgICAgICAvLyBYTUxUViBNYXBwaW5nDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAneC1tYXBwaW5nJzsNCiAgICAgICAgICAgIHZhciB4bWxUdiA9IG5ldyBYTUxUVkZpbGUoKTsNCiAgICAgICAgICAgIGNvbnN0IGN1cnJlbnRYbWxUdklkID0gZGF0YVtkYktleV07DQogICAgICAgICAgICBjb25zdCBbeG1sVHZJZENvbnRhaW5lciwgeG1sVHZJZElucHV0LCB4bWxUdklkRGF0YWxpc3RdID0geG1sVHYubmV3WG1sVHZJZFBpY2tlcih4bWxUdkZpbGUsIGN1cnJlbnRYbWxUdklkKTsNCiAgICAgICAgICAgIHhtbFR2SWRDb250YWluZXIuc2V0QXR0cmlidXRlKCdpZCcsICd4bWx0di1pZC1waWNrZXItY29udGFpbmVyJyk7DQogICAgICAgICAgICB4bWxUdklkSW5wdXQuc2V0QXR0cmlidXRlKCdsaXN0JywgJ3htbHR2LWlkLXBpY2tlci1kYXRhbGlzdCcpOw0KICAgICAgICAgICAgeG1sVHZJZElucHV0LnNldEF0dHJpYnV0ZSgnbmFtZScsICd4LW1hcHBpbmcnKTsgLy8gU2hvdWxkIHN0YXkgeC1tYXBwaW5nIGFzIGl0IHdpbGwgYmUgdXNlZCBpbiBkb25lUG9wdXBEYXRhIHRvIG1ha2UgYSBzZXJ2ZXIgcmVxdWVzdA0KICAgICAgICAgICAgeG1sVHZJZElucHV0LnNldEF0dHJpYnV0ZSgnaWQnLCAneG1sdHYtaWQtcGlja2VyLWlucHV0Jyk7DQogICAgICAgICAgICB4bWxUdklkSW5wdXQuc2V0QXR0cmlidXRlKCdvbmNoYW5nZScsIGBqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJzsgY2hlY2tYbWx0dkNoYW5uZWwoJyR7aWR9JywgdGhpcy52YWx1ZSwgJyR7eG1sVHZGaWxlfScpO2ApOw0KICAgICAgICAgICAgeG1sVHZJZERhdGFsaXN0LnNldEF0dHJpYnV0ZSgnaWQnLCAneG1sdHYtaWQtcGlja2VyLWRhdGFsaXN0Jyk7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygne3subWFwcGluZy54bWx0dkNoYW5uZWwudGl0bGV9fScsIHhtbFR2SWRDb250YWluZXIpOw0KICAgICAgICAgICAgLy8gVGltZXNoaWZ0DQogICAgICAgICAgICB2YXIgZGJLZXkgPSAieC10aW1lc2hpZnQiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7Lm1hcHBpbmcudGltZXNoaWZ0LnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgiaWQiLCAidGltZXNoaWZ0Iik7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3subWFwcGluZy50aW1lc2hpZnQudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIEludGVyYWN0aW9uDQogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUludGVyYWN0aW9uKCk7DQogICAgICAgICAgICAvLyBVcGxvYWQgbG9nbw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImNhbmNlbCIsICJ7ey5idXR0b24udXBsb2FkTG9nb319Iik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogdXBsb2FkTG9nbygpOycpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICAvLyBBYm9ydA0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImNhbmNlbCIsICJ7ey5idXR0b24uY2FuY2VsfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBzaG93RWxlbWVudCgicG9wdXAiLCBmYWxzZSk7Jyk7DQogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIC8vIEZpbmlzaGVkDQogICAgICAgICAgICB2YXIgaWRzID0gW107DQogICAgICAgICAgICBpZHMgPSBnZXRBbGxTZWxlY3RlZENoYW5uZWxzKCk7DQogICAgICAgICAgICBpZiAoaWRzLmxlbmd0aCA9PSAwKSB7DQogICAgICAgICAgICAgICAgaWRzLnB1c2goaWQpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgInNhdmUiLCAie3suYnV0dG9uLmRvbmV9fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IGRvbmVQb3B1cERhdGEoIicgKyBkYXRhVHlwZSArICciLCAiJyArIGlkcyArICciLCAiZmFsc2UiKTsnKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICBicmVhazsNCiAgICB9DQogICAgc2hvd1BvcFVwRWxlbWVudCgncG9wdXAtY3VzdG9tJyk7DQp9DQpjbGFzcyBYTUxUVkZpbGUgew0KICAgIGdldEZpbGVzKHNldCkgew0KICAgICAgICBsZXQgZmlsZUlEcyA9IGdldE93bk9ialByb3BzKFNFUlZFUlsieGVwZyJdWyJ4bWx0dk1hcCJdKTsNCiAgICAgICAgbGV0IHZhbHVlcyA9IG5ldyBBcnJheSgiLSIpOw0KICAgICAgICBsZXQgdGV4dCA9IG5ldyBBcnJheSgiLSIpOw0KICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGZpbGVJRHMubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgICAgIGlmIChmaWxlSURzW2ldICE9ICJ4VGVWZSBEdW1teSIpIHsNCiAgICAgICAgICAgICAgICB2YWx1ZXMucHVzaChnZXRWYWx1ZUZyb21Qcm92aWRlckZpbGUoZmlsZUlEc1tpXSwgInhtbHR2IiwgImZpbGUueHRldmUiKSk7DQogICAgICAgICAgICAgICAgdGV4dC5wdXNoKGdldFZhbHVlRnJvbVByb3ZpZGVyRmlsZShmaWxlSURzW2ldLCAieG1sdHYiLCAibmFtZSIpKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgICAgIHZhbHVlcy5wdXNoKGZpbGVJRHNbaV0pOw0KICAgICAgICAgICAgICAgIHRleHQucHVzaChmaWxlSURzW2ldKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KICAgICAgICBsZXQgc2VsZWN0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiU0VMRUNUIik7DQogICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGV4dC5sZW5ndGg7IGkrKykgew0KICAgICAgICAgICAgdmFyIG9wdGlvbiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIk9QVElPTiIpOw0KICAgICAgICAgICAgb3B0aW9uLnNldEF0dHJpYnV0ZSgidmFsdWUiLCB2YWx1ZXNbaV0pOw0KICAgICAgICAgICAgb3B0aW9uLmlubmVyVGV4dCA9IHRleHRbaV07DQogICAgICAgICAgICBzZWxlY3QuYXBwZW5kQ2hpbGQob3B0aW9uKTsNCiAgICAgICAgfQ0KICAgICAgICBpZiAoc2V0ICE9ICIiKSB7DQogICAgICAgICAgICBzZWxlY3QudmFsdWUgPSBzZXQ7DQogICAgICAgIH0NCiAgICAgICAgcmV0dXJuIHNlbGVjdDsNCiAgICB9DQogICAgLyoqDQogICAgICogQHBhcmFtIHhtbFR2RmlsZSBYTUwgZmlsZSBwYXRoIHRvIGdldCBFUEcgZnJvbS4NCiAgICAgKiBAcGFyYW0gY3VycmVudFhtbFR2SWQgQ3VycmVudCBYTUxUViBJRCB0byBzZXQgaW5pdGlhbCBpbnB1dCB2YWx1ZSB0by4NCiAgICAgKiBAcmV0dXJucyBBcnJheSBvZiwgc2VxdWVudGlhbGx5Og0KICAgICAqIDEpIENvbnRhaW5lciBvZiB0aGUgcGlja2VyLg0KICAgICAqIDIpIElucHV0IGZpZWxkIHRvIHR5cGUgYXQgYW5kIGdldCBjaG9pY2UgZnJvbS4NCiAgICAgKiAzKSBEYXRhbGlzdCBjb250YWluaW5nIGV2ZXJ5IG9wdGlvbi4NCiAgICAgKi8NCiAgICBuZXdYbWxUdklkUGlja2VyKHhtbFR2RmlsZSwgY3VycmVudFhtbFR2SWQpIHsNCiAgICAgICAgY29uc3QgY29udGFpbmVyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7DQogICAgICAgIGNvbnN0IGlucHV0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnaW5wdXQnKTsNCiAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCd0eXBlJywgJ3RleHQnKTsNCiAgICAgICAgLy8gSW5pdGlhbGx5LCBzZXQgdmFsdWUgdG8gJy0nIGlmIGlucHV0IGlzIGVtcHR5DQogICAgICAgIGlucHV0LnZhbHVlID0gKGN1cnJlbnRYbWxUdklkKSA/IGN1cnJlbnRYbWxUdklkIDogJy0nOw0KICAgICAgICAvLyBXaGVuIGlucHV0IGlzIGZvY3VzZWQsIHJlbW92ZSAnLScgZnJvbSBpdA0KICAgICAgICBpbnB1dC5hZGRFdmVudExpc3RlbmVyKCdmb2N1cycsIChldnQpID0+IHsNCiAgICAgICAgICAgIGNvbnN0IHRhcmdldCA9IGV2dC50YXJnZXQ7DQogICAgICAgICAgICB0YXJnZXQudmFsdWUgPSAodGFyZ2V0LnZhbHVlID09PSAnLScpID8gJycgOiB0YXJnZXQudmFsdWU7DQogICAgICAgIH0pOw0KICAgICAgICAvLyBXaGVuIGlucHV0IGxvc2UgZm9jdXMgb3IgdGFrZSBhIHZhbHVlLCBpZiBpdCdzIGVtcHR5LCBzZXQgdmFsdWUgdG8gJy0nDQogICAgICAgIGlucHV0LmFkZEV2ZW50TGlzdGVuZXIoJ2JsdXInLCBzZXRGYWxsYmFja1ZhbHVlKTsNCiAgICAgICAgaW5wdXQuYWRkRXZlbnRMaXN0ZW5lcignY2hhbmdlJywgc2V0RmFsbGJhY2tWYWx1ZSk7DQogICAgICAgIGZ1bmN0aW9uIHNldEZhbGxiYWNrVmFsdWUoZXZ0KSB7DQogICAgICAgICAgICBjb25zdCB0YXJnZXQgPSBldnQudGFyZ2V0Ow0KICAgICAgICAgICAgdGFyZ2V0LnZhbHVlID0gKHRhcmdldC52YWx1ZSkgPyB0YXJnZXQudmFsdWUgOiAnLSc7DQogICAgICAgIH0NCiAgICAgICAgY29udGFpbmVyLmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgY29uc3QgZGF0YWxpc3QgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkYXRhbGlzdCcpOw0KICAgICAgICBjb25zdCBvcHRpb24gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdvcHRpb24nKTsNCiAgICAgICAgb3B0aW9uLnNldEF0dHJpYnV0ZSgndmFsdWUnLCAnLScpOw0KICAgICAgICBvcHRpb24uaW5uZXJUZXh0ID0gJy0nOw0KICAgICAgICBkYXRhbGlzdC5hcHBlbmRDaGlsZChvcHRpb24pOw0KICAgICAgICBjb25zdCBlcGcgPSBTRVJWRVJbJ3hlcGcnXVsneG1sdHZNYXAnXVt4bWxUdkZpbGVdOw0KICAgICAgICBpZiAoZXBnKSB7DQogICAgICAgICAgICBjb25zdCBwcm9ncmFtSWRzID0gZ2V0T3duT2JqUHJvcHMoZXBnKTsNCiAgICAgICAgICAgIHByb2dyYW1JZHMuZm9yRWFjaCgocHJvZ3JhbUlkKSA9PiB7DQogICAgICAgICAgICAgICAgY29uc3QgcHJvZ3JhbSA9IGVwZ1twcm9ncmFtSWRdOw0KICAgICAgICAgICAgICAgIGlmIChwcm9ncmFtLmhhc093blByb3BlcnR5KCdkaXNwbGF5LW5hbWVzJykpIHsNCiAgICAgICAgICAgICAgICAgICAgcHJvZ3JhbVsnZGlzcGxheS1uYW1lcyddLmZvckVhY2goKGRpc3BsYXlOYW1lKSA9PiB7DQogICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBvcHRpb24gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdvcHRpb24nKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIG9wdGlvbi5zZXRBdHRyaWJ1dGUoJ3ZhbHVlJywgcHJvZ3JhbUlkKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIG9wdGlvbi5pbm5lclRleHQgPSBkaXNwbGF5TmFtZVsnVmFsdWUnXTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGRhdGFsaXN0LmFwcGVuZENoaWxkKG9wdGlvbik7DQogICAgICAgICAgICAgICAgICAgIH0pOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICAgICAgY29uc3Qgb3B0aW9uID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnb3B0aW9uJyk7DQogICAgICAgICAgICAgICAgICAgIG9wdGlvbi5zZXRBdHRyaWJ1dGUoJ3ZhbHVlJywgcHJvZ3JhbUlkKTsNCiAgICAgICAgICAgICAgICAgICAgb3B0aW9uLmlubmVyVGV4dCA9ICctJzsNCiAgICAgICAgICAgICAgICAgICAgZGF0YWxpc3QuYXBwZW5kQ2hpbGQob3B0aW9uKTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9KTsNCiAgICAgICAgfQ0KICAgICAgICBjb250YWluZXIuYXBwZW5kQ2hpbGQoZGF0YWxpc3QpOw0KICAgICAgICByZXR1cm4gW2NvbnRhaW5lciwgaW5wdXQsIGRhdGFsaXN0XTsNCiAgICB9DQp9DQpmdW5jdGlvbiBnZXRWYWx1ZUZyb21Qcm92aWRlckZpbGUoZmlsZSwgZmlsZVR5cGUsIGtleSkgew0KICAgIGlmIChmaWxlID09ICJ4VGVWZSBEdW1teSIpIHsNCiAgICAgICAgcmV0dXJuIGZpbGU7DQogICAgfQ0KICAgIGxldCBmaWxlSUQ7DQogICAgbGV0IGluZGljYXRvciA9IGZpbGUuY2hhckF0KDApOw0KICAgIHN3aXRjaCAoaW5kaWNhdG9yKSB7DQogICAgICAgIGNhc2UgIk0iOg0KICAgICAgICAgICAgZmlsZVR5cGUgPSAibTN1IjsNCiAgICAgICAgICAgIGZpbGVJRCA9IGZpbGU7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSAiSCI6DQogICAgICAgICAgICBmaWxlVHlwZSA9ICJoZGhyIjsNCiAgICAgICAgICAgIGZpbGVJRCA9IGZpbGU7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSAiWCI6DQogICAgICAgICAgICBmaWxlVHlwZSA9ICJ4bWx0diI7DQogICAgICAgICAgICBmaWxlSUQgPSBmaWxlLnN1YnN0cmluZygwLCBmaWxlLmxhc3RJbmRleE9mKCcuJykpOw0KICAgICAgICAgICAgYnJlYWs7DQogICAgfQ0KICAgIGlmIChTRVJWRVJbInNldHRpbmdzIl1bImZpbGVzIl1bZmlsZVR5cGVdLmhhc093blByb3BlcnR5KGZpbGVJRCkgPT0gdHJ1ZSkgew0KICAgICAgICB2YXIgZGF0YSA9IFNFUlZFUlsic2V0dGluZ3MiXVsiZmlsZXMiXVtmaWxlVHlwZV1bZmlsZUlEXTsNCiAgICAgICAgcmV0dXJuIGRhdGFba2V5XTsNCiAgICB9DQogICAgcmV0dXJuOw0KfQ0KZnVuY3Rpb24gc2V0WG1sdHZDaGFubmVsKGVwZ01hcElkLCB4bWxUdkZpbGVTZWxlY3QpIHsNCiAgICBjb25zdCB4bWxUdiA9IG5ldyBYTUxUVkZpbGUoKTsNCiAgICBjb25zdCBuZXdYbWxUdkZpbGUgPSB4bWxUdkZpbGVTZWxlY3QudmFsdWU7DQogICAgLy8gUmVtb3ZlIG9sZCBYTUxUViBJRCBzZWxlY3Rpb24gYm94DQogICAgY29uc3QgeG1sVHZJZFBpY2tlclBhcmVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd4bWx0di1pZC1waWNrZXItY29udGFpbmVyJykucGFyZW50RWxlbWVudDsNCiAgICB4bWxUdklkUGlja2VyUGFyZW50LmlubmVySFRNTCA9ICcnOw0KICAgIC8vIENyZWF0ZSBuZXcgWE1MVFYgSUQgc2VsZWN0aW9uIGJveA0KICAgIGNvbnN0IHR2Z0lkID0gU0VSVkVSWyd4ZXBnJ11bJ2VwZ01hcHBpbmcnXVtlcGdNYXBJZF1bJ3R2Zy1pZCddOw0KICAgIGNvbnN0IFt4bWxUdklkQ29udGFpbmVyLCB4bWxUdklkSW5wdXQsIHhtbFR2SWREYXRhbGlzdF0gPSB4bWxUdi5uZXdYbWxUdklkUGlja2VyKG5ld1htbFR2RmlsZSwgdHZnSWQpOw0KICAgIHhtbFR2SWRDb250YWluZXIuc2V0QXR0cmlidXRlKCdpZCcsICd4bWx0di1pZC1waWNrZXItY29udGFpbmVyJyk7DQogICAgeG1sVHZJZElucHV0LnNldEF0dHJpYnV0ZSgnbGlzdCcsICd4bWx0di1pZC1waWNrZXItZGF0YWxpc3QnKTsNCiAgICB4bWxUdklkSW5wdXQuc2V0QXR0cmlidXRlKCduYW1lJywgJ3gtbWFwcGluZycpOyAvLyBTaG91bGQgc3RheSB4LW1hcHBpbmcgYXMgaXQgd2lsbCBiZSB1c2VkIGluIGRvbmVQb3B1cERhdGEgdG8gbWFrZSBhIHNlcnZlciByZXF1ZXN0DQogICAgeG1sVHZJZElucHV0LnNldEF0dHJpYnV0ZSgnaWQnLCAneG1sdHYtaWQtcGlja2VyLWlucHV0Jyk7DQogICAgeG1sVHZJZElucHV0LnNldEF0dHJpYnV0ZSgnb25jaGFuZ2UnLCBgamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCc7IGNoZWNrWG1sdHZDaGFubmVsKCcke2VwZ01hcElkfScsIHRoaXMudmFsdWUsICcke25ld1htbFR2RmlsZX0nKTtgKTsNCiAgICB4bWxUdklkSW5wdXQuY2xhc3NMaXN0LmFkZCgnY2hhbmdlZCcpOw0KICAgIHhtbFR2SWREYXRhbGlzdC5zZXRBdHRyaWJ1dGUoJ2lkJywgJ3htbHR2LWlkLXBpY2tlci1kYXRhbGlzdCcpOw0KICAgIC8vIEFkZCBuZXcgWE1MVFYgSUQgc2VsZWN0aW9uIGJveCB0byBpdCdzIHBhcmVudA0KICAgIHhtbFR2SWRQaWNrZXJQYXJlbnQuYXBwZW5kQ2hpbGQoeG1sVHZJZENvbnRhaW5lcik7DQogICAgY2hlY2tYbWx0dkNoYW5uZWwoZXBnTWFwSWQsIHhtbFR2SWRJbnB1dC52YWx1ZSwgbmV3WG1sVHZGaWxlKTsNCn0NCmZ1bmN0aW9uIGNoZWNrWG1sdHZDaGFubmVsKGVwZ01hcElkLCBuZXdYbWxUdklkLCB4bWxUdkZpbGUpIHsNCiAgICBjb25zdCBjaGFubmVsQWN0aXZlQ2IgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYWN0aXZlJyk7DQogICAgY29uc3QgY2hhbm5lbEFjdGl2ZSA9IG5ld1htbFR2SWQgIT0gJy0nOw0KICAgIGNoYW5uZWxBY3RpdmVDYi5jaGVja2VkID0gY2hhbm5lbEFjdGl2ZTsNCiAgICBjaGFubmVsQWN0aXZlQ2IuY2xhc3NOYW1lID0gJ2NoYW5nZWQnOw0KICAgIGlmICh4bWxUdkZpbGUgIT0gJ3hUZVZlIER1bW15JyAmJiBjaGFubmVsQWN0aXZlID09IHRydWUpIHsNCiAgICAgICAgY2hhbmdlQ2hhbm5lbExvZ28oZXBnTWFwSWQpOw0KICAgICAgICByZXR1cm47DQogICAgfQ0KICAgIGlmICh4bWxUdkZpbGUgPT0gJ3hUZVZlIER1bW15Jykgew0KICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndXBkYXRlLWljb24nKS5jaGVja2VkID0gZmFsc2U7DQogICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd1cGRhdGUtaWNvbicpLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJzsNCiAgICB9DQp9DQpmdW5jdGlvbiBjaGFuZ2VDaGFubmVsTG9nbyhlcGdNYXBJZCkgew0KICAgIGNvbnN0IGNoYW5uZWwgPSBTRVJWRVJbJ3hlcGcnXVsnZXBnTWFwcGluZyddW2VwZ01hcElkXTsNCiAgICBjb25zdCB4bWxUdkZpbGVTZWxlY3QgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncG9wdXAteG1sdHYnKTsNCiAgICBjb25zdCB4bWxUdkZpbGUgPSB4bWxUdkZpbGVTZWxlY3Qub3B0aW9uc1t4bWxUdkZpbGVTZWxlY3Quc2VsZWN0ZWRJbmRleF0udmFsdWU7DQogICAgY29uc3QgeG1sVHZJZElucHV0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3htbHR2LWlkLXBpY2tlci1pbnB1dCcpOw0KICAgIGNvbnN0IG5ld1htbFR2SWQgPSB4bWxUdklkSW5wdXQudmFsdWU7DQogICAgY29uc3QgdXBkYXRlTG9nbyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd1cGRhdGUtaWNvbicpLmNoZWNrZWQ7DQogICAgbGV0IGxvZ287DQogICAgaWYgKHVwZGF0ZUxvZ28gPT0gdHJ1ZSAmJiB4bWxUdkZpbGUgIT0gJ3hUZVZlIER1bW15Jykgew0KICAgICAgICBpZiAoU0VSVkVSWyd4ZXBnJ11bJ3htbHR2TWFwJ11beG1sVHZGaWxlXS5oYXNPd25Qcm9wZXJ0eShuZXdYbWxUdklkKSkgew0KICAgICAgICAgICAgbG9nbyA9IFNFUlZFUlsneGVwZyddWyd4bWx0dk1hcCddW3htbFR2RmlsZV1bbmV3WG1sVHZJZF1bJ2ljb24nXTsNCiAgICAgICAgfQ0KICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgIGxvZ28gPSBjaGFubmVsWyd0dmctbG9nbyddOw0KICAgICAgICB9DQogICAgICAgIHZhciBsb2dvSW5wdXQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY2hhbm5lbC1pY29uJyk7DQogICAgICAgIGxvZ29JbnB1dC52YWx1ZSA9IGxvZ287DQogICAgICAgIGlmIChCVUxLX0VESVQgPT0gZmFsc2UpIHsNCiAgICAgICAgICAgIGxvZ29JbnB1dC5jbGFzc05hbWUgPSAnY2hhbmdlZCc7DQogICAgICAgIH0NCiAgICB9DQp9DQpmdW5jdGlvbiBzYXZlUG9wdXBEYXRhKGRhdGFUeXBlLCBpZCwgcmVtb3ZlLCBvcHRpb24pIHsNCiAgICBpZiAoZGF0YVR5cGUgPT0gIm1hcHBpbmciKSB7DQogICAgICAgIGxldCBkYXRhID0ge307DQogICAgICAgIGxldCBjbWQgPSAic2F2ZUVwZ01hcHBpbmciOw0KICAgICAgICBkYXRhWyJlcGdNYXBwaW5nIl0gPSBTRVJWRVJbInhlcGciXVsiZXBnTWFwcGluZyJdOw0KICAgICAgICBsZXQgc2VydmVyID0gbmV3IFNlcnZlcihjbWQpOw0KICAgICAgICBzZXJ2ZXIucmVxdWVzdChkYXRhKTsNCiAgICAgICAgZGVsZXRlIFVORE9bImVwZ01hcHBpbmciXTsNCiAgICAgICAgcmV0dXJuOw0KICAgIH0NCiAgICBsZXQgZGl2ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInBvcHVwLWN1c3RvbSIpOw0KICAgIGxldCBpbnB1dHMgPSBkaXYuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlRBQkxFIilbMF0uZ2V0RWxlbWVudHNCeVRhZ05hbWUoIklOUFVUIik7DQogICAgbGV0IHNlbGVjdHMgPSBkaXYuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlRBQkxFIilbMF0uZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlNFTEVDVCIpOw0KICAgIGxldCBpbnB1dCA9IHt9Ow0KICAgIGxldCBjb25maXJtTXNnOw0KICAgIGZvciAobGV0IGkgPSAwOyBpIDwgc2VsZWN0cy5sZW5ndGg7IGkrKykgew0KICAgICAgICB2YXIgbmFtZTsNCiAgICAgICAgbmFtZSA9IHNlbGVjdHNbaV0ubmFtZTsNCiAgICAgICAgdmFyIHZhbHVlID0gc2VsZWN0c1tpXS52YWx1ZTsNCiAgICAgICAgc3dpdGNoIChuYW1lKSB7DQogICAgICAgICAgICBjYXNlICJ0dW5lciI6DQogICAgICAgICAgICAgICAgaW5wdXRbbmFtZV0gPSBwYXJzZUludCh2YWx1ZSk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBkZWZhdWx0Og0KICAgICAgICAgICAgICAgIGlucHV0W25hbWVdID0gdmFsdWU7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIH0NCiAgICB9DQogICAgZm9yIChsZXQgaSA9IDA7IGkgPCBpbnB1dHMubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgc3dpdGNoIChpbnB1dHNbaV0udHlwZSkgew0KICAgICAgICAgICAgY2FzZSAiY2hlY2tib3giOg0KICAgICAgICAgICAgICAgIG5hbWUgPSBpbnB1dHNbaV0ubmFtZTsNCiAgICAgICAgICAgICAgICBpbnB1dFtuYW1lXSA9IGlucHV0c1tpXS5jaGVja2VkOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAidGV4dCI6DQogICAgICAgICAgICBjYXNlICJoaWRkZW4iOg0KICAgICAgICAgICAgY2FzZSAicGFzc3dvcmQiOg0KICAgICAgICAgICAgICAgIG5hbWUgPSBpbnB1dHNbaV0ubmFtZTsNCiAgICAgICAgICAgICAgICBzd2l0Y2ggKG5hbWUpIHsNCiAgICAgICAgICAgICAgICAgICAgY2FzZSAidHVuZXIiOg0KICAgICAgICAgICAgICAgICAgICAgICAgaW5wdXRbbmFtZV0gPSBwYXJzZUludChpbnB1dHNbaV0udmFsdWUpOw0KICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICAgICAgICAgICAgICBpbnB1dFtuYW1lXSA9IGlucHV0c1tpXS52YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgfQ0KICAgIH0NCiAgICBsZXQgZGF0YSA9IHt9Ow0KICAgIGxldCBjbWQ7DQogICAgaWYgKHJlbW92ZSA9PSB0cnVlKSB7DQogICAgICAgIGlucHV0WyJkZWxldGUiXSA9IHRydWU7DQogICAgfQ0KICAgIHN3aXRjaCAoZGF0YVR5cGUpIHsNCiAgICAgICAgY2FzZSAidXNlcnMiOg0KICAgICAgICAgICAgY29uZmlybU1zZyA9ICJEZWxldGUgdGhpcyB1c2VyPyI7DQogICAgICAgICAgICBpZiAoaWQgPT0gIi0iKSB7DQogICAgICAgICAgICAgICAgY21kID0gInNhdmVOZXdVc2VyIjsNCiAgICAgICAgICAgICAgICBkYXRhWyJ1c2VyRGF0YSJdID0gaW5wdXQ7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICBjbWQgPSAic2F2ZVVzZXJEYXRhIjsNCiAgICAgICAgICAgICAgICBsZXQgZCA9IHt9Ow0KICAgICAgICAgICAgICAgIGRbaWRdID0gaW5wdXQ7DQogICAgICAgICAgICAgICAgZGF0YVsidXNlckRhdGEiXSA9IGQ7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSAibTN1IjoNCiAgICAgICAgICAgIGNvbmZpcm1Nc2cgPSAiRGVsZXRlIHRoaXMgcGxheWxpc3Q/IjsNCiAgICAgICAgICAgIHN3aXRjaCAob3B0aW9uKSB7DQogICAgICAgICAgICAgICAgLy8gUG9wdXA6IFNhdmUNCiAgICAgICAgICAgICAgICBjYXNlIDA6DQogICAgICAgICAgICAgICAgICAgIGNtZCA9ICJzYXZlRmlsZXNNM1UiOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICAvLyBQb3B1cDogVXBkYXRlDQogICAgICAgICAgICAgICAgY2FzZSAxOg0KICAgICAgICAgICAgICAgICAgICBjbWQgPSAidXBkYXRlRmlsZU0zVSI7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgZGF0YVsiZmlsZXMiXSA9IHt9Ow0KICAgICAgICAgICAgZGF0YVsiZmlsZXMiXVtkYXRhVHlwZV0gPSB7fTsNCiAgICAgICAgICAgIGRhdGFbImZpbGVzIl1bZGF0YVR5cGVdW2lkXSA9IGlucHV0Ow0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGNhc2UgImhkaHIiOg0KICAgICAgICAgICAgY29uZmlybU1zZyA9ICJEZWxldGUgdGhpcyBIREhvbWVSdW4gdHVuZXI/IjsNCiAgICAgICAgICAgIHN3aXRjaCAob3B0aW9uKSB7DQogICAgICAgICAgICAgICAgLy8gUG9wdXA6IFNhdmUNCiAgICAgICAgICAgICAgICBjYXNlIDA6DQogICAgICAgICAgICAgICAgICAgIGNtZCA9ICJzYXZlRmlsZXNIREhSIjsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgLy8gUG9wdXA6IFVwZGF0ZQ0KICAgICAgICAgICAgICAgIGNhc2UgMToNCiAgICAgICAgICAgICAgICAgICAgY21kID0gInVwZGF0ZUZpbGVIREhSIjsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBkYXRhWyJmaWxlcyJdID0ge307DQogICAgICAgICAgICBkYXRhWyJmaWxlcyJdW2RhdGFUeXBlXSA9IHt9Ow0KICAgICAgICAgICAgZGF0YVsiZmlsZXMiXVtkYXRhVHlwZV1baWRdID0gaW5wdXQ7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSAieG1sdHYiOg0KICAgICAgICAgICAgY29uZmlybU1zZyA9ICJEZWxldGUgdGhpcyBYTUxUViBmaWxlPyI7DQogICAgICAgICAgICBzd2l0Y2ggKG9wdGlvbikgew0KICAgICAgICAgICAgICAgIC8vIFBvcHVwOiBTYXZlDQogICAgICAgICAgICAgICAgY2FzZSAwOg0KICAgICAgICAgICAgICAgICAgICBjbWQgPSAic2F2ZUZpbGVzWE1MVFYiOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICAvLyBQb3B1cDogVXBkYXRlDQogICAgICAgICAgICAgICAgY2FzZSAxOg0KICAgICAgICAgICAgICAgICAgICBjbWQgPSAidXBkYXRlRmlsZVhNTFRWIjsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBkYXRhWyJmaWxlcyJdID0ge307DQogICAgICAgICAgICBkYXRhWyJmaWxlcyJdW2RhdGFUeXBlXSA9IHt9Ow0KICAgICAgICAgICAgZGF0YVsiZmlsZXMiXVtkYXRhVHlwZV1baWRdID0gaW5wdXQ7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSAiZmlsdGVyIjoNCiAgICAgICAgICAgIGNvbmZpcm1Nc2cgPSAiRGVsZXRlIHRoaXMgZmlsdGVyPyI7DQogICAgICAgICAgICBjbWQgPSAic2F2ZUZpbHRlciI7DQogICAgICAgICAgICBkYXRhWyJmaWx0ZXIiXSA9IHt9Ow0KICAgICAgICAgICAgZGF0YVsiZmlsdGVyIl1baWRdID0gaW5wdXQ7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgIHJldHVybjsNCiAgICB9DQogICAgaWYgKHJlbW92ZSA9PSB0cnVlKSB7DQogICAgICAgIGlmICghY29uZmlybShjb25maXJtTXNnKSkgew0KICAgICAgICAgICAgc2hvd0VsZW1lbnQoInBvcHVwIiwgZmFsc2UpOw0KICAgICAgICAgICAgcmV0dXJuOw0KICAgICAgICB9DQogICAgfQ0KICAgIGxldCBzZXJ2ZXIgPSBuZXcgU2VydmVyKGNtZCk7DQogICAgc2VydmVyLnJlcXVlc3QoZGF0YSk7DQp9DQpmdW5jdGlvbiBkb25lUG9wdXBEYXRhKGRhdGFUeXBlLCBpZHNTdHIpIHsNCiAgICBsZXQgaWRzID0gaWRzU3RyLnNwbGl0KCcsJyk7DQogICAgbGV0IGRpdiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJwb3B1cC1jdXN0b20iKTsNCiAgICBsZXQgaW5wdXRzID0gZGl2LmdldEVsZW1lbnRzQnlDbGFzc05hbWUoImNoYW5nZWQiKTsNCiAgICBpZHMuZm9yRWFjaChpZCA9PiB7DQogICAgICAgIGxldCBpbnB1dDsNCiAgICAgICAgaW5wdXQgPSBTRVJWRVJbInhlcGciXVsiZXBnTWFwcGluZyJdW2lkXTsNCiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBpbnB1dHMubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgICAgIGxldCBuYW1lOw0KICAgICAgICAgICAgbGV0IHZhbHVlOw0KICAgICAgICAgICAgc3dpdGNoIChpbnB1dHNbaV0udGFnTmFtZSkgew0KICAgICAgICAgICAgICAgIGNhc2UgIklOUFVUIjoNCiAgICAgICAgICAgICAgICAgICAgc3dpdGNoIChpbnB1dHNbaV0udHlwZSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAiY2hlY2tib3giOg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWUgPSBpbnB1dHNbaV0ubmFtZTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IGlucHV0c1tpXS5jaGVja2VkOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlucHV0W25hbWVdID0gdmFsdWU7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgICAgICAgICBjYXNlICJ0ZXh0IjoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lID0gaW5wdXRzW2ldLm5hbWU7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSBpbnB1dHNbaV0udmFsdWU7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5wdXRbbmFtZV0gPSB2YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBjYXNlICJTRUxFQ1QiOg0KICAgICAgICAgICAgICAgICAgICBuYW1lID0gaW5wdXRzW2ldLm5hbWU7DQogICAgICAgICAgICAgICAgICAgIHZhbHVlID0gaW5wdXRzW2ldLnZhbHVlOw0KICAgICAgICAgICAgICAgICAgICBpbnB1dFtuYW1lXSA9IHZhbHVlOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIHN3aXRjaCAobmFtZSkgew0KICAgICAgICAgICAgICAgIGNhc2UgInR2Zy1sb2dvIjoNCiAgICAgICAgICAgICAgICAgICAgLy8oZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpLmNoaWxkTm9kZXNbMl0uZmlyc3RDaGlsZCBhcyBIVE1MRWxlbWVudCkuc2V0QXR0cmlidXRlKCJzcmMiLCB2YWx1ZSkNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAieC1uYW1lIjoNCiAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpLmNoaWxkTm9kZXNbM10uZmlyc3RDaGlsZC5pbm5lckhUTUwgPSB2YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAieC1jYXRlZ29yeSI6DQogICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5jaGlsZE5vZGVzWzNdLmZpcnN0Q2hpbGQuY2xhc3NOYW1lID0gdmFsdWU7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgInVwZGF0ZS1jaGFubmVsLW5hbWUtcmVnZXgiOg0KICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkuY2hpbGROb2Rlc1s0XS5maXJzdENoaWxkLmlubmVySFRNTCA9IHZhbHVlOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBjYXNlICJ4LWdyb3VwLXRpdGxlIjoNCiAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpLmNoaWxkTm9kZXNbNl0uZmlyc3RDaGlsZC5pbm5lckhUTUwgPSB2YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAieC14bWx0di1maWxlIjoNCiAgICAgICAgICAgICAgICAgICAgaWYgKHZhbHVlICE9ICJ4VGVWZSBEdW1teSIgJiYgdmFsdWUgIT0gIi0iKSB7DQogICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IGdldFZhbHVlRnJvbVByb3ZpZGVyRmlsZSh2YWx1ZSwgInhtbHR2IiwgIm5hbWUiKTsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBpZiAodmFsdWUgPT0gIi0iKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBpbnB1dFsieC1hY3RpdmUiXSA9IGZhbHNlOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5jaGlsZE5vZGVzWzddLmZpcnN0Q2hpbGQuaW5uZXJIVE1MID0gdmFsdWU7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgIngtbWFwcGluZyI6DQogICAgICAgICAgICAgICAgICAgIGlmICh2YWx1ZSA9PSAiLSIpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGlucHV0WyJ4LWFjdGl2ZSJdID0gZmFsc2U7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpLmNoaWxkTm9kZXNbOF0uZmlyc3RDaGlsZC5pbm5lckhUTUwgPSB2YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAieC10aW1lc2hpZnQiOg0KICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkuY2hpbGROb2Rlc1s5XS5maXJzdENoaWxkLmlubmVySFRNTCA9IHZhbHVlOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBkZWZhdWx0Og0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgY3JlYXRlU2VhcmNoT2JqKCk7DQogICAgICAgICAgICBzZWFyY2hJbk1hcHBpbmcoKTsNCiAgICAgICAgfQ0KICAgICAgICBpZiAoaW5wdXRbIngtYWN0aXZlIl0gPT0gZmFsc2UpIHsNCiAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5jbGFzc05hbWUgPSAibm90QWN0aXZlRVBHIjsNCiAgICAgICAgfQ0KICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5jbGFzc05hbWUgPSAiYWN0aXZlRVBHIjsNCiAgICAgICAgfQ0KICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkuY2hpbGROb2Rlc1syXS5maXJzdENoaWxkLnNldEF0dHJpYnV0ZSgic3JjIiwgaW5wdXRbInR2Zy1sb2dvIl0pOw0KICAgIH0pOw0KICAgIHNob3dFbGVtZW50KCJwb3B1cCIsIGZhbHNlKTsNCiAgICByZXR1cm47DQp9DQpmdW5jdGlvbiBzaG93UHJldmlldyhlbGVtZW50KSB7DQogICAgbGV0IGRpdiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJteVN0cmVhbXNCb3giKTsNCiAgICBzd2l0Y2ggKGVsZW1lbnQpIHsNCiAgICAgICAgY2FzZSBmYWxzZToNCiAgICAgICAgICAgIGRpdi5jbGFzc05hbWUgPSAibm90VmlzaWJsZSI7DQogICAgICAgICAgICByZXR1cm47DQogICAgfQ0KICAgIGxldCBzdHJlYW1zID0gWyJhY3RpdmVTdHJlYW1zIiwgImluYWN0aXZlU3RyZWFtcyJdOw0KICAgIHN0cmVhbXMuZm9yRWFjaChwcmV2aWV3ID0+IHsNCiAgICAgICAgbGV0IHRhYmxlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQocHJldmlldyk7DQogICAgICAgIHRhYmxlLmlubmVySFRNTCA9ICIiOw0KICAgICAgICBsZXQgb2JqID0gU0VSVkVSWyJkYXRhIl1bIlN0cmVhbVByZXZpZXdVSSJdW3ByZXZpZXddOw0KICAgICAgICBvYmouZm9yRWFjaChjaGFubmVsID0+IHsNCiAgICAgICAgICAgIGxldCB0ciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlRSIik7DQogICAgICAgICAgICBsZXQgdGRLZXkgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgbGV0IHRkVmFsID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgIHRkS2V5LmNsYXNzTmFtZSA9ICJ0ZEtleSI7DQogICAgICAgICAgICB0ZFZhbC5jbGFzc05hbWUgPSAidGRWYWwiOw0KICAgICAgICAgICAgc3dpdGNoIChwcmV2aWV3KSB7DQogICAgICAgICAgICAgICAgY2FzZSAiYWN0aXZlU3RyZWFtcyI6DQogICAgICAgICAgICAgICAgICAgIHRkS2V5LmlubmVyVGV4dCA9ICJDaGFubmVsOiAoKykiOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBjYXNlICJpbmFjdGl2ZVN0cmVhbXMiOg0KICAgICAgICAgICAgICAgICAgICB0ZEtleS5pbm5lclRleHQgPSAiQ2hhbm5lbDogKC0pIjsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICB9DQogICAgICAgICAgICB0ZFZhbC5pbm5lclRleHQgPSBjaGFubmVsOw0KICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQodGRLZXkpOw0KICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQodGRWYWwpOw0KICAgICAgICAgICAgdGFibGUuYXBwZW5kQ2hpbGQodHIpOw0KICAgICAgICB9KTsNCiAgICB9KTsNCiAgICBzaG93RWxlbWVudCgibG9hZGluZyIsIGZhbHNlKTsNCiAgICBkaXYuY2xhc3NOYW1lID0gInZpc2libGUiOw0KICAgIHJldHVybjsNCn0NCg==" webUI["html/js/network_ts.js"] = "Y2xhc3MgU2VydmVyIHsNCiAgICBjb25zdHJ1Y3RvcihjbWQpIHsNCiAgICAgICAgdGhpcy5jbWQgPSBjbWQ7DQogICAgfQ0KICAgIHJlcXVlc3QoZGF0YSkgew0KICAgICAgICBpZiAoU0VSVkVSX0NPTk5FQ1RJT04gPT0gdHJ1ZSkgew0KICAgICAgICAgICAgcmV0dXJuOw0KICAgICAgICB9DQogICAgICAgIFNFUlZFUl9DT05ORUNUSU9OID0gdHJ1ZTsNCiAgICAgICAgaWYgKHRoaXMuY21kICE9ICJ1cGRhdGVMb2ciKSB7DQogICAgICAgICAgICBzaG93RWxlbWVudCgibG9hZGluZyIsIHRydWUpOw0KICAgICAgICAgICAgVU5ETyA9IG5ldyBPYmplY3QoKTsNCiAgICAgICAgfQ0KICAgICAgICBzd2l0Y2ggKHdpbmRvdy5sb2NhdGlvbi5wcm90b2NvbCkgew0KICAgICAgICAgICAgY2FzZSAiaHR0cDoiOg0KICAgICAgICAgICAgICAgIHRoaXMucHJvdG9jb2wgPSAid3M6Ly8iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiaHR0cHM6IjoNCiAgICAgICAgICAgICAgICB0aGlzLnByb3RvY29sID0gIndzczovLyI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIH0NCiAgICAgICAgdmFyIHVybCA9IHRoaXMucHJvdG9jb2wgKyB3aW5kb3cubG9jYXRpb24uaG9zdG5hbWUgKyAiOiIgKyB3aW5kb3cubG9jYXRpb24ucG9ydCArICIvZGF0YS8iICsgIj9Ub2tlbj0iICsgZ2V0Q29va2llKCJUb2tlbiIpOw0KICAgICAgICBkYXRhWyJjbWQiXSA9IHRoaXMuY21kOw0KICAgICAgICB2YXIgd3MgPSBuZXcgV2ViU29ja2V0KHVybCk7DQogICAgICAgIHdzLm9ub3BlbiA9IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgICAgIFdTX0FWQUlMQUJMRSA9IHRydWU7DQogICAgICAgICAgICB0aGlzLnNlbmQoSlNPTi5zdHJpbmdpZnkoZGF0YSkpOw0KICAgICAgICB9Ow0KICAgICAgICB3cy5vbmVycm9yID0gZnVuY3Rpb24gKHdzRXJyRXZ0KSB7DQogICAgICAgICAgICBjb25zb2xlLmxvZygiTm8gd2Vic29ja2V0IGNvbm5lY3Rpb24gdG8geFRlVmUgY291bGQgYmUgZXN0YWJsaXNoZWQuIENoZWNrIHlvdXIgbmV0d29yayBjb25maWd1cmF0aW9uLiIpOw0KICAgICAgICAgICAgU0VSVkVSX0NPTk5FQ1RJT04gPSBmYWxzZTsNCiAgICAgICAgICAgIGlmIChXU19BVkFJTEFCTEUgPT0gZmFsc2UpIHsNCiAgICAgICAgICAgICAgICBhbGVydCgiTm8gd2Vic29ja2V0IGNvbm5lY3Rpb24gdG8geFRlVmUgY291bGQgYmUgZXN0YWJsaXNoZWQuIENoZWNrIHlvdXIgbmV0d29yayBjb25maWd1cmF0aW9uLiIpOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9Ow0KICAgICAgICB3cy5vbm1lc3NhZ2UgPSBmdW5jdGlvbiAod3NNZXNzYWdlRXZ0KSB7DQogICAgICAgICAgICBTRVJWRVJfQ09OTkVDVElPTiA9IGZhbHNlOw0KICAgICAgICAgICAgc2hvd0VsZW1lbnQoImxvYWRpbmciLCBmYWxzZSk7DQogICAgICAgICAgICBjb25zdCByZXNwb25zZSA9IEpTT04ucGFyc2Uod3NNZXNzYWdlRXZ0LmRhdGEpOw0KICAgICAgICAgICAgaWYgKHJlc3BvbnNlLmhhc093blByb3BlcnR5KCJ0b2tlbiIpKSB7DQogICAgICAgICAgICAgICAgZG9jdW1lbnQuY29va2llID0gIlRva2VuPSIgKyByZXNwb25zZVsidG9rZW4iXTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGlmIChyZXNwb25zZVsic3RhdHVzIl0gPT0gZmFsc2UpIHsNCiAgICAgICAgICAgICAgICBhbGVydChyZXNwb25zZVsiZXJyIl0pOw0KICAgICAgICAgICAgICAgIHJldHVybjsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGlmIChyZXNwb25zZS5oYXNPd25Qcm9wZXJ0eSgnb3BlbkxpbmsnKSkgew0KICAgICAgICAgICAgICAgIHdpbmRvdy5sb2NhdGlvbiA9IHJlc3BvbnNlWydvcGVuTGluayddOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgaWYgKHJlc3BvbnNlLmhhc093blByb3BlcnR5KCJyZWxvYWQiKSkgew0KICAgICAgICAgICAgICAgIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGlmIChyZXNwb25zZS5oYXNPd25Qcm9wZXJ0eSgiYWxlcnQiKSkgew0KICAgICAgICAgICAgICAgIGFsZXJ0KHJlc3BvbnNlWyJhbGVydCJdKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGlmIChyZXNwb25zZS5oYXNPd25Qcm9wZXJ0eSgibG9nb1VSTCIpKSB7DQogICAgICAgICAgICAgICAgdmFyIGRpdiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjaGFubmVsLWljb24iKTsNCiAgICAgICAgICAgICAgICBkaXYudmFsdWUgPSByZXNwb25zZVsibG9nb1VSTCJdOw0KICAgICAgICAgICAgICAgIGRpdi5jbGFzc05hbWUgPSAiY2hhbmdlZCI7DQogICAgICAgICAgICAgICAgcmV0dXJuOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgc3dpdGNoIChkYXRhWyJjbWQiXSkgew0KICAgICAgICAgICAgICAgIGNhc2UgInVwZGF0ZUxvZyI6DQogICAgICAgICAgICAgICAgICAgIFNFUlZFUlsibG9nIl0gPSByZXNwb25zZVsibG9nIl07DQogICAgICAgICAgICAgICAgICAgIGlmIChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29udGVudF9sb2ciKSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgc2hvd0xvZ3MoZmFsc2UpOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIHJldHVybjsNCiAgICAgICAgICAgICAgICBkZWZhdWx0Og0KICAgICAgICAgICAgICAgICAgICBTRVJWRVIgPSBuZXcgT2JqZWN0KCk7DQogICAgICAgICAgICAgICAgICAgIFNFUlZFUiA9IHJlc3BvbnNlOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGlmIChyZXNwb25zZS5oYXNPd25Qcm9wZXJ0eSgib3Blbk1lbnUiKSkgew0KICAgICAgICAgICAgICAgIHZhciBtZW51ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQocmVzcG9uc2VbIm9wZW5NZW51Il0pOw0KICAgICAgICAgICAgICAgIG1lbnUuY2xpY2soKTsNCiAgICAgICAgICAgICAgICBzaG93RWxlbWVudCgicG9wdXAiLCBmYWxzZSk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBpZiAocmVzcG9uc2UuaGFzT3duUHJvcGVydHkoInJlbG9hZCIpKSB7DQogICAgICAgICAgICAgICAgbG9jYXRpb24ucmVsb2FkKCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBpZiAocmVzcG9uc2UuaGFzT3duUHJvcGVydHkoIndpemFyZCIpKSB7DQogICAgICAgICAgICAgICAgY3JlYXRlTGF5b3V0KCk7DQogICAgICAgICAgICAgICAgY29uZmlndXJhdGlvbldpemFyZFtyZXNwb25zZVsid2l6YXJkIl1dLmNyZWF0ZVdpemFyZCgpOw0KICAgICAgICAgICAgICAgIHJldHVybjsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGNyZWF0ZUxheW91dCgpOw0KICAgICAgICB9Ow0KICAgIH0NCn0NCmZ1bmN0aW9uIGdldENvb2tpZShuYW1lKSB7DQogICAgdmFyIHZhbHVlID0gIjsgIiArIGRvY3VtZW50LmNvb2tpZTsNCiAgICB2YXIgcGFydHMgPSB2YWx1ZS5zcGxpdCgiOyAiICsgbmFtZSArICI9Iik7DQogICAgaWYgKHBhcnRzLmxlbmd0aCA9PSAyKSB7DQogICAgICAgIHJldHVybiBwYXJ0cy5wb3AoKS5zcGxpdCgiOyIpLnNoaWZ0KCk7DQogICAgfQ0KfQ0K" webUI["html/js/settings_ts.js"] = "Y2xhc3MgU2V0dGluZ3NDYXRlZ29yeSB7DQogICAgY29uc3RydWN0b3IoKSB7DQogICAgICAgIHRoaXMuRG9jdW1lbnRJRCA9ICJjb250ZW50X3NldHRpbmdzIjsNCiAgICB9DQogICAgY3JlYXRlQ2F0ZWdvcnlIZWFkbGluZSh2YWx1ZSkgew0KICAgICAgICB2YXIgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIkg0Iik7DQogICAgICAgIGVsZW1lbnQuaW5uZXJIVE1MID0gdmFsdWU7DQogICAgICAgIHJldHVybiBlbGVtZW50Ow0KICAgIH0NCiAgICBjcmVhdGVIUigpIHsNCiAgICAgICAgdmFyIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJIUiIpOw0KICAgICAgICByZXR1cm4gZWxlbWVudDsNCiAgICB9DQogICAgY3JlYXRlU2V0dGluZ3Moc2V0dGluZ3NLZXkpIHsNCiAgICAgICAgdmFyIHNldHRpbmcgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJUUiIpOw0KICAgICAgICB2YXIgY29udGVudCA9IG5ldyBQb3B1cENvbnRlbnQoKTsNCiAgICAgICAgdmFyIGRhdGEgPSBTRVJWRVJbInNldHRpbmdzIl1bc2V0dGluZ3NLZXldOw0KICAgICAgICBzd2l0Y2ggKHNldHRpbmdzS2V5KSB7DQogICAgICAgICAgICAvLyBUZXh0IGlucHV0cw0KICAgICAgICAgICAgY2FzZSAidXBkYXRlIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLnVwZGF0ZS50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsICJ1cGRhdGUiLCBkYXRhLnRvU3RyaW5nKCkpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3suc2V0dGluZ3MudXBkYXRlLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJiYWNrdXAucGF0aCI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5iYWNrdXBQYXRoLnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgImJhY2t1cC5wYXRoIiwgZGF0YSk7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5zZXR0aW5ncy5iYWNrdXBQYXRoLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ0ZW1wLnBhdGgiOg0KICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MudGVtcFBhdGgudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCAidGVtcC5wYXRoIiwgZGF0YSk7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5zZXR0aW5ncy50bXBQYXRoLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ1c2VyLmFnZW50IjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLnVzZXJBZ2VudC50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsICJ1c2VyLmFnZW50IiwgZGF0YSk7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5zZXR0aW5ncy51c2VyQWdlbnQucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImJ1ZmZlci50aW1lb3V0IjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmJ1ZmZlclRpbWVvdXQudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCAiYnVmZmVyLnRpbWVvdXQiLCBkYXRhKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnNldHRpbmdzLmJ1ZmZlclRpbWVvdXQucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImZmbXBlZy5wYXRoIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmZmbXBlZ1BhdGgudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCAiZmZtcGVnLnBhdGgiLCBkYXRhKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnNldHRpbmdzLmZmbXBlZ1BhdGgucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImZmbXBlZy5vcHRpb25zIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmZmbXBlZ09wdGlvbnMudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCAiZmZtcGVnLm9wdGlvbnMiLCBkYXRhKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnNldHRpbmdzLmZmbXBlZ09wdGlvbnMucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInZsYy5wYXRoIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLnZsY1BhdGgudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCAidmxjLnBhdGgiLCBkYXRhKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnNldHRpbmdzLnZsY1BhdGgucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInZsYy5vcHRpb25zIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLnZsY09wdGlvbnMudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCAidmxjLm9wdGlvbnMiLCBkYXRhKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnNldHRpbmdzLnZsY09wdGlvbnMucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIC8vIENoZWNrYm94ZXMNCiAgICAgICAgICAgIGNhc2UgInRsc01vZGUiOg0KICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MudGxzTW9kZS50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChzZXR0aW5nc0tleSk7DQogICAgICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGE7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiYXV0aGVudGljYXRpb24ud2ViIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmF1dGhlbnRpY2F0aW9uV0VCLnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KHNldHRpbmdzS2V5KTsNCiAgICAgICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJhdXRoZW50aWNhdGlvbi5wbXMiOg0KICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MuYXV0aGVudGljYXRpb25QTVMudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goc2V0dGluZ3NLZXkpOw0KICAgICAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImF1dGhlbnRpY2F0aW9uLm0zdSI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5hdXRoZW50aWNhdGlvbk0zVS50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChzZXR0aW5nc0tleSk7DQogICAgICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGE7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiYXV0aGVudGljYXRpb24ueG1sIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmF1dGhlbnRpY2F0aW9uWE1MLnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KHNldHRpbmdzS2V5KTsNCiAgICAgICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJhdXRoZW50aWNhdGlvbi5hcGkiOg0KICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MuYXV0aGVudGljYXRpb25BUEkudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goc2V0dGluZ3NLZXkpOw0KICAgICAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImZpbGVzLnVwZGF0ZSI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5maWxlc1VwZGF0ZS50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChzZXR0aW5nc0tleSk7DQogICAgICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGE7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiY2FjaGUuaW1hZ2VzIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmNhY2hlSW1hZ2VzLnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KHNldHRpbmdzS2V5KTsNCiAgICAgICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ4ZXBnLnJlcGxhY2UubWlzc2luZy5pbWFnZXMiOg0KICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MucmVwbGFjZUVtcHR5SW1hZ2VzLnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KHNldHRpbmdzS2V5KTsNCiAgICAgICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJzdG9yZUJ1ZmZlckluUkFNIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLnN0b3JlQnVmZmVySW5SQU0udGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goc2V0dGluZ3NLZXkpOw0KICAgICAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInh0ZXZlQXV0b1VwZGF0ZSI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy54dGV2ZUF1dG9VcGRhdGUudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goc2V0dGluZ3NLZXkpOw0KICAgICAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImFwaSI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5hcGkudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goc2V0dGluZ3NLZXkpOw0KICAgICAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIC8vIFNlbGVjdA0KICAgICAgICAgICAgY2FzZSAiaG9zdElQIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmhvc3RJUC50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIHRleHQgPSBTRVJWRVJbImlwQWRkcmVzc2VzVjRIb3N0Il07DQogICAgICAgICAgICAgICAgdmFyIHZhbHVlcyA9IFNFUlZFUlsiaXBBZGRyZXNzZXNWNEhvc3QiXTsNCiAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCBkYXRhLCBzZXR0aW5nc0tleSk7DQogICAgICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKHNlbGVjdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ0dW5lciI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy50dW5lci50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIHRleHQgPSBuZXcgQXJyYXkoKTsNCiAgICAgICAgICAgICAgICB2YXIgdmFsdWVzID0gbmV3IEFycmF5KCk7DQogICAgICAgICAgICAgICAgZm9yICh2YXIgaSA9IDE7IGkgPD0gMTAwOyBpKyspIHsNCiAgICAgICAgICAgICAgICAgICAgdGV4dC5wdXNoKGkpOw0KICAgICAgICAgICAgICAgICAgICB2YWx1ZXMucHVzaChpKTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgdmFyIHNlbGVjdCA9IGNvbnRlbnQuY3JlYXRlU2VsZWN0KHRleHQsIHZhbHVlcywgZGF0YSwgc2V0dGluZ3NLZXkpOw0KICAgICAgICAgICAgICAgIHNlbGVjdC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChzZWxlY3QpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiZXBnU291cmNlIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmVwZ1NvdXJjZS50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIHRleHQgPSBbIlBNUyIsICJYRVBHIl07DQogICAgICAgICAgICAgICAgdmFyIHZhbHVlcyA9IFsiUE1TIiwgIlhFUEciXTsNCiAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCBkYXRhLCBzZXR0aW5nc0tleSk7DQogICAgICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKHNlbGVjdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJiYWNrdXAua2VlcCI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5iYWNrdXBLZWVwLnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgdGV4dCA9IFsiNSIsICIxMCIsICIyMCIsICIzMCIsICI0MCIsICI1MCJdOw0KICAgICAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBbIjUiLCAiMTAiLCAiMjAiLCAiMzAiLCAiNDAiLCAiNTAiXTsNCiAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCBkYXRhLCBzZXR0aW5nc0tleSk7DQogICAgICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKHNlbGVjdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJidWZmZXIuc2l6ZS5rYiI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5idWZmZXJTaXplLnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgdGV4dCA9IFsiMC41IE1CIiwgIjEgTUIiLCAiMiBNQiIsICIzIE1CIiwgIjQgTUIiLCAiNSBNQiIsICI2IE1CIiwgIjcgTUIiLCAiOCBNQiJdOw0KICAgICAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBbIjUxMiIsICIxMDI0IiwgIjIwNDgiLCAiMzA3MiIsICI0MDk2IiwgIjUxMjAiLCAiNjE0NCIsICI3MTY4IiwgIjgxOTIiXTsNCiAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCBkYXRhLCBzZXR0aW5nc0tleSk7DQogICAgICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKHNlbGVjdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJidWZmZXIiOg0KICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3Muc3RyZWFtQnVmZmVyaW5nLnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgdGV4dCA9IFsie3suc2V0dGluZ3Muc3RyZWFtQnVmZmVyaW5nLmluZm9fZmFsc2V9fSIsICJ4VGVWZTogKHt7LnNldHRpbmdzLnN0cmVhbUJ1ZmZlcmluZy5pbmZvX3h0ZXZlfX0pIiwgIkZGbXBlZzogKHt7LnNldHRpbmdzLnN0cmVhbUJ1ZmZlcmluZy5pbmZvX2ZmbXBlZ319KSIsICJWTEM6ICh7ey5zZXR0aW5ncy5zdHJlYW1CdWZmZXJpbmcuaW5mb192bGN9fSkiXTsNCiAgICAgICAgICAgICAgICB2YXIgdmFsdWVzID0gWyItIiwgInh0ZXZlIiwgImZmbXBlZyIsICJ2bGMiXTsNCiAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCBkYXRhLCBzZXR0aW5nc0tleSk7DQogICAgICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKHNlbGVjdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ1ZHB4eSI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy51ZHB4eS50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsICJ1ZHB4eSIsIGRhdGEpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3suc2V0dGluZ3MudWRweHkucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgfQ0KICAgICAgICByZXR1cm4gc2V0dGluZzsNCiAgICB9DQogICAgY3JlYXRlRGVzY3JpcHRpb24oc2V0dGluZ3NLZXkpIHsNCiAgICAgICAgdmFyIGRlc2NyaXB0aW9uID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVFIiKTsNCiAgICAgICAgdmFyIHRleHQ7DQogICAgICAgIHN3aXRjaCAoc2V0dGluZ3NLZXkpIHsNCiAgICAgICAgICAgIGNhc2UgInRsc01vZGUiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MudGxzTW9kZS5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImF1dGhlbnRpY2F0aW9uLndlYiI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5hdXRoZW50aWNhdGlvbldFQi5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImF1dGhlbnRpY2F0aW9uLm0zdSI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5hdXRoZW50aWNhdGlvbk0zVS5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImF1dGhlbnRpY2F0aW9uLnBtcyI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5hdXRoZW50aWNhdGlvblBNUy5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImF1dGhlbnRpY2F0aW9uLnhtbCI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5hdXRoZW50aWNhdGlvblhNTC5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImF1dGhlbnRpY2F0aW9uLmFwaSI6DQogICAgICAgICAgICAgICAgaWYgKFNFUlZFUlsic2V0dGluZ3MiXVsiYXV0aGVudGljYXRpb24ud2ViIl0gPT0gdHJ1ZSkgew0KICAgICAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLmF1dGhlbnRpY2F0aW9uQVBJLmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInh0ZXZlQXV0b1VwZGF0ZSI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy54dGV2ZUF1dG9VcGRhdGUuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJiYWNrdXAua2VlcCI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5iYWNrdXBLZWVwLmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiYmFja3VwLnBhdGgiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MuYmFja3VwUGF0aC5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInRlbXAucGF0aCI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy50ZW1wUGF0aC5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImJ1ZmZlciI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5zdHJlYW1CdWZmZXJpbmcuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJidWZmZXIuc2l6ZS5rYiI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5idWZmZXJTaXplLmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAic3RvcmVCdWZmZXJJblJBTSI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5zdG9yZUJ1ZmZlckluUkFNLmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiYnVmZmVyLnRpbWVvdXQiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MuYnVmZmVyVGltZW91dC5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInVzZXIuYWdlbnQiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MudXNlckFnZW50LmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiZmZtcGVnLnBhdGgiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MuZmZtcGVnUGF0aC5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImZmbXBlZy5vcHRpb25zIjoNCiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLmZmbXBlZ09wdGlvbnMuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ2bGMucGF0aCI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy52bGNQYXRoLmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAidmxjLm9wdGlvbnMiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MudmxjT3B0aW9ucy5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImVwZ1NvdXJjZSI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5lcGdTb3VyY2UuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJob3N0SVAiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MuaG9zdElQLmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAidHVuZXIiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MudHVuZXIuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ1cGRhdGUiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MudXBkYXRlLmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiYXBpIjoNCiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLmFwaS5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImZpbGVzLnVwZGF0ZSI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5maWxlc1VwZGF0ZS5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImNhY2hlLmltYWdlcyI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5jYWNoZUltYWdlcy5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInhlcGcucmVwbGFjZS5taXNzaW5nLmltYWdlcyI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5yZXBsYWNlRW1wdHlJbWFnZXMuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ1ZHB4eSI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy51ZHB4eS5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICAgICAgdGV4dCA9ICIiOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICB9DQogICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gIiI7DQogICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgdmFyIHByZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlBSRSIpOw0KICAgICAgICBwcmUuaW5uZXJIVE1MID0gdGV4dDsNCiAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChwcmUpOw0KICAgICAgICBkZXNjcmlwdGlvbi5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICBkZXNjcmlwdGlvbi5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgcmV0dXJuIGRlc2NyaXB0aW9uOw0KICAgIH0NCn0NCmNsYXNzIFNldHRpbmdzQ2F0ZWdvcnlJdGVtIGV4dGVuZHMgU2V0dGluZ3NDYXRlZ29yeSB7DQogICAgY29uc3RydWN0b3IoaGVhZGxpbmUsIHNldHRpbmdzS2V5cykgew0KICAgICAgICBzdXBlcigpOw0KICAgICAgICB0aGlzLmhlYWRsaW5lID0gaGVhZGxpbmU7DQogICAgICAgIHRoaXMuc2V0dGluZ3NLZXlzID0gc2V0dGluZ3NLZXlzOw0KICAgIH0NCiAgICBjcmVhdGVDYXRlZ29yeSgpIHsNCiAgICAgICAgdmFyIGhlYWRsaW5lID0gdGhpcy5jcmVhdGVDYXRlZ29yeUhlYWRsaW5lKHRoaXMuaGVhZGxpbmUpOw0KICAgICAgICB2YXIgc2V0dGluZ3NLZXlzID0gdGhpcy5zZXR0aW5nc0tleXM7DQogICAgICAgIHZhciBkb2MgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCh0aGlzLkRvY3VtZW50SUQpOw0KICAgICAgICBkb2MuYXBwZW5kQ2hpbGQoaGVhZGxpbmUpOw0KICAgICAgICAvLyBDcmVhdGUgYSB0YWJsZSBmb3IgdGhlIGNhdGVnb3J5DQogICAgICAgIHZhciB0YWJsZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlRBQkxFIik7DQogICAgICAgIHZhciBrZXlzID0gc2V0dGluZ3NLZXlzLnNwbGl0KCIsIik7DQogICAgICAgIGtleXMuZm9yRWFjaChzZXR0aW5nc0tleSA9PiB7DQogICAgICAgICAgICBzd2l0Y2ggKHNldHRpbmdzS2V5KSB7DQogICAgICAgICAgICAgICAgY2FzZSAiYXV0aGVudGljYXRpb24ucG1zIjoNCiAgICAgICAgICAgICAgICBjYXNlICJhdXRoZW50aWNhdGlvbi5tM3UiOg0KICAgICAgICAgICAgICAgIGNhc2UgImF1dGhlbnRpY2F0aW9uLnhtbCI6DQogICAgICAgICAgICAgICAgY2FzZSAiYXV0aGVudGljYXRpb24uYXBpIjoNCiAgICAgICAgICAgICAgICAgICAgaWYgKFNFUlZFUlsic2V0dGluZ3MiXVsiYXV0aGVudGljYXRpb24ud2ViIl0gPT0gZmFsc2UpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgICAgICAgICAgdmFyIGl0ZW0gPSB0aGlzLmNyZWF0ZVNldHRpbmdzKHNldHRpbmdzS2V5KTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGRlc2NyaXB0aW9uID0gdGhpcy5jcmVhdGVEZXNjcmlwdGlvbihzZXR0aW5nc0tleSk7DQogICAgICAgICAgICAgICAgICAgIHRhYmxlLmFwcGVuZENoaWxkKGl0ZW0pOw0KICAgICAgICAgICAgICAgICAgICB0YWJsZS5hcHBlbmRDaGlsZChkZXNjcmlwdGlvbik7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9KTsNCiAgICAgICAgZG9jLmFwcGVuZENoaWxkKHRhYmxlKTsNCiAgICAgICAgZG9jLmFwcGVuZENoaWxkKHRoaXMuY3JlYXRlSFIoKSk7DQogICAgfQ0KfQ0KZnVuY3Rpb24gc2hvd1NldHRpbmdzKCkgew0KICAgIGZvciAobGV0IGkgPSAwOyBpIDwgc2V0dGluZ3NDYXRlZ29yeS5sZW5ndGg7IGkrKykgew0KICAgICAgICBzZXR0aW5nc0NhdGVnb3J5W2ldLmNyZWF0ZUNhdGVnb3J5KCk7DQogICAgfQ0KfQ0KZnVuY3Rpb24gc2F2ZVNldHRpbmdzKCkgew0KICAgIHZhciBjbWQgPSAic2F2ZVNldHRpbmdzIjsNCiAgICB2YXIgZGl2ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnRlbnRfc2V0dGluZ3MiKTsNCiAgICB2YXIgc2V0dGluZ3MgPSBkaXYuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSgiY2hhbmdlZCIpOw0KICAgIHZhciBuZXdTZXR0aW5ncyA9IG5ldyBPYmplY3QoKTsNCiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHNldHRpbmdzLmxlbmd0aDsgaSsrKSB7DQogICAgICAgIHZhciBuYW1lOw0KICAgICAgICB2YXIgdmFsdWU7DQogICAgICAgIHN3aXRjaCAoc2V0dGluZ3NbaV0udGFnTmFtZSkgew0KICAgICAgICAgICAgY2FzZSAiSU5QVVQiOg0KICAgICAgICAgICAgICAgIHN3aXRjaCAoc2V0dGluZ3NbaV0udHlwZSkgew0KICAgICAgICAgICAgICAgICAgICBjYXNlICJjaGVja2JveCI6DQogICAgICAgICAgICAgICAgICAgICAgICBuYW1lID0gc2V0dGluZ3NbaV0ubmFtZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlID0gc2V0dGluZ3NbaV0uY2hlY2tlZDsNCiAgICAgICAgICAgICAgICAgICAgICAgIG5ld1NldHRpbmdzW25hbWVdID0gdmFsdWU7DQogICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICAgICAgY2FzZSAidGV4dCI6DQogICAgICAgICAgICAgICAgICAgICAgICBuYW1lID0gc2V0dGluZ3NbaV0ubmFtZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlID0gc2V0dGluZ3NbaV0udmFsdWU7DQogICAgICAgICAgICAgICAgICAgICAgICBzd2l0Y2ggKG5hbWUpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYXNlICJ1cGRhdGUiOg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IHZhbHVlLnNwbGl0KCIsIik7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlID0gdmFsdWUuZmlsdGVyKGZ1bmN0aW9uIChlKSB7IHJldHVybiBlOyB9KTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAiYnVmZmVyLnRpbWVvdXQiOg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IHBhcnNlRmxvYXQodmFsdWUpOw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgbmV3U2V0dGluZ3NbbmFtZV0gPSB2YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgIlNFTEVDVCI6DQogICAgICAgICAgICAgICAgbmFtZSA9IHNldHRpbmdzW2ldLm5hbWU7DQogICAgICAgICAgICAgICAgdmFsdWUgPSBzZXR0aW5nc1tpXS52YWx1ZTsNCiAgICAgICAgICAgICAgICAvLyBJZiB0aGUgdmFsdWUgaXMgYSBudW1iZXIsIHN0b3JlIGl0IGFzIGEgbnVtYmVyDQogICAgICAgICAgICAgICAgaWYgKGlzTmFOKHZhbHVlKSkgew0KICAgICAgICAgICAgICAgICAgICBuZXdTZXR0aW5nc1tuYW1lXSA9IHZhbHVlOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICAgICAgbmV3U2V0dGluZ3NbbmFtZV0gPSBwYXJzZUludCh2YWx1ZSk7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICB9DQogICAgfQ0KICAgIHZhciBkYXRhID0gbmV3IE9iamVjdCgpOw0KICAgIGRhdGFbInNldHRpbmdzIl0gPSBuZXdTZXR0aW5nczsNCiAgICB2YXIgc2VydmVyID0gbmV3IFNlcnZlcihjbWQpOw0KICAgIHNlcnZlci5yZXF1ZXN0KGRhdGEpOw0KfQ0K" - webUI["html/lang/en.json"] = "ew0KICAibWFpbk1lbnUiOg0KICB7DQogICAgIml0ZW0iOg0KICAgIHsNCiAgICAgICJwbGF5bGlzdCI6ICJQbGF5bGlzdCIsDQogICAgICAicG1zSUQiOiAiUE1TIElEIiwNCiAgICAgICJmaWx0ZXIiOiAiRmlsdGVyIiwNCiAgICAgICJ4bWx0diI6ICJYTUxUViIsDQogICAgICAibWFwcGluZyI6ICJNYXBwaW5nIiwNCiAgICAgICJ1c2VycyI6ICJVc2VycyIsDQogICAgICAic2V0dGluZ3MiOiAiU2V0dGluZ3MiLA0KICAgICAgImxvZyI6ICJMb2ciLA0KICAgICAgImxvZ291dCI6ICJMb2dvdXQiDQogICAgfSwNCiAgICAiaGVhZGxpbmUiOg0KICAgIHsNCiAgICAgICJwbGF5bGlzdCI6ICJMb2NhbCBvciByZW1vdGUgcGxheWxpc3RzIiwNCiAgICAgICJmaWx0ZXIiOiAiRmlsdGVyIHBsYXlsaXN0IiwNCiAgICAgICJ4bWx0diI6ICJMb2NhbCBvciByZW1vdGUgWE1MVFYgZmlsZXMiLA0KICAgICAgIm1hcHBpbmciOiAiTWFwIHBsYXlsaXN0IGNoYW5uZWxzIHRvIEVQRyBjaGFubmVscyIsDQogICAgICAidXNlcnMiOiAiVXNlciBtYW5hZ2VtZW50IiwNCiAgICAgICJzZXR0aW5ncyI6ICJTZXR0aW5ncyIsDQogICAgICAibG9nIjogIkxvZyIsDQogICAgICAibG9nb3V0IjogIkxvZ291dCINCiAgICB9DQogIH0sDQogICJjb25maXJtIjoNCiAgew0KICAgICJyZXN0b3JlIjogIkFsbCBkYXRhIHdpbGwgYmUgcmVwbGFjZWQgd2l0aCB0aG9zZSBmcm9tIHRoZSBiYWNrdXAuIFNob3VsZCB0aGUgZmlsZXMgYmUgcmVzdG9yZWQ/Ig0KICB9LA0KICAiYWxlcnQiOg0KICB7DQogICAgImZpbGVMb2FkaW5nRXJyb3IiOiAiRmlsZSBjb3VsZG4ndCBiZSBsb2FkZWQiLA0KICAgICJpbnZhbGlkQ2hhbm5lbE51bWJlciI6ICJJbnZhbGlkIGNoYW5uZWwgbnVtYmVyIiwNCiAgICAibWlzc2luZ0lucHV0IjogIk1pc3NpbmcgaW5wdXQiDQogIH0sDQogICJidXR0b24iOg0KICB7DQogICAgImJhY2siOiAiQmFjayIsDQogICAgImJhY2t1cCI6ICJCYWNrdXAiLA0KICAgICJidWxrRWRpdCI6ICJCdWxrIEVkaXQiLA0KICAgICJjYW5jZWwiOiAiQ2FuY2VsIiwNCiAgICAiZGVsZXRlIjogIkRlbGV0ZSIsDQogICAgImRvbmUiOiAiRG9uZSIsDQogICAgImxvZ2luIjogIkxvZ2luIiwNCiAgICAibmV3IjogIk5ldyIsDQogICAgIm5leHQiOiAiTmV4dCIsDQogICAgInJlc3RvcmUiOiAiUmVzdG9yZSIsDQogICAgInNhdmUiOiAiU2F2ZSIsDQogICAgInNlYXJjaCI6ICJTZWFyY2giLA0KICAgICJ1cGRhdGUiOiAiVXBkYXRlIiwNCiAgICAiY3JhZXRlQWNjb3VudCI6ICJDcmVhdGUgQWNjb3VudCIsDQogICAgInJlc2V0TG9ncyI6ICJSZXNldCBMb2dzIiwNCiAgICAidXBsb2FkTG9nbyI6ICJVcGxvYWQgTG9nbyINCiAgfSwNCiAgImZpbHRlciI6DQogIHsNCiAgICAidGFibGUiOg0KICAgIHsNCiAgICAgICJzdGFydGluZ0NoYW5uZWwiOiAiU3RhcnRpbmcgQ2guIE5vLiIsDQogICAgICAibmFtZSI6ICJGaWx0ZXIgTmFtZSIsDQogICAgICAidHlwZSI6ICJGaWx0ZXIgVHlwZSIsDQogICAgICAiZmlsdGVyIjogIkZpbHRlciINCiAgICB9LA0KICAgICJjdXN0b20iOiAiQ3VzdG9tIiwNCiAgICAiZ3JvdXAiOiAiTTNVIEdyb3VwIiwNCiAgICAibmFtZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIkZpbHRlciBOYW1lIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJGaWx0ZXIgbmFtZSIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgImRlc2NyaXB0aW9uIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiRGVzY3JpcHRpb24iLA0KICAgICAgInBsYWNlaG9sZGVyIjogIkRlc2NyaXB0aW9uIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAidHlwZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIlR5cGUiLA0KICAgICAgImdyb3VwVGl0bGUiOiAiR3JvdXAgVGl0bGUiLA0KICAgICAgImN1c3RvbUZpbHRlciI6ICJDdXN0b20gRmlsdGVyIg0KICAgIH0sDQogICAgImNhc2VTZW5zaXRpdmUiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJDYXNlIFNlbnNpdGl2ZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAiZmlsdGVyUnVsZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIkZpbHRlciBSdWxlIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJTcG9ydCB7SER9ICF7RVMsSVR9IiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAiZmlsdGVyR3JvdXAiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJHcm91cCBUaXRsZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJTZWxlY3QgYSBNM1UgZ3JvdXAuIChDb3VudGVyKTxicj5DaGFuZ2luZyB0aGUgZ3JvdXAgdGl0bGUgaW4gdGhlIE0zVSBpbnZhbGlkYXRlcyB0aGUgZmlsdGVyLiINCiAgICB9LA0KICAgICJpbmNsdWRlIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiSW5jbHVkZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiRkhELFVIRCIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiQ2hhbm5lbCBuYW1lIG11c3QgaW5jbHVkZS48YnI+KENvbW1hIHNlcGFyYXRlZCkgQ29tbWEgbWVhbnMgb3IiDQogICAgfSwNCiAgICAiZXhjbHVkZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIkV4Y2x1ZGUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIkVTLElUIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJDaGFubmVsIG5hbWUgbXVzdCBub3QgY29udGFpbi48YnI+KENvbW1hIHNlcGFyYXRlZCkgQ29tbWEgbWVhbnMgb3IiDQogICAgfSwNCiAgICAicHJlc2VydmVNYXBwaW5nIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiUHJlc2VydmUgRXhpc3RpbmcgTTNVPGJyPkNoYW5uZWwgTnVtYmVycyIsDQogICAgICAicGFsY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJQcmVzZXJ2ZSBleGlzdGluZyBNM1UgcGxheWxpc3QgY2hhbm5lbCBudW1iZXJzPyINCiAgICB9LA0KICAgICJzdGFydGluZ0NoYW5uZWwiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJTdGFydGluZyBDaGFubmVsIE51bWJlciIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAiZGVmYXVsdE1pc3NpbmdFUEciOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJGaWxsIE1pc3NpbmcgRVBHIERhdGEiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiV2hlbiB0aGVyZSBpcyBubyBtYXRjaGluZyBFUEcgZGF0YSBmb3IgY2hhbm5lbCwgPGJyPmF1dG9maWxsIHdpdGggeFRlVmUgZHVtbXkgRVBHIGRhdGE/Ig0KICAgIH0NCg0KICB9LA0KICAicGxheWxpc3QiOg0KICB7DQogICAgInRhYmxlIjoNCiAgICB7DQogICAgICAicGxheWxpc3QiOiAiUGxheWxpc3QiLA0KICAgICAgInR1bmVyIjogIlR1bmVyIiwNCiAgICAgICJsYXN0VXBkYXRlIjogIkxhc3QgVXBkYXRlIiwNCiAgICAgICJhdmFpbGFiaWxpdHkiOiAiQXZhaWxhYmlsaXR5IiwNCiAgICAgICJ0eXBlIjogIlR5cGUiLA0KICAgICAgInN0cmVhbXMiOiAiU3RyZWFtcyIsDQogICAgICAiZ3JvdXBUaXRsZSI6ICJncm91cC10aXRsZSIsDQogICAgICAidHZnSUQiOiAidHZnLWlkIiwNCiAgICAgICJ1bmlxdWVJRCI6ICJVbmlxdWUgSUQiDQogICAgfSwNCiAgICAicGxheWxpc3RUeXBlIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiUGxheWxpc3QgdHlwZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAidHlwZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIlR5cGUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgIm5hbWUiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJOYW1lIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJQbGF5bGlzdCBuYW1lIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAiZGVzY3JpcHRpb24iOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJEZXNjcmlwdGlvbiIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiRGVzY3JpcHRpb24iLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJmaWxlTTNVIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiTTNVIEZpbGUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIkZpbGUgcGF0aCBvciBVUkwgb2YgdGhlIE0zVSIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgImZpbGVIREhSIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiSERIb21lUnVuIElQIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJJUCBhZGRyZXNzIGFuZCBwb3J0ICgxOTIuMTY4LjEuMTA6NTAwNCkiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJ0dW5lciI6DQogICAgew0KICAgICAgInRpdGxlIjogIlR1bmVyIC8gU3RyZWFtcyIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJOdW1iZXIgb2YgcGFyYWxsZWwgY29ubmVjdGlvbnMgdGhhdCBjYW4gYmUgZXN0YWJsaXNoZWQgdG8gdGhlIHByb3ZpZGVyLiA8YnI+T25seSBhdmFpbGFibGUgd2l0aCBhY3RpdmF0ZWQgYnVmZmVyLjxicj5OZXcgc2V0dGluZ3Mgd2lsbCBvbmx5IGJlIGFwcGxpZWQgYWZ0ZXIgcXVpdHRpbmcgYWxsIHN0cmVhbXMuIg0KICAgIH0NCiAgfSwNCiAgInhtbHR2IjoNCiAgew0KICAgICJ0YWJsZSI6DQogICAgew0KICAgICAgImd1aWRlIjogIkd1aWRlIiwNCiAgICAgICJsYXN0VXBkYXRlIjogIkxhc3QgVXBkYXRlIiwNCiAgICAgICJhdmFpbGFiaWxpdHkiOiAiQXZhaWxhYmlsaXR5IiwNCiAgICAgICJjaGFubmVscyI6ICJDaGFubmVscyIsDQogICAgICAicHJvZ3JhbXMiOiAiUHJvZ3JhbXMiDQogICAgfSwNCiAgICAibmFtZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIk5hbWUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIkd1aWRlIG5hbWUiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJkZXNjcmlwdGlvbiI6DQogICAgew0KICAgICAgInRpdGxlIjogIkRlc2NyaXB0aW9uIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJEZXNjcmlwdGlvbiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgImZpbGVYTUxUViI6DQogICAgew0KICAgICAgInRpdGxlIjogIlhNTFRWIEZpbGUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIkZpbGUgcGF0aCBvciBVUkwgb2YgdGhlIFhNTFRWIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfQ0KICB9LA0KICAibWFwcGluZyI6DQogIHsNCiAgICAidGFibGUiOg0KICAgIHsNCiAgICAgICJjaE5vIjogIkNoLiBOby4iLA0KICAgICAgImxvZ28iOiAiTG9nbyIsDQogICAgICAiY2hhbm5lbE5hbWUiOiAiQ2hhbm5lbCBOYW1lIiwNCiAgICAgICJwbGF5bGlzdCI6ICJQbGF5bGlzdCIsDQogICAgICAiZ3JvdXBUaXRsZSI6ICJHcm91cCBUaXRsZSIsDQogICAgICAieG1sdHZGaWxlIjogIlhNTFRWIEZpbGUiLA0KICAgICAgInhtbHR2SUQiOiAiWE1MVFYgSUQiLA0KICAgICAgInRpbWVzaGlmdCI6ICJUaW1lc2hpZnQiDQogICAgfSwNCiAgICAiYWN0aXZlIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiQWN0aXZlIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJjaGFubmVsTmFtZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIkNoYW5uZWwgTmFtZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAiZGVzY3JpcHRpb24iOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJDaGFubmVsIERlc2NyaXB0aW9uIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJVc2VkIGJ5IHRoZSBEdW1teSBhcyBhbiBYTUwgZGVzY3JpcHRpb24iLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJ1cGRhdGVDaGFubmVsTmFtZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIlVwZGF0ZSBDaGFubmVsIE5hbWUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgInVwZGF0ZUNoYW5uZWxHcm91cCI6DQogICAgew0KICAgICAgInRpdGxlIjogIlVwZGF0ZSBDaGFubmVsIEdyb3VwIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIklmIGNoZWNrZWQsIHVzZSBncm91cCBmcm9tIHRoZSBkYXRhYmFzZSINCiAgICB9LA0KICAgICJjaGFubmVsTG9nbyI6DQogICAgew0KICAgICAgInRpdGxlIjogIkxvZ28gVVJMIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJ1cGRhdGVDaGFubmVsTG9nbyI6DQogICAgew0KICAgICAgInRpdGxlIjogIlVwZGF0ZSBDaGFubmVsIExvZ28iLA0KICAgICAgInBsYWNlaG9sZGVyIjogIiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgImVwZ0NhdGVnb3J5IjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiRVBHIENhdGVnb3J5IiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJtM3VHcm91cFRpdGxlIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiR3JvdXAgVGl0bGUgKHh0ZXZlLm0zdSkiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgInhtbHR2RmlsZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIlhNTFRWIEZpbGUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgInhtbHR2Q2hhbm5lbCI6DQogICAgew0KICAgICAgInRpdGxlIjogIlhNTFRWIENoYW5uZWwiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgInRpbWVzaGlmdCI6DQogICAgew0KICAgICAgInRpdGxlIjogIlRpbWVzaGlmdCIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiMCIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0NCiAgfSwNCiAgInVzZXJzIjoNCiAgew0KICAgICJ0YWJsZSI6DQogICAgew0KICAgICAgInVzZXJuYW1lIjogIlVzZXJuYW1lIiwNCiAgICAgICJwYXNzd29yZCI6ICJQYXNzd29yZCIsDQogICAgICAid2ViIjogIldFQiIsDQogICAgICAicG1zIjogIlBNUyIsDQogICAgICAibTN1IjogIk0zVSIsDQogICAgICAieG1sIjogIlhNTCIsDQogICAgICAiYXBpIjogIkFQSSINCiAgICB9LA0KICAgICJ1c2VybmFtZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIlVzZXJuYW1lIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJVc2VybmFtZSIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgInBhc3N3b3JkIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiUGFzc3dvcmQiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIlBhc3N3b3JkIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAiY29uZmlybSI6DQogICAgew0KICAgICAgInRpdGxlIjogIkNvbmZpcm0iLA0KICAgICAgInBsYWNlaG9sZGVyIjogIlBhc3N3b3JkIGNvbmZpcm0iLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJ3ZWIiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJXZWIgQWNjZXNzIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJwbXMiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJQTVMgQWNjZXNzIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJtM3UiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJNM1UgQWNjZXNzIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJ4bWwiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJYTUwgQWNjZXNzIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJhcGkiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJBUEkgQWNjZXNzIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9DQogIH0sDQogICJzZXR0aW5ncyI6DQogIHsNCiAgICAiY2F0ZWdvcnkiOg0KICAgIHsNCiAgICAgICJnZW5lcmFsIjogIkdlbmVyYWwiLA0KICAgICAgImZpbGVzIjogIkZpbGVzIiwNCiAgICAgICJzdHJlYW1pbmciOiAiU3RyZWFtaW5nIiwNCiAgICAgICJiYWNrdXAiOiAiQmFja3VwIiwNCiAgICAgICJhdXRoZW50aWNhdGlvbiI6ICJBdXRoZW50aWNhdGlvbiINCiAgICB9LA0KICAgICJ1cGRhdGUiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJTY2hlZHVsZSBmb3IgdXBkYXRpbmcgKFBsYXlsaXN0LCBYTUxUViwgQmFja3VwKSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiMDAwMCwxMDAwLDIwMDAiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIlRpbWUgaW4gMjQgaG91ciBmb3JtYXQgKDA4MDAgPSA4OjAwIGFtKS4gTW9yZSB0aW1lcyBjYW4gYmUgZW50ZXJlZCBjb21tYSBzZXBhcmF0ZWQuIExlYXZlIHRoaXMgZmllbGQgZW1wdHkgaWYgbm8gdXBkYXRlcyBhcmUgdG8gYmUgY2FycmllZCBvdXQuIg0KICAgIH0sDQogICAgImFwaSI6DQogICAgew0KICAgICAgInRpdGxlIjogIkFQSSBJbnRlcmZhY2UiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIlZpYSBBUEkgaW50ZXJmYWNlIGl0IGlzIHBvc3NpYmxlIHRvIHNlbmQgY29tbWFuZHMgdG8geFRlVmUuIEFQSSBkb2N1bWVudGF0aW9uIGlzIDxhIGhyZWY9J2h0dHBzOi8vZ2l0aHViLmNvbS94dGV2ZS1wcm9qZWN0L3hUZVZlLURvY3VtZW50YXRpb24vYmxvYi9tYXN0ZXIvZW4vY29uZmlndXJhdGlvbi5tZCNhcGknPmhlcmU8L2E+Ig0KICAgIH0sDQogICAgImVwZ1NvdXJjZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIkVQRyBTb3VyY2UiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIlBNUzo8YnI+LSBVc2UgRVBHIGRhdGEgZnJvbSBQbGV4IG9yIEVtYnkgPGJyPjxicj5YRVBHOjxicj4tIFVzZSBvZiBvbmUgb3IgbW9yZSBYTUxUViBmaWxlczxicj4tIENoYW5uZWwgbWFuYWdlbWVudDxicj4tIE0zVSAvIFhNTFRWIGV4cG9ydCAoSFRUUCBsaW5rIGZvciBJUFRWIGFwcHMpIg0KICAgIH0sDQogICAgInR1bmVyIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiTnVtYmVyIG9mIFR1bmVycyIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiTnVtYmVyIG9mIHBhcmFsbGVsIGNvbm5lY3Rpb25zIHRoYXQgY2FuIGJlIGVzdGFibGlzaGVkIHRvIHRoZSBwcm92aWRlci48YnI+QXZhaWxhYmxlIGZvcjogUGxleCwgRW1ieSAoSERIUiksIE0zVSAod2l0aCBhY3RpdmUgYnVmZmVyKS48YnI+QWZ0ZXIgYSBjaGFuZ2UsIHhUZVZlIG11c3QgYmUgZGVsZXRlIGluIHRoZSBQbGV4IC8gRW1ieSBEVlIgc2V0dGluZ3MgYW5kIHNldCB1cCBhZ2Fpbi4iDQogICAgfSwNCiAgICAiaG9zdElQIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiSG9zdCBJUCIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiSVAgYWRkcmVzcyB4VGVWZSB3aWxsIHVzZSB0byBmb3JtIE0zVSBhbmQgWE1MVFYgZmlsZXMiDQogICAgfSwNCiAgICAidGxzTW9kZSI6IHsNCiAgICAgICJ0aXRsZSI6ICJUTFMgKEhUVFBTKSBtb2RlIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJDaGFuZ2VzIHdlYiBzZXJ2ZXIgcHJvdG9jb2wgdG8gSFRUUFMuPGJyPkZvciBkZXRhaWxzLCBzZWUgPGE+aHR0cHM6Ly9naXRodWIuY29tL1NDUDAwMi94VGVWZSN0bHMtbW9kZTwvYT4iDQogICAgfSwNCiAgICAiZmlsZXNVcGRhdGUiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJVcGRhdGVzIGFsbCBmaWxlcyBhdCBzdGFydHVwIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJVcGRhdGVzIGFsbCBwbGF5bGlzdHMsIHR1bmVyIGFuZCBYTUxUViBmaWxlcyBhdCBzdGFydHVwLiINCiAgICB9LA0KICAgICJjYWNoZUltYWdlcyI6DQogICAgew0KICAgICAgInRpdGxlIjogIkltYWdlIENhY2hpbmciLA0KICAgICAgImRlc2NyaXB0aW9uIjogIkFsbCBpbWFnZXMgZnJvbSB0aGUgWE1MVFYgZmlsZSBhcmUgY2FjaGVkLCBhbGxvd2luZyBmYXN0ZXIgcmVuZGVyaW5nIG9mIHRoZSBncmlkIGluIHRoZSBjbGllbnQuPGJyPkRvd25sb2FkaW5nIHRoZSBpbWFnZXMgbWF5IHRha2UgYSB3aGlsZSBhbmQgd2lsbCBiZSBkb25lIGluIHRoZSBiYWNrZ3JvdW5kLiINCiAgICB9LA0KICAgICJyZXBsYWNlRW1wdHlJbWFnZXMiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJSZXBsYWNlIG1pc3NpbmcgcHJvZ3JhbSBpbWFnZXMiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIklmIHRoZSBwb3N0ZXIgaW4gdGhlIFhNTFRWIHByb2dyYW0gaXMgbWlzc2luZywgdGhlIGNoYW5uZWwgbG9nbyB3aWxsIGJlIHVzZWQuIg0KICAgIH0sDQogICAgInh0ZXZlQXV0b1VwZGF0ZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIkF1dG9tYXRpYyB1cGRhdGUgb2YgeFRlVmUiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIklmIGEgbmV3IHZlcnNpb24gb2YgeFRlVmUgaXMgYXZhaWxhYmxlLCBpdCB3aWxsIGJlIGF1dG9tYXRpY2FsbHkgaW5zdGFsbGVkLiBUaGUgdXBkYXRlcyBhcmUgZG93bmxvYWRlZCBmcm9tIEdpdEh1Yi4iDQogICAgfSwNCiAgICAic3RyZWFtQnVmZmVyaW5nIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiU3RyZWFtIEJ1ZmZlciIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiRnVuY3Rpb25zIG9mIHRoZSBidWZmZXI6PGJyPi0gVGhlIHN0cmVhbSBpcyBwYXNzZWQgZnJvbSB4VGVWZSwgRkZtcGVnIG9yIFZMQyB0byBQbGV4LCBFbWJ5IG9yIE0zVSBQbGF5ZXI8YnI+LSBTbWFsbCBqZXJraW5nIG9mIHRoZSBzdHJlYW1zIGNhbiBiZSBjb21wZW5zYXRlZDxicj4tIEhMUyAvIE0zVTggc3VwcG9ydDxicj4tIFJUUCAvIFJUUFMgc3VwcG9ydCAob25seSBGRm1wZWcgb3IgVkxDKTxicj4tIFJlLXN0cmVhbWluZzxicj4tIFNlcGFyYXRlIHR1bmVyIGxpbWl0IGZvciBlYWNoIHBsYXlsaXN0IiwNCiAgICAgICJpbmZvX2ZhbHNlIjogIk5vIEJ1ZmZlciAoQ2xpZW50IGNvbm5lY3RzIHRvIHRoZSBzdHJlYW1pbmcgc2VydmVyKSIsDQogICAgICAiaW5mb194dGV2ZSI6ICJ4VGVWZSBjb25uZWN0cyB0byB0aGUgc3RyZWFtaW5nIHNlcnZlciIsDQogICAgICAiaW5mb19mZm1wZWciOiAiRkZtcGVnIGNvbm5lY3RzIHRvIHRoZSBzdHJlYW1pbmcgc2VydmVyIiwNCiAgICAgICJpbmZvX3ZsYyI6ICJWTEMgY29ubmVjdHMgdG8gdGhlIHN0cmVhbWluZyBzZXJ2ZXIiDQoNCiAgICB9LA0KICAgICJ1ZHB4eSI6DQogICAgew0KICAgICAgInRpdGxlIjogIlVEUHh5IGFkZHJlc3MiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIlRoZSBhZGRyZXNzIG9mIHlvdXIgVURQeHkgc2VydmVyLiBJZiBzZXQsIGFuZCB0aGUgY2hhbm5lbCBVUkxzIGluIHRoZSBtM3UgaXMgbXVsdGljYXN0LCB4VGVWZSB3aWxsIHJld3JpdGUgaXQgc28gdGhhdCBpdCBpcyBhY2Nlc3NlZCB2aWEgdGhlIFVEUHh5IHNlcnZpY2UuIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJob3N0OnBvcnQiDQogICAgfSwNCiAgICAiZmZtcGVnUGF0aCI6DQogICAgew0KICAgICAgInRpdGxlIjogIkZGbXBlZyBCaW5hcnkgUGF0aCIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiUGF0aCB0byBGRm1wZWcgYmluYXJ5LiIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiL3BhdGgvdG8vZmZtcGVnIg0KICAgIH0sDQogICAgImZmbXBlZ09wdGlvbnMiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJGRm1wZWcgT3B0aW9ucyIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiRkZtcGVnIG9wdGlvbnMuPGJyPk9ubHkgY2hhbmdlIGlmIHlvdSBrbm93IHdoYXQgeW91IGFyZSBkb2luZy48YnI+TGVhdmUgYmxhbmsgdG8gc2V0IGRlZmF1bHQgc2V0dGluZ3MuIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJMZWF2ZSBibGFuayB0byBzZXQgZGVmYXVsdCBzZXR0aW5ncyINCiAgICB9LA0KICAgICJ2bGNQYXRoIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiVkxDIC8gQ1ZMQyBCaW5hcnkgUGF0aCIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiUGF0aCB0byBWTEMgLyBDVkxDIGJpbmFyeS4iLA0KICAgICAgInBsYWNlaG9sZGVyIjogIi9wYXRoL3RvL2N2bGMiDQogICAgfSwNCiAgICAidmxjT3B0aW9ucyI6DQogICAgew0KICAgICAgInRpdGxlIjogIlZMQyAvIENWTEMgT3B0aW9ucyIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiVkxDIC8gQ1ZMQyBvcHRpb25zLjxicj5Pbmx5IGNoYW5nZSBpZiB5b3Uga25vdyB3aGF0IHlvdSBhcmUgZG9pbmcuPGJyPkxlYXZlIGJsYW5rIHRvIHNldCBkZWZhdWx0IHNldHRpbmdzLiIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiTGVhdmUgYmxhbmsgdG8gc2V0IGRlZmF1bHQgc2V0dGluZ3MiDQogICAgfSwNCiAgICAiYnVmZmVyU2l6ZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIkJ1ZmZlciBTaXplIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJCdWZmZXIgc2l6ZSBpbiBNQi48YnI+TTNVODogSWYgdGhlIFRTIHNlZ21lbnQgc21hbGxlciB0aGVuIHRoZSBidWZmZXIgc2l6ZSwgdGhlIGZpbGUgc2l6ZSBvZiB0aGUgc2VnbWVudCBpcyB1c2VkLiINCiAgICB9LA0KICAgICJzdG9yZUJ1ZmZlckluUkFNIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiU3RvcmUgYnVmZmVyIGluIFJBTSIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiSWYgY2hlY2tlZCwgd3JpdGUgYnVmZmVyIHRvIFJBTSBpbnN0ZWFkIG9mIHdyaXRpbmcgdG8gZGlzayINCiAgICB9LA0KICAgICJidWZmZXJUaW1lb3V0IjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiVGltZW91dCBmb3IgbmV3IGNsaWVudCBjb25uZWN0aW9ucyIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiVGhlIHhUZVZlIGJ1ZmZlciB3YWl0cyB1bnRpbCBuZXcgY2xpZW50IGNvbm5lY3Rpb25zIGFyZSBlc3RhYmxpc2hlZC4gSGVscGZ1bCBmb3IgZmFzdCBjaGFubmVsIHN3aXRjaGluZy4gVmFsdWUgaW4gbWlsbGlzZWNvbmRzLiIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiMTAwIg0KICAgIH0sDQogICAgInVzZXJBZ2VudCI6DQogICAgew0KICAgICAgInRpdGxlIjogIlVzZXIgQWdlbnQiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIlVzZXIgQWdlbnQgZm9yIEhUVFAgcmVxdWVzdHMuIEZvciBldmVyeSBIVFRQIGNvbm5lY3Rpb24sIHRoaXMgdmFsdWUgaXMgdXNlZCBmb3IgdGhlIHVzZXIgYWdlbnQuIFNob3VsZCBvbmx5IGJlIGNoYW5nZWQgaWYgeFRlVmUgaXMgYmxvY2tlZC4iLA0KICAgICAgInBsYWNlaG9sZGVyIjogInhUZVZlIg0KICAgIH0sDQogICAgImJhY2t1cFBhdGgiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJMb2NhdGlvbiBmb3IgYXV0b21hdGljIGJhY2t1cHMiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIi9tbnQvZGF0YS9iYWNrdXAveHRldmUvIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJCZWZvcmUgYW55IHVwZGF0ZSBvZiB0aGUgcHJvdmlkZXIgZGF0YSBieSB0aGUgc2NoZWR1bGUsIHhUZVZlIGNyZWF0ZXMgYSBiYWNrdXAuIFRoZSBwYXRoIGZvciB0aGUgYXV0b21hdGljIGJhY2t1cHMgY2FuIGJlIGNoYW5nZWQuIHhUZVZlIHJlcXVpcmVzIHdyaXRlIHBlcm1pc3Npb24gZm9yIHRoaXMgZm9sZGVyLiINCiAgICB9LA0KICAgICJ0ZW1wUGF0aCI6DQogICAgew0KICAgICAgInRpdGxlIjogIkxvY2F0aW9uIGZvciB0aGUgdGVtcG9yYXJ5IGZpbGVzIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIvdG1wL3h0ZXZlLyIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiTG9jYXRpb24gZm9yIHRoZSBidWZmZXIgZmlsZXMuIg0KICAgIH0sDQogICAgImJhY2t1cEtlZXAiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJOdW1iZXIgb2YgYmFja3VwcyB0byBrZWVwIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJOdW1iZXIgb2YgYmFja3VwcyB0byBrZWVwLiBPbGRlciBiYWNrdXBzIGFyZSBhdXRvbWF0aWNhbGx5IGRlbGV0ZWQuIg0KICAgIH0sDQogICAgImF1dGhlbnRpY2F0aW9uV0VCIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiV0VCIEF1dGhlbnRpY2F0aW9uIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJBY2Nlc3MgdG8gdGhlIHdlYiBpbnRlcmZhY2Ugb25seSBwb3NzaWJsZSB3aXRoIGNyZWRlbnRpYWxzLiINCiAgICB9LA0KICAgICJhdXRoZW50aWNhdGlvblBNUyI6DQogICAgew0KICAgICAgInRpdGxlIjogIlBNUyBBdXRoZW50aWNhdGlvbiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiUGxleCByZXF1ZXN0cyBhcmUgb25seSBwb3NzaWJsZSB3aXRoIGF1dGhlbnRpY2F0aW9uLiA8YnI+PGI+V2FybmluZyEhITwvYj4gQWZ0ZXIgYWN0aXZhdGluZyB0aGlzIGZ1bmN0aW9uIHhUZVZlIG11c3QgYmUgZGVsZXRlIGluIHRoZSBQTVMgRFZSIHNldHRpbmdzIGFuZCBzZXQgdXAgYWdhaW4uIg0KICAgIH0sDQogICAgImF1dGhlbnRpY2F0aW9uTTNVIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiTTNVIEF1dGhlbnRpY2F0aW9uIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJEb3dubG9hZGluZyB0aGUgeHRldmUubTN1IGZpbGUgdmlhIGFuIEhUVFAgcmVxdWVzdCBpcyBvbmx5IHBvc3NpYmxlIHdpdGggYXV0aGVudGljYXRpb24uIg0KICAgIH0sDQogICAgImF1dGhlbnRpY2F0aW9uWE1MIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiWE1MIEF1dGhlbnRpY2F0aW9uIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJEb3dubG9hZGluZyB0aGUgeHRldmUueG1sIGZpbGUgdmlhIGFuIEhUVFAgcmVxdWVzdCBpcyBvbmx5IHBvc3NpYmxlIHdpdGggYXV0aGVudGljYXRpb24iDQogICAgfSwNCiAgICAiYXV0aGVudGljYXRpb25BUEkiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJBUEkgQXV0aGVudGljYXRpb24iLA0KICAgICAgImRlc2NyaXB0aW9uIjogIkFjY2VzcyB0byB0aGUgQVBJIGludGVyZmFjZSBpcyBvbmx5IHBvc3NpYmxlIHdpdGggYXV0aGVudGljYXRpb24uIg0KICAgIH0NCiAgfSwNCiAgIndpemFyZCI6DQogIHsNCiAgICAiZXBnU291cmNlIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiRVBHIFNvdXJjZSIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiUE1TOjxicj4tIFVzZSBFUEcgZGF0YSBmcm9tIFBsZXggb3IgRW1ieSA8YnI+PGJyPlhFUEc6PGJyPi0gVXNlIG9mIG9uZSBvciBtb3JlIFhNTFRWIGZpbGVzPGJyPi0gQ2hhbm5lbCBtYW5hZ2VtZW50PGJyPi0gTTNVIC8gWE1MVFYgZXhwb3J0IChIVFRQIGxpbmsgZm9yIElQVFYgYXBwcykiDQogICAgfSwNCiAgICAidHVuZXIiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJOdW1iZXIgb2YgdHVuZXJzIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJOdW1iZXIgb2YgcGFyYWxsZWwgY29ubmVjdGlvbnMgdGhhdCBjYW4gYmUgZXN0YWJsaXNoZWQgdG8gdGhlIHByb3ZpZGVyLjxicj5BdmFpbGFibGUgZm9yOiBQbGV4LCBFbWJ5IChIREhSKSwgTTNVICh3aXRoIGFjdGl2ZSBidWZmZXIpLjxicj5BZnRlciBhIGNoYW5nZSwgeFRlVmUgbXVzdCBiZSBkZWxldGUgaW4gdGhlIFBsZXggLyBFbWJ5IERWUiBzZXR0aW5ncyBhbmQgc2V0IHVwIGFnYWluLiINCiAgICB9LA0KICAgICJtM3UiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJNM1UgUGxheWxpc3QiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIkZpbGUgcGF0aCBvciBVUkwgb2YgdGhlIE0zVSIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiTG9jYWwgb3IgcmVtb3RlIHBsYXlsaXN0cyINCiAgICB9LA0KICAgICJ4bWx0diI6DQogICAgew0KICAgICAgInRpdGxlIjogIlhNTFRWIEZpbGUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIkZpbGUgcGF0aCBvciBVUkwgb2YgdGhlIFhNTFRWIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJMb2NhbCBvciByZW1vdGUgWE1MVFYgZmlsZSINCiAgICB9DQogIH0sDQogICJsb2dpbiI6DQogIHsNCiAgICAiZmFpbGVkIjogIlVzZXIgYXV0aGVudGljYXRpb24gZmFpbGVkIiwNCiAgICAiaGVhZGxpbmUiOiAiTG9naW4iLA0KICAgICJ1c2VybmFtZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIlVzZXJuYW1lIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJVc2VybmFtZSINCiAgICB9LA0KICAgICJwYXNzd29yZCI6DQogICAgew0KICAgICAgInRpdGxlIjogIlBhc3N3b3JkIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJQYXNzd29yZCINCiAgICB9DQogIH0sDQogICJhY2NvdW50IjoNCiAgew0KICAgICJmYWlsZWQiOiAiUGFzc3dvcmQgZG9lcyBub3QgbWF0Y2giLA0KICAgICJoZWFkbGluZSI6ICJDcmVhdGUgdXNlciBhY2NvdW50IiwNCiAgICAidXNlcm5hbWUiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJVc2VybmFtZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiVXNlcm5hbWUiDQogICAgfSwNCiAgICAicGFzc3dvcmQiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJQYXNzd29yZCIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiUGFzc3dvcmQiDQogICAgfSwNCiAgICAiY29uZmlybSI6DQogICAgew0KICAgICAgInRpdGxlIjogIkNvbmZpcm0iLA0KICAgICAgInBsYWNlaG9sZGVyIjogIkNvbmZpcm0iDQogICAgfQ0KICB9DQp9" + webUI["html/lang/en.json"] = "ew0KICAibWFpbk1lbnUiOg0KICB7DQogICAgIml0ZW0iOg0KICAgIHsNCiAgICAgICJwbGF5bGlzdCI6ICJQbGF5bGlzdCIsDQogICAgICAicG1zSUQiOiAiUE1TIElEIiwNCiAgICAgICJmaWx0ZXIiOiAiRmlsdGVyIiwNCiAgICAgICJ4bWx0diI6ICJYTUxUViIsDQogICAgICAibWFwcGluZyI6ICJNYXBwaW5nIiwNCiAgICAgICJ1c2VycyI6ICJVc2VycyIsDQogICAgICAic2V0dGluZ3MiOiAiU2V0dGluZ3MiLA0KICAgICAgImxvZyI6ICJMb2ciLA0KICAgICAgImxvZ291dCI6ICJMb2dvdXQiDQogICAgfSwNCiAgICAiaGVhZGxpbmUiOg0KICAgIHsNCiAgICAgICJwbGF5bGlzdCI6ICJMb2NhbCBvciByZW1vdGUgcGxheWxpc3RzIiwNCiAgICAgICJmaWx0ZXIiOiAiRmlsdGVyIHBsYXlsaXN0IiwNCiAgICAgICJ4bWx0diI6ICJMb2NhbCBvciByZW1vdGUgWE1MVFYgZmlsZXMiLA0KICAgICAgIm1hcHBpbmciOiAiTWFwIHBsYXlsaXN0IGNoYW5uZWxzIHRvIEVQRyBjaGFubmVscyIsDQogICAgICAidXNlcnMiOiAiVXNlciBtYW5hZ2VtZW50IiwNCiAgICAgICJzZXR0aW5ncyI6ICJTZXR0aW5ncyIsDQogICAgICAibG9nIjogIkxvZyIsDQogICAgICAibG9nb3V0IjogIkxvZ291dCINCiAgICB9DQogIH0sDQogICJjb25maXJtIjoNCiAgew0KICAgICJyZXN0b3JlIjogIkFsbCBkYXRhIHdpbGwgYmUgcmVwbGFjZWQgd2l0aCB0aG9zZSBmcm9tIHRoZSBiYWNrdXAuIFNob3VsZCB0aGUgZmlsZXMgYmUgcmVzdG9yZWQ/Ig0KICB9LA0KICAiYWxlcnQiOg0KICB7DQogICAgImZpbGVMb2FkaW5nRXJyb3IiOiAiRmlsZSBjb3VsZG4ndCBiZSBsb2FkZWQiLA0KICAgICJpbnZhbGlkQ2hhbm5lbE51bWJlciI6ICJJbnZhbGlkIGNoYW5uZWwgbnVtYmVyIiwNCiAgICAibWlzc2luZ0lucHV0IjogIk1pc3NpbmcgaW5wdXQiDQogIH0sDQogICJidXR0b24iOg0KICB7DQogICAgImJhY2siOiAiQmFjayIsDQogICAgImJhY2t1cCI6ICJCYWNrdXAiLA0KICAgICJidWxrRWRpdCI6ICJCdWxrIEVkaXQiLA0KICAgICJjYW5jZWwiOiAiQ2FuY2VsIiwNCiAgICAiZGVsZXRlIjogIkRlbGV0ZSIsDQogICAgImRvbmUiOiAiRG9uZSIsDQogICAgImxvZ2luIjogIkxvZ2luIiwNCiAgICAibmV3IjogIk5ldyIsDQogICAgIm5leHQiOiAiTmV4dCIsDQogICAgInJlc3RvcmUiOiAiUmVzdG9yZSIsDQogICAgInNhdmUiOiAiU2F2ZSIsDQogICAgInNlYXJjaCI6ICJTZWFyY2giLA0KICAgICJ1cGRhdGUiOiAiVXBkYXRlIiwNCiAgICAiY3JhZXRlQWNjb3VudCI6ICJDcmVhdGUgQWNjb3VudCIsDQogICAgInJlc2V0TG9ncyI6ICJSZXNldCBMb2dzIiwNCiAgICAidXBsb2FkTG9nbyI6ICJVcGxvYWQgTG9nbyINCiAgfSwNCiAgImZpbHRlciI6DQogIHsNCiAgICAidGFibGUiOg0KICAgIHsNCiAgICAgICJzdGFydGluZ0NoYW5uZWwiOiAiU3RhcnRpbmcgQ2guIE5vLiIsDQogICAgICAibmFtZSI6ICJGaWx0ZXIgTmFtZSIsDQogICAgICAidHlwZSI6ICJGaWx0ZXIgVHlwZSIsDQogICAgICAiZmlsdGVyIjogIkZpbHRlciINCiAgICB9LA0KICAgICJjdXN0b20iOiAiQ3VzdG9tIiwNCiAgICAiZ3JvdXAiOiAiTTNVIEdyb3VwIiwNCiAgICAibmFtZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIkZpbHRlciBOYW1lIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJGaWx0ZXIgbmFtZSIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgImRlc2NyaXB0aW9uIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiRGVzY3JpcHRpb24iLA0KICAgICAgInBsYWNlaG9sZGVyIjogIkRlc2NyaXB0aW9uIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAidHlwZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIlR5cGUiLA0KICAgICAgImdyb3VwVGl0bGUiOiAiR3JvdXAgVGl0bGUiLA0KICAgICAgImN1c3RvbUZpbHRlciI6ICJDdXN0b20gRmlsdGVyIg0KICAgIH0sDQogICAgImNhc2VTZW5zaXRpdmUiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJDYXNlIFNlbnNpdGl2ZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAiZmlsdGVyUnVsZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIkZpbHRlciBSdWxlIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJTcG9ydCB7SER9ICF7RVMsSVR9IiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAiZmlsdGVyR3JvdXAiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJHcm91cCBUaXRsZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJTZWxlY3QgYSBNM1UgZ3JvdXAuIChDb3VudGVyKTxicj5DaGFuZ2luZyB0aGUgZ3JvdXAgdGl0bGUgaW4gdGhlIE0zVSBpbnZhbGlkYXRlcyB0aGUgZmlsdGVyLiINCiAgICB9LA0KICAgICJpbmNsdWRlIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiSW5jbHVkZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiRkhELFVIRCIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiQ2hhbm5lbCBuYW1lIG11c3QgaW5jbHVkZS48YnI+KENvbW1hIHNlcGFyYXRlZCkgQ29tbWEgbWVhbnMgb3IiDQogICAgfSwNCiAgICAiZXhjbHVkZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIkV4Y2x1ZGUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIkVTLElUIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJDaGFubmVsIG5hbWUgbXVzdCBub3QgY29udGFpbi48YnI+KENvbW1hIHNlcGFyYXRlZCkgQ29tbWEgbWVhbnMgb3IiDQogICAgfSwNCiAgICAicHJlc2VydmVNYXBwaW5nIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiUHJlc2VydmUgRXhpc3RpbmcgTTNVPGJyPkNoYW5uZWwgTnVtYmVycyIsDQogICAgICAicGFsY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJQcmVzZXJ2ZSBleGlzdGluZyBNM1UgcGxheWxpc3QgY2hhbm5lbCBudW1iZXJzPyINCiAgICB9LA0KICAgICJzdGFydGluZ0NoYW5uZWwiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJTdGFydGluZyBDaGFubmVsIE51bWJlciIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAiZGVmYXVsdE1pc3NpbmdFUEciOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJGaWxsIE1pc3NpbmcgRVBHIERhdGEiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiV2hlbiB0aGVyZSBpcyBubyBtYXRjaGluZyBFUEcgZGF0YSBmb3IgY2hhbm5lbCwgPGJyPmF1dG9maWxsIHdpdGggeFRlVmUgZHVtbXkgRVBHIGRhdGE/Ig0KICAgIH0NCg0KICB9LA0KICAicGxheWxpc3QiOg0KICB7DQogICAgInRhYmxlIjoNCiAgICB7DQogICAgICAicGxheWxpc3QiOiAiUGxheWxpc3QiLA0KICAgICAgInR1bmVyIjogIlR1bmVyIiwNCiAgICAgICJsYXN0VXBkYXRlIjogIkxhc3QgVXBkYXRlIiwNCiAgICAgICJhdmFpbGFiaWxpdHkiOiAiQXZhaWxhYmlsaXR5IiwNCiAgICAgICJ0eXBlIjogIlR5cGUiLA0KICAgICAgInN0cmVhbXMiOiAiU3RyZWFtcyIsDQogICAgICAiZ3JvdXBUaXRsZSI6ICJncm91cC10aXRsZSIsDQogICAgICAidHZnSUQiOiAidHZnLWlkIiwNCiAgICAgICJ1bmlxdWVJRCI6ICJVbmlxdWUgSUQiDQogICAgfSwNCiAgICAicGxheWxpc3RUeXBlIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiUGxheWxpc3QgdHlwZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAidHlwZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIlR5cGUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgIm5hbWUiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJOYW1lIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJQbGF5bGlzdCBuYW1lIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAiZGVzY3JpcHRpb24iOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJEZXNjcmlwdGlvbiIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiRGVzY3JpcHRpb24iLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJmaWxlTTNVIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiTTNVIEZpbGUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIkZpbGUgcGF0aCBvciBVUkwgb2YgdGhlIE0zVSIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgImZpbGVIREhSIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiSERIb21lUnVuIElQIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJJUCBhZGRyZXNzIGFuZCBwb3J0ICgxOTIuMTY4LjEuMTA6NTAwNCkiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJ0dW5lciI6DQogICAgew0KICAgICAgInRpdGxlIjogIlR1bmVyIC8gU3RyZWFtcyIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJOdW1iZXIgb2YgcGFyYWxsZWwgY29ubmVjdGlvbnMgdGhhdCBjYW4gYmUgZXN0YWJsaXNoZWQgdG8gdGhlIHByb3ZpZGVyLiA8YnI+T25seSBhdmFpbGFibGUgd2l0aCBhY3RpdmF0ZWQgYnVmZmVyLjxicj5OZXcgc2V0dGluZ3Mgd2lsbCBvbmx5IGJlIGFwcGxpZWQgYWZ0ZXIgcXVpdHRpbmcgYWxsIHN0cmVhbXMuIg0KICAgIH0NCiAgfSwNCiAgInhtbHR2IjoNCiAgew0KICAgICJ0YWJsZSI6DQogICAgew0KICAgICAgImd1aWRlIjogIkd1aWRlIiwNCiAgICAgICJsYXN0VXBkYXRlIjogIkxhc3QgVXBkYXRlIiwNCiAgICAgICJhdmFpbGFiaWxpdHkiOiAiQXZhaWxhYmlsaXR5IiwNCiAgICAgICJjaGFubmVscyI6ICJDaGFubmVscyIsDQogICAgICAicHJvZ3JhbXMiOiAiUHJvZ3JhbXMiDQogICAgfSwNCiAgICAibmFtZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIk5hbWUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIkd1aWRlIG5hbWUiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJkZXNjcmlwdGlvbiI6DQogICAgew0KICAgICAgInRpdGxlIjogIkRlc2NyaXB0aW9uIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJEZXNjcmlwdGlvbiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgImZpbGVYTUxUViI6DQogICAgew0KICAgICAgInRpdGxlIjogIlhNTFRWIEZpbGUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIkZpbGUgcGF0aCBvciBVUkwgb2YgdGhlIFhNTFRWIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfQ0KICB9LA0KICAibWFwcGluZyI6DQogIHsNCiAgICAidGFibGUiOg0KICAgIHsNCiAgICAgICJjaE5vIjogIkNoLiBOby4iLA0KICAgICAgImxvZ28iOiAiTG9nbyIsDQogICAgICAiY2hhbm5lbE5hbWUiOiAiQ2hhbm5lbCBOYW1lIiwNCiAgICAgICJ1cGRhdGVDaGFubmVsTmFtZVJlZ2V4IjogIlVwZC4gUnguIiwNCiAgICAgICJwbGF5bGlzdCI6ICJQbGF5bGlzdCIsDQogICAgICAiZ3JvdXBUaXRsZSI6ICJHcm91cCBUaXRsZSIsDQogICAgICAieG1sdHZGaWxlIjogIlhNTFRWIEZpbGUiLA0KICAgICAgInhtbHR2SUQiOiAiWE1MVFYgSUQiLA0KICAgICAgInRpbWVzaGlmdCI6ICJUaW1lc2hpZnQiDQogICAgfSwNCiAgICAiYWN0aXZlIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiQWN0aXZlIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJjaGFubmVsTmFtZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIkNoYW5uZWwgTmFtZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAiZGVzY3JpcHRpb24iOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJDaGFubmVsIERlc2NyaXB0aW9uIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJVc2VkIGJ5IHRoZSBEdW1teSBhcyBhbiBYTUwgZGVzY3JpcHRpb24iLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJ1cGRhdGVDaGFubmVsTmFtZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIlVwZGF0ZSBDaGFubmVsIE5hbWUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgInVwZGF0ZUNoYW5uZWxOYW1lUmVnZXgiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJDaGFubmVsIG5hbWUgdXBkYXRlIHJlZ2V4IiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJGb3IgZXhhbXBsZSBeUFBWLj8xLioiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIk9uIHVwZGF0ZSwgaWYgYW55IG5ldyBjaGFubmVsIG5hbWUgbWF0Y2hlcyB0aGlzIHJlZ2V4LCByZW5hbWUgY3VycmVudCBjaGFubmVsIHRvIHRoZSBmaXJzdCBtYXRjaGluZyBuYW1lIg0KICAgIH0sDQogICAgInVwZGF0ZUNoYW5uZWxOYW1lQnlHcm91cFJlZ2V4IjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiT25seSBieSBncm91cCByZWdleCIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJSZW5hbWUgdGhpcyBjaGFubmVsIG9ubHkgaWYgY3VycmVudCB1c2VyLWRlZmluZWQgZ3JvdXAgbWF0Y2hlcyB0aGlzIHJlZ2V4Ig0KICAgIH0sDQogICAgInVwZGF0ZUNoYW5uZWxHcm91cCI6DQogICAgew0KICAgICAgInRpdGxlIjogIlVwZGF0ZSBDaGFubmVsIEdyb3VwIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIklmIGNoZWNrZWQsIHVzZSBncm91cCBmcm9tIHRoZSBkYXRhYmFzZSINCiAgICB9LA0KICAgICJjaGFubmVsTG9nbyI6DQogICAgew0KICAgICAgInRpdGxlIjogIkxvZ28gVVJMIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJ1cGRhdGVDaGFubmVsTG9nbyI6DQogICAgew0KICAgICAgInRpdGxlIjogIlVwZGF0ZSBDaGFubmVsIExvZ28iLA0KICAgICAgInBsYWNlaG9sZGVyIjogIiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgImVwZ0NhdGVnb3J5IjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiRVBHIENhdGVnb3J5IiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJtM3VHcm91cFRpdGxlIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiR3JvdXAgVGl0bGUgKHh0ZXZlLm0zdSkiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgInhtbHR2RmlsZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIlhNTFRWIEZpbGUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgInhtbHR2Q2hhbm5lbCI6DQogICAgew0KICAgICAgInRpdGxlIjogIlhNTFRWIENoYW5uZWwiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgInRpbWVzaGlmdCI6DQogICAgew0KICAgICAgInRpdGxlIjogIlRpbWVzaGlmdCIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiMCIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0NCiAgfSwNCiAgInVzZXJzIjoNCiAgew0KICAgICJ0YWJsZSI6DQogICAgew0KICAgICAgInVzZXJuYW1lIjogIlVzZXJuYW1lIiwNCiAgICAgICJwYXNzd29yZCI6ICJQYXNzd29yZCIsDQogICAgICAid2ViIjogIldFQiIsDQogICAgICAicG1zIjogIlBNUyIsDQogICAgICAibTN1IjogIk0zVSIsDQogICAgICAieG1sIjogIlhNTCIsDQogICAgICAiYXBpIjogIkFQSSINCiAgICB9LA0KICAgICJ1c2VybmFtZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIlVzZXJuYW1lIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJVc2VybmFtZSIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgInBhc3N3b3JkIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiUGFzc3dvcmQiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIlBhc3N3b3JkIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAiY29uZmlybSI6DQogICAgew0KICAgICAgInRpdGxlIjogIkNvbmZpcm0iLA0KICAgICAgInBsYWNlaG9sZGVyIjogIlBhc3N3b3JkIGNvbmZpcm0iLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJ3ZWIiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJXZWIgQWNjZXNzIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJwbXMiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJQTVMgQWNjZXNzIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJtM3UiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJNM1UgQWNjZXNzIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJ4bWwiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJYTUwgQWNjZXNzIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJhcGkiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJBUEkgQWNjZXNzIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9DQogIH0sDQogICJzZXR0aW5ncyI6DQogIHsNCiAgICAiY2F0ZWdvcnkiOg0KICAgIHsNCiAgICAgICJnZW5lcmFsIjogIkdlbmVyYWwiLA0KICAgICAgImZpbGVzIjogIkZpbGVzIiwNCiAgICAgICJzdHJlYW1pbmciOiAiU3RyZWFtaW5nIiwNCiAgICAgICJiYWNrdXAiOiAiQmFja3VwIiwNCiAgICAgICJhdXRoZW50aWNhdGlvbiI6ICJBdXRoZW50aWNhdGlvbiINCiAgICB9LA0KICAgICJ1cGRhdGUiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJTY2hlZHVsZSBmb3IgdXBkYXRpbmcgKFBsYXlsaXN0LCBYTUxUViwgQmFja3VwKSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiMDAwMCwxMDAwLDIwMDAiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIlRpbWUgaW4gMjQgaG91ciBmb3JtYXQgKDA4MDAgPSA4OjAwIGFtKS4gTW9yZSB0aW1lcyBjYW4gYmUgZW50ZXJlZCBjb21tYSBzZXBhcmF0ZWQuIExlYXZlIHRoaXMgZmllbGQgZW1wdHkgaWYgbm8gdXBkYXRlcyBhcmUgdG8gYmUgY2FycmllZCBvdXQuIg0KICAgIH0sDQogICAgImFwaSI6DQogICAgew0KICAgICAgInRpdGxlIjogIkFQSSBJbnRlcmZhY2UiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIlZpYSBBUEkgaW50ZXJmYWNlIGl0IGlzIHBvc3NpYmxlIHRvIHNlbmQgY29tbWFuZHMgdG8geFRlVmUuIEFQSSBkb2N1bWVudGF0aW9uIGlzIDxhIGhyZWY9J2h0dHBzOi8vZ2l0aHViLmNvbS94dGV2ZS1wcm9qZWN0L3hUZVZlLURvY3VtZW50YXRpb24vYmxvYi9tYXN0ZXIvZW4vY29uZmlndXJhdGlvbi5tZCNhcGknPmhlcmU8L2E+Ig0KICAgIH0sDQogICAgImVwZ1NvdXJjZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIkVQRyBTb3VyY2UiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIlBNUzo8YnI+LSBVc2UgRVBHIGRhdGEgZnJvbSBQbGV4IG9yIEVtYnkgPGJyPjxicj5YRVBHOjxicj4tIFVzZSBvZiBvbmUgb3IgbW9yZSBYTUxUViBmaWxlczxicj4tIENoYW5uZWwgbWFuYWdlbWVudDxicj4tIE0zVSAvIFhNTFRWIGV4cG9ydCAoSFRUUCBsaW5rIGZvciBJUFRWIGFwcHMpIg0KICAgIH0sDQogICAgInR1bmVyIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiTnVtYmVyIG9mIFR1bmVycyIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiTnVtYmVyIG9mIHBhcmFsbGVsIGNvbm5lY3Rpb25zIHRoYXQgY2FuIGJlIGVzdGFibGlzaGVkIHRvIHRoZSBwcm92aWRlci48YnI+QXZhaWxhYmxlIGZvcjogUGxleCwgRW1ieSAoSERIUiksIE0zVSAod2l0aCBhY3RpdmUgYnVmZmVyKS48YnI+QWZ0ZXIgYSBjaGFuZ2UsIHhUZVZlIG11c3QgYmUgZGVsZXRlIGluIHRoZSBQbGV4IC8gRW1ieSBEVlIgc2V0dGluZ3MgYW5kIHNldCB1cCBhZ2Fpbi4iDQogICAgfSwNCiAgICAiaG9zdElQIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiSG9zdCBJUCIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiSVAgYWRkcmVzcyB4VGVWZSB3aWxsIHVzZSB0byBmb3JtIE0zVSBhbmQgWE1MVFYgZmlsZXMiDQogICAgfSwNCiAgICAidGxzTW9kZSI6IHsNCiAgICAgICJ0aXRsZSI6ICJUTFMgKEhUVFBTKSBtb2RlIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJDaGFuZ2VzIHdlYiBzZXJ2ZXIgcHJvdG9jb2wgdG8gSFRUUFMuPGJyPkZvciBkZXRhaWxzLCBzZWUgPGE+aHR0cHM6Ly9naXRodWIuY29tL1NDUDAwMi94VGVWZSN0bHMtbW9kZTwvYT4iDQogICAgfSwNCiAgICAiZmlsZXNVcGRhdGUiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJVcGRhdGVzIGFsbCBmaWxlcyBhdCBzdGFydHVwIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJVcGRhdGVzIGFsbCBwbGF5bGlzdHMsIHR1bmVyIGFuZCBYTUxUViBmaWxlcyBhdCBzdGFydHVwLiINCiAgICB9LA0KICAgICJjYWNoZUltYWdlcyI6DQogICAgew0KICAgICAgInRpdGxlIjogIkltYWdlIENhY2hpbmciLA0KICAgICAgImRlc2NyaXB0aW9uIjogIkFsbCBpbWFnZXMgZnJvbSB0aGUgWE1MVFYgZmlsZSBhcmUgY2FjaGVkLCBhbGxvd2luZyBmYXN0ZXIgcmVuZGVyaW5nIG9mIHRoZSBncmlkIGluIHRoZSBjbGllbnQuPGJyPkRvd25sb2FkaW5nIHRoZSBpbWFnZXMgbWF5IHRha2UgYSB3aGlsZSBhbmQgd2lsbCBiZSBkb25lIGluIHRoZSBiYWNrZ3JvdW5kLiINCiAgICB9LA0KICAgICJyZXBsYWNlRW1wdHlJbWFnZXMiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJSZXBsYWNlIG1pc3NpbmcgcHJvZ3JhbSBpbWFnZXMiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIklmIHRoZSBwb3N0ZXIgaW4gdGhlIFhNTFRWIHByb2dyYW0gaXMgbWlzc2luZywgdGhlIGNoYW5uZWwgbG9nbyB3aWxsIGJlIHVzZWQuIg0KICAgIH0sDQogICAgInh0ZXZlQXV0b1VwZGF0ZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIkF1dG9tYXRpYyB1cGRhdGUgb2YgeFRlVmUiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIklmIGEgbmV3IHZlcnNpb24gb2YgeFRlVmUgaXMgYXZhaWxhYmxlLCBpdCB3aWxsIGJlIGF1dG9tYXRpY2FsbHkgaW5zdGFsbGVkLiBUaGUgdXBkYXRlcyBhcmUgZG93bmxvYWRlZCBmcm9tIEdpdEh1Yi4iDQogICAgfSwNCiAgICAic3RyZWFtQnVmZmVyaW5nIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiU3RyZWFtIEJ1ZmZlciIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiRnVuY3Rpb25zIG9mIHRoZSBidWZmZXI6PGJyPi0gVGhlIHN0cmVhbSBpcyBwYXNzZWQgZnJvbSB4VGVWZSwgRkZtcGVnIG9yIFZMQyB0byBQbGV4LCBFbWJ5IG9yIE0zVSBQbGF5ZXI8YnI+LSBTbWFsbCBqZXJraW5nIG9mIHRoZSBzdHJlYW1zIGNhbiBiZSBjb21wZW5zYXRlZDxicj4tIEhMUyAvIE0zVTggc3VwcG9ydDxicj4tIFJUUCAvIFJUUFMgc3VwcG9ydCAob25seSBGRm1wZWcgb3IgVkxDKTxicj4tIFJlLXN0cmVhbWluZzxicj4tIFNlcGFyYXRlIHR1bmVyIGxpbWl0IGZvciBlYWNoIHBsYXlsaXN0IiwNCiAgICAgICJpbmZvX2ZhbHNlIjogIk5vIEJ1ZmZlciAoQ2xpZW50IGNvbm5lY3RzIHRvIHRoZSBzdHJlYW1pbmcgc2VydmVyKSIsDQogICAgICAiaW5mb194dGV2ZSI6ICJ4VGVWZSBjb25uZWN0cyB0byB0aGUgc3RyZWFtaW5nIHNlcnZlciIsDQogICAgICAiaW5mb19mZm1wZWciOiAiRkZtcGVnIGNvbm5lY3RzIHRvIHRoZSBzdHJlYW1pbmcgc2VydmVyIiwNCiAgICAgICJpbmZvX3ZsYyI6ICJWTEMgY29ubmVjdHMgdG8gdGhlIHN0cmVhbWluZyBzZXJ2ZXIiDQoNCiAgICB9LA0KICAgICJ1ZHB4eSI6DQogICAgew0KICAgICAgInRpdGxlIjogIlVEUHh5IGFkZHJlc3MiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIlRoZSBhZGRyZXNzIG9mIHlvdXIgVURQeHkgc2VydmVyLiBJZiBzZXQsIGFuZCB0aGUgY2hhbm5lbCBVUkxzIGluIHRoZSBtM3UgaXMgbXVsdGljYXN0LCB4VGVWZSB3aWxsIHJld3JpdGUgaXQgc28gdGhhdCBpdCBpcyBhY2Nlc3NlZCB2aWEgdGhlIFVEUHh5IHNlcnZpY2UuIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJob3N0OnBvcnQiDQogICAgfSwNCiAgICAiZmZtcGVnUGF0aCI6DQogICAgew0KICAgICAgInRpdGxlIjogIkZGbXBlZyBCaW5hcnkgUGF0aCIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiUGF0aCB0byBGRm1wZWcgYmluYXJ5LiIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiL3BhdGgvdG8vZmZtcGVnIg0KICAgIH0sDQogICAgImZmbXBlZ09wdGlvbnMiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJGRm1wZWcgT3B0aW9ucyIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiRkZtcGVnIG9wdGlvbnMuPGJyPk9ubHkgY2hhbmdlIGlmIHlvdSBrbm93IHdoYXQgeW91IGFyZSBkb2luZy48YnI+TGVhdmUgYmxhbmsgdG8gc2V0IGRlZmF1bHQgc2V0dGluZ3MuIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJMZWF2ZSBibGFuayB0byBzZXQgZGVmYXVsdCBzZXR0aW5ncyINCiAgICB9LA0KICAgICJ2bGNQYXRoIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiVkxDIC8gQ1ZMQyBCaW5hcnkgUGF0aCIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiUGF0aCB0byBWTEMgLyBDVkxDIGJpbmFyeS4iLA0KICAgICAgInBsYWNlaG9sZGVyIjogIi9wYXRoL3RvL2N2bGMiDQogICAgfSwNCiAgICAidmxjT3B0aW9ucyI6DQogICAgew0KICAgICAgInRpdGxlIjogIlZMQyAvIENWTEMgT3B0aW9ucyIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiVkxDIC8gQ1ZMQyBvcHRpb25zLjxicj5Pbmx5IGNoYW5nZSBpZiB5b3Uga25vdyB3aGF0IHlvdSBhcmUgZG9pbmcuPGJyPkxlYXZlIGJsYW5rIHRvIHNldCBkZWZhdWx0IHNldHRpbmdzLiIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiTGVhdmUgYmxhbmsgdG8gc2V0IGRlZmF1bHQgc2V0dGluZ3MiDQogICAgfSwNCiAgICAiYnVmZmVyU2l6ZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIkJ1ZmZlciBTaXplIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJCdWZmZXIgc2l6ZSBpbiBNQi48YnI+TTNVODogSWYgdGhlIFRTIHNlZ21lbnQgc21hbGxlciB0aGVuIHRoZSBidWZmZXIgc2l6ZSwgdGhlIGZpbGUgc2l6ZSBvZiB0aGUgc2VnbWVudCBpcyB1c2VkLiINCiAgICB9LA0KICAgICJzdG9yZUJ1ZmZlckluUkFNIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiU3RvcmUgYnVmZmVyIGluIFJBTSIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiSWYgY2hlY2tlZCwgd3JpdGUgYnVmZmVyIHRvIFJBTSBpbnN0ZWFkIG9mIHdyaXRpbmcgdG8gZGlzayINCiAgICB9LA0KICAgICJidWZmZXJUaW1lb3V0IjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiVGltZW91dCBmb3IgbmV3IGNsaWVudCBjb25uZWN0aW9ucyIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiVGhlIHhUZVZlIGJ1ZmZlciB3YWl0cyB1bnRpbCBuZXcgY2xpZW50IGNvbm5lY3Rpb25zIGFyZSBlc3RhYmxpc2hlZC4gSGVscGZ1bCBmb3IgZmFzdCBjaGFubmVsIHN3aXRjaGluZy4gVmFsdWUgaW4gbWlsbGlzZWNvbmRzLiIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiMTAwIg0KICAgIH0sDQogICAgInVzZXJBZ2VudCI6DQogICAgew0KICAgICAgInRpdGxlIjogIlVzZXIgQWdlbnQiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIlVzZXIgQWdlbnQgZm9yIEhUVFAgcmVxdWVzdHMuIEZvciBldmVyeSBIVFRQIGNvbm5lY3Rpb24sIHRoaXMgdmFsdWUgaXMgdXNlZCBmb3IgdGhlIHVzZXIgYWdlbnQuIFNob3VsZCBvbmx5IGJlIGNoYW5nZWQgaWYgeFRlVmUgaXMgYmxvY2tlZC4iLA0KICAgICAgInBsYWNlaG9sZGVyIjogInhUZVZlIg0KICAgIH0sDQogICAgImJhY2t1cFBhdGgiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJMb2NhdGlvbiBmb3IgYXV0b21hdGljIGJhY2t1cHMiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIi9tbnQvZGF0YS9iYWNrdXAveHRldmUvIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJCZWZvcmUgYW55IHVwZGF0ZSBvZiB0aGUgcHJvdmlkZXIgZGF0YSBieSB0aGUgc2NoZWR1bGUsIHhUZVZlIGNyZWF0ZXMgYSBiYWNrdXAuIFRoZSBwYXRoIGZvciB0aGUgYXV0b21hdGljIGJhY2t1cHMgY2FuIGJlIGNoYW5nZWQuIHhUZVZlIHJlcXVpcmVzIHdyaXRlIHBlcm1pc3Npb24gZm9yIHRoaXMgZm9sZGVyLiINCiAgICB9LA0KICAgICJ0ZW1wUGF0aCI6DQogICAgew0KICAgICAgInRpdGxlIjogIkxvY2F0aW9uIGZvciB0aGUgdGVtcG9yYXJ5IGZpbGVzIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIvdG1wL3h0ZXZlLyIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiTG9jYXRpb24gZm9yIHRoZSBidWZmZXIgZmlsZXMuIg0KICAgIH0sDQogICAgImJhY2t1cEtlZXAiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJOdW1iZXIgb2YgYmFja3VwcyB0byBrZWVwIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJOdW1iZXIgb2YgYmFja3VwcyB0byBrZWVwLiBPbGRlciBiYWNrdXBzIGFyZSBhdXRvbWF0aWNhbGx5IGRlbGV0ZWQuIg0KICAgIH0sDQogICAgImF1dGhlbnRpY2F0aW9uV0VCIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiV0VCIEF1dGhlbnRpY2F0aW9uIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJBY2Nlc3MgdG8gdGhlIHdlYiBpbnRlcmZhY2Ugb25seSBwb3NzaWJsZSB3aXRoIGNyZWRlbnRpYWxzLiINCiAgICB9LA0KICAgICJhdXRoZW50aWNhdGlvblBNUyI6DQogICAgew0KICAgICAgInRpdGxlIjogIlBNUyBBdXRoZW50aWNhdGlvbiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiUGxleCByZXF1ZXN0cyBhcmUgb25seSBwb3NzaWJsZSB3aXRoIGF1dGhlbnRpY2F0aW9uLiA8YnI+PGI+V2FybmluZyEhITwvYj4gQWZ0ZXIgYWN0aXZhdGluZyB0aGlzIGZ1bmN0aW9uIHhUZVZlIG11c3QgYmUgZGVsZXRlIGluIHRoZSBQTVMgRFZSIHNldHRpbmdzIGFuZCBzZXQgdXAgYWdhaW4uIg0KICAgIH0sDQogICAgImF1dGhlbnRpY2F0aW9uTTNVIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiTTNVIEF1dGhlbnRpY2F0aW9uIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJEb3dubG9hZGluZyB0aGUgeHRldmUubTN1IGZpbGUgdmlhIGFuIEhUVFAgcmVxdWVzdCBpcyBvbmx5IHBvc3NpYmxlIHdpdGggYXV0aGVudGljYXRpb24uIg0KICAgIH0sDQogICAgImF1dGhlbnRpY2F0aW9uWE1MIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiWE1MIEF1dGhlbnRpY2F0aW9uIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJEb3dubG9hZGluZyB0aGUgeHRldmUueG1sIGZpbGUgdmlhIGFuIEhUVFAgcmVxdWVzdCBpcyBvbmx5IHBvc3NpYmxlIHdpdGggYXV0aGVudGljYXRpb24iDQogICAgfSwNCiAgICAiYXV0aGVudGljYXRpb25BUEkiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJBUEkgQXV0aGVudGljYXRpb24iLA0KICAgICAgImRlc2NyaXB0aW9uIjogIkFjY2VzcyB0byB0aGUgQVBJIGludGVyZmFjZSBpcyBvbmx5IHBvc3NpYmxlIHdpdGggYXV0aGVudGljYXRpb24uIg0KICAgIH0NCiAgfSwNCiAgIndpemFyZCI6DQogIHsNCiAgICAiZXBnU291cmNlIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiRVBHIFNvdXJjZSIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiUE1TOjxicj4tIFVzZSBFUEcgZGF0YSBmcm9tIFBsZXggb3IgRW1ieSA8YnI+PGJyPlhFUEc6PGJyPi0gVXNlIG9mIG9uZSBvciBtb3JlIFhNTFRWIGZpbGVzPGJyPi0gQ2hhbm5lbCBtYW5hZ2VtZW50PGJyPi0gTTNVIC8gWE1MVFYgZXhwb3J0IChIVFRQIGxpbmsgZm9yIElQVFYgYXBwcykiDQogICAgfSwNCiAgICAidHVuZXIiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJOdW1iZXIgb2YgdHVuZXJzIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJOdW1iZXIgb2YgcGFyYWxsZWwgY29ubmVjdGlvbnMgdGhhdCBjYW4gYmUgZXN0YWJsaXNoZWQgdG8gdGhlIHByb3ZpZGVyLjxicj5BdmFpbGFibGUgZm9yOiBQbGV4LCBFbWJ5IChIREhSKSwgTTNVICh3aXRoIGFjdGl2ZSBidWZmZXIpLjxicj5BZnRlciBhIGNoYW5nZSwgeFRlVmUgbXVzdCBiZSBkZWxldGUgaW4gdGhlIFBsZXggLyBFbWJ5IERWUiBzZXR0aW5ncyBhbmQgc2V0IHVwIGFnYWluLiINCiAgICB9LA0KICAgICJtM3UiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJNM1UgUGxheWxpc3QiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIkZpbGUgcGF0aCBvciBVUkwgb2YgdGhlIE0zVSIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiTG9jYWwgb3IgcmVtb3RlIHBsYXlsaXN0cyINCiAgICB9LA0KICAgICJ4bWx0diI6DQogICAgew0KICAgICAgInRpdGxlIjogIlhNTFRWIEZpbGUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIkZpbGUgcGF0aCBvciBVUkwgb2YgdGhlIFhNTFRWIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJMb2NhbCBvciByZW1vdGUgWE1MVFYgZmlsZSINCiAgICB9DQogIH0sDQogICJsb2dpbiI6DQogIHsNCiAgICAiZmFpbGVkIjogIlVzZXIgYXV0aGVudGljYXRpb24gZmFpbGVkIiwNCiAgICAiaGVhZGxpbmUiOiAiTG9naW4iLA0KICAgICJ1c2VybmFtZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIlVzZXJuYW1lIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJVc2VybmFtZSINCiAgICB9LA0KICAgICJwYXNzd29yZCI6DQogICAgew0KICAgICAgInRpdGxlIjogIlBhc3N3b3JkIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJQYXNzd29yZCINCiAgICB9DQogIH0sDQogICJhY2NvdW50IjoNCiAgew0KICAgICJmYWlsZWQiOiAiUGFzc3dvcmQgZG9lcyBub3QgbWF0Y2giLA0KICAgICJoZWFkbGluZSI6ICJDcmVhdGUgdXNlciBhY2NvdW50IiwNCiAgICAidXNlcm5hbWUiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJVc2VybmFtZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiVXNlcm5hbWUiDQogICAgfSwNCiAgICAicGFzc3dvcmQiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJQYXNzd29yZCIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiUGFzc3dvcmQiDQogICAgfSwNCiAgICAiY29uZmlybSI6DQogICAgew0KICAgICAgInRpdGxlIjogIkNvbmZpcm0iLA0KICAgICAgInBsYWNlaG9sZGVyIjogIkNvbmZpcm0iDQogICAgfQ0KICB9DQp9" webUI["html/login.html"] = "PCFkb2N0eXBlIGh0bWw+DQo8aHRtbD4NCiAgPGhlYWQ+DQogICAgPG1ldGEgY2hhcnNldD0idXRmLTgiPg0KICAgIDxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgsIGluaXRpYWwtc2NhbGU9MS4wIiAvPiANCiAgICA8dGl0bGU+eFRlVmU8L3RpdGxlPg0KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iY3NzL3NjcmVlbi5jc3MiIHR5cGU9InRleHQvY3NzIj4NCiAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9ImNzcy9iYXNlLmNzcyIgdHlwZT0idGV4dC9jc3MiPg0KICAgIDxzY3JpcHQgbGFuZ3VhZ2U9ImphdmFzY3JpcHQiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJqcy9uZXR3b3JrX3RzLmpzIj48L3NjcmlwdD4NCiAgICA8c2NyaXB0IGxhbmd1YWdlPSJqYXZhc2NyaXB0IiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ianMvYXV0aGVudGljYXRpb25fdHMuanMiPjwvc2NyaXB0Pg0KICA8L2hlYWQ+DQoNCiAgICA8Ym9keT4NCiAgICAgICAgICANCiAgICAgIDxkaXYgaWQ9ImhlYWRlciIgY2xhc3M9ImltZ0NlbnRlciI+PC9kaXY+DQoNCiAgICAgIDxkaXYgaWQ9ImJveCI+DQoNCiAgICAgICAgPGRpdiBpZD0iaGVhZGxpbmUiPg0KICAgICAgICAgIDxoMSBpZD0iaGVhZC10ZXh0IiBjbGFzcz0iY2VudGVyIj57ey5sb2dpbi5oZWFkbGluZX19PC9oMT4NCiAgICAgICAgPC9kaXY+DQoNCiAgICAgICAgPHAgaWQ9ImVyciIgY2xhc3M9ImVycm9yTXNnIGNlbnRlciI+e3suYXV0aGVudGljYXRpb25FcnJ9fTwvcD4NCg0KICAgICAgICA8ZGl2IGlkPSJjb250ZW50Ij4NCg0KICAgICAgICAgICAgPGZvcm0gaWQ9ImF1dGhlbnRpY2F0aW9uIiBhY3Rpb249IiIgbWV0aG9kPSJwb3N0Ij4NCg0KICAgICAgICAgICAgICA8aDU+e3subG9naW4udXNlcm5hbWUudGl0bGV9fTo8L2g1Pg0KICAgICAgICAgICAgICA8aW5wdXQgaWQ9InVzZXJuYW1lIiB0eXBlPSJ0ZXh0IiBuYW1lPSJ1c2VybmFtZSIgcGxhY2Vob2xkZXI9IlVzZXJuYW1lIiB2YWx1ZT0iIj4NCiAgICAgICAgICAgICAgPGg1Pnt7LmxvZ2luLnBhc3N3b3JkLnRpdGxlfX06PC9oNT4NCiAgICAgICAgICAgICAgPGlucHV0IGlkPSJwYXNzd29yZCIgdHlwZT0icGFzc3dvcmQiIG5hbWU9InBhc3N3b3JkIiBwbGFjZWhvbGRlcj0iUGFzc3dvcmQiIHZhbHVlPSIiPg0KDQogICAgICAgICAgICA8L2Zvcm0+DQoNCiAgICAgICAgPC9kaXY+DQoNCiAgICAgICAgPGRpdiBpZD0iYm94LWZvb3RlciI+DQogICAgICAgICAgPGlucHV0IGlkPSJzdWJtaXQiIGNsYXNzPSIiIHR5cGU9ImJ1dHRvbiIgdmFsdWU9Int7LmJ1dHRvbi5sb2dpbn19IiBvbmNsaWNrPSJqYXZhc2NyaXB0OiBsb2dpbigpOyI+DQogICAgICAgIDwvZGl2Pg0KICAgICAgICANCiAgICAgIDwvZGl2Pg0KDQogICAgPC9ib2R5Pg0KICAgIA0KPC9odG1sPg==" webUI["html/maintenance.html"] = "PCFkb2N0eXBlIGh0bWw+DQo8aHRtbD4NCiAgPGhlYWQ+DQogICAgPG1ldGEgY2hhcnNldD0idXRmLTgiPg0KICAgIDxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgsIGluaXRpYWwtc2NhbGU9MS4wIiAvPiANCiAgICA8dGl0bGU+eFRlVmU8L3RpdGxlPg0KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iY3NzL3NjcmVlbi5jc3MiIHR5cGU9InRleHQvY3NzIj4NCiAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9ImNzcy9iYXNlLmNzcyIgdHlwZT0idGV4dC9jc3MiPg0KICA8L2hlYWQ+DQoNCiAgICA8Ym9keT4NCiAgICAgICAgICANCiAgICAgIDxkaXYgaWQ9ImhlYWRlciIgY2xhc3M9ImltZ0NlbnRlciI+PC9kaXY+DQoNCiAgICAgIDxkaXYgaWQ9ImJveCI+DQoNCiAgICAgICAgPGRpdiBpZD0iaGVhZGxpbmUiPg0KICAgICAgICAgIDxoMSBpZD0iaGVhZC10ZXh0IiBjbGFzcz0iY2VudGVyIj5NYWludGVuYW5jZTwvaDE+ICAgICAgDQogICAgICAgIDwvZGl2PiAgDQoNCiAgICAgICAgPGRpdiBpZD0iY29udGVudCI+DQogICAgICAgICAgeFRlVmUgaXMgdXBkYXRpbmcgdGhlIGRhdGFiYXNlLCBwbGVhc2UgdHJ5IGFnYWluIGxhdGVyLg0KICAgICAgICA8L2Rpdj4NCg0KICAgICAgICA8ZGl2IGlkPSJib3gtZm9vdGVyIj48L2Rpdj4NCiAgICAgICAgDQogICAgICA8L2Rpdj4NCg0KICAgIDwvYm9keT4NCjwvaHRtbD4=" webUI["html/video/stream-limit.ts"] = "R0AREABC8CUAAcEAAP8B/wAB/IAUSBIBBkZGbXBlZwlTZXJ2aWNlMDF3fEPK//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////9HQAAQAACwDQABwQAAAAHwACqxBLL//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////0dQABAAArASAAHBAADhAPAAG+EA8AAVvU1W////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////R0EAMAdQAAB7DH4AAAAB4AAAgMAKMQAJEKERAAfYYQAAAAEJ8AAAAAFnZAAorNlAeAIn5cBEAAADAAQAAAMAyDxgxlgAAAABaOvjyyLAAAABBgX//6rcRem95tlIt5Ys2CDZI+7veDI2NCAtIGNvcmUgMTUyIHIyODU0IGU5YTU5MDMgLSBILjI2NC9NUEVHLTQgQVZDIGNvZGVjIC0gQ29weWxlZnQgMjAwMy0yMDE3IC0gaHR0cDovL3dHAQARd3cudmlkZW9sYW4ub3JnL3gyNjQuaHRtbCAtIG9wdGlvbnM6IGNhYmFjPTEgcmVmPTMgZGVibG9jaz0xOjA6MCBhbmFseXNlPTB4MzoweDExMyBtZT1oZXggc3VibWU9NyBwc3k9MSBwc3lfcmQ9MS4wMDowLjAwIG1peGVkX3JlZj0xIG1lX3JhbmdlPTE2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ACqxBLL//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////0dQABEAArASAAHBAADhAPAAG+EA8AAVvU1W////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////RwEAGO10tGlFAwyE91Tzg8923ovJk1dv2xh1gVlYQFtWdZ6NSQ8vgHM7/tMfIZPsqgCU856rdBJJRMDaor/oWA7pkvSmC2aqaC5fd/mkWUPTuG8fRhGqOY1rKxLNSI3HtTQAcuVBxRM0NfMw0ky/JMJYZiCgXcNsxpxl+khr/9fKtO5Fg2VNBti92xcZimHUZDJMQTBOY6vSR9L1N2O/kJQCpdfuc9bkcUTMjH/es/lAySxvbiislkohqkpHAQAZVatwHI0t9eHCUfDyWUEtuCNyDwQFOVMtaYEQJrTrhQX0VduT86F0u0wN9ag0uPsrmX6Rid/x5S7KI1SkS+qP6cdmgSP57uiF4dG6IKsWNfGBLY09H/CFlrg73WINQkkp2diKkdEmtZetn8+ZAKzR5eXN5FebiKt6pIkNLuSofjosypEs2o6boKsfpmbtOV0idOeWDM9C8EIcn3aZwk1s2KBDvt1DlY+i2Cuvhk3XoKLT+pq/bOC5QkcBABolcOXneZXLoQw9W1PH1f/of92Ytjj8okrWijcQAKlE5l8XoTb9qrOiZnDOhqwcMlB9H9rorq041I89hChohYoSkJElcM8V+r8WYN5axD1BNyfwaHAOm4UN2/VEYOkNSfMjmx2S0WW/F2ha8Jj4fc4QgqcXr+TnnbwqLkLTValK4Qa1pcv7PIbDq6zCUfxe04guZ8xEhPQjp17/G6IB/6uqIuo7pzuN2ILWNmJBMsawAinQy0KHE7HQRwEAGz1R+tt0cmQSjo1isoOsDDDIp3Tmizsn67P/OcHe/0kDfOxZ64ySuxIIL/dIIzhjEvRAf7spa1ZKukufXffNiEUgf2Dh1+Svgx4pc4AR8v3Kp5DA2FPhKaNALz2OOqAZkq4APojoxUc4cQJzOVMx3nKPN7LUwaZe9h5UYz/rr+O7LMCCGQBmZv+T+vfZ7MH+hgR0RuIm2WDgK0xWnYsjYgpdhPkOFmR9ypsthtXh18/3M3tIcz9yoZVHAQAcD8cm9dXbHuN4+yGebTg8JOyIFoRImB2o8d5inS5OiJXyBrySVrU4Fa1MzjPYLNulucjXgAAIoPdc/bfDnuKIc/a9sheUEUfQrQ448VMZ//WQwDCe5igCPqKczFJKJlDdha+0Q5QIimmwUxYyfbvp26689j/qAOiUFcqTfas3Q+SvP/xhToXvE9eJPwsbS6RH7k01YATeMm0rydZVwAxxrLS9pyCenFWkXN1PaPL/Poy9IQyFK00RNkcBAB3yQSzlj6PoCoBh32QZwW5Q1kSeVBOU7Do3dvkhOL5NnUI4ttFWYv1PMol7ZoW+Yj/GGQY5BB31FcMnl+YPTIJxJrh4ZXzrdaRUJAdJZ4Zfu/UuKVp597MBazkkqo6VZ+kaIa55znw1YrruHcZmImU3xw2gtDjOORIJditem0geEQwoVrxrKPS/+4ODbBhxPi0X10lBjIPGs3x+M84+ebMH1YsfbnxbPnYFG1YKifvd0N91ocx+DK3FRwEAHuKZ7ozvu2wsrpTRpTlKdI+uDOb1ROwsQ/sPFlaMgNtRfOmWhxG26B7kHd5ZLZe0cuEdA1sE5tjAIhqFLLNQCJkvcZ4vsFUG7Sd/21dRP1RxoEMqYzoAmHx7P8/1oFhPG3LyqmFm4Yg/8On9yygdzEcENDcwT0pW3gQgwMtqy0pNWA/iwHhUtT8pAZ0J9MIn0L86JkKL7IEsUy3h4MTqYfiCnE+E63xb1o0ig06TZr6WWPr/aVBCa9BHAQAfu9S4KEn/4HBrNuHU6wD5ScTeQ5t1rKcrO3OIA8IBCnH24QceeDn376IBFsMWypXDR/z6EAAAAwAAFhs+36OpsPrZqefoW5lZtwn5uW02DNDJn0WzXKHvi3VeD2ArLGEmY4UT5EykLlpp+24W4mnq0/b0DpKJGeP9/gmXd8dzAqzG/rAzwnD9R7efBvEg8vhF9rv1T4ak45NvSySq1WefGcipvYXEldjS7JUY1mWc9acYUQg0ONaQ30cBABAwN2JhmEe1e59DNT+kVr8blx2elmAQT6EbQ4aJAw3xeVjTHRFb1LHG4B7ggA9XA1ul3JePxANqg1S6yIpH3Pk+JGGaBgrgqC6+c1B8NDAnG/HE1v29xLaIF9kt/+XaLnfua/FzVNXtV5+ABnuVcJ8w1ARgdiewIev1oAkHX50VncMg23r2UgeqhxhYRWUdJW3xKXRzwBwW6fD6JB1E+e+tksyeQua9Mo9l+MjL+YOsS78h6Pto1PEpRwEAEY912w+d5D8ZhXzwlBcjKTsJgplzEsdxYDppRR3rwhgmZEEhxKYSAbR82MVWL6LRj1W5G/m/im/3mWc7OSyaTZDGJPilsghWdgIPUNP8yU7b2HiApE4goxjc/XdUAJo+LAMHEn8ZYHRJQ2fwVxf1ZbBsOqEcglft1bdl4weUIQvU7TRRBdd66RlcPo7or5OkhTlvG6fwWv2v6zPg38hAkGcANEb27RFoj3LmLgoqWA4OoSA4CIGnCl9HAQASFZYomwyHjvRRnlD0n6T1BYm652Lp0fAaojKnPakdQd++WlJsnPu5fjEzRo6Zg+EwLTvnHjKNQw5cExyWfk8hJqp3LsegNx/7u+Ezd/6MNodhmzPoF+LTb6BCFbCPwHgJ4bUp1YUWr7tyb4xYdEojhhTJ140OyFMrCkStDb+PEL/WJqFTw56zpU1aQWK/0cNp69jvTcJtgsskEkL0EMJeakI3/xQFHjmKzi/Rr9Cjd/nnx3mAedwYCkcBABMdbTIM6Kwho8RL8QYLZJwgeneAEc+qJ6nhLMzzHdDzXQSgQ6+KioMAhQLKbChryo1vOBWhCRT1e/6z1L6ApYgZAtuQDXWsKPfOrNSkf0JFonpGE4omnNnaQ6eUvsVoGnne+AAAAwAACOn9aEgzsgB6/iB10jVeKJi6jpoN2IlhkaPjUXiO/7/MTfMgvYkifLFmIi0qbyzxMv/f+9XFf5k4RflW2Qu0ZutzUKznuY7Ml8Ma0LIJR5x4RwEAFIJhwbdbbmXWxS4/Vj6rtX1NX60Ar+fetTN6P+mshdJt0rv/Pv+R/N5ZgUp/8e9tYrxYZz5b+4C3VXaruuHouUR5YKRlA4RNmcacgaxGDz6Ca+00EE1rXyGy/03udWMQPPkWEJmXU3g7bzSrIFytreC+EZNfVkgMuPYLTgxkvKA+e7H9PmmwLojNZdgTQi7Nala/tVnLQGAthQztBYI0y9H/uXju0axwnmopNvjdtPwMvhjMckg7EPFHAQAVTtct+JOyBmPENfuD3Y5En8dkZH+5jhAWPYgWv4INxpckQWu/979vIi/wJWGJFGJDMP//cfilLsEkQwH7CA3+wYURzLAu61mtmR/VG1qnqt0F92iYVULqF7CH1YVu0GcGsvnYLtWRfiKV47jT2HUCgtJUeL5QanujI43Kxdf8eiakEZkWiAQy4Nfvgw5zROnWOatZImIJHSL7RNmC3XNLFVvnrY6xKQNoReMVpcH8Sj7xTe/R0yy570cBABbh7k1iSoUoMqQYxOJodbHu9zS3msCs25Nqb3ZDhCtdWOsqvKvtrPZQ4XcOI+a6ihG/Ycmd+asxHg3VrQ6JG/pzFphe9c8TRV5yfWJYQgpoboaMniM5ppcybB53KlDIcab7dSYrttrbaYJBYUACFIyck+sfCXgCdAAAVAAAAwAAAwDDQAAAAwAEeAAAAwAAEiAAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMARwEAFwADAAADAAADASlycnNTmxnyBLcXsWz8h6WF0kYTGhHP8asasyLeBzDJ9gp5mHMGnpKbAjmdyZKkqLM/GPx32j5xbE1B/4BVb1CqOUh708D4c8SgbK4l8oH+7ntXSn+1ucd/8/mpMXAZkli7GqwRswPkf3iy73pwD0Lj1jtsvFV5Ya9pbK5XPJvnr5kAh5B2olRuayQficqQun3BaA+TLwI4Pet5fRsuu/NlLyByr9A+ZDEAkVGe729HAQAY7VmiGx1Ogtz4HMMQQAAAAwAQxL11ZI096au1I6RJP/y/sIb/M3lrvj7OsbbcGYu6AFxP7TCvVbqcDnZvz4Jvg3J9UCcXOZAawA8hwlkNrWHVOW4QQUMqCRS0hmubAxYpievo+EKMZFclBcpqmos+6tIq4yYuMm2mU7SHT2YXfi/smSQKGiQ5rOUPvaDibyW27+4HGz/LOV8On1IosaigeYiM2kPhtAMzDBMgFmkypIjkGoaWQ2xfZUcBABkLYUBb/feXPFLHLSkevtM5lBKWRqKPo2s10TOMa1i1iUxgwMr46RICL6ewK5XDbHNlzaD0EO+haLSR8mJrKjyktTxR1qF8CF8YpGNK3b4rtbZ68pn1Cycf8FMjDYTuNUCw6TyJQxAu6CFGaFgpS2pApj2wxHhN9xe7Bk8+zHQy+mNy9AV5Dn+ckwd78CNrtfT4JPGDeXq/oqpr2VwJCtXI2pz1d/eGU5RWvauNYDbJumMcZmoDLRQLRwEAGksa3WjicuJEvpE/WKZapUatBGpvl3Y/7YU/cd3HnppRvayufhAU+rp5PXdQB48ZjNRSQF0OzYiZ40gXb5wwhN+lDw86ULPV/R5FF8e7rR0Ncne5CJseKGSSKJdN7N6mE0WowZrVoslYamlOFF9EepFYXcul3MWr/8sHaW2ivgv6USTm9wmys9O5TTRogkLCkV51bMO5Nf26bSlsf8MHa5paD9RLq5PZ/O54+rQB8nL2NAZQyde1/5ZHAQAbjTU3beuNZI6wglFkDNfNBPhH6uv/MazQ4XfWwNSQ7aHrfORMZYpwCo9uHR9org13ueb/HwHvVsHHOjq6Ea6iIBWC5NjSHZ886ZqJ2f5UVzQqITMsQAvWPR/1H++IharnM3V/3vhl4qsEQGidY7vhk+jd0aVI+WqwGVjgIryjo2P+lo7eyR62jVTUHGrz8woJESAwviQcjk6RS12hH/rH/kokr884wXkNeMUbMMD1quFOgtZwYFTb6EcBABx/76VVTABvZ66Tpl7FFNKuyvTB22cx75z6QLpBGOkovrN/3stJ60KRDgSxKEQlBpm4sH3bkDmzy56AHBkdGIv/1abQQKuGoFTBBYl5+j7zE00Nj/AHdteq0oArBYZzAEvcDju230uEMV+YOfMQQiSojTVSR+4kHCTT3LvzU53EVHzD7ZmsKhyhCSrAH6um+HcPHESNZCknCIVwNRUHYWmUBQvBqQ6eFSSw3OBH8cfI92IzgTHchjeWRwEAHQ67+e5mho6aJfJ1DSfvRz6nm4wQlWUxmY3WoxgY7eSZSWnyDk5zUtxutuhTnLRwngGI2GAYptHV4/JE6hvICCrOVyXSO54J25RuUE+XqT0E9zKiKiHCd7McqAW/LG7aqUfRoGXO4+FzLs/4HJ/GEdYZb2/8tksmvDRED1XjzrAkTXnrsD+Y66hYBscvgm2D2IUm5DIirxrSHCtrDTo/P653/JPhOwcwB1ARpihyfMYpIRU/NNX2P/dHAQAe47PibRpj44bY8wv6RkvLrZAAFzeK7wAreuY1mQfzgAJ+NKZDvAL6cXghTWYbwl0vQvkUV/UXT2k+v6FWRYjSTd+EBVjBgFS6GqEzMEbQl6r/jGarqdgKOqVSDAch/A3JGSxAXRCY0U+TJ0Jss6CoiyEcz6VlcHWgVGLM715+t87wkNGc2PRJIv/m5YJ1Z5EpDjoDHEAW4ytyc7jm0Nm3P5fradcJlYNs7NA2RDK4UqyhjculF8vWWUcBAB9AptBsY/CA7o70Ymq7D+51DrpBVnhghBCERYgwY2AgCGIXmb0FP8mOi4SztMegdVsu3nYsu3wedsR4n7C3fBxFoXOtXR7jb9y2tdxaN+vE9U29rqeo09jeoE0DohbRndPDtqleKZ0M9JX1mITUVKc1h5Uyk2n4LUiu6y9FqRYqMhgnmJFyb4n0l1r0w2vEp5hZqQ6s+pincvbzhqo0cM0Eze+tLhKI5DSLp3ts9IKBsGkjflGPHcoFRwEAEK0Kf+WapwtI+Tbh9IF8OTLreFFPrGaD9iButWKDb8FZybOe1xnsUaFcof4ttxETtD5CzFPVFPrbKWQ+4i3OaCl/v3ehqlrEJFBXy6TUrtcE8imbhjou6Yp5ckgTS5NMhToX+FQ/SnHv3lG+B/oFkVnC59jZb2KObyb0IwwM3VOQwt65xyAHoBFD/3xsvJhC0UJcudSdXreuoOHVVJvvLCIDY9zLcG7Z+T1LtHLfRrJrK22yTCH+p4NHAQAR2MUOxiSRh77FN4Xq89SijTT1QcFcwJWgi7qxRPm0cvNXlOO3eKu8LzhxW+1r9oTUKe++y09Ar7D+jK7PtfcU51RJ6u9hxLL03qcNLM5F37FlVL7Ii6HRZtudEV617L76N7+dw+vfjJgAFFYNoCFVSGaWcim0NG7JY35/r6TYlg788HQMS5JTnU+fQW7OKewui/OE6wVhD5DwqIRtpx5QlRU5Du1ffsnT+4G09pqTfRhtOdkT1Jr/e0cBABJXIpvsDPvnr5cnvs8/o9CAe+0EIPMIFdgBJKfQx0TfNITZDVrus+nyfopE6lgvfrd1luEc5kas65cuQdwjHYTVCyzLN+wgmZnBOwrtSZuT00SpBvDJyiSSg9Okl8GB8uShlQ1IKC0UfSZ9E9kEbe3hBOJYk7FZrR0x179tvGBjXBx+LHlUNSKUkNm2wE0+3MB4X5VtpEfRxZXn1KxgzVENBVidWkXspbp+2vajsCIWsJ6QtRGG12dARwEAEwXVDuILuHUHe0YVozn5MeSxkHHLW6A/FhIOmBUlwa15+6I3sLvEfs/lvt3dg9qyV3WDyefrnnP8R7K1oUJffNqTYpk2x3tf1eP1lw1jCVs8Md6RfBp636Ao//6M2CJJr07dqQZ7JS2dJ4ekIlNKa6yvuzZDYgAdTjGmv4y8nUpwdH4blHePi4WE4zR9xDKjl7WopKtgXgFiw0Qygdqa0p8KMwBF4ei1J/NythnX82KmGtQh8RkVMidHAQAUkckmc83sODwEv5QRD+/8XbUZjc7OyVHeFDNLwdTrxZwbjM0oKaEYr9A9jVt2YyuIEvM4S0jx9t041mJeU4zNAAADAAD+wJN/aSH3oQjomrrvvYbLAY892upvZRpRdxKJhcO9kRE3HqOJo+dhziRHjYVsjnrEWxhlLrbQttswOzATqSgqofqVDqyptVyt+hRwQjP2Vp8jL+etFOL+4/yYP7izg3eH+ehTkGuhcXM/pL7KkZjDcM6m6EcBABV3+EtJpjSjvrKOei4iwHF3ie2AqHGbkkhaM/ciyuODy8Qubl2GxT/JLw6k3pqcQj0sjL1Eee3yEeqIFLLqgDbbBsu+x6/AxrcsalU1VpUVujcfRBm82qyIgD2l9tl96oF701i/7a3Y2ZQFsEuz3MmJWOJ8i3iAcDmtxbLyYKJQvFQB7GChv1hdsiOF8RgLQaRdOL4qjfRAOY8AIBfdooc5IgOsdbncGRZmSPD0mgjNJUKIb++krWDmRwEAFvb9EAAkNWIlXOFqNjYHpGUrwAKWtVTG32tuzoX1rF4kt6exM8j4BfAUCD9PR/47qqTLR8qo9BwTYMWR19SjX/sYsA4ADaB79JCYDTg+o/1WSVkjkATYEmjVZlaZgvwIRCEq6wRTeH9Xmt1ymBnu8BmSzdVWEdpBXybOA8Q2Hn/0qYhhfQIvJu0GJEZTY5WXUqQjT4YattfDV/vUg5h51OVXjtbE7JZfHnCjmytxSBOMbL688/hpm41HAQAXLSpU5jydyJaS3J5S2u70zpQFYtEgdjodrabpk+sY5bDt0SCAWVo3bKtWDTLQUfu1ryRljAxn9RKmG/PxLkez6l4+iAYuV78qyuuYf/r9S/VP1VPGnsRam6C37TPn0GK5RiVfAkcoBlWITztAAjwqpfifBkFp75i2Uhw1dovkWVuCWdl0JF9S6heMPqXuvZnqLty1sWwLmsjTK0RvoY+JS3OBTbQLu6RwXG54Qt/2KJBAVEDS/2HouEcBABhCnS4sa3Kf28wcXVk7uLQ/tgWCQOltgo0+fadM0nOV6Ct7HmQgh1/c+Hx+aTHqdCFmHf4U+LzI1irsvE0iygXVwq3gaxQfOpGVuNhKx40xYOJCv7GeiOHxGv1/TVcHeTggQQub0Ce7OJETW3zL2ijEvFr/90IpEJjGVcuGXlHT4YGT+sEgiww7LXPLhV+mRVs+dQCZLqkhFOOqXHIMSc1f2pjxQ/0AnMD4G19aAr6aSux4Un6zJV6eRwEAGWmqjXInxpYxmhZUgnGD4hHccy8iX7PXAzN2X5vepIyAo2Pt/3eM6VfzczMJdlQBT7OB78fa1XJvQguJXp0/IeoQXzyyq6IKbsJY/Fq8YIV8Nb7x3CLandnKjBSu5tpcBORjKSwfGB80kyqJy8MIdtD88MT5Vk2BE4Mx+qxPj1uGsNcqJokvDLyGUziFTI8XALCj6SL+RZNb5+8ejK2PZrv/JJcoL0RVzKxJ4CQ1DwiDGRZesmCcIslHAQAatdKwVX6Xfcep1RT38EuHBV7fg3RJ/PYvSJqMCFZd5lOXJh9YpTZQ0TyWNegCEGlA353UkXS0g9RdUFOMrVsBzvBlQlavBQK/tT0MV7YEiCmtKxXwz+D6E5K2HkXSztUb0L3XMYLhs4ZfWOEZ/vn5FL/6uxSlrW6irjtnM1J+bBTHmrgO5Zvx56BO7cpe7+SSYTa+P3HPNTDvnhth6RZHkIAMc+fwXod00HcrfYaEUP5vUjNisffDVEcBABtwZ7eaZH715QL+vN2lkyrfofshaE8HQ9UllaoJe4PSvUzzid3X95s8WbJv6A76JYODVx21aCqpi2ourmt/o4H9IXsSp5JsNnYOpGwb7Ju0oL/WeSNKWGSWkQug3XLox83iBBARgNDJUMkoCJQPrL9KSebkr0T6WVp2FggtoeiPsDjrsz1VlfsFkOOIIQpJmpzeLVzCsuefvxwqdnJflpQSMY6XFBVJSMRLtrQLQFOm1Y8A4UXo/gB0RwEAHEdgReRhgFYhRCwRO4hsBkniGCbjjOxpUyPGiHd8zz8D9mRud+NCP9OU30S6fwtaFSfKHhmut9b6HDHkdeFLYRj4PCRzwnibxQ/cXEblVnM47wbCN3iy4eHjYB5MoIICrSYmd8nt4V0toLs084KJlmnur5FbApYM4W79ff4oZkW88Cg8Fv8TnWhh1Hqc4UlhMbRKm2QxDgfBxar3U7BwNR6prrXXjqfR7ja3tPli+H7Jez/xcTg32QpHAQAdTa7pSSgBvmOqzz175NAFIhwE9p3d71F9jLvhaPv8q1iKopL0kizwzEWElnXWmNhfLkl/Au8KujnoKUaxVdTe+zAZm2dOkejnpNVtVj0Aw9wKcG3ZQ1iRZrUFRIoPKYlmR+oi0LrupuhYABtgPbdCbDtezGTr0nw9wVd/rZ6V+1wcoJ6+8VAVueIdwI3brqm6EoFHiI8L6lER+9SefB8fHo4NYgr/I8jSxaa/2PLX2K/DjrlY6bN8fEcBAB7DXsuh8DITF6CYWj2HTFvqfzlic3QHXnHtvsTFNpyVY1LY8y/fRK2mwALN6IB5W3OuyoKiA3K0lJdQUv2gYhHWvPTV218HYrD0rkbMxRH0SiEEkrHDeOt5T1HtWD13D2/QvMu535fsfZyeaFDjdCE9M0Xi8Lfc7Xj1ZNGend7Jo7/cEiczFkc1vB4z2JpFGZreV2EdquyEzC2STFJtfimyx8QlLngEuR1cxH+lWEcFX+mvBa/eqktIRwEAH6VazFLPNsnHZqsI66TVoArQuUUGFAzr8MT8GZ9V6qpZa5D0jA/4eGi6Kq0smUgRExnqIbSMLWqDf/Pk2YT3MpHTu9VE3Dn9blgB6KsVIkWnB98Y2n/6DrZDcF94Ndu0Ka4U/RZwdV5O5KcO+lU2ZiIOYTYZ6Ie0d+tApxYxJ+YmxaDoCyRNe6crw/yzR5SflT8ddi/E2BM+l+nwVDiKZ/714fmrBxFKWuqLiQNHV19o1cZ8Ubun+ZtHQAASAACwDQABwQAAAAHwACqxBLL//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////0dQABIAArASAAHBAADhAPAAG+EA8AAVvU1W////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////RwEAEH1s3BdtHdF1ln55B24wdACF/ggcRtPmB4IUB6cZJ+m32I4R48ZkdhAFBulgWcsv0wZwH0o1yi3i4qm3rJ98AUKdB9PsNyG9gURV0bTw4myAj6g5Dgodfv6w9bsbOxsGUWkvgAJ3rrR010BvZbIa6CMRCQRjxkCfRF77ansRJZT0JzhtYeSS/ZJob8Rr2jrng3W2rkmHtE+rdqlPiHxmwkRZvYGhBxwiJO2L6f+l/cABsfs09rA+A0pHAQAREZay3TBUIAfMWhApE+LaPgeyOYtaPFONA9aC0h4QrFkaLZfb86678MK+zLgqDBsDoj50eZHMVcczRjs4sYlv7RG8RIWKb5lB9Kn/8+CkxiiA11cHH1yzLX2SKCmhsak/+P/zYQ1EDvEj33bl9e3Jd62cTI+Qw99KrsWnUMN8hFNeXzoGHA3aec+Li4NFboF8sa6lCPR6Csxsvxw8DJaWCnER5Z0p+nKhXavF/eNHQ0DX47ohycc87UcBABKsYHCHXXe3vK1cFYDWO6rhwM6hxCdJ+/X+VB1akQejL6iBMdUPuadUqBnbprwJM0dWpSSn9uuZZeqe46iZOGIJUo69d8x+ZSvPcBH/dK1Y0LJnoWdgWH51SQg7eYqcwjQW3BOy7ZF02Hn1EhTuhsN7ms8zv3WIeEBDBq0T3Idl+Tmw9iJU9skVYiwygHG2+0XwrLa6y+uiQPwMzrnEr1kuf24XoAqrJTZQiVH3aQF4d94yDreWu2KPRwEAE2FsynHZaUcBXEFbeX0nSxZ7sRcRjJvc7RYOny6N8QFwKDVO7jpRWWYM55kuepBOyZ+7BFYeG+FU1kR+ZfmqyDNkD4D1IPwNh6u9JQxDymfN/aMcQC3WxdvCKquPsAut6dugpGkOFtIe+W3ayc4V/J978P+h1EDFMbFjxRPuXht0K2dBQZCJ0ybISUDqWzhPuep8CdxSU4MvMVfdXh7FLl/BqKJUTT+vM+Pz3XnqCQQmH5TjQ4CK55VHAQAUEtgfkBwIYgtwHkhjmtLw7HNTeJeMfTjATEKcyuKzItSeYxHBmGzQ/+G2otpPCOkVAXJ9mfx7LxrW4joZ0ttTRQJ/wqMUK1IN349LiJoo8y/+FwN4jPNDwIleJG697riqnmLOweFW8spHKLBfnHcyC1pG6EIxFpTqUQ0KHqXD/KXIHKioJNAOVwQ1Gfloxebo/Tdtd00dpHP3gcsAOnV75APCYOjVIlwm2X6ViDeZw6Btdb/Br/+yokcBABU3+eOESLlneGbR5SLiL8wPkoRaZ5X7xFlMTMvsv9yHk26bVdmsubSdbYS1Hy64n0+NnL7C1aLD7aJxOudMjVW5goZbfO2KxBQkCD4HFA284wbaB5vOL7mRilCn6YEs1kiwf22+fBLNUmXDb2p353wrD/ygTDhlki66USvUmd/ZAs9uzAddegEzy7Xn00YysWTu/hegYyZtWFC+X5dhLubWJ7n96y5wjrP7PAOXoQQtFUH9j/rBiP/7RwEAFnL/wYKYuj80mPGtimSbF/E9K7XwjwBz8yHZubmVMTCmwkZBM4h0FR1thnUGiSjqjJT6SfunWCZ/dZDQplrzS00UKcUP399SyM+nNG1br8Za0ZYwWch8nyLHYXSRuxdnrfUUespsOQo1cWSLGf0pV2HIcHoiAAEKwPU6irB5BSoFvB1qKVjgEk+QwAEYAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAABHAQA3pAD/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////AwAAAwAAAwAAAwAAAwAAAwBbwUdBABgAAAHgAACAwAoxAAmBIREAB/SBAAAAAQnwAAAAAUGaJGxDv/6plgAAAwAAAwAAAwAAAwAAAwAAAwAAAwAKCKB0AIhy1ftwLNISWucTFC7xeBcaIzP3oZjZo8uT9hqZVstWGnrPz+vjaA5FuCO+K2w7/o39LygDO7aL+0zSrN90LW7r133x8+f+PEKk8d7pd2fj4RYuMOXOYunzFzRX/4IvR1XsK5WJYwVkOca3yfo7DTvUBP9rgSiTRwEAGQD6CFK1PBC4qYCa+coLVnX+jgODNrau5YJXIekDI4+wUNV+5T5HE4e2t5EGAjn77+kC1Vghmvx8KqPnylVUvsaTofheggxHsPuxn1zQt6nA59UglrRUMn8b4pmrvfqTBSqU949+AcNAI6M/eAqz6r0RG5KNeBhx8R2f0x2kujwHU3pc3rlPb6ZrFM/2HiG97eEIezrvWFG7YAAAAwAAAwAE1KRo1VfbdZQ/tOpNGxFmTcQoFidyD2tHAQAapTTIErUKA2Rc9uIzGJu+oW0uNOxRyl6oJNUNJp5L9TIshNS1CmUKgdCaE3LkLwdE8iUkUnIGfWLiWpWmjzsINYC8dnDaSptB53yJkBu0SsR00oo1PZ0pl4ZzoXGSYQJTPaVCbj6FNqm5wcnUqKTB/rgHdPdnDj0K8asLABeo/n3XCXrDorI+LYSD1FBgmV9O7RZdjfL0NnXOQkiq/ZGirwVV0cUF1aHtZx1yHlAAZKuuu7TqB13CAUcBADuRAP///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////yj/IrOvAEoXDNGy+nrxWN0l8cmuqWYaUJpuM9XgAAADAAADAAKmR0EAPAcQAACJHH4AAAAB4AAAgMAKMQAJSOERAAkQoQAAAAEJ8AAAAAFBnkJ4hf8AAAMAAAMAAAMAAAMAAAMAAAMAAAMAC/BmhyuvLmkCgKTgACEXfOVvHRHdpBEEmTTz9pIZCa2FD0CXukzDCakOHekTpJQSdsfd7a/jjM1/5lBtKCAGQ6zOCSQ6DeKtyw+CugDuuglGipwmvQW+FIDjnZ6HRd0uaSOGy6VB3h9MI1o4nqaCqVwwIgubYZFHAQA9XgD////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////WcZrO6BEiqf8pCxYwlz2mkdUzY/ipM/TIHS4m5xQAAAMAAAMAAA5sVm90p14dlvWgBgY7XQ9KVOJKLtaMAN5KiffVQtNuzW5DfL+RewZpAAADAAADAAAQMUdBAB4AAAHgAACAgAUhAAkswQAAAAEJ8AAAAAEBnmF0Qr8AAAMAAAMAAAMAAAMAAAMAAAMAAAMAABJfBjP2+4+W7ZybyT130+Ma4WSqICfd/dS4YtjrLlmh5VBlfrtwJqdN1PBTYDkwGOOONqZQeFN6lLGJoDzvuh3kv1aDBLqug+JhvrSeu5ebnvcrtQzb2REwJL3h9mvtkr0WfDu4AAADAAADAAs32Y4C/6Ns79oCGj6oqLltY3T4I0/QRwEAP5wA//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////8BeoWLRnKQmVgO/RBoBfcK85AAAAMAAAMACFhHQQAwBxAAAJcsfgAAAAHgAACAwAoxAAllAREACUjhAAAAAQnwAAAAAQGeY2pCvwAAAwAAAwAAAwAAAwAAAwAAAwAAAwAAEmDKfLGXsvBBQPNYXlEd6WueJ4deApfcHESlG+7V6u0AiWQqJvNZYM+3Js3Lj9Ldc9yYIHqruVwfMtCYGlX3wMavI/DrhMuJw+RreIF8SKsJD8CMccAAAAMAAAMACrFZOBgEqaP/8EyWsAHV6CgcAgfyox/roEcBADGuAP//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////AAADAAADAHTBR0EAEgAAAeAAAIDACjEACfGhEQAJZQEAAAABCfAAAAABQZpoSahBaJlMCHf//qmWAAADAAADAAADAAADAAADAAADAAADAAALf8A2bry6lUyIAQGNFfVK2Cd7h4qDqmqpvmXfkfTwo2Ab79AHhajxJ4MPWIgAAA84xLRIx7I2CrWjWe96OvgkzgS9mtvhuxdzAgpuIOJI3DEY9mviDDZz8XSAAAADAAADAB7AZkj9AAHHGvk+Pzlku8UkWa5HAQAzogD//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////6HjAkbF/gsWuvw4QAAAAwAAAwAccUdBADQHEAAApTx+AAAAAeAAAIDACjEACblhEQAJgSEAAAABCfAAAAABQZ6GRREsL/8AAAMAAAMAAAMAAAMAAAMAAAMAAAMAAA3URJB/3lMHSmOd0GYZnfpoR80WdqxlyHzPX+V81VUMeXIGrRgq5agd+ACdjoGI036yQ/rmpGw0CmMBrKwpI+nwFo3SP0s1rI2yHBZaiPJjSUgw33rBkxXcq55kfLf2sAAAAwAAAwACBWolidWDnIeQAAADRwEANbEA//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////8AAAMADulHQQA2NAD///////////////////////////////////////////////////////////////////8AAAHgAACAgAUhAAmdQQAAAAEJ8AAAAAEBnqV0Qr8AAAMAAAMAAAMAAAMAAAMAAAMAAAMAABJXNihCnx11JUosH2hBE53O/YN+GPHqcnJiQBIf3maTAAj5iRt+7GYUKBAU9iCXTiouCjGYgAAAAwAAAwA9p4HQBg2cAAADAAADAADGgUdBADc4EAAAs0x+AP////////////////////////////////////////////////////////////////8AAAHgAACAwAoxAAnVgREACblhAAAAAQnwAAAAAQGep2pCvwAAAwAAAwAAAwAAAwAAAwAAAwAAAwAAAwBR6/L83y+ZevtMZ0FW4lp8qV7fVXQAhLAWlS6mDxvpaSUgChorvgTMXtxJEIAAAAMAAAMACqFCAAADAAADAAADAAz4R0EAOCsA////////////////////////////////////////////////////////AAAB4AAAgMAKMQALYiERAAnVgQAAAAEJ8AAAAAFBmqxJqEFsmUwId//+qZYAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAApQTq0hABLvkcWCYrAaRRPNDrECJGlF/11BYvG9+JJ9Y86nxnmQzPxtAAe1UgOsXAAADAAADAAADAAADAAADAAADAAADA/JHQQA5JhAAAMFcfgD/////////////////////////////////////////AAAB4AAAgMAKMQALKeERAAnxoQAAAAEJ8AAAAAFBnspFFSwv/wAAAwAAAwAAAwAAAwAAAwAAAwAAAwAADdRFmvrVE0KXDOGwWddlwYa1foib7tXZKmkua6R4APb4b8+tXwdSNNqgf2IVNwGTohgQAcMvp6SiQxpiQym4AAADAAADAANUNUAAAAMAAAMAAAMBN0dBADo8AP//////////////////////////////////////////////////////////////////////////////AAAB4AAAgIAFIQALDcEAAAABCfAAAAABAZ7pdEK/AAADAAADAAADAAADAAADAAADAAADAAADAFHTAfujIUaaLSuklb9y0/so9AEtQAqkAxOviALQZ5jNt/iOkABrCOZ4md0iUnFwAAADAAADAALwckAAAAMAAAMAAATcR0EAO0IQAADPbH4A//////////////////////////////////////////////////////////////////////////////8AAAHgAACAwAoxAAtGAREACynhAAAAAQnwAAAAAQGe62pCvwAAAwAAAwAAAwAAAwAAAwAAAwAAAwAAAwBR6/L83y+WryR9gmVKPGbIhJpkgAFgHCej3gB6rAHPgHHAAAADAAADAAAYIV0AAAMAAAMAAAMABnxHQQA8UQD//////////////////////////////////////////////////////////////////////////////////////////////////////////wAAAeAAAIDACjEAC9KhEQALRgEAAAABCfAAAAABQZrwSahBbJlMCG///qeEAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAAZ8UdBAD00EAAA3Xx+AP///////////////////////////////////////////////////////////wAAAeAAAIDACjEAC5phEQALYiEAAAABCfAAAAABQZ8ORRUsL/8AAAMAAAMAAAMAAAMAAAMAAAMAAAMAAA3URZr61RNClwzhI2ZXdRHYLZWc1yTgKRhTIXBNABHQKIIyYNyc+AaEn1jhATEAAAMAAAMAAAMAckkIAAADAAADAAADAEbBR0EAPkYA////////////////////////////////////////////////////////////////////////////////////////////AAAB4AAAgIAFIQALfkEAAAABCfAAAAABAZ8tdEK/AAADAAADAAADAAADAAADAAADAAADAAADAFHTAfujIUAYRtY0f/43cIs2OjxACR2hMR1QBGYX+34JGAAAAwAAAwAAAwKEJ6AAAAMAAAMAAAMA3oFHQQA/QhAAAOuMfgD//////////////////////////////////////////////////////////////////////////////wAAAeAAAIDACjEAC7aBEQALmmEAAAABCfAAAAABAZ8vakK/AAADAAADAAADAAADAAADAAADAAADAAADAFHr8vzfL5avJH2CZUo8ZsiEmmSAAWAcJ6PeAHqsAc+AccAAAAMAAAMAABghXQAAAwAAAwAAAwAGfEdBADBRAP//////////////////////////////////////////////////////////////////////////////////////////////////////////AAAB4AAAgMAKMQANQyERAAu2gQAAAAEJ8AAAAAFBmzRJqEFsmUwIZ//+nhAAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAGVAR0EAMTQQAAD5nH4A////////////////////////////////////////////////////////////AAAB4AAAgMAKMQANCuERAAvSoQAAAAEJ8AAAAAFBn1JFFSwv/wAAAwAAAwAAAwAAAwAAAwAAAwAAAwAADdRFmvrVE0KXDOEjZld1EdgtlZzXJOApGFMhcE0AEdAogjJg3Jz4BoSfWOEBMQAAAwAAAwAAAwBySQgAAAMAAAMAAAMARsFHQQAyRgD///////////////////////////////////////////////////////////////////////////////////////////8AAAHgAACAgAUhAAvuwQAAAAEJ8AAAAAEBn3F0Qr8AAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAUdMB+6MhQBhG1jR//jdwizY6PEAJHaExHVAEZhf7fgkYAAADAAADAAADAoQnoAAAAwAAAwAAAwDegEdBADNCEAABB6x+AP//////////////////////////////////////////////////////////////////////////////AAAB4AAAgMAKMQANJwERAA0K4QAAAAEJ8AAAAAEBn3NqQr8AAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAUevy/N8vlq8kfYJlSjxmyISaZIABYBwno94AeqwBz4BxwAAAAwAAAwAAGCFdAAADAAADAAADAAZ8R0EANFIA////////////////////////////////////////////////////////////////////////////////////////////////////////////AAAB4AAAgMAKMQANs6ERAA0nAQAAAAEJ8AAAAAFBm3hJqEFsmUwIV//+OEAAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAYtHQQA1NBAAARW8fgD///////////////////////////////////////////////////////////8AAAHgAACAwAoxAA17YREADUMhAAAAAQnwAAAAAUGflkUVLC//AAADAAADAAADAAADAAADAAADAAADAAAN1EWa+tUTQpcM4SNmV3UR2C2VnNck4CkYUyFwTQAR0CiCMmDcnPgGhJ9Y4QExAAADAAADAAADAHJJCAAAAwAAAwAAAwBGwEdBADZGAP///////////////////////////////////////////////////////////////////////////////////////////wAAAeAAAICABSEADV9BAAAAAQnwAAAAAQGftXRCvwAAAwAAAwAAAwAAAwAAAwAAAwAAAwAAAwBR0wH7oyFAGEbWNH/+N3CLNjo8QAkdoTEdUARmF/t+CRgAAAMAAAMAAAMChCegAAADAAADAAADAN6BR0EAN0IQAAEjzH4A//////////////////////////////////////////////////////////////////////////////8AAAHgAACAwAoxAA2XgREADXthAAAAAQnwAAAAAQGft2pCvwAAAwAAAwAAAwAAAwAAAwAAAwAAAwAAAwBR6/L83y+WryR9gmVKPGbIhJpkgAFgHCej3gB6rAHPgHHAAAADAAADAAAYIV0AAAMAAAMAAAMABn0=" diff --git a/src/xepg.go b/src/xepg.go index 0a0dbbd..253509a 100644 --- a/src/xepg.go +++ b/src/xepg.go @@ -7,6 +7,7 @@ import ( "fmt" "io/ioutil" "path" + "regexp" "runtime" "sort" @@ -166,7 +167,6 @@ func createXEPGMapping() { var fileID = strings.TrimSuffix(getFilenameFromPath(file), path.Ext(getFilenameFromPath(file))) showInfo("XEPG:" + "Parse XMLTV file: " + getProviderParameter(fileID, "xmltv", "name")) - //xmltv, err = getLocalXMLTV(file) var xmltv XMLTV err = getLocalXMLTV(file, &xmltv) @@ -247,7 +247,7 @@ func createXEPGDatabase() (err error) { var createNewID = func() (xepg string) { - var firstID = 0 //len(Data.XEPG.Channels) + var firstID = 0 newXEPGID: @@ -340,7 +340,7 @@ func createXEPGDatabase() (err error) { Data.Cache.Streams.Active = append(Data.Cache.Streams.Active, m3uChannel.Name+m3uChannel.FileM3UID) - // Try to find the channel based on matching all known values. If that fails, then move to full channel scan + // Try to find the channel based on matching all known values. If that fails, then move to full channel scan m3uChannelHash := generateHashForChannel(m3uChannel.FileM3UID, m3uChannel.Name, m3uChannel.GroupTitle, m3uChannel.TvgID, m3uChannel.TvgName, m3uChannel.UUIDKey, m3uChannel.UUIDValue) if val, ok := xepgChannelsValuesMap[m3uChannelHash]; ok { channelExists = true @@ -371,6 +371,7 @@ func createXEPGDatabase() (err error) { } } else { + // Compare the Stream to the Channel in the Database using the Channel Name if dxc.Name == m3uChannel.Name { channelExists = true @@ -380,6 +381,40 @@ func createXEPGDatabase() (err error) { } + // Rename the Channel if names are different, update regex is specified and matches new channel name + if dxc.Name == m3uChannel.Name { + continue + } + if len(dxc.UpdateChannelNameRegex) == 0 { + continue + } + nameRx, err := regexp.Compile(dxc.UpdateChannelNameRegex) + if err != nil { + ShowError(err, 1018) + continue + } + if nameRx.MatchString(m3uChannel.Name) == false { + continue + } + if len(dxc.UpdateChannelNameByGroupRegex) > 0 { + groupRx, err := regexp.Compile(dxc.UpdateChannelNameByGroupRegex) + if err != nil { + ShowError(err, 1018) + continue + } + if groupRx.MatchString(dxc.XGroupTitle) == false { + // Found the channel name to update but it has wrong group + continue + } + } + showInfo("XEPG:" + fmt.Sprintf("Renaming the channel '%v' to '%v'", dxc.Name, m3uChannel.Name)) + channelExists = true + // dxc.Name will be assigned later in channelExists switch + dxc.XName = m3uChannel.Name + currentXEPGID = dxc.XEPG + Data.XEPG.Channels[currentXEPGID] = dxc + break + } } @@ -649,7 +684,6 @@ func mapping() (err error) { func createXMLTVFile() (err error) { // Image Cache - // 4edd81ab7c368208cc6448b615051b37.jpg var imgc = Data.Cache.Images Data.Cache.ImagesFiles = []string{} @@ -755,7 +789,6 @@ func getProgramData(xepgChannel XEPGChannelStruct) (xepgXML XMLTV, err error) { for _, xmltvProgram := range xmltv.Program { if xmltvProgram.Channel == channelID { - //fmt.Println(&channelID) var program = &Program{} // Channel ID @@ -1041,8 +1074,6 @@ func createM3UFile() { // Clean up the XEPG Database func cleanupXEPG() { - //fmt.Println(Settings.Files.M3U) - var sourceIDs []string for source := range Settings.Files.M3U { diff --git a/ts/base_ts.ts b/ts/base_ts.ts index 42dcac6..ecce364 100644 --- a/ts/base_ts.ts +++ b/ts/base_ts.ts @@ -289,7 +289,7 @@ function createSearchObj() { var data = SERVER["xepg"]["epgMapping"] var channels = getOwnObjProps(data) - var channelKeys:string[] = ["x-active", "x-channelID", "x-name", "_file.m3u.name", "x-group-title", "x-xmltv-file"] + var channelKeys:string[] = ["x-active", "x-channelID", "x-name", "updateChannelNameRegex", "_file.m3u.name", "x-group-title", "x-xmltv-file"] channels.forEach(id => { diff --git a/ts/menu_ts.ts b/ts/menu_ts.ts index eaa6ec1..24fba43 100644 --- a/ts/menu_ts.ts +++ b/ts/menu_ts.ts @@ -64,7 +64,7 @@ class MainMenuItem extends MainMenu { break case "mapping": - this.tableHeader = ["BULK", "{{.mapping.table.chNo}}", "{{.mapping.table.logo}}", "{{.mapping.table.channelName}}", "{{.mapping.table.playlist}}", "{{.mapping.table.groupTitle}}", "{{.mapping.table.xmltvFile}}", "{{.mapping.table.xmltvID}}", "{{.mapping.table.timeshift}}"] + this.tableHeader = ["BULK", "{{.mapping.table.chNo}}", "{{.mapping.table.logo}}", "{{.mapping.table.channelName}}", "{{.mapping.table.updateChannelNameRegex}}", "{{.mapping.table.playlist}}", "{{.mapping.table.groupTitle}}", "{{.mapping.table.xmltvFile}}", "{{.mapping.table.xmltvID}}", "{{.mapping.table.timeshift}}"] break } @@ -441,6 +441,16 @@ class Content { td.id = key tr.appendChild(td) + // Update channel name regex + var cell:Cell = new Cell() + cell.child = true + cell.childType = "P" + cell.value = data[key]["update-channel-name-regex"] + var td = cell.createCell() + td.setAttribute('onclick', 'javascript: openPopUp("mapping", this)') + td.id = key + tr.appendChild(td) + // Playlist var cell:Cell = new Cell() cell.child = true @@ -778,20 +788,25 @@ class ShowContent extends Content { cell.onclick = true cell.onclickFunction = "javascript: sortTable(3);" } + + if (element == "{{.mapping.table.updateChannelNameRegex}}") { + cell.onclick = true + cell.onclickFunction = "javascript: sortTable(4);" + } if (element == "{{.mapping.table.playlist}}") { cell.onclick = true - cell.onclickFunction = "javascript: sortTable(4);" + cell.onclickFunction = "javascript: sortTable(5);" } if (element == "{{.mapping.table.groupTitle}}") { cell.onclick = true - cell.onclickFunction = "javascript: sortTable(5);" + cell.onclickFunction = "javascript: sortTable(6);" } if (element == "{{.mapping.table.timeshift}}") { cell.onclick = true - cell.onclickFunction = "javascript: sortTable(8);" + cell.onclickFunction = "javascript: sortTable(9);" } } @@ -1611,7 +1626,7 @@ function openPopUp(dataType, element) { input.setAttribute("onchange", "javascript: this.className = 'changed'") content.appendRow("{{.mapping.description.title}}", input) - // Update the channel name + // Update the channel x-name if (data.hasOwnProperty("_uuid.key")) { if (data["_uuid.key"] != "") { var dbKey:string = "x-update-channel-name" @@ -1622,6 +1637,22 @@ function openPopUp(dataType, element) { } } + // Channel name regex for updating the channel name + var dbKey:string = "update-channel-name-regex" + var input = content.createInput("text", dbKey, data[dbKey]) + input.setAttribute("placeholder", "{{.mapping.updateChannelNameRegex.placeholder}}") + input.setAttribute("onchange", "javascript: this.className = 'changed'") + content.appendRow("{{.mapping.updateChannelNameRegex.title}}", input) + content.description("{{.mapping.updateChannelNameRegex.description}}") + + // Channel group regex for updating the channel name + var dbKey:string = "update-channel-name-by-group-regex" + var input = content.createInput("text", dbKey, data[dbKey]) + input.setAttribute("placeholder", "{{.mapping.updateChannelNameByGroupRegex.placeholder}}") + input.setAttribute("onchange", "javascript: this.className = 'changed'") + content.appendRow("{{.mapping.updateChannelNameByGroupRegex.title}}", input) + content.description("{{.mapping.updateChannelNameByGroupRegex.description}}") + // Logo URL (Channel) var dbKey:string = "tvg-logo" var input = content.createInput("text", dbKey, data[dbKey]) @@ -2200,8 +2231,12 @@ function donePopupData(dataType:string, idsStr:string) { (document.getElementById(id).childNodes[3].firstChild as HTMLElement).className = value break + case "update-channel-name-regex": + (document.getElementById(id).childNodes[4].firstChild as HTMLElement).innerHTML = value + break + case "x-group-title": - (document.getElementById(id).childNodes[5].firstChild as HTMLElement).innerHTML = value + (document.getElementById(id).childNodes[6].firstChild as HTMLElement).innerHTML = value break case "x-xmltv-file": @@ -2213,7 +2248,7 @@ function donePopupData(dataType:string, idsStr:string) { input["x-active"] = false } - (document.getElementById(id).childNodes[6].firstChild as HTMLElement).innerHTML = value + (document.getElementById(id).childNodes[7].firstChild as HTMLElement).innerHTML = value break case "x-mapping": @@ -2221,12 +2256,12 @@ function donePopupData(dataType:string, idsStr:string) { input["x-active"] = false } - (document.getElementById(id).childNodes[7].firstChild as HTMLElement).innerHTML = value + (document.getElementById(id).childNodes[8].firstChild as HTMLElement).innerHTML = value break case "x-timeshift": - (document.getElementById(id).childNodes[8].firstChild as HTMLElement).innerHTML = value + (document.getElementById(id).childNodes[9].firstChild as HTMLElement).innerHTML = value break default: From b1cda6d91a549cfd1707468da089dda9b7cb1987 Mon Sep 17 00:00:00 2001 From: SCP002 Date: Mon, 2 May 2022 13:03:24 +0300 Subject: [PATCH 104/189] Change sample regex for channel renaming to the more safe variant --- html/lang/en.json | 2 +- src/webUI.go | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/html/lang/en.json b/html/lang/en.json index a79a5ac..ca431ce 100644 --- a/html/lang/en.json +++ b/html/lang/en.json @@ -260,7 +260,7 @@ "updateChannelNameRegex": { "title": "Channel name update regex", - "placeholder": "For example ^PPV.?1.*", + "placeholder": "For example ^PPV[ \\\\-_]?1.*", "description": "On update, if any new channel name matches this regex, rename current channel to the first matching name" }, "updateChannelNameByGroupRegex": diff --git a/src/webUI.go b/src/webUI.go index 498c7a6..244af2b 100644 --- a/src/webUI.go +++ b/src/webUI.go @@ -32,7 +32,7 @@ func loadHTMLMap() { webUI["html/js/menu_ts.js"] = "Y2xhc3MgTWFpbk1lbnUgew0KICAgIGNvbnN0cnVjdG9yKCkgew0KICAgICAgICB0aGlzLkRvY3VtZW50SUQgPSAibWFpbi1tZW51IjsNCiAgICAgICAgdGhpcy5IVE1MVGFnID0gIkxJIjsNCiAgICAgICAgdGhpcy5JbWFnZVBhdGggPSAiaW1nLyI7DQogICAgfQ0KICAgIGNyZWF0ZUlNRyhzcmMpIHsNCiAgICAgICAgbGV0IGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJJTUciKTsNCiAgICAgICAgZWxlbWVudC5zZXRBdHRyaWJ1dGUoInNyYyIsIHRoaXMuSW1hZ2VQYXRoICsgc3JjKTsNCiAgICAgICAgcmV0dXJuIGVsZW1lbnQ7DQogICAgfQ0KICAgIGNyZWF0ZVZhbHVlKHZhbHVlKSB7DQogICAgICAgIGxldCBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiUCIpOw0KICAgICAgICBlbGVtZW50LmlubmVySFRNTCA9IHZhbHVlOw0KICAgICAgICByZXR1cm4gZWxlbWVudDsNCiAgICB9DQp9DQpjbGFzcyBNYWluTWVudUl0ZW0gZXh0ZW5kcyBNYWluTWVudSB7DQogICAgY29uc3RydWN0b3IobWVudUtleSwgdmFsdWUsIGltYWdlLCBoZWFkbGluZSkgew0KICAgICAgICBzdXBlcigpOw0KICAgICAgICB0aGlzLm1lbnVLZXkgPSBtZW51S2V5Ow0KICAgICAgICB0aGlzLnZhbHVlID0gdmFsdWU7DQogICAgICAgIHRoaXMuaW1nU3JjID0gaW1hZ2U7DQogICAgICAgIHRoaXMuaGVhZGxpbmUgPSBoZWFkbGluZTsNCiAgICB9DQogICAgY3JlYXRlSXRlbSgpIHsNCiAgICAgICAgbGV0IGl0ZW0gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJMSSIpOw0KICAgICAgICBpdGVtLnNldEF0dHJpYnV0ZSgib25jbGljayIsICJqYXZhc2NyaXB0OiBvcGVuVGhpc01lbnUodGhpcykiKTsNCiAgICAgICAgaXRlbS5zZXRBdHRyaWJ1dGUoImlkIiwgdGhpcy5pZCk7DQogICAgICAgIGxldCBpbWcgPSB0aGlzLmNyZWF0ZUlNRyh0aGlzLmltZ1NyYyk7DQogICAgICAgIGxldCB2YWx1ZSA9IHRoaXMuY3JlYXRlVmFsdWUodGhpcy52YWx1ZSk7DQogICAgICAgIGl0ZW0uYXBwZW5kQ2hpbGQoaW1nKTsNCiAgICAgICAgaXRlbS5hcHBlbmRDaGlsZCh2YWx1ZSk7DQogICAgICAgIGxldCBkb2MgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCh0aGlzLkRvY3VtZW50SUQpOw0KICAgICAgICBkb2MuYXBwZW5kQ2hpbGQoaXRlbSk7DQogICAgICAgIHN3aXRjaCAodGhpcy5tZW51S2V5KSB7DQogICAgICAgICAgICBjYXNlICJwbGF5bGlzdCI6DQogICAgICAgICAgICAgICAgdGhpcy50YWJsZUhlYWRlciA9IFsie3sucGxheWxpc3QudGFibGUucGxheWxpc3R9fSIsICJ7ey5wbGF5bGlzdC50YWJsZS50dW5lcn19IiwgInt7LnBsYXlsaXN0LnRhYmxlLmxhc3RVcGRhdGV9fSIsICJ7ey5wbGF5bGlzdC50YWJsZS5hdmFpbGFiaWxpdHl9fSAlIiwgInt7LnBsYXlsaXN0LnRhYmxlLnR5cGV9fSIsICJ7ey5wbGF5bGlzdC50YWJsZS5zdHJlYW1zfX0iLCAie3sucGxheWxpc3QudGFibGUuZ3JvdXBUaXRsZX19ICUiLCAie3sucGxheWxpc3QudGFibGUudHZnSUR9fSAlIiwgInt7LnBsYXlsaXN0LnRhYmxlLnVuaXF1ZUlEfX0gJSJdOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAieG1sdHYiOg0KICAgICAgICAgICAgICAgIHRoaXMudGFibGVIZWFkZXIgPSBbInt7LnhtbHR2LnRhYmxlLmd1aWRlfX0iLCAie3sueG1sdHYudGFibGUubGFzdFVwZGF0ZX19IiwgInt7LnhtbHR2LnRhYmxlLmF2YWlsYWJpbGl0eX19ICUiLCAie3sueG1sdHYudGFibGUuY2hhbm5lbHN9fSIsICJ7ey54bWx0di50YWJsZS5wcm9ncmFtc319Il07DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJmaWx0ZXIiOg0KICAgICAgICAgICAgICAgIHRoaXMudGFibGVIZWFkZXIgPSBbInt7LmZpbHRlci50YWJsZS5zdGFydGluZ0NoYW5uZWx9fSIsICJ7ey5maWx0ZXIudGFibGUubmFtZX19IiwgInt7LmZpbHRlci50YWJsZS50eXBlfX0iLCAie3suZmlsdGVyLnRhYmxlLmZpbHRlcn19Il07DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ1c2VycyI6DQogICAgICAgICAgICAgICAgdGhpcy50YWJsZUhlYWRlciA9IFsie3sudXNlcnMudGFibGUudXNlcm5hbWV9fSIsICJ7ey51c2Vycy50YWJsZS5wYXNzd29yZH19IiwgInt7LnVzZXJzLnRhYmxlLndlYn19IiwgInt7LnVzZXJzLnRhYmxlLnBtc319IiwgInt7LnVzZXJzLnRhYmxlLm0zdX19IiwgInt7LnVzZXJzLnRhYmxlLnhtbH19IiwgInt7LnVzZXJzLnRhYmxlLmFwaX19Il07DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJtYXBwaW5nIjoNCiAgICAgICAgICAgICAgICB0aGlzLnRhYmxlSGVhZGVyID0gWyJCVUxLIiwgInt7Lm1hcHBpbmcudGFibGUuY2hOb319IiwgInt7Lm1hcHBpbmcudGFibGUubG9nb319IiwgInt7Lm1hcHBpbmcudGFibGUuY2hhbm5lbE5hbWV9fSIsICJ7ey5tYXBwaW5nLnRhYmxlLnVwZGF0ZUNoYW5uZWxOYW1lUmVnZXh9fSIsICJ7ey5tYXBwaW5nLnRhYmxlLnBsYXlsaXN0fX0iLCAie3subWFwcGluZy50YWJsZS5ncm91cFRpdGxlfX0iLCAie3subWFwcGluZy50YWJsZS54bWx0dkZpbGV9fSIsICJ7ey5tYXBwaW5nLnRhYmxlLnhtbHR2SUR9fSIsICJ7ey5tYXBwaW5nLnRhYmxlLnRpbWVzaGlmdH19Il07DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIH0NCiAgICB9DQp9DQpjbGFzcyBDb250ZW50IHsNCiAgICBjb25zdHJ1Y3RvcigpIHsNCiAgICAgICAgdGhpcy5Eb2N1bWVudElEID0gImNvbnRlbnQiOw0KICAgICAgICB0aGlzLlRhYmxlSUQgPSAiY29udGVudF90YWJsZSI7DQogICAgICAgIHRoaXMuaGVhZGVyQ2xhc3MgPSAiY29udGVudF90YWJsZV9oZWFkZXIiOw0KICAgICAgICB0aGlzLmludGVyYWN0aW9uSUQgPSAiY29udGVudC1pbnRlcmFjdGlvbiI7DQogICAgfQ0KICAgIGNyZWF0ZUhlYWRsaW5lKHZhbHVlKSB7DQogICAgICAgIGxldCBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiSDMiKTsNCiAgICAgICAgZWxlbWVudC5pbm5lckhUTUwgPSB2YWx1ZTsNCiAgICAgICAgcmV0dXJuIGVsZW1lbnQ7DQogICAgfQ0KICAgIGNyZWF0ZUhSKCkgew0KICAgICAgICByZXR1cm4gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiSFIiKTsNCiAgICB9DQogICAgY3JlYXRlSW50ZXJhY3Rpb24oKSB7DQogICAgICAgIGxldCBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiRElWIik7DQogICAgICAgIGVsZW1lbnQuc2V0QXR0cmlidXRlKCJpZCIsIHRoaXMuaW50ZXJhY3Rpb25JRCk7DQogICAgICAgIHJldHVybiBlbGVtZW50Ow0KICAgIH0NCiAgICBjcmVhdGVESVYoKSB7DQogICAgICAgIGxldCBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiRElWIik7DQogICAgICAgIGVsZW1lbnQuaWQgPSB0aGlzLkRpdklEOw0KICAgICAgICByZXR1cm4gZWxlbWVudDsNCiAgICB9DQogICAgY3JlYXRlVEFCTEUoKSB7DQogICAgICAgIGxldCBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEFCTEUiKTsNCiAgICAgICAgZWxlbWVudC5pZCA9IHRoaXMuVGFibGVJRDsNCiAgICAgICAgcmV0dXJuIGVsZW1lbnQ7DQogICAgfQ0KICAgIGNyZWF0ZVRhYmxlUm93KCkgew0KICAgICAgICBsZXQgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlRSIik7DQogICAgICAgIGVsZW1lbnQuY2xhc3NOYW1lID0gdGhpcy5oZWFkZXJDbGFzczsNCiAgICAgICAgcmV0dXJuIGVsZW1lbnQ7DQogICAgfQ0KICAgIGNyZWF0ZVRhYmxlQ29udGVudChtZW51S2V5KSB7DQogICAgICAgIGxldCBkYXRhID0ge307DQogICAgICAgIGxldCByb3dzID0gW107DQogICAgICAgIGxldCBmaWxlVHlwZXMgPSBbXTsNCiAgICAgICAgc3dpdGNoIChtZW51S2V5KSB7DQogICAgICAgICAgICBjYXNlICJwbGF5bGlzdCI6DQogICAgICAgICAgICAgICAgZmlsZVR5cGVzID0gWyJtM3UiLCAiaGRociJdOw0KICAgICAgICAgICAgICAgIGZpbGVUeXBlcy5mb3JFYWNoKGZpbGVUeXBlID0+IHsNCiAgICAgICAgICAgICAgICAgICAgZGF0YSA9IFNFUlZFUlsic2V0dGluZ3MiXVsiZmlsZXMiXVtmaWxlVHlwZV07DQogICAgICAgICAgICAgICAgICAgIHZhciBrZXlzID0gZ2V0T3duT2JqUHJvcHMoZGF0YSk7DQogICAgICAgICAgICAgICAgICAgIGtleXMuZm9yRWFjaChrZXkgPT4gew0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVFIiKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmlkID0ga2V5Ow0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgiJyArIGZpbGVUeXBlICsgJyIsIHRoaXMpJyk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsibmFtZSJdOw0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChTRVJWRVJbInNldHRpbmdzIl1bImJ1ZmZlciJdICE9ICItIikgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bInR1bmVyIl07DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gIi0iOw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bImxhc3QudXBkYXRlIl07DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsicHJvdmlkZXIuYXZhaWxhYmlsaXR5Il07DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsidHlwZSJdLnRvVXBwZXJDYXNlKCk7DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsiY29tcGF0aWJpbGl0eSJdWyJzdHJlYW1zIl07DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsiY29tcGF0aWJpbGl0eSJdWyJncm91cC50aXRsZSJdOw0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bImNvbXBhdGliaWxpdHkiXVsidHZnLmlkIl07DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsiY29tcGF0aWJpbGl0eSJdWyJzdHJlYW0uaWQiXTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHJvd3MucHVzaCh0cik7DQogICAgICAgICAgICAgICAgICAgIH0pOw0KICAgICAgICAgICAgICAgIH0pOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiZmlsdGVyIjoNCiAgICAgICAgICAgICAgICBkZWxldGUgU0VSVkVSWyJzZXR0aW5ncyJdWyJmaWx0ZXIiXVstMV07DQogICAgICAgICAgICAgICAgZGF0YSA9IFNFUlZFUlsic2V0dGluZ3MiXVsiZmlsdGVyIl07DQogICAgICAgICAgICAgICAgdmFyIGtleXMgPSBnZXRPd25PYmpQcm9wcyhkYXRhKTsNCiAgICAgICAgICAgICAgICBrZXlzLmZvckVhY2goa2V5ID0+IHsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVFIiKTsNCiAgICAgICAgICAgICAgICAgICAgdHIuaWQgPSBrZXk7DQogICAgICAgICAgICAgICAgICAgIHRyLnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoIicgKyBkYXRhW2tleV1bInR5cGUiXSArICciLCB0aGlzKScpOw0KICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsic3RhcnRpbmdDaGFubmVsIl07DQogICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bIm5hbWUiXTsNCiAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgc3dpdGNoIChkYXRhW2tleV1bInR5cGUiXSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAiY3VzdG9tLWZpbHRlciI6DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9ICJ7ey5maWx0ZXIuY3VzdG9tfX0iOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAiZ3JvdXAtdGl0bGUiOg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSAie3suZmlsdGVyLmdyb3VwfX0iOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJmaWx0ZXIiXTsNCiAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICByb3dzLnB1c2godHIpOw0KICAgICAgICAgICAgICAgIH0pOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAieG1sdHYiOg0KICAgICAgICAgICAgICAgIGZpbGVUeXBlcyA9IG5ldyBBcnJheSgieG1sdHYiKTsNCiAgICAgICAgICAgICAgICBmaWxlVHlwZXMuZm9yRWFjaChmaWxlVHlwZSA9PiB7DQogICAgICAgICAgICAgICAgICAgIGRhdGEgPSBTRVJWRVJbInNldHRpbmdzIl1bImZpbGVzIl1bZmlsZVR5cGVdOw0KICAgICAgICAgICAgICAgICAgICB2YXIga2V5cyA9IGdldE93bk9ialByb3BzKGRhdGEpOw0KICAgICAgICAgICAgICAgICAgICBrZXlzLmZvckVhY2goa2V5ID0+IHsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciB0ciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlRSIik7DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5pZCA9IGtleTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoIicgKyBmaWxlVHlwZSArICciLCB0aGlzKScpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bIm5hbWUiXTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJsYXN0LnVwZGF0ZSJdOw0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bInByb3ZpZGVyLmF2YWlsYWJpbGl0eSJdOw0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bImNvbXBhdGliaWxpdHkiXVsieG1sdHYuY2hhbm5lbHMiXTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJjb21wYXRpYmlsaXR5Il1bInhtbHR2LnByb2dyYW1zIl07DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICByb3dzLnB1c2godHIpOw0KICAgICAgICAgICAgICAgICAgICB9KTsNCiAgICAgICAgICAgICAgICB9KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInVzZXJzIjoNCiAgICAgICAgICAgICAgICBmaWxlVHlwZXMgPSBuZXcgQXJyYXkoInVzZXJzIik7DQogICAgICAgICAgICAgICAgZmlsZVR5cGVzLmZvckVhY2goZmlsZVR5cGUgPT4gew0KICAgICAgICAgICAgICAgICAgICBkYXRhID0gU0VSVkVSW2ZpbGVUeXBlXTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGtleXMgPSBnZXRPd25PYmpQcm9wcyhkYXRhKTsNCiAgICAgICAgICAgICAgICAgICAga2V5cy5mb3JFYWNoKGtleSA9PiB7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgdHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJUUiIpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuaWQgPSBrZXk7DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCInICsgZmlsZVR5cGUgKyAnIiwgdGhpcyknKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJkYXRhIl1bInVzZXJuYW1lIl07DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9ICIqKioqKioiOw0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChkYXRhW2tleV1bImRhdGEiXVsiYXV0aGVudGljYXRpb24ud2ViIl0gPT0gdHJ1ZSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSAi4pyTIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSAiLSI7DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGRhdGFba2V5XVsiZGF0YSJdWyJhdXRoZW50aWNhdGlvbi5wbXMiXSA9PSB0cnVlKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9ICLinJMiOw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9ICItIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgICAgICBpZiAoZGF0YVtrZXldWyJkYXRhIl1bImF1dGhlbnRpY2F0aW9uLm0zdSJdID09IHRydWUpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gIuKckyI7DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gIi0iOw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChkYXRhW2tleV1bImRhdGEiXVsiYXV0aGVudGljYXRpb24ueG1sIl0gPT0gdHJ1ZSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSAi4pyTIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSAiLSI7DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGRhdGFba2V5XVsiZGF0YSJdWyJhdXRoZW50aWNhdGlvbi5hcGkiXSA9PSB0cnVlKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9ICLinJMiOw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9ICItIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHJvd3MucHVzaCh0cik7DQogICAgICAgICAgICAgICAgICAgIH0pOw0KICAgICAgICAgICAgICAgIH0pOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAibWFwcGluZyI6DQogICAgICAgICAgICAgICAgQlVMS19FRElUID0gZmFsc2U7DQogICAgICAgICAgICAgICAgY3JlYXRlU2VhcmNoT2JqKCk7DQogICAgICAgICAgICAgICAgY2hlY2tVbmRvKCJlcGdNYXBwaW5nIik7DQogICAgICAgICAgICAgICAgZGF0YSA9IFNFUlZFUlsieGVwZyJdWyJlcGdNYXBwaW5nIl07DQogICAgICAgICAgICAgICAgdmFyIGtleXMgPSBnZXRPd25PYmpQcm9wcyhkYXRhKTsNCiAgICAgICAgICAgICAgICBrZXlzLmZvckVhY2goa2V5ID0+IHsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVFIiKTsNCiAgICAgICAgICAgICAgICAgICAgdHIuaWQgPSBrZXk7DQogICAgICAgICAgICAgICAgICAgIHN3aXRjaCAoZGF0YVtrZXldWyJ4LWFjdGl2ZSJdKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBjYXNlIHRydWU6DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgdHIuY2xhc3NOYW1lID0gImFjdGl2ZUVQRyI7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgICAgICAgICBjYXNlIGZhbHNlOg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyLmNsYXNzTmFtZSA9ICJub3RBY3RpdmVFUEciOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIC8vIEJ1bGsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiQlVMSyI7DQogICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBmYWxzZTsNCiAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAvLyBDaGFubmVsIG51bWJlcg0KICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJJTlBVVENIQU5ORUwiOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJ4LWNoYW5uZWxJRCJdOw0KICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgIC8vIExvZ28NCiAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiSU1HIjsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5pbWFnZVVSTCA9IGRhdGFba2V5XVsidHZnLWxvZ28iXTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHRkID0gY2VsbC5jcmVhdGVDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgIHRkLnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoIm1hcHBpbmciLCB0aGlzKScpOw0KICAgICAgICAgICAgICAgICAgICB0ZC5pZCA9IGtleTsNCiAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQodGQpOw0KICAgICAgICAgICAgICAgICAgICAvLyBDaGFubmVsIG5hbWUNCiAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2xhc3NOYW1lID0gZGF0YVtrZXldWyJ4LWNhdGVnb3J5Il07DQogICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bIngtbmFtZSJdOw0KICAgICAgICAgICAgICAgICAgICB2YXIgdGQgPSBjZWxsLmNyZWF0ZUNlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgdGQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgibWFwcGluZyIsIHRoaXMpJyk7DQogICAgICAgICAgICAgICAgICAgIHRkLmlkID0ga2V5Ow0KICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZCh0ZCk7DQogICAgICAgICAgICAgICAgICAgIC8vIFVwZGF0ZSBjaGFubmVsIG5hbWUgcmVnZXgNCiAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bInVwZGF0ZS1jaGFubmVsLW5hbWUtcmVnZXgiXTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHRkID0gY2VsbC5jcmVhdGVDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgIHRkLnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoIm1hcHBpbmciLCB0aGlzKScpOw0KICAgICAgICAgICAgICAgICAgICB0ZC5pZCA9IGtleTsNCiAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQodGQpOw0KICAgICAgICAgICAgICAgICAgICAvLyBQbGF5bGlzdA0KICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGdldFZhbHVlRnJvbVByb3ZpZGVyRmlsZShkYXRhW2tleV1bIl9maWxlLm0zdS5pZCJdLCAibTN1IiwgIm5hbWUiKTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHRkID0gY2VsbC5jcmVhdGVDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgIHRkLnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoIm1hcHBpbmciLCB0aGlzKScpOw0KICAgICAgICAgICAgICAgICAgICB0ZC5pZCA9IGtleTsNCiAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQodGQpOw0KICAgICAgICAgICAgICAgICAgICAvLyBHcm91cCAoZ3JvdXAtdGl0bGUpDQogICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJ4LWdyb3VwLXRpdGxlIl07DQogICAgICAgICAgICAgICAgICAgIHZhciB0ZCA9IGNlbGwuY3JlYXRlQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICB0ZC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJtYXBwaW5nIiwgdGhpcyknKTsNCiAgICAgICAgICAgICAgICAgICAgdGQuaWQgPSBrZXk7DQogICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKHRkKTsNCiAgICAgICAgICAgICAgICAgICAgLy8gWE1MVFYgZmlsZQ0KICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgaWYgKGRhdGFba2V5XVsieC14bWx0di1maWxlIl0gIT0gIi0iKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZ2V0VmFsdWVGcm9tUHJvdmlkZXJGaWxlKGRhdGFba2V5XVsieC14bWx0di1maWxlIl0sICJ4bWx0diIsICJuYW1lIik7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgZWxzZSB7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJ4LXhtbHR2LWZpbGUiXTsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICB2YXIgdGQgPSBjZWxsLmNyZWF0ZUNlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgdGQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgibWFwcGluZyIsIHRoaXMpJyk7DQogICAgICAgICAgICAgICAgICAgIHRkLmlkID0ga2V5Ow0KICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZCh0ZCk7DQogICAgICAgICAgICAgICAgICAgIC8vIFhNTFRWIENoYW5uZWwNCiAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgIHZhciB2YWx1ZSA9IGRhdGFba2V5XVsieC1tYXBwaW5nIl07DQogICAgICAgICAgICAgICAgICAgIGlmICh2YWx1ZS5sZW5ndGggPiAyMCkgew0KICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSBkYXRhW2tleV1bIngtbWFwcGluZyJdLnN1YnN0cmluZygwLCAyMCkgKyAiLi4uIjsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gdmFsdWU7DQogICAgICAgICAgICAgICAgICAgIHZhciB0ZCA9IGNlbGwuY3JlYXRlQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICB0ZC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJtYXBwaW5nIiwgdGhpcyknKTsNCiAgICAgICAgICAgICAgICAgICAgdGQuaWQgPSBrZXk7DQogICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKHRkKTsNCiAgICAgICAgICAgICAgICAgICAgLy8gVGltZVNoaWZ0DQogICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJ4LXRpbWVzaGlmdCJdOw0KICAgICAgICAgICAgICAgICAgICB2YXIgdGQgPSBjZWxsLmNyZWF0ZUNlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgdGQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgibWFwcGluZyIsIHRoaXMpJyk7DQogICAgICAgICAgICAgICAgICAgIHRkLmlkID0ga2V5Ow0KICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZCh0ZCk7DQogICAgICAgICAgICAgICAgICAgIHJvd3MucHVzaCh0cik7DQogICAgICAgICAgICAgICAgfSk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJzZXR0aW5ncyI6DQogICAgICAgICAgICAgICAgYWxlcnQoKTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIH0NCiAgICAgICAgcmV0dXJuIHJvd3M7DQogICAgfQ0KfQ0KY2xhc3MgQ2VsbCB7DQogICAgY3JlYXRlQ2VsbCgpIHsNCiAgICAgICAgbGV0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgaWYgKHRoaXMuY2hpbGQgPT0gdHJ1ZSkgew0KICAgICAgICAgICAgdmFyIGVsZW1lbnQ7DQogICAgICAgICAgICBzd2l0Y2ggKHRoaXMuY2hpbGRUeXBlKSB7DQogICAgICAgICAgICAgICAgY2FzZSAiUCI6DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KHRoaXMuY2hpbGRUeXBlKTsNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC5pbm5lckhUTUwgPSB0aGlzLnZhbHVlOw0KICAgICAgICAgICAgICAgICAgICBlbGVtZW50LmNsYXNzTmFtZSA9IHRoaXMuY2xhc3NOYW1lOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBjYXNlICJJTlBVVCI6DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KHRoaXMuY2hpbGRUeXBlKTsNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC52YWx1ZSA9IHRoaXMudmFsdWU7DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQudHlwZSA9ICJ0ZXh0IjsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAiSU5QVVRDSEFOTkVMIjoNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIklOUFVUIik7DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZzY3JpcHQ6IGNoYW5nZUNoYW5uZWxOdW1iZXIodGhpcykiKTsNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC52YWx1ZSA9IHRoaXMudmFsdWU7DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQudHlwZSA9ICJ0ZXh0IjsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAiQlVMSyI6DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJJTlBVVCIpOw0KICAgICAgICAgICAgICAgICAgICBlbGVtZW50LmNoZWNrZWQgPSB0aGlzLnZhbHVlOw0KICAgICAgICAgICAgICAgICAgICBlbGVtZW50LnR5cGUgPSAiY2hlY2tib3giOw0KICAgICAgICAgICAgICAgICAgICBlbGVtZW50LmNsYXNzTmFtZSA9ICJidWxrIGhpZGVCdWxrIjsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAiQlVMS19IRUFEIjoNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIklOUFVUIik7DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQuY2hlY2tlZCA9IHRoaXMudmFsdWU7DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQudHlwZSA9ICJjaGVja2JveCI7DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQuY2xhc3NOYW1lID0gImJ1bGsgaGlkZUJ1bGsiOw0KICAgICAgICAgICAgICAgICAgICBlbGVtZW50LnNldEF0dHJpYnV0ZSgib25jbGljayIsICJqYXZhc2NyaXB0OiBzZWxlY3RBbGxDaGFubmVscygpIik7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgIklNRyI6DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KHRoaXMuY2hpbGRUeXBlKTsNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC5zZXRBdHRyaWJ1dGUoInNyYyIsIHRoaXMuaW1hZ2VVUkwpOw0KICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5pbWFnZVVSTCAhPSAiIikgew0KICAgICAgICAgICAgICAgICAgICAgICAgZWxlbWVudC5zZXRBdHRyaWJ1dGUoIm9uZXJyb3IiLCAiamF2YXNjcmlwdDogdGhpcy5vbmVycm9yPW51bGw7dGhpcy5zcmM9JyciKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIC8vb25lcnJvcj0idGhpcy5vbmVycm9yPW51bGw7dGhpcy5zcmM9J21pc3NpbmcuZ2lmJzsiDQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIHRkLmFwcGVuZENoaWxkKGVsZW1lbnQpOw0KICAgICAgICB9DQogICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgdGQuaW5uZXJIVE1MID0gdGhpcy52YWx1ZTsNCiAgICAgICAgfQ0KICAgICAgICBpZiAodGhpcy5vbmNsaWNrID09IHRydWUpIHsNCiAgICAgICAgICAgIHRkLnNldEF0dHJpYnV0ZSgib25jbGljayIsIHRoaXMub25jbGlja0Z1bmN0aW9uKTsNCiAgICAgICAgICAgIHRkLmNsYXNzTmFtZSA9ICJwb2ludGVyIjsNCiAgICAgICAgfQ0KICAgICAgICBpZiAodGhpcy50ZENsYXNzTmFtZSAhPSB1bmRlZmluZWQpIHsNCiAgICAgICAgICAgIHRkLmNsYXNzTmFtZSA9IHRoaXMudGRDbGFzc05hbWU7DQogICAgICAgIH0NCiAgICAgICAgcmV0dXJuIHRkOw0KICAgIH0NCn0NCmNsYXNzIFNob3dDb250ZW50IGV4dGVuZHMgQ29udGVudCB7DQogICAgY29uc3RydWN0b3IobWVudUlEKSB7DQogICAgICAgIHN1cGVyKCk7DQogICAgICAgIHRoaXMubWVudUlEID0gbWVudUlEOw0KICAgIH0NCiAgICBjcmVhdGVJbnB1dCh0eXBlLCBuYW1lLCB2YWx1ZSkgew0KICAgICAgICBsZXQgaW5wdXQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJJTlBVVCIpOw0KICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInR5cGUiLCB0eXBlKTsNCiAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJuYW1lIiwgbmFtZSk7DQogICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgidmFsdWUiLCB2YWx1ZSk7DQogICAgICAgIHJldHVybiBpbnB1dDsNCiAgICB9DQogICAgc2hvdygpIHsNCiAgICAgICAgQ09MVU1OX1RPX1NPUlQgPSAtMTsNCiAgICAgICAgLy8gRGVsZXRlIG9sZCBjb250ZW50DQogICAgICAgIGxldCBkb2MgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCh0aGlzLkRvY3VtZW50SUQpOw0KICAgICAgICBkb2MuaW5uZXJIVE1MID0gIiI7DQogICAgICAgIHNob3dQcmV2aWV3KGZhbHNlKTsNCiAgICAgICAgLy8gSGVhZGxpbmUNCiAgICAgICAgbGV0IGhlYWRsaW5lID0gbWVudUl0ZW1zW3RoaXMubWVudUlEXS5oZWFkbGluZTsNCiAgICAgICAgbGV0IG1lbnVLZXkgPSBtZW51SXRlbXNbdGhpcy5tZW51SURdLm1lbnVLZXk7DQogICAgICAgIGxldCBoID0gdGhpcy5jcmVhdGVIZWFkbGluZShoZWFkbGluZSk7DQogICAgICAgIGRvYy5hcHBlbmRDaGlsZChoKTsNCiAgICAgICAgbGV0IGhyID0gdGhpcy5jcmVhdGVIUigpOw0KICAgICAgICBkb2MuYXBwZW5kQ2hpbGQoaHIpOw0KICAgICAgICAvLyBJbnRlcmFjdGlvbg0KICAgICAgICBsZXQgZGl2ID0gdGhpcy5jcmVhdGVJbnRlcmFjdGlvbigpOw0KICAgICAgICBkb2MuYXBwZW5kQ2hpbGQoZGl2KTsNCiAgICAgICAgbGV0IGludGVyYWN0aW9uID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQodGhpcy5pbnRlcmFjdGlvbklEKTsNCiAgICAgICAgc3dpdGNoIChtZW51S2V5KSB7DQogICAgICAgICAgICBjYXNlICJwbGF5bGlzdCI6DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gdGhpcy5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgbWVudUtleSwgInt7LmJ1dHRvbi5uZXd9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgiaWQiLCAiLSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoInBsYXlsaXN0IiknKTsNCiAgICAgICAgICAgICAgICBpbnRlcmFjdGlvbi5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJmaWx0ZXIiOg0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IHRoaXMuY3JlYXRlSW5wdXQoImJ1dHRvbiIsIG1lbnVLZXksICJ7ey5idXR0b24ubmV3fX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoImlkIiwgLTEpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoImZpbHRlciIsIHRoaXMpJyk7DQogICAgICAgICAgICAgICAgaW50ZXJhY3Rpb24uYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAieG1sdHYiOg0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IHRoaXMuY3JlYXRlSW5wdXQoImJ1dHRvbiIsIG1lbnVLZXksICJ7ey5idXR0b24ubmV3fX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoImlkIiwgInhtbHR2Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgieG1sdHYiKScpOw0KICAgICAgICAgICAgICAgIGludGVyYWN0aW9uLmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInVzZXJzIjoNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSB0aGlzLmNyZWF0ZUlucHV0KCJidXR0b24iLCBtZW51S2V5LCAie3suYnV0dG9uLm5ld319Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJpZCIsICJ1c2VycyIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoInVzZXJzIiknKTsNCiAgICAgICAgICAgICAgICBpbnRlcmFjdGlvbi5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJtYXBwaW5nIjoNCiAgICAgICAgICAgICAgICBzaG93RWxlbWVudCgibG9hZGluZyIsIHRydWUpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IHRoaXMuY3JlYXRlSW5wdXQoImJ1dHRvbiIsIG1lbnVLZXksICJ7ey5idXR0b24uc2F2ZX19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoIm1hcHBpbmciLCAiIiwgIiIpJyk7DQogICAgICAgICAgICAgICAgaW50ZXJhY3Rpb24uYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IHRoaXMuY3JlYXRlSW5wdXQoImJ1dHRvbiIsIG1lbnVLZXksICJ7ey5idXR0b24uYnVsa0VkaXR9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBidWxrRWRpdCgpJyk7DQogICAgICAgICAgICAgICAgaW50ZXJhY3Rpb24uYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IHRoaXMuY3JlYXRlSW5wdXQoInNlYXJjaCIsICJzZWFyY2giLCAiIik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJpZCIsICJzZWFyY2hNYXBwaW5nIik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5idXR0b24uc2VhcmNofX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5jbGFzc05hbWUgPSAic2VhcmNoIjsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgJ2phdmFzY3JpcHQ6IHNlYXJjaEluTWFwcGluZygpJyk7DQogICAgICAgICAgICAgICAgaW50ZXJhY3Rpb24uYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAic2V0dGluZ3MiOg0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IHRoaXMuY3JlYXRlSW5wdXQoImJ1dHRvbiIsIG1lbnVLZXksICJ7ey5idXR0b24uc2F2ZX19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IHNhdmVTZXR0aW5ncygpOycpOw0KICAgICAgICAgICAgICAgIGludGVyYWN0aW9uLmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSB0aGlzLmNyZWF0ZUlucHV0KCJidXR0b24iLCBtZW51S2V5LCAie3suYnV0dG9uLmJhY2t1cH19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IGJhY2t1cCgpOycpOw0KICAgICAgICAgICAgICAgIGludGVyYWN0aW9uLmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSB0aGlzLmNyZWF0ZUlucHV0KCJidXR0b24iLCBtZW51S2V5LCAie3suYnV0dG9uLnJlc3RvcmV9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiByZXN0b3JlKCk7Jyk7DQogICAgICAgICAgICAgICAgaW50ZXJhY3Rpb24uYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIHZhciB3cmFwcGVyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiRElWIik7DQogICAgICAgICAgICAgICAgd3JhcHBlci5zZXRBdHRyaWJ1dGUoImlkIiwgImJveC13cmFwcGVyIik7DQogICAgICAgICAgICAgICAgZG9jLmFwcGVuZENoaWxkKHdyYXBwZXIpOw0KICAgICAgICAgICAgICAgIHRoaXMuRGl2SUQgPSAiY29udGVudF9zZXR0aW5ncyI7DQogICAgICAgICAgICAgICAgdmFyIHNldHRpbmdzID0gdGhpcy5jcmVhdGVESVYoKTsNCiAgICAgICAgICAgICAgICB3cmFwcGVyLmFwcGVuZENoaWxkKHNldHRpbmdzKTsNCiAgICAgICAgICAgICAgICBzaG93U2V0dGluZ3MoKTsNCiAgICAgICAgICAgICAgICByZXR1cm47DQogICAgICAgICAgICBjYXNlICJsb2ciOg0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IHRoaXMuY3JlYXRlSW5wdXQoImJ1dHRvbiIsIG1lbnVLZXksICJ7ey5idXR0b24ucmVzZXRMb2dzfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogcmVzZXRMb2dzKCk7Jyk7DQogICAgICAgICAgICAgICAgaW50ZXJhY3Rpb24uYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIHZhciB3cmFwcGVyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiRElWIik7DQogICAgICAgICAgICAgICAgd3JhcHBlci5zZXRBdHRyaWJ1dGUoImlkIiwgImJveC13cmFwcGVyIik7DQogICAgICAgICAgICAgICAgZG9jLmFwcGVuZENoaWxkKHdyYXBwZXIpOw0KICAgICAgICAgICAgICAgIHRoaXMuRGl2SUQgPSAiY29udGVudF9sb2ciOw0KICAgICAgICAgICAgICAgIHZhciBsb2dzID0gdGhpcy5jcmVhdGVESVYoKTsNCiAgICAgICAgICAgICAgICB3cmFwcGVyLmFwcGVuZENoaWxkKGxvZ3MpOw0KICAgICAgICAgICAgICAgIHNob3dMb2dzKHRydWUpOw0KICAgICAgICAgICAgICAgIHJldHVybjsNCiAgICAgICAgICAgIGNhc2UgImxvZ291dCI6DQogICAgICAgICAgICAgICAgbG9jYXRpb24ucmVsb2FkKCk7DQogICAgICAgICAgICAgICAgZG9jdW1lbnQuY29va2llID0gIlRva2VuPSA7IGV4cGlyZXMgPSBUaHUsIDAxIEphbiAxOTcwIDAwOjAwOjAwIEdNVCI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBkZWZhdWx0Og0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICB9DQogICAgICAgIC8vIENyZWF0ZSB0YWJsZSAoaWYgbmVlZGVkKQ0KICAgICAgICB2YXIgdGFibGVIZWFkZXIgPSBtZW51SXRlbXNbdGhpcy5tZW51SURdLnRhYmxlSGVhZGVyOw0KICAgICAgICBpZiAodGFibGVIZWFkZXIubGVuZ3RoID4gMCkgew0KICAgICAgICAgICAgdmFyIHdyYXBwZXIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJESVYiKTsNCiAgICAgICAgICAgIGRvYy5hcHBlbmRDaGlsZCh3cmFwcGVyKTsNCiAgICAgICAgICAgIHdyYXBwZXIuc2V0QXR0cmlidXRlKCJpZCIsICJib3gtd3JhcHBlciIpOw0KICAgICAgICAgICAgdmFyIHRhYmxlID0gdGhpcy5jcmVhdGVUQUJMRSgpOw0KICAgICAgICAgICAgd3JhcHBlci5hcHBlbmRDaGlsZCh0YWJsZSk7DQogICAgICAgICAgICB2YXIgaGVhZGVyID0gdGhpcy5jcmVhdGVUYWJsZVJvdygpOw0KICAgICAgICAgICAgdGFibGUuYXBwZW5kQ2hpbGQoaGVhZGVyKTsNCiAgICAgICAgICAgIC8vIFRhYmxlIGhlYWRlcg0KICAgICAgICAgICAgdGFibGVIZWFkZXIuZm9yRWFjaChlbGVtZW50ID0+IHsNCiAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGVsZW1lbnQ7DQogICAgICAgICAgICAgICAgaWYgKGVsZW1lbnQgPT0gIkJVTEsiKSB7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIkJVTEtfSEVBRCI7DQogICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBmYWxzZTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgaWYgKG1lbnVLZXkgPT0gIm1hcHBpbmciKSB7DQogICAgICAgICAgICAgICAgICAgIGlmIChlbGVtZW50ID09ICJ7ey5tYXBwaW5nLnRhYmxlLmNoTm99fSIpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwub25jbGljayA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLm9uY2xpY2tGdW5jdGlvbiA9ICJqYXZhc2NyaXB0OiBzb3J0VGFibGUoMSk7IjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudGRDbGFzc05hbWUgPSAic29ydFRoaXMiOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIGlmIChlbGVtZW50ID09ICJ7ey5tYXBwaW5nLnRhYmxlLmNoYW5uZWxOYW1lfX0iKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLm9uY2xpY2sgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5vbmNsaWNrRnVuY3Rpb24gPSAiamF2YXNjcmlwdDogc29ydFRhYmxlKDMpOyI7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgaWYgKGVsZW1lbnQgPT0gInt7Lm1hcHBpbmcudGFibGUudXBkYXRlQ2hhbm5lbE5hbWVSZWdleH19Iikgew0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5vbmNsaWNrID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwub25jbGlja0Z1bmN0aW9uID0gImphdmFzY3JpcHQ6IHNvcnRUYWJsZSg0KTsiOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIGlmIChlbGVtZW50ID09ICJ7ey5tYXBwaW5nLnRhYmxlLnBsYXlsaXN0fX0iKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLm9uY2xpY2sgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5vbmNsaWNrRnVuY3Rpb24gPSAiamF2YXNjcmlwdDogc29ydFRhYmxlKDUpOyI7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgaWYgKGVsZW1lbnQgPT0gInt7Lm1hcHBpbmcudGFibGUuZ3JvdXBUaXRsZX19Iikgew0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5vbmNsaWNrID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwub25jbGlja0Z1bmN0aW9uID0gImphdmFzY3JpcHQ6IHNvcnRUYWJsZSg2KTsiOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIGlmIChlbGVtZW50ID09ICJ7ey5tYXBwaW5nLnRhYmxlLnRpbWVzaGlmdH19Iikgew0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5vbmNsaWNrID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwub25jbGlja0Z1bmN0aW9uID0gImphdmFzY3JpcHQ6IHNvcnRUYWJsZSg5KTsiOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIGlmIChtZW51S2V5ID09ICJmaWx0ZXIiKSB7DQogICAgICAgICAgICAgICAgICAgIGlmIChlbGVtZW50ID09ICJ7ey5maWx0ZXIudGFibGUuc3RhcnRpbmdDaGFubmVsfX0iKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLm9uY2xpY2sgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5vbmNsaWNrRnVuY3Rpb24gPSAiamF2YXNjcmlwdDogc29ydFRhYmxlKDApOyI7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnRkQ2xhc3NOYW1lID0gInNvcnRUaGlzIjsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBpZiAoZWxlbWVudCA9PSAie3suZmlsdGVyLnRhYmxlLm5hbWV9fSIpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwub25jbGljayA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLm9uY2xpY2tGdW5jdGlvbiA9ICJqYXZhc2NyaXB0OiBzb3J0VGFibGUoMSk7IjsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBpZiAoZWxlbWVudCA9PSAie3suZmlsdGVyLnRhYmxlLnR5cGV9fSIpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwub25jbGljayA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLm9uY2xpY2tGdW5jdGlvbiA9ICJqYXZhc2NyaXB0OiBzb3J0VGFibGUoMik7IjsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBpZiAoZWxlbWVudCA9PSAie3suZmlsdGVyLnRhYmxlLmZpbHRlcn19Iikgew0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5vbmNsaWNrID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwub25jbGlja0Z1bmN0aW9uID0gImphdmFzY3JpcHQ6IHNvcnRUYWJsZSgzKTsiOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIGhlYWRlci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICB9KTsNCiAgICAgICAgICAgIHRhYmxlLmFwcGVuZENoaWxkKGhlYWRlcik7DQogICAgICAgICAgICAvLyBDb250ZW50IG9mIHRoZSB0YWJsZQ0KICAgICAgICAgICAgdmFyIHJvd3MgPSB0aGlzLmNyZWF0ZVRhYmxlQ29udGVudChtZW51S2V5KTsNCiAgICAgICAgICAgIHJvd3MuZm9yRWFjaCh0ciA9PiB7DQogICAgICAgICAgICAgICAgdGFibGUuYXBwZW5kQ2hpbGQodHIpOw0KICAgICAgICAgICAgfSk7DQogICAgICAgIH0NCiAgICAgICAgc3dpdGNoIChtZW51S2V5KSB7DQogICAgICAgICAgICBjYXNlICJtYXBwaW5nIjoNCiAgICAgICAgICAgICAgICBzb3J0VGFibGUoMSk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJmaWx0ZXIiOg0KICAgICAgICAgICAgICAgIHNob3dQcmV2aWV3KHRydWUpOw0KICAgICAgICAgICAgICAgIHNvcnRUYWJsZSgwKTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICAgICAgQ09MVU1OX1RPX1NPUlQgPSAtMTsNCiAgICAgICAgICAgICAgICBzb3J0VGFibGUoMCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIH0NCiAgICAgICAgc2hvd0VsZW1lbnQoImxvYWRpbmciLCBmYWxzZSk7DQogICAgfQ0KfQ0KZnVuY3Rpb24gUGFnZVJlYWR5KCkgew0KICAgIGxldCBzZXJ2ZXIgPSBuZXcgU2VydmVyKCJnZXRTZXJ2ZXJDb25maWciKTsNCiAgICBzZXJ2ZXIucmVxdWVzdCh7fSk7DQogICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoInJlc2l6ZSIsIGZ1bmN0aW9uICgpIHsNCiAgICAgICAgY2FsY3VsYXRlV3JhcHBlckhlaWdodCgpOw0KICAgIH0sIHRydWUpOw0KICAgIHNldEludGVydmFsKGZ1bmN0aW9uICgpIHsNCiAgICAgICAgdXBkYXRlTG9nKCk7DQogICAgfSwgMTAwMDApOw0KICAgIHJldHVybjsNCn0NCmZ1bmN0aW9uIGNyZWF0ZUxheW91dCgpIHsNCiAgICAvLyBDbGllbnQgSW5mbw0KICAgIGxldCBvYmogPSBTRVJWRVJbImNsaWVudEluZm8iXTsNCiAgICBsZXQga2V5cyA9IGdldE93bk9ialByb3BzKG9iaik7DQogICAgZm9yICh2YXIgaSA9IDA7IGkgPCBrZXlzLmxlbmd0aDsgaSsrKSB7DQogICAgICAgIGlmIChkb2N1bWVudC5nZXRFbGVtZW50QnlJZChrZXlzW2ldKSkgew0KICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoa2V5c1tpXSkuaW5uZXJIVE1MID0gb2JqW2tleXNbaV1dOw0KICAgICAgICB9DQogICAgfQ0KICAgIGlmICghZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm1haW4tbWVudSIpKSB7DQogICAgICAgIHJldHVybjsNCiAgICB9DQogICAgLy8gQ3JlYXRlIG1lbnUNCiAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibWFpbi1tZW51IikuaW5uZXJIVE1MID0gIiI7DQogICAgZm9yIChsZXQgaSA9IDA7IGkgPCBtZW51SXRlbXMubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgbWVudUl0ZW1zW2ldLmlkID0gaTsNCiAgICAgICAgc3dpdGNoIChtZW51SXRlbXNbaV1bIm1lbnVLZXkiXSkgew0KICAgICAgICAgICAgY2FzZSAidXNlcnMiOg0KICAgICAgICAgICAgY2FzZSAibG9nb3V0IjoNCiAgICAgICAgICAgICAgICBpZiAoU0VSVkVSWyJzZXR0aW5ncyJdWyJhdXRoZW50aWNhdGlvbi53ZWIiXSA9PSB0cnVlKSB7DQogICAgICAgICAgICAgICAgICAgIG1lbnVJdGVtc1tpXS5jcmVhdGVJdGVtKCk7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAibWFwcGluZyI6DQogICAgICAgICAgICBjYXNlICJ4bWx0diI6DQogICAgICAgICAgICAgICAgaWYgKFNFUlZFUlsiY2xpZW50SW5mbyJdWyJlcGdTb3VyY2UiXSA9PSAiWEVQRyIpIHsNCiAgICAgICAgICAgICAgICAgICAgbWVudUl0ZW1zW2ldLmNyZWF0ZUl0ZW0oKTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBkZWZhdWx0Og0KICAgICAgICAgICAgICAgIG1lbnVJdGVtc1tpXS5jcmVhdGVJdGVtKCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIH0NCiAgICB9DQogICAgcmV0dXJuOw0KfQ0KZnVuY3Rpb24gb3BlblRoaXNNZW51KGVsZW1lbnQpIHsNCiAgICBsZXQgaWQgPSBlbGVtZW50LmlkOw0KICAgIGxldCBjb250ZW50ID0gbmV3IFNob3dDb250ZW50KGlkKTsNCiAgICBjb250ZW50LnNob3coKTsNCiAgICBjYWxjdWxhdGVXcmFwcGVySGVpZ2h0KCk7DQogICAgcmV0dXJuOw0KfQ0KY2xhc3MgUG9wdXBXaW5kb3cgew0KICAgIGNvbnN0cnVjdG9yKCkgew0KICAgICAgICB0aGlzLkRvY3VtZW50SUQgPSAicG9wdXAtY3VzdG9tIjsNCiAgICAgICAgdGhpcy5JbnRlcmFjdGlvbklEID0gImludGVyYWN0aW9uIjsNCiAgICAgICAgdGhpcy5kb2MgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCh0aGlzLkRvY3VtZW50SUQpOw0KICAgIH0NCiAgICBjcmVhdGVUaXRsZSh0aXRsZSkgew0KICAgICAgICBsZXQgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICB0ZC5jbGFzc05hbWUgPSAibGVmdCI7DQogICAgICAgIHRkLmlubmVySFRNTCA9IHRpdGxlICsgIjoiOw0KICAgICAgICByZXR1cm4gdGQ7DQogICAgfQ0KICAgIGNyZWF0ZUNvbnRlbnQoZWxlbWVudCkgew0KICAgICAgICBsZXQgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICB0ZC5hcHBlbmRDaGlsZChlbGVtZW50KTsNCiAgICAgICAgcmV0dXJuIHRkOw0KICAgIH0NCiAgICBjcmVhdGVJbnRlcmFjdGlvbigpIHsNCiAgICAgICAgbGV0IGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOw0KICAgICAgICBkaXYuc2V0QXR0cmlidXRlKCJpZCIsICJwb3B1cC1pbnRlcmFjdGlvbiIpOw0KICAgICAgICBkaXYuY2xhc3NOYW1lID0gImludGVyYWN0aW9uIjsNCiAgICAgICAgdGhpcy5kb2MuYXBwZW5kQ2hpbGQoZGl2KTsNCiAgICB9DQp9DQpjbGFzcyBQb3B1cENvbnRlbnQgZXh0ZW5kcyBQb3B1cFdpbmRvdyB7DQogICAgY29uc3RydWN0b3IoKSB7DQogICAgICAgIHN1cGVyKC4uLmFyZ3VtZW50cyk7DQogICAgICAgIHRoaXMudGFibGUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJUQUJMRSIpOw0KICAgIH0NCiAgICBjcmVhdGVIZWFkbGluZShoZWFkbGluZSkgew0KICAgICAgICB0aGlzLmRvYy5pbm5lckhUTUwgPSAiIjsNCiAgICAgICAgdmFyIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJIMyIpOw0KICAgICAgICBlbGVtZW50LmlubmVySFRNTCA9IGhlYWRsaW5lLnRvVXBwZXJDYXNlKCk7DQogICAgICAgIHRoaXMuZG9jLmFwcGVuZENoaWxkKGVsZW1lbnQpOw0KICAgICAgICAvLyBDcmVhdGUgdGFibGUNCiAgICAgICAgdGhpcy50YWJsZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlRBQkxFIik7DQogICAgICAgIHRoaXMuZG9jLmFwcGVuZENoaWxkKHRoaXMudGFibGUpOw0KICAgIH0NCiAgICBhcHBlbmRSb3codGl0bGUsIGVsZW1lbnQpIHsNCiAgICAgICAgbGV0IHRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVFIiKTsNCiAgICAgICAgLy8gVGl0bGUNCiAgICAgICAgaWYgKHRpdGxlLmxlbmd0aCAhPSAwKSB7DQogICAgICAgICAgICB0ci5hcHBlbmRDaGlsZCh0aGlzLmNyZWF0ZVRpdGxlKHRpdGxlKSk7DQogICAgICAgIH0NCiAgICAgICAgLy8gQ29udGVudA0KICAgICAgICB0ci5hcHBlbmRDaGlsZCh0aGlzLmNyZWF0ZUNvbnRlbnQoZWxlbWVudCkpOw0KICAgICAgICB0aGlzLnRhYmxlLmFwcGVuZENoaWxkKHRyKTsNCiAgICB9DQogICAgY3JlYXRlSW5wdXQodHlwZSwgbmFtZSwgdmFsdWUpIHsNCiAgICAgICAgbGV0IGlucHV0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiSU5QVVQiKTsNCiAgICAgICAgaWYgKHZhbHVlID09IHVuZGVmaW5lZCkgew0KICAgICAgICAgICAgdmFsdWUgPSAiIjsNCiAgICAgICAgfQ0KICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInR5cGUiLCB0eXBlKTsNCiAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJuYW1lIiwgbmFtZSk7DQogICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgidmFsdWUiLCB2YWx1ZSk7DQogICAgICAgIHJldHVybiBpbnB1dDsNCiAgICB9DQogICAgY3JlYXRlQ2hlY2tib3gobmFtZSkgew0KICAgICAgICBsZXQgaW5wdXQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJJTlBVVCIpOw0KICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInR5cGUiLCAiY2hlY2tib3giKTsNCiAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJuYW1lIiwgbmFtZSk7DQogICAgICAgIHJldHVybiBpbnB1dDsNCiAgICB9DQogICAgLy8gQ3JlYXRlcyBhIHNlbGVjdGlvbiBvZiBtdWx0aXBsZSBvcHRpb25zIHZhbHVlcyB3aXRoIHRleHQgZGVzY3JpcHRpb25zDQogICAgY3JlYXRlU2VsZWN0KHRleHQsIHZhbHVlcywgc2V0LCBkYktleSkgew0KICAgICAgICBsZXQgc2VsZWN0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiU0VMRUNUIik7DQogICAgICAgIHNlbGVjdC5zZXRBdHRyaWJ1dGUoIm5hbWUiLCBkYktleSk7DQogICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGV4dC5sZW5ndGg7IGkrKykgew0KICAgICAgICAgICAgbGV0IG9wdGlvbiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIk9QVElPTiIpOw0KICAgICAgICAgICAgb3B0aW9uLnNldEF0dHJpYnV0ZSgidmFsdWUiLCB2YWx1ZXNbaV0pOw0KICAgICAgICAgICAgb3B0aW9uLmlubmVyVGV4dCA9IHRleHRbaV07DQogICAgICAgICAgICBzZWxlY3QuYXBwZW5kQ2hpbGQob3B0aW9uKTsNCiAgICAgICAgfQ0KICAgICAgICBpZiAoc2V0ICE9ICIiKSB7DQogICAgICAgICAgICBzZWxlY3QudmFsdWUgPSBzZXQ7DQogICAgICAgIH0NCiAgICAgICAgaWYgKHNldCA9PSB1bmRlZmluZWQpIHsNCiAgICAgICAgICAgIHNlbGVjdC52YWx1ZSA9IHZhbHVlc1swXTsNCiAgICAgICAgfQ0KICAgICAgICByZXR1cm4gc2VsZWN0Ow0KICAgIH0NCiAgICBzZWxlY3RPcHRpb24oc2VsZWN0LCB2YWx1ZSkgew0KICAgICAgICAvL3NlbGVjdC5zZWxlY3RlZE9wdGlvbnMgPSB2YWx1ZQ0KICAgICAgICBsZXQgcyA9IHNlbGVjdDsNCiAgICAgICAgcy5vcHRpb25zW3Muc2VsZWN0ZWRJbmRleF0udmFsdWUgPSB2YWx1ZTsNCiAgICAgICAgcmV0dXJuIHNlbGVjdDsNCiAgICB9DQogICAgZGVzY3JpcHRpb24odmFsdWUpIHsNCiAgICAgICAgbGV0IHRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVFIiKTsNCiAgICAgICAgbGV0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgbGV0IHNwYW4gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJQUkUiKTsNCiAgICAgICAgc3Bhbi5pbm5lckhUTUwgPSB2YWx1ZTsNCiAgICAgICAgdHIuYXBwZW5kQ2hpbGQodGQpOw0KICAgICAgICB0ci5hcHBlbmRDaGlsZCh0aGlzLmNyZWF0ZUNvbnRlbnQoc3BhbikpOw0KICAgICAgICB0aGlzLnRhYmxlLmFwcGVuZENoaWxkKHRyKTsNCiAgICB9DQogICAgLy8gSW50ZXJhY3Rpb24NCiAgICBhZGRJbnRlcmFjdGlvbihlbGVtZW50KSB7DQogICAgICAgIGxldCBpbnRlcmFjdGlvbiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJwb3B1cC1pbnRlcmFjdGlvbiIpOw0KICAgICAgICBpbnRlcmFjdGlvbi5hcHBlbmRDaGlsZChlbGVtZW50KTsNCiAgICB9DQp9DQpmdW5jdGlvbiBvcGVuUG9wVXAoZGF0YVR5cGUsIGVsZW1lbnQpIHsNCiAgICBsZXQgZGF0YSA9IHt9Ow0KICAgIGxldCBpZDsNCiAgICBzd2l0Y2ggKGVsZW1lbnQpIHsNCiAgICAgICAgY2FzZSB1bmRlZmluZWQ6DQogICAgICAgICAgICBzd2l0Y2ggKGRhdGFUeXBlKSB7DQogICAgICAgICAgICAgICAgY2FzZSAiZ3JvdXAtdGl0bGUiOg0KICAgICAgICAgICAgICAgICAgICBpZiAoaWQgPT0gdW5kZWZpbmVkKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBpZCA9IC0xOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIGRhdGEgPSBnZXRMb2NhbERhdGEoImZpbHRlciIsIGlkKTsNCiAgICAgICAgICAgICAgICAgICAgZGF0YVsidHlwZSJdID0gImdyb3VwLXRpdGxlIjsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAiY3VzdG9tLWZpbHRlciI6DQogICAgICAgICAgICAgICAgICAgIGlmIChpZCA9PSB1bmRlZmluZWQpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGlkID0gLTE7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgZGF0YSA9IGdldExvY2FsRGF0YSgiZmlsdGVyIiwgaWQpOw0KICAgICAgICAgICAgICAgICAgICBkYXRhWyJ0eXBlIl0gPSAiY3VzdG9tLWZpbHRlciI7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICAgICAgICAgIGRhdGFbImlkLnByb3ZpZGVyIl0gPSAiLSI7DQogICAgICAgICAgICAgICAgICAgIGRhdGFbInR5cGUiXSA9IGRhdGFUeXBlOw0KICAgICAgICAgICAgICAgICAgICBpZCA9ICItIjsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgIGlkID0gZWxlbWVudC5pZDsNCiAgICAgICAgICAgIGRhdGEgPSBnZXRMb2NhbERhdGEoZGF0YVR5cGUsIGlkKTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgIH0NCiAgICBsZXQgY29udGVudCA9IG5ldyBQb3B1cENvbnRlbnQoKTsNCiAgICBzd2l0Y2ggKGRhdGFUeXBlKSB7DQogICAgICAgIGNhc2UgInBsYXlsaXN0IjoNCiAgICAgICAgICAgIGNvbnRlbnQuY3JlYXRlSGVhZGxpbmUoInt7LnBsYXlsaXN0LnBsYXlsaXN0VHlwZS50aXRsZX19Iik7DQogICAgICAgICAgICAvLyBUeXBlDQogICAgICAgICAgICB2YXIgdGV4dCA9IFsiTTNVIiwgIkhESG9tZVJ1biJdOw0KICAgICAgICAgICAgdmFyIHZhbHVlcyA9IFsiamF2YXNjcmlwdDogb3BlblBvcFVwKCdtM3UnKSIsICJqYXZhc2NyaXB0OiBvcGVuUG9wVXAoJ2hkaHInKSJdOw0KICAgICAgICAgICAgdmFyIHNlbGVjdCA9IGNvbnRlbnQuY3JlYXRlU2VsZWN0KHRleHQsIHZhbHVlcywgIiIsICJ0eXBlIik7DQogICAgICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJpZCIsICJ0eXBlIik7DQogICAgICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICdqYXZhc2NyaXB0OiBjaGFuZ2VCdXR0b25BY3Rpb24odGhpcywgIm5leHQiLCAib25jbGljayIpJyk7IC8vIGNoYW5nZUJ1dHRvbkFjdGlvbg0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnBsYXlsaXN0LnR5cGUudGl0bGV9fSIsIHNlbGVjdCk7DQogICAgICAgICAgICAvLyBJbnRlcmFjdGlvbg0KICAgICAgICAgICAgY29udGVudC5jcmVhdGVJbnRlcmFjdGlvbigpOw0KICAgICAgICAgICAgLy8gQWJvcnQNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJjYW5jZWwiLCAie3suYnV0dG9uLmNhbmNlbH19Iik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogc2hvd0VsZW1lbnQoInBvcHVwIiwgZmFsc2UpOycpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICAvLyBOZXh0DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAibmV4dCIsICJ7ey5idXR0b24ubmV4dH19Iik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJtM3UiKScpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJpZCIsICduZXh0Jyk7DQogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJtM3UiOg0KICAgICAgICAgICAgY29udGVudC5jcmVhdGVIZWFkbGluZShkYXRhVHlwZSk7DQogICAgICAgICAgICAvLyBOYW1lDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAibmFtZSI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3sucGxheWxpc3QubmFtZS5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sucGxheWxpc3QubmFtZS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgLy8gRGVzY3JpcHRpb24NCiAgICAgICAgICAgIHZhciBkYktleSA9ICJkZXNjcmlwdGlvbiI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3sucGxheWxpc3QuZGVzY3JpcHRpb24ucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnBsYXlsaXN0LmRlc2NyaXB0aW9uLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBVUkwNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJmaWxlLnNvdXJjZSI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3sucGxheWxpc3QuZmlsZU0zVS5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sucGxheWxpc3QuZmlsZU0zVS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgLy8gVHVuZXINCiAgICAgICAgICAgIGlmIChTRVJWRVJbInNldHRpbmdzIl1bImJ1ZmZlciJdICE9ICItIikgew0KICAgICAgICAgICAgICAgIHZhciB0ZXh0ID0gW107DQogICAgICAgICAgICAgICAgdmFyIHZhbHVlcyA9IFtdOw0KICAgICAgICAgICAgICAgIGZvciAodmFyIGkgPSAxOyBpIDw9IDEwMDsgaSsrKSB7DQogICAgICAgICAgICAgICAgICAgIHRleHQucHVzaChpLnRvU3RyaW5nKCkpOw0KICAgICAgICAgICAgICAgICAgICB2YWx1ZXMucHVzaChpLnRvU3RyaW5nKCkpOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB2YXIgZGJLZXkgPSAidHVuZXIiOw0KICAgICAgICAgICAgICAgIHZhciBzZWxlY3QgPSBjb250ZW50LmNyZWF0ZVNlbGVjdCh0ZXh0LCB2YWx1ZXMsIGRhdGFbZGJLZXldLCBkYktleSk7DQogICAgICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25mb2N1cyIsICJqYXZhc2NyaXB0OiByZXR1cm47Iik7DQogICAgICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnBsYXlsaXN0LnR1bmVyLnRpdGxlfX0iLCBzZWxlY3QpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgZWxzZSB7DQogICAgICAgICAgICAgICAgdmFyIGRiS2V5ID0gInR1bmVyIjsNCiAgICAgICAgICAgICAgICBpZiAoZGF0YVtkYktleV0gPT0gdW5kZWZpbmVkKSB7DQogICAgICAgICAgICAgICAgICAgIGRhdGFbZGJLZXldID0gMTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJyZWFkb25seSIsICJ0cnVlIik7DQogICAgICAgICAgICAgICAgaW5wdXQuY2xhc3NOYW1lID0gIm5vdEF2YWlsYWJsZSI7DQogICAgICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnBsYXlsaXN0LnR1bmVyLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBjb250ZW50LmRlc2NyaXB0aW9uKCJ7ey5wbGF5bGlzdC50dW5lci5kZXNjcmlwdGlvbn19Iik7DQogICAgICAgICAgICAvLyBJbnRlcmF0aW9uDQogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUludGVyYWN0aW9uKCk7DQogICAgICAgICAgICAvLyBEZWxldGUNCiAgICAgICAgICAgIGlmIChkYXRhWyJpZC5wcm92aWRlciJdICE9ICItIikgew0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJkZWxldGUiLCAie3suYnV0dG9uLmRlbGV0ZX19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuY2xhc3NOYW1lID0gImRlbGV0ZSI7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoIm0zdSIsICInICsgaWQgKyAnIiwgdHJ1ZSwgMCknKTsNCiAgICAgICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJiYWNrIiwgInt7LmJ1dHRvbi5iYWNrfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJwbGF5bGlzdCIpJyk7DQogICAgICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICAvLyBBYm9ydA0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImNhbmNlbCIsICJ7ey5idXR0b24uY2FuY2VsfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBzaG93RWxlbWVudCgicG9wdXAiLCBmYWxzZSk7Jyk7DQogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIC8vIFVwZGF0ZQ0KICAgICAgICAgICAgaWYgKGRhdGFbImlkLnByb3ZpZGVyIl0gIT0gIi0iKSB7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgInVwZGF0ZSIsICJ7ey5idXR0b24udXBkYXRlfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogc2F2ZVBvcHVwRGF0YSgibTN1IiwgIicgKyBpZCArICciLCBmYWxzZSwgMSknKTsNCiAgICAgICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIC8vIFNhdmUNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJzYXZlIiwgInt7LmJ1dHRvbi5zYXZlfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBzYXZlUG9wdXBEYXRhKCJtM3UiLCAiJyArIGlkICsgJyIsIGZhbHNlLCAwKScpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSAiaGRociI6DQogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUhlYWRsaW5lKGRhdGFUeXBlKTsNCiAgICAgICAgICAgIC8vIE5hbWUNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJuYW1lIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5wbGF5bGlzdC5uYW1lLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5wbGF5bGlzdC5uYW1lLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBEZXNjcmlwdGlvbg0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gImRlc2NyaXB0aW9uIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5wbGF5bGlzdC5kZXNjcmlwdGlvbi5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sucGxheWxpc3QuZGVzY3JpcHRpb24ucGxhY2Vob2xkZXJ9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIFVSTA0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gImZpbGUuc291cmNlIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5wbGF5bGlzdC5maWxlSERIUi5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sucGxheWxpc3QuZmlsZUhESFIudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIFR1bmVyDQogICAgICAgICAgICBpZiAoU0VSVkVSWyJzZXR0aW5ncyJdWyJidWZmZXIiXSAhPSAiLSIpIHsNCiAgICAgICAgICAgICAgICB2YXIgdGV4dCA9IFtdOw0KICAgICAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBbXTsNCiAgICAgICAgICAgICAgICBmb3IgKHZhciBpID0gMTsgaSA8PSAxMDA7IGkrKykgew0KICAgICAgICAgICAgICAgICAgICB0ZXh0LnB1c2goaS50b1N0cmluZygpKTsNCiAgICAgICAgICAgICAgICAgICAgdmFsdWVzLnB1c2goaS50b1N0cmluZygpKTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgdmFyIGRiS2V5ID0gInR1bmVyIjsNCiAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCBkYXRhW2RiS2V5XSwgZGJLZXkpOw0KICAgICAgICAgICAgICAgIHNlbGVjdC5zZXRBdHRyaWJ1dGUoIm9uZm9jdXMiLCAiamF2YXNjcmlwdDogcmV0dXJuOyIpOw0KICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5wbGF5bGlzdC50dW5lci50aXRsZX19Iiwgc2VsZWN0KTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgICAgIHZhciBkYktleSA9ICJ0dW5lciI7DQogICAgICAgICAgICAgICAgaWYgKGRhdGFbZGJLZXldID09IHVuZGVmaW5lZCkgew0KICAgICAgICAgICAgICAgICAgICBkYXRhW2RiS2V5XSA9IDE7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicmVhZG9ubHkiLCAidHJ1ZSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LmNsYXNzTmFtZSA9ICJub3RBdmFpbGFibGUiOw0KICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5wbGF5bGlzdC50dW5lci50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgY29udGVudC5kZXNjcmlwdGlvbigie3sucGxheWxpc3QudHVuZXIuZGVzY3JpcHRpb259fSIpOw0KICAgICAgICAgICAgLy8gSW50ZXJhY3Rpb24NCiAgICAgICAgICAgIGNvbnRlbnQuY3JlYXRlSW50ZXJhY3Rpb24oKTsNCiAgICAgICAgICAgIC8vIERlbGV0ZQ0KICAgICAgICAgICAgaWYgKGRhdGFbImlkLnByb3ZpZGVyIl0gIT0gIi0iKSB7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImRlbGV0ZSIsICJ7ey5idXR0b24uZGVsZXRlfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogc2F2ZVBvcHVwRGF0YSgiaGRociIsICInICsgaWQgKyAnIiwgdHJ1ZSwgMCknKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5jbGFzc05hbWUgPSAiZGVsZXRlIjsNCiAgICAgICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJiYWNrIiwgInt7LmJ1dHRvbi5iYWNrfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJwbGF5bGlzdCIpJyk7DQogICAgICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICAvLyBBYm9ydA0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImNhbmNlbCIsICJ7ey5idXR0b24uY2FuY2VsfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBzaG93RWxlbWVudCgicG9wdXAiLCBmYWxzZSk7Jyk7DQogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIC8vIFVwZGF0ZQ0KICAgICAgICAgICAgaWYgKGRhdGFbImlkLnByb3ZpZGVyIl0gIT0gIi0iKSB7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgInVwZGF0ZSIsICJ7ey5idXR0b24udXBkYXRlfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogc2F2ZVBvcHVwRGF0YSgiaGRociIsICInICsgaWQgKyAnIiwgZmFsc2UsIDEpJyk7DQogICAgICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICAvLyBTYXZlDQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAic2F2ZSIsICJ7ey5idXR0b24uc2F2ZX19Iik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogc2F2ZVBvcHVwRGF0YSgiaGRociIsICInICsgaWQgKyAnIiwgZmFsc2UsIDApJyk7DQogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJmaWx0ZXIiOg0KICAgICAgICAgICAgY29udGVudC5jcmVhdGVIZWFkbGluZShkYXRhVHlwZSk7DQogICAgICAgICAgICAvLyBUeXBlDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAidHlwZSI7DQogICAgICAgICAgICB2YXIgdGV4dCA9IFsiTTNVOiAiICsgInt7LmZpbHRlci50eXBlLmdyb3VwVGl0bGV9fSIsICJ4VGVWZTogIiArICJ7ey5maWx0ZXIudHlwZS5jdXN0b21GaWx0ZXJ9fSJdOw0KICAgICAgICAgICAgdmFyIHZhbHVlcyA9IFsiamF2YXNjcmlwdDogb3BlblBvcFVwKCdncm91cC10aXRsZScpIiwgImphdmFzY3JpcHQ6IG9wZW5Qb3BVcCgnY3VzdG9tLWZpbHRlcicpIl07DQogICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCAiamF2YXNjcmlwdDogb3BlblBvcFVwKCdncm91cC10aXRsZScpIiwgZGJLZXkpOw0KICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgiaWQiLCBpZCk7DQogICAgICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICdqYXZhc2NyaXB0OiBjaGFuZ2VCdXR0b25BY3Rpb24odGhpcywgIm5leHQiLCAib25jbGljayIpOycpOyAvLyBjaGFuZ2VCdXR0b25BY3Rpb24NCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5maWx0ZXIudHlwZS50aXRsZX19Iiwgc2VsZWN0KTsNCiAgICAgICAgICAgIC8vIEludGVyYWN0aW9uDQogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUludGVyYWN0aW9uKCk7DQogICAgICAgICAgICAvLyBBYm9ydA0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImNhbmNlbCIsICJ7ey5idXR0b24uY2FuY2VsfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBzaG93RWxlbWVudCgicG9wdXAiLCBmYWxzZSk7Jyk7DQogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIC8vIE5leHQNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJuZXh0IiwgInt7LmJ1dHRvbi5uZXh0fX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoImdyb3VwLXRpdGxlIiknKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgiaWQiLCAnbmV4dCcpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSAiY3VzdG9tLWZpbHRlciI6DQogICAgICAgIGNhc2UgImdyb3VwLXRpdGxlIjoNCiAgICAgICAgICAgIHN3aXRjaCAoZGF0YVR5cGUpIHsNCiAgICAgICAgICAgICAgICBjYXNlICJjdXN0b20tZmlsdGVyIjoNCiAgICAgICAgICAgICAgICAgICAgY29udGVudC5jcmVhdGVIZWFkbGluZSgie3suZmlsdGVyLmN1c3RvbX19IiArICIgRmlsdGVyIik7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgImdyb3VwLXRpdGxlIjoNCiAgICAgICAgICAgICAgICAgICAgY29udGVudC5jcmVhdGVIZWFkbGluZSgie3suZmlsdGVyLmdyb3VwfX0iICsgIiBGaWx0ZXIiKTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICB9DQogICAgICAgICAgICAvLyBOYW1lICAgICAgDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAibmFtZSI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3suZmlsdGVyLm5hbWUucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LmZpbHRlci5uYW1lLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBEZXNjcmlwdGlvbg0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gImRlc2NyaXB0aW9uIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5maWx0ZXIuZGVzY3JpcHRpb24ucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LmZpbHRlci5kZXNjcmlwdGlvbi50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgLy8gVHlwZQ0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gInR5cGUiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiaGlkZGVuIiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCIiLCBpbnB1dCk7DQogICAgICAgICAgICB2YXIgZmlsdGVyVHlwZSA9IGRhdGFbZGJLZXldOw0KICAgICAgICAgICAgc3dpdGNoIChmaWx0ZXJUeXBlKSB7DQogICAgICAgICAgICAgICAgY2FzZSAiY3VzdG9tLWZpbHRlciI6DQogICAgICAgICAgICAgICAgICAgIC8vIENhc2Ugc2Vuc2l0aXZlDQogICAgICAgICAgICAgICAgICAgIHZhciBkYktleSA9ICJjYXNlU2Vuc2l0aXZlIjsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChkYktleSk7DQogICAgICAgICAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhW2RiS2V5XTsNCiAgICAgICAgICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LmZpbHRlci5jYXNlU2Vuc2l0aXZlLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAgICAgICAgIC8vIEZpbHRlciBSdWxlIChDdXN0b20pDQogICAgICAgICAgICAgICAgICAgIHZhciBkYktleSA9ICJmaWx0ZXIiOw0KICAgICAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5maWx0ZXIuZmlsdGVyUnVsZS5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5maWx0ZXIuZmlsdGVyUnVsZS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgICAgICAgICAvLyBTdGFydGluZyBDaGFubmVsIE51bWJlciBNYXBwaW5nDQogICAgICAgICAgICAgICAgICAgIHZhciBkYktleSA9ICJzdGFydGluZ0NoYW5uZWwiOw0KICAgICAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5maWx0ZXIuc3RhcnRpbmdDaGFubmVsLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LmZpbHRlci5zdGFydGluZ0NoYW5uZWwudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAiZ3JvdXAtdGl0bGUiOg0KICAgICAgICAgICAgICAgICAgICAvL2FsZXJ0KGRiS2V5ICsgIiAiICsgZmlsdGVyVHlwZSkNCiAgICAgICAgICAgICAgICAgICAgLy8gRmlsdGVyIGJhc2VkIG9uIHRoZSBncm91cHMgaW4gdGhlIE0zVQ0KICAgICAgICAgICAgICAgICAgICB2YXIgZGJLZXkgPSAiZmlsdGVyIjsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGdyb3Vwc00zVSA9IGdldExvY2FsRGF0YSgibTN1R3JvdXBzIiwgIiIpOw0KICAgICAgICAgICAgICAgICAgICB2YXIgdGV4dCA9IGdyb3Vwc00zVVsidGV4dCJdOw0KICAgICAgICAgICAgICAgICAgICB2YXIgdmFsdWVzID0gZ3JvdXBzTTNVWyJ2YWx1ZSJdOw0KICAgICAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCBkYXRhW2RiS2V5XSwgZGJLZXkpOw0KICAgICAgICAgICAgICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3suZmlsdGVyLmZpbHRlckdyb3VwLnRpdGxlfX0iLCBzZWxlY3QpOw0KICAgICAgICAgICAgICAgICAgICBjb250ZW50LmRlc2NyaXB0aW9uKCJ7ey5maWx0ZXIuZmlsdGVyR3JvdXAuZGVzY3JpcHRpb259fSIpOw0KICAgICAgICAgICAgICAgICAgICAvLyBDYXNlIHNlbnNldGl2ZQ0KICAgICAgICAgICAgICAgICAgICB2YXIgZGJLZXkgPSAiY2FzZVNlbnNpdGl2ZSI7DQogICAgICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goZGJLZXkpOw0KICAgICAgICAgICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YVtkYktleV07DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5maWx0ZXIuY2FzZVNlbnNpdGl2ZS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgICAgICAgICB2YXIgZGJLZXkgPSAiaW5jbHVkZSI7DQogICAgICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LmZpbHRlci5pbmNsdWRlLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LmZpbHRlci5pbmNsdWRlLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuZGVzY3JpcHRpb24oInt7LmZpbHRlci5pbmNsdWRlLmRlc2NyaXB0aW9ufX0iKTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGRiS2V5ID0gImV4Y2x1ZGUiOw0KICAgICAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5maWx0ZXIuZXhjbHVkZS5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5maWx0ZXIuZXhjbHVkZS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgICAgICAgICBjb250ZW50LmRlc2NyaXB0aW9uKCJ7ey5maWx0ZXIuZXhjbHVkZS5kZXNjcmlwdGlvbn19Iik7DQogICAgICAgICAgICAgICAgICAgIC8vIFByZXNlcnZlIE0zVSBQbGF5bGlzdCBDaGFubmVsIE1hcHBpbmcNCiAgICAgICAgICAgICAgICAgICAgdmFyIGRiS2V5ID0gInByZXNlcnZlTWFwcGluZyI7DQogICAgICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goZGJLZXkpOw0KICAgICAgICAgICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YVtkYktleV07DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5maWx0ZXIucHJlc2VydmVNYXBwaW5nLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAgICAgICAgIC8vIFN0YXJ0aW5nIENoYW5uZWwgTnVtYmVyIE1hcHBpbmcNCiAgICAgICAgICAgICAgICAgICAgdmFyIGRiS2V5ID0gInN0YXJ0aW5nQ2hhbm5lbCI7DQogICAgICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LmZpbHRlci5zdGFydGluZ0NoYW5uZWwucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3suZmlsdGVyLnN0YXJ0aW5nQ2hhbm5lbC50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgICAgICAgICAvLyBGaWxsIE1pc3NpbmcgRVBHIERhdGENCiAgICAgICAgICAgICAgICAgICAgLy8gVGhlIGZvbGxvd2luZyBjb2RlIG9ubHkgd29ya3Mgd2hlbiB4VGVWZSBEdW1teSBhbHJlYWR5IGV4aXN0cw0KICAgICAgICAgICAgICAgICAgICAvLyB2YXIgZGJLZXk6c3RyaW5nID0gImRlZmF1bHRNaXNzaW5nRVBHIg0KICAgICAgICAgICAgICAgICAgICAvLyB2YXIgeG1sdHY6WE1MVFZGaWxlID0gbmV3IFhNTFRWRmlsZSgpDQogICAgICAgICAgICAgICAgICAgIC8vIHZhciBzZWxlY3QgPSB4bWx0di5nZXRQcm9ncmFtcygieFRlVmUgRHVtbXkiLCBkYXRhW2RiS2V5XSkNCiAgICAgICAgICAgICAgICAgICAgLy8gc2VsZWN0LnNldEF0dHJpYnV0ZSgibmFtZSIsIGRiS2V5KQ0KICAgICAgICAgICAgICAgICAgICAvLyBzZWxlY3Quc2V0QXR0cmlidXRlKCJpZCIsICJwb3B1cC1taXNzaW5nLWVwZyIpDQogICAgICAgICAgICAgICAgICAgIC8vIFRoZSB3b3JrYXJvdW5kIGlzIGN1cnJlbnRseSB0byBoYXJkIGNvZGUgdGhlIHhUZVZlIER1bW15IGRhdGENCiAgICAgICAgICAgICAgICAgICAgdmFyIGRiS2V5ID0gImRlZmF1bHRNaXNzaW5nRVBHIjsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGxpc3RPcHRpb25zID0geyAidGV4dCI6IFsiLSIsICIzMCBNaW51dGVzICgzMF9NaW51dGVzKSIsICI2MCBNaW51dGVzICg2MF9NaW51dGVzKSIsICI5MCBNaW51dGVzICg5MF9NaW51dGVzKSIsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgIjEyMCBNaW51dGVzICgxMjBfTWludXRlcykiLCAiMTgwIE1pbnV0ZXMgKDMwX01pbnV0ZXMpIiwgIjI0MCBNaW51dGVzICgzMF9NaW51dGVzKSIsICIzNjAgTWludXRlcyAoMzBfTWludXRlcykiXSwNCiAgICAgICAgICAgICAgICAgICAgICAgICJ2YWx1ZSI6IFsiLSIsICIzMF9NaW51dGVzIiwgIjYwX01pbnV0ZXMiLCAiOTBfTWludXRlcyIsICIxMjBfTWludXRlcyIsICIxODBfTWludXRlcyIsICIyNDBfTWludXRlcyIsICIzNjBfTWludXRlcyIsXSB9Ow0KICAgICAgICAgICAgICAgICAgICB2YXIgdGV4dCA9IGxpc3RPcHRpb25zWyJ0ZXh0Il07DQogICAgICAgICAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBsaXN0T3B0aW9uc1sidmFsdWUiXTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHNlbGVjdCA9IGNvbnRlbnQuY3JlYXRlU2VsZWN0KHRleHQsIHZhbHVlcywgZGF0YVtkYktleV0sIGRiS2V5KTsNCiAgICAgICAgICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LmZpbHRlci5kZWZhdWx0TWlzc2luZ0VQRy50aXRsZX19Iiwgc2VsZWN0KTsNCiAgICAgICAgICAgICAgICAgICAgY29udGVudC5kZXNjcmlwdGlvbigie3suZmlsdGVyLmRlZmF1bHRNaXNzaW5nRVBHLmRlc2NyaXB0aW9ufX0iKTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICB9DQogICAgICAgICAgICAvLyBJbnRlcmFjdGlvbg0KICAgICAgICAgICAgY29udGVudC5jcmVhdGVJbnRlcmFjdGlvbigpOw0KICAgICAgICAgICAgLy8gRGVsZXRlDQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAiZGVsZXRlIiwgInt7LmJ1dHRvbi5kZWxldGV9fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoImZpbHRlciIsICInICsgaWQgKyAnIiwgdHJ1ZSwgMCknKTsNCiAgICAgICAgICAgIGlucHV0LmNsYXNzTmFtZSA9ICJkZWxldGUiOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICAvLyBBYm9ydA0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImNhbmNlbCIsICJ7ey5idXR0b24uY2FuY2VsfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBzaG93RWxlbWVudCgicG9wdXAiLCBmYWxzZSk7Jyk7DQogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIC8vIFNhdmUNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJzYXZlIiwgInt7LmJ1dHRvbi5zYXZlfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBzYXZlUG9wdXBEYXRhKCJmaWx0ZXIiLCAiJyArIGlkICsgJyIsIGZhbHNlLCAwKScpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSAieG1sdHYiOg0KICAgICAgICAgICAgY29udGVudC5jcmVhdGVIZWFkbGluZShkYXRhVHlwZSk7DQogICAgICAgICAgICAvLyBOYW1lDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAibmFtZSI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3sueG1sdHYubmFtZS5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sueG1sdHYubmFtZS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgLy8gRGVzY3JpcHRpb24NCiAgICAgICAgICAgIHZhciBkYktleSA9ICJkZXNjcmlwdGlvbiI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3sueG1sdHYuZGVzY3JpcHRpb24ucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnhtbHR2LmRlc2NyaXB0aW9uLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBVUkwNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJmaWxlLnNvdXJjZSI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3sueG1sdHYuZmlsZVhNTFRWLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey54bWx0di5maWxlWE1MVFYudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIEludGVyYWN0aW9uDQogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUludGVyYWN0aW9uKCk7DQogICAgICAgICAgICAvLyBEZWxldGUNCiAgICAgICAgICAgIGlmIChkYXRhWyJpZC5wcm92aWRlciJdICE9ICItIikgew0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJkZWxldGUiLCAie3suYnV0dG9uLmRlbGV0ZX19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoInhtbHR2IiwgIicgKyBpZCArICciLCB0cnVlLCAwKScpOw0KICAgICAgICAgICAgICAgIGlucHV0LmNsYXNzTmFtZSA9ICJkZWxldGUiOw0KICAgICAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgLy8gQWJvcnQNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJjYW5jZWwiLCAie3suYnV0dG9uLmNhbmNlbH19Iik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogc2hvd0VsZW1lbnQoInBvcHVwIiwgZmFsc2UpOycpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICAvLyBVcGRhdGUNCiAgICAgICAgICAgIGlmIChkYXRhWyJpZC5wcm92aWRlciJdICE9ICItIikgew0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJ1cGRhdGUiLCAie3suYnV0dG9uLnVwZGF0ZX19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoInhtbHR2IiwgIicgKyBpZCArICciLCBmYWxzZSwgMSknKTsNCiAgICAgICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIC8vIFNhdmUNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJzYXZlIiwgInt7LmJ1dHRvbi5zYXZlfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBzYXZlUG9wdXBEYXRhKCJ4bWx0diIsICInICsgaWQgKyAnIiwgZmFsc2UsIDApJyk7DQogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJ1c2VycyI6DQogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUhlYWRsaW5lKCJ7ey5tYWluTWVudS5pdGVtLnVzZXJzfX0iKTsNCiAgICAgICAgICAgIC8vIFVzZXIgbmFtZQ0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gInVzZXJuYW1lIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey51c2Vycy51c2VybmFtZS5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sudXNlcnMudXNlcm5hbWUudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIE5ldyBQYXJzc3dvcmQNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJwYXNzd29yZCI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJwYXNzd29yZCIsIGRiS2V5LCAiIik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnVzZXJzLnBhc3N3b3JkLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey51c2Vycy5wYXNzd29yZC50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgLy8gQ29uZmlybWF0aW9uDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAiY29uZmlybSI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJwYXNzd29yZCIsIGRiS2V5LCAiIik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnVzZXJzLmNvbmZpcm0ucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnVzZXJzLmNvbmZpcm0udGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIEF1dGhlbnRpY2F0aW9uIFdFQg0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gImF1dGhlbnRpY2F0aW9uLndlYiI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KGRiS2V5KTsNCiAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhW2RiS2V5XTsNCiAgICAgICAgICAgIGlmIChkYXRhWyJkZWZhdWx0VXNlciJdID09IHRydWUpIHsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAiamF2YXNjcmlwdDogcmV0dXJuIGZhbHNlIik7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sudXNlcnMud2ViLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBBdXRoZW50aWNhdGlvbiBQTVMNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJhdXRoZW50aWNhdGlvbi5wbXMiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChkYktleSk7DQogICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YVtkYktleV07DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sudXNlcnMucG1zLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBBdXRoZW50aWNhdGlvbiBNM1UNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJhdXRoZW50aWNhdGlvbi5tM3UiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChkYktleSk7DQogICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YVtkYktleV07DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sudXNlcnMubTN1LnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBBdXRoZW50aWNhdGlvbiBYTUwNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJhdXRoZW50aWNhdGlvbi54bWwiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChkYktleSk7DQogICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YVtkYktleV07DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sudXNlcnMueG1sLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBBdXRoZW50aWNhdGlvbiBBUEkNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJhdXRoZW50aWNhdGlvbi5hcGkiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChkYktleSk7DQogICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YVtkYktleV07DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sudXNlcnMuYXBpLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBJbnRlcmFjdGlvbg0KICAgICAgICAgICAgY29udGVudC5jcmVhdGVJbnRlcmFjdGlvbigpOw0KICAgICAgICAgICAgLy8gRGVsZXRlDQogICAgICAgICAgICBpZiAoZGF0YVsiZGVmYXVsdFVzZXIiXSAhPSB0cnVlICYmIGlkICE9ICItIikgew0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJkZWxldGUiLCAie3suYnV0dG9uLmRlbGV0ZX19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuY2xhc3NOYW1lID0gImRlbGV0ZSI7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoIicgKyBkYXRhVHlwZSArICciLCAiJyArIGlkICsgJyIsIHRydWUsIDApJyk7DQogICAgICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICAvLyBBYm9ydA0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImNhbmNlbCIsICJ7ey5idXR0b24uY2FuY2VsfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBzaG93RWxlbWVudCgicG9wdXAiLCBmYWxzZSk7Jyk7DQogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIC8vIFNhdmUNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJzYXZlIiwgInt7LmJ1dHRvbi5zYXZlfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBzYXZlUG9wdXBEYXRhKCInICsgZGF0YVR5cGUgKyAnIiwgIicgKyBpZCArICciLCAiZmFsc2UiKTsnKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGNhc2UgIm1hcHBpbmciOg0KICAgICAgICAgICAgY29udGVudC5jcmVhdGVIZWFkbGluZSgie3subWFpbk1lbnUuaXRlbS5tYXBwaW5nfX0iKTsNCiAgICAgICAgICAgIC8vIEFjdGl2ZQ0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gIngtYWN0aXZlIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goZGJLZXkpOw0KICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGFbZGJLZXldOw0KICAgICAgICAgICAgaW5wdXQuaWQgPSAiYWN0aXZlIjsNCiAgICAgICAgICAgIC8vaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpDQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRvZ2dsZUNoYW5uZWxTdGF0dXMoJyIgKyBpZCArICInLCB0aGlzKSIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7Lm1hcHBpbmcuYWN0aXZlLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBDaGFubmVsIG5hbWUNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJ4LW5hbWUiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICBpZiAoQlVMS19FRElUID09IHRydWUpIHsNCiAgICAgICAgICAgICAgICBpbnB1dC5zdHlsZS5ib3JkZXIgPSAic29saWQgMXB4IHJlZCI7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJyZWFkb25seSIsICJ0cnVlIik7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3subWFwcGluZy5jaGFubmVsTmFtZS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgY29udGVudC5kZXNjcmlwdGlvbihkYXRhWyJuYW1lIl0pOw0KICAgICAgICAgICAgLy8gRGVzY3JpcHRpb24NCiAgICAgICAgICAgIHZhciBkYktleSA9ICJ4LWRlc2NyaXB0aW9uIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5tYXBwaW5nLmRlc2NyaXB0aW9uLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5tYXBwaW5nLmRlc2NyaXB0aW9uLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBVcGRhdGUgdGhlIGNoYW5uZWwgeC1uYW1lDQogICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgiX3V1aWQua2V5IikpIHsNCiAgICAgICAgICAgICAgICBpZiAoZGF0YVsiX3V1aWQua2V5Il0gIT0gIiIpIHsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGRiS2V5ID0gIngtdXBkYXRlLWNoYW5uZWwtbmFtZSI7DQogICAgICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goZGJLZXkpOw0KICAgICAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhW2RiS2V5XTsNCiAgICAgICAgICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7Lm1hcHBpbmcudXBkYXRlQ2hhbm5lbE5hbWUudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9DQogICAgICAgICAgICAvLyBDaGFubmVsIG5hbWUgcmVnZXggZm9yIHVwZGF0aW5nIHRoZSBjaGFubmVsIG5hbWUNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJ1cGRhdGUtY2hhbm5lbC1uYW1lLXJlZ2V4IjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5tYXBwaW5nLnVwZGF0ZUNoYW5uZWxOYW1lUmVnZXgucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7Lm1hcHBpbmcudXBkYXRlQ2hhbm5lbE5hbWVSZWdleC50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgY29udGVudC5kZXNjcmlwdGlvbigie3subWFwcGluZy51cGRhdGVDaGFubmVsTmFtZVJlZ2V4LmRlc2NyaXB0aW9ufX0iKTsNCiAgICAgICAgICAgIC8vIENoYW5uZWwgZ3JvdXAgcmVnZXggZm9yIHVwZGF0aW5nIHRoZSBjaGFubmVsIG5hbWUNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJ1cGRhdGUtY2hhbm5lbC1uYW1lLWJ5LWdyb3VwLXJlZ2V4IjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5tYXBwaW5nLnVwZGF0ZUNoYW5uZWxOYW1lQnlHcm91cFJlZ2V4LnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5tYXBwaW5nLnVwZGF0ZUNoYW5uZWxOYW1lQnlHcm91cFJlZ2V4LnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICBjb250ZW50LmRlc2NyaXB0aW9uKCJ7ey5tYXBwaW5nLnVwZGF0ZUNoYW5uZWxOYW1lQnlHcm91cFJlZ2V4LmRlc2NyaXB0aW9ufX0iKTsNCiAgICAgICAgICAgIC8vIExvZ28gVVJMIChDaGFubmVsKSANCiAgICAgICAgICAgIHZhciBkYktleSA9ICJ0dmctbG9nbyI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgiaWQiLCAiY2hhbm5lbC1pY29uIik7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3subWFwcGluZy5jaGFubmVsTG9nby50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgLy8gQ2hhbm5lbCBsb2dvIHVwZGF0ZQ0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gIngtdXBkYXRlLWNoYW5uZWwtaWNvbiI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KGRiS2V5KTsNCiAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhW2RiS2V5XTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgiaWQiLCAidXBkYXRlLWljb24iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCc7IGNoYW5nZUNoYW5uZWxMb2dvKCciICsgaWQgKyAiJyk7Iik7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3subWFwcGluZy51cGRhdGVDaGFubmVsTG9nby50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgLy8gRXhwYW5kIEVQRyBjYXRlZ29yeQ0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gIngtY2F0ZWdvcnkiOw0KICAgICAgICAgICAgdmFyIHRleHQgPSBbIi0iLCAiS2lkcyAoRW1ieSBvbmx5KSIsICJOZXdzIiwgIk1vdmllIiwgIlNlcmllcyIsICJTcG9ydHMiXTsNCiAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBbIiIsICJLaWRzIiwgIk5ld3MiLCAiTW92aWUiLCAiU2VyaWVzIiwgIlNwb3J0cyJdOw0KICAgICAgICAgICAgdmFyIHNlbGVjdCA9IGNvbnRlbnQuY3JlYXRlU2VsZWN0KHRleHQsIHZhbHVlcywgZGF0YVtkYktleV0sIGRiS2V5KTsNCiAgICAgICAgICAgIHNlbGVjdC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3subWFwcGluZy5lcGdDYXRlZ29yeS50aXRsZX19Iiwgc2VsZWN0KTsNCiAgICAgICAgICAgIC8vIE0zVSBncm91cCB0aXRsZQ0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gIngtZ3JvdXAtdGl0bGUiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICBpbnB1dC5kYXRhc2V0Lm9sZFZhbHVlID0gZGF0YVtkYktleV07DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3subWFwcGluZy5tM3VHcm91cFRpdGxlLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICBpZiAoZGF0YVsiZ3JvdXAtdGl0bGUiXSAhPSB1bmRlZmluZWQpIHsNCiAgICAgICAgICAgICAgICBjb250ZW50LmRlc2NyaXB0aW9uKGRhdGFbImdyb3VwLXRpdGxlIl0pOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgaWYgKGRhdGFbIngtdXBkYXRlLWNoYW5uZWwtZ3JvdXAiXSA9PSB0cnVlKSB7DQogICAgICAgICAgICAgICAgaW5wdXQuZGlzYWJsZWQgPSB0cnVlOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgLy8gVXBkYXRlIGNoYW5uZWwgZ3JvdXAgY2hlY2tib3gNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJ4LXVwZGF0ZS1jaGFubmVsLWdyb3VwIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goZGJLZXkpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0b2dnbGVHcm91cFVwZGF0ZUNiKCciICsgaWQgKyAiJywgdGhpcyk7Iik7DQogICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YVtkYktleV07DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3subWFwcGluZy51cGRhdGVDaGFubmVsR3JvdXAudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIGNvbnRlbnQuZGVzY3JpcHRpb24oInt7Lm1hcHBpbmcudXBkYXRlQ2hhbm5lbEdyb3VwLmRlc2NyaXB0aW9ufX0iKTsNCiAgICAgICAgICAgIC8vIFhNTFRWIGZpbGUNCiAgICAgICAgICAgIHZhciBkYktleSA9ICd4LXhtbHR2LWZpbGUnOw0KICAgICAgICAgICAgY29uc3QgeG1sVHZGaWxlID0gZGF0YVtkYktleV07DQogICAgICAgICAgICB2YXIgeG1sVHYgPSBuZXcgWE1MVFZGaWxlKCk7DQogICAgICAgICAgICBjb25zdCB4bWxUdkZpbGVTZWxlY3QgPSB4bWxUdi5nZXRGaWxlcyhkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICB4bWxUdkZpbGVTZWxlY3Quc2V0QXR0cmlidXRlKCduYW1lJywgZGJLZXkpOw0KICAgICAgICAgICAgeG1sVHZGaWxlU2VsZWN0LnNldEF0dHJpYnV0ZSgnaWQnLCAncG9wdXAteG1sdHYnKTsNCiAgICAgICAgICAgIHhtbFR2RmlsZVNlbGVjdC5zZXRBdHRyaWJ1dGUoJ29uY2hhbmdlJywgYGphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnOyBzZXRYbWx0dkNoYW5uZWwoJyR7aWR9JywgdGhpcyk7YCk7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygne3subWFwcGluZy54bWx0dkZpbGUudGl0bGV9fScsIHhtbFR2RmlsZVNlbGVjdCk7DQogICAgICAgICAgICAvLyBYTUxUViBNYXBwaW5nDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAneC1tYXBwaW5nJzsNCiAgICAgICAgICAgIHZhciB4bWxUdiA9IG5ldyBYTUxUVkZpbGUoKTsNCiAgICAgICAgICAgIGNvbnN0IGN1cnJlbnRYbWxUdklkID0gZGF0YVtkYktleV07DQogICAgICAgICAgICBjb25zdCBbeG1sVHZJZENvbnRhaW5lciwgeG1sVHZJZElucHV0LCB4bWxUdklkRGF0YWxpc3RdID0geG1sVHYubmV3WG1sVHZJZFBpY2tlcih4bWxUdkZpbGUsIGN1cnJlbnRYbWxUdklkKTsNCiAgICAgICAgICAgIHhtbFR2SWRDb250YWluZXIuc2V0QXR0cmlidXRlKCdpZCcsICd4bWx0di1pZC1waWNrZXItY29udGFpbmVyJyk7DQogICAgICAgICAgICB4bWxUdklkSW5wdXQuc2V0QXR0cmlidXRlKCdsaXN0JywgJ3htbHR2LWlkLXBpY2tlci1kYXRhbGlzdCcpOw0KICAgICAgICAgICAgeG1sVHZJZElucHV0LnNldEF0dHJpYnV0ZSgnbmFtZScsICd4LW1hcHBpbmcnKTsgLy8gU2hvdWxkIHN0YXkgeC1tYXBwaW5nIGFzIGl0IHdpbGwgYmUgdXNlZCBpbiBkb25lUG9wdXBEYXRhIHRvIG1ha2UgYSBzZXJ2ZXIgcmVxdWVzdA0KICAgICAgICAgICAgeG1sVHZJZElucHV0LnNldEF0dHJpYnV0ZSgnaWQnLCAneG1sdHYtaWQtcGlja2VyLWlucHV0Jyk7DQogICAgICAgICAgICB4bWxUdklkSW5wdXQuc2V0QXR0cmlidXRlKCdvbmNoYW5nZScsIGBqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJzsgY2hlY2tYbWx0dkNoYW5uZWwoJyR7aWR9JywgdGhpcy52YWx1ZSwgJyR7eG1sVHZGaWxlfScpO2ApOw0KICAgICAgICAgICAgeG1sVHZJZERhdGFsaXN0LnNldEF0dHJpYnV0ZSgnaWQnLCAneG1sdHYtaWQtcGlja2VyLWRhdGFsaXN0Jyk7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygne3subWFwcGluZy54bWx0dkNoYW5uZWwudGl0bGV9fScsIHhtbFR2SWRDb250YWluZXIpOw0KICAgICAgICAgICAgLy8gVGltZXNoaWZ0DQogICAgICAgICAgICB2YXIgZGJLZXkgPSAieC10aW1lc2hpZnQiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7Lm1hcHBpbmcudGltZXNoaWZ0LnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgiaWQiLCAidGltZXNoaWZ0Iik7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3subWFwcGluZy50aW1lc2hpZnQudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIEludGVyYWN0aW9uDQogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUludGVyYWN0aW9uKCk7DQogICAgICAgICAgICAvLyBVcGxvYWQgbG9nbw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImNhbmNlbCIsICJ7ey5idXR0b24udXBsb2FkTG9nb319Iik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogdXBsb2FkTG9nbygpOycpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICAvLyBBYm9ydA0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImNhbmNlbCIsICJ7ey5idXR0b24uY2FuY2VsfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBzaG93RWxlbWVudCgicG9wdXAiLCBmYWxzZSk7Jyk7DQogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIC8vIEZpbmlzaGVkDQogICAgICAgICAgICB2YXIgaWRzID0gW107DQogICAgICAgICAgICBpZHMgPSBnZXRBbGxTZWxlY3RlZENoYW5uZWxzKCk7DQogICAgICAgICAgICBpZiAoaWRzLmxlbmd0aCA9PSAwKSB7DQogICAgICAgICAgICAgICAgaWRzLnB1c2goaWQpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgInNhdmUiLCAie3suYnV0dG9uLmRvbmV9fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IGRvbmVQb3B1cERhdGEoIicgKyBkYXRhVHlwZSArICciLCAiJyArIGlkcyArICciLCAiZmFsc2UiKTsnKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICBicmVhazsNCiAgICB9DQogICAgc2hvd1BvcFVwRWxlbWVudCgncG9wdXAtY3VzdG9tJyk7DQp9DQpjbGFzcyBYTUxUVkZpbGUgew0KICAgIGdldEZpbGVzKHNldCkgew0KICAgICAgICBsZXQgZmlsZUlEcyA9IGdldE93bk9ialByb3BzKFNFUlZFUlsieGVwZyJdWyJ4bWx0dk1hcCJdKTsNCiAgICAgICAgbGV0IHZhbHVlcyA9IG5ldyBBcnJheSgiLSIpOw0KICAgICAgICBsZXQgdGV4dCA9IG5ldyBBcnJheSgiLSIpOw0KICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGZpbGVJRHMubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgICAgIGlmIChmaWxlSURzW2ldICE9ICJ4VGVWZSBEdW1teSIpIHsNCiAgICAgICAgICAgICAgICB2YWx1ZXMucHVzaChnZXRWYWx1ZUZyb21Qcm92aWRlckZpbGUoZmlsZUlEc1tpXSwgInhtbHR2IiwgImZpbGUueHRldmUiKSk7DQogICAgICAgICAgICAgICAgdGV4dC5wdXNoKGdldFZhbHVlRnJvbVByb3ZpZGVyRmlsZShmaWxlSURzW2ldLCAieG1sdHYiLCAibmFtZSIpKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgICAgIHZhbHVlcy5wdXNoKGZpbGVJRHNbaV0pOw0KICAgICAgICAgICAgICAgIHRleHQucHVzaChmaWxlSURzW2ldKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KICAgICAgICBsZXQgc2VsZWN0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiU0VMRUNUIik7DQogICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGV4dC5sZW5ndGg7IGkrKykgew0KICAgICAgICAgICAgdmFyIG9wdGlvbiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIk9QVElPTiIpOw0KICAgICAgICAgICAgb3B0aW9uLnNldEF0dHJpYnV0ZSgidmFsdWUiLCB2YWx1ZXNbaV0pOw0KICAgICAgICAgICAgb3B0aW9uLmlubmVyVGV4dCA9IHRleHRbaV07DQogICAgICAgICAgICBzZWxlY3QuYXBwZW5kQ2hpbGQob3B0aW9uKTsNCiAgICAgICAgfQ0KICAgICAgICBpZiAoc2V0ICE9ICIiKSB7DQogICAgICAgICAgICBzZWxlY3QudmFsdWUgPSBzZXQ7DQogICAgICAgIH0NCiAgICAgICAgcmV0dXJuIHNlbGVjdDsNCiAgICB9DQogICAgLyoqDQogICAgICogQHBhcmFtIHhtbFR2RmlsZSBYTUwgZmlsZSBwYXRoIHRvIGdldCBFUEcgZnJvbS4NCiAgICAgKiBAcGFyYW0gY3VycmVudFhtbFR2SWQgQ3VycmVudCBYTUxUViBJRCB0byBzZXQgaW5pdGlhbCBpbnB1dCB2YWx1ZSB0by4NCiAgICAgKiBAcmV0dXJucyBBcnJheSBvZiwgc2VxdWVudGlhbGx5Og0KICAgICAqIDEpIENvbnRhaW5lciBvZiB0aGUgcGlja2VyLg0KICAgICAqIDIpIElucHV0IGZpZWxkIHRvIHR5cGUgYXQgYW5kIGdldCBjaG9pY2UgZnJvbS4NCiAgICAgKiAzKSBEYXRhbGlzdCBjb250YWluaW5nIGV2ZXJ5IG9wdGlvbi4NCiAgICAgKi8NCiAgICBuZXdYbWxUdklkUGlja2VyKHhtbFR2RmlsZSwgY3VycmVudFhtbFR2SWQpIHsNCiAgICAgICAgY29uc3QgY29udGFpbmVyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7DQogICAgICAgIGNvbnN0IGlucHV0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnaW5wdXQnKTsNCiAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCd0eXBlJywgJ3RleHQnKTsNCiAgICAgICAgLy8gSW5pdGlhbGx5LCBzZXQgdmFsdWUgdG8gJy0nIGlmIGlucHV0IGlzIGVtcHR5DQogICAgICAgIGlucHV0LnZhbHVlID0gKGN1cnJlbnRYbWxUdklkKSA/IGN1cnJlbnRYbWxUdklkIDogJy0nOw0KICAgICAgICAvLyBXaGVuIGlucHV0IGlzIGZvY3VzZWQsIHJlbW92ZSAnLScgZnJvbSBpdA0KICAgICAgICBpbnB1dC5hZGRFdmVudExpc3RlbmVyKCdmb2N1cycsIChldnQpID0+IHsNCiAgICAgICAgICAgIGNvbnN0IHRhcmdldCA9IGV2dC50YXJnZXQ7DQogICAgICAgICAgICB0YXJnZXQudmFsdWUgPSAodGFyZ2V0LnZhbHVlID09PSAnLScpID8gJycgOiB0YXJnZXQudmFsdWU7DQogICAgICAgIH0pOw0KICAgICAgICAvLyBXaGVuIGlucHV0IGxvc2UgZm9jdXMgb3IgdGFrZSBhIHZhbHVlLCBpZiBpdCdzIGVtcHR5LCBzZXQgdmFsdWUgdG8gJy0nDQogICAgICAgIGlucHV0LmFkZEV2ZW50TGlzdGVuZXIoJ2JsdXInLCBzZXRGYWxsYmFja1ZhbHVlKTsNCiAgICAgICAgaW5wdXQuYWRkRXZlbnRMaXN0ZW5lcignY2hhbmdlJywgc2V0RmFsbGJhY2tWYWx1ZSk7DQogICAgICAgIGZ1bmN0aW9uIHNldEZhbGxiYWNrVmFsdWUoZXZ0KSB7DQogICAgICAgICAgICBjb25zdCB0YXJnZXQgPSBldnQudGFyZ2V0Ow0KICAgICAgICAgICAgdGFyZ2V0LnZhbHVlID0gKHRhcmdldC52YWx1ZSkgPyB0YXJnZXQudmFsdWUgOiAnLSc7DQogICAgICAgIH0NCiAgICAgICAgY29udGFpbmVyLmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgY29uc3QgZGF0YWxpc3QgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkYXRhbGlzdCcpOw0KICAgICAgICBjb25zdCBvcHRpb24gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdvcHRpb24nKTsNCiAgICAgICAgb3B0aW9uLnNldEF0dHJpYnV0ZSgndmFsdWUnLCAnLScpOw0KICAgICAgICBvcHRpb24uaW5uZXJUZXh0ID0gJy0nOw0KICAgICAgICBkYXRhbGlzdC5hcHBlbmRDaGlsZChvcHRpb24pOw0KICAgICAgICBjb25zdCBlcGcgPSBTRVJWRVJbJ3hlcGcnXVsneG1sdHZNYXAnXVt4bWxUdkZpbGVdOw0KICAgICAgICBpZiAoZXBnKSB7DQogICAgICAgICAgICBjb25zdCBwcm9ncmFtSWRzID0gZ2V0T3duT2JqUHJvcHMoZXBnKTsNCiAgICAgICAgICAgIHByb2dyYW1JZHMuZm9yRWFjaCgocHJvZ3JhbUlkKSA9PiB7DQogICAgICAgICAgICAgICAgY29uc3QgcHJvZ3JhbSA9IGVwZ1twcm9ncmFtSWRdOw0KICAgICAgICAgICAgICAgIGlmIChwcm9ncmFtLmhhc093blByb3BlcnR5KCdkaXNwbGF5LW5hbWVzJykpIHsNCiAgICAgICAgICAgICAgICAgICAgcHJvZ3JhbVsnZGlzcGxheS1uYW1lcyddLmZvckVhY2goKGRpc3BsYXlOYW1lKSA9PiB7DQogICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBvcHRpb24gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdvcHRpb24nKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIG9wdGlvbi5zZXRBdHRyaWJ1dGUoJ3ZhbHVlJywgcHJvZ3JhbUlkKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIG9wdGlvbi5pbm5lclRleHQgPSBkaXNwbGF5TmFtZVsnVmFsdWUnXTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGRhdGFsaXN0LmFwcGVuZENoaWxkKG9wdGlvbik7DQogICAgICAgICAgICAgICAgICAgIH0pOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICAgICAgY29uc3Qgb3B0aW9uID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnb3B0aW9uJyk7DQogICAgICAgICAgICAgICAgICAgIG9wdGlvbi5zZXRBdHRyaWJ1dGUoJ3ZhbHVlJywgcHJvZ3JhbUlkKTsNCiAgICAgICAgICAgICAgICAgICAgb3B0aW9uLmlubmVyVGV4dCA9ICctJzsNCiAgICAgICAgICAgICAgICAgICAgZGF0YWxpc3QuYXBwZW5kQ2hpbGQob3B0aW9uKTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9KTsNCiAgICAgICAgfQ0KICAgICAgICBjb250YWluZXIuYXBwZW5kQ2hpbGQoZGF0YWxpc3QpOw0KICAgICAgICByZXR1cm4gW2NvbnRhaW5lciwgaW5wdXQsIGRhdGFsaXN0XTsNCiAgICB9DQp9DQpmdW5jdGlvbiBnZXRWYWx1ZUZyb21Qcm92aWRlckZpbGUoZmlsZSwgZmlsZVR5cGUsIGtleSkgew0KICAgIGlmIChmaWxlID09ICJ4VGVWZSBEdW1teSIpIHsNCiAgICAgICAgcmV0dXJuIGZpbGU7DQogICAgfQ0KICAgIGxldCBmaWxlSUQ7DQogICAgbGV0IGluZGljYXRvciA9IGZpbGUuY2hhckF0KDApOw0KICAgIHN3aXRjaCAoaW5kaWNhdG9yKSB7DQogICAgICAgIGNhc2UgIk0iOg0KICAgICAgICAgICAgZmlsZVR5cGUgPSAibTN1IjsNCiAgICAgICAgICAgIGZpbGVJRCA9IGZpbGU7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSAiSCI6DQogICAgICAgICAgICBmaWxlVHlwZSA9ICJoZGhyIjsNCiAgICAgICAgICAgIGZpbGVJRCA9IGZpbGU7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSAiWCI6DQogICAgICAgICAgICBmaWxlVHlwZSA9ICJ4bWx0diI7DQogICAgICAgICAgICBmaWxlSUQgPSBmaWxlLnN1YnN0cmluZygwLCBmaWxlLmxhc3RJbmRleE9mKCcuJykpOw0KICAgICAgICAgICAgYnJlYWs7DQogICAgfQ0KICAgIGlmIChTRVJWRVJbInNldHRpbmdzIl1bImZpbGVzIl1bZmlsZVR5cGVdLmhhc093blByb3BlcnR5KGZpbGVJRCkgPT0gdHJ1ZSkgew0KICAgICAgICB2YXIgZGF0YSA9IFNFUlZFUlsic2V0dGluZ3MiXVsiZmlsZXMiXVtmaWxlVHlwZV1bZmlsZUlEXTsNCiAgICAgICAgcmV0dXJuIGRhdGFba2V5XTsNCiAgICB9DQogICAgcmV0dXJuOw0KfQ0KZnVuY3Rpb24gc2V0WG1sdHZDaGFubmVsKGVwZ01hcElkLCB4bWxUdkZpbGVTZWxlY3QpIHsNCiAgICBjb25zdCB4bWxUdiA9IG5ldyBYTUxUVkZpbGUoKTsNCiAgICBjb25zdCBuZXdYbWxUdkZpbGUgPSB4bWxUdkZpbGVTZWxlY3QudmFsdWU7DQogICAgLy8gUmVtb3ZlIG9sZCBYTUxUViBJRCBzZWxlY3Rpb24gYm94DQogICAgY29uc3QgeG1sVHZJZFBpY2tlclBhcmVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd4bWx0di1pZC1waWNrZXItY29udGFpbmVyJykucGFyZW50RWxlbWVudDsNCiAgICB4bWxUdklkUGlja2VyUGFyZW50LmlubmVySFRNTCA9ICcnOw0KICAgIC8vIENyZWF0ZSBuZXcgWE1MVFYgSUQgc2VsZWN0aW9uIGJveA0KICAgIGNvbnN0IHR2Z0lkID0gU0VSVkVSWyd4ZXBnJ11bJ2VwZ01hcHBpbmcnXVtlcGdNYXBJZF1bJ3R2Zy1pZCddOw0KICAgIGNvbnN0IFt4bWxUdklkQ29udGFpbmVyLCB4bWxUdklkSW5wdXQsIHhtbFR2SWREYXRhbGlzdF0gPSB4bWxUdi5uZXdYbWxUdklkUGlja2VyKG5ld1htbFR2RmlsZSwgdHZnSWQpOw0KICAgIHhtbFR2SWRDb250YWluZXIuc2V0QXR0cmlidXRlKCdpZCcsICd4bWx0di1pZC1waWNrZXItY29udGFpbmVyJyk7DQogICAgeG1sVHZJZElucHV0LnNldEF0dHJpYnV0ZSgnbGlzdCcsICd4bWx0di1pZC1waWNrZXItZGF0YWxpc3QnKTsNCiAgICB4bWxUdklkSW5wdXQuc2V0QXR0cmlidXRlKCduYW1lJywgJ3gtbWFwcGluZycpOyAvLyBTaG91bGQgc3RheSB4LW1hcHBpbmcgYXMgaXQgd2lsbCBiZSB1c2VkIGluIGRvbmVQb3B1cERhdGEgdG8gbWFrZSBhIHNlcnZlciByZXF1ZXN0DQogICAgeG1sVHZJZElucHV0LnNldEF0dHJpYnV0ZSgnaWQnLCAneG1sdHYtaWQtcGlja2VyLWlucHV0Jyk7DQogICAgeG1sVHZJZElucHV0LnNldEF0dHJpYnV0ZSgnb25jaGFuZ2UnLCBgamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCc7IGNoZWNrWG1sdHZDaGFubmVsKCcke2VwZ01hcElkfScsIHRoaXMudmFsdWUsICcke25ld1htbFR2RmlsZX0nKTtgKTsNCiAgICB4bWxUdklkSW5wdXQuY2xhc3NMaXN0LmFkZCgnY2hhbmdlZCcpOw0KICAgIHhtbFR2SWREYXRhbGlzdC5zZXRBdHRyaWJ1dGUoJ2lkJywgJ3htbHR2LWlkLXBpY2tlci1kYXRhbGlzdCcpOw0KICAgIC8vIEFkZCBuZXcgWE1MVFYgSUQgc2VsZWN0aW9uIGJveCB0byBpdCdzIHBhcmVudA0KICAgIHhtbFR2SWRQaWNrZXJQYXJlbnQuYXBwZW5kQ2hpbGQoeG1sVHZJZENvbnRhaW5lcik7DQogICAgY2hlY2tYbWx0dkNoYW5uZWwoZXBnTWFwSWQsIHhtbFR2SWRJbnB1dC52YWx1ZSwgbmV3WG1sVHZGaWxlKTsNCn0NCmZ1bmN0aW9uIGNoZWNrWG1sdHZDaGFubmVsKGVwZ01hcElkLCBuZXdYbWxUdklkLCB4bWxUdkZpbGUpIHsNCiAgICBjb25zdCBjaGFubmVsQWN0aXZlQ2IgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYWN0aXZlJyk7DQogICAgY29uc3QgY2hhbm5lbEFjdGl2ZSA9IG5ld1htbFR2SWQgIT0gJy0nOw0KICAgIGNoYW5uZWxBY3RpdmVDYi5jaGVja2VkID0gY2hhbm5lbEFjdGl2ZTsNCiAgICBjaGFubmVsQWN0aXZlQ2IuY2xhc3NOYW1lID0gJ2NoYW5nZWQnOw0KICAgIGlmICh4bWxUdkZpbGUgIT0gJ3hUZVZlIER1bW15JyAmJiBjaGFubmVsQWN0aXZlID09IHRydWUpIHsNCiAgICAgICAgY2hhbmdlQ2hhbm5lbExvZ28oZXBnTWFwSWQpOw0KICAgICAgICByZXR1cm47DQogICAgfQ0KICAgIGlmICh4bWxUdkZpbGUgPT0gJ3hUZVZlIER1bW15Jykgew0KICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndXBkYXRlLWljb24nKS5jaGVja2VkID0gZmFsc2U7DQogICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd1cGRhdGUtaWNvbicpLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJzsNCiAgICB9DQp9DQpmdW5jdGlvbiBjaGFuZ2VDaGFubmVsTG9nbyhlcGdNYXBJZCkgew0KICAgIGNvbnN0IGNoYW5uZWwgPSBTRVJWRVJbJ3hlcGcnXVsnZXBnTWFwcGluZyddW2VwZ01hcElkXTsNCiAgICBjb25zdCB4bWxUdkZpbGVTZWxlY3QgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncG9wdXAteG1sdHYnKTsNCiAgICBjb25zdCB4bWxUdkZpbGUgPSB4bWxUdkZpbGVTZWxlY3Qub3B0aW9uc1t4bWxUdkZpbGVTZWxlY3Quc2VsZWN0ZWRJbmRleF0udmFsdWU7DQogICAgY29uc3QgeG1sVHZJZElucHV0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3htbHR2LWlkLXBpY2tlci1pbnB1dCcpOw0KICAgIGNvbnN0IG5ld1htbFR2SWQgPSB4bWxUdklkSW5wdXQudmFsdWU7DQogICAgY29uc3QgdXBkYXRlTG9nbyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd1cGRhdGUtaWNvbicpLmNoZWNrZWQ7DQogICAgbGV0IGxvZ287DQogICAgaWYgKHVwZGF0ZUxvZ28gPT0gdHJ1ZSAmJiB4bWxUdkZpbGUgIT0gJ3hUZVZlIER1bW15Jykgew0KICAgICAgICBpZiAoU0VSVkVSWyd4ZXBnJ11bJ3htbHR2TWFwJ11beG1sVHZGaWxlXS5oYXNPd25Qcm9wZXJ0eShuZXdYbWxUdklkKSkgew0KICAgICAgICAgICAgbG9nbyA9IFNFUlZFUlsneGVwZyddWyd4bWx0dk1hcCddW3htbFR2RmlsZV1bbmV3WG1sVHZJZF1bJ2ljb24nXTsNCiAgICAgICAgfQ0KICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgIGxvZ28gPSBjaGFubmVsWyd0dmctbG9nbyddOw0KICAgICAgICB9DQogICAgICAgIHZhciBsb2dvSW5wdXQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY2hhbm5lbC1pY29uJyk7DQogICAgICAgIGxvZ29JbnB1dC52YWx1ZSA9IGxvZ287DQogICAgICAgIGlmIChCVUxLX0VESVQgPT0gZmFsc2UpIHsNCiAgICAgICAgICAgIGxvZ29JbnB1dC5jbGFzc05hbWUgPSAnY2hhbmdlZCc7DQogICAgICAgIH0NCiAgICB9DQp9DQpmdW5jdGlvbiBzYXZlUG9wdXBEYXRhKGRhdGFUeXBlLCBpZCwgcmVtb3ZlLCBvcHRpb24pIHsNCiAgICBpZiAoZGF0YVR5cGUgPT0gIm1hcHBpbmciKSB7DQogICAgICAgIGxldCBkYXRhID0ge307DQogICAgICAgIGxldCBjbWQgPSAic2F2ZUVwZ01hcHBpbmciOw0KICAgICAgICBkYXRhWyJlcGdNYXBwaW5nIl0gPSBTRVJWRVJbInhlcGciXVsiZXBnTWFwcGluZyJdOw0KICAgICAgICBsZXQgc2VydmVyID0gbmV3IFNlcnZlcihjbWQpOw0KICAgICAgICBzZXJ2ZXIucmVxdWVzdChkYXRhKTsNCiAgICAgICAgZGVsZXRlIFVORE9bImVwZ01hcHBpbmciXTsNCiAgICAgICAgcmV0dXJuOw0KICAgIH0NCiAgICBsZXQgZGl2ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInBvcHVwLWN1c3RvbSIpOw0KICAgIGxldCBpbnB1dHMgPSBkaXYuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlRBQkxFIilbMF0uZ2V0RWxlbWVudHNCeVRhZ05hbWUoIklOUFVUIik7DQogICAgbGV0IHNlbGVjdHMgPSBkaXYuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlRBQkxFIilbMF0uZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlNFTEVDVCIpOw0KICAgIGxldCBpbnB1dCA9IHt9Ow0KICAgIGxldCBjb25maXJtTXNnOw0KICAgIGZvciAobGV0IGkgPSAwOyBpIDwgc2VsZWN0cy5sZW5ndGg7IGkrKykgew0KICAgICAgICB2YXIgbmFtZTsNCiAgICAgICAgbmFtZSA9IHNlbGVjdHNbaV0ubmFtZTsNCiAgICAgICAgdmFyIHZhbHVlID0gc2VsZWN0c1tpXS52YWx1ZTsNCiAgICAgICAgc3dpdGNoIChuYW1lKSB7DQogICAgICAgICAgICBjYXNlICJ0dW5lciI6DQogICAgICAgICAgICAgICAgaW5wdXRbbmFtZV0gPSBwYXJzZUludCh2YWx1ZSk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBkZWZhdWx0Og0KICAgICAgICAgICAgICAgIGlucHV0W25hbWVdID0gdmFsdWU7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIH0NCiAgICB9DQogICAgZm9yIChsZXQgaSA9IDA7IGkgPCBpbnB1dHMubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgc3dpdGNoIChpbnB1dHNbaV0udHlwZSkgew0KICAgICAgICAgICAgY2FzZSAiY2hlY2tib3giOg0KICAgICAgICAgICAgICAgIG5hbWUgPSBpbnB1dHNbaV0ubmFtZTsNCiAgICAgICAgICAgICAgICBpbnB1dFtuYW1lXSA9IGlucHV0c1tpXS5jaGVja2VkOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAidGV4dCI6DQogICAgICAgICAgICBjYXNlICJoaWRkZW4iOg0KICAgICAgICAgICAgY2FzZSAicGFzc3dvcmQiOg0KICAgICAgICAgICAgICAgIG5hbWUgPSBpbnB1dHNbaV0ubmFtZTsNCiAgICAgICAgICAgICAgICBzd2l0Y2ggKG5hbWUpIHsNCiAgICAgICAgICAgICAgICAgICAgY2FzZSAidHVuZXIiOg0KICAgICAgICAgICAgICAgICAgICAgICAgaW5wdXRbbmFtZV0gPSBwYXJzZUludChpbnB1dHNbaV0udmFsdWUpOw0KICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICAgICAgICAgICAgICBpbnB1dFtuYW1lXSA9IGlucHV0c1tpXS52YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgfQ0KICAgIH0NCiAgICBsZXQgZGF0YSA9IHt9Ow0KICAgIGxldCBjbWQ7DQogICAgaWYgKHJlbW92ZSA9PSB0cnVlKSB7DQogICAgICAgIGlucHV0WyJkZWxldGUiXSA9IHRydWU7DQogICAgfQ0KICAgIHN3aXRjaCAoZGF0YVR5cGUpIHsNCiAgICAgICAgY2FzZSAidXNlcnMiOg0KICAgICAgICAgICAgY29uZmlybU1zZyA9ICJEZWxldGUgdGhpcyB1c2VyPyI7DQogICAgICAgICAgICBpZiAoaWQgPT0gIi0iKSB7DQogICAgICAgICAgICAgICAgY21kID0gInNhdmVOZXdVc2VyIjsNCiAgICAgICAgICAgICAgICBkYXRhWyJ1c2VyRGF0YSJdID0gaW5wdXQ7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICBjbWQgPSAic2F2ZVVzZXJEYXRhIjsNCiAgICAgICAgICAgICAgICBsZXQgZCA9IHt9Ow0KICAgICAgICAgICAgICAgIGRbaWRdID0gaW5wdXQ7DQogICAgICAgICAgICAgICAgZGF0YVsidXNlckRhdGEiXSA9IGQ7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSAibTN1IjoNCiAgICAgICAgICAgIGNvbmZpcm1Nc2cgPSAiRGVsZXRlIHRoaXMgcGxheWxpc3Q/IjsNCiAgICAgICAgICAgIHN3aXRjaCAob3B0aW9uKSB7DQogICAgICAgICAgICAgICAgLy8gUG9wdXA6IFNhdmUNCiAgICAgICAgICAgICAgICBjYXNlIDA6DQogICAgICAgICAgICAgICAgICAgIGNtZCA9ICJzYXZlRmlsZXNNM1UiOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICAvLyBQb3B1cDogVXBkYXRlDQogICAgICAgICAgICAgICAgY2FzZSAxOg0KICAgICAgICAgICAgICAgICAgICBjbWQgPSAidXBkYXRlRmlsZU0zVSI7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgZGF0YVsiZmlsZXMiXSA9IHt9Ow0KICAgICAgICAgICAgZGF0YVsiZmlsZXMiXVtkYXRhVHlwZV0gPSB7fTsNCiAgICAgICAgICAgIGRhdGFbImZpbGVzIl1bZGF0YVR5cGVdW2lkXSA9IGlucHV0Ow0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGNhc2UgImhkaHIiOg0KICAgICAgICAgICAgY29uZmlybU1zZyA9ICJEZWxldGUgdGhpcyBIREhvbWVSdW4gdHVuZXI/IjsNCiAgICAgICAgICAgIHN3aXRjaCAob3B0aW9uKSB7DQogICAgICAgICAgICAgICAgLy8gUG9wdXA6IFNhdmUNCiAgICAgICAgICAgICAgICBjYXNlIDA6DQogICAgICAgICAgICAgICAgICAgIGNtZCA9ICJzYXZlRmlsZXNIREhSIjsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgLy8gUG9wdXA6IFVwZGF0ZQ0KICAgICAgICAgICAgICAgIGNhc2UgMToNCiAgICAgICAgICAgICAgICAgICAgY21kID0gInVwZGF0ZUZpbGVIREhSIjsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBkYXRhWyJmaWxlcyJdID0ge307DQogICAgICAgICAgICBkYXRhWyJmaWxlcyJdW2RhdGFUeXBlXSA9IHt9Ow0KICAgICAgICAgICAgZGF0YVsiZmlsZXMiXVtkYXRhVHlwZV1baWRdID0gaW5wdXQ7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSAieG1sdHYiOg0KICAgICAgICAgICAgY29uZmlybU1zZyA9ICJEZWxldGUgdGhpcyBYTUxUViBmaWxlPyI7DQogICAgICAgICAgICBzd2l0Y2ggKG9wdGlvbikgew0KICAgICAgICAgICAgICAgIC8vIFBvcHVwOiBTYXZlDQogICAgICAgICAgICAgICAgY2FzZSAwOg0KICAgICAgICAgICAgICAgICAgICBjbWQgPSAic2F2ZUZpbGVzWE1MVFYiOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICAvLyBQb3B1cDogVXBkYXRlDQogICAgICAgICAgICAgICAgY2FzZSAxOg0KICAgICAgICAgICAgICAgICAgICBjbWQgPSAidXBkYXRlRmlsZVhNTFRWIjsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBkYXRhWyJmaWxlcyJdID0ge307DQogICAgICAgICAgICBkYXRhWyJmaWxlcyJdW2RhdGFUeXBlXSA9IHt9Ow0KICAgICAgICAgICAgZGF0YVsiZmlsZXMiXVtkYXRhVHlwZV1baWRdID0gaW5wdXQ7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSAiZmlsdGVyIjoNCiAgICAgICAgICAgIGNvbmZpcm1Nc2cgPSAiRGVsZXRlIHRoaXMgZmlsdGVyPyI7DQogICAgICAgICAgICBjbWQgPSAic2F2ZUZpbHRlciI7DQogICAgICAgICAgICBkYXRhWyJmaWx0ZXIiXSA9IHt9Ow0KICAgICAgICAgICAgZGF0YVsiZmlsdGVyIl1baWRdID0gaW5wdXQ7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgIHJldHVybjsNCiAgICB9DQogICAgaWYgKHJlbW92ZSA9PSB0cnVlKSB7DQogICAgICAgIGlmICghY29uZmlybShjb25maXJtTXNnKSkgew0KICAgICAgICAgICAgc2hvd0VsZW1lbnQoInBvcHVwIiwgZmFsc2UpOw0KICAgICAgICAgICAgcmV0dXJuOw0KICAgICAgICB9DQogICAgfQ0KICAgIGxldCBzZXJ2ZXIgPSBuZXcgU2VydmVyKGNtZCk7DQogICAgc2VydmVyLnJlcXVlc3QoZGF0YSk7DQp9DQpmdW5jdGlvbiBkb25lUG9wdXBEYXRhKGRhdGFUeXBlLCBpZHNTdHIpIHsNCiAgICBsZXQgaWRzID0gaWRzU3RyLnNwbGl0KCcsJyk7DQogICAgbGV0IGRpdiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJwb3B1cC1jdXN0b20iKTsNCiAgICBsZXQgaW5wdXRzID0gZGl2LmdldEVsZW1lbnRzQnlDbGFzc05hbWUoImNoYW5nZWQiKTsNCiAgICBpZHMuZm9yRWFjaChpZCA9PiB7DQogICAgICAgIGxldCBpbnB1dDsNCiAgICAgICAgaW5wdXQgPSBTRVJWRVJbInhlcGciXVsiZXBnTWFwcGluZyJdW2lkXTsNCiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBpbnB1dHMubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgICAgIGxldCBuYW1lOw0KICAgICAgICAgICAgbGV0IHZhbHVlOw0KICAgICAgICAgICAgc3dpdGNoIChpbnB1dHNbaV0udGFnTmFtZSkgew0KICAgICAgICAgICAgICAgIGNhc2UgIklOUFVUIjoNCiAgICAgICAgICAgICAgICAgICAgc3dpdGNoIChpbnB1dHNbaV0udHlwZSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAiY2hlY2tib3giOg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWUgPSBpbnB1dHNbaV0ubmFtZTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IGlucHV0c1tpXS5jaGVja2VkOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlucHV0W25hbWVdID0gdmFsdWU7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgICAgICAgICBjYXNlICJ0ZXh0IjoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lID0gaW5wdXRzW2ldLm5hbWU7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSBpbnB1dHNbaV0udmFsdWU7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5wdXRbbmFtZV0gPSB2YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBjYXNlICJTRUxFQ1QiOg0KICAgICAgICAgICAgICAgICAgICBuYW1lID0gaW5wdXRzW2ldLm5hbWU7DQogICAgICAgICAgICAgICAgICAgIHZhbHVlID0gaW5wdXRzW2ldLnZhbHVlOw0KICAgICAgICAgICAgICAgICAgICBpbnB1dFtuYW1lXSA9IHZhbHVlOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIHN3aXRjaCAobmFtZSkgew0KICAgICAgICAgICAgICAgIGNhc2UgInR2Zy1sb2dvIjoNCiAgICAgICAgICAgICAgICAgICAgLy8oZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpLmNoaWxkTm9kZXNbMl0uZmlyc3RDaGlsZCBhcyBIVE1MRWxlbWVudCkuc2V0QXR0cmlidXRlKCJzcmMiLCB2YWx1ZSkNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAieC1uYW1lIjoNCiAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpLmNoaWxkTm9kZXNbM10uZmlyc3RDaGlsZC5pbm5lckhUTUwgPSB2YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAieC1jYXRlZ29yeSI6DQogICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5jaGlsZE5vZGVzWzNdLmZpcnN0Q2hpbGQuY2xhc3NOYW1lID0gdmFsdWU7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgInVwZGF0ZS1jaGFubmVsLW5hbWUtcmVnZXgiOg0KICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkuY2hpbGROb2Rlc1s0XS5maXJzdENoaWxkLmlubmVySFRNTCA9IHZhbHVlOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBjYXNlICJ4LWdyb3VwLXRpdGxlIjoNCiAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpLmNoaWxkTm9kZXNbNl0uZmlyc3RDaGlsZC5pbm5lckhUTUwgPSB2YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAieC14bWx0di1maWxlIjoNCiAgICAgICAgICAgICAgICAgICAgaWYgKHZhbHVlICE9ICJ4VGVWZSBEdW1teSIgJiYgdmFsdWUgIT0gIi0iKSB7DQogICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IGdldFZhbHVlRnJvbVByb3ZpZGVyRmlsZSh2YWx1ZSwgInhtbHR2IiwgIm5hbWUiKTsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBpZiAodmFsdWUgPT0gIi0iKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBpbnB1dFsieC1hY3RpdmUiXSA9IGZhbHNlOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5jaGlsZE5vZGVzWzddLmZpcnN0Q2hpbGQuaW5uZXJIVE1MID0gdmFsdWU7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgIngtbWFwcGluZyI6DQogICAgICAgICAgICAgICAgICAgIGlmICh2YWx1ZSA9PSAiLSIpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGlucHV0WyJ4LWFjdGl2ZSJdID0gZmFsc2U7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpLmNoaWxkTm9kZXNbOF0uZmlyc3RDaGlsZC5pbm5lckhUTUwgPSB2YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAieC10aW1lc2hpZnQiOg0KICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkuY2hpbGROb2Rlc1s5XS5maXJzdENoaWxkLmlubmVySFRNTCA9IHZhbHVlOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBkZWZhdWx0Og0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgY3JlYXRlU2VhcmNoT2JqKCk7DQogICAgICAgICAgICBzZWFyY2hJbk1hcHBpbmcoKTsNCiAgICAgICAgfQ0KICAgICAgICBpZiAoaW5wdXRbIngtYWN0aXZlIl0gPT0gZmFsc2UpIHsNCiAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5jbGFzc05hbWUgPSAibm90QWN0aXZlRVBHIjsNCiAgICAgICAgfQ0KICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5jbGFzc05hbWUgPSAiYWN0aXZlRVBHIjsNCiAgICAgICAgfQ0KICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkuY2hpbGROb2Rlc1syXS5maXJzdENoaWxkLnNldEF0dHJpYnV0ZSgic3JjIiwgaW5wdXRbInR2Zy1sb2dvIl0pOw0KICAgIH0pOw0KICAgIHNob3dFbGVtZW50KCJwb3B1cCIsIGZhbHNlKTsNCiAgICByZXR1cm47DQp9DQpmdW5jdGlvbiBzaG93UHJldmlldyhlbGVtZW50KSB7DQogICAgbGV0IGRpdiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJteVN0cmVhbXNCb3giKTsNCiAgICBzd2l0Y2ggKGVsZW1lbnQpIHsNCiAgICAgICAgY2FzZSBmYWxzZToNCiAgICAgICAgICAgIGRpdi5jbGFzc05hbWUgPSAibm90VmlzaWJsZSI7DQogICAgICAgICAgICByZXR1cm47DQogICAgfQ0KICAgIGxldCBzdHJlYW1zID0gWyJhY3RpdmVTdHJlYW1zIiwgImluYWN0aXZlU3RyZWFtcyJdOw0KICAgIHN0cmVhbXMuZm9yRWFjaChwcmV2aWV3ID0+IHsNCiAgICAgICAgbGV0IHRhYmxlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQocHJldmlldyk7DQogICAgICAgIHRhYmxlLmlubmVySFRNTCA9ICIiOw0KICAgICAgICBsZXQgb2JqID0gU0VSVkVSWyJkYXRhIl1bIlN0cmVhbVByZXZpZXdVSSJdW3ByZXZpZXddOw0KICAgICAgICBvYmouZm9yRWFjaChjaGFubmVsID0+IHsNCiAgICAgICAgICAgIGxldCB0ciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlRSIik7DQogICAgICAgICAgICBsZXQgdGRLZXkgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgbGV0IHRkVmFsID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgIHRkS2V5LmNsYXNzTmFtZSA9ICJ0ZEtleSI7DQogICAgICAgICAgICB0ZFZhbC5jbGFzc05hbWUgPSAidGRWYWwiOw0KICAgICAgICAgICAgc3dpdGNoIChwcmV2aWV3KSB7DQogICAgICAgICAgICAgICAgY2FzZSAiYWN0aXZlU3RyZWFtcyI6DQogICAgICAgICAgICAgICAgICAgIHRkS2V5LmlubmVyVGV4dCA9ICJDaGFubmVsOiAoKykiOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBjYXNlICJpbmFjdGl2ZVN0cmVhbXMiOg0KICAgICAgICAgICAgICAgICAgICB0ZEtleS5pbm5lclRleHQgPSAiQ2hhbm5lbDogKC0pIjsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICB9DQogICAgICAgICAgICB0ZFZhbC5pbm5lclRleHQgPSBjaGFubmVsOw0KICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQodGRLZXkpOw0KICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQodGRWYWwpOw0KICAgICAgICAgICAgdGFibGUuYXBwZW5kQ2hpbGQodHIpOw0KICAgICAgICB9KTsNCiAgICB9KTsNCiAgICBzaG93RWxlbWVudCgibG9hZGluZyIsIGZhbHNlKTsNCiAgICBkaXYuY2xhc3NOYW1lID0gInZpc2libGUiOw0KICAgIHJldHVybjsNCn0NCg==" webUI["html/js/network_ts.js"] = "Y2xhc3MgU2VydmVyIHsNCiAgICBjb25zdHJ1Y3RvcihjbWQpIHsNCiAgICAgICAgdGhpcy5jbWQgPSBjbWQ7DQogICAgfQ0KICAgIHJlcXVlc3QoZGF0YSkgew0KICAgICAgICBpZiAoU0VSVkVSX0NPTk5FQ1RJT04gPT0gdHJ1ZSkgew0KICAgICAgICAgICAgcmV0dXJuOw0KICAgICAgICB9DQogICAgICAgIFNFUlZFUl9DT05ORUNUSU9OID0gdHJ1ZTsNCiAgICAgICAgaWYgKHRoaXMuY21kICE9ICJ1cGRhdGVMb2ciKSB7DQogICAgICAgICAgICBzaG93RWxlbWVudCgibG9hZGluZyIsIHRydWUpOw0KICAgICAgICAgICAgVU5ETyA9IG5ldyBPYmplY3QoKTsNCiAgICAgICAgfQ0KICAgICAgICBzd2l0Y2ggKHdpbmRvdy5sb2NhdGlvbi5wcm90b2NvbCkgew0KICAgICAgICAgICAgY2FzZSAiaHR0cDoiOg0KICAgICAgICAgICAgICAgIHRoaXMucHJvdG9jb2wgPSAid3M6Ly8iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiaHR0cHM6IjoNCiAgICAgICAgICAgICAgICB0aGlzLnByb3RvY29sID0gIndzczovLyI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIH0NCiAgICAgICAgdmFyIHVybCA9IHRoaXMucHJvdG9jb2wgKyB3aW5kb3cubG9jYXRpb24uaG9zdG5hbWUgKyAiOiIgKyB3aW5kb3cubG9jYXRpb24ucG9ydCArICIvZGF0YS8iICsgIj9Ub2tlbj0iICsgZ2V0Q29va2llKCJUb2tlbiIpOw0KICAgICAgICBkYXRhWyJjbWQiXSA9IHRoaXMuY21kOw0KICAgICAgICB2YXIgd3MgPSBuZXcgV2ViU29ja2V0KHVybCk7DQogICAgICAgIHdzLm9ub3BlbiA9IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgICAgIFdTX0FWQUlMQUJMRSA9IHRydWU7DQogICAgICAgICAgICB0aGlzLnNlbmQoSlNPTi5zdHJpbmdpZnkoZGF0YSkpOw0KICAgICAgICB9Ow0KICAgICAgICB3cy5vbmVycm9yID0gZnVuY3Rpb24gKHdzRXJyRXZ0KSB7DQogICAgICAgICAgICBjb25zb2xlLmxvZygiTm8gd2Vic29ja2V0IGNvbm5lY3Rpb24gdG8geFRlVmUgY291bGQgYmUgZXN0YWJsaXNoZWQuIENoZWNrIHlvdXIgbmV0d29yayBjb25maWd1cmF0aW9uLiIpOw0KICAgICAgICAgICAgU0VSVkVSX0NPTk5FQ1RJT04gPSBmYWxzZTsNCiAgICAgICAgICAgIGlmIChXU19BVkFJTEFCTEUgPT0gZmFsc2UpIHsNCiAgICAgICAgICAgICAgICBhbGVydCgiTm8gd2Vic29ja2V0IGNvbm5lY3Rpb24gdG8geFRlVmUgY291bGQgYmUgZXN0YWJsaXNoZWQuIENoZWNrIHlvdXIgbmV0d29yayBjb25maWd1cmF0aW9uLiIpOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9Ow0KICAgICAgICB3cy5vbm1lc3NhZ2UgPSBmdW5jdGlvbiAod3NNZXNzYWdlRXZ0KSB7DQogICAgICAgICAgICBTRVJWRVJfQ09OTkVDVElPTiA9IGZhbHNlOw0KICAgICAgICAgICAgc2hvd0VsZW1lbnQoImxvYWRpbmciLCBmYWxzZSk7DQogICAgICAgICAgICBjb25zdCByZXNwb25zZSA9IEpTT04ucGFyc2Uod3NNZXNzYWdlRXZ0LmRhdGEpOw0KICAgICAgICAgICAgaWYgKHJlc3BvbnNlLmhhc093blByb3BlcnR5KCJ0b2tlbiIpKSB7DQogICAgICAgICAgICAgICAgZG9jdW1lbnQuY29va2llID0gIlRva2VuPSIgKyByZXNwb25zZVsidG9rZW4iXTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGlmIChyZXNwb25zZVsic3RhdHVzIl0gPT0gZmFsc2UpIHsNCiAgICAgICAgICAgICAgICBhbGVydChyZXNwb25zZVsiZXJyIl0pOw0KICAgICAgICAgICAgICAgIHJldHVybjsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGlmIChyZXNwb25zZS5oYXNPd25Qcm9wZXJ0eSgnb3BlbkxpbmsnKSkgew0KICAgICAgICAgICAgICAgIHdpbmRvdy5sb2NhdGlvbiA9IHJlc3BvbnNlWydvcGVuTGluayddOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgaWYgKHJlc3BvbnNlLmhhc093blByb3BlcnR5KCJyZWxvYWQiKSkgew0KICAgICAgICAgICAgICAgIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGlmIChyZXNwb25zZS5oYXNPd25Qcm9wZXJ0eSgiYWxlcnQiKSkgew0KICAgICAgICAgICAgICAgIGFsZXJ0KHJlc3BvbnNlWyJhbGVydCJdKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGlmIChyZXNwb25zZS5oYXNPd25Qcm9wZXJ0eSgibG9nb1VSTCIpKSB7DQogICAgICAgICAgICAgICAgdmFyIGRpdiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjaGFubmVsLWljb24iKTsNCiAgICAgICAgICAgICAgICBkaXYudmFsdWUgPSByZXNwb25zZVsibG9nb1VSTCJdOw0KICAgICAgICAgICAgICAgIGRpdi5jbGFzc05hbWUgPSAiY2hhbmdlZCI7DQogICAgICAgICAgICAgICAgcmV0dXJuOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgc3dpdGNoIChkYXRhWyJjbWQiXSkgew0KICAgICAgICAgICAgICAgIGNhc2UgInVwZGF0ZUxvZyI6DQogICAgICAgICAgICAgICAgICAgIFNFUlZFUlsibG9nIl0gPSByZXNwb25zZVsibG9nIl07DQogICAgICAgICAgICAgICAgICAgIGlmIChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29udGVudF9sb2ciKSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgc2hvd0xvZ3MoZmFsc2UpOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIHJldHVybjsNCiAgICAgICAgICAgICAgICBkZWZhdWx0Og0KICAgICAgICAgICAgICAgICAgICBTRVJWRVIgPSBuZXcgT2JqZWN0KCk7DQogICAgICAgICAgICAgICAgICAgIFNFUlZFUiA9IHJlc3BvbnNlOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGlmIChyZXNwb25zZS5oYXNPd25Qcm9wZXJ0eSgib3Blbk1lbnUiKSkgew0KICAgICAgICAgICAgICAgIHZhciBtZW51ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQocmVzcG9uc2VbIm9wZW5NZW51Il0pOw0KICAgICAgICAgICAgICAgIG1lbnUuY2xpY2soKTsNCiAgICAgICAgICAgICAgICBzaG93RWxlbWVudCgicG9wdXAiLCBmYWxzZSk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBpZiAocmVzcG9uc2UuaGFzT3duUHJvcGVydHkoInJlbG9hZCIpKSB7DQogICAgICAgICAgICAgICAgbG9jYXRpb24ucmVsb2FkKCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBpZiAocmVzcG9uc2UuaGFzT3duUHJvcGVydHkoIndpemFyZCIpKSB7DQogICAgICAgICAgICAgICAgY3JlYXRlTGF5b3V0KCk7DQogICAgICAgICAgICAgICAgY29uZmlndXJhdGlvbldpemFyZFtyZXNwb25zZVsid2l6YXJkIl1dLmNyZWF0ZVdpemFyZCgpOw0KICAgICAgICAgICAgICAgIHJldHVybjsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGNyZWF0ZUxheW91dCgpOw0KICAgICAgICB9Ow0KICAgIH0NCn0NCmZ1bmN0aW9uIGdldENvb2tpZShuYW1lKSB7DQogICAgdmFyIHZhbHVlID0gIjsgIiArIGRvY3VtZW50LmNvb2tpZTsNCiAgICB2YXIgcGFydHMgPSB2YWx1ZS5zcGxpdCgiOyAiICsgbmFtZSArICI9Iik7DQogICAgaWYgKHBhcnRzLmxlbmd0aCA9PSAyKSB7DQogICAgICAgIHJldHVybiBwYXJ0cy5wb3AoKS5zcGxpdCgiOyIpLnNoaWZ0KCk7DQogICAgfQ0KfQ0K" webUI["html/js/settings_ts.js"] = "Y2xhc3MgU2V0dGluZ3NDYXRlZ29yeSB7DQogICAgY29uc3RydWN0b3IoKSB7DQogICAgICAgIHRoaXMuRG9jdW1lbnRJRCA9ICJjb250ZW50X3NldHRpbmdzIjsNCiAgICB9DQogICAgY3JlYXRlQ2F0ZWdvcnlIZWFkbGluZSh2YWx1ZSkgew0KICAgICAgICB2YXIgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIkg0Iik7DQogICAgICAgIGVsZW1lbnQuaW5uZXJIVE1MID0gdmFsdWU7DQogICAgICAgIHJldHVybiBlbGVtZW50Ow0KICAgIH0NCiAgICBjcmVhdGVIUigpIHsNCiAgICAgICAgdmFyIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJIUiIpOw0KICAgICAgICByZXR1cm4gZWxlbWVudDsNCiAgICB9DQogICAgY3JlYXRlU2V0dGluZ3Moc2V0dGluZ3NLZXkpIHsNCiAgICAgICAgdmFyIHNldHRpbmcgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJUUiIpOw0KICAgICAgICB2YXIgY29udGVudCA9IG5ldyBQb3B1cENvbnRlbnQoKTsNCiAgICAgICAgdmFyIGRhdGEgPSBTRVJWRVJbInNldHRpbmdzIl1bc2V0dGluZ3NLZXldOw0KICAgICAgICBzd2l0Y2ggKHNldHRpbmdzS2V5KSB7DQogICAgICAgICAgICAvLyBUZXh0IGlucHV0cw0KICAgICAgICAgICAgY2FzZSAidXBkYXRlIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLnVwZGF0ZS50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsICJ1cGRhdGUiLCBkYXRhLnRvU3RyaW5nKCkpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3suc2V0dGluZ3MudXBkYXRlLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJiYWNrdXAucGF0aCI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5iYWNrdXBQYXRoLnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgImJhY2t1cC5wYXRoIiwgZGF0YSk7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5zZXR0aW5ncy5iYWNrdXBQYXRoLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ0ZW1wLnBhdGgiOg0KICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MudGVtcFBhdGgudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCAidGVtcC5wYXRoIiwgZGF0YSk7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5zZXR0aW5ncy50bXBQYXRoLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ1c2VyLmFnZW50IjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLnVzZXJBZ2VudC50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsICJ1c2VyLmFnZW50IiwgZGF0YSk7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5zZXR0aW5ncy51c2VyQWdlbnQucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImJ1ZmZlci50aW1lb3V0IjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmJ1ZmZlclRpbWVvdXQudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCAiYnVmZmVyLnRpbWVvdXQiLCBkYXRhKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnNldHRpbmdzLmJ1ZmZlclRpbWVvdXQucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImZmbXBlZy5wYXRoIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmZmbXBlZ1BhdGgudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCAiZmZtcGVnLnBhdGgiLCBkYXRhKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnNldHRpbmdzLmZmbXBlZ1BhdGgucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImZmbXBlZy5vcHRpb25zIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmZmbXBlZ09wdGlvbnMudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCAiZmZtcGVnLm9wdGlvbnMiLCBkYXRhKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnNldHRpbmdzLmZmbXBlZ09wdGlvbnMucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInZsYy5wYXRoIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLnZsY1BhdGgudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCAidmxjLnBhdGgiLCBkYXRhKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnNldHRpbmdzLnZsY1BhdGgucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInZsYy5vcHRpb25zIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLnZsY09wdGlvbnMudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCAidmxjLm9wdGlvbnMiLCBkYXRhKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnNldHRpbmdzLnZsY09wdGlvbnMucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIC8vIENoZWNrYm94ZXMNCiAgICAgICAgICAgIGNhc2UgInRsc01vZGUiOg0KICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MudGxzTW9kZS50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChzZXR0aW5nc0tleSk7DQogICAgICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGE7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiYXV0aGVudGljYXRpb24ud2ViIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmF1dGhlbnRpY2F0aW9uV0VCLnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KHNldHRpbmdzS2V5KTsNCiAgICAgICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJhdXRoZW50aWNhdGlvbi5wbXMiOg0KICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MuYXV0aGVudGljYXRpb25QTVMudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goc2V0dGluZ3NLZXkpOw0KICAgICAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImF1dGhlbnRpY2F0aW9uLm0zdSI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5hdXRoZW50aWNhdGlvbk0zVS50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChzZXR0aW5nc0tleSk7DQogICAgICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGE7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiYXV0aGVudGljYXRpb24ueG1sIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmF1dGhlbnRpY2F0aW9uWE1MLnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KHNldHRpbmdzS2V5KTsNCiAgICAgICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJhdXRoZW50aWNhdGlvbi5hcGkiOg0KICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MuYXV0aGVudGljYXRpb25BUEkudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goc2V0dGluZ3NLZXkpOw0KICAgICAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImZpbGVzLnVwZGF0ZSI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5maWxlc1VwZGF0ZS50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChzZXR0aW5nc0tleSk7DQogICAgICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGE7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiY2FjaGUuaW1hZ2VzIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmNhY2hlSW1hZ2VzLnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KHNldHRpbmdzS2V5KTsNCiAgICAgICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ4ZXBnLnJlcGxhY2UubWlzc2luZy5pbWFnZXMiOg0KICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MucmVwbGFjZUVtcHR5SW1hZ2VzLnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KHNldHRpbmdzS2V5KTsNCiAgICAgICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJzdG9yZUJ1ZmZlckluUkFNIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLnN0b3JlQnVmZmVySW5SQU0udGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goc2V0dGluZ3NLZXkpOw0KICAgICAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInh0ZXZlQXV0b1VwZGF0ZSI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy54dGV2ZUF1dG9VcGRhdGUudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goc2V0dGluZ3NLZXkpOw0KICAgICAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImFwaSI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5hcGkudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goc2V0dGluZ3NLZXkpOw0KICAgICAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIC8vIFNlbGVjdA0KICAgICAgICAgICAgY2FzZSAiaG9zdElQIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmhvc3RJUC50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIHRleHQgPSBTRVJWRVJbImlwQWRkcmVzc2VzVjRIb3N0Il07DQogICAgICAgICAgICAgICAgdmFyIHZhbHVlcyA9IFNFUlZFUlsiaXBBZGRyZXNzZXNWNEhvc3QiXTsNCiAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCBkYXRhLCBzZXR0aW5nc0tleSk7DQogICAgICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKHNlbGVjdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ0dW5lciI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy50dW5lci50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIHRleHQgPSBuZXcgQXJyYXkoKTsNCiAgICAgICAgICAgICAgICB2YXIgdmFsdWVzID0gbmV3IEFycmF5KCk7DQogICAgICAgICAgICAgICAgZm9yICh2YXIgaSA9IDE7IGkgPD0gMTAwOyBpKyspIHsNCiAgICAgICAgICAgICAgICAgICAgdGV4dC5wdXNoKGkpOw0KICAgICAgICAgICAgICAgICAgICB2YWx1ZXMucHVzaChpKTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgdmFyIHNlbGVjdCA9IGNvbnRlbnQuY3JlYXRlU2VsZWN0KHRleHQsIHZhbHVlcywgZGF0YSwgc2V0dGluZ3NLZXkpOw0KICAgICAgICAgICAgICAgIHNlbGVjdC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChzZWxlY3QpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiZXBnU291cmNlIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmVwZ1NvdXJjZS50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIHRleHQgPSBbIlBNUyIsICJYRVBHIl07DQogICAgICAgICAgICAgICAgdmFyIHZhbHVlcyA9IFsiUE1TIiwgIlhFUEciXTsNCiAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCBkYXRhLCBzZXR0aW5nc0tleSk7DQogICAgICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKHNlbGVjdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJiYWNrdXAua2VlcCI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5iYWNrdXBLZWVwLnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgdGV4dCA9IFsiNSIsICIxMCIsICIyMCIsICIzMCIsICI0MCIsICI1MCJdOw0KICAgICAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBbIjUiLCAiMTAiLCAiMjAiLCAiMzAiLCAiNDAiLCAiNTAiXTsNCiAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCBkYXRhLCBzZXR0aW5nc0tleSk7DQogICAgICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKHNlbGVjdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJidWZmZXIuc2l6ZS5rYiI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5idWZmZXJTaXplLnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgdGV4dCA9IFsiMC41IE1CIiwgIjEgTUIiLCAiMiBNQiIsICIzIE1CIiwgIjQgTUIiLCAiNSBNQiIsICI2IE1CIiwgIjcgTUIiLCAiOCBNQiJdOw0KICAgICAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBbIjUxMiIsICIxMDI0IiwgIjIwNDgiLCAiMzA3MiIsICI0MDk2IiwgIjUxMjAiLCAiNjE0NCIsICI3MTY4IiwgIjgxOTIiXTsNCiAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCBkYXRhLCBzZXR0aW5nc0tleSk7DQogICAgICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKHNlbGVjdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJidWZmZXIiOg0KICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3Muc3RyZWFtQnVmZmVyaW5nLnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgdGV4dCA9IFsie3suc2V0dGluZ3Muc3RyZWFtQnVmZmVyaW5nLmluZm9fZmFsc2V9fSIsICJ4VGVWZTogKHt7LnNldHRpbmdzLnN0cmVhbUJ1ZmZlcmluZy5pbmZvX3h0ZXZlfX0pIiwgIkZGbXBlZzogKHt7LnNldHRpbmdzLnN0cmVhbUJ1ZmZlcmluZy5pbmZvX2ZmbXBlZ319KSIsICJWTEM6ICh7ey5zZXR0aW5ncy5zdHJlYW1CdWZmZXJpbmcuaW5mb192bGN9fSkiXTsNCiAgICAgICAgICAgICAgICB2YXIgdmFsdWVzID0gWyItIiwgInh0ZXZlIiwgImZmbXBlZyIsICJ2bGMiXTsNCiAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCBkYXRhLCBzZXR0aW5nc0tleSk7DQogICAgICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKHNlbGVjdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ1ZHB4eSI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy51ZHB4eS50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsICJ1ZHB4eSIsIGRhdGEpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3suc2V0dGluZ3MudWRweHkucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgfQ0KICAgICAgICByZXR1cm4gc2V0dGluZzsNCiAgICB9DQogICAgY3JlYXRlRGVzY3JpcHRpb24oc2V0dGluZ3NLZXkpIHsNCiAgICAgICAgdmFyIGRlc2NyaXB0aW9uID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVFIiKTsNCiAgICAgICAgdmFyIHRleHQ7DQogICAgICAgIHN3aXRjaCAoc2V0dGluZ3NLZXkpIHsNCiAgICAgICAgICAgIGNhc2UgInRsc01vZGUiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MudGxzTW9kZS5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImF1dGhlbnRpY2F0aW9uLndlYiI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5hdXRoZW50aWNhdGlvbldFQi5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImF1dGhlbnRpY2F0aW9uLm0zdSI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5hdXRoZW50aWNhdGlvbk0zVS5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImF1dGhlbnRpY2F0aW9uLnBtcyI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5hdXRoZW50aWNhdGlvblBNUy5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImF1dGhlbnRpY2F0aW9uLnhtbCI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5hdXRoZW50aWNhdGlvblhNTC5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImF1dGhlbnRpY2F0aW9uLmFwaSI6DQogICAgICAgICAgICAgICAgaWYgKFNFUlZFUlsic2V0dGluZ3MiXVsiYXV0aGVudGljYXRpb24ud2ViIl0gPT0gdHJ1ZSkgew0KICAgICAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLmF1dGhlbnRpY2F0aW9uQVBJLmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInh0ZXZlQXV0b1VwZGF0ZSI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy54dGV2ZUF1dG9VcGRhdGUuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJiYWNrdXAua2VlcCI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5iYWNrdXBLZWVwLmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiYmFja3VwLnBhdGgiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MuYmFja3VwUGF0aC5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInRlbXAucGF0aCI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy50ZW1wUGF0aC5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImJ1ZmZlciI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5zdHJlYW1CdWZmZXJpbmcuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJidWZmZXIuc2l6ZS5rYiI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5idWZmZXJTaXplLmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAic3RvcmVCdWZmZXJJblJBTSI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5zdG9yZUJ1ZmZlckluUkFNLmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiYnVmZmVyLnRpbWVvdXQiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MuYnVmZmVyVGltZW91dC5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInVzZXIuYWdlbnQiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MudXNlckFnZW50LmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiZmZtcGVnLnBhdGgiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MuZmZtcGVnUGF0aC5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImZmbXBlZy5vcHRpb25zIjoNCiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLmZmbXBlZ09wdGlvbnMuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ2bGMucGF0aCI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy52bGNQYXRoLmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAidmxjLm9wdGlvbnMiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MudmxjT3B0aW9ucy5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImVwZ1NvdXJjZSI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5lcGdTb3VyY2UuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJob3N0SVAiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MuaG9zdElQLmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAidHVuZXIiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MudHVuZXIuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ1cGRhdGUiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MudXBkYXRlLmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiYXBpIjoNCiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLmFwaS5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImZpbGVzLnVwZGF0ZSI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5maWxlc1VwZGF0ZS5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImNhY2hlLmltYWdlcyI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5jYWNoZUltYWdlcy5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInhlcGcucmVwbGFjZS5taXNzaW5nLmltYWdlcyI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5yZXBsYWNlRW1wdHlJbWFnZXMuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ1ZHB4eSI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy51ZHB4eS5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICAgICAgdGV4dCA9ICIiOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICB9DQogICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gIiI7DQogICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgdmFyIHByZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlBSRSIpOw0KICAgICAgICBwcmUuaW5uZXJIVE1MID0gdGV4dDsNCiAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChwcmUpOw0KICAgICAgICBkZXNjcmlwdGlvbi5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICBkZXNjcmlwdGlvbi5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgcmV0dXJuIGRlc2NyaXB0aW9uOw0KICAgIH0NCn0NCmNsYXNzIFNldHRpbmdzQ2F0ZWdvcnlJdGVtIGV4dGVuZHMgU2V0dGluZ3NDYXRlZ29yeSB7DQogICAgY29uc3RydWN0b3IoaGVhZGxpbmUsIHNldHRpbmdzS2V5cykgew0KICAgICAgICBzdXBlcigpOw0KICAgICAgICB0aGlzLmhlYWRsaW5lID0gaGVhZGxpbmU7DQogICAgICAgIHRoaXMuc2V0dGluZ3NLZXlzID0gc2V0dGluZ3NLZXlzOw0KICAgIH0NCiAgICBjcmVhdGVDYXRlZ29yeSgpIHsNCiAgICAgICAgdmFyIGhlYWRsaW5lID0gdGhpcy5jcmVhdGVDYXRlZ29yeUhlYWRsaW5lKHRoaXMuaGVhZGxpbmUpOw0KICAgICAgICB2YXIgc2V0dGluZ3NLZXlzID0gdGhpcy5zZXR0aW5nc0tleXM7DQogICAgICAgIHZhciBkb2MgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCh0aGlzLkRvY3VtZW50SUQpOw0KICAgICAgICBkb2MuYXBwZW5kQ2hpbGQoaGVhZGxpbmUpOw0KICAgICAgICAvLyBDcmVhdGUgYSB0YWJsZSBmb3IgdGhlIGNhdGVnb3J5DQogICAgICAgIHZhciB0YWJsZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlRBQkxFIik7DQogICAgICAgIHZhciBrZXlzID0gc2V0dGluZ3NLZXlzLnNwbGl0KCIsIik7DQogICAgICAgIGtleXMuZm9yRWFjaChzZXR0aW5nc0tleSA9PiB7DQogICAgICAgICAgICBzd2l0Y2ggKHNldHRpbmdzS2V5KSB7DQogICAgICAgICAgICAgICAgY2FzZSAiYXV0aGVudGljYXRpb24ucG1zIjoNCiAgICAgICAgICAgICAgICBjYXNlICJhdXRoZW50aWNhdGlvbi5tM3UiOg0KICAgICAgICAgICAgICAgIGNhc2UgImF1dGhlbnRpY2F0aW9uLnhtbCI6DQogICAgICAgICAgICAgICAgY2FzZSAiYXV0aGVudGljYXRpb24uYXBpIjoNCiAgICAgICAgICAgICAgICAgICAgaWYgKFNFUlZFUlsic2V0dGluZ3MiXVsiYXV0aGVudGljYXRpb24ud2ViIl0gPT0gZmFsc2UpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgICAgICAgICAgdmFyIGl0ZW0gPSB0aGlzLmNyZWF0ZVNldHRpbmdzKHNldHRpbmdzS2V5KTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGRlc2NyaXB0aW9uID0gdGhpcy5jcmVhdGVEZXNjcmlwdGlvbihzZXR0aW5nc0tleSk7DQogICAgICAgICAgICAgICAgICAgIHRhYmxlLmFwcGVuZENoaWxkKGl0ZW0pOw0KICAgICAgICAgICAgICAgICAgICB0YWJsZS5hcHBlbmRDaGlsZChkZXNjcmlwdGlvbik7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9KTsNCiAgICAgICAgZG9jLmFwcGVuZENoaWxkKHRhYmxlKTsNCiAgICAgICAgZG9jLmFwcGVuZENoaWxkKHRoaXMuY3JlYXRlSFIoKSk7DQogICAgfQ0KfQ0KZnVuY3Rpb24gc2hvd1NldHRpbmdzKCkgew0KICAgIGZvciAobGV0IGkgPSAwOyBpIDwgc2V0dGluZ3NDYXRlZ29yeS5sZW5ndGg7IGkrKykgew0KICAgICAgICBzZXR0aW5nc0NhdGVnb3J5W2ldLmNyZWF0ZUNhdGVnb3J5KCk7DQogICAgfQ0KfQ0KZnVuY3Rpb24gc2F2ZVNldHRpbmdzKCkgew0KICAgIHZhciBjbWQgPSAic2F2ZVNldHRpbmdzIjsNCiAgICB2YXIgZGl2ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnRlbnRfc2V0dGluZ3MiKTsNCiAgICB2YXIgc2V0dGluZ3MgPSBkaXYuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSgiY2hhbmdlZCIpOw0KICAgIHZhciBuZXdTZXR0aW5ncyA9IG5ldyBPYmplY3QoKTsNCiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHNldHRpbmdzLmxlbmd0aDsgaSsrKSB7DQogICAgICAgIHZhciBuYW1lOw0KICAgICAgICB2YXIgdmFsdWU7DQogICAgICAgIHN3aXRjaCAoc2V0dGluZ3NbaV0udGFnTmFtZSkgew0KICAgICAgICAgICAgY2FzZSAiSU5QVVQiOg0KICAgICAgICAgICAgICAgIHN3aXRjaCAoc2V0dGluZ3NbaV0udHlwZSkgew0KICAgICAgICAgICAgICAgICAgICBjYXNlICJjaGVja2JveCI6DQogICAgICAgICAgICAgICAgICAgICAgICBuYW1lID0gc2V0dGluZ3NbaV0ubmFtZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlID0gc2V0dGluZ3NbaV0uY2hlY2tlZDsNCiAgICAgICAgICAgICAgICAgICAgICAgIG5ld1NldHRpbmdzW25hbWVdID0gdmFsdWU7DQogICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICAgICAgY2FzZSAidGV4dCI6DQogICAgICAgICAgICAgICAgICAgICAgICBuYW1lID0gc2V0dGluZ3NbaV0ubmFtZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlID0gc2V0dGluZ3NbaV0udmFsdWU7DQogICAgICAgICAgICAgICAgICAgICAgICBzd2l0Y2ggKG5hbWUpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYXNlICJ1cGRhdGUiOg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IHZhbHVlLnNwbGl0KCIsIik7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlID0gdmFsdWUuZmlsdGVyKGZ1bmN0aW9uIChlKSB7IHJldHVybiBlOyB9KTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAiYnVmZmVyLnRpbWVvdXQiOg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IHBhcnNlRmxvYXQodmFsdWUpOw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgbmV3U2V0dGluZ3NbbmFtZV0gPSB2YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgIlNFTEVDVCI6DQogICAgICAgICAgICAgICAgbmFtZSA9IHNldHRpbmdzW2ldLm5hbWU7DQogICAgICAgICAgICAgICAgdmFsdWUgPSBzZXR0aW5nc1tpXS52YWx1ZTsNCiAgICAgICAgICAgICAgICAvLyBJZiB0aGUgdmFsdWUgaXMgYSBudW1iZXIsIHN0b3JlIGl0IGFzIGEgbnVtYmVyDQogICAgICAgICAgICAgICAgaWYgKGlzTmFOKHZhbHVlKSkgew0KICAgICAgICAgICAgICAgICAgICBuZXdTZXR0aW5nc1tuYW1lXSA9IHZhbHVlOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICAgICAgbmV3U2V0dGluZ3NbbmFtZV0gPSBwYXJzZUludCh2YWx1ZSk7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICB9DQogICAgfQ0KICAgIHZhciBkYXRhID0gbmV3IE9iamVjdCgpOw0KICAgIGRhdGFbInNldHRpbmdzIl0gPSBuZXdTZXR0aW5nczsNCiAgICB2YXIgc2VydmVyID0gbmV3IFNlcnZlcihjbWQpOw0KICAgIHNlcnZlci5yZXF1ZXN0KGRhdGEpOw0KfQ0K" - webUI["html/lang/en.json"] = "ew0KICAibWFpbk1lbnUiOg0KICB7DQogICAgIml0ZW0iOg0KICAgIHsNCiAgICAgICJwbGF5bGlzdCI6ICJQbGF5bGlzdCIsDQogICAgICAicG1zSUQiOiAiUE1TIElEIiwNCiAgICAgICJmaWx0ZXIiOiAiRmlsdGVyIiwNCiAgICAgICJ4bWx0diI6ICJYTUxUViIsDQogICAgICAibWFwcGluZyI6ICJNYXBwaW5nIiwNCiAgICAgICJ1c2VycyI6ICJVc2VycyIsDQogICAgICAic2V0dGluZ3MiOiAiU2V0dGluZ3MiLA0KICAgICAgImxvZyI6ICJMb2ciLA0KICAgICAgImxvZ291dCI6ICJMb2dvdXQiDQogICAgfSwNCiAgICAiaGVhZGxpbmUiOg0KICAgIHsNCiAgICAgICJwbGF5bGlzdCI6ICJMb2NhbCBvciByZW1vdGUgcGxheWxpc3RzIiwNCiAgICAgICJmaWx0ZXIiOiAiRmlsdGVyIHBsYXlsaXN0IiwNCiAgICAgICJ4bWx0diI6ICJMb2NhbCBvciByZW1vdGUgWE1MVFYgZmlsZXMiLA0KICAgICAgIm1hcHBpbmciOiAiTWFwIHBsYXlsaXN0IGNoYW5uZWxzIHRvIEVQRyBjaGFubmVscyIsDQogICAgICAidXNlcnMiOiAiVXNlciBtYW5hZ2VtZW50IiwNCiAgICAgICJzZXR0aW5ncyI6ICJTZXR0aW5ncyIsDQogICAgICAibG9nIjogIkxvZyIsDQogICAgICAibG9nb3V0IjogIkxvZ291dCINCiAgICB9DQogIH0sDQogICJjb25maXJtIjoNCiAgew0KICAgICJyZXN0b3JlIjogIkFsbCBkYXRhIHdpbGwgYmUgcmVwbGFjZWQgd2l0aCB0aG9zZSBmcm9tIHRoZSBiYWNrdXAuIFNob3VsZCB0aGUgZmlsZXMgYmUgcmVzdG9yZWQ/Ig0KICB9LA0KICAiYWxlcnQiOg0KICB7DQogICAgImZpbGVMb2FkaW5nRXJyb3IiOiAiRmlsZSBjb3VsZG4ndCBiZSBsb2FkZWQiLA0KICAgICJpbnZhbGlkQ2hhbm5lbE51bWJlciI6ICJJbnZhbGlkIGNoYW5uZWwgbnVtYmVyIiwNCiAgICAibWlzc2luZ0lucHV0IjogIk1pc3NpbmcgaW5wdXQiDQogIH0sDQogICJidXR0b24iOg0KICB7DQogICAgImJhY2siOiAiQmFjayIsDQogICAgImJhY2t1cCI6ICJCYWNrdXAiLA0KICAgICJidWxrRWRpdCI6ICJCdWxrIEVkaXQiLA0KICAgICJjYW5jZWwiOiAiQ2FuY2VsIiwNCiAgICAiZGVsZXRlIjogIkRlbGV0ZSIsDQogICAgImRvbmUiOiAiRG9uZSIsDQogICAgImxvZ2luIjogIkxvZ2luIiwNCiAgICAibmV3IjogIk5ldyIsDQogICAgIm5leHQiOiAiTmV4dCIsDQogICAgInJlc3RvcmUiOiAiUmVzdG9yZSIsDQogICAgInNhdmUiOiAiU2F2ZSIsDQogICAgInNlYXJjaCI6ICJTZWFyY2giLA0KICAgICJ1cGRhdGUiOiAiVXBkYXRlIiwNCiAgICAiY3JhZXRlQWNjb3VudCI6ICJDcmVhdGUgQWNjb3VudCIsDQogICAgInJlc2V0TG9ncyI6ICJSZXNldCBMb2dzIiwNCiAgICAidXBsb2FkTG9nbyI6ICJVcGxvYWQgTG9nbyINCiAgfSwNCiAgImZpbHRlciI6DQogIHsNCiAgICAidGFibGUiOg0KICAgIHsNCiAgICAgICJzdGFydGluZ0NoYW5uZWwiOiAiU3RhcnRpbmcgQ2guIE5vLiIsDQogICAgICAibmFtZSI6ICJGaWx0ZXIgTmFtZSIsDQogICAgICAidHlwZSI6ICJGaWx0ZXIgVHlwZSIsDQogICAgICAiZmlsdGVyIjogIkZpbHRlciINCiAgICB9LA0KICAgICJjdXN0b20iOiAiQ3VzdG9tIiwNCiAgICAiZ3JvdXAiOiAiTTNVIEdyb3VwIiwNCiAgICAibmFtZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIkZpbHRlciBOYW1lIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJGaWx0ZXIgbmFtZSIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgImRlc2NyaXB0aW9uIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiRGVzY3JpcHRpb24iLA0KICAgICAgInBsYWNlaG9sZGVyIjogIkRlc2NyaXB0aW9uIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAidHlwZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIlR5cGUiLA0KICAgICAgImdyb3VwVGl0bGUiOiAiR3JvdXAgVGl0bGUiLA0KICAgICAgImN1c3RvbUZpbHRlciI6ICJDdXN0b20gRmlsdGVyIg0KICAgIH0sDQogICAgImNhc2VTZW5zaXRpdmUiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJDYXNlIFNlbnNpdGl2ZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAiZmlsdGVyUnVsZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIkZpbHRlciBSdWxlIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJTcG9ydCB7SER9ICF7RVMsSVR9IiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAiZmlsdGVyR3JvdXAiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJHcm91cCBUaXRsZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJTZWxlY3QgYSBNM1UgZ3JvdXAuIChDb3VudGVyKTxicj5DaGFuZ2luZyB0aGUgZ3JvdXAgdGl0bGUgaW4gdGhlIE0zVSBpbnZhbGlkYXRlcyB0aGUgZmlsdGVyLiINCiAgICB9LA0KICAgICJpbmNsdWRlIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiSW5jbHVkZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiRkhELFVIRCIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiQ2hhbm5lbCBuYW1lIG11c3QgaW5jbHVkZS48YnI+KENvbW1hIHNlcGFyYXRlZCkgQ29tbWEgbWVhbnMgb3IiDQogICAgfSwNCiAgICAiZXhjbHVkZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIkV4Y2x1ZGUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIkVTLElUIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJDaGFubmVsIG5hbWUgbXVzdCBub3QgY29udGFpbi48YnI+KENvbW1hIHNlcGFyYXRlZCkgQ29tbWEgbWVhbnMgb3IiDQogICAgfSwNCiAgICAicHJlc2VydmVNYXBwaW5nIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiUHJlc2VydmUgRXhpc3RpbmcgTTNVPGJyPkNoYW5uZWwgTnVtYmVycyIsDQogICAgICAicGFsY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJQcmVzZXJ2ZSBleGlzdGluZyBNM1UgcGxheWxpc3QgY2hhbm5lbCBudW1iZXJzPyINCiAgICB9LA0KICAgICJzdGFydGluZ0NoYW5uZWwiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJTdGFydGluZyBDaGFubmVsIE51bWJlciIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAiZGVmYXVsdE1pc3NpbmdFUEciOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJGaWxsIE1pc3NpbmcgRVBHIERhdGEiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiV2hlbiB0aGVyZSBpcyBubyBtYXRjaGluZyBFUEcgZGF0YSBmb3IgY2hhbm5lbCwgPGJyPmF1dG9maWxsIHdpdGggeFRlVmUgZHVtbXkgRVBHIGRhdGE/Ig0KICAgIH0NCg0KICB9LA0KICAicGxheWxpc3QiOg0KICB7DQogICAgInRhYmxlIjoNCiAgICB7DQogICAgICAicGxheWxpc3QiOiAiUGxheWxpc3QiLA0KICAgICAgInR1bmVyIjogIlR1bmVyIiwNCiAgICAgICJsYXN0VXBkYXRlIjogIkxhc3QgVXBkYXRlIiwNCiAgICAgICJhdmFpbGFiaWxpdHkiOiAiQXZhaWxhYmlsaXR5IiwNCiAgICAgICJ0eXBlIjogIlR5cGUiLA0KICAgICAgInN0cmVhbXMiOiAiU3RyZWFtcyIsDQogICAgICAiZ3JvdXBUaXRsZSI6ICJncm91cC10aXRsZSIsDQogICAgICAidHZnSUQiOiAidHZnLWlkIiwNCiAgICAgICJ1bmlxdWVJRCI6ICJVbmlxdWUgSUQiDQogICAgfSwNCiAgICAicGxheWxpc3RUeXBlIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiUGxheWxpc3QgdHlwZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAidHlwZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIlR5cGUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgIm5hbWUiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJOYW1lIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJQbGF5bGlzdCBuYW1lIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAiZGVzY3JpcHRpb24iOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJEZXNjcmlwdGlvbiIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiRGVzY3JpcHRpb24iLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJmaWxlTTNVIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiTTNVIEZpbGUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIkZpbGUgcGF0aCBvciBVUkwgb2YgdGhlIE0zVSIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgImZpbGVIREhSIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiSERIb21lUnVuIElQIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJJUCBhZGRyZXNzIGFuZCBwb3J0ICgxOTIuMTY4LjEuMTA6NTAwNCkiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJ0dW5lciI6DQogICAgew0KICAgICAgInRpdGxlIjogIlR1bmVyIC8gU3RyZWFtcyIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJOdW1iZXIgb2YgcGFyYWxsZWwgY29ubmVjdGlvbnMgdGhhdCBjYW4gYmUgZXN0YWJsaXNoZWQgdG8gdGhlIHByb3ZpZGVyLiA8YnI+T25seSBhdmFpbGFibGUgd2l0aCBhY3RpdmF0ZWQgYnVmZmVyLjxicj5OZXcgc2V0dGluZ3Mgd2lsbCBvbmx5IGJlIGFwcGxpZWQgYWZ0ZXIgcXVpdHRpbmcgYWxsIHN0cmVhbXMuIg0KICAgIH0NCiAgfSwNCiAgInhtbHR2IjoNCiAgew0KICAgICJ0YWJsZSI6DQogICAgew0KICAgICAgImd1aWRlIjogIkd1aWRlIiwNCiAgICAgICJsYXN0VXBkYXRlIjogIkxhc3QgVXBkYXRlIiwNCiAgICAgICJhdmFpbGFiaWxpdHkiOiAiQXZhaWxhYmlsaXR5IiwNCiAgICAgICJjaGFubmVscyI6ICJDaGFubmVscyIsDQogICAgICAicHJvZ3JhbXMiOiAiUHJvZ3JhbXMiDQogICAgfSwNCiAgICAibmFtZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIk5hbWUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIkd1aWRlIG5hbWUiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJkZXNjcmlwdGlvbiI6DQogICAgew0KICAgICAgInRpdGxlIjogIkRlc2NyaXB0aW9uIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJEZXNjcmlwdGlvbiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgImZpbGVYTUxUViI6DQogICAgew0KICAgICAgInRpdGxlIjogIlhNTFRWIEZpbGUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIkZpbGUgcGF0aCBvciBVUkwgb2YgdGhlIFhNTFRWIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfQ0KICB9LA0KICAibWFwcGluZyI6DQogIHsNCiAgICAidGFibGUiOg0KICAgIHsNCiAgICAgICJjaE5vIjogIkNoLiBOby4iLA0KICAgICAgImxvZ28iOiAiTG9nbyIsDQogICAgICAiY2hhbm5lbE5hbWUiOiAiQ2hhbm5lbCBOYW1lIiwNCiAgICAgICJ1cGRhdGVDaGFubmVsTmFtZVJlZ2V4IjogIlVwZC4gUnguIiwNCiAgICAgICJwbGF5bGlzdCI6ICJQbGF5bGlzdCIsDQogICAgICAiZ3JvdXBUaXRsZSI6ICJHcm91cCBUaXRsZSIsDQogICAgICAieG1sdHZGaWxlIjogIlhNTFRWIEZpbGUiLA0KICAgICAgInhtbHR2SUQiOiAiWE1MVFYgSUQiLA0KICAgICAgInRpbWVzaGlmdCI6ICJUaW1lc2hpZnQiDQogICAgfSwNCiAgICAiYWN0aXZlIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiQWN0aXZlIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJjaGFubmVsTmFtZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIkNoYW5uZWwgTmFtZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAiZGVzY3JpcHRpb24iOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJDaGFubmVsIERlc2NyaXB0aW9uIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJVc2VkIGJ5IHRoZSBEdW1teSBhcyBhbiBYTUwgZGVzY3JpcHRpb24iLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJ1cGRhdGVDaGFubmVsTmFtZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIlVwZGF0ZSBDaGFubmVsIE5hbWUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgInVwZGF0ZUNoYW5uZWxOYW1lUmVnZXgiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJDaGFubmVsIG5hbWUgdXBkYXRlIHJlZ2V4IiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJGb3IgZXhhbXBsZSBeUFBWLj8xLioiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIk9uIHVwZGF0ZSwgaWYgYW55IG5ldyBjaGFubmVsIG5hbWUgbWF0Y2hlcyB0aGlzIHJlZ2V4LCByZW5hbWUgY3VycmVudCBjaGFubmVsIHRvIHRoZSBmaXJzdCBtYXRjaGluZyBuYW1lIg0KICAgIH0sDQogICAgInVwZGF0ZUNoYW5uZWxOYW1lQnlHcm91cFJlZ2V4IjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiT25seSBieSBncm91cCByZWdleCIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJSZW5hbWUgdGhpcyBjaGFubmVsIG9ubHkgaWYgY3VycmVudCB1c2VyLWRlZmluZWQgZ3JvdXAgbWF0Y2hlcyB0aGlzIHJlZ2V4Ig0KICAgIH0sDQogICAgInVwZGF0ZUNoYW5uZWxHcm91cCI6DQogICAgew0KICAgICAgInRpdGxlIjogIlVwZGF0ZSBDaGFubmVsIEdyb3VwIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIklmIGNoZWNrZWQsIHVzZSBncm91cCBmcm9tIHRoZSBkYXRhYmFzZSINCiAgICB9LA0KICAgICJjaGFubmVsTG9nbyI6DQogICAgew0KICAgICAgInRpdGxlIjogIkxvZ28gVVJMIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJ1cGRhdGVDaGFubmVsTG9nbyI6DQogICAgew0KICAgICAgInRpdGxlIjogIlVwZGF0ZSBDaGFubmVsIExvZ28iLA0KICAgICAgInBsYWNlaG9sZGVyIjogIiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgImVwZ0NhdGVnb3J5IjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiRVBHIENhdGVnb3J5IiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJtM3VHcm91cFRpdGxlIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiR3JvdXAgVGl0bGUgKHh0ZXZlLm0zdSkiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgInhtbHR2RmlsZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIlhNTFRWIEZpbGUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgInhtbHR2Q2hhbm5lbCI6DQogICAgew0KICAgICAgInRpdGxlIjogIlhNTFRWIENoYW5uZWwiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgInRpbWVzaGlmdCI6DQogICAgew0KICAgICAgInRpdGxlIjogIlRpbWVzaGlmdCIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiMCIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0NCiAgfSwNCiAgInVzZXJzIjoNCiAgew0KICAgICJ0YWJsZSI6DQogICAgew0KICAgICAgInVzZXJuYW1lIjogIlVzZXJuYW1lIiwNCiAgICAgICJwYXNzd29yZCI6ICJQYXNzd29yZCIsDQogICAgICAid2ViIjogIldFQiIsDQogICAgICAicG1zIjogIlBNUyIsDQogICAgICAibTN1IjogIk0zVSIsDQogICAgICAieG1sIjogIlhNTCIsDQogICAgICAiYXBpIjogIkFQSSINCiAgICB9LA0KICAgICJ1c2VybmFtZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIlVzZXJuYW1lIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJVc2VybmFtZSIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgInBhc3N3b3JkIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiUGFzc3dvcmQiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIlBhc3N3b3JkIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAiY29uZmlybSI6DQogICAgew0KICAgICAgInRpdGxlIjogIkNvbmZpcm0iLA0KICAgICAgInBsYWNlaG9sZGVyIjogIlBhc3N3b3JkIGNvbmZpcm0iLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJ3ZWIiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJXZWIgQWNjZXNzIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJwbXMiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJQTVMgQWNjZXNzIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJtM3UiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJNM1UgQWNjZXNzIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJ4bWwiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJYTUwgQWNjZXNzIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJhcGkiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJBUEkgQWNjZXNzIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9DQogIH0sDQogICJzZXR0aW5ncyI6DQogIHsNCiAgICAiY2F0ZWdvcnkiOg0KICAgIHsNCiAgICAgICJnZW5lcmFsIjogIkdlbmVyYWwiLA0KICAgICAgImZpbGVzIjogIkZpbGVzIiwNCiAgICAgICJzdHJlYW1pbmciOiAiU3RyZWFtaW5nIiwNCiAgICAgICJiYWNrdXAiOiAiQmFja3VwIiwNCiAgICAgICJhdXRoZW50aWNhdGlvbiI6ICJBdXRoZW50aWNhdGlvbiINCiAgICB9LA0KICAgICJ1cGRhdGUiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJTY2hlZHVsZSBmb3IgdXBkYXRpbmcgKFBsYXlsaXN0LCBYTUxUViwgQmFja3VwKSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiMDAwMCwxMDAwLDIwMDAiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIlRpbWUgaW4gMjQgaG91ciBmb3JtYXQgKDA4MDAgPSA4OjAwIGFtKS4gTW9yZSB0aW1lcyBjYW4gYmUgZW50ZXJlZCBjb21tYSBzZXBhcmF0ZWQuIExlYXZlIHRoaXMgZmllbGQgZW1wdHkgaWYgbm8gdXBkYXRlcyBhcmUgdG8gYmUgY2FycmllZCBvdXQuIg0KICAgIH0sDQogICAgImFwaSI6DQogICAgew0KICAgICAgInRpdGxlIjogIkFQSSBJbnRlcmZhY2UiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIlZpYSBBUEkgaW50ZXJmYWNlIGl0IGlzIHBvc3NpYmxlIHRvIHNlbmQgY29tbWFuZHMgdG8geFRlVmUuIEFQSSBkb2N1bWVudGF0aW9uIGlzIDxhIGhyZWY9J2h0dHBzOi8vZ2l0aHViLmNvbS94dGV2ZS1wcm9qZWN0L3hUZVZlLURvY3VtZW50YXRpb24vYmxvYi9tYXN0ZXIvZW4vY29uZmlndXJhdGlvbi5tZCNhcGknPmhlcmU8L2E+Ig0KICAgIH0sDQogICAgImVwZ1NvdXJjZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIkVQRyBTb3VyY2UiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIlBNUzo8YnI+LSBVc2UgRVBHIGRhdGEgZnJvbSBQbGV4IG9yIEVtYnkgPGJyPjxicj5YRVBHOjxicj4tIFVzZSBvZiBvbmUgb3IgbW9yZSBYTUxUViBmaWxlczxicj4tIENoYW5uZWwgbWFuYWdlbWVudDxicj4tIE0zVSAvIFhNTFRWIGV4cG9ydCAoSFRUUCBsaW5rIGZvciBJUFRWIGFwcHMpIg0KICAgIH0sDQogICAgInR1bmVyIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiTnVtYmVyIG9mIFR1bmVycyIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiTnVtYmVyIG9mIHBhcmFsbGVsIGNvbm5lY3Rpb25zIHRoYXQgY2FuIGJlIGVzdGFibGlzaGVkIHRvIHRoZSBwcm92aWRlci48YnI+QXZhaWxhYmxlIGZvcjogUGxleCwgRW1ieSAoSERIUiksIE0zVSAod2l0aCBhY3RpdmUgYnVmZmVyKS48YnI+QWZ0ZXIgYSBjaGFuZ2UsIHhUZVZlIG11c3QgYmUgZGVsZXRlIGluIHRoZSBQbGV4IC8gRW1ieSBEVlIgc2V0dGluZ3MgYW5kIHNldCB1cCBhZ2Fpbi4iDQogICAgfSwNCiAgICAiaG9zdElQIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiSG9zdCBJUCIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiSVAgYWRkcmVzcyB4VGVWZSB3aWxsIHVzZSB0byBmb3JtIE0zVSBhbmQgWE1MVFYgZmlsZXMiDQogICAgfSwNCiAgICAidGxzTW9kZSI6IHsNCiAgICAgICJ0aXRsZSI6ICJUTFMgKEhUVFBTKSBtb2RlIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJDaGFuZ2VzIHdlYiBzZXJ2ZXIgcHJvdG9jb2wgdG8gSFRUUFMuPGJyPkZvciBkZXRhaWxzLCBzZWUgPGE+aHR0cHM6Ly9naXRodWIuY29tL1NDUDAwMi94VGVWZSN0bHMtbW9kZTwvYT4iDQogICAgfSwNCiAgICAiZmlsZXNVcGRhdGUiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJVcGRhdGVzIGFsbCBmaWxlcyBhdCBzdGFydHVwIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJVcGRhdGVzIGFsbCBwbGF5bGlzdHMsIHR1bmVyIGFuZCBYTUxUViBmaWxlcyBhdCBzdGFydHVwLiINCiAgICB9LA0KICAgICJjYWNoZUltYWdlcyI6DQogICAgew0KICAgICAgInRpdGxlIjogIkltYWdlIENhY2hpbmciLA0KICAgICAgImRlc2NyaXB0aW9uIjogIkFsbCBpbWFnZXMgZnJvbSB0aGUgWE1MVFYgZmlsZSBhcmUgY2FjaGVkLCBhbGxvd2luZyBmYXN0ZXIgcmVuZGVyaW5nIG9mIHRoZSBncmlkIGluIHRoZSBjbGllbnQuPGJyPkRvd25sb2FkaW5nIHRoZSBpbWFnZXMgbWF5IHRha2UgYSB3aGlsZSBhbmQgd2lsbCBiZSBkb25lIGluIHRoZSBiYWNrZ3JvdW5kLiINCiAgICB9LA0KICAgICJyZXBsYWNlRW1wdHlJbWFnZXMiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJSZXBsYWNlIG1pc3NpbmcgcHJvZ3JhbSBpbWFnZXMiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIklmIHRoZSBwb3N0ZXIgaW4gdGhlIFhNTFRWIHByb2dyYW0gaXMgbWlzc2luZywgdGhlIGNoYW5uZWwgbG9nbyB3aWxsIGJlIHVzZWQuIg0KICAgIH0sDQogICAgInh0ZXZlQXV0b1VwZGF0ZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIkF1dG9tYXRpYyB1cGRhdGUgb2YgeFRlVmUiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIklmIGEgbmV3IHZlcnNpb24gb2YgeFRlVmUgaXMgYXZhaWxhYmxlLCBpdCB3aWxsIGJlIGF1dG9tYXRpY2FsbHkgaW5zdGFsbGVkLiBUaGUgdXBkYXRlcyBhcmUgZG93bmxvYWRlZCBmcm9tIEdpdEh1Yi4iDQogICAgfSwNCiAgICAic3RyZWFtQnVmZmVyaW5nIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiU3RyZWFtIEJ1ZmZlciIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiRnVuY3Rpb25zIG9mIHRoZSBidWZmZXI6PGJyPi0gVGhlIHN0cmVhbSBpcyBwYXNzZWQgZnJvbSB4VGVWZSwgRkZtcGVnIG9yIFZMQyB0byBQbGV4LCBFbWJ5IG9yIE0zVSBQbGF5ZXI8YnI+LSBTbWFsbCBqZXJraW5nIG9mIHRoZSBzdHJlYW1zIGNhbiBiZSBjb21wZW5zYXRlZDxicj4tIEhMUyAvIE0zVTggc3VwcG9ydDxicj4tIFJUUCAvIFJUUFMgc3VwcG9ydCAob25seSBGRm1wZWcgb3IgVkxDKTxicj4tIFJlLXN0cmVhbWluZzxicj4tIFNlcGFyYXRlIHR1bmVyIGxpbWl0IGZvciBlYWNoIHBsYXlsaXN0IiwNCiAgICAgICJpbmZvX2ZhbHNlIjogIk5vIEJ1ZmZlciAoQ2xpZW50IGNvbm5lY3RzIHRvIHRoZSBzdHJlYW1pbmcgc2VydmVyKSIsDQogICAgICAiaW5mb194dGV2ZSI6ICJ4VGVWZSBjb25uZWN0cyB0byB0aGUgc3RyZWFtaW5nIHNlcnZlciIsDQogICAgICAiaW5mb19mZm1wZWciOiAiRkZtcGVnIGNvbm5lY3RzIHRvIHRoZSBzdHJlYW1pbmcgc2VydmVyIiwNCiAgICAgICJpbmZvX3ZsYyI6ICJWTEMgY29ubmVjdHMgdG8gdGhlIHN0cmVhbWluZyBzZXJ2ZXIiDQoNCiAgICB9LA0KICAgICJ1ZHB4eSI6DQogICAgew0KICAgICAgInRpdGxlIjogIlVEUHh5IGFkZHJlc3MiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIlRoZSBhZGRyZXNzIG9mIHlvdXIgVURQeHkgc2VydmVyLiBJZiBzZXQsIGFuZCB0aGUgY2hhbm5lbCBVUkxzIGluIHRoZSBtM3UgaXMgbXVsdGljYXN0LCB4VGVWZSB3aWxsIHJld3JpdGUgaXQgc28gdGhhdCBpdCBpcyBhY2Nlc3NlZCB2aWEgdGhlIFVEUHh5IHNlcnZpY2UuIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJob3N0OnBvcnQiDQogICAgfSwNCiAgICAiZmZtcGVnUGF0aCI6DQogICAgew0KICAgICAgInRpdGxlIjogIkZGbXBlZyBCaW5hcnkgUGF0aCIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiUGF0aCB0byBGRm1wZWcgYmluYXJ5LiIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiL3BhdGgvdG8vZmZtcGVnIg0KICAgIH0sDQogICAgImZmbXBlZ09wdGlvbnMiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJGRm1wZWcgT3B0aW9ucyIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiRkZtcGVnIG9wdGlvbnMuPGJyPk9ubHkgY2hhbmdlIGlmIHlvdSBrbm93IHdoYXQgeW91IGFyZSBkb2luZy48YnI+TGVhdmUgYmxhbmsgdG8gc2V0IGRlZmF1bHQgc2V0dGluZ3MuIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJMZWF2ZSBibGFuayB0byBzZXQgZGVmYXVsdCBzZXR0aW5ncyINCiAgICB9LA0KICAgICJ2bGNQYXRoIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiVkxDIC8gQ1ZMQyBCaW5hcnkgUGF0aCIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiUGF0aCB0byBWTEMgLyBDVkxDIGJpbmFyeS4iLA0KICAgICAgInBsYWNlaG9sZGVyIjogIi9wYXRoL3RvL2N2bGMiDQogICAgfSwNCiAgICAidmxjT3B0aW9ucyI6DQogICAgew0KICAgICAgInRpdGxlIjogIlZMQyAvIENWTEMgT3B0aW9ucyIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiVkxDIC8gQ1ZMQyBvcHRpb25zLjxicj5Pbmx5IGNoYW5nZSBpZiB5b3Uga25vdyB3aGF0IHlvdSBhcmUgZG9pbmcuPGJyPkxlYXZlIGJsYW5rIHRvIHNldCBkZWZhdWx0IHNldHRpbmdzLiIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiTGVhdmUgYmxhbmsgdG8gc2V0IGRlZmF1bHQgc2V0dGluZ3MiDQogICAgfSwNCiAgICAiYnVmZmVyU2l6ZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIkJ1ZmZlciBTaXplIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJCdWZmZXIgc2l6ZSBpbiBNQi48YnI+TTNVODogSWYgdGhlIFRTIHNlZ21lbnQgc21hbGxlciB0aGVuIHRoZSBidWZmZXIgc2l6ZSwgdGhlIGZpbGUgc2l6ZSBvZiB0aGUgc2VnbWVudCBpcyB1c2VkLiINCiAgICB9LA0KICAgICJzdG9yZUJ1ZmZlckluUkFNIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiU3RvcmUgYnVmZmVyIGluIFJBTSIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiSWYgY2hlY2tlZCwgd3JpdGUgYnVmZmVyIHRvIFJBTSBpbnN0ZWFkIG9mIHdyaXRpbmcgdG8gZGlzayINCiAgICB9LA0KICAgICJidWZmZXJUaW1lb3V0IjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiVGltZW91dCBmb3IgbmV3IGNsaWVudCBjb25uZWN0aW9ucyIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiVGhlIHhUZVZlIGJ1ZmZlciB3YWl0cyB1bnRpbCBuZXcgY2xpZW50IGNvbm5lY3Rpb25zIGFyZSBlc3RhYmxpc2hlZC4gSGVscGZ1bCBmb3IgZmFzdCBjaGFubmVsIHN3aXRjaGluZy4gVmFsdWUgaW4gbWlsbGlzZWNvbmRzLiIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiMTAwIg0KICAgIH0sDQogICAgInVzZXJBZ2VudCI6DQogICAgew0KICAgICAgInRpdGxlIjogIlVzZXIgQWdlbnQiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIlVzZXIgQWdlbnQgZm9yIEhUVFAgcmVxdWVzdHMuIEZvciBldmVyeSBIVFRQIGNvbm5lY3Rpb24sIHRoaXMgdmFsdWUgaXMgdXNlZCBmb3IgdGhlIHVzZXIgYWdlbnQuIFNob3VsZCBvbmx5IGJlIGNoYW5nZWQgaWYgeFRlVmUgaXMgYmxvY2tlZC4iLA0KICAgICAgInBsYWNlaG9sZGVyIjogInhUZVZlIg0KICAgIH0sDQogICAgImJhY2t1cFBhdGgiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJMb2NhdGlvbiBmb3IgYXV0b21hdGljIGJhY2t1cHMiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIi9tbnQvZGF0YS9iYWNrdXAveHRldmUvIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJCZWZvcmUgYW55IHVwZGF0ZSBvZiB0aGUgcHJvdmlkZXIgZGF0YSBieSB0aGUgc2NoZWR1bGUsIHhUZVZlIGNyZWF0ZXMgYSBiYWNrdXAuIFRoZSBwYXRoIGZvciB0aGUgYXV0b21hdGljIGJhY2t1cHMgY2FuIGJlIGNoYW5nZWQuIHhUZVZlIHJlcXVpcmVzIHdyaXRlIHBlcm1pc3Npb24gZm9yIHRoaXMgZm9sZGVyLiINCiAgICB9LA0KICAgICJ0ZW1wUGF0aCI6DQogICAgew0KICAgICAgInRpdGxlIjogIkxvY2F0aW9uIGZvciB0aGUgdGVtcG9yYXJ5IGZpbGVzIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIvdG1wL3h0ZXZlLyIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiTG9jYXRpb24gZm9yIHRoZSBidWZmZXIgZmlsZXMuIg0KICAgIH0sDQogICAgImJhY2t1cEtlZXAiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJOdW1iZXIgb2YgYmFja3VwcyB0byBrZWVwIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJOdW1iZXIgb2YgYmFja3VwcyB0byBrZWVwLiBPbGRlciBiYWNrdXBzIGFyZSBhdXRvbWF0aWNhbGx5IGRlbGV0ZWQuIg0KICAgIH0sDQogICAgImF1dGhlbnRpY2F0aW9uV0VCIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiV0VCIEF1dGhlbnRpY2F0aW9uIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJBY2Nlc3MgdG8gdGhlIHdlYiBpbnRlcmZhY2Ugb25seSBwb3NzaWJsZSB3aXRoIGNyZWRlbnRpYWxzLiINCiAgICB9LA0KICAgICJhdXRoZW50aWNhdGlvblBNUyI6DQogICAgew0KICAgICAgInRpdGxlIjogIlBNUyBBdXRoZW50aWNhdGlvbiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiUGxleCByZXF1ZXN0cyBhcmUgb25seSBwb3NzaWJsZSB3aXRoIGF1dGhlbnRpY2F0aW9uLiA8YnI+PGI+V2FybmluZyEhITwvYj4gQWZ0ZXIgYWN0aXZhdGluZyB0aGlzIGZ1bmN0aW9uIHhUZVZlIG11c3QgYmUgZGVsZXRlIGluIHRoZSBQTVMgRFZSIHNldHRpbmdzIGFuZCBzZXQgdXAgYWdhaW4uIg0KICAgIH0sDQogICAgImF1dGhlbnRpY2F0aW9uTTNVIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiTTNVIEF1dGhlbnRpY2F0aW9uIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJEb3dubG9hZGluZyB0aGUgeHRldmUubTN1IGZpbGUgdmlhIGFuIEhUVFAgcmVxdWVzdCBpcyBvbmx5IHBvc3NpYmxlIHdpdGggYXV0aGVudGljYXRpb24uIg0KICAgIH0sDQogICAgImF1dGhlbnRpY2F0aW9uWE1MIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiWE1MIEF1dGhlbnRpY2F0aW9uIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJEb3dubG9hZGluZyB0aGUgeHRldmUueG1sIGZpbGUgdmlhIGFuIEhUVFAgcmVxdWVzdCBpcyBvbmx5IHBvc3NpYmxlIHdpdGggYXV0aGVudGljYXRpb24iDQogICAgfSwNCiAgICAiYXV0aGVudGljYXRpb25BUEkiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJBUEkgQXV0aGVudGljYXRpb24iLA0KICAgICAgImRlc2NyaXB0aW9uIjogIkFjY2VzcyB0byB0aGUgQVBJIGludGVyZmFjZSBpcyBvbmx5IHBvc3NpYmxlIHdpdGggYXV0aGVudGljYXRpb24uIg0KICAgIH0NCiAgfSwNCiAgIndpemFyZCI6DQogIHsNCiAgICAiZXBnU291cmNlIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiRVBHIFNvdXJjZSIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiUE1TOjxicj4tIFVzZSBFUEcgZGF0YSBmcm9tIFBsZXggb3IgRW1ieSA8YnI+PGJyPlhFUEc6PGJyPi0gVXNlIG9mIG9uZSBvciBtb3JlIFhNTFRWIGZpbGVzPGJyPi0gQ2hhbm5lbCBtYW5hZ2VtZW50PGJyPi0gTTNVIC8gWE1MVFYgZXhwb3J0IChIVFRQIGxpbmsgZm9yIElQVFYgYXBwcykiDQogICAgfSwNCiAgICAidHVuZXIiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJOdW1iZXIgb2YgdHVuZXJzIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJOdW1iZXIgb2YgcGFyYWxsZWwgY29ubmVjdGlvbnMgdGhhdCBjYW4gYmUgZXN0YWJsaXNoZWQgdG8gdGhlIHByb3ZpZGVyLjxicj5BdmFpbGFibGUgZm9yOiBQbGV4LCBFbWJ5IChIREhSKSwgTTNVICh3aXRoIGFjdGl2ZSBidWZmZXIpLjxicj5BZnRlciBhIGNoYW5nZSwgeFRlVmUgbXVzdCBiZSBkZWxldGUgaW4gdGhlIFBsZXggLyBFbWJ5IERWUiBzZXR0aW5ncyBhbmQgc2V0IHVwIGFnYWluLiINCiAgICB9LA0KICAgICJtM3UiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJNM1UgUGxheWxpc3QiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIkZpbGUgcGF0aCBvciBVUkwgb2YgdGhlIE0zVSIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiTG9jYWwgb3IgcmVtb3RlIHBsYXlsaXN0cyINCiAgICB9LA0KICAgICJ4bWx0diI6DQogICAgew0KICAgICAgInRpdGxlIjogIlhNTFRWIEZpbGUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIkZpbGUgcGF0aCBvciBVUkwgb2YgdGhlIFhNTFRWIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJMb2NhbCBvciByZW1vdGUgWE1MVFYgZmlsZSINCiAgICB9DQogIH0sDQogICJsb2dpbiI6DQogIHsNCiAgICAiZmFpbGVkIjogIlVzZXIgYXV0aGVudGljYXRpb24gZmFpbGVkIiwNCiAgICAiaGVhZGxpbmUiOiAiTG9naW4iLA0KICAgICJ1c2VybmFtZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIlVzZXJuYW1lIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJVc2VybmFtZSINCiAgICB9LA0KICAgICJwYXNzd29yZCI6DQogICAgew0KICAgICAgInRpdGxlIjogIlBhc3N3b3JkIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJQYXNzd29yZCINCiAgICB9DQogIH0sDQogICJhY2NvdW50IjoNCiAgew0KICAgICJmYWlsZWQiOiAiUGFzc3dvcmQgZG9lcyBub3QgbWF0Y2giLA0KICAgICJoZWFkbGluZSI6ICJDcmVhdGUgdXNlciBhY2NvdW50IiwNCiAgICAidXNlcm5hbWUiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJVc2VybmFtZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiVXNlcm5hbWUiDQogICAgfSwNCiAgICAicGFzc3dvcmQiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJQYXNzd29yZCIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiUGFzc3dvcmQiDQogICAgfSwNCiAgICAiY29uZmlybSI6DQogICAgew0KICAgICAgInRpdGxlIjogIkNvbmZpcm0iLA0KICAgICAgInBsYWNlaG9sZGVyIjogIkNvbmZpcm0iDQogICAgfQ0KICB9DQp9" + webUI["html/lang/en.json"] = "ew0KICAibWFpbk1lbnUiOg0KICB7DQogICAgIml0ZW0iOg0KICAgIHsNCiAgICAgICJwbGF5bGlzdCI6ICJQbGF5bGlzdCIsDQogICAgICAicG1zSUQiOiAiUE1TIElEIiwNCiAgICAgICJmaWx0ZXIiOiAiRmlsdGVyIiwNCiAgICAgICJ4bWx0diI6ICJYTUxUViIsDQogICAgICAibWFwcGluZyI6ICJNYXBwaW5nIiwNCiAgICAgICJ1c2VycyI6ICJVc2VycyIsDQogICAgICAic2V0dGluZ3MiOiAiU2V0dGluZ3MiLA0KICAgICAgImxvZyI6ICJMb2ciLA0KICAgICAgImxvZ291dCI6ICJMb2dvdXQiDQogICAgfSwNCiAgICAiaGVhZGxpbmUiOg0KICAgIHsNCiAgICAgICJwbGF5bGlzdCI6ICJMb2NhbCBvciByZW1vdGUgcGxheWxpc3RzIiwNCiAgICAgICJmaWx0ZXIiOiAiRmlsdGVyIHBsYXlsaXN0IiwNCiAgICAgICJ4bWx0diI6ICJMb2NhbCBvciByZW1vdGUgWE1MVFYgZmlsZXMiLA0KICAgICAgIm1hcHBpbmciOiAiTWFwIHBsYXlsaXN0IGNoYW5uZWxzIHRvIEVQRyBjaGFubmVscyIsDQogICAgICAidXNlcnMiOiAiVXNlciBtYW5hZ2VtZW50IiwNCiAgICAgICJzZXR0aW5ncyI6ICJTZXR0aW5ncyIsDQogICAgICAibG9nIjogIkxvZyIsDQogICAgICAibG9nb3V0IjogIkxvZ291dCINCiAgICB9DQogIH0sDQogICJjb25maXJtIjoNCiAgew0KICAgICJyZXN0b3JlIjogIkFsbCBkYXRhIHdpbGwgYmUgcmVwbGFjZWQgd2l0aCB0aG9zZSBmcm9tIHRoZSBiYWNrdXAuIFNob3VsZCB0aGUgZmlsZXMgYmUgcmVzdG9yZWQ/Ig0KICB9LA0KICAiYWxlcnQiOg0KICB7DQogICAgImZpbGVMb2FkaW5nRXJyb3IiOiAiRmlsZSBjb3VsZG4ndCBiZSBsb2FkZWQiLA0KICAgICJpbnZhbGlkQ2hhbm5lbE51bWJlciI6ICJJbnZhbGlkIGNoYW5uZWwgbnVtYmVyIiwNCiAgICAibWlzc2luZ0lucHV0IjogIk1pc3NpbmcgaW5wdXQiDQogIH0sDQogICJidXR0b24iOg0KICB7DQogICAgImJhY2siOiAiQmFjayIsDQogICAgImJhY2t1cCI6ICJCYWNrdXAiLA0KICAgICJidWxrRWRpdCI6ICJCdWxrIEVkaXQiLA0KICAgICJjYW5jZWwiOiAiQ2FuY2VsIiwNCiAgICAiZGVsZXRlIjogIkRlbGV0ZSIsDQogICAgImRvbmUiOiAiRG9uZSIsDQogICAgImxvZ2luIjogIkxvZ2luIiwNCiAgICAibmV3IjogIk5ldyIsDQogICAgIm5leHQiOiAiTmV4dCIsDQogICAgInJlc3RvcmUiOiAiUmVzdG9yZSIsDQogICAgInNhdmUiOiAiU2F2ZSIsDQogICAgInNlYXJjaCI6ICJTZWFyY2giLA0KICAgICJ1cGRhdGUiOiAiVXBkYXRlIiwNCiAgICAiY3JhZXRlQWNjb3VudCI6ICJDcmVhdGUgQWNjb3VudCIsDQogICAgInJlc2V0TG9ncyI6ICJSZXNldCBMb2dzIiwNCiAgICAidXBsb2FkTG9nbyI6ICJVcGxvYWQgTG9nbyINCiAgfSwNCiAgImZpbHRlciI6DQogIHsNCiAgICAidGFibGUiOg0KICAgIHsNCiAgICAgICJzdGFydGluZ0NoYW5uZWwiOiAiU3RhcnRpbmcgQ2guIE5vLiIsDQogICAgICAibmFtZSI6ICJGaWx0ZXIgTmFtZSIsDQogICAgICAidHlwZSI6ICJGaWx0ZXIgVHlwZSIsDQogICAgICAiZmlsdGVyIjogIkZpbHRlciINCiAgICB9LA0KICAgICJjdXN0b20iOiAiQ3VzdG9tIiwNCiAgICAiZ3JvdXAiOiAiTTNVIEdyb3VwIiwNCiAgICAibmFtZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIkZpbHRlciBOYW1lIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJGaWx0ZXIgbmFtZSIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgImRlc2NyaXB0aW9uIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiRGVzY3JpcHRpb24iLA0KICAgICAgInBsYWNlaG9sZGVyIjogIkRlc2NyaXB0aW9uIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAidHlwZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIlR5cGUiLA0KICAgICAgImdyb3VwVGl0bGUiOiAiR3JvdXAgVGl0bGUiLA0KICAgICAgImN1c3RvbUZpbHRlciI6ICJDdXN0b20gRmlsdGVyIg0KICAgIH0sDQogICAgImNhc2VTZW5zaXRpdmUiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJDYXNlIFNlbnNpdGl2ZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAiZmlsdGVyUnVsZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIkZpbHRlciBSdWxlIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJTcG9ydCB7SER9ICF7RVMsSVR9IiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAiZmlsdGVyR3JvdXAiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJHcm91cCBUaXRsZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJTZWxlY3QgYSBNM1UgZ3JvdXAuIChDb3VudGVyKTxicj5DaGFuZ2luZyB0aGUgZ3JvdXAgdGl0bGUgaW4gdGhlIE0zVSBpbnZhbGlkYXRlcyB0aGUgZmlsdGVyLiINCiAgICB9LA0KICAgICJpbmNsdWRlIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiSW5jbHVkZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiRkhELFVIRCIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiQ2hhbm5lbCBuYW1lIG11c3QgaW5jbHVkZS48YnI+KENvbW1hIHNlcGFyYXRlZCkgQ29tbWEgbWVhbnMgb3IiDQogICAgfSwNCiAgICAiZXhjbHVkZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIkV4Y2x1ZGUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIkVTLElUIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJDaGFubmVsIG5hbWUgbXVzdCBub3QgY29udGFpbi48YnI+KENvbW1hIHNlcGFyYXRlZCkgQ29tbWEgbWVhbnMgb3IiDQogICAgfSwNCiAgICAicHJlc2VydmVNYXBwaW5nIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiUHJlc2VydmUgRXhpc3RpbmcgTTNVPGJyPkNoYW5uZWwgTnVtYmVycyIsDQogICAgICAicGFsY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJQcmVzZXJ2ZSBleGlzdGluZyBNM1UgcGxheWxpc3QgY2hhbm5lbCBudW1iZXJzPyINCiAgICB9LA0KICAgICJzdGFydGluZ0NoYW5uZWwiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJTdGFydGluZyBDaGFubmVsIE51bWJlciIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAiZGVmYXVsdE1pc3NpbmdFUEciOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJGaWxsIE1pc3NpbmcgRVBHIERhdGEiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiV2hlbiB0aGVyZSBpcyBubyBtYXRjaGluZyBFUEcgZGF0YSBmb3IgY2hhbm5lbCwgPGJyPmF1dG9maWxsIHdpdGggeFRlVmUgZHVtbXkgRVBHIGRhdGE/Ig0KICAgIH0NCg0KICB9LA0KICAicGxheWxpc3QiOg0KICB7DQogICAgInRhYmxlIjoNCiAgICB7DQogICAgICAicGxheWxpc3QiOiAiUGxheWxpc3QiLA0KICAgICAgInR1bmVyIjogIlR1bmVyIiwNCiAgICAgICJsYXN0VXBkYXRlIjogIkxhc3QgVXBkYXRlIiwNCiAgICAgICJhdmFpbGFiaWxpdHkiOiAiQXZhaWxhYmlsaXR5IiwNCiAgICAgICJ0eXBlIjogIlR5cGUiLA0KICAgICAgInN0cmVhbXMiOiAiU3RyZWFtcyIsDQogICAgICAiZ3JvdXBUaXRsZSI6ICJncm91cC10aXRsZSIsDQogICAgICAidHZnSUQiOiAidHZnLWlkIiwNCiAgICAgICJ1bmlxdWVJRCI6ICJVbmlxdWUgSUQiDQogICAgfSwNCiAgICAicGxheWxpc3RUeXBlIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiUGxheWxpc3QgdHlwZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAidHlwZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIlR5cGUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgIm5hbWUiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJOYW1lIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJQbGF5bGlzdCBuYW1lIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAiZGVzY3JpcHRpb24iOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJEZXNjcmlwdGlvbiIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiRGVzY3JpcHRpb24iLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJmaWxlTTNVIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiTTNVIEZpbGUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIkZpbGUgcGF0aCBvciBVUkwgb2YgdGhlIE0zVSIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgImZpbGVIREhSIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiSERIb21lUnVuIElQIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJJUCBhZGRyZXNzIGFuZCBwb3J0ICgxOTIuMTY4LjEuMTA6NTAwNCkiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJ0dW5lciI6DQogICAgew0KICAgICAgInRpdGxlIjogIlR1bmVyIC8gU3RyZWFtcyIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJOdW1iZXIgb2YgcGFyYWxsZWwgY29ubmVjdGlvbnMgdGhhdCBjYW4gYmUgZXN0YWJsaXNoZWQgdG8gdGhlIHByb3ZpZGVyLiA8YnI+T25seSBhdmFpbGFibGUgd2l0aCBhY3RpdmF0ZWQgYnVmZmVyLjxicj5OZXcgc2V0dGluZ3Mgd2lsbCBvbmx5IGJlIGFwcGxpZWQgYWZ0ZXIgcXVpdHRpbmcgYWxsIHN0cmVhbXMuIg0KICAgIH0NCiAgfSwNCiAgInhtbHR2IjoNCiAgew0KICAgICJ0YWJsZSI6DQogICAgew0KICAgICAgImd1aWRlIjogIkd1aWRlIiwNCiAgICAgICJsYXN0VXBkYXRlIjogIkxhc3QgVXBkYXRlIiwNCiAgICAgICJhdmFpbGFiaWxpdHkiOiAiQXZhaWxhYmlsaXR5IiwNCiAgICAgICJjaGFubmVscyI6ICJDaGFubmVscyIsDQogICAgICAicHJvZ3JhbXMiOiAiUHJvZ3JhbXMiDQogICAgfSwNCiAgICAibmFtZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIk5hbWUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIkd1aWRlIG5hbWUiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJkZXNjcmlwdGlvbiI6DQogICAgew0KICAgICAgInRpdGxlIjogIkRlc2NyaXB0aW9uIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJEZXNjcmlwdGlvbiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgImZpbGVYTUxUViI6DQogICAgew0KICAgICAgInRpdGxlIjogIlhNTFRWIEZpbGUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIkZpbGUgcGF0aCBvciBVUkwgb2YgdGhlIFhNTFRWIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfQ0KICB9LA0KICAibWFwcGluZyI6DQogIHsNCiAgICAidGFibGUiOg0KICAgIHsNCiAgICAgICJjaE5vIjogIkNoLiBOby4iLA0KICAgICAgImxvZ28iOiAiTG9nbyIsDQogICAgICAiY2hhbm5lbE5hbWUiOiAiQ2hhbm5lbCBOYW1lIiwNCiAgICAgICJ1cGRhdGVDaGFubmVsTmFtZVJlZ2V4IjogIlVwZC4gUnguIiwNCiAgICAgICJwbGF5bGlzdCI6ICJQbGF5bGlzdCIsDQogICAgICAiZ3JvdXBUaXRsZSI6ICJHcm91cCBUaXRsZSIsDQogICAgICAieG1sdHZGaWxlIjogIlhNTFRWIEZpbGUiLA0KICAgICAgInhtbHR2SUQiOiAiWE1MVFYgSUQiLA0KICAgICAgInRpbWVzaGlmdCI6ICJUaW1lc2hpZnQiDQogICAgfSwNCiAgICAiYWN0aXZlIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiQWN0aXZlIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJjaGFubmVsTmFtZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIkNoYW5uZWwgTmFtZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAiZGVzY3JpcHRpb24iOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJDaGFubmVsIERlc2NyaXB0aW9uIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJVc2VkIGJ5IHRoZSBEdW1teSBhcyBhbiBYTUwgZGVzY3JpcHRpb24iLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJ1cGRhdGVDaGFubmVsTmFtZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIlVwZGF0ZSBDaGFubmVsIE5hbWUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgInVwZGF0ZUNoYW5uZWxOYW1lUmVnZXgiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJDaGFubmVsIG5hbWUgdXBkYXRlIHJlZ2V4IiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJGb3IgZXhhbXBsZSBeUFBWWyBcXFxcLV9dPzEuKiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiT24gdXBkYXRlLCBpZiBhbnkgbmV3IGNoYW5uZWwgbmFtZSBtYXRjaGVzIHRoaXMgcmVnZXgsIHJlbmFtZSBjdXJyZW50IGNoYW5uZWwgdG8gdGhlIGZpcnN0IG1hdGNoaW5nIG5hbWUiDQogICAgfSwNCiAgICAidXBkYXRlQ2hhbm5lbE5hbWVCeUdyb3VwUmVnZXgiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJPbmx5IGJ5IGdyb3VwIHJlZ2V4IiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIlJlbmFtZSB0aGlzIGNoYW5uZWwgb25seSBpZiBjdXJyZW50IHVzZXItZGVmaW5lZCBncm91cCBtYXRjaGVzIHRoaXMgcmVnZXgiDQogICAgfSwNCiAgICAidXBkYXRlQ2hhbm5lbEdyb3VwIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiVXBkYXRlIENoYW5uZWwgR3JvdXAiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiSWYgY2hlY2tlZCwgdXNlIGdyb3VwIGZyb20gdGhlIGRhdGFiYXNlIg0KICAgIH0sDQogICAgImNoYW5uZWxMb2dvIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiTG9nbyBVUkwiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgInVwZGF0ZUNoYW5uZWxMb2dvIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiVXBkYXRlIENoYW5uZWwgTG9nbyIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAiZXBnQ2F0ZWdvcnkiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJFUEcgQ2F0ZWdvcnkiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgIm0zdUdyb3VwVGl0bGUiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJHcm91cCBUaXRsZSAoeHRldmUubTN1KSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAieG1sdHZGaWxlIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiWE1MVFYgRmlsZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAieG1sdHZDaGFubmVsIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiWE1MVFYgQ2hhbm5lbCIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAidGltZXNoaWZ0IjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiVGltZXNoaWZ0IiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIwIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfQ0KICB9LA0KICAidXNlcnMiOg0KICB7DQogICAgInRhYmxlIjoNCiAgICB7DQogICAgICAidXNlcm5hbWUiOiAiVXNlcm5hbWUiLA0KICAgICAgInBhc3N3b3JkIjogIlBhc3N3b3JkIiwNCiAgICAgICJ3ZWIiOiAiV0VCIiwNCiAgICAgICJwbXMiOiAiUE1TIiwNCiAgICAgICJtM3UiOiAiTTNVIiwNCiAgICAgICJ4bWwiOiAiWE1MIiwNCiAgICAgICJhcGkiOiAiQVBJIg0KICAgIH0sDQogICAgInVzZXJuYW1lIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiVXNlcm5hbWUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIlVzZXJuYW1lIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAicGFzc3dvcmQiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJQYXNzd29yZCIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiUGFzc3dvcmQiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJjb25maXJtIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiQ29uZmlybSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiUGFzc3dvcmQgY29uZmlybSIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgIndlYiI6DQogICAgew0KICAgICAgInRpdGxlIjogIldlYiBBY2Nlc3MiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgInBtcyI6DQogICAgew0KICAgICAgInRpdGxlIjogIlBNUyBBY2Nlc3MiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgIm0zdSI6DQogICAgew0KICAgICAgInRpdGxlIjogIk0zVSBBY2Nlc3MiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgInhtbCI6DQogICAgew0KICAgICAgInRpdGxlIjogIlhNTCBBY2Nlc3MiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgImFwaSI6DQogICAgew0KICAgICAgInRpdGxlIjogIkFQSSBBY2Nlc3MiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0NCiAgfSwNCiAgInNldHRpbmdzIjoNCiAgew0KICAgICJjYXRlZ29yeSI6DQogICAgew0KICAgICAgImdlbmVyYWwiOiAiR2VuZXJhbCIsDQogICAgICAiZmlsZXMiOiAiRmlsZXMiLA0KICAgICAgInN0cmVhbWluZyI6ICJTdHJlYW1pbmciLA0KICAgICAgImJhY2t1cCI6ICJCYWNrdXAiLA0KICAgICAgImF1dGhlbnRpY2F0aW9uIjogIkF1dGhlbnRpY2F0aW9uIg0KICAgIH0sDQogICAgInVwZGF0ZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIlNjaGVkdWxlIGZvciB1cGRhdGluZyAoUGxheWxpc3QsIFhNTFRWLCBCYWNrdXApIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIwMDAwLDEwMDAsMjAwMCIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiVGltZSBpbiAyNCBob3VyIGZvcm1hdCAoMDgwMCA9IDg6MDAgYW0pLiBNb3JlIHRpbWVzIGNhbiBiZSBlbnRlcmVkIGNvbW1hIHNlcGFyYXRlZC4gTGVhdmUgdGhpcyBmaWVsZCBlbXB0eSBpZiBubyB1cGRhdGVzIGFyZSB0byBiZSBjYXJyaWVkIG91dC4iDQogICAgfSwNCiAgICAiYXBpIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiQVBJIEludGVyZmFjZSIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiVmlhIEFQSSBpbnRlcmZhY2UgaXQgaXMgcG9zc2libGUgdG8gc2VuZCBjb21tYW5kcyB0byB4VGVWZS4gQVBJIGRvY3VtZW50YXRpb24gaXMgPGEgaHJlZj0naHR0cHM6Ly9naXRodWIuY29tL3h0ZXZlLXByb2plY3QveFRlVmUtRG9jdW1lbnRhdGlvbi9ibG9iL21hc3Rlci9lbi9jb25maWd1cmF0aW9uLm1kI2FwaSc+aGVyZTwvYT4iDQogICAgfSwNCiAgICAiZXBnU291cmNlIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiRVBHIFNvdXJjZSIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiUE1TOjxicj4tIFVzZSBFUEcgZGF0YSBmcm9tIFBsZXggb3IgRW1ieSA8YnI+PGJyPlhFUEc6PGJyPi0gVXNlIG9mIG9uZSBvciBtb3JlIFhNTFRWIGZpbGVzPGJyPi0gQ2hhbm5lbCBtYW5hZ2VtZW50PGJyPi0gTTNVIC8gWE1MVFYgZXhwb3J0IChIVFRQIGxpbmsgZm9yIElQVFYgYXBwcykiDQogICAgfSwNCiAgICAidHVuZXIiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJOdW1iZXIgb2YgVHVuZXJzIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJOdW1iZXIgb2YgcGFyYWxsZWwgY29ubmVjdGlvbnMgdGhhdCBjYW4gYmUgZXN0YWJsaXNoZWQgdG8gdGhlIHByb3ZpZGVyLjxicj5BdmFpbGFibGUgZm9yOiBQbGV4LCBFbWJ5IChIREhSKSwgTTNVICh3aXRoIGFjdGl2ZSBidWZmZXIpLjxicj5BZnRlciBhIGNoYW5nZSwgeFRlVmUgbXVzdCBiZSBkZWxldGUgaW4gdGhlIFBsZXggLyBFbWJ5IERWUiBzZXR0aW5ncyBhbmQgc2V0IHVwIGFnYWluLiINCiAgICB9LA0KICAgICJob3N0SVAiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJIb3N0IElQIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJJUCBhZGRyZXNzIHhUZVZlIHdpbGwgdXNlIHRvIGZvcm0gTTNVIGFuZCBYTUxUViBmaWxlcyINCiAgICB9LA0KICAgICJ0bHNNb2RlIjogew0KICAgICAgInRpdGxlIjogIlRMUyAoSFRUUFMpIG1vZGUiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIkNoYW5nZXMgd2ViIHNlcnZlciBwcm90b2NvbCB0byBIVFRQUy48YnI+Rm9yIGRldGFpbHMsIHNlZSA8YT5odHRwczovL2dpdGh1Yi5jb20vU0NQMDAyL3hUZVZlI3Rscy1tb2RlPC9hPiINCiAgICB9LA0KICAgICJmaWxlc1VwZGF0ZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIlVwZGF0ZXMgYWxsIGZpbGVzIGF0IHN0YXJ0dXAiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIlVwZGF0ZXMgYWxsIHBsYXlsaXN0cywgdHVuZXIgYW5kIFhNTFRWIGZpbGVzIGF0IHN0YXJ0dXAuIg0KICAgIH0sDQogICAgImNhY2hlSW1hZ2VzIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiSW1hZ2UgQ2FjaGluZyIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiQWxsIGltYWdlcyBmcm9tIHRoZSBYTUxUViBmaWxlIGFyZSBjYWNoZWQsIGFsbG93aW5nIGZhc3RlciByZW5kZXJpbmcgb2YgdGhlIGdyaWQgaW4gdGhlIGNsaWVudC48YnI+RG93bmxvYWRpbmcgdGhlIGltYWdlcyBtYXkgdGFrZSBhIHdoaWxlIGFuZCB3aWxsIGJlIGRvbmUgaW4gdGhlIGJhY2tncm91bmQuIg0KICAgIH0sDQogICAgInJlcGxhY2VFbXB0eUltYWdlcyI6DQogICAgew0KICAgICAgInRpdGxlIjogIlJlcGxhY2UgbWlzc2luZyBwcm9ncmFtIGltYWdlcyIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiSWYgdGhlIHBvc3RlciBpbiB0aGUgWE1MVFYgcHJvZ3JhbSBpcyBtaXNzaW5nLCB0aGUgY2hhbm5lbCBsb2dvIHdpbGwgYmUgdXNlZC4iDQogICAgfSwNCiAgICAieHRldmVBdXRvVXBkYXRlIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiQXV0b21hdGljIHVwZGF0ZSBvZiB4VGVWZSIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiSWYgYSBuZXcgdmVyc2lvbiBvZiB4VGVWZSBpcyBhdmFpbGFibGUsIGl0IHdpbGwgYmUgYXV0b21hdGljYWxseSBpbnN0YWxsZWQuIFRoZSB1cGRhdGVzIGFyZSBkb3dubG9hZGVkIGZyb20gR2l0SHViLiINCiAgICB9LA0KICAgICJzdHJlYW1CdWZmZXJpbmciOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJTdHJlYW0gQnVmZmVyIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJGdW5jdGlvbnMgb2YgdGhlIGJ1ZmZlcjo8YnI+LSBUaGUgc3RyZWFtIGlzIHBhc3NlZCBmcm9tIHhUZVZlLCBGRm1wZWcgb3IgVkxDIHRvIFBsZXgsIEVtYnkgb3IgTTNVIFBsYXllcjxicj4tIFNtYWxsIGplcmtpbmcgb2YgdGhlIHN0cmVhbXMgY2FuIGJlIGNvbXBlbnNhdGVkPGJyPi0gSExTIC8gTTNVOCBzdXBwb3J0PGJyPi0gUlRQIC8gUlRQUyBzdXBwb3J0IChvbmx5IEZGbXBlZyBvciBWTEMpPGJyPi0gUmUtc3RyZWFtaW5nPGJyPi0gU2VwYXJhdGUgdHVuZXIgbGltaXQgZm9yIGVhY2ggcGxheWxpc3QiLA0KICAgICAgImluZm9fZmFsc2UiOiAiTm8gQnVmZmVyIChDbGllbnQgY29ubmVjdHMgdG8gdGhlIHN0cmVhbWluZyBzZXJ2ZXIpIiwNCiAgICAgICJpbmZvX3h0ZXZlIjogInhUZVZlIGNvbm5lY3RzIHRvIHRoZSBzdHJlYW1pbmcgc2VydmVyIiwNCiAgICAgICJpbmZvX2ZmbXBlZyI6ICJGRm1wZWcgY29ubmVjdHMgdG8gdGhlIHN0cmVhbWluZyBzZXJ2ZXIiLA0KICAgICAgImluZm9fdmxjIjogIlZMQyBjb25uZWN0cyB0byB0aGUgc3RyZWFtaW5nIHNlcnZlciINCg0KICAgIH0sDQogICAgInVkcHh5IjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiVURQeHkgYWRkcmVzcyIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiVGhlIGFkZHJlc3Mgb2YgeW91ciBVRFB4eSBzZXJ2ZXIuIElmIHNldCwgYW5kIHRoZSBjaGFubmVsIFVSTHMgaW4gdGhlIG0zdSBpcyBtdWx0aWNhc3QsIHhUZVZlIHdpbGwgcmV3cml0ZSBpdCBzbyB0aGF0IGl0IGlzIGFjY2Vzc2VkIHZpYSB0aGUgVURQeHkgc2VydmljZS4iLA0KICAgICAgInBsYWNlaG9sZGVyIjogImhvc3Q6cG9ydCINCiAgICB9LA0KICAgICJmZm1wZWdQYXRoIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiRkZtcGVnIEJpbmFyeSBQYXRoIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJQYXRoIHRvIEZGbXBlZyBiaW5hcnkuIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIvcGF0aC90by9mZm1wZWciDQogICAgfSwNCiAgICAiZmZtcGVnT3B0aW9ucyI6DQogICAgew0KICAgICAgInRpdGxlIjogIkZGbXBlZyBPcHRpb25zIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJGRm1wZWcgb3B0aW9ucy48YnI+T25seSBjaGFuZ2UgaWYgeW91IGtub3cgd2hhdCB5b3UgYXJlIGRvaW5nLjxicj5MZWF2ZSBibGFuayB0byBzZXQgZGVmYXVsdCBzZXR0aW5ncy4iLA0KICAgICAgInBsYWNlaG9sZGVyIjogIkxlYXZlIGJsYW5rIHRvIHNldCBkZWZhdWx0IHNldHRpbmdzIg0KICAgIH0sDQogICAgInZsY1BhdGgiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJWTEMgLyBDVkxDIEJpbmFyeSBQYXRoIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJQYXRoIHRvIFZMQyAvIENWTEMgYmluYXJ5LiIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiL3BhdGgvdG8vY3ZsYyINCiAgICB9LA0KICAgICJ2bGNPcHRpb25zIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiVkxDIC8gQ1ZMQyBPcHRpb25zIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJWTEMgLyBDVkxDIG9wdGlvbnMuPGJyPk9ubHkgY2hhbmdlIGlmIHlvdSBrbm93IHdoYXQgeW91IGFyZSBkb2luZy48YnI+TGVhdmUgYmxhbmsgdG8gc2V0IGRlZmF1bHQgc2V0dGluZ3MuIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJMZWF2ZSBibGFuayB0byBzZXQgZGVmYXVsdCBzZXR0aW5ncyINCiAgICB9LA0KICAgICJidWZmZXJTaXplIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiQnVmZmVyIFNpemUiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIkJ1ZmZlciBzaXplIGluIE1CLjxicj5NM1U4OiBJZiB0aGUgVFMgc2VnbWVudCBzbWFsbGVyIHRoZW4gdGhlIGJ1ZmZlciBzaXplLCB0aGUgZmlsZSBzaXplIG9mIHRoZSBzZWdtZW50IGlzIHVzZWQuIg0KICAgIH0sDQogICAgInN0b3JlQnVmZmVySW5SQU0iOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJTdG9yZSBidWZmZXIgaW4gUkFNIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJJZiBjaGVja2VkLCB3cml0ZSBidWZmZXIgdG8gUkFNIGluc3RlYWQgb2Ygd3JpdGluZyB0byBkaXNrIg0KICAgIH0sDQogICAgImJ1ZmZlclRpbWVvdXQiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJUaW1lb3V0IGZvciBuZXcgY2xpZW50IGNvbm5lY3Rpb25zIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJUaGUgeFRlVmUgYnVmZmVyIHdhaXRzIHVudGlsIG5ldyBjbGllbnQgY29ubmVjdGlvbnMgYXJlIGVzdGFibGlzaGVkLiBIZWxwZnVsIGZvciBmYXN0IGNoYW5uZWwgc3dpdGNoaW5nLiBWYWx1ZSBpbiBtaWxsaXNlY29uZHMuIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIxMDAiDQogICAgfSwNCiAgICAidXNlckFnZW50IjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiVXNlciBBZ2VudCIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiVXNlciBBZ2VudCBmb3IgSFRUUCByZXF1ZXN0cy4gRm9yIGV2ZXJ5IEhUVFAgY29ubmVjdGlvbiwgdGhpcyB2YWx1ZSBpcyB1c2VkIGZvciB0aGUgdXNlciBhZ2VudC4gU2hvdWxkIG9ubHkgYmUgY2hhbmdlZCBpZiB4VGVWZSBpcyBibG9ja2VkLiIsDQogICAgICAicGxhY2Vob2xkZXIiOiAieFRlVmUiDQogICAgfSwNCiAgICAiYmFja3VwUGF0aCI6DQogICAgew0KICAgICAgInRpdGxlIjogIkxvY2F0aW9uIGZvciBhdXRvbWF0aWMgYmFja3VwcyIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiL21udC9kYXRhL2JhY2t1cC94dGV2ZS8iLA0KICAgICAgImRlc2NyaXB0aW9uIjogIkJlZm9yZSBhbnkgdXBkYXRlIG9mIHRoZSBwcm92aWRlciBkYXRhIGJ5IHRoZSBzY2hlZHVsZSwgeFRlVmUgY3JlYXRlcyBhIGJhY2t1cC4gVGhlIHBhdGggZm9yIHRoZSBhdXRvbWF0aWMgYmFja3VwcyBjYW4gYmUgY2hhbmdlZC4geFRlVmUgcmVxdWlyZXMgd3JpdGUgcGVybWlzc2lvbiBmb3IgdGhpcyBmb2xkZXIuIg0KICAgIH0sDQogICAgInRlbXBQYXRoIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiTG9jYXRpb24gZm9yIHRoZSB0ZW1wb3JhcnkgZmlsZXMiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIi90bXAveHRldmUvIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJMb2NhdGlvbiBmb3IgdGhlIGJ1ZmZlciBmaWxlcy4iDQogICAgfSwNCiAgICAiYmFja3VwS2VlcCI6DQogICAgew0KICAgICAgInRpdGxlIjogIk51bWJlciBvZiBiYWNrdXBzIHRvIGtlZXAiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIk51bWJlciBvZiBiYWNrdXBzIHRvIGtlZXAuIE9sZGVyIGJhY2t1cHMgYXJlIGF1dG9tYXRpY2FsbHkgZGVsZXRlZC4iDQogICAgfSwNCiAgICAiYXV0aGVudGljYXRpb25XRUIiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJXRUIgQXV0aGVudGljYXRpb24iLA0KICAgICAgImRlc2NyaXB0aW9uIjogIkFjY2VzcyB0byB0aGUgd2ViIGludGVyZmFjZSBvbmx5IHBvc3NpYmxlIHdpdGggY3JlZGVudGlhbHMuIg0KICAgIH0sDQogICAgImF1dGhlbnRpY2F0aW9uUE1TIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiUE1TIEF1dGhlbnRpY2F0aW9uIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJQbGV4IHJlcXVlc3RzIGFyZSBvbmx5IHBvc3NpYmxlIHdpdGggYXV0aGVudGljYXRpb24uIDxicj48Yj5XYXJuaW5nISEhPC9iPiBBZnRlciBhY3RpdmF0aW5nIHRoaXMgZnVuY3Rpb24geFRlVmUgbXVzdCBiZSBkZWxldGUgaW4gdGhlIFBNUyBEVlIgc2V0dGluZ3MgYW5kIHNldCB1cCBhZ2Fpbi4iDQogICAgfSwNCiAgICAiYXV0aGVudGljYXRpb25NM1UiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJNM1UgQXV0aGVudGljYXRpb24iLA0KICAgICAgImRlc2NyaXB0aW9uIjogIkRvd25sb2FkaW5nIHRoZSB4dGV2ZS5tM3UgZmlsZSB2aWEgYW4gSFRUUCByZXF1ZXN0IGlzIG9ubHkgcG9zc2libGUgd2l0aCBhdXRoZW50aWNhdGlvbi4iDQogICAgfSwNCiAgICAiYXV0aGVudGljYXRpb25YTUwiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJYTUwgQXV0aGVudGljYXRpb24iLA0KICAgICAgImRlc2NyaXB0aW9uIjogIkRvd25sb2FkaW5nIHRoZSB4dGV2ZS54bWwgZmlsZSB2aWEgYW4gSFRUUCByZXF1ZXN0IGlzIG9ubHkgcG9zc2libGUgd2l0aCBhdXRoZW50aWNhdGlvbiINCiAgICB9LA0KICAgICJhdXRoZW50aWNhdGlvbkFQSSI6DQogICAgew0KICAgICAgInRpdGxlIjogIkFQSSBBdXRoZW50aWNhdGlvbiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiQWNjZXNzIHRvIHRoZSBBUEkgaW50ZXJmYWNlIGlzIG9ubHkgcG9zc2libGUgd2l0aCBhdXRoZW50aWNhdGlvbi4iDQogICAgfQ0KICB9LA0KICAid2l6YXJkIjoNCiAgew0KICAgICJlcGdTb3VyY2UiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJFUEcgU291cmNlIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJQTVM6PGJyPi0gVXNlIEVQRyBkYXRhIGZyb20gUGxleCBvciBFbWJ5IDxicj48YnI+WEVQRzo8YnI+LSBVc2Ugb2Ygb25lIG9yIG1vcmUgWE1MVFYgZmlsZXM8YnI+LSBDaGFubmVsIG1hbmFnZW1lbnQ8YnI+LSBNM1UgLyBYTUxUViBleHBvcnQgKEhUVFAgbGluayBmb3IgSVBUViBhcHBzKSINCiAgICB9LA0KICAgICJ0dW5lciI6DQogICAgew0KICAgICAgInRpdGxlIjogIk51bWJlciBvZiB0dW5lcnMiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIk51bWJlciBvZiBwYXJhbGxlbCBjb25uZWN0aW9ucyB0aGF0IGNhbiBiZSBlc3RhYmxpc2hlZCB0byB0aGUgcHJvdmlkZXIuPGJyPkF2YWlsYWJsZSBmb3I6IFBsZXgsIEVtYnkgKEhESFIpLCBNM1UgKHdpdGggYWN0aXZlIGJ1ZmZlcikuPGJyPkFmdGVyIGEgY2hhbmdlLCB4VGVWZSBtdXN0IGJlIGRlbGV0ZSBpbiB0aGUgUGxleCAvIEVtYnkgRFZSIHNldHRpbmdzIGFuZCBzZXQgdXAgYWdhaW4uIg0KICAgIH0sDQogICAgIm0zdSI6DQogICAgew0KICAgICAgInRpdGxlIjogIk0zVSBQbGF5bGlzdCIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiRmlsZSBwYXRoIG9yIFVSTCBvZiB0aGUgTTNVIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJMb2NhbCBvciByZW1vdGUgcGxheWxpc3RzIg0KICAgIH0sDQogICAgInhtbHR2IjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiWE1MVFYgRmlsZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiRmlsZSBwYXRoIG9yIFVSTCBvZiB0aGUgWE1MVFYiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIkxvY2FsIG9yIHJlbW90ZSBYTUxUViBmaWxlIg0KICAgIH0NCiAgfSwNCiAgImxvZ2luIjoNCiAgew0KICAgICJmYWlsZWQiOiAiVXNlciBhdXRoZW50aWNhdGlvbiBmYWlsZWQiLA0KICAgICJoZWFkbGluZSI6ICJMb2dpbiIsDQogICAgInVzZXJuYW1lIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiVXNlcm5hbWUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIlVzZXJuYW1lIg0KICAgIH0sDQogICAgInBhc3N3b3JkIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiUGFzc3dvcmQiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIlBhc3N3b3JkIg0KICAgIH0NCiAgfSwNCiAgImFjY291bnQiOg0KICB7DQogICAgImZhaWxlZCI6ICJQYXNzd29yZCBkb2VzIG5vdCBtYXRjaCIsDQogICAgImhlYWRsaW5lIjogIkNyZWF0ZSB1c2VyIGFjY291bnQiLA0KICAgICJ1c2VybmFtZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIlVzZXJuYW1lIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJVc2VybmFtZSINCiAgICB9LA0KICAgICJwYXNzd29yZCI6DQogICAgew0KICAgICAgInRpdGxlIjogIlBhc3N3b3JkIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJQYXNzd29yZCINCiAgICB9LA0KICAgICJjb25maXJtIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiQ29uZmlybSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiQ29uZmlybSINCiAgICB9DQogIH0NCn0=" webUI["html/login.html"] = "PCFkb2N0eXBlIGh0bWw+DQo8aHRtbD4NCiAgPGhlYWQ+DQogICAgPG1ldGEgY2hhcnNldD0idXRmLTgiPg0KICAgIDxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgsIGluaXRpYWwtc2NhbGU9MS4wIiAvPiANCiAgICA8dGl0bGU+eFRlVmU8L3RpdGxlPg0KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iY3NzL3NjcmVlbi5jc3MiIHR5cGU9InRleHQvY3NzIj4NCiAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9ImNzcy9iYXNlLmNzcyIgdHlwZT0idGV4dC9jc3MiPg0KICAgIDxzY3JpcHQgbGFuZ3VhZ2U9ImphdmFzY3JpcHQiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJqcy9uZXR3b3JrX3RzLmpzIj48L3NjcmlwdD4NCiAgICA8c2NyaXB0IGxhbmd1YWdlPSJqYXZhc2NyaXB0IiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ianMvYXV0aGVudGljYXRpb25fdHMuanMiPjwvc2NyaXB0Pg0KICA8L2hlYWQ+DQoNCiAgICA8Ym9keT4NCiAgICAgICAgICANCiAgICAgIDxkaXYgaWQ9ImhlYWRlciIgY2xhc3M9ImltZ0NlbnRlciI+PC9kaXY+DQoNCiAgICAgIDxkaXYgaWQ9ImJveCI+DQoNCiAgICAgICAgPGRpdiBpZD0iaGVhZGxpbmUiPg0KICAgICAgICAgIDxoMSBpZD0iaGVhZC10ZXh0IiBjbGFzcz0iY2VudGVyIj57ey5sb2dpbi5oZWFkbGluZX19PC9oMT4NCiAgICAgICAgPC9kaXY+DQoNCiAgICAgICAgPHAgaWQ9ImVyciIgY2xhc3M9ImVycm9yTXNnIGNlbnRlciI+e3suYXV0aGVudGljYXRpb25FcnJ9fTwvcD4NCg0KICAgICAgICA8ZGl2IGlkPSJjb250ZW50Ij4NCg0KICAgICAgICAgICAgPGZvcm0gaWQ9ImF1dGhlbnRpY2F0aW9uIiBhY3Rpb249IiIgbWV0aG9kPSJwb3N0Ij4NCg0KICAgICAgICAgICAgICA8aDU+e3subG9naW4udXNlcm5hbWUudGl0bGV9fTo8L2g1Pg0KICAgICAgICAgICAgICA8aW5wdXQgaWQ9InVzZXJuYW1lIiB0eXBlPSJ0ZXh0IiBuYW1lPSJ1c2VybmFtZSIgcGxhY2Vob2xkZXI9IlVzZXJuYW1lIiB2YWx1ZT0iIj4NCiAgICAgICAgICAgICAgPGg1Pnt7LmxvZ2luLnBhc3N3b3JkLnRpdGxlfX06PC9oNT4NCiAgICAgICAgICAgICAgPGlucHV0IGlkPSJwYXNzd29yZCIgdHlwZT0icGFzc3dvcmQiIG5hbWU9InBhc3N3b3JkIiBwbGFjZWhvbGRlcj0iUGFzc3dvcmQiIHZhbHVlPSIiPg0KDQogICAgICAgICAgICA8L2Zvcm0+DQoNCiAgICAgICAgPC9kaXY+DQoNCiAgICAgICAgPGRpdiBpZD0iYm94LWZvb3RlciI+DQogICAgICAgICAgPGlucHV0IGlkPSJzdWJtaXQiIGNsYXNzPSIiIHR5cGU9ImJ1dHRvbiIgdmFsdWU9Int7LmJ1dHRvbi5sb2dpbn19IiBvbmNsaWNrPSJqYXZhc2NyaXB0OiBsb2dpbigpOyI+DQogICAgICAgIDwvZGl2Pg0KICAgICAgICANCiAgICAgIDwvZGl2Pg0KDQogICAgPC9ib2R5Pg0KICAgIA0KPC9odG1sPg==" webUI["html/maintenance.html"] = "PCFkb2N0eXBlIGh0bWw+DQo8aHRtbD4NCiAgPGhlYWQ+DQogICAgPG1ldGEgY2hhcnNldD0idXRmLTgiPg0KICAgIDxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgsIGluaXRpYWwtc2NhbGU9MS4wIiAvPiANCiAgICA8dGl0bGU+eFRlVmU8L3RpdGxlPg0KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iY3NzL3NjcmVlbi5jc3MiIHR5cGU9InRleHQvY3NzIj4NCiAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9ImNzcy9iYXNlLmNzcyIgdHlwZT0idGV4dC9jc3MiPg0KICA8L2hlYWQ+DQoNCiAgICA8Ym9keT4NCiAgICAgICAgICANCiAgICAgIDxkaXYgaWQ9ImhlYWRlciIgY2xhc3M9ImltZ0NlbnRlciI+PC9kaXY+DQoNCiAgICAgIDxkaXYgaWQ9ImJveCI+DQoNCiAgICAgICAgPGRpdiBpZD0iaGVhZGxpbmUiPg0KICAgICAgICAgIDxoMSBpZD0iaGVhZC10ZXh0IiBjbGFzcz0iY2VudGVyIj5NYWludGVuYW5jZTwvaDE+ICAgICAgDQogICAgICAgIDwvZGl2PiAgDQoNCiAgICAgICAgPGRpdiBpZD0iY29udGVudCI+DQogICAgICAgICAgeFRlVmUgaXMgdXBkYXRpbmcgdGhlIGRhdGFiYXNlLCBwbGVhc2UgdHJ5IGFnYWluIGxhdGVyLg0KICAgICAgICA8L2Rpdj4NCg0KICAgICAgICA8ZGl2IGlkPSJib3gtZm9vdGVyIj48L2Rpdj4NCiAgICAgICAgDQogICAgICA8L2Rpdj4NCg0KICAgIDwvYm9keT4NCjwvaHRtbD4=" webUI["html/video/stream-limit.ts"] = "R0AREABC8CUAAcEAAP8B/wAB/IAUSBIBBkZGbXBlZwlTZXJ2aWNlMDF3fEPK//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////9HQAAQAACwDQABwQAAAAHwACqxBLL//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////0dQABAAArASAAHBAADhAPAAG+EA8AAVvU1W////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////R0EAMAdQAAB7DH4AAAAB4AAAgMAKMQAJEKERAAfYYQAAAAEJ8AAAAAFnZAAorNlAeAIn5cBEAAADAAQAAAMAyDxgxlgAAAABaOvjyyLAAAABBgX//6rcRem95tlIt5Ys2CDZI+7veDI2NCAtIGNvcmUgMTUyIHIyODU0IGU5YTU5MDMgLSBILjI2NC9NUEVHLTQgQVZDIGNvZGVjIC0gQ29weWxlZnQgMjAwMy0yMDE3IC0gaHR0cDovL3dHAQARd3cudmlkZW9sYW4ub3JnL3gyNjQuaHRtbCAtIG9wdGlvbnM6IGNhYmFjPTEgcmVmPTMgZGVibG9jaz0xOjA6MCBhbmFseXNlPTB4MzoweDExMyBtZT1oZXggc3VibWU9NyBwc3k9MSBwc3lfcmQ9MS4wMDowLjAwIG1peGVkX3JlZj0xIG1lX3JhbmdlPTE2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ACqxBLL//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////0dQABEAArASAAHBAADhAPAAG+EA8AAVvU1W////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////RwEAGO10tGlFAwyE91Tzg8923ovJk1dv2xh1gVlYQFtWdZ6NSQ8vgHM7/tMfIZPsqgCU856rdBJJRMDaor/oWA7pkvSmC2aqaC5fd/mkWUPTuG8fRhGqOY1rKxLNSI3HtTQAcuVBxRM0NfMw0ky/JMJYZiCgXcNsxpxl+khr/9fKtO5Fg2VNBti92xcZimHUZDJMQTBOY6vSR9L1N2O/kJQCpdfuc9bkcUTMjH/es/lAySxvbiislkohqkpHAQAZVatwHI0t9eHCUfDyWUEtuCNyDwQFOVMtaYEQJrTrhQX0VduT86F0u0wN9ag0uPsrmX6Rid/x5S7KI1SkS+qP6cdmgSP57uiF4dG6IKsWNfGBLY09H/CFlrg73WINQkkp2diKkdEmtZetn8+ZAKzR5eXN5FebiKt6pIkNLuSofjosypEs2o6boKsfpmbtOV0idOeWDM9C8EIcn3aZwk1s2KBDvt1DlY+i2Cuvhk3XoKLT+pq/bOC5QkcBABolcOXneZXLoQw9W1PH1f/of92Ytjj8okrWijcQAKlE5l8XoTb9qrOiZnDOhqwcMlB9H9rorq041I89hChohYoSkJElcM8V+r8WYN5axD1BNyfwaHAOm4UN2/VEYOkNSfMjmx2S0WW/F2ha8Jj4fc4QgqcXr+TnnbwqLkLTValK4Qa1pcv7PIbDq6zCUfxe04guZ8xEhPQjp17/G6IB/6uq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wnibxQ/cXEblVnM47wbCN3iy4eHjYB5MoIICrSYmd8nt4V0toLs084KJlmnur5FbApYM4W79ff4oZkW88Cg8Fv8TnWhh1Hqc4UlhMbRKm2QxDgfBxar3U7BwNR6prrXXjqfR7ja3tPli+H7Jez/xcTg32QpHAQAdTa7pSSgBvmOqzz175NAFIhwE9p3d71F9jLvhaPv8q1iKopL0kizwzEWElnXWmNhfLkl/Au8KujnoKUaxVdTe+zAZm2dOkejnpNVtVj0Aw9wKcG3ZQ1iRZrUFRIoPKYlmR+oi0LrupuhYABtgPbdCbDtezGTr0nw9wVd/rZ6V+1wcoJ6+8VAVueIdwI3brqm6EoFHiI8L6lER+9SefB8fHo4NYgr/I8jSxaa/2PLX2K/DjrlY6bN8fEcBAB7DXsuh8DITF6CYWj2HTFvqfzlic3QHXnHtvsTFNpyVY1LY8y/fRK2mwALN6IB5W3OuyoKiA3K0lJdQUv2gYhHWvPTV218HYrD0rkbMxRH0SiEEkrHDeOt5T1HtWD13D2/QvMu535fsfZyeaFDjdCE9M0Xi8Lfc7Xj1ZNGend7Jo7/cEiczFkc1vB4z2JpFGZreV2EdquyEzC2STFJtfimyx8QlLngEuR1cxH+lWEcFX+mvBa/eqktIRwEAH6VazFLPNsnHZqsI66TVoArQuUUGFAzr8MT8GZ9V6qpZa5D0jA/4eGi6Kq0smUgRExnqIbSMLWqDf/Pk2YT3MpHTu9VE3Dn9blgB6KsVIkWnB98Y2n/6DrZDcF94Ndu0Ka4U/RZwdV5O5KcO+lU2ZiIOYTYZ6Ie0d+tApxYxJ+YmxaDoCyRNe6crw/yzR5SflT8ddi/E2BM+l+nwVDiKZ/714fmrBxFKWuqLiQNHV19o1cZ8Ubun+ZtHQAASAACwDQABwQAAAAHwACqxBLL//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////0dQABIAArASAAHBAADhAPAAG+EA8AAVvU1W////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////RwEAEH1s3BdtHdF1ln55B24wdACF/ggcRtPmB4IUB6cZJ+m32I4R48ZkdhAFBulgWcsv0wZwH0o1yi3i4qm3rJ98AUKdB9PsNyG9gURV0bTw4myAj6g5Dgodfv6w9bsbOxsGUWkvgAJ3rrR010BvZbIa6CMRCQRjxkCfRF77ansRJZT0JzhtYeSS/ZJob8Rr2jrng3W2rkmHtE+rdqlPiHxmwkRZvYGhBxwiJO2L6f+l/cABsfs09rA+A0pHAQAREZay3TBUIAfMWhApE+LaPgeyOYtaPFONA9aC0h4QrFkaLZfb86678MK+zLgqDBsDoj50eZHMVcczRjs4sYlv7RG8RIWKb5lB9Kn/8+CkxiiA11cHH1yzLX2SKCmhsak/+P/zYQ1EDvEj33bl9e3Jd62cTI+Qw99KrsWnUMN8hFNeXzoGHA3aec+Li4NFboF8sa6lCPR6Csxsvxw8DJaWCnER5Z0p+nKhXavF/eNHQ0DX47ohycc87UcBABKsYHCHXXe3vK1cFYDWO6rhwM6hxCdJ+/X+VB1akQejL6iBMdUPuadUqBnbprwJM0dWpSSn9uuZZeqe46iZOGIJUo69d8x+ZSvPcBH/dK1Y0LJnoWdgWH51SQg7eYqcwjQW3BOy7ZF02Hn1EhTuhsN7ms8zv3WIeEBDBq0T3Idl+Tmw9iJU9skVYiwygHG2+0XwrLa6y+uiQPwMzrnEr1kuf24XoAqrJTZQiVH3aQF4d94yDreWu2KPRwEAE2FsynHZaUcBXEFbeX0nSxZ7sRcRjJvc7RYOny6N8QFwKDVO7jpRWWYM55kuepBOyZ+7BFYeG+FU1kR+ZfmqyDNkD4D1IPwNh6u9JQxDymfN/aMcQC3WxdvCKquPsAut6dugpGkOFtIe+W3ayc4V/J978P+h1EDFMbFjxRPuXht0K2dBQZCJ0ybISUDqWzhPuep8CdxSU4MvMVfdXh7FLl/BqKJUTT+vM+Pz3XnqCQQmH5TjQ4CK55VHAQAUEtgfkBwIYgtwHkhjmtLw7HNTeJeMfTjATEKcyuKzItSeYxHBmGzQ/+G2otpPCOkVAXJ9mfx7LxrW4joZ0ttTRQJ/wqMUK1IN349LiJoo8y/+FwN4jPNDwIleJG697riqnmLOweFW8spHKLBfnHcyC1pG6EIxFpTqUQ0KHqXD/KXIHKioJNAOVwQ1Gfloxebo/Tdtd00dpHP3gcsAOnV75APCYOjVIlwm2X6ViDeZw6Btdb/Br/+yokcBABU3+eOESLlneGbR5SLiL8wPkoRaZ5X7xFlMTMvsv9yHk26bVdmsubSdbYS1Hy64n0+NnL7C1aLD7aJxOudMjVW5goZbfO2KxBQkCD4HFA284wbaB5vOL7mRilCn6YEs1kiwf22+fBLNUmXDb2p353wrD/ygTDhlki66USvUmd/ZAs9uzAddegEzy7Xn00YysWTu/hegYyZtWFC+X5dhLubWJ7n96y5wjrP7PAOXoQQtFUH9j/rBiP/7RwEAFnL/wYKYuj80mPGtimSbF/E9K7XwjwBz8yHZubmVMTCmwkZBM4h0FR1thnUGiSjqjJT6SfunWCZ/dZDQplrzS00UKcUP399SyM+nNG1br8Za0ZYwWch8nyLHYXSRuxdnrfUUespsOQo1cWSLGf0pV2HIcHoiAAEKwPU6irB5BSoFvB1qKVjgEk+QwAEYAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAABHAQA3pAD/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////AwAAAwAAAwAAAwAAAwAAAwBbwUdBABgAAAHgAACAwAoxAAmBIREAB/SBAAAAAQnwAAAAAUGaJGxDv/6plgAAAwAAAwAAAwAAAwAAAwAAAwAAAwAKCKB0AIhy1ftwLNISWucTFC7xeBcaIzP3oZjZo8uT9hqZVstWGnrPz+vjaA5FuCO+K2w7/o39LygDO7aL+0zSrN90LW7r133x8+f+PEKk8d7pd2fj4RYuMOXOYunzFzRX/4IvR1XsK5WJYwVkOca3yfo7DTvUBP9rgSiTRwEAGQD6CFK1PBC4qYCa+coLVnX+jgODNrau5YJXIekDI4+wUNV+5T5HE4e2t5EGAjn77+kC1Vghmvx8KqPnylVUvsaTofheggxHsPuxn1zQt6nA59UglrRUMn8b4pmrvfqTBSqU949+AcNAI6M/eAqz6r0RG5KNeBhx8R2f0x2kujwHU3pc3rlPb6ZrFM/2HiG97eEIezrvWFG7YAAAAwAAAwAE1KRo1VfbdZQ/tOpNGxFmTcQoFidyD2tHAQAapTTIErUKA2Rc9uIzGJu+oW0uNOxRyl6oJNUNJp5L9TIshNS1CmUKgdCaE3LkLwdE8iUkUnIGfWLiWpWmjzsINYC8dnDaSptB53yJkBu0SsR00oo1PZ0pl4ZzoXGSYQJTPaVCbj6FNqm5wcnUqKTB/rgHdPdnDj0K8asLABeo/n3XCXrDorI+LYSD1FBgmV9O7RZdjfL0NnXOQkiq/ZGirwVV0cUF1aHtZx1yHlAAZKuuu7TqB13CAUcBADuRAP///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////yj/IrOvAEoXDNGy+nrxWN0l8cmuqWYaUJpuM9XgAAADAAADAAKmR0EAPAcQAACJHH4AAAAB4AAAgMAKMQAJSOERAAkQoQAAAAEJ8AAAAAFBnkJ4hf8AAAMAAAMAAAMAAAMAAAMAAAMAAAMAC/BmhyuvLmkCgKTgACEXfOVvHRHdpBEEmTTz9pIZCa2FD0CXukzDCakOHekTpJQSdsfd7a/jjM1/5lBtKCAGQ6zOCSQ6DeKtyw+CugDuuglGipwmvQW+FIDjnZ6HRd0uaSOGy6VB3h9MI1o4nqaCqVwwIgubYZFHAQA9XgD////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////WcZrO6BEiqf8pCxYwlz2mkdUzY/ipM/TIHS4m5xQAAAMAAAMAAA5sVm90p14dlvWgBgY7XQ9KVOJKLtaMAN5KiffVQtNuzW5DfL+RewZpAAADAAADAAAQMUdBAB4AAAHgAACAgAUhAAkswQAAAAEJ8AAAAAEBnmF0Qr8AAAMAAAMAAAMAAAMAAAMAAAMAAAMAABJfBjP2+4+W7ZybyT130+Ma4WSqICfd/dS4YtjrLlmh5VBlfrtwJqdN1PBTYDkwGOOONqZQeFN6lLGJoDzvuh3kv1aDBLqug+JhvrSeu5ebnvcrtQzb2REwJL3h9mvtkr0WfDu4AAADAAADAAs32Y4C/6Ns79oCGj6oqLltY3T4I0/QRwEAP5wA//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////8BeoWLRnKQmVgO/RBoBfcK85AAAAMAAAMACFhHQQAwBxAAAJcsfgAAAAHgAACAwAoxAAllAREACUjhAAAAAQnwAAAAAQGeY2pCvwAAAwAAAwAAAwAAAwAAAwAAAwAAAwAAEmDKfLGXsvBBQPNYXlEd6WueJ4deApfcHESlG+7V6u0AiWQqJvNZYM+3Js3Lj9Ldc9yYIHqruVwfMtCYGlX3wMavI/DrhMuJw+RreIF8SKsJD8CMccAAAAMAAAMACrFZOBgEqaP/8EyWsAHV6CgcAgfyox/roEcBADGuAP//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////AAADAAADAHTBR0EAEgAAAeAAAIDACjEACfGhEQAJZQEAAAABCfAAAAABQZpoSahBaJlMCHf//qmWAAADAAADAAADAAADAAADAAADAAADAAALf8A2bry6lUyIAQGNFfVK2Cd7h4qDqmqpvmXfkfTwo2Ab79AHhajxJ4MPWIgAAA84xLRIx7I2CrWjWe96OvgkzgS9mtvhuxdzAgpuIOJI3DEY9mviDDZz8XSAAAADAAADAB7AZkj9AAHHGvk+Pzlku8UkWa5HAQAzogD//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////6HjAkbF/gsWuvw4QAAAAwAAAwAccUdBADQHEAAApTx+AAAAAeAAAIDACjEACblhEQAJgSEAAAABCfAAAAABQZ6GRREsL/8AAAMAAAMAAAMAAAMAAAMAAAMAAAMAAA3URJB/3lMHSmOd0GYZnfpoR80WdqxlyHzPX+V81VUMeXIGrRgq5agd+ACdjoGI036yQ/rmpGw0CmMBrKwpI+nwFo3SP0s1rI2yHBZaiPJjSUgw33rBkxXcq55kfLf2sAAAAwAAAwACBWolidWDnIeQAAADRwEANbEA//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////8AAAMADulHQQA2NAD///////////////////////////////////////////////////////////////////8AAAHgAACAgAUhAAmdQQAAAAEJ8AAAAAEBnqV0Qr8AAAMAAAMAAAMAAAMAAAMAAAMAAAMAABJXNihCnx11JUosH2hBE53O/YN+GPHqcnJiQBIf3maTAAj5iRt+7GYUKBAU9iCXTiouCjGYgAAAAwAAAwA9p4HQBg2cAAADAAADAADGgUdBADc4EAAAs0x+AP////////////////////////////////////////////////////////////////8AAAHgAACAwAoxAAnVgREACblhAAAAAQnwAAAAAQGep2pCvwAAAwAAAwAAAwAAAwAAAwAAAwAAAwAAAwBR6/L83y+ZevtMZ0FW4lp8qV7fVXQAhLAWlS6mDxvpaSUgChorvgTMXtxJEIAAAAMAAAMACqFCAAADAAADAAADAAz4R0EAOCsA////////////////////////////////////////////////////////AAAB4AAAgMAKMQALYiERAAnVgQAAAAEJ8AAAAAFBmqxJqEFsmUwId//+qZYAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAApQTq0hABLvkcWCYrAaRRPNDrECJGlF/11BYvG9+JJ9Y86nxnmQzPxtAAe1UgOsXAAADAAADAAADAAADAAADAAADAAADA/JHQQA5JhAAAMFcfgD/////////////////////////////////////////AAAB4AAAgMAKMQALKeERAAnxoQAAAAEJ8AAAAAFBnspFFSwv/wAAAwAAAwAAAwAAAwAAAwAAAwAAAwAADdRFmvrVE0KXDOGwWddlwYa1foib7tXZKmkua6R4APb4b8+tXwdSNNqgf2IVNwGTohgQAcMvp6SiQxpiQym4AAADAAADAANUNUAAAAMAAAMAAAMBN0dBADo8AP//////////////////////////////////////////////////////////////////////////////AAAB4AAAgIAFIQALDcEAAAABCfAAAAABAZ7pdEK/AAADAAADAAADAAADAAADAAADAAADAAADAFHTAfujIUaaLSuklb9y0/so9AEtQAqkAxOviALQZ5jNt/iOkABrCOZ4md0iUnFwAAADAAADAALwckAAAAMAAAMAAATcR0EAO0IQAADPbH4A//////////////////////////////////////////////////////////////////////////////8AAAHgAACAwAoxAAtGAREACynhAAAAAQnwAAAAAQGe62pCvwAAAwAAAwAAAwAAAwAAAwAAAwAAAwAAAwBR6/L83y+WryR9gmVKPGbIhJpkgAFgHCej3gB6rAHPgHHAAAADAAADAAAYIV0AAAMAAAMAAAMABnxHQQA8UQD//////////////////////////////////////////////////////////////////////////////////////////////////////////wAAAeAAAIDACjEAC9KhEQALRgEAAAABCfAAAAABQZrwSahBbJlMCG///qeEAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAAZ8UdBAD00EAAA3Xx+AP///////////////////////////////////////////////////////////wAAAeAAAIDACjEAC5phEQALYiEAAAABCfAAAAABQZ8ORRUsL/8AAAMAAAMAAAMAAAMAAAMAAAMAAAMAAA3URZr61RNClwzhI2ZXdRHYLZWc1yTgKRhTIXBNABHQKIIyYNyc+AaEn1jhATEAAAMAAAMAAAMAckkIAAADAAADAAADAEbBR0EAPkYA////////////////////////////////////////////////////////////////////////////////////////////AAAB4AAAgIAFIQALfkEAAAABCfAAAAABAZ8tdEK/AAADAAADAAADAAADAAADAAADAAADAAADAFHTAfujIUAYRtY0f/43cIs2OjxACR2hMR1QBGYX+34JGAAAAwAAAwAAAwKEJ6AAAAMAAAMAAAMA3oFHQQA/QhAAAOuMfgD//////////////////////////////////////////////////////////////////////////////wAAAeAAAIDACjEAC7aBEQALmmEAAAABCfAAAAABAZ8vakK/AAADAAADAAADAAADAAADAAADAAADAAADAFHr8vzfL5avJH2CZUo8ZsiEmmSAAWAcJ6PeAHqsAc+AccAAAAMAAAMAABghXQAAAwAAAwAAAwAGfEdBADBRAP//////////////////////////////////////////////////////////////////////////////////////////////////////////AAAB4AAAgMAKMQANQyERAAu2gQAAAAEJ8AAAAAFBmzRJqEFsmUwIZ//+nhAAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAGVAR0EAMTQQAAD5nH4A////////////////////////////////////////////////////////////AAAB4AAAgMAKMQANCuERAAvSoQAAAAEJ8AAAAAFBn1JFFSwv/wAAAwAAAwAAAwAAAwAAAwAAAwAAAwAADdRFmvrVE0KXDOEjZld1EdgtlZzXJOApGFMhcE0AEdAogjJg3Jz4BoSfWOEBMQAAAwAAAwAAAwBySQgAAAMAAAMAAAMARsFHQQAyRgD///////////////////////////////////////////////////////////////////////////////////////////8AAAHgAACAgAUhAAvuwQAAAAEJ8AAAAAEBn3F0Qr8AAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAUdMB+6MhQBhG1jR//jdwizY6PEAJHaExHVAEZhf7fgkYAAADAAADAAADAoQnoAAAAwAAAwAAAwDegEdBADNCEAABB6x+AP//////////////////////////////////////////////////////////////////////////////AAAB4AAAgMAKMQANJwERAA0K4QAAAAEJ8AAAAAEBn3NqQr8AAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAUevy/N8vlq8kfYJlSjxmyISaZIABYBwno94AeqwBz4BxwAAAAwAAAwAAGCFdAAADAAADAAADAAZ8R0EANFIA////////////////////////////////////////////////////////////////////////////////////////////////////////////AAAB4AAAgMAKMQANs6ERAA0nAQAAAAEJ8AAAAAFBm3hJqEFsmUwIV//+OEAAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAYtHQQA1NBAAARW8fgD///////////////////////////////////////////////////////////8AAAHgAACAwAoxAA17YREADUMhAAAAAQnwAAAAAUGflkUVLC//AAADAAADAAADAAADAAADAAADAAADAAAN1EWa+tUTQpcM4SNmV3UR2C2VnNck4CkYUyFwTQAR0CiCMmDcnPgGhJ9Y4QExAAADAAADAAADAHJJCAAAAwAAAwAAAwBGwEdBADZGAP///////////////////////////////////////////////////////////////////////////////////////////wAAAeAAAICABSEADV9BAAAAAQnwAAAAAQGftXRCvwAAAwAAAwAAAwAAAwAAAwAAAwAAAwAAAwBR0wH7oyFAGEbWNH/+N3CLNjo8QAkdoTEdUARmF/t+CRgAAAMAAAMAAAMChCegAAADAAADAAADAN6BR0EAN0IQAAEjzH4A//////////////////////////////////////////////////////////////////////////////8AAAHgAACAwAoxAA2XgREADXthAAAAAQnwAAAAAQGft2pCvwAAAwAAAwAAAwAAAwAAAwAAAwAAAwAAAwBR6/L83y+WryR9gmVKPGbIhJpkgAFgHCej3gB6rAHPgHHAAAADAAADAAAYIV0AAAMAAAMAAAMABn0=" From 0d04d7c2f93f67e4aa793c32ccd4db20cb5f7f0e Mon Sep 17 00:00:00 2001 From: SCP002 Date: Tue, 3 May 2022 15:52:39 +0300 Subject: [PATCH 105/189] Add git clone command to README.md, fix type there --- README.md | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 7f0cd93..078ea1b 100644 --- a/README.md +++ b/README.md @@ -124,6 +124,10 @@ When the branch is changed, an update is only performed if there is a new versio #### 1. Download source code +```sh +git clone https://github.com/SCP002/xTeVe.git +``` + #### 2. Install dependencies ```sh @@ -147,7 +151,7 @@ go get github.com/stretchr/testify go get -u ./... ``` -#### 4. Update web files (optional) +#### 5. Update web files (optional) If TypeScript files were changed, run: From 1a235924e92208814ec5ed16f66191b4bb2d20a4 Mon Sep 17 00:00:00 2001 From: SCP002 Date: Tue, 3 May 2022 15:55:38 +0300 Subject: [PATCH 106/189] Add an option to disallow stream url duplicates. Minor refactoring. Closes #15 --- html/js/base_ts.js | 2 +- html/js/settings_ts.js | 14 +++++++++ html/lang/en.json | 5 ++++ src/buffer.go | 5 ++-- src/data.go | 10 +++++++ src/hdhr.go | 4 ++- src/m3u.go | 3 +- src/struct-system.go | 41 ++++++++++++------------- src/struct-webserver.go | 3 +- src/system.go | 1 + src/toolchain.go | 22 -------------- src/webUI.go | 6 ++-- src/webserver.go | 25 ++++++++-------- src/xepg.go | 66 ++++++++++++++++++++--------------------- ts/base_ts.ts | 2 +- ts/settings_ts.ts | 18 +++++++++++ 16 files changed, 129 insertions(+), 98 deletions(-) diff --git a/html/js/base_ts.js b/html/js/base_ts.js index 264a5f3..ef87c29 100644 --- a/html/js/base_ts.js +++ b/html/js/base_ts.js @@ -18,7 +18,7 @@ menuItems.push(new MainMenuItem("log", "{{.mainMenu.item.log}}", "log.png", "{{. menuItems.push(new MainMenuItem("logout", "{{.mainMenu.item.logout}}", "logout.png", "{{.mainMenu.headline.logout}}")); // Settings categories var settingsCategory = new Array(); -settingsCategory.push(new SettingsCategoryItem("{{.settings.category.general}}", "tlsMode,xteveAutoUpdate,hostIP,tuner,epgSource,api")); +settingsCategory.push(new SettingsCategoryItem("{{.settings.category.general}}", "tlsMode,xteveAutoUpdate,hostIP,tuner,epgSource,disallowURLDuplicates,api")); settingsCategory.push(new SettingsCategoryItem("{{.settings.category.files}}", "update,files.update,temp.path,cache.images,xepg.replace.missing.images")); settingsCategory.push(new SettingsCategoryItem("{{.settings.category.streaming}}", "buffer,udpxy,buffer.size.kb,storeBufferInRAM,buffer.timeout,user.agent,ffmpeg.path,ffmpeg.options,vlc.path,vlc.options")); settingsCategory.push(new SettingsCategoryItem("{{.settings.category.backup}}", "backup.path,backup.keep")); diff --git a/html/js/settings_ts.js b/html/js/settings_ts.js index 39fdd8b..2b18c86 100644 --- a/html/js/settings_ts.js +++ b/html/js/settings_ts.js @@ -128,6 +128,17 @@ class SettingsCategory { setting.appendChild(tdLeft); setting.appendChild(tdRight); break; + case "disallowURLDuplicates": + var tdLeft = document.createElement("TD"); + tdLeft.innerHTML = "{{.settings.disallowURLDuplicates.title}}" + ":"; + var tdRight = document.createElement("TD"); + var input = content.createCheckbox(settingsKey); + input.checked = data; + input.setAttribute("onchange", "javascript: this.className = 'changed'"); + tdRight.appendChild(input); + setting.appendChild(tdLeft); + setting.appendChild(tdRight); + break; case "authentication.web": var tdLeft = document.createElement("TD"); tdLeft.innerHTML = "{{.settings.authenticationWEB.title}}" + ":"; @@ -347,6 +358,9 @@ class SettingsCategory { case "tlsMode": text = "{{.settings.tlsMode.description}}"; break; + case "disallowURLDuplicates": + text = "{{.settings.disallowURLDuplicates.description}}"; + break; case "authentication.web": text = "{{.settings.authenticationWEB.description}}"; break; diff --git a/html/lang/en.json b/html/lang/en.json index ca431ce..7a6cff6 100644 --- a/html/lang/en.json +++ b/html/lang/en.json @@ -400,6 +400,11 @@ "title": "API Interface", "description": "Via API interface it is possible to send commands to xTeVe. API documentation is here" }, + "disallowURLDuplicates": + { + "title": "Disallow URL duplicates", + "description": "If checked, do not add a new channel from playlist if channel with such URL already exists" + }, "epgSource": { "title": "EPG Source", diff --git a/src/buffer.go b/src/buffer.go index 1fdf52c..8af757f 100644 --- a/src/buffer.go +++ b/src/buffer.go @@ -24,6 +24,7 @@ import ( "github.com/avfs/avfs/vfs/memfs" "github.com/avfs/avfs/vfs/osfs" + "github.com/samber/lo" ) func createStreamID(stream map[int]ThisStream) (streamID int) { @@ -368,7 +369,7 @@ func bufferingStream(playlistID, streamingURL, channelName string, w http.Respon } - var n = indexOfString(f, oldSegments) + var n = lo.IndexOf(oldSegments, f) if n > 20 { @@ -440,7 +441,7 @@ func getBufTmpFiles(stream *ThisStream) (tmpFiles []string) { var fileName = fmt.Sprintf("%d.ts", int64(file)) - if indexOfString(fileName, stream.OldSegments) == -1 { + if lo.IndexOf(stream.OldSegments, fileName) == -1 { tmpFiles = append(tmpFiles, fileName) stream.OldSegments = append(stream.OldSegments, fileName) } diff --git a/src/data.go b/src/data.go index 29cfe4d..de00005 100644 --- a/src/data.go +++ b/src/data.go @@ -800,6 +800,7 @@ func buildDatabaseDVR() (err error) { var availableFileTypes = []string{"m3u", "hdhr"} + var urlValuesMap = make(map[string]string) var tmpGroupsM3U = make(map[string]int64) err = createFilterRules() @@ -845,6 +846,15 @@ func buildDatabaseDVR() (err error) { s["_file.m3u.name"] = playlistName s["_file.m3u.id"] = id + if Settings.DisallowURLDuplicates { + if _, haveURL := urlValuesMap[s["url"]]; haveURL { + showInfo("Streams:" + fmt.Sprintf("Found duplicated URL %v, ignoring the channel %v", s["url"], s["name"])) + continue + } else { + urlValuesMap[s["url"]] = s["_values"] + } + } + // Calculate Compatibility for _, key := range keys { diff --git a/src/hdhr.go b/src/hdhr.go index 8afb02e..83f56f5 100644 --- a/src/hdhr.go +++ b/src/hdhr.go @@ -7,6 +7,8 @@ import ( "fmt" "sort" "strconv" + + "github.com/samber/lo" ) func makeInteraceFromHDHR(content []byte, playlistName, id string) (channels []interface{}, err error) { @@ -222,7 +224,7 @@ func getGuideNumberPMS(channelName string) (pmsID string, err error) { ids = append(ids, v) } - if indexOfString(id, ids) != -1 { + if lo.IndexOf(ids, id) != -1 { i++ goto newID } diff --git a/src/m3u.go b/src/m3u.go index d6688b5..5a93dc3 100644 --- a/src/m3u.go +++ b/src/m3u.go @@ -9,6 +9,7 @@ import ( "strconv" "strings" + "github.com/samber/lo" m3u "xteve/src/internal/m3u-parser" ) @@ -198,7 +199,7 @@ func buildM3U(groups []string) (m3u string, err error) { if len(groups) > 0 { - if indexOfString(xepgChannel.XGroupTitle, groups) == -1 { + if lo.IndexOf(groups, xepgChannel.XGroupTitle) == -1 { goto Done } diff --git a/src/struct-system.go b/src/struct-system.go index ebc7b31..b8761a8 100644 --- a/src/struct-system.go +++ b/src/struct-system.go @@ -275,26 +275,27 @@ type Notification struct { // SettingsStruct : Content of settings.json type SettingsStruct struct { - API bool `json:"api"` - AuthenticationAPI bool `json:"authentication.api"` - AuthenticationM3U bool `json:"authentication.m3u"` - AuthenticationPMS bool `json:"authentication.pms"` - AuthenticationWEB bool `json:"authentication.web"` - AuthenticationXML bool `json:"authentication.xml"` - BackupKeep int `json:"backup.keep"` - BackupPath string `json:"backup.path"` - Branch string `json:"git.branch,omitempty"` - Buffer string `json:"buffer"` - BufferSize int `json:"buffer.size.kb"` - BufferTimeout float64 `json:"buffer.timeout"` - CacheImages bool `json:"cache.images"` - EpgSource string `json:"epgSource"` - FFmpegOptions string `json:"ffmpeg.options"` - FFmpegPath string `json:"ffmpeg.path"` - VLCOptions string `json:"vlc.options"` - VLCPath string `json:"vlc.path"` - FileM3U []string `json:"file,omitempty"` // In the Wizard, the M3U is saved in a Slice - FileXMLTV []string `json:"xmltv,omitempty"` // Old Storage System of the provider XML File Slice (Required for the conversion to the new one) + API bool `json:"api"` + AuthenticationAPI bool `json:"authentication.api"` + AuthenticationM3U bool `json:"authentication.m3u"` + AuthenticationPMS bool `json:"authentication.pms"` + AuthenticationWEB bool `json:"authentication.web"` + AuthenticationXML bool `json:"authentication.xml"` + BackupKeep int `json:"backup.keep"` + BackupPath string `json:"backup.path"` + Branch string `json:"git.branch,omitempty"` + Buffer string `json:"buffer"` + BufferSize int `json:"buffer.size.kb"` + BufferTimeout float64 `json:"buffer.timeout"` + CacheImages bool `json:"cache.images"` + DisallowURLDuplicates bool `json:"disallowURLDuplicates"` + EpgSource string `json:"epgSource"` + FFmpegOptions string `json:"ffmpeg.options"` + FFmpegPath string `json:"ffmpeg.path"` + VLCOptions string `json:"vlc.options"` + VLCPath string `json:"vlc.path"` + FileM3U []string `json:"file,omitempty"` // In the Wizard, the M3U is saved in a Slice + FileXMLTV []string `json:"xmltv,omitempty"` // Old Storage System of the provider XML File Slice (Required for the conversion to the new one) Files struct { HDHR map[string]interface{} `json:"hdhr"` diff --git a/src/struct-webserver.go b/src/struct-webserver.go index 485e25f..18c3e32 100644 --- a/src/struct-webserver.go +++ b/src/struct-webserver.go @@ -29,6 +29,7 @@ type RequestStruct struct { BufferSize *int `json:"buffer.size.kb, omitempty"` BufferTimeout *float64 `json:"buffer.timeout,omitempty"` CacheImages *bool `json:"cache.images,omitempty"` + DisallowURLDuplicates *bool `json:"disallowURLDuplicates,omitempty"` EpgSource *string `json:"epgSource,omitempty"` FFmpegOptions *string `json:"ffmpeg.options,omitempty"` FFmpegPath *string `json:"ffmpeg.path,omitempty"` @@ -108,7 +109,7 @@ type ResponseStruct struct { Alert string `json:"alert,omitempty"` ConfigurationWizard bool `json:"configurationWizard,required"` Error string `json:"err,omitempty"` - IPAddressesV4Host []string `json:"ipAddressesV4Host"`// Every IPv4 address to display in web client + IPAddressesV4Host []string `json:"ipAddressesV4Host"` // Every IPv4 address to display in web client Log WebScreenLogStruct `json:"log,required"` LogoURL string `json:"logoURL,omitempty"` OpenLink string `json:"openLink,omitempty"` diff --git a/src/system.go b/src/system.go index 5df0c23..b0490a3 100644 --- a/src/system.go +++ b/src/system.go @@ -116,6 +116,7 @@ func loadSettings() (settings SettingsStruct, err error) { defaults["buffer.timeout"] = 500 defaults["buffer"] = "-" defaults["cache.images"] = false + defaults["disallowURLDuplicates"] = false defaults["epgSource"] = "PMS" defaults["ffmpeg.options"] = System.FFmpeg.DefaultOptions defaults["files.update"] = true diff --git a/src/toolchain.go b/src/toolchain.go index 41c3af0..7ff4771 100644 --- a/src/toolchain.go +++ b/src/toolchain.go @@ -451,28 +451,6 @@ func parseTemplate(content string, tmpMap map[string]interface{}) (result string return } -func indexOfString(element string, data []string) int { - - for k, v := range data { - if element == v { - return k - } - } - - return -1 -} - -func indexOfFloat64(element float64, data []float64) int { - - for k, v := range data { - if element == v { - return (k) - } - } - - return -1 -} - func getMD5(str string) string { md5Hasher := md5.New() diff --git a/src/webUI.go b/src/webUI.go index 244af2b..c218b77 100644 --- a/src/webUI.go +++ b/src/webUI.go @@ -25,14 +25,14 @@ func loadHTMLMap() { webUI["html/img/xmltv.png"] = "iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAAAXNSR0IArs4c6QAAAAlwSFlzAAAsSwAALEsBpT2WqQAABCRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IlhNUCBDb3JlIDUuNC4wIj4KICAgPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIgogICAgICAgICAgICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgICAgICAgICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyI+CiAgICAgICAgIDx0aWZmOlJlc29sdXRpb25Vbml0PjI8L3RpZmY6UmVzb2x1dGlvblVuaXQ+CiAgICAgICAgIDx0aWZmOkNvbXByZXNzaW9uPjU8L3RpZmY6Q29tcHJlc3Npb24+CiAgICAgICAgIDx0aWZmOlhSZXNvbHV0aW9uPjI4ODwvdGlmZjpYUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6T3JpZW50YXRpb24+MTwvdGlmZjpPcmllbnRhdGlvbj4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+Mjg4PC90aWZmOllSZXNvbHV0aW9uPgogICAgICAgICA8ZXhpZjpQaXhlbFhEaW1lbnNpb24+NTA8L2V4aWY6UGl4ZWxYRGltZW5zaW9uPgogICAgICAgICA8ZXhpZjpDb2xvclNwYWNlPjE8L2V4aWY6Q29sb3JTcGFjZT4KICAgICAgICAgPGV4aWY6UGl4ZWxZRGltZW5zaW9uPjUwPC9leGlmOlBpeGVsWURpbWVuc2lvbj4KICAgICAgICAgPGRjOnN1YmplY3Q+CiAgICAgICAgICAgIDxyZGY6QmFnLz4KICAgICAgICAgPC9kYzpzdWJqZWN0PgogICAgICAgICA8eG1wOk1vZGlmeURhdGU+MjAxOC0wNy0yOFQyMDowNzozMzwveG1wOk1vZGlmeURhdGU+CiAgICAgICAgIDx4bXA6Q3JlYXRvclRvb2w+UGl4ZWxtYXRvciAzLjM8L3htcDpDcmVhdG9yVG9vbD4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgIDwvcmRmOlJERj4KPC94OnhtcG1ldGE+Co6j9bsAAAGgSURBVGgF7VqxTsNADL0gYGEon8DOwsbAAH8BYmJn6cYIn8DC3h0+oixISFRiYYCJL0AwMMBAeK5w2rpV6uikxHfYknW98+vds18TK21DWGBlWR7CH+BfcEv2AzLP8HP42gLqkyUATuEp2PWEdQjF9ATs1zF/g29Mrxt+vVcUxR3xWxEktzFPJQmivsv8ZSI9DiQyVnxlIonwn6fpiczXpNuVVXH8O+a3Ys3y9NUyuf/NTTbEHZTjUlGSRzSiPhroUIENwB4AS/vS/susDwDhTpYBER9g7wHh5DWyibV9CiitCZbIafDEYUuJHQI3Nr/9ciWsjK6IFSWYhyvClbAyZqOIlYJG84jq7E1Ot97Zm+TinV1TrWwudk9EI3ebGFekzWprzspGEU2ySWCiOrs/s9dr7M/s9fVJJJrNXcsTsfaJc0WsKZINH+/sf1Jqvl1n1f2ZnStRN/pdq646XcSkIh9dkIg4s+IrE3nCpp8RG7f91ns+cCYR/LD4jcAZB42PN+A7/mcQ8ZxJhBYQvMJwBB/BKTFLVoLMC/wCfgyv7BesTKUC2LKM3wAAAABJRU5ErkJggg==" webUI["html/index.html"] = "PCFkb2N0eXBlIGh0bWw+DQo8aHRtbD4NCiAgPGhlYWQ+DQogICAgPG1ldGEgY2hhcnNldD0idXRmLTgiPg0KICAgIDwhLS0tDQogICAgPG1ldGEgbmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9IndpZHRoPWRldmljZS13aWR0aCwgaW5pdGlhbC1zY2FsZT0xLjAiIC8+IA0KICAgIC0tPg0KICAgIDx0aXRsZT54VGVWZTwvdGl0bGU+DQogICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJjc3Mvc2NyZWVuLmNzcyIgdHlwZT0idGV4dC9jc3MiPg0KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iY3NzL2Jhc2UuY3NzIiB0eXBlPSJ0ZXh0L2NzcyI+DQoNCiAgICA8c2NyaXB0IGxhbmd1YWdlPSJqYXZhc2NyaXB0IiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ianMvbmV0d29ya190cy5qcyI+PC9zY3JpcHQ+DQogICAgPHNjcmlwdCBsYW5ndWFnZT0iamF2YXNjcmlwdCIgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9ImpzL21lbnVfdHMuanMiPjwvc2NyaXB0Pg0KICAgIDxzY3JpcHQgbGFuZ3VhZ2U9ImphdmFzY3JpcHQiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJqcy9zZXR0aW5nc190cy5qcyI+PC9zY3JpcHQ+DQogICAgPHNjcmlwdCBsYW5ndWFnZT0iamF2YXNjcmlwdCIgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9ImpzL2xvZ3NfdHMuanMiPjwvc2NyaXB0Pg0KICAgIDxzY3JpcHQgbGFuZ3VhZ2U9ImphdmFzY3JpcHQiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJqcy9iYXNlX3RzLmpzIj48L3NjcmlwdD4NCg0KICA8L2hlYWQ+DQoNCiAgICA8Ym9keSBvbmxvYWQ9ImphdmFzY3JpcHQ6IFBhZ2VSZWFkeSgpOyI+DQoNCiAgICAgIDxkaXYgaWQ9ImxvYWRpbmciIGNsYXNzPSJub25lIj4NCiAgICAgICAgPGRpdiBjbGFzcz0ibG9hZGVyIj48L2Rpdj4NCiAgICAgIDwvZGl2Pg0KDQogICAgICA8ZGl2IGlkPSJwb3B1cCIgY2xhc3M9Im5vbmUiPg0KICAgICAgICA8ZGl2IGlkPSJwb3B1cC1jdXN0b20iPjwvZGl2Pg0KICAgICAgPC9kaXY+DQoNCiAgICAgIDxkaXYgaWQ9ImxheW91dCI+DQoNCiAgICAgICAgPCEtLQ0KICAgICAgICA8ZGl2IGlkPSJub3RpZmljYXRpb24iPg0KICAgICAgICAgIDxkaXYgY2xhc3M9ImVsZW1lbnQiPg0KICAgICAgICAgICAgPGg1PlhFUEc8L2g1Pg0KICAgICAgICAgICAgPHByZT4xMS4wNS4yMDE5IC0gMjA6MjE8L3ByZT4NCiAgICAgICAgICAgIDxocj4NCiAgICAgICAgICAgIDxwPkhhbGxvIGRhcyBpc3QgZWluIFRlc3QuIFVuZCBub2NoIG1laHIgVGV4dC48L3A+DQogICAgICAgICAgPC9kaXY+DQogICAgICAgIDwvZGl2Pg0KICAgICAgLS0+DQoNCiAgICAgICAgPGRpdiBpZD0ibWVudS13cmFwcGVyIiBjbGFzcz0ibGF5b3V0LWxlZnQiPg0KICAgICAgICAgIDxkaXYgaWQ9ICJicmFuY2giPjwvZGl2Pg0KICAgICAgICAgIDxkaXYgaWQ9ImxvZ28iPjwvZGl2Pg0KICAgICAgICAgIDxuYXYgaWQ9Im1haW4tbWVudSI+PC9uYXY+DQogICAgICAgIDwvZGl2Pg0KDQogICAgICAgIDxkaXYgY2xhc3M9ImxheW91dC1yaWdodCI+DQoNCiAgICAgICAgICA8dGFibGUgaWQ9ImNsaWVudEluZm8iIGNsYXNzPSIiPg0KDQogICAgICAgICAgICA8dHI+DQogICAgICAgICAgICAgIDx0ZCBjbGFzcz0idGRLZXkiPnhUZVZlOjwvdGQ+DQogICAgICAgICAgICAgIDx0ZCBpZD0idmVyc2lvbiIgY2xhc3M9InRkVmFsIj4mbmJzcDs8L3RkPg0KICAgICAgICAgICAgICA8dGQgY2xhc3M9InRkS2V5Ij5PUzo8L3RkPg0KICAgICAgICAgICAgICA8dGQgaWQ9Im9zIiBjbGFzcz0idGRWYWwiPiZuYnNwOzwvdGQ+DQogICAgICAgICAgICAgIDx0ZCBjbGFzcz0idGRLZXkgcGhvbmUiPkRWUiBJUDo8L3RkPg0KICAgICAgICAgICAgICA8dGQgaWQ9IkRWUiIgY2xhc3M9InRkVmFsIHBob25lIj4mbmJzcDs8L3RkPg0KICAgICAgICAgICAgPC90cj4NCg0KICAgICAgICAgICAgPHRyPg0KICAgICAgICAgICAgICA8dGQgY2xhc3M9InRkS2V5Ij5VVUlEOjwvdGQ+DQogICAgICAgICAgICAgIDx0ZCBpZD0idXVpZCIgY2xhc3M9InRkVmFsIj4mbmJzcDs8L3RkPg0KICAgICAgICAgICAgICA8dGQgY2xhc3M9InRkS2V5Ij5BcmNoOjwvdGQ+DQogICAgICAgICAgICAgIDx0ZCBpZD0iYXJjaCIgY2xhc3M9InRkVmFsIj4mbmJzcDs8L3RkPg0KICAgICAgICAgICAgICA8dGQgY2xhc3M9InRkS2V5IHBob25lIj5NM1UgVVJMOjwvdGQ+DQogICAgICAgICAgICAgIDx0ZCBpZD0ibTN1LXVybCIgY2xhc3M9InRkVmFsIHBob25lIj4mbmJzcDs8L3RkPg0KICAgICAgICAgICAgPC90cj4NCg0KICAgICAgICAgICAgPHRyPg0KICAgICAgICAgICAgICA8dGQgY2xhc3M9InRkS2V5Ij5BdmFpbGFibGUgU3RyZWFtczo8L3RkPg0KICAgICAgICAgICAgICA8dGQgaWQ9InN0cmVhbXMiIGNsYXNzPSJ0ZFZhbCI+Jm5ic3A7PC90ZD4NCiAgICAgICAgICAgICAgPHRkIGNsYXNzPSJ0ZEtleSI+RVBHIFNvdXJjZTo8L3RkPg0KICAgICAgICAgICAgICA8dGQgaWQ9ImVwZ1NvdXJjZSIgY2xhc3M9InRkVmFsIj4mbmJzcDs8L3RkPg0KICAgICAgICAgICAgICA8dGQgY2xhc3M9InRkS2V5IHBob25lIj5YRVBHIFVSTDo8L3RkPg0KICAgICAgICAgICAgICA8dGQgaWQ9InhlcGctdXJsIiBjbGFzcz0idGRWYWwgcGhvbmUiPiZuYnNwOzwvdGQ+DQogICAgICAgICAgICA8L3RyPg0KDQogICAgICAgICAgICA8dHI+DQogICAgICAgICAgICAgIDx0ZCBjbGFzcz0idGRLZXkiPlhFUEcgQ2hhbm5lbHM6PC90ZD4NCiAgICAgICAgICAgICAgPHRkIGlkPSJ4ZXBnIiBjbGFzcz0idGRWYWwiPiZuYnNwOzwvdGQ+DQogICAgICAgICAgICAgIDx0ZCBjbGFzcz0idGRLZXkiPkVycm9yczo8L3RkPg0KICAgICAgICAgICAgICA8dGQgaWQ9ImVycm9ycyIgY2xhc3M9InRkVmFsIj4mbmJzcDs8L3RkPg0KICAgICAgICAgICAgICA8dGQgY2xhc3M9InRkS2V5Ij5XYXJuaW5nczo8L3RkPg0KICAgICAgICAgICAgICA8dGQgaWQ9Indhcm5pbmdzIiBjbGFzcz0idGRWYWwiPiZuYnNwOzwvdGQ+DQogICAgICAgICAgICA8L3RyPg0KDQogICAgICAgICAgPC90YWJsZT4NCiAgICAgICAgIA0KICAgICAgICAgIDxkaXYgaWQ9Im15U3RyZWFtc0JveCIgY2xhc3M9Im5vdFZpc2libGUiPg0KDQogICAgICAgICAgICA8ZGl2IGlkPSJhbGxTdHJlYW1zIj4NCiAgICAgICAgICAgICAgPHRhYmxlIGlkPSJhY3RpdmVTdHJlYW1zIj48L3RhYmxlPg0KICAgICAgICAgICAgICA8dGFibGUgaWQ9ImluYWN0aXZlU3RyZWFtcyI+PC90YWJsZT4NCiAgICAgICAgICAgIDwvZGl2Pg0KDQogICAgICAgICAgPC9kaXY+DQogICAgICAgICAgDQogICAgICAgICAgPGRpdiBpZD0iY29udGVudCIgY2xhc3M9IiI+PC9kaXY+DQogICAgICAgICAgICANCiAgICAgICAgPC9kaXY+DQoNCiAgICAgIDwvZGl2Pg0KICAgICAgDQogICAgPC9ib2R5Pg0KICAgIA0KPC9odG1sPg==" webUI["html/js/authentication_ts.js"] = "ZnVuY3Rpb24gbG9naW4oKSB7DQogICAgdmFyIGVyciA9IGZhbHNlOw0KICAgIHZhciBkYXRhID0gbmV3IE9iamVjdCgpOw0KICAgIHZhciBkaXYgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29udGVudCIpOw0KICAgIHZhciBmb3JtID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImF1dGhlbnRpY2F0aW9uIik7DQogICAgdmFyIGlucHV0cyA9IGRpdi5nZXRFbGVtZW50c0J5VGFnTmFtZSgiSU5QVVQiKTsNCiAgICBmb3IgKHZhciBpID0gaW5wdXRzLmxlbmd0aCAtIDE7IGkgPj0gMDsgaS0tKSB7DQogICAgICAgIHZhciBrZXkgPSBpbnB1dHNbaV0ubmFtZTsNCiAgICAgICAgdmFyIHZhbHVlID0gaW5wdXRzW2ldLnZhbHVlOw0KICAgICAgICBpZiAodmFsdWUubGVuZ3RoID09IDApIHsNCiAgICAgICAgICAgIGlucHV0c1tpXS5zdHlsZS5ib3JkZXJDb2xvciA9ICJyZWQiOw0KICAgICAgICAgICAgZXJyID0gdHJ1ZTsNCiAgICAgICAgfQ0KICAgICAgICBkYXRhW2tleV0gPSB2YWx1ZTsNCiAgICB9DQogICAgaWYgKGVyciA9PSB0cnVlKSB7DQogICAgICAgIGRhdGEgPSBuZXcgT2JqZWN0KCk7DQogICAgICAgIHJldHVybjsNCiAgICB9DQogICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoImNvbmZpcm0iKSkgew0KICAgICAgICBpZiAoZGF0YVsiY29uZmlybSJdICE9IGRhdGFbInBhc3N3b3JkIl0pIHsNCiAgICAgICAgICAgIGFsZXJ0KCJzZGFmc2QiKTsNCiAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdwYXNzd29yZCcpLnN0eWxlLmJvcmRlckNvbG9yID0gInJlZCI7DQogICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY29uZmlybScpLnN0eWxlLmJvcmRlckNvbG9yID0gInJlZCI7DQogICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZXJyIikuaW5uZXJIVE1MID0gInt7LmFjY291bnQuZmFpbGVkfX0iOw0KICAgICAgICAgICAgcmV0dXJuOw0KICAgICAgICB9DQogICAgfQ0KICAgIGZvcm0uc3VibWl0KCk7DQp9DQo=" - webUI["html/js/base_ts.js"] = "dmFyIFNFUlZFUiA9IG5ldyBPYmplY3QoKTsNCnZhciBCVUxLX0VESVQgPSBmYWxzZTsNCnZhciBDT0xVTU5fVE9fU09SVDsNCnZhciBTRUFSQ0hfTUFQUElORyA9IG5ldyBPYmplY3QoKTsNCnZhciBVTkRPID0gbmV3IE9iamVjdCgpOw0KdmFyIFNFUlZFUl9DT05ORUNUSU9OID0gZmFsc2U7DQp2YXIgV1NfQVZBSUxBQkxFID0gZmFsc2U7DQovLyBNZW51DQp2YXIgbWVudUl0ZW1zID0gbmV3IEFycmF5KCk7DQptZW51SXRlbXMucHVzaChuZXcgTWFpbk1lbnVJdGVtKCJwbGF5bGlzdCIsICJ7ey5tYWluTWVudS5pdGVtLnBsYXlsaXN0fX0iLCAibTN1LnBuZyIsICJ7ey5tYWluTWVudS5oZWFkbGluZS5wbGF5bGlzdH19IikpOw0KLy9tZW51SXRlbXMucHVzaChuZXcgTWFpbk1lbnVJdGVtKCJwbXNJRCIsICJ7ey5tYWluTWVudS5pdGVtLnBtc0lEfX0iLCAibnVtYmVyLnBuZyIsICJ7ey5tYWluTWVudS5oZWFkbGluZS5wbXNJRH19IikpDQptZW51SXRlbXMucHVzaChuZXcgTWFpbk1lbnVJdGVtKCJmaWx0ZXIiLCAie3subWFpbk1lbnUuaXRlbS5maWx0ZXJ9fSIsICJmaWx0ZXIucG5nIiwgInt7Lm1haW5NZW51LmhlYWRsaW5lLmZpbHRlcn19IikpOw0KbWVudUl0ZW1zLnB1c2gobmV3IE1haW5NZW51SXRlbSgieG1sdHYiLCAie3subWFpbk1lbnUuaXRlbS54bWx0dn19IiwgInhtbHR2LnBuZyIsICJ7ey5tYWluTWVudS5oZWFkbGluZS54bWx0dn19IikpOw0KbWVudUl0ZW1zLnB1c2gobmV3IE1haW5NZW51SXRlbSgibWFwcGluZyIsICJ7ey5tYWluTWVudS5pdGVtLm1hcHBpbmd9fSIsICJtYXBwaW5nLnBuZyIsICJ7ey5tYWluTWVudS5oZWFkbGluZS5tYXBwaW5nfX0iKSk7DQptZW51SXRlbXMucHVzaChuZXcgTWFpbk1lbnVJdGVtKCJ1c2VycyIsICJ7ey5tYWluTWVudS5pdGVtLnVzZXJzfX0iLCAidXNlcnMucG5nIiwgInt7Lm1haW5NZW51LmhlYWRsaW5lLnVzZXJzfX0iKSk7DQptZW51SXRlbXMucHVzaChuZXcgTWFpbk1lbnVJdGVtKCJzZXR0aW5ncyIsICJ7ey5tYWluTWVudS5pdGVtLnNldHRpbmdzfX0iLCAic2V0dGluZ3MucG5nIiwgInt7Lm1haW5NZW51LmhlYWRsaW5lLnNldHRpbmdzfX0iKSk7DQptZW51SXRlbXMucHVzaChuZXcgTWFpbk1lbnVJdGVtKCJsb2ciLCAie3subWFpbk1lbnUuaXRlbS5sb2d9fSIsICJsb2cucG5nIiwgInt7Lm1haW5NZW51LmhlYWRsaW5lLmxvZ319IikpOw0KbWVudUl0ZW1zLnB1c2gobmV3IE1haW5NZW51SXRlbSgibG9nb3V0IiwgInt7Lm1haW5NZW51Lml0ZW0ubG9nb3V0fX0iLCAibG9nb3V0LnBuZyIsICJ7ey5tYWluTWVudS5oZWFkbGluZS5sb2dvdXR9fSIpKTsNCi8vIFNldHRpbmdzIGNhdGVnb3JpZXMNCnZhciBzZXR0aW5nc0NhdGVnb3J5ID0gbmV3IEFycmF5KCk7DQpzZXR0aW5nc0NhdGVnb3J5LnB1c2gobmV3IFNldHRpbmdzQ2F0ZWdvcnlJdGVtKCJ7ey5zZXR0aW5ncy5jYXRlZ29yeS5nZW5lcmFsfX0iLCAidGxzTW9kZSx4dGV2ZUF1dG9VcGRhdGUsaG9zdElQLHR1bmVyLGVwZ1NvdXJjZSxhcGkiKSk7DQpzZXR0aW5nc0NhdGVnb3J5LnB1c2gobmV3IFNldHRpbmdzQ2F0ZWdvcnlJdGVtKCJ7ey5zZXR0aW5ncy5jYXRlZ29yeS5maWxlc319IiwgInVwZGF0ZSxmaWxlcy51cGRhdGUsdGVtcC5wYXRoLGNhY2hlLmltYWdlcyx4ZXBnLnJlcGxhY2UubWlzc2luZy5pbWFnZXMiKSk7DQpzZXR0aW5nc0NhdGVnb3J5LnB1c2gobmV3IFNldHRpbmdzQ2F0ZWdvcnlJdGVtKCJ7ey5zZXR0aW5ncy5jYXRlZ29yeS5zdHJlYW1pbmd9fSIsICJidWZmZXIsdWRweHksYnVmZmVyLnNpemUua2Isc3RvcmVCdWZmZXJJblJBTSxidWZmZXIudGltZW91dCx1c2VyLmFnZW50LGZmbXBlZy5wYXRoLGZmbXBlZy5vcHRpb25zLHZsYy5wYXRoLHZsYy5vcHRpb25zIikpOw0Kc2V0dGluZ3NDYXRlZ29yeS5wdXNoKG5ldyBTZXR0aW5nc0NhdGVnb3J5SXRlbSgie3suc2V0dGluZ3MuY2F0ZWdvcnkuYmFja3VwfX0iLCAiYmFja3VwLnBhdGgsYmFja3VwLmtlZXAiKSk7DQpzZXR0aW5nc0NhdGVnb3J5LnB1c2gobmV3IFNldHRpbmdzQ2F0ZWdvcnlJdGVtKCJ7ey5zZXR0aW5ncy5jYXRlZ29yeS5hdXRoZW50aWNhdGlvbn19IiwgImF1dGhlbnRpY2F0aW9uLndlYixhdXRoZW50aWNhdGlvbi5wbXMsYXV0aGVudGljYXRpb24ubTN1LGF1dGhlbnRpY2F0aW9uLnhtbCxhdXRoZW50aWNhdGlvbi5hcGkiKSk7DQpmdW5jdGlvbiBzaG93UG9wVXBFbGVtZW50KGVsbSkgew0KICAgIHZhciBhbGxFbGVtZW50cyA9IG5ldyBBcnJheSgicG9wdXAtY3VzdG9tIik7DQogICAgZm9yICh2YXIgaSA9IDA7IGkgPCBhbGxFbGVtZW50cy5sZW5ndGg7IGkrKykgew0KICAgICAgICBzaG93RWxlbWVudChhbGxFbGVtZW50c1tpXSwgZmFsc2UpOw0KICAgIH0NCiAgICBzaG93RWxlbWVudChlbG0sIHRydWUpOw0KICAgIHNldFRpbWVvdXQoZnVuY3Rpb24gKCkgew0KICAgICAgICBzaG93RWxlbWVudCgicG9wdXAiLCB0cnVlKTsNCiAgICB9LCAxMCk7DQogICAgcmV0dXJuOw0KfQ0KZnVuY3Rpb24gc2hvd0VsZW1lbnQoZWxtSUQsIHR5cGUpIHsNCiAgICB2YXIgY3NzQ2xhc3M7DQogICAgc3dpdGNoICh0eXBlKSB7DQogICAgICAgIGNhc2UgdHJ1ZToNCiAgICAgICAgICAgIGNzc0NsYXNzID0gImJsb2NrIjsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlIGZhbHNlOg0KICAgICAgICAgICAgY3NzQ2xhc3MgPSAibm9uZSI7DQogICAgICAgICAgICBicmVhazsNCiAgICB9DQogICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoZWxtSUQpLmNsYXNzTmFtZSA9IGNzc0NsYXNzOw0KfQ0KZnVuY3Rpb24gY2hhbmdlQnV0dG9uQWN0aW9uKGVsZW1lbnQsIGJ1dHRvbklELCBhdHRyaWJ1dGUpIHsNCiAgICB2YXIgdmFsdWUgPSBlbGVtZW50Lm9wdGlvbnNbZWxlbWVudC5zZWxlY3RlZEluZGV4XS52YWx1ZTsNCiAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChidXR0b25JRCkuc2V0QXR0cmlidXRlKGF0dHJpYnV0ZSwgdmFsdWUpOw0KfQ0KZnVuY3Rpb24gZ2V0TG9jYWxEYXRhKGRhdGFUeXBlLCBpZCkgew0KICAgIGxldCBkYXRhID0ge307DQogICAgc3dpdGNoIChkYXRhVHlwZSkgew0KICAgICAgICBjYXNlICJtM3UiOg0KICAgICAgICAgICAgZGF0YSA9IFNFUlZFUlsic2V0dGluZ3MiXVsiZmlsZXMiXVtkYXRhVHlwZV1baWRdOw0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGNhc2UgImhkaHIiOg0KICAgICAgICAgICAgZGF0YSA9IFNFUlZFUlsic2V0dGluZ3MiXVsiZmlsZXMiXVtkYXRhVHlwZV1baWRdOw0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGNhc2UgImZpbHRlciI6DQogICAgICAgIGNhc2UgImN1c3RvbS1maWx0ZXIiOg0KICAgICAgICBjYXNlICJncm91cC10aXRsZSI6DQogICAgICAgICAgICBpZiAoaWQgPT0gLTEpIHsNCiAgICAgICAgICAgICAgICBkYXRhWyJhY3RpdmUiXSA9IHRydWU7DQogICAgICAgICAgICAgICAgZGF0YVsiY2FzZVNlbnNpdGl2ZSJdID0gZmFsc2U7DQogICAgICAgICAgICAgICAgZGF0YVsiZGVzY3JpcHRpb24iXSA9ICIiOw0KICAgICAgICAgICAgICAgIGRhdGFbImV4Y2x1ZGUiXSA9ICIiOw0KICAgICAgICAgICAgICAgIGRhdGFbImZpbHRlciJdID0gIiI7DQogICAgICAgICAgICAgICAgZGF0YVsiaW5jbHVkZSJdID0gIiI7DQogICAgICAgICAgICAgICAgZGF0YVsibmFtZSJdID0gIiI7DQogICAgICAgICAgICAgICAgZGF0YVsidHlwZSJdID0gImdyb3VwLXRpdGxlIjsNCiAgICAgICAgICAgICAgICBkYXRhWyJwcmVzZXJ2ZU1hcHBpbmciXSA9IHRydWU7DQogICAgICAgICAgICAgICAgZGF0YVsic3RhcnRpbmdDaGFubmVsIl0gPSBTRVJWRVJbInNldHRpbmdzIl1bIm1hcHBpbmcuZmlyc3QuY2hhbm5lbCJdOw0KICAgICAgICAgICAgICAgIGRhdGFbImRlZmF1bHRNaXNzaW5nRVBHIl0gPSAiLSI7DQogICAgICAgICAgICAgICAgU0VSVkVSWyJzZXR0aW5ncyJdWyJmaWx0ZXIiXVtpZF0gPSBkYXRhOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgZGF0YSA9IFNFUlZFUlsic2V0dGluZ3MiXVsiZmlsdGVyIl1baWRdOw0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGNhc2UgInhtbHR2IjoNCiAgICAgICAgICAgIGRhdGEgPSBTRVJWRVJbInNldHRpbmdzIl1bImZpbGVzIl1bZGF0YVR5cGVdW2lkXTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJ1c2VycyI6DQogICAgICAgICAgICBkYXRhID0gU0VSVkVSWyJ1c2VycyJdW2lkXVsiZGF0YSJdOw0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGNhc2UgIm1hcHBpbmciOg0KICAgICAgICAgICAgZGF0YSA9IFNFUlZFUlsieGVwZyJdWyJlcGdNYXBwaW5nIl1baWRdOw0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGNhc2UgIm0zdUdyb3VwcyI6DQogICAgICAgICAgICBkYXRhID0gU0VSVkVSWyJkYXRhIl1bInBsYXlsaXN0Il1bIm0zdSJdWyJncm91cHMiXTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgIH0NCiAgICByZXR1cm4gZGF0YTsNCn0NCmZ1bmN0aW9uIGdldE93bk9ialByb3BzKG9iamVjdCkgew0KICAgIHJldHVybiBvYmplY3QgPyBPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyhvYmplY3QpIDogW107DQp9DQpmdW5jdGlvbiBnZXRBbGxTZWxlY3RlZENoYW5uZWxzKCkgew0KICAgIHZhciBjaGFubmVscyA9IG5ldyBBcnJheSgpOw0KICAgIGlmIChCVUxLX0VESVQgPT0gZmFsc2UpIHsNCiAgICAgICAgcmV0dXJuIGNoYW5uZWxzOw0KICAgIH0NCiAgICB2YXIgdHJzID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnRlbnRfdGFibGUiKS5nZXRFbGVtZW50c0J5VGFnTmFtZSgiVFIiKTsNCiAgICBmb3IgKHZhciBpID0gMTsgaSA8IHRycy5sZW5ndGg7IGkrKykgew0KICAgICAgICBpZiAodHJzW2ldLnN0eWxlLmRpc3BsYXkgIT0gIm5vbmUiKSB7DQogICAgICAgICAgICBpZiAodHJzW2ldLmZpcnN0Q2hpbGQuZmlyc3RDaGlsZC5jaGVja2VkID09IHRydWUpIHsNCiAgICAgICAgICAgICAgICBjaGFubmVscy5wdXNoKHRyc1tpXS5pZCk7DQogICAgICAgICAgICB9DQogICAgICAgIH0NCiAgICB9DQogICAgcmV0dXJuIGNoYW5uZWxzOw0KfQ0KZnVuY3Rpb24gc2VsZWN0QWxsQ2hhbm5lbHMoKSB7DQogICAgdmFyIGJ1bGsgPSBmYWxzZTsNCiAgICB2YXIgdHJzID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnRlbnRfdGFibGUiKS5nZXRFbGVtZW50c0J5VGFnTmFtZSgiVFIiKTsNCiAgICBpZiAodHJzWzBdLmZpcnN0Q2hpbGQuZmlyc3RDaGlsZC5jaGVja2VkID09IHRydWUpIHsNCiAgICAgICAgYnVsayA9IHRydWU7DQogICAgfQ0KICAgIGZvciAodmFyIGkgPSAxOyBpIDwgdHJzLmxlbmd0aDsgaSsrKSB7DQogICAgICAgIGlmICh0cnNbaV0uc3R5bGUuZGlzcGxheSAhPSAibm9uZSIpIHsNCiAgICAgICAgICAgIHN3aXRjaCAoYnVsaykgew0KICAgICAgICAgICAgICAgIGNhc2UgdHJ1ZToNCiAgICAgICAgICAgICAgICAgICAgdHJzW2ldLmZpcnN0Q2hpbGQuZmlyc3RDaGlsZC5jaGVja2VkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSBmYWxzZToNCiAgICAgICAgICAgICAgICAgICAgdHJzW2ldLmZpcnN0Q2hpbGQuZmlyc3RDaGlsZC5jaGVja2VkID0gZmFsc2U7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQogICAgfQ0KICAgIHJldHVybjsNCn0NCmZ1bmN0aW9uIGJ1bGtFZGl0KCkgew0KICAgIEJVTEtfRURJVCA9ICFCVUxLX0VESVQ7DQogICAgdmFyIGNsYXNzTmFtZTsNCiAgICB2YXIgcm93cyA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlDbGFzc05hbWUoImJ1bGsiKTsNCiAgICBzd2l0Y2ggKEJVTEtfRURJVCkgew0KICAgICAgICBjYXNlIHRydWU6DQogICAgICAgICAgICBjbGFzc05hbWUgPSAiYnVsayBzaG93QnVsayI7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSBmYWxzZToNCiAgICAgICAgICAgIGNsYXNzTmFtZSA9ICJidWxrIGhpZGVCdWxrIjsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgIH0NCiAgICBmb3IgKHZhciBpID0gMDsgaSA8IHJvd3MubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgcm93c1tpXS5jbGFzc05hbWUgPSBjbGFzc05hbWU7DQogICAgICAgIHJvd3NbaV0uY2hlY2tlZCA9IGZhbHNlOw0KICAgIH0NCiAgICByZXR1cm47DQp9DQpmdW5jdGlvbiBzb3J0VGFibGUoY29sdW1uKSB7DQogICAgaWYgKGNvbHVtbiA9PSBDT0xVTU5fVE9fU09SVCkgew0KICAgICAgICByZXR1cm47DQogICAgfQ0KICAgIGNvbnN0IHRhYmxlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnRlbnRfdGFibGUiKTsNCiAgICBjb25zdCB0YWJsZUhlYWQgPSB0YWJsZS5nZXRFbGVtZW50c0J5VGFnTmFtZSgiVFIiKVswXTsNCiAgICBjb25zdCB0YWJsZUl0ZW1zID0gdGFibGVIZWFkLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJURCIpOw0KICAgIGNvbnN0IHNvcnRBcnIgPSBbXTsNCiAgICBsZXQgeFZhbHVlOw0KICAgIGlmIChjb2x1bW4gPj0gMCAmJiBDT0xVTU5fVE9fU09SVCA+PSAwKSB7DQogICAgICAgIHRhYmxlSXRlbXNbQ09MVU1OX1RPX1NPUlRdLmNsYXNzTmFtZSA9ICJwb2ludGVyIjsNCiAgICAgICAgdGFibGVJdGVtc1tjb2x1bW5dLmNsYXNzTmFtZSA9ICJzb3J0VGhpcyI7DQogICAgfQ0KICAgIENPTFVNTl9UT19TT1JUID0gY29sdW1uOw0KICAgIGNvbnN0IHJvd3MgPSB0YWJsZS5yb3dzOw0KICAgIGlmIChyb3dzWzFdICE9IHVuZGVmaW5lZCkgew0KICAgICAgICBjb25zdCB0YWJsZUhlYWRlciA9IHJvd3NbMF07DQogICAgICAgIGxldCB4ID0gcm93c1sxXS5nZXRFbGVtZW50c0J5VGFnTmFtZSgiVEQiKVtjb2x1bW5dOw0KICAgICAgICBmb3IgKGxldCBpID0gMTsgaSA8IHJvd3MubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgICAgIHggPSByb3dzW2ldLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJURCIpW2NvbHVtbl07DQogICAgICAgICAgICBzd2l0Y2ggKHguY2hpbGROb2Rlc1swXS50YWdOYW1lLnRvTG93ZXJDYXNlKCkpIHsNCiAgICAgICAgICAgICAgICBjYXNlICJpbnB1dCI6DQogICAgICAgICAgICAgICAgICAgIHhWYWx1ZSA9IHguZ2V0RWxlbWVudHNCeVRhZ05hbWUoIklOUFVUIilbMF0udmFsdWUudG9Mb3dlckNhc2UoKTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAicCI6DQogICAgICAgICAgICAgICAgICAgIHhWYWx1ZSA9IHguZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlAiKVswXS5pbm5lclRleHQudG9Mb3dlckNhc2UoKTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBzb3J0QXJyLnB1c2goeyBrZXk6IHhWYWx1ZSA/IHhWYWx1ZSA6IGksIHJvdzogcm93c1tpXSB9KTsNCiAgICAgICAgfQ0KICAgICAgICB3aGlsZSAodGFibGUuZmlyc3RDaGlsZCkgew0KICAgICAgICAgICAgdGFibGUucmVtb3ZlQ2hpbGQodGFibGUuZmlyc3RDaGlsZCk7DQogICAgICAgIH0NCiAgICAgICAgc29ydEFyci5zb3J0KChzZTEsIHNlMikgPT4gew0KICAgICAgICAgICAgY29uc3Qgc2UxS2V5TnVtID0gcGFyc2VGbG9hdChTdHJpbmcoc2UxLmtleSkpOw0KICAgICAgICAgICAgY29uc3Qgc2UyS2V5TnVtID0gcGFyc2VGbG9hdChTdHJpbmcoc2UyLmtleSkpOw0KICAgICAgICAgICAgaWYgKCFpc05hTihzZTFLZXlOdW0pICYmICFpc05hTihzZTJLZXlOdW0pKSB7DQogICAgICAgICAgICAgICAgcmV0dXJuIHNlMUtleU51bSAtIHNlMktleU51bTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGlmIChzZTEua2V5IDwgc2UyLmtleSkgew0KICAgICAgICAgICAgICAgIHJldHVybiAtMTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGlmIChzZTEua2V5ID4gc2UyLmtleSkgew0KICAgICAgICAgICAgICAgIHJldHVybiAxOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgcmV0dXJuIDA7DQogICAgICAgIH0pOw0KICAgICAgICB0YWJsZS5hcHBlbmRDaGlsZCh0YWJsZUhlYWRlcik7DQogICAgICAgIHNvcnRBcnIuZm9yRWFjaCgoc2UpID0+IHsNCiAgICAgICAgICAgIHRhYmxlLmFwcGVuZENoaWxkKHNlLnJvdyk7DQogICAgICAgIH0pOw0KICAgIH0NCiAgICByZXR1cm47DQp9DQpmdW5jdGlvbiBjcmVhdGVTZWFyY2hPYmooKSB7DQogICAgU0VBUkNIX01BUFBJTkcgPSBuZXcgT2JqZWN0KCk7DQogICAgdmFyIGRhdGEgPSBTRVJWRVJbInhlcGciXVsiZXBnTWFwcGluZyJdOw0KICAgIHZhciBjaGFubmVscyA9IGdldE93bk9ialByb3BzKGRhdGEpOw0KICAgIHZhciBjaGFubmVsS2V5cyA9IFsieC1hY3RpdmUiLCAieC1jaGFubmVsSUQiLCAieC1uYW1lIiwgInVwZGF0ZUNoYW5uZWxOYW1lUmVnZXgiLCAiX2ZpbGUubTN1Lm5hbWUiLCAieC1ncm91cC10aXRsZSIsICJ4LXhtbHR2LWZpbGUiXTsNCiAgICBjaGFubmVscy5mb3JFYWNoKGlkID0+IHsNCiAgICAgICAgY2hhbm5lbEtleXMuZm9yRWFjaChrZXkgPT4gew0KICAgICAgICAgICAgaWYgKGtleSA9PSAieC1hY3RpdmUiKSB7DQogICAgICAgICAgICAgICAgc3dpdGNoIChkYXRhW2lkXVtrZXldKSB7DQogICAgICAgICAgICAgICAgICAgIGNhc2UgdHJ1ZToNCiAgICAgICAgICAgICAgICAgICAgICAgIFNFQVJDSF9NQVBQSU5HW2lkXSA9ICJvbmxpbmUgIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgICAgICBjYXNlIGZhbHNlOg0KICAgICAgICAgICAgICAgICAgICAgICAgU0VBUkNIX01BUFBJTkdbaWRdID0gIm9mZmxpbmUgIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgICAgIGlmIChrZXkgPT0gIngteG1sdHYtZmlsZSIpIHsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHhtbHR2RmlsZSA9IGdldFZhbHVlRnJvbVByb3ZpZGVyRmlsZShkYXRhW2lkXVtrZXldLCAieG1sdHYiLCAibmFtZSIpOw0KICAgICAgICAgICAgICAgICAgICBpZiAoeG1sdHZGaWxlICE9IHVuZGVmaW5lZCkgew0KICAgICAgICAgICAgICAgICAgICAgICAgU0VBUkNIX01BUFBJTkdbaWRdID0gU0VBUkNIX01BUFBJTkdbaWRdICsgeG1sdHZGaWxlICsgIiAiOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgICAgICAgICBTRUFSQ0hfTUFQUElOR1tpZF0gPSBTRUFSQ0hfTUFQUElOR1tpZF0gKyBkYXRhW2lkXVtrZXldICsgIiAiOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0NCiAgICAgICAgfSk7DQogICAgfSk7DQogICAgcmV0dXJuOw0KfQ0KZnVuY3Rpb24gc2VhcmNoSW5NYXBwaW5nKCkgew0KICAgIHZhciBzZWFyY2hWYWx1ZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzZWFyY2hNYXBwaW5nIikudmFsdWU7DQogICAgdmFyIHRycyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb250ZW50X3RhYmxlIikuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlRSIik7DQogICAgZm9yICh2YXIgaSA9IDE7IGkgPCB0cnMubGVuZ3RoOyArK2kpIHsNCiAgICAgICAgdmFyIGlkID0gdHJzW2ldLmdldEF0dHJpYnV0ZSgiaWQiKTsNCiAgICAgICAgdmFyIGVsZW1lbnQgPSBTRUFSQ0hfTUFQUElOR1tpZF07DQogICAgICAgIHN3aXRjaCAoZWxlbWVudC50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKHNlYXJjaFZhbHVlLnRvTG93ZXJDYXNlKCkpKSB7DQogICAgICAgICAgICBjYXNlIHRydWU6DQogICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpLnN0eWxlLmRpc3BsYXkgPSAiIjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgZmFsc2U6DQogICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpLnN0eWxlLmRpc3BsYXkgPSAibm9uZSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIH0NCiAgICB9DQogICAgcmV0dXJuOw0KfQ0KZnVuY3Rpb24gY2FsY3VsYXRlV3JhcHBlckhlaWdodCgpIHsNCiAgICBpZiAoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImJveC13cmFwcGVyIikpIHsNCiAgICAgICAgdmFyIGVsbSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJib3gtd3JhcHBlciIpOw0KICAgICAgICB2YXIgZGl2cyA9IG5ldyBBcnJheSgibXlTdHJlYW1zQm94IiwgImNsaWVudEluZm8iLCAiY29udGVudCIpOw0KICAgICAgICB2YXIgZWxlbWVudHNIZWlnaHQgPSAwIC0gZWxtLm9mZnNldEhlaWdodDsNCiAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBkaXZzLmxlbmd0aDsgaSsrKSB7DQogICAgICAgICAgICBlbGVtZW50c0hlaWdodCA9IGVsZW1lbnRzSGVpZ2h0ICsgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoZGl2c1tpXSkub2Zmc2V0SGVpZ2h0Ow0KICAgICAgICB9DQogICAgICAgIGVsbS5zdHlsZS5oZWlnaHQgPSB3aW5kb3cuaW5uZXJIZWlnaHQgLSBlbGVtZW50c0hlaWdodCArICJweCI7DQogICAgfQ0KICAgIHJldHVybjsNCn0NCmZ1bmN0aW9uIGNoYW5nZUNoYW5uZWxOdW1iZXIoZWxlbWVudCkgew0KICAgIHZhciBkYklEID0gZWxlbWVudC5wYXJlbnROb2RlLnBhcmVudE5vZGUuaWQ7DQogICAgdmFyIG5ld051bWJlciA9IHBhcnNlRmxvYXQoZWxlbWVudC52YWx1ZSk7DQogICAgdmFyIGNoYW5uZWxOdW1iZXJzID0gW107DQogICAgdmFyIGRhdGEgPSBTRVJWRVJbInhlcGciXVsiZXBnTWFwcGluZyJdOw0KICAgIHZhciBjaGFubmVscyA9IGdldE93bk9ialByb3BzKGRhdGEpOw0KICAgIGlmIChpc05hTihuZXdOdW1iZXIpKSB7DQogICAgICAgIGFsZXJ0KCJ7ey5hbGVydC5pbnZhbGlkQ2hhbm5lbE51bWJlcn19Iik7DQogICAgICAgIHJldHVybjsNCiAgICB9DQogICAgY2hhbm5lbHMuZm9yRWFjaChpZCA9PiB7DQogICAgICAgIHZhciBjaGFubmVsTnVtYmVyID0gcGFyc2VGbG9hdChkYXRhW2lkXVsieC1jaGFubmVsSUQiXSk7DQogICAgICAgIGNoYW5uZWxOdW1iZXJzLnB1c2goY2hhbm5lbE51bWJlcik7DQogICAgfSk7DQogICAgZm9yICh2YXIgaSA9IDA7IGkgPCBjaGFubmVsTnVtYmVycy5sZW5ndGg7IGkrKykgew0KICAgICAgICBpZiAoY2hhbm5lbE51bWJlcnMuaW5kZXhPZihuZXdOdW1iZXIpID09IC0xKSB7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgfQ0KICAgICAgICBpZiAoTWF0aC5mbG9vcihuZXdOdW1iZXIpID09IG5ld051bWJlcikgew0KICAgICAgICAgICAgbmV3TnVtYmVyID0gbmV3TnVtYmVyICsgMTsNCiAgICAgICAgfQ0KICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgIG5ld051bWJlciA9IG5ld051bWJlciArIDAuMTsNCiAgICAgICAgICAgIG5ld051bWJlci50b0ZpeGVkKDEpOw0KICAgICAgICAgICAgbmV3TnVtYmVyID0gTWF0aC5yb3VuZChuZXdOdW1iZXIgKiAxMCkgLyAxMDsNCiAgICAgICAgfQ0KICAgIH0NCiAgICBkYXRhW2RiSURdWyJ4LWNoYW5uZWxJRCJdID0gbmV3TnVtYmVyLnRvU3RyaW5nKCk7DQogICAgZWxlbWVudC52YWx1ZSA9IG5ld051bWJlcjsNCiAgICBpZiAoQ09MVU1OX1RPX1NPUlQgPT0gMSkgew0KICAgICAgICBDT0xVTU5fVE9fU09SVCA9IC0xOw0KICAgICAgICBzb3J0VGFibGUoMSk7DQogICAgfQ0KICAgIHJldHVybjsNCn0NCmZ1bmN0aW9uIGJhY2t1cCgpIHsNCiAgICB2YXIgZGF0YSA9IG5ldyBPYmplY3QoKTsNCiAgICB2YXIgY21kID0gInh0ZXZlQmFja3VwIjsNCiAgICB2YXIgc2VydmVyID0gbmV3IFNlcnZlcihjbWQpOw0KICAgIHNlcnZlci5yZXF1ZXN0KGRhdGEpOw0KICAgIHJldHVybjsNCn0NCmZ1bmN0aW9uIHRvZ2dsZUNoYW5uZWxTdGF0dXMoaWQpIHsNCiAgICB2YXIgZWxlbWVudDsNCiAgICB2YXIgc3RhdHVzOw0KICAgIGlmIChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYWN0aXZlIikpIHsNCiAgICAgICAgdmFyIGNoZWNrYm94ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImFjdGl2ZSIpOw0KICAgICAgICBzdGF0dXMgPSAoY2hlY2tib3gpLmNoZWNrZWQ7DQogICAgfQ0KICAgIHZhciBpZHMgPSBnZXRBbGxTZWxlY3RlZENoYW5uZWxzKCk7DQogICAgaWYgKGlkcy5sZW5ndGggPT0gMCkgew0KICAgICAgICBpZHMucHVzaChpZCk7DQogICAgfQ0KICAgIGlkcy5mb3JFYWNoKGlkID0+IHsNCiAgICAgICAgdmFyIGNoYW5uZWwgPSBTRVJWRVJbInhlcGciXVsiZXBnTWFwcGluZyJdW2lkXTsNCiAgICAgICAgY2hhbm5lbFsieC1hY3RpdmUiXSA9IHN0YXR1czsNCiAgICAgICAgc3dpdGNoIChjaGFubmVsWyJ4LWFjdGl2ZSJdKSB7DQogICAgICAgICAgICBjYXNlIHRydWU6DQogICAgICAgICAgICAgICAgaWYgKGNoYW5uZWxbIngteG1sdHYtZmlsZSJdID09ICItIiB8fCBjaGFubmVsWyJ4LW1hcHBpbmciXSA9PSAiLSIpIHsNCiAgICAgICAgICAgICAgICAgICAgaWYgKEJVTEtfRURJVCA9PSBmYWxzZSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgYWxlcnQoY2hhbm5lbFsieC1uYW1lIl0gKyAiOiBNaXNzaW5nIFhNTFRWIGZpbGUgLyBjaGFubmVsIik7DQogICAgICAgICAgICAgICAgICAgICAgICBjaGVja2JveC5jaGVja2VkID0gZmFsc2U7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgY2hhbm5lbFsieC1hY3RpdmUiXSA9IGZhbHNlOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgZmFsc2U6DQogICAgICAgICAgICAgICAgLy8gY29kZS4uLg0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICB9DQogICAgICAgIGlmIChjaGFubmVsWyJ4LWFjdGl2ZSJdID09IGZhbHNlKSB7DQogICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkuY2xhc3NOYW1lID0gIm5vdEFjdGl2ZUVQRyI7DQogICAgICAgIH0NCiAgICAgICAgZWxzZSB7DQogICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkuY2xhc3NOYW1lID0gImFjdGl2ZUVQRyI7DQogICAgICAgIH0NCiAgICB9KTsNCn0NCmZ1bmN0aW9uIHRvZ2dsZUdyb3VwVXBkYXRlQ2IoeGVwZ0lkLCB0YXJnZXQpIHsNCiAgICB0YXJnZXQuY2xhc3NOYW1lID0gJ2NoYW5nZWQnOw0KICAgIGNvbnN0IGdyb3VwSW5wdXQgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCdpbnB1dFtuYW1lPSJ4LWdyb3VwLXRpdGxlIl0nKTsNCiAgICBjb25zdCBtYXBwaW5nID0gZ2V0TG9jYWxEYXRhKCdtYXBwaW5nJywgeGVwZ0lkKTsNCiAgICBpZiAodGFyZ2V0LmNoZWNrZWQpIHsNCiAgICAgICAgZ3JvdXBJbnB1dC5kYXRhc2V0Lm9sZFZhbHVlID0gZ3JvdXBJbnB1dC52YWx1ZTsNCiAgICAgICAgZ3JvdXBJbnB1dC52YWx1ZSA9IG1hcHBpbmdbJ2dyb3VwLXRpdGxlJ107DQogICAgICAgIGdyb3VwSW5wdXQuZGlzYWJsZWQgPSB0cnVlOw0KICAgIH0NCiAgICBlbHNlIHsNCiAgICAgICAgZ3JvdXBJbnB1dC52YWx1ZSA9IGdyb3VwSW5wdXQuZGF0YXNldC5vbGRWYWx1ZTsNCiAgICAgICAgZ3JvdXBJbnB1dC5kaXNhYmxlZCA9IGZhbHNlOw0KICAgIH0NCiAgICBncm91cElucHV0LmNsYXNzTmFtZSA9ICdjaGFuZ2VkJzsNCn0NCmZ1bmN0aW9uIHJlc3RvcmUoKSB7DQogICAgaWYgKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd1cGxvYWQnKSkgew0KICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndXBsb2FkJykucmVtb3ZlKCk7DQogICAgfQ0KICAgIHZhciByZXN0b3JlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiSU5QVVQiKTsNCiAgICByZXN0b3JlLnNldEF0dHJpYnV0ZSgidHlwZSIsICJmaWxlIik7DQogICAgcmVzdG9yZS5zZXRBdHRyaWJ1dGUoImNsYXNzIiwgIm5vdFZpc2libGUiKTsNCiAgICByZXN0b3JlLnNldEF0dHJpYnV0ZSgibmFtZSIsICIiKTsNCiAgICByZXN0b3JlLmlkID0gInVwbG9hZCI7DQogICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChyZXN0b3JlKTsNCiAgICByZXN0b3JlLmNsaWNrKCk7DQogICAgcmVzdG9yZS5vbmNoYW5nZSA9IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgdmFyIGZpbGVuYW1lID0gcmVzdG9yZS5maWxlc1swXS5uYW1lOw0KICAgICAgICB2YXIgY2hlY2sgPSBjb25maXJtKCJGaWxlOiAiICsgZmlsZW5hbWUgKyAiXG57ey5jb25maXJtLnJlc3RvcmV9fSIpOw0KICAgICAgICBpZiAoY2hlY2sgPT0gdHJ1ZSkgew0KICAgICAgICAgICAgdmFyIHJlYWRlciA9IG5ldyBGaWxlUmVhZGVyKCk7DQogICAgICAgICAgICB2YXIgZmlsZSA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ2lucHV0W3R5cGU9ZmlsZV0nKS5maWxlc1swXTsNCiAgICAgICAgICAgIGlmIChmaWxlKSB7DQogICAgICAgICAgICAgICAgcmVhZGVyLnJlYWRBc0RhdGFVUkwoZmlsZSk7DQogICAgICAgICAgICAgICAgcmVhZGVyLm9ubG9hZCA9IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGRhdGEgPSBuZXcgT2JqZWN0KCk7DQogICAgICAgICAgICAgICAgICAgIHZhciBjbWQgPSAieHRldmVSZXN0b3JlIjsNCiAgICAgICAgICAgICAgICAgICAgZGF0YVsiYmFzZTY0Il0gPSByZWFkZXIucmVzdWx0Ow0KICAgICAgICAgICAgICAgICAgICB2YXIgc2VydmVyID0gbmV3IFNlcnZlcihjbWQpOw0KICAgICAgICAgICAgICAgICAgICBzZXJ2ZXIucmVxdWVzdChkYXRhKTsNCiAgICAgICAgICAgICAgICB9Ow0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgZWxzZSB7DQogICAgICAgICAgICAgICAgYWxlcnQoIkZpbGUgY291bGQgbm90IGJlIGxvYWRlZCIpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgcmVzdG9yZS5yZW1vdmUoKTsNCiAgICAgICAgICAgIHJldHVybjsNCiAgICAgICAgfQ0KICAgIH07DQogICAgcmV0dXJuOw0KfQ0KZnVuY3Rpb24gdXBsb2FkTG9nbygpIHsNCiAgICBpZiAoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3VwbG9hZCcpKSB7DQogICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd1cGxvYWQnKS5yZW1vdmUoKTsNCiAgICB9DQogICAgdmFyIHVwbG9hZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIklOUFVUIik7DQogICAgdXBsb2FkLnNldEF0dHJpYnV0ZSgidHlwZSIsICJmaWxlIik7DQogICAgdXBsb2FkLnNldEF0dHJpYnV0ZSgiY2xhc3MiLCAibm90VmlzaWJsZSIpOw0KICAgIHVwbG9hZC5zZXRBdHRyaWJ1dGUoIm5hbWUiLCAiIik7DQogICAgdXBsb2FkLmlkID0gInVwbG9hZCI7DQogICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZCh1cGxvYWQpOw0KICAgIHVwbG9hZC5jbGljaygpOw0KICAgIHVwbG9hZC5vbmJsdXIgPSBmdW5jdGlvbiAoKSB7DQogICAgICAgIGFsZXJ0KCk7DQogICAgfTsNCiAgICB1cGxvYWQub25jaGFuZ2UgPSBmdW5jdGlvbiAoKSB7DQogICAgICAgIHZhciBmaWxlbmFtZSA9IHVwbG9hZC5maWxlc1swXS5uYW1lOw0KICAgICAgICB2YXIgcmVhZGVyID0gbmV3IEZpbGVSZWFkZXIoKTsNCiAgICAgICAgdmFyIGZpbGUgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCdpbnB1dFt0eXBlPWZpbGVdJykuZmlsZXNbMF07DQogICAgICAgIGlmIChmaWxlKSB7DQogICAgICAgICAgICByZWFkZXIucmVhZEFzRGF0YVVSTChmaWxlKTsNCiAgICAgICAgICAgIHJlYWRlci5vbmxvYWQgPSBmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICAgICAgdmFyIGRhdGEgPSBuZXcgT2JqZWN0KCk7DQogICAgICAgICAgICAgICAgdmFyIGNtZCA9ICJ1cGxvYWRMb2dvIjsNCiAgICAgICAgICAgICAgICBkYXRhWyJiYXNlNjQiXSA9IHJlYWRlci5yZXN1bHQ7DQogICAgICAgICAgICAgICAgZGF0YVsiZmlsZW5hbWUiXSA9IGZpbGUubmFtZTsNCiAgICAgICAgICAgICAgICB2YXIgc2VydmVyID0gbmV3IFNlcnZlcihjbWQpOw0KICAgICAgICAgICAgICAgIHNlcnZlci5yZXF1ZXN0KGRhdGEpOw0KICAgICAgICAgICAgICAgIHZhciB1cGRhdGVMb2dvID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3VwZGF0ZS1pY29uJyk7DQogICAgICAgICAgICAgICAgdXBkYXRlTG9nby5jaGVja2VkID0gZmFsc2U7DQogICAgICAgICAgICAgICAgdXBkYXRlTG9nby5jbGFzc05hbWUgPSAiY2hhbmdlZCI7DQogICAgICAgICAgICB9Ow0KICAgICAgICB9DQogICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgYWxlcnQoIkZpbGUgY291bGQgbm90IGJlIGxvYWRlZCIpOw0KICAgICAgICB9DQogICAgICAgIHVwbG9hZC5yZW1vdmUoKTsNCiAgICAgICAgcmV0dXJuOw0KICAgIH07DQp9DQpmdW5jdGlvbiBjaGVja1VuZG8oa2V5KSB7DQogICAgc3dpdGNoIChrZXkpIHsNCiAgICAgICAgY2FzZSAiZXBnTWFwcGluZyI6DQogICAgICAgICAgICBpZiAoVU5ETy5oYXNPd25Qcm9wZXJ0eShrZXkpKSB7DQogICAgICAgICAgICAgICAgU0VSVkVSWyJ4ZXBnIl1ba2V5XSA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkoVU5ET1trZXldKSk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICBVTkRPW2tleV0gPSBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KFNFUlZFUlsieGVwZyJdW2tleV0pKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBkZWZhdWx0Og0KICAgICAgICAgICAgYnJlYWs7DQogICAgfQ0KICAgIHJldHVybjsNCn0NCmZ1bmN0aW9uIHVwZGF0ZUxvZygpIHsNCiAgICB2YXIgc2VydmVyID0gbmV3IFNlcnZlcigidXBkYXRlTG9nIik7DQogICAgc2VydmVyLnJlcXVlc3QobmV3IE9iamVjdCgpKTsNCn0NCg==" + webUI["html/js/base_ts.js"] = "dmFyIFNFUlZFUiA9IG5ldyBPYmplY3QoKTsNCnZhciBCVUxLX0VESVQgPSBmYWxzZTsNCnZhciBDT0xVTU5fVE9fU09SVDsNCnZhciBTRUFSQ0hfTUFQUElORyA9IG5ldyBPYmplY3QoKTsNCnZhciBVTkRPID0gbmV3IE9iamVjdCgpOw0KdmFyIFNFUlZFUl9DT05ORUNUSU9OID0gZmFsc2U7DQp2YXIgV1NfQVZBSUxBQkxFID0gZmFsc2U7DQovLyBNZW51DQp2YXIgbWVudUl0ZW1zID0gbmV3IEFycmF5KCk7DQptZW51SXRlbXMucHVzaChuZXcgTWFpbk1lbnVJdGVtKCJwbGF5bGlzdCIsICJ7ey5tYWluTWVudS5pdGVtLnBsYXlsaXN0fX0iLCAibTN1LnBuZyIsICJ7ey5tYWluTWVudS5oZWFkbGluZS5wbGF5bGlzdH19IikpOw0KLy9tZW51SXRlbXMucHVzaChuZXcgTWFpbk1lbnVJdGVtKCJwbXNJRCIsICJ7ey5tYWluTWVudS5pdGVtLnBtc0lEfX0iLCAibnVtYmVyLnBuZyIsICJ7ey5tYWluTWVudS5oZWFkbGluZS5wbXNJRH19IikpDQptZW51SXRlbXMucHVzaChuZXcgTWFpbk1lbnVJdGVtKCJmaWx0ZXIiLCAie3subWFpbk1lbnUuaXRlbS5maWx0ZXJ9fSIsICJmaWx0ZXIucG5nIiwgInt7Lm1haW5NZW51LmhlYWRsaW5lLmZpbHRlcn19IikpOw0KbWVudUl0ZW1zLnB1c2gobmV3IE1haW5NZW51SXRlbSgieG1sdHYiLCAie3subWFpbk1lbnUuaXRlbS54bWx0dn19IiwgInhtbHR2LnBuZyIsICJ7ey5tYWluTWVudS5oZWFkbGluZS54bWx0dn19IikpOw0KbWVudUl0ZW1zLnB1c2gobmV3IE1haW5NZW51SXRlbSgibWFwcGluZyIsICJ7ey5tYWluTWVudS5pdGVtLm1hcHBpbmd9fSIsICJtYXBwaW5nLnBuZyIsICJ7ey5tYWluTWVudS5oZWFkbGluZS5tYXBwaW5nfX0iKSk7DQptZW51SXRlbXMucHVzaChuZXcgTWFpbk1lbnVJdGVtKCJ1c2VycyIsICJ7ey5tYWluTWVudS5pdGVtLnVzZXJzfX0iLCAidXNlcnMucG5nIiwgInt7Lm1haW5NZW51LmhlYWRsaW5lLnVzZXJzfX0iKSk7DQptZW51SXRlbXMucHVzaChuZXcgTWFpbk1lbnVJdGVtKCJzZXR0aW5ncyIsICJ7ey5tYWluTWVudS5pdGVtLnNldHRpbmdzfX0iLCAic2V0dGluZ3MucG5nIiwgInt7Lm1haW5NZW51LmhlYWRsaW5lLnNldHRpbmdzfX0iKSk7DQptZW51SXRlbXMucHVzaChuZXcgTWFpbk1lbnVJdGVtKCJsb2ciLCAie3subWFpbk1lbnUuaXRlbS5sb2d9fSIsICJsb2cucG5nIiwgInt7Lm1haW5NZW51LmhlYWRsaW5lLmxvZ319IikpOw0KbWVudUl0ZW1zLnB1c2gobmV3IE1haW5NZW51SXRlbSgibG9nb3V0IiwgInt7Lm1haW5NZW51Lml0ZW0ubG9nb3V0fX0iLCAibG9nb3V0LnBuZyIsICJ7ey5tYWluTWVudS5oZWFkbGluZS5sb2dvdXR9fSIpKTsNCi8vIFNldHRpbmdzIGNhdGVnb3JpZXMNCnZhciBzZXR0aW5nc0NhdGVnb3J5ID0gbmV3IEFycmF5KCk7DQpzZXR0aW5nc0NhdGVnb3J5LnB1c2gobmV3IFNldHRpbmdzQ2F0ZWdvcnlJdGVtKCJ7ey5zZXR0aW5ncy5jYXRlZ29yeS5nZW5lcmFsfX0iLCAidGxzTW9kZSx4dGV2ZUF1dG9VcGRhdGUsaG9zdElQLHR1bmVyLGVwZ1NvdXJjZSxkaXNhbGxvd1VSTER1cGxpY2F0ZXMsYXBpIikpOw0Kc2V0dGluZ3NDYXRlZ29yeS5wdXNoKG5ldyBTZXR0aW5nc0NhdGVnb3J5SXRlbSgie3suc2V0dGluZ3MuY2F0ZWdvcnkuZmlsZXN9fSIsICJ1cGRhdGUsZmlsZXMudXBkYXRlLHRlbXAucGF0aCxjYWNoZS5pbWFnZXMseGVwZy5yZXBsYWNlLm1pc3NpbmcuaW1hZ2VzIikpOw0Kc2V0dGluZ3NDYXRlZ29yeS5wdXNoKG5ldyBTZXR0aW5nc0NhdGVnb3J5SXRlbSgie3suc2V0dGluZ3MuY2F0ZWdvcnkuc3RyZWFtaW5nfX0iLCAiYnVmZmVyLHVkcHh5LGJ1ZmZlci5zaXplLmtiLHN0b3JlQnVmZmVySW5SQU0sYnVmZmVyLnRpbWVvdXQsdXNlci5hZ2VudCxmZm1wZWcucGF0aCxmZm1wZWcub3B0aW9ucyx2bGMucGF0aCx2bGMub3B0aW9ucyIpKTsNCnNldHRpbmdzQ2F0ZWdvcnkucHVzaChuZXcgU2V0dGluZ3NDYXRlZ29yeUl0ZW0oInt7LnNldHRpbmdzLmNhdGVnb3J5LmJhY2t1cH19IiwgImJhY2t1cC5wYXRoLGJhY2t1cC5rZWVwIikpOw0Kc2V0dGluZ3NDYXRlZ29yeS5wdXNoKG5ldyBTZXR0aW5nc0NhdGVnb3J5SXRlbSgie3suc2V0dGluZ3MuY2F0ZWdvcnkuYXV0aGVudGljYXRpb259fSIsICJhdXRoZW50aWNhdGlvbi53ZWIsYXV0aGVudGljYXRpb24ucG1zLGF1dGhlbnRpY2F0aW9uLm0zdSxhdXRoZW50aWNhdGlvbi54bWwsYXV0aGVudGljYXRpb24uYXBpIikpOw0KZnVuY3Rpb24gc2hvd1BvcFVwRWxlbWVudChlbG0pIHsNCiAgICB2YXIgYWxsRWxlbWVudHMgPSBuZXcgQXJyYXkoInBvcHVwLWN1c3RvbSIpOw0KICAgIGZvciAodmFyIGkgPSAwOyBpIDwgYWxsRWxlbWVudHMubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgc2hvd0VsZW1lbnQoYWxsRWxlbWVudHNbaV0sIGZhbHNlKTsNCiAgICB9DQogICAgc2hvd0VsZW1lbnQoZWxtLCB0cnVlKTsNCiAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsNCiAgICAgICAgc2hvd0VsZW1lbnQoInBvcHVwIiwgdHJ1ZSk7DQogICAgfSwgMTApOw0KICAgIHJldHVybjsNCn0NCmZ1bmN0aW9uIHNob3dFbGVtZW50KGVsbUlELCB0eXBlKSB7DQogICAgdmFyIGNzc0NsYXNzOw0KICAgIHN3aXRjaCAodHlwZSkgew0KICAgICAgICBjYXNlIHRydWU6DQogICAgICAgICAgICBjc3NDbGFzcyA9ICJibG9jayI7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSBmYWxzZToNCiAgICAgICAgICAgIGNzc0NsYXNzID0gIm5vbmUiOw0KICAgICAgICAgICAgYnJlYWs7DQogICAgfQ0KICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGVsbUlEKS5jbGFzc05hbWUgPSBjc3NDbGFzczsNCn0NCmZ1bmN0aW9uIGNoYW5nZUJ1dHRvbkFjdGlvbihlbGVtZW50LCBidXR0b25JRCwgYXR0cmlidXRlKSB7DQogICAgdmFyIHZhbHVlID0gZWxlbWVudC5vcHRpb25zW2VsZW1lbnQuc2VsZWN0ZWRJbmRleF0udmFsdWU7DQogICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoYnV0dG9uSUQpLnNldEF0dHJpYnV0ZShhdHRyaWJ1dGUsIHZhbHVlKTsNCn0NCmZ1bmN0aW9uIGdldExvY2FsRGF0YShkYXRhVHlwZSwgaWQpIHsNCiAgICBsZXQgZGF0YSA9IHt9Ow0KICAgIHN3aXRjaCAoZGF0YVR5cGUpIHsNCiAgICAgICAgY2FzZSAibTN1IjoNCiAgICAgICAgICAgIGRhdGEgPSBTRVJWRVJbInNldHRpbmdzIl1bImZpbGVzIl1bZGF0YVR5cGVdW2lkXTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJoZGhyIjoNCiAgICAgICAgICAgIGRhdGEgPSBTRVJWRVJbInNldHRpbmdzIl1bImZpbGVzIl1bZGF0YVR5cGVdW2lkXTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJmaWx0ZXIiOg0KICAgICAgICBjYXNlICJjdXN0b20tZmlsdGVyIjoNCiAgICAgICAgY2FzZSAiZ3JvdXAtdGl0bGUiOg0KICAgICAgICAgICAgaWYgKGlkID09IC0xKSB7DQogICAgICAgICAgICAgICAgZGF0YVsiYWN0aXZlIl0gPSB0cnVlOw0KICAgICAgICAgICAgICAgIGRhdGFbImNhc2VTZW5zaXRpdmUiXSA9IGZhbHNlOw0KICAgICAgICAgICAgICAgIGRhdGFbImRlc2NyaXB0aW9uIl0gPSAiIjsNCiAgICAgICAgICAgICAgICBkYXRhWyJleGNsdWRlIl0gPSAiIjsNCiAgICAgICAgICAgICAgICBkYXRhWyJmaWx0ZXIiXSA9ICIiOw0KICAgICAgICAgICAgICAgIGRhdGFbImluY2x1ZGUiXSA9ICIiOw0KICAgICAgICAgICAgICAgIGRhdGFbIm5hbWUiXSA9ICIiOw0KICAgICAgICAgICAgICAgIGRhdGFbInR5cGUiXSA9ICJncm91cC10aXRsZSI7DQogICAgICAgICAgICAgICAgZGF0YVsicHJlc2VydmVNYXBwaW5nIl0gPSB0cnVlOw0KICAgICAgICAgICAgICAgIGRhdGFbInN0YXJ0aW5nQ2hhbm5lbCJdID0gU0VSVkVSWyJzZXR0aW5ncyJdWyJtYXBwaW5nLmZpcnN0LmNoYW5uZWwiXTsNCiAgICAgICAgICAgICAgICBkYXRhWyJkZWZhdWx0TWlzc2luZ0VQRyJdID0gIi0iOw0KICAgICAgICAgICAgICAgIFNFUlZFUlsic2V0dGluZ3MiXVsiZmlsdGVyIl1baWRdID0gZGF0YTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGRhdGEgPSBTRVJWRVJbInNldHRpbmdzIl1bImZpbHRlciJdW2lkXTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJ4bWx0diI6DQogICAgICAgICAgICBkYXRhID0gU0VSVkVSWyJzZXR0aW5ncyJdWyJmaWxlcyJdW2RhdGFUeXBlXVtpZF07DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSAidXNlcnMiOg0KICAgICAgICAgICAgZGF0YSA9IFNFUlZFUlsidXNlcnMiXVtpZF1bImRhdGEiXTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJtYXBwaW5nIjoNCiAgICAgICAgICAgIGRhdGEgPSBTRVJWRVJbInhlcGciXVsiZXBnTWFwcGluZyJdW2lkXTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJtM3VHcm91cHMiOg0KICAgICAgICAgICAgZGF0YSA9IFNFUlZFUlsiZGF0YSJdWyJwbGF5bGlzdCJdWyJtM3UiXVsiZ3JvdXBzIl07DQogICAgICAgICAgICBicmVhazsNCiAgICB9DQogICAgcmV0dXJuIGRhdGE7DQp9DQpmdW5jdGlvbiBnZXRPd25PYmpQcm9wcyhvYmplY3QpIHsNCiAgICByZXR1cm4gb2JqZWN0ID8gT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMob2JqZWN0KSA6IFtdOw0KfQ0KZnVuY3Rpb24gZ2V0QWxsU2VsZWN0ZWRDaGFubmVscygpIHsNCiAgICB2YXIgY2hhbm5lbHMgPSBuZXcgQXJyYXkoKTsNCiAgICBpZiAoQlVMS19FRElUID09IGZhbHNlKSB7DQogICAgICAgIHJldHVybiBjaGFubmVsczsNCiAgICB9DQogICAgdmFyIHRycyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb250ZW50X3RhYmxlIikuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlRSIik7DQogICAgZm9yICh2YXIgaSA9IDE7IGkgPCB0cnMubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgaWYgKHRyc1tpXS5zdHlsZS5kaXNwbGF5ICE9ICJub25lIikgew0KICAgICAgICAgICAgaWYgKHRyc1tpXS5maXJzdENoaWxkLmZpcnN0Q2hpbGQuY2hlY2tlZCA9PSB0cnVlKSB7DQogICAgICAgICAgICAgICAgY2hhbm5lbHMucHVzaCh0cnNbaV0uaWQpOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQogICAgfQ0KICAgIHJldHVybiBjaGFubmVsczsNCn0NCmZ1bmN0aW9uIHNlbGVjdEFsbENoYW5uZWxzKCkgew0KICAgIHZhciBidWxrID0gZmFsc2U7DQogICAgdmFyIHRycyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb250ZW50X3RhYmxlIikuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlRSIik7DQogICAgaWYgKHRyc1swXS5maXJzdENoaWxkLmZpcnN0Q2hpbGQuY2hlY2tlZCA9PSB0cnVlKSB7DQogICAgICAgIGJ1bGsgPSB0cnVlOw0KICAgIH0NCiAgICBmb3IgKHZhciBpID0gMTsgaSA8IHRycy5sZW5ndGg7IGkrKykgew0KICAgICAgICBpZiAodHJzW2ldLnN0eWxlLmRpc3BsYXkgIT0gIm5vbmUiKSB7DQogICAgICAgICAgICBzd2l0Y2ggKGJ1bGspIHsNCiAgICAgICAgICAgICAgICBjYXNlIHRydWU6DQogICAgICAgICAgICAgICAgICAgIHRyc1tpXS5maXJzdENoaWxkLmZpcnN0Q2hpbGQuY2hlY2tlZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgZmFsc2U6DQogICAgICAgICAgICAgICAgICAgIHRyc1tpXS5maXJzdENoaWxkLmZpcnN0Q2hpbGQuY2hlY2tlZCA9IGZhbHNlOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KICAgIH0NCiAgICByZXR1cm47DQp9DQpmdW5jdGlvbiBidWxrRWRpdCgpIHsNCiAgICBCVUxLX0VESVQgPSAhQlVMS19FRElUOw0KICAgIHZhciBjbGFzc05hbWU7DQogICAgdmFyIHJvd3MgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCJidWxrIik7DQogICAgc3dpdGNoIChCVUxLX0VESVQpIHsNCiAgICAgICAgY2FzZSB0cnVlOg0KICAgICAgICAgICAgY2xhc3NOYW1lID0gImJ1bGsgc2hvd0J1bGsiOw0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGNhc2UgZmFsc2U6DQogICAgICAgICAgICBjbGFzc05hbWUgPSAiYnVsayBoaWRlQnVsayI7DQogICAgICAgICAgICBicmVhazsNCiAgICB9DQogICAgZm9yICh2YXIgaSA9IDA7IGkgPCByb3dzLmxlbmd0aDsgaSsrKSB7DQogICAgICAgIHJvd3NbaV0uY2xhc3NOYW1lID0gY2xhc3NOYW1lOw0KICAgICAgICByb3dzW2ldLmNoZWNrZWQgPSBmYWxzZTsNCiAgICB9DQogICAgcmV0dXJuOw0KfQ0KZnVuY3Rpb24gc29ydFRhYmxlKGNvbHVtbikgew0KICAgIGlmIChjb2x1bW4gPT0gQ09MVU1OX1RPX1NPUlQpIHsNCiAgICAgICAgcmV0dXJuOw0KICAgIH0NCiAgICBjb25zdCB0YWJsZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb250ZW50X3RhYmxlIik7DQogICAgY29uc3QgdGFibGVIZWFkID0gdGFibGUuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlRSIilbMF07DQogICAgY29uc3QgdGFibGVJdGVtcyA9IHRhYmxlSGVhZC5nZXRFbGVtZW50c0J5VGFnTmFtZSgiVEQiKTsNCiAgICBjb25zdCBzb3J0QXJyID0gW107DQogICAgbGV0IHhWYWx1ZTsNCiAgICBpZiAoY29sdW1uID49IDAgJiYgQ09MVU1OX1RPX1NPUlQgPj0gMCkgew0KICAgICAgICB0YWJsZUl0ZW1zW0NPTFVNTl9UT19TT1JUXS5jbGFzc05hbWUgPSAicG9pbnRlciI7DQogICAgICAgIHRhYmxlSXRlbXNbY29sdW1uXS5jbGFzc05hbWUgPSAic29ydFRoaXMiOw0KICAgIH0NCiAgICBDT0xVTU5fVE9fU09SVCA9IGNvbHVtbjsNCiAgICBjb25zdCByb3dzID0gdGFibGUucm93czsNCiAgICBpZiAocm93c1sxXSAhPSB1bmRlZmluZWQpIHsNCiAgICAgICAgY29uc3QgdGFibGVIZWFkZXIgPSByb3dzWzBdOw0KICAgICAgICBsZXQgeCA9IHJvd3NbMV0uZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlREIilbY29sdW1uXTsNCiAgICAgICAgZm9yIChsZXQgaSA9IDE7IGkgPCByb3dzLmxlbmd0aDsgaSsrKSB7DQogICAgICAgICAgICB4ID0gcm93c1tpXS5nZXRFbGVtZW50c0J5VGFnTmFtZSgiVEQiKVtjb2x1bW5dOw0KICAgICAgICAgICAgc3dpdGNoICh4LmNoaWxkTm9kZXNbMF0udGFnTmFtZS50b0xvd2VyQ2FzZSgpKSB7DQogICAgICAgICAgICAgICAgY2FzZSAiaW5wdXQiOg0KICAgICAgICAgICAgICAgICAgICB4VmFsdWUgPSB4LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJJTlBVVCIpWzBdLnZhbHVlLnRvTG93ZXJDYXNlKCk7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgInAiOg0KICAgICAgICAgICAgICAgICAgICB4VmFsdWUgPSB4LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJQIilbMF0uaW5uZXJUZXh0LnRvTG93ZXJDYXNlKCk7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgc29ydEFyci5wdXNoKHsga2V5OiB4VmFsdWUgPyB4VmFsdWUgOiBpLCByb3c6IHJvd3NbaV0gfSk7DQogICAgICAgIH0NCiAgICAgICAgd2hpbGUgKHRhYmxlLmZpcnN0Q2hpbGQpIHsNCiAgICAgICAgICAgIHRhYmxlLnJlbW92ZUNoaWxkKHRhYmxlLmZpcnN0Q2hpbGQpOw0KICAgICAgICB9DQogICAgICAgIHNvcnRBcnIuc29ydCgoc2UxLCBzZTIpID0+IHsNCiAgICAgICAgICAgIGNvbnN0IHNlMUtleU51bSA9IHBhcnNlRmxvYXQoU3RyaW5nKHNlMS5rZXkpKTsNCiAgICAgICAgICAgIGNvbnN0IHNlMktleU51bSA9IHBhcnNlRmxvYXQoU3RyaW5nKHNlMi5rZXkpKTsNCiAgICAgICAgICAgIGlmICghaXNOYU4oc2UxS2V5TnVtKSAmJiAhaXNOYU4oc2UyS2V5TnVtKSkgew0KICAgICAgICAgICAgICAgIHJldHVybiBzZTFLZXlOdW0gLSBzZTJLZXlOdW07DQogICAgICAgICAgICB9DQogICAgICAgICAgICBpZiAoc2UxLmtleSA8IHNlMi5rZXkpIHsNCiAgICAgICAgICAgICAgICByZXR1cm4gLTE7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBpZiAoc2UxLmtleSA+IHNlMi5rZXkpIHsNCiAgICAgICAgICAgICAgICByZXR1cm4gMTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIHJldHVybiAwOw0KICAgICAgICB9KTsNCiAgICAgICAgdGFibGUuYXBwZW5kQ2hpbGQodGFibGVIZWFkZXIpOw0KICAgICAgICBzb3J0QXJyLmZvckVhY2goKHNlKSA9PiB7DQogICAgICAgICAgICB0YWJsZS5hcHBlbmRDaGlsZChzZS5yb3cpOw0KICAgICAgICB9KTsNCiAgICB9DQogICAgcmV0dXJuOw0KfQ0KZnVuY3Rpb24gY3JlYXRlU2VhcmNoT2JqKCkgew0KICAgIFNFQVJDSF9NQVBQSU5HID0gbmV3IE9iamVjdCgpOw0KICAgIHZhciBkYXRhID0gU0VSVkVSWyJ4ZXBnIl1bImVwZ01hcHBpbmciXTsNCiAgICB2YXIgY2hhbm5lbHMgPSBnZXRPd25PYmpQcm9wcyhkYXRhKTsNCiAgICB2YXIgY2hhbm5lbEtleXMgPSBbIngtYWN0aXZlIiwgIngtY2hhbm5lbElEIiwgIngtbmFtZSIsICJ1cGRhdGVDaGFubmVsTmFtZVJlZ2V4IiwgIl9maWxlLm0zdS5uYW1lIiwgIngtZ3JvdXAtdGl0bGUiLCAieC14bWx0di1maWxlIl07DQogICAgY2hhbm5lbHMuZm9yRWFjaChpZCA9PiB7DQogICAgICAgIGNoYW5uZWxLZXlzLmZvckVhY2goa2V5ID0+IHsNCiAgICAgICAgICAgIGlmIChrZXkgPT0gIngtYWN0aXZlIikgew0KICAgICAgICAgICAgICAgIHN3aXRjaCAoZGF0YVtpZF1ba2V5XSkgew0KICAgICAgICAgICAgICAgICAgICBjYXNlIHRydWU6DQogICAgICAgICAgICAgICAgICAgICAgICBTRUFSQ0hfTUFQUElOR1tpZF0gPSAib25saW5lICI7DQogICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICAgICAgY2FzZSBmYWxzZToNCiAgICAgICAgICAgICAgICAgICAgICAgIFNFQVJDSF9NQVBQSU5HW2lkXSA9ICJvZmZsaW5lICI7DQogICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9DQogICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICBpZiAoa2V5ID09ICJ4LXhtbHR2LWZpbGUiKSB7DQogICAgICAgICAgICAgICAgICAgIHZhciB4bWx0dkZpbGUgPSBnZXRWYWx1ZUZyb21Qcm92aWRlckZpbGUoZGF0YVtpZF1ba2V5XSwgInhtbHR2IiwgIm5hbWUiKTsNCiAgICAgICAgICAgICAgICAgICAgaWYgKHhtbHR2RmlsZSAhPSB1bmRlZmluZWQpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIFNFQVJDSF9NQVBQSU5HW2lkXSA9IFNFQVJDSF9NQVBQSU5HW2lkXSArIHhtbHR2RmlsZSArICIgIjsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICAgICAgU0VBUkNIX01BUFBJTkdbaWRdID0gU0VBUkNIX01BUFBJTkdbaWRdICsgZGF0YVtpZF1ba2V5XSArICIgIjsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9DQogICAgICAgIH0pOw0KICAgIH0pOw0KICAgIHJldHVybjsNCn0NCmZ1bmN0aW9uIHNlYXJjaEluTWFwcGluZygpIHsNCiAgICB2YXIgc2VhcmNoVmFsdWUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic2VhcmNoTWFwcGluZyIpLnZhbHVlOw0KICAgIHZhciB0cnMgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29udGVudF90YWJsZSIpLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJUUiIpOw0KICAgIGZvciAodmFyIGkgPSAxOyBpIDwgdHJzLmxlbmd0aDsgKytpKSB7DQogICAgICAgIHZhciBpZCA9IHRyc1tpXS5nZXRBdHRyaWJ1dGUoImlkIik7DQogICAgICAgIHZhciBlbGVtZW50ID0gU0VBUkNIX01BUFBJTkdbaWRdOw0KICAgICAgICBzd2l0Y2ggKGVsZW1lbnQudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhzZWFyY2hWYWx1ZS50b0xvd2VyQ2FzZSgpKSkgew0KICAgICAgICAgICAgY2FzZSB0cnVlOg0KICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5zdHlsZS5kaXNwbGF5ID0gIiI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlIGZhbHNlOg0KICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5zdHlsZS5kaXNwbGF5ID0gIm5vbmUiOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICB9DQogICAgfQ0KICAgIHJldHVybjsNCn0NCmZ1bmN0aW9uIGNhbGN1bGF0ZVdyYXBwZXJIZWlnaHQoKSB7DQogICAgaWYgKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJib3gtd3JhcHBlciIpKSB7DQogICAgICAgIHZhciBlbG0gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYm94LXdyYXBwZXIiKTsNCiAgICAgICAgdmFyIGRpdnMgPSBuZXcgQXJyYXkoIm15U3RyZWFtc0JveCIsICJjbGllbnRJbmZvIiwgImNvbnRlbnQiKTsNCiAgICAgICAgdmFyIGVsZW1lbnRzSGVpZ2h0ID0gMCAtIGVsbS5vZmZzZXRIZWlnaHQ7DQogICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgZGl2cy5sZW5ndGg7IGkrKykgew0KICAgICAgICAgICAgZWxlbWVudHNIZWlnaHQgPSBlbGVtZW50c0hlaWdodCArIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGRpdnNbaV0pLm9mZnNldEhlaWdodDsNCiAgICAgICAgfQ0KICAgICAgICBlbG0uc3R5bGUuaGVpZ2h0ID0gd2luZG93LmlubmVySGVpZ2h0IC0gZWxlbWVudHNIZWlnaHQgKyAicHgiOw0KICAgIH0NCiAgICByZXR1cm47DQp9DQpmdW5jdGlvbiBjaGFuZ2VDaGFubmVsTnVtYmVyKGVsZW1lbnQpIHsNCiAgICB2YXIgZGJJRCA9IGVsZW1lbnQucGFyZW50Tm9kZS5wYXJlbnROb2RlLmlkOw0KICAgIHZhciBuZXdOdW1iZXIgPSBwYXJzZUZsb2F0KGVsZW1lbnQudmFsdWUpOw0KICAgIHZhciBjaGFubmVsTnVtYmVycyA9IFtdOw0KICAgIHZhciBkYXRhID0gU0VSVkVSWyJ4ZXBnIl1bImVwZ01hcHBpbmciXTsNCiAgICB2YXIgY2hhbm5lbHMgPSBnZXRPd25PYmpQcm9wcyhkYXRhKTsNCiAgICBpZiAoaXNOYU4obmV3TnVtYmVyKSkgew0KICAgICAgICBhbGVydCgie3suYWxlcnQuaW52YWxpZENoYW5uZWxOdW1iZXJ9fSIpOw0KICAgICAgICByZXR1cm47DQogICAgfQ0KICAgIGNoYW5uZWxzLmZvckVhY2goaWQgPT4gew0KICAgICAgICB2YXIgY2hhbm5lbE51bWJlciA9IHBhcnNlRmxvYXQoZGF0YVtpZF1bIngtY2hhbm5lbElEIl0pOw0KICAgICAgICBjaGFubmVsTnVtYmVycy5wdXNoKGNoYW5uZWxOdW1iZXIpOw0KICAgIH0pOw0KICAgIGZvciAodmFyIGkgPSAwOyBpIDwgY2hhbm5lbE51bWJlcnMubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgaWYgKGNoYW5uZWxOdW1iZXJzLmluZGV4T2YobmV3TnVtYmVyKSA9PSAtMSkgew0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIH0NCiAgICAgICAgaWYgKE1hdGguZmxvb3IobmV3TnVtYmVyKSA9PSBuZXdOdW1iZXIpIHsNCiAgICAgICAgICAgIG5ld051bWJlciA9IG5ld051bWJlciArIDE7DQogICAgICAgIH0NCiAgICAgICAgZWxzZSB7DQogICAgICAgICAgICBuZXdOdW1iZXIgPSBuZXdOdW1iZXIgKyAwLjE7DQogICAgICAgICAgICBuZXdOdW1iZXIudG9GaXhlZCgxKTsNCiAgICAgICAgICAgIG5ld051bWJlciA9IE1hdGgucm91bmQobmV3TnVtYmVyICogMTApIC8gMTA7DQogICAgICAgIH0NCiAgICB9DQogICAgZGF0YVtkYklEXVsieC1jaGFubmVsSUQiXSA9IG5ld051bWJlci50b1N0cmluZygpOw0KICAgIGVsZW1lbnQudmFsdWUgPSBuZXdOdW1iZXI7DQogICAgaWYgKENPTFVNTl9UT19TT1JUID09IDEpIHsNCiAgICAgICAgQ09MVU1OX1RPX1NPUlQgPSAtMTsNCiAgICAgICAgc29ydFRhYmxlKDEpOw0KICAgIH0NCiAgICByZXR1cm47DQp9DQpmdW5jdGlvbiBiYWNrdXAoKSB7DQogICAgdmFyIGRhdGEgPSBuZXcgT2JqZWN0KCk7DQogICAgdmFyIGNtZCA9ICJ4dGV2ZUJhY2t1cCI7DQogICAgdmFyIHNlcnZlciA9IG5ldyBTZXJ2ZXIoY21kKTsNCiAgICBzZXJ2ZXIucmVxdWVzdChkYXRhKTsNCiAgICByZXR1cm47DQp9DQpmdW5jdGlvbiB0b2dnbGVDaGFubmVsU3RhdHVzKGlkKSB7DQogICAgdmFyIGVsZW1lbnQ7DQogICAgdmFyIHN0YXR1czsNCiAgICBpZiAoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImFjdGl2ZSIpKSB7DQogICAgICAgIHZhciBjaGVja2JveCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJhY3RpdmUiKTsNCiAgICAgICAgc3RhdHVzID0gKGNoZWNrYm94KS5jaGVja2VkOw0KICAgIH0NCiAgICB2YXIgaWRzID0gZ2V0QWxsU2VsZWN0ZWRDaGFubmVscygpOw0KICAgIGlmIChpZHMubGVuZ3RoID09IDApIHsNCiAgICAgICAgaWRzLnB1c2goaWQpOw0KICAgIH0NCiAgICBpZHMuZm9yRWFjaChpZCA9PiB7DQogICAgICAgIHZhciBjaGFubmVsID0gU0VSVkVSWyJ4ZXBnIl1bImVwZ01hcHBpbmciXVtpZF07DQogICAgICAgIGNoYW5uZWxbIngtYWN0aXZlIl0gPSBzdGF0dXM7DQogICAgICAgIHN3aXRjaCAoY2hhbm5lbFsieC1hY3RpdmUiXSkgew0KICAgICAgICAgICAgY2FzZSB0cnVlOg0KICAgICAgICAgICAgICAgIGlmIChjaGFubmVsWyJ4LXhtbHR2LWZpbGUiXSA9PSAiLSIgfHwgY2hhbm5lbFsieC1tYXBwaW5nIl0gPT0gIi0iKSB7DQogICAgICAgICAgICAgICAgICAgIGlmIChCVUxLX0VESVQgPT0gZmFsc2UpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGFsZXJ0KGNoYW5uZWxbIngtbmFtZSJdICsgIjogTWlzc2luZyBYTUxUViBmaWxlIC8gY2hhbm5lbCIpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2hlY2tib3guY2hlY2tlZCA9IGZhbHNlOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIGNoYW5uZWxbIngtYWN0aXZlIl0gPSBmYWxzZTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlIGZhbHNlOg0KICAgICAgICAgICAgICAgIC8vIGNvZGUuLi4NCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgfQ0KICAgICAgICBpZiAoY2hhbm5lbFsieC1hY3RpdmUiXSA9PSBmYWxzZSkgew0KICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpLmNsYXNzTmFtZSA9ICJub3RBY3RpdmVFUEciOw0KICAgICAgICB9DQogICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpLmNsYXNzTmFtZSA9ICJhY3RpdmVFUEciOw0KICAgICAgICB9DQogICAgfSk7DQp9DQpmdW5jdGlvbiB0b2dnbGVHcm91cFVwZGF0ZUNiKHhlcGdJZCwgdGFyZ2V0KSB7DQogICAgdGFyZ2V0LmNsYXNzTmFtZSA9ICdjaGFuZ2VkJzsNCiAgICBjb25zdCBncm91cElucHV0ID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignaW5wdXRbbmFtZT0ieC1ncm91cC10aXRsZSJdJyk7DQogICAgY29uc3QgbWFwcGluZyA9IGdldExvY2FsRGF0YSgnbWFwcGluZycsIHhlcGdJZCk7DQogICAgaWYgKHRhcmdldC5jaGVja2VkKSB7DQogICAgICAgIGdyb3VwSW5wdXQuZGF0YXNldC5vbGRWYWx1ZSA9IGdyb3VwSW5wdXQudmFsdWU7DQogICAgICAgIGdyb3VwSW5wdXQudmFsdWUgPSBtYXBwaW5nWydncm91cC10aXRsZSddOw0KICAgICAgICBncm91cElucHV0LmRpc2FibGVkID0gdHJ1ZTsNCiAgICB9DQogICAgZWxzZSB7DQogICAgICAgIGdyb3VwSW5wdXQudmFsdWUgPSBncm91cElucHV0LmRhdGFzZXQub2xkVmFsdWU7DQogICAgICAgIGdyb3VwSW5wdXQuZGlzYWJsZWQgPSBmYWxzZTsNCiAgICB9DQogICAgZ3JvdXBJbnB1dC5jbGFzc05hbWUgPSAnY2hhbmdlZCc7DQp9DQpmdW5jdGlvbiByZXN0b3JlKCkgew0KICAgIGlmIChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndXBsb2FkJykpIHsNCiAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3VwbG9hZCcpLnJlbW92ZSgpOw0KICAgIH0NCiAgICB2YXIgcmVzdG9yZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIklOUFVUIik7DQogICAgcmVzdG9yZS5zZXRBdHRyaWJ1dGUoInR5cGUiLCAiZmlsZSIpOw0KICAgIHJlc3RvcmUuc2V0QXR0cmlidXRlKCJjbGFzcyIsICJub3RWaXNpYmxlIik7DQogICAgcmVzdG9yZS5zZXRBdHRyaWJ1dGUoIm5hbWUiLCAiIik7DQogICAgcmVzdG9yZS5pZCA9ICJ1cGxvYWQiOw0KICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQocmVzdG9yZSk7DQogICAgcmVzdG9yZS5jbGljaygpOw0KICAgIHJlc3RvcmUub25jaGFuZ2UgPSBmdW5jdGlvbiAoKSB7DQogICAgICAgIHZhciBmaWxlbmFtZSA9IHJlc3RvcmUuZmlsZXNbMF0ubmFtZTsNCiAgICAgICAgdmFyIGNoZWNrID0gY29uZmlybSgiRmlsZTogIiArIGZpbGVuYW1lICsgIlxue3suY29uZmlybS5yZXN0b3JlfX0iKTsNCiAgICAgICAgaWYgKGNoZWNrID09IHRydWUpIHsNCiAgICAgICAgICAgIHZhciByZWFkZXIgPSBuZXcgRmlsZVJlYWRlcigpOw0KICAgICAgICAgICAgdmFyIGZpbGUgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCdpbnB1dFt0eXBlPWZpbGVdJykuZmlsZXNbMF07DQogICAgICAgICAgICBpZiAoZmlsZSkgew0KICAgICAgICAgICAgICAgIHJlYWRlci5yZWFkQXNEYXRhVVJMKGZpbGUpOw0KICAgICAgICAgICAgICAgIHJlYWRlci5vbmxvYWQgPSBmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICAgICAgICAgIHZhciBkYXRhID0gbmV3IE9iamVjdCgpOw0KICAgICAgICAgICAgICAgICAgICB2YXIgY21kID0gInh0ZXZlUmVzdG9yZSI7DQogICAgICAgICAgICAgICAgICAgIGRhdGFbImJhc2U2NCJdID0gcmVhZGVyLnJlc3VsdDsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHNlcnZlciA9IG5ldyBTZXJ2ZXIoY21kKTsNCiAgICAgICAgICAgICAgICAgICAgc2VydmVyLnJlcXVlc3QoZGF0YSk7DQogICAgICAgICAgICAgICAgfTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgICAgIGFsZXJ0KCJGaWxlIGNvdWxkIG5vdCBiZSBsb2FkZWQiKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIHJlc3RvcmUucmVtb3ZlKCk7DQogICAgICAgICAgICByZXR1cm47DQogICAgICAgIH0NCiAgICB9Ow0KICAgIHJldHVybjsNCn0NCmZ1bmN0aW9uIHVwbG9hZExvZ28oKSB7DQogICAgaWYgKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd1cGxvYWQnKSkgew0KICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndXBsb2FkJykucmVtb3ZlKCk7DQogICAgfQ0KICAgIHZhciB1cGxvYWQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJJTlBVVCIpOw0KICAgIHVwbG9hZC5zZXRBdHRyaWJ1dGUoInR5cGUiLCAiZmlsZSIpOw0KICAgIHVwbG9hZC5zZXRBdHRyaWJ1dGUoImNsYXNzIiwgIm5vdFZpc2libGUiKTsNCiAgICB1cGxvYWQuc2V0QXR0cmlidXRlKCJuYW1lIiwgIiIpOw0KICAgIHVwbG9hZC5pZCA9ICJ1cGxvYWQiOw0KICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQodXBsb2FkKTsNCiAgICB1cGxvYWQuY2xpY2soKTsNCiAgICB1cGxvYWQub25ibHVyID0gZnVuY3Rpb24gKCkgew0KICAgICAgICBhbGVydCgpOw0KICAgIH07DQogICAgdXBsb2FkLm9uY2hhbmdlID0gZnVuY3Rpb24gKCkgew0KICAgICAgICB2YXIgZmlsZW5hbWUgPSB1cGxvYWQuZmlsZXNbMF0ubmFtZTsNCiAgICAgICAgdmFyIHJlYWRlciA9IG5ldyBGaWxlUmVhZGVyKCk7DQogICAgICAgIHZhciBmaWxlID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignaW5wdXRbdHlwZT1maWxlXScpLmZpbGVzWzBdOw0KICAgICAgICBpZiAoZmlsZSkgew0KICAgICAgICAgICAgcmVhZGVyLnJlYWRBc0RhdGFVUkwoZmlsZSk7DQogICAgICAgICAgICByZWFkZXIub25sb2FkID0gZnVuY3Rpb24gKCkgew0KICAgICAgICAgICAgICAgIHZhciBkYXRhID0gbmV3IE9iamVjdCgpOw0KICAgICAgICAgICAgICAgIHZhciBjbWQgPSAidXBsb2FkTG9nbyI7DQogICAgICAgICAgICAgICAgZGF0YVsiYmFzZTY0Il0gPSByZWFkZXIucmVzdWx0Ow0KICAgICAgICAgICAgICAgIGRhdGFbImZpbGVuYW1lIl0gPSBmaWxlLm5hbWU7DQogICAgICAgICAgICAgICAgdmFyIHNlcnZlciA9IG5ldyBTZXJ2ZXIoY21kKTsNCiAgICAgICAgICAgICAgICBzZXJ2ZXIucmVxdWVzdChkYXRhKTsNCiAgICAgICAgICAgICAgICB2YXIgdXBkYXRlTG9nbyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd1cGRhdGUtaWNvbicpOw0KICAgICAgICAgICAgICAgIHVwZGF0ZUxvZ28uY2hlY2tlZCA9IGZhbHNlOw0KICAgICAgICAgICAgICAgIHVwZGF0ZUxvZ28uY2xhc3NOYW1lID0gImNoYW5nZWQiOw0KICAgICAgICAgICAgfTsNCiAgICAgICAgfQ0KICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgIGFsZXJ0KCJGaWxlIGNvdWxkIG5vdCBiZSBsb2FkZWQiKTsNCiAgICAgICAgfQ0KICAgICAgICB1cGxvYWQucmVtb3ZlKCk7DQogICAgICAgIHJldHVybjsNCiAgICB9Ow0KfQ0KZnVuY3Rpb24gY2hlY2tVbmRvKGtleSkgew0KICAgIHN3aXRjaCAoa2V5KSB7DQogICAgICAgIGNhc2UgImVwZ01hcHBpbmciOg0KICAgICAgICAgICAgaWYgKFVORE8uaGFzT3duUHJvcGVydHkoa2V5KSkgew0KICAgICAgICAgICAgICAgIFNFUlZFUlsieGVwZyJdW2tleV0gPSBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KFVORE9ba2V5XSkpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgZWxzZSB7DQogICAgICAgICAgICAgICAgVU5ET1trZXldID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeShTRVJWRVJbInhlcGciXVtrZXldKSk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgIGJyZWFrOw0KICAgIH0NCiAgICByZXR1cm47DQp9DQpmdW5jdGlvbiB1cGRhdGVMb2coKSB7DQogICAgdmFyIHNlcnZlciA9IG5ldyBTZXJ2ZXIoInVwZGF0ZUxvZyIpOw0KICAgIHNlcnZlci5yZXF1ZXN0KG5ldyBPYmplY3QoKSk7DQp9DQo=" webUI["html/js/classes_ts.js"] = "dmFyIF9fZXh0ZW5kcyA9ICh0aGlzICYmIHRoaXMuX19leHRlbmRzKSB8fCAoZnVuY3Rpb24gKCkgew0KICAgIHZhciBleHRlbmRTdGF0aWNzID0gZnVuY3Rpb24gKGQsIGIpIHsNCiAgICAgICAgZXh0ZW5kU3RhdGljcyA9IE9iamVjdC5zZXRQcm90b3R5cGVPZiB8fA0KICAgICAgICAgICAgKHsgX19wcm90b19fOiBbXSB9IGluc3RhbmNlb2YgQXJyYXkgJiYgZnVuY3Rpb24gKGQsIGIpIHsgZC5fX3Byb3RvX18gPSBiOyB9KSB8fA0KICAgICAgICAgICAgZnVuY3Rpb24gKGQsIGIpIHsgZm9yICh2YXIgcCBpbiBiKSBpZiAoYi5oYXNPd25Qcm9wZXJ0eShwKSkgZFtwXSA9IGJbcF07IH07DQogICAgICAgIHJldHVybiBleHRlbmRTdGF0aWNzKGQsIGIpOw0KICAgIH07DQogICAgcmV0dXJuIGZ1bmN0aW9uIChkLCBiKSB7DQogICAgICAgIGV4dGVuZFN0YXRpY3MoZCwgYik7DQogICAgICAgIGZ1bmN0aW9uIF9fKCkgeyB0aGlzLmNvbnN0cnVjdG9yID0gZDsgfQ0KICAgICAgICBkLnByb3RvdHlwZSA9IGIgPT09IG51bGwgPyBPYmplY3QuY3JlYXRlKGIpIDogKF9fLnByb3RvdHlwZSA9IGIucHJvdG90eXBlLCBuZXcgX18oKSk7DQogICAgfTsNCn0pKCk7DQp2YXIgTWFpbk1lbnUgPSAvKiogQGNsYXNzICovIChmdW5jdGlvbiAoKSB7DQogICAgZnVuY3Rpb24gTWFpbk1lbnUoKSB7DQogICAgICAgIHRoaXMuRG9jdW1lbnRJRCA9ICJtYWluLW1lbnUiOw0KICAgICAgICB0aGlzLkhUTUxUYWcgPSAiTEkiOw0KICAgIH0NCiAgICBNYWluTWVudS5wcm90b3R5cGUuY3JlYXRlID0gZnVuY3Rpb24gKCkgew0KICAgICAgICBjb25zb2xlLmxvZyh0aGlzLkRvY3VtZW50SUQpOw0KICAgIH07DQogICAgcmV0dXJuIE1haW5NZW51Ow0KfSgpKTsNCnZhciBNYWluTWVudUl0ZW0gPSAvKiogQGNsYXNzICovIChmdW5jdGlvbiAoX3N1cGVyKSB7DQogICAgX19leHRlbmRzKE1haW5NZW51SXRlbSwgX3N1cGVyKTsNCiAgICBmdW5jdGlvbiBNYWluTWVudUl0ZW0oKSB7DQogICAgICAgIHJldHVybiBfc3VwZXIgIT09IG51bGwgJiYgX3N1cGVyLmFwcGx5KHRoaXMsIGFyZ3VtZW50cykgfHwgdGhpczsNCiAgICB9DQogICAgTWFpbk1lbnVJdGVtLnByb3RvdHlwZS5jcmVhdGUyID0gZnVuY3Rpb24gKCkgew0KICAgICAgICB2YXIgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQodGhpcy5IVE1MVGFnKTsNCiAgICAgICAgZWxlbWVudC5pbm5lclRleHQgPSB0aGlzLlZhbHVlOw0KICAgICAgICBjb25zb2xlLmxvZyhlbGVtZW50KTsNCiAgICB9Ow0KICAgIHJldHVybiBNYWluTWVudUl0ZW07DQp9KE1haW5NZW51KSk7DQpmdW5jdGlvbiBwYWdlUmVhZHkoKSB7DQogICAgdmFyIGl0ZW0gPSBuZXcgTWFpbk1lbnVJdGVtKCk7DQogICAgaXRlbS5WYWx1ZSA9ICJUZXN0IjsNCiAgICBpdGVtLmNyZWF0ZTIoKTsNCn0NCg==" webUI["html/js/configuration_ts.js"] = "Y2xhc3MgV2l6YXJkQ2F0ZWdvcnkgew0KICAgIGNvbnN0cnVjdG9yKCkgew0KICAgICAgICB0aGlzLkRvY3VtZW50SUQgPSAiY29udGVudCI7DQogICAgfQ0KICAgIGNyZWF0ZUNhdGVnb3J5SGVhZGxpbmUodmFsdWUpIHsNCiAgICAgICAgdmFyIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJINCIpOw0KICAgICAgICBlbGVtZW50LmlubmVySFRNTCA9IHZhbHVlOw0KICAgICAgICByZXR1cm4gZWxlbWVudDsNCiAgICB9DQp9DQpjbGFzcyBXaXphcmRJdGVtIGV4dGVuZHMgV2l6YXJkQ2F0ZWdvcnkgew0KICAgIGNvbnN0cnVjdG9yKGtleSwgaGVhZGxpbmUpIHsNCiAgICAgICAgc3VwZXIoKTsNCiAgICAgICAgdGhpcy5oZWFkbGluZSA9IGhlYWRsaW5lOw0KICAgICAgICB0aGlzLmtleSA9IGtleTsNCiAgICB9DQogICAgY3JlYXRlV2l6YXJkKCkgew0KICAgICAgICB2YXIgaGVhZGxpbmUgPSB0aGlzLmNyZWF0ZUNhdGVnb3J5SGVhZGxpbmUodGhpcy5oZWFkbGluZSk7DQogICAgICAgIHZhciBrZXkgPSB0aGlzLmtleTsNCiAgICAgICAgdmFyIGNvbnRlbnQgPSBuZXcgUG9wdXBDb250ZW50KCk7DQogICAgICAgIHZhciBkZXNjcmlwdGlvbjsNCiAgICAgICAgdmFyIGRvYyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHRoaXMuRG9jdW1lbnRJRCk7DQogICAgICAgIGRvYy5pbm5lckhUTUwgPSAiIjsNCiAgICAgICAgZG9jLmFwcGVuZENoaWxkKGhlYWRsaW5lKTsNCiAgICAgICAgc3dpdGNoIChrZXkpIHsNCiAgICAgICAgICAgIGNhc2UgInR1bmVyIjoNCiAgICAgICAgICAgICAgICB2YXIgdGV4dCA9IG5ldyBBcnJheSgpOw0KICAgICAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBuZXcgQXJyYXkoKTsNCiAgICAgICAgICAgICAgICBmb3IgKHZhciBpID0gMTsgaSA8PSAxMDA7IGkrKykgew0KICAgICAgICAgICAgICAgICAgICB0ZXh0LnB1c2goaSk7DQogICAgICAgICAgICAgICAgICAgIHZhbHVlcy5wdXNoKGkpOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCAiMSIsIGtleSk7DQogICAgICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgiY2xhc3MiLCAid2l6YXJkIik7DQogICAgICAgICAgICAgICAgc2VsZWN0LmlkID0ga2V5Ow0KICAgICAgICAgICAgICAgIGRvYy5hcHBlbmRDaGlsZChzZWxlY3QpOw0KICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uID0gInt7LndpemFyZC50dW5lci5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImVwZ1NvdXJjZSI6DQogICAgICAgICAgICAgICAgdmFyIHRleHQgPSBbIlBNUyIsICJYRVBHIl07DQogICAgICAgICAgICAgICAgdmFyIHZhbHVlcyA9IFsiUE1TIiwgIlhFUEciXTsNCiAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCAiWEVQRyIsIGtleSk7DQogICAgICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgiY2xhc3MiLCAid2l6YXJkIik7DQogICAgICAgICAgICAgICAgc2VsZWN0LmlkID0ga2V5Ow0KICAgICAgICAgICAgICAgIGRvYy5hcHBlbmRDaGlsZChzZWxlY3QpOw0KICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uID0gInt7LndpemFyZC5lcGdTb3VyY2UuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJtM3UiOg0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBrZXksICIiKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LndpemFyZC5tM3UucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgiY2xhc3MiLCAid2l6YXJkIik7DQogICAgICAgICAgICAgICAgaW5wdXQuaWQgPSBrZXk7DQogICAgICAgICAgICAgICAgZG9jLmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbiA9ICJ7ey53aXphcmQubTN1LmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAieG1sdHYiOg0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBrZXksICIiKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LndpemFyZC54bWx0di5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJjbGFzcyIsICJ3aXphcmQiKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5pZCA9IGtleTsNCiAgICAgICAgICAgICAgICBkb2MuYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uID0gInt7LndpemFyZC54bWx0di5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIH0NCiAgICAgICAgdmFyIHByZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlBSRSIpOw0KICAgICAgICBwcmUuaW5uZXJIVE1MID0gZGVzY3JpcHRpb247DQogICAgICAgIGRvYy5hcHBlbmRDaGlsZChwcmUpOw0KICAgIH0NCn0NCmZ1bmN0aW9uIHJlYWR5Rm9yQ29uZmlndXJhdGlvbih3aXphcmQpIHsNCiAgICB2YXIgc2VydmVyID0gbmV3IFNlcnZlcigiZ2V0U2VydmVyQ29uZmlnIik7DQogICAgc2VydmVyLnJlcXVlc3QobmV3IE9iamVjdCgpKTsNCiAgICBzaG93RWxlbWVudCgibG9hZGluZyIsIGZhbHNlKTsNCiAgICBjb25maWd1cmF0aW9uV2l6YXJkW3dpemFyZF0uY3JlYXRlV2l6YXJkKCk7DQp9DQpmdW5jdGlvbiBzYXZlV2l6YXJkKCkgew0KICAgIHZhciBjbWQgPSAic2F2ZVdpemFyZCI7DQogICAgdmFyIGRpdiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb250ZW50Iik7DQogICAgdmFyIGNvbmZpZyA9IGRpdi5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCJ3aXphcmQiKTsNCiAgICB2YXIgd2l6YXJkID0gbmV3IE9iamVjdCgpOw0KICAgIGZvciAodmFyIGkgPSAwOyBpIDwgY29uZmlnLmxlbmd0aDsgaSsrKSB7DQogICAgICAgIHZhciBuYW1lOw0KICAgICAgICB2YXIgdmFsdWU7DQogICAgICAgIHN3aXRjaCAoY29uZmlnW2ldLnRhZ05hbWUpIHsNCiAgICAgICAgICAgIGNhc2UgIlNFTEVDVCI6DQogICAgICAgICAgICAgICAgbmFtZSA9IGNvbmZpZ1tpXS5uYW1lOw0KICAgICAgICAgICAgICAgIHZhbHVlID0gY29uZmlnW2ldLnZhbHVlOw0KICAgICAgICAgICAgICAgIC8vIElmIHRoZSB2YWx1ZSBpcyBhIG51bWJlciwgc3RvcmUgaXQgYXMgYSBudW1iZXINCiAgICAgICAgICAgICAgICBpZiAoaXNOYU4odmFsdWUpKSB7DQogICAgICAgICAgICAgICAgICAgIHdpemFyZFtuYW1lXSA9IHZhbHVlOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICAgICAgd2l6YXJkW25hbWVdID0gcGFyc2VJbnQodmFsdWUpOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgIklOUFVUIjoNCiAgICAgICAgICAgICAgICBzd2l0Y2ggKGNvbmZpZ1tpXS50eXBlKSB7DQogICAgICAgICAgICAgICAgICAgIGNhc2UgInRleHQiOg0KICAgICAgICAgICAgICAgICAgICAgICAgbmFtZSA9IGNvbmZpZ1tpXS5uYW1lOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSBjb25maWdbaV0udmFsdWU7DQogICAgICAgICAgICAgICAgICAgICAgICBpZiAodmFsdWUubGVuZ3RoID09IDApIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgbXNnID0gbmFtZS50b1VwcGVyQ2FzZSgpICsgIjogIiArICJ7ey5hbGVydC5taXNzaW5nSW5wdXR9fSI7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgYWxlcnQobXNnKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICB3aXphcmRbbmFtZV0gPSB2YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICAgICAgLy8gY29kZS4uLg0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICB9DQogICAgfQ0KICAgIHZhciBkYXRhID0gbmV3IE9iamVjdCgpOw0KICAgIGRhdGFbIndpemFyZCJdID0gd2l6YXJkOw0KICAgIHZhciBzZXJ2ZXIgPSBuZXcgU2VydmVyKGNtZCk7DQogICAgc2VydmVyLnJlcXVlc3QoZGF0YSk7DQp9DQovLyBXaXphcmQNCnZhciBjb25maWd1cmF0aW9uV2l6YXJkID0gbmV3IEFycmF5KCk7DQpjb25maWd1cmF0aW9uV2l6YXJkLnB1c2gobmV3IFdpemFyZEl0ZW0oInR1bmVyIiwgInt7LndpemFyZC50dW5lci50aXRsZX19IikpOw0KY29uZmlndXJhdGlvbldpemFyZC5wdXNoKG5ldyBXaXphcmRJdGVtKCJlcGdTb3VyY2UiLCAie3sud2l6YXJkLmVwZ1NvdXJjZS50aXRsZX19IikpOw0KY29uZmlndXJhdGlvbldpemFyZC5wdXNoKG5ldyBXaXphcmRJdGVtKCJtM3UiLCAie3sud2l6YXJkLm0zdS50aXRsZX19IikpOw0KY29uZmlndXJhdGlvbldpemFyZC5wdXNoKG5ldyBXaXphcmRJdGVtKCJ4bWx0diIsICJ7ey53aXphcmQueG1sdHYudGl0bGV9fSIpKTsNCg==" webUI["html/js/logs_ts.js"] = "Y2xhc3MgTG9nIHsNCiAgICBjcmVhdGVMb2coZW50cnkpIHsNCiAgICAgICAgdmFyIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJQUkUiKTsNCiAgICAgICAgZW50cnkgPSBTdHJpbmcoZW50cnkpOw0KICAgICAgICBpZiAoZW50cnkuaW5kZXhPZigiV0FSTklORyIpICE9IC0xKSB7DQogICAgICAgICAgICBlbGVtZW50LmNsYXNzTmFtZSA9ICJ3YXJuaW5nTXNnIjsNCiAgICAgICAgfQ0KICAgICAgICBpZiAoZW50cnkuaW5kZXhPZigiRVJST1IiKSAhPSAtMSkgew0KICAgICAgICAgICAgZWxlbWVudC5jbGFzc05hbWUgPSAiZXJyb3JNc2ciOw0KICAgICAgICB9DQogICAgICAgIGlmIChlbnRyeS5pbmRleE9mKCJERUJVRyIpICE9IC0xKSB7DQogICAgICAgICAgICBlbGVtZW50LmNsYXNzTmFtZSA9ICJkZWJ1Z01zZyI7DQogICAgICAgIH0NCiAgICAgICAgZWxlbWVudC5pbm5lckhUTUwgPSBlbnRyeTsNCiAgICAgICAgcmV0dXJuIGVsZW1lbnQ7DQogICAgfQ0KfQ0KZnVuY3Rpb24gc2hvd0xvZ3MoYm90dG9tKSB7DQogICAgdmFyIGxvZyA9IG5ldyBMb2coKTsNCiAgICB2YXIgbG9ncyA9IFNFUlZFUlsibG9nIl1bImxvZyJdOw0KICAgIHZhciBkaXYgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29udGVudF9sb2ciKTsNCiAgICBkaXYuaW5uZXJIVE1MID0gIiI7DQogICAgdmFyIGtleXMgPSBnZXRPd25PYmpQcm9wcyhsb2dzKTsNCiAgICBrZXlzLmZvckVhY2gobG9nSUQgPT4gew0KICAgICAgICB2YXIgZW50cnkgPSBsb2cuY3JlYXRlTG9nKGxvZ3NbbG9nSURdKTsNCiAgICAgICAgZGl2LmFwcGVuZChlbnRyeSk7DQogICAgfSk7DQogICAgc2V0VGltZW91dChmdW5jdGlvbiAoKSB7DQogICAgICAgIGlmIChib3R0b20gPT0gdHJ1ZSkgew0KICAgICAgICAgICAgdmFyIHdyYXBwZXIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYm94LXdyYXBwZXIiKTsNCiAgICAgICAgICAgIHdyYXBwZXIuc2Nyb2xsVG9wID0gd3JhcHBlci5zY3JvbGxIZWlnaHQ7DQogICAgICAgIH0NCiAgICB9LCAxMCk7DQp9DQpmdW5jdGlvbiByZXNldExvZ3MoKSB7DQogICAgdmFyIGNtZCA9ICJyZXNldExvZ3MiOw0KICAgIHZhciBkYXRhID0gbmV3IE9iamVjdCgpOw0KICAgIHZhciBzZXJ2ZXIgPSBuZXcgU2VydmVyKGNtZCk7DQogICAgc2VydmVyLnJlcXVlc3QoZGF0YSk7DQp9DQo=" webUI["html/js/menu_ts.js"] = "Y2xhc3MgTWFpbk1lbnUgew0KICAgIGNvbnN0cnVjdG9yKCkgew0KICAgICAgICB0aGlzLkRvY3VtZW50SUQgPSAibWFpbi1tZW51IjsNCiAgICAgICAgdGhpcy5IVE1MVGFnID0gIkxJIjsNCiAgICAgICAgdGhpcy5JbWFnZVBhdGggPSAiaW1nLyI7DQogICAgfQ0KICAgIGNyZWF0ZUlNRyhzcmMpIHsNCiAgICAgICAgbGV0IGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJJTUciKTsNCiAgICAgICAgZWxlbWVudC5zZXRBdHRyaWJ1dGUoInNyYyIsIHRoaXMuSW1hZ2VQYXRoICsgc3JjKTsNCiAgICAgICAgcmV0dXJuIGVsZW1lbnQ7DQogICAgfQ0KICAgIGNyZWF0ZVZhbHVlKHZhbHVlKSB7DQogICAgICAgIGxldCBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiUCIpOw0KICAgICAgICBlbGVtZW50LmlubmVySFRNTCA9IHZhbHVlOw0KICAgICAgICByZXR1cm4gZWxlbWVudDsNCiAgICB9DQp9DQpjbGFzcyBNYWluTWVudUl0ZW0gZXh0ZW5kcyBNYWluTWVudSB7DQogICAgY29uc3RydWN0b3IobWVudUtleSwgdmFsdWUsIGltYWdlLCBoZWFkbGluZSkgew0KICAgICAgICBzdXBlcigpOw0KICAgICAgICB0aGlzLm1lbnVLZXkgPSBtZW51S2V5Ow0KICAgICAgICB0aGlzLnZhbHVlID0gdmFsdWU7DQogICAgICAgIHRoaXMuaW1nU3JjID0gaW1hZ2U7DQogICAgICAgIHRoaXMuaGVhZGxpbmUgPSBoZWFkbGluZTsNCiAgICB9DQogICAgY3JlYXRlSXRlbSgpIHsNCiAgICAgICAgbGV0IGl0ZW0gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJMSSIpOw0KICAgICAgICBpdGVtLnNldEF0dHJpYnV0ZSgib25jbGljayIsICJqYXZhc2NyaXB0OiBvcGVuVGhpc01lbnUodGhpcykiKTsNCiAgICAgICAgaXRlbS5zZXRBdHRyaWJ1dGUoImlkIiwgdGhpcy5pZCk7DQogICAgICAgIGxldCBpbWcgPSB0aGlzLmNyZWF0ZUlNRyh0aGlzLmltZ1NyYyk7DQogICAgICAgIGxldCB2YWx1ZSA9IHRoaXMuY3JlYXRlVmFsdWUodGhpcy52YWx1ZSk7DQogICAgICAgIGl0ZW0uYXBwZW5kQ2hpbGQoaW1nKTsNCiAgICAgICAgaXRlbS5hcHBlbmRDaGlsZCh2YWx1ZSk7DQogICAgICAgIGxldCBkb2MgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCh0aGlzLkRvY3VtZW50SUQpOw0KICAgICAgICBkb2MuYXBwZW5kQ2hpbGQoaXRlbSk7DQogICAgICAgIHN3aXRjaCAodGhpcy5tZW51S2V5KSB7DQogICAgICAgICAgICBjYXNlICJwbGF5bGlzdCI6DQogICAgICAgICAgICAgICAgdGhpcy50YWJsZUhlYWRlciA9IFsie3sucGxheWxpc3QudGFibGUucGxheWxpc3R9fSIsICJ7ey5wbGF5bGlzdC50YWJsZS50dW5lcn19IiwgInt7LnBsYXlsaXN0LnRhYmxlLmxhc3RVcGRhdGV9fSIsICJ7ey5wbGF5bGlzdC50YWJsZS5hdmFpbGFiaWxpdHl9fSAlIiwgInt7LnBsYXlsaXN0LnRhYmxlLnR5cGV9fSIsICJ7ey5wbGF5bGlzdC50YWJsZS5zdHJlYW1zfX0iLCAie3sucGxheWxpc3QudGFibGUuZ3JvdXBUaXRsZX19ICUiLCAie3sucGxheWxpc3QudGFibGUudHZnSUR9fSAlIiwgInt7LnBsYXlsaXN0LnRhYmxlLnVuaXF1ZUlEfX0gJSJdOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAieG1sdHYiOg0KICAgICAgICAgICAgICAgIHRoaXMudGFibGVIZWFkZXIgPSBbInt7LnhtbHR2LnRhYmxlLmd1aWRlfX0iLCAie3sueG1sdHYudGFibGUubGFzdFVwZGF0ZX19IiwgInt7LnhtbHR2LnRhYmxlLmF2YWlsYWJpbGl0eX19ICUiLCAie3sueG1sdHYudGFibGUuY2hhbm5lbHN9fSIsICJ7ey54bWx0di50YWJsZS5wcm9ncmFtc319Il07DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJmaWx0ZXIiOg0KICAgICAgICAgICAgICAgIHRoaXMudGFibGVIZWFkZXIgPSBbInt7LmZpbHRlci50YWJsZS5zdGFydGluZ0NoYW5uZWx9fSIsICJ7ey5maWx0ZXIudGFibGUubmFtZX19IiwgInt7LmZpbHRlci50YWJsZS50eXBlfX0iLCAie3suZmlsdGVyLnRhYmxlLmZpbHRlcn19Il07DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ1c2VycyI6DQogICAgICAgICAgICAgICAgdGhpcy50YWJsZUhlYWRlciA9IFsie3sudXNlcnMudGFibGUudXNlcm5hbWV9fSIsICJ7ey51c2Vycy50YWJsZS5wYXNzd29yZH19IiwgInt7LnVzZXJzLnRhYmxlLndlYn19IiwgInt7LnVzZXJzLnRhYmxlLnBtc319IiwgInt7LnVzZXJzLnRhYmxlLm0zdX19IiwgInt7LnVzZXJzLnRhYmxlLnhtbH19IiwgInt7LnVzZXJzLnRhYmxlLmFwaX19Il07DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJtYXBwaW5nIjoNCiAgICAgICAgICAgICAgICB0aGlzLnRhYmxlSGVhZGVyID0gWyJCVUxLIiwgInt7Lm1hcHBpbmcudGFibGUuY2hOb319IiwgInt7Lm1hcHBpbmcudGFibGUubG9nb319IiwgInt7Lm1hcHBpbmcudGFibGUuY2hhbm5lbE5hbWV9fSIsICJ7ey5tYXBwaW5nLnRhYmxlLnVwZGF0ZUNoYW5uZWxOYW1lUmVnZXh9fSIsICJ7ey5tYXBwaW5nLnRhYmxlLnBsYXlsaXN0fX0iLCAie3subWFwcGluZy50YWJsZS5ncm91cFRpdGxlfX0iLCAie3subWFwcGluZy50YWJsZS54bWx0dkZpbGV9fSIsICJ7ey5tYXBwaW5nLnRhYmxlLnhtbHR2SUR9fSIsICJ7ey5tYXBwaW5nLnRhYmxlLnRpbWVzaGlmdH19Il07DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIH0NCiAgICB9DQp9DQpjbGFzcyBDb250ZW50IHsNCiAgICBjb25zdHJ1Y3RvcigpIHsNCiAgICAgICAgdGhpcy5Eb2N1bWVudElEID0gImNvbnRlbnQiOw0KICAgICAgICB0aGlzLlRhYmxlSUQgPSAiY29udGVudF90YWJsZSI7DQogICAgICAgIHRoaXMuaGVhZGVyQ2xhc3MgPSAiY29udGVudF90YWJsZV9oZWFkZXIiOw0KICAgICAgICB0aGlzLmludGVyYWN0aW9uSUQgPSAiY29udGVudC1pbnRlcmFjdGlvbiI7DQogICAgfQ0KICAgIGNyZWF0ZUhlYWRsaW5lKHZhbHVlKSB7DQogICAgICAgIGxldCBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiSDMiKTsNCiAgICAgICAgZWxlbWVudC5pbm5lckhUTUwgPSB2YWx1ZTsNCiAgICAgICAgcmV0dXJuIGVsZW1lbnQ7DQogICAgfQ0KICAgIGNyZWF0ZUhSKCkgew0KICAgICAgICByZXR1cm4gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiSFIiKTsNCiAgICB9DQogICAgY3JlYXRlSW50ZXJhY3Rpb24oKSB7DQogICAgICAgIGxldCBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiRElWIik7DQogICAgICAgIGVsZW1lbnQuc2V0QXR0cmlidXRlKCJpZCIsIHRoaXMuaW50ZXJhY3Rpb25JRCk7DQogICAgICAgIHJldHVybiBlbGVtZW50Ow0KICAgIH0NCiAgICBjcmVhdGVESVYoKSB7DQogICAgICAgIGxldCBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiRElWIik7DQogICAgICAgIGVsZW1lbnQuaWQgPSB0aGlzLkRpdklEOw0KICAgICAgICByZXR1cm4gZWxlbWVudDsNCiAgICB9DQogICAgY3JlYXRlVEFCTEUoKSB7DQogICAgICAgIGxldCBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEFCTEUiKTsNCiAgICAgICAgZWxlbWVudC5pZCA9IHRoaXMuVGFibGVJRDsNCiAgICAgICAgcmV0dXJuIGVsZW1lbnQ7DQogICAgfQ0KICAgIGNyZWF0ZVRhYmxlUm93KCkgew0KICAgICAgICBsZXQgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlRSIik7DQogICAgICAgIGVsZW1lbnQuY2xhc3NOYW1lID0gdGhpcy5oZWFkZXJDbGFzczsNCiAgICAgICAgcmV0dXJuIGVsZW1lbnQ7DQogICAgfQ0KICAgIGNyZWF0ZVRhYmxlQ29udGVudChtZW51S2V5KSB7DQogICAgICAgIGxldCBkYXRhID0ge307DQogICAgICAgIGxldCByb3dzID0gW107DQogICAgICAgIGxldCBmaWxlVHlwZXMgPSBbXTsNCiAgICAgICAgc3dpdGNoIChtZW51S2V5KSB7DQogICAgICAgICAgICBjYXNlICJwbGF5bGlzdCI6DQogICAgICAgICAgICAgICAgZmlsZVR5cGVzID0gWyJtM3UiLCAiaGRociJdOw0KICAgICAgICAgICAgICAgIGZpbGVUeXBlcy5mb3JFYWNoKGZpbGVUeXBlID0+IHsNCiAgICAgICAgICAgICAgICAgICAgZGF0YSA9IFNFUlZFUlsic2V0dGluZ3MiXVsiZmlsZXMiXVtmaWxlVHlwZV07DQogICAgICAgICAgICAgICAgICAgIHZhciBrZXlzID0gZ2V0T3duT2JqUHJvcHMoZGF0YSk7DQogICAgICAgICAgICAgICAgICAgIGtleXMuZm9yRWFjaChrZXkgPT4gew0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVFIiKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmlkID0ga2V5Ow0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgiJyArIGZpbGVUeXBlICsgJyIsIHRoaXMpJyk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsibmFtZSJdOw0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChTRVJWRVJbInNldHRpbmdzIl1bImJ1ZmZlciJdICE9ICItIikgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bInR1bmVyIl07DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gIi0iOw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bImxhc3QudXBkYXRlIl07DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsicHJvdmlkZXIuYXZhaWxhYmlsaXR5Il07DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsidHlwZSJdLnRvVXBwZXJDYXNlKCk7DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsiY29tcGF0aWJpbGl0eSJdWyJzdHJlYW1zIl07DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsiY29tcGF0aWJpbGl0eSJdWyJncm91cC50aXRsZSJdOw0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bImNvbXBhdGliaWxpdHkiXVsidHZnLmlkIl07DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsiY29tcGF0aWJpbGl0eSJdWyJzdHJlYW0uaWQiXTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHJvd3MucHVzaCh0cik7DQogICAgICAgICAgICAgICAgICAgIH0pOw0KICAgICAgICAgICAgICAgIH0pOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiZmlsdGVyIjoNCiAgICAgICAgICAgICAgICBkZWxldGUgU0VSVkVSWyJzZXR0aW5ncyJdWyJmaWx0ZXIiXVstMV07DQogICAgICAgICAgICAgICAgZGF0YSA9IFNFUlZFUlsic2V0dGluZ3MiXVsiZmlsdGVyIl07DQogICAgICAgICAgICAgICAgdmFyIGtleXMgPSBnZXRPd25PYmpQcm9wcyhkYXRhKTsNCiAgICAgICAgICAgICAgICBrZXlzLmZvckVhY2goa2V5ID0+IHsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVFIiKTsNCiAgICAgICAgICAgICAgICAgICAgdHIuaWQgPSBrZXk7DQogICAgICAgICAgICAgICAgICAgIHRyLnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoIicgKyBkYXRhW2tleV1bInR5cGUiXSArICciLCB0aGlzKScpOw0KICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsic3RhcnRpbmdDaGFubmVsIl07DQogICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bIm5hbWUiXTsNCiAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgc3dpdGNoIChkYXRhW2tleV1bInR5cGUiXSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAiY3VzdG9tLWZpbHRlciI6DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9ICJ7ey5maWx0ZXIuY3VzdG9tfX0iOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAiZ3JvdXAtdGl0bGUiOg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSAie3suZmlsdGVyLmdyb3VwfX0iOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJmaWx0ZXIiXTsNCiAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICByb3dzLnB1c2godHIpOw0KICAgICAgICAgICAgICAgIH0pOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAieG1sdHYiOg0KICAgICAgICAgICAgICAgIGZpbGVUeXBlcyA9IG5ldyBBcnJheSgieG1sdHYiKTsNCiAgICAgICAgICAgICAgICBmaWxlVHlwZXMuZm9yRWFjaChmaWxlVHlwZSA9PiB7DQogICAgICAgICAgICAgICAgICAgIGRhdGEgPSBTRVJWRVJbInNldHRpbmdzIl1bImZpbGVzIl1bZmlsZVR5cGVdOw0KICAgICAgICAgICAgICAgICAgICB2YXIga2V5cyA9IGdldE93bk9ialByb3BzKGRhdGEpOw0KICAgICAgICAgICAgICAgICAgICBrZXlzLmZvckVhY2goa2V5ID0+IHsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciB0ciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlRSIik7DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5pZCA9IGtleTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoIicgKyBmaWxlVHlwZSArICciLCB0aGlzKScpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bIm5hbWUiXTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJsYXN0LnVwZGF0ZSJdOw0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bInByb3ZpZGVyLmF2YWlsYWJpbGl0eSJdOw0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bImNvbXBhdGliaWxpdHkiXVsieG1sdHYuY2hhbm5lbHMiXTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJjb21wYXRpYmlsaXR5Il1bInhtbHR2LnByb2dyYW1zIl07DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICByb3dzLnB1c2godHIpOw0KICAgICAgICAgICAgICAgICAgICB9KTsNCiAgICAgICAgICAgICAgICB9KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInVzZXJzIjoNCiAgICAgICAgICAgICAgICBmaWxlVHlwZXMgPSBuZXcgQXJyYXkoInVzZXJzIik7DQogICAgICAgICAgICAgICAgZmlsZVR5cGVzLmZvckVhY2goZmlsZVR5cGUgPT4gew0KICAgICAgICAgICAgICAgICAgICBkYXRhID0gU0VSVkVSW2ZpbGVUeXBlXTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGtleXMgPSBnZXRPd25PYmpQcm9wcyhkYXRhKTsNCiAgICAgICAgICAgICAgICAgICAga2V5cy5mb3JFYWNoKGtleSA9PiB7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgdHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJUUiIpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuaWQgPSBrZXk7DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCInICsgZmlsZVR5cGUgKyAnIiwgdGhpcyknKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJkYXRhIl1bInVzZXJuYW1lIl07DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9ICIqKioqKioiOw0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChkYXRhW2tleV1bImRhdGEiXVsiYXV0aGVudGljYXRpb24ud2ViIl0gPT0gdHJ1ZSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSAi4pyTIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSAiLSI7DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGRhdGFba2V5XVsiZGF0YSJdWyJhdXRoZW50aWNhdGlvbi5wbXMiXSA9PSB0cnVlKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9ICLinJMiOw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9ICItIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgICAgICBpZiAoZGF0YVtrZXldWyJkYXRhIl1bImF1dGhlbnRpY2F0aW9uLm0zdSJdID09IHRydWUpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gIuKckyI7DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gIi0iOw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChkYXRhW2tleV1bImRhdGEiXVsiYXV0aGVudGljYXRpb24ueG1sIl0gPT0gdHJ1ZSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSAi4pyTIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSAiLSI7DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGRhdGFba2V5XVsiZGF0YSJdWyJhdXRoZW50aWNhdGlvbi5hcGkiXSA9PSB0cnVlKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9ICLinJMiOw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9ICItIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHJvd3MucHVzaCh0cik7DQogICAgICAgICAgICAgICAgICAgIH0pOw0KICAgICAgICAgICAgICAgIH0pOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAibWFwcGluZyI6DQogICAgICAgICAgICAgICAgQlVMS19FRElUID0gZmFsc2U7DQogICAgICAgICAgICAgICAgY3JlYXRlU2VhcmNoT2JqKCk7DQogICAgICAgICAgICAgICAgY2hlY2tVbmRvKCJlcGdNYXBwaW5nIik7DQogICAgICAgICAgICAgICAgZGF0YSA9IFNFUlZFUlsieGVwZyJdWyJlcGdNYXBwaW5nIl07DQogICAgICAgICAgICAgICAgdmFyIGtleXMgPSBnZXRPd25PYmpQcm9wcyhkYXRhKTsNCiAgICAgICAgICAgICAgICBrZXlzLmZvckVhY2goa2V5ID0+IHsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVFIiKTsNCiAgICAgICAgICAgICAgICAgICAgdHIuaWQgPSBrZXk7DQogICAgICAgICAgICAgICAgICAgIHN3aXRjaCAoZGF0YVtrZXldWyJ4LWFjdGl2ZSJdKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBjYXNlIHRydWU6DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgdHIuY2xhc3NOYW1lID0gImFjdGl2ZUVQRyI7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgICAgICAgICBjYXNlIGZhbHNlOg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyLmNsYXNzTmFtZSA9ICJub3RBY3RpdmVFUEciOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIC8vIEJ1bGsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiQlVMSyI7DQogICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBmYWxzZTsNCiAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAvLyBDaGFubmVsIG51bWJlcg0KICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJJTlBVVENIQU5ORUwiOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJ4LWNoYW5uZWxJRCJdOw0KICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgIC8vIExvZ28NCiAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiSU1HIjsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5pbWFnZVVSTCA9IGRhdGFba2V5XVsidHZnLWxvZ28iXTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHRkID0gY2VsbC5jcmVhdGVDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgIHRkLnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoIm1hcHBpbmciLCB0aGlzKScpOw0KICAgICAgICAgICAgICAgICAgICB0ZC5pZCA9IGtleTsNCiAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQodGQpOw0KICAgICAgICAgICAgICAgICAgICAvLyBDaGFubmVsIG5hbWUNCiAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2xhc3NOYW1lID0gZGF0YVtrZXldWyJ4LWNhdGVnb3J5Il07DQogICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bIngtbmFtZSJdOw0KICAgICAgICAgICAgICAgICAgICB2YXIgdGQgPSBjZWxsLmNyZWF0ZUNlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgdGQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgibWFwcGluZyIsIHRoaXMpJyk7DQogICAgICAgICAgICAgICAgICAgIHRkLmlkID0ga2V5Ow0KICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZCh0ZCk7DQogICAgICAgICAgICAgICAgICAgIC8vIFVwZGF0ZSBjaGFubmVsIG5hbWUgcmVnZXgNCiAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bInVwZGF0ZS1jaGFubmVsLW5hbWUtcmVnZXgiXTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHRkID0gY2VsbC5jcmVhdGVDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgIHRkLnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoIm1hcHBpbmciLCB0aGlzKScpOw0KICAgICAgICAgICAgICAgICAgICB0ZC5pZCA9IGtleTsNCiAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQodGQpOw0KICAgICAgICAgICAgICAgICAgICAvLyBQbGF5bGlzdA0KICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGdldFZhbHVlRnJvbVByb3ZpZGVyRmlsZShkYXRhW2tleV1bIl9maWxlLm0zdS5pZCJdLCAibTN1IiwgIm5hbWUiKTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHRkID0gY2VsbC5jcmVhdGVDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgIHRkLnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoIm1hcHBpbmciLCB0aGlzKScpOw0KICAgICAgICAgICAgICAgICAgICB0ZC5pZCA9IGtleTsNCiAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQodGQpOw0KICAgICAgICAgICAgICAgICAgICAvLyBHcm91cCAoZ3JvdXAtdGl0bGUpDQogICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJ4LWdyb3VwLXRpdGxlIl07DQogICAgICAgICAgICAgICAgICAgIHZhciB0ZCA9IGNlbGwuY3JlYXRlQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICB0ZC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJtYXBwaW5nIiwgdGhpcyknKTsNCiAgICAgICAgICAgICAgICAgICAgdGQuaWQgPSBrZXk7DQogICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKHRkKTsNCiAgICAgICAgICAgICAgICAgICAgLy8gWE1MVFYgZmlsZQ0KICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgaWYgKGRhdGFba2V5XVsieC14bWx0di1maWxlIl0gIT0gIi0iKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZ2V0VmFsdWVGcm9tUHJvdmlkZXJGaWxlKGRhdGFba2V5XVsieC14bWx0di1maWxlIl0sICJ4bWx0diIsICJuYW1lIik7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgZWxzZSB7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJ4LXhtbHR2LWZpbGUiXTsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICB2YXIgdGQgPSBjZWxsLmNyZWF0ZUNlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgdGQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgibWFwcGluZyIsIHRoaXMpJyk7DQogICAgICAgICAgICAgICAgICAgIHRkLmlkID0ga2V5Ow0KICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZCh0ZCk7DQogICAgICAgICAgICAgICAgICAgIC8vIFhNTFRWIENoYW5uZWwNCiAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgIHZhciB2YWx1ZSA9IGRhdGFba2V5XVsieC1tYXBwaW5nIl07DQogICAgICAgICAgICAgICAgICAgIGlmICh2YWx1ZS5sZW5ndGggPiAyMCkgew0KICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSBkYXRhW2tleV1bIngtbWFwcGluZyJdLnN1YnN0cmluZygwLCAyMCkgKyAiLi4uIjsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gdmFsdWU7DQogICAgICAgICAgICAgICAgICAgIHZhciB0ZCA9IGNlbGwuY3JlYXRlQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICB0ZC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJtYXBwaW5nIiwgdGhpcyknKTsNCiAgICAgICAgICAgICAgICAgICAgdGQuaWQgPSBrZXk7DQogICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKHRkKTsNCiAgICAgICAgICAgICAgICAgICAgLy8gVGltZVNoaWZ0DQogICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJ4LXRpbWVzaGlmdCJdOw0KICAgICAgICAgICAgICAgICAgICB2YXIgdGQgPSBjZWxsLmNyZWF0ZUNlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgdGQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgibWFwcGluZyIsIHRoaXMpJyk7DQogICAgICAgICAgICAgICAgICAgIHRkLmlkID0ga2V5Ow0KICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZCh0ZCk7DQogICAgICAgICAgICAgICAgICAgIHJvd3MucHVzaCh0cik7DQogICAgICAgICAgICAgICAgfSk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJzZXR0aW5ncyI6DQogICAgICAgICAgICAgICAgYWxlcnQoKTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIH0NCiAgICAgICAgcmV0dXJuIHJvd3M7DQogICAgfQ0KfQ0KY2xhc3MgQ2VsbCB7DQogICAgY3JlYXRlQ2VsbCgpIHsNCiAgICAgICAgbGV0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgaWYgKHRoaXMuY2hpbGQgPT0gdHJ1ZSkgew0KICAgICAgICAgICAgdmFyIGVsZW1lbnQ7DQogICAgICAgICAgICBzd2l0Y2ggKHRoaXMuY2hpbGRUeXBlKSB7DQogICAgICAgICAgICAgICAgY2FzZSAiUCI6DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KHRoaXMuY2hpbGRUeXBlKTsNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC5pbm5lckhUTUwgPSB0aGlzLnZhbHVlOw0KICAgICAgICAgICAgICAgICAgICBlbGVtZW50LmNsYXNzTmFtZSA9IHRoaXMuY2xhc3NOYW1lOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBjYXNlICJJTlBVVCI6DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KHRoaXMuY2hpbGRUeXBlKTsNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC52YWx1ZSA9IHRoaXMudmFsdWU7DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQudHlwZSA9ICJ0ZXh0IjsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAiSU5QVVRDSEFOTkVMIjoNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIklOUFVUIik7DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZzY3JpcHQ6IGNoYW5nZUNoYW5uZWxOdW1iZXIodGhpcykiKTsNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC52YWx1ZSA9IHRoaXMudmFsdWU7DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQudHlwZSA9ICJ0ZXh0IjsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAiQlVMSyI6DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJJTlBVVCIpOw0KICAgICAgICAgICAgICAgICAgICBlbGVtZW50LmNoZWNrZWQgPSB0aGlzLnZhbHVlOw0KICAgICAgICAgICAgICAgICAgICBlbGVtZW50LnR5cGUgPSAiY2hlY2tib3giOw0KICAgICAgICAgICAgICAgICAgICBlbGVtZW50LmNsYXNzTmFtZSA9ICJidWxrIGhpZGVCdWxrIjsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAiQlVMS19IRUFEIjoNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIklOUFVUIik7DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQuY2hlY2tlZCA9IHRoaXMudmFsdWU7DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQudHlwZSA9ICJjaGVja2JveCI7DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQuY2xhc3NOYW1lID0gImJ1bGsgaGlkZUJ1bGsiOw0KICAgICAgICAgICAgICAgICAgICBlbGVtZW50LnNldEF0dHJpYnV0ZSgib25jbGljayIsICJqYXZhc2NyaXB0OiBzZWxlY3RBbGxDaGFubmVscygpIik7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgIklNRyI6DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KHRoaXMuY2hpbGRUeXBlKTsNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC5zZXRBdHRyaWJ1dGUoInNyYyIsIHRoaXMuaW1hZ2VVUkwpOw0KICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5pbWFnZVVSTCAhPSAiIikgew0KICAgICAgICAgICAgICAgICAgICAgICAgZWxlbWVudC5zZXRBdHRyaWJ1dGUoIm9uZXJyb3IiLCAiamF2YXNjcmlwdDogdGhpcy5vbmVycm9yPW51bGw7dGhpcy5zcmM9JyciKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIC8vb25lcnJvcj0idGhpcy5vbmVycm9yPW51bGw7dGhpcy5zcmM9J21pc3NpbmcuZ2lmJzsiDQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIHRkLmFwcGVuZENoaWxkKGVsZW1lbnQpOw0KICAgICAgICB9DQogICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgdGQuaW5uZXJIVE1MID0gdGhpcy52YWx1ZTsNCiAgICAgICAgfQ0KICAgICAgICBpZiAodGhpcy5vbmNsaWNrID09IHRydWUpIHsNCiAgICAgICAgICAgIHRkLnNldEF0dHJpYnV0ZSgib25jbGljayIsIHRoaXMub25jbGlja0Z1bmN0aW9uKTsNCiAgICAgICAgICAgIHRkLmNsYXNzTmFtZSA9ICJwb2ludGVyIjsNCiAgICAgICAgfQ0KICAgICAgICBpZiAodGhpcy50ZENsYXNzTmFtZSAhPSB1bmRlZmluZWQpIHsNCiAgICAgICAgICAgIHRkLmNsYXNzTmFtZSA9IHRoaXMudGRDbGFzc05hbWU7DQogICAgICAgIH0NCiAgICAgICAgcmV0dXJuIHRkOw0KICAgIH0NCn0NCmNsYXNzIFNob3dDb250ZW50IGV4dGVuZHMgQ29udGVudCB7DQogICAgY29uc3RydWN0b3IobWVudUlEKSB7DQogICAgICAgIHN1cGVyKCk7DQogICAgICAgIHRoaXMubWVudUlEID0gbWVudUlEOw0KICAgIH0NCiAgICBjcmVhdGVJbnB1dCh0eXBlLCBuYW1lLCB2YWx1ZSkgew0KICAgICAgICBsZXQgaW5wdXQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJJTlBVVCIpOw0KICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInR5cGUiLCB0eXBlKTsNCiAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJuYW1lIiwgbmFtZSk7DQogICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgidmFsdWUiLCB2YWx1ZSk7DQogICAgICAgIHJldHVybiBpbnB1dDsNCiAgICB9DQogICAgc2hvdygpIHsNCiAgICAgICAgQ09MVU1OX1RPX1NPUlQgPSAtMTsNCiAgICAgICAgLy8gRGVsZXRlIG9sZCBjb250ZW50DQogICAgICAgIGxldCBkb2MgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCh0aGlzLkRvY3VtZW50SUQpOw0KICAgICAgICBkb2MuaW5uZXJIVE1MID0gIiI7DQogICAgICAgIHNob3dQcmV2aWV3KGZhbHNlKTsNCiAgICAgICAgLy8gSGVhZGxpbmUNCiAgICAgICAgbGV0IGhlYWRsaW5lID0gbWVudUl0ZW1zW3RoaXMubWVudUlEXS5oZWFkbGluZTsNCiAgICAgICAgbGV0IG1lbnVLZXkgPSBtZW51SXRlbXNbdGhpcy5tZW51SURdLm1lbnVLZXk7DQogICAgICAgIGxldCBoID0gdGhpcy5jcmVhdGVIZWFkbGluZShoZWFkbGluZSk7DQogICAgICAgIGRvYy5hcHBlbmRDaGlsZChoKTsNCiAgICAgICAgbGV0IGhyID0gdGhpcy5jcmVhdGVIUigpOw0KICAgICAgICBkb2MuYXBwZW5kQ2hpbGQoaHIpOw0KICAgICAgICAvLyBJbnRlcmFjdGlvbg0KICAgICAgICBsZXQgZGl2ID0gdGhpcy5jcmVhdGVJbnRlcmFjdGlvbigpOw0KICAgICAgICBkb2MuYXBwZW5kQ2hpbGQoZGl2KTsNCiAgICAgICAgbGV0IGludGVyYWN0aW9uID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQodGhpcy5pbnRlcmFjdGlvbklEKTsNCiAgICAgICAgc3dpdGNoIChtZW51S2V5KSB7DQogICAgICAgICAgICBjYXNlICJwbGF5bGlzdCI6DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gdGhpcy5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgbWVudUtleSwgInt7LmJ1dHRvbi5uZXd9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgiaWQiLCAiLSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoInBsYXlsaXN0IiknKTsNCiAgICAgICAgICAgICAgICBpbnRlcmFjdGlvbi5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJmaWx0ZXIiOg0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IHRoaXMuY3JlYXRlSW5wdXQoImJ1dHRvbiIsIG1lbnVLZXksICJ7ey5idXR0b24ubmV3fX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoImlkIiwgLTEpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoImZpbHRlciIsIHRoaXMpJyk7DQogICAgICAgICAgICAgICAgaW50ZXJhY3Rpb24uYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAieG1sdHYiOg0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IHRoaXMuY3JlYXRlSW5wdXQoImJ1dHRvbiIsIG1lbnVLZXksICJ7ey5idXR0b24ubmV3fX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoImlkIiwgInhtbHR2Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgieG1sdHYiKScpOw0KICAgICAgICAgICAgICAgIGludGVyYWN0aW9uLmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInVzZXJzIjoNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSB0aGlzLmNyZWF0ZUlucHV0KCJidXR0b24iLCBtZW51S2V5LCAie3suYnV0dG9uLm5ld319Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJpZCIsICJ1c2VycyIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoInVzZXJzIiknKTsNCiAgICAgICAgICAgICAgICBpbnRlcmFjdGlvbi5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJtYXBwaW5nIjoNCiAgICAgICAgICAgICAgICBzaG93RWxlbWVudCgibG9hZGluZyIsIHRydWUpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IHRoaXMuY3JlYXRlSW5wdXQoImJ1dHRvbiIsIG1lbnVLZXksICJ7ey5idXR0b24uc2F2ZX19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoIm1hcHBpbmciLCAiIiwgIiIpJyk7DQogICAgICAgICAgICAgICAgaW50ZXJhY3Rpb24uYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IHRoaXMuY3JlYXRlSW5wdXQoImJ1dHRvbiIsIG1lbnVLZXksICJ7ey5idXR0b24uYnVsa0VkaXR9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBidWxrRWRpdCgpJyk7DQogICAgICAgICAgICAgICAgaW50ZXJhY3Rpb24uYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IHRoaXMuY3JlYXRlSW5wdXQoInNlYXJjaCIsICJzZWFyY2giLCAiIik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJpZCIsICJzZWFyY2hNYXBwaW5nIik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5idXR0b24uc2VhcmNofX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5jbGFzc05hbWUgPSAic2VhcmNoIjsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgJ2phdmFzY3JpcHQ6IHNlYXJjaEluTWFwcGluZygpJyk7DQogICAgICAgICAgICAgICAgaW50ZXJhY3Rpb24uYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAic2V0dGluZ3MiOg0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IHRoaXMuY3JlYXRlSW5wdXQoImJ1dHRvbiIsIG1lbnVLZXksICJ7ey5idXR0b24uc2F2ZX19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IHNhdmVTZXR0aW5ncygpOycpOw0KICAgICAgICAgICAgICAgIGludGVyYWN0aW9uLmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSB0aGlzLmNyZWF0ZUlucHV0KCJidXR0b24iLCBtZW51S2V5LCAie3suYnV0dG9uLmJhY2t1cH19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IGJhY2t1cCgpOycpOw0KICAgICAgICAgICAgICAgIGludGVyYWN0aW9uLmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSB0aGlzLmNyZWF0ZUlucHV0KCJidXR0b24iLCBtZW51S2V5LCAie3suYnV0dG9uLnJlc3RvcmV9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiByZXN0b3JlKCk7Jyk7DQogICAgICAgICAgICAgICAgaW50ZXJhY3Rpb24uYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIHZhciB3cmFwcGVyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiRElWIik7DQogICAgICAgICAgICAgICAgd3JhcHBlci5zZXRBdHRyaWJ1dGUoImlkIiwgImJveC13cmFwcGVyIik7DQogICAgICAgICAgICAgICAgZG9jLmFwcGVuZENoaWxkKHdyYXBwZXIpOw0KICAgICAgICAgICAgICAgIHRoaXMuRGl2SUQgPSAiY29udGVudF9zZXR0aW5ncyI7DQogICAgICAgICAgICAgICAgdmFyIHNldHRpbmdzID0gdGhpcy5jcmVhdGVESVYoKTsNCiAgICAgICAgICAgICAgICB3cmFwcGVyLmFwcGVuZENoaWxkKHNldHRpbmdzKTsNCiAgICAgICAgICAgICAgICBzaG93U2V0dGluZ3MoKTsNCiAgICAgICAgICAgICAgICByZXR1cm47DQogICAgICAgICAgICBjYXNlICJsb2ciOg0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IHRoaXMuY3JlYXRlSW5wdXQoImJ1dHRvbiIsIG1lbnVLZXksICJ7ey5idXR0b24ucmVzZXRMb2dzfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogcmVzZXRMb2dzKCk7Jyk7DQogICAgICAgICAgICAgICAgaW50ZXJhY3Rpb24uYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIHZhciB3cmFwcGVyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiRElWIik7DQogICAgICAgICAgICAgICAgd3JhcHBlci5zZXRBdHRyaWJ1dGUoImlkIiwgImJveC13cmFwcGVyIik7DQogICAgICAgICAgICAgICAgZG9jLmFwcGVuZENoaWxkKHdyYXBwZXIpOw0KICAgICAgICAgICAgICAgIHRoaXMuRGl2SUQgPSAiY29udGVudF9sb2ciOw0KICAgICAgICAgICAgICAgIHZhciBsb2dzID0gdGhpcy5jcmVhdGVESVYoKTsNCiAgICAgICAgICAgICAgICB3cmFwcGVyLmFwcGVuZENoaWxkKGxvZ3MpOw0KICAgICAgICAgICAgICAgIHNob3dMb2dzKHRydWUpOw0KICAgICAgICAgICAgICAgIHJldHVybjsNCiAgICAgICAgICAgIGNhc2UgImxvZ291dCI6DQogICAgICAgICAgICAgICAgbG9jYXRpb24ucmVsb2FkKCk7DQogICAgICAgICAgICAgICAgZG9jdW1lbnQuY29va2llID0gIlRva2VuPSA7IGV4cGlyZXMgPSBUaHUsIDAxIEphbiAxOTcwIDAwOjAwOjAwIEdNVCI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBkZWZhdWx0Og0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICB9DQogICAgICAgIC8vIENyZWF0ZSB0YWJsZSAoaWYgbmVlZGVkKQ0KICAgICAgICB2YXIgdGFibGVIZWFkZXIgPSBtZW51SXRlbXNbdGhpcy5tZW51SURdLnRhYmxlSGVhZGVyOw0KICAgICAgICBpZiAodGFibGVIZWFkZXIubGVuZ3RoID4gMCkgew0KICAgICAgICAgICAgdmFyIHdyYXBwZXIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJESVYiKTsNCiAgICAgICAgICAgIGRvYy5hcHBlbmRDaGlsZCh3cmFwcGVyKTsNCiAgICAgICAgICAgIHdyYXBwZXIuc2V0QXR0cmlidXRlKCJpZCIsICJib3gtd3JhcHBlciIpOw0KICAgICAgICAgICAgdmFyIHRhYmxlID0gdGhpcy5jcmVhdGVUQUJMRSgpOw0KICAgICAgICAgICAgd3JhcHBlci5hcHBlbmRDaGlsZCh0YWJsZSk7DQogICAgICAgICAgICB2YXIgaGVhZGVyID0gdGhpcy5jcmVhdGVUYWJsZVJvdygpOw0KICAgICAgICAgICAgdGFibGUuYXBwZW5kQ2hpbGQoaGVhZGVyKTsNCiAgICAgICAgICAgIC8vIFRhYmxlIGhlYWRlcg0KICAgICAgICAgICAgdGFibGVIZWFkZXIuZm9yRWFjaChlbGVtZW50ID0+IHsNCiAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGVsZW1lbnQ7DQogICAgICAgICAgICAgICAgaWYgKGVsZW1lbnQgPT0gIkJVTEsiKSB7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIkJVTEtfSEVBRCI7DQogICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBmYWxzZTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgaWYgKG1lbnVLZXkgPT0gIm1hcHBpbmciKSB7DQogICAgICAgICAgICAgICAgICAgIGlmIChlbGVtZW50ID09ICJ7ey5tYXBwaW5nLnRhYmxlLmNoTm99fSIpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwub25jbGljayA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLm9uY2xpY2tGdW5jdGlvbiA9ICJqYXZhc2NyaXB0OiBzb3J0VGFibGUoMSk7IjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudGRDbGFzc05hbWUgPSAic29ydFRoaXMiOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIGlmIChlbGVtZW50ID09ICJ7ey5tYXBwaW5nLnRhYmxlLmNoYW5uZWxOYW1lfX0iKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLm9uY2xpY2sgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5vbmNsaWNrRnVuY3Rpb24gPSAiamF2YXNjcmlwdDogc29ydFRhYmxlKDMpOyI7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgaWYgKGVsZW1lbnQgPT0gInt7Lm1hcHBpbmcudGFibGUudXBkYXRlQ2hhbm5lbE5hbWVSZWdleH19Iikgew0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5vbmNsaWNrID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwub25jbGlja0Z1bmN0aW9uID0gImphdmFzY3JpcHQ6IHNvcnRUYWJsZSg0KTsiOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIGlmIChlbGVtZW50ID09ICJ7ey5tYXBwaW5nLnRhYmxlLnBsYXlsaXN0fX0iKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLm9uY2xpY2sgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5vbmNsaWNrRnVuY3Rpb24gPSAiamF2YXNjcmlwdDogc29ydFRhYmxlKDUpOyI7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgaWYgKGVsZW1lbnQgPT0gInt7Lm1hcHBpbmcudGFibGUuZ3JvdXBUaXRsZX19Iikgew0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5vbmNsaWNrID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwub25jbGlja0Z1bmN0aW9uID0gImphdmFzY3JpcHQ6IHNvcnRUYWJsZSg2KTsiOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIGlmIChlbGVtZW50ID09ICJ7ey5tYXBwaW5nLnRhYmxlLnRpbWVzaGlmdH19Iikgew0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5vbmNsaWNrID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwub25jbGlja0Z1bmN0aW9uID0gImphdmFzY3JpcHQ6IHNvcnRUYWJsZSg5KTsiOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIGlmIChtZW51S2V5ID09ICJmaWx0ZXIiKSB7DQogICAgICAgICAgICAgICAgICAgIGlmIChlbGVtZW50ID09ICJ7ey5maWx0ZXIudGFibGUuc3RhcnRpbmdDaGFubmVsfX0iKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLm9uY2xpY2sgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5vbmNsaWNrRnVuY3Rpb24gPSAiamF2YXNjcmlwdDogc29ydFRhYmxlKDApOyI7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnRkQ2xhc3NOYW1lID0gInNvcnRUaGlzIjsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBpZiAoZWxlbWVudCA9PSAie3suZmlsdGVyLnRhYmxlLm5hbWV9fSIpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwub25jbGljayA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLm9uY2xpY2tGdW5jdGlvbiA9ICJqYXZhc2NyaXB0OiBzb3J0VGFibGUoMSk7IjsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBpZiAoZWxlbWVudCA9PSAie3suZmlsdGVyLnRhYmxlLnR5cGV9fSIpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwub25jbGljayA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLm9uY2xpY2tGdW5jdGlvbiA9ICJqYXZhc2NyaXB0OiBzb3J0VGFibGUoMik7IjsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBpZiAoZWxlbWVudCA9PSAie3suZmlsdGVyLnRhYmxlLmZpbHRlcn19Iikgew0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5vbmNsaWNrID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwub25jbGlja0Z1bmN0aW9uID0gImphdmFzY3JpcHQ6IHNvcnRUYWJsZSgzKTsiOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIGhlYWRlci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICB9KTsNCiAgICAgICAgICAgIHRhYmxlLmFwcGVuZENoaWxkKGhlYWRlcik7DQogICAgICAgICAgICAvLyBDb250ZW50IG9mIHRoZSB0YWJsZQ0KICAgICAgICAgICAgdmFyIHJvd3MgPSB0aGlzLmNyZWF0ZVRhYmxlQ29udGVudChtZW51S2V5KTsNCiAgICAgICAgICAgIHJvd3MuZm9yRWFjaCh0ciA9PiB7DQogICAgICAgICAgICAgICAgdGFibGUuYXBwZW5kQ2hpbGQodHIpOw0KICAgICAgICAgICAgfSk7DQogICAgICAgIH0NCiAgICAgICAgc3dpdGNoIChtZW51S2V5KSB7DQogICAgICAgICAgICBjYXNlICJtYXBwaW5nIjoNCiAgICAgICAgICAgICAgICBzb3J0VGFibGUoMSk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJmaWx0ZXIiOg0KICAgICAgICAgICAgICAgIHNob3dQcmV2aWV3KHRydWUpOw0KICAgICAgICAgICAgICAgIHNvcnRUYWJsZSgwKTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICAgICAgQ09MVU1OX1RPX1NPUlQgPSAtMTsNCiAgICAgICAgICAgICAgICBzb3J0VGFibGUoMCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIH0NCiAgICAgICAgc2hvd0VsZW1lbnQoImxvYWRpbmciLCBmYWxzZSk7DQogICAgfQ0KfQ0KZnVuY3Rpb24gUGFnZVJlYWR5KCkgew0KICAgIGxldCBzZXJ2ZXIgPSBuZXcgU2VydmVyKCJnZXRTZXJ2ZXJDb25maWciKTsNCiAgICBzZXJ2ZXIucmVxdWVzdCh7fSk7DQogICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoInJlc2l6ZSIsIGZ1bmN0aW9uICgpIHsNCiAgICAgICAgY2FsY3VsYXRlV3JhcHBlckhlaWdodCgpOw0KICAgIH0sIHRydWUpOw0KICAgIHNldEludGVydmFsKGZ1bmN0aW9uICgpIHsNCiAgICAgICAgdXBkYXRlTG9nKCk7DQogICAgfSwgMTAwMDApOw0KICAgIHJldHVybjsNCn0NCmZ1bmN0aW9uIGNyZWF0ZUxheW91dCgpIHsNCiAgICAvLyBDbGllbnQgSW5mbw0KICAgIGxldCBvYmogPSBTRVJWRVJbImNsaWVudEluZm8iXTsNCiAgICBsZXQga2V5cyA9IGdldE93bk9ialByb3BzKG9iaik7DQogICAgZm9yICh2YXIgaSA9IDA7IGkgPCBrZXlzLmxlbmd0aDsgaSsrKSB7DQogICAgICAgIGlmIChkb2N1bWVudC5nZXRFbGVtZW50QnlJZChrZXlzW2ldKSkgew0KICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoa2V5c1tpXSkuaW5uZXJIVE1MID0gb2JqW2tleXNbaV1dOw0KICAgICAgICB9DQogICAgfQ0KICAgIGlmICghZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm1haW4tbWVudSIpKSB7DQogICAgICAgIHJldHVybjsNCiAgICB9DQogICAgLy8gQ3JlYXRlIG1lbnUNCiAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibWFpbi1tZW51IikuaW5uZXJIVE1MID0gIiI7DQogICAgZm9yIChsZXQgaSA9IDA7IGkgPCBtZW51SXRlbXMubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgbWVudUl0ZW1zW2ldLmlkID0gaTsNCiAgICAgICAgc3dpdGNoIChtZW51SXRlbXNbaV1bIm1lbnVLZXkiXSkgew0KICAgICAgICAgICAgY2FzZSAidXNlcnMiOg0KICAgICAgICAgICAgY2FzZSAibG9nb3V0IjoNCiAgICAgICAgICAgICAgICBpZiAoU0VSVkVSWyJzZXR0aW5ncyJdWyJhdXRoZW50aWNhdGlvbi53ZWIiXSA9PSB0cnVlKSB7DQogICAgICAgICAgICAgICAgICAgIG1lbnVJdGVtc1tpXS5jcmVhdGVJdGVtKCk7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAibWFwcGluZyI6DQogICAgICAgICAgICBjYXNlICJ4bWx0diI6DQogICAgICAgICAgICAgICAgaWYgKFNFUlZFUlsiY2xpZW50SW5mbyJdWyJlcGdTb3VyY2UiXSA9PSAiWEVQRyIpIHsNCiAgICAgICAgICAgICAgICAgICAgbWVudUl0ZW1zW2ldLmNyZWF0ZUl0ZW0oKTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBkZWZhdWx0Og0KICAgICAgICAgICAgICAgIG1lbnVJdGVtc1tpXS5jcmVhdGVJdGVtKCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIH0NCiAgICB9DQogICAgcmV0dXJuOw0KfQ0KZnVuY3Rpb24gb3BlblRoaXNNZW51KGVsZW1lbnQpIHsNCiAgICBsZXQgaWQgPSBlbGVtZW50LmlkOw0KICAgIGxldCBjb250ZW50ID0gbmV3IFNob3dDb250ZW50KGlkKTsNCiAgICBjb250ZW50LnNob3coKTsNCiAgICBjYWxjdWxhdGVXcmFwcGVySGVpZ2h0KCk7DQogICAgcmV0dXJuOw0KfQ0KY2xhc3MgUG9wdXBXaW5kb3cgew0KICAgIGNvbnN0cnVjdG9yKCkgew0KICAgICAgICB0aGlzLkRvY3VtZW50SUQgPSAicG9wdXAtY3VzdG9tIjsNCiAgICAgICAgdGhpcy5JbnRlcmFjdGlvbklEID0gImludGVyYWN0aW9uIjsNCiAgICAgICAgdGhpcy5kb2MgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCh0aGlzLkRvY3VtZW50SUQpOw0KICAgIH0NCiAgICBjcmVhdGVUaXRsZSh0aXRsZSkgew0KICAgICAgICBsZXQgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICB0ZC5jbGFzc05hbWUgPSAibGVmdCI7DQogICAgICAgIHRkLmlubmVySFRNTCA9IHRpdGxlICsgIjoiOw0KICAgICAgICByZXR1cm4gdGQ7DQogICAgfQ0KICAgIGNyZWF0ZUNvbnRlbnQoZWxlbWVudCkgew0KICAgICAgICBsZXQgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICB0ZC5hcHBlbmRDaGlsZChlbGVtZW50KTsNCiAgICAgICAgcmV0dXJuIHRkOw0KICAgIH0NCiAgICBjcmVhdGVJbnRlcmFjdGlvbigpIHsNCiAgICAgICAgbGV0IGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOw0KICAgICAgICBkaXYuc2V0QXR0cmlidXRlKCJpZCIsICJwb3B1cC1pbnRlcmFjdGlvbiIpOw0KICAgICAgICBkaXYuY2xhc3NOYW1lID0gImludGVyYWN0aW9uIjsNCiAgICAgICAgdGhpcy5kb2MuYXBwZW5kQ2hpbGQoZGl2KTsNCiAgICB9DQp9DQpjbGFzcyBQb3B1cENvbnRlbnQgZXh0ZW5kcyBQb3B1cFdpbmRvdyB7DQogICAgY29uc3RydWN0b3IoKSB7DQogICAgICAgIHN1cGVyKC4uLmFyZ3VtZW50cyk7DQogICAgICAgIHRoaXMudGFibGUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJUQUJMRSIpOw0KICAgIH0NCiAgICBjcmVhdGVIZWFkbGluZShoZWFkbGluZSkgew0KICAgICAgICB0aGlzLmRvYy5pbm5lckhUTUwgPSAiIjsNCiAgICAgICAgdmFyIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJIMyIpOw0KICAgICAgICBlbGVtZW50LmlubmVySFRNTCA9IGhlYWRsaW5lLnRvVXBwZXJDYXNlKCk7DQogICAgICAgIHRoaXMuZG9jLmFwcGVuZENoaWxkKGVsZW1lbnQpOw0KICAgICAgICAvLyBDcmVhdGUgdGFibGUNCiAgICAgICAgdGhpcy50YWJsZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlRBQkxFIik7DQogICAgICAgIHRoaXMuZG9jLmFwcGVuZENoaWxkKHRoaXMudGFibGUpOw0KICAgIH0NCiAgICBhcHBlbmRSb3codGl0bGUsIGVsZW1lbnQpIHsNCiAgICAgICAgbGV0IHRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVFIiKTsNCiAgICAgICAgLy8gVGl0bGUNCiAgICAgICAgaWYgKHRpdGxlLmxlbmd0aCAhPSAwKSB7DQogICAgICAgICAgICB0ci5hcHBlbmRDaGlsZCh0aGlzLmNyZWF0ZVRpdGxlKHRpdGxlKSk7DQogICAgICAgIH0NCiAgICAgICAgLy8gQ29udGVudA0KICAgICAgICB0ci5hcHBlbmRDaGlsZCh0aGlzLmNyZWF0ZUNvbnRlbnQoZWxlbWVudCkpOw0KICAgICAgICB0aGlzLnRhYmxlLmFwcGVuZENoaWxkKHRyKTsNCiAgICB9DQogICAgY3JlYXRlSW5wdXQodHlwZSwgbmFtZSwgdmFsdWUpIHsNCiAgICAgICAgbGV0IGlucHV0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiSU5QVVQiKTsNCiAgICAgICAgaWYgKHZhbHVlID09IHVuZGVmaW5lZCkgew0KICAgICAgICAgICAgdmFsdWUgPSAiIjsNCiAgICAgICAgfQ0KICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInR5cGUiLCB0eXBlKTsNCiAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJuYW1lIiwgbmFtZSk7DQogICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgidmFsdWUiLCB2YWx1ZSk7DQogICAgICAgIHJldHVybiBpbnB1dDsNCiAgICB9DQogICAgY3JlYXRlQ2hlY2tib3gobmFtZSkgew0KICAgICAgICBsZXQgaW5wdXQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJJTlBVVCIpOw0KICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInR5cGUiLCAiY2hlY2tib3giKTsNCiAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJuYW1lIiwgbmFtZSk7DQogICAgICAgIHJldHVybiBpbnB1dDsNCiAgICB9DQogICAgLy8gQ3JlYXRlcyBhIHNlbGVjdGlvbiBvZiBtdWx0aXBsZSBvcHRpb25zIHZhbHVlcyB3aXRoIHRleHQgZGVzY3JpcHRpb25zDQogICAgY3JlYXRlU2VsZWN0KHRleHQsIHZhbHVlcywgc2V0LCBkYktleSkgew0KICAgICAgICBsZXQgc2VsZWN0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiU0VMRUNUIik7DQogICAgICAgIHNlbGVjdC5zZXRBdHRyaWJ1dGUoIm5hbWUiLCBkYktleSk7DQogICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGV4dC5sZW5ndGg7IGkrKykgew0KICAgICAgICAgICAgbGV0IG9wdGlvbiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIk9QVElPTiIpOw0KICAgICAgICAgICAgb3B0aW9uLnNldEF0dHJpYnV0ZSgidmFsdWUiLCB2YWx1ZXNbaV0pOw0KICAgICAgICAgICAgb3B0aW9uLmlubmVyVGV4dCA9IHRleHRbaV07DQogICAgICAgICAgICBzZWxlY3QuYXBwZW5kQ2hpbGQob3B0aW9uKTsNCiAgICAgICAgfQ0KICAgICAgICBpZiAoc2V0ICE9ICIiKSB7DQogICAgICAgICAgICBzZWxlY3QudmFsdWUgPSBzZXQ7DQogICAgICAgIH0NCiAgICAgICAgaWYgKHNldCA9PSB1bmRlZmluZWQpIHsNCiAgICAgICAgICAgIHNlbGVjdC52YWx1ZSA9IHZhbHVlc1swXTsNCiAgICAgICAgfQ0KICAgICAgICByZXR1cm4gc2VsZWN0Ow0KICAgIH0NCiAgICBzZWxlY3RPcHRpb24oc2VsZWN0LCB2YWx1ZSkgew0KICAgICAgICAvL3NlbGVjdC5zZWxlY3RlZE9wdGlvbnMgPSB2YWx1ZQ0KICAgICAgICBsZXQgcyA9IHNlbGVjdDsNCiAgICAgICAgcy5vcHRpb25zW3Muc2VsZWN0ZWRJbmRleF0udmFsdWUgPSB2YWx1ZTsNCiAgICAgICAgcmV0dXJuIHNlbGVjdDsNCiAgICB9DQogICAgZGVzY3JpcHRpb24odmFsdWUpIHsNCiAgICAgICAgbGV0IHRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVFIiKTsNCiAgICAgICAgbGV0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgbGV0IHNwYW4gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJQUkUiKTsNCiAgICAgICAgc3Bhbi5pbm5lckhUTUwgPSB2YWx1ZTsNCiAgICAgICAgdHIuYXBwZW5kQ2hpbGQodGQpOw0KICAgICAgICB0ci5hcHBlbmRDaGlsZCh0aGlzLmNyZWF0ZUNvbnRlbnQoc3BhbikpOw0KICAgICAgICB0aGlzLnRhYmxlLmFwcGVuZENoaWxkKHRyKTsNCiAgICB9DQogICAgLy8gSW50ZXJhY3Rpb24NCiAgICBhZGRJbnRlcmFjdGlvbihlbGVtZW50KSB7DQogICAgICAgIGxldCBpbnRlcmFjdGlvbiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJwb3B1cC1pbnRlcmFjdGlvbiIpOw0KICAgICAgICBpbnRlcmFjdGlvbi5hcHBlbmRDaGlsZChlbGVtZW50KTsNCiAgICB9DQp9DQpmdW5jdGlvbiBvcGVuUG9wVXAoZGF0YVR5cGUsIGVsZW1lbnQpIHsNCiAgICBsZXQgZGF0YSA9IHt9Ow0KICAgIGxldCBpZDsNCiAgICBzd2l0Y2ggKGVsZW1lbnQpIHsNCiAgICAgICAgY2FzZSB1bmRlZmluZWQ6DQogICAgICAgICAgICBzd2l0Y2ggKGRhdGFUeXBlKSB7DQogICAgICAgICAgICAgICAgY2FzZSAiZ3JvdXAtdGl0bGUiOg0KICAgICAgICAgICAgICAgICAgICBpZiAoaWQgPT0gdW5kZWZpbmVkKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBpZCA9IC0xOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIGRhdGEgPSBnZXRMb2NhbERhdGEoImZpbHRlciIsIGlkKTsNCiAgICAgICAgICAgICAgICAgICAgZGF0YVsidHlwZSJdID0gImdyb3VwLXRpdGxlIjsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAiY3VzdG9tLWZpbHRlciI6DQogICAgICAgICAgICAgICAgICAgIGlmIChpZCA9PSB1bmRlZmluZWQpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGlkID0gLTE7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgZGF0YSA9IGdldExvY2FsRGF0YSgiZmlsdGVyIiwgaWQpOw0KICAgICAgICAgICAgICAgICAgICBkYXRhWyJ0eXBlIl0gPSAiY3VzdG9tLWZpbHRlciI7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICAgICAgICAgIGRhdGFbImlkLnByb3ZpZGVyIl0gPSAiLSI7DQogICAgICAgICAgICAgICAgICAgIGRhdGFbInR5cGUiXSA9IGRhdGFUeXBlOw0KICAgICAgICAgICAgICAgICAgICBpZCA9ICItIjsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgIGlkID0gZWxlbWVudC5pZDsNCiAgICAgICAgICAgIGRhdGEgPSBnZXRMb2NhbERhdGEoZGF0YVR5cGUsIGlkKTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgIH0NCiAgICBsZXQgY29udGVudCA9IG5ldyBQb3B1cENvbnRlbnQoKTsNCiAgICBzd2l0Y2ggKGRhdGFUeXBlKSB7DQogICAgICAgIGNhc2UgInBsYXlsaXN0IjoNCiAgICAgICAgICAgIGNvbnRlbnQuY3JlYXRlSGVhZGxpbmUoInt7LnBsYXlsaXN0LnBsYXlsaXN0VHlwZS50aXRsZX19Iik7DQogICAgICAgICAgICAvLyBUeXBlDQogICAgICAgICAgICB2YXIgdGV4dCA9IFsiTTNVIiwgIkhESG9tZVJ1biJdOw0KICAgICAgICAgICAgdmFyIHZhbHVlcyA9IFsiamF2YXNjcmlwdDogb3BlblBvcFVwKCdtM3UnKSIsICJqYXZhc2NyaXB0OiBvcGVuUG9wVXAoJ2hkaHInKSJdOw0KICAgICAgICAgICAgdmFyIHNlbGVjdCA9IGNvbnRlbnQuY3JlYXRlU2VsZWN0KHRleHQsIHZhbHVlcywgIiIsICJ0eXBlIik7DQogICAgICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJpZCIsICJ0eXBlIik7DQogICAgICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICdqYXZhc2NyaXB0OiBjaGFuZ2VCdXR0b25BY3Rpb24odGhpcywgIm5leHQiLCAib25jbGljayIpJyk7IC8vIGNoYW5nZUJ1dHRvbkFjdGlvbg0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnBsYXlsaXN0LnR5cGUudGl0bGV9fSIsIHNlbGVjdCk7DQogICAgICAgICAgICAvLyBJbnRlcmFjdGlvbg0KICAgICAgICAgICAgY29udGVudC5jcmVhdGVJbnRlcmFjdGlvbigpOw0KICAgICAgICAgICAgLy8gQWJvcnQNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJjYW5jZWwiLCAie3suYnV0dG9uLmNhbmNlbH19Iik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogc2hvd0VsZW1lbnQoInBvcHVwIiwgZmFsc2UpOycpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICAvLyBOZXh0DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAibmV4dCIsICJ7ey5idXR0b24ubmV4dH19Iik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJtM3UiKScpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJpZCIsICduZXh0Jyk7DQogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJtM3UiOg0KICAgICAgICAgICAgY29udGVudC5jcmVhdGVIZWFkbGluZShkYXRhVHlwZSk7DQogICAgICAgICAgICAvLyBOYW1lDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAibmFtZSI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3sucGxheWxpc3QubmFtZS5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sucGxheWxpc3QubmFtZS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgLy8gRGVzY3JpcHRpb24NCiAgICAgICAgICAgIHZhciBkYktleSA9ICJkZXNjcmlwdGlvbiI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3sucGxheWxpc3QuZGVzY3JpcHRpb24ucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnBsYXlsaXN0LmRlc2NyaXB0aW9uLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBVUkwNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJmaWxlLnNvdXJjZSI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3sucGxheWxpc3QuZmlsZU0zVS5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sucGxheWxpc3QuZmlsZU0zVS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgLy8gVHVuZXINCiAgICAgICAgICAgIGlmIChTRVJWRVJbInNldHRpbmdzIl1bImJ1ZmZlciJdICE9ICItIikgew0KICAgICAgICAgICAgICAgIHZhciB0ZXh0ID0gW107DQogICAgICAgICAgICAgICAgdmFyIHZhbHVlcyA9IFtdOw0KICAgICAgICAgICAgICAgIGZvciAodmFyIGkgPSAxOyBpIDw9IDEwMDsgaSsrKSB7DQogICAgICAgICAgICAgICAgICAgIHRleHQucHVzaChpLnRvU3RyaW5nKCkpOw0KICAgICAgICAgICAgICAgICAgICB2YWx1ZXMucHVzaChpLnRvU3RyaW5nKCkpOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB2YXIgZGJLZXkgPSAidHVuZXIiOw0KICAgICAgICAgICAgICAgIHZhciBzZWxlY3QgPSBjb250ZW50LmNyZWF0ZVNlbGVjdCh0ZXh0LCB2YWx1ZXMsIGRhdGFbZGJLZXldLCBkYktleSk7DQogICAgICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25mb2N1cyIsICJqYXZhc2NyaXB0OiByZXR1cm47Iik7DQogICAgICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnBsYXlsaXN0LnR1bmVyLnRpdGxlfX0iLCBzZWxlY3QpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgZWxzZSB7DQogICAgICAgICAgICAgICAgdmFyIGRiS2V5ID0gInR1bmVyIjsNCiAgICAgICAgICAgICAgICBpZiAoZGF0YVtkYktleV0gPT0gdW5kZWZpbmVkKSB7DQogICAgICAgICAgICAgICAgICAgIGRhdGFbZGJLZXldID0gMTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJyZWFkb25seSIsICJ0cnVlIik7DQogICAgICAgICAgICAgICAgaW5wdXQuY2xhc3NOYW1lID0gIm5vdEF2YWlsYWJsZSI7DQogICAgICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnBsYXlsaXN0LnR1bmVyLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBjb250ZW50LmRlc2NyaXB0aW9uKCJ7ey5wbGF5bGlzdC50dW5lci5kZXNjcmlwdGlvbn19Iik7DQogICAgICAgICAgICAvLyBJbnRlcmF0aW9uDQogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUludGVyYWN0aW9uKCk7DQogICAgICAgICAgICAvLyBEZWxldGUNCiAgICAgICAgICAgIGlmIChkYXRhWyJpZC5wcm92aWRlciJdICE9ICItIikgew0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJkZWxldGUiLCAie3suYnV0dG9uLmRlbGV0ZX19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuY2xhc3NOYW1lID0gImRlbGV0ZSI7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoIm0zdSIsICInICsgaWQgKyAnIiwgdHJ1ZSwgMCknKTsNCiAgICAgICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJiYWNrIiwgInt7LmJ1dHRvbi5iYWNrfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJwbGF5bGlzdCIpJyk7DQogICAgICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICAvLyBBYm9ydA0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImNhbmNlbCIsICJ7ey5idXR0b24uY2FuY2VsfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBzaG93RWxlbWVudCgicG9wdXAiLCBmYWxzZSk7Jyk7DQogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIC8vIFVwZGF0ZQ0KICAgICAgICAgICAgaWYgKGRhdGFbImlkLnByb3ZpZGVyIl0gIT0gIi0iKSB7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgInVwZGF0ZSIsICJ7ey5idXR0b24udXBkYXRlfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogc2F2ZVBvcHVwRGF0YSgibTN1IiwgIicgKyBpZCArICciLCBmYWxzZSwgMSknKTsNCiAgICAgICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIC8vIFNhdmUNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJzYXZlIiwgInt7LmJ1dHRvbi5zYXZlfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBzYXZlUG9wdXBEYXRhKCJtM3UiLCAiJyArIGlkICsgJyIsIGZhbHNlLCAwKScpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSAiaGRociI6DQogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUhlYWRsaW5lKGRhdGFUeXBlKTsNCiAgICAgICAgICAgIC8vIE5hbWUNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJuYW1lIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5wbGF5bGlzdC5uYW1lLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5wbGF5bGlzdC5uYW1lLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBEZXNjcmlwdGlvbg0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gImRlc2NyaXB0aW9uIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5wbGF5bGlzdC5kZXNjcmlwdGlvbi5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sucGxheWxpc3QuZGVzY3JpcHRpb24ucGxhY2Vob2xkZXJ9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIFVSTA0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gImZpbGUuc291cmNlIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5wbGF5bGlzdC5maWxlSERIUi5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sucGxheWxpc3QuZmlsZUhESFIudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIFR1bmVyDQogICAgICAgICAgICBpZiAoU0VSVkVSWyJzZXR0aW5ncyJdWyJidWZmZXIiXSAhPSAiLSIpIHsNCiAgICAgICAgICAgICAgICB2YXIgdGV4dCA9IFtdOw0KICAgICAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBbXTsNCiAgICAgICAgICAgICAgICBmb3IgKHZhciBpID0gMTsgaSA8PSAxMDA7IGkrKykgew0KICAgICAgICAgICAgICAgICAgICB0ZXh0LnB1c2goaS50b1N0cmluZygpKTsNCiAgICAgICAgICAgICAgICAgICAgdmFsdWVzLnB1c2goaS50b1N0cmluZygpKTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgdmFyIGRiS2V5ID0gInR1bmVyIjsNCiAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCBkYXRhW2RiS2V5XSwgZGJLZXkpOw0KICAgICAgICAgICAgICAgIHNlbGVjdC5zZXRBdHRyaWJ1dGUoIm9uZm9jdXMiLCAiamF2YXNjcmlwdDogcmV0dXJuOyIpOw0KICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5wbGF5bGlzdC50dW5lci50aXRsZX19Iiwgc2VsZWN0KTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgICAgIHZhciBkYktleSA9ICJ0dW5lciI7DQogICAgICAgICAgICAgICAgaWYgKGRhdGFbZGJLZXldID09IHVuZGVmaW5lZCkgew0KICAgICAgICAgICAgICAgICAgICBkYXRhW2RiS2V5XSA9IDE7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicmVhZG9ubHkiLCAidHJ1ZSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LmNsYXNzTmFtZSA9ICJub3RBdmFpbGFibGUiOw0KICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5wbGF5bGlzdC50dW5lci50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgY29udGVudC5kZXNjcmlwdGlvbigie3sucGxheWxpc3QudHVuZXIuZGVzY3JpcHRpb259fSIpOw0KICAgICAgICAgICAgLy8gSW50ZXJhY3Rpb24NCiAgICAgICAgICAgIGNvbnRlbnQuY3JlYXRlSW50ZXJhY3Rpb24oKTsNCiAgICAgICAgICAgIC8vIERlbGV0ZQ0KICAgICAgICAgICAgaWYgKGRhdGFbImlkLnByb3ZpZGVyIl0gIT0gIi0iKSB7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImRlbGV0ZSIsICJ7ey5idXR0b24uZGVsZXRlfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogc2F2ZVBvcHVwRGF0YSgiaGRociIsICInICsgaWQgKyAnIiwgdHJ1ZSwgMCknKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5jbGFzc05hbWUgPSAiZGVsZXRlIjsNCiAgICAgICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJiYWNrIiwgInt7LmJ1dHRvbi5iYWNrfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJwbGF5bGlzdCIpJyk7DQogICAgICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICAvLyBBYm9ydA0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImNhbmNlbCIsICJ7ey5idXR0b24uY2FuY2VsfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBzaG93RWxlbWVudCgicG9wdXAiLCBmYWxzZSk7Jyk7DQogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIC8vIFVwZGF0ZQ0KICAgICAgICAgICAgaWYgKGRhdGFbImlkLnByb3ZpZGVyIl0gIT0gIi0iKSB7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgInVwZGF0ZSIsICJ7ey5idXR0b24udXBkYXRlfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogc2F2ZVBvcHVwRGF0YSgiaGRociIsICInICsgaWQgKyAnIiwgZmFsc2UsIDEpJyk7DQogICAgICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICAvLyBTYXZlDQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAic2F2ZSIsICJ7ey5idXR0b24uc2F2ZX19Iik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogc2F2ZVBvcHVwRGF0YSgiaGRociIsICInICsgaWQgKyAnIiwgZmFsc2UsIDApJyk7DQogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJmaWx0ZXIiOg0KICAgICAgICAgICAgY29udGVudC5jcmVhdGVIZWFkbGluZShkYXRhVHlwZSk7DQogICAgICAgICAgICAvLyBUeXBlDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAidHlwZSI7DQogICAgICAgICAgICB2YXIgdGV4dCA9IFsiTTNVOiAiICsgInt7LmZpbHRlci50eXBlLmdyb3VwVGl0bGV9fSIsICJ4VGVWZTogIiArICJ7ey5maWx0ZXIudHlwZS5jdXN0b21GaWx0ZXJ9fSJdOw0KICAgICAgICAgICAgdmFyIHZhbHVlcyA9IFsiamF2YXNjcmlwdDogb3BlblBvcFVwKCdncm91cC10aXRsZScpIiwgImphdmFzY3JpcHQ6IG9wZW5Qb3BVcCgnY3VzdG9tLWZpbHRlcicpIl07DQogICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCAiamF2YXNjcmlwdDogb3BlblBvcFVwKCdncm91cC10aXRsZScpIiwgZGJLZXkpOw0KICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgiaWQiLCBpZCk7DQogICAgICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICdqYXZhc2NyaXB0OiBjaGFuZ2VCdXR0b25BY3Rpb24odGhpcywgIm5leHQiLCAib25jbGljayIpOycpOyAvLyBjaGFuZ2VCdXR0b25BY3Rpb24NCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5maWx0ZXIudHlwZS50aXRsZX19Iiwgc2VsZWN0KTsNCiAgICAgICAgICAgIC8vIEludGVyYWN0aW9uDQogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUludGVyYWN0aW9uKCk7DQogICAgICAgICAgICAvLyBBYm9ydA0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImNhbmNlbCIsICJ7ey5idXR0b24uY2FuY2VsfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBzaG93RWxlbWVudCgicG9wdXAiLCBmYWxzZSk7Jyk7DQogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIC8vIE5leHQNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJuZXh0IiwgInt7LmJ1dHRvbi5uZXh0fX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoImdyb3VwLXRpdGxlIiknKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgiaWQiLCAnbmV4dCcpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSAiY3VzdG9tLWZpbHRlciI6DQogICAgICAgIGNhc2UgImdyb3VwLXRpdGxlIjoNCiAgICAgICAgICAgIHN3aXRjaCAoZGF0YVR5cGUpIHsNCiAgICAgICAgICAgICAgICBjYXNlICJjdXN0b20tZmlsdGVyIjoNCiAgICAgICAgICAgICAgICAgICAgY29udGVudC5jcmVhdGVIZWFkbGluZSgie3suZmlsdGVyLmN1c3RvbX19IiArICIgRmlsdGVyIik7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgImdyb3VwLXRpdGxlIjoNCiAgICAgICAgICAgICAgICAgICAgY29udGVudC5jcmVhdGVIZWFkbGluZSgie3suZmlsdGVyLmdyb3VwfX0iICsgIiBGaWx0ZXIiKTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICB9DQogICAgICAgICAgICAvLyBOYW1lICAgICAgDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAibmFtZSI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3suZmlsdGVyLm5hbWUucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LmZpbHRlci5uYW1lLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBEZXNjcmlwdGlvbg0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gImRlc2NyaXB0aW9uIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5maWx0ZXIuZGVzY3JpcHRpb24ucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LmZpbHRlci5kZXNjcmlwdGlvbi50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgLy8gVHlwZQ0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gInR5cGUiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiaGlkZGVuIiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCIiLCBpbnB1dCk7DQogICAgICAgICAgICB2YXIgZmlsdGVyVHlwZSA9IGRhdGFbZGJLZXldOw0KICAgICAgICAgICAgc3dpdGNoIChmaWx0ZXJUeXBlKSB7DQogICAgICAgICAgICAgICAgY2FzZSAiY3VzdG9tLWZpbHRlciI6DQogICAgICAgICAgICAgICAgICAgIC8vIENhc2Ugc2Vuc2l0aXZlDQogICAgICAgICAgICAgICAgICAgIHZhciBkYktleSA9ICJjYXNlU2Vuc2l0aXZlIjsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChkYktleSk7DQogICAgICAgICAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhW2RiS2V5XTsNCiAgICAgICAgICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LmZpbHRlci5jYXNlU2Vuc2l0aXZlLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAgICAgICAgIC8vIEZpbHRlciBSdWxlIChDdXN0b20pDQogICAgICAgICAgICAgICAgICAgIHZhciBkYktleSA9ICJmaWx0ZXIiOw0KICAgICAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5maWx0ZXIuZmlsdGVyUnVsZS5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5maWx0ZXIuZmlsdGVyUnVsZS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgICAgICAgICAvLyBTdGFydGluZyBDaGFubmVsIE51bWJlciBNYXBwaW5nDQogICAgICAgICAgICAgICAgICAgIHZhciBkYktleSA9ICJzdGFydGluZ0NoYW5uZWwiOw0KICAgICAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5maWx0ZXIuc3RhcnRpbmdDaGFubmVsLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LmZpbHRlci5zdGFydGluZ0NoYW5uZWwudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAiZ3JvdXAtdGl0bGUiOg0KICAgICAgICAgICAgICAgICAgICAvL2FsZXJ0KGRiS2V5ICsgIiAiICsgZmlsdGVyVHlwZSkNCiAgICAgICAgICAgICAgICAgICAgLy8gRmlsdGVyIGJhc2VkIG9uIHRoZSBncm91cHMgaW4gdGhlIE0zVQ0KICAgICAgICAgICAgICAgICAgICB2YXIgZGJLZXkgPSAiZmlsdGVyIjsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGdyb3Vwc00zVSA9IGdldExvY2FsRGF0YSgibTN1R3JvdXBzIiwgIiIpOw0KICAgICAgICAgICAgICAgICAgICB2YXIgdGV4dCA9IGdyb3Vwc00zVVsidGV4dCJdOw0KICAgICAgICAgICAgICAgICAgICB2YXIgdmFsdWVzID0gZ3JvdXBzTTNVWyJ2YWx1ZSJdOw0KICAgICAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCBkYXRhW2RiS2V5XSwgZGJLZXkpOw0KICAgICAgICAgICAgICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3suZmlsdGVyLmZpbHRlckdyb3VwLnRpdGxlfX0iLCBzZWxlY3QpOw0KICAgICAgICAgICAgICAgICAgICBjb250ZW50LmRlc2NyaXB0aW9uKCJ7ey5maWx0ZXIuZmlsdGVyR3JvdXAuZGVzY3JpcHRpb259fSIpOw0KICAgICAgICAgICAgICAgICAgICAvLyBDYXNlIHNlbnNldGl2ZQ0KICAgICAgICAgICAgICAgICAgICB2YXIgZGJLZXkgPSAiY2FzZVNlbnNpdGl2ZSI7DQogICAgICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goZGJLZXkpOw0KICAgICAgICAgICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YVtkYktleV07DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5maWx0ZXIuY2FzZVNlbnNpdGl2ZS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgICAgICAgICB2YXIgZGJLZXkgPSAiaW5jbHVkZSI7DQogICAgICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LmZpbHRlci5pbmNsdWRlLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LmZpbHRlci5pbmNsdWRlLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuZGVzY3JpcHRpb24oInt7LmZpbHRlci5pbmNsdWRlLmRlc2NyaXB0aW9ufX0iKTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGRiS2V5ID0gImV4Y2x1ZGUiOw0KICAgICAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5maWx0ZXIuZXhjbHVkZS5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5maWx0ZXIuZXhjbHVkZS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgICAgICAgICBjb250ZW50LmRlc2NyaXB0aW9uKCJ7ey5maWx0ZXIuZXhjbHVkZS5kZXNjcmlwdGlvbn19Iik7DQogICAgICAgICAgICAgICAgICAgIC8vIFByZXNlcnZlIE0zVSBQbGF5bGlzdCBDaGFubmVsIE1hcHBpbmcNCiAgICAgICAgICAgICAgICAgICAgdmFyIGRiS2V5ID0gInByZXNlcnZlTWFwcGluZyI7DQogICAgICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goZGJLZXkpOw0KICAgICAgICAgICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YVtkYktleV07DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5maWx0ZXIucHJlc2VydmVNYXBwaW5nLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAgICAgICAgIC8vIFN0YXJ0aW5nIENoYW5uZWwgTnVtYmVyIE1hcHBpbmcNCiAgICAgICAgICAgICAgICAgICAgdmFyIGRiS2V5ID0gInN0YXJ0aW5nQ2hhbm5lbCI7DQogICAgICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LmZpbHRlci5zdGFydGluZ0NoYW5uZWwucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3suZmlsdGVyLnN0YXJ0aW5nQ2hhbm5lbC50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgICAgICAgICAvLyBGaWxsIE1pc3NpbmcgRVBHIERhdGENCiAgICAgICAgICAgICAgICAgICAgLy8gVGhlIGZvbGxvd2luZyBjb2RlIG9ubHkgd29ya3Mgd2hlbiB4VGVWZSBEdW1teSBhbHJlYWR5IGV4aXN0cw0KICAgICAgICAgICAgICAgICAgICAvLyB2YXIgZGJLZXk6c3RyaW5nID0gImRlZmF1bHRNaXNzaW5nRVBHIg0KICAgICAgICAgICAgICAgICAgICAvLyB2YXIgeG1sdHY6WE1MVFZGaWxlID0gbmV3IFhNTFRWRmlsZSgpDQogICAgICAgICAgICAgICAgICAgIC8vIHZhciBzZWxlY3QgPSB4bWx0di5nZXRQcm9ncmFtcygieFRlVmUgRHVtbXkiLCBkYXRhW2RiS2V5XSkNCiAgICAgICAgICAgICAgICAgICAgLy8gc2VsZWN0LnNldEF0dHJpYnV0ZSgibmFtZSIsIGRiS2V5KQ0KICAgICAgICAgICAgICAgICAgICAvLyBzZWxlY3Quc2V0QXR0cmlidXRlKCJpZCIsICJwb3B1cC1taXNzaW5nLWVwZyIpDQogICAgICAgICAgICAgICAgICAgIC8vIFRoZSB3b3JrYXJvdW5kIGlzIGN1cnJlbnRseSB0byBoYXJkIGNvZGUgdGhlIHhUZVZlIER1bW15IGRhdGENCiAgICAgICAgICAgICAgICAgICAgdmFyIGRiS2V5ID0gImRlZmF1bHRNaXNzaW5nRVBHIjsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGxpc3RPcHRpb25zID0geyAidGV4dCI6IFsiLSIsICIzMCBNaW51dGVzICgzMF9NaW51dGVzKSIsICI2MCBNaW51dGVzICg2MF9NaW51dGVzKSIsICI5MCBNaW51dGVzICg5MF9NaW51dGVzKSIsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgIjEyMCBNaW51dGVzICgxMjBfTWludXRlcykiLCAiMTgwIE1pbnV0ZXMgKDMwX01pbnV0ZXMpIiwgIjI0MCBNaW51dGVzICgzMF9NaW51dGVzKSIsICIzNjAgTWludXRlcyAoMzBfTWludXRlcykiXSwNCiAgICAgICAgICAgICAgICAgICAgICAgICJ2YWx1ZSI6IFsiLSIsICIzMF9NaW51dGVzIiwgIjYwX01pbnV0ZXMiLCAiOTBfTWludXRlcyIsICIxMjBfTWludXRlcyIsICIxODBfTWludXRlcyIsICIyNDBfTWludXRlcyIsICIzNjBfTWludXRlcyIsXSB9Ow0KICAgICAgICAgICAgICAgICAgICB2YXIgdGV4dCA9IGxpc3RPcHRpb25zWyJ0ZXh0Il07DQogICAgICAgICAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBsaXN0T3B0aW9uc1sidmFsdWUiXTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHNlbGVjdCA9IGNvbnRlbnQuY3JlYXRlU2VsZWN0KHRleHQsIHZhbHVlcywgZGF0YVtkYktleV0sIGRiS2V5KTsNCiAgICAgICAgICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LmZpbHRlci5kZWZhdWx0TWlzc2luZ0VQRy50aXRsZX19Iiwgc2VsZWN0KTsNCiAgICAgICAgICAgICAgICAgICAgY29udGVudC5kZXNjcmlwdGlvbigie3suZmlsdGVyLmRlZmF1bHRNaXNzaW5nRVBHLmRlc2NyaXB0aW9ufX0iKTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICB9DQogICAgICAgICAgICAvLyBJbnRlcmFjdGlvbg0KICAgICAgICAgICAgY29udGVudC5jcmVhdGVJbnRlcmFjdGlvbigpOw0KICAgICAgICAgICAgLy8gRGVsZXRlDQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAiZGVsZXRlIiwgInt7LmJ1dHRvbi5kZWxldGV9fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoImZpbHRlciIsICInICsgaWQgKyAnIiwgdHJ1ZSwgMCknKTsNCiAgICAgICAgICAgIGlucHV0LmNsYXNzTmFtZSA9ICJkZWxldGUiOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICAvLyBBYm9ydA0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImNhbmNlbCIsICJ7ey5idXR0b24uY2FuY2VsfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBzaG93RWxlbWVudCgicG9wdXAiLCBmYWxzZSk7Jyk7DQogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIC8vIFNhdmUNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJzYXZlIiwgInt7LmJ1dHRvbi5zYXZlfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBzYXZlUG9wdXBEYXRhKCJmaWx0ZXIiLCAiJyArIGlkICsgJyIsIGZhbHNlLCAwKScpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSAieG1sdHYiOg0KICAgICAgICAgICAgY29udGVudC5jcmVhdGVIZWFkbGluZShkYXRhVHlwZSk7DQogICAgICAgICAgICAvLyBOYW1lDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAibmFtZSI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3sueG1sdHYubmFtZS5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sueG1sdHYubmFtZS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgLy8gRGVzY3JpcHRpb24NCiAgICAgICAgICAgIHZhciBkYktleSA9ICJkZXNjcmlwdGlvbiI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3sueG1sdHYuZGVzY3JpcHRpb24ucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnhtbHR2LmRlc2NyaXB0aW9uLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBVUkwNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJmaWxlLnNvdXJjZSI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3sueG1sdHYuZmlsZVhNTFRWLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey54bWx0di5maWxlWE1MVFYudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIEludGVyYWN0aW9uDQogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUludGVyYWN0aW9uKCk7DQogICAgICAgICAgICAvLyBEZWxldGUNCiAgICAgICAgICAgIGlmIChkYXRhWyJpZC5wcm92aWRlciJdICE9ICItIikgew0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJkZWxldGUiLCAie3suYnV0dG9uLmRlbGV0ZX19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoInhtbHR2IiwgIicgKyBpZCArICciLCB0cnVlLCAwKScpOw0KICAgICAgICAgICAgICAgIGlucHV0LmNsYXNzTmFtZSA9ICJkZWxldGUiOw0KICAgICAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgLy8gQWJvcnQNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJjYW5jZWwiLCAie3suYnV0dG9uLmNhbmNlbH19Iik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogc2hvd0VsZW1lbnQoInBvcHVwIiwgZmFsc2UpOycpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICAvLyBVcGRhdGUNCiAgICAgICAgICAgIGlmIChkYXRhWyJpZC5wcm92aWRlciJdICE9ICItIikgew0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJ1cGRhdGUiLCAie3suYnV0dG9uLnVwZGF0ZX19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoInhtbHR2IiwgIicgKyBpZCArICciLCBmYWxzZSwgMSknKTsNCiAgICAgICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIC8vIFNhdmUNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJzYXZlIiwgInt7LmJ1dHRvbi5zYXZlfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBzYXZlUG9wdXBEYXRhKCJ4bWx0diIsICInICsgaWQgKyAnIiwgZmFsc2UsIDApJyk7DQogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJ1c2VycyI6DQogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUhlYWRsaW5lKCJ7ey5tYWluTWVudS5pdGVtLnVzZXJzfX0iKTsNCiAgICAgICAgICAgIC8vIFVzZXIgbmFtZQ0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gInVzZXJuYW1lIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey51c2Vycy51c2VybmFtZS5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sudXNlcnMudXNlcm5hbWUudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIE5ldyBQYXJzc3dvcmQNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJwYXNzd29yZCI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJwYXNzd29yZCIsIGRiS2V5LCAiIik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnVzZXJzLnBhc3N3b3JkLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey51c2Vycy5wYXNzd29yZC50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgLy8gQ29uZmlybWF0aW9uDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAiY29uZmlybSI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJwYXNzd29yZCIsIGRiS2V5LCAiIik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnVzZXJzLmNvbmZpcm0ucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnVzZXJzLmNvbmZpcm0udGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIEF1dGhlbnRpY2F0aW9uIFdFQg0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gImF1dGhlbnRpY2F0aW9uLndlYiI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KGRiS2V5KTsNCiAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhW2RiS2V5XTsNCiAgICAgICAgICAgIGlmIChkYXRhWyJkZWZhdWx0VXNlciJdID09IHRydWUpIHsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAiamF2YXNjcmlwdDogcmV0dXJuIGZhbHNlIik7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sudXNlcnMud2ViLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBBdXRoZW50aWNhdGlvbiBQTVMNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJhdXRoZW50aWNhdGlvbi5wbXMiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChkYktleSk7DQogICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YVtkYktleV07DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sudXNlcnMucG1zLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBBdXRoZW50aWNhdGlvbiBNM1UNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJhdXRoZW50aWNhdGlvbi5tM3UiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChkYktleSk7DQogICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YVtkYktleV07DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sudXNlcnMubTN1LnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBBdXRoZW50aWNhdGlvbiBYTUwNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJhdXRoZW50aWNhdGlvbi54bWwiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChkYktleSk7DQogICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YVtkYktleV07DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sudXNlcnMueG1sLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBBdXRoZW50aWNhdGlvbiBBUEkNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJhdXRoZW50aWNhdGlvbi5hcGkiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChkYktleSk7DQogICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YVtkYktleV07DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sudXNlcnMuYXBpLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBJbnRlcmFjdGlvbg0KICAgICAgICAgICAgY29udGVudC5jcmVhdGVJbnRlcmFjdGlvbigpOw0KICAgICAgICAgICAgLy8gRGVsZXRlDQogICAgICAgICAgICBpZiAoZGF0YVsiZGVmYXVsdFVzZXIiXSAhPSB0cnVlICYmIGlkICE9ICItIikgew0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJkZWxldGUiLCAie3suYnV0dG9uLmRlbGV0ZX19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuY2xhc3NOYW1lID0gImRlbGV0ZSI7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoIicgKyBkYXRhVHlwZSArICciLCAiJyArIGlkICsgJyIsIHRydWUsIDApJyk7DQogICAgICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICAvLyBBYm9ydA0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImNhbmNlbCIsICJ7ey5idXR0b24uY2FuY2VsfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBzaG93RWxlbWVudCgicG9wdXAiLCBmYWxzZSk7Jyk7DQogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIC8vIFNhdmUNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJzYXZlIiwgInt7LmJ1dHRvbi5zYXZlfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBzYXZlUG9wdXBEYXRhKCInICsgZGF0YVR5cGUgKyAnIiwgIicgKyBpZCArICciLCAiZmFsc2UiKTsnKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGNhc2UgIm1hcHBpbmciOg0KICAgICAgICAgICAgY29udGVudC5jcmVhdGVIZWFkbGluZSgie3subWFpbk1lbnUuaXRlbS5tYXBwaW5nfX0iKTsNCiAgICAgICAgICAgIC8vIEFjdGl2ZQ0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gIngtYWN0aXZlIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goZGJLZXkpOw0KICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGFbZGJLZXldOw0KICAgICAgICAgICAgaW5wdXQuaWQgPSAiYWN0aXZlIjsNCiAgICAgICAgICAgIC8vaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpDQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRvZ2dsZUNoYW5uZWxTdGF0dXMoJyIgKyBpZCArICInLCB0aGlzKSIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7Lm1hcHBpbmcuYWN0aXZlLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBDaGFubmVsIG5hbWUNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJ4LW5hbWUiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICBpZiAoQlVMS19FRElUID09IHRydWUpIHsNCiAgICAgICAgICAgICAgICBpbnB1dC5zdHlsZS5ib3JkZXIgPSAic29saWQgMXB4IHJlZCI7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJyZWFkb25seSIsICJ0cnVlIik7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3subWFwcGluZy5jaGFubmVsTmFtZS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgY29udGVudC5kZXNjcmlwdGlvbihkYXRhWyJuYW1lIl0pOw0KICAgICAgICAgICAgLy8gRGVzY3JpcHRpb24NCiAgICAgICAgICAgIHZhciBkYktleSA9ICJ4LWRlc2NyaXB0aW9uIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5tYXBwaW5nLmRlc2NyaXB0aW9uLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5tYXBwaW5nLmRlc2NyaXB0aW9uLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBVcGRhdGUgdGhlIGNoYW5uZWwgeC1uYW1lDQogICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgiX3V1aWQua2V5IikpIHsNCiAgICAgICAgICAgICAgICBpZiAoZGF0YVsiX3V1aWQua2V5Il0gIT0gIiIpIHsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGRiS2V5ID0gIngtdXBkYXRlLWNoYW5uZWwtbmFtZSI7DQogICAgICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goZGJLZXkpOw0KICAgICAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhW2RiS2V5XTsNCiAgICAgICAgICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7Lm1hcHBpbmcudXBkYXRlQ2hhbm5lbE5hbWUudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9DQogICAgICAgICAgICAvLyBDaGFubmVsIG5hbWUgcmVnZXggZm9yIHVwZGF0aW5nIHRoZSBjaGFubmVsIG5hbWUNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJ1cGRhdGUtY2hhbm5lbC1uYW1lLXJlZ2V4IjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5tYXBwaW5nLnVwZGF0ZUNoYW5uZWxOYW1lUmVnZXgucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7Lm1hcHBpbmcudXBkYXRlQ2hhbm5lbE5hbWVSZWdleC50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgY29udGVudC5kZXNjcmlwdGlvbigie3subWFwcGluZy51cGRhdGVDaGFubmVsTmFtZVJlZ2V4LmRlc2NyaXB0aW9ufX0iKTsNCiAgICAgICAgICAgIC8vIENoYW5uZWwgZ3JvdXAgcmVnZXggZm9yIHVwZGF0aW5nIHRoZSBjaGFubmVsIG5hbWUNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJ1cGRhdGUtY2hhbm5lbC1uYW1lLWJ5LWdyb3VwLXJlZ2V4IjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5tYXBwaW5nLnVwZGF0ZUNoYW5uZWxOYW1lQnlHcm91cFJlZ2V4LnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5tYXBwaW5nLnVwZGF0ZUNoYW5uZWxOYW1lQnlHcm91cFJlZ2V4LnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICBjb250ZW50LmRlc2NyaXB0aW9uKCJ7ey5tYXBwaW5nLnVwZGF0ZUNoYW5uZWxOYW1lQnlHcm91cFJlZ2V4LmRlc2NyaXB0aW9ufX0iKTsNCiAgICAgICAgICAgIC8vIExvZ28gVVJMIChDaGFubmVsKSANCiAgICAgICAgICAgIHZhciBkYktleSA9ICJ0dmctbG9nbyI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgiaWQiLCAiY2hhbm5lbC1pY29uIik7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3subWFwcGluZy5jaGFubmVsTG9nby50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgLy8gQ2hhbm5lbCBsb2dvIHVwZGF0ZQ0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gIngtdXBkYXRlLWNoYW5uZWwtaWNvbiI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KGRiS2V5KTsNCiAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhW2RiS2V5XTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgiaWQiLCAidXBkYXRlLWljb24iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCc7IGNoYW5nZUNoYW5uZWxMb2dvKCciICsgaWQgKyAiJyk7Iik7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3subWFwcGluZy51cGRhdGVDaGFubmVsTG9nby50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgLy8gRXhwYW5kIEVQRyBjYXRlZ29yeQ0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gIngtY2F0ZWdvcnkiOw0KICAgICAgICAgICAgdmFyIHRleHQgPSBbIi0iLCAiS2lkcyAoRW1ieSBvbmx5KSIsICJOZXdzIiwgIk1vdmllIiwgIlNlcmllcyIsICJTcG9ydHMiXTsNCiAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBbIiIsICJLaWRzIiwgIk5ld3MiLCAiTW92aWUiLCAiU2VyaWVzIiwgIlNwb3J0cyJdOw0KICAgICAgICAgICAgdmFyIHNlbGVjdCA9IGNvbnRlbnQuY3JlYXRlU2VsZWN0KHRleHQsIHZhbHVlcywgZGF0YVtkYktleV0sIGRiS2V5KTsNCiAgICAgICAgICAgIHNlbGVjdC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3subWFwcGluZy5lcGdDYXRlZ29yeS50aXRsZX19Iiwgc2VsZWN0KTsNCiAgICAgICAgICAgIC8vIE0zVSBncm91cCB0aXRsZQ0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gIngtZ3JvdXAtdGl0bGUiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICBpbnB1dC5kYXRhc2V0Lm9sZFZhbHVlID0gZGF0YVtkYktleV07DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3subWFwcGluZy5tM3VHcm91cFRpdGxlLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICBpZiAoZGF0YVsiZ3JvdXAtdGl0bGUiXSAhPSB1bmRlZmluZWQpIHsNCiAgICAgICAgICAgICAgICBjb250ZW50LmRlc2NyaXB0aW9uKGRhdGFbImdyb3VwLXRpdGxlIl0pOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgaWYgKGRhdGFbIngtdXBkYXRlLWNoYW5uZWwtZ3JvdXAiXSA9PSB0cnVlKSB7DQogICAgICAgICAgICAgICAgaW5wdXQuZGlzYWJsZWQgPSB0cnVlOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgLy8gVXBkYXRlIGNoYW5uZWwgZ3JvdXAgY2hlY2tib3gNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJ4LXVwZGF0ZS1jaGFubmVsLWdyb3VwIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goZGJLZXkpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0b2dnbGVHcm91cFVwZGF0ZUNiKCciICsgaWQgKyAiJywgdGhpcyk7Iik7DQogICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YVtkYktleV07DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3subWFwcGluZy51cGRhdGVDaGFubmVsR3JvdXAudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIGNvbnRlbnQuZGVzY3JpcHRpb24oInt7Lm1hcHBpbmcudXBkYXRlQ2hhbm5lbEdyb3VwLmRlc2NyaXB0aW9ufX0iKTsNCiAgICAgICAgICAgIC8vIFhNTFRWIGZpbGUNCiAgICAgICAgICAgIHZhciBkYktleSA9ICd4LXhtbHR2LWZpbGUnOw0KICAgICAgICAgICAgY29uc3QgeG1sVHZGaWxlID0gZGF0YVtkYktleV07DQogICAgICAgICAgICB2YXIgeG1sVHYgPSBuZXcgWE1MVFZGaWxlKCk7DQogICAgICAgICAgICBjb25zdCB4bWxUdkZpbGVTZWxlY3QgPSB4bWxUdi5nZXRGaWxlcyhkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICB4bWxUdkZpbGVTZWxlY3Quc2V0QXR0cmlidXRlKCduYW1lJywgZGJLZXkpOw0KICAgICAgICAgICAgeG1sVHZGaWxlU2VsZWN0LnNldEF0dHJpYnV0ZSgnaWQnLCAncG9wdXAteG1sdHYnKTsNCiAgICAgICAgICAgIHhtbFR2RmlsZVNlbGVjdC5zZXRBdHRyaWJ1dGUoJ29uY2hhbmdlJywgYGphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnOyBzZXRYbWx0dkNoYW5uZWwoJyR7aWR9JywgdGhpcyk7YCk7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygne3subWFwcGluZy54bWx0dkZpbGUudGl0bGV9fScsIHhtbFR2RmlsZVNlbGVjdCk7DQogICAgICAgICAgICAvLyBYTUxUViBNYXBwaW5nDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAneC1tYXBwaW5nJzsNCiAgICAgICAgICAgIHZhciB4bWxUdiA9IG5ldyBYTUxUVkZpbGUoKTsNCiAgICAgICAgICAgIGNvbnN0IGN1cnJlbnRYbWxUdklkID0gZGF0YVtkYktleV07DQogICAgICAgICAgICBjb25zdCBbeG1sVHZJZENvbnRhaW5lciwgeG1sVHZJZElucHV0LCB4bWxUdklkRGF0YWxpc3RdID0geG1sVHYubmV3WG1sVHZJZFBpY2tlcih4bWxUdkZpbGUsIGN1cnJlbnRYbWxUdklkKTsNCiAgICAgICAgICAgIHhtbFR2SWRDb250YWluZXIuc2V0QXR0cmlidXRlKCdpZCcsICd4bWx0di1pZC1waWNrZXItY29udGFpbmVyJyk7DQogICAgICAgICAgICB4bWxUdklkSW5wdXQuc2V0QXR0cmlidXRlKCdsaXN0JywgJ3htbHR2LWlkLXBpY2tlci1kYXRhbGlzdCcpOw0KICAgICAgICAgICAgeG1sVHZJZElucHV0LnNldEF0dHJpYnV0ZSgnbmFtZScsICd4LW1hcHBpbmcnKTsgLy8gU2hvdWxkIHN0YXkgeC1tYXBwaW5nIGFzIGl0IHdpbGwgYmUgdXNlZCBpbiBkb25lUG9wdXBEYXRhIHRvIG1ha2UgYSBzZXJ2ZXIgcmVxdWVzdA0KICAgICAgICAgICAgeG1sVHZJZElucHV0LnNldEF0dHJpYnV0ZSgnaWQnLCAneG1sdHYtaWQtcGlja2VyLWlucHV0Jyk7DQogICAgICAgICAgICB4bWxUdklkSW5wdXQuc2V0QXR0cmlidXRlKCdvbmNoYW5nZScsIGBqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJzsgY2hlY2tYbWx0dkNoYW5uZWwoJyR7aWR9JywgdGhpcy52YWx1ZSwgJyR7eG1sVHZGaWxlfScpO2ApOw0KICAgICAgICAgICAgeG1sVHZJZERhdGFsaXN0LnNldEF0dHJpYnV0ZSgnaWQnLCAneG1sdHYtaWQtcGlja2VyLWRhdGFsaXN0Jyk7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygne3subWFwcGluZy54bWx0dkNoYW5uZWwudGl0bGV9fScsIHhtbFR2SWRDb250YWluZXIpOw0KICAgICAgICAgICAgLy8gVGltZXNoaWZ0DQogICAgICAgICAgICB2YXIgZGJLZXkgPSAieC10aW1lc2hpZnQiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7Lm1hcHBpbmcudGltZXNoaWZ0LnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgiaWQiLCAidGltZXNoaWZ0Iik7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3subWFwcGluZy50aW1lc2hpZnQudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIEludGVyYWN0aW9uDQogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUludGVyYWN0aW9uKCk7DQogICAgICAgICAgICAvLyBVcGxvYWQgbG9nbw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImNhbmNlbCIsICJ7ey5idXR0b24udXBsb2FkTG9nb319Iik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogdXBsb2FkTG9nbygpOycpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICAvLyBBYm9ydA0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImNhbmNlbCIsICJ7ey5idXR0b24uY2FuY2VsfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBzaG93RWxlbWVudCgicG9wdXAiLCBmYWxzZSk7Jyk7DQogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIC8vIEZpbmlzaGVkDQogICAgICAgICAgICB2YXIgaWRzID0gW107DQogICAgICAgICAgICBpZHMgPSBnZXRBbGxTZWxlY3RlZENoYW5uZWxzKCk7DQogICAgICAgICAgICBpZiAoaWRzLmxlbmd0aCA9PSAwKSB7DQogICAgICAgICAgICAgICAgaWRzLnB1c2goaWQpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgInNhdmUiLCAie3suYnV0dG9uLmRvbmV9fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IGRvbmVQb3B1cERhdGEoIicgKyBkYXRhVHlwZSArICciLCAiJyArIGlkcyArICciLCAiZmFsc2UiKTsnKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICBicmVhazsNCiAgICB9DQogICAgc2hvd1BvcFVwRWxlbWVudCgncG9wdXAtY3VzdG9tJyk7DQp9DQpjbGFzcyBYTUxUVkZpbGUgew0KICAgIGdldEZpbGVzKHNldCkgew0KICAgICAgICBsZXQgZmlsZUlEcyA9IGdldE93bk9ialByb3BzKFNFUlZFUlsieGVwZyJdWyJ4bWx0dk1hcCJdKTsNCiAgICAgICAgbGV0IHZhbHVlcyA9IG5ldyBBcnJheSgiLSIpOw0KICAgICAgICBsZXQgdGV4dCA9IG5ldyBBcnJheSgiLSIpOw0KICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGZpbGVJRHMubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgICAgIGlmIChmaWxlSURzW2ldICE9ICJ4VGVWZSBEdW1teSIpIHsNCiAgICAgICAgICAgICAgICB2YWx1ZXMucHVzaChnZXRWYWx1ZUZyb21Qcm92aWRlckZpbGUoZmlsZUlEc1tpXSwgInhtbHR2IiwgImZpbGUueHRldmUiKSk7DQogICAgICAgICAgICAgICAgdGV4dC5wdXNoKGdldFZhbHVlRnJvbVByb3ZpZGVyRmlsZShmaWxlSURzW2ldLCAieG1sdHYiLCAibmFtZSIpKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgICAgIHZhbHVlcy5wdXNoKGZpbGVJRHNbaV0pOw0KICAgICAgICAgICAgICAgIHRleHQucHVzaChmaWxlSURzW2ldKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KICAgICAgICBsZXQgc2VsZWN0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiU0VMRUNUIik7DQogICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGV4dC5sZW5ndGg7IGkrKykgew0KICAgICAgICAgICAgdmFyIG9wdGlvbiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIk9QVElPTiIpOw0KICAgICAgICAgICAgb3B0aW9uLnNldEF0dHJpYnV0ZSgidmFsdWUiLCB2YWx1ZXNbaV0pOw0KICAgICAgICAgICAgb3B0aW9uLmlubmVyVGV4dCA9IHRleHRbaV07DQogICAgICAgICAgICBzZWxlY3QuYXBwZW5kQ2hpbGQob3B0aW9uKTsNCiAgICAgICAgfQ0KICAgICAgICBpZiAoc2V0ICE9ICIiKSB7DQogICAgICAgICAgICBzZWxlY3QudmFsdWUgPSBzZXQ7DQogICAgICAgIH0NCiAgICAgICAgcmV0dXJuIHNlbGVjdDsNCiAgICB9DQogICAgLyoqDQogICAgICogQHBhcmFtIHhtbFR2RmlsZSBYTUwgZmlsZSBwYXRoIHRvIGdldCBFUEcgZnJvbS4NCiAgICAgKiBAcGFyYW0gY3VycmVudFhtbFR2SWQgQ3VycmVudCBYTUxUViBJRCB0byBzZXQgaW5pdGlhbCBpbnB1dCB2YWx1ZSB0by4NCiAgICAgKiBAcmV0dXJucyBBcnJheSBvZiwgc2VxdWVudGlhbGx5Og0KICAgICAqIDEpIENvbnRhaW5lciBvZiB0aGUgcGlja2VyLg0KICAgICAqIDIpIElucHV0IGZpZWxkIHRvIHR5cGUgYXQgYW5kIGdldCBjaG9pY2UgZnJvbS4NCiAgICAgKiAzKSBEYXRhbGlzdCBjb250YWluaW5nIGV2ZXJ5IG9wdGlvbi4NCiAgICAgKi8NCiAgICBuZXdYbWxUdklkUGlja2VyKHhtbFR2RmlsZSwgY3VycmVudFhtbFR2SWQpIHsNCiAgICAgICAgY29uc3QgY29udGFpbmVyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7DQogICAgICAgIGNvbnN0IGlucHV0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnaW5wdXQnKTsNCiAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCd0eXBlJywgJ3RleHQnKTsNCiAgICAgICAgLy8gSW5pdGlhbGx5LCBzZXQgdmFsdWUgdG8gJy0nIGlmIGlucHV0IGlzIGVtcHR5DQogICAgICAgIGlucHV0LnZhbHVlID0gKGN1cnJlbnRYbWxUdklkKSA/IGN1cnJlbnRYbWxUdklkIDogJy0nOw0KICAgICAgICAvLyBXaGVuIGlucHV0IGlzIGZvY3VzZWQsIHJlbW92ZSAnLScgZnJvbSBpdA0KICAgICAgICBpbnB1dC5hZGRFdmVudExpc3RlbmVyKCdmb2N1cycsIChldnQpID0+IHsNCiAgICAgICAgICAgIGNvbnN0IHRhcmdldCA9IGV2dC50YXJnZXQ7DQogICAgICAgICAgICB0YXJnZXQudmFsdWUgPSAodGFyZ2V0LnZhbHVlID09PSAnLScpID8gJycgOiB0YXJnZXQudmFsdWU7DQogICAgICAgIH0pOw0KICAgICAgICAvLyBXaGVuIGlucHV0IGxvc2UgZm9jdXMgb3IgdGFrZSBhIHZhbHVlLCBpZiBpdCdzIGVtcHR5LCBzZXQgdmFsdWUgdG8gJy0nDQogICAgICAgIGlucHV0LmFkZEV2ZW50TGlzdGVuZXIoJ2JsdXInLCBzZXRGYWxsYmFja1ZhbHVlKTsNCiAgICAgICAgaW5wdXQuYWRkRXZlbnRMaXN0ZW5lcignY2hhbmdlJywgc2V0RmFsbGJhY2tWYWx1ZSk7DQogICAgICAgIGZ1bmN0aW9uIHNldEZhbGxiYWNrVmFsdWUoZXZ0KSB7DQogICAgICAgICAgICBjb25zdCB0YXJnZXQgPSBldnQudGFyZ2V0Ow0KICAgICAgICAgICAgdGFyZ2V0LnZhbHVlID0gKHRhcmdldC52YWx1ZSkgPyB0YXJnZXQudmFsdWUgOiAnLSc7DQogICAgICAgIH0NCiAgICAgICAgY29udGFpbmVyLmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgY29uc3QgZGF0YWxpc3QgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkYXRhbGlzdCcpOw0KICAgICAgICBjb25zdCBvcHRpb24gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdvcHRpb24nKTsNCiAgICAgICAgb3B0aW9uLnNldEF0dHJpYnV0ZSgndmFsdWUnLCAnLScpOw0KICAgICAgICBvcHRpb24uaW5uZXJUZXh0ID0gJy0nOw0KICAgICAgICBkYXRhbGlzdC5hcHBlbmRDaGlsZChvcHRpb24pOw0KICAgICAgICBjb25zdCBlcGcgPSBTRVJWRVJbJ3hlcGcnXVsneG1sdHZNYXAnXVt4bWxUdkZpbGVdOw0KICAgICAgICBpZiAoZXBnKSB7DQogICAgICAgICAgICBjb25zdCBwcm9ncmFtSWRzID0gZ2V0T3duT2JqUHJvcHMoZXBnKTsNCiAgICAgICAgICAgIHByb2dyYW1JZHMuZm9yRWFjaCgocHJvZ3JhbUlkKSA9PiB7DQogICAgICAgICAgICAgICAgY29uc3QgcHJvZ3JhbSA9IGVwZ1twcm9ncmFtSWRdOw0KICAgICAgICAgICAgICAgIGlmIChwcm9ncmFtLmhhc093blByb3BlcnR5KCdkaXNwbGF5LW5hbWVzJykpIHsNCiAgICAgICAgICAgICAgICAgICAgcHJvZ3JhbVsnZGlzcGxheS1uYW1lcyddLmZvckVhY2goKGRpc3BsYXlOYW1lKSA9PiB7DQogICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBvcHRpb24gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdvcHRpb24nKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIG9wdGlvbi5zZXRBdHRyaWJ1dGUoJ3ZhbHVlJywgcHJvZ3JhbUlkKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIG9wdGlvbi5pbm5lclRleHQgPSBkaXNwbGF5TmFtZVsnVmFsdWUnXTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGRhdGFsaXN0LmFwcGVuZENoaWxkKG9wdGlvbik7DQogICAgICAgICAgICAgICAgICAgIH0pOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICAgICAgY29uc3Qgb3B0aW9uID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnb3B0aW9uJyk7DQogICAgICAgICAgICAgICAgICAgIG9wdGlvbi5zZXRBdHRyaWJ1dGUoJ3ZhbHVlJywgcHJvZ3JhbUlkKTsNCiAgICAgICAgICAgICAgICAgICAgb3B0aW9uLmlubmVyVGV4dCA9ICctJzsNCiAgICAgICAgICAgICAgICAgICAgZGF0YWxpc3QuYXBwZW5kQ2hpbGQob3B0aW9uKTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9KTsNCiAgICAgICAgfQ0KICAgICAgICBjb250YWluZXIuYXBwZW5kQ2hpbGQoZGF0YWxpc3QpOw0KICAgICAgICByZXR1cm4gW2NvbnRhaW5lciwgaW5wdXQsIGRhdGFsaXN0XTsNCiAgICB9DQp9DQpmdW5jdGlvbiBnZXRWYWx1ZUZyb21Qcm92aWRlckZpbGUoZmlsZSwgZmlsZVR5cGUsIGtleSkgew0KICAgIGlmIChmaWxlID09ICJ4VGVWZSBEdW1teSIpIHsNCiAgICAgICAgcmV0dXJuIGZpbGU7DQogICAgfQ0KICAgIGxldCBmaWxlSUQ7DQogICAgbGV0IGluZGljYXRvciA9IGZpbGUuY2hhckF0KDApOw0KICAgIHN3aXRjaCAoaW5kaWNhdG9yKSB7DQogICAgICAgIGNhc2UgIk0iOg0KICAgICAgICAgICAgZmlsZVR5cGUgPSAibTN1IjsNCiAgICAgICAgICAgIGZpbGVJRCA9IGZpbGU7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSAiSCI6DQogICAgICAgICAgICBmaWxlVHlwZSA9ICJoZGhyIjsNCiAgICAgICAgICAgIGZpbGVJRCA9IGZpbGU7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSAiWCI6DQogICAgICAgICAgICBmaWxlVHlwZSA9ICJ4bWx0diI7DQogICAgICAgICAgICBmaWxlSUQgPSBmaWxlLnN1YnN0cmluZygwLCBmaWxlLmxhc3RJbmRleE9mKCcuJykpOw0KICAgICAgICAgICAgYnJlYWs7DQogICAgfQ0KICAgIGlmIChTRVJWRVJbInNldHRpbmdzIl1bImZpbGVzIl1bZmlsZVR5cGVdLmhhc093blByb3BlcnR5KGZpbGVJRCkgPT0gdHJ1ZSkgew0KICAgICAgICB2YXIgZGF0YSA9IFNFUlZFUlsic2V0dGluZ3MiXVsiZmlsZXMiXVtmaWxlVHlwZV1bZmlsZUlEXTsNCiAgICAgICAgcmV0dXJuIGRhdGFba2V5XTsNCiAgICB9DQogICAgcmV0dXJuOw0KfQ0KZnVuY3Rpb24gc2V0WG1sdHZDaGFubmVsKGVwZ01hcElkLCB4bWxUdkZpbGVTZWxlY3QpIHsNCiAgICBjb25zdCB4bWxUdiA9IG5ldyBYTUxUVkZpbGUoKTsNCiAgICBjb25zdCBuZXdYbWxUdkZpbGUgPSB4bWxUdkZpbGVTZWxlY3QudmFsdWU7DQogICAgLy8gUmVtb3ZlIG9sZCBYTUxUViBJRCBzZWxlY3Rpb24gYm94DQogICAgY29uc3QgeG1sVHZJZFBpY2tlclBhcmVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd4bWx0di1pZC1waWNrZXItY29udGFpbmVyJykucGFyZW50RWxlbWVudDsNCiAgICB4bWxUdklkUGlja2VyUGFyZW50LmlubmVySFRNTCA9ICcnOw0KICAgIC8vIENyZWF0ZSBuZXcgWE1MVFYgSUQgc2VsZWN0aW9uIGJveA0KICAgIGNvbnN0IHR2Z0lkID0gU0VSVkVSWyd4ZXBnJ11bJ2VwZ01hcHBpbmcnXVtlcGdNYXBJZF1bJ3R2Zy1pZCddOw0KICAgIGNvbnN0IFt4bWxUdklkQ29udGFpbmVyLCB4bWxUdklkSW5wdXQsIHhtbFR2SWREYXRhbGlzdF0gPSB4bWxUdi5uZXdYbWxUdklkUGlja2VyKG5ld1htbFR2RmlsZSwgdHZnSWQpOw0KICAgIHhtbFR2SWRDb250YWluZXIuc2V0QXR0cmlidXRlKCdpZCcsICd4bWx0di1pZC1waWNrZXItY29udGFpbmVyJyk7DQogICAgeG1sVHZJZElucHV0LnNldEF0dHJpYnV0ZSgnbGlzdCcsICd4bWx0di1pZC1waWNrZXItZGF0YWxpc3QnKTsNCiAgICB4bWxUdklkSW5wdXQuc2V0QXR0cmlidXRlKCduYW1lJywgJ3gtbWFwcGluZycpOyAvLyBTaG91bGQgc3RheSB4LW1hcHBpbmcgYXMgaXQgd2lsbCBiZSB1c2VkIGluIGRvbmVQb3B1cERhdGEgdG8gbWFrZSBhIHNlcnZlciByZXF1ZXN0DQogICAgeG1sVHZJZElucHV0LnNldEF0dHJpYnV0ZSgnaWQnLCAneG1sdHYtaWQtcGlja2VyLWlucHV0Jyk7DQogICAgeG1sVHZJZElucHV0LnNldEF0dHJpYnV0ZSgnb25jaGFuZ2UnLCBgamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCc7IGNoZWNrWG1sdHZDaGFubmVsKCcke2VwZ01hcElkfScsIHRoaXMudmFsdWUsICcke25ld1htbFR2RmlsZX0nKTtgKTsNCiAgICB4bWxUdklkSW5wdXQuY2xhc3NMaXN0LmFkZCgnY2hhbmdlZCcpOw0KICAgIHhtbFR2SWREYXRhbGlzdC5zZXRBdHRyaWJ1dGUoJ2lkJywgJ3htbHR2LWlkLXBpY2tlci1kYXRhbGlzdCcpOw0KICAgIC8vIEFkZCBuZXcgWE1MVFYgSUQgc2VsZWN0aW9uIGJveCB0byBpdCdzIHBhcmVudA0KICAgIHhtbFR2SWRQaWNrZXJQYXJlbnQuYXBwZW5kQ2hpbGQoeG1sVHZJZENvbnRhaW5lcik7DQogICAgY2hlY2tYbWx0dkNoYW5uZWwoZXBnTWFwSWQsIHhtbFR2SWRJbnB1dC52YWx1ZSwgbmV3WG1sVHZGaWxlKTsNCn0NCmZ1bmN0aW9uIGNoZWNrWG1sdHZDaGFubmVsKGVwZ01hcElkLCBuZXdYbWxUdklkLCB4bWxUdkZpbGUpIHsNCiAgICBjb25zdCBjaGFubmVsQWN0aXZlQ2IgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYWN0aXZlJyk7DQogICAgY29uc3QgY2hhbm5lbEFjdGl2ZSA9IG5ld1htbFR2SWQgIT0gJy0nOw0KICAgIGNoYW5uZWxBY3RpdmVDYi5jaGVja2VkID0gY2hhbm5lbEFjdGl2ZTsNCiAgICBjaGFubmVsQWN0aXZlQ2IuY2xhc3NOYW1lID0gJ2NoYW5nZWQnOw0KICAgIGlmICh4bWxUdkZpbGUgIT0gJ3hUZVZlIER1bW15JyAmJiBjaGFubmVsQWN0aXZlID09IHRydWUpIHsNCiAgICAgICAgY2hhbmdlQ2hhbm5lbExvZ28oZXBnTWFwSWQpOw0KICAgICAgICByZXR1cm47DQogICAgfQ0KICAgIGlmICh4bWxUdkZpbGUgPT0gJ3hUZVZlIER1bW15Jykgew0KICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndXBkYXRlLWljb24nKS5jaGVja2VkID0gZmFsc2U7DQogICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd1cGRhdGUtaWNvbicpLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJzsNCiAgICB9DQp9DQpmdW5jdGlvbiBjaGFuZ2VDaGFubmVsTG9nbyhlcGdNYXBJZCkgew0KICAgIGNvbnN0IGNoYW5uZWwgPSBTRVJWRVJbJ3hlcGcnXVsnZXBnTWFwcGluZyddW2VwZ01hcElkXTsNCiAgICBjb25zdCB4bWxUdkZpbGVTZWxlY3QgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncG9wdXAteG1sdHYnKTsNCiAgICBjb25zdCB4bWxUdkZpbGUgPSB4bWxUdkZpbGVTZWxlY3Qub3B0aW9uc1t4bWxUdkZpbGVTZWxlY3Quc2VsZWN0ZWRJbmRleF0udmFsdWU7DQogICAgY29uc3QgeG1sVHZJZElucHV0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3htbHR2LWlkLXBpY2tlci1pbnB1dCcpOw0KICAgIGNvbnN0IG5ld1htbFR2SWQgPSB4bWxUdklkSW5wdXQudmFsdWU7DQogICAgY29uc3QgdXBkYXRlTG9nbyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd1cGRhdGUtaWNvbicpLmNoZWNrZWQ7DQogICAgbGV0IGxvZ287DQogICAgaWYgKHVwZGF0ZUxvZ28gPT0gdHJ1ZSAmJiB4bWxUdkZpbGUgIT0gJ3hUZVZlIER1bW15Jykgew0KICAgICAgICBpZiAoU0VSVkVSWyd4ZXBnJ11bJ3htbHR2TWFwJ11beG1sVHZGaWxlXS5oYXNPd25Qcm9wZXJ0eShuZXdYbWxUdklkKSkgew0KICAgICAgICAgICAgbG9nbyA9IFNFUlZFUlsneGVwZyddWyd4bWx0dk1hcCddW3htbFR2RmlsZV1bbmV3WG1sVHZJZF1bJ2ljb24nXTsNCiAgICAgICAgfQ0KICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgIGxvZ28gPSBjaGFubmVsWyd0dmctbG9nbyddOw0KICAgICAgICB9DQogICAgICAgIHZhciBsb2dvSW5wdXQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY2hhbm5lbC1pY29uJyk7DQogICAgICAgIGxvZ29JbnB1dC52YWx1ZSA9IGxvZ287DQogICAgICAgIGlmIChCVUxLX0VESVQgPT0gZmFsc2UpIHsNCiAgICAgICAgICAgIGxvZ29JbnB1dC5jbGFzc05hbWUgPSAnY2hhbmdlZCc7DQogICAgICAgIH0NCiAgICB9DQp9DQpmdW5jdGlvbiBzYXZlUG9wdXBEYXRhKGRhdGFUeXBlLCBpZCwgcmVtb3ZlLCBvcHRpb24pIHsNCiAgICBpZiAoZGF0YVR5cGUgPT0gIm1hcHBpbmciKSB7DQogICAgICAgIGxldCBkYXRhID0ge307DQogICAgICAgIGxldCBjbWQgPSAic2F2ZUVwZ01hcHBpbmciOw0KICAgICAgICBkYXRhWyJlcGdNYXBwaW5nIl0gPSBTRVJWRVJbInhlcGciXVsiZXBnTWFwcGluZyJdOw0KICAgICAgICBsZXQgc2VydmVyID0gbmV3IFNlcnZlcihjbWQpOw0KICAgICAgICBzZXJ2ZXIucmVxdWVzdChkYXRhKTsNCiAgICAgICAgZGVsZXRlIFVORE9bImVwZ01hcHBpbmciXTsNCiAgICAgICAgcmV0dXJuOw0KICAgIH0NCiAgICBsZXQgZGl2ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInBvcHVwLWN1c3RvbSIpOw0KICAgIGxldCBpbnB1dHMgPSBkaXYuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlRBQkxFIilbMF0uZ2V0RWxlbWVudHNCeVRhZ05hbWUoIklOUFVUIik7DQogICAgbGV0IHNlbGVjdHMgPSBkaXYuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlRBQkxFIilbMF0uZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlNFTEVDVCIpOw0KICAgIGxldCBpbnB1dCA9IHt9Ow0KICAgIGxldCBjb25maXJtTXNnOw0KICAgIGZvciAobGV0IGkgPSAwOyBpIDwgc2VsZWN0cy5sZW5ndGg7IGkrKykgew0KICAgICAgICB2YXIgbmFtZTsNCiAgICAgICAgbmFtZSA9IHNlbGVjdHNbaV0ubmFtZTsNCiAgICAgICAgdmFyIHZhbHVlID0gc2VsZWN0c1tpXS52YWx1ZTsNCiAgICAgICAgc3dpdGNoIChuYW1lKSB7DQogICAgICAgICAgICBjYXNlICJ0dW5lciI6DQogICAgICAgICAgICAgICAgaW5wdXRbbmFtZV0gPSBwYXJzZUludCh2YWx1ZSk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBkZWZhdWx0Og0KICAgICAgICAgICAgICAgIGlucHV0W25hbWVdID0gdmFsdWU7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIH0NCiAgICB9DQogICAgZm9yIChsZXQgaSA9IDA7IGkgPCBpbnB1dHMubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgc3dpdGNoIChpbnB1dHNbaV0udHlwZSkgew0KICAgICAgICAgICAgY2FzZSAiY2hlY2tib3giOg0KICAgICAgICAgICAgICAgIG5hbWUgPSBpbnB1dHNbaV0ubmFtZTsNCiAgICAgICAgICAgICAgICBpbnB1dFtuYW1lXSA9IGlucHV0c1tpXS5jaGVja2VkOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAidGV4dCI6DQogICAgICAgICAgICBjYXNlICJoaWRkZW4iOg0KICAgICAgICAgICAgY2FzZSAicGFzc3dvcmQiOg0KICAgICAgICAgICAgICAgIG5hbWUgPSBpbnB1dHNbaV0ubmFtZTsNCiAgICAgICAgICAgICAgICBzd2l0Y2ggKG5hbWUpIHsNCiAgICAgICAgICAgICAgICAgICAgY2FzZSAidHVuZXIiOg0KICAgICAgICAgICAgICAgICAgICAgICAgaW5wdXRbbmFtZV0gPSBwYXJzZUludChpbnB1dHNbaV0udmFsdWUpOw0KICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICAgICAgICAgICAgICBpbnB1dFtuYW1lXSA9IGlucHV0c1tpXS52YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgfQ0KICAgIH0NCiAgICBsZXQgZGF0YSA9IHt9Ow0KICAgIGxldCBjbWQ7DQogICAgaWYgKHJlbW92ZSA9PSB0cnVlKSB7DQogICAgICAgIGlucHV0WyJkZWxldGUiXSA9IHRydWU7DQogICAgfQ0KICAgIHN3aXRjaCAoZGF0YVR5cGUpIHsNCiAgICAgICAgY2FzZSAidXNlcnMiOg0KICAgICAgICAgICAgY29uZmlybU1zZyA9ICJEZWxldGUgdGhpcyB1c2VyPyI7DQogICAgICAgICAgICBpZiAoaWQgPT0gIi0iKSB7DQogICAgICAgICAgICAgICAgY21kID0gInNhdmVOZXdVc2VyIjsNCiAgICAgICAgICAgICAgICBkYXRhWyJ1c2VyRGF0YSJdID0gaW5wdXQ7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICBjbWQgPSAic2F2ZVVzZXJEYXRhIjsNCiAgICAgICAgICAgICAgICBsZXQgZCA9IHt9Ow0KICAgICAgICAgICAgICAgIGRbaWRdID0gaW5wdXQ7DQogICAgICAgICAgICAgICAgZGF0YVsidXNlckRhdGEiXSA9IGQ7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSAibTN1IjoNCiAgICAgICAgICAgIGNvbmZpcm1Nc2cgPSAiRGVsZXRlIHRoaXMgcGxheWxpc3Q/IjsNCiAgICAgICAgICAgIHN3aXRjaCAob3B0aW9uKSB7DQogICAgICAgICAgICAgICAgLy8gUG9wdXA6IFNhdmUNCiAgICAgICAgICAgICAgICBjYXNlIDA6DQogICAgICAgICAgICAgICAgICAgIGNtZCA9ICJzYXZlRmlsZXNNM1UiOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICAvLyBQb3B1cDogVXBkYXRlDQogICAgICAgICAgICAgICAgY2FzZSAxOg0KICAgICAgICAgICAgICAgICAgICBjbWQgPSAidXBkYXRlRmlsZU0zVSI7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgZGF0YVsiZmlsZXMiXSA9IHt9Ow0KICAgICAgICAgICAgZGF0YVsiZmlsZXMiXVtkYXRhVHlwZV0gPSB7fTsNCiAgICAgICAgICAgIGRhdGFbImZpbGVzIl1bZGF0YVR5cGVdW2lkXSA9IGlucHV0Ow0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGNhc2UgImhkaHIiOg0KICAgICAgICAgICAgY29uZmlybU1zZyA9ICJEZWxldGUgdGhpcyBIREhvbWVSdW4gdHVuZXI/IjsNCiAgICAgICAgICAgIHN3aXRjaCAob3B0aW9uKSB7DQogICAgICAgICAgICAgICAgLy8gUG9wdXA6IFNhdmUNCiAgICAgICAgICAgICAgICBjYXNlIDA6DQogICAgICAgICAgICAgICAgICAgIGNtZCA9ICJzYXZlRmlsZXNIREhSIjsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgLy8gUG9wdXA6IFVwZGF0ZQ0KICAgICAgICAgICAgICAgIGNhc2UgMToNCiAgICAgICAgICAgICAgICAgICAgY21kID0gInVwZGF0ZUZpbGVIREhSIjsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBkYXRhWyJmaWxlcyJdID0ge307DQogICAgICAgICAgICBkYXRhWyJmaWxlcyJdW2RhdGFUeXBlXSA9IHt9Ow0KICAgICAgICAgICAgZGF0YVsiZmlsZXMiXVtkYXRhVHlwZV1baWRdID0gaW5wdXQ7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSAieG1sdHYiOg0KICAgICAgICAgICAgY29uZmlybU1zZyA9ICJEZWxldGUgdGhpcyBYTUxUViBmaWxlPyI7DQogICAgICAgICAgICBzd2l0Y2ggKG9wdGlvbikgew0KICAgICAgICAgICAgICAgIC8vIFBvcHVwOiBTYXZlDQogICAgICAgICAgICAgICAgY2FzZSAwOg0KICAgICAgICAgICAgICAgICAgICBjbWQgPSAic2F2ZUZpbGVzWE1MVFYiOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICAvLyBQb3B1cDogVXBkYXRlDQogICAgICAgICAgICAgICAgY2FzZSAxOg0KICAgICAgICAgICAgICAgICAgICBjbWQgPSAidXBkYXRlRmlsZVhNTFRWIjsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBkYXRhWyJmaWxlcyJdID0ge307DQogICAgICAgICAgICBkYXRhWyJmaWxlcyJdW2RhdGFUeXBlXSA9IHt9Ow0KICAgICAgICAgICAgZGF0YVsiZmlsZXMiXVtkYXRhVHlwZV1baWRdID0gaW5wdXQ7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSAiZmlsdGVyIjoNCiAgICAgICAgICAgIGNvbmZpcm1Nc2cgPSAiRGVsZXRlIHRoaXMgZmlsdGVyPyI7DQogICAgICAgICAgICBjbWQgPSAic2F2ZUZpbHRlciI7DQogICAgICAgICAgICBkYXRhWyJmaWx0ZXIiXSA9IHt9Ow0KICAgICAgICAgICAgZGF0YVsiZmlsdGVyIl1baWRdID0gaW5wdXQ7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgIHJldHVybjsNCiAgICB9DQogICAgaWYgKHJlbW92ZSA9PSB0cnVlKSB7DQogICAgICAgIGlmICghY29uZmlybShjb25maXJtTXNnKSkgew0KICAgICAgICAgICAgc2hvd0VsZW1lbnQoInBvcHVwIiwgZmFsc2UpOw0KICAgICAgICAgICAgcmV0dXJuOw0KICAgICAgICB9DQogICAgfQ0KICAgIGxldCBzZXJ2ZXIgPSBuZXcgU2VydmVyKGNtZCk7DQogICAgc2VydmVyLnJlcXVlc3QoZGF0YSk7DQp9DQpmdW5jdGlvbiBkb25lUG9wdXBEYXRhKGRhdGFUeXBlLCBpZHNTdHIpIHsNCiAgICBsZXQgaWRzID0gaWRzU3RyLnNwbGl0KCcsJyk7DQogICAgbGV0IGRpdiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJwb3B1cC1jdXN0b20iKTsNCiAgICBsZXQgaW5wdXRzID0gZGl2LmdldEVsZW1lbnRzQnlDbGFzc05hbWUoImNoYW5nZWQiKTsNCiAgICBpZHMuZm9yRWFjaChpZCA9PiB7DQogICAgICAgIGxldCBpbnB1dDsNCiAgICAgICAgaW5wdXQgPSBTRVJWRVJbInhlcGciXVsiZXBnTWFwcGluZyJdW2lkXTsNCiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBpbnB1dHMubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgICAgIGxldCBuYW1lOw0KICAgICAgICAgICAgbGV0IHZhbHVlOw0KICAgICAgICAgICAgc3dpdGNoIChpbnB1dHNbaV0udGFnTmFtZSkgew0KICAgICAgICAgICAgICAgIGNhc2UgIklOUFVUIjoNCiAgICAgICAgICAgICAgICAgICAgc3dpdGNoIChpbnB1dHNbaV0udHlwZSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAiY2hlY2tib3giOg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWUgPSBpbnB1dHNbaV0ubmFtZTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IGlucHV0c1tpXS5jaGVja2VkOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlucHV0W25hbWVdID0gdmFsdWU7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgICAgICAgICBjYXNlICJ0ZXh0IjoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lID0gaW5wdXRzW2ldLm5hbWU7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSBpbnB1dHNbaV0udmFsdWU7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5wdXRbbmFtZV0gPSB2YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBjYXNlICJTRUxFQ1QiOg0KICAgICAgICAgICAgICAgICAgICBuYW1lID0gaW5wdXRzW2ldLm5hbWU7DQogICAgICAgICAgICAgICAgICAgIHZhbHVlID0gaW5wdXRzW2ldLnZhbHVlOw0KICAgICAgICAgICAgICAgICAgICBpbnB1dFtuYW1lXSA9IHZhbHVlOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIHN3aXRjaCAobmFtZSkgew0KICAgICAgICAgICAgICAgIGNhc2UgInR2Zy1sb2dvIjoNCiAgICAgICAgICAgICAgICAgICAgLy8oZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpLmNoaWxkTm9kZXNbMl0uZmlyc3RDaGlsZCBhcyBIVE1MRWxlbWVudCkuc2V0QXR0cmlidXRlKCJzcmMiLCB2YWx1ZSkNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAieC1uYW1lIjoNCiAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpLmNoaWxkTm9kZXNbM10uZmlyc3RDaGlsZC5pbm5lckhUTUwgPSB2YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAieC1jYXRlZ29yeSI6DQogICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5jaGlsZE5vZGVzWzNdLmZpcnN0Q2hpbGQuY2xhc3NOYW1lID0gdmFsdWU7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgInVwZGF0ZS1jaGFubmVsLW5hbWUtcmVnZXgiOg0KICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkuY2hpbGROb2Rlc1s0XS5maXJzdENoaWxkLmlubmVySFRNTCA9IHZhbHVlOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBjYXNlICJ4LWdyb3VwLXRpdGxlIjoNCiAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpLmNoaWxkTm9kZXNbNl0uZmlyc3RDaGlsZC5pbm5lckhUTUwgPSB2YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAieC14bWx0di1maWxlIjoNCiAgICAgICAgICAgICAgICAgICAgaWYgKHZhbHVlICE9ICJ4VGVWZSBEdW1teSIgJiYgdmFsdWUgIT0gIi0iKSB7DQogICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IGdldFZhbHVlRnJvbVByb3ZpZGVyRmlsZSh2YWx1ZSwgInhtbHR2IiwgIm5hbWUiKTsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBpZiAodmFsdWUgPT0gIi0iKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBpbnB1dFsieC1hY3RpdmUiXSA9IGZhbHNlOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5jaGlsZE5vZGVzWzddLmZpcnN0Q2hpbGQuaW5uZXJIVE1MID0gdmFsdWU7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgIngtbWFwcGluZyI6DQogICAgICAgICAgICAgICAgICAgIGlmICh2YWx1ZSA9PSAiLSIpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGlucHV0WyJ4LWFjdGl2ZSJdID0gZmFsc2U7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpLmNoaWxkTm9kZXNbOF0uZmlyc3RDaGlsZC5pbm5lckhUTUwgPSB2YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAieC10aW1lc2hpZnQiOg0KICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkuY2hpbGROb2Rlc1s5XS5maXJzdENoaWxkLmlubmVySFRNTCA9IHZhbHVlOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBkZWZhdWx0Og0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgY3JlYXRlU2VhcmNoT2JqKCk7DQogICAgICAgICAgICBzZWFyY2hJbk1hcHBpbmcoKTsNCiAgICAgICAgfQ0KICAgICAgICBpZiAoaW5wdXRbIngtYWN0aXZlIl0gPT0gZmFsc2UpIHsNCiAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5jbGFzc05hbWUgPSAibm90QWN0aXZlRVBHIjsNCiAgICAgICAgfQ0KICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5jbGFzc05hbWUgPSAiYWN0aXZlRVBHIjsNCiAgICAgICAgfQ0KICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkuY2hpbGROb2Rlc1syXS5maXJzdENoaWxkLnNldEF0dHJpYnV0ZSgic3JjIiwgaW5wdXRbInR2Zy1sb2dvIl0pOw0KICAgIH0pOw0KICAgIHNob3dFbGVtZW50KCJwb3B1cCIsIGZhbHNlKTsNCiAgICByZXR1cm47DQp9DQpmdW5jdGlvbiBzaG93UHJldmlldyhlbGVtZW50KSB7DQogICAgbGV0IGRpdiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJteVN0cmVhbXNCb3giKTsNCiAgICBzd2l0Y2ggKGVsZW1lbnQpIHsNCiAgICAgICAgY2FzZSBmYWxzZToNCiAgICAgICAgICAgIGRpdi5jbGFzc05hbWUgPSAibm90VmlzaWJsZSI7DQogICAgICAgICAgICByZXR1cm47DQogICAgfQ0KICAgIGxldCBzdHJlYW1zID0gWyJhY3RpdmVTdHJlYW1zIiwgImluYWN0aXZlU3RyZWFtcyJdOw0KICAgIHN0cmVhbXMuZm9yRWFjaChwcmV2aWV3ID0+IHsNCiAgICAgICAgbGV0IHRhYmxlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQocHJldmlldyk7DQogICAgICAgIHRhYmxlLmlubmVySFRNTCA9ICIiOw0KICAgICAgICBsZXQgb2JqID0gU0VSVkVSWyJkYXRhIl1bIlN0cmVhbVByZXZpZXdVSSJdW3ByZXZpZXddOw0KICAgICAgICBvYmouZm9yRWFjaChjaGFubmVsID0+IHsNCiAgICAgICAgICAgIGxldCB0ciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlRSIik7DQogICAgICAgICAgICBsZXQgdGRLZXkgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgbGV0IHRkVmFsID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgIHRkS2V5LmNsYXNzTmFtZSA9ICJ0ZEtleSI7DQogICAgICAgICAgICB0ZFZhbC5jbGFzc05hbWUgPSAidGRWYWwiOw0KICAgICAgICAgICAgc3dpdGNoIChwcmV2aWV3KSB7DQogICAgICAgICAgICAgICAgY2FzZSAiYWN0aXZlU3RyZWFtcyI6DQogICAgICAgICAgICAgICAgICAgIHRkS2V5LmlubmVyVGV4dCA9ICJDaGFubmVsOiAoKykiOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBjYXNlICJpbmFjdGl2ZVN0cmVhbXMiOg0KICAgICAgICAgICAgICAgICAgICB0ZEtleS5pbm5lclRleHQgPSAiQ2hhbm5lbDogKC0pIjsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICB9DQogICAgICAgICAgICB0ZFZhbC5pbm5lclRleHQgPSBjaGFubmVsOw0KICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQodGRLZXkpOw0KICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQodGRWYWwpOw0KICAgICAgICAgICAgdGFibGUuYXBwZW5kQ2hpbGQodHIpOw0KICAgICAgICB9KTsNCiAgICB9KTsNCiAgICBzaG93RWxlbWVudCgibG9hZGluZyIsIGZhbHNlKTsNCiAgICBkaXYuY2xhc3NOYW1lID0gInZpc2libGUiOw0KICAgIHJldHVybjsNCn0NCg==" webUI["html/js/network_ts.js"] = "Y2xhc3MgU2VydmVyIHsNCiAgICBjb25zdHJ1Y3RvcihjbWQpIHsNCiAgICAgICAgdGhpcy5jbWQgPSBjbWQ7DQogICAgfQ0KICAgIHJlcXVlc3QoZGF0YSkgew0KICAgICAgICBpZiAoU0VSVkVSX0NPTk5FQ1RJT04gPT0gdHJ1ZSkgew0KICAgICAgICAgICAgcmV0dXJuOw0KICAgICAgICB9DQogICAgICAgIFNFUlZFUl9DT05ORUNUSU9OID0gdHJ1ZTsNCiAgICAgICAgaWYgKHRoaXMuY21kICE9ICJ1cGRhdGVMb2ciKSB7DQogICAgICAgICAgICBzaG93RWxlbWVudCgibG9hZGluZyIsIHRydWUpOw0KICAgICAgICAgICAgVU5ETyA9IG5ldyBPYmplY3QoKTsNCiAgICAgICAgfQ0KICAgICAgICBzd2l0Y2ggKHdpbmRvdy5sb2NhdGlvbi5wcm90b2NvbCkgew0KICAgICAgICAgICAgY2FzZSAiaHR0cDoiOg0KICAgICAgICAgICAgICAgIHRoaXMucHJvdG9jb2wgPSAid3M6Ly8iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiaHR0cHM6IjoNCiAgICAgICAgICAgICAgICB0aGlzLnByb3RvY29sID0gIndzczovLyI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIH0NCiAgICAgICAgdmFyIHVybCA9IHRoaXMucHJvdG9jb2wgKyB3aW5kb3cubG9jYXRpb24uaG9zdG5hbWUgKyAiOiIgKyB3aW5kb3cubG9jYXRpb24ucG9ydCArICIvZGF0YS8iICsgIj9Ub2tlbj0iICsgZ2V0Q29va2llKCJUb2tlbiIpOw0KICAgICAgICBkYXRhWyJjbWQiXSA9IHRoaXMuY21kOw0KICAgICAgICB2YXIgd3MgPSBuZXcgV2ViU29ja2V0KHVybCk7DQogICAgICAgIHdzLm9ub3BlbiA9IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgICAgIFdTX0FWQUlMQUJMRSA9IHRydWU7DQogICAgICAgICAgICB0aGlzLnNlbmQoSlNPTi5zdHJpbmdpZnkoZGF0YSkpOw0KICAgICAgICB9Ow0KICAgICAgICB3cy5vbmVycm9yID0gZnVuY3Rpb24gKHdzRXJyRXZ0KSB7DQogICAgICAgICAgICBjb25zb2xlLmxvZygiTm8gd2Vic29ja2V0IGNvbm5lY3Rpb24gdG8geFRlVmUgY291bGQgYmUgZXN0YWJsaXNoZWQuIENoZWNrIHlvdXIgbmV0d29yayBjb25maWd1cmF0aW9uLiIpOw0KICAgICAgICAgICAgU0VSVkVSX0NPTk5FQ1RJT04gPSBmYWxzZTsNCiAgICAgICAgICAgIGlmIChXU19BVkFJTEFCTEUgPT0gZmFsc2UpIHsNCiAgICAgICAgICAgICAgICBhbGVydCgiTm8gd2Vic29ja2V0IGNvbm5lY3Rpb24gdG8geFRlVmUgY291bGQgYmUgZXN0YWJsaXNoZWQuIENoZWNrIHlvdXIgbmV0d29yayBjb25maWd1cmF0aW9uLiIpOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9Ow0KICAgICAgICB3cy5vbm1lc3NhZ2UgPSBmdW5jdGlvbiAod3NNZXNzYWdlRXZ0KSB7DQogICAgICAgICAgICBTRVJWRVJfQ09OTkVDVElPTiA9IGZhbHNlOw0KICAgICAgICAgICAgc2hvd0VsZW1lbnQoImxvYWRpbmciLCBmYWxzZSk7DQogICAgICAgICAgICBjb25zdCByZXNwb25zZSA9IEpTT04ucGFyc2Uod3NNZXNzYWdlRXZ0LmRhdGEpOw0KICAgICAgICAgICAgaWYgKHJlc3BvbnNlLmhhc093blByb3BlcnR5KCJ0b2tlbiIpKSB7DQogICAgICAgICAgICAgICAgZG9jdW1lbnQuY29va2llID0gIlRva2VuPSIgKyByZXNwb25zZVsidG9rZW4iXTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGlmIChyZXNwb25zZVsic3RhdHVzIl0gPT0gZmFsc2UpIHsNCiAgICAgICAgICAgICAgICBhbGVydChyZXNwb25zZVsiZXJyIl0pOw0KICAgICAgICAgICAgICAgIHJldHVybjsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGlmIChyZXNwb25zZS5oYXNPd25Qcm9wZXJ0eSgnb3BlbkxpbmsnKSkgew0KICAgICAgICAgICAgICAgIHdpbmRvdy5sb2NhdGlvbiA9IHJlc3BvbnNlWydvcGVuTGluayddOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgaWYgKHJlc3BvbnNlLmhhc093blByb3BlcnR5KCJyZWxvYWQiKSkgew0KICAgICAgICAgICAgICAgIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGlmIChyZXNwb25zZS5oYXNPd25Qcm9wZXJ0eSgiYWxlcnQiKSkgew0KICAgICAgICAgICAgICAgIGFsZXJ0KHJlc3BvbnNlWyJhbGVydCJdKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGlmIChyZXNwb25zZS5oYXNPd25Qcm9wZXJ0eSgibG9nb1VSTCIpKSB7DQogICAgICAgICAgICAgICAgdmFyIGRpdiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjaGFubmVsLWljb24iKTsNCiAgICAgICAgICAgICAgICBkaXYudmFsdWUgPSByZXNwb25zZVsibG9nb1VSTCJdOw0KICAgICAgICAgICAgICAgIGRpdi5jbGFzc05hbWUgPSAiY2hhbmdlZCI7DQogICAgICAgICAgICAgICAgcmV0dXJuOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgc3dpdGNoIChkYXRhWyJjbWQiXSkgew0KICAgICAgICAgICAgICAgIGNhc2UgInVwZGF0ZUxvZyI6DQogICAgICAgICAgICAgICAgICAgIFNFUlZFUlsibG9nIl0gPSByZXNwb25zZVsibG9nIl07DQogICAgICAgICAgICAgICAgICAgIGlmIChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29udGVudF9sb2ciKSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgc2hvd0xvZ3MoZmFsc2UpOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIHJldHVybjsNCiAgICAgICAgICAgICAgICBkZWZhdWx0Og0KICAgICAgICAgICAgICAgICAgICBTRVJWRVIgPSBuZXcgT2JqZWN0KCk7DQogICAgICAgICAgICAgICAgICAgIFNFUlZFUiA9IHJlc3BvbnNlOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGlmIChyZXNwb25zZS5oYXNPd25Qcm9wZXJ0eSgib3Blbk1lbnUiKSkgew0KICAgICAgICAgICAgICAgIHZhciBtZW51ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQocmVzcG9uc2VbIm9wZW5NZW51Il0pOw0KICAgICAgICAgICAgICAgIG1lbnUuY2xpY2soKTsNCiAgICAgICAgICAgICAgICBzaG93RWxlbWVudCgicG9wdXAiLCBmYWxzZSk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBpZiAocmVzcG9uc2UuaGFzT3duUHJvcGVydHkoInJlbG9hZCIpKSB7DQogICAgICAgICAgICAgICAgbG9jYXRpb24ucmVsb2FkKCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBpZiAocmVzcG9uc2UuaGFzT3duUHJvcGVydHkoIndpemFyZCIpKSB7DQogICAgICAgICAgICAgICAgY3JlYXRlTGF5b3V0KCk7DQogICAgICAgICAgICAgICAgY29uZmlndXJhdGlvbldpemFyZFtyZXNwb25zZVsid2l6YXJkIl1dLmNyZWF0ZVdpemFyZCgpOw0KICAgICAgICAgICAgICAgIHJldHVybjsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGNyZWF0ZUxheW91dCgpOw0KICAgICAgICB9Ow0KICAgIH0NCn0NCmZ1bmN0aW9uIGdldENvb2tpZShuYW1lKSB7DQogICAgdmFyIHZhbHVlID0gIjsgIiArIGRvY3VtZW50LmNvb2tpZTsNCiAgICB2YXIgcGFydHMgPSB2YWx1ZS5zcGxpdCgiOyAiICsgbmFtZSArICI9Iik7DQogICAgaWYgKHBhcnRzLmxlbmd0aCA9PSAyKSB7DQogICAgICAgIHJldHVybiBwYXJ0cy5wb3AoKS5zcGxpdCgiOyIpLnNoaWZ0KCk7DQogICAgfQ0KfQ0K" - webUI["html/js/settings_ts.js"] = "Y2xhc3MgU2V0dGluZ3NDYXRlZ29yeSB7DQogICAgY29uc3RydWN0b3IoKSB7DQogICAgICAgIHRoaXMuRG9jdW1lbnRJRCA9ICJjb250ZW50X3NldHRpbmdzIjsNCiAgICB9DQogICAgY3JlYXRlQ2F0ZWdvcnlIZWFkbGluZSh2YWx1ZSkgew0KICAgICAgICB2YXIgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIkg0Iik7DQogICAgICAgIGVsZW1lbnQuaW5uZXJIVE1MID0gdmFsdWU7DQogICAgICAgIHJldHVybiBlbGVtZW50Ow0KICAgIH0NCiAgICBjcmVhdGVIUigpIHsNCiAgICAgICAgdmFyIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJIUiIpOw0KICAgICAgICByZXR1cm4gZWxlbWVudDsNCiAgICB9DQogICAgY3JlYXRlU2V0dGluZ3Moc2V0dGluZ3NLZXkpIHsNCiAgICAgICAgdmFyIHNldHRpbmcgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJUUiIpOw0KICAgICAgICB2YXIgY29udGVudCA9IG5ldyBQb3B1cENvbnRlbnQoKTsNCiAgICAgICAgdmFyIGRhdGEgPSBTRVJWRVJbInNldHRpbmdzIl1bc2V0dGluZ3NLZXldOw0KICAgICAgICBzd2l0Y2ggKHNldHRpbmdzS2V5KSB7DQogICAgICAgICAgICAvLyBUZXh0IGlucHV0cw0KICAgICAgICAgICAgY2FzZSAidXBkYXRlIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLnVwZGF0ZS50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsICJ1cGRhdGUiLCBkYXRhLnRvU3RyaW5nKCkpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3suc2V0dGluZ3MudXBkYXRlLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJiYWNrdXAucGF0aCI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5iYWNrdXBQYXRoLnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgImJhY2t1cC5wYXRoIiwgZGF0YSk7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5zZXR0aW5ncy5iYWNrdXBQYXRoLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ0ZW1wLnBhdGgiOg0KICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MudGVtcFBhdGgudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCAidGVtcC5wYXRoIiwgZGF0YSk7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5zZXR0aW5ncy50bXBQYXRoLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ1c2VyLmFnZW50IjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLnVzZXJBZ2VudC50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsICJ1c2VyLmFnZW50IiwgZGF0YSk7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5zZXR0aW5ncy51c2VyQWdlbnQucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImJ1ZmZlci50aW1lb3V0IjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmJ1ZmZlclRpbWVvdXQudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCAiYnVmZmVyLnRpbWVvdXQiLCBkYXRhKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnNldHRpbmdzLmJ1ZmZlclRpbWVvdXQucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImZmbXBlZy5wYXRoIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmZmbXBlZ1BhdGgudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCAiZmZtcGVnLnBhdGgiLCBkYXRhKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnNldHRpbmdzLmZmbXBlZ1BhdGgucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImZmbXBlZy5vcHRpb25zIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmZmbXBlZ09wdGlvbnMudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCAiZmZtcGVnLm9wdGlvbnMiLCBkYXRhKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnNldHRpbmdzLmZmbXBlZ09wdGlvbnMucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInZsYy5wYXRoIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLnZsY1BhdGgudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCAidmxjLnBhdGgiLCBkYXRhKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnNldHRpbmdzLnZsY1BhdGgucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInZsYy5vcHRpb25zIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLnZsY09wdGlvbnMudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCAidmxjLm9wdGlvbnMiLCBkYXRhKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnNldHRpbmdzLnZsY09wdGlvbnMucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIC8vIENoZWNrYm94ZXMNCiAgICAgICAgICAgIGNhc2UgInRsc01vZGUiOg0KICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MudGxzTW9kZS50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChzZXR0aW5nc0tleSk7DQogICAgICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGE7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiYXV0aGVudGljYXRpb24ud2ViIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmF1dGhlbnRpY2F0aW9uV0VCLnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KHNldHRpbmdzS2V5KTsNCiAgICAgICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJhdXRoZW50aWNhdGlvbi5wbXMiOg0KICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MuYXV0aGVudGljYXRpb25QTVMudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goc2V0dGluZ3NLZXkpOw0KICAgICAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImF1dGhlbnRpY2F0aW9uLm0zdSI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5hdXRoZW50aWNhdGlvbk0zVS50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChzZXR0aW5nc0tleSk7DQogICAgICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGE7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiYXV0aGVudGljYXRpb24ueG1sIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmF1dGhlbnRpY2F0aW9uWE1MLnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KHNldHRpbmdzS2V5KTsNCiAgICAgICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJhdXRoZW50aWNhdGlvbi5hcGkiOg0KICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MuYXV0aGVudGljYXRpb25BUEkudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goc2V0dGluZ3NLZXkpOw0KICAgICAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImZpbGVzLnVwZGF0ZSI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5maWxlc1VwZGF0ZS50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChzZXR0aW5nc0tleSk7DQogICAgICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGE7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiY2FjaGUuaW1hZ2VzIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmNhY2hlSW1hZ2VzLnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KHNldHRpbmdzS2V5KTsNCiAgICAgICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ4ZXBnLnJlcGxhY2UubWlzc2luZy5pbWFnZXMiOg0KICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MucmVwbGFjZUVtcHR5SW1hZ2VzLnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KHNldHRpbmdzS2V5KTsNCiAgICAgICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJzdG9yZUJ1ZmZlckluUkFNIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLnN0b3JlQnVmZmVySW5SQU0udGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goc2V0dGluZ3NLZXkpOw0KICAgICAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInh0ZXZlQXV0b1VwZGF0ZSI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy54dGV2ZUF1dG9VcGRhdGUudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goc2V0dGluZ3NLZXkpOw0KICAgICAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImFwaSI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5hcGkudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goc2V0dGluZ3NLZXkpOw0KICAgICAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIC8vIFNlbGVjdA0KICAgICAgICAgICAgY2FzZSAiaG9zdElQIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmhvc3RJUC50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIHRleHQgPSBTRVJWRVJbImlwQWRkcmVzc2VzVjRIb3N0Il07DQogICAgICAgICAgICAgICAgdmFyIHZhbHVlcyA9IFNFUlZFUlsiaXBBZGRyZXNzZXNWNEhvc3QiXTsNCiAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCBkYXRhLCBzZXR0aW5nc0tleSk7DQogICAgICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKHNlbGVjdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ0dW5lciI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy50dW5lci50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIHRleHQgPSBuZXcgQXJyYXkoKTsNCiAgICAgICAgICAgICAgICB2YXIgdmFsdWVzID0gbmV3IEFycmF5KCk7DQogICAgICAgICAgICAgICAgZm9yICh2YXIgaSA9IDE7IGkgPD0gMTAwOyBpKyspIHsNCiAgICAgICAgICAgICAgICAgICAgdGV4dC5wdXNoKGkpOw0KICAgICAgICAgICAgICAgICAgICB2YWx1ZXMucHVzaChpKTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgdmFyIHNlbGVjdCA9IGNvbnRlbnQuY3JlYXRlU2VsZWN0KHRleHQsIHZhbHVlcywgZGF0YSwgc2V0dGluZ3NLZXkpOw0KICAgICAgICAgICAgICAgIHNlbGVjdC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChzZWxlY3QpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiZXBnU291cmNlIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmVwZ1NvdXJjZS50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIHRleHQgPSBbIlBNUyIsICJYRVBHIl07DQogICAgICAgICAgICAgICAgdmFyIHZhbHVlcyA9IFsiUE1TIiwgIlhFUEciXTsNCiAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCBkYXRhLCBzZXR0aW5nc0tleSk7DQogICAgICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKHNlbGVjdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJiYWNrdXAua2VlcCI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5iYWNrdXBLZWVwLnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgdGV4dCA9IFsiNSIsICIxMCIsICIyMCIsICIzMCIsICI0MCIsICI1MCJdOw0KICAgICAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBbIjUiLCAiMTAiLCAiMjAiLCAiMzAiLCAiNDAiLCAiNTAiXTsNCiAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCBkYXRhLCBzZXR0aW5nc0tleSk7DQogICAgICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKHNlbGVjdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJidWZmZXIuc2l6ZS5rYiI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5idWZmZXJTaXplLnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgdGV4dCA9IFsiMC41IE1CIiwgIjEgTUIiLCAiMiBNQiIsICIzIE1CIiwgIjQgTUIiLCAiNSBNQiIsICI2IE1CIiwgIjcgTUIiLCAiOCBNQiJdOw0KICAgICAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBbIjUxMiIsICIxMDI0IiwgIjIwNDgiLCAiMzA3MiIsICI0MDk2IiwgIjUxMjAiLCAiNjE0NCIsICI3MTY4IiwgIjgxOTIiXTsNCiAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCBkYXRhLCBzZXR0aW5nc0tleSk7DQogICAgICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKHNlbGVjdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJidWZmZXIiOg0KICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3Muc3RyZWFtQnVmZmVyaW5nLnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgdGV4dCA9IFsie3suc2V0dGluZ3Muc3RyZWFtQnVmZmVyaW5nLmluZm9fZmFsc2V9fSIsICJ4VGVWZTogKHt7LnNldHRpbmdzLnN0cmVhbUJ1ZmZlcmluZy5pbmZvX3h0ZXZlfX0pIiwgIkZGbXBlZzogKHt7LnNldHRpbmdzLnN0cmVhbUJ1ZmZlcmluZy5pbmZvX2ZmbXBlZ319KSIsICJWTEM6ICh7ey5zZXR0aW5ncy5zdHJlYW1CdWZmZXJpbmcuaW5mb192bGN9fSkiXTsNCiAgICAgICAgICAgICAgICB2YXIgdmFsdWVzID0gWyItIiwgInh0ZXZlIiwgImZmbXBlZyIsICJ2bGMiXTsNCiAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCBkYXRhLCBzZXR0aW5nc0tleSk7DQogICAgICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKHNlbGVjdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ1ZHB4eSI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy51ZHB4eS50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsICJ1ZHB4eSIsIGRhdGEpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3suc2V0dGluZ3MudWRweHkucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgfQ0KICAgICAgICByZXR1cm4gc2V0dGluZzsNCiAgICB9DQogICAgY3JlYXRlRGVzY3JpcHRpb24oc2V0dGluZ3NLZXkpIHsNCiAgICAgICAgdmFyIGRlc2NyaXB0aW9uID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVFIiKTsNCiAgICAgICAgdmFyIHRleHQ7DQogICAgICAgIHN3aXRjaCAoc2V0dGluZ3NLZXkpIHsNCiAgICAgICAgICAgIGNhc2UgInRsc01vZGUiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MudGxzTW9kZS5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImF1dGhlbnRpY2F0aW9uLndlYiI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5hdXRoZW50aWNhdGlvbldFQi5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImF1dGhlbnRpY2F0aW9uLm0zdSI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5hdXRoZW50aWNhdGlvbk0zVS5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImF1dGhlbnRpY2F0aW9uLnBtcyI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5hdXRoZW50aWNhdGlvblBNUy5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImF1dGhlbnRpY2F0aW9uLnhtbCI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5hdXRoZW50aWNhdGlvblhNTC5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImF1dGhlbnRpY2F0aW9uLmFwaSI6DQogICAgICAgICAgICAgICAgaWYgKFNFUlZFUlsic2V0dGluZ3MiXVsiYXV0aGVudGljYXRpb24ud2ViIl0gPT0gdHJ1ZSkgew0KICAgICAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLmF1dGhlbnRpY2F0aW9uQVBJLmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInh0ZXZlQXV0b1VwZGF0ZSI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy54dGV2ZUF1dG9VcGRhdGUuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJiYWNrdXAua2VlcCI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5iYWNrdXBLZWVwLmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiYmFja3VwLnBhdGgiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MuYmFja3VwUGF0aC5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInRlbXAucGF0aCI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy50ZW1wUGF0aC5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImJ1ZmZlciI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5zdHJlYW1CdWZmZXJpbmcuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJidWZmZXIuc2l6ZS5rYiI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5idWZmZXJTaXplLmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAic3RvcmVCdWZmZXJJblJBTSI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5zdG9yZUJ1ZmZlckluUkFNLmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiYnVmZmVyLnRpbWVvdXQiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MuYnVmZmVyVGltZW91dC5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInVzZXIuYWdlbnQiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MudXNlckFnZW50LmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiZmZtcGVnLnBhdGgiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MuZmZtcGVnUGF0aC5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImZmbXBlZy5vcHRpb25zIjoNCiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLmZmbXBlZ09wdGlvbnMuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ2bGMucGF0aCI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy52bGNQYXRoLmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAidmxjLm9wdGlvbnMiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MudmxjT3B0aW9ucy5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImVwZ1NvdXJjZSI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5lcGdTb3VyY2UuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJob3N0SVAiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MuaG9zdElQLmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAidHVuZXIiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MudHVuZXIuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ1cGRhdGUiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MudXBkYXRlLmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiYXBpIjoNCiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLmFwaS5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImZpbGVzLnVwZGF0ZSI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5maWxlc1VwZGF0ZS5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImNhY2hlLmltYWdlcyI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5jYWNoZUltYWdlcy5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInhlcGcucmVwbGFjZS5taXNzaW5nLmltYWdlcyI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5yZXBsYWNlRW1wdHlJbWFnZXMuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ1ZHB4eSI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy51ZHB4eS5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICAgICAgdGV4dCA9ICIiOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICB9DQogICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gIiI7DQogICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgdmFyIHByZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlBSRSIpOw0KICAgICAgICBwcmUuaW5uZXJIVE1MID0gdGV4dDsNCiAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChwcmUpOw0KICAgICAgICBkZXNjcmlwdGlvbi5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICBkZXNjcmlwdGlvbi5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgcmV0dXJuIGRlc2NyaXB0aW9uOw0KICAgIH0NCn0NCmNsYXNzIFNldHRpbmdzQ2F0ZWdvcnlJdGVtIGV4dGVuZHMgU2V0dGluZ3NDYXRlZ29yeSB7DQogICAgY29uc3RydWN0b3IoaGVhZGxpbmUsIHNldHRpbmdzS2V5cykgew0KICAgICAgICBzdXBlcigpOw0KICAgICAgICB0aGlzLmhlYWRsaW5lID0gaGVhZGxpbmU7DQogICAgICAgIHRoaXMuc2V0dGluZ3NLZXlzID0gc2V0dGluZ3NLZXlzOw0KICAgIH0NCiAgICBjcmVhdGVDYXRlZ29yeSgpIHsNCiAgICAgICAgdmFyIGhlYWRsaW5lID0gdGhpcy5jcmVhdGVDYXRlZ29yeUhlYWRsaW5lKHRoaXMuaGVhZGxpbmUpOw0KICAgICAgICB2YXIgc2V0dGluZ3NLZXlzID0gdGhpcy5zZXR0aW5nc0tleXM7DQogICAgICAgIHZhciBkb2MgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCh0aGlzLkRvY3VtZW50SUQpOw0KICAgICAgICBkb2MuYXBwZW5kQ2hpbGQoaGVhZGxpbmUpOw0KICAgICAgICAvLyBDcmVhdGUgYSB0YWJsZSBmb3IgdGhlIGNhdGVnb3J5DQogICAgICAgIHZhciB0YWJsZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlRBQkxFIik7DQogICAgICAgIHZhciBrZXlzID0gc2V0dGluZ3NLZXlzLnNwbGl0KCIsIik7DQogICAgICAgIGtleXMuZm9yRWFjaChzZXR0aW5nc0tleSA9PiB7DQogICAgICAgICAgICBzd2l0Y2ggKHNldHRpbmdzS2V5KSB7DQogICAgICAgICAgICAgICAgY2FzZSAiYXV0aGVudGljYXRpb24ucG1zIjoNCiAgICAgICAgICAgICAgICBjYXNlICJhdXRoZW50aWNhdGlvbi5tM3UiOg0KICAgICAgICAgICAgICAgIGNhc2UgImF1dGhlbnRpY2F0aW9uLnhtbCI6DQogICAgICAgICAgICAgICAgY2FzZSAiYXV0aGVudGljYXRpb24uYXBpIjoNCiAgICAgICAgICAgICAgICAgICAgaWYgKFNFUlZFUlsic2V0dGluZ3MiXVsiYXV0aGVudGljYXRpb24ud2ViIl0gPT0gZmFsc2UpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgICAgICAgICAgdmFyIGl0ZW0gPSB0aGlzLmNyZWF0ZVNldHRpbmdzKHNldHRpbmdzS2V5KTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGRlc2NyaXB0aW9uID0gdGhpcy5jcmVhdGVEZXNjcmlwdGlvbihzZXR0aW5nc0tleSk7DQogICAgICAgICAgICAgICAgICAgIHRhYmxlLmFwcGVuZENoaWxkKGl0ZW0pOw0KICAgICAgICAgICAgICAgICAgICB0YWJsZS5hcHBlbmRDaGlsZChkZXNjcmlwdGlvbik7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9KTsNCiAgICAgICAgZG9jLmFwcGVuZENoaWxkKHRhYmxlKTsNCiAgICAgICAgZG9jLmFwcGVuZENoaWxkKHRoaXMuY3JlYXRlSFIoKSk7DQogICAgfQ0KfQ0KZnVuY3Rpb24gc2hvd1NldHRpbmdzKCkgew0KICAgIGZvciAobGV0IGkgPSAwOyBpIDwgc2V0dGluZ3NDYXRlZ29yeS5sZW5ndGg7IGkrKykgew0KICAgICAgICBzZXR0aW5nc0NhdGVnb3J5W2ldLmNyZWF0ZUNhdGVnb3J5KCk7DQogICAgfQ0KfQ0KZnVuY3Rpb24gc2F2ZVNldHRpbmdzKCkgew0KICAgIHZhciBjbWQgPSAic2F2ZVNldHRpbmdzIjsNCiAgICB2YXIgZGl2ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnRlbnRfc2V0dGluZ3MiKTsNCiAgICB2YXIgc2V0dGluZ3MgPSBkaXYuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSgiY2hhbmdlZCIpOw0KICAgIHZhciBuZXdTZXR0aW5ncyA9IG5ldyBPYmplY3QoKTsNCiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHNldHRpbmdzLmxlbmd0aDsgaSsrKSB7DQogICAgICAgIHZhciBuYW1lOw0KICAgICAgICB2YXIgdmFsdWU7DQogICAgICAgIHN3aXRjaCAoc2V0dGluZ3NbaV0udGFnTmFtZSkgew0KICAgICAgICAgICAgY2FzZSAiSU5QVVQiOg0KICAgICAgICAgICAgICAgIHN3aXRjaCAoc2V0dGluZ3NbaV0udHlwZSkgew0KICAgICAgICAgICAgICAgICAgICBjYXNlICJjaGVja2JveCI6DQogICAgICAgICAgICAgICAgICAgICAgICBuYW1lID0gc2V0dGluZ3NbaV0ubmFtZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlID0gc2V0dGluZ3NbaV0uY2hlY2tlZDsNCiAgICAgICAgICAgICAgICAgICAgICAgIG5ld1NldHRpbmdzW25hbWVdID0gdmFsdWU7DQogICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICAgICAgY2FzZSAidGV4dCI6DQogICAgICAgICAgICAgICAgICAgICAgICBuYW1lID0gc2V0dGluZ3NbaV0ubmFtZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlID0gc2V0dGluZ3NbaV0udmFsdWU7DQogICAgICAgICAgICAgICAgICAgICAgICBzd2l0Y2ggKG5hbWUpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYXNlICJ1cGRhdGUiOg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IHZhbHVlLnNwbGl0KCIsIik7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlID0gdmFsdWUuZmlsdGVyKGZ1bmN0aW9uIChlKSB7IHJldHVybiBlOyB9KTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAiYnVmZmVyLnRpbWVvdXQiOg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IHBhcnNlRmxvYXQodmFsdWUpOw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgbmV3U2V0dGluZ3NbbmFtZV0gPSB2YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgIlNFTEVDVCI6DQogICAgICAgICAgICAgICAgbmFtZSA9IHNldHRpbmdzW2ldLm5hbWU7DQogICAgICAgICAgICAgICAgdmFsdWUgPSBzZXR0aW5nc1tpXS52YWx1ZTsNCiAgICAgICAgICAgICAgICAvLyBJZiB0aGUgdmFsdWUgaXMgYSBudW1iZXIsIHN0b3JlIGl0IGFzIGEgbnVtYmVyDQogICAgICAgICAgICAgICAgaWYgKGlzTmFOKHZhbHVlKSkgew0KICAgICAgICAgICAgICAgICAgICBuZXdTZXR0aW5nc1tuYW1lXSA9IHZhbHVlOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICAgICAgbmV3U2V0dGluZ3NbbmFtZV0gPSBwYXJzZUludCh2YWx1ZSk7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICB9DQogICAgfQ0KICAgIHZhciBkYXRhID0gbmV3IE9iamVjdCgpOw0KICAgIGRhdGFbInNldHRpbmdzIl0gPSBuZXdTZXR0aW5nczsNCiAgICB2YXIgc2VydmVyID0gbmV3IFNlcnZlcihjbWQpOw0KICAgIHNlcnZlci5yZXF1ZXN0KGRhdGEpOw0KfQ0K" - webUI["html/lang/en.json"] = "ew0KICAibWFpbk1lbnUiOg0KICB7DQogICAgIml0ZW0iOg0KICAgIHsNCiAgICAgICJwbGF5bGlzdCI6ICJQbGF5bGlzdCIsDQogICAgICAicG1zSUQiOiAiUE1TIElEIiwNCiAgICAgICJmaWx0ZXIiOiAiRmlsdGVyIiwNCiAgICAgICJ4bWx0diI6ICJYTUxUViIsDQogICAgICAibWFwcGluZyI6ICJNYXBwaW5nIiwNCiAgICAgICJ1c2VycyI6ICJVc2VycyIsDQogICAgICAic2V0dGluZ3MiOiAiU2V0dGluZ3MiLA0KICAgICAgImxvZyI6ICJMb2ciLA0KICAgICAgImxvZ291dCI6ICJMb2dvdXQiDQogICAgfSwNCiAgICAiaGVhZGxpbmUiOg0KICAgIHsNCiAgICAgICJwbGF5bGlzdCI6ICJMb2NhbCBvciByZW1vdGUgcGxheWxpc3RzIiwNCiAgICAgICJmaWx0ZXIiOiAiRmlsdGVyIHBsYXlsaXN0IiwNCiAgICAgICJ4bWx0diI6ICJMb2NhbCBvciByZW1vdGUgWE1MVFYgZmlsZXMiLA0KICAgICAgIm1hcHBpbmciOiAiTWFwIHBsYXlsaXN0IGNoYW5uZWxzIHRvIEVQRyBjaGFubmVscyIsDQogICAgICAidXNlcnMiOiAiVXNlciBtYW5hZ2VtZW50IiwNCiAgICAgICJzZXR0aW5ncyI6ICJTZXR0aW5ncyIsDQogICAgICAibG9nIjogIkxvZyIsDQogICAgICAibG9nb3V0IjogIkxvZ291dCINCiAgICB9DQogIH0sDQogICJjb25maXJtIjoNCiAgew0KICAgICJyZXN0b3JlIjogIkFsbCBkYXRhIHdpbGwgYmUgcmVwbGFjZWQgd2l0aCB0aG9zZSBmcm9tIHRoZSBiYWNrdXAuIFNob3VsZCB0aGUgZmlsZXMgYmUgcmVzdG9yZWQ/Ig0KICB9LA0KICAiYWxlcnQiOg0KICB7DQogICAgImZpbGVMb2FkaW5nRXJyb3IiOiAiRmlsZSBjb3VsZG4ndCBiZSBsb2FkZWQiLA0KICAgICJpbnZhbGlkQ2hhbm5lbE51bWJlciI6ICJJbnZhbGlkIGNoYW5uZWwgbnVtYmVyIiwNCiAgICAibWlzc2luZ0lucHV0IjogIk1pc3NpbmcgaW5wdXQiDQogIH0sDQogICJidXR0b24iOg0KICB7DQogICAgImJhY2siOiAiQmFjayIsDQogICAgImJhY2t1cCI6ICJCYWNrdXAiLA0KICAgICJidWxrRWRpdCI6ICJCdWxrIEVkaXQiLA0KICAgICJjYW5jZWwiOiAiQ2FuY2VsIiwNCiAgICAiZGVsZXRlIjogIkRlbGV0ZSIsDQogICAgImRvbmUiOiAiRG9uZSIsDQogICAgImxvZ2luIjogIkxvZ2luIiwNCiAgICAibmV3IjogIk5ldyIsDQogICAgIm5leHQiOiAiTmV4dCIsDQogICAgInJlc3RvcmUiOiAiUmVzdG9yZSIsDQogICAgInNhdmUiOiAiU2F2ZSIsDQogICAgInNlYXJjaCI6ICJTZWFyY2giLA0KICAgICJ1cGRhdGUiOiAiVXBkYXRlIiwNCiAgICAiY3JhZXRlQWNjb3VudCI6ICJDcmVhdGUgQWNjb3VudCIsDQogICAgInJlc2V0TG9ncyI6ICJSZXNldCBMb2dzIiwNCiAgICAidXBsb2FkTG9nbyI6ICJVcGxvYWQgTG9nbyINCiAgfSwNCiAgImZpbHRlciI6DQogIHsNCiAgICAidGFibGUiOg0KICAgIHsNCiAgICAgICJzdGFydGluZ0NoYW5uZWwiOiAiU3RhcnRpbmcgQ2guIE5vLiIsDQogICAgICAibmFtZSI6ICJGaWx0ZXIgTmFtZSIsDQogICAgICAidHlwZSI6ICJGaWx0ZXIgVHlwZSIsDQogICAgICAiZmlsdGVyIjogIkZpbHRlciINCiAgICB9LA0KICAgICJjdXN0b20iOiAiQ3VzdG9tIiwNCiAgICAiZ3JvdXAiOiAiTTNVIEdyb3VwIiwNCiAgICAibmFtZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIkZpbHRlciBOYW1lIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJGaWx0ZXIgbmFtZSIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgImRlc2NyaXB0aW9uIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiRGVzY3JpcHRpb24iLA0KICAgICAgInBsYWNlaG9sZGVyIjogIkRlc2NyaXB0aW9uIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAidHlwZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIlR5cGUiLA0KICAgICAgImdyb3VwVGl0bGUiOiAiR3JvdXAgVGl0bGUiLA0KICAgICAgImN1c3RvbUZpbHRlciI6ICJDdXN0b20gRmlsdGVyIg0KICAgIH0sDQogICAgImNhc2VTZW5zaXRpdmUiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJDYXNlIFNlbnNpdGl2ZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAiZmlsdGVyUnVsZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIkZpbHRlciBSdWxlIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJTcG9ydCB7SER9ICF7RVMsSVR9IiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAiZmlsdGVyR3JvdXAiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJHcm91cCBUaXRsZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJTZWxlY3QgYSBNM1UgZ3JvdXAuIChDb3VudGVyKTxicj5DaGFuZ2luZyB0aGUgZ3JvdXAgdGl0bGUgaW4gdGhlIE0zVSBpbnZhbGlkYXRlcyB0aGUgZmlsdGVyLiINCiAgICB9LA0KICAgICJpbmNsdWRlIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiSW5jbHVkZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiRkhELFVIRCIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiQ2hhbm5lbCBuYW1lIG11c3QgaW5jbHVkZS48YnI+KENvbW1hIHNlcGFyYXRlZCkgQ29tbWEgbWVhbnMgb3IiDQogICAgfSwNCiAgICAiZXhjbHVkZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIkV4Y2x1ZGUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIkVTLElUIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJDaGFubmVsIG5hbWUgbXVzdCBub3QgY29udGFpbi48YnI+KENvbW1hIHNlcGFyYXRlZCkgQ29tbWEgbWVhbnMgb3IiDQogICAgfSwNCiAgICAicHJlc2VydmVNYXBwaW5nIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiUHJlc2VydmUgRXhpc3RpbmcgTTNVPGJyPkNoYW5uZWwgTnVtYmVycyIsDQogICAgICAicGFsY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJQcmVzZXJ2ZSBleGlzdGluZyBNM1UgcGxheWxpc3QgY2hhbm5lbCBudW1iZXJzPyINCiAgICB9LA0KICAgICJzdGFydGluZ0NoYW5uZWwiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJTdGFydGluZyBDaGFubmVsIE51bWJlciIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAiZGVmYXVsdE1pc3NpbmdFUEciOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJGaWxsIE1pc3NpbmcgRVBHIERhdGEiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiV2hlbiB0aGVyZSBpcyBubyBtYXRjaGluZyBFUEcgZGF0YSBmb3IgY2hhbm5lbCwgPGJyPmF1dG9maWxsIHdpdGggeFRlVmUgZHVtbXkgRVBHIGRhdGE/Ig0KICAgIH0NCg0KICB9LA0KICAicGxheWxpc3QiOg0KICB7DQogICAgInRhYmxlIjoNCiAgICB7DQogICAgICAicGxheWxpc3QiOiAiUGxheWxpc3QiLA0KICAgICAgInR1bmVyIjogIlR1bmVyIiwNCiAgICAgICJsYXN0VXBkYXRlIjogIkxhc3QgVXBkYXRlIiwNCiAgICAgICJhdmFpbGFiaWxpdHkiOiAiQXZhaWxhYmlsaXR5IiwNCiAgICAgICJ0eXBlIjogIlR5cGUiLA0KICAgICAgInN0cmVhbXMiOiAiU3RyZWFtcyIsDQogICAgICAiZ3JvdXBUaXRsZSI6ICJncm91cC10aXRsZSIsDQogICAgICAidHZnSUQiOiAidHZnLWlkIiwNCiAgICAgICJ1bmlxdWVJRCI6ICJVbmlxdWUgSUQiDQogICAgfSwNCiAgICAicGxheWxpc3RUeXBlIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiUGxheWxpc3QgdHlwZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAidHlwZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIlR5cGUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgIm5hbWUiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJOYW1lIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJQbGF5bGlzdCBuYW1lIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAiZGVzY3JpcHRpb24iOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJEZXNjcmlwdGlvbiIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiRGVzY3JpcHRpb24iLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJmaWxlTTNVIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiTTNVIEZpbGUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIkZpbGUgcGF0aCBvciBVUkwgb2YgdGhlIE0zVSIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgImZpbGVIREhSIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiSERIb21lUnVuIElQIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJJUCBhZGRyZXNzIGFuZCBwb3J0ICgxOTIuMTY4LjEuMTA6NTAwNCkiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJ0dW5lciI6DQogICAgew0KICAgICAgInRpdGxlIjogIlR1bmVyIC8gU3RyZWFtcyIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJOdW1iZXIgb2YgcGFyYWxsZWwgY29ubmVjdGlvbnMgdGhhdCBjYW4gYmUgZXN0YWJsaXNoZWQgdG8gdGhlIHByb3ZpZGVyLiA8YnI+T25seSBhdmFpbGFibGUgd2l0aCBhY3RpdmF0ZWQgYnVmZmVyLjxicj5OZXcgc2V0dGluZ3Mgd2lsbCBvbmx5IGJlIGFwcGxpZWQgYWZ0ZXIgcXVpdHRpbmcgYWxsIHN0cmVhbXMuIg0KICAgIH0NCiAgfSwNCiAgInhtbHR2IjoNCiAgew0KICAgICJ0YWJsZSI6DQogICAgew0KICAgICAgImd1aWRlIjogIkd1aWRlIiwNCiAgICAgICJsYXN0VXBkYXRlIjogIkxhc3QgVXBkYXRlIiwNCiAgICAgICJhdmFpbGFiaWxpdHkiOiAiQXZhaWxhYmlsaXR5IiwNCiAgICAgICJjaGFubmVscyI6ICJDaGFubmVscyIsDQogICAgICAicHJvZ3JhbXMiOiAiUHJvZ3JhbXMiDQogICAgfSwNCiAgICAibmFtZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIk5hbWUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIkd1aWRlIG5hbWUiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJkZXNjcmlwdGlvbiI6DQogICAgew0KICAgICAgInRpdGxlIjogIkRlc2NyaXB0aW9uIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJEZXNjcmlwdGlvbiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgImZpbGVYTUxUViI6DQogICAgew0KICAgICAgInRpdGxlIjogIlhNTFRWIEZpbGUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIkZpbGUgcGF0aCBvciBVUkwgb2YgdGhlIFhNTFRWIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfQ0KICB9LA0KICAibWFwcGluZyI6DQogIHsNCiAgICAidGFibGUiOg0KICAgIHsNCiAgICAgICJjaE5vIjogIkNoLiBOby4iLA0KICAgICAgImxvZ28iOiAiTG9nbyIsDQogICAgICAiY2hhbm5lbE5hbWUiOiAiQ2hhbm5lbCBOYW1lIiwNCiAgICAgICJ1cGRhdGVDaGFubmVsTmFtZVJlZ2V4IjogIlVwZC4gUnguIiwNCiAgICAgICJwbGF5bGlzdCI6ICJQbGF5bGlzdCIsDQogICAgICAiZ3JvdXBUaXRsZSI6ICJHcm91cCBUaXRsZSIsDQogICAgICAieG1sdHZGaWxlIjogIlhNTFRWIEZpbGUiLA0KICAgICAgInhtbHR2SUQiOiAiWE1MVFYgSUQiLA0KICAgICAgInRpbWVzaGlmdCI6ICJUaW1lc2hpZnQiDQogICAgfSwNCiAgICAiYWN0aXZlIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiQWN0aXZlIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJjaGFubmVsTmFtZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIkNoYW5uZWwgTmFtZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAiZGVzY3JpcHRpb24iOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJDaGFubmVsIERlc2NyaXB0aW9uIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJVc2VkIGJ5IHRoZSBEdW1teSBhcyBhbiBYTUwgZGVzY3JpcHRpb24iLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJ1cGRhdGVDaGFubmVsTmFtZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIlVwZGF0ZSBDaGFubmVsIE5hbWUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgInVwZGF0ZUNoYW5uZWxOYW1lUmVnZXgiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJDaGFubmVsIG5hbWUgdXBkYXRlIHJlZ2V4IiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJGb3IgZXhhbXBsZSBeUFBWWyBcXFxcLV9dPzEuKiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiT24gdXBkYXRlLCBpZiBhbnkgbmV3IGNoYW5uZWwgbmFtZSBtYXRjaGVzIHRoaXMgcmVnZXgsIHJlbmFtZSBjdXJyZW50IGNoYW5uZWwgdG8gdGhlIGZpcnN0IG1hdGNoaW5nIG5hbWUiDQogICAgfSwNCiAgICAidXBkYXRlQ2hhbm5lbE5hbWVCeUdyb3VwUmVnZXgiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJPbmx5IGJ5IGdyb3VwIHJlZ2V4IiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIlJlbmFtZSB0aGlzIGNoYW5uZWwgb25seSBpZiBjdXJyZW50IHVzZXItZGVmaW5lZCBncm91cCBtYXRjaGVzIHRoaXMgcmVnZXgiDQogICAgfSwNCiAgICAidXBkYXRlQ2hhbm5lbEdyb3VwIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiVXBkYXRlIENoYW5uZWwgR3JvdXAiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiSWYgY2hlY2tlZCwgdXNlIGdyb3VwIGZyb20gdGhlIGRhdGFiYXNlIg0KICAgIH0sDQogICAgImNoYW5uZWxMb2dvIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiTG9nbyBVUkwiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgInVwZGF0ZUNoYW5uZWxMb2dvIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiVXBkYXRlIENoYW5uZWwgTG9nbyIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAiZXBnQ2F0ZWdvcnkiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJFUEcgQ2F0ZWdvcnkiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgIm0zdUdyb3VwVGl0bGUiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJHcm91cCBUaXRsZSAoeHRldmUubTN1KSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAieG1sdHZGaWxlIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiWE1MVFYgRmlsZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAieG1sdHZDaGFubmVsIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiWE1MVFYgQ2hhbm5lbCIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAidGltZXNoaWZ0IjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiVGltZXNoaWZ0IiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIwIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfQ0KICB9LA0KICAidXNlcnMiOg0KICB7DQogICAgInRhYmxlIjoNCiAgICB7DQogICAgICAidXNlcm5hbWUiOiAiVXNlcm5hbWUiLA0KICAgICAgInBhc3N3b3JkIjogIlBhc3N3b3JkIiwNCiAgICAgICJ3ZWIiOiAiV0VCIiwNCiAgICAgICJwbXMiOiAiUE1TIiwNCiAgICAgICJtM3UiOiAiTTNVIiwNCiAgICAgICJ4bWwiOiAiWE1MIiwNCiAgICAgICJhcGkiOiAiQVBJIg0KICAgIH0sDQogICAgInVzZXJuYW1lIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiVXNlcm5hbWUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIlVzZXJuYW1lIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAicGFzc3dvcmQiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJQYXNzd29yZCIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiUGFzc3dvcmQiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJjb25maXJtIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiQ29uZmlybSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiUGFzc3dvcmQgY29uZmlybSIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgIndlYiI6DQogICAgew0KICAgICAgInRpdGxlIjogIldlYiBBY2Nlc3MiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgInBtcyI6DQogICAgew0KICAgICAgInRpdGxlIjogIlBNUyBBY2Nlc3MiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgIm0zdSI6DQogICAgew0KICAgICAgInRpdGxlIjogIk0zVSBBY2Nlc3MiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgInhtbCI6DQogICAgew0KICAgICAgInRpdGxlIjogIlhNTCBBY2Nlc3MiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgImFwaSI6DQogICAgew0KICAgICAgInRpdGxlIjogIkFQSSBBY2Nlc3MiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0NCiAgfSwNCiAgInNldHRpbmdzIjoNCiAgew0KICAgICJjYXRlZ29yeSI6DQogICAgew0KICAgICAgImdlbmVyYWwiOiAiR2VuZXJhbCIsDQogICAgICAiZmlsZXMiOiAiRmlsZXMiLA0KICAgICAgInN0cmVhbWluZyI6ICJTdHJlYW1pbmciLA0KICAgICAgImJhY2t1cCI6ICJCYWNrdXAiLA0KICAgICAgImF1dGhlbnRpY2F0aW9uIjogIkF1dGhlbnRpY2F0aW9uIg0KICAgIH0sDQogICAgInVwZGF0ZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIlNjaGVkdWxlIGZvciB1cGRhdGluZyAoUGxheWxpc3QsIFhNTFRWLCBCYWNrdXApIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIwMDAwLDEwMDAsMjAwMCIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiVGltZSBpbiAyNCBob3VyIGZvcm1hdCAoMDgwMCA9IDg6MDAgYW0pLiBNb3JlIHRpbWVzIGNhbiBiZSBlbnRlcmVkIGNvbW1hIHNlcGFyYXRlZC4gTGVhdmUgdGhpcyBmaWVsZCBlbXB0eSBpZiBubyB1cGRhdGVzIGFyZSB0byBiZSBjYXJyaWVkIG91dC4iDQogICAgfSwNCiAgICAiYXBpIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiQVBJIEludGVyZmFjZSIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiVmlhIEFQSSBpbnRlcmZhY2UgaXQgaXMgcG9zc2libGUgdG8gc2VuZCBjb21tYW5kcyB0byB4VGVWZS4gQVBJIGRvY3VtZW50YXRpb24gaXMgPGEgaHJlZj0naHR0cHM6Ly9naXRodWIuY29tL3h0ZXZlLXByb2plY3QveFRlVmUtRG9jdW1lbnRhdGlvbi9ibG9iL21hc3Rlci9lbi9jb25maWd1cmF0aW9uLm1kI2FwaSc+aGVyZTwvYT4iDQogICAgfSwNCiAgICAiZXBnU291cmNlIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiRVBHIFNvdXJjZSIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiUE1TOjxicj4tIFVzZSBFUEcgZGF0YSBmcm9tIFBsZXggb3IgRW1ieSA8YnI+PGJyPlhFUEc6PGJyPi0gVXNlIG9mIG9uZSBvciBtb3JlIFhNTFRWIGZpbGVzPGJyPi0gQ2hhbm5lbCBtYW5hZ2VtZW50PGJyPi0gTTNVIC8gWE1MVFYgZXhwb3J0IChIVFRQIGxpbmsgZm9yIElQVFYgYXBwcykiDQogICAgfSwNCiAgICAidHVuZXIiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJOdW1iZXIgb2YgVHVuZXJzIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJOdW1iZXIgb2YgcGFyYWxsZWwgY29ubmVjdGlvbnMgdGhhdCBjYW4gYmUgZXN0YWJsaXNoZWQgdG8gdGhlIHByb3ZpZGVyLjxicj5BdmFpbGFibGUgZm9yOiBQbGV4LCBFbWJ5IChIREhSKSwgTTNVICh3aXRoIGFjdGl2ZSBidWZmZXIpLjxicj5BZnRlciBhIGNoYW5nZSwgeFRlVmUgbXVzdCBiZSBkZWxldGUgaW4gdGhlIFBsZXggLyBFbWJ5IERWUiBzZXR0aW5ncyBhbmQgc2V0IHVwIGFnYWluLiINCiAgICB9LA0KICAgICJob3N0SVAiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJIb3N0IElQIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJJUCBhZGRyZXNzIHhUZVZlIHdpbGwgdXNlIHRvIGZvcm0gTTNVIGFuZCBYTUxUViBmaWxlcyINCiAgICB9LA0KICAgICJ0bHNNb2RlIjogew0KICAgICAgInRpdGxlIjogIlRMUyAoSFRUUFMpIG1vZGUiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIkNoYW5nZXMgd2ViIHNlcnZlciBwcm90b2NvbCB0byBIVFRQUy48YnI+Rm9yIGRldGFpbHMsIHNlZSA8YT5odHRwczovL2dpdGh1Yi5jb20vU0NQMDAyL3hUZVZlI3Rscy1tb2RlPC9hPiINCiAgICB9LA0KICAgICJmaWxlc1VwZGF0ZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIlVwZGF0ZXMgYWxsIGZpbGVzIGF0IHN0YXJ0dXAiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIlVwZGF0ZXMgYWxsIHBsYXlsaXN0cywgdHVuZXIgYW5kIFhNTFRWIGZpbGVzIGF0IHN0YXJ0dXAuIg0KICAgIH0sDQogICAgImNhY2hlSW1hZ2VzIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiSW1hZ2UgQ2FjaGluZyIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiQWxsIGltYWdlcyBmcm9tIHRoZSBYTUxUViBmaWxlIGFyZSBjYWNoZWQsIGFsbG93aW5nIGZhc3RlciByZW5kZXJpbmcgb2YgdGhlIGdyaWQgaW4gdGhlIGNsaWVudC48YnI+RG93bmxvYWRpbmcgdGhlIGltYWdlcyBtYXkgdGFrZSBhIHdoaWxlIGFuZCB3aWxsIGJlIGRvbmUgaW4gdGhlIGJhY2tncm91bmQuIg0KICAgIH0sDQogICAgInJlcGxhY2VFbXB0eUltYWdlcyI6DQogICAgew0KICAgICAgInRpdGxlIjogIlJlcGxhY2UgbWlzc2luZyBwcm9ncmFtIGltYWdlcyIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiSWYgdGhlIHBvc3RlciBpbiB0aGUgWE1MVFYgcHJvZ3JhbSBpcyBtaXNzaW5nLCB0aGUgY2hhbm5lbCBsb2dvIHdpbGwgYmUgdXNlZC4iDQogICAgfSwNCiAgICAieHRldmVBdXRvVXBkYXRlIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiQXV0b21hdGljIHVwZGF0ZSBvZiB4VGVWZSIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiSWYgYSBuZXcgdmVyc2lvbiBvZiB4VGVWZSBpcyBhdmFpbGFibGUsIGl0IHdpbGwgYmUgYXV0b21hdGljYWxseSBpbnN0YWxsZWQuIFRoZSB1cGRhdGVzIGFyZSBkb3dubG9hZGVkIGZyb20gR2l0SHViLiINCiAgICB9LA0KICAgICJzdHJlYW1CdWZmZXJpbmciOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJTdHJlYW0gQnVmZmVyIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJGdW5jdGlvbnMgb2YgdGhlIGJ1ZmZlcjo8YnI+LSBUaGUgc3RyZWFtIGlzIHBhc3NlZCBmcm9tIHhUZVZlLCBGRm1wZWcgb3IgVkxDIHRvIFBsZXgsIEVtYnkgb3IgTTNVIFBsYXllcjxicj4tIFNtYWxsIGplcmtpbmcgb2YgdGhlIHN0cmVhbXMgY2FuIGJlIGNvbXBlbnNhdGVkPGJyPi0gSExTIC8gTTNVOCBzdXBwb3J0PGJyPi0gUlRQIC8gUlRQUyBzdXBwb3J0IChvbmx5IEZGbXBlZyBvciBWTEMpPGJyPi0gUmUtc3RyZWFtaW5nPGJyPi0gU2VwYXJhdGUgdHVuZXIgbGltaXQgZm9yIGVhY2ggcGxheWxpc3QiLA0KICAgICAgImluZm9fZmFsc2UiOiAiTm8gQnVmZmVyIChDbGllbnQgY29ubmVjdHMgdG8gdGhlIHN0cmVhbWluZyBzZXJ2ZXIpIiwNCiAgICAgICJpbmZvX3h0ZXZlIjogInhUZVZlIGNvbm5lY3RzIHRvIHRoZSBzdHJlYW1pbmcgc2VydmVyIiwNCiAgICAgICJpbmZvX2ZmbXBlZyI6ICJGRm1wZWcgY29ubmVjdHMgdG8gdGhlIHN0cmVhbWluZyBzZXJ2ZXIiLA0KICAgICAgImluZm9fdmxjIjogIlZMQyBjb25uZWN0cyB0byB0aGUgc3RyZWFtaW5nIHNlcnZlciINCg0KICAgIH0sDQogICAgInVkcHh5IjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiVURQeHkgYWRkcmVzcyIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiVGhlIGFkZHJlc3Mgb2YgeW91ciBVRFB4eSBzZXJ2ZXIuIElmIHNldCwgYW5kIHRoZSBjaGFubmVsIFVSTHMgaW4gdGhlIG0zdSBpcyBtdWx0aWNhc3QsIHhUZVZlIHdpbGwgcmV3cml0ZSBpdCBzbyB0aGF0IGl0IGlzIGFjY2Vzc2VkIHZpYSB0aGUgVURQeHkgc2VydmljZS4iLA0KICAgICAgInBsYWNlaG9sZGVyIjogImhvc3Q6cG9ydCINCiAgICB9LA0KICAgICJmZm1wZWdQYXRoIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiRkZtcGVnIEJpbmFyeSBQYXRoIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJQYXRoIHRvIEZGbXBlZyBiaW5hcnkuIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIvcGF0aC90by9mZm1wZWciDQogICAgfSwNCiAgICAiZmZtcGVnT3B0aW9ucyI6DQogICAgew0KICAgICAgInRpdGxlIjogIkZGbXBlZyBPcHRpb25zIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJGRm1wZWcgb3B0aW9ucy48YnI+T25seSBjaGFuZ2UgaWYgeW91IGtub3cgd2hhdCB5b3UgYXJlIGRvaW5nLjxicj5MZWF2ZSBibGFuayB0byBzZXQgZGVmYXVsdCBzZXR0aW5ncy4iLA0KICAgICAgInBsYWNlaG9sZGVyIjogIkxlYXZlIGJsYW5rIHRvIHNldCBkZWZhdWx0IHNldHRpbmdzIg0KICAgIH0sDQogICAgInZsY1BhdGgiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJWTEMgLyBDVkxDIEJpbmFyeSBQYXRoIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJQYXRoIHRvIFZMQyAvIENWTEMgYmluYXJ5LiIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiL3BhdGgvdG8vY3ZsYyINCiAgICB9LA0KICAgICJ2bGNPcHRpb25zIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiVkxDIC8gQ1ZMQyBPcHRpb25zIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJWTEMgLyBDVkxDIG9wdGlvbnMuPGJyPk9ubHkgY2hhbmdlIGlmIHlvdSBrbm93IHdoYXQgeW91IGFyZSBkb2luZy48YnI+TGVhdmUgYmxhbmsgdG8gc2V0IGRlZmF1bHQgc2V0dGluZ3MuIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJMZWF2ZSBibGFuayB0byBzZXQgZGVmYXVsdCBzZXR0aW5ncyINCiAgICB9LA0KICAgICJidWZmZXJTaXplIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiQnVmZmVyIFNpemUiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIkJ1ZmZlciBzaXplIGluIE1CLjxicj5NM1U4OiBJZiB0aGUgVFMgc2VnbWVudCBzbWFsbGVyIHRoZW4gdGhlIGJ1ZmZlciBzaXplLCB0aGUgZmlsZSBzaXplIG9mIHRoZSBzZWdtZW50IGlzIHVzZWQuIg0KICAgIH0sDQogICAgInN0b3JlQnVmZmVySW5SQU0iOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJTdG9yZSBidWZmZXIgaW4gUkFNIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJJZiBjaGVja2VkLCB3cml0ZSBidWZmZXIgdG8gUkFNIGluc3RlYWQgb2Ygd3JpdGluZyB0byBkaXNrIg0KICAgIH0sDQogICAgImJ1ZmZlclRpbWVvdXQiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJUaW1lb3V0IGZvciBuZXcgY2xpZW50IGNvbm5lY3Rpb25zIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJUaGUgeFRlVmUgYnVmZmVyIHdhaXRzIHVudGlsIG5ldyBjbGllbnQgY29ubmVjdGlvbnMgYXJlIGVzdGFibGlzaGVkLiBIZWxwZnVsIGZvciBmYXN0IGNoYW5uZWwgc3dpdGNoaW5nLiBWYWx1ZSBpbiBtaWxsaXNlY29uZHMuIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIxMDAiDQogICAgfSwNCiAgICAidXNlckFnZW50IjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiVXNlciBBZ2VudCIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiVXNlciBBZ2VudCBmb3IgSFRUUCByZXF1ZXN0cy4gRm9yIGV2ZXJ5IEhUVFAgY29ubmVjdGlvbiwgdGhpcyB2YWx1ZSBpcyB1c2VkIGZvciB0aGUgdXNlciBhZ2VudC4gU2hvdWxkIG9ubHkgYmUgY2hhbmdlZCBpZiB4VGVWZSBpcyBibG9ja2VkLiIsDQogICAgICAicGxhY2Vob2xkZXIiOiAieFRlVmUiDQogICAgfSwNCiAgICAiYmFja3VwUGF0aCI6DQogICAgew0KICAgICAgInRpdGxlIjogIkxvY2F0aW9uIGZvciBhdXRvbWF0aWMgYmFja3VwcyIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiL21udC9kYXRhL2JhY2t1cC94dGV2ZS8iLA0KICAgICAgImRlc2NyaXB0aW9uIjogIkJlZm9yZSBhbnkgdXBkYXRlIG9mIHRoZSBwcm92aWRlciBkYXRhIGJ5IHRoZSBzY2hlZHVsZSwgeFRlVmUgY3JlYXRlcyBhIGJhY2t1cC4gVGhlIHBhdGggZm9yIHRoZSBhdXRvbWF0aWMgYmFja3VwcyBjYW4gYmUgY2hhbmdlZC4geFRlVmUgcmVxdWlyZXMgd3JpdGUgcGVybWlzc2lvbiBmb3IgdGhpcyBmb2xkZXIuIg0KICAgIH0sDQogICAgInRlbXBQYXRoIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiTG9jYXRpb24gZm9yIHRoZSB0ZW1wb3JhcnkgZmlsZXMiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIi90bXAveHRldmUvIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJMb2NhdGlvbiBmb3IgdGhlIGJ1ZmZlciBmaWxlcy4iDQogICAgfSwNCiAgICAiYmFja3VwS2VlcCI6DQogICAgew0KICAgICAgInRpdGxlIjogIk51bWJlciBvZiBiYWNrdXBzIHRvIGtlZXAiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIk51bWJlciBvZiBiYWNrdXBzIHRvIGtlZXAuIE9sZGVyIGJhY2t1cHMgYXJlIGF1dG9tYXRpY2FsbHkgZGVsZXRlZC4iDQogICAgfSwNCiAgICAiYXV0aGVudGljYXRpb25XRUIiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJXRUIgQXV0aGVudGljYXRpb24iLA0KICAgICAgImRlc2NyaXB0aW9uIjogIkFjY2VzcyB0byB0aGUgd2ViIGludGVyZmFjZSBvbmx5IHBvc3NpYmxlIHdpdGggY3JlZGVudGlhbHMuIg0KICAgIH0sDQogICAgImF1dGhlbnRpY2F0aW9uUE1TIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiUE1TIEF1dGhlbnRpY2F0aW9uIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJQbGV4IHJlcXVlc3RzIGFyZSBvbmx5IHBvc3NpYmxlIHdpdGggYXV0aGVudGljYXRpb24uIDxicj48Yj5XYXJuaW5nISEhPC9iPiBBZnRlciBhY3RpdmF0aW5nIHRoaXMgZnVuY3Rpb24geFRlVmUgbXVzdCBiZSBkZWxldGUgaW4gdGhlIFBNUyBEVlIgc2V0dGluZ3MgYW5kIHNldCB1cCBhZ2Fpbi4iDQogICAgfSwNCiAgICAiYXV0aGVudGljYXRpb25NM1UiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJNM1UgQXV0aGVudGljYXRpb24iLA0KICAgICAgImRlc2NyaXB0aW9uIjogIkRvd25sb2FkaW5nIHRoZSB4dGV2ZS5tM3UgZmlsZSB2aWEgYW4gSFRUUCByZXF1ZXN0IGlzIG9ubHkgcG9zc2libGUgd2l0aCBhdXRoZW50aWNhdGlvbi4iDQogICAgfSwNCiAgICAiYXV0aGVudGljYXRpb25YTUwiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJYTUwgQXV0aGVudGljYXRpb24iLA0KICAgICAgImRlc2NyaXB0aW9uIjogIkRvd25sb2FkaW5nIHRoZSB4dGV2ZS54bWwgZmlsZSB2aWEgYW4gSFRUUCByZXF1ZXN0IGlzIG9ubHkgcG9zc2libGUgd2l0aCBhdXRoZW50aWNhdGlvbiINCiAgICB9LA0KICAgICJhdXRoZW50aWNhdGlvbkFQSSI6DQogICAgew0KICAgICAgInRpdGxlIjogIkFQSSBBdXRoZW50aWNhdGlvbiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiQWNjZXNzIHRvIHRoZSBBUEkgaW50ZXJmYWNlIGlzIG9ubHkgcG9zc2libGUgd2l0aCBhdXRoZW50aWNhdGlvbi4iDQogICAgfQ0KICB9LA0KICAid2l6YXJkIjoNCiAgew0KICAgICJlcGdTb3VyY2UiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJFUEcgU291cmNlIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJQTVM6PGJyPi0gVXNlIEVQRyBkYXRhIGZyb20gUGxleCBvciBFbWJ5IDxicj48YnI+WEVQRzo8YnI+LSBVc2Ugb2Ygb25lIG9yIG1vcmUgWE1MVFYgZmlsZXM8YnI+LSBDaGFubmVsIG1hbmFnZW1lbnQ8YnI+LSBNM1UgLyBYTUxUViBleHBvcnQgKEhUVFAgbGluayBmb3IgSVBUViBhcHBzKSINCiAgICB9LA0KICAgICJ0dW5lciI6DQogICAgew0KICAgICAgInRpdGxlIjogIk51bWJlciBvZiB0dW5lcnMiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIk51bWJlciBvZiBwYXJhbGxlbCBjb25uZWN0aW9ucyB0aGF0IGNhbiBiZSBlc3RhYmxpc2hlZCB0byB0aGUgcHJvdmlkZXIuPGJyPkF2YWlsYWJsZSBmb3I6IFBsZXgsIEVtYnkgKEhESFIpLCBNM1UgKHdpdGggYWN0aXZlIGJ1ZmZlcikuPGJyPkFmdGVyIGEgY2hhbmdlLCB4VGVWZSBtdXN0IGJlIGRlbGV0ZSBpbiB0aGUgUGxleCAvIEVtYnkgRFZSIHNldHRpbmdzIGFuZCBzZXQgdXAgYWdhaW4uIg0KICAgIH0sDQogICAgIm0zdSI6DQogICAgew0KICAgICAgInRpdGxlIjogIk0zVSBQbGF5bGlzdCIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiRmlsZSBwYXRoIG9yIFVSTCBvZiB0aGUgTTNVIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJMb2NhbCBvciByZW1vdGUgcGxheWxpc3RzIg0KICAgIH0sDQogICAgInhtbHR2IjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiWE1MVFYgRmlsZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiRmlsZSBwYXRoIG9yIFVSTCBvZiB0aGUgWE1MVFYiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIkxvY2FsIG9yIHJlbW90ZSBYTUxUViBmaWxlIg0KICAgIH0NCiAgfSwNCiAgImxvZ2luIjoNCiAgew0KICAgICJmYWlsZWQiOiAiVXNlciBhdXRoZW50aWNhdGlvbiBmYWlsZWQiLA0KICAgICJoZWFkbGluZSI6ICJMb2dpbiIsDQogICAgInVzZXJuYW1lIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiVXNlcm5hbWUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIlVzZXJuYW1lIg0KICAgIH0sDQogICAgInBhc3N3b3JkIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiUGFzc3dvcmQiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIlBhc3N3b3JkIg0KICAgIH0NCiAgfSwNCiAgImFjY291bnQiOg0KICB7DQogICAgImZhaWxlZCI6ICJQYXNzd29yZCBkb2VzIG5vdCBtYXRjaCIsDQogICAgImhlYWRsaW5lIjogIkNyZWF0ZSB1c2VyIGFjY291bnQiLA0KICAgICJ1c2VybmFtZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIlVzZXJuYW1lIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJVc2VybmFtZSINCiAgICB9LA0KICAgICJwYXNzd29yZCI6DQogICAgew0KICAgICAgInRpdGxlIjogIlBhc3N3b3JkIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJQYXNzd29yZCINCiAgICB9LA0KICAgICJjb25maXJtIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiQ29uZmlybSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiQ29uZmlybSINCiAgICB9DQogIH0NCn0=" + webUI["html/js/settings_ts.js"] = "Y2xhc3MgU2V0dGluZ3NDYXRlZ29yeSB7DQogICAgY29uc3RydWN0b3IoKSB7DQogICAgICAgIHRoaXMuRG9jdW1lbnRJRCA9ICJjb250ZW50X3NldHRpbmdzIjsNCiAgICB9DQogICAgY3JlYXRlQ2F0ZWdvcnlIZWFkbGluZSh2YWx1ZSkgew0KICAgICAgICB2YXIgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIkg0Iik7DQogICAgICAgIGVsZW1lbnQuaW5uZXJIVE1MID0gdmFsdWU7DQogICAgICAgIHJldHVybiBlbGVtZW50Ow0KICAgIH0NCiAgICBjcmVhdGVIUigpIHsNCiAgICAgICAgdmFyIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJIUiIpOw0KICAgICAgICByZXR1cm4gZWxlbWVudDsNCiAgICB9DQogICAgY3JlYXRlU2V0dGluZ3Moc2V0dGluZ3NLZXkpIHsNCiAgICAgICAgdmFyIHNldHRpbmcgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJUUiIpOw0KICAgICAgICB2YXIgY29udGVudCA9IG5ldyBQb3B1cENvbnRlbnQoKTsNCiAgICAgICAgdmFyIGRhdGEgPSBTRVJWRVJbInNldHRpbmdzIl1bc2V0dGluZ3NLZXldOw0KICAgICAgICBzd2l0Y2ggKHNldHRpbmdzS2V5KSB7DQogICAgICAgICAgICAvLyBUZXh0IGlucHV0cw0KICAgICAgICAgICAgY2FzZSAidXBkYXRlIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLnVwZGF0ZS50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsICJ1cGRhdGUiLCBkYXRhLnRvU3RyaW5nKCkpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3suc2V0dGluZ3MudXBkYXRlLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJiYWNrdXAucGF0aCI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5iYWNrdXBQYXRoLnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgImJhY2t1cC5wYXRoIiwgZGF0YSk7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5zZXR0aW5ncy5iYWNrdXBQYXRoLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ0ZW1wLnBhdGgiOg0KICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MudGVtcFBhdGgudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCAidGVtcC5wYXRoIiwgZGF0YSk7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5zZXR0aW5ncy50bXBQYXRoLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ1c2VyLmFnZW50IjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLnVzZXJBZ2VudC50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsICJ1c2VyLmFnZW50IiwgZGF0YSk7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5zZXR0aW5ncy51c2VyQWdlbnQucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImJ1ZmZlci50aW1lb3V0IjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmJ1ZmZlclRpbWVvdXQudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCAiYnVmZmVyLnRpbWVvdXQiLCBkYXRhKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnNldHRpbmdzLmJ1ZmZlclRpbWVvdXQucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImZmbXBlZy5wYXRoIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmZmbXBlZ1BhdGgudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCAiZmZtcGVnLnBhdGgiLCBkYXRhKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnNldHRpbmdzLmZmbXBlZ1BhdGgucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImZmbXBlZy5vcHRpb25zIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmZmbXBlZ09wdGlvbnMudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCAiZmZtcGVnLm9wdGlvbnMiLCBkYXRhKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnNldHRpbmdzLmZmbXBlZ09wdGlvbnMucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInZsYy5wYXRoIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLnZsY1BhdGgudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCAidmxjLnBhdGgiLCBkYXRhKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnNldHRpbmdzLnZsY1BhdGgucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInZsYy5vcHRpb25zIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLnZsY09wdGlvbnMudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCAidmxjLm9wdGlvbnMiLCBkYXRhKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnNldHRpbmdzLnZsY09wdGlvbnMucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIC8vIENoZWNrYm94ZXMNCiAgICAgICAgICAgIGNhc2UgInRsc01vZGUiOg0KICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MudGxzTW9kZS50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChzZXR0aW5nc0tleSk7DQogICAgICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGE7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiZGlzYWxsb3dVUkxEdXBsaWNhdGVzIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmRpc2FsbG93VVJMRHVwbGljYXRlcy50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChzZXR0aW5nc0tleSk7DQogICAgICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGE7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiYXV0aGVudGljYXRpb24ud2ViIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmF1dGhlbnRpY2F0aW9uV0VCLnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KHNldHRpbmdzS2V5KTsNCiAgICAgICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJhdXRoZW50aWNhdGlvbi5wbXMiOg0KICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MuYXV0aGVudGljYXRpb25QTVMudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goc2V0dGluZ3NLZXkpOw0KICAgICAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImF1dGhlbnRpY2F0aW9uLm0zdSI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5hdXRoZW50aWNhdGlvbk0zVS50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChzZXR0aW5nc0tleSk7DQogICAgICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGE7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiYXV0aGVudGljYXRpb24ueG1sIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmF1dGhlbnRpY2F0aW9uWE1MLnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KHNldHRpbmdzS2V5KTsNCiAgICAgICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJhdXRoZW50aWNhdGlvbi5hcGkiOg0KICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MuYXV0aGVudGljYXRpb25BUEkudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goc2V0dGluZ3NLZXkpOw0KICAgICAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImZpbGVzLnVwZGF0ZSI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5maWxlc1VwZGF0ZS50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChzZXR0aW5nc0tleSk7DQogICAgICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGE7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiY2FjaGUuaW1hZ2VzIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmNhY2hlSW1hZ2VzLnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KHNldHRpbmdzS2V5KTsNCiAgICAgICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ4ZXBnLnJlcGxhY2UubWlzc2luZy5pbWFnZXMiOg0KICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MucmVwbGFjZUVtcHR5SW1hZ2VzLnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KHNldHRpbmdzS2V5KTsNCiAgICAgICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJzdG9yZUJ1ZmZlckluUkFNIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLnN0b3JlQnVmZmVySW5SQU0udGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goc2V0dGluZ3NLZXkpOw0KICAgICAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInh0ZXZlQXV0b1VwZGF0ZSI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy54dGV2ZUF1dG9VcGRhdGUudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goc2V0dGluZ3NLZXkpOw0KICAgICAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImFwaSI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5hcGkudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goc2V0dGluZ3NLZXkpOw0KICAgICAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIC8vIFNlbGVjdA0KICAgICAgICAgICAgY2FzZSAiaG9zdElQIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmhvc3RJUC50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIHRleHQgPSBTRVJWRVJbImlwQWRkcmVzc2VzVjRIb3N0Il07DQogICAgICAgICAgICAgICAgdmFyIHZhbHVlcyA9IFNFUlZFUlsiaXBBZGRyZXNzZXNWNEhvc3QiXTsNCiAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCBkYXRhLCBzZXR0aW5nc0tleSk7DQogICAgICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKHNlbGVjdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ0dW5lciI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy50dW5lci50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIHRleHQgPSBuZXcgQXJyYXkoKTsNCiAgICAgICAgICAgICAgICB2YXIgdmFsdWVzID0gbmV3IEFycmF5KCk7DQogICAgICAgICAgICAgICAgZm9yICh2YXIgaSA9IDE7IGkgPD0gMTAwOyBpKyspIHsNCiAgICAgICAgICAgICAgICAgICAgdGV4dC5wdXNoKGkpOw0KICAgICAgICAgICAgICAgICAgICB2YWx1ZXMucHVzaChpKTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgdmFyIHNlbGVjdCA9IGNvbnRlbnQuY3JlYXRlU2VsZWN0KHRleHQsIHZhbHVlcywgZGF0YSwgc2V0dGluZ3NLZXkpOw0KICAgICAgICAgICAgICAgIHNlbGVjdC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChzZWxlY3QpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiZXBnU291cmNlIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmVwZ1NvdXJjZS50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIHRleHQgPSBbIlBNUyIsICJYRVBHIl07DQogICAgICAgICAgICAgICAgdmFyIHZhbHVlcyA9IFsiUE1TIiwgIlhFUEciXTsNCiAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCBkYXRhLCBzZXR0aW5nc0tleSk7DQogICAgICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKHNlbGVjdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJiYWNrdXAua2VlcCI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5iYWNrdXBLZWVwLnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgdGV4dCA9IFsiNSIsICIxMCIsICIyMCIsICIzMCIsICI0MCIsICI1MCJdOw0KICAgICAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBbIjUiLCAiMTAiLCAiMjAiLCAiMzAiLCAiNDAiLCAiNTAiXTsNCiAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCBkYXRhLCBzZXR0aW5nc0tleSk7DQogICAgICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKHNlbGVjdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJidWZmZXIuc2l6ZS5rYiI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5idWZmZXJTaXplLnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgdGV4dCA9IFsiMC41IE1CIiwgIjEgTUIiLCAiMiBNQiIsICIzIE1CIiwgIjQgTUIiLCAiNSBNQiIsICI2IE1CIiwgIjcgTUIiLCAiOCBNQiJdOw0KICAgICAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBbIjUxMiIsICIxMDI0IiwgIjIwNDgiLCAiMzA3MiIsICI0MDk2IiwgIjUxMjAiLCAiNjE0NCIsICI3MTY4IiwgIjgxOTIiXTsNCiAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCBkYXRhLCBzZXR0aW5nc0tleSk7DQogICAgICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKHNlbGVjdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJidWZmZXIiOg0KICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3Muc3RyZWFtQnVmZmVyaW5nLnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgdGV4dCA9IFsie3suc2V0dGluZ3Muc3RyZWFtQnVmZmVyaW5nLmluZm9fZmFsc2V9fSIsICJ4VGVWZTogKHt7LnNldHRpbmdzLnN0cmVhbUJ1ZmZlcmluZy5pbmZvX3h0ZXZlfX0pIiwgIkZGbXBlZzogKHt7LnNldHRpbmdzLnN0cmVhbUJ1ZmZlcmluZy5pbmZvX2ZmbXBlZ319KSIsICJWTEM6ICh7ey5zZXR0aW5ncy5zdHJlYW1CdWZmZXJpbmcuaW5mb192bGN9fSkiXTsNCiAgICAgICAgICAgICAgICB2YXIgdmFsdWVzID0gWyItIiwgInh0ZXZlIiwgImZmbXBlZyIsICJ2bGMiXTsNCiAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCBkYXRhLCBzZXR0aW5nc0tleSk7DQogICAgICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKHNlbGVjdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ1ZHB4eSI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy51ZHB4eS50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsICJ1ZHB4eSIsIGRhdGEpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3suc2V0dGluZ3MudWRweHkucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgfQ0KICAgICAgICByZXR1cm4gc2V0dGluZzsNCiAgICB9DQogICAgY3JlYXRlRGVzY3JpcHRpb24oc2V0dGluZ3NLZXkpIHsNCiAgICAgICAgdmFyIGRlc2NyaXB0aW9uID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVFIiKTsNCiAgICAgICAgdmFyIHRleHQ7DQogICAgICAgIHN3aXRjaCAoc2V0dGluZ3NLZXkpIHsNCiAgICAgICAgICAgIGNhc2UgInRsc01vZGUiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MudGxzTW9kZS5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImRpc2FsbG93VVJMRHVwbGljYXRlcyI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5kaXNhbGxvd1VSTER1cGxpY2F0ZXMuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJhdXRoZW50aWNhdGlvbi53ZWIiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MuYXV0aGVudGljYXRpb25XRUIuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJhdXRoZW50aWNhdGlvbi5tM3UiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MuYXV0aGVudGljYXRpb25NM1UuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJhdXRoZW50aWNhdGlvbi5wbXMiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MuYXV0aGVudGljYXRpb25QTVMuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJhdXRoZW50aWNhdGlvbi54bWwiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MuYXV0aGVudGljYXRpb25YTUwuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJhdXRoZW50aWNhdGlvbi5hcGkiOg0KICAgICAgICAgICAgICAgIGlmIChTRVJWRVJbInNldHRpbmdzIl1bImF1dGhlbnRpY2F0aW9uLndlYiJdID09IHRydWUpIHsNCiAgICAgICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5hdXRoZW50aWNhdGlvbkFQSS5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ4dGV2ZUF1dG9VcGRhdGUiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MueHRldmVBdXRvVXBkYXRlLmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiYmFja3VwLmtlZXAiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MuYmFja3VwS2VlcC5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImJhY2t1cC5wYXRoIjoNCiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLmJhY2t1cFBhdGguZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ0ZW1wLnBhdGgiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MudGVtcFBhdGguZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJidWZmZXIiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3Muc3RyZWFtQnVmZmVyaW5nLmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiYnVmZmVyLnNpemUua2IiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MuYnVmZmVyU2l6ZS5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInN0b3JlQnVmZmVySW5SQU0iOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3Muc3RvcmVCdWZmZXJJblJBTS5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImJ1ZmZlci50aW1lb3V0IjoNCiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLmJ1ZmZlclRpbWVvdXQuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ1c2VyLmFnZW50IjoNCiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLnVzZXJBZ2VudC5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImZmbXBlZy5wYXRoIjoNCiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLmZmbXBlZ1BhdGguZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJmZm1wZWcub3B0aW9ucyI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5mZm1wZWdPcHRpb25zLmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAidmxjLnBhdGgiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MudmxjUGF0aC5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInZsYy5vcHRpb25zIjoNCiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLnZsY09wdGlvbnMuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJlcGdTb3VyY2UiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MuZXBnU291cmNlLmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiaG9zdElQIjoNCiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLmhvc3RJUC5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInR1bmVyIjoNCiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLnR1bmVyLmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAidXBkYXRlIjoNCiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLnVwZGF0ZS5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImFwaSI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5hcGkuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJmaWxlcy51cGRhdGUiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MuZmlsZXNVcGRhdGUuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJjYWNoZS5pbWFnZXMiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MuY2FjaGVJbWFnZXMuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ4ZXBnLnJlcGxhY2UubWlzc2luZy5pbWFnZXMiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MucmVwbGFjZUVtcHR5SW1hZ2VzLmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAidWRweHkiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MudWRweHkuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBkZWZhdWx0Og0KICAgICAgICAgICAgICAgIHRleHQgPSAiIjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgfQ0KICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICIiOw0KICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgIHZhciBwcmUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJQUkUiKTsNCiAgICAgICAgcHJlLmlubmVySFRNTCA9IHRleHQ7DQogICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQocHJlKTsNCiAgICAgICAgZGVzY3JpcHRpb24uYXBwZW5kQ2hpbGQodGRMZWZ0KTsNCiAgICAgICAgZGVzY3JpcHRpb24uYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgIHJldHVybiBkZXNjcmlwdGlvbjsNCiAgICB9DQp9DQpjbGFzcyBTZXR0aW5nc0NhdGVnb3J5SXRlbSBleHRlbmRzIFNldHRpbmdzQ2F0ZWdvcnkgew0KICAgIGNvbnN0cnVjdG9yKGhlYWRsaW5lLCBzZXR0aW5nc0tleXMpIHsNCiAgICAgICAgc3VwZXIoKTsNCiAgICAgICAgdGhpcy5oZWFkbGluZSA9IGhlYWRsaW5lOw0KICAgICAgICB0aGlzLnNldHRpbmdzS2V5cyA9IHNldHRpbmdzS2V5czsNCiAgICB9DQogICAgY3JlYXRlQ2F0ZWdvcnkoKSB7DQogICAgICAgIHZhciBoZWFkbGluZSA9IHRoaXMuY3JlYXRlQ2F0ZWdvcnlIZWFkbGluZSh0aGlzLmhlYWRsaW5lKTsNCiAgICAgICAgdmFyIHNldHRpbmdzS2V5cyA9IHRoaXMuc2V0dGluZ3NLZXlzOw0KICAgICAgICB2YXIgZG9jID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQodGhpcy5Eb2N1bWVudElEKTsNCiAgICAgICAgZG9jLmFwcGVuZENoaWxkKGhlYWRsaW5lKTsNCiAgICAgICAgLy8gQ3JlYXRlIGEgdGFibGUgZm9yIHRoZSBjYXRlZ29yeQ0KICAgICAgICB2YXIgdGFibGUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJUQUJMRSIpOw0KICAgICAgICB2YXIga2V5cyA9IHNldHRpbmdzS2V5cy5zcGxpdCgiLCIpOw0KICAgICAgICBrZXlzLmZvckVhY2goc2V0dGluZ3NLZXkgPT4gew0KICAgICAgICAgICAgc3dpdGNoIChzZXR0aW5nc0tleSkgew0KICAgICAgICAgICAgICAgIGNhc2UgImF1dGhlbnRpY2F0aW9uLnBtcyI6DQogICAgICAgICAgICAgICAgY2FzZSAiYXV0aGVudGljYXRpb24ubTN1IjoNCiAgICAgICAgICAgICAgICBjYXNlICJhdXRoZW50aWNhdGlvbi54bWwiOg0KICAgICAgICAgICAgICAgIGNhc2UgImF1dGhlbnRpY2F0aW9uLmFwaSI6DQogICAgICAgICAgICAgICAgICAgIGlmIChTRVJWRVJbInNldHRpbmdzIl1bImF1dGhlbnRpY2F0aW9uLndlYiJdID09IGZhbHNlKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICAgICAgICAgIHZhciBpdGVtID0gdGhpcy5jcmVhdGVTZXR0aW5ncyhzZXR0aW5nc0tleSk7DQogICAgICAgICAgICAgICAgICAgIHZhciBkZXNjcmlwdGlvbiA9IHRoaXMuY3JlYXRlRGVzY3JpcHRpb24oc2V0dGluZ3NLZXkpOw0KICAgICAgICAgICAgICAgICAgICB0YWJsZS5hcHBlbmRDaGlsZChpdGVtKTsNCiAgICAgICAgICAgICAgICAgICAgdGFibGUuYXBwZW5kQ2hpbGQoZGVzY3JpcHRpb24pOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfSk7DQogICAgICAgIGRvYy5hcHBlbmRDaGlsZCh0YWJsZSk7DQogICAgICAgIGRvYy5hcHBlbmRDaGlsZCh0aGlzLmNyZWF0ZUhSKCkpOw0KICAgIH0NCn0NCmZ1bmN0aW9uIHNob3dTZXR0aW5ncygpIHsNCiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHNldHRpbmdzQ2F0ZWdvcnkubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgc2V0dGluZ3NDYXRlZ29yeVtpXS5jcmVhdGVDYXRlZ29yeSgpOw0KICAgIH0NCn0NCmZ1bmN0aW9uIHNhdmVTZXR0aW5ncygpIHsNCiAgICB2YXIgY21kID0gInNhdmVTZXR0aW5ncyI7DQogICAgdmFyIGRpdiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb250ZW50X3NldHRpbmdzIik7DQogICAgdmFyIHNldHRpbmdzID0gZGl2LmdldEVsZW1lbnRzQnlDbGFzc05hbWUoImNoYW5nZWQiKTsNCiAgICB2YXIgbmV3U2V0dGluZ3MgPSBuZXcgT2JqZWN0KCk7DQogICAgZm9yIChsZXQgaSA9IDA7IGkgPCBzZXR0aW5ncy5sZW5ndGg7IGkrKykgew0KICAgICAgICB2YXIgbmFtZTsNCiAgICAgICAgdmFyIHZhbHVlOw0KICAgICAgICBzd2l0Y2ggKHNldHRpbmdzW2ldLnRhZ05hbWUpIHsNCiAgICAgICAgICAgIGNhc2UgIklOUFVUIjoNCiAgICAgICAgICAgICAgICBzd2l0Y2ggKHNldHRpbmdzW2ldLnR5cGUpIHsNCiAgICAgICAgICAgICAgICAgICAgY2FzZSAiY2hlY2tib3giOg0KICAgICAgICAgICAgICAgICAgICAgICAgbmFtZSA9IHNldHRpbmdzW2ldLm5hbWU7DQogICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IHNldHRpbmdzW2ldLmNoZWNrZWQ7DQogICAgICAgICAgICAgICAgICAgICAgICBuZXdTZXR0aW5nc1tuYW1lXSA9IHZhbHVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgICAgIGNhc2UgInRleHQiOg0KICAgICAgICAgICAgICAgICAgICAgICAgbmFtZSA9IHNldHRpbmdzW2ldLm5hbWU7DQogICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IHNldHRpbmdzW2ldLnZhbHVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgc3dpdGNoIChuYW1lKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAidXBkYXRlIjoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSB2YWx1ZS5zcGxpdCgiLCIpOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IHZhbHVlLmZpbHRlcihmdW5jdGlvbiAoZSkgeyByZXR1cm4gZTsgfSk7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgImJ1ZmZlci50aW1lb3V0IjoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSBwYXJzZUZsb2F0KHZhbHVlKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgIG5ld1NldHRpbmdzW25hbWVdID0gdmFsdWU7DQogICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJTRUxFQ1QiOg0KICAgICAgICAgICAgICAgIG5hbWUgPSBzZXR0aW5nc1tpXS5uYW1lOw0KICAgICAgICAgICAgICAgIHZhbHVlID0gc2V0dGluZ3NbaV0udmFsdWU7DQogICAgICAgICAgICAgICAgLy8gSWYgdGhlIHZhbHVlIGlzIGEgbnVtYmVyLCBzdG9yZSBpdCBhcyBhIG51bWJlcg0KICAgICAgICAgICAgICAgIGlmIChpc05hTih2YWx1ZSkpIHsNCiAgICAgICAgICAgICAgICAgICAgbmV3U2V0dGluZ3NbbmFtZV0gPSB2YWx1ZTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgZWxzZSB7DQogICAgICAgICAgICAgICAgICAgIG5ld1NldHRpbmdzW25hbWVdID0gcGFyc2VJbnQodmFsdWUpOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgfQ0KICAgIH0NCiAgICB2YXIgZGF0YSA9IG5ldyBPYmplY3QoKTsNCiAgICBkYXRhWyJzZXR0aW5ncyJdID0gbmV3U2V0dGluZ3M7DQogICAgdmFyIHNlcnZlciA9IG5ldyBTZXJ2ZXIoY21kKTsNCiAgICBzZXJ2ZXIucmVxdWVzdChkYXRhKTsNCn0NCg==" + webUI["html/lang/en.json"] = "ew0KICAibWFpbk1lbnUiOg0KICB7DQogICAgIml0ZW0iOg0KICAgIHsNCiAgICAgICJwbGF5bGlzdCI6ICJQbGF5bGlzdCIsDQogICAgICAicG1zSUQiOiAiUE1TIElEIiwNCiAgICAgICJmaWx0ZXIiOiAiRmlsdGVyIiwNCiAgICAgICJ4bWx0diI6ICJYTUxUViIsDQogICAgICAibWFwcGluZyI6ICJNYXBwaW5nIiwNCiAgICAgICJ1c2VycyI6ICJVc2VycyIsDQogICAgICAic2V0dGluZ3MiOiAiU2V0dGluZ3MiLA0KICAgICAgImxvZyI6ICJMb2ciLA0KICAgICAgImxvZ291dCI6ICJMb2dvdXQiDQogICAgfSwNCiAgICAiaGVhZGxpbmUiOg0KICAgIHsNCiAgICAgICJwbGF5bGlzdCI6ICJMb2NhbCBvciByZW1vdGUgcGxheWxpc3RzIiwNCiAgICAgICJmaWx0ZXIiOiAiRmlsdGVyIHBsYXlsaXN0IiwNCiAgICAgICJ4bWx0diI6ICJMb2NhbCBvciByZW1vdGUgWE1MVFYgZmlsZXMiLA0KICAgICAgIm1hcHBpbmciOiAiTWFwIHBsYXlsaXN0IGNoYW5uZWxzIHRvIEVQRyBjaGFubmVscyIsDQogICAgICAidXNlcnMiOiAiVXNlciBtYW5hZ2VtZW50IiwNCiAgICAgICJzZXR0aW5ncyI6ICJTZXR0aW5ncyIsDQogICAgICAibG9nIjogIkxvZyIsDQogICAgICAibG9nb3V0IjogIkxvZ291dCINCiAgICB9DQogIH0sDQogICJjb25maXJtIjoNCiAgew0KICAgICJyZXN0b3JlIjogIkFsbCBkYXRhIHdpbGwgYmUgcmVwbGFjZWQgd2l0aCB0aG9zZSBmcm9tIHRoZSBiYWNrdXAuIFNob3VsZCB0aGUgZmlsZXMgYmUgcmVzdG9yZWQ/Ig0KICB9LA0KICAiYWxlcnQiOg0KICB7DQogICAgImZpbGVMb2FkaW5nRXJyb3IiOiAiRmlsZSBjb3VsZG4ndCBiZSBsb2FkZWQiLA0KICAgICJpbnZhbGlkQ2hhbm5lbE51bWJlciI6ICJJbnZhbGlkIGNoYW5uZWwgbnVtYmVyIiwNCiAgICAibWlzc2luZ0lucHV0IjogIk1pc3NpbmcgaW5wdXQiDQogIH0sDQogICJidXR0b24iOg0KICB7DQogICAgImJhY2siOiAiQmFjayIsDQogICAgImJhY2t1cCI6ICJCYWNrdXAiLA0KICAgICJidWxrRWRpdCI6ICJCdWxrIEVkaXQiLA0KICAgICJjYW5jZWwiOiAiQ2FuY2VsIiwNCiAgICAiZGVsZXRlIjogIkRlbGV0ZSIsDQogICAgImRvbmUiOiAiRG9uZSIsDQogICAgImxvZ2luIjogIkxvZ2luIiwNCiAgICAibmV3IjogIk5ldyIsDQogICAgIm5leHQiOiAiTmV4dCIsDQogICAgInJlc3RvcmUiOiAiUmVzdG9yZSIsDQogICAgInNhdmUiOiAiU2F2ZSIsDQogICAgInNlYXJjaCI6ICJTZWFyY2giLA0KICAgICJ1cGRhdGUiOiAiVXBkYXRlIiwNCiAgICAiY3JhZXRlQWNjb3VudCI6ICJDcmVhdGUgQWNjb3VudCIsDQogICAgInJlc2V0TG9ncyI6ICJSZXNldCBMb2dzIiwNCiAgICAidXBsb2FkTG9nbyI6ICJVcGxvYWQgTG9nbyINCiAgfSwNCiAgImZpbHRlciI6DQogIHsNCiAgICAidGFibGUiOg0KICAgIHsNCiAgICAgICJzdGFydGluZ0NoYW5uZWwiOiAiU3RhcnRpbmcgQ2guIE5vLiIsDQogICAgICAibmFtZSI6ICJGaWx0ZXIgTmFtZSIsDQogICAgICAidHlwZSI6ICJGaWx0ZXIgVHlwZSIsDQogICAgICAiZmlsdGVyIjogIkZpbHRlciINCiAgICB9LA0KICAgICJjdXN0b20iOiAiQ3VzdG9tIiwNCiAgICAiZ3JvdXAiOiAiTTNVIEdyb3VwIiwNCiAgICAibmFtZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIkZpbHRlciBOYW1lIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJGaWx0ZXIgbmFtZSIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgImRlc2NyaXB0aW9uIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiRGVzY3JpcHRpb24iLA0KICAgICAgInBsYWNlaG9sZGVyIjogIkRlc2NyaXB0aW9uIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAidHlwZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIlR5cGUiLA0KICAgICAgImdyb3VwVGl0bGUiOiAiR3JvdXAgVGl0bGUiLA0KICAgICAgImN1c3RvbUZpbHRlciI6ICJDdXN0b20gRmlsdGVyIg0KICAgIH0sDQogICAgImNhc2VTZW5zaXRpdmUiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJDYXNlIFNlbnNpdGl2ZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAiZmlsdGVyUnVsZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIkZpbHRlciBSdWxlIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJTcG9ydCB7SER9ICF7RVMsSVR9IiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAiZmlsdGVyR3JvdXAiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJHcm91cCBUaXRsZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJTZWxlY3QgYSBNM1UgZ3JvdXAuIChDb3VudGVyKTxicj5DaGFuZ2luZyB0aGUgZ3JvdXAgdGl0bGUgaW4gdGhlIE0zVSBpbnZhbGlkYXRlcyB0aGUgZmlsdGVyLiINCiAgICB9LA0KICAgICJpbmNsdWRlIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiSW5jbHVkZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiRkhELFVIRCIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiQ2hhbm5lbCBuYW1lIG11c3QgaW5jbHVkZS48YnI+KENvbW1hIHNlcGFyYXRlZCkgQ29tbWEgbWVhbnMgb3IiDQogICAgfSwNCiAgICAiZXhjbHVkZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIkV4Y2x1ZGUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIkVTLElUIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJDaGFubmVsIG5hbWUgbXVzdCBub3QgY29udGFpbi48YnI+KENvbW1hIHNlcGFyYXRlZCkgQ29tbWEgbWVhbnMgb3IiDQogICAgfSwNCiAgICAicHJlc2VydmVNYXBwaW5nIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiUHJlc2VydmUgRXhpc3RpbmcgTTNVPGJyPkNoYW5uZWwgTnVtYmVycyIsDQogICAgICAicGFsY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJQcmVzZXJ2ZSBleGlzdGluZyBNM1UgcGxheWxpc3QgY2hhbm5lbCBudW1iZXJzPyINCiAgICB9LA0KICAgICJzdGFydGluZ0NoYW5uZWwiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJTdGFydGluZyBDaGFubmVsIE51bWJlciIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAiZGVmYXVsdE1pc3NpbmdFUEciOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJGaWxsIE1pc3NpbmcgRVBHIERhdGEiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiV2hlbiB0aGVyZSBpcyBubyBtYXRjaGluZyBFUEcgZGF0YSBmb3IgY2hhbm5lbCwgPGJyPmF1dG9maWxsIHdpdGggeFRlVmUgZHVtbXkgRVBHIGRhdGE/Ig0KICAgIH0NCg0KICB9LA0KICAicGxheWxpc3QiOg0KICB7DQogICAgInRhYmxlIjoNCiAgICB7DQogICAgICAicGxheWxpc3QiOiAiUGxheWxpc3QiLA0KICAgICAgInR1bmVyIjogIlR1bmVyIiwNCiAgICAgICJsYXN0VXBkYXRlIjogIkxhc3QgVXBkYXRlIiwNCiAgICAgICJhdmFpbGFiaWxpdHkiOiAiQXZhaWxhYmlsaXR5IiwNCiAgICAgICJ0eXBlIjogIlR5cGUiLA0KICAgICAgInN0cmVhbXMiOiAiU3RyZWFtcyIsDQogICAgICAiZ3JvdXBUaXRsZSI6ICJncm91cC10aXRsZSIsDQogICAgICAidHZnSUQiOiAidHZnLWlkIiwNCiAgICAgICJ1bmlxdWVJRCI6ICJVbmlxdWUgSUQiDQogICAgfSwNCiAgICAicGxheWxpc3RUeXBlIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiUGxheWxpc3QgdHlwZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAidHlwZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIlR5cGUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgIm5hbWUiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJOYW1lIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJQbGF5bGlzdCBuYW1lIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAiZGVzY3JpcHRpb24iOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJEZXNjcmlwdGlvbiIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiRGVzY3JpcHRpb24iLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJmaWxlTTNVIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiTTNVIEZpbGUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIkZpbGUgcGF0aCBvciBVUkwgb2YgdGhlIE0zVSIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgImZpbGVIREhSIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiSERIb21lUnVuIElQIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJJUCBhZGRyZXNzIGFuZCBwb3J0ICgxOTIuMTY4LjEuMTA6NTAwNCkiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJ0dW5lciI6DQogICAgew0KICAgICAgInRpdGxlIjogIlR1bmVyIC8gU3RyZWFtcyIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJOdW1iZXIgb2YgcGFyYWxsZWwgY29ubmVjdGlvbnMgdGhhdCBjYW4gYmUgZXN0YWJsaXNoZWQgdG8gdGhlIHByb3ZpZGVyLiA8YnI+T25seSBhdmFpbGFibGUgd2l0aCBhY3RpdmF0ZWQgYnVmZmVyLjxicj5OZXcgc2V0dGluZ3Mgd2lsbCBvbmx5IGJlIGFwcGxpZWQgYWZ0ZXIgcXVpdHRpbmcgYWxsIHN0cmVhbXMuIg0KICAgIH0NCiAgfSwNCiAgInhtbHR2IjoNCiAgew0KICAgICJ0YWJsZSI6DQogICAgew0KICAgICAgImd1aWRlIjogIkd1aWRlIiwNCiAgICAgICJsYXN0VXBkYXRlIjogIkxhc3QgVXBkYXRlIiwNCiAgICAgICJhdmFpbGFiaWxpdHkiOiAiQXZhaWxhYmlsaXR5IiwNCiAgICAgICJjaGFubmVscyI6ICJDaGFubmVscyIsDQogICAgICAicHJvZ3JhbXMiOiAiUHJvZ3JhbXMiDQogICAgfSwNCiAgICAibmFtZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIk5hbWUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIkd1aWRlIG5hbWUiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJkZXNjcmlwdGlvbiI6DQogICAgew0KICAgICAgInRpdGxlIjogIkRlc2NyaXB0aW9uIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJEZXNjcmlwdGlvbiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgImZpbGVYTUxUViI6DQogICAgew0KICAgICAgInRpdGxlIjogIlhNTFRWIEZpbGUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIkZpbGUgcGF0aCBvciBVUkwgb2YgdGhlIFhNTFRWIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfQ0KICB9LA0KICAibWFwcGluZyI6DQogIHsNCiAgICAidGFibGUiOg0KICAgIHsNCiAgICAgICJjaE5vIjogIkNoLiBOby4iLA0KICAgICAgImxvZ28iOiAiTG9nbyIsDQogICAgICAiY2hhbm5lbE5hbWUiOiAiQ2hhbm5lbCBOYW1lIiwNCiAgICAgICJ1cGRhdGVDaGFubmVsTmFtZVJlZ2V4IjogIlVwZC4gUnguIiwNCiAgICAgICJwbGF5bGlzdCI6ICJQbGF5bGlzdCIsDQogICAgICAiZ3JvdXBUaXRsZSI6ICJHcm91cCBUaXRsZSIsDQogICAgICAieG1sdHZGaWxlIjogIlhNTFRWIEZpbGUiLA0KICAgICAgInhtbHR2SUQiOiAiWE1MVFYgSUQiLA0KICAgICAgInRpbWVzaGlmdCI6ICJUaW1lc2hpZnQiDQogICAgfSwNCiAgICAiYWN0aXZlIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiQWN0aXZlIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJjaGFubmVsTmFtZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIkNoYW5uZWwgTmFtZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAiZGVzY3JpcHRpb24iOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJDaGFubmVsIERlc2NyaXB0aW9uIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJVc2VkIGJ5IHRoZSBEdW1teSBhcyBhbiBYTUwgZGVzY3JpcHRpb24iLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJ1cGRhdGVDaGFubmVsTmFtZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIlVwZGF0ZSBDaGFubmVsIE5hbWUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgInVwZGF0ZUNoYW5uZWxOYW1lUmVnZXgiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJDaGFubmVsIG5hbWUgdXBkYXRlIHJlZ2V4IiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJGb3IgZXhhbXBsZSBeUFBWWyBcXFxcLV9dPzEuKiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiT24gdXBkYXRlLCBpZiBhbnkgbmV3IGNoYW5uZWwgbmFtZSBtYXRjaGVzIHRoaXMgcmVnZXgsIHJlbmFtZSBjdXJyZW50IGNoYW5uZWwgdG8gdGhlIGZpcnN0IG1hdGNoaW5nIG5hbWUiDQogICAgfSwNCiAgICAidXBkYXRlQ2hhbm5lbE5hbWVCeUdyb3VwUmVnZXgiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJPbmx5IGJ5IGdyb3VwIHJlZ2V4IiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIlJlbmFtZSB0aGlzIGNoYW5uZWwgb25seSBpZiBjdXJyZW50IHVzZXItZGVmaW5lZCBncm91cCBtYXRjaGVzIHRoaXMgcmVnZXgiDQogICAgfSwNCiAgICAidXBkYXRlQ2hhbm5lbEdyb3VwIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiVXBkYXRlIENoYW5uZWwgR3JvdXAiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiSWYgY2hlY2tlZCwgdXNlIGdyb3VwIGZyb20gdGhlIGRhdGFiYXNlIg0KICAgIH0sDQogICAgImNoYW5uZWxMb2dvIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiTG9nbyBVUkwiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgInVwZGF0ZUNoYW5uZWxMb2dvIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiVXBkYXRlIENoYW5uZWwgTG9nbyIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAiZXBnQ2F0ZWdvcnkiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJFUEcgQ2F0ZWdvcnkiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgIm0zdUdyb3VwVGl0bGUiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJHcm91cCBUaXRsZSAoeHRldmUubTN1KSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAieG1sdHZGaWxlIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiWE1MVFYgRmlsZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAieG1sdHZDaGFubmVsIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiWE1MVFYgQ2hhbm5lbCIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAidGltZXNoaWZ0IjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiVGltZXNoaWZ0IiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIwIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfQ0KICB9LA0KICAidXNlcnMiOg0KICB7DQogICAgInRhYmxlIjoNCiAgICB7DQogICAgICAidXNlcm5hbWUiOiAiVXNlcm5hbWUiLA0KICAgICAgInBhc3N3b3JkIjogIlBhc3N3b3JkIiwNCiAgICAgICJ3ZWIiOiAiV0VCIiwNCiAgICAgICJwbXMiOiAiUE1TIiwNCiAgICAgICJtM3UiOiAiTTNVIiwNCiAgICAgICJ4bWwiOiAiWE1MIiwNCiAgICAgICJhcGkiOiAiQVBJIg0KICAgIH0sDQogICAgInVzZXJuYW1lIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiVXNlcm5hbWUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIlVzZXJuYW1lIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAicGFzc3dvcmQiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJQYXNzd29yZCIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiUGFzc3dvcmQiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJjb25maXJtIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiQ29uZmlybSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiUGFzc3dvcmQgY29uZmlybSIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgIndlYiI6DQogICAgew0KICAgICAgInRpdGxlIjogIldlYiBBY2Nlc3MiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgInBtcyI6DQogICAgew0KICAgICAgInRpdGxlIjogIlBNUyBBY2Nlc3MiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgIm0zdSI6DQogICAgew0KICAgICAgInRpdGxlIjogIk0zVSBBY2Nlc3MiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgInhtbCI6DQogICAgew0KICAgICAgInRpdGxlIjogIlhNTCBBY2Nlc3MiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgImFwaSI6DQogICAgew0KICAgICAgInRpdGxlIjogIkFQSSBBY2Nlc3MiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0NCiAgfSwNCiAgInNldHRpbmdzIjoNCiAgew0KICAgICJjYXRlZ29yeSI6DQogICAgew0KICAgICAgImdlbmVyYWwiOiAiR2VuZXJhbCIsDQogICAgICAiZmlsZXMiOiAiRmlsZXMiLA0KICAgICAgInN0cmVhbWluZyI6ICJTdHJlYW1pbmciLA0KICAgICAgImJhY2t1cCI6ICJCYWNrdXAiLA0KICAgICAgImF1dGhlbnRpY2F0aW9uIjogIkF1dGhlbnRpY2F0aW9uIg0KICAgIH0sDQogICAgInVwZGF0ZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIlNjaGVkdWxlIGZvciB1cGRhdGluZyAoUGxheWxpc3QsIFhNTFRWLCBCYWNrdXApIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIwMDAwLDEwMDAsMjAwMCIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiVGltZSBpbiAyNCBob3VyIGZvcm1hdCAoMDgwMCA9IDg6MDAgYW0pLiBNb3JlIHRpbWVzIGNhbiBiZSBlbnRlcmVkIGNvbW1hIHNlcGFyYXRlZC4gTGVhdmUgdGhpcyBmaWVsZCBlbXB0eSBpZiBubyB1cGRhdGVzIGFyZSB0byBiZSBjYXJyaWVkIG91dC4iDQogICAgfSwNCiAgICAiYXBpIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiQVBJIEludGVyZmFjZSIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiVmlhIEFQSSBpbnRlcmZhY2UgaXQgaXMgcG9zc2libGUgdG8gc2VuZCBjb21tYW5kcyB0byB4VGVWZS4gQVBJIGRvY3VtZW50YXRpb24gaXMgPGEgaHJlZj0naHR0cHM6Ly9naXRodWIuY29tL3h0ZXZlLXByb2plY3QveFRlVmUtRG9jdW1lbnRhdGlvbi9ibG9iL21hc3Rlci9lbi9jb25maWd1cmF0aW9uLm1kI2FwaSc+aGVyZTwvYT4iDQogICAgfSwNCiAgICAiZGlzYWxsb3dVUkxEdXBsaWNhdGVzIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiRGlzYWxsb3cgVVJMIGR1cGxpY2F0ZXMiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIklmIGNoZWNrZWQsIGRvIG5vdCBhZGQgYSBuZXcgY2hhbm5lbCBmcm9tIHBsYXlsaXN0IGlmIGNoYW5uZWwgd2l0aCBzdWNoIFVSTCBhbHJlYWR5IGV4aXN0cyINCiAgICB9LA0KICAgICJlcGdTb3VyY2UiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJFUEcgU291cmNlIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJQTVM6PGJyPi0gVXNlIEVQRyBkYXRhIGZyb20gUGxleCBvciBFbWJ5IDxicj48YnI+WEVQRzo8YnI+LSBVc2Ugb2Ygb25lIG9yIG1vcmUgWE1MVFYgZmlsZXM8YnI+LSBDaGFubmVsIG1hbmFnZW1lbnQ8YnI+LSBNM1UgLyBYTUxUViBleHBvcnQgKEhUVFAgbGluayBmb3IgSVBUViBhcHBzKSINCiAgICB9LA0KICAgICJ0dW5lciI6DQogICAgew0KICAgICAgInRpdGxlIjogIk51bWJlciBvZiBUdW5lcnMiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIk51bWJlciBvZiBwYXJhbGxlbCBjb25uZWN0aW9ucyB0aGF0IGNhbiBiZSBlc3RhYmxpc2hlZCB0byB0aGUgcHJvdmlkZXIuPGJyPkF2YWlsYWJsZSBmb3I6IFBsZXgsIEVtYnkgKEhESFIpLCBNM1UgKHdpdGggYWN0aXZlIGJ1ZmZlcikuPGJyPkFmdGVyIGEgY2hhbmdlLCB4VGVWZSBtdXN0IGJlIGRlbGV0ZSBpbiB0aGUgUGxleCAvIEVtYnkgRFZSIHNldHRpbmdzIGFuZCBzZXQgdXAgYWdhaW4uIg0KICAgIH0sDQogICAgImhvc3RJUCI6DQogICAgew0KICAgICAgInRpdGxlIjogIkhvc3QgSVAiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIklQIGFkZHJlc3MgeFRlVmUgd2lsbCB1c2UgdG8gZm9ybSBNM1UgYW5kIFhNTFRWIGZpbGVzIg0KICAgIH0sDQogICAgInRsc01vZGUiOiB7DQogICAgICAidGl0bGUiOiAiVExTIChIVFRQUykgbW9kZSIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiQ2hhbmdlcyB3ZWIgc2VydmVyIHByb3RvY29sIHRvIEhUVFBTLjxicj5Gb3IgZGV0YWlscywgc2VlIDxhPmh0dHBzOi8vZ2l0aHViLmNvbS9TQ1AwMDIveFRlVmUjdGxzLW1vZGU8L2E+Ig0KICAgIH0sDQogICAgImZpbGVzVXBkYXRlIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiVXBkYXRlcyBhbGwgZmlsZXMgYXQgc3RhcnR1cCIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiVXBkYXRlcyBhbGwgcGxheWxpc3RzLCB0dW5lciBhbmQgWE1MVFYgZmlsZXMgYXQgc3RhcnR1cC4iDQogICAgfSwNCiAgICAiY2FjaGVJbWFnZXMiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJJbWFnZSBDYWNoaW5nIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJBbGwgaW1hZ2VzIGZyb20gdGhlIFhNTFRWIGZpbGUgYXJlIGNhY2hlZCwgYWxsb3dpbmcgZmFzdGVyIHJlbmRlcmluZyBvZiB0aGUgZ3JpZCBpbiB0aGUgY2xpZW50Ljxicj5Eb3dubG9hZGluZyB0aGUgaW1hZ2VzIG1heSB0YWtlIGEgd2hpbGUgYW5kIHdpbGwgYmUgZG9uZSBpbiB0aGUgYmFja2dyb3VuZC4iDQogICAgfSwNCiAgICAicmVwbGFjZUVtcHR5SW1hZ2VzIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiUmVwbGFjZSBtaXNzaW5nIHByb2dyYW0gaW1hZ2VzIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJJZiB0aGUgcG9zdGVyIGluIHRoZSBYTUxUViBwcm9ncmFtIGlzIG1pc3NpbmcsIHRoZSBjaGFubmVsIGxvZ28gd2lsbCBiZSB1c2VkLiINCiAgICB9LA0KICAgICJ4dGV2ZUF1dG9VcGRhdGUiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJBdXRvbWF0aWMgdXBkYXRlIG9mIHhUZVZlIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJJZiBhIG5ldyB2ZXJzaW9uIG9mIHhUZVZlIGlzIGF2YWlsYWJsZSwgaXQgd2lsbCBiZSBhdXRvbWF0aWNhbGx5IGluc3RhbGxlZC4gVGhlIHVwZGF0ZXMgYXJlIGRvd25sb2FkZWQgZnJvbSBHaXRIdWIuIg0KICAgIH0sDQogICAgInN0cmVhbUJ1ZmZlcmluZyI6DQogICAgew0KICAgICAgInRpdGxlIjogIlN0cmVhbSBCdWZmZXIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIkZ1bmN0aW9ucyBvZiB0aGUgYnVmZmVyOjxicj4tIFRoZSBzdHJlYW0gaXMgcGFzc2VkIGZyb20geFRlVmUsIEZGbXBlZyBvciBWTEMgdG8gUGxleCwgRW1ieSBvciBNM1UgUGxheWVyPGJyPi0gU21hbGwgamVya2luZyBvZiB0aGUgc3RyZWFtcyBjYW4gYmUgY29tcGVuc2F0ZWQ8YnI+LSBITFMgLyBNM1U4IHN1cHBvcnQ8YnI+LSBSVFAgLyBSVFBTIHN1cHBvcnQgKG9ubHkgRkZtcGVnIG9yIFZMQyk8YnI+LSBSZS1zdHJlYW1pbmc8YnI+LSBTZXBhcmF0ZSB0dW5lciBsaW1pdCBmb3IgZWFjaCBwbGF5bGlzdCIsDQogICAgICAiaW5mb19mYWxzZSI6ICJObyBCdWZmZXIgKENsaWVudCBjb25uZWN0cyB0byB0aGUgc3RyZWFtaW5nIHNlcnZlcikiLA0KICAgICAgImluZm9feHRldmUiOiAieFRlVmUgY29ubmVjdHMgdG8gdGhlIHN0cmVhbWluZyBzZXJ2ZXIiLA0KICAgICAgImluZm9fZmZtcGVnIjogIkZGbXBlZyBjb25uZWN0cyB0byB0aGUgc3RyZWFtaW5nIHNlcnZlciIsDQogICAgICAiaW5mb192bGMiOiAiVkxDIGNvbm5lY3RzIHRvIHRoZSBzdHJlYW1pbmcgc2VydmVyIg0KDQogICAgfSwNCiAgICAidWRweHkiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJVRFB4eSBhZGRyZXNzIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJUaGUgYWRkcmVzcyBvZiB5b3VyIFVEUHh5IHNlcnZlci4gSWYgc2V0LCBhbmQgdGhlIGNoYW5uZWwgVVJMcyBpbiB0aGUgbTN1IGlzIG11bHRpY2FzdCwgeFRlVmUgd2lsbCByZXdyaXRlIGl0IHNvIHRoYXQgaXQgaXMgYWNjZXNzZWQgdmlhIHRoZSBVRFB4eSBzZXJ2aWNlLiIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiaG9zdDpwb3J0Ig0KICAgIH0sDQogICAgImZmbXBlZ1BhdGgiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJGRm1wZWcgQmluYXJ5IFBhdGgiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIlBhdGggdG8gRkZtcGVnIGJpbmFyeS4iLA0KICAgICAgInBsYWNlaG9sZGVyIjogIi9wYXRoL3RvL2ZmbXBlZyINCiAgICB9LA0KICAgICJmZm1wZWdPcHRpb25zIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiRkZtcGVnIE9wdGlvbnMiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIkZGbXBlZyBvcHRpb25zLjxicj5Pbmx5IGNoYW5nZSBpZiB5b3Uga25vdyB3aGF0IHlvdSBhcmUgZG9pbmcuPGJyPkxlYXZlIGJsYW5rIHRvIHNldCBkZWZhdWx0IHNldHRpbmdzLiIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiTGVhdmUgYmxhbmsgdG8gc2V0IGRlZmF1bHQgc2V0dGluZ3MiDQogICAgfSwNCiAgICAidmxjUGF0aCI6DQogICAgew0KICAgICAgInRpdGxlIjogIlZMQyAvIENWTEMgQmluYXJ5IFBhdGgiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIlBhdGggdG8gVkxDIC8gQ1ZMQyBiaW5hcnkuIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIvcGF0aC90by9jdmxjIg0KICAgIH0sDQogICAgInZsY09wdGlvbnMiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJWTEMgLyBDVkxDIE9wdGlvbnMiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIlZMQyAvIENWTEMgb3B0aW9ucy48YnI+T25seSBjaGFuZ2UgaWYgeW91IGtub3cgd2hhdCB5b3UgYXJlIGRvaW5nLjxicj5MZWF2ZSBibGFuayB0byBzZXQgZGVmYXVsdCBzZXR0aW5ncy4iLA0KICAgICAgInBsYWNlaG9sZGVyIjogIkxlYXZlIGJsYW5rIHRvIHNldCBkZWZhdWx0IHNldHRpbmdzIg0KICAgIH0sDQogICAgImJ1ZmZlclNpemUiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJCdWZmZXIgU2l6ZSIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiQnVmZmVyIHNpemUgaW4gTUIuPGJyPk0zVTg6IElmIHRoZSBUUyBzZWdtZW50IHNtYWxsZXIgdGhlbiB0aGUgYnVmZmVyIHNpemUsIHRoZSBmaWxlIHNpemUgb2YgdGhlIHNlZ21lbnQgaXMgdXNlZC4iDQogICAgfSwNCiAgICAic3RvcmVCdWZmZXJJblJBTSI6DQogICAgew0KICAgICAgInRpdGxlIjogIlN0b3JlIGJ1ZmZlciBpbiBSQU0iLA0KICAgICAgImRlc2NyaXB0aW9uIjogIklmIGNoZWNrZWQsIHdyaXRlIGJ1ZmZlciB0byBSQU0gaW5zdGVhZCBvZiB3cml0aW5nIHRvIGRpc2siDQogICAgfSwNCiAgICAiYnVmZmVyVGltZW91dCI6DQogICAgew0KICAgICAgInRpdGxlIjogIlRpbWVvdXQgZm9yIG5ldyBjbGllbnQgY29ubmVjdGlvbnMiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIlRoZSB4VGVWZSBidWZmZXIgd2FpdHMgdW50aWwgbmV3IGNsaWVudCBjb25uZWN0aW9ucyBhcmUgZXN0YWJsaXNoZWQuIEhlbHBmdWwgZm9yIGZhc3QgY2hhbm5lbCBzd2l0Y2hpbmcuIFZhbHVlIGluIG1pbGxpc2Vjb25kcy4iLA0KICAgICAgInBsYWNlaG9sZGVyIjogIjEwMCINCiAgICB9LA0KICAgICJ1c2VyQWdlbnQiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJVc2VyIEFnZW50IiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJVc2VyIEFnZW50IGZvciBIVFRQIHJlcXVlc3RzLiBGb3IgZXZlcnkgSFRUUCBjb25uZWN0aW9uLCB0aGlzIHZhbHVlIGlzIHVzZWQgZm9yIHRoZSB1c2VyIGFnZW50LiBTaG91bGQgb25seSBiZSBjaGFuZ2VkIGlmIHhUZVZlIGlzIGJsb2NrZWQuIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJ4VGVWZSINCiAgICB9LA0KICAgICJiYWNrdXBQYXRoIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiTG9jYXRpb24gZm9yIGF1dG9tYXRpYyBiYWNrdXBzIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIvbW50L2RhdGEvYmFja3VwL3h0ZXZlLyIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiQmVmb3JlIGFueSB1cGRhdGUgb2YgdGhlIHByb3ZpZGVyIGRhdGEgYnkgdGhlIHNjaGVkdWxlLCB4VGVWZSBjcmVhdGVzIGEgYmFja3VwLiBUaGUgcGF0aCBmb3IgdGhlIGF1dG9tYXRpYyBiYWNrdXBzIGNhbiBiZSBjaGFuZ2VkLiB4VGVWZSByZXF1aXJlcyB3cml0ZSBwZXJtaXNzaW9uIGZvciB0aGlzIGZvbGRlci4iDQogICAgfSwNCiAgICAidGVtcFBhdGgiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJMb2NhdGlvbiBmb3IgdGhlIHRlbXBvcmFyeSBmaWxlcyIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiL3RtcC94dGV2ZS8iLA0KICAgICAgImRlc2NyaXB0aW9uIjogIkxvY2F0aW9uIGZvciB0aGUgYnVmZmVyIGZpbGVzLiINCiAgICB9LA0KICAgICJiYWNrdXBLZWVwIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiTnVtYmVyIG9mIGJhY2t1cHMgdG8ga2VlcCIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiTnVtYmVyIG9mIGJhY2t1cHMgdG8ga2VlcC4gT2xkZXIgYmFja3VwcyBhcmUgYXV0b21hdGljYWxseSBkZWxldGVkLiINCiAgICB9LA0KICAgICJhdXRoZW50aWNhdGlvbldFQiI6DQogICAgew0KICAgICAgInRpdGxlIjogIldFQiBBdXRoZW50aWNhdGlvbiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiQWNjZXNzIHRvIHRoZSB3ZWIgaW50ZXJmYWNlIG9ubHkgcG9zc2libGUgd2l0aCBjcmVkZW50aWFscy4iDQogICAgfSwNCiAgICAiYXV0aGVudGljYXRpb25QTVMiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJQTVMgQXV0aGVudGljYXRpb24iLA0KICAgICAgImRlc2NyaXB0aW9uIjogIlBsZXggcmVxdWVzdHMgYXJlIG9ubHkgcG9zc2libGUgd2l0aCBhdXRoZW50aWNhdGlvbi4gPGJyPjxiPldhcm5pbmchISE8L2I+IEFmdGVyIGFjdGl2YXRpbmcgdGhpcyBmdW5jdGlvbiB4VGVWZSBtdXN0IGJlIGRlbGV0ZSBpbiB0aGUgUE1TIERWUiBzZXR0aW5ncyBhbmQgc2V0IHVwIGFnYWluLiINCiAgICB9LA0KICAgICJhdXRoZW50aWNhdGlvbk0zVSI6DQogICAgew0KICAgICAgInRpdGxlIjogIk0zVSBBdXRoZW50aWNhdGlvbiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiRG93bmxvYWRpbmcgdGhlIHh0ZXZlLm0zdSBmaWxlIHZpYSBhbiBIVFRQIHJlcXVlc3QgaXMgb25seSBwb3NzaWJsZSB3aXRoIGF1dGhlbnRpY2F0aW9uLiINCiAgICB9LA0KICAgICJhdXRoZW50aWNhdGlvblhNTCI6DQogICAgew0KICAgICAgInRpdGxlIjogIlhNTCBBdXRoZW50aWNhdGlvbiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiRG93bmxvYWRpbmcgdGhlIHh0ZXZlLnhtbCBmaWxlIHZpYSBhbiBIVFRQIHJlcXVlc3QgaXMgb25seSBwb3NzaWJsZSB3aXRoIGF1dGhlbnRpY2F0aW9uIg0KICAgIH0sDQogICAgImF1dGhlbnRpY2F0aW9uQVBJIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiQVBJIEF1dGhlbnRpY2F0aW9uIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJBY2Nlc3MgdG8gdGhlIEFQSSBpbnRlcmZhY2UgaXMgb25seSBwb3NzaWJsZSB3aXRoIGF1dGhlbnRpY2F0aW9uLiINCiAgICB9DQogIH0sDQogICJ3aXphcmQiOg0KICB7DQogICAgImVwZ1NvdXJjZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIkVQRyBTb3VyY2UiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIlBNUzo8YnI+LSBVc2UgRVBHIGRhdGEgZnJvbSBQbGV4IG9yIEVtYnkgPGJyPjxicj5YRVBHOjxicj4tIFVzZSBvZiBvbmUgb3IgbW9yZSBYTUxUViBmaWxlczxicj4tIENoYW5uZWwgbWFuYWdlbWVudDxicj4tIE0zVSAvIFhNTFRWIGV4cG9ydCAoSFRUUCBsaW5rIGZvciBJUFRWIGFwcHMpIg0KICAgIH0sDQogICAgInR1bmVyIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiTnVtYmVyIG9mIHR1bmVycyIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiTnVtYmVyIG9mIHBhcmFsbGVsIGNvbm5lY3Rpb25zIHRoYXQgY2FuIGJlIGVzdGFibGlzaGVkIHRvIHRoZSBwcm92aWRlci48YnI+QXZhaWxhYmxlIGZvcjogUGxleCwgRW1ieSAoSERIUiksIE0zVSAod2l0aCBhY3RpdmUgYnVmZmVyKS48YnI+QWZ0ZXIgYSBjaGFuZ2UsIHhUZVZlIG11c3QgYmUgZGVsZXRlIGluIHRoZSBQbGV4IC8gRW1ieSBEVlIgc2V0dGluZ3MgYW5kIHNldCB1cCBhZ2Fpbi4iDQogICAgfSwNCiAgICAibTN1IjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiTTNVIFBsYXlsaXN0IiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJGaWxlIHBhdGggb3IgVVJMIG9mIHRoZSBNM1UiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIkxvY2FsIG9yIHJlbW90ZSBwbGF5bGlzdHMiDQogICAgfSwNCiAgICAieG1sdHYiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJYTUxUViBGaWxlIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJGaWxlIHBhdGggb3IgVVJMIG9mIHRoZSBYTUxUViIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiTG9jYWwgb3IgcmVtb3RlIFhNTFRWIGZpbGUiDQogICAgfQ0KICB9LA0KICAibG9naW4iOg0KICB7DQogICAgImZhaWxlZCI6ICJVc2VyIGF1dGhlbnRpY2F0aW9uIGZhaWxlZCIsDQogICAgImhlYWRsaW5lIjogIkxvZ2luIiwNCiAgICAidXNlcm5hbWUiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJVc2VybmFtZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiVXNlcm5hbWUiDQogICAgfSwNCiAgICAicGFzc3dvcmQiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJQYXNzd29yZCIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiUGFzc3dvcmQiDQogICAgfQ0KICB9LA0KICAiYWNjb3VudCI6DQogIHsNCiAgICAiZmFpbGVkIjogIlBhc3N3b3JkIGRvZXMgbm90IG1hdGNoIiwNCiAgICAiaGVhZGxpbmUiOiAiQ3JlYXRlIHVzZXIgYWNjb3VudCIsDQogICAgInVzZXJuYW1lIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiVXNlcm5hbWUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIlVzZXJuYW1lIg0KICAgIH0sDQogICAgInBhc3N3b3JkIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiUGFzc3dvcmQiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIlBhc3N3b3JkIg0KICAgIH0sDQogICAgImNvbmZpcm0iOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJDb25maXJtIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJDb25maXJtIg0KICAgIH0NCiAgfQ0KfQ==" webUI["html/login.html"] = "PCFkb2N0eXBlIGh0bWw+DQo8aHRtbD4NCiAgPGhlYWQ+DQogICAgPG1ldGEgY2hhcnNldD0idXRmLTgiPg0KICAgIDxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgsIGluaXRpYWwtc2NhbGU9MS4wIiAvPiANCiAgICA8dGl0bGU+eFRlVmU8L3RpdGxlPg0KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iY3NzL3NjcmVlbi5jc3MiIHR5cGU9InRleHQvY3NzIj4NCiAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9ImNzcy9iYXNlLmNzcyIgdHlwZT0idGV4dC9jc3MiPg0KICAgIDxzY3JpcHQgbGFuZ3VhZ2U9ImphdmFzY3JpcHQiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJqcy9uZXR3b3JrX3RzLmpzIj48L3NjcmlwdD4NCiAgICA8c2NyaXB0IGxhbmd1YWdlPSJqYXZhc2NyaXB0IiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ianMvYXV0aGVudGljYXRpb25fdHMuanMiPjwvc2NyaXB0Pg0KICA8L2hlYWQ+DQoNCiAgICA8Ym9keT4NCiAgICAgICAgICANCiAgICAgIDxkaXYgaWQ9ImhlYWRlciIgY2xhc3M9ImltZ0NlbnRlciI+PC9kaXY+DQoNCiAgICAgIDxkaXYgaWQ9ImJveCI+DQoNCiAgICAgICAgPGRpdiBpZD0iaGVhZGxpbmUiPg0KICAgICAgICAgIDxoMSBpZD0iaGVhZC10ZXh0IiBjbGFzcz0iY2VudGVyIj57ey5sb2dpbi5oZWFkbGluZX19PC9oMT4NCiAgICAgICAgPC9kaXY+DQoNCiAgICAgICAgPHAgaWQ9ImVyciIgY2xhc3M9ImVycm9yTXNnIGNlbnRlciI+e3suYXV0aGVudGljYXRpb25FcnJ9fTwvcD4NCg0KICAgICAgICA8ZGl2IGlkPSJjb250ZW50Ij4NCg0KICAgICAgICAgICAgPGZvcm0gaWQ9ImF1dGhlbnRpY2F0aW9uIiBhY3Rpb249IiIgbWV0aG9kPSJwb3N0Ij4NCg0KICAgICAgICAgICAgICA8aDU+e3subG9naW4udXNlcm5hbWUudGl0bGV9fTo8L2g1Pg0KICAgICAgICAgICAgICA8aW5wdXQgaWQ9InVzZXJuYW1lIiB0eXBlPSJ0ZXh0IiBuYW1lPSJ1c2VybmFtZSIgcGxhY2Vob2xkZXI9IlVzZXJuYW1lIiB2YWx1ZT0iIj4NCiAgICAgICAgICAgICAgPGg1Pnt7LmxvZ2luLnBhc3N3b3JkLnRpdGxlfX06PC9oNT4NCiAgICAgICAgICAgICAgPGlucHV0IGlkPSJwYXNzd29yZCIgdHlwZT0icGFzc3dvcmQiIG5hbWU9InBhc3N3b3JkIiBwbGFjZWhvbGRlcj0iUGFzc3dvcmQiIHZhbHVlPSIiPg0KDQogICAgICAgICAgICA8L2Zvcm0+DQoNCiAgICAgICAgPC9kaXY+DQoNCiAgICAgICAgPGRpdiBpZD0iYm94LWZvb3RlciI+DQogICAgICAgICAgPGlucHV0IGlkPSJzdWJtaXQiIGNsYXNzPSIiIHR5cGU9ImJ1dHRvbiIgdmFsdWU9Int7LmJ1dHRvbi5sb2dpbn19IiBvbmNsaWNrPSJqYXZhc2NyaXB0OiBsb2dpbigpOyI+DQogICAgICAgIDwvZGl2Pg0KICAgICAgICANCiAgICAgIDwvZGl2Pg0KDQogICAgPC9ib2R5Pg0KICAgIA0KPC9odG1sPg==" webUI["html/maintenance.html"] = "PCFkb2N0eXBlIGh0bWw+DQo8aHRtbD4NCiAgPGhlYWQ+DQogICAgPG1ldGEgY2hhcnNldD0idXRmLTgiPg0KICAgIDxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgsIGluaXRpYWwtc2NhbGU9MS4wIiAvPiANCiAgICA8dGl0bGU+eFRlVmU8L3RpdGxlPg0KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iY3NzL3NjcmVlbi5jc3MiIHR5cGU9InRleHQvY3NzIj4NCiAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9ImNzcy9iYXNlLmNzcyIgdHlwZT0idGV4dC9jc3MiPg0KICA8L2hlYWQ+DQoNCiAgICA8Ym9keT4NCiAgICAgICAgICANCiAgICAgIDxkaXYgaWQ9ImhlYWRlciIgY2xhc3M9ImltZ0NlbnRlciI+PC9kaXY+DQoNCiAgICAgIDxkaXYgaWQ9ImJveCI+DQoNCiAgICAgICAgPGRpdiBpZD0iaGVhZGxpbmUiPg0KICAgICAgICAgIDxoMSBpZD0iaGVhZC10ZXh0IiBjbGFzcz0iY2VudGVyIj5NYWludGVuYW5jZTwvaDE+ICAgICAgDQogICAgICAgIDwvZGl2PiAgDQoNCiAgICAgICAgPGRpdiBpZD0iY29udGVudCI+DQogICAgICAgICAgeFRlVmUgaXMgdXBkYXRpbmcgdGhlIGRhdGFiYXNlLCBwbGVhc2UgdHJ5IGFnYWluIGxhdGVyLg0KICAgICAgICA8L2Rpdj4NCg0KICAgICAgICA8ZGl2IGlkPSJib3gtZm9vdGVyIj48L2Rpdj4NCiAgICAgICAgDQogICAgICA8L2Rpdj4NCg0KICAgIDwvYm9keT4NCjwvaHRtbD4=" webUI["html/video/stream-limit.ts"] = "R0AREABC8CUAAcEAAP8B/wAB/IAUSBIBBkZGbXBlZwlTZXJ2aWNlMDF3fEPK//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////9HQAAQAACwDQABwQAAAAHwACqxBLL//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////0dQABAAArASAAHBAADhAPAAG+EA8AAVvU1W////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////R0EAMAdQAAB7DH4AAAAB4AAAgMAKMQAJEKERAAfYYQAAAAEJ8AAAAAFnZAAorNlAeAIn5cBEAAADAAQAAAMAyDxgxlgAAAABaOvjyyLAAAABBgX//6rcRem95tlIt5Ys2CDZI+7veDI2NCAtIGNvcmUgMTUyIHIyODU0IGU5YTU5MDMgLSBILjI2NC9NUEVHLTQgQVZDIGNvZGVjIC0gQ29weWxlZnQgMjAwMy0yMDE3IC0gaHR0cDovL3dHAQARd3cudmlkZW9sYW4ub3JnL3gyNjQuaHRtbCAtIG9wdGlvbnM6IGNhYmFjPTEgcmVmPTMgZGVibG9jaz0xOjA6MCBhbmFseXNlPTB4MzoweDExMyBtZT1oZXggc3VibWU9NyBwc3k9MSBwc3lfcmQ9MS4wMDowLjAwIG1peGVkX3JlZj0xIG1lX3JhbmdlPTE2IGNocm9tYV9tZT0xIHRyZWxsaXM9MSA4eDhkY3Q9MSBjcW09MCBkZUcBABJhZHpvbmU9MjEsMTEgZmFzdF9wc2tpcD0xIGNocm9tYV9xcF9vZmZzZXQ9LTIgdGhyZWFkcz02IGxvb2thaGVhZF90aHJlYWRzPTEgc2xpY2VkX3RocmVhZHM9MCBucj0wIGRlY2ltYXRlPTEgaW50ZXJsYWNlZD0wIGJsdXJheV9jb21wYXQ9MCBjb25zdHJhaW5lZF9pbnRyYT0wIGJmcmFtZXM9MyBiX3B5cmFtaWQ9MiBiX2FkRwEAE2FwdD0xIGJfYmlhcz0wIGRpcmVjdD0xIHdlaWdodGI9MSBvcGVuX2dvcD0wIHdlaWdodHA9MiBrZXlpbnQ9MjUwIGtleWludF9taW49MjUgc2NlbmVjdXQ9NDAgaW50cmFfcmVmcmVzaD0wIHJjX2xvb2thaGVhZD00MCByYz1jcmYgbWJ0cmVlPTEgY3JmPTIzLjAgcWNvbXA9MC42MCBxcG1pbj0wIHFwbWF4PTY5IHFwc3RlcD1HAQAUNCBpcF9yYXRpbz0xLjQwIGFxPTE6MS4wMACAAAABZYiEADv//vdOvwKbVMIqA5JXCvbKpCZZuVJrAfKmAAADAAADAAADAAADAAADAq7aiiFafTJvTQAAAwAAAwAAF1AAAAVUAAADAiYAAAMBNwAAAwDUAAADAMkAAAMA4gAAAwD+AAADATIAAAMCGgAABAQAAAYoAAAOwAAAAwAAAwAAAwAAAwAAAwAAAwAAAwAAAwAAAwAAAwAAA0cBABUAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAA2F55UwH3zADgCn7Xsg5urkZA62Mq62dWKwprJak9U0cjT1Yh9J7WRISuxmagZEf3SG5hJ5glLK+m1DQRdCFD2mN6YZGjkCTKwYyDxKlNHkaW8fuatJR0sAtCoVfOjRr2/NS+bw85zMQI7VFu7+JhD/Go1Q5RgMv5bIq0gpxJKRnF31ojI62CwCRiJ1dHa6nIwcU00zURwEAFhyu6/UdOQ6gXR/Fn3SkmUwkQsjmQF0XEAAAAwAAQkN8C3guxx7g23xd3I1uQvL9Dh+C+fpNfOmVma2q7DiUF3VD8o51I57iYniPq7fe7f2YnPwRwynt2WAsZSjTMgHnGbk5zsyy+rXIMy1p3notBIJkpSBHSuogn9FDL99PItYMLSYCXzbB1ngJo9jnaTgI0b904RmkSjuZtpKyt0ofkYfxNRrztwDGURi3JRPkpuouCWX8KWcxn8NHAQAXWrAsVbXQ0f+vby6QN9oHh0jRsBw7+79AAAsCUlIAAAMAAIGTVQt7SJOBNtpTiAsB1/AzhYzJ8lMVgRENWBT0VBkiPo9+OyjWfg6dlrISORs+GKnEy5aUKA1M9uXDtedogUi7S7uVd54Gj1Qb5NTw4Jix5w1Ejl/de0xvxERyv4b3rmZdsU72FOcfnbK1K8lG4wnxVzYPGiElBGSrNsWNXskCT++8dTbAQv4ejltKQDN2z2xpw5g1CkcBABjFGRM3p9Rp9BGLQ/gaCYSE37IZAAADAFsvgUK7rSLf56T0ZOVulX2oYo74ASEKbonCVfRcGAke05L38QhPtmJ8xRmebFR5/801CbQAWvnAOc2AWgY1coPTdBTZIfsBwU94Gu+qjaoR4dfBX9u8RZXmrbLBCqJ8wTgvf9kJu7/27gcTx8SsJfq40cjhNaRNiof2e8CF4imWObVdvBDpPRxSiR1tsORfA0r+gqjURLyvIwDsE+O9NkeiRwEAGZMG5kW8doFnKjj4QW/OIpFfzF+53Eb4LrnRmrkHqYA/RnqVvBWNpUSFdATxWKzy0MBYRpY4IoUCpCeWwgQ/9Ny0Yi1iQ++wmh1ay/SnYR5B8k+FpDYbWDODuSuCMmrTDKXjicAStFseuB4peB1Ufu7fitj0L0uZzCgGY5zkzbBp3bfXJQEGCnSwEtW+TY50gbhenVCesUfJKjvG6PshP5ScKPdVkZltrS4wx1CntFR+srvN3MjP6p1HAQAaM8+T4dTA6o28g/ki3+J9b5WD8oY+fVgTsb1jfV2GWWd2Hh8JK00uloyX94k2QHGzhbuiS1YKiEdCLz9Pt3RuxuTNm9XSlLwQvyRvfY6sKD8KIinvSq3XP//Kx5Ni82QOXvrn5eEmFlTGuT36Yax5OR4BI3UhdWSGGa0YoqeD7zcvWv64AAANbhz0PNupTjTGu6vxaQq6PcgarV8F7NT0zHSQCZ8KuEFdideJmx4581/BCMYXuJt5cEcBABufpZ3Gzdy5JLw0J2eg1hz70uf/nD82aqNxy/HUvEd6+w5woyIYb7nzl1eo/+ACzPidfiSKydCNxKh9e7tKjNNTJYRX+1f5A398n+2wKJPX7dRmPk4C0j/auaYtAMF+Ft5g6ZqxQuA071fEmj4uiYMR7F+JbZ7CjA98DObmNy/ZWoJQvMrvR3ep5XAmNFkqs1Ma20JWsiikVsr/jblTK0PBVnLul36knafsXUW38/19lMQo0HUcMvrmRwEAHI2OaNsvRTodm5RGcpDEKfXIqXsLfH53r0F3K+sfRvbk3u2ilZd/c5zH95TBbceTvFEt5mD6oPEhxHX3gId6ZBsNNUKUnWDxoX7MaYE38/ELMyIVzRxDCIEkf+q7aY6tcZEMrPBa352hxE6SJ+2y/zlDc8X4jSYerSPRgLBiUm/TSHdm/sHP7d/kl2fmIUNKBbeaghigfwmfDnaZ3wPkRi3oXIp3YypbLYpeup62X805+oYMAgynQd1HAQAdHLgV5nC45givqz8G4AAB0pcgXQpZhwRtJ0wE/aFEPMXugXV9NeZnpzJeXaijTBtaFonT4e+hZZXjLHhxTugKb085RNFOoT0GAB6b2twqc++PKcb796IKMKtNpGaUWjoFvBDGh4HrRguoZWCbLy2RFxUX8SmNUb7qfDXwIi4nY4i89/TcrSc0q64NPWA3SPmQ5D5/ZFbRzBtFuMVVmbEF0cxv9RoqLyW/VGkp+bBAmoMhAw82eI9VskcBAB7bidwIeUDbJvHb2Z8Ep/avJccAh157ZUytHDDW9DhmdbdBzT1TpsJFsFWe8FOQfaNpJVfj2nGqShY4+DhxRYxOpzXw2VF7hQpp6PqFUtyi4ib3VHETkSuHz+2uom/bMRbhw+hQ05xdXOHcFVpih+k58QKrhN+txmOmV3ULdeiVLUplf35jQJTUIZltXjTCZhljRc0sdqOZHDZjy58Sc6hmq8D6lztRR5jN6ifzzKdZbHOpMvK28A4ZRwEAHwyCdGDG4LksEyABPYPnzVuaVJHpUiKgtb3006VleBPo2EZenL5/vyGrjLMas0C6R0iyXZjr0xqvCfaFfxVO/+DQUMKaj0XLNNIrLqXxwzxzy2ENSUjNNySzfvDkpjuJVywa0uwsg60r6EURKgU15gAtbm3Kx4tjb3pRMM8SZHnsN075ztW98+aTrdbRryY9XR74p76dkImiqWIVRQAAAwAAerbiggDgwfd5iHYwqlkEXOqApTuXEhFHAQAQ1PUugOrA4HsFQsLzVf2RjOkhWvlC/kwNqqDXkwlUM6egLoIdgXAyBFgSXuM59iSh6DSi4LwFa/FhyGMrxPV0UF8QD9dGgSeXBUvExQHAGOHz98Mbwm3lBdIzxkzeGLDhi0wZ5SurQPpWomKoDW7t0a+GpQkmCEgVO7iBc/JrOFIt8BBRW1E3EOMv6Wpc5Bw9M2A1XVVaNSFyVkr4bJmsPdNLXAJ4UeKO9R1lUBhl+OhrxoG4RKVHp0cBABF4Om4vKIyHfOkDd6zL8NOXPLL7gS3TIX2EFGJwyyOzsp3WEnvyFp3pujaaLMn/lubQO3uY99+DKi2Io2lBhymLAR6LDBeQ7AhVrgnfiNz91OxGGiYYLcV2yR4f5zrcwMQZNJDrBZZB5gHIDL20vdPnM5RCWlhx/pWX/VbNt2slYDgCwcQp6S/f+sYDWW8d6kKnv4kberk4wmAhuvG6Y9SNfBDQ5l9qn/Obo+/QByc1yiGJRu8Gf6MCRwEAEoe8DYkkVe/6Ixqln5QQ/EQgnqBdcH9XhmfrybwZkozmwKLLqqVJH8KoMeYLCfFbfUaJbcR1M2fwEHGq8BQXjRJFgtHh3lCD2NBLo+9F2kwxA+U6o3SQoAiESygbnYzTRsRmJbxNCRKSLcIhfuhjjCaAi0Icfv4rxjBMuDTA3ZANJ/jmVtzwWUFolUII47bYNLfdylQl/XdlhiHX3vln9Ji8cLEbSL8BMxJ2EI8GBsnrIBeQBPJc+UNHAQATIY6b3+HKasi+GNJ2c21SbezgAtkzMWLCJOnux4sNbrOiNHjom7p+U1hZN9Nr5wuzsM8+1NBBB2pfg3/QKiCYs6b9pduydYs2HEo8FbJJO9uH/yhvTL9d6RHrHf9srnZkSZKhJ7J7mApu4eNNCFusU8sNmfV7H97V1FOBXT/6JShgEQxdnwWdgxDvO8PxjkwuGrYPamKBNG/zRiG5AbW+ikv3OBftfBdhuifSSqoWx0W/XRtyk55S8kcBABTW3x1rkDAHFUfqPG8dZSQWAtnA0fS2fwfdqEGWrbQvYFwWWVcRma+zWJHw2/lVzPD/mSdMieWiX8i5DWTg51gGKy0ftdjOBgAAAwAC/KwTiIpM5clRTlEEi87aAOb87wCHqn1gnPnLGPfQQiw2QYxiClSodV7wEhhJw6ToIwyUjyxYDwVnF2+7eRq7fijw2kLyk5C88BvU1OTdlPGHyBmiT3UXo3I7308/Mn49t3tnXLB8MdaOaVwaRwEAFbiVrH5lksx9oY9DCw61tAqU07scxCL86wtgcyZCmy2ZZ/2W79DRKs2QCu0op9Lw2QYj/OgOj6apaZTOtksj8+VKlTlQQnkV9sFudGr7gpsQoaxBjmrhVk1adbYaFkKCEUYRbDRJpZQDbv1RIRFlY/KmWweiUOZDX+3fplGzJs5LvbvgiM7THIlybfPIXTjS2SPmFm+rQ6T4X9BQocVCjzQvz6g2kp58j9jXT5sBBuu9tC7iTFfMEzZHAQAW0QFraUkCV6gEC2C8wvr2E+hXgJwCskVL+063JAWE9yhGOTyWD/fLQiiuxJ/88Zes8sHmBC+quRzE8SHNO8OIMMptzSvx1i2D8aBb0ksDLYEqwCXN8Lsz+71HkS8SdC0nDGQZqAm7DYd3/uBgR/J4FAOc0jvOUci0tSUbSVn2z+H03GNfHcZ+XgduswjjsUodtsUtRn4nXpryhElgMI3kr2OyFXf92YxZPgbhGubgcNlo+sZ4Z/ApNUcBABeS+kT7jvDiaynYNz51Kc4yccGFoXKWRhGdSRtXJFDck0iJWKT4opQng0gcHiUFaL9bf4jSqm56kxLcQ5YAgHkDZ0UGYh6QEEPPAfCpoDLCF9mL+/OEuHWZ9NOnW7TcJlKbhJOZEKkoE4KW3fDydJ3a3l4IOByTPx5LJAjAZoV1BtKInfF7g5OQU0G5EXJGhFWUsr8Sf48Q9LVjnWvDuawWdWPiS+BcWfUZoGIkK6NoPQR/qL1AIJhcRwEAGAOEUaznr61uMAnNb33549uKjSRk1nM/fUR2BA7+39FhNrmR3taY6qgM804qoHgCSbYS+YIKj8U9vxfATvknbWEZv4JF5hoFJaAN0bNc36f9VcnxAkGsb3r74Yko3jVackXvVrdcN76rT9izohLnH2yQem0zb5wOq7EtjPnGn2t4t4/9JDKIfVb2QikijBu8gHlSjvgVRWSYDIRCi2Zle5MtFyXOaIGwCRAv6PFD6mmJBUT2XimID7tHAQAZOkCES5EDxQ08m+f8cpxKkoyHem8Ex4m8xZ2DA4d39JDH02xtTRRfSfDrC/TqpIjzCtcVv/zzgSflzEbq/UKFH/Z7CbtsrVS2+ll2/CGSNsmOHGi5yrhPM/JSClEmt6IRtyk0FZ3r5cdREJwAKoXP4tNLpfjWSZbATEIGmr+OxqYxQMlzf/93+QrgM/g1HvmPFBPard2U8aKbHTEH3r/kFdkNmlE0EQi5b8TOCYIa/mpuWq/yMn7by0cBABrkhq6Rldw6p3qQyVsZsBpoW3OLgDe/7/pMx+iijZdk9jE9T0fcFh77YVfpjYex2//dcNszIlWr2vl65Z1+0cQQShk/R5GP20mU4dc78l3iyti4DcDCi6PdIU4nzdwZIpGFX9xIuPAHaNfyP4Nyr1K0j9h5STEAHsYX21+iN6CKiuWoWOm3ev+GGzt1NNmtc1W0OYicTiPoIVr1TGzQC+1Nd7izII3tPWn1PEtqM9+fXo32ibSZUvGsRwEAG28xtoQMOBX+QWzc6MLY+xdighCBxpzLcNRK09DBzvBjyt59TqRxzLpeKgJMb4hkrGZnI7ZB7k4WSdssIdlyXiqQOLW68TKxOi/m2l4eAg3OCdiWnrmhOdRSMVLPALUNPDXtBJE5hOD/rtb0FHxtGQKnmP64bBNEEEJCWqJO6W+Gy5Bj/1OPVO5Lb/mGT6SfZVe2RtKnX3ZVDyDZb1jHV0Y6RKS8+Ww1Ya57NIcyPDo3g06Ef4Vi2RpHAQAcWH+V9i+eiLHkvPKkSHT97ZZGFxrcu9T++hegAGupHOjZYoxGWV+zfmemcnV4Qc0p0Sb+bCBN/WYAmY2PsHr+MIroPJIqRxQacYxgv0Eh/ahn4Y8AHjDPnPRprvdugL71ZtfrhmqiLml/RA0I8xMa/JZ4jrmIOqM+Z+fLjB67UYM71w0xjsBG/PgXRORM5Qqkfa6vscWkOW3l2RaUeeyDnUES4bdGUahzOYND5CZ11DaxBi7FZpSS2kcBAB1UDuNag/7CUCi13BGNTDCy03A2H45ho7AAABa85YSo2ddxRWSmP/8M1+fhrnv2TvJk7zHcA5z9BfW6MKcG/ehOV8RoJWUXPPQvUS5U0mqa69CuPBPy9cA1FwAI3ipau/UmVf9WS+R7+XREZCdpkNc5acRUaY6VieEi58Gy3p/q3E9lT4f4oYx563YFbu2Mjwq/dN/ncWug4Nun06Ap71zELPDKDaexmC+kEhaf6dReVEeK+uZfg42ZRwEAHq4bLzMgvrZQb5Neabro0F+gcFiL7UdLm0y8LR7TPvIQ+Kevu6d1BghMMTKxPVSrBVH6F6mATlcYYyhZ6fc7mnHFrpCznzCepMqz3ro5tOUnl9iNq+BQQPFZZlKIVl/GEtg5jzNU88j4KpNvVAoa6Cb/P9X3gWXF7KWmnzgUsZM5mR4GvWJWIcg+IDfe/2FtphXajgL5wfiIK1jzzOr3tQ5xYrVpBvuyKmtdCfIrHoFt4i/42TRgGMJHAQAfCTLHw8EYKGd4hzY41zaYLjR4E4nuBnCtxuCX9FhYm/YnBE6exCJDSBtf1sfFAv5pgAOcF+CZrALrM4tRCUKQs0t0o0+8+ZU1dyyuCLBTtC+vJydoSGmMBg+XNyIPtNEtN7qGS9WWA81qcbxxzsc40CIJf78S26nBKAJuyPu+iX9ANPAyMrgOAVc95U6bJlSjLkP6CXXR2dJRvUv3raWkoAAOjJ71lTFvacoQwhCErx3cbavuczBzJ0cBABB+z7EDY6atdC4NZwX22iBmtZsaHUa3NaBIO7aD08FA7Kd0ugfbomTYomPBMuWwk/b3KMR0uhkyeHKC1RjYo4d/mMo97xS4ix+t+38cwQHmkYQH5Cm1BO6ezuTSevjTojq1hlXD39LxF8a/93o4Tojo+ZmPPJix6BuKlBIwjtpZb0M+nOEX8jPyyd96ytD4eWjOAt/heOiSF9hvmiN50BmkUiITCBF39iClDPO2k/Fag4BqTBbtubcLRwEAEUNMr0m0/lLKJ5ks1W5j+cRzJ3kSK0mRkjrPrr0eWASIwI6LNyATeQMrpq3uWQlAQ+9SdeWmTu5uHTgt+d8sFZe8JXcU+1JnZRSZ9yaoEC0i+bOkGfWyMpA85qtvAlKTBMOm6ub/5NMaKU/VAW9lEvkA9PprSonQVMnG4+BlH2JOh8TsTKkBZPVgILxDM8mFjQXm0TBsezlo4ABKvPWcftdHUaGyF7gP1XbV0exXEHfsSASfYRd0OZZHAQASC+/t5TafeJT36YiEZXYeQH2+IoK6ZxRnFgTmKOGcCCYd3KzwxTJp8XFrSbvg7LzTDnvjGYOaazdnbZt4/Jn3krhhlSRWjhWRqAyxMNVF8n18FXqTzJB1PKNbd7ax8R0AjZfFVC/ycdg6wATRrdRJSofJHpjwYHGQO+L2neTkvCrH/gUPD1U+SjdMlUvLS6vMXop0yzDX/L7HQcLXjKsR2lGDYBlM1UB2WHnq/qPBycWFFtPYyTlN90cBABPvVe8f0oNTNwJhtM/kLJBEZI3ZwCEWYk/wv9hIIWr3A4qkehY4+ptgTX/1///4JZ6dscO9HKuG6puRV3lR4ETvMwdKnHPSHjJF2aQeuvoGeA7yVT+AaeDi7V8ZlVYMc4uVncx1liUQapUssjXpK+2MxWQ7Cb5GU97Drj7W/oPo2Ptldofr3uIe6fvheMu/6aViZagqUWfdOTc0YXVHZzPFok9FEQJUWdUPZiJlfllKLIy/6aAyw8HuRwEAFKEU8CS7kA5ZslGAnKoBbCTNOXl4p9BBgCPqieSBknZibS3PcR/LjWgGifTDu5u2Wj+eAMmSM7P3HMAAAC+T9jKtui2s4cFmXoWX8va4/qVAzxWGs3w547v+Tmac4FyXAqNj0/rFe9k3Egw/P9Q1LxzxwDOEbknnvYdCGAAp8Ivp0KW4t+inn46uKR4RHHa3/VSY8znvIUPdudc1/K0jIEI/Q3pEL9pzjQZxtgqbGfHOMo5yI2dWIDlHAQAV/YbUhbsIYEjAICdYv/AE36OWoooY0Nf/2lmJx7BftLoE1dLDfZKeiAdmrhnpvihEEfTo0MaKnEoSfryZ2OAN9yMb5+fcL8FTpHFFCfvfivNdZyTFOvrxIc3hv+2TavaVMjhtrDqlErqEd/XPoVqKmAeHo/ORSn73CZ/cWNXX0JQ1pRuP8VvL2QwfnG2vq9nTXfiQrMzEeEpNIaeqZS29MfFP8+VCiKyM9p1vNhZC1NItrJ+gsFzJsEcBABbEKpgjE+ovbWLdj0EXyH8KO2Jmn2vTLCKigPqQhq3uaL/6o+uZWDa8dvkxNep66qHmLO7/821Audrn3I6tmZZWSE51J3/XYBVjpW9Fw0Bkr6GpAeDT7ybMGYdKJsd7/WZPZV+Db7zD1ZmulDiRnfN9EmSFStYYD0lEfqrCbP+xQuwtYvfYJsqIvl31t7RBZk/QV2ENWfDLEpMHt5tlrAv5w+3dl1lg2WcrFP2A/7e4sIIyRJo4HsLGRwEAFz/AGCMZq1GUNbPZoNkM+R2je+8sB+Gh/lgSXtAQZK4CwsR8tHn5hyV9QoAAAGJ3xJ/ZGmyBFBfvFt3Yyf/NFoecJXk49dlUxZvTtB0WRCewg6hn1yl3AH406dFPGEk44wMT7vPKyYJW4OT7kiDQvBsdpaU9TmUUKyup1MsILviQKXWAv+kecpWRTY51BniLudSBH3vmnE2l4hUOm7AVWQ3O8V048//RRvDBX7tSPIiWu+MxSSGZfLdHQAARAACwDQABwQAAAAHwACqxBLL//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////0dQABEAArASAAHBAADhAPAAG+EA8AAVvU1W////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////RwEAGO10tGlFAwyE91Tzg8923ovJk1dv2xh1gVlYQFtWdZ6NSQ8vgHM7/tMfIZPsqgCU856rdBJJRMDaor/oWA7pkvSmC2aqaC5fd/mkWUPTuG8fRhGqOY1rKxLNSI3HtTQAcuVBxRM0NfMw0ky/JMJYZiCgXcNsxpxl+khr/9fKtO5Fg2VNBti92xcZimHUZDJMQTBOY6vSR9L1N2O/kJQCpdfuc9bkcUTMjH/es/lAySxvbiislkohqkpHAQAZVatwHI0t9eHCUfDyWUEtuCNyDwQFOVMtaYEQJrTrhQX0VduT86F0u0wN9ag0uPsrmX6Rid/x5S7KI1SkS+qP6cdmgSP57uiF4dG6IKsWNfGBLY09H/CFlrg73WINQkkp2diKkdEmtZetn8+ZAKzR5eXN5FebiKt6pIkNLuSofjosypEs2o6boKsfpmbtOV0idOeWDM9C8EIcn3aZwk1s2KBDvt1DlY+i2Cuvhk3XoKLT+pq/bOC5QkcBABolcOXneZXLoQw9W1PH1f/of92Ytjj8okrWijcQAKlE5l8XoTb9qrOiZnDOhqwcMlB9H9rorq041I89hChohYoSkJElcM8V+r8WYN5axD1BNyfwaHAOm4UN2/VEYOkNSfMjmx2S0WW/F2ha8Jj4fc4QgqcXr+TnnbwqLkLTValK4Qa1pcv7PIbDq6zCUfxe04guZ8xEhPQjp17/G6IB/6uq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wnibxQ/cXEblVnM47wbCN3iy4eHjYB5MoIICrSYmd8nt4V0toLs084KJlmnur5FbApYM4W79ff4oZkW88Cg8Fv8TnWhh1Hqc4UlhMbRKm2QxDgfBxar3U7BwNR6prrXXjqfR7ja3tPli+H7Jez/xcTg32QpHAQAdTa7pSSgBvmOqzz175NAFIhwE9p3d71F9jLvhaPv8q1iKopL0kizwzEWElnXWmNhfLkl/Au8KujnoKUaxVdTe+zAZm2dOkejnpNVtVj0Aw9wKcG3ZQ1iRZrUFRIoPKYlmR+oi0LrupuhYABtgPbdCbDtezGTr0nw9wVd/rZ6V+1wcoJ6+8VAVueIdwI3brqm6EoFHiI8L6lER+9SefB8fHo4NYgr/I8jSxaa/2PLX2K/DjrlY6bN8fEcBAB7DXsuh8DITF6CYWj2HTFvqfzlic3QHXnHtvsTFNpyVY1LY8y/fRK2mwALN6IB5W3OuyoKiA3K0lJdQUv2gYhHWvPTV218HYrD0rkbMxRH0SiEEkrHDeOt5T1HtWD13D2/QvMu535fsfZyeaFDjdCE9M0Xi8Lfc7Xj1ZNGend7Jo7/cEiczFkc1vB4z2JpFGZreV2EdquyEzC2STFJtfimyx8QlLngEuR1cxH+lWEcFX+mvBa/eqktIRwEAH6VazFLPNsnHZqsI66TVoArQuUUGFAzr8MT8GZ9V6qpZa5D0jA/4eGi6Kq0smUgRExnqIbSMLWqDf/Pk2YT3MpHTu9VE3Dn9blgB6KsVIkWnB98Y2n/6DrZDcF94Ndu0Ka4U/RZwdV5O5KcO+lU2ZiIOYTYZ6Ie0d+tApxYxJ+YmxaDoCyRNe6crw/yzR5SflT8ddi/E2BM+l+nwVDiKZ/714fmrBxFKWuqLiQNHV19o1cZ8Ubun+ZtHQAASAACwDQABwQAAAAHwACqxBLL//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////0dQABIAArASAAHBAADhAPAAG+EA8AAVvU1W////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////RwEAEH1s3BdtHdF1ln55B24wdACF/ggcRtPmB4IUB6cZJ+m32I4R48ZkdhAFBulgWcsv0wZwH0o1yi3i4qm3rJ98AUKdB9PsNyG9gURV0bTw4myAj6g5Dgodfv6w9bsbOxsGUWkvgAJ3rrR010BvZbIa6CMRCQRjxkCfRF77ansRJZT0JzhtYeSS/ZJob8Rr2jrng3W2rkmHtE+rdqlPiHxmwkRZvYGhBxwiJO2L6f+l/cABsfs09rA+A0pHAQAREZay3TBUIAfMWhApE+LaPgeyOYtaPFONA9aC0h4QrFkaLZfb86678MK+zLgqDBsDoj50eZHMVcczRjs4sYlv7RG8RIWKb5lB9Kn/8+CkxiiA11cHH1yzLX2SKCmhsak/+P/zYQ1EDvEj33bl9e3Jd62cTI+Qw99KrsWnUMN8hFNeXzoGHA3aec+Li4NFboF8sa6lCPR6Csxsvxw8DJaWCnER5Z0p+nKhXavF/eNHQ0DX47ohycc87UcBABKsYHCHXXe3vK1cFYDWO6rhwM6hxCdJ+/X+VB1akQejL6iBMdUPuadUqBnbprwJM0dWpSSn9uuZZeqe46iZOGIJUo69d8x+ZSvPcBH/dK1Y0LJnoWdgWH51SQg7eYqcwjQW3BOy7ZF02Hn1EhTuhsN7ms8zv3WIeEBDBq0T3Idl+Tmw9iJU9skVYiwygHG2+0XwrLa6y+uiQPwMzrnEr1kuf24XoAqrJTZQiVH3aQF4d94yDreWu2KPRwEAE2FsynHZaUcBXEFbeX0nSxZ7sRcRjJvc7RYOny6N8QFwKDVO7jpRWWYM55kuepBOyZ+7BFYeG+FU1kR+ZfmqyDNkD4D1IPwNh6u9JQxDymfN/aMcQC3WxdvCKquPsAut6dugpGkOFtIe+W3ayc4V/J978P+h1EDFMbFjxRPuXht0K2dBQZCJ0ybISUDqWzhPuep8CdxSU4MvMVfdXh7FLl/BqKJUTT+vM+Pz3XnqCQQmH5TjQ4CK55VHAQAUEtgfkBwIYgtwHkhjmtLw7HNTeJeMfTjATEKcyuKzItSeYxHBmGzQ/+G2otpPCOkVAXJ9mfx7LxrW4joZ0ttTRQJ/wqMUK1IN349LiJoo8y/+FwN4jPNDwIleJG697riqnmLOweFW8spHKLBfnHcyC1pG6EIxFpTqUQ0KHqXD/KXIHKioJNAOVwQ1Gfloxebo/Tdtd00dpHP3gcsAOnV75APCYOjVIlwm2X6ViDeZw6Btdb/Br/+yokcBABU3+eOESLlneGbR5SLiL8wPkoRaZ5X7xFlMTMvsv9yHk26bVdmsubSdbYS1Hy64n0+NnL7C1aLD7aJxOudMjVW5goZbfO2KxBQkCD4HFA284wbaB5vOL7mRilCn6YEs1kiwf22+fBLNUmXDb2p353wrD/ygTDhlki66USvUmd/ZAs9uzAddegEzy7Xn00YysWTu/hegYyZtWFC+X5dhLubWJ7n96y5wjrP7PAOXoQQtFUH9j/rBiP/7RwEAFnL/wYKYuj80mPGtimSbF/E9K7XwjwBz8yHZubmVMTCmwkZBM4h0FR1thnUGiSjqjJT6SfunWCZ/dZDQplrzS00UKcUP399SyM+nNG1br8Za0ZYwWch8nyLHYXSRuxdnrfUUespsOQo1cWSLGf0pV2HIcHoiAAEKwPU6irB5BSoFvB1qKVjgEk+QwAEYAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAABHAQA3pAD/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////AwAAAwAAAwAAAwAAAwAAAwBbwUdBABgAAAHgAACAwAoxAAmBIREAB/SBAAAAAQnwAAAAAUGaJGxDv/6plgAAAwAAAwAAAwAAAwAAAwAAAwAAAwAKCKB0AIhy1ftwLNISWucTFC7xeBcaIzP3oZjZo8uT9hqZVstWGnrPz+vjaA5FuCO+K2w7/o39LygDO7aL+0zSrN90LW7r133x8+f+PEKk8d7pd2fj4RYuMOXOYunzFzRX/4IvR1XsK5WJYwVkOca3yfo7DTvUBP9rgSiTRwEAGQD6CFK1PBC4qYCa+coLVnX+jgODNrau5YJXIekDI4+wUNV+5T5HE4e2t5EGAjn77+kC1Vghmvx8KqPnylVUvsaTofheggxHsPuxn1zQt6nA59UglrRUMn8b4pmrvfqTBSqU949+AcNAI6M/eAqz6r0RG5KNeBhx8R2f0x2kujwHU3pc3rlPb6ZrFM/2HiG97eEIezrvWFG7YAAAAwAAAwAE1KRo1VfbdZQ/tOpNGxFmTcQoFidyD2tHAQAapTTIErUKA2Rc9uIzGJu+oW0uNOxRyl6oJNUNJp5L9TIshNS1CmUKgdCaE3LkLwdE8iUkUnIGfWLiWpWmjzsINYC8dnDaSptB53yJkBu0SsR00oo1PZ0pl4ZzoXGSYQJTPaVCbj6FNqm5wcnUqKTB/rgHdPdnDj0K8asLABeo/n3XCXrDorI+LYSD1FBgmV9O7RZdjfL0NnXOQkiq/ZGirwVV0cUF1aHtZx1yHlAAZKuuu7TqB13CAUcBADuRAP///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////yj/IrOvAEoXDNGy+nrxWN0l8cmuqWYaUJpuM9XgAAADAAADAAKmR0EAPAcQAACJHH4AAAAB4AAAgMAKMQAJSOERAAkQoQAAAAEJ8AAAAAFBnkJ4hf8AAAMAAAMAAAMAAAMAAAMAAAMAAAMAC/BmhyuvLmkCgKTgACEXfOVvHRHdpBEEmTTz9pIZCa2FD0CXukzDCakOHekTpJQSdsfd7a/jjM1/5lBtKCAGQ6zOCSQ6DeKtyw+CugDuuglGipwmvQW+FIDjnZ6HRd0uaSOGy6VB3h9MI1o4nqaCqVwwIgubYZFHAQA9XgD////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////WcZrO6BEiqf8pCxYwlz2mkdUzY/ipM/TIHS4m5xQAAAMAAAMAAA5sVm90p14dlvWgBgY7XQ9KVOJKLtaMAN5KiffVQtNuzW5DfL+RewZpAAADAAADAAAQMUdBAB4AAAHgAACAgAUhAAkswQAAAAEJ8AAAAAEBnmF0Qr8AAAMAAAMAAAMAAAMAAAMAAAMAAAMAABJfBjP2+4+W7ZybyT130+Ma4WSqICfd/dS4YtjrLlmh5VBlfrtwJqdN1PBTYDkwGOOONqZQeFN6lLGJoDzvuh3kv1aDBLqug+JhvrSeu5ebnvcrtQzb2REwJL3h9mvtkr0WfDu4AAADAAADAAs32Y4C/6Ns79oCGj6oqLltY3T4I0/QRwEAP5wA//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////8BeoWLRnKQmVgO/RBoBfcK85AAAAMAAAMACFhHQQAwBxAAAJcsfgAAAAHgAACAwAoxAAllAREACUjhAAAAAQnwAAAAAQGeY2pCvwAAAwAAAwAAAwAAAwAAAwAAAwAAAwAAEmDKfLGXsvBBQPNYXlEd6WueJ4deApfcHESlG+7V6u0AiWQqJvNZYM+3Js3Lj9Ldc9yYIHqruVwfMtCYGlX3wMavI/DrhMuJw+RreIF8SKsJD8CMccAAAAMAAAMACrFZOBgEqaP/8EyWsAHV6CgcAgfyox/roEcBADGuAP//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////AAADAAADAHTBR0EAEgAAAeAAAIDACjEACfGhEQAJZQEAAAABCfAAAAABQZpoSahBaJlMCHf//qmWAAADAAADAAADAAADAAADAAADAAADAAALf8A2bry6lUyIAQGNFfVK2Cd7h4qDqmqpvmXfkfTwo2Ab79AHhajxJ4MPWIgAAA84xLRIx7I2CrWjWe96OvgkzgS9mtvhuxdzAgpuIOJI3DEY9mviDDZz8XSAAAADAAADAB7AZkj9AAHHGvk+Pzlku8UkWa5HAQAzogD//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////6HjAkbF/gsWuvw4QAAAAwAAAwAccUdBADQHEAAApTx+AAAAAeAAAIDACjEACblhEQAJgSEAAAABCfAAAAABQZ6GRREsL/8AAAMAAAMAAAMAAAMAAAMAAAMAAAMAAA3URJB/3lMHSmOd0GYZnfpoR80WdqxlyHzPX+V81VUMeXIGrRgq5agd+ACdjoGI036yQ/rmpGw0CmMBrKwpI+nwFo3SP0s1rI2yHBZaiPJjSUgw33rBkxXcq55kfLf2sAAAAwAAAwACBWolidWDnIeQAAADRwEANbEA//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////8AAAMADulHQQA2NAD///////////////////////////////////////////////////////////////////8AAAHgAACAgAUhAAmdQQAAAAEJ8AAAAAEBnqV0Qr8AAAMAAAMAAAMAAAMAAAMAAAMAAAMAABJXNihCnx11JUosH2hBE53O/YN+GPHqcnJiQBIf3maTAAj5iRt+7GYUKBAU9iCXTiouCjGYgAAAAwAAAwA9p4HQBg2cAAADAAADAADGgUdBADc4EAAAs0x+AP////////////////////////////////////////////////////////////////8AAAHgAACAwAoxAAnVgREACblhAAAAAQnwAAAAAQGep2pCvwAAAwAAAwAAAwAAAwAAAwAAAwAAAwAAAwBR6/L83y+ZevtMZ0FW4lp8qV7fVXQAhLAWlS6mDxvpaSUgChorvgTMXtxJEIAAAAMAAAMACqFCAAADAAADAAADAAz4R0EAOCsA////////////////////////////////////////////////////////AAAB4AAAgMAKMQALYiERAAnVgQAAAAEJ8AAAAAFBmqxJqEFsmUwId//+qZYAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAApQTq0hABLvkcWCYrAaRRPNDrECJGlF/11BYvG9+JJ9Y86nxnmQzPxtAAe1UgOsXAAADAAADAAADAAADAAADAAADAAADA/JHQQA5JhAAAMFcfgD/////////////////////////////////////////AAAB4AAAgMAKMQALKeERAAnxoQAAAAEJ8AAAAAFBnspFFSwv/wAAAwAAAwAAAwAAAwAAAwAAAwAAAwAADdRFmvrVE0KXDOGwWddlwYa1foib7tXZKmkua6R4APb4b8+tXwdSNNqgf2IVNwGTohgQAcMvp6SiQxpiQym4AAADAAADAANUNUAAAAMAAAMAAAMBN0dBADo8AP//////////////////////////////////////////////////////////////////////////////AAAB4AAAgIAFIQALDcEAAAABCfAAAAABAZ7pdEK/AAADAAADAAADAAADAAADAAADAAADAAADAFHTAfujIUaaLSuklb9y0/so9AEtQAqkAxOviALQZ5jNt/iOkABrCOZ4md0iUnFwAAADAAADAALwckAAAAMAAAMAAATcR0EAO0IQAADPbH4A//////////////////////////////////////////////////////////////////////////////8AAAHgAACAwAoxAAtGAREACynhAAAAAQnwAAAAAQGe62pCvwAAAwAAAwAAAwAAAwAAAwAAAwAAAwAAAwBR6/L83y+WryR9gmVKPGbIhJpkgAFgHCej3gB6rAHPgHHAAAADAAADAAAYIV0AAAMAAAMAAAMABnxHQQA8UQD//////////////////////////////////////////////////////////////////////////////////////////////////////////wAAAeAAAIDACjEAC9KhEQALRgEAAAABCfAAAAABQZrwSahBbJlMCG///qeEAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAAZ8UdBAD00EAAA3Xx+AP///////////////////////////////////////////////////////////wAAAeAAAIDACjEAC5phEQALYiEAAAABCfAAAAABQZ8ORRUsL/8AAAMAAAMAAAMAAAMAAAMAAAMAAAMAAA3URZr61RNClwzhI2ZXdRHYLZWc1yTgKRhTIXBNABHQKIIyYNyc+AaEn1jhATEAAAMAAAMAAAMAckkIAAADAAADAAADAEbBR0EAPkYA////////////////////////////////////////////////////////////////////////////////////////////AAAB4AAAgIAFIQALfkEAAAABCfAAAAABAZ8tdEK/AAADAAADAAADAAADAAADAAADAAADAAADAFHTAfujIUAYRtY0f/43cIs2OjxACR2hMR1QBGYX+34JGAAAAwAAAwAAAwKEJ6AAAAMAAAMAAAMA3oFHQQA/QhAAAOuMfgD//////////////////////////////////////////////////////////////////////////////wAAAeAAAIDACjEAC7aBEQALmmEAAAABCfAAAAABAZ8vakK/AAADAAADAAADAAADAAADAAADAAADAAADAFHr8vzfL5avJH2CZUo8ZsiEmmSAAWAcJ6PeAHqsAc+AccAAAAMAAAMAABghXQAAAwAAAwAAAwAGfEdBADBRAP//////////////////////////////////////////////////////////////////////////////////////////////////////////AAAB4AAAgMAKMQANQyERAAu2gQAAAAEJ8AAAAAFBmzRJqEFsmUwIZ//+nhAAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAGVAR0EAMTQQAAD5nH4A////////////////////////////////////////////////////////////AAAB4AAAgMAKMQANCuERAAvSoQAAAAEJ8AAAAAFBn1JFFSwv/wAAAwAAAwAAAwAAAwAAAwAAAwAAAwAADdRFmvrVE0KXDOEjZld1EdgtlZzXJOApGFMhcE0AEdAogjJg3Jz4BoSfWOEBMQAAAwAAAwAAAwBySQgAAAMAAAMAAAMARsFHQQAyRgD///////////////////////////////////////////////////////////////////////////////////////////8AAAHgAACAgAUhAAvuwQAAAAEJ8AAAAAEBn3F0Qr8AAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAUdMB+6MhQBhG1jR//jdwizY6PEAJHaExHVAEZhf7fgkYAAADAAADAAADAoQnoAAAAwAAAwAAAwDegEdBADNCEAABB6x+AP//////////////////////////////////////////////////////////////////////////////AAAB4AAAgMAKMQANJwERAA0K4QAAAAEJ8AAAAAEBn3NqQr8AAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAUevy/N8vlq8kfYJlSjxmyISaZIABYBwno94AeqwBz4BxwAAAAwAAAwAAGCFdAAADAAADAAADAAZ8R0EANFIA////////////////////////////////////////////////////////////////////////////////////////////////////////////AAAB4AAAgMAKMQANs6ERAA0nAQAAAAEJ8AAAAAFBm3hJqEFsmUwIV//+OEAAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAYtHQQA1NBAAARW8fgD///////////////////////////////////////////////////////////8AAAHgAACAwAoxAA17YREADUMhAAAAAQnwAAAAAUGflkUVLC//AAADAAADAAADAAADAAADAAADAAADAAAN1EWa+tUTQpcM4SNmV3UR2C2VnNck4CkYUyFwTQAR0CiCMmDcnPgGhJ9Y4QExAAADAAADAAADAHJJCAAAAwAAAwAAAwBGwEdBADZGAP///////////////////////////////////////////////////////////////////////////////////////////wAAAeAAAICABSEADV9BAAAAAQnwAAAAAQGftXRCvwAAAwAAAwAAAwAAAwAAAwAAAwAAAwAAAwBR0wH7oyFAGEbWNH/+N3CLNjo8QAkdoTEdUARmF/t+CRgAAAMAAAMAAAMChCegAAADAAADAAADAN6BR0EAN0IQAAEjzH4A//////////////////////////////////////////////////////////////////////////////8AAAHgAACAwAoxAA2XgREADXthAAAAAQnwAAAAAQGft2pCvwAAAwAAAwAAAwAAAwAAAwAAAwAAAwAAAwBR6/L83y+WryR9gmVKPGbIhJpkgAFgHCej3gB6rAHPgHHAAAADAAADAAAYIV0AAAMAAAMAAAMABn0=" diff --git a/src/webserver.go b/src/webserver.go index 01d3beb..4bce24d 100644 --- a/src/webserver.go +++ b/src/webserver.go @@ -15,6 +15,7 @@ import ( "xteve/src/internal/authentication" "github.com/gorilla/websocket" + "github.com/samber/lo" ) // webAlerts channel to send to client @@ -465,7 +466,7 @@ func WS(w http.ResponseWriter, r *http.Request) { response.Settings, err = updateServerSettings(request) if err == nil { - response.OpenMenu = strconv.Itoa(indexOfString("settings", System.WEB.Menu)) + response.OpenMenu = strconv.Itoa(lo.IndexOf(System.WEB.Menu, "settings")) if Settings.AuthenticationWEB == true && authenticationUpdate == false { response.Reload = true @@ -482,7 +483,7 @@ func WS(w http.ResponseWriter, r *http.Request) { if Settings.HostIP != previousHostIP { showInfo("Web server:" + fmt.Sprintf("Changing host IP to %s", Settings.HostIP)) - + reinitialize() response.OpenLink = System.URLBase + "/web/" @@ -498,43 +499,43 @@ func WS(w http.ResponseWriter, r *http.Request) { case "saveFilesM3U": err = saveFiles(request, "m3u") if err == nil { - response.OpenMenu = strconv.Itoa(indexOfString("playlist", System.WEB.Menu)) + response.OpenMenu = strconv.Itoa(lo.IndexOf(System.WEB.Menu, "playlist")) } case "updateFileM3U": err = updateFile(request, "m3u") if err == nil { - response.OpenMenu = strconv.Itoa(indexOfString("playlist", System.WEB.Menu)) + response.OpenMenu = strconv.Itoa(lo.IndexOf(System.WEB.Menu, "playlist")) } case "saveFilesHDHR": err = saveFiles(request, "hdhr") if err == nil { - response.OpenMenu = strconv.Itoa(indexOfString("playlist", System.WEB.Menu)) + response.OpenMenu = strconv.Itoa(lo.IndexOf(System.WEB.Menu, "playlist")) } case "updateFileHDHR": err = updateFile(request, "hdhr") if err == nil { - response.OpenMenu = strconv.Itoa(indexOfString("playlist", System.WEB.Menu)) + response.OpenMenu = strconv.Itoa(lo.IndexOf(System.WEB.Menu, "playlist")) } case "saveFilesXMLTV": err = saveFiles(request, "xmltv") if err == nil { - response.OpenMenu = strconv.Itoa(indexOfString("xmltv", System.WEB.Menu)) + response.OpenMenu = strconv.Itoa(lo.IndexOf(System.WEB.Menu, "xmltv")) } case "updateFileXMLTV": err = updateFile(request, "xmltv") if err == nil { - response.OpenMenu = strconv.Itoa(indexOfString("xmltv", System.WEB.Menu)) + response.OpenMenu = strconv.Itoa(lo.IndexOf(System.WEB.Menu, "xmltv")) } case "saveFilter": response.Settings, err = saveFilter(request) if err == nil { - response.OpenMenu = strconv.Itoa(indexOfString("filter", System.WEB.Menu)) + response.OpenMenu = strconv.Itoa(lo.IndexOf(System.WEB.Menu, "filter")) } case "saveEpgMapping": @@ -543,20 +544,20 @@ func WS(w http.ResponseWriter, r *http.Request) { case "saveUserData": err = saveUserData(request) if err == nil { - response.OpenMenu = strconv.Itoa(indexOfString("users", System.WEB.Menu)) + response.OpenMenu = strconv.Itoa(lo.IndexOf(System.WEB.Menu, "users")) } case "saveNewUser": err = saveNewUser(request) if err == nil { - response.OpenMenu = strconv.Itoa(indexOfString("users", System.WEB.Menu)) + response.OpenMenu = strconv.Itoa(lo.IndexOf(System.WEB.Menu, "users")) } case "resetLogs": WebScreenLog.Log = make([]string, 0) WebScreenLog.Errors = 0 WebScreenLog.Warnings = 0 - response.OpenMenu = strconv.Itoa(indexOfString("log", System.WEB.Menu)) + response.OpenMenu = strconv.Itoa(lo.IndexOf(System.WEB.Menu, "log")) case "xteveBackup": file, errNew := xteveBackup() diff --git a/src/xepg.go b/src/xepg.go index 253509a..dba6762 100644 --- a/src/xepg.go +++ b/src/xepg.go @@ -18,6 +18,8 @@ import ( "time" "xteve/src/internal/imgcache" + + "github.com/samber/lo" ) // Check provider XMLTV File @@ -202,7 +204,6 @@ func createXEPGMapping() { } Data.XMLTV.Mapping = tmpMap - tmpMap = make(map[string]interface{}) } else { @@ -274,7 +275,7 @@ func createXEPGDatabase() (err error) { for { - if indexOfFloat64(firstFreeNumber, allChannelNumbers) == -1 { + if lo.IndexOf(allChannelNumbers, firstFreeNumber) == -1 { xChannelID = fmt.Sprintf("%g", firstFreeNumber) allChannelNumbers = append(allChannelNumbers, firstFreeNumber) return @@ -284,7 +285,6 @@ func createXEPGDatabase() (err error) { } - return } var generateHashForChannel = func(m3uID string, name string, groupTitle string, tvgID string, tvgName string, uuidKey string, uuidValue string) string { @@ -382,6 +382,7 @@ func createXEPGDatabase() (err error) { } // Rename the Channel if names are different, update regex is specified and matches new channel name + // TODO: Bugs here. Make regex length check first. Move this block above uuid checks. Replace continue with break (?) if dxc.Name == m3uChannel.Name { continue } @@ -579,24 +580,24 @@ func mapping() (err error) { xmltvNameSolid := strings.ReplaceAll(xmltvName.Value, " ", "") xepgNameSolid := strings.ReplaceAll(xepgChannel.Name, " ", "") - if strings.EqualFold(xmltvNameSolid, xepgNameSolid) { - xepgChannel.XmltvFile = file - xepgChannel.XMapping = xmltvChannel.(map[string]interface{})["id"].(string) - // xepgChannel.XActive = true - - // If there is a Logo in the XMLTV file, this will be used. - // If not, then the Logo from the M3U file. - if icon, ok := xmltvChannel.(map[string]interface{})["icon"].(string); ok { - if len(icon) > 0 { - xepgChannel.TvgLogo = icon - } - } + if strings.EqualFold(xmltvNameSolid, xepgNameSolid) == false { + continue + } + + xepgChannel.XmltvFile = file + xepgChannel.XMapping = xmltvChannel.(map[string]interface{})["id"].(string) + // xepgChannel.XActive = true - break xmltvMapLoop + // If there is a Logo in the XMLTV file, this will be used. + // If not, then the Logo from the M3U file. + if icon, ok := xmltvChannel.(map[string]interface{})["icon"].(string); ok { + if len(icon) > 0 { + xepgChannel.TvgLogo = icon + } } + break xmltvMapLoop } - } } @@ -695,7 +696,7 @@ func createXMLTVFile() (err error) { for _, file := range files { - if indexOfString(file.Name(), Data.Cache.ImagesCache) == -1 { + if lo.IndexOf(Data.Cache.ImagesCache, file.Name()) == -1 { Data.Cache.ImagesCache = append(Data.Cache.ImagesCache, file.Name()) } @@ -1088,25 +1089,22 @@ func cleanupXEPG() { Data.XEPG.XEPGCount = 0 for id, dxc := range Data.XEPG.Channels { - var xepgChannel XEPGChannelStruct err := json.Unmarshal([]byte(mapToJSON(dxc)), &xepgChannel) - if err == nil { - - if indexOfString(xepgChannel.Name+xepgChannel.FileM3UID, Data.Cache.Streams.Active) == -1 { - delete(Data.XEPG.Channels, id) - } else { - if xepgChannel.XActive == true { - Data.XEPG.XEPGCount++ - } - } - - if indexOfString(xepgChannel.FileM3UID, sourceIDs) == -1 { - delete(Data.XEPG.Channels, id) - } - + if err != nil { + continue + } + if lo.IndexOf(Data.Cache.Streams.Active, xepgChannel.Name+xepgChannel.FileM3UID) == -1 { + delete(Data.XEPG.Channels, id) + continue + } + if lo.IndexOf(sourceIDs, xepgChannel.FileM3UID) == -1 { + delete(Data.XEPG.Channels, id) + continue + } + if xepgChannel.XActive { + Data.XEPG.XEPGCount++ } - } err := saveMapToJSONFile(System.File.XEPG, Data.XEPG.Channels) diff --git a/ts/base_ts.ts b/ts/base_ts.ts index ecce364..256af3e 100644 --- a/ts/base_ts.ts +++ b/ts/base_ts.ts @@ -21,7 +21,7 @@ menuItems.push(new MainMenuItem("logout", "{{.mainMenu.item.logout}}", "logout.p // Settings categories var settingsCategory = new Array() -settingsCategory.push(new SettingsCategoryItem("{{.settings.category.general}}", "tlsMode,xteveAutoUpdate,hostIP,tuner,epgSource,api")) +settingsCategory.push(new SettingsCategoryItem("{{.settings.category.general}}", "tlsMode,xteveAutoUpdate,hostIP,tuner,epgSource,disallowURLDuplicates,api")) settingsCategory.push(new SettingsCategoryItem("{{.settings.category.files}}", "update,files.update,temp.path,cache.images,xepg.replace.missing.images")) settingsCategory.push(new SettingsCategoryItem("{{.settings.category.streaming}}", "buffer,udpxy,buffer.size.kb,storeBufferInRAM,buffer.timeout,user.agent,ffmpeg.path,ffmpeg.options,vlc.path,vlc.options")) settingsCategory.push(new SettingsCategoryItem("{{.settings.category.backup}}", "backup.path,backup.keep")) diff --git a/ts/settings_ts.ts b/ts/settings_ts.ts index a53fa3c..5543fc6 100644 --- a/ts/settings_ts.ts +++ b/ts/settings_ts.ts @@ -160,6 +160,20 @@ class SettingsCategory { setting.appendChild(tdRight) break + case "disallowURLDuplicates": + var tdLeft = document.createElement("TD") + tdLeft.innerHTML = "{{.settings.disallowURLDuplicates.title}}" + ":" + + var tdRight = document.createElement("TD") + var input = content.createCheckbox(settingsKey) + input.checked = data + input.setAttribute("onchange", "javascript: this.className = 'changed'") + tdRight.appendChild(input) + + setting.appendChild(tdLeft) + setting.appendChild(tdRight) + break + case "authentication.web": var tdLeft = document.createElement("TD") tdLeft.innerHTML = "{{.settings.authenticationWEB.title}}" + ":" @@ -448,6 +462,10 @@ class SettingsCategory { text = "{{.settings.tlsMode.description}}" break + case "disallowURLDuplicates": + text = "{{.settings.disallowURLDuplicates.description}}" + break + case "authentication.web": text = "{{.settings.authenticationWEB.description}}" break From dc0583f53413555e191fff840ddae359a57a4bdf Mon Sep 17 00:00:00 2001 From: SCP002 Date: Wed, 4 May 2022 00:22:32 +0300 Subject: [PATCH 107/189] Remove redundant channel name equality check in update by regex part --- src/xepg.go | 4 ---- 1 file changed, 4 deletions(-) diff --git a/src/xepg.go b/src/xepg.go index dba6762..c088e85 100644 --- a/src/xepg.go +++ b/src/xepg.go @@ -382,10 +382,6 @@ func createXEPGDatabase() (err error) { } // Rename the Channel if names are different, update regex is specified and matches new channel name - // TODO: Bugs here. Make regex length check first. Move this block above uuid checks. Replace continue with break (?) - if dxc.Name == m3uChannel.Name { - continue - } if len(dxc.UpdateChannelNameRegex) == 0 { continue } From da45ced52e32ca53a6599651f3302ecb0ed992b0 Mon Sep 17 00:00:00 2001 From: SCP002 Date: Wed, 4 May 2022 01:08:57 +0300 Subject: [PATCH 108/189] Bring back channel name equality check in update by regex part. With explaination. --- src/xepg.go | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/xepg.go b/src/xepg.go index c088e85..25b2596 100644 --- a/src/xepg.go +++ b/src/xepg.go @@ -381,10 +381,14 @@ func createXEPGDatabase() (err error) { } - // Rename the Channel if names are different, update regex is specified and matches new channel name + // Rename the Channel if it's update regex matches new channel name if len(dxc.UpdateChannelNameRegex) == 0 { continue } + // Guard against the situation when both channels have UUIDValue, they are different, but names are the same + if dxc.Name == m3uChannel.Name { + continue + } nameRx, err := regexp.Compile(dxc.UpdateChannelNameRegex) if err != nil { ShowError(err, 1018) From b8290ed1d20a7faaf6d2461eb2f8469db059f6dd Mon Sep 17 00:00:00 2001 From: SCP002 Date: Wed, 4 May 2022 11:49:59 +0300 Subject: [PATCH 109/189] Remove "Fill Missing EPG Data" option from M3U group title filter popup, preparing to reimplement it. Reasons: 1) It was not working. Assigning DefaultMissingEPG had no effect. 2) Why restrict user in automapping by only allowing it to work if you have a filter set up? 3) Why was it stored per channel, not as a general preference? --- html/lang/en.json | 7 ------- src/data.go | 2 -- src/m3u.go | 1 - src/struct-system.go | 4 ---- src/xepg.go | 18 ++---------------- ts/base_ts.ts | 1 - ts/menu_ts.ts | 22 ---------------------- 7 files changed, 2 insertions(+), 53 deletions(-) diff --git a/html/lang/en.json b/html/lang/en.json index 7a6cff6..bcbfa76 100644 --- a/html/lang/en.json +++ b/html/lang/en.json @@ -124,14 +124,7 @@ "title": "Starting Channel Number", "placeholder": "", "description": "" - }, - "defaultMissingEPG": - { - "title": "Fill Missing EPG Data", - "placeholder": "", - "description": "When there is no matching EPG data for channel,
autofill with xTeVe dummy EPG data?" } - }, "playlist": { diff --git a/src/data.go b/src/data.go index de00005..6bffdd6 100644 --- a/src/data.go +++ b/src/data.go @@ -420,7 +420,6 @@ func saveFilter(request RequestStruct) (settings SettingsStruct, err error) { defaultFilter.CaseSensitive = false defaultFilter.PreserveMapping = true defaultFilter.StartingChannel = strconv.FormatFloat(Settings.MappingFirstChannel, 'f', -1, 64) // 1000 - defaultFilter.DefaultMissingEPG = "-" filterMap = Settings.Filter newData = request.Filter @@ -773,7 +772,6 @@ func createFilterRules() (err error) { dataFilter.CaseSensitive = filter.CaseSensitive dataFilter.PreserveMapping = filter.PreserveMapping dataFilter.StartingChannel = filter.StartingChannel - dataFilter.DefaultMissingEPG = filter.DefaultMissingEPG dataFilter.Rule = fmt.Sprintf("%s%s%s", filter.Filter, include, exclude) dataFilter.Type = filter.Type diff --git a/src/m3u.go b/src/m3u.go index 5a93dc3..29d40a6 100644 --- a/src/m3u.go +++ b/src/m3u.go @@ -108,7 +108,6 @@ func filterThisStream(s interface{}) (status bool) { match = true stream["_preserve-mapping"] = strconv.FormatBool(filter.PreserveMapping) stream["_starting-channel"] = filter.StartingChannel - stream["_default-missing-epg"] = filter.DefaultMissingEPG } case "custom-filter": diff --git a/src/struct-system.go b/src/struct-system.go index b8761a8..7a468c6 100644 --- a/src/struct-system.go +++ b/src/struct-system.go @@ -178,7 +178,6 @@ type Filter struct { Rule string Type string StartingChannel string - DefaultMissingEPG string } // XEPGChannelStruct : XEPG Structure @@ -211,7 +210,6 @@ type XEPGChannelStruct struct { XUpdateChannelGroup bool `json:"x-update-channel-group,required"` XDescription string `json:"x-description,required"` XTimeshift string `json:"x-timeshift,required"` - DefaultMissingEPG string `json:"x-default-missing-epg,required"` } // M3UChannelStructXEPG : M3U Structure for XEPG @@ -231,7 +229,6 @@ type M3UChannelStructXEPG struct { Values string `json:"_values,required"` PreserveMapping string `json:"_preserve-mapping,required"` StartingChannel string `json:"_starting-channel,required"` - DefaultMissingEPG string `json:"_default-missing-epg,required"` } // FilterStruct : Filter Structure @@ -247,7 +244,6 @@ type FilterStruct struct { Rule string `json:"rule,omitempty"` Type string `json:"type,required"` StartingChannel string `json:"startingChannel,required"` - DefaultMissingEPG string `json:"defaultMissingEPG,required"` } // StreamingURLS : Information on all Streaming URL's diff --git a/src/xepg.go b/src/xepg.go index 25b2596..43d233c 100644 --- a/src/xepg.go +++ b/src/xepg.go @@ -486,7 +486,6 @@ func createXEPGDatabase() (err error) { newChannel.URL = m3uChannel.URL newChannel.XmltvFile = "" newChannel.XMapping = "" - newChannel.DefaultMissingEPG = m3uChannel.DefaultMissingEPG if len(m3uChannel.UUIDKey) > 0 { newChannel.UUIDKey = m3uChannel.UUIDKey @@ -530,20 +529,13 @@ func mapping() (err error) { // Values can be "-", therefore len <= 1 // If either XmltvFile (XMLTV file / EPG source) or XMapping (XMLTV Channel / EPG program) is "-" or null, then look for a matching EPG program. - // If nothing matches, look for DefaultMissingEPG (a default Dummy xTeVe preference) and set it if len(xepgChannel.XmltvFile) <= 1 || len(xepgChannel.XMapping) <= 1 { var tvgID = xepgChannel.TvgID // Set default for new Channel - if len(xepgChannel.DefaultMissingEPG) > 1 { - xepgChannel.XmltvFile = "xTeVe Dummy" - xepgChannel.XMapping = xepgChannel.DefaultMissingEPG - xepgChannel.XActive = true - } else { - xepgChannel.XmltvFile = "-" - xepgChannel.XMapping = "-" - } + xepgChannel.XmltvFile = "-" + xepgChannel.XMapping = "-" Data.XEPG.Channels[xepg] = xepgChannel @@ -661,12 +653,6 @@ func mapping() (err error) { xepgChannel.XActive = false } - if len(xepgChannel.DefaultMissingEPG) > 1 && xepgChannel.XActive == false { - xepgChannel.XmltvFile = "xTeVe Dummy" - xepgChannel.XMapping = xepgChannel.DefaultMissingEPG - xepgChannel.XActive = true - } - Data.XEPG.Channels[xepg] = xepgChannel } diff --git a/ts/base_ts.ts b/ts/base_ts.ts index 256af3e..d952a06 100644 --- a/ts/base_ts.ts +++ b/ts/base_ts.ts @@ -85,7 +85,6 @@ function getLocalData(dataType, id):object { data["type"] = "group-title" data["preserveMapping"] = true data["startingChannel"] = SERVER["settings"]["mapping.first.channel"] - data["defaultMissingEPG"] = "-" SERVER["settings"]["filter"][id] = data } data = SERVER["settings"]["filter"][id] diff --git a/ts/menu_ts.ts b/ts/menu_ts.ts index 24fba43..5eddc5c 100644 --- a/ts/menu_ts.ts +++ b/ts/menu_ts.ts @@ -1423,28 +1423,6 @@ function openPopUp(dataType, element) { input.setAttribute("placeholder", "{{.filter.startingChannel.placeholder}}") content.appendRow("{{.filter.startingChannel.title}}", input) - // Fill Missing EPG Data - - // The following code only works when xTeVe Dummy already exists - // var dbKey:string = "defaultMissingEPG" - // var xmltv:XMLTVFile = new XMLTVFile() - // var select = xmltv.getPrograms("xTeVe Dummy", data[dbKey]) - // select.setAttribute("name", dbKey) - // select.setAttribute("id", "popup-missing-epg") - - // The workaround is currently to hard code the xTeVe Dummy data - var dbKey:string = "defaultMissingEPG" - var listOptions = {"text": ["-", "30 Minutes (30_Minutes)", "60 Minutes (60_Minutes)", "90 Minutes (90_Minutes)", - "120 Minutes (120_Minutes)", "180 Minutes (30_Minutes)", "240 Minutes (30_Minutes)", "360 Minutes (30_Minutes)"], - "value": ["-", "30_Minutes", "60_Minutes", "90_Minutes", "120_Minutes", "180_Minutes", "240_Minutes", "360_Minutes", ]} - var text:string[] = listOptions["text"] - var values:string[] = listOptions["value"] - var select = content.createSelect(text, values, data[dbKey], dbKey) - - select.setAttribute("onchange", "javascript: this.className = 'changed'") - content.appendRow("{{.filter.defaultMissingEPG.title}}", select) - content.description("{{.filter.defaultMissingEPG.description}}") - break default: From 2b6be6d7c47bb0b0eaf5783e545cde1f02dbab5d Mon Sep 17 00:00:00 2001 From: SCP002 Date: Wed, 4 May 2022 15:33:28 +0300 Subject: [PATCH 110/189] Add settings option to automatically assign xTeVe Dummy mapping if no real EPG found --- html/js/base_ts.js | 2 +- html/js/menu_ts.js | 18 ------------------ html/js/settings_ts.js | 20 ++++++++++++++++++++ html/lang/en.json | 7 +++++++ src/struct-system.go | 1 + src/struct-webserver.go | 3 ++- src/system.go | 1 + src/webUI.go | 8 ++++---- src/webserver.go | 2 +- src/xepg.go | 10 ++++++++-- ts/base_ts.ts | 1 + ts/menu_ts.ts | 2 +- ts/settings_ts.ts | 25 +++++++++++++++++++++++++ 13 files changed, 72 insertions(+), 28 deletions(-) diff --git a/html/js/base_ts.js b/html/js/base_ts.js index ef87c29..c8e97f7 100644 --- a/html/js/base_ts.js +++ b/html/js/base_ts.js @@ -19,6 +19,7 @@ menuItems.push(new MainMenuItem("logout", "{{.mainMenu.item.logout}}", "logout.p // Settings categories var settingsCategory = new Array(); settingsCategory.push(new SettingsCategoryItem("{{.settings.category.general}}", "tlsMode,xteveAutoUpdate,hostIP,tuner,epgSource,disallowURLDuplicates,api")); +settingsCategory.push(new SettingsCategoryItem("{{.settings.category.mapping}}", "defaultMissingEPG")); settingsCategory.push(new SettingsCategoryItem("{{.settings.category.files}}", "update,files.update,temp.path,cache.images,xepg.replace.missing.images")); settingsCategory.push(new SettingsCategoryItem("{{.settings.category.streaming}}", "buffer,udpxy,buffer.size.kb,storeBufferInRAM,buffer.timeout,user.agent,ffmpeg.path,ffmpeg.options,vlc.path,vlc.options")); settingsCategory.push(new SettingsCategoryItem("{{.settings.category.backup}}", "backup.path,backup.keep")); @@ -73,7 +74,6 @@ function getLocalData(dataType, id) { data["type"] = "group-title"; data["preserveMapping"] = true; data["startingChannel"] = SERVER["settings"]["mapping.first.channel"]; - data["defaultMissingEPG"] = "-"; SERVER["settings"]["filter"][id] = data; } data = SERVER["settings"]["filter"][id]; diff --git a/html/js/menu_ts.js b/html/js/menu_ts.js index e2edd46..dce5864 100644 --- a/html/js/menu_ts.js +++ b/html/js/menu_ts.js @@ -1137,24 +1137,6 @@ function openPopUp(dataType, element) { var input = content.createInput("text", dbKey, data[dbKey]); input.setAttribute("placeholder", "{{.filter.startingChannel.placeholder}}"); content.appendRow("{{.filter.startingChannel.title}}", input); - // Fill Missing EPG Data - // The following code only works when xTeVe Dummy already exists - // var dbKey:string = "defaultMissingEPG" - // var xmltv:XMLTVFile = new XMLTVFile() - // var select = xmltv.getPrograms("xTeVe Dummy", data[dbKey]) - // select.setAttribute("name", dbKey) - // select.setAttribute("id", "popup-missing-epg") - // The workaround is currently to hard code the xTeVe Dummy data - var dbKey = "defaultMissingEPG"; - var listOptions = { "text": ["-", "30 Minutes (30_Minutes)", "60 Minutes (60_Minutes)", "90 Minutes (90_Minutes)", - "120 Minutes (120_Minutes)", "180 Minutes (30_Minutes)", "240 Minutes (30_Minutes)", "360 Minutes (30_Minutes)"], - "value": ["-", "30_Minutes", "60_Minutes", "90_Minutes", "120_Minutes", "180_Minutes", "240_Minutes", "360_Minutes",] }; - var text = listOptions["text"]; - var values = listOptions["value"]; - var select = content.createSelect(text, values, data[dbKey], dbKey); - select.setAttribute("onchange", "javascript: this.className = 'changed'"); - content.appendRow("{{.filter.defaultMissingEPG.title}}", select); - content.description("{{.filter.defaultMissingEPG.description}}"); break; default: break; diff --git a/html/js/settings_ts.js b/html/js/settings_ts.js index 2b18c86..622808a 100644 --- a/html/js/settings_ts.js +++ b/html/js/settings_ts.js @@ -301,6 +301,23 @@ class SettingsCategory { setting.appendChild(tdLeft); setting.appendChild(tdRight); break; + case "defaultMissingEPG": + var tdLeft = document.createElement("TD"); + tdLeft.innerHTML = "{{.settings.defaultMissingEPG.title}}" + ":"; + var tdRight = document.createElement("TD"); + var text = [ + "-", "30 Minutes (30_Minutes)", "60 Minutes (60_Minutes)", "90 Minutes (90_Minutes)", + "120 Minutes (120_Minutes)", "180 Minutes (30_Minutes)", "240 Minutes (30_Minutes)", "360 Minutes (30_Minutes)" + ]; + var values = [ + "-", "30_Minutes", "60_Minutes", "90_Minutes", "120_Minutes", "180_Minutes", "240_Minutes", "360_Minutes" + ]; + var select = content.createSelect(text, values, data, settingsKey); + select.setAttribute("onchange", "javascript: this.className = 'changed'"); + tdRight.appendChild(select); + setting.appendChild(tdLeft); + setting.appendChild(tdRight); + break; case "backup.keep": var tdLeft = document.createElement("TD"); tdLeft.innerHTML = "{{.settings.backupKeep.title}}" + ":"; @@ -432,6 +449,9 @@ class SettingsCategory { case "api": text = "{{.settings.api.description}}"; break; + case "defaultMissingEPG": + text = "{{.settings.defaultMissingEPG.description}}"; + break; case "files.update": text = "{{.settings.filesUpdate.description}}"; break; diff --git a/html/lang/en.json b/html/lang/en.json index bcbfa76..511ae8c 100644 --- a/html/lang/en.json +++ b/html/lang/en.json @@ -377,6 +377,7 @@ "category": { "general": "General", + "mapping": "Mapping", "files": "Files", "streaming": "Streaming", "backup": "Backup", @@ -393,6 +394,12 @@ "title": "API Interface", "description": "Via API interface it is possible to send commands to xTeVe. API documentation is here" }, + "defaultMissingEPG": + { + "title": "Fill Missing EPG Data", + "placeholder": "", + "description": "When there is no matching EPG data for channel,
autofill with xTeVe dummy EPG data?" + }, "disallowURLDuplicates": { "title": "Disallow URL duplicates", diff --git a/src/struct-system.go b/src/struct-system.go index 7a468c6..65cf99d 100644 --- a/src/struct-system.go +++ b/src/struct-system.go @@ -284,6 +284,7 @@ type SettingsStruct struct { BufferSize int `json:"buffer.size.kb"` BufferTimeout float64 `json:"buffer.timeout"` CacheImages bool `json:"cache.images"` + DefaultMissingEPG string `json:"defaultMissingEPG,required"` DisallowURLDuplicates bool `json:"disallowURLDuplicates"` EpgSource string `json:"epgSource"` FFmpegOptions string `json:"ffmpeg.options"` diff --git a/src/struct-webserver.go b/src/struct-webserver.go index 18c3e32..9b6643f 100644 --- a/src/struct-webserver.go +++ b/src/struct-webserver.go @@ -26,9 +26,10 @@ type RequestStruct struct { BackupKeep *int `json:"backup.keep,omitempty"` BackupPath *string `json:"backup.path,omitempty"` Buffer *string `json:"buffer,omitempty"` - BufferSize *int `json:"buffer.size.kb, omitempty"` + BufferSize *int `json:"buffer.size.kb,omitempty"` BufferTimeout *float64 `json:"buffer.timeout,omitempty"` CacheImages *bool `json:"cache.images,omitempty"` + DefaultMissingEPG *string `json:"defaultMissingEPG,omitempty"` DisallowURLDuplicates *bool `json:"disallowURLDuplicates,omitempty"` EpgSource *string `json:"epgSource,omitempty"` FFmpegOptions *string `json:"ffmpeg.options,omitempty"` diff --git a/src/system.go b/src/system.go index b0490a3..1bbe448 100644 --- a/src/system.go +++ b/src/system.go @@ -116,6 +116,7 @@ func loadSettings() (settings SettingsStruct, err error) { defaults["buffer.timeout"] = 500 defaults["buffer"] = "-" defaults["cache.images"] = false + defaults["defaultMissingEPG"] = "-" defaults["disallowURLDuplicates"] = false defaults["epgSource"] = "PMS" defaults["ffmpeg.options"] = System.FFmpeg.DefaultOptions diff --git a/src/webUI.go b/src/webUI.go index c218b77..c2cc9f1 100644 --- a/src/webUI.go +++ b/src/webUI.go @@ -25,14 +25,14 @@ func loadHTMLMap() { webUI["html/img/xmltv.png"] = "iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAAAXNSR0IArs4c6QAAAAlwSFlzAAAsSwAALEsBpT2WqQAABCRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IlhNUCBDb3JlIDUuNC4wIj4KICAgPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIgogICAgICAgICAgICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgICAgICAgICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyI+CiAgICAgICAgIDx0aWZmOlJlc29sdXRpb25Vbml0PjI8L3RpZmY6UmVzb2x1dGlvblVuaXQ+CiAgICAgICAgIDx0aWZmOkNvbXByZXNzaW9uPjU8L3RpZmY6Q29tcHJlc3Npb24+CiAgICAgICAgIDx0aWZmOlhSZXNvbHV0aW9uPjI4ODwvdGlmZjpYUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6T3JpZW50YXRpb24+MTwvdGlmZjpPcmllbnRhdGlvbj4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+Mjg4PC90aWZmOllSZXNvbHV0aW9uPgogICAgICAgICA8ZXhpZjpQaXhlbFhEaW1lbnNpb24+NTA8L2V4aWY6UGl4ZWxYRGltZW5zaW9uPgogICAgICAgICA8ZXhpZjpDb2xvclNwYWNlPjE8L2V4aWY6Q29sb3JTcGFjZT4KICAgICAgICAgPGV4aWY6UGl4ZWxZRGltZW5zaW9uPjUwPC9leGlmOlBpeGVsWURpbWVuc2lvbj4KICAgICAgICAgPGRjOnN1YmplY3Q+CiAgICAgICAgICAgIDxyZGY6QmFnLz4KICAgICAgICAgPC9kYzpzdWJqZWN0PgogICAgICAgICA8eG1wOk1vZGlmeURhdGU+MjAxOC0wNy0yOFQyMDowNzozMzwveG1wOk1vZGlmeURhdGU+CiAgICAgICAgIDx4bXA6Q3JlYXRvclRvb2w+UGl4ZWxtYXRvciAzLjM8L3htcDpDcmVhdG9yVG9vbD4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgIDwvcmRmOlJERj4KPC94OnhtcG1ldGE+Co6j9bsAAAGgSURBVGgF7VqxTsNADL0gYGEon8DOwsbAAH8BYmJn6cYIn8DC3h0+oixISFRiYYCJL0AwMMBAeK5w2rpV6uikxHfYknW98+vds18TK21DWGBlWR7CH+BfcEv2AzLP8HP42gLqkyUATuEp2PWEdQjF9ATs1zF/g29Mrxt+vVcUxR3xWxEktzFPJQmivsv8ZSI9DiQyVnxlIonwn6fpiczXpNuVVXH8O+a3Ys3y9NUyuf/NTTbEHZTjUlGSRzSiPhroUIENwB4AS/vS/susDwDhTpYBER9g7wHh5DWyibV9CiitCZbIafDEYUuJHQI3Nr/9ciWsjK6IFSWYhyvClbAyZqOIlYJG84jq7E1Ot97Zm+TinV1TrWwudk9EI3ebGFekzWprzspGEU2ySWCiOrs/s9dr7M/s9fVJJJrNXcsTsfaJc0WsKZINH+/sf1Jqvl1n1f2ZnStRN/pdq646XcSkIh9dkIg4s+IrE3nCpp8RG7f91ns+cCYR/LD4jcAZB42PN+A7/mcQ8ZxJhBYQvMJwBB/BKTFLVoLMC/wCfgyv7BesTKUC2LKM3wAAAABJRU5ErkJggg==" webUI["html/index.html"] = "PCFkb2N0eXBlIGh0bWw+DQo8aHRtbD4NCiAgPGhlYWQ+DQogICAgPG1ldGEgY2hhcnNldD0idXRmLTgiPg0KICAgIDwhLS0tDQogICAgPG1ldGEgbmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9IndpZHRoPWRldmljZS13aWR0aCwgaW5pdGlhbC1zY2FsZT0xLjAiIC8+IA0KICAgIC0tPg0KICAgIDx0aXRsZT54VGVWZTwvdGl0bGU+DQogICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJjc3Mvc2NyZWVuLmNzcyIgdHlwZT0idGV4dC9jc3MiPg0KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iY3NzL2Jhc2UuY3NzIiB0eXBlPSJ0ZXh0L2NzcyI+DQoNCiAgICA8c2NyaXB0IGxhbmd1YWdlPSJqYXZhc2NyaXB0IiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ianMvbmV0d29ya190cy5qcyI+PC9zY3JpcHQ+DQogICAgPHNjcmlwdCBsYW5ndWFnZT0iamF2YXNjcmlwdCIgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9ImpzL21lbnVfdHMuanMiPjwvc2NyaXB0Pg0KICAgIDxzY3JpcHQgbGFuZ3VhZ2U9ImphdmFzY3JpcHQiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJqcy9zZXR0aW5nc190cy5qcyI+PC9zY3JpcHQ+DQogICAgPHNjcmlwdCBsYW5ndWFnZT0iamF2YXNjcmlwdCIgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9ImpzL2xvZ3NfdHMuanMiPjwvc2NyaXB0Pg0KICAgIDxzY3JpcHQgbGFuZ3VhZ2U9ImphdmFzY3JpcHQiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJqcy9iYXNlX3RzLmpzIj48L3NjcmlwdD4NCg0KICA8L2hlYWQ+DQoNCiAgICA8Ym9keSBvbmxvYWQ9ImphdmFzY3JpcHQ6IFBhZ2VSZWFkeSgpOyI+DQoNCiAgICAgIDxkaXYgaWQ9ImxvYWRpbmciIGNsYXNzPSJub25lIj4NCiAgICAgICAgPGRpdiBjbGFzcz0ibG9hZGVyIj48L2Rpdj4NCiAgICAgIDwvZGl2Pg0KDQogICAgICA8ZGl2IGlkPSJwb3B1cCIgY2xhc3M9Im5vbmUiPg0KICAgICAgICA8ZGl2IGlkPSJwb3B1cC1jdXN0b20iPjwvZGl2Pg0KICAgICAgPC9kaXY+DQoNCiAgICAgIDxkaXYgaWQ9ImxheW91dCI+DQoNCiAgICAgICAgPCEtLQ0KICAgICAgICA8ZGl2IGlkPSJub3RpZmljYXRpb24iPg0KICAgICAgICAgIDxkaXYgY2xhc3M9ImVsZW1lbnQiPg0KICAgICAgICAgICAgPGg1PlhFUEc8L2g1Pg0KICAgICAgICAgICAgPHByZT4xMS4wNS4yMDE5IC0gMjA6MjE8L3ByZT4NCiAgICAgICAgICAgIDxocj4NCiAgICAgICAgICAgIDxwPkhhbGxvIGRhcyBpc3QgZWluIFRlc3QuIFVuZCBub2NoIG1laHIgVGV4dC48L3A+DQogICAgICAgICAgPC9kaXY+DQogICAgICAgIDwvZGl2Pg0KICAgICAgLS0+DQoNCiAgICAgICAgPGRpdiBpZD0ibWVudS13cmFwcGVyIiBjbGFzcz0ibGF5b3V0LWxlZnQiPg0KICAgICAgICAgIDxkaXYgaWQ9ICJicmFuY2giPjwvZGl2Pg0KICAgICAgICAgIDxkaXYgaWQ9ImxvZ28iPjwvZGl2Pg0KICAgICAgICAgIDxuYXYgaWQ9Im1haW4tbWVudSI+PC9uYXY+DQogICAgICAgIDwvZGl2Pg0KDQogICAgICAgIDxkaXYgY2xhc3M9ImxheW91dC1yaWdodCI+DQoNCiAgICAgICAgICA8dGFibGUgaWQ9ImNsaWVudEluZm8iIGNsYXNzPSIiPg0KDQogICAgICAgICAgICA8dHI+DQogICAgICAgICAgICAgIDx0ZCBjbGFzcz0idGRLZXkiPnhUZVZlOjwvdGQ+DQogICAgICAgICAgICAgIDx0ZCBpZD0idmVyc2lvbiIgY2xhc3M9InRkVmFsIj4mbmJzcDs8L3RkPg0KICAgICAgICAgICAgICA8dGQgY2xhc3M9InRkS2V5Ij5PUzo8L3RkPg0KICAgICAgICAgICAgICA8dGQgaWQ9Im9zIiBjbGFzcz0idGRWYWwiPiZuYnNwOzwvdGQ+DQogICAgICAgICAgICAgIDx0ZCBjbGFzcz0idGRLZXkgcGhvbmUiPkRWUiBJUDo8L3RkPg0KICAgICAgICAgICAgICA8dGQgaWQ9IkRWUiIgY2xhc3M9InRkVmFsIHBob25lIj4mbmJzcDs8L3RkPg0KICAgICAgICAgICAgPC90cj4NCg0KICAgICAgICAgICAgPHRyPg0KICAgICAgICAgICAgICA8dGQgY2xhc3M9InRkS2V5Ij5VVUlEOjwvdGQ+DQogICAgICAgICAgICAgIDx0ZCBpZD0idXVpZCIgY2xhc3M9InRkVmFsIj4mbmJzcDs8L3RkPg0KICAgICAgICAgICAgICA8dGQgY2xhc3M9InRkS2V5Ij5BcmNoOjwvdGQ+DQogICAgICAgICAgICAgIDx0ZCBpZD0iYXJjaCIgY2xhc3M9InRkVmFsIj4mbmJzcDs8L3RkPg0KICAgICAgICAgICAgICA8dGQgY2xhc3M9InRkS2V5IHBob25lIj5NM1UgVVJMOjwvdGQ+DQogICAgICAgICAgICAgIDx0ZCBpZD0ibTN1LXVybCIgY2xhc3M9InRkVmFsIHBob25lIj4mbmJzcDs8L3RkPg0KICAgICAgICAgICAgPC90cj4NCg0KICAgICAgICAgICAgPHRyPg0KICAgICAgICAgICAgICA8dGQgY2xhc3M9InRkS2V5Ij5BdmFpbGFibGUgU3RyZWFtczo8L3RkPg0KICAgICAgICAgICAgICA8dGQgaWQ9InN0cmVhbXMiIGNsYXNzPSJ0ZFZhbCI+Jm5ic3A7PC90ZD4NCiAgICAgICAgICAgICAgPHRkIGNsYXNzPSJ0ZEtleSI+RVBHIFNvdXJjZTo8L3RkPg0KICAgICAgICAgICAgICA8dGQgaWQ9ImVwZ1NvdXJjZSIgY2xhc3M9InRkVmFsIj4mbmJzcDs8L3RkPg0KICAgICAgICAgICAgICA8dGQgY2xhc3M9InRkS2V5IHBob25lIj5YRVBHIFVSTDo8L3RkPg0KICAgICAgICAgICAgICA8dGQgaWQ9InhlcGctdXJsIiBjbGFzcz0idGRWYWwgcGhvbmUiPiZuYnNwOzwvdGQ+DQogICAgICAgICAgICA8L3RyPg0KDQogICAgICAgICAgICA8dHI+DQogICAgICAgICAgICAgIDx0ZCBjbGFzcz0idGRLZXkiPlhFUEcgQ2hhbm5lbHM6PC90ZD4NCiAgICAgICAgICAgICAgPHRkIGlkPSJ4ZXBnIiBjbGFzcz0idGRWYWwiPiZuYnNwOzwvdGQ+DQogICAgICAgICAgICAgIDx0ZCBjbGFzcz0idGRLZXkiPkVycm9yczo8L3RkPg0KICAgICAgICAgICAgICA8dGQgaWQ9ImVycm9ycyIgY2xhc3M9InRkVmFsIj4mbmJzcDs8L3RkPg0KICAgICAgICAgICAgICA8dGQgY2xhc3M9InRkS2V5Ij5XYXJuaW5nczo8L3RkPg0KICAgICAgICAgICAgICA8dGQgaWQ9Indhcm5pbmdzIiBjbGFzcz0idGRWYWwiPiZuYnNwOzwvdGQ+DQogICAgICAgICAgICA8L3RyPg0KDQogICAgICAgICAgPC90YWJsZT4NCiAgICAgICAgIA0KICAgICAgICAgIDxkaXYgaWQ9Im15U3RyZWFtc0JveCIgY2xhc3M9Im5vdFZpc2libGUiPg0KDQogICAgICAgICAgICA8ZGl2IGlkPSJhbGxTdHJlYW1zIj4NCiAgICAgICAgICAgICAgPHRhYmxlIGlkPSJhY3RpdmVTdHJlYW1zIj48L3RhYmxlPg0KICAgICAgICAgICAgICA8dGFibGUgaWQ9ImluYWN0aXZlU3RyZWFtcyI+PC90YWJsZT4NCiAgICAgICAgICAgIDwvZGl2Pg0KDQogICAgICAgICAgPC9kaXY+DQogICAgICAgICAgDQogICAgICAgICAgPGRpdiBpZD0iY29udGVudCIgY2xhc3M9IiI+PC9kaXY+DQogICAgICAgICAgICANCiAgICAgICAgPC9kaXY+DQoNCiAgICAgIDwvZGl2Pg0KICAgICAgDQogICAgPC9ib2R5Pg0KICAgIA0KPC9odG1sPg==" webUI["html/js/authentication_ts.js"] = "ZnVuY3Rpb24gbG9naW4oKSB7DQogICAgdmFyIGVyciA9IGZhbHNlOw0KICAgIHZhciBkYXRhID0gbmV3IE9iamVjdCgpOw0KICAgIHZhciBkaXYgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29udGVudCIpOw0KICAgIHZhciBmb3JtID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImF1dGhlbnRpY2F0aW9uIik7DQogICAgdmFyIGlucHV0cyA9IGRpdi5nZXRFbGVtZW50c0J5VGFnTmFtZSgiSU5QVVQiKTsNCiAgICBmb3IgKHZhciBpID0gaW5wdXRzLmxlbmd0aCAtIDE7IGkgPj0gMDsgaS0tKSB7DQogICAgICAgIHZhciBrZXkgPSBpbnB1dHNbaV0ubmFtZTsNCiAgICAgICAgdmFyIHZhbHVlID0gaW5wdXRzW2ldLnZhbHVlOw0KICAgICAgICBpZiAodmFsdWUubGVuZ3RoID09IDApIHsNCiAgICAgICAgICAgIGlucHV0c1tpXS5zdHlsZS5ib3JkZXJDb2xvciA9ICJyZWQiOw0KICAgICAgICAgICAgZXJyID0gdHJ1ZTsNCiAgICAgICAgfQ0KICAgICAgICBkYXRhW2tleV0gPSB2YWx1ZTsNCiAgICB9DQogICAgaWYgKGVyciA9PSB0cnVlKSB7DQogICAgICAgIGRhdGEgPSBuZXcgT2JqZWN0KCk7DQogICAgICAgIHJldHVybjsNCiAgICB9DQogICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoImNvbmZpcm0iKSkgew0KICAgICAgICBpZiAoZGF0YVsiY29uZmlybSJdICE9IGRhdGFbInBhc3N3b3JkIl0pIHsNCiAgICAgICAgICAgIGFsZXJ0KCJzZGFmc2QiKTsNCiAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdwYXNzd29yZCcpLnN0eWxlLmJvcmRlckNvbG9yID0gInJlZCI7DQogICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY29uZmlybScpLnN0eWxlLmJvcmRlckNvbG9yID0gInJlZCI7DQogICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZXJyIikuaW5uZXJIVE1MID0gInt7LmFjY291bnQuZmFpbGVkfX0iOw0KICAgICAgICAgICAgcmV0dXJuOw0KICAgICAgICB9DQogICAgfQ0KICAgIGZvcm0uc3VibWl0KCk7DQp9DQo=" - webUI["html/js/base_ts.js"] = "dmFyIFNFUlZFUiA9IG5ldyBPYmplY3QoKTsNCnZhciBCVUxLX0VESVQgPSBmYWxzZTsNCnZhciBDT0xVTU5fVE9fU09SVDsNCnZhciBTRUFSQ0hfTUFQUElORyA9IG5ldyBPYmplY3QoKTsNCnZhciBVTkRPID0gbmV3IE9iamVjdCgpOw0KdmFyIFNFUlZFUl9DT05ORUNUSU9OID0gZmFsc2U7DQp2YXIgV1NfQVZBSUxBQkxFID0gZmFsc2U7DQovLyBNZW51DQp2YXIgbWVudUl0ZW1zID0gbmV3IEFycmF5KCk7DQptZW51SXRlbXMucHVzaChuZXcgTWFpbk1lbnVJdGVtKCJwbGF5bGlzdCIsICJ7ey5tYWluTWVudS5pdGVtLnBsYXlsaXN0fX0iLCAibTN1LnBuZyIsICJ7ey5tYWluTWVudS5oZWFkbGluZS5wbGF5bGlzdH19IikpOw0KLy9tZW51SXRlbXMucHVzaChuZXcgTWFpbk1lbnVJdGVtKCJwbXNJRCIsICJ7ey5tYWluTWVudS5pdGVtLnBtc0lEfX0iLCAibnVtYmVyLnBuZyIsICJ7ey5tYWluTWVudS5oZWFkbGluZS5wbXNJRH19IikpDQptZW51SXRlbXMucHVzaChuZXcgTWFpbk1lbnVJdGVtKCJmaWx0ZXIiLCAie3subWFpbk1lbnUuaXRlbS5maWx0ZXJ9fSIsICJmaWx0ZXIucG5nIiwgInt7Lm1haW5NZW51LmhlYWRsaW5lLmZpbHRlcn19IikpOw0KbWVudUl0ZW1zLnB1c2gobmV3IE1haW5NZW51SXRlbSgieG1sdHYiLCAie3subWFpbk1lbnUuaXRlbS54bWx0dn19IiwgInhtbHR2LnBuZyIsICJ7ey5tYWluTWVudS5oZWFkbGluZS54bWx0dn19IikpOw0KbWVudUl0ZW1zLnB1c2gobmV3IE1haW5NZW51SXRlbSgibWFwcGluZyIsICJ7ey5tYWluTWVudS5pdGVtLm1hcHBpbmd9fSIsICJtYXBwaW5nLnBuZyIsICJ7ey5tYWluTWVudS5oZWFkbGluZS5tYXBwaW5nfX0iKSk7DQptZW51SXRlbXMucHVzaChuZXcgTWFpbk1lbnVJdGVtKCJ1c2VycyIsICJ7ey5tYWluTWVudS5pdGVtLnVzZXJzfX0iLCAidXNlcnMucG5nIiwgInt7Lm1haW5NZW51LmhlYWRsaW5lLnVzZXJzfX0iKSk7DQptZW51SXRlbXMucHVzaChuZXcgTWFpbk1lbnVJdGVtKCJzZXR0aW5ncyIsICJ7ey5tYWluTWVudS5pdGVtLnNldHRpbmdzfX0iLCAic2V0dGluZ3MucG5nIiwgInt7Lm1haW5NZW51LmhlYWRsaW5lLnNldHRpbmdzfX0iKSk7DQptZW51SXRlbXMucHVzaChuZXcgTWFpbk1lbnVJdGVtKCJsb2ciLCAie3subWFpbk1lbnUuaXRlbS5sb2d9fSIsICJsb2cucG5nIiwgInt7Lm1haW5NZW51LmhlYWRsaW5lLmxvZ319IikpOw0KbWVudUl0ZW1zLnB1c2gobmV3IE1haW5NZW51SXRlbSgibG9nb3V0IiwgInt7Lm1haW5NZW51Lml0ZW0ubG9nb3V0fX0iLCAibG9nb3V0LnBuZyIsICJ7ey5tYWluTWVudS5oZWFkbGluZS5sb2dvdXR9fSIpKTsNCi8vIFNldHRpbmdzIGNhdGVnb3JpZXMNCnZhciBzZXR0aW5nc0NhdGVnb3J5ID0gbmV3IEFycmF5KCk7DQpzZXR0aW5nc0NhdGVnb3J5LnB1c2gobmV3IFNldHRpbmdzQ2F0ZWdvcnlJdGVtKCJ7ey5zZXR0aW5ncy5jYXRlZ29yeS5nZW5lcmFsfX0iLCAidGxzTW9kZSx4dGV2ZUF1dG9VcGRhdGUsaG9zdElQLHR1bmVyLGVwZ1NvdXJjZSxkaXNhbGxvd1VSTER1cGxpY2F0ZXMsYXBpIikpOw0Kc2V0dGluZ3NDYXRlZ29yeS5wdXNoKG5ldyBTZXR0aW5nc0NhdGVnb3J5SXRlbSgie3suc2V0dGluZ3MuY2F0ZWdvcnkuZmlsZXN9fSIsICJ1cGRhdGUsZmlsZXMudXBkYXRlLHRlbXAucGF0aCxjYWNoZS5pbWFnZXMseGVwZy5yZXBsYWNlLm1pc3NpbmcuaW1hZ2VzIikpOw0Kc2V0dGluZ3NDYXRlZ29yeS5wdXNoKG5ldyBTZXR0aW5nc0NhdGVnb3J5SXRlbSgie3suc2V0dGluZ3MuY2F0ZWdvcnkuc3RyZWFtaW5nfX0iLCAiYnVmZmVyLHVkcHh5LGJ1ZmZlci5zaXplLmtiLHN0b3JlQnVmZmVySW5SQU0sYnVmZmVyLnRpbWVvdXQsdXNlci5hZ2VudCxmZm1wZWcucGF0aCxmZm1wZWcub3B0aW9ucyx2bGMucGF0aCx2bGMub3B0aW9ucyIpKTsNCnNldHRpbmdzQ2F0ZWdvcnkucHVzaChuZXcgU2V0dGluZ3NDYXRlZ29yeUl0ZW0oInt7LnNldHRpbmdzLmNhdGVnb3J5LmJhY2t1cH19IiwgImJhY2t1cC5wYXRoLGJhY2t1cC5rZWVwIikpOw0Kc2V0dGluZ3NDYXRlZ29yeS5wdXNoKG5ldyBTZXR0aW5nc0NhdGVnb3J5SXRlbSgie3suc2V0dGluZ3MuY2F0ZWdvcnkuYXV0aGVudGljYXRpb259fSIsICJhdXRoZW50aWNhdGlvbi53ZWIsYXV0aGVudGljYXRpb24ucG1zLGF1dGhlbnRpY2F0aW9uLm0zdSxhdXRoZW50aWNhdGlvbi54bWwsYXV0aGVudGljYXRpb24uYXBpIikpOw0KZnVuY3Rpb24gc2hvd1BvcFVwRWxlbWVudChlbG0pIHsNCiAgICB2YXIgYWxsRWxlbWVudHMgPSBuZXcgQXJyYXkoInBvcHVwLWN1c3RvbSIpOw0KICAgIGZvciAodmFyIGkgPSAwOyBpIDwgYWxsRWxlbWVudHMubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgc2hvd0VsZW1lbnQoYWxsRWxlbWVudHNbaV0sIGZhbHNlKTsNCiAgICB9DQogICAgc2hvd0VsZW1lbnQoZWxtLCB0cnVlKTsNCiAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsNCiAgICAgICAgc2hvd0VsZW1lbnQoInBvcHVwIiwgdHJ1ZSk7DQogICAgfSwgMTApOw0KICAgIHJldHVybjsNCn0NCmZ1bmN0aW9uIHNob3dFbGVtZW50KGVsbUlELCB0eXBlKSB7DQogICAgdmFyIGNzc0NsYXNzOw0KICAgIHN3aXRjaCAodHlwZSkgew0KICAgICAgICBjYXNlIHRydWU6DQogICAgICAgICAgICBjc3NDbGFzcyA9ICJibG9jayI7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSBmYWxzZToNCiAgICAgICAgICAgIGNzc0NsYXNzID0gIm5vbmUiOw0KICAgICAgICAgICAgYnJlYWs7DQogICAgfQ0KICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGVsbUlEKS5jbGFzc05hbWUgPSBjc3NDbGFzczsNCn0NCmZ1bmN0aW9uIGNoYW5nZUJ1dHRvbkFjdGlvbihlbGVtZW50LCBidXR0b25JRCwgYXR0cmlidXRlKSB7DQogICAgdmFyIHZhbHVlID0gZWxlbWVudC5vcHRpb25zW2VsZW1lbnQuc2VsZWN0ZWRJbmRleF0udmFsdWU7DQogICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoYnV0dG9uSUQpLnNldEF0dHJpYnV0ZShhdHRyaWJ1dGUsIHZhbHVlKTsNCn0NCmZ1bmN0aW9uIGdldExvY2FsRGF0YShkYXRhVHlwZSwgaWQpIHsNCiAgICBsZXQgZGF0YSA9IHt9Ow0KICAgIHN3aXRjaCAoZGF0YVR5cGUpIHsNCiAgICAgICAgY2FzZSAibTN1IjoNCiAgICAgICAgICAgIGRhdGEgPSBTRVJWRVJbInNldHRpbmdzIl1bImZpbGVzIl1bZGF0YVR5cGVdW2lkXTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJoZGhyIjoNCiAgICAgICAgICAgIGRhdGEgPSBTRVJWRVJbInNldHRpbmdzIl1bImZpbGVzIl1bZGF0YVR5cGVdW2lkXTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJmaWx0ZXIiOg0KICAgICAgICBjYXNlICJjdXN0b20tZmlsdGVyIjoNCiAgICAgICAgY2FzZSAiZ3JvdXAtdGl0bGUiOg0KICAgICAgICAgICAgaWYgKGlkID09IC0xKSB7DQogICAgICAgICAgICAgICAgZGF0YVsiYWN0aXZlIl0gPSB0cnVlOw0KICAgICAgICAgICAgICAgIGRhdGFbImNhc2VTZW5zaXRpdmUiXSA9IGZhbHNlOw0KICAgICAgICAgICAgICAgIGRhdGFbImRlc2NyaXB0aW9uIl0gPSAiIjsNCiAgICAgICAgICAgICAgICBkYXRhWyJleGNsdWRlIl0gPSAiIjsNCiAgICAgICAgICAgICAgICBkYXRhWyJmaWx0ZXIiXSA9ICIiOw0KICAgICAgICAgICAgICAgIGRhdGFbImluY2x1ZGUiXSA9ICIiOw0KICAgICAgICAgICAgICAgIGRhdGFbIm5hbWUiXSA9ICIiOw0KICAgICAgICAgICAgICAgIGRhdGFbInR5cGUiXSA9ICJncm91cC10aXRsZSI7DQogICAgICAgICAgICAgICAgZGF0YVsicHJlc2VydmVNYXBwaW5nIl0gPSB0cnVlOw0KICAgICAgICAgICAgICAgIGRhdGFbInN0YXJ0aW5nQ2hhbm5lbCJdID0gU0VSVkVSWyJzZXR0aW5ncyJdWyJtYXBwaW5nLmZpcnN0LmNoYW5uZWwiXTsNCiAgICAgICAgICAgICAgICBkYXRhWyJkZWZhdWx0TWlzc2luZ0VQRyJdID0gIi0iOw0KICAgICAgICAgICAgICAgIFNFUlZFUlsic2V0dGluZ3MiXVsiZmlsdGVyIl1baWRdID0gZGF0YTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGRhdGEgPSBTRVJWRVJbInNldHRpbmdzIl1bImZpbHRlciJdW2lkXTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJ4bWx0diI6DQogICAgICAgICAgICBkYXRhID0gU0VSVkVSWyJzZXR0aW5ncyJdWyJmaWxlcyJdW2RhdGFUeXBlXVtpZF07DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSAidXNlcnMiOg0KICAgICAgICAgICAgZGF0YSA9IFNFUlZFUlsidXNlcnMiXVtpZF1bImRhdGEiXTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJtYXBwaW5nIjoNCiAgICAgICAgICAgIGRhdGEgPSBTRVJWRVJbInhlcGciXVsiZXBnTWFwcGluZyJdW2lkXTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJtM3VHcm91cHMiOg0KICAgICAgICAgICAgZGF0YSA9IFNFUlZFUlsiZGF0YSJdWyJwbGF5bGlzdCJdWyJtM3UiXVsiZ3JvdXBzIl07DQogICAgICAgICAgICBicmVhazsNCiAgICB9DQogICAgcmV0dXJuIGRhdGE7DQp9DQpmdW5jdGlvbiBnZXRPd25PYmpQcm9wcyhvYmplY3QpIHsNCiAgICByZXR1cm4gb2JqZWN0ID8gT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMob2JqZWN0KSA6IFtdOw0KfQ0KZnVuY3Rpb24gZ2V0QWxsU2VsZWN0ZWRDaGFubmVscygpIHsNCiAgICB2YXIgY2hhbm5lbHMgPSBuZXcgQXJyYXkoKTsNCiAgICBpZiAoQlVMS19FRElUID09IGZhbHNlKSB7DQogICAgICAgIHJldHVybiBjaGFubmVsczsNCiAgICB9DQogICAgdmFyIHRycyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb250ZW50X3RhYmxlIikuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlRSIik7DQogICAgZm9yICh2YXIgaSA9IDE7IGkgPCB0cnMubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgaWYgKHRyc1tpXS5zdHlsZS5kaXNwbGF5ICE9ICJub25lIikgew0KICAgICAgICAgICAgaWYgKHRyc1tpXS5maXJzdENoaWxkLmZpcnN0Q2hpbGQuY2hlY2tlZCA9PSB0cnVlKSB7DQogICAgICAgICAgICAgICAgY2hhbm5lbHMucHVzaCh0cnNbaV0uaWQpOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQogICAgfQ0KICAgIHJldHVybiBjaGFubmVsczsNCn0NCmZ1bmN0aW9uIHNlbGVjdEFsbENoYW5uZWxzKCkgew0KICAgIHZhciBidWxrID0gZmFsc2U7DQogICAgdmFyIHRycyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb250ZW50X3RhYmxlIikuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlRSIik7DQogICAgaWYgKHRyc1swXS5maXJzdENoaWxkLmZpcnN0Q2hpbGQuY2hlY2tlZCA9PSB0cnVlKSB7DQogICAgICAgIGJ1bGsgPSB0cnVlOw0KICAgIH0NCiAgICBmb3IgKHZhciBpID0gMTsgaSA8IHRycy5sZW5ndGg7IGkrKykgew0KICAgICAgICBpZiAodHJzW2ldLnN0eWxlLmRpc3BsYXkgIT0gIm5vbmUiKSB7DQogICAgICAgICAgICBzd2l0Y2ggKGJ1bGspIHsNCiAgICAgICAgICAgICAgICBjYXNlIHRydWU6DQogICAgICAgICAgICAgICAgICAgIHRyc1tpXS5maXJzdENoaWxkLmZpcnN0Q2hpbGQuY2hlY2tlZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgZmFsc2U6DQogICAgICAgICAgICAgICAgICAgIHRyc1tpXS5maXJzdENoaWxkLmZpcnN0Q2hpbGQuY2hlY2tlZCA9IGZhbHNlOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KICAgIH0NCiAgICByZXR1cm47DQp9DQpmdW5jdGlvbiBidWxrRWRpdCgpIHsNCiAgICBCVUxLX0VESVQgPSAhQlVMS19FRElUOw0KICAgIHZhciBjbGFzc05hbWU7DQogICAgdmFyIHJvd3MgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCJidWxrIik7DQogICAgc3dpdGNoIChCVUxLX0VESVQpIHsNCiAgICAgICAgY2FzZSB0cnVlOg0KICAgICAgICAgICAgY2xhc3NOYW1lID0gImJ1bGsgc2hvd0J1bGsiOw0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGNhc2UgZmFsc2U6DQogICAgICAgICAgICBjbGFzc05hbWUgPSAiYnVsayBoaWRlQnVsayI7DQogICAgICAgICAgICBicmVhazsNCiAgICB9DQogICAgZm9yICh2YXIgaSA9IDA7IGkgPCByb3dzLmxlbmd0aDsgaSsrKSB7DQogICAgICAgIHJvd3NbaV0uY2xhc3NOYW1lID0gY2xhc3NOYW1lOw0KICAgICAgICByb3dzW2ldLmNoZWNrZWQgPSBmYWxzZTsNCiAgICB9DQogICAgcmV0dXJuOw0KfQ0KZnVuY3Rpb24gc29ydFRhYmxlKGNvbHVtbikgew0KICAgIGlmIChjb2x1bW4gPT0gQ09MVU1OX1RPX1NPUlQpIHsNCiAgICAgICAgcmV0dXJuOw0KICAgIH0NCiAgICBjb25zdCB0YWJsZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb250ZW50X3RhYmxlIik7DQogICAgY29uc3QgdGFibGVIZWFkID0gdGFibGUuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlRSIilbMF07DQogICAgY29uc3QgdGFibGVJdGVtcyA9IHRhYmxlSGVhZC5nZXRFbGVtZW50c0J5VGFnTmFtZSgiVEQiKTsNCiAgICBjb25zdCBzb3J0QXJyID0gW107DQogICAgbGV0IHhWYWx1ZTsNCiAgICBpZiAoY29sdW1uID49IDAgJiYgQ09MVU1OX1RPX1NPUlQgPj0gMCkgew0KICAgICAgICB0YWJsZUl0ZW1zW0NPTFVNTl9UT19TT1JUXS5jbGFzc05hbWUgPSAicG9pbnRlciI7DQogICAgICAgIHRhYmxlSXRlbXNbY29sdW1uXS5jbGFzc05hbWUgPSAic29ydFRoaXMiOw0KICAgIH0NCiAgICBDT0xVTU5fVE9fU09SVCA9IGNvbHVtbjsNCiAgICBjb25zdCByb3dzID0gdGFibGUucm93czsNCiAgICBpZiAocm93c1sxXSAhPSB1bmRlZmluZWQpIHsNCiAgICAgICAgY29uc3QgdGFibGVIZWFkZXIgPSByb3dzWzBdOw0KICAgICAgICBsZXQgeCA9IHJvd3NbMV0uZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlREIilbY29sdW1uXTsNCiAgICAgICAgZm9yIChsZXQgaSA9IDE7IGkgPCByb3dzLmxlbmd0aDsgaSsrKSB7DQogICAgICAgICAgICB4ID0gcm93c1tpXS5nZXRFbGVtZW50c0J5VGFnTmFtZSgiVEQiKVtjb2x1bW5dOw0KICAgICAgICAgICAgc3dpdGNoICh4LmNoaWxkTm9kZXNbMF0udGFnTmFtZS50b0xvd2VyQ2FzZSgpKSB7DQogICAgICAgICAgICAgICAgY2FzZSAiaW5wdXQiOg0KICAgICAgICAgICAgICAgICAgICB4VmFsdWUgPSB4LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJJTlBVVCIpWzBdLnZhbHVlLnRvTG93ZXJDYXNlKCk7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgInAiOg0KICAgICAgICAgICAgICAgICAgICB4VmFsdWUgPSB4LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJQIilbMF0uaW5uZXJUZXh0LnRvTG93ZXJDYXNlKCk7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgc29ydEFyci5wdXNoKHsga2V5OiB4VmFsdWUgPyB4VmFsdWUgOiBpLCByb3c6IHJvd3NbaV0gfSk7DQogICAgICAgIH0NCiAgICAgICAgd2hpbGUgKHRhYmxlLmZpcnN0Q2hpbGQpIHsNCiAgICAgICAgICAgIHRhYmxlLnJlbW92ZUNoaWxkKHRhYmxlLmZpcnN0Q2hpbGQpOw0KICAgICAgICB9DQogICAgICAgIHNvcnRBcnIuc29ydCgoc2UxLCBzZTIpID0+IHsNCiAgICAgICAgICAgIGNvbnN0IHNlMUtleU51bSA9IHBhcnNlRmxvYXQoU3RyaW5nKHNlMS5rZXkpKTsNCiAgICAgICAgICAgIGNvbnN0IHNlMktleU51bSA9IHBhcnNlRmxvYXQoU3RyaW5nKHNlMi5rZXkpKTsNCiAgICAgICAgICAgIGlmICghaXNOYU4oc2UxS2V5TnVtKSAmJiAhaXNOYU4oc2UyS2V5TnVtKSkgew0KICAgICAgICAgICAgICAgIHJldHVybiBzZTFLZXlOdW0gLSBzZTJLZXlOdW07DQogICAgICAgICAgICB9DQogICAgICAgICAgICBpZiAoc2UxLmtleSA8IHNlMi5rZXkpIHsNCiAgICAgICAgICAgICAgICByZXR1cm4gLTE7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBpZiAoc2UxLmtleSA+IHNlMi5rZXkpIHsNCiAgICAgICAgICAgICAgICByZXR1cm4gMTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIHJldHVybiAwOw0KICAgICAgICB9KTsNCiAgICAgICAgdGFibGUuYXBwZW5kQ2hpbGQodGFibGVIZWFkZXIpOw0KICAgICAgICBzb3J0QXJyLmZvckVhY2goKHNlKSA9PiB7DQogICAgICAgICAgICB0YWJsZS5hcHBlbmRDaGlsZChzZS5yb3cpOw0KICAgICAgICB9KTsNCiAgICB9DQogICAgcmV0dXJuOw0KfQ0KZnVuY3Rpb24gY3JlYXRlU2VhcmNoT2JqKCkgew0KICAgIFNFQVJDSF9NQVBQSU5HID0gbmV3IE9iamVjdCgpOw0KICAgIHZhciBkYXRhID0gU0VSVkVSWyJ4ZXBnIl1bImVwZ01hcHBpbmciXTsNCiAgICB2YXIgY2hhbm5lbHMgPSBnZXRPd25PYmpQcm9wcyhkYXRhKTsNCiAgICB2YXIgY2hhbm5lbEtleXMgPSBbIngtYWN0aXZlIiwgIngtY2hhbm5lbElEIiwgIngtbmFtZSIsICJ1cGRhdGVDaGFubmVsTmFtZVJlZ2V4IiwgIl9maWxlLm0zdS5uYW1lIiwgIngtZ3JvdXAtdGl0bGUiLCAieC14bWx0di1maWxlIl07DQogICAgY2hhbm5lbHMuZm9yRWFjaChpZCA9PiB7DQogICAgICAgIGNoYW5uZWxLZXlzLmZvckVhY2goa2V5ID0+IHsNCiAgICAgICAgICAgIGlmIChrZXkgPT0gIngtYWN0aXZlIikgew0KICAgICAgICAgICAgICAgIHN3aXRjaCAoZGF0YVtpZF1ba2V5XSkgew0KICAgICAgICAgICAgICAgICAgICBjYXNlIHRydWU6DQogICAgICAgICAgICAgICAgICAgICAgICBTRUFSQ0hfTUFQUElOR1tpZF0gPSAib25saW5lICI7DQogICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICAgICAgY2FzZSBmYWxzZToNCiAgICAgICAgICAgICAgICAgICAgICAgIFNFQVJDSF9NQVBQSU5HW2lkXSA9ICJvZmZsaW5lICI7DQogICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9DQogICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICBpZiAoa2V5ID09ICJ4LXhtbHR2LWZpbGUiKSB7DQogICAgICAgICAgICAgICAgICAgIHZhciB4bWx0dkZpbGUgPSBnZXRWYWx1ZUZyb21Qcm92aWRlckZpbGUoZGF0YVtpZF1ba2V5XSwgInhtbHR2IiwgIm5hbWUiKTsNCiAgICAgICAgICAgICAgICAgICAgaWYgKHhtbHR2RmlsZSAhPSB1bmRlZmluZWQpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIFNFQVJDSF9NQVBQSU5HW2lkXSA9IFNFQVJDSF9NQVBQSU5HW2lkXSArIHhtbHR2RmlsZSArICIgIjsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICAgICAgU0VBUkNIX01BUFBJTkdbaWRdID0gU0VBUkNIX01BUFBJTkdbaWRdICsgZGF0YVtpZF1ba2V5XSArICIgIjsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9DQogICAgICAgIH0pOw0KICAgIH0pOw0KICAgIHJldHVybjsNCn0NCmZ1bmN0aW9uIHNlYXJjaEluTWFwcGluZygpIHsNCiAgICB2YXIgc2VhcmNoVmFsdWUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic2VhcmNoTWFwcGluZyIpLnZhbHVlOw0KICAgIHZhciB0cnMgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29udGVudF90YWJsZSIpLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJUUiIpOw0KICAgIGZvciAodmFyIGkgPSAxOyBpIDwgdHJzLmxlbmd0aDsgKytpKSB7DQogICAgICAgIHZhciBpZCA9IHRyc1tpXS5nZXRBdHRyaWJ1dGUoImlkIik7DQogICAgICAgIHZhciBlbGVtZW50ID0gU0VBUkNIX01BUFBJTkdbaWRdOw0KICAgICAgICBzd2l0Y2ggKGVsZW1lbnQudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhzZWFyY2hWYWx1ZS50b0xvd2VyQ2FzZSgpKSkgew0KICAgICAgICAgICAgY2FzZSB0cnVlOg0KICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5zdHlsZS5kaXNwbGF5ID0gIiI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlIGZhbHNlOg0KICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5zdHlsZS5kaXNwbGF5ID0gIm5vbmUiOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICB9DQogICAgfQ0KICAgIHJldHVybjsNCn0NCmZ1bmN0aW9uIGNhbGN1bGF0ZVdyYXBwZXJIZWlnaHQoKSB7DQogICAgaWYgKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJib3gtd3JhcHBlciIpKSB7DQogICAgICAgIHZhciBlbG0gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYm94LXdyYXBwZXIiKTsNCiAgICAgICAgdmFyIGRpdnMgPSBuZXcgQXJyYXkoIm15U3RyZWFtc0JveCIsICJjbGllbnRJbmZvIiwgImNvbnRlbnQiKTsNCiAgICAgICAgdmFyIGVsZW1lbnRzSGVpZ2h0ID0gMCAtIGVsbS5vZmZzZXRIZWlnaHQ7DQogICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgZGl2cy5sZW5ndGg7IGkrKykgew0KICAgICAgICAgICAgZWxlbWVudHNIZWlnaHQgPSBlbGVtZW50c0hlaWdodCArIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGRpdnNbaV0pLm9mZnNldEhlaWdodDsNCiAgICAgICAgfQ0KICAgICAgICBlbG0uc3R5bGUuaGVpZ2h0ID0gd2luZG93LmlubmVySGVpZ2h0IC0gZWxlbWVudHNIZWlnaHQgKyAicHgiOw0KICAgIH0NCiAgICByZXR1cm47DQp9DQpmdW5jdGlvbiBjaGFuZ2VDaGFubmVsTnVtYmVyKGVsZW1lbnQpIHsNCiAgICB2YXIgZGJJRCA9IGVsZW1lbnQucGFyZW50Tm9kZS5wYXJlbnROb2RlLmlkOw0KICAgIHZhciBuZXdOdW1iZXIgPSBwYXJzZUZsb2F0KGVsZW1lbnQudmFsdWUpOw0KICAgIHZhciBjaGFubmVsTnVtYmVycyA9IFtdOw0KICAgIHZhciBkYXRhID0gU0VSVkVSWyJ4ZXBnIl1bImVwZ01hcHBpbmciXTsNCiAgICB2YXIgY2hhbm5lbHMgPSBnZXRPd25PYmpQcm9wcyhkYXRhKTsNCiAgICBpZiAoaXNOYU4obmV3TnVtYmVyKSkgew0KICAgICAgICBhbGVydCgie3suYWxlcnQuaW52YWxpZENoYW5uZWxOdW1iZXJ9fSIpOw0KICAgICAgICByZXR1cm47DQogICAgfQ0KICAgIGNoYW5uZWxzLmZvckVhY2goaWQgPT4gew0KICAgICAgICB2YXIgY2hhbm5lbE51bWJlciA9IHBhcnNlRmxvYXQoZGF0YVtpZF1bIngtY2hhbm5lbElEIl0pOw0KICAgICAgICBjaGFubmVsTnVtYmVycy5wdXNoKGNoYW5uZWxOdW1iZXIpOw0KICAgIH0pOw0KICAgIGZvciAodmFyIGkgPSAwOyBpIDwgY2hhbm5lbE51bWJlcnMubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgaWYgKGNoYW5uZWxOdW1iZXJzLmluZGV4T2YobmV3TnVtYmVyKSA9PSAtMSkgew0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIH0NCiAgICAgICAgaWYgKE1hdGguZmxvb3IobmV3TnVtYmVyKSA9PSBuZXdOdW1iZXIpIHsNCiAgICAgICAgICAgIG5ld051bWJlciA9IG5ld051bWJlciArIDE7DQogICAgICAgIH0NCiAgICAgICAgZWxzZSB7DQogICAgICAgICAgICBuZXdOdW1iZXIgPSBuZXdOdW1iZXIgKyAwLjE7DQogICAgICAgICAgICBuZXdOdW1iZXIudG9GaXhlZCgxKTsNCiAgICAgICAgICAgIG5ld051bWJlciA9IE1hdGgucm91bmQobmV3TnVtYmVyICogMTApIC8gMTA7DQogICAgICAgIH0NCiAgICB9DQogICAgZGF0YVtkYklEXVsieC1jaGFubmVsSUQiXSA9IG5ld051bWJlci50b1N0cmluZygpOw0KICAgIGVsZW1lbnQudmFsdWUgPSBuZXdOdW1iZXI7DQogICAgaWYgKENPTFVNTl9UT19TT1JUID09IDEpIHsNCiAgICAgICAgQ09MVU1OX1RPX1NPUlQgPSAtMTsNCiAgICAgICAgc29ydFRhYmxlKDEpOw0KICAgIH0NCiAgICByZXR1cm47DQp9DQpmdW5jdGlvbiBiYWNrdXAoKSB7DQogICAgdmFyIGRhdGEgPSBuZXcgT2JqZWN0KCk7DQogICAgdmFyIGNtZCA9ICJ4dGV2ZUJhY2t1cCI7DQogICAgdmFyIHNlcnZlciA9IG5ldyBTZXJ2ZXIoY21kKTsNCiAgICBzZXJ2ZXIucmVxdWVzdChkYXRhKTsNCiAgICByZXR1cm47DQp9DQpmdW5jdGlvbiB0b2dnbGVDaGFubmVsU3RhdHVzKGlkKSB7DQogICAgdmFyIGVsZW1lbnQ7DQogICAgdmFyIHN0YXR1czsNCiAgICBpZiAoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImFjdGl2ZSIpKSB7DQogICAgICAgIHZhciBjaGVja2JveCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJhY3RpdmUiKTsNCiAgICAgICAgc3RhdHVzID0gKGNoZWNrYm94KS5jaGVja2VkOw0KICAgIH0NCiAgICB2YXIgaWRzID0gZ2V0QWxsU2VsZWN0ZWRDaGFubmVscygpOw0KICAgIGlmIChpZHMubGVuZ3RoID09IDApIHsNCiAgICAgICAgaWRzLnB1c2goaWQpOw0KICAgIH0NCiAgICBpZHMuZm9yRWFjaChpZCA9PiB7DQogICAgICAgIHZhciBjaGFubmVsID0gU0VSVkVSWyJ4ZXBnIl1bImVwZ01hcHBpbmciXVtpZF07DQogICAgICAgIGNoYW5uZWxbIngtYWN0aXZlIl0gPSBzdGF0dXM7DQogICAgICAgIHN3aXRjaCAoY2hhbm5lbFsieC1hY3RpdmUiXSkgew0KICAgICAgICAgICAgY2FzZSB0cnVlOg0KICAgICAgICAgICAgICAgIGlmIChjaGFubmVsWyJ4LXhtbHR2LWZpbGUiXSA9PSAiLSIgfHwgY2hhbm5lbFsieC1tYXBwaW5nIl0gPT0gIi0iKSB7DQogICAgICAgICAgICAgICAgICAgIGlmIChCVUxLX0VESVQgPT0gZmFsc2UpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGFsZXJ0KGNoYW5uZWxbIngtbmFtZSJdICsgIjogTWlzc2luZyBYTUxUViBmaWxlIC8gY2hhbm5lbCIpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2hlY2tib3guY2hlY2tlZCA9IGZhbHNlOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIGNoYW5uZWxbIngtYWN0aXZlIl0gPSBmYWxzZTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlIGZhbHNlOg0KICAgICAgICAgICAgICAgIC8vIGNvZGUuLi4NCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgfQ0KICAgICAgICBpZiAoY2hhbm5lbFsieC1hY3RpdmUiXSA9PSBmYWxzZSkgew0KICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpLmNsYXNzTmFtZSA9ICJub3RBY3RpdmVFUEciOw0KICAgICAgICB9DQogICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpLmNsYXNzTmFtZSA9ICJhY3RpdmVFUEciOw0KICAgICAgICB9DQogICAgfSk7DQp9DQpmdW5jdGlvbiB0b2dnbGVHcm91cFVwZGF0ZUNiKHhlcGdJZCwgdGFyZ2V0KSB7DQogICAgdGFyZ2V0LmNsYXNzTmFtZSA9ICdjaGFuZ2VkJzsNCiAgICBjb25zdCBncm91cElucHV0ID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignaW5wdXRbbmFtZT0ieC1ncm91cC10aXRsZSJdJyk7DQogICAgY29uc3QgbWFwcGluZyA9IGdldExvY2FsRGF0YSgnbWFwcGluZycsIHhlcGdJZCk7DQogICAgaWYgKHRhcmdldC5jaGVja2VkKSB7DQogICAgICAgIGdyb3VwSW5wdXQuZGF0YXNldC5vbGRWYWx1ZSA9IGdyb3VwSW5wdXQudmFsdWU7DQogICAgICAgIGdyb3VwSW5wdXQudmFsdWUgPSBtYXBwaW5nWydncm91cC10aXRsZSddOw0KICAgICAgICBncm91cElucHV0LmRpc2FibGVkID0gdHJ1ZTsNCiAgICB9DQogICAgZWxzZSB7DQogICAgICAgIGdyb3VwSW5wdXQudmFsdWUgPSBncm91cElucHV0LmRhdGFzZXQub2xkVmFsdWU7DQogICAgICAgIGdyb3VwSW5wdXQuZGlzYWJsZWQgPSBmYWxzZTsNCiAgICB9DQogICAgZ3JvdXBJbnB1dC5jbGFzc05hbWUgPSAnY2hhbmdlZCc7DQp9DQpmdW5jdGlvbiByZXN0b3JlKCkgew0KICAgIGlmIChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndXBsb2FkJykpIHsNCiAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3VwbG9hZCcpLnJlbW92ZSgpOw0KICAgIH0NCiAgICB2YXIgcmVzdG9yZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIklOUFVUIik7DQogICAgcmVzdG9yZS5zZXRBdHRyaWJ1dGUoInR5cGUiLCAiZmlsZSIpOw0KICAgIHJlc3RvcmUuc2V0QXR0cmlidXRlKCJjbGFzcyIsICJub3RWaXNpYmxlIik7DQogICAgcmVzdG9yZS5zZXRBdHRyaWJ1dGUoIm5hbWUiLCAiIik7DQogICAgcmVzdG9yZS5pZCA9ICJ1cGxvYWQiOw0KICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQocmVzdG9yZSk7DQogICAgcmVzdG9yZS5jbGljaygpOw0KICAgIHJlc3RvcmUub25jaGFuZ2UgPSBmdW5jdGlvbiAoKSB7DQogICAgICAgIHZhciBmaWxlbmFtZSA9IHJlc3RvcmUuZmlsZXNbMF0ubmFtZTsNCiAgICAgICAgdmFyIGNoZWNrID0gY29uZmlybSgiRmlsZTogIiArIGZpbGVuYW1lICsgIlxue3suY29uZmlybS5yZXN0b3JlfX0iKTsNCiAgICAgICAgaWYgKGNoZWNrID09IHRydWUpIHsNCiAgICAgICAgICAgIHZhciByZWFkZXIgPSBuZXcgRmlsZVJlYWRlcigpOw0KICAgICAgICAgICAgdmFyIGZpbGUgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCdpbnB1dFt0eXBlPWZpbGVdJykuZmlsZXNbMF07DQogICAgICAgICAgICBpZiAoZmlsZSkgew0KICAgICAgICAgICAgICAgIHJlYWRlci5yZWFkQXNEYXRhVVJMKGZpbGUpOw0KICAgICAgICAgICAgICAgIHJlYWRlci5vbmxvYWQgPSBmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICAgICAgICAgIHZhciBkYXRhID0gbmV3IE9iamVjdCgpOw0KICAgICAgICAgICAgICAgICAgICB2YXIgY21kID0gInh0ZXZlUmVzdG9yZSI7DQogICAgICAgICAgICAgICAgICAgIGRhdGFbImJhc2U2NCJdID0gcmVhZGVyLnJlc3VsdDsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHNlcnZlciA9IG5ldyBTZXJ2ZXIoY21kKTsNCiAgICAgICAgICAgICAgICAgICAgc2VydmVyLnJlcXVlc3QoZGF0YSk7DQogICAgICAgICAgICAgICAgfTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgICAgIGFsZXJ0KCJGaWxlIGNvdWxkIG5vdCBiZSBsb2FkZWQiKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIHJlc3RvcmUucmVtb3ZlKCk7DQogICAgICAgICAgICByZXR1cm47DQogICAgICAgIH0NCiAgICB9Ow0KICAgIHJldHVybjsNCn0NCmZ1bmN0aW9uIHVwbG9hZExvZ28oKSB7DQogICAgaWYgKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd1cGxvYWQnKSkgew0KICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndXBsb2FkJykucmVtb3ZlKCk7DQogICAgfQ0KICAgIHZhciB1cGxvYWQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJJTlBVVCIpOw0KICAgIHVwbG9hZC5zZXRBdHRyaWJ1dGUoInR5cGUiLCAiZmlsZSIpOw0KICAgIHVwbG9hZC5zZXRBdHRyaWJ1dGUoImNsYXNzIiwgIm5vdFZpc2libGUiKTsNCiAgICB1cGxvYWQuc2V0QXR0cmlidXRlKCJuYW1lIiwgIiIpOw0KICAgIHVwbG9hZC5pZCA9ICJ1cGxvYWQiOw0KICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQodXBsb2FkKTsNCiAgICB1cGxvYWQuY2xpY2soKTsNCiAgICB1cGxvYWQub25ibHVyID0gZnVuY3Rpb24gKCkgew0KICAgICAgICBhbGVydCgpOw0KICAgIH07DQogICAgdXBsb2FkLm9uY2hhbmdlID0gZnVuY3Rpb24gKCkgew0KICAgICAgICB2YXIgZmlsZW5hbWUgPSB1cGxvYWQuZmlsZXNbMF0ubmFtZTsNCiAgICAgICAgdmFyIHJlYWRlciA9IG5ldyBGaWxlUmVhZGVyKCk7DQogICAgICAgIHZhciBmaWxlID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignaW5wdXRbdHlwZT1maWxlXScpLmZpbGVzWzBdOw0KICAgICAgICBpZiAoZmlsZSkgew0KICAgICAgICAgICAgcmVhZGVyLnJlYWRBc0RhdGFVUkwoZmlsZSk7DQogICAgICAgICAgICByZWFkZXIub25sb2FkID0gZnVuY3Rpb24gKCkgew0KICAgICAgICAgICAgICAgIHZhciBkYXRhID0gbmV3IE9iamVjdCgpOw0KICAgICAgICAgICAgICAgIHZhciBjbWQgPSAidXBsb2FkTG9nbyI7DQogICAgICAgICAgICAgICAgZGF0YVsiYmFzZTY0Il0gPSByZWFkZXIucmVzdWx0Ow0KICAgICAgICAgICAgICAgIGRhdGFbImZpbGVuYW1lIl0gPSBmaWxlLm5hbWU7DQogICAgICAgICAgICAgICAgdmFyIHNlcnZlciA9IG5ldyBTZXJ2ZXIoY21kKTsNCiAgICAgICAgICAgICAgICBzZXJ2ZXIucmVxdWVzdChkYXRhKTsNCiAgICAgICAgICAgICAgICB2YXIgdXBkYXRlTG9nbyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd1cGRhdGUtaWNvbicpOw0KICAgICAgICAgICAgICAgIHVwZGF0ZUxvZ28uY2hlY2tlZCA9IGZhbHNlOw0KICAgICAgICAgICAgICAgIHVwZGF0ZUxvZ28uY2xhc3NOYW1lID0gImNoYW5nZWQiOw0KICAgICAgICAgICAgfTsNCiAgICAgICAgfQ0KICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgIGFsZXJ0KCJGaWxlIGNvdWxkIG5vdCBiZSBsb2FkZWQiKTsNCiAgICAgICAgfQ0KICAgICAgICB1cGxvYWQucmVtb3ZlKCk7DQogICAgICAgIHJldHVybjsNCiAgICB9Ow0KfQ0KZnVuY3Rpb24gY2hlY2tVbmRvKGtleSkgew0KICAgIHN3aXRjaCAoa2V5KSB7DQogICAgICAgIGNhc2UgImVwZ01hcHBpbmciOg0KICAgICAgICAgICAgaWYgKFVORE8uaGFzT3duUHJvcGVydHkoa2V5KSkgew0KICAgICAgICAgICAgICAgIFNFUlZFUlsieGVwZyJdW2tleV0gPSBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KFVORE9ba2V5XSkpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgZWxzZSB7DQogICAgICAgICAgICAgICAgVU5ET1trZXldID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeShTRVJWRVJbInhlcGciXVtrZXldKSk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgIGJyZWFrOw0KICAgIH0NCiAgICByZXR1cm47DQp9DQpmdW5jdGlvbiB1cGRhdGVMb2coKSB7DQogICAgdmFyIHNlcnZlciA9IG5ldyBTZXJ2ZXIoInVwZGF0ZUxvZyIpOw0KICAgIHNlcnZlci5yZXF1ZXN0KG5ldyBPYmplY3QoKSk7DQp9DQo=" + webUI["html/js/base_ts.js"] = "dmFyIFNFUlZFUiA9IG5ldyBPYmplY3QoKTsNCnZhciBCVUxLX0VESVQgPSBmYWxzZTsNCnZhciBDT0xVTU5fVE9fU09SVDsNCnZhciBTRUFSQ0hfTUFQUElORyA9IG5ldyBPYmplY3QoKTsNCnZhciBVTkRPID0gbmV3IE9iamVjdCgpOw0KdmFyIFNFUlZFUl9DT05ORUNUSU9OID0gZmFsc2U7DQp2YXIgV1NfQVZBSUxBQkxFID0gZmFsc2U7DQovLyBNZW51DQp2YXIgbWVudUl0ZW1zID0gbmV3IEFycmF5KCk7DQptZW51SXRlbXMucHVzaChuZXcgTWFpbk1lbnVJdGVtKCJwbGF5bGlzdCIsICJ7ey5tYWluTWVudS5pdGVtLnBsYXlsaXN0fX0iLCAibTN1LnBuZyIsICJ7ey5tYWluTWVudS5oZWFkbGluZS5wbGF5bGlzdH19IikpOw0KLy9tZW51SXRlbXMucHVzaChuZXcgTWFpbk1lbnVJdGVtKCJwbXNJRCIsICJ7ey5tYWluTWVudS5pdGVtLnBtc0lEfX0iLCAibnVtYmVyLnBuZyIsICJ7ey5tYWluTWVudS5oZWFkbGluZS5wbXNJRH19IikpDQptZW51SXRlbXMucHVzaChuZXcgTWFpbk1lbnVJdGVtKCJmaWx0ZXIiLCAie3subWFpbk1lbnUuaXRlbS5maWx0ZXJ9fSIsICJmaWx0ZXIucG5nIiwgInt7Lm1haW5NZW51LmhlYWRsaW5lLmZpbHRlcn19IikpOw0KbWVudUl0ZW1zLnB1c2gobmV3IE1haW5NZW51SXRlbSgieG1sdHYiLCAie3subWFpbk1lbnUuaXRlbS54bWx0dn19IiwgInhtbHR2LnBuZyIsICJ7ey5tYWluTWVudS5oZWFkbGluZS54bWx0dn19IikpOw0KbWVudUl0ZW1zLnB1c2gobmV3IE1haW5NZW51SXRlbSgibWFwcGluZyIsICJ7ey5tYWluTWVudS5pdGVtLm1hcHBpbmd9fSIsICJtYXBwaW5nLnBuZyIsICJ7ey5tYWluTWVudS5oZWFkbGluZS5tYXBwaW5nfX0iKSk7DQptZW51SXRlbXMucHVzaChuZXcgTWFpbk1lbnVJdGVtKCJ1c2VycyIsICJ7ey5tYWluTWVudS5pdGVtLnVzZXJzfX0iLCAidXNlcnMucG5nIiwgInt7Lm1haW5NZW51LmhlYWRsaW5lLnVzZXJzfX0iKSk7DQptZW51SXRlbXMucHVzaChuZXcgTWFpbk1lbnVJdGVtKCJzZXR0aW5ncyIsICJ7ey5tYWluTWVudS5pdGVtLnNldHRpbmdzfX0iLCAic2V0dGluZ3MucG5nIiwgInt7Lm1haW5NZW51LmhlYWRsaW5lLnNldHRpbmdzfX0iKSk7DQptZW51SXRlbXMucHVzaChuZXcgTWFpbk1lbnVJdGVtKCJsb2ciLCAie3subWFpbk1lbnUuaXRlbS5sb2d9fSIsICJsb2cucG5nIiwgInt7Lm1haW5NZW51LmhlYWRsaW5lLmxvZ319IikpOw0KbWVudUl0ZW1zLnB1c2gobmV3IE1haW5NZW51SXRlbSgibG9nb3V0IiwgInt7Lm1haW5NZW51Lml0ZW0ubG9nb3V0fX0iLCAibG9nb3V0LnBuZyIsICJ7ey5tYWluTWVudS5oZWFkbGluZS5sb2dvdXR9fSIpKTsNCi8vIFNldHRpbmdzIGNhdGVnb3JpZXMNCnZhciBzZXR0aW5nc0NhdGVnb3J5ID0gbmV3IEFycmF5KCk7DQpzZXR0aW5nc0NhdGVnb3J5LnB1c2gobmV3IFNldHRpbmdzQ2F0ZWdvcnlJdGVtKCJ7ey5zZXR0aW5ncy5jYXRlZ29yeS5nZW5lcmFsfX0iLCAidGxzTW9kZSx4dGV2ZUF1dG9VcGRhdGUsaG9zdElQLHR1bmVyLGVwZ1NvdXJjZSxkaXNhbGxvd1VSTER1cGxpY2F0ZXMsYXBpIikpOw0Kc2V0dGluZ3NDYXRlZ29yeS5wdXNoKG5ldyBTZXR0aW5nc0NhdGVnb3J5SXRlbSgie3suc2V0dGluZ3MuY2F0ZWdvcnkubWFwcGluZ319IiwgImRlZmF1bHRNaXNzaW5nRVBHIikpOw0Kc2V0dGluZ3NDYXRlZ29yeS5wdXNoKG5ldyBTZXR0aW5nc0NhdGVnb3J5SXRlbSgie3suc2V0dGluZ3MuY2F0ZWdvcnkuZmlsZXN9fSIsICJ1cGRhdGUsZmlsZXMudXBkYXRlLHRlbXAucGF0aCxjYWNoZS5pbWFnZXMseGVwZy5yZXBsYWNlLm1pc3NpbmcuaW1hZ2VzIikpOw0Kc2V0dGluZ3NDYXRlZ29yeS5wdXNoKG5ldyBTZXR0aW5nc0NhdGVnb3J5SXRlbSgie3suc2V0dGluZ3MuY2F0ZWdvcnkuc3RyZWFtaW5nfX0iLCAiYnVmZmVyLHVkcHh5LGJ1ZmZlci5zaXplLmtiLHN0b3JlQnVmZmVySW5SQU0sYnVmZmVyLnRpbWVvdXQsdXNlci5hZ2VudCxmZm1wZWcucGF0aCxmZm1wZWcub3B0aW9ucyx2bGMucGF0aCx2bGMub3B0aW9ucyIpKTsNCnNldHRpbmdzQ2F0ZWdvcnkucHVzaChuZXcgU2V0dGluZ3NDYXRlZ29yeUl0ZW0oInt7LnNldHRpbmdzLmNhdGVnb3J5LmJhY2t1cH19IiwgImJhY2t1cC5wYXRoLGJhY2t1cC5rZWVwIikpOw0Kc2V0dGluZ3NDYXRlZ29yeS5wdXNoKG5ldyBTZXR0aW5nc0NhdGVnb3J5SXRlbSgie3suc2V0dGluZ3MuY2F0ZWdvcnkuYXV0aGVudGljYXRpb259fSIsICJhdXRoZW50aWNhdGlvbi53ZWIsYXV0aGVudGljYXRpb24ucG1zLGF1dGhlbnRpY2F0aW9uLm0zdSxhdXRoZW50aWNhdGlvbi54bWwsYXV0aGVudGljYXRpb24uYXBpIikpOw0KZnVuY3Rpb24gc2hvd1BvcFVwRWxlbWVudChlbG0pIHsNCiAgICB2YXIgYWxsRWxlbWVudHMgPSBuZXcgQXJyYXkoInBvcHVwLWN1c3RvbSIpOw0KICAgIGZvciAodmFyIGkgPSAwOyBpIDwgYWxsRWxlbWVudHMubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgc2hvd0VsZW1lbnQoYWxsRWxlbWVudHNbaV0sIGZhbHNlKTsNCiAgICB9DQogICAgc2hvd0VsZW1lbnQoZWxtLCB0cnVlKTsNCiAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsNCiAgICAgICAgc2hvd0VsZW1lbnQoInBvcHVwIiwgdHJ1ZSk7DQogICAgfSwgMTApOw0KICAgIHJldHVybjsNCn0NCmZ1bmN0aW9uIHNob3dFbGVtZW50KGVsbUlELCB0eXBlKSB7DQogICAgdmFyIGNzc0NsYXNzOw0KICAgIHN3aXRjaCAodHlwZSkgew0KICAgICAgICBjYXNlIHRydWU6DQogICAgICAgICAgICBjc3NDbGFzcyA9ICJibG9jayI7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSBmYWxzZToNCiAgICAgICAgICAgIGNzc0NsYXNzID0gIm5vbmUiOw0KICAgICAgICAgICAgYnJlYWs7DQogICAgfQ0KICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGVsbUlEKS5jbGFzc05hbWUgPSBjc3NDbGFzczsNCn0NCmZ1bmN0aW9uIGNoYW5nZUJ1dHRvbkFjdGlvbihlbGVtZW50LCBidXR0b25JRCwgYXR0cmlidXRlKSB7DQogICAgdmFyIHZhbHVlID0gZWxlbWVudC5vcHRpb25zW2VsZW1lbnQuc2VsZWN0ZWRJbmRleF0udmFsdWU7DQogICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoYnV0dG9uSUQpLnNldEF0dHJpYnV0ZShhdHRyaWJ1dGUsIHZhbHVlKTsNCn0NCmZ1bmN0aW9uIGdldExvY2FsRGF0YShkYXRhVHlwZSwgaWQpIHsNCiAgICBsZXQgZGF0YSA9IHt9Ow0KICAgIHN3aXRjaCAoZGF0YVR5cGUpIHsNCiAgICAgICAgY2FzZSAibTN1IjoNCiAgICAgICAgICAgIGRhdGEgPSBTRVJWRVJbInNldHRpbmdzIl1bImZpbGVzIl1bZGF0YVR5cGVdW2lkXTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJoZGhyIjoNCiAgICAgICAgICAgIGRhdGEgPSBTRVJWRVJbInNldHRpbmdzIl1bImZpbGVzIl1bZGF0YVR5cGVdW2lkXTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJmaWx0ZXIiOg0KICAgICAgICBjYXNlICJjdXN0b20tZmlsdGVyIjoNCiAgICAgICAgY2FzZSAiZ3JvdXAtdGl0bGUiOg0KICAgICAgICAgICAgaWYgKGlkID09IC0xKSB7DQogICAgICAgICAgICAgICAgZGF0YVsiYWN0aXZlIl0gPSB0cnVlOw0KICAgICAgICAgICAgICAgIGRhdGFbImNhc2VTZW5zaXRpdmUiXSA9IGZhbHNlOw0KICAgICAgICAgICAgICAgIGRhdGFbImRlc2NyaXB0aW9uIl0gPSAiIjsNCiAgICAgICAgICAgICAgICBkYXRhWyJleGNsdWRlIl0gPSAiIjsNCiAgICAgICAgICAgICAgICBkYXRhWyJmaWx0ZXIiXSA9ICIiOw0KICAgICAgICAgICAgICAgIGRhdGFbImluY2x1ZGUiXSA9ICIiOw0KICAgICAgICAgICAgICAgIGRhdGFbIm5hbWUiXSA9ICIiOw0KICAgICAgICAgICAgICAgIGRhdGFbInR5cGUiXSA9ICJncm91cC10aXRsZSI7DQogICAgICAgICAgICAgICAgZGF0YVsicHJlc2VydmVNYXBwaW5nIl0gPSB0cnVlOw0KICAgICAgICAgICAgICAgIGRhdGFbInN0YXJ0aW5nQ2hhbm5lbCJdID0gU0VSVkVSWyJzZXR0aW5ncyJdWyJtYXBwaW5nLmZpcnN0LmNoYW5uZWwiXTsNCiAgICAgICAgICAgICAgICBTRVJWRVJbInNldHRpbmdzIl1bImZpbHRlciJdW2lkXSA9IGRhdGE7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBkYXRhID0gU0VSVkVSWyJzZXR0aW5ncyJdWyJmaWx0ZXIiXVtpZF07DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSAieG1sdHYiOg0KICAgICAgICAgICAgZGF0YSA9IFNFUlZFUlsic2V0dGluZ3MiXVsiZmlsZXMiXVtkYXRhVHlwZV1baWRdOw0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGNhc2UgInVzZXJzIjoNCiAgICAgICAgICAgIGRhdGEgPSBTRVJWRVJbInVzZXJzIl1baWRdWyJkYXRhIl07DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSAibWFwcGluZyI6DQogICAgICAgICAgICBkYXRhID0gU0VSVkVSWyJ4ZXBnIl1bImVwZ01hcHBpbmciXVtpZF07DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSAibTN1R3JvdXBzIjoNCiAgICAgICAgICAgIGRhdGEgPSBTRVJWRVJbImRhdGEiXVsicGxheWxpc3QiXVsibTN1Il1bImdyb3VwcyJdOw0KICAgICAgICAgICAgYnJlYWs7DQogICAgfQ0KICAgIHJldHVybiBkYXRhOw0KfQ0KZnVuY3Rpb24gZ2V0T3duT2JqUHJvcHMob2JqZWN0KSB7DQogICAgcmV0dXJuIG9iamVjdCA/IE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKG9iamVjdCkgOiBbXTsNCn0NCmZ1bmN0aW9uIGdldEFsbFNlbGVjdGVkQ2hhbm5lbHMoKSB7DQogICAgdmFyIGNoYW5uZWxzID0gbmV3IEFycmF5KCk7DQogICAgaWYgKEJVTEtfRURJVCA9PSBmYWxzZSkgew0KICAgICAgICByZXR1cm4gY2hhbm5lbHM7DQogICAgfQ0KICAgIHZhciB0cnMgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29udGVudF90YWJsZSIpLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJUUiIpOw0KICAgIGZvciAodmFyIGkgPSAxOyBpIDwgdHJzLmxlbmd0aDsgaSsrKSB7DQogICAgICAgIGlmICh0cnNbaV0uc3R5bGUuZGlzcGxheSAhPSAibm9uZSIpIHsNCiAgICAgICAgICAgIGlmICh0cnNbaV0uZmlyc3RDaGlsZC5maXJzdENoaWxkLmNoZWNrZWQgPT0gdHJ1ZSkgew0KICAgICAgICAgICAgICAgIGNoYW5uZWxzLnB1c2godHJzW2ldLmlkKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KICAgIH0NCiAgICByZXR1cm4gY2hhbm5lbHM7DQp9DQpmdW5jdGlvbiBzZWxlY3RBbGxDaGFubmVscygpIHsNCiAgICB2YXIgYnVsayA9IGZhbHNlOw0KICAgIHZhciB0cnMgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29udGVudF90YWJsZSIpLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJUUiIpOw0KICAgIGlmICh0cnNbMF0uZmlyc3RDaGlsZC5maXJzdENoaWxkLmNoZWNrZWQgPT0gdHJ1ZSkgew0KICAgICAgICBidWxrID0gdHJ1ZTsNCiAgICB9DQogICAgZm9yICh2YXIgaSA9IDE7IGkgPCB0cnMubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgaWYgKHRyc1tpXS5zdHlsZS5kaXNwbGF5ICE9ICJub25lIikgew0KICAgICAgICAgICAgc3dpdGNoIChidWxrKSB7DQogICAgICAgICAgICAgICAgY2FzZSB0cnVlOg0KICAgICAgICAgICAgICAgICAgICB0cnNbaV0uZmlyc3RDaGlsZC5maXJzdENoaWxkLmNoZWNrZWQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBjYXNlIGZhbHNlOg0KICAgICAgICAgICAgICAgICAgICB0cnNbaV0uZmlyc3RDaGlsZC5maXJzdENoaWxkLmNoZWNrZWQgPSBmYWxzZTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICB9DQogICAgICAgIH0NCiAgICB9DQogICAgcmV0dXJuOw0KfQ0KZnVuY3Rpb24gYnVsa0VkaXQoKSB7DQogICAgQlVMS19FRElUID0gIUJVTEtfRURJVDsNCiAgICB2YXIgY2xhc3NOYW1lOw0KICAgIHZhciByb3dzID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSgiYnVsayIpOw0KICAgIHN3aXRjaCAoQlVMS19FRElUKSB7DQogICAgICAgIGNhc2UgdHJ1ZToNCiAgICAgICAgICAgIGNsYXNzTmFtZSA9ICJidWxrIHNob3dCdWxrIjsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlIGZhbHNlOg0KICAgICAgICAgICAgY2xhc3NOYW1lID0gImJ1bGsgaGlkZUJ1bGsiOw0KICAgICAgICAgICAgYnJlYWs7DQogICAgfQ0KICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcm93cy5sZW5ndGg7IGkrKykgew0KICAgICAgICByb3dzW2ldLmNsYXNzTmFtZSA9IGNsYXNzTmFtZTsNCiAgICAgICAgcm93c1tpXS5jaGVja2VkID0gZmFsc2U7DQogICAgfQ0KICAgIHJldHVybjsNCn0NCmZ1bmN0aW9uIHNvcnRUYWJsZShjb2x1bW4pIHsNCiAgICBpZiAoY29sdW1uID09IENPTFVNTl9UT19TT1JUKSB7DQogICAgICAgIHJldHVybjsNCiAgICB9DQogICAgY29uc3QgdGFibGUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29udGVudF90YWJsZSIpOw0KICAgIGNvbnN0IHRhYmxlSGVhZCA9IHRhYmxlLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJUUiIpWzBdOw0KICAgIGNvbnN0IHRhYmxlSXRlbXMgPSB0YWJsZUhlYWQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlREIik7DQogICAgY29uc3Qgc29ydEFyciA9IFtdOw0KICAgIGxldCB4VmFsdWU7DQogICAgaWYgKGNvbHVtbiA+PSAwICYmIENPTFVNTl9UT19TT1JUID49IDApIHsNCiAgICAgICAgdGFibGVJdGVtc1tDT0xVTU5fVE9fU09SVF0uY2xhc3NOYW1lID0gInBvaW50ZXIiOw0KICAgICAgICB0YWJsZUl0ZW1zW2NvbHVtbl0uY2xhc3NOYW1lID0gInNvcnRUaGlzIjsNCiAgICB9DQogICAgQ09MVU1OX1RPX1NPUlQgPSBjb2x1bW47DQogICAgY29uc3Qgcm93cyA9IHRhYmxlLnJvd3M7DQogICAgaWYgKHJvd3NbMV0gIT0gdW5kZWZpbmVkKSB7DQogICAgICAgIGNvbnN0IHRhYmxlSGVhZGVyID0gcm93c1swXTsNCiAgICAgICAgbGV0IHggPSByb3dzWzFdLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJURCIpW2NvbHVtbl07DQogICAgICAgIGZvciAobGV0IGkgPSAxOyBpIDwgcm93cy5sZW5ndGg7IGkrKykgew0KICAgICAgICAgICAgeCA9IHJvd3NbaV0uZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlREIilbY29sdW1uXTsNCiAgICAgICAgICAgIHN3aXRjaCAoeC5jaGlsZE5vZGVzWzBdLnRhZ05hbWUudG9Mb3dlckNhc2UoKSkgew0KICAgICAgICAgICAgICAgIGNhc2UgImlucHV0IjoNCiAgICAgICAgICAgICAgICAgICAgeFZhbHVlID0geC5nZXRFbGVtZW50c0J5VGFnTmFtZSgiSU5QVVQiKVswXS52YWx1ZS50b0xvd2VyQ2FzZSgpOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBjYXNlICJwIjoNCiAgICAgICAgICAgICAgICAgICAgeFZhbHVlID0geC5nZXRFbGVtZW50c0J5VGFnTmFtZSgiUCIpWzBdLmlubmVyVGV4dC50b0xvd2VyQ2FzZSgpOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBkZWZhdWx0Og0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIHNvcnRBcnIucHVzaCh7IGtleTogeFZhbHVlID8geFZhbHVlIDogaSwgcm93OiByb3dzW2ldIH0pOw0KICAgICAgICB9DQogICAgICAgIHdoaWxlICh0YWJsZS5maXJzdENoaWxkKSB7DQogICAgICAgICAgICB0YWJsZS5yZW1vdmVDaGlsZCh0YWJsZS5maXJzdENoaWxkKTsNCiAgICAgICAgfQ0KICAgICAgICBzb3J0QXJyLnNvcnQoKHNlMSwgc2UyKSA9PiB7DQogICAgICAgICAgICBjb25zdCBzZTFLZXlOdW0gPSBwYXJzZUZsb2F0KFN0cmluZyhzZTEua2V5KSk7DQogICAgICAgICAgICBjb25zdCBzZTJLZXlOdW0gPSBwYXJzZUZsb2F0KFN0cmluZyhzZTIua2V5KSk7DQogICAgICAgICAgICBpZiAoIWlzTmFOKHNlMUtleU51bSkgJiYgIWlzTmFOKHNlMktleU51bSkpIHsNCiAgICAgICAgICAgICAgICByZXR1cm4gc2UxS2V5TnVtIC0gc2UyS2V5TnVtOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgaWYgKHNlMS5rZXkgPCBzZTIua2V5KSB7DQogICAgICAgICAgICAgICAgcmV0dXJuIC0xOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgaWYgKHNlMS5rZXkgPiBzZTIua2V5KSB7DQogICAgICAgICAgICAgICAgcmV0dXJuIDE7DQogICAgICAgICAgICB9DQogICAgICAgICAgICByZXR1cm4gMDsNCiAgICAgICAgfSk7DQogICAgICAgIHRhYmxlLmFwcGVuZENoaWxkKHRhYmxlSGVhZGVyKTsNCiAgICAgICAgc29ydEFyci5mb3JFYWNoKChzZSkgPT4gew0KICAgICAgICAgICAgdGFibGUuYXBwZW5kQ2hpbGQoc2Uucm93KTsNCiAgICAgICAgfSk7DQogICAgfQ0KICAgIHJldHVybjsNCn0NCmZ1bmN0aW9uIGNyZWF0ZVNlYXJjaE9iaigpIHsNCiAgICBTRUFSQ0hfTUFQUElORyA9IG5ldyBPYmplY3QoKTsNCiAgICB2YXIgZGF0YSA9IFNFUlZFUlsieGVwZyJdWyJlcGdNYXBwaW5nIl07DQogICAgdmFyIGNoYW5uZWxzID0gZ2V0T3duT2JqUHJvcHMoZGF0YSk7DQogICAgdmFyIGNoYW5uZWxLZXlzID0gWyJ4LWFjdGl2ZSIsICJ4LWNoYW5uZWxJRCIsICJ4LW5hbWUiLCAidXBkYXRlQ2hhbm5lbE5hbWVSZWdleCIsICJfZmlsZS5tM3UubmFtZSIsICJ4LWdyb3VwLXRpdGxlIiwgIngteG1sdHYtZmlsZSJdOw0KICAgIGNoYW5uZWxzLmZvckVhY2goaWQgPT4gew0KICAgICAgICBjaGFubmVsS2V5cy5mb3JFYWNoKGtleSA9PiB7DQogICAgICAgICAgICBpZiAoa2V5ID09ICJ4LWFjdGl2ZSIpIHsNCiAgICAgICAgICAgICAgICBzd2l0Y2ggKGRhdGFbaWRdW2tleV0pIHsNCiAgICAgICAgICAgICAgICAgICAgY2FzZSB0cnVlOg0KICAgICAgICAgICAgICAgICAgICAgICAgU0VBUkNIX01BUFBJTkdbaWRdID0gIm9ubGluZSAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgICAgIGNhc2UgZmFsc2U6DQogICAgICAgICAgICAgICAgICAgICAgICBTRUFSQ0hfTUFQUElOR1tpZF0gPSAib2ZmbGluZSAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgZWxzZSB7DQogICAgICAgICAgICAgICAgaWYgKGtleSA9PSAieC14bWx0di1maWxlIikgew0KICAgICAgICAgICAgICAgICAgICB2YXIgeG1sdHZGaWxlID0gZ2V0VmFsdWVGcm9tUHJvdmlkZXJGaWxlKGRhdGFbaWRdW2tleV0sICJ4bWx0diIsICJuYW1lIik7DQogICAgICAgICAgICAgICAgICAgIGlmICh4bWx0dkZpbGUgIT0gdW5kZWZpbmVkKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBTRUFSQ0hfTUFQUElOR1tpZF0gPSBTRUFSQ0hfTUFQUElOR1tpZF0gKyB4bWx0dkZpbGUgKyAiICI7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgZWxzZSB7DQogICAgICAgICAgICAgICAgICAgIFNFQVJDSF9NQVBQSU5HW2lkXSA9IFNFQVJDSF9NQVBQSU5HW2lkXSArIGRhdGFbaWRdW2tleV0gKyAiICI7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfQ0KICAgICAgICB9KTsNCiAgICB9KTsNCiAgICByZXR1cm47DQp9DQpmdW5jdGlvbiBzZWFyY2hJbk1hcHBpbmcoKSB7DQogICAgdmFyIHNlYXJjaFZhbHVlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNlYXJjaE1hcHBpbmciKS52YWx1ZTsNCiAgICB2YXIgdHJzID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnRlbnRfdGFibGUiKS5nZXRFbGVtZW50c0J5VGFnTmFtZSgiVFIiKTsNCiAgICBmb3IgKHZhciBpID0gMTsgaSA8IHRycy5sZW5ndGg7ICsraSkgew0KICAgICAgICB2YXIgaWQgPSB0cnNbaV0uZ2V0QXR0cmlidXRlKCJpZCIpOw0KICAgICAgICB2YXIgZWxlbWVudCA9IFNFQVJDSF9NQVBQSU5HW2lkXTsNCiAgICAgICAgc3dpdGNoIChlbGVtZW50LnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoc2VhcmNoVmFsdWUudG9Mb3dlckNhc2UoKSkpIHsNCiAgICAgICAgICAgIGNhc2UgdHJ1ZToNCiAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkuc3R5bGUuZGlzcGxheSA9ICIiOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSBmYWxzZToNCiAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkuc3R5bGUuZGlzcGxheSA9ICJub25lIjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgfQ0KICAgIH0NCiAgICByZXR1cm47DQp9DQpmdW5jdGlvbiBjYWxjdWxhdGVXcmFwcGVySGVpZ2h0KCkgew0KICAgIGlmIChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYm94LXdyYXBwZXIiKSkgew0KICAgICAgICB2YXIgZWxtID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImJveC13cmFwcGVyIik7DQogICAgICAgIHZhciBkaXZzID0gbmV3IEFycmF5KCJteVN0cmVhbXNCb3giLCAiY2xpZW50SW5mbyIsICJjb250ZW50Iik7DQogICAgICAgIHZhciBlbGVtZW50c0hlaWdodCA9IDAgLSBlbG0ub2Zmc2V0SGVpZ2h0Ow0KICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGRpdnMubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgICAgIGVsZW1lbnRzSGVpZ2h0ID0gZWxlbWVudHNIZWlnaHQgKyBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChkaXZzW2ldKS5vZmZzZXRIZWlnaHQ7DQogICAgICAgIH0NCiAgICAgICAgZWxtLnN0eWxlLmhlaWdodCA9IHdpbmRvdy5pbm5lckhlaWdodCAtIGVsZW1lbnRzSGVpZ2h0ICsgInB4IjsNCiAgICB9DQogICAgcmV0dXJuOw0KfQ0KZnVuY3Rpb24gY2hhbmdlQ2hhbm5lbE51bWJlcihlbGVtZW50KSB7DQogICAgdmFyIGRiSUQgPSBlbGVtZW50LnBhcmVudE5vZGUucGFyZW50Tm9kZS5pZDsNCiAgICB2YXIgbmV3TnVtYmVyID0gcGFyc2VGbG9hdChlbGVtZW50LnZhbHVlKTsNCiAgICB2YXIgY2hhbm5lbE51bWJlcnMgPSBbXTsNCiAgICB2YXIgZGF0YSA9IFNFUlZFUlsieGVwZyJdWyJlcGdNYXBwaW5nIl07DQogICAgdmFyIGNoYW5uZWxzID0gZ2V0T3duT2JqUHJvcHMoZGF0YSk7DQogICAgaWYgKGlzTmFOKG5ld051bWJlcikpIHsNCiAgICAgICAgYWxlcnQoInt7LmFsZXJ0LmludmFsaWRDaGFubmVsTnVtYmVyfX0iKTsNCiAgICAgICAgcmV0dXJuOw0KICAgIH0NCiAgICBjaGFubmVscy5mb3JFYWNoKGlkID0+IHsNCiAgICAgICAgdmFyIGNoYW5uZWxOdW1iZXIgPSBwYXJzZUZsb2F0KGRhdGFbaWRdWyJ4LWNoYW5uZWxJRCJdKTsNCiAgICAgICAgY2hhbm5lbE51bWJlcnMucHVzaChjaGFubmVsTnVtYmVyKTsNCiAgICB9KTsNCiAgICBmb3IgKHZhciBpID0gMDsgaSA8IGNoYW5uZWxOdW1iZXJzLmxlbmd0aDsgaSsrKSB7DQogICAgICAgIGlmIChjaGFubmVsTnVtYmVycy5pbmRleE9mKG5ld051bWJlcikgPT0gLTEpIHsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICB9DQogICAgICAgIGlmIChNYXRoLmZsb29yKG5ld051bWJlcikgPT0gbmV3TnVtYmVyKSB7DQogICAgICAgICAgICBuZXdOdW1iZXIgPSBuZXdOdW1iZXIgKyAxOw0KICAgICAgICB9DQogICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgbmV3TnVtYmVyID0gbmV3TnVtYmVyICsgMC4xOw0KICAgICAgICAgICAgbmV3TnVtYmVyLnRvRml4ZWQoMSk7DQogICAgICAgICAgICBuZXdOdW1iZXIgPSBNYXRoLnJvdW5kKG5ld051bWJlciAqIDEwKSAvIDEwOw0KICAgICAgICB9DQogICAgfQ0KICAgIGRhdGFbZGJJRF1bIngtY2hhbm5lbElEIl0gPSBuZXdOdW1iZXIudG9TdHJpbmcoKTsNCiAgICBlbGVtZW50LnZhbHVlID0gbmV3TnVtYmVyOw0KICAgIGlmIChDT0xVTU5fVE9fU09SVCA9PSAxKSB7DQogICAgICAgIENPTFVNTl9UT19TT1JUID0gLTE7DQogICAgICAgIHNvcnRUYWJsZSgxKTsNCiAgICB9DQogICAgcmV0dXJuOw0KfQ0KZnVuY3Rpb24gYmFja3VwKCkgew0KICAgIHZhciBkYXRhID0gbmV3IE9iamVjdCgpOw0KICAgIHZhciBjbWQgPSAieHRldmVCYWNrdXAiOw0KICAgIHZhciBzZXJ2ZXIgPSBuZXcgU2VydmVyKGNtZCk7DQogICAgc2VydmVyLnJlcXVlc3QoZGF0YSk7DQogICAgcmV0dXJuOw0KfQ0KZnVuY3Rpb24gdG9nZ2xlQ2hhbm5lbFN0YXR1cyhpZCkgew0KICAgIHZhciBlbGVtZW50Ow0KICAgIHZhciBzdGF0dXM7DQogICAgaWYgKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJhY3RpdmUiKSkgew0KICAgICAgICB2YXIgY2hlY2tib3ggPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYWN0aXZlIik7DQogICAgICAgIHN0YXR1cyA9IChjaGVja2JveCkuY2hlY2tlZDsNCiAgICB9DQogICAgdmFyIGlkcyA9IGdldEFsbFNlbGVjdGVkQ2hhbm5lbHMoKTsNCiAgICBpZiAoaWRzLmxlbmd0aCA9PSAwKSB7DQogICAgICAgIGlkcy5wdXNoKGlkKTsNCiAgICB9DQogICAgaWRzLmZvckVhY2goaWQgPT4gew0KICAgICAgICB2YXIgY2hhbm5lbCA9IFNFUlZFUlsieGVwZyJdWyJlcGdNYXBwaW5nIl1baWRdOw0KICAgICAgICBjaGFubmVsWyJ4LWFjdGl2ZSJdID0gc3RhdHVzOw0KICAgICAgICBzd2l0Y2ggKGNoYW5uZWxbIngtYWN0aXZlIl0pIHsNCiAgICAgICAgICAgIGNhc2UgdHJ1ZToNCiAgICAgICAgICAgICAgICBpZiAoY2hhbm5lbFsieC14bWx0di1maWxlIl0gPT0gIi0iIHx8IGNoYW5uZWxbIngtbWFwcGluZyJdID09ICItIikgew0KICAgICAgICAgICAgICAgICAgICBpZiAoQlVMS19FRElUID09IGZhbHNlKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBhbGVydChjaGFubmVsWyJ4LW5hbWUiXSArICI6IE1pc3NpbmcgWE1MVFYgZmlsZSAvIGNoYW5uZWwiKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNoZWNrYm94LmNoZWNrZWQgPSBmYWxzZTsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBjaGFubmVsWyJ4LWFjdGl2ZSJdID0gZmFsc2U7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSBmYWxzZToNCiAgICAgICAgICAgICAgICAvLyBjb2RlLi4uDQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIH0NCiAgICAgICAgaWYgKGNoYW5uZWxbIngtYWN0aXZlIl0gPT0gZmFsc2UpIHsNCiAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5jbGFzc05hbWUgPSAibm90QWN0aXZlRVBHIjsNCiAgICAgICAgfQ0KICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5jbGFzc05hbWUgPSAiYWN0aXZlRVBHIjsNCiAgICAgICAgfQ0KICAgIH0pOw0KfQ0KZnVuY3Rpb24gdG9nZ2xlR3JvdXBVcGRhdGVDYih4ZXBnSWQsIHRhcmdldCkgew0KICAgIHRhcmdldC5jbGFzc05hbWUgPSAnY2hhbmdlZCc7DQogICAgY29uc3QgZ3JvdXBJbnB1dCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ2lucHV0W25hbWU9IngtZ3JvdXAtdGl0bGUiXScpOw0KICAgIGNvbnN0IG1hcHBpbmcgPSBnZXRMb2NhbERhdGEoJ21hcHBpbmcnLCB4ZXBnSWQpOw0KICAgIGlmICh0YXJnZXQuY2hlY2tlZCkgew0KICAgICAgICBncm91cElucHV0LmRhdGFzZXQub2xkVmFsdWUgPSBncm91cElucHV0LnZhbHVlOw0KICAgICAgICBncm91cElucHV0LnZhbHVlID0gbWFwcGluZ1snZ3JvdXAtdGl0bGUnXTsNCiAgICAgICAgZ3JvdXBJbnB1dC5kaXNhYmxlZCA9IHRydWU7DQogICAgfQ0KICAgIGVsc2Ugew0KICAgICAgICBncm91cElucHV0LnZhbHVlID0gZ3JvdXBJbnB1dC5kYXRhc2V0Lm9sZFZhbHVlOw0KICAgICAgICBncm91cElucHV0LmRpc2FibGVkID0gZmFsc2U7DQogICAgfQ0KICAgIGdyb3VwSW5wdXQuY2xhc3NOYW1lID0gJ2NoYW5nZWQnOw0KfQ0KZnVuY3Rpb24gcmVzdG9yZSgpIHsNCiAgICBpZiAoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3VwbG9hZCcpKSB7DQogICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd1cGxvYWQnKS5yZW1vdmUoKTsNCiAgICB9DQogICAgdmFyIHJlc3RvcmUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJJTlBVVCIpOw0KICAgIHJlc3RvcmUuc2V0QXR0cmlidXRlKCJ0eXBlIiwgImZpbGUiKTsNCiAgICByZXN0b3JlLnNldEF0dHJpYnV0ZSgiY2xhc3MiLCAibm90VmlzaWJsZSIpOw0KICAgIHJlc3RvcmUuc2V0QXR0cmlidXRlKCJuYW1lIiwgIiIpOw0KICAgIHJlc3RvcmUuaWQgPSAidXBsb2FkIjsNCiAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHJlc3RvcmUpOw0KICAgIHJlc3RvcmUuY2xpY2soKTsNCiAgICByZXN0b3JlLm9uY2hhbmdlID0gZnVuY3Rpb24gKCkgew0KICAgICAgICB2YXIgZmlsZW5hbWUgPSByZXN0b3JlLmZpbGVzWzBdLm5hbWU7DQogICAgICAgIHZhciBjaGVjayA9IGNvbmZpcm0oIkZpbGU6ICIgKyBmaWxlbmFtZSArICJcbnt7LmNvbmZpcm0ucmVzdG9yZX19Iik7DQogICAgICAgIGlmIChjaGVjayA9PSB0cnVlKSB7DQogICAgICAgICAgICB2YXIgcmVhZGVyID0gbmV3IEZpbGVSZWFkZXIoKTsNCiAgICAgICAgICAgIHZhciBmaWxlID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignaW5wdXRbdHlwZT1maWxlXScpLmZpbGVzWzBdOw0KICAgICAgICAgICAgaWYgKGZpbGUpIHsNCiAgICAgICAgICAgICAgICByZWFkZXIucmVhZEFzRGF0YVVSTChmaWxlKTsNCiAgICAgICAgICAgICAgICByZWFkZXIub25sb2FkID0gZnVuY3Rpb24gKCkgew0KICAgICAgICAgICAgICAgICAgICB2YXIgZGF0YSA9IG5ldyBPYmplY3QoKTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGNtZCA9ICJ4dGV2ZVJlc3RvcmUiOw0KICAgICAgICAgICAgICAgICAgICBkYXRhWyJiYXNlNjQiXSA9IHJlYWRlci5yZXN1bHQ7DQogICAgICAgICAgICAgICAgICAgIHZhciBzZXJ2ZXIgPSBuZXcgU2VydmVyKGNtZCk7DQogICAgICAgICAgICAgICAgICAgIHNlcnZlci5yZXF1ZXN0KGRhdGEpOw0KICAgICAgICAgICAgICAgIH07DQogICAgICAgICAgICB9DQogICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICBhbGVydCgiRmlsZSBjb3VsZCBub3QgYmUgbG9hZGVkIik7DQogICAgICAgICAgICB9DQogICAgICAgICAgICByZXN0b3JlLnJlbW92ZSgpOw0KICAgICAgICAgICAgcmV0dXJuOw0KICAgICAgICB9DQogICAgfTsNCiAgICByZXR1cm47DQp9DQpmdW5jdGlvbiB1cGxvYWRMb2dvKCkgew0KICAgIGlmIChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndXBsb2FkJykpIHsNCiAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3VwbG9hZCcpLnJlbW92ZSgpOw0KICAgIH0NCiAgICB2YXIgdXBsb2FkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiSU5QVVQiKTsNCiAgICB1cGxvYWQuc2V0QXR0cmlidXRlKCJ0eXBlIiwgImZpbGUiKTsNCiAgICB1cGxvYWQuc2V0QXR0cmlidXRlKCJjbGFzcyIsICJub3RWaXNpYmxlIik7DQogICAgdXBsb2FkLnNldEF0dHJpYnV0ZSgibmFtZSIsICIiKTsNCiAgICB1cGxvYWQuaWQgPSAidXBsb2FkIjsNCiAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHVwbG9hZCk7DQogICAgdXBsb2FkLmNsaWNrKCk7DQogICAgdXBsb2FkLm9uYmx1ciA9IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgYWxlcnQoKTsNCiAgICB9Ow0KICAgIHVwbG9hZC5vbmNoYW5nZSA9IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgdmFyIGZpbGVuYW1lID0gdXBsb2FkLmZpbGVzWzBdLm5hbWU7DQogICAgICAgIHZhciByZWFkZXIgPSBuZXcgRmlsZVJlYWRlcigpOw0KICAgICAgICB2YXIgZmlsZSA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ2lucHV0W3R5cGU9ZmlsZV0nKS5maWxlc1swXTsNCiAgICAgICAgaWYgKGZpbGUpIHsNCiAgICAgICAgICAgIHJlYWRlci5yZWFkQXNEYXRhVVJMKGZpbGUpOw0KICAgICAgICAgICAgcmVhZGVyLm9ubG9hZCA9IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgICAgICAgICB2YXIgZGF0YSA9IG5ldyBPYmplY3QoKTsNCiAgICAgICAgICAgICAgICB2YXIgY21kID0gInVwbG9hZExvZ28iOw0KICAgICAgICAgICAgICAgIGRhdGFbImJhc2U2NCJdID0gcmVhZGVyLnJlc3VsdDsNCiAgICAgICAgICAgICAgICBkYXRhWyJmaWxlbmFtZSJdID0gZmlsZS5uYW1lOw0KICAgICAgICAgICAgICAgIHZhciBzZXJ2ZXIgPSBuZXcgU2VydmVyKGNtZCk7DQogICAgICAgICAgICAgICAgc2VydmVyLnJlcXVlc3QoZGF0YSk7DQogICAgICAgICAgICAgICAgdmFyIHVwZGF0ZUxvZ28gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndXBkYXRlLWljb24nKTsNCiAgICAgICAgICAgICAgICB1cGRhdGVMb2dvLmNoZWNrZWQgPSBmYWxzZTsNCiAgICAgICAgICAgICAgICB1cGRhdGVMb2dvLmNsYXNzTmFtZSA9ICJjaGFuZ2VkIjsNCiAgICAgICAgICAgIH07DQogICAgICAgIH0NCiAgICAgICAgZWxzZSB7DQogICAgICAgICAgICBhbGVydCgiRmlsZSBjb3VsZCBub3QgYmUgbG9hZGVkIik7DQogICAgICAgIH0NCiAgICAgICAgdXBsb2FkLnJlbW92ZSgpOw0KICAgICAgICByZXR1cm47DQogICAgfTsNCn0NCmZ1bmN0aW9uIGNoZWNrVW5kbyhrZXkpIHsNCiAgICBzd2l0Y2ggKGtleSkgew0KICAgICAgICBjYXNlICJlcGdNYXBwaW5nIjoNCiAgICAgICAgICAgIGlmIChVTkRPLmhhc093blByb3BlcnR5KGtleSkpIHsNCiAgICAgICAgICAgICAgICBTRVJWRVJbInhlcGciXVtrZXldID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeShVTkRPW2tleV0pKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgICAgIFVORE9ba2V5XSA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkoU0VSVkVSWyJ4ZXBnIl1ba2V5XSkpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICBicmVhazsNCiAgICB9DQogICAgcmV0dXJuOw0KfQ0KZnVuY3Rpb24gdXBkYXRlTG9nKCkgew0KICAgIHZhciBzZXJ2ZXIgPSBuZXcgU2VydmVyKCJ1cGRhdGVMb2ciKTsNCiAgICBzZXJ2ZXIucmVxdWVzdChuZXcgT2JqZWN0KCkpOw0KfQ0K" webUI["html/js/classes_ts.js"] = "dmFyIF9fZXh0ZW5kcyA9ICh0aGlzICYmIHRoaXMuX19leHRlbmRzKSB8fCAoZnVuY3Rpb24gKCkgew0KICAgIHZhciBleHRlbmRTdGF0aWNzID0gZnVuY3Rpb24gKGQsIGIpIHsNCiAgICAgICAgZXh0ZW5kU3RhdGljcyA9IE9iamVjdC5zZXRQcm90b3R5cGVPZiB8fA0KICAgICAgICAgICAgKHsgX19wcm90b19fOiBbXSB9IGluc3RhbmNlb2YgQXJyYXkgJiYgZnVuY3Rpb24gKGQsIGIpIHsgZC5fX3Byb3RvX18gPSBiOyB9KSB8fA0KICAgICAgICAgICAgZnVuY3Rpb24gKGQsIGIpIHsgZm9yICh2YXIgcCBpbiBiKSBpZiAoYi5oYXNPd25Qcm9wZXJ0eShwKSkgZFtwXSA9IGJbcF07IH07DQogICAgICAgIHJldHVybiBleHRlbmRTdGF0aWNzKGQsIGIpOw0KICAgIH07DQogICAgcmV0dXJuIGZ1bmN0aW9uIChkLCBiKSB7DQogICAgICAgIGV4dGVuZFN0YXRpY3MoZCwgYik7DQogICAgICAgIGZ1bmN0aW9uIF9fKCkgeyB0aGlzLmNvbnN0cnVjdG9yID0gZDsgfQ0KICAgICAgICBkLnByb3RvdHlwZSA9IGIgPT09IG51bGwgPyBPYmplY3QuY3JlYXRlKGIpIDogKF9fLnByb3RvdHlwZSA9IGIucHJvdG90eXBlLCBuZXcgX18oKSk7DQogICAgfTsNCn0pKCk7DQp2YXIgTWFpbk1lbnUgPSAvKiogQGNsYXNzICovIChmdW5jdGlvbiAoKSB7DQogICAgZnVuY3Rpb24gTWFpbk1lbnUoKSB7DQogICAgICAgIHRoaXMuRG9jdW1lbnRJRCA9ICJtYWluLW1lbnUiOw0KICAgICAgICB0aGlzLkhUTUxUYWcgPSAiTEkiOw0KICAgIH0NCiAgICBNYWluTWVudS5wcm90b3R5cGUuY3JlYXRlID0gZnVuY3Rpb24gKCkgew0KICAgICAgICBjb25zb2xlLmxvZyh0aGlzLkRvY3VtZW50SUQpOw0KICAgIH07DQogICAgcmV0dXJuIE1haW5NZW51Ow0KfSgpKTsNCnZhciBNYWluTWVudUl0ZW0gPSAvKiogQGNsYXNzICovIChmdW5jdGlvbiAoX3N1cGVyKSB7DQogICAgX19leHRlbmRzKE1haW5NZW51SXRlbSwgX3N1cGVyKTsNCiAgICBmdW5jdGlvbiBNYWluTWVudUl0ZW0oKSB7DQogICAgICAgIHJldHVybiBfc3VwZXIgIT09IG51bGwgJiYgX3N1cGVyLmFwcGx5KHRoaXMsIGFyZ3VtZW50cykgfHwgdGhpczsNCiAgICB9DQogICAgTWFpbk1lbnVJdGVtLnByb3RvdHlwZS5jcmVhdGUyID0gZnVuY3Rpb24gKCkgew0KICAgICAgICB2YXIgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQodGhpcy5IVE1MVGFnKTsNCiAgICAgICAgZWxlbWVudC5pbm5lclRleHQgPSB0aGlzLlZhbHVlOw0KICAgICAgICBjb25zb2xlLmxvZyhlbGVtZW50KTsNCiAgICB9Ow0KICAgIHJldHVybiBNYWluTWVudUl0ZW07DQp9KE1haW5NZW51KSk7DQpmdW5jdGlvbiBwYWdlUmVhZHkoKSB7DQogICAgdmFyIGl0ZW0gPSBuZXcgTWFpbk1lbnVJdGVtKCk7DQogICAgaXRlbS5WYWx1ZSA9ICJUZXN0IjsNCiAgICBpdGVtLmNyZWF0ZTIoKTsNCn0NCg==" webUI["html/js/configuration_ts.js"] = "Y2xhc3MgV2l6YXJkQ2F0ZWdvcnkgew0KICAgIGNvbnN0cnVjdG9yKCkgew0KICAgICAgICB0aGlzLkRvY3VtZW50SUQgPSAiY29udGVudCI7DQogICAgfQ0KICAgIGNyZWF0ZUNhdGVnb3J5SGVhZGxpbmUodmFsdWUpIHsNCiAgICAgICAgdmFyIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJINCIpOw0KICAgICAgICBlbGVtZW50LmlubmVySFRNTCA9IHZhbHVlOw0KICAgICAgICByZXR1cm4gZWxlbWVudDsNCiAgICB9DQp9DQpjbGFzcyBXaXphcmRJdGVtIGV4dGVuZHMgV2l6YXJkQ2F0ZWdvcnkgew0KICAgIGNvbnN0cnVjdG9yKGtleSwgaGVhZGxpbmUpIHsNCiAgICAgICAgc3VwZXIoKTsNCiAgICAgICAgdGhpcy5oZWFkbGluZSA9IGhlYWRsaW5lOw0KICAgICAgICB0aGlzLmtleSA9IGtleTsNCiAgICB9DQogICAgY3JlYXRlV2l6YXJkKCkgew0KICAgICAgICB2YXIgaGVhZGxpbmUgPSB0aGlzLmNyZWF0ZUNhdGVnb3J5SGVhZGxpbmUodGhpcy5oZWFkbGluZSk7DQogICAgICAgIHZhciBrZXkgPSB0aGlzLmtleTsNCiAgICAgICAgdmFyIGNvbnRlbnQgPSBuZXcgUG9wdXBDb250ZW50KCk7DQogICAgICAgIHZhciBkZXNjcmlwdGlvbjsNCiAgICAgICAgdmFyIGRvYyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHRoaXMuRG9jdW1lbnRJRCk7DQogICAgICAgIGRvYy5pbm5lckhUTUwgPSAiIjsNCiAgICAgICAgZG9jLmFwcGVuZENoaWxkKGhlYWRsaW5lKTsNCiAgICAgICAgc3dpdGNoIChrZXkpIHsNCiAgICAgICAgICAgIGNhc2UgInR1bmVyIjoNCiAgICAgICAgICAgICAgICB2YXIgdGV4dCA9IG5ldyBBcnJheSgpOw0KICAgICAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBuZXcgQXJyYXkoKTsNCiAgICAgICAgICAgICAgICBmb3IgKHZhciBpID0gMTsgaSA8PSAxMDA7IGkrKykgew0KICAgICAgICAgICAgICAgICAgICB0ZXh0LnB1c2goaSk7DQogICAgICAgICAgICAgICAgICAgIHZhbHVlcy5wdXNoKGkpOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCAiMSIsIGtleSk7DQogICAgICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgiY2xhc3MiLCAid2l6YXJkIik7DQogICAgICAgICAgICAgICAgc2VsZWN0LmlkID0ga2V5Ow0KICAgICAgICAgICAgICAgIGRvYy5hcHBlbmRDaGlsZChzZWxlY3QpOw0KICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uID0gInt7LndpemFyZC50dW5lci5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImVwZ1NvdXJjZSI6DQogICAgICAgICAgICAgICAgdmFyIHRleHQgPSBbIlBNUyIsICJYRVBHIl07DQogICAgICAgICAgICAgICAgdmFyIHZhbHVlcyA9IFsiUE1TIiwgIlhFUEciXTsNCiAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCAiWEVQRyIsIGtleSk7DQogICAgICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgiY2xhc3MiLCAid2l6YXJkIik7DQogICAgICAgICAgICAgICAgc2VsZWN0LmlkID0ga2V5Ow0KICAgICAgICAgICAgICAgIGRvYy5hcHBlbmRDaGlsZChzZWxlY3QpOw0KICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uID0gInt7LndpemFyZC5lcGdTb3VyY2UuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJtM3UiOg0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBrZXksICIiKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LndpemFyZC5tM3UucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgiY2xhc3MiLCAid2l6YXJkIik7DQogICAgICAgICAgICAgICAgaW5wdXQuaWQgPSBrZXk7DQogICAgICAgICAgICAgICAgZG9jLmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbiA9ICJ7ey53aXphcmQubTN1LmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAieG1sdHYiOg0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBrZXksICIiKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LndpemFyZC54bWx0di5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJjbGFzcyIsICJ3aXphcmQiKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5pZCA9IGtleTsNCiAgICAgICAgICAgICAgICBkb2MuYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uID0gInt7LndpemFyZC54bWx0di5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIH0NCiAgICAgICAgdmFyIHByZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlBSRSIpOw0KICAgICAgICBwcmUuaW5uZXJIVE1MID0gZGVzY3JpcHRpb247DQogICAgICAgIGRvYy5hcHBlbmRDaGlsZChwcmUpOw0KICAgIH0NCn0NCmZ1bmN0aW9uIHJlYWR5Rm9yQ29uZmlndXJhdGlvbih3aXphcmQpIHsNCiAgICB2YXIgc2VydmVyID0gbmV3IFNlcnZlcigiZ2V0U2VydmVyQ29uZmlnIik7DQogICAgc2VydmVyLnJlcXVlc3QobmV3IE9iamVjdCgpKTsNCiAgICBzaG93RWxlbWVudCgibG9hZGluZyIsIGZhbHNlKTsNCiAgICBjb25maWd1cmF0aW9uV2l6YXJkW3dpemFyZF0uY3JlYXRlV2l6YXJkKCk7DQp9DQpmdW5jdGlvbiBzYXZlV2l6YXJkKCkgew0KICAgIHZhciBjbWQgPSAic2F2ZVdpemFyZCI7DQogICAgdmFyIGRpdiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb250ZW50Iik7DQogICAgdmFyIGNvbmZpZyA9IGRpdi5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCJ3aXphcmQiKTsNCiAgICB2YXIgd2l6YXJkID0gbmV3IE9iamVjdCgpOw0KICAgIGZvciAodmFyIGkgPSAwOyBpIDwgY29uZmlnLmxlbmd0aDsgaSsrKSB7DQogICAgICAgIHZhciBuYW1lOw0KICAgICAgICB2YXIgdmFsdWU7DQogICAgICAgIHN3aXRjaCAoY29uZmlnW2ldLnRhZ05hbWUpIHsNCiAgICAgICAgICAgIGNhc2UgIlNFTEVDVCI6DQogICAgICAgICAgICAgICAgbmFtZSA9IGNvbmZpZ1tpXS5uYW1lOw0KICAgICAgICAgICAgICAgIHZhbHVlID0gY29uZmlnW2ldLnZhbHVlOw0KICAgICAgICAgICAgICAgIC8vIElmIHRoZSB2YWx1ZSBpcyBhIG51bWJlciwgc3RvcmUgaXQgYXMgYSBudW1iZXINCiAgICAgICAgICAgICAgICBpZiAoaXNOYU4odmFsdWUpKSB7DQogICAgICAgICAgICAgICAgICAgIHdpemFyZFtuYW1lXSA9IHZhbHVlOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICAgICAgd2l6YXJkW25hbWVdID0gcGFyc2VJbnQodmFsdWUpOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgIklOUFVUIjoNCiAgICAgICAgICAgICAgICBzd2l0Y2ggKGNvbmZpZ1tpXS50eXBlKSB7DQogICAgICAgICAgICAgICAgICAgIGNhc2UgInRleHQiOg0KICAgICAgICAgICAgICAgICAgICAgICAgbmFtZSA9IGNvbmZpZ1tpXS5uYW1lOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSBjb25maWdbaV0udmFsdWU7DQogICAgICAgICAgICAgICAgICAgICAgICBpZiAodmFsdWUubGVuZ3RoID09IDApIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgbXNnID0gbmFtZS50b1VwcGVyQ2FzZSgpICsgIjogIiArICJ7ey5hbGVydC5taXNzaW5nSW5wdXR9fSI7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgYWxlcnQobXNnKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICB3aXphcmRbbmFtZV0gPSB2YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICAgICAgLy8gY29kZS4uLg0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICB9DQogICAgfQ0KICAgIHZhciBkYXRhID0gbmV3IE9iamVjdCgpOw0KICAgIGRhdGFbIndpemFyZCJdID0gd2l6YXJkOw0KICAgIHZhciBzZXJ2ZXIgPSBuZXcgU2VydmVyKGNtZCk7DQogICAgc2VydmVyLnJlcXVlc3QoZGF0YSk7DQp9DQovLyBXaXphcmQNCnZhciBjb25maWd1cmF0aW9uV2l6YXJkID0gbmV3IEFycmF5KCk7DQpjb25maWd1cmF0aW9uV2l6YXJkLnB1c2gobmV3IFdpemFyZEl0ZW0oInR1bmVyIiwgInt7LndpemFyZC50dW5lci50aXRsZX19IikpOw0KY29uZmlndXJhdGlvbldpemFyZC5wdXNoKG5ldyBXaXphcmRJdGVtKCJlcGdTb3VyY2UiLCAie3sud2l6YXJkLmVwZ1NvdXJjZS50aXRsZX19IikpOw0KY29uZmlndXJhdGlvbldpemFyZC5wdXNoKG5ldyBXaXphcmRJdGVtKCJtM3UiLCAie3sud2l6YXJkLm0zdS50aXRsZX19IikpOw0KY29uZmlndXJhdGlvbldpemFyZC5wdXNoKG5ldyBXaXphcmRJdGVtKCJ4bWx0diIsICJ7ey53aXphcmQueG1sdHYudGl0bGV9fSIpKTsNCg==" webUI["html/js/logs_ts.js"] = "Y2xhc3MgTG9nIHsNCiAgICBjcmVhdGVMb2coZW50cnkpIHsNCiAgICAgICAgdmFyIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJQUkUiKTsNCiAgICAgICAgZW50cnkgPSBTdHJpbmcoZW50cnkpOw0KICAgICAgICBpZiAoZW50cnkuaW5kZXhPZigiV0FSTklORyIpICE9IC0xKSB7DQogICAgICAgICAgICBlbGVtZW50LmNsYXNzTmFtZSA9ICJ3YXJuaW5nTXNnIjsNCiAgICAgICAgfQ0KICAgICAgICBpZiAoZW50cnkuaW5kZXhPZigiRVJST1IiKSAhPSAtMSkgew0KICAgICAgICAgICAgZWxlbWVudC5jbGFzc05hbWUgPSAiZXJyb3JNc2ciOw0KICAgICAgICB9DQogICAgICAgIGlmIChlbnRyeS5pbmRleE9mKCJERUJVRyIpICE9IC0xKSB7DQogICAgICAgICAgICBlbGVtZW50LmNsYXNzTmFtZSA9ICJkZWJ1Z01zZyI7DQogICAgICAgIH0NCiAgICAgICAgZWxlbWVudC5pbm5lckhUTUwgPSBlbnRyeTsNCiAgICAgICAgcmV0dXJuIGVsZW1lbnQ7DQogICAgfQ0KfQ0KZnVuY3Rpb24gc2hvd0xvZ3MoYm90dG9tKSB7DQogICAgdmFyIGxvZyA9IG5ldyBMb2coKTsNCiAgICB2YXIgbG9ncyA9IFNFUlZFUlsibG9nIl1bImxvZyJdOw0KICAgIHZhciBkaXYgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29udGVudF9sb2ciKTsNCiAgICBkaXYuaW5uZXJIVE1MID0gIiI7DQogICAgdmFyIGtleXMgPSBnZXRPd25PYmpQcm9wcyhsb2dzKTsNCiAgICBrZXlzLmZvckVhY2gobG9nSUQgPT4gew0KICAgICAgICB2YXIgZW50cnkgPSBsb2cuY3JlYXRlTG9nKGxvZ3NbbG9nSURdKTsNCiAgICAgICAgZGl2LmFwcGVuZChlbnRyeSk7DQogICAgfSk7DQogICAgc2V0VGltZW91dChmdW5jdGlvbiAoKSB7DQogICAgICAgIGlmIChib3R0b20gPT0gdHJ1ZSkgew0KICAgICAgICAgICAgdmFyIHdyYXBwZXIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYm94LXdyYXBwZXIiKTsNCiAgICAgICAgICAgIHdyYXBwZXIuc2Nyb2xsVG9wID0gd3JhcHBlci5zY3JvbGxIZWlnaHQ7DQogICAgICAgIH0NCiAgICB9LCAxMCk7DQp9DQpmdW5jdGlvbiByZXNldExvZ3MoKSB7DQogICAgdmFyIGNtZCA9ICJyZXNldExvZ3MiOw0KICAgIHZhciBkYXRhID0gbmV3IE9iamVjdCgpOw0KICAgIHZhciBzZXJ2ZXIgPSBuZXcgU2VydmVyKGNtZCk7DQogICAgc2VydmVyLnJlcXVlc3QoZGF0YSk7DQp9DQo=" - webUI["html/js/menu_ts.js"] = "Y2xhc3MgTWFpbk1lbnUgew0KICAgIGNvbnN0cnVjdG9yKCkgew0KICAgICAgICB0aGlzLkRvY3VtZW50SUQgPSAibWFpbi1tZW51IjsNCiAgICAgICAgdGhpcy5IVE1MVGFnID0gIkxJIjsNCiAgICAgICAgdGhpcy5JbWFnZVBhdGggPSAiaW1nLyI7DQogICAgfQ0KICAgIGNyZWF0ZUlNRyhzcmMpIHsNCiAgICAgICAgbGV0IGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJJTUciKTsNCiAgICAgICAgZWxlbWVudC5zZXRBdHRyaWJ1dGUoInNyYyIsIHRoaXMuSW1hZ2VQYXRoICsgc3JjKTsNCiAgICAgICAgcmV0dXJuIGVsZW1lbnQ7DQogICAgfQ0KICAgIGNyZWF0ZVZhbHVlKHZhbHVlKSB7DQogICAgICAgIGxldCBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiUCIpOw0KICAgICAgICBlbGVtZW50LmlubmVySFRNTCA9IHZhbHVlOw0KICAgICAgICByZXR1cm4gZWxlbWVudDsNCiAgICB9DQp9DQpjbGFzcyBNYWluTWVudUl0ZW0gZXh0ZW5kcyBNYWluTWVudSB7DQogICAgY29uc3RydWN0b3IobWVudUtleSwgdmFsdWUsIGltYWdlLCBoZWFkbGluZSkgew0KICAgICAgICBzdXBlcigpOw0KICAgICAgICB0aGlzLm1lbnVLZXkgPSBtZW51S2V5Ow0KICAgICAgICB0aGlzLnZhbHVlID0gdmFsdWU7DQogICAgICAgIHRoaXMuaW1nU3JjID0gaW1hZ2U7DQogICAgICAgIHRoaXMuaGVhZGxpbmUgPSBoZWFkbGluZTsNCiAgICB9DQogICAgY3JlYXRlSXRlbSgpIHsNCiAgICAgICAgbGV0IGl0ZW0gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJMSSIpOw0KICAgICAgICBpdGVtLnNldEF0dHJpYnV0ZSgib25jbGljayIsICJqYXZhc2NyaXB0OiBvcGVuVGhpc01lbnUodGhpcykiKTsNCiAgICAgICAgaXRlbS5zZXRBdHRyaWJ1dGUoImlkIiwgdGhpcy5pZCk7DQogICAgICAgIGxldCBpbWcgPSB0aGlzLmNyZWF0ZUlNRyh0aGlzLmltZ1NyYyk7DQogICAgICAgIGxldCB2YWx1ZSA9IHRoaXMuY3JlYXRlVmFsdWUodGhpcy52YWx1ZSk7DQogICAgICAgIGl0ZW0uYXBwZW5kQ2hpbGQoaW1nKTsNCiAgICAgICAgaXRlbS5hcHBlbmRDaGlsZCh2YWx1ZSk7DQogICAgICAgIGxldCBkb2MgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCh0aGlzLkRvY3VtZW50SUQpOw0KICAgICAgICBkb2MuYXBwZW5kQ2hpbGQoaXRlbSk7DQogICAgICAgIHN3aXRjaCAodGhpcy5tZW51S2V5KSB7DQogICAgICAgICAgICBjYXNlICJwbGF5bGlzdCI6DQogICAgICAgICAgICAgICAgdGhpcy50YWJsZUhlYWRlciA9IFsie3sucGxheWxpc3QudGFibGUucGxheWxpc3R9fSIsICJ7ey5wbGF5bGlzdC50YWJsZS50dW5lcn19IiwgInt7LnBsYXlsaXN0LnRhYmxlLmxhc3RVcGRhdGV9fSIsICJ7ey5wbGF5bGlzdC50YWJsZS5hdmFpbGFiaWxpdHl9fSAlIiwgInt7LnBsYXlsaXN0LnRhYmxlLnR5cGV9fSIsICJ7ey5wbGF5bGlzdC50YWJsZS5zdHJlYW1zfX0iLCAie3sucGxheWxpc3QudGFibGUuZ3JvdXBUaXRsZX19ICUiLCAie3sucGxheWxpc3QudGFibGUudHZnSUR9fSAlIiwgInt7LnBsYXlsaXN0LnRhYmxlLnVuaXF1ZUlEfX0gJSJdOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAieG1sdHYiOg0KICAgICAgICAgICAgICAgIHRoaXMudGFibGVIZWFkZXIgPSBbInt7LnhtbHR2LnRhYmxlLmd1aWRlfX0iLCAie3sueG1sdHYudGFibGUubGFzdFVwZGF0ZX19IiwgInt7LnhtbHR2LnRhYmxlLmF2YWlsYWJpbGl0eX19ICUiLCAie3sueG1sdHYudGFibGUuY2hhbm5lbHN9fSIsICJ7ey54bWx0di50YWJsZS5wcm9ncmFtc319Il07DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJmaWx0ZXIiOg0KICAgICAgICAgICAgICAgIHRoaXMudGFibGVIZWFkZXIgPSBbInt7LmZpbHRlci50YWJsZS5zdGFydGluZ0NoYW5uZWx9fSIsICJ7ey5maWx0ZXIudGFibGUubmFtZX19IiwgInt7LmZpbHRlci50YWJsZS50eXBlfX0iLCAie3suZmlsdGVyLnRhYmxlLmZpbHRlcn19Il07DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ1c2VycyI6DQogICAgICAgICAgICAgICAgdGhpcy50YWJsZUhlYWRlciA9IFsie3sudXNlcnMudGFibGUudXNlcm5hbWV9fSIsICJ7ey51c2Vycy50YWJsZS5wYXNzd29yZH19IiwgInt7LnVzZXJzLnRhYmxlLndlYn19IiwgInt7LnVzZXJzLnRhYmxlLnBtc319IiwgInt7LnVzZXJzLnRhYmxlLm0zdX19IiwgInt7LnVzZXJzLnRhYmxlLnhtbH19IiwgInt7LnVzZXJzLnRhYmxlLmFwaX19Il07DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJtYXBwaW5nIjoNCiAgICAgICAgICAgICAgICB0aGlzLnRhYmxlSGVhZGVyID0gWyJCVUxLIiwgInt7Lm1hcHBpbmcudGFibGUuY2hOb319IiwgInt7Lm1hcHBpbmcudGFibGUubG9nb319IiwgInt7Lm1hcHBpbmcudGFibGUuY2hhbm5lbE5hbWV9fSIsICJ7ey5tYXBwaW5nLnRhYmxlLnVwZGF0ZUNoYW5uZWxOYW1lUmVnZXh9fSIsICJ7ey5tYXBwaW5nLnRhYmxlLnBsYXlsaXN0fX0iLCAie3subWFwcGluZy50YWJsZS5ncm91cFRpdGxlfX0iLCAie3subWFwcGluZy50YWJsZS54bWx0dkZpbGV9fSIsICJ7ey5tYXBwaW5nLnRhYmxlLnhtbHR2SUR9fSIsICJ7ey5tYXBwaW5nLnRhYmxlLnRpbWVzaGlmdH19Il07DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIH0NCiAgICB9DQp9DQpjbGFzcyBDb250ZW50IHsNCiAgICBjb25zdHJ1Y3RvcigpIHsNCiAgICAgICAgdGhpcy5Eb2N1bWVudElEID0gImNvbnRlbnQiOw0KICAgICAgICB0aGlzLlRhYmxlSUQgPSAiY29udGVudF90YWJsZSI7DQogICAgICAgIHRoaXMuaGVhZGVyQ2xhc3MgPSAiY29udGVudF90YWJsZV9oZWFkZXIiOw0KICAgICAgICB0aGlzLmludGVyYWN0aW9uSUQgPSAiY29udGVudC1pbnRlcmFjdGlvbiI7DQogICAgfQ0KICAgIGNyZWF0ZUhlYWRsaW5lKHZhbHVlKSB7DQogICAgICAgIGxldCBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiSDMiKTsNCiAgICAgICAgZWxlbWVudC5pbm5lckhUTUwgPSB2YWx1ZTsNCiAgICAgICAgcmV0dXJuIGVsZW1lbnQ7DQogICAgfQ0KICAgIGNyZWF0ZUhSKCkgew0KICAgICAgICByZXR1cm4gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiSFIiKTsNCiAgICB9DQogICAgY3JlYXRlSW50ZXJhY3Rpb24oKSB7DQogICAgICAgIGxldCBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiRElWIik7DQogICAgICAgIGVsZW1lbnQuc2V0QXR0cmlidXRlKCJpZCIsIHRoaXMuaW50ZXJhY3Rpb25JRCk7DQogICAgICAgIHJldHVybiBlbGVtZW50Ow0KICAgIH0NCiAgICBjcmVhdGVESVYoKSB7DQogICAgICAgIGxldCBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiRElWIik7DQogICAgICAgIGVsZW1lbnQuaWQgPSB0aGlzLkRpdklEOw0KICAgICAgICByZXR1cm4gZWxlbWVudDsNCiAgICB9DQogICAgY3JlYXRlVEFCTEUoKSB7DQogICAgICAgIGxldCBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEFCTEUiKTsNCiAgICAgICAgZWxlbWVudC5pZCA9IHRoaXMuVGFibGVJRDsNCiAgICAgICAgcmV0dXJuIGVsZW1lbnQ7DQogICAgfQ0KICAgIGNyZWF0ZVRhYmxlUm93KCkgew0KICAgICAgICBsZXQgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlRSIik7DQogICAgICAgIGVsZW1lbnQuY2xhc3NOYW1lID0gdGhpcy5oZWFkZXJDbGFzczsNCiAgICAgICAgcmV0dXJuIGVsZW1lbnQ7DQogICAgfQ0KICAgIGNyZWF0ZVRhYmxlQ29udGVudChtZW51S2V5KSB7DQogICAgICAgIGxldCBkYXRhID0ge307DQogICAgICAgIGxldCByb3dzID0gW107DQogICAgICAgIGxldCBmaWxlVHlwZXMgPSBbXTsNCiAgICAgICAgc3dpdGNoIChtZW51S2V5KSB7DQogICAgICAgICAgICBjYXNlICJwbGF5bGlzdCI6DQogICAgICAgICAgICAgICAgZmlsZVR5cGVzID0gWyJtM3UiLCAiaGRociJdOw0KICAgICAgICAgICAgICAgIGZpbGVUeXBlcy5mb3JFYWNoKGZpbGVUeXBlID0+IHsNCiAgICAgICAgICAgICAgICAgICAgZGF0YSA9IFNFUlZFUlsic2V0dGluZ3MiXVsiZmlsZXMiXVtmaWxlVHlwZV07DQogICAgICAgICAgICAgICAgICAgIHZhciBrZXlzID0gZ2V0T3duT2JqUHJvcHMoZGF0YSk7DQogICAgICAgICAgICAgICAgICAgIGtleXMuZm9yRWFjaChrZXkgPT4gew0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVFIiKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmlkID0ga2V5Ow0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgiJyArIGZpbGVUeXBlICsgJyIsIHRoaXMpJyk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsibmFtZSJdOw0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChTRVJWRVJbInNldHRpbmdzIl1bImJ1ZmZlciJdICE9ICItIikgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bInR1bmVyIl07DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gIi0iOw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bImxhc3QudXBkYXRlIl07DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsicHJvdmlkZXIuYXZhaWxhYmlsaXR5Il07DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsidHlwZSJdLnRvVXBwZXJDYXNlKCk7DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsiY29tcGF0aWJpbGl0eSJdWyJzdHJlYW1zIl07DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsiY29tcGF0aWJpbGl0eSJdWyJncm91cC50aXRsZSJdOw0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bImNvbXBhdGliaWxpdHkiXVsidHZnLmlkIl07DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsiY29tcGF0aWJpbGl0eSJdWyJzdHJlYW0uaWQiXTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHJvd3MucHVzaCh0cik7DQogICAgICAgICAgICAgICAgICAgIH0pOw0KICAgICAgICAgICAgICAgIH0pOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiZmlsdGVyIjoNCiAgICAgICAgICAgICAgICBkZWxldGUgU0VSVkVSWyJzZXR0aW5ncyJdWyJmaWx0ZXIiXVstMV07DQogICAgICAgICAgICAgICAgZGF0YSA9IFNFUlZFUlsic2V0dGluZ3MiXVsiZmlsdGVyIl07DQogICAgICAgICAgICAgICAgdmFyIGtleXMgPSBnZXRPd25PYmpQcm9wcyhkYXRhKTsNCiAgICAgICAgICAgICAgICBrZXlzLmZvckVhY2goa2V5ID0+IHsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVFIiKTsNCiAgICAgICAgICAgICAgICAgICAgdHIuaWQgPSBrZXk7DQogICAgICAgICAgICAgICAgICAgIHRyLnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoIicgKyBkYXRhW2tleV1bInR5cGUiXSArICciLCB0aGlzKScpOw0KICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsic3RhcnRpbmdDaGFubmVsIl07DQogICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bIm5hbWUiXTsNCiAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgc3dpdGNoIChkYXRhW2tleV1bInR5cGUiXSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAiY3VzdG9tLWZpbHRlciI6DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9ICJ7ey5maWx0ZXIuY3VzdG9tfX0iOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAiZ3JvdXAtdGl0bGUiOg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSAie3suZmlsdGVyLmdyb3VwfX0iOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJmaWx0ZXIiXTsNCiAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICByb3dzLnB1c2godHIpOw0KICAgICAgICAgICAgICAgIH0pOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAieG1sdHYiOg0KICAgICAgICAgICAgICAgIGZpbGVUeXBlcyA9IG5ldyBBcnJheSgieG1sdHYiKTsNCiAgICAgICAgICAgICAgICBmaWxlVHlwZXMuZm9yRWFjaChmaWxlVHlwZSA9PiB7DQogICAgICAgICAgICAgICAgICAgIGRhdGEgPSBTRVJWRVJbInNldHRpbmdzIl1bImZpbGVzIl1bZmlsZVR5cGVdOw0KICAgICAgICAgICAgICAgICAgICB2YXIga2V5cyA9IGdldE93bk9ialByb3BzKGRhdGEpOw0KICAgICAgICAgICAgICAgICAgICBrZXlzLmZvckVhY2goa2V5ID0+IHsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciB0ciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlRSIik7DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5pZCA9IGtleTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoIicgKyBmaWxlVHlwZSArICciLCB0aGlzKScpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bIm5hbWUiXTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJsYXN0LnVwZGF0ZSJdOw0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bInByb3ZpZGVyLmF2YWlsYWJpbGl0eSJdOw0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bImNvbXBhdGliaWxpdHkiXVsieG1sdHYuY2hhbm5lbHMiXTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJjb21wYXRpYmlsaXR5Il1bInhtbHR2LnByb2dyYW1zIl07DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICByb3dzLnB1c2godHIpOw0KICAgICAgICAgICAgICAgICAgICB9KTsNCiAgICAgICAgICAgICAgICB9KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInVzZXJzIjoNCiAgICAgICAgICAgICAgICBmaWxlVHlwZXMgPSBuZXcgQXJyYXkoInVzZXJzIik7DQogICAgICAgICAgICAgICAgZmlsZVR5cGVzLmZvckVhY2goZmlsZVR5cGUgPT4gew0KICAgICAgICAgICAgICAgICAgICBkYXRhID0gU0VSVkVSW2ZpbGVUeXBlXTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGtleXMgPSBnZXRPd25PYmpQcm9wcyhkYXRhKTsNCiAgICAgICAgICAgICAgICAgICAga2V5cy5mb3JFYWNoKGtleSA9PiB7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgdHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJUUiIpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuaWQgPSBrZXk7DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCInICsgZmlsZVR5cGUgKyAnIiwgdGhpcyknKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJkYXRhIl1bInVzZXJuYW1lIl07DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9ICIqKioqKioiOw0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChkYXRhW2tleV1bImRhdGEiXVsiYXV0aGVudGljYXRpb24ud2ViIl0gPT0gdHJ1ZSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSAi4pyTIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSAiLSI7DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGRhdGFba2V5XVsiZGF0YSJdWyJhdXRoZW50aWNhdGlvbi5wbXMiXSA9PSB0cnVlKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9ICLinJMiOw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9ICItIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgICAgICBpZiAoZGF0YVtrZXldWyJkYXRhIl1bImF1dGhlbnRpY2F0aW9uLm0zdSJdID09IHRydWUpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gIuKckyI7DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gIi0iOw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChkYXRhW2tleV1bImRhdGEiXVsiYXV0aGVudGljYXRpb24ueG1sIl0gPT0gdHJ1ZSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSAi4pyTIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSAiLSI7DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGRhdGFba2V5XVsiZGF0YSJdWyJhdXRoZW50aWNhdGlvbi5hcGkiXSA9PSB0cnVlKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9ICLinJMiOw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9ICItIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHJvd3MucHVzaCh0cik7DQogICAgICAgICAgICAgICAgICAgIH0pOw0KICAgICAgICAgICAgICAgIH0pOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAibWFwcGluZyI6DQogICAgICAgICAgICAgICAgQlVMS19FRElUID0gZmFsc2U7DQogICAgICAgICAgICAgICAgY3JlYXRlU2VhcmNoT2JqKCk7DQogICAgICAgICAgICAgICAgY2hlY2tVbmRvKCJlcGdNYXBwaW5nIik7DQogICAgICAgICAgICAgICAgZGF0YSA9IFNFUlZFUlsieGVwZyJdWyJlcGdNYXBwaW5nIl07DQogICAgICAgICAgICAgICAgdmFyIGtleXMgPSBnZXRPd25PYmpQcm9wcyhkYXRhKTsNCiAgICAgICAgICAgICAgICBrZXlzLmZvckVhY2goa2V5ID0+IHsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVFIiKTsNCiAgICAgICAgICAgICAgICAgICAgdHIuaWQgPSBrZXk7DQogICAgICAgICAgICAgICAgICAgIHN3aXRjaCAoZGF0YVtrZXldWyJ4LWFjdGl2ZSJdKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBjYXNlIHRydWU6DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgdHIuY2xhc3NOYW1lID0gImFjdGl2ZUVQRyI7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgICAgICAgICBjYXNlIGZhbHNlOg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyLmNsYXNzTmFtZSA9ICJub3RBY3RpdmVFUEciOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIC8vIEJ1bGsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiQlVMSyI7DQogICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBmYWxzZTsNCiAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAvLyBDaGFubmVsIG51bWJlcg0KICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJJTlBVVENIQU5ORUwiOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJ4LWNoYW5uZWxJRCJdOw0KICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgIC8vIExvZ28NCiAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiSU1HIjsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5pbWFnZVVSTCA9IGRhdGFba2V5XVsidHZnLWxvZ28iXTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHRkID0gY2VsbC5jcmVhdGVDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgIHRkLnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoIm1hcHBpbmciLCB0aGlzKScpOw0KICAgICAgICAgICAgICAgICAgICB0ZC5pZCA9IGtleTsNCiAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQodGQpOw0KICAgICAgICAgICAgICAgICAgICAvLyBDaGFubmVsIG5hbWUNCiAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2xhc3NOYW1lID0gZGF0YVtrZXldWyJ4LWNhdGVnb3J5Il07DQogICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bIngtbmFtZSJdOw0KICAgICAgICAgICAgICAgICAgICB2YXIgdGQgPSBjZWxsLmNyZWF0ZUNlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgdGQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgibWFwcGluZyIsIHRoaXMpJyk7DQogICAgICAgICAgICAgICAgICAgIHRkLmlkID0ga2V5Ow0KICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZCh0ZCk7DQogICAgICAgICAgICAgICAgICAgIC8vIFVwZGF0ZSBjaGFubmVsIG5hbWUgcmVnZXgNCiAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bInVwZGF0ZS1jaGFubmVsLW5hbWUtcmVnZXgiXTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHRkID0gY2VsbC5jcmVhdGVDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgIHRkLnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoIm1hcHBpbmciLCB0aGlzKScpOw0KICAgICAgICAgICAgICAgICAgICB0ZC5pZCA9IGtleTsNCiAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQodGQpOw0KICAgICAgICAgICAgICAgICAgICAvLyBQbGF5bGlzdA0KICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGdldFZhbHVlRnJvbVByb3ZpZGVyRmlsZShkYXRhW2tleV1bIl9maWxlLm0zdS5pZCJdLCAibTN1IiwgIm5hbWUiKTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHRkID0gY2VsbC5jcmVhdGVDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgIHRkLnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoIm1hcHBpbmciLCB0aGlzKScpOw0KICAgICAgICAgICAgICAgICAgICB0ZC5pZCA9IGtleTsNCiAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQodGQpOw0KICAgICAgICAgICAgICAgICAgICAvLyBHcm91cCAoZ3JvdXAtdGl0bGUpDQogICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJ4LWdyb3VwLXRpdGxlIl07DQogICAgICAgICAgICAgICAgICAgIHZhciB0ZCA9IGNlbGwuY3JlYXRlQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICB0ZC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJtYXBwaW5nIiwgdGhpcyknKTsNCiAgICAgICAgICAgICAgICAgICAgdGQuaWQgPSBrZXk7DQogICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKHRkKTsNCiAgICAgICAgICAgICAgICAgICAgLy8gWE1MVFYgZmlsZQ0KICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgaWYgKGRhdGFba2V5XVsieC14bWx0di1maWxlIl0gIT0gIi0iKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZ2V0VmFsdWVGcm9tUHJvdmlkZXJGaWxlKGRhdGFba2V5XVsieC14bWx0di1maWxlIl0sICJ4bWx0diIsICJuYW1lIik7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgZWxzZSB7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJ4LXhtbHR2LWZpbGUiXTsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICB2YXIgdGQgPSBjZWxsLmNyZWF0ZUNlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgdGQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgibWFwcGluZyIsIHRoaXMpJyk7DQogICAgICAgICAgICAgICAgICAgIHRkLmlkID0ga2V5Ow0KICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZCh0ZCk7DQogICAgICAgICAgICAgICAgICAgIC8vIFhNTFRWIENoYW5uZWwNCiAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgIHZhciB2YWx1ZSA9IGRhdGFba2V5XVsieC1tYXBwaW5nIl07DQogICAgICAgICAgICAgICAgICAgIGlmICh2YWx1ZS5sZW5ndGggPiAyMCkgew0KICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSBkYXRhW2tleV1bIngtbWFwcGluZyJdLnN1YnN0cmluZygwLCAyMCkgKyAiLi4uIjsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gdmFsdWU7DQogICAgICAgICAgICAgICAgICAgIHZhciB0ZCA9IGNlbGwuY3JlYXRlQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICB0ZC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJtYXBwaW5nIiwgdGhpcyknKTsNCiAgICAgICAgICAgICAgICAgICAgdGQuaWQgPSBrZXk7DQogICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKHRkKTsNCiAgICAgICAgICAgICAgICAgICAgLy8gVGltZVNoaWZ0DQogICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJ4LXRpbWVzaGlmdCJdOw0KICAgICAgICAgICAgICAgICAgICB2YXIgdGQgPSBjZWxsLmNyZWF0ZUNlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgdGQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgibWFwcGluZyIsIHRoaXMpJyk7DQogICAgICAgICAgICAgICAgICAgIHRkLmlkID0ga2V5Ow0KICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZCh0ZCk7DQogICAgICAgICAgICAgICAgICAgIHJvd3MucHVzaCh0cik7DQogICAgICAgICAgICAgICAgfSk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJzZXR0aW5ncyI6DQogICAgICAgICAgICAgICAgYWxlcnQoKTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIH0NCiAgICAgICAgcmV0dXJuIHJvd3M7DQogICAgfQ0KfQ0KY2xhc3MgQ2VsbCB7DQogICAgY3JlYXRlQ2VsbCgpIHsNCiAgICAgICAgbGV0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgaWYgKHRoaXMuY2hpbGQgPT0gdHJ1ZSkgew0KICAgICAgICAgICAgdmFyIGVsZW1lbnQ7DQogICAgICAgICAgICBzd2l0Y2ggKHRoaXMuY2hpbGRUeXBlKSB7DQogICAgICAgICAgICAgICAgY2FzZSAiUCI6DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KHRoaXMuY2hpbGRUeXBlKTsNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC5pbm5lckhUTUwgPSB0aGlzLnZhbHVlOw0KICAgICAgICAgICAgICAgICAgICBlbGVtZW50LmNsYXNzTmFtZSA9IHRoaXMuY2xhc3NOYW1lOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBjYXNlICJJTlBVVCI6DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KHRoaXMuY2hpbGRUeXBlKTsNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC52YWx1ZSA9IHRoaXMudmFsdWU7DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQudHlwZSA9ICJ0ZXh0IjsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAiSU5QVVRDSEFOTkVMIjoNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIklOUFVUIik7DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZzY3JpcHQ6IGNoYW5nZUNoYW5uZWxOdW1iZXIodGhpcykiKTsNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC52YWx1ZSA9IHRoaXMudmFsdWU7DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQudHlwZSA9ICJ0ZXh0IjsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAiQlVMSyI6DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJJTlBVVCIpOw0KICAgICAgICAgICAgICAgICAgICBlbGVtZW50LmNoZWNrZWQgPSB0aGlzLnZhbHVlOw0KICAgICAgICAgICAgICAgICAgICBlbGVtZW50LnR5cGUgPSAiY2hlY2tib3giOw0KICAgICAgICAgICAgICAgICAgICBlbGVtZW50LmNsYXNzTmFtZSA9ICJidWxrIGhpZGVCdWxrIjsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAiQlVMS19IRUFEIjoNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIklOUFVUIik7DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQuY2hlY2tlZCA9IHRoaXMudmFsdWU7DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQudHlwZSA9ICJjaGVja2JveCI7DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQuY2xhc3NOYW1lID0gImJ1bGsgaGlkZUJ1bGsiOw0KICAgICAgICAgICAgICAgICAgICBlbGVtZW50LnNldEF0dHJpYnV0ZSgib25jbGljayIsICJqYXZhc2NyaXB0OiBzZWxlY3RBbGxDaGFubmVscygpIik7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgIklNRyI6DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KHRoaXMuY2hpbGRUeXBlKTsNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC5zZXRBdHRyaWJ1dGUoInNyYyIsIHRoaXMuaW1hZ2VVUkwpOw0KICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5pbWFnZVVSTCAhPSAiIikgew0KICAgICAgICAgICAgICAgICAgICAgICAgZWxlbWVudC5zZXRBdHRyaWJ1dGUoIm9uZXJyb3IiLCAiamF2YXNjcmlwdDogdGhpcy5vbmVycm9yPW51bGw7dGhpcy5zcmM9JyciKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIC8vb25lcnJvcj0idGhpcy5vbmVycm9yPW51bGw7dGhpcy5zcmM9J21pc3NpbmcuZ2lmJzsiDQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIHRkLmFwcGVuZENoaWxkKGVsZW1lbnQpOw0KICAgICAgICB9DQogICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgdGQuaW5uZXJIVE1MID0gdGhpcy52YWx1ZTsNCiAgICAgICAgfQ0KICAgICAgICBpZiAodGhpcy5vbmNsaWNrID09IHRydWUpIHsNCiAgICAgICAgICAgIHRkLnNldEF0dHJpYnV0ZSgib25jbGljayIsIHRoaXMub25jbGlja0Z1bmN0aW9uKTsNCiAgICAgICAgICAgIHRkLmNsYXNzTmFtZSA9ICJwb2ludGVyIjsNCiAgICAgICAgfQ0KICAgICAgICBpZiAodGhpcy50ZENsYXNzTmFtZSAhPSB1bmRlZmluZWQpIHsNCiAgICAgICAgICAgIHRkLmNsYXNzTmFtZSA9IHRoaXMudGRDbGFzc05hbWU7DQogICAgICAgIH0NCiAgICAgICAgcmV0dXJuIHRkOw0KICAgIH0NCn0NCmNsYXNzIFNob3dDb250ZW50IGV4dGVuZHMgQ29udGVudCB7DQogICAgY29uc3RydWN0b3IobWVudUlEKSB7DQogICAgICAgIHN1cGVyKCk7DQogICAgICAgIHRoaXMubWVudUlEID0gbWVudUlEOw0KICAgIH0NCiAgICBjcmVhdGVJbnB1dCh0eXBlLCBuYW1lLCB2YWx1ZSkgew0KICAgICAgICBsZXQgaW5wdXQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJJTlBVVCIpOw0KICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInR5cGUiLCB0eXBlKTsNCiAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJuYW1lIiwgbmFtZSk7DQogICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgidmFsdWUiLCB2YWx1ZSk7DQogICAgICAgIHJldHVybiBpbnB1dDsNCiAgICB9DQogICAgc2hvdygpIHsNCiAgICAgICAgQ09MVU1OX1RPX1NPUlQgPSAtMTsNCiAgICAgICAgLy8gRGVsZXRlIG9sZCBjb250ZW50DQogICAgICAgIGxldCBkb2MgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCh0aGlzLkRvY3VtZW50SUQpOw0KICAgICAgICBkb2MuaW5uZXJIVE1MID0gIiI7DQogICAgICAgIHNob3dQcmV2aWV3KGZhbHNlKTsNCiAgICAgICAgLy8gSGVhZGxpbmUNCiAgICAgICAgbGV0IGhlYWRsaW5lID0gbWVudUl0ZW1zW3RoaXMubWVudUlEXS5oZWFkbGluZTsNCiAgICAgICAgbGV0IG1lbnVLZXkgPSBtZW51SXRlbXNbdGhpcy5tZW51SURdLm1lbnVLZXk7DQogICAgICAgIGxldCBoID0gdGhpcy5jcmVhdGVIZWFkbGluZShoZWFkbGluZSk7DQogICAgICAgIGRvYy5hcHBlbmRDaGlsZChoKTsNCiAgICAgICAgbGV0IGhyID0gdGhpcy5jcmVhdGVIUigpOw0KICAgICAgICBkb2MuYXBwZW5kQ2hpbGQoaHIpOw0KICAgICAgICAvLyBJbnRlcmFjdGlvbg0KICAgICAgICBsZXQgZGl2ID0gdGhpcy5jcmVhdGVJbnRlcmFjdGlvbigpOw0KICAgICAgICBkb2MuYXBwZW5kQ2hpbGQoZGl2KTsNCiAgICAgICAgbGV0IGludGVyYWN0aW9uID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQodGhpcy5pbnRlcmFjdGlvbklEKTsNCiAgICAgICAgc3dpdGNoIChtZW51S2V5KSB7DQogICAgICAgICAgICBjYXNlICJwbGF5bGlzdCI6DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gdGhpcy5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgbWVudUtleSwgInt7LmJ1dHRvbi5uZXd9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgiaWQiLCAiLSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoInBsYXlsaXN0IiknKTsNCiAgICAgICAgICAgICAgICBpbnRlcmFjdGlvbi5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJmaWx0ZXIiOg0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IHRoaXMuY3JlYXRlSW5wdXQoImJ1dHRvbiIsIG1lbnVLZXksICJ7ey5idXR0b24ubmV3fX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoImlkIiwgLTEpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoImZpbHRlciIsIHRoaXMpJyk7DQogICAgICAgICAgICAgICAgaW50ZXJhY3Rpb24uYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAieG1sdHYiOg0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IHRoaXMuY3JlYXRlSW5wdXQoImJ1dHRvbiIsIG1lbnVLZXksICJ7ey5idXR0b24ubmV3fX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoImlkIiwgInhtbHR2Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgieG1sdHYiKScpOw0KICAgICAgICAgICAgICAgIGludGVyYWN0aW9uLmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInVzZXJzIjoNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSB0aGlzLmNyZWF0ZUlucHV0KCJidXR0b24iLCBtZW51S2V5LCAie3suYnV0dG9uLm5ld319Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJpZCIsICJ1c2VycyIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoInVzZXJzIiknKTsNCiAgICAgICAgICAgICAgICBpbnRlcmFjdGlvbi5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJtYXBwaW5nIjoNCiAgICAgICAgICAgICAgICBzaG93RWxlbWVudCgibG9hZGluZyIsIHRydWUpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IHRoaXMuY3JlYXRlSW5wdXQoImJ1dHRvbiIsIG1lbnVLZXksICJ7ey5idXR0b24uc2F2ZX19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoIm1hcHBpbmciLCAiIiwgIiIpJyk7DQogICAgICAgICAgICAgICAgaW50ZXJhY3Rpb24uYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IHRoaXMuY3JlYXRlSW5wdXQoImJ1dHRvbiIsIG1lbnVLZXksICJ7ey5idXR0b24uYnVsa0VkaXR9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBidWxrRWRpdCgpJyk7DQogICAgICAgICAgICAgICAgaW50ZXJhY3Rpb24uYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IHRoaXMuY3JlYXRlSW5wdXQoInNlYXJjaCIsICJzZWFyY2giLCAiIik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJpZCIsICJzZWFyY2hNYXBwaW5nIik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5idXR0b24uc2VhcmNofX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5jbGFzc05hbWUgPSAic2VhcmNoIjsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgJ2phdmFzY3JpcHQ6IHNlYXJjaEluTWFwcGluZygpJyk7DQogICAgICAgICAgICAgICAgaW50ZXJhY3Rpb24uYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAic2V0dGluZ3MiOg0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IHRoaXMuY3JlYXRlSW5wdXQoImJ1dHRvbiIsIG1lbnVLZXksICJ7ey5idXR0b24uc2F2ZX19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IHNhdmVTZXR0aW5ncygpOycpOw0KICAgICAgICAgICAgICAgIGludGVyYWN0aW9uLmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSB0aGlzLmNyZWF0ZUlucHV0KCJidXR0b24iLCBtZW51S2V5LCAie3suYnV0dG9uLmJhY2t1cH19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IGJhY2t1cCgpOycpOw0KICAgICAgICAgICAgICAgIGludGVyYWN0aW9uLmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSB0aGlzLmNyZWF0ZUlucHV0KCJidXR0b24iLCBtZW51S2V5LCAie3suYnV0dG9uLnJlc3RvcmV9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiByZXN0b3JlKCk7Jyk7DQogICAgICAgICAgICAgICAgaW50ZXJhY3Rpb24uYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIHZhciB3cmFwcGVyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiRElWIik7DQogICAgICAgICAgICAgICAgd3JhcHBlci5zZXRBdHRyaWJ1dGUoImlkIiwgImJveC13cmFwcGVyIik7DQogICAgICAgICAgICAgICAgZG9jLmFwcGVuZENoaWxkKHdyYXBwZXIpOw0KICAgICAgICAgICAgICAgIHRoaXMuRGl2SUQgPSAiY29udGVudF9zZXR0aW5ncyI7DQogICAgICAgICAgICAgICAgdmFyIHNldHRpbmdzID0gdGhpcy5jcmVhdGVESVYoKTsNCiAgICAgICAgICAgICAgICB3cmFwcGVyLmFwcGVuZENoaWxkKHNldHRpbmdzKTsNCiAgICAgICAgICAgICAgICBzaG93U2V0dGluZ3MoKTsNCiAgICAgICAgICAgICAgICByZXR1cm47DQogICAgICAgICAgICBjYXNlICJsb2ciOg0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IHRoaXMuY3JlYXRlSW5wdXQoImJ1dHRvbiIsIG1lbnVLZXksICJ7ey5idXR0b24ucmVzZXRMb2dzfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogcmVzZXRMb2dzKCk7Jyk7DQogICAgICAgICAgICAgICAgaW50ZXJhY3Rpb24uYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIHZhciB3cmFwcGVyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiRElWIik7DQogICAgICAgICAgICAgICAgd3JhcHBlci5zZXRBdHRyaWJ1dGUoImlkIiwgImJveC13cmFwcGVyIik7DQogICAgICAgICAgICAgICAgZG9jLmFwcGVuZENoaWxkKHdyYXBwZXIpOw0KICAgICAgICAgICAgICAgIHRoaXMuRGl2SUQgPSAiY29udGVudF9sb2ciOw0KICAgICAgICAgICAgICAgIHZhciBsb2dzID0gdGhpcy5jcmVhdGVESVYoKTsNCiAgICAgICAgICAgICAgICB3cmFwcGVyLmFwcGVuZENoaWxkKGxvZ3MpOw0KICAgICAgICAgICAgICAgIHNob3dMb2dzKHRydWUpOw0KICAgICAgICAgICAgICAgIHJldHVybjsNCiAgICAgICAgICAgIGNhc2UgImxvZ291dCI6DQogICAgICAgICAgICAgICAgbG9jYXRpb24ucmVsb2FkKCk7DQogICAgICAgICAgICAgICAgZG9jdW1lbnQuY29va2llID0gIlRva2VuPSA7IGV4cGlyZXMgPSBUaHUsIDAxIEphbiAxOTcwIDAwOjAwOjAwIEdNVCI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBkZWZhdWx0Og0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICB9DQogICAgICAgIC8vIENyZWF0ZSB0YWJsZSAoaWYgbmVlZGVkKQ0KICAgICAgICB2YXIgdGFibGVIZWFkZXIgPSBtZW51SXRlbXNbdGhpcy5tZW51SURdLnRhYmxlSGVhZGVyOw0KICAgICAgICBpZiAodGFibGVIZWFkZXIubGVuZ3RoID4gMCkgew0KICAgICAgICAgICAgdmFyIHdyYXBwZXIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJESVYiKTsNCiAgICAgICAgICAgIGRvYy5hcHBlbmRDaGlsZCh3cmFwcGVyKTsNCiAgICAgICAgICAgIHdyYXBwZXIuc2V0QXR0cmlidXRlKCJpZCIsICJib3gtd3JhcHBlciIpOw0KICAgICAgICAgICAgdmFyIHRhYmxlID0gdGhpcy5jcmVhdGVUQUJMRSgpOw0KICAgICAgICAgICAgd3JhcHBlci5hcHBlbmRDaGlsZCh0YWJsZSk7DQogICAgICAgICAgICB2YXIgaGVhZGVyID0gdGhpcy5jcmVhdGVUYWJsZVJvdygpOw0KICAgICAgICAgICAgdGFibGUuYXBwZW5kQ2hpbGQoaGVhZGVyKTsNCiAgICAgICAgICAgIC8vIFRhYmxlIGhlYWRlcg0KICAgICAgICAgICAgdGFibGVIZWFkZXIuZm9yRWFjaChlbGVtZW50ID0+IHsNCiAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGVsZW1lbnQ7DQogICAgICAgICAgICAgICAgaWYgKGVsZW1lbnQgPT0gIkJVTEsiKSB7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIkJVTEtfSEVBRCI7DQogICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBmYWxzZTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgaWYgKG1lbnVLZXkgPT0gIm1hcHBpbmciKSB7DQogICAgICAgICAgICAgICAgICAgIGlmIChlbGVtZW50ID09ICJ7ey5tYXBwaW5nLnRhYmxlLmNoTm99fSIpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwub25jbGljayA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLm9uY2xpY2tGdW5jdGlvbiA9ICJqYXZhc2NyaXB0OiBzb3J0VGFibGUoMSk7IjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudGRDbGFzc05hbWUgPSAic29ydFRoaXMiOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIGlmIChlbGVtZW50ID09ICJ7ey5tYXBwaW5nLnRhYmxlLmNoYW5uZWxOYW1lfX0iKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLm9uY2xpY2sgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5vbmNsaWNrRnVuY3Rpb24gPSAiamF2YXNjcmlwdDogc29ydFRhYmxlKDMpOyI7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgaWYgKGVsZW1lbnQgPT0gInt7Lm1hcHBpbmcudGFibGUudXBkYXRlQ2hhbm5lbE5hbWVSZWdleH19Iikgew0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5vbmNsaWNrID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwub25jbGlja0Z1bmN0aW9uID0gImphdmFzY3JpcHQ6IHNvcnRUYWJsZSg0KTsiOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIGlmIChlbGVtZW50ID09ICJ7ey5tYXBwaW5nLnRhYmxlLnBsYXlsaXN0fX0iKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLm9uY2xpY2sgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5vbmNsaWNrRnVuY3Rpb24gPSAiamF2YXNjcmlwdDogc29ydFRhYmxlKDUpOyI7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgaWYgKGVsZW1lbnQgPT0gInt7Lm1hcHBpbmcudGFibGUuZ3JvdXBUaXRsZX19Iikgew0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5vbmNsaWNrID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwub25jbGlja0Z1bmN0aW9uID0gImphdmFzY3JpcHQ6IHNvcnRUYWJsZSg2KTsiOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIGlmIChlbGVtZW50ID09ICJ7ey5tYXBwaW5nLnRhYmxlLnRpbWVzaGlmdH19Iikgew0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5vbmNsaWNrID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwub25jbGlja0Z1bmN0aW9uID0gImphdmFzY3JpcHQ6IHNvcnRUYWJsZSg5KTsiOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIGlmIChtZW51S2V5ID09ICJmaWx0ZXIiKSB7DQogICAgICAgICAgICAgICAgICAgIGlmIChlbGVtZW50ID09ICJ7ey5maWx0ZXIudGFibGUuc3RhcnRpbmdDaGFubmVsfX0iKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLm9uY2xpY2sgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5vbmNsaWNrRnVuY3Rpb24gPSAiamF2YXNjcmlwdDogc29ydFRhYmxlKDApOyI7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnRkQ2xhc3NOYW1lID0gInNvcnRUaGlzIjsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBpZiAoZWxlbWVudCA9PSAie3suZmlsdGVyLnRhYmxlLm5hbWV9fSIpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwub25jbGljayA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLm9uY2xpY2tGdW5jdGlvbiA9ICJqYXZhc2NyaXB0OiBzb3J0VGFibGUoMSk7IjsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBpZiAoZWxlbWVudCA9PSAie3suZmlsdGVyLnRhYmxlLnR5cGV9fSIpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwub25jbGljayA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLm9uY2xpY2tGdW5jdGlvbiA9ICJqYXZhc2NyaXB0OiBzb3J0VGFibGUoMik7IjsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBpZiAoZWxlbWVudCA9PSAie3suZmlsdGVyLnRhYmxlLmZpbHRlcn19Iikgew0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5vbmNsaWNrID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwub25jbGlja0Z1bmN0aW9uID0gImphdmFzY3JpcHQ6IHNvcnRUYWJsZSgzKTsiOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIGhlYWRlci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICB9KTsNCiAgICAgICAgICAgIHRhYmxlLmFwcGVuZENoaWxkKGhlYWRlcik7DQogICAgICAgICAgICAvLyBDb250ZW50IG9mIHRoZSB0YWJsZQ0KICAgICAgICAgICAgdmFyIHJvd3MgPSB0aGlzLmNyZWF0ZVRhYmxlQ29udGVudChtZW51S2V5KTsNCiAgICAgICAgICAgIHJvd3MuZm9yRWFjaCh0ciA9PiB7DQogICAgICAgICAgICAgICAgdGFibGUuYXBwZW5kQ2hpbGQodHIpOw0KICAgICAgICAgICAgfSk7DQogICAgICAgIH0NCiAgICAgICAgc3dpdGNoIChtZW51S2V5KSB7DQogICAgICAgICAgICBjYXNlICJtYXBwaW5nIjoNCiAgICAgICAgICAgICAgICBzb3J0VGFibGUoMSk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJmaWx0ZXIiOg0KICAgICAgICAgICAgICAgIHNob3dQcmV2aWV3KHRydWUpOw0KICAgICAgICAgICAgICAgIHNvcnRUYWJsZSgwKTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICAgICAgQ09MVU1OX1RPX1NPUlQgPSAtMTsNCiAgICAgICAgICAgICAgICBzb3J0VGFibGUoMCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIH0NCiAgICAgICAgc2hvd0VsZW1lbnQoImxvYWRpbmciLCBmYWxzZSk7DQogICAgfQ0KfQ0KZnVuY3Rpb24gUGFnZVJlYWR5KCkgew0KICAgIGxldCBzZXJ2ZXIgPSBuZXcgU2VydmVyKCJnZXRTZXJ2ZXJDb25maWciKTsNCiAgICBzZXJ2ZXIucmVxdWVzdCh7fSk7DQogICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoInJlc2l6ZSIsIGZ1bmN0aW9uICgpIHsNCiAgICAgICAgY2FsY3VsYXRlV3JhcHBlckhlaWdodCgpOw0KICAgIH0sIHRydWUpOw0KICAgIHNldEludGVydmFsKGZ1bmN0aW9uICgpIHsNCiAgICAgICAgdXBkYXRlTG9nKCk7DQogICAgfSwgMTAwMDApOw0KICAgIHJldHVybjsNCn0NCmZ1bmN0aW9uIGNyZWF0ZUxheW91dCgpIHsNCiAgICAvLyBDbGllbnQgSW5mbw0KICAgIGxldCBvYmogPSBTRVJWRVJbImNsaWVudEluZm8iXTsNCiAgICBsZXQga2V5cyA9IGdldE93bk9ialByb3BzKG9iaik7DQogICAgZm9yICh2YXIgaSA9IDA7IGkgPCBrZXlzLmxlbmd0aDsgaSsrKSB7DQogICAgICAgIGlmIChkb2N1bWVudC5nZXRFbGVtZW50QnlJZChrZXlzW2ldKSkgew0KICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoa2V5c1tpXSkuaW5uZXJIVE1MID0gb2JqW2tleXNbaV1dOw0KICAgICAgICB9DQogICAgfQ0KICAgIGlmICghZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm1haW4tbWVudSIpKSB7DQogICAgICAgIHJldHVybjsNCiAgICB9DQogICAgLy8gQ3JlYXRlIG1lbnUNCiAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibWFpbi1tZW51IikuaW5uZXJIVE1MID0gIiI7DQogICAgZm9yIChsZXQgaSA9IDA7IGkgPCBtZW51SXRlbXMubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgbWVudUl0ZW1zW2ldLmlkID0gaTsNCiAgICAgICAgc3dpdGNoIChtZW51SXRlbXNbaV1bIm1lbnVLZXkiXSkgew0KICAgICAgICAgICAgY2FzZSAidXNlcnMiOg0KICAgICAgICAgICAgY2FzZSAibG9nb3V0IjoNCiAgICAgICAgICAgICAgICBpZiAoU0VSVkVSWyJzZXR0aW5ncyJdWyJhdXRoZW50aWNhdGlvbi53ZWIiXSA9PSB0cnVlKSB7DQogICAgICAgICAgICAgICAgICAgIG1lbnVJdGVtc1tpXS5jcmVhdGVJdGVtKCk7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAibWFwcGluZyI6DQogICAgICAgICAgICBjYXNlICJ4bWx0diI6DQogICAgICAgICAgICAgICAgaWYgKFNFUlZFUlsiY2xpZW50SW5mbyJdWyJlcGdTb3VyY2UiXSA9PSAiWEVQRyIpIHsNCiAgICAgICAgICAgICAgICAgICAgbWVudUl0ZW1zW2ldLmNyZWF0ZUl0ZW0oKTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBkZWZhdWx0Og0KICAgICAgICAgICAgICAgIG1lbnVJdGVtc1tpXS5jcmVhdGVJdGVtKCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIH0NCiAgICB9DQogICAgcmV0dXJuOw0KfQ0KZnVuY3Rpb24gb3BlblRoaXNNZW51KGVsZW1lbnQpIHsNCiAgICBsZXQgaWQgPSBlbGVtZW50LmlkOw0KICAgIGxldCBjb250ZW50ID0gbmV3IFNob3dDb250ZW50KGlkKTsNCiAgICBjb250ZW50LnNob3coKTsNCiAgICBjYWxjdWxhdGVXcmFwcGVySGVpZ2h0KCk7DQogICAgcmV0dXJuOw0KfQ0KY2xhc3MgUG9wdXBXaW5kb3cgew0KICAgIGNvbnN0cnVjdG9yKCkgew0KICAgICAgICB0aGlzLkRvY3VtZW50SUQgPSAicG9wdXAtY3VzdG9tIjsNCiAgICAgICAgdGhpcy5JbnRlcmFjdGlvbklEID0gImludGVyYWN0aW9uIjsNCiAgICAgICAgdGhpcy5kb2MgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCh0aGlzLkRvY3VtZW50SUQpOw0KICAgIH0NCiAgICBjcmVhdGVUaXRsZSh0aXRsZSkgew0KICAgICAgICBsZXQgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICB0ZC5jbGFzc05hbWUgPSAibGVmdCI7DQogICAgICAgIHRkLmlubmVySFRNTCA9IHRpdGxlICsgIjoiOw0KICAgICAgICByZXR1cm4gdGQ7DQogICAgfQ0KICAgIGNyZWF0ZUNvbnRlbnQoZWxlbWVudCkgew0KICAgICAgICBsZXQgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICB0ZC5hcHBlbmRDaGlsZChlbGVtZW50KTsNCiAgICAgICAgcmV0dXJuIHRkOw0KICAgIH0NCiAgICBjcmVhdGVJbnRlcmFjdGlvbigpIHsNCiAgICAgICAgbGV0IGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOw0KICAgICAgICBkaXYuc2V0QXR0cmlidXRlKCJpZCIsICJwb3B1cC1pbnRlcmFjdGlvbiIpOw0KICAgICAgICBkaXYuY2xhc3NOYW1lID0gImludGVyYWN0aW9uIjsNCiAgICAgICAgdGhpcy5kb2MuYXBwZW5kQ2hpbGQoZGl2KTsNCiAgICB9DQp9DQpjbGFzcyBQb3B1cENvbnRlbnQgZXh0ZW5kcyBQb3B1cFdpbmRvdyB7DQogICAgY29uc3RydWN0b3IoKSB7DQogICAgICAgIHN1cGVyKC4uLmFyZ3VtZW50cyk7DQogICAgICAgIHRoaXMudGFibGUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJUQUJMRSIpOw0KICAgIH0NCiAgICBjcmVhdGVIZWFkbGluZShoZWFkbGluZSkgew0KICAgICAgICB0aGlzLmRvYy5pbm5lckhUTUwgPSAiIjsNCiAgICAgICAgdmFyIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJIMyIpOw0KICAgICAgICBlbGVtZW50LmlubmVySFRNTCA9IGhlYWRsaW5lLnRvVXBwZXJDYXNlKCk7DQogICAgICAgIHRoaXMuZG9jLmFwcGVuZENoaWxkKGVsZW1lbnQpOw0KICAgICAgICAvLyBDcmVhdGUgdGFibGUNCiAgICAgICAgdGhpcy50YWJsZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlRBQkxFIik7DQogICAgICAgIHRoaXMuZG9jLmFwcGVuZENoaWxkKHRoaXMudGFibGUpOw0KICAgIH0NCiAgICBhcHBlbmRSb3codGl0bGUsIGVsZW1lbnQpIHsNCiAgICAgICAgbGV0IHRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVFIiKTsNCiAgICAgICAgLy8gVGl0bGUNCiAgICAgICAgaWYgKHRpdGxlLmxlbmd0aCAhPSAwKSB7DQogICAgICAgICAgICB0ci5hcHBlbmRDaGlsZCh0aGlzLmNyZWF0ZVRpdGxlKHRpdGxlKSk7DQogICAgICAgIH0NCiAgICAgICAgLy8gQ29udGVudA0KICAgICAgICB0ci5hcHBlbmRDaGlsZCh0aGlzLmNyZWF0ZUNvbnRlbnQoZWxlbWVudCkpOw0KICAgICAgICB0aGlzLnRhYmxlLmFwcGVuZENoaWxkKHRyKTsNCiAgICB9DQogICAgY3JlYXRlSW5wdXQodHlwZSwgbmFtZSwgdmFsdWUpIHsNCiAgICAgICAgbGV0IGlucHV0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiSU5QVVQiKTsNCiAgICAgICAgaWYgKHZhbHVlID09IHVuZGVmaW5lZCkgew0KICAgICAgICAgICAgdmFsdWUgPSAiIjsNCiAgICAgICAgfQ0KICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInR5cGUiLCB0eXBlKTsNCiAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJuYW1lIiwgbmFtZSk7DQogICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgidmFsdWUiLCB2YWx1ZSk7DQogICAgICAgIHJldHVybiBpbnB1dDsNCiAgICB9DQogICAgY3JlYXRlQ2hlY2tib3gobmFtZSkgew0KICAgICAgICBsZXQgaW5wdXQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJJTlBVVCIpOw0KICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInR5cGUiLCAiY2hlY2tib3giKTsNCiAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJuYW1lIiwgbmFtZSk7DQogICAgICAgIHJldHVybiBpbnB1dDsNCiAgICB9DQogICAgLy8gQ3JlYXRlcyBhIHNlbGVjdGlvbiBvZiBtdWx0aXBsZSBvcHRpb25zIHZhbHVlcyB3aXRoIHRleHQgZGVzY3JpcHRpb25zDQogICAgY3JlYXRlU2VsZWN0KHRleHQsIHZhbHVlcywgc2V0LCBkYktleSkgew0KICAgICAgICBsZXQgc2VsZWN0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiU0VMRUNUIik7DQogICAgICAgIHNlbGVjdC5zZXRBdHRyaWJ1dGUoIm5hbWUiLCBkYktleSk7DQogICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGV4dC5sZW5ndGg7IGkrKykgew0KICAgICAgICAgICAgbGV0IG9wdGlvbiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIk9QVElPTiIpOw0KICAgICAgICAgICAgb3B0aW9uLnNldEF0dHJpYnV0ZSgidmFsdWUiLCB2YWx1ZXNbaV0pOw0KICAgICAgICAgICAgb3B0aW9uLmlubmVyVGV4dCA9IHRleHRbaV07DQogICAgICAgICAgICBzZWxlY3QuYXBwZW5kQ2hpbGQob3B0aW9uKTsNCiAgICAgICAgfQ0KICAgICAgICBpZiAoc2V0ICE9ICIiKSB7DQogICAgICAgICAgICBzZWxlY3QudmFsdWUgPSBzZXQ7DQogICAgICAgIH0NCiAgICAgICAgaWYgKHNldCA9PSB1bmRlZmluZWQpIHsNCiAgICAgICAgICAgIHNlbGVjdC52YWx1ZSA9IHZhbHVlc1swXTsNCiAgICAgICAgfQ0KICAgICAgICByZXR1cm4gc2VsZWN0Ow0KICAgIH0NCiAgICBzZWxlY3RPcHRpb24oc2VsZWN0LCB2YWx1ZSkgew0KICAgICAgICAvL3NlbGVjdC5zZWxlY3RlZE9wdGlvbnMgPSB2YWx1ZQ0KICAgICAgICBsZXQgcyA9IHNlbGVjdDsNCiAgICAgICAgcy5vcHRpb25zW3Muc2VsZWN0ZWRJbmRleF0udmFsdWUgPSB2YWx1ZTsNCiAgICAgICAgcmV0dXJuIHNlbGVjdDsNCiAgICB9DQogICAgZGVzY3JpcHRpb24odmFsdWUpIHsNCiAgICAgICAgbGV0IHRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVFIiKTsNCiAgICAgICAgbGV0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgbGV0IHNwYW4gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJQUkUiKTsNCiAgICAgICAgc3Bhbi5pbm5lckhUTUwgPSB2YWx1ZTsNCiAgICAgICAgdHIuYXBwZW5kQ2hpbGQodGQpOw0KICAgICAgICB0ci5hcHBlbmRDaGlsZCh0aGlzLmNyZWF0ZUNvbnRlbnQoc3BhbikpOw0KICAgICAgICB0aGlzLnRhYmxlLmFwcGVuZENoaWxkKHRyKTsNCiAgICB9DQogICAgLy8gSW50ZXJhY3Rpb24NCiAgICBhZGRJbnRlcmFjdGlvbihlbGVtZW50KSB7DQogICAgICAgIGxldCBpbnRlcmFjdGlvbiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJwb3B1cC1pbnRlcmFjdGlvbiIpOw0KICAgICAgICBpbnRlcmFjdGlvbi5hcHBlbmRDaGlsZChlbGVtZW50KTsNCiAgICB9DQp9DQpmdW5jdGlvbiBvcGVuUG9wVXAoZGF0YVR5cGUsIGVsZW1lbnQpIHsNCiAgICBsZXQgZGF0YSA9IHt9Ow0KICAgIGxldCBpZDsNCiAgICBzd2l0Y2ggKGVsZW1lbnQpIHsNCiAgICAgICAgY2FzZSB1bmRlZmluZWQ6DQogICAgICAgICAgICBzd2l0Y2ggKGRhdGFUeXBlKSB7DQogICAgICAgICAgICAgICAgY2FzZSAiZ3JvdXAtdGl0bGUiOg0KICAgICAgICAgICAgICAgICAgICBpZiAoaWQgPT0gdW5kZWZpbmVkKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBpZCA9IC0xOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIGRhdGEgPSBnZXRMb2NhbERhdGEoImZpbHRlciIsIGlkKTsNCiAgICAgICAgICAgICAgICAgICAgZGF0YVsidHlwZSJdID0gImdyb3VwLXRpdGxlIjsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAiY3VzdG9tLWZpbHRlciI6DQogICAgICAgICAgICAgICAgICAgIGlmIChpZCA9PSB1bmRlZmluZWQpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGlkID0gLTE7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgZGF0YSA9IGdldExvY2FsRGF0YSgiZmlsdGVyIiwgaWQpOw0KICAgICAgICAgICAgICAgICAgICBkYXRhWyJ0eXBlIl0gPSAiY3VzdG9tLWZpbHRlciI7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICAgICAgICAgIGRhdGFbImlkLnByb3ZpZGVyIl0gPSAiLSI7DQogICAgICAgICAgICAgICAgICAgIGRhdGFbInR5cGUiXSA9IGRhdGFUeXBlOw0KICAgICAgICAgICAgICAgICAgICBpZCA9ICItIjsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgIGlkID0gZWxlbWVudC5pZDsNCiAgICAgICAgICAgIGRhdGEgPSBnZXRMb2NhbERhdGEoZGF0YVR5cGUsIGlkKTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgIH0NCiAgICBsZXQgY29udGVudCA9IG5ldyBQb3B1cENvbnRlbnQoKTsNCiAgICBzd2l0Y2ggKGRhdGFUeXBlKSB7DQogICAgICAgIGNhc2UgInBsYXlsaXN0IjoNCiAgICAgICAgICAgIGNvbnRlbnQuY3JlYXRlSGVhZGxpbmUoInt7LnBsYXlsaXN0LnBsYXlsaXN0VHlwZS50aXRsZX19Iik7DQogICAgICAgICAgICAvLyBUeXBlDQogICAgICAgICAgICB2YXIgdGV4dCA9IFsiTTNVIiwgIkhESG9tZVJ1biJdOw0KICAgICAgICAgICAgdmFyIHZhbHVlcyA9IFsiamF2YXNjcmlwdDogb3BlblBvcFVwKCdtM3UnKSIsICJqYXZhc2NyaXB0OiBvcGVuUG9wVXAoJ2hkaHInKSJdOw0KICAgICAgICAgICAgdmFyIHNlbGVjdCA9IGNvbnRlbnQuY3JlYXRlU2VsZWN0KHRleHQsIHZhbHVlcywgIiIsICJ0eXBlIik7DQogICAgICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJpZCIsICJ0eXBlIik7DQogICAgICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICdqYXZhc2NyaXB0OiBjaGFuZ2VCdXR0b25BY3Rpb24odGhpcywgIm5leHQiLCAib25jbGljayIpJyk7IC8vIGNoYW5nZUJ1dHRvbkFjdGlvbg0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnBsYXlsaXN0LnR5cGUudGl0bGV9fSIsIHNlbGVjdCk7DQogICAgICAgICAgICAvLyBJbnRlcmFjdGlvbg0KICAgICAgICAgICAgY29udGVudC5jcmVhdGVJbnRlcmFjdGlvbigpOw0KICAgICAgICAgICAgLy8gQWJvcnQNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJjYW5jZWwiLCAie3suYnV0dG9uLmNhbmNlbH19Iik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogc2hvd0VsZW1lbnQoInBvcHVwIiwgZmFsc2UpOycpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICAvLyBOZXh0DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAibmV4dCIsICJ7ey5idXR0b24ubmV4dH19Iik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJtM3UiKScpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJpZCIsICduZXh0Jyk7DQogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJtM3UiOg0KICAgICAgICAgICAgY29udGVudC5jcmVhdGVIZWFkbGluZShkYXRhVHlwZSk7DQogICAgICAgICAgICAvLyBOYW1lDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAibmFtZSI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3sucGxheWxpc3QubmFtZS5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sucGxheWxpc3QubmFtZS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgLy8gRGVzY3JpcHRpb24NCiAgICAgICAgICAgIHZhciBkYktleSA9ICJkZXNjcmlwdGlvbiI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3sucGxheWxpc3QuZGVzY3JpcHRpb24ucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnBsYXlsaXN0LmRlc2NyaXB0aW9uLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBVUkwNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJmaWxlLnNvdXJjZSI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3sucGxheWxpc3QuZmlsZU0zVS5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sucGxheWxpc3QuZmlsZU0zVS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgLy8gVHVuZXINCiAgICAgICAgICAgIGlmIChTRVJWRVJbInNldHRpbmdzIl1bImJ1ZmZlciJdICE9ICItIikgew0KICAgICAgICAgICAgICAgIHZhciB0ZXh0ID0gW107DQogICAgICAgICAgICAgICAgdmFyIHZhbHVlcyA9IFtdOw0KICAgICAgICAgICAgICAgIGZvciAodmFyIGkgPSAxOyBpIDw9IDEwMDsgaSsrKSB7DQogICAgICAgICAgICAgICAgICAgIHRleHQucHVzaChpLnRvU3RyaW5nKCkpOw0KICAgICAgICAgICAgICAgICAgICB2YWx1ZXMucHVzaChpLnRvU3RyaW5nKCkpOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB2YXIgZGJLZXkgPSAidHVuZXIiOw0KICAgICAgICAgICAgICAgIHZhciBzZWxlY3QgPSBjb250ZW50LmNyZWF0ZVNlbGVjdCh0ZXh0LCB2YWx1ZXMsIGRhdGFbZGJLZXldLCBkYktleSk7DQogICAgICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25mb2N1cyIsICJqYXZhc2NyaXB0OiByZXR1cm47Iik7DQogICAgICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnBsYXlsaXN0LnR1bmVyLnRpdGxlfX0iLCBzZWxlY3QpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgZWxzZSB7DQogICAgICAgICAgICAgICAgdmFyIGRiS2V5ID0gInR1bmVyIjsNCiAgICAgICAgICAgICAgICBpZiAoZGF0YVtkYktleV0gPT0gdW5kZWZpbmVkKSB7DQogICAgICAgICAgICAgICAgICAgIGRhdGFbZGJLZXldID0gMTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJyZWFkb25seSIsICJ0cnVlIik7DQogICAgICAgICAgICAgICAgaW5wdXQuY2xhc3NOYW1lID0gIm5vdEF2YWlsYWJsZSI7DQogICAgICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnBsYXlsaXN0LnR1bmVyLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBjb250ZW50LmRlc2NyaXB0aW9uKCJ7ey5wbGF5bGlzdC50dW5lci5kZXNjcmlwdGlvbn19Iik7DQogICAgICAgICAgICAvLyBJbnRlcmF0aW9uDQogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUludGVyYWN0aW9uKCk7DQogICAgICAgICAgICAvLyBEZWxldGUNCiAgICAgICAgICAgIGlmIChkYXRhWyJpZC5wcm92aWRlciJdICE9ICItIikgew0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJkZWxldGUiLCAie3suYnV0dG9uLmRlbGV0ZX19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuY2xhc3NOYW1lID0gImRlbGV0ZSI7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoIm0zdSIsICInICsgaWQgKyAnIiwgdHJ1ZSwgMCknKTsNCiAgICAgICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJiYWNrIiwgInt7LmJ1dHRvbi5iYWNrfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJwbGF5bGlzdCIpJyk7DQogICAgICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICAvLyBBYm9ydA0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImNhbmNlbCIsICJ7ey5idXR0b24uY2FuY2VsfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBzaG93RWxlbWVudCgicG9wdXAiLCBmYWxzZSk7Jyk7DQogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIC8vIFVwZGF0ZQ0KICAgICAgICAgICAgaWYgKGRhdGFbImlkLnByb3ZpZGVyIl0gIT0gIi0iKSB7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgInVwZGF0ZSIsICJ7ey5idXR0b24udXBkYXRlfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogc2F2ZVBvcHVwRGF0YSgibTN1IiwgIicgKyBpZCArICciLCBmYWxzZSwgMSknKTsNCiAgICAgICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIC8vIFNhdmUNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJzYXZlIiwgInt7LmJ1dHRvbi5zYXZlfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBzYXZlUG9wdXBEYXRhKCJtM3UiLCAiJyArIGlkICsgJyIsIGZhbHNlLCAwKScpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSAiaGRociI6DQogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUhlYWRsaW5lKGRhdGFUeXBlKTsNCiAgICAgICAgICAgIC8vIE5hbWUNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJuYW1lIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5wbGF5bGlzdC5uYW1lLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5wbGF5bGlzdC5uYW1lLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBEZXNjcmlwdGlvbg0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gImRlc2NyaXB0aW9uIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5wbGF5bGlzdC5kZXNjcmlwdGlvbi5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sucGxheWxpc3QuZGVzY3JpcHRpb24ucGxhY2Vob2xkZXJ9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIFVSTA0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gImZpbGUuc291cmNlIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5wbGF5bGlzdC5maWxlSERIUi5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sucGxheWxpc3QuZmlsZUhESFIudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIFR1bmVyDQogICAgICAgICAgICBpZiAoU0VSVkVSWyJzZXR0aW5ncyJdWyJidWZmZXIiXSAhPSAiLSIpIHsNCiAgICAgICAgICAgICAgICB2YXIgdGV4dCA9IFtdOw0KICAgICAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBbXTsNCiAgICAgICAgICAgICAgICBmb3IgKHZhciBpID0gMTsgaSA8PSAxMDA7IGkrKykgew0KICAgICAgICAgICAgICAgICAgICB0ZXh0LnB1c2goaS50b1N0cmluZygpKTsNCiAgICAgICAgICAgICAgICAgICAgdmFsdWVzLnB1c2goaS50b1N0cmluZygpKTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgdmFyIGRiS2V5ID0gInR1bmVyIjsNCiAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCBkYXRhW2RiS2V5XSwgZGJLZXkpOw0KICAgICAgICAgICAgICAgIHNlbGVjdC5zZXRBdHRyaWJ1dGUoIm9uZm9jdXMiLCAiamF2YXNjcmlwdDogcmV0dXJuOyIpOw0KICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5wbGF5bGlzdC50dW5lci50aXRsZX19Iiwgc2VsZWN0KTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgICAgIHZhciBkYktleSA9ICJ0dW5lciI7DQogICAgICAgICAgICAgICAgaWYgKGRhdGFbZGJLZXldID09IHVuZGVmaW5lZCkgew0KICAgICAgICAgICAgICAgICAgICBkYXRhW2RiS2V5XSA9IDE7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicmVhZG9ubHkiLCAidHJ1ZSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LmNsYXNzTmFtZSA9ICJub3RBdmFpbGFibGUiOw0KICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5wbGF5bGlzdC50dW5lci50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgY29udGVudC5kZXNjcmlwdGlvbigie3sucGxheWxpc3QudHVuZXIuZGVzY3JpcHRpb259fSIpOw0KICAgICAgICAgICAgLy8gSW50ZXJhY3Rpb24NCiAgICAgICAgICAgIGNvbnRlbnQuY3JlYXRlSW50ZXJhY3Rpb24oKTsNCiAgICAgICAgICAgIC8vIERlbGV0ZQ0KICAgICAgICAgICAgaWYgKGRhdGFbImlkLnByb3ZpZGVyIl0gIT0gIi0iKSB7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImRlbGV0ZSIsICJ7ey5idXR0b24uZGVsZXRlfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogc2F2ZVBvcHVwRGF0YSgiaGRociIsICInICsgaWQgKyAnIiwgdHJ1ZSwgMCknKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5jbGFzc05hbWUgPSAiZGVsZXRlIjsNCiAgICAgICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJiYWNrIiwgInt7LmJ1dHRvbi5iYWNrfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJwbGF5bGlzdCIpJyk7DQogICAgICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICAvLyBBYm9ydA0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImNhbmNlbCIsICJ7ey5idXR0b24uY2FuY2VsfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBzaG93RWxlbWVudCgicG9wdXAiLCBmYWxzZSk7Jyk7DQogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIC8vIFVwZGF0ZQ0KICAgICAgICAgICAgaWYgKGRhdGFbImlkLnByb3ZpZGVyIl0gIT0gIi0iKSB7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgInVwZGF0ZSIsICJ7ey5idXR0b24udXBkYXRlfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogc2F2ZVBvcHVwRGF0YSgiaGRociIsICInICsgaWQgKyAnIiwgZmFsc2UsIDEpJyk7DQogICAgICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICAvLyBTYXZlDQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAic2F2ZSIsICJ7ey5idXR0b24uc2F2ZX19Iik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogc2F2ZVBvcHVwRGF0YSgiaGRociIsICInICsgaWQgKyAnIiwgZmFsc2UsIDApJyk7DQogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJmaWx0ZXIiOg0KICAgICAgICAgICAgY29udGVudC5jcmVhdGVIZWFkbGluZShkYXRhVHlwZSk7DQogICAgICAgICAgICAvLyBUeXBlDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAidHlwZSI7DQogICAgICAgICAgICB2YXIgdGV4dCA9IFsiTTNVOiAiICsgInt7LmZpbHRlci50eXBlLmdyb3VwVGl0bGV9fSIsICJ4VGVWZTogIiArICJ7ey5maWx0ZXIudHlwZS5jdXN0b21GaWx0ZXJ9fSJdOw0KICAgICAgICAgICAgdmFyIHZhbHVlcyA9IFsiamF2YXNjcmlwdDogb3BlblBvcFVwKCdncm91cC10aXRsZScpIiwgImphdmFzY3JpcHQ6IG9wZW5Qb3BVcCgnY3VzdG9tLWZpbHRlcicpIl07DQogICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCAiamF2YXNjcmlwdDogb3BlblBvcFVwKCdncm91cC10aXRsZScpIiwgZGJLZXkpOw0KICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgiaWQiLCBpZCk7DQogICAgICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICdqYXZhc2NyaXB0OiBjaGFuZ2VCdXR0b25BY3Rpb24odGhpcywgIm5leHQiLCAib25jbGljayIpOycpOyAvLyBjaGFuZ2VCdXR0b25BY3Rpb24NCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5maWx0ZXIudHlwZS50aXRsZX19Iiwgc2VsZWN0KTsNCiAgICAgICAgICAgIC8vIEludGVyYWN0aW9uDQogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUludGVyYWN0aW9uKCk7DQogICAgICAgICAgICAvLyBBYm9ydA0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImNhbmNlbCIsICJ7ey5idXR0b24uY2FuY2VsfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBzaG93RWxlbWVudCgicG9wdXAiLCBmYWxzZSk7Jyk7DQogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIC8vIE5leHQNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJuZXh0IiwgInt7LmJ1dHRvbi5uZXh0fX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoImdyb3VwLXRpdGxlIiknKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgiaWQiLCAnbmV4dCcpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSAiY3VzdG9tLWZpbHRlciI6DQogICAgICAgIGNhc2UgImdyb3VwLXRpdGxlIjoNCiAgICAgICAgICAgIHN3aXRjaCAoZGF0YVR5cGUpIHsNCiAgICAgICAgICAgICAgICBjYXNlICJjdXN0b20tZmlsdGVyIjoNCiAgICAgICAgICAgICAgICAgICAgY29udGVudC5jcmVhdGVIZWFkbGluZSgie3suZmlsdGVyLmN1c3RvbX19IiArICIgRmlsdGVyIik7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgImdyb3VwLXRpdGxlIjoNCiAgICAgICAgICAgICAgICAgICAgY29udGVudC5jcmVhdGVIZWFkbGluZSgie3suZmlsdGVyLmdyb3VwfX0iICsgIiBGaWx0ZXIiKTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICB9DQogICAgICAgICAgICAvLyBOYW1lICAgICAgDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAibmFtZSI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3suZmlsdGVyLm5hbWUucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LmZpbHRlci5uYW1lLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBEZXNjcmlwdGlvbg0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gImRlc2NyaXB0aW9uIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5maWx0ZXIuZGVzY3JpcHRpb24ucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LmZpbHRlci5kZXNjcmlwdGlvbi50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgLy8gVHlwZQ0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gInR5cGUiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiaGlkZGVuIiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCIiLCBpbnB1dCk7DQogICAgICAgICAgICB2YXIgZmlsdGVyVHlwZSA9IGRhdGFbZGJLZXldOw0KICAgICAgICAgICAgc3dpdGNoIChmaWx0ZXJUeXBlKSB7DQogICAgICAgICAgICAgICAgY2FzZSAiY3VzdG9tLWZpbHRlciI6DQogICAgICAgICAgICAgICAgICAgIC8vIENhc2Ugc2Vuc2l0aXZlDQogICAgICAgICAgICAgICAgICAgIHZhciBkYktleSA9ICJjYXNlU2Vuc2l0aXZlIjsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChkYktleSk7DQogICAgICAgICAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhW2RiS2V5XTsNCiAgICAgICAgICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LmZpbHRlci5jYXNlU2Vuc2l0aXZlLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAgICAgICAgIC8vIEZpbHRlciBSdWxlIChDdXN0b20pDQogICAgICAgICAgICAgICAgICAgIHZhciBkYktleSA9ICJmaWx0ZXIiOw0KICAgICAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5maWx0ZXIuZmlsdGVyUnVsZS5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5maWx0ZXIuZmlsdGVyUnVsZS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgICAgICAgICAvLyBTdGFydGluZyBDaGFubmVsIE51bWJlciBNYXBwaW5nDQogICAgICAgICAgICAgICAgICAgIHZhciBkYktleSA9ICJzdGFydGluZ0NoYW5uZWwiOw0KICAgICAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5maWx0ZXIuc3RhcnRpbmdDaGFubmVsLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LmZpbHRlci5zdGFydGluZ0NoYW5uZWwudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAiZ3JvdXAtdGl0bGUiOg0KICAgICAgICAgICAgICAgICAgICAvL2FsZXJ0KGRiS2V5ICsgIiAiICsgZmlsdGVyVHlwZSkNCiAgICAgICAgICAgICAgICAgICAgLy8gRmlsdGVyIGJhc2VkIG9uIHRoZSBncm91cHMgaW4gdGhlIE0zVQ0KICAgICAgICAgICAgICAgICAgICB2YXIgZGJLZXkgPSAiZmlsdGVyIjsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGdyb3Vwc00zVSA9IGdldExvY2FsRGF0YSgibTN1R3JvdXBzIiwgIiIpOw0KICAgICAgICAgICAgICAgICAgICB2YXIgdGV4dCA9IGdyb3Vwc00zVVsidGV4dCJdOw0KICAgICAgICAgICAgICAgICAgICB2YXIgdmFsdWVzID0gZ3JvdXBzTTNVWyJ2YWx1ZSJdOw0KICAgICAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCBkYXRhW2RiS2V5XSwgZGJLZXkpOw0KICAgICAgICAgICAgICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3suZmlsdGVyLmZpbHRlckdyb3VwLnRpdGxlfX0iLCBzZWxlY3QpOw0KICAgICAgICAgICAgICAgICAgICBjb250ZW50LmRlc2NyaXB0aW9uKCJ7ey5maWx0ZXIuZmlsdGVyR3JvdXAuZGVzY3JpcHRpb259fSIpOw0KICAgICAgICAgICAgICAgICAgICAvLyBDYXNlIHNlbnNldGl2ZQ0KICAgICAgICAgICAgICAgICAgICB2YXIgZGJLZXkgPSAiY2FzZVNlbnNpdGl2ZSI7DQogICAgICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goZGJLZXkpOw0KICAgICAgICAgICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YVtkYktleV07DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5maWx0ZXIuY2FzZVNlbnNpdGl2ZS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgICAgICAgICB2YXIgZGJLZXkgPSAiaW5jbHVkZSI7DQogICAgICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LmZpbHRlci5pbmNsdWRlLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LmZpbHRlci5pbmNsdWRlLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuZGVzY3JpcHRpb24oInt7LmZpbHRlci5pbmNsdWRlLmRlc2NyaXB0aW9ufX0iKTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGRiS2V5ID0gImV4Y2x1ZGUiOw0KICAgICAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5maWx0ZXIuZXhjbHVkZS5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5maWx0ZXIuZXhjbHVkZS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgICAgICAgICBjb250ZW50LmRlc2NyaXB0aW9uKCJ7ey5maWx0ZXIuZXhjbHVkZS5kZXNjcmlwdGlvbn19Iik7DQogICAgICAgICAgICAgICAgICAgIC8vIFByZXNlcnZlIE0zVSBQbGF5bGlzdCBDaGFubmVsIE1hcHBpbmcNCiAgICAgICAgICAgICAgICAgICAgdmFyIGRiS2V5ID0gInByZXNlcnZlTWFwcGluZyI7DQogICAgICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goZGJLZXkpOw0KICAgICAgICAgICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YVtkYktleV07DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5maWx0ZXIucHJlc2VydmVNYXBwaW5nLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAgICAgICAgIC8vIFN0YXJ0aW5nIENoYW5uZWwgTnVtYmVyIE1hcHBpbmcNCiAgICAgICAgICAgICAgICAgICAgdmFyIGRiS2V5ID0gInN0YXJ0aW5nQ2hhbm5lbCI7DQogICAgICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LmZpbHRlci5zdGFydGluZ0NoYW5uZWwucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3suZmlsdGVyLnN0YXJ0aW5nQ2hhbm5lbC50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgICAgICAgICAvLyBGaWxsIE1pc3NpbmcgRVBHIERhdGENCiAgICAgICAgICAgICAgICAgICAgLy8gVGhlIGZvbGxvd2luZyBjb2RlIG9ubHkgd29ya3Mgd2hlbiB4VGVWZSBEdW1teSBhbHJlYWR5IGV4aXN0cw0KICAgICAgICAgICAgICAgICAgICAvLyB2YXIgZGJLZXk6c3RyaW5nID0gImRlZmF1bHRNaXNzaW5nRVBHIg0KICAgICAgICAgICAgICAgICAgICAvLyB2YXIgeG1sdHY6WE1MVFZGaWxlID0gbmV3IFhNTFRWRmlsZSgpDQogICAgICAgICAgICAgICAgICAgIC8vIHZhciBzZWxlY3QgPSB4bWx0di5nZXRQcm9ncmFtcygieFRlVmUgRHVtbXkiLCBkYXRhW2RiS2V5XSkNCiAgICAgICAgICAgICAgICAgICAgLy8gc2VsZWN0LnNldEF0dHJpYnV0ZSgibmFtZSIsIGRiS2V5KQ0KICAgICAgICAgICAgICAgICAgICAvLyBzZWxlY3Quc2V0QXR0cmlidXRlKCJpZCIsICJwb3B1cC1taXNzaW5nLWVwZyIpDQogICAgICAgICAgICAgICAgICAgIC8vIFRoZSB3b3JrYXJvdW5kIGlzIGN1cnJlbnRseSB0byBoYXJkIGNvZGUgdGhlIHhUZVZlIER1bW15IGRhdGENCiAgICAgICAgICAgICAgICAgICAgdmFyIGRiS2V5ID0gImRlZmF1bHRNaXNzaW5nRVBHIjsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGxpc3RPcHRpb25zID0geyAidGV4dCI6IFsiLSIsICIzMCBNaW51dGVzICgzMF9NaW51dGVzKSIsICI2MCBNaW51dGVzICg2MF9NaW51dGVzKSIsICI5MCBNaW51dGVzICg5MF9NaW51dGVzKSIsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgIjEyMCBNaW51dGVzICgxMjBfTWludXRlcykiLCAiMTgwIE1pbnV0ZXMgKDMwX01pbnV0ZXMpIiwgIjI0MCBNaW51dGVzICgzMF9NaW51dGVzKSIsICIzNjAgTWludXRlcyAoMzBfTWludXRlcykiXSwNCiAgICAgICAgICAgICAgICAgICAgICAgICJ2YWx1ZSI6IFsiLSIsICIzMF9NaW51dGVzIiwgIjYwX01pbnV0ZXMiLCAiOTBfTWludXRlcyIsICIxMjBfTWludXRlcyIsICIxODBfTWludXRlcyIsICIyNDBfTWludXRlcyIsICIzNjBfTWludXRlcyIsXSB9Ow0KICAgICAgICAgICAgICAgICAgICB2YXIgdGV4dCA9IGxpc3RPcHRpb25zWyJ0ZXh0Il07DQogICAgICAgICAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBsaXN0T3B0aW9uc1sidmFsdWUiXTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHNlbGVjdCA9IGNvbnRlbnQuY3JlYXRlU2VsZWN0KHRleHQsIHZhbHVlcywgZGF0YVtkYktleV0sIGRiS2V5KTsNCiAgICAgICAgICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LmZpbHRlci5kZWZhdWx0TWlzc2luZ0VQRy50aXRsZX19Iiwgc2VsZWN0KTsNCiAgICAgICAgICAgICAgICAgICAgY29udGVudC5kZXNjcmlwdGlvbigie3suZmlsdGVyLmRlZmF1bHRNaXNzaW5nRVBHLmRlc2NyaXB0aW9ufX0iKTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICB9DQogICAgICAgICAgICAvLyBJbnRlcmFjdGlvbg0KICAgICAgICAgICAgY29udGVudC5jcmVhdGVJbnRlcmFjdGlvbigpOw0KICAgICAgICAgICAgLy8gRGVsZXRlDQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAiZGVsZXRlIiwgInt7LmJ1dHRvbi5kZWxldGV9fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoImZpbHRlciIsICInICsgaWQgKyAnIiwgdHJ1ZSwgMCknKTsNCiAgICAgICAgICAgIGlucHV0LmNsYXNzTmFtZSA9ICJkZWxldGUiOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICAvLyBBYm9ydA0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImNhbmNlbCIsICJ7ey5idXR0b24uY2FuY2VsfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBzaG93RWxlbWVudCgicG9wdXAiLCBmYWxzZSk7Jyk7DQogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIC8vIFNhdmUNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJzYXZlIiwgInt7LmJ1dHRvbi5zYXZlfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBzYXZlUG9wdXBEYXRhKCJmaWx0ZXIiLCAiJyArIGlkICsgJyIsIGZhbHNlLCAwKScpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSAieG1sdHYiOg0KICAgICAgICAgICAgY29udGVudC5jcmVhdGVIZWFkbGluZShkYXRhVHlwZSk7DQogICAgICAgICAgICAvLyBOYW1lDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAibmFtZSI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3sueG1sdHYubmFtZS5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sueG1sdHYubmFtZS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgLy8gRGVzY3JpcHRpb24NCiAgICAgICAgICAgIHZhciBkYktleSA9ICJkZXNjcmlwdGlvbiI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3sueG1sdHYuZGVzY3JpcHRpb24ucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnhtbHR2LmRlc2NyaXB0aW9uLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBVUkwNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJmaWxlLnNvdXJjZSI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3sueG1sdHYuZmlsZVhNTFRWLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey54bWx0di5maWxlWE1MVFYudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIEludGVyYWN0aW9uDQogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUludGVyYWN0aW9uKCk7DQogICAgICAgICAgICAvLyBEZWxldGUNCiAgICAgICAgICAgIGlmIChkYXRhWyJpZC5wcm92aWRlciJdICE9ICItIikgew0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJkZWxldGUiLCAie3suYnV0dG9uLmRlbGV0ZX19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoInhtbHR2IiwgIicgKyBpZCArICciLCB0cnVlLCAwKScpOw0KICAgICAgICAgICAgICAgIGlucHV0LmNsYXNzTmFtZSA9ICJkZWxldGUiOw0KICAgICAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgLy8gQWJvcnQNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJjYW5jZWwiLCAie3suYnV0dG9uLmNhbmNlbH19Iik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogc2hvd0VsZW1lbnQoInBvcHVwIiwgZmFsc2UpOycpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICAvLyBVcGRhdGUNCiAgICAgICAgICAgIGlmIChkYXRhWyJpZC5wcm92aWRlciJdICE9ICItIikgew0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJ1cGRhdGUiLCAie3suYnV0dG9uLnVwZGF0ZX19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoInhtbHR2IiwgIicgKyBpZCArICciLCBmYWxzZSwgMSknKTsNCiAgICAgICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIC8vIFNhdmUNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJzYXZlIiwgInt7LmJ1dHRvbi5zYXZlfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBzYXZlUG9wdXBEYXRhKCJ4bWx0diIsICInICsgaWQgKyAnIiwgZmFsc2UsIDApJyk7DQogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJ1c2VycyI6DQogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUhlYWRsaW5lKCJ7ey5tYWluTWVudS5pdGVtLnVzZXJzfX0iKTsNCiAgICAgICAgICAgIC8vIFVzZXIgbmFtZQ0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gInVzZXJuYW1lIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey51c2Vycy51c2VybmFtZS5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sudXNlcnMudXNlcm5hbWUudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIE5ldyBQYXJzc3dvcmQNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJwYXNzd29yZCI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJwYXNzd29yZCIsIGRiS2V5LCAiIik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnVzZXJzLnBhc3N3b3JkLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey51c2Vycy5wYXNzd29yZC50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgLy8gQ29uZmlybWF0aW9uDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAiY29uZmlybSI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJwYXNzd29yZCIsIGRiS2V5LCAiIik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnVzZXJzLmNvbmZpcm0ucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnVzZXJzLmNvbmZpcm0udGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIEF1dGhlbnRpY2F0aW9uIFdFQg0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gImF1dGhlbnRpY2F0aW9uLndlYiI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KGRiS2V5KTsNCiAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhW2RiS2V5XTsNCiAgICAgICAgICAgIGlmIChkYXRhWyJkZWZhdWx0VXNlciJdID09IHRydWUpIHsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAiamF2YXNjcmlwdDogcmV0dXJuIGZhbHNlIik7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sudXNlcnMud2ViLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBBdXRoZW50aWNhdGlvbiBQTVMNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJhdXRoZW50aWNhdGlvbi5wbXMiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChkYktleSk7DQogICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YVtkYktleV07DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sudXNlcnMucG1zLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBBdXRoZW50aWNhdGlvbiBNM1UNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJhdXRoZW50aWNhdGlvbi5tM3UiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChkYktleSk7DQogICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YVtkYktleV07DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sudXNlcnMubTN1LnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBBdXRoZW50aWNhdGlvbiBYTUwNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJhdXRoZW50aWNhdGlvbi54bWwiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChkYktleSk7DQogICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YVtkYktleV07DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sudXNlcnMueG1sLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBBdXRoZW50aWNhdGlvbiBBUEkNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJhdXRoZW50aWNhdGlvbi5hcGkiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChkYktleSk7DQogICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YVtkYktleV07DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sudXNlcnMuYXBpLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBJbnRlcmFjdGlvbg0KICAgICAgICAgICAgY29udGVudC5jcmVhdGVJbnRlcmFjdGlvbigpOw0KICAgICAgICAgICAgLy8gRGVsZXRlDQogICAgICAgICAgICBpZiAoZGF0YVsiZGVmYXVsdFVzZXIiXSAhPSB0cnVlICYmIGlkICE9ICItIikgew0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJkZWxldGUiLCAie3suYnV0dG9uLmRlbGV0ZX19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuY2xhc3NOYW1lID0gImRlbGV0ZSI7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoIicgKyBkYXRhVHlwZSArICciLCAiJyArIGlkICsgJyIsIHRydWUsIDApJyk7DQogICAgICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICAvLyBBYm9ydA0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImNhbmNlbCIsICJ7ey5idXR0b24uY2FuY2VsfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBzaG93RWxlbWVudCgicG9wdXAiLCBmYWxzZSk7Jyk7DQogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIC8vIFNhdmUNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJzYXZlIiwgInt7LmJ1dHRvbi5zYXZlfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBzYXZlUG9wdXBEYXRhKCInICsgZGF0YVR5cGUgKyAnIiwgIicgKyBpZCArICciLCAiZmFsc2UiKTsnKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGNhc2UgIm1hcHBpbmciOg0KICAgICAgICAgICAgY29udGVudC5jcmVhdGVIZWFkbGluZSgie3subWFpbk1lbnUuaXRlbS5tYXBwaW5nfX0iKTsNCiAgICAgICAgICAgIC8vIEFjdGl2ZQ0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gIngtYWN0aXZlIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goZGJLZXkpOw0KICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGFbZGJLZXldOw0KICAgICAgICAgICAgaW5wdXQuaWQgPSAiYWN0aXZlIjsNCiAgICAgICAgICAgIC8vaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpDQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRvZ2dsZUNoYW5uZWxTdGF0dXMoJyIgKyBpZCArICInLCB0aGlzKSIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7Lm1hcHBpbmcuYWN0aXZlLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBDaGFubmVsIG5hbWUNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJ4LW5hbWUiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICBpZiAoQlVMS19FRElUID09IHRydWUpIHsNCiAgICAgICAgICAgICAgICBpbnB1dC5zdHlsZS5ib3JkZXIgPSAic29saWQgMXB4IHJlZCI7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJyZWFkb25seSIsICJ0cnVlIik7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3subWFwcGluZy5jaGFubmVsTmFtZS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgY29udGVudC5kZXNjcmlwdGlvbihkYXRhWyJuYW1lIl0pOw0KICAgICAgICAgICAgLy8gRGVzY3JpcHRpb24NCiAgICAgICAgICAgIHZhciBkYktleSA9ICJ4LWRlc2NyaXB0aW9uIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5tYXBwaW5nLmRlc2NyaXB0aW9uLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5tYXBwaW5nLmRlc2NyaXB0aW9uLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBVcGRhdGUgdGhlIGNoYW5uZWwgeC1uYW1lDQogICAgICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgiX3V1aWQua2V5IikpIHsNCiAgICAgICAgICAgICAgICBpZiAoZGF0YVsiX3V1aWQua2V5Il0gIT0gIiIpIHsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGRiS2V5ID0gIngtdXBkYXRlLWNoYW5uZWwtbmFtZSI7DQogICAgICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goZGJLZXkpOw0KICAgICAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhW2RiS2V5XTsNCiAgICAgICAgICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7Lm1hcHBpbmcudXBkYXRlQ2hhbm5lbE5hbWUudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9DQogICAgICAgICAgICAvLyBDaGFubmVsIG5hbWUgcmVnZXggZm9yIHVwZGF0aW5nIHRoZSBjaGFubmVsIG5hbWUNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJ1cGRhdGUtY2hhbm5lbC1uYW1lLXJlZ2V4IjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5tYXBwaW5nLnVwZGF0ZUNoYW5uZWxOYW1lUmVnZXgucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7Lm1hcHBpbmcudXBkYXRlQ2hhbm5lbE5hbWVSZWdleC50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgY29udGVudC5kZXNjcmlwdGlvbigie3subWFwcGluZy51cGRhdGVDaGFubmVsTmFtZVJlZ2V4LmRlc2NyaXB0aW9ufX0iKTsNCiAgICAgICAgICAgIC8vIENoYW5uZWwgZ3JvdXAgcmVnZXggZm9yIHVwZGF0aW5nIHRoZSBjaGFubmVsIG5hbWUNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJ1cGRhdGUtY2hhbm5lbC1uYW1lLWJ5LWdyb3VwLXJlZ2V4IjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5tYXBwaW5nLnVwZGF0ZUNoYW5uZWxOYW1lQnlHcm91cFJlZ2V4LnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5tYXBwaW5nLnVwZGF0ZUNoYW5uZWxOYW1lQnlHcm91cFJlZ2V4LnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICBjb250ZW50LmRlc2NyaXB0aW9uKCJ7ey5tYXBwaW5nLnVwZGF0ZUNoYW5uZWxOYW1lQnlHcm91cFJlZ2V4LmRlc2NyaXB0aW9ufX0iKTsNCiAgICAgICAgICAgIC8vIExvZ28gVVJMIChDaGFubmVsKSANCiAgICAgICAgICAgIHZhciBkYktleSA9ICJ0dmctbG9nbyI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgiaWQiLCAiY2hhbm5lbC1pY29uIik7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3subWFwcGluZy5jaGFubmVsTG9nby50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgLy8gQ2hhbm5lbCBsb2dvIHVwZGF0ZQ0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gIngtdXBkYXRlLWNoYW5uZWwtaWNvbiI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KGRiS2V5KTsNCiAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhW2RiS2V5XTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgiaWQiLCAidXBkYXRlLWljb24iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCc7IGNoYW5nZUNoYW5uZWxMb2dvKCciICsgaWQgKyAiJyk7Iik7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3subWFwcGluZy51cGRhdGVDaGFubmVsTG9nby50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgLy8gRXhwYW5kIEVQRyBjYXRlZ29yeQ0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gIngtY2F0ZWdvcnkiOw0KICAgICAgICAgICAgdmFyIHRleHQgPSBbIi0iLCAiS2lkcyAoRW1ieSBvbmx5KSIsICJOZXdzIiwgIk1vdmllIiwgIlNlcmllcyIsICJTcG9ydHMiXTsNCiAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBbIiIsICJLaWRzIiwgIk5ld3MiLCAiTW92aWUiLCAiU2VyaWVzIiwgIlNwb3J0cyJdOw0KICAgICAgICAgICAgdmFyIHNlbGVjdCA9IGNvbnRlbnQuY3JlYXRlU2VsZWN0KHRleHQsIHZhbHVlcywgZGF0YVtkYktleV0sIGRiS2V5KTsNCiAgICAgICAgICAgIHNlbGVjdC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3subWFwcGluZy5lcGdDYXRlZ29yeS50aXRsZX19Iiwgc2VsZWN0KTsNCiAgICAgICAgICAgIC8vIE0zVSBncm91cCB0aXRsZQ0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gIngtZ3JvdXAtdGl0bGUiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICBpbnB1dC5kYXRhc2V0Lm9sZFZhbHVlID0gZGF0YVtkYktleV07DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3subWFwcGluZy5tM3VHcm91cFRpdGxlLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICBpZiAoZGF0YVsiZ3JvdXAtdGl0bGUiXSAhPSB1bmRlZmluZWQpIHsNCiAgICAgICAgICAgICAgICBjb250ZW50LmRlc2NyaXB0aW9uKGRhdGFbImdyb3VwLXRpdGxlIl0pOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgaWYgKGRhdGFbIngtdXBkYXRlLWNoYW5uZWwtZ3JvdXAiXSA9PSB0cnVlKSB7DQogICAgICAgICAgICAgICAgaW5wdXQuZGlzYWJsZWQgPSB0cnVlOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgLy8gVXBkYXRlIGNoYW5uZWwgZ3JvdXAgY2hlY2tib3gNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJ4LXVwZGF0ZS1jaGFubmVsLWdyb3VwIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goZGJLZXkpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0b2dnbGVHcm91cFVwZGF0ZUNiKCciICsgaWQgKyAiJywgdGhpcyk7Iik7DQogICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YVtkYktleV07DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3subWFwcGluZy51cGRhdGVDaGFubmVsR3JvdXAudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIGNvbnRlbnQuZGVzY3JpcHRpb24oInt7Lm1hcHBpbmcudXBkYXRlQ2hhbm5lbEdyb3VwLmRlc2NyaXB0aW9ufX0iKTsNCiAgICAgICAgICAgIC8vIFhNTFRWIGZpbGUNCiAgICAgICAgICAgIHZhciBkYktleSA9ICd4LXhtbHR2LWZpbGUnOw0KICAgICAgICAgICAgY29uc3QgeG1sVHZGaWxlID0gZGF0YVtkYktleV07DQogICAgICAgICAgICB2YXIgeG1sVHYgPSBuZXcgWE1MVFZGaWxlKCk7DQogICAgICAgICAgICBjb25zdCB4bWxUdkZpbGVTZWxlY3QgPSB4bWxUdi5nZXRGaWxlcyhkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICB4bWxUdkZpbGVTZWxlY3Quc2V0QXR0cmlidXRlKCduYW1lJywgZGJLZXkpOw0KICAgICAgICAgICAgeG1sVHZGaWxlU2VsZWN0LnNldEF0dHJpYnV0ZSgnaWQnLCAncG9wdXAteG1sdHYnKTsNCiAgICAgICAgICAgIHhtbFR2RmlsZVNlbGVjdC5zZXRBdHRyaWJ1dGUoJ29uY2hhbmdlJywgYGphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnOyBzZXRYbWx0dkNoYW5uZWwoJyR7aWR9JywgdGhpcyk7YCk7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygne3subWFwcGluZy54bWx0dkZpbGUudGl0bGV9fScsIHhtbFR2RmlsZVNlbGVjdCk7DQogICAgICAgICAgICAvLyBYTUxUViBNYXBwaW5nDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAneC1tYXBwaW5nJzsNCiAgICAgICAgICAgIHZhciB4bWxUdiA9IG5ldyBYTUxUVkZpbGUoKTsNCiAgICAgICAgICAgIGNvbnN0IGN1cnJlbnRYbWxUdklkID0gZGF0YVtkYktleV07DQogICAgICAgICAgICBjb25zdCBbeG1sVHZJZENvbnRhaW5lciwgeG1sVHZJZElucHV0LCB4bWxUdklkRGF0YWxpc3RdID0geG1sVHYubmV3WG1sVHZJZFBpY2tlcih4bWxUdkZpbGUsIGN1cnJlbnRYbWxUdklkKTsNCiAgICAgICAgICAgIHhtbFR2SWRDb250YWluZXIuc2V0QXR0cmlidXRlKCdpZCcsICd4bWx0di1pZC1waWNrZXItY29udGFpbmVyJyk7DQogICAgICAgICAgICB4bWxUdklkSW5wdXQuc2V0QXR0cmlidXRlKCdsaXN0JywgJ3htbHR2LWlkLXBpY2tlci1kYXRhbGlzdCcpOw0KICAgICAgICAgICAgeG1sVHZJZElucHV0LnNldEF0dHJpYnV0ZSgnbmFtZScsICd4LW1hcHBpbmcnKTsgLy8gU2hvdWxkIHN0YXkgeC1tYXBwaW5nIGFzIGl0IHdpbGwgYmUgdXNlZCBpbiBkb25lUG9wdXBEYXRhIHRvIG1ha2UgYSBzZXJ2ZXIgcmVxdWVzdA0KICAgICAgICAgICAgeG1sVHZJZElucHV0LnNldEF0dHJpYnV0ZSgnaWQnLCAneG1sdHYtaWQtcGlja2VyLWlucHV0Jyk7DQogICAgICAgICAgICB4bWxUdklkSW5wdXQuc2V0QXR0cmlidXRlKCdvbmNoYW5nZScsIGBqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJzsgY2hlY2tYbWx0dkNoYW5uZWwoJyR7aWR9JywgdGhpcy52YWx1ZSwgJyR7eG1sVHZGaWxlfScpO2ApOw0KICAgICAgICAgICAgeG1sVHZJZERhdGFsaXN0LnNldEF0dHJpYnV0ZSgnaWQnLCAneG1sdHYtaWQtcGlja2VyLWRhdGFsaXN0Jyk7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygne3subWFwcGluZy54bWx0dkNoYW5uZWwudGl0bGV9fScsIHhtbFR2SWRDb250YWluZXIpOw0KICAgICAgICAgICAgLy8gVGltZXNoaWZ0DQogICAgICAgICAgICB2YXIgZGJLZXkgPSAieC10aW1lc2hpZnQiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7Lm1hcHBpbmcudGltZXNoaWZ0LnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgiaWQiLCAidGltZXNoaWZ0Iik7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3subWFwcGluZy50aW1lc2hpZnQudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIEludGVyYWN0aW9uDQogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUludGVyYWN0aW9uKCk7DQogICAgICAgICAgICAvLyBVcGxvYWQgbG9nbw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImNhbmNlbCIsICJ7ey5idXR0b24udXBsb2FkTG9nb319Iik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogdXBsb2FkTG9nbygpOycpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICAvLyBBYm9ydA0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImNhbmNlbCIsICJ7ey5idXR0b24uY2FuY2VsfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBzaG93RWxlbWVudCgicG9wdXAiLCBmYWxzZSk7Jyk7DQogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIC8vIEZpbmlzaGVkDQogICAgICAgICAgICB2YXIgaWRzID0gW107DQogICAgICAgICAgICBpZHMgPSBnZXRBbGxTZWxlY3RlZENoYW5uZWxzKCk7DQogICAgICAgICAgICBpZiAoaWRzLmxlbmd0aCA9PSAwKSB7DQogICAgICAgICAgICAgICAgaWRzLnB1c2goaWQpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgInNhdmUiLCAie3suYnV0dG9uLmRvbmV9fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IGRvbmVQb3B1cERhdGEoIicgKyBkYXRhVHlwZSArICciLCAiJyArIGlkcyArICciLCAiZmFsc2UiKTsnKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICBicmVhazsNCiAgICB9DQogICAgc2hvd1BvcFVwRWxlbWVudCgncG9wdXAtY3VzdG9tJyk7DQp9DQpjbGFzcyBYTUxUVkZpbGUgew0KICAgIGdldEZpbGVzKHNldCkgew0KICAgICAgICBsZXQgZmlsZUlEcyA9IGdldE93bk9ialByb3BzKFNFUlZFUlsieGVwZyJdWyJ4bWx0dk1hcCJdKTsNCiAgICAgICAgbGV0IHZhbHVlcyA9IG5ldyBBcnJheSgiLSIpOw0KICAgICAgICBsZXQgdGV4dCA9IG5ldyBBcnJheSgiLSIpOw0KICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGZpbGVJRHMubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgICAgIGlmIChmaWxlSURzW2ldICE9ICJ4VGVWZSBEdW1teSIpIHsNCiAgICAgICAgICAgICAgICB2YWx1ZXMucHVzaChnZXRWYWx1ZUZyb21Qcm92aWRlckZpbGUoZmlsZUlEc1tpXSwgInhtbHR2IiwgImZpbGUueHRldmUiKSk7DQogICAgICAgICAgICAgICAgdGV4dC5wdXNoKGdldFZhbHVlRnJvbVByb3ZpZGVyRmlsZShmaWxlSURzW2ldLCAieG1sdHYiLCAibmFtZSIpKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgICAgIHZhbHVlcy5wdXNoKGZpbGVJRHNbaV0pOw0KICAgICAgICAgICAgICAgIHRleHQucHVzaChmaWxlSURzW2ldKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KICAgICAgICBsZXQgc2VsZWN0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiU0VMRUNUIik7DQogICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGV4dC5sZW5ndGg7IGkrKykgew0KICAgICAgICAgICAgdmFyIG9wdGlvbiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIk9QVElPTiIpOw0KICAgICAgICAgICAgb3B0aW9uLnNldEF0dHJpYnV0ZSgidmFsdWUiLCB2YWx1ZXNbaV0pOw0KICAgICAgICAgICAgb3B0aW9uLmlubmVyVGV4dCA9IHRleHRbaV07DQogICAgICAgICAgICBzZWxlY3QuYXBwZW5kQ2hpbGQob3B0aW9uKTsNCiAgICAgICAgfQ0KICAgICAgICBpZiAoc2V0ICE9ICIiKSB7DQogICAgICAgICAgICBzZWxlY3QudmFsdWUgPSBzZXQ7DQogICAgICAgIH0NCiAgICAgICAgcmV0dXJuIHNlbGVjdDsNCiAgICB9DQogICAgLyoqDQogICAgICogQHBhcmFtIHhtbFR2RmlsZSBYTUwgZmlsZSBwYXRoIHRvIGdldCBFUEcgZnJvbS4NCiAgICAgKiBAcGFyYW0gY3VycmVudFhtbFR2SWQgQ3VycmVudCBYTUxUViBJRCB0byBzZXQgaW5pdGlhbCBpbnB1dCB2YWx1ZSB0by4NCiAgICAgKiBAcmV0dXJucyBBcnJheSBvZiwgc2VxdWVudGlhbGx5Og0KICAgICAqIDEpIENvbnRhaW5lciBvZiB0aGUgcGlja2VyLg0KICAgICAqIDIpIElucHV0IGZpZWxkIHRvIHR5cGUgYXQgYW5kIGdldCBjaG9pY2UgZnJvbS4NCiAgICAgKiAzKSBEYXRhbGlzdCBjb250YWluaW5nIGV2ZXJ5IG9wdGlvbi4NCiAgICAgKi8NCiAgICBuZXdYbWxUdklkUGlja2VyKHhtbFR2RmlsZSwgY3VycmVudFhtbFR2SWQpIHsNCiAgICAgICAgY29uc3QgY29udGFpbmVyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7DQogICAgICAgIGNvbnN0IGlucHV0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnaW5wdXQnKTsNCiAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCd0eXBlJywgJ3RleHQnKTsNCiAgICAgICAgLy8gSW5pdGlhbGx5LCBzZXQgdmFsdWUgdG8gJy0nIGlmIGlucHV0IGlzIGVtcHR5DQogICAgICAgIGlucHV0LnZhbHVlID0gKGN1cnJlbnRYbWxUdklkKSA/IGN1cnJlbnRYbWxUdklkIDogJy0nOw0KICAgICAgICAvLyBXaGVuIGlucHV0IGlzIGZvY3VzZWQsIHJlbW92ZSAnLScgZnJvbSBpdA0KICAgICAgICBpbnB1dC5hZGRFdmVudExpc3RlbmVyKCdmb2N1cycsIChldnQpID0+IHsNCiAgICAgICAgICAgIGNvbnN0IHRhcmdldCA9IGV2dC50YXJnZXQ7DQogICAgICAgICAgICB0YXJnZXQudmFsdWUgPSAodGFyZ2V0LnZhbHVlID09PSAnLScpID8gJycgOiB0YXJnZXQudmFsdWU7DQogICAgICAgIH0pOw0KICAgICAgICAvLyBXaGVuIGlucHV0IGxvc2UgZm9jdXMgb3IgdGFrZSBhIHZhbHVlLCBpZiBpdCdzIGVtcHR5LCBzZXQgdmFsdWUgdG8gJy0nDQogICAgICAgIGlucHV0LmFkZEV2ZW50TGlzdGVuZXIoJ2JsdXInLCBzZXRGYWxsYmFja1ZhbHVlKTsNCiAgICAgICAgaW5wdXQuYWRkRXZlbnRMaXN0ZW5lcignY2hhbmdlJywgc2V0RmFsbGJhY2tWYWx1ZSk7DQogICAgICAgIGZ1bmN0aW9uIHNldEZhbGxiYWNrVmFsdWUoZXZ0KSB7DQogICAgICAgICAgICBjb25zdCB0YXJnZXQgPSBldnQudGFyZ2V0Ow0KICAgICAgICAgICAgdGFyZ2V0LnZhbHVlID0gKHRhcmdldC52YWx1ZSkgPyB0YXJnZXQudmFsdWUgOiAnLSc7DQogICAgICAgIH0NCiAgICAgICAgY29udGFpbmVyLmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgY29uc3QgZGF0YWxpc3QgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkYXRhbGlzdCcpOw0KICAgICAgICBjb25zdCBvcHRpb24gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdvcHRpb24nKTsNCiAgICAgICAgb3B0aW9uLnNldEF0dHJpYnV0ZSgndmFsdWUnLCAnLScpOw0KICAgICAgICBvcHRpb24uaW5uZXJUZXh0ID0gJy0nOw0KICAgICAgICBkYXRhbGlzdC5hcHBlbmRDaGlsZChvcHRpb24pOw0KICAgICAgICBjb25zdCBlcGcgPSBTRVJWRVJbJ3hlcGcnXVsneG1sdHZNYXAnXVt4bWxUdkZpbGVdOw0KICAgICAgICBpZiAoZXBnKSB7DQogICAgICAgICAgICBjb25zdCBwcm9ncmFtSWRzID0gZ2V0T3duT2JqUHJvcHMoZXBnKTsNCiAgICAgICAgICAgIHByb2dyYW1JZHMuZm9yRWFjaCgocHJvZ3JhbUlkKSA9PiB7DQogICAgICAgICAgICAgICAgY29uc3QgcHJvZ3JhbSA9IGVwZ1twcm9ncmFtSWRdOw0KICAgICAgICAgICAgICAgIGlmIChwcm9ncmFtLmhhc093blByb3BlcnR5KCdkaXNwbGF5LW5hbWVzJykpIHsNCiAgICAgICAgICAgICAgICAgICAgcHJvZ3JhbVsnZGlzcGxheS1uYW1lcyddLmZvckVhY2goKGRpc3BsYXlOYW1lKSA9PiB7DQogICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBvcHRpb24gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdvcHRpb24nKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIG9wdGlvbi5zZXRBdHRyaWJ1dGUoJ3ZhbHVlJywgcHJvZ3JhbUlkKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIG9wdGlvbi5pbm5lclRleHQgPSBkaXNwbGF5TmFtZVsnVmFsdWUnXTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGRhdGFsaXN0LmFwcGVuZENoaWxkKG9wdGlvbik7DQogICAgICAgICAgICAgICAgICAgIH0pOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICAgICAgY29uc3Qgb3B0aW9uID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnb3B0aW9uJyk7DQogICAgICAgICAgICAgICAgICAgIG9wdGlvbi5zZXRBdHRyaWJ1dGUoJ3ZhbHVlJywgcHJvZ3JhbUlkKTsNCiAgICAgICAgICAgICAgICAgICAgb3B0aW9uLmlubmVyVGV4dCA9ICctJzsNCiAgICAgICAgICAgICAgICAgICAgZGF0YWxpc3QuYXBwZW5kQ2hpbGQob3B0aW9uKTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9KTsNCiAgICAgICAgfQ0KICAgICAgICBjb250YWluZXIuYXBwZW5kQ2hpbGQoZGF0YWxpc3QpOw0KICAgICAgICByZXR1cm4gW2NvbnRhaW5lciwgaW5wdXQsIGRhdGFsaXN0XTsNCiAgICB9DQp9DQpmdW5jdGlvbiBnZXRWYWx1ZUZyb21Qcm92aWRlckZpbGUoZmlsZSwgZmlsZVR5cGUsIGtleSkgew0KICAgIGlmIChmaWxlID09ICJ4VGVWZSBEdW1teSIpIHsNCiAgICAgICAgcmV0dXJuIGZpbGU7DQogICAgfQ0KICAgIGxldCBmaWxlSUQ7DQogICAgbGV0IGluZGljYXRvciA9IGZpbGUuY2hhckF0KDApOw0KICAgIHN3aXRjaCAoaW5kaWNhdG9yKSB7DQogICAgICAgIGNhc2UgIk0iOg0KICAgICAgICAgICAgZmlsZVR5cGUgPSAibTN1IjsNCiAgICAgICAgICAgIGZpbGVJRCA9IGZpbGU7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSAiSCI6DQogICAgICAgICAgICBmaWxlVHlwZSA9ICJoZGhyIjsNCiAgICAgICAgICAgIGZpbGVJRCA9IGZpbGU7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSAiWCI6DQogICAgICAgICAgICBmaWxlVHlwZSA9ICJ4bWx0diI7DQogICAgICAgICAgICBmaWxlSUQgPSBmaWxlLnN1YnN0cmluZygwLCBmaWxlLmxhc3RJbmRleE9mKCcuJykpOw0KICAgICAgICAgICAgYnJlYWs7DQogICAgfQ0KICAgIGlmIChTRVJWRVJbInNldHRpbmdzIl1bImZpbGVzIl1bZmlsZVR5cGVdLmhhc093blByb3BlcnR5KGZpbGVJRCkgPT0gdHJ1ZSkgew0KICAgICAgICB2YXIgZGF0YSA9IFNFUlZFUlsic2V0dGluZ3MiXVsiZmlsZXMiXVtmaWxlVHlwZV1bZmlsZUlEXTsNCiAgICAgICAgcmV0dXJuIGRhdGFba2V5XTsNCiAgICB9DQogICAgcmV0dXJuOw0KfQ0KZnVuY3Rpb24gc2V0WG1sdHZDaGFubmVsKGVwZ01hcElkLCB4bWxUdkZpbGVTZWxlY3QpIHsNCiAgICBjb25zdCB4bWxUdiA9IG5ldyBYTUxUVkZpbGUoKTsNCiAgICBjb25zdCBuZXdYbWxUdkZpbGUgPSB4bWxUdkZpbGVTZWxlY3QudmFsdWU7DQogICAgLy8gUmVtb3ZlIG9sZCBYTUxUViBJRCBzZWxlY3Rpb24gYm94DQogICAgY29uc3QgeG1sVHZJZFBpY2tlclBhcmVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd4bWx0di1pZC1waWNrZXItY29udGFpbmVyJykucGFyZW50RWxlbWVudDsNCiAgICB4bWxUdklkUGlja2VyUGFyZW50LmlubmVySFRNTCA9ICcnOw0KICAgIC8vIENyZWF0ZSBuZXcgWE1MVFYgSUQgc2VsZWN0aW9uIGJveA0KICAgIGNvbnN0IHR2Z0lkID0gU0VSVkVSWyd4ZXBnJ11bJ2VwZ01hcHBpbmcnXVtlcGdNYXBJZF1bJ3R2Zy1pZCddOw0KICAgIGNvbnN0IFt4bWxUdklkQ29udGFpbmVyLCB4bWxUdklkSW5wdXQsIHhtbFR2SWREYXRhbGlzdF0gPSB4bWxUdi5uZXdYbWxUdklkUGlja2VyKG5ld1htbFR2RmlsZSwgdHZnSWQpOw0KICAgIHhtbFR2SWRDb250YWluZXIuc2V0QXR0cmlidXRlKCdpZCcsICd4bWx0di1pZC1waWNrZXItY29udGFpbmVyJyk7DQogICAgeG1sVHZJZElucHV0LnNldEF0dHJpYnV0ZSgnbGlzdCcsICd4bWx0di1pZC1waWNrZXItZGF0YWxpc3QnKTsNCiAgICB4bWxUdklkSW5wdXQuc2V0QXR0cmlidXRlKCduYW1lJywgJ3gtbWFwcGluZycpOyAvLyBTaG91bGQgc3RheSB4LW1hcHBpbmcgYXMgaXQgd2lsbCBiZSB1c2VkIGluIGRvbmVQb3B1cERhdGEgdG8gbWFrZSBhIHNlcnZlciByZXF1ZXN0DQogICAgeG1sVHZJZElucHV0LnNldEF0dHJpYnV0ZSgnaWQnLCAneG1sdHYtaWQtcGlja2VyLWlucHV0Jyk7DQogICAgeG1sVHZJZElucHV0LnNldEF0dHJpYnV0ZSgnb25jaGFuZ2UnLCBgamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCc7IGNoZWNrWG1sdHZDaGFubmVsKCcke2VwZ01hcElkfScsIHRoaXMudmFsdWUsICcke25ld1htbFR2RmlsZX0nKTtgKTsNCiAgICB4bWxUdklkSW5wdXQuY2xhc3NMaXN0LmFkZCgnY2hhbmdlZCcpOw0KICAgIHhtbFR2SWREYXRhbGlzdC5zZXRBdHRyaWJ1dGUoJ2lkJywgJ3htbHR2LWlkLXBpY2tlci1kYXRhbGlzdCcpOw0KICAgIC8vIEFkZCBuZXcgWE1MVFYgSUQgc2VsZWN0aW9uIGJveCB0byBpdCdzIHBhcmVudA0KICAgIHhtbFR2SWRQaWNrZXJQYXJlbnQuYXBwZW5kQ2hpbGQoeG1sVHZJZENvbnRhaW5lcik7DQogICAgY2hlY2tYbWx0dkNoYW5uZWwoZXBnTWFwSWQsIHhtbFR2SWRJbnB1dC52YWx1ZSwgbmV3WG1sVHZGaWxlKTsNCn0NCmZ1bmN0aW9uIGNoZWNrWG1sdHZDaGFubmVsKGVwZ01hcElkLCBuZXdYbWxUdklkLCB4bWxUdkZpbGUpIHsNCiAgICBjb25zdCBjaGFubmVsQWN0aXZlQ2IgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYWN0aXZlJyk7DQogICAgY29uc3QgY2hhbm5lbEFjdGl2ZSA9IG5ld1htbFR2SWQgIT0gJy0nOw0KICAgIGNoYW5uZWxBY3RpdmVDYi5jaGVja2VkID0gY2hhbm5lbEFjdGl2ZTsNCiAgICBjaGFubmVsQWN0aXZlQ2IuY2xhc3NOYW1lID0gJ2NoYW5nZWQnOw0KICAgIGlmICh4bWxUdkZpbGUgIT0gJ3hUZVZlIER1bW15JyAmJiBjaGFubmVsQWN0aXZlID09IHRydWUpIHsNCiAgICAgICAgY2hhbmdlQ2hhbm5lbExvZ28oZXBnTWFwSWQpOw0KICAgICAgICByZXR1cm47DQogICAgfQ0KICAgIGlmICh4bWxUdkZpbGUgPT0gJ3hUZVZlIER1bW15Jykgew0KICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndXBkYXRlLWljb24nKS5jaGVja2VkID0gZmFsc2U7DQogICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd1cGRhdGUtaWNvbicpLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJzsNCiAgICB9DQp9DQpmdW5jdGlvbiBjaGFuZ2VDaGFubmVsTG9nbyhlcGdNYXBJZCkgew0KICAgIGNvbnN0IGNoYW5uZWwgPSBTRVJWRVJbJ3hlcGcnXVsnZXBnTWFwcGluZyddW2VwZ01hcElkXTsNCiAgICBjb25zdCB4bWxUdkZpbGVTZWxlY3QgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncG9wdXAteG1sdHYnKTsNCiAgICBjb25zdCB4bWxUdkZpbGUgPSB4bWxUdkZpbGVTZWxlY3Qub3B0aW9uc1t4bWxUdkZpbGVTZWxlY3Quc2VsZWN0ZWRJbmRleF0udmFsdWU7DQogICAgY29uc3QgeG1sVHZJZElucHV0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3htbHR2LWlkLXBpY2tlci1pbnB1dCcpOw0KICAgIGNvbnN0IG5ld1htbFR2SWQgPSB4bWxUdklkSW5wdXQudmFsdWU7DQogICAgY29uc3QgdXBkYXRlTG9nbyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd1cGRhdGUtaWNvbicpLmNoZWNrZWQ7DQogICAgbGV0IGxvZ287DQogICAgaWYgKHVwZGF0ZUxvZ28gPT0gdHJ1ZSAmJiB4bWxUdkZpbGUgIT0gJ3hUZVZlIER1bW15Jykgew0KICAgICAgICBpZiAoU0VSVkVSWyd4ZXBnJ11bJ3htbHR2TWFwJ11beG1sVHZGaWxlXS5oYXNPd25Qcm9wZXJ0eShuZXdYbWxUdklkKSkgew0KICAgICAgICAgICAgbG9nbyA9IFNFUlZFUlsneGVwZyddWyd4bWx0dk1hcCddW3htbFR2RmlsZV1bbmV3WG1sVHZJZF1bJ2ljb24nXTsNCiAgICAgICAgfQ0KICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgIGxvZ28gPSBjaGFubmVsWyd0dmctbG9nbyddOw0KICAgICAgICB9DQogICAgICAgIHZhciBsb2dvSW5wdXQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY2hhbm5lbC1pY29uJyk7DQogICAgICAgIGxvZ29JbnB1dC52YWx1ZSA9IGxvZ287DQogICAgICAgIGlmIChCVUxLX0VESVQgPT0gZmFsc2UpIHsNCiAgICAgICAgICAgIGxvZ29JbnB1dC5jbGFzc05hbWUgPSAnY2hhbmdlZCc7DQogICAgICAgIH0NCiAgICB9DQp9DQpmdW5jdGlvbiBzYXZlUG9wdXBEYXRhKGRhdGFUeXBlLCBpZCwgcmVtb3ZlLCBvcHRpb24pIHsNCiAgICBpZiAoZGF0YVR5cGUgPT0gIm1hcHBpbmciKSB7DQogICAgICAgIGxldCBkYXRhID0ge307DQogICAgICAgIGxldCBjbWQgPSAic2F2ZUVwZ01hcHBpbmciOw0KICAgICAgICBkYXRhWyJlcGdNYXBwaW5nIl0gPSBTRVJWRVJbInhlcGciXVsiZXBnTWFwcGluZyJdOw0KICAgICAgICBsZXQgc2VydmVyID0gbmV3IFNlcnZlcihjbWQpOw0KICAgICAgICBzZXJ2ZXIucmVxdWVzdChkYXRhKTsNCiAgICAgICAgZGVsZXRlIFVORE9bImVwZ01hcHBpbmciXTsNCiAgICAgICAgcmV0dXJuOw0KICAgIH0NCiAgICBsZXQgZGl2ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInBvcHVwLWN1c3RvbSIpOw0KICAgIGxldCBpbnB1dHMgPSBkaXYuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlRBQkxFIilbMF0uZ2V0RWxlbWVudHNCeVRhZ05hbWUoIklOUFVUIik7DQogICAgbGV0IHNlbGVjdHMgPSBkaXYuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlRBQkxFIilbMF0uZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlNFTEVDVCIpOw0KICAgIGxldCBpbnB1dCA9IHt9Ow0KICAgIGxldCBjb25maXJtTXNnOw0KICAgIGZvciAobGV0IGkgPSAwOyBpIDwgc2VsZWN0cy5sZW5ndGg7IGkrKykgew0KICAgICAgICB2YXIgbmFtZTsNCiAgICAgICAgbmFtZSA9IHNlbGVjdHNbaV0ubmFtZTsNCiAgICAgICAgdmFyIHZhbHVlID0gc2VsZWN0c1tpXS52YWx1ZTsNCiAgICAgICAgc3dpdGNoIChuYW1lKSB7DQogICAgICAgICAgICBjYXNlICJ0dW5lciI6DQogICAgICAgICAgICAgICAgaW5wdXRbbmFtZV0gPSBwYXJzZUludCh2YWx1ZSk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBkZWZhdWx0Og0KICAgICAgICAgICAgICAgIGlucHV0W25hbWVdID0gdmFsdWU7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIH0NCiAgICB9DQogICAgZm9yIChsZXQgaSA9IDA7IGkgPCBpbnB1dHMubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgc3dpdGNoIChpbnB1dHNbaV0udHlwZSkgew0KICAgICAgICAgICAgY2FzZSAiY2hlY2tib3giOg0KICAgICAgICAgICAgICAgIG5hbWUgPSBpbnB1dHNbaV0ubmFtZTsNCiAgICAgICAgICAgICAgICBpbnB1dFtuYW1lXSA9IGlucHV0c1tpXS5jaGVja2VkOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAidGV4dCI6DQogICAgICAgICAgICBjYXNlICJoaWRkZW4iOg0KICAgICAgICAgICAgY2FzZSAicGFzc3dvcmQiOg0KICAgICAgICAgICAgICAgIG5hbWUgPSBpbnB1dHNbaV0ubmFtZTsNCiAgICAgICAgICAgICAgICBzd2l0Y2ggKG5hbWUpIHsNCiAgICAgICAgICAgICAgICAgICAgY2FzZSAidHVuZXIiOg0KICAgICAgICAgICAgICAgICAgICAgICAgaW5wdXRbbmFtZV0gPSBwYXJzZUludChpbnB1dHNbaV0udmFsdWUpOw0KICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICAgICAgICAgICAgICBpbnB1dFtuYW1lXSA9IGlucHV0c1tpXS52YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgfQ0KICAgIH0NCiAgICBsZXQgZGF0YSA9IHt9Ow0KICAgIGxldCBjbWQ7DQogICAgaWYgKHJlbW92ZSA9PSB0cnVlKSB7DQogICAgICAgIGlucHV0WyJkZWxldGUiXSA9IHRydWU7DQogICAgfQ0KICAgIHN3aXRjaCAoZGF0YVR5cGUpIHsNCiAgICAgICAgY2FzZSAidXNlcnMiOg0KICAgICAgICAgICAgY29uZmlybU1zZyA9ICJEZWxldGUgdGhpcyB1c2VyPyI7DQogICAgICAgICAgICBpZiAoaWQgPT0gIi0iKSB7DQogICAgICAgICAgICAgICAgY21kID0gInNhdmVOZXdVc2VyIjsNCiAgICAgICAgICAgICAgICBkYXRhWyJ1c2VyRGF0YSJdID0gaW5wdXQ7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICBjbWQgPSAic2F2ZVVzZXJEYXRhIjsNCiAgICAgICAgICAgICAgICBsZXQgZCA9IHt9Ow0KICAgICAgICAgICAgICAgIGRbaWRdID0gaW5wdXQ7DQogICAgICAgICAgICAgICAgZGF0YVsidXNlckRhdGEiXSA9IGQ7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSAibTN1IjoNCiAgICAgICAgICAgIGNvbmZpcm1Nc2cgPSAiRGVsZXRlIHRoaXMgcGxheWxpc3Q/IjsNCiAgICAgICAgICAgIHN3aXRjaCAob3B0aW9uKSB7DQogICAgICAgICAgICAgICAgLy8gUG9wdXA6IFNhdmUNCiAgICAgICAgICAgICAgICBjYXNlIDA6DQogICAgICAgICAgICAgICAgICAgIGNtZCA9ICJzYXZlRmlsZXNNM1UiOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICAvLyBQb3B1cDogVXBkYXRlDQogICAgICAgICAgICAgICAgY2FzZSAxOg0KICAgICAgICAgICAgICAgICAgICBjbWQgPSAidXBkYXRlRmlsZU0zVSI7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgZGF0YVsiZmlsZXMiXSA9IHt9Ow0KICAgICAgICAgICAgZGF0YVsiZmlsZXMiXVtkYXRhVHlwZV0gPSB7fTsNCiAgICAgICAgICAgIGRhdGFbImZpbGVzIl1bZGF0YVR5cGVdW2lkXSA9IGlucHV0Ow0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGNhc2UgImhkaHIiOg0KICAgICAgICAgICAgY29uZmlybU1zZyA9ICJEZWxldGUgdGhpcyBIREhvbWVSdW4gdHVuZXI/IjsNCiAgICAgICAgICAgIHN3aXRjaCAob3B0aW9uKSB7DQogICAgICAgICAgICAgICAgLy8gUG9wdXA6IFNhdmUNCiAgICAgICAgICAgICAgICBjYXNlIDA6DQogICAgICAgICAgICAgICAgICAgIGNtZCA9ICJzYXZlRmlsZXNIREhSIjsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgLy8gUG9wdXA6IFVwZGF0ZQ0KICAgICAgICAgICAgICAgIGNhc2UgMToNCiAgICAgICAgICAgICAgICAgICAgY21kID0gInVwZGF0ZUZpbGVIREhSIjsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBkYXRhWyJmaWxlcyJdID0ge307DQogICAgICAgICAgICBkYXRhWyJmaWxlcyJdW2RhdGFUeXBlXSA9IHt9Ow0KICAgICAgICAgICAgZGF0YVsiZmlsZXMiXVtkYXRhVHlwZV1baWRdID0gaW5wdXQ7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSAieG1sdHYiOg0KICAgICAgICAgICAgY29uZmlybU1zZyA9ICJEZWxldGUgdGhpcyBYTUxUViBmaWxlPyI7DQogICAgICAgICAgICBzd2l0Y2ggKG9wdGlvbikgew0KICAgICAgICAgICAgICAgIC8vIFBvcHVwOiBTYXZlDQogICAgICAgICAgICAgICAgY2FzZSAwOg0KICAgICAgICAgICAgICAgICAgICBjbWQgPSAic2F2ZUZpbGVzWE1MVFYiOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICAvLyBQb3B1cDogVXBkYXRlDQogICAgICAgICAgICAgICAgY2FzZSAxOg0KICAgICAgICAgICAgICAgICAgICBjbWQgPSAidXBkYXRlRmlsZVhNTFRWIjsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBkYXRhWyJmaWxlcyJdID0ge307DQogICAgICAgICAgICBkYXRhWyJmaWxlcyJdW2RhdGFUeXBlXSA9IHt9Ow0KICAgICAgICAgICAgZGF0YVsiZmlsZXMiXVtkYXRhVHlwZV1baWRdID0gaW5wdXQ7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSAiZmlsdGVyIjoNCiAgICAgICAgICAgIGNvbmZpcm1Nc2cgPSAiRGVsZXRlIHRoaXMgZmlsdGVyPyI7DQogICAgICAgICAgICBjbWQgPSAic2F2ZUZpbHRlciI7DQogICAgICAgICAgICBkYXRhWyJmaWx0ZXIiXSA9IHt9Ow0KICAgICAgICAgICAgZGF0YVsiZmlsdGVyIl1baWRdID0gaW5wdXQ7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgIHJldHVybjsNCiAgICB9DQogICAgaWYgKHJlbW92ZSA9PSB0cnVlKSB7DQogICAgICAgIGlmICghY29uZmlybShjb25maXJtTXNnKSkgew0KICAgICAgICAgICAgc2hvd0VsZW1lbnQoInBvcHVwIiwgZmFsc2UpOw0KICAgICAgICAgICAgcmV0dXJuOw0KICAgICAgICB9DQogICAgfQ0KICAgIGxldCBzZXJ2ZXIgPSBuZXcgU2VydmVyKGNtZCk7DQogICAgc2VydmVyLnJlcXVlc3QoZGF0YSk7DQp9DQpmdW5jdGlvbiBkb25lUG9wdXBEYXRhKGRhdGFUeXBlLCBpZHNTdHIpIHsNCiAgICBsZXQgaWRzID0gaWRzU3RyLnNwbGl0KCcsJyk7DQogICAgbGV0IGRpdiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJwb3B1cC1jdXN0b20iKTsNCiAgICBsZXQgaW5wdXRzID0gZGl2LmdldEVsZW1lbnRzQnlDbGFzc05hbWUoImNoYW5nZWQiKTsNCiAgICBpZHMuZm9yRWFjaChpZCA9PiB7DQogICAgICAgIGxldCBpbnB1dDsNCiAgICAgICAgaW5wdXQgPSBTRVJWRVJbInhlcGciXVsiZXBnTWFwcGluZyJdW2lkXTsNCiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBpbnB1dHMubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgICAgIGxldCBuYW1lOw0KICAgICAgICAgICAgbGV0IHZhbHVlOw0KICAgICAgICAgICAgc3dpdGNoIChpbnB1dHNbaV0udGFnTmFtZSkgew0KICAgICAgICAgICAgICAgIGNhc2UgIklOUFVUIjoNCiAgICAgICAgICAgICAgICAgICAgc3dpdGNoIChpbnB1dHNbaV0udHlwZSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAiY2hlY2tib3giOg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWUgPSBpbnB1dHNbaV0ubmFtZTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IGlucHV0c1tpXS5jaGVja2VkOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlucHV0W25hbWVdID0gdmFsdWU7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgICAgICAgICBjYXNlICJ0ZXh0IjoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lID0gaW5wdXRzW2ldLm5hbWU7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSBpbnB1dHNbaV0udmFsdWU7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5wdXRbbmFtZV0gPSB2YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBjYXNlICJTRUxFQ1QiOg0KICAgICAgICAgICAgICAgICAgICBuYW1lID0gaW5wdXRzW2ldLm5hbWU7DQogICAgICAgICAgICAgICAgICAgIHZhbHVlID0gaW5wdXRzW2ldLnZhbHVlOw0KICAgICAgICAgICAgICAgICAgICBpbnB1dFtuYW1lXSA9IHZhbHVlOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIHN3aXRjaCAobmFtZSkgew0KICAgICAgICAgICAgICAgIGNhc2UgInR2Zy1sb2dvIjoNCiAgICAgICAgICAgICAgICAgICAgLy8oZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpLmNoaWxkTm9kZXNbMl0uZmlyc3RDaGlsZCBhcyBIVE1MRWxlbWVudCkuc2V0QXR0cmlidXRlKCJzcmMiLCB2YWx1ZSkNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAieC1uYW1lIjoNCiAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpLmNoaWxkTm9kZXNbM10uZmlyc3RDaGlsZC5pbm5lckhUTUwgPSB2YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAieC1jYXRlZ29yeSI6DQogICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5jaGlsZE5vZGVzWzNdLmZpcnN0Q2hpbGQuY2xhc3NOYW1lID0gdmFsdWU7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgInVwZGF0ZS1jaGFubmVsLW5hbWUtcmVnZXgiOg0KICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkuY2hpbGROb2Rlc1s0XS5maXJzdENoaWxkLmlubmVySFRNTCA9IHZhbHVlOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBjYXNlICJ4LWdyb3VwLXRpdGxlIjoNCiAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpLmNoaWxkTm9kZXNbNl0uZmlyc3RDaGlsZC5pbm5lckhUTUwgPSB2YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAieC14bWx0di1maWxlIjoNCiAgICAgICAgICAgICAgICAgICAgaWYgKHZhbHVlICE9ICJ4VGVWZSBEdW1teSIgJiYgdmFsdWUgIT0gIi0iKSB7DQogICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IGdldFZhbHVlRnJvbVByb3ZpZGVyRmlsZSh2YWx1ZSwgInhtbHR2IiwgIm5hbWUiKTsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBpZiAodmFsdWUgPT0gIi0iKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBpbnB1dFsieC1hY3RpdmUiXSA9IGZhbHNlOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5jaGlsZE5vZGVzWzddLmZpcnN0Q2hpbGQuaW5uZXJIVE1MID0gdmFsdWU7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgIngtbWFwcGluZyI6DQogICAgICAgICAgICAgICAgICAgIGlmICh2YWx1ZSA9PSAiLSIpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGlucHV0WyJ4LWFjdGl2ZSJdID0gZmFsc2U7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpLmNoaWxkTm9kZXNbOF0uZmlyc3RDaGlsZC5pbm5lckhUTUwgPSB2YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAieC10aW1lc2hpZnQiOg0KICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkuY2hpbGROb2Rlc1s5XS5maXJzdENoaWxkLmlubmVySFRNTCA9IHZhbHVlOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBkZWZhdWx0Og0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgY3JlYXRlU2VhcmNoT2JqKCk7DQogICAgICAgICAgICBzZWFyY2hJbk1hcHBpbmcoKTsNCiAgICAgICAgfQ0KICAgICAgICBpZiAoaW5wdXRbIngtYWN0aXZlIl0gPT0gZmFsc2UpIHsNCiAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5jbGFzc05hbWUgPSAibm90QWN0aXZlRVBHIjsNCiAgICAgICAgfQ0KICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5jbGFzc05hbWUgPSAiYWN0aXZlRVBHIjsNCiAgICAgICAgfQ0KICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkuY2hpbGROb2Rlc1syXS5maXJzdENoaWxkLnNldEF0dHJpYnV0ZSgic3JjIiwgaW5wdXRbInR2Zy1sb2dvIl0pOw0KICAgIH0pOw0KICAgIHNob3dFbGVtZW50KCJwb3B1cCIsIGZhbHNlKTsNCiAgICByZXR1cm47DQp9DQpmdW5jdGlvbiBzaG93UHJldmlldyhlbGVtZW50KSB7DQogICAgbGV0IGRpdiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJteVN0cmVhbXNCb3giKTsNCiAgICBzd2l0Y2ggKGVsZW1lbnQpIHsNCiAgICAgICAgY2FzZSBmYWxzZToNCiAgICAgICAgICAgIGRpdi5jbGFzc05hbWUgPSAibm90VmlzaWJsZSI7DQogICAgICAgICAgICByZXR1cm47DQogICAgfQ0KICAgIGxldCBzdHJlYW1zID0gWyJhY3RpdmVTdHJlYW1zIiwgImluYWN0aXZlU3RyZWFtcyJdOw0KICAgIHN0cmVhbXMuZm9yRWFjaChwcmV2aWV3ID0+IHsNCiAgICAgICAgbGV0IHRhYmxlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQocHJldmlldyk7DQogICAgICAgIHRhYmxlLmlubmVySFRNTCA9ICIiOw0KICAgICAgICBsZXQgb2JqID0gU0VSVkVSWyJkYXRhIl1bIlN0cmVhbVByZXZpZXdVSSJdW3ByZXZpZXddOw0KICAgICAgICBvYmouZm9yRWFjaChjaGFubmVsID0+IHsNCiAgICAgICAgICAgIGxldCB0ciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlRSIik7DQogICAgICAgICAgICBsZXQgdGRLZXkgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgbGV0IHRkVmFsID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgIHRkS2V5LmNsYXNzTmFtZSA9ICJ0ZEtleSI7DQogICAgICAgICAgICB0ZFZhbC5jbGFzc05hbWUgPSAidGRWYWwiOw0KICAgICAgICAgICAgc3dpdGNoIChwcmV2aWV3KSB7DQogICAgICAgICAgICAgICAgY2FzZSAiYWN0aXZlU3RyZWFtcyI6DQogICAgICAgICAgICAgICAgICAgIHRkS2V5LmlubmVyVGV4dCA9ICJDaGFubmVsOiAoKykiOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBjYXNlICJpbmFjdGl2ZVN0cmVhbXMiOg0KICAgICAgICAgICAgICAgICAgICB0ZEtleS5pbm5lclRleHQgPSAiQ2hhbm5lbDogKC0pIjsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICB9DQogICAgICAgICAgICB0ZFZhbC5pbm5lclRleHQgPSBjaGFubmVsOw0KICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQodGRLZXkpOw0KICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQodGRWYWwpOw0KICAgICAgICAgICAgdGFibGUuYXBwZW5kQ2hpbGQodHIpOw0KICAgICAgICB9KTsNCiAgICB9KTsNCiAgICBzaG93RWxlbWVudCgibG9hZGluZyIsIGZhbHNlKTsNCiAgICBkaXYuY2xhc3NOYW1lID0gInZpc2libGUiOw0KICAgIHJldHVybjsNCn0NCg==" + webUI["html/js/menu_ts.js"] = "Y2xhc3MgTWFpbk1lbnUgew0KICAgIGNvbnN0cnVjdG9yKCkgew0KICAgICAgICB0aGlzLkRvY3VtZW50SUQgPSAibWFpbi1tZW51IjsNCiAgICAgICAgdGhpcy5IVE1MVGFnID0gIkxJIjsNCiAgICAgICAgdGhpcy5JbWFnZVBhdGggPSAiaW1nLyI7DQogICAgfQ0KICAgIGNyZWF0ZUlNRyhzcmMpIHsNCiAgICAgICAgbGV0IGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJJTUciKTsNCiAgICAgICAgZWxlbWVudC5zZXRBdHRyaWJ1dGUoInNyYyIsIHRoaXMuSW1hZ2VQYXRoICsgc3JjKTsNCiAgICAgICAgcmV0dXJuIGVsZW1lbnQ7DQogICAgfQ0KICAgIGNyZWF0ZVZhbHVlKHZhbHVlKSB7DQogICAgICAgIGxldCBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiUCIpOw0KICAgICAgICBlbGVtZW50LmlubmVySFRNTCA9IHZhbHVlOw0KICAgICAgICByZXR1cm4gZWxlbWVudDsNCiAgICB9DQp9DQpjbGFzcyBNYWluTWVudUl0ZW0gZXh0ZW5kcyBNYWluTWVudSB7DQogICAgY29uc3RydWN0b3IobWVudUtleSwgdmFsdWUsIGltYWdlLCBoZWFkbGluZSkgew0KICAgICAgICBzdXBlcigpOw0KICAgICAgICB0aGlzLm1lbnVLZXkgPSBtZW51S2V5Ow0KICAgICAgICB0aGlzLnZhbHVlID0gdmFsdWU7DQogICAgICAgIHRoaXMuaW1nU3JjID0gaW1hZ2U7DQogICAgICAgIHRoaXMuaGVhZGxpbmUgPSBoZWFkbGluZTsNCiAgICB9DQogICAgY3JlYXRlSXRlbSgpIHsNCiAgICAgICAgbGV0IGl0ZW0gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJMSSIpOw0KICAgICAgICBpdGVtLnNldEF0dHJpYnV0ZSgib25jbGljayIsICJqYXZhc2NyaXB0OiBvcGVuVGhpc01lbnUodGhpcykiKTsNCiAgICAgICAgaXRlbS5zZXRBdHRyaWJ1dGUoImlkIiwgdGhpcy5pZCk7DQogICAgICAgIGxldCBpbWcgPSB0aGlzLmNyZWF0ZUlNRyh0aGlzLmltZ1NyYyk7DQogICAgICAgIGxldCB2YWx1ZSA9IHRoaXMuY3JlYXRlVmFsdWUodGhpcy52YWx1ZSk7DQogICAgICAgIGl0ZW0uYXBwZW5kQ2hpbGQoaW1nKTsNCiAgICAgICAgaXRlbS5hcHBlbmRDaGlsZCh2YWx1ZSk7DQogICAgICAgIGxldCBkb2MgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCh0aGlzLkRvY3VtZW50SUQpOw0KICAgICAgICBkb2MuYXBwZW5kQ2hpbGQoaXRlbSk7DQogICAgICAgIHN3aXRjaCAodGhpcy5tZW51S2V5KSB7DQogICAgICAgICAgICBjYXNlICJwbGF5bGlzdCI6DQogICAgICAgICAgICAgICAgdGhpcy50YWJsZUhlYWRlciA9IFsie3sucGxheWxpc3QudGFibGUucGxheWxpc3R9fSIsICJ7ey5wbGF5bGlzdC50YWJsZS50dW5lcn19IiwgInt7LnBsYXlsaXN0LnRhYmxlLmxhc3RVcGRhdGV9fSIsICJ7ey5wbGF5bGlzdC50YWJsZS5hdmFpbGFiaWxpdHl9fSAlIiwgInt7LnBsYXlsaXN0LnRhYmxlLnR5cGV9fSIsICJ7ey5wbGF5bGlzdC50YWJsZS5zdHJlYW1zfX0iLCAie3sucGxheWxpc3QudGFibGUuZ3JvdXBUaXRsZX19ICUiLCAie3sucGxheWxpc3QudGFibGUudHZnSUR9fSAlIiwgInt7LnBsYXlsaXN0LnRhYmxlLnVuaXF1ZUlEfX0gJSJdOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAieG1sdHYiOg0KICAgICAgICAgICAgICAgIHRoaXMudGFibGVIZWFkZXIgPSBbInt7LnhtbHR2LnRhYmxlLmd1aWRlfX0iLCAie3sueG1sdHYudGFibGUubGFzdFVwZGF0ZX19IiwgInt7LnhtbHR2LnRhYmxlLmF2YWlsYWJpbGl0eX19ICUiLCAie3sueG1sdHYudGFibGUuY2hhbm5lbHN9fSIsICJ7ey54bWx0di50YWJsZS5wcm9ncmFtc319Il07DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJmaWx0ZXIiOg0KICAgICAgICAgICAgICAgIHRoaXMudGFibGVIZWFkZXIgPSBbInt7LmZpbHRlci50YWJsZS5zdGFydGluZ0NoYW5uZWx9fSIsICJ7ey5maWx0ZXIudGFibGUubmFtZX19IiwgInt7LmZpbHRlci50YWJsZS50eXBlfX0iLCAie3suZmlsdGVyLnRhYmxlLmZpbHRlcn19Il07DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ1c2VycyI6DQogICAgICAgICAgICAgICAgdGhpcy50YWJsZUhlYWRlciA9IFsie3sudXNlcnMudGFibGUudXNlcm5hbWV9fSIsICJ7ey51c2Vycy50YWJsZS5wYXNzd29yZH19IiwgInt7LnVzZXJzLnRhYmxlLndlYn19IiwgInt7LnVzZXJzLnRhYmxlLnBtc319IiwgInt7LnVzZXJzLnRhYmxlLm0zdX19IiwgInt7LnVzZXJzLnRhYmxlLnhtbH19IiwgInt7LnVzZXJzLnRhYmxlLmFwaX19Il07DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJtYXBwaW5nIjoNCiAgICAgICAgICAgICAgICB0aGlzLnRhYmxlSGVhZGVyID0gWyJCVUxLIiwgInt7Lm1hcHBpbmcudGFibGUuY2hOb319IiwgInt7Lm1hcHBpbmcudGFibGUubG9nb319IiwgInt7Lm1hcHBpbmcudGFibGUuY2hhbm5lbE5hbWV9fSIsICJ7ey5tYXBwaW5nLnRhYmxlLnVwZGF0ZUNoYW5uZWxOYW1lUmVnZXh9fSIsICJ7ey5tYXBwaW5nLnRhYmxlLnBsYXlsaXN0fX0iLCAie3subWFwcGluZy50YWJsZS5ncm91cFRpdGxlfX0iLCAie3subWFwcGluZy50YWJsZS54bWx0dkZpbGV9fSIsICJ7ey5tYXBwaW5nLnRhYmxlLnhtbHR2SUR9fSIsICJ7ey5tYXBwaW5nLnRhYmxlLnRpbWVzaGlmdH19Il07DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIH0NCiAgICB9DQp9DQpjbGFzcyBDb250ZW50IHsNCiAgICBjb25zdHJ1Y3RvcigpIHsNCiAgICAgICAgdGhpcy5Eb2N1bWVudElEID0gImNvbnRlbnQiOw0KICAgICAgICB0aGlzLlRhYmxlSUQgPSAiY29udGVudF90YWJsZSI7DQogICAgICAgIHRoaXMuaGVhZGVyQ2xhc3MgPSAiY29udGVudF90YWJsZV9oZWFkZXIiOw0KICAgICAgICB0aGlzLmludGVyYWN0aW9uSUQgPSAiY29udGVudC1pbnRlcmFjdGlvbiI7DQogICAgfQ0KICAgIGNyZWF0ZUhlYWRsaW5lKHZhbHVlKSB7DQogICAgICAgIGxldCBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiSDMiKTsNCiAgICAgICAgZWxlbWVudC5pbm5lckhUTUwgPSB2YWx1ZTsNCiAgICAgICAgcmV0dXJuIGVsZW1lbnQ7DQogICAgfQ0KICAgIGNyZWF0ZUhSKCkgew0KICAgICAgICByZXR1cm4gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiSFIiKTsNCiAgICB9DQogICAgY3JlYXRlSW50ZXJhY3Rpb24oKSB7DQogICAgICAgIGxldCBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiRElWIik7DQogICAgICAgIGVsZW1lbnQuc2V0QXR0cmlidXRlKCJpZCIsIHRoaXMuaW50ZXJhY3Rpb25JRCk7DQogICAgICAgIHJldHVybiBlbGVtZW50Ow0KICAgIH0NCiAgICBjcmVhdGVESVYoKSB7DQogICAgICAgIGxldCBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiRElWIik7DQogICAgICAgIGVsZW1lbnQuaWQgPSB0aGlzLkRpdklEOw0KICAgICAgICByZXR1cm4gZWxlbWVudDsNCiAgICB9DQogICAgY3JlYXRlVEFCTEUoKSB7DQogICAgICAgIGxldCBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEFCTEUiKTsNCiAgICAgICAgZWxlbWVudC5pZCA9IHRoaXMuVGFibGVJRDsNCiAgICAgICAgcmV0dXJuIGVsZW1lbnQ7DQogICAgfQ0KICAgIGNyZWF0ZVRhYmxlUm93KCkgew0KICAgICAgICBsZXQgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlRSIik7DQogICAgICAgIGVsZW1lbnQuY2xhc3NOYW1lID0gdGhpcy5oZWFkZXJDbGFzczsNCiAgICAgICAgcmV0dXJuIGVsZW1lbnQ7DQogICAgfQ0KICAgIGNyZWF0ZVRhYmxlQ29udGVudChtZW51S2V5KSB7DQogICAgICAgIGxldCBkYXRhID0ge307DQogICAgICAgIGxldCByb3dzID0gW107DQogICAgICAgIGxldCBmaWxlVHlwZXMgPSBbXTsNCiAgICAgICAgc3dpdGNoIChtZW51S2V5KSB7DQogICAgICAgICAgICBjYXNlICJwbGF5bGlzdCI6DQogICAgICAgICAgICAgICAgZmlsZVR5cGVzID0gWyJtM3UiLCAiaGRociJdOw0KICAgICAgICAgICAgICAgIGZpbGVUeXBlcy5mb3JFYWNoKGZpbGVUeXBlID0+IHsNCiAgICAgICAgICAgICAgICAgICAgZGF0YSA9IFNFUlZFUlsic2V0dGluZ3MiXVsiZmlsZXMiXVtmaWxlVHlwZV07DQogICAgICAgICAgICAgICAgICAgIHZhciBrZXlzID0gZ2V0T3duT2JqUHJvcHMoZGF0YSk7DQogICAgICAgICAgICAgICAgICAgIGtleXMuZm9yRWFjaChrZXkgPT4gew0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVFIiKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmlkID0ga2V5Ow0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgiJyArIGZpbGVUeXBlICsgJyIsIHRoaXMpJyk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsibmFtZSJdOw0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChTRVJWRVJbInNldHRpbmdzIl1bImJ1ZmZlciJdICE9ICItIikgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bInR1bmVyIl07DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gIi0iOw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bImxhc3QudXBkYXRlIl07DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsicHJvdmlkZXIuYXZhaWxhYmlsaXR5Il07DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsidHlwZSJdLnRvVXBwZXJDYXNlKCk7DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsiY29tcGF0aWJpbGl0eSJdWyJzdHJlYW1zIl07DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsiY29tcGF0aWJpbGl0eSJdWyJncm91cC50aXRsZSJdOw0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bImNvbXBhdGliaWxpdHkiXVsidHZnLmlkIl07DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsiY29tcGF0aWJpbGl0eSJdWyJzdHJlYW0uaWQiXTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHJvd3MucHVzaCh0cik7DQogICAgICAgICAgICAgICAgICAgIH0pOw0KICAgICAgICAgICAgICAgIH0pOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiZmlsdGVyIjoNCiAgICAgICAgICAgICAgICBkZWxldGUgU0VSVkVSWyJzZXR0aW5ncyJdWyJmaWx0ZXIiXVstMV07DQogICAgICAgICAgICAgICAgZGF0YSA9IFNFUlZFUlsic2V0dGluZ3MiXVsiZmlsdGVyIl07DQogICAgICAgICAgICAgICAgdmFyIGtleXMgPSBnZXRPd25PYmpQcm9wcyhkYXRhKTsNCiAgICAgICAgICAgICAgICBrZXlzLmZvckVhY2goa2V5ID0+IHsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVFIiKTsNCiAgICAgICAgICAgICAgICAgICAgdHIuaWQgPSBrZXk7DQogICAgICAgICAgICAgICAgICAgIHRyLnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoIicgKyBkYXRhW2tleV1bInR5cGUiXSArICciLCB0aGlzKScpOw0KICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsic3RhcnRpbmdDaGFubmVsIl07DQogICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bIm5hbWUiXTsNCiAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgc3dpdGNoIChkYXRhW2tleV1bInR5cGUiXSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAiY3VzdG9tLWZpbHRlciI6DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9ICJ7ey5maWx0ZXIuY3VzdG9tfX0iOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAiZ3JvdXAtdGl0bGUiOg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSAie3suZmlsdGVyLmdyb3VwfX0iOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJmaWx0ZXIiXTsNCiAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICByb3dzLnB1c2godHIpOw0KICAgICAgICAgICAgICAgIH0pOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAieG1sdHYiOg0KICAgICAgICAgICAgICAgIGZpbGVUeXBlcyA9IG5ldyBBcnJheSgieG1sdHYiKTsNCiAgICAgICAgICAgICAgICBmaWxlVHlwZXMuZm9yRWFjaChmaWxlVHlwZSA9PiB7DQogICAgICAgICAgICAgICAgICAgIGRhdGEgPSBTRVJWRVJbInNldHRpbmdzIl1bImZpbGVzIl1bZmlsZVR5cGVdOw0KICAgICAgICAgICAgICAgICAgICB2YXIga2V5cyA9IGdldE93bk9ialByb3BzKGRhdGEpOw0KICAgICAgICAgICAgICAgICAgICBrZXlzLmZvckVhY2goa2V5ID0+IHsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciB0ciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlRSIik7DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5pZCA9IGtleTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoIicgKyBmaWxlVHlwZSArICciLCB0aGlzKScpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bIm5hbWUiXTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJsYXN0LnVwZGF0ZSJdOw0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bInByb3ZpZGVyLmF2YWlsYWJpbGl0eSJdOw0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bImNvbXBhdGliaWxpdHkiXVsieG1sdHYuY2hhbm5lbHMiXTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJjb21wYXRpYmlsaXR5Il1bInhtbHR2LnByb2dyYW1zIl07DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICByb3dzLnB1c2godHIpOw0KICAgICAgICAgICAgICAgICAgICB9KTsNCiAgICAgICAgICAgICAgICB9KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInVzZXJzIjoNCiAgICAgICAgICAgICAgICBmaWxlVHlwZXMgPSBuZXcgQXJyYXkoInVzZXJzIik7DQogICAgICAgICAgICAgICAgZmlsZVR5cGVzLmZvckVhY2goZmlsZVR5cGUgPT4gew0KICAgICAgICAgICAgICAgICAgICBkYXRhID0gU0VSVkVSW2ZpbGVUeXBlXTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGtleXMgPSBnZXRPd25PYmpQcm9wcyhkYXRhKTsNCiAgICAgICAgICAgICAgICAgICAga2V5cy5mb3JFYWNoKGtleSA9PiB7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgdHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJUUiIpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuaWQgPSBrZXk7DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCInICsgZmlsZVR5cGUgKyAnIiwgdGhpcyknKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJkYXRhIl1bInVzZXJuYW1lIl07DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9ICIqKioqKioiOw0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChkYXRhW2tleV1bImRhdGEiXVsiYXV0aGVudGljYXRpb24ud2ViIl0gPT0gdHJ1ZSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSAi4pyTIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSAiLSI7DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGRhdGFba2V5XVsiZGF0YSJdWyJhdXRoZW50aWNhdGlvbi5wbXMiXSA9PSB0cnVlKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9ICLinJMiOw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9ICItIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgICAgICBpZiAoZGF0YVtrZXldWyJkYXRhIl1bImF1dGhlbnRpY2F0aW9uLm0zdSJdID09IHRydWUpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gIuKckyI7DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gIi0iOw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChkYXRhW2tleV1bImRhdGEiXVsiYXV0aGVudGljYXRpb24ueG1sIl0gPT0gdHJ1ZSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSAi4pyTIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSAiLSI7DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGRhdGFba2V5XVsiZGF0YSJdWyJhdXRoZW50aWNhdGlvbi5hcGkiXSA9PSB0cnVlKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9ICLinJMiOw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9ICItIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHJvd3MucHVzaCh0cik7DQogICAgICAgICAgICAgICAgICAgIH0pOw0KICAgICAgICAgICAgICAgIH0pOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAibWFwcGluZyI6DQogICAgICAgICAgICAgICAgQlVMS19FRElUID0gZmFsc2U7DQogICAgICAgICAgICAgICAgY3JlYXRlU2VhcmNoT2JqKCk7DQogICAgICAgICAgICAgICAgY2hlY2tVbmRvKCJlcGdNYXBwaW5nIik7DQogICAgICAgICAgICAgICAgZGF0YSA9IFNFUlZFUlsieGVwZyJdWyJlcGdNYXBwaW5nIl07DQogICAgICAgICAgICAgICAgdmFyIGtleXMgPSBnZXRPd25PYmpQcm9wcyhkYXRhKTsNCiAgICAgICAgICAgICAgICBrZXlzLmZvckVhY2goa2V5ID0+IHsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVFIiKTsNCiAgICAgICAgICAgICAgICAgICAgdHIuaWQgPSBrZXk7DQogICAgICAgICAgICAgICAgICAgIHN3aXRjaCAoZGF0YVtrZXldWyJ4LWFjdGl2ZSJdKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBjYXNlIHRydWU6DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgdHIuY2xhc3NOYW1lID0gImFjdGl2ZUVQRyI7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgICAgICAgICBjYXNlIGZhbHNlOg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyLmNsYXNzTmFtZSA9ICJub3RBY3RpdmVFUEciOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIC8vIEJ1bGsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiQlVMSyI7DQogICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBmYWxzZTsNCiAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAvLyBDaGFubmVsIG51bWJlcg0KICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJJTlBVVENIQU5ORUwiOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJ4LWNoYW5uZWxJRCJdOw0KICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgIC8vIExvZ28NCiAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiSU1HIjsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5pbWFnZVVSTCA9IGRhdGFba2V5XVsidHZnLWxvZ28iXTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHRkID0gY2VsbC5jcmVhdGVDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgIHRkLnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoIm1hcHBpbmciLCB0aGlzKScpOw0KICAgICAgICAgICAgICAgICAgICB0ZC5pZCA9IGtleTsNCiAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQodGQpOw0KICAgICAgICAgICAgICAgICAgICAvLyBDaGFubmVsIG5hbWUNCiAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2xhc3NOYW1lID0gZGF0YVtrZXldWyJ4LWNhdGVnb3J5Il07DQogICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bIngtbmFtZSJdOw0KICAgICAgICAgICAgICAgICAgICB2YXIgdGQgPSBjZWxsLmNyZWF0ZUNlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgdGQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgibWFwcGluZyIsIHRoaXMpJyk7DQogICAgICAgICAgICAgICAgICAgIHRkLmlkID0ga2V5Ow0KICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZCh0ZCk7DQogICAgICAgICAgICAgICAgICAgIC8vIFVwZGF0ZSBjaGFubmVsIG5hbWUgcmVnZXgNCiAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bInVwZGF0ZS1jaGFubmVsLW5hbWUtcmVnZXgiXTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHRkID0gY2VsbC5jcmVhdGVDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgIHRkLnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoIm1hcHBpbmciLCB0aGlzKScpOw0KICAgICAgICAgICAgICAgICAgICB0ZC5pZCA9IGtleTsNCiAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQodGQpOw0KICAgICAgICAgICAgICAgICAgICAvLyBQbGF5bGlzdA0KICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGdldFZhbHVlRnJvbVByb3ZpZGVyRmlsZShkYXRhW2tleV1bIl9maWxlLm0zdS5pZCJdLCAibTN1IiwgIm5hbWUiKTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHRkID0gY2VsbC5jcmVhdGVDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgIHRkLnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoIm1hcHBpbmciLCB0aGlzKScpOw0KICAgICAgICAgICAgICAgICAgICB0ZC5pZCA9IGtleTsNCiAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQodGQpOw0KICAgICAgICAgICAgICAgICAgICAvLyBHcm91cCAoZ3JvdXAtdGl0bGUpDQogICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJ4LWdyb3VwLXRpdGxlIl07DQogICAgICAgICAgICAgICAgICAgIHZhciB0ZCA9IGNlbGwuY3JlYXRlQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICB0ZC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJtYXBwaW5nIiwgdGhpcyknKTsNCiAgICAgICAgICAgICAgICAgICAgdGQuaWQgPSBrZXk7DQogICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKHRkKTsNCiAgICAgICAgICAgICAgICAgICAgLy8gWE1MVFYgZmlsZQ0KICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgaWYgKGRhdGFba2V5XVsieC14bWx0di1maWxlIl0gIT0gIi0iKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZ2V0VmFsdWVGcm9tUHJvdmlkZXJGaWxlKGRhdGFba2V5XVsieC14bWx0di1maWxlIl0sICJ4bWx0diIsICJuYW1lIik7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgZWxzZSB7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJ4LXhtbHR2LWZpbGUiXTsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICB2YXIgdGQgPSBjZWxsLmNyZWF0ZUNlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgdGQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgibWFwcGluZyIsIHRoaXMpJyk7DQogICAgICAgICAgICAgICAgICAgIHRkLmlkID0ga2V5Ow0KICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZCh0ZCk7DQogICAgICAgICAgICAgICAgICAgIC8vIFhNTFRWIENoYW5uZWwNCiAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgIHZhciB2YWx1ZSA9IGRhdGFba2V5XVsieC1tYXBwaW5nIl07DQogICAgICAgICAgICAgICAgICAgIGlmICh2YWx1ZS5sZW5ndGggPiAyMCkgew0KICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSBkYXRhW2tleV1bIngtbWFwcGluZyJdLnN1YnN0cmluZygwLCAyMCkgKyAiLi4uIjsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gdmFsdWU7DQogICAgICAgICAgICAgICAgICAgIHZhciB0ZCA9IGNlbGwuY3JlYXRlQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICB0ZC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJtYXBwaW5nIiwgdGhpcyknKTsNCiAgICAgICAgICAgICAgICAgICAgdGQuaWQgPSBrZXk7DQogICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKHRkKTsNCiAgICAgICAgICAgICAgICAgICAgLy8gVGltZVNoaWZ0DQogICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJ4LXRpbWVzaGlmdCJdOw0KICAgICAgICAgICAgICAgICAgICB2YXIgdGQgPSBjZWxsLmNyZWF0ZUNlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgdGQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgibWFwcGluZyIsIHRoaXMpJyk7DQogICAgICAgICAgICAgICAgICAgIHRkLmlkID0ga2V5Ow0KICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZCh0ZCk7DQogICAgICAgICAgICAgICAgICAgIHJvd3MucHVzaCh0cik7DQogICAgICAgICAgICAgICAgfSk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJzZXR0aW5ncyI6DQogICAgICAgICAgICAgICAgYWxlcnQoKTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIH0NCiAgICAgICAgcmV0dXJuIHJvd3M7DQogICAgfQ0KfQ0KY2xhc3MgQ2VsbCB7DQogICAgY3JlYXRlQ2VsbCgpIHsNCiAgICAgICAgbGV0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgaWYgKHRoaXMuY2hpbGQgPT0gdHJ1ZSkgew0KICAgICAgICAgICAgdmFyIGVsZW1lbnQ7DQogICAgICAgICAgICBzd2l0Y2ggKHRoaXMuY2hpbGRUeXBlKSB7DQogICAgICAgICAgICAgICAgY2FzZSAiUCI6DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KHRoaXMuY2hpbGRUeXBlKTsNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC5pbm5lckhUTUwgPSB0aGlzLnZhbHVlOw0KICAgICAgICAgICAgICAgICAgICBlbGVtZW50LmNsYXNzTmFtZSA9IHRoaXMuY2xhc3NOYW1lOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBjYXNlICJJTlBVVCI6DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KHRoaXMuY2hpbGRUeXBlKTsNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC52YWx1ZSA9IHRoaXMudmFsdWU7DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQudHlwZSA9ICJ0ZXh0IjsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAiSU5QVVRDSEFOTkVMIjoNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIklOUFVUIik7DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZzY3JpcHQ6IGNoYW5nZUNoYW5uZWxOdW1iZXIodGhpcykiKTsNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC52YWx1ZSA9IHRoaXMudmFsdWU7DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQudHlwZSA9ICJ0ZXh0IjsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAiQlVMSyI6DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJJTlBVVCIpOw0KICAgICAgICAgICAgICAgICAgICBlbGVtZW50LmNoZWNrZWQgPSB0aGlzLnZhbHVlOw0KICAgICAgICAgICAgICAgICAgICBlbGVtZW50LnR5cGUgPSAiY2hlY2tib3giOw0KICAgICAgICAgICAgICAgICAgICBlbGVtZW50LmNsYXNzTmFtZSA9ICJidWxrIGhpZGVCdWxrIjsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAiQlVMS19IRUFEIjoNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIklOUFVUIik7DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQuY2hlY2tlZCA9IHRoaXMudmFsdWU7DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQudHlwZSA9ICJjaGVja2JveCI7DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQuY2xhc3NOYW1lID0gImJ1bGsgaGlkZUJ1bGsiOw0KICAgICAgICAgICAgICAgICAgICBlbGVtZW50LnNldEF0dHJpYnV0ZSgib25jbGljayIsICJqYXZhc2NyaXB0OiBzZWxlY3RBbGxDaGFubmVscygpIik7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgIklNRyI6DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KHRoaXMuY2hpbGRUeXBlKTsNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC5zZXRBdHRyaWJ1dGUoInNyYyIsIHRoaXMuaW1hZ2VVUkwpOw0KICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5pbWFnZVVSTCAhPSAiIikgew0KICAgICAgICAgICAgICAgICAgICAgICAgZWxlbWVudC5zZXRBdHRyaWJ1dGUoIm9uZXJyb3IiLCAiamF2YXNjcmlwdDogdGhpcy5vbmVycm9yPW51bGw7dGhpcy5zcmM9JyciKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIC8vb25lcnJvcj0idGhpcy5vbmVycm9yPW51bGw7dGhpcy5zcmM9J21pc3NpbmcuZ2lmJzsiDQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIHRkLmFwcGVuZENoaWxkKGVsZW1lbnQpOw0KICAgICAgICB9DQogICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgdGQuaW5uZXJIVE1MID0gdGhpcy52YWx1ZTsNCiAgICAgICAgfQ0KICAgICAgICBpZiAodGhpcy5vbmNsaWNrID09IHRydWUpIHsNCiAgICAgICAgICAgIHRkLnNldEF0dHJpYnV0ZSgib25jbGljayIsIHRoaXMub25jbGlja0Z1bmN0aW9uKTsNCiAgICAgICAgICAgIHRkLmNsYXNzTmFtZSA9ICJwb2ludGVyIjsNCiAgICAgICAgfQ0KICAgICAgICBpZiAodGhpcy50ZENsYXNzTmFtZSAhPSB1bmRlZmluZWQpIHsNCiAgICAgICAgICAgIHRkLmNsYXNzTmFtZSA9IHRoaXMudGRDbGFzc05hbWU7DQogICAgICAgIH0NCiAgICAgICAgcmV0dXJuIHRkOw0KICAgIH0NCn0NCmNsYXNzIFNob3dDb250ZW50IGV4dGVuZHMgQ29udGVudCB7DQogICAgY29uc3RydWN0b3IobWVudUlEKSB7DQogICAgICAgIHN1cGVyKCk7DQogICAgICAgIHRoaXMubWVudUlEID0gbWVudUlEOw0KICAgIH0NCiAgICBjcmVhdGVJbnB1dCh0eXBlLCBuYW1lLCB2YWx1ZSkgew0KICAgICAgICBsZXQgaW5wdXQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJJTlBVVCIpOw0KICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInR5cGUiLCB0eXBlKTsNCiAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJuYW1lIiwgbmFtZSk7DQogICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgidmFsdWUiLCB2YWx1ZSk7DQogICAgICAgIHJldHVybiBpbnB1dDsNCiAgICB9DQogICAgc2hvdygpIHsNCiAgICAgICAgQ09MVU1OX1RPX1NPUlQgPSAtMTsNCiAgICAgICAgLy8gRGVsZXRlIG9sZCBjb250ZW50DQogICAgICAgIGxldCBkb2MgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCh0aGlzLkRvY3VtZW50SUQpOw0KICAgICAgICBkb2MuaW5uZXJIVE1MID0gIiI7DQogICAgICAgIHNob3dQcmV2aWV3KGZhbHNlKTsNCiAgICAgICAgLy8gSGVhZGxpbmUNCiAgICAgICAgbGV0IGhlYWRsaW5lID0gbWVudUl0ZW1zW3RoaXMubWVudUlEXS5oZWFkbGluZTsNCiAgICAgICAgbGV0IG1lbnVLZXkgPSBtZW51SXRlbXNbdGhpcy5tZW51SURdLm1lbnVLZXk7DQogICAgICAgIGxldCBoID0gdGhpcy5jcmVhdGVIZWFkbGluZShoZWFkbGluZSk7DQogICAgICAgIGRvYy5hcHBlbmRDaGlsZChoKTsNCiAgICAgICAgbGV0IGhyID0gdGhpcy5jcmVhdGVIUigpOw0KICAgICAgICBkb2MuYXBwZW5kQ2hpbGQoaHIpOw0KICAgICAgICAvLyBJbnRlcmFjdGlvbg0KICAgICAgICBsZXQgZGl2ID0gdGhpcy5jcmVhdGVJbnRlcmFjdGlvbigpOw0KICAgICAgICBkb2MuYXBwZW5kQ2hpbGQoZGl2KTsNCiAgICAgICAgbGV0IGludGVyYWN0aW9uID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQodGhpcy5pbnRlcmFjdGlvbklEKTsNCiAgICAgICAgc3dpdGNoIChtZW51S2V5KSB7DQogICAgICAgICAgICBjYXNlICJwbGF5bGlzdCI6DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gdGhpcy5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgbWVudUtleSwgInt7LmJ1dHRvbi5uZXd9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgiaWQiLCAiLSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoInBsYXlsaXN0IiknKTsNCiAgICAgICAgICAgICAgICBpbnRlcmFjdGlvbi5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJmaWx0ZXIiOg0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IHRoaXMuY3JlYXRlSW5wdXQoImJ1dHRvbiIsIG1lbnVLZXksICJ7ey5idXR0b24ubmV3fX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoImlkIiwgLTEpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoImZpbHRlciIsIHRoaXMpJyk7DQogICAgICAgICAgICAgICAgaW50ZXJhY3Rpb24uYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAieG1sdHYiOg0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IHRoaXMuY3JlYXRlSW5wdXQoImJ1dHRvbiIsIG1lbnVLZXksICJ7ey5idXR0b24ubmV3fX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoImlkIiwgInhtbHR2Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgieG1sdHYiKScpOw0KICAgICAgICAgICAgICAgIGludGVyYWN0aW9uLmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInVzZXJzIjoNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSB0aGlzLmNyZWF0ZUlucHV0KCJidXR0b24iLCBtZW51S2V5LCAie3suYnV0dG9uLm5ld319Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJpZCIsICJ1c2VycyIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoInVzZXJzIiknKTsNCiAgICAgICAgICAgICAgICBpbnRlcmFjdGlvbi5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJtYXBwaW5nIjoNCiAgICAgICAgICAgICAgICBzaG93RWxlbWVudCgibG9hZGluZyIsIHRydWUpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IHRoaXMuY3JlYXRlSW5wdXQoImJ1dHRvbiIsIG1lbnVLZXksICJ7ey5idXR0b24uc2F2ZX19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoIm1hcHBpbmciLCAiIiwgIiIpJyk7DQogICAgICAgICAgICAgICAgaW50ZXJhY3Rpb24uYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IHRoaXMuY3JlYXRlSW5wdXQoImJ1dHRvbiIsIG1lbnVLZXksICJ7ey5idXR0b24uYnVsa0VkaXR9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBidWxrRWRpdCgpJyk7DQogICAgICAgICAgICAgICAgaW50ZXJhY3Rpb24uYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IHRoaXMuY3JlYXRlSW5wdXQoInNlYXJjaCIsICJzZWFyY2giLCAiIik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJpZCIsICJzZWFyY2hNYXBwaW5nIik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5idXR0b24uc2VhcmNofX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5jbGFzc05hbWUgPSAic2VhcmNoIjsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgJ2phdmFzY3JpcHQ6IHNlYXJjaEluTWFwcGluZygpJyk7DQogICAgICAgICAgICAgICAgaW50ZXJhY3Rpb24uYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAic2V0dGluZ3MiOg0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IHRoaXMuY3JlYXRlSW5wdXQoImJ1dHRvbiIsIG1lbnVLZXksICJ7ey5idXR0b24uc2F2ZX19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IHNhdmVTZXR0aW5ncygpOycpOw0KICAgICAgICAgICAgICAgIGludGVyYWN0aW9uLmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSB0aGlzLmNyZWF0ZUlucHV0KCJidXR0b24iLCBtZW51S2V5LCAie3suYnV0dG9uLmJhY2t1cH19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IGJhY2t1cCgpOycpOw0KICAgICAgICAgICAgICAgIGludGVyYWN0aW9uLmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSB0aGlzLmNyZWF0ZUlucHV0KCJidXR0b24iLCBtZW51S2V5LCAie3suYnV0dG9uLnJlc3RvcmV9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiByZXN0b3JlKCk7Jyk7DQogICAgICAgICAgICAgICAgaW50ZXJhY3Rpb24uYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIHZhciB3cmFwcGVyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiRElWIik7DQogICAgICAgICAgICAgICAgd3JhcHBlci5zZXRBdHRyaWJ1dGUoImlkIiwgImJveC13cmFwcGVyIik7DQogICAgICAgICAgICAgICAgZG9jLmFwcGVuZENoaWxkKHdyYXBwZXIpOw0KICAgICAgICAgICAgICAgIHRoaXMuRGl2SUQgPSAiY29udGVudF9zZXR0aW5ncyI7DQogICAgICAgICAgICAgICAgdmFyIHNldHRpbmdzID0gdGhpcy5jcmVhdGVESVYoKTsNCiAgICAgICAgICAgICAgICB3cmFwcGVyLmFwcGVuZENoaWxkKHNldHRpbmdzKTsNCiAgICAgICAgICAgICAgICBzaG93U2V0dGluZ3MoKTsNCiAgICAgICAgICAgICAgICByZXR1cm47DQogICAgICAgICAgICBjYXNlICJsb2ciOg0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IHRoaXMuY3JlYXRlSW5wdXQoImJ1dHRvbiIsIG1lbnVLZXksICJ7ey5idXR0b24ucmVzZXRMb2dzfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogcmVzZXRMb2dzKCk7Jyk7DQogICAgICAgICAgICAgICAgaW50ZXJhY3Rpb24uYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIHZhciB3cmFwcGVyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiRElWIik7DQogICAgICAgICAgICAgICAgd3JhcHBlci5zZXRBdHRyaWJ1dGUoImlkIiwgImJveC13cmFwcGVyIik7DQogICAgICAgICAgICAgICAgZG9jLmFwcGVuZENoaWxkKHdyYXBwZXIpOw0KICAgICAgICAgICAgICAgIHRoaXMuRGl2SUQgPSAiY29udGVudF9sb2ciOw0KICAgICAgICAgICAgICAgIHZhciBsb2dzID0gdGhpcy5jcmVhdGVESVYoKTsNCiAgICAgICAgICAgICAgICB3cmFwcGVyLmFwcGVuZENoaWxkKGxvZ3MpOw0KICAgICAgICAgICAgICAgIHNob3dMb2dzKHRydWUpOw0KICAgICAgICAgICAgICAgIHJldHVybjsNCiAgICAgICAgICAgIGNhc2UgImxvZ291dCI6DQogICAgICAgICAgICAgICAgbG9jYXRpb24ucmVsb2FkKCk7DQogICAgICAgICAgICAgICAgZG9jdW1lbnQuY29va2llID0gIlRva2VuPSA7IGV4cGlyZXMgPSBUaHUsIDAxIEphbiAxOTcwIDAwOjAwOjAwIEdNVCI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBkZWZhdWx0Og0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICB9DQogICAgICAgIC8vIENyZWF0ZSB0YWJsZSAoaWYgbmVlZGVkKQ0KICAgICAgICB2YXIgdGFibGVIZWFkZXIgPSBtZW51SXRlbXNbdGhpcy5tZW51SURdLnRhYmxlSGVhZGVyOw0KICAgICAgICBpZiAodGFibGVIZWFkZXIubGVuZ3RoID4gMCkgew0KICAgICAgICAgICAgdmFyIHdyYXBwZXIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJESVYiKTsNCiAgICAgICAgICAgIGRvYy5hcHBlbmRDaGlsZCh3cmFwcGVyKTsNCiAgICAgICAgICAgIHdyYXBwZXIuc2V0QXR0cmlidXRlKCJpZCIsICJib3gtd3JhcHBlciIpOw0KICAgICAgICAgICAgdmFyIHRhYmxlID0gdGhpcy5jcmVhdGVUQUJMRSgpOw0KICAgICAgICAgICAgd3JhcHBlci5hcHBlbmRDaGlsZCh0YWJsZSk7DQogICAgICAgICAgICB2YXIgaGVhZGVyID0gdGhpcy5jcmVhdGVUYWJsZVJvdygpOw0KICAgICAgICAgICAgdGFibGUuYXBwZW5kQ2hpbGQoaGVhZGVyKTsNCiAgICAgICAgICAgIC8vIFRhYmxlIGhlYWRlcg0KICAgICAgICAgICAgdGFibGVIZWFkZXIuZm9yRWFjaChlbGVtZW50ID0+IHsNCiAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGVsZW1lbnQ7DQogICAgICAgICAgICAgICAgaWYgKGVsZW1lbnQgPT0gIkJVTEsiKSB7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIkJVTEtfSEVBRCI7DQogICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBmYWxzZTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgaWYgKG1lbnVLZXkgPT0gIm1hcHBpbmciKSB7DQogICAgICAgICAgICAgICAgICAgIGlmIChlbGVtZW50ID09ICJ7ey5tYXBwaW5nLnRhYmxlLmNoTm99fSIpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwub25jbGljayA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLm9uY2xpY2tGdW5jdGlvbiA9ICJqYXZhc2NyaXB0OiBzb3J0VGFibGUoMSk7IjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudGRDbGFzc05hbWUgPSAic29ydFRoaXMiOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIGlmIChlbGVtZW50ID09ICJ7ey5tYXBwaW5nLnRhYmxlLmNoYW5uZWxOYW1lfX0iKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLm9uY2xpY2sgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5vbmNsaWNrRnVuY3Rpb24gPSAiamF2YXNjcmlwdDogc29ydFRhYmxlKDMpOyI7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgaWYgKGVsZW1lbnQgPT0gInt7Lm1hcHBpbmcudGFibGUudXBkYXRlQ2hhbm5lbE5hbWVSZWdleH19Iikgew0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5vbmNsaWNrID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwub25jbGlja0Z1bmN0aW9uID0gImphdmFzY3JpcHQ6IHNvcnRUYWJsZSg0KTsiOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIGlmIChlbGVtZW50ID09ICJ7ey5tYXBwaW5nLnRhYmxlLnBsYXlsaXN0fX0iKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLm9uY2xpY2sgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5vbmNsaWNrRnVuY3Rpb24gPSAiamF2YXNjcmlwdDogc29ydFRhYmxlKDUpOyI7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgaWYgKGVsZW1lbnQgPT0gInt7Lm1hcHBpbmcudGFibGUuZ3JvdXBUaXRsZX19Iikgew0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5vbmNsaWNrID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwub25jbGlja0Z1bmN0aW9uID0gImphdmFzY3JpcHQ6IHNvcnRUYWJsZSg2KTsiOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIGlmIChlbGVtZW50ID09ICJ7ey5tYXBwaW5nLnRhYmxlLnRpbWVzaGlmdH19Iikgew0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5vbmNsaWNrID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwub25jbGlja0Z1bmN0aW9uID0gImphdmFzY3JpcHQ6IHNvcnRUYWJsZSg5KTsiOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIGlmIChtZW51S2V5ID09ICJmaWx0ZXIiKSB7DQogICAgICAgICAgICAgICAgICAgIGlmIChlbGVtZW50ID09ICJ7ey5maWx0ZXIudGFibGUuc3RhcnRpbmdDaGFubmVsfX0iKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLm9uY2xpY2sgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5vbmNsaWNrRnVuY3Rpb24gPSAiamF2YXNjcmlwdDogc29ydFRhYmxlKDApOyI7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnRkQ2xhc3NOYW1lID0gInNvcnRUaGlzIjsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBpZiAoZWxlbWVudCA9PSAie3suZmlsdGVyLnRhYmxlLm5hbWV9fSIpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwub25jbGljayA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLm9uY2xpY2tGdW5jdGlvbiA9ICJqYXZhc2NyaXB0OiBzb3J0VGFibGUoMSk7IjsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBpZiAoZWxlbWVudCA9PSAie3suZmlsdGVyLnRhYmxlLnR5cGV9fSIpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwub25jbGljayA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLm9uY2xpY2tGdW5jdGlvbiA9ICJqYXZhc2NyaXB0OiBzb3J0VGFibGUoMik7IjsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBpZiAoZWxlbWVudCA9PSAie3suZmlsdGVyLnRhYmxlLmZpbHRlcn19Iikgew0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5vbmNsaWNrID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwub25jbGlja0Z1bmN0aW9uID0gImphdmFzY3JpcHQ6IHNvcnRUYWJsZSgzKTsiOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIGhlYWRlci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICB9KTsNCiAgICAgICAgICAgIHRhYmxlLmFwcGVuZENoaWxkKGhlYWRlcik7DQogICAgICAgICAgICAvLyBDb250ZW50IG9mIHRoZSB0YWJsZQ0KICAgICAgICAgICAgdmFyIHJvd3MgPSB0aGlzLmNyZWF0ZVRhYmxlQ29udGVudChtZW51S2V5KTsNCiAgICAgICAgICAgIHJvd3MuZm9yRWFjaCh0ciA9PiB7DQogICAgICAgICAgICAgICAgdGFibGUuYXBwZW5kQ2hpbGQodHIpOw0KICAgICAgICAgICAgfSk7DQogICAgICAgIH0NCiAgICAgICAgc3dpdGNoIChtZW51S2V5KSB7DQogICAgICAgICAgICBjYXNlICJtYXBwaW5nIjoNCiAgICAgICAgICAgICAgICBzb3J0VGFibGUoMSk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJmaWx0ZXIiOg0KICAgICAgICAgICAgICAgIHNob3dQcmV2aWV3KHRydWUpOw0KICAgICAgICAgICAgICAgIHNvcnRUYWJsZSgwKTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICAgICAgQ09MVU1OX1RPX1NPUlQgPSAtMTsNCiAgICAgICAgICAgICAgICBzb3J0VGFibGUoMCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIH0NCiAgICAgICAgc2hvd0VsZW1lbnQoImxvYWRpbmciLCBmYWxzZSk7DQogICAgfQ0KfQ0KZnVuY3Rpb24gUGFnZVJlYWR5KCkgew0KICAgIGxldCBzZXJ2ZXIgPSBuZXcgU2VydmVyKCJnZXRTZXJ2ZXJDb25maWciKTsNCiAgICBzZXJ2ZXIucmVxdWVzdCh7fSk7DQogICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoInJlc2l6ZSIsIGZ1bmN0aW9uICgpIHsNCiAgICAgICAgY2FsY3VsYXRlV3JhcHBlckhlaWdodCgpOw0KICAgIH0sIHRydWUpOw0KICAgIHNldEludGVydmFsKGZ1bmN0aW9uICgpIHsNCiAgICAgICAgdXBkYXRlTG9nKCk7DQogICAgfSwgMTAwMDApOw0KICAgIHJldHVybjsNCn0NCmZ1bmN0aW9uIGNyZWF0ZUxheW91dCgpIHsNCiAgICAvLyBDbGllbnQgSW5mbw0KICAgIGxldCBvYmogPSBTRVJWRVJbImNsaWVudEluZm8iXTsNCiAgICBsZXQga2V5cyA9IGdldE93bk9ialByb3BzKG9iaik7DQogICAgZm9yICh2YXIgaSA9IDA7IGkgPCBrZXlzLmxlbmd0aDsgaSsrKSB7DQogICAgICAgIGlmIChkb2N1bWVudC5nZXRFbGVtZW50QnlJZChrZXlzW2ldKSkgew0KICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoa2V5c1tpXSkuaW5uZXJIVE1MID0gb2JqW2tleXNbaV1dOw0KICAgICAgICB9DQogICAgfQ0KICAgIGlmICghZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm1haW4tbWVudSIpKSB7DQogICAgICAgIHJldHVybjsNCiAgICB9DQogICAgLy8gQ3JlYXRlIG1lbnUNCiAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibWFpbi1tZW51IikuaW5uZXJIVE1MID0gIiI7DQogICAgZm9yIChsZXQgaSA9IDA7IGkgPCBtZW51SXRlbXMubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgbWVudUl0ZW1zW2ldLmlkID0gaTsNCiAgICAgICAgc3dpdGNoIChtZW51SXRlbXNbaV1bIm1lbnVLZXkiXSkgew0KICAgICAgICAgICAgY2FzZSAidXNlcnMiOg0KICAgICAgICAgICAgY2FzZSAibG9nb3V0IjoNCiAgICAgICAgICAgICAgICBpZiAoU0VSVkVSWyJzZXR0aW5ncyJdWyJhdXRoZW50aWNhdGlvbi53ZWIiXSA9PSB0cnVlKSB7DQogICAgICAgICAgICAgICAgICAgIG1lbnVJdGVtc1tpXS5jcmVhdGVJdGVtKCk7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAibWFwcGluZyI6DQogICAgICAgICAgICBjYXNlICJ4bWx0diI6DQogICAgICAgICAgICAgICAgaWYgKFNFUlZFUlsiY2xpZW50SW5mbyJdWyJlcGdTb3VyY2UiXSA9PSAiWEVQRyIpIHsNCiAgICAgICAgICAgICAgICAgICAgbWVudUl0ZW1zW2ldLmNyZWF0ZUl0ZW0oKTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBkZWZhdWx0Og0KICAgICAgICAgICAgICAgIG1lbnVJdGVtc1tpXS5jcmVhdGVJdGVtKCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIH0NCiAgICB9DQogICAgcmV0dXJuOw0KfQ0KZnVuY3Rpb24gb3BlblRoaXNNZW51KGVsZW1lbnQpIHsNCiAgICBsZXQgaWQgPSBlbGVtZW50LmlkOw0KICAgIGxldCBjb250ZW50ID0gbmV3IFNob3dDb250ZW50KGlkKTsNCiAgICBjb250ZW50LnNob3coKTsNCiAgICBjYWxjdWxhdGVXcmFwcGVySGVpZ2h0KCk7DQogICAgcmV0dXJuOw0KfQ0KY2xhc3MgUG9wdXBXaW5kb3cgew0KICAgIGNvbnN0cnVjdG9yKCkgew0KICAgICAgICB0aGlzLkRvY3VtZW50SUQgPSAicG9wdXAtY3VzdG9tIjsNCiAgICAgICAgdGhpcy5JbnRlcmFjdGlvbklEID0gImludGVyYWN0aW9uIjsNCiAgICAgICAgdGhpcy5kb2MgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCh0aGlzLkRvY3VtZW50SUQpOw0KICAgIH0NCiAgICBjcmVhdGVUaXRsZSh0aXRsZSkgew0KICAgICAgICBsZXQgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICB0ZC5jbGFzc05hbWUgPSAibGVmdCI7DQogICAgICAgIHRkLmlubmVySFRNTCA9IHRpdGxlICsgIjoiOw0KICAgICAgICByZXR1cm4gdGQ7DQogICAgfQ0KICAgIGNyZWF0ZUNvbnRlbnQoZWxlbWVudCkgew0KICAgICAgICBsZXQgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICB0ZC5hcHBlbmRDaGlsZChlbGVtZW50KTsNCiAgICAgICAgcmV0dXJuIHRkOw0KICAgIH0NCiAgICBjcmVhdGVJbnRlcmFjdGlvbigpIHsNCiAgICAgICAgbGV0IGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOw0KICAgICAgICBkaXYuc2V0QXR0cmlidXRlKCJpZCIsICJwb3B1cC1pbnRlcmFjdGlvbiIpOw0KICAgICAgICBkaXYuY2xhc3NOYW1lID0gImludGVyYWN0aW9uIjsNCiAgICAgICAgdGhpcy5kb2MuYXBwZW5kQ2hpbGQoZGl2KTsNCiAgICB9DQp9DQpjbGFzcyBQb3B1cENvbnRlbnQgZXh0ZW5kcyBQb3B1cFdpbmRvdyB7DQogICAgY29uc3RydWN0b3IoKSB7DQogICAgICAgIHN1cGVyKC4uLmFyZ3VtZW50cyk7DQogICAgICAgIHRoaXMudGFibGUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJUQUJMRSIpOw0KICAgIH0NCiAgICBjcmVhdGVIZWFkbGluZShoZWFkbGluZSkgew0KICAgICAgICB0aGlzLmRvYy5pbm5lckhUTUwgPSAiIjsNCiAgICAgICAgdmFyIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJIMyIpOw0KICAgICAgICBlbGVtZW50LmlubmVySFRNTCA9IGhlYWRsaW5lLnRvVXBwZXJDYXNlKCk7DQogICAgICAgIHRoaXMuZG9jLmFwcGVuZENoaWxkKGVsZW1lbnQpOw0KICAgICAgICAvLyBDcmVhdGUgdGFibGUNCiAgICAgICAgdGhpcy50YWJsZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlRBQkxFIik7DQogICAgICAgIHRoaXMuZG9jLmFwcGVuZENoaWxkKHRoaXMudGFibGUpOw0KICAgIH0NCiAgICBhcHBlbmRSb3codGl0bGUsIGVsZW1lbnQpIHsNCiAgICAgICAgbGV0IHRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVFIiKTsNCiAgICAgICAgLy8gVGl0bGUNCiAgICAgICAgaWYgKHRpdGxlLmxlbmd0aCAhPSAwKSB7DQogICAgICAgICAgICB0ci5hcHBlbmRDaGlsZCh0aGlzLmNyZWF0ZVRpdGxlKHRpdGxlKSk7DQogICAgICAgIH0NCiAgICAgICAgLy8gQ29udGVudA0KICAgICAgICB0ci5hcHBlbmRDaGlsZCh0aGlzLmNyZWF0ZUNvbnRlbnQoZWxlbWVudCkpOw0KICAgICAgICB0aGlzLnRhYmxlLmFwcGVuZENoaWxkKHRyKTsNCiAgICB9DQogICAgY3JlYXRlSW5wdXQodHlwZSwgbmFtZSwgdmFsdWUpIHsNCiAgICAgICAgbGV0IGlucHV0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiSU5QVVQiKTsNCiAgICAgICAgaWYgKHZhbHVlID09IHVuZGVmaW5lZCkgew0KICAgICAgICAgICAgdmFsdWUgPSAiIjsNCiAgICAgICAgfQ0KICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInR5cGUiLCB0eXBlKTsNCiAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJuYW1lIiwgbmFtZSk7DQogICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgidmFsdWUiLCB2YWx1ZSk7DQogICAgICAgIHJldHVybiBpbnB1dDsNCiAgICB9DQogICAgY3JlYXRlQ2hlY2tib3gobmFtZSkgew0KICAgICAgICBsZXQgaW5wdXQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJJTlBVVCIpOw0KICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInR5cGUiLCAiY2hlY2tib3giKTsNCiAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJuYW1lIiwgbmFtZSk7DQogICAgICAgIHJldHVybiBpbnB1dDsNCiAgICB9DQogICAgLy8gQ3JlYXRlcyBhIHNlbGVjdGlvbiBvZiBtdWx0aXBsZSBvcHRpb25zIHZhbHVlcyB3aXRoIHRleHQgZGVzY3JpcHRpb25zDQogICAgY3JlYXRlU2VsZWN0KHRleHQsIHZhbHVlcywgc2V0LCBkYktleSkgew0KICAgICAgICBsZXQgc2VsZWN0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiU0VMRUNUIik7DQogICAgICAgIHNlbGVjdC5zZXRBdHRyaWJ1dGUoIm5hbWUiLCBkYktleSk7DQogICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGV4dC5sZW5ndGg7IGkrKykgew0KICAgICAgICAgICAgbGV0IG9wdGlvbiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIk9QVElPTiIpOw0KICAgICAgICAgICAgb3B0aW9uLnNldEF0dHJpYnV0ZSgidmFsdWUiLCB2YWx1ZXNbaV0pOw0KICAgICAgICAgICAgb3B0aW9uLmlubmVyVGV4dCA9IHRleHRbaV07DQogICAgICAgICAgICBzZWxlY3QuYXBwZW5kQ2hpbGQob3B0aW9uKTsNCiAgICAgICAgfQ0KICAgICAgICBpZiAoc2V0ICE9ICIiKSB7DQogICAgICAgICAgICBzZWxlY3QudmFsdWUgPSBzZXQ7DQogICAgICAgIH0NCiAgICAgICAgaWYgKHNldCA9PSB1bmRlZmluZWQpIHsNCiAgICAgICAgICAgIHNlbGVjdC52YWx1ZSA9IHZhbHVlc1swXTsNCiAgICAgICAgfQ0KICAgICAgICByZXR1cm4gc2VsZWN0Ow0KICAgIH0NCiAgICBzZWxlY3RPcHRpb24oc2VsZWN0LCB2YWx1ZSkgew0KICAgICAgICAvL3NlbGVjdC5zZWxlY3RlZE9wdGlvbnMgPSB2YWx1ZQ0KICAgICAgICBsZXQgcyA9IHNlbGVjdDsNCiAgICAgICAgcy5vcHRpb25zW3Muc2VsZWN0ZWRJbmRleF0udmFsdWUgPSB2YWx1ZTsNCiAgICAgICAgcmV0dXJuIHNlbGVjdDsNCiAgICB9DQogICAgZGVzY3JpcHRpb24odmFsdWUpIHsNCiAgICAgICAgbGV0IHRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVFIiKTsNCiAgICAgICAgbGV0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgbGV0IHNwYW4gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJQUkUiKTsNCiAgICAgICAgc3Bhbi5pbm5lckhUTUwgPSB2YWx1ZTsNCiAgICAgICAgdHIuYXBwZW5kQ2hpbGQodGQpOw0KICAgICAgICB0ci5hcHBlbmRDaGlsZCh0aGlzLmNyZWF0ZUNvbnRlbnQoc3BhbikpOw0KICAgICAgICB0aGlzLnRhYmxlLmFwcGVuZENoaWxkKHRyKTsNCiAgICB9DQogICAgLy8gSW50ZXJhY3Rpb24NCiAgICBhZGRJbnRlcmFjdGlvbihlbGVtZW50KSB7DQogICAgICAgIGxldCBpbnRlcmFjdGlvbiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJwb3B1cC1pbnRlcmFjdGlvbiIpOw0KICAgICAgICBpbnRlcmFjdGlvbi5hcHBlbmRDaGlsZChlbGVtZW50KTsNCiAgICB9DQp9DQpmdW5jdGlvbiBvcGVuUG9wVXAoZGF0YVR5cGUsIGVsZW1lbnQpIHsNCiAgICBsZXQgZGF0YSA9IHt9Ow0KICAgIGxldCBpZDsNCiAgICBzd2l0Y2ggKGVsZW1lbnQpIHsNCiAgICAgICAgY2FzZSB1bmRlZmluZWQ6DQogICAgICAgICAgICBzd2l0Y2ggKGRhdGFUeXBlKSB7DQogICAgICAgICAgICAgICAgY2FzZSAiZ3JvdXAtdGl0bGUiOg0KICAgICAgICAgICAgICAgICAgICBpZiAoaWQgPT0gdW5kZWZpbmVkKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBpZCA9IC0xOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIGRhdGEgPSBnZXRMb2NhbERhdGEoImZpbHRlciIsIGlkKTsNCiAgICAgICAgICAgICAgICAgICAgZGF0YVsidHlwZSJdID0gImdyb3VwLXRpdGxlIjsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAiY3VzdG9tLWZpbHRlciI6DQogICAgICAgICAgICAgICAgICAgIGlmIChpZCA9PSB1bmRlZmluZWQpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGlkID0gLTE7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgZGF0YSA9IGdldExvY2FsRGF0YSgiZmlsdGVyIiwgaWQpOw0KICAgICAgICAgICAgICAgICAgICBkYXRhWyJ0eXBlIl0gPSAiY3VzdG9tLWZpbHRlciI7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICAgICAgICAgIGRhdGFbImlkLnByb3ZpZGVyIl0gPSAiLSI7DQogICAgICAgICAgICAgICAgICAgIGRhdGFbInR5cGUiXSA9IGRhdGFUeXBlOw0KICAgICAgICAgICAgICAgICAgICBpZCA9ICItIjsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgIGlkID0gZWxlbWVudC5pZDsNCiAgICAgICAgICAgIGRhdGEgPSBnZXRMb2NhbERhdGEoZGF0YVR5cGUsIGlkKTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgIH0NCiAgICBsZXQgY29udGVudCA9IG5ldyBQb3B1cENvbnRlbnQoKTsNCiAgICBzd2l0Y2ggKGRhdGFUeXBlKSB7DQogICAgICAgIGNhc2UgInBsYXlsaXN0IjoNCiAgICAgICAgICAgIGNvbnRlbnQuY3JlYXRlSGVhZGxpbmUoInt7LnBsYXlsaXN0LnBsYXlsaXN0VHlwZS50aXRsZX19Iik7DQogICAgICAgICAgICAvLyBUeXBlDQogICAgICAgICAgICB2YXIgdGV4dCA9IFsiTTNVIiwgIkhESG9tZVJ1biJdOw0KICAgICAgICAgICAgdmFyIHZhbHVlcyA9IFsiamF2YXNjcmlwdDogb3BlblBvcFVwKCdtM3UnKSIsICJqYXZhc2NyaXB0OiBvcGVuUG9wVXAoJ2hkaHInKSJdOw0KICAgICAgICAgICAgdmFyIHNlbGVjdCA9IGNvbnRlbnQuY3JlYXRlU2VsZWN0KHRleHQsIHZhbHVlcywgIiIsICJ0eXBlIik7DQogICAgICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJpZCIsICJ0eXBlIik7DQogICAgICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICdqYXZhc2NyaXB0OiBjaGFuZ2VCdXR0b25BY3Rpb24odGhpcywgIm5leHQiLCAib25jbGljayIpJyk7IC8vIGNoYW5nZUJ1dHRvbkFjdGlvbg0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnBsYXlsaXN0LnR5cGUudGl0bGV9fSIsIHNlbGVjdCk7DQogICAgICAgICAgICAvLyBJbnRlcmFjdGlvbg0KICAgICAgICAgICAgY29udGVudC5jcmVhdGVJbnRlcmFjdGlvbigpOw0KICAgICAgICAgICAgLy8gQWJvcnQNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJjYW5jZWwiLCAie3suYnV0dG9uLmNhbmNlbH19Iik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogc2hvd0VsZW1lbnQoInBvcHVwIiwgZmFsc2UpOycpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICAvLyBOZXh0DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAibmV4dCIsICJ7ey5idXR0b24ubmV4dH19Iik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJtM3UiKScpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJpZCIsICduZXh0Jyk7DQogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJtM3UiOg0KICAgICAgICAgICAgY29udGVudC5jcmVhdGVIZWFkbGluZShkYXRhVHlwZSk7DQogICAgICAgICAgICAvLyBOYW1lDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAibmFtZSI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3sucGxheWxpc3QubmFtZS5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sucGxheWxpc3QubmFtZS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgLy8gRGVzY3JpcHRpb24NCiAgICAgICAgICAgIHZhciBkYktleSA9ICJkZXNjcmlwdGlvbiI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3sucGxheWxpc3QuZGVzY3JpcHRpb24ucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnBsYXlsaXN0LmRlc2NyaXB0aW9uLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBVUkwNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJmaWxlLnNvdXJjZSI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3sucGxheWxpc3QuZmlsZU0zVS5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sucGxheWxpc3QuZmlsZU0zVS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgLy8gVHVuZXINCiAgICAgICAgICAgIGlmIChTRVJWRVJbInNldHRpbmdzIl1bImJ1ZmZlciJdICE9ICItIikgew0KICAgICAgICAgICAgICAgIHZhciB0ZXh0ID0gW107DQogICAgICAgICAgICAgICAgdmFyIHZhbHVlcyA9IFtdOw0KICAgICAgICAgICAgICAgIGZvciAodmFyIGkgPSAxOyBpIDw9IDEwMDsgaSsrKSB7DQogICAgICAgICAgICAgICAgICAgIHRleHQucHVzaChpLnRvU3RyaW5nKCkpOw0KICAgICAgICAgICAgICAgICAgICB2YWx1ZXMucHVzaChpLnRvU3RyaW5nKCkpOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB2YXIgZGJLZXkgPSAidHVuZXIiOw0KICAgICAgICAgICAgICAgIHZhciBzZWxlY3QgPSBjb250ZW50LmNyZWF0ZVNlbGVjdCh0ZXh0LCB2YWx1ZXMsIGRhdGFbZGJLZXldLCBkYktleSk7DQogICAgICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25mb2N1cyIsICJqYXZhc2NyaXB0OiByZXR1cm47Iik7DQogICAgICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnBsYXlsaXN0LnR1bmVyLnRpdGxlfX0iLCBzZWxlY3QpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgZWxzZSB7DQogICAgICAgICAgICAgICAgdmFyIGRiS2V5ID0gInR1bmVyIjsNCiAgICAgICAgICAgICAgICBpZiAoZGF0YVtkYktleV0gPT0gdW5kZWZpbmVkKSB7DQogICAgICAgICAgICAgICAgICAgIGRhdGFbZGJLZXldID0gMTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJyZWFkb25seSIsICJ0cnVlIik7DQogICAgICAgICAgICAgICAgaW5wdXQuY2xhc3NOYW1lID0gIm5vdEF2YWlsYWJsZSI7DQogICAgICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnBsYXlsaXN0LnR1bmVyLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBjb250ZW50LmRlc2NyaXB0aW9uKCJ7ey5wbGF5bGlzdC50dW5lci5kZXNjcmlwdGlvbn19Iik7DQogICAgICAgICAgICAvLyBJbnRlcmF0aW9uDQogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUludGVyYWN0aW9uKCk7DQogICAgICAgICAgICAvLyBEZWxldGUNCiAgICAgICAgICAgIGlmIChkYXRhWyJpZC5wcm92aWRlciJdICE9ICItIikgew0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJkZWxldGUiLCAie3suYnV0dG9uLmRlbGV0ZX19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuY2xhc3NOYW1lID0gImRlbGV0ZSI7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoIm0zdSIsICInICsgaWQgKyAnIiwgdHJ1ZSwgMCknKTsNCiAgICAgICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJiYWNrIiwgInt7LmJ1dHRvbi5iYWNrfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJwbGF5bGlzdCIpJyk7DQogICAgICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICAvLyBBYm9ydA0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImNhbmNlbCIsICJ7ey5idXR0b24uY2FuY2VsfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBzaG93RWxlbWVudCgicG9wdXAiLCBmYWxzZSk7Jyk7DQogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIC8vIFVwZGF0ZQ0KICAgICAgICAgICAgaWYgKGRhdGFbImlkLnByb3ZpZGVyIl0gIT0gIi0iKSB7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgInVwZGF0ZSIsICJ7ey5idXR0b24udXBkYXRlfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogc2F2ZVBvcHVwRGF0YSgibTN1IiwgIicgKyBpZCArICciLCBmYWxzZSwgMSknKTsNCiAgICAgICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIC8vIFNhdmUNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJzYXZlIiwgInt7LmJ1dHRvbi5zYXZlfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBzYXZlUG9wdXBEYXRhKCJtM3UiLCAiJyArIGlkICsgJyIsIGZhbHNlLCAwKScpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSAiaGRociI6DQogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUhlYWRsaW5lKGRhdGFUeXBlKTsNCiAgICAgICAgICAgIC8vIE5hbWUNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJuYW1lIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5wbGF5bGlzdC5uYW1lLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5wbGF5bGlzdC5uYW1lLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBEZXNjcmlwdGlvbg0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gImRlc2NyaXB0aW9uIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5wbGF5bGlzdC5kZXNjcmlwdGlvbi5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sucGxheWxpc3QuZGVzY3JpcHRpb24ucGxhY2Vob2xkZXJ9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIFVSTA0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gImZpbGUuc291cmNlIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5wbGF5bGlzdC5maWxlSERIUi5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sucGxheWxpc3QuZmlsZUhESFIudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIFR1bmVyDQogICAgICAgICAgICBpZiAoU0VSVkVSWyJzZXR0aW5ncyJdWyJidWZmZXIiXSAhPSAiLSIpIHsNCiAgICAgICAgICAgICAgICB2YXIgdGV4dCA9IFtdOw0KICAgICAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBbXTsNCiAgICAgICAgICAgICAgICBmb3IgKHZhciBpID0gMTsgaSA8PSAxMDA7IGkrKykgew0KICAgICAgICAgICAgICAgICAgICB0ZXh0LnB1c2goaS50b1N0cmluZygpKTsNCiAgICAgICAgICAgICAgICAgICAgdmFsdWVzLnB1c2goaS50b1N0cmluZygpKTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgdmFyIGRiS2V5ID0gInR1bmVyIjsNCiAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCBkYXRhW2RiS2V5XSwgZGJLZXkpOw0KICAgICAgICAgICAgICAgIHNlbGVjdC5zZXRBdHRyaWJ1dGUoIm9uZm9jdXMiLCAiamF2YXNjcmlwdDogcmV0dXJuOyIpOw0KICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5wbGF5bGlzdC50dW5lci50aXRsZX19Iiwgc2VsZWN0KTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgICAgIHZhciBkYktleSA9ICJ0dW5lciI7DQogICAgICAgICAgICAgICAgaWYgKGRhdGFbZGJLZXldID09IHVuZGVmaW5lZCkgew0KICAgICAgICAgICAgICAgICAgICBkYXRhW2RiS2V5XSA9IDE7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicmVhZG9ubHkiLCAidHJ1ZSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LmNsYXNzTmFtZSA9ICJub3RBdmFpbGFibGUiOw0KICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5wbGF5bGlzdC50dW5lci50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgY29udGVudC5kZXNjcmlwdGlvbigie3sucGxheWxpc3QudHVuZXIuZGVzY3JpcHRpb259fSIpOw0KICAgICAgICAgICAgLy8gSW50ZXJhY3Rpb24NCiAgICAgICAgICAgIGNvbnRlbnQuY3JlYXRlSW50ZXJhY3Rpb24oKTsNCiAgICAgICAgICAgIC8vIERlbGV0ZQ0KICAgICAgICAgICAgaWYgKGRhdGFbImlkLnByb3ZpZGVyIl0gIT0gIi0iKSB7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImRlbGV0ZSIsICJ7ey5idXR0b24uZGVsZXRlfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogc2F2ZVBvcHVwRGF0YSgiaGRociIsICInICsgaWQgKyAnIiwgdHJ1ZSwgMCknKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5jbGFzc05hbWUgPSAiZGVsZXRlIjsNCiAgICAgICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJiYWNrIiwgInt7LmJ1dHRvbi5iYWNrfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJwbGF5bGlzdCIpJyk7DQogICAgICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICAvLyBBYm9ydA0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImNhbmNlbCIsICJ7ey5idXR0b24uY2FuY2VsfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBzaG93RWxlbWVudCgicG9wdXAiLCBmYWxzZSk7Jyk7DQogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIC8vIFVwZGF0ZQ0KICAgICAgICAgICAgaWYgKGRhdGFbImlkLnByb3ZpZGVyIl0gIT0gIi0iKSB7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgInVwZGF0ZSIsICJ7ey5idXR0b24udXBkYXRlfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogc2F2ZVBvcHVwRGF0YSgiaGRociIsICInICsgaWQgKyAnIiwgZmFsc2UsIDEpJyk7DQogICAgICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICAvLyBTYXZlDQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAic2F2ZSIsICJ7ey5idXR0b24uc2F2ZX19Iik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogc2F2ZVBvcHVwRGF0YSgiaGRociIsICInICsgaWQgKyAnIiwgZmFsc2UsIDApJyk7DQogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJmaWx0ZXIiOg0KICAgICAgICAgICAgY29udGVudC5jcmVhdGVIZWFkbGluZShkYXRhVHlwZSk7DQogICAgICAgICAgICAvLyBUeXBlDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAidHlwZSI7DQogICAgICAgICAgICB2YXIgdGV4dCA9IFsiTTNVOiAiICsgInt7LmZpbHRlci50eXBlLmdyb3VwVGl0bGV9fSIsICJ4VGVWZTogIiArICJ7ey5maWx0ZXIudHlwZS5jdXN0b21GaWx0ZXJ9fSJdOw0KICAgICAgICAgICAgdmFyIHZhbHVlcyA9IFsiamF2YXNjcmlwdDogb3BlblBvcFVwKCdncm91cC10aXRsZScpIiwgImphdmFzY3JpcHQ6IG9wZW5Qb3BVcCgnY3VzdG9tLWZpbHRlcicpIl07DQogICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCAiamF2YXNjcmlwdDogb3BlblBvcFVwKCdncm91cC10aXRsZScpIiwgZGJLZXkpOw0KICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgiaWQiLCBpZCk7DQogICAgICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICdqYXZhc2NyaXB0OiBjaGFuZ2VCdXR0b25BY3Rpb24odGhpcywgIm5leHQiLCAib25jbGljayIpOycpOyAvLyBjaGFuZ2VCdXR0b25BY3Rpb24NCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5maWx0ZXIudHlwZS50aXRsZX19Iiwgc2VsZWN0KTsNCiAgICAgICAgICAgIC8vIEludGVyYWN0aW9uDQogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUludGVyYWN0aW9uKCk7DQogICAgICAgICAgICAvLyBBYm9ydA0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImNhbmNlbCIsICJ7ey5idXR0b24uY2FuY2VsfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBzaG93RWxlbWVudCgicG9wdXAiLCBmYWxzZSk7Jyk7DQogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIC8vIE5leHQNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJuZXh0IiwgInt7LmJ1dHRvbi5uZXh0fX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoImdyb3VwLXRpdGxlIiknKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgiaWQiLCAnbmV4dCcpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSAiY3VzdG9tLWZpbHRlciI6DQogICAgICAgIGNhc2UgImdyb3VwLXRpdGxlIjoNCiAgICAgICAgICAgIHN3aXRjaCAoZGF0YVR5cGUpIHsNCiAgICAgICAgICAgICAgICBjYXNlICJjdXN0b20tZmlsdGVyIjoNCiAgICAgICAgICAgICAgICAgICAgY29udGVudC5jcmVhdGVIZWFkbGluZSgie3suZmlsdGVyLmN1c3RvbX19IiArICIgRmlsdGVyIik7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgImdyb3VwLXRpdGxlIjoNCiAgICAgICAgICAgICAgICAgICAgY29udGVudC5jcmVhdGVIZWFkbGluZSgie3suZmlsdGVyLmdyb3VwfX0iICsgIiBGaWx0ZXIiKTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICB9DQogICAgICAgICAgICAvLyBOYW1lICAgICAgDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAibmFtZSI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3suZmlsdGVyLm5hbWUucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LmZpbHRlci5uYW1lLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBEZXNjcmlwdGlvbg0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gImRlc2NyaXB0aW9uIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5maWx0ZXIuZGVzY3JpcHRpb24ucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LmZpbHRlci5kZXNjcmlwdGlvbi50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgLy8gVHlwZQ0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gInR5cGUiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiaGlkZGVuIiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCIiLCBpbnB1dCk7DQogICAgICAgICAgICB2YXIgZmlsdGVyVHlwZSA9IGRhdGFbZGJLZXldOw0KICAgICAgICAgICAgc3dpdGNoIChmaWx0ZXJUeXBlKSB7DQogICAgICAgICAgICAgICAgY2FzZSAiY3VzdG9tLWZpbHRlciI6DQogICAgICAgICAgICAgICAgICAgIC8vIENhc2Ugc2Vuc2l0aXZlDQogICAgICAgICAgICAgICAgICAgIHZhciBkYktleSA9ICJjYXNlU2Vuc2l0aXZlIjsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChkYktleSk7DQogICAgICAgICAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhW2RiS2V5XTsNCiAgICAgICAgICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LmZpbHRlci5jYXNlU2Vuc2l0aXZlLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAgICAgICAgIC8vIEZpbHRlciBSdWxlIChDdXN0b20pDQogICAgICAgICAgICAgICAgICAgIHZhciBkYktleSA9ICJmaWx0ZXIiOw0KICAgICAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5maWx0ZXIuZmlsdGVyUnVsZS5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5maWx0ZXIuZmlsdGVyUnVsZS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgICAgICAgICAvLyBTdGFydGluZyBDaGFubmVsIE51bWJlciBNYXBwaW5nDQogICAgICAgICAgICAgICAgICAgIHZhciBkYktleSA9ICJzdGFydGluZ0NoYW5uZWwiOw0KICAgICAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5maWx0ZXIuc3RhcnRpbmdDaGFubmVsLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LmZpbHRlci5zdGFydGluZ0NoYW5uZWwudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAiZ3JvdXAtdGl0bGUiOg0KICAgICAgICAgICAgICAgICAgICAvL2FsZXJ0KGRiS2V5ICsgIiAiICsgZmlsdGVyVHlwZSkNCiAgICAgICAgICAgICAgICAgICAgLy8gRmlsdGVyIGJhc2VkIG9uIHRoZSBncm91cHMgaW4gdGhlIE0zVQ0KICAgICAgICAgICAgICAgICAgICB2YXIgZGJLZXkgPSAiZmlsdGVyIjsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGdyb3Vwc00zVSA9IGdldExvY2FsRGF0YSgibTN1R3JvdXBzIiwgIiIpOw0KICAgICAgICAgICAgICAgICAgICB2YXIgdGV4dCA9IGdyb3Vwc00zVVsidGV4dCJdOw0KICAgICAgICAgICAgICAgICAgICB2YXIgdmFsdWVzID0gZ3JvdXBzTTNVWyJ2YWx1ZSJdOw0KICAgICAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCBkYXRhW2RiS2V5XSwgZGJLZXkpOw0KICAgICAgICAgICAgICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3suZmlsdGVyLmZpbHRlckdyb3VwLnRpdGxlfX0iLCBzZWxlY3QpOw0KICAgICAgICAgICAgICAgICAgICBjb250ZW50LmRlc2NyaXB0aW9uKCJ7ey5maWx0ZXIuZmlsdGVyR3JvdXAuZGVzY3JpcHRpb259fSIpOw0KICAgICAgICAgICAgICAgICAgICAvLyBDYXNlIHNlbnNldGl2ZQ0KICAgICAgICAgICAgICAgICAgICB2YXIgZGJLZXkgPSAiY2FzZVNlbnNpdGl2ZSI7DQogICAgICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goZGJLZXkpOw0KICAgICAgICAgICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YVtkYktleV07DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5maWx0ZXIuY2FzZVNlbnNpdGl2ZS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgICAgICAgICB2YXIgZGJLZXkgPSAiaW5jbHVkZSI7DQogICAgICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LmZpbHRlci5pbmNsdWRlLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LmZpbHRlci5pbmNsdWRlLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuZGVzY3JpcHRpb24oInt7LmZpbHRlci5pbmNsdWRlLmRlc2NyaXB0aW9ufX0iKTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGRiS2V5ID0gImV4Y2x1ZGUiOw0KICAgICAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5maWx0ZXIuZXhjbHVkZS5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5maWx0ZXIuZXhjbHVkZS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgICAgICAgICBjb250ZW50LmRlc2NyaXB0aW9uKCJ7ey5maWx0ZXIuZXhjbHVkZS5kZXNjcmlwdGlvbn19Iik7DQogICAgICAgICAgICAgICAgICAgIC8vIFByZXNlcnZlIE0zVSBQbGF5bGlzdCBDaGFubmVsIE1hcHBpbmcNCiAgICAgICAgICAgICAgICAgICAgdmFyIGRiS2V5ID0gInByZXNlcnZlTWFwcGluZyI7DQogICAgICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goZGJLZXkpOw0KICAgICAgICAgICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YVtkYktleV07DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5maWx0ZXIucHJlc2VydmVNYXBwaW5nLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAgICAgICAgIC8vIFN0YXJ0aW5nIENoYW5uZWwgTnVtYmVyIE1hcHBpbmcNCiAgICAgICAgICAgICAgICAgICAgdmFyIGRiS2V5ID0gInN0YXJ0aW5nQ2hhbm5lbCI7DQogICAgICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LmZpbHRlci5zdGFydGluZ0NoYW5uZWwucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3suZmlsdGVyLnN0YXJ0aW5nQ2hhbm5lbC50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBkZWZhdWx0Og0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIC8vIEludGVyYWN0aW9uDQogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUludGVyYWN0aW9uKCk7DQogICAgICAgICAgICAvLyBEZWxldGUNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJkZWxldGUiLCAie3suYnV0dG9uLmRlbGV0ZX19Iik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogc2F2ZVBvcHVwRGF0YSgiZmlsdGVyIiwgIicgKyBpZCArICciLCB0cnVlLCAwKScpOw0KICAgICAgICAgICAgaW5wdXQuY2xhc3NOYW1lID0gImRlbGV0ZSI7DQogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIC8vIEFib3J0DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAiY2FuY2VsIiwgInt7LmJ1dHRvbi5jYW5jZWx9fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IHNob3dFbGVtZW50KCJwb3B1cCIsIGZhbHNlKTsnKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgLy8gU2F2ZQ0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgInNhdmUiLCAie3suYnV0dG9uLnNhdmV9fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoImZpbHRlciIsICInICsgaWQgKyAnIiwgZmFsc2UsIDApJyk7DQogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJ4bWx0diI6DQogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUhlYWRsaW5lKGRhdGFUeXBlKTsNCiAgICAgICAgICAgIC8vIE5hbWUNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJuYW1lIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey54bWx0di5uYW1lLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey54bWx0di5uYW1lLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBEZXNjcmlwdGlvbg0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gImRlc2NyaXB0aW9uIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey54bWx0di5kZXNjcmlwdGlvbi5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sueG1sdHYuZGVzY3JpcHRpb24udGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIFVSTA0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gImZpbGUuc291cmNlIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey54bWx0di5maWxlWE1MVFYucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnhtbHR2LmZpbGVYTUxUVi50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgLy8gSW50ZXJhY3Rpb24NCiAgICAgICAgICAgIGNvbnRlbnQuY3JlYXRlSW50ZXJhY3Rpb24oKTsNCiAgICAgICAgICAgIC8vIERlbGV0ZQ0KICAgICAgICAgICAgaWYgKGRhdGFbImlkLnByb3ZpZGVyIl0gIT0gIi0iKSB7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImRlbGV0ZSIsICJ7ey5idXR0b24uZGVsZXRlfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogc2F2ZVBvcHVwRGF0YSgieG1sdHYiLCAiJyArIGlkICsgJyIsIHRydWUsIDApJyk7DQogICAgICAgICAgICAgICAgaW5wdXQuY2xhc3NOYW1lID0gImRlbGV0ZSI7DQogICAgICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICAvLyBBYm9ydA0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImNhbmNlbCIsICJ7ey5idXR0b24uY2FuY2VsfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBzaG93RWxlbWVudCgicG9wdXAiLCBmYWxzZSk7Jyk7DQogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIC8vIFVwZGF0ZQ0KICAgICAgICAgICAgaWYgKGRhdGFbImlkLnByb3ZpZGVyIl0gIT0gIi0iKSB7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgInVwZGF0ZSIsICJ7ey5idXR0b24udXBkYXRlfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogc2F2ZVBvcHVwRGF0YSgieG1sdHYiLCAiJyArIGlkICsgJyIsIGZhbHNlLCAxKScpOw0KICAgICAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgLy8gU2F2ZQ0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgInNhdmUiLCAie3suYnV0dG9uLnNhdmV9fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoInhtbHR2IiwgIicgKyBpZCArICciLCBmYWxzZSwgMCknKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGNhc2UgInVzZXJzIjoNCiAgICAgICAgICAgIGNvbnRlbnQuY3JlYXRlSGVhZGxpbmUoInt7Lm1haW5NZW51Lml0ZW0udXNlcnN9fSIpOw0KICAgICAgICAgICAgLy8gVXNlciBuYW1lDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAidXNlcm5hbWUiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnVzZXJzLnVzZXJuYW1lLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey51c2Vycy51c2VybmFtZS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgLy8gTmV3IFBhcnNzd29yZA0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gInBhc3N3b3JkIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInBhc3N3b3JkIiwgZGJLZXksICIiKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3sudXNlcnMucGFzc3dvcmQucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnVzZXJzLnBhc3N3b3JkLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBDb25maXJtYXRpb24NCiAgICAgICAgICAgIHZhciBkYktleSA9ICJjb25maXJtIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInBhc3N3b3JkIiwgZGJLZXksICIiKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3sudXNlcnMuY29uZmlybS5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sudXNlcnMuY29uZmlybS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgLy8gQXV0aGVudGljYXRpb24gV0VCDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAiYXV0aGVudGljYXRpb24ud2ViIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goZGJLZXkpOw0KICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGFbZGJLZXldOw0KICAgICAgICAgICAgaWYgKGRhdGFbImRlZmF1bHRVc2VyIl0gPT0gdHJ1ZSkgew0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICJqYXZhc2NyaXB0OiByZXR1cm4gZmFsc2UiKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey51c2Vycy53ZWIudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIEF1dGhlbnRpY2F0aW9uIFBNUw0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gImF1dGhlbnRpY2F0aW9uLnBtcyI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KGRiS2V5KTsNCiAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhW2RiS2V5XTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey51c2Vycy5wbXMudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIEF1dGhlbnRpY2F0aW9uIE0zVQ0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gImF1dGhlbnRpY2F0aW9uLm0zdSI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KGRiS2V5KTsNCiAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhW2RiS2V5XTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey51c2Vycy5tM3UudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIEF1dGhlbnRpY2F0aW9uIFhNTA0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gImF1dGhlbnRpY2F0aW9uLnhtbCI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KGRiS2V5KTsNCiAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhW2RiS2V5XTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey51c2Vycy54bWwudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIEF1dGhlbnRpY2F0aW9uIEFQSQ0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gImF1dGhlbnRpY2F0aW9uLmFwaSI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KGRiS2V5KTsNCiAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhW2RiS2V5XTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey51c2Vycy5hcGkudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIEludGVyYWN0aW9uDQogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUludGVyYWN0aW9uKCk7DQogICAgICAgICAgICAvLyBEZWxldGUNCiAgICAgICAgICAgIGlmIChkYXRhWyJkZWZhdWx0VXNlciJdICE9IHRydWUgJiYgaWQgIT0gIi0iKSB7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImRlbGV0ZSIsICJ7ey5idXR0b24uZGVsZXRlfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5jbGFzc05hbWUgPSAiZGVsZXRlIjsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogc2F2ZVBvcHVwRGF0YSgiJyArIGRhdGFUeXBlICsgJyIsICInICsgaWQgKyAnIiwgdHJ1ZSwgMCknKTsNCiAgICAgICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIC8vIEFib3J0DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAiY2FuY2VsIiwgInt7LmJ1dHRvbi5jYW5jZWx9fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IHNob3dFbGVtZW50KCJwb3B1cCIsIGZhbHNlKTsnKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgLy8gU2F2ZQ0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgInNhdmUiLCAie3suYnV0dG9uLnNhdmV9fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoIicgKyBkYXRhVHlwZSArICciLCAiJyArIGlkICsgJyIsICJmYWxzZSIpOycpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSAibWFwcGluZyI6DQogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUhlYWRsaW5lKCJ7ey5tYWluTWVudS5pdGVtLm1hcHBpbmd9fSIpOw0KICAgICAgICAgICAgLy8gQWN0aXZlDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAieC1hY3RpdmUiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChkYktleSk7DQogICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YVtkYktleV07DQogICAgICAgICAgICBpbnB1dC5pZCA9ICJhY3RpdmUiOw0KICAgICAgICAgICAgLy9pbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIikNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdG9nZ2xlQ2hhbm5lbFN0YXR1cygnIiArIGlkICsgIicsIHRoaXMpIik7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3subWFwcGluZy5hY3RpdmUudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIENoYW5uZWwgbmFtZQ0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gIngtbmFtZSI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgIGlmIChCVUxLX0VESVQgPT0gdHJ1ZSkgew0KICAgICAgICAgICAgICAgIGlucHV0LnN0eWxlLmJvcmRlciA9ICJzb2xpZCAxcHggcmVkIjsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInJlYWRvbmx5IiwgInRydWUiKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5tYXBwaW5nLmNoYW5uZWxOYW1lLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICBjb250ZW50LmRlc2NyaXB0aW9uKGRhdGFbIm5hbWUiXSk7DQogICAgICAgICAgICAvLyBEZXNjcmlwdGlvbg0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gIngtZGVzY3JpcHRpb24iOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7Lm1hcHBpbmcuZGVzY3JpcHRpb24ucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7Lm1hcHBpbmcuZGVzY3JpcHRpb24udGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIFVwZGF0ZSB0aGUgY2hhbm5lbCB4LW5hbWUNCiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCJfdXVpZC5rZXkiKSkgew0KICAgICAgICAgICAgICAgIGlmIChkYXRhWyJfdXVpZC5rZXkiXSAhPSAiIikgew0KICAgICAgICAgICAgICAgICAgICB2YXIgZGJLZXkgPSAieC11cGRhdGUtY2hhbm5lbC1uYW1lIjsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChkYktleSk7DQogICAgICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGFbZGJLZXldOw0KICAgICAgICAgICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3subWFwcGluZy51cGRhdGVDaGFubmVsTmFtZS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIC8vIENoYW5uZWwgbmFtZSByZWdleCBmb3IgdXBkYXRpbmcgdGhlIGNoYW5uZWwgbmFtZQ0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gInVwZGF0ZS1jaGFubmVsLW5hbWUtcmVnZXgiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7Lm1hcHBpbmcudXBkYXRlQ2hhbm5lbE5hbWVSZWdleC5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3subWFwcGluZy51cGRhdGVDaGFubmVsTmFtZVJlZ2V4LnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICBjb250ZW50LmRlc2NyaXB0aW9uKCJ7ey5tYXBwaW5nLnVwZGF0ZUNoYW5uZWxOYW1lUmVnZXguZGVzY3JpcHRpb259fSIpOw0KICAgICAgICAgICAgLy8gQ2hhbm5lbCBncm91cCByZWdleCBmb3IgdXBkYXRpbmcgdGhlIGNoYW5uZWwgbmFtZQ0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gInVwZGF0ZS1jaGFubmVsLW5hbWUtYnktZ3JvdXAtcmVnZXgiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7Lm1hcHBpbmcudXBkYXRlQ2hhbm5lbE5hbWVCeUdyb3VwUmVnZXgucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7Lm1hcHBpbmcudXBkYXRlQ2hhbm5lbE5hbWVCeUdyb3VwUmVnZXgudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIGNvbnRlbnQuZGVzY3JpcHRpb24oInt7Lm1hcHBpbmcudXBkYXRlQ2hhbm5lbE5hbWVCeUdyb3VwUmVnZXguZGVzY3JpcHRpb259fSIpOw0KICAgICAgICAgICAgLy8gTG9nbyBVUkwgKENoYW5uZWwpIA0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gInR2Zy1sb2dvIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJpZCIsICJjaGFubmVsLWljb24iKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5tYXBwaW5nLmNoYW5uZWxMb2dvLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBDaGFubmVsIGxvZ28gdXBkYXRlDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAieC11cGRhdGUtY2hhbm5lbC1pY29uIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goZGJLZXkpOw0KICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGFbZGJLZXldOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJpZCIsICJ1cGRhdGUtaWNvbiIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJzsgY2hhbmdlQ2hhbm5lbExvZ28oJyIgKyBpZCArICInKTsiKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5tYXBwaW5nLnVwZGF0ZUNoYW5uZWxMb2dvLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBFeHBhbmQgRVBHIGNhdGVnb3J5DQogICAgICAgICAgICB2YXIgZGJLZXkgPSAieC1jYXRlZ29yeSI7DQogICAgICAgICAgICB2YXIgdGV4dCA9IFsiLSIsICJLaWRzIChFbWJ5IG9ubHkpIiwgIk5ld3MiLCAiTW92aWUiLCAiU2VyaWVzIiwgIlNwb3J0cyJdOw0KICAgICAgICAgICAgdmFyIHZhbHVlcyA9IFsiIiwgIktpZHMiLCAiTmV3cyIsICJNb3ZpZSIsICJTZXJpZXMiLCAiU3BvcnRzIl07DQogICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCBkYXRhW2RiS2V5XSwgZGJLZXkpOw0KICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5tYXBwaW5nLmVwZ0NhdGVnb3J5LnRpdGxlfX0iLCBzZWxlY3QpOw0KICAgICAgICAgICAgLy8gTTNVIGdyb3VwIHRpdGxlDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAieC1ncm91cC10aXRsZSI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgIGlucHV0LmRhdGFzZXQub2xkVmFsdWUgPSBkYXRhW2RiS2V5XTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5tYXBwaW5nLm0zdUdyb3VwVGl0bGUudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIGlmIChkYXRhWyJncm91cC10aXRsZSJdICE9IHVuZGVmaW5lZCkgew0KICAgICAgICAgICAgICAgIGNvbnRlbnQuZGVzY3JpcHRpb24oZGF0YVsiZ3JvdXAtdGl0bGUiXSk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBpZiAoZGF0YVsieC11cGRhdGUtY2hhbm5lbC1ncm91cCJdID09IHRydWUpIHsNCiAgICAgICAgICAgICAgICBpbnB1dC5kaXNhYmxlZCA9IHRydWU7DQogICAgICAgICAgICB9DQogICAgICAgICAgICAvLyBVcGRhdGUgY2hhbm5lbCBncm91cCBjaGVja2JveA0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gIngtdXBkYXRlLWNoYW5uZWwtZ3JvdXAiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChkYktleSk7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRvZ2dsZUdyb3VwVXBkYXRlQ2IoJyIgKyBpZCArICInLCB0aGlzKTsiKTsNCiAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhW2RiS2V5XTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5tYXBwaW5nLnVwZGF0ZUNoYW5uZWxHcm91cC50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgY29udGVudC5kZXNjcmlwdGlvbigie3subWFwcGluZy51cGRhdGVDaGFubmVsR3JvdXAuZGVzY3JpcHRpb259fSIpOw0KICAgICAgICAgICAgLy8gWE1MVFYgZmlsZQ0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gJ3gteG1sdHYtZmlsZSc7DQogICAgICAgICAgICBjb25zdCB4bWxUdkZpbGUgPSBkYXRhW2RiS2V5XTsNCiAgICAgICAgICAgIHZhciB4bWxUdiA9IG5ldyBYTUxUVkZpbGUoKTsNCiAgICAgICAgICAgIGNvbnN0IHhtbFR2RmlsZVNlbGVjdCA9IHhtbFR2LmdldEZpbGVzKGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIHhtbFR2RmlsZVNlbGVjdC5zZXRBdHRyaWJ1dGUoJ25hbWUnLCBkYktleSk7DQogICAgICAgICAgICB4bWxUdkZpbGVTZWxlY3Quc2V0QXR0cmlidXRlKCdpZCcsICdwb3B1cC14bWx0dicpOw0KICAgICAgICAgICAgeG1sVHZGaWxlU2VsZWN0LnNldEF0dHJpYnV0ZSgnb25jaGFuZ2UnLCBgamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCc7IHNldFhtbHR2Q2hhbm5lbCgnJHtpZH0nLCB0aGlzKTtgKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCd7ey5tYXBwaW5nLnhtbHR2RmlsZS50aXRsZX19JywgeG1sVHZGaWxlU2VsZWN0KTsNCiAgICAgICAgICAgIC8vIFhNTFRWIE1hcHBpbmcNCiAgICAgICAgICAgIHZhciBkYktleSA9ICd4LW1hcHBpbmcnOw0KICAgICAgICAgICAgdmFyIHhtbFR2ID0gbmV3IFhNTFRWRmlsZSgpOw0KICAgICAgICAgICAgY29uc3QgY3VycmVudFhtbFR2SWQgPSBkYXRhW2RiS2V5XTsNCiAgICAgICAgICAgIGNvbnN0IFt4bWxUdklkQ29udGFpbmVyLCB4bWxUdklkSW5wdXQsIHhtbFR2SWREYXRhbGlzdF0gPSB4bWxUdi5uZXdYbWxUdklkUGlja2VyKHhtbFR2RmlsZSwgY3VycmVudFhtbFR2SWQpOw0KICAgICAgICAgICAgeG1sVHZJZENvbnRhaW5lci5zZXRBdHRyaWJ1dGUoJ2lkJywgJ3htbHR2LWlkLXBpY2tlci1jb250YWluZXInKTsNCiAgICAgICAgICAgIHhtbFR2SWRJbnB1dC5zZXRBdHRyaWJ1dGUoJ2xpc3QnLCAneG1sdHYtaWQtcGlja2VyLWRhdGFsaXN0Jyk7DQogICAgICAgICAgICB4bWxUdklkSW5wdXQuc2V0QXR0cmlidXRlKCduYW1lJywgJ3gtbWFwcGluZycpOyAvLyBTaG91bGQgc3RheSB4LW1hcHBpbmcgYXMgaXQgd2lsbCBiZSB1c2VkIGluIGRvbmVQb3B1cERhdGEgdG8gbWFrZSBhIHNlcnZlciByZXF1ZXN0DQogICAgICAgICAgICB4bWxUdklkSW5wdXQuc2V0QXR0cmlidXRlKCdpZCcsICd4bWx0di1pZC1waWNrZXItaW5wdXQnKTsNCiAgICAgICAgICAgIHhtbFR2SWRJbnB1dC5zZXRBdHRyaWJ1dGUoJ29uY2hhbmdlJywgYGphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnOyBjaGVja1htbHR2Q2hhbm5lbCgnJHtpZH0nLCB0aGlzLnZhbHVlLCAnJHt4bWxUdkZpbGV9Jyk7YCk7DQogICAgICAgICAgICB4bWxUdklkRGF0YWxpc3Quc2V0QXR0cmlidXRlKCdpZCcsICd4bWx0di1pZC1waWNrZXItZGF0YWxpc3QnKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCd7ey5tYXBwaW5nLnhtbHR2Q2hhbm5lbC50aXRsZX19JywgeG1sVHZJZENvbnRhaW5lcik7DQogICAgICAgICAgICAvLyBUaW1lc2hpZnQNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJ4LXRpbWVzaGlmdCI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3subWFwcGluZy50aW1lc2hpZnQucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJpZCIsICJ0aW1lc2hpZnQiKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5tYXBwaW5nLnRpbWVzaGlmdC50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgLy8gSW50ZXJhY3Rpb24NCiAgICAgICAgICAgIGNvbnRlbnQuY3JlYXRlSW50ZXJhY3Rpb24oKTsNCiAgICAgICAgICAgIC8vIFVwbG9hZCBsb2dvDQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAiY2FuY2VsIiwgInt7LmJ1dHRvbi51cGxvYWRMb2dvfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiB1cGxvYWRMb2dvKCk7Jyk7DQogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIC8vIEFib3J0DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAiY2FuY2VsIiwgInt7LmJ1dHRvbi5jYW5jZWx9fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IHNob3dFbGVtZW50KCJwb3B1cCIsIGZhbHNlKTsnKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgLy8gRmluaXNoZWQNCiAgICAgICAgICAgIHZhciBpZHMgPSBbXTsNCiAgICAgICAgICAgIGlkcyA9IGdldEFsbFNlbGVjdGVkQ2hhbm5lbHMoKTsNCiAgICAgICAgICAgIGlmIChpZHMubGVuZ3RoID09IDApIHsNCiAgICAgICAgICAgICAgICBpZHMucHVzaChpZCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAic2F2ZSIsICJ7ey5idXR0b24uZG9uZX19Iik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogZG9uZVBvcHVwRGF0YSgiJyArIGRhdGFUeXBlICsgJyIsICInICsgaWRzICsgJyIsICJmYWxzZSIpOycpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgIGJyZWFrOw0KICAgIH0NCiAgICBzaG93UG9wVXBFbGVtZW50KCdwb3B1cC1jdXN0b20nKTsNCn0NCmNsYXNzIFhNTFRWRmlsZSB7DQogICAgZ2V0RmlsZXMoc2V0KSB7DQogICAgICAgIGxldCBmaWxlSURzID0gZ2V0T3duT2JqUHJvcHMoU0VSVkVSWyJ4ZXBnIl1bInhtbHR2TWFwIl0pOw0KICAgICAgICBsZXQgdmFsdWVzID0gbmV3IEFycmF5KCItIik7DQogICAgICAgIGxldCB0ZXh0ID0gbmV3IEFycmF5KCItIik7DQogICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgZmlsZUlEcy5sZW5ndGg7IGkrKykgew0KICAgICAgICAgICAgaWYgKGZpbGVJRHNbaV0gIT0gInhUZVZlIER1bW15Iikgew0KICAgICAgICAgICAgICAgIHZhbHVlcy5wdXNoKGdldFZhbHVlRnJvbVByb3ZpZGVyRmlsZShmaWxlSURzW2ldLCAieG1sdHYiLCAiZmlsZS54dGV2ZSIpKTsNCiAgICAgICAgICAgICAgICB0ZXh0LnB1c2goZ2V0VmFsdWVGcm9tUHJvdmlkZXJGaWxlKGZpbGVJRHNbaV0sICJ4bWx0diIsICJuYW1lIikpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgZWxzZSB7DQogICAgICAgICAgICAgICAgdmFsdWVzLnB1c2goZmlsZUlEc1tpXSk7DQogICAgICAgICAgICAgICAgdGV4dC5wdXNoKGZpbGVJRHNbaV0pOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQogICAgICAgIGxldCBzZWxlY3QgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJTRUxFQ1QiKTsNCiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0ZXh0Lmxlbmd0aDsgaSsrKSB7DQogICAgICAgICAgICB2YXIgb3B0aW9uID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiT1BUSU9OIik7DQogICAgICAgICAgICBvcHRpb24uc2V0QXR0cmlidXRlKCJ2YWx1ZSIsIHZhbHVlc1tpXSk7DQogICAgICAgICAgICBvcHRpb24uaW5uZXJUZXh0ID0gdGV4dFtpXTsNCiAgICAgICAgICAgIHNlbGVjdC5hcHBlbmRDaGlsZChvcHRpb24pOw0KICAgICAgICB9DQogICAgICAgIGlmIChzZXQgIT0gIiIpIHsNCiAgICAgICAgICAgIHNlbGVjdC52YWx1ZSA9IHNldDsNCiAgICAgICAgfQ0KICAgICAgICByZXR1cm4gc2VsZWN0Ow0KICAgIH0NCiAgICAvKioNCiAgICAgKiBAcGFyYW0geG1sVHZGaWxlIFhNTCBmaWxlIHBhdGggdG8gZ2V0IEVQRyBmcm9tLg0KICAgICAqIEBwYXJhbSBjdXJyZW50WG1sVHZJZCBDdXJyZW50IFhNTFRWIElEIHRvIHNldCBpbml0aWFsIGlucHV0IHZhbHVlIHRvLg0KICAgICAqIEByZXR1cm5zIEFycmF5IG9mLCBzZXF1ZW50aWFsbHk6DQogICAgICogMSkgQ29udGFpbmVyIG9mIHRoZSBwaWNrZXIuDQogICAgICogMikgSW5wdXQgZmllbGQgdG8gdHlwZSBhdCBhbmQgZ2V0IGNob2ljZSBmcm9tLg0KICAgICAqIDMpIERhdGFsaXN0IGNvbnRhaW5pbmcgZXZlcnkgb3B0aW9uLg0KICAgICAqLw0KICAgIG5ld1htbFR2SWRQaWNrZXIoeG1sVHZGaWxlLCBjdXJyZW50WG1sVHZJZCkgew0KICAgICAgICBjb25zdCBjb250YWluZXIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsNCiAgICAgICAgY29uc3QgaW5wdXQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdpbnB1dCcpOw0KICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoJ3R5cGUnLCAndGV4dCcpOw0KICAgICAgICAvLyBJbml0aWFsbHksIHNldCB2YWx1ZSB0byAnLScgaWYgaW5wdXQgaXMgZW1wdHkNCiAgICAgICAgaW5wdXQudmFsdWUgPSAoY3VycmVudFhtbFR2SWQpID8gY3VycmVudFhtbFR2SWQgOiAnLSc7DQogICAgICAgIC8vIFdoZW4gaW5wdXQgaXMgZm9jdXNlZCwgcmVtb3ZlICctJyBmcm9tIGl0DQogICAgICAgIGlucHV0LmFkZEV2ZW50TGlzdGVuZXIoJ2ZvY3VzJywgKGV2dCkgPT4gew0KICAgICAgICAgICAgY29uc3QgdGFyZ2V0ID0gZXZ0LnRhcmdldDsNCiAgICAgICAgICAgIHRhcmdldC52YWx1ZSA9ICh0YXJnZXQudmFsdWUgPT09ICctJykgPyAnJyA6IHRhcmdldC52YWx1ZTsNCiAgICAgICAgfSk7DQogICAgICAgIC8vIFdoZW4gaW5wdXQgbG9zZSBmb2N1cyBvciB0YWtlIGEgdmFsdWUsIGlmIGl0J3MgZW1wdHksIHNldCB2YWx1ZSB0byAnLScNCiAgICAgICAgaW5wdXQuYWRkRXZlbnRMaXN0ZW5lcignYmx1cicsIHNldEZhbGxiYWNrVmFsdWUpOw0KICAgICAgICBpbnB1dC5hZGRFdmVudExpc3RlbmVyKCdjaGFuZ2UnLCBzZXRGYWxsYmFja1ZhbHVlKTsNCiAgICAgICAgZnVuY3Rpb24gc2V0RmFsbGJhY2tWYWx1ZShldnQpIHsNCiAgICAgICAgICAgIGNvbnN0IHRhcmdldCA9IGV2dC50YXJnZXQ7DQogICAgICAgICAgICB0YXJnZXQudmFsdWUgPSAodGFyZ2V0LnZhbHVlKSA/IHRhcmdldC52YWx1ZSA6ICctJzsNCiAgICAgICAgfQ0KICAgICAgICBjb250YWluZXIuYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICBjb25zdCBkYXRhbGlzdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RhdGFsaXN0Jyk7DQogICAgICAgIGNvbnN0IG9wdGlvbiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ29wdGlvbicpOw0KICAgICAgICBvcHRpb24uc2V0QXR0cmlidXRlKCd2YWx1ZScsICctJyk7DQogICAgICAgIG9wdGlvbi5pbm5lclRleHQgPSAnLSc7DQogICAgICAgIGRhdGFsaXN0LmFwcGVuZENoaWxkKG9wdGlvbik7DQogICAgICAgIGNvbnN0IGVwZyA9IFNFUlZFUlsneGVwZyddWyd4bWx0dk1hcCddW3htbFR2RmlsZV07DQogICAgICAgIGlmIChlcGcpIHsNCiAgICAgICAgICAgIGNvbnN0IHByb2dyYW1JZHMgPSBnZXRPd25PYmpQcm9wcyhlcGcpOw0KICAgICAgICAgICAgcHJvZ3JhbUlkcy5mb3JFYWNoKChwcm9ncmFtSWQpID0+IHsNCiAgICAgICAgICAgICAgICBjb25zdCBwcm9ncmFtID0gZXBnW3Byb2dyYW1JZF07DQogICAgICAgICAgICAgICAgaWYgKHByb2dyYW0uaGFzT3duUHJvcGVydHkoJ2Rpc3BsYXktbmFtZXMnKSkgew0KICAgICAgICAgICAgICAgICAgICBwcm9ncmFtWydkaXNwbGF5LW5hbWVzJ10uZm9yRWFjaCgoZGlzcGxheU5hbWUpID0+IHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IG9wdGlvbiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ29wdGlvbicpOw0KICAgICAgICAgICAgICAgICAgICAgICAgb3B0aW9uLnNldEF0dHJpYnV0ZSgndmFsdWUnLCBwcm9ncmFtSWQpOw0KICAgICAgICAgICAgICAgICAgICAgICAgb3B0aW9uLmlubmVyVGV4dCA9IGRpc3BsYXlOYW1lWydWYWx1ZSddOw0KICAgICAgICAgICAgICAgICAgICAgICAgZGF0YWxpc3QuYXBwZW5kQ2hpbGQob3B0aW9uKTsNCiAgICAgICAgICAgICAgICAgICAgfSk7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgICAgICAgICBjb25zdCBvcHRpb24gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdvcHRpb24nKTsNCiAgICAgICAgICAgICAgICAgICAgb3B0aW9uLnNldEF0dHJpYnV0ZSgndmFsdWUnLCBwcm9ncmFtSWQpOw0KICAgICAgICAgICAgICAgICAgICBvcHRpb24uaW5uZXJUZXh0ID0gJy0nOw0KICAgICAgICAgICAgICAgICAgICBkYXRhbGlzdC5hcHBlbmRDaGlsZChvcHRpb24pOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0pOw0KICAgICAgICB9DQogICAgICAgIGNvbnRhaW5lci5hcHBlbmRDaGlsZChkYXRhbGlzdCk7DQogICAgICAgIHJldHVybiBbY29udGFpbmVyLCBpbnB1dCwgZGF0YWxpc3RdOw0KICAgIH0NCn0NCmZ1bmN0aW9uIGdldFZhbHVlRnJvbVByb3ZpZGVyRmlsZShmaWxlLCBmaWxlVHlwZSwga2V5KSB7DQogICAgaWYgKGZpbGUgPT0gInhUZVZlIER1bW15Iikgew0KICAgICAgICByZXR1cm4gZmlsZTsNCiAgICB9DQogICAgbGV0IGZpbGVJRDsNCiAgICBsZXQgaW5kaWNhdG9yID0gZmlsZS5jaGFyQXQoMCk7DQogICAgc3dpdGNoIChpbmRpY2F0b3IpIHsNCiAgICAgICAgY2FzZSAiTSI6DQogICAgICAgICAgICBmaWxlVHlwZSA9ICJtM3UiOw0KICAgICAgICAgICAgZmlsZUlEID0gZmlsZTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJIIjoNCiAgICAgICAgICAgIGZpbGVUeXBlID0gImhkaHIiOw0KICAgICAgICAgICAgZmlsZUlEID0gZmlsZTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJYIjoNCiAgICAgICAgICAgIGZpbGVUeXBlID0gInhtbHR2IjsNCiAgICAgICAgICAgIGZpbGVJRCA9IGZpbGUuc3Vic3RyaW5nKDAsIGZpbGUubGFzdEluZGV4T2YoJy4nKSk7DQogICAgICAgICAgICBicmVhazsNCiAgICB9DQogICAgaWYgKFNFUlZFUlsic2V0dGluZ3MiXVsiZmlsZXMiXVtmaWxlVHlwZV0uaGFzT3duUHJvcGVydHkoZmlsZUlEKSA9PSB0cnVlKSB7DQogICAgICAgIHZhciBkYXRhID0gU0VSVkVSWyJzZXR0aW5ncyJdWyJmaWxlcyJdW2ZpbGVUeXBlXVtmaWxlSURdOw0KICAgICAgICByZXR1cm4gZGF0YVtrZXldOw0KICAgIH0NCiAgICByZXR1cm47DQp9DQpmdW5jdGlvbiBzZXRYbWx0dkNoYW5uZWwoZXBnTWFwSWQsIHhtbFR2RmlsZVNlbGVjdCkgew0KICAgIGNvbnN0IHhtbFR2ID0gbmV3IFhNTFRWRmlsZSgpOw0KICAgIGNvbnN0IG5ld1htbFR2RmlsZSA9IHhtbFR2RmlsZVNlbGVjdC52YWx1ZTsNCiAgICAvLyBSZW1vdmUgb2xkIFhNTFRWIElEIHNlbGVjdGlvbiBib3gNCiAgICBjb25zdCB4bWxUdklkUGlja2VyUGFyZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3htbHR2LWlkLXBpY2tlci1jb250YWluZXInKS5wYXJlbnRFbGVtZW50Ow0KICAgIHhtbFR2SWRQaWNrZXJQYXJlbnQuaW5uZXJIVE1MID0gJyc7DQogICAgLy8gQ3JlYXRlIG5ldyBYTUxUViBJRCBzZWxlY3Rpb24gYm94DQogICAgY29uc3QgdHZnSWQgPSBTRVJWRVJbJ3hlcGcnXVsnZXBnTWFwcGluZyddW2VwZ01hcElkXVsndHZnLWlkJ107DQogICAgY29uc3QgW3htbFR2SWRDb250YWluZXIsIHhtbFR2SWRJbnB1dCwgeG1sVHZJZERhdGFsaXN0XSA9IHhtbFR2Lm5ld1htbFR2SWRQaWNrZXIobmV3WG1sVHZGaWxlLCB0dmdJZCk7DQogICAgeG1sVHZJZENvbnRhaW5lci5zZXRBdHRyaWJ1dGUoJ2lkJywgJ3htbHR2LWlkLXBpY2tlci1jb250YWluZXInKTsNCiAgICB4bWxUdklkSW5wdXQuc2V0QXR0cmlidXRlKCdsaXN0JywgJ3htbHR2LWlkLXBpY2tlci1kYXRhbGlzdCcpOw0KICAgIHhtbFR2SWRJbnB1dC5zZXRBdHRyaWJ1dGUoJ25hbWUnLCAneC1tYXBwaW5nJyk7IC8vIFNob3VsZCBzdGF5IHgtbWFwcGluZyBhcyBpdCB3aWxsIGJlIHVzZWQgaW4gZG9uZVBvcHVwRGF0YSB0byBtYWtlIGEgc2VydmVyIHJlcXVlc3QNCiAgICB4bWxUdklkSW5wdXQuc2V0QXR0cmlidXRlKCdpZCcsICd4bWx0di1pZC1waWNrZXItaW5wdXQnKTsNCiAgICB4bWxUdklkSW5wdXQuc2V0QXR0cmlidXRlKCdvbmNoYW5nZScsIGBqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJzsgY2hlY2tYbWx0dkNoYW5uZWwoJyR7ZXBnTWFwSWR9JywgdGhpcy52YWx1ZSwgJyR7bmV3WG1sVHZGaWxlfScpO2ApOw0KICAgIHhtbFR2SWRJbnB1dC5jbGFzc0xpc3QuYWRkKCdjaGFuZ2VkJyk7DQogICAgeG1sVHZJZERhdGFsaXN0LnNldEF0dHJpYnV0ZSgnaWQnLCAneG1sdHYtaWQtcGlja2VyLWRhdGFsaXN0Jyk7DQogICAgLy8gQWRkIG5ldyBYTUxUViBJRCBzZWxlY3Rpb24gYm94IHRvIGl0J3MgcGFyZW50DQogICAgeG1sVHZJZFBpY2tlclBhcmVudC5hcHBlbmRDaGlsZCh4bWxUdklkQ29udGFpbmVyKTsNCiAgICBjaGVja1htbHR2Q2hhbm5lbChlcGdNYXBJZCwgeG1sVHZJZElucHV0LnZhbHVlLCBuZXdYbWxUdkZpbGUpOw0KfQ0KZnVuY3Rpb24gY2hlY2tYbWx0dkNoYW5uZWwoZXBnTWFwSWQsIG5ld1htbFR2SWQsIHhtbFR2RmlsZSkgew0KICAgIGNvbnN0IGNoYW5uZWxBY3RpdmVDYiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdhY3RpdmUnKTsNCiAgICBjb25zdCBjaGFubmVsQWN0aXZlID0gbmV3WG1sVHZJZCAhPSAnLSc7DQogICAgY2hhbm5lbEFjdGl2ZUNiLmNoZWNrZWQgPSBjaGFubmVsQWN0aXZlOw0KICAgIGNoYW5uZWxBY3RpdmVDYi5jbGFzc05hbWUgPSAnY2hhbmdlZCc7DQogICAgaWYgKHhtbFR2RmlsZSAhPSAneFRlVmUgRHVtbXknICYmIGNoYW5uZWxBY3RpdmUgPT0gdHJ1ZSkgew0KICAgICAgICBjaGFuZ2VDaGFubmVsTG9nbyhlcGdNYXBJZCk7DQogICAgICAgIHJldHVybjsNCiAgICB9DQogICAgaWYgKHhtbFR2RmlsZSA9PSAneFRlVmUgRHVtbXknKSB7DQogICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd1cGRhdGUtaWNvbicpLmNoZWNrZWQgPSBmYWxzZTsNCiAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3VwZGF0ZS1pY29uJykuY2xhc3NOYW1lID0gJ2NoYW5nZWQnOw0KICAgIH0NCn0NCmZ1bmN0aW9uIGNoYW5nZUNoYW5uZWxMb2dvKGVwZ01hcElkKSB7DQogICAgY29uc3QgY2hhbm5lbCA9IFNFUlZFUlsneGVwZyddWydlcGdNYXBwaW5nJ11bZXBnTWFwSWRdOw0KICAgIGNvbnN0IHhtbFR2RmlsZVNlbGVjdCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdwb3B1cC14bWx0dicpOw0KICAgIGNvbnN0IHhtbFR2RmlsZSA9IHhtbFR2RmlsZVNlbGVjdC5vcHRpb25zW3htbFR2RmlsZVNlbGVjdC5zZWxlY3RlZEluZGV4XS52YWx1ZTsNCiAgICBjb25zdCB4bWxUdklkSW5wdXQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgneG1sdHYtaWQtcGlja2VyLWlucHV0Jyk7DQogICAgY29uc3QgbmV3WG1sVHZJZCA9IHhtbFR2SWRJbnB1dC52YWx1ZTsNCiAgICBjb25zdCB1cGRhdGVMb2dvID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3VwZGF0ZS1pY29uJykuY2hlY2tlZDsNCiAgICBsZXQgbG9nbzsNCiAgICBpZiAodXBkYXRlTG9nbyA9PSB0cnVlICYmIHhtbFR2RmlsZSAhPSAneFRlVmUgRHVtbXknKSB7DQogICAgICAgIGlmIChTRVJWRVJbJ3hlcGcnXVsneG1sdHZNYXAnXVt4bWxUdkZpbGVdLmhhc093blByb3BlcnR5KG5ld1htbFR2SWQpKSB7DQogICAgICAgICAgICBsb2dvID0gU0VSVkVSWyd4ZXBnJ11bJ3htbHR2TWFwJ11beG1sVHZGaWxlXVtuZXdYbWxUdklkXVsnaWNvbiddOw0KICAgICAgICB9DQogICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgbG9nbyA9IGNoYW5uZWxbJ3R2Zy1sb2dvJ107DQogICAgICAgIH0NCiAgICAgICAgdmFyIGxvZ29JbnB1dCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjaGFubmVsLWljb24nKTsNCiAgICAgICAgbG9nb0lucHV0LnZhbHVlID0gbG9nbzsNCiAgICAgICAgaWYgKEJVTEtfRURJVCA9PSBmYWxzZSkgew0KICAgICAgICAgICAgbG9nb0lucHV0LmNsYXNzTmFtZSA9ICdjaGFuZ2VkJzsNCiAgICAgICAgfQ0KICAgIH0NCn0NCmZ1bmN0aW9uIHNhdmVQb3B1cERhdGEoZGF0YVR5cGUsIGlkLCByZW1vdmUsIG9wdGlvbikgew0KICAgIGlmIChkYXRhVHlwZSA9PSAibWFwcGluZyIpIHsNCiAgICAgICAgbGV0IGRhdGEgPSB7fTsNCiAgICAgICAgbGV0IGNtZCA9ICJzYXZlRXBnTWFwcGluZyI7DQogICAgICAgIGRhdGFbImVwZ01hcHBpbmciXSA9IFNFUlZFUlsieGVwZyJdWyJlcGdNYXBwaW5nIl07DQogICAgICAgIGxldCBzZXJ2ZXIgPSBuZXcgU2VydmVyKGNtZCk7DQogICAgICAgIHNlcnZlci5yZXF1ZXN0KGRhdGEpOw0KICAgICAgICBkZWxldGUgVU5ET1siZXBnTWFwcGluZyJdOw0KICAgICAgICByZXR1cm47DQogICAgfQ0KICAgIGxldCBkaXYgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicG9wdXAtY3VzdG9tIik7DQogICAgbGV0IGlucHV0cyA9IGRpdi5nZXRFbGVtZW50c0J5VGFnTmFtZSgiVEFCTEUiKVswXS5nZXRFbGVtZW50c0J5VGFnTmFtZSgiSU5QVVQiKTsNCiAgICBsZXQgc2VsZWN0cyA9IGRpdi5nZXRFbGVtZW50c0J5VGFnTmFtZSgiVEFCTEUiKVswXS5nZXRFbGVtZW50c0J5VGFnTmFtZSgiU0VMRUNUIik7DQogICAgbGV0IGlucHV0ID0ge307DQogICAgbGV0IGNvbmZpcm1Nc2c7DQogICAgZm9yIChsZXQgaSA9IDA7IGkgPCBzZWxlY3RzLmxlbmd0aDsgaSsrKSB7DQogICAgICAgIHZhciBuYW1lOw0KICAgICAgICBuYW1lID0gc2VsZWN0c1tpXS5uYW1lOw0KICAgICAgICB2YXIgdmFsdWUgPSBzZWxlY3RzW2ldLnZhbHVlOw0KICAgICAgICBzd2l0Y2ggKG5hbWUpIHsNCiAgICAgICAgICAgIGNhc2UgInR1bmVyIjoNCiAgICAgICAgICAgICAgICBpbnB1dFtuYW1lXSA9IHBhcnNlSW50KHZhbHVlKTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICAgICAgaW5wdXRbbmFtZV0gPSB2YWx1ZTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgfQ0KICAgIH0NCiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGlucHV0cy5sZW5ndGg7IGkrKykgew0KICAgICAgICBzd2l0Y2ggKGlucHV0c1tpXS50eXBlKSB7DQogICAgICAgICAgICBjYXNlICJjaGVja2JveCI6DQogICAgICAgICAgICAgICAgbmFtZSA9IGlucHV0c1tpXS5uYW1lOw0KICAgICAgICAgICAgICAgIGlucHV0W25hbWVdID0gaW5wdXRzW2ldLmNoZWNrZWQ7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ0ZXh0IjoNCiAgICAgICAgICAgIGNhc2UgImhpZGRlbiI6DQogICAgICAgICAgICBjYXNlICJwYXNzd29yZCI6DQogICAgICAgICAgICAgICAgbmFtZSA9IGlucHV0c1tpXS5uYW1lOw0KICAgICAgICAgICAgICAgIHN3aXRjaCAobmFtZSkgew0KICAgICAgICAgICAgICAgICAgICBjYXNlICJ0dW5lciI6DQogICAgICAgICAgICAgICAgICAgICAgICBpbnB1dFtuYW1lXSA9IHBhcnNlSW50KGlucHV0c1tpXS52YWx1ZSk7DQogICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgICAgICAgICAgICAgIGlucHV0W25hbWVdID0gaW5wdXRzW2ldLnZhbHVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICB9DQogICAgfQ0KICAgIGxldCBkYXRhID0ge307DQogICAgbGV0IGNtZDsNCiAgICBpZiAocmVtb3ZlID09IHRydWUpIHsNCiAgICAgICAgaW5wdXRbImRlbGV0ZSJdID0gdHJ1ZTsNCiAgICB9DQogICAgc3dpdGNoIChkYXRhVHlwZSkgew0KICAgICAgICBjYXNlICJ1c2VycyI6DQogICAgICAgICAgICBjb25maXJtTXNnID0gIkRlbGV0ZSB0aGlzIHVzZXI/IjsNCiAgICAgICAgICAgIGlmIChpZCA9PSAiLSIpIHsNCiAgICAgICAgICAgICAgICBjbWQgPSAic2F2ZU5ld1VzZXIiOw0KICAgICAgICAgICAgICAgIGRhdGFbInVzZXJEYXRhIl0gPSBpbnB1dDsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgICAgIGNtZCA9ICJzYXZlVXNlckRhdGEiOw0KICAgICAgICAgICAgICAgIGxldCBkID0ge307DQogICAgICAgICAgICAgICAgZFtpZF0gPSBpbnB1dDsNCiAgICAgICAgICAgICAgICBkYXRhWyJ1c2VyRGF0YSJdID0gZDsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJtM3UiOg0KICAgICAgICAgICAgY29uZmlybU1zZyA9ICJEZWxldGUgdGhpcyBwbGF5bGlzdD8iOw0KICAgICAgICAgICAgc3dpdGNoIChvcHRpb24pIHsNCiAgICAgICAgICAgICAgICAvLyBQb3B1cDogU2F2ZQ0KICAgICAgICAgICAgICAgIGNhc2UgMDoNCiAgICAgICAgICAgICAgICAgICAgY21kID0gInNhdmVGaWxlc00zVSI7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIC8vIFBvcHVwOiBVcGRhdGUNCiAgICAgICAgICAgICAgICBjYXNlIDE6DQogICAgICAgICAgICAgICAgICAgIGNtZCA9ICJ1cGRhdGVGaWxlTTNVIjsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBkYXRhWyJmaWxlcyJdID0ge307DQogICAgICAgICAgICBkYXRhWyJmaWxlcyJdW2RhdGFUeXBlXSA9IHt9Ow0KICAgICAgICAgICAgZGF0YVsiZmlsZXMiXVtkYXRhVHlwZV1baWRdID0gaW5wdXQ7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSAiaGRociI6DQogICAgICAgICAgICBjb25maXJtTXNnID0gIkRlbGV0ZSB0aGlzIEhESG9tZVJ1biB0dW5lcj8iOw0KICAgICAgICAgICAgc3dpdGNoIChvcHRpb24pIHsNCiAgICAgICAgICAgICAgICAvLyBQb3B1cDogU2F2ZQ0KICAgICAgICAgICAgICAgIGNhc2UgMDoNCiAgICAgICAgICAgICAgICAgICAgY21kID0gInNhdmVGaWxlc0hESFIiOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICAvLyBQb3B1cDogVXBkYXRlDQogICAgICAgICAgICAgICAgY2FzZSAxOg0KICAgICAgICAgICAgICAgICAgICBjbWQgPSAidXBkYXRlRmlsZUhESFIiOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGRhdGFbImZpbGVzIl0gPSB7fTsNCiAgICAgICAgICAgIGRhdGFbImZpbGVzIl1bZGF0YVR5cGVdID0ge307DQogICAgICAgICAgICBkYXRhWyJmaWxlcyJdW2RhdGFUeXBlXVtpZF0gPSBpbnB1dDsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJ4bWx0diI6DQogICAgICAgICAgICBjb25maXJtTXNnID0gIkRlbGV0ZSB0aGlzIFhNTFRWIGZpbGU/IjsNCiAgICAgICAgICAgIHN3aXRjaCAob3B0aW9uKSB7DQogICAgICAgICAgICAgICAgLy8gUG9wdXA6IFNhdmUNCiAgICAgICAgICAgICAgICBjYXNlIDA6DQogICAgICAgICAgICAgICAgICAgIGNtZCA9ICJzYXZlRmlsZXNYTUxUViI7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIC8vIFBvcHVwOiBVcGRhdGUNCiAgICAgICAgICAgICAgICBjYXNlIDE6DQogICAgICAgICAgICAgICAgICAgIGNtZCA9ICJ1cGRhdGVGaWxlWE1MVFYiOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGRhdGFbImZpbGVzIl0gPSB7fTsNCiAgICAgICAgICAgIGRhdGFbImZpbGVzIl1bZGF0YVR5cGVdID0ge307DQogICAgICAgICAgICBkYXRhWyJmaWxlcyJdW2RhdGFUeXBlXVtpZF0gPSBpbnB1dDsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJmaWx0ZXIiOg0KICAgICAgICAgICAgY29uZmlybU1zZyA9ICJEZWxldGUgdGhpcyBmaWx0ZXI/IjsNCiAgICAgICAgICAgIGNtZCA9ICJzYXZlRmlsdGVyIjsNCiAgICAgICAgICAgIGRhdGFbImZpbHRlciJdID0ge307DQogICAgICAgICAgICBkYXRhWyJmaWx0ZXIiXVtpZF0gPSBpbnB1dDsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBkZWZhdWx0Og0KICAgICAgICAgICAgcmV0dXJuOw0KICAgIH0NCiAgICBpZiAocmVtb3ZlID09IHRydWUpIHsNCiAgICAgICAgaWYgKCFjb25maXJtKGNvbmZpcm1Nc2cpKSB7DQogICAgICAgICAgICBzaG93RWxlbWVudCgicG9wdXAiLCBmYWxzZSk7DQogICAgICAgICAgICByZXR1cm47DQogICAgICAgIH0NCiAgICB9DQogICAgbGV0IHNlcnZlciA9IG5ldyBTZXJ2ZXIoY21kKTsNCiAgICBzZXJ2ZXIucmVxdWVzdChkYXRhKTsNCn0NCmZ1bmN0aW9uIGRvbmVQb3B1cERhdGEoZGF0YVR5cGUsIGlkc1N0cikgew0KICAgIGxldCBpZHMgPSBpZHNTdHIuc3BsaXQoJywnKTsNCiAgICBsZXQgZGl2ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInBvcHVwLWN1c3RvbSIpOw0KICAgIGxldCBpbnB1dHMgPSBkaXYuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSgiY2hhbmdlZCIpOw0KICAgIGlkcy5mb3JFYWNoKGlkID0+IHsNCiAgICAgICAgbGV0IGlucHV0Ow0KICAgICAgICBpbnB1dCA9IFNFUlZFUlsieGVwZyJdWyJlcGdNYXBwaW5nIl1baWRdOw0KICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGlucHV0cy5sZW5ndGg7IGkrKykgew0KICAgICAgICAgICAgbGV0IG5hbWU7DQogICAgICAgICAgICBsZXQgdmFsdWU7DQogICAgICAgICAgICBzd2l0Y2ggKGlucHV0c1tpXS50YWdOYW1lKSB7DQogICAgICAgICAgICAgICAgY2FzZSAiSU5QVVQiOg0KICAgICAgICAgICAgICAgICAgICBzd2l0Y2ggKGlucHV0c1tpXS50eXBlKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBjYXNlICJjaGVja2JveCI6DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZSA9IGlucHV0c1tpXS5uYW1lOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlID0gaW5wdXRzW2ldLmNoZWNrZWQ7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5wdXRbbmFtZV0gPSB2YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgInRleHQiOg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWUgPSBpbnB1dHNbaV0ubmFtZTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IGlucHV0c1tpXS52YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnB1dFtuYW1lXSA9IHZhbHVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgIlNFTEVDVCI6DQogICAgICAgICAgICAgICAgICAgIG5hbWUgPSBpbnB1dHNbaV0ubmFtZTsNCiAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSBpbnB1dHNbaV0udmFsdWU7DQogICAgICAgICAgICAgICAgICAgIGlucHV0W25hbWVdID0gdmFsdWU7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgc3dpdGNoIChuYW1lKSB7DQogICAgICAgICAgICAgICAgY2FzZSAidHZnLWxvZ28iOg0KICAgICAgICAgICAgICAgICAgICAvLyhkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkuY2hpbGROb2Rlc1syXS5maXJzdENoaWxkIGFzIEhUTUxFbGVtZW50KS5zZXRBdHRyaWJ1dGUoInNyYyIsIHZhbHVlKQ0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBjYXNlICJ4LW5hbWUiOg0KICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkuY2hpbGROb2Rlc1szXS5maXJzdENoaWxkLmlubmVySFRNTCA9IHZhbHVlOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBjYXNlICJ4LWNhdGVnb3J5IjoNCiAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpLmNoaWxkTm9kZXNbM10uZmlyc3RDaGlsZC5jbGFzc05hbWUgPSB2YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAidXBkYXRlLWNoYW5uZWwtbmFtZS1yZWdleCI6DQogICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5jaGlsZE5vZGVzWzRdLmZpcnN0Q2hpbGQuaW5uZXJIVE1MID0gdmFsdWU7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgIngtZ3JvdXAtdGl0bGUiOg0KICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkuY2hpbGROb2Rlc1s2XS5maXJzdENoaWxkLmlubmVySFRNTCA9IHZhbHVlOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBjYXNlICJ4LXhtbHR2LWZpbGUiOg0KICAgICAgICAgICAgICAgICAgICBpZiAodmFsdWUgIT0gInhUZVZlIER1bW15IiAmJiB2YWx1ZSAhPSAiLSIpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlID0gZ2V0VmFsdWVGcm9tUHJvdmlkZXJGaWxlKHZhbHVlLCAieG1sdHYiLCAibmFtZSIpOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIGlmICh2YWx1ZSA9PSAiLSIpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGlucHV0WyJ4LWFjdGl2ZSJdID0gZmFsc2U7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpLmNoaWxkTm9kZXNbN10uZmlyc3RDaGlsZC5pbm5lckhUTUwgPSB2YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAieC1tYXBwaW5nIjoNCiAgICAgICAgICAgICAgICAgICAgaWYgKHZhbHVlID09ICItIikgew0KICAgICAgICAgICAgICAgICAgICAgICAgaW5wdXRbIngtYWN0aXZlIl0gPSBmYWxzZTsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkuY2hpbGROb2Rlc1s4XS5maXJzdENoaWxkLmlubmVySFRNTCA9IHZhbHVlOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBjYXNlICJ4LXRpbWVzaGlmdCI6DQogICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5jaGlsZE5vZGVzWzldLmZpcnN0Q2hpbGQuaW5uZXJIVE1MID0gdmFsdWU7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICB9DQogICAgICAgICAgICBjcmVhdGVTZWFyY2hPYmooKTsNCiAgICAgICAgICAgIHNlYXJjaEluTWFwcGluZygpOw0KICAgICAgICB9DQogICAgICAgIGlmIChpbnB1dFsieC1hY3RpdmUiXSA9PSBmYWxzZSkgew0KICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpLmNsYXNzTmFtZSA9ICJub3RBY3RpdmVFUEciOw0KICAgICAgICB9DQogICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpLmNsYXNzTmFtZSA9ICJhY3RpdmVFUEciOw0KICAgICAgICB9DQogICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5jaGlsZE5vZGVzWzJdLmZpcnN0Q2hpbGQuc2V0QXR0cmlidXRlKCJzcmMiLCBpbnB1dFsidHZnLWxvZ28iXSk7DQogICAgfSk7DQogICAgc2hvd0VsZW1lbnQoInBvcHVwIiwgZmFsc2UpOw0KICAgIHJldHVybjsNCn0NCmZ1bmN0aW9uIHNob3dQcmV2aWV3KGVsZW1lbnQpIHsNCiAgICBsZXQgZGl2ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm15U3RyZWFtc0JveCIpOw0KICAgIHN3aXRjaCAoZWxlbWVudCkgew0KICAgICAgICBjYXNlIGZhbHNlOg0KICAgICAgICAgICAgZGl2LmNsYXNzTmFtZSA9ICJub3RWaXNpYmxlIjsNCiAgICAgICAgICAgIHJldHVybjsNCiAgICB9DQogICAgbGV0IHN0cmVhbXMgPSBbImFjdGl2ZVN0cmVhbXMiLCAiaW5hY3RpdmVTdHJlYW1zIl07DQogICAgc3RyZWFtcy5mb3JFYWNoKHByZXZpZXcgPT4gew0KICAgICAgICBsZXQgdGFibGUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChwcmV2aWV3KTsNCiAgICAgICAgdGFibGUuaW5uZXJIVE1MID0gIiI7DQogICAgICAgIGxldCBvYmogPSBTRVJWRVJbImRhdGEiXVsiU3RyZWFtUHJldmlld1VJIl1bcHJldmlld107DQogICAgICAgIG9iai5mb3JFYWNoKGNoYW5uZWwgPT4gew0KICAgICAgICAgICAgbGV0IHRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVFIiKTsNCiAgICAgICAgICAgIGxldCB0ZEtleSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICBsZXQgdGRWYWwgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgdGRLZXkuY2xhc3NOYW1lID0gInRkS2V5IjsNCiAgICAgICAgICAgIHRkVmFsLmNsYXNzTmFtZSA9ICJ0ZFZhbCI7DQogICAgICAgICAgICBzd2l0Y2ggKHByZXZpZXcpIHsNCiAgICAgICAgICAgICAgICBjYXNlICJhY3RpdmVTdHJlYW1zIjoNCiAgICAgICAgICAgICAgICAgICAgdGRLZXkuaW5uZXJUZXh0ID0gIkNoYW5uZWw6ICgrKSI7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgImluYWN0aXZlU3RyZWFtcyI6DQogICAgICAgICAgICAgICAgICAgIHRkS2V5LmlubmVyVGV4dCA9ICJDaGFubmVsOiAoLSkiOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIHRkVmFsLmlubmVyVGV4dCA9IGNoYW5uZWw7DQogICAgICAgICAgICB0ci5hcHBlbmRDaGlsZCh0ZEtleSk7DQogICAgICAgICAgICB0ci5hcHBlbmRDaGlsZCh0ZFZhbCk7DQogICAgICAgICAgICB0YWJsZS5hcHBlbmRDaGlsZCh0cik7DQogICAgICAgIH0pOw0KICAgIH0pOw0KICAgIHNob3dFbGVtZW50KCJsb2FkaW5nIiwgZmFsc2UpOw0KICAgIGRpdi5jbGFzc05hbWUgPSAidmlzaWJsZSI7DQogICAgcmV0dXJuOw0KfQ0K" webUI["html/js/network_ts.js"] = "Y2xhc3MgU2VydmVyIHsNCiAgICBjb25zdHJ1Y3RvcihjbWQpIHsNCiAgICAgICAgdGhpcy5jbWQgPSBjbWQ7DQogICAgfQ0KICAgIHJlcXVlc3QoZGF0YSkgew0KICAgICAgICBpZiAoU0VSVkVSX0NPTk5FQ1RJT04gPT0gdHJ1ZSkgew0KICAgICAgICAgICAgcmV0dXJuOw0KICAgICAgICB9DQogICAgICAgIFNFUlZFUl9DT05ORUNUSU9OID0gdHJ1ZTsNCiAgICAgICAgaWYgKHRoaXMuY21kICE9ICJ1cGRhdGVMb2ciKSB7DQogICAgICAgICAgICBzaG93RWxlbWVudCgibG9hZGluZyIsIHRydWUpOw0KICAgICAgICAgICAgVU5ETyA9IG5ldyBPYmplY3QoKTsNCiAgICAgICAgfQ0KICAgICAgICBzd2l0Y2ggKHdpbmRvdy5sb2NhdGlvbi5wcm90b2NvbCkgew0KICAgICAgICAgICAgY2FzZSAiaHR0cDoiOg0KICAgICAgICAgICAgICAgIHRoaXMucHJvdG9jb2wgPSAid3M6Ly8iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiaHR0cHM6IjoNCiAgICAgICAgICAgICAgICB0aGlzLnByb3RvY29sID0gIndzczovLyI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIH0NCiAgICAgICAgdmFyIHVybCA9IHRoaXMucHJvdG9jb2wgKyB3aW5kb3cubG9jYXRpb24uaG9zdG5hbWUgKyAiOiIgKyB3aW5kb3cubG9jYXRpb24ucG9ydCArICIvZGF0YS8iICsgIj9Ub2tlbj0iICsgZ2V0Q29va2llKCJUb2tlbiIpOw0KICAgICAgICBkYXRhWyJjbWQiXSA9IHRoaXMuY21kOw0KICAgICAgICB2YXIgd3MgPSBuZXcgV2ViU29ja2V0KHVybCk7DQogICAgICAgIHdzLm9ub3BlbiA9IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgICAgIFdTX0FWQUlMQUJMRSA9IHRydWU7DQogICAgICAgICAgICB0aGlzLnNlbmQoSlNPTi5zdHJpbmdpZnkoZGF0YSkpOw0KICAgICAgICB9Ow0KICAgICAgICB3cy5vbmVycm9yID0gZnVuY3Rpb24gKHdzRXJyRXZ0KSB7DQogICAgICAgICAgICBjb25zb2xlLmxvZygiTm8gd2Vic29ja2V0IGNvbm5lY3Rpb24gdG8geFRlVmUgY291bGQgYmUgZXN0YWJsaXNoZWQuIENoZWNrIHlvdXIgbmV0d29yayBjb25maWd1cmF0aW9uLiIpOw0KICAgICAgICAgICAgU0VSVkVSX0NPTk5FQ1RJT04gPSBmYWxzZTsNCiAgICAgICAgICAgIGlmIChXU19BVkFJTEFCTEUgPT0gZmFsc2UpIHsNCiAgICAgICAgICAgICAgICBhbGVydCgiTm8gd2Vic29ja2V0IGNvbm5lY3Rpb24gdG8geFRlVmUgY291bGQgYmUgZXN0YWJsaXNoZWQuIENoZWNrIHlvdXIgbmV0d29yayBjb25maWd1cmF0aW9uLiIpOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9Ow0KICAgICAgICB3cy5vbm1lc3NhZ2UgPSBmdW5jdGlvbiAod3NNZXNzYWdlRXZ0KSB7DQogICAgICAgICAgICBTRVJWRVJfQ09OTkVDVElPTiA9IGZhbHNlOw0KICAgICAgICAgICAgc2hvd0VsZW1lbnQoImxvYWRpbmciLCBmYWxzZSk7DQogICAgICAgICAgICBjb25zdCByZXNwb25zZSA9IEpTT04ucGFyc2Uod3NNZXNzYWdlRXZ0LmRhdGEpOw0KICAgICAgICAgICAgaWYgKHJlc3BvbnNlLmhhc093blByb3BlcnR5KCJ0b2tlbiIpKSB7DQogICAgICAgICAgICAgICAgZG9jdW1lbnQuY29va2llID0gIlRva2VuPSIgKyByZXNwb25zZVsidG9rZW4iXTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGlmIChyZXNwb25zZVsic3RhdHVzIl0gPT0gZmFsc2UpIHsNCiAgICAgICAgICAgICAgICBhbGVydChyZXNwb25zZVsiZXJyIl0pOw0KICAgICAgICAgICAgICAgIHJldHVybjsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGlmIChyZXNwb25zZS5oYXNPd25Qcm9wZXJ0eSgnb3BlbkxpbmsnKSkgew0KICAgICAgICAgICAgICAgIHdpbmRvdy5sb2NhdGlvbiA9IHJlc3BvbnNlWydvcGVuTGluayddOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgaWYgKHJlc3BvbnNlLmhhc093blByb3BlcnR5KCJyZWxvYWQiKSkgew0KICAgICAgICAgICAgICAgIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGlmIChyZXNwb25zZS5oYXNPd25Qcm9wZXJ0eSgiYWxlcnQiKSkgew0KICAgICAgICAgICAgICAgIGFsZXJ0KHJlc3BvbnNlWyJhbGVydCJdKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGlmIChyZXNwb25zZS5oYXNPd25Qcm9wZXJ0eSgibG9nb1VSTCIpKSB7DQogICAgICAgICAgICAgICAgdmFyIGRpdiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjaGFubmVsLWljb24iKTsNCiAgICAgICAgICAgICAgICBkaXYudmFsdWUgPSByZXNwb25zZVsibG9nb1VSTCJdOw0KICAgICAgICAgICAgICAgIGRpdi5jbGFzc05hbWUgPSAiY2hhbmdlZCI7DQogICAgICAgICAgICAgICAgcmV0dXJuOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgc3dpdGNoIChkYXRhWyJjbWQiXSkgew0KICAgICAgICAgICAgICAgIGNhc2UgInVwZGF0ZUxvZyI6DQogICAgICAgICAgICAgICAgICAgIFNFUlZFUlsibG9nIl0gPSByZXNwb25zZVsibG9nIl07DQogICAgICAgICAgICAgICAgICAgIGlmIChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29udGVudF9sb2ciKSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgc2hvd0xvZ3MoZmFsc2UpOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIHJldHVybjsNCiAgICAgICAgICAgICAgICBkZWZhdWx0Og0KICAgICAgICAgICAgICAgICAgICBTRVJWRVIgPSBuZXcgT2JqZWN0KCk7DQogICAgICAgICAgICAgICAgICAgIFNFUlZFUiA9IHJlc3BvbnNlOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGlmIChyZXNwb25zZS5oYXNPd25Qcm9wZXJ0eSgib3Blbk1lbnUiKSkgew0KICAgICAgICAgICAgICAgIHZhciBtZW51ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQocmVzcG9uc2VbIm9wZW5NZW51Il0pOw0KICAgICAgICAgICAgICAgIG1lbnUuY2xpY2soKTsNCiAgICAgICAgICAgICAgICBzaG93RWxlbWVudCgicG9wdXAiLCBmYWxzZSk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBpZiAocmVzcG9uc2UuaGFzT3duUHJvcGVydHkoInJlbG9hZCIpKSB7DQogICAgICAgICAgICAgICAgbG9jYXRpb24ucmVsb2FkKCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBpZiAocmVzcG9uc2UuaGFzT3duUHJvcGVydHkoIndpemFyZCIpKSB7DQogICAgICAgICAgICAgICAgY3JlYXRlTGF5b3V0KCk7DQogICAgICAgICAgICAgICAgY29uZmlndXJhdGlvbldpemFyZFtyZXNwb25zZVsid2l6YXJkIl1dLmNyZWF0ZVdpemFyZCgpOw0KICAgICAgICAgICAgICAgIHJldHVybjsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGNyZWF0ZUxheW91dCgpOw0KICAgICAgICB9Ow0KICAgIH0NCn0NCmZ1bmN0aW9uIGdldENvb2tpZShuYW1lKSB7DQogICAgdmFyIHZhbHVlID0gIjsgIiArIGRvY3VtZW50LmNvb2tpZTsNCiAgICB2YXIgcGFydHMgPSB2YWx1ZS5zcGxpdCgiOyAiICsgbmFtZSArICI9Iik7DQogICAgaWYgKHBhcnRzLmxlbmd0aCA9PSAyKSB7DQogICAgICAgIHJldHVybiBwYXJ0cy5wb3AoKS5zcGxpdCgiOyIpLnNoaWZ0KCk7DQogICAgfQ0KfQ0K" - webUI["html/js/settings_ts.js"] = "Y2xhc3MgU2V0dGluZ3NDYXRlZ29yeSB7DQogICAgY29uc3RydWN0b3IoKSB7DQogICAgICAgIHRoaXMuRG9jdW1lbnRJRCA9ICJjb250ZW50X3NldHRpbmdzIjsNCiAgICB9DQogICAgY3JlYXRlQ2F0ZWdvcnlIZWFkbGluZSh2YWx1ZSkgew0KICAgICAgICB2YXIgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIkg0Iik7DQogICAgICAgIGVsZW1lbnQuaW5uZXJIVE1MID0gdmFsdWU7DQogICAgICAgIHJldHVybiBlbGVtZW50Ow0KICAgIH0NCiAgICBjcmVhdGVIUigpIHsNCiAgICAgICAgdmFyIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJIUiIpOw0KICAgICAgICByZXR1cm4gZWxlbWVudDsNCiAgICB9DQogICAgY3JlYXRlU2V0dGluZ3Moc2V0dGluZ3NLZXkpIHsNCiAgICAgICAgdmFyIHNldHRpbmcgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJUUiIpOw0KICAgICAgICB2YXIgY29udGVudCA9IG5ldyBQb3B1cENvbnRlbnQoKTsNCiAgICAgICAgdmFyIGRhdGEgPSBTRVJWRVJbInNldHRpbmdzIl1bc2V0dGluZ3NLZXldOw0KICAgICAgICBzd2l0Y2ggKHNldHRpbmdzS2V5KSB7DQogICAgICAgICAgICAvLyBUZXh0IGlucHV0cw0KICAgICAgICAgICAgY2FzZSAidXBkYXRlIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLnVwZGF0ZS50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsICJ1cGRhdGUiLCBkYXRhLnRvU3RyaW5nKCkpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3suc2V0dGluZ3MudXBkYXRlLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJiYWNrdXAucGF0aCI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5iYWNrdXBQYXRoLnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgImJhY2t1cC5wYXRoIiwgZGF0YSk7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5zZXR0aW5ncy5iYWNrdXBQYXRoLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ0ZW1wLnBhdGgiOg0KICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MudGVtcFBhdGgudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCAidGVtcC5wYXRoIiwgZGF0YSk7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5zZXR0aW5ncy50bXBQYXRoLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ1c2VyLmFnZW50IjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLnVzZXJBZ2VudC50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsICJ1c2VyLmFnZW50IiwgZGF0YSk7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5zZXR0aW5ncy51c2VyQWdlbnQucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImJ1ZmZlci50aW1lb3V0IjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmJ1ZmZlclRpbWVvdXQudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCAiYnVmZmVyLnRpbWVvdXQiLCBkYXRhKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnNldHRpbmdzLmJ1ZmZlclRpbWVvdXQucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImZmbXBlZy5wYXRoIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmZmbXBlZ1BhdGgudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCAiZmZtcGVnLnBhdGgiLCBkYXRhKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnNldHRpbmdzLmZmbXBlZ1BhdGgucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImZmbXBlZy5vcHRpb25zIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmZmbXBlZ09wdGlvbnMudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCAiZmZtcGVnLm9wdGlvbnMiLCBkYXRhKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnNldHRpbmdzLmZmbXBlZ09wdGlvbnMucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInZsYy5wYXRoIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLnZsY1BhdGgudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCAidmxjLnBhdGgiLCBkYXRhKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnNldHRpbmdzLnZsY1BhdGgucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInZsYy5vcHRpb25zIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLnZsY09wdGlvbnMudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCAidmxjLm9wdGlvbnMiLCBkYXRhKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnNldHRpbmdzLnZsY09wdGlvbnMucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIC8vIENoZWNrYm94ZXMNCiAgICAgICAgICAgIGNhc2UgInRsc01vZGUiOg0KICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MudGxzTW9kZS50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChzZXR0aW5nc0tleSk7DQogICAgICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGE7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiZGlzYWxsb3dVUkxEdXBsaWNhdGVzIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmRpc2FsbG93VVJMRHVwbGljYXRlcy50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChzZXR0aW5nc0tleSk7DQogICAgICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGE7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiYXV0aGVudGljYXRpb24ud2ViIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmF1dGhlbnRpY2F0aW9uV0VCLnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KHNldHRpbmdzS2V5KTsNCiAgICAgICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJhdXRoZW50aWNhdGlvbi5wbXMiOg0KICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MuYXV0aGVudGljYXRpb25QTVMudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goc2V0dGluZ3NLZXkpOw0KICAgICAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImF1dGhlbnRpY2F0aW9uLm0zdSI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5hdXRoZW50aWNhdGlvbk0zVS50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChzZXR0aW5nc0tleSk7DQogICAgICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGE7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiYXV0aGVudGljYXRpb24ueG1sIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmF1dGhlbnRpY2F0aW9uWE1MLnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KHNldHRpbmdzS2V5KTsNCiAgICAgICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJhdXRoZW50aWNhdGlvbi5hcGkiOg0KICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MuYXV0aGVudGljYXRpb25BUEkudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goc2V0dGluZ3NLZXkpOw0KICAgICAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImZpbGVzLnVwZGF0ZSI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5maWxlc1VwZGF0ZS50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChzZXR0aW5nc0tleSk7DQogICAgICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGE7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiY2FjaGUuaW1hZ2VzIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmNhY2hlSW1hZ2VzLnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KHNldHRpbmdzS2V5KTsNCiAgICAgICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ4ZXBnLnJlcGxhY2UubWlzc2luZy5pbWFnZXMiOg0KICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MucmVwbGFjZUVtcHR5SW1hZ2VzLnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KHNldHRpbmdzS2V5KTsNCiAgICAgICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJzdG9yZUJ1ZmZlckluUkFNIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLnN0b3JlQnVmZmVySW5SQU0udGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goc2V0dGluZ3NLZXkpOw0KICAgICAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInh0ZXZlQXV0b1VwZGF0ZSI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy54dGV2ZUF1dG9VcGRhdGUudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goc2V0dGluZ3NLZXkpOw0KICAgICAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImFwaSI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5hcGkudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goc2V0dGluZ3NLZXkpOw0KICAgICAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIC8vIFNlbGVjdA0KICAgICAgICAgICAgY2FzZSAiaG9zdElQIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmhvc3RJUC50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIHRleHQgPSBTRVJWRVJbImlwQWRkcmVzc2VzVjRIb3N0Il07DQogICAgICAgICAgICAgICAgdmFyIHZhbHVlcyA9IFNFUlZFUlsiaXBBZGRyZXNzZXNWNEhvc3QiXTsNCiAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCBkYXRhLCBzZXR0aW5nc0tleSk7DQogICAgICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKHNlbGVjdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ0dW5lciI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy50dW5lci50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIHRleHQgPSBuZXcgQXJyYXkoKTsNCiAgICAgICAgICAgICAgICB2YXIgdmFsdWVzID0gbmV3IEFycmF5KCk7DQogICAgICAgICAgICAgICAgZm9yICh2YXIgaSA9IDE7IGkgPD0gMTAwOyBpKyspIHsNCiAgICAgICAgICAgICAgICAgICAgdGV4dC5wdXNoKGkpOw0KICAgICAgICAgICAgICAgICAgICB2YWx1ZXMucHVzaChpKTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgdmFyIHNlbGVjdCA9IGNvbnRlbnQuY3JlYXRlU2VsZWN0KHRleHQsIHZhbHVlcywgZGF0YSwgc2V0dGluZ3NLZXkpOw0KICAgICAgICAgICAgICAgIHNlbGVjdC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChzZWxlY3QpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiZXBnU291cmNlIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmVwZ1NvdXJjZS50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIHRleHQgPSBbIlBNUyIsICJYRVBHIl07DQogICAgICAgICAgICAgICAgdmFyIHZhbHVlcyA9IFsiUE1TIiwgIlhFUEciXTsNCiAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCBkYXRhLCBzZXR0aW5nc0tleSk7DQogICAgICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKHNlbGVjdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJiYWNrdXAua2VlcCI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5iYWNrdXBLZWVwLnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgdGV4dCA9IFsiNSIsICIxMCIsICIyMCIsICIzMCIsICI0MCIsICI1MCJdOw0KICAgICAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBbIjUiLCAiMTAiLCAiMjAiLCAiMzAiLCAiNDAiLCAiNTAiXTsNCiAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCBkYXRhLCBzZXR0aW5nc0tleSk7DQogICAgICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKHNlbGVjdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJidWZmZXIuc2l6ZS5rYiI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5idWZmZXJTaXplLnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgdGV4dCA9IFsiMC41IE1CIiwgIjEgTUIiLCAiMiBNQiIsICIzIE1CIiwgIjQgTUIiLCAiNSBNQiIsICI2IE1CIiwgIjcgTUIiLCAiOCBNQiJdOw0KICAgICAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBbIjUxMiIsICIxMDI0IiwgIjIwNDgiLCAiMzA3MiIsICI0MDk2IiwgIjUxMjAiLCAiNjE0NCIsICI3MTY4IiwgIjgxOTIiXTsNCiAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCBkYXRhLCBzZXR0aW5nc0tleSk7DQogICAgICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKHNlbGVjdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJidWZmZXIiOg0KICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3Muc3RyZWFtQnVmZmVyaW5nLnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgdGV4dCA9IFsie3suc2V0dGluZ3Muc3RyZWFtQnVmZmVyaW5nLmluZm9fZmFsc2V9fSIsICJ4VGVWZTogKHt7LnNldHRpbmdzLnN0cmVhbUJ1ZmZlcmluZy5pbmZvX3h0ZXZlfX0pIiwgIkZGbXBlZzogKHt7LnNldHRpbmdzLnN0cmVhbUJ1ZmZlcmluZy5pbmZvX2ZmbXBlZ319KSIsICJWTEM6ICh7ey5zZXR0aW5ncy5zdHJlYW1CdWZmZXJpbmcuaW5mb192bGN9fSkiXTsNCiAgICAgICAgICAgICAgICB2YXIgdmFsdWVzID0gWyItIiwgInh0ZXZlIiwgImZmbXBlZyIsICJ2bGMiXTsNCiAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCBkYXRhLCBzZXR0aW5nc0tleSk7DQogICAgICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKHNlbGVjdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ1ZHB4eSI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy51ZHB4eS50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsICJ1ZHB4eSIsIGRhdGEpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3suc2V0dGluZ3MudWRweHkucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgfQ0KICAgICAgICByZXR1cm4gc2V0dGluZzsNCiAgICB9DQogICAgY3JlYXRlRGVzY3JpcHRpb24oc2V0dGluZ3NLZXkpIHsNCiAgICAgICAgdmFyIGRlc2NyaXB0aW9uID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVFIiKTsNCiAgICAgICAgdmFyIHRleHQ7DQogICAgICAgIHN3aXRjaCAoc2V0dGluZ3NLZXkpIHsNCiAgICAgICAgICAgIGNhc2UgInRsc01vZGUiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MudGxzTW9kZS5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImRpc2FsbG93VVJMRHVwbGljYXRlcyI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5kaXNhbGxvd1VSTER1cGxpY2F0ZXMuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJhdXRoZW50aWNhdGlvbi53ZWIiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MuYXV0aGVudGljYXRpb25XRUIuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJhdXRoZW50aWNhdGlvbi5tM3UiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MuYXV0aGVudGljYXRpb25NM1UuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJhdXRoZW50aWNhdGlvbi5wbXMiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MuYXV0aGVudGljYXRpb25QTVMuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJhdXRoZW50aWNhdGlvbi54bWwiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MuYXV0aGVudGljYXRpb25YTUwuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJhdXRoZW50aWNhdGlvbi5hcGkiOg0KICAgICAgICAgICAgICAgIGlmIChTRVJWRVJbInNldHRpbmdzIl1bImF1dGhlbnRpY2F0aW9uLndlYiJdID09IHRydWUpIHsNCiAgICAgICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5hdXRoZW50aWNhdGlvbkFQSS5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ4dGV2ZUF1dG9VcGRhdGUiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MueHRldmVBdXRvVXBkYXRlLmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiYmFja3VwLmtlZXAiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MuYmFja3VwS2VlcC5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImJhY2t1cC5wYXRoIjoNCiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLmJhY2t1cFBhdGguZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ0ZW1wLnBhdGgiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MudGVtcFBhdGguZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJidWZmZXIiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3Muc3RyZWFtQnVmZmVyaW5nLmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiYnVmZmVyLnNpemUua2IiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MuYnVmZmVyU2l6ZS5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInN0b3JlQnVmZmVySW5SQU0iOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3Muc3RvcmVCdWZmZXJJblJBTS5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImJ1ZmZlci50aW1lb3V0IjoNCiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLmJ1ZmZlclRpbWVvdXQuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ1c2VyLmFnZW50IjoNCiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLnVzZXJBZ2VudC5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImZmbXBlZy5wYXRoIjoNCiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLmZmbXBlZ1BhdGguZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJmZm1wZWcub3B0aW9ucyI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5mZm1wZWdPcHRpb25zLmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAidmxjLnBhdGgiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MudmxjUGF0aC5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInZsYy5vcHRpb25zIjoNCiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLnZsY09wdGlvbnMuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJlcGdTb3VyY2UiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MuZXBnU291cmNlLmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiaG9zdElQIjoNCiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLmhvc3RJUC5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInR1bmVyIjoNCiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLnR1bmVyLmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAidXBkYXRlIjoNCiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLnVwZGF0ZS5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImFwaSI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5hcGkuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJmaWxlcy51cGRhdGUiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MuZmlsZXNVcGRhdGUuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJjYWNoZS5pbWFnZXMiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MuY2FjaGVJbWFnZXMuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ4ZXBnLnJlcGxhY2UubWlzc2luZy5pbWFnZXMiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MucmVwbGFjZUVtcHR5SW1hZ2VzLmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAidWRweHkiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MudWRweHkuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBkZWZhdWx0Og0KICAgICAgICAgICAgICAgIHRleHQgPSAiIjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgfQ0KICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICIiOw0KICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgIHZhciBwcmUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJQUkUiKTsNCiAgICAgICAgcHJlLmlubmVySFRNTCA9IHRleHQ7DQogICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQocHJlKTsNCiAgICAgICAgZGVzY3JpcHRpb24uYXBwZW5kQ2hpbGQodGRMZWZ0KTsNCiAgICAgICAgZGVzY3JpcHRpb24uYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgIHJldHVybiBkZXNjcmlwdGlvbjsNCiAgICB9DQp9DQpjbGFzcyBTZXR0aW5nc0NhdGVnb3J5SXRlbSBleHRlbmRzIFNldHRpbmdzQ2F0ZWdvcnkgew0KICAgIGNvbnN0cnVjdG9yKGhlYWRsaW5lLCBzZXR0aW5nc0tleXMpIHsNCiAgICAgICAgc3VwZXIoKTsNCiAgICAgICAgdGhpcy5oZWFkbGluZSA9IGhlYWRsaW5lOw0KICAgICAgICB0aGlzLnNldHRpbmdzS2V5cyA9IHNldHRpbmdzS2V5czsNCiAgICB9DQogICAgY3JlYXRlQ2F0ZWdvcnkoKSB7DQogICAgICAgIHZhciBoZWFkbGluZSA9IHRoaXMuY3JlYXRlQ2F0ZWdvcnlIZWFkbGluZSh0aGlzLmhlYWRsaW5lKTsNCiAgICAgICAgdmFyIHNldHRpbmdzS2V5cyA9IHRoaXMuc2V0dGluZ3NLZXlzOw0KICAgICAgICB2YXIgZG9jID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQodGhpcy5Eb2N1bWVudElEKTsNCiAgICAgICAgZG9jLmFwcGVuZENoaWxkKGhlYWRsaW5lKTsNCiAgICAgICAgLy8gQ3JlYXRlIGEgdGFibGUgZm9yIHRoZSBjYXRlZ29yeQ0KICAgICAgICB2YXIgdGFibGUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJUQUJMRSIpOw0KICAgICAgICB2YXIga2V5cyA9IHNldHRpbmdzS2V5cy5zcGxpdCgiLCIpOw0KICAgICAgICBrZXlzLmZvckVhY2goc2V0dGluZ3NLZXkgPT4gew0KICAgICAgICAgICAgc3dpdGNoIChzZXR0aW5nc0tleSkgew0KICAgICAgICAgICAgICAgIGNhc2UgImF1dGhlbnRpY2F0aW9uLnBtcyI6DQogICAgICAgICAgICAgICAgY2FzZSAiYXV0aGVudGljYXRpb24ubTN1IjoNCiAgICAgICAgICAgICAgICBjYXNlICJhdXRoZW50aWNhdGlvbi54bWwiOg0KICAgICAgICAgICAgICAgIGNhc2UgImF1dGhlbnRpY2F0aW9uLmFwaSI6DQogICAgICAgICAgICAgICAgICAgIGlmIChTRVJWRVJbInNldHRpbmdzIl1bImF1dGhlbnRpY2F0aW9uLndlYiJdID09IGZhbHNlKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICAgICAgICAgIHZhciBpdGVtID0gdGhpcy5jcmVhdGVTZXR0aW5ncyhzZXR0aW5nc0tleSk7DQogICAgICAgICAgICAgICAgICAgIHZhciBkZXNjcmlwdGlvbiA9IHRoaXMuY3JlYXRlRGVzY3JpcHRpb24oc2V0dGluZ3NLZXkpOw0KICAgICAgICAgICAgICAgICAgICB0YWJsZS5hcHBlbmRDaGlsZChpdGVtKTsNCiAgICAgICAgICAgICAgICAgICAgdGFibGUuYXBwZW5kQ2hpbGQoZGVzY3JpcHRpb24pOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfSk7DQogICAgICAgIGRvYy5hcHBlbmRDaGlsZCh0YWJsZSk7DQogICAgICAgIGRvYy5hcHBlbmRDaGlsZCh0aGlzLmNyZWF0ZUhSKCkpOw0KICAgIH0NCn0NCmZ1bmN0aW9uIHNob3dTZXR0aW5ncygpIHsNCiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHNldHRpbmdzQ2F0ZWdvcnkubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgc2V0dGluZ3NDYXRlZ29yeVtpXS5jcmVhdGVDYXRlZ29yeSgpOw0KICAgIH0NCn0NCmZ1bmN0aW9uIHNhdmVTZXR0aW5ncygpIHsNCiAgICB2YXIgY21kID0gInNhdmVTZXR0aW5ncyI7DQogICAgdmFyIGRpdiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb250ZW50X3NldHRpbmdzIik7DQogICAgdmFyIHNldHRpbmdzID0gZGl2LmdldEVsZW1lbnRzQnlDbGFzc05hbWUoImNoYW5nZWQiKTsNCiAgICB2YXIgbmV3U2V0dGluZ3MgPSBuZXcgT2JqZWN0KCk7DQogICAgZm9yIChsZXQgaSA9IDA7IGkgPCBzZXR0aW5ncy5sZW5ndGg7IGkrKykgew0KICAgICAgICB2YXIgbmFtZTsNCiAgICAgICAgdmFyIHZhbHVlOw0KICAgICAgICBzd2l0Y2ggKHNldHRpbmdzW2ldLnRhZ05hbWUpIHsNCiAgICAgICAgICAgIGNhc2UgIklOUFVUIjoNCiAgICAgICAgICAgICAgICBzd2l0Y2ggKHNldHRpbmdzW2ldLnR5cGUpIHsNCiAgICAgICAgICAgICAgICAgICAgY2FzZSAiY2hlY2tib3giOg0KICAgICAgICAgICAgICAgICAgICAgICAgbmFtZSA9IHNldHRpbmdzW2ldLm5hbWU7DQogICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IHNldHRpbmdzW2ldLmNoZWNrZWQ7DQogICAgICAgICAgICAgICAgICAgICAgICBuZXdTZXR0aW5nc1tuYW1lXSA9IHZhbHVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgICAgIGNhc2UgInRleHQiOg0KICAgICAgICAgICAgICAgICAgICAgICAgbmFtZSA9IHNldHRpbmdzW2ldLm5hbWU7DQogICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IHNldHRpbmdzW2ldLnZhbHVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgc3dpdGNoIChuYW1lKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAidXBkYXRlIjoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSB2YWx1ZS5zcGxpdCgiLCIpOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IHZhbHVlLmZpbHRlcihmdW5jdGlvbiAoZSkgeyByZXR1cm4gZTsgfSk7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgImJ1ZmZlci50aW1lb3V0IjoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSBwYXJzZUZsb2F0KHZhbHVlKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgIG5ld1NldHRpbmdzW25hbWVdID0gdmFsdWU7DQogICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJTRUxFQ1QiOg0KICAgICAgICAgICAgICAgIG5hbWUgPSBzZXR0aW5nc1tpXS5uYW1lOw0KICAgICAgICAgICAgICAgIHZhbHVlID0gc2V0dGluZ3NbaV0udmFsdWU7DQogICAgICAgICAgICAgICAgLy8gSWYgdGhlIHZhbHVlIGlzIGEgbnVtYmVyLCBzdG9yZSBpdCBhcyBhIG51bWJlcg0KICAgICAgICAgICAgICAgIGlmIChpc05hTih2YWx1ZSkpIHsNCiAgICAgICAgICAgICAgICAgICAgbmV3U2V0dGluZ3NbbmFtZV0gPSB2YWx1ZTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgZWxzZSB7DQogICAgICAgICAgICAgICAgICAgIG5ld1NldHRpbmdzW25hbWVdID0gcGFyc2VJbnQodmFsdWUpOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgfQ0KICAgIH0NCiAgICB2YXIgZGF0YSA9IG5ldyBPYmplY3QoKTsNCiAgICBkYXRhWyJzZXR0aW5ncyJdID0gbmV3U2V0dGluZ3M7DQogICAgdmFyIHNlcnZlciA9IG5ldyBTZXJ2ZXIoY21kKTsNCiAgICBzZXJ2ZXIucmVxdWVzdChkYXRhKTsNCn0NCg==" - webUI["html/lang/en.json"] = "ew0KICAibWFpbk1lbnUiOg0KICB7DQogICAgIml0ZW0iOg0KICAgIHsNCiAgICAgICJwbGF5bGlzdCI6ICJQbGF5bGlzdCIsDQogICAgICAicG1zSUQiOiAiUE1TIElEIiwNCiAgICAgICJmaWx0ZXIiOiAiRmlsdGVyIiwNCiAgICAgICJ4bWx0diI6ICJYTUxUViIsDQogICAgICAibWFwcGluZyI6ICJNYXBwaW5nIiwNCiAgICAgICJ1c2VycyI6ICJVc2VycyIsDQogICAgICAic2V0dGluZ3MiOiAiU2V0dGluZ3MiLA0KICAgICAgImxvZyI6ICJMb2ciLA0KICAgICAgImxvZ291dCI6ICJMb2dvdXQiDQogICAgfSwNCiAgICAiaGVhZGxpbmUiOg0KICAgIHsNCiAgICAgICJwbGF5bGlzdCI6ICJMb2NhbCBvciByZW1vdGUgcGxheWxpc3RzIiwNCiAgICAgICJmaWx0ZXIiOiAiRmlsdGVyIHBsYXlsaXN0IiwNCiAgICAgICJ4bWx0diI6ICJMb2NhbCBvciByZW1vdGUgWE1MVFYgZmlsZXMiLA0KICAgICAgIm1hcHBpbmciOiAiTWFwIHBsYXlsaXN0IGNoYW5uZWxzIHRvIEVQRyBjaGFubmVscyIsDQogICAgICAidXNlcnMiOiAiVXNlciBtYW5hZ2VtZW50IiwNCiAgICAgICJzZXR0aW5ncyI6ICJTZXR0aW5ncyIsDQogICAgICAibG9nIjogIkxvZyIsDQogICAgICAibG9nb3V0IjogIkxvZ291dCINCiAgICB9DQogIH0sDQogICJjb25maXJtIjoNCiAgew0KICAgICJyZXN0b3JlIjogIkFsbCBkYXRhIHdpbGwgYmUgcmVwbGFjZWQgd2l0aCB0aG9zZSBmcm9tIHRoZSBiYWNrdXAuIFNob3VsZCB0aGUgZmlsZXMgYmUgcmVzdG9yZWQ/Ig0KICB9LA0KICAiYWxlcnQiOg0KICB7DQogICAgImZpbGVMb2FkaW5nRXJyb3IiOiAiRmlsZSBjb3VsZG4ndCBiZSBsb2FkZWQiLA0KICAgICJpbnZhbGlkQ2hhbm5lbE51bWJlciI6ICJJbnZhbGlkIGNoYW5uZWwgbnVtYmVyIiwNCiAgICAibWlzc2luZ0lucHV0IjogIk1pc3NpbmcgaW5wdXQiDQogIH0sDQogICJidXR0b24iOg0KICB7DQogICAgImJhY2siOiAiQmFjayIsDQogICAgImJhY2t1cCI6ICJCYWNrdXAiLA0KICAgICJidWxrRWRpdCI6ICJCdWxrIEVkaXQiLA0KICAgICJjYW5jZWwiOiAiQ2FuY2VsIiwNCiAgICAiZGVsZXRlIjogIkRlbGV0ZSIsDQogICAgImRvbmUiOiAiRG9uZSIsDQogICAgImxvZ2luIjogIkxvZ2luIiwNCiAgICAibmV3IjogIk5ldyIsDQogICAgIm5leHQiOiAiTmV4dCIsDQogICAgInJlc3RvcmUiOiAiUmVzdG9yZSIsDQogICAgInNhdmUiOiAiU2F2ZSIsDQogICAgInNlYXJjaCI6ICJTZWFyY2giLA0KICAgICJ1cGRhdGUiOiAiVXBkYXRlIiwNCiAgICAiY3JhZXRlQWNjb3VudCI6ICJDcmVhdGUgQWNjb3VudCIsDQogICAgInJlc2V0TG9ncyI6ICJSZXNldCBMb2dzIiwNCiAgICAidXBsb2FkTG9nbyI6ICJVcGxvYWQgTG9nbyINCiAgfSwNCiAgImZpbHRlciI6DQogIHsNCiAgICAidGFibGUiOg0KICAgIHsNCiAgICAgICJzdGFydGluZ0NoYW5uZWwiOiAiU3RhcnRpbmcgQ2guIE5vLiIsDQogICAgICAibmFtZSI6ICJGaWx0ZXIgTmFtZSIsDQogICAgICAidHlwZSI6ICJGaWx0ZXIgVHlwZSIsDQogICAgICAiZmlsdGVyIjogIkZpbHRlciINCiAgICB9LA0KICAgICJjdXN0b20iOiAiQ3VzdG9tIiwNCiAgICAiZ3JvdXAiOiAiTTNVIEdyb3VwIiwNCiAgICAibmFtZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIkZpbHRlciBOYW1lIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJGaWx0ZXIgbmFtZSIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgImRlc2NyaXB0aW9uIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiRGVzY3JpcHRpb24iLA0KICAgICAgInBsYWNlaG9sZGVyIjogIkRlc2NyaXB0aW9uIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAidHlwZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIlR5cGUiLA0KICAgICAgImdyb3VwVGl0bGUiOiAiR3JvdXAgVGl0bGUiLA0KICAgICAgImN1c3RvbUZpbHRlciI6ICJDdXN0b20gRmlsdGVyIg0KICAgIH0sDQogICAgImNhc2VTZW5zaXRpdmUiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJDYXNlIFNlbnNpdGl2ZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAiZmlsdGVyUnVsZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIkZpbHRlciBSdWxlIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJTcG9ydCB7SER9ICF7RVMsSVR9IiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAiZmlsdGVyR3JvdXAiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJHcm91cCBUaXRsZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJTZWxlY3QgYSBNM1UgZ3JvdXAuIChDb3VudGVyKTxicj5DaGFuZ2luZyB0aGUgZ3JvdXAgdGl0bGUgaW4gdGhlIE0zVSBpbnZhbGlkYXRlcyB0aGUgZmlsdGVyLiINCiAgICB9LA0KICAgICJpbmNsdWRlIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiSW5jbHVkZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiRkhELFVIRCIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiQ2hhbm5lbCBuYW1lIG11c3QgaW5jbHVkZS48YnI+KENvbW1hIHNlcGFyYXRlZCkgQ29tbWEgbWVhbnMgb3IiDQogICAgfSwNCiAgICAiZXhjbHVkZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIkV4Y2x1ZGUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIkVTLElUIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJDaGFubmVsIG5hbWUgbXVzdCBub3QgY29udGFpbi48YnI+KENvbW1hIHNlcGFyYXRlZCkgQ29tbWEgbWVhbnMgb3IiDQogICAgfSwNCiAgICAicHJlc2VydmVNYXBwaW5nIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiUHJlc2VydmUgRXhpc3RpbmcgTTNVPGJyPkNoYW5uZWwgTnVtYmVycyIsDQogICAgICAicGFsY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJQcmVzZXJ2ZSBleGlzdGluZyBNM1UgcGxheWxpc3QgY2hhbm5lbCBudW1iZXJzPyINCiAgICB9LA0KICAgICJzdGFydGluZ0NoYW5uZWwiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJTdGFydGluZyBDaGFubmVsIE51bWJlciIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAiZGVmYXVsdE1pc3NpbmdFUEciOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJGaWxsIE1pc3NpbmcgRVBHIERhdGEiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiV2hlbiB0aGVyZSBpcyBubyBtYXRjaGluZyBFUEcgZGF0YSBmb3IgY2hhbm5lbCwgPGJyPmF1dG9maWxsIHdpdGggeFRlVmUgZHVtbXkgRVBHIGRhdGE/Ig0KICAgIH0NCg0KICB9LA0KICAicGxheWxpc3QiOg0KICB7DQogICAgInRhYmxlIjoNCiAgICB7DQogICAgICAicGxheWxpc3QiOiAiUGxheWxpc3QiLA0KICAgICAgInR1bmVyIjogIlR1bmVyIiwNCiAgICAgICJsYXN0VXBkYXRlIjogIkxhc3QgVXBkYXRlIiwNCiAgICAgICJhdmFpbGFiaWxpdHkiOiAiQXZhaWxhYmlsaXR5IiwNCiAgICAgICJ0eXBlIjogIlR5cGUiLA0KICAgICAgInN0cmVhbXMiOiAiU3RyZWFtcyIsDQogICAgICAiZ3JvdXBUaXRsZSI6ICJncm91cC10aXRsZSIsDQogICAgICAidHZnSUQiOiAidHZnLWlkIiwNCiAgICAgICJ1bmlxdWVJRCI6ICJVbmlxdWUgSUQiDQogICAgfSwNCiAgICAicGxheWxpc3RUeXBlIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiUGxheWxpc3QgdHlwZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAidHlwZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIlR5cGUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgIm5hbWUiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJOYW1lIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJQbGF5bGlzdCBuYW1lIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAiZGVzY3JpcHRpb24iOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJEZXNjcmlwdGlvbiIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiRGVzY3JpcHRpb24iLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJmaWxlTTNVIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiTTNVIEZpbGUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIkZpbGUgcGF0aCBvciBVUkwgb2YgdGhlIE0zVSIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgImZpbGVIREhSIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiSERIb21lUnVuIElQIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJJUCBhZGRyZXNzIGFuZCBwb3J0ICgxOTIuMTY4LjEuMTA6NTAwNCkiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJ0dW5lciI6DQogICAgew0KICAgICAgInRpdGxlIjogIlR1bmVyIC8gU3RyZWFtcyIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJOdW1iZXIgb2YgcGFyYWxsZWwgY29ubmVjdGlvbnMgdGhhdCBjYW4gYmUgZXN0YWJsaXNoZWQgdG8gdGhlIHByb3ZpZGVyLiA8YnI+T25seSBhdmFpbGFibGUgd2l0aCBhY3RpdmF0ZWQgYnVmZmVyLjxicj5OZXcgc2V0dGluZ3Mgd2lsbCBvbmx5IGJlIGFwcGxpZWQgYWZ0ZXIgcXVpdHRpbmcgYWxsIHN0cmVhbXMuIg0KICAgIH0NCiAgfSwNCiAgInhtbHR2IjoNCiAgew0KICAgICJ0YWJsZSI6DQogICAgew0KICAgICAgImd1aWRlIjogIkd1aWRlIiwNCiAgICAgICJsYXN0VXBkYXRlIjogIkxhc3QgVXBkYXRlIiwNCiAgICAgICJhdmFpbGFiaWxpdHkiOiAiQXZhaWxhYmlsaXR5IiwNCiAgICAgICJjaGFubmVscyI6ICJDaGFubmVscyIsDQogICAgICAicHJvZ3JhbXMiOiAiUHJvZ3JhbXMiDQogICAgfSwNCiAgICAibmFtZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIk5hbWUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIkd1aWRlIG5hbWUiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJkZXNjcmlwdGlvbiI6DQogICAgew0KICAgICAgInRpdGxlIjogIkRlc2NyaXB0aW9uIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJEZXNjcmlwdGlvbiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgImZpbGVYTUxUViI6DQogICAgew0KICAgICAgInRpdGxlIjogIlhNTFRWIEZpbGUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIkZpbGUgcGF0aCBvciBVUkwgb2YgdGhlIFhNTFRWIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfQ0KICB9LA0KICAibWFwcGluZyI6DQogIHsNCiAgICAidGFibGUiOg0KICAgIHsNCiAgICAgICJjaE5vIjogIkNoLiBOby4iLA0KICAgICAgImxvZ28iOiAiTG9nbyIsDQogICAgICAiY2hhbm5lbE5hbWUiOiAiQ2hhbm5lbCBOYW1lIiwNCiAgICAgICJ1cGRhdGVDaGFubmVsTmFtZVJlZ2V4IjogIlVwZC4gUnguIiwNCiAgICAgICJwbGF5bGlzdCI6ICJQbGF5bGlzdCIsDQogICAgICAiZ3JvdXBUaXRsZSI6ICJHcm91cCBUaXRsZSIsDQogICAgICAieG1sdHZGaWxlIjogIlhNTFRWIEZpbGUiLA0KICAgICAgInhtbHR2SUQiOiAiWE1MVFYgSUQiLA0KICAgICAgInRpbWVzaGlmdCI6ICJUaW1lc2hpZnQiDQogICAgfSwNCiAgICAiYWN0aXZlIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiQWN0aXZlIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJjaGFubmVsTmFtZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIkNoYW5uZWwgTmFtZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAiZGVzY3JpcHRpb24iOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJDaGFubmVsIERlc2NyaXB0aW9uIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJVc2VkIGJ5IHRoZSBEdW1teSBhcyBhbiBYTUwgZGVzY3JpcHRpb24iLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJ1cGRhdGVDaGFubmVsTmFtZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIlVwZGF0ZSBDaGFubmVsIE5hbWUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgInVwZGF0ZUNoYW5uZWxOYW1lUmVnZXgiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJDaGFubmVsIG5hbWUgdXBkYXRlIHJlZ2V4IiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJGb3IgZXhhbXBsZSBeUFBWWyBcXFxcLV9dPzEuKiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiT24gdXBkYXRlLCBpZiBhbnkgbmV3IGNoYW5uZWwgbmFtZSBtYXRjaGVzIHRoaXMgcmVnZXgsIHJlbmFtZSBjdXJyZW50IGNoYW5uZWwgdG8gdGhlIGZpcnN0IG1hdGNoaW5nIG5hbWUiDQogICAgfSwNCiAgICAidXBkYXRlQ2hhbm5lbE5hbWVCeUdyb3VwUmVnZXgiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJPbmx5IGJ5IGdyb3VwIHJlZ2V4IiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIlJlbmFtZSB0aGlzIGNoYW5uZWwgb25seSBpZiBjdXJyZW50IHVzZXItZGVmaW5lZCBncm91cCBtYXRjaGVzIHRoaXMgcmVnZXgiDQogICAgfSwNCiAgICAidXBkYXRlQ2hhbm5lbEdyb3VwIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiVXBkYXRlIENoYW5uZWwgR3JvdXAiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiSWYgY2hlY2tlZCwgdXNlIGdyb3VwIGZyb20gdGhlIGRhdGFiYXNlIg0KICAgIH0sDQogICAgImNoYW5uZWxMb2dvIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiTG9nbyBVUkwiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgInVwZGF0ZUNoYW5uZWxMb2dvIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiVXBkYXRlIENoYW5uZWwgTG9nbyIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAiZXBnQ2F0ZWdvcnkiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJFUEcgQ2F0ZWdvcnkiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgIm0zdUdyb3VwVGl0bGUiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJHcm91cCBUaXRsZSAoeHRldmUubTN1KSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAieG1sdHZGaWxlIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiWE1MVFYgRmlsZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAieG1sdHZDaGFubmVsIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiWE1MVFYgQ2hhbm5lbCIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAidGltZXNoaWZ0IjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiVGltZXNoaWZ0IiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIwIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfQ0KICB9LA0KICAidXNlcnMiOg0KICB7DQogICAgInRhYmxlIjoNCiAgICB7DQogICAgICAidXNlcm5hbWUiOiAiVXNlcm5hbWUiLA0KICAgICAgInBhc3N3b3JkIjogIlBhc3N3b3JkIiwNCiAgICAgICJ3ZWIiOiAiV0VCIiwNCiAgICAgICJwbXMiOiAiUE1TIiwNCiAgICAgICJtM3UiOiAiTTNVIiwNCiAgICAgICJ4bWwiOiAiWE1MIiwNCiAgICAgICJhcGkiOiAiQVBJIg0KICAgIH0sDQogICAgInVzZXJuYW1lIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiVXNlcm5hbWUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIlVzZXJuYW1lIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAicGFzc3dvcmQiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJQYXNzd29yZCIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiUGFzc3dvcmQiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJjb25maXJtIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiQ29uZmlybSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiUGFzc3dvcmQgY29uZmlybSIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgIndlYiI6DQogICAgew0KICAgICAgInRpdGxlIjogIldlYiBBY2Nlc3MiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgInBtcyI6DQogICAgew0KICAgICAgInRpdGxlIjogIlBNUyBBY2Nlc3MiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgIm0zdSI6DQogICAgew0KICAgICAgInRpdGxlIjogIk0zVSBBY2Nlc3MiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgInhtbCI6DQogICAgew0KICAgICAgInRpdGxlIjogIlhNTCBBY2Nlc3MiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgImFwaSI6DQogICAgew0KICAgICAgInRpdGxlIjogIkFQSSBBY2Nlc3MiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0NCiAgfSwNCiAgInNldHRpbmdzIjoNCiAgew0KICAgICJjYXRlZ29yeSI6DQogICAgew0KICAgICAgImdlbmVyYWwiOiAiR2VuZXJhbCIsDQogICAgICAiZmlsZXMiOiAiRmlsZXMiLA0KICAgICAgInN0cmVhbWluZyI6ICJTdHJlYW1pbmciLA0KICAgICAgImJhY2t1cCI6ICJCYWNrdXAiLA0KICAgICAgImF1dGhlbnRpY2F0aW9uIjogIkF1dGhlbnRpY2F0aW9uIg0KICAgIH0sDQogICAgInVwZGF0ZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIlNjaGVkdWxlIGZvciB1cGRhdGluZyAoUGxheWxpc3QsIFhNTFRWLCBCYWNrdXApIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIwMDAwLDEwMDAsMjAwMCIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiVGltZSBpbiAyNCBob3VyIGZvcm1hdCAoMDgwMCA9IDg6MDAgYW0pLiBNb3JlIHRpbWVzIGNhbiBiZSBlbnRlcmVkIGNvbW1hIHNlcGFyYXRlZC4gTGVhdmUgdGhpcyBmaWVsZCBlbXB0eSBpZiBubyB1cGRhdGVzIGFyZSB0byBiZSBjYXJyaWVkIG91dC4iDQogICAgfSwNCiAgICAiYXBpIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiQVBJIEludGVyZmFjZSIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiVmlhIEFQSSBpbnRlcmZhY2UgaXQgaXMgcG9zc2libGUgdG8gc2VuZCBjb21tYW5kcyB0byB4VGVWZS4gQVBJIGRvY3VtZW50YXRpb24gaXMgPGEgaHJlZj0naHR0cHM6Ly9naXRodWIuY29tL3h0ZXZlLXByb2plY3QveFRlVmUtRG9jdW1lbnRhdGlvbi9ibG9iL21hc3Rlci9lbi9jb25maWd1cmF0aW9uLm1kI2FwaSc+aGVyZTwvYT4iDQogICAgfSwNCiAgICAiZGlzYWxsb3dVUkxEdXBsaWNhdGVzIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiRGlzYWxsb3cgVVJMIGR1cGxpY2F0ZXMiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIklmIGNoZWNrZWQsIGRvIG5vdCBhZGQgYSBuZXcgY2hhbm5lbCBmcm9tIHBsYXlsaXN0IGlmIGNoYW5uZWwgd2l0aCBzdWNoIFVSTCBhbHJlYWR5IGV4aXN0cyINCiAgICB9LA0KICAgICJlcGdTb3VyY2UiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJFUEcgU291cmNlIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJQTVM6PGJyPi0gVXNlIEVQRyBkYXRhIGZyb20gUGxleCBvciBFbWJ5IDxicj48YnI+WEVQRzo8YnI+LSBVc2Ugb2Ygb25lIG9yIG1vcmUgWE1MVFYgZmlsZXM8YnI+LSBDaGFubmVsIG1hbmFnZW1lbnQ8YnI+LSBNM1UgLyBYTUxUViBleHBvcnQgKEhUVFAgbGluayBmb3IgSVBUViBhcHBzKSINCiAgICB9LA0KICAgICJ0dW5lciI6DQogICAgew0KICAgICAgInRpdGxlIjogIk51bWJlciBvZiBUdW5lcnMiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIk51bWJlciBvZiBwYXJhbGxlbCBjb25uZWN0aW9ucyB0aGF0IGNhbiBiZSBlc3RhYmxpc2hlZCB0byB0aGUgcHJvdmlkZXIuPGJyPkF2YWlsYWJsZSBmb3I6IFBsZXgsIEVtYnkgKEhESFIpLCBNM1UgKHdpdGggYWN0aXZlIGJ1ZmZlcikuPGJyPkFmdGVyIGEgY2hhbmdlLCB4VGVWZSBtdXN0IGJlIGRlbGV0ZSBpbiB0aGUgUGxleCAvIEVtYnkgRFZSIHNldHRpbmdzIGFuZCBzZXQgdXAgYWdhaW4uIg0KICAgIH0sDQogICAgImhvc3RJUCI6DQogICAgew0KICAgICAgInRpdGxlIjogIkhvc3QgSVAiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIklQIGFkZHJlc3MgeFRlVmUgd2lsbCB1c2UgdG8gZm9ybSBNM1UgYW5kIFhNTFRWIGZpbGVzIg0KICAgIH0sDQogICAgInRsc01vZGUiOiB7DQogICAgICAidGl0bGUiOiAiVExTIChIVFRQUykgbW9kZSIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiQ2hhbmdlcyB3ZWIgc2VydmVyIHByb3RvY29sIHRvIEhUVFBTLjxicj5Gb3IgZGV0YWlscywgc2VlIDxhPmh0dHBzOi8vZ2l0aHViLmNvbS9TQ1AwMDIveFRlVmUjdGxzLW1vZGU8L2E+Ig0KICAgIH0sDQogICAgImZpbGVzVXBkYXRlIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiVXBkYXRlcyBhbGwgZmlsZXMgYXQgc3RhcnR1cCIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiVXBkYXRlcyBhbGwgcGxheWxpc3RzLCB0dW5lciBhbmQgWE1MVFYgZmlsZXMgYXQgc3RhcnR1cC4iDQogICAgfSwNCiAgICAiY2FjaGVJbWFnZXMiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJJbWFnZSBDYWNoaW5nIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJBbGwgaW1hZ2VzIGZyb20gdGhlIFhNTFRWIGZpbGUgYXJlIGNhY2hlZCwgYWxsb3dpbmcgZmFzdGVyIHJlbmRlcmluZyBvZiB0aGUgZ3JpZCBpbiB0aGUgY2xpZW50Ljxicj5Eb3dubG9hZGluZyB0aGUgaW1hZ2VzIG1heSB0YWtlIGEgd2hpbGUgYW5kIHdpbGwgYmUgZG9uZSBpbiB0aGUgYmFja2dyb3VuZC4iDQogICAgfSwNCiAgICAicmVwbGFjZUVtcHR5SW1hZ2VzIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiUmVwbGFjZSBtaXNzaW5nIHByb2dyYW0gaW1hZ2VzIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJJZiB0aGUgcG9zdGVyIGluIHRoZSBYTUxUViBwcm9ncmFtIGlzIG1pc3NpbmcsIHRoZSBjaGFubmVsIGxvZ28gd2lsbCBiZSB1c2VkLiINCiAgICB9LA0KICAgICJ4dGV2ZUF1dG9VcGRhdGUiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJBdXRvbWF0aWMgdXBkYXRlIG9mIHhUZVZlIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJJZiBhIG5ldyB2ZXJzaW9uIG9mIHhUZVZlIGlzIGF2YWlsYWJsZSwgaXQgd2lsbCBiZSBhdXRvbWF0aWNhbGx5IGluc3RhbGxlZC4gVGhlIHVwZGF0ZXMgYXJlIGRvd25sb2FkZWQgZnJvbSBHaXRIdWIuIg0KICAgIH0sDQogICAgInN0cmVhbUJ1ZmZlcmluZyI6DQogICAgew0KICAgICAgInRpdGxlIjogIlN0cmVhbSBCdWZmZXIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIkZ1bmN0aW9ucyBvZiB0aGUgYnVmZmVyOjxicj4tIFRoZSBzdHJlYW0gaXMgcGFzc2VkIGZyb20geFRlVmUsIEZGbXBlZyBvciBWTEMgdG8gUGxleCwgRW1ieSBvciBNM1UgUGxheWVyPGJyPi0gU21hbGwgamVya2luZyBvZiB0aGUgc3RyZWFtcyBjYW4gYmUgY29tcGVuc2F0ZWQ8YnI+LSBITFMgLyBNM1U4IHN1cHBvcnQ8YnI+LSBSVFAgLyBSVFBTIHN1cHBvcnQgKG9ubHkgRkZtcGVnIG9yIFZMQyk8YnI+LSBSZS1zdHJlYW1pbmc8YnI+LSBTZXBhcmF0ZSB0dW5lciBsaW1pdCBmb3IgZWFjaCBwbGF5bGlzdCIsDQogICAgICAiaW5mb19mYWxzZSI6ICJObyBCdWZmZXIgKENsaWVudCBjb25uZWN0cyB0byB0aGUgc3RyZWFtaW5nIHNlcnZlcikiLA0KICAgICAgImluZm9feHRldmUiOiAieFRlVmUgY29ubmVjdHMgdG8gdGhlIHN0cmVhbWluZyBzZXJ2ZXIiLA0KICAgICAgImluZm9fZmZtcGVnIjogIkZGbXBlZyBjb25uZWN0cyB0byB0aGUgc3RyZWFtaW5nIHNlcnZlciIsDQogICAgICAiaW5mb192bGMiOiAiVkxDIGNvbm5lY3RzIHRvIHRoZSBzdHJlYW1pbmcgc2VydmVyIg0KDQogICAgfSwNCiAgICAidWRweHkiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJVRFB4eSBhZGRyZXNzIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJUaGUgYWRkcmVzcyBvZiB5b3VyIFVEUHh5IHNlcnZlci4gSWYgc2V0LCBhbmQgdGhlIGNoYW5uZWwgVVJMcyBpbiB0aGUgbTN1IGlzIG11bHRpY2FzdCwgeFRlVmUgd2lsbCByZXdyaXRlIGl0IHNvIHRoYXQgaXQgaXMgYWNjZXNzZWQgdmlhIHRoZSBVRFB4eSBzZXJ2aWNlLiIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiaG9zdDpwb3J0Ig0KICAgIH0sDQogICAgImZmbXBlZ1BhdGgiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJGRm1wZWcgQmluYXJ5IFBhdGgiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIlBhdGggdG8gRkZtcGVnIGJpbmFyeS4iLA0KICAgICAgInBsYWNlaG9sZGVyIjogIi9wYXRoL3RvL2ZmbXBlZyINCiAgICB9LA0KICAgICJmZm1wZWdPcHRpb25zIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiRkZtcGVnIE9wdGlvbnMiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIkZGbXBlZyBvcHRpb25zLjxicj5Pbmx5IGNoYW5nZSBpZiB5b3Uga25vdyB3aGF0IHlvdSBhcmUgZG9pbmcuPGJyPkxlYXZlIGJsYW5rIHRvIHNldCBkZWZhdWx0IHNldHRpbmdzLiIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiTGVhdmUgYmxhbmsgdG8gc2V0IGRlZmF1bHQgc2V0dGluZ3MiDQogICAgfSwNCiAgICAidmxjUGF0aCI6DQogICAgew0KICAgICAgInRpdGxlIjogIlZMQyAvIENWTEMgQmluYXJ5IFBhdGgiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIlBhdGggdG8gVkxDIC8gQ1ZMQyBiaW5hcnkuIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIvcGF0aC90by9jdmxjIg0KICAgIH0sDQogICAgInZsY09wdGlvbnMiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJWTEMgLyBDVkxDIE9wdGlvbnMiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIlZMQyAvIENWTEMgb3B0aW9ucy48YnI+T25seSBjaGFuZ2UgaWYgeW91IGtub3cgd2hhdCB5b3UgYXJlIGRvaW5nLjxicj5MZWF2ZSBibGFuayB0byBzZXQgZGVmYXVsdCBzZXR0aW5ncy4iLA0KICAgICAgInBsYWNlaG9sZGVyIjogIkxlYXZlIGJsYW5rIHRvIHNldCBkZWZhdWx0IHNldHRpbmdzIg0KICAgIH0sDQogICAgImJ1ZmZlclNpemUiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJCdWZmZXIgU2l6ZSIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiQnVmZmVyIHNpemUgaW4gTUIuPGJyPk0zVTg6IElmIHRoZSBUUyBzZWdtZW50IHNtYWxsZXIgdGhlbiB0aGUgYnVmZmVyIHNpemUsIHRoZSBmaWxlIHNpemUgb2YgdGhlIHNlZ21lbnQgaXMgdXNlZC4iDQogICAgfSwNCiAgICAic3RvcmVCdWZmZXJJblJBTSI6DQogICAgew0KICAgICAgInRpdGxlIjogIlN0b3JlIGJ1ZmZlciBpbiBSQU0iLA0KICAgICAgImRlc2NyaXB0aW9uIjogIklmIGNoZWNrZWQsIHdyaXRlIGJ1ZmZlciB0byBSQU0gaW5zdGVhZCBvZiB3cml0aW5nIHRvIGRpc2siDQogICAgfSwNCiAgICAiYnVmZmVyVGltZW91dCI6DQogICAgew0KICAgICAgInRpdGxlIjogIlRpbWVvdXQgZm9yIG5ldyBjbGllbnQgY29ubmVjdGlvbnMiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIlRoZSB4VGVWZSBidWZmZXIgd2FpdHMgdW50aWwgbmV3IGNsaWVudCBjb25uZWN0aW9ucyBhcmUgZXN0YWJsaXNoZWQuIEhlbHBmdWwgZm9yIGZhc3QgY2hhbm5lbCBzd2l0Y2hpbmcuIFZhbHVlIGluIG1pbGxpc2Vjb25kcy4iLA0KICAgICAgInBsYWNlaG9sZGVyIjogIjEwMCINCiAgICB9LA0KICAgICJ1c2VyQWdlbnQiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJVc2VyIEFnZW50IiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJVc2VyIEFnZW50IGZvciBIVFRQIHJlcXVlc3RzLiBGb3IgZXZlcnkgSFRUUCBjb25uZWN0aW9uLCB0aGlzIHZhbHVlIGlzIHVzZWQgZm9yIHRoZSB1c2VyIGFnZW50LiBTaG91bGQgb25seSBiZSBjaGFuZ2VkIGlmIHhUZVZlIGlzIGJsb2NrZWQuIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJ4VGVWZSINCiAgICB9LA0KICAgICJiYWNrdXBQYXRoIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiTG9jYXRpb24gZm9yIGF1dG9tYXRpYyBiYWNrdXBzIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIvbW50L2RhdGEvYmFja3VwL3h0ZXZlLyIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiQmVmb3JlIGFueSB1cGRhdGUgb2YgdGhlIHByb3ZpZGVyIGRhdGEgYnkgdGhlIHNjaGVkdWxlLCB4VGVWZSBjcmVhdGVzIGEgYmFja3VwLiBUaGUgcGF0aCBmb3IgdGhlIGF1dG9tYXRpYyBiYWNrdXBzIGNhbiBiZSBjaGFuZ2VkLiB4VGVWZSByZXF1aXJlcyB3cml0ZSBwZXJtaXNzaW9uIGZvciB0aGlzIGZvbGRlci4iDQogICAgfSwNCiAgICAidGVtcFBhdGgiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJMb2NhdGlvbiBmb3IgdGhlIHRlbXBvcmFyeSBmaWxlcyIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiL3RtcC94dGV2ZS8iLA0KICAgICAgImRlc2NyaXB0aW9uIjogIkxvY2F0aW9uIGZvciB0aGUgYnVmZmVyIGZpbGVzLiINCiAgICB9LA0KICAgICJiYWNrdXBLZWVwIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiTnVtYmVyIG9mIGJhY2t1cHMgdG8ga2VlcCIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiTnVtYmVyIG9mIGJhY2t1cHMgdG8ga2VlcC4gT2xkZXIgYmFja3VwcyBhcmUgYXV0b21hdGljYWxseSBkZWxldGVkLiINCiAgICB9LA0KICAgICJhdXRoZW50aWNhdGlvbldFQiI6DQogICAgew0KICAgICAgInRpdGxlIjogIldFQiBBdXRoZW50aWNhdGlvbiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiQWNjZXNzIHRvIHRoZSB3ZWIgaW50ZXJmYWNlIG9ubHkgcG9zc2libGUgd2l0aCBjcmVkZW50aWFscy4iDQogICAgfSwNCiAgICAiYXV0aGVudGljYXRpb25QTVMiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJQTVMgQXV0aGVudGljYXRpb24iLA0KICAgICAgImRlc2NyaXB0aW9uIjogIlBsZXggcmVxdWVzdHMgYXJlIG9ubHkgcG9zc2libGUgd2l0aCBhdXRoZW50aWNhdGlvbi4gPGJyPjxiPldhcm5pbmchISE8L2I+IEFmdGVyIGFjdGl2YXRpbmcgdGhpcyBmdW5jdGlvbiB4VGVWZSBtdXN0IGJlIGRlbGV0ZSBpbiB0aGUgUE1TIERWUiBzZXR0aW5ncyBhbmQgc2V0IHVwIGFnYWluLiINCiAgICB9LA0KICAgICJhdXRoZW50aWNhdGlvbk0zVSI6DQogICAgew0KICAgICAgInRpdGxlIjogIk0zVSBBdXRoZW50aWNhdGlvbiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiRG93bmxvYWRpbmcgdGhlIHh0ZXZlLm0zdSBmaWxlIHZpYSBhbiBIVFRQIHJlcXVlc3QgaXMgb25seSBwb3NzaWJsZSB3aXRoIGF1dGhlbnRpY2F0aW9uLiINCiAgICB9LA0KICAgICJhdXRoZW50aWNhdGlvblhNTCI6DQogICAgew0KICAgICAgInRpdGxlIjogIlhNTCBBdXRoZW50aWNhdGlvbiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiRG93bmxvYWRpbmcgdGhlIHh0ZXZlLnhtbCBmaWxlIHZpYSBhbiBIVFRQIHJlcXVlc3QgaXMgb25seSBwb3NzaWJsZSB3aXRoIGF1dGhlbnRpY2F0aW9uIg0KICAgIH0sDQogICAgImF1dGhlbnRpY2F0aW9uQVBJIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiQVBJIEF1dGhlbnRpY2F0aW9uIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJBY2Nlc3MgdG8gdGhlIEFQSSBpbnRlcmZhY2UgaXMgb25seSBwb3NzaWJsZSB3aXRoIGF1dGhlbnRpY2F0aW9uLiINCiAgICB9DQogIH0sDQogICJ3aXphcmQiOg0KICB7DQogICAgImVwZ1NvdXJjZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIkVQRyBTb3VyY2UiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIlBNUzo8YnI+LSBVc2UgRVBHIGRhdGEgZnJvbSBQbGV4IG9yIEVtYnkgPGJyPjxicj5YRVBHOjxicj4tIFVzZSBvZiBvbmUgb3IgbW9yZSBYTUxUViBmaWxlczxicj4tIENoYW5uZWwgbWFuYWdlbWVudDxicj4tIE0zVSAvIFhNTFRWIGV4cG9ydCAoSFRUUCBsaW5rIGZvciBJUFRWIGFwcHMpIg0KICAgIH0sDQogICAgInR1bmVyIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiTnVtYmVyIG9mIHR1bmVycyIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiTnVtYmVyIG9mIHBhcmFsbGVsIGNvbm5lY3Rpb25zIHRoYXQgY2FuIGJlIGVzdGFibGlzaGVkIHRvIHRoZSBwcm92aWRlci48YnI+QXZhaWxhYmxlIGZvcjogUGxleCwgRW1ieSAoSERIUiksIE0zVSAod2l0aCBhY3RpdmUgYnVmZmVyKS48YnI+QWZ0ZXIgYSBjaGFuZ2UsIHhUZVZlIG11c3QgYmUgZGVsZXRlIGluIHRoZSBQbGV4IC8gRW1ieSBEVlIgc2V0dGluZ3MgYW5kIHNldCB1cCBhZ2Fpbi4iDQogICAgfSwNCiAgICAibTN1IjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiTTNVIFBsYXlsaXN0IiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJGaWxlIHBhdGggb3IgVVJMIG9mIHRoZSBNM1UiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIkxvY2FsIG9yIHJlbW90ZSBwbGF5bGlzdHMiDQogICAgfSwNCiAgICAieG1sdHYiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJYTUxUViBGaWxlIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJGaWxlIHBhdGggb3IgVVJMIG9mIHRoZSBYTUxUViIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiTG9jYWwgb3IgcmVtb3RlIFhNTFRWIGZpbGUiDQogICAgfQ0KICB9LA0KICAibG9naW4iOg0KICB7DQogICAgImZhaWxlZCI6ICJVc2VyIGF1dGhlbnRpY2F0aW9uIGZhaWxlZCIsDQogICAgImhlYWRsaW5lIjogIkxvZ2luIiwNCiAgICAidXNlcm5hbWUiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJVc2VybmFtZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiVXNlcm5hbWUiDQogICAgfSwNCiAgICAicGFzc3dvcmQiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJQYXNzd29yZCIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiUGFzc3dvcmQiDQogICAgfQ0KICB9LA0KICAiYWNjb3VudCI6DQogIHsNCiAgICAiZmFpbGVkIjogIlBhc3N3b3JkIGRvZXMgbm90IG1hdGNoIiwNCiAgICAiaGVhZGxpbmUiOiAiQ3JlYXRlIHVzZXIgYWNjb3VudCIsDQogICAgInVzZXJuYW1lIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiVXNlcm5hbWUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIlVzZXJuYW1lIg0KICAgIH0sDQogICAgInBhc3N3b3JkIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiUGFzc3dvcmQiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIlBhc3N3b3JkIg0KICAgIH0sDQogICAgImNvbmZpcm0iOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJDb25maXJtIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJDb25maXJtIg0KICAgIH0NCiAgfQ0KfQ==" + webUI["html/js/settings_ts.js"] = "Y2xhc3MgU2V0dGluZ3NDYXRlZ29yeSB7DQogICAgY29uc3RydWN0b3IoKSB7DQogICAgICAgIHRoaXMuRG9jdW1lbnRJRCA9ICJjb250ZW50X3NldHRpbmdzIjsNCiAgICB9DQogICAgY3JlYXRlQ2F0ZWdvcnlIZWFkbGluZSh2YWx1ZSkgew0KICAgICAgICB2YXIgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIkg0Iik7DQogICAgICAgIGVsZW1lbnQuaW5uZXJIVE1MID0gdmFsdWU7DQogICAgICAgIHJldHVybiBlbGVtZW50Ow0KICAgIH0NCiAgICBjcmVhdGVIUigpIHsNCiAgICAgICAgdmFyIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJIUiIpOw0KICAgICAgICByZXR1cm4gZWxlbWVudDsNCiAgICB9DQogICAgY3JlYXRlU2V0dGluZ3Moc2V0dGluZ3NLZXkpIHsNCiAgICAgICAgdmFyIHNldHRpbmcgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJUUiIpOw0KICAgICAgICB2YXIgY29udGVudCA9IG5ldyBQb3B1cENvbnRlbnQoKTsNCiAgICAgICAgdmFyIGRhdGEgPSBTRVJWRVJbInNldHRpbmdzIl1bc2V0dGluZ3NLZXldOw0KICAgICAgICBzd2l0Y2ggKHNldHRpbmdzS2V5KSB7DQogICAgICAgICAgICAvLyBUZXh0IGlucHV0cw0KICAgICAgICAgICAgY2FzZSAidXBkYXRlIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLnVwZGF0ZS50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsICJ1cGRhdGUiLCBkYXRhLnRvU3RyaW5nKCkpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3suc2V0dGluZ3MudXBkYXRlLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJiYWNrdXAucGF0aCI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5iYWNrdXBQYXRoLnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgImJhY2t1cC5wYXRoIiwgZGF0YSk7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5zZXR0aW5ncy5iYWNrdXBQYXRoLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ0ZW1wLnBhdGgiOg0KICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MudGVtcFBhdGgudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCAidGVtcC5wYXRoIiwgZGF0YSk7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5zZXR0aW5ncy50bXBQYXRoLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ1c2VyLmFnZW50IjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLnVzZXJBZ2VudC50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsICJ1c2VyLmFnZW50IiwgZGF0YSk7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5zZXR0aW5ncy51c2VyQWdlbnQucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImJ1ZmZlci50aW1lb3V0IjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmJ1ZmZlclRpbWVvdXQudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCAiYnVmZmVyLnRpbWVvdXQiLCBkYXRhKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnNldHRpbmdzLmJ1ZmZlclRpbWVvdXQucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImZmbXBlZy5wYXRoIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmZmbXBlZ1BhdGgudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCAiZmZtcGVnLnBhdGgiLCBkYXRhKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnNldHRpbmdzLmZmbXBlZ1BhdGgucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImZmbXBlZy5vcHRpb25zIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmZmbXBlZ09wdGlvbnMudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCAiZmZtcGVnLm9wdGlvbnMiLCBkYXRhKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnNldHRpbmdzLmZmbXBlZ09wdGlvbnMucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInZsYy5wYXRoIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLnZsY1BhdGgudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCAidmxjLnBhdGgiLCBkYXRhKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnNldHRpbmdzLnZsY1BhdGgucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInZsYy5vcHRpb25zIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLnZsY09wdGlvbnMudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCAidmxjLm9wdGlvbnMiLCBkYXRhKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnNldHRpbmdzLnZsY09wdGlvbnMucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIC8vIENoZWNrYm94ZXMNCiAgICAgICAgICAgIGNhc2UgInRsc01vZGUiOg0KICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MudGxzTW9kZS50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChzZXR0aW5nc0tleSk7DQogICAgICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGE7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiZGlzYWxsb3dVUkxEdXBsaWNhdGVzIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmRpc2FsbG93VVJMRHVwbGljYXRlcy50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChzZXR0aW5nc0tleSk7DQogICAgICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGE7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiYXV0aGVudGljYXRpb24ud2ViIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmF1dGhlbnRpY2F0aW9uV0VCLnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KHNldHRpbmdzS2V5KTsNCiAgICAgICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJhdXRoZW50aWNhdGlvbi5wbXMiOg0KICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MuYXV0aGVudGljYXRpb25QTVMudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goc2V0dGluZ3NLZXkpOw0KICAgICAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImF1dGhlbnRpY2F0aW9uLm0zdSI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5hdXRoZW50aWNhdGlvbk0zVS50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChzZXR0aW5nc0tleSk7DQogICAgICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGE7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiYXV0aGVudGljYXRpb24ueG1sIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmF1dGhlbnRpY2F0aW9uWE1MLnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KHNldHRpbmdzS2V5KTsNCiAgICAgICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJhdXRoZW50aWNhdGlvbi5hcGkiOg0KICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MuYXV0aGVudGljYXRpb25BUEkudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goc2V0dGluZ3NLZXkpOw0KICAgICAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImZpbGVzLnVwZGF0ZSI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5maWxlc1VwZGF0ZS50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChzZXR0aW5nc0tleSk7DQogICAgICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGE7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiY2FjaGUuaW1hZ2VzIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmNhY2hlSW1hZ2VzLnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KHNldHRpbmdzS2V5KTsNCiAgICAgICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ4ZXBnLnJlcGxhY2UubWlzc2luZy5pbWFnZXMiOg0KICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MucmVwbGFjZUVtcHR5SW1hZ2VzLnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KHNldHRpbmdzS2V5KTsNCiAgICAgICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJzdG9yZUJ1ZmZlckluUkFNIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLnN0b3JlQnVmZmVySW5SQU0udGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goc2V0dGluZ3NLZXkpOw0KICAgICAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInh0ZXZlQXV0b1VwZGF0ZSI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy54dGV2ZUF1dG9VcGRhdGUudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goc2V0dGluZ3NLZXkpOw0KICAgICAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImFwaSI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5hcGkudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goc2V0dGluZ3NLZXkpOw0KICAgICAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIC8vIFNlbGVjdA0KICAgICAgICAgICAgY2FzZSAiaG9zdElQIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmhvc3RJUC50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIHRleHQgPSBTRVJWRVJbImlwQWRkcmVzc2VzVjRIb3N0Il07DQogICAgICAgICAgICAgICAgdmFyIHZhbHVlcyA9IFNFUlZFUlsiaXBBZGRyZXNzZXNWNEhvc3QiXTsNCiAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCBkYXRhLCBzZXR0aW5nc0tleSk7DQogICAgICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKHNlbGVjdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ0dW5lciI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy50dW5lci50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIHRleHQgPSBuZXcgQXJyYXkoKTsNCiAgICAgICAgICAgICAgICB2YXIgdmFsdWVzID0gbmV3IEFycmF5KCk7DQogICAgICAgICAgICAgICAgZm9yICh2YXIgaSA9IDE7IGkgPD0gMTAwOyBpKyspIHsNCiAgICAgICAgICAgICAgICAgICAgdGV4dC5wdXNoKGkpOw0KICAgICAgICAgICAgICAgICAgICB2YWx1ZXMucHVzaChpKTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgdmFyIHNlbGVjdCA9IGNvbnRlbnQuY3JlYXRlU2VsZWN0KHRleHQsIHZhbHVlcywgZGF0YSwgc2V0dGluZ3NLZXkpOw0KICAgICAgICAgICAgICAgIHNlbGVjdC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChzZWxlY3QpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiZXBnU291cmNlIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmVwZ1NvdXJjZS50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIHRleHQgPSBbIlBNUyIsICJYRVBHIl07DQogICAgICAgICAgICAgICAgdmFyIHZhbHVlcyA9IFsiUE1TIiwgIlhFUEciXTsNCiAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCBkYXRhLCBzZXR0aW5nc0tleSk7DQogICAgICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKHNlbGVjdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJkZWZhdWx0TWlzc2luZ0VQRyI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5kZWZhdWx0TWlzc2luZ0VQRy50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIHRleHQgPSBbDQogICAgICAgICAgICAgICAgICAgICItIiwgIjMwIE1pbnV0ZXMgKDMwX01pbnV0ZXMpIiwgIjYwIE1pbnV0ZXMgKDYwX01pbnV0ZXMpIiwgIjkwIE1pbnV0ZXMgKDkwX01pbnV0ZXMpIiwNCiAgICAgICAgICAgICAgICAgICAgIjEyMCBNaW51dGVzICgxMjBfTWludXRlcykiLCAiMTgwIE1pbnV0ZXMgKDMwX01pbnV0ZXMpIiwgIjI0MCBNaW51dGVzICgzMF9NaW51dGVzKSIsICIzNjAgTWludXRlcyAoMzBfTWludXRlcykiDQogICAgICAgICAgICAgICAgXTsNCiAgICAgICAgICAgICAgICB2YXIgdmFsdWVzID0gWw0KICAgICAgICAgICAgICAgICAgICAiLSIsICIzMF9NaW51dGVzIiwgIjYwX01pbnV0ZXMiLCAiOTBfTWludXRlcyIsICIxMjBfTWludXRlcyIsICIxODBfTWludXRlcyIsICIyNDBfTWludXRlcyIsICIzNjBfTWludXRlcyINCiAgICAgICAgICAgICAgICBdOw0KICAgICAgICAgICAgICAgIHZhciBzZWxlY3QgPSBjb250ZW50LmNyZWF0ZVNlbGVjdCh0ZXh0LCB2YWx1ZXMsIGRhdGEsIHNldHRpbmdzS2V5KTsNCiAgICAgICAgICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQoc2VsZWN0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImJhY2t1cC5rZWVwIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmJhY2t1cEtlZXAudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciB0ZXh0ID0gWyI1IiwgIjEwIiwgIjIwIiwgIjMwIiwgIjQwIiwgIjUwIl07DQogICAgICAgICAgICAgICAgdmFyIHZhbHVlcyA9IFsiNSIsICIxMCIsICIyMCIsICIzMCIsICI0MCIsICI1MCJdOw0KICAgICAgICAgICAgICAgIHZhciBzZWxlY3QgPSBjb250ZW50LmNyZWF0ZVNlbGVjdCh0ZXh0LCB2YWx1ZXMsIGRhdGEsIHNldHRpbmdzS2V5KTsNCiAgICAgICAgICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQoc2VsZWN0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImJ1ZmZlci5zaXplLmtiIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmJ1ZmZlclNpemUudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciB0ZXh0ID0gWyIwLjUgTUIiLCAiMSBNQiIsICIyIE1CIiwgIjMgTUIiLCAiNCBNQiIsICI1IE1CIiwgIjYgTUIiLCAiNyBNQiIsICI4IE1CIl07DQogICAgICAgICAgICAgICAgdmFyIHZhbHVlcyA9IFsiNTEyIiwgIjEwMjQiLCAiMjA0OCIsICIzMDcyIiwgIjQwOTYiLCAiNTEyMCIsICI2MTQ0IiwgIjcxNjgiLCAiODE5MiJdOw0KICAgICAgICAgICAgICAgIHZhciBzZWxlY3QgPSBjb250ZW50LmNyZWF0ZVNlbGVjdCh0ZXh0LCB2YWx1ZXMsIGRhdGEsIHNldHRpbmdzS2V5KTsNCiAgICAgICAgICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQoc2VsZWN0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImJ1ZmZlciI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5zdHJlYW1CdWZmZXJpbmcudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciB0ZXh0ID0gWyJ7ey5zZXR0aW5ncy5zdHJlYW1CdWZmZXJpbmcuaW5mb19mYWxzZX19IiwgInhUZVZlOiAoe3suc2V0dGluZ3Muc3RyZWFtQnVmZmVyaW5nLmluZm9feHRldmV9fSkiLCAiRkZtcGVnOiAoe3suc2V0dGluZ3Muc3RyZWFtQnVmZmVyaW5nLmluZm9fZmZtcGVnfX0pIiwgIlZMQzogKHt7LnNldHRpbmdzLnN0cmVhbUJ1ZmZlcmluZy5pbmZvX3ZsY319KSJdOw0KICAgICAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBbIi0iLCAieHRldmUiLCAiZmZtcGVnIiwgInZsYyJdOw0KICAgICAgICAgICAgICAgIHZhciBzZWxlY3QgPSBjb250ZW50LmNyZWF0ZVNlbGVjdCh0ZXh0LCB2YWx1ZXMsIGRhdGEsIHNldHRpbmdzS2V5KTsNCiAgICAgICAgICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQoc2VsZWN0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInVkcHh5IjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLnVkcHh5LnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgInVkcHh5IiwgZGF0YSk7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5zZXR0aW5ncy51ZHB4eS5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICB9DQogICAgICAgIHJldHVybiBzZXR0aW5nOw0KICAgIH0NCiAgICBjcmVhdGVEZXNjcmlwdGlvbihzZXR0aW5nc0tleSkgew0KICAgICAgICB2YXIgZGVzY3JpcHRpb24gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJUUiIpOw0KICAgICAgICB2YXIgdGV4dDsNCiAgICAgICAgc3dpdGNoIChzZXR0aW5nc0tleSkgew0KICAgICAgICAgICAgY2FzZSAidGxzTW9kZSI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy50bHNNb2RlLmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiZGlzYWxsb3dVUkxEdXBsaWNhdGVzIjoNCiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLmRpc2FsbG93VVJMRHVwbGljYXRlcy5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImF1dGhlbnRpY2F0aW9uLndlYiI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5hdXRoZW50aWNhdGlvbldFQi5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImF1dGhlbnRpY2F0aW9uLm0zdSI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5hdXRoZW50aWNhdGlvbk0zVS5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImF1dGhlbnRpY2F0aW9uLnBtcyI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5hdXRoZW50aWNhdGlvblBNUy5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImF1dGhlbnRpY2F0aW9uLnhtbCI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5hdXRoZW50aWNhdGlvblhNTC5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImF1dGhlbnRpY2F0aW9uLmFwaSI6DQogICAgICAgICAgICAgICAgaWYgKFNFUlZFUlsic2V0dGluZ3MiXVsiYXV0aGVudGljYXRpb24ud2ViIl0gPT0gdHJ1ZSkgew0KICAgICAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLmF1dGhlbnRpY2F0aW9uQVBJLmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInh0ZXZlQXV0b1VwZGF0ZSI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy54dGV2ZUF1dG9VcGRhdGUuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJiYWNrdXAua2VlcCI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5iYWNrdXBLZWVwLmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiYmFja3VwLnBhdGgiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MuYmFja3VwUGF0aC5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInRlbXAucGF0aCI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy50ZW1wUGF0aC5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImJ1ZmZlciI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5zdHJlYW1CdWZmZXJpbmcuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJidWZmZXIuc2l6ZS5rYiI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5idWZmZXJTaXplLmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAic3RvcmVCdWZmZXJJblJBTSI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5zdG9yZUJ1ZmZlckluUkFNLmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiYnVmZmVyLnRpbWVvdXQiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MuYnVmZmVyVGltZW91dC5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInVzZXIuYWdlbnQiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MudXNlckFnZW50LmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiZmZtcGVnLnBhdGgiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MuZmZtcGVnUGF0aC5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImZmbXBlZy5vcHRpb25zIjoNCiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLmZmbXBlZ09wdGlvbnMuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ2bGMucGF0aCI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy52bGNQYXRoLmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAidmxjLm9wdGlvbnMiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MudmxjT3B0aW9ucy5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImVwZ1NvdXJjZSI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5lcGdTb3VyY2UuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJob3N0SVAiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MuaG9zdElQLmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAidHVuZXIiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MudHVuZXIuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ1cGRhdGUiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MudXBkYXRlLmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiYXBpIjoNCiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLmFwaS5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImRlZmF1bHRNaXNzaW5nRVBHIjoNCiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLmRlZmF1bHRNaXNzaW5nRVBHLmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiZmlsZXMudXBkYXRlIjoNCiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLmZpbGVzVXBkYXRlLmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiY2FjaGUuaW1hZ2VzIjoNCiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLmNhY2hlSW1hZ2VzLmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAieGVwZy5yZXBsYWNlLm1pc3NpbmcuaW1hZ2VzIjoNCiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLnJlcGxhY2VFbXB0eUltYWdlcy5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInVkcHh5IjoNCiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLnVkcHh5LmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgICAgICB0ZXh0ID0gIiI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIH0NCiAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAiIjsNCiAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICB2YXIgcHJlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiUFJFIik7DQogICAgICAgIHByZS5pbm5lckhUTUwgPSB0ZXh0Ow0KICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKHByZSk7DQogICAgICAgIGRlc2NyaXB0aW9uLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgIGRlc2NyaXB0aW9uLmFwcGVuZENoaWxkKHRkUmlnaHQpOw0KICAgICAgICByZXR1cm4gZGVzY3JpcHRpb247DQogICAgfQ0KfQ0KY2xhc3MgU2V0dGluZ3NDYXRlZ29yeUl0ZW0gZXh0ZW5kcyBTZXR0aW5nc0NhdGVnb3J5IHsNCiAgICBjb25zdHJ1Y3RvcihoZWFkbGluZSwgc2V0dGluZ3NLZXlzKSB7DQogICAgICAgIHN1cGVyKCk7DQogICAgICAgIHRoaXMuaGVhZGxpbmUgPSBoZWFkbGluZTsNCiAgICAgICAgdGhpcy5zZXR0aW5nc0tleXMgPSBzZXR0aW5nc0tleXM7DQogICAgfQ0KICAgIGNyZWF0ZUNhdGVnb3J5KCkgew0KICAgICAgICB2YXIgaGVhZGxpbmUgPSB0aGlzLmNyZWF0ZUNhdGVnb3J5SGVhZGxpbmUodGhpcy5oZWFkbGluZSk7DQogICAgICAgIHZhciBzZXR0aW5nc0tleXMgPSB0aGlzLnNldHRpbmdzS2V5czsNCiAgICAgICAgdmFyIGRvYyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHRoaXMuRG9jdW1lbnRJRCk7DQogICAgICAgIGRvYy5hcHBlbmRDaGlsZChoZWFkbGluZSk7DQogICAgICAgIC8vIENyZWF0ZSBhIHRhYmxlIGZvciB0aGUgY2F0ZWdvcnkNCiAgICAgICAgdmFyIHRhYmxlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEFCTEUiKTsNCiAgICAgICAgdmFyIGtleXMgPSBzZXR0aW5nc0tleXMuc3BsaXQoIiwiKTsNCiAgICAgICAga2V5cy5mb3JFYWNoKHNldHRpbmdzS2V5ID0+IHsNCiAgICAgICAgICAgIHN3aXRjaCAoc2V0dGluZ3NLZXkpIHsNCiAgICAgICAgICAgICAgICBjYXNlICJhdXRoZW50aWNhdGlvbi5wbXMiOg0KICAgICAgICAgICAgICAgIGNhc2UgImF1dGhlbnRpY2F0aW9uLm0zdSI6DQogICAgICAgICAgICAgICAgY2FzZSAiYXV0aGVudGljYXRpb24ueG1sIjoNCiAgICAgICAgICAgICAgICBjYXNlICJhdXRoZW50aWNhdGlvbi5hcGkiOg0KICAgICAgICAgICAgICAgICAgICBpZiAoU0VSVkVSWyJzZXR0aW5ncyJdWyJhdXRoZW50aWNhdGlvbi53ZWIiXSA9PSBmYWxzZSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBkZWZhdWx0Og0KICAgICAgICAgICAgICAgICAgICB2YXIgaXRlbSA9IHRoaXMuY3JlYXRlU2V0dGluZ3Moc2V0dGluZ3NLZXkpOw0KICAgICAgICAgICAgICAgICAgICB2YXIgZGVzY3JpcHRpb24gPSB0aGlzLmNyZWF0ZURlc2NyaXB0aW9uKHNldHRpbmdzS2V5KTsNCiAgICAgICAgICAgICAgICAgICAgdGFibGUuYXBwZW5kQ2hpbGQoaXRlbSk7DQogICAgICAgICAgICAgICAgICAgIHRhYmxlLmFwcGVuZENoaWxkKGRlc2NyaXB0aW9uKTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICB9DQogICAgICAgIH0pOw0KICAgICAgICBkb2MuYXBwZW5kQ2hpbGQodGFibGUpOw0KICAgICAgICBkb2MuYXBwZW5kQ2hpbGQodGhpcy5jcmVhdGVIUigpKTsNCiAgICB9DQp9DQpmdW5jdGlvbiBzaG93U2V0dGluZ3MoKSB7DQogICAgZm9yIChsZXQgaSA9IDA7IGkgPCBzZXR0aW5nc0NhdGVnb3J5Lmxlbmd0aDsgaSsrKSB7DQogICAgICAgIHNldHRpbmdzQ2F0ZWdvcnlbaV0uY3JlYXRlQ2F0ZWdvcnkoKTsNCiAgICB9DQp9DQpmdW5jdGlvbiBzYXZlU2V0dGluZ3MoKSB7DQogICAgdmFyIGNtZCA9ICJzYXZlU2V0dGluZ3MiOw0KICAgIHZhciBkaXYgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29udGVudF9zZXR0aW5ncyIpOw0KICAgIHZhciBzZXR0aW5ncyA9IGRpdi5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCJjaGFuZ2VkIik7DQogICAgdmFyIG5ld1NldHRpbmdzID0gbmV3IE9iamVjdCgpOw0KICAgIGZvciAobGV0IGkgPSAwOyBpIDwgc2V0dGluZ3MubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgdmFyIG5hbWU7DQogICAgICAgIHZhciB2YWx1ZTsNCiAgICAgICAgc3dpdGNoIChzZXR0aW5nc1tpXS50YWdOYW1lKSB7DQogICAgICAgICAgICBjYXNlICJJTlBVVCI6DQogICAgICAgICAgICAgICAgc3dpdGNoIChzZXR0aW5nc1tpXS50eXBlKSB7DQogICAgICAgICAgICAgICAgICAgIGNhc2UgImNoZWNrYm94IjoNCiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWUgPSBzZXR0aW5nc1tpXS5uYW1lOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSBzZXR0aW5nc1tpXS5jaGVja2VkOw0KICAgICAgICAgICAgICAgICAgICAgICAgbmV3U2V0dGluZ3NbbmFtZV0gPSB2YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgICAgICBjYXNlICJ0ZXh0IjoNCiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWUgPSBzZXR0aW5nc1tpXS5uYW1lOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSBzZXR0aW5nc1tpXS52YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHN3aXRjaCAobmFtZSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgInVwZGF0ZSI6DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlID0gdmFsdWUuc3BsaXQoIiwiKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSB2YWx1ZS5maWx0ZXIoZnVuY3Rpb24gKGUpIHsgcmV0dXJuIGU7IH0pOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYXNlICJidWZmZXIudGltZW91dCI6DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlID0gcGFyc2VGbG9hdCh2YWx1ZSk7DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICBuZXdTZXR0aW5nc1tuYW1lXSA9IHZhbHVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiU0VMRUNUIjoNCiAgICAgICAgICAgICAgICBuYW1lID0gc2V0dGluZ3NbaV0ubmFtZTsNCiAgICAgICAgICAgICAgICB2YWx1ZSA9IHNldHRpbmdzW2ldLnZhbHVlOw0KICAgICAgICAgICAgICAgIC8vIElmIHRoZSB2YWx1ZSBpcyBhIG51bWJlciwgc3RvcmUgaXQgYXMgYSBudW1iZXINCiAgICAgICAgICAgICAgICBpZiAoaXNOYU4odmFsdWUpKSB7DQogICAgICAgICAgICAgICAgICAgIG5ld1NldHRpbmdzW25hbWVdID0gdmFsdWU7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgICAgICAgICBuZXdTZXR0aW5nc1tuYW1lXSA9IHBhcnNlSW50KHZhbHVlKTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIH0NCiAgICB9DQogICAgdmFyIGRhdGEgPSBuZXcgT2JqZWN0KCk7DQogICAgZGF0YVsic2V0dGluZ3MiXSA9IG5ld1NldHRpbmdzOw0KICAgIHZhciBzZXJ2ZXIgPSBuZXcgU2VydmVyKGNtZCk7DQogICAgc2VydmVyLnJlcXVlc3QoZGF0YSk7DQp9DQo=" + webUI["html/lang/en.json"] = "ew0KICAibWFpbk1lbnUiOg0KICB7DQogICAgIml0ZW0iOg0KICAgIHsNCiAgICAgICJwbGF5bGlzdCI6ICJQbGF5bGlzdCIsDQogICAgICAicG1zSUQiOiAiUE1TIElEIiwNCiAgICAgICJmaWx0ZXIiOiAiRmlsdGVyIiwNCiAgICAgICJ4bWx0diI6ICJYTUxUViIsDQogICAgICAibWFwcGluZyI6ICJNYXBwaW5nIiwNCiAgICAgICJ1c2VycyI6ICJVc2VycyIsDQogICAgICAic2V0dGluZ3MiOiAiU2V0dGluZ3MiLA0KICAgICAgImxvZyI6ICJMb2ciLA0KICAgICAgImxvZ291dCI6ICJMb2dvdXQiDQogICAgfSwNCiAgICAiaGVhZGxpbmUiOg0KICAgIHsNCiAgICAgICJwbGF5bGlzdCI6ICJMb2NhbCBvciByZW1vdGUgcGxheWxpc3RzIiwNCiAgICAgICJmaWx0ZXIiOiAiRmlsdGVyIHBsYXlsaXN0IiwNCiAgICAgICJ4bWx0diI6ICJMb2NhbCBvciByZW1vdGUgWE1MVFYgZmlsZXMiLA0KICAgICAgIm1hcHBpbmciOiAiTWFwIHBsYXlsaXN0IGNoYW5uZWxzIHRvIEVQRyBjaGFubmVscyIsDQogICAgICAidXNlcnMiOiAiVXNlciBtYW5hZ2VtZW50IiwNCiAgICAgICJzZXR0aW5ncyI6ICJTZXR0aW5ncyIsDQogICAgICAibG9nIjogIkxvZyIsDQogICAgICAibG9nb3V0IjogIkxvZ291dCINCiAgICB9DQogIH0sDQogICJjb25maXJtIjoNCiAgew0KICAgICJyZXN0b3JlIjogIkFsbCBkYXRhIHdpbGwgYmUgcmVwbGFjZWQgd2l0aCB0aG9zZSBmcm9tIHRoZSBiYWNrdXAuIFNob3VsZCB0aGUgZmlsZXMgYmUgcmVzdG9yZWQ/Ig0KICB9LA0KICAiYWxlcnQiOg0KICB7DQogICAgImZpbGVMb2FkaW5nRXJyb3IiOiAiRmlsZSBjb3VsZG4ndCBiZSBsb2FkZWQiLA0KICAgICJpbnZhbGlkQ2hhbm5lbE51bWJlciI6ICJJbnZhbGlkIGNoYW5uZWwgbnVtYmVyIiwNCiAgICAibWlzc2luZ0lucHV0IjogIk1pc3NpbmcgaW5wdXQiDQogIH0sDQogICJidXR0b24iOg0KICB7DQogICAgImJhY2siOiAiQmFjayIsDQogICAgImJhY2t1cCI6ICJCYWNrdXAiLA0KICAgICJidWxrRWRpdCI6ICJCdWxrIEVkaXQiLA0KICAgICJjYW5jZWwiOiAiQ2FuY2VsIiwNCiAgICAiZGVsZXRlIjogIkRlbGV0ZSIsDQogICAgImRvbmUiOiAiRG9uZSIsDQogICAgImxvZ2luIjogIkxvZ2luIiwNCiAgICAibmV3IjogIk5ldyIsDQogICAgIm5leHQiOiAiTmV4dCIsDQogICAgInJlc3RvcmUiOiAiUmVzdG9yZSIsDQogICAgInNhdmUiOiAiU2F2ZSIsDQogICAgInNlYXJjaCI6ICJTZWFyY2giLA0KICAgICJ1cGRhdGUiOiAiVXBkYXRlIiwNCiAgICAiY3JhZXRlQWNjb3VudCI6ICJDcmVhdGUgQWNjb3VudCIsDQogICAgInJlc2V0TG9ncyI6ICJSZXNldCBMb2dzIiwNCiAgICAidXBsb2FkTG9nbyI6ICJVcGxvYWQgTG9nbyINCiAgfSwNCiAgImZpbHRlciI6DQogIHsNCiAgICAidGFibGUiOg0KICAgIHsNCiAgICAgICJzdGFydGluZ0NoYW5uZWwiOiAiU3RhcnRpbmcgQ2guIE5vLiIsDQogICAgICAibmFtZSI6ICJGaWx0ZXIgTmFtZSIsDQogICAgICAidHlwZSI6ICJGaWx0ZXIgVHlwZSIsDQogICAgICAiZmlsdGVyIjogIkZpbHRlciINCiAgICB9LA0KICAgICJjdXN0b20iOiAiQ3VzdG9tIiwNCiAgICAiZ3JvdXAiOiAiTTNVIEdyb3VwIiwNCiAgICAibmFtZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIkZpbHRlciBOYW1lIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJGaWx0ZXIgbmFtZSIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgImRlc2NyaXB0aW9uIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiRGVzY3JpcHRpb24iLA0KICAgICAgInBsYWNlaG9sZGVyIjogIkRlc2NyaXB0aW9uIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAidHlwZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIlR5cGUiLA0KICAgICAgImdyb3VwVGl0bGUiOiAiR3JvdXAgVGl0bGUiLA0KICAgICAgImN1c3RvbUZpbHRlciI6ICJDdXN0b20gRmlsdGVyIg0KICAgIH0sDQogICAgImNhc2VTZW5zaXRpdmUiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJDYXNlIFNlbnNpdGl2ZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAiZmlsdGVyUnVsZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIkZpbHRlciBSdWxlIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJTcG9ydCB7SER9ICF7RVMsSVR9IiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAiZmlsdGVyR3JvdXAiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJHcm91cCBUaXRsZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJTZWxlY3QgYSBNM1UgZ3JvdXAuIChDb3VudGVyKTxicj5DaGFuZ2luZyB0aGUgZ3JvdXAgdGl0bGUgaW4gdGhlIE0zVSBpbnZhbGlkYXRlcyB0aGUgZmlsdGVyLiINCiAgICB9LA0KICAgICJpbmNsdWRlIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiSW5jbHVkZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiRkhELFVIRCIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiQ2hhbm5lbCBuYW1lIG11c3QgaW5jbHVkZS48YnI+KENvbW1hIHNlcGFyYXRlZCkgQ29tbWEgbWVhbnMgb3IiDQogICAgfSwNCiAgICAiZXhjbHVkZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIkV4Y2x1ZGUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIkVTLElUIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJDaGFubmVsIG5hbWUgbXVzdCBub3QgY29udGFpbi48YnI+KENvbW1hIHNlcGFyYXRlZCkgQ29tbWEgbWVhbnMgb3IiDQogICAgfSwNCiAgICAicHJlc2VydmVNYXBwaW5nIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiUHJlc2VydmUgRXhpc3RpbmcgTTNVPGJyPkNoYW5uZWwgTnVtYmVycyIsDQogICAgICAicGFsY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJQcmVzZXJ2ZSBleGlzdGluZyBNM1UgcGxheWxpc3QgY2hhbm5lbCBudW1iZXJzPyINCiAgICB9LA0KICAgICJzdGFydGluZ0NoYW5uZWwiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJTdGFydGluZyBDaGFubmVsIE51bWJlciIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfQ0KICB9LA0KICAicGxheWxpc3QiOg0KICB7DQogICAgInRhYmxlIjoNCiAgICB7DQogICAgICAicGxheWxpc3QiOiAiUGxheWxpc3QiLA0KICAgICAgInR1bmVyIjogIlR1bmVyIiwNCiAgICAgICJsYXN0VXBkYXRlIjogIkxhc3QgVXBkYXRlIiwNCiAgICAgICJhdmFpbGFiaWxpdHkiOiAiQXZhaWxhYmlsaXR5IiwNCiAgICAgICJ0eXBlIjogIlR5cGUiLA0KICAgICAgInN0cmVhbXMiOiAiU3RyZWFtcyIsDQogICAgICAiZ3JvdXBUaXRsZSI6ICJncm91cC10aXRsZSIsDQogICAgICAidHZnSUQiOiAidHZnLWlkIiwNCiAgICAgICJ1bmlxdWVJRCI6ICJVbmlxdWUgSUQiDQogICAgfSwNCiAgICAicGxheWxpc3RUeXBlIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiUGxheWxpc3QgdHlwZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAidHlwZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIlR5cGUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgIm5hbWUiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJOYW1lIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJQbGF5bGlzdCBuYW1lIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAiZGVzY3JpcHRpb24iOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJEZXNjcmlwdGlvbiIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiRGVzY3JpcHRpb24iLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJmaWxlTTNVIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiTTNVIEZpbGUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIkZpbGUgcGF0aCBvciBVUkwgb2YgdGhlIE0zVSIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgImZpbGVIREhSIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiSERIb21lUnVuIElQIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJJUCBhZGRyZXNzIGFuZCBwb3J0ICgxOTIuMTY4LjEuMTA6NTAwNCkiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJ0dW5lciI6DQogICAgew0KICAgICAgInRpdGxlIjogIlR1bmVyIC8gU3RyZWFtcyIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJOdW1iZXIgb2YgcGFyYWxsZWwgY29ubmVjdGlvbnMgdGhhdCBjYW4gYmUgZXN0YWJsaXNoZWQgdG8gdGhlIHByb3ZpZGVyLiA8YnI+T25seSBhdmFpbGFibGUgd2l0aCBhY3RpdmF0ZWQgYnVmZmVyLjxicj5OZXcgc2V0dGluZ3Mgd2lsbCBvbmx5IGJlIGFwcGxpZWQgYWZ0ZXIgcXVpdHRpbmcgYWxsIHN0cmVhbXMuIg0KICAgIH0NCiAgfSwNCiAgInhtbHR2IjoNCiAgew0KICAgICJ0YWJsZSI6DQogICAgew0KICAgICAgImd1aWRlIjogIkd1aWRlIiwNCiAgICAgICJsYXN0VXBkYXRlIjogIkxhc3QgVXBkYXRlIiwNCiAgICAgICJhdmFpbGFiaWxpdHkiOiAiQXZhaWxhYmlsaXR5IiwNCiAgICAgICJjaGFubmVscyI6ICJDaGFubmVscyIsDQogICAgICAicHJvZ3JhbXMiOiAiUHJvZ3JhbXMiDQogICAgfSwNCiAgICAibmFtZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIk5hbWUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIkd1aWRlIG5hbWUiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJkZXNjcmlwdGlvbiI6DQogICAgew0KICAgICAgInRpdGxlIjogIkRlc2NyaXB0aW9uIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJEZXNjcmlwdGlvbiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgImZpbGVYTUxUViI6DQogICAgew0KICAgICAgInRpdGxlIjogIlhNTFRWIEZpbGUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIkZpbGUgcGF0aCBvciBVUkwgb2YgdGhlIFhNTFRWIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfQ0KICB9LA0KICAibWFwcGluZyI6DQogIHsNCiAgICAidGFibGUiOg0KICAgIHsNCiAgICAgICJjaE5vIjogIkNoLiBOby4iLA0KICAgICAgImxvZ28iOiAiTG9nbyIsDQogICAgICAiY2hhbm5lbE5hbWUiOiAiQ2hhbm5lbCBOYW1lIiwNCiAgICAgICJ1cGRhdGVDaGFubmVsTmFtZVJlZ2V4IjogIlVwZC4gUnguIiwNCiAgICAgICJwbGF5bGlzdCI6ICJQbGF5bGlzdCIsDQogICAgICAiZ3JvdXBUaXRsZSI6ICJHcm91cCBUaXRsZSIsDQogICAgICAieG1sdHZGaWxlIjogIlhNTFRWIEZpbGUiLA0KICAgICAgInhtbHR2SUQiOiAiWE1MVFYgSUQiLA0KICAgICAgInRpbWVzaGlmdCI6ICJUaW1lc2hpZnQiDQogICAgfSwNCiAgICAiYWN0aXZlIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiQWN0aXZlIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJjaGFubmVsTmFtZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIkNoYW5uZWwgTmFtZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAiZGVzY3JpcHRpb24iOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJDaGFubmVsIERlc2NyaXB0aW9uIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJVc2VkIGJ5IHRoZSBEdW1teSBhcyBhbiBYTUwgZGVzY3JpcHRpb24iLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJ1cGRhdGVDaGFubmVsTmFtZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIlVwZGF0ZSBDaGFubmVsIE5hbWUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgInVwZGF0ZUNoYW5uZWxOYW1lUmVnZXgiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJDaGFubmVsIG5hbWUgdXBkYXRlIHJlZ2V4IiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJGb3IgZXhhbXBsZSBeUFBWWyBcXFxcLV9dPzEuKiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiT24gdXBkYXRlLCBpZiBhbnkgbmV3IGNoYW5uZWwgbmFtZSBtYXRjaGVzIHRoaXMgcmVnZXgsIHJlbmFtZSBjdXJyZW50IGNoYW5uZWwgdG8gdGhlIGZpcnN0IG1hdGNoaW5nIG5hbWUiDQogICAgfSwNCiAgICAidXBkYXRlQ2hhbm5lbE5hbWVCeUdyb3VwUmVnZXgiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJPbmx5IGJ5IGdyb3VwIHJlZ2V4IiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIlJlbmFtZSB0aGlzIGNoYW5uZWwgb25seSBpZiBjdXJyZW50IHVzZXItZGVmaW5lZCBncm91cCBtYXRjaGVzIHRoaXMgcmVnZXgiDQogICAgfSwNCiAgICAidXBkYXRlQ2hhbm5lbEdyb3VwIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiVXBkYXRlIENoYW5uZWwgR3JvdXAiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiSWYgY2hlY2tlZCwgdXNlIGdyb3VwIGZyb20gdGhlIGRhdGFiYXNlIg0KICAgIH0sDQogICAgImNoYW5uZWxMb2dvIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiTG9nbyBVUkwiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgInVwZGF0ZUNoYW5uZWxMb2dvIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiVXBkYXRlIENoYW5uZWwgTG9nbyIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAiZXBnQ2F0ZWdvcnkiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJFUEcgQ2F0ZWdvcnkiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgIm0zdUdyb3VwVGl0bGUiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJHcm91cCBUaXRsZSAoeHRldmUubTN1KSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAieG1sdHZGaWxlIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiWE1MVFYgRmlsZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAieG1sdHZDaGFubmVsIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiWE1MVFYgQ2hhbm5lbCIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAidGltZXNoaWZ0IjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiVGltZXNoaWZ0IiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIwIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfQ0KICB9LA0KICAidXNlcnMiOg0KICB7DQogICAgInRhYmxlIjoNCiAgICB7DQogICAgICAidXNlcm5hbWUiOiAiVXNlcm5hbWUiLA0KICAgICAgInBhc3N3b3JkIjogIlBhc3N3b3JkIiwNCiAgICAgICJ3ZWIiOiAiV0VCIiwNCiAgICAgICJwbXMiOiAiUE1TIiwNCiAgICAgICJtM3UiOiAiTTNVIiwNCiAgICAgICJ4bWwiOiAiWE1MIiwNCiAgICAgICJhcGkiOiAiQVBJIg0KICAgIH0sDQogICAgInVzZXJuYW1lIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiVXNlcm5hbWUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIlVzZXJuYW1lIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAicGFzc3dvcmQiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJQYXNzd29yZCIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiUGFzc3dvcmQiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJjb25maXJtIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiQ29uZmlybSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiUGFzc3dvcmQgY29uZmlybSIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgIndlYiI6DQogICAgew0KICAgICAgInRpdGxlIjogIldlYiBBY2Nlc3MiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgInBtcyI6DQogICAgew0KICAgICAgInRpdGxlIjogIlBNUyBBY2Nlc3MiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgIm0zdSI6DQogICAgew0KICAgICAgInRpdGxlIjogIk0zVSBBY2Nlc3MiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgInhtbCI6DQogICAgew0KICAgICAgInRpdGxlIjogIlhNTCBBY2Nlc3MiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgImFwaSI6DQogICAgew0KICAgICAgInRpdGxlIjogIkFQSSBBY2Nlc3MiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0NCiAgfSwNCiAgInNldHRpbmdzIjoNCiAgew0KICAgICJjYXRlZ29yeSI6DQogICAgew0KICAgICAgImdlbmVyYWwiOiAiR2VuZXJhbCIsDQogICAgICAibWFwcGluZyI6ICJNYXBwaW5nIiwNCiAgICAgICJmaWxlcyI6ICJGaWxlcyIsDQogICAgICAic3RyZWFtaW5nIjogIlN0cmVhbWluZyIsDQogICAgICAiYmFja3VwIjogIkJhY2t1cCIsDQogICAgICAiYXV0aGVudGljYXRpb24iOiAiQXV0aGVudGljYXRpb24iDQogICAgfSwNCiAgICAidXBkYXRlIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiU2NoZWR1bGUgZm9yIHVwZGF0aW5nIChQbGF5bGlzdCwgWE1MVFYsIEJhY2t1cCkiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIjAwMDAsMTAwMCwyMDAwIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJUaW1lIGluIDI0IGhvdXIgZm9ybWF0ICgwODAwID0gODowMCBhbSkuIE1vcmUgdGltZXMgY2FuIGJlIGVudGVyZWQgY29tbWEgc2VwYXJhdGVkLiBMZWF2ZSB0aGlzIGZpZWxkIGVtcHR5IGlmIG5vIHVwZGF0ZXMgYXJlIHRvIGJlIGNhcnJpZWQgb3V0LiINCiAgICB9LA0KICAgICJhcGkiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJBUEkgSW50ZXJmYWNlIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJWaWEgQVBJIGludGVyZmFjZSBpdCBpcyBwb3NzaWJsZSB0byBzZW5kIGNvbW1hbmRzIHRvIHhUZVZlLiBBUEkgZG9jdW1lbnRhdGlvbiBpcyA8YSBocmVmPSdodHRwczovL2dpdGh1Yi5jb20veHRldmUtcHJvamVjdC94VGVWZS1Eb2N1bWVudGF0aW9uL2Jsb2IvbWFzdGVyL2VuL2NvbmZpZ3VyYXRpb24ubWQjYXBpJz5oZXJlPC9hPiINCiAgICB9LA0KICAgICJkZWZhdWx0TWlzc2luZ0VQRyI6DQogICAgew0KICAgICAgInRpdGxlIjogIkZpbGwgTWlzc2luZyBFUEcgRGF0YSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJXaGVuIHRoZXJlIGlzIG5vIG1hdGNoaW5nIEVQRyBkYXRhIGZvciBjaGFubmVsLCA8YnI+YXV0b2ZpbGwgd2l0aCB4VGVWZSBkdW1teSBFUEcgZGF0YT8iDQogICAgfSwNCiAgICAiZGlzYWxsb3dVUkxEdXBsaWNhdGVzIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiRGlzYWxsb3cgVVJMIGR1cGxpY2F0ZXMiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIklmIGNoZWNrZWQsIGRvIG5vdCBhZGQgYSBuZXcgY2hhbm5lbCBmcm9tIHBsYXlsaXN0IGlmIGNoYW5uZWwgd2l0aCBzdWNoIFVSTCBhbHJlYWR5IGV4aXN0cyINCiAgICB9LA0KICAgICJlcGdTb3VyY2UiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJFUEcgU291cmNlIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJQTVM6PGJyPi0gVXNlIEVQRyBkYXRhIGZyb20gUGxleCBvciBFbWJ5IDxicj48YnI+WEVQRzo8YnI+LSBVc2Ugb2Ygb25lIG9yIG1vcmUgWE1MVFYgZmlsZXM8YnI+LSBDaGFubmVsIG1hbmFnZW1lbnQ8YnI+LSBNM1UgLyBYTUxUViBleHBvcnQgKEhUVFAgbGluayBmb3IgSVBUViBhcHBzKSINCiAgICB9LA0KICAgICJ0dW5lciI6DQogICAgew0KICAgICAgInRpdGxlIjogIk51bWJlciBvZiBUdW5lcnMiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIk51bWJlciBvZiBwYXJhbGxlbCBjb25uZWN0aW9ucyB0aGF0IGNhbiBiZSBlc3RhYmxpc2hlZCB0byB0aGUgcHJvdmlkZXIuPGJyPkF2YWlsYWJsZSBmb3I6IFBsZXgsIEVtYnkgKEhESFIpLCBNM1UgKHdpdGggYWN0aXZlIGJ1ZmZlcikuPGJyPkFmdGVyIGEgY2hhbmdlLCB4VGVWZSBtdXN0IGJlIGRlbGV0ZSBpbiB0aGUgUGxleCAvIEVtYnkgRFZSIHNldHRpbmdzIGFuZCBzZXQgdXAgYWdhaW4uIg0KICAgIH0sDQogICAgImhvc3RJUCI6DQogICAgew0KICAgICAgInRpdGxlIjogIkhvc3QgSVAiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIklQIGFkZHJlc3MgeFRlVmUgd2lsbCB1c2UgdG8gZm9ybSBNM1UgYW5kIFhNTFRWIGZpbGVzIg0KICAgIH0sDQogICAgInRsc01vZGUiOiB7DQogICAgICAidGl0bGUiOiAiVExTIChIVFRQUykgbW9kZSIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiQ2hhbmdlcyB3ZWIgc2VydmVyIHByb3RvY29sIHRvIEhUVFBTLjxicj5Gb3IgZGV0YWlscywgc2VlIDxhPmh0dHBzOi8vZ2l0aHViLmNvbS9TQ1AwMDIveFRlVmUjdGxzLW1vZGU8L2E+Ig0KICAgIH0sDQogICAgImZpbGVzVXBkYXRlIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiVXBkYXRlcyBhbGwgZmlsZXMgYXQgc3RhcnR1cCIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiVXBkYXRlcyBhbGwgcGxheWxpc3RzLCB0dW5lciBhbmQgWE1MVFYgZmlsZXMgYXQgc3RhcnR1cC4iDQogICAgfSwNCiAgICAiY2FjaGVJbWFnZXMiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJJbWFnZSBDYWNoaW5nIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJBbGwgaW1hZ2VzIGZyb20gdGhlIFhNTFRWIGZpbGUgYXJlIGNhY2hlZCwgYWxsb3dpbmcgZmFzdGVyIHJlbmRlcmluZyBvZiB0aGUgZ3JpZCBpbiB0aGUgY2xpZW50Ljxicj5Eb3dubG9hZGluZyB0aGUgaW1hZ2VzIG1heSB0YWtlIGEgd2hpbGUgYW5kIHdpbGwgYmUgZG9uZSBpbiB0aGUgYmFja2dyb3VuZC4iDQogICAgfSwNCiAgICAicmVwbGFjZUVtcHR5SW1hZ2VzIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiUmVwbGFjZSBtaXNzaW5nIHByb2dyYW0gaW1hZ2VzIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJJZiB0aGUgcG9zdGVyIGluIHRoZSBYTUxUViBwcm9ncmFtIGlzIG1pc3NpbmcsIHRoZSBjaGFubmVsIGxvZ28gd2lsbCBiZSB1c2VkLiINCiAgICB9LA0KICAgICJ4dGV2ZUF1dG9VcGRhdGUiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJBdXRvbWF0aWMgdXBkYXRlIG9mIHhUZVZlIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJJZiBhIG5ldyB2ZXJzaW9uIG9mIHhUZVZlIGlzIGF2YWlsYWJsZSwgaXQgd2lsbCBiZSBhdXRvbWF0aWNhbGx5IGluc3RhbGxlZC4gVGhlIHVwZGF0ZXMgYXJlIGRvd25sb2FkZWQgZnJvbSBHaXRIdWIuIg0KICAgIH0sDQogICAgInN0cmVhbUJ1ZmZlcmluZyI6DQogICAgew0KICAgICAgInRpdGxlIjogIlN0cmVhbSBCdWZmZXIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIkZ1bmN0aW9ucyBvZiB0aGUgYnVmZmVyOjxicj4tIFRoZSBzdHJlYW0gaXMgcGFzc2VkIGZyb20geFRlVmUsIEZGbXBlZyBvciBWTEMgdG8gUGxleCwgRW1ieSBvciBNM1UgUGxheWVyPGJyPi0gU21hbGwgamVya2luZyBvZiB0aGUgc3RyZWFtcyBjYW4gYmUgY29tcGVuc2F0ZWQ8YnI+LSBITFMgLyBNM1U4IHN1cHBvcnQ8YnI+LSBSVFAgLyBSVFBTIHN1cHBvcnQgKG9ubHkgRkZtcGVnIG9yIFZMQyk8YnI+LSBSZS1zdHJlYW1pbmc8YnI+LSBTZXBhcmF0ZSB0dW5lciBsaW1pdCBmb3IgZWFjaCBwbGF5bGlzdCIsDQogICAgICAiaW5mb19mYWxzZSI6ICJObyBCdWZmZXIgKENsaWVudCBjb25uZWN0cyB0byB0aGUgc3RyZWFtaW5nIHNlcnZlcikiLA0KICAgICAgImluZm9feHRldmUiOiAieFRlVmUgY29ubmVjdHMgdG8gdGhlIHN0cmVhbWluZyBzZXJ2ZXIiLA0KICAgICAgImluZm9fZmZtcGVnIjogIkZGbXBlZyBjb25uZWN0cyB0byB0aGUgc3RyZWFtaW5nIHNlcnZlciIsDQogICAgICAiaW5mb192bGMiOiAiVkxDIGNvbm5lY3RzIHRvIHRoZSBzdHJlYW1pbmcgc2VydmVyIg0KDQogICAgfSwNCiAgICAidWRweHkiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJVRFB4eSBhZGRyZXNzIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJUaGUgYWRkcmVzcyBvZiB5b3VyIFVEUHh5IHNlcnZlci4gSWYgc2V0LCBhbmQgdGhlIGNoYW5uZWwgVVJMcyBpbiB0aGUgbTN1IGlzIG11bHRpY2FzdCwgeFRlVmUgd2lsbCByZXdyaXRlIGl0IHNvIHRoYXQgaXQgaXMgYWNjZXNzZWQgdmlhIHRoZSBVRFB4eSBzZXJ2aWNlLiIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiaG9zdDpwb3J0Ig0KICAgIH0sDQogICAgImZmbXBlZ1BhdGgiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJGRm1wZWcgQmluYXJ5IFBhdGgiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIlBhdGggdG8gRkZtcGVnIGJpbmFyeS4iLA0KICAgICAgInBsYWNlaG9sZGVyIjogIi9wYXRoL3RvL2ZmbXBlZyINCiAgICB9LA0KICAgICJmZm1wZWdPcHRpb25zIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiRkZtcGVnIE9wdGlvbnMiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIkZGbXBlZyBvcHRpb25zLjxicj5Pbmx5IGNoYW5nZSBpZiB5b3Uga25vdyB3aGF0IHlvdSBhcmUgZG9pbmcuPGJyPkxlYXZlIGJsYW5rIHRvIHNldCBkZWZhdWx0IHNldHRpbmdzLiIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiTGVhdmUgYmxhbmsgdG8gc2V0IGRlZmF1bHQgc2V0dGluZ3MiDQogICAgfSwNCiAgICAidmxjUGF0aCI6DQogICAgew0KICAgICAgInRpdGxlIjogIlZMQyAvIENWTEMgQmluYXJ5IFBhdGgiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIlBhdGggdG8gVkxDIC8gQ1ZMQyBiaW5hcnkuIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIvcGF0aC90by9jdmxjIg0KICAgIH0sDQogICAgInZsY09wdGlvbnMiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJWTEMgLyBDVkxDIE9wdGlvbnMiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIlZMQyAvIENWTEMgb3B0aW9ucy48YnI+T25seSBjaGFuZ2UgaWYgeW91IGtub3cgd2hhdCB5b3UgYXJlIGRvaW5nLjxicj5MZWF2ZSBibGFuayB0byBzZXQgZGVmYXVsdCBzZXR0aW5ncy4iLA0KICAgICAgInBsYWNlaG9sZGVyIjogIkxlYXZlIGJsYW5rIHRvIHNldCBkZWZhdWx0IHNldHRpbmdzIg0KICAgIH0sDQogICAgImJ1ZmZlclNpemUiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJCdWZmZXIgU2l6ZSIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiQnVmZmVyIHNpemUgaW4gTUIuPGJyPk0zVTg6IElmIHRoZSBUUyBzZWdtZW50IHNtYWxsZXIgdGhlbiB0aGUgYnVmZmVyIHNpemUsIHRoZSBmaWxlIHNpemUgb2YgdGhlIHNlZ21lbnQgaXMgdXNlZC4iDQogICAgfSwNCiAgICAic3RvcmVCdWZmZXJJblJBTSI6DQogICAgew0KICAgICAgInRpdGxlIjogIlN0b3JlIGJ1ZmZlciBpbiBSQU0iLA0KICAgICAgImRlc2NyaXB0aW9uIjogIklmIGNoZWNrZWQsIHdyaXRlIGJ1ZmZlciB0byBSQU0gaW5zdGVhZCBvZiB3cml0aW5nIHRvIGRpc2siDQogICAgfSwNCiAgICAiYnVmZmVyVGltZW91dCI6DQogICAgew0KICAgICAgInRpdGxlIjogIlRpbWVvdXQgZm9yIG5ldyBjbGllbnQgY29ubmVjdGlvbnMiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIlRoZSB4VGVWZSBidWZmZXIgd2FpdHMgdW50aWwgbmV3IGNsaWVudCBjb25uZWN0aW9ucyBhcmUgZXN0YWJsaXNoZWQuIEhlbHBmdWwgZm9yIGZhc3QgY2hhbm5lbCBzd2l0Y2hpbmcuIFZhbHVlIGluIG1pbGxpc2Vjb25kcy4iLA0KICAgICAgInBsYWNlaG9sZGVyIjogIjEwMCINCiAgICB9LA0KICAgICJ1c2VyQWdlbnQiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJVc2VyIEFnZW50IiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJVc2VyIEFnZW50IGZvciBIVFRQIHJlcXVlc3RzLiBGb3IgZXZlcnkgSFRUUCBjb25uZWN0aW9uLCB0aGlzIHZhbHVlIGlzIHVzZWQgZm9yIHRoZSB1c2VyIGFnZW50LiBTaG91bGQgb25seSBiZSBjaGFuZ2VkIGlmIHhUZVZlIGlzIGJsb2NrZWQuIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJ4VGVWZSINCiAgICB9LA0KICAgICJiYWNrdXBQYXRoIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiTG9jYXRpb24gZm9yIGF1dG9tYXRpYyBiYWNrdXBzIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIvbW50L2RhdGEvYmFja3VwL3h0ZXZlLyIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiQmVmb3JlIGFueSB1cGRhdGUgb2YgdGhlIHByb3ZpZGVyIGRhdGEgYnkgdGhlIHNjaGVkdWxlLCB4VGVWZSBjcmVhdGVzIGEgYmFja3VwLiBUaGUgcGF0aCBmb3IgdGhlIGF1dG9tYXRpYyBiYWNrdXBzIGNhbiBiZSBjaGFuZ2VkLiB4VGVWZSByZXF1aXJlcyB3cml0ZSBwZXJtaXNzaW9uIGZvciB0aGlzIGZvbGRlci4iDQogICAgfSwNCiAgICAidGVtcFBhdGgiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJMb2NhdGlvbiBmb3IgdGhlIHRlbXBvcmFyeSBmaWxlcyIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiL3RtcC94dGV2ZS8iLA0KICAgICAgImRlc2NyaXB0aW9uIjogIkxvY2F0aW9uIGZvciB0aGUgYnVmZmVyIGZpbGVzLiINCiAgICB9LA0KICAgICJiYWNrdXBLZWVwIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiTnVtYmVyIG9mIGJhY2t1cHMgdG8ga2VlcCIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiTnVtYmVyIG9mIGJhY2t1cHMgdG8ga2VlcC4gT2xkZXIgYmFja3VwcyBhcmUgYXV0b21hdGljYWxseSBkZWxldGVkLiINCiAgICB9LA0KICAgICJhdXRoZW50aWNhdGlvbldFQiI6DQogICAgew0KICAgICAgInRpdGxlIjogIldFQiBBdXRoZW50aWNhdGlvbiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiQWNjZXNzIHRvIHRoZSB3ZWIgaW50ZXJmYWNlIG9ubHkgcG9zc2libGUgd2l0aCBjcmVkZW50aWFscy4iDQogICAgfSwNCiAgICAiYXV0aGVudGljYXRpb25QTVMiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJQTVMgQXV0aGVudGljYXRpb24iLA0KICAgICAgImRlc2NyaXB0aW9uIjogIlBsZXggcmVxdWVzdHMgYXJlIG9ubHkgcG9zc2libGUgd2l0aCBhdXRoZW50aWNhdGlvbi4gPGJyPjxiPldhcm5pbmchISE8L2I+IEFmdGVyIGFjdGl2YXRpbmcgdGhpcyBmdW5jdGlvbiB4VGVWZSBtdXN0IGJlIGRlbGV0ZSBpbiB0aGUgUE1TIERWUiBzZXR0aW5ncyBhbmQgc2V0IHVwIGFnYWluLiINCiAgICB9LA0KICAgICJhdXRoZW50aWNhdGlvbk0zVSI6DQogICAgew0KICAgICAgInRpdGxlIjogIk0zVSBBdXRoZW50aWNhdGlvbiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiRG93bmxvYWRpbmcgdGhlIHh0ZXZlLm0zdSBmaWxlIHZpYSBhbiBIVFRQIHJlcXVlc3QgaXMgb25seSBwb3NzaWJsZSB3aXRoIGF1dGhlbnRpY2F0aW9uLiINCiAgICB9LA0KICAgICJhdXRoZW50aWNhdGlvblhNTCI6DQogICAgew0KICAgICAgInRpdGxlIjogIlhNTCBBdXRoZW50aWNhdGlvbiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiRG93bmxvYWRpbmcgdGhlIHh0ZXZlLnhtbCBmaWxlIHZpYSBhbiBIVFRQIHJlcXVlc3QgaXMgb25seSBwb3NzaWJsZSB3aXRoIGF1dGhlbnRpY2F0aW9uIg0KICAgIH0sDQogICAgImF1dGhlbnRpY2F0aW9uQVBJIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiQVBJIEF1dGhlbnRpY2F0aW9uIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJBY2Nlc3MgdG8gdGhlIEFQSSBpbnRlcmZhY2UgaXMgb25seSBwb3NzaWJsZSB3aXRoIGF1dGhlbnRpY2F0aW9uLiINCiAgICB9DQogIH0sDQogICJ3aXphcmQiOg0KICB7DQogICAgImVwZ1NvdXJjZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIkVQRyBTb3VyY2UiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIlBNUzo8YnI+LSBVc2UgRVBHIGRhdGEgZnJvbSBQbGV4IG9yIEVtYnkgPGJyPjxicj5YRVBHOjxicj4tIFVzZSBvZiBvbmUgb3IgbW9yZSBYTUxUViBmaWxlczxicj4tIENoYW5uZWwgbWFuYWdlbWVudDxicj4tIE0zVSAvIFhNTFRWIGV4cG9ydCAoSFRUUCBsaW5rIGZvciBJUFRWIGFwcHMpIg0KICAgIH0sDQogICAgInR1bmVyIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiTnVtYmVyIG9mIHR1bmVycyIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiTnVtYmVyIG9mIHBhcmFsbGVsIGNvbm5lY3Rpb25zIHRoYXQgY2FuIGJlIGVzdGFibGlzaGVkIHRvIHRoZSBwcm92aWRlci48YnI+QXZhaWxhYmxlIGZvcjogUGxleCwgRW1ieSAoSERIUiksIE0zVSAod2l0aCBhY3RpdmUgYnVmZmVyKS48YnI+QWZ0ZXIgYSBjaGFuZ2UsIHhUZVZlIG11c3QgYmUgZGVsZXRlIGluIHRoZSBQbGV4IC8gRW1ieSBEVlIgc2V0dGluZ3MgYW5kIHNldCB1cCBhZ2Fpbi4iDQogICAgfSwNCiAgICAibTN1IjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiTTNVIFBsYXlsaXN0IiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJGaWxlIHBhdGggb3IgVVJMIG9mIHRoZSBNM1UiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIkxvY2FsIG9yIHJlbW90ZSBwbGF5bGlzdHMiDQogICAgfSwNCiAgICAieG1sdHYiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJYTUxUViBGaWxlIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJGaWxlIHBhdGggb3IgVVJMIG9mIHRoZSBYTUxUViIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiTG9jYWwgb3IgcmVtb3RlIFhNTFRWIGZpbGUiDQogICAgfQ0KICB9LA0KICAibG9naW4iOg0KICB7DQogICAgImZhaWxlZCI6ICJVc2VyIGF1dGhlbnRpY2F0aW9uIGZhaWxlZCIsDQogICAgImhlYWRsaW5lIjogIkxvZ2luIiwNCiAgICAidXNlcm5hbWUiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJVc2VybmFtZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiVXNlcm5hbWUiDQogICAgfSwNCiAgICAicGFzc3dvcmQiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJQYXNzd29yZCIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiUGFzc3dvcmQiDQogICAgfQ0KICB9LA0KICAiYWNjb3VudCI6DQogIHsNCiAgICAiZmFpbGVkIjogIlBhc3N3b3JkIGRvZXMgbm90IG1hdGNoIiwNCiAgICAiaGVhZGxpbmUiOiAiQ3JlYXRlIHVzZXIgYWNjb3VudCIsDQogICAgInVzZXJuYW1lIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiVXNlcm5hbWUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIlVzZXJuYW1lIg0KICAgIH0sDQogICAgInBhc3N3b3JkIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiUGFzc3dvcmQiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIlBhc3N3b3JkIg0KICAgIH0sDQogICAgImNvbmZpcm0iOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJDb25maXJtIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJDb25maXJtIg0KICAgIH0NCiAgfQ0KfQ==" webUI["html/login.html"] = "PCFkb2N0eXBlIGh0bWw+DQo8aHRtbD4NCiAgPGhlYWQ+DQogICAgPG1ldGEgY2hhcnNldD0idXRmLTgiPg0KICAgIDxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgsIGluaXRpYWwtc2NhbGU9MS4wIiAvPiANCiAgICA8dGl0bGU+eFRlVmU8L3RpdGxlPg0KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iY3NzL3NjcmVlbi5jc3MiIHR5cGU9InRleHQvY3NzIj4NCiAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9ImNzcy9iYXNlLmNzcyIgdHlwZT0idGV4dC9jc3MiPg0KICAgIDxzY3JpcHQgbGFuZ3VhZ2U9ImphdmFzY3JpcHQiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJqcy9uZXR3b3JrX3RzLmpzIj48L3NjcmlwdD4NCiAgICA8c2NyaXB0IGxhbmd1YWdlPSJqYXZhc2NyaXB0IiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ianMvYXV0aGVudGljYXRpb25fdHMuanMiPjwvc2NyaXB0Pg0KICA8L2hlYWQ+DQoNCiAgICA8Ym9keT4NCiAgICAgICAgICANCiAgICAgIDxkaXYgaWQ9ImhlYWRlciIgY2xhc3M9ImltZ0NlbnRlciI+PC9kaXY+DQoNCiAgICAgIDxkaXYgaWQ9ImJveCI+DQoNCiAgICAgICAgPGRpdiBpZD0iaGVhZGxpbmUiPg0KICAgICAgICAgIDxoMSBpZD0iaGVhZC10ZXh0IiBjbGFzcz0iY2VudGVyIj57ey5sb2dpbi5oZWFkbGluZX19PC9oMT4NCiAgICAgICAgPC9kaXY+DQoNCiAgICAgICAgPHAgaWQ9ImVyciIgY2xhc3M9ImVycm9yTXNnIGNlbnRlciI+e3suYXV0aGVudGljYXRpb25FcnJ9fTwvcD4NCg0KICAgICAgICA8ZGl2IGlkPSJjb250ZW50Ij4NCg0KICAgICAgICAgICAgPGZvcm0gaWQ9ImF1dGhlbnRpY2F0aW9uIiBhY3Rpb249IiIgbWV0aG9kPSJwb3N0Ij4NCg0KICAgICAgICAgICAgICA8aDU+e3subG9naW4udXNlcm5hbWUudGl0bGV9fTo8L2g1Pg0KICAgICAgICAgICAgICA8aW5wdXQgaWQ9InVzZXJuYW1lIiB0eXBlPSJ0ZXh0IiBuYW1lPSJ1c2VybmFtZSIgcGxhY2Vob2xkZXI9IlVzZXJuYW1lIiB2YWx1ZT0iIj4NCiAgICAgICAgICAgICAgPGg1Pnt7LmxvZ2luLnBhc3N3b3JkLnRpdGxlfX06PC9oNT4NCiAgICAgICAgICAgICAgPGlucHV0IGlkPSJwYXNzd29yZCIgdHlwZT0icGFzc3dvcmQiIG5hbWU9InBhc3N3b3JkIiBwbGFjZWhvbGRlcj0iUGFzc3dvcmQiIHZhbHVlPSIiPg0KDQogICAgICAgICAgICA8L2Zvcm0+DQoNCiAgICAgICAgPC9kaXY+DQoNCiAgICAgICAgPGRpdiBpZD0iYm94LWZvb3RlciI+DQogICAgICAgICAgPGlucHV0IGlkPSJzdWJtaXQiIGNsYXNzPSIiIHR5cGU9ImJ1dHRvbiIgdmFsdWU9Int7LmJ1dHRvbi5sb2dpbn19IiBvbmNsaWNrPSJqYXZhc2NyaXB0OiBsb2dpbigpOyI+DQogICAgICAgIDwvZGl2Pg0KICAgICAgICANCiAgICAgIDwvZGl2Pg0KDQogICAgPC9ib2R5Pg0KICAgIA0KPC9odG1sPg==" webUI["html/maintenance.html"] = "PCFkb2N0eXBlIGh0bWw+DQo8aHRtbD4NCiAgPGhlYWQ+DQogICAgPG1ldGEgY2hhcnNldD0idXRmLTgiPg0KICAgIDxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgsIGluaXRpYWwtc2NhbGU9MS4wIiAvPiANCiAgICA8dGl0bGU+eFRlVmU8L3RpdGxlPg0KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iY3NzL3NjcmVlbi5jc3MiIHR5cGU9InRleHQvY3NzIj4NCiAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9ImNzcy9iYXNlLmNzcyIgdHlwZT0idGV4dC9jc3MiPg0KICA8L2hlYWQ+DQoNCiAgICA8Ym9keT4NCiAgICAgICAgICANCiAgICAgIDxkaXYgaWQ9ImhlYWRlciIgY2xhc3M9ImltZ0NlbnRlciI+PC9kaXY+DQoNCiAgICAgIDxkaXYgaWQ9ImJveCI+DQoNCiAgICAgICAgPGRpdiBpZD0iaGVhZGxpbmUiPg0KICAgICAgICAgIDxoMSBpZD0iaGVhZC10ZXh0IiBjbGFzcz0iY2VudGVyIj5NYWludGVuYW5jZTwvaDE+ICAgICAgDQogICAgICAgIDwvZGl2PiAgDQoNCiAgICAgICAgPGRpdiBpZD0iY29udGVudCI+DQogICAgICAgICAgeFRlVmUgaXMgdXBkYXRpbmcgdGhlIGRhdGFiYXNlLCBwbGVhc2UgdHJ5IGFnYWluIGxhdGVyLg0KICAgICAgICA8L2Rpdj4NCg0KICAgICAgICA8ZGl2IGlkPSJib3gtZm9vdGVyIj48L2Rpdj4NCiAgICAgICAgDQogICAgICA8L2Rpdj4NCg0KICAgIDwvYm9keT4NCjwvaHRtbD4=" webUI["html/video/stream-limit.ts"] = "R0AREABC8CUAAcEAAP8B/wAB/IAUSBIBBkZGbXBlZwlTZXJ2aWNlMDF3fEPK//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////9HQAAQAACwDQABwQAAAAHwACqxBLL//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////0dQABAAArASAAHBAADhAPAAG+EA8AAVvU1W////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////R0EAMAdQAAB7DH4AAAAB4AAAgMAKMQAJEKERAAfYYQAAAAEJ8AAAAAFnZAAorNlAeAIn5cBEAAADAAQAAAMAyDxgxlgAAAABaOvjyyLAAAABBgX//6rcRem95tlIt5Ys2CDZI+7veDI2NCAtIGNvcmUgMTUyIHIyODU0IGU5YTU5MDMgLSBILjI2NC9NUEVHLTQgQVZDIGNvZGVjIC0gQ29weWxlZnQgMjAwMy0yMDE3IC0gaHR0cDovL3dHAQARd3cudmlkZW9sYW4ub3JnL3gyNjQuaHRtbCAtIG9wdGlvbnM6IGNhYmFjPTEgcmVmPTMgZGVibG9jaz0xOjA6MCBhbmFseXNlPTB4MzoweDExMyBtZT1oZXggc3VibWU9NyBwc3k9MSBwc3lfcmQ9MS4wMDowLjAwIG1peGVkX3JlZj0xIG1lX3JhbmdlPTE2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ACqxBLL//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////0dQABEAArASAAHBAADhAPAAG+EA8AAVvU1W////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////RwEAGO10tGlFAwyE91Tzg8923ovJk1dv2xh1gVlYQFtWdZ6NSQ8vgHM7/tMfIZPsqgCU856rdBJJRMDaor/oWA7pkvSmC2aqaC5fd/mkWUPTuG8fRhGqOY1rKxLNSI3HtTQAcuVBxRM0NfMw0ky/JMJYZiCgXcNsxpxl+khr/9fKtO5Fg2VNBti92xcZimHUZDJMQTBOY6vSR9L1N2O/kJQCpdfuc9bkcUTMjH/es/lAySxvbiislkohqkpHAQAZVatwHI0t9eHCUfDyWUEtuCNyDwQFOVMtaYEQJrTrhQX0VduT86F0u0wN9ag0uPsrmX6Rid/x5S7KI1SkS+qP6cdmgSP57uiF4dG6IKsWNfGBLY09H/CFlrg73WINQkkp2diKkdEmtZetn8+ZAKzR5eXN5FebiKt6pIkNLuSofjosypEs2o6boKsfpmbtOV0idOeWDM9C8EIcn3aZwk1s2KBDvt1DlY+i2Cuvhk3XoKLT+pq/bOC5QkcBABolcOXneZXLoQw9W1PH1f/of92Ytjj8okrWijcQAKlE5l8XoTb9qrOiZnDOhqwcMlB9H9rorq041I89hChohYoSkJElcM8V+r8WYN5axD1BNyfwaHAOm4UN2/VEYOkNSfMjmx2S0WW/F2ha8Jj4fc4QgqcXr+TnnbwqLkLTValK4Qa1pcv7PIbDq6zCUfxe04guZ8xEhPQjp17/G6IB/6uq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wnibxQ/cXEblVnM47wbCN3iy4eHjYB5MoIICrSYmd8nt4V0toLs084KJlmnur5FbApYM4W79ff4oZkW88Cg8Fv8TnWhh1Hqc4UlhMbRKm2QxDgfBxar3U7BwNR6prrXXjqfR7ja3tPli+H7Jez/xcTg32QpHAQAdTa7pSSgBvmOqzz175NAFIhwE9p3d71F9jLvhaPv8q1iKopL0kizwzEWElnXWmNhfLkl/Au8KujnoKUaxVdTe+zAZm2dOkejnpNVtVj0Aw9wKcG3ZQ1iRZrUFRIoPKYlmR+oi0LrupuhYABtgPbdCbDtezGTr0nw9wVd/rZ6V+1wcoJ6+8VAVueIdwI3brqm6EoFHiI8L6lER+9SefB8fHo4NYgr/I8jSxaa/2PLX2K/DjrlY6bN8fEcBAB7DXsuh8DITF6CYWj2HTFvqfzlic3QHXnHtvsTFNpyVY1LY8y/fRK2mwALN6IB5W3OuyoKiA3K0lJdQUv2gYhHWvPTV218HYrD0rkbMxRH0SiEEkrHDeOt5T1HtWD13D2/QvMu535fsfZyeaFDjdCE9M0Xi8Lfc7Xj1ZNGend7Jo7/cEiczFkc1vB4z2JpFGZreV2EdquyEzC2STFJtfimyx8QlLngEuR1cxH+lWEcFX+mvBa/eqktIRwEAH6VazFLPNsnHZqsI66TVoArQuUUGFAzr8MT8GZ9V6qpZa5D0jA/4eGi6Kq0smUgRExnqIbSMLWqDf/Pk2YT3MpHTu9VE3Dn9blgB6KsVIkWnB98Y2n/6DrZDcF94Ndu0Ka4U/RZwdV5O5KcO+lU2ZiIOYTYZ6Ie0d+tApxYxJ+YmxaDoCyRNe6crw/yzR5SflT8ddi/E2BM+l+nwVDiKZ/714fmrBxFKWuqLiQNHV19o1cZ8Ubun+ZtHQAASAACwDQABwQAAAAHwACqxBLL//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////0dQABIAArASAAHBAADhAPAAG+EA8AAVvU1W////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////RwEAEH1s3BdtHdF1ln55B24wdACF/ggcRtPmB4IUB6cZJ+m32I4R48ZkdhAFBulgWcsv0wZwH0o1yi3i4qm3rJ98AUKdB9PsNyG9gURV0bTw4myAj6g5Dgodfv6w9bsbOxsGUWkvgAJ3rrR010BvZbIa6CMRCQRjxkCfRF77ansRJZT0JzhtYeSS/ZJob8Rr2jrng3W2rkmHtE+rdqlPiHxmwkRZvYGhBxwiJO2L6f+l/cABsfs09rA+A0pHAQAREZay3TBUIAfMWhApE+LaPgeyOYtaPFONA9aC0h4QrFkaLZfb86678MK+zLgqDBsDoj50eZHMVcczRjs4sYlv7RG8RIWKb5lB9Kn/8+CkxiiA11cHH1yzLX2SKCmhsak/+P/zYQ1EDvEj33bl9e3Jd62cTI+Qw99KrsWnUMN8hFNeXzoGHA3aec+Li4NFboF8sa6lCPR6Csxsvxw8DJaWCnER5Z0p+nKhXavF/eNHQ0DX47ohycc87UcBABKsYHCHXXe3vK1cFYDWO6rhwM6hxCdJ+/X+VB1akQejL6iBMdUPuadUqBnbprwJM0dWpSSn9uuZZeqe46iZOGIJUo69d8x+ZSvPcBH/dK1Y0LJnoWdgWH51SQg7eYqcwjQW3BOy7ZF02Hn1EhTuhsN7ms8zv3WIeEBDBq0T3Idl+Tmw9iJU9skVYiwygHG2+0XwrLa6y+uiQPwMzrnEr1kuf24XoAqrJTZQiVH3aQF4d94yDreWu2KPRwEAE2FsynHZaUcBXEFbeX0nSxZ7sRcRjJvc7RYOny6N8QFwKDVO7jpRWWYM55kuepBOyZ+7BFYeG+FU1kR+ZfmqyDNkD4D1IPwNh6u9JQxDymfN/aMcQC3WxdvCKquPsAut6dugpGkOFtIe+W3ayc4V/J978P+h1EDFMbFjxRPuXht0K2dBQZCJ0ybISUDqWzhPuep8CdxSU4MvMVfdXh7FLl/BqKJUTT+vM+Pz3XnqCQQmH5TjQ4CK55VHAQAUEtgfkBwIYgtwHkhjmtLw7HNTeJeMfTjATEKcyuKzItSeYxHBmGzQ/+G2otpPCOkVAXJ9mfx7LxrW4joZ0ttTRQJ/wqMUK1IN349LiJoo8y/+FwN4jPNDwIleJG697riqnmLOweFW8spHKLBfnHcyC1pG6EIxFpTqUQ0KHqXD/KXIHKioJNAOVwQ1Gfloxebo/Tdtd00dpHP3gcsAOnV75APCYOjVIlwm2X6ViDeZw6Btdb/Br/+yokcBABU3+eOESLlneGbR5SLiL8wPkoRaZ5X7xFlMTMvsv9yHk26bVdmsubSdbYS1Hy64n0+NnL7C1aLD7aJxOudMjVW5goZbfO2KxBQkCD4HFA284wbaB5vOL7mRilCn6YEs1kiwf22+fBLNUmXDb2p353wrD/ygTDhlki66USvUmd/ZAs9uzAddegEzy7Xn00YysWTu/hegYyZtWFC+X5dhLubWJ7n96y5wjrP7PAOXoQQtFUH9j/rBiP/7RwEAFnL/wYKYuj80mPGtimSbF/E9K7XwjwBz8yHZubmVMTCmwkZBM4h0FR1thnUGiSjqjJT6SfunWCZ/dZDQplrzS00UKcUP399SyM+nNG1br8Za0ZYwWch8nyLHYXSRuxdnrfUUespsOQo1cWSLGf0pV2HIcHoiAAEKwPU6irB5BSoFvB1qKVjgEk+QwAEYAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAABHAQA3pAD/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////AwAAAwAAAwAAAwAAAwAAAwBbwUdBABgAAAHgAACAwAoxAAmBIREAB/SBAAAAAQnwAAAAAUGaJGxDv/6plgAAAwAAAwAAAwAAAwAAAwAAAwAAAwAKCKB0AIhy1ftwLNISWucTFC7xeBcaIzP3oZjZo8uT9hqZVstWGnrPz+vjaA5FuCO+K2w7/o39LygDO7aL+0zSrN90LW7r133x8+f+PEKk8d7pd2fj4RYuMOXOYunzFzRX/4IvR1XsK5WJYwVkOca3yfo7DTvUBP9rgSiTRwEAGQD6CFK1PBC4qYCa+coLVnX+jgODNrau5YJXIekDI4+wUNV+5T5HE4e2t5EGAjn77+kC1Vghmvx8KqPnylVUvsaTofheggxHsPuxn1zQt6nA59UglrRUMn8b4pmrvfqTBSqU949+AcNAI6M/eAqz6r0RG5KNeBhx8R2f0x2kujwHU3pc3rlPb6ZrFM/2HiG97eEIezrvWFG7YAAAAwAAAwAE1KRo1VfbdZQ/tOpNGxFmTcQoFidyD2tHAQAapTTIErUKA2Rc9uIzGJu+oW0uNOxRyl6oJNUNJp5L9TIshNS1CmUKgdCaE3LkLwdE8iUkUnIGfWLiWpWmjzsINYC8dnDaSptB53yJkBu0SsR00oo1PZ0pl4ZzoXGSYQJTPaVCbj6FNqm5wcnUqKTB/rgHdPdnDj0K8asLABeo/n3XCXrDorI+LYSD1FBgmV9O7RZdjfL0NnXOQkiq/ZGirwVV0cUF1aHtZx1yHlAAZKuuu7TqB13CAUcBADuRAP///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////yj/IrOvAEoXDNGy+nrxWN0l8cmuqWYaUJpuM9XgAAADAAADAAKmR0EAPAcQAACJHH4AAAAB4AAAgMAKMQAJSOERAAkQoQAAAAEJ8AAAAAFBnkJ4hf8AAAMAAAMAAAMAAAMAAAMAAAMAAAMAC/BmhyuvLmkCgKTgACEXfOVvHRHdpBEEmTTz9pIZCa2FD0CXukzDCakOHekTpJQSdsfd7a/jjM1/5lBtKCAGQ6zOCSQ6DeKtyw+CugDuuglGipwmvQW+FIDjnZ6HRd0uaSOGy6VB3h9MI1o4nqaCqVwwIgubYZFHAQA9XgD////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////WcZrO6BEiqf8pCxYwlz2mkdUzY/ipM/TIHS4m5xQAAAMAAAMAAA5sVm90p14dlvWgBgY7XQ9KVOJKLtaMAN5KiffVQtNuzW5DfL+RewZpAAADAAADAAAQMUdBAB4AAAHgAACAgAUhAAkswQAAAAEJ8AAAAAEBnmF0Qr8AAAMAAAMAAAMAAAMAAAMAAAMAAAMAABJfBjP2+4+W7ZybyT130+Ma4WSqICfd/dS4YtjrLlmh5VBlfrtwJqdN1PBTYDkwGOOONqZQeFN6lLGJoDzvuh3kv1aDBLqug+JhvrSeu5ebnvcrtQzb2REwJL3h9mvtkr0WfDu4AAADAAADAAs32Y4C/6Ns79oCGj6oqLltY3T4I0/QRwEAP5wA//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////8BeoWLRnKQmVgO/RBoBfcK85AAAAMAAAMACFhHQQAwBxAAAJcsfgAAAAHgAACAwAoxAAllAREACUjhAAAAAQnwAAAAAQGeY2pCvwAAAwAAAwAAAwAAAwAAAwAAAwAAAwAAEmDKfLGXsvBBQPNYXlEd6WueJ4deApfcHESlG+7V6u0AiWQqJvNZYM+3Js3Lj9Ldc9yYIHqruVwfMtCYGlX3wMavI/DrhMuJw+RreIF8SKsJD8CMccAAAAMAAAMACrFZOBgEqaP/8EyWsAHV6CgcAgfyox/roEcBADGuAP//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////AAADAAADAHTBR0EAEgAAAeAAAIDACjEACfGhEQAJZQEAAAABCfAAAAABQZpoSahBaJlMCHf//qmWAAADAAADAAADAAADAAADAAADAAADAAALf8A2bry6lUyIAQGNFfVK2Cd7h4qDqmqpvmXfkfTwo2Ab79AHhajxJ4MPWIgAAA84xLRIx7I2CrWjWe96OvgkzgS9mtvhuxdzAgpuIOJI3DEY9mviDDZz8XSAAAADAAADAB7AZkj9AAHHGvk+Pzlku8UkWa5HAQAzogD//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////6HjAkbF/gsWuvw4QAAAAwAAAwAccUdBADQHEAAApTx+AAAAAeAAAIDACjEACblhEQAJgSEAAAABCfAAAAABQZ6GRREsL/8AAAMAAAMAAAMAAAMAAAMAAAMAAAMAAA3URJB/3lMHSmOd0GYZnfpoR80WdqxlyHzPX+V81VUMeXIGrRgq5agd+ACdjoGI036yQ/rmpGw0CmMBrKwpI+nwFo3SP0s1rI2yHBZaiPJjSUgw33rBkxXcq55kfLf2sAAAAwAAAwACBWolidWDnIeQAAADRwEANbEA//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////8AAAMADulHQQA2NAD///////////////////////////////////////////////////////////////////8AAAHgAACAgAUhAAmdQQAAAAEJ8AAAAAEBnqV0Qr8AAAMAAAMAAAMAAAMAAAMAAAMAAAMAABJXNihCnx11JUosH2hBE53O/YN+GPHqcnJiQBIf3maTAAj5iRt+7GYUKBAU9iCXTiouCjGYgAAAAwAAAwA9p4HQBg2cAAADAAADAADGgUdBADc4EAAAs0x+AP////////////////////////////////////////////////////////////////8AAAHgAACAwAoxAAnVgREACblhAAAAAQnwAAAAAQGep2pCvwAAAwAAAwAAAwAAAwAAAwAAAwAAAwAAAwBR6/L83y+ZevtMZ0FW4lp8qV7fVXQAhLAWlS6mDxvpaSUgChorvgTMXtxJEIAAAAMAAAMACqFCAAADAAADAAADAAz4R0EAOCsA////////////////////////////////////////////////////////AAAB4AAAgMAKMQALYiERAAnVgQAAAAEJ8AAAAAFBmqxJqEFsmUwId//+qZYAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAApQTq0hABLvkcWCYrAaRRPNDrECJGlF/11BYvG9+JJ9Y86nxnmQzPxtAAe1UgOsXAAADAAADAAADAAADAAADAAADAAADA/JHQQA5JhAAAMFcfgD/////////////////////////////////////////AAAB4AAAgMAKMQALKeERAAnxoQAAAAEJ8AAAAAFBnspFFSwv/wAAAwAAAwAAAwAAAwAAAwAAAwAAAwAADdRFmvrVE0KXDOGwWddlwYa1foib7tXZKmkua6R4APb4b8+tXwdSNNqgf2IVNwGTohgQAcMvp6SiQxpiQym4AAADAAADAANUNUAAAAMAAAMAAAMBN0dBADo8AP//////////////////////////////////////////////////////////////////////////////AAAB4AAAgIAFIQALDcEAAAABCfAAAAABAZ7pdEK/AAADAAADAAADAAADAAADAAADAAADAAADAFHTAfujIUaaLSuklb9y0/so9AEtQAqkAxOviALQZ5jNt/iOkABrCOZ4md0iUnFwAAADAAADAALwckAAAAMAAAMAAATcR0EAO0IQAADPbH4A//////////////////////////////////////////////////////////////////////////////8AAAHgAACAwAoxAAtGAREACynhAAAAAQnwAAAAAQGe62pCvwAAAwAAAwAAAwAAAwAAAwAAAwAAAwAAAwBR6/L83y+WryR9gmVKPGbIhJpkgAFgHCej3gB6rAHPgHHAAAADAAADAAAYIV0AAAMAAAMAAAMABnxHQQA8UQD//////////////////////////////////////////////////////////////////////////////////////////////////////////wAAAeAAAIDACjEAC9KhEQALRgEAAAABCfAAAAABQZrwSahBbJlMCG///qeEAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAAZ8UdBAD00EAAA3Xx+AP///////////////////////////////////////////////////////////wAAAeAAAIDACjEAC5phEQALYiEAAAABCfAAAAABQZ8ORRUsL/8AAAMAAAMAAAMAAAMAAAMAAAMAAAMAAA3URZr61RNClwzhI2ZXdRHYLZWc1yTgKRhTIXBNABHQKIIyYNyc+AaEn1jhATEAAAMAAAMAAAMAckkIAAADAAADAAADAEbBR0EAPkYA////////////////////////////////////////////////////////////////////////////////////////////AAAB4AAAgIAFIQALfkEAAAABCfAAAAABAZ8tdEK/AAADAAADAAADAAADAAADAAADAAADAAADAFHTAfujIUAYRtY0f/43cIs2OjxACR2hMR1QBGYX+34JGAAAAwAAAwAAAwKEJ6AAAAMAAAMAAAMA3oFHQQA/QhAAAOuMfgD//////////////////////////////////////////////////////////////////////////////wAAAeAAAIDACjEAC7aBEQALmmEAAAABCfAAAAABAZ8vakK/AAADAAADAAADAAADAAADAAADAAADAAADAFHr8vzfL5avJH2CZUo8ZsiEmmSAAWAcJ6PeAHqsAc+AccAAAAMAAAMAABghXQAAAwAAAwAAAwAGfEdBADBRAP//////////////////////////////////////////////////////////////////////////////////////////////////////////AAAB4AAAgMAKMQANQyERAAu2gQAAAAEJ8AAAAAFBmzRJqEFsmUwIZ//+nhAAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAGVAR0EAMTQQAAD5nH4A////////////////////////////////////////////////////////////AAAB4AAAgMAKMQANCuERAAvSoQAAAAEJ8AAAAAFBn1JFFSwv/wAAAwAAAwAAAwAAAwAAAwAAAwAAAwAADdRFmvrVE0KXDOEjZld1EdgtlZzXJOApGFMhcE0AEdAogjJg3Jz4BoSfWOEBMQAAAwAAAwAAAwBySQgAAAMAAAMAAAMARsFHQQAyRgD///////////////////////////////////////////////////////////////////////////////////////////8AAAHgAACAgAUhAAvuwQAAAAEJ8AAAAAEBn3F0Qr8AAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAUdMB+6MhQBhG1jR//jdwizY6PEAJHaExHVAEZhf7fgkYAAADAAADAAADAoQnoAAAAwAAAwAAAwDegEdBADNCEAABB6x+AP//////////////////////////////////////////////////////////////////////////////AAAB4AAAgMAKMQANJwERAA0K4QAAAAEJ8AAAAAEBn3NqQr8AAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAUevy/N8vlq8kfYJlSjxmyISaZIABYBwno94AeqwBz4BxwAAAAwAAAwAAGCFdAAADAAADAAADAAZ8R0EANFIA////////////////////////////////////////////////////////////////////////////////////////////////////////////AAAB4AAAgMAKMQANs6ERAA0nAQAAAAEJ8AAAAAFBm3hJqEFsmUwIV//+OEAAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAYtHQQA1NBAAARW8fgD///////////////////////////////////////////////////////////8AAAHgAACAwAoxAA17YREADUMhAAAAAQnwAAAAAUGflkUVLC//AAADAAADAAADAAADAAADAAADAAADAAAN1EWa+tUTQpcM4SNmV3UR2C2VnNck4CkYUyFwTQAR0CiCMmDcnPgGhJ9Y4QExAAADAAADAAADAHJJCAAAAwAAAwAAAwBGwEdBADZGAP///////////////////////////////////////////////////////////////////////////////////////////wAAAeAAAICABSEADV9BAAAAAQnwAAAAAQGftXRCvwAAAwAAAwAAAwAAAwAAAwAAAwAAAwAAAwBR0wH7oyFAGEbWNH/+N3CLNjo8QAkdoTEdUARmF/t+CRgAAAMAAAMAAAMChCegAAADAAADAAADAN6BR0EAN0IQAAEjzH4A//////////////////////////////////////////////////////////////////////////////8AAAHgAACAwAoxAA2XgREADXthAAAAAQnwAAAAAQGft2pCvwAAAwAAAwAAAwAAAwAAAwAAAwAAAwAAAwBR6/L83y+WryR9gmVKPGbIhJpkgAFgHCej3gB6rAHPgHHAAAADAAADAAAYIV0AAAMAAAMAAAMABn0=" diff --git a/src/webserver.go b/src/webserver.go index 4bce24d..1563c9d 100644 --- a/src/webserver.go +++ b/src/webserver.go @@ -462,7 +462,7 @@ func WS(w http.ResponseWriter, r *http.Request) { var previousTLSMode = Settings.TLSMode var previousHostIP = Settings.HostIP var previousStoreBufferInRAM = Settings.StoreBufferInRAM - + // TODO: Auto assign here if enabled response.Settings, err = updateServerSettings(request) if err == nil { diff --git a/src/xepg.go b/src/xepg.go index 43d233c..86eb43a 100644 --- a/src/xepg.go +++ b/src/xepg.go @@ -534,8 +534,14 @@ func mapping() (err error) { var tvgID = xepgChannel.TvgID // Set default for new Channel - xepgChannel.XmltvFile = "-" - xepgChannel.XMapping = "-" + if Settings.DefaultMissingEPG != "-" { + xepgChannel.XmltvFile = "xTeVe Dummy" + xepgChannel.XMapping = Settings.DefaultMissingEPG + // xepgChannel.XActive = true + } else { + xepgChannel.XmltvFile = "-" + xepgChannel.XMapping = "-" + } Data.XEPG.Channels[xepg] = xepgChannel diff --git a/ts/base_ts.ts b/ts/base_ts.ts index d952a06..accb00b 100644 --- a/ts/base_ts.ts +++ b/ts/base_ts.ts @@ -22,6 +22,7 @@ menuItems.push(new MainMenuItem("logout", "{{.mainMenu.item.logout}}", "logout.p // Settings categories var settingsCategory = new Array() settingsCategory.push(new SettingsCategoryItem("{{.settings.category.general}}", "tlsMode,xteveAutoUpdate,hostIP,tuner,epgSource,disallowURLDuplicates,api")) +settingsCategory.push(new SettingsCategoryItem("{{.settings.category.mapping}}", "defaultMissingEPG")) settingsCategory.push(new SettingsCategoryItem("{{.settings.category.files}}", "update,files.update,temp.path,cache.images,xepg.replace.missing.images")) settingsCategory.push(new SettingsCategoryItem("{{.settings.category.streaming}}", "buffer,udpxy,buffer.size.kb,storeBufferInRAM,buffer.timeout,user.agent,ffmpeg.path,ffmpeg.options,vlc.path,vlc.options")) settingsCategory.push(new SettingsCategoryItem("{{.settings.category.backup}}", "backup.path,backup.keep")) diff --git a/ts/menu_ts.ts b/ts/menu_ts.ts index 5eddc5c..3ad4d92 100644 --- a/ts/menu_ts.ts +++ b/ts/menu_ts.ts @@ -1423,7 +1423,7 @@ function openPopUp(dataType, element) { input.setAttribute("placeholder", "{{.filter.startingChannel.placeholder}}") content.appendRow("{{.filter.startingChannel.title}}", input) - break + break; default: break; diff --git a/ts/settings_ts.ts b/ts/settings_ts.ts index 5543fc6..522423d 100644 --- a/ts/settings_ts.ts +++ b/ts/settings_ts.ts @@ -382,6 +382,27 @@ class SettingsCategory { setting.appendChild(tdRight) break + case "defaultMissingEPG": + var tdLeft = document.createElement("TD") + tdLeft.innerHTML = "{{.settings.defaultMissingEPG.title}}" + ":" + + var tdRight = document.createElement("TD") + var text:any[] = [ + "-", "30 Minutes (30_Minutes)", "60 Minutes (60_Minutes)", "90 Minutes (90_Minutes)", + "120 Minutes (120_Minutes)", "180 Minutes (30_Minutes)", "240 Minutes (30_Minutes)", "360 Minutes (30_Minutes)" + ] + var values:any[] = [ + "-", "30_Minutes", "60_Minutes", "90_Minutes", "120_Minutes", "180_Minutes", "240_Minutes", "360_Minutes" + ] + + var select = content.createSelect(text, values, data, settingsKey) + select.setAttribute("onchange", "javascript: this.className = 'changed'") + tdRight.appendChild(select) + + setting.appendChild(tdLeft) + setting.appendChild(tdRight) + break + case "backup.keep": var tdLeft = document.createElement("TD") tdLeft.innerHTML = "{{.settings.backupKeep.title}}" + ":" @@ -560,6 +581,10 @@ class SettingsCategory { text = "{{.settings.api.description}}" break + case "defaultMissingEPG": + text = "{{.settings.defaultMissingEPG.description}}" + break + case "files.update": text = "{{.settings.filesUpdate.description}}" break From 3e5d6ee2f1e6405f067c6b74d8a628634c596851 Mon Sep 17 00:00:00 2001 From: SCP002 Date: Wed, 4 May 2022 16:39:23 +0300 Subject: [PATCH 111/189] Auto assign default missing epg when settings option changes. Fix typos in epg select text. --- html/js/settings_ts.js | 2 +- src/webUI.go | 2 +- src/webserver.go | 9 ++++++++- ts/settings_ts.ts | 2 +- 4 files changed, 11 insertions(+), 4 deletions(-) diff --git a/html/js/settings_ts.js b/html/js/settings_ts.js index 622808a..f739859 100644 --- a/html/js/settings_ts.js +++ b/html/js/settings_ts.js @@ -307,7 +307,7 @@ class SettingsCategory { var tdRight = document.createElement("TD"); var text = [ "-", "30 Minutes (30_Minutes)", "60 Minutes (60_Minutes)", "90 Minutes (90_Minutes)", - "120 Minutes (120_Minutes)", "180 Minutes (30_Minutes)", "240 Minutes (30_Minutes)", "360 Minutes (30_Minutes)" + "120 Minutes (120_Minutes)", "180 Minutes (180_Minutes)", "240 Minutes (240_Minutes)", "360 Minutes (360_Minutes)" ]; var values = [ "-", "30_Minutes", "60_Minutes", "90_Minutes", "120_Minutes", "180_Minutes", "240_Minutes", "360_Minutes" diff --git a/src/webUI.go b/src/webUI.go index c2cc9f1..b2ecc3e 100644 --- a/src/webUI.go +++ b/src/webUI.go @@ -31,7 +31,7 @@ func loadHTMLMap() { webUI["html/js/logs_ts.js"] = "Y2xhc3MgTG9nIHsNCiAgICBjcmVhdGVMb2coZW50cnkpIHsNCiAgICAgICAgdmFyIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJQUkUiKTsNCiAgICAgICAgZW50cnkgPSBTdHJpbmcoZW50cnkpOw0KICAgICAgICBpZiAoZW50cnkuaW5kZXhPZigiV0FSTklORyIpICE9IC0xKSB7DQogICAgICAgICAgICBlbGVtZW50LmNsYXNzTmFtZSA9ICJ3YXJuaW5nTXNnIjsNCiAgICAgICAgfQ0KICAgICAgICBpZiAoZW50cnkuaW5kZXhPZigiRVJST1IiKSAhPSAtMSkgew0KICAgICAgICAgICAgZWxlbWVudC5jbGFzc05hbWUgPSAiZXJyb3JNc2ciOw0KICAgICAgICB9DQogICAgICAgIGlmIChlbnRyeS5pbmRleE9mKCJERUJVRyIpICE9IC0xKSB7DQogICAgICAgICAgICBlbGVtZW50LmNsYXNzTmFtZSA9ICJkZWJ1Z01zZyI7DQogICAgICAgIH0NCiAgICAgICAgZWxlbWVudC5pbm5lckhUTUwgPSBlbnRyeTsNCiAgICAgICAgcmV0dXJuIGVsZW1lbnQ7DQogICAgfQ0KfQ0KZnVuY3Rpb24gc2hvd0xvZ3MoYm90dG9tKSB7DQogICAgdmFyIGxvZyA9IG5ldyBMb2coKTsNCiAgICB2YXIgbG9ncyA9IFNFUlZFUlsibG9nIl1bImxvZyJdOw0KICAgIHZhciBkaXYgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29udGVudF9sb2ciKTsNCiAgICBkaXYuaW5uZXJIVE1MID0gIiI7DQogICAgdmFyIGtleXMgPSBnZXRPd25PYmpQcm9wcyhsb2dzKTsNCiAgICBrZXlzLmZvckVhY2gobG9nSUQgPT4gew0KICAgICAgICB2YXIgZW50cnkgPSBsb2cuY3JlYXRlTG9nKGxvZ3NbbG9nSURdKTsNCiAgICAgICAgZGl2LmFwcGVuZChlbnRyeSk7DQogICAgfSk7DQogICAgc2V0VGltZW91dChmdW5jdGlvbiAoKSB7DQogICAgICAgIGlmIChib3R0b20gPT0gdHJ1ZSkgew0KICAgICAgICAgICAgdmFyIHdyYXBwZXIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYm94LXdyYXBwZXIiKTsNCiAgICAgICAgICAgIHdyYXBwZXIuc2Nyb2xsVG9wID0gd3JhcHBlci5zY3JvbGxIZWlnaHQ7DQogICAgICAgIH0NCiAgICB9LCAxMCk7DQp9DQpmdW5jdGlvbiByZXNldExvZ3MoKSB7DQogICAgdmFyIGNtZCA9ICJyZXNldExvZ3MiOw0KICAgIHZhciBkYXRhID0gbmV3IE9iamVjdCgpOw0KICAgIHZhciBzZXJ2ZXIgPSBuZXcgU2VydmVyKGNtZCk7DQogICAgc2VydmVyLnJlcXVlc3QoZGF0YSk7DQp9DQo=" webUI["html/js/menu_ts.js"] = "Y2xhc3MgTWFpbk1lbnUgew0KICAgIGNvbnN0cnVjdG9yKCkgew0KICAgICAgICB0aGlzLkRvY3VtZW50SUQgPSAibWFpbi1tZW51IjsNCiAgICAgICAgdGhpcy5IVE1MVGFnID0gIkxJIjsNCiAgICAgICAgdGhpcy5JbWFnZVBhdGggPSAiaW1nLyI7DQogICAgfQ0KICAgIGNyZWF0ZUlNRyhzcmMpIHsNCiAgICAgICAgbGV0IGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJJTUciKTsNCiAgICAgICAgZWxlbWVudC5zZXRBdHRyaWJ1dGUoInNyYyIsIHRoaXMuSW1hZ2VQYXRoICsgc3JjKTsNCiAgICAgICAgcmV0dXJuIGVsZW1lbnQ7DQogICAgfQ0KICAgIGNyZWF0ZVZhbHVlKHZhbHVlKSB7DQogICAgICAgIGxldCBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiUCIpOw0KICAgICAgICBlbGVtZW50LmlubmVySFRNTCA9IHZhbHVlOw0KICAgICAgICByZXR1cm4gZWxlbWVudDsNCiAgICB9DQp9DQpjbGFzcyBNYWluTWVudUl0ZW0gZXh0ZW5kcyBNYWluTWVudSB7DQogICAgY29uc3RydWN0b3IobWVudUtleSwgdmFsdWUsIGltYWdlLCBoZWFkbGluZSkgew0KICAgICAgICBzdXBlcigpOw0KICAgICAgICB0aGlzLm1lbnVLZXkgPSBtZW51S2V5Ow0KICAgICAgICB0aGlzLnZhbHVlID0gdmFsdWU7DQogICAgICAgIHRoaXMuaW1nU3JjID0gaW1hZ2U7DQogICAgICAgIHRoaXMuaGVhZGxpbmUgPSBoZWFkbGluZTsNCiAgICB9DQogICAgY3JlYXRlSXRlbSgpIHsNCiAgICAgICAgbGV0IGl0ZW0gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJMSSIpOw0KICAgICAgICBpdGVtLnNldEF0dHJpYnV0ZSgib25jbGljayIsICJqYXZhc2NyaXB0OiBvcGVuVGhpc01lbnUodGhpcykiKTsNCiAgICAgICAgaXRlbS5zZXRBdHRyaWJ1dGUoImlkIiwgdGhpcy5pZCk7DQogICAgICAgIGxldCBpbWcgPSB0aGlzLmNyZWF0ZUlNRyh0aGlzLmltZ1NyYyk7DQogICAgICAgIGxldCB2YWx1ZSA9IHRoaXMuY3JlYXRlVmFsdWUodGhpcy52YWx1ZSk7DQogICAgICAgIGl0ZW0uYXBwZW5kQ2hpbGQoaW1nKTsNCiAgICAgICAgaXRlbS5hcHBlbmRDaGlsZCh2YWx1ZSk7DQogICAgICAgIGxldCBkb2MgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCh0aGlzLkRvY3VtZW50SUQpOw0KICAgICAgICBkb2MuYXBwZW5kQ2hpbGQoaXRlbSk7DQogICAgICAgIHN3aXRjaCAodGhpcy5tZW51S2V5KSB7DQogICAgICAgICAgICBjYXNlICJwbGF5bGlzdCI6DQogICAgICAgICAgICAgICAgdGhpcy50YWJsZUhlYWRlciA9IFsie3sucGxheWxpc3QudGFibGUucGxheWxpc3R9fSIsICJ7ey5wbGF5bGlzdC50YWJsZS50dW5lcn19IiwgInt7LnBsYXlsaXN0LnRhYmxlLmxhc3RVcGRhdGV9fSIsICJ7ey5wbGF5bGlzdC50YWJsZS5hdmFpbGFiaWxpdHl9fSAlIiwgInt7LnBsYXlsaXN0LnRhYmxlLnR5cGV9fSIsICJ7ey5wbGF5bGlzdC50YWJsZS5zdHJlYW1zfX0iLCAie3sucGxheWxpc3QudGFibGUuZ3JvdXBUaXRsZX19ICUiLCAie3sucGxheWxpc3QudGFibGUudHZnSUR9fSAlIiwgInt7LnBsYXlsaXN0LnRhYmxlLnVuaXF1ZUlEfX0gJSJdOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAieG1sdHYiOg0KICAgICAgICAgICAgICAgIHRoaXMudGFibGVIZWFkZXIgPSBbInt7LnhtbHR2LnRhYmxlLmd1aWRlfX0iLCAie3sueG1sdHYudGFibGUubGFzdFVwZGF0ZX19IiwgInt7LnhtbHR2LnRhYmxlLmF2YWlsYWJpbGl0eX19ICUiLCAie3sueG1sdHYudGFibGUuY2hhbm5lbHN9fSIsICJ7ey54bWx0di50YWJsZS5wcm9ncmFtc319Il07DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJmaWx0ZXIiOg0KICAgICAgICAgICAgICAgIHRoaXMudGFibGVIZWFkZXIgPSBbInt7LmZpbHRlci50YWJsZS5zdGFydGluZ0NoYW5uZWx9fSIsICJ7ey5maWx0ZXIudGFibGUubmFtZX19IiwgInt7LmZpbHRlci50YWJsZS50eXBlfX0iLCAie3suZmlsdGVyLnRhYmxlLmZpbHRlcn19Il07DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ1c2VycyI6DQogICAgICAgICAgICAgICAgdGhpcy50YWJsZUhlYWRlciA9IFsie3sudXNlcnMudGFibGUudXNlcm5hbWV9fSIsICJ7ey51c2Vycy50YWJsZS5wYXNzd29yZH19IiwgInt7LnVzZXJzLnRhYmxlLndlYn19IiwgInt7LnVzZXJzLnRhYmxlLnBtc319IiwgInt7LnVzZXJzLnRhYmxlLm0zdX19IiwgInt7LnVzZXJzLnRhYmxlLnhtbH19IiwgInt7LnVzZXJzLnRhYmxlLmFwaX19Il07DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJtYXBwaW5nIjoNCiAgICAgICAgICAgICAgICB0aGlzLnRhYmxlSGVhZGVyID0gWyJCVUxLIiwgInt7Lm1hcHBpbmcudGFibGUuY2hOb319IiwgInt7Lm1hcHBpbmcudGFibGUubG9nb319IiwgInt7Lm1hcHBpbmcudGFibGUuY2hhbm5lbE5hbWV9fSIsICJ7ey5tYXBwaW5nLnRhYmxlLnVwZGF0ZUNoYW5uZWxOYW1lUmVnZXh9fSIsICJ7ey5tYXBwaW5nLnRhYmxlLnBsYXlsaXN0fX0iLCAie3subWFwcGluZy50YWJsZS5ncm91cFRpdGxlfX0iLCAie3subWFwcGluZy50YWJsZS54bWx0dkZpbGV9fSIsICJ7ey5tYXBwaW5nLnRhYmxlLnhtbHR2SUR9fSIsICJ7ey5tYXBwaW5nLnRhYmxlLnRpbWVzaGlmdH19Il07DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIH0NCiAgICB9DQp9DQpjbGFzcyBDb250ZW50IHsNCiAgICBjb25zdHJ1Y3RvcigpIHsNCiAgICAgICAgdGhpcy5Eb2N1bWVudElEID0gImNvbnRlbnQiOw0KICAgICAgICB0aGlzLlRhYmxlSUQgPSAiY29udGVudF90YWJsZSI7DQogICAgICAgIHRoaXMuaGVhZGVyQ2xhc3MgPSAiY29udGVudF90YWJsZV9oZWFkZXIiOw0KICAgICAgICB0aGlzLmludGVyYWN0aW9uSUQgPSAiY29udGVudC1pbnRlcmFjdGlvbiI7DQogICAgfQ0KICAgIGNyZWF0ZUhlYWRsaW5lKHZhbHVlKSB7DQogICAgICAgIGxldCBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiSDMiKTsNCiAgICAgICAgZWxlbWVudC5pbm5lckhUTUwgPSB2YWx1ZTsNCiAgICAgICAgcmV0dXJuIGVsZW1lbnQ7DQogICAgfQ0KICAgIGNyZWF0ZUhSKCkgew0KICAgICAgICByZXR1cm4gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiSFIiKTsNCiAgICB9DQogICAgY3JlYXRlSW50ZXJhY3Rpb24oKSB7DQogICAgICAgIGxldCBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiRElWIik7DQogICAgICAgIGVsZW1lbnQuc2V0QXR0cmlidXRlKCJpZCIsIHRoaXMuaW50ZXJhY3Rpb25JRCk7DQogICAgICAgIHJldHVybiBlbGVtZW50Ow0KICAgIH0NCiAgICBjcmVhdGVESVYoKSB7DQogICAgICAgIGxldCBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiRElWIik7DQogICAgICAgIGVsZW1lbnQuaWQgPSB0aGlzLkRpdklEOw0KICAgICAgICByZXR1cm4gZWxlbWVudDsNCiAgICB9DQogICAgY3JlYXRlVEFCTEUoKSB7DQogICAgICAgIGxldCBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEFCTEUiKTsNCiAgICAgICAgZWxlbWVudC5pZCA9IHRoaXMuVGFibGVJRDsNCiAgICAgICAgcmV0dXJuIGVsZW1lbnQ7DQogICAgfQ0KICAgIGNyZWF0ZVRhYmxlUm93KCkgew0KICAgICAgICBsZXQgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlRSIik7DQogICAgICAgIGVsZW1lbnQuY2xhc3NOYW1lID0gdGhpcy5oZWFkZXJDbGFzczsNCiAgICAgICAgcmV0dXJuIGVsZW1lbnQ7DQogICAgfQ0KICAgIGNyZWF0ZVRhYmxlQ29udGVudChtZW51S2V5KSB7DQogICAgICAgIGxldCBkYXRhID0ge307DQogICAgICAgIGxldCByb3dzID0gW107DQogICAgICAgIGxldCBmaWxlVHlwZXMgPSBbXTsNCiAgICAgICAgc3dpdGNoIChtZW51S2V5KSB7DQogICAgICAgICAgICBjYXNlICJwbGF5bGlzdCI6DQogICAgICAgICAgICAgICAgZmlsZVR5cGVzID0gWyJtM3UiLCAiaGRociJdOw0KICAgICAgICAgICAgICAgIGZpbGVUeXBlcy5mb3JFYWNoKGZpbGVUeXBlID0+IHsNCiAgICAgICAgICAgICAgICAgICAgZGF0YSA9IFNFUlZFUlsic2V0dGluZ3MiXVsiZmlsZXMiXVtmaWxlVHlwZV07DQogICAgICAgICAgICAgICAgICAgIHZhciBrZXlzID0gZ2V0T3duT2JqUHJvcHMoZGF0YSk7DQogICAgICAgICAgICAgICAgICAgIGtleXMuZm9yRWFjaChrZXkgPT4gew0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVFIiKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmlkID0ga2V5Ow0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgiJyArIGZpbGVUeXBlICsgJyIsIHRoaXMpJyk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsibmFtZSJdOw0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChTRVJWRVJbInNldHRpbmdzIl1bImJ1ZmZlciJdICE9ICItIikgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bInR1bmVyIl07DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gIi0iOw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bImxhc3QudXBkYXRlIl07DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsicHJvdmlkZXIuYXZhaWxhYmlsaXR5Il07DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsidHlwZSJdLnRvVXBwZXJDYXNlKCk7DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsiY29tcGF0aWJpbGl0eSJdWyJzdHJlYW1zIl07DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsiY29tcGF0aWJpbGl0eSJdWyJncm91cC50aXRsZSJdOw0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bImNvbXBhdGliaWxpdHkiXVsidHZnLmlkIl07DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsiY29tcGF0aWJpbGl0eSJdWyJzdHJlYW0uaWQiXTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHJvd3MucHVzaCh0cik7DQogICAgICAgICAgICAgICAgICAgIH0pOw0KICAgICAgICAgICAgICAgIH0pOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiZmlsdGVyIjoNCiAgICAgICAgICAgICAgICBkZWxldGUgU0VSVkVSWyJzZXR0aW5ncyJdWyJmaWx0ZXIiXVstMV07DQogICAgICAgICAgICAgICAgZGF0YSA9IFNFUlZFUlsic2V0dGluZ3MiXVsiZmlsdGVyIl07DQogICAgICAgICAgICAgICAgdmFyIGtleXMgPSBnZXRPd25PYmpQcm9wcyhkYXRhKTsNCiAgICAgICAgICAgICAgICBrZXlzLmZvckVhY2goa2V5ID0+IHsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVFIiKTsNCiAgICAgICAgICAgICAgICAgICAgdHIuaWQgPSBrZXk7DQogICAgICAgICAgICAgICAgICAgIHRyLnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoIicgKyBkYXRhW2tleV1bInR5cGUiXSArICciLCB0aGlzKScpOw0KICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsic3RhcnRpbmdDaGFubmVsIl07DQogICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bIm5hbWUiXTsNCiAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgc3dpdGNoIChkYXRhW2tleV1bInR5cGUiXSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAiY3VzdG9tLWZpbHRlciI6DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9ICJ7ey5maWx0ZXIuY3VzdG9tfX0iOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAiZ3JvdXAtdGl0bGUiOg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSAie3suZmlsdGVyLmdyb3VwfX0iOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJmaWx0ZXIiXTsNCiAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICByb3dzLnB1c2godHIpOw0KICAgICAgICAgICAgICAgIH0pOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAieG1sdHYiOg0KICAgICAgICAgICAgICAgIGZpbGVUeXBlcyA9IG5ldyBBcnJheSgieG1sdHYiKTsNCiAgICAgICAgICAgICAgICBmaWxlVHlwZXMuZm9yRWFjaChmaWxlVHlwZSA9PiB7DQogICAgICAgICAgICAgICAgICAgIGRhdGEgPSBTRVJWRVJbInNldHRpbmdzIl1bImZpbGVzIl1bZmlsZVR5cGVdOw0KICAgICAgICAgICAgICAgICAgICB2YXIga2V5cyA9IGdldE93bk9ialByb3BzKGRhdGEpOw0KICAgICAgICAgICAgICAgICAgICBrZXlzLmZvckVhY2goa2V5ID0+IHsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciB0ciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlRSIik7DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5pZCA9IGtleTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoIicgKyBmaWxlVHlwZSArICciLCB0aGlzKScpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bIm5hbWUiXTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJsYXN0LnVwZGF0ZSJdOw0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bInByb3ZpZGVyLmF2YWlsYWJpbGl0eSJdOw0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bImNvbXBhdGliaWxpdHkiXVsieG1sdHYuY2hhbm5lbHMiXTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJjb21wYXRpYmlsaXR5Il1bInhtbHR2LnByb2dyYW1zIl07DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICByb3dzLnB1c2godHIpOw0KICAgICAgICAgICAgICAgICAgICB9KTsNCiAgICAgICAgICAgICAgICB9KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInVzZXJzIjoNCiAgICAgICAgICAgICAgICBmaWxlVHlwZXMgPSBuZXcgQXJyYXkoInVzZXJzIik7DQogICAgICAgICAgICAgICAgZmlsZVR5cGVzLmZvckVhY2goZmlsZVR5cGUgPT4gew0KICAgICAgICAgICAgICAgICAgICBkYXRhID0gU0VSVkVSW2ZpbGVUeXBlXTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGtleXMgPSBnZXRPd25PYmpQcm9wcyhkYXRhKTsNCiAgICAgICAgICAgICAgICAgICAga2V5cy5mb3JFYWNoKGtleSA9PiB7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgdHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJUUiIpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuaWQgPSBrZXk7DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCInICsgZmlsZVR5cGUgKyAnIiwgdGhpcyknKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJkYXRhIl1bInVzZXJuYW1lIl07DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9ICIqKioqKioiOw0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChkYXRhW2tleV1bImRhdGEiXVsiYXV0aGVudGljYXRpb24ud2ViIl0gPT0gdHJ1ZSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSAi4pyTIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSAiLSI7DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGRhdGFba2V5XVsiZGF0YSJdWyJhdXRoZW50aWNhdGlvbi5wbXMiXSA9PSB0cnVlKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9ICLinJMiOw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9ICItIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgICAgICBpZiAoZGF0YVtrZXldWyJkYXRhIl1bImF1dGhlbnRpY2F0aW9uLm0zdSJdID09IHRydWUpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gIuKckyI7DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gIi0iOw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChkYXRhW2tleV1bImRhdGEiXVsiYXV0aGVudGljYXRpb24ueG1sIl0gPT0gdHJ1ZSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSAi4pyTIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSAiLSI7DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGRhdGFba2V5XVsiZGF0YSJdWyJhdXRoZW50aWNhdGlvbi5hcGkiXSA9PSB0cnVlKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9ICLinJMiOw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9ICItIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHJvd3MucHVzaCh0cik7DQogICAgICAgICAgICAgICAgICAgIH0pOw0KICAgICAgICAgICAgICAgIH0pOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAibWFwcGluZyI6DQogICAgICAgICAgICAgICAgQlVMS19FRElUID0gZmFsc2U7DQogICAgICAgICAgICAgICAgY3JlYXRlU2VhcmNoT2JqKCk7DQogICAgICAgICAgICAgICAgY2hlY2tVbmRvKCJlcGdNYXBwaW5nIik7DQogICAgICAgICAgICAgICAgZGF0YSA9IFNFUlZFUlsieGVwZyJdWyJlcGdNYXBwaW5nIl07DQogICAgICAgICAgICAgICAgdmFyIGtleXMgPSBnZXRPd25PYmpQcm9wcyhkYXRhKTsNCiAgICAgICAgICAgICAgICBrZXlzLmZvckVhY2goa2V5ID0+IHsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVFIiKTsNCiAgICAgICAgICAgICAgICAgICAgdHIuaWQgPSBrZXk7DQogICAgICAgICAgICAgICAgICAgIHN3aXRjaCAoZGF0YVtrZXldWyJ4LWFjdGl2ZSJdKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBjYXNlIHRydWU6DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgdHIuY2xhc3NOYW1lID0gImFjdGl2ZUVQRyI7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgICAgICAgICBjYXNlIGZhbHNlOg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyLmNsYXNzTmFtZSA9ICJub3RBY3RpdmVFUEciOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIC8vIEJ1bGsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiQlVMSyI7DQogICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBmYWxzZTsNCiAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAvLyBDaGFubmVsIG51bWJlcg0KICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJJTlBVVENIQU5ORUwiOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJ4LWNoYW5uZWxJRCJdOw0KICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgIC8vIExvZ28NCiAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiSU1HIjsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5pbWFnZVVSTCA9IGRhdGFba2V5XVsidHZnLWxvZ28iXTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHRkID0gY2VsbC5jcmVhdGVDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgIHRkLnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoIm1hcHBpbmciLCB0aGlzKScpOw0KICAgICAgICAgICAgICAgICAgICB0ZC5pZCA9IGtleTsNCiAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQodGQpOw0KICAgICAgICAgICAgICAgICAgICAvLyBDaGFubmVsIG5hbWUNCiAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2xhc3NOYW1lID0gZGF0YVtrZXldWyJ4LWNhdGVnb3J5Il07DQogICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bIngtbmFtZSJdOw0KICAgICAgICAgICAgICAgICAgICB2YXIgdGQgPSBjZWxsLmNyZWF0ZUNlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgdGQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgibWFwcGluZyIsIHRoaXMpJyk7DQogICAgICAgICAgICAgICAgICAgIHRkLmlkID0ga2V5Ow0KICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZCh0ZCk7DQogICAgICAgICAgICAgICAgICAgIC8vIFVwZGF0ZSBjaGFubmVsIG5hbWUgcmVnZXgNCiAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bInVwZGF0ZS1jaGFubmVsLW5hbWUtcmVnZXgiXTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHRkID0gY2VsbC5jcmVhdGVDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgIHRkLnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoIm1hcHBpbmciLCB0aGlzKScpOw0KICAgICAgICAgICAgICAgICAgICB0ZC5pZCA9IGtleTsNCiAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQodGQpOw0KICAgICAgICAgICAgICAgICAgICAvLyBQbGF5bGlzdA0KICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGdldFZhbHVlRnJvbVByb3ZpZGVyRmlsZShkYXRhW2tleV1bIl9maWxlLm0zdS5pZCJdLCAibTN1IiwgIm5hbWUiKTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHRkID0gY2VsbC5jcmVhdGVDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgIHRkLnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoIm1hcHBpbmciLCB0aGlzKScpOw0KICAgICAgICAgICAgICAgICAgICB0ZC5pZCA9IGtleTsNCiAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQodGQpOw0KICAgICAgICAgICAgICAgICAgICAvLyBHcm91cCAoZ3JvdXAtdGl0bGUpDQogICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJ4LWdyb3VwLXRpdGxlIl07DQogICAgICAgICAgICAgICAgICAgIHZhciB0ZCA9IGNlbGwuY3JlYXRlQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICB0ZC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJtYXBwaW5nIiwgdGhpcyknKTsNCiAgICAgICAgICAgICAgICAgICAgdGQuaWQgPSBrZXk7DQogICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKHRkKTsNCiAgICAgICAgICAgICAgICAgICAgLy8gWE1MVFYgZmlsZQ0KICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgaWYgKGRhdGFba2V5XVsieC14bWx0di1maWxlIl0gIT0gIi0iKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZ2V0VmFsdWVGcm9tUHJvdmlkZXJGaWxlKGRhdGFba2V5XVsieC14bWx0di1maWxlIl0sICJ4bWx0diIsICJuYW1lIik7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgZWxzZSB7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJ4LXhtbHR2LWZpbGUiXTsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICB2YXIgdGQgPSBjZWxsLmNyZWF0ZUNlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgdGQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgibWFwcGluZyIsIHRoaXMpJyk7DQogICAgICAgICAgICAgICAgICAgIHRkLmlkID0ga2V5Ow0KICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZCh0ZCk7DQogICAgICAgICAgICAgICAgICAgIC8vIFhNTFRWIENoYW5uZWwNCiAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgIHZhciB2YWx1ZSA9IGRhdGFba2V5XVsieC1tYXBwaW5nIl07DQogICAgICAgICAgICAgICAgICAgIGlmICh2YWx1ZS5sZW5ndGggPiAyMCkgew0KICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSBkYXRhW2tleV1bIngtbWFwcGluZyJdLnN1YnN0cmluZygwLCAyMCkgKyAiLi4uIjsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gdmFsdWU7DQogICAgICAgICAgICAgICAgICAgIHZhciB0ZCA9IGNlbGwuY3JlYXRlQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICB0ZC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJtYXBwaW5nIiwgdGhpcyknKTsNCiAgICAgICAgICAgICAgICAgICAgdGQuaWQgPSBrZXk7DQogICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKHRkKTsNCiAgICAgICAgICAgICAgICAgICAgLy8gVGltZVNoaWZ0DQogICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJ4LXRpbWVzaGlmdCJdOw0KICAgICAgICAgICAgICAgICAgICB2YXIgdGQgPSBjZWxsLmNyZWF0ZUNlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgdGQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgibWFwcGluZyIsIHRoaXMpJyk7DQogICAgICAgICAgICAgICAgICAgIHRkLmlkID0ga2V5Ow0KICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZCh0ZCk7DQogICAgICAgICAgICAgICAgICAgIHJvd3MucHVzaCh0cik7DQogICAgICAgICAgICAgICAgfSk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJzZXR0aW5ncyI6DQogICAgICAgICAgICAgICAgYWxlcnQoKTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIH0NCiAgICAgICAgcmV0dXJuIHJvd3M7DQogICAgfQ0KfQ0KY2xhc3MgQ2VsbCB7DQogICAgY3JlYXRlQ2VsbCgpIHsNCiAgICAgICAgbGV0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgaWYgKHRoaXMuY2hpbGQgPT0gdHJ1ZSkgew0KICAgICAgICAgICAgdmFyIGVsZW1lbnQ7DQogICAgICAgICAgICBzd2l0Y2ggKHRoaXMuY2hpbGRUeXBlKSB7DQogICAgICAgICAgICAgICAgY2FzZSAiUCI6DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KHRoaXMuY2hpbGRUeXBlKTsNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC5pbm5lckhUTUwgPSB0aGlzLnZhbHVlOw0KICAgICAgICAgICAgICAgICAgICBlbGVtZW50LmNsYXNzTmFtZSA9IHRoaXMuY2xhc3NOYW1lOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBjYXNlICJJTlBVVCI6DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KHRoaXMuY2hpbGRUeXBlKTsNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC52YWx1ZSA9IHRoaXMudmFsdWU7DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQudHlwZSA9ICJ0ZXh0IjsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAiSU5QVVRDSEFOTkVMIjoNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIklOUFVUIik7DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZzY3JpcHQ6IGNoYW5nZUNoYW5uZWxOdW1iZXIodGhpcykiKTsNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC52YWx1ZSA9IHRoaXMudmFsdWU7DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQudHlwZSA9ICJ0ZXh0IjsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAiQlVMSyI6DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJJTlBVVCIpOw0KICAgICAgICAgICAgICAgICAgICBlbGVtZW50LmNoZWNrZWQgPSB0aGlzLnZhbHVlOw0KICAgICAgICAgICAgICAgICAgICBlbGVtZW50LnR5cGUgPSAiY2hlY2tib3giOw0KICAgICAgICAgICAgICAgICAgICBlbGVtZW50LmNsYXNzTmFtZSA9ICJidWxrIGhpZGVCdWxrIjsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAiQlVMS19IRUFEIjoNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIklOUFVUIik7DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQuY2hlY2tlZCA9IHRoaXMudmFsdWU7DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQudHlwZSA9ICJjaGVja2JveCI7DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQuY2xhc3NOYW1lID0gImJ1bGsgaGlkZUJ1bGsiOw0KICAgICAgICAgICAgICAgICAgICBlbGVtZW50LnNldEF0dHJpYnV0ZSgib25jbGljayIsICJqYXZhc2NyaXB0OiBzZWxlY3RBbGxDaGFubmVscygpIik7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgIklNRyI6DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KHRoaXMuY2hpbGRUeXBlKTsNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC5zZXRBdHRyaWJ1dGUoInNyYyIsIHRoaXMuaW1hZ2VVUkwpOw0KICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5pbWFnZVVSTCAhPSAiIikgew0KICAgICAgICAgICAgICAgICAgICAgICAgZWxlbWVudC5zZXRBdHRyaWJ1dGUoIm9uZXJyb3IiLCAiamF2YXNjcmlwdDogdGhpcy5vbmVycm9yPW51bGw7dGhpcy5zcmM9JyciKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIC8vb25lcnJvcj0idGhpcy5vbmVycm9yPW51bGw7dGhpcy5zcmM9J21pc3NpbmcuZ2lmJzsiDQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIHRkLmFwcGVuZENoaWxkKGVsZW1lbnQpOw0KICAgICAgICB9DQogICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgdGQuaW5uZXJIVE1MID0gdGhpcy52YWx1ZTsNCiAgICAgICAgfQ0KICAgICAgICBpZiAodGhpcy5vbmNsaWNrID09IHRydWUpIHsNCiAgICAgICAgICAgIHRkLnNldEF0dHJpYnV0ZSgib25jbGljayIsIHRoaXMub25jbGlja0Z1bmN0aW9uKTsNCiAgICAgICAgICAgIHRkLmNsYXNzTmFtZSA9ICJwb2ludGVyIjsNCiAgICAgICAgfQ0KICAgICAgICBpZiAodGhpcy50ZENsYXNzTmFtZSAhPSB1bmRlZmluZWQpIHsNCiAgICAgICAgICAgIHRkLmNsYXNzTmFtZSA9IHRoaXMudGRDbGFzc05hbWU7DQogICAgICAgIH0NCiAgICAgICAgcmV0dXJuIHRkOw0KICAgIH0NCn0NCmNsYXNzIFNob3dDb250ZW50IGV4dGVuZHMgQ29udGVudCB7DQogICAgY29uc3RydWN0b3IobWVudUlEKSB7DQogICAgICAgIHN1cGVyKCk7DQogICAgICAgIHRoaXMubWVudUlEID0gbWVudUlEOw0KICAgIH0NCiAgICBjcmVhdGVJbnB1dCh0eXBlLCBuYW1lLCB2YWx1ZSkgew0KICAgICAgICBsZXQgaW5wdXQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJJTlBVVCIpOw0KICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInR5cGUiLCB0eXBlKTsNCiAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJuYW1lIiwgbmFtZSk7DQogICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgidmFsdWUiLCB2YWx1ZSk7DQogICAgICAgIHJldHVybiBpbnB1dDsNCiAgICB9DQogICAgc2hvdygpIHsNCiAgICAgICAgQ09MVU1OX1RPX1NPUlQgPSAtMTsNCiAgICAgICAgLy8gRGVsZXRlIG9sZCBjb250ZW50DQogICAgICAgIGxldCBkb2MgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCh0aGlzLkRvY3VtZW50SUQpOw0KICAgICAgICBkb2MuaW5uZXJIVE1MID0gIiI7DQogICAgICAgIHNob3dQcmV2aWV3KGZhbHNlKTsNCiAgICAgICAgLy8gSGVhZGxpbmUNCiAgICAgICAgbGV0IGhlYWRsaW5lID0gbWVudUl0ZW1zW3RoaXMubWVudUlEXS5oZWFkbGluZTsNCiAgICAgICAgbGV0IG1lbnVLZXkgPSBtZW51SXRlbXNbdGhpcy5tZW51SURdLm1lbnVLZXk7DQogICAgICAgIGxldCBoID0gdGhpcy5jcmVhdGVIZWFkbGluZShoZWFkbGluZSk7DQogICAgICAgIGRvYy5hcHBlbmRDaGlsZChoKTsNCiAgICAgICAgbGV0IGhyID0gdGhpcy5jcmVhdGVIUigpOw0KICAgICAgICBkb2MuYXBwZW5kQ2hpbGQoaHIpOw0KICAgICAgICAvLyBJbnRlcmFjdGlvbg0KICAgICAgICBsZXQgZGl2ID0gdGhpcy5jcmVhdGVJbnRlcmFjdGlvbigpOw0KICAgICAgICBkb2MuYXBwZW5kQ2hpbGQoZGl2KTsNCiAgICAgICAgbGV0IGludGVyYWN0aW9uID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQodGhpcy5pbnRlcmFjdGlvbklEKTsNCiAgICAgICAgc3dpdGNoIChtZW51S2V5KSB7DQogICAgICAgICAgICBjYXNlICJwbGF5bGlzdCI6DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gdGhpcy5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgbWVudUtleSwgInt7LmJ1dHRvbi5uZXd9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgiaWQiLCAiLSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoInBsYXlsaXN0IiknKTsNCiAgICAgICAgICAgICAgICBpbnRlcmFjdGlvbi5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJmaWx0ZXIiOg0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IHRoaXMuY3JlYXRlSW5wdXQoImJ1dHRvbiIsIG1lbnVLZXksICJ7ey5idXR0b24ubmV3fX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoImlkIiwgLTEpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoImZpbHRlciIsIHRoaXMpJyk7DQogICAgICAgICAgICAgICAgaW50ZXJhY3Rpb24uYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAieG1sdHYiOg0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IHRoaXMuY3JlYXRlSW5wdXQoImJ1dHRvbiIsIG1lbnVLZXksICJ7ey5idXR0b24ubmV3fX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoImlkIiwgInhtbHR2Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgieG1sdHYiKScpOw0KICAgICAgICAgICAgICAgIGludGVyYWN0aW9uLmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInVzZXJzIjoNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSB0aGlzLmNyZWF0ZUlucHV0KCJidXR0b24iLCBtZW51S2V5LCAie3suYnV0dG9uLm5ld319Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJpZCIsICJ1c2VycyIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoInVzZXJzIiknKTsNCiAgICAgICAgICAgICAgICBpbnRlcmFjdGlvbi5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJtYXBwaW5nIjoNCiAgICAgICAgICAgICAgICBzaG93RWxlbWVudCgibG9hZGluZyIsIHRydWUpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IHRoaXMuY3JlYXRlSW5wdXQoImJ1dHRvbiIsIG1lbnVLZXksICJ7ey5idXR0b24uc2F2ZX19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoIm1hcHBpbmciLCAiIiwgIiIpJyk7DQogICAgICAgICAgICAgICAgaW50ZXJhY3Rpb24uYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IHRoaXMuY3JlYXRlSW5wdXQoImJ1dHRvbiIsIG1lbnVLZXksICJ7ey5idXR0b24uYnVsa0VkaXR9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBidWxrRWRpdCgpJyk7DQogICAgICAgICAgICAgICAgaW50ZXJhY3Rpb24uYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IHRoaXMuY3JlYXRlSW5wdXQoInNlYXJjaCIsICJzZWFyY2giLCAiIik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJpZCIsICJzZWFyY2hNYXBwaW5nIik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5idXR0b24uc2VhcmNofX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5jbGFzc05hbWUgPSAic2VhcmNoIjsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgJ2phdmFzY3JpcHQ6IHNlYXJjaEluTWFwcGluZygpJyk7DQogICAgICAgICAgICAgICAgaW50ZXJhY3Rpb24uYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAic2V0dGluZ3MiOg0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IHRoaXMuY3JlYXRlSW5wdXQoImJ1dHRvbiIsIG1lbnVLZXksICJ7ey5idXR0b24uc2F2ZX19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IHNhdmVTZXR0aW5ncygpOycpOw0KICAgICAgICAgICAgICAgIGludGVyYWN0aW9uLmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSB0aGlzLmNyZWF0ZUlucHV0KCJidXR0b24iLCBtZW51S2V5LCAie3suYnV0dG9uLmJhY2t1cH19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IGJhY2t1cCgpOycpOw0KICAgICAgICAgICAgICAgIGludGVyYWN0aW9uLmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSB0aGlzLmNyZWF0ZUlucHV0KCJidXR0b24iLCBtZW51S2V5LCAie3suYnV0dG9uLnJlc3RvcmV9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiByZXN0b3JlKCk7Jyk7DQogICAgICAgICAgICAgICAgaW50ZXJhY3Rpb24uYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIHZhciB3cmFwcGVyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiRElWIik7DQogICAgICAgICAgICAgICAgd3JhcHBlci5zZXRBdHRyaWJ1dGUoImlkIiwgImJveC13cmFwcGVyIik7DQogICAgICAgICAgICAgICAgZG9jLmFwcGVuZENoaWxkKHdyYXBwZXIpOw0KICAgICAgICAgICAgICAgIHRoaXMuRGl2SUQgPSAiY29udGVudF9zZXR0aW5ncyI7DQogICAgICAgICAgICAgICAgdmFyIHNldHRpbmdzID0gdGhpcy5jcmVhdGVESVYoKTsNCiAgICAgICAgICAgICAgICB3cmFwcGVyLmFwcGVuZENoaWxkKHNldHRpbmdzKTsNCiAgICAgICAgICAgICAgICBzaG93U2V0dGluZ3MoKTsNCiAgICAgICAgICAgICAgICByZXR1cm47DQogICAgICAgICAgICBjYXNlICJsb2ciOg0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IHRoaXMuY3JlYXRlSW5wdXQoImJ1dHRvbiIsIG1lbnVLZXksICJ7ey5idXR0b24ucmVzZXRMb2dzfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogcmVzZXRMb2dzKCk7Jyk7DQogICAgICAgICAgICAgICAgaW50ZXJhY3Rpb24uYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIHZhciB3cmFwcGVyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiRElWIik7DQogICAgICAgICAgICAgICAgd3JhcHBlci5zZXRBdHRyaWJ1dGUoImlkIiwgImJveC13cmFwcGVyIik7DQogICAgICAgICAgICAgICAgZG9jLmFwcGVuZENoaWxkKHdyYXBwZXIpOw0KICAgICAgICAgICAgICAgIHRoaXMuRGl2SUQgPSAiY29udGVudF9sb2ciOw0KICAgICAgICAgICAgICAgIHZhciBsb2dzID0gdGhpcy5jcmVhdGVESVYoKTsNCiAgICAgICAgICAgICAgICB3cmFwcGVyLmFwcGVuZENoaWxkKGxvZ3MpOw0KICAgICAgICAgICAgICAgIHNob3dMb2dzKHRydWUpOw0KICAgICAgICAgICAgICAgIHJldHVybjsNCiAgICAgICAgICAgIGNhc2UgImxvZ291dCI6DQogICAgICAgICAgICAgICAgbG9jYXRpb24ucmVsb2FkKCk7DQogICAgICAgICAgICAgICAgZG9jdW1lbnQuY29va2llID0gIlRva2VuPSA7IGV4cGlyZXMgPSBUaHUsIDAxIEphbiAxOTcwIDAwOjAwOjAwIEdNVCI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBkZWZhdWx0Og0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICB9DQogICAgICAgIC8vIENyZWF0ZSB0YWJsZSAoaWYgbmVlZGVkKQ0KICAgICAgICB2YXIgdGFibGVIZWFkZXIgPSBtZW51SXRlbXNbdGhpcy5tZW51SURdLnRhYmxlSGVhZGVyOw0KICAgICAgICBpZiAodGFibGVIZWFkZXIubGVuZ3RoID4gMCkgew0KICAgICAgICAgICAgdmFyIHdyYXBwZXIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJESVYiKTsNCiAgICAgICAgICAgIGRvYy5hcHBlbmRDaGlsZCh3cmFwcGVyKTsNCiAgICAgICAgICAgIHdyYXBwZXIuc2V0QXR0cmlidXRlKCJpZCIsICJib3gtd3JhcHBlciIpOw0KICAgICAgICAgICAgdmFyIHRhYmxlID0gdGhpcy5jcmVhdGVUQUJMRSgpOw0KICAgICAgICAgICAgd3JhcHBlci5hcHBlbmRDaGlsZCh0YWJsZSk7DQogICAgICAgICAgICB2YXIgaGVhZGVyID0gdGhpcy5jcmVhdGVUYWJsZVJvdygpOw0KICAgICAgICAgICAgdGFibGUuYXBwZW5kQ2hpbGQoaGVhZGVyKTsNCiAgICAgICAgICAgIC8vIFRhYmxlIGhlYWRlcg0KICAgICAgICAgICAgdGFibGVIZWFkZXIuZm9yRWFjaChlbGVtZW50ID0+IHsNCiAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGVsZW1lbnQ7DQogICAgICAgICAgICAgICAgaWYgKGVsZW1lbnQgPT0gIkJVTEsiKSB7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIkJVTEtfSEVBRCI7DQogICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBmYWxzZTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgaWYgKG1lbnVLZXkgPT0gIm1hcHBpbmciKSB7DQogICAgICAgICAgICAgICAgICAgIGlmIChlbGVtZW50ID09ICJ7ey5tYXBwaW5nLnRhYmxlLmNoTm99fSIpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwub25jbGljayA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLm9uY2xpY2tGdW5jdGlvbiA9ICJqYXZhc2NyaXB0OiBzb3J0VGFibGUoMSk7IjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudGRDbGFzc05hbWUgPSAic29ydFRoaXMiOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIGlmIChlbGVtZW50ID09ICJ7ey5tYXBwaW5nLnRhYmxlLmNoYW5uZWxOYW1lfX0iKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLm9uY2xpY2sgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5vbmNsaWNrRnVuY3Rpb24gPSAiamF2YXNjcmlwdDogc29ydFRhYmxlKDMpOyI7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgaWYgKGVsZW1lbnQgPT0gInt7Lm1hcHBpbmcudGFibGUudXBkYXRlQ2hhbm5lbE5hbWVSZWdleH19Iikgew0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5vbmNsaWNrID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwub25jbGlja0Z1bmN0aW9uID0gImphdmFzY3JpcHQ6IHNvcnRUYWJsZSg0KTsiOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIGlmIChlbGVtZW50ID09ICJ7ey5tYXBwaW5nLnRhYmxlLnBsYXlsaXN0fX0iKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLm9uY2xpY2sgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5vbmNsaWNrRnVuY3Rpb24gPSAiamF2YXNjcmlwdDogc29ydFRhYmxlKDUpOyI7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgaWYgKGVsZW1lbnQgPT0gInt7Lm1hcHBpbmcudGFibGUuZ3JvdXBUaXRsZX19Iikgew0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5vbmNsaWNrID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwub25jbGlja0Z1bmN0aW9uID0gImphdmFzY3JpcHQ6IHNvcnRUYWJsZSg2KTsiOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIGlmIChlbGVtZW50ID09ICJ7ey5tYXBwaW5nLnRhYmxlLnRpbWVzaGlmdH19Iikgew0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5vbmNsaWNrID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwub25jbGlja0Z1bmN0aW9uID0gImphdmFzY3JpcHQ6IHNvcnRUYWJsZSg5KTsiOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIGlmIChtZW51S2V5ID09ICJmaWx0ZXIiKSB7DQogICAgICAgICAgICAgICAgICAgIGlmIChlbGVtZW50ID09ICJ7ey5maWx0ZXIudGFibGUuc3RhcnRpbmdDaGFubmVsfX0iKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLm9uY2xpY2sgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5vbmNsaWNrRnVuY3Rpb24gPSAiamF2YXNjcmlwdDogc29ydFRhYmxlKDApOyI7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnRkQ2xhc3NOYW1lID0gInNvcnRUaGlzIjsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBpZiAoZWxlbWVudCA9PSAie3suZmlsdGVyLnRhYmxlLm5hbWV9fSIpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwub25jbGljayA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLm9uY2xpY2tGdW5jdGlvbiA9ICJqYXZhc2NyaXB0OiBzb3J0VGFibGUoMSk7IjsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBpZiAoZWxlbWVudCA9PSAie3suZmlsdGVyLnRhYmxlLnR5cGV9fSIpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwub25jbGljayA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLm9uY2xpY2tGdW5jdGlvbiA9ICJqYXZhc2NyaXB0OiBzb3J0VGFibGUoMik7IjsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBpZiAoZWxlbWVudCA9PSAie3suZmlsdGVyLnRhYmxlLmZpbHRlcn19Iikgew0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5vbmNsaWNrID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwub25jbGlja0Z1bmN0aW9uID0gImphdmFzY3JpcHQ6IHNvcnRUYWJsZSgzKTsiOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIGhlYWRlci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICB9KTsNCiAgICAgICAgICAgIHRhYmxlLmFwcGVuZENoaWxkKGhlYWRlcik7DQogICAgICAgICAgICAvLyBDb250ZW50IG9mIHRoZSB0YWJsZQ0KICAgICAgICAgICAgdmFyIHJvd3MgPSB0aGlzLmNyZWF0ZVRhYmxlQ29udGVudChtZW51S2V5KTsNCiAgICAgICAgICAgIHJvd3MuZm9yRWFjaCh0ciA9PiB7DQogICAgICAgICAgICAgICAgdGFibGUuYXBwZW5kQ2hpbGQodHIpOw0KICAgICAgICAgICAgfSk7DQogICAgICAgIH0NCiAgICAgICAgc3dpdGNoIChtZW51S2V5KSB7DQogICAgICAgICAgICBjYXNlICJtYXBwaW5nIjoNCiAgICAgICAgICAgICAgICBzb3J0VGFibGUoMSk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJmaWx0ZXIiOg0KICAgICAgICAgICAgICAgIHNob3dQcmV2aWV3KHRydWUpOw0KICAgICAgICAgICAgICAgIHNvcnRUYWJsZSgwKTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICAgICAgQ09MVU1OX1RPX1NPUlQgPSAtMTsNCiAgICAgICAgICAgICAgICBzb3J0VGFibGUoMCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIH0NCiAgICAgICAgc2hvd0VsZW1lbnQoImxvYWRpbmciLCBmYWxzZSk7DQogICAgfQ0KfQ0KZnVuY3Rpb24gUGFnZVJlYWR5KCkgew0KICAgIGxldCBzZXJ2ZXIgPSBuZXcgU2VydmVyKCJnZXRTZXJ2ZXJDb25maWciKTsNCiAgICBzZXJ2ZXIucmVxdWVzdCh7fSk7DQogICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoInJlc2l6ZSIsIGZ1bmN0aW9uICgpIHsNCiAgICAgICAgY2FsY3VsYXRlV3JhcHBlckhlaWdodCgpOw0KICAgIH0sIHRydWUpOw0KICAgIHNldEludGVydmFsKGZ1bmN0aW9uICgpIHsNCiAgICAgICAgdXBkYXRlTG9nKCk7DQogICAgfSwgMTAwMDApOw0KICAgIHJldHVybjsNCn0NCmZ1bmN0aW9uIGNyZWF0ZUxheW91dCgpIHsNCiAgICAvLyBDbGllbnQgSW5mbw0KICAgIGxldCBvYmogPSBTRVJWRVJbImNsaWVudEluZm8iXTsNCiAgICBsZXQga2V5cyA9IGdldE93bk9ialByb3BzKG9iaik7DQogICAgZm9yICh2YXIgaSA9IDA7IGkgPCBrZXlzLmxlbmd0aDsgaSsrKSB7DQogICAgICAgIGlmIChkb2N1bWVudC5nZXRFbGVtZW50QnlJZChrZXlzW2ldKSkgew0KICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoa2V5c1tpXSkuaW5uZXJIVE1MID0gb2JqW2tleXNbaV1dOw0KICAgICAgICB9DQogICAgfQ0KICAgIGlmICghZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm1haW4tbWVudSIpKSB7DQogICAgICAgIHJldHVybjsNCiAgICB9DQogICAgLy8gQ3JlYXRlIG1lbnUNCiAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibWFpbi1tZW51IikuaW5uZXJIVE1MID0gIiI7DQogICAgZm9yIChsZXQgaSA9IDA7IGkgPCBtZW51SXRlbXMubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgbWVudUl0ZW1zW2ldLmlkID0gaTsNCiAgICAgICAgc3dpdGNoIChtZW51SXRlbXNbaV1bIm1lbnVLZXkiXSkgew0KICAgICAgICAgICAgY2FzZSAidXNlcnMiOg0KICAgICAgICAgICAgY2FzZSAibG9nb3V0IjoNCiAgICAgICAgICAgICAgICBpZiAoU0VSVkVSWyJzZXR0aW5ncyJdWyJhdXRoZW50aWNhdGlvbi53ZWIiXSA9PSB0cnVlKSB7DQogICAgICAgICAgICAgICAgICAgIG1lbnVJdGVtc1tpXS5jcmVhdGVJdGVtKCk7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAibWFwcGluZyI6DQogICAgICAgICAgICBjYXNlICJ4bWx0diI6DQogICAgICAgICAgICAgICAgaWYgKFNFUlZFUlsiY2xpZW50SW5mbyJdWyJlcGdTb3VyY2UiXSA9PSAiWEVQRyIpIHsNCiAgICAgICAgICAgICAgICAgICAgbWVudUl0ZW1zW2ldLmNyZWF0ZUl0ZW0oKTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBkZWZhdWx0Og0KICAgICAgICAgICAgICAgIG1lbnVJdGVtc1tpXS5jcmVhdGVJdGVtKCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIH0NCiAgICB9DQogICAgcmV0dXJuOw0KfQ0KZnVuY3Rpb24gb3BlblRoaXNNZW51KGVsZW1lbnQpIHsNCiAgICBsZXQgaWQgPSBlbGVtZW50LmlkOw0KICAgIGxldCBjb250ZW50ID0gbmV3IFNob3dDb250ZW50KGlkKTsNCiAgICBjb250ZW50LnNob3coKTsNCiAgICBjYWxjdWxhdGVXcmFwcGVySGVpZ2h0KCk7DQogICAgcmV0dXJuOw0KfQ0KY2xhc3MgUG9wdXBXaW5kb3cgew0KICAgIGNvbnN0cnVjdG9yKCkgew0KICAgICAgICB0aGlzLkRvY3VtZW50SUQgPSAicG9wdXAtY3VzdG9tIjsNCiAgICAgICAgdGhpcy5JbnRlcmFjdGlvbklEID0gImludGVyYWN0aW9uIjsNCiAgICAgICAgdGhpcy5kb2MgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCh0aGlzLkRvY3VtZW50SUQpOw0KICAgIH0NCiAgICBjcmVhdGVUaXRsZSh0aXRsZSkgew0KICAgICAgICBsZXQgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICB0ZC5jbGFzc05hbWUgPSAibGVmdCI7DQogICAgICAgIHRkLmlubmVySFRNTCA9IHRpdGxlICsgIjoiOw0KICAgICAgICByZXR1cm4gdGQ7DQogICAgfQ0KICAgIGNyZWF0ZUNvbnRlbnQoZWxlbWVudCkgew0KICAgICAgICBsZXQgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICB0ZC5hcHBlbmRDaGlsZChlbGVtZW50KTsNCiAgICAgICAgcmV0dXJuIHRkOw0KICAgIH0NCiAgICBjcmVhdGVJbnRlcmFjdGlvbigpIHsNCiAgICAgICAgbGV0IGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOw0KICAgICAgICBkaXYuc2V0QXR0cmlidXRlKCJpZCIsICJwb3B1cC1pbnRlcmFjdGlvbiIpOw0KICAgICAgICBkaXYuY2xhc3NOYW1lID0gImludGVyYWN0aW9uIjsNCiAgICAgICAgdGhpcy5kb2MuYXBwZW5kQ2hpbGQoZGl2KTsNCiAgICB9DQp9DQpjbGFzcyBQb3B1cENvbnRlbnQgZXh0ZW5kcyBQb3B1cFdpbmRvdyB7DQogICAgY29uc3RydWN0b3IoKSB7DQogICAgICAgIHN1cGVyKC4uLmFyZ3VtZW50cyk7DQogICAgICAgIHRoaXMudGFibGUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJUQUJMRSIpOw0KICAgIH0NCiAgICBjcmVhdGVIZWFkbGluZShoZWFkbGluZSkgew0KICAgICAgICB0aGlzLmRvYy5pbm5lckhUTUwgPSAiIjsNCiAgICAgICAgdmFyIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJIMyIpOw0KICAgICAgICBlbGVtZW50LmlubmVySFRNTCA9IGhlYWRsaW5lLnRvVXBwZXJDYXNlKCk7DQogICAgICAgIHRoaXMuZG9jLmFwcGVuZENoaWxkKGVsZW1lbnQpOw0KICAgICAgICAvLyBDcmVhdGUgdGFibGUNCiAgICAgICAgdGhpcy50YWJsZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlRBQkxFIik7DQogICAgICAgIHRoaXMuZG9jLmFwcGVuZENoaWxkKHRoaXMudGFibGUpOw0KICAgIH0NCiAgICBhcHBlbmRSb3codGl0bGUsIGVsZW1lbnQpIHsNCiAgICAgICAgbGV0IHRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVFIiKTsNCiAgICAgICAgLy8gVGl0bGUNCiAgICAgICAgaWYgKHRpdGxlLmxlbmd0aCAhPSAwKSB7DQogICAgICAgICAgICB0ci5hcHBlbmRDaGlsZCh0aGlzLmNyZWF0ZVRpdGxlKHRpdGxlKSk7DQogICAgICAgIH0NCiAgICAgICAgLy8gQ29udGVudA0KICAgICAgICB0ci5hcHBlbmRDaGlsZCh0aGlzLmNyZWF0ZUNvbnRlbnQoZWxlbWVudCkpOw0KICAgICAgICB0aGlzLnRhYmxlLmFwcGVuZENoaWxkKHRyKTsNCiAgICB9DQogICAgY3JlYXRlSW5wdXQodHlwZSwgbmFtZSwgdmFsdWUpIHsNCiAgICAgICAgbGV0IGlucHV0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiSU5QVVQiKTsNCiAgICAgICAgaWYgKHZhbHVlID09IHVuZGVmaW5lZCkgew0KICAgICAgICAgICAgdmFsdWUgPSAiIjsNCiAgICAgICAgfQ0KICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInR5cGUiLCB0eXBlKTsNCiAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJuYW1lIiwgbmFtZSk7DQogICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgidmFsdWUiLCB2YWx1ZSk7DQogICAgICAgIHJldHVybiBpbnB1dDsNCiAgICB9DQogICAgY3JlYXRlQ2hlY2tib3gobmFtZSkgew0KICAgICAgICBsZXQgaW5wdXQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJJTlBVVCIpOw0KICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInR5cGUiLCAiY2hlY2tib3giKTsNCiAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJuYW1lIiwgbmFtZSk7DQogICAgICAgIHJldHVybiBpbnB1dDsNCiAgICB9DQogICAgLy8gQ3JlYXRlcyBhIHNlbGVjdGlvbiBvZiBtdWx0aXBsZSBvcHRpb25zIHZhbHVlcyB3aXRoIHRleHQgZGVzY3JpcHRpb25zDQogICAgY3JlYXRlU2VsZWN0KHRleHQsIHZhbHVlcywgc2V0LCBkYktleSkgew0KICAgICAgICBsZXQgc2VsZWN0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiU0VMRUNUIik7DQogICAgICAgIHNlbGVjdC5zZXRBdHRyaWJ1dGUoIm5hbWUiLCBkYktleSk7DQogICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGV4dC5sZW5ndGg7IGkrKykgew0KICAgICAgICAgICAgbGV0IG9wdGlvbiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIk9QVElPTiIpOw0KICAgICAgICAgICAgb3B0aW9uLnNldEF0dHJpYnV0ZSgidmFsdWUiLCB2YWx1ZXNbaV0pOw0KICAgICAgICAgICAgb3B0aW9uLmlubmVyVGV4dCA9IHRleHRbaV07DQogICAgICAgICAgICBzZWxlY3QuYXBwZW5kQ2hpbGQob3B0aW9uKTsNCiAgICAgICAgfQ0KICAgICAgICBpZiAoc2V0ICE9ICIiKSB7DQogICAgICAgICAgICBzZWxlY3QudmFsdWUgPSBzZXQ7DQogICAgICAgIH0NCiAgICAgICAgaWYgKHNldCA9PSB1bmRlZmluZWQpIHsNCiAgICAgICAgICAgIHNlbGVjdC52YWx1ZSA9IHZhbHVlc1swXTsNCiAgICAgICAgfQ0KICAgICAgICByZXR1cm4gc2VsZWN0Ow0KICAgIH0NCiAgICBzZWxlY3RPcHRpb24oc2VsZWN0LCB2YWx1ZSkgew0KICAgICAgICAvL3NlbGVjdC5zZWxlY3RlZE9wdGlvbnMgPSB2YWx1ZQ0KICAgICAgICBsZXQgcyA9IHNlbGVjdDsNCiAgICAgICAgcy5vcHRpb25zW3Muc2VsZWN0ZWRJbmRleF0udmFsdWUgPSB2YWx1ZTsNCiAgICAgICAgcmV0dXJuIHNlbGVjdDsNCiAgICB9DQogICAgZGVzY3JpcHRpb24odmFsdWUpIHsNCiAgICAgICAgbGV0IHRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVFIiKTsNCiAgICAgICAgbGV0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgbGV0IHNwYW4gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJQUkUiKTsNCiAgICAgICAgc3Bhbi5pbm5lckhUTUwgPSB2YWx1ZTsNCiAgICAgICAgdHIuYXBwZW5kQ2hpbGQodGQpOw0KICAgICAgICB0ci5hcHBlbmRDaGlsZCh0aGlzLmNyZWF0ZUNvbnRlbnQoc3BhbikpOw0KICAgICAgICB0aGlzLnRhYmxlLmFwcGVuZENoaWxkKHRyKTsNCiAgICB9DQogICAgLy8gSW50ZXJhY3Rpb24NCiAgICBhZGRJbnRlcmFjdGlvbihlbGVtZW50KSB7DQogICAgICAgIGxldCBpbnRlcmFjdGlvbiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJwb3B1cC1pbnRlcmFjdGlvbiIpOw0KICAgICAgICBpbnRlcmFjdGlvbi5hcHBlbmRDaGlsZChlbGVtZW50KTsNCiAgICB9DQp9DQpmdW5jdGlvbiBvcGVuUG9wVXAoZGF0YVR5cGUsIGVsZW1lbnQpIHsNCiAgICBsZXQgZGF0YSA9IHt9Ow0KICAgIGxldCBpZDsNCiAgICBzd2l0Y2ggKGVsZW1lbnQpIHsNCiAgICAgICAgY2FzZSB1bmRlZmluZWQ6DQogICAgICAgICAgICBzd2l0Y2ggKGRhdGFUeXBlKSB7DQogICAgICAgICAgICAgICAgY2FzZSAiZ3JvdXAtdGl0bGUiOg0KICAgICAgICAgICAgICAgICAgICBpZiAoaWQgPT0gdW5kZWZpbmVkKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBpZCA9IC0xOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIGRhdGEgPSBnZXRMb2NhbERhdGEoImZpbHRlciIsIGlkKTsNCiAgICAgICAgICAgICAgICAgICAgZGF0YVsidHlwZSJdID0gImdyb3VwLXRpdGxlIjsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAiY3VzdG9tLWZpbHRlciI6DQogICAgICAgICAgICAgICAgICAgIGlmIChpZCA9PSB1bmRlZmluZWQpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGlkID0gLTE7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgZGF0YSA9IGdldExvY2FsRGF0YSgiZmlsdGVyIiwgaWQpOw0KICAgICAgICAgICAgICAgICAgICBkYXRhWyJ0eXBlIl0gPSAiY3VzdG9tLWZpbHRlciI7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICAgICAgICAgIGRhdGFbImlkLnByb3ZpZGVyIl0gPSAiLSI7DQogICAgICAgICAgICAgICAgICAgIGRhdGFbInR5cGUiXSA9IGRhdGFUeXBlOw0KICAgICAgICAgICAgICAgICAgICBpZCA9ICItIjsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgIGlkID0gZWxlbWVudC5pZDsNCiAgICAgICAgICAgIGRhdGEgPSBnZXRMb2NhbERhdGEoZGF0YVR5cGUsIGlkKTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgIH0NCiAgICBsZXQgY29udGVudCA9IG5ldyBQb3B1cENvbnRlbnQoKTsNCiAgICBzd2l0Y2ggKGRhdGFUeXBlKSB7DQogICAgICAgIGNhc2UgInBsYXlsaXN0IjoNCiAgICAgICAgICAgIGNvbnRlbnQuY3JlYXRlSGVhZGxpbmUoInt7LnBsYXlsaXN0LnBsYXlsaXN0VHlwZS50aXRsZX19Iik7DQogICAgICAgICAgICAvLyBUeXBlDQogICAgICAgICAgICB2YXIgdGV4dCA9IFsiTTNVIiwgIkhESG9tZVJ1biJdOw0KICAgICAgICAgICAgdmFyIHZhbHVlcyA9IFsiamF2YXNjcmlwdDogb3BlblBvcFVwKCdtM3UnKSIsICJqYXZhc2NyaXB0OiBvcGVuUG9wVXAoJ2hkaHInKSJdOw0KICAgICAgICAgICAgdmFyIHNlbGVjdCA9IGNvbnRlbnQuY3JlYXRlU2VsZWN0KHRleHQsIHZhbHVlcywgIiIsICJ0eXBlIik7DQogICAgICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJpZCIsICJ0eXBlIik7DQogICAgICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICdqYXZhc2NyaXB0OiBjaGFuZ2VCdXR0b25BY3Rpb24odGhpcywgIm5leHQiLCAib25jbGljayIpJyk7IC8vIGNoYW5nZUJ1dHRvbkFjdGlvbg0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnBsYXlsaXN0LnR5cGUudGl0bGV9fSIsIHNlbGVjdCk7DQogICAgICAgICAgICAvLyBJbnRlcmFjdGlvbg0KICAgICAgICAgICAgY29udGVudC5jcmVhdGVJbnRlcmFjdGlvbigpOw0KICAgICAgICAgICAgLy8gQWJvcnQNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJjYW5jZWwiLCAie3suYnV0dG9uLmNhbmNlbH19Iik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogc2hvd0VsZW1lbnQoInBvcHVwIiwgZmFsc2UpOycpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICAvLyBOZXh0DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAibmV4dCIsICJ7ey5idXR0b24ubmV4dH19Iik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJtM3UiKScpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJpZCIsICduZXh0Jyk7DQogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJtM3UiOg0KICAgICAgICAgICAgY29udGVudC5jcmVhdGVIZWFkbGluZShkYXRhVHlwZSk7DQogICAgICAgICAgICAvLyBOYW1lDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAibmFtZSI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3sucGxheWxpc3QubmFtZS5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sucGxheWxpc3QubmFtZS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgLy8gRGVzY3JpcHRpb24NCiAgICAgICAgICAgIHZhciBkYktleSA9ICJkZXNjcmlwdGlvbiI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3sucGxheWxpc3QuZGVzY3JpcHRpb24ucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnBsYXlsaXN0LmRlc2NyaXB0aW9uLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBVUkwNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJmaWxlLnNvdXJjZSI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3sucGxheWxpc3QuZmlsZU0zVS5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sucGxheWxpc3QuZmlsZU0zVS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgLy8gVHVuZXINCiAgICAgICAgICAgIGlmIChTRVJWRVJbInNldHRpbmdzIl1bImJ1ZmZlciJdICE9ICItIikgew0KICAgICAgICAgICAgICAgIHZhciB0ZXh0ID0gW107DQogICAgICAgICAgICAgICAgdmFyIHZhbHVlcyA9IFtdOw0KICAgICAgICAgICAgICAgIGZvciAodmFyIGkgPSAxOyBpIDw9IDEwMDsgaSsrKSB7DQogICAgICAgICAgICAgICAgICAgIHRleHQucHVzaChpLnRvU3RyaW5nKCkpOw0KICAgICAgICAgICAgICAgICAgICB2YWx1ZXMucHVzaChpLnRvU3RyaW5nKCkpOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB2YXIgZGJLZXkgPSAidHVuZXIiOw0KICAgICAgICAgICAgICAgIHZhciBzZWxlY3QgPSBjb250ZW50LmNyZWF0ZVNlbGVjdCh0ZXh0LCB2YWx1ZXMsIGRhdGFbZGJLZXldLCBkYktleSk7DQogICAgICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25mb2N1cyIsICJqYXZhc2NyaXB0OiByZXR1cm47Iik7DQogICAgICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnBsYXlsaXN0LnR1bmVyLnRpdGxlfX0iLCBzZWxlY3QpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgZWxzZSB7DQogICAgICAgICAgICAgICAgdmFyIGRiS2V5ID0gInR1bmVyIjsNCiAgICAgICAgICAgICAgICBpZiAoZGF0YVtkYktleV0gPT0gdW5kZWZpbmVkKSB7DQogICAgICAgICAgICAgICAgICAgIGRhdGFbZGJLZXldID0gMTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJyZWFkb25seSIsICJ0cnVlIik7DQogICAgICAgICAgICAgICAgaW5wdXQuY2xhc3NOYW1lID0gIm5vdEF2YWlsYWJsZSI7DQogICAgICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnBsYXlsaXN0LnR1bmVyLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBjb250ZW50LmRlc2NyaXB0aW9uKCJ7ey5wbGF5bGlzdC50dW5lci5kZXNjcmlwdGlvbn19Iik7DQogICAgICAgICAgICAvLyBJbnRlcmF0aW9uDQogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUludGVyYWN0aW9uKCk7DQogICAgICAgICAgICAvLyBEZWxldGUNCiAgICAgICAgICAgIGlmIChkYXRhWyJpZC5wcm92aWRlciJdICE9ICItIikgew0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJkZWxldGUiLCAie3suYnV0dG9uLmRlbGV0ZX19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuY2xhc3NOYW1lID0gImRlbGV0ZSI7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoIm0zdSIsICInICsgaWQgKyAnIiwgdHJ1ZSwgMCknKTsNCiAgICAgICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJiYWNrIiwgInt7LmJ1dHRvbi5iYWNrfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJwbGF5bGlzdCIpJyk7DQogICAgICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICAvLyBBYm9ydA0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImNhbmNlbCIsICJ7ey5idXR0b24uY2FuY2VsfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBzaG93RWxlbWVudCgicG9wdXAiLCBmYWxzZSk7Jyk7DQogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIC8vIFVwZGF0ZQ0KICAgICAgICAgICAgaWYgKGRhdGFbImlkLnByb3ZpZGVyIl0gIT0gIi0iKSB7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgInVwZGF0ZSIsICJ7ey5idXR0b24udXBkYXRlfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogc2F2ZVBvcHVwRGF0YSgibTN1IiwgIicgKyBpZCArICciLCBmYWxzZSwgMSknKTsNCiAgICAgICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIC8vIFNhdmUNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJzYXZlIiwgInt7LmJ1dHRvbi5zYXZlfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBzYXZlUG9wdXBEYXRhKCJtM3UiLCAiJyArIGlkICsgJyIsIGZhbHNlLCAwKScpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSAiaGRociI6DQogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUhlYWRsaW5lKGRhdGFUeXBlKTsNCiAgICAgICAgICAgIC8vIE5hbWUNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJuYW1lIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5wbGF5bGlzdC5uYW1lLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5wbGF5bGlzdC5uYW1lLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBEZXNjcmlwdGlvbg0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gImRlc2NyaXB0aW9uIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5wbGF5bGlzdC5kZXNjcmlwdGlvbi5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sucGxheWxpc3QuZGVzY3JpcHRpb24ucGxhY2Vob2xkZXJ9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIFVSTA0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gImZpbGUuc291cmNlIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5wbGF5bGlzdC5maWxlSERIUi5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sucGxheWxpc3QuZmlsZUhESFIudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIFR1bmVyDQogICAgICAgICAgICBpZiAoU0VSVkVSWyJzZXR0aW5ncyJdWyJidWZmZXIiXSAhPSAiLSIpIHsNCiAgICAgICAgICAgICAgICB2YXIgdGV4dCA9IFtdOw0KICAgICAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBbXTsNCiAgICAgICAgICAgICAgICBmb3IgKHZhciBpID0gMTsgaSA8PSAxMDA7IGkrKykgew0KICAgICAgICAgICAgICAgICAgICB0ZXh0LnB1c2goaS50b1N0cmluZygpKTsNCiAgICAgICAgICAgICAgICAgICAgdmFsdWVzLnB1c2goaS50b1N0cmluZygpKTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgdmFyIGRiS2V5ID0gInR1bmVyIjsNCiAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCBkYXRhW2RiS2V5XSwgZGJLZXkpOw0KICAgICAgICAgICAgICAgIHNlbGVjdC5zZXRBdHRyaWJ1dGUoIm9uZm9jdXMiLCAiamF2YXNjcmlwdDogcmV0dXJuOyIpOw0KICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5wbGF5bGlzdC50dW5lci50aXRsZX19Iiwgc2VsZWN0KTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgICAgIHZhciBkYktleSA9ICJ0dW5lciI7DQogICAgICAgICAgICAgICAgaWYgKGRhdGFbZGJLZXldID09IHVuZGVmaW5lZCkgew0KICAgICAgICAgICAgICAgICAgICBkYXRhW2RiS2V5XSA9IDE7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicmVhZG9ubHkiLCAidHJ1ZSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LmNsYXNzTmFtZSA9ICJub3RBdmFpbGFibGUiOw0KICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5wbGF5bGlzdC50dW5lci50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgY29udGVudC5kZXNjcmlwdGlvbigie3sucGxheWxpc3QudHVuZXIuZGVzY3JpcHRpb259fSIpOw0KICAgICAgICAgICAgLy8gSW50ZXJhY3Rpb24NCiAgICAgICAgICAgIGNvbnRlbnQuY3JlYXRlSW50ZXJhY3Rpb24oKTsNCiAgICAgICAgICAgIC8vIERlbGV0ZQ0KICAgICAgICAgICAgaWYgKGRhdGFbImlkLnByb3ZpZGVyIl0gIT0gIi0iKSB7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImRlbGV0ZSIsICJ7ey5idXR0b24uZGVsZXRlfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogc2F2ZVBvcHVwRGF0YSgiaGRociIsICInICsgaWQgKyAnIiwgdHJ1ZSwgMCknKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5jbGFzc05hbWUgPSAiZGVsZXRlIjsNCiAgICAgICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJiYWNrIiwgInt7LmJ1dHRvbi5iYWNrfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJwbGF5bGlzdCIpJyk7DQogICAgICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICAvLyBBYm9ydA0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImNhbmNlbCIsICJ7ey5idXR0b24uY2FuY2VsfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBzaG93RWxlbWVudCgicG9wdXAiLCBmYWxzZSk7Jyk7DQogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIC8vIFVwZGF0ZQ0KICAgICAgICAgICAgaWYgKGRhdGFbImlkLnByb3ZpZGVyIl0gIT0gIi0iKSB7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgInVwZGF0ZSIsICJ7ey5idXR0b24udXBkYXRlfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogc2F2ZVBvcHVwRGF0YSgiaGRociIsICInICsgaWQgKyAnIiwgZmFsc2UsIDEpJyk7DQogICAgICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICAvLyBTYXZlDQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAic2F2ZSIsICJ7ey5idXR0b24uc2F2ZX19Iik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogc2F2ZVBvcHVwRGF0YSgiaGRociIsICInICsgaWQgKyAnIiwgZmFsc2UsIDApJyk7DQogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJmaWx0ZXIiOg0KICAgICAgICAgICAgY29udGVudC5jcmVhdGVIZWFkbGluZShkYXRhVHlwZSk7DQogICAgICAgICAgICAvLyBUeXBlDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAidHlwZSI7DQogICAgICAgICAgICB2YXIgdGV4dCA9IFsiTTNVOiAiICsgInt7LmZpbHRlci50eXBlLmdyb3VwVGl0bGV9fSIsICJ4VGVWZTogIiArICJ7ey5maWx0ZXIudHlwZS5jdXN0b21GaWx0ZXJ9fSJdOw0KICAgICAgICAgICAgdmFyIHZhbHVlcyA9IFsiamF2YXNjcmlwdDogb3BlblBvcFVwKCdncm91cC10aXRsZScpIiwgImphdmFzY3JpcHQ6IG9wZW5Qb3BVcCgnY3VzdG9tLWZpbHRlcicpIl07DQogICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCAiamF2YXNjcmlwdDogb3BlblBvcFVwKCdncm91cC10aXRsZScpIiwgZGJLZXkpOw0KICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgiaWQiLCBpZCk7DQogICAgICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICdqYXZhc2NyaXB0OiBjaGFuZ2VCdXR0b25BY3Rpb24odGhpcywgIm5leHQiLCAib25jbGljayIpOycpOyAvLyBjaGFuZ2VCdXR0b25BY3Rpb24NCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5maWx0ZXIudHlwZS50aXRsZX19Iiwgc2VsZWN0KTsNCiAgICAgICAgICAgIC8vIEludGVyYWN0aW9uDQogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUludGVyYWN0aW9uKCk7DQogICAgICAgICAgICAvLyBBYm9ydA0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImNhbmNlbCIsICJ7ey5idXR0b24uY2FuY2VsfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBzaG93RWxlbWVudCgicG9wdXAiLCBmYWxzZSk7Jyk7DQogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIC8vIE5leHQNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJuZXh0IiwgInt7LmJ1dHRvbi5uZXh0fX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoImdyb3VwLXRpdGxlIiknKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgiaWQiLCAnbmV4dCcpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSAiY3VzdG9tLWZpbHRlciI6DQogICAgICAgIGNhc2UgImdyb3VwLXRpdGxlIjoNCiAgICAgICAgICAgIHN3aXRjaCAoZGF0YVR5cGUpIHsNCiAgICAgICAgICAgICAgICBjYXNlICJjdXN0b20tZmlsdGVyIjoNCiAgICAgICAgICAgICAgICAgICAgY29udGVudC5jcmVhdGVIZWFkbGluZSgie3suZmlsdGVyLmN1c3RvbX19IiArICIgRmlsdGVyIik7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgImdyb3VwLXRpdGxlIjoNCiAgICAgICAgICAgICAgICAgICAgY29udGVudC5jcmVhdGVIZWFkbGluZSgie3suZmlsdGVyLmdyb3VwfX0iICsgIiBGaWx0ZXIiKTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICB9DQogICAgICAgICAgICAvLyBOYW1lICAgICAgDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAibmFtZSI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3suZmlsdGVyLm5hbWUucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LmZpbHRlci5uYW1lLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBEZXNjcmlwdGlvbg0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gImRlc2NyaXB0aW9uIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5maWx0ZXIuZGVzY3JpcHRpb24ucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LmZpbHRlci5kZXNjcmlwdGlvbi50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgLy8gVHlwZQ0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gInR5cGUiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiaGlkZGVuIiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCIiLCBpbnB1dCk7DQogICAgICAgICAgICB2YXIgZmlsdGVyVHlwZSA9IGRhdGFbZGJLZXldOw0KICAgICAgICAgICAgc3dpdGNoIChmaWx0ZXJUeXBlKSB7DQogICAgICAgICAgICAgICAgY2FzZSAiY3VzdG9tLWZpbHRlciI6DQogICAgICAgICAgICAgICAgICAgIC8vIENhc2Ugc2Vuc2l0aXZlDQogICAgICAgICAgICAgICAgICAgIHZhciBkYktleSA9ICJjYXNlU2Vuc2l0aXZlIjsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChkYktleSk7DQogICAgICAgICAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhW2RiS2V5XTsNCiAgICAgICAgICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LmZpbHRlci5jYXNlU2Vuc2l0aXZlLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAgICAgICAgIC8vIEZpbHRlciBSdWxlIChDdXN0b20pDQogICAgICAgICAgICAgICAgICAgIHZhciBkYktleSA9ICJmaWx0ZXIiOw0KICAgICAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5maWx0ZXIuZmlsdGVyUnVsZS5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5maWx0ZXIuZmlsdGVyUnVsZS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgICAgICAgICAvLyBTdGFydGluZyBDaGFubmVsIE51bWJlciBNYXBwaW5nDQogICAgICAgICAgICAgICAgICAgIHZhciBkYktleSA9ICJzdGFydGluZ0NoYW5uZWwiOw0KICAgICAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5maWx0ZXIuc3RhcnRpbmdDaGFubmVsLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LmZpbHRlci5zdGFydGluZ0NoYW5uZWwudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAiZ3JvdXAtdGl0bGUiOg0KICAgICAgICAgICAgICAgICAgICAvL2FsZXJ0KGRiS2V5ICsgIiAiICsgZmlsdGVyVHlwZSkNCiAgICAgICAgICAgICAgICAgICAgLy8gRmlsdGVyIGJhc2VkIG9uIHRoZSBncm91cHMgaW4gdGhlIE0zVQ0KICAgICAgICAgICAgICAgICAgICB2YXIgZGJLZXkgPSAiZmlsdGVyIjsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGdyb3Vwc00zVSA9IGdldExvY2FsRGF0YSgibTN1R3JvdXBzIiwgIiIpOw0KICAgICAgICAgICAgICAgICAgICB2YXIgdGV4dCA9IGdyb3Vwc00zVVsidGV4dCJdOw0KICAgICAgICAgICAgICAgICAgICB2YXIgdmFsdWVzID0gZ3JvdXBzTTNVWyJ2YWx1ZSJdOw0KICAgICAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCBkYXRhW2RiS2V5XSwgZGJLZXkpOw0KICAgICAgICAgICAgICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3suZmlsdGVyLmZpbHRlckdyb3VwLnRpdGxlfX0iLCBzZWxlY3QpOw0KICAgICAgICAgICAgICAgICAgICBjb250ZW50LmRlc2NyaXB0aW9uKCJ7ey5maWx0ZXIuZmlsdGVyR3JvdXAuZGVzY3JpcHRpb259fSIpOw0KICAgICAgICAgICAgICAgICAgICAvLyBDYXNlIHNlbnNldGl2ZQ0KICAgICAgICAgICAgICAgICAgICB2YXIgZGJLZXkgPSAiY2FzZVNlbnNpdGl2ZSI7DQogICAgICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goZGJLZXkpOw0KICAgICAgICAgICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YVtkYktleV07DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5maWx0ZXIuY2FzZVNlbnNpdGl2ZS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgICAgICAgICB2YXIgZGJLZXkgPSAiaW5jbHVkZSI7DQogICAgICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LmZpbHRlci5pbmNsdWRlLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LmZpbHRlci5pbmNsdWRlLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuZGVzY3JpcHRpb24oInt7LmZpbHRlci5pbmNsdWRlLmRlc2NyaXB0aW9ufX0iKTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGRiS2V5ID0gImV4Y2x1ZGUiOw0KICAgICAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5maWx0ZXIuZXhjbHVkZS5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5maWx0ZXIuZXhjbHVkZS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgICAgICAgICBjb250ZW50LmRlc2NyaXB0aW9uKCJ7ey5maWx0ZXIuZXhjbHVkZS5kZXNjcmlwdGlvbn19Iik7DQogICAgICAgICAgICAgICAgICAgIC8vIFByZXNlcnZlIE0zVSBQbGF5bGlzdCBDaGFubmVsIE1hcHBpbmcNCiAgICAgICAgICAgICAgICAgICAgdmFyIGRiS2V5ID0gInByZXNlcnZlTWFwcGluZyI7DQogICAgICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goZGJLZXkpOw0KICAgICAgICAgICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YVtkYktleV07DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5maWx0ZXIucHJlc2VydmVNYXBwaW5nLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAgICAgICAgIC8vIFN0YXJ0aW5nIENoYW5uZWwgTnVtYmVyIE1hcHBpbmcNCiAgICAgICAgICAgICAgICAgICAgdmFyIGRiS2V5ID0gInN0YXJ0aW5nQ2hhbm5lbCI7DQogICAgICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LmZpbHRlci5zdGFydGluZ0NoYW5uZWwucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3suZmlsdGVyLnN0YXJ0aW5nQ2hhbm5lbC50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBkZWZhdWx0Og0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIC8vIEludGVyYWN0aW9uDQogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUludGVyYWN0aW9uKCk7DQogICAgICAgICAgICAvLyBEZWxldGUNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJkZWxldGUiLCAie3suYnV0dG9uLmRlbGV0ZX19Iik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogc2F2ZVBvcHVwRGF0YSgiZmlsdGVyIiwgIicgKyBpZCArICciLCB0cnVlLCAwKScpOw0KICAgICAgICAgICAgaW5wdXQuY2xhc3NOYW1lID0gImRlbGV0ZSI7DQogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIC8vIEFib3J0DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAiY2FuY2VsIiwgInt7LmJ1dHRvbi5jYW5jZWx9fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IHNob3dFbGVtZW50KCJwb3B1cCIsIGZhbHNlKTsnKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgLy8gU2F2ZQ0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgInNhdmUiLCAie3suYnV0dG9uLnNhdmV9fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoImZpbHRlciIsICInICsgaWQgKyAnIiwgZmFsc2UsIDApJyk7DQogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJ4bWx0diI6DQogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUhlYWRsaW5lKGRhdGFUeXBlKTsNCiAgICAgICAgICAgIC8vIE5hbWUNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJuYW1lIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey54bWx0di5uYW1lLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey54bWx0di5uYW1lLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBEZXNjcmlwdGlvbg0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gImRlc2NyaXB0aW9uIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey54bWx0di5kZXNjcmlwdGlvbi5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sueG1sdHYuZGVzY3JpcHRpb24udGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIFVSTA0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gImZpbGUuc291cmNlIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey54bWx0di5maWxlWE1MVFYucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnhtbHR2LmZpbGVYTUxUVi50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgLy8gSW50ZXJhY3Rpb24NCiAgICAgICAgICAgIGNvbnRlbnQuY3JlYXRlSW50ZXJhY3Rpb24oKTsNCiAgICAgICAgICAgIC8vIERlbGV0ZQ0KICAgICAgICAgICAgaWYgKGRhdGFbImlkLnByb3ZpZGVyIl0gIT0gIi0iKSB7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImRlbGV0ZSIsICJ7ey5idXR0b24uZGVsZXRlfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogc2F2ZVBvcHVwRGF0YSgieG1sdHYiLCAiJyArIGlkICsgJyIsIHRydWUsIDApJyk7DQogICAgICAgICAgICAgICAgaW5wdXQuY2xhc3NOYW1lID0gImRlbGV0ZSI7DQogICAgICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICAvLyBBYm9ydA0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImNhbmNlbCIsICJ7ey5idXR0b24uY2FuY2VsfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBzaG93RWxlbWVudCgicG9wdXAiLCBmYWxzZSk7Jyk7DQogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIC8vIFVwZGF0ZQ0KICAgICAgICAgICAgaWYgKGRhdGFbImlkLnByb3ZpZGVyIl0gIT0gIi0iKSB7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgInVwZGF0ZSIsICJ7ey5idXR0b24udXBkYXRlfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogc2F2ZVBvcHVwRGF0YSgieG1sdHYiLCAiJyArIGlkICsgJyIsIGZhbHNlLCAxKScpOw0KICAgICAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgLy8gU2F2ZQ0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgInNhdmUiLCAie3suYnV0dG9uLnNhdmV9fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoInhtbHR2IiwgIicgKyBpZCArICciLCBmYWxzZSwgMCknKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGNhc2UgInVzZXJzIjoNCiAgICAgICAgICAgIGNvbnRlbnQuY3JlYXRlSGVhZGxpbmUoInt7Lm1haW5NZW51Lml0ZW0udXNlcnN9fSIpOw0KICAgICAgICAgICAgLy8gVXNlciBuYW1lDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAidXNlcm5hbWUiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnVzZXJzLnVzZXJuYW1lLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey51c2Vycy51c2VybmFtZS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgLy8gTmV3IFBhcnNzd29yZA0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gInBhc3N3b3JkIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInBhc3N3b3JkIiwgZGJLZXksICIiKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3sudXNlcnMucGFzc3dvcmQucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnVzZXJzLnBhc3N3b3JkLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBDb25maXJtYXRpb24NCiAgICAgICAgICAgIHZhciBkYktleSA9ICJjb25maXJtIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInBhc3N3b3JkIiwgZGJLZXksICIiKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3sudXNlcnMuY29uZmlybS5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sudXNlcnMuY29uZmlybS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgLy8gQXV0aGVudGljYXRpb24gV0VCDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAiYXV0aGVudGljYXRpb24ud2ViIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goZGJLZXkpOw0KICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGFbZGJLZXldOw0KICAgICAgICAgICAgaWYgKGRhdGFbImRlZmF1bHRVc2VyIl0gPT0gdHJ1ZSkgew0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICJqYXZhc2NyaXB0OiByZXR1cm4gZmFsc2UiKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey51c2Vycy53ZWIudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIEF1dGhlbnRpY2F0aW9uIFBNUw0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gImF1dGhlbnRpY2F0aW9uLnBtcyI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KGRiS2V5KTsNCiAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhW2RiS2V5XTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey51c2Vycy5wbXMudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIEF1dGhlbnRpY2F0aW9uIE0zVQ0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gImF1dGhlbnRpY2F0aW9uLm0zdSI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KGRiS2V5KTsNCiAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhW2RiS2V5XTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey51c2Vycy5tM3UudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIEF1dGhlbnRpY2F0aW9uIFhNTA0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gImF1dGhlbnRpY2F0aW9uLnhtbCI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KGRiS2V5KTsNCiAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhW2RiS2V5XTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey51c2Vycy54bWwudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIEF1dGhlbnRpY2F0aW9uIEFQSQ0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gImF1dGhlbnRpY2F0aW9uLmFwaSI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KGRiS2V5KTsNCiAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhW2RiS2V5XTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey51c2Vycy5hcGkudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIEludGVyYWN0aW9uDQogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUludGVyYWN0aW9uKCk7DQogICAgICAgICAgICAvLyBEZWxldGUNCiAgICAgICAgICAgIGlmIChkYXRhWyJkZWZhdWx0VXNlciJdICE9IHRydWUgJiYgaWQgIT0gIi0iKSB7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImRlbGV0ZSIsICJ7ey5idXR0b24uZGVsZXRlfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5jbGFzc05hbWUgPSAiZGVsZXRlIjsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogc2F2ZVBvcHVwRGF0YSgiJyArIGRhdGFUeXBlICsgJyIsICInICsgaWQgKyAnIiwgdHJ1ZSwgMCknKTsNCiAgICAgICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIC8vIEFib3J0DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAiY2FuY2VsIiwgInt7LmJ1dHRvbi5jYW5jZWx9fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IHNob3dFbGVtZW50KCJwb3B1cCIsIGZhbHNlKTsnKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgLy8gU2F2ZQ0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgInNhdmUiLCAie3suYnV0dG9uLnNhdmV9fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoIicgKyBkYXRhVHlwZSArICciLCAiJyArIGlkICsgJyIsICJmYWxzZSIpOycpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSAibWFwcGluZyI6DQogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUhlYWRsaW5lKCJ7ey5tYWluTWVudS5pdGVtLm1hcHBpbmd9fSIpOw0KICAgICAgICAgICAgLy8gQWN0aXZlDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAieC1hY3RpdmUiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChkYktleSk7DQogICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YVtkYktleV07DQogICAgICAgICAgICBpbnB1dC5pZCA9ICJhY3RpdmUiOw0KICAgICAgICAgICAgLy9pbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIikNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdG9nZ2xlQ2hhbm5lbFN0YXR1cygnIiArIGlkICsgIicsIHRoaXMpIik7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3subWFwcGluZy5hY3RpdmUudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIENoYW5uZWwgbmFtZQ0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gIngtbmFtZSI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgIGlmIChCVUxLX0VESVQgPT0gdHJ1ZSkgew0KICAgICAgICAgICAgICAgIGlucHV0LnN0eWxlLmJvcmRlciA9ICJzb2xpZCAxcHggcmVkIjsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInJlYWRvbmx5IiwgInRydWUiKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5tYXBwaW5nLmNoYW5uZWxOYW1lLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICBjb250ZW50LmRlc2NyaXB0aW9uKGRhdGFbIm5hbWUiXSk7DQogICAgICAgICAgICAvLyBEZXNjcmlwdGlvbg0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gIngtZGVzY3JpcHRpb24iOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7Lm1hcHBpbmcuZGVzY3JpcHRpb24ucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7Lm1hcHBpbmcuZGVzY3JpcHRpb24udGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIFVwZGF0ZSB0aGUgY2hhbm5lbCB4LW5hbWUNCiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCJfdXVpZC5rZXkiKSkgew0KICAgICAgICAgICAgICAgIGlmIChkYXRhWyJfdXVpZC5rZXkiXSAhPSAiIikgew0KICAgICAgICAgICAgICAgICAgICB2YXIgZGJLZXkgPSAieC11cGRhdGUtY2hhbm5lbC1uYW1lIjsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChkYktleSk7DQogICAgICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGFbZGJLZXldOw0KICAgICAgICAgICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3subWFwcGluZy51cGRhdGVDaGFubmVsTmFtZS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIC8vIENoYW5uZWwgbmFtZSByZWdleCBmb3IgdXBkYXRpbmcgdGhlIGNoYW5uZWwgbmFtZQ0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gInVwZGF0ZS1jaGFubmVsLW5hbWUtcmVnZXgiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7Lm1hcHBpbmcudXBkYXRlQ2hhbm5lbE5hbWVSZWdleC5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3subWFwcGluZy51cGRhdGVDaGFubmVsTmFtZVJlZ2V4LnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICBjb250ZW50LmRlc2NyaXB0aW9uKCJ7ey5tYXBwaW5nLnVwZGF0ZUNoYW5uZWxOYW1lUmVnZXguZGVzY3JpcHRpb259fSIpOw0KICAgICAgICAgICAgLy8gQ2hhbm5lbCBncm91cCByZWdleCBmb3IgdXBkYXRpbmcgdGhlIGNoYW5uZWwgbmFtZQ0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gInVwZGF0ZS1jaGFubmVsLW5hbWUtYnktZ3JvdXAtcmVnZXgiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7Lm1hcHBpbmcudXBkYXRlQ2hhbm5lbE5hbWVCeUdyb3VwUmVnZXgucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7Lm1hcHBpbmcudXBkYXRlQ2hhbm5lbE5hbWVCeUdyb3VwUmVnZXgudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIGNvbnRlbnQuZGVzY3JpcHRpb24oInt7Lm1hcHBpbmcudXBkYXRlQ2hhbm5lbE5hbWVCeUdyb3VwUmVnZXguZGVzY3JpcHRpb259fSIpOw0KICAgICAgICAgICAgLy8gTG9nbyBVUkwgKENoYW5uZWwpIA0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gInR2Zy1sb2dvIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJpZCIsICJjaGFubmVsLWljb24iKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5tYXBwaW5nLmNoYW5uZWxMb2dvLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBDaGFubmVsIGxvZ28gdXBkYXRlDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAieC11cGRhdGUtY2hhbm5lbC1pY29uIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goZGJLZXkpOw0KICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGFbZGJLZXldOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJpZCIsICJ1cGRhdGUtaWNvbiIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJzsgY2hhbmdlQ2hhbm5lbExvZ28oJyIgKyBpZCArICInKTsiKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5tYXBwaW5nLnVwZGF0ZUNoYW5uZWxMb2dvLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBFeHBhbmQgRVBHIGNhdGVnb3J5DQogICAgICAgICAgICB2YXIgZGJLZXkgPSAieC1jYXRlZ29yeSI7DQogICAgICAgICAgICB2YXIgdGV4dCA9IFsiLSIsICJLaWRzIChFbWJ5IG9ubHkpIiwgIk5ld3MiLCAiTW92aWUiLCAiU2VyaWVzIiwgIlNwb3J0cyJdOw0KICAgICAgICAgICAgdmFyIHZhbHVlcyA9IFsiIiwgIktpZHMiLCAiTmV3cyIsICJNb3ZpZSIsICJTZXJpZXMiLCAiU3BvcnRzIl07DQogICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCBkYXRhW2RiS2V5XSwgZGJLZXkpOw0KICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5tYXBwaW5nLmVwZ0NhdGVnb3J5LnRpdGxlfX0iLCBzZWxlY3QpOw0KICAgICAgICAgICAgLy8gTTNVIGdyb3VwIHRpdGxlDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAieC1ncm91cC10aXRsZSI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgIGlucHV0LmRhdGFzZXQub2xkVmFsdWUgPSBkYXRhW2RiS2V5XTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5tYXBwaW5nLm0zdUdyb3VwVGl0bGUudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIGlmIChkYXRhWyJncm91cC10aXRsZSJdICE9IHVuZGVmaW5lZCkgew0KICAgICAgICAgICAgICAgIGNvbnRlbnQuZGVzY3JpcHRpb24oZGF0YVsiZ3JvdXAtdGl0bGUiXSk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBpZiAoZGF0YVsieC11cGRhdGUtY2hhbm5lbC1ncm91cCJdID09IHRydWUpIHsNCiAgICAgICAgICAgICAgICBpbnB1dC5kaXNhYmxlZCA9IHRydWU7DQogICAgICAgICAgICB9DQogICAgICAgICAgICAvLyBVcGRhdGUgY2hhbm5lbCBncm91cCBjaGVja2JveA0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gIngtdXBkYXRlLWNoYW5uZWwtZ3JvdXAiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChkYktleSk7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRvZ2dsZUdyb3VwVXBkYXRlQ2IoJyIgKyBpZCArICInLCB0aGlzKTsiKTsNCiAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhW2RiS2V5XTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5tYXBwaW5nLnVwZGF0ZUNoYW5uZWxHcm91cC50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgY29udGVudC5kZXNjcmlwdGlvbigie3subWFwcGluZy51cGRhdGVDaGFubmVsR3JvdXAuZGVzY3JpcHRpb259fSIpOw0KICAgICAgICAgICAgLy8gWE1MVFYgZmlsZQ0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gJ3gteG1sdHYtZmlsZSc7DQogICAgICAgICAgICBjb25zdCB4bWxUdkZpbGUgPSBkYXRhW2RiS2V5XTsNCiAgICAgICAgICAgIHZhciB4bWxUdiA9IG5ldyBYTUxUVkZpbGUoKTsNCiAgICAgICAgICAgIGNvbnN0IHhtbFR2RmlsZVNlbGVjdCA9IHhtbFR2LmdldEZpbGVzKGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIHhtbFR2RmlsZVNlbGVjdC5zZXRBdHRyaWJ1dGUoJ25hbWUnLCBkYktleSk7DQogICAgICAgICAgICB4bWxUdkZpbGVTZWxlY3Quc2V0QXR0cmlidXRlKCdpZCcsICdwb3B1cC14bWx0dicpOw0KICAgICAgICAgICAgeG1sVHZGaWxlU2VsZWN0LnNldEF0dHJpYnV0ZSgnb25jaGFuZ2UnLCBgamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCc7IHNldFhtbHR2Q2hhbm5lbCgnJHtpZH0nLCB0aGlzKTtgKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCd7ey5tYXBwaW5nLnhtbHR2RmlsZS50aXRsZX19JywgeG1sVHZGaWxlU2VsZWN0KTsNCiAgICAgICAgICAgIC8vIFhNTFRWIE1hcHBpbmcNCiAgICAgICAgICAgIHZhciBkYktleSA9ICd4LW1hcHBpbmcnOw0KICAgICAgICAgICAgdmFyIHhtbFR2ID0gbmV3IFhNTFRWRmlsZSgpOw0KICAgICAgICAgICAgY29uc3QgY3VycmVudFhtbFR2SWQgPSBkYXRhW2RiS2V5XTsNCiAgICAgICAgICAgIGNvbnN0IFt4bWxUdklkQ29udGFpbmVyLCB4bWxUdklkSW5wdXQsIHhtbFR2SWREYXRhbGlzdF0gPSB4bWxUdi5uZXdYbWxUdklkUGlja2VyKHhtbFR2RmlsZSwgY3VycmVudFhtbFR2SWQpOw0KICAgICAgICAgICAgeG1sVHZJZENvbnRhaW5lci5zZXRBdHRyaWJ1dGUoJ2lkJywgJ3htbHR2LWlkLXBpY2tlci1jb250YWluZXInKTsNCiAgICAgICAgICAgIHhtbFR2SWRJbnB1dC5zZXRBdHRyaWJ1dGUoJ2xpc3QnLCAneG1sdHYtaWQtcGlja2VyLWRhdGFsaXN0Jyk7DQogICAgICAgICAgICB4bWxUdklkSW5wdXQuc2V0QXR0cmlidXRlKCduYW1lJywgJ3gtbWFwcGluZycpOyAvLyBTaG91bGQgc3RheSB4LW1hcHBpbmcgYXMgaXQgd2lsbCBiZSB1c2VkIGluIGRvbmVQb3B1cERhdGEgdG8gbWFrZSBhIHNlcnZlciByZXF1ZXN0DQogICAgICAgICAgICB4bWxUdklkSW5wdXQuc2V0QXR0cmlidXRlKCdpZCcsICd4bWx0di1pZC1waWNrZXItaW5wdXQnKTsNCiAgICAgICAgICAgIHhtbFR2SWRJbnB1dC5zZXRBdHRyaWJ1dGUoJ29uY2hhbmdlJywgYGphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnOyBjaGVja1htbHR2Q2hhbm5lbCgnJHtpZH0nLCB0aGlzLnZhbHVlLCAnJHt4bWxUdkZpbGV9Jyk7YCk7DQogICAgICAgICAgICB4bWxUdklkRGF0YWxpc3Quc2V0QXR0cmlidXRlKCdpZCcsICd4bWx0di1pZC1waWNrZXItZGF0YWxpc3QnKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCd7ey5tYXBwaW5nLnhtbHR2Q2hhbm5lbC50aXRsZX19JywgeG1sVHZJZENvbnRhaW5lcik7DQogICAgICAgICAgICAvLyBUaW1lc2hpZnQNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJ4LXRpbWVzaGlmdCI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3subWFwcGluZy50aW1lc2hpZnQucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJpZCIsICJ0aW1lc2hpZnQiKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5tYXBwaW5nLnRpbWVzaGlmdC50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgLy8gSW50ZXJhY3Rpb24NCiAgICAgICAgICAgIGNvbnRlbnQuY3JlYXRlSW50ZXJhY3Rpb24oKTsNCiAgICAgICAgICAgIC8vIFVwbG9hZCBsb2dvDQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAiY2FuY2VsIiwgInt7LmJ1dHRvbi51cGxvYWRMb2dvfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiB1cGxvYWRMb2dvKCk7Jyk7DQogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIC8vIEFib3J0DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAiY2FuY2VsIiwgInt7LmJ1dHRvbi5jYW5jZWx9fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IHNob3dFbGVtZW50KCJwb3B1cCIsIGZhbHNlKTsnKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgLy8gRmluaXNoZWQNCiAgICAgICAgICAgIHZhciBpZHMgPSBbXTsNCiAgICAgICAgICAgIGlkcyA9IGdldEFsbFNlbGVjdGVkQ2hhbm5lbHMoKTsNCiAgICAgICAgICAgIGlmIChpZHMubGVuZ3RoID09IDApIHsNCiAgICAgICAgICAgICAgICBpZHMucHVzaChpZCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAic2F2ZSIsICJ7ey5idXR0b24uZG9uZX19Iik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogZG9uZVBvcHVwRGF0YSgiJyArIGRhdGFUeXBlICsgJyIsICInICsgaWRzICsgJyIsICJmYWxzZSIpOycpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgIGJyZWFrOw0KICAgIH0NCiAgICBzaG93UG9wVXBFbGVtZW50KCdwb3B1cC1jdXN0b20nKTsNCn0NCmNsYXNzIFhNTFRWRmlsZSB7DQogICAgZ2V0RmlsZXMoc2V0KSB7DQogICAgICAgIGxldCBmaWxlSURzID0gZ2V0T3duT2JqUHJvcHMoU0VSVkVSWyJ4ZXBnIl1bInhtbHR2TWFwIl0pOw0KICAgICAgICBsZXQgdmFsdWVzID0gbmV3IEFycmF5KCItIik7DQogICAgICAgIGxldCB0ZXh0ID0gbmV3IEFycmF5KCItIik7DQogICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgZmlsZUlEcy5sZW5ndGg7IGkrKykgew0KICAgICAgICAgICAgaWYgKGZpbGVJRHNbaV0gIT0gInhUZVZlIER1bW15Iikgew0KICAgICAgICAgICAgICAgIHZhbHVlcy5wdXNoKGdldFZhbHVlRnJvbVByb3ZpZGVyRmlsZShmaWxlSURzW2ldLCAieG1sdHYiLCAiZmlsZS54dGV2ZSIpKTsNCiAgICAgICAgICAgICAgICB0ZXh0LnB1c2goZ2V0VmFsdWVGcm9tUHJvdmlkZXJGaWxlKGZpbGVJRHNbaV0sICJ4bWx0diIsICJuYW1lIikpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgZWxzZSB7DQogICAgICAgICAgICAgICAgdmFsdWVzLnB1c2goZmlsZUlEc1tpXSk7DQogICAgICAgICAgICAgICAgdGV4dC5wdXNoKGZpbGVJRHNbaV0pOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQogICAgICAgIGxldCBzZWxlY3QgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJTRUxFQ1QiKTsNCiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0ZXh0Lmxlbmd0aDsgaSsrKSB7DQogICAgICAgICAgICB2YXIgb3B0aW9uID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiT1BUSU9OIik7DQogICAgICAgICAgICBvcHRpb24uc2V0QXR0cmlidXRlKCJ2YWx1ZSIsIHZhbHVlc1tpXSk7DQogICAgICAgICAgICBvcHRpb24uaW5uZXJUZXh0ID0gdGV4dFtpXTsNCiAgICAgICAgICAgIHNlbGVjdC5hcHBlbmRDaGlsZChvcHRpb24pOw0KICAgICAgICB9DQogICAgICAgIGlmIChzZXQgIT0gIiIpIHsNCiAgICAgICAgICAgIHNlbGVjdC52YWx1ZSA9IHNldDsNCiAgICAgICAgfQ0KICAgICAgICByZXR1cm4gc2VsZWN0Ow0KICAgIH0NCiAgICAvKioNCiAgICAgKiBAcGFyYW0geG1sVHZGaWxlIFhNTCBmaWxlIHBhdGggdG8gZ2V0IEVQRyBmcm9tLg0KICAgICAqIEBwYXJhbSBjdXJyZW50WG1sVHZJZCBDdXJyZW50IFhNTFRWIElEIHRvIHNldCBpbml0aWFsIGlucHV0IHZhbHVlIHRvLg0KICAgICAqIEByZXR1cm5zIEFycmF5IG9mLCBzZXF1ZW50aWFsbHk6DQogICAgICogMSkgQ29udGFpbmVyIG9mIHRoZSBwaWNrZXIuDQogICAgICogMikgSW5wdXQgZmllbGQgdG8gdHlwZSBhdCBhbmQgZ2V0IGNob2ljZSBmcm9tLg0KICAgICAqIDMpIERhdGFsaXN0IGNvbnRhaW5pbmcgZXZlcnkgb3B0aW9uLg0KICAgICAqLw0KICAgIG5ld1htbFR2SWRQaWNrZXIoeG1sVHZGaWxlLCBjdXJyZW50WG1sVHZJZCkgew0KICAgICAgICBjb25zdCBjb250YWluZXIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsNCiAgICAgICAgY29uc3QgaW5wdXQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdpbnB1dCcpOw0KICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoJ3R5cGUnLCAndGV4dCcpOw0KICAgICAgICAvLyBJbml0aWFsbHksIHNldCB2YWx1ZSB0byAnLScgaWYgaW5wdXQgaXMgZW1wdHkNCiAgICAgICAgaW5wdXQudmFsdWUgPSAoY3VycmVudFhtbFR2SWQpID8gY3VycmVudFhtbFR2SWQgOiAnLSc7DQogICAgICAgIC8vIFdoZW4gaW5wdXQgaXMgZm9jdXNlZCwgcmVtb3ZlICctJyBmcm9tIGl0DQogICAgICAgIGlucHV0LmFkZEV2ZW50TGlzdGVuZXIoJ2ZvY3VzJywgKGV2dCkgPT4gew0KICAgICAgICAgICAgY29uc3QgdGFyZ2V0ID0gZXZ0LnRhcmdldDsNCiAgICAgICAgICAgIHRhcmdldC52YWx1ZSA9ICh0YXJnZXQudmFsdWUgPT09ICctJykgPyAnJyA6IHRhcmdldC52YWx1ZTsNCiAgICAgICAgfSk7DQogICAgICAgIC8vIFdoZW4gaW5wdXQgbG9zZSBmb2N1cyBvciB0YWtlIGEgdmFsdWUsIGlmIGl0J3MgZW1wdHksIHNldCB2YWx1ZSB0byAnLScNCiAgICAgICAgaW5wdXQuYWRkRXZlbnRMaXN0ZW5lcignYmx1cicsIHNldEZhbGxiYWNrVmFsdWUpOw0KICAgICAgICBpbnB1dC5hZGRFdmVudExpc3RlbmVyKCdjaGFuZ2UnLCBzZXRGYWxsYmFja1ZhbHVlKTsNCiAgICAgICAgZnVuY3Rpb24gc2V0RmFsbGJhY2tWYWx1ZShldnQpIHsNCiAgICAgICAgICAgIGNvbnN0IHRhcmdldCA9IGV2dC50YXJnZXQ7DQogICAgICAgICAgICB0YXJnZXQudmFsdWUgPSAodGFyZ2V0LnZhbHVlKSA/IHRhcmdldC52YWx1ZSA6ICctJzsNCiAgICAgICAgfQ0KICAgICAgICBjb250YWluZXIuYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICBjb25zdCBkYXRhbGlzdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RhdGFsaXN0Jyk7DQogICAgICAgIGNvbnN0IG9wdGlvbiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ29wdGlvbicpOw0KICAgICAgICBvcHRpb24uc2V0QXR0cmlidXRlKCd2YWx1ZScsICctJyk7DQogICAgICAgIG9wdGlvbi5pbm5lclRleHQgPSAnLSc7DQogICAgICAgIGRhdGFsaXN0LmFwcGVuZENoaWxkKG9wdGlvbik7DQogICAgICAgIGNvbnN0IGVwZyA9IFNFUlZFUlsneGVwZyddWyd4bWx0dk1hcCddW3htbFR2RmlsZV07DQogICAgICAgIGlmIChlcGcpIHsNCiAgICAgICAgICAgIGNvbnN0IHByb2dyYW1JZHMgPSBnZXRPd25PYmpQcm9wcyhlcGcpOw0KICAgICAgICAgICAgcHJvZ3JhbUlkcy5mb3JFYWNoKChwcm9ncmFtSWQpID0+IHsNCiAgICAgICAgICAgICAgICBjb25zdCBwcm9ncmFtID0gZXBnW3Byb2dyYW1JZF07DQogICAgICAgICAgICAgICAgaWYgKHByb2dyYW0uaGFzT3duUHJvcGVydHkoJ2Rpc3BsYXktbmFtZXMnKSkgew0KICAgICAgICAgICAgICAgICAgICBwcm9ncmFtWydkaXNwbGF5LW5hbWVzJ10uZm9yRWFjaCgoZGlzcGxheU5hbWUpID0+IHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IG9wdGlvbiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ29wdGlvbicpOw0KICAgICAgICAgICAgICAgICAgICAgICAgb3B0aW9uLnNldEF0dHJpYnV0ZSgndmFsdWUnLCBwcm9ncmFtSWQpOw0KICAgICAgICAgICAgICAgICAgICAgICAgb3B0aW9uLmlubmVyVGV4dCA9IGRpc3BsYXlOYW1lWydWYWx1ZSddOw0KICAgICAgICAgICAgICAgICAgICAgICAgZGF0YWxpc3QuYXBwZW5kQ2hpbGQob3B0aW9uKTsNCiAgICAgICAgICAgICAgICAgICAgfSk7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgICAgICAgICBjb25zdCBvcHRpb24gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdvcHRpb24nKTsNCiAgICAgICAgICAgICAgICAgICAgb3B0aW9uLnNldEF0dHJpYnV0ZSgndmFsdWUnLCBwcm9ncmFtSWQpOw0KICAgICAgICAgICAgICAgICAgICBvcHRpb24uaW5uZXJUZXh0ID0gJy0nOw0KICAgICAgICAgICAgICAgICAgICBkYXRhbGlzdC5hcHBlbmRDaGlsZChvcHRpb24pOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0pOw0KICAgICAgICB9DQogICAgICAgIGNvbnRhaW5lci5hcHBlbmRDaGlsZChkYXRhbGlzdCk7DQogICAgICAgIHJldHVybiBbY29udGFpbmVyLCBpbnB1dCwgZGF0YWxpc3RdOw0KICAgIH0NCn0NCmZ1bmN0aW9uIGdldFZhbHVlRnJvbVByb3ZpZGVyRmlsZShmaWxlLCBmaWxlVHlwZSwga2V5KSB7DQogICAgaWYgKGZpbGUgPT0gInhUZVZlIER1bW15Iikgew0KICAgICAgICByZXR1cm4gZmlsZTsNCiAgICB9DQogICAgbGV0IGZpbGVJRDsNCiAgICBsZXQgaW5kaWNhdG9yID0gZmlsZS5jaGFyQXQoMCk7DQogICAgc3dpdGNoIChpbmRpY2F0b3IpIHsNCiAgICAgICAgY2FzZSAiTSI6DQogICAgICAgICAgICBmaWxlVHlwZSA9ICJtM3UiOw0KICAgICAgICAgICAgZmlsZUlEID0gZmlsZTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJIIjoNCiAgICAgICAgICAgIGZpbGVUeXBlID0gImhkaHIiOw0KICAgICAgICAgICAgZmlsZUlEID0gZmlsZTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJYIjoNCiAgICAgICAgICAgIGZpbGVUeXBlID0gInhtbHR2IjsNCiAgICAgICAgICAgIGZpbGVJRCA9IGZpbGUuc3Vic3RyaW5nKDAsIGZpbGUubGFzdEluZGV4T2YoJy4nKSk7DQogICAgICAgICAgICBicmVhazsNCiAgICB9DQogICAgaWYgKFNFUlZFUlsic2V0dGluZ3MiXVsiZmlsZXMiXVtmaWxlVHlwZV0uaGFzT3duUHJvcGVydHkoZmlsZUlEKSA9PSB0cnVlKSB7DQogICAgICAgIHZhciBkYXRhID0gU0VSVkVSWyJzZXR0aW5ncyJdWyJmaWxlcyJdW2ZpbGVUeXBlXVtmaWxlSURdOw0KICAgICAgICByZXR1cm4gZGF0YVtrZXldOw0KICAgIH0NCiAgICByZXR1cm47DQp9DQpmdW5jdGlvbiBzZXRYbWx0dkNoYW5uZWwoZXBnTWFwSWQsIHhtbFR2RmlsZVNlbGVjdCkgew0KICAgIGNvbnN0IHhtbFR2ID0gbmV3IFhNTFRWRmlsZSgpOw0KICAgIGNvbnN0IG5ld1htbFR2RmlsZSA9IHhtbFR2RmlsZVNlbGVjdC52YWx1ZTsNCiAgICAvLyBSZW1vdmUgb2xkIFhNTFRWIElEIHNlbGVjdGlvbiBib3gNCiAgICBjb25zdCB4bWxUdklkUGlja2VyUGFyZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3htbHR2LWlkLXBpY2tlci1jb250YWluZXInKS5wYXJlbnRFbGVtZW50Ow0KICAgIHhtbFR2SWRQaWNrZXJQYXJlbnQuaW5uZXJIVE1MID0gJyc7DQogICAgLy8gQ3JlYXRlIG5ldyBYTUxUViBJRCBzZWxlY3Rpb24gYm94DQogICAgY29uc3QgdHZnSWQgPSBTRVJWRVJbJ3hlcGcnXVsnZXBnTWFwcGluZyddW2VwZ01hcElkXVsndHZnLWlkJ107DQogICAgY29uc3QgW3htbFR2SWRDb250YWluZXIsIHhtbFR2SWRJbnB1dCwgeG1sVHZJZERhdGFsaXN0XSA9IHhtbFR2Lm5ld1htbFR2SWRQaWNrZXIobmV3WG1sVHZGaWxlLCB0dmdJZCk7DQogICAgeG1sVHZJZENvbnRhaW5lci5zZXRBdHRyaWJ1dGUoJ2lkJywgJ3htbHR2LWlkLXBpY2tlci1jb250YWluZXInKTsNCiAgICB4bWxUdklkSW5wdXQuc2V0QXR0cmlidXRlKCdsaXN0JywgJ3htbHR2LWlkLXBpY2tlci1kYXRhbGlzdCcpOw0KICAgIHhtbFR2SWRJbnB1dC5zZXRBdHRyaWJ1dGUoJ25hbWUnLCAneC1tYXBwaW5nJyk7IC8vIFNob3VsZCBzdGF5IHgtbWFwcGluZyBhcyBpdCB3aWxsIGJlIHVzZWQgaW4gZG9uZVBvcHVwRGF0YSB0byBtYWtlIGEgc2VydmVyIHJlcXVlc3QNCiAgICB4bWxUdklkSW5wdXQuc2V0QXR0cmlidXRlKCdpZCcsICd4bWx0di1pZC1waWNrZXItaW5wdXQnKTsNCiAgICB4bWxUdklkSW5wdXQuc2V0QXR0cmlidXRlKCdvbmNoYW5nZScsIGBqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJzsgY2hlY2tYbWx0dkNoYW5uZWwoJyR7ZXBnTWFwSWR9JywgdGhpcy52YWx1ZSwgJyR7bmV3WG1sVHZGaWxlfScpO2ApOw0KICAgIHhtbFR2SWRJbnB1dC5jbGFzc0xpc3QuYWRkKCdjaGFuZ2VkJyk7DQogICAgeG1sVHZJZERhdGFsaXN0LnNldEF0dHJpYnV0ZSgnaWQnLCAneG1sdHYtaWQtcGlja2VyLWRhdGFsaXN0Jyk7DQogICAgLy8gQWRkIG5ldyBYTUxUViBJRCBzZWxlY3Rpb24gYm94IHRvIGl0J3MgcGFyZW50DQogICAgeG1sVHZJZFBpY2tlclBhcmVudC5hcHBlbmRDaGlsZCh4bWxUdklkQ29udGFpbmVyKTsNCiAgICBjaGVja1htbHR2Q2hhbm5lbChlcGdNYXBJZCwgeG1sVHZJZElucHV0LnZhbHVlLCBuZXdYbWxUdkZpbGUpOw0KfQ0KZnVuY3Rpb24gY2hlY2tYbWx0dkNoYW5uZWwoZXBnTWFwSWQsIG5ld1htbFR2SWQsIHhtbFR2RmlsZSkgew0KICAgIGNvbnN0IGNoYW5uZWxBY3RpdmVDYiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdhY3RpdmUnKTsNCiAgICBjb25zdCBjaGFubmVsQWN0aXZlID0gbmV3WG1sVHZJZCAhPSAnLSc7DQogICAgY2hhbm5lbEFjdGl2ZUNiLmNoZWNrZWQgPSBjaGFubmVsQWN0aXZlOw0KICAgIGNoYW5uZWxBY3RpdmVDYi5jbGFzc05hbWUgPSAnY2hhbmdlZCc7DQogICAgaWYgKHhtbFR2RmlsZSAhPSAneFRlVmUgRHVtbXknICYmIGNoYW5uZWxBY3RpdmUgPT0gdHJ1ZSkgew0KICAgICAgICBjaGFuZ2VDaGFubmVsTG9nbyhlcGdNYXBJZCk7DQogICAgICAgIHJldHVybjsNCiAgICB9DQogICAgaWYgKHhtbFR2RmlsZSA9PSAneFRlVmUgRHVtbXknKSB7DQogICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd1cGRhdGUtaWNvbicpLmNoZWNrZWQgPSBmYWxzZTsNCiAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3VwZGF0ZS1pY29uJykuY2xhc3NOYW1lID0gJ2NoYW5nZWQnOw0KICAgIH0NCn0NCmZ1bmN0aW9uIGNoYW5nZUNoYW5uZWxMb2dvKGVwZ01hcElkKSB7DQogICAgY29uc3QgY2hhbm5lbCA9IFNFUlZFUlsneGVwZyddWydlcGdNYXBwaW5nJ11bZXBnTWFwSWRdOw0KICAgIGNvbnN0IHhtbFR2RmlsZVNlbGVjdCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdwb3B1cC14bWx0dicpOw0KICAgIGNvbnN0IHhtbFR2RmlsZSA9IHhtbFR2RmlsZVNlbGVjdC5vcHRpb25zW3htbFR2RmlsZVNlbGVjdC5zZWxlY3RlZEluZGV4XS52YWx1ZTsNCiAgICBjb25zdCB4bWxUdklkSW5wdXQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgneG1sdHYtaWQtcGlja2VyLWlucHV0Jyk7DQogICAgY29uc3QgbmV3WG1sVHZJZCA9IHhtbFR2SWRJbnB1dC52YWx1ZTsNCiAgICBjb25zdCB1cGRhdGVMb2dvID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3VwZGF0ZS1pY29uJykuY2hlY2tlZDsNCiAgICBsZXQgbG9nbzsNCiAgICBpZiAodXBkYXRlTG9nbyA9PSB0cnVlICYmIHhtbFR2RmlsZSAhPSAneFRlVmUgRHVtbXknKSB7DQogICAgICAgIGlmIChTRVJWRVJbJ3hlcGcnXVsneG1sdHZNYXAnXVt4bWxUdkZpbGVdLmhhc093blByb3BlcnR5KG5ld1htbFR2SWQpKSB7DQogICAgICAgICAgICBsb2dvID0gU0VSVkVSWyd4ZXBnJ11bJ3htbHR2TWFwJ11beG1sVHZGaWxlXVtuZXdYbWxUdklkXVsnaWNvbiddOw0KICAgICAgICB9DQogICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgbG9nbyA9IGNoYW5uZWxbJ3R2Zy1sb2dvJ107DQogICAgICAgIH0NCiAgICAgICAgdmFyIGxvZ29JbnB1dCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjaGFubmVsLWljb24nKTsNCiAgICAgICAgbG9nb0lucHV0LnZhbHVlID0gbG9nbzsNCiAgICAgICAgaWYgKEJVTEtfRURJVCA9PSBmYWxzZSkgew0KICAgICAgICAgICAgbG9nb0lucHV0LmNsYXNzTmFtZSA9ICdjaGFuZ2VkJzsNCiAgICAgICAgfQ0KICAgIH0NCn0NCmZ1bmN0aW9uIHNhdmVQb3B1cERhdGEoZGF0YVR5cGUsIGlkLCByZW1vdmUsIG9wdGlvbikgew0KICAgIGlmIChkYXRhVHlwZSA9PSAibWFwcGluZyIpIHsNCiAgICAgICAgbGV0IGRhdGEgPSB7fTsNCiAgICAgICAgbGV0IGNtZCA9ICJzYXZlRXBnTWFwcGluZyI7DQogICAgICAgIGRhdGFbImVwZ01hcHBpbmciXSA9IFNFUlZFUlsieGVwZyJdWyJlcGdNYXBwaW5nIl07DQogICAgICAgIGxldCBzZXJ2ZXIgPSBuZXcgU2VydmVyKGNtZCk7DQogICAgICAgIHNlcnZlci5yZXF1ZXN0KGRhdGEpOw0KICAgICAgICBkZWxldGUgVU5ET1siZXBnTWFwcGluZyJdOw0KICAgICAgICByZXR1cm47DQogICAgfQ0KICAgIGxldCBkaXYgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicG9wdXAtY3VzdG9tIik7DQogICAgbGV0IGlucHV0cyA9IGRpdi5nZXRFbGVtZW50c0J5VGFnTmFtZSgiVEFCTEUiKVswXS5nZXRFbGVtZW50c0J5VGFnTmFtZSgiSU5QVVQiKTsNCiAgICBsZXQgc2VsZWN0cyA9IGRpdi5nZXRFbGVtZW50c0J5VGFnTmFtZSgiVEFCTEUiKVswXS5nZXRFbGVtZW50c0J5VGFnTmFtZSgiU0VMRUNUIik7DQogICAgbGV0IGlucHV0ID0ge307DQogICAgbGV0IGNvbmZpcm1Nc2c7DQogICAgZm9yIChsZXQgaSA9IDA7IGkgPCBzZWxlY3RzLmxlbmd0aDsgaSsrKSB7DQogICAgICAgIHZhciBuYW1lOw0KICAgICAgICBuYW1lID0gc2VsZWN0c1tpXS5uYW1lOw0KICAgICAgICB2YXIgdmFsdWUgPSBzZWxlY3RzW2ldLnZhbHVlOw0KICAgICAgICBzd2l0Y2ggKG5hbWUpIHsNCiAgICAgICAgICAgIGNhc2UgInR1bmVyIjoNCiAgICAgICAgICAgICAgICBpbnB1dFtuYW1lXSA9IHBhcnNlSW50KHZhbHVlKTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICAgICAgaW5wdXRbbmFtZV0gPSB2YWx1ZTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgfQ0KICAgIH0NCiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGlucHV0cy5sZW5ndGg7IGkrKykgew0KICAgICAgICBzd2l0Y2ggKGlucHV0c1tpXS50eXBlKSB7DQogICAgICAgICAgICBjYXNlICJjaGVja2JveCI6DQogICAgICAgICAgICAgICAgbmFtZSA9IGlucHV0c1tpXS5uYW1lOw0KICAgICAgICAgICAgICAgIGlucHV0W25hbWVdID0gaW5wdXRzW2ldLmNoZWNrZWQ7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ0ZXh0IjoNCiAgICAgICAgICAgIGNhc2UgImhpZGRlbiI6DQogICAgICAgICAgICBjYXNlICJwYXNzd29yZCI6DQogICAgICAgICAgICAgICAgbmFtZSA9IGlucHV0c1tpXS5uYW1lOw0KICAgICAgICAgICAgICAgIHN3aXRjaCAobmFtZSkgew0KICAgICAgICAgICAgICAgICAgICBjYXNlICJ0dW5lciI6DQogICAgICAgICAgICAgICAgICAgICAgICBpbnB1dFtuYW1lXSA9IHBhcnNlSW50KGlucHV0c1tpXS52YWx1ZSk7DQogICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgICAgICAgICAgICAgIGlucHV0W25hbWVdID0gaW5wdXRzW2ldLnZhbHVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICB9DQogICAgfQ0KICAgIGxldCBkYXRhID0ge307DQogICAgbGV0IGNtZDsNCiAgICBpZiAocmVtb3ZlID09IHRydWUpIHsNCiAgICAgICAgaW5wdXRbImRlbGV0ZSJdID0gdHJ1ZTsNCiAgICB9DQogICAgc3dpdGNoIChkYXRhVHlwZSkgew0KICAgICAgICBjYXNlICJ1c2VycyI6DQogICAgICAgICAgICBjb25maXJtTXNnID0gIkRlbGV0ZSB0aGlzIHVzZXI/IjsNCiAgICAgICAgICAgIGlmIChpZCA9PSAiLSIpIHsNCiAgICAgICAgICAgICAgICBjbWQgPSAic2F2ZU5ld1VzZXIiOw0KICAgICAgICAgICAgICAgIGRhdGFbInVzZXJEYXRhIl0gPSBpbnB1dDsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgICAgIGNtZCA9ICJzYXZlVXNlckRhdGEiOw0KICAgICAgICAgICAgICAgIGxldCBkID0ge307DQogICAgICAgICAgICAgICAgZFtpZF0gPSBpbnB1dDsNCiAgICAgICAgICAgICAgICBkYXRhWyJ1c2VyRGF0YSJdID0gZDsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJtM3UiOg0KICAgICAgICAgICAgY29uZmlybU1zZyA9ICJEZWxldGUgdGhpcyBwbGF5bGlzdD8iOw0KICAgICAgICAgICAgc3dpdGNoIChvcHRpb24pIHsNCiAgICAgICAgICAgICAgICAvLyBQb3B1cDogU2F2ZQ0KICAgICAgICAgICAgICAgIGNhc2UgMDoNCiAgICAgICAgICAgICAgICAgICAgY21kID0gInNhdmVGaWxlc00zVSI7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIC8vIFBvcHVwOiBVcGRhdGUNCiAgICAgICAgICAgICAgICBjYXNlIDE6DQogICAgICAgICAgICAgICAgICAgIGNtZCA9ICJ1cGRhdGVGaWxlTTNVIjsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBkYXRhWyJmaWxlcyJdID0ge307DQogICAgICAgICAgICBkYXRhWyJmaWxlcyJdW2RhdGFUeXBlXSA9IHt9Ow0KICAgICAgICAgICAgZGF0YVsiZmlsZXMiXVtkYXRhVHlwZV1baWRdID0gaW5wdXQ7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSAiaGRociI6DQogICAgICAgICAgICBjb25maXJtTXNnID0gIkRlbGV0ZSB0aGlzIEhESG9tZVJ1biB0dW5lcj8iOw0KICAgICAgICAgICAgc3dpdGNoIChvcHRpb24pIHsNCiAgICAgICAgICAgICAgICAvLyBQb3B1cDogU2F2ZQ0KICAgICAgICAgICAgICAgIGNhc2UgMDoNCiAgICAgICAgICAgICAgICAgICAgY21kID0gInNhdmVGaWxlc0hESFIiOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICAvLyBQb3B1cDogVXBkYXRlDQogICAgICAgICAgICAgICAgY2FzZSAxOg0KICAgICAgICAgICAgICAgICAgICBjbWQgPSAidXBkYXRlRmlsZUhESFIiOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGRhdGFbImZpbGVzIl0gPSB7fTsNCiAgICAgICAgICAgIGRhdGFbImZpbGVzIl1bZGF0YVR5cGVdID0ge307DQogICAgICAgICAgICBkYXRhWyJmaWxlcyJdW2RhdGFUeXBlXVtpZF0gPSBpbnB1dDsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJ4bWx0diI6DQogICAgICAgICAgICBjb25maXJtTXNnID0gIkRlbGV0ZSB0aGlzIFhNTFRWIGZpbGU/IjsNCiAgICAgICAgICAgIHN3aXRjaCAob3B0aW9uKSB7DQogICAgICAgICAgICAgICAgLy8gUG9wdXA6IFNhdmUNCiAgICAgICAgICAgICAgICBjYXNlIDA6DQogICAgICAgICAgICAgICAgICAgIGNtZCA9ICJzYXZlRmlsZXNYTUxUViI7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIC8vIFBvcHVwOiBVcGRhdGUNCiAgICAgICAgICAgICAgICBjYXNlIDE6DQogICAgICAgICAgICAgICAgICAgIGNtZCA9ICJ1cGRhdGVGaWxlWE1MVFYiOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGRhdGFbImZpbGVzIl0gPSB7fTsNCiAgICAgICAgICAgIGRhdGFbImZpbGVzIl1bZGF0YVR5cGVdID0ge307DQogICAgICAgICAgICBkYXRhWyJmaWxlcyJdW2RhdGFUeXBlXVtpZF0gPSBpbnB1dDsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJmaWx0ZXIiOg0KICAgICAgICAgICAgY29uZmlybU1zZyA9ICJEZWxldGUgdGhpcyBmaWx0ZXI/IjsNCiAgICAgICAgICAgIGNtZCA9ICJzYXZlRmlsdGVyIjsNCiAgICAgICAgICAgIGRhdGFbImZpbHRlciJdID0ge307DQogICAgICAgICAgICBkYXRhWyJmaWx0ZXIiXVtpZF0gPSBpbnB1dDsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBkZWZhdWx0Og0KICAgICAgICAgICAgcmV0dXJuOw0KICAgIH0NCiAgICBpZiAocmVtb3ZlID09IHRydWUpIHsNCiAgICAgICAgaWYgKCFjb25maXJtKGNvbmZpcm1Nc2cpKSB7DQogICAgICAgICAgICBzaG93RWxlbWVudCgicG9wdXAiLCBmYWxzZSk7DQogICAgICAgICAgICByZXR1cm47DQogICAgICAgIH0NCiAgICB9DQogICAgbGV0IHNlcnZlciA9IG5ldyBTZXJ2ZXIoY21kKTsNCiAgICBzZXJ2ZXIucmVxdWVzdChkYXRhKTsNCn0NCmZ1bmN0aW9uIGRvbmVQb3B1cERhdGEoZGF0YVR5cGUsIGlkc1N0cikgew0KICAgIGxldCBpZHMgPSBpZHNTdHIuc3BsaXQoJywnKTsNCiAgICBsZXQgZGl2ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInBvcHVwLWN1c3RvbSIpOw0KICAgIGxldCBpbnB1dHMgPSBkaXYuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSgiY2hhbmdlZCIpOw0KICAgIGlkcy5mb3JFYWNoKGlkID0+IHsNCiAgICAgICAgbGV0IGlucHV0Ow0KICAgICAgICBpbnB1dCA9IFNFUlZFUlsieGVwZyJdWyJlcGdNYXBwaW5nIl1baWRdOw0KICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGlucHV0cy5sZW5ndGg7IGkrKykgew0KICAgICAgICAgICAgbGV0IG5hbWU7DQogICAgICAgICAgICBsZXQgdmFsdWU7DQogICAgICAgICAgICBzd2l0Y2ggKGlucHV0c1tpXS50YWdOYW1lKSB7DQogICAgICAgICAgICAgICAgY2FzZSAiSU5QVVQiOg0KICAgICAgICAgICAgICAgICAgICBzd2l0Y2ggKGlucHV0c1tpXS50eXBlKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBjYXNlICJjaGVja2JveCI6DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZSA9IGlucHV0c1tpXS5uYW1lOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlID0gaW5wdXRzW2ldLmNoZWNrZWQ7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5wdXRbbmFtZV0gPSB2YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgInRleHQiOg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWUgPSBpbnB1dHNbaV0ubmFtZTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IGlucHV0c1tpXS52YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnB1dFtuYW1lXSA9IHZhbHVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgIlNFTEVDVCI6DQogICAgICAgICAgICAgICAgICAgIG5hbWUgPSBpbnB1dHNbaV0ubmFtZTsNCiAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSBpbnB1dHNbaV0udmFsdWU7DQogICAgICAgICAgICAgICAgICAgIGlucHV0W25hbWVdID0gdmFsdWU7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgc3dpdGNoIChuYW1lKSB7DQogICAgICAgICAgICAgICAgY2FzZSAidHZnLWxvZ28iOg0KICAgICAgICAgICAgICAgICAgICAvLyhkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkuY2hpbGROb2Rlc1syXS5maXJzdENoaWxkIGFzIEhUTUxFbGVtZW50KS5zZXRBdHRyaWJ1dGUoInNyYyIsIHZhbHVlKQ0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBjYXNlICJ4LW5hbWUiOg0KICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkuY2hpbGROb2Rlc1szXS5maXJzdENoaWxkLmlubmVySFRNTCA9IHZhbHVlOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBjYXNlICJ4LWNhdGVnb3J5IjoNCiAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpLmNoaWxkTm9kZXNbM10uZmlyc3RDaGlsZC5jbGFzc05hbWUgPSB2YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAidXBkYXRlLWNoYW5uZWwtbmFtZS1yZWdleCI6DQogICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5jaGlsZE5vZGVzWzRdLmZpcnN0Q2hpbGQuaW5uZXJIVE1MID0gdmFsdWU7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgIngtZ3JvdXAtdGl0bGUiOg0KICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkuY2hpbGROb2Rlc1s2XS5maXJzdENoaWxkLmlubmVySFRNTCA9IHZhbHVlOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBjYXNlICJ4LXhtbHR2LWZpbGUiOg0KICAgICAgICAgICAgICAgICAgICBpZiAodmFsdWUgIT0gInhUZVZlIER1bW15IiAmJiB2YWx1ZSAhPSAiLSIpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlID0gZ2V0VmFsdWVGcm9tUHJvdmlkZXJGaWxlKHZhbHVlLCAieG1sdHYiLCAibmFtZSIpOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIGlmICh2YWx1ZSA9PSAiLSIpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGlucHV0WyJ4LWFjdGl2ZSJdID0gZmFsc2U7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpLmNoaWxkTm9kZXNbN10uZmlyc3RDaGlsZC5pbm5lckhUTUwgPSB2YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAieC1tYXBwaW5nIjoNCiAgICAgICAgICAgICAgICAgICAgaWYgKHZhbHVlID09ICItIikgew0KICAgICAgICAgICAgICAgICAgICAgICAgaW5wdXRbIngtYWN0aXZlIl0gPSBmYWxzZTsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkuY2hpbGROb2Rlc1s4XS5maXJzdENoaWxkLmlubmVySFRNTCA9IHZhbHVlOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBjYXNlICJ4LXRpbWVzaGlmdCI6DQogICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5jaGlsZE5vZGVzWzldLmZpcnN0Q2hpbGQuaW5uZXJIVE1MID0gdmFsdWU7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICB9DQogICAgICAgICAgICBjcmVhdGVTZWFyY2hPYmooKTsNCiAgICAgICAgICAgIHNlYXJjaEluTWFwcGluZygpOw0KICAgICAgICB9DQogICAgICAgIGlmIChpbnB1dFsieC1hY3RpdmUiXSA9PSBmYWxzZSkgew0KICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpLmNsYXNzTmFtZSA9ICJub3RBY3RpdmVFUEciOw0KICAgICAgICB9DQogICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpLmNsYXNzTmFtZSA9ICJhY3RpdmVFUEciOw0KICAgICAgICB9DQogICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5jaGlsZE5vZGVzWzJdLmZpcnN0Q2hpbGQuc2V0QXR0cmlidXRlKCJzcmMiLCBpbnB1dFsidHZnLWxvZ28iXSk7DQogICAgfSk7DQogICAgc2hvd0VsZW1lbnQoInBvcHVwIiwgZmFsc2UpOw0KICAgIHJldHVybjsNCn0NCmZ1bmN0aW9uIHNob3dQcmV2aWV3KGVsZW1lbnQpIHsNCiAgICBsZXQgZGl2ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm15U3RyZWFtc0JveCIpOw0KICAgIHN3aXRjaCAoZWxlbWVudCkgew0KICAgICAgICBjYXNlIGZhbHNlOg0KICAgICAgICAgICAgZGl2LmNsYXNzTmFtZSA9ICJub3RWaXNpYmxlIjsNCiAgICAgICAgICAgIHJldHVybjsNCiAgICB9DQogICAgbGV0IHN0cmVhbXMgPSBbImFjdGl2ZVN0cmVhbXMiLCAiaW5hY3RpdmVTdHJlYW1zIl07DQogICAgc3RyZWFtcy5mb3JFYWNoKHByZXZpZXcgPT4gew0KICAgICAgICBsZXQgdGFibGUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChwcmV2aWV3KTsNCiAgICAgICAgdGFibGUuaW5uZXJIVE1MID0gIiI7DQogICAgICAgIGxldCBvYmogPSBTRVJWRVJbImRhdGEiXVsiU3RyZWFtUHJldmlld1VJIl1bcHJldmlld107DQogICAgICAgIG9iai5mb3JFYWNoKGNoYW5uZWwgPT4gew0KICAgICAgICAgICAgbGV0IHRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVFIiKTsNCiAgICAgICAgICAgIGxldCB0ZEtleSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICBsZXQgdGRWYWwgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgdGRLZXkuY2xhc3NOYW1lID0gInRkS2V5IjsNCiAgICAgICAgICAgIHRkVmFsLmNsYXNzTmFtZSA9ICJ0ZFZhbCI7DQogICAgICAgICAgICBzd2l0Y2ggKHByZXZpZXcpIHsNCiAgICAgICAgICAgICAgICBjYXNlICJhY3RpdmVTdHJlYW1zIjoNCiAgICAgICAgICAgICAgICAgICAgdGRLZXkuaW5uZXJUZXh0ID0gIkNoYW5uZWw6ICgrKSI7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgImluYWN0aXZlU3RyZWFtcyI6DQogICAgICAgICAgICAgICAgICAgIHRkS2V5LmlubmVyVGV4dCA9ICJDaGFubmVsOiAoLSkiOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIHRkVmFsLmlubmVyVGV4dCA9IGNoYW5uZWw7DQogICAgICAgICAgICB0ci5hcHBlbmRDaGlsZCh0ZEtleSk7DQogICAgICAgICAgICB0ci5hcHBlbmRDaGlsZCh0ZFZhbCk7DQogICAgICAgICAgICB0YWJsZS5hcHBlbmRDaGlsZCh0cik7DQogICAgICAgIH0pOw0KICAgIH0pOw0KICAgIHNob3dFbGVtZW50KCJsb2FkaW5nIiwgZmFsc2UpOw0KICAgIGRpdi5jbGFzc05hbWUgPSAidmlzaWJsZSI7DQogICAgcmV0dXJuOw0KfQ0K" webUI["html/js/network_ts.js"] = "Y2xhc3MgU2VydmVyIHsNCiAgICBjb25zdHJ1Y3RvcihjbWQpIHsNCiAgICAgICAgdGhpcy5jbWQgPSBjbWQ7DQogICAgfQ0KICAgIHJlcXVlc3QoZGF0YSkgew0KICAgICAgICBpZiAoU0VSVkVSX0NPTk5FQ1RJT04gPT0gdHJ1ZSkgew0KICAgICAgICAgICAgcmV0dXJuOw0KICAgICAgICB9DQogICAgICAgIFNFUlZFUl9DT05ORUNUSU9OID0gdHJ1ZTsNCiAgICAgICAgaWYgKHRoaXMuY21kICE9ICJ1cGRhdGVMb2ciKSB7DQogICAgICAgICAgICBzaG93RWxlbWVudCgibG9hZGluZyIsIHRydWUpOw0KICAgICAgICAgICAgVU5ETyA9IG5ldyBPYmplY3QoKTsNCiAgICAgICAgfQ0KICAgICAgICBzd2l0Y2ggKHdpbmRvdy5sb2NhdGlvbi5wcm90b2NvbCkgew0KICAgICAgICAgICAgY2FzZSAiaHR0cDoiOg0KICAgICAgICAgICAgICAgIHRoaXMucHJvdG9jb2wgPSAid3M6Ly8iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiaHR0cHM6IjoNCiAgICAgICAgICAgICAgICB0aGlzLnByb3RvY29sID0gIndzczovLyI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIH0NCiAgICAgICAgdmFyIHVybCA9IHRoaXMucHJvdG9jb2wgKyB3aW5kb3cubG9jYXRpb24uaG9zdG5hbWUgKyAiOiIgKyB3aW5kb3cubG9jYXRpb24ucG9ydCArICIvZGF0YS8iICsgIj9Ub2tlbj0iICsgZ2V0Q29va2llKCJUb2tlbiIpOw0KICAgICAgICBkYXRhWyJjbWQiXSA9IHRoaXMuY21kOw0KICAgICAgICB2YXIgd3MgPSBuZXcgV2ViU29ja2V0KHVybCk7DQogICAgICAgIHdzLm9ub3BlbiA9IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgICAgIFdTX0FWQUlMQUJMRSA9IHRydWU7DQogICAgICAgICAgICB0aGlzLnNlbmQoSlNPTi5zdHJpbmdpZnkoZGF0YSkpOw0KICAgICAgICB9Ow0KICAgICAgICB3cy5vbmVycm9yID0gZnVuY3Rpb24gKHdzRXJyRXZ0KSB7DQogICAgICAgICAgICBjb25zb2xlLmxvZygiTm8gd2Vic29ja2V0IGNvbm5lY3Rpb24gdG8geFRlVmUgY291bGQgYmUgZXN0YWJsaXNoZWQuIENoZWNrIHlvdXIgbmV0d29yayBjb25maWd1cmF0aW9uLiIpOw0KICAgICAgICAgICAgU0VSVkVSX0NPTk5FQ1RJT04gPSBmYWxzZTsNCiAgICAgICAgICAgIGlmIChXU19BVkFJTEFCTEUgPT0gZmFsc2UpIHsNCiAgICAgICAgICAgICAgICBhbGVydCgiTm8gd2Vic29ja2V0IGNvbm5lY3Rpb24gdG8geFRlVmUgY291bGQgYmUgZXN0YWJsaXNoZWQuIENoZWNrIHlvdXIgbmV0d29yayBjb25maWd1cmF0aW9uLiIpOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9Ow0KICAgICAgICB3cy5vbm1lc3NhZ2UgPSBmdW5jdGlvbiAod3NNZXNzYWdlRXZ0KSB7DQogICAgICAgICAgICBTRVJWRVJfQ09OTkVDVElPTiA9IGZhbHNlOw0KICAgICAgICAgICAgc2hvd0VsZW1lbnQoImxvYWRpbmciLCBmYWxzZSk7DQogICAgICAgICAgICBjb25zdCByZXNwb25zZSA9IEpTT04ucGFyc2Uod3NNZXNzYWdlRXZ0LmRhdGEpOw0KICAgICAgICAgICAgaWYgKHJlc3BvbnNlLmhhc093blByb3BlcnR5KCJ0b2tlbiIpKSB7DQogICAgICAgICAgICAgICAgZG9jdW1lbnQuY29va2llID0gIlRva2VuPSIgKyByZXNwb25zZVsidG9rZW4iXTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGlmIChyZXNwb25zZVsic3RhdHVzIl0gPT0gZmFsc2UpIHsNCiAgICAgICAgICAgICAgICBhbGVydChyZXNwb25zZVsiZXJyIl0pOw0KICAgICAgICAgICAgICAgIHJldHVybjsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGlmIChyZXNwb25zZS5oYXNPd25Qcm9wZXJ0eSgnb3BlbkxpbmsnKSkgew0KICAgICAgICAgICAgICAgIHdpbmRvdy5sb2NhdGlvbiA9IHJlc3BvbnNlWydvcGVuTGluayddOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgaWYgKHJlc3BvbnNlLmhhc093blByb3BlcnR5KCJyZWxvYWQiKSkgew0KICAgICAgICAgICAgICAgIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGlmIChyZXNwb25zZS5oYXNPd25Qcm9wZXJ0eSgiYWxlcnQiKSkgew0KICAgICAgICAgICAgICAgIGFsZXJ0KHJlc3BvbnNlWyJhbGVydCJdKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGlmIChyZXNwb25zZS5oYXNPd25Qcm9wZXJ0eSgibG9nb1VSTCIpKSB7DQogICAgICAgICAgICAgICAgdmFyIGRpdiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjaGFubmVsLWljb24iKTsNCiAgICAgICAgICAgICAgICBkaXYudmFsdWUgPSByZXNwb25zZVsibG9nb1VSTCJdOw0KICAgICAgICAgICAgICAgIGRpdi5jbGFzc05hbWUgPSAiY2hhbmdlZCI7DQogICAgICAgICAgICAgICAgcmV0dXJuOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgc3dpdGNoIChkYXRhWyJjbWQiXSkgew0KICAgICAgICAgICAgICAgIGNhc2UgInVwZGF0ZUxvZyI6DQogICAgICAgICAgICAgICAgICAgIFNFUlZFUlsibG9nIl0gPSByZXNwb25zZVsibG9nIl07DQogICAgICAgICAgICAgICAgICAgIGlmIChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29udGVudF9sb2ciKSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgc2hvd0xvZ3MoZmFsc2UpOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIHJldHVybjsNCiAgICAgICAgICAgICAgICBkZWZhdWx0Og0KICAgICAgICAgICAgICAgICAgICBTRVJWRVIgPSBuZXcgT2JqZWN0KCk7DQogICAgICAgICAgICAgICAgICAgIFNFUlZFUiA9IHJlc3BvbnNlOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGlmIChyZXNwb25zZS5oYXNPd25Qcm9wZXJ0eSgib3Blbk1lbnUiKSkgew0KICAgICAgICAgICAgICAgIHZhciBtZW51ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQocmVzcG9uc2VbIm9wZW5NZW51Il0pOw0KICAgICAgICAgICAgICAgIG1lbnUuY2xpY2soKTsNCiAgICAgICAgICAgICAgICBzaG93RWxlbWVudCgicG9wdXAiLCBmYWxzZSk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBpZiAocmVzcG9uc2UuaGFzT3duUHJvcGVydHkoInJlbG9hZCIpKSB7DQogICAgICAgICAgICAgICAgbG9jYXRpb24ucmVsb2FkKCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBpZiAocmVzcG9uc2UuaGFzT3duUHJvcGVydHkoIndpemFyZCIpKSB7DQogICAgICAgICAgICAgICAgY3JlYXRlTGF5b3V0KCk7DQogICAgICAgICAgICAgICAgY29uZmlndXJhdGlvbldpemFyZFtyZXNwb25zZVsid2l6YXJkIl1dLmNyZWF0ZVdpemFyZCgpOw0KICAgICAgICAgICAgICAgIHJldHVybjsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGNyZWF0ZUxheW91dCgpOw0KICAgICAgICB9Ow0KICAgIH0NCn0NCmZ1bmN0aW9uIGdldENvb2tpZShuYW1lKSB7DQogICAgdmFyIHZhbHVlID0gIjsgIiArIGRvY3VtZW50LmNvb2tpZTsNCiAgICB2YXIgcGFydHMgPSB2YWx1ZS5zcGxpdCgiOyAiICsgbmFtZSArICI9Iik7DQogICAgaWYgKHBhcnRzLmxlbmd0aCA9PSAyKSB7DQogICAgICAgIHJldHVybiBwYXJ0cy5wb3AoKS5zcGxpdCgiOyIpLnNoaWZ0KCk7DQogICAgfQ0KfQ0K" - webUI["html/js/settings_ts.js"] = "Y2xhc3MgU2V0dGluZ3NDYXRlZ29yeSB7DQogICAgY29uc3RydWN0b3IoKSB7DQogICAgICAgIHRoaXMuRG9jdW1lbnRJRCA9ICJjb250ZW50X3NldHRpbmdzIjsNCiAgICB9DQogICAgY3JlYXRlQ2F0ZWdvcnlIZWFkbGluZSh2YWx1ZSkgew0KICAgICAgICB2YXIgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIkg0Iik7DQogICAgICAgIGVsZW1lbnQuaW5uZXJIVE1MID0gdmFsdWU7DQogICAgICAgIHJldHVybiBlbGVtZW50Ow0KICAgIH0NCiAgICBjcmVhdGVIUigpIHsNCiAgICAgICAgdmFyIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJIUiIpOw0KICAgICAgICByZXR1cm4gZWxlbWVudDsNCiAgICB9DQogICAgY3JlYXRlU2V0dGluZ3Moc2V0dGluZ3NLZXkpIHsNCiAgICAgICAgdmFyIHNldHRpbmcgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJUUiIpOw0KICAgICAgICB2YXIgY29udGVudCA9IG5ldyBQb3B1cENvbnRlbnQoKTsNCiAgICAgICAgdmFyIGRhdGEgPSBTRVJWRVJbInNldHRpbmdzIl1bc2V0dGluZ3NLZXldOw0KICAgICAgICBzd2l0Y2ggKHNldHRpbmdzS2V5KSB7DQogICAgICAgICAgICAvLyBUZXh0IGlucHV0cw0KICAgICAgICAgICAgY2FzZSAidXBkYXRlIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLnVwZGF0ZS50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsICJ1cGRhdGUiLCBkYXRhLnRvU3RyaW5nKCkpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3suc2V0dGluZ3MudXBkYXRlLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJiYWNrdXAucGF0aCI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5iYWNrdXBQYXRoLnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgImJhY2t1cC5wYXRoIiwgZGF0YSk7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5zZXR0aW5ncy5iYWNrdXBQYXRoLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ0ZW1wLnBhdGgiOg0KICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MudGVtcFBhdGgudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCAidGVtcC5wYXRoIiwgZGF0YSk7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5zZXR0aW5ncy50bXBQYXRoLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ1c2VyLmFnZW50IjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLnVzZXJBZ2VudC50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsICJ1c2VyLmFnZW50IiwgZGF0YSk7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5zZXR0aW5ncy51c2VyQWdlbnQucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImJ1ZmZlci50aW1lb3V0IjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmJ1ZmZlclRpbWVvdXQudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCAiYnVmZmVyLnRpbWVvdXQiLCBkYXRhKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnNldHRpbmdzLmJ1ZmZlclRpbWVvdXQucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImZmbXBlZy5wYXRoIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmZmbXBlZ1BhdGgudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCAiZmZtcGVnLnBhdGgiLCBkYXRhKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnNldHRpbmdzLmZmbXBlZ1BhdGgucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImZmbXBlZy5vcHRpb25zIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmZmbXBlZ09wdGlvbnMudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCAiZmZtcGVnLm9wdGlvbnMiLCBkYXRhKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnNldHRpbmdzLmZmbXBlZ09wdGlvbnMucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInZsYy5wYXRoIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLnZsY1BhdGgudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCAidmxjLnBhdGgiLCBkYXRhKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnNldHRpbmdzLnZsY1BhdGgucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInZsYy5vcHRpb25zIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLnZsY09wdGlvbnMudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCAidmxjLm9wdGlvbnMiLCBkYXRhKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnNldHRpbmdzLnZsY09wdGlvbnMucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIC8vIENoZWNrYm94ZXMNCiAgICAgICAgICAgIGNhc2UgInRsc01vZGUiOg0KICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MudGxzTW9kZS50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChzZXR0aW5nc0tleSk7DQogICAgICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGE7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiZGlzYWxsb3dVUkxEdXBsaWNhdGVzIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmRpc2FsbG93VVJMRHVwbGljYXRlcy50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChzZXR0aW5nc0tleSk7DQogICAgICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGE7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiYXV0aGVudGljYXRpb24ud2ViIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmF1dGhlbnRpY2F0aW9uV0VCLnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KHNldHRpbmdzS2V5KTsNCiAgICAgICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJhdXRoZW50aWNhdGlvbi5wbXMiOg0KICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MuYXV0aGVudGljYXRpb25QTVMudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goc2V0dGluZ3NLZXkpOw0KICAgICAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImF1dGhlbnRpY2F0aW9uLm0zdSI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5hdXRoZW50aWNhdGlvbk0zVS50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChzZXR0aW5nc0tleSk7DQogICAgICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGE7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiYXV0aGVudGljYXRpb24ueG1sIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmF1dGhlbnRpY2F0aW9uWE1MLnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KHNldHRpbmdzS2V5KTsNCiAgICAgICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJhdXRoZW50aWNhdGlvbi5hcGkiOg0KICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MuYXV0aGVudGljYXRpb25BUEkudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goc2V0dGluZ3NLZXkpOw0KICAgICAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImZpbGVzLnVwZGF0ZSI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5maWxlc1VwZGF0ZS50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChzZXR0aW5nc0tleSk7DQogICAgICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGE7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiY2FjaGUuaW1hZ2VzIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmNhY2hlSW1hZ2VzLnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KHNldHRpbmdzS2V5KTsNCiAgICAgICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ4ZXBnLnJlcGxhY2UubWlzc2luZy5pbWFnZXMiOg0KICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MucmVwbGFjZUVtcHR5SW1hZ2VzLnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KHNldHRpbmdzS2V5KTsNCiAgICAgICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJzdG9yZUJ1ZmZlckluUkFNIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLnN0b3JlQnVmZmVySW5SQU0udGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goc2V0dGluZ3NLZXkpOw0KICAgICAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInh0ZXZlQXV0b1VwZGF0ZSI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy54dGV2ZUF1dG9VcGRhdGUudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goc2V0dGluZ3NLZXkpOw0KICAgICAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImFwaSI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5hcGkudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goc2V0dGluZ3NLZXkpOw0KICAgICAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIC8vIFNlbGVjdA0KICAgICAgICAgICAgY2FzZSAiaG9zdElQIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmhvc3RJUC50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIHRleHQgPSBTRVJWRVJbImlwQWRkcmVzc2VzVjRIb3N0Il07DQogICAgICAgICAgICAgICAgdmFyIHZhbHVlcyA9IFNFUlZFUlsiaXBBZGRyZXNzZXNWNEhvc3QiXTsNCiAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCBkYXRhLCBzZXR0aW5nc0tleSk7DQogICAgICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKHNlbGVjdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ0dW5lciI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy50dW5lci50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIHRleHQgPSBuZXcgQXJyYXkoKTsNCiAgICAgICAgICAgICAgICB2YXIgdmFsdWVzID0gbmV3IEFycmF5KCk7DQogICAgICAgICAgICAgICAgZm9yICh2YXIgaSA9IDE7IGkgPD0gMTAwOyBpKyspIHsNCiAgICAgICAgICAgICAgICAgICAgdGV4dC5wdXNoKGkpOw0KICAgICAgICAgICAgICAgICAgICB2YWx1ZXMucHVzaChpKTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgdmFyIHNlbGVjdCA9IGNvbnRlbnQuY3JlYXRlU2VsZWN0KHRleHQsIHZhbHVlcywgZGF0YSwgc2V0dGluZ3NLZXkpOw0KICAgICAgICAgICAgICAgIHNlbGVjdC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChzZWxlY3QpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiZXBnU291cmNlIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmVwZ1NvdXJjZS50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIHRleHQgPSBbIlBNUyIsICJYRVBHIl07DQogICAgICAgICAgICAgICAgdmFyIHZhbHVlcyA9IFsiUE1TIiwgIlhFUEciXTsNCiAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCBkYXRhLCBzZXR0aW5nc0tleSk7DQogICAgICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKHNlbGVjdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJkZWZhdWx0TWlzc2luZ0VQRyI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5kZWZhdWx0TWlzc2luZ0VQRy50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIHRleHQgPSBbDQogICAgICAgICAgICAgICAgICAgICItIiwgIjMwIE1pbnV0ZXMgKDMwX01pbnV0ZXMpIiwgIjYwIE1pbnV0ZXMgKDYwX01pbnV0ZXMpIiwgIjkwIE1pbnV0ZXMgKDkwX01pbnV0ZXMpIiwNCiAgICAgICAgICAgICAgICAgICAgIjEyMCBNaW51dGVzICgxMjBfTWludXRlcykiLCAiMTgwIE1pbnV0ZXMgKDMwX01pbnV0ZXMpIiwgIjI0MCBNaW51dGVzICgzMF9NaW51dGVzKSIsICIzNjAgTWludXRlcyAoMzBfTWludXRlcykiDQogICAgICAgICAgICAgICAgXTsNCiAgICAgICAgICAgICAgICB2YXIgdmFsdWVzID0gWw0KICAgICAgICAgICAgICAgICAgICAiLSIsICIzMF9NaW51dGVzIiwgIjYwX01pbnV0ZXMiLCAiOTBfTWludXRlcyIsICIxMjBfTWludXRlcyIsICIxODBfTWludXRlcyIsICIyNDBfTWludXRlcyIsICIzNjBfTWludXRlcyINCiAgICAgICAgICAgICAgICBdOw0KICAgICAgICAgICAgICAgIHZhciBzZWxlY3QgPSBjb250ZW50LmNyZWF0ZVNlbGVjdCh0ZXh0LCB2YWx1ZXMsIGRhdGEsIHNldHRpbmdzS2V5KTsNCiAgICAgICAgICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQoc2VsZWN0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImJhY2t1cC5rZWVwIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmJhY2t1cEtlZXAudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciB0ZXh0ID0gWyI1IiwgIjEwIiwgIjIwIiwgIjMwIiwgIjQwIiwgIjUwIl07DQogICAgICAgICAgICAgICAgdmFyIHZhbHVlcyA9IFsiNSIsICIxMCIsICIyMCIsICIzMCIsICI0MCIsICI1MCJdOw0KICAgICAgICAgICAgICAgIHZhciBzZWxlY3QgPSBjb250ZW50LmNyZWF0ZVNlbGVjdCh0ZXh0LCB2YWx1ZXMsIGRhdGEsIHNldHRpbmdzS2V5KTsNCiAgICAgICAgICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQoc2VsZWN0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImJ1ZmZlci5zaXplLmtiIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmJ1ZmZlclNpemUudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciB0ZXh0ID0gWyIwLjUgTUIiLCAiMSBNQiIsICIyIE1CIiwgIjMgTUIiLCAiNCBNQiIsICI1IE1CIiwgIjYgTUIiLCAiNyBNQiIsICI4IE1CIl07DQogICAgICAgICAgICAgICAgdmFyIHZhbHVlcyA9IFsiNTEyIiwgIjEwMjQiLCAiMjA0OCIsICIzMDcyIiwgIjQwOTYiLCAiNTEyMCIsICI2MTQ0IiwgIjcxNjgiLCAiODE5MiJdOw0KICAgICAgICAgICAgICAgIHZhciBzZWxlY3QgPSBjb250ZW50LmNyZWF0ZVNlbGVjdCh0ZXh0LCB2YWx1ZXMsIGRhdGEsIHNldHRpbmdzS2V5KTsNCiAgICAgICAgICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQoc2VsZWN0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImJ1ZmZlciI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5zdHJlYW1CdWZmZXJpbmcudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciB0ZXh0ID0gWyJ7ey5zZXR0aW5ncy5zdHJlYW1CdWZmZXJpbmcuaW5mb19mYWxzZX19IiwgInhUZVZlOiAoe3suc2V0dGluZ3Muc3RyZWFtQnVmZmVyaW5nLmluZm9feHRldmV9fSkiLCAiRkZtcGVnOiAoe3suc2V0dGluZ3Muc3RyZWFtQnVmZmVyaW5nLmluZm9fZmZtcGVnfX0pIiwgIlZMQzogKHt7LnNldHRpbmdzLnN0cmVhbUJ1ZmZlcmluZy5pbmZvX3ZsY319KSJdOw0KICAgICAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBbIi0iLCAieHRldmUiLCAiZmZtcGVnIiwgInZsYyJdOw0KICAgICAgICAgICAgICAgIHZhciBzZWxlY3QgPSBjb250ZW50LmNyZWF0ZVNlbGVjdCh0ZXh0LCB2YWx1ZXMsIGRhdGEsIHNldHRpbmdzS2V5KTsNCiAgICAgICAgICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQoc2VsZWN0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInVkcHh5IjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLnVkcHh5LnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgInVkcHh5IiwgZGF0YSk7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5zZXR0aW5ncy51ZHB4eS5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICB9DQogICAgICAgIHJldHVybiBzZXR0aW5nOw0KICAgIH0NCiAgICBjcmVhdGVEZXNjcmlwdGlvbihzZXR0aW5nc0tleSkgew0KICAgICAgICB2YXIgZGVzY3JpcHRpb24gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJUUiIpOw0KICAgICAgICB2YXIgdGV4dDsNCiAgICAgICAgc3dpdGNoIChzZXR0aW5nc0tleSkgew0KICAgICAgICAgICAgY2FzZSAidGxzTW9kZSI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy50bHNNb2RlLmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiZGlzYWxsb3dVUkxEdXBsaWNhdGVzIjoNCiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLmRpc2FsbG93VVJMRHVwbGljYXRlcy5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImF1dGhlbnRpY2F0aW9uLndlYiI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5hdXRoZW50aWNhdGlvbldFQi5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImF1dGhlbnRpY2F0aW9uLm0zdSI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5hdXRoZW50aWNhdGlvbk0zVS5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImF1dGhlbnRpY2F0aW9uLnBtcyI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5hdXRoZW50aWNhdGlvblBNUy5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImF1dGhlbnRpY2F0aW9uLnhtbCI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5hdXRoZW50aWNhdGlvblhNTC5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImF1dGhlbnRpY2F0aW9uLmFwaSI6DQogICAgICAgICAgICAgICAgaWYgKFNFUlZFUlsic2V0dGluZ3MiXVsiYXV0aGVudGljYXRpb24ud2ViIl0gPT0gdHJ1ZSkgew0KICAgICAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLmF1dGhlbnRpY2F0aW9uQVBJLmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInh0ZXZlQXV0b1VwZGF0ZSI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy54dGV2ZUF1dG9VcGRhdGUuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJiYWNrdXAua2VlcCI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5iYWNrdXBLZWVwLmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiYmFja3VwLnBhdGgiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MuYmFja3VwUGF0aC5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInRlbXAucGF0aCI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy50ZW1wUGF0aC5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImJ1ZmZlciI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5zdHJlYW1CdWZmZXJpbmcuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJidWZmZXIuc2l6ZS5rYiI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5idWZmZXJTaXplLmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAic3RvcmVCdWZmZXJJblJBTSI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5zdG9yZUJ1ZmZlckluUkFNLmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiYnVmZmVyLnRpbWVvdXQiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MuYnVmZmVyVGltZW91dC5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInVzZXIuYWdlbnQiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MudXNlckFnZW50LmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiZmZtcGVnLnBhdGgiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MuZmZtcGVnUGF0aC5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImZmbXBlZy5vcHRpb25zIjoNCiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLmZmbXBlZ09wdGlvbnMuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ2bGMucGF0aCI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy52bGNQYXRoLmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAidmxjLm9wdGlvbnMiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MudmxjT3B0aW9ucy5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImVwZ1NvdXJjZSI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5lcGdTb3VyY2UuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJob3N0SVAiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MuaG9zdElQLmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAidHVuZXIiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MudHVuZXIuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ1cGRhdGUiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MudXBkYXRlLmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiYXBpIjoNCiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLmFwaS5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImRlZmF1bHRNaXNzaW5nRVBHIjoNCiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLmRlZmF1bHRNaXNzaW5nRVBHLmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiZmlsZXMudXBkYXRlIjoNCiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLmZpbGVzVXBkYXRlLmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiY2FjaGUuaW1hZ2VzIjoNCiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLmNhY2hlSW1hZ2VzLmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAieGVwZy5yZXBsYWNlLm1pc3NpbmcuaW1hZ2VzIjoNCiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLnJlcGxhY2VFbXB0eUltYWdlcy5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInVkcHh5IjoNCiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLnVkcHh5LmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgICAgICB0ZXh0ID0gIiI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIH0NCiAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAiIjsNCiAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICB2YXIgcHJlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiUFJFIik7DQogICAgICAgIHByZS5pbm5lckhUTUwgPSB0ZXh0Ow0KICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKHByZSk7DQogICAgICAgIGRlc2NyaXB0aW9uLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgIGRlc2NyaXB0aW9uLmFwcGVuZENoaWxkKHRkUmlnaHQpOw0KICAgICAgICByZXR1cm4gZGVzY3JpcHRpb247DQogICAgfQ0KfQ0KY2xhc3MgU2V0dGluZ3NDYXRlZ29yeUl0ZW0gZXh0ZW5kcyBTZXR0aW5nc0NhdGVnb3J5IHsNCiAgICBjb25zdHJ1Y3RvcihoZWFkbGluZSwgc2V0dGluZ3NLZXlzKSB7DQogICAgICAgIHN1cGVyKCk7DQogICAgICAgIHRoaXMuaGVhZGxpbmUgPSBoZWFkbGluZTsNCiAgICAgICAgdGhpcy5zZXR0aW5nc0tleXMgPSBzZXR0aW5nc0tleXM7DQogICAgfQ0KICAgIGNyZWF0ZUNhdGVnb3J5KCkgew0KICAgICAgICB2YXIgaGVhZGxpbmUgPSB0aGlzLmNyZWF0ZUNhdGVnb3J5SGVhZGxpbmUodGhpcy5oZWFkbGluZSk7DQogICAgICAgIHZhciBzZXR0aW5nc0tleXMgPSB0aGlzLnNldHRpbmdzS2V5czsNCiAgICAgICAgdmFyIGRvYyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHRoaXMuRG9jdW1lbnRJRCk7DQogICAgICAgIGRvYy5hcHBlbmRDaGlsZChoZWFkbGluZSk7DQogICAgICAgIC8vIENyZWF0ZSBhIHRhYmxlIGZvciB0aGUgY2F0ZWdvcnkNCiAgICAgICAgdmFyIHRhYmxlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEFCTEUiKTsNCiAgICAgICAgdmFyIGtleXMgPSBzZXR0aW5nc0tleXMuc3BsaXQoIiwiKTsNCiAgICAgICAga2V5cy5mb3JFYWNoKHNldHRpbmdzS2V5ID0+IHsNCiAgICAgICAgICAgIHN3aXRjaCAoc2V0dGluZ3NLZXkpIHsNCiAgICAgICAgICAgICAgICBjYXNlICJhdXRoZW50aWNhdGlvbi5wbXMiOg0KICAgICAgICAgICAgICAgIGNhc2UgImF1dGhlbnRpY2F0aW9uLm0zdSI6DQogICAgICAgICAgICAgICAgY2FzZSAiYXV0aGVudGljYXRpb24ueG1sIjoNCiAgICAgICAgICAgICAgICBjYXNlICJhdXRoZW50aWNhdGlvbi5hcGkiOg0KICAgICAgICAgICAgICAgICAgICBpZiAoU0VSVkVSWyJzZXR0aW5ncyJdWyJhdXRoZW50aWNhdGlvbi53ZWIiXSA9PSBmYWxzZSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBkZWZhdWx0Og0KICAgICAgICAgICAgICAgICAgICB2YXIgaXRlbSA9IHRoaXMuY3JlYXRlU2V0dGluZ3Moc2V0dGluZ3NLZXkpOw0KICAgICAgICAgICAgICAgICAgICB2YXIgZGVzY3JpcHRpb24gPSB0aGlzLmNyZWF0ZURlc2NyaXB0aW9uKHNldHRpbmdzS2V5KTsNCiAgICAgICAgICAgICAgICAgICAgdGFibGUuYXBwZW5kQ2hpbGQoaXRlbSk7DQogICAgICAgICAgICAgICAgICAgIHRhYmxlLmFwcGVuZENoaWxkKGRlc2NyaXB0aW9uKTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICB9DQogICAgICAgIH0pOw0KICAgICAgICBkb2MuYXBwZW5kQ2hpbGQodGFibGUpOw0KICAgICAgICBkb2MuYXBwZW5kQ2hpbGQodGhpcy5jcmVhdGVIUigpKTsNCiAgICB9DQp9DQpmdW5jdGlvbiBzaG93U2V0dGluZ3MoKSB7DQogICAgZm9yIChsZXQgaSA9IDA7IGkgPCBzZXR0aW5nc0NhdGVnb3J5Lmxlbmd0aDsgaSsrKSB7DQogICAgICAgIHNldHRpbmdzQ2F0ZWdvcnlbaV0uY3JlYXRlQ2F0ZWdvcnkoKTsNCiAgICB9DQp9DQpmdW5jdGlvbiBzYXZlU2V0dGluZ3MoKSB7DQogICAgdmFyIGNtZCA9ICJzYXZlU2V0dGluZ3MiOw0KICAgIHZhciBkaXYgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29udGVudF9zZXR0aW5ncyIpOw0KICAgIHZhciBzZXR0aW5ncyA9IGRpdi5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCJjaGFuZ2VkIik7DQogICAgdmFyIG5ld1NldHRpbmdzID0gbmV3IE9iamVjdCgpOw0KICAgIGZvciAobGV0IGkgPSAwOyBpIDwgc2V0dGluZ3MubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgdmFyIG5hbWU7DQogICAgICAgIHZhciB2YWx1ZTsNCiAgICAgICAgc3dpdGNoIChzZXR0aW5nc1tpXS50YWdOYW1lKSB7DQogICAgICAgICAgICBjYXNlICJJTlBVVCI6DQogICAgICAgICAgICAgICAgc3dpdGNoIChzZXR0aW5nc1tpXS50eXBlKSB7DQogICAgICAgICAgICAgICAgICAgIGNhc2UgImNoZWNrYm94IjoNCiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWUgPSBzZXR0aW5nc1tpXS5uYW1lOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSBzZXR0aW5nc1tpXS5jaGVja2VkOw0KICAgICAgICAgICAgICAgICAgICAgICAgbmV3U2V0dGluZ3NbbmFtZV0gPSB2YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgICAgICBjYXNlICJ0ZXh0IjoNCiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWUgPSBzZXR0aW5nc1tpXS5uYW1lOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSBzZXR0aW5nc1tpXS52YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHN3aXRjaCAobmFtZSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgInVwZGF0ZSI6DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlID0gdmFsdWUuc3BsaXQoIiwiKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSB2YWx1ZS5maWx0ZXIoZnVuY3Rpb24gKGUpIHsgcmV0dXJuIGU7IH0pOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYXNlICJidWZmZXIudGltZW91dCI6DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlID0gcGFyc2VGbG9hdCh2YWx1ZSk7DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICBuZXdTZXR0aW5nc1tuYW1lXSA9IHZhbHVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiU0VMRUNUIjoNCiAgICAgICAgICAgICAgICBuYW1lID0gc2V0dGluZ3NbaV0ubmFtZTsNCiAgICAgICAgICAgICAgICB2YWx1ZSA9IHNldHRpbmdzW2ldLnZhbHVlOw0KICAgICAgICAgICAgICAgIC8vIElmIHRoZSB2YWx1ZSBpcyBhIG51bWJlciwgc3RvcmUgaXQgYXMgYSBudW1iZXINCiAgICAgICAgICAgICAgICBpZiAoaXNOYU4odmFsdWUpKSB7DQogICAgICAgICAgICAgICAgICAgIG5ld1NldHRpbmdzW25hbWVdID0gdmFsdWU7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgICAgICAgICBuZXdTZXR0aW5nc1tuYW1lXSA9IHBhcnNlSW50KHZhbHVlKTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIH0NCiAgICB9DQogICAgdmFyIGRhdGEgPSBuZXcgT2JqZWN0KCk7DQogICAgZGF0YVsic2V0dGluZ3MiXSA9IG5ld1NldHRpbmdzOw0KICAgIHZhciBzZXJ2ZXIgPSBuZXcgU2VydmVyKGNtZCk7DQogICAgc2VydmVyLnJlcXVlc3QoZGF0YSk7DQp9DQo=" + webUI["html/js/settings_ts.js"] = "Y2xhc3MgU2V0dGluZ3NDYXRlZ29yeSB7DQogICAgY29uc3RydWN0b3IoKSB7DQogICAgICAgIHRoaXMuRG9jdW1lbnRJRCA9ICJjb250ZW50X3NldHRpbmdzIjsNCiAgICB9DQogICAgY3JlYXRlQ2F0ZWdvcnlIZWFkbGluZSh2YWx1ZSkgew0KICAgICAgICB2YXIgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIkg0Iik7DQogICAgICAgIGVsZW1lbnQuaW5uZXJIVE1MID0gdmFsdWU7DQogICAgICAgIHJldHVybiBlbGVtZW50Ow0KICAgIH0NCiAgICBjcmVhdGVIUigpIHsNCiAgICAgICAgdmFyIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJIUiIpOw0KICAgICAgICByZXR1cm4gZWxlbWVudDsNCiAgICB9DQogICAgY3JlYXRlU2V0dGluZ3Moc2V0dGluZ3NLZXkpIHsNCiAgICAgICAgdmFyIHNldHRpbmcgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJUUiIpOw0KICAgICAgICB2YXIgY29udGVudCA9IG5ldyBQb3B1cENvbnRlbnQoKTsNCiAgICAgICAgdmFyIGRhdGEgPSBTRVJWRVJbInNldHRpbmdzIl1bc2V0dGluZ3NLZXldOw0KICAgICAgICBzd2l0Y2ggKHNldHRpbmdzS2V5KSB7DQogICAgICAgICAgICAvLyBUZXh0IGlucHV0cw0KICAgICAgICAgICAgY2FzZSAidXBkYXRlIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLnVwZGF0ZS50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsICJ1cGRhdGUiLCBkYXRhLnRvU3RyaW5nKCkpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3suc2V0dGluZ3MudXBkYXRlLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJiYWNrdXAucGF0aCI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5iYWNrdXBQYXRoLnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgImJhY2t1cC5wYXRoIiwgZGF0YSk7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5zZXR0aW5ncy5iYWNrdXBQYXRoLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ0ZW1wLnBhdGgiOg0KICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MudGVtcFBhdGgudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCAidGVtcC5wYXRoIiwgZGF0YSk7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5zZXR0aW5ncy50bXBQYXRoLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ1c2VyLmFnZW50IjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLnVzZXJBZ2VudC50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsICJ1c2VyLmFnZW50IiwgZGF0YSk7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5zZXR0aW5ncy51c2VyQWdlbnQucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImJ1ZmZlci50aW1lb3V0IjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmJ1ZmZlclRpbWVvdXQudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCAiYnVmZmVyLnRpbWVvdXQiLCBkYXRhKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnNldHRpbmdzLmJ1ZmZlclRpbWVvdXQucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImZmbXBlZy5wYXRoIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmZmbXBlZ1BhdGgudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCAiZmZtcGVnLnBhdGgiLCBkYXRhKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnNldHRpbmdzLmZmbXBlZ1BhdGgucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImZmbXBlZy5vcHRpb25zIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmZmbXBlZ09wdGlvbnMudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCAiZmZtcGVnLm9wdGlvbnMiLCBkYXRhKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnNldHRpbmdzLmZmbXBlZ09wdGlvbnMucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInZsYy5wYXRoIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLnZsY1BhdGgudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCAidmxjLnBhdGgiLCBkYXRhKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnNldHRpbmdzLnZsY1BhdGgucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInZsYy5vcHRpb25zIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLnZsY09wdGlvbnMudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCAidmxjLm9wdGlvbnMiLCBkYXRhKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnNldHRpbmdzLnZsY09wdGlvbnMucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIC8vIENoZWNrYm94ZXMNCiAgICAgICAgICAgIGNhc2UgInRsc01vZGUiOg0KICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MudGxzTW9kZS50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChzZXR0aW5nc0tleSk7DQogICAgICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGE7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiZGlzYWxsb3dVUkxEdXBsaWNhdGVzIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmRpc2FsbG93VVJMRHVwbGljYXRlcy50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChzZXR0aW5nc0tleSk7DQogICAgICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGE7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiYXV0aGVudGljYXRpb24ud2ViIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmF1dGhlbnRpY2F0aW9uV0VCLnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KHNldHRpbmdzS2V5KTsNCiAgICAgICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJhdXRoZW50aWNhdGlvbi5wbXMiOg0KICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MuYXV0aGVudGljYXRpb25QTVMudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goc2V0dGluZ3NLZXkpOw0KICAgICAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImF1dGhlbnRpY2F0aW9uLm0zdSI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5hdXRoZW50aWNhdGlvbk0zVS50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChzZXR0aW5nc0tleSk7DQogICAgICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGE7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiYXV0aGVudGljYXRpb24ueG1sIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmF1dGhlbnRpY2F0aW9uWE1MLnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KHNldHRpbmdzS2V5KTsNCiAgICAgICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJhdXRoZW50aWNhdGlvbi5hcGkiOg0KICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MuYXV0aGVudGljYXRpb25BUEkudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goc2V0dGluZ3NLZXkpOw0KICAgICAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImZpbGVzLnVwZGF0ZSI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5maWxlc1VwZGF0ZS50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChzZXR0aW5nc0tleSk7DQogICAgICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGE7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiY2FjaGUuaW1hZ2VzIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmNhY2hlSW1hZ2VzLnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KHNldHRpbmdzS2V5KTsNCiAgICAgICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ4ZXBnLnJlcGxhY2UubWlzc2luZy5pbWFnZXMiOg0KICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MucmVwbGFjZUVtcHR5SW1hZ2VzLnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KHNldHRpbmdzS2V5KTsNCiAgICAgICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJzdG9yZUJ1ZmZlckluUkFNIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLnN0b3JlQnVmZmVySW5SQU0udGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goc2V0dGluZ3NLZXkpOw0KICAgICAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInh0ZXZlQXV0b1VwZGF0ZSI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy54dGV2ZUF1dG9VcGRhdGUudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goc2V0dGluZ3NLZXkpOw0KICAgICAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImFwaSI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5hcGkudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goc2V0dGluZ3NLZXkpOw0KICAgICAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIC8vIFNlbGVjdA0KICAgICAgICAgICAgY2FzZSAiaG9zdElQIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmhvc3RJUC50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIHRleHQgPSBTRVJWRVJbImlwQWRkcmVzc2VzVjRIb3N0Il07DQogICAgICAgICAgICAgICAgdmFyIHZhbHVlcyA9IFNFUlZFUlsiaXBBZGRyZXNzZXNWNEhvc3QiXTsNCiAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCBkYXRhLCBzZXR0aW5nc0tleSk7DQogICAgICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKHNlbGVjdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ0dW5lciI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy50dW5lci50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIHRleHQgPSBuZXcgQXJyYXkoKTsNCiAgICAgICAgICAgICAgICB2YXIgdmFsdWVzID0gbmV3IEFycmF5KCk7DQogICAgICAgICAgICAgICAgZm9yICh2YXIgaSA9IDE7IGkgPD0gMTAwOyBpKyspIHsNCiAgICAgICAgICAgICAgICAgICAgdGV4dC5wdXNoKGkpOw0KICAgICAgICAgICAgICAgICAgICB2YWx1ZXMucHVzaChpKTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgdmFyIHNlbGVjdCA9IGNvbnRlbnQuY3JlYXRlU2VsZWN0KHRleHQsIHZhbHVlcywgZGF0YSwgc2V0dGluZ3NLZXkpOw0KICAgICAgICAgICAgICAgIHNlbGVjdC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChzZWxlY3QpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiZXBnU291cmNlIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmVwZ1NvdXJjZS50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIHRleHQgPSBbIlBNUyIsICJYRVBHIl07DQogICAgICAgICAgICAgICAgdmFyIHZhbHVlcyA9IFsiUE1TIiwgIlhFUEciXTsNCiAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCBkYXRhLCBzZXR0aW5nc0tleSk7DQogICAgICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKHNlbGVjdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJkZWZhdWx0TWlzc2luZ0VQRyI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5kZWZhdWx0TWlzc2luZ0VQRy50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIHRleHQgPSBbDQogICAgICAgICAgICAgICAgICAgICItIiwgIjMwIE1pbnV0ZXMgKDMwX01pbnV0ZXMpIiwgIjYwIE1pbnV0ZXMgKDYwX01pbnV0ZXMpIiwgIjkwIE1pbnV0ZXMgKDkwX01pbnV0ZXMpIiwNCiAgICAgICAgICAgICAgICAgICAgIjEyMCBNaW51dGVzICgxMjBfTWludXRlcykiLCAiMTgwIE1pbnV0ZXMgKDE4MF9NaW51dGVzKSIsICIyNDAgTWludXRlcyAoMjQwX01pbnV0ZXMpIiwgIjM2MCBNaW51dGVzICgzNjBfTWludXRlcykiDQogICAgICAgICAgICAgICAgXTsNCiAgICAgICAgICAgICAgICB2YXIgdmFsdWVzID0gWw0KICAgICAgICAgICAgICAgICAgICAiLSIsICIzMF9NaW51dGVzIiwgIjYwX01pbnV0ZXMiLCAiOTBfTWludXRlcyIsICIxMjBfTWludXRlcyIsICIxODBfTWludXRlcyIsICIyNDBfTWludXRlcyIsICIzNjBfTWludXRlcyINCiAgICAgICAgICAgICAgICBdOw0KICAgICAgICAgICAgICAgIHZhciBzZWxlY3QgPSBjb250ZW50LmNyZWF0ZVNlbGVjdCh0ZXh0LCB2YWx1ZXMsIGRhdGEsIHNldHRpbmdzS2V5KTsNCiAgICAgICAgICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQoc2VsZWN0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImJhY2t1cC5rZWVwIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmJhY2t1cEtlZXAudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciB0ZXh0ID0gWyI1IiwgIjEwIiwgIjIwIiwgIjMwIiwgIjQwIiwgIjUwIl07DQogICAgICAgICAgICAgICAgdmFyIHZhbHVlcyA9IFsiNSIsICIxMCIsICIyMCIsICIzMCIsICI0MCIsICI1MCJdOw0KICAgICAgICAgICAgICAgIHZhciBzZWxlY3QgPSBjb250ZW50LmNyZWF0ZVNlbGVjdCh0ZXh0LCB2YWx1ZXMsIGRhdGEsIHNldHRpbmdzS2V5KTsNCiAgICAgICAgICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQoc2VsZWN0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImJ1ZmZlci5zaXplLmtiIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmJ1ZmZlclNpemUudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciB0ZXh0ID0gWyIwLjUgTUIiLCAiMSBNQiIsICIyIE1CIiwgIjMgTUIiLCAiNCBNQiIsICI1IE1CIiwgIjYgTUIiLCAiNyBNQiIsICI4IE1CIl07DQogICAgICAgICAgICAgICAgdmFyIHZhbHVlcyA9IFsiNTEyIiwgIjEwMjQiLCAiMjA0OCIsICIzMDcyIiwgIjQwOTYiLCAiNTEyMCIsICI2MTQ0IiwgIjcxNjgiLCAiODE5MiJdOw0KICAgICAgICAgICAgICAgIHZhciBzZWxlY3QgPSBjb250ZW50LmNyZWF0ZVNlbGVjdCh0ZXh0LCB2YWx1ZXMsIGRhdGEsIHNldHRpbmdzS2V5KTsNCiAgICAgICAgICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQoc2VsZWN0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImJ1ZmZlciI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5zdHJlYW1CdWZmZXJpbmcudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciB0ZXh0ID0gWyJ7ey5zZXR0aW5ncy5zdHJlYW1CdWZmZXJpbmcuaW5mb19mYWxzZX19IiwgInhUZVZlOiAoe3suc2V0dGluZ3Muc3RyZWFtQnVmZmVyaW5nLmluZm9feHRldmV9fSkiLCAiRkZtcGVnOiAoe3suc2V0dGluZ3Muc3RyZWFtQnVmZmVyaW5nLmluZm9fZmZtcGVnfX0pIiwgIlZMQzogKHt7LnNldHRpbmdzLnN0cmVhbUJ1ZmZlcmluZy5pbmZvX3ZsY319KSJdOw0KICAgICAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBbIi0iLCAieHRldmUiLCAiZmZtcGVnIiwgInZsYyJdOw0KICAgICAgICAgICAgICAgIHZhciBzZWxlY3QgPSBjb250ZW50LmNyZWF0ZVNlbGVjdCh0ZXh0LCB2YWx1ZXMsIGRhdGEsIHNldHRpbmdzS2V5KTsNCiAgICAgICAgICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQoc2VsZWN0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInVkcHh5IjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLnVkcHh5LnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgInVkcHh5IiwgZGF0YSk7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5zZXR0aW5ncy51ZHB4eS5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICB9DQogICAgICAgIHJldHVybiBzZXR0aW5nOw0KICAgIH0NCiAgICBjcmVhdGVEZXNjcmlwdGlvbihzZXR0aW5nc0tleSkgew0KICAgICAgICB2YXIgZGVzY3JpcHRpb24gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJUUiIpOw0KICAgICAgICB2YXIgdGV4dDsNCiAgICAgICAgc3dpdGNoIChzZXR0aW5nc0tleSkgew0KICAgICAgICAgICAgY2FzZSAidGxzTW9kZSI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy50bHNNb2RlLmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiZGlzYWxsb3dVUkxEdXBsaWNhdGVzIjoNCiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLmRpc2FsbG93VVJMRHVwbGljYXRlcy5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImF1dGhlbnRpY2F0aW9uLndlYiI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5hdXRoZW50aWNhdGlvbldFQi5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImF1dGhlbnRpY2F0aW9uLm0zdSI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5hdXRoZW50aWNhdGlvbk0zVS5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImF1dGhlbnRpY2F0aW9uLnBtcyI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5hdXRoZW50aWNhdGlvblBNUy5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImF1dGhlbnRpY2F0aW9uLnhtbCI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5hdXRoZW50aWNhdGlvblhNTC5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImF1dGhlbnRpY2F0aW9uLmFwaSI6DQogICAgICAgICAgICAgICAgaWYgKFNFUlZFUlsic2V0dGluZ3MiXVsiYXV0aGVudGljYXRpb24ud2ViIl0gPT0gdHJ1ZSkgew0KICAgICAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLmF1dGhlbnRpY2F0aW9uQVBJLmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInh0ZXZlQXV0b1VwZGF0ZSI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy54dGV2ZUF1dG9VcGRhdGUuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJiYWNrdXAua2VlcCI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5iYWNrdXBLZWVwLmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiYmFja3VwLnBhdGgiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MuYmFja3VwUGF0aC5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInRlbXAucGF0aCI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy50ZW1wUGF0aC5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImJ1ZmZlciI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5zdHJlYW1CdWZmZXJpbmcuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJidWZmZXIuc2l6ZS5rYiI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5idWZmZXJTaXplLmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAic3RvcmVCdWZmZXJJblJBTSI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5zdG9yZUJ1ZmZlckluUkFNLmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiYnVmZmVyLnRpbWVvdXQiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MuYnVmZmVyVGltZW91dC5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInVzZXIuYWdlbnQiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MudXNlckFnZW50LmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiZmZtcGVnLnBhdGgiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MuZmZtcGVnUGF0aC5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImZmbXBlZy5vcHRpb25zIjoNCiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLmZmbXBlZ09wdGlvbnMuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ2bGMucGF0aCI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy52bGNQYXRoLmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAidmxjLm9wdGlvbnMiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MudmxjT3B0aW9ucy5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImVwZ1NvdXJjZSI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5lcGdTb3VyY2UuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJob3N0SVAiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MuaG9zdElQLmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAidHVuZXIiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MudHVuZXIuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ1cGRhdGUiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MudXBkYXRlLmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiYXBpIjoNCiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLmFwaS5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImRlZmF1bHRNaXNzaW5nRVBHIjoNCiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLmRlZmF1bHRNaXNzaW5nRVBHLmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiZmlsZXMudXBkYXRlIjoNCiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLmZpbGVzVXBkYXRlLmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiY2FjaGUuaW1hZ2VzIjoNCiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLmNhY2hlSW1hZ2VzLmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAieGVwZy5yZXBsYWNlLm1pc3NpbmcuaW1hZ2VzIjoNCiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLnJlcGxhY2VFbXB0eUltYWdlcy5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInVkcHh5IjoNCiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLnVkcHh5LmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgICAgICB0ZXh0ID0gIiI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIH0NCiAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAiIjsNCiAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICB2YXIgcHJlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiUFJFIik7DQogICAgICAgIHByZS5pbm5lckhUTUwgPSB0ZXh0Ow0KICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKHByZSk7DQogICAgICAgIGRlc2NyaXB0aW9uLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgIGRlc2NyaXB0aW9uLmFwcGVuZENoaWxkKHRkUmlnaHQpOw0KICAgICAgICByZXR1cm4gZGVzY3JpcHRpb247DQogICAgfQ0KfQ0KY2xhc3MgU2V0dGluZ3NDYXRlZ29yeUl0ZW0gZXh0ZW5kcyBTZXR0aW5nc0NhdGVnb3J5IHsNCiAgICBjb25zdHJ1Y3RvcihoZWFkbGluZSwgc2V0dGluZ3NLZXlzKSB7DQogICAgICAgIHN1cGVyKCk7DQogICAgICAgIHRoaXMuaGVhZGxpbmUgPSBoZWFkbGluZTsNCiAgICAgICAgdGhpcy5zZXR0aW5nc0tleXMgPSBzZXR0aW5nc0tleXM7DQogICAgfQ0KICAgIGNyZWF0ZUNhdGVnb3J5KCkgew0KICAgICAgICB2YXIgaGVhZGxpbmUgPSB0aGlzLmNyZWF0ZUNhdGVnb3J5SGVhZGxpbmUodGhpcy5oZWFkbGluZSk7DQogICAgICAgIHZhciBzZXR0aW5nc0tleXMgPSB0aGlzLnNldHRpbmdzS2V5czsNCiAgICAgICAgdmFyIGRvYyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHRoaXMuRG9jdW1lbnRJRCk7DQogICAgICAgIGRvYy5hcHBlbmRDaGlsZChoZWFkbGluZSk7DQogICAgICAgIC8vIENyZWF0ZSBhIHRhYmxlIGZvciB0aGUgY2F0ZWdvcnkNCiAgICAgICAgdmFyIHRhYmxlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEFCTEUiKTsNCiAgICAgICAgdmFyIGtleXMgPSBzZXR0aW5nc0tleXMuc3BsaXQoIiwiKTsNCiAgICAgICAga2V5cy5mb3JFYWNoKHNldHRpbmdzS2V5ID0+IHsNCiAgICAgICAgICAgIHN3aXRjaCAoc2V0dGluZ3NLZXkpIHsNCiAgICAgICAgICAgICAgICBjYXNlICJhdXRoZW50aWNhdGlvbi5wbXMiOg0KICAgICAgICAgICAgICAgIGNhc2UgImF1dGhlbnRpY2F0aW9uLm0zdSI6DQogICAgICAgICAgICAgICAgY2FzZSAiYXV0aGVudGljYXRpb24ueG1sIjoNCiAgICAgICAgICAgICAgICBjYXNlICJhdXRoZW50aWNhdGlvbi5hcGkiOg0KICAgICAgICAgICAgICAgICAgICBpZiAoU0VSVkVSWyJzZXR0aW5ncyJdWyJhdXRoZW50aWNhdGlvbi53ZWIiXSA9PSBmYWxzZSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBkZWZhdWx0Og0KICAgICAgICAgICAgICAgICAgICB2YXIgaXRlbSA9IHRoaXMuY3JlYXRlU2V0dGluZ3Moc2V0dGluZ3NLZXkpOw0KICAgICAgICAgICAgICAgICAgICB2YXIgZGVzY3JpcHRpb24gPSB0aGlzLmNyZWF0ZURlc2NyaXB0aW9uKHNldHRpbmdzS2V5KTsNCiAgICAgICAgICAgICAgICAgICAgdGFibGUuYXBwZW5kQ2hpbGQoaXRlbSk7DQogICAgICAgICAgICAgICAgICAgIHRhYmxlLmFwcGVuZENoaWxkKGRlc2NyaXB0aW9uKTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICB9DQogICAgICAgIH0pOw0KICAgICAgICBkb2MuYXBwZW5kQ2hpbGQodGFibGUpOw0KICAgICAgICBkb2MuYXBwZW5kQ2hpbGQodGhpcy5jcmVhdGVIUigpKTsNCiAgICB9DQp9DQpmdW5jdGlvbiBzaG93U2V0dGluZ3MoKSB7DQogICAgZm9yIChsZXQgaSA9IDA7IGkgPCBzZXR0aW5nc0NhdGVnb3J5Lmxlbmd0aDsgaSsrKSB7DQogICAgICAgIHNldHRpbmdzQ2F0ZWdvcnlbaV0uY3JlYXRlQ2F0ZWdvcnkoKTsNCiAgICB9DQp9DQpmdW5jdGlvbiBzYXZlU2V0dGluZ3MoKSB7DQogICAgdmFyIGNtZCA9ICJzYXZlU2V0dGluZ3MiOw0KICAgIHZhciBkaXYgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29udGVudF9zZXR0aW5ncyIpOw0KICAgIHZhciBzZXR0aW5ncyA9IGRpdi5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCJjaGFuZ2VkIik7DQogICAgdmFyIG5ld1NldHRpbmdzID0gbmV3IE9iamVjdCgpOw0KICAgIGZvciAobGV0IGkgPSAwOyBpIDwgc2V0dGluZ3MubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgdmFyIG5hbWU7DQogICAgICAgIHZhciB2YWx1ZTsNCiAgICAgICAgc3dpdGNoIChzZXR0aW5nc1tpXS50YWdOYW1lKSB7DQogICAgICAgICAgICBjYXNlICJJTlBVVCI6DQogICAgICAgICAgICAgICAgc3dpdGNoIChzZXR0aW5nc1tpXS50eXBlKSB7DQogICAgICAgICAgICAgICAgICAgIGNhc2UgImNoZWNrYm94IjoNCiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWUgPSBzZXR0aW5nc1tpXS5uYW1lOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSBzZXR0aW5nc1tpXS5jaGVja2VkOw0KICAgICAgICAgICAgICAgICAgICAgICAgbmV3U2V0dGluZ3NbbmFtZV0gPSB2YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgICAgICBjYXNlICJ0ZXh0IjoNCiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWUgPSBzZXR0aW5nc1tpXS5uYW1lOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSBzZXR0aW5nc1tpXS52YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHN3aXRjaCAobmFtZSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgInVwZGF0ZSI6DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlID0gdmFsdWUuc3BsaXQoIiwiKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSB2YWx1ZS5maWx0ZXIoZnVuY3Rpb24gKGUpIHsgcmV0dXJuIGU7IH0pOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYXNlICJidWZmZXIudGltZW91dCI6DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlID0gcGFyc2VGbG9hdCh2YWx1ZSk7DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICBuZXdTZXR0aW5nc1tuYW1lXSA9IHZhbHVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiU0VMRUNUIjoNCiAgICAgICAgICAgICAgICBuYW1lID0gc2V0dGluZ3NbaV0ubmFtZTsNCiAgICAgICAgICAgICAgICB2YWx1ZSA9IHNldHRpbmdzW2ldLnZhbHVlOw0KICAgICAgICAgICAgICAgIC8vIElmIHRoZSB2YWx1ZSBpcyBhIG51bWJlciwgc3RvcmUgaXQgYXMgYSBudW1iZXINCiAgICAgICAgICAgICAgICBpZiAoaXNOYU4odmFsdWUpKSB7DQogICAgICAgICAgICAgICAgICAgIG5ld1NldHRpbmdzW25hbWVdID0gdmFsdWU7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgICAgICAgICBuZXdTZXR0aW5nc1tuYW1lXSA9IHBhcnNlSW50KHZhbHVlKTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIH0NCiAgICB9DQogICAgdmFyIGRhdGEgPSBuZXcgT2JqZWN0KCk7DQogICAgZGF0YVsic2V0dGluZ3MiXSA9IG5ld1NldHRpbmdzOw0KICAgIHZhciBzZXJ2ZXIgPSBuZXcgU2VydmVyKGNtZCk7DQogICAgc2VydmVyLnJlcXVlc3QoZGF0YSk7DQp9DQo=" webUI["html/lang/en.json"] = "ew0KICAibWFpbk1lbnUiOg0KICB7DQogICAgIml0ZW0iOg0KICAgIHsNCiAgICAgICJwbGF5bGlzdCI6ICJQbGF5bGlzdCIsDQogICAgICAicG1zSUQiOiAiUE1TIElEIiwNCiAgICAgICJmaWx0ZXIiOiAiRmlsdGVyIiwNCiAgICAgICJ4bWx0diI6ICJYTUxUViIsDQogICAgICAibWFwcGluZyI6ICJNYXBwaW5nIiwNCiAgICAgICJ1c2VycyI6ICJVc2VycyIsDQogICAgICAic2V0dGluZ3MiOiAiU2V0dGluZ3MiLA0KICAgICAgImxvZyI6ICJMb2ciLA0KICAgICAgImxvZ291dCI6ICJMb2dvdXQiDQogICAgfSwNCiAgICAiaGVhZGxpbmUiOg0KICAgIHsNCiAgICAgICJwbGF5bGlzdCI6ICJMb2NhbCBvciByZW1vdGUgcGxheWxpc3RzIiwNCiAgICAgICJmaWx0ZXIiOiAiRmlsdGVyIHBsYXlsaXN0IiwNCiAgICAgICJ4bWx0diI6ICJMb2NhbCBvciByZW1vdGUgWE1MVFYgZmlsZXMiLA0KICAgICAgIm1hcHBpbmciOiAiTWFwIHBsYXlsaXN0IGNoYW5uZWxzIHRvIEVQRyBjaGFubmVscyIsDQogICAgICAidXNlcnMiOiAiVXNlciBtYW5hZ2VtZW50IiwNCiAgICAgICJzZXR0aW5ncyI6ICJTZXR0aW5ncyIsDQogICAgICAibG9nIjogIkxvZyIsDQogICAgICAibG9nb3V0IjogIkxvZ291dCINCiAgICB9DQogIH0sDQogICJjb25maXJtIjoNCiAgew0KICAgICJyZXN0b3JlIjogIkFsbCBkYXRhIHdpbGwgYmUgcmVwbGFjZWQgd2l0aCB0aG9zZSBmcm9tIHRoZSBiYWNrdXAuIFNob3VsZCB0aGUgZmlsZXMgYmUgcmVzdG9yZWQ/Ig0KICB9LA0KICAiYWxlcnQiOg0KICB7DQogICAgImZpbGVMb2FkaW5nRXJyb3IiOiAiRmlsZSBjb3VsZG4ndCBiZSBsb2FkZWQiLA0KICAgICJpbnZhbGlkQ2hhbm5lbE51bWJlciI6ICJJbnZhbGlkIGNoYW5uZWwgbnVtYmVyIiwNCiAgICAibWlzc2luZ0lucHV0IjogIk1pc3NpbmcgaW5wdXQiDQogIH0sDQogICJidXR0b24iOg0KICB7DQogICAgImJhY2siOiAiQmFjayIsDQogICAgImJhY2t1cCI6ICJCYWNrdXAiLA0KICAgICJidWxrRWRpdCI6ICJCdWxrIEVkaXQiLA0KICAgICJjYW5jZWwiOiAiQ2FuY2VsIiwNCiAgICAiZGVsZXRlIjogIkRlbGV0ZSIsDQogICAgImRvbmUiOiAiRG9uZSIsDQogICAgImxvZ2luIjogIkxvZ2luIiwNCiAgICAibmV3IjogIk5ldyIsDQogICAgIm5leHQiOiAiTmV4dCIsDQogICAgInJlc3RvcmUiOiAiUmVzdG9yZSIsDQogICAgInNhdmUiOiAiU2F2ZSIsDQogICAgInNlYXJjaCI6ICJTZWFyY2giLA0KICAgICJ1cGRhdGUiOiAiVXBkYXRlIiwNCiAgICAiY3JhZXRlQWNjb3VudCI6ICJDcmVhdGUgQWNjb3VudCIsDQogICAgInJlc2V0TG9ncyI6ICJSZXNldCBMb2dzIiwNCiAgICAidXBsb2FkTG9nbyI6ICJVcGxvYWQgTG9nbyINCiAgfSwNCiAgImZpbHRlciI6DQogIHsNCiAgICAidGFibGUiOg0KICAgIHsNCiAgICAgICJzdGFydGluZ0NoYW5uZWwiOiAiU3RhcnRpbmcgQ2guIE5vLiIsDQogICAgICAibmFtZSI6ICJGaWx0ZXIgTmFtZSIsDQogICAgICAidHlwZSI6ICJGaWx0ZXIgVHlwZSIsDQogICAgICAiZmlsdGVyIjogIkZpbHRlciINCiAgICB9LA0KICAgICJjdXN0b20iOiAiQ3VzdG9tIiwNCiAgICAiZ3JvdXAiOiAiTTNVIEdyb3VwIiwNCiAgICAibmFtZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIkZpbHRlciBOYW1lIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJGaWx0ZXIgbmFtZSIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgImRlc2NyaXB0aW9uIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiRGVzY3JpcHRpb24iLA0KICAgICAgInBsYWNlaG9sZGVyIjogIkRlc2NyaXB0aW9uIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAidHlwZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIlR5cGUiLA0KICAgICAgImdyb3VwVGl0bGUiOiAiR3JvdXAgVGl0bGUiLA0KICAgICAgImN1c3RvbUZpbHRlciI6ICJDdXN0b20gRmlsdGVyIg0KICAgIH0sDQogICAgImNhc2VTZW5zaXRpdmUiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJDYXNlIFNlbnNpdGl2ZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAiZmlsdGVyUnVsZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIkZpbHRlciBSdWxlIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJTcG9ydCB7SER9ICF7RVMsSVR9IiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAiZmlsdGVyR3JvdXAiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJHcm91cCBUaXRsZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJTZWxlY3QgYSBNM1UgZ3JvdXAuIChDb3VudGVyKTxicj5DaGFuZ2luZyB0aGUgZ3JvdXAgdGl0bGUgaW4gdGhlIE0zVSBpbnZhbGlkYXRlcyB0aGUgZmlsdGVyLiINCiAgICB9LA0KICAgICJpbmNsdWRlIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiSW5jbHVkZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiRkhELFVIRCIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiQ2hhbm5lbCBuYW1lIG11c3QgaW5jbHVkZS48YnI+KENvbW1hIHNlcGFyYXRlZCkgQ29tbWEgbWVhbnMgb3IiDQogICAgfSwNCiAgICAiZXhjbHVkZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIkV4Y2x1ZGUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIkVTLElUIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJDaGFubmVsIG5hbWUgbXVzdCBub3QgY29udGFpbi48YnI+KENvbW1hIHNlcGFyYXRlZCkgQ29tbWEgbWVhbnMgb3IiDQogICAgfSwNCiAgICAicHJlc2VydmVNYXBwaW5nIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiUHJlc2VydmUgRXhpc3RpbmcgTTNVPGJyPkNoYW5uZWwgTnVtYmVycyIsDQogICAgICAicGFsY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJQcmVzZXJ2ZSBleGlzdGluZyBNM1UgcGxheWxpc3QgY2hhbm5lbCBudW1iZXJzPyINCiAgICB9LA0KICAgICJzdGFydGluZ0NoYW5uZWwiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJTdGFydGluZyBDaGFubmVsIE51bWJlciIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfQ0KICB9LA0KICAicGxheWxpc3QiOg0KICB7DQogICAgInRhYmxlIjoNCiAgICB7DQogICAgICAicGxheWxpc3QiOiAiUGxheWxpc3QiLA0KICAgICAgInR1bmVyIjogIlR1bmVyIiwNCiAgICAgICJsYXN0VXBkYXRlIjogIkxhc3QgVXBkYXRlIiwNCiAgICAgICJhdmFpbGFiaWxpdHkiOiAiQXZhaWxhYmlsaXR5IiwNCiAgICAgICJ0eXBlIjogIlR5cGUiLA0KICAgICAgInN0cmVhbXMiOiAiU3RyZWFtcyIsDQogICAgICAiZ3JvdXBUaXRsZSI6ICJncm91cC10aXRsZSIsDQogICAgICAidHZnSUQiOiAidHZnLWlkIiwNCiAgICAgICJ1bmlxdWVJRCI6ICJVbmlxdWUgSUQiDQogICAgfSwNCiAgICAicGxheWxpc3RUeXBlIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiUGxheWxpc3QgdHlwZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAidHlwZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIlR5cGUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgIm5hbWUiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJOYW1lIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJQbGF5bGlzdCBuYW1lIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAiZGVzY3JpcHRpb24iOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJEZXNjcmlwdGlvbiIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiRGVzY3JpcHRpb24iLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJmaWxlTTNVIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiTTNVIEZpbGUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIkZpbGUgcGF0aCBvciBVUkwgb2YgdGhlIE0zVSIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgImZpbGVIREhSIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiSERIb21lUnVuIElQIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJJUCBhZGRyZXNzIGFuZCBwb3J0ICgxOTIuMTY4LjEuMTA6NTAwNCkiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJ0dW5lciI6DQogICAgew0KICAgICAgInRpdGxlIjogIlR1bmVyIC8gU3RyZWFtcyIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJOdW1iZXIgb2YgcGFyYWxsZWwgY29ubmVjdGlvbnMgdGhhdCBjYW4gYmUgZXN0YWJsaXNoZWQgdG8gdGhlIHByb3ZpZGVyLiA8YnI+T25seSBhdmFpbGFibGUgd2l0aCBhY3RpdmF0ZWQgYnVmZmVyLjxicj5OZXcgc2V0dGluZ3Mgd2lsbCBvbmx5IGJlIGFwcGxpZWQgYWZ0ZXIgcXVpdHRpbmcgYWxsIHN0cmVhbXMuIg0KICAgIH0NCiAgfSwNCiAgInhtbHR2IjoNCiAgew0KICAgICJ0YWJsZSI6DQogICAgew0KICAgICAgImd1aWRlIjogIkd1aWRlIiwNCiAgICAgICJsYXN0VXBkYXRlIjogIkxhc3QgVXBkYXRlIiwNCiAgICAgICJhdmFpbGFiaWxpdHkiOiAiQXZhaWxhYmlsaXR5IiwNCiAgICAgICJjaGFubmVscyI6ICJDaGFubmVscyIsDQogICAgICAicHJvZ3JhbXMiOiAiUHJvZ3JhbXMiDQogICAgfSwNCiAgICAibmFtZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIk5hbWUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIkd1aWRlIG5hbWUiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJkZXNjcmlwdGlvbiI6DQogICAgew0KICAgICAgInRpdGxlIjogIkRlc2NyaXB0aW9uIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJEZXNjcmlwdGlvbiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgImZpbGVYTUxUViI6DQogICAgew0KICAgICAgInRpdGxlIjogIlhNTFRWIEZpbGUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIkZpbGUgcGF0aCBvciBVUkwgb2YgdGhlIFhNTFRWIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfQ0KICB9LA0KICAibWFwcGluZyI6DQogIHsNCiAgICAidGFibGUiOg0KICAgIHsNCiAgICAgICJjaE5vIjogIkNoLiBOby4iLA0KICAgICAgImxvZ28iOiAiTG9nbyIsDQogICAgICAiY2hhbm5lbE5hbWUiOiAiQ2hhbm5lbCBOYW1lIiwNCiAgICAgICJ1cGRhdGVDaGFubmVsTmFtZVJlZ2V4IjogIlVwZC4gUnguIiwNCiAgICAgICJwbGF5bGlzdCI6ICJQbGF5bGlzdCIsDQogICAgICAiZ3JvdXBUaXRsZSI6ICJHcm91cCBUaXRsZSIsDQogICAgICAieG1sdHZGaWxlIjogIlhNTFRWIEZpbGUiLA0KICAgICAgInhtbHR2SUQiOiAiWE1MVFYgSUQiLA0KICAgICAgInRpbWVzaGlmdCI6ICJUaW1lc2hpZnQiDQogICAgfSwNCiAgICAiYWN0aXZlIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiQWN0aXZlIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJjaGFubmVsTmFtZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIkNoYW5uZWwgTmFtZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAiZGVzY3JpcHRpb24iOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJDaGFubmVsIERlc2NyaXB0aW9uIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJVc2VkIGJ5IHRoZSBEdW1teSBhcyBhbiBYTUwgZGVzY3JpcHRpb24iLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJ1cGRhdGVDaGFubmVsTmFtZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIlVwZGF0ZSBDaGFubmVsIE5hbWUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgInVwZGF0ZUNoYW5uZWxOYW1lUmVnZXgiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJDaGFubmVsIG5hbWUgdXBkYXRlIHJlZ2V4IiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJGb3IgZXhhbXBsZSBeUFBWWyBcXFxcLV9dPzEuKiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiT24gdXBkYXRlLCBpZiBhbnkgbmV3IGNoYW5uZWwgbmFtZSBtYXRjaGVzIHRoaXMgcmVnZXgsIHJlbmFtZSBjdXJyZW50IGNoYW5uZWwgdG8gdGhlIGZpcnN0IG1hdGNoaW5nIG5hbWUiDQogICAgfSwNCiAgICAidXBkYXRlQ2hhbm5lbE5hbWVCeUdyb3VwUmVnZXgiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJPbmx5IGJ5IGdyb3VwIHJlZ2V4IiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIlJlbmFtZSB0aGlzIGNoYW5uZWwgb25seSBpZiBjdXJyZW50IHVzZXItZGVmaW5lZCBncm91cCBtYXRjaGVzIHRoaXMgcmVnZXgiDQogICAgfSwNCiAgICAidXBkYXRlQ2hhbm5lbEdyb3VwIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiVXBkYXRlIENoYW5uZWwgR3JvdXAiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiSWYgY2hlY2tlZCwgdXNlIGdyb3VwIGZyb20gdGhlIGRhdGFiYXNlIg0KICAgIH0sDQogICAgImNoYW5uZWxMb2dvIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiTG9nbyBVUkwiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgInVwZGF0ZUNoYW5uZWxMb2dvIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiVXBkYXRlIENoYW5uZWwgTG9nbyIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAiZXBnQ2F0ZWdvcnkiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJFUEcgQ2F0ZWdvcnkiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgIm0zdUdyb3VwVGl0bGUiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJHcm91cCBUaXRsZSAoeHRldmUubTN1KSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAieG1sdHZGaWxlIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiWE1MVFYgRmlsZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAieG1sdHZDaGFubmVsIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiWE1MVFYgQ2hhbm5lbCIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAidGltZXNoaWZ0IjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiVGltZXNoaWZ0IiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIwIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfQ0KICB9LA0KICAidXNlcnMiOg0KICB7DQogICAgInRhYmxlIjoNCiAgICB7DQogICAgICAidXNlcm5hbWUiOiAiVXNlcm5hbWUiLA0KICAgICAgInBhc3N3b3JkIjogIlBhc3N3b3JkIiwNCiAgICAgICJ3ZWIiOiAiV0VCIiwNCiAgICAgICJwbXMiOiAiUE1TIiwNCiAgICAgICJtM3UiOiAiTTNVIiwNCiAgICAgICJ4bWwiOiAiWE1MIiwNCiAgICAgICJhcGkiOiAiQVBJIg0KICAgIH0sDQogICAgInVzZXJuYW1lIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiVXNlcm5hbWUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIlVzZXJuYW1lIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAicGFzc3dvcmQiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJQYXNzd29yZCIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiUGFzc3dvcmQiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJjb25maXJtIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiQ29uZmlybSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiUGFzc3dvcmQgY29uZmlybSIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgIndlYiI6DQogICAgew0KICAgICAgInRpdGxlIjogIldlYiBBY2Nlc3MiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgInBtcyI6DQogICAgew0KICAgICAgInRpdGxlIjogIlBNUyBBY2Nlc3MiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgIm0zdSI6DQogICAgew0KICAgICAgInRpdGxlIjogIk0zVSBBY2Nlc3MiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgInhtbCI6DQogICAgew0KICAgICAgInRpdGxlIjogIlhNTCBBY2Nlc3MiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgImFwaSI6DQogICAgew0KICAgICAgInRpdGxlIjogIkFQSSBBY2Nlc3MiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0NCiAgfSwNCiAgInNldHRpbmdzIjoNCiAgew0KICAgICJjYXRlZ29yeSI6DQogICAgew0KICAgICAgImdlbmVyYWwiOiAiR2VuZXJhbCIsDQogICAgICAibWFwcGluZyI6ICJNYXBwaW5nIiwNCiAgICAgICJmaWxlcyI6ICJGaWxlcyIsDQogICAgICAic3RyZWFtaW5nIjogIlN0cmVhbWluZyIsDQogICAgICAiYmFja3VwIjogIkJhY2t1cCIsDQogICAgICAiYXV0aGVudGljYXRpb24iOiAiQXV0aGVudGljYXRpb24iDQogICAgfSwNCiAgICAidXBkYXRlIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiU2NoZWR1bGUgZm9yIHVwZGF0aW5nIChQbGF5bGlzdCwgWE1MVFYsIEJhY2t1cCkiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIjAwMDAsMTAwMCwyMDAwIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJUaW1lIGluIDI0IGhvdXIgZm9ybWF0ICgwODAwID0gODowMCBhbSkuIE1vcmUgdGltZXMgY2FuIGJlIGVudGVyZWQgY29tbWEgc2VwYXJhdGVkLiBMZWF2ZSB0aGlzIGZpZWxkIGVtcHR5IGlmIG5vIHVwZGF0ZXMgYXJlIHRvIGJlIGNhcnJpZWQgb3V0LiINCiAgICB9LA0KICAgICJhcGkiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJBUEkgSW50ZXJmYWNlIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJWaWEgQVBJIGludGVyZmFjZSBpdCBpcyBwb3NzaWJsZSB0byBzZW5kIGNvbW1hbmRzIHRvIHhUZVZlLiBBUEkgZG9jdW1lbnRhdGlvbiBpcyA8YSBocmVmPSdodHRwczovL2dpdGh1Yi5jb20veHRldmUtcHJvamVjdC94VGVWZS1Eb2N1bWVudGF0aW9uL2Jsb2IvbWFzdGVyL2VuL2NvbmZpZ3VyYXRpb24ubWQjYXBpJz5oZXJlPC9hPiINCiAgICB9LA0KICAgICJkZWZhdWx0TWlzc2luZ0VQRyI6DQogICAgew0KICAgICAgInRpdGxlIjogIkZpbGwgTWlzc2luZyBFUEcgRGF0YSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJXaGVuIHRoZXJlIGlzIG5vIG1hdGNoaW5nIEVQRyBkYXRhIGZvciBjaGFubmVsLCA8YnI+YXV0b2ZpbGwgd2l0aCB4VGVWZSBkdW1teSBFUEcgZGF0YT8iDQogICAgfSwNCiAgICAiZGlzYWxsb3dVUkxEdXBsaWNhdGVzIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiRGlzYWxsb3cgVVJMIGR1cGxpY2F0ZXMiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIklmIGNoZWNrZWQsIGRvIG5vdCBhZGQgYSBuZXcgY2hhbm5lbCBmcm9tIHBsYXlsaXN0IGlmIGNoYW5uZWwgd2l0aCBzdWNoIFVSTCBhbHJlYWR5IGV4aXN0cyINCiAgICB9LA0KICAgICJlcGdTb3VyY2UiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJFUEcgU291cmNlIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJQTVM6PGJyPi0gVXNlIEVQRyBkYXRhIGZyb20gUGxleCBvciBFbWJ5IDxicj48YnI+WEVQRzo8YnI+LSBVc2Ugb2Ygb25lIG9yIG1vcmUgWE1MVFYgZmlsZXM8YnI+LSBDaGFubmVsIG1hbmFnZW1lbnQ8YnI+LSBNM1UgLyBYTUxUViBleHBvcnQgKEhUVFAgbGluayBmb3IgSVBUViBhcHBzKSINCiAgICB9LA0KICAgICJ0dW5lciI6DQogICAgew0KICAgICAgInRpdGxlIjogIk51bWJlciBvZiBUdW5lcnMiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIk51bWJlciBvZiBwYXJhbGxlbCBjb25uZWN0aW9ucyB0aGF0IGNhbiBiZSBlc3RhYmxpc2hlZCB0byB0aGUgcHJvdmlkZXIuPGJyPkF2YWlsYWJsZSBmb3I6IFBsZXgsIEVtYnkgKEhESFIpLCBNM1UgKHdpdGggYWN0aXZlIGJ1ZmZlcikuPGJyPkFmdGVyIGEgY2hhbmdlLCB4VGVWZSBtdXN0IGJlIGRlbGV0ZSBpbiB0aGUgUGxleCAvIEVtYnkgRFZSIHNldHRpbmdzIGFuZCBzZXQgdXAgYWdhaW4uIg0KICAgIH0sDQogICAgImhvc3RJUCI6DQogICAgew0KICAgICAgInRpdGxlIjogIkhvc3QgSVAiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIklQIGFkZHJlc3MgeFRlVmUgd2lsbCB1c2UgdG8gZm9ybSBNM1UgYW5kIFhNTFRWIGZpbGVzIg0KICAgIH0sDQogICAgInRsc01vZGUiOiB7DQogICAgICAidGl0bGUiOiAiVExTIChIVFRQUykgbW9kZSIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiQ2hhbmdlcyB3ZWIgc2VydmVyIHByb3RvY29sIHRvIEhUVFBTLjxicj5Gb3IgZGV0YWlscywgc2VlIDxhPmh0dHBzOi8vZ2l0aHViLmNvbS9TQ1AwMDIveFRlVmUjdGxzLW1vZGU8L2E+Ig0KICAgIH0sDQogICAgImZpbGVzVXBkYXRlIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiVXBkYXRlcyBhbGwgZmlsZXMgYXQgc3RhcnR1cCIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiVXBkYXRlcyBhbGwgcGxheWxpc3RzLCB0dW5lciBhbmQgWE1MVFYgZmlsZXMgYXQgc3RhcnR1cC4iDQogICAgfSwNCiAgICAiY2FjaGVJbWFnZXMiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJJbWFnZSBDYWNoaW5nIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJBbGwgaW1hZ2VzIGZyb20gdGhlIFhNTFRWIGZpbGUgYXJlIGNhY2hlZCwgYWxsb3dpbmcgZmFzdGVyIHJlbmRlcmluZyBvZiB0aGUgZ3JpZCBpbiB0aGUgY2xpZW50Ljxicj5Eb3dubG9hZGluZyB0aGUgaW1hZ2VzIG1heSB0YWtlIGEgd2hpbGUgYW5kIHdpbGwgYmUgZG9uZSBpbiB0aGUgYmFja2dyb3VuZC4iDQogICAgfSwNCiAgICAicmVwbGFjZUVtcHR5SW1hZ2VzIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiUmVwbGFjZSBtaXNzaW5nIHByb2dyYW0gaW1hZ2VzIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJJZiB0aGUgcG9zdGVyIGluIHRoZSBYTUxUViBwcm9ncmFtIGlzIG1pc3NpbmcsIHRoZSBjaGFubmVsIGxvZ28gd2lsbCBiZSB1c2VkLiINCiAgICB9LA0KICAgICJ4dGV2ZUF1dG9VcGRhdGUiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJBdXRvbWF0aWMgdXBkYXRlIG9mIHhUZVZlIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJJZiBhIG5ldyB2ZXJzaW9uIG9mIHhUZVZlIGlzIGF2YWlsYWJsZSwgaXQgd2lsbCBiZSBhdXRvbWF0aWNhbGx5IGluc3RhbGxlZC4gVGhlIHVwZGF0ZXMgYXJlIGRvd25sb2FkZWQgZnJvbSBHaXRIdWIuIg0KICAgIH0sDQogICAgInN0cmVhbUJ1ZmZlcmluZyI6DQogICAgew0KICAgICAgInRpdGxlIjogIlN0cmVhbSBCdWZmZXIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIkZ1bmN0aW9ucyBvZiB0aGUgYnVmZmVyOjxicj4tIFRoZSBzdHJlYW0gaXMgcGFzc2VkIGZyb20geFRlVmUsIEZGbXBlZyBvciBWTEMgdG8gUGxleCwgRW1ieSBvciBNM1UgUGxheWVyPGJyPi0gU21hbGwgamVya2luZyBvZiB0aGUgc3RyZWFtcyBjYW4gYmUgY29tcGVuc2F0ZWQ8YnI+LSBITFMgLyBNM1U4IHN1cHBvcnQ8YnI+LSBSVFAgLyBSVFBTIHN1cHBvcnQgKG9ubHkgRkZtcGVnIG9yIFZMQyk8YnI+LSBSZS1zdHJlYW1pbmc8YnI+LSBTZXBhcmF0ZSB0dW5lciBsaW1pdCBmb3IgZWFjaCBwbGF5bGlzdCIsDQogICAgICAiaW5mb19mYWxzZSI6ICJObyBCdWZmZXIgKENsaWVudCBjb25uZWN0cyB0byB0aGUgc3RyZWFtaW5nIHNlcnZlcikiLA0KICAgICAgImluZm9feHRldmUiOiAieFRlVmUgY29ubmVjdHMgdG8gdGhlIHN0cmVhbWluZyBzZXJ2ZXIiLA0KICAgICAgImluZm9fZmZtcGVnIjogIkZGbXBlZyBjb25uZWN0cyB0byB0aGUgc3RyZWFtaW5nIHNlcnZlciIsDQogICAgICAiaW5mb192bGMiOiAiVkxDIGNvbm5lY3RzIHRvIHRoZSBzdHJlYW1pbmcgc2VydmVyIg0KDQogICAgfSwNCiAgICAidWRweHkiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJVRFB4eSBhZGRyZXNzIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJUaGUgYWRkcmVzcyBvZiB5b3VyIFVEUHh5IHNlcnZlci4gSWYgc2V0LCBhbmQgdGhlIGNoYW5uZWwgVVJMcyBpbiB0aGUgbTN1IGlzIG11bHRpY2FzdCwgeFRlVmUgd2lsbCByZXdyaXRlIGl0IHNvIHRoYXQgaXQgaXMgYWNjZXNzZWQgdmlhIHRoZSBVRFB4eSBzZXJ2aWNlLiIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiaG9zdDpwb3J0Ig0KICAgIH0sDQogICAgImZmbXBlZ1BhdGgiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJGRm1wZWcgQmluYXJ5IFBhdGgiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIlBhdGggdG8gRkZtcGVnIGJpbmFyeS4iLA0KICAgICAgInBsYWNlaG9sZGVyIjogIi9wYXRoL3RvL2ZmbXBlZyINCiAgICB9LA0KICAgICJmZm1wZWdPcHRpb25zIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiRkZtcGVnIE9wdGlvbnMiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIkZGbXBlZyBvcHRpb25zLjxicj5Pbmx5IGNoYW5nZSBpZiB5b3Uga25vdyB3aGF0IHlvdSBhcmUgZG9pbmcuPGJyPkxlYXZlIGJsYW5rIHRvIHNldCBkZWZhdWx0IHNldHRpbmdzLiIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiTGVhdmUgYmxhbmsgdG8gc2V0IGRlZmF1bHQgc2V0dGluZ3MiDQogICAgfSwNCiAgICAidmxjUGF0aCI6DQogICAgew0KICAgICAgInRpdGxlIjogIlZMQyAvIENWTEMgQmluYXJ5IFBhdGgiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIlBhdGggdG8gVkxDIC8gQ1ZMQyBiaW5hcnkuIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIvcGF0aC90by9jdmxjIg0KICAgIH0sDQogICAgInZsY09wdGlvbnMiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJWTEMgLyBDVkxDIE9wdGlvbnMiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIlZMQyAvIENWTEMgb3B0aW9ucy48YnI+T25seSBjaGFuZ2UgaWYgeW91IGtub3cgd2hhdCB5b3UgYXJlIGRvaW5nLjxicj5MZWF2ZSBibGFuayB0byBzZXQgZGVmYXVsdCBzZXR0aW5ncy4iLA0KICAgICAgInBsYWNlaG9sZGVyIjogIkxlYXZlIGJsYW5rIHRvIHNldCBkZWZhdWx0IHNldHRpbmdzIg0KICAgIH0sDQogICAgImJ1ZmZlclNpemUiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJCdWZmZXIgU2l6ZSIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiQnVmZmVyIHNpemUgaW4gTUIuPGJyPk0zVTg6IElmIHRoZSBUUyBzZWdtZW50IHNtYWxsZXIgdGhlbiB0aGUgYnVmZmVyIHNpemUsIHRoZSBmaWxlIHNpemUgb2YgdGhlIHNlZ21lbnQgaXMgdXNlZC4iDQogICAgfSwNCiAgICAic3RvcmVCdWZmZXJJblJBTSI6DQogICAgew0KICAgICAgInRpdGxlIjogIlN0b3JlIGJ1ZmZlciBpbiBSQU0iLA0KICAgICAgImRlc2NyaXB0aW9uIjogIklmIGNoZWNrZWQsIHdyaXRlIGJ1ZmZlciB0byBSQU0gaW5zdGVhZCBvZiB3cml0aW5nIHRvIGRpc2siDQogICAgfSwNCiAgICAiYnVmZmVyVGltZW91dCI6DQogICAgew0KICAgICAgInRpdGxlIjogIlRpbWVvdXQgZm9yIG5ldyBjbGllbnQgY29ubmVjdGlvbnMiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIlRoZSB4VGVWZSBidWZmZXIgd2FpdHMgdW50aWwgbmV3IGNsaWVudCBjb25uZWN0aW9ucyBhcmUgZXN0YWJsaXNoZWQuIEhlbHBmdWwgZm9yIGZhc3QgY2hhbm5lbCBzd2l0Y2hpbmcuIFZhbHVlIGluIG1pbGxpc2Vjb25kcy4iLA0KICAgICAgInBsYWNlaG9sZGVyIjogIjEwMCINCiAgICB9LA0KICAgICJ1c2VyQWdlbnQiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJVc2VyIEFnZW50IiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJVc2VyIEFnZW50IGZvciBIVFRQIHJlcXVlc3RzLiBGb3IgZXZlcnkgSFRUUCBjb25uZWN0aW9uLCB0aGlzIHZhbHVlIGlzIHVzZWQgZm9yIHRoZSB1c2VyIGFnZW50LiBTaG91bGQgb25seSBiZSBjaGFuZ2VkIGlmIHhUZVZlIGlzIGJsb2NrZWQuIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJ4VGVWZSINCiAgICB9LA0KICAgICJiYWNrdXBQYXRoIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiTG9jYXRpb24gZm9yIGF1dG9tYXRpYyBiYWNrdXBzIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIvbW50L2RhdGEvYmFja3VwL3h0ZXZlLyIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiQmVmb3JlIGFueSB1cGRhdGUgb2YgdGhlIHByb3ZpZGVyIGRhdGEgYnkgdGhlIHNjaGVkdWxlLCB4VGVWZSBjcmVhdGVzIGEgYmFja3VwLiBUaGUgcGF0aCBmb3IgdGhlIGF1dG9tYXRpYyBiYWNrdXBzIGNhbiBiZSBjaGFuZ2VkLiB4VGVWZSByZXF1aXJlcyB3cml0ZSBwZXJtaXNzaW9uIGZvciB0aGlzIGZvbGRlci4iDQogICAgfSwNCiAgICAidGVtcFBhdGgiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJMb2NhdGlvbiBmb3IgdGhlIHRlbXBvcmFyeSBmaWxlcyIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiL3RtcC94dGV2ZS8iLA0KICAgICAgImRlc2NyaXB0aW9uIjogIkxvY2F0aW9uIGZvciB0aGUgYnVmZmVyIGZpbGVzLiINCiAgICB9LA0KICAgICJiYWNrdXBLZWVwIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiTnVtYmVyIG9mIGJhY2t1cHMgdG8ga2VlcCIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiTnVtYmVyIG9mIGJhY2t1cHMgdG8ga2VlcC4gT2xkZXIgYmFja3VwcyBhcmUgYXV0b21hdGljYWxseSBkZWxldGVkLiINCiAgICB9LA0KICAgICJhdXRoZW50aWNhdGlvbldFQiI6DQogICAgew0KICAgICAgInRpdGxlIjogIldFQiBBdXRoZW50aWNhdGlvbiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiQWNjZXNzIHRvIHRoZSB3ZWIgaW50ZXJmYWNlIG9ubHkgcG9zc2libGUgd2l0aCBjcmVkZW50aWFscy4iDQogICAgfSwNCiAgICAiYXV0aGVudGljYXRpb25QTVMiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJQTVMgQXV0aGVudGljYXRpb24iLA0KICAgICAgImRlc2NyaXB0aW9uIjogIlBsZXggcmVxdWVzdHMgYXJlIG9ubHkgcG9zc2libGUgd2l0aCBhdXRoZW50aWNhdGlvbi4gPGJyPjxiPldhcm5pbmchISE8L2I+IEFmdGVyIGFjdGl2YXRpbmcgdGhpcyBmdW5jdGlvbiB4VGVWZSBtdXN0IGJlIGRlbGV0ZSBpbiB0aGUgUE1TIERWUiBzZXR0aW5ncyBhbmQgc2V0IHVwIGFnYWluLiINCiAgICB9LA0KICAgICJhdXRoZW50aWNhdGlvbk0zVSI6DQogICAgew0KICAgICAgInRpdGxlIjogIk0zVSBBdXRoZW50aWNhdGlvbiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiRG93bmxvYWRpbmcgdGhlIHh0ZXZlLm0zdSBmaWxlIHZpYSBhbiBIVFRQIHJlcXVlc3QgaXMgb25seSBwb3NzaWJsZSB3aXRoIGF1dGhlbnRpY2F0aW9uLiINCiAgICB9LA0KICAgICJhdXRoZW50aWNhdGlvblhNTCI6DQogICAgew0KICAgICAgInRpdGxlIjogIlhNTCBBdXRoZW50aWNhdGlvbiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiRG93bmxvYWRpbmcgdGhlIHh0ZXZlLnhtbCBmaWxlIHZpYSBhbiBIVFRQIHJlcXVlc3QgaXMgb25seSBwb3NzaWJsZSB3aXRoIGF1dGhlbnRpY2F0aW9uIg0KICAgIH0sDQogICAgImF1dGhlbnRpY2F0aW9uQVBJIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiQVBJIEF1dGhlbnRpY2F0aW9uIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJBY2Nlc3MgdG8gdGhlIEFQSSBpbnRlcmZhY2UgaXMgb25seSBwb3NzaWJsZSB3aXRoIGF1dGhlbnRpY2F0aW9uLiINCiAgICB9DQogIH0sDQogICJ3aXphcmQiOg0KICB7DQogICAgImVwZ1NvdXJjZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIkVQRyBTb3VyY2UiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIlBNUzo8YnI+LSBVc2UgRVBHIGRhdGEgZnJvbSBQbGV4IG9yIEVtYnkgPGJyPjxicj5YRVBHOjxicj4tIFVzZSBvZiBvbmUgb3IgbW9yZSBYTUxUViBmaWxlczxicj4tIENoYW5uZWwgbWFuYWdlbWVudDxicj4tIE0zVSAvIFhNTFRWIGV4cG9ydCAoSFRUUCBsaW5rIGZvciBJUFRWIGFwcHMpIg0KICAgIH0sDQogICAgInR1bmVyIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiTnVtYmVyIG9mIHR1bmVycyIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiTnVtYmVyIG9mIHBhcmFsbGVsIGNvbm5lY3Rpb25zIHRoYXQgY2FuIGJlIGVzdGFibGlzaGVkIHRvIHRoZSBwcm92aWRlci48YnI+QXZhaWxhYmxlIGZvcjogUGxleCwgRW1ieSAoSERIUiksIE0zVSAod2l0aCBhY3RpdmUgYnVmZmVyKS48YnI+QWZ0ZXIgYSBjaGFuZ2UsIHhUZVZlIG11c3QgYmUgZGVsZXRlIGluIHRoZSBQbGV4IC8gRW1ieSBEVlIgc2V0dGluZ3MgYW5kIHNldCB1cCBhZ2Fpbi4iDQogICAgfSwNCiAgICAibTN1IjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiTTNVIFBsYXlsaXN0IiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJGaWxlIHBhdGggb3IgVVJMIG9mIHRoZSBNM1UiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIkxvY2FsIG9yIHJlbW90ZSBwbGF5bGlzdHMiDQogICAgfSwNCiAgICAieG1sdHYiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJYTUxUViBGaWxlIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJGaWxlIHBhdGggb3IgVVJMIG9mIHRoZSBYTUxUViIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiTG9jYWwgb3IgcmVtb3RlIFhNTFRWIGZpbGUiDQogICAgfQ0KICB9LA0KICAibG9naW4iOg0KICB7DQogICAgImZhaWxlZCI6ICJVc2VyIGF1dGhlbnRpY2F0aW9uIGZhaWxlZCIsDQogICAgImhlYWRsaW5lIjogIkxvZ2luIiwNCiAgICAidXNlcm5hbWUiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJVc2VybmFtZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiVXNlcm5hbWUiDQogICAgfSwNCiAgICAicGFzc3dvcmQiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJQYXNzd29yZCIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiUGFzc3dvcmQiDQogICAgfQ0KICB9LA0KICAiYWNjb3VudCI6DQogIHsNCiAgICAiZmFpbGVkIjogIlBhc3N3b3JkIGRvZXMgbm90IG1hdGNoIiwNCiAgICAiaGVhZGxpbmUiOiAiQ3JlYXRlIHVzZXIgYWNjb3VudCIsDQogICAgInVzZXJuYW1lIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiVXNlcm5hbWUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIlVzZXJuYW1lIg0KICAgIH0sDQogICAgInBhc3N3b3JkIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiUGFzc3dvcmQiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIlBhc3N3b3JkIg0KICAgIH0sDQogICAgImNvbmZpcm0iOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJDb25maXJtIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJDb25maXJtIg0KICAgIH0NCiAgfQ0KfQ==" webUI["html/login.html"] = "PCFkb2N0eXBlIGh0bWw+DQo8aHRtbD4NCiAgPGhlYWQ+DQogICAgPG1ldGEgY2hhcnNldD0idXRmLTgiPg0KICAgIDxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgsIGluaXRpYWwtc2NhbGU9MS4wIiAvPiANCiAgICA8dGl0bGU+eFRlVmU8L3RpdGxlPg0KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iY3NzL3NjcmVlbi5jc3MiIHR5cGU9InRleHQvY3NzIj4NCiAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9ImNzcy9iYXNlLmNzcyIgdHlwZT0idGV4dC9jc3MiPg0KICAgIDxzY3JpcHQgbGFuZ3VhZ2U9ImphdmFzY3JpcHQiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJqcy9uZXR3b3JrX3RzLmpzIj48L3NjcmlwdD4NCiAgICA8c2NyaXB0IGxhbmd1YWdlPSJqYXZhc2NyaXB0IiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ianMvYXV0aGVudGljYXRpb25fdHMuanMiPjwvc2NyaXB0Pg0KICA8L2hlYWQ+DQoNCiAgICA8Ym9keT4NCiAgICAgICAgICANCiAgICAgIDxkaXYgaWQ9ImhlYWRlciIgY2xhc3M9ImltZ0NlbnRlciI+PC9kaXY+DQoNCiAgICAgIDxkaXYgaWQ9ImJveCI+DQoNCiAgICAgICAgPGRpdiBpZD0iaGVhZGxpbmUiPg0KICAgICAgICAgIDxoMSBpZD0iaGVhZC10ZXh0IiBjbGFzcz0iY2VudGVyIj57ey5sb2dpbi5oZWFkbGluZX19PC9oMT4NCiAgICAgICAgPC9kaXY+DQoNCiAgICAgICAgPHAgaWQ9ImVyciIgY2xhc3M9ImVycm9yTXNnIGNlbnRlciI+e3suYXV0aGVudGljYXRpb25FcnJ9fTwvcD4NCg0KICAgICAgICA8ZGl2IGlkPSJjb250ZW50Ij4NCg0KICAgICAgICAgICAgPGZvcm0gaWQ9ImF1dGhlbnRpY2F0aW9uIiBhY3Rpb249IiIgbWV0aG9kPSJwb3N0Ij4NCg0KICAgICAgICAgICAgICA8aDU+e3subG9naW4udXNlcm5hbWUudGl0bGV9fTo8L2g1Pg0KICAgICAgICAgICAgICA8aW5wdXQgaWQ9InVzZXJuYW1lIiB0eXBlPSJ0ZXh0IiBuYW1lPSJ1c2VybmFtZSIgcGxhY2Vob2xkZXI9IlVzZXJuYW1lIiB2YWx1ZT0iIj4NCiAgICAgICAgICAgICAgPGg1Pnt7LmxvZ2luLnBhc3N3b3JkLnRpdGxlfX06PC9oNT4NCiAgICAgICAgICAgICAgPGlucHV0IGlkPSJwYXNzd29yZCIgdHlwZT0icGFzc3dvcmQiIG5hbWU9InBhc3N3b3JkIiBwbGFjZWhvbGRlcj0iUGFzc3dvcmQiIHZhbHVlPSIiPg0KDQogICAgICAgICAgICA8L2Zvcm0+DQoNCiAgICAgICAgPC9kaXY+DQoNCiAgICAgICAgPGRpdiBpZD0iYm94LWZvb3RlciI+DQogICAgICAgICAgPGlucHV0IGlkPSJzdWJtaXQiIGNsYXNzPSIiIHR5cGU9ImJ1dHRvbiIgdmFsdWU9Int7LmJ1dHRvbi5sb2dpbn19IiBvbmNsaWNrPSJqYXZhc2NyaXB0OiBsb2dpbigpOyI+DQogICAgICAgIDwvZGl2Pg0KICAgICAgICANCiAgICAgIDwvZGl2Pg0KDQogICAgPC9ib2R5Pg0KICAgIA0KPC9odG1sPg==" webUI["html/maintenance.html"] = "PCFkb2N0eXBlIGh0bWw+DQo8aHRtbD4NCiAgPGhlYWQ+DQogICAgPG1ldGEgY2hhcnNldD0idXRmLTgiPg0KICAgIDxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgsIGluaXRpYWwtc2NhbGU9MS4wIiAvPiANCiAgICA8dGl0bGU+eFRlVmU8L3RpdGxlPg0KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iY3NzL3NjcmVlbi5jc3MiIHR5cGU9InRleHQvY3NzIj4NCiAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9ImNzcy9iYXNlLmNzcyIgdHlwZT0idGV4dC9jc3MiPg0KICA8L2hlYWQ+DQoNCiAgICA8Ym9keT4NCiAgICAgICAgICANCiAgICAgIDxkaXYgaWQ9ImhlYWRlciIgY2xhc3M9ImltZ0NlbnRlciI+PC9kaXY+DQoNCiAgICAgIDxkaXYgaWQ9ImJveCI+DQoNCiAgICAgICAgPGRpdiBpZD0iaGVhZGxpbmUiPg0KICAgICAgICAgIDxoMSBpZD0iaGVhZC10ZXh0IiBjbGFzcz0iY2VudGVyIj5NYWludGVuYW5jZTwvaDE+ICAgICAgDQogICAgICAgIDwvZGl2PiAgDQoNCiAgICAgICAgPGRpdiBpZD0iY29udGVudCI+DQogICAgICAgICAgeFRlVmUgaXMgdXBkYXRpbmcgdGhlIGRhdGFiYXNlLCBwbGVhc2UgdHJ5IGFnYWluIGxhdGVyLg0KICAgICAgICA8L2Rpdj4NCg0KICAgICAgICA8ZGl2IGlkPSJib3gtZm9vdGVyIj48L2Rpdj4NCiAgICAgICAgDQogICAgICA8L2Rpdj4NCg0KICAgIDwvYm9keT4NCjwvaHRtbD4=" diff --git a/src/webserver.go b/src/webserver.go index 1563c9d..f5898b0 100644 --- a/src/webserver.go +++ b/src/webserver.go @@ -462,7 +462,8 @@ func WS(w http.ResponseWriter, r *http.Request) { var previousTLSMode = Settings.TLSMode var previousHostIP = Settings.HostIP var previousStoreBufferInRAM = Settings.StoreBufferInRAM - // TODO: Auto assign here if enabled + var previousDefaultMissingEPG = Settings.DefaultMissingEPG + response.Settings, err = updateServerSettings(request) if err == nil { @@ -494,6 +495,12 @@ func WS(w http.ResponseWriter, r *http.Request) { initBufferVFS(Settings.StoreBufferInRAM) } + if Settings.DefaultMissingEPG != "-" && previousDefaultMissingEPG == "-" { + System.ScanInProgress = 1 + mapping() + System.ScanInProgress = 0 + } + } case "saveFilesM3U": diff --git a/ts/settings_ts.ts b/ts/settings_ts.ts index 522423d..6a26d8a 100644 --- a/ts/settings_ts.ts +++ b/ts/settings_ts.ts @@ -389,7 +389,7 @@ class SettingsCategory { var tdRight = document.createElement("TD") var text:any[] = [ "-", "30 Minutes (30_Minutes)", "60 Minutes (60_Minutes)", "90 Minutes (90_Minutes)", - "120 Minutes (120_Minutes)", "180 Minutes (30_Minutes)", "240 Minutes (30_Minutes)", "360 Minutes (30_Minutes)" + "120 Minutes (120_Minutes)", "180 Minutes (180_Minutes)", "240 Minutes (240_Minutes)", "360 Minutes (360_Minutes)" ] var values:any[] = [ "-", "30_Minutes", "60_Minutes", "90_Minutes", "120_Minutes", "180_Minutes", "240_Minutes", "360_Minutes" From 125efd8b423a6e52f560c09abbbc3983e21804d7 Mon Sep 17 00:00:00 2001 From: SCP002 Date: Wed, 4 May 2022 19:01:29 +0300 Subject: [PATCH 112/189] Add config option to automatically enable mapped channels. Closes #40 --- html/js/base_ts.js | 2 +- html/js/settings_ts.js | 14 ++++++++++++++ html/lang/en.json | 5 ++++- src/struct-system.go | 1 + src/struct-webserver.go | 1 + src/system.go | 1 + src/webUI.go | 6 +++--- src/webserver.go | 9 +++++++++ src/xepg.go | 10 +++++----- ts/base_ts.ts | 2 +- ts/settings_ts.ts | 18 ++++++++++++++++++ 11 files changed, 58 insertions(+), 11 deletions(-) diff --git a/html/js/base_ts.js b/html/js/base_ts.js index c8e97f7..e9b27a3 100644 --- a/html/js/base_ts.js +++ b/html/js/base_ts.js @@ -19,7 +19,7 @@ menuItems.push(new MainMenuItem("logout", "{{.mainMenu.item.logout}}", "logout.p // Settings categories var settingsCategory = new Array(); settingsCategory.push(new SettingsCategoryItem("{{.settings.category.general}}", "tlsMode,xteveAutoUpdate,hostIP,tuner,epgSource,disallowURLDuplicates,api")); -settingsCategory.push(new SettingsCategoryItem("{{.settings.category.mapping}}", "defaultMissingEPG")); +settingsCategory.push(new SettingsCategoryItem("{{.settings.category.mapping}}", "defaultMissingEPG,enableMappedChannels")); settingsCategory.push(new SettingsCategoryItem("{{.settings.category.files}}", "update,files.update,temp.path,cache.images,xepg.replace.missing.images")); settingsCategory.push(new SettingsCategoryItem("{{.settings.category.streaming}}", "buffer,udpxy,buffer.size.kb,storeBufferInRAM,buffer.timeout,user.agent,ffmpeg.path,ffmpeg.options,vlc.path,vlc.options")); settingsCategory.push(new SettingsCategoryItem("{{.settings.category.backup}}", "backup.path,backup.keep")); diff --git a/html/js/settings_ts.js b/html/js/settings_ts.js index f739859..84b0914 100644 --- a/html/js/settings_ts.js +++ b/html/js/settings_ts.js @@ -260,6 +260,17 @@ class SettingsCategory { setting.appendChild(tdLeft); setting.appendChild(tdRight); break; + case "enableMappedChannels": + var tdLeft = document.createElement("TD"); + tdLeft.innerHTML = "{{.settings.enableMappedChannels.title}}" + ":"; + var tdRight = document.createElement("TD"); + var input = content.createCheckbox(settingsKey); + input.checked = data; + input.setAttribute("onchange", "javascript: this.className = 'changed'"); + tdRight.appendChild(input); + setting.appendChild(tdLeft); + setting.appendChild(tdRight); + break; // Select case "hostIP": var tdLeft = document.createElement("TD"); @@ -452,6 +463,9 @@ class SettingsCategory { case "defaultMissingEPG": text = "{{.settings.defaultMissingEPG.description}}"; break; + case "enableMappedChannels": + text = "{{.settings.enableMappedChannels.description}}"; + break; case "files.update": text = "{{.settings.filesUpdate.description}}"; break; diff --git a/html/lang/en.json b/html/lang/en.json index 511ae8c..283095f 100644 --- a/html/lang/en.json +++ b/html/lang/en.json @@ -397,9 +397,12 @@ "defaultMissingEPG": { "title": "Fill Missing EPG Data", - "placeholder": "", "description": "When there is no matching EPG data for channel,
autofill with xTeVe dummy EPG data?" }, + "enableMappedChannels": { + "title": "Enable mapped channels", + "description": "Automatically enable channels with assigned EPG data" + }, "disallowURLDuplicates": { "title": "Disallow URL duplicates", diff --git a/src/struct-system.go b/src/struct-system.go index 65cf99d..569f020 100644 --- a/src/struct-system.go +++ b/src/struct-system.go @@ -286,6 +286,7 @@ type SettingsStruct struct { CacheImages bool `json:"cache.images"` DefaultMissingEPG string `json:"defaultMissingEPG,required"` DisallowURLDuplicates bool `json:"disallowURLDuplicates"` + EnableMappedChannels bool `json:"enableMappedChannels"` EpgSource string `json:"epgSource"` FFmpegOptions string `json:"ffmpeg.options"` FFmpegPath string `json:"ffmpeg.path"` diff --git a/src/struct-webserver.go b/src/struct-webserver.go index 9b6643f..e731952 100644 --- a/src/struct-webserver.go +++ b/src/struct-webserver.go @@ -31,6 +31,7 @@ type RequestStruct struct { CacheImages *bool `json:"cache.images,omitempty"` DefaultMissingEPG *string `json:"defaultMissingEPG,omitempty"` DisallowURLDuplicates *bool `json:"disallowURLDuplicates,omitempty"` + EnableMappedChannels *bool `json:"enableMappedChannels,omitempty"` EpgSource *string `json:"epgSource,omitempty"` FFmpegOptions *string `json:"ffmpeg.options,omitempty"` FFmpegPath *string `json:"ffmpeg.path,omitempty"` diff --git a/src/system.go b/src/system.go index 1bbe448..820f08f 100644 --- a/src/system.go +++ b/src/system.go @@ -118,6 +118,7 @@ func loadSettings() (settings SettingsStruct, err error) { defaults["cache.images"] = false defaults["defaultMissingEPG"] = "-" defaults["disallowURLDuplicates"] = false + defaults["enableMappedChannels"] = false defaults["epgSource"] = "PMS" defaults["ffmpeg.options"] = System.FFmpeg.DefaultOptions defaults["files.update"] = true diff --git a/src/webUI.go b/src/webUI.go index b2ecc3e..36787bf 100644 --- a/src/webUI.go +++ b/src/webUI.go @@ -25,14 +25,14 @@ func loadHTMLMap() { webUI["html/img/xmltv.png"] = "iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAAAXNSR0IArs4c6QAAAAlwSFlzAAAsSwAALEsBpT2WqQAABCRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IlhNUCBDb3JlIDUuNC4wIj4KICAgPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIgogICAgICAgICAgICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgICAgICAgICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyI+CiAgICAgICAgIDx0aWZmOlJlc29sdXRpb25Vbml0PjI8L3RpZmY6UmVzb2x1dGlvblVuaXQ+CiAgICAgICAgIDx0aWZmOkNvbXByZXNzaW9uPjU8L3RpZmY6Q29tcHJlc3Npb24+CiAgICAgICAgIDx0aWZmOlhSZXNvbHV0aW9uPjI4ODwvdGlmZjpYUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6T3JpZW50YXRpb24+MTwvdGlmZjpPcmllbnRhdGlvbj4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+Mjg4PC90aWZmOllSZXNvbHV0aW9uPgogICAgICAgICA8ZXhpZjpQaXhlbFhEaW1lbnNpb24+NTA8L2V4aWY6UGl4ZWxYRGltZW5zaW9uPgogICAgICAgICA8ZXhpZjpDb2xvclNwYWNlPjE8L2V4aWY6Q29sb3JTcGFjZT4KICAgICAgICAgPGV4aWY6UGl4ZWxZRGltZW5zaW9uPjUwPC9leGlmOlBpeGVsWURpbWVuc2lvbj4KICAgICAgICAgPGRjOnN1YmplY3Q+CiAgICAgICAgICAgIDxyZGY6QmFnLz4KICAgICAgICAgPC9kYzpzdWJqZWN0PgogICAgICAgICA8eG1wOk1vZGlmeURhdGU+MjAxOC0wNy0yOFQyMDowNzozMzwveG1wOk1vZGlmeURhdGU+CiAgICAgICAgIDx4bXA6Q3JlYXRvclRvb2w+UGl4ZWxtYXRvciAzLjM8L3htcDpDcmVhdG9yVG9vbD4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgIDwvcmRmOlJERj4KPC94OnhtcG1ldGE+Co6j9bsAAAGgSURBVGgF7VqxTsNADL0gYGEon8DOwsbAAH8BYmJn6cYIn8DC3h0+oixISFRiYYCJL0AwMMBAeK5w2rpV6uikxHfYknW98+vds18TK21DWGBlWR7CH+BfcEv2AzLP8HP42gLqkyUATuEp2PWEdQjF9ATs1zF/g29Mrxt+vVcUxR3xWxEktzFPJQmivsv8ZSI9DiQyVnxlIonwn6fpiczXpNuVVXH8O+a3Ys3y9NUyuf/NTTbEHZTjUlGSRzSiPhroUIENwB4AS/vS/susDwDhTpYBER9g7wHh5DWyibV9CiitCZbIafDEYUuJHQI3Nr/9ciWsjK6IFSWYhyvClbAyZqOIlYJG84jq7E1Ot97Zm+TinV1TrWwudk9EI3ebGFekzWprzspGEU2ySWCiOrs/s9dr7M/s9fVJJJrNXcsTsfaJc0WsKZINH+/sf1Jqvl1n1f2ZnStRN/pdq646XcSkIh9dkIg4s+IrE3nCpp8RG7f91ns+cCYR/LD4jcAZB42PN+A7/mcQ8ZxJhBYQvMJwBB/BKTFLVoLMC/wCfgyv7BesTKUC2LKM3wAAAABJRU5ErkJggg==" webUI["html/index.html"] = "PCFkb2N0eXBlIGh0bWw+DQo8aHRtbD4NCiAgPGhlYWQ+DQogICAgPG1ldGEgY2hhcnNldD0idXRmLTgiPg0KICAgIDwhLS0tDQogICAgPG1ldGEgbmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9IndpZHRoPWRldmljZS13aWR0aCwgaW5pdGlhbC1zY2FsZT0xLjAiIC8+IA0KICAgIC0tPg0KICAgIDx0aXRsZT54VGVWZTwvdGl0bGU+DQogICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJjc3Mvc2NyZWVuLmNzcyIgdHlwZT0idGV4dC9jc3MiPg0KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iY3NzL2Jhc2UuY3NzIiB0eXBlPSJ0ZXh0L2NzcyI+DQoNCiAgICA8c2NyaXB0IGxhbmd1YWdlPSJqYXZhc2NyaXB0IiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ianMvbmV0d29ya190cy5qcyI+PC9zY3JpcHQ+DQogICAgPHNjcmlwdCBsYW5ndWFnZT0iamF2YXNjcmlwdCIgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9ImpzL21lbnVfdHMuanMiPjwvc2NyaXB0Pg0KICAgIDxzY3JpcHQgbGFuZ3VhZ2U9ImphdmFzY3JpcHQiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJqcy9zZXR0aW5nc190cy5qcyI+PC9zY3JpcHQ+DQogICAgPHNjcmlwdCBsYW5ndWFnZT0iamF2YXNjcmlwdCIgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9ImpzL2xvZ3NfdHMuanMiPjwvc2NyaXB0Pg0KICAgIDxzY3JpcHQgbGFuZ3VhZ2U9ImphdmFzY3JpcHQiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJqcy9iYXNlX3RzLmpzIj48L3NjcmlwdD4NCg0KICA8L2hlYWQ+DQoNCiAgICA8Ym9keSBvbmxvYWQ9ImphdmFzY3JpcHQ6IFBhZ2VSZWFkeSgpOyI+DQoNCiAgICAgIDxkaXYgaWQ9ImxvYWRpbmciIGNsYXNzPSJub25lIj4NCiAgICAgICAgPGRpdiBjbGFzcz0ibG9hZGVyIj48L2Rpdj4NCiAgICAgIDwvZGl2Pg0KDQogICAgICA8ZGl2IGlkPSJwb3B1cCIgY2xhc3M9Im5vbmUiPg0KICAgICAgICA8ZGl2IGlkPSJwb3B1cC1jdXN0b20iPjwvZGl2Pg0KICAgICAgPC9kaXY+DQoNCiAgICAgIDxkaXYgaWQ9ImxheW91dCI+DQoNCiAgICAgICAgPCEtLQ0KICAgICAgICA8ZGl2IGlkPSJub3RpZmljYXRpb24iPg0KICAgICAgICAgIDxkaXYgY2xhc3M9ImVsZW1lbnQiPg0KICAgICAgICAgICAgPGg1PlhFUEc8L2g1Pg0KICAgICAgICAgICAgPHByZT4xMS4wNS4yMDE5IC0gMjA6MjE8L3ByZT4NCiAgICAgICAgICAgIDxocj4NCiAgICAgICAgICAgIDxwPkhhbGxvIGRhcyBpc3QgZWluIFRlc3QuIFVuZCBub2NoIG1laHIgVGV4dC48L3A+DQogICAgICAgICAgPC9kaXY+DQogICAgICAgIDwvZGl2Pg0KICAgICAgLS0+DQoNCiAgICAgICAgPGRpdiBpZD0ibWVudS13cmFwcGVyIiBjbGFzcz0ibGF5b3V0LWxlZnQiPg0KICAgICAgICAgIDxkaXYgaWQ9ICJicmFuY2giPjwvZGl2Pg0KICAgICAgICAgIDxkaXYgaWQ9ImxvZ28iPjwvZGl2Pg0KICAgICAgICAgIDxuYXYgaWQ9Im1haW4tbWVudSI+PC9uYXY+DQogICAgICAgIDwvZGl2Pg0KDQogICAgICAgIDxkaXYgY2xhc3M9ImxheW91dC1yaWdodCI+DQoNCiAgICAgICAgICA8dGFibGUgaWQ9ImNsaWVudEluZm8iIGNsYXNzPSIiPg0KDQogICAgICAgICAgICA8dHI+DQogICAgICAgICAgICAgIDx0ZCBjbGFzcz0idGRLZXkiPnhUZVZlOjwvdGQ+DQogICAgICAgICAgICAgIDx0ZCBpZD0idmVyc2lvbiIgY2xhc3M9InRkVmFsIj4mbmJzcDs8L3RkPg0KICAgICAgICAgICAgICA8dGQgY2xhc3M9InRkS2V5Ij5PUzo8L3RkPg0KICAgICAgICAgICAgICA8dGQgaWQ9Im9zIiBjbGFzcz0idGRWYWwiPiZuYnNwOzwvdGQ+DQogICAgICAgICAgICAgIDx0ZCBjbGFzcz0idGRLZXkgcGhvbmUiPkRWUiBJUDo8L3RkPg0KICAgICAgICAgICAgICA8dGQgaWQ9IkRWUiIgY2xhc3M9InRkVmFsIHBob25lIj4mbmJzcDs8L3RkPg0KICAgICAgICAgICAgPC90cj4NCg0KICAgICAgICAgICAgPHRyPg0KICAgICAgICAgICAgICA8dGQgY2xhc3M9InRkS2V5Ij5VVUlEOjwvdGQ+DQogICAgICAgICAgICAgIDx0ZCBpZD0idXVpZCIgY2xhc3M9InRkVmFsIj4mbmJzcDs8L3RkPg0KICAgICAgICAgICAgICA8dGQgY2xhc3M9InRkS2V5Ij5BcmNoOjwvdGQ+DQogICAgICAgICAgICAgIDx0ZCBpZD0iYXJjaCIgY2xhc3M9InRkVmFsIj4mbmJzcDs8L3RkPg0KICAgICAgICAgICAgICA8dGQgY2xhc3M9InRkS2V5IHBob25lIj5NM1UgVVJMOjwvdGQ+DQogICAgICAgICAgICAgIDx0ZCBpZD0ibTN1LXVybCIgY2xhc3M9InRkVmFsIHBob25lIj4mbmJzcDs8L3RkPg0KICAgICAgICAgICAgPC90cj4NCg0KICAgICAgICAgICAgPHRyPg0KICAgICAgICAgICAgICA8dGQgY2xhc3M9InRkS2V5Ij5BdmFpbGFibGUgU3RyZWFtczo8L3RkPg0KICAgICAgICAgICAgICA8dGQgaWQ9InN0cmVhbXMiIGNsYXNzPSJ0ZFZhbCI+Jm5ic3A7PC90ZD4NCiAgICAgICAgICAgICAgPHRkIGNsYXNzPSJ0ZEtleSI+RVBHIFNvdXJjZTo8L3RkPg0KICAgICAgICAgICAgICA8dGQgaWQ9ImVwZ1NvdXJjZSIgY2xhc3M9InRkVmFsIj4mbmJzcDs8L3RkPg0KICAgICAgICAgICAgICA8dGQgY2xhc3M9InRkS2V5IHBob25lIj5YRVBHIFVSTDo8L3RkPg0KICAgICAgICAgICAgICA8dGQgaWQ9InhlcGctdXJsIiBjbGFzcz0idGRWYWwgcGhvbmUiPiZuYnNwOzwvdGQ+DQogICAgICAgICAgICA8L3RyPg0KDQogICAgICAgICAgICA8dHI+DQogICAgICAgICAgICAgIDx0ZCBjbGFzcz0idGRLZXkiPlhFUEcgQ2hhbm5lbHM6PC90ZD4NCiAgICAgICAgICAgICAgPHRkIGlkPSJ4ZXBnIiBjbGFzcz0idGRWYWwiPiZuYnNwOzwvdGQ+DQogICAgICAgICAgICAgIDx0ZCBjbGFzcz0idGRLZXkiPkVycm9yczo8L3RkPg0KICAgICAgICAgICAgICA8dGQgaWQ9ImVycm9ycyIgY2xhc3M9InRkVmFsIj4mbmJzcDs8L3RkPg0KICAgICAgICAgICAgICA8dGQgY2xhc3M9InRkS2V5Ij5XYXJuaW5nczo8L3RkPg0KICAgICAgICAgICAgICA8dGQgaWQ9Indhcm5pbmdzIiBjbGFzcz0idGRWYWwiPiZuYnNwOzwvdGQ+DQogICAgICAgICAgICA8L3RyPg0KDQogICAgICAgICAgPC90YWJsZT4NCiAgICAgICAgIA0KICAgICAgICAgIDxkaXYgaWQ9Im15U3RyZWFtc0JveCIgY2xhc3M9Im5vdFZpc2libGUiPg0KDQogICAgICAgICAgICA8ZGl2IGlkPSJhbGxTdHJlYW1zIj4NCiAgICAgICAgICAgICAgPHRhYmxlIGlkPSJhY3RpdmVTdHJlYW1zIj48L3RhYmxlPg0KICAgICAgICAgICAgICA8dGFibGUgaWQ9ImluYWN0aXZlU3RyZWFtcyI+PC90YWJsZT4NCiAgICAgICAgICAgIDwvZGl2Pg0KDQogICAgICAgICAgPC9kaXY+DQogICAgICAgICAgDQogICAgICAgICAgPGRpdiBpZD0iY29udGVudCIgY2xhc3M9IiI+PC9kaXY+DQogICAgICAgICAgICANCiAgICAgICAgPC9kaXY+DQoNCiAgICAgIDwvZGl2Pg0KICAgICAgDQogICAgPC9ib2R5Pg0KICAgIA0KPC9odG1sPg==" webUI["html/js/authentication_ts.js"] = "ZnVuY3Rpb24gbG9naW4oKSB7DQogICAgdmFyIGVyciA9IGZhbHNlOw0KICAgIHZhciBkYXRhID0gbmV3IE9iamVjdCgpOw0KICAgIHZhciBkaXYgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29udGVudCIpOw0KICAgIHZhciBmb3JtID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImF1dGhlbnRpY2F0aW9uIik7DQogICAgdmFyIGlucHV0cyA9IGRpdi5nZXRFbGVtZW50c0J5VGFnTmFtZSgiSU5QVVQiKTsNCiAgICBmb3IgKHZhciBpID0gaW5wdXRzLmxlbmd0aCAtIDE7IGkgPj0gMDsgaS0tKSB7DQogICAgICAgIHZhciBrZXkgPSBpbnB1dHNbaV0ubmFtZTsNCiAgICAgICAgdmFyIHZhbHVlID0gaW5wdXRzW2ldLnZhbHVlOw0KICAgICAgICBpZiAodmFsdWUubGVuZ3RoID09IDApIHsNCiAgICAgICAgICAgIGlucHV0c1tpXS5zdHlsZS5ib3JkZXJDb2xvciA9ICJyZWQiOw0KICAgICAgICAgICAgZXJyID0gdHJ1ZTsNCiAgICAgICAgfQ0KICAgICAgICBkYXRhW2tleV0gPSB2YWx1ZTsNCiAgICB9DQogICAgaWYgKGVyciA9PSB0cnVlKSB7DQogICAgICAgIGRhdGEgPSBuZXcgT2JqZWN0KCk7DQogICAgICAgIHJldHVybjsNCiAgICB9DQogICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoImNvbmZpcm0iKSkgew0KICAgICAgICBpZiAoZGF0YVsiY29uZmlybSJdICE9IGRhdGFbInBhc3N3b3JkIl0pIHsNCiAgICAgICAgICAgIGFsZXJ0KCJzZGFmc2QiKTsNCiAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdwYXNzd29yZCcpLnN0eWxlLmJvcmRlckNvbG9yID0gInJlZCI7DQogICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY29uZmlybScpLnN0eWxlLmJvcmRlckNvbG9yID0gInJlZCI7DQogICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZXJyIikuaW5uZXJIVE1MID0gInt7LmFjY291bnQuZmFpbGVkfX0iOw0KICAgICAgICAgICAgcmV0dXJuOw0KICAgICAgICB9DQogICAgfQ0KICAgIGZvcm0uc3VibWl0KCk7DQp9DQo=" - webUI["html/js/base_ts.js"] = "dmFyIFNFUlZFUiA9IG5ldyBPYmplY3QoKTsNCnZhciBCVUxLX0VESVQgPSBmYWxzZTsNCnZhciBDT0xVTU5fVE9fU09SVDsNCnZhciBTRUFSQ0hfTUFQUElORyA9IG5ldyBPYmplY3QoKTsNCnZhciBVTkRPID0gbmV3IE9iamVjdCgpOw0KdmFyIFNFUlZFUl9DT05ORUNUSU9OID0gZmFsc2U7DQp2YXIgV1NfQVZBSUxBQkxFID0gZmFsc2U7DQovLyBNZW51DQp2YXIgbWVudUl0ZW1zID0gbmV3IEFycmF5KCk7DQptZW51SXRlbXMucHVzaChuZXcgTWFpbk1lbnVJdGVtKCJwbGF5bGlzdCIsICJ7ey5tYWluTWVudS5pdGVtLnBsYXlsaXN0fX0iLCAibTN1LnBuZyIsICJ7ey5tYWluTWVudS5oZWFkbGluZS5wbGF5bGlzdH19IikpOw0KLy9tZW51SXRlbXMucHVzaChuZXcgTWFpbk1lbnVJdGVtKCJwbXNJRCIsICJ7ey5tYWluTWVudS5pdGVtLnBtc0lEfX0iLCAibnVtYmVyLnBuZyIsICJ7ey5tYWluTWVudS5oZWFkbGluZS5wbXNJRH19IikpDQptZW51SXRlbXMucHVzaChuZXcgTWFpbk1lbnVJdGVtKCJmaWx0ZXIiLCAie3subWFpbk1lbnUuaXRlbS5maWx0ZXJ9fSIsICJmaWx0ZXIucG5nIiwgInt7Lm1haW5NZW51LmhlYWRsaW5lLmZpbHRlcn19IikpOw0KbWVudUl0ZW1zLnB1c2gobmV3IE1haW5NZW51SXRlbSgieG1sdHYiLCAie3subWFpbk1lbnUuaXRlbS54bWx0dn19IiwgInhtbHR2LnBuZyIsICJ7ey5tYWluTWVudS5oZWFkbGluZS54bWx0dn19IikpOw0KbWVudUl0ZW1zLnB1c2gobmV3IE1haW5NZW51SXRlbSgibWFwcGluZyIsICJ7ey5tYWluTWVudS5pdGVtLm1hcHBpbmd9fSIsICJtYXBwaW5nLnBuZyIsICJ7ey5tYWluTWVudS5oZWFkbGluZS5tYXBwaW5nfX0iKSk7DQptZW51SXRlbXMucHVzaChuZXcgTWFpbk1lbnVJdGVtKCJ1c2VycyIsICJ7ey5tYWluTWVudS5pdGVtLnVzZXJzfX0iLCAidXNlcnMucG5nIiwgInt7Lm1haW5NZW51LmhlYWRsaW5lLnVzZXJzfX0iKSk7DQptZW51SXRlbXMucHVzaChuZXcgTWFpbk1lbnVJdGVtKCJzZXR0aW5ncyIsICJ7ey5tYWluTWVudS5pdGVtLnNldHRpbmdzfX0iLCAic2V0dGluZ3MucG5nIiwgInt7Lm1haW5NZW51LmhlYWRsaW5lLnNldHRpbmdzfX0iKSk7DQptZW51SXRlbXMucHVzaChuZXcgTWFpbk1lbnVJdGVtKCJsb2ciLCAie3subWFpbk1lbnUuaXRlbS5sb2d9fSIsICJsb2cucG5nIiwgInt7Lm1haW5NZW51LmhlYWRsaW5lLmxvZ319IikpOw0KbWVudUl0ZW1zLnB1c2gobmV3IE1haW5NZW51SXRlbSgibG9nb3V0IiwgInt7Lm1haW5NZW51Lml0ZW0ubG9nb3V0fX0iLCAibG9nb3V0LnBuZyIsICJ7ey5tYWluTWVudS5oZWFkbGluZS5sb2dvdXR9fSIpKTsNCi8vIFNldHRpbmdzIGNhdGVnb3JpZXMNCnZhciBzZXR0aW5nc0NhdGVnb3J5ID0gbmV3IEFycmF5KCk7DQpzZXR0aW5nc0NhdGVnb3J5LnB1c2gobmV3IFNldHRpbmdzQ2F0ZWdvcnlJdGVtKCJ7ey5zZXR0aW5ncy5jYXRlZ29yeS5nZW5lcmFsfX0iLCAidGxzTW9kZSx4dGV2ZUF1dG9VcGRhdGUsaG9zdElQLHR1bmVyLGVwZ1NvdXJjZSxkaXNhbGxvd1VSTER1cGxpY2F0ZXMsYXBpIikpOw0Kc2V0dGluZ3NDYXRlZ29yeS5wdXNoKG5ldyBTZXR0aW5nc0NhdGVnb3J5SXRlbSgie3suc2V0dGluZ3MuY2F0ZWdvcnkubWFwcGluZ319IiwgImRlZmF1bHRNaXNzaW5nRVBHIikpOw0Kc2V0dGluZ3NDYXRlZ29yeS5wdXNoKG5ldyBTZXR0aW5nc0NhdGVnb3J5SXRlbSgie3suc2V0dGluZ3MuY2F0ZWdvcnkuZmlsZXN9fSIsICJ1cGRhdGUsZmlsZXMudXBkYXRlLHRlbXAucGF0aCxjYWNoZS5pbWFnZXMseGVwZy5yZXBsYWNlLm1pc3NpbmcuaW1hZ2VzIikpOw0Kc2V0dGluZ3NDYXRlZ29yeS5wdXNoKG5ldyBTZXR0aW5nc0NhdGVnb3J5SXRlbSgie3suc2V0dGluZ3MuY2F0ZWdvcnkuc3RyZWFtaW5nfX0iLCAiYnVmZmVyLHVkcHh5LGJ1ZmZlci5zaXplLmtiLHN0b3JlQnVmZmVySW5SQU0sYnVmZmVyLnRpbWVvdXQsdXNlci5hZ2VudCxmZm1wZWcucGF0aCxmZm1wZWcub3B0aW9ucyx2bGMucGF0aCx2bGMub3B0aW9ucyIpKTsNCnNldHRpbmdzQ2F0ZWdvcnkucHVzaChuZXcgU2V0dGluZ3NDYXRlZ29yeUl0ZW0oInt7LnNldHRpbmdzLmNhdGVnb3J5LmJhY2t1cH19IiwgImJhY2t1cC5wYXRoLGJhY2t1cC5rZWVwIikpOw0Kc2V0dGluZ3NDYXRlZ29yeS5wdXNoKG5ldyBTZXR0aW5nc0NhdGVnb3J5SXRlbSgie3suc2V0dGluZ3MuY2F0ZWdvcnkuYXV0aGVudGljYXRpb259fSIsICJhdXRoZW50aWNhdGlvbi53ZWIsYXV0aGVudGljYXRpb24ucG1zLGF1dGhlbnRpY2F0aW9uLm0zdSxhdXRoZW50aWNhdGlvbi54bWwsYXV0aGVudGljYXRpb24uYXBpIikpOw0KZnVuY3Rpb24gc2hvd1BvcFVwRWxlbWVudChlbG0pIHsNCiAgICB2YXIgYWxsRWxlbWVudHMgPSBuZXcgQXJyYXkoInBvcHVwLWN1c3RvbSIpOw0KICAgIGZvciAodmFyIGkgPSAwOyBpIDwgYWxsRWxlbWVudHMubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgc2hvd0VsZW1lbnQoYWxsRWxlbWVudHNbaV0sIGZhbHNlKTsNCiAgICB9DQogICAgc2hvd0VsZW1lbnQoZWxtLCB0cnVlKTsNCiAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsNCiAgICAgICAgc2hvd0VsZW1lbnQoInBvcHVwIiwgdHJ1ZSk7DQogICAgfSwgMTApOw0KICAgIHJldHVybjsNCn0NCmZ1bmN0aW9uIHNob3dFbGVtZW50KGVsbUlELCB0eXBlKSB7DQogICAgdmFyIGNzc0NsYXNzOw0KICAgIHN3aXRjaCAodHlwZSkgew0KICAgICAgICBjYXNlIHRydWU6DQogICAgICAgICAgICBjc3NDbGFzcyA9ICJibG9jayI7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSBmYWxzZToNCiAgICAgICAgICAgIGNzc0NsYXNzID0gIm5vbmUiOw0KICAgICAgICAgICAgYnJlYWs7DQogICAgfQ0KICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGVsbUlEKS5jbGFzc05hbWUgPSBjc3NDbGFzczsNCn0NCmZ1bmN0aW9uIGNoYW5nZUJ1dHRvbkFjdGlvbihlbGVtZW50LCBidXR0b25JRCwgYXR0cmlidXRlKSB7DQogICAgdmFyIHZhbHVlID0gZWxlbWVudC5vcHRpb25zW2VsZW1lbnQuc2VsZWN0ZWRJbmRleF0udmFsdWU7DQogICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoYnV0dG9uSUQpLnNldEF0dHJpYnV0ZShhdHRyaWJ1dGUsIHZhbHVlKTsNCn0NCmZ1bmN0aW9uIGdldExvY2FsRGF0YShkYXRhVHlwZSwgaWQpIHsNCiAgICBsZXQgZGF0YSA9IHt9Ow0KICAgIHN3aXRjaCAoZGF0YVR5cGUpIHsNCiAgICAgICAgY2FzZSAibTN1IjoNCiAgICAgICAgICAgIGRhdGEgPSBTRVJWRVJbInNldHRpbmdzIl1bImZpbGVzIl1bZGF0YVR5cGVdW2lkXTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJoZGhyIjoNCiAgICAgICAgICAgIGRhdGEgPSBTRVJWRVJbInNldHRpbmdzIl1bImZpbGVzIl1bZGF0YVR5cGVdW2lkXTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJmaWx0ZXIiOg0KICAgICAgICBjYXNlICJjdXN0b20tZmlsdGVyIjoNCiAgICAgICAgY2FzZSAiZ3JvdXAtdGl0bGUiOg0KICAgICAgICAgICAgaWYgKGlkID09IC0xKSB7DQogICAgICAgICAgICAgICAgZGF0YVsiYWN0aXZlIl0gPSB0cnVlOw0KICAgICAgICAgICAgICAgIGRhdGFbImNhc2VTZW5zaXRpdmUiXSA9IGZhbHNlOw0KICAgICAgICAgICAgICAgIGRhdGFbImRlc2NyaXB0aW9uIl0gPSAiIjsNCiAgICAgICAgICAgICAgICBkYXRhWyJleGNsdWRlIl0gPSAiIjsNCiAgICAgICAgICAgICAgICBkYXRhWyJmaWx0ZXIiXSA9ICIiOw0KICAgICAgICAgICAgICAgIGRhdGFbImluY2x1ZGUiXSA9ICIiOw0KICAgICAgICAgICAgICAgIGRhdGFbIm5hbWUiXSA9ICIiOw0KICAgICAgICAgICAgICAgIGRhdGFbInR5cGUiXSA9ICJncm91cC10aXRsZSI7DQogICAgICAgICAgICAgICAgZGF0YVsicHJlc2VydmVNYXBwaW5nIl0gPSB0cnVlOw0KICAgICAgICAgICAgICAgIGRhdGFbInN0YXJ0aW5nQ2hhbm5lbCJdID0gU0VSVkVSWyJzZXR0aW5ncyJdWyJtYXBwaW5nLmZpcnN0LmNoYW5uZWwiXTsNCiAgICAgICAgICAgICAgICBTRVJWRVJbInNldHRpbmdzIl1bImZpbHRlciJdW2lkXSA9IGRhdGE7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBkYXRhID0gU0VSVkVSWyJzZXR0aW5ncyJdWyJmaWx0ZXIiXVtpZF07DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSAieG1sdHYiOg0KICAgICAgICAgICAgZGF0YSA9IFNFUlZFUlsic2V0dGluZ3MiXVsiZmlsZXMiXVtkYXRhVHlwZV1baWRdOw0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGNhc2UgInVzZXJzIjoNCiAgICAgICAgICAgIGRhdGEgPSBTRVJWRVJbInVzZXJzIl1baWRdWyJkYXRhIl07DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSAibWFwcGluZyI6DQogICAgICAgICAgICBkYXRhID0gU0VSVkVSWyJ4ZXBnIl1bImVwZ01hcHBpbmciXVtpZF07DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSAibTN1R3JvdXBzIjoNCiAgICAgICAgICAgIGRhdGEgPSBTRVJWRVJbImRhdGEiXVsicGxheWxpc3QiXVsibTN1Il1bImdyb3VwcyJdOw0KICAgICAgICAgICAgYnJlYWs7DQogICAgfQ0KICAgIHJldHVybiBkYXRhOw0KfQ0KZnVuY3Rpb24gZ2V0T3duT2JqUHJvcHMob2JqZWN0KSB7DQogICAgcmV0dXJuIG9iamVjdCA/IE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKG9iamVjdCkgOiBbXTsNCn0NCmZ1bmN0aW9uIGdldEFsbFNlbGVjdGVkQ2hhbm5lbHMoKSB7DQogICAgdmFyIGNoYW5uZWxzID0gbmV3IEFycmF5KCk7DQogICAgaWYgKEJVTEtfRURJVCA9PSBmYWxzZSkgew0KICAgICAgICByZXR1cm4gY2hhbm5lbHM7DQogICAgfQ0KICAgIHZhciB0cnMgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29udGVudF90YWJsZSIpLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJUUiIpOw0KICAgIGZvciAodmFyIGkgPSAxOyBpIDwgdHJzLmxlbmd0aDsgaSsrKSB7DQogICAgICAgIGlmICh0cnNbaV0uc3R5bGUuZGlzcGxheSAhPSAibm9uZSIpIHsNCiAgICAgICAgICAgIGlmICh0cnNbaV0uZmlyc3RDaGlsZC5maXJzdENoaWxkLmNoZWNrZWQgPT0gdHJ1ZSkgew0KICAgICAgICAgICAgICAgIGNoYW5uZWxzLnB1c2godHJzW2ldLmlkKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KICAgIH0NCiAgICByZXR1cm4gY2hhbm5lbHM7DQp9DQpmdW5jdGlvbiBzZWxlY3RBbGxDaGFubmVscygpIHsNCiAgICB2YXIgYnVsayA9IGZhbHNlOw0KICAgIHZhciB0cnMgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29udGVudF90YWJsZSIpLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJUUiIpOw0KICAgIGlmICh0cnNbMF0uZmlyc3RDaGlsZC5maXJzdENoaWxkLmNoZWNrZWQgPT0gdHJ1ZSkgew0KICAgICAgICBidWxrID0gdHJ1ZTsNCiAgICB9DQogICAgZm9yICh2YXIgaSA9IDE7IGkgPCB0cnMubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgaWYgKHRyc1tpXS5zdHlsZS5kaXNwbGF5ICE9ICJub25lIikgew0KICAgICAgICAgICAgc3dpdGNoIChidWxrKSB7DQogICAgICAgICAgICAgICAgY2FzZSB0cnVlOg0KICAgICAgICAgICAgICAgICAgICB0cnNbaV0uZmlyc3RDaGlsZC5maXJzdENoaWxkLmNoZWNrZWQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBjYXNlIGZhbHNlOg0KICAgICAgICAgICAgICAgICAgICB0cnNbaV0uZmlyc3RDaGlsZC5maXJzdENoaWxkLmNoZWNrZWQgPSBmYWxzZTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICB9DQogICAgICAgIH0NCiAgICB9DQogICAgcmV0dXJuOw0KfQ0KZnVuY3Rpb24gYnVsa0VkaXQoKSB7DQogICAgQlVMS19FRElUID0gIUJVTEtfRURJVDsNCiAgICB2YXIgY2xhc3NOYW1lOw0KICAgIHZhciByb3dzID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSgiYnVsayIpOw0KICAgIHN3aXRjaCAoQlVMS19FRElUKSB7DQogICAgICAgIGNhc2UgdHJ1ZToNCiAgICAgICAgICAgIGNsYXNzTmFtZSA9ICJidWxrIHNob3dCdWxrIjsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlIGZhbHNlOg0KICAgICAgICAgICAgY2xhc3NOYW1lID0gImJ1bGsgaGlkZUJ1bGsiOw0KICAgICAgICAgICAgYnJlYWs7DQogICAgfQ0KICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcm93cy5sZW5ndGg7IGkrKykgew0KICAgICAgICByb3dzW2ldLmNsYXNzTmFtZSA9IGNsYXNzTmFtZTsNCiAgICAgICAgcm93c1tpXS5jaGVja2VkID0gZmFsc2U7DQogICAgfQ0KICAgIHJldHVybjsNCn0NCmZ1bmN0aW9uIHNvcnRUYWJsZShjb2x1bW4pIHsNCiAgICBpZiAoY29sdW1uID09IENPTFVNTl9UT19TT1JUKSB7DQogICAgICAgIHJldHVybjsNCiAgICB9DQogICAgY29uc3QgdGFibGUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29udGVudF90YWJsZSIpOw0KICAgIGNvbnN0IHRhYmxlSGVhZCA9IHRhYmxlLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJUUiIpWzBdOw0KICAgIGNvbnN0IHRhYmxlSXRlbXMgPSB0YWJsZUhlYWQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlREIik7DQogICAgY29uc3Qgc29ydEFyciA9IFtdOw0KICAgIGxldCB4VmFsdWU7DQogICAgaWYgKGNvbHVtbiA+PSAwICYmIENPTFVNTl9UT19TT1JUID49IDApIHsNCiAgICAgICAgdGFibGVJdGVtc1tDT0xVTU5fVE9fU09SVF0uY2xhc3NOYW1lID0gInBvaW50ZXIiOw0KICAgICAgICB0YWJsZUl0ZW1zW2NvbHVtbl0uY2xhc3NOYW1lID0gInNvcnRUaGlzIjsNCiAgICB9DQogICAgQ09MVU1OX1RPX1NPUlQgPSBjb2x1bW47DQogICAgY29uc3Qgcm93cyA9IHRhYmxlLnJvd3M7DQogICAgaWYgKHJvd3NbMV0gIT0gdW5kZWZpbmVkKSB7DQogICAgICAgIGNvbnN0IHRhYmxlSGVhZGVyID0gcm93c1swXTsNCiAgICAgICAgbGV0IHggPSByb3dzWzFdLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJURCIpW2NvbHVtbl07DQogICAgICAgIGZvciAobGV0IGkgPSAxOyBpIDwgcm93cy5sZW5ndGg7IGkrKykgew0KICAgICAgICAgICAgeCA9IHJvd3NbaV0uZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlREIilbY29sdW1uXTsNCiAgICAgICAgICAgIHN3aXRjaCAoeC5jaGlsZE5vZGVzWzBdLnRhZ05hbWUudG9Mb3dlckNhc2UoKSkgew0KICAgICAgICAgICAgICAgIGNhc2UgImlucHV0IjoNCiAgICAgICAgICAgICAgICAgICAgeFZhbHVlID0geC5nZXRFbGVtZW50c0J5VGFnTmFtZSgiSU5QVVQiKVswXS52YWx1ZS50b0xvd2VyQ2FzZSgpOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBjYXNlICJwIjoNCiAgICAgICAgICAgICAgICAgICAgeFZhbHVlID0geC5nZXRFbGVtZW50c0J5VGFnTmFtZSgiUCIpWzBdLmlubmVyVGV4dC50b0xvd2VyQ2FzZSgpOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBkZWZhdWx0Og0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIHNvcnRBcnIucHVzaCh7IGtleTogeFZhbHVlID8geFZhbHVlIDogaSwgcm93OiByb3dzW2ldIH0pOw0KICAgICAgICB9DQogICAgICAgIHdoaWxlICh0YWJsZS5maXJzdENoaWxkKSB7DQogICAgICAgICAgICB0YWJsZS5yZW1vdmVDaGlsZCh0YWJsZS5maXJzdENoaWxkKTsNCiAgICAgICAgfQ0KICAgICAgICBzb3J0QXJyLnNvcnQoKHNlMSwgc2UyKSA9PiB7DQogICAgICAgICAgICBjb25zdCBzZTFLZXlOdW0gPSBwYXJzZUZsb2F0KFN0cmluZyhzZTEua2V5KSk7DQogICAgICAgICAgICBjb25zdCBzZTJLZXlOdW0gPSBwYXJzZUZsb2F0KFN0cmluZyhzZTIua2V5KSk7DQogICAgICAgICAgICBpZiAoIWlzTmFOKHNlMUtleU51bSkgJiYgIWlzTmFOKHNlMktleU51bSkpIHsNCiAgICAgICAgICAgICAgICByZXR1cm4gc2UxS2V5TnVtIC0gc2UyS2V5TnVtOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgaWYgKHNlMS5rZXkgPCBzZTIua2V5KSB7DQogICAgICAgICAgICAgICAgcmV0dXJuIC0xOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgaWYgKHNlMS5rZXkgPiBzZTIua2V5KSB7DQogICAgICAgICAgICAgICAgcmV0dXJuIDE7DQogICAgICAgICAgICB9DQogICAgICAgICAgICByZXR1cm4gMDsNCiAgICAgICAgfSk7DQogICAgICAgIHRhYmxlLmFwcGVuZENoaWxkKHRhYmxlSGVhZGVyKTsNCiAgICAgICAgc29ydEFyci5mb3JFYWNoKChzZSkgPT4gew0KICAgICAgICAgICAgdGFibGUuYXBwZW5kQ2hpbGQoc2Uucm93KTsNCiAgICAgICAgfSk7DQogICAgfQ0KICAgIHJldHVybjsNCn0NCmZ1bmN0aW9uIGNyZWF0ZVNlYXJjaE9iaigpIHsNCiAgICBTRUFSQ0hfTUFQUElORyA9IG5ldyBPYmplY3QoKTsNCiAgICB2YXIgZGF0YSA9IFNFUlZFUlsieGVwZyJdWyJlcGdNYXBwaW5nIl07DQogICAgdmFyIGNoYW5uZWxzID0gZ2V0T3duT2JqUHJvcHMoZGF0YSk7DQogICAgdmFyIGNoYW5uZWxLZXlzID0gWyJ4LWFjdGl2ZSIsICJ4LWNoYW5uZWxJRCIsICJ4LW5hbWUiLCAidXBkYXRlQ2hhbm5lbE5hbWVSZWdleCIsICJfZmlsZS5tM3UubmFtZSIsICJ4LWdyb3VwLXRpdGxlIiwgIngteG1sdHYtZmlsZSJdOw0KICAgIGNoYW5uZWxzLmZvckVhY2goaWQgPT4gew0KICAgICAgICBjaGFubmVsS2V5cy5mb3JFYWNoKGtleSA9PiB7DQogICAgICAgICAgICBpZiAoa2V5ID09ICJ4LWFjdGl2ZSIpIHsNCiAgICAgICAgICAgICAgICBzd2l0Y2ggKGRhdGFbaWRdW2tleV0pIHsNCiAgICAgICAgICAgICAgICAgICAgY2FzZSB0cnVlOg0KICAgICAgICAgICAgICAgICAgICAgICAgU0VBUkNIX01BUFBJTkdbaWRdID0gIm9ubGluZSAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgICAgIGNhc2UgZmFsc2U6DQogICAgICAgICAgICAgICAgICAgICAgICBTRUFSQ0hfTUFQUElOR1tpZF0gPSAib2ZmbGluZSAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgZWxzZSB7DQogICAgICAgICAgICAgICAgaWYgKGtleSA9PSAieC14bWx0di1maWxlIikgew0KICAgICAgICAgICAgICAgICAgICB2YXIgeG1sdHZGaWxlID0gZ2V0VmFsdWVGcm9tUHJvdmlkZXJGaWxlKGRhdGFbaWRdW2tleV0sICJ4bWx0diIsICJuYW1lIik7DQogICAgICAgICAgICAgICAgICAgIGlmICh4bWx0dkZpbGUgIT0gdW5kZWZpbmVkKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBTRUFSQ0hfTUFQUElOR1tpZF0gPSBTRUFSQ0hfTUFQUElOR1tpZF0gKyB4bWx0dkZpbGUgKyAiICI7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgZWxzZSB7DQogICAgICAgICAgICAgICAgICAgIFNFQVJDSF9NQVBQSU5HW2lkXSA9IFNFQVJDSF9NQVBQSU5HW2lkXSArIGRhdGFbaWRdW2tleV0gKyAiICI7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfQ0KICAgICAgICB9KTsNCiAgICB9KTsNCiAgICByZXR1cm47DQp9DQpmdW5jdGlvbiBzZWFyY2hJbk1hcHBpbmcoKSB7DQogICAgdmFyIHNlYXJjaFZhbHVlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNlYXJjaE1hcHBpbmciKS52YWx1ZTsNCiAgICB2YXIgdHJzID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnRlbnRfdGFibGUiKS5nZXRFbGVtZW50c0J5VGFnTmFtZSgiVFIiKTsNCiAgICBmb3IgKHZhciBpID0gMTsgaSA8IHRycy5sZW5ndGg7ICsraSkgew0KICAgICAgICB2YXIgaWQgPSB0cnNbaV0uZ2V0QXR0cmlidXRlKCJpZCIpOw0KICAgICAgICB2YXIgZWxlbWVudCA9IFNFQVJDSF9NQVBQSU5HW2lkXTsNCiAgICAgICAgc3dpdGNoIChlbGVtZW50LnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoc2VhcmNoVmFsdWUudG9Mb3dlckNhc2UoKSkpIHsNCiAgICAgICAgICAgIGNhc2UgdHJ1ZToNCiAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkuc3R5bGUuZGlzcGxheSA9ICIiOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSBmYWxzZToNCiAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkuc3R5bGUuZGlzcGxheSA9ICJub25lIjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgfQ0KICAgIH0NCiAgICByZXR1cm47DQp9DQpmdW5jdGlvbiBjYWxjdWxhdGVXcmFwcGVySGVpZ2h0KCkgew0KICAgIGlmIChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYm94LXdyYXBwZXIiKSkgew0KICAgICAgICB2YXIgZWxtID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImJveC13cmFwcGVyIik7DQogICAgICAgIHZhciBkaXZzID0gbmV3IEFycmF5KCJteVN0cmVhbXNCb3giLCAiY2xpZW50SW5mbyIsICJjb250ZW50Iik7DQogICAgICAgIHZhciBlbGVtZW50c0hlaWdodCA9IDAgLSBlbG0ub2Zmc2V0SGVpZ2h0Ow0KICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGRpdnMubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgICAgIGVsZW1lbnRzSGVpZ2h0ID0gZWxlbWVudHNIZWlnaHQgKyBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChkaXZzW2ldKS5vZmZzZXRIZWlnaHQ7DQogICAgICAgIH0NCiAgICAgICAgZWxtLnN0eWxlLmhlaWdodCA9IHdpbmRvdy5pbm5lckhlaWdodCAtIGVsZW1lbnRzSGVpZ2h0ICsgInB4IjsNCiAgICB9DQogICAgcmV0dXJuOw0KfQ0KZnVuY3Rpb24gY2hhbmdlQ2hhbm5lbE51bWJlcihlbGVtZW50KSB7DQogICAgdmFyIGRiSUQgPSBlbGVtZW50LnBhcmVudE5vZGUucGFyZW50Tm9kZS5pZDsNCiAgICB2YXIgbmV3TnVtYmVyID0gcGFyc2VGbG9hdChlbGVtZW50LnZhbHVlKTsNCiAgICB2YXIgY2hhbm5lbE51bWJlcnMgPSBbXTsNCiAgICB2YXIgZGF0YSA9IFNFUlZFUlsieGVwZyJdWyJlcGdNYXBwaW5nIl07DQogICAgdmFyIGNoYW5uZWxzID0gZ2V0T3duT2JqUHJvcHMoZGF0YSk7DQogICAgaWYgKGlzTmFOKG5ld051bWJlcikpIHsNCiAgICAgICAgYWxlcnQoInt7LmFsZXJ0LmludmFsaWRDaGFubmVsTnVtYmVyfX0iKTsNCiAgICAgICAgcmV0dXJuOw0KICAgIH0NCiAgICBjaGFubmVscy5mb3JFYWNoKGlkID0+IHsNCiAgICAgICAgdmFyIGNoYW5uZWxOdW1iZXIgPSBwYXJzZUZsb2F0KGRhdGFbaWRdWyJ4LWNoYW5uZWxJRCJdKTsNCiAgICAgICAgY2hhbm5lbE51bWJlcnMucHVzaChjaGFubmVsTnVtYmVyKTsNCiAgICB9KTsNCiAgICBmb3IgKHZhciBpID0gMDsgaSA8IGNoYW5uZWxOdW1iZXJzLmxlbmd0aDsgaSsrKSB7DQogICAgICAgIGlmIChjaGFubmVsTnVtYmVycy5pbmRleE9mKG5ld051bWJlcikgPT0gLTEpIHsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICB9DQogICAgICAgIGlmIChNYXRoLmZsb29yKG5ld051bWJlcikgPT0gbmV3TnVtYmVyKSB7DQogICAgICAgICAgICBuZXdOdW1iZXIgPSBuZXdOdW1iZXIgKyAxOw0KICAgICAgICB9DQogICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgbmV3TnVtYmVyID0gbmV3TnVtYmVyICsgMC4xOw0KICAgICAgICAgICAgbmV3TnVtYmVyLnRvRml4ZWQoMSk7DQogICAgICAgICAgICBuZXdOdW1iZXIgPSBNYXRoLnJvdW5kKG5ld051bWJlciAqIDEwKSAvIDEwOw0KICAgICAgICB9DQogICAgfQ0KICAgIGRhdGFbZGJJRF1bIngtY2hhbm5lbElEIl0gPSBuZXdOdW1iZXIudG9TdHJpbmcoKTsNCiAgICBlbGVtZW50LnZhbHVlID0gbmV3TnVtYmVyOw0KICAgIGlmIChDT0xVTU5fVE9fU09SVCA9PSAxKSB7DQogICAgICAgIENPTFVNTl9UT19TT1JUID0gLTE7DQogICAgICAgIHNvcnRUYWJsZSgxKTsNCiAgICB9DQogICAgcmV0dXJuOw0KfQ0KZnVuY3Rpb24gYmFja3VwKCkgew0KICAgIHZhciBkYXRhID0gbmV3IE9iamVjdCgpOw0KICAgIHZhciBjbWQgPSAieHRldmVCYWNrdXAiOw0KICAgIHZhciBzZXJ2ZXIgPSBuZXcgU2VydmVyKGNtZCk7DQogICAgc2VydmVyLnJlcXVlc3QoZGF0YSk7DQogICAgcmV0dXJuOw0KfQ0KZnVuY3Rpb24gdG9nZ2xlQ2hhbm5lbFN0YXR1cyhpZCkgew0KICAgIHZhciBlbGVtZW50Ow0KICAgIHZhciBzdGF0dXM7DQogICAgaWYgKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJhY3RpdmUiKSkgew0KICAgICAgICB2YXIgY2hlY2tib3ggPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYWN0aXZlIik7DQogICAgICAgIHN0YXR1cyA9IChjaGVja2JveCkuY2hlY2tlZDsNCiAgICB9DQogICAgdmFyIGlkcyA9IGdldEFsbFNlbGVjdGVkQ2hhbm5lbHMoKTsNCiAgICBpZiAoaWRzLmxlbmd0aCA9PSAwKSB7DQogICAgICAgIGlkcy5wdXNoKGlkKTsNCiAgICB9DQogICAgaWRzLmZvckVhY2goaWQgPT4gew0KICAgICAgICB2YXIgY2hhbm5lbCA9IFNFUlZFUlsieGVwZyJdWyJlcGdNYXBwaW5nIl1baWRdOw0KICAgICAgICBjaGFubmVsWyJ4LWFjdGl2ZSJdID0gc3RhdHVzOw0KICAgICAgICBzd2l0Y2ggKGNoYW5uZWxbIngtYWN0aXZlIl0pIHsNCiAgICAgICAgICAgIGNhc2UgdHJ1ZToNCiAgICAgICAgICAgICAgICBpZiAoY2hhbm5lbFsieC14bWx0di1maWxlIl0gPT0gIi0iIHx8IGNoYW5uZWxbIngtbWFwcGluZyJdID09ICItIikgew0KICAgICAgICAgICAgICAgICAgICBpZiAoQlVMS19FRElUID09IGZhbHNlKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBhbGVydChjaGFubmVsWyJ4LW5hbWUiXSArICI6IE1pc3NpbmcgWE1MVFYgZmlsZSAvIGNoYW5uZWwiKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNoZWNrYm94LmNoZWNrZWQgPSBmYWxzZTsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBjaGFubmVsWyJ4LWFjdGl2ZSJdID0gZmFsc2U7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSBmYWxzZToNCiAgICAgICAgICAgICAgICAvLyBjb2RlLi4uDQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIH0NCiAgICAgICAgaWYgKGNoYW5uZWxbIngtYWN0aXZlIl0gPT0gZmFsc2UpIHsNCiAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5jbGFzc05hbWUgPSAibm90QWN0aXZlRVBHIjsNCiAgICAgICAgfQ0KICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5jbGFzc05hbWUgPSAiYWN0aXZlRVBHIjsNCiAgICAgICAgfQ0KICAgIH0pOw0KfQ0KZnVuY3Rpb24gdG9nZ2xlR3JvdXBVcGRhdGVDYih4ZXBnSWQsIHRhcmdldCkgew0KICAgIHRhcmdldC5jbGFzc05hbWUgPSAnY2hhbmdlZCc7DQogICAgY29uc3QgZ3JvdXBJbnB1dCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ2lucHV0W25hbWU9IngtZ3JvdXAtdGl0bGUiXScpOw0KICAgIGNvbnN0IG1hcHBpbmcgPSBnZXRMb2NhbERhdGEoJ21hcHBpbmcnLCB4ZXBnSWQpOw0KICAgIGlmICh0YXJnZXQuY2hlY2tlZCkgew0KICAgICAgICBncm91cElucHV0LmRhdGFzZXQub2xkVmFsdWUgPSBncm91cElucHV0LnZhbHVlOw0KICAgICAgICBncm91cElucHV0LnZhbHVlID0gbWFwcGluZ1snZ3JvdXAtdGl0bGUnXTsNCiAgICAgICAgZ3JvdXBJbnB1dC5kaXNhYmxlZCA9IHRydWU7DQogICAgfQ0KICAgIGVsc2Ugew0KICAgICAgICBncm91cElucHV0LnZhbHVlID0gZ3JvdXBJbnB1dC5kYXRhc2V0Lm9sZFZhbHVlOw0KICAgICAgICBncm91cElucHV0LmRpc2FibGVkID0gZmFsc2U7DQogICAgfQ0KICAgIGdyb3VwSW5wdXQuY2xhc3NOYW1lID0gJ2NoYW5nZWQnOw0KfQ0KZnVuY3Rpb24gcmVzdG9yZSgpIHsNCiAgICBpZiAoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3VwbG9hZCcpKSB7DQogICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd1cGxvYWQnKS5yZW1vdmUoKTsNCiAgICB9DQogICAgdmFyIHJlc3RvcmUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJJTlBVVCIpOw0KICAgIHJlc3RvcmUuc2V0QXR0cmlidXRlKCJ0eXBlIiwgImZpbGUiKTsNCiAgICByZXN0b3JlLnNldEF0dHJpYnV0ZSgiY2xhc3MiLCAibm90VmlzaWJsZSIpOw0KICAgIHJlc3RvcmUuc2V0QXR0cmlidXRlKCJuYW1lIiwgIiIpOw0KICAgIHJlc3RvcmUuaWQgPSAidXBsb2FkIjsNCiAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHJlc3RvcmUpOw0KICAgIHJlc3RvcmUuY2xpY2soKTsNCiAgICByZXN0b3JlLm9uY2hhbmdlID0gZnVuY3Rpb24gKCkgew0KICAgICAgICB2YXIgZmlsZW5hbWUgPSByZXN0b3JlLmZpbGVzWzBdLm5hbWU7DQogICAgICAgIHZhciBjaGVjayA9IGNvbmZpcm0oIkZpbGU6ICIgKyBmaWxlbmFtZSArICJcbnt7LmNvbmZpcm0ucmVzdG9yZX19Iik7DQogICAgICAgIGlmIChjaGVjayA9PSB0cnVlKSB7DQogICAgICAgICAgICB2YXIgcmVhZGVyID0gbmV3IEZpbGVSZWFkZXIoKTsNCiAgICAgICAgICAgIHZhciBmaWxlID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignaW5wdXRbdHlwZT1maWxlXScpLmZpbGVzWzBdOw0KICAgICAgICAgICAgaWYgKGZpbGUpIHsNCiAgICAgICAgICAgICAgICByZWFkZXIucmVhZEFzRGF0YVVSTChmaWxlKTsNCiAgICAgICAgICAgICAgICByZWFkZXIub25sb2FkID0gZnVuY3Rpb24gKCkgew0KICAgICAgICAgICAgICAgICAgICB2YXIgZGF0YSA9IG5ldyBPYmplY3QoKTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGNtZCA9ICJ4dGV2ZVJlc3RvcmUiOw0KICAgICAgICAgICAgICAgICAgICBkYXRhWyJiYXNlNjQiXSA9IHJlYWRlci5yZXN1bHQ7DQogICAgICAgICAgICAgICAgICAgIHZhciBzZXJ2ZXIgPSBuZXcgU2VydmVyKGNtZCk7DQogICAgICAgICAgICAgICAgICAgIHNlcnZlci5yZXF1ZXN0KGRhdGEpOw0KICAgICAgICAgICAgICAgIH07DQogICAgICAgICAgICB9DQogICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICBhbGVydCgiRmlsZSBjb3VsZCBub3QgYmUgbG9hZGVkIik7DQogICAgICAgICAgICB9DQogICAgICAgICAgICByZXN0b3JlLnJlbW92ZSgpOw0KICAgICAgICAgICAgcmV0dXJuOw0KICAgICAgICB9DQogICAgfTsNCiAgICByZXR1cm47DQp9DQpmdW5jdGlvbiB1cGxvYWRMb2dvKCkgew0KICAgIGlmIChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndXBsb2FkJykpIHsNCiAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3VwbG9hZCcpLnJlbW92ZSgpOw0KICAgIH0NCiAgICB2YXIgdXBsb2FkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiSU5QVVQiKTsNCiAgICB1cGxvYWQuc2V0QXR0cmlidXRlKCJ0eXBlIiwgImZpbGUiKTsNCiAgICB1cGxvYWQuc2V0QXR0cmlidXRlKCJjbGFzcyIsICJub3RWaXNpYmxlIik7DQogICAgdXBsb2FkLnNldEF0dHJpYnV0ZSgibmFtZSIsICIiKTsNCiAgICB1cGxvYWQuaWQgPSAidXBsb2FkIjsNCiAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHVwbG9hZCk7DQogICAgdXBsb2FkLmNsaWNrKCk7DQogICAgdXBsb2FkLm9uYmx1ciA9IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgYWxlcnQoKTsNCiAgICB9Ow0KICAgIHVwbG9hZC5vbmNoYW5nZSA9IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgdmFyIGZpbGVuYW1lID0gdXBsb2FkLmZpbGVzWzBdLm5hbWU7DQogICAgICAgIHZhciByZWFkZXIgPSBuZXcgRmlsZVJlYWRlcigpOw0KICAgICAgICB2YXIgZmlsZSA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ2lucHV0W3R5cGU9ZmlsZV0nKS5maWxlc1swXTsNCiAgICAgICAgaWYgKGZpbGUpIHsNCiAgICAgICAgICAgIHJlYWRlci5yZWFkQXNEYXRhVVJMKGZpbGUpOw0KICAgICAgICAgICAgcmVhZGVyLm9ubG9hZCA9IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgICAgICAgICB2YXIgZGF0YSA9IG5ldyBPYmplY3QoKTsNCiAgICAgICAgICAgICAgICB2YXIgY21kID0gInVwbG9hZExvZ28iOw0KICAgICAgICAgICAgICAgIGRhdGFbImJhc2U2NCJdID0gcmVhZGVyLnJlc3VsdDsNCiAgICAgICAgICAgICAgICBkYXRhWyJmaWxlbmFtZSJdID0gZmlsZS5uYW1lOw0KICAgICAgICAgICAgICAgIHZhciBzZXJ2ZXIgPSBuZXcgU2VydmVyKGNtZCk7DQogICAgICAgICAgICAgICAgc2VydmVyLnJlcXVlc3QoZGF0YSk7DQogICAgICAgICAgICAgICAgdmFyIHVwZGF0ZUxvZ28gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndXBkYXRlLWljb24nKTsNCiAgICAgICAgICAgICAgICB1cGRhdGVMb2dvLmNoZWNrZWQgPSBmYWxzZTsNCiAgICAgICAgICAgICAgICB1cGRhdGVMb2dvLmNsYXNzTmFtZSA9ICJjaGFuZ2VkIjsNCiAgICAgICAgICAgIH07DQogICAgICAgIH0NCiAgICAgICAgZWxzZSB7DQogICAgICAgICAgICBhbGVydCgiRmlsZSBjb3VsZCBub3QgYmUgbG9hZGVkIik7DQogICAgICAgIH0NCiAgICAgICAgdXBsb2FkLnJlbW92ZSgpOw0KICAgICAgICByZXR1cm47DQogICAgfTsNCn0NCmZ1bmN0aW9uIGNoZWNrVW5kbyhrZXkpIHsNCiAgICBzd2l0Y2ggKGtleSkgew0KICAgICAgICBjYXNlICJlcGdNYXBwaW5nIjoNCiAgICAgICAgICAgIGlmIChVTkRPLmhhc093blByb3BlcnR5KGtleSkpIHsNCiAgICAgICAgICAgICAgICBTRVJWRVJbInhlcGciXVtrZXldID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeShVTkRPW2tleV0pKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgICAgIFVORE9ba2V5XSA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkoU0VSVkVSWyJ4ZXBnIl1ba2V5XSkpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICBicmVhazsNCiAgICB9DQogICAgcmV0dXJuOw0KfQ0KZnVuY3Rpb24gdXBkYXRlTG9nKCkgew0KICAgIHZhciBzZXJ2ZXIgPSBuZXcgU2VydmVyKCJ1cGRhdGVMb2ciKTsNCiAgICBzZXJ2ZXIucmVxdWVzdChuZXcgT2JqZWN0KCkpOw0KfQ0K" + webUI["html/js/base_ts.js"] = "dmFyIFNFUlZFUiA9IG5ldyBPYmplY3QoKTsNCnZhciBCVUxLX0VESVQgPSBmYWxzZTsNCnZhciBDT0xVTU5fVE9fU09SVDsNCnZhciBTRUFSQ0hfTUFQUElORyA9IG5ldyBPYmplY3QoKTsNCnZhciBVTkRPID0gbmV3IE9iamVjdCgpOw0KdmFyIFNFUlZFUl9DT05ORUNUSU9OID0gZmFsc2U7DQp2YXIgV1NfQVZBSUxBQkxFID0gZmFsc2U7DQovLyBNZW51DQp2YXIgbWVudUl0ZW1zID0gbmV3IEFycmF5KCk7DQptZW51SXRlbXMucHVzaChuZXcgTWFpbk1lbnVJdGVtKCJwbGF5bGlzdCIsICJ7ey5tYWluTWVudS5pdGVtLnBsYXlsaXN0fX0iLCAibTN1LnBuZyIsICJ7ey5tYWluTWVudS5oZWFkbGluZS5wbGF5bGlzdH19IikpOw0KLy9tZW51SXRlbXMucHVzaChuZXcgTWFpbk1lbnVJdGVtKCJwbXNJRCIsICJ7ey5tYWluTWVudS5pdGVtLnBtc0lEfX0iLCAibnVtYmVyLnBuZyIsICJ7ey5tYWluTWVudS5oZWFkbGluZS5wbXNJRH19IikpDQptZW51SXRlbXMucHVzaChuZXcgTWFpbk1lbnVJdGVtKCJmaWx0ZXIiLCAie3subWFpbk1lbnUuaXRlbS5maWx0ZXJ9fSIsICJmaWx0ZXIucG5nIiwgInt7Lm1haW5NZW51LmhlYWRsaW5lLmZpbHRlcn19IikpOw0KbWVudUl0ZW1zLnB1c2gobmV3IE1haW5NZW51SXRlbSgieG1sdHYiLCAie3subWFpbk1lbnUuaXRlbS54bWx0dn19IiwgInhtbHR2LnBuZyIsICJ7ey5tYWluTWVudS5oZWFkbGluZS54bWx0dn19IikpOw0KbWVudUl0ZW1zLnB1c2gobmV3IE1haW5NZW51SXRlbSgibWFwcGluZyIsICJ7ey5tYWluTWVudS5pdGVtLm1hcHBpbmd9fSIsICJtYXBwaW5nLnBuZyIsICJ7ey5tYWluTWVudS5oZWFkbGluZS5tYXBwaW5nfX0iKSk7DQptZW51SXRlbXMucHVzaChuZXcgTWFpbk1lbnVJdGVtKCJ1c2VycyIsICJ7ey5tYWluTWVudS5pdGVtLnVzZXJzfX0iLCAidXNlcnMucG5nIiwgInt7Lm1haW5NZW51LmhlYWRsaW5lLnVzZXJzfX0iKSk7DQptZW51SXRlbXMucHVzaChuZXcgTWFpbk1lbnVJdGVtKCJzZXR0aW5ncyIsICJ7ey5tYWluTWVudS5pdGVtLnNldHRpbmdzfX0iLCAic2V0dGluZ3MucG5nIiwgInt7Lm1haW5NZW51LmhlYWRsaW5lLnNldHRpbmdzfX0iKSk7DQptZW51SXRlbXMucHVzaChuZXcgTWFpbk1lbnVJdGVtKCJsb2ciLCAie3subWFpbk1lbnUuaXRlbS5sb2d9fSIsICJsb2cucG5nIiwgInt7Lm1haW5NZW51LmhlYWRsaW5lLmxvZ319IikpOw0KbWVudUl0ZW1zLnB1c2gobmV3IE1haW5NZW51SXRlbSgibG9nb3V0IiwgInt7Lm1haW5NZW51Lml0ZW0ubG9nb3V0fX0iLCAibG9nb3V0LnBuZyIsICJ7ey5tYWluTWVudS5oZWFkbGluZS5sb2dvdXR9fSIpKTsNCi8vIFNldHRpbmdzIGNhdGVnb3JpZXMNCnZhciBzZXR0aW5nc0NhdGVnb3J5ID0gbmV3IEFycmF5KCk7DQpzZXR0aW5nc0NhdGVnb3J5LnB1c2gobmV3IFNldHRpbmdzQ2F0ZWdvcnlJdGVtKCJ7ey5zZXR0aW5ncy5jYXRlZ29yeS5nZW5lcmFsfX0iLCAidGxzTW9kZSx4dGV2ZUF1dG9VcGRhdGUsaG9zdElQLHR1bmVyLGVwZ1NvdXJjZSxkaXNhbGxvd1VSTER1cGxpY2F0ZXMsYXBpIikpOw0Kc2V0dGluZ3NDYXRlZ29yeS5wdXNoKG5ldyBTZXR0aW5nc0NhdGVnb3J5SXRlbSgie3suc2V0dGluZ3MuY2F0ZWdvcnkubWFwcGluZ319IiwgImRlZmF1bHRNaXNzaW5nRVBHLGVuYWJsZU1hcHBlZENoYW5uZWxzIikpOw0Kc2V0dGluZ3NDYXRlZ29yeS5wdXNoKG5ldyBTZXR0aW5nc0NhdGVnb3J5SXRlbSgie3suc2V0dGluZ3MuY2F0ZWdvcnkuZmlsZXN9fSIsICJ1cGRhdGUsZmlsZXMudXBkYXRlLHRlbXAucGF0aCxjYWNoZS5pbWFnZXMseGVwZy5yZXBsYWNlLm1pc3NpbmcuaW1hZ2VzIikpOw0Kc2V0dGluZ3NDYXRlZ29yeS5wdXNoKG5ldyBTZXR0aW5nc0NhdGVnb3J5SXRlbSgie3suc2V0dGluZ3MuY2F0ZWdvcnkuc3RyZWFtaW5nfX0iLCAiYnVmZmVyLHVkcHh5LGJ1ZmZlci5zaXplLmtiLHN0b3JlQnVmZmVySW5SQU0sYnVmZmVyLnRpbWVvdXQsdXNlci5hZ2VudCxmZm1wZWcucGF0aCxmZm1wZWcub3B0aW9ucyx2bGMucGF0aCx2bGMub3B0aW9ucyIpKTsNCnNldHRpbmdzQ2F0ZWdvcnkucHVzaChuZXcgU2V0dGluZ3NDYXRlZ29yeUl0ZW0oInt7LnNldHRpbmdzLmNhdGVnb3J5LmJhY2t1cH19IiwgImJhY2t1cC5wYXRoLGJhY2t1cC5rZWVwIikpOw0Kc2V0dGluZ3NDYXRlZ29yeS5wdXNoKG5ldyBTZXR0aW5nc0NhdGVnb3J5SXRlbSgie3suc2V0dGluZ3MuY2F0ZWdvcnkuYXV0aGVudGljYXRpb259fSIsICJhdXRoZW50aWNhdGlvbi53ZWIsYXV0aGVudGljYXRpb24ucG1zLGF1dGhlbnRpY2F0aW9uLm0zdSxhdXRoZW50aWNhdGlvbi54bWwsYXV0aGVudGljYXRpb24uYXBpIikpOw0KZnVuY3Rpb24gc2hvd1BvcFVwRWxlbWVudChlbG0pIHsNCiAgICB2YXIgYWxsRWxlbWVudHMgPSBuZXcgQXJyYXkoInBvcHVwLWN1c3RvbSIpOw0KICAgIGZvciAodmFyIGkgPSAwOyBpIDwgYWxsRWxlbWVudHMubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgc2hvd0VsZW1lbnQoYWxsRWxlbWVudHNbaV0sIGZhbHNlKTsNCiAgICB9DQogICAgc2hvd0VsZW1lbnQoZWxtLCB0cnVlKTsNCiAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsNCiAgICAgICAgc2hvd0VsZW1lbnQoInBvcHVwIiwgdHJ1ZSk7DQogICAgfSwgMTApOw0KICAgIHJldHVybjsNCn0NCmZ1bmN0aW9uIHNob3dFbGVtZW50KGVsbUlELCB0eXBlKSB7DQogICAgdmFyIGNzc0NsYXNzOw0KICAgIHN3aXRjaCAodHlwZSkgew0KICAgICAgICBjYXNlIHRydWU6DQogICAgICAgICAgICBjc3NDbGFzcyA9ICJibG9jayI7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSBmYWxzZToNCiAgICAgICAgICAgIGNzc0NsYXNzID0gIm5vbmUiOw0KICAgICAgICAgICAgYnJlYWs7DQogICAgfQ0KICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGVsbUlEKS5jbGFzc05hbWUgPSBjc3NDbGFzczsNCn0NCmZ1bmN0aW9uIGNoYW5nZUJ1dHRvbkFjdGlvbihlbGVtZW50LCBidXR0b25JRCwgYXR0cmlidXRlKSB7DQogICAgdmFyIHZhbHVlID0gZWxlbWVudC5vcHRpb25zW2VsZW1lbnQuc2VsZWN0ZWRJbmRleF0udmFsdWU7DQogICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoYnV0dG9uSUQpLnNldEF0dHJpYnV0ZShhdHRyaWJ1dGUsIHZhbHVlKTsNCn0NCmZ1bmN0aW9uIGdldExvY2FsRGF0YShkYXRhVHlwZSwgaWQpIHsNCiAgICBsZXQgZGF0YSA9IHt9Ow0KICAgIHN3aXRjaCAoZGF0YVR5cGUpIHsNCiAgICAgICAgY2FzZSAibTN1IjoNCiAgICAgICAgICAgIGRhdGEgPSBTRVJWRVJbInNldHRpbmdzIl1bImZpbGVzIl1bZGF0YVR5cGVdW2lkXTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJoZGhyIjoNCiAgICAgICAgICAgIGRhdGEgPSBTRVJWRVJbInNldHRpbmdzIl1bImZpbGVzIl1bZGF0YVR5cGVdW2lkXTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJmaWx0ZXIiOg0KICAgICAgICBjYXNlICJjdXN0b20tZmlsdGVyIjoNCiAgICAgICAgY2FzZSAiZ3JvdXAtdGl0bGUiOg0KICAgICAgICAgICAgaWYgKGlkID09IC0xKSB7DQogICAgICAgICAgICAgICAgZGF0YVsiYWN0aXZlIl0gPSB0cnVlOw0KICAgICAgICAgICAgICAgIGRhdGFbImNhc2VTZW5zaXRpdmUiXSA9IGZhbHNlOw0KICAgICAgICAgICAgICAgIGRhdGFbImRlc2NyaXB0aW9uIl0gPSAiIjsNCiAgICAgICAgICAgICAgICBkYXRhWyJleGNsdWRlIl0gPSAiIjsNCiAgICAgICAgICAgICAgICBkYXRhWyJmaWx0ZXIiXSA9ICIiOw0KICAgICAgICAgICAgICAgIGRhdGFbImluY2x1ZGUiXSA9ICIiOw0KICAgICAgICAgICAgICAgIGRhdGFbIm5hbWUiXSA9ICIiOw0KICAgICAgICAgICAgICAgIGRhdGFbInR5cGUiXSA9ICJncm91cC10aXRsZSI7DQogICAgICAgICAgICAgICAgZGF0YVsicHJlc2VydmVNYXBwaW5nIl0gPSB0cnVlOw0KICAgICAgICAgICAgICAgIGRhdGFbInN0YXJ0aW5nQ2hhbm5lbCJdID0gU0VSVkVSWyJzZXR0aW5ncyJdWyJtYXBwaW5nLmZpcnN0LmNoYW5uZWwiXTsNCiAgICAgICAgICAgICAgICBTRVJWRVJbInNldHRpbmdzIl1bImZpbHRlciJdW2lkXSA9IGRhdGE7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBkYXRhID0gU0VSVkVSWyJzZXR0aW5ncyJdWyJmaWx0ZXIiXVtpZF07DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSAieG1sdHYiOg0KICAgICAgICAgICAgZGF0YSA9IFNFUlZFUlsic2V0dGluZ3MiXVsiZmlsZXMiXVtkYXRhVHlwZV1baWRdOw0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGNhc2UgInVzZXJzIjoNCiAgICAgICAgICAgIGRhdGEgPSBTRVJWRVJbInVzZXJzIl1baWRdWyJkYXRhIl07DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSAibWFwcGluZyI6DQogICAgICAgICAgICBkYXRhID0gU0VSVkVSWyJ4ZXBnIl1bImVwZ01hcHBpbmciXVtpZF07DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSAibTN1R3JvdXBzIjoNCiAgICAgICAgICAgIGRhdGEgPSBTRVJWRVJbImRhdGEiXVsicGxheWxpc3QiXVsibTN1Il1bImdyb3VwcyJdOw0KICAgICAgICAgICAgYnJlYWs7DQogICAgfQ0KICAgIHJldHVybiBkYXRhOw0KfQ0KZnVuY3Rpb24gZ2V0T3duT2JqUHJvcHMob2JqZWN0KSB7DQogICAgcmV0dXJuIG9iamVjdCA/IE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKG9iamVjdCkgOiBbXTsNCn0NCmZ1bmN0aW9uIGdldEFsbFNlbGVjdGVkQ2hhbm5lbHMoKSB7DQogICAgdmFyIGNoYW5uZWxzID0gbmV3IEFycmF5KCk7DQogICAgaWYgKEJVTEtfRURJVCA9PSBmYWxzZSkgew0KICAgICAgICByZXR1cm4gY2hhbm5lbHM7DQogICAgfQ0KICAgIHZhciB0cnMgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29udGVudF90YWJsZSIpLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJUUiIpOw0KICAgIGZvciAodmFyIGkgPSAxOyBpIDwgdHJzLmxlbmd0aDsgaSsrKSB7DQogICAgICAgIGlmICh0cnNbaV0uc3R5bGUuZGlzcGxheSAhPSAibm9uZSIpIHsNCiAgICAgICAgICAgIGlmICh0cnNbaV0uZmlyc3RDaGlsZC5maXJzdENoaWxkLmNoZWNrZWQgPT0gdHJ1ZSkgew0KICAgICAgICAgICAgICAgIGNoYW5uZWxzLnB1c2godHJzW2ldLmlkKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KICAgIH0NCiAgICByZXR1cm4gY2hhbm5lbHM7DQp9DQpmdW5jdGlvbiBzZWxlY3RBbGxDaGFubmVscygpIHsNCiAgICB2YXIgYnVsayA9IGZhbHNlOw0KICAgIHZhciB0cnMgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29udGVudF90YWJsZSIpLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJUUiIpOw0KICAgIGlmICh0cnNbMF0uZmlyc3RDaGlsZC5maXJzdENoaWxkLmNoZWNrZWQgPT0gdHJ1ZSkgew0KICAgICAgICBidWxrID0gdHJ1ZTsNCiAgICB9DQogICAgZm9yICh2YXIgaSA9IDE7IGkgPCB0cnMubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgaWYgKHRyc1tpXS5zdHlsZS5kaXNwbGF5ICE9ICJub25lIikgew0KICAgICAgICAgICAgc3dpdGNoIChidWxrKSB7DQogICAgICAgICAgICAgICAgY2FzZSB0cnVlOg0KICAgICAgICAgICAgICAgICAgICB0cnNbaV0uZmlyc3RDaGlsZC5maXJzdENoaWxkLmNoZWNrZWQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBjYXNlIGZhbHNlOg0KICAgICAgICAgICAgICAgICAgICB0cnNbaV0uZmlyc3RDaGlsZC5maXJzdENoaWxkLmNoZWNrZWQgPSBmYWxzZTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICB9DQogICAgICAgIH0NCiAgICB9DQogICAgcmV0dXJuOw0KfQ0KZnVuY3Rpb24gYnVsa0VkaXQoKSB7DQogICAgQlVMS19FRElUID0gIUJVTEtfRURJVDsNCiAgICB2YXIgY2xhc3NOYW1lOw0KICAgIHZhciByb3dzID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSgiYnVsayIpOw0KICAgIHN3aXRjaCAoQlVMS19FRElUKSB7DQogICAgICAgIGNhc2UgdHJ1ZToNCiAgICAgICAgICAgIGNsYXNzTmFtZSA9ICJidWxrIHNob3dCdWxrIjsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlIGZhbHNlOg0KICAgICAgICAgICAgY2xhc3NOYW1lID0gImJ1bGsgaGlkZUJ1bGsiOw0KICAgICAgICAgICAgYnJlYWs7DQogICAgfQ0KICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcm93cy5sZW5ndGg7IGkrKykgew0KICAgICAgICByb3dzW2ldLmNsYXNzTmFtZSA9IGNsYXNzTmFtZTsNCiAgICAgICAgcm93c1tpXS5jaGVja2VkID0gZmFsc2U7DQogICAgfQ0KICAgIHJldHVybjsNCn0NCmZ1bmN0aW9uIHNvcnRUYWJsZShjb2x1bW4pIHsNCiAgICBpZiAoY29sdW1uID09IENPTFVNTl9UT19TT1JUKSB7DQogICAgICAgIHJldHVybjsNCiAgICB9DQogICAgY29uc3QgdGFibGUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29udGVudF90YWJsZSIpOw0KICAgIGNvbnN0IHRhYmxlSGVhZCA9IHRhYmxlLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJUUiIpWzBdOw0KICAgIGNvbnN0IHRhYmxlSXRlbXMgPSB0YWJsZUhlYWQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlREIik7DQogICAgY29uc3Qgc29ydEFyciA9IFtdOw0KICAgIGxldCB4VmFsdWU7DQogICAgaWYgKGNvbHVtbiA+PSAwICYmIENPTFVNTl9UT19TT1JUID49IDApIHsNCiAgICAgICAgdGFibGVJdGVtc1tDT0xVTU5fVE9fU09SVF0uY2xhc3NOYW1lID0gInBvaW50ZXIiOw0KICAgICAgICB0YWJsZUl0ZW1zW2NvbHVtbl0uY2xhc3NOYW1lID0gInNvcnRUaGlzIjsNCiAgICB9DQogICAgQ09MVU1OX1RPX1NPUlQgPSBjb2x1bW47DQogICAgY29uc3Qgcm93cyA9IHRhYmxlLnJvd3M7DQogICAgaWYgKHJvd3NbMV0gIT0gdW5kZWZpbmVkKSB7DQogICAgICAgIGNvbnN0IHRhYmxlSGVhZGVyID0gcm93c1swXTsNCiAgICAgICAgbGV0IHggPSByb3dzWzFdLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJURCIpW2NvbHVtbl07DQogICAgICAgIGZvciAobGV0IGkgPSAxOyBpIDwgcm93cy5sZW5ndGg7IGkrKykgew0KICAgICAgICAgICAgeCA9IHJvd3NbaV0uZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlREIilbY29sdW1uXTsNCiAgICAgICAgICAgIHN3aXRjaCAoeC5jaGlsZE5vZGVzWzBdLnRhZ05hbWUudG9Mb3dlckNhc2UoKSkgew0KICAgICAgICAgICAgICAgIGNhc2UgImlucHV0IjoNCiAgICAgICAgICAgICAgICAgICAgeFZhbHVlID0geC5nZXRFbGVtZW50c0J5VGFnTmFtZSgiSU5QVVQiKVswXS52YWx1ZS50b0xvd2VyQ2FzZSgpOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBjYXNlICJwIjoNCiAgICAgICAgICAgICAgICAgICAgeFZhbHVlID0geC5nZXRFbGVtZW50c0J5VGFnTmFtZSgiUCIpWzBdLmlubmVyVGV4dC50b0xvd2VyQ2FzZSgpOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBkZWZhdWx0Og0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIHNvcnRBcnIucHVzaCh7IGtleTogeFZhbHVlID8geFZhbHVlIDogaSwgcm93OiByb3dzW2ldIH0pOw0KICAgICAgICB9DQogICAgICAgIHdoaWxlICh0YWJsZS5maXJzdENoaWxkKSB7DQogICAgICAgICAgICB0YWJsZS5yZW1vdmVDaGlsZCh0YWJsZS5maXJzdENoaWxkKTsNCiAgICAgICAgfQ0KICAgICAgICBzb3J0QXJyLnNvcnQoKHNlMSwgc2UyKSA9PiB7DQogICAgICAgICAgICBjb25zdCBzZTFLZXlOdW0gPSBwYXJzZUZsb2F0KFN0cmluZyhzZTEua2V5KSk7DQogICAgICAgICAgICBjb25zdCBzZTJLZXlOdW0gPSBwYXJzZUZsb2F0KFN0cmluZyhzZTIua2V5KSk7DQogICAgICAgICAgICBpZiAoIWlzTmFOKHNlMUtleU51bSkgJiYgIWlzTmFOKHNlMktleU51bSkpIHsNCiAgICAgICAgICAgICAgICByZXR1cm4gc2UxS2V5TnVtIC0gc2UyS2V5TnVtOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgaWYgKHNlMS5rZXkgPCBzZTIua2V5KSB7DQogICAgICAgICAgICAgICAgcmV0dXJuIC0xOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgaWYgKHNlMS5rZXkgPiBzZTIua2V5KSB7DQogICAgICAgICAgICAgICAgcmV0dXJuIDE7DQogICAgICAgICAgICB9DQogICAgICAgICAgICByZXR1cm4gMDsNCiAgICAgICAgfSk7DQogICAgICAgIHRhYmxlLmFwcGVuZENoaWxkKHRhYmxlSGVhZGVyKTsNCiAgICAgICAgc29ydEFyci5mb3JFYWNoKChzZSkgPT4gew0KICAgICAgICAgICAgdGFibGUuYXBwZW5kQ2hpbGQoc2Uucm93KTsNCiAgICAgICAgfSk7DQogICAgfQ0KICAgIHJldHVybjsNCn0NCmZ1bmN0aW9uIGNyZWF0ZVNlYXJjaE9iaigpIHsNCiAgICBTRUFSQ0hfTUFQUElORyA9IG5ldyBPYmplY3QoKTsNCiAgICB2YXIgZGF0YSA9IFNFUlZFUlsieGVwZyJdWyJlcGdNYXBwaW5nIl07DQogICAgdmFyIGNoYW5uZWxzID0gZ2V0T3duT2JqUHJvcHMoZGF0YSk7DQogICAgdmFyIGNoYW5uZWxLZXlzID0gWyJ4LWFjdGl2ZSIsICJ4LWNoYW5uZWxJRCIsICJ4LW5hbWUiLCAidXBkYXRlQ2hhbm5lbE5hbWVSZWdleCIsICJfZmlsZS5tM3UubmFtZSIsICJ4LWdyb3VwLXRpdGxlIiwgIngteG1sdHYtZmlsZSJdOw0KICAgIGNoYW5uZWxzLmZvckVhY2goaWQgPT4gew0KICAgICAgICBjaGFubmVsS2V5cy5mb3JFYWNoKGtleSA9PiB7DQogICAgICAgICAgICBpZiAoa2V5ID09ICJ4LWFjdGl2ZSIpIHsNCiAgICAgICAgICAgICAgICBzd2l0Y2ggKGRhdGFbaWRdW2tleV0pIHsNCiAgICAgICAgICAgICAgICAgICAgY2FzZSB0cnVlOg0KICAgICAgICAgICAgICAgICAgICAgICAgU0VBUkNIX01BUFBJTkdbaWRdID0gIm9ubGluZSAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgICAgIGNhc2UgZmFsc2U6DQogICAgICAgICAgICAgICAgICAgICAgICBTRUFSQ0hfTUFQUElOR1tpZF0gPSAib2ZmbGluZSAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgZWxzZSB7DQogICAgICAgICAgICAgICAgaWYgKGtleSA9PSAieC14bWx0di1maWxlIikgew0KICAgICAgICAgICAgICAgICAgICB2YXIgeG1sdHZGaWxlID0gZ2V0VmFsdWVGcm9tUHJvdmlkZXJGaWxlKGRhdGFbaWRdW2tleV0sICJ4bWx0diIsICJuYW1lIik7DQogICAgICAgICAgICAgICAgICAgIGlmICh4bWx0dkZpbGUgIT0gdW5kZWZpbmVkKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBTRUFSQ0hfTUFQUElOR1tpZF0gPSBTRUFSQ0hfTUFQUElOR1tpZF0gKyB4bWx0dkZpbGUgKyAiICI7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgZWxzZSB7DQogICAgICAgICAgICAgICAgICAgIFNFQVJDSF9NQVBQSU5HW2lkXSA9IFNFQVJDSF9NQVBQSU5HW2lkXSArIGRhdGFbaWRdW2tleV0gKyAiICI7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfQ0KICAgICAgICB9KTsNCiAgICB9KTsNCiAgICByZXR1cm47DQp9DQpmdW5jdGlvbiBzZWFyY2hJbk1hcHBpbmcoKSB7DQogICAgdmFyIHNlYXJjaFZhbHVlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNlYXJjaE1hcHBpbmciKS52YWx1ZTsNCiAgICB2YXIgdHJzID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnRlbnRfdGFibGUiKS5nZXRFbGVtZW50c0J5VGFnTmFtZSgiVFIiKTsNCiAgICBmb3IgKHZhciBpID0gMTsgaSA8IHRycy5sZW5ndGg7ICsraSkgew0KICAgICAgICB2YXIgaWQgPSB0cnNbaV0uZ2V0QXR0cmlidXRlKCJpZCIpOw0KICAgICAgICB2YXIgZWxlbWVudCA9IFNFQVJDSF9NQVBQSU5HW2lkXTsNCiAgICAgICAgc3dpdGNoIChlbGVtZW50LnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoc2VhcmNoVmFsdWUudG9Mb3dlckNhc2UoKSkpIHsNCiAgICAgICAgICAgIGNhc2UgdHJ1ZToNCiAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkuc3R5bGUuZGlzcGxheSA9ICIiOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSBmYWxzZToNCiAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkuc3R5bGUuZGlzcGxheSA9ICJub25lIjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgfQ0KICAgIH0NCiAgICByZXR1cm47DQp9DQpmdW5jdGlvbiBjYWxjdWxhdGVXcmFwcGVySGVpZ2h0KCkgew0KICAgIGlmIChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYm94LXdyYXBwZXIiKSkgew0KICAgICAgICB2YXIgZWxtID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImJveC13cmFwcGVyIik7DQogICAgICAgIHZhciBkaXZzID0gbmV3IEFycmF5KCJteVN0cmVhbXNCb3giLCAiY2xpZW50SW5mbyIsICJjb250ZW50Iik7DQogICAgICAgIHZhciBlbGVtZW50c0hlaWdodCA9IDAgLSBlbG0ub2Zmc2V0SGVpZ2h0Ow0KICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGRpdnMubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgICAgIGVsZW1lbnRzSGVpZ2h0ID0gZWxlbWVudHNIZWlnaHQgKyBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChkaXZzW2ldKS5vZmZzZXRIZWlnaHQ7DQogICAgICAgIH0NCiAgICAgICAgZWxtLnN0eWxlLmhlaWdodCA9IHdpbmRvdy5pbm5lckhlaWdodCAtIGVsZW1lbnRzSGVpZ2h0ICsgInB4IjsNCiAgICB9DQogICAgcmV0dXJuOw0KfQ0KZnVuY3Rpb24gY2hhbmdlQ2hhbm5lbE51bWJlcihlbGVtZW50KSB7DQogICAgdmFyIGRiSUQgPSBlbGVtZW50LnBhcmVudE5vZGUucGFyZW50Tm9kZS5pZDsNCiAgICB2YXIgbmV3TnVtYmVyID0gcGFyc2VGbG9hdChlbGVtZW50LnZhbHVlKTsNCiAgICB2YXIgY2hhbm5lbE51bWJlcnMgPSBbXTsNCiAgICB2YXIgZGF0YSA9IFNFUlZFUlsieGVwZyJdWyJlcGdNYXBwaW5nIl07DQogICAgdmFyIGNoYW5uZWxzID0gZ2V0T3duT2JqUHJvcHMoZGF0YSk7DQogICAgaWYgKGlzTmFOKG5ld051bWJlcikpIHsNCiAgICAgICAgYWxlcnQoInt7LmFsZXJ0LmludmFsaWRDaGFubmVsTnVtYmVyfX0iKTsNCiAgICAgICAgcmV0dXJuOw0KICAgIH0NCiAgICBjaGFubmVscy5mb3JFYWNoKGlkID0+IHsNCiAgICAgICAgdmFyIGNoYW5uZWxOdW1iZXIgPSBwYXJzZUZsb2F0KGRhdGFbaWRdWyJ4LWNoYW5uZWxJRCJdKTsNCiAgICAgICAgY2hhbm5lbE51bWJlcnMucHVzaChjaGFubmVsTnVtYmVyKTsNCiAgICB9KTsNCiAgICBmb3IgKHZhciBpID0gMDsgaSA8IGNoYW5uZWxOdW1iZXJzLmxlbmd0aDsgaSsrKSB7DQogICAgICAgIGlmIChjaGFubmVsTnVtYmVycy5pbmRleE9mKG5ld051bWJlcikgPT0gLTEpIHsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICB9DQogICAgICAgIGlmIChNYXRoLmZsb29yKG5ld051bWJlcikgPT0gbmV3TnVtYmVyKSB7DQogICAgICAgICAgICBuZXdOdW1iZXIgPSBuZXdOdW1iZXIgKyAxOw0KICAgICAgICB9DQogICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgbmV3TnVtYmVyID0gbmV3TnVtYmVyICsgMC4xOw0KICAgICAgICAgICAgbmV3TnVtYmVyLnRvRml4ZWQoMSk7DQogICAgICAgICAgICBuZXdOdW1iZXIgPSBNYXRoLnJvdW5kKG5ld051bWJlciAqIDEwKSAvIDEwOw0KICAgICAgICB9DQogICAgfQ0KICAgIGRhdGFbZGJJRF1bIngtY2hhbm5lbElEIl0gPSBuZXdOdW1iZXIudG9TdHJpbmcoKTsNCiAgICBlbGVtZW50LnZhbHVlID0gbmV3TnVtYmVyOw0KICAgIGlmIChDT0xVTU5fVE9fU09SVCA9PSAxKSB7DQogICAgICAgIENPTFVNTl9UT19TT1JUID0gLTE7DQogICAgICAgIHNvcnRUYWJsZSgxKTsNCiAgICB9DQogICAgcmV0dXJuOw0KfQ0KZnVuY3Rpb24gYmFja3VwKCkgew0KICAgIHZhciBkYXRhID0gbmV3IE9iamVjdCgpOw0KICAgIHZhciBjbWQgPSAieHRldmVCYWNrdXAiOw0KICAgIHZhciBzZXJ2ZXIgPSBuZXcgU2VydmVyKGNtZCk7DQogICAgc2VydmVyLnJlcXVlc3QoZGF0YSk7DQogICAgcmV0dXJuOw0KfQ0KZnVuY3Rpb24gdG9nZ2xlQ2hhbm5lbFN0YXR1cyhpZCkgew0KICAgIHZhciBlbGVtZW50Ow0KICAgIHZhciBzdGF0dXM7DQogICAgaWYgKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJhY3RpdmUiKSkgew0KICAgICAgICB2YXIgY2hlY2tib3ggPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYWN0aXZlIik7DQogICAgICAgIHN0YXR1cyA9IChjaGVja2JveCkuY2hlY2tlZDsNCiAgICB9DQogICAgdmFyIGlkcyA9IGdldEFsbFNlbGVjdGVkQ2hhbm5lbHMoKTsNCiAgICBpZiAoaWRzLmxlbmd0aCA9PSAwKSB7DQogICAgICAgIGlkcy5wdXNoKGlkKTsNCiAgICB9DQogICAgaWRzLmZvckVhY2goaWQgPT4gew0KICAgICAgICB2YXIgY2hhbm5lbCA9IFNFUlZFUlsieGVwZyJdWyJlcGdNYXBwaW5nIl1baWRdOw0KICAgICAgICBjaGFubmVsWyJ4LWFjdGl2ZSJdID0gc3RhdHVzOw0KICAgICAgICBzd2l0Y2ggKGNoYW5uZWxbIngtYWN0aXZlIl0pIHsNCiAgICAgICAgICAgIGNhc2UgdHJ1ZToNCiAgICAgICAgICAgICAgICBpZiAoY2hhbm5lbFsieC14bWx0di1maWxlIl0gPT0gIi0iIHx8IGNoYW5uZWxbIngtbWFwcGluZyJdID09ICItIikgew0KICAgICAgICAgICAgICAgICAgICBpZiAoQlVMS19FRElUID09IGZhbHNlKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBhbGVydChjaGFubmVsWyJ4LW5hbWUiXSArICI6IE1pc3NpbmcgWE1MVFYgZmlsZSAvIGNoYW5uZWwiKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNoZWNrYm94LmNoZWNrZWQgPSBmYWxzZTsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBjaGFubmVsWyJ4LWFjdGl2ZSJdID0gZmFsc2U7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSBmYWxzZToNCiAgICAgICAgICAgICAgICAvLyBjb2RlLi4uDQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIH0NCiAgICAgICAgaWYgKGNoYW5uZWxbIngtYWN0aXZlIl0gPT0gZmFsc2UpIHsNCiAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5jbGFzc05hbWUgPSAibm90QWN0aXZlRVBHIjsNCiAgICAgICAgfQ0KICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5jbGFzc05hbWUgPSAiYWN0aXZlRVBHIjsNCiAgICAgICAgfQ0KICAgIH0pOw0KfQ0KZnVuY3Rpb24gdG9nZ2xlR3JvdXBVcGRhdGVDYih4ZXBnSWQsIHRhcmdldCkgew0KICAgIHRhcmdldC5jbGFzc05hbWUgPSAnY2hhbmdlZCc7DQogICAgY29uc3QgZ3JvdXBJbnB1dCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ2lucHV0W25hbWU9IngtZ3JvdXAtdGl0bGUiXScpOw0KICAgIGNvbnN0IG1hcHBpbmcgPSBnZXRMb2NhbERhdGEoJ21hcHBpbmcnLCB4ZXBnSWQpOw0KICAgIGlmICh0YXJnZXQuY2hlY2tlZCkgew0KICAgICAgICBncm91cElucHV0LmRhdGFzZXQub2xkVmFsdWUgPSBncm91cElucHV0LnZhbHVlOw0KICAgICAgICBncm91cElucHV0LnZhbHVlID0gbWFwcGluZ1snZ3JvdXAtdGl0bGUnXTsNCiAgICAgICAgZ3JvdXBJbnB1dC5kaXNhYmxlZCA9IHRydWU7DQogICAgfQ0KICAgIGVsc2Ugew0KICAgICAgICBncm91cElucHV0LnZhbHVlID0gZ3JvdXBJbnB1dC5kYXRhc2V0Lm9sZFZhbHVlOw0KICAgICAgICBncm91cElucHV0LmRpc2FibGVkID0gZmFsc2U7DQogICAgfQ0KICAgIGdyb3VwSW5wdXQuY2xhc3NOYW1lID0gJ2NoYW5nZWQnOw0KfQ0KZnVuY3Rpb24gcmVzdG9yZSgpIHsNCiAgICBpZiAoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3VwbG9hZCcpKSB7DQogICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd1cGxvYWQnKS5yZW1vdmUoKTsNCiAgICB9DQogICAgdmFyIHJlc3RvcmUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJJTlBVVCIpOw0KICAgIHJlc3RvcmUuc2V0QXR0cmlidXRlKCJ0eXBlIiwgImZpbGUiKTsNCiAgICByZXN0b3JlLnNldEF0dHJpYnV0ZSgiY2xhc3MiLCAibm90VmlzaWJsZSIpOw0KICAgIHJlc3RvcmUuc2V0QXR0cmlidXRlKCJuYW1lIiwgIiIpOw0KICAgIHJlc3RvcmUuaWQgPSAidXBsb2FkIjsNCiAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHJlc3RvcmUpOw0KICAgIHJlc3RvcmUuY2xpY2soKTsNCiAgICByZXN0b3JlLm9uY2hhbmdlID0gZnVuY3Rpb24gKCkgew0KICAgICAgICB2YXIgZmlsZW5hbWUgPSByZXN0b3JlLmZpbGVzWzBdLm5hbWU7DQogICAgICAgIHZhciBjaGVjayA9IGNvbmZpcm0oIkZpbGU6ICIgKyBmaWxlbmFtZSArICJcbnt7LmNvbmZpcm0ucmVzdG9yZX19Iik7DQogICAgICAgIGlmIChjaGVjayA9PSB0cnVlKSB7DQogICAgICAgICAgICB2YXIgcmVhZGVyID0gbmV3IEZpbGVSZWFkZXIoKTsNCiAgICAgICAgICAgIHZhciBmaWxlID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignaW5wdXRbdHlwZT1maWxlXScpLmZpbGVzWzBdOw0KICAgICAgICAgICAgaWYgKGZpbGUpIHsNCiAgICAgICAgICAgICAgICByZWFkZXIucmVhZEFzRGF0YVVSTChmaWxlKTsNCiAgICAgICAgICAgICAgICByZWFkZXIub25sb2FkID0gZnVuY3Rpb24gKCkgew0KICAgICAgICAgICAgICAgICAgICB2YXIgZGF0YSA9IG5ldyBPYmplY3QoKTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGNtZCA9ICJ4dGV2ZVJlc3RvcmUiOw0KICAgICAgICAgICAgICAgICAgICBkYXRhWyJiYXNlNjQiXSA9IHJlYWRlci5yZXN1bHQ7DQogICAgICAgICAgICAgICAgICAgIHZhciBzZXJ2ZXIgPSBuZXcgU2VydmVyKGNtZCk7DQogICAgICAgICAgICAgICAgICAgIHNlcnZlci5yZXF1ZXN0KGRhdGEpOw0KICAgICAgICAgICAgICAgIH07DQogICAgICAgICAgICB9DQogICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICBhbGVydCgiRmlsZSBjb3VsZCBub3QgYmUgbG9hZGVkIik7DQogICAgICAgICAgICB9DQogICAgICAgICAgICByZXN0b3JlLnJlbW92ZSgpOw0KICAgICAgICAgICAgcmV0dXJuOw0KICAgICAgICB9DQogICAgfTsNCiAgICByZXR1cm47DQp9DQpmdW5jdGlvbiB1cGxvYWRMb2dvKCkgew0KICAgIGlmIChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndXBsb2FkJykpIHsNCiAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3VwbG9hZCcpLnJlbW92ZSgpOw0KICAgIH0NCiAgICB2YXIgdXBsb2FkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiSU5QVVQiKTsNCiAgICB1cGxvYWQuc2V0QXR0cmlidXRlKCJ0eXBlIiwgImZpbGUiKTsNCiAgICB1cGxvYWQuc2V0QXR0cmlidXRlKCJjbGFzcyIsICJub3RWaXNpYmxlIik7DQogICAgdXBsb2FkLnNldEF0dHJpYnV0ZSgibmFtZSIsICIiKTsNCiAgICB1cGxvYWQuaWQgPSAidXBsb2FkIjsNCiAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHVwbG9hZCk7DQogICAgdXBsb2FkLmNsaWNrKCk7DQogICAgdXBsb2FkLm9uYmx1ciA9IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgYWxlcnQoKTsNCiAgICB9Ow0KICAgIHVwbG9hZC5vbmNoYW5nZSA9IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgdmFyIGZpbGVuYW1lID0gdXBsb2FkLmZpbGVzWzBdLm5hbWU7DQogICAgICAgIHZhciByZWFkZXIgPSBuZXcgRmlsZVJlYWRlcigpOw0KICAgICAgICB2YXIgZmlsZSA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ2lucHV0W3R5cGU9ZmlsZV0nKS5maWxlc1swXTsNCiAgICAgICAgaWYgKGZpbGUpIHsNCiAgICAgICAgICAgIHJlYWRlci5yZWFkQXNEYXRhVVJMKGZpbGUpOw0KICAgICAgICAgICAgcmVhZGVyLm9ubG9hZCA9IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgICAgICAgICB2YXIgZGF0YSA9IG5ldyBPYmplY3QoKTsNCiAgICAgICAgICAgICAgICB2YXIgY21kID0gInVwbG9hZExvZ28iOw0KICAgICAgICAgICAgICAgIGRhdGFbImJhc2U2NCJdID0gcmVhZGVyLnJlc3VsdDsNCiAgICAgICAgICAgICAgICBkYXRhWyJmaWxlbmFtZSJdID0gZmlsZS5uYW1lOw0KICAgICAgICAgICAgICAgIHZhciBzZXJ2ZXIgPSBuZXcgU2VydmVyKGNtZCk7DQogICAgICAgICAgICAgICAgc2VydmVyLnJlcXVlc3QoZGF0YSk7DQogICAgICAgICAgICAgICAgdmFyIHVwZGF0ZUxvZ28gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndXBkYXRlLWljb24nKTsNCiAgICAgICAgICAgICAgICB1cGRhdGVMb2dvLmNoZWNrZWQgPSBmYWxzZTsNCiAgICAgICAgICAgICAgICB1cGRhdGVMb2dvLmNsYXNzTmFtZSA9ICJjaGFuZ2VkIjsNCiAgICAgICAgICAgIH07DQogICAgICAgIH0NCiAgICAgICAgZWxzZSB7DQogICAgICAgICAgICBhbGVydCgiRmlsZSBjb3VsZCBub3QgYmUgbG9hZGVkIik7DQogICAgICAgIH0NCiAgICAgICAgdXBsb2FkLnJlbW92ZSgpOw0KICAgICAgICByZXR1cm47DQogICAgfTsNCn0NCmZ1bmN0aW9uIGNoZWNrVW5kbyhrZXkpIHsNCiAgICBzd2l0Y2ggKGtleSkgew0KICAgICAgICBjYXNlICJlcGdNYXBwaW5nIjoNCiAgICAgICAgICAgIGlmIChVTkRPLmhhc093blByb3BlcnR5KGtleSkpIHsNCiAgICAgICAgICAgICAgICBTRVJWRVJbInhlcGciXVtrZXldID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeShVTkRPW2tleV0pKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgICAgIFVORE9ba2V5XSA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkoU0VSVkVSWyJ4ZXBnIl1ba2V5XSkpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICBicmVhazsNCiAgICB9DQogICAgcmV0dXJuOw0KfQ0KZnVuY3Rpb24gdXBkYXRlTG9nKCkgew0KICAgIHZhciBzZXJ2ZXIgPSBuZXcgU2VydmVyKCJ1cGRhdGVMb2ciKTsNCiAgICBzZXJ2ZXIucmVxdWVzdChuZXcgT2JqZWN0KCkpOw0KfQ0K" webUI["html/js/classes_ts.js"] = "dmFyIF9fZXh0ZW5kcyA9ICh0aGlzICYmIHRoaXMuX19leHRlbmRzKSB8fCAoZnVuY3Rpb24gKCkgew0KICAgIHZhciBleHRlbmRTdGF0aWNzID0gZnVuY3Rpb24gKGQsIGIpIHsNCiAgICAgICAgZXh0ZW5kU3RhdGljcyA9IE9iamVjdC5zZXRQcm90b3R5cGVPZiB8fA0KICAgICAgICAgICAgKHsgX19wcm90b19fOiBbXSB9IGluc3RhbmNlb2YgQXJyYXkgJiYgZnVuY3Rpb24gKGQsIGIpIHsgZC5fX3Byb3RvX18gPSBiOyB9KSB8fA0KICAgICAgICAgICAgZnVuY3Rpb24gKGQsIGIpIHsgZm9yICh2YXIgcCBpbiBiKSBpZiAoYi5oYXNPd25Qcm9wZXJ0eShwKSkgZFtwXSA9IGJbcF07IH07DQogICAgICAgIHJldHVybiBleHRlbmRTdGF0aWNzKGQsIGIpOw0KICAgIH07DQogICAgcmV0dXJuIGZ1bmN0aW9uIChkLCBiKSB7DQogICAgICAgIGV4dGVuZFN0YXRpY3MoZCwgYik7DQogICAgICAgIGZ1bmN0aW9uIF9fKCkgeyB0aGlzLmNvbnN0cnVjdG9yID0gZDsgfQ0KICAgICAgICBkLnByb3RvdHlwZSA9IGIgPT09IG51bGwgPyBPYmplY3QuY3JlYXRlKGIpIDogKF9fLnByb3RvdHlwZSA9IGIucHJvdG90eXBlLCBuZXcgX18oKSk7DQogICAgfTsNCn0pKCk7DQp2YXIgTWFpbk1lbnUgPSAvKiogQGNsYXNzICovIChmdW5jdGlvbiAoKSB7DQogICAgZnVuY3Rpb24gTWFpbk1lbnUoKSB7DQogICAgICAgIHRoaXMuRG9jdW1lbnRJRCA9ICJtYWluLW1lbnUiOw0KICAgICAgICB0aGlzLkhUTUxUYWcgPSAiTEkiOw0KICAgIH0NCiAgICBNYWluTWVudS5wcm90b3R5cGUuY3JlYXRlID0gZnVuY3Rpb24gKCkgew0KICAgICAgICBjb25zb2xlLmxvZyh0aGlzLkRvY3VtZW50SUQpOw0KICAgIH07DQogICAgcmV0dXJuIE1haW5NZW51Ow0KfSgpKTsNCnZhciBNYWluTWVudUl0ZW0gPSAvKiogQGNsYXNzICovIChmdW5jdGlvbiAoX3N1cGVyKSB7DQogICAgX19leHRlbmRzKE1haW5NZW51SXRlbSwgX3N1cGVyKTsNCiAgICBmdW5jdGlvbiBNYWluTWVudUl0ZW0oKSB7DQogICAgICAgIHJldHVybiBfc3VwZXIgIT09IG51bGwgJiYgX3N1cGVyLmFwcGx5KHRoaXMsIGFyZ3VtZW50cykgfHwgdGhpczsNCiAgICB9DQogICAgTWFpbk1lbnVJdGVtLnByb3RvdHlwZS5jcmVhdGUyID0gZnVuY3Rpb24gKCkgew0KICAgICAgICB2YXIgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQodGhpcy5IVE1MVGFnKTsNCiAgICAgICAgZWxlbWVudC5pbm5lclRleHQgPSB0aGlzLlZhbHVlOw0KICAgICAgICBjb25zb2xlLmxvZyhlbGVtZW50KTsNCiAgICB9Ow0KICAgIHJldHVybiBNYWluTWVudUl0ZW07DQp9KE1haW5NZW51KSk7DQpmdW5jdGlvbiBwYWdlUmVhZHkoKSB7DQogICAgdmFyIGl0ZW0gPSBuZXcgTWFpbk1lbnVJdGVtKCk7DQogICAgaXRlbS5WYWx1ZSA9ICJUZXN0IjsNCiAgICBpdGVtLmNyZWF0ZTIoKTsNCn0NCg==" webUI["html/js/configuration_ts.js"] = "Y2xhc3MgV2l6YXJkQ2F0ZWdvcnkgew0KICAgIGNvbnN0cnVjdG9yKCkgew0KICAgICAgICB0aGlzLkRvY3VtZW50SUQgPSAiY29udGVudCI7DQogICAgfQ0KICAgIGNyZWF0ZUNhdGVnb3J5SGVhZGxpbmUodmFsdWUpIHsNCiAgICAgICAgdmFyIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJINCIpOw0KICAgICAgICBlbGVtZW50LmlubmVySFRNTCA9IHZhbHVlOw0KICAgICAgICByZXR1cm4gZWxlbWVudDsNCiAgICB9DQp9DQpjbGFzcyBXaXphcmRJdGVtIGV4dGVuZHMgV2l6YXJkQ2F0ZWdvcnkgew0KICAgIGNvbnN0cnVjdG9yKGtleSwgaGVhZGxpbmUpIHsNCiAgICAgICAgc3VwZXIoKTsNCiAgICAgICAgdGhpcy5oZWFkbGluZSA9IGhlYWRsaW5lOw0KICAgICAgICB0aGlzLmtleSA9IGtleTsNCiAgICB9DQogICAgY3JlYXRlV2l6YXJkKCkgew0KICAgICAgICB2YXIgaGVhZGxpbmUgPSB0aGlzLmNyZWF0ZUNhdGVnb3J5SGVhZGxpbmUodGhpcy5oZWFkbGluZSk7DQogICAgICAgIHZhciBrZXkgPSB0aGlzLmtleTsNCiAgICAgICAgdmFyIGNvbnRlbnQgPSBuZXcgUG9wdXBDb250ZW50KCk7DQogICAgICAgIHZhciBkZXNjcmlwdGlvbjsNCiAgICAgICAgdmFyIGRvYyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHRoaXMuRG9jdW1lbnRJRCk7DQogICAgICAgIGRvYy5pbm5lckhUTUwgPSAiIjsNCiAgICAgICAgZG9jLmFwcGVuZENoaWxkKGhlYWRsaW5lKTsNCiAgICAgICAgc3dpdGNoIChrZXkpIHsNCiAgICAgICAgICAgIGNhc2UgInR1bmVyIjoNCiAgICAgICAgICAgICAgICB2YXIgdGV4dCA9IG5ldyBBcnJheSgpOw0KICAgICAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBuZXcgQXJyYXkoKTsNCiAgICAgICAgICAgICAgICBmb3IgKHZhciBpID0gMTsgaSA8PSAxMDA7IGkrKykgew0KICAgICAgICAgICAgICAgICAgICB0ZXh0LnB1c2goaSk7DQogICAgICAgICAgICAgICAgICAgIHZhbHVlcy5wdXNoKGkpOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCAiMSIsIGtleSk7DQogICAgICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgiY2xhc3MiLCAid2l6YXJkIik7DQogICAgICAgICAgICAgICAgc2VsZWN0LmlkID0ga2V5Ow0KICAgICAgICAgICAgICAgIGRvYy5hcHBlbmRDaGlsZChzZWxlY3QpOw0KICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uID0gInt7LndpemFyZC50dW5lci5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImVwZ1NvdXJjZSI6DQogICAgICAgICAgICAgICAgdmFyIHRleHQgPSBbIlBNUyIsICJYRVBHIl07DQogICAgICAgICAgICAgICAgdmFyIHZhbHVlcyA9IFsiUE1TIiwgIlhFUEciXTsNCiAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCAiWEVQRyIsIGtleSk7DQogICAgICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgiY2xhc3MiLCAid2l6YXJkIik7DQogICAgICAgICAgICAgICAgc2VsZWN0LmlkID0ga2V5Ow0KICAgICAgICAgICAgICAgIGRvYy5hcHBlbmRDaGlsZChzZWxlY3QpOw0KICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uID0gInt7LndpemFyZC5lcGdTb3VyY2UuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJtM3UiOg0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBrZXksICIiKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LndpemFyZC5tM3UucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgiY2xhc3MiLCAid2l6YXJkIik7DQogICAgICAgICAgICAgICAgaW5wdXQuaWQgPSBrZXk7DQogICAgICAgICAgICAgICAgZG9jLmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbiA9ICJ7ey53aXphcmQubTN1LmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAieG1sdHYiOg0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBrZXksICIiKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LndpemFyZC54bWx0di5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJjbGFzcyIsICJ3aXphcmQiKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5pZCA9IGtleTsNCiAgICAgICAgICAgICAgICBkb2MuYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uID0gInt7LndpemFyZC54bWx0di5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIH0NCiAgICAgICAgdmFyIHByZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlBSRSIpOw0KICAgICAgICBwcmUuaW5uZXJIVE1MID0gZGVzY3JpcHRpb247DQogICAgICAgIGRvYy5hcHBlbmRDaGlsZChwcmUpOw0KICAgIH0NCn0NCmZ1bmN0aW9uIHJlYWR5Rm9yQ29uZmlndXJhdGlvbih3aXphcmQpIHsNCiAgICB2YXIgc2VydmVyID0gbmV3IFNlcnZlcigiZ2V0U2VydmVyQ29uZmlnIik7DQogICAgc2VydmVyLnJlcXVlc3QobmV3IE9iamVjdCgpKTsNCiAgICBzaG93RWxlbWVudCgibG9hZGluZyIsIGZhbHNlKTsNCiAgICBjb25maWd1cmF0aW9uV2l6YXJkW3dpemFyZF0uY3JlYXRlV2l6YXJkKCk7DQp9DQpmdW5jdGlvbiBzYXZlV2l6YXJkKCkgew0KICAgIHZhciBjbWQgPSAic2F2ZVdpemFyZCI7DQogICAgdmFyIGRpdiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb250ZW50Iik7DQogICAgdmFyIGNvbmZpZyA9IGRpdi5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCJ3aXphcmQiKTsNCiAgICB2YXIgd2l6YXJkID0gbmV3IE9iamVjdCgpOw0KICAgIGZvciAodmFyIGkgPSAwOyBpIDwgY29uZmlnLmxlbmd0aDsgaSsrKSB7DQogICAgICAgIHZhciBuYW1lOw0KICAgICAgICB2YXIgdmFsdWU7DQogICAgICAgIHN3aXRjaCAoY29uZmlnW2ldLnRhZ05hbWUpIHsNCiAgICAgICAgICAgIGNhc2UgIlNFTEVDVCI6DQogICAgICAgICAgICAgICAgbmFtZSA9IGNvbmZpZ1tpXS5uYW1lOw0KICAgICAgICAgICAgICAgIHZhbHVlID0gY29uZmlnW2ldLnZhbHVlOw0KICAgICAgICAgICAgICAgIC8vIElmIHRoZSB2YWx1ZSBpcyBhIG51bWJlciwgc3RvcmUgaXQgYXMgYSBudW1iZXINCiAgICAgICAgICAgICAgICBpZiAoaXNOYU4odmFsdWUpKSB7DQogICAgICAgICAgICAgICAgICAgIHdpemFyZFtuYW1lXSA9IHZhbHVlOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICAgICAgd2l6YXJkW25hbWVdID0gcGFyc2VJbnQodmFsdWUpOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgIklOUFVUIjoNCiAgICAgICAgICAgICAgICBzd2l0Y2ggKGNvbmZpZ1tpXS50eXBlKSB7DQogICAgICAgICAgICAgICAgICAgIGNhc2UgInRleHQiOg0KICAgICAgICAgICAgICAgICAgICAgICAgbmFtZSA9IGNvbmZpZ1tpXS5uYW1lOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSBjb25maWdbaV0udmFsdWU7DQogICAgICAgICAgICAgICAgICAgICAgICBpZiAodmFsdWUubGVuZ3RoID09IDApIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgbXNnID0gbmFtZS50b1VwcGVyQ2FzZSgpICsgIjogIiArICJ7ey5hbGVydC5taXNzaW5nSW5wdXR9fSI7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgYWxlcnQobXNnKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICB3aXphcmRbbmFtZV0gPSB2YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICAgICAgLy8gY29kZS4uLg0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICB9DQogICAgfQ0KICAgIHZhciBkYXRhID0gbmV3IE9iamVjdCgpOw0KICAgIGRhdGFbIndpemFyZCJdID0gd2l6YXJkOw0KICAgIHZhciBzZXJ2ZXIgPSBuZXcgU2VydmVyKGNtZCk7DQogICAgc2VydmVyLnJlcXVlc3QoZGF0YSk7DQp9DQovLyBXaXphcmQNCnZhciBjb25maWd1cmF0aW9uV2l6YXJkID0gbmV3IEFycmF5KCk7DQpjb25maWd1cmF0aW9uV2l6YXJkLnB1c2gobmV3IFdpemFyZEl0ZW0oInR1bmVyIiwgInt7LndpemFyZC50dW5lci50aXRsZX19IikpOw0KY29uZmlndXJhdGlvbldpemFyZC5wdXNoKG5ldyBXaXphcmRJdGVtKCJlcGdTb3VyY2UiLCAie3sud2l6YXJkLmVwZ1NvdXJjZS50aXRsZX19IikpOw0KY29uZmlndXJhdGlvbldpemFyZC5wdXNoKG5ldyBXaXphcmRJdGVtKCJtM3UiLCAie3sud2l6YXJkLm0zdS50aXRsZX19IikpOw0KY29uZmlndXJhdGlvbldpemFyZC5wdXNoKG5ldyBXaXphcmRJdGVtKCJ4bWx0diIsICJ7ey53aXphcmQueG1sdHYudGl0bGV9fSIpKTsNCg==" webUI["html/js/logs_ts.js"] = "Y2xhc3MgTG9nIHsNCiAgICBjcmVhdGVMb2coZW50cnkpIHsNCiAgICAgICAgdmFyIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJQUkUiKTsNCiAgICAgICAgZW50cnkgPSBTdHJpbmcoZW50cnkpOw0KICAgICAgICBpZiAoZW50cnkuaW5kZXhPZigiV0FSTklORyIpICE9IC0xKSB7DQogICAgICAgICAgICBlbGVtZW50LmNsYXNzTmFtZSA9ICJ3YXJuaW5nTXNnIjsNCiAgICAgICAgfQ0KICAgICAgICBpZiAoZW50cnkuaW5kZXhPZigiRVJST1IiKSAhPSAtMSkgew0KICAgICAgICAgICAgZWxlbWVudC5jbGFzc05hbWUgPSAiZXJyb3JNc2ciOw0KICAgICAgICB9DQogICAgICAgIGlmIChlbnRyeS5pbmRleE9mKCJERUJVRyIpICE9IC0xKSB7DQogICAgICAgICAgICBlbGVtZW50LmNsYXNzTmFtZSA9ICJkZWJ1Z01zZyI7DQogICAgICAgIH0NCiAgICAgICAgZWxlbWVudC5pbm5lckhUTUwgPSBlbnRyeTsNCiAgICAgICAgcmV0dXJuIGVsZW1lbnQ7DQogICAgfQ0KfQ0KZnVuY3Rpb24gc2hvd0xvZ3MoYm90dG9tKSB7DQogICAgdmFyIGxvZyA9IG5ldyBMb2coKTsNCiAgICB2YXIgbG9ncyA9IFNFUlZFUlsibG9nIl1bImxvZyJdOw0KICAgIHZhciBkaXYgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29udGVudF9sb2ciKTsNCiAgICBkaXYuaW5uZXJIVE1MID0gIiI7DQogICAgdmFyIGtleXMgPSBnZXRPd25PYmpQcm9wcyhsb2dzKTsNCiAgICBrZXlzLmZvckVhY2gobG9nSUQgPT4gew0KICAgICAgICB2YXIgZW50cnkgPSBsb2cuY3JlYXRlTG9nKGxvZ3NbbG9nSURdKTsNCiAgICAgICAgZGl2LmFwcGVuZChlbnRyeSk7DQogICAgfSk7DQogICAgc2V0VGltZW91dChmdW5jdGlvbiAoKSB7DQogICAgICAgIGlmIChib3R0b20gPT0gdHJ1ZSkgew0KICAgICAgICAgICAgdmFyIHdyYXBwZXIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYm94LXdyYXBwZXIiKTsNCiAgICAgICAgICAgIHdyYXBwZXIuc2Nyb2xsVG9wID0gd3JhcHBlci5zY3JvbGxIZWlnaHQ7DQogICAgICAgIH0NCiAgICB9LCAxMCk7DQp9DQpmdW5jdGlvbiByZXNldExvZ3MoKSB7DQogICAgdmFyIGNtZCA9ICJyZXNldExvZ3MiOw0KICAgIHZhciBkYXRhID0gbmV3IE9iamVjdCgpOw0KICAgIHZhciBzZXJ2ZXIgPSBuZXcgU2VydmVyKGNtZCk7DQogICAgc2VydmVyLnJlcXVlc3QoZGF0YSk7DQp9DQo=" webUI["html/js/menu_ts.js"] = "Y2xhc3MgTWFpbk1lbnUgew0KICAgIGNvbnN0cnVjdG9yKCkgew0KICAgICAgICB0aGlzLkRvY3VtZW50SUQgPSAibWFpbi1tZW51IjsNCiAgICAgICAgdGhpcy5IVE1MVGFnID0gIkxJIjsNCiAgICAgICAgdGhpcy5JbWFnZVBhdGggPSAiaW1nLyI7DQogICAgfQ0KICAgIGNyZWF0ZUlNRyhzcmMpIHsNCiAgICAgICAgbGV0IGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJJTUciKTsNCiAgICAgICAgZWxlbWVudC5zZXRBdHRyaWJ1dGUoInNyYyIsIHRoaXMuSW1hZ2VQYXRoICsgc3JjKTsNCiAgICAgICAgcmV0dXJuIGVsZW1lbnQ7DQogICAgfQ0KICAgIGNyZWF0ZVZhbHVlKHZhbHVlKSB7DQogICAgICAgIGxldCBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiUCIpOw0KICAgICAgICBlbGVtZW50LmlubmVySFRNTCA9IHZhbHVlOw0KICAgICAgICByZXR1cm4gZWxlbWVudDsNCiAgICB9DQp9DQpjbGFzcyBNYWluTWVudUl0ZW0gZXh0ZW5kcyBNYWluTWVudSB7DQogICAgY29uc3RydWN0b3IobWVudUtleSwgdmFsdWUsIGltYWdlLCBoZWFkbGluZSkgew0KICAgICAgICBzdXBlcigpOw0KICAgICAgICB0aGlzLm1lbnVLZXkgPSBtZW51S2V5Ow0KICAgICAgICB0aGlzLnZhbHVlID0gdmFsdWU7DQogICAgICAgIHRoaXMuaW1nU3JjID0gaW1hZ2U7DQogICAgICAgIHRoaXMuaGVhZGxpbmUgPSBoZWFkbGluZTsNCiAgICB9DQogICAgY3JlYXRlSXRlbSgpIHsNCiAgICAgICAgbGV0IGl0ZW0gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJMSSIpOw0KICAgICAgICBpdGVtLnNldEF0dHJpYnV0ZSgib25jbGljayIsICJqYXZhc2NyaXB0OiBvcGVuVGhpc01lbnUodGhpcykiKTsNCiAgICAgICAgaXRlbS5zZXRBdHRyaWJ1dGUoImlkIiwgdGhpcy5pZCk7DQogICAgICAgIGxldCBpbWcgPSB0aGlzLmNyZWF0ZUlNRyh0aGlzLmltZ1NyYyk7DQogICAgICAgIGxldCB2YWx1ZSA9IHRoaXMuY3JlYXRlVmFsdWUodGhpcy52YWx1ZSk7DQogICAgICAgIGl0ZW0uYXBwZW5kQ2hpbGQoaW1nKTsNCiAgICAgICAgaXRlbS5hcHBlbmRDaGlsZCh2YWx1ZSk7DQogICAgICAgIGxldCBkb2MgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCh0aGlzLkRvY3VtZW50SUQpOw0KICAgICAgICBkb2MuYXBwZW5kQ2hpbGQoaXRlbSk7DQogICAgICAgIHN3aXRjaCAodGhpcy5tZW51S2V5KSB7DQogICAgICAgICAgICBjYXNlICJwbGF5bGlzdCI6DQogICAgICAgICAgICAgICAgdGhpcy50YWJsZUhlYWRlciA9IFsie3sucGxheWxpc3QudGFibGUucGxheWxpc3R9fSIsICJ7ey5wbGF5bGlzdC50YWJsZS50dW5lcn19IiwgInt7LnBsYXlsaXN0LnRhYmxlLmxhc3RVcGRhdGV9fSIsICJ7ey5wbGF5bGlzdC50YWJsZS5hdmFpbGFiaWxpdHl9fSAlIiwgInt7LnBsYXlsaXN0LnRhYmxlLnR5cGV9fSIsICJ7ey5wbGF5bGlzdC50YWJsZS5zdHJlYW1zfX0iLCAie3sucGxheWxpc3QudGFibGUuZ3JvdXBUaXRsZX19ICUiLCAie3sucGxheWxpc3QudGFibGUudHZnSUR9fSAlIiwgInt7LnBsYXlsaXN0LnRhYmxlLnVuaXF1ZUlEfX0gJSJdOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAieG1sdHYiOg0KICAgICAgICAgICAgICAgIHRoaXMudGFibGVIZWFkZXIgPSBbInt7LnhtbHR2LnRhYmxlLmd1aWRlfX0iLCAie3sueG1sdHYudGFibGUubGFzdFVwZGF0ZX19IiwgInt7LnhtbHR2LnRhYmxlLmF2YWlsYWJpbGl0eX19ICUiLCAie3sueG1sdHYudGFibGUuY2hhbm5lbHN9fSIsICJ7ey54bWx0di50YWJsZS5wcm9ncmFtc319Il07DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJmaWx0ZXIiOg0KICAgICAgICAgICAgICAgIHRoaXMudGFibGVIZWFkZXIgPSBbInt7LmZpbHRlci50YWJsZS5zdGFydGluZ0NoYW5uZWx9fSIsICJ7ey5maWx0ZXIudGFibGUubmFtZX19IiwgInt7LmZpbHRlci50YWJsZS50eXBlfX0iLCAie3suZmlsdGVyLnRhYmxlLmZpbHRlcn19Il07DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ1c2VycyI6DQogICAgICAgICAgICAgICAgdGhpcy50YWJsZUhlYWRlciA9IFsie3sudXNlcnMudGFibGUudXNlcm5hbWV9fSIsICJ7ey51c2Vycy50YWJsZS5wYXNzd29yZH19IiwgInt7LnVzZXJzLnRhYmxlLndlYn19IiwgInt7LnVzZXJzLnRhYmxlLnBtc319IiwgInt7LnVzZXJzLnRhYmxlLm0zdX19IiwgInt7LnVzZXJzLnRhYmxlLnhtbH19IiwgInt7LnVzZXJzLnRhYmxlLmFwaX19Il07DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJtYXBwaW5nIjoNCiAgICAgICAgICAgICAgICB0aGlzLnRhYmxlSGVhZGVyID0gWyJCVUxLIiwgInt7Lm1hcHBpbmcudGFibGUuY2hOb319IiwgInt7Lm1hcHBpbmcudGFibGUubG9nb319IiwgInt7Lm1hcHBpbmcudGFibGUuY2hhbm5lbE5hbWV9fSIsICJ7ey5tYXBwaW5nLnRhYmxlLnVwZGF0ZUNoYW5uZWxOYW1lUmVnZXh9fSIsICJ7ey5tYXBwaW5nLnRhYmxlLnBsYXlsaXN0fX0iLCAie3subWFwcGluZy50YWJsZS5ncm91cFRpdGxlfX0iLCAie3subWFwcGluZy50YWJsZS54bWx0dkZpbGV9fSIsICJ7ey5tYXBwaW5nLnRhYmxlLnhtbHR2SUR9fSIsICJ7ey5tYXBwaW5nLnRhYmxlLnRpbWVzaGlmdH19Il07DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIH0NCiAgICB9DQp9DQpjbGFzcyBDb250ZW50IHsNCiAgICBjb25zdHJ1Y3RvcigpIHsNCiAgICAgICAgdGhpcy5Eb2N1bWVudElEID0gImNvbnRlbnQiOw0KICAgICAgICB0aGlzLlRhYmxlSUQgPSAiY29udGVudF90YWJsZSI7DQogICAgICAgIHRoaXMuaGVhZGVyQ2xhc3MgPSAiY29udGVudF90YWJsZV9oZWFkZXIiOw0KICAgICAgICB0aGlzLmludGVyYWN0aW9uSUQgPSAiY29udGVudC1pbnRlcmFjdGlvbiI7DQogICAgfQ0KICAgIGNyZWF0ZUhlYWRsaW5lKHZhbHVlKSB7DQogICAgICAgIGxldCBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiSDMiKTsNCiAgICAgICAgZWxlbWVudC5pbm5lckhUTUwgPSB2YWx1ZTsNCiAgICAgICAgcmV0dXJuIGVsZW1lbnQ7DQogICAgfQ0KICAgIGNyZWF0ZUhSKCkgew0KICAgICAgICByZXR1cm4gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiSFIiKTsNCiAgICB9DQogICAgY3JlYXRlSW50ZXJhY3Rpb24oKSB7DQogICAgICAgIGxldCBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiRElWIik7DQogICAgICAgIGVsZW1lbnQuc2V0QXR0cmlidXRlKCJpZCIsIHRoaXMuaW50ZXJhY3Rpb25JRCk7DQogICAgICAgIHJldHVybiBlbGVtZW50Ow0KICAgIH0NCiAgICBjcmVhdGVESVYoKSB7DQogICAgICAgIGxldCBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiRElWIik7DQogICAgICAgIGVsZW1lbnQuaWQgPSB0aGlzLkRpdklEOw0KICAgICAgICByZXR1cm4gZWxlbWVudDsNCiAgICB9DQogICAgY3JlYXRlVEFCTEUoKSB7DQogICAgICAgIGxldCBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEFCTEUiKTsNCiAgICAgICAgZWxlbWVudC5pZCA9IHRoaXMuVGFibGVJRDsNCiAgICAgICAgcmV0dXJuIGVsZW1lbnQ7DQogICAgfQ0KICAgIGNyZWF0ZVRhYmxlUm93KCkgew0KICAgICAgICBsZXQgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlRSIik7DQogICAgICAgIGVsZW1lbnQuY2xhc3NOYW1lID0gdGhpcy5oZWFkZXJDbGFzczsNCiAgICAgICAgcmV0dXJuIGVsZW1lbnQ7DQogICAgfQ0KICAgIGNyZWF0ZVRhYmxlQ29udGVudChtZW51S2V5KSB7DQogICAgICAgIGxldCBkYXRhID0ge307DQogICAgICAgIGxldCByb3dzID0gW107DQogICAgICAgIGxldCBmaWxlVHlwZXMgPSBbXTsNCiAgICAgICAgc3dpdGNoIChtZW51S2V5KSB7DQogICAgICAgICAgICBjYXNlICJwbGF5bGlzdCI6DQogICAgICAgICAgICAgICAgZmlsZVR5cGVzID0gWyJtM3UiLCAiaGRociJdOw0KICAgICAgICAgICAgICAgIGZpbGVUeXBlcy5mb3JFYWNoKGZpbGVUeXBlID0+IHsNCiAgICAgICAgICAgICAgICAgICAgZGF0YSA9IFNFUlZFUlsic2V0dGluZ3MiXVsiZmlsZXMiXVtmaWxlVHlwZV07DQogICAgICAgICAgICAgICAgICAgIHZhciBrZXlzID0gZ2V0T3duT2JqUHJvcHMoZGF0YSk7DQogICAgICAgICAgICAgICAgICAgIGtleXMuZm9yRWFjaChrZXkgPT4gew0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVFIiKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmlkID0ga2V5Ow0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgiJyArIGZpbGVUeXBlICsgJyIsIHRoaXMpJyk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsibmFtZSJdOw0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChTRVJWRVJbInNldHRpbmdzIl1bImJ1ZmZlciJdICE9ICItIikgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bInR1bmVyIl07DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gIi0iOw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bImxhc3QudXBkYXRlIl07DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsicHJvdmlkZXIuYXZhaWxhYmlsaXR5Il07DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsidHlwZSJdLnRvVXBwZXJDYXNlKCk7DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsiY29tcGF0aWJpbGl0eSJdWyJzdHJlYW1zIl07DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsiY29tcGF0aWJpbGl0eSJdWyJncm91cC50aXRsZSJdOw0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bImNvbXBhdGliaWxpdHkiXVsidHZnLmlkIl07DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsiY29tcGF0aWJpbGl0eSJdWyJzdHJlYW0uaWQiXTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHJvd3MucHVzaCh0cik7DQogICAgICAgICAgICAgICAgICAgIH0pOw0KICAgICAgICAgICAgICAgIH0pOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiZmlsdGVyIjoNCiAgICAgICAgICAgICAgICBkZWxldGUgU0VSVkVSWyJzZXR0aW5ncyJdWyJmaWx0ZXIiXVstMV07DQogICAgICAgICAgICAgICAgZGF0YSA9IFNFUlZFUlsic2V0dGluZ3MiXVsiZmlsdGVyIl07DQogICAgICAgICAgICAgICAgdmFyIGtleXMgPSBnZXRPd25PYmpQcm9wcyhkYXRhKTsNCiAgICAgICAgICAgICAgICBrZXlzLmZvckVhY2goa2V5ID0+IHsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVFIiKTsNCiAgICAgICAgICAgICAgICAgICAgdHIuaWQgPSBrZXk7DQogICAgICAgICAgICAgICAgICAgIHRyLnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoIicgKyBkYXRhW2tleV1bInR5cGUiXSArICciLCB0aGlzKScpOw0KICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsic3RhcnRpbmdDaGFubmVsIl07DQogICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bIm5hbWUiXTsNCiAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgc3dpdGNoIChkYXRhW2tleV1bInR5cGUiXSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAiY3VzdG9tLWZpbHRlciI6DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9ICJ7ey5maWx0ZXIuY3VzdG9tfX0iOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAiZ3JvdXAtdGl0bGUiOg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSAie3suZmlsdGVyLmdyb3VwfX0iOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJmaWx0ZXIiXTsNCiAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICByb3dzLnB1c2godHIpOw0KICAgICAgICAgICAgICAgIH0pOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAieG1sdHYiOg0KICAgICAgICAgICAgICAgIGZpbGVUeXBlcyA9IG5ldyBBcnJheSgieG1sdHYiKTsNCiAgICAgICAgICAgICAgICBmaWxlVHlwZXMuZm9yRWFjaChmaWxlVHlwZSA9PiB7DQogICAgICAgICAgICAgICAgICAgIGRhdGEgPSBTRVJWRVJbInNldHRpbmdzIl1bImZpbGVzIl1bZmlsZVR5cGVdOw0KICAgICAgICAgICAgICAgICAgICB2YXIga2V5cyA9IGdldE93bk9ialByb3BzKGRhdGEpOw0KICAgICAgICAgICAgICAgICAgICBrZXlzLmZvckVhY2goa2V5ID0+IHsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciB0ciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlRSIik7DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5pZCA9IGtleTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoIicgKyBmaWxlVHlwZSArICciLCB0aGlzKScpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bIm5hbWUiXTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJsYXN0LnVwZGF0ZSJdOw0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bInByb3ZpZGVyLmF2YWlsYWJpbGl0eSJdOw0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bImNvbXBhdGliaWxpdHkiXVsieG1sdHYuY2hhbm5lbHMiXTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJjb21wYXRpYmlsaXR5Il1bInhtbHR2LnByb2dyYW1zIl07DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICByb3dzLnB1c2godHIpOw0KICAgICAgICAgICAgICAgICAgICB9KTsNCiAgICAgICAgICAgICAgICB9KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInVzZXJzIjoNCiAgICAgICAgICAgICAgICBmaWxlVHlwZXMgPSBuZXcgQXJyYXkoInVzZXJzIik7DQogICAgICAgICAgICAgICAgZmlsZVR5cGVzLmZvckVhY2goZmlsZVR5cGUgPT4gew0KICAgICAgICAgICAgICAgICAgICBkYXRhID0gU0VSVkVSW2ZpbGVUeXBlXTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGtleXMgPSBnZXRPd25PYmpQcm9wcyhkYXRhKTsNCiAgICAgICAgICAgICAgICAgICAga2V5cy5mb3JFYWNoKGtleSA9PiB7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgdHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJUUiIpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuaWQgPSBrZXk7DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCInICsgZmlsZVR5cGUgKyAnIiwgdGhpcyknKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJkYXRhIl1bInVzZXJuYW1lIl07DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9ICIqKioqKioiOw0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChkYXRhW2tleV1bImRhdGEiXVsiYXV0aGVudGljYXRpb24ud2ViIl0gPT0gdHJ1ZSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSAi4pyTIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSAiLSI7DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGRhdGFba2V5XVsiZGF0YSJdWyJhdXRoZW50aWNhdGlvbi5wbXMiXSA9PSB0cnVlKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9ICLinJMiOw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9ICItIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgICAgICBpZiAoZGF0YVtrZXldWyJkYXRhIl1bImF1dGhlbnRpY2F0aW9uLm0zdSJdID09IHRydWUpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gIuKckyI7DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gIi0iOw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChkYXRhW2tleV1bImRhdGEiXVsiYXV0aGVudGljYXRpb24ueG1sIl0gPT0gdHJ1ZSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSAi4pyTIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSAiLSI7DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGRhdGFba2V5XVsiZGF0YSJdWyJhdXRoZW50aWNhdGlvbi5hcGkiXSA9PSB0cnVlKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9ICLinJMiOw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9ICItIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHJvd3MucHVzaCh0cik7DQogICAgICAgICAgICAgICAgICAgIH0pOw0KICAgICAgICAgICAgICAgIH0pOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAibWFwcGluZyI6DQogICAgICAgICAgICAgICAgQlVMS19FRElUID0gZmFsc2U7DQogICAgICAgICAgICAgICAgY3JlYXRlU2VhcmNoT2JqKCk7DQogICAgICAgICAgICAgICAgY2hlY2tVbmRvKCJlcGdNYXBwaW5nIik7DQogICAgICAgICAgICAgICAgZGF0YSA9IFNFUlZFUlsieGVwZyJdWyJlcGdNYXBwaW5nIl07DQogICAgICAgICAgICAgICAgdmFyIGtleXMgPSBnZXRPd25PYmpQcm9wcyhkYXRhKTsNCiAgICAgICAgICAgICAgICBrZXlzLmZvckVhY2goa2V5ID0+IHsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVFIiKTsNCiAgICAgICAgICAgICAgICAgICAgdHIuaWQgPSBrZXk7DQogICAgICAgICAgICAgICAgICAgIHN3aXRjaCAoZGF0YVtrZXldWyJ4LWFjdGl2ZSJdKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBjYXNlIHRydWU6DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgdHIuY2xhc3NOYW1lID0gImFjdGl2ZUVQRyI7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgICAgICAgICBjYXNlIGZhbHNlOg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyLmNsYXNzTmFtZSA9ICJub3RBY3RpdmVFUEciOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIC8vIEJ1bGsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiQlVMSyI7DQogICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBmYWxzZTsNCiAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAvLyBDaGFubmVsIG51bWJlcg0KICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJJTlBVVENIQU5ORUwiOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJ4LWNoYW5uZWxJRCJdOw0KICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgIC8vIExvZ28NCiAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiSU1HIjsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5pbWFnZVVSTCA9IGRhdGFba2V5XVsidHZnLWxvZ28iXTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHRkID0gY2VsbC5jcmVhdGVDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgIHRkLnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoIm1hcHBpbmciLCB0aGlzKScpOw0KICAgICAgICAgICAgICAgICAgICB0ZC5pZCA9IGtleTsNCiAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQodGQpOw0KICAgICAgICAgICAgICAgICAgICAvLyBDaGFubmVsIG5hbWUNCiAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2xhc3NOYW1lID0gZGF0YVtrZXldWyJ4LWNhdGVnb3J5Il07DQogICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bIngtbmFtZSJdOw0KICAgICAgICAgICAgICAgICAgICB2YXIgdGQgPSBjZWxsLmNyZWF0ZUNlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgdGQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgibWFwcGluZyIsIHRoaXMpJyk7DQogICAgICAgICAgICAgICAgICAgIHRkLmlkID0ga2V5Ow0KICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZCh0ZCk7DQogICAgICAgICAgICAgICAgICAgIC8vIFVwZGF0ZSBjaGFubmVsIG5hbWUgcmVnZXgNCiAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bInVwZGF0ZS1jaGFubmVsLW5hbWUtcmVnZXgiXTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHRkID0gY2VsbC5jcmVhdGVDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgIHRkLnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoIm1hcHBpbmciLCB0aGlzKScpOw0KICAgICAgICAgICAgICAgICAgICB0ZC5pZCA9IGtleTsNCiAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQodGQpOw0KICAgICAgICAgICAgICAgICAgICAvLyBQbGF5bGlzdA0KICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGdldFZhbHVlRnJvbVByb3ZpZGVyRmlsZShkYXRhW2tleV1bIl9maWxlLm0zdS5pZCJdLCAibTN1IiwgIm5hbWUiKTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHRkID0gY2VsbC5jcmVhdGVDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgIHRkLnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoIm1hcHBpbmciLCB0aGlzKScpOw0KICAgICAgICAgICAgICAgICAgICB0ZC5pZCA9IGtleTsNCiAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQodGQpOw0KICAgICAgICAgICAgICAgICAgICAvLyBHcm91cCAoZ3JvdXAtdGl0bGUpDQogICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJ4LWdyb3VwLXRpdGxlIl07DQogICAgICAgICAgICAgICAgICAgIHZhciB0ZCA9IGNlbGwuY3JlYXRlQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICB0ZC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJtYXBwaW5nIiwgdGhpcyknKTsNCiAgICAgICAgICAgICAgICAgICAgdGQuaWQgPSBrZXk7DQogICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKHRkKTsNCiAgICAgICAgICAgICAgICAgICAgLy8gWE1MVFYgZmlsZQ0KICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgaWYgKGRhdGFba2V5XVsieC14bWx0di1maWxlIl0gIT0gIi0iKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZ2V0VmFsdWVGcm9tUHJvdmlkZXJGaWxlKGRhdGFba2V5XVsieC14bWx0di1maWxlIl0sICJ4bWx0diIsICJuYW1lIik7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgZWxzZSB7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJ4LXhtbHR2LWZpbGUiXTsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICB2YXIgdGQgPSBjZWxsLmNyZWF0ZUNlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgdGQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgibWFwcGluZyIsIHRoaXMpJyk7DQogICAgICAgICAgICAgICAgICAgIHRkLmlkID0ga2V5Ow0KICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZCh0ZCk7DQogICAgICAgICAgICAgICAgICAgIC8vIFhNTFRWIENoYW5uZWwNCiAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgIHZhciB2YWx1ZSA9IGRhdGFba2V5XVsieC1tYXBwaW5nIl07DQogICAgICAgICAgICAgICAgICAgIGlmICh2YWx1ZS5sZW5ndGggPiAyMCkgew0KICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSBkYXRhW2tleV1bIngtbWFwcGluZyJdLnN1YnN0cmluZygwLCAyMCkgKyAiLi4uIjsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gdmFsdWU7DQogICAgICAgICAgICAgICAgICAgIHZhciB0ZCA9IGNlbGwuY3JlYXRlQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICB0ZC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJtYXBwaW5nIiwgdGhpcyknKTsNCiAgICAgICAgICAgICAgICAgICAgdGQuaWQgPSBrZXk7DQogICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKHRkKTsNCiAgICAgICAgICAgICAgICAgICAgLy8gVGltZVNoaWZ0DQogICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJ4LXRpbWVzaGlmdCJdOw0KICAgICAgICAgICAgICAgICAgICB2YXIgdGQgPSBjZWxsLmNyZWF0ZUNlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgdGQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgibWFwcGluZyIsIHRoaXMpJyk7DQogICAgICAgICAgICAgICAgICAgIHRkLmlkID0ga2V5Ow0KICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZCh0ZCk7DQogICAgICAgICAgICAgICAgICAgIHJvd3MucHVzaCh0cik7DQogICAgICAgICAgICAgICAgfSk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJzZXR0aW5ncyI6DQogICAgICAgICAgICAgICAgYWxlcnQoKTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIH0NCiAgICAgICAgcmV0dXJuIHJvd3M7DQogICAgfQ0KfQ0KY2xhc3MgQ2VsbCB7DQogICAgY3JlYXRlQ2VsbCgpIHsNCiAgICAgICAgbGV0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgaWYgKHRoaXMuY2hpbGQgPT0gdHJ1ZSkgew0KICAgICAgICAgICAgdmFyIGVsZW1lbnQ7DQogICAgICAgICAgICBzd2l0Y2ggKHRoaXMuY2hpbGRUeXBlKSB7DQogICAgICAgICAgICAgICAgY2FzZSAiUCI6DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KHRoaXMuY2hpbGRUeXBlKTsNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC5pbm5lckhUTUwgPSB0aGlzLnZhbHVlOw0KICAgICAgICAgICAgICAgICAgICBlbGVtZW50LmNsYXNzTmFtZSA9IHRoaXMuY2xhc3NOYW1lOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBjYXNlICJJTlBVVCI6DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KHRoaXMuY2hpbGRUeXBlKTsNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC52YWx1ZSA9IHRoaXMudmFsdWU7DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQudHlwZSA9ICJ0ZXh0IjsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAiSU5QVVRDSEFOTkVMIjoNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIklOUFVUIik7DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZzY3JpcHQ6IGNoYW5nZUNoYW5uZWxOdW1iZXIodGhpcykiKTsNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC52YWx1ZSA9IHRoaXMudmFsdWU7DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQudHlwZSA9ICJ0ZXh0IjsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAiQlVMSyI6DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJJTlBVVCIpOw0KICAgICAgICAgICAgICAgICAgICBlbGVtZW50LmNoZWNrZWQgPSB0aGlzLnZhbHVlOw0KICAgICAgICAgICAgICAgICAgICBlbGVtZW50LnR5cGUgPSAiY2hlY2tib3giOw0KICAgICAgICAgICAgICAgICAgICBlbGVtZW50LmNsYXNzTmFtZSA9ICJidWxrIGhpZGVCdWxrIjsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAiQlVMS19IRUFEIjoNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIklOUFVUIik7DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQuY2hlY2tlZCA9IHRoaXMudmFsdWU7DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQudHlwZSA9ICJjaGVja2JveCI7DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQuY2xhc3NOYW1lID0gImJ1bGsgaGlkZUJ1bGsiOw0KICAgICAgICAgICAgICAgICAgICBlbGVtZW50LnNldEF0dHJpYnV0ZSgib25jbGljayIsICJqYXZhc2NyaXB0OiBzZWxlY3RBbGxDaGFubmVscygpIik7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgIklNRyI6DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KHRoaXMuY2hpbGRUeXBlKTsNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC5zZXRBdHRyaWJ1dGUoInNyYyIsIHRoaXMuaW1hZ2VVUkwpOw0KICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5pbWFnZVVSTCAhPSAiIikgew0KICAgICAgICAgICAgICAgICAgICAgICAgZWxlbWVudC5zZXRBdHRyaWJ1dGUoIm9uZXJyb3IiLCAiamF2YXNjcmlwdDogdGhpcy5vbmVycm9yPW51bGw7dGhpcy5zcmM9JyciKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIC8vb25lcnJvcj0idGhpcy5vbmVycm9yPW51bGw7dGhpcy5zcmM9J21pc3NpbmcuZ2lmJzsiDQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIHRkLmFwcGVuZENoaWxkKGVsZW1lbnQpOw0KICAgICAgICB9DQogICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgdGQuaW5uZXJIVE1MID0gdGhpcy52YWx1ZTsNCiAgICAgICAgfQ0KICAgICAgICBpZiAodGhpcy5vbmNsaWNrID09IHRydWUpIHsNCiAgICAgICAgICAgIHRkLnNldEF0dHJpYnV0ZSgib25jbGljayIsIHRoaXMub25jbGlja0Z1bmN0aW9uKTsNCiAgICAgICAgICAgIHRkLmNsYXNzTmFtZSA9ICJwb2ludGVyIjsNCiAgICAgICAgfQ0KICAgICAgICBpZiAodGhpcy50ZENsYXNzTmFtZSAhPSB1bmRlZmluZWQpIHsNCiAgICAgICAgICAgIHRkLmNsYXNzTmFtZSA9IHRoaXMudGRDbGFzc05hbWU7DQogICAgICAgIH0NCiAgICAgICAgcmV0dXJuIHRkOw0KICAgIH0NCn0NCmNsYXNzIFNob3dDb250ZW50IGV4dGVuZHMgQ29udGVudCB7DQogICAgY29uc3RydWN0b3IobWVudUlEKSB7DQogICAgICAgIHN1cGVyKCk7DQogICAgICAgIHRoaXMubWVudUlEID0gbWVudUlEOw0KICAgIH0NCiAgICBjcmVhdGVJbnB1dCh0eXBlLCBuYW1lLCB2YWx1ZSkgew0KICAgICAgICBsZXQgaW5wdXQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJJTlBVVCIpOw0KICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInR5cGUiLCB0eXBlKTsNCiAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJuYW1lIiwgbmFtZSk7DQogICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgidmFsdWUiLCB2YWx1ZSk7DQogICAgICAgIHJldHVybiBpbnB1dDsNCiAgICB9DQogICAgc2hvdygpIHsNCiAgICAgICAgQ09MVU1OX1RPX1NPUlQgPSAtMTsNCiAgICAgICAgLy8gRGVsZXRlIG9sZCBjb250ZW50DQogICAgICAgIGxldCBkb2MgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCh0aGlzLkRvY3VtZW50SUQpOw0KICAgICAgICBkb2MuaW5uZXJIVE1MID0gIiI7DQogICAgICAgIHNob3dQcmV2aWV3KGZhbHNlKTsNCiAgICAgICAgLy8gSGVhZGxpbmUNCiAgICAgICAgbGV0IGhlYWRsaW5lID0gbWVudUl0ZW1zW3RoaXMubWVudUlEXS5oZWFkbGluZTsNCiAgICAgICAgbGV0IG1lbnVLZXkgPSBtZW51SXRlbXNbdGhpcy5tZW51SURdLm1lbnVLZXk7DQogICAgICAgIGxldCBoID0gdGhpcy5jcmVhdGVIZWFkbGluZShoZWFkbGluZSk7DQogICAgICAgIGRvYy5hcHBlbmRDaGlsZChoKTsNCiAgICAgICAgbGV0IGhyID0gdGhpcy5jcmVhdGVIUigpOw0KICAgICAgICBkb2MuYXBwZW5kQ2hpbGQoaHIpOw0KICAgICAgICAvLyBJbnRlcmFjdGlvbg0KICAgICAgICBsZXQgZGl2ID0gdGhpcy5jcmVhdGVJbnRlcmFjdGlvbigpOw0KICAgICAgICBkb2MuYXBwZW5kQ2hpbGQoZGl2KTsNCiAgICAgICAgbGV0IGludGVyYWN0aW9uID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQodGhpcy5pbnRlcmFjdGlvbklEKTsNCiAgICAgICAgc3dpdGNoIChtZW51S2V5KSB7DQogICAgICAgICAgICBjYXNlICJwbGF5bGlzdCI6DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gdGhpcy5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgbWVudUtleSwgInt7LmJ1dHRvbi5uZXd9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgiaWQiLCAiLSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoInBsYXlsaXN0IiknKTsNCiAgICAgICAgICAgICAgICBpbnRlcmFjdGlvbi5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJmaWx0ZXIiOg0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IHRoaXMuY3JlYXRlSW5wdXQoImJ1dHRvbiIsIG1lbnVLZXksICJ7ey5idXR0b24ubmV3fX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoImlkIiwgLTEpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoImZpbHRlciIsIHRoaXMpJyk7DQogICAgICAgICAgICAgICAgaW50ZXJhY3Rpb24uYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAieG1sdHYiOg0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IHRoaXMuY3JlYXRlSW5wdXQoImJ1dHRvbiIsIG1lbnVLZXksICJ7ey5idXR0b24ubmV3fX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoImlkIiwgInhtbHR2Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgieG1sdHYiKScpOw0KICAgICAgICAgICAgICAgIGludGVyYWN0aW9uLmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInVzZXJzIjoNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSB0aGlzLmNyZWF0ZUlucHV0KCJidXR0b24iLCBtZW51S2V5LCAie3suYnV0dG9uLm5ld319Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJpZCIsICJ1c2VycyIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoInVzZXJzIiknKTsNCiAgICAgICAgICAgICAgICBpbnRlcmFjdGlvbi5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJtYXBwaW5nIjoNCiAgICAgICAgICAgICAgICBzaG93RWxlbWVudCgibG9hZGluZyIsIHRydWUpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IHRoaXMuY3JlYXRlSW5wdXQoImJ1dHRvbiIsIG1lbnVLZXksICJ7ey5idXR0b24uc2F2ZX19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoIm1hcHBpbmciLCAiIiwgIiIpJyk7DQogICAgICAgICAgICAgICAgaW50ZXJhY3Rpb24uYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IHRoaXMuY3JlYXRlSW5wdXQoImJ1dHRvbiIsIG1lbnVLZXksICJ7ey5idXR0b24uYnVsa0VkaXR9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBidWxrRWRpdCgpJyk7DQogICAgICAgICAgICAgICAgaW50ZXJhY3Rpb24uYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IHRoaXMuY3JlYXRlSW5wdXQoInNlYXJjaCIsICJzZWFyY2giLCAiIik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJpZCIsICJzZWFyY2hNYXBwaW5nIik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5idXR0b24uc2VhcmNofX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5jbGFzc05hbWUgPSAic2VhcmNoIjsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgJ2phdmFzY3JpcHQ6IHNlYXJjaEluTWFwcGluZygpJyk7DQogICAgICAgICAgICAgICAgaW50ZXJhY3Rpb24uYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAic2V0dGluZ3MiOg0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IHRoaXMuY3JlYXRlSW5wdXQoImJ1dHRvbiIsIG1lbnVLZXksICJ7ey5idXR0b24uc2F2ZX19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IHNhdmVTZXR0aW5ncygpOycpOw0KICAgICAgICAgICAgICAgIGludGVyYWN0aW9uLmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSB0aGlzLmNyZWF0ZUlucHV0KCJidXR0b24iLCBtZW51S2V5LCAie3suYnV0dG9uLmJhY2t1cH19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IGJhY2t1cCgpOycpOw0KICAgICAgICAgICAgICAgIGludGVyYWN0aW9uLmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSB0aGlzLmNyZWF0ZUlucHV0KCJidXR0b24iLCBtZW51S2V5LCAie3suYnV0dG9uLnJlc3RvcmV9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiByZXN0b3JlKCk7Jyk7DQogICAgICAgICAgICAgICAgaW50ZXJhY3Rpb24uYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIHZhciB3cmFwcGVyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiRElWIik7DQogICAgICAgICAgICAgICAgd3JhcHBlci5zZXRBdHRyaWJ1dGUoImlkIiwgImJveC13cmFwcGVyIik7DQogICAgICAgICAgICAgICAgZG9jLmFwcGVuZENoaWxkKHdyYXBwZXIpOw0KICAgICAgICAgICAgICAgIHRoaXMuRGl2SUQgPSAiY29udGVudF9zZXR0aW5ncyI7DQogICAgICAgICAgICAgICAgdmFyIHNldHRpbmdzID0gdGhpcy5jcmVhdGVESVYoKTsNCiAgICAgICAgICAgICAgICB3cmFwcGVyLmFwcGVuZENoaWxkKHNldHRpbmdzKTsNCiAgICAgICAgICAgICAgICBzaG93U2V0dGluZ3MoKTsNCiAgICAgICAgICAgICAgICByZXR1cm47DQogICAgICAgICAgICBjYXNlICJsb2ciOg0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IHRoaXMuY3JlYXRlSW5wdXQoImJ1dHRvbiIsIG1lbnVLZXksICJ7ey5idXR0b24ucmVzZXRMb2dzfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogcmVzZXRMb2dzKCk7Jyk7DQogICAgICAgICAgICAgICAgaW50ZXJhY3Rpb24uYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIHZhciB3cmFwcGVyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiRElWIik7DQogICAgICAgICAgICAgICAgd3JhcHBlci5zZXRBdHRyaWJ1dGUoImlkIiwgImJveC13cmFwcGVyIik7DQogICAgICAgICAgICAgICAgZG9jLmFwcGVuZENoaWxkKHdyYXBwZXIpOw0KICAgICAgICAgICAgICAgIHRoaXMuRGl2SUQgPSAiY29udGVudF9sb2ciOw0KICAgICAgICAgICAgICAgIHZhciBsb2dzID0gdGhpcy5jcmVhdGVESVYoKTsNCiAgICAgICAgICAgICAgICB3cmFwcGVyLmFwcGVuZENoaWxkKGxvZ3MpOw0KICAgICAgICAgICAgICAgIHNob3dMb2dzKHRydWUpOw0KICAgICAgICAgICAgICAgIHJldHVybjsNCiAgICAgICAgICAgIGNhc2UgImxvZ291dCI6DQogICAgICAgICAgICAgICAgbG9jYXRpb24ucmVsb2FkKCk7DQogICAgICAgICAgICAgICAgZG9jdW1lbnQuY29va2llID0gIlRva2VuPSA7IGV4cGlyZXMgPSBUaHUsIDAxIEphbiAxOTcwIDAwOjAwOjAwIEdNVCI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBkZWZhdWx0Og0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICB9DQogICAgICAgIC8vIENyZWF0ZSB0YWJsZSAoaWYgbmVlZGVkKQ0KICAgICAgICB2YXIgdGFibGVIZWFkZXIgPSBtZW51SXRlbXNbdGhpcy5tZW51SURdLnRhYmxlSGVhZGVyOw0KICAgICAgICBpZiAodGFibGVIZWFkZXIubGVuZ3RoID4gMCkgew0KICAgICAgICAgICAgdmFyIHdyYXBwZXIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJESVYiKTsNCiAgICAgICAgICAgIGRvYy5hcHBlbmRDaGlsZCh3cmFwcGVyKTsNCiAgICAgICAgICAgIHdyYXBwZXIuc2V0QXR0cmlidXRlKCJpZCIsICJib3gtd3JhcHBlciIpOw0KICAgICAgICAgICAgdmFyIHRhYmxlID0gdGhpcy5jcmVhdGVUQUJMRSgpOw0KICAgICAgICAgICAgd3JhcHBlci5hcHBlbmRDaGlsZCh0YWJsZSk7DQogICAgICAgICAgICB2YXIgaGVhZGVyID0gdGhpcy5jcmVhdGVUYWJsZVJvdygpOw0KICAgICAgICAgICAgdGFibGUuYXBwZW5kQ2hpbGQoaGVhZGVyKTsNCiAgICAgICAgICAgIC8vIFRhYmxlIGhlYWRlcg0KICAgICAgICAgICAgdGFibGVIZWFkZXIuZm9yRWFjaChlbGVtZW50ID0+IHsNCiAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGVsZW1lbnQ7DQogICAgICAgICAgICAgICAgaWYgKGVsZW1lbnQgPT0gIkJVTEsiKSB7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIkJVTEtfSEVBRCI7DQogICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBmYWxzZTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgaWYgKG1lbnVLZXkgPT0gIm1hcHBpbmciKSB7DQogICAgICAgICAgICAgICAgICAgIGlmIChlbGVtZW50ID09ICJ7ey5tYXBwaW5nLnRhYmxlLmNoTm99fSIpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwub25jbGljayA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLm9uY2xpY2tGdW5jdGlvbiA9ICJqYXZhc2NyaXB0OiBzb3J0VGFibGUoMSk7IjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudGRDbGFzc05hbWUgPSAic29ydFRoaXMiOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIGlmIChlbGVtZW50ID09ICJ7ey5tYXBwaW5nLnRhYmxlLmNoYW5uZWxOYW1lfX0iKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLm9uY2xpY2sgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5vbmNsaWNrRnVuY3Rpb24gPSAiamF2YXNjcmlwdDogc29ydFRhYmxlKDMpOyI7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgaWYgKGVsZW1lbnQgPT0gInt7Lm1hcHBpbmcudGFibGUudXBkYXRlQ2hhbm5lbE5hbWVSZWdleH19Iikgew0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5vbmNsaWNrID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwub25jbGlja0Z1bmN0aW9uID0gImphdmFzY3JpcHQ6IHNvcnRUYWJsZSg0KTsiOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIGlmIChlbGVtZW50ID09ICJ7ey5tYXBwaW5nLnRhYmxlLnBsYXlsaXN0fX0iKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLm9uY2xpY2sgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5vbmNsaWNrRnVuY3Rpb24gPSAiamF2YXNjcmlwdDogc29ydFRhYmxlKDUpOyI7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgaWYgKGVsZW1lbnQgPT0gInt7Lm1hcHBpbmcudGFibGUuZ3JvdXBUaXRsZX19Iikgew0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5vbmNsaWNrID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwub25jbGlja0Z1bmN0aW9uID0gImphdmFzY3JpcHQ6IHNvcnRUYWJsZSg2KTsiOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIGlmIChlbGVtZW50ID09ICJ7ey5tYXBwaW5nLnRhYmxlLnRpbWVzaGlmdH19Iikgew0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5vbmNsaWNrID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwub25jbGlja0Z1bmN0aW9uID0gImphdmFzY3JpcHQ6IHNvcnRUYWJsZSg5KTsiOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIGlmIChtZW51S2V5ID09ICJmaWx0ZXIiKSB7DQogICAgICAgICAgICAgICAgICAgIGlmIChlbGVtZW50ID09ICJ7ey5maWx0ZXIudGFibGUuc3RhcnRpbmdDaGFubmVsfX0iKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLm9uY2xpY2sgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5vbmNsaWNrRnVuY3Rpb24gPSAiamF2YXNjcmlwdDogc29ydFRhYmxlKDApOyI7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnRkQ2xhc3NOYW1lID0gInNvcnRUaGlzIjsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBpZiAoZWxlbWVudCA9PSAie3suZmlsdGVyLnRhYmxlLm5hbWV9fSIpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwub25jbGljayA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLm9uY2xpY2tGdW5jdGlvbiA9ICJqYXZhc2NyaXB0OiBzb3J0VGFibGUoMSk7IjsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBpZiAoZWxlbWVudCA9PSAie3suZmlsdGVyLnRhYmxlLnR5cGV9fSIpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwub25jbGljayA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLm9uY2xpY2tGdW5jdGlvbiA9ICJqYXZhc2NyaXB0OiBzb3J0VGFibGUoMik7IjsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBpZiAoZWxlbWVudCA9PSAie3suZmlsdGVyLnRhYmxlLmZpbHRlcn19Iikgew0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5vbmNsaWNrID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwub25jbGlja0Z1bmN0aW9uID0gImphdmFzY3JpcHQ6IHNvcnRUYWJsZSgzKTsiOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIGhlYWRlci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICB9KTsNCiAgICAgICAgICAgIHRhYmxlLmFwcGVuZENoaWxkKGhlYWRlcik7DQogICAgICAgICAgICAvLyBDb250ZW50IG9mIHRoZSB0YWJsZQ0KICAgICAgICAgICAgdmFyIHJvd3MgPSB0aGlzLmNyZWF0ZVRhYmxlQ29udGVudChtZW51S2V5KTsNCiAgICAgICAgICAgIHJvd3MuZm9yRWFjaCh0ciA9PiB7DQogICAgICAgICAgICAgICAgdGFibGUuYXBwZW5kQ2hpbGQodHIpOw0KICAgICAgICAgICAgfSk7DQogICAgICAgIH0NCiAgICAgICAgc3dpdGNoIChtZW51S2V5KSB7DQogICAgICAgICAgICBjYXNlICJtYXBwaW5nIjoNCiAgICAgICAgICAgICAgICBzb3J0VGFibGUoMSk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJmaWx0ZXIiOg0KICAgICAgICAgICAgICAgIHNob3dQcmV2aWV3KHRydWUpOw0KICAgICAgICAgICAgICAgIHNvcnRUYWJsZSgwKTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICAgICAgQ09MVU1OX1RPX1NPUlQgPSAtMTsNCiAgICAgICAgICAgICAgICBzb3J0VGFibGUoMCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIH0NCiAgICAgICAgc2hvd0VsZW1lbnQoImxvYWRpbmciLCBmYWxzZSk7DQogICAgfQ0KfQ0KZnVuY3Rpb24gUGFnZVJlYWR5KCkgew0KICAgIGxldCBzZXJ2ZXIgPSBuZXcgU2VydmVyKCJnZXRTZXJ2ZXJDb25maWciKTsNCiAgICBzZXJ2ZXIucmVxdWVzdCh7fSk7DQogICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoInJlc2l6ZSIsIGZ1bmN0aW9uICgpIHsNCiAgICAgICAgY2FsY3VsYXRlV3JhcHBlckhlaWdodCgpOw0KICAgIH0sIHRydWUpOw0KICAgIHNldEludGVydmFsKGZ1bmN0aW9uICgpIHsNCiAgICAgICAgdXBkYXRlTG9nKCk7DQogICAgfSwgMTAwMDApOw0KICAgIHJldHVybjsNCn0NCmZ1bmN0aW9uIGNyZWF0ZUxheW91dCgpIHsNCiAgICAvLyBDbGllbnQgSW5mbw0KICAgIGxldCBvYmogPSBTRVJWRVJbImNsaWVudEluZm8iXTsNCiAgICBsZXQga2V5cyA9IGdldE93bk9ialByb3BzKG9iaik7DQogICAgZm9yICh2YXIgaSA9IDA7IGkgPCBrZXlzLmxlbmd0aDsgaSsrKSB7DQogICAgICAgIGlmIChkb2N1bWVudC5nZXRFbGVtZW50QnlJZChrZXlzW2ldKSkgew0KICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoa2V5c1tpXSkuaW5uZXJIVE1MID0gb2JqW2tleXNbaV1dOw0KICAgICAgICB9DQogICAgfQ0KICAgIGlmICghZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm1haW4tbWVudSIpKSB7DQogICAgICAgIHJldHVybjsNCiAgICB9DQogICAgLy8gQ3JlYXRlIG1lbnUNCiAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibWFpbi1tZW51IikuaW5uZXJIVE1MID0gIiI7DQogICAgZm9yIChsZXQgaSA9IDA7IGkgPCBtZW51SXRlbXMubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgbWVudUl0ZW1zW2ldLmlkID0gaTsNCiAgICAgICAgc3dpdGNoIChtZW51SXRlbXNbaV1bIm1lbnVLZXkiXSkgew0KICAgICAgICAgICAgY2FzZSAidXNlcnMiOg0KICAgICAgICAgICAgY2FzZSAibG9nb3V0IjoNCiAgICAgICAgICAgICAgICBpZiAoU0VSVkVSWyJzZXR0aW5ncyJdWyJhdXRoZW50aWNhdGlvbi53ZWIiXSA9PSB0cnVlKSB7DQogICAgICAgICAgICAgICAgICAgIG1lbnVJdGVtc1tpXS5jcmVhdGVJdGVtKCk7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAibWFwcGluZyI6DQogICAgICAgICAgICBjYXNlICJ4bWx0diI6DQogICAgICAgICAgICAgICAgaWYgKFNFUlZFUlsiY2xpZW50SW5mbyJdWyJlcGdTb3VyY2UiXSA9PSAiWEVQRyIpIHsNCiAgICAgICAgICAgICAgICAgICAgbWVudUl0ZW1zW2ldLmNyZWF0ZUl0ZW0oKTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBkZWZhdWx0Og0KICAgICAgICAgICAgICAgIG1lbnVJdGVtc1tpXS5jcmVhdGVJdGVtKCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIH0NCiAgICB9DQogICAgcmV0dXJuOw0KfQ0KZnVuY3Rpb24gb3BlblRoaXNNZW51KGVsZW1lbnQpIHsNCiAgICBsZXQgaWQgPSBlbGVtZW50LmlkOw0KICAgIGxldCBjb250ZW50ID0gbmV3IFNob3dDb250ZW50KGlkKTsNCiAgICBjb250ZW50LnNob3coKTsNCiAgICBjYWxjdWxhdGVXcmFwcGVySGVpZ2h0KCk7DQogICAgcmV0dXJuOw0KfQ0KY2xhc3MgUG9wdXBXaW5kb3cgew0KICAgIGNvbnN0cnVjdG9yKCkgew0KICAgICAgICB0aGlzLkRvY3VtZW50SUQgPSAicG9wdXAtY3VzdG9tIjsNCiAgICAgICAgdGhpcy5JbnRlcmFjdGlvbklEID0gImludGVyYWN0aW9uIjsNCiAgICAgICAgdGhpcy5kb2MgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCh0aGlzLkRvY3VtZW50SUQpOw0KICAgIH0NCiAgICBjcmVhdGVUaXRsZSh0aXRsZSkgew0KICAgICAgICBsZXQgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICB0ZC5jbGFzc05hbWUgPSAibGVmdCI7DQogICAgICAgIHRkLmlubmVySFRNTCA9IHRpdGxlICsgIjoiOw0KICAgICAgICByZXR1cm4gdGQ7DQogICAgfQ0KICAgIGNyZWF0ZUNvbnRlbnQoZWxlbWVudCkgew0KICAgICAgICBsZXQgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICB0ZC5hcHBlbmRDaGlsZChlbGVtZW50KTsNCiAgICAgICAgcmV0dXJuIHRkOw0KICAgIH0NCiAgICBjcmVhdGVJbnRlcmFjdGlvbigpIHsNCiAgICAgICAgbGV0IGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOw0KICAgICAgICBkaXYuc2V0QXR0cmlidXRlKCJpZCIsICJwb3B1cC1pbnRlcmFjdGlvbiIpOw0KICAgICAgICBkaXYuY2xhc3NOYW1lID0gImludGVyYWN0aW9uIjsNCiAgICAgICAgdGhpcy5kb2MuYXBwZW5kQ2hpbGQoZGl2KTsNCiAgICB9DQp9DQpjbGFzcyBQb3B1cENvbnRlbnQgZXh0ZW5kcyBQb3B1cFdpbmRvdyB7DQogICAgY29uc3RydWN0b3IoKSB7DQogICAgICAgIHN1cGVyKC4uLmFyZ3VtZW50cyk7DQogICAgICAgIHRoaXMudGFibGUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJUQUJMRSIpOw0KICAgIH0NCiAgICBjcmVhdGVIZWFkbGluZShoZWFkbGluZSkgew0KICAgICAgICB0aGlzLmRvYy5pbm5lckhUTUwgPSAiIjsNCiAgICAgICAgdmFyIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJIMyIpOw0KICAgICAgICBlbGVtZW50LmlubmVySFRNTCA9IGhlYWRsaW5lLnRvVXBwZXJDYXNlKCk7DQogICAgICAgIHRoaXMuZG9jLmFwcGVuZENoaWxkKGVsZW1lbnQpOw0KICAgICAgICAvLyBDcmVhdGUgdGFibGUNCiAgICAgICAgdGhpcy50YWJsZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlRBQkxFIik7DQogICAgICAgIHRoaXMuZG9jLmFwcGVuZENoaWxkKHRoaXMudGFibGUpOw0KICAgIH0NCiAgICBhcHBlbmRSb3codGl0bGUsIGVsZW1lbnQpIHsNCiAgICAgICAgbGV0IHRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVFIiKTsNCiAgICAgICAgLy8gVGl0bGUNCiAgICAgICAgaWYgKHRpdGxlLmxlbmd0aCAhPSAwKSB7DQogICAgICAgICAgICB0ci5hcHBlbmRDaGlsZCh0aGlzLmNyZWF0ZVRpdGxlKHRpdGxlKSk7DQogICAgICAgIH0NCiAgICAgICAgLy8gQ29udGVudA0KICAgICAgICB0ci5hcHBlbmRDaGlsZCh0aGlzLmNyZWF0ZUNvbnRlbnQoZWxlbWVudCkpOw0KICAgICAgICB0aGlzLnRhYmxlLmFwcGVuZENoaWxkKHRyKTsNCiAgICB9DQogICAgY3JlYXRlSW5wdXQodHlwZSwgbmFtZSwgdmFsdWUpIHsNCiAgICAgICAgbGV0IGlucHV0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiSU5QVVQiKTsNCiAgICAgICAgaWYgKHZhbHVlID09IHVuZGVmaW5lZCkgew0KICAgICAgICAgICAgdmFsdWUgPSAiIjsNCiAgICAgICAgfQ0KICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInR5cGUiLCB0eXBlKTsNCiAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJuYW1lIiwgbmFtZSk7DQogICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgidmFsdWUiLCB2YWx1ZSk7DQogICAgICAgIHJldHVybiBpbnB1dDsNCiAgICB9DQogICAgY3JlYXRlQ2hlY2tib3gobmFtZSkgew0KICAgICAgICBsZXQgaW5wdXQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJJTlBVVCIpOw0KICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInR5cGUiLCAiY2hlY2tib3giKTsNCiAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJuYW1lIiwgbmFtZSk7DQogICAgICAgIHJldHVybiBpbnB1dDsNCiAgICB9DQogICAgLy8gQ3JlYXRlcyBhIHNlbGVjdGlvbiBvZiBtdWx0aXBsZSBvcHRpb25zIHZhbHVlcyB3aXRoIHRleHQgZGVzY3JpcHRpb25zDQogICAgY3JlYXRlU2VsZWN0KHRleHQsIHZhbHVlcywgc2V0LCBkYktleSkgew0KICAgICAgICBsZXQgc2VsZWN0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiU0VMRUNUIik7DQogICAgICAgIHNlbGVjdC5zZXRBdHRyaWJ1dGUoIm5hbWUiLCBkYktleSk7DQogICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGV4dC5sZW5ndGg7IGkrKykgew0KICAgICAgICAgICAgbGV0IG9wdGlvbiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIk9QVElPTiIpOw0KICAgICAgICAgICAgb3B0aW9uLnNldEF0dHJpYnV0ZSgidmFsdWUiLCB2YWx1ZXNbaV0pOw0KICAgICAgICAgICAgb3B0aW9uLmlubmVyVGV4dCA9IHRleHRbaV07DQogICAgICAgICAgICBzZWxlY3QuYXBwZW5kQ2hpbGQob3B0aW9uKTsNCiAgICAgICAgfQ0KICAgICAgICBpZiAoc2V0ICE9ICIiKSB7DQogICAgICAgICAgICBzZWxlY3QudmFsdWUgPSBzZXQ7DQogICAgICAgIH0NCiAgICAgICAgaWYgKHNldCA9PSB1bmRlZmluZWQpIHsNCiAgICAgICAgICAgIHNlbGVjdC52YWx1ZSA9IHZhbHVlc1swXTsNCiAgICAgICAgfQ0KICAgICAgICByZXR1cm4gc2VsZWN0Ow0KICAgIH0NCiAgICBzZWxlY3RPcHRpb24oc2VsZWN0LCB2YWx1ZSkgew0KICAgICAgICAvL3NlbGVjdC5zZWxlY3RlZE9wdGlvbnMgPSB2YWx1ZQ0KICAgICAgICBsZXQgcyA9IHNlbGVjdDsNCiAgICAgICAgcy5vcHRpb25zW3Muc2VsZWN0ZWRJbmRleF0udmFsdWUgPSB2YWx1ZTsNCiAgICAgICAgcmV0dXJuIHNlbGVjdDsNCiAgICB9DQogICAgZGVzY3JpcHRpb24odmFsdWUpIHsNCiAgICAgICAgbGV0IHRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVFIiKTsNCiAgICAgICAgbGV0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgbGV0IHNwYW4gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJQUkUiKTsNCiAgICAgICAgc3Bhbi5pbm5lckhUTUwgPSB2YWx1ZTsNCiAgICAgICAgdHIuYXBwZW5kQ2hpbGQodGQpOw0KICAgICAgICB0ci5hcHBlbmRDaGlsZCh0aGlzLmNyZWF0ZUNvbnRlbnQoc3BhbikpOw0KICAgICAgICB0aGlzLnRhYmxlLmFwcGVuZENoaWxkKHRyKTsNCiAgICB9DQogICAgLy8gSW50ZXJhY3Rpb24NCiAgICBhZGRJbnRlcmFjdGlvbihlbGVtZW50KSB7DQogICAgICAgIGxldCBpbnRlcmFjdGlvbiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJwb3B1cC1pbnRlcmFjdGlvbiIpOw0KICAgICAgICBpbnRlcmFjdGlvbi5hcHBlbmRDaGlsZChlbGVtZW50KTsNCiAgICB9DQp9DQpmdW5jdGlvbiBvcGVuUG9wVXAoZGF0YVR5cGUsIGVsZW1lbnQpIHsNCiAgICBsZXQgZGF0YSA9IHt9Ow0KICAgIGxldCBpZDsNCiAgICBzd2l0Y2ggKGVsZW1lbnQpIHsNCiAgICAgICAgY2FzZSB1bmRlZmluZWQ6DQogICAgICAgICAgICBzd2l0Y2ggKGRhdGFUeXBlKSB7DQogICAgICAgICAgICAgICAgY2FzZSAiZ3JvdXAtdGl0bGUiOg0KICAgICAgICAgICAgICAgICAgICBpZiAoaWQgPT0gdW5kZWZpbmVkKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBpZCA9IC0xOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIGRhdGEgPSBnZXRMb2NhbERhdGEoImZpbHRlciIsIGlkKTsNCiAgICAgICAgICAgICAgICAgICAgZGF0YVsidHlwZSJdID0gImdyb3VwLXRpdGxlIjsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAiY3VzdG9tLWZpbHRlciI6DQogICAgICAgICAgICAgICAgICAgIGlmIChpZCA9PSB1bmRlZmluZWQpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGlkID0gLTE7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgZGF0YSA9IGdldExvY2FsRGF0YSgiZmlsdGVyIiwgaWQpOw0KICAgICAgICAgICAgICAgICAgICBkYXRhWyJ0eXBlIl0gPSAiY3VzdG9tLWZpbHRlciI7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICAgICAgICAgIGRhdGFbImlkLnByb3ZpZGVyIl0gPSAiLSI7DQogICAgICAgICAgICAgICAgICAgIGRhdGFbInR5cGUiXSA9IGRhdGFUeXBlOw0KICAgICAgICAgICAgICAgICAgICBpZCA9ICItIjsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgIGlkID0gZWxlbWVudC5pZDsNCiAgICAgICAgICAgIGRhdGEgPSBnZXRMb2NhbERhdGEoZGF0YVR5cGUsIGlkKTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgIH0NCiAgICBsZXQgY29udGVudCA9IG5ldyBQb3B1cENvbnRlbnQoKTsNCiAgICBzd2l0Y2ggKGRhdGFUeXBlKSB7DQogICAgICAgIGNhc2UgInBsYXlsaXN0IjoNCiAgICAgICAgICAgIGNvbnRlbnQuY3JlYXRlSGVhZGxpbmUoInt7LnBsYXlsaXN0LnBsYXlsaXN0VHlwZS50aXRsZX19Iik7DQogICAgICAgICAgICAvLyBUeXBlDQogICAgICAgICAgICB2YXIgdGV4dCA9IFsiTTNVIiwgIkhESG9tZVJ1biJdOw0KICAgICAgICAgICAgdmFyIHZhbHVlcyA9IFsiamF2YXNjcmlwdDogb3BlblBvcFVwKCdtM3UnKSIsICJqYXZhc2NyaXB0OiBvcGVuUG9wVXAoJ2hkaHInKSJdOw0KICAgICAgICAgICAgdmFyIHNlbGVjdCA9IGNvbnRlbnQuY3JlYXRlU2VsZWN0KHRleHQsIHZhbHVlcywgIiIsICJ0eXBlIik7DQogICAgICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJpZCIsICJ0eXBlIik7DQogICAgICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICdqYXZhc2NyaXB0OiBjaGFuZ2VCdXR0b25BY3Rpb24odGhpcywgIm5leHQiLCAib25jbGljayIpJyk7IC8vIGNoYW5nZUJ1dHRvbkFjdGlvbg0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnBsYXlsaXN0LnR5cGUudGl0bGV9fSIsIHNlbGVjdCk7DQogICAgICAgICAgICAvLyBJbnRlcmFjdGlvbg0KICAgICAgICAgICAgY29udGVudC5jcmVhdGVJbnRlcmFjdGlvbigpOw0KICAgICAgICAgICAgLy8gQWJvcnQNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJjYW5jZWwiLCAie3suYnV0dG9uLmNhbmNlbH19Iik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogc2hvd0VsZW1lbnQoInBvcHVwIiwgZmFsc2UpOycpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICAvLyBOZXh0DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAibmV4dCIsICJ7ey5idXR0b24ubmV4dH19Iik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJtM3UiKScpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJpZCIsICduZXh0Jyk7DQogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJtM3UiOg0KICAgICAgICAgICAgY29udGVudC5jcmVhdGVIZWFkbGluZShkYXRhVHlwZSk7DQogICAgICAgICAgICAvLyBOYW1lDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAibmFtZSI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3sucGxheWxpc3QubmFtZS5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sucGxheWxpc3QubmFtZS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgLy8gRGVzY3JpcHRpb24NCiAgICAgICAgICAgIHZhciBkYktleSA9ICJkZXNjcmlwdGlvbiI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3sucGxheWxpc3QuZGVzY3JpcHRpb24ucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnBsYXlsaXN0LmRlc2NyaXB0aW9uLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBVUkwNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJmaWxlLnNvdXJjZSI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3sucGxheWxpc3QuZmlsZU0zVS5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sucGxheWxpc3QuZmlsZU0zVS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgLy8gVHVuZXINCiAgICAgICAgICAgIGlmIChTRVJWRVJbInNldHRpbmdzIl1bImJ1ZmZlciJdICE9ICItIikgew0KICAgICAgICAgICAgICAgIHZhciB0ZXh0ID0gW107DQogICAgICAgICAgICAgICAgdmFyIHZhbHVlcyA9IFtdOw0KICAgICAgICAgICAgICAgIGZvciAodmFyIGkgPSAxOyBpIDw9IDEwMDsgaSsrKSB7DQogICAgICAgICAgICAgICAgICAgIHRleHQucHVzaChpLnRvU3RyaW5nKCkpOw0KICAgICAgICAgICAgICAgICAgICB2YWx1ZXMucHVzaChpLnRvU3RyaW5nKCkpOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB2YXIgZGJLZXkgPSAidHVuZXIiOw0KICAgICAgICAgICAgICAgIHZhciBzZWxlY3QgPSBjb250ZW50LmNyZWF0ZVNlbGVjdCh0ZXh0LCB2YWx1ZXMsIGRhdGFbZGJLZXldLCBkYktleSk7DQogICAgICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25mb2N1cyIsICJqYXZhc2NyaXB0OiByZXR1cm47Iik7DQogICAgICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnBsYXlsaXN0LnR1bmVyLnRpdGxlfX0iLCBzZWxlY3QpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgZWxzZSB7DQogICAgICAgICAgICAgICAgdmFyIGRiS2V5ID0gInR1bmVyIjsNCiAgICAgICAgICAgICAgICBpZiAoZGF0YVtkYktleV0gPT0gdW5kZWZpbmVkKSB7DQogICAgICAgICAgICAgICAgICAgIGRhdGFbZGJLZXldID0gMTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJyZWFkb25seSIsICJ0cnVlIik7DQogICAgICAgICAgICAgICAgaW5wdXQuY2xhc3NOYW1lID0gIm5vdEF2YWlsYWJsZSI7DQogICAgICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnBsYXlsaXN0LnR1bmVyLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBjb250ZW50LmRlc2NyaXB0aW9uKCJ7ey5wbGF5bGlzdC50dW5lci5kZXNjcmlwdGlvbn19Iik7DQogICAgICAgICAgICAvLyBJbnRlcmF0aW9uDQogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUludGVyYWN0aW9uKCk7DQogICAgICAgICAgICAvLyBEZWxldGUNCiAgICAgICAgICAgIGlmIChkYXRhWyJpZC5wcm92aWRlciJdICE9ICItIikgew0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJkZWxldGUiLCAie3suYnV0dG9uLmRlbGV0ZX19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuY2xhc3NOYW1lID0gImRlbGV0ZSI7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoIm0zdSIsICInICsgaWQgKyAnIiwgdHJ1ZSwgMCknKTsNCiAgICAgICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJiYWNrIiwgInt7LmJ1dHRvbi5iYWNrfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJwbGF5bGlzdCIpJyk7DQogICAgICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICAvLyBBYm9ydA0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImNhbmNlbCIsICJ7ey5idXR0b24uY2FuY2VsfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBzaG93RWxlbWVudCgicG9wdXAiLCBmYWxzZSk7Jyk7DQogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIC8vIFVwZGF0ZQ0KICAgICAgICAgICAgaWYgKGRhdGFbImlkLnByb3ZpZGVyIl0gIT0gIi0iKSB7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgInVwZGF0ZSIsICJ7ey5idXR0b24udXBkYXRlfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogc2F2ZVBvcHVwRGF0YSgibTN1IiwgIicgKyBpZCArICciLCBmYWxzZSwgMSknKTsNCiAgICAgICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIC8vIFNhdmUNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJzYXZlIiwgInt7LmJ1dHRvbi5zYXZlfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBzYXZlUG9wdXBEYXRhKCJtM3UiLCAiJyArIGlkICsgJyIsIGZhbHNlLCAwKScpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSAiaGRociI6DQogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUhlYWRsaW5lKGRhdGFUeXBlKTsNCiAgICAgICAgICAgIC8vIE5hbWUNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJuYW1lIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5wbGF5bGlzdC5uYW1lLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5wbGF5bGlzdC5uYW1lLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBEZXNjcmlwdGlvbg0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gImRlc2NyaXB0aW9uIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5wbGF5bGlzdC5kZXNjcmlwdGlvbi5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sucGxheWxpc3QuZGVzY3JpcHRpb24ucGxhY2Vob2xkZXJ9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIFVSTA0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gImZpbGUuc291cmNlIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5wbGF5bGlzdC5maWxlSERIUi5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sucGxheWxpc3QuZmlsZUhESFIudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIFR1bmVyDQogICAgICAgICAgICBpZiAoU0VSVkVSWyJzZXR0aW5ncyJdWyJidWZmZXIiXSAhPSAiLSIpIHsNCiAgICAgICAgICAgICAgICB2YXIgdGV4dCA9IFtdOw0KICAgICAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBbXTsNCiAgICAgICAgICAgICAgICBmb3IgKHZhciBpID0gMTsgaSA8PSAxMDA7IGkrKykgew0KICAgICAgICAgICAgICAgICAgICB0ZXh0LnB1c2goaS50b1N0cmluZygpKTsNCiAgICAgICAgICAgICAgICAgICAgdmFsdWVzLnB1c2goaS50b1N0cmluZygpKTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgdmFyIGRiS2V5ID0gInR1bmVyIjsNCiAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCBkYXRhW2RiS2V5XSwgZGJLZXkpOw0KICAgICAgICAgICAgICAgIHNlbGVjdC5zZXRBdHRyaWJ1dGUoIm9uZm9jdXMiLCAiamF2YXNjcmlwdDogcmV0dXJuOyIpOw0KICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5wbGF5bGlzdC50dW5lci50aXRsZX19Iiwgc2VsZWN0KTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgICAgIHZhciBkYktleSA9ICJ0dW5lciI7DQogICAgICAgICAgICAgICAgaWYgKGRhdGFbZGJLZXldID09IHVuZGVmaW5lZCkgew0KICAgICAgICAgICAgICAgICAgICBkYXRhW2RiS2V5XSA9IDE7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicmVhZG9ubHkiLCAidHJ1ZSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LmNsYXNzTmFtZSA9ICJub3RBdmFpbGFibGUiOw0KICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5wbGF5bGlzdC50dW5lci50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgY29udGVudC5kZXNjcmlwdGlvbigie3sucGxheWxpc3QudHVuZXIuZGVzY3JpcHRpb259fSIpOw0KICAgICAgICAgICAgLy8gSW50ZXJhY3Rpb24NCiAgICAgICAgICAgIGNvbnRlbnQuY3JlYXRlSW50ZXJhY3Rpb24oKTsNCiAgICAgICAgICAgIC8vIERlbGV0ZQ0KICAgICAgICAgICAgaWYgKGRhdGFbImlkLnByb3ZpZGVyIl0gIT0gIi0iKSB7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImRlbGV0ZSIsICJ7ey5idXR0b24uZGVsZXRlfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogc2F2ZVBvcHVwRGF0YSgiaGRociIsICInICsgaWQgKyAnIiwgdHJ1ZSwgMCknKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5jbGFzc05hbWUgPSAiZGVsZXRlIjsNCiAgICAgICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJiYWNrIiwgInt7LmJ1dHRvbi5iYWNrfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJwbGF5bGlzdCIpJyk7DQogICAgICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICAvLyBBYm9ydA0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImNhbmNlbCIsICJ7ey5idXR0b24uY2FuY2VsfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBzaG93RWxlbWVudCgicG9wdXAiLCBmYWxzZSk7Jyk7DQogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIC8vIFVwZGF0ZQ0KICAgICAgICAgICAgaWYgKGRhdGFbImlkLnByb3ZpZGVyIl0gIT0gIi0iKSB7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgInVwZGF0ZSIsICJ7ey5idXR0b24udXBkYXRlfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogc2F2ZVBvcHVwRGF0YSgiaGRociIsICInICsgaWQgKyAnIiwgZmFsc2UsIDEpJyk7DQogICAgICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICAvLyBTYXZlDQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAic2F2ZSIsICJ7ey5idXR0b24uc2F2ZX19Iik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogc2F2ZVBvcHVwRGF0YSgiaGRociIsICInICsgaWQgKyAnIiwgZmFsc2UsIDApJyk7DQogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJmaWx0ZXIiOg0KICAgICAgICAgICAgY29udGVudC5jcmVhdGVIZWFkbGluZShkYXRhVHlwZSk7DQogICAgICAgICAgICAvLyBUeXBlDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAidHlwZSI7DQogICAgICAgICAgICB2YXIgdGV4dCA9IFsiTTNVOiAiICsgInt7LmZpbHRlci50eXBlLmdyb3VwVGl0bGV9fSIsICJ4VGVWZTogIiArICJ7ey5maWx0ZXIudHlwZS5jdXN0b21GaWx0ZXJ9fSJdOw0KICAgICAgICAgICAgdmFyIHZhbHVlcyA9IFsiamF2YXNjcmlwdDogb3BlblBvcFVwKCdncm91cC10aXRsZScpIiwgImphdmFzY3JpcHQ6IG9wZW5Qb3BVcCgnY3VzdG9tLWZpbHRlcicpIl07DQogICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCAiamF2YXNjcmlwdDogb3BlblBvcFVwKCdncm91cC10aXRsZScpIiwgZGJLZXkpOw0KICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgiaWQiLCBpZCk7DQogICAgICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICdqYXZhc2NyaXB0OiBjaGFuZ2VCdXR0b25BY3Rpb24odGhpcywgIm5leHQiLCAib25jbGljayIpOycpOyAvLyBjaGFuZ2VCdXR0b25BY3Rpb24NCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5maWx0ZXIudHlwZS50aXRsZX19Iiwgc2VsZWN0KTsNCiAgICAgICAgICAgIC8vIEludGVyYWN0aW9uDQogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUludGVyYWN0aW9uKCk7DQogICAgICAgICAgICAvLyBBYm9ydA0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImNhbmNlbCIsICJ7ey5idXR0b24uY2FuY2VsfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBzaG93RWxlbWVudCgicG9wdXAiLCBmYWxzZSk7Jyk7DQogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIC8vIE5leHQNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJuZXh0IiwgInt7LmJ1dHRvbi5uZXh0fX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoImdyb3VwLXRpdGxlIiknKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgiaWQiLCAnbmV4dCcpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSAiY3VzdG9tLWZpbHRlciI6DQogICAgICAgIGNhc2UgImdyb3VwLXRpdGxlIjoNCiAgICAgICAgICAgIHN3aXRjaCAoZGF0YVR5cGUpIHsNCiAgICAgICAgICAgICAgICBjYXNlICJjdXN0b20tZmlsdGVyIjoNCiAgICAgICAgICAgICAgICAgICAgY29udGVudC5jcmVhdGVIZWFkbGluZSgie3suZmlsdGVyLmN1c3RvbX19IiArICIgRmlsdGVyIik7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgImdyb3VwLXRpdGxlIjoNCiAgICAgICAgICAgICAgICAgICAgY29udGVudC5jcmVhdGVIZWFkbGluZSgie3suZmlsdGVyLmdyb3VwfX0iICsgIiBGaWx0ZXIiKTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICB9DQogICAgICAgICAgICAvLyBOYW1lICAgICAgDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAibmFtZSI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3suZmlsdGVyLm5hbWUucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LmZpbHRlci5uYW1lLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBEZXNjcmlwdGlvbg0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gImRlc2NyaXB0aW9uIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5maWx0ZXIuZGVzY3JpcHRpb24ucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LmZpbHRlci5kZXNjcmlwdGlvbi50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgLy8gVHlwZQ0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gInR5cGUiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiaGlkZGVuIiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCIiLCBpbnB1dCk7DQogICAgICAgICAgICB2YXIgZmlsdGVyVHlwZSA9IGRhdGFbZGJLZXldOw0KICAgICAgICAgICAgc3dpdGNoIChmaWx0ZXJUeXBlKSB7DQogICAgICAgICAgICAgICAgY2FzZSAiY3VzdG9tLWZpbHRlciI6DQogICAgICAgICAgICAgICAgICAgIC8vIENhc2Ugc2Vuc2l0aXZlDQogICAgICAgICAgICAgICAgICAgIHZhciBkYktleSA9ICJjYXNlU2Vuc2l0aXZlIjsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChkYktleSk7DQogICAgICAgICAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhW2RiS2V5XTsNCiAgICAgICAgICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LmZpbHRlci5jYXNlU2Vuc2l0aXZlLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAgICAgICAgIC8vIEZpbHRlciBSdWxlIChDdXN0b20pDQogICAgICAgICAgICAgICAgICAgIHZhciBkYktleSA9ICJmaWx0ZXIiOw0KICAgICAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5maWx0ZXIuZmlsdGVyUnVsZS5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5maWx0ZXIuZmlsdGVyUnVsZS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgICAgICAgICAvLyBTdGFydGluZyBDaGFubmVsIE51bWJlciBNYXBwaW5nDQogICAgICAgICAgICAgICAgICAgIHZhciBkYktleSA9ICJzdGFydGluZ0NoYW5uZWwiOw0KICAgICAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5maWx0ZXIuc3RhcnRpbmdDaGFubmVsLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LmZpbHRlci5zdGFydGluZ0NoYW5uZWwudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAiZ3JvdXAtdGl0bGUiOg0KICAgICAgICAgICAgICAgICAgICAvL2FsZXJ0KGRiS2V5ICsgIiAiICsgZmlsdGVyVHlwZSkNCiAgICAgICAgICAgICAgICAgICAgLy8gRmlsdGVyIGJhc2VkIG9uIHRoZSBncm91cHMgaW4gdGhlIE0zVQ0KICAgICAgICAgICAgICAgICAgICB2YXIgZGJLZXkgPSAiZmlsdGVyIjsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGdyb3Vwc00zVSA9IGdldExvY2FsRGF0YSgibTN1R3JvdXBzIiwgIiIpOw0KICAgICAgICAgICAgICAgICAgICB2YXIgdGV4dCA9IGdyb3Vwc00zVVsidGV4dCJdOw0KICAgICAgICAgICAgICAgICAgICB2YXIgdmFsdWVzID0gZ3JvdXBzTTNVWyJ2YWx1ZSJdOw0KICAgICAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCBkYXRhW2RiS2V5XSwgZGJLZXkpOw0KICAgICAgICAgICAgICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3suZmlsdGVyLmZpbHRlckdyb3VwLnRpdGxlfX0iLCBzZWxlY3QpOw0KICAgICAgICAgICAgICAgICAgICBjb250ZW50LmRlc2NyaXB0aW9uKCJ7ey5maWx0ZXIuZmlsdGVyR3JvdXAuZGVzY3JpcHRpb259fSIpOw0KICAgICAgICAgICAgICAgICAgICAvLyBDYXNlIHNlbnNldGl2ZQ0KICAgICAgICAgICAgICAgICAgICB2YXIgZGJLZXkgPSAiY2FzZVNlbnNpdGl2ZSI7DQogICAgICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goZGJLZXkpOw0KICAgICAgICAgICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YVtkYktleV07DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5maWx0ZXIuY2FzZVNlbnNpdGl2ZS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgICAgICAgICB2YXIgZGJLZXkgPSAiaW5jbHVkZSI7DQogICAgICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LmZpbHRlci5pbmNsdWRlLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LmZpbHRlci5pbmNsdWRlLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuZGVzY3JpcHRpb24oInt7LmZpbHRlci5pbmNsdWRlLmRlc2NyaXB0aW9ufX0iKTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGRiS2V5ID0gImV4Y2x1ZGUiOw0KICAgICAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5maWx0ZXIuZXhjbHVkZS5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5maWx0ZXIuZXhjbHVkZS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgICAgICAgICBjb250ZW50LmRlc2NyaXB0aW9uKCJ7ey5maWx0ZXIuZXhjbHVkZS5kZXNjcmlwdGlvbn19Iik7DQogICAgICAgICAgICAgICAgICAgIC8vIFByZXNlcnZlIE0zVSBQbGF5bGlzdCBDaGFubmVsIE1hcHBpbmcNCiAgICAgICAgICAgICAgICAgICAgdmFyIGRiS2V5ID0gInByZXNlcnZlTWFwcGluZyI7DQogICAgICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goZGJLZXkpOw0KICAgICAgICAgICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YVtkYktleV07DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5maWx0ZXIucHJlc2VydmVNYXBwaW5nLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAgICAgICAgIC8vIFN0YXJ0aW5nIENoYW5uZWwgTnVtYmVyIE1hcHBpbmcNCiAgICAgICAgICAgICAgICAgICAgdmFyIGRiS2V5ID0gInN0YXJ0aW5nQ2hhbm5lbCI7DQogICAgICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LmZpbHRlci5zdGFydGluZ0NoYW5uZWwucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3suZmlsdGVyLnN0YXJ0aW5nQ2hhbm5lbC50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBkZWZhdWx0Og0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIC8vIEludGVyYWN0aW9uDQogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUludGVyYWN0aW9uKCk7DQogICAgICAgICAgICAvLyBEZWxldGUNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJkZWxldGUiLCAie3suYnV0dG9uLmRlbGV0ZX19Iik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogc2F2ZVBvcHVwRGF0YSgiZmlsdGVyIiwgIicgKyBpZCArICciLCB0cnVlLCAwKScpOw0KICAgICAgICAgICAgaW5wdXQuY2xhc3NOYW1lID0gImRlbGV0ZSI7DQogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIC8vIEFib3J0DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAiY2FuY2VsIiwgInt7LmJ1dHRvbi5jYW5jZWx9fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IHNob3dFbGVtZW50KCJwb3B1cCIsIGZhbHNlKTsnKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgLy8gU2F2ZQ0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgInNhdmUiLCAie3suYnV0dG9uLnNhdmV9fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoImZpbHRlciIsICInICsgaWQgKyAnIiwgZmFsc2UsIDApJyk7DQogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJ4bWx0diI6DQogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUhlYWRsaW5lKGRhdGFUeXBlKTsNCiAgICAgICAgICAgIC8vIE5hbWUNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJuYW1lIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey54bWx0di5uYW1lLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey54bWx0di5uYW1lLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBEZXNjcmlwdGlvbg0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gImRlc2NyaXB0aW9uIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey54bWx0di5kZXNjcmlwdGlvbi5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sueG1sdHYuZGVzY3JpcHRpb24udGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIFVSTA0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gImZpbGUuc291cmNlIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey54bWx0di5maWxlWE1MVFYucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnhtbHR2LmZpbGVYTUxUVi50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgLy8gSW50ZXJhY3Rpb24NCiAgICAgICAgICAgIGNvbnRlbnQuY3JlYXRlSW50ZXJhY3Rpb24oKTsNCiAgICAgICAgICAgIC8vIERlbGV0ZQ0KICAgICAgICAgICAgaWYgKGRhdGFbImlkLnByb3ZpZGVyIl0gIT0gIi0iKSB7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImRlbGV0ZSIsICJ7ey5idXR0b24uZGVsZXRlfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogc2F2ZVBvcHVwRGF0YSgieG1sdHYiLCAiJyArIGlkICsgJyIsIHRydWUsIDApJyk7DQogICAgICAgICAgICAgICAgaW5wdXQuY2xhc3NOYW1lID0gImRlbGV0ZSI7DQogICAgICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICAvLyBBYm9ydA0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImNhbmNlbCIsICJ7ey5idXR0b24uY2FuY2VsfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBzaG93RWxlbWVudCgicG9wdXAiLCBmYWxzZSk7Jyk7DQogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIC8vIFVwZGF0ZQ0KICAgICAgICAgICAgaWYgKGRhdGFbImlkLnByb3ZpZGVyIl0gIT0gIi0iKSB7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgInVwZGF0ZSIsICJ7ey5idXR0b24udXBkYXRlfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogc2F2ZVBvcHVwRGF0YSgieG1sdHYiLCAiJyArIGlkICsgJyIsIGZhbHNlLCAxKScpOw0KICAgICAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgLy8gU2F2ZQ0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgInNhdmUiLCAie3suYnV0dG9uLnNhdmV9fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoInhtbHR2IiwgIicgKyBpZCArICciLCBmYWxzZSwgMCknKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGNhc2UgInVzZXJzIjoNCiAgICAgICAgICAgIGNvbnRlbnQuY3JlYXRlSGVhZGxpbmUoInt7Lm1haW5NZW51Lml0ZW0udXNlcnN9fSIpOw0KICAgICAgICAgICAgLy8gVXNlciBuYW1lDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAidXNlcm5hbWUiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnVzZXJzLnVzZXJuYW1lLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey51c2Vycy51c2VybmFtZS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgLy8gTmV3IFBhcnNzd29yZA0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gInBhc3N3b3JkIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInBhc3N3b3JkIiwgZGJLZXksICIiKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3sudXNlcnMucGFzc3dvcmQucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnVzZXJzLnBhc3N3b3JkLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBDb25maXJtYXRpb24NCiAgICAgICAgICAgIHZhciBkYktleSA9ICJjb25maXJtIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInBhc3N3b3JkIiwgZGJLZXksICIiKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3sudXNlcnMuY29uZmlybS5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sudXNlcnMuY29uZmlybS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgLy8gQXV0aGVudGljYXRpb24gV0VCDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAiYXV0aGVudGljYXRpb24ud2ViIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goZGJLZXkpOw0KICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGFbZGJLZXldOw0KICAgICAgICAgICAgaWYgKGRhdGFbImRlZmF1bHRVc2VyIl0gPT0gdHJ1ZSkgew0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICJqYXZhc2NyaXB0OiByZXR1cm4gZmFsc2UiKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey51c2Vycy53ZWIudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIEF1dGhlbnRpY2F0aW9uIFBNUw0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gImF1dGhlbnRpY2F0aW9uLnBtcyI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KGRiS2V5KTsNCiAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhW2RiS2V5XTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey51c2Vycy5wbXMudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIEF1dGhlbnRpY2F0aW9uIE0zVQ0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gImF1dGhlbnRpY2F0aW9uLm0zdSI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KGRiS2V5KTsNCiAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhW2RiS2V5XTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey51c2Vycy5tM3UudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIEF1dGhlbnRpY2F0aW9uIFhNTA0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gImF1dGhlbnRpY2F0aW9uLnhtbCI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KGRiS2V5KTsNCiAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhW2RiS2V5XTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey51c2Vycy54bWwudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIEF1dGhlbnRpY2F0aW9uIEFQSQ0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gImF1dGhlbnRpY2F0aW9uLmFwaSI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KGRiS2V5KTsNCiAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhW2RiS2V5XTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey51c2Vycy5hcGkudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIEludGVyYWN0aW9uDQogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUludGVyYWN0aW9uKCk7DQogICAgICAgICAgICAvLyBEZWxldGUNCiAgICAgICAgICAgIGlmIChkYXRhWyJkZWZhdWx0VXNlciJdICE9IHRydWUgJiYgaWQgIT0gIi0iKSB7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImRlbGV0ZSIsICJ7ey5idXR0b24uZGVsZXRlfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5jbGFzc05hbWUgPSAiZGVsZXRlIjsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogc2F2ZVBvcHVwRGF0YSgiJyArIGRhdGFUeXBlICsgJyIsICInICsgaWQgKyAnIiwgdHJ1ZSwgMCknKTsNCiAgICAgICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIC8vIEFib3J0DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAiY2FuY2VsIiwgInt7LmJ1dHRvbi5jYW5jZWx9fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IHNob3dFbGVtZW50KCJwb3B1cCIsIGZhbHNlKTsnKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgLy8gU2F2ZQ0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgInNhdmUiLCAie3suYnV0dG9uLnNhdmV9fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoIicgKyBkYXRhVHlwZSArICciLCAiJyArIGlkICsgJyIsICJmYWxzZSIpOycpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSAibWFwcGluZyI6DQogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUhlYWRsaW5lKCJ7ey5tYWluTWVudS5pdGVtLm1hcHBpbmd9fSIpOw0KICAgICAgICAgICAgLy8gQWN0aXZlDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAieC1hY3RpdmUiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChkYktleSk7DQogICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YVtkYktleV07DQogICAgICAgICAgICBpbnB1dC5pZCA9ICJhY3RpdmUiOw0KICAgICAgICAgICAgLy9pbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIikNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdG9nZ2xlQ2hhbm5lbFN0YXR1cygnIiArIGlkICsgIicsIHRoaXMpIik7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3subWFwcGluZy5hY3RpdmUudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIENoYW5uZWwgbmFtZQ0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gIngtbmFtZSI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgIGlmIChCVUxLX0VESVQgPT0gdHJ1ZSkgew0KICAgICAgICAgICAgICAgIGlucHV0LnN0eWxlLmJvcmRlciA9ICJzb2xpZCAxcHggcmVkIjsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInJlYWRvbmx5IiwgInRydWUiKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5tYXBwaW5nLmNoYW5uZWxOYW1lLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICBjb250ZW50LmRlc2NyaXB0aW9uKGRhdGFbIm5hbWUiXSk7DQogICAgICAgICAgICAvLyBEZXNjcmlwdGlvbg0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gIngtZGVzY3JpcHRpb24iOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7Lm1hcHBpbmcuZGVzY3JpcHRpb24ucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7Lm1hcHBpbmcuZGVzY3JpcHRpb24udGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIFVwZGF0ZSB0aGUgY2hhbm5lbCB4LW5hbWUNCiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCJfdXVpZC5rZXkiKSkgew0KICAgICAgICAgICAgICAgIGlmIChkYXRhWyJfdXVpZC5rZXkiXSAhPSAiIikgew0KICAgICAgICAgICAgICAgICAgICB2YXIgZGJLZXkgPSAieC11cGRhdGUtY2hhbm5lbC1uYW1lIjsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChkYktleSk7DQogICAgICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGFbZGJLZXldOw0KICAgICAgICAgICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3subWFwcGluZy51cGRhdGVDaGFubmVsTmFtZS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIC8vIENoYW5uZWwgbmFtZSByZWdleCBmb3IgdXBkYXRpbmcgdGhlIGNoYW5uZWwgbmFtZQ0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gInVwZGF0ZS1jaGFubmVsLW5hbWUtcmVnZXgiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7Lm1hcHBpbmcudXBkYXRlQ2hhbm5lbE5hbWVSZWdleC5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3subWFwcGluZy51cGRhdGVDaGFubmVsTmFtZVJlZ2V4LnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICBjb250ZW50LmRlc2NyaXB0aW9uKCJ7ey5tYXBwaW5nLnVwZGF0ZUNoYW5uZWxOYW1lUmVnZXguZGVzY3JpcHRpb259fSIpOw0KICAgICAgICAgICAgLy8gQ2hhbm5lbCBncm91cCByZWdleCBmb3IgdXBkYXRpbmcgdGhlIGNoYW5uZWwgbmFtZQ0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gInVwZGF0ZS1jaGFubmVsLW5hbWUtYnktZ3JvdXAtcmVnZXgiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7Lm1hcHBpbmcudXBkYXRlQ2hhbm5lbE5hbWVCeUdyb3VwUmVnZXgucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7Lm1hcHBpbmcudXBkYXRlQ2hhbm5lbE5hbWVCeUdyb3VwUmVnZXgudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIGNvbnRlbnQuZGVzY3JpcHRpb24oInt7Lm1hcHBpbmcudXBkYXRlQ2hhbm5lbE5hbWVCeUdyb3VwUmVnZXguZGVzY3JpcHRpb259fSIpOw0KICAgICAgICAgICAgLy8gTG9nbyBVUkwgKENoYW5uZWwpIA0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gInR2Zy1sb2dvIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJpZCIsICJjaGFubmVsLWljb24iKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5tYXBwaW5nLmNoYW5uZWxMb2dvLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBDaGFubmVsIGxvZ28gdXBkYXRlDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAieC11cGRhdGUtY2hhbm5lbC1pY29uIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goZGJLZXkpOw0KICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGFbZGJLZXldOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJpZCIsICJ1cGRhdGUtaWNvbiIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJzsgY2hhbmdlQ2hhbm5lbExvZ28oJyIgKyBpZCArICInKTsiKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5tYXBwaW5nLnVwZGF0ZUNoYW5uZWxMb2dvLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBFeHBhbmQgRVBHIGNhdGVnb3J5DQogICAgICAgICAgICB2YXIgZGJLZXkgPSAieC1jYXRlZ29yeSI7DQogICAgICAgICAgICB2YXIgdGV4dCA9IFsiLSIsICJLaWRzIChFbWJ5IG9ubHkpIiwgIk5ld3MiLCAiTW92aWUiLCAiU2VyaWVzIiwgIlNwb3J0cyJdOw0KICAgICAgICAgICAgdmFyIHZhbHVlcyA9IFsiIiwgIktpZHMiLCAiTmV3cyIsICJNb3ZpZSIsICJTZXJpZXMiLCAiU3BvcnRzIl07DQogICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCBkYXRhW2RiS2V5XSwgZGJLZXkpOw0KICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5tYXBwaW5nLmVwZ0NhdGVnb3J5LnRpdGxlfX0iLCBzZWxlY3QpOw0KICAgICAgICAgICAgLy8gTTNVIGdyb3VwIHRpdGxlDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAieC1ncm91cC10aXRsZSI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgIGlucHV0LmRhdGFzZXQub2xkVmFsdWUgPSBkYXRhW2RiS2V5XTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5tYXBwaW5nLm0zdUdyb3VwVGl0bGUudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIGlmIChkYXRhWyJncm91cC10aXRsZSJdICE9IHVuZGVmaW5lZCkgew0KICAgICAgICAgICAgICAgIGNvbnRlbnQuZGVzY3JpcHRpb24oZGF0YVsiZ3JvdXAtdGl0bGUiXSk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBpZiAoZGF0YVsieC11cGRhdGUtY2hhbm5lbC1ncm91cCJdID09IHRydWUpIHsNCiAgICAgICAgICAgICAgICBpbnB1dC5kaXNhYmxlZCA9IHRydWU7DQogICAgICAgICAgICB9DQogICAgICAgICAgICAvLyBVcGRhdGUgY2hhbm5lbCBncm91cCBjaGVja2JveA0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gIngtdXBkYXRlLWNoYW5uZWwtZ3JvdXAiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChkYktleSk7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRvZ2dsZUdyb3VwVXBkYXRlQ2IoJyIgKyBpZCArICInLCB0aGlzKTsiKTsNCiAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhW2RiS2V5XTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5tYXBwaW5nLnVwZGF0ZUNoYW5uZWxHcm91cC50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgY29udGVudC5kZXNjcmlwdGlvbigie3subWFwcGluZy51cGRhdGVDaGFubmVsR3JvdXAuZGVzY3JpcHRpb259fSIpOw0KICAgICAgICAgICAgLy8gWE1MVFYgZmlsZQ0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gJ3gteG1sdHYtZmlsZSc7DQogICAgICAgICAgICBjb25zdCB4bWxUdkZpbGUgPSBkYXRhW2RiS2V5XTsNCiAgICAgICAgICAgIHZhciB4bWxUdiA9IG5ldyBYTUxUVkZpbGUoKTsNCiAgICAgICAgICAgIGNvbnN0IHhtbFR2RmlsZVNlbGVjdCA9IHhtbFR2LmdldEZpbGVzKGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIHhtbFR2RmlsZVNlbGVjdC5zZXRBdHRyaWJ1dGUoJ25hbWUnLCBkYktleSk7DQogICAgICAgICAgICB4bWxUdkZpbGVTZWxlY3Quc2V0QXR0cmlidXRlKCdpZCcsICdwb3B1cC14bWx0dicpOw0KICAgICAgICAgICAgeG1sVHZGaWxlU2VsZWN0LnNldEF0dHJpYnV0ZSgnb25jaGFuZ2UnLCBgamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCc7IHNldFhtbHR2Q2hhbm5lbCgnJHtpZH0nLCB0aGlzKTtgKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCd7ey5tYXBwaW5nLnhtbHR2RmlsZS50aXRsZX19JywgeG1sVHZGaWxlU2VsZWN0KTsNCiAgICAgICAgICAgIC8vIFhNTFRWIE1hcHBpbmcNCiAgICAgICAgICAgIHZhciBkYktleSA9ICd4LW1hcHBpbmcnOw0KICAgICAgICAgICAgdmFyIHhtbFR2ID0gbmV3IFhNTFRWRmlsZSgpOw0KICAgICAgICAgICAgY29uc3QgY3VycmVudFhtbFR2SWQgPSBkYXRhW2RiS2V5XTsNCiAgICAgICAgICAgIGNvbnN0IFt4bWxUdklkQ29udGFpbmVyLCB4bWxUdklkSW5wdXQsIHhtbFR2SWREYXRhbGlzdF0gPSB4bWxUdi5uZXdYbWxUdklkUGlja2VyKHhtbFR2RmlsZSwgY3VycmVudFhtbFR2SWQpOw0KICAgICAgICAgICAgeG1sVHZJZENvbnRhaW5lci5zZXRBdHRyaWJ1dGUoJ2lkJywgJ3htbHR2LWlkLXBpY2tlci1jb250YWluZXInKTsNCiAgICAgICAgICAgIHhtbFR2SWRJbnB1dC5zZXRBdHRyaWJ1dGUoJ2xpc3QnLCAneG1sdHYtaWQtcGlja2VyLWRhdGFsaXN0Jyk7DQogICAgICAgICAgICB4bWxUdklkSW5wdXQuc2V0QXR0cmlidXRlKCduYW1lJywgJ3gtbWFwcGluZycpOyAvLyBTaG91bGQgc3RheSB4LW1hcHBpbmcgYXMgaXQgd2lsbCBiZSB1c2VkIGluIGRvbmVQb3B1cERhdGEgdG8gbWFrZSBhIHNlcnZlciByZXF1ZXN0DQogICAgICAgICAgICB4bWxUdklkSW5wdXQuc2V0QXR0cmlidXRlKCdpZCcsICd4bWx0di1pZC1waWNrZXItaW5wdXQnKTsNCiAgICAgICAgICAgIHhtbFR2SWRJbnB1dC5zZXRBdHRyaWJ1dGUoJ29uY2hhbmdlJywgYGphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnOyBjaGVja1htbHR2Q2hhbm5lbCgnJHtpZH0nLCB0aGlzLnZhbHVlLCAnJHt4bWxUdkZpbGV9Jyk7YCk7DQogICAgICAgICAgICB4bWxUdklkRGF0YWxpc3Quc2V0QXR0cmlidXRlKCdpZCcsICd4bWx0di1pZC1waWNrZXItZGF0YWxpc3QnKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCd7ey5tYXBwaW5nLnhtbHR2Q2hhbm5lbC50aXRsZX19JywgeG1sVHZJZENvbnRhaW5lcik7DQogICAgICAgICAgICAvLyBUaW1lc2hpZnQNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJ4LXRpbWVzaGlmdCI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3subWFwcGluZy50aW1lc2hpZnQucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJpZCIsICJ0aW1lc2hpZnQiKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5tYXBwaW5nLnRpbWVzaGlmdC50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgLy8gSW50ZXJhY3Rpb24NCiAgICAgICAgICAgIGNvbnRlbnQuY3JlYXRlSW50ZXJhY3Rpb24oKTsNCiAgICAgICAgICAgIC8vIFVwbG9hZCBsb2dvDQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAiY2FuY2VsIiwgInt7LmJ1dHRvbi51cGxvYWRMb2dvfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiB1cGxvYWRMb2dvKCk7Jyk7DQogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIC8vIEFib3J0DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAiY2FuY2VsIiwgInt7LmJ1dHRvbi5jYW5jZWx9fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IHNob3dFbGVtZW50KCJwb3B1cCIsIGZhbHNlKTsnKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgLy8gRmluaXNoZWQNCiAgICAgICAgICAgIHZhciBpZHMgPSBbXTsNCiAgICAgICAgICAgIGlkcyA9IGdldEFsbFNlbGVjdGVkQ2hhbm5lbHMoKTsNCiAgICAgICAgICAgIGlmIChpZHMubGVuZ3RoID09IDApIHsNCiAgICAgICAgICAgICAgICBpZHMucHVzaChpZCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAic2F2ZSIsICJ7ey5idXR0b24uZG9uZX19Iik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogZG9uZVBvcHVwRGF0YSgiJyArIGRhdGFUeXBlICsgJyIsICInICsgaWRzICsgJyIsICJmYWxzZSIpOycpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgIGJyZWFrOw0KICAgIH0NCiAgICBzaG93UG9wVXBFbGVtZW50KCdwb3B1cC1jdXN0b20nKTsNCn0NCmNsYXNzIFhNTFRWRmlsZSB7DQogICAgZ2V0RmlsZXMoc2V0KSB7DQogICAgICAgIGxldCBmaWxlSURzID0gZ2V0T3duT2JqUHJvcHMoU0VSVkVSWyJ4ZXBnIl1bInhtbHR2TWFwIl0pOw0KICAgICAgICBsZXQgdmFsdWVzID0gbmV3IEFycmF5KCItIik7DQogICAgICAgIGxldCB0ZXh0ID0gbmV3IEFycmF5KCItIik7DQogICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgZmlsZUlEcy5sZW5ndGg7IGkrKykgew0KICAgICAgICAgICAgaWYgKGZpbGVJRHNbaV0gIT0gInhUZVZlIER1bW15Iikgew0KICAgICAgICAgICAgICAgIHZhbHVlcy5wdXNoKGdldFZhbHVlRnJvbVByb3ZpZGVyRmlsZShmaWxlSURzW2ldLCAieG1sdHYiLCAiZmlsZS54dGV2ZSIpKTsNCiAgICAgICAgICAgICAgICB0ZXh0LnB1c2goZ2V0VmFsdWVGcm9tUHJvdmlkZXJGaWxlKGZpbGVJRHNbaV0sICJ4bWx0diIsICJuYW1lIikpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgZWxzZSB7DQogICAgICAgICAgICAgICAgdmFsdWVzLnB1c2goZmlsZUlEc1tpXSk7DQogICAgICAgICAgICAgICAgdGV4dC5wdXNoKGZpbGVJRHNbaV0pOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQogICAgICAgIGxldCBzZWxlY3QgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJTRUxFQ1QiKTsNCiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0ZXh0Lmxlbmd0aDsgaSsrKSB7DQogICAgICAgICAgICB2YXIgb3B0aW9uID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiT1BUSU9OIik7DQogICAgICAgICAgICBvcHRpb24uc2V0QXR0cmlidXRlKCJ2YWx1ZSIsIHZhbHVlc1tpXSk7DQogICAgICAgICAgICBvcHRpb24uaW5uZXJUZXh0ID0gdGV4dFtpXTsNCiAgICAgICAgICAgIHNlbGVjdC5hcHBlbmRDaGlsZChvcHRpb24pOw0KICAgICAgICB9DQogICAgICAgIGlmIChzZXQgIT0gIiIpIHsNCiAgICAgICAgICAgIHNlbGVjdC52YWx1ZSA9IHNldDsNCiAgICAgICAgfQ0KICAgICAgICByZXR1cm4gc2VsZWN0Ow0KICAgIH0NCiAgICAvKioNCiAgICAgKiBAcGFyYW0geG1sVHZGaWxlIFhNTCBmaWxlIHBhdGggdG8gZ2V0IEVQRyBmcm9tLg0KICAgICAqIEBwYXJhbSBjdXJyZW50WG1sVHZJZCBDdXJyZW50IFhNTFRWIElEIHRvIHNldCBpbml0aWFsIGlucHV0IHZhbHVlIHRvLg0KICAgICAqIEByZXR1cm5zIEFycmF5IG9mLCBzZXF1ZW50aWFsbHk6DQogICAgICogMSkgQ29udGFpbmVyIG9mIHRoZSBwaWNrZXIuDQogICAgICogMikgSW5wdXQgZmllbGQgdG8gdHlwZSBhdCBhbmQgZ2V0IGNob2ljZSBmcm9tLg0KICAgICAqIDMpIERhdGFsaXN0IGNvbnRhaW5pbmcgZXZlcnkgb3B0aW9uLg0KICAgICAqLw0KICAgIG5ld1htbFR2SWRQaWNrZXIoeG1sVHZGaWxlLCBjdXJyZW50WG1sVHZJZCkgew0KICAgICAgICBjb25zdCBjb250YWluZXIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsNCiAgICAgICAgY29uc3QgaW5wdXQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdpbnB1dCcpOw0KICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoJ3R5cGUnLCAndGV4dCcpOw0KICAgICAgICAvLyBJbml0aWFsbHksIHNldCB2YWx1ZSB0byAnLScgaWYgaW5wdXQgaXMgZW1wdHkNCiAgICAgICAgaW5wdXQudmFsdWUgPSAoY3VycmVudFhtbFR2SWQpID8gY3VycmVudFhtbFR2SWQgOiAnLSc7DQogICAgICAgIC8vIFdoZW4gaW5wdXQgaXMgZm9jdXNlZCwgcmVtb3ZlICctJyBmcm9tIGl0DQogICAgICAgIGlucHV0LmFkZEV2ZW50TGlzdGVuZXIoJ2ZvY3VzJywgKGV2dCkgPT4gew0KICAgICAgICAgICAgY29uc3QgdGFyZ2V0ID0gZXZ0LnRhcmdldDsNCiAgICAgICAgICAgIHRhcmdldC52YWx1ZSA9ICh0YXJnZXQudmFsdWUgPT09ICctJykgPyAnJyA6IHRhcmdldC52YWx1ZTsNCiAgICAgICAgfSk7DQogICAgICAgIC8vIFdoZW4gaW5wdXQgbG9zZSBmb2N1cyBvciB0YWtlIGEgdmFsdWUsIGlmIGl0J3MgZW1wdHksIHNldCB2YWx1ZSB0byAnLScNCiAgICAgICAgaW5wdXQuYWRkRXZlbnRMaXN0ZW5lcignYmx1cicsIHNldEZhbGxiYWNrVmFsdWUpOw0KICAgICAgICBpbnB1dC5hZGRFdmVudExpc3RlbmVyKCdjaGFuZ2UnLCBzZXRGYWxsYmFja1ZhbHVlKTsNCiAgICAgICAgZnVuY3Rpb24gc2V0RmFsbGJhY2tWYWx1ZShldnQpIHsNCiAgICAgICAgICAgIGNvbnN0IHRhcmdldCA9IGV2dC50YXJnZXQ7DQogICAgICAgICAgICB0YXJnZXQudmFsdWUgPSAodGFyZ2V0LnZhbHVlKSA/IHRhcmdldC52YWx1ZSA6ICctJzsNCiAgICAgICAgfQ0KICAgICAgICBjb250YWluZXIuYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICBjb25zdCBkYXRhbGlzdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RhdGFsaXN0Jyk7DQogICAgICAgIGNvbnN0IG9wdGlvbiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ29wdGlvbicpOw0KICAgICAgICBvcHRpb24uc2V0QXR0cmlidXRlKCd2YWx1ZScsICctJyk7DQogICAgICAgIG9wdGlvbi5pbm5lclRleHQgPSAnLSc7DQogICAgICAgIGRhdGFsaXN0LmFwcGVuZENoaWxkKG9wdGlvbik7DQogICAgICAgIGNvbnN0IGVwZyA9IFNFUlZFUlsneGVwZyddWyd4bWx0dk1hcCddW3htbFR2RmlsZV07DQogICAgICAgIGlmIChlcGcpIHsNCiAgICAgICAgICAgIGNvbnN0IHByb2dyYW1JZHMgPSBnZXRPd25PYmpQcm9wcyhlcGcpOw0KICAgICAgICAgICAgcHJvZ3JhbUlkcy5mb3JFYWNoKChwcm9ncmFtSWQpID0+IHsNCiAgICAgICAgICAgICAgICBjb25zdCBwcm9ncmFtID0gZXBnW3Byb2dyYW1JZF07DQogICAgICAgICAgICAgICAgaWYgKHByb2dyYW0uaGFzT3duUHJvcGVydHkoJ2Rpc3BsYXktbmFtZXMnKSkgew0KICAgICAgICAgICAgICAgICAgICBwcm9ncmFtWydkaXNwbGF5LW5hbWVzJ10uZm9yRWFjaCgoZGlzcGxheU5hbWUpID0+IHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IG9wdGlvbiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ29wdGlvbicpOw0KICAgICAgICAgICAgICAgICAgICAgICAgb3B0aW9uLnNldEF0dHJpYnV0ZSgndmFsdWUnLCBwcm9ncmFtSWQpOw0KICAgICAgICAgICAgICAgICAgICAgICAgb3B0aW9uLmlubmVyVGV4dCA9IGRpc3BsYXlOYW1lWydWYWx1ZSddOw0KICAgICAgICAgICAgICAgICAgICAgICAgZGF0YWxpc3QuYXBwZW5kQ2hpbGQob3B0aW9uKTsNCiAgICAgICAgICAgICAgICAgICAgfSk7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgICAgICAgICBjb25zdCBvcHRpb24gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdvcHRpb24nKTsNCiAgICAgICAgICAgICAgICAgICAgb3B0aW9uLnNldEF0dHJpYnV0ZSgndmFsdWUnLCBwcm9ncmFtSWQpOw0KICAgICAgICAgICAgICAgICAgICBvcHRpb24uaW5uZXJUZXh0ID0gJy0nOw0KICAgICAgICAgICAgICAgICAgICBkYXRhbGlzdC5hcHBlbmRDaGlsZChvcHRpb24pOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0pOw0KICAgICAgICB9DQogICAgICAgIGNvbnRhaW5lci5hcHBlbmRDaGlsZChkYXRhbGlzdCk7DQogICAgICAgIHJldHVybiBbY29udGFpbmVyLCBpbnB1dCwgZGF0YWxpc3RdOw0KICAgIH0NCn0NCmZ1bmN0aW9uIGdldFZhbHVlRnJvbVByb3ZpZGVyRmlsZShmaWxlLCBmaWxlVHlwZSwga2V5KSB7DQogICAgaWYgKGZpbGUgPT0gInhUZVZlIER1bW15Iikgew0KICAgICAgICByZXR1cm4gZmlsZTsNCiAgICB9DQogICAgbGV0IGZpbGVJRDsNCiAgICBsZXQgaW5kaWNhdG9yID0gZmlsZS5jaGFyQXQoMCk7DQogICAgc3dpdGNoIChpbmRpY2F0b3IpIHsNCiAgICAgICAgY2FzZSAiTSI6DQogICAgICAgICAgICBmaWxlVHlwZSA9ICJtM3UiOw0KICAgICAgICAgICAgZmlsZUlEID0gZmlsZTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJIIjoNCiAgICAgICAgICAgIGZpbGVUeXBlID0gImhkaHIiOw0KICAgICAgICAgICAgZmlsZUlEID0gZmlsZTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJYIjoNCiAgICAgICAgICAgIGZpbGVUeXBlID0gInhtbHR2IjsNCiAgICAgICAgICAgIGZpbGVJRCA9IGZpbGUuc3Vic3RyaW5nKDAsIGZpbGUubGFzdEluZGV4T2YoJy4nKSk7DQogICAgICAgICAgICBicmVhazsNCiAgICB9DQogICAgaWYgKFNFUlZFUlsic2V0dGluZ3MiXVsiZmlsZXMiXVtmaWxlVHlwZV0uaGFzT3duUHJvcGVydHkoZmlsZUlEKSA9PSB0cnVlKSB7DQogICAgICAgIHZhciBkYXRhID0gU0VSVkVSWyJzZXR0aW5ncyJdWyJmaWxlcyJdW2ZpbGVUeXBlXVtmaWxlSURdOw0KICAgICAgICByZXR1cm4gZGF0YVtrZXldOw0KICAgIH0NCiAgICByZXR1cm47DQp9DQpmdW5jdGlvbiBzZXRYbWx0dkNoYW5uZWwoZXBnTWFwSWQsIHhtbFR2RmlsZVNlbGVjdCkgew0KICAgIGNvbnN0IHhtbFR2ID0gbmV3IFhNTFRWRmlsZSgpOw0KICAgIGNvbnN0IG5ld1htbFR2RmlsZSA9IHhtbFR2RmlsZVNlbGVjdC52YWx1ZTsNCiAgICAvLyBSZW1vdmUgb2xkIFhNTFRWIElEIHNlbGVjdGlvbiBib3gNCiAgICBjb25zdCB4bWxUdklkUGlja2VyUGFyZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3htbHR2LWlkLXBpY2tlci1jb250YWluZXInKS5wYXJlbnRFbGVtZW50Ow0KICAgIHhtbFR2SWRQaWNrZXJQYXJlbnQuaW5uZXJIVE1MID0gJyc7DQogICAgLy8gQ3JlYXRlIG5ldyBYTUxUViBJRCBzZWxlY3Rpb24gYm94DQogICAgY29uc3QgdHZnSWQgPSBTRVJWRVJbJ3hlcGcnXVsnZXBnTWFwcGluZyddW2VwZ01hcElkXVsndHZnLWlkJ107DQogICAgY29uc3QgW3htbFR2SWRDb250YWluZXIsIHhtbFR2SWRJbnB1dCwgeG1sVHZJZERhdGFsaXN0XSA9IHhtbFR2Lm5ld1htbFR2SWRQaWNrZXIobmV3WG1sVHZGaWxlLCB0dmdJZCk7DQogICAgeG1sVHZJZENvbnRhaW5lci5zZXRBdHRyaWJ1dGUoJ2lkJywgJ3htbHR2LWlkLXBpY2tlci1jb250YWluZXInKTsNCiAgICB4bWxUdklkSW5wdXQuc2V0QXR0cmlidXRlKCdsaXN0JywgJ3htbHR2LWlkLXBpY2tlci1kYXRhbGlzdCcpOw0KICAgIHhtbFR2SWRJbnB1dC5zZXRBdHRyaWJ1dGUoJ25hbWUnLCAneC1tYXBwaW5nJyk7IC8vIFNob3VsZCBzdGF5IHgtbWFwcGluZyBhcyBpdCB3aWxsIGJlIHVzZWQgaW4gZG9uZVBvcHVwRGF0YSB0byBtYWtlIGEgc2VydmVyIHJlcXVlc3QNCiAgICB4bWxUdklkSW5wdXQuc2V0QXR0cmlidXRlKCdpZCcsICd4bWx0di1pZC1waWNrZXItaW5wdXQnKTsNCiAgICB4bWxUdklkSW5wdXQuc2V0QXR0cmlidXRlKCdvbmNoYW5nZScsIGBqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJzsgY2hlY2tYbWx0dkNoYW5uZWwoJyR7ZXBnTWFwSWR9JywgdGhpcy52YWx1ZSwgJyR7bmV3WG1sVHZGaWxlfScpO2ApOw0KICAgIHhtbFR2SWRJbnB1dC5jbGFzc0xpc3QuYWRkKCdjaGFuZ2VkJyk7DQogICAgeG1sVHZJZERhdGFsaXN0LnNldEF0dHJpYnV0ZSgnaWQnLCAneG1sdHYtaWQtcGlja2VyLWRhdGFsaXN0Jyk7DQogICAgLy8gQWRkIG5ldyBYTUxUViBJRCBzZWxlY3Rpb24gYm94IHRvIGl0J3MgcGFyZW50DQogICAgeG1sVHZJZFBpY2tlclBhcmVudC5hcHBlbmRDaGlsZCh4bWxUdklkQ29udGFpbmVyKTsNCiAgICBjaGVja1htbHR2Q2hhbm5lbChlcGdNYXBJZCwgeG1sVHZJZElucHV0LnZhbHVlLCBuZXdYbWxUdkZpbGUpOw0KfQ0KZnVuY3Rpb24gY2hlY2tYbWx0dkNoYW5uZWwoZXBnTWFwSWQsIG5ld1htbFR2SWQsIHhtbFR2RmlsZSkgew0KICAgIGNvbnN0IGNoYW5uZWxBY3RpdmVDYiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdhY3RpdmUnKTsNCiAgICBjb25zdCBjaGFubmVsQWN0aXZlID0gbmV3WG1sVHZJZCAhPSAnLSc7DQogICAgY2hhbm5lbEFjdGl2ZUNiLmNoZWNrZWQgPSBjaGFubmVsQWN0aXZlOw0KICAgIGNoYW5uZWxBY3RpdmVDYi5jbGFzc05hbWUgPSAnY2hhbmdlZCc7DQogICAgaWYgKHhtbFR2RmlsZSAhPSAneFRlVmUgRHVtbXknICYmIGNoYW5uZWxBY3RpdmUgPT0gdHJ1ZSkgew0KICAgICAgICBjaGFuZ2VDaGFubmVsTG9nbyhlcGdNYXBJZCk7DQogICAgICAgIHJldHVybjsNCiAgICB9DQogICAgaWYgKHhtbFR2RmlsZSA9PSAneFRlVmUgRHVtbXknKSB7DQogICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd1cGRhdGUtaWNvbicpLmNoZWNrZWQgPSBmYWxzZTsNCiAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3VwZGF0ZS1pY29uJykuY2xhc3NOYW1lID0gJ2NoYW5nZWQnOw0KICAgIH0NCn0NCmZ1bmN0aW9uIGNoYW5nZUNoYW5uZWxMb2dvKGVwZ01hcElkKSB7DQogICAgY29uc3QgY2hhbm5lbCA9IFNFUlZFUlsneGVwZyddWydlcGdNYXBwaW5nJ11bZXBnTWFwSWRdOw0KICAgIGNvbnN0IHhtbFR2RmlsZVNlbGVjdCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdwb3B1cC14bWx0dicpOw0KICAgIGNvbnN0IHhtbFR2RmlsZSA9IHhtbFR2RmlsZVNlbGVjdC5vcHRpb25zW3htbFR2RmlsZVNlbGVjdC5zZWxlY3RlZEluZGV4XS52YWx1ZTsNCiAgICBjb25zdCB4bWxUdklkSW5wdXQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgneG1sdHYtaWQtcGlja2VyLWlucHV0Jyk7DQogICAgY29uc3QgbmV3WG1sVHZJZCA9IHhtbFR2SWRJbnB1dC52YWx1ZTsNCiAgICBjb25zdCB1cGRhdGVMb2dvID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3VwZGF0ZS1pY29uJykuY2hlY2tlZDsNCiAgICBsZXQgbG9nbzsNCiAgICBpZiAodXBkYXRlTG9nbyA9PSB0cnVlICYmIHhtbFR2RmlsZSAhPSAneFRlVmUgRHVtbXknKSB7DQogICAgICAgIGlmIChTRVJWRVJbJ3hlcGcnXVsneG1sdHZNYXAnXVt4bWxUdkZpbGVdLmhhc093blByb3BlcnR5KG5ld1htbFR2SWQpKSB7DQogICAgICAgICAgICBsb2dvID0gU0VSVkVSWyd4ZXBnJ11bJ3htbHR2TWFwJ11beG1sVHZGaWxlXVtuZXdYbWxUdklkXVsnaWNvbiddOw0KICAgICAgICB9DQogICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgbG9nbyA9IGNoYW5uZWxbJ3R2Zy1sb2dvJ107DQogICAgICAgIH0NCiAgICAgICAgdmFyIGxvZ29JbnB1dCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjaGFubmVsLWljb24nKTsNCiAgICAgICAgbG9nb0lucHV0LnZhbHVlID0gbG9nbzsNCiAgICAgICAgaWYgKEJVTEtfRURJVCA9PSBmYWxzZSkgew0KICAgICAgICAgICAgbG9nb0lucHV0LmNsYXNzTmFtZSA9ICdjaGFuZ2VkJzsNCiAgICAgICAgfQ0KICAgIH0NCn0NCmZ1bmN0aW9uIHNhdmVQb3B1cERhdGEoZGF0YVR5cGUsIGlkLCByZW1vdmUsIG9wdGlvbikgew0KICAgIGlmIChkYXRhVHlwZSA9PSAibWFwcGluZyIpIHsNCiAgICAgICAgbGV0IGRhdGEgPSB7fTsNCiAgICAgICAgbGV0IGNtZCA9ICJzYXZlRXBnTWFwcGluZyI7DQogICAgICAgIGRhdGFbImVwZ01hcHBpbmciXSA9IFNFUlZFUlsieGVwZyJdWyJlcGdNYXBwaW5nIl07DQogICAgICAgIGxldCBzZXJ2ZXIgPSBuZXcgU2VydmVyKGNtZCk7DQogICAgICAgIHNlcnZlci5yZXF1ZXN0KGRhdGEpOw0KICAgICAgICBkZWxldGUgVU5ET1siZXBnTWFwcGluZyJdOw0KICAgICAgICByZXR1cm47DQogICAgfQ0KICAgIGxldCBkaXYgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicG9wdXAtY3VzdG9tIik7DQogICAgbGV0IGlucHV0cyA9IGRpdi5nZXRFbGVtZW50c0J5VGFnTmFtZSgiVEFCTEUiKVswXS5nZXRFbGVtZW50c0J5VGFnTmFtZSgiSU5QVVQiKTsNCiAgICBsZXQgc2VsZWN0cyA9IGRpdi5nZXRFbGVtZW50c0J5VGFnTmFtZSgiVEFCTEUiKVswXS5nZXRFbGVtZW50c0J5VGFnTmFtZSgiU0VMRUNUIik7DQogICAgbGV0IGlucHV0ID0ge307DQogICAgbGV0IGNvbmZpcm1Nc2c7DQogICAgZm9yIChsZXQgaSA9IDA7IGkgPCBzZWxlY3RzLmxlbmd0aDsgaSsrKSB7DQogICAgICAgIHZhciBuYW1lOw0KICAgICAgICBuYW1lID0gc2VsZWN0c1tpXS5uYW1lOw0KICAgICAgICB2YXIgdmFsdWUgPSBzZWxlY3RzW2ldLnZhbHVlOw0KICAgICAgICBzd2l0Y2ggKG5hbWUpIHsNCiAgICAgICAgICAgIGNhc2UgInR1bmVyIjoNCiAgICAgICAgICAgICAgICBpbnB1dFtuYW1lXSA9IHBhcnNlSW50KHZhbHVlKTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICAgICAgaW5wdXRbbmFtZV0gPSB2YWx1ZTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgfQ0KICAgIH0NCiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGlucHV0cy5sZW5ndGg7IGkrKykgew0KICAgICAgICBzd2l0Y2ggKGlucHV0c1tpXS50eXBlKSB7DQogICAgICAgICAgICBjYXNlICJjaGVja2JveCI6DQogICAgICAgICAgICAgICAgbmFtZSA9IGlucHV0c1tpXS5uYW1lOw0KICAgICAgICAgICAgICAgIGlucHV0W25hbWVdID0gaW5wdXRzW2ldLmNoZWNrZWQ7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ0ZXh0IjoNCiAgICAgICAgICAgIGNhc2UgImhpZGRlbiI6DQogICAgICAgICAgICBjYXNlICJwYXNzd29yZCI6DQogICAgICAgICAgICAgICAgbmFtZSA9IGlucHV0c1tpXS5uYW1lOw0KICAgICAgICAgICAgICAgIHN3aXRjaCAobmFtZSkgew0KICAgICAgICAgICAgICAgICAgICBjYXNlICJ0dW5lciI6DQogICAgICAgICAgICAgICAgICAgICAgICBpbnB1dFtuYW1lXSA9IHBhcnNlSW50KGlucHV0c1tpXS52YWx1ZSk7DQogICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgICAgICAgICAgICAgIGlucHV0W25hbWVdID0gaW5wdXRzW2ldLnZhbHVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICB9DQogICAgfQ0KICAgIGxldCBkYXRhID0ge307DQogICAgbGV0IGNtZDsNCiAgICBpZiAocmVtb3ZlID09IHRydWUpIHsNCiAgICAgICAgaW5wdXRbImRlbGV0ZSJdID0gdHJ1ZTsNCiAgICB9DQogICAgc3dpdGNoIChkYXRhVHlwZSkgew0KICAgICAgICBjYXNlICJ1c2VycyI6DQogICAgICAgICAgICBjb25maXJtTXNnID0gIkRlbGV0ZSB0aGlzIHVzZXI/IjsNCiAgICAgICAgICAgIGlmIChpZCA9PSAiLSIpIHsNCiAgICAgICAgICAgICAgICBjbWQgPSAic2F2ZU5ld1VzZXIiOw0KICAgICAgICAgICAgICAgIGRhdGFbInVzZXJEYXRhIl0gPSBpbnB1dDsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgICAgIGNtZCA9ICJzYXZlVXNlckRhdGEiOw0KICAgICAgICAgICAgICAgIGxldCBkID0ge307DQogICAgICAgICAgICAgICAgZFtpZF0gPSBpbnB1dDsNCiAgICAgICAgICAgICAgICBkYXRhWyJ1c2VyRGF0YSJdID0gZDsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJtM3UiOg0KICAgICAgICAgICAgY29uZmlybU1zZyA9ICJEZWxldGUgdGhpcyBwbGF5bGlzdD8iOw0KICAgICAgICAgICAgc3dpdGNoIChvcHRpb24pIHsNCiAgICAgICAgICAgICAgICAvLyBQb3B1cDogU2F2ZQ0KICAgICAgICAgICAgICAgIGNhc2UgMDoNCiAgICAgICAgICAgICAgICAgICAgY21kID0gInNhdmVGaWxlc00zVSI7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIC8vIFBvcHVwOiBVcGRhdGUNCiAgICAgICAgICAgICAgICBjYXNlIDE6DQogICAgICAgICAgICAgICAgICAgIGNtZCA9ICJ1cGRhdGVGaWxlTTNVIjsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBkYXRhWyJmaWxlcyJdID0ge307DQogICAgICAgICAgICBkYXRhWyJmaWxlcyJdW2RhdGFUeXBlXSA9IHt9Ow0KICAgICAgICAgICAgZGF0YVsiZmlsZXMiXVtkYXRhVHlwZV1baWRdID0gaW5wdXQ7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSAiaGRociI6DQogICAgICAgICAgICBjb25maXJtTXNnID0gIkRlbGV0ZSB0aGlzIEhESG9tZVJ1biB0dW5lcj8iOw0KICAgICAgICAgICAgc3dpdGNoIChvcHRpb24pIHsNCiAgICAgICAgICAgICAgICAvLyBQb3B1cDogU2F2ZQ0KICAgICAgICAgICAgICAgIGNhc2UgMDoNCiAgICAgICAgICAgICAgICAgICAgY21kID0gInNhdmVGaWxlc0hESFIiOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICAvLyBQb3B1cDogVXBkYXRlDQogICAgICAgICAgICAgICAgY2FzZSAxOg0KICAgICAgICAgICAgICAgICAgICBjbWQgPSAidXBkYXRlRmlsZUhESFIiOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGRhdGFbImZpbGVzIl0gPSB7fTsNCiAgICAgICAgICAgIGRhdGFbImZpbGVzIl1bZGF0YVR5cGVdID0ge307DQogICAgICAgICAgICBkYXRhWyJmaWxlcyJdW2RhdGFUeXBlXVtpZF0gPSBpbnB1dDsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJ4bWx0diI6DQogICAgICAgICAgICBjb25maXJtTXNnID0gIkRlbGV0ZSB0aGlzIFhNTFRWIGZpbGU/IjsNCiAgICAgICAgICAgIHN3aXRjaCAob3B0aW9uKSB7DQogICAgICAgICAgICAgICAgLy8gUG9wdXA6IFNhdmUNCiAgICAgICAgICAgICAgICBjYXNlIDA6DQogICAgICAgICAgICAgICAgICAgIGNtZCA9ICJzYXZlRmlsZXNYTUxUViI7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIC8vIFBvcHVwOiBVcGRhdGUNCiAgICAgICAgICAgICAgICBjYXNlIDE6DQogICAgICAgICAgICAgICAgICAgIGNtZCA9ICJ1cGRhdGVGaWxlWE1MVFYiOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGRhdGFbImZpbGVzIl0gPSB7fTsNCiAgICAgICAgICAgIGRhdGFbImZpbGVzIl1bZGF0YVR5cGVdID0ge307DQogICAgICAgICAgICBkYXRhWyJmaWxlcyJdW2RhdGFUeXBlXVtpZF0gPSBpbnB1dDsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJmaWx0ZXIiOg0KICAgICAgICAgICAgY29uZmlybU1zZyA9ICJEZWxldGUgdGhpcyBmaWx0ZXI/IjsNCiAgICAgICAgICAgIGNtZCA9ICJzYXZlRmlsdGVyIjsNCiAgICAgICAgICAgIGRhdGFbImZpbHRlciJdID0ge307DQogICAgICAgICAgICBkYXRhWyJmaWx0ZXIiXVtpZF0gPSBpbnB1dDsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBkZWZhdWx0Og0KICAgICAgICAgICAgcmV0dXJuOw0KICAgIH0NCiAgICBpZiAocmVtb3ZlID09IHRydWUpIHsNCiAgICAgICAgaWYgKCFjb25maXJtKGNvbmZpcm1Nc2cpKSB7DQogICAgICAgICAgICBzaG93RWxlbWVudCgicG9wdXAiLCBmYWxzZSk7DQogICAgICAgICAgICByZXR1cm47DQogICAgICAgIH0NCiAgICB9DQogICAgbGV0IHNlcnZlciA9IG5ldyBTZXJ2ZXIoY21kKTsNCiAgICBzZXJ2ZXIucmVxdWVzdChkYXRhKTsNCn0NCmZ1bmN0aW9uIGRvbmVQb3B1cERhdGEoZGF0YVR5cGUsIGlkc1N0cikgew0KICAgIGxldCBpZHMgPSBpZHNTdHIuc3BsaXQoJywnKTsNCiAgICBsZXQgZGl2ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInBvcHVwLWN1c3RvbSIpOw0KICAgIGxldCBpbnB1dHMgPSBkaXYuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSgiY2hhbmdlZCIpOw0KICAgIGlkcy5mb3JFYWNoKGlkID0+IHsNCiAgICAgICAgbGV0IGlucHV0Ow0KICAgICAgICBpbnB1dCA9IFNFUlZFUlsieGVwZyJdWyJlcGdNYXBwaW5nIl1baWRdOw0KICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGlucHV0cy5sZW5ndGg7IGkrKykgew0KICAgICAgICAgICAgbGV0IG5hbWU7DQogICAgICAgICAgICBsZXQgdmFsdWU7DQogICAgICAgICAgICBzd2l0Y2ggKGlucHV0c1tpXS50YWdOYW1lKSB7DQogICAgICAgICAgICAgICAgY2FzZSAiSU5QVVQiOg0KICAgICAgICAgICAgICAgICAgICBzd2l0Y2ggKGlucHV0c1tpXS50eXBlKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBjYXNlICJjaGVja2JveCI6DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZSA9IGlucHV0c1tpXS5uYW1lOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlID0gaW5wdXRzW2ldLmNoZWNrZWQ7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5wdXRbbmFtZV0gPSB2YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgInRleHQiOg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWUgPSBpbnB1dHNbaV0ubmFtZTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IGlucHV0c1tpXS52YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnB1dFtuYW1lXSA9IHZhbHVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgIlNFTEVDVCI6DQogICAgICAgICAgICAgICAgICAgIG5hbWUgPSBpbnB1dHNbaV0ubmFtZTsNCiAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSBpbnB1dHNbaV0udmFsdWU7DQogICAgICAgICAgICAgICAgICAgIGlucHV0W25hbWVdID0gdmFsdWU7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgc3dpdGNoIChuYW1lKSB7DQogICAgICAgICAgICAgICAgY2FzZSAidHZnLWxvZ28iOg0KICAgICAgICAgICAgICAgICAgICAvLyhkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkuY2hpbGROb2Rlc1syXS5maXJzdENoaWxkIGFzIEhUTUxFbGVtZW50KS5zZXRBdHRyaWJ1dGUoInNyYyIsIHZhbHVlKQ0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBjYXNlICJ4LW5hbWUiOg0KICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkuY2hpbGROb2Rlc1szXS5maXJzdENoaWxkLmlubmVySFRNTCA9IHZhbHVlOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBjYXNlICJ4LWNhdGVnb3J5IjoNCiAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpLmNoaWxkTm9kZXNbM10uZmlyc3RDaGlsZC5jbGFzc05hbWUgPSB2YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAidXBkYXRlLWNoYW5uZWwtbmFtZS1yZWdleCI6DQogICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5jaGlsZE5vZGVzWzRdLmZpcnN0Q2hpbGQuaW5uZXJIVE1MID0gdmFsdWU7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgIngtZ3JvdXAtdGl0bGUiOg0KICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkuY2hpbGROb2Rlc1s2XS5maXJzdENoaWxkLmlubmVySFRNTCA9IHZhbHVlOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBjYXNlICJ4LXhtbHR2LWZpbGUiOg0KICAgICAgICAgICAgICAgICAgICBpZiAodmFsdWUgIT0gInhUZVZlIER1bW15IiAmJiB2YWx1ZSAhPSAiLSIpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlID0gZ2V0VmFsdWVGcm9tUHJvdmlkZXJGaWxlKHZhbHVlLCAieG1sdHYiLCAibmFtZSIpOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIGlmICh2YWx1ZSA9PSAiLSIpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGlucHV0WyJ4LWFjdGl2ZSJdID0gZmFsc2U7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpLmNoaWxkTm9kZXNbN10uZmlyc3RDaGlsZC5pbm5lckhUTUwgPSB2YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAieC1tYXBwaW5nIjoNCiAgICAgICAgICAgICAgICAgICAgaWYgKHZhbHVlID09ICItIikgew0KICAgICAgICAgICAgICAgICAgICAgICAgaW5wdXRbIngtYWN0aXZlIl0gPSBmYWxzZTsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkuY2hpbGROb2Rlc1s4XS5maXJzdENoaWxkLmlubmVySFRNTCA9IHZhbHVlOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBjYXNlICJ4LXRpbWVzaGlmdCI6DQogICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5jaGlsZE5vZGVzWzldLmZpcnN0Q2hpbGQuaW5uZXJIVE1MID0gdmFsdWU7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICB9DQogICAgICAgICAgICBjcmVhdGVTZWFyY2hPYmooKTsNCiAgICAgICAgICAgIHNlYXJjaEluTWFwcGluZygpOw0KICAgICAgICB9DQogICAgICAgIGlmIChpbnB1dFsieC1hY3RpdmUiXSA9PSBmYWxzZSkgew0KICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpLmNsYXNzTmFtZSA9ICJub3RBY3RpdmVFUEciOw0KICAgICAgICB9DQogICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpLmNsYXNzTmFtZSA9ICJhY3RpdmVFUEciOw0KICAgICAgICB9DQogICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5jaGlsZE5vZGVzWzJdLmZpcnN0Q2hpbGQuc2V0QXR0cmlidXRlKCJzcmMiLCBpbnB1dFsidHZnLWxvZ28iXSk7DQogICAgfSk7DQogICAgc2hvd0VsZW1lbnQoInBvcHVwIiwgZmFsc2UpOw0KICAgIHJldHVybjsNCn0NCmZ1bmN0aW9uIHNob3dQcmV2aWV3KGVsZW1lbnQpIHsNCiAgICBsZXQgZGl2ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm15U3RyZWFtc0JveCIpOw0KICAgIHN3aXRjaCAoZWxlbWVudCkgew0KICAgICAgICBjYXNlIGZhbHNlOg0KICAgICAgICAgICAgZGl2LmNsYXNzTmFtZSA9ICJub3RWaXNpYmxlIjsNCiAgICAgICAgICAgIHJldHVybjsNCiAgICB9DQogICAgbGV0IHN0cmVhbXMgPSBbImFjdGl2ZVN0cmVhbXMiLCAiaW5hY3RpdmVTdHJlYW1zIl07DQogICAgc3RyZWFtcy5mb3JFYWNoKHByZXZpZXcgPT4gew0KICAgICAgICBsZXQgdGFibGUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChwcmV2aWV3KTsNCiAgICAgICAgdGFibGUuaW5uZXJIVE1MID0gIiI7DQogICAgICAgIGxldCBvYmogPSBTRVJWRVJbImRhdGEiXVsiU3RyZWFtUHJldmlld1VJIl1bcHJldmlld107DQogICAgICAgIG9iai5mb3JFYWNoKGNoYW5uZWwgPT4gew0KICAgICAgICAgICAgbGV0IHRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVFIiKTsNCiAgICAgICAgICAgIGxldCB0ZEtleSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICBsZXQgdGRWYWwgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgdGRLZXkuY2xhc3NOYW1lID0gInRkS2V5IjsNCiAgICAgICAgICAgIHRkVmFsLmNsYXNzTmFtZSA9ICJ0ZFZhbCI7DQogICAgICAgICAgICBzd2l0Y2ggKHByZXZpZXcpIHsNCiAgICAgICAgICAgICAgICBjYXNlICJhY3RpdmVTdHJlYW1zIjoNCiAgICAgICAgICAgICAgICAgICAgdGRLZXkuaW5uZXJUZXh0ID0gIkNoYW5uZWw6ICgrKSI7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgImluYWN0aXZlU3RyZWFtcyI6DQogICAgICAgICAgICAgICAgICAgIHRkS2V5LmlubmVyVGV4dCA9ICJDaGFubmVsOiAoLSkiOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIHRkVmFsLmlubmVyVGV4dCA9IGNoYW5uZWw7DQogICAgICAgICAgICB0ci5hcHBlbmRDaGlsZCh0ZEtleSk7DQogICAgICAgICAgICB0ci5hcHBlbmRDaGlsZCh0ZFZhbCk7DQogICAgICAgICAgICB0YWJsZS5hcHBlbmRDaGlsZCh0cik7DQogICAgICAgIH0pOw0KICAgIH0pOw0KICAgIHNob3dFbGVtZW50KCJsb2FkaW5nIiwgZmFsc2UpOw0KICAgIGRpdi5jbGFzc05hbWUgPSAidmlzaWJsZSI7DQogICAgcmV0dXJuOw0KfQ0K" webUI["html/js/network_ts.js"] = "Y2xhc3MgU2VydmVyIHsNCiAgICBjb25zdHJ1Y3RvcihjbWQpIHsNCiAgICAgICAgdGhpcy5jbWQgPSBjbWQ7DQogICAgfQ0KICAgIHJlcXVlc3QoZGF0YSkgew0KICAgICAgICBpZiAoU0VSVkVSX0NPTk5FQ1RJT04gPT0gdHJ1ZSkgew0KICAgICAgICAgICAgcmV0dXJuOw0KICAgICAgICB9DQogICAgICAgIFNFUlZFUl9DT05ORUNUSU9OID0gdHJ1ZTsNCiAgICAgICAgaWYgKHRoaXMuY21kICE9ICJ1cGRhdGVMb2ciKSB7DQogICAgICAgICAgICBzaG93RWxlbWVudCgibG9hZGluZyIsIHRydWUpOw0KICAgICAgICAgICAgVU5ETyA9IG5ldyBPYmplY3QoKTsNCiAgICAgICAgfQ0KICAgICAgICBzd2l0Y2ggKHdpbmRvdy5sb2NhdGlvbi5wcm90b2NvbCkgew0KICAgICAgICAgICAgY2FzZSAiaHR0cDoiOg0KICAgICAgICAgICAgICAgIHRoaXMucHJvdG9jb2wgPSAid3M6Ly8iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiaHR0cHM6IjoNCiAgICAgICAgICAgICAgICB0aGlzLnByb3RvY29sID0gIndzczovLyI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIH0NCiAgICAgICAgdmFyIHVybCA9IHRoaXMucHJvdG9jb2wgKyB3aW5kb3cubG9jYXRpb24uaG9zdG5hbWUgKyAiOiIgKyB3aW5kb3cubG9jYXRpb24ucG9ydCArICIvZGF0YS8iICsgIj9Ub2tlbj0iICsgZ2V0Q29va2llKCJUb2tlbiIpOw0KICAgICAgICBkYXRhWyJjbWQiXSA9IHRoaXMuY21kOw0KICAgICAgICB2YXIgd3MgPSBuZXcgV2ViU29ja2V0KHVybCk7DQogICAgICAgIHdzLm9ub3BlbiA9IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgICAgIFdTX0FWQUlMQUJMRSA9IHRydWU7DQogICAgICAgICAgICB0aGlzLnNlbmQoSlNPTi5zdHJpbmdpZnkoZGF0YSkpOw0KICAgICAgICB9Ow0KICAgICAgICB3cy5vbmVycm9yID0gZnVuY3Rpb24gKHdzRXJyRXZ0KSB7DQogICAgICAgICAgICBjb25zb2xlLmxvZygiTm8gd2Vic29ja2V0IGNvbm5lY3Rpb24gdG8geFRlVmUgY291bGQgYmUgZXN0YWJsaXNoZWQuIENoZWNrIHlvdXIgbmV0d29yayBjb25maWd1cmF0aW9uLiIpOw0KICAgICAgICAgICAgU0VSVkVSX0NPTk5FQ1RJT04gPSBmYWxzZTsNCiAgICAgICAgICAgIGlmIChXU19BVkFJTEFCTEUgPT0gZmFsc2UpIHsNCiAgICAgICAgICAgICAgICBhbGVydCgiTm8gd2Vic29ja2V0IGNvbm5lY3Rpb24gdG8geFRlVmUgY291bGQgYmUgZXN0YWJsaXNoZWQuIENoZWNrIHlvdXIgbmV0d29yayBjb25maWd1cmF0aW9uLiIpOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9Ow0KICAgICAgICB3cy5vbm1lc3NhZ2UgPSBmdW5jdGlvbiAod3NNZXNzYWdlRXZ0KSB7DQogICAgICAgICAgICBTRVJWRVJfQ09OTkVDVElPTiA9IGZhbHNlOw0KICAgICAgICAgICAgc2hvd0VsZW1lbnQoImxvYWRpbmciLCBmYWxzZSk7DQogICAgICAgICAgICBjb25zdCByZXNwb25zZSA9IEpTT04ucGFyc2Uod3NNZXNzYWdlRXZ0LmRhdGEpOw0KICAgICAgICAgICAgaWYgKHJlc3BvbnNlLmhhc093blByb3BlcnR5KCJ0b2tlbiIpKSB7DQogICAgICAgICAgICAgICAgZG9jdW1lbnQuY29va2llID0gIlRva2VuPSIgKyByZXNwb25zZVsidG9rZW4iXTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGlmIChyZXNwb25zZVsic3RhdHVzIl0gPT0gZmFsc2UpIHsNCiAgICAgICAgICAgICAgICBhbGVydChyZXNwb25zZVsiZXJyIl0pOw0KICAgICAgICAgICAgICAgIHJldHVybjsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGlmIChyZXNwb25zZS5oYXNPd25Qcm9wZXJ0eSgnb3BlbkxpbmsnKSkgew0KICAgICAgICAgICAgICAgIHdpbmRvdy5sb2NhdGlvbiA9IHJlc3BvbnNlWydvcGVuTGluayddOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgaWYgKHJlc3BvbnNlLmhhc093blByb3BlcnR5KCJyZWxvYWQiKSkgew0KICAgICAgICAgICAgICAgIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGlmIChyZXNwb25zZS5oYXNPd25Qcm9wZXJ0eSgiYWxlcnQiKSkgew0KICAgICAgICAgICAgICAgIGFsZXJ0KHJlc3BvbnNlWyJhbGVydCJdKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGlmIChyZXNwb25zZS5oYXNPd25Qcm9wZXJ0eSgibG9nb1VSTCIpKSB7DQogICAgICAgICAgICAgICAgdmFyIGRpdiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjaGFubmVsLWljb24iKTsNCiAgICAgICAgICAgICAgICBkaXYudmFsdWUgPSByZXNwb25zZVsibG9nb1VSTCJdOw0KICAgICAgICAgICAgICAgIGRpdi5jbGFzc05hbWUgPSAiY2hhbmdlZCI7DQogICAgICAgICAgICAgICAgcmV0dXJuOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgc3dpdGNoIChkYXRhWyJjbWQiXSkgew0KICAgICAgICAgICAgICAgIGNhc2UgInVwZGF0ZUxvZyI6DQogICAgICAgICAgICAgICAgICAgIFNFUlZFUlsibG9nIl0gPSByZXNwb25zZVsibG9nIl07DQogICAgICAgICAgICAgICAgICAgIGlmIChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29udGVudF9sb2ciKSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgc2hvd0xvZ3MoZmFsc2UpOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIHJldHVybjsNCiAgICAgICAgICAgICAgICBkZWZhdWx0Og0KICAgICAgICAgICAgICAgICAgICBTRVJWRVIgPSBuZXcgT2JqZWN0KCk7DQogICAgICAgICAgICAgICAgICAgIFNFUlZFUiA9IHJlc3BvbnNlOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGlmIChyZXNwb25zZS5oYXNPd25Qcm9wZXJ0eSgib3Blbk1lbnUiKSkgew0KICAgICAgICAgICAgICAgIHZhciBtZW51ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQocmVzcG9uc2VbIm9wZW5NZW51Il0pOw0KICAgICAgICAgICAgICAgIG1lbnUuY2xpY2soKTsNCiAgICAgICAgICAgICAgICBzaG93RWxlbWVudCgicG9wdXAiLCBmYWxzZSk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBpZiAocmVzcG9uc2UuaGFzT3duUHJvcGVydHkoInJlbG9hZCIpKSB7DQogICAgICAgICAgICAgICAgbG9jYXRpb24ucmVsb2FkKCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBpZiAocmVzcG9uc2UuaGFzT3duUHJvcGVydHkoIndpemFyZCIpKSB7DQogICAgICAgICAgICAgICAgY3JlYXRlTGF5b3V0KCk7DQogICAgICAgICAgICAgICAgY29uZmlndXJhdGlvbldpemFyZFtyZXNwb25zZVsid2l6YXJkIl1dLmNyZWF0ZVdpemFyZCgpOw0KICAgICAgICAgICAgICAgIHJldHVybjsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGNyZWF0ZUxheW91dCgpOw0KICAgICAgICB9Ow0KICAgIH0NCn0NCmZ1bmN0aW9uIGdldENvb2tpZShuYW1lKSB7DQogICAgdmFyIHZhbHVlID0gIjsgIiArIGRvY3VtZW50LmNvb2tpZTsNCiAgICB2YXIgcGFydHMgPSB2YWx1ZS5zcGxpdCgiOyAiICsgbmFtZSArICI9Iik7DQogICAgaWYgKHBhcnRzLmxlbmd0aCA9PSAyKSB7DQogICAgICAgIHJldHVybiBwYXJ0cy5wb3AoKS5zcGxpdCgiOyIpLnNoaWZ0KCk7DQogICAgfQ0KfQ0K" - webUI["html/js/settings_ts.js"] = "Y2xhc3MgU2V0dGluZ3NDYXRlZ29yeSB7DQogICAgY29uc3RydWN0b3IoKSB7DQogICAgICAgIHRoaXMuRG9jdW1lbnRJRCA9ICJjb250ZW50X3NldHRpbmdzIjsNCiAgICB9DQogICAgY3JlYXRlQ2F0ZWdvcnlIZWFkbGluZSh2YWx1ZSkgew0KICAgICAgICB2YXIgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIkg0Iik7DQogICAgICAgIGVsZW1lbnQuaW5uZXJIVE1MID0gdmFsdWU7DQogICAgICAgIHJldHVybiBlbGVtZW50Ow0KICAgIH0NCiAgICBjcmVhdGVIUigpIHsNCiAgICAgICAgdmFyIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJIUiIpOw0KICAgICAgICByZXR1cm4gZWxlbWVudDsNCiAgICB9DQogICAgY3JlYXRlU2V0dGluZ3Moc2V0dGluZ3NLZXkpIHsNCiAgICAgICAgdmFyIHNldHRpbmcgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJUUiIpOw0KICAgICAgICB2YXIgY29udGVudCA9IG5ldyBQb3B1cENvbnRlbnQoKTsNCiAgICAgICAgdmFyIGRhdGEgPSBTRVJWRVJbInNldHRpbmdzIl1bc2V0dGluZ3NLZXldOw0KICAgICAgICBzd2l0Y2ggKHNldHRpbmdzS2V5KSB7DQogICAgICAgICAgICAvLyBUZXh0IGlucHV0cw0KICAgICAgICAgICAgY2FzZSAidXBkYXRlIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLnVwZGF0ZS50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsICJ1cGRhdGUiLCBkYXRhLnRvU3RyaW5nKCkpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3suc2V0dGluZ3MudXBkYXRlLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJiYWNrdXAucGF0aCI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5iYWNrdXBQYXRoLnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgImJhY2t1cC5wYXRoIiwgZGF0YSk7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5zZXR0aW5ncy5iYWNrdXBQYXRoLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ0ZW1wLnBhdGgiOg0KICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MudGVtcFBhdGgudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCAidGVtcC5wYXRoIiwgZGF0YSk7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5zZXR0aW5ncy50bXBQYXRoLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ1c2VyLmFnZW50IjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLnVzZXJBZ2VudC50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsICJ1c2VyLmFnZW50IiwgZGF0YSk7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5zZXR0aW5ncy51c2VyQWdlbnQucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImJ1ZmZlci50aW1lb3V0IjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmJ1ZmZlclRpbWVvdXQudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCAiYnVmZmVyLnRpbWVvdXQiLCBkYXRhKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnNldHRpbmdzLmJ1ZmZlclRpbWVvdXQucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImZmbXBlZy5wYXRoIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmZmbXBlZ1BhdGgudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCAiZmZtcGVnLnBhdGgiLCBkYXRhKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnNldHRpbmdzLmZmbXBlZ1BhdGgucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImZmbXBlZy5vcHRpb25zIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmZmbXBlZ09wdGlvbnMudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCAiZmZtcGVnLm9wdGlvbnMiLCBkYXRhKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnNldHRpbmdzLmZmbXBlZ09wdGlvbnMucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInZsYy5wYXRoIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLnZsY1BhdGgudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCAidmxjLnBhdGgiLCBkYXRhKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnNldHRpbmdzLnZsY1BhdGgucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInZsYy5vcHRpb25zIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLnZsY09wdGlvbnMudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCAidmxjLm9wdGlvbnMiLCBkYXRhKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnNldHRpbmdzLnZsY09wdGlvbnMucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIC8vIENoZWNrYm94ZXMNCiAgICAgICAgICAgIGNhc2UgInRsc01vZGUiOg0KICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MudGxzTW9kZS50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChzZXR0aW5nc0tleSk7DQogICAgICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGE7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiZGlzYWxsb3dVUkxEdXBsaWNhdGVzIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmRpc2FsbG93VVJMRHVwbGljYXRlcy50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChzZXR0aW5nc0tleSk7DQogICAgICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGE7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiYXV0aGVudGljYXRpb24ud2ViIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmF1dGhlbnRpY2F0aW9uV0VCLnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KHNldHRpbmdzS2V5KTsNCiAgICAgICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJhdXRoZW50aWNhdGlvbi5wbXMiOg0KICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MuYXV0aGVudGljYXRpb25QTVMudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goc2V0dGluZ3NLZXkpOw0KICAgICAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImF1dGhlbnRpY2F0aW9uLm0zdSI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5hdXRoZW50aWNhdGlvbk0zVS50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChzZXR0aW5nc0tleSk7DQogICAgICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGE7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiYXV0aGVudGljYXRpb24ueG1sIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmF1dGhlbnRpY2F0aW9uWE1MLnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KHNldHRpbmdzS2V5KTsNCiAgICAgICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJhdXRoZW50aWNhdGlvbi5hcGkiOg0KICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MuYXV0aGVudGljYXRpb25BUEkudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goc2V0dGluZ3NLZXkpOw0KICAgICAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImZpbGVzLnVwZGF0ZSI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5maWxlc1VwZGF0ZS50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChzZXR0aW5nc0tleSk7DQogICAgICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGE7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiY2FjaGUuaW1hZ2VzIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmNhY2hlSW1hZ2VzLnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KHNldHRpbmdzS2V5KTsNCiAgICAgICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ4ZXBnLnJlcGxhY2UubWlzc2luZy5pbWFnZXMiOg0KICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MucmVwbGFjZUVtcHR5SW1hZ2VzLnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KHNldHRpbmdzS2V5KTsNCiAgICAgICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJzdG9yZUJ1ZmZlckluUkFNIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLnN0b3JlQnVmZmVySW5SQU0udGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goc2V0dGluZ3NLZXkpOw0KICAgICAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInh0ZXZlQXV0b1VwZGF0ZSI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy54dGV2ZUF1dG9VcGRhdGUudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goc2V0dGluZ3NLZXkpOw0KICAgICAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImFwaSI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5hcGkudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goc2V0dGluZ3NLZXkpOw0KICAgICAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIC8vIFNlbGVjdA0KICAgICAgICAgICAgY2FzZSAiaG9zdElQIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmhvc3RJUC50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIHRleHQgPSBTRVJWRVJbImlwQWRkcmVzc2VzVjRIb3N0Il07DQogICAgICAgICAgICAgICAgdmFyIHZhbHVlcyA9IFNFUlZFUlsiaXBBZGRyZXNzZXNWNEhvc3QiXTsNCiAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCBkYXRhLCBzZXR0aW5nc0tleSk7DQogICAgICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKHNlbGVjdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ0dW5lciI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy50dW5lci50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIHRleHQgPSBuZXcgQXJyYXkoKTsNCiAgICAgICAgICAgICAgICB2YXIgdmFsdWVzID0gbmV3IEFycmF5KCk7DQogICAgICAgICAgICAgICAgZm9yICh2YXIgaSA9IDE7IGkgPD0gMTAwOyBpKyspIHsNCiAgICAgICAgICAgICAgICAgICAgdGV4dC5wdXNoKGkpOw0KICAgICAgICAgICAgICAgICAgICB2YWx1ZXMucHVzaChpKTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgdmFyIHNlbGVjdCA9IGNvbnRlbnQuY3JlYXRlU2VsZWN0KHRleHQsIHZhbHVlcywgZGF0YSwgc2V0dGluZ3NLZXkpOw0KICAgICAgICAgICAgICAgIHNlbGVjdC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChzZWxlY3QpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiZXBnU291cmNlIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmVwZ1NvdXJjZS50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIHRleHQgPSBbIlBNUyIsICJYRVBHIl07DQogICAgICAgICAgICAgICAgdmFyIHZhbHVlcyA9IFsiUE1TIiwgIlhFUEciXTsNCiAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCBkYXRhLCBzZXR0aW5nc0tleSk7DQogICAgICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKHNlbGVjdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJkZWZhdWx0TWlzc2luZ0VQRyI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5kZWZhdWx0TWlzc2luZ0VQRy50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIHRleHQgPSBbDQogICAgICAgICAgICAgICAgICAgICItIiwgIjMwIE1pbnV0ZXMgKDMwX01pbnV0ZXMpIiwgIjYwIE1pbnV0ZXMgKDYwX01pbnV0ZXMpIiwgIjkwIE1pbnV0ZXMgKDkwX01pbnV0ZXMpIiwNCiAgICAgICAgICAgICAgICAgICAgIjEyMCBNaW51dGVzICgxMjBfTWludXRlcykiLCAiMTgwIE1pbnV0ZXMgKDE4MF9NaW51dGVzKSIsICIyNDAgTWludXRlcyAoMjQwX01pbnV0ZXMpIiwgIjM2MCBNaW51dGVzICgzNjBfTWludXRlcykiDQogICAgICAgICAgICAgICAgXTsNCiAgICAgICAgICAgICAgICB2YXIgdmFsdWVzID0gWw0KICAgICAgICAgICAgICAgICAgICAiLSIsICIzMF9NaW51dGVzIiwgIjYwX01pbnV0ZXMiLCAiOTBfTWludXRlcyIsICIxMjBfTWludXRlcyIsICIxODBfTWludXRlcyIsICIyNDBfTWludXRlcyIsICIzNjBfTWludXRlcyINCiAgICAgICAgICAgICAgICBdOw0KICAgICAgICAgICAgICAgIHZhciBzZWxlY3QgPSBjb250ZW50LmNyZWF0ZVNlbGVjdCh0ZXh0LCB2YWx1ZXMsIGRhdGEsIHNldHRpbmdzS2V5KTsNCiAgICAgICAgICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQoc2VsZWN0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImJhY2t1cC5rZWVwIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmJhY2t1cEtlZXAudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciB0ZXh0ID0gWyI1IiwgIjEwIiwgIjIwIiwgIjMwIiwgIjQwIiwgIjUwIl07DQogICAgICAgICAgICAgICAgdmFyIHZhbHVlcyA9IFsiNSIsICIxMCIsICIyMCIsICIzMCIsICI0MCIsICI1MCJdOw0KICAgICAgICAgICAgICAgIHZhciBzZWxlY3QgPSBjb250ZW50LmNyZWF0ZVNlbGVjdCh0ZXh0LCB2YWx1ZXMsIGRhdGEsIHNldHRpbmdzS2V5KTsNCiAgICAgICAgICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQoc2VsZWN0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImJ1ZmZlci5zaXplLmtiIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmJ1ZmZlclNpemUudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciB0ZXh0ID0gWyIwLjUgTUIiLCAiMSBNQiIsICIyIE1CIiwgIjMgTUIiLCAiNCBNQiIsICI1IE1CIiwgIjYgTUIiLCAiNyBNQiIsICI4IE1CIl07DQogICAgICAgICAgICAgICAgdmFyIHZhbHVlcyA9IFsiNTEyIiwgIjEwMjQiLCAiMjA0OCIsICIzMDcyIiwgIjQwOTYiLCAiNTEyMCIsICI2MTQ0IiwgIjcxNjgiLCAiODE5MiJdOw0KICAgICAgICAgICAgICAgIHZhciBzZWxlY3QgPSBjb250ZW50LmNyZWF0ZVNlbGVjdCh0ZXh0LCB2YWx1ZXMsIGRhdGEsIHNldHRpbmdzS2V5KTsNCiAgICAgICAgICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQoc2VsZWN0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImJ1ZmZlciI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5zdHJlYW1CdWZmZXJpbmcudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciB0ZXh0ID0gWyJ7ey5zZXR0aW5ncy5zdHJlYW1CdWZmZXJpbmcuaW5mb19mYWxzZX19IiwgInhUZVZlOiAoe3suc2V0dGluZ3Muc3RyZWFtQnVmZmVyaW5nLmluZm9feHRldmV9fSkiLCAiRkZtcGVnOiAoe3suc2V0dGluZ3Muc3RyZWFtQnVmZmVyaW5nLmluZm9fZmZtcGVnfX0pIiwgIlZMQzogKHt7LnNldHRpbmdzLnN0cmVhbUJ1ZmZlcmluZy5pbmZvX3ZsY319KSJdOw0KICAgICAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBbIi0iLCAieHRldmUiLCAiZmZtcGVnIiwgInZsYyJdOw0KICAgICAgICAgICAgICAgIHZhciBzZWxlY3QgPSBjb250ZW50LmNyZWF0ZVNlbGVjdCh0ZXh0LCB2YWx1ZXMsIGRhdGEsIHNldHRpbmdzS2V5KTsNCiAgICAgICAgICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQoc2VsZWN0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInVkcHh5IjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLnVkcHh5LnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgInVkcHh5IiwgZGF0YSk7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5zZXR0aW5ncy51ZHB4eS5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICB9DQogICAgICAgIHJldHVybiBzZXR0aW5nOw0KICAgIH0NCiAgICBjcmVhdGVEZXNjcmlwdGlvbihzZXR0aW5nc0tleSkgew0KICAgICAgICB2YXIgZGVzY3JpcHRpb24gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJUUiIpOw0KICAgICAgICB2YXIgdGV4dDsNCiAgICAgICAgc3dpdGNoIChzZXR0aW5nc0tleSkgew0KICAgICAgICAgICAgY2FzZSAidGxzTW9kZSI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy50bHNNb2RlLmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiZGlzYWxsb3dVUkxEdXBsaWNhdGVzIjoNCiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLmRpc2FsbG93VVJMRHVwbGljYXRlcy5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImF1dGhlbnRpY2F0aW9uLndlYiI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5hdXRoZW50aWNhdGlvbldFQi5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImF1dGhlbnRpY2F0aW9uLm0zdSI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5hdXRoZW50aWNhdGlvbk0zVS5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImF1dGhlbnRpY2F0aW9uLnBtcyI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5hdXRoZW50aWNhdGlvblBNUy5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImF1dGhlbnRpY2F0aW9uLnhtbCI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5hdXRoZW50aWNhdGlvblhNTC5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImF1dGhlbnRpY2F0aW9uLmFwaSI6DQogICAgICAgICAgICAgICAgaWYgKFNFUlZFUlsic2V0dGluZ3MiXVsiYXV0aGVudGljYXRpb24ud2ViIl0gPT0gdHJ1ZSkgew0KICAgICAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLmF1dGhlbnRpY2F0aW9uQVBJLmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInh0ZXZlQXV0b1VwZGF0ZSI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy54dGV2ZUF1dG9VcGRhdGUuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJiYWNrdXAua2VlcCI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5iYWNrdXBLZWVwLmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiYmFja3VwLnBhdGgiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MuYmFja3VwUGF0aC5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInRlbXAucGF0aCI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy50ZW1wUGF0aC5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImJ1ZmZlciI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5zdHJlYW1CdWZmZXJpbmcuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJidWZmZXIuc2l6ZS5rYiI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5idWZmZXJTaXplLmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAic3RvcmVCdWZmZXJJblJBTSI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5zdG9yZUJ1ZmZlckluUkFNLmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiYnVmZmVyLnRpbWVvdXQiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MuYnVmZmVyVGltZW91dC5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInVzZXIuYWdlbnQiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MudXNlckFnZW50LmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiZmZtcGVnLnBhdGgiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MuZmZtcGVnUGF0aC5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImZmbXBlZy5vcHRpb25zIjoNCiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLmZmbXBlZ09wdGlvbnMuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ2bGMucGF0aCI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy52bGNQYXRoLmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAidmxjLm9wdGlvbnMiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MudmxjT3B0aW9ucy5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImVwZ1NvdXJjZSI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5lcGdTb3VyY2UuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJob3N0SVAiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MuaG9zdElQLmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAidHVuZXIiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MudHVuZXIuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ1cGRhdGUiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MudXBkYXRlLmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiYXBpIjoNCiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLmFwaS5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImRlZmF1bHRNaXNzaW5nRVBHIjoNCiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLmRlZmF1bHRNaXNzaW5nRVBHLmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiZmlsZXMudXBkYXRlIjoNCiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLmZpbGVzVXBkYXRlLmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiY2FjaGUuaW1hZ2VzIjoNCiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLmNhY2hlSW1hZ2VzLmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAieGVwZy5yZXBsYWNlLm1pc3NpbmcuaW1hZ2VzIjoNCiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLnJlcGxhY2VFbXB0eUltYWdlcy5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInVkcHh5IjoNCiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLnVkcHh5LmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgICAgICB0ZXh0ID0gIiI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIH0NCiAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAiIjsNCiAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICB2YXIgcHJlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiUFJFIik7DQogICAgICAgIHByZS5pbm5lckhUTUwgPSB0ZXh0Ow0KICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKHByZSk7DQogICAgICAgIGRlc2NyaXB0aW9uLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgIGRlc2NyaXB0aW9uLmFwcGVuZENoaWxkKHRkUmlnaHQpOw0KICAgICAgICByZXR1cm4gZGVzY3JpcHRpb247DQogICAgfQ0KfQ0KY2xhc3MgU2V0dGluZ3NDYXRlZ29yeUl0ZW0gZXh0ZW5kcyBTZXR0aW5nc0NhdGVnb3J5IHsNCiAgICBjb25zdHJ1Y3RvcihoZWFkbGluZSwgc2V0dGluZ3NLZXlzKSB7DQogICAgICAgIHN1cGVyKCk7DQogICAgICAgIHRoaXMuaGVhZGxpbmUgPSBoZWFkbGluZTsNCiAgICAgICAgdGhpcy5zZXR0aW5nc0tleXMgPSBzZXR0aW5nc0tleXM7DQogICAgfQ0KICAgIGNyZWF0ZUNhdGVnb3J5KCkgew0KICAgICAgICB2YXIgaGVhZGxpbmUgPSB0aGlzLmNyZWF0ZUNhdGVnb3J5SGVhZGxpbmUodGhpcy5oZWFkbGluZSk7DQogICAgICAgIHZhciBzZXR0aW5nc0tleXMgPSB0aGlzLnNldHRpbmdzS2V5czsNCiAgICAgICAgdmFyIGRvYyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHRoaXMuRG9jdW1lbnRJRCk7DQogICAgICAgIGRvYy5hcHBlbmRDaGlsZChoZWFkbGluZSk7DQogICAgICAgIC8vIENyZWF0ZSBhIHRhYmxlIGZvciB0aGUgY2F0ZWdvcnkNCiAgICAgICAgdmFyIHRhYmxlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEFCTEUiKTsNCiAgICAgICAgdmFyIGtleXMgPSBzZXR0aW5nc0tleXMuc3BsaXQoIiwiKTsNCiAgICAgICAga2V5cy5mb3JFYWNoKHNldHRpbmdzS2V5ID0+IHsNCiAgICAgICAgICAgIHN3aXRjaCAoc2V0dGluZ3NLZXkpIHsNCiAgICAgICAgICAgICAgICBjYXNlICJhdXRoZW50aWNhdGlvbi5wbXMiOg0KICAgICAgICAgICAgICAgIGNhc2UgImF1dGhlbnRpY2F0aW9uLm0zdSI6DQogICAgICAgICAgICAgICAgY2FzZSAiYXV0aGVudGljYXRpb24ueG1sIjoNCiAgICAgICAgICAgICAgICBjYXNlICJhdXRoZW50aWNhdGlvbi5hcGkiOg0KICAgICAgICAgICAgICAgICAgICBpZiAoU0VSVkVSWyJzZXR0aW5ncyJdWyJhdXRoZW50aWNhdGlvbi53ZWIiXSA9PSBmYWxzZSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBkZWZhdWx0Og0KICAgICAgICAgICAgICAgICAgICB2YXIgaXRlbSA9IHRoaXMuY3JlYXRlU2V0dGluZ3Moc2V0dGluZ3NLZXkpOw0KICAgICAgICAgICAgICAgICAgICB2YXIgZGVzY3JpcHRpb24gPSB0aGlzLmNyZWF0ZURlc2NyaXB0aW9uKHNldHRpbmdzS2V5KTsNCiAgICAgICAgICAgICAgICAgICAgdGFibGUuYXBwZW5kQ2hpbGQoaXRlbSk7DQogICAgICAgICAgICAgICAgICAgIHRhYmxlLmFwcGVuZENoaWxkKGRlc2NyaXB0aW9uKTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICB9DQogICAgICAgIH0pOw0KICAgICAgICBkb2MuYXBwZW5kQ2hpbGQodGFibGUpOw0KICAgICAgICBkb2MuYXBwZW5kQ2hpbGQodGhpcy5jcmVhdGVIUigpKTsNCiAgICB9DQp9DQpmdW5jdGlvbiBzaG93U2V0dGluZ3MoKSB7DQogICAgZm9yIChsZXQgaSA9IDA7IGkgPCBzZXR0aW5nc0NhdGVnb3J5Lmxlbmd0aDsgaSsrKSB7DQogICAgICAgIHNldHRpbmdzQ2F0ZWdvcnlbaV0uY3JlYXRlQ2F0ZWdvcnkoKTsNCiAgICB9DQp9DQpmdW5jdGlvbiBzYXZlU2V0dGluZ3MoKSB7DQogICAgdmFyIGNtZCA9ICJzYXZlU2V0dGluZ3MiOw0KICAgIHZhciBkaXYgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29udGVudF9zZXR0aW5ncyIpOw0KICAgIHZhciBzZXR0aW5ncyA9IGRpdi5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCJjaGFuZ2VkIik7DQogICAgdmFyIG5ld1NldHRpbmdzID0gbmV3IE9iamVjdCgpOw0KICAgIGZvciAobGV0IGkgPSAwOyBpIDwgc2V0dGluZ3MubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgdmFyIG5hbWU7DQogICAgICAgIHZhciB2YWx1ZTsNCiAgICAgICAgc3dpdGNoIChzZXR0aW5nc1tpXS50YWdOYW1lKSB7DQogICAgICAgICAgICBjYXNlICJJTlBVVCI6DQogICAgICAgICAgICAgICAgc3dpdGNoIChzZXR0aW5nc1tpXS50eXBlKSB7DQogICAgICAgICAgICAgICAgICAgIGNhc2UgImNoZWNrYm94IjoNCiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWUgPSBzZXR0aW5nc1tpXS5uYW1lOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSBzZXR0aW5nc1tpXS5jaGVja2VkOw0KICAgICAgICAgICAgICAgICAgICAgICAgbmV3U2V0dGluZ3NbbmFtZV0gPSB2YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgICAgICBjYXNlICJ0ZXh0IjoNCiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWUgPSBzZXR0aW5nc1tpXS5uYW1lOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSBzZXR0aW5nc1tpXS52YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHN3aXRjaCAobmFtZSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgInVwZGF0ZSI6DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlID0gdmFsdWUuc3BsaXQoIiwiKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSB2YWx1ZS5maWx0ZXIoZnVuY3Rpb24gKGUpIHsgcmV0dXJuIGU7IH0pOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYXNlICJidWZmZXIudGltZW91dCI6DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlID0gcGFyc2VGbG9hdCh2YWx1ZSk7DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICBuZXdTZXR0aW5nc1tuYW1lXSA9IHZhbHVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiU0VMRUNUIjoNCiAgICAgICAgICAgICAgICBuYW1lID0gc2V0dGluZ3NbaV0ubmFtZTsNCiAgICAgICAgICAgICAgICB2YWx1ZSA9IHNldHRpbmdzW2ldLnZhbHVlOw0KICAgICAgICAgICAgICAgIC8vIElmIHRoZSB2YWx1ZSBpcyBhIG51bWJlciwgc3RvcmUgaXQgYXMgYSBudW1iZXINCiAgICAgICAgICAgICAgICBpZiAoaXNOYU4odmFsdWUpKSB7DQogICAgICAgICAgICAgICAgICAgIG5ld1NldHRpbmdzW25hbWVdID0gdmFsdWU7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgICAgICAgICBuZXdTZXR0aW5nc1tuYW1lXSA9IHBhcnNlSW50KHZhbHVlKTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIH0NCiAgICB9DQogICAgdmFyIGRhdGEgPSBuZXcgT2JqZWN0KCk7DQogICAgZGF0YVsic2V0dGluZ3MiXSA9IG5ld1NldHRpbmdzOw0KICAgIHZhciBzZXJ2ZXIgPSBuZXcgU2VydmVyKGNtZCk7DQogICAgc2VydmVyLnJlcXVlc3QoZGF0YSk7DQp9DQo=" - webUI["html/lang/en.json"] = "ew0KICAibWFpbk1lbnUiOg0KICB7DQogICAgIml0ZW0iOg0KICAgIHsNCiAgICAgICJwbGF5bGlzdCI6ICJQbGF5bGlzdCIsDQogICAgICAicG1zSUQiOiAiUE1TIElEIiwNCiAgICAgICJmaWx0ZXIiOiAiRmlsdGVyIiwNCiAgICAgICJ4bWx0diI6ICJYTUxUViIsDQogICAgICAibWFwcGluZyI6ICJNYXBwaW5nIiwNCiAgICAgICJ1c2VycyI6ICJVc2VycyIsDQogICAgICAic2V0dGluZ3MiOiAiU2V0dGluZ3MiLA0KICAgICAgImxvZyI6ICJMb2ciLA0KICAgICAgImxvZ291dCI6ICJMb2dvdXQiDQogICAgfSwNCiAgICAiaGVhZGxpbmUiOg0KICAgIHsNCiAgICAgICJwbGF5bGlzdCI6ICJMb2NhbCBvciByZW1vdGUgcGxheWxpc3RzIiwNCiAgICAgICJmaWx0ZXIiOiAiRmlsdGVyIHBsYXlsaXN0IiwNCiAgICAgICJ4bWx0diI6ICJMb2NhbCBvciByZW1vdGUgWE1MVFYgZmlsZXMiLA0KICAgICAgIm1hcHBpbmciOiAiTWFwIHBsYXlsaXN0IGNoYW5uZWxzIHRvIEVQRyBjaGFubmVscyIsDQogICAgICAidXNlcnMiOiAiVXNlciBtYW5hZ2VtZW50IiwNCiAgICAgICJzZXR0aW5ncyI6ICJTZXR0aW5ncyIsDQogICAgICAibG9nIjogIkxvZyIsDQogICAgICAibG9nb3V0IjogIkxvZ291dCINCiAgICB9DQogIH0sDQogICJjb25maXJtIjoNCiAgew0KICAgICJyZXN0b3JlIjogIkFsbCBkYXRhIHdpbGwgYmUgcmVwbGFjZWQgd2l0aCB0aG9zZSBmcm9tIHRoZSBiYWNrdXAuIFNob3VsZCB0aGUgZmlsZXMgYmUgcmVzdG9yZWQ/Ig0KICB9LA0KICAiYWxlcnQiOg0KICB7DQogICAgImZpbGVMb2FkaW5nRXJyb3IiOiAiRmlsZSBjb3VsZG4ndCBiZSBsb2FkZWQiLA0KICAgICJpbnZhbGlkQ2hhbm5lbE51bWJlciI6ICJJbnZhbGlkIGNoYW5uZWwgbnVtYmVyIiwNCiAgICAibWlzc2luZ0lucHV0IjogIk1pc3NpbmcgaW5wdXQiDQogIH0sDQogICJidXR0b24iOg0KICB7DQogICAgImJhY2siOiAiQmFjayIsDQogICAgImJhY2t1cCI6ICJCYWNrdXAiLA0KICAgICJidWxrRWRpdCI6ICJCdWxrIEVkaXQiLA0KICAgICJjYW5jZWwiOiAiQ2FuY2VsIiwNCiAgICAiZGVsZXRlIjogIkRlbGV0ZSIsDQogICAgImRvbmUiOiAiRG9uZSIsDQogICAgImxvZ2luIjogIkxvZ2luIiwNCiAgICAibmV3IjogIk5ldyIsDQogICAgIm5leHQiOiAiTmV4dCIsDQogICAgInJlc3RvcmUiOiAiUmVzdG9yZSIsDQogICAgInNhdmUiOiAiU2F2ZSIsDQogICAgInNlYXJjaCI6ICJTZWFyY2giLA0KICAgICJ1cGRhdGUiOiAiVXBkYXRlIiwNCiAgICAiY3JhZXRlQWNjb3VudCI6ICJDcmVhdGUgQWNjb3VudCIsDQogICAgInJlc2V0TG9ncyI6ICJSZXNldCBMb2dzIiwNCiAgICAidXBsb2FkTG9nbyI6ICJVcGxvYWQgTG9nbyINCiAgfSwNCiAgImZpbHRlciI6DQogIHsNCiAgICAidGFibGUiOg0KICAgIHsNCiAgICAgICJzdGFydGluZ0NoYW5uZWwiOiAiU3RhcnRpbmcgQ2guIE5vLiIsDQogICAgICAibmFtZSI6ICJGaWx0ZXIgTmFtZSIsDQogICAgICAidHlwZSI6ICJGaWx0ZXIgVHlwZSIsDQogICAgICAiZmlsdGVyIjogIkZpbHRlciINCiAgICB9LA0KICAgICJjdXN0b20iOiAiQ3VzdG9tIiwNCiAgICAiZ3JvdXAiOiAiTTNVIEdyb3VwIiwNCiAgICAibmFtZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIkZpbHRlciBOYW1lIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJGaWx0ZXIgbmFtZSIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgImRlc2NyaXB0aW9uIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiRGVzY3JpcHRpb24iLA0KICAgICAgInBsYWNlaG9sZGVyIjogIkRlc2NyaXB0aW9uIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAidHlwZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIlR5cGUiLA0KICAgICAgImdyb3VwVGl0bGUiOiAiR3JvdXAgVGl0bGUiLA0KICAgICAgImN1c3RvbUZpbHRlciI6ICJDdXN0b20gRmlsdGVyIg0KICAgIH0sDQogICAgImNhc2VTZW5zaXRpdmUiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJDYXNlIFNlbnNpdGl2ZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAiZmlsdGVyUnVsZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIkZpbHRlciBSdWxlIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJTcG9ydCB7SER9ICF7RVMsSVR9IiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAiZmlsdGVyR3JvdXAiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJHcm91cCBUaXRsZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJTZWxlY3QgYSBNM1UgZ3JvdXAuIChDb3VudGVyKTxicj5DaGFuZ2luZyB0aGUgZ3JvdXAgdGl0bGUgaW4gdGhlIE0zVSBpbnZhbGlkYXRlcyB0aGUgZmlsdGVyLiINCiAgICB9LA0KICAgICJpbmNsdWRlIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiSW5jbHVkZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiRkhELFVIRCIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiQ2hhbm5lbCBuYW1lIG11c3QgaW5jbHVkZS48YnI+KENvbW1hIHNlcGFyYXRlZCkgQ29tbWEgbWVhbnMgb3IiDQogICAgfSwNCiAgICAiZXhjbHVkZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIkV4Y2x1ZGUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIkVTLElUIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJDaGFubmVsIG5hbWUgbXVzdCBub3QgY29udGFpbi48YnI+KENvbW1hIHNlcGFyYXRlZCkgQ29tbWEgbWVhbnMgb3IiDQogICAgfSwNCiAgICAicHJlc2VydmVNYXBwaW5nIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiUHJlc2VydmUgRXhpc3RpbmcgTTNVPGJyPkNoYW5uZWwgTnVtYmVycyIsDQogICAgICAicGFsY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJQcmVzZXJ2ZSBleGlzdGluZyBNM1UgcGxheWxpc3QgY2hhbm5lbCBudW1iZXJzPyINCiAgICB9LA0KICAgICJzdGFydGluZ0NoYW5uZWwiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJTdGFydGluZyBDaGFubmVsIE51bWJlciIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfQ0KICB9LA0KICAicGxheWxpc3QiOg0KICB7DQogICAgInRhYmxlIjoNCiAgICB7DQogICAgICAicGxheWxpc3QiOiAiUGxheWxpc3QiLA0KICAgICAgInR1bmVyIjogIlR1bmVyIiwNCiAgICAgICJsYXN0VXBkYXRlIjogIkxhc3QgVXBkYXRlIiwNCiAgICAgICJhdmFpbGFiaWxpdHkiOiAiQXZhaWxhYmlsaXR5IiwNCiAgICAgICJ0eXBlIjogIlR5cGUiLA0KICAgICAgInN0cmVhbXMiOiAiU3RyZWFtcyIsDQogICAgICAiZ3JvdXBUaXRsZSI6ICJncm91cC10aXRsZSIsDQogICAgICAidHZnSUQiOiAidHZnLWlkIiwNCiAgICAgICJ1bmlxdWVJRCI6ICJVbmlxdWUgSUQiDQogICAgfSwNCiAgICAicGxheWxpc3RUeXBlIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiUGxheWxpc3QgdHlwZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAidHlwZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIlR5cGUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgIm5hbWUiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJOYW1lIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJQbGF5bGlzdCBuYW1lIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAiZGVzY3JpcHRpb24iOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJEZXNjcmlwdGlvbiIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiRGVzY3JpcHRpb24iLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJmaWxlTTNVIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiTTNVIEZpbGUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIkZpbGUgcGF0aCBvciBVUkwgb2YgdGhlIE0zVSIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgImZpbGVIREhSIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiSERIb21lUnVuIElQIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJJUCBhZGRyZXNzIGFuZCBwb3J0ICgxOTIuMTY4LjEuMTA6NTAwNCkiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJ0dW5lciI6DQogICAgew0KICAgICAgInRpdGxlIjogIlR1bmVyIC8gU3RyZWFtcyIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJOdW1iZXIgb2YgcGFyYWxsZWwgY29ubmVjdGlvbnMgdGhhdCBjYW4gYmUgZXN0YWJsaXNoZWQgdG8gdGhlIHByb3ZpZGVyLiA8YnI+T25seSBhdmFpbGFibGUgd2l0aCBhY3RpdmF0ZWQgYnVmZmVyLjxicj5OZXcgc2V0dGluZ3Mgd2lsbCBvbmx5IGJlIGFwcGxpZWQgYWZ0ZXIgcXVpdHRpbmcgYWxsIHN0cmVhbXMuIg0KICAgIH0NCiAgfSwNCiAgInhtbHR2IjoNCiAgew0KICAgICJ0YWJsZSI6DQogICAgew0KICAgICAgImd1aWRlIjogIkd1aWRlIiwNCiAgICAgICJsYXN0VXBkYXRlIjogIkxhc3QgVXBkYXRlIiwNCiAgICAgICJhdmFpbGFiaWxpdHkiOiAiQXZhaWxhYmlsaXR5IiwNCiAgICAgICJjaGFubmVscyI6ICJDaGFubmVscyIsDQogICAgICAicHJvZ3JhbXMiOiAiUHJvZ3JhbXMiDQogICAgfSwNCiAgICAibmFtZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIk5hbWUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIkd1aWRlIG5hbWUiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJkZXNjcmlwdGlvbiI6DQogICAgew0KICAgICAgInRpdGxlIjogIkRlc2NyaXB0aW9uIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJEZXNjcmlwdGlvbiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgImZpbGVYTUxUViI6DQogICAgew0KICAgICAgInRpdGxlIjogIlhNTFRWIEZpbGUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIkZpbGUgcGF0aCBvciBVUkwgb2YgdGhlIFhNTFRWIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfQ0KICB9LA0KICAibWFwcGluZyI6DQogIHsNCiAgICAidGFibGUiOg0KICAgIHsNCiAgICAgICJjaE5vIjogIkNoLiBOby4iLA0KICAgICAgImxvZ28iOiAiTG9nbyIsDQogICAgICAiY2hhbm5lbE5hbWUiOiAiQ2hhbm5lbCBOYW1lIiwNCiAgICAgICJ1cGRhdGVDaGFubmVsTmFtZVJlZ2V4IjogIlVwZC4gUnguIiwNCiAgICAgICJwbGF5bGlzdCI6ICJQbGF5bGlzdCIsDQogICAgICAiZ3JvdXBUaXRsZSI6ICJHcm91cCBUaXRsZSIsDQogICAgICAieG1sdHZGaWxlIjogIlhNTFRWIEZpbGUiLA0KICAgICAgInhtbHR2SUQiOiAiWE1MVFYgSUQiLA0KICAgICAgInRpbWVzaGlmdCI6ICJUaW1lc2hpZnQiDQogICAgfSwNCiAgICAiYWN0aXZlIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiQWN0aXZlIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJjaGFubmVsTmFtZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIkNoYW5uZWwgTmFtZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAiZGVzY3JpcHRpb24iOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJDaGFubmVsIERlc2NyaXB0aW9uIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJVc2VkIGJ5IHRoZSBEdW1teSBhcyBhbiBYTUwgZGVzY3JpcHRpb24iLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJ1cGRhdGVDaGFubmVsTmFtZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIlVwZGF0ZSBDaGFubmVsIE5hbWUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgInVwZGF0ZUNoYW5uZWxOYW1lUmVnZXgiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJDaGFubmVsIG5hbWUgdXBkYXRlIHJlZ2V4IiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJGb3IgZXhhbXBsZSBeUFBWWyBcXFxcLV9dPzEuKiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiT24gdXBkYXRlLCBpZiBhbnkgbmV3IGNoYW5uZWwgbmFtZSBtYXRjaGVzIHRoaXMgcmVnZXgsIHJlbmFtZSBjdXJyZW50IGNoYW5uZWwgdG8gdGhlIGZpcnN0IG1hdGNoaW5nIG5hbWUiDQogICAgfSwNCiAgICAidXBkYXRlQ2hhbm5lbE5hbWVCeUdyb3VwUmVnZXgiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJPbmx5IGJ5IGdyb3VwIHJlZ2V4IiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIlJlbmFtZSB0aGlzIGNoYW5uZWwgb25seSBpZiBjdXJyZW50IHVzZXItZGVmaW5lZCBncm91cCBtYXRjaGVzIHRoaXMgcmVnZXgiDQogICAgfSwNCiAgICAidXBkYXRlQ2hhbm5lbEdyb3VwIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiVXBkYXRlIENoYW5uZWwgR3JvdXAiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiSWYgY2hlY2tlZCwgdXNlIGdyb3VwIGZyb20gdGhlIGRhdGFiYXNlIg0KICAgIH0sDQogICAgImNoYW5uZWxMb2dvIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiTG9nbyBVUkwiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgInVwZGF0ZUNoYW5uZWxMb2dvIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiVXBkYXRlIENoYW5uZWwgTG9nbyIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAiZXBnQ2F0ZWdvcnkiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJFUEcgQ2F0ZWdvcnkiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgIm0zdUdyb3VwVGl0bGUiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJHcm91cCBUaXRsZSAoeHRldmUubTN1KSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAieG1sdHZGaWxlIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiWE1MVFYgRmlsZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAieG1sdHZDaGFubmVsIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiWE1MVFYgQ2hhbm5lbCIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAidGltZXNoaWZ0IjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiVGltZXNoaWZ0IiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIwIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfQ0KICB9LA0KICAidXNlcnMiOg0KICB7DQogICAgInRhYmxlIjoNCiAgICB7DQogICAgICAidXNlcm5hbWUiOiAiVXNlcm5hbWUiLA0KICAgICAgInBhc3N3b3JkIjogIlBhc3N3b3JkIiwNCiAgICAgICJ3ZWIiOiAiV0VCIiwNCiAgICAgICJwbXMiOiAiUE1TIiwNCiAgICAgICJtM3UiOiAiTTNVIiwNCiAgICAgICJ4bWwiOiAiWE1MIiwNCiAgICAgICJhcGkiOiAiQVBJIg0KICAgIH0sDQogICAgInVzZXJuYW1lIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiVXNlcm5hbWUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIlVzZXJuYW1lIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAicGFzc3dvcmQiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJQYXNzd29yZCIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiUGFzc3dvcmQiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJjb25maXJtIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiQ29uZmlybSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiUGFzc3dvcmQgY29uZmlybSIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgIndlYiI6DQogICAgew0KICAgICAgInRpdGxlIjogIldlYiBBY2Nlc3MiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgInBtcyI6DQogICAgew0KICAgICAgInRpdGxlIjogIlBNUyBBY2Nlc3MiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgIm0zdSI6DQogICAgew0KICAgICAgInRpdGxlIjogIk0zVSBBY2Nlc3MiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgInhtbCI6DQogICAgew0KICAgICAgInRpdGxlIjogIlhNTCBBY2Nlc3MiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgImFwaSI6DQogICAgew0KICAgICAgInRpdGxlIjogIkFQSSBBY2Nlc3MiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0NCiAgfSwNCiAgInNldHRpbmdzIjoNCiAgew0KICAgICJjYXRlZ29yeSI6DQogICAgew0KICAgICAgImdlbmVyYWwiOiAiR2VuZXJhbCIsDQogICAgICAibWFwcGluZyI6ICJNYXBwaW5nIiwNCiAgICAgICJmaWxlcyI6ICJGaWxlcyIsDQogICAgICAic3RyZWFtaW5nIjogIlN0cmVhbWluZyIsDQogICAgICAiYmFja3VwIjogIkJhY2t1cCIsDQogICAgICAiYXV0aGVudGljYXRpb24iOiAiQXV0aGVudGljYXRpb24iDQogICAgfSwNCiAgICAidXBkYXRlIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiU2NoZWR1bGUgZm9yIHVwZGF0aW5nIChQbGF5bGlzdCwgWE1MVFYsIEJhY2t1cCkiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIjAwMDAsMTAwMCwyMDAwIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJUaW1lIGluIDI0IGhvdXIgZm9ybWF0ICgwODAwID0gODowMCBhbSkuIE1vcmUgdGltZXMgY2FuIGJlIGVudGVyZWQgY29tbWEgc2VwYXJhdGVkLiBMZWF2ZSB0aGlzIGZpZWxkIGVtcHR5IGlmIG5vIHVwZGF0ZXMgYXJlIHRvIGJlIGNhcnJpZWQgb3V0LiINCiAgICB9LA0KICAgICJhcGkiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJBUEkgSW50ZXJmYWNlIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJWaWEgQVBJIGludGVyZmFjZSBpdCBpcyBwb3NzaWJsZSB0byBzZW5kIGNvbW1hbmRzIHRvIHhUZVZlLiBBUEkgZG9jdW1lbnRhdGlvbiBpcyA8YSBocmVmPSdodHRwczovL2dpdGh1Yi5jb20veHRldmUtcHJvamVjdC94VGVWZS1Eb2N1bWVudGF0aW9uL2Jsb2IvbWFzdGVyL2VuL2NvbmZpZ3VyYXRpb24ubWQjYXBpJz5oZXJlPC9hPiINCiAgICB9LA0KICAgICJkZWZhdWx0TWlzc2luZ0VQRyI6DQogICAgew0KICAgICAgInRpdGxlIjogIkZpbGwgTWlzc2luZyBFUEcgRGF0YSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJXaGVuIHRoZXJlIGlzIG5vIG1hdGNoaW5nIEVQRyBkYXRhIGZvciBjaGFubmVsLCA8YnI+YXV0b2ZpbGwgd2l0aCB4VGVWZSBkdW1teSBFUEcgZGF0YT8iDQogICAgfSwNCiAgICAiZGlzYWxsb3dVUkxEdXBsaWNhdGVzIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiRGlzYWxsb3cgVVJMIGR1cGxpY2F0ZXMiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIklmIGNoZWNrZWQsIGRvIG5vdCBhZGQgYSBuZXcgY2hhbm5lbCBmcm9tIHBsYXlsaXN0IGlmIGNoYW5uZWwgd2l0aCBzdWNoIFVSTCBhbHJlYWR5IGV4aXN0cyINCiAgICB9LA0KICAgICJlcGdTb3VyY2UiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJFUEcgU291cmNlIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJQTVM6PGJyPi0gVXNlIEVQRyBkYXRhIGZyb20gUGxleCBvciBFbWJ5IDxicj48YnI+WEVQRzo8YnI+LSBVc2Ugb2Ygb25lIG9yIG1vcmUgWE1MVFYgZmlsZXM8YnI+LSBDaGFubmVsIG1hbmFnZW1lbnQ8YnI+LSBNM1UgLyBYTUxUViBleHBvcnQgKEhUVFAgbGluayBmb3IgSVBUViBhcHBzKSINCiAgICB9LA0KICAgICJ0dW5lciI6DQogICAgew0KICAgICAgInRpdGxlIjogIk51bWJlciBvZiBUdW5lcnMiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIk51bWJlciBvZiBwYXJhbGxlbCBjb25uZWN0aW9ucyB0aGF0IGNhbiBiZSBlc3RhYmxpc2hlZCB0byB0aGUgcHJvdmlkZXIuPGJyPkF2YWlsYWJsZSBmb3I6IFBsZXgsIEVtYnkgKEhESFIpLCBNM1UgKHdpdGggYWN0aXZlIGJ1ZmZlcikuPGJyPkFmdGVyIGEgY2hhbmdlLCB4VGVWZSBtdXN0IGJlIGRlbGV0ZSBpbiB0aGUgUGxleCAvIEVtYnkgRFZSIHNldHRpbmdzIGFuZCBzZXQgdXAgYWdhaW4uIg0KICAgIH0sDQogICAgImhvc3RJUCI6DQogICAgew0KICAgICAgInRpdGxlIjogIkhvc3QgSVAiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIklQIGFkZHJlc3MgeFRlVmUgd2lsbCB1c2UgdG8gZm9ybSBNM1UgYW5kIFhNTFRWIGZpbGVzIg0KICAgIH0sDQogICAgInRsc01vZGUiOiB7DQogICAgICAidGl0bGUiOiAiVExTIChIVFRQUykgbW9kZSIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiQ2hhbmdlcyB3ZWIgc2VydmVyIHByb3RvY29sIHRvIEhUVFBTLjxicj5Gb3IgZGV0YWlscywgc2VlIDxhPmh0dHBzOi8vZ2l0aHViLmNvbS9TQ1AwMDIveFRlVmUjdGxzLW1vZGU8L2E+Ig0KICAgIH0sDQogICAgImZpbGVzVXBkYXRlIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiVXBkYXRlcyBhbGwgZmlsZXMgYXQgc3RhcnR1cCIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiVXBkYXRlcyBhbGwgcGxheWxpc3RzLCB0dW5lciBhbmQgWE1MVFYgZmlsZXMgYXQgc3RhcnR1cC4iDQogICAgfSwNCiAgICAiY2FjaGVJbWFnZXMiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJJbWFnZSBDYWNoaW5nIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJBbGwgaW1hZ2VzIGZyb20gdGhlIFhNTFRWIGZpbGUgYXJlIGNhY2hlZCwgYWxsb3dpbmcgZmFzdGVyIHJlbmRlcmluZyBvZiB0aGUgZ3JpZCBpbiB0aGUgY2xpZW50Ljxicj5Eb3dubG9hZGluZyB0aGUgaW1hZ2VzIG1heSB0YWtlIGEgd2hpbGUgYW5kIHdpbGwgYmUgZG9uZSBpbiB0aGUgYmFja2dyb3VuZC4iDQogICAgfSwNCiAgICAicmVwbGFjZUVtcHR5SW1hZ2VzIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiUmVwbGFjZSBtaXNzaW5nIHByb2dyYW0gaW1hZ2VzIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJJZiB0aGUgcG9zdGVyIGluIHRoZSBYTUxUViBwcm9ncmFtIGlzIG1pc3NpbmcsIHRoZSBjaGFubmVsIGxvZ28gd2lsbCBiZSB1c2VkLiINCiAgICB9LA0KICAgICJ4dGV2ZUF1dG9VcGRhdGUiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJBdXRvbWF0aWMgdXBkYXRlIG9mIHhUZVZlIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJJZiBhIG5ldyB2ZXJzaW9uIG9mIHhUZVZlIGlzIGF2YWlsYWJsZSwgaXQgd2lsbCBiZSBhdXRvbWF0aWNhbGx5IGluc3RhbGxlZC4gVGhlIHVwZGF0ZXMgYXJlIGRvd25sb2FkZWQgZnJvbSBHaXRIdWIuIg0KICAgIH0sDQogICAgInN0cmVhbUJ1ZmZlcmluZyI6DQogICAgew0KICAgICAgInRpdGxlIjogIlN0cmVhbSBCdWZmZXIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIkZ1bmN0aW9ucyBvZiB0aGUgYnVmZmVyOjxicj4tIFRoZSBzdHJlYW0gaXMgcGFzc2VkIGZyb20geFRlVmUsIEZGbXBlZyBvciBWTEMgdG8gUGxleCwgRW1ieSBvciBNM1UgUGxheWVyPGJyPi0gU21hbGwgamVya2luZyBvZiB0aGUgc3RyZWFtcyBjYW4gYmUgY29tcGVuc2F0ZWQ8YnI+LSBITFMgLyBNM1U4IHN1cHBvcnQ8YnI+LSBSVFAgLyBSVFBTIHN1cHBvcnQgKG9ubHkgRkZtcGVnIG9yIFZMQyk8YnI+LSBSZS1zdHJlYW1pbmc8YnI+LSBTZXBhcmF0ZSB0dW5lciBsaW1pdCBmb3IgZWFjaCBwbGF5bGlzdCIsDQogICAgICAiaW5mb19mYWxzZSI6ICJObyBCdWZmZXIgKENsaWVudCBjb25uZWN0cyB0byB0aGUgc3RyZWFtaW5nIHNlcnZlcikiLA0KICAgICAgImluZm9feHRldmUiOiAieFRlVmUgY29ubmVjdHMgdG8gdGhlIHN0cmVhbWluZyBzZXJ2ZXIiLA0KICAgICAgImluZm9fZmZtcGVnIjogIkZGbXBlZyBjb25uZWN0cyB0byB0aGUgc3RyZWFtaW5nIHNlcnZlciIsDQogICAgICAiaW5mb192bGMiOiAiVkxDIGNvbm5lY3RzIHRvIHRoZSBzdHJlYW1pbmcgc2VydmVyIg0KDQogICAgfSwNCiAgICAidWRweHkiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJVRFB4eSBhZGRyZXNzIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJUaGUgYWRkcmVzcyBvZiB5b3VyIFVEUHh5IHNlcnZlci4gSWYgc2V0LCBhbmQgdGhlIGNoYW5uZWwgVVJMcyBpbiB0aGUgbTN1IGlzIG11bHRpY2FzdCwgeFRlVmUgd2lsbCByZXdyaXRlIGl0IHNvIHRoYXQgaXQgaXMgYWNjZXNzZWQgdmlhIHRoZSBVRFB4eSBzZXJ2aWNlLiIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiaG9zdDpwb3J0Ig0KICAgIH0sDQogICAgImZmbXBlZ1BhdGgiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJGRm1wZWcgQmluYXJ5IFBhdGgiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIlBhdGggdG8gRkZtcGVnIGJpbmFyeS4iLA0KICAgICAgInBsYWNlaG9sZGVyIjogIi9wYXRoL3RvL2ZmbXBlZyINCiAgICB9LA0KICAgICJmZm1wZWdPcHRpb25zIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiRkZtcGVnIE9wdGlvbnMiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIkZGbXBlZyBvcHRpb25zLjxicj5Pbmx5IGNoYW5nZSBpZiB5b3Uga25vdyB3aGF0IHlvdSBhcmUgZG9pbmcuPGJyPkxlYXZlIGJsYW5rIHRvIHNldCBkZWZhdWx0IHNldHRpbmdzLiIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiTGVhdmUgYmxhbmsgdG8gc2V0IGRlZmF1bHQgc2V0dGluZ3MiDQogICAgfSwNCiAgICAidmxjUGF0aCI6DQogICAgew0KICAgICAgInRpdGxlIjogIlZMQyAvIENWTEMgQmluYXJ5IFBhdGgiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIlBhdGggdG8gVkxDIC8gQ1ZMQyBiaW5hcnkuIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIvcGF0aC90by9jdmxjIg0KICAgIH0sDQogICAgInZsY09wdGlvbnMiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJWTEMgLyBDVkxDIE9wdGlvbnMiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIlZMQyAvIENWTEMgb3B0aW9ucy48YnI+T25seSBjaGFuZ2UgaWYgeW91IGtub3cgd2hhdCB5b3UgYXJlIGRvaW5nLjxicj5MZWF2ZSBibGFuayB0byBzZXQgZGVmYXVsdCBzZXR0aW5ncy4iLA0KICAgICAgInBsYWNlaG9sZGVyIjogIkxlYXZlIGJsYW5rIHRvIHNldCBkZWZhdWx0IHNldHRpbmdzIg0KICAgIH0sDQogICAgImJ1ZmZlclNpemUiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJCdWZmZXIgU2l6ZSIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiQnVmZmVyIHNpemUgaW4gTUIuPGJyPk0zVTg6IElmIHRoZSBUUyBzZWdtZW50IHNtYWxsZXIgdGhlbiB0aGUgYnVmZmVyIHNpemUsIHRoZSBmaWxlIHNpemUgb2YgdGhlIHNlZ21lbnQgaXMgdXNlZC4iDQogICAgfSwNCiAgICAic3RvcmVCdWZmZXJJblJBTSI6DQogICAgew0KICAgICAgInRpdGxlIjogIlN0b3JlIGJ1ZmZlciBpbiBSQU0iLA0KICAgICAgImRlc2NyaXB0aW9uIjogIklmIGNoZWNrZWQsIHdyaXRlIGJ1ZmZlciB0byBSQU0gaW5zdGVhZCBvZiB3cml0aW5nIHRvIGRpc2siDQogICAgfSwNCiAgICAiYnVmZmVyVGltZW91dCI6DQogICAgew0KICAgICAgInRpdGxlIjogIlRpbWVvdXQgZm9yIG5ldyBjbGllbnQgY29ubmVjdGlvbnMiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIlRoZSB4VGVWZSBidWZmZXIgd2FpdHMgdW50aWwgbmV3IGNsaWVudCBjb25uZWN0aW9ucyBhcmUgZXN0YWJsaXNoZWQuIEhlbHBmdWwgZm9yIGZhc3QgY2hhbm5lbCBzd2l0Y2hpbmcuIFZhbHVlIGluIG1pbGxpc2Vjb25kcy4iLA0KICAgICAgInBsYWNlaG9sZGVyIjogIjEwMCINCiAgICB9LA0KICAgICJ1c2VyQWdlbnQiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJVc2VyIEFnZW50IiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJVc2VyIEFnZW50IGZvciBIVFRQIHJlcXVlc3RzLiBGb3IgZXZlcnkgSFRUUCBjb25uZWN0aW9uLCB0aGlzIHZhbHVlIGlzIHVzZWQgZm9yIHRoZSB1c2VyIGFnZW50LiBTaG91bGQgb25seSBiZSBjaGFuZ2VkIGlmIHhUZVZlIGlzIGJsb2NrZWQuIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJ4VGVWZSINCiAgICB9LA0KICAgICJiYWNrdXBQYXRoIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiTG9jYXRpb24gZm9yIGF1dG9tYXRpYyBiYWNrdXBzIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIvbW50L2RhdGEvYmFja3VwL3h0ZXZlLyIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiQmVmb3JlIGFueSB1cGRhdGUgb2YgdGhlIHByb3ZpZGVyIGRhdGEgYnkgdGhlIHNjaGVkdWxlLCB4VGVWZSBjcmVhdGVzIGEgYmFja3VwLiBUaGUgcGF0aCBmb3IgdGhlIGF1dG9tYXRpYyBiYWNrdXBzIGNhbiBiZSBjaGFuZ2VkLiB4VGVWZSByZXF1aXJlcyB3cml0ZSBwZXJtaXNzaW9uIGZvciB0aGlzIGZvbGRlci4iDQogICAgfSwNCiAgICAidGVtcFBhdGgiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJMb2NhdGlvbiBmb3IgdGhlIHRlbXBvcmFyeSBmaWxlcyIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiL3RtcC94dGV2ZS8iLA0KICAgICAgImRlc2NyaXB0aW9uIjogIkxvY2F0aW9uIGZvciB0aGUgYnVmZmVyIGZpbGVzLiINCiAgICB9LA0KICAgICJiYWNrdXBLZWVwIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiTnVtYmVyIG9mIGJhY2t1cHMgdG8ga2VlcCIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiTnVtYmVyIG9mIGJhY2t1cHMgdG8ga2VlcC4gT2xkZXIgYmFja3VwcyBhcmUgYXV0b21hdGljYWxseSBkZWxldGVkLiINCiAgICB9LA0KICAgICJhdXRoZW50aWNhdGlvbldFQiI6DQogICAgew0KICAgICAgInRpdGxlIjogIldFQiBBdXRoZW50aWNhdGlvbiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiQWNjZXNzIHRvIHRoZSB3ZWIgaW50ZXJmYWNlIG9ubHkgcG9zc2libGUgd2l0aCBjcmVkZW50aWFscy4iDQogICAgfSwNCiAgICAiYXV0aGVudGljYXRpb25QTVMiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJQTVMgQXV0aGVudGljYXRpb24iLA0KICAgICAgImRlc2NyaXB0aW9uIjogIlBsZXggcmVxdWVzdHMgYXJlIG9ubHkgcG9zc2libGUgd2l0aCBhdXRoZW50aWNhdGlvbi4gPGJyPjxiPldhcm5pbmchISE8L2I+IEFmdGVyIGFjdGl2YXRpbmcgdGhpcyBmdW5jdGlvbiB4VGVWZSBtdXN0IGJlIGRlbGV0ZSBpbiB0aGUgUE1TIERWUiBzZXR0aW5ncyBhbmQgc2V0IHVwIGFnYWluLiINCiAgICB9LA0KICAgICJhdXRoZW50aWNhdGlvbk0zVSI6DQogICAgew0KICAgICAgInRpdGxlIjogIk0zVSBBdXRoZW50aWNhdGlvbiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiRG93bmxvYWRpbmcgdGhlIHh0ZXZlLm0zdSBmaWxlIHZpYSBhbiBIVFRQIHJlcXVlc3QgaXMgb25seSBwb3NzaWJsZSB3aXRoIGF1dGhlbnRpY2F0aW9uLiINCiAgICB9LA0KICAgICJhdXRoZW50aWNhdGlvblhNTCI6DQogICAgew0KICAgICAgInRpdGxlIjogIlhNTCBBdXRoZW50aWNhdGlvbiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiRG93bmxvYWRpbmcgdGhlIHh0ZXZlLnhtbCBmaWxlIHZpYSBhbiBIVFRQIHJlcXVlc3QgaXMgb25seSBwb3NzaWJsZSB3aXRoIGF1dGhlbnRpY2F0aW9uIg0KICAgIH0sDQogICAgImF1dGhlbnRpY2F0aW9uQVBJIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiQVBJIEF1dGhlbnRpY2F0aW9uIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJBY2Nlc3MgdG8gdGhlIEFQSSBpbnRlcmZhY2UgaXMgb25seSBwb3NzaWJsZSB3aXRoIGF1dGhlbnRpY2F0aW9uLiINCiAgICB9DQogIH0sDQogICJ3aXphcmQiOg0KICB7DQogICAgImVwZ1NvdXJjZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIkVQRyBTb3VyY2UiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIlBNUzo8YnI+LSBVc2UgRVBHIGRhdGEgZnJvbSBQbGV4IG9yIEVtYnkgPGJyPjxicj5YRVBHOjxicj4tIFVzZSBvZiBvbmUgb3IgbW9yZSBYTUxUViBmaWxlczxicj4tIENoYW5uZWwgbWFuYWdlbWVudDxicj4tIE0zVSAvIFhNTFRWIGV4cG9ydCAoSFRUUCBsaW5rIGZvciBJUFRWIGFwcHMpIg0KICAgIH0sDQogICAgInR1bmVyIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiTnVtYmVyIG9mIHR1bmVycyIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiTnVtYmVyIG9mIHBhcmFsbGVsIGNvbm5lY3Rpb25zIHRoYXQgY2FuIGJlIGVzdGFibGlzaGVkIHRvIHRoZSBwcm92aWRlci48YnI+QXZhaWxhYmxlIGZvcjogUGxleCwgRW1ieSAoSERIUiksIE0zVSAod2l0aCBhY3RpdmUgYnVmZmVyKS48YnI+QWZ0ZXIgYSBjaGFuZ2UsIHhUZVZlIG11c3QgYmUgZGVsZXRlIGluIHRoZSBQbGV4IC8gRW1ieSBEVlIgc2V0dGluZ3MgYW5kIHNldCB1cCBhZ2Fpbi4iDQogICAgfSwNCiAgICAibTN1IjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiTTNVIFBsYXlsaXN0IiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJGaWxlIHBhdGggb3IgVVJMIG9mIHRoZSBNM1UiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIkxvY2FsIG9yIHJlbW90ZSBwbGF5bGlzdHMiDQogICAgfSwNCiAgICAieG1sdHYiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJYTUxUViBGaWxlIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJGaWxlIHBhdGggb3IgVVJMIG9mIHRoZSBYTUxUViIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiTG9jYWwgb3IgcmVtb3RlIFhNTFRWIGZpbGUiDQogICAgfQ0KICB9LA0KICAibG9naW4iOg0KICB7DQogICAgImZhaWxlZCI6ICJVc2VyIGF1dGhlbnRpY2F0aW9uIGZhaWxlZCIsDQogICAgImhlYWRsaW5lIjogIkxvZ2luIiwNCiAgICAidXNlcm5hbWUiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJVc2VybmFtZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiVXNlcm5hbWUiDQogICAgfSwNCiAgICAicGFzc3dvcmQiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJQYXNzd29yZCIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiUGFzc3dvcmQiDQogICAgfQ0KICB9LA0KICAiYWNjb3VudCI6DQogIHsNCiAgICAiZmFpbGVkIjogIlBhc3N3b3JkIGRvZXMgbm90IG1hdGNoIiwNCiAgICAiaGVhZGxpbmUiOiAiQ3JlYXRlIHVzZXIgYWNjb3VudCIsDQogICAgInVzZXJuYW1lIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiVXNlcm5hbWUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIlVzZXJuYW1lIg0KICAgIH0sDQogICAgInBhc3N3b3JkIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiUGFzc3dvcmQiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIlBhc3N3b3JkIg0KICAgIH0sDQogICAgImNvbmZpcm0iOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJDb25maXJtIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJDb25maXJtIg0KICAgIH0NCiAgfQ0KfQ==" + webUI["html/js/settings_ts.js"] = "Y2xhc3MgU2V0dGluZ3NDYXRlZ29yeSB7DQogICAgY29uc3RydWN0b3IoKSB7DQogICAgICAgIHRoaXMuRG9jdW1lbnRJRCA9ICJjb250ZW50X3NldHRpbmdzIjsNCiAgICB9DQogICAgY3JlYXRlQ2F0ZWdvcnlIZWFkbGluZSh2YWx1ZSkgew0KICAgICAgICB2YXIgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIkg0Iik7DQogICAgICAgIGVsZW1lbnQuaW5uZXJIVE1MID0gdmFsdWU7DQogICAgICAgIHJldHVybiBlbGVtZW50Ow0KICAgIH0NCiAgICBjcmVhdGVIUigpIHsNCiAgICAgICAgdmFyIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJIUiIpOw0KICAgICAgICByZXR1cm4gZWxlbWVudDsNCiAgICB9DQogICAgY3JlYXRlU2V0dGluZ3Moc2V0dGluZ3NLZXkpIHsNCiAgICAgICAgdmFyIHNldHRpbmcgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJUUiIpOw0KICAgICAgICB2YXIgY29udGVudCA9IG5ldyBQb3B1cENvbnRlbnQoKTsNCiAgICAgICAgdmFyIGRhdGEgPSBTRVJWRVJbInNldHRpbmdzIl1bc2V0dGluZ3NLZXldOw0KICAgICAgICBzd2l0Y2ggKHNldHRpbmdzS2V5KSB7DQogICAgICAgICAgICAvLyBUZXh0IGlucHV0cw0KICAgICAgICAgICAgY2FzZSAidXBkYXRlIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLnVwZGF0ZS50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsICJ1cGRhdGUiLCBkYXRhLnRvU3RyaW5nKCkpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3suc2V0dGluZ3MudXBkYXRlLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJiYWNrdXAucGF0aCI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5iYWNrdXBQYXRoLnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgImJhY2t1cC5wYXRoIiwgZGF0YSk7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5zZXR0aW5ncy5iYWNrdXBQYXRoLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ0ZW1wLnBhdGgiOg0KICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MudGVtcFBhdGgudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCAidGVtcC5wYXRoIiwgZGF0YSk7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5zZXR0aW5ncy50bXBQYXRoLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ1c2VyLmFnZW50IjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLnVzZXJBZ2VudC50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsICJ1c2VyLmFnZW50IiwgZGF0YSk7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5zZXR0aW5ncy51c2VyQWdlbnQucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImJ1ZmZlci50aW1lb3V0IjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmJ1ZmZlclRpbWVvdXQudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCAiYnVmZmVyLnRpbWVvdXQiLCBkYXRhKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnNldHRpbmdzLmJ1ZmZlclRpbWVvdXQucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImZmbXBlZy5wYXRoIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmZmbXBlZ1BhdGgudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCAiZmZtcGVnLnBhdGgiLCBkYXRhKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnNldHRpbmdzLmZmbXBlZ1BhdGgucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImZmbXBlZy5vcHRpb25zIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmZmbXBlZ09wdGlvbnMudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCAiZmZtcGVnLm9wdGlvbnMiLCBkYXRhKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnNldHRpbmdzLmZmbXBlZ09wdGlvbnMucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInZsYy5wYXRoIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLnZsY1BhdGgudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCAidmxjLnBhdGgiLCBkYXRhKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnNldHRpbmdzLnZsY1BhdGgucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInZsYy5vcHRpb25zIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLnZsY09wdGlvbnMudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCAidmxjLm9wdGlvbnMiLCBkYXRhKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnNldHRpbmdzLnZsY09wdGlvbnMucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIC8vIENoZWNrYm94ZXMNCiAgICAgICAgICAgIGNhc2UgInRsc01vZGUiOg0KICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MudGxzTW9kZS50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChzZXR0aW5nc0tleSk7DQogICAgICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGE7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiZGlzYWxsb3dVUkxEdXBsaWNhdGVzIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmRpc2FsbG93VVJMRHVwbGljYXRlcy50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChzZXR0aW5nc0tleSk7DQogICAgICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGE7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiYXV0aGVudGljYXRpb24ud2ViIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmF1dGhlbnRpY2F0aW9uV0VCLnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KHNldHRpbmdzS2V5KTsNCiAgICAgICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJhdXRoZW50aWNhdGlvbi5wbXMiOg0KICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MuYXV0aGVudGljYXRpb25QTVMudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goc2V0dGluZ3NLZXkpOw0KICAgICAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImF1dGhlbnRpY2F0aW9uLm0zdSI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5hdXRoZW50aWNhdGlvbk0zVS50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChzZXR0aW5nc0tleSk7DQogICAgICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGE7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiYXV0aGVudGljYXRpb24ueG1sIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmF1dGhlbnRpY2F0aW9uWE1MLnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KHNldHRpbmdzS2V5KTsNCiAgICAgICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJhdXRoZW50aWNhdGlvbi5hcGkiOg0KICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MuYXV0aGVudGljYXRpb25BUEkudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goc2V0dGluZ3NLZXkpOw0KICAgICAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImZpbGVzLnVwZGF0ZSI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5maWxlc1VwZGF0ZS50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChzZXR0aW5nc0tleSk7DQogICAgICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGE7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiY2FjaGUuaW1hZ2VzIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmNhY2hlSW1hZ2VzLnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KHNldHRpbmdzS2V5KTsNCiAgICAgICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ4ZXBnLnJlcGxhY2UubWlzc2luZy5pbWFnZXMiOg0KICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MucmVwbGFjZUVtcHR5SW1hZ2VzLnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KHNldHRpbmdzS2V5KTsNCiAgICAgICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJzdG9yZUJ1ZmZlckluUkFNIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLnN0b3JlQnVmZmVySW5SQU0udGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goc2V0dGluZ3NLZXkpOw0KICAgICAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInh0ZXZlQXV0b1VwZGF0ZSI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy54dGV2ZUF1dG9VcGRhdGUudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goc2V0dGluZ3NLZXkpOw0KICAgICAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImFwaSI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5hcGkudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goc2V0dGluZ3NLZXkpOw0KICAgICAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImVuYWJsZU1hcHBlZENoYW5uZWxzIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmVuYWJsZU1hcHBlZENoYW5uZWxzLnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KHNldHRpbmdzS2V5KTsNCiAgICAgICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAvLyBTZWxlY3QNCiAgICAgICAgICAgIGNhc2UgImhvc3RJUCI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5ob3N0SVAudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciB0ZXh0ID0gU0VSVkVSWyJpcEFkZHJlc3Nlc1Y0SG9zdCJdOw0KICAgICAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBTRVJWRVJbImlwQWRkcmVzc2VzVjRIb3N0Il07DQogICAgICAgICAgICAgICAgdmFyIHNlbGVjdCA9IGNvbnRlbnQuY3JlYXRlU2VsZWN0KHRleHQsIHZhbHVlcywgZGF0YSwgc2V0dGluZ3NLZXkpOw0KICAgICAgICAgICAgICAgIHNlbGVjdC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChzZWxlY3QpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAidHVuZXIiOg0KICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MudHVuZXIudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciB0ZXh0ID0gbmV3IEFycmF5KCk7DQogICAgICAgICAgICAgICAgdmFyIHZhbHVlcyA9IG5ldyBBcnJheSgpOw0KICAgICAgICAgICAgICAgIGZvciAodmFyIGkgPSAxOyBpIDw9IDEwMDsgaSsrKSB7DQogICAgICAgICAgICAgICAgICAgIHRleHQucHVzaChpKTsNCiAgICAgICAgICAgICAgICAgICAgdmFsdWVzLnB1c2goaSk7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIHZhciBzZWxlY3QgPSBjb250ZW50LmNyZWF0ZVNlbGVjdCh0ZXh0LCB2YWx1ZXMsIGRhdGEsIHNldHRpbmdzS2V5KTsNCiAgICAgICAgICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQoc2VsZWN0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImVwZ1NvdXJjZSI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5lcGdTb3VyY2UudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciB0ZXh0ID0gWyJQTVMiLCAiWEVQRyJdOw0KICAgICAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBbIlBNUyIsICJYRVBHIl07DQogICAgICAgICAgICAgICAgdmFyIHNlbGVjdCA9IGNvbnRlbnQuY3JlYXRlU2VsZWN0KHRleHQsIHZhbHVlcywgZGF0YSwgc2V0dGluZ3NLZXkpOw0KICAgICAgICAgICAgICAgIHNlbGVjdC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChzZWxlY3QpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiZGVmYXVsdE1pc3NpbmdFUEciOg0KICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MuZGVmYXVsdE1pc3NpbmdFUEcudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciB0ZXh0ID0gWw0KICAgICAgICAgICAgICAgICAgICAiLSIsICIzMCBNaW51dGVzICgzMF9NaW51dGVzKSIsICI2MCBNaW51dGVzICg2MF9NaW51dGVzKSIsICI5MCBNaW51dGVzICg5MF9NaW51dGVzKSIsDQogICAgICAgICAgICAgICAgICAgICIxMjAgTWludXRlcyAoMTIwX01pbnV0ZXMpIiwgIjE4MCBNaW51dGVzICgxODBfTWludXRlcykiLCAiMjQwIE1pbnV0ZXMgKDI0MF9NaW51dGVzKSIsICIzNjAgTWludXRlcyAoMzYwX01pbnV0ZXMpIg0KICAgICAgICAgICAgICAgIF07DQogICAgICAgICAgICAgICAgdmFyIHZhbHVlcyA9IFsNCiAgICAgICAgICAgICAgICAgICAgIi0iLCAiMzBfTWludXRlcyIsICI2MF9NaW51dGVzIiwgIjkwX01pbnV0ZXMiLCAiMTIwX01pbnV0ZXMiLCAiMTgwX01pbnV0ZXMiLCAiMjQwX01pbnV0ZXMiLCAiMzYwX01pbnV0ZXMiDQogICAgICAgICAgICAgICAgXTsNCiAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCBkYXRhLCBzZXR0aW5nc0tleSk7DQogICAgICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKHNlbGVjdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJiYWNrdXAua2VlcCI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5iYWNrdXBLZWVwLnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgdGV4dCA9IFsiNSIsICIxMCIsICIyMCIsICIzMCIsICI0MCIsICI1MCJdOw0KICAgICAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBbIjUiLCAiMTAiLCAiMjAiLCAiMzAiLCAiNDAiLCAiNTAiXTsNCiAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCBkYXRhLCBzZXR0aW5nc0tleSk7DQogICAgICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKHNlbGVjdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJidWZmZXIuc2l6ZS5rYiI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5idWZmZXJTaXplLnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgdGV4dCA9IFsiMC41IE1CIiwgIjEgTUIiLCAiMiBNQiIsICIzIE1CIiwgIjQgTUIiLCAiNSBNQiIsICI2IE1CIiwgIjcgTUIiLCAiOCBNQiJdOw0KICAgICAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBbIjUxMiIsICIxMDI0IiwgIjIwNDgiLCAiMzA3MiIsICI0MDk2IiwgIjUxMjAiLCAiNjE0NCIsICI3MTY4IiwgIjgxOTIiXTsNCiAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCBkYXRhLCBzZXR0aW5nc0tleSk7DQogICAgICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKHNlbGVjdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJidWZmZXIiOg0KICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3Muc3RyZWFtQnVmZmVyaW5nLnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgdGV4dCA9IFsie3suc2V0dGluZ3Muc3RyZWFtQnVmZmVyaW5nLmluZm9fZmFsc2V9fSIsICJ4VGVWZTogKHt7LnNldHRpbmdzLnN0cmVhbUJ1ZmZlcmluZy5pbmZvX3h0ZXZlfX0pIiwgIkZGbXBlZzogKHt7LnNldHRpbmdzLnN0cmVhbUJ1ZmZlcmluZy5pbmZvX2ZmbXBlZ319KSIsICJWTEM6ICh7ey5zZXR0aW5ncy5zdHJlYW1CdWZmZXJpbmcuaW5mb192bGN9fSkiXTsNCiAgICAgICAgICAgICAgICB2YXIgdmFsdWVzID0gWyItIiwgInh0ZXZlIiwgImZmbXBlZyIsICJ2bGMiXTsNCiAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCBkYXRhLCBzZXR0aW5nc0tleSk7DQogICAgICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKHNlbGVjdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ1ZHB4eSI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy51ZHB4eS50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsICJ1ZHB4eSIsIGRhdGEpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3suc2V0dGluZ3MudWRweHkucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgfQ0KICAgICAgICByZXR1cm4gc2V0dGluZzsNCiAgICB9DQogICAgY3JlYXRlRGVzY3JpcHRpb24oc2V0dGluZ3NLZXkpIHsNCiAgICAgICAgdmFyIGRlc2NyaXB0aW9uID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVFIiKTsNCiAgICAgICAgdmFyIHRleHQ7DQogICAgICAgIHN3aXRjaCAoc2V0dGluZ3NLZXkpIHsNCiAgICAgICAgICAgIGNhc2UgInRsc01vZGUiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MudGxzTW9kZS5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImRpc2FsbG93VVJMRHVwbGljYXRlcyI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5kaXNhbGxvd1VSTER1cGxpY2F0ZXMuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJhdXRoZW50aWNhdGlvbi53ZWIiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MuYXV0aGVudGljYXRpb25XRUIuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJhdXRoZW50aWNhdGlvbi5tM3UiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MuYXV0aGVudGljYXRpb25NM1UuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJhdXRoZW50aWNhdGlvbi5wbXMiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MuYXV0aGVudGljYXRpb25QTVMuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJhdXRoZW50aWNhdGlvbi54bWwiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MuYXV0aGVudGljYXRpb25YTUwuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJhdXRoZW50aWNhdGlvbi5hcGkiOg0KICAgICAgICAgICAgICAgIGlmIChTRVJWRVJbInNldHRpbmdzIl1bImF1dGhlbnRpY2F0aW9uLndlYiJdID09IHRydWUpIHsNCiAgICAgICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5hdXRoZW50aWNhdGlvbkFQSS5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ4dGV2ZUF1dG9VcGRhdGUiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MueHRldmVBdXRvVXBkYXRlLmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiYmFja3VwLmtlZXAiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MuYmFja3VwS2VlcC5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImJhY2t1cC5wYXRoIjoNCiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLmJhY2t1cFBhdGguZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ0ZW1wLnBhdGgiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MudGVtcFBhdGguZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJidWZmZXIiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3Muc3RyZWFtQnVmZmVyaW5nLmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiYnVmZmVyLnNpemUua2IiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MuYnVmZmVyU2l6ZS5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInN0b3JlQnVmZmVySW5SQU0iOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3Muc3RvcmVCdWZmZXJJblJBTS5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImJ1ZmZlci50aW1lb3V0IjoNCiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLmJ1ZmZlclRpbWVvdXQuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ1c2VyLmFnZW50IjoNCiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLnVzZXJBZ2VudC5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImZmbXBlZy5wYXRoIjoNCiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLmZmbXBlZ1BhdGguZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJmZm1wZWcub3B0aW9ucyI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5mZm1wZWdPcHRpb25zLmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAidmxjLnBhdGgiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MudmxjUGF0aC5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInZsYy5vcHRpb25zIjoNCiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLnZsY09wdGlvbnMuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJlcGdTb3VyY2UiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MuZXBnU291cmNlLmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiaG9zdElQIjoNCiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLmhvc3RJUC5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInR1bmVyIjoNCiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLnR1bmVyLmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAidXBkYXRlIjoNCiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLnVwZGF0ZS5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImFwaSI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5hcGkuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJkZWZhdWx0TWlzc2luZ0VQRyI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5kZWZhdWx0TWlzc2luZ0VQRy5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImVuYWJsZU1hcHBlZENoYW5uZWxzIjoNCiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLmVuYWJsZU1hcHBlZENoYW5uZWxzLmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiZmlsZXMudXBkYXRlIjoNCiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLmZpbGVzVXBkYXRlLmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiY2FjaGUuaW1hZ2VzIjoNCiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLmNhY2hlSW1hZ2VzLmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAieGVwZy5yZXBsYWNlLm1pc3NpbmcuaW1hZ2VzIjoNCiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLnJlcGxhY2VFbXB0eUltYWdlcy5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInVkcHh5IjoNCiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLnVkcHh5LmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgICAgICB0ZXh0ID0gIiI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIH0NCiAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAiIjsNCiAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICB2YXIgcHJlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiUFJFIik7DQogICAgICAgIHByZS5pbm5lckhUTUwgPSB0ZXh0Ow0KICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKHByZSk7DQogICAgICAgIGRlc2NyaXB0aW9uLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgIGRlc2NyaXB0aW9uLmFwcGVuZENoaWxkKHRkUmlnaHQpOw0KICAgICAgICByZXR1cm4gZGVzY3JpcHRpb247DQogICAgfQ0KfQ0KY2xhc3MgU2V0dGluZ3NDYXRlZ29yeUl0ZW0gZXh0ZW5kcyBTZXR0aW5nc0NhdGVnb3J5IHsNCiAgICBjb25zdHJ1Y3RvcihoZWFkbGluZSwgc2V0dGluZ3NLZXlzKSB7DQogICAgICAgIHN1cGVyKCk7DQogICAgICAgIHRoaXMuaGVhZGxpbmUgPSBoZWFkbGluZTsNCiAgICAgICAgdGhpcy5zZXR0aW5nc0tleXMgPSBzZXR0aW5nc0tleXM7DQogICAgfQ0KICAgIGNyZWF0ZUNhdGVnb3J5KCkgew0KICAgICAgICB2YXIgaGVhZGxpbmUgPSB0aGlzLmNyZWF0ZUNhdGVnb3J5SGVhZGxpbmUodGhpcy5oZWFkbGluZSk7DQogICAgICAgIHZhciBzZXR0aW5nc0tleXMgPSB0aGlzLnNldHRpbmdzS2V5czsNCiAgICAgICAgdmFyIGRvYyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHRoaXMuRG9jdW1lbnRJRCk7DQogICAgICAgIGRvYy5hcHBlbmRDaGlsZChoZWFkbGluZSk7DQogICAgICAgIC8vIENyZWF0ZSBhIHRhYmxlIGZvciB0aGUgY2F0ZWdvcnkNCiAgICAgICAgdmFyIHRhYmxlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEFCTEUiKTsNCiAgICAgICAgdmFyIGtleXMgPSBzZXR0aW5nc0tleXMuc3BsaXQoIiwiKTsNCiAgICAgICAga2V5cy5mb3JFYWNoKHNldHRpbmdzS2V5ID0+IHsNCiAgICAgICAgICAgIHN3aXRjaCAoc2V0dGluZ3NLZXkpIHsNCiAgICAgICAgICAgICAgICBjYXNlICJhdXRoZW50aWNhdGlvbi5wbXMiOg0KICAgICAgICAgICAgICAgIGNhc2UgImF1dGhlbnRpY2F0aW9uLm0zdSI6DQogICAgICAgICAgICAgICAgY2FzZSAiYXV0aGVudGljYXRpb24ueG1sIjoNCiAgICAgICAgICAgICAgICBjYXNlICJhdXRoZW50aWNhdGlvbi5hcGkiOg0KICAgICAgICAgICAgICAgICAgICBpZiAoU0VSVkVSWyJzZXR0aW5ncyJdWyJhdXRoZW50aWNhdGlvbi53ZWIiXSA9PSBmYWxzZSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBkZWZhdWx0Og0KICAgICAgICAgICAgICAgICAgICB2YXIgaXRlbSA9IHRoaXMuY3JlYXRlU2V0dGluZ3Moc2V0dGluZ3NLZXkpOw0KICAgICAgICAgICAgICAgICAgICB2YXIgZGVzY3JpcHRpb24gPSB0aGlzLmNyZWF0ZURlc2NyaXB0aW9uKHNldHRpbmdzS2V5KTsNCiAgICAgICAgICAgICAgICAgICAgdGFibGUuYXBwZW5kQ2hpbGQoaXRlbSk7DQogICAgICAgICAgICAgICAgICAgIHRhYmxlLmFwcGVuZENoaWxkKGRlc2NyaXB0aW9uKTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICB9DQogICAgICAgIH0pOw0KICAgICAgICBkb2MuYXBwZW5kQ2hpbGQodGFibGUpOw0KICAgICAgICBkb2MuYXBwZW5kQ2hpbGQodGhpcy5jcmVhdGVIUigpKTsNCiAgICB9DQp9DQpmdW5jdGlvbiBzaG93U2V0dGluZ3MoKSB7DQogICAgZm9yIChsZXQgaSA9IDA7IGkgPCBzZXR0aW5nc0NhdGVnb3J5Lmxlbmd0aDsgaSsrKSB7DQogICAgICAgIHNldHRpbmdzQ2F0ZWdvcnlbaV0uY3JlYXRlQ2F0ZWdvcnkoKTsNCiAgICB9DQp9DQpmdW5jdGlvbiBzYXZlU2V0dGluZ3MoKSB7DQogICAgdmFyIGNtZCA9ICJzYXZlU2V0dGluZ3MiOw0KICAgIHZhciBkaXYgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29udGVudF9zZXR0aW5ncyIpOw0KICAgIHZhciBzZXR0aW5ncyA9IGRpdi5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCJjaGFuZ2VkIik7DQogICAgdmFyIG5ld1NldHRpbmdzID0gbmV3IE9iamVjdCgpOw0KICAgIGZvciAobGV0IGkgPSAwOyBpIDwgc2V0dGluZ3MubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgdmFyIG5hbWU7DQogICAgICAgIHZhciB2YWx1ZTsNCiAgICAgICAgc3dpdGNoIChzZXR0aW5nc1tpXS50YWdOYW1lKSB7DQogICAgICAgICAgICBjYXNlICJJTlBVVCI6DQogICAgICAgICAgICAgICAgc3dpdGNoIChzZXR0aW5nc1tpXS50eXBlKSB7DQogICAgICAgICAgICAgICAgICAgIGNhc2UgImNoZWNrYm94IjoNCiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWUgPSBzZXR0aW5nc1tpXS5uYW1lOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSBzZXR0aW5nc1tpXS5jaGVja2VkOw0KICAgICAgICAgICAgICAgICAgICAgICAgbmV3U2V0dGluZ3NbbmFtZV0gPSB2YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgICAgICBjYXNlICJ0ZXh0IjoNCiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWUgPSBzZXR0aW5nc1tpXS5uYW1lOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSBzZXR0aW5nc1tpXS52YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHN3aXRjaCAobmFtZSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgInVwZGF0ZSI6DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlID0gdmFsdWUuc3BsaXQoIiwiKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSB2YWx1ZS5maWx0ZXIoZnVuY3Rpb24gKGUpIHsgcmV0dXJuIGU7IH0pOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYXNlICJidWZmZXIudGltZW91dCI6DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlID0gcGFyc2VGbG9hdCh2YWx1ZSk7DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICBuZXdTZXR0aW5nc1tuYW1lXSA9IHZhbHVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiU0VMRUNUIjoNCiAgICAgICAgICAgICAgICBuYW1lID0gc2V0dGluZ3NbaV0ubmFtZTsNCiAgICAgICAgICAgICAgICB2YWx1ZSA9IHNldHRpbmdzW2ldLnZhbHVlOw0KICAgICAgICAgICAgICAgIC8vIElmIHRoZSB2YWx1ZSBpcyBhIG51bWJlciwgc3RvcmUgaXQgYXMgYSBudW1iZXINCiAgICAgICAgICAgICAgICBpZiAoaXNOYU4odmFsdWUpKSB7DQogICAgICAgICAgICAgICAgICAgIG5ld1NldHRpbmdzW25hbWVdID0gdmFsdWU7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgICAgICAgICBuZXdTZXR0aW5nc1tuYW1lXSA9IHBhcnNlSW50KHZhbHVlKTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIH0NCiAgICB9DQogICAgdmFyIGRhdGEgPSBuZXcgT2JqZWN0KCk7DQogICAgZGF0YVsic2V0dGluZ3MiXSA9IG5ld1NldHRpbmdzOw0KICAgIHZhciBzZXJ2ZXIgPSBuZXcgU2VydmVyKGNtZCk7DQogICAgc2VydmVyLnJlcXVlc3QoZGF0YSk7DQp9DQo=" + webUI["html/lang/en.json"] = "ew0KICAibWFpbk1lbnUiOg0KICB7DQogICAgIml0ZW0iOg0KICAgIHsNCiAgICAgICJwbGF5bGlzdCI6ICJQbGF5bGlzdCIsDQogICAgICAicG1zSUQiOiAiUE1TIElEIiwNCiAgICAgICJmaWx0ZXIiOiAiRmlsdGVyIiwNCiAgICAgICJ4bWx0diI6ICJYTUxUViIsDQogICAgICAibWFwcGluZyI6ICJNYXBwaW5nIiwNCiAgICAgICJ1c2VycyI6ICJVc2VycyIsDQogICAgICAic2V0dGluZ3MiOiAiU2V0dGluZ3MiLA0KICAgICAgImxvZyI6ICJMb2ciLA0KICAgICAgImxvZ291dCI6ICJMb2dvdXQiDQogICAgfSwNCiAgICAiaGVhZGxpbmUiOg0KICAgIHsNCiAgICAgICJwbGF5bGlzdCI6ICJMb2NhbCBvciByZW1vdGUgcGxheWxpc3RzIiwNCiAgICAgICJmaWx0ZXIiOiAiRmlsdGVyIHBsYXlsaXN0IiwNCiAgICAgICJ4bWx0diI6ICJMb2NhbCBvciByZW1vdGUgWE1MVFYgZmlsZXMiLA0KICAgICAgIm1hcHBpbmciOiAiTWFwIHBsYXlsaXN0IGNoYW5uZWxzIHRvIEVQRyBjaGFubmVscyIsDQogICAgICAidXNlcnMiOiAiVXNlciBtYW5hZ2VtZW50IiwNCiAgICAgICJzZXR0aW5ncyI6ICJTZXR0aW5ncyIsDQogICAgICAibG9nIjogIkxvZyIsDQogICAgICAibG9nb3V0IjogIkxvZ291dCINCiAgICB9DQogIH0sDQogICJjb25maXJtIjoNCiAgew0KICAgICJyZXN0b3JlIjogIkFsbCBkYXRhIHdpbGwgYmUgcmVwbGFjZWQgd2l0aCB0aG9zZSBmcm9tIHRoZSBiYWNrdXAuIFNob3VsZCB0aGUgZmlsZXMgYmUgcmVzdG9yZWQ/Ig0KICB9LA0KICAiYWxlcnQiOg0KICB7DQogICAgImZpbGVMb2FkaW5nRXJyb3IiOiAiRmlsZSBjb3VsZG4ndCBiZSBsb2FkZWQiLA0KICAgICJpbnZhbGlkQ2hhbm5lbE51bWJlciI6ICJJbnZhbGlkIGNoYW5uZWwgbnVtYmVyIiwNCiAgICAibWlzc2luZ0lucHV0IjogIk1pc3NpbmcgaW5wdXQiDQogIH0sDQogICJidXR0b24iOg0KICB7DQogICAgImJhY2siOiAiQmFjayIsDQogICAgImJhY2t1cCI6ICJCYWNrdXAiLA0KICAgICJidWxrRWRpdCI6ICJCdWxrIEVkaXQiLA0KICAgICJjYW5jZWwiOiAiQ2FuY2VsIiwNCiAgICAiZGVsZXRlIjogIkRlbGV0ZSIsDQogICAgImRvbmUiOiAiRG9uZSIsDQogICAgImxvZ2luIjogIkxvZ2luIiwNCiAgICAibmV3IjogIk5ldyIsDQogICAgIm5leHQiOiAiTmV4dCIsDQogICAgInJlc3RvcmUiOiAiUmVzdG9yZSIsDQogICAgInNhdmUiOiAiU2F2ZSIsDQogICAgInNlYXJjaCI6ICJTZWFyY2giLA0KICAgICJ1cGRhdGUiOiAiVXBkYXRlIiwNCiAgICAiY3JhZXRlQWNjb3VudCI6ICJDcmVhdGUgQWNjb3VudCIsDQogICAgInJlc2V0TG9ncyI6ICJSZXNldCBMb2dzIiwNCiAgICAidXBsb2FkTG9nbyI6ICJVcGxvYWQgTG9nbyINCiAgfSwNCiAgImZpbHRlciI6DQogIHsNCiAgICAidGFibGUiOg0KICAgIHsNCiAgICAgICJzdGFydGluZ0NoYW5uZWwiOiAiU3RhcnRpbmcgQ2guIE5vLiIsDQogICAgICAibmFtZSI6ICJGaWx0ZXIgTmFtZSIsDQogICAgICAidHlwZSI6ICJGaWx0ZXIgVHlwZSIsDQogICAgICAiZmlsdGVyIjogIkZpbHRlciINCiAgICB9LA0KICAgICJjdXN0b20iOiAiQ3VzdG9tIiwNCiAgICAiZ3JvdXAiOiAiTTNVIEdyb3VwIiwNCiAgICAibmFtZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIkZpbHRlciBOYW1lIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJGaWx0ZXIgbmFtZSIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgImRlc2NyaXB0aW9uIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiRGVzY3JpcHRpb24iLA0KICAgICAgInBsYWNlaG9sZGVyIjogIkRlc2NyaXB0aW9uIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAidHlwZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIlR5cGUiLA0KICAgICAgImdyb3VwVGl0bGUiOiAiR3JvdXAgVGl0bGUiLA0KICAgICAgImN1c3RvbUZpbHRlciI6ICJDdXN0b20gRmlsdGVyIg0KICAgIH0sDQogICAgImNhc2VTZW5zaXRpdmUiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJDYXNlIFNlbnNpdGl2ZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAiZmlsdGVyUnVsZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIkZpbHRlciBSdWxlIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJTcG9ydCB7SER9ICF7RVMsSVR9IiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAiZmlsdGVyR3JvdXAiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJHcm91cCBUaXRsZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJTZWxlY3QgYSBNM1UgZ3JvdXAuIChDb3VudGVyKTxicj5DaGFuZ2luZyB0aGUgZ3JvdXAgdGl0bGUgaW4gdGhlIE0zVSBpbnZhbGlkYXRlcyB0aGUgZmlsdGVyLiINCiAgICB9LA0KICAgICJpbmNsdWRlIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiSW5jbHVkZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiRkhELFVIRCIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiQ2hhbm5lbCBuYW1lIG11c3QgaW5jbHVkZS48YnI+KENvbW1hIHNlcGFyYXRlZCkgQ29tbWEgbWVhbnMgb3IiDQogICAgfSwNCiAgICAiZXhjbHVkZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIkV4Y2x1ZGUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIkVTLElUIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJDaGFubmVsIG5hbWUgbXVzdCBub3QgY29udGFpbi48YnI+KENvbW1hIHNlcGFyYXRlZCkgQ29tbWEgbWVhbnMgb3IiDQogICAgfSwNCiAgICAicHJlc2VydmVNYXBwaW5nIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiUHJlc2VydmUgRXhpc3RpbmcgTTNVPGJyPkNoYW5uZWwgTnVtYmVycyIsDQogICAgICAicGFsY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJQcmVzZXJ2ZSBleGlzdGluZyBNM1UgcGxheWxpc3QgY2hhbm5lbCBudW1iZXJzPyINCiAgICB9LA0KICAgICJzdGFydGluZ0NoYW5uZWwiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJTdGFydGluZyBDaGFubmVsIE51bWJlciIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfQ0KICB9LA0KICAicGxheWxpc3QiOg0KICB7DQogICAgInRhYmxlIjoNCiAgICB7DQogICAgICAicGxheWxpc3QiOiAiUGxheWxpc3QiLA0KICAgICAgInR1bmVyIjogIlR1bmVyIiwNCiAgICAgICJsYXN0VXBkYXRlIjogIkxhc3QgVXBkYXRlIiwNCiAgICAgICJhdmFpbGFiaWxpdHkiOiAiQXZhaWxhYmlsaXR5IiwNCiAgICAgICJ0eXBlIjogIlR5cGUiLA0KICAgICAgInN0cmVhbXMiOiAiU3RyZWFtcyIsDQogICAgICAiZ3JvdXBUaXRsZSI6ICJncm91cC10aXRsZSIsDQogICAgICAidHZnSUQiOiAidHZnLWlkIiwNCiAgICAgICJ1bmlxdWVJRCI6ICJVbmlxdWUgSUQiDQogICAgfSwNCiAgICAicGxheWxpc3RUeXBlIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiUGxheWxpc3QgdHlwZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAidHlwZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIlR5cGUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgIm5hbWUiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJOYW1lIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJQbGF5bGlzdCBuYW1lIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAiZGVzY3JpcHRpb24iOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJEZXNjcmlwdGlvbiIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiRGVzY3JpcHRpb24iLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJmaWxlTTNVIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiTTNVIEZpbGUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIkZpbGUgcGF0aCBvciBVUkwgb2YgdGhlIE0zVSIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgImZpbGVIREhSIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiSERIb21lUnVuIElQIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJJUCBhZGRyZXNzIGFuZCBwb3J0ICgxOTIuMTY4LjEuMTA6NTAwNCkiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJ0dW5lciI6DQogICAgew0KICAgICAgInRpdGxlIjogIlR1bmVyIC8gU3RyZWFtcyIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJOdW1iZXIgb2YgcGFyYWxsZWwgY29ubmVjdGlvbnMgdGhhdCBjYW4gYmUgZXN0YWJsaXNoZWQgdG8gdGhlIHByb3ZpZGVyLiA8YnI+T25seSBhdmFpbGFibGUgd2l0aCBhY3RpdmF0ZWQgYnVmZmVyLjxicj5OZXcgc2V0dGluZ3Mgd2lsbCBvbmx5IGJlIGFwcGxpZWQgYWZ0ZXIgcXVpdHRpbmcgYWxsIHN0cmVhbXMuIg0KICAgIH0NCiAgfSwNCiAgInhtbHR2IjoNCiAgew0KICAgICJ0YWJsZSI6DQogICAgew0KICAgICAgImd1aWRlIjogIkd1aWRlIiwNCiAgICAgICJsYXN0VXBkYXRlIjogIkxhc3QgVXBkYXRlIiwNCiAgICAgICJhdmFpbGFiaWxpdHkiOiAiQXZhaWxhYmlsaXR5IiwNCiAgICAgICJjaGFubmVscyI6ICJDaGFubmVscyIsDQogICAgICAicHJvZ3JhbXMiOiAiUHJvZ3JhbXMiDQogICAgfSwNCiAgICAibmFtZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIk5hbWUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIkd1aWRlIG5hbWUiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJkZXNjcmlwdGlvbiI6DQogICAgew0KICAgICAgInRpdGxlIjogIkRlc2NyaXB0aW9uIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJEZXNjcmlwdGlvbiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgImZpbGVYTUxUViI6DQogICAgew0KICAgICAgInRpdGxlIjogIlhNTFRWIEZpbGUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIkZpbGUgcGF0aCBvciBVUkwgb2YgdGhlIFhNTFRWIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfQ0KICB9LA0KICAibWFwcGluZyI6DQogIHsNCiAgICAidGFibGUiOg0KICAgIHsNCiAgICAgICJjaE5vIjogIkNoLiBOby4iLA0KICAgICAgImxvZ28iOiAiTG9nbyIsDQogICAgICAiY2hhbm5lbE5hbWUiOiAiQ2hhbm5lbCBOYW1lIiwNCiAgICAgICJ1cGRhdGVDaGFubmVsTmFtZVJlZ2V4IjogIlVwZC4gUnguIiwNCiAgICAgICJwbGF5bGlzdCI6ICJQbGF5bGlzdCIsDQogICAgICAiZ3JvdXBUaXRsZSI6ICJHcm91cCBUaXRsZSIsDQogICAgICAieG1sdHZGaWxlIjogIlhNTFRWIEZpbGUiLA0KICAgICAgInhtbHR2SUQiOiAiWE1MVFYgSUQiLA0KICAgICAgInRpbWVzaGlmdCI6ICJUaW1lc2hpZnQiDQogICAgfSwNCiAgICAiYWN0aXZlIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiQWN0aXZlIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJjaGFubmVsTmFtZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIkNoYW5uZWwgTmFtZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAiZGVzY3JpcHRpb24iOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJDaGFubmVsIERlc2NyaXB0aW9uIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJVc2VkIGJ5IHRoZSBEdW1teSBhcyBhbiBYTUwgZGVzY3JpcHRpb24iLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJ1cGRhdGVDaGFubmVsTmFtZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIlVwZGF0ZSBDaGFubmVsIE5hbWUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgInVwZGF0ZUNoYW5uZWxOYW1lUmVnZXgiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJDaGFubmVsIG5hbWUgdXBkYXRlIHJlZ2V4IiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJGb3IgZXhhbXBsZSBeUFBWWyBcXFxcLV9dPzEuKiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiT24gdXBkYXRlLCBpZiBhbnkgbmV3IGNoYW5uZWwgbmFtZSBtYXRjaGVzIHRoaXMgcmVnZXgsIHJlbmFtZSBjdXJyZW50IGNoYW5uZWwgdG8gdGhlIGZpcnN0IG1hdGNoaW5nIG5hbWUiDQogICAgfSwNCiAgICAidXBkYXRlQ2hhbm5lbE5hbWVCeUdyb3VwUmVnZXgiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJPbmx5IGJ5IGdyb3VwIHJlZ2V4IiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIlJlbmFtZSB0aGlzIGNoYW5uZWwgb25seSBpZiBjdXJyZW50IHVzZXItZGVmaW5lZCBncm91cCBtYXRjaGVzIHRoaXMgcmVnZXgiDQogICAgfSwNCiAgICAidXBkYXRlQ2hhbm5lbEdyb3VwIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiVXBkYXRlIENoYW5uZWwgR3JvdXAiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiSWYgY2hlY2tlZCwgdXNlIGdyb3VwIGZyb20gdGhlIGRhdGFiYXNlIg0KICAgIH0sDQogICAgImNoYW5uZWxMb2dvIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiTG9nbyBVUkwiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgInVwZGF0ZUNoYW5uZWxMb2dvIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiVXBkYXRlIENoYW5uZWwgTG9nbyIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAiZXBnQ2F0ZWdvcnkiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJFUEcgQ2F0ZWdvcnkiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgIm0zdUdyb3VwVGl0bGUiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJHcm91cCBUaXRsZSAoeHRldmUubTN1KSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAieG1sdHZGaWxlIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiWE1MVFYgRmlsZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAieG1sdHZDaGFubmVsIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiWE1MVFYgQ2hhbm5lbCIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAidGltZXNoaWZ0IjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiVGltZXNoaWZ0IiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIwIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfQ0KICB9LA0KICAidXNlcnMiOg0KICB7DQogICAgInRhYmxlIjoNCiAgICB7DQogICAgICAidXNlcm5hbWUiOiAiVXNlcm5hbWUiLA0KICAgICAgInBhc3N3b3JkIjogIlBhc3N3b3JkIiwNCiAgICAgICJ3ZWIiOiAiV0VCIiwNCiAgICAgICJwbXMiOiAiUE1TIiwNCiAgICAgICJtM3UiOiAiTTNVIiwNCiAgICAgICJ4bWwiOiAiWE1MIiwNCiAgICAgICJhcGkiOiAiQVBJIg0KICAgIH0sDQogICAgInVzZXJuYW1lIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiVXNlcm5hbWUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIlVzZXJuYW1lIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAicGFzc3dvcmQiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJQYXNzd29yZCIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiUGFzc3dvcmQiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJjb25maXJtIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiQ29uZmlybSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiUGFzc3dvcmQgY29uZmlybSIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgIndlYiI6DQogICAgew0KICAgICAgInRpdGxlIjogIldlYiBBY2Nlc3MiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgInBtcyI6DQogICAgew0KICAgICAgInRpdGxlIjogIlBNUyBBY2Nlc3MiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgIm0zdSI6DQogICAgew0KICAgICAgInRpdGxlIjogIk0zVSBBY2Nlc3MiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgInhtbCI6DQogICAgew0KICAgICAgInRpdGxlIjogIlhNTCBBY2Nlc3MiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgImFwaSI6DQogICAgew0KICAgICAgInRpdGxlIjogIkFQSSBBY2Nlc3MiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0NCiAgfSwNCiAgInNldHRpbmdzIjoNCiAgew0KICAgICJjYXRlZ29yeSI6DQogICAgew0KICAgICAgImdlbmVyYWwiOiAiR2VuZXJhbCIsDQogICAgICAibWFwcGluZyI6ICJNYXBwaW5nIiwNCiAgICAgICJmaWxlcyI6ICJGaWxlcyIsDQogICAgICAic3RyZWFtaW5nIjogIlN0cmVhbWluZyIsDQogICAgICAiYmFja3VwIjogIkJhY2t1cCIsDQogICAgICAiYXV0aGVudGljYXRpb24iOiAiQXV0aGVudGljYXRpb24iDQogICAgfSwNCiAgICAidXBkYXRlIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiU2NoZWR1bGUgZm9yIHVwZGF0aW5nIChQbGF5bGlzdCwgWE1MVFYsIEJhY2t1cCkiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIjAwMDAsMTAwMCwyMDAwIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJUaW1lIGluIDI0IGhvdXIgZm9ybWF0ICgwODAwID0gODowMCBhbSkuIE1vcmUgdGltZXMgY2FuIGJlIGVudGVyZWQgY29tbWEgc2VwYXJhdGVkLiBMZWF2ZSB0aGlzIGZpZWxkIGVtcHR5IGlmIG5vIHVwZGF0ZXMgYXJlIHRvIGJlIGNhcnJpZWQgb3V0LiINCiAgICB9LA0KICAgICJhcGkiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJBUEkgSW50ZXJmYWNlIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJWaWEgQVBJIGludGVyZmFjZSBpdCBpcyBwb3NzaWJsZSB0byBzZW5kIGNvbW1hbmRzIHRvIHhUZVZlLiBBUEkgZG9jdW1lbnRhdGlvbiBpcyA8YSBocmVmPSdodHRwczovL2dpdGh1Yi5jb20veHRldmUtcHJvamVjdC94VGVWZS1Eb2N1bWVudGF0aW9uL2Jsb2IvbWFzdGVyL2VuL2NvbmZpZ3VyYXRpb24ubWQjYXBpJz5oZXJlPC9hPiINCiAgICB9LA0KICAgICJkZWZhdWx0TWlzc2luZ0VQRyI6DQogICAgew0KICAgICAgInRpdGxlIjogIkZpbGwgTWlzc2luZyBFUEcgRGF0YSIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiV2hlbiB0aGVyZSBpcyBubyBtYXRjaGluZyBFUEcgZGF0YSBmb3IgY2hhbm5lbCwgPGJyPmF1dG9maWxsIHdpdGggeFRlVmUgZHVtbXkgRVBHIGRhdGE/Ig0KICAgIH0sDQogICAgImVuYWJsZU1hcHBlZENoYW5uZWxzIjogew0KICAgICAgInRpdGxlIjogIkVuYWJsZSBtYXBwZWQgY2hhbm5lbHMiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIkF1dG9tYXRpY2FsbHkgZW5hYmxlIGNoYW5uZWxzIHdpdGggYXNzaWduZWQgRVBHIGRhdGEiDQogICAgfSwNCiAgICAiZGlzYWxsb3dVUkxEdXBsaWNhdGVzIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiRGlzYWxsb3cgVVJMIGR1cGxpY2F0ZXMiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIklmIGNoZWNrZWQsIGRvIG5vdCBhZGQgYSBuZXcgY2hhbm5lbCBmcm9tIHBsYXlsaXN0IGlmIGNoYW5uZWwgd2l0aCBzdWNoIFVSTCBhbHJlYWR5IGV4aXN0cyINCiAgICB9LA0KICAgICJlcGdTb3VyY2UiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJFUEcgU291cmNlIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJQTVM6PGJyPi0gVXNlIEVQRyBkYXRhIGZyb20gUGxleCBvciBFbWJ5IDxicj48YnI+WEVQRzo8YnI+LSBVc2Ugb2Ygb25lIG9yIG1vcmUgWE1MVFYgZmlsZXM8YnI+LSBDaGFubmVsIG1hbmFnZW1lbnQ8YnI+LSBNM1UgLyBYTUxUViBleHBvcnQgKEhUVFAgbGluayBmb3IgSVBUViBhcHBzKSINCiAgICB9LA0KICAgICJ0dW5lciI6DQogICAgew0KICAgICAgInRpdGxlIjogIk51bWJlciBvZiBUdW5lcnMiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIk51bWJlciBvZiBwYXJhbGxlbCBjb25uZWN0aW9ucyB0aGF0IGNhbiBiZSBlc3RhYmxpc2hlZCB0byB0aGUgcHJvdmlkZXIuPGJyPkF2YWlsYWJsZSBmb3I6IFBsZXgsIEVtYnkgKEhESFIpLCBNM1UgKHdpdGggYWN0aXZlIGJ1ZmZlcikuPGJyPkFmdGVyIGEgY2hhbmdlLCB4VGVWZSBtdXN0IGJlIGRlbGV0ZSBpbiB0aGUgUGxleCAvIEVtYnkgRFZSIHNldHRpbmdzIGFuZCBzZXQgdXAgYWdhaW4uIg0KICAgIH0sDQogICAgImhvc3RJUCI6DQogICAgew0KICAgICAgInRpdGxlIjogIkhvc3QgSVAiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIklQIGFkZHJlc3MgeFRlVmUgd2lsbCB1c2UgdG8gZm9ybSBNM1UgYW5kIFhNTFRWIGZpbGVzIg0KICAgIH0sDQogICAgInRsc01vZGUiOiB7DQogICAgICAidGl0bGUiOiAiVExTIChIVFRQUykgbW9kZSIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiQ2hhbmdlcyB3ZWIgc2VydmVyIHByb3RvY29sIHRvIEhUVFBTLjxicj5Gb3IgZGV0YWlscywgc2VlIDxhPmh0dHBzOi8vZ2l0aHViLmNvbS9TQ1AwMDIveFRlVmUjdGxzLW1vZGU8L2E+Ig0KICAgIH0sDQogICAgImZpbGVzVXBkYXRlIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiVXBkYXRlcyBhbGwgZmlsZXMgYXQgc3RhcnR1cCIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiVXBkYXRlcyBhbGwgcGxheWxpc3RzLCB0dW5lciBhbmQgWE1MVFYgZmlsZXMgYXQgc3RhcnR1cC4iDQogICAgfSwNCiAgICAiY2FjaGVJbWFnZXMiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJJbWFnZSBDYWNoaW5nIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJBbGwgaW1hZ2VzIGZyb20gdGhlIFhNTFRWIGZpbGUgYXJlIGNhY2hlZCwgYWxsb3dpbmcgZmFzdGVyIHJlbmRlcmluZyBvZiB0aGUgZ3JpZCBpbiB0aGUgY2xpZW50Ljxicj5Eb3dubG9hZGluZyB0aGUgaW1hZ2VzIG1heSB0YWtlIGEgd2hpbGUgYW5kIHdpbGwgYmUgZG9uZSBpbiB0aGUgYmFja2dyb3VuZC4iDQogICAgfSwNCiAgICAicmVwbGFjZUVtcHR5SW1hZ2VzIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiUmVwbGFjZSBtaXNzaW5nIHByb2dyYW0gaW1hZ2VzIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJJZiB0aGUgcG9zdGVyIGluIHRoZSBYTUxUViBwcm9ncmFtIGlzIG1pc3NpbmcsIHRoZSBjaGFubmVsIGxvZ28gd2lsbCBiZSB1c2VkLiINCiAgICB9LA0KICAgICJ4dGV2ZUF1dG9VcGRhdGUiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJBdXRvbWF0aWMgdXBkYXRlIG9mIHhUZVZlIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJJZiBhIG5ldyB2ZXJzaW9uIG9mIHhUZVZlIGlzIGF2YWlsYWJsZSwgaXQgd2lsbCBiZSBhdXRvbWF0aWNhbGx5IGluc3RhbGxlZC4gVGhlIHVwZGF0ZXMgYXJlIGRvd25sb2FkZWQgZnJvbSBHaXRIdWIuIg0KICAgIH0sDQogICAgInN0cmVhbUJ1ZmZlcmluZyI6DQogICAgew0KICAgICAgInRpdGxlIjogIlN0cmVhbSBCdWZmZXIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIkZ1bmN0aW9ucyBvZiB0aGUgYnVmZmVyOjxicj4tIFRoZSBzdHJlYW0gaXMgcGFzc2VkIGZyb20geFRlVmUsIEZGbXBlZyBvciBWTEMgdG8gUGxleCwgRW1ieSBvciBNM1UgUGxheWVyPGJyPi0gU21hbGwgamVya2luZyBvZiB0aGUgc3RyZWFtcyBjYW4gYmUgY29tcGVuc2F0ZWQ8YnI+LSBITFMgLyBNM1U4IHN1cHBvcnQ8YnI+LSBSVFAgLyBSVFBTIHN1cHBvcnQgKG9ubHkgRkZtcGVnIG9yIFZMQyk8YnI+LSBSZS1zdHJlYW1pbmc8YnI+LSBTZXBhcmF0ZSB0dW5lciBsaW1pdCBmb3IgZWFjaCBwbGF5bGlzdCIsDQogICAgICAiaW5mb19mYWxzZSI6ICJObyBCdWZmZXIgKENsaWVudCBjb25uZWN0cyB0byB0aGUgc3RyZWFtaW5nIHNlcnZlcikiLA0KICAgICAgImluZm9feHRldmUiOiAieFRlVmUgY29ubmVjdHMgdG8gdGhlIHN0cmVhbWluZyBzZXJ2ZXIiLA0KICAgICAgImluZm9fZmZtcGVnIjogIkZGbXBlZyBjb25uZWN0cyB0byB0aGUgc3RyZWFtaW5nIHNlcnZlciIsDQogICAgICAiaW5mb192bGMiOiAiVkxDIGNvbm5lY3RzIHRvIHRoZSBzdHJlYW1pbmcgc2VydmVyIg0KDQogICAgfSwNCiAgICAidWRweHkiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJVRFB4eSBhZGRyZXNzIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJUaGUgYWRkcmVzcyBvZiB5b3VyIFVEUHh5IHNlcnZlci4gSWYgc2V0LCBhbmQgdGhlIGNoYW5uZWwgVVJMcyBpbiB0aGUgbTN1IGlzIG11bHRpY2FzdCwgeFRlVmUgd2lsbCByZXdyaXRlIGl0IHNvIHRoYXQgaXQgaXMgYWNjZXNzZWQgdmlhIHRoZSBVRFB4eSBzZXJ2aWNlLiIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiaG9zdDpwb3J0Ig0KICAgIH0sDQogICAgImZmbXBlZ1BhdGgiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJGRm1wZWcgQmluYXJ5IFBhdGgiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIlBhdGggdG8gRkZtcGVnIGJpbmFyeS4iLA0KICAgICAgInBsYWNlaG9sZGVyIjogIi9wYXRoL3RvL2ZmbXBlZyINCiAgICB9LA0KICAgICJmZm1wZWdPcHRpb25zIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiRkZtcGVnIE9wdGlvbnMiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIkZGbXBlZyBvcHRpb25zLjxicj5Pbmx5IGNoYW5nZSBpZiB5b3Uga25vdyB3aGF0IHlvdSBhcmUgZG9pbmcuPGJyPkxlYXZlIGJsYW5rIHRvIHNldCBkZWZhdWx0IHNldHRpbmdzLiIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiTGVhdmUgYmxhbmsgdG8gc2V0IGRlZmF1bHQgc2V0dGluZ3MiDQogICAgfSwNCiAgICAidmxjUGF0aCI6DQogICAgew0KICAgICAgInRpdGxlIjogIlZMQyAvIENWTEMgQmluYXJ5IFBhdGgiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIlBhdGggdG8gVkxDIC8gQ1ZMQyBiaW5hcnkuIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIvcGF0aC90by9jdmxjIg0KICAgIH0sDQogICAgInZsY09wdGlvbnMiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJWTEMgLyBDVkxDIE9wdGlvbnMiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIlZMQyAvIENWTEMgb3B0aW9ucy48YnI+T25seSBjaGFuZ2UgaWYgeW91IGtub3cgd2hhdCB5b3UgYXJlIGRvaW5nLjxicj5MZWF2ZSBibGFuayB0byBzZXQgZGVmYXVsdCBzZXR0aW5ncy4iLA0KICAgICAgInBsYWNlaG9sZGVyIjogIkxlYXZlIGJsYW5rIHRvIHNldCBkZWZhdWx0IHNldHRpbmdzIg0KICAgIH0sDQogICAgImJ1ZmZlclNpemUiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJCdWZmZXIgU2l6ZSIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiQnVmZmVyIHNpemUgaW4gTUIuPGJyPk0zVTg6IElmIHRoZSBUUyBzZWdtZW50IHNtYWxsZXIgdGhlbiB0aGUgYnVmZmVyIHNpemUsIHRoZSBmaWxlIHNpemUgb2YgdGhlIHNlZ21lbnQgaXMgdXNlZC4iDQogICAgfSwNCiAgICAic3RvcmVCdWZmZXJJblJBTSI6DQogICAgew0KICAgICAgInRpdGxlIjogIlN0b3JlIGJ1ZmZlciBpbiBSQU0iLA0KICAgICAgImRlc2NyaXB0aW9uIjogIklmIGNoZWNrZWQsIHdyaXRlIGJ1ZmZlciB0byBSQU0gaW5zdGVhZCBvZiB3cml0aW5nIHRvIGRpc2siDQogICAgfSwNCiAgICAiYnVmZmVyVGltZW91dCI6DQogICAgew0KICAgICAgInRpdGxlIjogIlRpbWVvdXQgZm9yIG5ldyBjbGllbnQgY29ubmVjdGlvbnMiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIlRoZSB4VGVWZSBidWZmZXIgd2FpdHMgdW50aWwgbmV3IGNsaWVudCBjb25uZWN0aW9ucyBhcmUgZXN0YWJsaXNoZWQuIEhlbHBmdWwgZm9yIGZhc3QgY2hhbm5lbCBzd2l0Y2hpbmcuIFZhbHVlIGluIG1pbGxpc2Vjb25kcy4iLA0KICAgICAgInBsYWNlaG9sZGVyIjogIjEwMCINCiAgICB9LA0KICAgICJ1c2VyQWdlbnQiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJVc2VyIEFnZW50IiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJVc2VyIEFnZW50IGZvciBIVFRQIHJlcXVlc3RzLiBGb3IgZXZlcnkgSFRUUCBjb25uZWN0aW9uLCB0aGlzIHZhbHVlIGlzIHVzZWQgZm9yIHRoZSB1c2VyIGFnZW50LiBTaG91bGQgb25seSBiZSBjaGFuZ2VkIGlmIHhUZVZlIGlzIGJsb2NrZWQuIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJ4VGVWZSINCiAgICB9LA0KICAgICJiYWNrdXBQYXRoIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiTG9jYXRpb24gZm9yIGF1dG9tYXRpYyBiYWNrdXBzIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIvbW50L2RhdGEvYmFja3VwL3h0ZXZlLyIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiQmVmb3JlIGFueSB1cGRhdGUgb2YgdGhlIHByb3ZpZGVyIGRhdGEgYnkgdGhlIHNjaGVkdWxlLCB4VGVWZSBjcmVhdGVzIGEgYmFja3VwLiBUaGUgcGF0aCBmb3IgdGhlIGF1dG9tYXRpYyBiYWNrdXBzIGNhbiBiZSBjaGFuZ2VkLiB4VGVWZSByZXF1aXJlcyB3cml0ZSBwZXJtaXNzaW9uIGZvciB0aGlzIGZvbGRlci4iDQogICAgfSwNCiAgICAidGVtcFBhdGgiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJMb2NhdGlvbiBmb3IgdGhlIHRlbXBvcmFyeSBmaWxlcyIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiL3RtcC94dGV2ZS8iLA0KICAgICAgImRlc2NyaXB0aW9uIjogIkxvY2F0aW9uIGZvciB0aGUgYnVmZmVyIGZpbGVzLiINCiAgICB9LA0KICAgICJiYWNrdXBLZWVwIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiTnVtYmVyIG9mIGJhY2t1cHMgdG8ga2VlcCIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiTnVtYmVyIG9mIGJhY2t1cHMgdG8ga2VlcC4gT2xkZXIgYmFja3VwcyBhcmUgYXV0b21hdGljYWxseSBkZWxldGVkLiINCiAgICB9LA0KICAgICJhdXRoZW50aWNhdGlvbldFQiI6DQogICAgew0KICAgICAgInRpdGxlIjogIldFQiBBdXRoZW50aWNhdGlvbiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiQWNjZXNzIHRvIHRoZSB3ZWIgaW50ZXJmYWNlIG9ubHkgcG9zc2libGUgd2l0aCBjcmVkZW50aWFscy4iDQogICAgfSwNCiAgICAiYXV0aGVudGljYXRpb25QTVMiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJQTVMgQXV0aGVudGljYXRpb24iLA0KICAgICAgImRlc2NyaXB0aW9uIjogIlBsZXggcmVxdWVzdHMgYXJlIG9ubHkgcG9zc2libGUgd2l0aCBhdXRoZW50aWNhdGlvbi4gPGJyPjxiPldhcm5pbmchISE8L2I+IEFmdGVyIGFjdGl2YXRpbmcgdGhpcyBmdW5jdGlvbiB4VGVWZSBtdXN0IGJlIGRlbGV0ZSBpbiB0aGUgUE1TIERWUiBzZXR0aW5ncyBhbmQgc2V0IHVwIGFnYWluLiINCiAgICB9LA0KICAgICJhdXRoZW50aWNhdGlvbk0zVSI6DQogICAgew0KICAgICAgInRpdGxlIjogIk0zVSBBdXRoZW50aWNhdGlvbiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiRG93bmxvYWRpbmcgdGhlIHh0ZXZlLm0zdSBmaWxlIHZpYSBhbiBIVFRQIHJlcXVlc3QgaXMgb25seSBwb3NzaWJsZSB3aXRoIGF1dGhlbnRpY2F0aW9uLiINCiAgICB9LA0KICAgICJhdXRoZW50aWNhdGlvblhNTCI6DQogICAgew0KICAgICAgInRpdGxlIjogIlhNTCBBdXRoZW50aWNhdGlvbiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiRG93bmxvYWRpbmcgdGhlIHh0ZXZlLnhtbCBmaWxlIHZpYSBhbiBIVFRQIHJlcXVlc3QgaXMgb25seSBwb3NzaWJsZSB3aXRoIGF1dGhlbnRpY2F0aW9uIg0KICAgIH0sDQogICAgImF1dGhlbnRpY2F0aW9uQVBJIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiQVBJIEF1dGhlbnRpY2F0aW9uIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJBY2Nlc3MgdG8gdGhlIEFQSSBpbnRlcmZhY2UgaXMgb25seSBwb3NzaWJsZSB3aXRoIGF1dGhlbnRpY2F0aW9uLiINCiAgICB9DQogIH0sDQogICJ3aXphcmQiOg0KICB7DQogICAgImVwZ1NvdXJjZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIkVQRyBTb3VyY2UiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIlBNUzo8YnI+LSBVc2UgRVBHIGRhdGEgZnJvbSBQbGV4IG9yIEVtYnkgPGJyPjxicj5YRVBHOjxicj4tIFVzZSBvZiBvbmUgb3IgbW9yZSBYTUxUViBmaWxlczxicj4tIENoYW5uZWwgbWFuYWdlbWVudDxicj4tIE0zVSAvIFhNTFRWIGV4cG9ydCAoSFRUUCBsaW5rIGZvciBJUFRWIGFwcHMpIg0KICAgIH0sDQogICAgInR1bmVyIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiTnVtYmVyIG9mIHR1bmVycyIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiTnVtYmVyIG9mIHBhcmFsbGVsIGNvbm5lY3Rpb25zIHRoYXQgY2FuIGJlIGVzdGFibGlzaGVkIHRvIHRoZSBwcm92aWRlci48YnI+QXZhaWxhYmxlIGZvcjogUGxleCwgRW1ieSAoSERIUiksIE0zVSAod2l0aCBhY3RpdmUgYnVmZmVyKS48YnI+QWZ0ZXIgYSBjaGFuZ2UsIHhUZVZlIG11c3QgYmUgZGVsZXRlIGluIHRoZSBQbGV4IC8gRW1ieSBEVlIgc2V0dGluZ3MgYW5kIHNldCB1cCBhZ2Fpbi4iDQogICAgfSwNCiAgICAibTN1IjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiTTNVIFBsYXlsaXN0IiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJGaWxlIHBhdGggb3IgVVJMIG9mIHRoZSBNM1UiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIkxvY2FsIG9yIHJlbW90ZSBwbGF5bGlzdHMiDQogICAgfSwNCiAgICAieG1sdHYiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJYTUxUViBGaWxlIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJGaWxlIHBhdGggb3IgVVJMIG9mIHRoZSBYTUxUViIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiTG9jYWwgb3IgcmVtb3RlIFhNTFRWIGZpbGUiDQogICAgfQ0KICB9LA0KICAibG9naW4iOg0KICB7DQogICAgImZhaWxlZCI6ICJVc2VyIGF1dGhlbnRpY2F0aW9uIGZhaWxlZCIsDQogICAgImhlYWRsaW5lIjogIkxvZ2luIiwNCiAgICAidXNlcm5hbWUiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJVc2VybmFtZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiVXNlcm5hbWUiDQogICAgfSwNCiAgICAicGFzc3dvcmQiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJQYXNzd29yZCIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiUGFzc3dvcmQiDQogICAgfQ0KICB9LA0KICAiYWNjb3VudCI6DQogIHsNCiAgICAiZmFpbGVkIjogIlBhc3N3b3JkIGRvZXMgbm90IG1hdGNoIiwNCiAgICAiaGVhZGxpbmUiOiAiQ3JlYXRlIHVzZXIgYWNjb3VudCIsDQogICAgInVzZXJuYW1lIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiVXNlcm5hbWUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIlVzZXJuYW1lIg0KICAgIH0sDQogICAgInBhc3N3b3JkIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiUGFzc3dvcmQiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIlBhc3N3b3JkIg0KICAgIH0sDQogICAgImNvbmZpcm0iOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJDb25maXJtIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJDb25maXJtIg0KICAgIH0NCiAgfQ0KfQ==" webUI["html/login.html"] = "PCFkb2N0eXBlIGh0bWw+DQo8aHRtbD4NCiAgPGhlYWQ+DQogICAgPG1ldGEgY2hhcnNldD0idXRmLTgiPg0KICAgIDxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgsIGluaXRpYWwtc2NhbGU9MS4wIiAvPiANCiAgICA8dGl0bGU+eFRlVmU8L3RpdGxlPg0KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iY3NzL3NjcmVlbi5jc3MiIHR5cGU9InRleHQvY3NzIj4NCiAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9ImNzcy9iYXNlLmNzcyIgdHlwZT0idGV4dC9jc3MiPg0KICAgIDxzY3JpcHQgbGFuZ3VhZ2U9ImphdmFzY3JpcHQiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJqcy9uZXR3b3JrX3RzLmpzIj48L3NjcmlwdD4NCiAgICA8c2NyaXB0IGxhbmd1YWdlPSJqYXZhc2NyaXB0IiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ianMvYXV0aGVudGljYXRpb25fdHMuanMiPjwvc2NyaXB0Pg0KICA8L2hlYWQ+DQoNCiAgICA8Ym9keT4NCiAgICAgICAgICANCiAgICAgIDxkaXYgaWQ9ImhlYWRlciIgY2xhc3M9ImltZ0NlbnRlciI+PC9kaXY+DQoNCiAgICAgIDxkaXYgaWQ9ImJveCI+DQoNCiAgICAgICAgPGRpdiBpZD0iaGVhZGxpbmUiPg0KICAgICAgICAgIDxoMSBpZD0iaGVhZC10ZXh0IiBjbGFzcz0iY2VudGVyIj57ey5sb2dpbi5oZWFkbGluZX19PC9oMT4NCiAgICAgICAgPC9kaXY+DQoNCiAgICAgICAgPHAgaWQ9ImVyciIgY2xhc3M9ImVycm9yTXNnIGNlbnRlciI+e3suYXV0aGVudGljYXRpb25FcnJ9fTwvcD4NCg0KICAgICAgICA8ZGl2IGlkPSJjb250ZW50Ij4NCg0KICAgICAgICAgICAgPGZvcm0gaWQ9ImF1dGhlbnRpY2F0aW9uIiBhY3Rpb249IiIgbWV0aG9kPSJwb3N0Ij4NCg0KICAgICAgICAgICAgICA8aDU+e3subG9naW4udXNlcm5hbWUudGl0bGV9fTo8L2g1Pg0KICAgICAgICAgICAgICA8aW5wdXQgaWQ9InVzZXJuYW1lIiB0eXBlPSJ0ZXh0IiBuYW1lPSJ1c2VybmFtZSIgcGxhY2Vob2xkZXI9IlVzZXJuYW1lIiB2YWx1ZT0iIj4NCiAgICAgICAgICAgICAgPGg1Pnt7LmxvZ2luLnBhc3N3b3JkLnRpdGxlfX06PC9oNT4NCiAgICAgICAgICAgICAgPGlucHV0IGlkPSJwYXNzd29yZCIgdHlwZT0icGFzc3dvcmQiIG5hbWU9InBhc3N3b3JkIiBwbGFjZWhvbGRlcj0iUGFzc3dvcmQiIHZhbHVlPSIiPg0KDQogICAgICAgICAgICA8L2Zvcm0+DQoNCiAgICAgICAgPC9kaXY+DQoNCiAgICAgICAgPGRpdiBpZD0iYm94LWZvb3RlciI+DQogICAgICAgICAgPGlucHV0IGlkPSJzdWJtaXQiIGNsYXNzPSIiIHR5cGU9ImJ1dHRvbiIgdmFsdWU9Int7LmJ1dHRvbi5sb2dpbn19IiBvbmNsaWNrPSJqYXZhc2NyaXB0OiBsb2dpbigpOyI+DQogICAgICAgIDwvZGl2Pg0KICAgICAgICANCiAgICAgIDwvZGl2Pg0KDQogICAgPC9ib2R5Pg0KICAgIA0KPC9odG1sPg==" webUI["html/maintenance.html"] = "PCFkb2N0eXBlIGh0bWw+DQo8aHRtbD4NCiAgPGhlYWQ+DQogICAgPG1ldGEgY2hhcnNldD0idXRmLTgiPg0KICAgIDxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgsIGluaXRpYWwtc2NhbGU9MS4wIiAvPiANCiAgICA8dGl0bGU+eFRlVmU8L3RpdGxlPg0KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iY3NzL3NjcmVlbi5jc3MiIHR5cGU9InRleHQvY3NzIj4NCiAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9ImNzcy9iYXNlLmNzcyIgdHlwZT0idGV4dC9jc3MiPg0KICA8L2hlYWQ+DQoNCiAgICA8Ym9keT4NCiAgICAgICAgICANCiAgICAgIDxkaXYgaWQ9ImhlYWRlciIgY2xhc3M9ImltZ0NlbnRlciI+PC9kaXY+DQoNCiAgICAgIDxkaXYgaWQ9ImJveCI+DQoNCiAgICAgICAgPGRpdiBpZD0iaGVhZGxpbmUiPg0KICAgICAgICAgIDxoMSBpZD0iaGVhZC10ZXh0IiBjbGFzcz0iY2VudGVyIj5NYWludGVuYW5jZTwvaDE+ICAgICAgDQogICAgICAgIDwvZGl2PiAgDQoNCiAgICAgICAgPGRpdiBpZD0iY29udGVudCI+DQogICAgICAgICAgeFRlVmUgaXMgdXBkYXRpbmcgdGhlIGRhdGFiYXNlLCBwbGVhc2UgdHJ5IGFnYWluIGxhdGVyLg0KICAgICAgICA8L2Rpdj4NCg0KICAgICAgICA8ZGl2IGlkPSJib3gtZm9vdGVyIj48L2Rpdj4NCiAgICAgICAgDQogICAgICA8L2Rpdj4NCg0KICAgIDwvYm9keT4NCjwvaHRtbD4=" webUI["html/video/stream-limit.ts"] = "R0AREABC8CUAAcEAAP8B/wAB/IAUSBIBBkZGbXBlZwlTZXJ2aWNlMDF3fEPK//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////9HQAAQAACwDQABwQAAAAHwACqxBLL//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////0dQABAAArASAAHBAADhAPAAG+EA8AAVvU1W////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////R0EAMAdQAAB7DH4AAAAB4AAAgMAKMQAJEKERAAfYYQAAAAEJ8AAAAAFnZAAorNlAeAIn5cBEAAADAAQAAAMAyDxgxlgAAAABaOvjyyLAAAABBgX//6rcRem95tlIt5Ys2CDZI+7veDI2NCAtIGNvcmUgMTUyIHIyODU0IGU5YTU5MDMgLSBILjI2NC9NUEVHLTQgQVZDIGNvZGVjIC0gQ29weWxlZnQgMjAwMy0yMDE3IC0gaHR0cDovL3dHAQARd3cudmlkZW9sYW4ub3JnL3gyNjQuaHRtbCAtIG9wdGlvbnM6IGNhYmFjPTEgcmVmPTMgZGVibG9jaz0xOjA6MCBhbmFseXNlPTB4MzoweDExMyBtZT1oZXggc3VibWU9NyBwc3k9MSBwc3lfcmQ9MS4wMDowLjAwIG1peGVkX3JlZj0xIG1lX3JhbmdlPTE2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ACqxBLL//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////0dQABEAArASAAHBAADhAPAAG+EA8AAVvU1W////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////RwEAGO10tGlFAwyE91Tzg8923ovJk1dv2xh1gVlYQFtWdZ6NSQ8vgHM7/tMfIZPsqgCU856rdBJJRMDaor/oWA7pkvSmC2aqaC5fd/mkWUPTuG8fRhGqOY1rKxLNSI3HtTQAcuVBxRM0NfMw0ky/JMJYZiCgXcNsxpxl+khr/9fKtO5Fg2VNBti92xcZimHUZDJMQTBOY6vSR9L1N2O/kJQCpdfuc9bkcUTMjH/es/lAySxvbiislkohqkpHAQAZVatwHI0t9eHCUfDyWUEtuCNyDwQFOVMtaYEQJrTrhQX0VduT86F0u0wN9ag0uPsrmX6Rid/x5S7KI1SkS+qP6cdmgSP57uiF4dG6IKsWNfGBLY09H/CFlrg73WINQkkp2diKkdEmtZetn8+ZAKzR5eXN5FebiKt6pIkNLuSofjosypEs2o6boKsfpmbtOV0idOeWDM9C8EIcn3aZwk1s2KBDvt1DlY+i2Cuvhk3XoKLT+pq/bOC5QkcBABolcOXneZXLoQw9W1PH1f/of92Ytjj8okrWijcQAKlE5l8XoTb9qrOiZnDOhqwcMlB9H9rorq041I89hChohYoSkJElcM8V+r8WYN5axD1BNyfwaHAOm4UN2/VEYOkNSfMjmx2S0WW/F2ha8Jj4fc4QgqcXr+TnnbwqLkLTValK4Qa1pcv7PIbDq6zCUfxe04guZ8xEhPQjp17/G6IB/6uq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wnibxQ/cXEblVnM47wbCN3iy4eHjYB5MoIICrSYmd8nt4V0toLs084KJlmnur5FbApYM4W79ff4oZkW88Cg8Fv8TnWhh1Hqc4UlhMbRKm2QxDgfBxar3U7BwNR6prrXXjqfR7ja3tPli+H7Jez/xcTg32QpHAQAdTa7pSSgBvmOqzz175NAFIhwE9p3d71F9jLvhaPv8q1iKopL0kizwzEWElnXWmNhfLkl/Au8KujnoKUaxVdTe+zAZm2dOkejnpNVtVj0Aw9wKcG3ZQ1iRZrUFRIoPKYlmR+oi0LrupuhYABtgPbdCbDtezGTr0nw9wVd/rZ6V+1wcoJ6+8VAVueIdwI3brqm6EoFHiI8L6lER+9SefB8fHo4NYgr/I8jSxaa/2PLX2K/DjrlY6bN8fEcBAB7DXsuh8DITF6CYWj2HTFvqfzlic3QHXnHtvsTFNpyVY1LY8y/fRK2mwALN6IB5W3OuyoKiA3K0lJdQUv2gYhHWvPTV218HYrD0rkbMxRH0SiEEkrHDeOt5T1HtWD13D2/QvMu535fsfZyeaFDjdCE9M0Xi8Lfc7Xj1ZNGend7Jo7/cEiczFkc1vB4z2JpFGZreV2EdquyEzC2STFJtfimyx8QlLngEuR1cxH+lWEcFX+mvBa/eqktIRwEAH6VazFLPNsnHZqsI66TVoArQuUUGFAzr8MT8GZ9V6qpZa5D0jA/4eGi6Kq0smUgRExnqIbSMLWqDf/Pk2YT3MpHTu9VE3Dn9blgB6KsVIkWnB98Y2n/6DrZDcF94Ndu0Ka4U/RZwdV5O5KcO+lU2ZiIOYTYZ6Ie0d+tApxYxJ+YmxaDoCyRNe6crw/yzR5SflT8ddi/E2BM+l+nwVDiKZ/714fmrBxFKWuqLiQNHV19o1cZ8Ubun+ZtHQAASAACwDQABwQAAAAHwACqxBLL//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////0dQABIAArASAAHBAADhAPAAG+EA8AAVvU1W////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////RwEAEH1s3BdtHdF1ln55B24wdACF/ggcRtPmB4IUB6cZJ+m32I4R48ZkdhAFBulgWcsv0wZwH0o1yi3i4qm3rJ98AUKdB9PsNyG9gURV0bTw4myAj6g5Dgodfv6w9bsbOxsGUWkvgAJ3rrR010BvZbIa6CMRCQRjxkCfRF77ansRJZT0JzhtYeSS/ZJob8Rr2jrng3W2rkmHtE+rdqlPiHxmwkRZvYGhBxwiJO2L6f+l/cABsfs09rA+A0pHAQAREZay3TBUIAfMWhApE+LaPgeyOYtaPFONA9aC0h4QrFkaLZfb86678MK+zLgqDBsDoj50eZHMVcczRjs4sYlv7RG8RIWKb5lB9Kn/8+CkxiiA11cHH1yzLX2SKCmhsak/+P/zYQ1EDvEj33bl9e3Jd62cTI+Qw99KrsWnUMN8hFNeXzoGHA3aec+Li4NFboF8sa6lCPR6Csxsvxw8DJaWCnER5Z0p+nKhXavF/eNHQ0DX47ohycc87UcBABKsYHCHXXe3vK1cFYDWO6rhwM6hxCdJ+/X+VB1akQejL6iBMdUPuadUqBnbprwJM0dWpSSn9uuZZeqe46iZOGIJUo69d8x+ZSvPcBH/dK1Y0LJnoWdgWH51SQg7eYqcwjQW3BOy7ZF02Hn1EhTuhsN7ms8zv3WIeEBDBq0T3Idl+Tmw9iJU9skVYiwygHG2+0XwrLa6y+uiQPwMzrnEr1kuf24XoAqrJTZQiVH3aQF4d94yDreWu2KPRwEAE2FsynHZaUcBXEFbeX0nSxZ7sRcRjJvc7RYOny6N8QFwKDVO7jpRWWYM55kuepBOyZ+7BFYeG+FU1kR+ZfmqyDNkD4D1IPwNh6u9JQxDymfN/aMcQC3WxdvCKquPsAut6dugpGkOFtIe+W3ayc4V/J978P+h1EDFMbFjxRPuXht0K2dBQZCJ0ybISUDqWzhPuep8CdxSU4MvMVfdXh7FLl/BqKJUTT+vM+Pz3XnqCQQmH5TjQ4CK55VHAQAUEtgfkBwIYgtwHkhjmtLw7HNTeJeMfTjATEKcyuKzItSeYxHBmGzQ/+G2otpPCOkVAXJ9mfx7LxrW4joZ0ttTRQJ/wqMUK1IN349LiJoo8y/+FwN4jPNDwIleJG697riqnmLOweFW8spHKLBfnHcyC1pG6EIxFpTqUQ0KHqXD/KXIHKioJNAOVwQ1Gfloxebo/Tdtd00dpHP3gcsAOnV75APCYOjVIlwm2X6ViDeZw6Btdb/Br/+yokcBABU3+eOESLlneGbR5SLiL8wPkoRaZ5X7xFlMTMvsv9yHk26bVdmsubSdbYS1Hy64n0+NnL7C1aLD7aJxOudMjVW5goZbfO2KxBQkCD4HFA284wbaB5vOL7mRilCn6YEs1kiwf22+fBLNUmXDb2p353wrD/ygTDhlki66USvUmd/ZAs9uzAddegEzy7Xn00YysWTu/hegYyZtWFC+X5dhLubWJ7n96y5wjrP7PAOXoQQtFUH9j/rBiP/7RwEAFnL/wYKYuj80mPGtimSbF/E9K7XwjwBz8yHZubmVMTCmwkZBM4h0FR1thnUGiSjqjJT6SfunWCZ/dZDQplrzS00UKcUP399SyM+nNG1br8Za0ZYwWch8nyLHYXSRuxdnrfUUespsOQo1cWSLGf0pV2HIcHoiAAEKwPU6irB5BSoFvB1qKVjgEk+QwAEYAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAABHAQA3pAD/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////AwAAAwAAAwAAAwAAAwAAAwBbwUdBABgAAAHgAACAwAoxAAmBIREAB/SBAAAAAQnwAAAAAUGaJGxDv/6plgAAAwAAAwAAAwAAAwAAAwAAAwAAAwAKCKB0AIhy1ftwLNISWucTFC7xeBcaIzP3oZjZo8uT9hqZVstWGnrPz+vjaA5FuCO+K2w7/o39LygDO7aL+0zSrN90LW7r133x8+f+PEKk8d7pd2fj4RYuMOXOYunzFzRX/4IvR1XsK5WJYwVkOca3yfo7DTvUBP9rgSiTRwEAGQD6CFK1PBC4qYCa+coLVnX+jgODNrau5YJXIekDI4+wUNV+5T5HE4e2t5EGAjn77+kC1Vghmvx8KqPnylVUvsaTofheggxHsPuxn1zQt6nA59UglrRUMn8b4pmrvfqTBSqU949+AcNAI6M/eAqz6r0RG5KNeBhx8R2f0x2kujwHU3pc3rlPb6ZrFM/2HiG97eEIezrvWFG7YAAAAwAAAwAE1KRo1VfbdZQ/tOpNGxFmTcQoFidyD2tHAQAapTTIErUKA2Rc9uIzGJu+oW0uNOxRyl6oJNUNJp5L9TIshNS1CmUKgdCaE3LkLwdE8iUkUnIGfWLiWpWmjzsINYC8dnDaSptB53yJkBu0SsR00oo1PZ0pl4ZzoXGSYQJTPaVCbj6FNqm5wcnUqKTB/rgHdPdnDj0K8asLABeo/n3XCXrDorI+LYSD1FBgmV9O7RZdjfL0NnXOQkiq/ZGirwVV0cUF1aHtZx1yHlAAZKuuu7TqB13CAUcBADuRAP///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////yj/IrOvAEoXDNGy+nrxWN0l8cmuqWYaUJpuM9XgAAADAAADAAKmR0EAPAcQAACJHH4AAAAB4AAAgMAKMQAJSOERAAkQoQAAAAEJ8AAAAAFBnkJ4hf8AAAMAAAMAAAMAAAMAAAMAAAMAAAMAC/BmhyuvLmkCgKTgACEXfOVvHRHdpBEEmTTz9pIZCa2FD0CXukzDCakOHekTpJQSdsfd7a/jjM1/5lBtKCAGQ6zOCSQ6DeKtyw+CugDuuglGipwmvQW+FIDjnZ6HRd0uaSOGy6VB3h9MI1o4nqaCqVwwIgubYZFHAQA9XgD////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////WcZrO6BEiqf8pCxYwlz2mkdUzY/ipM/TIHS4m5xQAAAMAAAMAAA5sVm90p14dlvWgBgY7XQ9KVOJKLtaMAN5KiffVQtNuzW5DfL+RewZpAAADAAADAAAQMUdBAB4AAAHgAACAgAUhAAkswQAAAAEJ8AAAAAEBnmF0Qr8AAAMAAAMAAAMAAAMAAAMAAAMAAAMAABJfBjP2+4+W7ZybyT130+Ma4WSqICfd/dS4YtjrLlmh5VBlfrtwJqdN1PBTYDkwGOOONqZQeFN6lLGJoDzvuh3kv1aDBLqug+JhvrSeu5ebnvcrtQzb2REwJL3h9mvtkr0WfDu4AAADAAADAAs32Y4C/6Ns79oCGj6oqLltY3T4I0/QRwEAP5wA//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////8BeoWLRnKQmVgO/RBoBfcK85AAAAMAAAMACFhHQQAwBxAAAJcsfgAAAAHgAACAwAoxAAllAREACUjhAAAAAQnwAAAAAQGeY2pCvwAAAwAAAwAAAwAAAwAAAwAAAwAAAwAAEmDKfLGXsvBBQPNYXlEd6WueJ4deApfcHESlG+7V6u0AiWQqJvNZYM+3Js3Lj9Ldc9yYIHqruVwfMtCYGlX3wMavI/DrhMuJw+RreIF8SKsJD8CMccAAAAMAAAMACrFZOBgEqaP/8EyWsAHV6CgcAgfyox/roEcBADGuAP//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////AAADAAADAHTBR0EAEgAAAeAAAIDACjEACfGhEQAJZQEAAAABCfAAAAABQZpoSahBaJlMCHf//qmWAAADAAADAAADAAADAAADAAADAAADAAALf8A2bry6lUyIAQGNFfVK2Cd7h4qDqmqpvmXfkfTwo2Ab79AHhajxJ4MPWIgAAA84xLRIx7I2CrWjWe96OvgkzgS9mtvhuxdzAgpuIOJI3DEY9mviDDZz8XSAAAADAAADAB7AZkj9AAHHGvk+Pzlku8UkWa5HAQAzogD//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////6HjAkbF/gsWuvw4QAAAAwAAAwAccUdBADQHEAAApTx+AAAAAeAAAIDACjEACblhEQAJgSEAAAABCfAAAAABQZ6GRREsL/8AAAMAAAMAAAMAAAMAAAMAAAMAAAMAAA3URJB/3lMHSmOd0GYZnfpoR80WdqxlyHzPX+V81VUMeXIGrRgq5agd+ACdjoGI036yQ/rmpGw0CmMBrKwpI+nwFo3SP0s1rI2yHBZaiPJjSUgw33rBkxXcq55kfLf2sAAAAwAAAwACBWolidWDnIeQAAADRwEANbEA//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////8AAAMADulHQQA2NAD///////////////////////////////////////////////////////////////////8AAAHgAACAgAUhAAmdQQAAAAEJ8AAAAAEBnqV0Qr8AAAMAAAMAAAMAAAMAAAMAAAMAAAMAABJXNihCnx11JUosH2hBE53O/YN+GPHqcnJiQBIf3maTAAj5iRt+7GYUKBAU9iCXTiouCjGYgAAAAwAAAwA9p4HQBg2cAAADAAADAADGgUdBADc4EAAAs0x+AP////////////////////////////////////////////////////////////////8AAAHgAACAwAoxAAnVgREACblhAAAAAQnwAAAAAQGep2pCvwAAAwAAAwAAAwAAAwAAAwAAAwAAAwAAAwBR6/L83y+ZevtMZ0FW4lp8qV7fVXQAhLAWlS6mDxvpaSUgChorvgTMXtxJEIAAAAMAAAMACqFCAAADAAADAAADAAz4R0EAOCsA////////////////////////////////////////////////////////AAAB4AAAgMAKMQALYiERAAnVgQAAAAEJ8AAAAAFBmqxJqEFsmUwId//+qZYAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAApQTq0hABLvkcWCYrAaRRPNDrECJGlF/11BYvG9+JJ9Y86nxnmQzPxtAAe1UgOsXAAADAAADAAADAAADAAADAAADAAADA/JHQQA5JhAAAMFcfgD/////////////////////////////////////////AAAB4AAAgMAKMQALKeERAAnxoQAAAAEJ8AAAAAFBnspFFSwv/wAAAwAAAwAAAwAAAwAAAwAAAwAAAwAADdRFmvrVE0KXDOGwWddlwYa1foib7tXZKmkua6R4APb4b8+tXwdSNNqgf2IVNwGTohgQAcMvp6SiQxpiQym4AAADAAADAANUNUAAAAMAAAMAAAMBN0dBADo8AP//////////////////////////////////////////////////////////////////////////////AAAB4AAAgIAFIQALDcEAAAABCfAAAAABAZ7pdEK/AAADAAADAAADAAADAAADAAADAAADAAADAFHTAfujIUaaLSuklb9y0/so9AEtQAqkAxOviALQZ5jNt/iOkABrCOZ4md0iUnFwAAADAAADAALwckAAAAMAAAMAAATcR0EAO0IQAADPbH4A//////////////////////////////////////////////////////////////////////////////8AAAHgAACAwAoxAAtGAREACynhAAAAAQnwAAAAAQGe62pCvwAAAwAAAwAAAwAAAwAAAwAAAwAAAwAAAwBR6/L83y+WryR9gmVKPGbIhJpkgAFgHCej3gB6rAHPgHHAAAADAAADAAAYIV0AAAMAAAMAAAMABnxHQQA8UQD//////////////////////////////////////////////////////////////////////////////////////////////////////////wAAAeAAAIDACjEAC9KhEQALRgEAAAABCfAAAAABQZrwSahBbJlMCG///qeEAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAAZ8UdBAD00EAAA3Xx+AP///////////////////////////////////////////////////////////wAAAeAAAIDACjEAC5phEQALYiEAAAABCfAAAAABQZ8ORRUsL/8AAAMAAAMAAAMAAAMAAAMAAAMAAAMAAA3URZr61RNClwzhI2ZXdRHYLZWc1yTgKRhTIXBNABHQKIIyYNyc+AaEn1jhATEAAAMAAAMAAAMAckkIAAADAAADAAADAEbBR0EAPkYA////////////////////////////////////////////////////////////////////////////////////////////AAAB4AAAgIAFIQALfkEAAAABCfAAAAABAZ8tdEK/AAADAAADAAADAAADAAADAAADAAADAAADAFHTAfujIUAYRtY0f/43cIs2OjxACR2hMR1QBGYX+34JGAAAAwAAAwAAAwKEJ6AAAAMAAAMAAAMA3oFHQQA/QhAAAOuMfgD//////////////////////////////////////////////////////////////////////////////wAAAeAAAIDACjEAC7aBEQALmmEAAAABCfAAAAABAZ8vakK/AAADAAADAAADAAADAAADAAADAAADAAADAFHr8vzfL5avJH2CZUo8ZsiEmmSAAWAcJ6PeAHqsAc+AccAAAAMAAAMAABghXQAAAwAAAwAAAwAGfEdBADBRAP//////////////////////////////////////////////////////////////////////////////////////////////////////////AAAB4AAAgMAKMQANQyERAAu2gQAAAAEJ8AAAAAFBmzRJqEFsmUwIZ//+nhAAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAGVAR0EAMTQQAAD5nH4A////////////////////////////////////////////////////////////AAAB4AAAgMAKMQANCuERAAvSoQAAAAEJ8AAAAAFBn1JFFSwv/wAAAwAAAwAAAwAAAwAAAwAAAwAAAwAADdRFmvrVE0KXDOEjZld1EdgtlZzXJOApGFMhcE0AEdAogjJg3Jz4BoSfWOEBMQAAAwAAAwAAAwBySQgAAAMAAAMAAAMARsFHQQAyRgD///////////////////////////////////////////////////////////////////////////////////////////8AAAHgAACAgAUhAAvuwQAAAAEJ8AAAAAEBn3F0Qr8AAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAUdMB+6MhQBhG1jR//jdwizY6PEAJHaExHVAEZhf7fgkYAAADAAADAAADAoQnoAAAAwAAAwAAAwDegEdBADNCEAABB6x+AP//////////////////////////////////////////////////////////////////////////////AAAB4AAAgMAKMQANJwERAA0K4QAAAAEJ8AAAAAEBn3NqQr8AAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAUevy/N8vlq8kfYJlSjxmyISaZIABYBwno94AeqwBz4BxwAAAAwAAAwAAGCFdAAADAAADAAADAAZ8R0EANFIA////////////////////////////////////////////////////////////////////////////////////////////////////////////AAAB4AAAgMAKMQANs6ERAA0nAQAAAAEJ8AAAAAFBm3hJqEFsmUwIV//+OEAAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAYtHQQA1NBAAARW8fgD///////////////////////////////////////////////////////////8AAAHgAACAwAoxAA17YREADUMhAAAAAQnwAAAAAUGflkUVLC//AAADAAADAAADAAADAAADAAADAAADAAAN1EWa+tUTQpcM4SNmV3UR2C2VnNck4CkYUyFwTQAR0CiCMmDcnPgGhJ9Y4QExAAADAAADAAADAHJJCAAAAwAAAwAAAwBGwEdBADZGAP///////////////////////////////////////////////////////////////////////////////////////////wAAAeAAAICABSEADV9BAAAAAQnwAAAAAQGftXRCvwAAAwAAAwAAAwAAAwAAAwAAAwAAAwAAAwBR0wH7oyFAGEbWNH/+N3CLNjo8QAkdoTEdUARmF/t+CRgAAAMAAAMAAAMChCegAAADAAADAAADAN6BR0EAN0IQAAEjzH4A//////////////////////////////////////////////////////////////////////////////8AAAHgAACAwAoxAA2XgREADXthAAAAAQnwAAAAAQGft2pCvwAAAwAAAwAAAwAAAwAAAwAAAwAAAwAAAwBR6/L83y+WryR9gmVKPGbIhJpkgAFgHCej3gB6rAHPgHHAAAADAAADAAAYIV0AAAMAAAMAAAMABn0=" diff --git a/src/webserver.go b/src/webserver.go index f5898b0..fa43ff5 100644 --- a/src/webserver.go +++ b/src/webserver.go @@ -463,6 +463,7 @@ func WS(w http.ResponseWriter, r *http.Request) { var previousHostIP = Settings.HostIP var previousStoreBufferInRAM = Settings.StoreBufferInRAM var previousDefaultMissingEPG = Settings.DefaultMissingEPG + var previousEnableMappedChannels = Settings.EnableMappedChannels response.Settings, err = updateServerSettings(request) if err == nil { @@ -496,11 +497,19 @@ func WS(w http.ResponseWriter, r *http.Request) { } if Settings.DefaultMissingEPG != "-" && previousDefaultMissingEPG == "-" { + // TODO: Probably will have to run these two when with auto enable it will not reflect changes in m3u + // buildDatabaseDVR() + // buildXEPG(false) System.ScanInProgress = 1 mapping() System.ScanInProgress = 0 } + if Settings.EnableMappedChannels && previousEnableMappedChannels == false { + buildDatabaseDVR() + buildXEPG(false) + } + } case "saveFilesM3U": diff --git a/src/xepg.go b/src/xepg.go index 86eb43a..f6ead69 100644 --- a/src/xepg.go +++ b/src/xepg.go @@ -537,7 +537,6 @@ func mapping() (err error) { if Settings.DefaultMissingEPG != "-" { xepgChannel.XmltvFile = "xTeVe Dummy" xepgChannel.XMapping = Settings.DefaultMissingEPG - // xepgChannel.XActive = true } else { xepgChannel.XmltvFile = "-" xepgChannel.XMapping = "-" @@ -554,7 +553,6 @@ func mapping() (err error) { xepgChannel.XmltvFile = file xepgChannel.XMapping = channelID - xepgChannel.XActive = true // If there is a Logo in the XMLTV file, this will be used. If not, then the Logo from the M3U file if icon, ok := channel.(map[string]interface{})["icon"].(string); ok { @@ -584,7 +582,6 @@ func mapping() (err error) { xepgChannel.XmltvFile = file xepgChannel.XMapping = xmltvChannel.(map[string]interface{})["id"].(string) - // xepgChannel.XActive = true // If there is a Logo in the XMLTV file, this will be used. // If not, then the Logo from the M3U file. @@ -594,6 +591,7 @@ func mapping() (err error) { } } + Data.XEPG.Channels[xepg] = xepgChannel break xmltvMapLoop } } @@ -602,12 +600,14 @@ func mapping() (err error) { } - Data.XEPG.Channels[xepg] = xepgChannel - } } + if Settings.EnableMappedChannels && (xepgChannel.XmltvFile != "-" || xepgChannel.XMapping != "-") { + xepgChannel.XActive = true + } + // Check whether the assigned XMLTV Files and Channels still exist. if xepgChannel.XActive == true { diff --git a/ts/base_ts.ts b/ts/base_ts.ts index accb00b..4182e11 100644 --- a/ts/base_ts.ts +++ b/ts/base_ts.ts @@ -22,7 +22,7 @@ menuItems.push(new MainMenuItem("logout", "{{.mainMenu.item.logout}}", "logout.p // Settings categories var settingsCategory = new Array() settingsCategory.push(new SettingsCategoryItem("{{.settings.category.general}}", "tlsMode,xteveAutoUpdate,hostIP,tuner,epgSource,disallowURLDuplicates,api")) -settingsCategory.push(new SettingsCategoryItem("{{.settings.category.mapping}}", "defaultMissingEPG")) +settingsCategory.push(new SettingsCategoryItem("{{.settings.category.mapping}}", "defaultMissingEPG,enableMappedChannels")) settingsCategory.push(new SettingsCategoryItem("{{.settings.category.files}}", "update,files.update,temp.path,cache.images,xepg.replace.missing.images")) settingsCategory.push(new SettingsCategoryItem("{{.settings.category.streaming}}", "buffer,udpxy,buffer.size.kb,storeBufferInRAM,buffer.timeout,user.agent,ffmpeg.path,ffmpeg.options,vlc.path,vlc.options")) settingsCategory.push(new SettingsCategoryItem("{{.settings.category.backup}}", "backup.path,backup.keep")) diff --git a/ts/settings_ts.ts b/ts/settings_ts.ts index 6a26d8a..f89120a 100644 --- a/ts/settings_ts.ts +++ b/ts/settings_ts.ts @@ -328,6 +328,20 @@ class SettingsCategory { setting.appendChild(tdRight) break + case "enableMappedChannels": + var tdLeft = document.createElement("TD") + tdLeft.innerHTML = "{{.settings.enableMappedChannels.title}}" + ":" + + var tdRight = document.createElement("TD") + var input = content.createCheckbox(settingsKey) + input.checked = data + input.setAttribute("onchange", "javascript: this.className = 'changed'") + tdRight.appendChild(input) + + setting.appendChild(tdLeft) + setting.appendChild(tdRight) + break + // Select case "hostIP": var tdLeft = document.createElement("TD") @@ -585,6 +599,10 @@ class SettingsCategory { text = "{{.settings.defaultMissingEPG.description}}" break + case "enableMappedChannels": + text = "{{.settings.enableMappedChannels.description}}" + break + case "files.update": text = "{{.settings.filesUpdate.description}}" break From d378e7a6555f6a2da3ebdc0be3b1f4692838a0f5 Mon Sep 17 00:00:00 2001 From: SCP002 Date: Wed, 4 May 2022 21:47:11 +0300 Subject: [PATCH 113/189] Fix setting DefaultMissingEPG sets dummy EPG for XMLTV but not for M3U output. Fix enabling automapping results in rebuilding XEPG database two times. --- src/data.go | 14 ++++++++++++-- src/webserver.go | 16 ---------------- 2 files changed, 12 insertions(+), 18 deletions(-) diff --git a/src/data.go b/src/data.go index 6bffdd6..75a33a1 100644 --- a/src/data.go +++ b/src/data.go @@ -25,8 +25,6 @@ func updateServerSettings(request RequestStruct) (settings SettingsStruct, err e var createXEPGFiles = false var debug string - // -vvv [URL] --sout '#transcode{vcodec=mp4v, acodec=mpga} :standard{access=http, mux=ogg}' - for key, value := range newSettings { if _, ok := oldSettings[key]; ok { @@ -102,6 +100,18 @@ func updateServerSettings(request RequestStruct) (settings SettingsStruct, err e case "scheme.m3u", "scheme.xml": createXEPGFiles = true + case "defaultMissingEPG": + // If DefaultMissingEPG was set, rebuild DVR and XEPG database + if newSettings["defaultMissingEPG"] != "-" && oldSettings["defaultMissingEPG"] == "-" { + reloadData = true + } + + case "enableMappedChannels": + // If EnableMappedChannels was turned on, rebuild DVR and XEPG database + if newSettings["enableMappedChannels"] == true && oldSettings["enableMappedChannels"] == false { + reloadData = true + } + } oldSettings[key] = value diff --git a/src/webserver.go b/src/webserver.go index fa43ff5..4bce24d 100644 --- a/src/webserver.go +++ b/src/webserver.go @@ -462,8 +462,6 @@ func WS(w http.ResponseWriter, r *http.Request) { var previousTLSMode = Settings.TLSMode var previousHostIP = Settings.HostIP var previousStoreBufferInRAM = Settings.StoreBufferInRAM - var previousDefaultMissingEPG = Settings.DefaultMissingEPG - var previousEnableMappedChannels = Settings.EnableMappedChannels response.Settings, err = updateServerSettings(request) if err == nil { @@ -496,20 +494,6 @@ func WS(w http.ResponseWriter, r *http.Request) { initBufferVFS(Settings.StoreBufferInRAM) } - if Settings.DefaultMissingEPG != "-" && previousDefaultMissingEPG == "-" { - // TODO: Probably will have to run these two when with auto enable it will not reflect changes in m3u - // buildDatabaseDVR() - // buildXEPG(false) - System.ScanInProgress = 1 - mapping() - System.ScanInProgress = 0 - } - - if Settings.EnableMappedChannels && previousEnableMappedChannels == false { - buildDatabaseDVR() - buildXEPG(false) - } - } case "saveFilesM3U": From 0260e04e072f716b9493758a159b7e848a21d08b Mon Sep 17 00:00:00 2001 From: SCP002 Date: Wed, 4 May 2022 23:10:45 +0300 Subject: [PATCH 114/189] Add config option to disable storing XMLTV cache in RAM. Closes #35 --- html/js/base_ts.js | 3 +-- html/js/settings_ts.js | 14 ++++++++++++++ html/lang/en.json | 5 +++++ src/struct-system.go | 1 + src/struct-webserver.go | 1 + src/system.go | 1 + src/webUI.go | 6 +++--- src/webserver.go | 5 +++++ src/xepg.go | 8 ++++++-- ts/base_ts.ts | 3 +-- ts/settings_ts.ts | 18 ++++++++++++++++++ 11 files changed, 56 insertions(+), 9 deletions(-) diff --git a/html/js/base_ts.js b/html/js/base_ts.js index e9b27a3..5446614 100644 --- a/html/js/base_ts.js +++ b/html/js/base_ts.js @@ -8,7 +8,6 @@ var WS_AVAILABLE = false; // Menu var menuItems = new Array(); menuItems.push(new MainMenuItem("playlist", "{{.mainMenu.item.playlist}}", "m3u.png", "{{.mainMenu.headline.playlist}}")); -//menuItems.push(new MainMenuItem("pmsID", "{{.mainMenu.item.pmsID}}", "number.png", "{{.mainMenu.headline.pmsID}}")) menuItems.push(new MainMenuItem("filter", "{{.mainMenu.item.filter}}", "filter.png", "{{.mainMenu.headline.filter}}")); menuItems.push(new MainMenuItem("xmltv", "{{.mainMenu.item.xmltv}}", "xmltv.png", "{{.mainMenu.headline.xmltv}}")); menuItems.push(new MainMenuItem("mapping", "{{.mainMenu.item.mapping}}", "mapping.png", "{{.mainMenu.headline.mapping}}")); @@ -18,7 +17,7 @@ menuItems.push(new MainMenuItem("log", "{{.mainMenu.item.log}}", "log.png", "{{. menuItems.push(new MainMenuItem("logout", "{{.mainMenu.item.logout}}", "logout.png", "{{.mainMenu.headline.logout}}")); // Settings categories var settingsCategory = new Array(); -settingsCategory.push(new SettingsCategoryItem("{{.settings.category.general}}", "tlsMode,xteveAutoUpdate,hostIP,tuner,epgSource,disallowURLDuplicates,api")); +settingsCategory.push(new SettingsCategoryItem("{{.settings.category.general}}", "tlsMode,xteveAutoUpdate,hostIP,tuner,epgSource,disallowURLDuplicates,clearXMLTVCache,api")); settingsCategory.push(new SettingsCategoryItem("{{.settings.category.mapping}}", "defaultMissingEPG,enableMappedChannels")); settingsCategory.push(new SettingsCategoryItem("{{.settings.category.files}}", "update,files.update,temp.path,cache.images,xepg.replace.missing.images")); settingsCategory.push(new SettingsCategoryItem("{{.settings.category.streaming}}", "buffer,udpxy,buffer.size.kb,storeBufferInRAM,buffer.timeout,user.agent,ffmpeg.path,ffmpeg.options,vlc.path,vlc.options")); diff --git a/html/js/settings_ts.js b/html/js/settings_ts.js index 84b0914..b2e55b9 100644 --- a/html/js/settings_ts.js +++ b/html/js/settings_ts.js @@ -249,6 +249,17 @@ class SettingsCategory { setting.appendChild(tdLeft); setting.appendChild(tdRight); break; + case "clearXMLTVCache": + var tdLeft = document.createElement("TD"); + tdLeft.innerHTML = "{{.settings.clearXMLTVCache.title}}" + ":"; + var tdRight = document.createElement("TD"); + var input = content.createCheckbox(settingsKey); + input.checked = data; + input.setAttribute("onchange", "javascript: this.className = 'changed'"); + tdRight.appendChild(input); + setting.appendChild(tdLeft); + setting.appendChild(tdRight); + break; case "api": var tdLeft = document.createElement("TD"); tdLeft.innerHTML = "{{.settings.api.title}}" + ":"; @@ -457,6 +468,9 @@ class SettingsCategory { case "update": text = "{{.settings.update.description}}"; break; + case "clearXMLTVCache": + text = "{{.settings.clearXMLTVCache.description}}"; + break; case "api": text = "{{.settings.api.description}}"; break; diff --git a/html/lang/en.json b/html/lang/en.json index 283095f..3f903d1 100644 --- a/html/lang/en.json +++ b/html/lang/en.json @@ -394,6 +394,11 @@ "title": "API Interface", "description": "Via API interface it is possible to send commands to xTeVe. API documentation is here" }, + "clearXMLTVCache": + { + "title": "Clear XMLTV cache", + "description": "If checked, do not keep XMLTV cache in memory.
Significally reduces RAM usage in idle mode,
but significally slowing down every subsequent update in XEPG database." + }, "defaultMissingEPG": { "title": "Fill Missing EPG Data", diff --git a/src/struct-system.go b/src/struct-system.go index 569f020..63506b0 100644 --- a/src/struct-system.go +++ b/src/struct-system.go @@ -284,6 +284,7 @@ type SettingsStruct struct { BufferSize int `json:"buffer.size.kb"` BufferTimeout float64 `json:"buffer.timeout"` CacheImages bool `json:"cache.images"` + ClearXMLTVCache bool `json:"clearXMLTVCache"` DefaultMissingEPG string `json:"defaultMissingEPG,required"` DisallowURLDuplicates bool `json:"disallowURLDuplicates"` EnableMappedChannels bool `json:"enableMappedChannels"` diff --git a/src/struct-webserver.go b/src/struct-webserver.go index e731952..15e6c94 100644 --- a/src/struct-webserver.go +++ b/src/struct-webserver.go @@ -29,6 +29,7 @@ type RequestStruct struct { BufferSize *int `json:"buffer.size.kb,omitempty"` BufferTimeout *float64 `json:"buffer.timeout,omitempty"` CacheImages *bool `json:"cache.images,omitempty"` + ClearXMLTVCache *bool `json:"clearXMLTVCache,omitempty"` DefaultMissingEPG *string `json:"defaultMissingEPG,omitempty"` DisallowURLDuplicates *bool `json:"disallowURLDuplicates,omitempty"` EnableMappedChannels *bool `json:"enableMappedChannels,omitempty"` diff --git a/src/system.go b/src/system.go index 820f08f..7a31778 100644 --- a/src/system.go +++ b/src/system.go @@ -116,6 +116,7 @@ func loadSettings() (settings SettingsStruct, err error) { defaults["buffer.timeout"] = 500 defaults["buffer"] = "-" defaults["cache.images"] = false + defaults["clearXMLTVCache"] = false defaults["defaultMissingEPG"] = "-" defaults["disallowURLDuplicates"] = false defaults["enableMappedChannels"] = false diff --git a/src/webUI.go b/src/webUI.go index 36787bf..5aebd84 100644 --- a/src/webUI.go +++ b/src/webUI.go @@ -25,14 +25,14 @@ func loadHTMLMap() { webUI["html/img/xmltv.png"] = "iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAAAXNSR0IArs4c6QAAAAlwSFlzAAAsSwAALEsBpT2WqQAABCRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IlhNUCBDb3JlIDUuNC4wIj4KICAgPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIgogICAgICAgICAgICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgICAgICAgICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyI+CiAgICAgICAgIDx0aWZmOlJlc29sdXRpb25Vbml0PjI8L3RpZmY6UmVzb2x1dGlvblVuaXQ+CiAgICAgICAgIDx0aWZmOkNvbXByZXNzaW9uPjU8L3RpZmY6Q29tcHJlc3Npb24+CiAgICAgICAgIDx0aWZmOlhSZXNvbHV0aW9uPjI4ODwvdGlmZjpYUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6T3JpZW50YXRpb24+MTwvdGlmZjpPcmllbnRhdGlvbj4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+Mjg4PC90aWZmOllSZXNvbHV0aW9uPgogICAgICAgICA8ZXhpZjpQaXhlbFhEaW1lbnNpb24+NTA8L2V4aWY6UGl4ZWxYRGltZW5zaW9uPgogICAgICAgICA8ZXhpZjpDb2xvclNwYWNlPjE8L2V4aWY6Q29sb3JTcGFjZT4KICAgICAgICAgPGV4aWY6UGl4ZWxZRGltZW5zaW9uPjUwPC9leGlmOlBpeGVsWURpbWVuc2lvbj4KICAgICAgICAgPGRjOnN1YmplY3Q+CiAgICAgICAgICAgIDxyZGY6QmFnLz4KICAgICAgICAgPC9kYzpzdWJqZWN0PgogICAgICAgICA8eG1wOk1vZGlmeURhdGU+MjAxOC0wNy0yOFQyMDowNzozMzwveG1wOk1vZGlmeURhdGU+CiAgICAgICAgIDx4bXA6Q3JlYXRvclRvb2w+UGl4ZWxtYXRvciAzLjM8L3htcDpDcmVhdG9yVG9vbD4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgIDwvcmRmOlJERj4KPC94OnhtcG1ldGE+Co6j9bsAAAGgSURBVGgF7VqxTsNADL0gYGEon8DOwsbAAH8BYmJn6cYIn8DC3h0+oixISFRiYYCJL0AwMMBAeK5w2rpV6uikxHfYknW98+vds18TK21DWGBlWR7CH+BfcEv2AzLP8HP42gLqkyUATuEp2PWEdQjF9ATs1zF/g29Mrxt+vVcUxR3xWxEktzFPJQmivsv8ZSI9DiQyVnxlIonwn6fpiczXpNuVVXH8O+a3Ys3y9NUyuf/NTTbEHZTjUlGSRzSiPhroUIENwB4AS/vS/susDwDhTpYBER9g7wHh5DWyibV9CiitCZbIafDEYUuJHQI3Nr/9ciWsjK6IFSWYhyvClbAyZqOIlYJG84jq7E1Ot97Zm+TinV1TrWwudk9EI3ebGFekzWprzspGEU2ySWCiOrs/s9dr7M/s9fVJJJrNXcsTsfaJc0WsKZINH+/sf1Jqvl1n1f2ZnStRN/pdq646XcSkIh9dkIg4s+IrE3nCpp8RG7f91ns+cCYR/LD4jcAZB42PN+A7/mcQ8ZxJhBYQvMJwBB/BKTFLVoLMC/wCfgyv7BesTKUC2LKM3wAAAABJRU5ErkJggg==" webUI["html/index.html"] = "PCFkb2N0eXBlIGh0bWw+DQo8aHRtbD4NCiAgPGhlYWQ+DQogICAgPG1ldGEgY2hhcnNldD0idXRmLTgiPg0KICAgIDwhLS0tDQogICAgPG1ldGEgbmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9IndpZHRoPWRldmljZS13aWR0aCwgaW5pdGlhbC1zY2FsZT0xLjAiIC8+IA0KICAgIC0tPg0KICAgIDx0aXRsZT54VGVWZTwvdGl0bGU+DQogICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJjc3Mvc2NyZWVuLmNzcyIgdHlwZT0idGV4dC9jc3MiPg0KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iY3NzL2Jhc2UuY3NzIiB0eXBlPSJ0ZXh0L2NzcyI+DQoNCiAgICA8c2NyaXB0IGxhbmd1YWdlPSJqYXZhc2NyaXB0IiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ianMvbmV0d29ya190cy5qcyI+PC9zY3JpcHQ+DQogICAgPHNjcmlwdCBsYW5ndWFnZT0iamF2YXNjcmlwdCIgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9ImpzL21lbnVfdHMuanMiPjwvc2NyaXB0Pg0KICAgIDxzY3JpcHQgbGFuZ3VhZ2U9ImphdmFzY3JpcHQiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJqcy9zZXR0aW5nc190cy5qcyI+PC9zY3JpcHQ+DQogICAgPHNjcmlwdCBsYW5ndWFnZT0iamF2YXNjcmlwdCIgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9ImpzL2xvZ3NfdHMuanMiPjwvc2NyaXB0Pg0KICAgIDxzY3JpcHQgbGFuZ3VhZ2U9ImphdmFzY3JpcHQiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJqcy9iYXNlX3RzLmpzIj48L3NjcmlwdD4NCg0KICA8L2hlYWQ+DQoNCiAgICA8Ym9keSBvbmxvYWQ9ImphdmFzY3JpcHQ6IFBhZ2VSZWFkeSgpOyI+DQoNCiAgICAgIDxkaXYgaWQ9ImxvYWRpbmciIGNsYXNzPSJub25lIj4NCiAgICAgICAgPGRpdiBjbGFzcz0ibG9hZGVyIj48L2Rpdj4NCiAgICAgIDwvZGl2Pg0KDQogICAgICA8ZGl2IGlkPSJwb3B1cCIgY2xhc3M9Im5vbmUiPg0KICAgICAgICA8ZGl2IGlkPSJwb3B1cC1jdXN0b20iPjwvZGl2Pg0KICAgICAgPC9kaXY+DQoNCiAgICAgIDxkaXYgaWQ9ImxheW91dCI+DQoNCiAgICAgICAgPCEtLQ0KICAgICAgICA8ZGl2IGlkPSJub3RpZmljYXRpb24iPg0KICAgICAgICAgIDxkaXYgY2xhc3M9ImVsZW1lbnQiPg0KICAgICAgICAgICAgPGg1PlhFUEc8L2g1Pg0KICAgICAgICAgICAgPHByZT4xMS4wNS4yMDE5IC0gMjA6MjE8L3ByZT4NCiAgICAgICAgICAgIDxocj4NCiAgICAgICAgICAgIDxwPkhhbGxvIGRhcyBpc3QgZWluIFRlc3QuIFVuZCBub2NoIG1laHIgVGV4dC48L3A+DQogICAgICAgICAgPC9kaXY+DQogICAgICAgIDwvZGl2Pg0KICAgICAgLS0+DQoNCiAgICAgICAgPGRpdiBpZD0ibWVudS13cmFwcGVyIiBjbGFzcz0ibGF5b3V0LWxlZnQiPg0KICAgICAgICAgIDxkaXYgaWQ9ICJicmFuY2giPjwvZGl2Pg0KICAgICAgICAgIDxkaXYgaWQ9ImxvZ28iPjwvZGl2Pg0KICAgICAgICAgIDxuYXYgaWQ9Im1haW4tbWVudSI+PC9uYXY+DQogICAgICAgIDwvZGl2Pg0KDQogICAgICAgIDxkaXYgY2xhc3M9ImxheW91dC1yaWdodCI+DQoNCiAgICAgICAgICA8dGFibGUgaWQ9ImNsaWVudEluZm8iIGNsYXNzPSIiPg0KDQogICAgICAgICAgICA8dHI+DQogICAgICAgICAgICAgIDx0ZCBjbGFzcz0idGRLZXkiPnhUZVZlOjwvdGQ+DQogICAgICAgICAgICAgIDx0ZCBpZD0idmVyc2lvbiIgY2xhc3M9InRkVmFsIj4mbmJzcDs8L3RkPg0KICAgICAgICAgICAgICA8dGQgY2xhc3M9InRkS2V5Ij5PUzo8L3RkPg0KICAgICAgICAgICAgICA8dGQgaWQ9Im9zIiBjbGFzcz0idGRWYWwiPiZuYnNwOzwvdGQ+DQogICAgICAgICAgICAgIDx0ZCBjbGFzcz0idGRLZXkgcGhvbmUiPkRWUiBJUDo8L3RkPg0KICAgICAgICAgICAgICA8dGQgaWQ9IkRWUiIgY2xhc3M9InRkVmFsIHBob25lIj4mbmJzcDs8L3RkPg0KICAgICAgICAgICAgPC90cj4NCg0KICAgICAgICAgICAgPHRyPg0KICAgICAgICAgICAgICA8dGQgY2xhc3M9InRkS2V5Ij5VVUlEOjwvdGQ+DQogICAgICAgICAgICAgIDx0ZCBpZD0idXVpZCIgY2xhc3M9InRkVmFsIj4mbmJzcDs8L3RkPg0KICAgICAgICAgICAgICA8dGQgY2xhc3M9InRkS2V5Ij5BcmNoOjwvdGQ+DQogICAgICAgICAgICAgIDx0ZCBpZD0iYXJjaCIgY2xhc3M9InRkVmFsIj4mbmJzcDs8L3RkPg0KICAgICAgICAgICAgICA8dGQgY2xhc3M9InRkS2V5IHBob25lIj5NM1UgVVJMOjwvdGQ+DQogICAgICAgICAgICAgIDx0ZCBpZD0ibTN1LXVybCIgY2xhc3M9InRkVmFsIHBob25lIj4mbmJzcDs8L3RkPg0KICAgICAgICAgICAgPC90cj4NCg0KICAgICAgICAgICAgPHRyPg0KICAgICAgICAgICAgICA8dGQgY2xhc3M9InRkS2V5Ij5BdmFpbGFibGUgU3RyZWFtczo8L3RkPg0KICAgICAgICAgICAgICA8dGQgaWQ9InN0cmVhbXMiIGNsYXNzPSJ0ZFZhbCI+Jm5ic3A7PC90ZD4NCiAgICAgICAgICAgICAgPHRkIGNsYXNzPSJ0ZEtleSI+RVBHIFNvdXJjZTo8L3RkPg0KICAgICAgICAgICAgICA8dGQgaWQ9ImVwZ1NvdXJjZSIgY2xhc3M9InRkVmFsIj4mbmJzcDs8L3RkPg0KICAgICAgICAgICAgICA8dGQgY2xhc3M9InRkS2V5IHBob25lIj5YRVBHIFVSTDo8L3RkPg0KICAgICAgICAgICAgICA8dGQgaWQ9InhlcGctdXJsIiBjbGFzcz0idGRWYWwgcGhvbmUiPiZuYnNwOzwvdGQ+DQogICAgICAgICAgICA8L3RyPg0KDQogICAgICAgICAgICA8dHI+DQogICAgICAgICAgICAgIDx0ZCBjbGFzcz0idGRLZXkiPlhFUEcgQ2hhbm5lbHM6PC90ZD4NCiAgICAgICAgICAgICAgPHRkIGlkPSJ4ZXBnIiBjbGFzcz0idGRWYWwiPiZuYnNwOzwvdGQ+DQogICAgICAgICAgICAgIDx0ZCBjbGFzcz0idGRLZXkiPkVycm9yczo8L3RkPg0KICAgICAgICAgICAgICA8dGQgaWQ9ImVycm9ycyIgY2xhc3M9InRkVmFsIj4mbmJzcDs8L3RkPg0KICAgICAgICAgICAgICA8dGQgY2xhc3M9InRkS2V5Ij5XYXJuaW5nczo8L3RkPg0KICAgICAgICAgICAgICA8dGQgaWQ9Indhcm5pbmdzIiBjbGFzcz0idGRWYWwiPiZuYnNwOzwvdGQ+DQogICAgICAgICAgICA8L3RyPg0KDQogICAgICAgICAgPC90YWJsZT4NCiAgICAgICAgIA0KICAgICAgICAgIDxkaXYgaWQ9Im15U3RyZWFtc0JveCIgY2xhc3M9Im5vdFZpc2libGUiPg0KDQogICAgICAgICAgICA8ZGl2IGlkPSJhbGxTdHJlYW1zIj4NCiAgICAgICAgICAgICAgPHRhYmxlIGlkPSJhY3RpdmVTdHJlYW1zIj48L3RhYmxlPg0KICAgICAgICAgICAgICA8dGFibGUgaWQ9ImluYWN0aXZlU3RyZWFtcyI+PC90YWJsZT4NCiAgICAgICAgICAgIDwvZGl2Pg0KDQogICAgICAgICAgPC9kaXY+DQogICAgICAgICAgDQogICAgICAgICAgPGRpdiBpZD0iY29udGVudCIgY2xhc3M9IiI+PC9kaXY+DQogICAgICAgICAgICANCiAgICAgICAgPC9kaXY+DQoNCiAgICAgIDwvZGl2Pg0KICAgICAgDQogICAgPC9ib2R5Pg0KICAgIA0KPC9odG1sPg==" webUI["html/js/authentication_ts.js"] = "ZnVuY3Rpb24gbG9naW4oKSB7DQogICAgdmFyIGVyciA9IGZhbHNlOw0KICAgIHZhciBkYXRhID0gbmV3IE9iamVjdCgpOw0KICAgIHZhciBkaXYgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29udGVudCIpOw0KICAgIHZhciBmb3JtID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImF1dGhlbnRpY2F0aW9uIik7DQogICAgdmFyIGlucHV0cyA9IGRpdi5nZXRFbGVtZW50c0J5VGFnTmFtZSgiSU5QVVQiKTsNCiAgICBmb3IgKHZhciBpID0gaW5wdXRzLmxlbmd0aCAtIDE7IGkgPj0gMDsgaS0tKSB7DQogICAgICAgIHZhciBrZXkgPSBpbnB1dHNbaV0ubmFtZTsNCiAgICAgICAgdmFyIHZhbHVlID0gaW5wdXRzW2ldLnZhbHVlOw0KICAgICAgICBpZiAodmFsdWUubGVuZ3RoID09IDApIHsNCiAgICAgICAgICAgIGlucHV0c1tpXS5zdHlsZS5ib3JkZXJDb2xvciA9ICJyZWQiOw0KICAgICAgICAgICAgZXJyID0gdHJ1ZTsNCiAgICAgICAgfQ0KICAgICAgICBkYXRhW2tleV0gPSB2YWx1ZTsNCiAgICB9DQogICAgaWYgKGVyciA9PSB0cnVlKSB7DQogICAgICAgIGRhdGEgPSBuZXcgT2JqZWN0KCk7DQogICAgICAgIHJldHVybjsNCiAgICB9DQogICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoImNvbmZpcm0iKSkgew0KICAgICAgICBpZiAoZGF0YVsiY29uZmlybSJdICE9IGRhdGFbInBhc3N3b3JkIl0pIHsNCiAgICAgICAgICAgIGFsZXJ0KCJzZGFmc2QiKTsNCiAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdwYXNzd29yZCcpLnN0eWxlLmJvcmRlckNvbG9yID0gInJlZCI7DQogICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY29uZmlybScpLnN0eWxlLmJvcmRlckNvbG9yID0gInJlZCI7DQogICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZXJyIikuaW5uZXJIVE1MID0gInt7LmFjY291bnQuZmFpbGVkfX0iOw0KICAgICAgICAgICAgcmV0dXJuOw0KICAgICAgICB9DQogICAgfQ0KICAgIGZvcm0uc3VibWl0KCk7DQp9DQo=" - webUI["html/js/base_ts.js"] = "dmFyIFNFUlZFUiA9IG5ldyBPYmplY3QoKTsNCnZhciBCVUxLX0VESVQgPSBmYWxzZTsNCnZhciBDT0xVTU5fVE9fU09SVDsNCnZhciBTRUFSQ0hfTUFQUElORyA9IG5ldyBPYmplY3QoKTsNCnZhciBVTkRPID0gbmV3IE9iamVjdCgpOw0KdmFyIFNFUlZFUl9DT05ORUNUSU9OID0gZmFsc2U7DQp2YXIgV1NfQVZBSUxBQkxFID0gZmFsc2U7DQovLyBNZW51DQp2YXIgbWVudUl0ZW1zID0gbmV3IEFycmF5KCk7DQptZW51SXRlbXMucHVzaChuZXcgTWFpbk1lbnVJdGVtKCJwbGF5bGlzdCIsICJ7ey5tYWluTWVudS5pdGVtLnBsYXlsaXN0fX0iLCAibTN1LnBuZyIsICJ7ey5tYWluTWVudS5oZWFkbGluZS5wbGF5bGlzdH19IikpOw0KLy9tZW51SXRlbXMucHVzaChuZXcgTWFpbk1lbnVJdGVtKCJwbXNJRCIsICJ7ey5tYWluTWVudS5pdGVtLnBtc0lEfX0iLCAibnVtYmVyLnBuZyIsICJ7ey5tYWluTWVudS5oZWFkbGluZS5wbXNJRH19IikpDQptZW51SXRlbXMucHVzaChuZXcgTWFpbk1lbnVJdGVtKCJmaWx0ZXIiLCAie3subWFpbk1lbnUuaXRlbS5maWx0ZXJ9fSIsICJmaWx0ZXIucG5nIiwgInt7Lm1haW5NZW51LmhlYWRsaW5lLmZpbHRlcn19IikpOw0KbWVudUl0ZW1zLnB1c2gobmV3IE1haW5NZW51SXRlbSgieG1sdHYiLCAie3subWFpbk1lbnUuaXRlbS54bWx0dn19IiwgInhtbHR2LnBuZyIsICJ7ey5tYWluTWVudS5oZWFkbGluZS54bWx0dn19IikpOw0KbWVudUl0ZW1zLnB1c2gobmV3IE1haW5NZW51SXRlbSgibWFwcGluZyIsICJ7ey5tYWluTWVudS5pdGVtLm1hcHBpbmd9fSIsICJtYXBwaW5nLnBuZyIsICJ7ey5tYWluTWVudS5oZWFkbGluZS5tYXBwaW5nfX0iKSk7DQptZW51SXRlbXMucHVzaChuZXcgTWFpbk1lbnVJdGVtKCJ1c2VycyIsICJ7ey5tYWluTWVudS5pdGVtLnVzZXJzfX0iLCAidXNlcnMucG5nIiwgInt7Lm1haW5NZW51LmhlYWRsaW5lLnVzZXJzfX0iKSk7DQptZW51SXRlbXMucHVzaChuZXcgTWFpbk1lbnVJdGVtKCJzZXR0aW5ncyIsICJ7ey5tYWluTWVudS5pdGVtLnNldHRpbmdzfX0iLCAic2V0dGluZ3MucG5nIiwgInt7Lm1haW5NZW51LmhlYWRsaW5lLnNldHRpbmdzfX0iKSk7DQptZW51SXRlbXMucHVzaChuZXcgTWFpbk1lbnVJdGVtKCJsb2ciLCAie3subWFpbk1lbnUuaXRlbS5sb2d9fSIsICJsb2cucG5nIiwgInt7Lm1haW5NZW51LmhlYWRsaW5lLmxvZ319IikpOw0KbWVudUl0ZW1zLnB1c2gobmV3IE1haW5NZW51SXRlbSgibG9nb3V0IiwgInt7Lm1haW5NZW51Lml0ZW0ubG9nb3V0fX0iLCAibG9nb3V0LnBuZyIsICJ7ey5tYWluTWVudS5oZWFkbGluZS5sb2dvdXR9fSIpKTsNCi8vIFNldHRpbmdzIGNhdGVnb3JpZXMNCnZhciBzZXR0aW5nc0NhdGVnb3J5ID0gbmV3IEFycmF5KCk7DQpzZXR0aW5nc0NhdGVnb3J5LnB1c2gobmV3IFNldHRpbmdzQ2F0ZWdvcnlJdGVtKCJ7ey5zZXR0aW5ncy5jYXRlZ29yeS5nZW5lcmFsfX0iLCAidGxzTW9kZSx4dGV2ZUF1dG9VcGRhdGUsaG9zdElQLHR1bmVyLGVwZ1NvdXJjZSxkaXNhbGxvd1VSTER1cGxpY2F0ZXMsYXBpIikpOw0Kc2V0dGluZ3NDYXRlZ29yeS5wdXNoKG5ldyBTZXR0aW5nc0NhdGVnb3J5SXRlbSgie3suc2V0dGluZ3MuY2F0ZWdvcnkubWFwcGluZ319IiwgImRlZmF1bHRNaXNzaW5nRVBHLGVuYWJsZU1hcHBlZENoYW5uZWxzIikpOw0Kc2V0dGluZ3NDYXRlZ29yeS5wdXNoKG5ldyBTZXR0aW5nc0NhdGVnb3J5SXRlbSgie3suc2V0dGluZ3MuY2F0ZWdvcnkuZmlsZXN9fSIsICJ1cGRhdGUsZmlsZXMudXBkYXRlLHRlbXAucGF0aCxjYWNoZS5pbWFnZXMseGVwZy5yZXBsYWNlLm1pc3NpbmcuaW1hZ2VzIikpOw0Kc2V0dGluZ3NDYXRlZ29yeS5wdXNoKG5ldyBTZXR0aW5nc0NhdGVnb3J5SXRlbSgie3suc2V0dGluZ3MuY2F0ZWdvcnkuc3RyZWFtaW5nfX0iLCAiYnVmZmVyLHVkcHh5LGJ1ZmZlci5zaXplLmtiLHN0b3JlQnVmZmVySW5SQU0sYnVmZmVyLnRpbWVvdXQsdXNlci5hZ2VudCxmZm1wZWcucGF0aCxmZm1wZWcub3B0aW9ucyx2bGMucGF0aCx2bGMub3B0aW9ucyIpKTsNCnNldHRpbmdzQ2F0ZWdvcnkucHVzaChuZXcgU2V0dGluZ3NDYXRlZ29yeUl0ZW0oInt7LnNldHRpbmdzLmNhdGVnb3J5LmJhY2t1cH19IiwgImJhY2t1cC5wYXRoLGJhY2t1cC5rZWVwIikpOw0Kc2V0dGluZ3NDYXRlZ29yeS5wdXNoKG5ldyBTZXR0aW5nc0NhdGVnb3J5SXRlbSgie3suc2V0dGluZ3MuY2F0ZWdvcnkuYXV0aGVudGljYXRpb259fSIsICJhdXRoZW50aWNhdGlvbi53ZWIsYXV0aGVudGljYXRpb24ucG1zLGF1dGhlbnRpY2F0aW9uLm0zdSxhdXRoZW50aWNhdGlvbi54bWwsYXV0aGVudGljYXRpb24uYXBpIikpOw0KZnVuY3Rpb24gc2hvd1BvcFVwRWxlbWVudChlbG0pIHsNCiAgICB2YXIgYWxsRWxlbWVudHMgPSBuZXcgQXJyYXkoInBvcHVwLWN1c3RvbSIpOw0KICAgIGZvciAodmFyIGkgPSAwOyBpIDwgYWxsRWxlbWVudHMubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgc2hvd0VsZW1lbnQoYWxsRWxlbWVudHNbaV0sIGZhbHNlKTsNCiAgICB9DQogICAgc2hvd0VsZW1lbnQoZWxtLCB0cnVlKTsNCiAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsNCiAgICAgICAgc2hvd0VsZW1lbnQoInBvcHVwIiwgdHJ1ZSk7DQogICAgfSwgMTApOw0KICAgIHJldHVybjsNCn0NCmZ1bmN0aW9uIHNob3dFbGVtZW50KGVsbUlELCB0eXBlKSB7DQogICAgdmFyIGNzc0NsYXNzOw0KICAgIHN3aXRjaCAodHlwZSkgew0KICAgICAgICBjYXNlIHRydWU6DQogICAgICAgICAgICBjc3NDbGFzcyA9ICJibG9jayI7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSBmYWxzZToNCiAgICAgICAgICAgIGNzc0NsYXNzID0gIm5vbmUiOw0KICAgICAgICAgICAgYnJlYWs7DQogICAgfQ0KICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGVsbUlEKS5jbGFzc05hbWUgPSBjc3NDbGFzczsNCn0NCmZ1bmN0aW9uIGNoYW5nZUJ1dHRvbkFjdGlvbihlbGVtZW50LCBidXR0b25JRCwgYXR0cmlidXRlKSB7DQogICAgdmFyIHZhbHVlID0gZWxlbWVudC5vcHRpb25zW2VsZW1lbnQuc2VsZWN0ZWRJbmRleF0udmFsdWU7DQogICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoYnV0dG9uSUQpLnNldEF0dHJpYnV0ZShhdHRyaWJ1dGUsIHZhbHVlKTsNCn0NCmZ1bmN0aW9uIGdldExvY2FsRGF0YShkYXRhVHlwZSwgaWQpIHsNCiAgICBsZXQgZGF0YSA9IHt9Ow0KICAgIHN3aXRjaCAoZGF0YVR5cGUpIHsNCiAgICAgICAgY2FzZSAibTN1IjoNCiAgICAgICAgICAgIGRhdGEgPSBTRVJWRVJbInNldHRpbmdzIl1bImZpbGVzIl1bZGF0YVR5cGVdW2lkXTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJoZGhyIjoNCiAgICAgICAgICAgIGRhdGEgPSBTRVJWRVJbInNldHRpbmdzIl1bImZpbGVzIl1bZGF0YVR5cGVdW2lkXTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJmaWx0ZXIiOg0KICAgICAgICBjYXNlICJjdXN0b20tZmlsdGVyIjoNCiAgICAgICAgY2FzZSAiZ3JvdXAtdGl0bGUiOg0KICAgICAgICAgICAgaWYgKGlkID09IC0xKSB7DQogICAgICAgICAgICAgICAgZGF0YVsiYWN0aXZlIl0gPSB0cnVlOw0KICAgICAgICAgICAgICAgIGRhdGFbImNhc2VTZW5zaXRpdmUiXSA9IGZhbHNlOw0KICAgICAgICAgICAgICAgIGRhdGFbImRlc2NyaXB0aW9uIl0gPSAiIjsNCiAgICAgICAgICAgICAgICBkYXRhWyJleGNsdWRlIl0gPSAiIjsNCiAgICAgICAgICAgICAgICBkYXRhWyJmaWx0ZXIiXSA9ICIiOw0KICAgICAgICAgICAgICAgIGRhdGFbImluY2x1ZGUiXSA9ICIiOw0KICAgICAgICAgICAgICAgIGRhdGFbIm5hbWUiXSA9ICIiOw0KICAgICAgICAgICAgICAgIGRhdGFbInR5cGUiXSA9ICJncm91cC10aXRsZSI7DQogICAgICAgICAgICAgICAgZGF0YVsicHJlc2VydmVNYXBwaW5nIl0gPSB0cnVlOw0KICAgICAgICAgICAgICAgIGRhdGFbInN0YXJ0aW5nQ2hhbm5lbCJdID0gU0VSVkVSWyJzZXR0aW5ncyJdWyJtYXBwaW5nLmZpcnN0LmNoYW5uZWwiXTsNCiAgICAgICAgICAgICAgICBTRVJWRVJbInNldHRpbmdzIl1bImZpbHRlciJdW2lkXSA9IGRhdGE7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBkYXRhID0gU0VSVkVSWyJzZXR0aW5ncyJdWyJmaWx0ZXIiXVtpZF07DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSAieG1sdHYiOg0KICAgICAgICAgICAgZGF0YSA9IFNFUlZFUlsic2V0dGluZ3MiXVsiZmlsZXMiXVtkYXRhVHlwZV1baWRdOw0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGNhc2UgInVzZXJzIjoNCiAgICAgICAgICAgIGRhdGEgPSBTRVJWRVJbInVzZXJzIl1baWRdWyJkYXRhIl07DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSAibWFwcGluZyI6DQogICAgICAgICAgICBkYXRhID0gU0VSVkVSWyJ4ZXBnIl1bImVwZ01hcHBpbmciXVtpZF07DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSAibTN1R3JvdXBzIjoNCiAgICAgICAgICAgIGRhdGEgPSBTRVJWRVJbImRhdGEiXVsicGxheWxpc3QiXVsibTN1Il1bImdyb3VwcyJdOw0KICAgICAgICAgICAgYnJlYWs7DQogICAgfQ0KICAgIHJldHVybiBkYXRhOw0KfQ0KZnVuY3Rpb24gZ2V0T3duT2JqUHJvcHMob2JqZWN0KSB7DQogICAgcmV0dXJuIG9iamVjdCA/IE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKG9iamVjdCkgOiBbXTsNCn0NCmZ1bmN0aW9uIGdldEFsbFNlbGVjdGVkQ2hhbm5lbHMoKSB7DQogICAgdmFyIGNoYW5uZWxzID0gbmV3IEFycmF5KCk7DQogICAgaWYgKEJVTEtfRURJVCA9PSBmYWxzZSkgew0KICAgICAgICByZXR1cm4gY2hhbm5lbHM7DQogICAgfQ0KICAgIHZhciB0cnMgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29udGVudF90YWJsZSIpLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJUUiIpOw0KICAgIGZvciAodmFyIGkgPSAxOyBpIDwgdHJzLmxlbmd0aDsgaSsrKSB7DQogICAgICAgIGlmICh0cnNbaV0uc3R5bGUuZGlzcGxheSAhPSAibm9uZSIpIHsNCiAgICAgICAgICAgIGlmICh0cnNbaV0uZmlyc3RDaGlsZC5maXJzdENoaWxkLmNoZWNrZWQgPT0gdHJ1ZSkgew0KICAgICAgICAgICAgICAgIGNoYW5uZWxzLnB1c2godHJzW2ldLmlkKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KICAgIH0NCiAgICByZXR1cm4gY2hhbm5lbHM7DQp9DQpmdW5jdGlvbiBzZWxlY3RBbGxDaGFubmVscygpIHsNCiAgICB2YXIgYnVsayA9IGZhbHNlOw0KICAgIHZhciB0cnMgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29udGVudF90YWJsZSIpLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJUUiIpOw0KICAgIGlmICh0cnNbMF0uZmlyc3RDaGlsZC5maXJzdENoaWxkLmNoZWNrZWQgPT0gdHJ1ZSkgew0KICAgICAgICBidWxrID0gdHJ1ZTsNCiAgICB9DQogICAgZm9yICh2YXIgaSA9IDE7IGkgPCB0cnMubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgaWYgKHRyc1tpXS5zdHlsZS5kaXNwbGF5ICE9ICJub25lIikgew0KICAgICAgICAgICAgc3dpdGNoIChidWxrKSB7DQogICAgICAgICAgICAgICAgY2FzZSB0cnVlOg0KICAgICAgICAgICAgICAgICAgICB0cnNbaV0uZmlyc3RDaGlsZC5maXJzdENoaWxkLmNoZWNrZWQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBjYXNlIGZhbHNlOg0KICAgICAgICAgICAgICAgICAgICB0cnNbaV0uZmlyc3RDaGlsZC5maXJzdENoaWxkLmNoZWNrZWQgPSBmYWxzZTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICB9DQogICAgICAgIH0NCiAgICB9DQogICAgcmV0dXJuOw0KfQ0KZnVuY3Rpb24gYnVsa0VkaXQoKSB7DQogICAgQlVMS19FRElUID0gIUJVTEtfRURJVDsNCiAgICB2YXIgY2xhc3NOYW1lOw0KICAgIHZhciByb3dzID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSgiYnVsayIpOw0KICAgIHN3aXRjaCAoQlVMS19FRElUKSB7DQogICAgICAgIGNhc2UgdHJ1ZToNCiAgICAgICAgICAgIGNsYXNzTmFtZSA9ICJidWxrIHNob3dCdWxrIjsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlIGZhbHNlOg0KICAgICAgICAgICAgY2xhc3NOYW1lID0gImJ1bGsgaGlkZUJ1bGsiOw0KICAgICAgICAgICAgYnJlYWs7DQogICAgfQ0KICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcm93cy5sZW5ndGg7IGkrKykgew0KICAgICAgICByb3dzW2ldLmNsYXNzTmFtZSA9IGNsYXNzTmFtZTsNCiAgICAgICAgcm93c1tpXS5jaGVja2VkID0gZmFsc2U7DQogICAgfQ0KICAgIHJldHVybjsNCn0NCmZ1bmN0aW9uIHNvcnRUYWJsZShjb2x1bW4pIHsNCiAgICBpZiAoY29sdW1uID09IENPTFVNTl9UT19TT1JUKSB7DQogICAgICAgIHJldHVybjsNCiAgICB9DQogICAgY29uc3QgdGFibGUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29udGVudF90YWJsZSIpOw0KICAgIGNvbnN0IHRhYmxlSGVhZCA9IHRhYmxlLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJUUiIpWzBdOw0KICAgIGNvbnN0IHRhYmxlSXRlbXMgPSB0YWJsZUhlYWQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlREIik7DQogICAgY29uc3Qgc29ydEFyciA9IFtdOw0KICAgIGxldCB4VmFsdWU7DQogICAgaWYgKGNvbHVtbiA+PSAwICYmIENPTFVNTl9UT19TT1JUID49IDApIHsNCiAgICAgICAgdGFibGVJdGVtc1tDT0xVTU5fVE9fU09SVF0uY2xhc3NOYW1lID0gInBvaW50ZXIiOw0KICAgICAgICB0YWJsZUl0ZW1zW2NvbHVtbl0uY2xhc3NOYW1lID0gInNvcnRUaGlzIjsNCiAgICB9DQogICAgQ09MVU1OX1RPX1NPUlQgPSBjb2x1bW47DQogICAgY29uc3Qgcm93cyA9IHRhYmxlLnJvd3M7DQogICAgaWYgKHJvd3NbMV0gIT0gdW5kZWZpbmVkKSB7DQogICAgICAgIGNvbnN0IHRhYmxlSGVhZGVyID0gcm93c1swXTsNCiAgICAgICAgbGV0IHggPSByb3dzWzFdLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJURCIpW2NvbHVtbl07DQogICAgICAgIGZvciAobGV0IGkgPSAxOyBpIDwgcm93cy5sZW5ndGg7IGkrKykgew0KICAgICAgICAgICAgeCA9IHJvd3NbaV0uZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlREIilbY29sdW1uXTsNCiAgICAgICAgICAgIHN3aXRjaCAoeC5jaGlsZE5vZGVzWzBdLnRhZ05hbWUudG9Mb3dlckNhc2UoKSkgew0KICAgICAgICAgICAgICAgIGNhc2UgImlucHV0IjoNCiAgICAgICAgICAgICAgICAgICAgeFZhbHVlID0geC5nZXRFbGVtZW50c0J5VGFnTmFtZSgiSU5QVVQiKVswXS52YWx1ZS50b0xvd2VyQ2FzZSgpOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBjYXNlICJwIjoNCiAgICAgICAgICAgICAgICAgICAgeFZhbHVlID0geC5nZXRFbGVtZW50c0J5VGFnTmFtZSgiUCIpWzBdLmlubmVyVGV4dC50b0xvd2VyQ2FzZSgpOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBkZWZhdWx0Og0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIHNvcnRBcnIucHVzaCh7IGtleTogeFZhbHVlID8geFZhbHVlIDogaSwgcm93OiByb3dzW2ldIH0pOw0KICAgICAgICB9DQogICAgICAgIHdoaWxlICh0YWJsZS5maXJzdENoaWxkKSB7DQogICAgICAgICAgICB0YWJsZS5yZW1vdmVDaGlsZCh0YWJsZS5maXJzdENoaWxkKTsNCiAgICAgICAgfQ0KICAgICAgICBzb3J0QXJyLnNvcnQoKHNlMSwgc2UyKSA9PiB7DQogICAgICAgICAgICBjb25zdCBzZTFLZXlOdW0gPSBwYXJzZUZsb2F0KFN0cmluZyhzZTEua2V5KSk7DQogICAgICAgICAgICBjb25zdCBzZTJLZXlOdW0gPSBwYXJzZUZsb2F0KFN0cmluZyhzZTIua2V5KSk7DQogICAgICAgICAgICBpZiAoIWlzTmFOKHNlMUtleU51bSkgJiYgIWlzTmFOKHNlMktleU51bSkpIHsNCiAgICAgICAgICAgICAgICByZXR1cm4gc2UxS2V5TnVtIC0gc2UyS2V5TnVtOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgaWYgKHNlMS5rZXkgPCBzZTIua2V5KSB7DQogICAgICAgICAgICAgICAgcmV0dXJuIC0xOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgaWYgKHNlMS5rZXkgPiBzZTIua2V5KSB7DQogICAgICAgICAgICAgICAgcmV0dXJuIDE7DQogICAgICAgICAgICB9DQogICAgICAgICAgICByZXR1cm4gMDsNCiAgICAgICAgfSk7DQogICAgICAgIHRhYmxlLmFwcGVuZENoaWxkKHRhYmxlSGVhZGVyKTsNCiAgICAgICAgc29ydEFyci5mb3JFYWNoKChzZSkgPT4gew0KICAgICAgICAgICAgdGFibGUuYXBwZW5kQ2hpbGQoc2Uucm93KTsNCiAgICAgICAgfSk7DQogICAgfQ0KICAgIHJldHVybjsNCn0NCmZ1bmN0aW9uIGNyZWF0ZVNlYXJjaE9iaigpIHsNCiAgICBTRUFSQ0hfTUFQUElORyA9IG5ldyBPYmplY3QoKTsNCiAgICB2YXIgZGF0YSA9IFNFUlZFUlsieGVwZyJdWyJlcGdNYXBwaW5nIl07DQogICAgdmFyIGNoYW5uZWxzID0gZ2V0T3duT2JqUHJvcHMoZGF0YSk7DQogICAgdmFyIGNoYW5uZWxLZXlzID0gWyJ4LWFjdGl2ZSIsICJ4LWNoYW5uZWxJRCIsICJ4LW5hbWUiLCAidXBkYXRlQ2hhbm5lbE5hbWVSZWdleCIsICJfZmlsZS5tM3UubmFtZSIsICJ4LWdyb3VwLXRpdGxlIiwgIngteG1sdHYtZmlsZSJdOw0KICAgIGNoYW5uZWxzLmZvckVhY2goaWQgPT4gew0KICAgICAgICBjaGFubmVsS2V5cy5mb3JFYWNoKGtleSA9PiB7DQogICAgICAgICAgICBpZiAoa2V5ID09ICJ4LWFjdGl2ZSIpIHsNCiAgICAgICAgICAgICAgICBzd2l0Y2ggKGRhdGFbaWRdW2tleV0pIHsNCiAgICAgICAgICAgICAgICAgICAgY2FzZSB0cnVlOg0KICAgICAgICAgICAgICAgICAgICAgICAgU0VBUkNIX01BUFBJTkdbaWRdID0gIm9ubGluZSAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgICAgIGNhc2UgZmFsc2U6DQogICAgICAgICAgICAgICAgICAgICAgICBTRUFSQ0hfTUFQUElOR1tpZF0gPSAib2ZmbGluZSAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgZWxzZSB7DQogICAgICAgICAgICAgICAgaWYgKGtleSA9PSAieC14bWx0di1maWxlIikgew0KICAgICAgICAgICAgICAgICAgICB2YXIgeG1sdHZGaWxlID0gZ2V0VmFsdWVGcm9tUHJvdmlkZXJGaWxlKGRhdGFbaWRdW2tleV0sICJ4bWx0diIsICJuYW1lIik7DQogICAgICAgICAgICAgICAgICAgIGlmICh4bWx0dkZpbGUgIT0gdW5kZWZpbmVkKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBTRUFSQ0hfTUFQUElOR1tpZF0gPSBTRUFSQ0hfTUFQUElOR1tpZF0gKyB4bWx0dkZpbGUgKyAiICI7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgZWxzZSB7DQogICAgICAgICAgICAgICAgICAgIFNFQVJDSF9NQVBQSU5HW2lkXSA9IFNFQVJDSF9NQVBQSU5HW2lkXSArIGRhdGFbaWRdW2tleV0gKyAiICI7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfQ0KICAgICAgICB9KTsNCiAgICB9KTsNCiAgICByZXR1cm47DQp9DQpmdW5jdGlvbiBzZWFyY2hJbk1hcHBpbmcoKSB7DQogICAgdmFyIHNlYXJjaFZhbHVlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNlYXJjaE1hcHBpbmciKS52YWx1ZTsNCiAgICB2YXIgdHJzID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnRlbnRfdGFibGUiKS5nZXRFbGVtZW50c0J5VGFnTmFtZSgiVFIiKTsNCiAgICBmb3IgKHZhciBpID0gMTsgaSA8IHRycy5sZW5ndGg7ICsraSkgew0KICAgICAgICB2YXIgaWQgPSB0cnNbaV0uZ2V0QXR0cmlidXRlKCJpZCIpOw0KICAgICAgICB2YXIgZWxlbWVudCA9IFNFQVJDSF9NQVBQSU5HW2lkXTsNCiAgICAgICAgc3dpdGNoIChlbGVtZW50LnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoc2VhcmNoVmFsdWUudG9Mb3dlckNhc2UoKSkpIHsNCiAgICAgICAgICAgIGNhc2UgdHJ1ZToNCiAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkuc3R5bGUuZGlzcGxheSA9ICIiOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSBmYWxzZToNCiAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkuc3R5bGUuZGlzcGxheSA9ICJub25lIjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgfQ0KICAgIH0NCiAgICByZXR1cm47DQp9DQpmdW5jdGlvbiBjYWxjdWxhdGVXcmFwcGVySGVpZ2h0KCkgew0KICAgIGlmIChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYm94LXdyYXBwZXIiKSkgew0KICAgICAgICB2YXIgZWxtID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImJveC13cmFwcGVyIik7DQogICAgICAgIHZhciBkaXZzID0gbmV3IEFycmF5KCJteVN0cmVhbXNCb3giLCAiY2xpZW50SW5mbyIsICJjb250ZW50Iik7DQogICAgICAgIHZhciBlbGVtZW50c0hlaWdodCA9IDAgLSBlbG0ub2Zmc2V0SGVpZ2h0Ow0KICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGRpdnMubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgICAgIGVsZW1lbnRzSGVpZ2h0ID0gZWxlbWVudHNIZWlnaHQgKyBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChkaXZzW2ldKS5vZmZzZXRIZWlnaHQ7DQogICAgICAgIH0NCiAgICAgICAgZWxtLnN0eWxlLmhlaWdodCA9IHdpbmRvdy5pbm5lckhlaWdodCAtIGVsZW1lbnRzSGVpZ2h0ICsgInB4IjsNCiAgICB9DQogICAgcmV0dXJuOw0KfQ0KZnVuY3Rpb24gY2hhbmdlQ2hhbm5lbE51bWJlcihlbGVtZW50KSB7DQogICAgdmFyIGRiSUQgPSBlbGVtZW50LnBhcmVudE5vZGUucGFyZW50Tm9kZS5pZDsNCiAgICB2YXIgbmV3TnVtYmVyID0gcGFyc2VGbG9hdChlbGVtZW50LnZhbHVlKTsNCiAgICB2YXIgY2hhbm5lbE51bWJlcnMgPSBbXTsNCiAgICB2YXIgZGF0YSA9IFNFUlZFUlsieGVwZyJdWyJlcGdNYXBwaW5nIl07DQogICAgdmFyIGNoYW5uZWxzID0gZ2V0T3duT2JqUHJvcHMoZGF0YSk7DQogICAgaWYgKGlzTmFOKG5ld051bWJlcikpIHsNCiAgICAgICAgYWxlcnQoInt7LmFsZXJ0LmludmFsaWRDaGFubmVsTnVtYmVyfX0iKTsNCiAgICAgICAgcmV0dXJuOw0KICAgIH0NCiAgICBjaGFubmVscy5mb3JFYWNoKGlkID0+IHsNCiAgICAgICAgdmFyIGNoYW5uZWxOdW1iZXIgPSBwYXJzZUZsb2F0KGRhdGFbaWRdWyJ4LWNoYW5uZWxJRCJdKTsNCiAgICAgICAgY2hhbm5lbE51bWJlcnMucHVzaChjaGFubmVsTnVtYmVyKTsNCiAgICB9KTsNCiAgICBmb3IgKHZhciBpID0gMDsgaSA8IGNoYW5uZWxOdW1iZXJzLmxlbmd0aDsgaSsrKSB7DQogICAgICAgIGlmIChjaGFubmVsTnVtYmVycy5pbmRleE9mKG5ld051bWJlcikgPT0gLTEpIHsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICB9DQogICAgICAgIGlmIChNYXRoLmZsb29yKG5ld051bWJlcikgPT0gbmV3TnVtYmVyKSB7DQogICAgICAgICAgICBuZXdOdW1iZXIgPSBuZXdOdW1iZXIgKyAxOw0KICAgICAgICB9DQogICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgbmV3TnVtYmVyID0gbmV3TnVtYmVyICsgMC4xOw0KICAgICAgICAgICAgbmV3TnVtYmVyLnRvRml4ZWQoMSk7DQogICAgICAgICAgICBuZXdOdW1iZXIgPSBNYXRoLnJvdW5kKG5ld051bWJlciAqIDEwKSAvIDEwOw0KICAgICAgICB9DQogICAgfQ0KICAgIGRhdGFbZGJJRF1bIngtY2hhbm5lbElEIl0gPSBuZXdOdW1iZXIudG9TdHJpbmcoKTsNCiAgICBlbGVtZW50LnZhbHVlID0gbmV3TnVtYmVyOw0KICAgIGlmIChDT0xVTU5fVE9fU09SVCA9PSAxKSB7DQogICAgICAgIENPTFVNTl9UT19TT1JUID0gLTE7DQogICAgICAgIHNvcnRUYWJsZSgxKTsNCiAgICB9DQogICAgcmV0dXJuOw0KfQ0KZnVuY3Rpb24gYmFja3VwKCkgew0KICAgIHZhciBkYXRhID0gbmV3IE9iamVjdCgpOw0KICAgIHZhciBjbWQgPSAieHRldmVCYWNrdXAiOw0KICAgIHZhciBzZXJ2ZXIgPSBuZXcgU2VydmVyKGNtZCk7DQogICAgc2VydmVyLnJlcXVlc3QoZGF0YSk7DQogICAgcmV0dXJuOw0KfQ0KZnVuY3Rpb24gdG9nZ2xlQ2hhbm5lbFN0YXR1cyhpZCkgew0KICAgIHZhciBlbGVtZW50Ow0KICAgIHZhciBzdGF0dXM7DQogICAgaWYgKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJhY3RpdmUiKSkgew0KICAgICAgICB2YXIgY2hlY2tib3ggPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYWN0aXZlIik7DQogICAgICAgIHN0YXR1cyA9IChjaGVja2JveCkuY2hlY2tlZDsNCiAgICB9DQogICAgdmFyIGlkcyA9IGdldEFsbFNlbGVjdGVkQ2hhbm5lbHMoKTsNCiAgICBpZiAoaWRzLmxlbmd0aCA9PSAwKSB7DQogICAgICAgIGlkcy5wdXNoKGlkKTsNCiAgICB9DQogICAgaWRzLmZvckVhY2goaWQgPT4gew0KICAgICAgICB2YXIgY2hhbm5lbCA9IFNFUlZFUlsieGVwZyJdWyJlcGdNYXBwaW5nIl1baWRdOw0KICAgICAgICBjaGFubmVsWyJ4LWFjdGl2ZSJdID0gc3RhdHVzOw0KICAgICAgICBzd2l0Y2ggKGNoYW5uZWxbIngtYWN0aXZlIl0pIHsNCiAgICAgICAgICAgIGNhc2UgdHJ1ZToNCiAgICAgICAgICAgICAgICBpZiAoY2hhbm5lbFsieC14bWx0di1maWxlIl0gPT0gIi0iIHx8IGNoYW5uZWxbIngtbWFwcGluZyJdID09ICItIikgew0KICAgICAgICAgICAgICAgICAgICBpZiAoQlVMS19FRElUID09IGZhbHNlKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBhbGVydChjaGFubmVsWyJ4LW5hbWUiXSArICI6IE1pc3NpbmcgWE1MVFYgZmlsZSAvIGNoYW5uZWwiKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNoZWNrYm94LmNoZWNrZWQgPSBmYWxzZTsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBjaGFubmVsWyJ4LWFjdGl2ZSJdID0gZmFsc2U7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSBmYWxzZToNCiAgICAgICAgICAgICAgICAvLyBjb2RlLi4uDQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIH0NCiAgICAgICAgaWYgKGNoYW5uZWxbIngtYWN0aXZlIl0gPT0gZmFsc2UpIHsNCiAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5jbGFzc05hbWUgPSAibm90QWN0aXZlRVBHIjsNCiAgICAgICAgfQ0KICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5jbGFzc05hbWUgPSAiYWN0aXZlRVBHIjsNCiAgICAgICAgfQ0KICAgIH0pOw0KfQ0KZnVuY3Rpb24gdG9nZ2xlR3JvdXBVcGRhdGVDYih4ZXBnSWQsIHRhcmdldCkgew0KICAgIHRhcmdldC5jbGFzc05hbWUgPSAnY2hhbmdlZCc7DQogICAgY29uc3QgZ3JvdXBJbnB1dCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ2lucHV0W25hbWU9IngtZ3JvdXAtdGl0bGUiXScpOw0KICAgIGNvbnN0IG1hcHBpbmcgPSBnZXRMb2NhbERhdGEoJ21hcHBpbmcnLCB4ZXBnSWQpOw0KICAgIGlmICh0YXJnZXQuY2hlY2tlZCkgew0KICAgICAgICBncm91cElucHV0LmRhdGFzZXQub2xkVmFsdWUgPSBncm91cElucHV0LnZhbHVlOw0KICAgICAgICBncm91cElucHV0LnZhbHVlID0gbWFwcGluZ1snZ3JvdXAtdGl0bGUnXTsNCiAgICAgICAgZ3JvdXBJbnB1dC5kaXNhYmxlZCA9IHRydWU7DQogICAgfQ0KICAgIGVsc2Ugew0KICAgICAgICBncm91cElucHV0LnZhbHVlID0gZ3JvdXBJbnB1dC5kYXRhc2V0Lm9sZFZhbHVlOw0KICAgICAgICBncm91cElucHV0LmRpc2FibGVkID0gZmFsc2U7DQogICAgfQ0KICAgIGdyb3VwSW5wdXQuY2xhc3NOYW1lID0gJ2NoYW5nZWQnOw0KfQ0KZnVuY3Rpb24gcmVzdG9yZSgpIHsNCiAgICBpZiAoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3VwbG9hZCcpKSB7DQogICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd1cGxvYWQnKS5yZW1vdmUoKTsNCiAgICB9DQogICAgdmFyIHJlc3RvcmUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJJTlBVVCIpOw0KICAgIHJlc3RvcmUuc2V0QXR0cmlidXRlKCJ0eXBlIiwgImZpbGUiKTsNCiAgICByZXN0b3JlLnNldEF0dHJpYnV0ZSgiY2xhc3MiLCAibm90VmlzaWJsZSIpOw0KICAgIHJlc3RvcmUuc2V0QXR0cmlidXRlKCJuYW1lIiwgIiIpOw0KICAgIHJlc3RvcmUuaWQgPSAidXBsb2FkIjsNCiAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHJlc3RvcmUpOw0KICAgIHJlc3RvcmUuY2xpY2soKTsNCiAgICByZXN0b3JlLm9uY2hhbmdlID0gZnVuY3Rpb24gKCkgew0KICAgICAgICB2YXIgZmlsZW5hbWUgPSByZXN0b3JlLmZpbGVzWzBdLm5hbWU7DQogICAgICAgIHZhciBjaGVjayA9IGNvbmZpcm0oIkZpbGU6ICIgKyBmaWxlbmFtZSArICJcbnt7LmNvbmZpcm0ucmVzdG9yZX19Iik7DQogICAgICAgIGlmIChjaGVjayA9PSB0cnVlKSB7DQogICAgICAgICAgICB2YXIgcmVhZGVyID0gbmV3IEZpbGVSZWFkZXIoKTsNCiAgICAgICAgICAgIHZhciBmaWxlID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignaW5wdXRbdHlwZT1maWxlXScpLmZpbGVzWzBdOw0KICAgICAgICAgICAgaWYgKGZpbGUpIHsNCiAgICAgICAgICAgICAgICByZWFkZXIucmVhZEFzRGF0YVVSTChmaWxlKTsNCiAgICAgICAgICAgICAgICByZWFkZXIub25sb2FkID0gZnVuY3Rpb24gKCkgew0KICAgICAgICAgICAgICAgICAgICB2YXIgZGF0YSA9IG5ldyBPYmplY3QoKTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGNtZCA9ICJ4dGV2ZVJlc3RvcmUiOw0KICAgICAgICAgICAgICAgICAgICBkYXRhWyJiYXNlNjQiXSA9IHJlYWRlci5yZXN1bHQ7DQogICAgICAgICAgICAgICAgICAgIHZhciBzZXJ2ZXIgPSBuZXcgU2VydmVyKGNtZCk7DQogICAgICAgICAgICAgICAgICAgIHNlcnZlci5yZXF1ZXN0KGRhdGEpOw0KICAgICAgICAgICAgICAgIH07DQogICAgICAgICAgICB9DQogICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICBhbGVydCgiRmlsZSBjb3VsZCBub3QgYmUgbG9hZGVkIik7DQogICAgICAgICAgICB9DQogICAgICAgICAgICByZXN0b3JlLnJlbW92ZSgpOw0KICAgICAgICAgICAgcmV0dXJuOw0KICAgICAgICB9DQogICAgfTsNCiAgICByZXR1cm47DQp9DQpmdW5jdGlvbiB1cGxvYWRMb2dvKCkgew0KICAgIGlmIChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndXBsb2FkJykpIHsNCiAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3VwbG9hZCcpLnJlbW92ZSgpOw0KICAgIH0NCiAgICB2YXIgdXBsb2FkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiSU5QVVQiKTsNCiAgICB1cGxvYWQuc2V0QXR0cmlidXRlKCJ0eXBlIiwgImZpbGUiKTsNCiAgICB1cGxvYWQuc2V0QXR0cmlidXRlKCJjbGFzcyIsICJub3RWaXNpYmxlIik7DQogICAgdXBsb2FkLnNldEF0dHJpYnV0ZSgibmFtZSIsICIiKTsNCiAgICB1cGxvYWQuaWQgPSAidXBsb2FkIjsNCiAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHVwbG9hZCk7DQogICAgdXBsb2FkLmNsaWNrKCk7DQogICAgdXBsb2FkLm9uYmx1ciA9IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgYWxlcnQoKTsNCiAgICB9Ow0KICAgIHVwbG9hZC5vbmNoYW5nZSA9IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgdmFyIGZpbGVuYW1lID0gdXBsb2FkLmZpbGVzWzBdLm5hbWU7DQogICAgICAgIHZhciByZWFkZXIgPSBuZXcgRmlsZVJlYWRlcigpOw0KICAgICAgICB2YXIgZmlsZSA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ2lucHV0W3R5cGU9ZmlsZV0nKS5maWxlc1swXTsNCiAgICAgICAgaWYgKGZpbGUpIHsNCiAgICAgICAgICAgIHJlYWRlci5yZWFkQXNEYXRhVVJMKGZpbGUpOw0KICAgICAgICAgICAgcmVhZGVyLm9ubG9hZCA9IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgICAgICAgICB2YXIgZGF0YSA9IG5ldyBPYmplY3QoKTsNCiAgICAgICAgICAgICAgICB2YXIgY21kID0gInVwbG9hZExvZ28iOw0KICAgICAgICAgICAgICAgIGRhdGFbImJhc2U2NCJdID0gcmVhZGVyLnJlc3VsdDsNCiAgICAgICAgICAgICAgICBkYXRhWyJmaWxlbmFtZSJdID0gZmlsZS5uYW1lOw0KICAgICAgICAgICAgICAgIHZhciBzZXJ2ZXIgPSBuZXcgU2VydmVyKGNtZCk7DQogICAgICAgICAgICAgICAgc2VydmVyLnJlcXVlc3QoZGF0YSk7DQogICAgICAgICAgICAgICAgdmFyIHVwZGF0ZUxvZ28gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndXBkYXRlLWljb24nKTsNCiAgICAgICAgICAgICAgICB1cGRhdGVMb2dvLmNoZWNrZWQgPSBmYWxzZTsNCiAgICAgICAgICAgICAgICB1cGRhdGVMb2dvLmNsYXNzTmFtZSA9ICJjaGFuZ2VkIjsNCiAgICAgICAgICAgIH07DQogICAgICAgIH0NCiAgICAgICAgZWxzZSB7DQogICAgICAgICAgICBhbGVydCgiRmlsZSBjb3VsZCBub3QgYmUgbG9hZGVkIik7DQogICAgICAgIH0NCiAgICAgICAgdXBsb2FkLnJlbW92ZSgpOw0KICAgICAgICByZXR1cm47DQogICAgfTsNCn0NCmZ1bmN0aW9uIGNoZWNrVW5kbyhrZXkpIHsNCiAgICBzd2l0Y2ggKGtleSkgew0KICAgICAgICBjYXNlICJlcGdNYXBwaW5nIjoNCiAgICAgICAgICAgIGlmIChVTkRPLmhhc093blByb3BlcnR5KGtleSkpIHsNCiAgICAgICAgICAgICAgICBTRVJWRVJbInhlcGciXVtrZXldID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeShVTkRPW2tleV0pKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgICAgIFVORE9ba2V5XSA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkoU0VSVkVSWyJ4ZXBnIl1ba2V5XSkpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICBicmVhazsNCiAgICB9DQogICAgcmV0dXJuOw0KfQ0KZnVuY3Rpb24gdXBkYXRlTG9nKCkgew0KICAgIHZhciBzZXJ2ZXIgPSBuZXcgU2VydmVyKCJ1cGRhdGVMb2ciKTsNCiAgICBzZXJ2ZXIucmVxdWVzdChuZXcgT2JqZWN0KCkpOw0KfQ0K" + webUI["html/js/base_ts.js"] = "dmFyIFNFUlZFUiA9IG5ldyBPYmplY3QoKTsNCnZhciBCVUxLX0VESVQgPSBmYWxzZTsNCnZhciBDT0xVTU5fVE9fU09SVDsNCnZhciBTRUFSQ0hfTUFQUElORyA9IG5ldyBPYmplY3QoKTsNCnZhciBVTkRPID0gbmV3IE9iamVjdCgpOw0KdmFyIFNFUlZFUl9DT05ORUNUSU9OID0gZmFsc2U7DQp2YXIgV1NfQVZBSUxBQkxFID0gZmFsc2U7DQovLyBNZW51DQp2YXIgbWVudUl0ZW1zID0gbmV3IEFycmF5KCk7DQptZW51SXRlbXMucHVzaChuZXcgTWFpbk1lbnVJdGVtKCJwbGF5bGlzdCIsICJ7ey5tYWluTWVudS5pdGVtLnBsYXlsaXN0fX0iLCAibTN1LnBuZyIsICJ7ey5tYWluTWVudS5oZWFkbGluZS5wbGF5bGlzdH19IikpOw0KbWVudUl0ZW1zLnB1c2gobmV3IE1haW5NZW51SXRlbSgiZmlsdGVyIiwgInt7Lm1haW5NZW51Lml0ZW0uZmlsdGVyfX0iLCAiZmlsdGVyLnBuZyIsICJ7ey5tYWluTWVudS5oZWFkbGluZS5maWx0ZXJ9fSIpKTsNCm1lbnVJdGVtcy5wdXNoKG5ldyBNYWluTWVudUl0ZW0oInhtbHR2IiwgInt7Lm1haW5NZW51Lml0ZW0ueG1sdHZ9fSIsICJ4bWx0di5wbmciLCAie3subWFpbk1lbnUuaGVhZGxpbmUueG1sdHZ9fSIpKTsNCm1lbnVJdGVtcy5wdXNoKG5ldyBNYWluTWVudUl0ZW0oIm1hcHBpbmciLCAie3subWFpbk1lbnUuaXRlbS5tYXBwaW5nfX0iLCAibWFwcGluZy5wbmciLCAie3subWFpbk1lbnUuaGVhZGxpbmUubWFwcGluZ319IikpOw0KbWVudUl0ZW1zLnB1c2gobmV3IE1haW5NZW51SXRlbSgidXNlcnMiLCAie3subWFpbk1lbnUuaXRlbS51c2Vyc319IiwgInVzZXJzLnBuZyIsICJ7ey5tYWluTWVudS5oZWFkbGluZS51c2Vyc319IikpOw0KbWVudUl0ZW1zLnB1c2gobmV3IE1haW5NZW51SXRlbSgic2V0dGluZ3MiLCAie3subWFpbk1lbnUuaXRlbS5zZXR0aW5nc319IiwgInNldHRpbmdzLnBuZyIsICJ7ey5tYWluTWVudS5oZWFkbGluZS5zZXR0aW5nc319IikpOw0KbWVudUl0ZW1zLnB1c2gobmV3IE1haW5NZW51SXRlbSgibG9nIiwgInt7Lm1haW5NZW51Lml0ZW0ubG9nfX0iLCAibG9nLnBuZyIsICJ7ey5tYWluTWVudS5oZWFkbGluZS5sb2d9fSIpKTsNCm1lbnVJdGVtcy5wdXNoKG5ldyBNYWluTWVudUl0ZW0oImxvZ291dCIsICJ7ey5tYWluTWVudS5pdGVtLmxvZ291dH19IiwgImxvZ291dC5wbmciLCAie3subWFpbk1lbnUuaGVhZGxpbmUubG9nb3V0fX0iKSk7DQovLyBTZXR0aW5ncyBjYXRlZ29yaWVzDQp2YXIgc2V0dGluZ3NDYXRlZ29yeSA9IG5ldyBBcnJheSgpOw0Kc2V0dGluZ3NDYXRlZ29yeS5wdXNoKG5ldyBTZXR0aW5nc0NhdGVnb3J5SXRlbSgie3suc2V0dGluZ3MuY2F0ZWdvcnkuZ2VuZXJhbH19IiwgInRsc01vZGUseHRldmVBdXRvVXBkYXRlLGhvc3RJUCx0dW5lcixlcGdTb3VyY2UsZGlzYWxsb3dVUkxEdXBsaWNhdGVzLGNsZWFyWE1MVFZDYWNoZSxhcGkiKSk7DQpzZXR0aW5nc0NhdGVnb3J5LnB1c2gobmV3IFNldHRpbmdzQ2F0ZWdvcnlJdGVtKCJ7ey5zZXR0aW5ncy5jYXRlZ29yeS5tYXBwaW5nfX0iLCAiZGVmYXVsdE1pc3NpbmdFUEcsZW5hYmxlTWFwcGVkQ2hhbm5lbHMiKSk7DQpzZXR0aW5nc0NhdGVnb3J5LnB1c2gobmV3IFNldHRpbmdzQ2F0ZWdvcnlJdGVtKCJ7ey5zZXR0aW5ncy5jYXRlZ29yeS5maWxlc319IiwgInVwZGF0ZSxmaWxlcy51cGRhdGUsdGVtcC5wYXRoLGNhY2hlLmltYWdlcyx4ZXBnLnJlcGxhY2UubWlzc2luZy5pbWFnZXMiKSk7DQpzZXR0aW5nc0NhdGVnb3J5LnB1c2gobmV3IFNldHRpbmdzQ2F0ZWdvcnlJdGVtKCJ7ey5zZXR0aW5ncy5jYXRlZ29yeS5zdHJlYW1pbmd9fSIsICJidWZmZXIsdWRweHksYnVmZmVyLnNpemUua2Isc3RvcmVCdWZmZXJJblJBTSxidWZmZXIudGltZW91dCx1c2VyLmFnZW50LGZmbXBlZy5wYXRoLGZmbXBlZy5vcHRpb25zLHZsYy5wYXRoLHZsYy5vcHRpb25zIikpOw0Kc2V0dGluZ3NDYXRlZ29yeS5wdXNoKG5ldyBTZXR0aW5nc0NhdGVnb3J5SXRlbSgie3suc2V0dGluZ3MuY2F0ZWdvcnkuYmFja3VwfX0iLCAiYmFja3VwLnBhdGgsYmFja3VwLmtlZXAiKSk7DQpzZXR0aW5nc0NhdGVnb3J5LnB1c2gobmV3IFNldHRpbmdzQ2F0ZWdvcnlJdGVtKCJ7ey5zZXR0aW5ncy5jYXRlZ29yeS5hdXRoZW50aWNhdGlvbn19IiwgImF1dGhlbnRpY2F0aW9uLndlYixhdXRoZW50aWNhdGlvbi5wbXMsYXV0aGVudGljYXRpb24ubTN1LGF1dGhlbnRpY2F0aW9uLnhtbCxhdXRoZW50aWNhdGlvbi5hcGkiKSk7DQpmdW5jdGlvbiBzaG93UG9wVXBFbGVtZW50KGVsbSkgew0KICAgIHZhciBhbGxFbGVtZW50cyA9IG5ldyBBcnJheSgicG9wdXAtY3VzdG9tIik7DQogICAgZm9yICh2YXIgaSA9IDA7IGkgPCBhbGxFbGVtZW50cy5sZW5ndGg7IGkrKykgew0KICAgICAgICBzaG93RWxlbWVudChhbGxFbGVtZW50c1tpXSwgZmFsc2UpOw0KICAgIH0NCiAgICBzaG93RWxlbWVudChlbG0sIHRydWUpOw0KICAgIHNldFRpbWVvdXQoZnVuY3Rpb24gKCkgew0KICAgICAgICBzaG93RWxlbWVudCgicG9wdXAiLCB0cnVlKTsNCiAgICB9LCAxMCk7DQogICAgcmV0dXJuOw0KfQ0KZnVuY3Rpb24gc2hvd0VsZW1lbnQoZWxtSUQsIHR5cGUpIHsNCiAgICB2YXIgY3NzQ2xhc3M7DQogICAgc3dpdGNoICh0eXBlKSB7DQogICAgICAgIGNhc2UgdHJ1ZToNCiAgICAgICAgICAgIGNzc0NsYXNzID0gImJsb2NrIjsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlIGZhbHNlOg0KICAgICAgICAgICAgY3NzQ2xhc3MgPSAibm9uZSI7DQogICAgICAgICAgICBicmVhazsNCiAgICB9DQogICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoZWxtSUQpLmNsYXNzTmFtZSA9IGNzc0NsYXNzOw0KfQ0KZnVuY3Rpb24gY2hhbmdlQnV0dG9uQWN0aW9uKGVsZW1lbnQsIGJ1dHRvbklELCBhdHRyaWJ1dGUpIHsNCiAgICB2YXIgdmFsdWUgPSBlbGVtZW50Lm9wdGlvbnNbZWxlbWVudC5zZWxlY3RlZEluZGV4XS52YWx1ZTsNCiAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChidXR0b25JRCkuc2V0QXR0cmlidXRlKGF0dHJpYnV0ZSwgdmFsdWUpOw0KfQ0KZnVuY3Rpb24gZ2V0TG9jYWxEYXRhKGRhdGFUeXBlLCBpZCkgew0KICAgIGxldCBkYXRhID0ge307DQogICAgc3dpdGNoIChkYXRhVHlwZSkgew0KICAgICAgICBjYXNlICJtM3UiOg0KICAgICAgICAgICAgZGF0YSA9IFNFUlZFUlsic2V0dGluZ3MiXVsiZmlsZXMiXVtkYXRhVHlwZV1baWRdOw0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGNhc2UgImhkaHIiOg0KICAgICAgICAgICAgZGF0YSA9IFNFUlZFUlsic2V0dGluZ3MiXVsiZmlsZXMiXVtkYXRhVHlwZV1baWRdOw0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGNhc2UgImZpbHRlciI6DQogICAgICAgIGNhc2UgImN1c3RvbS1maWx0ZXIiOg0KICAgICAgICBjYXNlICJncm91cC10aXRsZSI6DQogICAgICAgICAgICBpZiAoaWQgPT0gLTEpIHsNCiAgICAgICAgICAgICAgICBkYXRhWyJhY3RpdmUiXSA9IHRydWU7DQogICAgICAgICAgICAgICAgZGF0YVsiY2FzZVNlbnNpdGl2ZSJdID0gZmFsc2U7DQogICAgICAgICAgICAgICAgZGF0YVsiZGVzY3JpcHRpb24iXSA9ICIiOw0KICAgICAgICAgICAgICAgIGRhdGFbImV4Y2x1ZGUiXSA9ICIiOw0KICAgICAgICAgICAgICAgIGRhdGFbImZpbHRlciJdID0gIiI7DQogICAgICAgICAgICAgICAgZGF0YVsiaW5jbHVkZSJdID0gIiI7DQogICAgICAgICAgICAgICAgZGF0YVsibmFtZSJdID0gIiI7DQogICAgICAgICAgICAgICAgZGF0YVsidHlwZSJdID0gImdyb3VwLXRpdGxlIjsNCiAgICAgICAgICAgICAgICBkYXRhWyJwcmVzZXJ2ZU1hcHBpbmciXSA9IHRydWU7DQogICAgICAgICAgICAgICAgZGF0YVsic3RhcnRpbmdDaGFubmVsIl0gPSBTRVJWRVJbInNldHRpbmdzIl1bIm1hcHBpbmcuZmlyc3QuY2hhbm5lbCJdOw0KICAgICAgICAgICAgICAgIFNFUlZFUlsic2V0dGluZ3MiXVsiZmlsdGVyIl1baWRdID0gZGF0YTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGRhdGEgPSBTRVJWRVJbInNldHRpbmdzIl1bImZpbHRlciJdW2lkXTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJ4bWx0diI6DQogICAgICAgICAgICBkYXRhID0gU0VSVkVSWyJzZXR0aW5ncyJdWyJmaWxlcyJdW2RhdGFUeXBlXVtpZF07DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSAidXNlcnMiOg0KICAgICAgICAgICAgZGF0YSA9IFNFUlZFUlsidXNlcnMiXVtpZF1bImRhdGEiXTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJtYXBwaW5nIjoNCiAgICAgICAgICAgIGRhdGEgPSBTRVJWRVJbInhlcGciXVsiZXBnTWFwcGluZyJdW2lkXTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJtM3VHcm91cHMiOg0KICAgICAgICAgICAgZGF0YSA9IFNFUlZFUlsiZGF0YSJdWyJwbGF5bGlzdCJdWyJtM3UiXVsiZ3JvdXBzIl07DQogICAgICAgICAgICBicmVhazsNCiAgICB9DQogICAgcmV0dXJuIGRhdGE7DQp9DQpmdW5jdGlvbiBnZXRPd25PYmpQcm9wcyhvYmplY3QpIHsNCiAgICByZXR1cm4gb2JqZWN0ID8gT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMob2JqZWN0KSA6IFtdOw0KfQ0KZnVuY3Rpb24gZ2V0QWxsU2VsZWN0ZWRDaGFubmVscygpIHsNCiAgICB2YXIgY2hhbm5lbHMgPSBuZXcgQXJyYXkoKTsNCiAgICBpZiAoQlVMS19FRElUID09IGZhbHNlKSB7DQogICAgICAgIHJldHVybiBjaGFubmVsczsNCiAgICB9DQogICAgdmFyIHRycyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb250ZW50X3RhYmxlIikuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlRSIik7DQogICAgZm9yICh2YXIgaSA9IDE7IGkgPCB0cnMubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgaWYgKHRyc1tpXS5zdHlsZS5kaXNwbGF5ICE9ICJub25lIikgew0KICAgICAgICAgICAgaWYgKHRyc1tpXS5maXJzdENoaWxkLmZpcnN0Q2hpbGQuY2hlY2tlZCA9PSB0cnVlKSB7DQogICAgICAgICAgICAgICAgY2hhbm5lbHMucHVzaCh0cnNbaV0uaWQpOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQogICAgfQ0KICAgIHJldHVybiBjaGFubmVsczsNCn0NCmZ1bmN0aW9uIHNlbGVjdEFsbENoYW5uZWxzKCkgew0KICAgIHZhciBidWxrID0gZmFsc2U7DQogICAgdmFyIHRycyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb250ZW50X3RhYmxlIikuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlRSIik7DQogICAgaWYgKHRyc1swXS5maXJzdENoaWxkLmZpcnN0Q2hpbGQuY2hlY2tlZCA9PSB0cnVlKSB7DQogICAgICAgIGJ1bGsgPSB0cnVlOw0KICAgIH0NCiAgICBmb3IgKHZhciBpID0gMTsgaSA8IHRycy5sZW5ndGg7IGkrKykgew0KICAgICAgICBpZiAodHJzW2ldLnN0eWxlLmRpc3BsYXkgIT0gIm5vbmUiKSB7DQogICAgICAgICAgICBzd2l0Y2ggKGJ1bGspIHsNCiAgICAgICAgICAgICAgICBjYXNlIHRydWU6DQogICAgICAgICAgICAgICAgICAgIHRyc1tpXS5maXJzdENoaWxkLmZpcnN0Q2hpbGQuY2hlY2tlZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgZmFsc2U6DQogICAgICAgICAgICAgICAgICAgIHRyc1tpXS5maXJzdENoaWxkLmZpcnN0Q2hpbGQuY2hlY2tlZCA9IGZhbHNlOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KICAgIH0NCiAgICByZXR1cm47DQp9DQpmdW5jdGlvbiBidWxrRWRpdCgpIHsNCiAgICBCVUxLX0VESVQgPSAhQlVMS19FRElUOw0KICAgIHZhciBjbGFzc05hbWU7DQogICAgdmFyIHJvd3MgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCJidWxrIik7DQogICAgc3dpdGNoIChCVUxLX0VESVQpIHsNCiAgICAgICAgY2FzZSB0cnVlOg0KICAgICAgICAgICAgY2xhc3NOYW1lID0gImJ1bGsgc2hvd0J1bGsiOw0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGNhc2UgZmFsc2U6DQogICAgICAgICAgICBjbGFzc05hbWUgPSAiYnVsayBoaWRlQnVsayI7DQogICAgICAgICAgICBicmVhazsNCiAgICB9DQogICAgZm9yICh2YXIgaSA9IDA7IGkgPCByb3dzLmxlbmd0aDsgaSsrKSB7DQogICAgICAgIHJvd3NbaV0uY2xhc3NOYW1lID0gY2xhc3NOYW1lOw0KICAgICAgICByb3dzW2ldLmNoZWNrZWQgPSBmYWxzZTsNCiAgICB9DQogICAgcmV0dXJuOw0KfQ0KZnVuY3Rpb24gc29ydFRhYmxlKGNvbHVtbikgew0KICAgIGlmIChjb2x1bW4gPT0gQ09MVU1OX1RPX1NPUlQpIHsNCiAgICAgICAgcmV0dXJuOw0KICAgIH0NCiAgICBjb25zdCB0YWJsZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb250ZW50X3RhYmxlIik7DQogICAgY29uc3QgdGFibGVIZWFkID0gdGFibGUuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlRSIilbMF07DQogICAgY29uc3QgdGFibGVJdGVtcyA9IHRhYmxlSGVhZC5nZXRFbGVtZW50c0J5VGFnTmFtZSgiVEQiKTsNCiAgICBjb25zdCBzb3J0QXJyID0gW107DQogICAgbGV0IHhWYWx1ZTsNCiAgICBpZiAoY29sdW1uID49IDAgJiYgQ09MVU1OX1RPX1NPUlQgPj0gMCkgew0KICAgICAgICB0YWJsZUl0ZW1zW0NPTFVNTl9UT19TT1JUXS5jbGFzc05hbWUgPSAicG9pbnRlciI7DQogICAgICAgIHRhYmxlSXRlbXNbY29sdW1uXS5jbGFzc05hbWUgPSAic29ydFRoaXMiOw0KICAgIH0NCiAgICBDT0xVTU5fVE9fU09SVCA9IGNvbHVtbjsNCiAgICBjb25zdCByb3dzID0gdGFibGUucm93czsNCiAgICBpZiAocm93c1sxXSAhPSB1bmRlZmluZWQpIHsNCiAgICAgICAgY29uc3QgdGFibGVIZWFkZXIgPSByb3dzWzBdOw0KICAgICAgICBsZXQgeCA9IHJvd3NbMV0uZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlREIilbY29sdW1uXTsNCiAgICAgICAgZm9yIChsZXQgaSA9IDE7IGkgPCByb3dzLmxlbmd0aDsgaSsrKSB7DQogICAgICAgICAgICB4ID0gcm93c1tpXS5nZXRFbGVtZW50c0J5VGFnTmFtZSgiVEQiKVtjb2x1bW5dOw0KICAgICAgICAgICAgc3dpdGNoICh4LmNoaWxkTm9kZXNbMF0udGFnTmFtZS50b0xvd2VyQ2FzZSgpKSB7DQogICAgICAgICAgICAgICAgY2FzZSAiaW5wdXQiOg0KICAgICAgICAgICAgICAgICAgICB4VmFsdWUgPSB4LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJJTlBVVCIpWzBdLnZhbHVlLnRvTG93ZXJDYXNlKCk7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgInAiOg0KICAgICAgICAgICAgICAgICAgICB4VmFsdWUgPSB4LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJQIilbMF0uaW5uZXJUZXh0LnRvTG93ZXJDYXNlKCk7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgc29ydEFyci5wdXNoKHsga2V5OiB4VmFsdWUgPyB4VmFsdWUgOiBpLCByb3c6IHJvd3NbaV0gfSk7DQogICAgICAgIH0NCiAgICAgICAgd2hpbGUgKHRhYmxlLmZpcnN0Q2hpbGQpIHsNCiAgICAgICAgICAgIHRhYmxlLnJlbW92ZUNoaWxkKHRhYmxlLmZpcnN0Q2hpbGQpOw0KICAgICAgICB9DQogICAgICAgIHNvcnRBcnIuc29ydCgoc2UxLCBzZTIpID0+IHsNCiAgICAgICAgICAgIGNvbnN0IHNlMUtleU51bSA9IHBhcnNlRmxvYXQoU3RyaW5nKHNlMS5rZXkpKTsNCiAgICAgICAgICAgIGNvbnN0IHNlMktleU51bSA9IHBhcnNlRmxvYXQoU3RyaW5nKHNlMi5rZXkpKTsNCiAgICAgICAgICAgIGlmICghaXNOYU4oc2UxS2V5TnVtKSAmJiAhaXNOYU4oc2UyS2V5TnVtKSkgew0KICAgICAgICAgICAgICAgIHJldHVybiBzZTFLZXlOdW0gLSBzZTJLZXlOdW07DQogICAgICAgICAgICB9DQogICAgICAgICAgICBpZiAoc2UxLmtleSA8IHNlMi5rZXkpIHsNCiAgICAgICAgICAgICAgICByZXR1cm4gLTE7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBpZiAoc2UxLmtleSA+IHNlMi5rZXkpIHsNCiAgICAgICAgICAgICAgICByZXR1cm4gMTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIHJldHVybiAwOw0KICAgICAgICB9KTsNCiAgICAgICAgdGFibGUuYXBwZW5kQ2hpbGQodGFibGVIZWFkZXIpOw0KICAgICAgICBzb3J0QXJyLmZvckVhY2goKHNlKSA9PiB7DQogICAgICAgICAgICB0YWJsZS5hcHBlbmRDaGlsZChzZS5yb3cpOw0KICAgICAgICB9KTsNCiAgICB9DQogICAgcmV0dXJuOw0KfQ0KZnVuY3Rpb24gY3JlYXRlU2VhcmNoT2JqKCkgew0KICAgIFNFQVJDSF9NQVBQSU5HID0gbmV3IE9iamVjdCgpOw0KICAgIHZhciBkYXRhID0gU0VSVkVSWyJ4ZXBnIl1bImVwZ01hcHBpbmciXTsNCiAgICB2YXIgY2hhbm5lbHMgPSBnZXRPd25PYmpQcm9wcyhkYXRhKTsNCiAgICB2YXIgY2hhbm5lbEtleXMgPSBbIngtYWN0aXZlIiwgIngtY2hhbm5lbElEIiwgIngtbmFtZSIsICJ1cGRhdGVDaGFubmVsTmFtZVJlZ2V4IiwgIl9maWxlLm0zdS5uYW1lIiwgIngtZ3JvdXAtdGl0bGUiLCAieC14bWx0di1maWxlIl07DQogICAgY2hhbm5lbHMuZm9yRWFjaChpZCA9PiB7DQogICAgICAgIGNoYW5uZWxLZXlzLmZvckVhY2goa2V5ID0+IHsNCiAgICAgICAgICAgIGlmIChrZXkgPT0gIngtYWN0aXZlIikgew0KICAgICAgICAgICAgICAgIHN3aXRjaCAoZGF0YVtpZF1ba2V5XSkgew0KICAgICAgICAgICAgICAgICAgICBjYXNlIHRydWU6DQogICAgICAgICAgICAgICAgICAgICAgICBTRUFSQ0hfTUFQUElOR1tpZF0gPSAib25saW5lICI7DQogICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICAgICAgY2FzZSBmYWxzZToNCiAgICAgICAgICAgICAgICAgICAgICAgIFNFQVJDSF9NQVBQSU5HW2lkXSA9ICJvZmZsaW5lICI7DQogICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9DQogICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICBpZiAoa2V5ID09ICJ4LXhtbHR2LWZpbGUiKSB7DQogICAgICAgICAgICAgICAgICAgIHZhciB4bWx0dkZpbGUgPSBnZXRWYWx1ZUZyb21Qcm92aWRlckZpbGUoZGF0YVtpZF1ba2V5XSwgInhtbHR2IiwgIm5hbWUiKTsNCiAgICAgICAgICAgICAgICAgICAgaWYgKHhtbHR2RmlsZSAhPSB1bmRlZmluZWQpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIFNFQVJDSF9NQVBQSU5HW2lkXSA9IFNFQVJDSF9NQVBQSU5HW2lkXSArIHhtbHR2RmlsZSArICIgIjsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICAgICAgU0VBUkNIX01BUFBJTkdbaWRdID0gU0VBUkNIX01BUFBJTkdbaWRdICsgZGF0YVtpZF1ba2V5XSArICIgIjsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9DQogICAgICAgIH0pOw0KICAgIH0pOw0KICAgIHJldHVybjsNCn0NCmZ1bmN0aW9uIHNlYXJjaEluTWFwcGluZygpIHsNCiAgICB2YXIgc2VhcmNoVmFsdWUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic2VhcmNoTWFwcGluZyIpLnZhbHVlOw0KICAgIHZhciB0cnMgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29udGVudF90YWJsZSIpLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJUUiIpOw0KICAgIGZvciAodmFyIGkgPSAxOyBpIDwgdHJzLmxlbmd0aDsgKytpKSB7DQogICAgICAgIHZhciBpZCA9IHRyc1tpXS5nZXRBdHRyaWJ1dGUoImlkIik7DQogICAgICAgIHZhciBlbGVtZW50ID0gU0VBUkNIX01BUFBJTkdbaWRdOw0KICAgICAgICBzd2l0Y2ggKGVsZW1lbnQudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhzZWFyY2hWYWx1ZS50b0xvd2VyQ2FzZSgpKSkgew0KICAgICAgICAgICAgY2FzZSB0cnVlOg0KICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5zdHlsZS5kaXNwbGF5ID0gIiI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlIGZhbHNlOg0KICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5zdHlsZS5kaXNwbGF5ID0gIm5vbmUiOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICB9DQogICAgfQ0KICAgIHJldHVybjsNCn0NCmZ1bmN0aW9uIGNhbGN1bGF0ZVdyYXBwZXJIZWlnaHQoKSB7DQogICAgaWYgKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJib3gtd3JhcHBlciIpKSB7DQogICAgICAgIHZhciBlbG0gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYm94LXdyYXBwZXIiKTsNCiAgICAgICAgdmFyIGRpdnMgPSBuZXcgQXJyYXkoIm15U3RyZWFtc0JveCIsICJjbGllbnRJbmZvIiwgImNvbnRlbnQiKTsNCiAgICAgICAgdmFyIGVsZW1lbnRzSGVpZ2h0ID0gMCAtIGVsbS5vZmZzZXRIZWlnaHQ7DQogICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgZGl2cy5sZW5ndGg7IGkrKykgew0KICAgICAgICAgICAgZWxlbWVudHNIZWlnaHQgPSBlbGVtZW50c0hlaWdodCArIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGRpdnNbaV0pLm9mZnNldEhlaWdodDsNCiAgICAgICAgfQ0KICAgICAgICBlbG0uc3R5bGUuaGVpZ2h0ID0gd2luZG93LmlubmVySGVpZ2h0IC0gZWxlbWVudHNIZWlnaHQgKyAicHgiOw0KICAgIH0NCiAgICByZXR1cm47DQp9DQpmdW5jdGlvbiBjaGFuZ2VDaGFubmVsTnVtYmVyKGVsZW1lbnQpIHsNCiAgICB2YXIgZGJJRCA9IGVsZW1lbnQucGFyZW50Tm9kZS5wYXJlbnROb2RlLmlkOw0KICAgIHZhciBuZXdOdW1iZXIgPSBwYXJzZUZsb2F0KGVsZW1lbnQudmFsdWUpOw0KICAgIHZhciBjaGFubmVsTnVtYmVycyA9IFtdOw0KICAgIHZhciBkYXRhID0gU0VSVkVSWyJ4ZXBnIl1bImVwZ01hcHBpbmciXTsNCiAgICB2YXIgY2hhbm5lbHMgPSBnZXRPd25PYmpQcm9wcyhkYXRhKTsNCiAgICBpZiAoaXNOYU4obmV3TnVtYmVyKSkgew0KICAgICAgICBhbGVydCgie3suYWxlcnQuaW52YWxpZENoYW5uZWxOdW1iZXJ9fSIpOw0KICAgICAgICByZXR1cm47DQogICAgfQ0KICAgIGNoYW5uZWxzLmZvckVhY2goaWQgPT4gew0KICAgICAgICB2YXIgY2hhbm5lbE51bWJlciA9IHBhcnNlRmxvYXQoZGF0YVtpZF1bIngtY2hhbm5lbElEIl0pOw0KICAgICAgICBjaGFubmVsTnVtYmVycy5wdXNoKGNoYW5uZWxOdW1iZXIpOw0KICAgIH0pOw0KICAgIGZvciAodmFyIGkgPSAwOyBpIDwgY2hhbm5lbE51bWJlcnMubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgaWYgKGNoYW5uZWxOdW1iZXJzLmluZGV4T2YobmV3TnVtYmVyKSA9PSAtMSkgew0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIH0NCiAgICAgICAgaWYgKE1hdGguZmxvb3IobmV3TnVtYmVyKSA9PSBuZXdOdW1iZXIpIHsNCiAgICAgICAgICAgIG5ld051bWJlciA9IG5ld051bWJlciArIDE7DQogICAgICAgIH0NCiAgICAgICAgZWxzZSB7DQogICAgICAgICAgICBuZXdOdW1iZXIgPSBuZXdOdW1iZXIgKyAwLjE7DQogICAgICAgICAgICBuZXdOdW1iZXIudG9GaXhlZCgxKTsNCiAgICAgICAgICAgIG5ld051bWJlciA9IE1hdGgucm91bmQobmV3TnVtYmVyICogMTApIC8gMTA7DQogICAgICAgIH0NCiAgICB9DQogICAgZGF0YVtkYklEXVsieC1jaGFubmVsSUQiXSA9IG5ld051bWJlci50b1N0cmluZygpOw0KICAgIGVsZW1lbnQudmFsdWUgPSBuZXdOdW1iZXI7DQogICAgaWYgKENPTFVNTl9UT19TT1JUID09IDEpIHsNCiAgICAgICAgQ09MVU1OX1RPX1NPUlQgPSAtMTsNCiAgICAgICAgc29ydFRhYmxlKDEpOw0KICAgIH0NCiAgICByZXR1cm47DQp9DQpmdW5jdGlvbiBiYWNrdXAoKSB7DQogICAgdmFyIGRhdGEgPSBuZXcgT2JqZWN0KCk7DQogICAgdmFyIGNtZCA9ICJ4dGV2ZUJhY2t1cCI7DQogICAgdmFyIHNlcnZlciA9IG5ldyBTZXJ2ZXIoY21kKTsNCiAgICBzZXJ2ZXIucmVxdWVzdChkYXRhKTsNCiAgICByZXR1cm47DQp9DQpmdW5jdGlvbiB0b2dnbGVDaGFubmVsU3RhdHVzKGlkKSB7DQogICAgdmFyIGVsZW1lbnQ7DQogICAgdmFyIHN0YXR1czsNCiAgICBpZiAoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImFjdGl2ZSIpKSB7DQogICAgICAgIHZhciBjaGVja2JveCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJhY3RpdmUiKTsNCiAgICAgICAgc3RhdHVzID0gKGNoZWNrYm94KS5jaGVja2VkOw0KICAgIH0NCiAgICB2YXIgaWRzID0gZ2V0QWxsU2VsZWN0ZWRDaGFubmVscygpOw0KICAgIGlmIChpZHMubGVuZ3RoID09IDApIHsNCiAgICAgICAgaWRzLnB1c2goaWQpOw0KICAgIH0NCiAgICBpZHMuZm9yRWFjaChpZCA9PiB7DQogICAgICAgIHZhciBjaGFubmVsID0gU0VSVkVSWyJ4ZXBnIl1bImVwZ01hcHBpbmciXVtpZF07DQogICAgICAgIGNoYW5uZWxbIngtYWN0aXZlIl0gPSBzdGF0dXM7DQogICAgICAgIHN3aXRjaCAoY2hhbm5lbFsieC1hY3RpdmUiXSkgew0KICAgICAgICAgICAgY2FzZSB0cnVlOg0KICAgICAgICAgICAgICAgIGlmIChjaGFubmVsWyJ4LXhtbHR2LWZpbGUiXSA9PSAiLSIgfHwgY2hhbm5lbFsieC1tYXBwaW5nIl0gPT0gIi0iKSB7DQogICAgICAgICAgICAgICAgICAgIGlmIChCVUxLX0VESVQgPT0gZmFsc2UpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGFsZXJ0KGNoYW5uZWxbIngtbmFtZSJdICsgIjogTWlzc2luZyBYTUxUViBmaWxlIC8gY2hhbm5lbCIpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2hlY2tib3guY2hlY2tlZCA9IGZhbHNlOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIGNoYW5uZWxbIngtYWN0aXZlIl0gPSBmYWxzZTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlIGZhbHNlOg0KICAgICAgICAgICAgICAgIC8vIGNvZGUuLi4NCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgfQ0KICAgICAgICBpZiAoY2hhbm5lbFsieC1hY3RpdmUiXSA9PSBmYWxzZSkgew0KICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpLmNsYXNzTmFtZSA9ICJub3RBY3RpdmVFUEciOw0KICAgICAgICB9DQogICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpLmNsYXNzTmFtZSA9ICJhY3RpdmVFUEciOw0KICAgICAgICB9DQogICAgfSk7DQp9DQpmdW5jdGlvbiB0b2dnbGVHcm91cFVwZGF0ZUNiKHhlcGdJZCwgdGFyZ2V0KSB7DQogICAgdGFyZ2V0LmNsYXNzTmFtZSA9ICdjaGFuZ2VkJzsNCiAgICBjb25zdCBncm91cElucHV0ID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignaW5wdXRbbmFtZT0ieC1ncm91cC10aXRsZSJdJyk7DQogICAgY29uc3QgbWFwcGluZyA9IGdldExvY2FsRGF0YSgnbWFwcGluZycsIHhlcGdJZCk7DQogICAgaWYgKHRhcmdldC5jaGVja2VkKSB7DQogICAgICAgIGdyb3VwSW5wdXQuZGF0YXNldC5vbGRWYWx1ZSA9IGdyb3VwSW5wdXQudmFsdWU7DQogICAgICAgIGdyb3VwSW5wdXQudmFsdWUgPSBtYXBwaW5nWydncm91cC10aXRsZSddOw0KICAgICAgICBncm91cElucHV0LmRpc2FibGVkID0gdHJ1ZTsNCiAgICB9DQogICAgZWxzZSB7DQogICAgICAgIGdyb3VwSW5wdXQudmFsdWUgPSBncm91cElucHV0LmRhdGFzZXQub2xkVmFsdWU7DQogICAgICAgIGdyb3VwSW5wdXQuZGlzYWJsZWQgPSBmYWxzZTsNCiAgICB9DQogICAgZ3JvdXBJbnB1dC5jbGFzc05hbWUgPSAnY2hhbmdlZCc7DQp9DQpmdW5jdGlvbiByZXN0b3JlKCkgew0KICAgIGlmIChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndXBsb2FkJykpIHsNCiAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3VwbG9hZCcpLnJlbW92ZSgpOw0KICAgIH0NCiAgICB2YXIgcmVzdG9yZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIklOUFVUIik7DQogICAgcmVzdG9yZS5zZXRBdHRyaWJ1dGUoInR5cGUiLCAiZmlsZSIpOw0KICAgIHJlc3RvcmUuc2V0QXR0cmlidXRlKCJjbGFzcyIsICJub3RWaXNpYmxlIik7DQogICAgcmVzdG9yZS5zZXRBdHRyaWJ1dGUoIm5hbWUiLCAiIik7DQogICAgcmVzdG9yZS5pZCA9ICJ1cGxvYWQiOw0KICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQocmVzdG9yZSk7DQogICAgcmVzdG9yZS5jbGljaygpOw0KICAgIHJlc3RvcmUub25jaGFuZ2UgPSBmdW5jdGlvbiAoKSB7DQogICAgICAgIHZhciBmaWxlbmFtZSA9IHJlc3RvcmUuZmlsZXNbMF0ubmFtZTsNCiAgICAgICAgdmFyIGNoZWNrID0gY29uZmlybSgiRmlsZTogIiArIGZpbGVuYW1lICsgIlxue3suY29uZmlybS5yZXN0b3JlfX0iKTsNCiAgICAgICAgaWYgKGNoZWNrID09IHRydWUpIHsNCiAgICAgICAgICAgIHZhciByZWFkZXIgPSBuZXcgRmlsZVJlYWRlcigpOw0KICAgICAgICAgICAgdmFyIGZpbGUgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCdpbnB1dFt0eXBlPWZpbGVdJykuZmlsZXNbMF07DQogICAgICAgICAgICBpZiAoZmlsZSkgew0KICAgICAgICAgICAgICAgIHJlYWRlci5yZWFkQXNEYXRhVVJMKGZpbGUpOw0KICAgICAgICAgICAgICAgIHJlYWRlci5vbmxvYWQgPSBmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICAgICAgICAgIHZhciBkYXRhID0gbmV3IE9iamVjdCgpOw0KICAgICAgICAgICAgICAgICAgICB2YXIgY21kID0gInh0ZXZlUmVzdG9yZSI7DQogICAgICAgICAgICAgICAgICAgIGRhdGFbImJhc2U2NCJdID0gcmVhZGVyLnJlc3VsdDsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHNlcnZlciA9IG5ldyBTZXJ2ZXIoY21kKTsNCiAgICAgICAgICAgICAgICAgICAgc2VydmVyLnJlcXVlc3QoZGF0YSk7DQogICAgICAgICAgICAgICAgfTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgICAgIGFsZXJ0KCJGaWxlIGNvdWxkIG5vdCBiZSBsb2FkZWQiKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIHJlc3RvcmUucmVtb3ZlKCk7DQogICAgICAgICAgICByZXR1cm47DQogICAgICAgIH0NCiAgICB9Ow0KICAgIHJldHVybjsNCn0NCmZ1bmN0aW9uIHVwbG9hZExvZ28oKSB7DQogICAgaWYgKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd1cGxvYWQnKSkgew0KICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndXBsb2FkJykucmVtb3ZlKCk7DQogICAgfQ0KICAgIHZhciB1cGxvYWQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJJTlBVVCIpOw0KICAgIHVwbG9hZC5zZXRBdHRyaWJ1dGUoInR5cGUiLCAiZmlsZSIpOw0KICAgIHVwbG9hZC5zZXRBdHRyaWJ1dGUoImNsYXNzIiwgIm5vdFZpc2libGUiKTsNCiAgICB1cGxvYWQuc2V0QXR0cmlidXRlKCJuYW1lIiwgIiIpOw0KICAgIHVwbG9hZC5pZCA9ICJ1cGxvYWQiOw0KICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQodXBsb2FkKTsNCiAgICB1cGxvYWQuY2xpY2soKTsNCiAgICB1cGxvYWQub25ibHVyID0gZnVuY3Rpb24gKCkgew0KICAgICAgICBhbGVydCgpOw0KICAgIH07DQogICAgdXBsb2FkLm9uY2hhbmdlID0gZnVuY3Rpb24gKCkgew0KICAgICAgICB2YXIgZmlsZW5hbWUgPSB1cGxvYWQuZmlsZXNbMF0ubmFtZTsNCiAgICAgICAgdmFyIHJlYWRlciA9IG5ldyBGaWxlUmVhZGVyKCk7DQogICAgICAgIHZhciBmaWxlID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignaW5wdXRbdHlwZT1maWxlXScpLmZpbGVzWzBdOw0KICAgICAgICBpZiAoZmlsZSkgew0KICAgICAgICAgICAgcmVhZGVyLnJlYWRBc0RhdGFVUkwoZmlsZSk7DQogICAgICAgICAgICByZWFkZXIub25sb2FkID0gZnVuY3Rpb24gKCkgew0KICAgICAgICAgICAgICAgIHZhciBkYXRhID0gbmV3IE9iamVjdCgpOw0KICAgICAgICAgICAgICAgIHZhciBjbWQgPSAidXBsb2FkTG9nbyI7DQogICAgICAgICAgICAgICAgZGF0YVsiYmFzZTY0Il0gPSByZWFkZXIucmVzdWx0Ow0KICAgICAgICAgICAgICAgIGRhdGFbImZpbGVuYW1lIl0gPSBmaWxlLm5hbWU7DQogICAgICAgICAgICAgICAgdmFyIHNlcnZlciA9IG5ldyBTZXJ2ZXIoY21kKTsNCiAgICAgICAgICAgICAgICBzZXJ2ZXIucmVxdWVzdChkYXRhKTsNCiAgICAgICAgICAgICAgICB2YXIgdXBkYXRlTG9nbyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd1cGRhdGUtaWNvbicpOw0KICAgICAgICAgICAgICAgIHVwZGF0ZUxvZ28uY2hlY2tlZCA9IGZhbHNlOw0KICAgICAgICAgICAgICAgIHVwZGF0ZUxvZ28uY2xhc3NOYW1lID0gImNoYW5nZWQiOw0KICAgICAgICAgICAgfTsNCiAgICAgICAgfQ0KICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgIGFsZXJ0KCJGaWxlIGNvdWxkIG5vdCBiZSBsb2FkZWQiKTsNCiAgICAgICAgfQ0KICAgICAgICB1cGxvYWQucmVtb3ZlKCk7DQogICAgICAgIHJldHVybjsNCiAgICB9Ow0KfQ0KZnVuY3Rpb24gY2hlY2tVbmRvKGtleSkgew0KICAgIHN3aXRjaCAoa2V5KSB7DQogICAgICAgIGNhc2UgImVwZ01hcHBpbmciOg0KICAgICAgICAgICAgaWYgKFVORE8uaGFzT3duUHJvcGVydHkoa2V5KSkgew0KICAgICAgICAgICAgICAgIFNFUlZFUlsieGVwZyJdW2tleV0gPSBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KFVORE9ba2V5XSkpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgZWxzZSB7DQogICAgICAgICAgICAgICAgVU5ET1trZXldID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeShTRVJWRVJbInhlcGciXVtrZXldKSk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgIGJyZWFrOw0KICAgIH0NCiAgICByZXR1cm47DQp9DQpmdW5jdGlvbiB1cGRhdGVMb2coKSB7DQogICAgdmFyIHNlcnZlciA9IG5ldyBTZXJ2ZXIoInVwZGF0ZUxvZyIpOw0KICAgIHNlcnZlci5yZXF1ZXN0KG5ldyBPYmplY3QoKSk7DQp9DQo=" webUI["html/js/classes_ts.js"] = "dmFyIF9fZXh0ZW5kcyA9ICh0aGlzICYmIHRoaXMuX19leHRlbmRzKSB8fCAoZnVuY3Rpb24gKCkgew0KICAgIHZhciBleHRlbmRTdGF0aWNzID0gZnVuY3Rpb24gKGQsIGIpIHsNCiAgICAgICAgZXh0ZW5kU3RhdGljcyA9IE9iamVjdC5zZXRQcm90b3R5cGVPZiB8fA0KICAgICAgICAgICAgKHsgX19wcm90b19fOiBbXSB9IGluc3RhbmNlb2YgQXJyYXkgJiYgZnVuY3Rpb24gKGQsIGIpIHsgZC5fX3Byb3RvX18gPSBiOyB9KSB8fA0KICAgICAgICAgICAgZnVuY3Rpb24gKGQsIGIpIHsgZm9yICh2YXIgcCBpbiBiKSBpZiAoYi5oYXNPd25Qcm9wZXJ0eShwKSkgZFtwXSA9IGJbcF07IH07DQogICAgICAgIHJldHVybiBleHRlbmRTdGF0aWNzKGQsIGIpOw0KICAgIH07DQogICAgcmV0dXJuIGZ1bmN0aW9uIChkLCBiKSB7DQogICAgICAgIGV4dGVuZFN0YXRpY3MoZCwgYik7DQogICAgICAgIGZ1bmN0aW9uIF9fKCkgeyB0aGlzLmNvbnN0cnVjdG9yID0gZDsgfQ0KICAgICAgICBkLnByb3RvdHlwZSA9IGIgPT09IG51bGwgPyBPYmplY3QuY3JlYXRlKGIpIDogKF9fLnByb3RvdHlwZSA9IGIucHJvdG90eXBlLCBuZXcgX18oKSk7DQogICAgfTsNCn0pKCk7DQp2YXIgTWFpbk1lbnUgPSAvKiogQGNsYXNzICovIChmdW5jdGlvbiAoKSB7DQogICAgZnVuY3Rpb24gTWFpbk1lbnUoKSB7DQogICAgICAgIHRoaXMuRG9jdW1lbnRJRCA9ICJtYWluLW1lbnUiOw0KICAgICAgICB0aGlzLkhUTUxUYWcgPSAiTEkiOw0KICAgIH0NCiAgICBNYWluTWVudS5wcm90b3R5cGUuY3JlYXRlID0gZnVuY3Rpb24gKCkgew0KICAgICAgICBjb25zb2xlLmxvZyh0aGlzLkRvY3VtZW50SUQpOw0KICAgIH07DQogICAgcmV0dXJuIE1haW5NZW51Ow0KfSgpKTsNCnZhciBNYWluTWVudUl0ZW0gPSAvKiogQGNsYXNzICovIChmdW5jdGlvbiAoX3N1cGVyKSB7DQogICAgX19leHRlbmRzKE1haW5NZW51SXRlbSwgX3N1cGVyKTsNCiAgICBmdW5jdGlvbiBNYWluTWVudUl0ZW0oKSB7DQogICAgICAgIHJldHVybiBfc3VwZXIgIT09IG51bGwgJiYgX3N1cGVyLmFwcGx5KHRoaXMsIGFyZ3VtZW50cykgfHwgdGhpczsNCiAgICB9DQogICAgTWFpbk1lbnVJdGVtLnByb3RvdHlwZS5jcmVhdGUyID0gZnVuY3Rpb24gKCkgew0KICAgICAgICB2YXIgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQodGhpcy5IVE1MVGFnKTsNCiAgICAgICAgZWxlbWVudC5pbm5lclRleHQgPSB0aGlzLlZhbHVlOw0KICAgICAgICBjb25zb2xlLmxvZyhlbGVtZW50KTsNCiAgICB9Ow0KICAgIHJldHVybiBNYWluTWVudUl0ZW07DQp9KE1haW5NZW51KSk7DQpmdW5jdGlvbiBwYWdlUmVhZHkoKSB7DQogICAgdmFyIGl0ZW0gPSBuZXcgTWFpbk1lbnVJdGVtKCk7DQogICAgaXRlbS5WYWx1ZSA9ICJUZXN0IjsNCiAgICBpdGVtLmNyZWF0ZTIoKTsNCn0NCg==" webUI["html/js/configuration_ts.js"] = "Y2xhc3MgV2l6YXJkQ2F0ZWdvcnkgew0KICAgIGNvbnN0cnVjdG9yKCkgew0KICAgICAgICB0aGlzLkRvY3VtZW50SUQgPSAiY29udGVudCI7DQogICAgfQ0KICAgIGNyZWF0ZUNhdGVnb3J5SGVhZGxpbmUodmFsdWUpIHsNCiAgICAgICAgdmFyIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJINCIpOw0KICAgICAgICBlbGVtZW50LmlubmVySFRNTCA9IHZhbHVlOw0KICAgICAgICByZXR1cm4gZWxlbWVudDsNCiAgICB9DQp9DQpjbGFzcyBXaXphcmRJdGVtIGV4dGVuZHMgV2l6YXJkQ2F0ZWdvcnkgew0KICAgIGNvbnN0cnVjdG9yKGtleSwgaGVhZGxpbmUpIHsNCiAgICAgICAgc3VwZXIoKTsNCiAgICAgICAgdGhpcy5oZWFkbGluZSA9IGhlYWRsaW5lOw0KICAgICAgICB0aGlzLmtleSA9IGtleTsNCiAgICB9DQogICAgY3JlYXRlV2l6YXJkKCkgew0KICAgICAgICB2YXIgaGVhZGxpbmUgPSB0aGlzLmNyZWF0ZUNhdGVnb3J5SGVhZGxpbmUodGhpcy5oZWFkbGluZSk7DQogICAgICAgIHZhciBrZXkgPSB0aGlzLmtleTsNCiAgICAgICAgdmFyIGNvbnRlbnQgPSBuZXcgUG9wdXBDb250ZW50KCk7DQogICAgICAgIHZhciBkZXNjcmlwdGlvbjsNCiAgICAgICAgdmFyIGRvYyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHRoaXMuRG9jdW1lbnRJRCk7DQogICAgICAgIGRvYy5pbm5lckhUTUwgPSAiIjsNCiAgICAgICAgZG9jLmFwcGVuZENoaWxkKGhlYWRsaW5lKTsNCiAgICAgICAgc3dpdGNoIChrZXkpIHsNCiAgICAgICAgICAgIGNhc2UgInR1bmVyIjoNCiAgICAgICAgICAgICAgICB2YXIgdGV4dCA9IG5ldyBBcnJheSgpOw0KICAgICAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBuZXcgQXJyYXkoKTsNCiAgICAgICAgICAgICAgICBmb3IgKHZhciBpID0gMTsgaSA8PSAxMDA7IGkrKykgew0KICAgICAgICAgICAgICAgICAgICB0ZXh0LnB1c2goaSk7DQogICAgICAgICAgICAgICAgICAgIHZhbHVlcy5wdXNoKGkpOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCAiMSIsIGtleSk7DQogICAgICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgiY2xhc3MiLCAid2l6YXJkIik7DQogICAgICAgICAgICAgICAgc2VsZWN0LmlkID0ga2V5Ow0KICAgICAgICAgICAgICAgIGRvYy5hcHBlbmRDaGlsZChzZWxlY3QpOw0KICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uID0gInt7LndpemFyZC50dW5lci5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImVwZ1NvdXJjZSI6DQogICAgICAgICAgICAgICAgdmFyIHRleHQgPSBbIlBNUyIsICJYRVBHIl07DQogICAgICAgICAgICAgICAgdmFyIHZhbHVlcyA9IFsiUE1TIiwgIlhFUEciXTsNCiAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCAiWEVQRyIsIGtleSk7DQogICAgICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgiY2xhc3MiLCAid2l6YXJkIik7DQogICAgICAgICAgICAgICAgc2VsZWN0LmlkID0ga2V5Ow0KICAgICAgICAgICAgICAgIGRvYy5hcHBlbmRDaGlsZChzZWxlY3QpOw0KICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uID0gInt7LndpemFyZC5lcGdTb3VyY2UuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJtM3UiOg0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBrZXksICIiKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LndpemFyZC5tM3UucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgiY2xhc3MiLCAid2l6YXJkIik7DQogICAgICAgICAgICAgICAgaW5wdXQuaWQgPSBrZXk7DQogICAgICAgICAgICAgICAgZG9jLmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbiA9ICJ7ey53aXphcmQubTN1LmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAieG1sdHYiOg0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBrZXksICIiKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LndpemFyZC54bWx0di5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJjbGFzcyIsICJ3aXphcmQiKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5pZCA9IGtleTsNCiAgICAgICAgICAgICAgICBkb2MuYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uID0gInt7LndpemFyZC54bWx0di5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIH0NCiAgICAgICAgdmFyIHByZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlBSRSIpOw0KICAgICAgICBwcmUuaW5uZXJIVE1MID0gZGVzY3JpcHRpb247DQogICAgICAgIGRvYy5hcHBlbmRDaGlsZChwcmUpOw0KICAgIH0NCn0NCmZ1bmN0aW9uIHJlYWR5Rm9yQ29uZmlndXJhdGlvbih3aXphcmQpIHsNCiAgICB2YXIgc2VydmVyID0gbmV3IFNlcnZlcigiZ2V0U2VydmVyQ29uZmlnIik7DQogICAgc2VydmVyLnJlcXVlc3QobmV3IE9iamVjdCgpKTsNCiAgICBzaG93RWxlbWVudCgibG9hZGluZyIsIGZhbHNlKTsNCiAgICBjb25maWd1cmF0aW9uV2l6YXJkW3dpemFyZF0uY3JlYXRlV2l6YXJkKCk7DQp9DQpmdW5jdGlvbiBzYXZlV2l6YXJkKCkgew0KICAgIHZhciBjbWQgPSAic2F2ZVdpemFyZCI7DQogICAgdmFyIGRpdiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb250ZW50Iik7DQogICAgdmFyIGNvbmZpZyA9IGRpdi5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCJ3aXphcmQiKTsNCiAgICB2YXIgd2l6YXJkID0gbmV3IE9iamVjdCgpOw0KICAgIGZvciAodmFyIGkgPSAwOyBpIDwgY29uZmlnLmxlbmd0aDsgaSsrKSB7DQogICAgICAgIHZhciBuYW1lOw0KICAgICAgICB2YXIgdmFsdWU7DQogICAgICAgIHN3aXRjaCAoY29uZmlnW2ldLnRhZ05hbWUpIHsNCiAgICAgICAgICAgIGNhc2UgIlNFTEVDVCI6DQogICAgICAgICAgICAgICAgbmFtZSA9IGNvbmZpZ1tpXS5uYW1lOw0KICAgICAgICAgICAgICAgIHZhbHVlID0gY29uZmlnW2ldLnZhbHVlOw0KICAgICAgICAgICAgICAgIC8vIElmIHRoZSB2YWx1ZSBpcyBhIG51bWJlciwgc3RvcmUgaXQgYXMgYSBudW1iZXINCiAgICAgICAgICAgICAgICBpZiAoaXNOYU4odmFsdWUpKSB7DQogICAgICAgICAgICAgICAgICAgIHdpemFyZFtuYW1lXSA9IHZhbHVlOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICAgICAgd2l6YXJkW25hbWVdID0gcGFyc2VJbnQodmFsdWUpOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgIklOUFVUIjoNCiAgICAgICAgICAgICAgICBzd2l0Y2ggKGNvbmZpZ1tpXS50eXBlKSB7DQogICAgICAgICAgICAgICAgICAgIGNhc2UgInRleHQiOg0KICAgICAgICAgICAgICAgICAgICAgICAgbmFtZSA9IGNvbmZpZ1tpXS5uYW1lOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSBjb25maWdbaV0udmFsdWU7DQogICAgICAgICAgICAgICAgICAgICAgICBpZiAodmFsdWUubGVuZ3RoID09IDApIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgbXNnID0gbmFtZS50b1VwcGVyQ2FzZSgpICsgIjogIiArICJ7ey5hbGVydC5taXNzaW5nSW5wdXR9fSI7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgYWxlcnQobXNnKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICB3aXphcmRbbmFtZV0gPSB2YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICAgICAgLy8gY29kZS4uLg0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICB9DQogICAgfQ0KICAgIHZhciBkYXRhID0gbmV3IE9iamVjdCgpOw0KICAgIGRhdGFbIndpemFyZCJdID0gd2l6YXJkOw0KICAgIHZhciBzZXJ2ZXIgPSBuZXcgU2VydmVyKGNtZCk7DQogICAgc2VydmVyLnJlcXVlc3QoZGF0YSk7DQp9DQovLyBXaXphcmQNCnZhciBjb25maWd1cmF0aW9uV2l6YXJkID0gbmV3IEFycmF5KCk7DQpjb25maWd1cmF0aW9uV2l6YXJkLnB1c2gobmV3IFdpemFyZEl0ZW0oInR1bmVyIiwgInt7LndpemFyZC50dW5lci50aXRsZX19IikpOw0KY29uZmlndXJhdGlvbldpemFyZC5wdXNoKG5ldyBXaXphcmRJdGVtKCJlcGdTb3VyY2UiLCAie3sud2l6YXJkLmVwZ1NvdXJjZS50aXRsZX19IikpOw0KY29uZmlndXJhdGlvbldpemFyZC5wdXNoKG5ldyBXaXphcmRJdGVtKCJtM3UiLCAie3sud2l6YXJkLm0zdS50aXRsZX19IikpOw0KY29uZmlndXJhdGlvbldpemFyZC5wdXNoKG5ldyBXaXphcmRJdGVtKCJ4bWx0diIsICJ7ey53aXphcmQueG1sdHYudGl0bGV9fSIpKTsNCg==" webUI["html/js/logs_ts.js"] = "Y2xhc3MgTG9nIHsNCiAgICBjcmVhdGVMb2coZW50cnkpIHsNCiAgICAgICAgdmFyIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJQUkUiKTsNCiAgICAgICAgZW50cnkgPSBTdHJpbmcoZW50cnkpOw0KICAgICAgICBpZiAoZW50cnkuaW5kZXhPZigiV0FSTklORyIpICE9IC0xKSB7DQogICAgICAgICAgICBlbGVtZW50LmNsYXNzTmFtZSA9ICJ3YXJuaW5nTXNnIjsNCiAgICAgICAgfQ0KICAgICAgICBpZiAoZW50cnkuaW5kZXhPZigiRVJST1IiKSAhPSAtMSkgew0KICAgICAgICAgICAgZWxlbWVudC5jbGFzc05hbWUgPSAiZXJyb3JNc2ciOw0KICAgICAgICB9DQogICAgICAgIGlmIChlbnRyeS5pbmRleE9mKCJERUJVRyIpICE9IC0xKSB7DQogICAgICAgICAgICBlbGVtZW50LmNsYXNzTmFtZSA9ICJkZWJ1Z01zZyI7DQogICAgICAgIH0NCiAgICAgICAgZWxlbWVudC5pbm5lckhUTUwgPSBlbnRyeTsNCiAgICAgICAgcmV0dXJuIGVsZW1lbnQ7DQogICAgfQ0KfQ0KZnVuY3Rpb24gc2hvd0xvZ3MoYm90dG9tKSB7DQogICAgdmFyIGxvZyA9IG5ldyBMb2coKTsNCiAgICB2YXIgbG9ncyA9IFNFUlZFUlsibG9nIl1bImxvZyJdOw0KICAgIHZhciBkaXYgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29udGVudF9sb2ciKTsNCiAgICBkaXYuaW5uZXJIVE1MID0gIiI7DQogICAgdmFyIGtleXMgPSBnZXRPd25PYmpQcm9wcyhsb2dzKTsNCiAgICBrZXlzLmZvckVhY2gobG9nSUQgPT4gew0KICAgICAgICB2YXIgZW50cnkgPSBsb2cuY3JlYXRlTG9nKGxvZ3NbbG9nSURdKTsNCiAgICAgICAgZGl2LmFwcGVuZChlbnRyeSk7DQogICAgfSk7DQogICAgc2V0VGltZW91dChmdW5jdGlvbiAoKSB7DQogICAgICAgIGlmIChib3R0b20gPT0gdHJ1ZSkgew0KICAgICAgICAgICAgdmFyIHdyYXBwZXIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYm94LXdyYXBwZXIiKTsNCiAgICAgICAgICAgIHdyYXBwZXIuc2Nyb2xsVG9wID0gd3JhcHBlci5zY3JvbGxIZWlnaHQ7DQogICAgICAgIH0NCiAgICB9LCAxMCk7DQp9DQpmdW5jdGlvbiByZXNldExvZ3MoKSB7DQogICAgdmFyIGNtZCA9ICJyZXNldExvZ3MiOw0KICAgIHZhciBkYXRhID0gbmV3IE9iamVjdCgpOw0KICAgIHZhciBzZXJ2ZXIgPSBuZXcgU2VydmVyKGNtZCk7DQogICAgc2VydmVyLnJlcXVlc3QoZGF0YSk7DQp9DQo=" webUI["html/js/menu_ts.js"] = "Y2xhc3MgTWFpbk1lbnUgew0KICAgIGNvbnN0cnVjdG9yKCkgew0KICAgICAgICB0aGlzLkRvY3VtZW50SUQgPSAibWFpbi1tZW51IjsNCiAgICAgICAgdGhpcy5IVE1MVGFnID0gIkxJIjsNCiAgICAgICAgdGhpcy5JbWFnZVBhdGggPSAiaW1nLyI7DQogICAgfQ0KICAgIGNyZWF0ZUlNRyhzcmMpIHsNCiAgICAgICAgbGV0IGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJJTUciKTsNCiAgICAgICAgZWxlbWVudC5zZXRBdHRyaWJ1dGUoInNyYyIsIHRoaXMuSW1hZ2VQYXRoICsgc3JjKTsNCiAgICAgICAgcmV0dXJuIGVsZW1lbnQ7DQogICAgfQ0KICAgIGNyZWF0ZVZhbHVlKHZhbHVlKSB7DQogICAgICAgIGxldCBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiUCIpOw0KICAgICAgICBlbGVtZW50LmlubmVySFRNTCA9IHZhbHVlOw0KICAgICAgICByZXR1cm4gZWxlbWVudDsNCiAgICB9DQp9DQpjbGFzcyBNYWluTWVudUl0ZW0gZXh0ZW5kcyBNYWluTWVudSB7DQogICAgY29uc3RydWN0b3IobWVudUtleSwgdmFsdWUsIGltYWdlLCBoZWFkbGluZSkgew0KICAgICAgICBzdXBlcigpOw0KICAgICAgICB0aGlzLm1lbnVLZXkgPSBtZW51S2V5Ow0KICAgICAgICB0aGlzLnZhbHVlID0gdmFsdWU7DQogICAgICAgIHRoaXMuaW1nU3JjID0gaW1hZ2U7DQogICAgICAgIHRoaXMuaGVhZGxpbmUgPSBoZWFkbGluZTsNCiAgICB9DQogICAgY3JlYXRlSXRlbSgpIHsNCiAgICAgICAgbGV0IGl0ZW0gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJMSSIpOw0KICAgICAgICBpdGVtLnNldEF0dHJpYnV0ZSgib25jbGljayIsICJqYXZhc2NyaXB0OiBvcGVuVGhpc01lbnUodGhpcykiKTsNCiAgICAgICAgaXRlbS5zZXRBdHRyaWJ1dGUoImlkIiwgdGhpcy5pZCk7DQogICAgICAgIGxldCBpbWcgPSB0aGlzLmNyZWF0ZUlNRyh0aGlzLmltZ1NyYyk7DQogICAgICAgIGxldCB2YWx1ZSA9IHRoaXMuY3JlYXRlVmFsdWUodGhpcy52YWx1ZSk7DQogICAgICAgIGl0ZW0uYXBwZW5kQ2hpbGQoaW1nKTsNCiAgICAgICAgaXRlbS5hcHBlbmRDaGlsZCh2YWx1ZSk7DQogICAgICAgIGxldCBkb2MgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCh0aGlzLkRvY3VtZW50SUQpOw0KICAgICAgICBkb2MuYXBwZW5kQ2hpbGQoaXRlbSk7DQogICAgICAgIHN3aXRjaCAodGhpcy5tZW51S2V5KSB7DQogICAgICAgICAgICBjYXNlICJwbGF5bGlzdCI6DQogICAgICAgICAgICAgICAgdGhpcy50YWJsZUhlYWRlciA9IFsie3sucGxheWxpc3QudGFibGUucGxheWxpc3R9fSIsICJ7ey5wbGF5bGlzdC50YWJsZS50dW5lcn19IiwgInt7LnBsYXlsaXN0LnRhYmxlLmxhc3RVcGRhdGV9fSIsICJ7ey5wbGF5bGlzdC50YWJsZS5hdmFpbGFiaWxpdHl9fSAlIiwgInt7LnBsYXlsaXN0LnRhYmxlLnR5cGV9fSIsICJ7ey5wbGF5bGlzdC50YWJsZS5zdHJlYW1zfX0iLCAie3sucGxheWxpc3QudGFibGUuZ3JvdXBUaXRsZX19ICUiLCAie3sucGxheWxpc3QudGFibGUudHZnSUR9fSAlIiwgInt7LnBsYXlsaXN0LnRhYmxlLnVuaXF1ZUlEfX0gJSJdOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAieG1sdHYiOg0KICAgICAgICAgICAgICAgIHRoaXMudGFibGVIZWFkZXIgPSBbInt7LnhtbHR2LnRhYmxlLmd1aWRlfX0iLCAie3sueG1sdHYudGFibGUubGFzdFVwZGF0ZX19IiwgInt7LnhtbHR2LnRhYmxlLmF2YWlsYWJpbGl0eX19ICUiLCAie3sueG1sdHYudGFibGUuY2hhbm5lbHN9fSIsICJ7ey54bWx0di50YWJsZS5wcm9ncmFtc319Il07DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJmaWx0ZXIiOg0KICAgICAgICAgICAgICAgIHRoaXMudGFibGVIZWFkZXIgPSBbInt7LmZpbHRlci50YWJsZS5zdGFydGluZ0NoYW5uZWx9fSIsICJ7ey5maWx0ZXIudGFibGUubmFtZX19IiwgInt7LmZpbHRlci50YWJsZS50eXBlfX0iLCAie3suZmlsdGVyLnRhYmxlLmZpbHRlcn19Il07DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ1c2VycyI6DQogICAgICAgICAgICAgICAgdGhpcy50YWJsZUhlYWRlciA9IFsie3sudXNlcnMudGFibGUudXNlcm5hbWV9fSIsICJ7ey51c2Vycy50YWJsZS5wYXNzd29yZH19IiwgInt7LnVzZXJzLnRhYmxlLndlYn19IiwgInt7LnVzZXJzLnRhYmxlLnBtc319IiwgInt7LnVzZXJzLnRhYmxlLm0zdX19IiwgInt7LnVzZXJzLnRhYmxlLnhtbH19IiwgInt7LnVzZXJzLnRhYmxlLmFwaX19Il07DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJtYXBwaW5nIjoNCiAgICAgICAgICAgICAgICB0aGlzLnRhYmxlSGVhZGVyID0gWyJCVUxLIiwgInt7Lm1hcHBpbmcudGFibGUuY2hOb319IiwgInt7Lm1hcHBpbmcudGFibGUubG9nb319IiwgInt7Lm1hcHBpbmcudGFibGUuY2hhbm5lbE5hbWV9fSIsICJ7ey5tYXBwaW5nLnRhYmxlLnVwZGF0ZUNoYW5uZWxOYW1lUmVnZXh9fSIsICJ7ey5tYXBwaW5nLnRhYmxlLnBsYXlsaXN0fX0iLCAie3subWFwcGluZy50YWJsZS5ncm91cFRpdGxlfX0iLCAie3subWFwcGluZy50YWJsZS54bWx0dkZpbGV9fSIsICJ7ey5tYXBwaW5nLnRhYmxlLnhtbHR2SUR9fSIsICJ7ey5tYXBwaW5nLnRhYmxlLnRpbWVzaGlmdH19Il07DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIH0NCiAgICB9DQp9DQpjbGFzcyBDb250ZW50IHsNCiAgICBjb25zdHJ1Y3RvcigpIHsNCiAgICAgICAgdGhpcy5Eb2N1bWVudElEID0gImNvbnRlbnQiOw0KICAgICAgICB0aGlzLlRhYmxlSUQgPSAiY29udGVudF90YWJsZSI7DQogICAgICAgIHRoaXMuaGVhZGVyQ2xhc3MgPSAiY29udGVudF90YWJsZV9oZWFkZXIiOw0KICAgICAgICB0aGlzLmludGVyYWN0aW9uSUQgPSAiY29udGVudC1pbnRlcmFjdGlvbiI7DQogICAgfQ0KICAgIGNyZWF0ZUhlYWRsaW5lKHZhbHVlKSB7DQogICAgICAgIGxldCBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiSDMiKTsNCiAgICAgICAgZWxlbWVudC5pbm5lckhUTUwgPSB2YWx1ZTsNCiAgICAgICAgcmV0dXJuIGVsZW1lbnQ7DQogICAgfQ0KICAgIGNyZWF0ZUhSKCkgew0KICAgICAgICByZXR1cm4gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiSFIiKTsNCiAgICB9DQogICAgY3JlYXRlSW50ZXJhY3Rpb24oKSB7DQogICAgICAgIGxldCBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiRElWIik7DQogICAgICAgIGVsZW1lbnQuc2V0QXR0cmlidXRlKCJpZCIsIHRoaXMuaW50ZXJhY3Rpb25JRCk7DQogICAgICAgIHJldHVybiBlbGVtZW50Ow0KICAgIH0NCiAgICBjcmVhdGVESVYoKSB7DQogICAgICAgIGxldCBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiRElWIik7DQogICAgICAgIGVsZW1lbnQuaWQgPSB0aGlzLkRpdklEOw0KICAgICAgICByZXR1cm4gZWxlbWVudDsNCiAgICB9DQogICAgY3JlYXRlVEFCTEUoKSB7DQogICAgICAgIGxldCBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEFCTEUiKTsNCiAgICAgICAgZWxlbWVudC5pZCA9IHRoaXMuVGFibGVJRDsNCiAgICAgICAgcmV0dXJuIGVsZW1lbnQ7DQogICAgfQ0KICAgIGNyZWF0ZVRhYmxlUm93KCkgew0KICAgICAgICBsZXQgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlRSIik7DQogICAgICAgIGVsZW1lbnQuY2xhc3NOYW1lID0gdGhpcy5oZWFkZXJDbGFzczsNCiAgICAgICAgcmV0dXJuIGVsZW1lbnQ7DQogICAgfQ0KICAgIGNyZWF0ZVRhYmxlQ29udGVudChtZW51S2V5KSB7DQogICAgICAgIGxldCBkYXRhID0ge307DQogICAgICAgIGxldCByb3dzID0gW107DQogICAgICAgIGxldCBmaWxlVHlwZXMgPSBbXTsNCiAgICAgICAgc3dpdGNoIChtZW51S2V5KSB7DQogICAgICAgICAgICBjYXNlICJwbGF5bGlzdCI6DQogICAgICAgICAgICAgICAgZmlsZVR5cGVzID0gWyJtM3UiLCAiaGRociJdOw0KICAgICAgICAgICAgICAgIGZpbGVUeXBlcy5mb3JFYWNoKGZpbGVUeXBlID0+IHsNCiAgICAgICAgICAgICAgICAgICAgZGF0YSA9IFNFUlZFUlsic2V0dGluZ3MiXVsiZmlsZXMiXVtmaWxlVHlwZV07DQogICAgICAgICAgICAgICAgICAgIHZhciBrZXlzID0gZ2V0T3duT2JqUHJvcHMoZGF0YSk7DQogICAgICAgICAgICAgICAgICAgIGtleXMuZm9yRWFjaChrZXkgPT4gew0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVFIiKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmlkID0ga2V5Ow0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgiJyArIGZpbGVUeXBlICsgJyIsIHRoaXMpJyk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsibmFtZSJdOw0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChTRVJWRVJbInNldHRpbmdzIl1bImJ1ZmZlciJdICE9ICItIikgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bInR1bmVyIl07DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gIi0iOw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bImxhc3QudXBkYXRlIl07DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsicHJvdmlkZXIuYXZhaWxhYmlsaXR5Il07DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsidHlwZSJdLnRvVXBwZXJDYXNlKCk7DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsiY29tcGF0aWJpbGl0eSJdWyJzdHJlYW1zIl07DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsiY29tcGF0aWJpbGl0eSJdWyJncm91cC50aXRsZSJdOw0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bImNvbXBhdGliaWxpdHkiXVsidHZnLmlkIl07DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsiY29tcGF0aWJpbGl0eSJdWyJzdHJlYW0uaWQiXTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHJvd3MucHVzaCh0cik7DQogICAgICAgICAgICAgICAgICAgIH0pOw0KICAgICAgICAgICAgICAgIH0pOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiZmlsdGVyIjoNCiAgICAgICAgICAgICAgICBkZWxldGUgU0VSVkVSWyJzZXR0aW5ncyJdWyJmaWx0ZXIiXVstMV07DQogICAgICAgICAgICAgICAgZGF0YSA9IFNFUlZFUlsic2V0dGluZ3MiXVsiZmlsdGVyIl07DQogICAgICAgICAgICAgICAgdmFyIGtleXMgPSBnZXRPd25PYmpQcm9wcyhkYXRhKTsNCiAgICAgICAgICAgICAgICBrZXlzLmZvckVhY2goa2V5ID0+IHsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVFIiKTsNCiAgICAgICAgICAgICAgICAgICAgdHIuaWQgPSBrZXk7DQogICAgICAgICAgICAgICAgICAgIHRyLnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoIicgKyBkYXRhW2tleV1bInR5cGUiXSArICciLCB0aGlzKScpOw0KICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsic3RhcnRpbmdDaGFubmVsIl07DQogICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bIm5hbWUiXTsNCiAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgc3dpdGNoIChkYXRhW2tleV1bInR5cGUiXSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAiY3VzdG9tLWZpbHRlciI6DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9ICJ7ey5maWx0ZXIuY3VzdG9tfX0iOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAiZ3JvdXAtdGl0bGUiOg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSAie3suZmlsdGVyLmdyb3VwfX0iOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJmaWx0ZXIiXTsNCiAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICByb3dzLnB1c2godHIpOw0KICAgICAgICAgICAgICAgIH0pOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAieG1sdHYiOg0KICAgICAgICAgICAgICAgIGZpbGVUeXBlcyA9IG5ldyBBcnJheSgieG1sdHYiKTsNCiAgICAgICAgICAgICAgICBmaWxlVHlwZXMuZm9yRWFjaChmaWxlVHlwZSA9PiB7DQogICAgICAgICAgICAgICAgICAgIGRhdGEgPSBTRVJWRVJbInNldHRpbmdzIl1bImZpbGVzIl1bZmlsZVR5cGVdOw0KICAgICAgICAgICAgICAgICAgICB2YXIga2V5cyA9IGdldE93bk9ialByb3BzKGRhdGEpOw0KICAgICAgICAgICAgICAgICAgICBrZXlzLmZvckVhY2goa2V5ID0+IHsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciB0ciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlRSIik7DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5pZCA9IGtleTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoIicgKyBmaWxlVHlwZSArICciLCB0aGlzKScpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bIm5hbWUiXTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJsYXN0LnVwZGF0ZSJdOw0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bInByb3ZpZGVyLmF2YWlsYWJpbGl0eSJdOw0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bImNvbXBhdGliaWxpdHkiXVsieG1sdHYuY2hhbm5lbHMiXTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJjb21wYXRpYmlsaXR5Il1bInhtbHR2LnByb2dyYW1zIl07DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICByb3dzLnB1c2godHIpOw0KICAgICAgICAgICAgICAgICAgICB9KTsNCiAgICAgICAgICAgICAgICB9KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInVzZXJzIjoNCiAgICAgICAgICAgICAgICBmaWxlVHlwZXMgPSBuZXcgQXJyYXkoInVzZXJzIik7DQogICAgICAgICAgICAgICAgZmlsZVR5cGVzLmZvckVhY2goZmlsZVR5cGUgPT4gew0KICAgICAgICAgICAgICAgICAgICBkYXRhID0gU0VSVkVSW2ZpbGVUeXBlXTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGtleXMgPSBnZXRPd25PYmpQcm9wcyhkYXRhKTsNCiAgICAgICAgICAgICAgICAgICAga2V5cy5mb3JFYWNoKGtleSA9PiB7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgdHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJUUiIpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuaWQgPSBrZXk7DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCInICsgZmlsZVR5cGUgKyAnIiwgdGhpcyknKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJkYXRhIl1bInVzZXJuYW1lIl07DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9ICIqKioqKioiOw0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChkYXRhW2tleV1bImRhdGEiXVsiYXV0aGVudGljYXRpb24ud2ViIl0gPT0gdHJ1ZSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSAi4pyTIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSAiLSI7DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGRhdGFba2V5XVsiZGF0YSJdWyJhdXRoZW50aWNhdGlvbi5wbXMiXSA9PSB0cnVlKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9ICLinJMiOw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9ICItIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgICAgICBpZiAoZGF0YVtrZXldWyJkYXRhIl1bImF1dGhlbnRpY2F0aW9uLm0zdSJdID09IHRydWUpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gIuKckyI7DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gIi0iOw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChkYXRhW2tleV1bImRhdGEiXVsiYXV0aGVudGljYXRpb24ueG1sIl0gPT0gdHJ1ZSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSAi4pyTIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSAiLSI7DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGRhdGFba2V5XVsiZGF0YSJdWyJhdXRoZW50aWNhdGlvbi5hcGkiXSA9PSB0cnVlKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9ICLinJMiOw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9ICItIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHJvd3MucHVzaCh0cik7DQogICAgICAgICAgICAgICAgICAgIH0pOw0KICAgICAgICAgICAgICAgIH0pOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAibWFwcGluZyI6DQogICAgICAgICAgICAgICAgQlVMS19FRElUID0gZmFsc2U7DQogICAgICAgICAgICAgICAgY3JlYXRlU2VhcmNoT2JqKCk7DQogICAgICAgICAgICAgICAgY2hlY2tVbmRvKCJlcGdNYXBwaW5nIik7DQogICAgICAgICAgICAgICAgZGF0YSA9IFNFUlZFUlsieGVwZyJdWyJlcGdNYXBwaW5nIl07DQogICAgICAgICAgICAgICAgdmFyIGtleXMgPSBnZXRPd25PYmpQcm9wcyhkYXRhKTsNCiAgICAgICAgICAgICAgICBrZXlzLmZvckVhY2goa2V5ID0+IHsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVFIiKTsNCiAgICAgICAgICAgICAgICAgICAgdHIuaWQgPSBrZXk7DQogICAgICAgICAgICAgICAgICAgIHN3aXRjaCAoZGF0YVtrZXldWyJ4LWFjdGl2ZSJdKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBjYXNlIHRydWU6DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgdHIuY2xhc3NOYW1lID0gImFjdGl2ZUVQRyI7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgICAgICAgICBjYXNlIGZhbHNlOg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyLmNsYXNzTmFtZSA9ICJub3RBY3RpdmVFUEciOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIC8vIEJ1bGsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiQlVMSyI7DQogICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBmYWxzZTsNCiAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAvLyBDaGFubmVsIG51bWJlcg0KICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJJTlBVVENIQU5ORUwiOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJ4LWNoYW5uZWxJRCJdOw0KICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgIC8vIExvZ28NCiAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiSU1HIjsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5pbWFnZVVSTCA9IGRhdGFba2V5XVsidHZnLWxvZ28iXTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHRkID0gY2VsbC5jcmVhdGVDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgIHRkLnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoIm1hcHBpbmciLCB0aGlzKScpOw0KICAgICAgICAgICAgICAgICAgICB0ZC5pZCA9IGtleTsNCiAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQodGQpOw0KICAgICAgICAgICAgICAgICAgICAvLyBDaGFubmVsIG5hbWUNCiAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2xhc3NOYW1lID0gZGF0YVtrZXldWyJ4LWNhdGVnb3J5Il07DQogICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bIngtbmFtZSJdOw0KICAgICAgICAgICAgICAgICAgICB2YXIgdGQgPSBjZWxsLmNyZWF0ZUNlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgdGQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgibWFwcGluZyIsIHRoaXMpJyk7DQogICAgICAgICAgICAgICAgICAgIHRkLmlkID0ga2V5Ow0KICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZCh0ZCk7DQogICAgICAgICAgICAgICAgICAgIC8vIFVwZGF0ZSBjaGFubmVsIG5hbWUgcmVnZXgNCiAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bInVwZGF0ZS1jaGFubmVsLW5hbWUtcmVnZXgiXTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHRkID0gY2VsbC5jcmVhdGVDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgIHRkLnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoIm1hcHBpbmciLCB0aGlzKScpOw0KICAgICAgICAgICAgICAgICAgICB0ZC5pZCA9IGtleTsNCiAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQodGQpOw0KICAgICAgICAgICAgICAgICAgICAvLyBQbGF5bGlzdA0KICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGdldFZhbHVlRnJvbVByb3ZpZGVyRmlsZShkYXRhW2tleV1bIl9maWxlLm0zdS5pZCJdLCAibTN1IiwgIm5hbWUiKTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHRkID0gY2VsbC5jcmVhdGVDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgIHRkLnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoIm1hcHBpbmciLCB0aGlzKScpOw0KICAgICAgICAgICAgICAgICAgICB0ZC5pZCA9IGtleTsNCiAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQodGQpOw0KICAgICAgICAgICAgICAgICAgICAvLyBHcm91cCAoZ3JvdXAtdGl0bGUpDQogICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJ4LWdyb3VwLXRpdGxlIl07DQogICAgICAgICAgICAgICAgICAgIHZhciB0ZCA9IGNlbGwuY3JlYXRlQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICB0ZC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJtYXBwaW5nIiwgdGhpcyknKTsNCiAgICAgICAgICAgICAgICAgICAgdGQuaWQgPSBrZXk7DQogICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKHRkKTsNCiAgICAgICAgICAgICAgICAgICAgLy8gWE1MVFYgZmlsZQ0KICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgaWYgKGRhdGFba2V5XVsieC14bWx0di1maWxlIl0gIT0gIi0iKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZ2V0VmFsdWVGcm9tUHJvdmlkZXJGaWxlKGRhdGFba2V5XVsieC14bWx0di1maWxlIl0sICJ4bWx0diIsICJuYW1lIik7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgZWxzZSB7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJ4LXhtbHR2LWZpbGUiXTsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICB2YXIgdGQgPSBjZWxsLmNyZWF0ZUNlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgdGQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgibWFwcGluZyIsIHRoaXMpJyk7DQogICAgICAgICAgICAgICAgICAgIHRkLmlkID0ga2V5Ow0KICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZCh0ZCk7DQogICAgICAgICAgICAgICAgICAgIC8vIFhNTFRWIENoYW5uZWwNCiAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgIHZhciB2YWx1ZSA9IGRhdGFba2V5XVsieC1tYXBwaW5nIl07DQogICAgICAgICAgICAgICAgICAgIGlmICh2YWx1ZS5sZW5ndGggPiAyMCkgew0KICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSBkYXRhW2tleV1bIngtbWFwcGluZyJdLnN1YnN0cmluZygwLCAyMCkgKyAiLi4uIjsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gdmFsdWU7DQogICAgICAgICAgICAgICAgICAgIHZhciB0ZCA9IGNlbGwuY3JlYXRlQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICB0ZC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJtYXBwaW5nIiwgdGhpcyknKTsNCiAgICAgICAgICAgICAgICAgICAgdGQuaWQgPSBrZXk7DQogICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKHRkKTsNCiAgICAgICAgICAgICAgICAgICAgLy8gVGltZVNoaWZ0DQogICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJ4LXRpbWVzaGlmdCJdOw0KICAgICAgICAgICAgICAgICAgICB2YXIgdGQgPSBjZWxsLmNyZWF0ZUNlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgdGQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgibWFwcGluZyIsIHRoaXMpJyk7DQogICAgICAgICAgICAgICAgICAgIHRkLmlkID0ga2V5Ow0KICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZCh0ZCk7DQogICAgICAgICAgICAgICAgICAgIHJvd3MucHVzaCh0cik7DQogICAgICAgICAgICAgICAgfSk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJzZXR0aW5ncyI6DQogICAgICAgICAgICAgICAgYWxlcnQoKTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIH0NCiAgICAgICAgcmV0dXJuIHJvd3M7DQogICAgfQ0KfQ0KY2xhc3MgQ2VsbCB7DQogICAgY3JlYXRlQ2VsbCgpIHsNCiAgICAgICAgbGV0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgaWYgKHRoaXMuY2hpbGQgPT0gdHJ1ZSkgew0KICAgICAgICAgICAgdmFyIGVsZW1lbnQ7DQogICAgICAgICAgICBzd2l0Y2ggKHRoaXMuY2hpbGRUeXBlKSB7DQogICAgICAgICAgICAgICAgY2FzZSAiUCI6DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KHRoaXMuY2hpbGRUeXBlKTsNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC5pbm5lckhUTUwgPSB0aGlzLnZhbHVlOw0KICAgICAgICAgICAgICAgICAgICBlbGVtZW50LmNsYXNzTmFtZSA9IHRoaXMuY2xhc3NOYW1lOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBjYXNlICJJTlBVVCI6DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KHRoaXMuY2hpbGRUeXBlKTsNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC52YWx1ZSA9IHRoaXMudmFsdWU7DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQudHlwZSA9ICJ0ZXh0IjsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAiSU5QVVRDSEFOTkVMIjoNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIklOUFVUIik7DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZzY3JpcHQ6IGNoYW5nZUNoYW5uZWxOdW1iZXIodGhpcykiKTsNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC52YWx1ZSA9IHRoaXMudmFsdWU7DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQudHlwZSA9ICJ0ZXh0IjsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAiQlVMSyI6DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJJTlBVVCIpOw0KICAgICAgICAgICAgICAgICAgICBlbGVtZW50LmNoZWNrZWQgPSB0aGlzLnZhbHVlOw0KICAgICAgICAgICAgICAgICAgICBlbGVtZW50LnR5cGUgPSAiY2hlY2tib3giOw0KICAgICAgICAgICAgICAgICAgICBlbGVtZW50LmNsYXNzTmFtZSA9ICJidWxrIGhpZGVCdWxrIjsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAiQlVMS19IRUFEIjoNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIklOUFVUIik7DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQuY2hlY2tlZCA9IHRoaXMudmFsdWU7DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQudHlwZSA9ICJjaGVja2JveCI7DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQuY2xhc3NOYW1lID0gImJ1bGsgaGlkZUJ1bGsiOw0KICAgICAgICAgICAgICAgICAgICBlbGVtZW50LnNldEF0dHJpYnV0ZSgib25jbGljayIsICJqYXZhc2NyaXB0OiBzZWxlY3RBbGxDaGFubmVscygpIik7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgIklNRyI6DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KHRoaXMuY2hpbGRUeXBlKTsNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC5zZXRBdHRyaWJ1dGUoInNyYyIsIHRoaXMuaW1hZ2VVUkwpOw0KICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5pbWFnZVVSTCAhPSAiIikgew0KICAgICAgICAgICAgICAgICAgICAgICAgZWxlbWVudC5zZXRBdHRyaWJ1dGUoIm9uZXJyb3IiLCAiamF2YXNjcmlwdDogdGhpcy5vbmVycm9yPW51bGw7dGhpcy5zcmM9JyciKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIC8vb25lcnJvcj0idGhpcy5vbmVycm9yPW51bGw7dGhpcy5zcmM9J21pc3NpbmcuZ2lmJzsiDQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIHRkLmFwcGVuZENoaWxkKGVsZW1lbnQpOw0KICAgICAgICB9DQogICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgdGQuaW5uZXJIVE1MID0gdGhpcy52YWx1ZTsNCiAgICAgICAgfQ0KICAgICAgICBpZiAodGhpcy5vbmNsaWNrID09IHRydWUpIHsNCiAgICAgICAgICAgIHRkLnNldEF0dHJpYnV0ZSgib25jbGljayIsIHRoaXMub25jbGlja0Z1bmN0aW9uKTsNCiAgICAgICAgICAgIHRkLmNsYXNzTmFtZSA9ICJwb2ludGVyIjsNCiAgICAgICAgfQ0KICAgICAgICBpZiAodGhpcy50ZENsYXNzTmFtZSAhPSB1bmRlZmluZWQpIHsNCiAgICAgICAgICAgIHRkLmNsYXNzTmFtZSA9IHRoaXMudGRDbGFzc05hbWU7DQogICAgICAgIH0NCiAgICAgICAgcmV0dXJuIHRkOw0KICAgIH0NCn0NCmNsYXNzIFNob3dDb250ZW50IGV4dGVuZHMgQ29udGVudCB7DQogICAgY29uc3RydWN0b3IobWVudUlEKSB7DQogICAgICAgIHN1cGVyKCk7DQogICAgICAgIHRoaXMubWVudUlEID0gbWVudUlEOw0KICAgIH0NCiAgICBjcmVhdGVJbnB1dCh0eXBlLCBuYW1lLCB2YWx1ZSkgew0KICAgICAgICBsZXQgaW5wdXQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJJTlBVVCIpOw0KICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInR5cGUiLCB0eXBlKTsNCiAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJuYW1lIiwgbmFtZSk7DQogICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgidmFsdWUiLCB2YWx1ZSk7DQogICAgICAgIHJldHVybiBpbnB1dDsNCiAgICB9DQogICAgc2hvdygpIHsNCiAgICAgICAgQ09MVU1OX1RPX1NPUlQgPSAtMTsNCiAgICAgICAgLy8gRGVsZXRlIG9sZCBjb250ZW50DQogICAgICAgIGxldCBkb2MgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCh0aGlzLkRvY3VtZW50SUQpOw0KICAgICAgICBkb2MuaW5uZXJIVE1MID0gIiI7DQogICAgICAgIHNob3dQcmV2aWV3KGZhbHNlKTsNCiAgICAgICAgLy8gSGVhZGxpbmUNCiAgICAgICAgbGV0IGhlYWRsaW5lID0gbWVudUl0ZW1zW3RoaXMubWVudUlEXS5oZWFkbGluZTsNCiAgICAgICAgbGV0IG1lbnVLZXkgPSBtZW51SXRlbXNbdGhpcy5tZW51SURdLm1lbnVLZXk7DQogICAgICAgIGxldCBoID0gdGhpcy5jcmVhdGVIZWFkbGluZShoZWFkbGluZSk7DQogICAgICAgIGRvYy5hcHBlbmRDaGlsZChoKTsNCiAgICAgICAgbGV0IGhyID0gdGhpcy5jcmVhdGVIUigpOw0KICAgICAgICBkb2MuYXBwZW5kQ2hpbGQoaHIpOw0KICAgICAgICAvLyBJbnRlcmFjdGlvbg0KICAgICAgICBsZXQgZGl2ID0gdGhpcy5jcmVhdGVJbnRlcmFjdGlvbigpOw0KICAgICAgICBkb2MuYXBwZW5kQ2hpbGQoZGl2KTsNCiAgICAgICAgbGV0IGludGVyYWN0aW9uID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQodGhpcy5pbnRlcmFjdGlvbklEKTsNCiAgICAgICAgc3dpdGNoIChtZW51S2V5KSB7DQogICAgICAgICAgICBjYXNlICJwbGF5bGlzdCI6DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gdGhpcy5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgbWVudUtleSwgInt7LmJ1dHRvbi5uZXd9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgiaWQiLCAiLSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoInBsYXlsaXN0IiknKTsNCiAgICAgICAgICAgICAgICBpbnRlcmFjdGlvbi5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJmaWx0ZXIiOg0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IHRoaXMuY3JlYXRlSW5wdXQoImJ1dHRvbiIsIG1lbnVLZXksICJ7ey5idXR0b24ubmV3fX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoImlkIiwgLTEpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoImZpbHRlciIsIHRoaXMpJyk7DQogICAgICAgICAgICAgICAgaW50ZXJhY3Rpb24uYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAieG1sdHYiOg0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IHRoaXMuY3JlYXRlSW5wdXQoImJ1dHRvbiIsIG1lbnVLZXksICJ7ey5idXR0b24ubmV3fX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoImlkIiwgInhtbHR2Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgieG1sdHYiKScpOw0KICAgICAgICAgICAgICAgIGludGVyYWN0aW9uLmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInVzZXJzIjoNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSB0aGlzLmNyZWF0ZUlucHV0KCJidXR0b24iLCBtZW51S2V5LCAie3suYnV0dG9uLm5ld319Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJpZCIsICJ1c2VycyIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoInVzZXJzIiknKTsNCiAgICAgICAgICAgICAgICBpbnRlcmFjdGlvbi5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJtYXBwaW5nIjoNCiAgICAgICAgICAgICAgICBzaG93RWxlbWVudCgibG9hZGluZyIsIHRydWUpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IHRoaXMuY3JlYXRlSW5wdXQoImJ1dHRvbiIsIG1lbnVLZXksICJ7ey5idXR0b24uc2F2ZX19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoIm1hcHBpbmciLCAiIiwgIiIpJyk7DQogICAgICAgICAgICAgICAgaW50ZXJhY3Rpb24uYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IHRoaXMuY3JlYXRlSW5wdXQoImJ1dHRvbiIsIG1lbnVLZXksICJ7ey5idXR0b24uYnVsa0VkaXR9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBidWxrRWRpdCgpJyk7DQogICAgICAgICAgICAgICAgaW50ZXJhY3Rpb24uYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IHRoaXMuY3JlYXRlSW5wdXQoInNlYXJjaCIsICJzZWFyY2giLCAiIik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJpZCIsICJzZWFyY2hNYXBwaW5nIik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5idXR0b24uc2VhcmNofX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5jbGFzc05hbWUgPSAic2VhcmNoIjsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgJ2phdmFzY3JpcHQ6IHNlYXJjaEluTWFwcGluZygpJyk7DQogICAgICAgICAgICAgICAgaW50ZXJhY3Rpb24uYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAic2V0dGluZ3MiOg0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IHRoaXMuY3JlYXRlSW5wdXQoImJ1dHRvbiIsIG1lbnVLZXksICJ7ey5idXR0b24uc2F2ZX19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IHNhdmVTZXR0aW5ncygpOycpOw0KICAgICAgICAgICAgICAgIGludGVyYWN0aW9uLmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSB0aGlzLmNyZWF0ZUlucHV0KCJidXR0b24iLCBtZW51S2V5LCAie3suYnV0dG9uLmJhY2t1cH19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IGJhY2t1cCgpOycpOw0KICAgICAgICAgICAgICAgIGludGVyYWN0aW9uLmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSB0aGlzLmNyZWF0ZUlucHV0KCJidXR0b24iLCBtZW51S2V5LCAie3suYnV0dG9uLnJlc3RvcmV9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiByZXN0b3JlKCk7Jyk7DQogICAgICAgICAgICAgICAgaW50ZXJhY3Rpb24uYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIHZhciB3cmFwcGVyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiRElWIik7DQogICAgICAgICAgICAgICAgd3JhcHBlci5zZXRBdHRyaWJ1dGUoImlkIiwgImJveC13cmFwcGVyIik7DQogICAgICAgICAgICAgICAgZG9jLmFwcGVuZENoaWxkKHdyYXBwZXIpOw0KICAgICAgICAgICAgICAgIHRoaXMuRGl2SUQgPSAiY29udGVudF9zZXR0aW5ncyI7DQogICAgICAgICAgICAgICAgdmFyIHNldHRpbmdzID0gdGhpcy5jcmVhdGVESVYoKTsNCiAgICAgICAgICAgICAgICB3cmFwcGVyLmFwcGVuZENoaWxkKHNldHRpbmdzKTsNCiAgICAgICAgICAgICAgICBzaG93U2V0dGluZ3MoKTsNCiAgICAgICAgICAgICAgICByZXR1cm47DQogICAgICAgICAgICBjYXNlICJsb2ciOg0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IHRoaXMuY3JlYXRlSW5wdXQoImJ1dHRvbiIsIG1lbnVLZXksICJ7ey5idXR0b24ucmVzZXRMb2dzfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogcmVzZXRMb2dzKCk7Jyk7DQogICAgICAgICAgICAgICAgaW50ZXJhY3Rpb24uYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIHZhciB3cmFwcGVyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiRElWIik7DQogICAgICAgICAgICAgICAgd3JhcHBlci5zZXRBdHRyaWJ1dGUoImlkIiwgImJveC13cmFwcGVyIik7DQogICAgICAgICAgICAgICAgZG9jLmFwcGVuZENoaWxkKHdyYXBwZXIpOw0KICAgICAgICAgICAgICAgIHRoaXMuRGl2SUQgPSAiY29udGVudF9sb2ciOw0KICAgICAgICAgICAgICAgIHZhciBsb2dzID0gdGhpcy5jcmVhdGVESVYoKTsNCiAgICAgICAgICAgICAgICB3cmFwcGVyLmFwcGVuZENoaWxkKGxvZ3MpOw0KICAgICAgICAgICAgICAgIHNob3dMb2dzKHRydWUpOw0KICAgICAgICAgICAgICAgIHJldHVybjsNCiAgICAgICAgICAgIGNhc2UgImxvZ291dCI6DQogICAgICAgICAgICAgICAgbG9jYXRpb24ucmVsb2FkKCk7DQogICAgICAgICAgICAgICAgZG9jdW1lbnQuY29va2llID0gIlRva2VuPSA7IGV4cGlyZXMgPSBUaHUsIDAxIEphbiAxOTcwIDAwOjAwOjAwIEdNVCI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBkZWZhdWx0Og0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICB9DQogICAgICAgIC8vIENyZWF0ZSB0YWJsZSAoaWYgbmVlZGVkKQ0KICAgICAgICB2YXIgdGFibGVIZWFkZXIgPSBtZW51SXRlbXNbdGhpcy5tZW51SURdLnRhYmxlSGVhZGVyOw0KICAgICAgICBpZiAodGFibGVIZWFkZXIubGVuZ3RoID4gMCkgew0KICAgICAgICAgICAgdmFyIHdyYXBwZXIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJESVYiKTsNCiAgICAgICAgICAgIGRvYy5hcHBlbmRDaGlsZCh3cmFwcGVyKTsNCiAgICAgICAgICAgIHdyYXBwZXIuc2V0QXR0cmlidXRlKCJpZCIsICJib3gtd3JhcHBlciIpOw0KICAgICAgICAgICAgdmFyIHRhYmxlID0gdGhpcy5jcmVhdGVUQUJMRSgpOw0KICAgICAgICAgICAgd3JhcHBlci5hcHBlbmRDaGlsZCh0YWJsZSk7DQogICAgICAgICAgICB2YXIgaGVhZGVyID0gdGhpcy5jcmVhdGVUYWJsZVJvdygpOw0KICAgICAgICAgICAgdGFibGUuYXBwZW5kQ2hpbGQoaGVhZGVyKTsNCiAgICAgICAgICAgIC8vIFRhYmxlIGhlYWRlcg0KICAgICAgICAgICAgdGFibGVIZWFkZXIuZm9yRWFjaChlbGVtZW50ID0+IHsNCiAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGVsZW1lbnQ7DQogICAgICAgICAgICAgICAgaWYgKGVsZW1lbnQgPT0gIkJVTEsiKSB7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIkJVTEtfSEVBRCI7DQogICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBmYWxzZTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgaWYgKG1lbnVLZXkgPT0gIm1hcHBpbmciKSB7DQogICAgICAgICAgICAgICAgICAgIGlmIChlbGVtZW50ID09ICJ7ey5tYXBwaW5nLnRhYmxlLmNoTm99fSIpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwub25jbGljayA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLm9uY2xpY2tGdW5jdGlvbiA9ICJqYXZhc2NyaXB0OiBzb3J0VGFibGUoMSk7IjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudGRDbGFzc05hbWUgPSAic29ydFRoaXMiOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIGlmIChlbGVtZW50ID09ICJ7ey5tYXBwaW5nLnRhYmxlLmNoYW5uZWxOYW1lfX0iKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLm9uY2xpY2sgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5vbmNsaWNrRnVuY3Rpb24gPSAiamF2YXNjcmlwdDogc29ydFRhYmxlKDMpOyI7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgaWYgKGVsZW1lbnQgPT0gInt7Lm1hcHBpbmcudGFibGUudXBkYXRlQ2hhbm5lbE5hbWVSZWdleH19Iikgew0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5vbmNsaWNrID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwub25jbGlja0Z1bmN0aW9uID0gImphdmFzY3JpcHQ6IHNvcnRUYWJsZSg0KTsiOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIGlmIChlbGVtZW50ID09ICJ7ey5tYXBwaW5nLnRhYmxlLnBsYXlsaXN0fX0iKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLm9uY2xpY2sgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5vbmNsaWNrRnVuY3Rpb24gPSAiamF2YXNjcmlwdDogc29ydFRhYmxlKDUpOyI7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgaWYgKGVsZW1lbnQgPT0gInt7Lm1hcHBpbmcudGFibGUuZ3JvdXBUaXRsZX19Iikgew0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5vbmNsaWNrID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwub25jbGlja0Z1bmN0aW9uID0gImphdmFzY3JpcHQ6IHNvcnRUYWJsZSg2KTsiOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIGlmIChlbGVtZW50ID09ICJ7ey5tYXBwaW5nLnRhYmxlLnRpbWVzaGlmdH19Iikgew0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5vbmNsaWNrID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwub25jbGlja0Z1bmN0aW9uID0gImphdmFzY3JpcHQ6IHNvcnRUYWJsZSg5KTsiOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIGlmIChtZW51S2V5ID09ICJmaWx0ZXIiKSB7DQogICAgICAgICAgICAgICAgICAgIGlmIChlbGVtZW50ID09ICJ7ey5maWx0ZXIudGFibGUuc3RhcnRpbmdDaGFubmVsfX0iKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLm9uY2xpY2sgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5vbmNsaWNrRnVuY3Rpb24gPSAiamF2YXNjcmlwdDogc29ydFRhYmxlKDApOyI7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnRkQ2xhc3NOYW1lID0gInNvcnRUaGlzIjsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBpZiAoZWxlbWVudCA9PSAie3suZmlsdGVyLnRhYmxlLm5hbWV9fSIpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwub25jbGljayA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLm9uY2xpY2tGdW5jdGlvbiA9ICJqYXZhc2NyaXB0OiBzb3J0VGFibGUoMSk7IjsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBpZiAoZWxlbWVudCA9PSAie3suZmlsdGVyLnRhYmxlLnR5cGV9fSIpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwub25jbGljayA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLm9uY2xpY2tGdW5jdGlvbiA9ICJqYXZhc2NyaXB0OiBzb3J0VGFibGUoMik7IjsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBpZiAoZWxlbWVudCA9PSAie3suZmlsdGVyLnRhYmxlLmZpbHRlcn19Iikgew0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5vbmNsaWNrID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwub25jbGlja0Z1bmN0aW9uID0gImphdmFzY3JpcHQ6IHNvcnRUYWJsZSgzKTsiOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIGhlYWRlci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICB9KTsNCiAgICAgICAgICAgIHRhYmxlLmFwcGVuZENoaWxkKGhlYWRlcik7DQogICAgICAgICAgICAvLyBDb250ZW50IG9mIHRoZSB0YWJsZQ0KICAgICAgICAgICAgdmFyIHJvd3MgPSB0aGlzLmNyZWF0ZVRhYmxlQ29udGVudChtZW51S2V5KTsNCiAgICAgICAgICAgIHJvd3MuZm9yRWFjaCh0ciA9PiB7DQogICAgICAgICAgICAgICAgdGFibGUuYXBwZW5kQ2hpbGQodHIpOw0KICAgICAgICAgICAgfSk7DQogICAgICAgIH0NCiAgICAgICAgc3dpdGNoIChtZW51S2V5KSB7DQogICAgICAgICAgICBjYXNlICJtYXBwaW5nIjoNCiAgICAgICAgICAgICAgICBzb3J0VGFibGUoMSk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJmaWx0ZXIiOg0KICAgICAgICAgICAgICAgIHNob3dQcmV2aWV3KHRydWUpOw0KICAgICAgICAgICAgICAgIHNvcnRUYWJsZSgwKTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICAgICAgQ09MVU1OX1RPX1NPUlQgPSAtMTsNCiAgICAgICAgICAgICAgICBzb3J0VGFibGUoMCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIH0NCiAgICAgICAgc2hvd0VsZW1lbnQoImxvYWRpbmciLCBmYWxzZSk7DQogICAgfQ0KfQ0KZnVuY3Rpb24gUGFnZVJlYWR5KCkgew0KICAgIGxldCBzZXJ2ZXIgPSBuZXcgU2VydmVyKCJnZXRTZXJ2ZXJDb25maWciKTsNCiAgICBzZXJ2ZXIucmVxdWVzdCh7fSk7DQogICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoInJlc2l6ZSIsIGZ1bmN0aW9uICgpIHsNCiAgICAgICAgY2FsY3VsYXRlV3JhcHBlckhlaWdodCgpOw0KICAgIH0sIHRydWUpOw0KICAgIHNldEludGVydmFsKGZ1bmN0aW9uICgpIHsNCiAgICAgICAgdXBkYXRlTG9nKCk7DQogICAgfSwgMTAwMDApOw0KICAgIHJldHVybjsNCn0NCmZ1bmN0aW9uIGNyZWF0ZUxheW91dCgpIHsNCiAgICAvLyBDbGllbnQgSW5mbw0KICAgIGxldCBvYmogPSBTRVJWRVJbImNsaWVudEluZm8iXTsNCiAgICBsZXQga2V5cyA9IGdldE93bk9ialByb3BzKG9iaik7DQogICAgZm9yICh2YXIgaSA9IDA7IGkgPCBrZXlzLmxlbmd0aDsgaSsrKSB7DQogICAgICAgIGlmIChkb2N1bWVudC5nZXRFbGVtZW50QnlJZChrZXlzW2ldKSkgew0KICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoa2V5c1tpXSkuaW5uZXJIVE1MID0gb2JqW2tleXNbaV1dOw0KICAgICAgICB9DQogICAgfQ0KICAgIGlmICghZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm1haW4tbWVudSIpKSB7DQogICAgICAgIHJldHVybjsNCiAgICB9DQogICAgLy8gQ3JlYXRlIG1lbnUNCiAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibWFpbi1tZW51IikuaW5uZXJIVE1MID0gIiI7DQogICAgZm9yIChsZXQgaSA9IDA7IGkgPCBtZW51SXRlbXMubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgbWVudUl0ZW1zW2ldLmlkID0gaTsNCiAgICAgICAgc3dpdGNoIChtZW51SXRlbXNbaV1bIm1lbnVLZXkiXSkgew0KICAgICAgICAgICAgY2FzZSAidXNlcnMiOg0KICAgICAgICAgICAgY2FzZSAibG9nb3V0IjoNCiAgICAgICAgICAgICAgICBpZiAoU0VSVkVSWyJzZXR0aW5ncyJdWyJhdXRoZW50aWNhdGlvbi53ZWIiXSA9PSB0cnVlKSB7DQogICAgICAgICAgICAgICAgICAgIG1lbnVJdGVtc1tpXS5jcmVhdGVJdGVtKCk7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAibWFwcGluZyI6DQogICAgICAgICAgICBjYXNlICJ4bWx0diI6DQogICAgICAgICAgICAgICAgaWYgKFNFUlZFUlsiY2xpZW50SW5mbyJdWyJlcGdTb3VyY2UiXSA9PSAiWEVQRyIpIHsNCiAgICAgICAgICAgICAgICAgICAgbWVudUl0ZW1zW2ldLmNyZWF0ZUl0ZW0oKTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBkZWZhdWx0Og0KICAgICAgICAgICAgICAgIG1lbnVJdGVtc1tpXS5jcmVhdGVJdGVtKCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIH0NCiAgICB9DQogICAgcmV0dXJuOw0KfQ0KZnVuY3Rpb24gb3BlblRoaXNNZW51KGVsZW1lbnQpIHsNCiAgICBsZXQgaWQgPSBlbGVtZW50LmlkOw0KICAgIGxldCBjb250ZW50ID0gbmV3IFNob3dDb250ZW50KGlkKTsNCiAgICBjb250ZW50LnNob3coKTsNCiAgICBjYWxjdWxhdGVXcmFwcGVySGVpZ2h0KCk7DQogICAgcmV0dXJuOw0KfQ0KY2xhc3MgUG9wdXBXaW5kb3cgew0KICAgIGNvbnN0cnVjdG9yKCkgew0KICAgICAgICB0aGlzLkRvY3VtZW50SUQgPSAicG9wdXAtY3VzdG9tIjsNCiAgICAgICAgdGhpcy5JbnRlcmFjdGlvbklEID0gImludGVyYWN0aW9uIjsNCiAgICAgICAgdGhpcy5kb2MgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCh0aGlzLkRvY3VtZW50SUQpOw0KICAgIH0NCiAgICBjcmVhdGVUaXRsZSh0aXRsZSkgew0KICAgICAgICBsZXQgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICB0ZC5jbGFzc05hbWUgPSAibGVmdCI7DQogICAgICAgIHRkLmlubmVySFRNTCA9IHRpdGxlICsgIjoiOw0KICAgICAgICByZXR1cm4gdGQ7DQogICAgfQ0KICAgIGNyZWF0ZUNvbnRlbnQoZWxlbWVudCkgew0KICAgICAgICBsZXQgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICB0ZC5hcHBlbmRDaGlsZChlbGVtZW50KTsNCiAgICAgICAgcmV0dXJuIHRkOw0KICAgIH0NCiAgICBjcmVhdGVJbnRlcmFjdGlvbigpIHsNCiAgICAgICAgbGV0IGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOw0KICAgICAgICBkaXYuc2V0QXR0cmlidXRlKCJpZCIsICJwb3B1cC1pbnRlcmFjdGlvbiIpOw0KICAgICAgICBkaXYuY2xhc3NOYW1lID0gImludGVyYWN0aW9uIjsNCiAgICAgICAgdGhpcy5kb2MuYXBwZW5kQ2hpbGQoZGl2KTsNCiAgICB9DQp9DQpjbGFzcyBQb3B1cENvbnRlbnQgZXh0ZW5kcyBQb3B1cFdpbmRvdyB7DQogICAgY29uc3RydWN0b3IoKSB7DQogICAgICAgIHN1cGVyKC4uLmFyZ3VtZW50cyk7DQogICAgICAgIHRoaXMudGFibGUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJUQUJMRSIpOw0KICAgIH0NCiAgICBjcmVhdGVIZWFkbGluZShoZWFkbGluZSkgew0KICAgICAgICB0aGlzLmRvYy5pbm5lckhUTUwgPSAiIjsNCiAgICAgICAgdmFyIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJIMyIpOw0KICAgICAgICBlbGVtZW50LmlubmVySFRNTCA9IGhlYWRsaW5lLnRvVXBwZXJDYXNlKCk7DQogICAgICAgIHRoaXMuZG9jLmFwcGVuZENoaWxkKGVsZW1lbnQpOw0KICAgICAgICAvLyBDcmVhdGUgdGFibGUNCiAgICAgICAgdGhpcy50YWJsZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlRBQkxFIik7DQogICAgICAgIHRoaXMuZG9jLmFwcGVuZENoaWxkKHRoaXMudGFibGUpOw0KICAgIH0NCiAgICBhcHBlbmRSb3codGl0bGUsIGVsZW1lbnQpIHsNCiAgICAgICAgbGV0IHRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVFIiKTsNCiAgICAgICAgLy8gVGl0bGUNCiAgICAgICAgaWYgKHRpdGxlLmxlbmd0aCAhPSAwKSB7DQogICAgICAgICAgICB0ci5hcHBlbmRDaGlsZCh0aGlzLmNyZWF0ZVRpdGxlKHRpdGxlKSk7DQogICAgICAgIH0NCiAgICAgICAgLy8gQ29udGVudA0KICAgICAgICB0ci5hcHBlbmRDaGlsZCh0aGlzLmNyZWF0ZUNvbnRlbnQoZWxlbWVudCkpOw0KICAgICAgICB0aGlzLnRhYmxlLmFwcGVuZENoaWxkKHRyKTsNCiAgICB9DQogICAgY3JlYXRlSW5wdXQodHlwZSwgbmFtZSwgdmFsdWUpIHsNCiAgICAgICAgbGV0IGlucHV0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiSU5QVVQiKTsNCiAgICAgICAgaWYgKHZhbHVlID09IHVuZGVmaW5lZCkgew0KICAgICAgICAgICAgdmFsdWUgPSAiIjsNCiAgICAgICAgfQ0KICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInR5cGUiLCB0eXBlKTsNCiAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJuYW1lIiwgbmFtZSk7DQogICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgidmFsdWUiLCB2YWx1ZSk7DQogICAgICAgIHJldHVybiBpbnB1dDsNCiAgICB9DQogICAgY3JlYXRlQ2hlY2tib3gobmFtZSkgew0KICAgICAgICBsZXQgaW5wdXQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJJTlBVVCIpOw0KICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInR5cGUiLCAiY2hlY2tib3giKTsNCiAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJuYW1lIiwgbmFtZSk7DQogICAgICAgIHJldHVybiBpbnB1dDsNCiAgICB9DQogICAgLy8gQ3JlYXRlcyBhIHNlbGVjdGlvbiBvZiBtdWx0aXBsZSBvcHRpb25zIHZhbHVlcyB3aXRoIHRleHQgZGVzY3JpcHRpb25zDQogICAgY3JlYXRlU2VsZWN0KHRleHQsIHZhbHVlcywgc2V0LCBkYktleSkgew0KICAgICAgICBsZXQgc2VsZWN0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiU0VMRUNUIik7DQogICAgICAgIHNlbGVjdC5zZXRBdHRyaWJ1dGUoIm5hbWUiLCBkYktleSk7DQogICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGV4dC5sZW5ndGg7IGkrKykgew0KICAgICAgICAgICAgbGV0IG9wdGlvbiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIk9QVElPTiIpOw0KICAgICAgICAgICAgb3B0aW9uLnNldEF0dHJpYnV0ZSgidmFsdWUiLCB2YWx1ZXNbaV0pOw0KICAgICAgICAgICAgb3B0aW9uLmlubmVyVGV4dCA9IHRleHRbaV07DQogICAgICAgICAgICBzZWxlY3QuYXBwZW5kQ2hpbGQob3B0aW9uKTsNCiAgICAgICAgfQ0KICAgICAgICBpZiAoc2V0ICE9ICIiKSB7DQogICAgICAgICAgICBzZWxlY3QudmFsdWUgPSBzZXQ7DQogICAgICAgIH0NCiAgICAgICAgaWYgKHNldCA9PSB1bmRlZmluZWQpIHsNCiAgICAgICAgICAgIHNlbGVjdC52YWx1ZSA9IHZhbHVlc1swXTsNCiAgICAgICAgfQ0KICAgICAgICByZXR1cm4gc2VsZWN0Ow0KICAgIH0NCiAgICBzZWxlY3RPcHRpb24oc2VsZWN0LCB2YWx1ZSkgew0KICAgICAgICAvL3NlbGVjdC5zZWxlY3RlZE9wdGlvbnMgPSB2YWx1ZQ0KICAgICAgICBsZXQgcyA9IHNlbGVjdDsNCiAgICAgICAgcy5vcHRpb25zW3Muc2VsZWN0ZWRJbmRleF0udmFsdWUgPSB2YWx1ZTsNCiAgICAgICAgcmV0dXJuIHNlbGVjdDsNCiAgICB9DQogICAgZGVzY3JpcHRpb24odmFsdWUpIHsNCiAgICAgICAgbGV0IHRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVFIiKTsNCiAgICAgICAgbGV0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgbGV0IHNwYW4gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJQUkUiKTsNCiAgICAgICAgc3Bhbi5pbm5lckhUTUwgPSB2YWx1ZTsNCiAgICAgICAgdHIuYXBwZW5kQ2hpbGQodGQpOw0KICAgICAgICB0ci5hcHBlbmRDaGlsZCh0aGlzLmNyZWF0ZUNvbnRlbnQoc3BhbikpOw0KICAgICAgICB0aGlzLnRhYmxlLmFwcGVuZENoaWxkKHRyKTsNCiAgICB9DQogICAgLy8gSW50ZXJhY3Rpb24NCiAgICBhZGRJbnRlcmFjdGlvbihlbGVtZW50KSB7DQogICAgICAgIGxldCBpbnRlcmFjdGlvbiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJwb3B1cC1pbnRlcmFjdGlvbiIpOw0KICAgICAgICBpbnRlcmFjdGlvbi5hcHBlbmRDaGlsZChlbGVtZW50KTsNCiAgICB9DQp9DQpmdW5jdGlvbiBvcGVuUG9wVXAoZGF0YVR5cGUsIGVsZW1lbnQpIHsNCiAgICBsZXQgZGF0YSA9IHt9Ow0KICAgIGxldCBpZDsNCiAgICBzd2l0Y2ggKGVsZW1lbnQpIHsNCiAgICAgICAgY2FzZSB1bmRlZmluZWQ6DQogICAgICAgICAgICBzd2l0Y2ggKGRhdGFUeXBlKSB7DQogICAgICAgICAgICAgICAgY2FzZSAiZ3JvdXAtdGl0bGUiOg0KICAgICAgICAgICAgICAgICAgICBpZiAoaWQgPT0gdW5kZWZpbmVkKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBpZCA9IC0xOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIGRhdGEgPSBnZXRMb2NhbERhdGEoImZpbHRlciIsIGlkKTsNCiAgICAgICAgICAgICAgICAgICAgZGF0YVsidHlwZSJdID0gImdyb3VwLXRpdGxlIjsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAiY3VzdG9tLWZpbHRlciI6DQogICAgICAgICAgICAgICAgICAgIGlmIChpZCA9PSB1bmRlZmluZWQpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGlkID0gLTE7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgZGF0YSA9IGdldExvY2FsRGF0YSgiZmlsdGVyIiwgaWQpOw0KICAgICAgICAgICAgICAgICAgICBkYXRhWyJ0eXBlIl0gPSAiY3VzdG9tLWZpbHRlciI7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICAgICAgICAgIGRhdGFbImlkLnByb3ZpZGVyIl0gPSAiLSI7DQogICAgICAgICAgICAgICAgICAgIGRhdGFbInR5cGUiXSA9IGRhdGFUeXBlOw0KICAgICAgICAgICAgICAgICAgICBpZCA9ICItIjsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgIGlkID0gZWxlbWVudC5pZDsNCiAgICAgICAgICAgIGRhdGEgPSBnZXRMb2NhbERhdGEoZGF0YVR5cGUsIGlkKTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgIH0NCiAgICBsZXQgY29udGVudCA9IG5ldyBQb3B1cENvbnRlbnQoKTsNCiAgICBzd2l0Y2ggKGRhdGFUeXBlKSB7DQogICAgICAgIGNhc2UgInBsYXlsaXN0IjoNCiAgICAgICAgICAgIGNvbnRlbnQuY3JlYXRlSGVhZGxpbmUoInt7LnBsYXlsaXN0LnBsYXlsaXN0VHlwZS50aXRsZX19Iik7DQogICAgICAgICAgICAvLyBUeXBlDQogICAgICAgICAgICB2YXIgdGV4dCA9IFsiTTNVIiwgIkhESG9tZVJ1biJdOw0KICAgICAgICAgICAgdmFyIHZhbHVlcyA9IFsiamF2YXNjcmlwdDogb3BlblBvcFVwKCdtM3UnKSIsICJqYXZhc2NyaXB0OiBvcGVuUG9wVXAoJ2hkaHInKSJdOw0KICAgICAgICAgICAgdmFyIHNlbGVjdCA9IGNvbnRlbnQuY3JlYXRlU2VsZWN0KHRleHQsIHZhbHVlcywgIiIsICJ0eXBlIik7DQogICAgICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJpZCIsICJ0eXBlIik7DQogICAgICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICdqYXZhc2NyaXB0OiBjaGFuZ2VCdXR0b25BY3Rpb24odGhpcywgIm5leHQiLCAib25jbGljayIpJyk7IC8vIGNoYW5nZUJ1dHRvbkFjdGlvbg0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnBsYXlsaXN0LnR5cGUudGl0bGV9fSIsIHNlbGVjdCk7DQogICAgICAgICAgICAvLyBJbnRlcmFjdGlvbg0KICAgICAgICAgICAgY29udGVudC5jcmVhdGVJbnRlcmFjdGlvbigpOw0KICAgICAgICAgICAgLy8gQWJvcnQNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJjYW5jZWwiLCAie3suYnV0dG9uLmNhbmNlbH19Iik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogc2hvd0VsZW1lbnQoInBvcHVwIiwgZmFsc2UpOycpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICAvLyBOZXh0DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAibmV4dCIsICJ7ey5idXR0b24ubmV4dH19Iik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJtM3UiKScpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJpZCIsICduZXh0Jyk7DQogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJtM3UiOg0KICAgICAgICAgICAgY29udGVudC5jcmVhdGVIZWFkbGluZShkYXRhVHlwZSk7DQogICAgICAgICAgICAvLyBOYW1lDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAibmFtZSI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3sucGxheWxpc3QubmFtZS5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sucGxheWxpc3QubmFtZS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgLy8gRGVzY3JpcHRpb24NCiAgICAgICAgICAgIHZhciBkYktleSA9ICJkZXNjcmlwdGlvbiI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3sucGxheWxpc3QuZGVzY3JpcHRpb24ucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnBsYXlsaXN0LmRlc2NyaXB0aW9uLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBVUkwNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJmaWxlLnNvdXJjZSI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3sucGxheWxpc3QuZmlsZU0zVS5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sucGxheWxpc3QuZmlsZU0zVS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgLy8gVHVuZXINCiAgICAgICAgICAgIGlmIChTRVJWRVJbInNldHRpbmdzIl1bImJ1ZmZlciJdICE9ICItIikgew0KICAgICAgICAgICAgICAgIHZhciB0ZXh0ID0gW107DQogICAgICAgICAgICAgICAgdmFyIHZhbHVlcyA9IFtdOw0KICAgICAgICAgICAgICAgIGZvciAodmFyIGkgPSAxOyBpIDw9IDEwMDsgaSsrKSB7DQogICAgICAgICAgICAgICAgICAgIHRleHQucHVzaChpLnRvU3RyaW5nKCkpOw0KICAgICAgICAgICAgICAgICAgICB2YWx1ZXMucHVzaChpLnRvU3RyaW5nKCkpOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB2YXIgZGJLZXkgPSAidHVuZXIiOw0KICAgICAgICAgICAgICAgIHZhciBzZWxlY3QgPSBjb250ZW50LmNyZWF0ZVNlbGVjdCh0ZXh0LCB2YWx1ZXMsIGRhdGFbZGJLZXldLCBkYktleSk7DQogICAgICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25mb2N1cyIsICJqYXZhc2NyaXB0OiByZXR1cm47Iik7DQogICAgICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnBsYXlsaXN0LnR1bmVyLnRpdGxlfX0iLCBzZWxlY3QpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgZWxzZSB7DQogICAgICAgICAgICAgICAgdmFyIGRiS2V5ID0gInR1bmVyIjsNCiAgICAgICAgICAgICAgICBpZiAoZGF0YVtkYktleV0gPT0gdW5kZWZpbmVkKSB7DQogICAgICAgICAgICAgICAgICAgIGRhdGFbZGJLZXldID0gMTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJyZWFkb25seSIsICJ0cnVlIik7DQogICAgICAgICAgICAgICAgaW5wdXQuY2xhc3NOYW1lID0gIm5vdEF2YWlsYWJsZSI7DQogICAgICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnBsYXlsaXN0LnR1bmVyLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBjb250ZW50LmRlc2NyaXB0aW9uKCJ7ey5wbGF5bGlzdC50dW5lci5kZXNjcmlwdGlvbn19Iik7DQogICAgICAgICAgICAvLyBJbnRlcmF0aW9uDQogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUludGVyYWN0aW9uKCk7DQogICAgICAgICAgICAvLyBEZWxldGUNCiAgICAgICAgICAgIGlmIChkYXRhWyJpZC5wcm92aWRlciJdICE9ICItIikgew0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJkZWxldGUiLCAie3suYnV0dG9uLmRlbGV0ZX19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuY2xhc3NOYW1lID0gImRlbGV0ZSI7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoIm0zdSIsICInICsgaWQgKyAnIiwgdHJ1ZSwgMCknKTsNCiAgICAgICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJiYWNrIiwgInt7LmJ1dHRvbi5iYWNrfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJwbGF5bGlzdCIpJyk7DQogICAgICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICAvLyBBYm9ydA0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImNhbmNlbCIsICJ7ey5idXR0b24uY2FuY2VsfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBzaG93RWxlbWVudCgicG9wdXAiLCBmYWxzZSk7Jyk7DQogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIC8vIFVwZGF0ZQ0KICAgICAgICAgICAgaWYgKGRhdGFbImlkLnByb3ZpZGVyIl0gIT0gIi0iKSB7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgInVwZGF0ZSIsICJ7ey5idXR0b24udXBkYXRlfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogc2F2ZVBvcHVwRGF0YSgibTN1IiwgIicgKyBpZCArICciLCBmYWxzZSwgMSknKTsNCiAgICAgICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIC8vIFNhdmUNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJzYXZlIiwgInt7LmJ1dHRvbi5zYXZlfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBzYXZlUG9wdXBEYXRhKCJtM3UiLCAiJyArIGlkICsgJyIsIGZhbHNlLCAwKScpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSAiaGRociI6DQogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUhlYWRsaW5lKGRhdGFUeXBlKTsNCiAgICAgICAgICAgIC8vIE5hbWUNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJuYW1lIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5wbGF5bGlzdC5uYW1lLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5wbGF5bGlzdC5uYW1lLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBEZXNjcmlwdGlvbg0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gImRlc2NyaXB0aW9uIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5wbGF5bGlzdC5kZXNjcmlwdGlvbi5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sucGxheWxpc3QuZGVzY3JpcHRpb24ucGxhY2Vob2xkZXJ9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIFVSTA0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gImZpbGUuc291cmNlIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5wbGF5bGlzdC5maWxlSERIUi5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sucGxheWxpc3QuZmlsZUhESFIudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIFR1bmVyDQogICAgICAgICAgICBpZiAoU0VSVkVSWyJzZXR0aW5ncyJdWyJidWZmZXIiXSAhPSAiLSIpIHsNCiAgICAgICAgICAgICAgICB2YXIgdGV4dCA9IFtdOw0KICAgICAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBbXTsNCiAgICAgICAgICAgICAgICBmb3IgKHZhciBpID0gMTsgaSA8PSAxMDA7IGkrKykgew0KICAgICAgICAgICAgICAgICAgICB0ZXh0LnB1c2goaS50b1N0cmluZygpKTsNCiAgICAgICAgICAgICAgICAgICAgdmFsdWVzLnB1c2goaS50b1N0cmluZygpKTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgdmFyIGRiS2V5ID0gInR1bmVyIjsNCiAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCBkYXRhW2RiS2V5XSwgZGJLZXkpOw0KICAgICAgICAgICAgICAgIHNlbGVjdC5zZXRBdHRyaWJ1dGUoIm9uZm9jdXMiLCAiamF2YXNjcmlwdDogcmV0dXJuOyIpOw0KICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5wbGF5bGlzdC50dW5lci50aXRsZX19Iiwgc2VsZWN0KTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgICAgIHZhciBkYktleSA9ICJ0dW5lciI7DQogICAgICAgICAgICAgICAgaWYgKGRhdGFbZGJLZXldID09IHVuZGVmaW5lZCkgew0KICAgICAgICAgICAgICAgICAgICBkYXRhW2RiS2V5XSA9IDE7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicmVhZG9ubHkiLCAidHJ1ZSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LmNsYXNzTmFtZSA9ICJub3RBdmFpbGFibGUiOw0KICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5wbGF5bGlzdC50dW5lci50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgY29udGVudC5kZXNjcmlwdGlvbigie3sucGxheWxpc3QudHVuZXIuZGVzY3JpcHRpb259fSIpOw0KICAgICAgICAgICAgLy8gSW50ZXJhY3Rpb24NCiAgICAgICAgICAgIGNvbnRlbnQuY3JlYXRlSW50ZXJhY3Rpb24oKTsNCiAgICAgICAgICAgIC8vIERlbGV0ZQ0KICAgICAgICAgICAgaWYgKGRhdGFbImlkLnByb3ZpZGVyIl0gIT0gIi0iKSB7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImRlbGV0ZSIsICJ7ey5idXR0b24uZGVsZXRlfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogc2F2ZVBvcHVwRGF0YSgiaGRociIsICInICsgaWQgKyAnIiwgdHJ1ZSwgMCknKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5jbGFzc05hbWUgPSAiZGVsZXRlIjsNCiAgICAgICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJiYWNrIiwgInt7LmJ1dHRvbi5iYWNrfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJwbGF5bGlzdCIpJyk7DQogICAgICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICAvLyBBYm9ydA0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImNhbmNlbCIsICJ7ey5idXR0b24uY2FuY2VsfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBzaG93RWxlbWVudCgicG9wdXAiLCBmYWxzZSk7Jyk7DQogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIC8vIFVwZGF0ZQ0KICAgICAgICAgICAgaWYgKGRhdGFbImlkLnByb3ZpZGVyIl0gIT0gIi0iKSB7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgInVwZGF0ZSIsICJ7ey5idXR0b24udXBkYXRlfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogc2F2ZVBvcHVwRGF0YSgiaGRociIsICInICsgaWQgKyAnIiwgZmFsc2UsIDEpJyk7DQogICAgICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICAvLyBTYXZlDQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAic2F2ZSIsICJ7ey5idXR0b24uc2F2ZX19Iik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogc2F2ZVBvcHVwRGF0YSgiaGRociIsICInICsgaWQgKyAnIiwgZmFsc2UsIDApJyk7DQogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJmaWx0ZXIiOg0KICAgICAgICAgICAgY29udGVudC5jcmVhdGVIZWFkbGluZShkYXRhVHlwZSk7DQogICAgICAgICAgICAvLyBUeXBlDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAidHlwZSI7DQogICAgICAgICAgICB2YXIgdGV4dCA9IFsiTTNVOiAiICsgInt7LmZpbHRlci50eXBlLmdyb3VwVGl0bGV9fSIsICJ4VGVWZTogIiArICJ7ey5maWx0ZXIudHlwZS5jdXN0b21GaWx0ZXJ9fSJdOw0KICAgICAgICAgICAgdmFyIHZhbHVlcyA9IFsiamF2YXNjcmlwdDogb3BlblBvcFVwKCdncm91cC10aXRsZScpIiwgImphdmFzY3JpcHQ6IG9wZW5Qb3BVcCgnY3VzdG9tLWZpbHRlcicpIl07DQogICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCAiamF2YXNjcmlwdDogb3BlblBvcFVwKCdncm91cC10aXRsZScpIiwgZGJLZXkpOw0KICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgiaWQiLCBpZCk7DQogICAgICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICdqYXZhc2NyaXB0OiBjaGFuZ2VCdXR0b25BY3Rpb24odGhpcywgIm5leHQiLCAib25jbGljayIpOycpOyAvLyBjaGFuZ2VCdXR0b25BY3Rpb24NCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5maWx0ZXIudHlwZS50aXRsZX19Iiwgc2VsZWN0KTsNCiAgICAgICAgICAgIC8vIEludGVyYWN0aW9uDQogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUludGVyYWN0aW9uKCk7DQogICAgICAgICAgICAvLyBBYm9ydA0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImNhbmNlbCIsICJ7ey5idXR0b24uY2FuY2VsfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBzaG93RWxlbWVudCgicG9wdXAiLCBmYWxzZSk7Jyk7DQogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIC8vIE5leHQNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJuZXh0IiwgInt7LmJ1dHRvbi5uZXh0fX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoImdyb3VwLXRpdGxlIiknKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgiaWQiLCAnbmV4dCcpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSAiY3VzdG9tLWZpbHRlciI6DQogICAgICAgIGNhc2UgImdyb3VwLXRpdGxlIjoNCiAgICAgICAgICAgIHN3aXRjaCAoZGF0YVR5cGUpIHsNCiAgICAgICAgICAgICAgICBjYXNlICJjdXN0b20tZmlsdGVyIjoNCiAgICAgICAgICAgICAgICAgICAgY29udGVudC5jcmVhdGVIZWFkbGluZSgie3suZmlsdGVyLmN1c3RvbX19IiArICIgRmlsdGVyIik7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgImdyb3VwLXRpdGxlIjoNCiAgICAgICAgICAgICAgICAgICAgY29udGVudC5jcmVhdGVIZWFkbGluZSgie3suZmlsdGVyLmdyb3VwfX0iICsgIiBGaWx0ZXIiKTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICB9DQogICAgICAgICAgICAvLyBOYW1lICAgICAgDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAibmFtZSI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3suZmlsdGVyLm5hbWUucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LmZpbHRlci5uYW1lLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBEZXNjcmlwdGlvbg0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gImRlc2NyaXB0aW9uIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5maWx0ZXIuZGVzY3JpcHRpb24ucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LmZpbHRlci5kZXNjcmlwdGlvbi50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgLy8gVHlwZQ0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gInR5cGUiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiaGlkZGVuIiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCIiLCBpbnB1dCk7DQogICAgICAgICAgICB2YXIgZmlsdGVyVHlwZSA9IGRhdGFbZGJLZXldOw0KICAgICAgICAgICAgc3dpdGNoIChmaWx0ZXJUeXBlKSB7DQogICAgICAgICAgICAgICAgY2FzZSAiY3VzdG9tLWZpbHRlciI6DQogICAgICAgICAgICAgICAgICAgIC8vIENhc2Ugc2Vuc2l0aXZlDQogICAgICAgICAgICAgICAgICAgIHZhciBkYktleSA9ICJjYXNlU2Vuc2l0aXZlIjsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChkYktleSk7DQogICAgICAgICAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhW2RiS2V5XTsNCiAgICAgICAgICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LmZpbHRlci5jYXNlU2Vuc2l0aXZlLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAgICAgICAgIC8vIEZpbHRlciBSdWxlIChDdXN0b20pDQogICAgICAgICAgICAgICAgICAgIHZhciBkYktleSA9ICJmaWx0ZXIiOw0KICAgICAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5maWx0ZXIuZmlsdGVyUnVsZS5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5maWx0ZXIuZmlsdGVyUnVsZS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgICAgICAgICAvLyBTdGFydGluZyBDaGFubmVsIE51bWJlciBNYXBwaW5nDQogICAgICAgICAgICAgICAgICAgIHZhciBkYktleSA9ICJzdGFydGluZ0NoYW5uZWwiOw0KICAgICAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5maWx0ZXIuc3RhcnRpbmdDaGFubmVsLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LmZpbHRlci5zdGFydGluZ0NoYW5uZWwudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAiZ3JvdXAtdGl0bGUiOg0KICAgICAgICAgICAgICAgICAgICAvL2FsZXJ0KGRiS2V5ICsgIiAiICsgZmlsdGVyVHlwZSkNCiAgICAgICAgICAgICAgICAgICAgLy8gRmlsdGVyIGJhc2VkIG9uIHRoZSBncm91cHMgaW4gdGhlIE0zVQ0KICAgICAgICAgICAgICAgICAgICB2YXIgZGJLZXkgPSAiZmlsdGVyIjsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGdyb3Vwc00zVSA9IGdldExvY2FsRGF0YSgibTN1R3JvdXBzIiwgIiIpOw0KICAgICAgICAgICAgICAgICAgICB2YXIgdGV4dCA9IGdyb3Vwc00zVVsidGV4dCJdOw0KICAgICAgICAgICAgICAgICAgICB2YXIgdmFsdWVzID0gZ3JvdXBzTTNVWyJ2YWx1ZSJdOw0KICAgICAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCBkYXRhW2RiS2V5XSwgZGJLZXkpOw0KICAgICAgICAgICAgICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3suZmlsdGVyLmZpbHRlckdyb3VwLnRpdGxlfX0iLCBzZWxlY3QpOw0KICAgICAgICAgICAgICAgICAgICBjb250ZW50LmRlc2NyaXB0aW9uKCJ7ey5maWx0ZXIuZmlsdGVyR3JvdXAuZGVzY3JpcHRpb259fSIpOw0KICAgICAgICAgICAgICAgICAgICAvLyBDYXNlIHNlbnNldGl2ZQ0KICAgICAgICAgICAgICAgICAgICB2YXIgZGJLZXkgPSAiY2FzZVNlbnNpdGl2ZSI7DQogICAgICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goZGJLZXkpOw0KICAgICAgICAgICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YVtkYktleV07DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5maWx0ZXIuY2FzZVNlbnNpdGl2ZS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgICAgICAgICB2YXIgZGJLZXkgPSAiaW5jbHVkZSI7DQogICAgICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LmZpbHRlci5pbmNsdWRlLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LmZpbHRlci5pbmNsdWRlLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuZGVzY3JpcHRpb24oInt7LmZpbHRlci5pbmNsdWRlLmRlc2NyaXB0aW9ufX0iKTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGRiS2V5ID0gImV4Y2x1ZGUiOw0KICAgICAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5maWx0ZXIuZXhjbHVkZS5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5maWx0ZXIuZXhjbHVkZS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgICAgICAgICBjb250ZW50LmRlc2NyaXB0aW9uKCJ7ey5maWx0ZXIuZXhjbHVkZS5kZXNjcmlwdGlvbn19Iik7DQogICAgICAgICAgICAgICAgICAgIC8vIFByZXNlcnZlIE0zVSBQbGF5bGlzdCBDaGFubmVsIE1hcHBpbmcNCiAgICAgICAgICAgICAgICAgICAgdmFyIGRiS2V5ID0gInByZXNlcnZlTWFwcGluZyI7DQogICAgICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goZGJLZXkpOw0KICAgICAgICAgICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YVtkYktleV07DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5maWx0ZXIucHJlc2VydmVNYXBwaW5nLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAgICAgICAgIC8vIFN0YXJ0aW5nIENoYW5uZWwgTnVtYmVyIE1hcHBpbmcNCiAgICAgICAgICAgICAgICAgICAgdmFyIGRiS2V5ID0gInN0YXJ0aW5nQ2hhbm5lbCI7DQogICAgICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LmZpbHRlci5zdGFydGluZ0NoYW5uZWwucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3suZmlsdGVyLnN0YXJ0aW5nQ2hhbm5lbC50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBkZWZhdWx0Og0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIC8vIEludGVyYWN0aW9uDQogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUludGVyYWN0aW9uKCk7DQogICAgICAgICAgICAvLyBEZWxldGUNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJkZWxldGUiLCAie3suYnV0dG9uLmRlbGV0ZX19Iik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogc2F2ZVBvcHVwRGF0YSgiZmlsdGVyIiwgIicgKyBpZCArICciLCB0cnVlLCAwKScpOw0KICAgICAgICAgICAgaW5wdXQuY2xhc3NOYW1lID0gImRlbGV0ZSI7DQogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIC8vIEFib3J0DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAiY2FuY2VsIiwgInt7LmJ1dHRvbi5jYW5jZWx9fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IHNob3dFbGVtZW50KCJwb3B1cCIsIGZhbHNlKTsnKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgLy8gU2F2ZQ0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgInNhdmUiLCAie3suYnV0dG9uLnNhdmV9fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoImZpbHRlciIsICInICsgaWQgKyAnIiwgZmFsc2UsIDApJyk7DQogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJ4bWx0diI6DQogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUhlYWRsaW5lKGRhdGFUeXBlKTsNCiAgICAgICAgICAgIC8vIE5hbWUNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJuYW1lIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey54bWx0di5uYW1lLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey54bWx0di5uYW1lLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBEZXNjcmlwdGlvbg0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gImRlc2NyaXB0aW9uIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey54bWx0di5kZXNjcmlwdGlvbi5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sueG1sdHYuZGVzY3JpcHRpb24udGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIFVSTA0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gImZpbGUuc291cmNlIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey54bWx0di5maWxlWE1MVFYucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnhtbHR2LmZpbGVYTUxUVi50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgLy8gSW50ZXJhY3Rpb24NCiAgICAgICAgICAgIGNvbnRlbnQuY3JlYXRlSW50ZXJhY3Rpb24oKTsNCiAgICAgICAgICAgIC8vIERlbGV0ZQ0KICAgICAgICAgICAgaWYgKGRhdGFbImlkLnByb3ZpZGVyIl0gIT0gIi0iKSB7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImRlbGV0ZSIsICJ7ey5idXR0b24uZGVsZXRlfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogc2F2ZVBvcHVwRGF0YSgieG1sdHYiLCAiJyArIGlkICsgJyIsIHRydWUsIDApJyk7DQogICAgICAgICAgICAgICAgaW5wdXQuY2xhc3NOYW1lID0gImRlbGV0ZSI7DQogICAgICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICAvLyBBYm9ydA0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImNhbmNlbCIsICJ7ey5idXR0b24uY2FuY2VsfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBzaG93RWxlbWVudCgicG9wdXAiLCBmYWxzZSk7Jyk7DQogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIC8vIFVwZGF0ZQ0KICAgICAgICAgICAgaWYgKGRhdGFbImlkLnByb3ZpZGVyIl0gIT0gIi0iKSB7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgInVwZGF0ZSIsICJ7ey5idXR0b24udXBkYXRlfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogc2F2ZVBvcHVwRGF0YSgieG1sdHYiLCAiJyArIGlkICsgJyIsIGZhbHNlLCAxKScpOw0KICAgICAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgLy8gU2F2ZQ0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgInNhdmUiLCAie3suYnV0dG9uLnNhdmV9fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoInhtbHR2IiwgIicgKyBpZCArICciLCBmYWxzZSwgMCknKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGNhc2UgInVzZXJzIjoNCiAgICAgICAgICAgIGNvbnRlbnQuY3JlYXRlSGVhZGxpbmUoInt7Lm1haW5NZW51Lml0ZW0udXNlcnN9fSIpOw0KICAgICAgICAgICAgLy8gVXNlciBuYW1lDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAidXNlcm5hbWUiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnVzZXJzLnVzZXJuYW1lLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey51c2Vycy51c2VybmFtZS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgLy8gTmV3IFBhcnNzd29yZA0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gInBhc3N3b3JkIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInBhc3N3b3JkIiwgZGJLZXksICIiKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3sudXNlcnMucGFzc3dvcmQucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnVzZXJzLnBhc3N3b3JkLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBDb25maXJtYXRpb24NCiAgICAgICAgICAgIHZhciBkYktleSA9ICJjb25maXJtIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInBhc3N3b3JkIiwgZGJLZXksICIiKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3sudXNlcnMuY29uZmlybS5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sudXNlcnMuY29uZmlybS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgLy8gQXV0aGVudGljYXRpb24gV0VCDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAiYXV0aGVudGljYXRpb24ud2ViIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goZGJLZXkpOw0KICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGFbZGJLZXldOw0KICAgICAgICAgICAgaWYgKGRhdGFbImRlZmF1bHRVc2VyIl0gPT0gdHJ1ZSkgew0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICJqYXZhc2NyaXB0OiByZXR1cm4gZmFsc2UiKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey51c2Vycy53ZWIudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIEF1dGhlbnRpY2F0aW9uIFBNUw0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gImF1dGhlbnRpY2F0aW9uLnBtcyI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KGRiS2V5KTsNCiAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhW2RiS2V5XTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey51c2Vycy5wbXMudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIEF1dGhlbnRpY2F0aW9uIE0zVQ0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gImF1dGhlbnRpY2F0aW9uLm0zdSI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KGRiS2V5KTsNCiAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhW2RiS2V5XTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey51c2Vycy5tM3UudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIEF1dGhlbnRpY2F0aW9uIFhNTA0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gImF1dGhlbnRpY2F0aW9uLnhtbCI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KGRiS2V5KTsNCiAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhW2RiS2V5XTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey51c2Vycy54bWwudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIEF1dGhlbnRpY2F0aW9uIEFQSQ0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gImF1dGhlbnRpY2F0aW9uLmFwaSI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KGRiS2V5KTsNCiAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhW2RiS2V5XTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey51c2Vycy5hcGkudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIEludGVyYWN0aW9uDQogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUludGVyYWN0aW9uKCk7DQogICAgICAgICAgICAvLyBEZWxldGUNCiAgICAgICAgICAgIGlmIChkYXRhWyJkZWZhdWx0VXNlciJdICE9IHRydWUgJiYgaWQgIT0gIi0iKSB7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImRlbGV0ZSIsICJ7ey5idXR0b24uZGVsZXRlfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5jbGFzc05hbWUgPSAiZGVsZXRlIjsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogc2F2ZVBvcHVwRGF0YSgiJyArIGRhdGFUeXBlICsgJyIsICInICsgaWQgKyAnIiwgdHJ1ZSwgMCknKTsNCiAgICAgICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIC8vIEFib3J0DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAiY2FuY2VsIiwgInt7LmJ1dHRvbi5jYW5jZWx9fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IHNob3dFbGVtZW50KCJwb3B1cCIsIGZhbHNlKTsnKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgLy8gU2F2ZQ0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgInNhdmUiLCAie3suYnV0dG9uLnNhdmV9fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoIicgKyBkYXRhVHlwZSArICciLCAiJyArIGlkICsgJyIsICJmYWxzZSIpOycpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSAibWFwcGluZyI6DQogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUhlYWRsaW5lKCJ7ey5tYWluTWVudS5pdGVtLm1hcHBpbmd9fSIpOw0KICAgICAgICAgICAgLy8gQWN0aXZlDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAieC1hY3RpdmUiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChkYktleSk7DQogICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YVtkYktleV07DQogICAgICAgICAgICBpbnB1dC5pZCA9ICJhY3RpdmUiOw0KICAgICAgICAgICAgLy9pbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIikNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdG9nZ2xlQ2hhbm5lbFN0YXR1cygnIiArIGlkICsgIicsIHRoaXMpIik7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3subWFwcGluZy5hY3RpdmUudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIENoYW5uZWwgbmFtZQ0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gIngtbmFtZSI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgIGlmIChCVUxLX0VESVQgPT0gdHJ1ZSkgew0KICAgICAgICAgICAgICAgIGlucHV0LnN0eWxlLmJvcmRlciA9ICJzb2xpZCAxcHggcmVkIjsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInJlYWRvbmx5IiwgInRydWUiKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5tYXBwaW5nLmNoYW5uZWxOYW1lLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICBjb250ZW50LmRlc2NyaXB0aW9uKGRhdGFbIm5hbWUiXSk7DQogICAgICAgICAgICAvLyBEZXNjcmlwdGlvbg0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gIngtZGVzY3JpcHRpb24iOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7Lm1hcHBpbmcuZGVzY3JpcHRpb24ucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7Lm1hcHBpbmcuZGVzY3JpcHRpb24udGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIFVwZGF0ZSB0aGUgY2hhbm5lbCB4LW5hbWUNCiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCJfdXVpZC5rZXkiKSkgew0KICAgICAgICAgICAgICAgIGlmIChkYXRhWyJfdXVpZC5rZXkiXSAhPSAiIikgew0KICAgICAgICAgICAgICAgICAgICB2YXIgZGJLZXkgPSAieC11cGRhdGUtY2hhbm5lbC1uYW1lIjsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChkYktleSk7DQogICAgICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGFbZGJLZXldOw0KICAgICAgICAgICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3subWFwcGluZy51cGRhdGVDaGFubmVsTmFtZS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIC8vIENoYW5uZWwgbmFtZSByZWdleCBmb3IgdXBkYXRpbmcgdGhlIGNoYW5uZWwgbmFtZQ0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gInVwZGF0ZS1jaGFubmVsLW5hbWUtcmVnZXgiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7Lm1hcHBpbmcudXBkYXRlQ2hhbm5lbE5hbWVSZWdleC5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3subWFwcGluZy51cGRhdGVDaGFubmVsTmFtZVJlZ2V4LnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICBjb250ZW50LmRlc2NyaXB0aW9uKCJ7ey5tYXBwaW5nLnVwZGF0ZUNoYW5uZWxOYW1lUmVnZXguZGVzY3JpcHRpb259fSIpOw0KICAgICAgICAgICAgLy8gQ2hhbm5lbCBncm91cCByZWdleCBmb3IgdXBkYXRpbmcgdGhlIGNoYW5uZWwgbmFtZQ0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gInVwZGF0ZS1jaGFubmVsLW5hbWUtYnktZ3JvdXAtcmVnZXgiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7Lm1hcHBpbmcudXBkYXRlQ2hhbm5lbE5hbWVCeUdyb3VwUmVnZXgucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7Lm1hcHBpbmcudXBkYXRlQ2hhbm5lbE5hbWVCeUdyb3VwUmVnZXgudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIGNvbnRlbnQuZGVzY3JpcHRpb24oInt7Lm1hcHBpbmcudXBkYXRlQ2hhbm5lbE5hbWVCeUdyb3VwUmVnZXguZGVzY3JpcHRpb259fSIpOw0KICAgICAgICAgICAgLy8gTG9nbyBVUkwgKENoYW5uZWwpIA0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gInR2Zy1sb2dvIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJpZCIsICJjaGFubmVsLWljb24iKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5tYXBwaW5nLmNoYW5uZWxMb2dvLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBDaGFubmVsIGxvZ28gdXBkYXRlDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAieC11cGRhdGUtY2hhbm5lbC1pY29uIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goZGJLZXkpOw0KICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGFbZGJLZXldOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJpZCIsICJ1cGRhdGUtaWNvbiIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJzsgY2hhbmdlQ2hhbm5lbExvZ28oJyIgKyBpZCArICInKTsiKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5tYXBwaW5nLnVwZGF0ZUNoYW5uZWxMb2dvLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBFeHBhbmQgRVBHIGNhdGVnb3J5DQogICAgICAgICAgICB2YXIgZGJLZXkgPSAieC1jYXRlZ29yeSI7DQogICAgICAgICAgICB2YXIgdGV4dCA9IFsiLSIsICJLaWRzIChFbWJ5IG9ubHkpIiwgIk5ld3MiLCAiTW92aWUiLCAiU2VyaWVzIiwgIlNwb3J0cyJdOw0KICAgICAgICAgICAgdmFyIHZhbHVlcyA9IFsiIiwgIktpZHMiLCAiTmV3cyIsICJNb3ZpZSIsICJTZXJpZXMiLCAiU3BvcnRzIl07DQogICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCBkYXRhW2RiS2V5XSwgZGJLZXkpOw0KICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5tYXBwaW5nLmVwZ0NhdGVnb3J5LnRpdGxlfX0iLCBzZWxlY3QpOw0KICAgICAgICAgICAgLy8gTTNVIGdyb3VwIHRpdGxlDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAieC1ncm91cC10aXRsZSI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgIGlucHV0LmRhdGFzZXQub2xkVmFsdWUgPSBkYXRhW2RiS2V5XTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5tYXBwaW5nLm0zdUdyb3VwVGl0bGUudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIGlmIChkYXRhWyJncm91cC10aXRsZSJdICE9IHVuZGVmaW5lZCkgew0KICAgICAgICAgICAgICAgIGNvbnRlbnQuZGVzY3JpcHRpb24oZGF0YVsiZ3JvdXAtdGl0bGUiXSk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBpZiAoZGF0YVsieC11cGRhdGUtY2hhbm5lbC1ncm91cCJdID09IHRydWUpIHsNCiAgICAgICAgICAgICAgICBpbnB1dC5kaXNhYmxlZCA9IHRydWU7DQogICAgICAgICAgICB9DQogICAgICAgICAgICAvLyBVcGRhdGUgY2hhbm5lbCBncm91cCBjaGVja2JveA0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gIngtdXBkYXRlLWNoYW5uZWwtZ3JvdXAiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChkYktleSk7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRvZ2dsZUdyb3VwVXBkYXRlQ2IoJyIgKyBpZCArICInLCB0aGlzKTsiKTsNCiAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhW2RiS2V5XTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5tYXBwaW5nLnVwZGF0ZUNoYW5uZWxHcm91cC50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgY29udGVudC5kZXNjcmlwdGlvbigie3subWFwcGluZy51cGRhdGVDaGFubmVsR3JvdXAuZGVzY3JpcHRpb259fSIpOw0KICAgICAgICAgICAgLy8gWE1MVFYgZmlsZQ0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gJ3gteG1sdHYtZmlsZSc7DQogICAgICAgICAgICBjb25zdCB4bWxUdkZpbGUgPSBkYXRhW2RiS2V5XTsNCiAgICAgICAgICAgIHZhciB4bWxUdiA9IG5ldyBYTUxUVkZpbGUoKTsNCiAgICAgICAgICAgIGNvbnN0IHhtbFR2RmlsZVNlbGVjdCA9IHhtbFR2LmdldEZpbGVzKGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIHhtbFR2RmlsZVNlbGVjdC5zZXRBdHRyaWJ1dGUoJ25hbWUnLCBkYktleSk7DQogICAgICAgICAgICB4bWxUdkZpbGVTZWxlY3Quc2V0QXR0cmlidXRlKCdpZCcsICdwb3B1cC14bWx0dicpOw0KICAgICAgICAgICAgeG1sVHZGaWxlU2VsZWN0LnNldEF0dHJpYnV0ZSgnb25jaGFuZ2UnLCBgamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCc7IHNldFhtbHR2Q2hhbm5lbCgnJHtpZH0nLCB0aGlzKTtgKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCd7ey5tYXBwaW5nLnhtbHR2RmlsZS50aXRsZX19JywgeG1sVHZGaWxlU2VsZWN0KTsNCiAgICAgICAgICAgIC8vIFhNTFRWIE1hcHBpbmcNCiAgICAgICAgICAgIHZhciBkYktleSA9ICd4LW1hcHBpbmcnOw0KICAgICAgICAgICAgdmFyIHhtbFR2ID0gbmV3IFhNTFRWRmlsZSgpOw0KICAgICAgICAgICAgY29uc3QgY3VycmVudFhtbFR2SWQgPSBkYXRhW2RiS2V5XTsNCiAgICAgICAgICAgIGNvbnN0IFt4bWxUdklkQ29udGFpbmVyLCB4bWxUdklkSW5wdXQsIHhtbFR2SWREYXRhbGlzdF0gPSB4bWxUdi5uZXdYbWxUdklkUGlja2VyKHhtbFR2RmlsZSwgY3VycmVudFhtbFR2SWQpOw0KICAgICAgICAgICAgeG1sVHZJZENvbnRhaW5lci5zZXRBdHRyaWJ1dGUoJ2lkJywgJ3htbHR2LWlkLXBpY2tlci1jb250YWluZXInKTsNCiAgICAgICAgICAgIHhtbFR2SWRJbnB1dC5zZXRBdHRyaWJ1dGUoJ2xpc3QnLCAneG1sdHYtaWQtcGlja2VyLWRhdGFsaXN0Jyk7DQogICAgICAgICAgICB4bWxUdklkSW5wdXQuc2V0QXR0cmlidXRlKCduYW1lJywgJ3gtbWFwcGluZycpOyAvLyBTaG91bGQgc3RheSB4LW1hcHBpbmcgYXMgaXQgd2lsbCBiZSB1c2VkIGluIGRvbmVQb3B1cERhdGEgdG8gbWFrZSBhIHNlcnZlciByZXF1ZXN0DQogICAgICAgICAgICB4bWxUdklkSW5wdXQuc2V0QXR0cmlidXRlKCdpZCcsICd4bWx0di1pZC1waWNrZXItaW5wdXQnKTsNCiAgICAgICAgICAgIHhtbFR2SWRJbnB1dC5zZXRBdHRyaWJ1dGUoJ29uY2hhbmdlJywgYGphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnOyBjaGVja1htbHR2Q2hhbm5lbCgnJHtpZH0nLCB0aGlzLnZhbHVlLCAnJHt4bWxUdkZpbGV9Jyk7YCk7DQogICAgICAgICAgICB4bWxUdklkRGF0YWxpc3Quc2V0QXR0cmlidXRlKCdpZCcsICd4bWx0di1pZC1waWNrZXItZGF0YWxpc3QnKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCd7ey5tYXBwaW5nLnhtbHR2Q2hhbm5lbC50aXRsZX19JywgeG1sVHZJZENvbnRhaW5lcik7DQogICAgICAgICAgICAvLyBUaW1lc2hpZnQNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJ4LXRpbWVzaGlmdCI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3subWFwcGluZy50aW1lc2hpZnQucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJpZCIsICJ0aW1lc2hpZnQiKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5tYXBwaW5nLnRpbWVzaGlmdC50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgLy8gSW50ZXJhY3Rpb24NCiAgICAgICAgICAgIGNvbnRlbnQuY3JlYXRlSW50ZXJhY3Rpb24oKTsNCiAgICAgICAgICAgIC8vIFVwbG9hZCBsb2dvDQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAiY2FuY2VsIiwgInt7LmJ1dHRvbi51cGxvYWRMb2dvfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiB1cGxvYWRMb2dvKCk7Jyk7DQogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIC8vIEFib3J0DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAiY2FuY2VsIiwgInt7LmJ1dHRvbi5jYW5jZWx9fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IHNob3dFbGVtZW50KCJwb3B1cCIsIGZhbHNlKTsnKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgLy8gRmluaXNoZWQNCiAgICAgICAgICAgIHZhciBpZHMgPSBbXTsNCiAgICAgICAgICAgIGlkcyA9IGdldEFsbFNlbGVjdGVkQ2hhbm5lbHMoKTsNCiAgICAgICAgICAgIGlmIChpZHMubGVuZ3RoID09IDApIHsNCiAgICAgICAgICAgICAgICBpZHMucHVzaChpZCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAic2F2ZSIsICJ7ey5idXR0b24uZG9uZX19Iik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogZG9uZVBvcHVwRGF0YSgiJyArIGRhdGFUeXBlICsgJyIsICInICsgaWRzICsgJyIsICJmYWxzZSIpOycpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgIGJyZWFrOw0KICAgIH0NCiAgICBzaG93UG9wVXBFbGVtZW50KCdwb3B1cC1jdXN0b20nKTsNCn0NCmNsYXNzIFhNTFRWRmlsZSB7DQogICAgZ2V0RmlsZXMoc2V0KSB7DQogICAgICAgIGxldCBmaWxlSURzID0gZ2V0T3duT2JqUHJvcHMoU0VSVkVSWyJ4ZXBnIl1bInhtbHR2TWFwIl0pOw0KICAgICAgICBsZXQgdmFsdWVzID0gbmV3IEFycmF5KCItIik7DQogICAgICAgIGxldCB0ZXh0ID0gbmV3IEFycmF5KCItIik7DQogICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgZmlsZUlEcy5sZW5ndGg7IGkrKykgew0KICAgICAgICAgICAgaWYgKGZpbGVJRHNbaV0gIT0gInhUZVZlIER1bW15Iikgew0KICAgICAgICAgICAgICAgIHZhbHVlcy5wdXNoKGdldFZhbHVlRnJvbVByb3ZpZGVyRmlsZShmaWxlSURzW2ldLCAieG1sdHYiLCAiZmlsZS54dGV2ZSIpKTsNCiAgICAgICAgICAgICAgICB0ZXh0LnB1c2goZ2V0VmFsdWVGcm9tUHJvdmlkZXJGaWxlKGZpbGVJRHNbaV0sICJ4bWx0diIsICJuYW1lIikpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgZWxzZSB7DQogICAgICAgICAgICAgICAgdmFsdWVzLnB1c2goZmlsZUlEc1tpXSk7DQogICAgICAgICAgICAgICAgdGV4dC5wdXNoKGZpbGVJRHNbaV0pOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQogICAgICAgIGxldCBzZWxlY3QgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJTRUxFQ1QiKTsNCiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0ZXh0Lmxlbmd0aDsgaSsrKSB7DQogICAgICAgICAgICB2YXIgb3B0aW9uID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiT1BUSU9OIik7DQogICAgICAgICAgICBvcHRpb24uc2V0QXR0cmlidXRlKCJ2YWx1ZSIsIHZhbHVlc1tpXSk7DQogICAgICAgICAgICBvcHRpb24uaW5uZXJUZXh0ID0gdGV4dFtpXTsNCiAgICAgICAgICAgIHNlbGVjdC5hcHBlbmRDaGlsZChvcHRpb24pOw0KICAgICAgICB9DQogICAgICAgIGlmIChzZXQgIT0gIiIpIHsNCiAgICAgICAgICAgIHNlbGVjdC52YWx1ZSA9IHNldDsNCiAgICAgICAgfQ0KICAgICAgICByZXR1cm4gc2VsZWN0Ow0KICAgIH0NCiAgICAvKioNCiAgICAgKiBAcGFyYW0geG1sVHZGaWxlIFhNTCBmaWxlIHBhdGggdG8gZ2V0IEVQRyBmcm9tLg0KICAgICAqIEBwYXJhbSBjdXJyZW50WG1sVHZJZCBDdXJyZW50IFhNTFRWIElEIHRvIHNldCBpbml0aWFsIGlucHV0IHZhbHVlIHRvLg0KICAgICAqIEByZXR1cm5zIEFycmF5IG9mLCBzZXF1ZW50aWFsbHk6DQogICAgICogMSkgQ29udGFpbmVyIG9mIHRoZSBwaWNrZXIuDQogICAgICogMikgSW5wdXQgZmllbGQgdG8gdHlwZSBhdCBhbmQgZ2V0IGNob2ljZSBmcm9tLg0KICAgICAqIDMpIERhdGFsaXN0IGNvbnRhaW5pbmcgZXZlcnkgb3B0aW9uLg0KICAgICAqLw0KICAgIG5ld1htbFR2SWRQaWNrZXIoeG1sVHZGaWxlLCBjdXJyZW50WG1sVHZJZCkgew0KICAgICAgICBjb25zdCBjb250YWluZXIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsNCiAgICAgICAgY29uc3QgaW5wdXQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdpbnB1dCcpOw0KICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoJ3R5cGUnLCAndGV4dCcpOw0KICAgICAgICAvLyBJbml0aWFsbHksIHNldCB2YWx1ZSB0byAnLScgaWYgaW5wdXQgaXMgZW1wdHkNCiAgICAgICAgaW5wdXQudmFsdWUgPSAoY3VycmVudFhtbFR2SWQpID8gY3VycmVudFhtbFR2SWQgOiAnLSc7DQogICAgICAgIC8vIFdoZW4gaW5wdXQgaXMgZm9jdXNlZCwgcmVtb3ZlICctJyBmcm9tIGl0DQogICAgICAgIGlucHV0LmFkZEV2ZW50TGlzdGVuZXIoJ2ZvY3VzJywgKGV2dCkgPT4gew0KICAgICAgICAgICAgY29uc3QgdGFyZ2V0ID0gZXZ0LnRhcmdldDsNCiAgICAgICAgICAgIHRhcmdldC52YWx1ZSA9ICh0YXJnZXQudmFsdWUgPT09ICctJykgPyAnJyA6IHRhcmdldC52YWx1ZTsNCiAgICAgICAgfSk7DQogICAgICAgIC8vIFdoZW4gaW5wdXQgbG9zZSBmb2N1cyBvciB0YWtlIGEgdmFsdWUsIGlmIGl0J3MgZW1wdHksIHNldCB2YWx1ZSB0byAnLScNCiAgICAgICAgaW5wdXQuYWRkRXZlbnRMaXN0ZW5lcignYmx1cicsIHNldEZhbGxiYWNrVmFsdWUpOw0KICAgICAgICBpbnB1dC5hZGRFdmVudExpc3RlbmVyKCdjaGFuZ2UnLCBzZXRGYWxsYmFja1ZhbHVlKTsNCiAgICAgICAgZnVuY3Rpb24gc2V0RmFsbGJhY2tWYWx1ZShldnQpIHsNCiAgICAgICAgICAgIGNvbnN0IHRhcmdldCA9IGV2dC50YXJnZXQ7DQogICAgICAgICAgICB0YXJnZXQudmFsdWUgPSAodGFyZ2V0LnZhbHVlKSA/IHRhcmdldC52YWx1ZSA6ICctJzsNCiAgICAgICAgfQ0KICAgICAgICBjb250YWluZXIuYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICBjb25zdCBkYXRhbGlzdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RhdGFsaXN0Jyk7DQogICAgICAgIGNvbnN0IG9wdGlvbiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ29wdGlvbicpOw0KICAgICAgICBvcHRpb24uc2V0QXR0cmlidXRlKCd2YWx1ZScsICctJyk7DQogICAgICAgIG9wdGlvbi5pbm5lclRleHQgPSAnLSc7DQogICAgICAgIGRhdGFsaXN0LmFwcGVuZENoaWxkKG9wdGlvbik7DQogICAgICAgIGNvbnN0IGVwZyA9IFNFUlZFUlsneGVwZyddWyd4bWx0dk1hcCddW3htbFR2RmlsZV07DQogICAgICAgIGlmIChlcGcpIHsNCiAgICAgICAgICAgIGNvbnN0IHByb2dyYW1JZHMgPSBnZXRPd25PYmpQcm9wcyhlcGcpOw0KICAgICAgICAgICAgcHJvZ3JhbUlkcy5mb3JFYWNoKChwcm9ncmFtSWQpID0+IHsNCiAgICAgICAgICAgICAgICBjb25zdCBwcm9ncmFtID0gZXBnW3Byb2dyYW1JZF07DQogICAgICAgICAgICAgICAgaWYgKHByb2dyYW0uaGFzT3duUHJvcGVydHkoJ2Rpc3BsYXktbmFtZXMnKSkgew0KICAgICAgICAgICAgICAgICAgICBwcm9ncmFtWydkaXNwbGF5LW5hbWVzJ10uZm9yRWFjaCgoZGlzcGxheU5hbWUpID0+IHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IG9wdGlvbiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ29wdGlvbicpOw0KICAgICAgICAgICAgICAgICAgICAgICAgb3B0aW9uLnNldEF0dHJpYnV0ZSgndmFsdWUnLCBwcm9ncmFtSWQpOw0KICAgICAgICAgICAgICAgICAgICAgICAgb3B0aW9uLmlubmVyVGV4dCA9IGRpc3BsYXlOYW1lWydWYWx1ZSddOw0KICAgICAgICAgICAgICAgICAgICAgICAgZGF0YWxpc3QuYXBwZW5kQ2hpbGQob3B0aW9uKTsNCiAgICAgICAgICAgICAgICAgICAgfSk7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgICAgICAgICBjb25zdCBvcHRpb24gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdvcHRpb24nKTsNCiAgICAgICAgICAgICAgICAgICAgb3B0aW9uLnNldEF0dHJpYnV0ZSgndmFsdWUnLCBwcm9ncmFtSWQpOw0KICAgICAgICAgICAgICAgICAgICBvcHRpb24uaW5uZXJUZXh0ID0gJy0nOw0KICAgICAgICAgICAgICAgICAgICBkYXRhbGlzdC5hcHBlbmRDaGlsZChvcHRpb24pOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0pOw0KICAgICAgICB9DQogICAgICAgIGNvbnRhaW5lci5hcHBlbmRDaGlsZChkYXRhbGlzdCk7DQogICAgICAgIHJldHVybiBbY29udGFpbmVyLCBpbnB1dCwgZGF0YWxpc3RdOw0KICAgIH0NCn0NCmZ1bmN0aW9uIGdldFZhbHVlRnJvbVByb3ZpZGVyRmlsZShmaWxlLCBmaWxlVHlwZSwga2V5KSB7DQogICAgaWYgKGZpbGUgPT0gInhUZVZlIER1bW15Iikgew0KICAgICAgICByZXR1cm4gZmlsZTsNCiAgICB9DQogICAgbGV0IGZpbGVJRDsNCiAgICBsZXQgaW5kaWNhdG9yID0gZmlsZS5jaGFyQXQoMCk7DQogICAgc3dpdGNoIChpbmRpY2F0b3IpIHsNCiAgICAgICAgY2FzZSAiTSI6DQogICAgICAgICAgICBmaWxlVHlwZSA9ICJtM3UiOw0KICAgICAgICAgICAgZmlsZUlEID0gZmlsZTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJIIjoNCiAgICAgICAgICAgIGZpbGVUeXBlID0gImhkaHIiOw0KICAgICAgICAgICAgZmlsZUlEID0gZmlsZTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJYIjoNCiAgICAgICAgICAgIGZpbGVUeXBlID0gInhtbHR2IjsNCiAgICAgICAgICAgIGZpbGVJRCA9IGZpbGUuc3Vic3RyaW5nKDAsIGZpbGUubGFzdEluZGV4T2YoJy4nKSk7DQogICAgICAgICAgICBicmVhazsNCiAgICB9DQogICAgaWYgKFNFUlZFUlsic2V0dGluZ3MiXVsiZmlsZXMiXVtmaWxlVHlwZV0uaGFzT3duUHJvcGVydHkoZmlsZUlEKSA9PSB0cnVlKSB7DQogICAgICAgIHZhciBkYXRhID0gU0VSVkVSWyJzZXR0aW5ncyJdWyJmaWxlcyJdW2ZpbGVUeXBlXVtmaWxlSURdOw0KICAgICAgICByZXR1cm4gZGF0YVtrZXldOw0KICAgIH0NCiAgICByZXR1cm47DQp9DQpmdW5jdGlvbiBzZXRYbWx0dkNoYW5uZWwoZXBnTWFwSWQsIHhtbFR2RmlsZVNlbGVjdCkgew0KICAgIGNvbnN0IHhtbFR2ID0gbmV3IFhNTFRWRmlsZSgpOw0KICAgIGNvbnN0IG5ld1htbFR2RmlsZSA9IHhtbFR2RmlsZVNlbGVjdC52YWx1ZTsNCiAgICAvLyBSZW1vdmUgb2xkIFhNTFRWIElEIHNlbGVjdGlvbiBib3gNCiAgICBjb25zdCB4bWxUdklkUGlja2VyUGFyZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3htbHR2LWlkLXBpY2tlci1jb250YWluZXInKS5wYXJlbnRFbGVtZW50Ow0KICAgIHhtbFR2SWRQaWNrZXJQYXJlbnQuaW5uZXJIVE1MID0gJyc7DQogICAgLy8gQ3JlYXRlIG5ldyBYTUxUViBJRCBzZWxlY3Rpb24gYm94DQogICAgY29uc3QgdHZnSWQgPSBTRVJWRVJbJ3hlcGcnXVsnZXBnTWFwcGluZyddW2VwZ01hcElkXVsndHZnLWlkJ107DQogICAgY29uc3QgW3htbFR2SWRDb250YWluZXIsIHhtbFR2SWRJbnB1dCwgeG1sVHZJZERhdGFsaXN0XSA9IHhtbFR2Lm5ld1htbFR2SWRQaWNrZXIobmV3WG1sVHZGaWxlLCB0dmdJZCk7DQogICAgeG1sVHZJZENvbnRhaW5lci5zZXRBdHRyaWJ1dGUoJ2lkJywgJ3htbHR2LWlkLXBpY2tlci1jb250YWluZXInKTsNCiAgICB4bWxUdklkSW5wdXQuc2V0QXR0cmlidXRlKCdsaXN0JywgJ3htbHR2LWlkLXBpY2tlci1kYXRhbGlzdCcpOw0KICAgIHhtbFR2SWRJbnB1dC5zZXRBdHRyaWJ1dGUoJ25hbWUnLCAneC1tYXBwaW5nJyk7IC8vIFNob3VsZCBzdGF5IHgtbWFwcGluZyBhcyBpdCB3aWxsIGJlIHVzZWQgaW4gZG9uZVBvcHVwRGF0YSB0byBtYWtlIGEgc2VydmVyIHJlcXVlc3QNCiAgICB4bWxUdklkSW5wdXQuc2V0QXR0cmlidXRlKCdpZCcsICd4bWx0di1pZC1waWNrZXItaW5wdXQnKTsNCiAgICB4bWxUdklkSW5wdXQuc2V0QXR0cmlidXRlKCdvbmNoYW5nZScsIGBqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJzsgY2hlY2tYbWx0dkNoYW5uZWwoJyR7ZXBnTWFwSWR9JywgdGhpcy52YWx1ZSwgJyR7bmV3WG1sVHZGaWxlfScpO2ApOw0KICAgIHhtbFR2SWRJbnB1dC5jbGFzc0xpc3QuYWRkKCdjaGFuZ2VkJyk7DQogICAgeG1sVHZJZERhdGFsaXN0LnNldEF0dHJpYnV0ZSgnaWQnLCAneG1sdHYtaWQtcGlja2VyLWRhdGFsaXN0Jyk7DQogICAgLy8gQWRkIG5ldyBYTUxUViBJRCBzZWxlY3Rpb24gYm94IHRvIGl0J3MgcGFyZW50DQogICAgeG1sVHZJZFBpY2tlclBhcmVudC5hcHBlbmRDaGlsZCh4bWxUdklkQ29udGFpbmVyKTsNCiAgICBjaGVja1htbHR2Q2hhbm5lbChlcGdNYXBJZCwgeG1sVHZJZElucHV0LnZhbHVlLCBuZXdYbWxUdkZpbGUpOw0KfQ0KZnVuY3Rpb24gY2hlY2tYbWx0dkNoYW5uZWwoZXBnTWFwSWQsIG5ld1htbFR2SWQsIHhtbFR2RmlsZSkgew0KICAgIGNvbnN0IGNoYW5uZWxBY3RpdmVDYiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdhY3RpdmUnKTsNCiAgICBjb25zdCBjaGFubmVsQWN0aXZlID0gbmV3WG1sVHZJZCAhPSAnLSc7DQogICAgY2hhbm5lbEFjdGl2ZUNiLmNoZWNrZWQgPSBjaGFubmVsQWN0aXZlOw0KICAgIGNoYW5uZWxBY3RpdmVDYi5jbGFzc05hbWUgPSAnY2hhbmdlZCc7DQogICAgaWYgKHhtbFR2RmlsZSAhPSAneFRlVmUgRHVtbXknICYmIGNoYW5uZWxBY3RpdmUgPT0gdHJ1ZSkgew0KICAgICAgICBjaGFuZ2VDaGFubmVsTG9nbyhlcGdNYXBJZCk7DQogICAgICAgIHJldHVybjsNCiAgICB9DQogICAgaWYgKHhtbFR2RmlsZSA9PSAneFRlVmUgRHVtbXknKSB7DQogICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd1cGRhdGUtaWNvbicpLmNoZWNrZWQgPSBmYWxzZTsNCiAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3VwZGF0ZS1pY29uJykuY2xhc3NOYW1lID0gJ2NoYW5nZWQnOw0KICAgIH0NCn0NCmZ1bmN0aW9uIGNoYW5nZUNoYW5uZWxMb2dvKGVwZ01hcElkKSB7DQogICAgY29uc3QgY2hhbm5lbCA9IFNFUlZFUlsneGVwZyddWydlcGdNYXBwaW5nJ11bZXBnTWFwSWRdOw0KICAgIGNvbnN0IHhtbFR2RmlsZVNlbGVjdCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdwb3B1cC14bWx0dicpOw0KICAgIGNvbnN0IHhtbFR2RmlsZSA9IHhtbFR2RmlsZVNlbGVjdC5vcHRpb25zW3htbFR2RmlsZVNlbGVjdC5zZWxlY3RlZEluZGV4XS52YWx1ZTsNCiAgICBjb25zdCB4bWxUdklkSW5wdXQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgneG1sdHYtaWQtcGlja2VyLWlucHV0Jyk7DQogICAgY29uc3QgbmV3WG1sVHZJZCA9IHhtbFR2SWRJbnB1dC52YWx1ZTsNCiAgICBjb25zdCB1cGRhdGVMb2dvID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3VwZGF0ZS1pY29uJykuY2hlY2tlZDsNCiAgICBsZXQgbG9nbzsNCiAgICBpZiAodXBkYXRlTG9nbyA9PSB0cnVlICYmIHhtbFR2RmlsZSAhPSAneFRlVmUgRHVtbXknKSB7DQogICAgICAgIGlmIChTRVJWRVJbJ3hlcGcnXVsneG1sdHZNYXAnXVt4bWxUdkZpbGVdLmhhc093blByb3BlcnR5KG5ld1htbFR2SWQpKSB7DQogICAgICAgICAgICBsb2dvID0gU0VSVkVSWyd4ZXBnJ11bJ3htbHR2TWFwJ11beG1sVHZGaWxlXVtuZXdYbWxUdklkXVsnaWNvbiddOw0KICAgICAgICB9DQogICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgbG9nbyA9IGNoYW5uZWxbJ3R2Zy1sb2dvJ107DQogICAgICAgIH0NCiAgICAgICAgdmFyIGxvZ29JbnB1dCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjaGFubmVsLWljb24nKTsNCiAgICAgICAgbG9nb0lucHV0LnZhbHVlID0gbG9nbzsNCiAgICAgICAgaWYgKEJVTEtfRURJVCA9PSBmYWxzZSkgew0KICAgICAgICAgICAgbG9nb0lucHV0LmNsYXNzTmFtZSA9ICdjaGFuZ2VkJzsNCiAgICAgICAgfQ0KICAgIH0NCn0NCmZ1bmN0aW9uIHNhdmVQb3B1cERhdGEoZGF0YVR5cGUsIGlkLCByZW1vdmUsIG9wdGlvbikgew0KICAgIGlmIChkYXRhVHlwZSA9PSAibWFwcGluZyIpIHsNCiAgICAgICAgbGV0IGRhdGEgPSB7fTsNCiAgICAgICAgbGV0IGNtZCA9ICJzYXZlRXBnTWFwcGluZyI7DQogICAgICAgIGRhdGFbImVwZ01hcHBpbmciXSA9IFNFUlZFUlsieGVwZyJdWyJlcGdNYXBwaW5nIl07DQogICAgICAgIGxldCBzZXJ2ZXIgPSBuZXcgU2VydmVyKGNtZCk7DQogICAgICAgIHNlcnZlci5yZXF1ZXN0KGRhdGEpOw0KICAgICAgICBkZWxldGUgVU5ET1siZXBnTWFwcGluZyJdOw0KICAgICAgICByZXR1cm47DQogICAgfQ0KICAgIGxldCBkaXYgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicG9wdXAtY3VzdG9tIik7DQogICAgbGV0IGlucHV0cyA9IGRpdi5nZXRFbGVtZW50c0J5VGFnTmFtZSgiVEFCTEUiKVswXS5nZXRFbGVtZW50c0J5VGFnTmFtZSgiSU5QVVQiKTsNCiAgICBsZXQgc2VsZWN0cyA9IGRpdi5nZXRFbGVtZW50c0J5VGFnTmFtZSgiVEFCTEUiKVswXS5nZXRFbGVtZW50c0J5VGFnTmFtZSgiU0VMRUNUIik7DQogICAgbGV0IGlucHV0ID0ge307DQogICAgbGV0IGNvbmZpcm1Nc2c7DQogICAgZm9yIChsZXQgaSA9IDA7IGkgPCBzZWxlY3RzLmxlbmd0aDsgaSsrKSB7DQogICAgICAgIHZhciBuYW1lOw0KICAgICAgICBuYW1lID0gc2VsZWN0c1tpXS5uYW1lOw0KICAgICAgICB2YXIgdmFsdWUgPSBzZWxlY3RzW2ldLnZhbHVlOw0KICAgICAgICBzd2l0Y2ggKG5hbWUpIHsNCiAgICAgICAgICAgIGNhc2UgInR1bmVyIjoNCiAgICAgICAgICAgICAgICBpbnB1dFtuYW1lXSA9IHBhcnNlSW50KHZhbHVlKTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICAgICAgaW5wdXRbbmFtZV0gPSB2YWx1ZTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgfQ0KICAgIH0NCiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGlucHV0cy5sZW5ndGg7IGkrKykgew0KICAgICAgICBzd2l0Y2ggKGlucHV0c1tpXS50eXBlKSB7DQogICAgICAgICAgICBjYXNlICJjaGVja2JveCI6DQogICAgICAgICAgICAgICAgbmFtZSA9IGlucHV0c1tpXS5uYW1lOw0KICAgICAgICAgICAgICAgIGlucHV0W25hbWVdID0gaW5wdXRzW2ldLmNoZWNrZWQ7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ0ZXh0IjoNCiAgICAgICAgICAgIGNhc2UgImhpZGRlbiI6DQogICAgICAgICAgICBjYXNlICJwYXNzd29yZCI6DQogICAgICAgICAgICAgICAgbmFtZSA9IGlucHV0c1tpXS5uYW1lOw0KICAgICAgICAgICAgICAgIHN3aXRjaCAobmFtZSkgew0KICAgICAgICAgICAgICAgICAgICBjYXNlICJ0dW5lciI6DQogICAgICAgICAgICAgICAgICAgICAgICBpbnB1dFtuYW1lXSA9IHBhcnNlSW50KGlucHV0c1tpXS52YWx1ZSk7DQogICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgICAgICAgICAgICAgIGlucHV0W25hbWVdID0gaW5wdXRzW2ldLnZhbHVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICB9DQogICAgfQ0KICAgIGxldCBkYXRhID0ge307DQogICAgbGV0IGNtZDsNCiAgICBpZiAocmVtb3ZlID09IHRydWUpIHsNCiAgICAgICAgaW5wdXRbImRlbGV0ZSJdID0gdHJ1ZTsNCiAgICB9DQogICAgc3dpdGNoIChkYXRhVHlwZSkgew0KICAgICAgICBjYXNlICJ1c2VycyI6DQogICAgICAgICAgICBjb25maXJtTXNnID0gIkRlbGV0ZSB0aGlzIHVzZXI/IjsNCiAgICAgICAgICAgIGlmIChpZCA9PSAiLSIpIHsNCiAgICAgICAgICAgICAgICBjbWQgPSAic2F2ZU5ld1VzZXIiOw0KICAgICAgICAgICAgICAgIGRhdGFbInVzZXJEYXRhIl0gPSBpbnB1dDsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgICAgIGNtZCA9ICJzYXZlVXNlckRhdGEiOw0KICAgICAgICAgICAgICAgIGxldCBkID0ge307DQogICAgICAgICAgICAgICAgZFtpZF0gPSBpbnB1dDsNCiAgICAgICAgICAgICAgICBkYXRhWyJ1c2VyRGF0YSJdID0gZDsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJtM3UiOg0KICAgICAgICAgICAgY29uZmlybU1zZyA9ICJEZWxldGUgdGhpcyBwbGF5bGlzdD8iOw0KICAgICAgICAgICAgc3dpdGNoIChvcHRpb24pIHsNCiAgICAgICAgICAgICAgICAvLyBQb3B1cDogU2F2ZQ0KICAgICAgICAgICAgICAgIGNhc2UgMDoNCiAgICAgICAgICAgICAgICAgICAgY21kID0gInNhdmVGaWxlc00zVSI7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIC8vIFBvcHVwOiBVcGRhdGUNCiAgICAgICAgICAgICAgICBjYXNlIDE6DQogICAgICAgICAgICAgICAgICAgIGNtZCA9ICJ1cGRhdGVGaWxlTTNVIjsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBkYXRhWyJmaWxlcyJdID0ge307DQogICAgICAgICAgICBkYXRhWyJmaWxlcyJdW2RhdGFUeXBlXSA9IHt9Ow0KICAgICAgICAgICAgZGF0YVsiZmlsZXMiXVtkYXRhVHlwZV1baWRdID0gaW5wdXQ7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSAiaGRociI6DQogICAgICAgICAgICBjb25maXJtTXNnID0gIkRlbGV0ZSB0aGlzIEhESG9tZVJ1biB0dW5lcj8iOw0KICAgICAgICAgICAgc3dpdGNoIChvcHRpb24pIHsNCiAgICAgICAgICAgICAgICAvLyBQb3B1cDogU2F2ZQ0KICAgICAgICAgICAgICAgIGNhc2UgMDoNCiAgICAgICAgICAgICAgICAgICAgY21kID0gInNhdmVGaWxlc0hESFIiOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICAvLyBQb3B1cDogVXBkYXRlDQogICAgICAgICAgICAgICAgY2FzZSAxOg0KICAgICAgICAgICAgICAgICAgICBjbWQgPSAidXBkYXRlRmlsZUhESFIiOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGRhdGFbImZpbGVzIl0gPSB7fTsNCiAgICAgICAgICAgIGRhdGFbImZpbGVzIl1bZGF0YVR5cGVdID0ge307DQogICAgICAgICAgICBkYXRhWyJmaWxlcyJdW2RhdGFUeXBlXVtpZF0gPSBpbnB1dDsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJ4bWx0diI6DQogICAgICAgICAgICBjb25maXJtTXNnID0gIkRlbGV0ZSB0aGlzIFhNTFRWIGZpbGU/IjsNCiAgICAgICAgICAgIHN3aXRjaCAob3B0aW9uKSB7DQogICAgICAgICAgICAgICAgLy8gUG9wdXA6IFNhdmUNCiAgICAgICAgICAgICAgICBjYXNlIDA6DQogICAgICAgICAgICAgICAgICAgIGNtZCA9ICJzYXZlRmlsZXNYTUxUViI7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIC8vIFBvcHVwOiBVcGRhdGUNCiAgICAgICAgICAgICAgICBjYXNlIDE6DQogICAgICAgICAgICAgICAgICAgIGNtZCA9ICJ1cGRhdGVGaWxlWE1MVFYiOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGRhdGFbImZpbGVzIl0gPSB7fTsNCiAgICAgICAgICAgIGRhdGFbImZpbGVzIl1bZGF0YVR5cGVdID0ge307DQogICAgICAgICAgICBkYXRhWyJmaWxlcyJdW2RhdGFUeXBlXVtpZF0gPSBpbnB1dDsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJmaWx0ZXIiOg0KICAgICAgICAgICAgY29uZmlybU1zZyA9ICJEZWxldGUgdGhpcyBmaWx0ZXI/IjsNCiAgICAgICAgICAgIGNtZCA9ICJzYXZlRmlsdGVyIjsNCiAgICAgICAgICAgIGRhdGFbImZpbHRlciJdID0ge307DQogICAgICAgICAgICBkYXRhWyJmaWx0ZXIiXVtpZF0gPSBpbnB1dDsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBkZWZhdWx0Og0KICAgICAgICAgICAgcmV0dXJuOw0KICAgIH0NCiAgICBpZiAocmVtb3ZlID09IHRydWUpIHsNCiAgICAgICAgaWYgKCFjb25maXJtKGNvbmZpcm1Nc2cpKSB7DQogICAgICAgICAgICBzaG93RWxlbWVudCgicG9wdXAiLCBmYWxzZSk7DQogICAgICAgICAgICByZXR1cm47DQogICAgICAgIH0NCiAgICB9DQogICAgbGV0IHNlcnZlciA9IG5ldyBTZXJ2ZXIoY21kKTsNCiAgICBzZXJ2ZXIucmVxdWVzdChkYXRhKTsNCn0NCmZ1bmN0aW9uIGRvbmVQb3B1cERhdGEoZGF0YVR5cGUsIGlkc1N0cikgew0KICAgIGxldCBpZHMgPSBpZHNTdHIuc3BsaXQoJywnKTsNCiAgICBsZXQgZGl2ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInBvcHVwLWN1c3RvbSIpOw0KICAgIGxldCBpbnB1dHMgPSBkaXYuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSgiY2hhbmdlZCIpOw0KICAgIGlkcy5mb3JFYWNoKGlkID0+IHsNCiAgICAgICAgbGV0IGlucHV0Ow0KICAgICAgICBpbnB1dCA9IFNFUlZFUlsieGVwZyJdWyJlcGdNYXBwaW5nIl1baWRdOw0KICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGlucHV0cy5sZW5ndGg7IGkrKykgew0KICAgICAgICAgICAgbGV0IG5hbWU7DQogICAgICAgICAgICBsZXQgdmFsdWU7DQogICAgICAgICAgICBzd2l0Y2ggKGlucHV0c1tpXS50YWdOYW1lKSB7DQogICAgICAgICAgICAgICAgY2FzZSAiSU5QVVQiOg0KICAgICAgICAgICAgICAgICAgICBzd2l0Y2ggKGlucHV0c1tpXS50eXBlKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBjYXNlICJjaGVja2JveCI6DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZSA9IGlucHV0c1tpXS5uYW1lOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlID0gaW5wdXRzW2ldLmNoZWNrZWQ7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5wdXRbbmFtZV0gPSB2YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgInRleHQiOg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWUgPSBpbnB1dHNbaV0ubmFtZTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IGlucHV0c1tpXS52YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnB1dFtuYW1lXSA9IHZhbHVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgIlNFTEVDVCI6DQogICAgICAgICAgICAgICAgICAgIG5hbWUgPSBpbnB1dHNbaV0ubmFtZTsNCiAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSBpbnB1dHNbaV0udmFsdWU7DQogICAgICAgICAgICAgICAgICAgIGlucHV0W25hbWVdID0gdmFsdWU7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgc3dpdGNoIChuYW1lKSB7DQogICAgICAgICAgICAgICAgY2FzZSAidHZnLWxvZ28iOg0KICAgICAgICAgICAgICAgICAgICAvLyhkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkuY2hpbGROb2Rlc1syXS5maXJzdENoaWxkIGFzIEhUTUxFbGVtZW50KS5zZXRBdHRyaWJ1dGUoInNyYyIsIHZhbHVlKQ0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBjYXNlICJ4LW5hbWUiOg0KICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkuY2hpbGROb2Rlc1szXS5maXJzdENoaWxkLmlubmVySFRNTCA9IHZhbHVlOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBjYXNlICJ4LWNhdGVnb3J5IjoNCiAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpLmNoaWxkTm9kZXNbM10uZmlyc3RDaGlsZC5jbGFzc05hbWUgPSB2YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAidXBkYXRlLWNoYW5uZWwtbmFtZS1yZWdleCI6DQogICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5jaGlsZE5vZGVzWzRdLmZpcnN0Q2hpbGQuaW5uZXJIVE1MID0gdmFsdWU7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgIngtZ3JvdXAtdGl0bGUiOg0KICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkuY2hpbGROb2Rlc1s2XS5maXJzdENoaWxkLmlubmVySFRNTCA9IHZhbHVlOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBjYXNlICJ4LXhtbHR2LWZpbGUiOg0KICAgICAgICAgICAgICAgICAgICBpZiAodmFsdWUgIT0gInhUZVZlIER1bW15IiAmJiB2YWx1ZSAhPSAiLSIpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlID0gZ2V0VmFsdWVGcm9tUHJvdmlkZXJGaWxlKHZhbHVlLCAieG1sdHYiLCAibmFtZSIpOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIGlmICh2YWx1ZSA9PSAiLSIpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGlucHV0WyJ4LWFjdGl2ZSJdID0gZmFsc2U7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpLmNoaWxkTm9kZXNbN10uZmlyc3RDaGlsZC5pbm5lckhUTUwgPSB2YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAieC1tYXBwaW5nIjoNCiAgICAgICAgICAgICAgICAgICAgaWYgKHZhbHVlID09ICItIikgew0KICAgICAgICAgICAgICAgICAgICAgICAgaW5wdXRbIngtYWN0aXZlIl0gPSBmYWxzZTsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkuY2hpbGROb2Rlc1s4XS5maXJzdENoaWxkLmlubmVySFRNTCA9IHZhbHVlOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBjYXNlICJ4LXRpbWVzaGlmdCI6DQogICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5jaGlsZE5vZGVzWzldLmZpcnN0Q2hpbGQuaW5uZXJIVE1MID0gdmFsdWU7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICB9DQogICAgICAgICAgICBjcmVhdGVTZWFyY2hPYmooKTsNCiAgICAgICAgICAgIHNlYXJjaEluTWFwcGluZygpOw0KICAgICAgICB9DQogICAgICAgIGlmIChpbnB1dFsieC1hY3RpdmUiXSA9PSBmYWxzZSkgew0KICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpLmNsYXNzTmFtZSA9ICJub3RBY3RpdmVFUEciOw0KICAgICAgICB9DQogICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpLmNsYXNzTmFtZSA9ICJhY3RpdmVFUEciOw0KICAgICAgICB9DQogICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5jaGlsZE5vZGVzWzJdLmZpcnN0Q2hpbGQuc2V0QXR0cmlidXRlKCJzcmMiLCBpbnB1dFsidHZnLWxvZ28iXSk7DQogICAgfSk7DQogICAgc2hvd0VsZW1lbnQoInBvcHVwIiwgZmFsc2UpOw0KICAgIHJldHVybjsNCn0NCmZ1bmN0aW9uIHNob3dQcmV2aWV3KGVsZW1lbnQpIHsNCiAgICBsZXQgZGl2ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm15U3RyZWFtc0JveCIpOw0KICAgIHN3aXRjaCAoZWxlbWVudCkgew0KICAgICAgICBjYXNlIGZhbHNlOg0KICAgICAgICAgICAgZGl2LmNsYXNzTmFtZSA9ICJub3RWaXNpYmxlIjsNCiAgICAgICAgICAgIHJldHVybjsNCiAgICB9DQogICAgbGV0IHN0cmVhbXMgPSBbImFjdGl2ZVN0cmVhbXMiLCAiaW5hY3RpdmVTdHJlYW1zIl07DQogICAgc3RyZWFtcy5mb3JFYWNoKHByZXZpZXcgPT4gew0KICAgICAgICBsZXQgdGFibGUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChwcmV2aWV3KTsNCiAgICAgICAgdGFibGUuaW5uZXJIVE1MID0gIiI7DQogICAgICAgIGxldCBvYmogPSBTRVJWRVJbImRhdGEiXVsiU3RyZWFtUHJldmlld1VJIl1bcHJldmlld107DQogICAgICAgIG9iai5mb3JFYWNoKGNoYW5uZWwgPT4gew0KICAgICAgICAgICAgbGV0IHRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVFIiKTsNCiAgICAgICAgICAgIGxldCB0ZEtleSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICBsZXQgdGRWYWwgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgdGRLZXkuY2xhc3NOYW1lID0gInRkS2V5IjsNCiAgICAgICAgICAgIHRkVmFsLmNsYXNzTmFtZSA9ICJ0ZFZhbCI7DQogICAgICAgICAgICBzd2l0Y2ggKHByZXZpZXcpIHsNCiAgICAgICAgICAgICAgICBjYXNlICJhY3RpdmVTdHJlYW1zIjoNCiAgICAgICAgICAgICAgICAgICAgdGRLZXkuaW5uZXJUZXh0ID0gIkNoYW5uZWw6ICgrKSI7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgImluYWN0aXZlU3RyZWFtcyI6DQogICAgICAgICAgICAgICAgICAgIHRkS2V5LmlubmVyVGV4dCA9ICJDaGFubmVsOiAoLSkiOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIHRkVmFsLmlubmVyVGV4dCA9IGNoYW5uZWw7DQogICAgICAgICAgICB0ci5hcHBlbmRDaGlsZCh0ZEtleSk7DQogICAgICAgICAgICB0ci5hcHBlbmRDaGlsZCh0ZFZhbCk7DQogICAgICAgICAgICB0YWJsZS5hcHBlbmRDaGlsZCh0cik7DQogICAgICAgIH0pOw0KICAgIH0pOw0KICAgIHNob3dFbGVtZW50KCJsb2FkaW5nIiwgZmFsc2UpOw0KICAgIGRpdi5jbGFzc05hbWUgPSAidmlzaWJsZSI7DQogICAgcmV0dXJuOw0KfQ0K" webUI["html/js/network_ts.js"] = "Y2xhc3MgU2VydmVyIHsNCiAgICBjb25zdHJ1Y3RvcihjbWQpIHsNCiAgICAgICAgdGhpcy5jbWQgPSBjbWQ7DQogICAgfQ0KICAgIHJlcXVlc3QoZGF0YSkgew0KICAgICAgICBpZiAoU0VSVkVSX0NPTk5FQ1RJT04gPT0gdHJ1ZSkgew0KICAgICAgICAgICAgcmV0dXJuOw0KICAgICAgICB9DQogICAgICAgIFNFUlZFUl9DT05ORUNUSU9OID0gdHJ1ZTsNCiAgICAgICAgaWYgKHRoaXMuY21kICE9ICJ1cGRhdGVMb2ciKSB7DQogICAgICAgICAgICBzaG93RWxlbWVudCgibG9hZGluZyIsIHRydWUpOw0KICAgICAgICAgICAgVU5ETyA9IG5ldyBPYmplY3QoKTsNCiAgICAgICAgfQ0KICAgICAgICBzd2l0Y2ggKHdpbmRvdy5sb2NhdGlvbi5wcm90b2NvbCkgew0KICAgICAgICAgICAgY2FzZSAiaHR0cDoiOg0KICAgICAgICAgICAgICAgIHRoaXMucHJvdG9jb2wgPSAid3M6Ly8iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiaHR0cHM6IjoNCiAgICAgICAgICAgICAgICB0aGlzLnByb3RvY29sID0gIndzczovLyI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIH0NCiAgICAgICAgdmFyIHVybCA9IHRoaXMucHJvdG9jb2wgKyB3aW5kb3cubG9jYXRpb24uaG9zdG5hbWUgKyAiOiIgKyB3aW5kb3cubG9jYXRpb24ucG9ydCArICIvZGF0YS8iICsgIj9Ub2tlbj0iICsgZ2V0Q29va2llKCJUb2tlbiIpOw0KICAgICAgICBkYXRhWyJjbWQiXSA9IHRoaXMuY21kOw0KICAgICAgICB2YXIgd3MgPSBuZXcgV2ViU29ja2V0KHVybCk7DQogICAgICAgIHdzLm9ub3BlbiA9IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgICAgIFdTX0FWQUlMQUJMRSA9IHRydWU7DQogICAgICAgICAgICB0aGlzLnNlbmQoSlNPTi5zdHJpbmdpZnkoZGF0YSkpOw0KICAgICAgICB9Ow0KICAgICAgICB3cy5vbmVycm9yID0gZnVuY3Rpb24gKHdzRXJyRXZ0KSB7DQogICAgICAgICAgICBjb25zb2xlLmxvZygiTm8gd2Vic29ja2V0IGNvbm5lY3Rpb24gdG8geFRlVmUgY291bGQgYmUgZXN0YWJsaXNoZWQuIENoZWNrIHlvdXIgbmV0d29yayBjb25maWd1cmF0aW9uLiIpOw0KICAgICAgICAgICAgU0VSVkVSX0NPTk5FQ1RJT04gPSBmYWxzZTsNCiAgICAgICAgICAgIGlmIChXU19BVkFJTEFCTEUgPT0gZmFsc2UpIHsNCiAgICAgICAgICAgICAgICBhbGVydCgiTm8gd2Vic29ja2V0IGNvbm5lY3Rpb24gdG8geFRlVmUgY291bGQgYmUgZXN0YWJsaXNoZWQuIENoZWNrIHlvdXIgbmV0d29yayBjb25maWd1cmF0aW9uLiIpOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9Ow0KICAgICAgICB3cy5vbm1lc3NhZ2UgPSBmdW5jdGlvbiAod3NNZXNzYWdlRXZ0KSB7DQogICAgICAgICAgICBTRVJWRVJfQ09OTkVDVElPTiA9IGZhbHNlOw0KICAgICAgICAgICAgc2hvd0VsZW1lbnQoImxvYWRpbmciLCBmYWxzZSk7DQogICAgICAgICAgICBjb25zdCByZXNwb25zZSA9IEpTT04ucGFyc2Uod3NNZXNzYWdlRXZ0LmRhdGEpOw0KICAgICAgICAgICAgaWYgKHJlc3BvbnNlLmhhc093blByb3BlcnR5KCJ0b2tlbiIpKSB7DQogICAgICAgICAgICAgICAgZG9jdW1lbnQuY29va2llID0gIlRva2VuPSIgKyByZXNwb25zZVsidG9rZW4iXTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGlmIChyZXNwb25zZVsic3RhdHVzIl0gPT0gZmFsc2UpIHsNCiAgICAgICAgICAgICAgICBhbGVydChyZXNwb25zZVsiZXJyIl0pOw0KICAgICAgICAgICAgICAgIHJldHVybjsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGlmIChyZXNwb25zZS5oYXNPd25Qcm9wZXJ0eSgnb3BlbkxpbmsnKSkgew0KICAgICAgICAgICAgICAgIHdpbmRvdy5sb2NhdGlvbiA9IHJlc3BvbnNlWydvcGVuTGluayddOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgaWYgKHJlc3BvbnNlLmhhc093blByb3BlcnR5KCJyZWxvYWQiKSkgew0KICAgICAgICAgICAgICAgIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGlmIChyZXNwb25zZS5oYXNPd25Qcm9wZXJ0eSgiYWxlcnQiKSkgew0KICAgICAgICAgICAgICAgIGFsZXJ0KHJlc3BvbnNlWyJhbGVydCJdKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGlmIChyZXNwb25zZS5oYXNPd25Qcm9wZXJ0eSgibG9nb1VSTCIpKSB7DQogICAgICAgICAgICAgICAgdmFyIGRpdiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjaGFubmVsLWljb24iKTsNCiAgICAgICAgICAgICAgICBkaXYudmFsdWUgPSByZXNwb25zZVsibG9nb1VSTCJdOw0KICAgICAgICAgICAgICAgIGRpdi5jbGFzc05hbWUgPSAiY2hhbmdlZCI7DQogICAgICAgICAgICAgICAgcmV0dXJuOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgc3dpdGNoIChkYXRhWyJjbWQiXSkgew0KICAgICAgICAgICAgICAgIGNhc2UgInVwZGF0ZUxvZyI6DQogICAgICAgICAgICAgICAgICAgIFNFUlZFUlsibG9nIl0gPSByZXNwb25zZVsibG9nIl07DQogICAgICAgICAgICAgICAgICAgIGlmIChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29udGVudF9sb2ciKSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgc2hvd0xvZ3MoZmFsc2UpOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIHJldHVybjsNCiAgICAgICAgICAgICAgICBkZWZhdWx0Og0KICAgICAgICAgICAgICAgICAgICBTRVJWRVIgPSBuZXcgT2JqZWN0KCk7DQogICAgICAgICAgICAgICAgICAgIFNFUlZFUiA9IHJlc3BvbnNlOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGlmIChyZXNwb25zZS5oYXNPd25Qcm9wZXJ0eSgib3Blbk1lbnUiKSkgew0KICAgICAgICAgICAgICAgIHZhciBtZW51ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQocmVzcG9uc2VbIm9wZW5NZW51Il0pOw0KICAgICAgICAgICAgICAgIG1lbnUuY2xpY2soKTsNCiAgICAgICAgICAgICAgICBzaG93RWxlbWVudCgicG9wdXAiLCBmYWxzZSk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBpZiAocmVzcG9uc2UuaGFzT3duUHJvcGVydHkoInJlbG9hZCIpKSB7DQogICAgICAgICAgICAgICAgbG9jYXRpb24ucmVsb2FkKCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBpZiAocmVzcG9uc2UuaGFzT3duUHJvcGVydHkoIndpemFyZCIpKSB7DQogICAgICAgICAgICAgICAgY3JlYXRlTGF5b3V0KCk7DQogICAgICAgICAgICAgICAgY29uZmlndXJhdGlvbldpemFyZFtyZXNwb25zZVsid2l6YXJkIl1dLmNyZWF0ZVdpemFyZCgpOw0KICAgICAgICAgICAgICAgIHJldHVybjsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGNyZWF0ZUxheW91dCgpOw0KICAgICAgICB9Ow0KICAgIH0NCn0NCmZ1bmN0aW9uIGdldENvb2tpZShuYW1lKSB7DQogICAgdmFyIHZhbHVlID0gIjsgIiArIGRvY3VtZW50LmNvb2tpZTsNCiAgICB2YXIgcGFydHMgPSB2YWx1ZS5zcGxpdCgiOyAiICsgbmFtZSArICI9Iik7DQogICAgaWYgKHBhcnRzLmxlbmd0aCA9PSAyKSB7DQogICAgICAgIHJldHVybiBwYXJ0cy5wb3AoKS5zcGxpdCgiOyIpLnNoaWZ0KCk7DQogICAgfQ0KfQ0K" - webUI["html/js/settings_ts.js"] = "Y2xhc3MgU2V0dGluZ3NDYXRlZ29yeSB7DQogICAgY29uc3RydWN0b3IoKSB7DQogICAgICAgIHRoaXMuRG9jdW1lbnRJRCA9ICJjb250ZW50X3NldHRpbmdzIjsNCiAgICB9DQogICAgY3JlYXRlQ2F0ZWdvcnlIZWFkbGluZSh2YWx1ZSkgew0KICAgICAgICB2YXIgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIkg0Iik7DQogICAgICAgIGVsZW1lbnQuaW5uZXJIVE1MID0gdmFsdWU7DQogICAgICAgIHJldHVybiBlbGVtZW50Ow0KICAgIH0NCiAgICBjcmVhdGVIUigpIHsNCiAgICAgICAgdmFyIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJIUiIpOw0KICAgICAgICByZXR1cm4gZWxlbWVudDsNCiAgICB9DQogICAgY3JlYXRlU2V0dGluZ3Moc2V0dGluZ3NLZXkpIHsNCiAgICAgICAgdmFyIHNldHRpbmcgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJUUiIpOw0KICAgICAgICB2YXIgY29udGVudCA9IG5ldyBQb3B1cENvbnRlbnQoKTsNCiAgICAgICAgdmFyIGRhdGEgPSBTRVJWRVJbInNldHRpbmdzIl1bc2V0dGluZ3NLZXldOw0KICAgICAgICBzd2l0Y2ggKHNldHRpbmdzS2V5KSB7DQogICAgICAgICAgICAvLyBUZXh0IGlucHV0cw0KICAgICAgICAgICAgY2FzZSAidXBkYXRlIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLnVwZGF0ZS50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsICJ1cGRhdGUiLCBkYXRhLnRvU3RyaW5nKCkpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3suc2V0dGluZ3MudXBkYXRlLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJiYWNrdXAucGF0aCI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5iYWNrdXBQYXRoLnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgImJhY2t1cC5wYXRoIiwgZGF0YSk7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5zZXR0aW5ncy5iYWNrdXBQYXRoLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ0ZW1wLnBhdGgiOg0KICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MudGVtcFBhdGgudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCAidGVtcC5wYXRoIiwgZGF0YSk7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5zZXR0aW5ncy50bXBQYXRoLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ1c2VyLmFnZW50IjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLnVzZXJBZ2VudC50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsICJ1c2VyLmFnZW50IiwgZGF0YSk7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5zZXR0aW5ncy51c2VyQWdlbnQucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImJ1ZmZlci50aW1lb3V0IjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmJ1ZmZlclRpbWVvdXQudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCAiYnVmZmVyLnRpbWVvdXQiLCBkYXRhKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnNldHRpbmdzLmJ1ZmZlclRpbWVvdXQucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImZmbXBlZy5wYXRoIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmZmbXBlZ1BhdGgudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCAiZmZtcGVnLnBhdGgiLCBkYXRhKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnNldHRpbmdzLmZmbXBlZ1BhdGgucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImZmbXBlZy5vcHRpb25zIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmZmbXBlZ09wdGlvbnMudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCAiZmZtcGVnLm9wdGlvbnMiLCBkYXRhKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnNldHRpbmdzLmZmbXBlZ09wdGlvbnMucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInZsYy5wYXRoIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLnZsY1BhdGgudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCAidmxjLnBhdGgiLCBkYXRhKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnNldHRpbmdzLnZsY1BhdGgucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInZsYy5vcHRpb25zIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLnZsY09wdGlvbnMudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCAidmxjLm9wdGlvbnMiLCBkYXRhKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnNldHRpbmdzLnZsY09wdGlvbnMucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIC8vIENoZWNrYm94ZXMNCiAgICAgICAgICAgIGNhc2UgInRsc01vZGUiOg0KICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MudGxzTW9kZS50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChzZXR0aW5nc0tleSk7DQogICAgICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGE7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiZGlzYWxsb3dVUkxEdXBsaWNhdGVzIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmRpc2FsbG93VVJMRHVwbGljYXRlcy50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChzZXR0aW5nc0tleSk7DQogICAgICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGE7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiYXV0aGVudGljYXRpb24ud2ViIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmF1dGhlbnRpY2F0aW9uV0VCLnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KHNldHRpbmdzS2V5KTsNCiAgICAgICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJhdXRoZW50aWNhdGlvbi5wbXMiOg0KICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MuYXV0aGVudGljYXRpb25QTVMudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goc2V0dGluZ3NLZXkpOw0KICAgICAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImF1dGhlbnRpY2F0aW9uLm0zdSI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5hdXRoZW50aWNhdGlvbk0zVS50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChzZXR0aW5nc0tleSk7DQogICAgICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGE7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiYXV0aGVudGljYXRpb24ueG1sIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmF1dGhlbnRpY2F0aW9uWE1MLnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KHNldHRpbmdzS2V5KTsNCiAgICAgICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJhdXRoZW50aWNhdGlvbi5hcGkiOg0KICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MuYXV0aGVudGljYXRpb25BUEkudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goc2V0dGluZ3NLZXkpOw0KICAgICAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImZpbGVzLnVwZGF0ZSI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5maWxlc1VwZGF0ZS50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChzZXR0aW5nc0tleSk7DQogICAgICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGE7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiY2FjaGUuaW1hZ2VzIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmNhY2hlSW1hZ2VzLnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KHNldHRpbmdzS2V5KTsNCiAgICAgICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ4ZXBnLnJlcGxhY2UubWlzc2luZy5pbWFnZXMiOg0KICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MucmVwbGFjZUVtcHR5SW1hZ2VzLnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KHNldHRpbmdzS2V5KTsNCiAgICAgICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJzdG9yZUJ1ZmZlckluUkFNIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLnN0b3JlQnVmZmVySW5SQU0udGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goc2V0dGluZ3NLZXkpOw0KICAgICAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInh0ZXZlQXV0b1VwZGF0ZSI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy54dGV2ZUF1dG9VcGRhdGUudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goc2V0dGluZ3NLZXkpOw0KICAgICAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImFwaSI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5hcGkudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goc2V0dGluZ3NLZXkpOw0KICAgICAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImVuYWJsZU1hcHBlZENoYW5uZWxzIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmVuYWJsZU1hcHBlZENoYW5uZWxzLnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KHNldHRpbmdzS2V5KTsNCiAgICAgICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAvLyBTZWxlY3QNCiAgICAgICAgICAgIGNhc2UgImhvc3RJUCI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5ob3N0SVAudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciB0ZXh0ID0gU0VSVkVSWyJpcEFkZHJlc3Nlc1Y0SG9zdCJdOw0KICAgICAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBTRVJWRVJbImlwQWRkcmVzc2VzVjRIb3N0Il07DQogICAgICAgICAgICAgICAgdmFyIHNlbGVjdCA9IGNvbnRlbnQuY3JlYXRlU2VsZWN0KHRleHQsIHZhbHVlcywgZGF0YSwgc2V0dGluZ3NLZXkpOw0KICAgICAgICAgICAgICAgIHNlbGVjdC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChzZWxlY3QpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAidHVuZXIiOg0KICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MudHVuZXIudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciB0ZXh0ID0gbmV3IEFycmF5KCk7DQogICAgICAgICAgICAgICAgdmFyIHZhbHVlcyA9IG5ldyBBcnJheSgpOw0KICAgICAgICAgICAgICAgIGZvciAodmFyIGkgPSAxOyBpIDw9IDEwMDsgaSsrKSB7DQogICAgICAgICAgICAgICAgICAgIHRleHQucHVzaChpKTsNCiAgICAgICAgICAgICAgICAgICAgdmFsdWVzLnB1c2goaSk7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIHZhciBzZWxlY3QgPSBjb250ZW50LmNyZWF0ZVNlbGVjdCh0ZXh0LCB2YWx1ZXMsIGRhdGEsIHNldHRpbmdzS2V5KTsNCiAgICAgICAgICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQoc2VsZWN0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImVwZ1NvdXJjZSI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5lcGdTb3VyY2UudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciB0ZXh0ID0gWyJQTVMiLCAiWEVQRyJdOw0KICAgICAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBbIlBNUyIsICJYRVBHIl07DQogICAgICAgICAgICAgICAgdmFyIHNlbGVjdCA9IGNvbnRlbnQuY3JlYXRlU2VsZWN0KHRleHQsIHZhbHVlcywgZGF0YSwgc2V0dGluZ3NLZXkpOw0KICAgICAgICAgICAgICAgIHNlbGVjdC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChzZWxlY3QpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiZGVmYXVsdE1pc3NpbmdFUEciOg0KICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MuZGVmYXVsdE1pc3NpbmdFUEcudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciB0ZXh0ID0gWw0KICAgICAgICAgICAgICAgICAgICAiLSIsICIzMCBNaW51dGVzICgzMF9NaW51dGVzKSIsICI2MCBNaW51dGVzICg2MF9NaW51dGVzKSIsICI5MCBNaW51dGVzICg5MF9NaW51dGVzKSIsDQogICAgICAgICAgICAgICAgICAgICIxMjAgTWludXRlcyAoMTIwX01pbnV0ZXMpIiwgIjE4MCBNaW51dGVzICgxODBfTWludXRlcykiLCAiMjQwIE1pbnV0ZXMgKDI0MF9NaW51dGVzKSIsICIzNjAgTWludXRlcyAoMzYwX01pbnV0ZXMpIg0KICAgICAgICAgICAgICAgIF07DQogICAgICAgICAgICAgICAgdmFyIHZhbHVlcyA9IFsNCiAgICAgICAgICAgICAgICAgICAgIi0iLCAiMzBfTWludXRlcyIsICI2MF9NaW51dGVzIiwgIjkwX01pbnV0ZXMiLCAiMTIwX01pbnV0ZXMiLCAiMTgwX01pbnV0ZXMiLCAiMjQwX01pbnV0ZXMiLCAiMzYwX01pbnV0ZXMiDQogICAgICAgICAgICAgICAgXTsNCiAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCBkYXRhLCBzZXR0aW5nc0tleSk7DQogICAgICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKHNlbGVjdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJiYWNrdXAua2VlcCI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5iYWNrdXBLZWVwLnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgdGV4dCA9IFsiNSIsICIxMCIsICIyMCIsICIzMCIsICI0MCIsICI1MCJdOw0KICAgICAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBbIjUiLCAiMTAiLCAiMjAiLCAiMzAiLCAiNDAiLCAiNTAiXTsNCiAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCBkYXRhLCBzZXR0aW5nc0tleSk7DQogICAgICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKHNlbGVjdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJidWZmZXIuc2l6ZS5rYiI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5idWZmZXJTaXplLnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgdGV4dCA9IFsiMC41IE1CIiwgIjEgTUIiLCAiMiBNQiIsICIzIE1CIiwgIjQgTUIiLCAiNSBNQiIsICI2IE1CIiwgIjcgTUIiLCAiOCBNQiJdOw0KICAgICAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBbIjUxMiIsICIxMDI0IiwgIjIwNDgiLCAiMzA3MiIsICI0MDk2IiwgIjUxMjAiLCAiNjE0NCIsICI3MTY4IiwgIjgxOTIiXTsNCiAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCBkYXRhLCBzZXR0aW5nc0tleSk7DQogICAgICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKHNlbGVjdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJidWZmZXIiOg0KICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3Muc3RyZWFtQnVmZmVyaW5nLnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgdGV4dCA9IFsie3suc2V0dGluZ3Muc3RyZWFtQnVmZmVyaW5nLmluZm9fZmFsc2V9fSIsICJ4VGVWZTogKHt7LnNldHRpbmdzLnN0cmVhbUJ1ZmZlcmluZy5pbmZvX3h0ZXZlfX0pIiwgIkZGbXBlZzogKHt7LnNldHRpbmdzLnN0cmVhbUJ1ZmZlcmluZy5pbmZvX2ZmbXBlZ319KSIsICJWTEM6ICh7ey5zZXR0aW5ncy5zdHJlYW1CdWZmZXJpbmcuaW5mb192bGN9fSkiXTsNCiAgICAgICAgICAgICAgICB2YXIgdmFsdWVzID0gWyItIiwgInh0ZXZlIiwgImZmbXBlZyIsICJ2bGMiXTsNCiAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCBkYXRhLCBzZXR0aW5nc0tleSk7DQogICAgICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKHNlbGVjdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ1ZHB4eSI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy51ZHB4eS50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsICJ1ZHB4eSIsIGRhdGEpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3suc2V0dGluZ3MudWRweHkucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgfQ0KICAgICAgICByZXR1cm4gc2V0dGluZzsNCiAgICB9DQogICAgY3JlYXRlRGVzY3JpcHRpb24oc2V0dGluZ3NLZXkpIHsNCiAgICAgICAgdmFyIGRlc2NyaXB0aW9uID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVFIiKTsNCiAgICAgICAgdmFyIHRleHQ7DQogICAgICAgIHN3aXRjaCAoc2V0dGluZ3NLZXkpIHsNCiAgICAgICAgICAgIGNhc2UgInRsc01vZGUiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MudGxzTW9kZS5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImRpc2FsbG93VVJMRHVwbGljYXRlcyI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5kaXNhbGxvd1VSTER1cGxpY2F0ZXMuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJhdXRoZW50aWNhdGlvbi53ZWIiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MuYXV0aGVudGljYXRpb25XRUIuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJhdXRoZW50aWNhdGlvbi5tM3UiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MuYXV0aGVudGljYXRpb25NM1UuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJhdXRoZW50aWNhdGlvbi5wbXMiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MuYXV0aGVudGljYXRpb25QTVMuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJhdXRoZW50aWNhdGlvbi54bWwiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MuYXV0aGVudGljYXRpb25YTUwuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJhdXRoZW50aWNhdGlvbi5hcGkiOg0KICAgICAgICAgICAgICAgIGlmIChTRVJWRVJbInNldHRpbmdzIl1bImF1dGhlbnRpY2F0aW9uLndlYiJdID09IHRydWUpIHsNCiAgICAgICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5hdXRoZW50aWNhdGlvbkFQSS5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ4dGV2ZUF1dG9VcGRhdGUiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MueHRldmVBdXRvVXBkYXRlLmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiYmFja3VwLmtlZXAiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MuYmFja3VwS2VlcC5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImJhY2t1cC5wYXRoIjoNCiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLmJhY2t1cFBhdGguZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ0ZW1wLnBhdGgiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MudGVtcFBhdGguZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJidWZmZXIiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3Muc3RyZWFtQnVmZmVyaW5nLmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiYnVmZmVyLnNpemUua2IiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MuYnVmZmVyU2l6ZS5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInN0b3JlQnVmZmVySW5SQU0iOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3Muc3RvcmVCdWZmZXJJblJBTS5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImJ1ZmZlci50aW1lb3V0IjoNCiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLmJ1ZmZlclRpbWVvdXQuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ1c2VyLmFnZW50IjoNCiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLnVzZXJBZ2VudC5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImZmbXBlZy5wYXRoIjoNCiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLmZmbXBlZ1BhdGguZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJmZm1wZWcub3B0aW9ucyI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5mZm1wZWdPcHRpb25zLmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAidmxjLnBhdGgiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MudmxjUGF0aC5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInZsYy5vcHRpb25zIjoNCiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLnZsY09wdGlvbnMuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJlcGdTb3VyY2UiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MuZXBnU291cmNlLmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiaG9zdElQIjoNCiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLmhvc3RJUC5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInR1bmVyIjoNCiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLnR1bmVyLmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAidXBkYXRlIjoNCiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLnVwZGF0ZS5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImFwaSI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5hcGkuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJkZWZhdWx0TWlzc2luZ0VQRyI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5kZWZhdWx0TWlzc2luZ0VQRy5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImVuYWJsZU1hcHBlZENoYW5uZWxzIjoNCiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLmVuYWJsZU1hcHBlZENoYW5uZWxzLmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiZmlsZXMudXBkYXRlIjoNCiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLmZpbGVzVXBkYXRlLmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiY2FjaGUuaW1hZ2VzIjoNCiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLmNhY2hlSW1hZ2VzLmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAieGVwZy5yZXBsYWNlLm1pc3NpbmcuaW1hZ2VzIjoNCiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLnJlcGxhY2VFbXB0eUltYWdlcy5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInVkcHh5IjoNCiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLnVkcHh5LmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgICAgICB0ZXh0ID0gIiI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIH0NCiAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAiIjsNCiAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICB2YXIgcHJlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiUFJFIik7DQogICAgICAgIHByZS5pbm5lckhUTUwgPSB0ZXh0Ow0KICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKHByZSk7DQogICAgICAgIGRlc2NyaXB0aW9uLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgIGRlc2NyaXB0aW9uLmFwcGVuZENoaWxkKHRkUmlnaHQpOw0KICAgICAgICByZXR1cm4gZGVzY3JpcHRpb247DQogICAgfQ0KfQ0KY2xhc3MgU2V0dGluZ3NDYXRlZ29yeUl0ZW0gZXh0ZW5kcyBTZXR0aW5nc0NhdGVnb3J5IHsNCiAgICBjb25zdHJ1Y3RvcihoZWFkbGluZSwgc2V0dGluZ3NLZXlzKSB7DQogICAgICAgIHN1cGVyKCk7DQogICAgICAgIHRoaXMuaGVhZGxpbmUgPSBoZWFkbGluZTsNCiAgICAgICAgdGhpcy5zZXR0aW5nc0tleXMgPSBzZXR0aW5nc0tleXM7DQogICAgfQ0KICAgIGNyZWF0ZUNhdGVnb3J5KCkgew0KICAgICAgICB2YXIgaGVhZGxpbmUgPSB0aGlzLmNyZWF0ZUNhdGVnb3J5SGVhZGxpbmUodGhpcy5oZWFkbGluZSk7DQogICAgICAgIHZhciBzZXR0aW5nc0tleXMgPSB0aGlzLnNldHRpbmdzS2V5czsNCiAgICAgICAgdmFyIGRvYyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHRoaXMuRG9jdW1lbnRJRCk7DQogICAgICAgIGRvYy5hcHBlbmRDaGlsZChoZWFkbGluZSk7DQogICAgICAgIC8vIENyZWF0ZSBhIHRhYmxlIGZvciB0aGUgY2F0ZWdvcnkNCiAgICAgICAgdmFyIHRhYmxlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEFCTEUiKTsNCiAgICAgICAgdmFyIGtleXMgPSBzZXR0aW5nc0tleXMuc3BsaXQoIiwiKTsNCiAgICAgICAga2V5cy5mb3JFYWNoKHNldHRpbmdzS2V5ID0+IHsNCiAgICAgICAgICAgIHN3aXRjaCAoc2V0dGluZ3NLZXkpIHsNCiAgICAgICAgICAgICAgICBjYXNlICJhdXRoZW50aWNhdGlvbi5wbXMiOg0KICAgICAgICAgICAgICAgIGNhc2UgImF1dGhlbnRpY2F0aW9uLm0zdSI6DQogICAgICAgICAgICAgICAgY2FzZSAiYXV0aGVudGljYXRpb24ueG1sIjoNCiAgICAgICAgICAgICAgICBjYXNlICJhdXRoZW50aWNhdGlvbi5hcGkiOg0KICAgICAgICAgICAgICAgICAgICBpZiAoU0VSVkVSWyJzZXR0aW5ncyJdWyJhdXRoZW50aWNhdGlvbi53ZWIiXSA9PSBmYWxzZSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBkZWZhdWx0Og0KICAgICAgICAgICAgICAgICAgICB2YXIgaXRlbSA9IHRoaXMuY3JlYXRlU2V0dGluZ3Moc2V0dGluZ3NLZXkpOw0KICAgICAgICAgICAgICAgICAgICB2YXIgZGVzY3JpcHRpb24gPSB0aGlzLmNyZWF0ZURlc2NyaXB0aW9uKHNldHRpbmdzS2V5KTsNCiAgICAgICAgICAgICAgICAgICAgdGFibGUuYXBwZW5kQ2hpbGQoaXRlbSk7DQogICAgICAgICAgICAgICAgICAgIHRhYmxlLmFwcGVuZENoaWxkKGRlc2NyaXB0aW9uKTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICB9DQogICAgICAgIH0pOw0KICAgICAgICBkb2MuYXBwZW5kQ2hpbGQodGFibGUpOw0KICAgICAgICBkb2MuYXBwZW5kQ2hpbGQodGhpcy5jcmVhdGVIUigpKTsNCiAgICB9DQp9DQpmdW5jdGlvbiBzaG93U2V0dGluZ3MoKSB7DQogICAgZm9yIChsZXQgaSA9IDA7IGkgPCBzZXR0aW5nc0NhdGVnb3J5Lmxlbmd0aDsgaSsrKSB7DQogICAgICAgIHNldHRpbmdzQ2F0ZWdvcnlbaV0uY3JlYXRlQ2F0ZWdvcnkoKTsNCiAgICB9DQp9DQpmdW5jdGlvbiBzYXZlU2V0dGluZ3MoKSB7DQogICAgdmFyIGNtZCA9ICJzYXZlU2V0dGluZ3MiOw0KICAgIHZhciBkaXYgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29udGVudF9zZXR0aW5ncyIpOw0KICAgIHZhciBzZXR0aW5ncyA9IGRpdi5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCJjaGFuZ2VkIik7DQogICAgdmFyIG5ld1NldHRpbmdzID0gbmV3IE9iamVjdCgpOw0KICAgIGZvciAobGV0IGkgPSAwOyBpIDwgc2V0dGluZ3MubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgdmFyIG5hbWU7DQogICAgICAgIHZhciB2YWx1ZTsNCiAgICAgICAgc3dpdGNoIChzZXR0aW5nc1tpXS50YWdOYW1lKSB7DQogICAgICAgICAgICBjYXNlICJJTlBVVCI6DQogICAgICAgICAgICAgICAgc3dpdGNoIChzZXR0aW5nc1tpXS50eXBlKSB7DQogICAgICAgICAgICAgICAgICAgIGNhc2UgImNoZWNrYm94IjoNCiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWUgPSBzZXR0aW5nc1tpXS5uYW1lOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSBzZXR0aW5nc1tpXS5jaGVja2VkOw0KICAgICAgICAgICAgICAgICAgICAgICAgbmV3U2V0dGluZ3NbbmFtZV0gPSB2YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgICAgICBjYXNlICJ0ZXh0IjoNCiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWUgPSBzZXR0aW5nc1tpXS5uYW1lOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSBzZXR0aW5nc1tpXS52YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHN3aXRjaCAobmFtZSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgInVwZGF0ZSI6DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlID0gdmFsdWUuc3BsaXQoIiwiKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSB2YWx1ZS5maWx0ZXIoZnVuY3Rpb24gKGUpIHsgcmV0dXJuIGU7IH0pOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYXNlICJidWZmZXIudGltZW91dCI6DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlID0gcGFyc2VGbG9hdCh2YWx1ZSk7DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICBuZXdTZXR0aW5nc1tuYW1lXSA9IHZhbHVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiU0VMRUNUIjoNCiAgICAgICAgICAgICAgICBuYW1lID0gc2V0dGluZ3NbaV0ubmFtZTsNCiAgICAgICAgICAgICAgICB2YWx1ZSA9IHNldHRpbmdzW2ldLnZhbHVlOw0KICAgICAgICAgICAgICAgIC8vIElmIHRoZSB2YWx1ZSBpcyBhIG51bWJlciwgc3RvcmUgaXQgYXMgYSBudW1iZXINCiAgICAgICAgICAgICAgICBpZiAoaXNOYU4odmFsdWUpKSB7DQogICAgICAgICAgICAgICAgICAgIG5ld1NldHRpbmdzW25hbWVdID0gdmFsdWU7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgICAgICAgICBuZXdTZXR0aW5nc1tuYW1lXSA9IHBhcnNlSW50KHZhbHVlKTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIH0NCiAgICB9DQogICAgdmFyIGRhdGEgPSBuZXcgT2JqZWN0KCk7DQogICAgZGF0YVsic2V0dGluZ3MiXSA9IG5ld1NldHRpbmdzOw0KICAgIHZhciBzZXJ2ZXIgPSBuZXcgU2VydmVyKGNtZCk7DQogICAgc2VydmVyLnJlcXVlc3QoZGF0YSk7DQp9DQo=" - webUI["html/lang/en.json"] = "ew0KICAibWFpbk1lbnUiOg0KICB7DQogICAgIml0ZW0iOg0KICAgIHsNCiAgICAgICJwbGF5bGlzdCI6ICJQbGF5bGlzdCIsDQogICAgICAicG1zSUQiOiAiUE1TIElEIiwNCiAgICAgICJmaWx0ZXIiOiAiRmlsdGVyIiwNCiAgICAgICJ4bWx0diI6ICJYTUxUViIsDQogICAgICAibWFwcGluZyI6ICJNYXBwaW5nIiwNCiAgICAgICJ1c2VycyI6ICJVc2VycyIsDQogICAgICAic2V0dGluZ3MiOiAiU2V0dGluZ3MiLA0KICAgICAgImxvZyI6ICJMb2ciLA0KICAgICAgImxvZ291dCI6ICJMb2dvdXQiDQogICAgfSwNCiAgICAiaGVhZGxpbmUiOg0KICAgIHsNCiAgICAgICJwbGF5bGlzdCI6ICJMb2NhbCBvciByZW1vdGUgcGxheWxpc3RzIiwNCiAgICAgICJmaWx0ZXIiOiAiRmlsdGVyIHBsYXlsaXN0IiwNCiAgICAgICJ4bWx0diI6ICJMb2NhbCBvciByZW1vdGUgWE1MVFYgZmlsZXMiLA0KICAgICAgIm1hcHBpbmciOiAiTWFwIHBsYXlsaXN0IGNoYW5uZWxzIHRvIEVQRyBjaGFubmVscyIsDQogICAgICAidXNlcnMiOiAiVXNlciBtYW5hZ2VtZW50IiwNCiAgICAgICJzZXR0aW5ncyI6ICJTZXR0aW5ncyIsDQogICAgICAibG9nIjogIkxvZyIsDQogICAgICAibG9nb3V0IjogIkxvZ291dCINCiAgICB9DQogIH0sDQogICJjb25maXJtIjoNCiAgew0KICAgICJyZXN0b3JlIjogIkFsbCBkYXRhIHdpbGwgYmUgcmVwbGFjZWQgd2l0aCB0aG9zZSBmcm9tIHRoZSBiYWNrdXAuIFNob3VsZCB0aGUgZmlsZXMgYmUgcmVzdG9yZWQ/Ig0KICB9LA0KICAiYWxlcnQiOg0KICB7DQogICAgImZpbGVMb2FkaW5nRXJyb3IiOiAiRmlsZSBjb3VsZG4ndCBiZSBsb2FkZWQiLA0KICAgICJpbnZhbGlkQ2hhbm5lbE51bWJlciI6ICJJbnZhbGlkIGNoYW5uZWwgbnVtYmVyIiwNCiAgICAibWlzc2luZ0lucHV0IjogIk1pc3NpbmcgaW5wdXQiDQogIH0sDQogICJidXR0b24iOg0KICB7DQogICAgImJhY2siOiAiQmFjayIsDQogICAgImJhY2t1cCI6ICJCYWNrdXAiLA0KICAgICJidWxrRWRpdCI6ICJCdWxrIEVkaXQiLA0KICAgICJjYW5jZWwiOiAiQ2FuY2VsIiwNCiAgICAiZGVsZXRlIjogIkRlbGV0ZSIsDQogICAgImRvbmUiOiAiRG9uZSIsDQogICAgImxvZ2luIjogIkxvZ2luIiwNCiAgICAibmV3IjogIk5ldyIsDQogICAgIm5leHQiOiAiTmV4dCIsDQogICAgInJlc3RvcmUiOiAiUmVzdG9yZSIsDQogICAgInNhdmUiOiAiU2F2ZSIsDQogICAgInNlYXJjaCI6ICJTZWFyY2giLA0KICAgICJ1cGRhdGUiOiAiVXBkYXRlIiwNCiAgICAiY3JhZXRlQWNjb3VudCI6ICJDcmVhdGUgQWNjb3VudCIsDQogICAgInJlc2V0TG9ncyI6ICJSZXNldCBMb2dzIiwNCiAgICAidXBsb2FkTG9nbyI6ICJVcGxvYWQgTG9nbyINCiAgfSwNCiAgImZpbHRlciI6DQogIHsNCiAgICAidGFibGUiOg0KICAgIHsNCiAgICAgICJzdGFydGluZ0NoYW5uZWwiOiAiU3RhcnRpbmcgQ2guIE5vLiIsDQogICAgICAibmFtZSI6ICJGaWx0ZXIgTmFtZSIsDQogICAgICAidHlwZSI6ICJGaWx0ZXIgVHlwZSIsDQogICAgICAiZmlsdGVyIjogIkZpbHRlciINCiAgICB9LA0KICAgICJjdXN0b20iOiAiQ3VzdG9tIiwNCiAgICAiZ3JvdXAiOiAiTTNVIEdyb3VwIiwNCiAgICAibmFtZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIkZpbHRlciBOYW1lIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJGaWx0ZXIgbmFtZSIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgImRlc2NyaXB0aW9uIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiRGVzY3JpcHRpb24iLA0KICAgICAgInBsYWNlaG9sZGVyIjogIkRlc2NyaXB0aW9uIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAidHlwZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIlR5cGUiLA0KICAgICAgImdyb3VwVGl0bGUiOiAiR3JvdXAgVGl0bGUiLA0KICAgICAgImN1c3RvbUZpbHRlciI6ICJDdXN0b20gRmlsdGVyIg0KICAgIH0sDQogICAgImNhc2VTZW5zaXRpdmUiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJDYXNlIFNlbnNpdGl2ZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAiZmlsdGVyUnVsZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIkZpbHRlciBSdWxlIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJTcG9ydCB7SER9ICF7RVMsSVR9IiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAiZmlsdGVyR3JvdXAiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJHcm91cCBUaXRsZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJTZWxlY3QgYSBNM1UgZ3JvdXAuIChDb3VudGVyKTxicj5DaGFuZ2luZyB0aGUgZ3JvdXAgdGl0bGUgaW4gdGhlIE0zVSBpbnZhbGlkYXRlcyB0aGUgZmlsdGVyLiINCiAgICB9LA0KICAgICJpbmNsdWRlIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiSW5jbHVkZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiRkhELFVIRCIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiQ2hhbm5lbCBuYW1lIG11c3QgaW5jbHVkZS48YnI+KENvbW1hIHNlcGFyYXRlZCkgQ29tbWEgbWVhbnMgb3IiDQogICAgfSwNCiAgICAiZXhjbHVkZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIkV4Y2x1ZGUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIkVTLElUIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJDaGFubmVsIG5hbWUgbXVzdCBub3QgY29udGFpbi48YnI+KENvbW1hIHNlcGFyYXRlZCkgQ29tbWEgbWVhbnMgb3IiDQogICAgfSwNCiAgICAicHJlc2VydmVNYXBwaW5nIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiUHJlc2VydmUgRXhpc3RpbmcgTTNVPGJyPkNoYW5uZWwgTnVtYmVycyIsDQogICAgICAicGFsY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJQcmVzZXJ2ZSBleGlzdGluZyBNM1UgcGxheWxpc3QgY2hhbm5lbCBudW1iZXJzPyINCiAgICB9LA0KICAgICJzdGFydGluZ0NoYW5uZWwiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJTdGFydGluZyBDaGFubmVsIE51bWJlciIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfQ0KICB9LA0KICAicGxheWxpc3QiOg0KICB7DQogICAgInRhYmxlIjoNCiAgICB7DQogICAgICAicGxheWxpc3QiOiAiUGxheWxpc3QiLA0KICAgICAgInR1bmVyIjogIlR1bmVyIiwNCiAgICAgICJsYXN0VXBkYXRlIjogIkxhc3QgVXBkYXRlIiwNCiAgICAgICJhdmFpbGFiaWxpdHkiOiAiQXZhaWxhYmlsaXR5IiwNCiAgICAgICJ0eXBlIjogIlR5cGUiLA0KICAgICAgInN0cmVhbXMiOiAiU3RyZWFtcyIsDQogICAgICAiZ3JvdXBUaXRsZSI6ICJncm91cC10aXRsZSIsDQogICAgICAidHZnSUQiOiAidHZnLWlkIiwNCiAgICAgICJ1bmlxdWVJRCI6ICJVbmlxdWUgSUQiDQogICAgfSwNCiAgICAicGxheWxpc3RUeXBlIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiUGxheWxpc3QgdHlwZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAidHlwZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIlR5cGUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgIm5hbWUiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJOYW1lIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJQbGF5bGlzdCBuYW1lIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAiZGVzY3JpcHRpb24iOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJEZXNjcmlwdGlvbiIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiRGVzY3JpcHRpb24iLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJmaWxlTTNVIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiTTNVIEZpbGUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIkZpbGUgcGF0aCBvciBVUkwgb2YgdGhlIE0zVSIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgImZpbGVIREhSIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiSERIb21lUnVuIElQIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJJUCBhZGRyZXNzIGFuZCBwb3J0ICgxOTIuMTY4LjEuMTA6NTAwNCkiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJ0dW5lciI6DQogICAgew0KICAgICAgInRpdGxlIjogIlR1bmVyIC8gU3RyZWFtcyIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJOdW1iZXIgb2YgcGFyYWxsZWwgY29ubmVjdGlvbnMgdGhhdCBjYW4gYmUgZXN0YWJsaXNoZWQgdG8gdGhlIHByb3ZpZGVyLiA8YnI+T25seSBhdmFpbGFibGUgd2l0aCBhY3RpdmF0ZWQgYnVmZmVyLjxicj5OZXcgc2V0dGluZ3Mgd2lsbCBvbmx5IGJlIGFwcGxpZWQgYWZ0ZXIgcXVpdHRpbmcgYWxsIHN0cmVhbXMuIg0KICAgIH0NCiAgfSwNCiAgInhtbHR2IjoNCiAgew0KICAgICJ0YWJsZSI6DQogICAgew0KICAgICAgImd1aWRlIjogIkd1aWRlIiwNCiAgICAgICJsYXN0VXBkYXRlIjogIkxhc3QgVXBkYXRlIiwNCiAgICAgICJhdmFpbGFiaWxpdHkiOiAiQXZhaWxhYmlsaXR5IiwNCiAgICAgICJjaGFubmVscyI6ICJDaGFubmVscyIsDQogICAgICAicHJvZ3JhbXMiOiAiUHJvZ3JhbXMiDQogICAgfSwNCiAgICAibmFtZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIk5hbWUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIkd1aWRlIG5hbWUiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJkZXNjcmlwdGlvbiI6DQogICAgew0KICAgICAgInRpdGxlIjogIkRlc2NyaXB0aW9uIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJEZXNjcmlwdGlvbiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgImZpbGVYTUxUViI6DQogICAgew0KICAgICAgInRpdGxlIjogIlhNTFRWIEZpbGUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIkZpbGUgcGF0aCBvciBVUkwgb2YgdGhlIFhNTFRWIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfQ0KICB9LA0KICAibWFwcGluZyI6DQogIHsNCiAgICAidGFibGUiOg0KICAgIHsNCiAgICAgICJjaE5vIjogIkNoLiBOby4iLA0KICAgICAgImxvZ28iOiAiTG9nbyIsDQogICAgICAiY2hhbm5lbE5hbWUiOiAiQ2hhbm5lbCBOYW1lIiwNCiAgICAgICJ1cGRhdGVDaGFubmVsTmFtZVJlZ2V4IjogIlVwZC4gUnguIiwNCiAgICAgICJwbGF5bGlzdCI6ICJQbGF5bGlzdCIsDQogICAgICAiZ3JvdXBUaXRsZSI6ICJHcm91cCBUaXRsZSIsDQogICAgICAieG1sdHZGaWxlIjogIlhNTFRWIEZpbGUiLA0KICAgICAgInhtbHR2SUQiOiAiWE1MVFYgSUQiLA0KICAgICAgInRpbWVzaGlmdCI6ICJUaW1lc2hpZnQiDQogICAgfSwNCiAgICAiYWN0aXZlIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiQWN0aXZlIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJjaGFubmVsTmFtZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIkNoYW5uZWwgTmFtZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAiZGVzY3JpcHRpb24iOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJDaGFubmVsIERlc2NyaXB0aW9uIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJVc2VkIGJ5IHRoZSBEdW1teSBhcyBhbiBYTUwgZGVzY3JpcHRpb24iLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJ1cGRhdGVDaGFubmVsTmFtZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIlVwZGF0ZSBDaGFubmVsIE5hbWUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgInVwZGF0ZUNoYW5uZWxOYW1lUmVnZXgiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJDaGFubmVsIG5hbWUgdXBkYXRlIHJlZ2V4IiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJGb3IgZXhhbXBsZSBeUFBWWyBcXFxcLV9dPzEuKiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiT24gdXBkYXRlLCBpZiBhbnkgbmV3IGNoYW5uZWwgbmFtZSBtYXRjaGVzIHRoaXMgcmVnZXgsIHJlbmFtZSBjdXJyZW50IGNoYW5uZWwgdG8gdGhlIGZpcnN0IG1hdGNoaW5nIG5hbWUiDQogICAgfSwNCiAgICAidXBkYXRlQ2hhbm5lbE5hbWVCeUdyb3VwUmVnZXgiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJPbmx5IGJ5IGdyb3VwIHJlZ2V4IiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIlJlbmFtZSB0aGlzIGNoYW5uZWwgb25seSBpZiBjdXJyZW50IHVzZXItZGVmaW5lZCBncm91cCBtYXRjaGVzIHRoaXMgcmVnZXgiDQogICAgfSwNCiAgICAidXBkYXRlQ2hhbm5lbEdyb3VwIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiVXBkYXRlIENoYW5uZWwgR3JvdXAiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiSWYgY2hlY2tlZCwgdXNlIGdyb3VwIGZyb20gdGhlIGRhdGFiYXNlIg0KICAgIH0sDQogICAgImNoYW5uZWxMb2dvIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiTG9nbyBVUkwiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgInVwZGF0ZUNoYW5uZWxMb2dvIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiVXBkYXRlIENoYW5uZWwgTG9nbyIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAiZXBnQ2F0ZWdvcnkiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJFUEcgQ2F0ZWdvcnkiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgIm0zdUdyb3VwVGl0bGUiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJHcm91cCBUaXRsZSAoeHRldmUubTN1KSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAieG1sdHZGaWxlIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiWE1MVFYgRmlsZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAieG1sdHZDaGFubmVsIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiWE1MVFYgQ2hhbm5lbCIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAidGltZXNoaWZ0IjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiVGltZXNoaWZ0IiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIwIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfQ0KICB9LA0KICAidXNlcnMiOg0KICB7DQogICAgInRhYmxlIjoNCiAgICB7DQogICAgICAidXNlcm5hbWUiOiAiVXNlcm5hbWUiLA0KICAgICAgInBhc3N3b3JkIjogIlBhc3N3b3JkIiwNCiAgICAgICJ3ZWIiOiAiV0VCIiwNCiAgICAgICJwbXMiOiAiUE1TIiwNCiAgICAgICJtM3UiOiAiTTNVIiwNCiAgICAgICJ4bWwiOiAiWE1MIiwNCiAgICAgICJhcGkiOiAiQVBJIg0KICAgIH0sDQogICAgInVzZXJuYW1lIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiVXNlcm5hbWUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIlVzZXJuYW1lIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAicGFzc3dvcmQiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJQYXNzd29yZCIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiUGFzc3dvcmQiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJjb25maXJtIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiQ29uZmlybSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiUGFzc3dvcmQgY29uZmlybSIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgIndlYiI6DQogICAgew0KICAgICAgInRpdGxlIjogIldlYiBBY2Nlc3MiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgInBtcyI6DQogICAgew0KICAgICAgInRpdGxlIjogIlBNUyBBY2Nlc3MiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgIm0zdSI6DQogICAgew0KICAgICAgInRpdGxlIjogIk0zVSBBY2Nlc3MiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgInhtbCI6DQogICAgew0KICAgICAgInRpdGxlIjogIlhNTCBBY2Nlc3MiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgImFwaSI6DQogICAgew0KICAgICAgInRpdGxlIjogIkFQSSBBY2Nlc3MiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0NCiAgfSwNCiAgInNldHRpbmdzIjoNCiAgew0KICAgICJjYXRlZ29yeSI6DQogICAgew0KICAgICAgImdlbmVyYWwiOiAiR2VuZXJhbCIsDQogICAgICAibWFwcGluZyI6ICJNYXBwaW5nIiwNCiAgICAgICJmaWxlcyI6ICJGaWxlcyIsDQogICAgICAic3RyZWFtaW5nIjogIlN0cmVhbWluZyIsDQogICAgICAiYmFja3VwIjogIkJhY2t1cCIsDQogICAgICAiYXV0aGVudGljYXRpb24iOiAiQXV0aGVudGljYXRpb24iDQogICAgfSwNCiAgICAidXBkYXRlIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiU2NoZWR1bGUgZm9yIHVwZGF0aW5nIChQbGF5bGlzdCwgWE1MVFYsIEJhY2t1cCkiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIjAwMDAsMTAwMCwyMDAwIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJUaW1lIGluIDI0IGhvdXIgZm9ybWF0ICgwODAwID0gODowMCBhbSkuIE1vcmUgdGltZXMgY2FuIGJlIGVudGVyZWQgY29tbWEgc2VwYXJhdGVkLiBMZWF2ZSB0aGlzIGZpZWxkIGVtcHR5IGlmIG5vIHVwZGF0ZXMgYXJlIHRvIGJlIGNhcnJpZWQgb3V0LiINCiAgICB9LA0KICAgICJhcGkiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJBUEkgSW50ZXJmYWNlIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJWaWEgQVBJIGludGVyZmFjZSBpdCBpcyBwb3NzaWJsZSB0byBzZW5kIGNvbW1hbmRzIHRvIHhUZVZlLiBBUEkgZG9jdW1lbnRhdGlvbiBpcyA8YSBocmVmPSdodHRwczovL2dpdGh1Yi5jb20veHRldmUtcHJvamVjdC94VGVWZS1Eb2N1bWVudGF0aW9uL2Jsb2IvbWFzdGVyL2VuL2NvbmZpZ3VyYXRpb24ubWQjYXBpJz5oZXJlPC9hPiINCiAgICB9LA0KICAgICJkZWZhdWx0TWlzc2luZ0VQRyI6DQogICAgew0KICAgICAgInRpdGxlIjogIkZpbGwgTWlzc2luZyBFUEcgRGF0YSIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiV2hlbiB0aGVyZSBpcyBubyBtYXRjaGluZyBFUEcgZGF0YSBmb3IgY2hhbm5lbCwgPGJyPmF1dG9maWxsIHdpdGggeFRlVmUgZHVtbXkgRVBHIGRhdGE/Ig0KICAgIH0sDQogICAgImVuYWJsZU1hcHBlZENoYW5uZWxzIjogew0KICAgICAgInRpdGxlIjogIkVuYWJsZSBtYXBwZWQgY2hhbm5lbHMiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIkF1dG9tYXRpY2FsbHkgZW5hYmxlIGNoYW5uZWxzIHdpdGggYXNzaWduZWQgRVBHIGRhdGEiDQogICAgfSwNCiAgICAiZGlzYWxsb3dVUkxEdXBsaWNhdGVzIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiRGlzYWxsb3cgVVJMIGR1cGxpY2F0ZXMiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIklmIGNoZWNrZWQsIGRvIG5vdCBhZGQgYSBuZXcgY2hhbm5lbCBmcm9tIHBsYXlsaXN0IGlmIGNoYW5uZWwgd2l0aCBzdWNoIFVSTCBhbHJlYWR5IGV4aXN0cyINCiAgICB9LA0KICAgICJlcGdTb3VyY2UiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJFUEcgU291cmNlIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJQTVM6PGJyPi0gVXNlIEVQRyBkYXRhIGZyb20gUGxleCBvciBFbWJ5IDxicj48YnI+WEVQRzo8YnI+LSBVc2Ugb2Ygb25lIG9yIG1vcmUgWE1MVFYgZmlsZXM8YnI+LSBDaGFubmVsIG1hbmFnZW1lbnQ8YnI+LSBNM1UgLyBYTUxUViBleHBvcnQgKEhUVFAgbGluayBmb3IgSVBUViBhcHBzKSINCiAgICB9LA0KICAgICJ0dW5lciI6DQogICAgew0KICAgICAgInRpdGxlIjogIk51bWJlciBvZiBUdW5lcnMiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIk51bWJlciBvZiBwYXJhbGxlbCBjb25uZWN0aW9ucyB0aGF0IGNhbiBiZSBlc3RhYmxpc2hlZCB0byB0aGUgcHJvdmlkZXIuPGJyPkF2YWlsYWJsZSBmb3I6IFBsZXgsIEVtYnkgKEhESFIpLCBNM1UgKHdpdGggYWN0aXZlIGJ1ZmZlcikuPGJyPkFmdGVyIGEgY2hhbmdlLCB4VGVWZSBtdXN0IGJlIGRlbGV0ZSBpbiB0aGUgUGxleCAvIEVtYnkgRFZSIHNldHRpbmdzIGFuZCBzZXQgdXAgYWdhaW4uIg0KICAgIH0sDQogICAgImhvc3RJUCI6DQogICAgew0KICAgICAgInRpdGxlIjogIkhvc3QgSVAiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIklQIGFkZHJlc3MgeFRlVmUgd2lsbCB1c2UgdG8gZm9ybSBNM1UgYW5kIFhNTFRWIGZpbGVzIg0KICAgIH0sDQogICAgInRsc01vZGUiOiB7DQogICAgICAidGl0bGUiOiAiVExTIChIVFRQUykgbW9kZSIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiQ2hhbmdlcyB3ZWIgc2VydmVyIHByb3RvY29sIHRvIEhUVFBTLjxicj5Gb3IgZGV0YWlscywgc2VlIDxhPmh0dHBzOi8vZ2l0aHViLmNvbS9TQ1AwMDIveFRlVmUjdGxzLW1vZGU8L2E+Ig0KICAgIH0sDQogICAgImZpbGVzVXBkYXRlIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiVXBkYXRlcyBhbGwgZmlsZXMgYXQgc3RhcnR1cCIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiVXBkYXRlcyBhbGwgcGxheWxpc3RzLCB0dW5lciBhbmQgWE1MVFYgZmlsZXMgYXQgc3RhcnR1cC4iDQogICAgfSwNCiAgICAiY2FjaGVJbWFnZXMiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJJbWFnZSBDYWNoaW5nIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJBbGwgaW1hZ2VzIGZyb20gdGhlIFhNTFRWIGZpbGUgYXJlIGNhY2hlZCwgYWxsb3dpbmcgZmFzdGVyIHJlbmRlcmluZyBvZiB0aGUgZ3JpZCBpbiB0aGUgY2xpZW50Ljxicj5Eb3dubG9hZGluZyB0aGUgaW1hZ2VzIG1heSB0YWtlIGEgd2hpbGUgYW5kIHdpbGwgYmUgZG9uZSBpbiB0aGUgYmFja2dyb3VuZC4iDQogICAgfSwNCiAgICAicmVwbGFjZUVtcHR5SW1hZ2VzIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiUmVwbGFjZSBtaXNzaW5nIHByb2dyYW0gaW1hZ2VzIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJJZiB0aGUgcG9zdGVyIGluIHRoZSBYTUxUViBwcm9ncmFtIGlzIG1pc3NpbmcsIHRoZSBjaGFubmVsIGxvZ28gd2lsbCBiZSB1c2VkLiINCiAgICB9LA0KICAgICJ4dGV2ZUF1dG9VcGRhdGUiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJBdXRvbWF0aWMgdXBkYXRlIG9mIHhUZVZlIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJJZiBhIG5ldyB2ZXJzaW9uIG9mIHhUZVZlIGlzIGF2YWlsYWJsZSwgaXQgd2lsbCBiZSBhdXRvbWF0aWNhbGx5IGluc3RhbGxlZC4gVGhlIHVwZGF0ZXMgYXJlIGRvd25sb2FkZWQgZnJvbSBHaXRIdWIuIg0KICAgIH0sDQogICAgInN0cmVhbUJ1ZmZlcmluZyI6DQogICAgew0KICAgICAgInRpdGxlIjogIlN0cmVhbSBCdWZmZXIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIkZ1bmN0aW9ucyBvZiB0aGUgYnVmZmVyOjxicj4tIFRoZSBzdHJlYW0gaXMgcGFzc2VkIGZyb20geFRlVmUsIEZGbXBlZyBvciBWTEMgdG8gUGxleCwgRW1ieSBvciBNM1UgUGxheWVyPGJyPi0gU21hbGwgamVya2luZyBvZiB0aGUgc3RyZWFtcyBjYW4gYmUgY29tcGVuc2F0ZWQ8YnI+LSBITFMgLyBNM1U4IHN1cHBvcnQ8YnI+LSBSVFAgLyBSVFBTIHN1cHBvcnQgKG9ubHkgRkZtcGVnIG9yIFZMQyk8YnI+LSBSZS1zdHJlYW1pbmc8YnI+LSBTZXBhcmF0ZSB0dW5lciBsaW1pdCBmb3IgZWFjaCBwbGF5bGlzdCIsDQogICAgICAiaW5mb19mYWxzZSI6ICJObyBCdWZmZXIgKENsaWVudCBjb25uZWN0cyB0byB0aGUgc3RyZWFtaW5nIHNlcnZlcikiLA0KICAgICAgImluZm9feHRldmUiOiAieFRlVmUgY29ubmVjdHMgdG8gdGhlIHN0cmVhbWluZyBzZXJ2ZXIiLA0KICAgICAgImluZm9fZmZtcGVnIjogIkZGbXBlZyBjb25uZWN0cyB0byB0aGUgc3RyZWFtaW5nIHNlcnZlciIsDQogICAgICAiaW5mb192bGMiOiAiVkxDIGNvbm5lY3RzIHRvIHRoZSBzdHJlYW1pbmcgc2VydmVyIg0KDQogICAgfSwNCiAgICAidWRweHkiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJVRFB4eSBhZGRyZXNzIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJUaGUgYWRkcmVzcyBvZiB5b3VyIFVEUHh5IHNlcnZlci4gSWYgc2V0LCBhbmQgdGhlIGNoYW5uZWwgVVJMcyBpbiB0aGUgbTN1IGlzIG11bHRpY2FzdCwgeFRlVmUgd2lsbCByZXdyaXRlIGl0IHNvIHRoYXQgaXQgaXMgYWNjZXNzZWQgdmlhIHRoZSBVRFB4eSBzZXJ2aWNlLiIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiaG9zdDpwb3J0Ig0KICAgIH0sDQogICAgImZmbXBlZ1BhdGgiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJGRm1wZWcgQmluYXJ5IFBhdGgiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIlBhdGggdG8gRkZtcGVnIGJpbmFyeS4iLA0KICAgICAgInBsYWNlaG9sZGVyIjogIi9wYXRoL3RvL2ZmbXBlZyINCiAgICB9LA0KICAgICJmZm1wZWdPcHRpb25zIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiRkZtcGVnIE9wdGlvbnMiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIkZGbXBlZyBvcHRpb25zLjxicj5Pbmx5IGNoYW5nZSBpZiB5b3Uga25vdyB3aGF0IHlvdSBhcmUgZG9pbmcuPGJyPkxlYXZlIGJsYW5rIHRvIHNldCBkZWZhdWx0IHNldHRpbmdzLiIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiTGVhdmUgYmxhbmsgdG8gc2V0IGRlZmF1bHQgc2V0dGluZ3MiDQogICAgfSwNCiAgICAidmxjUGF0aCI6DQogICAgew0KICAgICAgInRpdGxlIjogIlZMQyAvIENWTEMgQmluYXJ5IFBhdGgiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIlBhdGggdG8gVkxDIC8gQ1ZMQyBiaW5hcnkuIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIvcGF0aC90by9jdmxjIg0KICAgIH0sDQogICAgInZsY09wdGlvbnMiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJWTEMgLyBDVkxDIE9wdGlvbnMiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIlZMQyAvIENWTEMgb3B0aW9ucy48YnI+T25seSBjaGFuZ2UgaWYgeW91IGtub3cgd2hhdCB5b3UgYXJlIGRvaW5nLjxicj5MZWF2ZSBibGFuayB0byBzZXQgZGVmYXVsdCBzZXR0aW5ncy4iLA0KICAgICAgInBsYWNlaG9sZGVyIjogIkxlYXZlIGJsYW5rIHRvIHNldCBkZWZhdWx0IHNldHRpbmdzIg0KICAgIH0sDQogICAgImJ1ZmZlclNpemUiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJCdWZmZXIgU2l6ZSIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiQnVmZmVyIHNpemUgaW4gTUIuPGJyPk0zVTg6IElmIHRoZSBUUyBzZWdtZW50IHNtYWxsZXIgdGhlbiB0aGUgYnVmZmVyIHNpemUsIHRoZSBmaWxlIHNpemUgb2YgdGhlIHNlZ21lbnQgaXMgdXNlZC4iDQogICAgfSwNCiAgICAic3RvcmVCdWZmZXJJblJBTSI6DQogICAgew0KICAgICAgInRpdGxlIjogIlN0b3JlIGJ1ZmZlciBpbiBSQU0iLA0KICAgICAgImRlc2NyaXB0aW9uIjogIklmIGNoZWNrZWQsIHdyaXRlIGJ1ZmZlciB0byBSQU0gaW5zdGVhZCBvZiB3cml0aW5nIHRvIGRpc2siDQogICAgfSwNCiAgICAiYnVmZmVyVGltZW91dCI6DQogICAgew0KICAgICAgInRpdGxlIjogIlRpbWVvdXQgZm9yIG5ldyBjbGllbnQgY29ubmVjdGlvbnMiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIlRoZSB4VGVWZSBidWZmZXIgd2FpdHMgdW50aWwgbmV3IGNsaWVudCBjb25uZWN0aW9ucyBhcmUgZXN0YWJsaXNoZWQuIEhlbHBmdWwgZm9yIGZhc3QgY2hhbm5lbCBzd2l0Y2hpbmcuIFZhbHVlIGluIG1pbGxpc2Vjb25kcy4iLA0KICAgICAgInBsYWNlaG9sZGVyIjogIjEwMCINCiAgICB9LA0KICAgICJ1c2VyQWdlbnQiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJVc2VyIEFnZW50IiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJVc2VyIEFnZW50IGZvciBIVFRQIHJlcXVlc3RzLiBGb3IgZXZlcnkgSFRUUCBjb25uZWN0aW9uLCB0aGlzIHZhbHVlIGlzIHVzZWQgZm9yIHRoZSB1c2VyIGFnZW50LiBTaG91bGQgb25seSBiZSBjaGFuZ2VkIGlmIHhUZVZlIGlzIGJsb2NrZWQuIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJ4VGVWZSINCiAgICB9LA0KICAgICJiYWNrdXBQYXRoIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiTG9jYXRpb24gZm9yIGF1dG9tYXRpYyBiYWNrdXBzIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIvbW50L2RhdGEvYmFja3VwL3h0ZXZlLyIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiQmVmb3JlIGFueSB1cGRhdGUgb2YgdGhlIHByb3ZpZGVyIGRhdGEgYnkgdGhlIHNjaGVkdWxlLCB4VGVWZSBjcmVhdGVzIGEgYmFja3VwLiBUaGUgcGF0aCBmb3IgdGhlIGF1dG9tYXRpYyBiYWNrdXBzIGNhbiBiZSBjaGFuZ2VkLiB4VGVWZSByZXF1aXJlcyB3cml0ZSBwZXJtaXNzaW9uIGZvciB0aGlzIGZvbGRlci4iDQogICAgfSwNCiAgICAidGVtcFBhdGgiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJMb2NhdGlvbiBmb3IgdGhlIHRlbXBvcmFyeSBmaWxlcyIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiL3RtcC94dGV2ZS8iLA0KICAgICAgImRlc2NyaXB0aW9uIjogIkxvY2F0aW9uIGZvciB0aGUgYnVmZmVyIGZpbGVzLiINCiAgICB9LA0KICAgICJiYWNrdXBLZWVwIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiTnVtYmVyIG9mIGJhY2t1cHMgdG8ga2VlcCIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiTnVtYmVyIG9mIGJhY2t1cHMgdG8ga2VlcC4gT2xkZXIgYmFja3VwcyBhcmUgYXV0b21hdGljYWxseSBkZWxldGVkLiINCiAgICB9LA0KICAgICJhdXRoZW50aWNhdGlvbldFQiI6DQogICAgew0KICAgICAgInRpdGxlIjogIldFQiBBdXRoZW50aWNhdGlvbiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiQWNjZXNzIHRvIHRoZSB3ZWIgaW50ZXJmYWNlIG9ubHkgcG9zc2libGUgd2l0aCBjcmVkZW50aWFscy4iDQogICAgfSwNCiAgICAiYXV0aGVudGljYXRpb25QTVMiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJQTVMgQXV0aGVudGljYXRpb24iLA0KICAgICAgImRlc2NyaXB0aW9uIjogIlBsZXggcmVxdWVzdHMgYXJlIG9ubHkgcG9zc2libGUgd2l0aCBhdXRoZW50aWNhdGlvbi4gPGJyPjxiPldhcm5pbmchISE8L2I+IEFmdGVyIGFjdGl2YXRpbmcgdGhpcyBmdW5jdGlvbiB4VGVWZSBtdXN0IGJlIGRlbGV0ZSBpbiB0aGUgUE1TIERWUiBzZXR0aW5ncyBhbmQgc2V0IHVwIGFnYWluLiINCiAgICB9LA0KICAgICJhdXRoZW50aWNhdGlvbk0zVSI6DQogICAgew0KICAgICAgInRpdGxlIjogIk0zVSBBdXRoZW50aWNhdGlvbiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiRG93bmxvYWRpbmcgdGhlIHh0ZXZlLm0zdSBmaWxlIHZpYSBhbiBIVFRQIHJlcXVlc3QgaXMgb25seSBwb3NzaWJsZSB3aXRoIGF1dGhlbnRpY2F0aW9uLiINCiAgICB9LA0KICAgICJhdXRoZW50aWNhdGlvblhNTCI6DQogICAgew0KICAgICAgInRpdGxlIjogIlhNTCBBdXRoZW50aWNhdGlvbiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiRG93bmxvYWRpbmcgdGhlIHh0ZXZlLnhtbCBmaWxlIHZpYSBhbiBIVFRQIHJlcXVlc3QgaXMgb25seSBwb3NzaWJsZSB3aXRoIGF1dGhlbnRpY2F0aW9uIg0KICAgIH0sDQogICAgImF1dGhlbnRpY2F0aW9uQVBJIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiQVBJIEF1dGhlbnRpY2F0aW9uIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJBY2Nlc3MgdG8gdGhlIEFQSSBpbnRlcmZhY2UgaXMgb25seSBwb3NzaWJsZSB3aXRoIGF1dGhlbnRpY2F0aW9uLiINCiAgICB9DQogIH0sDQogICJ3aXphcmQiOg0KICB7DQogICAgImVwZ1NvdXJjZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIkVQRyBTb3VyY2UiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIlBNUzo8YnI+LSBVc2UgRVBHIGRhdGEgZnJvbSBQbGV4IG9yIEVtYnkgPGJyPjxicj5YRVBHOjxicj4tIFVzZSBvZiBvbmUgb3IgbW9yZSBYTUxUViBmaWxlczxicj4tIENoYW5uZWwgbWFuYWdlbWVudDxicj4tIE0zVSAvIFhNTFRWIGV4cG9ydCAoSFRUUCBsaW5rIGZvciBJUFRWIGFwcHMpIg0KICAgIH0sDQogICAgInR1bmVyIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiTnVtYmVyIG9mIHR1bmVycyIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiTnVtYmVyIG9mIHBhcmFsbGVsIGNvbm5lY3Rpb25zIHRoYXQgY2FuIGJlIGVzdGFibGlzaGVkIHRvIHRoZSBwcm92aWRlci48YnI+QXZhaWxhYmxlIGZvcjogUGxleCwgRW1ieSAoSERIUiksIE0zVSAod2l0aCBhY3RpdmUgYnVmZmVyKS48YnI+QWZ0ZXIgYSBjaGFuZ2UsIHhUZVZlIG11c3QgYmUgZGVsZXRlIGluIHRoZSBQbGV4IC8gRW1ieSBEVlIgc2V0dGluZ3MgYW5kIHNldCB1cCBhZ2Fpbi4iDQogICAgfSwNCiAgICAibTN1IjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiTTNVIFBsYXlsaXN0IiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJGaWxlIHBhdGggb3IgVVJMIG9mIHRoZSBNM1UiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIkxvY2FsIG9yIHJlbW90ZSBwbGF5bGlzdHMiDQogICAgfSwNCiAgICAieG1sdHYiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJYTUxUViBGaWxlIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJGaWxlIHBhdGggb3IgVVJMIG9mIHRoZSBYTUxUViIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiTG9jYWwgb3IgcmVtb3RlIFhNTFRWIGZpbGUiDQogICAgfQ0KICB9LA0KICAibG9naW4iOg0KICB7DQogICAgImZhaWxlZCI6ICJVc2VyIGF1dGhlbnRpY2F0aW9uIGZhaWxlZCIsDQogICAgImhlYWRsaW5lIjogIkxvZ2luIiwNCiAgICAidXNlcm5hbWUiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJVc2VybmFtZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiVXNlcm5hbWUiDQogICAgfSwNCiAgICAicGFzc3dvcmQiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJQYXNzd29yZCIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiUGFzc3dvcmQiDQogICAgfQ0KICB9LA0KICAiYWNjb3VudCI6DQogIHsNCiAgICAiZmFpbGVkIjogIlBhc3N3b3JkIGRvZXMgbm90IG1hdGNoIiwNCiAgICAiaGVhZGxpbmUiOiAiQ3JlYXRlIHVzZXIgYWNjb3VudCIsDQogICAgInVzZXJuYW1lIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiVXNlcm5hbWUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIlVzZXJuYW1lIg0KICAgIH0sDQogICAgInBhc3N3b3JkIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiUGFzc3dvcmQiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIlBhc3N3b3JkIg0KICAgIH0sDQogICAgImNvbmZpcm0iOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJDb25maXJtIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJDb25maXJtIg0KICAgIH0NCiAgfQ0KfQ==" + webUI["html/js/settings_ts.js"] = "Y2xhc3MgU2V0dGluZ3NDYXRlZ29yeSB7DQogICAgY29uc3RydWN0b3IoKSB7DQogICAgICAgIHRoaXMuRG9jdW1lbnRJRCA9ICJjb250ZW50X3NldHRpbmdzIjsNCiAgICB9DQogICAgY3JlYXRlQ2F0ZWdvcnlIZWFkbGluZSh2YWx1ZSkgew0KICAgICAgICB2YXIgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIkg0Iik7DQogICAgICAgIGVsZW1lbnQuaW5uZXJIVE1MID0gdmFsdWU7DQogICAgICAgIHJldHVybiBlbGVtZW50Ow0KICAgIH0NCiAgICBjcmVhdGVIUigpIHsNCiAgICAgICAgdmFyIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJIUiIpOw0KICAgICAgICByZXR1cm4gZWxlbWVudDsNCiAgICB9DQogICAgY3JlYXRlU2V0dGluZ3Moc2V0dGluZ3NLZXkpIHsNCiAgICAgICAgdmFyIHNldHRpbmcgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJUUiIpOw0KICAgICAgICB2YXIgY29udGVudCA9IG5ldyBQb3B1cENvbnRlbnQoKTsNCiAgICAgICAgdmFyIGRhdGEgPSBTRVJWRVJbInNldHRpbmdzIl1bc2V0dGluZ3NLZXldOw0KICAgICAgICBzd2l0Y2ggKHNldHRpbmdzS2V5KSB7DQogICAgICAgICAgICAvLyBUZXh0IGlucHV0cw0KICAgICAgICAgICAgY2FzZSAidXBkYXRlIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLnVwZGF0ZS50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsICJ1cGRhdGUiLCBkYXRhLnRvU3RyaW5nKCkpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3suc2V0dGluZ3MudXBkYXRlLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJiYWNrdXAucGF0aCI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5iYWNrdXBQYXRoLnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgImJhY2t1cC5wYXRoIiwgZGF0YSk7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5zZXR0aW5ncy5iYWNrdXBQYXRoLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ0ZW1wLnBhdGgiOg0KICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MudGVtcFBhdGgudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCAidGVtcC5wYXRoIiwgZGF0YSk7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5zZXR0aW5ncy50bXBQYXRoLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ1c2VyLmFnZW50IjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLnVzZXJBZ2VudC50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsICJ1c2VyLmFnZW50IiwgZGF0YSk7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5zZXR0aW5ncy51c2VyQWdlbnQucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImJ1ZmZlci50aW1lb3V0IjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmJ1ZmZlclRpbWVvdXQudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCAiYnVmZmVyLnRpbWVvdXQiLCBkYXRhKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnNldHRpbmdzLmJ1ZmZlclRpbWVvdXQucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImZmbXBlZy5wYXRoIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmZmbXBlZ1BhdGgudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCAiZmZtcGVnLnBhdGgiLCBkYXRhKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnNldHRpbmdzLmZmbXBlZ1BhdGgucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImZmbXBlZy5vcHRpb25zIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmZmbXBlZ09wdGlvbnMudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCAiZmZtcGVnLm9wdGlvbnMiLCBkYXRhKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnNldHRpbmdzLmZmbXBlZ09wdGlvbnMucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInZsYy5wYXRoIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLnZsY1BhdGgudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCAidmxjLnBhdGgiLCBkYXRhKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnNldHRpbmdzLnZsY1BhdGgucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInZsYy5vcHRpb25zIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLnZsY09wdGlvbnMudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCAidmxjLm9wdGlvbnMiLCBkYXRhKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnNldHRpbmdzLnZsY09wdGlvbnMucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIC8vIENoZWNrYm94ZXMNCiAgICAgICAgICAgIGNhc2UgInRsc01vZGUiOg0KICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MudGxzTW9kZS50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChzZXR0aW5nc0tleSk7DQogICAgICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGE7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiZGlzYWxsb3dVUkxEdXBsaWNhdGVzIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmRpc2FsbG93VVJMRHVwbGljYXRlcy50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChzZXR0aW5nc0tleSk7DQogICAgICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGE7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiYXV0aGVudGljYXRpb24ud2ViIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmF1dGhlbnRpY2F0aW9uV0VCLnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KHNldHRpbmdzS2V5KTsNCiAgICAgICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJhdXRoZW50aWNhdGlvbi5wbXMiOg0KICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MuYXV0aGVudGljYXRpb25QTVMudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goc2V0dGluZ3NLZXkpOw0KICAgICAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImF1dGhlbnRpY2F0aW9uLm0zdSI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5hdXRoZW50aWNhdGlvbk0zVS50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChzZXR0aW5nc0tleSk7DQogICAgICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGE7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiYXV0aGVudGljYXRpb24ueG1sIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmF1dGhlbnRpY2F0aW9uWE1MLnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KHNldHRpbmdzS2V5KTsNCiAgICAgICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJhdXRoZW50aWNhdGlvbi5hcGkiOg0KICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MuYXV0aGVudGljYXRpb25BUEkudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goc2V0dGluZ3NLZXkpOw0KICAgICAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImZpbGVzLnVwZGF0ZSI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5maWxlc1VwZGF0ZS50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChzZXR0aW5nc0tleSk7DQogICAgICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGE7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiY2FjaGUuaW1hZ2VzIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmNhY2hlSW1hZ2VzLnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KHNldHRpbmdzS2V5KTsNCiAgICAgICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ4ZXBnLnJlcGxhY2UubWlzc2luZy5pbWFnZXMiOg0KICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MucmVwbGFjZUVtcHR5SW1hZ2VzLnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KHNldHRpbmdzS2V5KTsNCiAgICAgICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJzdG9yZUJ1ZmZlckluUkFNIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLnN0b3JlQnVmZmVySW5SQU0udGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goc2V0dGluZ3NLZXkpOw0KICAgICAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInh0ZXZlQXV0b1VwZGF0ZSI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy54dGV2ZUF1dG9VcGRhdGUudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goc2V0dGluZ3NLZXkpOw0KICAgICAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImNsZWFyWE1MVFZDYWNoZSI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5jbGVhclhNTFRWQ2FjaGUudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goc2V0dGluZ3NLZXkpOw0KICAgICAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImFwaSI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5hcGkudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goc2V0dGluZ3NLZXkpOw0KICAgICAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImVuYWJsZU1hcHBlZENoYW5uZWxzIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmVuYWJsZU1hcHBlZENoYW5uZWxzLnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KHNldHRpbmdzS2V5KTsNCiAgICAgICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAvLyBTZWxlY3QNCiAgICAgICAgICAgIGNhc2UgImhvc3RJUCI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5ob3N0SVAudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciB0ZXh0ID0gU0VSVkVSWyJpcEFkZHJlc3Nlc1Y0SG9zdCJdOw0KICAgICAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBTRVJWRVJbImlwQWRkcmVzc2VzVjRIb3N0Il07DQogICAgICAgICAgICAgICAgdmFyIHNlbGVjdCA9IGNvbnRlbnQuY3JlYXRlU2VsZWN0KHRleHQsIHZhbHVlcywgZGF0YSwgc2V0dGluZ3NLZXkpOw0KICAgICAgICAgICAgICAgIHNlbGVjdC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChzZWxlY3QpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAidHVuZXIiOg0KICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MudHVuZXIudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciB0ZXh0ID0gbmV3IEFycmF5KCk7DQogICAgICAgICAgICAgICAgdmFyIHZhbHVlcyA9IG5ldyBBcnJheSgpOw0KICAgICAgICAgICAgICAgIGZvciAodmFyIGkgPSAxOyBpIDw9IDEwMDsgaSsrKSB7DQogICAgICAgICAgICAgICAgICAgIHRleHQucHVzaChpKTsNCiAgICAgICAgICAgICAgICAgICAgdmFsdWVzLnB1c2goaSk7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIHZhciBzZWxlY3QgPSBjb250ZW50LmNyZWF0ZVNlbGVjdCh0ZXh0LCB2YWx1ZXMsIGRhdGEsIHNldHRpbmdzS2V5KTsNCiAgICAgICAgICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQoc2VsZWN0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImVwZ1NvdXJjZSI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5lcGdTb3VyY2UudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciB0ZXh0ID0gWyJQTVMiLCAiWEVQRyJdOw0KICAgICAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBbIlBNUyIsICJYRVBHIl07DQogICAgICAgICAgICAgICAgdmFyIHNlbGVjdCA9IGNvbnRlbnQuY3JlYXRlU2VsZWN0KHRleHQsIHZhbHVlcywgZGF0YSwgc2V0dGluZ3NLZXkpOw0KICAgICAgICAgICAgICAgIHNlbGVjdC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChzZWxlY3QpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiZGVmYXVsdE1pc3NpbmdFUEciOg0KICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MuZGVmYXVsdE1pc3NpbmdFUEcudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciB0ZXh0ID0gWw0KICAgICAgICAgICAgICAgICAgICAiLSIsICIzMCBNaW51dGVzICgzMF9NaW51dGVzKSIsICI2MCBNaW51dGVzICg2MF9NaW51dGVzKSIsICI5MCBNaW51dGVzICg5MF9NaW51dGVzKSIsDQogICAgICAgICAgICAgICAgICAgICIxMjAgTWludXRlcyAoMTIwX01pbnV0ZXMpIiwgIjE4MCBNaW51dGVzICgxODBfTWludXRlcykiLCAiMjQwIE1pbnV0ZXMgKDI0MF9NaW51dGVzKSIsICIzNjAgTWludXRlcyAoMzYwX01pbnV0ZXMpIg0KICAgICAgICAgICAgICAgIF07DQogICAgICAgICAgICAgICAgdmFyIHZhbHVlcyA9IFsNCiAgICAgICAgICAgICAgICAgICAgIi0iLCAiMzBfTWludXRlcyIsICI2MF9NaW51dGVzIiwgIjkwX01pbnV0ZXMiLCAiMTIwX01pbnV0ZXMiLCAiMTgwX01pbnV0ZXMiLCAiMjQwX01pbnV0ZXMiLCAiMzYwX01pbnV0ZXMiDQogICAgICAgICAgICAgICAgXTsNCiAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCBkYXRhLCBzZXR0aW5nc0tleSk7DQogICAgICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKHNlbGVjdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJiYWNrdXAua2VlcCI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5iYWNrdXBLZWVwLnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgdGV4dCA9IFsiNSIsICIxMCIsICIyMCIsICIzMCIsICI0MCIsICI1MCJdOw0KICAgICAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBbIjUiLCAiMTAiLCAiMjAiLCAiMzAiLCAiNDAiLCAiNTAiXTsNCiAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCBkYXRhLCBzZXR0aW5nc0tleSk7DQogICAgICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKHNlbGVjdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJidWZmZXIuc2l6ZS5rYiI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5idWZmZXJTaXplLnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgdGV4dCA9IFsiMC41IE1CIiwgIjEgTUIiLCAiMiBNQiIsICIzIE1CIiwgIjQgTUIiLCAiNSBNQiIsICI2IE1CIiwgIjcgTUIiLCAiOCBNQiJdOw0KICAgICAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBbIjUxMiIsICIxMDI0IiwgIjIwNDgiLCAiMzA3MiIsICI0MDk2IiwgIjUxMjAiLCAiNjE0NCIsICI3MTY4IiwgIjgxOTIiXTsNCiAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCBkYXRhLCBzZXR0aW5nc0tleSk7DQogICAgICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKHNlbGVjdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJidWZmZXIiOg0KICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3Muc3RyZWFtQnVmZmVyaW5nLnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgdGV4dCA9IFsie3suc2V0dGluZ3Muc3RyZWFtQnVmZmVyaW5nLmluZm9fZmFsc2V9fSIsICJ4VGVWZTogKHt7LnNldHRpbmdzLnN0cmVhbUJ1ZmZlcmluZy5pbmZvX3h0ZXZlfX0pIiwgIkZGbXBlZzogKHt7LnNldHRpbmdzLnN0cmVhbUJ1ZmZlcmluZy5pbmZvX2ZmbXBlZ319KSIsICJWTEM6ICh7ey5zZXR0aW5ncy5zdHJlYW1CdWZmZXJpbmcuaW5mb192bGN9fSkiXTsNCiAgICAgICAgICAgICAgICB2YXIgdmFsdWVzID0gWyItIiwgInh0ZXZlIiwgImZmbXBlZyIsICJ2bGMiXTsNCiAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCBkYXRhLCBzZXR0aW5nc0tleSk7DQogICAgICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKHNlbGVjdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ1ZHB4eSI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy51ZHB4eS50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsICJ1ZHB4eSIsIGRhdGEpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3suc2V0dGluZ3MudWRweHkucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgfQ0KICAgICAgICByZXR1cm4gc2V0dGluZzsNCiAgICB9DQogICAgY3JlYXRlRGVzY3JpcHRpb24oc2V0dGluZ3NLZXkpIHsNCiAgICAgICAgdmFyIGRlc2NyaXB0aW9uID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVFIiKTsNCiAgICAgICAgdmFyIHRleHQ7DQogICAgICAgIHN3aXRjaCAoc2V0dGluZ3NLZXkpIHsNCiAgICAgICAgICAgIGNhc2UgInRsc01vZGUiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MudGxzTW9kZS5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImRpc2FsbG93VVJMRHVwbGljYXRlcyI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5kaXNhbGxvd1VSTER1cGxpY2F0ZXMuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJhdXRoZW50aWNhdGlvbi53ZWIiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MuYXV0aGVudGljYXRpb25XRUIuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJhdXRoZW50aWNhdGlvbi5tM3UiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MuYXV0aGVudGljYXRpb25NM1UuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJhdXRoZW50aWNhdGlvbi5wbXMiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MuYXV0aGVudGljYXRpb25QTVMuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJhdXRoZW50aWNhdGlvbi54bWwiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MuYXV0aGVudGljYXRpb25YTUwuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJhdXRoZW50aWNhdGlvbi5hcGkiOg0KICAgICAgICAgICAgICAgIGlmIChTRVJWRVJbInNldHRpbmdzIl1bImF1dGhlbnRpY2F0aW9uLndlYiJdID09IHRydWUpIHsNCiAgICAgICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5hdXRoZW50aWNhdGlvbkFQSS5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ4dGV2ZUF1dG9VcGRhdGUiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MueHRldmVBdXRvVXBkYXRlLmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiYmFja3VwLmtlZXAiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MuYmFja3VwS2VlcC5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImJhY2t1cC5wYXRoIjoNCiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLmJhY2t1cFBhdGguZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ0ZW1wLnBhdGgiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MudGVtcFBhdGguZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJidWZmZXIiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3Muc3RyZWFtQnVmZmVyaW5nLmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiYnVmZmVyLnNpemUua2IiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MuYnVmZmVyU2l6ZS5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInN0b3JlQnVmZmVySW5SQU0iOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3Muc3RvcmVCdWZmZXJJblJBTS5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImJ1ZmZlci50aW1lb3V0IjoNCiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLmJ1ZmZlclRpbWVvdXQuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ1c2VyLmFnZW50IjoNCiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLnVzZXJBZ2VudC5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImZmbXBlZy5wYXRoIjoNCiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLmZmbXBlZ1BhdGguZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJmZm1wZWcub3B0aW9ucyI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5mZm1wZWdPcHRpb25zLmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAidmxjLnBhdGgiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MudmxjUGF0aC5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInZsYy5vcHRpb25zIjoNCiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLnZsY09wdGlvbnMuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJlcGdTb3VyY2UiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MuZXBnU291cmNlLmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiaG9zdElQIjoNCiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLmhvc3RJUC5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInR1bmVyIjoNCiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLnR1bmVyLmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAidXBkYXRlIjoNCiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLnVwZGF0ZS5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImNsZWFyWE1MVFZDYWNoZSI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5jbGVhclhNTFRWQ2FjaGUuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJhcGkiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MuYXBpLmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiZGVmYXVsdE1pc3NpbmdFUEciOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MuZGVmYXVsdE1pc3NpbmdFUEcuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJlbmFibGVNYXBwZWRDaGFubmVscyI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5lbmFibGVNYXBwZWRDaGFubmVscy5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImZpbGVzLnVwZGF0ZSI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5maWxlc1VwZGF0ZS5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImNhY2hlLmltYWdlcyI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5jYWNoZUltYWdlcy5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInhlcGcucmVwbGFjZS5taXNzaW5nLmltYWdlcyI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5yZXBsYWNlRW1wdHlJbWFnZXMuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ1ZHB4eSI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy51ZHB4eS5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICAgICAgdGV4dCA9ICIiOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICB9DQogICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gIiI7DQogICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgdmFyIHByZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlBSRSIpOw0KICAgICAgICBwcmUuaW5uZXJIVE1MID0gdGV4dDsNCiAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChwcmUpOw0KICAgICAgICBkZXNjcmlwdGlvbi5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICBkZXNjcmlwdGlvbi5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgcmV0dXJuIGRlc2NyaXB0aW9uOw0KICAgIH0NCn0NCmNsYXNzIFNldHRpbmdzQ2F0ZWdvcnlJdGVtIGV4dGVuZHMgU2V0dGluZ3NDYXRlZ29yeSB7DQogICAgY29uc3RydWN0b3IoaGVhZGxpbmUsIHNldHRpbmdzS2V5cykgew0KICAgICAgICBzdXBlcigpOw0KICAgICAgICB0aGlzLmhlYWRsaW5lID0gaGVhZGxpbmU7DQogICAgICAgIHRoaXMuc2V0dGluZ3NLZXlzID0gc2V0dGluZ3NLZXlzOw0KICAgIH0NCiAgICBjcmVhdGVDYXRlZ29yeSgpIHsNCiAgICAgICAgdmFyIGhlYWRsaW5lID0gdGhpcy5jcmVhdGVDYXRlZ29yeUhlYWRsaW5lKHRoaXMuaGVhZGxpbmUpOw0KICAgICAgICB2YXIgc2V0dGluZ3NLZXlzID0gdGhpcy5zZXR0aW5nc0tleXM7DQogICAgICAgIHZhciBkb2MgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCh0aGlzLkRvY3VtZW50SUQpOw0KICAgICAgICBkb2MuYXBwZW5kQ2hpbGQoaGVhZGxpbmUpOw0KICAgICAgICAvLyBDcmVhdGUgYSB0YWJsZSBmb3IgdGhlIGNhdGVnb3J5DQogICAgICAgIHZhciB0YWJsZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlRBQkxFIik7DQogICAgICAgIHZhciBrZXlzID0gc2V0dGluZ3NLZXlzLnNwbGl0KCIsIik7DQogICAgICAgIGtleXMuZm9yRWFjaChzZXR0aW5nc0tleSA9PiB7DQogICAgICAgICAgICBzd2l0Y2ggKHNldHRpbmdzS2V5KSB7DQogICAgICAgICAgICAgICAgY2FzZSAiYXV0aGVudGljYXRpb24ucG1zIjoNCiAgICAgICAgICAgICAgICBjYXNlICJhdXRoZW50aWNhdGlvbi5tM3UiOg0KICAgICAgICAgICAgICAgIGNhc2UgImF1dGhlbnRpY2F0aW9uLnhtbCI6DQogICAgICAgICAgICAgICAgY2FzZSAiYXV0aGVudGljYXRpb24uYXBpIjoNCiAgICAgICAgICAgICAgICAgICAgaWYgKFNFUlZFUlsic2V0dGluZ3MiXVsiYXV0aGVudGljYXRpb24ud2ViIl0gPT0gZmFsc2UpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgICAgICAgICAgdmFyIGl0ZW0gPSB0aGlzLmNyZWF0ZVNldHRpbmdzKHNldHRpbmdzS2V5KTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGRlc2NyaXB0aW9uID0gdGhpcy5jcmVhdGVEZXNjcmlwdGlvbihzZXR0aW5nc0tleSk7DQogICAgICAgICAgICAgICAgICAgIHRhYmxlLmFwcGVuZENoaWxkKGl0ZW0pOw0KICAgICAgICAgICAgICAgICAgICB0YWJsZS5hcHBlbmRDaGlsZChkZXNjcmlwdGlvbik7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9KTsNCiAgICAgICAgZG9jLmFwcGVuZENoaWxkKHRhYmxlKTsNCiAgICAgICAgZG9jLmFwcGVuZENoaWxkKHRoaXMuY3JlYXRlSFIoKSk7DQogICAgfQ0KfQ0KZnVuY3Rpb24gc2hvd1NldHRpbmdzKCkgew0KICAgIGZvciAobGV0IGkgPSAwOyBpIDwgc2V0dGluZ3NDYXRlZ29yeS5sZW5ndGg7IGkrKykgew0KICAgICAgICBzZXR0aW5nc0NhdGVnb3J5W2ldLmNyZWF0ZUNhdGVnb3J5KCk7DQogICAgfQ0KfQ0KZnVuY3Rpb24gc2F2ZVNldHRpbmdzKCkgew0KICAgIHZhciBjbWQgPSAic2F2ZVNldHRpbmdzIjsNCiAgICB2YXIgZGl2ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnRlbnRfc2V0dGluZ3MiKTsNCiAgICB2YXIgc2V0dGluZ3MgPSBkaXYuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSgiY2hhbmdlZCIpOw0KICAgIHZhciBuZXdTZXR0aW5ncyA9IG5ldyBPYmplY3QoKTsNCiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHNldHRpbmdzLmxlbmd0aDsgaSsrKSB7DQogICAgICAgIHZhciBuYW1lOw0KICAgICAgICB2YXIgdmFsdWU7DQogICAgICAgIHN3aXRjaCAoc2V0dGluZ3NbaV0udGFnTmFtZSkgew0KICAgICAgICAgICAgY2FzZSAiSU5QVVQiOg0KICAgICAgICAgICAgICAgIHN3aXRjaCAoc2V0dGluZ3NbaV0udHlwZSkgew0KICAgICAgICAgICAgICAgICAgICBjYXNlICJjaGVja2JveCI6DQogICAgICAgICAgICAgICAgICAgICAgICBuYW1lID0gc2V0dGluZ3NbaV0ubmFtZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlID0gc2V0dGluZ3NbaV0uY2hlY2tlZDsNCiAgICAgICAgICAgICAgICAgICAgICAgIG5ld1NldHRpbmdzW25hbWVdID0gdmFsdWU7DQogICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICAgICAgY2FzZSAidGV4dCI6DQogICAgICAgICAgICAgICAgICAgICAgICBuYW1lID0gc2V0dGluZ3NbaV0ubmFtZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlID0gc2V0dGluZ3NbaV0udmFsdWU7DQogICAgICAgICAgICAgICAgICAgICAgICBzd2l0Y2ggKG5hbWUpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYXNlICJ1cGRhdGUiOg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IHZhbHVlLnNwbGl0KCIsIik7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlID0gdmFsdWUuZmlsdGVyKGZ1bmN0aW9uIChlKSB7IHJldHVybiBlOyB9KTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAiYnVmZmVyLnRpbWVvdXQiOg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IHBhcnNlRmxvYXQodmFsdWUpOw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgbmV3U2V0dGluZ3NbbmFtZV0gPSB2YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgIlNFTEVDVCI6DQogICAgICAgICAgICAgICAgbmFtZSA9IHNldHRpbmdzW2ldLm5hbWU7DQogICAgICAgICAgICAgICAgdmFsdWUgPSBzZXR0aW5nc1tpXS52YWx1ZTsNCiAgICAgICAgICAgICAgICAvLyBJZiB0aGUgdmFsdWUgaXMgYSBudW1iZXIsIHN0b3JlIGl0IGFzIGEgbnVtYmVyDQogICAgICAgICAgICAgICAgaWYgKGlzTmFOKHZhbHVlKSkgew0KICAgICAgICAgICAgICAgICAgICBuZXdTZXR0aW5nc1tuYW1lXSA9IHZhbHVlOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICAgICAgbmV3U2V0dGluZ3NbbmFtZV0gPSBwYXJzZUludCh2YWx1ZSk7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICB9DQogICAgfQ0KICAgIHZhciBkYXRhID0gbmV3IE9iamVjdCgpOw0KICAgIGRhdGFbInNldHRpbmdzIl0gPSBuZXdTZXR0aW5nczsNCiAgICB2YXIgc2VydmVyID0gbmV3IFNlcnZlcihjbWQpOw0KICAgIHNlcnZlci5yZXF1ZXN0KGRhdGEpOw0KfQ0K" + webUI["html/lang/en.json"] = "ew0KICAibWFpbk1lbnUiOg0KICB7DQogICAgIml0ZW0iOg0KICAgIHsNCiAgICAgICJwbGF5bGlzdCI6ICJQbGF5bGlzdCIsDQogICAgICAicG1zSUQiOiAiUE1TIElEIiwNCiAgICAgICJmaWx0ZXIiOiAiRmlsdGVyIiwNCiAgICAgICJ4bWx0diI6ICJYTUxUViIsDQogICAgICAibWFwcGluZyI6ICJNYXBwaW5nIiwNCiAgICAgICJ1c2VycyI6ICJVc2VycyIsDQogICAgICAic2V0dGluZ3MiOiAiU2V0dGluZ3MiLA0KICAgICAgImxvZyI6ICJMb2ciLA0KICAgICAgImxvZ291dCI6ICJMb2dvdXQiDQogICAgfSwNCiAgICAiaGVhZGxpbmUiOg0KICAgIHsNCiAgICAgICJwbGF5bGlzdCI6ICJMb2NhbCBvciByZW1vdGUgcGxheWxpc3RzIiwNCiAgICAgICJmaWx0ZXIiOiAiRmlsdGVyIHBsYXlsaXN0IiwNCiAgICAgICJ4bWx0diI6ICJMb2NhbCBvciByZW1vdGUgWE1MVFYgZmlsZXMiLA0KICAgICAgIm1hcHBpbmciOiAiTWFwIHBsYXlsaXN0IGNoYW5uZWxzIHRvIEVQRyBjaGFubmVscyIsDQogICAgICAidXNlcnMiOiAiVXNlciBtYW5hZ2VtZW50IiwNCiAgICAgICJzZXR0aW5ncyI6ICJTZXR0aW5ncyIsDQogICAgICAibG9nIjogIkxvZyIsDQogICAgICAibG9nb3V0IjogIkxvZ291dCINCiAgICB9DQogIH0sDQogICJjb25maXJtIjoNCiAgew0KICAgICJyZXN0b3JlIjogIkFsbCBkYXRhIHdpbGwgYmUgcmVwbGFjZWQgd2l0aCB0aG9zZSBmcm9tIHRoZSBiYWNrdXAuIFNob3VsZCB0aGUgZmlsZXMgYmUgcmVzdG9yZWQ/Ig0KICB9LA0KICAiYWxlcnQiOg0KICB7DQogICAgImZpbGVMb2FkaW5nRXJyb3IiOiAiRmlsZSBjb3VsZG4ndCBiZSBsb2FkZWQiLA0KICAgICJpbnZhbGlkQ2hhbm5lbE51bWJlciI6ICJJbnZhbGlkIGNoYW5uZWwgbnVtYmVyIiwNCiAgICAibWlzc2luZ0lucHV0IjogIk1pc3NpbmcgaW5wdXQiDQogIH0sDQogICJidXR0b24iOg0KICB7DQogICAgImJhY2siOiAiQmFjayIsDQogICAgImJhY2t1cCI6ICJCYWNrdXAiLA0KICAgICJidWxrRWRpdCI6ICJCdWxrIEVkaXQiLA0KICAgICJjYW5jZWwiOiAiQ2FuY2VsIiwNCiAgICAiZGVsZXRlIjogIkRlbGV0ZSIsDQogICAgImRvbmUiOiAiRG9uZSIsDQogICAgImxvZ2luIjogIkxvZ2luIiwNCiAgICAibmV3IjogIk5ldyIsDQogICAgIm5leHQiOiAiTmV4dCIsDQogICAgInJlc3RvcmUiOiAiUmVzdG9yZSIsDQogICAgInNhdmUiOiAiU2F2ZSIsDQogICAgInNlYXJjaCI6ICJTZWFyY2giLA0KICAgICJ1cGRhdGUiOiAiVXBkYXRlIiwNCiAgICAiY3JhZXRlQWNjb3VudCI6ICJDcmVhdGUgQWNjb3VudCIsDQogICAgInJlc2V0TG9ncyI6ICJSZXNldCBMb2dzIiwNCiAgICAidXBsb2FkTG9nbyI6ICJVcGxvYWQgTG9nbyINCiAgfSwNCiAgImZpbHRlciI6DQogIHsNCiAgICAidGFibGUiOg0KICAgIHsNCiAgICAgICJzdGFydGluZ0NoYW5uZWwiOiAiU3RhcnRpbmcgQ2guIE5vLiIsDQogICAgICAibmFtZSI6ICJGaWx0ZXIgTmFtZSIsDQogICAgICAidHlwZSI6ICJGaWx0ZXIgVHlwZSIsDQogICAgICAiZmlsdGVyIjogIkZpbHRlciINCiAgICB9LA0KICAgICJjdXN0b20iOiAiQ3VzdG9tIiwNCiAgICAiZ3JvdXAiOiAiTTNVIEdyb3VwIiwNCiAgICAibmFtZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIkZpbHRlciBOYW1lIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJGaWx0ZXIgbmFtZSIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgImRlc2NyaXB0aW9uIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiRGVzY3JpcHRpb24iLA0KICAgICAgInBsYWNlaG9sZGVyIjogIkRlc2NyaXB0aW9uIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAidHlwZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIlR5cGUiLA0KICAgICAgImdyb3VwVGl0bGUiOiAiR3JvdXAgVGl0bGUiLA0KICAgICAgImN1c3RvbUZpbHRlciI6ICJDdXN0b20gRmlsdGVyIg0KICAgIH0sDQogICAgImNhc2VTZW5zaXRpdmUiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJDYXNlIFNlbnNpdGl2ZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAiZmlsdGVyUnVsZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIkZpbHRlciBSdWxlIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJTcG9ydCB7SER9ICF7RVMsSVR9IiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAiZmlsdGVyR3JvdXAiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJHcm91cCBUaXRsZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJTZWxlY3QgYSBNM1UgZ3JvdXAuIChDb3VudGVyKTxicj5DaGFuZ2luZyB0aGUgZ3JvdXAgdGl0bGUgaW4gdGhlIE0zVSBpbnZhbGlkYXRlcyB0aGUgZmlsdGVyLiINCiAgICB9LA0KICAgICJpbmNsdWRlIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiSW5jbHVkZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiRkhELFVIRCIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiQ2hhbm5lbCBuYW1lIG11c3QgaW5jbHVkZS48YnI+KENvbW1hIHNlcGFyYXRlZCkgQ29tbWEgbWVhbnMgb3IiDQogICAgfSwNCiAgICAiZXhjbHVkZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIkV4Y2x1ZGUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIkVTLElUIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJDaGFubmVsIG5hbWUgbXVzdCBub3QgY29udGFpbi48YnI+KENvbW1hIHNlcGFyYXRlZCkgQ29tbWEgbWVhbnMgb3IiDQogICAgfSwNCiAgICAicHJlc2VydmVNYXBwaW5nIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiUHJlc2VydmUgRXhpc3RpbmcgTTNVPGJyPkNoYW5uZWwgTnVtYmVycyIsDQogICAgICAicGFsY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJQcmVzZXJ2ZSBleGlzdGluZyBNM1UgcGxheWxpc3QgY2hhbm5lbCBudW1iZXJzPyINCiAgICB9LA0KICAgICJzdGFydGluZ0NoYW5uZWwiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJTdGFydGluZyBDaGFubmVsIE51bWJlciIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfQ0KICB9LA0KICAicGxheWxpc3QiOg0KICB7DQogICAgInRhYmxlIjoNCiAgICB7DQogICAgICAicGxheWxpc3QiOiAiUGxheWxpc3QiLA0KICAgICAgInR1bmVyIjogIlR1bmVyIiwNCiAgICAgICJsYXN0VXBkYXRlIjogIkxhc3QgVXBkYXRlIiwNCiAgICAgICJhdmFpbGFiaWxpdHkiOiAiQXZhaWxhYmlsaXR5IiwNCiAgICAgICJ0eXBlIjogIlR5cGUiLA0KICAgICAgInN0cmVhbXMiOiAiU3RyZWFtcyIsDQogICAgICAiZ3JvdXBUaXRsZSI6ICJncm91cC10aXRsZSIsDQogICAgICAidHZnSUQiOiAidHZnLWlkIiwNCiAgICAgICJ1bmlxdWVJRCI6ICJVbmlxdWUgSUQiDQogICAgfSwNCiAgICAicGxheWxpc3RUeXBlIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiUGxheWxpc3QgdHlwZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAidHlwZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIlR5cGUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgIm5hbWUiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJOYW1lIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJQbGF5bGlzdCBuYW1lIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAiZGVzY3JpcHRpb24iOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJEZXNjcmlwdGlvbiIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiRGVzY3JpcHRpb24iLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJmaWxlTTNVIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiTTNVIEZpbGUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIkZpbGUgcGF0aCBvciBVUkwgb2YgdGhlIE0zVSIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgImZpbGVIREhSIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiSERIb21lUnVuIElQIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJJUCBhZGRyZXNzIGFuZCBwb3J0ICgxOTIuMTY4LjEuMTA6NTAwNCkiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJ0dW5lciI6DQogICAgew0KICAgICAgInRpdGxlIjogIlR1bmVyIC8gU3RyZWFtcyIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJOdW1iZXIgb2YgcGFyYWxsZWwgY29ubmVjdGlvbnMgdGhhdCBjYW4gYmUgZXN0YWJsaXNoZWQgdG8gdGhlIHByb3ZpZGVyLiA8YnI+T25seSBhdmFpbGFibGUgd2l0aCBhY3RpdmF0ZWQgYnVmZmVyLjxicj5OZXcgc2V0dGluZ3Mgd2lsbCBvbmx5IGJlIGFwcGxpZWQgYWZ0ZXIgcXVpdHRpbmcgYWxsIHN0cmVhbXMuIg0KICAgIH0NCiAgfSwNCiAgInhtbHR2IjoNCiAgew0KICAgICJ0YWJsZSI6DQogICAgew0KICAgICAgImd1aWRlIjogIkd1aWRlIiwNCiAgICAgICJsYXN0VXBkYXRlIjogIkxhc3QgVXBkYXRlIiwNCiAgICAgICJhdmFpbGFiaWxpdHkiOiAiQXZhaWxhYmlsaXR5IiwNCiAgICAgICJjaGFubmVscyI6ICJDaGFubmVscyIsDQogICAgICAicHJvZ3JhbXMiOiAiUHJvZ3JhbXMiDQogICAgfSwNCiAgICAibmFtZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIk5hbWUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIkd1aWRlIG5hbWUiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJkZXNjcmlwdGlvbiI6DQogICAgew0KICAgICAgInRpdGxlIjogIkRlc2NyaXB0aW9uIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJEZXNjcmlwdGlvbiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgImZpbGVYTUxUViI6DQogICAgew0KICAgICAgInRpdGxlIjogIlhNTFRWIEZpbGUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIkZpbGUgcGF0aCBvciBVUkwgb2YgdGhlIFhNTFRWIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfQ0KICB9LA0KICAibWFwcGluZyI6DQogIHsNCiAgICAidGFibGUiOg0KICAgIHsNCiAgICAgICJjaE5vIjogIkNoLiBOby4iLA0KICAgICAgImxvZ28iOiAiTG9nbyIsDQogICAgICAiY2hhbm5lbE5hbWUiOiAiQ2hhbm5lbCBOYW1lIiwNCiAgICAgICJ1cGRhdGVDaGFubmVsTmFtZVJlZ2V4IjogIlVwZC4gUnguIiwNCiAgICAgICJwbGF5bGlzdCI6ICJQbGF5bGlzdCIsDQogICAgICAiZ3JvdXBUaXRsZSI6ICJHcm91cCBUaXRsZSIsDQogICAgICAieG1sdHZGaWxlIjogIlhNTFRWIEZpbGUiLA0KICAgICAgInhtbHR2SUQiOiAiWE1MVFYgSUQiLA0KICAgICAgInRpbWVzaGlmdCI6ICJUaW1lc2hpZnQiDQogICAgfSwNCiAgICAiYWN0aXZlIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiQWN0aXZlIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJjaGFubmVsTmFtZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIkNoYW5uZWwgTmFtZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAiZGVzY3JpcHRpb24iOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJDaGFubmVsIERlc2NyaXB0aW9uIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJVc2VkIGJ5IHRoZSBEdW1teSBhcyBhbiBYTUwgZGVzY3JpcHRpb24iLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJ1cGRhdGVDaGFubmVsTmFtZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIlVwZGF0ZSBDaGFubmVsIE5hbWUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgInVwZGF0ZUNoYW5uZWxOYW1lUmVnZXgiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJDaGFubmVsIG5hbWUgdXBkYXRlIHJlZ2V4IiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJGb3IgZXhhbXBsZSBeUFBWWyBcXFxcLV9dPzEuKiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiT24gdXBkYXRlLCBpZiBhbnkgbmV3IGNoYW5uZWwgbmFtZSBtYXRjaGVzIHRoaXMgcmVnZXgsIHJlbmFtZSBjdXJyZW50IGNoYW5uZWwgdG8gdGhlIGZpcnN0IG1hdGNoaW5nIG5hbWUiDQogICAgfSwNCiAgICAidXBkYXRlQ2hhbm5lbE5hbWVCeUdyb3VwUmVnZXgiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJPbmx5IGJ5IGdyb3VwIHJlZ2V4IiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIlJlbmFtZSB0aGlzIGNoYW5uZWwgb25seSBpZiBjdXJyZW50IHVzZXItZGVmaW5lZCBncm91cCBtYXRjaGVzIHRoaXMgcmVnZXgiDQogICAgfSwNCiAgICAidXBkYXRlQ2hhbm5lbEdyb3VwIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiVXBkYXRlIENoYW5uZWwgR3JvdXAiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiSWYgY2hlY2tlZCwgdXNlIGdyb3VwIGZyb20gdGhlIGRhdGFiYXNlIg0KICAgIH0sDQogICAgImNoYW5uZWxMb2dvIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiTG9nbyBVUkwiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgInVwZGF0ZUNoYW5uZWxMb2dvIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiVXBkYXRlIENoYW5uZWwgTG9nbyIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAiZXBnQ2F0ZWdvcnkiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJFUEcgQ2F0ZWdvcnkiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgIm0zdUdyb3VwVGl0bGUiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJHcm91cCBUaXRsZSAoeHRldmUubTN1KSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAieG1sdHZGaWxlIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiWE1MVFYgRmlsZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAieG1sdHZDaGFubmVsIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiWE1MVFYgQ2hhbm5lbCIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAidGltZXNoaWZ0IjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiVGltZXNoaWZ0IiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIwIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfQ0KICB9LA0KICAidXNlcnMiOg0KICB7DQogICAgInRhYmxlIjoNCiAgICB7DQogICAgICAidXNlcm5hbWUiOiAiVXNlcm5hbWUiLA0KICAgICAgInBhc3N3b3JkIjogIlBhc3N3b3JkIiwNCiAgICAgICJ3ZWIiOiAiV0VCIiwNCiAgICAgICJwbXMiOiAiUE1TIiwNCiAgICAgICJtM3UiOiAiTTNVIiwNCiAgICAgICJ4bWwiOiAiWE1MIiwNCiAgICAgICJhcGkiOiAiQVBJIg0KICAgIH0sDQogICAgInVzZXJuYW1lIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiVXNlcm5hbWUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIlVzZXJuYW1lIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAicGFzc3dvcmQiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJQYXNzd29yZCIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiUGFzc3dvcmQiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJjb25maXJtIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiQ29uZmlybSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiUGFzc3dvcmQgY29uZmlybSIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgIndlYiI6DQogICAgew0KICAgICAgInRpdGxlIjogIldlYiBBY2Nlc3MiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgInBtcyI6DQogICAgew0KICAgICAgInRpdGxlIjogIlBNUyBBY2Nlc3MiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgIm0zdSI6DQogICAgew0KICAgICAgInRpdGxlIjogIk0zVSBBY2Nlc3MiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgInhtbCI6DQogICAgew0KICAgICAgInRpdGxlIjogIlhNTCBBY2Nlc3MiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgImFwaSI6DQogICAgew0KICAgICAgInRpdGxlIjogIkFQSSBBY2Nlc3MiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0NCiAgfSwNCiAgInNldHRpbmdzIjoNCiAgew0KICAgICJjYXRlZ29yeSI6DQogICAgew0KICAgICAgImdlbmVyYWwiOiAiR2VuZXJhbCIsDQogICAgICAibWFwcGluZyI6ICJNYXBwaW5nIiwNCiAgICAgICJmaWxlcyI6ICJGaWxlcyIsDQogICAgICAic3RyZWFtaW5nIjogIlN0cmVhbWluZyIsDQogICAgICAiYmFja3VwIjogIkJhY2t1cCIsDQogICAgICAiYXV0aGVudGljYXRpb24iOiAiQXV0aGVudGljYXRpb24iDQogICAgfSwNCiAgICAidXBkYXRlIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiU2NoZWR1bGUgZm9yIHVwZGF0aW5nIChQbGF5bGlzdCwgWE1MVFYsIEJhY2t1cCkiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIjAwMDAsMTAwMCwyMDAwIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJUaW1lIGluIDI0IGhvdXIgZm9ybWF0ICgwODAwID0gODowMCBhbSkuIE1vcmUgdGltZXMgY2FuIGJlIGVudGVyZWQgY29tbWEgc2VwYXJhdGVkLiBMZWF2ZSB0aGlzIGZpZWxkIGVtcHR5IGlmIG5vIHVwZGF0ZXMgYXJlIHRvIGJlIGNhcnJpZWQgb3V0LiINCiAgICB9LA0KICAgICJhcGkiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJBUEkgSW50ZXJmYWNlIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJWaWEgQVBJIGludGVyZmFjZSBpdCBpcyBwb3NzaWJsZSB0byBzZW5kIGNvbW1hbmRzIHRvIHhUZVZlLiBBUEkgZG9jdW1lbnRhdGlvbiBpcyA8YSBocmVmPSdodHRwczovL2dpdGh1Yi5jb20veHRldmUtcHJvamVjdC94VGVWZS1Eb2N1bWVudGF0aW9uL2Jsb2IvbWFzdGVyL2VuL2NvbmZpZ3VyYXRpb24ubWQjYXBpJz5oZXJlPC9hPiINCiAgICB9LA0KICAgICJjbGVhclhNTFRWQ2FjaGUiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJDbGVhciBYTUxUViBjYWNoZSIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiSWYgY2hlY2tlZCwgZG8gbm90IGtlZXAgWE1MVFYgY2FjaGUgaW4gbWVtb3J5Ljxicj5TaWduaWZpY2FsbHkgcmVkdWNlcyBSQU0gdXNhZ2UgaW4gaWRsZSBtb2RlLDxicj5idXQgc2lnbmlmaWNhbGx5IHNsb3dpbmcgZG93biBldmVyeSBzdWJzZXF1ZW50IHVwZGF0ZSBpbiBYRVBHIGRhdGFiYXNlLiINCiAgICB9LA0KICAgICJkZWZhdWx0TWlzc2luZ0VQRyI6DQogICAgew0KICAgICAgInRpdGxlIjogIkZpbGwgTWlzc2luZyBFUEcgRGF0YSIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiV2hlbiB0aGVyZSBpcyBubyBtYXRjaGluZyBFUEcgZGF0YSBmb3IgY2hhbm5lbCwgPGJyPmF1dG9maWxsIHdpdGggeFRlVmUgZHVtbXkgRVBHIGRhdGE/Ig0KICAgIH0sDQogICAgImVuYWJsZU1hcHBlZENoYW5uZWxzIjogew0KICAgICAgInRpdGxlIjogIkVuYWJsZSBtYXBwZWQgY2hhbm5lbHMiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIkF1dG9tYXRpY2FsbHkgZW5hYmxlIGNoYW5uZWxzIHdpdGggYXNzaWduZWQgRVBHIGRhdGEiDQogICAgfSwNCiAgICAiZGlzYWxsb3dVUkxEdXBsaWNhdGVzIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiRGlzYWxsb3cgVVJMIGR1cGxpY2F0ZXMiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIklmIGNoZWNrZWQsIGRvIG5vdCBhZGQgYSBuZXcgY2hhbm5lbCBmcm9tIHBsYXlsaXN0IGlmIGNoYW5uZWwgd2l0aCBzdWNoIFVSTCBhbHJlYWR5IGV4aXN0cyINCiAgICB9LA0KICAgICJlcGdTb3VyY2UiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJFUEcgU291cmNlIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJQTVM6PGJyPi0gVXNlIEVQRyBkYXRhIGZyb20gUGxleCBvciBFbWJ5IDxicj48YnI+WEVQRzo8YnI+LSBVc2Ugb2Ygb25lIG9yIG1vcmUgWE1MVFYgZmlsZXM8YnI+LSBDaGFubmVsIG1hbmFnZW1lbnQ8YnI+LSBNM1UgLyBYTUxUViBleHBvcnQgKEhUVFAgbGluayBmb3IgSVBUViBhcHBzKSINCiAgICB9LA0KICAgICJ0dW5lciI6DQogICAgew0KICAgICAgInRpdGxlIjogIk51bWJlciBvZiBUdW5lcnMiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIk51bWJlciBvZiBwYXJhbGxlbCBjb25uZWN0aW9ucyB0aGF0IGNhbiBiZSBlc3RhYmxpc2hlZCB0byB0aGUgcHJvdmlkZXIuPGJyPkF2YWlsYWJsZSBmb3I6IFBsZXgsIEVtYnkgKEhESFIpLCBNM1UgKHdpdGggYWN0aXZlIGJ1ZmZlcikuPGJyPkFmdGVyIGEgY2hhbmdlLCB4VGVWZSBtdXN0IGJlIGRlbGV0ZSBpbiB0aGUgUGxleCAvIEVtYnkgRFZSIHNldHRpbmdzIGFuZCBzZXQgdXAgYWdhaW4uIg0KICAgIH0sDQogICAgImhvc3RJUCI6DQogICAgew0KICAgICAgInRpdGxlIjogIkhvc3QgSVAiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIklQIGFkZHJlc3MgeFRlVmUgd2lsbCB1c2UgdG8gZm9ybSBNM1UgYW5kIFhNTFRWIGZpbGVzIg0KICAgIH0sDQogICAgInRsc01vZGUiOiB7DQogICAgICAidGl0bGUiOiAiVExTIChIVFRQUykgbW9kZSIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiQ2hhbmdlcyB3ZWIgc2VydmVyIHByb3RvY29sIHRvIEhUVFBTLjxicj5Gb3IgZGV0YWlscywgc2VlIDxhPmh0dHBzOi8vZ2l0aHViLmNvbS9TQ1AwMDIveFRlVmUjdGxzLW1vZGU8L2E+Ig0KICAgIH0sDQogICAgImZpbGVzVXBkYXRlIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiVXBkYXRlcyBhbGwgZmlsZXMgYXQgc3RhcnR1cCIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiVXBkYXRlcyBhbGwgcGxheWxpc3RzLCB0dW5lciBhbmQgWE1MVFYgZmlsZXMgYXQgc3RhcnR1cC4iDQogICAgfSwNCiAgICAiY2FjaGVJbWFnZXMiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJJbWFnZSBDYWNoaW5nIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJBbGwgaW1hZ2VzIGZyb20gdGhlIFhNTFRWIGZpbGUgYXJlIGNhY2hlZCwgYWxsb3dpbmcgZmFzdGVyIHJlbmRlcmluZyBvZiB0aGUgZ3JpZCBpbiB0aGUgY2xpZW50Ljxicj5Eb3dubG9hZGluZyB0aGUgaW1hZ2VzIG1heSB0YWtlIGEgd2hpbGUgYW5kIHdpbGwgYmUgZG9uZSBpbiB0aGUgYmFja2dyb3VuZC4iDQogICAgfSwNCiAgICAicmVwbGFjZUVtcHR5SW1hZ2VzIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiUmVwbGFjZSBtaXNzaW5nIHByb2dyYW0gaW1hZ2VzIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJJZiB0aGUgcG9zdGVyIGluIHRoZSBYTUxUViBwcm9ncmFtIGlzIG1pc3NpbmcsIHRoZSBjaGFubmVsIGxvZ28gd2lsbCBiZSB1c2VkLiINCiAgICB9LA0KICAgICJ4dGV2ZUF1dG9VcGRhdGUiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJBdXRvbWF0aWMgdXBkYXRlIG9mIHhUZVZlIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJJZiBhIG5ldyB2ZXJzaW9uIG9mIHhUZVZlIGlzIGF2YWlsYWJsZSwgaXQgd2lsbCBiZSBhdXRvbWF0aWNhbGx5IGluc3RhbGxlZC4gVGhlIHVwZGF0ZXMgYXJlIGRvd25sb2FkZWQgZnJvbSBHaXRIdWIuIg0KICAgIH0sDQogICAgInN0cmVhbUJ1ZmZlcmluZyI6DQogICAgew0KICAgICAgInRpdGxlIjogIlN0cmVhbSBCdWZmZXIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIkZ1bmN0aW9ucyBvZiB0aGUgYnVmZmVyOjxicj4tIFRoZSBzdHJlYW0gaXMgcGFzc2VkIGZyb20geFRlVmUsIEZGbXBlZyBvciBWTEMgdG8gUGxleCwgRW1ieSBvciBNM1UgUGxheWVyPGJyPi0gU21hbGwgamVya2luZyBvZiB0aGUgc3RyZWFtcyBjYW4gYmUgY29tcGVuc2F0ZWQ8YnI+LSBITFMgLyBNM1U4IHN1cHBvcnQ8YnI+LSBSVFAgLyBSVFBTIHN1cHBvcnQgKG9ubHkgRkZtcGVnIG9yIFZMQyk8YnI+LSBSZS1zdHJlYW1pbmc8YnI+LSBTZXBhcmF0ZSB0dW5lciBsaW1pdCBmb3IgZWFjaCBwbGF5bGlzdCIsDQogICAgICAiaW5mb19mYWxzZSI6ICJObyBCdWZmZXIgKENsaWVudCBjb25uZWN0cyB0byB0aGUgc3RyZWFtaW5nIHNlcnZlcikiLA0KICAgICAgImluZm9feHRldmUiOiAieFRlVmUgY29ubmVjdHMgdG8gdGhlIHN0cmVhbWluZyBzZXJ2ZXIiLA0KICAgICAgImluZm9fZmZtcGVnIjogIkZGbXBlZyBjb25uZWN0cyB0byB0aGUgc3RyZWFtaW5nIHNlcnZlciIsDQogICAgICAiaW5mb192bGMiOiAiVkxDIGNvbm5lY3RzIHRvIHRoZSBzdHJlYW1pbmcgc2VydmVyIg0KDQogICAgfSwNCiAgICAidWRweHkiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJVRFB4eSBhZGRyZXNzIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJUaGUgYWRkcmVzcyBvZiB5b3VyIFVEUHh5IHNlcnZlci4gSWYgc2V0LCBhbmQgdGhlIGNoYW5uZWwgVVJMcyBpbiB0aGUgbTN1IGlzIG11bHRpY2FzdCwgeFRlVmUgd2lsbCByZXdyaXRlIGl0IHNvIHRoYXQgaXQgaXMgYWNjZXNzZWQgdmlhIHRoZSBVRFB4eSBzZXJ2aWNlLiIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiaG9zdDpwb3J0Ig0KICAgIH0sDQogICAgImZmbXBlZ1BhdGgiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJGRm1wZWcgQmluYXJ5IFBhdGgiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIlBhdGggdG8gRkZtcGVnIGJpbmFyeS4iLA0KICAgICAgInBsYWNlaG9sZGVyIjogIi9wYXRoL3RvL2ZmbXBlZyINCiAgICB9LA0KICAgICJmZm1wZWdPcHRpb25zIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiRkZtcGVnIE9wdGlvbnMiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIkZGbXBlZyBvcHRpb25zLjxicj5Pbmx5IGNoYW5nZSBpZiB5b3Uga25vdyB3aGF0IHlvdSBhcmUgZG9pbmcuPGJyPkxlYXZlIGJsYW5rIHRvIHNldCBkZWZhdWx0IHNldHRpbmdzLiIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiTGVhdmUgYmxhbmsgdG8gc2V0IGRlZmF1bHQgc2V0dGluZ3MiDQogICAgfSwNCiAgICAidmxjUGF0aCI6DQogICAgew0KICAgICAgInRpdGxlIjogIlZMQyAvIENWTEMgQmluYXJ5IFBhdGgiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIlBhdGggdG8gVkxDIC8gQ1ZMQyBiaW5hcnkuIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIvcGF0aC90by9jdmxjIg0KICAgIH0sDQogICAgInZsY09wdGlvbnMiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJWTEMgLyBDVkxDIE9wdGlvbnMiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIlZMQyAvIENWTEMgb3B0aW9ucy48YnI+T25seSBjaGFuZ2UgaWYgeW91IGtub3cgd2hhdCB5b3UgYXJlIGRvaW5nLjxicj5MZWF2ZSBibGFuayB0byBzZXQgZGVmYXVsdCBzZXR0aW5ncy4iLA0KICAgICAgInBsYWNlaG9sZGVyIjogIkxlYXZlIGJsYW5rIHRvIHNldCBkZWZhdWx0IHNldHRpbmdzIg0KICAgIH0sDQogICAgImJ1ZmZlclNpemUiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJCdWZmZXIgU2l6ZSIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiQnVmZmVyIHNpemUgaW4gTUIuPGJyPk0zVTg6IElmIHRoZSBUUyBzZWdtZW50IHNtYWxsZXIgdGhlbiB0aGUgYnVmZmVyIHNpemUsIHRoZSBmaWxlIHNpemUgb2YgdGhlIHNlZ21lbnQgaXMgdXNlZC4iDQogICAgfSwNCiAgICAic3RvcmVCdWZmZXJJblJBTSI6DQogICAgew0KICAgICAgInRpdGxlIjogIlN0b3JlIGJ1ZmZlciBpbiBSQU0iLA0KICAgICAgImRlc2NyaXB0aW9uIjogIklmIGNoZWNrZWQsIHdyaXRlIGJ1ZmZlciB0byBSQU0gaW5zdGVhZCBvZiB3cml0aW5nIHRvIGRpc2siDQogICAgfSwNCiAgICAiYnVmZmVyVGltZW91dCI6DQogICAgew0KICAgICAgInRpdGxlIjogIlRpbWVvdXQgZm9yIG5ldyBjbGllbnQgY29ubmVjdGlvbnMiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIlRoZSB4VGVWZSBidWZmZXIgd2FpdHMgdW50aWwgbmV3IGNsaWVudCBjb25uZWN0aW9ucyBhcmUgZXN0YWJsaXNoZWQuIEhlbHBmdWwgZm9yIGZhc3QgY2hhbm5lbCBzd2l0Y2hpbmcuIFZhbHVlIGluIG1pbGxpc2Vjb25kcy4iLA0KICAgICAgInBsYWNlaG9sZGVyIjogIjEwMCINCiAgICB9LA0KICAgICJ1c2VyQWdlbnQiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJVc2VyIEFnZW50IiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJVc2VyIEFnZW50IGZvciBIVFRQIHJlcXVlc3RzLiBGb3IgZXZlcnkgSFRUUCBjb25uZWN0aW9uLCB0aGlzIHZhbHVlIGlzIHVzZWQgZm9yIHRoZSB1c2VyIGFnZW50LiBTaG91bGQgb25seSBiZSBjaGFuZ2VkIGlmIHhUZVZlIGlzIGJsb2NrZWQuIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJ4VGVWZSINCiAgICB9LA0KICAgICJiYWNrdXBQYXRoIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiTG9jYXRpb24gZm9yIGF1dG9tYXRpYyBiYWNrdXBzIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIvbW50L2RhdGEvYmFja3VwL3h0ZXZlLyIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiQmVmb3JlIGFueSB1cGRhdGUgb2YgdGhlIHByb3ZpZGVyIGRhdGEgYnkgdGhlIHNjaGVkdWxlLCB4VGVWZSBjcmVhdGVzIGEgYmFja3VwLiBUaGUgcGF0aCBmb3IgdGhlIGF1dG9tYXRpYyBiYWNrdXBzIGNhbiBiZSBjaGFuZ2VkLiB4VGVWZSByZXF1aXJlcyB3cml0ZSBwZXJtaXNzaW9uIGZvciB0aGlzIGZvbGRlci4iDQogICAgfSwNCiAgICAidGVtcFBhdGgiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJMb2NhdGlvbiBmb3IgdGhlIHRlbXBvcmFyeSBmaWxlcyIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiL3RtcC94dGV2ZS8iLA0KICAgICAgImRlc2NyaXB0aW9uIjogIkxvY2F0aW9uIGZvciB0aGUgYnVmZmVyIGZpbGVzLiINCiAgICB9LA0KICAgICJiYWNrdXBLZWVwIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiTnVtYmVyIG9mIGJhY2t1cHMgdG8ga2VlcCIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiTnVtYmVyIG9mIGJhY2t1cHMgdG8ga2VlcC4gT2xkZXIgYmFja3VwcyBhcmUgYXV0b21hdGljYWxseSBkZWxldGVkLiINCiAgICB9LA0KICAgICJhdXRoZW50aWNhdGlvbldFQiI6DQogICAgew0KICAgICAgInRpdGxlIjogIldFQiBBdXRoZW50aWNhdGlvbiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiQWNjZXNzIHRvIHRoZSB3ZWIgaW50ZXJmYWNlIG9ubHkgcG9zc2libGUgd2l0aCBjcmVkZW50aWFscy4iDQogICAgfSwNCiAgICAiYXV0aGVudGljYXRpb25QTVMiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJQTVMgQXV0aGVudGljYXRpb24iLA0KICAgICAgImRlc2NyaXB0aW9uIjogIlBsZXggcmVxdWVzdHMgYXJlIG9ubHkgcG9zc2libGUgd2l0aCBhdXRoZW50aWNhdGlvbi4gPGJyPjxiPldhcm5pbmchISE8L2I+IEFmdGVyIGFjdGl2YXRpbmcgdGhpcyBmdW5jdGlvbiB4VGVWZSBtdXN0IGJlIGRlbGV0ZSBpbiB0aGUgUE1TIERWUiBzZXR0aW5ncyBhbmQgc2V0IHVwIGFnYWluLiINCiAgICB9LA0KICAgICJhdXRoZW50aWNhdGlvbk0zVSI6DQogICAgew0KICAgICAgInRpdGxlIjogIk0zVSBBdXRoZW50aWNhdGlvbiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiRG93bmxvYWRpbmcgdGhlIHh0ZXZlLm0zdSBmaWxlIHZpYSBhbiBIVFRQIHJlcXVlc3QgaXMgb25seSBwb3NzaWJsZSB3aXRoIGF1dGhlbnRpY2F0aW9uLiINCiAgICB9LA0KICAgICJhdXRoZW50aWNhdGlvblhNTCI6DQogICAgew0KICAgICAgInRpdGxlIjogIlhNTCBBdXRoZW50aWNhdGlvbiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiRG93bmxvYWRpbmcgdGhlIHh0ZXZlLnhtbCBmaWxlIHZpYSBhbiBIVFRQIHJlcXVlc3QgaXMgb25seSBwb3NzaWJsZSB3aXRoIGF1dGhlbnRpY2F0aW9uIg0KICAgIH0sDQogICAgImF1dGhlbnRpY2F0aW9uQVBJIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiQVBJIEF1dGhlbnRpY2F0aW9uIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJBY2Nlc3MgdG8gdGhlIEFQSSBpbnRlcmZhY2UgaXMgb25seSBwb3NzaWJsZSB3aXRoIGF1dGhlbnRpY2F0aW9uLiINCiAgICB9DQogIH0sDQogICJ3aXphcmQiOg0KICB7DQogICAgImVwZ1NvdXJjZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIkVQRyBTb3VyY2UiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIlBNUzo8YnI+LSBVc2UgRVBHIGRhdGEgZnJvbSBQbGV4IG9yIEVtYnkgPGJyPjxicj5YRVBHOjxicj4tIFVzZSBvZiBvbmUgb3IgbW9yZSBYTUxUViBmaWxlczxicj4tIENoYW5uZWwgbWFuYWdlbWVudDxicj4tIE0zVSAvIFhNTFRWIGV4cG9ydCAoSFRUUCBsaW5rIGZvciBJUFRWIGFwcHMpIg0KICAgIH0sDQogICAgInR1bmVyIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiTnVtYmVyIG9mIHR1bmVycyIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiTnVtYmVyIG9mIHBhcmFsbGVsIGNvbm5lY3Rpb25zIHRoYXQgY2FuIGJlIGVzdGFibGlzaGVkIHRvIHRoZSBwcm92aWRlci48YnI+QXZhaWxhYmxlIGZvcjogUGxleCwgRW1ieSAoSERIUiksIE0zVSAod2l0aCBhY3RpdmUgYnVmZmVyKS48YnI+QWZ0ZXIgYSBjaGFuZ2UsIHhUZVZlIG11c3QgYmUgZGVsZXRlIGluIHRoZSBQbGV4IC8gRW1ieSBEVlIgc2V0dGluZ3MgYW5kIHNldCB1cCBhZ2Fpbi4iDQogICAgfSwNCiAgICAibTN1IjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiTTNVIFBsYXlsaXN0IiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJGaWxlIHBhdGggb3IgVVJMIG9mIHRoZSBNM1UiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIkxvY2FsIG9yIHJlbW90ZSBwbGF5bGlzdHMiDQogICAgfSwNCiAgICAieG1sdHYiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJYTUxUViBGaWxlIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJGaWxlIHBhdGggb3IgVVJMIG9mIHRoZSBYTUxUViIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiTG9jYWwgb3IgcmVtb3RlIFhNTFRWIGZpbGUiDQogICAgfQ0KICB9LA0KICAibG9naW4iOg0KICB7DQogICAgImZhaWxlZCI6ICJVc2VyIGF1dGhlbnRpY2F0aW9uIGZhaWxlZCIsDQogICAgImhlYWRsaW5lIjogIkxvZ2luIiwNCiAgICAidXNlcm5hbWUiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJVc2VybmFtZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiVXNlcm5hbWUiDQogICAgfSwNCiAgICAicGFzc3dvcmQiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJQYXNzd29yZCIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiUGFzc3dvcmQiDQogICAgfQ0KICB9LA0KICAiYWNjb3VudCI6DQogIHsNCiAgICAiZmFpbGVkIjogIlBhc3N3b3JkIGRvZXMgbm90IG1hdGNoIiwNCiAgICAiaGVhZGxpbmUiOiAiQ3JlYXRlIHVzZXIgYWNjb3VudCIsDQogICAgInVzZXJuYW1lIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiVXNlcm5hbWUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIlVzZXJuYW1lIg0KICAgIH0sDQogICAgInBhc3N3b3JkIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiUGFzc3dvcmQiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIlBhc3N3b3JkIg0KICAgIH0sDQogICAgImNvbmZpcm0iOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJDb25maXJtIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJDb25maXJtIg0KICAgIH0NCiAgfQ0KfQ==" webUI["html/login.html"] = "PCFkb2N0eXBlIGh0bWw+DQo8aHRtbD4NCiAgPGhlYWQ+DQogICAgPG1ldGEgY2hhcnNldD0idXRmLTgiPg0KICAgIDxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgsIGluaXRpYWwtc2NhbGU9MS4wIiAvPiANCiAgICA8dGl0bGU+eFRlVmU8L3RpdGxlPg0KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iY3NzL3NjcmVlbi5jc3MiIHR5cGU9InRleHQvY3NzIj4NCiAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9ImNzcy9iYXNlLmNzcyIgdHlwZT0idGV4dC9jc3MiPg0KICAgIDxzY3JpcHQgbGFuZ3VhZ2U9ImphdmFzY3JpcHQiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJqcy9uZXR3b3JrX3RzLmpzIj48L3NjcmlwdD4NCiAgICA8c2NyaXB0IGxhbmd1YWdlPSJqYXZhc2NyaXB0IiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ianMvYXV0aGVudGljYXRpb25fdHMuanMiPjwvc2NyaXB0Pg0KICA8L2hlYWQ+DQoNCiAgICA8Ym9keT4NCiAgICAgICAgICANCiAgICAgIDxkaXYgaWQ9ImhlYWRlciIgY2xhc3M9ImltZ0NlbnRlciI+PC9kaXY+DQoNCiAgICAgIDxkaXYgaWQ9ImJveCI+DQoNCiAgICAgICAgPGRpdiBpZD0iaGVhZGxpbmUiPg0KICAgICAgICAgIDxoMSBpZD0iaGVhZC10ZXh0IiBjbGFzcz0iY2VudGVyIj57ey5sb2dpbi5oZWFkbGluZX19PC9oMT4NCiAgICAgICAgPC9kaXY+DQoNCiAgICAgICAgPHAgaWQ9ImVyciIgY2xhc3M9ImVycm9yTXNnIGNlbnRlciI+e3suYXV0aGVudGljYXRpb25FcnJ9fTwvcD4NCg0KICAgICAgICA8ZGl2IGlkPSJjb250ZW50Ij4NCg0KICAgICAgICAgICAgPGZvcm0gaWQ9ImF1dGhlbnRpY2F0aW9uIiBhY3Rpb249IiIgbWV0aG9kPSJwb3N0Ij4NCg0KICAgICAgICAgICAgICA8aDU+e3subG9naW4udXNlcm5hbWUudGl0bGV9fTo8L2g1Pg0KICAgICAgICAgICAgICA8aW5wdXQgaWQ9InVzZXJuYW1lIiB0eXBlPSJ0ZXh0IiBuYW1lPSJ1c2VybmFtZSIgcGxhY2Vob2xkZXI9IlVzZXJuYW1lIiB2YWx1ZT0iIj4NCiAgICAgICAgICAgICAgPGg1Pnt7LmxvZ2luLnBhc3N3b3JkLnRpdGxlfX06PC9oNT4NCiAgICAgICAgICAgICAgPGlucHV0IGlkPSJwYXNzd29yZCIgdHlwZT0icGFzc3dvcmQiIG5hbWU9InBhc3N3b3JkIiBwbGFjZWhvbGRlcj0iUGFzc3dvcmQiIHZhbHVlPSIiPg0KDQogICAgICAgICAgICA8L2Zvcm0+DQoNCiAgICAgICAgPC9kaXY+DQoNCiAgICAgICAgPGRpdiBpZD0iYm94LWZvb3RlciI+DQogICAgICAgICAgPGlucHV0IGlkPSJzdWJtaXQiIGNsYXNzPSIiIHR5cGU9ImJ1dHRvbiIgdmFsdWU9Int7LmJ1dHRvbi5sb2dpbn19IiBvbmNsaWNrPSJqYXZhc2NyaXB0OiBsb2dpbigpOyI+DQogICAgICAgIDwvZGl2Pg0KICAgICAgICANCiAgICAgIDwvZGl2Pg0KDQogICAgPC9ib2R5Pg0KICAgIA0KPC9odG1sPg==" webUI["html/maintenance.html"] = "PCFkb2N0eXBlIGh0bWw+DQo8aHRtbD4NCiAgPGhlYWQ+DQogICAgPG1ldGEgY2hhcnNldD0idXRmLTgiPg0KICAgIDxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgsIGluaXRpYWwtc2NhbGU9MS4wIiAvPiANCiAgICA8dGl0bGU+eFRlVmU8L3RpdGxlPg0KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iY3NzL3NjcmVlbi5jc3MiIHR5cGU9InRleHQvY3NzIj4NCiAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9ImNzcy9iYXNlLmNzcyIgdHlwZT0idGV4dC9jc3MiPg0KICA8L2hlYWQ+DQoNCiAgICA8Ym9keT4NCiAgICAgICAgICANCiAgICAgIDxkaXYgaWQ9ImhlYWRlciIgY2xhc3M9ImltZ0NlbnRlciI+PC9kaXY+DQoNCiAgICAgIDxkaXYgaWQ9ImJveCI+DQoNCiAgICAgICAgPGRpdiBpZD0iaGVhZGxpbmUiPg0KICAgICAgICAgIDxoMSBpZD0iaGVhZC10ZXh0IiBjbGFzcz0iY2VudGVyIj5NYWludGVuYW5jZTwvaDE+ICAgICAgDQogICAgICAgIDwvZGl2PiAgDQoNCiAgICAgICAgPGRpdiBpZD0iY29udGVudCI+DQogICAgICAgICAgeFRlVmUgaXMgdXBkYXRpbmcgdGhlIGRhdGFiYXNlLCBwbGVhc2UgdHJ5IGFnYWluIGxhdGVyLg0KICAgICAgICA8L2Rpdj4NCg0KICAgICAgICA8ZGl2IGlkPSJib3gtZm9vdGVyIj48L2Rpdj4NCiAgICAgICAgDQogICAgICA8L2Rpdj4NCg0KICAgIDwvYm9keT4NCjwvaHRtbD4=" webUI["html/video/stream-limit.ts"] = "R0AREABC8CUAAcEAAP8B/wAB/IAUSBIBBkZGbXBlZwlTZXJ2aWNlMDF3fEPK//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////9HQAAQAACwDQABwQAAAAHwACqxBLL//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////0dQABAAArASAAHBAADhAPAAG+EA8AAVvU1W////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////R0EAMAdQAAB7DH4AAAAB4AAAgMAKMQAJEKERAAfYYQAAAAEJ8AAAAAFnZAAorNlAeAIn5cBEAAADAAQAAAMAyDxgxlgAAAABaOvjyyLAAAABBgX//6rcRem95tlIt5Ys2CDZI+7veDI2NCAtIGNvcmUgMTUyIHIyODU0IGU5YTU5MDMgLSBILjI2NC9NUEVHLTQgQVZDIGNvZGVjIC0gQ29weWxlZnQgMjAwMy0yMDE3IC0gaHR0cDovL3dHAQARd3cudmlkZW9sYW4ub3JnL3gyNjQuaHRtbCAtIG9wdGlvbnM6IGNhYmFjPTEgcmVmPTMgZGVibG9jaz0xOjA6MCBhbmFseXNlPTB4MzoweDExMyBtZT1oZXggc3VibWU9NyBwc3k9MSBwc3lfcmQ9MS4wMDowLjAwIG1peGVkX3JlZj0xIG1lX3JhbmdlPTE2IGNocm9tYV9tZT0xIHRyZWxsaXM9MSA4eDhkY3Q9MSBjcW09MCBkZUcBABJhZHpvbmU9MjEsMTEgZmFzdF9wc2tpcD0xIGNocm9tYV9xcF9vZmZzZXQ9LTIgdGhyZWFkcz02IGxvb2thaGVhZF90aHJlYWRzPTEgc2xpY2VkX3RocmVhZHM9MCBucj0wIGRlY2ltYXRlPTEgaW50ZXJsYWNlZD0wIGJsdXJheV9jb21wYXQ9MCBjb25zdHJhaW5lZF9pbnRyYT0wIGJmcmFtZXM9MyBiX3B5cmFtaWQ9MiBiX2FkRwEAE2FwdD0xIGJfYmlhcz0wIGRpcmVjdD0xIHdlaWdodGI9MSBvcGVuX2dvcD0wIHdlaWdodHA9MiBrZXlpbnQ9MjUwIGtleWludF9taW49MjUgc2NlbmVjdXQ9NDAgaW50cmFfcmVmcmVzaD0wIHJjX2xvb2thaGVhZD00MCByYz1jcmYgbWJ0cmVlPTEgY3JmPTIzLjAgcWNvbXA9MC42MCBxcG1pbj0wIHFwbWF4PTY5IHFwc3RlcD1HAQAUNCBpcF9yYXRpbz0xLjQwIGFxPTE6MS4wMACAAAABZYiEADv//vdOvwKbVMIqA5JXCvbKpCZZuVJrAfKmAAADAAADAAADAAADAAADAq7aiiFafTJvTQAAAwAAAwAAF1AAAAVUAAADAiYAAAMBNwAAAwDUAAADAMkAAAMA4gAAAwD+AAADATIAAAMCGgAABAQAAAYoAAAOwAAAAwAAAwAAAwAAAwAAAwAAAwAAAwAAAwAAAwAAAwAAA0cBABUAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAA2F55UwH3zADgCn7Xsg5urkZA62Mq62dWKwprJak9U0cjT1Yh9J7WRISuxmagZEf3SG5hJ5glLK+m1DQRdCFD2mN6YZGjkCTKwYyDxKlNHkaW8fuatJR0sAtCoVfOjRr2/NS+bw85zMQI7VFu7+JhD/Go1Q5RgMv5bIq0gpxJKRnF31ojI62CwCRiJ1dHa6nIwcU00zURwEAFhyu6/UdOQ6gXR/Fn3SkmUwkQsjmQF0XEAAAAwAAQkN8C3guxx7g23xd3I1uQvL9Dh+C+fpNfOmVma2q7DiUF3VD8o51I57iYniPq7fe7f2YnPwRwynt2WAsZSjTMgHnGbk5zsyy+rXIMy1p3notBIJkpSBHSuogn9FDL99PItYMLSYCXzbB1ngJo9jnaTgI0b904RmkSjuZtpKyt0ofkYfxNRrztwDGURi3JRPkpuouCWX8KWcxn8NHAQAXWrAsVbXQ0f+vby6QN9oHh0jRsBw7+79AAAsCUlIAAAMAAIGTVQt7SJOBNtpTiAsB1/AzhYzJ8lMVgRENWBT0VBkiPo9+OyjWfg6dlrISORs+GKnEy5aUKA1M9uXDtedogUi7S7uVd54Gj1Qb5NTw4Jix5w1Ejl/de0xvxERyv4b3rmZdsU72FOcfnbK1K8lG4wnxVzYPGiElBGSrNsWNXskCT++8dTbAQv4ejltKQDN2z2xpw5g1CkcBABjFGRM3p9Rp9BGLQ/gaCYSE37IZAAADAFsvgUK7rSLf56T0ZOVulX2oYo74ASEKbonCVfRcGAke05L38QhPtmJ8xRmebFR5/801CbQAWvnAOc2AWgY1coPTdBTZIfsBwU94Gu+qjaoR4dfBX9u8RZXmrbLBCqJ8wTgvf9kJu7/27gcTx8SsJfq40cjhNaRNiof2e8CF4imWObVdvBDpPRxSiR1tsORfA0r+gqjURLyvIwDsE+O9NkeiRwEAGZMG5kW8doFnKjj4QW/OIpFfzF+53Eb4LrnRmrkHqYA/RnqVvBWNpUSFdATxWKzy0MBYRpY4IoUCpCeWwgQ/9Ny0Yi1iQ++wmh1ay/SnYR5B8k+FpDYbWDODuSuCMmrTDKXjicAStFseuB4peB1Ufu7fitj0L0uZzCgGY5zkzbBp3bfXJQEGCnSwEtW+TY50gbhenVCesUfJKjvG6PshP5ScKPdVkZltrS4wx1CntFR+srvN3MjP6p1HAQAaM8+T4dTA6o28g/ki3+J9b5WD8oY+fVgTsb1jfV2GWWd2Hh8JK00uloyX94k2QHGzhbuiS1YKiEdCLz9Pt3RuxuTNm9XSlLwQvyRvfY6sKD8KIinvSq3XP//Kx5Ni82QOXvrn5eEmFlTGuT36Yax5OR4BI3UhdWSGGa0YoqeD7zcvWv64AAANbhz0PNupTjTGu6vxaQq6PcgarV8F7NT0zHSQCZ8KuEFdideJmx4581/BCMYXuJt5cEcBABufpZ3Gzdy5JLw0J2eg1hz70uf/nD82aqNxy/HUvEd6+w5woyIYb7nzl1eo/+ACzPidfiSKydCNxKh9e7tKjNNTJYRX+1f5A398n+2wKJPX7dRmPk4C0j/auaYtAMF+Ft5g6ZqxQuA071fEmj4uiYMR7F+JbZ7CjA98DObmNy/ZWoJQvMrvR3ep5XAmNFkqs1Ma20JWsiikVsr/jblTK0PBVnLul36knafsXUW38/19lMQo0HUcMvrmRwEAHI2OaNsvRTodm5RGcpDEKfXIqXsLfH53r0F3K+sfRvbk3u2ilZd/c5zH95TBbceTvFEt5mD6oPEhxHX3gId6ZBsNNUKUnWDxoX7MaYE38/ELMyIVzRxDCIEkf+q7aY6tcZEMrPBa352hxE6SJ+2y/zlDc8X4jSYerSPRgLBiUm/TSHdm/sHP7d/kl2fmIUNKBbeaghigfwmfDnaZ3wPkRi3oXIp3YypbLYpeup62X805+oYMAgynQd1HAQAdHLgV5nC45givqz8G4AAB0pcgXQpZhwRtJ0wE/aFEPMXugXV9NeZnpzJeXaijTBtaFonT4e+hZZXjLHhxTugKb085RNFOoT0GAB6b2twqc++PKcb796IKMKtNpGaUWjoFvBDGh4HrRguoZWCbLy2RFxUX8SmNUb7qfDXwIi4nY4i89/TcrSc0q64NPWA3SPmQ5D5/ZFbRzBtFuMVVmbEF0cxv9RoqLyW/VGkp+bBAmoMhAw82eI9VskcBAB7bidwIeUDbJvHb2Z8Ep/avJccAh157ZUytHDDW9DhmdbdBzT1TpsJFsFWe8FOQfaNpJVfj2nGqShY4+DhxRYxOpzXw2VF7hQpp6PqFUtyi4ib3VHETkSuHz+2uom/bMRbhw+hQ05xdXOHcFVpih+k58QKrhN+txmOmV3ULdeiVLUplf35jQJTUIZltXjTCZhljRc0sdqOZHDZjy58Sc6hmq8D6lztRR5jN6ifzzKdZbHOpMvK28A4ZRwEAHwyCdGDG4LksEyABPYPnzVuaVJHpUiKgtb3006VleBPo2EZenL5/vyGrjLMas0C6R0iyXZjr0xqvCfaFfxVO/+DQUMKaj0XLNNIrLqXxwzxzy2ENSUjNNySzfvDkpjuJVywa0uwsg60r6EURKgU15gAtbm3Kx4tjb3pRMM8SZHnsN075ztW98+aTrdbRryY9XR74p76dkImiqWIVRQAAAwAAerbiggDgwfd5iHYwqlkEXOqApTuXEhFHAQAQ1PUugOrA4HsFQsLzVf2RjOkhWvlC/kwNqqDXkwlUM6egLoIdgXAyBFgSXuM59iSh6DSi4LwFa/FhyGMrxPV0UF8QD9dGgSeXBUvExQHAGOHz98Mbwm3lBdIzxkzeGLDhi0wZ5SurQPpWomKoDW7t0a+GpQkmCEgVO7iBc/JrOFIt8BBRW1E3EOMv6Wpc5Bw9M2A1XVVaNSFyVkr4bJmsPdNLXAJ4UeKO9R1lUBhl+OhrxoG4RKVHp0cBABF4Om4vKIyHfOkDd6zL8NOXPLL7gS3TIX2EFGJwyyOzsp3WEnvyFp3pujaaLMn/lubQO3uY99+DKi2Io2lBhymLAR6LDBeQ7AhVrgnfiNz91OxGGiYYLcV2yR4f5zrcwMQZNJDrBZZB5gHIDL20vdPnM5RCWlhx/pWX/VbNt2slYDgCwcQp6S/f+sYDWW8d6kKnv4kberk4wmAhuvG6Y9SNfBDQ5l9qn/Obo+/QByc1yiGJRu8Gf6MCRwEAEoe8DYkkVe/6Ixqln5QQ/EQgnqBdcH9XhmfrybwZkozmwKLLqqVJH8KoMeYLCfFbfUaJbcR1M2fwEHGq8BQXjRJFgtHh3lCD2NBLo+9F2kwxA+U6o3SQoAiESygbnYzTRsRmJbxNCRKSLcIhfuhjjCaAi0Icfv4rxjBMuDTA3ZANJ/jmVtzwWUFolUII47bYNLfdylQl/XdlhiHX3vln9Ji8cLEbSL8BMxJ2EI8GBsnrIBeQBPJc+UNHAQATIY6b3+HKasi+GNJ2c21SbezgAtkzMWLCJOnux4sNbrOiNHjom7p+U1hZN9Nr5wuzsM8+1NBBB2pfg3/QKiCYs6b9pduydYs2HEo8FbJJO9uH/yhvTL9d6RHrHf9srnZkSZKhJ7J7mApu4eNNCFusU8sNmfV7H97V1FOBXT/6JShgEQxdnwWdgxDvO8PxjkwuGrYPamKBNG/zRiG5AbW+ikv3OBftfBdhuifSSqoWx0W/XRtyk55S8kcBABTW3x1rkDAHFUfqPG8dZSQWAtnA0fS2fwfdqEGWrbQvYFwWWVcRma+zWJHw2/lVzPD/mSdMieWiX8i5DWTg51gGKy0ftdjOBgAAAwAC/KwTiIpM5clRTlEEi87aAOb87wCHqn1gnPnLGPfQQiw2QYxiClSodV7wEhhJw6ToIwyUjyxYDwVnF2+7eRq7fijw2kLyk5C88BvU1OTdlPGHyBmiT3UXo3I7308/Mn49t3tnXLB8MdaOaVwaRwEAFbiVrH5lksx9oY9DCw61tAqU07scxCL86wtgcyZCmy2ZZ/2W79DRKs2QCu0op9Lw2QYj/OgOj6apaZTOtksj8+VKlTlQQnkV9sFudGr7gpsQoaxBjmrhVk1adbYaFkKCEUYRbDRJpZQDbv1RIRFlY/KmWweiUOZDX+3fplGzJs5LvbvgiM7THIlybfPIXTjS2SPmFm+rQ6T4X9BQocVCjzQvz6g2kp58j9jXT5sBBuu9tC7iTFfMEzZHAQAW0QFraUkCV6gEC2C8wvr2E+hXgJwCskVL+063JAWE9yhGOTyWD/fLQiiuxJ/88Zes8sHmBC+quRzE8SHNO8OIMMptzSvx1i2D8aBb0ksDLYEqwCXN8Lsz+71HkS8SdC0nDGQZqAm7DYd3/uBgR/J4FAOc0jvOUci0tSUbSVn2z+H03GNfHcZ+XgduswjjsUodtsUtRn4nXpryhElgMI3kr2OyFXf92YxZPgbhGubgcNlo+sZ4Z/ApNUcBABeS+kT7jvDiaynYNz51Kc4yccGFoXKWRhGdSRtXJFDck0iJWKT4opQng0gcHiUFaL9bf4jSqm56kxLcQ5YAgHkDZ0UGYh6QEEPPAfCpoDLCF9mL+/OEuHWZ9NOnW7TcJlKbhJOZEKkoE4KW3fDydJ3a3l4IOByTPx5LJAjAZoV1BtKInfF7g5OQU0G5EXJGhFWUsr8Sf48Q9LVjnWvDuawWdWPiS+BcWfUZoGIkK6NoPQR/qL1AIJhcRwEAGAOEUaznr61uMAnNb33549uKjSRk1nM/fUR2BA7+39FhNrmR3taY6qgM804qoHgCSbYS+YIKj8U9vxfATvknbWEZv4JF5hoFJaAN0bNc36f9VcnxAkGsb3r74Yko3jVackXvVrdcN76rT9izohLnH2yQem0zb5wOq7EtjPnGn2t4t4/9JDKIfVb2QikijBu8gHlSjvgVRWSYDIRCi2Zle5MtFyXOaIGwCRAv6PFD6mmJBUT2XimID7tHAQAZOkCES5EDxQ08m+f8cpxKkoyHem8Ex4m8xZ2DA4d39JDH02xtTRRfSfDrC/TqpIjzCtcVv/zzgSflzEbq/UKFH/Z7CbtsrVS2+ll2/CGSNsmOHGi5yrhPM/JSClEmt6IRtyk0FZ3r5cdREJwAKoXP4tNLpfjWSZbATEIGmr+OxqYxQMlzf/93+QrgM/g1HvmPFBPard2U8aKbHTEH3r/kFdkNmlE0EQi5b8TOCYIa/mpuWq/yMn7by0cBABrkhq6Rldw6p3qQyVsZsBpoW3OLgDe/7/pMx+iijZdk9jE9T0fcFh77YVfpjYex2//dcNszIlWr2vl65Z1+0cQQShk/R5GP20mU4dc78l3iyti4DcDCi6PdIU4nzdwZIpGFX9xIuPAHaNfyP4Nyr1K0j9h5STEAHsYX21+iN6CKiuWoWOm3ev+GGzt1NNmtc1W0OYicTiPoIVr1TGzQC+1Nd7izII3tPWn1PEtqM9+fXo32ibSZUvGsRwEAG28xtoQMOBX+QWzc6MLY+xdighCBxpzLcNRK09DBzvBjyt59TqRxzLpeKgJMb4hkrGZnI7ZB7k4WSdssIdlyXiqQOLW68TKxOi/m2l4eAg3OCdiWnrmhOdRSMVLPALUNPDXtBJE5hOD/rtb0FHxtGQKnmP64bBNEEEJCWqJO6W+Gy5Bj/1OPVO5Lb/mGT6SfZVe2RtKnX3ZVDyDZb1jHV0Y6RKS8+Ww1Ya57NIcyPDo3g06Ef4Vi2RpHAQAcWH+V9i+eiLHkvPKkSHT97ZZGFxrcu9T++hegAGupHOjZYoxGWV+zfmemcnV4Qc0p0Sb+bCBN/WYAmY2PsHr+MIroPJIqRxQacYxgv0Eh/ahn4Y8AHjDPnPRprvdugL71ZtfrhmqiLml/RA0I8xMa/JZ4jrmIOqM+Z+fLjB67UYM71w0xjsBG/PgXRORM5Qqkfa6vscWkOW3l2RaUeeyDnUES4bdGUahzOYND5CZ11DaxBi7FZpSS2kcBAB1UDuNag/7CUCi13BGNTDCy03A2H45ho7AAABa85YSo2ddxRWSmP/8M1+fhrnv2TvJk7zHcA5z9BfW6MKcG/ehOV8RoJWUXPPQvUS5U0mqa69CuPBPy9cA1FwAI3ipau/UmVf9WS+R7+XREZCdpkNc5acRUaY6VieEi58Gy3p/q3E9lT4f4oYx563YFbu2Mjwq/dN/ncWug4Nun06Ap71zELPDKDaexmC+kEhaf6dReVEeK+uZfg42ZRwEAHq4bLzMgvrZQb5Neabro0F+gcFiL7UdLm0y8LR7TPvIQ+Kevu6d1BghMMTKxPVSrBVH6F6mATlcYYyhZ6fc7mnHFrpCznzCepMqz3ro5tOUnl9iNq+BQQPFZZlKIVl/GEtg5jzNU88j4KpNvVAoa6Cb/P9X3gWXF7KWmnzgUsZM5mR4GvWJWIcg+IDfe/2FtphXajgL5wfiIK1jzzOr3tQ5xYrVpBvuyKmtdCfIrHoFt4i/42TRgGMJHAQAfCTLHw8EYKGd4hzY41zaYLjR4E4nuBnCtxuCX9FhYm/YnBE6exCJDSBtf1sfFAv5pgAOcF+CZrALrM4tRCUKQs0t0o0+8+ZU1dyyuCLBTtC+vJydoSGmMBg+XNyIPtNEtN7qGS9WWA81qcbxxzsc40CIJf78S26nBKAJuyPu+iX9ANPAyMrgOAVc95U6bJlSjLkP6CXXR2dJRvUv3raWkoAAOjJ71lTFvacoQwhCErx3cbavuczBzJ0cBABB+z7EDY6atdC4NZwX22iBmtZsaHUa3NaBIO7aD08FA7Kd0ugfbomTYomPBMuWwk/b3KMR0uhkyeHKC1RjYo4d/mMo97xS4ix+t+38cwQHmkYQH5Cm1BO6ezuTSevjTojq1hlXD39LxF8a/93o4Tojo+ZmPPJix6BuKlBIwjtpZb0M+nOEX8jPyyd96ytD4eWjOAt/heOiSF9hvmiN50BmkUiITCBF39iClDPO2k/Fag4BqTBbtubcLRwEAEUNMr0m0/lLKJ5ks1W5j+cRzJ3kSK0mRkjrPrr0eWASIwI6LNyATeQMrpq3uWQlAQ+9SdeWmTu5uHTgt+d8sFZe8JXcU+1JnZRSZ9yaoEC0i+bOkGfWyMpA85qtvAlKTBMOm6ub/5NMaKU/VAW9lEvkA9PprSonQVMnG4+BlH2JOh8TsTKkBZPVgILxDM8mFjQXm0TBsezlo4ABKvPWcftdHUaGyF7gP1XbV0exXEHfsSASfYRd0OZZHAQASC+/t5TafeJT36YiEZXYeQH2+IoK6ZxRnFgTmKOGcCCYd3KzwxTJp8XFrSbvg7LzTDnvjGYOaazdnbZt4/Jn3krhhlSRWjhWRqAyxMNVF8n18FXqTzJB1PKNbd7ax8R0AjZfFVC/ycdg6wATRrdRJSofJHpjwYHGQO+L2neTkvCrH/gUPD1U+SjdMlUvLS6vMXop0yzDX/L7HQcLXjKsR2lGDYBlM1UB2WHnq/qPBycWFFtPYyTlN90cBABPvVe8f0oNTNwJhtM/kLJBEZI3ZwCEWYk/wv9hIIWr3A4qkehY4+ptgTX/1///4JZ6dscO9HKuG6puRV3lR4ETvMwdKnHPSHjJF2aQeuvoGeA7yVT+AaeDi7V8ZlVYMc4uVncx1liUQapUssjXpK+2MxWQ7Cb5GU97Drj7W/oPo2Ptldofr3uIe6fvheMu/6aViZagqUWfdOTc0YXVHZzPFok9FEQJUWdUPZiJlfllKLIy/6aAyw8HuRwEAFKEU8CS7kA5ZslGAnKoBbCTNOXl4p9BBgCPqieSBknZibS3PcR/LjWgGifTDu5u2Wj+eAMmSM7P3HMAAAC+T9jKtui2s4cFmXoWX8va4/qVAzxWGs3w547v+Tmac4FyXAqNj0/rFe9k3Egw/P9Q1LxzxwDOEbknnvYdCGAAp8Ivp0KW4t+inn46uKR4RHHa3/VSY8znvIUPdudc1/K0jIEI/Q3pEL9pzjQZxtgqbGfHOMo5yI2dWIDlHAQAV/YbUhbsIYEjAICdYv/AE36OWoooY0Nf/2lmJx7BftLoE1dLDfZKeiAdmrhnpvihEEfTo0MaKnEoSfryZ2OAN9yMb5+fcL8FTpHFFCfvfivNdZyTFOvrxIc3hv+2TavaVMjhtrDqlErqEd/XPoVqKmAeHo/ORSn73CZ/cWNXX0JQ1pRuP8VvL2QwfnG2vq9nTXfiQrMzEeEpNIaeqZS29MfFP8+VCiKyM9p1vNhZC1NItrJ+gsFzJsEcBABbEKpgjE+ovbWLdj0EXyH8KO2Jmn2vTLCKigPqQhq3uaL/6o+uZWDa8dvkxNep66qHmLO7/821Audrn3I6tmZZWSE51J3/XYBVjpW9Fw0Bkr6GpAeDT7ybMGYdKJsd7/WZPZV+Db7zD1ZmulDiRnfN9EmSFStYYD0lEfqrCbP+xQuwtYvfYJsqIvl31t7RBZk/QV2ENWfDLEpMHt5tlrAv5w+3dl1lg2WcrFP2A/7e4sIIyRJo4HsLGRwEAFz/AGCMZq1GUNbPZoNkM+R2je+8sB+Gh/lgSXtAQZK4CwsR8tHn5hyV9QoAAAGJ3xJ/ZGmyBFBfvFt3Yyf/NFoecJXk49dlUxZvTtB0WRCewg6hn1yl3AH406dFPGEk44wMT7vPKyYJW4OT7kiDQvBsdpaU9TmUUKyup1MsILviQKXWAv+kecpWRTY51BniLudSBH3vmnE2l4hUOm7AVWQ3O8V048//RRvDBX7tSPIiWu+MxSSGZfLdHQAARAACwDQABwQAAAAHwACqxBLL//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////0dQABEAArASAAHBAADhAPAAG+EA8AAVvU1W////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////RwEAGO10tGlFAwyE91Tzg8923ovJk1dv2xh1gVlYQFtWdZ6NSQ8vgHM7/tMfIZPsqgCU856rdBJJRMDaor/oWA7pkvSmC2aqaC5fd/mkWUPTuG8fRhGqOY1rKxLNSI3HtTQAcuVBxRM0NfMw0ky/JMJYZiCgXcNsxpxl+khr/9fKtO5Fg2VNBti92xcZimHUZDJMQTBOY6vSR9L1N2O/kJQCpdfuc9bkcUTMjH/es/lAySxvbiislkohqkpHAQAZVatwHI0t9eHCUfDyWUEtuCNyDwQFOVMtaYEQJrTrhQX0VduT86F0u0wN9ag0uPsrmX6Rid/x5S7KI1SkS+qP6cdmgSP57uiF4dG6IKsWNfGBLY09H/CFlrg73WINQkkp2diKkdEmtZetn8+ZAKzR5eXN5FebiKt6pIkNLuSofjosypEs2o6boKsfpmbtOV0idOeWDM9C8EIcn3aZwk1s2KBDvt1DlY+i2Cuvhk3XoKLT+pq/bOC5QkcBABolcOXneZXLoQw9W1PH1f/of92Ytjj8okrWijcQAKlE5l8XoTb9qrOiZnDOhqwcMlB9H9rorq041I89hChohYoSkJElcM8V+r8WYN5axD1BNyfwaHAOm4UN2/VEYOkNSfMjmx2S0WW/F2ha8Jj4fc4QgqcXr+TnnbwqLkLTValK4Qa1pcv7PIbDq6zCUfxe04guZ8xEhPQjp17/G6IB/6uq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wnibxQ/cXEblVnM47wbCN3iy4eHjYB5MoIICrSYmd8nt4V0toLs084KJlmnur5FbApYM4W79ff4oZkW88Cg8Fv8TnWhh1Hqc4UlhMbRKm2QxDgfBxar3U7BwNR6prrXXjqfR7ja3tPli+H7Jez/xcTg32QpHAQAdTa7pSSgBvmOqzz175NAFIhwE9p3d71F9jLvhaPv8q1iKopL0kizwzEWElnXWmNhfLkl/Au8KujnoKUaxVdTe+zAZm2dOkejnpNVtVj0Aw9wKcG3ZQ1iRZrUFRIoPKYlmR+oi0LrupuhYABtgPbdCbDtezGTr0nw9wVd/rZ6V+1wcoJ6+8VAVueIdwI3brqm6EoFHiI8L6lER+9SefB8fHo4NYgr/I8jSxaa/2PLX2K/DjrlY6bN8fEcBAB7DXsuh8DITF6CYWj2HTFvqfzlic3QHXnHtvsTFNpyVY1LY8y/fRK2mwALN6IB5W3OuyoKiA3K0lJdQUv2gYhHWvPTV218HYrD0rkbMxRH0SiEEkrHDeOt5T1HtWD13D2/QvMu535fsfZyeaFDjdCE9M0Xi8Lfc7Xj1ZNGend7Jo7/cEiczFkc1vB4z2JpFGZreV2EdquyEzC2STFJtfimyx8QlLngEuR1cxH+lWEcFX+mvBa/eqktIRwEAH6VazFLPNsnHZqsI66TVoArQuUUGFAzr8MT8GZ9V6qpZa5D0jA/4eGi6Kq0smUgRExnqIbSMLWqDf/Pk2YT3MpHTu9VE3Dn9blgB6KsVIkWnB98Y2n/6DrZDcF94Ndu0Ka4U/RZwdV5O5KcO+lU2ZiIOYTYZ6Ie0d+tApxYxJ+YmxaDoCyRNe6crw/yzR5SflT8ddi/E2BM+l+nwVDiKZ/714fmrBxFKWuqLiQNHV19o1cZ8Ubun+ZtHQAASAACwDQABwQAAAAHwACqxBLL//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////0dQABIAArASAAHBAADhAPAAG+EA8AAVvU1W////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////RwEAEH1s3BdtHdF1ln55B24wdACF/ggcRtPmB4IUB6cZJ+m32I4R48ZkdhAFBulgWcsv0wZwH0o1yi3i4qm3rJ98AUKdB9PsNyG9gURV0bTw4myAj6g5Dgodfv6w9bsbOxsGUWkvgAJ3rrR010BvZbIa6CMRCQRjxkCfRF77ansRJZT0JzhtYeSS/ZJob8Rr2jrng3W2rkmHtE+rdqlPiHxmwkRZvYGhBxwiJO2L6f+l/cABsfs09rA+A0pHAQAREZay3TBUIAfMWhApE+LaPgeyOYtaPFONA9aC0h4QrFkaLZfb86678MK+zLgqDBsDoj50eZHMVcczRjs4sYlv7RG8RIWKb5lB9Kn/8+CkxiiA11cHH1yzLX2SKCmhsak/+P/zYQ1EDvEj33bl9e3Jd62cTI+Qw99KrsWnUMN8hFNeXzoGHA3aec+Li4NFboF8sa6lCPR6Csxsvxw8DJaWCnER5Z0p+nKhXavF/eNHQ0DX47ohycc87UcBABKsYHCHXXe3vK1cFYDWO6rhwM6hxCdJ+/X+VB1akQejL6iBMdUPuadUqBnbprwJM0dWpSSn9uuZZeqe46iZOGIJUo69d8x+ZSvPcBH/dK1Y0LJnoWdgWH51SQg7eYqcwjQW3BOy7ZF02Hn1EhTuhsN7ms8zv3WIeEBDBq0T3Idl+Tmw9iJU9skVYiwygHG2+0XwrLa6y+uiQPwMzrnEr1kuf24XoAqrJTZQiVH3aQF4d94yDreWu2KPRwEAE2FsynHZaUcBXEFbeX0nSxZ7sRcRjJvc7RYOny6N8QFwKDVO7jpRWWYM55kuepBOyZ+7BFYeG+FU1kR+ZfmqyDNkD4D1IPwNh6u9JQxDymfN/aMcQC3WxdvCKquPsAut6dugpGkOFtIe+W3ayc4V/J978P+h1EDFMbFjxRPuXht0K2dBQZCJ0ybISUDqWzhPuep8CdxSU4MvMVfdXh7FLl/BqKJUTT+vM+Pz3XnqCQQmH5TjQ4CK55VHAQAUEtgfkBwIYgtwHkhjmtLw7HNTeJeMfTjATEKcyuKzItSeYxHBmGzQ/+G2otpPCOkVAXJ9mfx7LxrW4joZ0ttTRQJ/wqMUK1IN349LiJoo8y/+FwN4jPNDwIleJG697riqnmLOweFW8spHKLBfnHcyC1pG6EIxFpTqUQ0KHqXD/KXIHKioJNAOVwQ1Gfloxebo/Tdtd00dpHP3gcsAOnV75APCYOjVIlwm2X6ViDeZw6Btdb/Br/+yokcBABU3+eOESLlneGbR5SLiL8wPkoRaZ5X7xFlMTMvsv9yHk26bVdmsubSdbYS1Hy64n0+NnL7C1aLD7aJxOudMjVW5goZbfO2KxBQkCD4HFA284wbaB5vOL7mRilCn6YEs1kiwf22+fBLNUmXDb2p353wrD/ygTDhlki66USvUmd/ZAs9uzAddegEzy7Xn00YysWTu/hegYyZtWFC+X5dhLubWJ7n96y5wjrP7PAOXoQQtFUH9j/rBiP/7RwEAFnL/wYKYuj80mPGtimSbF/E9K7XwjwBz8yHZubmVMTCmwkZBM4h0FR1thnUGiSjqjJT6SfunWCZ/dZDQplrzS00UKcUP399SyM+nNG1br8Za0ZYwWch8nyLHYXSRuxdnrfUUespsOQo1cWSLGf0pV2HIcHoiAAEKwPU6irB5BSoFvB1qKVjgEk+QwAEYAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAABHAQA3pAD/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////AwAAAwAAAwAAAwAAAwAAAwBbwUdBABgAAAHgAACAwAoxAAmBIREAB/SBAAAAAQnwAAAAAUGaJGxDv/6plgAAAwAAAwAAAwAAAwAAAwAAAwAAAwAKCKB0AIhy1ftwLNISWucTFC7xeBcaIzP3oZjZo8uT9hqZVstWGnrPz+vjaA5FuCO+K2w7/o39LygDO7aL+0zSrN90LW7r133x8+f+PEKk8d7pd2fj4RYuMOXOYunzFzRX/4IvR1XsK5WJYwVkOca3yfo7DTvUBP9rgSiTRwEAGQD6CFK1PBC4qYCa+coLVnX+jgODNrau5YJXIekDI4+wUNV+5T5HE4e2t5EGAjn77+kC1Vghmvx8KqPnylVUvsaTofheggxHsPuxn1zQt6nA59UglrRUMn8b4pmrvfqTBSqU949+AcNAI6M/eAqz6r0RG5KNeBhx8R2f0x2kujwHU3pc3rlPb6ZrFM/2HiG97eEIezrvWFG7YAAAAwAAAwAE1KRo1VfbdZQ/tOpNGxFmTcQoFidyD2tHAQAapTTIErUKA2Rc9uIzGJu+oW0uNOxRyl6oJNUNJp5L9TIshNS1CmUKgdCaE3LkLwdE8iUkUnIGfWLiWpWmjzsINYC8dnDaSptB53yJkBu0SsR00oo1PZ0pl4ZzoXGSYQJTPaVCbj6FNqm5wcnUqKTB/rgHdPdnDj0K8asLABeo/n3XCXrDorI+LYSD1FBgmV9O7RZdjfL0NnXOQkiq/ZGirwVV0cUF1aHtZx1yHlAAZKuuu7TqB13CAUcBADuRAP///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////yj/IrOvAEoXDNGy+nrxWN0l8cmuqWYaUJpuM9XgAAADAAADAAKmR0EAPAcQAACJHH4AAAAB4AAAgMAKMQAJSOERAAkQoQAAAAEJ8AAAAAFBnkJ4hf8AAAMAAAMAAAMAAAMAAAMAAAMAAAMAC/BmhyuvLmkCgKTgACEXfOVvHRHdpBEEmTTz9pIZCa2FD0CXukzDCakOHekTpJQSdsfd7a/jjM1/5lBtKCAGQ6zOCSQ6DeKtyw+CugDuuglGipwmvQW+FIDjnZ6HRd0uaSOGy6VB3h9MI1o4nqaCqVwwIgubYZFHAQA9XgD////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////WcZrO6BEiqf8pCxYwlz2mkdUzY/ipM/TIHS4m5xQAAAMAAAMAAA5sVm90p14dlvWgBgY7XQ9KVOJKLtaMAN5KiffVQtNuzW5DfL+RewZpAAADAAADAAAQMUdBAB4AAAHgAACAgAUhAAkswQAAAAEJ8AAAAAEBnmF0Qr8AAAMAAAMAAAMAAAMAAAMAAAMAAAMAABJfBjP2+4+W7ZybyT130+Ma4WSqICfd/dS4YtjrLlmh5VBlfrtwJqdN1PBTYDkwGOOONqZQeFN6lLGJoDzvuh3kv1aDBLqug+JhvrSeu5ebnvcrtQzb2REwJL3h9mvtkr0WfDu4AAADAAADAAs32Y4C/6Ns79oCGj6oqLltY3T4I0/QRwEAP5wA//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////8BeoWLRnKQmVgO/RBoBfcK85AAAAMAAAMACFhHQQAwBxAAAJcsfgAAAAHgAACAwAoxAAllAREACUjhAAAAAQnwAAAAAQGeY2pCvwAAAwAAAwAAAwAAAwAAAwAAAwAAAwAAEmDKfLGXsvBBQPNYXlEd6WueJ4deApfcHESlG+7V6u0AiWQqJvNZYM+3Js3Lj9Ldc9yYIHqruVwfMtCYGlX3wMavI/DrhMuJw+RreIF8SKsJD8CMccAAAAMAAAMACrFZOBgEqaP/8EyWsAHV6CgcAgfyox/roEcBADGuAP//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////AAADAAADAHTBR0EAEgAAAeAAAIDACjEACfGhEQAJZQEAAAABCfAAAAABQZpoSahBaJlMCHf//qmWAAADAAADAAADAAADAAADAAADAAADAAALf8A2bry6lUyIAQGNFfVK2Cd7h4qDqmqpvmXfkfTwo2Ab79AHhajxJ4MPWIgAAA84xLRIx7I2CrWjWe96OvgkzgS9mtvhuxdzAgpuIOJI3DEY9mviDDZz8XSAAAADAAADAB7AZkj9AAHHGvk+Pzlku8UkWa5HAQAzogD//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////6HjAkbF/gsWuvw4QAAAAwAAAwAccUdBADQHEAAApTx+AAAAAeAAAIDACjEACblhEQAJgSEAAAABCfAAAAABQZ6GRREsL/8AAAMAAAMAAAMAAAMAAAMAAAMAAAMAAA3URJB/3lMHSmOd0GYZnfpoR80WdqxlyHzPX+V81VUMeXIGrRgq5agd+ACdjoGI036yQ/rmpGw0CmMBrKwpI+nwFo3SP0s1rI2yHBZaiPJjSUgw33rBkxXcq55kfLf2sAAAAwAAAwACBWolidWDnIeQAAADRwEANbEA//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////8AAAMADulHQQA2NAD///////////////////////////////////////////////////////////////////8AAAHgAACAgAUhAAmdQQAAAAEJ8AAAAAEBnqV0Qr8AAAMAAAMAAAMAAAMAAAMAAAMAAAMAABJXNihCnx11JUosH2hBE53O/YN+GPHqcnJiQBIf3maTAAj5iRt+7GYUKBAU9iCXTiouCjGYgAAAAwAAAwA9p4HQBg2cAAADAAADAADGgUdBADc4EAAAs0x+AP////////////////////////////////////////////////////////////////8AAAHgAACAwAoxAAnVgREACblhAAAAAQnwAAAAAQGep2pCvwAAAwAAAwAAAwAAAwAAAwAAAwAAAwAAAwBR6/L83y+ZevtMZ0FW4lp8qV7fVXQAhLAWlS6mDxvpaSUgChorvgTMXtxJEIAAAAMAAAMACqFCAAADAAADAAADAAz4R0EAOCsA////////////////////////////////////////////////////////AAAB4AAAgMAKMQALYiERAAnVgQAAAAEJ8AAAAAFBmqxJqEFsmUwId//+qZYAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAApQTq0hABLvkcWCYrAaRRPNDrECJGlF/11BYvG9+JJ9Y86nxnmQzPxtAAe1UgOsXAAADAAADAAADAAADAAADAAADAAADA/JHQQA5JhAAAMFcfgD/////////////////////////////////////////AAAB4AAAgMAKMQALKeERAAnxoQAAAAEJ8AAAAAFBnspFFSwv/wAAAwAAAwAAAwAAAwAAAwAAAwAAAwAADdRFmvrVE0KXDOGwWddlwYa1foib7tXZKmkua6R4APb4b8+tXwdSNNqgf2IVNwGTohgQAcMvp6SiQxpiQym4AAADAAADAANUNUAAAAMAAAMAAAMBN0dBADo8AP//////////////////////////////////////////////////////////////////////////////AAAB4AAAgIAFIQALDcEAAAABCfAAAAABAZ7pdEK/AAADAAADAAADAAADAAADAAADAAADAAADAFHTAfujIUaaLSuklb9y0/so9AEtQAqkAxOviALQZ5jNt/iOkABrCOZ4md0iUnFwAAADAAADAALwckAAAAMAAAMAAATcR0EAO0IQAADPbH4A//////////////////////////////////////////////////////////////////////////////8AAAHgAACAwAoxAAtGAREACynhAAAAAQnwAAAAAQGe62pCvwAAAwAAAwAAAwAAAwAAAwAAAwAAAwAAAwBR6/L83y+WryR9gmVKPGbIhJpkgAFgHCej3gB6rAHPgHHAAAADAAADAAAYIV0AAAMAAAMAAAMABnxHQQA8UQD//////////////////////////////////////////////////////////////////////////////////////////////////////////wAAAeAAAIDACjEAC9KhEQALRgEAAAABCfAAAAABQZrwSahBbJlMCG///qeEAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAAZ8UdBAD00EAAA3Xx+AP///////////////////////////////////////////////////////////wAAAeAAAIDACjEAC5phEQALYiEAAAABCfAAAAABQZ8ORRUsL/8AAAMAAAMAAAMAAAMAAAMAAAMAAAMAAA3URZr61RNClwzhI2ZXdRHYLZWc1yTgKRhTIXBNABHQKIIyYNyc+AaEn1jhATEAAAMAAAMAAAMAckkIAAADAAADAAADAEbBR0EAPkYA////////////////////////////////////////////////////////////////////////////////////////////AAAB4AAAgIAFIQALfkEAAAABCfAAAAABAZ8tdEK/AAADAAADAAADAAADAAADAAADAAADAAADAFHTAfujIUAYRtY0f/43cIs2OjxACR2hMR1QBGYX+34JGAAAAwAAAwAAAwKEJ6AAAAMAAAMAAAMA3oFHQQA/QhAAAOuMfgD//////////////////////////////////////////////////////////////////////////////wAAAeAAAIDACjEAC7aBEQALmmEAAAABCfAAAAABAZ8vakK/AAADAAADAAADAAADAAADAAADAAADAAADAFHr8vzfL5avJH2CZUo8ZsiEmmSAAWAcJ6PeAHqsAc+AccAAAAMAAAMAABghXQAAAwAAAwAAAwAGfEdBADBRAP//////////////////////////////////////////////////////////////////////////////////////////////////////////AAAB4AAAgMAKMQANQyERAAu2gQAAAAEJ8AAAAAFBmzRJqEFsmUwIZ//+nhAAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAGVAR0EAMTQQAAD5nH4A////////////////////////////////////////////////////////////AAAB4AAAgMAKMQANCuERAAvSoQAAAAEJ8AAAAAFBn1JFFSwv/wAAAwAAAwAAAwAAAwAAAwAAAwAAAwAADdRFmvrVE0KXDOEjZld1EdgtlZzXJOApGFMhcE0AEdAogjJg3Jz4BoSfWOEBMQAAAwAAAwAAAwBySQgAAAMAAAMAAAMARsFHQQAyRgD///////////////////////////////////////////////////////////////////////////////////////////8AAAHgAACAgAUhAAvuwQAAAAEJ8AAAAAEBn3F0Qr8AAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAUdMB+6MhQBhG1jR//jdwizY6PEAJHaExHVAEZhf7fgkYAAADAAADAAADAoQnoAAAAwAAAwAAAwDegEdBADNCEAABB6x+AP//////////////////////////////////////////////////////////////////////////////AAAB4AAAgMAKMQANJwERAA0K4QAAAAEJ8AAAAAEBn3NqQr8AAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAUevy/N8vlq8kfYJlSjxmyISaZIABYBwno94AeqwBz4BxwAAAAwAAAwAAGCFdAAADAAADAAADAAZ8R0EANFIA////////////////////////////////////////////////////////////////////////////////////////////////////////////AAAB4AAAgMAKMQANs6ERAA0nAQAAAAEJ8AAAAAFBm3hJqEFsmUwIV//+OEAAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAYtHQQA1NBAAARW8fgD///////////////////////////////////////////////////////////8AAAHgAACAwAoxAA17YREADUMhAAAAAQnwAAAAAUGflkUVLC//AAADAAADAAADAAADAAADAAADAAADAAAN1EWa+tUTQpcM4SNmV3UR2C2VnNck4CkYUyFwTQAR0CiCMmDcnPgGhJ9Y4QExAAADAAADAAADAHJJCAAAAwAAAwAAAwBGwEdBADZGAP///////////////////////////////////////////////////////////////////////////////////////////wAAAeAAAICABSEADV9BAAAAAQnwAAAAAQGftXRCvwAAAwAAAwAAAwAAAwAAAwAAAwAAAwAAAwBR0wH7oyFAGEbWNH/+N3CLNjo8QAkdoTEdUARmF/t+CRgAAAMAAAMAAAMChCegAAADAAADAAADAN6BR0EAN0IQAAEjzH4A//////////////////////////////////////////////////////////////////////////////8AAAHgAACAwAoxAA2XgREADXthAAAAAQnwAAAAAQGft2pCvwAAAwAAAwAAAwAAAwAAAwAAAwAAAwAAAwBR6/L83y+WryR9gmVKPGbIhJpkgAFgHCej3gB6rAHPgHHAAAADAAADAAAYIV0AAAMAAAMAAAMABn0=" diff --git a/src/webserver.go b/src/webserver.go index 4bce24d..e9099e4 100644 --- a/src/webserver.go +++ b/src/webserver.go @@ -462,6 +462,7 @@ func WS(w http.ResponseWriter, r *http.Request) { var previousTLSMode = Settings.TLSMode var previousHostIP = Settings.HostIP var previousStoreBufferInRAM = Settings.StoreBufferInRAM + var previousClearXMLTVCache = Settings.ClearXMLTVCache response.Settings, err = updateServerSettings(request) if err == nil { @@ -494,6 +495,10 @@ func WS(w http.ResponseWriter, r *http.Request) { initBufferVFS(Settings.StoreBufferInRAM) } + if Settings.ClearXMLTVCache && previousClearXMLTVCache == false { + clearXMLTVCache() + } + } case "saveFilesM3U": diff --git a/src/xepg.go b/src/xepg.go index f6ead69..5e46ee8 100644 --- a/src/xepg.go +++ b/src/xepg.go @@ -96,7 +96,9 @@ func buildXEPG(background bool) { System.ScanInProgress = 0 - // clearXMLTVCache() + if Settings.ClearXMLTVCache { + clearXMLTVCache() + } }() @@ -136,7 +138,9 @@ func buildXEPG(background bool) { System.ScanInProgress = 0 - // clearXMLTVCache() + if Settings.ClearXMLTVCache { + clearXMLTVCache() + } }() diff --git a/ts/base_ts.ts b/ts/base_ts.ts index 4182e11..85ef423 100644 --- a/ts/base_ts.ts +++ b/ts/base_ts.ts @@ -10,7 +10,6 @@ var WS_AVAILABLE = false // Menu var menuItems = new Array() menuItems.push(new MainMenuItem("playlist", "{{.mainMenu.item.playlist}}", "m3u.png", "{{.mainMenu.headline.playlist}}")) -//menuItems.push(new MainMenuItem("pmsID", "{{.mainMenu.item.pmsID}}", "number.png", "{{.mainMenu.headline.pmsID}}")) menuItems.push(new MainMenuItem("filter", "{{.mainMenu.item.filter}}", "filter.png", "{{.mainMenu.headline.filter}}")) menuItems.push(new MainMenuItem("xmltv", "{{.mainMenu.item.xmltv}}", "xmltv.png", "{{.mainMenu.headline.xmltv}}")) menuItems.push(new MainMenuItem("mapping", "{{.mainMenu.item.mapping}}", "mapping.png", "{{.mainMenu.headline.mapping}}")) @@ -21,7 +20,7 @@ menuItems.push(new MainMenuItem("logout", "{{.mainMenu.item.logout}}", "logout.p // Settings categories var settingsCategory = new Array() -settingsCategory.push(new SettingsCategoryItem("{{.settings.category.general}}", "tlsMode,xteveAutoUpdate,hostIP,tuner,epgSource,disallowURLDuplicates,api")) +settingsCategory.push(new SettingsCategoryItem("{{.settings.category.general}}", "tlsMode,xteveAutoUpdate,hostIP,tuner,epgSource,disallowURLDuplicates,clearXMLTVCache,api")) settingsCategory.push(new SettingsCategoryItem("{{.settings.category.mapping}}", "defaultMissingEPG,enableMappedChannels")) settingsCategory.push(new SettingsCategoryItem("{{.settings.category.files}}", "update,files.update,temp.path,cache.images,xepg.replace.missing.images")) settingsCategory.push(new SettingsCategoryItem("{{.settings.category.streaming}}", "buffer,udpxy,buffer.size.kb,storeBufferInRAM,buffer.timeout,user.agent,ffmpeg.path,ffmpeg.options,vlc.path,vlc.options")) diff --git a/ts/settings_ts.ts b/ts/settings_ts.ts index f89120a..720eceb 100644 --- a/ts/settings_ts.ts +++ b/ts/settings_ts.ts @@ -314,6 +314,20 @@ class SettingsCategory { setting.appendChild(tdRight) break + case "clearXMLTVCache": + var tdLeft = document.createElement("TD") + tdLeft.innerHTML = "{{.settings.clearXMLTVCache.title}}" + ":" + + var tdRight = document.createElement("TD") + var input = content.createCheckbox(settingsKey) + input.checked = data + input.setAttribute("onchange", "javascript: this.className = 'changed'") + tdRight.appendChild(input) + + setting.appendChild(tdLeft) + setting.appendChild(tdRight) + break + case "api": var tdLeft = document.createElement("TD") tdLeft.innerHTML = "{{.settings.api.title}}" + ":" @@ -591,6 +605,10 @@ class SettingsCategory { text = "{{.settings.update.description}}" break + case "clearXMLTVCache": + text = "{{.settings.clearXMLTVCache.description}}" + break + case "api": text = "{{.settings.api.description}}" break From a7cb0f0a193f2ca64b96b099eb1f6bf5482e60b6 Mon Sep 17 00:00:00 2001 From: SCP002 Date: Wed, 4 May 2022 23:19:48 +0300 Subject: [PATCH 115/189] Upgrade dependencies --- go.mod | 4 ++-- go.sum | 32 ++++---------------------------- 2 files changed, 6 insertions(+), 30 deletions(-) diff --git a/go.mod b/go.mod index 0d531cb..ec44238 100644 --- a/go.mod +++ b/go.mod @@ -6,7 +6,7 @@ require ( github.com/gorilla/websocket v1.5.0 github.com/kardianos/osext v0.0.0-20190222173326-2bc1f35cddc0 github.com/koron/go-ssdp v0.0.3 - github.com/samber/lo v1.18.0 + github.com/samber/lo v1.20.0 github.com/stretchr/testify v1.7.1 ) @@ -17,6 +17,6 @@ require ( github.com/pmezard/go-difflib v1.0.0 // indirect golang.org/x/exp v0.0.0-20220428152302-39d4317da171 // indirect golang.org/x/net v0.0.0-20220425223048-2871e0cb64e4 // indirect - golang.org/x/sys v0.0.0-20220429121018-84afa8d3f7b3 // indirect + golang.org/x/sys v0.0.0-20220503163025-988cb79eb6c6 // indirect gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b // indirect ) diff --git a/go.sum b/go.sum index 789d7cf..17fd458 100644 --- a/go.sum +++ b/go.sum @@ -1,7 +1,3 @@ -github.com/avfs/avfs v0.28.0 h1:srNIj81bIqD8J5QP/F46WfLfcy/viVDqo82XEERFm0E= -github.com/avfs/avfs v0.28.0/go.mod h1:CSGcc8vnwdripDtbXQ6hzmKazmnJFZ7m2ObyomzneEg= -github.com/avfs/avfs v0.29.0 h1:9LBkWAQkxrrRQmw5oPBXjbVkAb/zQ4iNLYyt0GunZuo= -github.com/avfs/avfs v0.29.0/go.mod h1:CSGcc8vnwdripDtbXQ6hzmKazmnJFZ7m2ObyomzneEg= github.com/avfs/avfs v0.30.0 h1:rrcJMJNdqXj8bsVNEXItbA4Oj1NxOE1/h+YtJ3ah2z8= github.com/avfs/avfs v0.30.0/go.mod h1:CSGcc8vnwdripDtbXQ6hzmKazmnJFZ7m2ObyomzneEg= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= @@ -11,44 +7,24 @@ github.com/gorilla/websocket v1.5.0 h1:PPwGk2jz7EePpoHN/+ClbZu8SPxiqlu12wZP/3sWm github.com/gorilla/websocket v1.5.0/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE= github.com/kardianos/osext v0.0.0-20190222173326-2bc1f35cddc0 h1:iQTw/8FWTuc7uiaSepXwyf3o52HaUYcV+Tu66S3F5GA= github.com/kardianos/osext v0.0.0-20190222173326-2bc1f35cddc0/go.mod h1:1NbS8ALrpOvjt0rHPNLyCIeMtbizbir8U//inJ+zuB8= -github.com/koron/go-ssdp v0.0.2 h1:fL3wAoyT6hXHQlORyXUW4Q23kkQpJRgEAYcZB5BR71o= -github.com/koron/go-ssdp v0.0.2/go.mod h1:XoLfkAiA2KeZsYh4DbHxD7h3nR2AZNqVQOa+LJuqPYs= github.com/koron/go-ssdp v0.0.3 h1:JivLMY45N76b4p/vsWGOKewBQu6uf39y8l+AQ7sDKx8= github.com/koron/go-ssdp v0.0.3/go.mod h1:b2MxI6yh02pKrsyNoQUsk4+YNikaGhe4894J+Q5lDvA= github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e h1:fD57ERR4JtEqsWbfPhv4DMiApHyliiK5xCTNVSPiaAs= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= -github.com/samber/lo v1.11.0 h1:JfeYozXL1xfkhRUFOfH13ociyeiLSC/GRJjGKI668xM= -github.com/samber/lo v1.11.0/go.mod h1:2I7tgIv8Q1SG2xEIkRq0F2i2zgxVpnyPOP0d3Gj2r+A= -github.com/samber/lo v1.18.0 h1:Us2BxtWXMLfIHm7lOJ3FnsSz1pzYAI7yfRZPV/5nBPU= -github.com/samber/lo v1.18.0/go.mod h1:2I7tgIv8Q1SG2xEIkRq0F2i2zgxVpnyPOP0d3Gj2r+A= +github.com/samber/lo v1.20.0 h1:20FtphdORvp4yxklurzZv2HX+g+0urEMQziODC5bV70= +github.com/samber/lo v1.20.0/go.mod h1:2I7tgIv8Q1SG2xEIkRq0F2i2zgxVpnyPOP0d3Gj2r+A= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/testify v1.7.1 h1:5TQK59W5E3v0r2duFAb7P95B6hEeOyEnHRa8MjYSMTY= github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/thoas/go-funk v0.9.1 h1:O549iLZqPpTUQ10ykd26sZhzD+rmR5pWhuElrhbC20M= -golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= -golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= -golang.org/x/exp v0.0.0-20220303212507-bbda1eaf7a17 h1:3MTrJm4PyNL9NBqvYDSj3DHl46qQakyfqfWo4jgfaEM= -golang.org/x/exp v0.0.0-20220303212507-bbda1eaf7a17/go.mod h1:lgLbSvA5ygNOMpwM/9anMpWVlVJ7Z+cHWq/eFuinpGE= golang.org/x/exp v0.0.0-20220428152302-39d4317da171 h1:TfdoLivD44QwvssI9Sv1xwa5DcL5XQr4au4sZ2F2NV4= golang.org/x/exp v0.0.0-20220428152302-39d4317da171/go.mod h1:lgLbSvA5ygNOMpwM/9anMpWVlVJ7Z+cHWq/eFuinpGE= -golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= -golang.org/x/net v0.0.0-20200904194848-62affa334b73/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= -golang.org/x/net v0.0.0-20220403103023-749bd193bc2b h1:vI32FkLJNAWtGD4BwkThwEy6XS7ZLLMHkSkYfF8M0W0= -golang.org/x/net v0.0.0-20220403103023-749bd193bc2b/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= golang.org/x/net v0.0.0-20220425223048-2871e0cb64e4 h1:HVyaeDAYux4pnY+D/SiwmLOR36ewZ4iGQIIrtnuCjFA= golang.org/x/net v0.0.0-20220425223048-2871e0cb64e4/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= -golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20220405210540-1e041c57c461 h1:kHVeDEnfKn3T238CvrUcz6KeEsFHVaKh4kMTt6Wsysg= -golang.org/x/sys v0.0.0-20220405210540-1e041c57c461/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20220422013727-9388b58f7150 h1:xHms4gcpe1YE7A3yIllJXP16CMAGuqwO2lX1mTyyRRc= -golang.org/x/sys v0.0.0-20220422013727-9388b58f7150/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20220429121018-84afa8d3f7b3 h1:kBsBifDikLCf5sUMbcD8p73OinDtAQWQp8+n7FiyzlA= -golang.org/x/sys v0.0.0-20220429121018-84afa8d3f7b3/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= +golang.org/x/sys v0.0.0-20220503163025-988cb79eb6c6 h1:nonptSpoQ4vQjyraW20DXPAglgQfVnM9ZC6MmNLMR60= +golang.org/x/sys v0.0.0-20220503163025-988cb79eb6c6/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20200227125254-8fa46927fb4f h1:BLraFXnmrev5lT+xlilqcH8XK9/i0At2xKjWk4p6zsU= gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= From a708be072eecd2a3655a04668f35b494fe4d7c98 Mon Sep 17 00:00:00 2001 From: SCP002 Date: Wed, 4 May 2022 23:21:17 +0300 Subject: [PATCH 116/189] Bump program version to 2.5.0, database version to 2.3.0 --- src/update.go | 2 +- xteve.go | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/update.go b/src/update.go index e4b8dac..2894be1 100644 --- a/src/update.go +++ b/src/update.go @@ -266,7 +266,7 @@ checkVersion: goto checkVersion - case "2.2.0", "2.2.1", "2.2.2", "2.2.3": + case "2.2.0", "2.2.1", "2.2.2", "2.2.3", "2.3.0": // If there are changes to the Database in a later update, continue here break diff --git a/xteve.go b/xteve.go index 59d827b..9c0da99 100644 --- a/xteve.go +++ b/xteve.go @@ -37,10 +37,10 @@ var GitHub = GitHubStruct{Branch: "master", User: "SCP002", Repo: "xTeVe", Updat const Name = "xTeVe" // Version : Version, the Build Number is parsed in the main func -const Version = "2.4.1.0000" +const Version = "2.5.0.0000" // DBVersion : Database Version -const DBVersion = "2.2.3" +const DBVersion = "2.3.0" // APIVersion : API Version const APIVersion = "1.1.0" From e120f5bf939067911412db3e61004105c669065c Mon Sep 17 00:00:00 2001 From: SCP002 Date: Sun, 8 May 2022 13:43:55 +0300 Subject: [PATCH 117/189] Remove README-DEV.md and changelog-beta.md. Remove old files from .gitignore --- .gitignore | 8 +---- README-DEV.md | 0 changelog-beta.md | 91 ----------------------------------------------- 3 files changed, 1 insertion(+), 98 deletions(-) delete mode 100644 README-DEV.md delete mode 100644 changelog-beta.md diff --git a/.gitignore b/.gitignore index 4f942d6..3a56cf5 100644 --- a/.gitignore +++ b/.gitignore @@ -1,10 +1,4 @@ .DS_Store -demo -dev -compiler -files -update_xteve*.sh xteve xteve.exe -de.json -/.idea/* \ No newline at end of file +/.idea/* diff --git a/README-DEV.md b/README-DEV.md deleted file mode 100644 index e69de29..0000000 diff --git a/changelog-beta.md b/changelog-beta.md deleted file mode 100644 index 2135f54..0000000 --- a/changelog-beta.md +++ /dev/null @@ -1,91 +0,0 @@ -#### For any futurer changes, see https://github.com/SCP002/xTeVe/releases ---- - -#### 2.1.1.0116-beta -If no user agent is specified, the default FFmpeg or VLC user agent is used. - -#### 2.1.1.0115-beta -```diff -+ GZIP compression for xteve.xml file. (http://xteve.ip:34400/xmltv/xteve.xml.gz) -- Removed protocol setting for reverse proxy. HTTPS can also be configured in the proxy, where it makes more sense. -``` - -#### 2.1.0.0106-beta -```diff -+ User-Agent is now also used by VLC and FFmpeg. -``` - -#### 2.1.0.0105-beta -```diff -+ Fixed wrong buffer value in log -+ New setting: URL protocol for M3U and XML file -+ Add xml tag premiere to xteve.xml -``` - -#### 2.1.0.0101-beta -```diff -+ Reverse proxy fix -``` - -#### 2.0.3.0042-beta -**Version 2.0.3.0042 changes the settings.json.** -Settings from the current beta can not be used for the current master version 2.0.3 -- New default options for VLC and FFmpeg -- VLC and FFmpeg log entries in the xTeVe log -- Less CPU load with VLC and FFmpeg - -#### 2.0.3.0035-beta -```diff -+ FFmpeg support -+ VLC support -``` -**Version 2.0.3.0035 changes the settings.json.** -Settings from the current beta can not be used for the current master version 2.0.3 - -#### 2.0.2.0024-beta -```diff -+ Improved monitoring of the buffer process -+ Update the XEPG database a bit faster -``` - -##### Fixes -- Error message if filter rule is missing -- Channels are lost when saving again (Mapping) -- Plex log, invalid source: IPTV - -#### 2.0.1.0012-beta -```diff -+ Add support for "video/m2ts" video streams (Pull request #14) -``` -#### 2.0.1.0011-beta -```diff -+ Original group title is shown in the Mapping Editor -``` -##### Fixes -- incorrect original-air-date - -#### 2.0.1.0010-beta -```diff -+ Set timestamp to -``` - -#### 2.0.0.0008-beta -##### Fixes -- Pull request #6 [Error in http/https detection] window.location.protocol return "https:", not "https://" - -#### 2.0.0.0007-beta -```diff -+ Buffer HLS: Add VOD tag from M3U8 -+ CLI: Add new arguments [-restore] -+ CLI: Add new arguments [-info] -``` -##### Fixes -- Missing images with caching for localhost URL - - -#### 2.0.0.0001-beta -```diff -+ Wizard: Add HTML input placeholder (M3U, XMLTV) -+ Wizard: Alert by empty value (M3U, XMLTV) -+ Image caching: Ignore invalid image URLs -``` \ No newline at end of file From ec30d382fc6bbbddb918bebcd21a487ef546db1f Mon Sep 17 00:00:00 2001 From: SCP002 Date: Sun, 8 May 2022 13:44:41 +0300 Subject: [PATCH 118/189] Create docker image. Update README.md. Closes #36 --- Dockerfile | 91 ++++++++++++++++ README.md | 84 +++++++++++++-- docker/Dockerfile-experimental | 145 ------------------------- docker/README.md | 191 --------------------------------- 4 files changed, 165 insertions(+), 346 deletions(-) create mode 100644 Dockerfile delete mode 100644 docker/Dockerfile-experimental delete mode 100644 docker/README.md diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..0a86094 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,91 @@ +# syntax=docker/dockerfile:1 + +# First stage. Building a binary +# ----------------------------------------------------------------------------- + +# Base image for builder is debian 11 with golang 1.18+ pre-installed +FROM golang:1.18.1-bullseye AS builder + +# Download the source code +RUN git clone https://github.com/SCP002/xTeVe.git /src +WORKDIR /src + +# Install dependencies +RUN go mod download + +# Compile +RUN go build xteve.go + +# Second stage. Creating an image +# ----------------------------------------------------------------------------- + +# Base image is a latest stable debian +FROM debian + +ARG BUILD_DATE +ARG VCS_REF +ARG XTEVE_PORT=34400 +ARG XTEVE_VERSION + +LABEL org.label-schema.build-date="{$BUILD_DATE}" \ + org.label-schema.name="xTeVe" \ + org.label-schema.description="Dockerized fork of xTeVe by SCP002" \ + org.label-schema.url="https://hub.docker.com/r/scp002/xteve/" \ + org.label-schema.vcs-ref="{$VCS_REF}" \ + org.label-schema.vcs-url="https://github.com/SCP002/xTeVe" \ + org.label-schema.vendor="SCP002" \ + org.label-schema.version="{$XTEVE_VERSION}" \ + org.label-schema.schema-version="1.0" + +ENV XTEVE_BIN=/home/xteve/bin +ENV XTEVE_CONF=/home/xteve/conf +ENV XTEVE_HOME=/home/xteve +ENV XTEVE_TEMP=/tmp/xteve +ENV XTEVE_UID=31337 +ENV XTEVE_USER=xteve + +# Create the user to run inside the container +RUN adduser --uid $XTEVE_UID $XTEVE_USER + +# Add binary to PATH +ENV PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:$XTEVE_BIN + +# Set working directory +WORKDIR $XTEVE_HOME + +# Update package lists +RUN apt-get update + +# Install CA certificates +RUN apt-get install --yes ca-certificates + +# Add VLC and FFMPEG support +RUN apt-get install --yes vlc-bin ffmpeg + +# Copy built binary from builder image +COPY --from=builder [ "/src/xteve", "${XTEVE_BIN}/" ] + +# Set binary permissions +RUN chmod +rx $XTEVE_BIN/xteve + +# Create XML cache directory +RUN mkdir $XTEVE_HOME/cache + +# Create working directories for xTeVe +RUN mkdir $XTEVE_CONF +RUN chmod a+rwX $XTEVE_CONF +RUN mkdir $XTEVE_TEMP +RUN chmod a+rwX $XTEVE_TEMP + +# Configure container volume mappings +VOLUME $XTEVE_CONF +VOLUME $XTEVE_TEMP + +# Ensure the container user has ownership of home dir +RUN chown -R $XTEVE_USER $XTEVE_HOME + +# Switch users to the xTeVe container user +USER $XTEVE_USER + +# Run the xTeVe executable +ENTRYPOINT ${XTEVE_BIN}/xteve -port=${XTEVE_PORT} -config=${XTEVE_CONF} diff --git a/README.md b/README.md index 078ea1b..d7ff3c8 100644 --- a/README.md +++ b/README.md @@ -71,6 +71,73 @@ If the certificate is signed by a certificate authority (CA), it should be the c --- +## Docker + +### Get an image + +Pull from dockerhub: + +```sh +docker pull scp002/xteve:latest +``` + +**OR** build your own image based on Dockerfile from this repository: + +```sh +git clone https://github.com/SCP002/xTeVe.git +cd xTeVe +docker build --tag scp002/xteve . +``` + +### Create a container + +```sh +docker create \ + --tty \ + --publish 34400:34400 \ + --name xteve \ + scp002/xteve +``` + +With the specific timezone, ip and port: + +```sh +docker create \ + --tty \ + --env TZ=Europe/Amsterdam \ + --env XTEVE_PORT=12345 \ + --publish 192.168.88.218:12345:12345 \ + --name xteve \ + scp002/xteve +``` + +### Start a container + +```sh +docker start xteve +``` + +### Attach to a started container + +```sh +docker attach xteve +``` + +To detach from a container, press `Ctrl + C`. + +### Access web UI + +Open `http(s)://:/web/` in browser, for example: +`http://192.168.88.218:34400/web/` + +### Stop a running container + +```sh +docker stop xteve +``` + +--- + ### xTeVe Beta branch New features and bug fixes are only available in beta branch. Only after successful testing are they are merged into the master branch. @@ -186,20 +253,17 @@ gox -output="./xteve-build/{{.Dir}}_{{.OS}}_{{.Arch}}" ./ --- -## Fork without pull request :mega: +## Forks When creating a fork, the xTeVe GitHub account must be changed from the source code or the update function disabled. -Future updates of the xteve-project would update your fork. :wink: xteve.go - Line: 29 ```go -var GitHub = GitHubStruct{Branch: "master", User: "xteve-project", Repo: "xTeVe-Downloads", Update: true} - -/* - Branch: GitHub Branch - User: GitHub Username - Repo: GitHub Repository - Update: Automatic updates from the GitHub repository [true|false] -*/ +var GitHub = GitHubStruct{Branch: "master", User: "SCP002", Repo: "xTeVe", Update: true} + +// Branch: GitHub Branch +// User: GitHub Username +// Repo: GitHub Repository +// Update: Automatic updates from the GitHub repository [true|false] ``` diff --git a/docker/Dockerfile-experimental b/docker/Dockerfile-experimental deleted file mode 100644 index b003447..0000000 --- a/docker/Dockerfile-experimental +++ /dev/null @@ -1,145 +0,0 @@ -# ----------------------------------------------------------------------------- -# winguru/xteve-experimental -# -# Builds a docker image for building an xTeVe server -# (https://xteve.de/) -# -# ----------------------------------------------------------------------------- -# First-stage build for xteve builder image -# ----------------------------------------------------------------------------- - -# Base image for builder is the latest Alpine release, version 3 -FROM alpine:3 as builder - -# Update base system and add dependencies for Go development environment -RUN apk update && apk upgrade && apk add --no-cache ca-certificates -RUN apk add --no-cache git make musl-dev go - -# Configure Go -ENV GOROOT /usr/lib/go -ENV GOPATH /go -ENV PATH /go/bin:${PATH} -RUN mkdir -p ${GOPATH}/src ${GOPATH}/bin - -# Checkout experimental xTeVe branch and compile -RUN git clone -b experimental https://github.com/winguru/xTeVe.git /src -WORKDIR /src -RUN go build xteve - -# ----------------------------------------------------------------------------- -# Second-stage build for xteve image -# ----------------------------------------------------------------------------- - -FROM alpine:latest -RUN apk update && apk upgrade && apk add --no-cache ca-certificates - -# Most of the docker build options are taken from https://github.com/dnsforge-repo/xteve -ARG BUILD_DATE -ARG VCS_REF -ARG XTEVE_VERSION - -LABEL org.label-schema.build-date="{$BUILD_DATE}" \ - org.label-schema.name="xTeVe Docker Edition" \ - org.label-schema.description="Experimental Dockerized xTeVe v2.1.x" \ - org.label-schema.url="https://hub.docker.com/r/winguru/xteve-experimental/" \ - org.label-schema.vcs-ref="{$VCS_REF}" \ - org.label-schema.vcs-url="https://github.com/winguru/xteve" \ - org.label-schema.vendor="WinGuru" \ - org.label-schema.version="{$XTEVE_VERSION}" \ - org.label-schema.schema-version="1.0" \ - MAINTAINER="github@geoffthornton.me" \ - DISCORD_URL="https://discord.gg/mqHtSBSSNC" - -ENV XTEVE_USER=xteve -ENV XTEVE_UID=31337 -ENV XTEVE_GID=31337 -ENV XTEVE_HOME=/home/xteve -ENV XTEVE_TEMP=/tmp/xteve -ENV XTEVE_BIN=/home/xteve/bin -ENV XTEVE_CACHE=/home/xteve/cache -ENV XTEVE_CONF=/home/xteve/conf -ENV XTEVE_PORT=34400 -ENV XTEVE_LOG=/var/log/xteve.log -ENV XTEVE_BRANCH=experimental -ENV XTEVE_DEBUG=0 -ENV XTEVE_API=1 -ENV XTEVE_URL="https://github.com/winguru/xTeVe-Downloads/blob/experimental/xteve_linux_amd64.tar.gz?raw=true" -ENV XTEVE_VERSION=1.0.9 -#ENV GUIDE2GO_HOME=/home/xteve/guide2go -#ENV GUIDE2GO_CONF=/home/xteve/guide2go/conf - -# Create the user to run inside the container -RUN adduser -g "$XTEVE_USER" -u $XTEVE_UID -D $XTEVE_USER - -#ENV PERL_MM_USE_DEFAULT=1 -ENV PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:$XTEVE_BIN - -# Set working directory -WORKDIR $XTEVE_HOME - -# Add Bash shell & dependancies -#RUN apk add --no-cache bash busybox-suid curl su-exec - -# Timezone (TZ): Add the tzdata package and configure for EST timezone. -# This will override the default container time in UTC. -RUN apk update && apk add --no-cache tzdata -ENV TZ=America/New_York -RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone - -# Add VideoLAN & ffmpeg support -RUN apk add --no-cache vlc ffmpeg - -# Install Perl Dependancies -#RUN apk add --no-cache \ -#perl-dev \ -#build-base \ -#perl-html-parser \ -#perl-http-cookies \ -#perl-json \ -#perl-lwp-protocol-https \ -#perl-lwp-useragent-determined \ -#perl-digest-sha1 - -# Pull the required binaries for xTeVe, Guide2go and Zap2XML from the repos. -COPY --from=builder [ "/src/xteve", "${XTEVE_BIN}/" ] -#ADD /bin/xteve_starter.pl $XTEVE_BIN/xteve_starter.pl -#RUN wget $XTEVE_URL -O xteve_linux_amd64.tar.gz \ -#&& tar zxfvp xteve_linux_amd64.tar.gz -C $XTEVE_BIN && rm -f $XTEVE_HOME/xteve_linux_amd64.tar.gz -#ADD /bin/guide2go $XTEVE_BIN/guide2go -#ADD /bin/guide2conf $XTEVE_BIN/guide2conf -#ADD /bin/zap2xml.pl $XTEVE_BIN/zap2xml.pl - -# Create XML cache directory -#RUN mkdir $XTEVE_HOME/cache && mkdir $XTEVE_HOME/cache/guide2go -RUN mkdir $XTEVE_HOME/cache - -# Set binary executable permissions. -#RUN chmod +x $XTEVE_BIN/xteve_starter.pl -RUN chmod +rx $XTEVE_BIN/xteve -#RUN chmod +rx $XTEVE_BIN/guide2go -#RUN chmod +rx $XTEVE_BIN/guide2conf -#RUN chmod +rx $XTEVE_BIN/zap2xml.pl - -# Create working directories for xTeVe -RUN mkdir $XTEVE_CONF -RUN chmod a+rwX $XTEVE_CONF -RUN mkdir $XTEVE_TEMP -RUN chmod a+rwX $XTEVE_TEMP - -# Configure container volume mappings -VOLUME $XTEVE_CONF -VOLUME $XTEVE_TEMP -#VOLUME $GUIDE2GO_CONF - -# Ensure the container user has ownership of home dir -RUN chown -R $XTEVE_USER $XTEVE_HOME - -# Set default container port -EXPOSE $XTEVE_PORT - -# Switch users to the xTeVe container user -USER $XTEVE_USER - -# Run the xTeVe init script / executable -#ENTRYPOINT $XTEVE_BIN/xteve_starter.pl -ENTRYPOINT ${XTEVE_BIN}/xteve -config ${XTEVE_CONF} \ No newline at end of file diff --git a/docker/README.md b/docker/README.md deleted file mode 100644 index 73b01a6..0000000 --- a/docker/README.md +++ /dev/null @@ -1,191 +0,0 @@ -Docker Cloud Automated build  -Docker Cloud Build Status - -

xTeVe Docker Experimental Edition

- - -Image Maintainer: winguru -
- - - - - - - - - - -
For issues, questions, comments, or suggestions regarding this experminal xTeVe build, click below to join my Discord server:For general xTeVe docker questions or issues, click below to join the official xTeVe docker Discord server.
DiscordDiscord
-Many thanks to all the contributors to xTeVe, including LeeD <hostmaster@dnsforge.com>, whom most of this docker build is based on. - -
-
- -

Description

- -xTeVe is a M3U proxy server for Plex, Emby and any client and provider which supports the .TS and .M3U8 (HLS) streaming formats. - -

xTeVe emulates a SiliconDust HDHomeRun OTA tuner, which allows it to expose IPTV style channels to software, which would not normally support it. This Docker image includes the following packages and features: - -
- -
- -

    -
  • xTeVe v2.1 (Linux) x86 64 bit
  • -
  • VLC & ffmpeg Support
  • -
  • Automated XMLTV Guide Lineups
  • -
  • Runs as an unprivileged user
  • -
- -
- -

Experimental Features

-
    -
  • Per-channel support for "Tvg-shift" field in M3U files (timezone shifting)
  • -
  • Per-filter support for setting the starting channel for automatic channel number mapping/li> -
  • Per-filter support for optionally preserving the M3U channel number mappings/li> -
  • Per-filter support for automatic xTeVe dummy EPG data for channels with no matching EPG source
  • -
- -

Bugfixes

-
    -
  • Ensured HDHomeRunner lineup.json file is always sorted by channel number
  • -
-
- -

Docker 'run' Configuration & container mappings

- -The recommended default container settings are listed in the docker run command listed below: - - -

docker run -it -d --name=xteve --network=host --restart=always -v $PATH/xteve:/home/xteve/conf winguru/xteve-experimental:latest

- - -
- -
- -

Isolated (bridge) mode

-

To isolate the container in bridge mode use 'docker run' as follows. **Only use bridge mode if you fully understand its use** Generally for most users, it is easier to use host mode. - -
- -In bridge mode the docker container will assign it's own dockernet ip address (usually in the 172.17.x network).

- -

docker run -it -d --name=xteve -p 34400:34400 --restart=always -v $PATH/xteve:/home/xteve/conf winguru/xteve-experimental:latest

- -
- -
- -

Default container paths

- -This container is configured with the following default environmental variables, for reference, here are the paths of the xTeVe installation: - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
VariablePath
  
$XTEVE_HOME/home/xteve
$XTEVE_BIN/home/xteve/bin
$XTEVE_CONF/home/xteve/conf
$XTEVE_CONF/data/home/xteve/conf/data
$XTEVE_CONF/backup/home/xteve/conf/backup
- -
- -

Parameters

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
ParameterDescription
  
--nameName of container image
--networkSet network type [ host | bridge ]
--restartEnable auto restart for this container
-e TZ=Europe/LondonSet custom Locale
-p 34400Default container port mapping [ 127.0.0.1:34400:34400 ]
-e XTEVE_PORT=8080Set custom xTeVe Port
-e XTEVE_BRANCH=betaSet xTeVe git branch [ master|beta ] Default: master -
-e XTEVE_DEBUG=1Set xTeVe debug level [ 0-3 ] Default: 0=OFF
-e XTEVE_API=0Enable/Disable API [ beta ] Default: 1=ON
-vSet volume mapping [ -v ~xteve:/home/xteve/conf ]
winguru/xteve-experimental:latestLatest Docker image
- -
-
- From 70f4c972954c562334fff5ee019d627441ad4f38 Mon Sep 17 00:00:00 2001 From: SCP002 Date: Sun, 8 May 2022 14:54:48 +0300 Subject: [PATCH 119/189] Reduce README.md headings size in docker part --- README.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index d7ff3c8..bb915b8 100644 --- a/README.md +++ b/README.md @@ -117,7 +117,7 @@ docker create \ docker start xteve ``` -### Attach to a started container +#### Attach to a started container ```sh docker attach xteve @@ -125,12 +125,12 @@ docker attach xteve To detach from a container, press `Ctrl + C`. -### Access web UI +#### Access web UI Open `http(s)://:/web/` in browser, for example: `http://192.168.88.218:34400/web/` -### Stop a running container +#### Stop a running container ```sh docker stop xteve From 3a831dcb464c66dee452badc832a3228914d3f38 Mon Sep 17 00:00:00 2001 From: Senex Crenshaw Date: Wed, 17 Aug 2022 14:49:56 +0000 Subject: [PATCH 120/189] Buffer to ram fix Depreciated functions fixed Lots of linter fixes --- .gitignore | 1 + .vscode/launch.json | 11 +-- .vscode/tasks.json | 14 +++- __debug_bin | Bin 0 -> 12898709 bytes go.mod | 13 ++-- go.sum | 14 ++++ src/authentication.go | 20 +++--- src/buffer.go | 83 +++++++++++------------ src/config.go | 12 ++-- src/data.go | 39 ++++++----- src/hdhr.go | 2 +- src/html-build.go | 10 +-- src/info.go | 63 ++++++++---------- src/m3u.go | 11 +-- src/maintenance.go | 3 +- src/provider.go | 6 +- src/screen.go | 144 +++++++++++++++++++--------------------- src/ssdp.go | 94 +++++++++++++------------- src/struct-system.go | 140 +++++++++++++++++++------------------- src/struct-webserver.go | 40 +++++------ src/system.go | 9 +-- src/toolchain.go | 13 +++- src/update.go | 14 ++-- src/webserver.go | 65 +++++++++--------- src/xepg.go | 53 +++++++-------- 25 files changed, 442 insertions(+), 432 deletions(-) create mode 100755 __debug_bin diff --git a/.gitignore b/.gitignore index 3a56cf5..aa37409 100644 --- a/.gitignore +++ b/.gitignore @@ -2,3 +2,4 @@ xteve xteve.exe /.idea/* +~/.xteve/backup/ \ No newline at end of file diff --git a/.vscode/launch.json b/.vscode/launch.json index a91453b..d5177f9 100644 --- a/.vscode/launch.json +++ b/.vscode/launch.json @@ -1,14 +1,17 @@ { + // Use IntelliSense to learn about possible attributes. + // Hover to view descriptions of existing attributes. + // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387 "version": "0.2.0", "configurations": [ { - "preLaunchTask": "tsc build", - "name": "Launch Package", + "name": "Launch", "type": "go", "request": "launch", "mode": "auto", - "program": "${fileDirname}", - "args": ["-dev"] + "program": "${workspaceRoot}", + "env": {}, + "args": [] } ] } \ No newline at end of file diff --git a/.vscode/tasks.json b/.vscode/tasks.json index 34128c9..3e2815f 100644 --- a/.vscode/tasks.json +++ b/.vscode/tasks.json @@ -7,8 +7,20 @@ "problemMatcher": [ "$tsc" ], - "group": "build", + "group": { + "kind": "build", + "isDefault": true + }, "label": "tsc build" + }, + { + "label": "Build Go", + "type": "shell", + "command": "go build xteve.go", + "group": { + "kind": "build", + "isDefault": true + } } ] } \ No newline at end of file diff --git a/__debug_bin b/__debug_bin new file mode 100755 index 0000000000000000000000000000000000000000..1d2fb3167aea979c68b62f5477dda55880c81e60 GIT binary patch literal 12898709 zcmeEvd3;l4)_)2F!+HaP6hR11&@!U7irT8x6kEB)Fct;vfJ;?GRMZLy6ah_13ym>a zXB@|E-l>k`GMnfqvbeN>w5X#6Mg(!e{fS|;>b$IKf8XzU?oE@l;LNT#;@1W%h40h zJtR%%`;g8*`+pZbsu!~A+1D9X zJ^RYC{9}Em+}S@q>qcL9MlY9V`)bq4dIF0XZxC3kGyd#zh9SM zzCG=_bF`+ctjwj;ExwRltk?LguGjdiu4i9879;GdRoihG>ey}70K5LR%iGtCNi;RXIlkr`fWV+wGQ>!5AA2q1scES0*(K>jQTeHwr<#Z>$@!@lgU3@ zepRSLm`OC3>iUjLb^T|LA=HjPPsgp?Ex~VU{l>7a-x${QbNZ)O@T5OF?#QUG?$-6y z-MW58alw_Ec5g;~$1ik!$1imKm4}Z=E$;B7JvkiXt@=qBChekS?`%O^_3ZvAC_y`?qpH9@uWXG%J3}pGvsU+ zI~f1${FiaV_9y?`AL-kjn*L+cGBe7esb!h^-}s-Jc8yj4 z8ms=WzxC^=oKcn;{W9<`xqqLOUvlkpa((}bbor;^Vu5Qi>Q@}l7Q5oLl~RAx$8t&j zWY!N^^=&TM@tz$A+VP$ZAhZ5O$Y39`>)Uak9S_d1D_Yk~HG4RvZfeo|r&h_Mxl`Bp z37(38+}20iem{xybPj1Kp}Ss^o5AA`tv|Z-|Nj0j2mY4>|H}bA7Pt_Mpw*dh6XK)b zO;ax~xcQ1JkDqedH8&UgFFNo18&Ay5n{m>FvcPE>dve%4!ZAM--BPDHSWa?fsTC(@j zb%)AsOUVxJ$~7a4x1rKD0#Lti>gmAEUNsxzv1So8^4iR(nXRv7ZhftE=_^V%tMgGf zQlivpxJGfeOI=Dh$Cd0gvsk&LEjm?2$~@7MT^l<{3-9s(w?eieN?h?@;2D5ZpH?!J zN~PKxg-SwJz}Kw4oPW6{`%~r|2b@^|O2AQYBvR%&IJ7qPw1!3keypK0frrhzRijC1 z-YzsR9m&BOcY&t0%?vMYa|DmHn_b%&?Ef;orpmJm2t%eqs_FFqk0l;i{GAyI0`62W ze$q~Vq-0yP{@*GNAq7Kcxo)~dcUCw9SwB7)9$vG6Z zqy7zS=rk6u|Be{~;``vme;41MSwnY1^npXSt^?nv-)np~{oD8o{|$ULHw!FmS^p+B zrQUo&S||3xjF!0|JE%AsypIcAJB=}m+h&;29;0&vY^{kpd5vb&IqBj19n#{a)f{KML_=f7oagtw1=yR_ zSs=Q(HW#HCH#gUg!(FZvDRG;T+I&2kvDz|TBDFqVqR#yd8f5HOtY=1Jx(#m--VbxY zgsAgvt4L(S%N*CMJxEsFfGg>qZ2uDpwx-ZsvX?|pYK1Ac*V^+^0D(Tk1InOJP)xIp48z z=2#HZ*j$DNw7`or!U?T}6I!0Z_U4jpWKiN}sKIiuV0tIw!a|4>Zp^y2(Kp_3nD?28SHS+AFENWi`=D~T zWLs8v@wUTnjjZHcVWt?WDl^33Lo2qS6|HCmD4W!n(F)LpEa%Q|8XPa@1E9L-CMqk` zLVW*d)f3NRHNKY&s?>QGNSBm$s4WNBvrrxc-U94qjJ}!AV!7r^lIV~!$F!QUdd_#F z0Elwi^{!+g3&t@-6La1Mf@lq(tViOpQXXLyr#7M>8baXhn>uxtD%4JqV)ZUg3cz^P z!R=(WJXYI=RMP#8;QSS>m}#eOc$xD6>T}7eU2c`UPnUdxk1;D%+Ibfi!$ps;N88 zXup@*C=kk3%;z@Dl!yX!f~%lyJ0nxyjZE5B94YyGab!|!F_bL2`0v0Mo%$}i3E-8e zNs*=^9e@2&nt~n~Uc9$G*hl?xHdW5NFVO?#_NF25K%E7FrV4tc)vN*_A|>C27k}qi z;8f#5c2_opMkCw^k>DS0qYfHta8X)xJU|?*5~u;ohh>zg-c_l!OUwE>E!kh)2T66- zwML|_z7Ob<-T7TIH&#nenx3(a8Q~WR&SBKNOcJA7ZK6I`cxMlGio=shAgz|b69YOW z0XlP}&7glF;WpQ$Hq?~qkxk|n72cUe6r+&MG?=8w+7wWl<7WwxQXmV& zvf$bC{?Y-_H5%i4pF$fVwa=1} z7x~*B?5l3Rjv5kwhpe$+8#Np71ib=-Ks=1Da8~?oEwRJiBnEYriZsb@_GObTsT`V) zJhsecfkZvfAkBj5pe(#MD|oyOAzB7LN(G5tB2DI&&&)`h*$ckkq5&ns8BBYSq25)k z9YtJGX)aVe&BZ>1MyGX#icAlMVbT-+$fSl$?Q1S+m6k zfauiaG^z0M^kkD7QK-cqEosobqo}>LlU3=PNsot}^JOwoxvzz)F<3{Jb_9=77$z7e@%zo{NSe7c zW(aa*qat8%#Qi$x6EA8RmO<+DSz=hoYg&#nSE8@3(bWjNGr(vkfbnboM*t^w0(jql z3{dPEcn(#wd0^Sbf0C<=CX#$O>3@hN6-i_(Sp9G(6mQP_PdO8Agp?f}D0IWnmy+#@ zyaAMFbwYW`|7(;xpg!r0j9>kqw-P#?(n{Quk#(I=Ed7sBNGF)k3E(L|3h=_IMN^8V z7F|?yu^BmFM&54U+Paz`J7`Gv>MAEV3Am5)=Xn$G42Y!F_tW1(wMboJ7zE6Hut<^Htj## z9JN(om|0uR@ZKJamR6sBRb}u5qxKefCo{6hTV_TA-YVkGF(d0%6_VUYtGZrOVBEo- z1|3)jFd1-+CHt}b1N@l!+GFl{-)#Ef?C@tj{Gf7HX>53|KW1k63tlyrw6GY^m~3JN zsPo4zz$ko**E1=yrF73brJ!-rs7>d`2DzA8Zie@F5B_9=@qAwwT2=#U91dfoV`fqH zzMF0|Y8Q|^6iFO|-yXpmP|)kr`QP0%GkEC)V};+Qpg-%USoayRx z`ls$_v-8cY>m6$_GH|HT&mjSAE~hql)De7)ImbMNd=K-TR(=KZO||=3$-nf^*E!Zm z#QrG~gg!N$pre#T6f%jwi!fU?|51t`{d<5LMQ|%vpDfl&`nU$yKMC$$B&Y%DkbVJ3 zaA|*SMq{G=9_0lgM=uJzEN?TT3`;kw*HdNJnc*gnvEt`L&FIb0z5;)=$Q4?U?Fd|7 zvmfxk*y78N6Z2=l){ zg1VZu(4aCi3LsQ7U!q&x2(x`Hb^I=lFXGejQyMGEG7H*_7*{9#QRjObq&4s3V(Wj4 z5#EE$QW)Q+ozBvz-{G1R?SYQ5FWAJ!=KDcsu0PVKmXCBeY8r#Xj1?khswEijBjZg! z=*UgfgHuZc#o)PeDfZ@?1;B78FtBj`hT@a5F&gQ2i7qvXmx7kLvx|)t#om#{b;T!v zfwnZEpYcB5L7=;z6ej%lGB9BTnegc|y8WPlOxnuFn6vPYwtl>V1g#%u{DCEHi18ON zl2sG_($k^F;|KQZ3|#7_95%Ex<|C&Tp911ueuZ2rT+R!KJEJtxNZxEHK1^tD(Ajt6 zQeRroGN&D;>vMIdZ#I^!D=7TM@K3;a%(?h#W=Sw|Bc{RFh=Xl=0+$%d(xUG zt0iw}-;JetG`-2o~hTEXNt;Fs1a$84>kEhG@ z({lYZSwFSvr(*rorl0cllbe<|*6%p|l&hac=%+IMG(bPe&@R@`sh{d~-rhJVty`|2 zlzwW(Q~XFts$v^nL9#K@=TOt1K&xX_Y|L_`sq^$RTl5H@&(P0o)-U;doIJ0z+E&e^ zY@K8^@FpfXb&}P}OPTb|<3zO5YU+7N68t-KvRhMoDoeKLq+FfkWzusxsZ1vgWYQx# zsZu97m~@v;s@F+hsRqb@p-x+_)80jznx&Ikby72vrZTD7xn%8c90q04?7Ypo4HuSw z)ZlOgVK|+aBMs4btneb-s8NrxP7g22JJdg6)=P|w+h_Qr<3{g=&Qjme|1tD3mee5= z-ND1Th>#iS;Z?76RXpNc@g776kf6+=9`2%y8(_TL1L;s#BD>D%0`)-U)o$fylJ@oI zRvLGSsM96w!(iI>67J0+d%1x| zjqil9*xMHdLuZmJu4aq+6rqHr z5W{tl8XJ$OWeN@dH1{f5C22w#wmTcF^Q4CIv#QZ?NjROaJH7zDHLcC558A)H4wiyO zV4n>-KqH7jWI>92c^m0Ip<-riVip{y8Tr->?=y^;9tgZ@Hht)XdvyWZnM3{29$5%A z`nXC9z7Af-FbeGk!=xUDF<+}b(z3vKf&?dYd~$@F0e1eRsNe1O7rYtt8Y>nZkzE2^ zbY~amzZo3F=b;E}r?`ju^4~UUu1A}=_Crd;>vKhMgcdc!yTWw)kI=XDN9b$w9J)Z8>(Kc>#-AU{ z|B>du{$u%=ONnf2GoJ2k+|$$*pMNZWS$1SwSA4Z)+&1da?QiRK=zNF|(mROofaL$R ze*7r>|EYfdh=4fP1p%1{lMwVD`3IN4kLkbIPcLkfo3_bC+vKWosNZ8gc&2IGC?>!K z6X4bcP|aRsb@#+8B4VlkQ`83;_WZ~<#sHYx8V3N}x=!7~X=xaelo=5z;MV?Qm<{k7 z!wnCR_=~MM`g-t|{cHIcZxm@H#xj1!%aSKD&T$2qzCc9p}j6%DO=S6gZkZX2(Z|j ztrk3t$A1zl9??`2<5!Ic@f}=MuSGAZsjRXbRn%*|JC~(n&M%$;jS?)KLK>F~44X#N zlnDS#1!1g!i2>?Qn;uCy85v_FmAA1zaaNMLN_ri)`r-kAa$3~6)s6-{UL=q^QCCc_ zyU$qkf_jdX+@$X~()So1LEqVr+dTZ$@0g!PUtJ@ecH|B(M;wMb)WXYv8t-2HxXpTG zjD=ifJ!b1iDTKl~ctp@yNYcULJJ!qa1wf@d$4|pZ*{PQFn5rU=Af<*B3cuSMF>lsu z(TnQq`;qQPNp+26T6$5vp6X(C&%ae!-823>Oy8i3NdNqKdjAAZT=VnH+Kqv+W^8i1 zS-UCtlNxa9K(D#|p~>4)d+WAUy-3sG{{q~Y^DkFiiOW%keYF7Nrv=?pN9huVs7W?{ z35_^8lYQv;D4jA;5!r4w9XQ);0?%TDhGHhNJEr5h%{|pvF&rjptJ(BXcXP}p5Wi>y z+Tj_xSvKo!`Fzydy$;k3&+VXHHO&AEBdx2@r_eusgE@tC(;`p*D*kbTzXSP5ja*iE zwtO~ftFPvL1iC5M&q>9;^`Wk@Tk<&?RCuWWI(}W%8v<41`$7F+H#>!&@p+bvg~y2( zyJ%HMl0<5G8!)QQzfhP--O+8%WV}lOkmeqpSZu@j4Q&$12BQYfMhVfL3 zxn~`pjFPX-O$Usp8d0ux$8DcPS|hKe8@c~4@XgqH?N$rgyJ$h}#>M|}3v_($q1_Gd zDyIx!jrbFJ)*Au`{4l$9xH43q#l}`>tHr5I+4K9YKhmV`6(2W6PYBL3qc2F^yp1L3 z`$PP((yWqeTP?;9?>!;b<8Xguqgn9gt$i>)d1Lpea()BT zkj9ehkX?-Ye5f;L|1seRc7{ghNX1uT$;~4i>U|fQp5a4{TCZ!lzsJ$;S zP)GG;aOvgi{E-hzFf~{3gK_6ufKzg9i$&z1(@U~8l}7fPW8P%$()W=Ir5S#DvGLT7 zk}=yS#inHy7qkRl@<(TQD<>7aYb;rgBL3J-S(6IhGnU=Q^6)BW`Z>b!gR5rgnEj<= zzMB-g#M?e8@^0y#9i`~zlSU;b#(Es-k8H8p^oHFgf8;|QA1v%HZ5yN8c850v(CKX~ zhLt(fk0$%#$I;EAq{)t>+h|Pzb|m;C${*RTx<9~q$?g8gM{4E$=uonoR~;|6aP|At zBXZlqG1U;<){Caggrt}{PG+Oe2D~|((au#D&Q0x=V)@u655qM>dMns0UO8Gs1+AMovKv;8*0eTbg!$s-_iaO``~J z?QIt9pZ`JpYOQF)0W(|pOKtPXA`s^@sAOnV3oQ!}f6etRm+*fST7Z$VjTQMaxU8UJ zp~jxX5n8dZRJPs+#oB6&q@M@;mp1K#=4>y`+Q|BQ0zL9} zCnk_|FIR#f4`@H9oUKNvy$C@vNe6dHy4MdLLOiGu*}x|HYIYkng-|1ZMEsy`Pl^)R z4cz9BY~uXZnqO0S+Bm=6b}w(gRymTi7fImX4kUJ|J8IO;U29BSrRYhAeI1OMZI?eb zKFgQ?L#a{RYPL5q{(||&_KVhaXc5HlZJ02Z`de7P?O^pK zen6X3{S#s4P(gj<|NG#7W1uqwxdPqccH>F zw=_5$fqs~BE#BDRI2(!rVw#<&;Q{M4j)OJK0)ueYZ9<NouBO2d0y#*!7($nf5?=M4-MuG)+ZpGM8YC>HO7AEdkIP5;)osVDv$ zGmSvYOylh)^Av7L3SzLd0b`+NcWGF;6Mx53E}n7|199iUohO0umM&o$FKjdO8gK7A z;`F{FjbAr{z!LDHT}YVMM|O`GSfL3T6QjjF_fCxZ58I2!K+rT=Ok<;&*M#B6Mr?L6 zx!cLEJTcby6%g+*_iPWGhh@yY^D)14YQi-!8tA##-0~&%^Y}vTl6p2%7Xj#&ugoo< zo5mZa@ur!#Col+b-(=D7XM`IRqClyc2e-Dx_-!L*6U52(P?I=`1-nnl4 zobOI&kx_d9{*<{M=6W)7w^+Hk%+1Zr{Ud#Gc!LkD^nu0rzt?9hy%wqQn}GC{A8tAV z|3~8gOb>o;^1SkCVC^g4zugG&VBghGUU@6$%p| zg=@NM%99!S1{)aT&!u$fv{KyN2tONnGtTwav@Cg$LHJCgqEY{^Y=oaU;9hiNY4duK zAr{fY2Rz2I778?0JfbZz1YEIoZqv8M%FU%&P_kyXS3Bmi)Ju za%c*L-Lk)Q%SWh)wR2I{P5x1vt-6yUnEb5W5y&%R=elP;*=7VztYbasIqH2>8vY^+ z75isajJVg8Hj_jQO%96AKccORdZEHuZ?Z$x(wz$f{IN?$>|FoR;;I%%Y{)DB2yBOh zwsbVk<1hH&)=%&gI2|!fY8i+KZ5{~{JRk)vE?P}7>jtMc5=Gh8bQy#SKYjzW1f22B zV%Y-Ltnck`d;S>gV0>EFg15kg3V&zS|0c73HtT!hM;@|1qzhy7Eol!Q@EJ><$6ct< z6qvJg(xXU%1jN?hdJ((S<@}k+?sF4==CP~X#;($Y|6B0?Q~cjE)7Y^V|3Ab3^{`N_ zwyvAugs&P?`mn1Hp;u#R|A22!A=ugz{|)@Vh&|_W&nw>tK1A>N;+3~{u*+bhi0*cF z{r2|2dI|s_L=FdB^M;vGY?>H?lCW~k_z!DWuqp7dpo#iN>_t#B5=Ly3agX421WvM;(8J+C|GxA!T^IIaJ zuJWVPT=5#KfNYtWFT;cVZX_s*C;h#PUw>So#;Y4(S81D!5m~4Sc^_m+T5Lp*nbigp~C5}ieX#; zUjZKUHNta2M`^6mJ#){7Hp8f?K!(N5z>u#?wc#xtgI<676-Hlw!Nz&n{wxd#_RRSQ zlYZ9DwD}L1v0K~CtT+8*-Y$)tk!ArohH-JAAuC884z6-AFoZ$&=Epz4NF?1{c6v&$ zk1+#Go>f05{@Wj~e-QsSg}cYZ@x>@8aeRXz*rek#Uf3KQ4Mx)K%|U?MjLf8SW2Ot< zNjOVuk%e~Wi9llK9}&GK5UQ~S(1p(Zz<{g{5iv}Le6SAL;gMP_ z+eKldj5eT#p&0NP+k{$~9`$j()MQ>6^Mr62-(=3e!QMF3(P0iuW_O-{yY{No z5zCLvzjX;8X4j$CV&S|?_`Uwe@EP2xD-Q<$$t(X2`ZMGgUJGUGt$L=xPL+4&y|jN! z29zj-i6#0-E5^qQZ-JD$Vsp22GFN0m*3X1*Ed3Q4oQ~sL!|gCG-e{cA6zsNeig7|C zE(M%Q$yKFeoenIsLv?b^ycToSsK+k4?%^AQ4taR_s=L-)|J4N!(|8J-v2E$E!UP-E z2V~vfPBT|_RNQ8+>bjx~zh%-$opePi+vDdzP0<8R|F1jIkJT{JKT|hgDy}IlSa#gM z-vUhIIMmN%vHm}8L1jf+3yRnRk#8Y*pG_;`rWJ9s(ViN6e+`Tcc@109)B_uZ%}9%y zAZck!f|^JD(=a3+vF67Q1%FKne5jPbfBazZ|8jY13vBqtQV!bDhJ3ammu-L%#O|wN zq}FaUY8YXg(NaXK*wAX!Ji4tv{626BSBB$blK_-HQ6NY zQ@I#+txi!Gyv|_n(9x9AM6jL~C9 zZ9L|Bhx%xUllwm(#MBzu7IWU5HN&A^zdUVK2mSN1RF=hG2WwM%qSoJThvr`c(I1j` zZ)N?9ynCIX4%U2O{2_RE*P$wB@J=25L1)I*j|StOJi_TvGom)zPIrK9zq%}qZK~wb zG_GyU;93UOl?_@R*PJVr^XTcEw%X--WFaGwb71 z_kHH4ssXHC{rt*Ig#(3W8Qb1OgxS_ge6Cu#}9A0kT#BL|PX)KV0UU z|J!tCz;vRO2w7!PSPh+)+E)lUJN~IXGT@HIL(SnDD_r?~^iaQ}Q>EM)&%0(89HKzf zb*NmuzvxgUxYwefPq3c^G}vp1iBE1(O>U)P9D@IS;Kz|=JlHrYeVY~iJpT8gqwlJK z1Q1;Sk+>M?z8?5FuZPrLOYmz)ZAu~sAEbU)NCW^fd@lT)hoKSicZMMT{nYf>O7E|P zRvb?Gp68MU07!I;y7NojeY0UfJTNP^pw%hmsWMJHnUs*g&s<+%e8_{1&T|3&;r9AM zD|SYzJ7{f^aajt6Ef=R@u-~uxcj1o}QQ+4AMmcs&tWsOVJ`!h zvrkJ0E0btJeYRgZG!7lI7u58O7h9IAy*GSW4nl2;$&_x@j_AS8m0r>DsOD{hf#T7B zd{e=4@~541J^lLu1NLbJrZcpCx?>;g)8`kbc`Mxwe{oSN1Em|nzQu>>I5jD-j2rF0 zp6#;zmz#K%+vdR)nLPMtAL9?0wf}2esC>IK7xKo#WAEt?9y}Aac~G|(JoxycE_iU~ z)J{BzA9+XyblE?&ZR1dvGsG(2LlX*nr+yYB{4TU>a2n#w{xL7T|Ah)mRyJU6c2uaa zRBp0Eg++2>sM(Z62Zoq)%`*-9oiaEb)jtQ0DctWdq~U$`gItrf#lA0`g8kj|4$1>* z|H{^yN~6TCcE+KXaJsBpLi)lp)ww$hcf;si}y`B<>Q?R%+KK0y%g}9XMx{dQd@ua>01HBk zy<**DU0bDRaS-b$TNKXjxymE^h}Jq3>CnXk0+!2AV-YlT9?k)$Y5xfa#&UAV|A@ z7p=F(mp6b5Adc2mkNw8GqZ6~E(}qXqc%rvpkHC1@w}q1>aWy6`*Fg z+H?>iWQ>T=$Tr@p4jf1<)#PaVxs1F_e?K5x*!Tz}5tt|pcXQUtgHjH>M^(oQ(UT6y z9dD45y?6wBqvv;G#cXgPj7|JW2CAi1 zjYQE|NoEPB)w9tIwxUcn$nnN&fl6eQE5BAZf$@778I%x|O5jNcz%C^M#9#n*nOnv? z^bv@zby5b7#Mmw<`RTzZ2`}<`j|d(qRUoTM+OaBi2CQzvsm58xw;W8bNU@kAzv&se zr{#yq)@dHCUC{gJz@+ADjy!UE2DRh}ae8o?1(aQMu6~_*0If>gcL@2S@hlDb=7b6_ zoN_g8{{r#+PBz$gk#%yHIHcKeLn8p*1d^Hu2K(9qvg_pu!9Wazfqde0?Xo*28-z@ANDt2uh|cE zWNWA&^8Ok{l2Qj^;mDI6vS3pX%R4Qq={nZrMl@=c`Xt1VA?OJ$DGgH4=x=;rp%b4rD3+$l|#5GJtAF1JfERaZ_YoJFspYp z5@h60-j%$@^c6k-1#bfqmA;0az&5aQ0$$6O^4i<85{i0)_H()k9Rq8 znUO{LhE{XOxFgs%I=I`T4Tz6wH_tnV?Vm;dY^au8xPU*u#marXn7=E{kggfEFk{dz zn8g-w8uJK%78d)XOW0_v8-netD{$+N-d@Jsf<1GwU6Yc*`_HFd31VO4{?@I{P?*?U zl%{|PkUJVH_|AOf%}j*nMfzgB(RxqXtle!amFRD_$79BM?Dr1qs}37aKyt7)dsg>*XH__U0Q7I1-a2v zj>T)e1<$xqF)%dJX8F&bP;IqHq!NfI!47OhR8`P|;cP8z5bmdVOGtPKX!(FHc8|9K z58;hHNE-f6U=&b}Bvj$q5%3)4>Yc-#KmccpS!9@s_Dw_}ubG|;{_bw-5jZOR;ejNC zs0M0AyS29pJ-eH_vBdYOCCIGQ5?O)1;SYZx1?rDkv>lfESFdkGNk(kg_W1P;*y*VL zcoy56o=<8)U~kVRc*XvDeN{6hU1pWzK!yf_oZi)G#z4hqZ z!qI##aJ(Wo{w4U>f|R<-8p?MBrm1cfU?dm=4B!n|P?IHZ4(BzhV+T^CNHV(@49Tj1*IN}`b&@hlwK0>hMpEyNRt6oo$=iDO)j3=Yue-l5^(9Y7~0 zK%8(f7{f_-&%@z{r!0E%dPmX9F(6GnBlNN9#Kb9eXWr)e#DLKLA;I$m77lbn!(otC zln!Alinz-$S`O*86h}7V{qonFfzSvD@H$?GXe8eUT6T?U>Yg9)jHVsH~En zT5cV^M0S+N&6L#yEx+|n%5Qy$@`EMe58hvBAO+zn7sT>c8cQA;^art;`n>^P-3wks zTTm~nY~&#^pMI<)&;lfv90nUpXQAcbgt3&}jY|VpV`U(CL4D0e9-(LY5FB7>08U2s zNy?d<(98?7|04B}hT_G_3NTcRnAc>Epzm0ZR z3l8HB^uUqEiaUhdnvF*705n7NC;q0C>ZpB0;1V<1hc7oxq((t~ThwV9LV>a39t{CY z7zmI6{T^{2{^-Qq((nQo#tIyKqE~QEn zb~U*UO++a3kQNJ^Gg(}(rh_4I?!E7T7TP~>{)FWE%>bj8`?P@gu)K}&-7KkDxj-uU zfGEkzFJ&^`ri%Oz?LXY8p)Zt$ps`Y=JH|Y^SLrsf`+Ejty+AogY8v*P?)$V+1C1XXct`aFswGH zdI258$wGDuQtxWK4T9z&4d~;WK&C9Ytoj7gd4tZO3GAqsQTn-L=_pHoHeNgBG>CU6 z%Ur`UYgs1J=8vpX^OHG~nDYd4Vov98tzN8#Ok`0%EtiC=W!l2PjzPY%sFtEA2UbF3ChOnqV>Oomw>w^AAa9)|1U7ozdK(Mu=JLxct z^-Bwi+_&8sze3g<(}kkrqhU$s50v zHVwlfB-#?OCDb9A7GayZMV2frFXJOe%Gk>Z$gX3c2UY_iJSY)0hkqJ^G&I+P z5DA=u1J2tW-=(XdC(05o#{Z`eCUa#51dE_}-xvpTVC9&nU9cm_aKglEEVoXhN`ird zS_rJdj6To`U}p50ZF14%Fwit<4jY37gu`MxCI5DnQcQWpLHO8|`h>v%6&)$L0&I6F zOHS(E>!}o6zn#4k3f3$!EIKKSST^(kV|AuL#W~09c-b?j9?;iLP4iFh2)R|a@5c%(abxWYaLe|pHh`GIFXzqw&$_c z0IXDi#?kM?tPes3&7T8T(IIebGx|4≧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 !MrCVDB<>fe?l?D_gkwj&N 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�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

?(-T3YMeRPC{6Zl`l zqZ`Tj5RwK7NEr7=(*^@``gV*vJZ|vc{BGb^#F{}ImK#JhgJAw8E6{%w?&OdYoNj#i zTRt2jL~dC=V&ZB2NxNyETy)kH=OQSI^I`raLZNS?HH&}?tQ2;)GLfEI;d6}ze*PyaOF2#R zr@|-}?u+luZ6r{=Aa_KwdhI=vcE{QGd#)_+-%wF$$(0%=NjuKh$}bbLBT2mh8%{|* zBPf&Oc@)Prm`}REw}bLQYrT`dN(ew9)1&4!)gC!#?e&UJmiLmv6PKhhwQ!`Rjvh&X zjqK6W>^vCy$W;9N*B>m44qYsP_KzQc;0}1?k#9JUj7Y5k2F3$iYbLDC<$pNx*6~L0 zc4#~c9k#<3`oZ{JXQSQ2E6oq`&rRX;zz4xMmhiZ*Q(0Sz)RL0#oQkf!+Z{oS+P&el z{eZDdv&{5|A%HSBv_=!6#j}TVgY$J*t@+H0>J$#)2wyVav^uiBLlp21ia;GX4a?z2u z472z(bDNku@_Yn?h>wnhkB)+m#BVGsc`F6f)htO2Y3y_qymYbkYrHgcuG@zV_c=SQ z7XWLLm0U0pAN`sLA^yzq)JXBv3(@ID4>3?DCHkwLH;WZsL$Cyj5eWdsJ%mTfs>r@2c!LJJJ za)9m{7x?F%%Z)9Vla$s>z*=oI2w&gj-cUimeb&BfojieK!p4N|N8n7w)FW&*`TdpT zIx+u#f8p7wrsmpCa>i^$q;I*GaMStsIt`YpLulZqc5PhjgV6~(yZuit4B=b!MP;qZ zT0T(zgx4Omkf}ImCiZ&Ol-ORsxB+{8Er}+*D|z|t!wtUu9lm>1DpRr0A3nI6DeycV zbxU0OTXS2#iw@CN^}+nX?04VJ`F?T%wSRGu&wr2e`L9u}Yl%+?GT{m}O>E+MY%ET! z=~Wtamf4xeqPkHFLDf+8XDnj^nOhhtG&1wNl&J+tX!KfRp^+)JFDl^nW#-UWLLIKy zo+JmgFUBpvtqu$9%U5&uC2q*(mDI0s)b@)WM6~_voA;F?Msz#gMHCE*%#u{ z(hElv*%#9whBZp6hDw&uAS5~lYdSI5p`(z0|Bgsv?$cB>XERfgdI>Z1^)EWlt^}%J zhK~AjEPcTYnaWrj^?g_(sMb}uzyulihxwr!aB|)R1)0ph!U_f04)f8vA-blYAzDQH zkv{n&?lnVX+(TVMZKmhwQMw3_>=0b;N50yuMXuD&V9ikoGSn^Iz990a<%|UOoN#Zq(EAyPedF)i~Q2o;IuxJm5IN=vSb!FdglTaX ztgc8U)YTpO{ho=AEnEOaQtbrOL(RgDc~Ce}6b*gU%rPuwEA)>hA{|T^I-in%V-7)i z@4+q~>PeX6|97QAvjUS~{&_UMaRBbK_ve>@ z9KR-o?>c|64rmQ&f)5_(NB$1EQ4zdxVT?dXu{nQj>^&IB& z&R78DAB68?ep~GO?|mQB=nd?#hu%b2bJr&3ylKV?OFn`VD~}W(JRl6Ronh~*kq65G zvV0l~7A`UI;gpue6e6S=T3hwDeWsvV%%&U7$S*5=$Y(BXVnGL->RZA&x=y+lfR^ob$usL5cKdsP4K( z0D=*hqlLAdYIkA}LD0)mt2Pb;;_~?y44c2({A()bPaUbuJ6bsbMocn}DLJ^$o12IG zW8-r)*go7g|C_Evu}sC^_cM!i#BwZFG_h}6bc#R!AAdep&)4ysqKAAAn>FlnvRPUv z#$YKqE8W=rd3R5=LO$$ivsdzOjPp^t1)CLHr5cn~`g@%v(F~+Xo*sa<=XNy5X~7f;L8C(qd;!HtB`kIC8O?H8x&C#cY8%7 zSg~-mMHfzRTxh@0RiA}*r+(I1*OEJ&b^rTLXI*`NVER)zR|}`l{j9opUkF}^CwJ6d z9=<=Y;@Fsb_oresgX|6a{y@o9>F5mYA1`L(?4CJeG=O_O{+YNv(l(9Z*;a&! z{R0a%7T=_Ck;B!=ldws{^0!Zk?T2{P082(cd2@>$TB7qaI2}32Wj?anAO2n;X0VMK z#jx#YqsC{BbbO z2D0SU18q&g`B6zJ>Dk*q-;LRh`~=N*mfF?N7gJ{LO75GO74_)(#GfVR_VPpaQ}Nub zOf~2$D-%UmaxZoX-OaZu zDjH{fD<0TMA+@`htG=Nb`zStwVSLB&qS{KPHGUXhrt#u)nEWHDWlfo}KR=&&&k7<^ zWzn9Se7e)B@@>&+7dw?({CJU@_dLHWnl+(sTb7Ale=6A8Q9)MwuJr?m(%=96c(FD$ z``?D{Kv~W}{L!6gQB#KT>_nXa47shE=hOf)qgDy6wc0YheSIu5>Zey;Qubp_<)WRw z8*2lasu7PPKRVHX+X5!agC9*}?|MJQpNBk44pGV3v&Z*(Jihmol;G@5BC7IRjDIrW z3W-&(9`}A#sP!%McTmZY4Ul!y8HJ`0&)HDzbB}FD=;(QiZ)ntNx%$9taTcE>;}| z=Ij?w!(~8l&b9MM-mzvvDG{??=;bzig@huif!rA0X0H|+pW^%i3n&yNNF;kN*HBod z3G<5-OEPDtX5YeTV2C);L9(y4h%;3GXdS=zD1VUoei>oS)T(z*O0D|KiJYp5+Pc#p zZ7DA(F7M>a+dGS76MDg%dnsDik!MIpsbZuEzMg>5nrtYt9n zjt=~%^L8gya(X!?Bp8R8rH|;vN`Evv7N{T3p#|9P1==+)NfQ)b3T+`XA6e`0li8aeyh>^`{*E#cQAsr|Sc+wh#Je1M0H}$cFUO zVdC+XYR!3C3ITMKRtQnkSp(0F&8u+_ht4~sG_w{&VJ?e31@UL6>+k!0eMUM&`nyjc zp}+0Qz%7P{nzNuitl+C=PlR>#Wwtgi1l6lP{F$V_VM+y~nYE&h;!Z5+>$6lRF$ds7 zJFwC?yH(bpB?2bqK7`=g{77%L`j7hab)V?Z_+%;>KS2KeTTrq6;VUvSrN!x)3a!p_##rx8Nh`yuwA0rGoz`GZVh!d* z2E=*koQWgz6TlXJqPc{@;(nr*(1o!U7+wnEye9eA<-H$J!5Y;%DirjtgT;ZXohQSI zHeF9o?OKmwJM+_gxJyeNQQtp|E71ZQxz(R(fruZaR~uryH;FZ!-r->OfEux|J*RUc z?+?H1#_@7Q?ZV^nT}+FysePgc~d3Xph%c2Hc6Vn6BiG})B1uzQ75kAWsiUk z_z)EK94HK{M-@Wh3TL4!9%`-^6tj%hnn(c80;?@I6N5>-T_?=OT|fqF07kcplM0J# zrOFaQ<_Q|AblWwo&2aBkL!YM4oJi`c%LI%eETvMnvk$@^f1NXL426%_7;2e&v)zY} z3;p3wTTGrnxVeHsPG_%H>ssPD;8P+0>yrhO7O?~QU$^gEfbLce>c_eQ{B-RO72vS29^~`)_sKM; zS9k7s{YQ+t7%WP|rMUV!132ZZHouD zVB<(v)A5$+#)CVZzd~Zp+fyK!A%i#Hpj20WP*W!`tT!MGXOoFG#eEGNHghkA?U z@L)24{er%s%h&M=g4Emp!UjvWvNUKlzG| z51oQ?yypP;i~I+Fejm@HdH!g&Ke|beuJ=b*`J?mo=)*kfF2#sZ<^HAFFMCI9b@PEV zoBv@w28o?Qg=(S8hyuxMRU4n1Wc3g8Slxs8{4NSb>y5Y&tWNX35R}Z#`=XEUR|p*E za}7GRGay|){;IwPgORR?hyX|qP;=^9OxYR30CsC$5XL6v&Znpef)7ZEEYN?bcvSR1 zU-W0ROviPoZUp#ROM zi&ZKXjxfIXulq#*{RUDtI=ZG1Z<2~?txvqW^HIO(_)AH@AddRSd?6slJ16RyLmip| zr$+%&%)TwtQ6zeEq7Mi?qucxUb!%%whW@trZ`slM@&mWvPJN`cV%M*E8m;mZ_i`oj z%yA~WnEwxV?*d>|RsE08AOoXZueR(OUJwVM+O3~Ez^`fHq08Hoi`K-0~x#!$_?mPsu z|KDQHz4z?LdhfN@UVCqLi}4MyPr+|=cjV(jm?p?ag7{(Ggn!T|m`7)p9P#mkJkG#A z3iw2WSO5I2so{R+&q2B^Dv9X8bA(KJnL4I7S*&69rftl2p%~ z=L`mI;4QIiS(C8GrN-F3s40pI=xhRQ%P65OfHPWo#HLJj*r{*cAVRtLUf8L$C-T_4 zugK$=J0OqS4-UzrS%@v=87`&16^&CX6t^+6~q8>UJspgZ1FQYpH^B|kr?INOqoM*k>9vdT+ErJxKFPjwXlpM zq&ew_k{_~Z2<`WfW3LwyUcMM4TsTfhxKhjQg>vS1DAi7m7n7l-=8}U#Bz!tA2{}J% z*ZI*`b$+x}kYA+kYSKR8^=_Bn=ZCKrg14al^Ahos<0wZ@p8L1NbA?a79`*R2_~aY$ zf#a;qKOTH>Pwp=o$B|lEhZCsI;}V^XVeC{de7<_&C8z0JB?=Tb{b2X>HdzMoBeMy2 zGT^+3^Cb}fbNr~2D**uZ&Afkr+L{JJ!C!G!Et}Bmh7!&fH)mb0Y6^9xui#!sBRJR2 z8eR61qnh0=BrSkMn}r%mB8J8czc;TT2V_Mfh>N-JVL{|VLF7Y#2t?pik<5B_3-aLX zJnCytQ6x3#T+vnXS}-i4>K{zD*Mno0sOSG)fB^~z1zCoJlFAY#j)~(AQIPY?_;-Px zKY^Lt1q9%H&b1<$Eoit|0}5>f#QcvHHsi^BD|X1rBQ`D5uVHHB#{z-MMqY6Qblceu zeC*q8d+gT?wtQ>UNFx?&=Ba1`AaN_P5l=6^;ar4G#9MoL$!n2qd*XEU^Kd}VR36aN zfb0+GJ&5BHla&0FoKTF) z7XcCr@vC{|6j&(y*n}^-%&>nUmKjPu6|zzs$uXQWe+JREN}1cp<}7pfprH8@XCxD? zmxMRjk_G)vfhT!F_cBn>zAaVz_8!UHyhRXgU8DqneOn|`pQEx>n z>Sxwb23gne8d(~CaXdUKB6cs>U<1Z!FV0h#oQbhmpsvUo*iOL4cC06}$T^DPVtKlh zqb#)oVHWT`tknuWo7a$@Vyy(6_$7*06JMgSIeelYgQw2mhyCy7!7|sIZiCG}>M zq|p8>R{L|sp6IrD3)O`2=XHF-{>T&RCmIQj+05VJN;cpLFzsgcr!H3aql(aRtlnq3 zp8q(z7fR{*ud7)>FWJ5yA9c)Rv*!D@HXK@}jIns1^bs~cmw8p(x{3S0es~!`6N$8N zHLoGKtHmPW3}Iwqk(In3TWcJdw??0IZ`(dER@Ksd^Ogp%$OHJG2v9SO%nQEl{dlVs zseZU*`gdWZR(@4UB1mDX0;CkY3_{QSPdbiH4X!D&_;!ht0 z8#>rprNOjH2SE{z%G-ZIs*ZgZq$c3O^=YQ<6s3-U76w2#EC7Nmyc`4&PVtp_+%!TM zURf8bX(%0P>9W%EXKf-T2U$RIT4Rx(Oylgs+gIml^7c%Vn5|N~s{u2Qq2VDy$)c9; z=OMMf|C`B&R)6!A6`7y}IvyXI$nZeM67m3R3|0hA?H07<08~Z|;SZ187(55ZR^rHw zEacytnv1;O*R%HJQXzz%SU_TX9w;s2Q6KCy5h=3Q~o3 z$!R4Tju#JJl}o(f5U#_nNKVX3j!MHt^YY+`QW=>UnXeRN2KI*noyPG)`ah?f4mgB? zc|Q$R6mE`^_Lf`obQ=)AyT7bdq~D{i45%oRTA||MGAE4Gu!9K@*EhxGLHv!oPelec zgJ@=gZJ1VB8kT!-Sbiv6q=Te1{3{)_IsTdDQCR=SYp2l3MU1m%CoIn-HOm~hc@}|~-)TOuy2BaPmWf2d$ zrAw+i=9%K(NjnD`{dX7hlwc_0ol3>fM2*Z=y(u%#uG08mxy&tC z3`?u=iehJ9cl5%r_eG>t7eYpHW)+K-vjh^f8EI{tGa&tSyzYh9Wr5dBg5~Q=TL+|T zpgwGZ2apAukjVhbpa_oN*g>rfHes`?8$G=5<1`RUEauYllue~{L_Hv*kzXJyGj=Ak zV9o+4u~Nm~8oa&Z$R&0WWXw)w2I5@o3?DKcwONHzR9LQ9V)5EC5@5menK>lf^y3 zj$3xnO)aTX>25BcD`<@YLTKR2$=Wl2h?X@w{}8Q|12;2z??ed)ZsG(@Is6ggB?oSf?TzK*mK~)~ zWjQ6#Rtm_URvLf`18RzcqS$`+$0dqFBJf%S8O$>;?-3G6;6uY9HUr$OOkul}M(vdT zFR1*1zD($c{DIs`L_dZE%FED+D9Y_DZBy2AU= zenH%78GfSGreHx2HAF*zp@4X8-d>7kL=a0Je6!fw+YOykRZ7`p)JnElWfj{BX#<25 zdlaa;d!f8Z1J4WC8z@<)_1|ZHGrvN)m9WAFZAXR|rb_5yshARx?_6-~h}EfdHsTp4spIfAhGRkQ;rJITVBZ#8_hl2b^~$Do&WBHE~z4ywW9Lz?C!+>y-x7| zatMD6>;2Q0>6K@=2(2&iU!N|0tK|HZ@)0Ke)f4GThsnh7$xOS&Viz?G_qV>^37w!{ z-MZiT_q&mPzj!x4{Z6-cq&fX^>tmWLSaQw^knOW8tPv{QEpjw@XXo_kmi_tHZlurm zaF;Y~Ym|MyaaGX%$oj#o72oca-V68iku>YlxR-fV%jQCF!>it&tL(3jy;V~8D8(#H zPLQ#r6sfcu%mZ)k4vieJqZ3M|o{YBRT>sgs>py?sB%^tYda;Yt+f3SLRxmiT&B`Uc zFVUlA;HA}p7wV-Y=%tBM2h10cMNl+4b!PVOg9tNR)Gp=RNhz2$ZST+M;%6|8ko7?N zfSkeDjR3*LL&l4>u#G-{hGB9XO{6ZOS+-3X3Xe<|hi4XIu7!V?JjzAVcwtwSQGi34 znQa-;zyTG$s`IA9v&}Y3oaQy88S~Iwm#1dB%tL{b&$X6H#4HzryWUU=^$3Fe9{fAl z@0-^LO1&4gG8mkH>&jiX?!Swe|HMEYl?aa%BC$-xTfUariIlG$I*~HHa6+bxWmPhJ zb5m-UKBKI}{AsHaDlmT{8DiudjJM2xIA800hV$2VI;Bsv?vO${zP%5W&_h$t=Qs2c zJ)b^^9S!{TLCn$TRz%)KXM*532$RR9?*8N^w}fAu^8tmU)lB!Ygwxy%maU;#I`dWogLY+2NQT2Z4A5^QMvc3 z^-1oAKk4dnv`eER*?V?tilrBBz#iBEqDv(ebsnj<13~@+(A>F}}(Z z> zq={M7mbiXK9xi~Dy2v~(VSa)cY{}f299tyqVFdZfe8$$!$b4@UnFI1`>8td#oc##? zOAIu~mfz{=uH<*pj%fL{(Qms}FY$&U!gr_k!CbvWKCg)1As!lozl5 z={_8K^6d`-t6=;U7YdT#M&A>d_=Zr*NaVEBb^?{%@xGe_L1 zBm|A@0t!@9hCDkdz$x7XKfQxm>Gm?<{hHGGC zLBwnQlqc5#KY5D3*WgU(CwvKz-^#t_M`e2g zUNuk(@!nsTNe=mTjci-G|2k}2dUM}*I#a&;xZ@iQ6h|#1q~4BFK1^WfpV;#?FQ$<6 z?0ikC{N8!4-HxJI;2@!#0p^ zMMUYQu@%$$q8p6&6mp3S31R(1bU33Vu{{z5+Pp}^JoW_7OdupDu#!BMqM2o5VZT*^ z-N7`9tlH;09 zEo+JcE3Rfz2(D=~TGJ7U@7rsL}S@gpCvmqGVahx1-%~?0$GnTi_WmvlAuP}$S zgvtKbuB9@rLtx;@mNES-csN;g$RYi2L4Ggc8-!10UxAO>fq)t>kWLP{@Kn)`+Z&-B zPnJMC%&%VB*^#Pu!F|AYalGwVoDcx6HgAbhz*`sT%@**ytMPq8+ok0bX1#RHWmJSp zlSF+6H_E)${VU?F7grRUYeg>YPhN6vg(uA*odTKfm=v@=M&s;6YhuP+ug_f~C4}2ge-*3ZjE@bWjNd zrc_jE{*~bHe}coZV88A&$DipJqjM+(DzWn_NAn9vteB*M0dSlT#keRgb+a~J&iE@f z588}Q5ShrMib^-ZsRB6FtIZF#y=^U{S@fb+q4X?5858(^An@JnUBnUM|8EjJL(Ixmlu5U--D#9zCL_JB{Umaw;UoY13cj!m}g$du?neEAkoAxLHtT)U5Ky5G4~)g#qR~x z&j#X$qk-`!grB6G1D?k0IksR~2{}I$>OG^Pk!jO6p)L6x!h+Pe5YAvSEicS`6MM8d zA?9y(rvZ@07&|9kfy1=r0EcPx0XUZPv?wMhABF^FVup;8JC-rG1x@49lf?@nHCvSEuUzmRfGcyOfScTQ#?CLHvW4aHs( z#3ggKk~v$=TYEF*;&PM`r@l7~`wR^1$!SPebdcNp$4sT)+e)S$+4C4(uf#u$tQOMd zHJj1xYIE6EM=Bk^u6y26DK$W3YLS5F_oDJO%*j_dJ_OZA$Ddu&?*k8a9utHE%#P6S z2i|Znn?Ldx5>TbM2l_o7+7+}v>_e3hEW#E9h#S6A(jZnMqvaxH%XmPI`Qfy;NzI}3 z8l1&p3*a79)Qoljv2tnprVw>p{QYJ$1Q_bc;sjZo2)!N3xHuxq6QWP^I?bJiyhgOLT%fS~=mh&sHW9Kc{vSluP-6!aE|8V?2Q}~ay z2<7=@j^|&==6MiBvF}K)-2w`7WCm{4RvWGXx|p4U#s>p=3@*e31`(Q{g9#uM=ErgP zLJcq>!SU~4!mPu+x$iX}=CyyfFvEZ6`6Se6Pb_^>Ed6&g5UTzA572+Vp3wi5Ej}*q z^Y9W1bm}A1zhw4bM84KEkq4T;7LuqYeMR*!^*7X z@hsGt?&<$-hOY*P2u8rSZw9`@dj?<0>{(RM(D_Lr{gv4#Y$^OCmr4$+dX!kzI%?=i z;xgr^XBEp=Q-5MqlLRvg>rE??L;(NM_;(cTE4C1>sa2X5`Ll?0WteieN{Xn71;?yWXcUh=8f{G_F#+|ElM zs#bicR`H=))Q1xNWqb){gx)Vo`SbTP**LGXf(1H?6B@)P>WZ;56wax{OMK505%jAM z)(C=~vcL3CAC4V3?M1kmzJ);Ol>IIN;>UJ;=6P^{0roF)e%{2_fF;2UK&DNV*(6gp zJ@-hl!1Ubu&%ntA3eCu&F5yYid6?9r?J!CY`q>%!5gEA0I=EBk!2A((I~%{sT0^dn zrmzqdo-t*7Q+`ta)b1Z@Bz~9>(g&9Sjg3D%EcoS#Nqa7jvqrU#Zov-Dom~anE!q&*ac8^6EU*c##fHt?C|C5QgiBGg8b!xtWg#921p31ugL$&*&L0M z|Hl9k1geSnN6cUT!PkhY%#o*EPeN4wcKL2o#PZKyzP?NImjgeegaUc;&R+<%OkMgv zA0m`!gHB!c`*VH)_&RwpCA=uvnH zVH60kV!at{GmD21n8OYw&BM$8Tt;7jmn3J5F+mu0&HLu@TNH&jzH13x>EkJSi}^c_ zDqG5$P>xt!7veC0@~Esjwy{v^+OqgAWif&!SfW0TPYraRVJfFlQ@BEi?h(nb%TM*> zCW?fQbTWni$R`VZ|CmP>j^Xb*cQa>r+VeaMQBKcv19V#ihMHw%%h4PH~J8o79OLR!Qt$*|h z@UI0JcAI|(JQL>MVe57)|91cUpr}f*D<_J<`9XZ6!^B*))*{i>{J>xTg~~_z=QF5& z=qMorL>UE5R?WtD>6Rn^^B9HH`JcW^2J0(;TgUv?zxjYKe8d9I^I;}isk6TMHTWu) zbc)KI%x|uNeq_PUby3le27x(2m?adC;|Zfe@zqpZ3`=pOV;Lk7l$7?a;0&UY8}}>u zDG``Oyz;aKw#>Z$umW4=>xV#kO%L>AH^;Z`0r(N|tz#U_#b%s^`ICvirH+e)@0P#% z0`T)SRscSc_+V=^d~ZGF!`HWm@a=y6|CznRJ6HcRP+qjUoBBU}_ro_UAAF0R^r^U# z2g5K5)U|#3Z=PQ~h!fPsICf`#@vA2s`r;@A<`=)^i7cc>X3DKgBfB=gQ2+A#>Oa-f zzDKNIN_YnLJ@5MES>1;VYSK^S>}x<8m0{uU;trD&`ONtxhI8JT?n)f$$0( zt};i`QclPtVBzFUBGko6KK16|GsK6U=CsAs@uUGq>H3#JUO!C`q;A`MlE4|hMv%@f5=4u1)Kl=hv>vXw6 zz^XIt5E?j+hvOd-y!<7H9gl~RGR0wZQguP|S2Am=MMUzGx)VR2&im1`aHIczea3zT zPy$9{yTph?Cl1(&;e2pJGb50y@R3rBckF{fjZR$>M(JvcQtBJ{;PZwbWd8AS!ao_} z5CQ+ik2$6&{L_~00{pvw{5gV-*&NQ? zWHcX1X_Xvbsu-SZ0%%A=CIwcTudMSa`OOC$CI4gtkVHcBgC)N-<>HTRnV9V(eImeeT6 z`qUlw2L(G2cR$Ihs5PJGI~9fG1yoe+=YJZ%S6~tY_&tF0g4$`!igWQ>{<~eqZ~7&$ zpD~Vo;rzYJ*rhjz?l=YmN#8q;(${JF9tE)0JdEQbhye1)kg9Lqeb^y@)=EuZ2Xo2& z_$nbl1_m{S?|U4?(lf1<{AB2Vw*}wI*XMljbLl^N$*$A?qGjz2XUV={)2ce32HXZ=lwzs%rI0g zPeC0A@n;eQ{fhGx^ccj(TP@@7^3@LfkV~}YK8uAk;anoP<{D!57nr*>|NCk*{U!gx zlWuF(P92+rOn?CbiE!X>_+kO+-@Yo0g6SIu-j83X0_5gj>|Xg`NHhT5c|LS1AK$pQ zr}8m<_rka5$Pj!Fu5{E>_#RvQNyB%12)+Ze;QQ<+4PO?2uU!$Q-}ipgQ~H(6=2Z*O z5g4S%_>Wxw2>r*{d_FyrxfL>CVsoH6TY4I391FU#OzReMT}b`Q98_|%+dZ}heUepL zcsg9>rC-8K6}HdiUS0Op%z${Cp5kN{Vl1bCCp1p1! zpFhu@c?v1+M*h$8Tx!Wo#O(Kr9NDIVl&5w*K0h6|mPf5$UQIS0k zRj13DC09QU^3Vqzp62uSSj18dR#kNY^E>q8yIkM@FPxu$-J&0`cAv!jeAQB)#DDv_ zBk@O^pWn)1Ge<^z|NU;hrmO@-93w759>=4eU9CTj!*r*TLxI-N1V>Bku|)iAGN_68 z)93K-c#c|jx&EaG9CqxpG&3lhSMScFC?kU6RWb`JEE@0RL_QQ#3x3i0qurkllegRR z6Nq25vV`*!w&A{;b`~r)#SX*n<|pj__}V2`DAeVID3t$^0rR4tIjQ^4$M+w;G7o%< ze&>^Mz9G=knX})GW$l=&uYr2=Ge3G7*&J&Cv}giM_(%DwP8E! zsHwF$FF{gK@Pnj6POS4ron41thfz&YHDW(&9Nn15M%n$W{q_D?X`k2VpdTtIQa!P! zUL;ji)11pAUHrwW)cBCPseb)N;jbe6m0Ul;(BaO&K>LH>vtw5RZ*CFTM(qVSk(DdI z5!kkxVsF%VUaxXy=-1MA{LHHwP?v>UR+iCHl=B<*N}P*ta#IHwVeW%h4kIJiw-A7q zHC4z@=PhSE_(`DP4L9yp0Kvxp4I#+Q&b|pz{Pyo9_Op@rX?{MlQ=5o2l4v=}LHpR{ ziW!Og*fz1)GQgdXu0ND}qrev2clOIdz3E1S2ZJL7(J_QhcL-qio= z18T}S_=gPx7Lw*Q1Z=fAZLu@3Qr}GeiN!0W<4uGf)!2YSsQ648HN`QQ3#E(krTzdiy4)DP)Tg4Dwny%{hI$s5)O`Tv6C z^QnF$D3>hQW|d*ymR#6~WiEX6?4g17A3NdHdaMssA-ex;`R!7F`UlVe{Mq%R<^Q+u z?lS#LU&(Ev+xG?~`=LOxeJm)X1 z=lI&PrHYc+$^2BOma>n-pH_~BpC^-%8B{QFCS#bdVkS4foc9}JlXc+dO8i{On~!mi zDE&^9ms!|EOk2*X!V9{Za?5S_HD)enRomBd;+(|dA}#2$PGhZqI;bGe1onYjgEUAL z2b}Pp=ug$lx%`W&-=pzq@CgBJ2ug;2j%q)jf7$TQ?!lL@er<$`MfC4m){yf)a!e#1 z5%p;wy6?ZgKRU8qM=7-5J^L{dm!!B#fhX#R#;?Y%{nPy=l`+E4vqRZE!I2^g|9tc> zjpko8d_DJ1&zBU&2)Oh3rz>}YV%hNTf`9sV$w%zO|8vXNA^&vrza#nPSlBsyJ@QXa z=n6jPpB8_Z0V%ux9{Z<*Ki5(+?LEt-j< zPd@pt-JAW|GlH5LD3r?=c0;+MaELp1%n?cc6{K9|Nl>3@B6|Jn5GQh#~{G_u?D z-!FOs(-Zg`Hbvr}4S%$MJo4Gx%01+NEv`wROb7qd_~d=+AA0l;v97>Bx$((5uCyRX zdAv9382EQszX${)v3_y3UB8fMkk(vQqq}@!$6sqGeR@h%RUY3!}_JUW7ymFJ$^2u&ziGppN` zgwp>fO8>kt5**33FP9JSxWORofx-F?KxagE6u#Xc=P;ABdk~ZjhL8dwSr^%>V*?0U zBCfoUx>8z5m#}`N*MW-;(GHi2(!U}#;KA`E+9-UyIU!*~W9van>h8AyLljv+)gU0r7+)oStL3lfCF5iwz{XVw$$|gF#<5sa#fuT-AQGGb zL|H}qLMY-7LBw1{tGHFF)-%f$Q}D9VOvU;cp%Up7#On}_OawyUYz}V`q%)^{H%J0D z4A$dCs$Ui{fHhb(1)T$H@K*#02V}QVL9Rt>;w!t|3(y(R9cPDO4CkVulqP$?L-2Sd zE=e8YCHt-7N+LO4^5Yd?DyC9wTQbe#$j)jHFhS|Ryes-6$=7;*AAtc(LhK0xkSMI3 zq1UlN7QFHAZm~czlFQA?SvfqA6y)+$-wYFaMt{^lsa%@xgae-;2T-yQ|GNMe1Y+DO8w z*>h$N-$Zw)vX!aF!#ix0em_?Eg+jahTcuyy)Z%#CNu}|&@z5ls0Wg`>ookd?fvptb zgi0L_=;Iv1#3F(Lh_8!MjrLY~?lsa;|99Rl{V=@R?Sn<-pa~0bJOoaNm zgG|6S-Q$2@E3h)YZDM{}z%LpXQo&aQ$mbS}y_u zvdk6$#tE-&;G(?cFwAjj8N9C}?-S;k<8YWhu{CGFp74{7rjRmsq#T_eR1lf>sEnWt zJhu^#;{4kx%H$Lfw*@y1WRZ#Y6E@|LCun~ae>s4=YaK|Qi90WlAfgN1FfcK!Z^NC0 zV*{53FZi}R4eIy`paUa(%aZwU7iaWJf0hMf+S+oS0Pr;*&S$di&j0oj(-J82MKDY1LNi;=d5 ziU&G6P(wjL#}<~c~VEsN^|1)-t?+$OnPX1mEM3F#RU4UE2 zk0#?|1i>RwL{Sq&yWYHmbQvW{wUx2z^je{*{aU5%RIwcyz$6hBa}Y^00>$guq(?ee zk!C!k&vgXS5*g`euHR9W-}2q0Xf5=+E?d7wyLBi|Dz1AH8(UE<^Qo@eUJ_)Kjo^YaQ-=j4)?%E2p zaxsaUT}lXrRs!!(nPiPf%w|8b}>P(^0Vo_v5WEHjlo>?xTWUZsLUMC|wB_I=CF${UJO ze`VdQS2eBcy_Gvp^j5w)rY3o8skidOJ;*|6nmvov4X7Bn+iiX6GI_!=-iBAaJ@je_ z^DjCfkSp|UvG6N!59@HNytOpLRc4u#&Ms(yPL4-Q4goOGOJ3{$AX~O-Hf)X$TjeFE zc9;e`stU>)+sauVZ6EC8U9JmEd@DG=%F279zWJ zTt*!+fA*XKD3@sFQ5cqwCV&{0k1n{TcX~gKZ_vcr&eC^M{KVqcBT`W)@eig~277~@ z4fY0zkyS}jD^FZ+En5r29rjA^r@+_S?&{J10{2s}hpL<&GL2Jh6TYjFg;THe0BtW} zt#2azQ(~kDTwj#>o1d5}Oc)L#dM!JP=-nJCAASTHVGO{1kQuHgxFt}_tAu&2??E^r zsIPy)EBp{2G5o*9HUi|`OXhE>i5&W16Y9Vn5%>(7KsXvX+U{iGxba5QS`Om>FdZ~Ct0dW`Oa|T zs0b~xA`UGQZ@E7G>cq7tP=r zhG>`GyE=NnPMxtMGS@^dBdz1PM91bVsJ04U*an(xq{rc)&y>fH4hykQhW-zGhqI`$EJ|$Z zIm_Z8g$e<{zAOrItwPWWPC4Y;PKF#M@S`_M8$$65S-f5cC8&kEoDi02D3v^Yr&L`{9fTd8={4bT~?-kX4C7%Ka%)T zjItGsGDF>KnHuMn`S*oanhBIBalLhtFTO49UF#!W>$(w-nz&dPw#0C920U|C2%faN zVhm=aoIRJ(D??8Vs<`!Ej4B8?a8zLk8*Y9v2m~uxTmaI;eU2m8qU#Q&q#WLR8+K^9 zjU;cWw_&r_+8epZY`SGldFWtd#|`6eEu3QKW zKn<=kNfrDpC1kc$v|r_O8UzLXWiqbplALj}D@r~96||Yd3L*q$GKiBp5NozaUBb zi7|<;z0ZYum|3^ajyW#%%ix4-&T z2XI*7-LD7Ck*rAWQXGUPAv;qbRovre&V>aqllbQh{uz%y?N%8h!r5)#$YGttBXwL! zVq6VyuiN??(2tvh7W?l6EqVzpqBZ2w2n}HsPgG@_+Td7q*`(co@(Dl%P*oTRrr{#Dv(cDHD-Rnz7-3+nm{Ez;T|Qs#J8^Gwv{D6 zT(Rd$@S(5frpl(Kh#@INzwYSY?LP?V-@U`2e-(7Z^6K9s^*K!ZSoKddBXqtU1+0$a zOM?1WPyK74{x$l`YzfK)!3 z#9kYpI#%sdB_#<%Isbq@Re9r^-l+G#Y3JXsQC(L43#*S9Q4UnXh}tsB2Ex>mFx8}G zm0GC>#1e_~GL6F}-zur%T)hNgM?C{;C&96m|Lh%4_B(h&vZlDE6@$tN2e*v5XSI3} zedDct;UD)kJCM#n|4aH}H`*bAz|e&NA=3_yl|GXF5ZlIH<<=2st5?gIFWa_?yw;&; z=}Oy@3kWiPw7g9<^0#=JU&|L!#yjybKVQsCmvq9G)NG$A-O;b=d13uJ4Elvb;X2W; zOLKeAqhHW-!CwJQa zD_`vq{^RrcH(B!^D3o;_VR+zQt@Bzpn9qwoIg!l_oaUks5S`G!WcJmn|FzVAkNWRr z+egfWs`h73_z=Sr`bJfQ1IZO4@l+6CtVd)Ir-Wd=h>*splXV;?6K2Va53yE#RxRq^b*QL4z^7cL&FJYoivsED>SpB8 zv(dYlBR!g}2BYNIiYl%%R(l&#+@-L9P@n-4$SvH>R5HmVXt*9r7YL?c`Pc@pr9VvT z>{pEjgT44)E1?DaBII_-L1X~o8fMHB=uyx8cY(3|mDT@0~EDDYO;fCT!>LSnezPxxR1g5T&Y09HRKZeU`)WumwX z0AeXRCllwZsM!U875Fuqe^LYdt7p*7MirHRjl#bheYT*G1o-I=f_{w{zE14#J|mo>ws%LZ>lnmXGq&1SH3Jkm7= zb{fELAOV*eM8^glMP%hiVACK7&SE*W0$A1{pcWFq3SbgI6LY>yr}UL=7@9p2%>;8S z+@h+#GLrsX4w4#M$(_!%o8{-{*gQ&OIh(J9|2h~G`AEyBKkEFtSjR8KVx~Z?F@C{l zGpYgq9%EWK#|rih)*I3e)>At%0YKOzU?nPXHu(1hL8>k&Q3*;MOQ3*1V<8yTFr{PD zkivvF9J*+ZeL=@J2`yK$$toVaKaCyb7T3lw@KnlTsd;y^*2Y)%sQ{(-!1$q2R@ZlA zV`iz;Ceq=UCowN0vhd~sx2c`n38_;&e*$XJm_=TT@O~RDR{FQ0G zT%Je%6MhniH2+B_|NIpmI$GfB-XIYA(_{<=YDq@Nh)xflOJ~gfJ^=p)S;IAmh7pEK zyosE`WG7qhcvQRmf&NhLKuqDF;^@VZ;pasYDfLz-^eI#M1Lqjkfc!xM-1$iX`hW{{ z3Xg=^31ITrJzf425~N{(Gx<-JLdkw8QG>Vw2uaI52-L)YAVdOv=wTsUUi1Z@B;)IX z!f0~A2#^VmP1c%&*qL_9DA;HR$!F5WAc_5qQ1yuAEg9f$L8_dz_2WAkk5o|4$fL-I zSzZ@SZ>RrvM3UVXRF%&UR6ar6DG)=@A6nm4{*xSW7axx4J+p3O6OtbCpHe5Dk?dVO zAsOqa*|43z)4N5;zkB&lY_hthW1Ut+{u6y*6+!p}Y)A5+U_5AhP#B*;dd`JG@G9g< zx^WmU7%xB(*c>KU&Ev2rLS5yz_-hh5f8LYQck(&W^i8c2!YciqQu;wZr%)#O2e?Cs z0TsDcO|HdgMF1EKqStne%s$?4?|7OzDMA9#q46RO2s4ER`EMJX(;(QOI#Z_FbT`MK zOWUPp+^-pUZ#xRK77)k-{2G2=+LQK11i0RkSN6=wXGfDo#4h!UFLX+u7mH~B)-;hm zjigT_J!TeT{N(le*VrOETk@?ta=7yFgn474XBxHNG~R- z8mI6vBZ~YUnH{L$#~ub1NyGoMSc2Ls@ma3u{s`VR0czMTo>qID1bA6 z#rLo!Z-E|(nw$h@tn7u5A~olB3{vdJ&Ul8iWXlehnu8CS)SO_EZlvbCnU$JTlp4eV z5wr9xMY0pnmvVgux4r&oes;8x2Q@y=Zz%3JDjy_Y;y zY2`Y=tWn4=UIAE?rwNH924uul7kAjf2MHFApcita)0ScRvr}uXDM}a9zvIFTJ;e;- z6di(ZS#28@L%=lO^Jvn@Qv3TJ*-xqp8fWE{d$3 z%eE3ZeUHj^xZ&NPkb1v1g}dJ7&AcOKEkj6{h72i`5WZH2*oAP+zgZV!UNOhK(u}8K z2G>Rp6sZ>_Sw_c)V$8hZA163I)Ny=(C&Dxkv?YcE!-Y*13FOBtsc52d49B8_*YaVH z@?-kEryf=v1|{t9bNWRK=+waW2N7@NkPOLTV$G2NnxNGZG>?NQKFO&4- zt-psaI+NLK`)YITm)(Ju8Pzni;yI*D;i5OWX+UmaDVfEMSaP2p&dZM=tfjEfcPwzr zPhWvkoZz<7nY|d2kAajEu^l9fpaJ+^J}n2n{PfMo-$?;FawfMpNiO_V546d;jY!)gP#aTVDz3 zkH+Of3)0Y^qeOq|80R>N`qSy{lp0Z@(_?A?J0@k>cT*nYL!OaSt}oZ*5I!}|YEs>$ z?cKS5sbqF@=lC^Q`+!lA?gwPK9KU4HJF$D{nJXVwu0W_H;z44zaIO68a~)Sy=r8qx zNTqPwoLB~XRoqq9GRXd)i#xLpYX7F61NpBe@31`qf1Le2lVHU3W~rlS7fQXhI+z9z z=9a79Ko;`Dc|5Mh8cB(Q0oKzM%w2U3VzX?V1vY&Pl`|$5_%0FjA8USO#Ql=)0L$HW zzsql*QTVK!_x9n-NQ)_PkkXj|vIt3Y$rmahM0`k4Zy zBlPo@vmN9aiu3-%Q-Y$bH1Dx~O7>SM|0QI9Bqb2CZ12a-RZw_OUDzK7`GUUMIDbm zLOmxN4d#;nQ$4Lx7tW6(n|={knn4jbe$mR6TozO^>&s4GaXD_#+ZO+Ecj)Jnl&H-3 zdGVQ!8|GUv%Yjc+KYzPX;j`oCnpy{6Mq12YPRx~+F7y+g2ONoT{<_-_Cim9Iv&)IcAmf${4m{%Y^PU?K$FQ23pngD0aa!F1!t!=b?f zxefnHo-waeM_OJC$sLcy+xChxXRmEyX&f?E7l-EqF_l?&L?hzqNNar&k4wB0j0Y^pMaa!0R7_9zWB5V4nVacFqWvZkZl8lM9G5?f!P09NtK)`WV8Co zr4=-X$#6s?j%>)|W+QF$E1JNAnR|F`*y(l}n$b&4;>q4*$|@vM;z${7U6LtJ(XJ=Q zk(E3lIkB{+70JgZJO@bdZz8s4O!^^g4Dxu2kyIIP-78&U?z|90YyF#9jwd5{Za*Y3 z1~(GqON_?E}sbP(WD#1)YSh!ybpz7=Df>HJHXFWwe5N znXWReD6Q8`wfU{@gU~^OUyZI#L)A_w{x~3z%f*ui<)`?Iw}TRwwufkbw57y2Ji|1v zB+W757q=Vmljc}pkJ`Zxx&F($r|V(P8B-=AF%}^83S{_$*$Ou5WOnBubKU2 zl6)=m)9%1W_T}r*V+p?7Xjb8g@ohOC=6?RU*S@%iU+%&m_HXXMha8Q2<@0C*AVLKF ziNY<|h)sK&tC0^b3@ zEdahq0jzSc0P>@8wF70eY6bB}y)@#{55QFGoj;qolk7~A^H?JW~ ztCb@HMpiH8`}eXF1i(gY@>*A756Z*iE+{DB{VnFY`?rG>5?!5Hv6y|X)r=>61fKIM zR`3b#BJZ;3MpPTI$&3ru5jat20m|_|)>+7B9+XYZ8U+SfKIB1zsb2XZCmiDt@GMF_ zOx2K|Us$G;StpI!geeRI8>R8NnlOmOvla4vz5<`Ts?Zzt-qqZ|{AmgF0qTvXUQl4p zBFxFFagqyGUH?LaxGIzES3@mh7jeM5UY^m+wfrWIfogqSXEUSP>vg zfw>i05TN6`dHuO=nj>qBaut0Fv@{nhs7C64-{zKRpSE& zup#Keu|@536X9=OGY5~=NHjf;G$^;F0DZwy{-Gfc7PRj%QR(p3u8>Do31HRh>OCbs z*oQ=D+1>}p@8}%KtL7`&BpERuqH$YDMlbMJ3WKkzu;91Q+-afx-DcZjLF?1qfSsZT zNZtCV9_@n6y6(~ib>*UhETS=6tYv%OtBX=I`a2=O`t#TD1#j|j9{z*XlI>_UFZ;i5 z3vHD`^XwQu&o^iCJGH~UUyP^2Pk+T0pKj8|)@95K{((12=RMfgx@+_SZTf>Y0%6Pc zeWv$GwXpsCq%l9e^}`MX!)8_(6wFJS>s+bLD1}(rTq#~sy1t}zWl8B{W;vMwCEdtI zWO9@x%aRe*vb_YrU8u5L3R&i{DV@Of^0zH)9?Aj8xfQjnn@_6mcg3q+@tAzTIjPzJ zz-9x2Zlxi0q*HR5YFvtiy8iCSklXX;*tQ{CR4#*r=44ZdspL0I1=FRMrXmG}JBuwH+ zp8^e$6v(H!<|~h?Ia>$l^D&0WF^)X!(O?cG^OKm6afW*Wtu!LR)S-uCyIj@d^18EZ{&17MRTtiyH2n z!$}=$u`uVgKI^q^^ID%a_wvvgun2QOSRgqgPRW?R@u;dvEO8JI|An1u!Meo4hb`(Dc9y_Bcfu z3H^P()Hi4RUiMOR7Xk2~r`VZ~*HvqUXssQgMz~$&wmAUPsY{915v~(R{wa8``)eZ} z3#INsQxd;v*?u5MUyiSxkpAh_N_sW2d4%X*TSyId#_}#ie-tA59VDG&zw>waKl(%W z{U=uQFL)IHi4E?uP41duntZE?ig4OMF-}-p)v=r@6C7s4zzx7F3Mgf0*+61TO@9tE zhUAc6{RNZx@4kS^JPIzh1()J!j=}mXf2@-qd5}nAz}eWpIqW@5UZdwVjGql&uB;J- z!)*}WjH1*Q_KC$7FJDFTuvPeaDjGm-kf$1VTQd)r+iXp-Yp5x94F;Wdja-%%p+Ibr z-a@0aoUwE@t&heLqH2A5LhCxhzZ^$7(Zbc!>ec&JuRhZ1QA8Qa($s5@`Ky~5ipV=D zYe&=!@e14xo0o{@+#iQ27y|`m!2%SF<)z@Aty(LZ4pK7@1;1` z-K5HV?a-VM3Wcg%5)BzTu1c+WJ-Gf+Nty3@e-|R>Sm0p{2MjNVkaM|+$5M%3BkKW( zW17l>R?Y`zHH4a8?S3Rm6hp7-&kEKDLD2|MBTidr)e$z8oN-Wn?5`d8dlOSN2JJ z&OY;%3HL+!z60|ogdX(RX6=YAch*P_a^(o?`jB)%`}AkJr2QPQ+(p54eeU1HHI#!W zSrV1_%dkHHDn$uSa$YF?XzxOFoeqFN3$~@^o=@+@ycn3`2S8Dp z+8CghqnmqzYNcG&Eas}_$8i1)*C!ThaPdf5(&jBXp;@HEDT0gZNIu`=nlDpEde}yO ze@NFYz`-gaEr+Eg@b{sL1$Em8S*-n6S+%TqW!Zzv^84 zm>dqfhv+)j9ThWX^)p~@mwxl&6k(;!<3pqEL+X~i`QIh8PoU_vtZAa8cXR(47(yvw zI9sR^l0f0(0uluXRnrG#892HlXlttQ8RQxgtGyYI{$u$FB#{XB2nSAJ)$yIQsdBB9 zV2|qIXsSO4#8^SeJbbmglnyUI==o7Lj$SIY7irDzH-d1fxGC(+zsI^V0$0buMtQ>? z;jt6%JtrpvAM%J-_!gm0c*AsS3eNywD0Sc!qz*ou;5CEXbFu)Ix|DUF z!|4gCG- zH-jR)F071d06xezjQ+pE@1}O`w#?OG0h)1HvTfiKDB`sp_aq-aRI>jIMpacxa(rYM zw(MDr_$zY4+PfIDJ~t#B_O3-@&)ttZ}TE_QKeJ425jODfXw>Vg&Aj1h-#OCf7C zdlM9ttzucwN%n70H9$a791ztGNFez%GK(+l5(Wfcwl%5{;Dv(>_F%-O5s%W%!c2rW zwFIk`1Z_%nwoOs}_{wRbA7AAIuxRI^9|Rnr#Z}!v2EPyBQA|8aiAPz+jW&lK*a_EC zU(4_;Apg%$5q?_jJn9A6=ZiSL zQj$T(`Z)e1n3~nV-!dW&T11ODURcfTM8xTTn)l11DV5UuVMrgN_TeH*PV*LJ{UQ}q z*asEZEMEtXhbS@xdMU{Y`>+DfIPAzedCt|qGUyh=ccoi`vBMSoN=NBLggXauBwz)i zUF*$yf}_!ib~HK>0hof4S@+{LXI3EkLlsRd3%W0mr&~|Ao#S_D3)W_#yjS4jP^!$7Dk{ze~Apm|G7 zY{a69YCgeYd4hGG{61gTl0X{`wLGM8U$D3y@5$l@dCt|fYp}Qq*eZW06vC(iHU&mV z6JS7s-;+gus)YAkJWjo5DFaq;z7+JH^&-lCdI`ms2H?N5Sq}2lMW|r~+vnzPXqF)>e61{wil1R#+MZ>az z35I+JZ2EqQRZ?}&9Epy^G~-BmbU6fSM{7zTVT+w*D60^t!`rS1R3Am4Qc@dYQYKV~ zS@Q`bZy*KoraJ@*u8HWvK3$LMf+qBU4~+m3w3}zeYl#)FG5ajM9IH?}F^cWE6hL78 zA>C)hiV^R^1LGV4^J`4cXkfuPS%sr09YKN}fe%N|d_rv!UXnc1=z32r&DuOK_bh3N zmTOB35zO9OU}Jwgs>)WLh%pPJ94r?X=3&NRvZ1ulfngnADlom#av7o2A^CpUqRBM|8;!A zOZEzIGr(NwLHyTwwmUTk-l)gm|M$cEhcsSNQ7+KWt*DgeJXyO9DW``Qgnqsjg-}RQ zC}yqnfyEPfx(Psj=wngPFR;)rw9sRM!)r;vC40o0#}lJsbXbngoXjwq9E_m~FxHtr z1FgN%hrqAj>x<&I?9B(*vw($wC_CW&Fv49s^@yp!`%UnCwL=M|RD!w+RA@vEgl5I1 z7y+OtC}ilj9KB9ENqW78kE{ymYot>*mO{a2OA9ttan!)=V{caQ;Z(VU@~|E!h5G*! zFU{-+CC`ZP^-5PzK3$%p<$HFQWTQ@zY}%`V|O`w1l17v9}_=#$C>-+-9aXA>x0da;Jm-?A~yq4=r3o!eYNTs|+^x%mT zDPjGe5|l@E}=TJJ%|h4J4F-Y_}Y&jYJ)93)@i1Vz+EkQF~H(^4oVKhT|e zu6S~R`JYQvnjvz6D+d)P%?Eu$r5UN9xYD7odF?1C%d#^?++NDE-KnDA;V${#!CiNY zH88>(;?{zIf0S~Y8~f!U-(T~P&+dQuK23fP=FcExCF!SvMcHhGY|<;nvv5LNtZc%l zvE|p(zKP6BVaWV*Cy2~H&xdat?DW%3IwM*upD=uEnHnwYK=KQghhhbBUN8@ZfC9({ z02_YAsA%(7eg`nA3Odv9wV{q;-N=D(Y8e#_et>+()(~K#>R~4-7$WDO5ynaBxYe}P zS|x#Kam5DGkYH_mwNv~$;*j81y|LJDTj?aO0wZNLt+n8&oqX3)AEBg<4(5fbd|LAJ zz4Ea6s2nzftI&lhw7vWTvWaR#LMf|urC#BLg zxUPtY+U6EeQi2&RJ9|yj_&UAWoQ41h8w$4%R}Z1Uqa9EXm!YFYT*~75N*9> z8&^5hpc3~F2SIEFGlSoU6Xatn9DcnkTnt4jua^7e0ENF{Y{>6FFFpQ&kLVt=E(8d~ zH-5q(^hb%XrEk_VBQUMyLJ(U<86;dbA&Z zUVx&arPR=BELm^F4^+}>4pj^BrG)!GbiBF%_6K}GtE?vMYG5&TJrjGiGCFDL1oxGK zl^y8J(#-~<*67PM@WbRl>udhhH=oekF|i!k3>=Lju<^Y#cyV(-HwY>bun%*dDk{ln^K&cV%7+A(6c@NM}PqZd=j;SSNBU zX}8_@%T!gYQAbih8-o5S8lPr|VhTDmmt!;rU(k@BWP*(;oa`_c>x4F9Kj|9^| zdYP3~U=NtZ=7~g+jLD)+zdRRoz^uyLd!(DSCHud#Oeb6z@U4@NPw+|C(SK3#;~Quy zhHdj+VF=dxfHVR!)O7o|0m%u}>=P;wHIkf?QiyU{)|eZVWXiAIA31gpkzXSsWA{)c z?Gy2xt@69w{)qj896$IUy3>$@kf9zZ7r*u;>@r+dfbksbQ{N7(vIn;&;`0jDm(Yuj zluPkd1{Dr~e914h902Q}0>8iy{^C0~()kPTb}k>>H<$n%O#4QUo4W;Jb>b z21u;lXkvlyEJ(8~$`GwIAI*A zgjzV^G@b0Crn|t2UC;nww@arEQ5UCzK>wE<0kl~csD-Of%$uZ`-9!X) z0P&wjR@mgIfgc<#)&bLVxcUUXNnZAU z4ZoZAh1NjmDtKeMkHmjK!FfVKN)6lQg2@Wj12b;tchF~nJm=bl6$d(C;LH~Gb{bb= zRjAo5i&NGX%F`-=zfU(cfia@y3U~x&IsTgI{Bsq*2efwVhdW^PsKl^xrK#xs$Ten67yi&Ms#KhD1ctnPl=z&l@BxzmyMQ^h*QTyO8FW1A?nmmmj<0{GYIp1W0crqg z#$l!sPwPo@+|&RGWr~+mVaVb95mOzou#)ZP6sW@bmrQkvQX=4J(qogsk{qx0^=3Va z8<~bnBge4$c(Uk=H($>6v-qe-Fk1ALXt>0}dBZwI4YBaUbxgsx7(?KP&zV$l7}g99 zqc<9J=P1tX%Th6deN0@UHatmU956TsJ60b$*LM*<2N&V>gXtoqCQ-Lt+$WI-+-pz> zZMs;HRUXKUDvu>&I3koF-|7hv23!uG_=NTm`{CDGiXjHvf$trGERLZ~LMudjYhnDJ z7rJG#9Q$vQGT8t9GrQ$-c@||s$nnLPRVVGOs5a!6fREzaxN{HauB9GevWU|xOeOb0$B1E; z@IimV9~~eWuA+#(nN+^B137C+WOv~)TOP7LejPprtPWd%LjZr+tlSZ_Kb+*0X)MqL zb~~$mc#TBrI({W)DMq{4#0uz&9{RH4I(&ZIym^f-2?2J@d1wfM&m?-4^dRA)H*%?@F+BZ+y#d+W?BelZrh$itJDj036(yQ1RnCV0Bros z3ksGav!%fNZ3+Cd)}p3iH)GcE^)D%KdwQ)yrsEf?)R@ch!89n4$)Z2pj+*m;CezEnR z$4B$lr-VewqFD!_K5VVlAFTCfO8s92>R+3weTmk3;66|4UmmFc zy-fWZSbwUkfBa<^7Azm`>ffRDE2RFBf%*q#>X)$oF|Pjkw_55c{#yTJssGwp8T>z= zsed%p>rO!q$~U%!3rW0kKZd*o6{ znJL)Hz7G$rrKN+K z!unYyuHq-OH7)GzWMXLIr!ualRAY1u1S`+$i>UL~dux!Fb#| z3@TObcSFhzDk}Xp1NE?f7oy(>eBCMiFxhvr!g3UjrepRLXl6wdigI!wb^T!De~ye) z#Y(gE^=Mj(pPG8s5mZU}wj(78?dbPOjxWzzwG-nJqwtC3;_L1iU#|U-+mOM1=(@i~ z$O(jwFW0>mO+3lJ?e6%pm~zk(Jb#oOCfH%UZ$Ik;_7ixDR>}0(x1ZMXz<$PHKXD)_ zXko7XzO|ntsEG-$WfjblB@LpH=ZTSmx*?vijKjQ1eP^5O*h}w|#`zEthP4)kwJvB_ zzqutygH&a}WT}4H{1*65E)okr^QueXC(;Kq4=fZPaq&U)F>7iv^Mkwbi+K1y!Ut2k zkM&S*Za~cesLAyWtvgTZ_P2HE-+vFkSpW0}*523EzO)&&_d{(N|3+*53aS4mFXJB{ zn5kdF`cEKrMEv7Xq5ALtTww1l^^<}6I|uvyzk!eD7FYktreOcewf;O5X&EyiQ2%?G z`ZuutM6I9kj|p0;KDcD=m+} zCg210BZcEMI#QS5j~M|4GE?~HaQtaE&88dkGs<7P%HLNQzii&Jm8e4gjG%0vke%)F z`+Ug?hXbN}EMWXTLt4)|8S%H|kS|R8MuDk0ldEO+07{t>%z6~&j$TWkk~!(QcRNb% zk5_z#@oF)!h+i*cCy+7eym<{_;nwD4(Z#1ArdQH{mXrPK@YzNArO|Z)>ResjfOs#! zcX)uwfq$S%A&SldbO~*C5Pn(DDgZ9wB@xv%fBoCL9Z2t<^#Xn-@m)UpLz)ENHss_| zk*WTdfSC*LBr`SG4v9iGipJ>~2^O~*f2tVKt(Y^Z;?s!eewq7ciSfkn{xd4;QF6_f#Lx1rOnLHKHP8EAeu9T+7h-RZ*-@%xN<^Y7gxs9BpS=}7Ka z5GFk_TOpLm1C=Q{rReL>Fs%=jMrUOjb(C|BhbV~o?|HBd<~C$( znRfhX&v+_!{`*pBY@U*J3are3j)w0M7@OVv2eT+-ankcK1FxXY`JtIt{<)(gy@uXR zx!jiVwA_}lK0Nf;@#n6JTKEHM0$$Z2sERCv36RWi3_M9jns)^zy?P?xgkZGc;w^&_e0o7I3A=8!lwC&K< zgcMCoB{p^2J1vCoET#L>h|05S~O+`Y3xwRAwFtt7K6=(1SN^T|kf#=$2({-pwQ`Gwi5)sj4A zdjMYS!CUzP#@2p&Prz}u6Iu%~%vlkYHd?{hVv}jXfmC0&+du13AdXT6xZu z-8pfvHzD8c-W2FT6G+1Uc+~Rk`Vq{YCt}W>cTyhmRF8U;E9nnjqO{+3mk4|uLQ5^+ zqBZ-YuvE);?U&Q$nEbAA#}O`xV|oFDH3=ypClgbEx`JT*Kl085u&%1k|LGDMmXc5@ z1j_Ps0z_pA%8~+=S1kI<6iG{w2&iGP1g#jMlu)XqreI_GFk;84!py|~pj1Vt<8+_} z)Ra~!;8MV)*wLws%Y7ELq600=*#GDI`Ls!9JTBZDLf-irf zH<1;)KOpl zyGB>+hh1S`+MeIlkg@CXh8DX%)X-|zH4SZCWk1^Oy1b#ot}7Zk?aB-zS24B2z=KoL zKm9Y$-o#ttr52Ory!273&kNb}{_xvsD0j+!)XDc#a&@9)6Ba`MtbiFt3S^QGTVz9c z*p__Q9v)UDAJ&A2^~r~+@US!auuBioloZI2bJ4ws+~DfmW5AKg5{XECu|FB$fOH50`FO_W=e0>C2UH8wwaKo;Ra~Qaf2D^6JmIC`kLjx8-n6XH zT=yc@)v9yV;s6+K4;ZFn3|np~$IuEr0J`AkIPWkF7hHYa2X5%N-muvjF!Y8T!;HWI zD=}_zz_2y`P3PYXo$HuKBkx)7E$`e46_Iz7b$)e%yqiPk-jH|R7CLX|8k4sp{+*{s z*8^PuCMR)GCOfy`3S&$R&ZLO~2L-s|^7->WFpnSeZZtMFSqbk)GA1NbT=xk`HiqBZ z=c>_ns?o-{(VHfOM&EhWd#=3+1-jgt^!KvA6i&8TooG|PDUpYs0YN*$!4$-KxGF{@ zf(7ANZC7#vxkfWzt%pk+I>XDZ@NyYfH^Ji>V4C7B#^8WuJ$F^n2ahQ;;#vowrGDd^ zEiNu?sF&sdQw9^f+|OyxR{!gL7t!bAQFgAv^6(h2S6WR>M1WzXUCHy+6(12dmZmW` zB*~{440j7tIB5($$0CKgJMD__o3+Au(TD!2X8f*;XHGc1)#)30!bV%me9quwEX3TxbEvh0^nfgbyBF#(JsdUriLY z2r^`L8&~Agen;W=gZ7~3>F9%k7cT7JfrM(OuIy0Jy%gpOwa}L!wiN_UE0{fX_RSu3 zu$%cvYWm1S<%O_3i6R`o;$k#4grN)0Ystns0Nx4Fw8xvGlv9cu;J=yXvb;g{>-k62#RardT!RG_1@Tm0YRhC2J3k}@_?xhiUS zbp=?6UM#yI?t28V00t}+R0$cfqp3RlK};-t&t!Q16d~0m$1j{r%Plg!TonB~JqD8+ z#fJJ(2hQ^IiyJ~NdUS580(u#>BE_fyUDC_$(bx{ycAi=QA zy>)=;@wbRrmE7)&l>kUdXc7hngQ=E`4OxEZ^|l~mc^hbzT7sn6Te_?ZSQ~rl>gI|D zj60$$j~G4PPY_p`i9U9fMpp@C%Lw}&ghPp^7-fN(34D+dFp&>x_6%d?k};#!Yp5}} z31|U;WHdAfv;WKywRf0Tc;*NWVPu0`zK_%Kh0XP1jAsUZ$K*& zg&!SOq2FOd;aqETc|*JK1h2L{CH@ob6z?|e8SlPW37D6Icb`NR#XF0~fw&WhL;m}j z0px)IvK6VoJbOO~^X@+RFS9^z3<>2U5 z&7-@p|Nq<4NQJh@RIJa4KlGd5Ll&0q0gT>v;uASUM94D@F6mlB^5OR z=Bhl*2M3r}2biry1);F_m4!n28HZE=eJ{nLI`_y#K|Q!sR9EVC7^%3PHY-ZSL99A{ zTnuB)|B2=Bk%6yhlC6H`dw$z*Bx12iS4iXa1g? zBb|W7oqDlNPOst@vnt`a*?rzGGrWEAlAjjq=~)#ARohXNYCzTaT(UM!nftp#N>Alg zlyjCOe7y(Ovq6{ryz%qe`?|U)+`VHAf!S=;(F*NsZsu70Mgpg2Guz>nbK(MXde(cD z3zt4hgLYyeO$sC$NTf8tS^|npI8UBC57~K15gSoe7rF9kNXEZ?}Q^~|ol@t!}o1mWl3B34SBhPZ* zqFo;dcLhbgQk2(?Q0x#&pwgncnh9`4wfULo%!5Wt`s&;lYGV1xYiswSW`)R$#NfQr z_{`Q)8y^dR{J>d=2oj$bhzHGel|UKNRN=pm1QxY@Elrk;(_B9)HJTDxiiaP{3hxAi zH3E(HDh*{$8m28suG(ez*BDiZjP#ba-=u4~K1csVGFe%OQ)D>@R1=xfwdw|~Z?Psv z9+%W0R)t2`p8tSLJio`(pk{3Zo8Fs*>mFznDw|jcq}Z9%@cqkSq0#VJ(CF$C{&5>3 zg(*G^toKzm`)8mc(fz8(KiA=vChxK8F10s;zn@hD7c-! zyCFEcJwj<{gzUH!hbZLA14`(Un?G#(?~dE=os{HnKTVUv`6=}f_gGQ>4!8PwHmafS~H3V(ZI*!~PTI)+WxL@u#(DnKCp`eogv#I*U(yW4ftv0|s z&u~!rQU__yZx}UnSQ-$lEEK!gZ6`5`Rb8Z|BsN69#<2=?6e80uLe=<`X;_t0*M zbBxZ}gKk#SPK;_=!j6e=S9F0owCEnzW^^UW4&&DsMQVz*g<|cYSQ}T1&$K`OyP;64 z6=Lc-6t+r`>r8tua+!-F4Wd5!2wt^F7Alen;Uc&*1%mu7pY1e?S!Co_x7C0wG5^ruCC{#t+DqCeC5!}m4y^ECZA znLi?=!n}n4UT$eq_-_oo5nAs_L1QT|tQoRX4BU1K@DqNDesN>54YtZ2w(<~JYgOa+ zqI=g^hMZkS43tOhWsjJd$=-FB4&v>dvhM~RfOnncx1X<4*#qWevdfq2ZI7)>sa=mB zAN)y$9)HQh3O)YOFevU(#xUPwb#9{pO<#B*OSk zfepU)9L9ZEj4Kbhpg$jg9$JhxsVWvqSC4YO5UiMMd#3j@%T%QItLCqJ?^vlj;`bdE z&u{>^UHSI2L?4fs0s;M#w#4t4WeO%!Z}aTu`zW5Q3IFf5DqfvrYxvJvrkd`hw~$5! zruiWIB$bzWffSU$-I&0p^sI?TZr|^$u7LlLL3efT3nc8geHXC7@akvoOlF*O*Z)Bx zv3Z^Pjc)!aQr)x3Z?3hQ@aFR5o4MSeEGPKoSi89Y@h1oSWujm9DZGD4iBQ=i*DSYm zsuLb0ovQsm{;)gx51#i4YvSkphH7%EK#i?}e##N@(59TKcI8xcM0IPWfT}^ll+Avn zwHG3zoGLP@&>-bhwJE2HFD_66`;|L$>tIKdS)P>TUtU3$6#bU(U6n+(1+LJ3i#kS4 zdH9X0sv6nH=)nt}c`+I@l(JwcU;0H#Rk~yws@klNW{@^0Tx!%LGao$5b- z;%-+GU`;(qfVGxZ6lH)aF}6kJkkhnUFt4HqunM-srTx$$CC;XmFzb7K&XHVt=Y@nr z))TC{Ln_s*vU@Pll|_2Pko_9mk|^n`2}yMd7;Sg3vX(6=?3aSsWzkYtPC zqrq(kCoGI!7v7lJ;LYanrZuVyZ`Ou71G;9JHWCooTee9;c4V^riJB1bOfUHcS!RI( ztg9&QiRIQQi`m=M0A2K13D3Hqgo19K@PF!0oOCSB#F;FhR%pf`q#1*-=N;^DxGB{= z?X{Cu*l=coPVUwD)rb9v3{+!+RUMmoOIG(tLvJ!*O6NG z8E%-L-TK3l+T`Ji0EHvQ&dFr5i_+cGR)>~2YxuhK_L}Ht)C}=mzT?)=aZC5KB`O}y z&pGuy-gAqcpVP`sbYnb&){Mzu^2O?C~r&B&@t{u)yU;heJfYr?lNLas9XwCg#v zvHD|vC@W>>H%(n*uUPtH9D7&s_b^CNwrbhx$^URsRkXUvK@pJzN?QO$WjtzQUysFN z))yIjRzQ130L*IPQVd`K>KEeJ4PM@5AxPBpjD&JUfPr*NYbL-zh*xLLtqCpot^)~< z6x27Rn?kn#< z6eA@=qKbM_kFJH`+i@hHZ{oR`;wJlR!MoJ~ebq4!cJl6Mzw=dJ+lS;d1Yf66i(JJ}U)Men(;NEt>P92U=Zv z2p-Gq>XQU9#O4y>9rW?;`MVlaC3g7S^SBsgl{K*6C{-b{M*u&~H?~Do_vHRzGv4;%i;|7e^{dN7z&7NI*p0dW zBqA$yZFVpJR@k3#pWMyh`x7L<%REaR5Pd#B_9oGs&$`7IGemz`&0sC`^PmV7(<9lrErG=r!@LX=XM+S8%# zB;J|mXG{21N?q<(sYEbIqM`0Z!!x|v7YWToO)C~`gY3&Pt2PKVt-}u0q@;mHN87AM zY0Yq7$`2_9n>FjA_mVy+NNQ^D<2E;CFv)jyko+qJ)8o6bBV#whzXb-X#bjUNZ&4RuSewe_~I)cy#99yIO41Ly(HN7OTa5zm{6m=sjxDhFY}$ z6t(!sJXedpP;sTMg}!=c6Aj-)F#N$balFPre5lyRzy+%f7p!*A6A>o`nA_eQS~Xgm zQNlpG-xid{EUI@|r-1@XHi|Hoq?rJu`zA{;UnKzY;MLyuX;p z@cq9`YLC@R?JRneiZCtxro3*eVL58+v<%S_1S#n-YyJGL;rRE{D9OJx{9E;J@bBTP zoPYi58FW_}1bJEMo!t)q@S-0ilRJDRh`@fQl@2@LfWm46x7CJ!$FsXeL|h$OU90Qp z`Ind8*vXiP2L>0M4ERs^V$!eVzD@LzbR^Oroj2k7^9LUvd4P4Vk5bT|7Rd%cx7qbB z56ZA09lFQd4S9z2b4QhFsWTXjOfc2&bvS@pc^dkCq)kws`!Y>O+_S-I$8NvckrnicySLeu3{|xOHUqi`O0h#nO2}Xo*b-|J3U8K#22|nX-6ub< z;bMyjzGS21fZ?LL#cL5L+c9Mv_peL?HQq-Zb+%GhY&OJ+cjmiF==-G}VeA9MddT#?nKLV(7rwrxwyY24y3_{7@zoMAc175>wx#|Sp6G4#g&%|+ zkyP`p5oJ*?bzb&h0*5)sG@-cIFV6VLBQF@QGA_lZ)O6&gG5L{u3MU$U@Y}mMJ9QxX z!sATF-pwCztW#S-YM8z!Dh&%JV7N*c_Jk!JBAvRb=vCAIu)Ay?k)h2D4FGoT2B#}4 zngRlyo#$!T?2#0XVBbS@yC(RkhZ?%n*&qU0DvU1k4xSX;bTNDI8%n6s7O2vO{JDML zXbzCgbPo`C^CMS<&C~o_?s4;KMNxV5tGkmnQ>?1bJ;m@OX*k1goBukV`LC2_H|jOJ zVMJ-PZ5iv3q^f8wN9SrL%g<3Z>l`hOyV(A<3au6%sr}m9>;SUvXE9gv;W&MukVN3P z=QebDaq=^?t#n>SblyGf#H_b1qn&BsF!xl)@WPzP_JLn>ND#jy@&4es@IYo}v08_0YNYi+g{{$79}qlwQ20f}V)9?! znbAnmAm2ax$D(lXS;VWOyU~9Wl>SKAUpA_-}0FPG)qq< zy#7nmTr(kku)eo??v%Aa=!`Il)}F=bCtgZgZTwWDJd&^JX=TaH7mZJU zWIL_FdzX3T=r?bq>Ig)6Tjg?9sV%MQ+rJC4Fp?>k-rc(c_rUi@TL^zq{uYi2!^ zUMlkqUHXMC(zJ@JJcE9(4!`qTH}Cto+W@D{U1gT|bWnI^7d`x@ksgxNwHlB`)U05Y zF@T%YDTdF2CR|6vy$%uCX4iN}=UqM;!>+W_(yZRQ&4lR?5ivr9@3iM(5QyRJvU@gg z=-N|sc*rAsu~E1icVPKyYa*V#v$!oRZV^EclyP*s?8fa@ES_NSv2!%#%j(|8F=}%q zg`$1*FkAh-osi_mB6@)&c;x7wO@FZdcd9|Y&y!Zb85@T<+P2f|VsT`Muqo5?M5!p! z$NSXBLiLdVqEA39xmWpbu(`<14X97xTxNZ99JI|0MQhmDnW;W0AeA;i{7#Wu4;T>7r;!w8MQ3wZ!c@uE5XNdyPL%CR&KU__SH& z;^+mKR8KbU10t$5;`3H#yx)ilo}5S+7J(os_vr-Vi$FVW`tYE^g`VxzomCG}xZ00q{eUuy8#4B{)ka<#NB64)mc*JO66~`3 z&?J_}RQvV7r_R&DvQ=2NX@J447WeqorX&SUiJ7HA&|Ic)=-m2LKa|jOvKm_a`&0~0 zH+Ce>TCGU77d|yC*}h*g?uf@Anm^O`vV8vRCFY$<-=}MyNMwL`vbmJ%ot{0&c-@TC!27TJXP9h52W2R>c6v;5G3; ztr(_=K$`nniyv;@?!H3xC2y)Kd2==P6&}gkfZn5j_8wtz4UH#U9}2T~VF`xvJ3@Jf zAk>fDAn#uRBr^d?u}yL=wncaT`sKlIlhG$W7;}x!oNHiKV0!yxDv_Cf10{A!C<49Gb#ZpSmVH@jytJc9{~KKVY` zfa1kU;cxPeT$;R;$oD*FA9PnbRyw-vj^PZBj9jxavC_Fu zTOvSga7wNf&ZkoTEyP9yKfx`)W!J4 zR5n6lyIKTW>>1qXEFG)EMl?5tK&u=NIITtChbj2UA7ToA$3#ut$0aldwzB*5o~G(1 zuS`(O9THRiY5et;-`NaQ9*K9+u%ho}Ts0#lt0L*vTVzKQp@kNE%-3{kiVPR>;y!#} zPWk(k%`W<{nLRr*FZ_FE{qD27e>FZc=1*#=OD%@h>C${--1-7OpUJVyZc&#`sJ;J| z@$-5}cdo*(5u&2>Qds9+awV*)w(-Sdn5D6wWs^5kE5Ko6TA3Y@l6 zn;}%~eQcWS-c`rm$CH=&7wj26D(3@PCtNY@FN6)nxfg5efFSzPnq9ls*{@gsE5F#6 zSrr|sUp4wQQNNTT6^+v`hx57Uc`CVfM~~kgR5v$9E7Kl7{eT*15(aa=7J&5!SP;eJ z=V0O>$z)%rEiZ03!2Xg=Hml(P$$R6{F-6bK;_*DSbj%}T*f4K8&5cB-V_wf}&YZKC z^B$SL&zN!H#^kC;X?^xibnK$)GJVIM>ELK)NI=3o=5u6#wn?|mf+DTS>NWzW_R_#9 z`cAgYaOHLl5*nGMQhd|~p*%jiXCf#pc{Zgm2@_GTD<;CONL!;lC&x@zbg4;-#6M_4 zki?DsP~>4hQamxH##7$EJ3{Rm;Tc2oR)IvLuA-O34Aht$vL|c&4X&w;2BpI7x)S&3 zUUAQL6=9H*u#$LqujykAISWNY(Z1a}?KLdrQ&?D7>=U|GA%zENyARke*(jp0*e3GB zgHFS+3qUg2TVZI8V{5(lhH!E55?H_We(*}JQvqB@? zYdHN$E&{^d(@G{_xx=pTMAu3Rp-T3WN^#*NiI`vS+H?At4Ay~({cyE`^U>8a938z< z%wBI-CZX*5P*6G4LiZ?K{=K0S7EXcKTjV~}Zwv2Dz4D4!ont}R$YbxRXYY}qZGk+| zP~@?fREi5H$;0}?rMK)keZ-O)`qn>jA|*KJs!`YMV%dkLOa2V{~Y zjrRNSo)a|s&WHBAGK59egsmnUgsrqy*vd5a=^i{++Lfhlt_iVbQAP!+paL@ADj2v8ZpCXU{)YpUomB^4!E#>VAhvPdVMIOM6eb0o_B- zO}Y+7e0xcyxNs5iv)KAQ_C3t!W$M_7te_9cnErZ~jMajM^TVHa$yhrSaP|`5tWK$9 z?6`R^fJ3B>#>N&tEmEDETW#~NBAD}Rh3%^o1KQx7nBSqR2rFJ91e@$0!L|1;4CiG} z8LKe^r#`N+7jY`ORiY795=~VJI()1HEjwncCx>~%q^0Q{fT)a3av~Q*gWjV=!yqI8 zX%pYA7OCj%Rx4x@fgmqk4x`Wgi{dP@cvOP8xCjQCZL^wdLJO>Z>K=*N!d3rFvbS-Q z5OKl*m7)tLm+L_E8Nvb?09BPSS1q9u*|k*MSvRmoNRzTFo8v>dRd!`w->z%IQ9b3+ zmI*!4R;g0NKG5Dn_E;(UgHo&-O783>mEyv6Rw)Ezoj2{V-1QNWF$@7EiIq^3Sgj4H z3U!H>NTP_qNJ5z3Di)}s(^8X^+&H1a3>ETW--l6tN{fBHhv|8&^65%Pp>RYC`UJpO zwZDV*YwOObspTm3o&MX-Vb_U5m=!%5qdEJt30lW)x33Csv-&dt`oDNPW9m8Mt$@wo zpDh~{l>D;eT*>=Hux$1FpK~Q&ITW$&C1kKVpj|}l{X6%V*nCN59_aiLfX6M^C-?WD z!1{_waEIUtiY<%TP8pG@Lsux&WLJd7t}8-pjqkI17y?~OK=t{@OK;qBcw=bCvU@(z z^8nk8g!@s4ESCP>>A6g|gIRQY2~t+41jy*Yg?kR4JR))ylA&5-Sz~ibkizbV8)c*< zY`NPQrR5eWQLN_k@o3lPvZ5`wBnN%D*FKk6L9qO%;lF=!5$E=5RLSUlWBrEcmmem@ zZN%R{N$2O+50tH1@@(3;d9Ry@Y`7u?8GBB|ZrAXg1E{_l{PfR6X>I(Yiyz|2Ca(Ht zZ#VP90|{?L(~I3N)_tft_Zkfp;<se+K+yoNKy?JY^^l|b6Y78-L5u> zBN(ia2&0m)TUFzaWyle=N#)gyOp1-P3yH7g15B+^C2Oq;wD6Ra10tvhp}|K@+~OvPHkaP6CtR`zp46 z`5Gah@2gz*Jl__d_~Hv>09;RoCNcT<6o>2kD%pd3W@X1e#rL0|#>+7tI9^=~r1N`f zc>5ITi#7UQh7hPd2$&s^+Jnxi+kU!~kjaY$n(|(ZE6G+*psQKhsOODDFU;bDS3V7< zQd<3@S47Mpg~Nsg{BjI5c&GmsL(x~8MG{FU)hvd?mJ5is%wYb%)LyUeN`})Z(>QB1KY&Q|;46WZrS}bCcPJpMEj_KW3vz@hf z&1g83++sU3I~)c=y++ydR4wQD9BOX;Q0eZ~>Uv0!7?@stw46SsZB};T&A*-xQ?!)A zRCm3U6L2+!%CBaD(I$Dq@&rmO*(d_(qi-=Xa9qeKr$jX24KNd*{|z@YyC2?he$P`g zU-T^#XIQQg7OJVnk;4A*Y7H;nR`wCL@%g%BsdQ#K9W&bq4*_`)J ze_}|2e=-$8gk8(Tl|O%l5Pkim3lZQmFGsQK!Y1I$#Qw&#~HX`%pmb4?5;C@ zgtQ>UJECvx|Nk*pjcDlTU`}nnoa6^I!S3i?N5o)8YPRqqEgt`YmC`=YL-sX2{{wt(u=vdw-aUT>rD` zS$xNh2P+!*HUfaKwqjR|7T0;_`q$m~i0W8=*UjQfZ~U%1zo$O@tUtde6@J!qPy6j= z4_~VF4Y)f023+*xzrj|Q;Ik9iZ&7W0k#Dkck+9XfWrjb1CDK! z%G(Oq$Nr56LeQa})u?(F!L4TqF7XnUK!%ZR!t|ZI)}9B;!*E zH2z9eye9$;`Qqm3OUIr|xmi=6v|=S8$B;w95v5)$l-olnhJ!MDFOi- zg&ZiVf+#|cE>MC8qDcrj45&Ol9*!YI-Mhx4$DWqB0d4>{U75qV}2|& zS;k*)W&oSGKo)uyn2)KwpIDuMEBeDvJ@jg{7t%HZrQL!NfrkkS2`3o3%LJa%QF!J- z2q=Ugq!f=r5R$}ZE&j^R4sXxbPH$SzF(_w4*!}d881E`1EFEWR+t4e6R=@5QC%g^9{ zv(>-)HaWOoec>ggCz)Ub@Jhgres^^RNCTIE)M8l)0w@5foE1~vX?dct+YgZRrJ~~> zv!kD~)z{Of&L_Hb=S#cu#ZL1=AB9M!Vg!CR@B&*+PeY$3HQuaZ^_uVKV7{XhFJBa| zB3QikJk+?z_VFHbjHX$c{9zjw=V}Tv743g*xjfxpkf(xW@?Ww~o83N5k&rEUcD0y9 zaJx!Z?2}!Qwzc-04LrJHm)f|xIchhyr42PbbXPUNFEOD>!u|~4_KHxCV4!TCLa6zPZW=tD8gWAFCse&ZqR(2?1}-sWTS8~y8;AZ zmaIPaZeuEQ?|A^jHsVHx-pgArqUFb&Lk=77!r6f0b1FzX+#Q7*;n+l>BT!$=dbpD<3 z-clP~xw^|;8o+R)O^L*u7Y4Bc*NTZ3JI5peql-ULWW1t#ESFAlN9DTQ+QG#uI1E%`e#>Gl> zSs=*>#tg|=pdx0o@@Ag5G-_tetcZjai(#82kIzFSBoPBS47#Wn)l(9*IvD^m(Vp$X z0N4Oq76;cW{y^$*IJ6awje!@(AB^uSCh6SwCe=3g%{b?V=IK!rt5B^@h^F%Se~_$3 zBr{=9mdL)Do&(4N1U}tqchY6z(Rj-Y^r_iW{ojlBXVzq{c{;Lz$l%@3K2XmG4B!VK z+0A7Bq9?c1D?4o8%r)z)9{bFhnQ{86wgX**)YNS#1v+s*s`i!ef6b%T$2CtH!Wkqli~nJ>vPx9U;^>*)8M-n_yB0WCJ*(8wo25Y(=>=q zEizgxOBq6(_5dqUO!T|O4l7_@=4dwQ7dm2ro0{(4*qVS5(p9ZqE4?M^B5T3*y9!J*ibqB~lNH?=b-u5H; z2UA-q3{*}7dBz-d2cIOWVGUSy-jt~Gz#w(DS2=H$dkE25g&N`LIl~YE zGtCx4K9@)aa!i;-Z@JQ;N0b$p(_XWFrNwBttvGUqdE4;uEGT zp5+<*v0x;xwZ<;$X2dfyBq0_pm$>K!r4muBMij0y-ITD|`1+-Sti?K+yt;n=m(!;r z4}}15qM*)6XP~&C_8GX14GQ{1O+i6_@l<66CDe%n0m0gy$>L|D8{draOnL_6k6^det3fm=Tcn1rLB$UPl-gXFmh--mP za0emysX!bvaz?+KFRx4`vvi!#zcoRuq~L|$Wxzb(9MFy9tyOo`q5MioP`Xi0mK)B|@)(4y} zuHq4+Y&S=e2TSy{8bEb_fFRLdK>)G_?%bmIou7Z>Sd9A`#<4EUm< zLwR(9ypMGcV$eJ=dHkJ8GDwZ;&8m51@|#j^o!RsAnM}PF=Hpg)$^c^1yzi?F~4slgOVu@Q2KoGFi+{d{APW-ZLlP&Q+c0cSrbb4YcSX z=FSQ-E>uAgPKC_=YzWwT9$Q>(nq)!G#r&)wxHqY z^wQ^Pe(d(wiO|HbZ{hf&8T36(r8(_>rz9b};FOcP-eeyJKH4T|j}}Z96ky6ue%~0$ zRzM&-ZSl7yUd51V?V*`gMYkrq1{MXVC3*(K+Zb7EV4P*%Yw5Vml3jv@)w(Mv0X5rH z7it>K6O2K~-c#@Slh!;%)m?$%`F{O{wtHuKi(z=ch(!E1WeNLqbQ3+%h2Tc7zjW7b z%Vl!?#4^;$vehVRt3l1{InHWAmBjXi^|wH?+7$z&TTf6>TWK&^vHm_*zx!vmbnm)F zX>}7I@+Joi-1@h_U9tTM)C54aJ~VWL)<=x$ckdn+yI}w407bp1 z*%UFV-@4V37O zJLftw{C}A2e{b-QK`6%m>dN@npdN;5^mb9yDBZoY8eubFr~VJsFmG;`OGzstxOb;|5^@l5WL;lX7M4bjTv zfC>j_A!-;<5z=T@4tqubWW%ThgnyXj4q47xz3pIWcR@o#&l`NERl-R}X+=PI@cBcG zg*86C^X--WWo|6wGyNq5nJ*)%KhUe$Xe+G1ZoICBD_$1xmCcU%M7JW;Ku@4K+d;TOLq$hycbtfCwaj66z!S`4^zyu`d?rcg8nILBAvROVE#5;L7x4`hH~e zJ0+%{)3mnkEeDV@$aHQ@)g$s$WozWfsal|LC9Q->O_EEl^}4z)s#CHcGQHQ;WPCd} zs%C1XSfTq*^T~2IVJxbPFg|Ttj(`|p{LKa@W*XKbhhZs=QD$DvXsC7tDQ_$S*(yhi z`n75G>fAgA=Ur!{<&qDTva*NDlHw|Mdqtw#g~N5LkjKzN2Uxnyn<3=~@xoK_K=AF- z9kUM(S2+K46I7Diw=dmCb2p8wW7XcrH`vl7$nBg@^rn1EHlpm4$u69zqkd{5oRyVR zR))ZN=v0TjvBLR0AE$<{n@{)AwKtLlaSeY6;jZA)C;h`}%~wRKKiIFPGJ|7no2nDH zXSx^h;TJPtmOp!lK-Kdli{wylQQ(_5V4M$B(SCj2_9CGph|B})U1aKG`$bQ|ej#=n z8-x9#3wU?LLB=oj2Rqm_Uwi*)^Lnl`g)2PFm~l$Qki{hz)=|`yt5CG|zJ-%8ZhVQ? zu?S`FTlgxT9#{O7W)EhL3Gwi<-47Sk^I*v9bSg7?jzvKwi++uo{xag)*;@qe{R_u} znh8|_wcdr}gN05$!)kL#T#P`$YAY>f4-nA$a-R* z1J6IRAFEY@v6F?82Jd>#zm*U+%`B5O0%8g)A%le;X^g=RDqO=TF|_ z2ZP|sdA@W^*G*%!z)UF1g5c79zV()|Y11!MFhxIAxo@zdr9Kw;`6irdY75$h##?Fp zJ%9TSdS`qVO$qHcsr^=#v$C^E_6_5Hc+J3R=~$q@kH_nuA*7u-E;HtdOwax*-{i|* ztwbPm#)mEaxVw<8k)8bYNU|RM8K8I=WrXEhKs?%j{mT6vmIZ|N zBkMxnsVk-wD@N7z^De21F8sXH$&Fi#hplik=QI=&9BLqeX%Q0j0g1vh-`6yq1#Mz_ zp|%Vd@CxJh7B#*x2K_;-4#XZRLyT$s>UVDeu|=PA#4>`QLm5H)&LbX)Coi=8(7oUjXdDC@+sn`(#I4?P1^fB`bnRav-?{LaZ-SI zZ`?@sU1OOFff6Z`Kh_rJFRae3q&*ainU2kB85(WTl}V9pT;*Hws4Ww;b(>+$Qoc>~ zZt^WZd{4-?%=Ap)AoLc}Dm*k`qCTYOWlufh7b3tKN0i4>^-{k!J z`fTK8>uWQ^_$4>H(h1lJ`)%L19ol~9<0b=eRSfA`eq^#B&R4>A*{T5hzpVPu5OJFN+g$g;B<8kpey$1c%X;Rr;xQV@NcO38UCEXIPb#EHvn}nk9l}Am$ljP-Ge5Mf-%Wc<5D`P$10P ztWCG)f-)8w>kBAd$b%5^-pYfYLm%u+0(u6CKp%bY9drlz8fl*FI?2)=AZ4NvZFp-e z7y9OHQB0D&Nyx`U{LC=^U9_;o-5AKB`N6 zL7FtHQkVNyUZf;H%RD~3orn(k*$I&pAMVhV_|UGzhmso;mp)$DkA5q`h)HH8At+yY ze_l|I=ujE#he=)bGL@axa76T;+tf)ovJ#;*#k0?}oFsi*8EUC3#g+ZK_WXOM=P9`w zgJ{V{0ou30AQ|AN{aCGnn1EC??mso97W@-EI9G#tN%%8WRhRMmZMw$_iv z{N^=`Qd-1-j4U~UQJf!DzP^~xU%)c8${BWiT_cNV!4iR`*)i6y()vZPNc0>mm|87P zlS-^E*2e&vaLG3_wSZV?{5{a)pnxnZVLYXY@Nn*(zs6Ps%M*dAQWa6%ys~ z4}-}-2hC!4Mw31|I0+cM4n~5}5dduZ1ru~^%3K-7FOUJE6=*mZ`3PapC$EajTe$Rz zUo}$Fx`Hl>H-1)e;WSKb>C8mepPlpo1tk@?*nmPHS2z+=A1BV_E@$Tt-}lYur`t(h zgXgCY7+wWK>#`UdzM=JVMnXRe+Sp>+=&2E|lj5i8N{lN+n6k`drXaMEGYzC_g3udSPrgx+TbRgk}io%P6ithun#i2J~WWYn%M{w zFzDVg%2U;K4>SrJHV4!ay4Mliw^VIcMjzFf>!~nh=-6FUbU1a2KH6gPboOefEsX7A>cF z?wBHuza6DKvi)0-z>EtdNJA3S-RAg5i~Z=HcI53Jw^8dU5)B=nVqZwmK6U%i@@`cG z1@Hi)b$&Y^|JiN3mE!Edcvo1QMd;zg$=6%5uW*KoHU9b$?O3xr7 z&m`0Qf~iJlc~xgX41p+FF+J5YDKDN{nUdJY+=JyYXG~jNoxX3BZ5Up@f@SWW_KW4B zpPe84w<1-x`j0IaRYezkA~9Foneo{*HW5liyHqYrt%XM}vYJ9gpF3fs^uIy$KL)EeIQ=J-H#Q>rUvSzU(SM=xYgz^!f0@){!_CTB zYNt$HK6CIh9gaDMZxkc1=pRolhxG&4pQLgI{apA#;KNL4{|L4pNP{`SU?|YXDS6O@ zp|*Vsj0y#An~ZY2KV|w_dGTmg_^!0;iCRJhWVI1|s;l)ux2Wtmr3_>nC+03LhdV|? z_GRI`J*My14d~N9uqPyT`+H_N(7CG%@B&%AC|f7W)|piiJsM&9Sq=8b-FVLdENt>z zFKaTrzU9eNxnfi+Ue#iaD%Ej*dQWRjQE~<~O5Qh?zIXfl3_1g(@OwU71=2Rv^T@hM z)~lmR-*r0aLt{C1fZVo@TdAP=`;$T-bdu(1Tg2p!%rw1ZP5mQkbp5vR?BiK@Dqqzb zv)=Z+@#QhvcKMjsm$`K-HCdJ|2#R{|=Im=VZ7oKpH}Lr%N+6jiN#g6zgt6HpkG=Yx zRnZ@}vmdm)k-iP<1Wj}iiC2AkUlV=o4MEC`f4LFuubA!r3l*G?6hj|`I>tdd(h`Dy zhN|Ksa4I|zpEFad*Im)470tJ1dMDn;&*%$VpWAJTd~XClXq%pBAtgn$?5PK1JjS&A z#iPl4V|iR%c5iGBM45al4H^7)1`$=~h*BvRq27r{sh{ce(^u5dL8ToXH(W;=-A|qT ztIG|8sYQMKn1{^YZvAn<=CFXxSkIX(fjNwiH13E|F?N{fiiGvi@0-fhpZN9Wk@z=@ zGs`s%uIz6lPK_6$6OF{RB5|tT9_V}-rFu?WHml)4`v9AA&h-9Jy+1I1e<1H`!+Vz5 zpmg+R#0u6NptMBKG*t#BtHyB#rlH6F!WgSu#r;=kU7e(=MpA_$dxC7WL0!MUfY_%X z7~z4#ybmx<=nFuZ+|*yI@)HVquhoL42Dur0i>B*;t;;u3Js*(;66_G83G+<#GEhkV zEVZ<2Ea}A;FenBn(qz1VXI86HH`!q-#M@(~ywxWV2xoeaJW&_nCUzsGaaqxK`@5*I zKQ;JL6g9SHt;WCUQlSQA56PGPhL;@}q^zG`pjN>pnsk{5FIeJNum`iHL3|q?ezVLOyS7v>wyx#j+7f$#;+P?nsp`Ily&Xi znZmX%DcIIUhgP<&vaHk}+O(p-M-|ytA|vSj2nTqWZT-PD*w&T5tY}*|tV>Zi`th8+ zX+7zLm{!%X2Xy=`h#xk_P(ZFGU96f+xY9Cd?cxw2hxS=Ogtlm(5M>~y787Yi!vKfd zFda#?1sdhp7;=G!AI4__5u1k$fe7cziq8cr$0@rqge%Ha2wS>i&N zV^2%>US9led;RF}djh5)zpb(l6=Ou>m1Uka<{1bN2oE(nn~4oUc6XCj15U7vyekdj z2`s^DmiWe020xDAYWBv^rGW8I<_D!{QjCH1EsrLtNiDN1l8#kZI`yb;a}9;iVyGB2 z`rzxzh=TtaQGD>fi$3jpMxWWQ-2?i(66=T8&K4k+h%ngt;W5`p1YXJY!wp+B!u)?> z{qUya0$+23tRL3i*6sRFTst3)B|gBk7Ox>ZgYL=ufpo0t$#guY?)N%-deEIIv=u=TVFyX zeO^n5Ivh?**c$w0vf&CZ?NB7%_lB;SQc9^Srj)E})}aL2ET-dIW@TqJ zoW=PQyoOBhA)GwO6m4W}X^IcKnbxG3TGzRt_J+B6L8%WKZc$0{Q*@utuAxSp@v21aBOzOKeq8hs|PL7oj-6r(JKMF)2<;E2--T( zz8ou%67uP$pIu0Vu9$%zeI6e#8S} z+0gkBB7h6u@*r#v1z}rb9G`^{8pn%-%xGUOTR#3P$k)ZQhLA6pr_ej(G*O4IChEwS zR3RZ>zj%+h^|Hy=F;aWuj!7PJ9?O%7h39H;p0cf8dHNK|lHAVGiqa-y{Tidp(tSKz zSFhG9U3YQAg_$ugW_p-fUEw9j67}q`rTbV4b(^?f0;7lzf5`YU+%Ah>A=L8Gr=J=OX9GxX}hkmGx23&TBPi}Z?)?R z`;3~7fo@khOiwEcXFpov9~u2Hk7xE7W7KJmF6rNXWEqL?_hPbg@;q&75`E0rHGqcw z5okIF!$9F)pvd1Ds63YyoRwvLC3(#jgx-v_6Pt+D6HfN$u3iTLhL~UHtJgAWdO}E#|74_XTBH5#Y|SG zY?R!Xo2*5;m01&d?G&26lsDR8Ft=fmY}O3TINdyJ%wwG5D%ey;pBnMhBuby#n;t)- zheNhT3CoaDSeozAedKULS(@+h!Ade(ET5s>x82=DaT zx^&)hjz*J4CB5G~e6-SgVI}Ex``VJXuZO$*y8XP@Low{DjFHBAGFl4Z+@3CXqlPV# z5tA*F5tDtD(UX0ZW-Hw8(EDNRsticEflb=i8_#k7ZKY&{WM8dm?5ny~28P>D2TdkL zpvbNYM4dA!kd$8}RNTIP=7$yKR~-nalvNnczB)K}ducG1t(?{4_Ep1#P8rt^8{{=K zm`6clgwE*3M}3T-SE6s7U6%*H_E3Ofx!Zh@j^B%Bv9;CU#bD;W!3_P)VgpST?Zsn+ z5|MO69geGpPHIwgi;aDwKv}Y}iA%+)!b%Bs(Q)-7mrncSPaSX24C+#gJn7)7p?r(38aAp*)eXM? z?w|CGmz{cP)%x@VZm3i|`?u7Z_X)sG{PG3DhEl=uksj zcqyUSVTGKeQl_1Dzcl2AAKVcAHs}&ziXVY0G#$OUo_^D&&Vp z3vmmA8a{SHPxgj3yHtWUg<1#?N>XSsqjidu>TOO{Q>=}Z63UeH*`obLH&1q1B@|I5 zsGrh6w^0M#(ws8oeYWJTNm|l`eEtT0{~7YLTS46!*d-!V5Ixu4=+$3$!!`9rZ zG^5)zX8SCz&9dKAGiM_oYGY!brVVRnxD`CP*11_rCfjrdHK^v$$SN(PLrrL<<@wwo z#x8nkLzkeb3Awy&VMMO>0Iam-K_^#zMr~~EaQv|SK_kjhMLn7vkxI1ZXM>Pbwm)b&nUxFW_uGPUsp#&3 zQv9LiWnhZ=%qZG_IL_GAjQhtCYcg|^6B zZ-Bj1rn=q1{^MIm40fHG_VAzlr8~7hfOZn`eKJ2a4$%m75XH8|Yn*ATi`LjdIw>lXLejWW2t$53x$hX7a{FjB_=>Pq5_Z+yzKON>P2TwKPgX6PTfDLARI7z*@k!Uo zZ@gE>Y$zWnJMsP-_1oeWOW!j)6f(LvZpv&K;Y*PTh@J}+GP{*l^^Cj%x1-D%E1d_5 znmJBFDpsQ|(X&~64dUk^Svx@< zdF^B3j*+xNiJtGqg|2zbJ{t1c?`o=p!|0ypSQ+*Z-)>Kx)3a!1_oE_AolgbI`pYgx z@7V0YwUMq#fMGl>nM`nYZ%jMGquJvFzPaNH=3et3;rnrKRS>jfRNs$d@@rMB6m9w7 zUq6T@g0ggI6yS46J|7fiRyx3#YZPQb8bjMQ;H6WpwF%Q~Rs~i{_ps#rAG6p;qJvp{a+;Bgs+@eZp zxp`+S{)F#mUE=en3LTaFW4L9*l~LGQdmb`gh(*1k80NN!n z2)aZ85_eha@kU^q7%QHcl}y^11}>8_5eN%vD|dhiu;YuHXr(GTlT_L=G0muCtNyfv zp}^SfN2vRjXuDa1K*%tQ>%uw=k!dU;vKASXEDl7qRb?VvNGdAqvCqA=Fz1z+Uwu+a zxM$~IAimo~Qv{(^R57_Vk>N?Fp6C<=lc@M@zaAn`o9yc3kG}g!Nk@S=RtT9iX+td3 zLa;~i!}vghcoIL%ha6KWF5tWKf zm1HAjzNRrcp3LzwacFiI1P9HUnoZ)Dq$3tiq+Yi?v%#ZTQjjSlDFk!I-v|q#$;_<~lsE6|X1w!117lw$TgwvCQfKta8 zrA%t&9Fc^2nyHF<80wXgs7a`&^{33RultUh45-5-P;A&?sL?Op&84cYA5l#aX1S>a zZ<;sT`5%)1)t7V!WH{%f{FdMD{>(@kVV~Q*N_c~gWX~GYr>M`Qd^cPRs@sY zg#1ev#54UfOB2U<`q2i_!+p+nl~li02wfPkLP40hH=RJZ{ds&)Q1Gq1U#;?} zgP#hl^BrVvfD}I>|QRpZOHWS9nQ=W|C=U5zSEcbOZ z&d|$NfAj61q?$LSjWV%n$L9_Ob)!VTbrcpx;UytQ;rz2cdl{Ci5Uu?SN?2r@gA(4u zV5>~R_CyKod<%A(;Wwf;JnsB3YQYatkNKUji4buNq#lHzoXAi|o>pH$PGv=KDa05B zJ08t?v9eZLUa02*&Wv?aLM-`>Tz>ykL|O8z%gep)v5{Y+T})u$cK8FZ$gj(lXEYl9 zY%tXVb|v<_OHbfnzg@i{_MhGE+KIO-T|U%A7&u}ZVkwPRSS@;#nIMLkxmR> zwC2qfL~;nDw{eqW(qT3>HhP0lC~x{oL`v(gFTF5?K(YVi!K5_h&0_wCg5k#@KHW3(`N|y2byOIMh(B9g|L=7ExPIT;&>#3?SNJ1) zRpv+F&nA1m#xkbO8+GYHGNfDK^$sHG2k955!<%76zsvYG-~~0Wrq7+fWs?rJ+Gc- z|93e5FLwSr2k!N_0R3DhG61iPsW{Yc*APC#<}~->u2OEfHD*gQ`gtsm-{v0wHKMOQ zzmE&;;K8bTAO zwPd4+xZ&gh?aw9Gs!y%fNTKV@!bYEeu8d>3>nid|`nk>d^9JWnzq-SI8V%u(^Cf(+ z5B{vS_wiY;z6D5(Y2mqRp>Y)D@RG5T#Hkx0bdsuwja_yP;Un5GP50;|=u`@w=JS5! zp;N2qYfNs_uY$rP$1l6qyTZ62x`~JxV6lOST~PW!ktG}Zd0ct?5*_>dGWz?}V78PA z3IBDR)8D}u+JBikw2A5&fG}$qlb?V^8Xm(e?nQ^*>hd*Of2H-okxiMwI00aCXu#D) zSDaaaQ%x@ah-=v}>N-A{q_=J6nBs`S;ux40=n+rW<>ftk@OMd4=k6^b@Slag_jmsp z==<3c`i?zgbo8C{jXk38r8Il&Y@ylO--OMoNaO;9@N`%wZQGx!D-Tp z=!?$=gpIzrDMQUJ#OITZjDNF>5qAFF%)(2VL9V3cfq%UrD{Q3v+q!)O{QEmWRxW=? zh%bD)3_>!-j^i6Hjq#A5Nlg5#K5c}kOp&m0ye0X0(Sr{r4c*0YGSHghe6Q*GRt|7h0_o`?DT*nRi9XO6!AVMh~Z8p24X zZrsTvgJ^#ePu45YrC1j&E99{x_#@>>?Flrrkj4TGcc+Ee87EelK^;&7R1*qH)e;I~ zRcTP?7Tm+_^Wi%$m|zW z-;S_HC_#VUPyyp1?APP>C-r@J|1%|qzq0?4euweVRj%L09^!9f*Kp$_#>cCLRgsq} z9w)6bthG1LW=3C~RIGlzW1Li-`}a_)o%5fv)nAz&hDn^iBOasmVVvZx6;14GvJ7#u zZ-^%XcZRX%zfP_|--1LTJvROha)ek|1Q;Z$S^cIl zv!)^pk+#CtlI@{jueaB>F!mRuJ4u zya?<2U;P({x=m2;!TSDl&m{RGgzHDRzW+bZeq1|k^!7sv5S)2D4JP@XazX_*?4A9n z`Rbn9kKdB%)K}4dobt0W?v2=fRL)P09l0!Gs|>82k}TWh?kgHoNkCI>F)7xhiYBiZ zRi!p|Z)^!egpY0uz!HDnJaqh7G`_qqTvIpN;Du}kvD!3+AsNX8;0LUfOq!VG>iMOB*Cf;ApI^;-7KbdHKNzCm6<>CmqC)sIchg}Q z-w~41gjM&mT`t<@tJP6`^z^@#kuLX(I4T)U{6R+=tAX|Y#aQR#kFOk80rN^euMmGc zc&{Ut5yUMch(Go#LT9-6!}04EyyfG2qou_MW{JW~lLc91d|HynI}K9{`0|6CO~;N9 z%i!6!d}(wjI@?~ewVZ7ymKj^eZ)Eu^2))I{A&9IVgo(LhMu*<6FFJZHBIii*S290N zVm5UC%4p;hZ4IcMU(B_%Mb)C%%BC15vV`F!uwMc559KO_9g&Nt7yZd7ePsF-xt zXprV%{#z>vV9E^#EN-ggxuYky?A*P*FP;~Oufz8Lz6$+6Qi+Vi^*?9O{%ddBBl*32 z5c%B~qdcOBA*konRil*OWj`w7@R0degVDDM;B5|SUIqGIT?vB%ea&N-pMcYGWEMU5 z!@>Ald)sKom&|G4)$&#^FL>X5^$1B@(4VcJAD!`wUI!i$;2K{r7)F0I{}J*7R%#Ho z%mJnyytPCxByir)}KgbFdmN!cl`?IME3_@O% z*bYDO0J4x!*L*>Xep%>EY!hZsSpEpf?jb$%@Xv{X#rZFB{6SP5!X{={EsW|d&SfAg z?8RL>E01|>mNh!_`$=}&u(dF^$@pSQ9I3<>tN8lAhyN$OEc~A|4F8XM`T75kd&z$i zwEBWEi4zP86Wr06PwqAUH+%lU+s2|#gMUBGbdzX*z$iHM{sdEhQ#}kqI~6e11v_AG zSL$J`wP9@``t5t1R$Y2YUsi|}jD9N|<`z*wQ*nPd+#Z0@?N1m4$Su}?*rG6Vgh1MO z=j8(u1H<6O)@;HQErzJDN1-#B(&Psj6|7vmH^Bm-#^|0Y6{Oq@T&sF0OKG~e-`Qdu z4Ff(mVX@T;gF&pJQ_~9he$#6_;z&bGigBdm=G2@ z$CE=-v%^G=HNwO($PZm69$tZRDOp_`r9r-t4o$n0SE_$Pv9*MMJ_Q`fTO`DmJPx zRH+I1M8yu5{9wN9Sr%;;JT4+1Jgx~p4m0U-3*wqgC|dP*#a2XO8+%+_c037jS3{Rz zLuQTRaXN7YnT>wplf}P|=zNIL#*a+`tRQ;%`0@5bD-g>hFRkLX_Gf$E3i0Ee zce!|>-XohI`1RvST!)(0Z2P8Y86UeGLL>?J%mW2Mv>?!gv#l%$ zWd12cfd}7N!GtRQ1+%c4XHtmfIJ$vw@w$8ksZ8t&IPI|{&q{(oH=-9-jswNNu)g#r z=bv@ob8kbJ2nYY{S`xo1tDv9v=1uq>#fpMs!~dD$D=$_~9!;evtiZA%Vt3-E`fCei;d_zUtc*=*G%10%vw5p2+t62}Ycw z5V&Z2*qv)SGR*pmg#z?hAD#NGB*K7JpL>nXb-rx)y>1ZvUaA`%e*5nceiwan5d5S+ zf8qTNQ{Ukh0v}Ma76Ko5X!#ZKF#j*Gzrj8(>yjBS>`HJ_VKDHS+6oLLT98-bPuXDL zycMplCiq}1YZDI!V#{OiN~SVGJX1axh&neUnOow$a>MU$2>z>j^!`f+d9O0TUSl&x zMiTQ|{?sOuVnZ5Mu-qDjVJGgoU-j7(YYRIhW5!mXkUhUZ8F4zM2tV0GfvV`(14l%2 z#RoRY+7f;L4i_>EEISdL-nJz{Q3#aoqFIJrVnFEvR${W?z=wyT^y-3J%1;ux{rIg~ z@7~xog7rTr+ON_?bfTeAlyOYa4v#`+q2SfP)rq>sgGIa$nV>W=H=if8Aiud@Uu%l# zsP*Tq2aJf6WA!0zq&e#SL|$822+Xf>Ze9FQzG|Eph zTmInrm8g-DN?DAvC*#vgY@hKSk5BLXMj5%1<5Q>4*M!Olzt7ANFbo0AI&ot{#Eto6 zf*XCs0~tES=u?RFiDaS^Sa}_hH?EgFG;4p)$6a0^9b@rW@!CSvJ|DI3F8=^{^trE> zV|`HB;v-u23gS;HDe_T*|9+#!zp#IIH28mQg!s#UZ}R!aAG`hbDD_^S!Dsxj+R%tc zdm#y#plq`}_XBEWZMJbgi*ZV1*KlAhmZA_B_wyz>52^JCZ>4zOx;^9FCY86jH zay4RN{a~}vD^&@h6d3twf9`jLdlOdfz2gv!4_KvwPuXVoYl2w}DdC9p33^`4Qgh{r z!RzA_DsXu30`%79?(zGrci-3@&!?b`u{DofVPIJ}?wS>hW^%Lo26g|1!+N6+JXj_* zg|&>t`6Q1NCIlrvVSekQE2ys~lhRHLS{nzA!4a4ji z0NWgWWZiJgwo@>NiT~VwzH<3VCl!br59^|u@fE1KM^3hopY+FN$*?5WuC$FZhsjTx zy0(mvrTIy(9DT@vjD;^xpNNH|GAFy2^!ffr_n1D1-9H3++K__{~!M& zza{%IAc|lvTDW@nYYN`4$5;vX4~2Ph({<)4RbA(;59o@i-&a@H>X@)4roPtpKWzo- zGGY&E?=jb58L7=97>l9e6>FO{Zj0J)b6PXe;dA7%IJO9ZE&*0)JM_>NKDy&y%h*t2 z+;bl&37$iIv`~3@bsBs4SE{3{KTcCUM>apNZ!}Mw%B6eSoJpUo(r3>1&Gb|s$`hH} zX$SHnI!uWjRnc>Y>-)>&8@i_*mnhoshEQ}0Kce6MKt+`lQbSl*w}JR?>zbXra|=pU1r9Y0l!s?U8$fTtZqWQI9c&iyru}Yimm8flkd@XjKC#ZbFKiH$*Qy{9N$K z(E(o#TDbkzS@e}Yf9mlKH~j6)o`#0)pGd+L|2FvE2Yiel=hHlO8e{ktn-Hs8D9;Q& zpSwSbVO%(Nu}Qkn%s0t;$EqA!p>hD9iH^Hv_ijE`e>DGbc#@j!=ELn#OCC(MiNb4U z^U{AVGaGh(u%KsrCirV_y&g6RhunMl5rb}5ga2aShdlEk3bpEE_-6~QMxZ{>pl%d- zj}?TCdGgjpQ@RY+T3|g;u+{@>YD0AQ`aDV3t&T~0hk$A{lHP43{d+%ud2jl^v~vFq zh5n}w+y94(3+CIhN4k-9L;F zd23wPhz4l><)w3zq?_ru7RFygKqw74_T zWCmf~we%Dn2Tn@|kcMeqA>Wc!@13ODxLDQhJzSNMb^C6OZ2GTf1cFT5ZtHucL}5a8 zW2>2xK$M%lk|auQzaoN|{8A-pA1d)L@X3x8&-3UAA#+I#57@^RA;FTDzMSlR`^SsP z@A7*N{nv~3b)tP;tUr7SLVA6xD0SFUny<2UqxM^{Nc4r#+E~9Ky6NkARk=OxZ2LV@ zm6Yr64fmU}{Budy1^wMC`}pGU_VGtw%R~6=y|FTn!ahpBE6~U6OA7w)XZ9tPw=b!s zV|vFxy90R(s&y)fnO?g26jP%+1wuxtOP_TuL&?ue>+*oq!ww&EPW0el0IA4=IOKJo*0mk)2CST zUEy(v%~-w3=5Cwind+G)!vjyUr}`vbtmBsd!fcS7X_F?+h&^iW+i%&dhC{k`U0(ai z84ZVCKX&^8U5gtISycNe?lcrtd~qoDa&n;^CZ3)oN2_dmhMj*l;PcBrW7jwNtphSe z%n#atI~%TH-cJMG&AhjHzhx>&u&+ob9>~W7wC(miJ{8sUWyh?kc>cxJxeO;=C_Dlm zpP<%P`!=basq5L~{|+FSIcDJ8+WV|pMs-_ecJF-ShpTfdC-bg*=ZXBhi$w~49=|~G zLv`+U=IpsWVL^3nAwP?|ZnaOb%_b%uIdk`s&<+(*)wCh1I!x`8D&k1FAT)=dsKSPumgquikWi_J}e1N~5MP z^wq|GuIJx6Fuiug0E|8B{9B&{zbjO^`^7Og?wdQ0pK71mvAj9a-;CquA^e=aw5AeQ_;-`{VobM`rN&HzgP|9{Z4_u6|se(&{LzxCLyMP)>v z!^ts>980X!ew3OqY-;xu&qsW%YMMqFY6T%Wyy^qBxvk;{JrGRt_!0C`PEY~vT7uZY5k(A6#+?2_l_u`D+O_}Y#;5!1RWhQK#ksU)l9`cFb z8B*IuOKK1;^(5x7GhVGIuAp*8lTLLNnK2Njxt1+u9IcZ}X%?;7Gq6&h04Ou0qC6 zYHdBKb>@^KP1N=)JaVB!J|sVNl=uPXV9m^${M40^pQ55JNsj+>;8jtYhV|vHqh1#$ zQ6fL_5X1>$R}`mKO1e00FDp*2ip48$#c7w4GU7DBKwT9=kSl`R?IUrjO^MUbX(-yC z+REZous>~+U8HJrlelwnsx2!{j&ue4ld$~4WNAchBeyC0v%=pQvw6ZLC*YXk8EVvxp$eqi<(6Vw+-VPk$ ze#kK@EIFY41GtBC_#0_%*YzKHW$a(%pZt;?n?dKR(fPN;yd^qcJD9qQ$Dg8}%GwV8 zWq9l?zJQX>;=h+=@m_2D_`u>bmrZ;QwG(H%s@$!OC#pSE$x76nTo${3h*&_N3Dh3R4uvPD-qzm%PuU?Q# z_!l~rwiN&V$npmqY$B7!zn--}s=t42rf0{n8=SxY&3iuIHtTVsli4wAGakLgY2LSP zb)MbP_>I4{y8on73Ki*r!`B3SDVDn~h*2q--VMvEU8^=7ov#TSHu(hUM$y1$kp4*n zpN~`CS#BmHE|CeIs@bjqED!zD*%Tejc6zOT#>d#?q}&KcMTf|mOcJpi4-35eI~%HmZM zI)m{5l_9mS|bh}KwyW&qvABD;}zECz6-6Q-M103+x^n$yyOP`=$ZiP78*H^yTOLUE(Ar9)+_r6 z&QEaLKTO3v(E5ia9}}N_MYQnlVJZTq-e3*yQ={Q)V=fzi6b2C%zg;nsZ9<|l%C)(-(z-Bq|M+N9j&=D7i85G&b6Y;X{EX?Z#g`xTTg8{Z#cdq_tJ7Od znjpd1S6usnh^$CLeE4{1qNw0|$q}PMJgWWY;QzJpT#=zGZb%nQ#}^cu9$}^PvlAbR zc}pldXna9F`YNUbDjQmxoT%VA-AYMUq4JXxd#ytDq03k6IVrvnjbQNzLs6*>Rgwf5 zzz2z48uXX^J=6R1%=V`9E-^j ztkaD=51OcP?zOzVv62yrQE3?=c{0)NT2#8S5gL&jK_kvzVfDhn5vx6qO4s(c(LXv? z%T?a7>hoKSkk21n?`avKOSm_c!j9c^Upo zH!qaW+m{yyw=eCq@XGDWhzQ@lvM;tL{MFl+TATlnDe=VygP0086eo|1hT<6R_S8_g zk$59cgsao_k5v+gK z`7L|zPKWu`BUD)3*ofRnZq+{qZTo{skuBADid%ZIODnGLSx$!7iN*Cjl0x-gmDl%l zTB*DT{mRz&Xo_wm6;)RA!PfUY2Af=z_K^!suemR@yu6;i;`KfM*Wkk9rMVjKF*pO75 zO`KFv!>9YqR_>!o{a3ZVr%I@r{ds?ev43l5 zDS9Hib^lLi^@Pj88@byH_g~{->_AxGv$ZbB0qsA@z5M@62VLLud2*#9ny+|$&-v6- zS=()lP}UKx%^gTdXYoE7A~52A_0EIhZ>fR777GmJuIGY3`p&t~_qobJ?Kl$9T=`oD z9SPLtMh`C<2H4_+@%>t#O=oM-i67%vrw1JQ*m>-E6vKHSFKxS4YxR6r6g^vJ3hC|8 zjB*pG9|I>By?MgUOi*zbRAvGdBJ2vHH^qmZlZ-T4T9$h)xAI>VF;_&5TiKt4(AnNJafXJ`%*n{Qh|IoQqj}I($ zX~TvJy3*Csl?QsYxwli&u`NH&+w0!c&d`3fLvZO=TB!4@?+Z4xx_@#--O>0>8%J&? zzL{EN^3MDqde7H|g+)Tg6l%&Z655-o{okRbmBn!|1Ndc)n{9VQc>}oD;y98q@V;26 zlD2hvhj`c?@Lsc;@>rS{>42hgSZxouV3N7?6q28 zzb8<1pX$Zf5dV-uy_%)N1+w>Ft)-RvmwJXR_cfbQeah~T0fx9WYmse*iAM?gmY7Mq zCcThZG;lkNqLto(OwPUWv0b~83-8{sE7^D#Ka2EpmXd3@>q~A{`h)tJq=#SE-RpJt zZ`^6#0voz1xljoRV~LCsklhj|lbEzxc_wj}Y}L>E^m7D1I$uQh7x9xXK0=95yf1m_ zGqL>h+=cd4M(tDn5aq_wTVp>Y%SsHPCDter0bHR(1n|pBL;ycW!U62#E_s{kepq)? zx$8?FQr=kQwMxV)uTUaZIZKIH<#ZBOrS>;-pS+-->-Do$KkwsbCH|0sd9V_A2bLJE z1bwLzra#F`i+K|9`-2h@m}iuT!2Cps2+Si&L|`5y;rQLhUGjbb@H^cJe(0~fp~d7A zO2o$ID-j!;t3+($8nHj{)mb_RFER}KE;gCvsY^>ej;Uay~D@dJG>(_J-p)PJ+?U(nC<`nj5)NN%hD z5Iu+_-(QJH@*zq@sQ>aQ5|QM;S0cjv3la|VM(&bDluCxFXw3aUI``M}x&Mtj(O>zW zQb~jV2fCZCXKVfa$-2K^PbcY4<&)RzPUZ99U8qECFr!2S?_?4V-X!jlt@?SNetyM| z+Sk3eue<&9^N4;<=ZE(%-O2q6{5&8bO|~led;O?=-XEg8PwBxXehLOOH|8as!r)$| zRU^sGcVnh9Ia3jBZH=*$^OD>0*%xkQ6=PBQM_=V0!1kB zNdY`@&5Yg+g&na_NL`Y*pI0am^>daIQ30ka z5f$Jh65c>7cS*l~uGG&n{2>4Q=BwOaiCE@0B+Zv z;D`Ro8~c~zl!%Q@P$D)qMv2(ia3x}6JF_HWW6zQB#(vG6*?;mTWA(F%Cw&tAaIVaR z*D1#6_Us>M+mRbl0;vr`+$JGz zlKqxZX=La7&!r(KP@~k&bds;5Pve=5U!KxivncGZVcUMl*P*&Hp5^Q5EMqV{2XRu! zb@lgi)ALx9is^og-`o58&rE9`OC~=b;Giq&KSf%n1I%h3Oa5^Sp49rS@b;$qyLEbi zq7CD82FYs-EkBCDkDtPjVOJc##$eqV`*Nc(TFN`bc%Typ!f93Sy2JGAGA;v;9mpSL zqw@t<`uPKE;3(%0Y!ITHKd@R?&L6NVp8ZC9zO;F>UGHe#V%JsSAlVgufUFki^E~*x zezg*e97F6@;&mmSS;wSlST2oy+ZQ!UFwqDxVgjPXw=8?>>d ztGfSPkVefz59?QwP{TH^5{G$euUm;lr;hzRC-W^jahxv5&}^MgJ4bA92`2~M5po9f z=da&D!FATGplQ`z*VF}7GZ)p(T+~)46c&<0P4wvsuxeL%Io2RNB++RnG3XqGqX=5ADaD^uRO|zxVI^05m zp+>u|3Lh+4(cGdmUzrmP^=D^zEaOJh_ph4B*z|abDtw@u#2>3Jdp+mrt@0{yU#zJq z+i%qQ5(J%nZ$`GZ@0?jx$IYU z2sjb~hGt}FjBmFXklg|j)#_xag2a#$^fDtk_T;@1fzHgX$5aSm68I~h2*k^5|5awq zvjkjp+Bw=nWJxEWXUBXhv*}keCUWRR2L~ik*^V)|bpM3yY0plpxn=6Y236GIa180| zztbDZo^EF_c`b+mCkIlH_`y-KTG?4+Zl1P~qx=L%&)Tgz+k%GMppVIETV~2)V*r+7 zw^Wre$x|xw z;W!R*)o^s7&oR!}zF7(yJV6I5L2WLG6@dM`7jq8lxLw6|XV?ChHeP|DCv zSz(6w2FXvGj^(goRHI@Nw9UF^Yfozj`Ct4m$mgqe-&yjlJSKle;W@EYK__TMf0p9~ zkcKV@0vD_gV#&*;HU*q?;)vvP^3b917S!?u`FHiVPm&P!Y-M-))sUC7 zzaU5GY!DB#(dbVjkhos8*+E0nb-k;Sr!bCA{}L&@<%Wpeydb`6=es`&D%~d?tD%mL zKdknz(x!8IzRy{{qb*;`(~v$#$KqY3ZFtE`3N7IO6ho2ed2tB+f(?0gJ(}tLVHjle zJToLSWRqk;uxhv>i1Nmx!%Rq*IBW0WtllSAeNCCw*W$=^i0qv*(_NBHghF95o;B&t zj0#z-r?H7m+l3~{B1@YY3FT{Y=Ghsfk(kx}qy4N;dr%;N9r$Lf$SgYSxx3^DjQ)cz z1-BCYq;C)xd)Ch*LJsW?l2cYM1Jf9cOJg3ZwcM8r=f@*e4U(!lNmZT5MxUkw6v3Yljnp(lQM1S`#~~OK1WD8D zcCqFovt~;}W|U>G;Ty*B#Ncun>K{xF&Ge>o6*|Cj?Z;Myb!N?u25+x?1!c-3`@H9I=>7Bmc>laZ`RSj{vB`!j+UWgu zG}fVGQrZVr`n!9 z^iwl7{d(raU(D!P%i8M~N6>}-2pe<`UFdCRE^P3=Hs2S|*uEw9#Tk68Pf0I2N6?zZ zEIJJYHxXw_%xiQ11G?(K?r?V@xF6<+>fD}AIyEe!T@05Sl|81`gEpC%ym~=oz!!fWzy`l6<%wJ;HxYoEB!dx$w?*Rkz zi?{AT1vYr%E)pqw>DHb;qe*>6OY*ae)8^AnOTo4OdFZN3O^2mZ{{6YcI`-1PFR~Gi za2No9xG8`3)SrLl?N#4stPC_27X_HZaddxlhZiylIIm6GbJ1giVNsk5rSrvk}-KX(1yq8CV` zWki3KF_O{r*J}uH42@xG|2*E6k5o5Z^YH1_9KT%BR0M&VH&_e7r>36~av51tEN6a* z!ST+uKX1dX%zd)daL#rIZhCvRW|T%n`6^eqgB+`b78$BGC&0ckJiVeXjZSn;dLe0f zUj5jD0AaC5uZ}7cI|Ms%d$8I%iEr`^fr^!B96IHBL-#1TEx2tz(*8KcrrFwOPMcLl z{Bcu2oFE`5XR>1&AFe*GP-Db43(vvRs^QU2$>jDidqZF|l^V#Bw$L z+lcM38?8yO8(9;(k!NE!t?{Ofn@o0bv+@@7wMs)Abg+)A{&e5K{aLz4UuUaLo|#^T z_w#sW?|Ht3XRIPLmDTf+sO&VUtQAC$R8T6bmq^FDQ&CwJNG|!2tE^>&8I}>1RYr?% z6}s8Qp_Tv+YAbNf+z6@f&AsZH_Z~Oxin*EI6Rv#Z^t$&F?h9F2j$8x)7#YU$QmhIL zu)eFkWtGJuQ9$%^l)9s67sU7zK|3$bgg=@I7odp9Ouea;oes}Gq$XVB{Z8mcEg zv}1_Ehtmlk+W023U;V$5EcDT}xi^Pq1%^3AcJ&tINOcGS5bWeCr>INm>G)6GA&Qa(1S!!KSe#vi#EfpM0^?UTPZqW`*Jjrh z%^Aafg_j%hl*qMF5)HZZD!PwW3}RU^h-JmHwSPJZVr75e#PX__hN|zdJZ@kLJ&l(q zGHc+*1Hu+KSaKo-F6d~esgB4x9CbjXlNxz>;O4-rC)tZU=Vy|KHaH=@;-#VDJ1nEE9~MX5R|u_=w#+F?E=yC= zn_N-cmHada2rKZ7yEZ9api!`+S(9rTjL(gA(=bND6F%LTpy-r3URwttnu91dTCuH#Qi<>QP ziiUk@8hT?ZiW}Qo8om(v;CXWR>I9O^l3h!@qdR`{%4oRU@I=$>O3X&rKtuD;kwZO; zG_?ExVfmq<=dYdlMrfFmwKL1XQbgm$u?y0@{5}- zZ;FOtK19&6%efHKvB84b$U;84P0|4K#jpM?-B+S zpB;+LQ966W{=&RlP=dLhMa(Tf%__ez_x!c>lfe9|YaMg1lktu60E+TB=5f9xmd68E zo}olrL*Ciq@q-cbOz&$l4_^1~E9PEx-L=e(oHtC`;~+T5auy5(nyIoXf>R6l4N8+= zV&k6;TXYHY2n18q243(EuE~ELr9_Eq90uwOnxBOP$&*8UOx$Px9A@GbfPGGNispkQ6 zm3IQq@(`>S4lTtHtd&Z6&s`z|lMyx@Dcq7rZ*bSyVOUWNLy$2EMx9_I3S)?ZxTVXu zZLO9MS3Klz(=~eok?^_1(~vAZh=^Ne5Vy=omS?X0uj4?xW3?mh6)p`GGSHxWM7&F4 z?1dLMTgH?^b%N`|)f1&adL;!?Rt3zhoq*f`1=0zjgDX%U)u`nqst#T(Q#yMCf)+j! z4Vrou(X{+DtNcm}aC*y4833W!((I=%0?Fk*ro5FM+mkn-0#YCx^ z6)lk*1)QEw{`z;vd84F}oSRK5Lu67cyU}UP-L_xqO*(#`m=}Tm%#|-@@d(gwR9Y;!O-kLTN{Dv3>k^u z*>9Kq&atB1Dv~9fT?jTU(<7Qtt@_iweCRg**BRWJ`_0xaJ9<{tq^FY)t%7z0t=nY4 zmXV{VB>YuL@iRm`C2l;C)NkP`mt><|S6F*mo+d0LDJm&B5G|5Bm55EiBSRTNS*93i zJmzmfcrA07?I_vdQ4$qQtx?+lv;izltx;-a{;`O;B#PsM^O^v0@8W~9V9OCNY3hAk zrTi=HdPnnWyW%M7JuH}q=I1gFaRcYl<tO((X>LK)n$d< z8xR_vpE!k~OI#$pcXZq7$Phnoaj_SMc6FASfw``Lt3q1fcR-+}@ez)QuM%_TCp-|u z&}@#LQ_nnmzrf1-Y$)!I>cCp--3`p|wh2WmNJT0rbFG&s;P@7--h&Ug#Czq%;n_m` z&#Dbg3va`dv<$U`$4b*J3v`K#nMzvp_r!QWF**MI-ZMKm_&jNFsBF0vb~%=832*B$ zFhO(NM}A2s!O^}*C=E9fQq)Bq3!y4}c9fk6)BCVnwjgZ|^K*4t!JCS-R`=g5&{sqJ zhd`q$`O)JJyfcp}0U-ySm)Mm>nuctYef1n*7&A$3mG;cRtdO=sbTeHtdtI4bYt-j- zIa;U>rK+@PVmgrWiBw!4ARXb5YJHa$uh`7(tO#q8VJ)+0>@}mX0Zaos-(p-(Re(s! zA_y%XK+LoFM*Vka)1*q(%-=bJ%WZYJ&oEV?^?mbq>IiF2Z(670Bzkrp$?eyfz2SD8 z_HS#$rz>4skm7Nw2Np>b#3FGuEyaE0i+z9eHIz@~qZB8i%J^wy+%w1H!q*|m+wKpx z+ZrhEc&OsoxPVlnN^ddRKvShta=g-zDfBclYsvd;<$Lg2uz5>VD0)E^~ZUFd%-_|0s8HZ$Zg77y0ix6mfqa?A{0w7W(8w{KmTRs}ysN+F#VSv7w2*+|9} zA%dK(%``)dU;h`xNI5h9Ho7yml(d|>NdhxrUOLl%qlt?eEYo=4&%pLK97+4{9<=?V zeBN; zS4==A&i&89WRlOhmY0d#-|ghQJy#yqKmBS~M zU;OQIpo>14!rJU|0xfaQFZ2*x29MS^`)&VqgOReVe$N&_L(2jb!P$*|b)=UyZR6-`Ru(s#GP~ZZLWq4#l4xVhMN{vxNJ-w z{Yhm&a!=y62?+kx*#4T~YHI#You*9?`D88*iux6;e|_oG-g-tp3NcX12HrV zK-OPkvnJ~~{b!q9mxf7o76hoAg#(GW(MtXJZdx$^Eko8AII`mO(pDTk=^Z1H&m02F zTfYIzA%r(kesWz^%XE7A&@AbUofi7?FzVnnSA*jJ`QnURult6W##O6 zZe9Z|%-^Y#vmxZgTndCt{_9f$Yk`mSpkf!z1pdD?l(qMFQkd-Im@PUn%$>s(+yT0> zr`%yQE?(#%Pg!N7r`#pPaFV-HM7DAexl`pKvfe@D)`KDP<6mv$JxqFm$LfR* zUVd>H^OH6rh6N}oBJZ&0v}acjnJ1^)ns_*5KoB=h15=5}2WsWJ4>_>qO)8$$+Y zh3~##S;IJv*br@w8j>_NWA{zDi}#gB z2WjnmZ4aNnvsQJQ|2Bg=uX#1xPJVC??*Vlok8SWc#4nUxFr*J_n_)1HY&BUz*VS#hej;)sUcAsPoYA{zI7#YMxLD8HsaRZIW8 ze2mQ#|Il+p)5@kqV~ag!9f(~47xa?XU*`Jfz%bPyAR;i8L}Q1>pUyn=@14|_BI^e} zC$OBXNrIP`S2ai~b;7R2$sN2n#J~E-e%lw_A;p=VTeE)BX zee-wf>@>!a&pEfW^mDGCulojWMPHTjvTC-E~GueHsuhzHK+P*>ZHwhqz~uD#gF4 zUaR;M_2(7^4$CXg_voRjlIergncK!$6B3Bre^90RuQ95+Hg`8A1@kOwx5-ihNW_0f zhG5QY@7!-;qIBh`pM7!8sUv^(#Y`NLa8_z6;PIXi@R&`-l>p5LJnmUrnWTn4-~yz+ z`Un0Ug3zO$m1_1*cG@7-=APrci|AjvHh@1pfZN@cemBG*TXxL( znKi$v4!AC(j6MUPO@j0aO43!t^~pZtR0(1P>oaRAQz7?OzzrVA@!Ud<1}U)Xr}%3Om1pWB69hduy% zkbvbAXlNs%K}RY1-tX36|FyPbFyCbxrR6j1;40sxO8rGxSk)v2$7j*A=(AXUth@3{ zRXu<0Uq;gheDd?|vv{2)YbDM6;t;CN(4OG3yv*$1r*?V1nfEN*?U40ftz*Ns7rj{Q}m0y^8{@Rhk^xl7UOuf$XOBtRti=R|`9!+`v`*->7t;N<*NEo<*uy ze)aCk2UR?O?O#TT|Nr7t@jA;dPP95hdt$NWP4Rz&Q)SLI`IqYJ(~Z4S{x4T06uytE zFkPv1z*OF*Bwf!Urj{Q}m0y^8{@Rhk^xmb8sn>}iRGv_093@+wp*9*lQ~OUJH)NtuY1rY8?G9&*>j>RTx}|UbubBfAg7138_urA zr95lIET7Wl{JPJrUqDhPJ@4q|g8$43I-bW4*NOG_A1%0-kwv1RsuVpGM9CGax9?I_8u=)L zgJrGqc=j|nHA`(}LL1tabOzg!IMIsHLZ(Tx(u9NwXP=?P3GG9uTMIR)s%kzN{=N(U z2*b2re8JTaa{92vQ*tnSM$Z~M(3Z{0XF!FumWlRfWHUphQs%7z3+Hji2$Dyj-2U13 z-(HfFVBdGx%H3e+x^GkUaC8S(T%mBdcKAf)7gX5471GPCj&=Xz_mxE|?O#HRpQ!BQ zed<8>@5Wp@w*L%eH?mlK+c)7$m-M{dcF!5#p<`#?-TOY{ zFj^j9v^=z-Jd!iPp*m#+tv%A#eqfQFujKueQy;0ie4cXK+t8YzR!z!PWmh-cQu_u$ zLB1|Mr(CC{F)o>*(85mwoX4{nLsrYwPFNIn@~W9bHkcjOu^)6p&NU(J%oRh;Q!L6E5Sdleeh#I#9SyH4uI?G%l$JaLge1hPjctU9P)MtKXSC- z9tSYDRV6p;0UXhTQ*#jpV+*z1ZE5f1z_< z+`sq+R+{ydeUb|Ni-o#o!xd>-LK?q<^{yhDQmnY|`A|mg_s;=3^>ooxJfBNA%ZF}G z=6zmr0xio>-3KmGObKwh06{G++?NK@-GYdmzU(9+Dd`RD$rs5N5V#XYrwRT z29}f-Xrch~sKrJ*!T+&h-Ju<`mDyEh2v|SF*+koPHqo}^&rmwE=o%;zL`E(j1i-VA zT8&ou>_O+>bUEm;0MDrdoeW`g(h!bD7;SGPhrC0pV`>Y-TFQT@spr(;*E8qAV0kpv zz5irYcU}{#R!9Cxk23Xf*rg`n%GQL$pwEYBSv{GX(6k+YDS0FhH(LzVn)(Os9Atn00O_jadCXis%XfLAEVcr97WMSJSj{~2PylJqPJMZ1?;1`foUvxdX>=jg z?K*0jRd;q|RiTXaZ+3p&f71ZRb@!~@SbzVM8Jz*Cie>3l@esZs@>z1wX|@fS+OvA2 zdea%%G1#qH5Ey!9l+}`qAt7`DL0*enRM+Mwii$Qp>$}!L<9X;e>qpMXQ%6-XOfZuR zQ>`jagRPsPL*Pyvp$mr!ArEtPTsR~xR4&$d#U=Rp*?3PtF6gqWh%Q4a(8W*OW8FlG zCa(h1-Jv%zW9Yp>m))bsX(=sl3SFx7>*<(CUc()4N9qA$;NyqnA(He0sF|d(0cmVZ zrthEbQ|s^NS?-O6Gwo8t_aNUxT)yW>zBv*{Kh!u+_Nkke7T#fYEsv!}X6Rcf}@ z3V2x=cDP{CYOBL}JKjcg0j#L%YQTJ3ffdwGO0wwG$!8hEr|1I1FHn@_+$ zyMNL^A*$YQpb-6VfDmC7!S8BFjnuSCYTB%avi6%iKCkt_z}d)>XgdoM?j9l{KnV=G zw2{Sj-6z?)!f`=5oZrE*Enb;4QpdiufbneG3VS@ZH~J-_1w%s;7eT4g-W@V!qs zLv8hvK+_~>T4X&qv3C9Bbt}!(-VVN#R-6C%P^%mIv{Iz*-Tr^v^#codHPwQt)lDaG zxxB%4sS9iAoaXi$1Q3Oi1^wug82w+;vhbNBtY-^rTVL{ess?vFRP(=hM~%hAI$Xt! z-<@u{wo;YorDIFe^a5?o9&(_v)e!~n)c-g`0y%n_ENiknTz1$Ak46&8)QbuD+&0G&;VH~ZJ#)4b6KSLch5^S9b?fWg&rBUQNK7Mgg{ zA*?oY7u-YE@o!W*M#c==+4gJayw2mLhkCpHhOt@uqT2f}`vf8r>cq0Ut9jy=?QuLF z%&ShcZ(bPBi@lMeM+@zt271_5vm=<|*h9Eg*C3~lY;t9n*wsHmEGFU4;IO#6gt8&m zA+H=_V@P>gJ>HKGF!}uFbH*^*!=Y(WMAp7QD@edhE-tJ zHAqpKJ+{BF0S-EgzB=7lG)Kc=STtMLY`DUrdG?&1)vi#JNSqT_9mMHn4yYRvUzfwfX!6X&FP_TdlnJRu+e?ba&WtEvqO&pm5bQ`Z?2Nq*JY_ zWzmK%na{oWse*nFCF8?HIr&qD)pnlwcYH9 zH;Lg9s3v~|0wi1CF5AX%OfQl4Dv=5aYN0Z%R^<$Mf*s%c+Ne zV%}nyQ>D`7mYEqZU3qVXVq>Hu<(tBL%g6ghONVf&_8Y~(*#d_%7G)@GOq{Zbp~E}R zq>(8b`C83P-A!DpQzY5Pux96JnF$+lv>2ok1fXh($ZD?6L=dr?%>g6BP$OMYhT)-O zy41uWd18l?&&kB-R)v7r3PZjvR!N`$;6-vq8HzIHjfLq}!0NPmR`?1!rqGqH`oM7J z?{(xhVY|hjyoCLKm;K3@H^=CM1c%nTt#n6S&#CQQJ|O42m~||z>3t+QkUK)t>@3dPy{A!oR#9-l5-0BJzE@LLDmt9G9RDHH+ni$ZDK%`%9VWK*JWgh_Sp$@g!ihK>BMU$^!b>NKD$wDxHolOXarOJHYP1}DVtYehv zy%hgcA+vX>wisVKy$#WsG$9Sio=U+X_q=*3&?I==rq*sFtp=@wk&WL^gTwaV#I|eT zH&)o_6_dOB2}<4fpQ`d1#$p4?<7^g{xAk8tqd$x9_&BtyithveMC-Q@_Z|M)?l;7H zdAP~Z98$+SOmv@ALnf zm_rS^h8U`hgSDlZ3D~Y{qytQ=w%hO$lO6M#O!oX;bh9-x*1U9D`@~;lvZr(Qj7w7= z=ZTKy*y(SciqX#=w*Lu>n6*Ci(=)S|)y#bNA;f>$r!e9|w%8QvOC8j%)Wu}29b2gf zGqPvs>~Pg|snztl^^+FyMcG4_Qq$k4NzI~45_>BQ0&>Bsv}T~4kSb#Z+z=kKgU=~f1Iv6EA+sf+C`DJii$LZmUV92s&;DxVtv_JUMCN+Nmg z&@_&FDwW^)%s!DySSZ%1RbwSg-bOml(4uztl+#aqdS7u`{8OvqXaA{j|AiJB+1gt#?$yUP6D(G6X?Mbx?0mz=C11kJOT<7O63xN6fGyN)=eoMfoT@!9I*y zfb5*r;j%NiqU@}jHNZaH`PwKvDmIw#+-`*n_TgtGC5vUJGvqGFj_ku3C1onxhsIQE zvJY34l$3oq0D`#KJbQsFh3vxzZ%g%BSCL4bXiVd{r&4qGo%=*;U~{Y3j-T=Gf)}4% zjMN}5vFnQF)m$yaZf4RFi>*)y|FM#ihsm(7yF7H5H^0>P1~Sa+vUC_CFnVsVv=0qz zxUtX#B90-7#}4s}bhA|`HGb&W1;DrAckLm-2X)O*bjiY%0p5$g=I~Aq@U{iGGP)w^ zZ18_NlVvdr>Ex>Oc^DG-H|KfLIv_U`RvIK6qZv?HrZOi! zG-=dhG-A{P$vR~Qc<1&C8wjSjUCiY;f-J{vOc8Op4rOt;0R;Gyw|qwp5UCL|`gVbH z%EnhG8*qyQa4QDv1$N+81mJwb zEEIJR@zT{L-`c!RZKk+y4}a02he(h$yf|!zT;ZD`_a*mjt%zX-w{-1!d8lbB}xO5*mE zivHX@VWFT}V|`7}i`xJFhe^Pbz2xuucm@Q+k?;BS&`h@GV2PzGJ;$|4=XxJcX5Z<7 z3+KTCCo>f62B^$ck2YwFF@#exd_N()E0KGb?-j~jB>TpeGmKa0zp;fynRdm(>k8xd zo!sx4oI@~!AZ2zv{&BCv{}1mf)PXODXX?4`(^W(RB*p)`xth|~!J=vP-(lT@URRNA z#{3<&pS(8rYfh<|(X->o+eYQyb^yGuA3x0==zO35VJ#Bx#xdNhrV1G<0%At$l(2@u z6n@i+5FQNyuO5W8Huw4Cqo|twAfTXl4wXn$`G=%lXrft=)H5nb>P4AF2Yu*t3=5oY z1q%tTfrH>K6j%~ln_q0A(M-=8B)9O{z@g!@ftFK|Jxb)>(d>9F2%v{3+&wA}tt8BD zTtcq~S(gF2Ru{Ch>R>v?g>%kobKmEo>5*Ln0U|-B==16ek1L`B6?uP(`Pzriw1Exi^soVQ9Qn_UAjJ^Fs1fZjlUyJngWjc8!0-`7*QZz$PL+ z_4m(hZf{#Sw|S8rU*`7!vD4pro^9@E^u#<|rC} ztl2pAxGp7}B7Tzl*aR2r5{jT7KL7rcqoK-eLr;PbM^f7@UfZo@YRjEMRq9(^(E@4N zjsUF|P>c6MY1IbDas^}yW_W>J4~wHagdyfYwt(AmWrk5^gqO))R3lN`5DIPN>V+bT z&c$&4c+ZO}y8aE++OuY7L4SIl85XR7sRK}$I+Rf#aZwF!)Rp%JEo2b1qPUo=_ieiJ z-T>ph0Mq-H@V-^o?C4uYX)z^JLaGj=w{Yc+6*W*QY33PqWRh}?cc(aYzENJg;$ZYP zgLQz;3`J(d<-3kBnYmk+5}ClQczt=kAV)dHusHW{a$)1`z{Wxm$hp`0mpDgFFlRPTsaSg3sl)${#!ML&v7`fL42+9Zy z{2xiJZW)YZLCY&j4Brtw$_lt;Fy>LFpyb7^;Ggc4et*IX^*oGeDE5SnmoTctXpOir z>_0x+OJ*Vh#R!GjjNZ8q{?>&3nn3LtI0wC_w6-t*%%3jH5 z8TmFr1yl*D>Nk)ft7;r|VK8s<|PDxRe(2f&K~pssH$cMvJL(F?eg7zv8F zR@@Ga)Y8a_UZ&?^_U-LnNMir7b2vr+fXjmvXD=ewyZf#OD>gjJ*Hm5PetnPT;1V|k(HS!p6saO_&b`zR_K!uyT(Jaj=RQ7IMGw5a61SBCu> zAHG~0`G2VMUzY*=f9>G>zv&2j4=oG^cqy6;!v9mfz@Ax&!2ewn0u$lChos_g8G58l zXo>$I(Rq-faPg%y7i$9-jVnODO;r6yD|~kJDMKs!52XT=lisjQ^!ei88WS^M-@agfKs!y98=8oI8TC{YA8` z;=~7%k9;IWfNTc$&DRDBR_jbj8^fpgbD~u86i)VrPbt%I?xiuR-e|s(MpML(RTmGw zwf_Glxq@N*tp#Z+C{R}0HOLIw7iG<55c_Z95Nsj-m6v11mB@=MZqpUUxXgv}c^M5W ztrU<7V&(or@B(Z|em8zkr6IX1-U^Q_)PS}ED-ig%)aC-=Bn*Mdo}JZN9C0p|w7UO| zc?tubRb<202{c!Ke>IWo8OiN9RotA@vuy~Mb3KxMF5$eHwz|Xyh65ZIZF6~&y`<=(*}2E@?M?_5{| z^7D7-*h%6@PjDe+r+NDMK`IqwLe?uK6RfbJ56CR4U3rlr$cH^(7pEzL_HB}^zj){a zDKSMp+!}|FijLVfITV2A*as`c-v18ES`dsUj zTGd&Izg7Cg?KvES%ig>AY(ItO&mq390N^>8XS9&f_qpoN4r7>qMHoDqy+J!7y8xm2Gj6Gy>$7nqzIq9K#CAG;IM_39No($S#g8JWcMU{HR7H-8L$CZ z@nQh}5&(n0X>28k4=aXvtV29b5Lf@d05SUaF=iX0>yw*D0t9rJTRea8{ln~$PR&DX z*Ki?&PK&(N?bBR;VqcZ0&Ao>d_FF<+$F0Q@>63|1(&NZlVFpZkeX9@hVe!dXNXV?_ zbIr=8qLXR!egs`|*aKuiO_L?tKRC72D9a|}lm3owrTliFP%qX`FbRY*OcD;ls+=MY z3kP8Cts-tiB%)D$rHYvQDQCX*5AUz_`G@&CbQmN{w3^_HajClhKv;lEZKgH-nWSF0~r(&8s`8r1qO83HHx3TjS`GJ{+1qj)a>EN zqfTu|B6X#Hvx}k66Wr;(F4gg}Ji!Vuam_XPY)KF6J!*7%<7`N~mdnJ4VOPmD? z7sG*%&%hb%N8X?nSW_KFlz$v;WZtGrDVhJn&J|T*??PPGMcIsDy(*jp9`rKi!_$Hd zTV;Q#GjtU)&lKXna%@n6Z&3g)yqxAjb%jxUDV2?wDJ~f2;ew6&_m~R@miPg$m<#C< z5VCxS(+hYyjBdqJ(bs>1fibJtu8bp~ zhmBe6G*Skq+!E(8s8^8~P|u zIr<#`{a5BouZ9_~wp)`3sUDZB0)6!Clrmy)|5iF;?~s-0u|Z{oD@kv?yopS2#A`v#ta`cHbV z

UsV`8ste%~QuE(0^ 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�Dp2gWQ&c}a>&x@aavrFgm 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 z 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

dwGf2JA!c&K!l>1T~GzQXgQ`k>|tzqX?% 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

)IvGuiw8ZmV$QjD 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

b^-WXT?2dg#dM%NYm)-LtMnpe$Pn+ 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

u&xPd$vk@(P)svmEl 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 =QU1}I=}9DjbGujw)9|kVQoC3 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 RIbK!SgtOsXA;#}3yHU5JH?UP~yn#-A6T4 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 z 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

{~4gJyfJ@Kol>MpNo3hFd`u}s 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%0Dtkdt*Yk8yz^ZI=;bQdeZLv*p=Loh)Ua0-5k1vrf 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

RqNT2n}4(g9+Gqc#vpMH96 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

RtRq2KgZ$v+=zEI_RNT^`ke|i>-HaCe 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Ë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 z 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 `$-720o2%SQaXEYXi@CvXzp}h+b%Wn7FGSgP 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žUF&2-m>A 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%0DZcE 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

nDhTX_Qid5 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

    3E@&9 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

    WTEJRY1Z&n4jKxsJ_P5dJ8CeWvMzEbQ7DjnG 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≠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
  1. 7UudrRA?~79IQfPZg`73lQwEtfD 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

    ?)CazO4`%m;y(A<<- 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

  2. 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�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±~ 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

    j@6jKObSW`hq)y6H5X%mnx_UPG2Jj^TyoFPEt> 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 U<>3kl?dR;0ho_FD4 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%0AF`Nhr+{7 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 ?i7J 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 z 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
    1. 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

      Wym}yS<%2jG+_=>`_a#s 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%0DH5Yr z!8a0U_-gCPr#(B~AEC<);5RdW>W))QKzO0R-rl(M0A?-NQ2{8;r>tVFDHjA}kwQ}s zcU!cuZBoELIxDEpczjRNS9j&u)FAGL?+7bU>RF(dy3!JI9fWsqVwSqP**(ZkXhEa) zn@DV%Np^m29lP3uM|dXlobTsXg>Vi%pN!cMI_9{D9jQQ^CTTo)WKcgxJ#)2Syvo80 z4~HAhjAs|cOnSz`#m`mpvcawJaC$}Qh6QP?^cnS1e<)MJeej|@^dFyx3@`pE09+b^ z=`lBc!L*f}zvG4|3+*6LO^miW0r)i7^T~2&!vA66f8UOm1#|FgNe5Uf`m>QQH#GzNe3=pUgK*zNoOP~eq{YnTHNdL#c5B2t#e(=Rx@(-zR zA+Xsaz)&-=sS5V-tiM!+Q7qBlx4t-Eo9cyeJ=;C`YD);cih~?b0NZvIr#IevLYefP zgj&>PJ62GM{YjUkk@3x}0>(bRZ0Vq0<}0%oTYIV4G?o0XUfm1uhpCtfdB5k5Yv0Tq z6UnGrr)Ef`ZUg|ZQJH}6HG-i%JXCm5gzO^FAw`~u3^;iRbIMLa1)-0ZypD7N^!+h( zPdIl0<_&Ol{biAl?jzzS*B>*zD%iB#dOTuA#O{R4NBPjTd^3C)-&u+&ePkuNm6k_N5lJoqI7f&S0942imX*ZR5)P(RS z5titK@z%^L{0sKHhb44)5eR$S_p@y538D~xygGgNOSs@aF*Dpa+LDj$wBBHTToZir zjw1ANGI~Ao=Zm@bm{F4)j51=h3v-fS{`HWwv8Q$6)x8q57aiW-ZR$cM^xbG88nWKK z<*~-Dt5mt2fu4W!6WSJgIdj0FJJI+$vYNc4sJ(;pyheW-HGm6%=+0uoguY9Ps+=^` zk{v(_VBr|dUi%_`>8RXphc!l*QY{U;N2oy=ssj(;hkqo5AV+`lt5b67s9o|7>54P{ z!#Ygpl`Vz}8@!_TtfeZys}}f&9nxCoQSpHdC8i3bi-}?Mpd$~fNVj(VmJ<<&I)3s4{ymz&-MfUK}BoQp@ z*ou3T$`Ay?2@Dur{7m63f!}@Bt&JHp9h){TCcn@(NfYy($+fUKYAl)!k0J5#99^Bx z>}D9sR3~a|$Nb|`q=#Cr1A%>XLa5o!{iuD0_oI~{Vp2fL5A*d9e@mwl)8D2qbD9N; zPmIi!DoL5mf$V!bp3m+^)Qld+Cn>?`n+~_aaTsvZ8!O`A%CL+T6UAGw$F)451U@2i z^{yz@*l1;;Bl>YDQeN4n-}B*zNJy3W?tJ9znXzEwpT@V*)sQ$po=@rH=V$Q(iz!k) zyB5zO2`N}=w3~f!>07EgIFzcLac$J=`F-_nAq65J zm}Z6#RYHUiPZVuEhxuRGjU?3$HwE|#{Cs#k##(UN�!EzTk*{g9xRA|FgJ7-Gky& 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

      KVzy@L+2|yyjU+ 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

      ikm~ya?O)t7>rI>=ygM*dthu!H4hr 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

        iZAEA>{*oR`&NMX05b$;Aw`$-$X2KG6lJ&b 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%0A$RLY9^^64ggF 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 IJ);!=|G0w#vH$=8 literal 0 HcmV?d00001 diff --git a/go.mod b/go.mod index ec44238..e279551 100644 --- a/go.mod +++ b/go.mod @@ -6,8 +6,8 @@ require ( github.com/gorilla/websocket v1.5.0 github.com/kardianos/osext v0.0.0-20190222173326-2bc1f35cddc0 github.com/koron/go-ssdp v0.0.3 - github.com/samber/lo v1.20.0 - github.com/stretchr/testify v1.7.1 + github.com/samber/lo v1.27.0 + github.com/stretchr/testify v1.8.0 ) require github.com/avfs/avfs v0.30.0 @@ -15,8 +15,9 @@ require github.com/avfs/avfs v0.30.0 require ( github.com/davecgh/go-spew v1.1.1 // indirect github.com/pmezard/go-difflib v1.0.0 // indirect - golang.org/x/exp v0.0.0-20220428152302-39d4317da171 // indirect - golang.org/x/net v0.0.0-20220425223048-2871e0cb64e4 // indirect - golang.org/x/sys v0.0.0-20220503163025-988cb79eb6c6 // indirect - gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b // indirect + github.com/stretchr/objx v0.4.0 // indirect + golang.org/x/exp v0.0.0-20220722155223-a9213eeb770e // indirect + golang.org/x/net v0.0.0-20220812174116-3211cb980234 // indirect + golang.org/x/sys v0.0.0-20220817070843-5a390386f1f2 // indirect + gopkg.in/yaml.v3 v3.0.1 // indirect ) diff --git a/go.sum b/go.sum index 17fd458..b51943a 100644 --- a/go.sum +++ b/go.sum @@ -15,18 +15,32 @@ github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZb github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/samber/lo v1.20.0 h1:20FtphdORvp4yxklurzZv2HX+g+0urEMQziODC5bV70= github.com/samber/lo v1.20.0/go.mod h1:2I7tgIv8Q1SG2xEIkRq0F2i2zgxVpnyPOP0d3Gj2r+A= +github.com/samber/lo v1.27.0 h1:GOyDWxsblvqYobqsmUuMddPa2/mMzkKyojlXol4+LaQ= +github.com/samber/lo v1.27.0/go.mod h1:it33p9UtPMS7z72fP4gw/EIfQB2eI8ke7GR2wc6+Rhg= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= +github.com/stretchr/objx v0.4.0 h1:M2gUjqZET1qApGOWNSnZ49BAIMX4F/1plDv3+l31EJ4= +github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw= github.com/stretchr/testify v1.7.1 h1:5TQK59W5E3v0r2duFAb7P95B6hEeOyEnHRa8MjYSMTY= github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= +github.com/stretchr/testify v1.8.0 h1:pSgiaMZlXftHpm5L7V1+rVB+AZJydKsMxsQBIJw4PKk= +github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= github.com/thoas/go-funk v0.9.1 h1:O549iLZqPpTUQ10ykd26sZhzD+rmR5pWhuElrhbC20M= golang.org/x/exp v0.0.0-20220428152302-39d4317da171 h1:TfdoLivD44QwvssI9Sv1xwa5DcL5XQr4au4sZ2F2NV4= golang.org/x/exp v0.0.0-20220428152302-39d4317da171/go.mod h1:lgLbSvA5ygNOMpwM/9anMpWVlVJ7Z+cHWq/eFuinpGE= +golang.org/x/exp v0.0.0-20220722155223-a9213eeb770e h1:+WEEuIdZHnUeJJmEUjyYC2gfUMj69yZXw17EnHg/otA= +golang.org/x/exp v0.0.0-20220722155223-a9213eeb770e/go.mod h1:Kr81I6Kryrl9sr8s2FK3vxD90NdsKWRuOIl2O4CvYbA= golang.org/x/net v0.0.0-20220425223048-2871e0cb64e4 h1:HVyaeDAYux4pnY+D/SiwmLOR36ewZ4iGQIIrtnuCjFA= golang.org/x/net v0.0.0-20220425223048-2871e0cb64e4/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= +golang.org/x/net v0.0.0-20220812174116-3211cb980234 h1:RDqmgfe7SvlMWoqC3xwQ2blLO3fcWcxMa3eBLRdRW7E= +golang.org/x/net v0.0.0-20220812174116-3211cb980234/go.mod h1:YDH+HFinaLZZlnHAfSS6ZXJJ9M9t4Dl22yv3iI2vPwk= golang.org/x/sys v0.0.0-20220503163025-988cb79eb6c6 h1:nonptSpoQ4vQjyraW20DXPAglgQfVnM9ZC6MmNLMR60= golang.org/x/sys v0.0.0-20220503163025-988cb79eb6c6/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220817070843-5a390386f1f2 h1:fqTvyMIIj+HRzMmnzr9NtpHP6uVpvB5fkHcgPDC4nu8= +golang.org/x/sys v0.0.0-20220817070843-5a390386f1f2/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20200227125254-8fa46927fb4f h1:BLraFXnmrev5lT+xlilqcH8XK9/i0At2xKjWk4p6zsU= gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b h1:h8qDotaEPuJATrMmW04NCwg7v22aHH28wwpauUhK9Oo= gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= +gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= +gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= diff --git a/src/authentication.go b/src/authentication.go index 1b15876..aae2e31 100644 --- a/src/authentication.go +++ b/src/authentication.go @@ -63,7 +63,7 @@ func createFirstUserForAuthentication(username, password string) (token string, func tokenAuthentication(token string) (newToken string, err error) { - if System.ConfigurationWizard == true { + if System.ConfigurationWizard { return } @@ -74,7 +74,7 @@ func tokenAuthentication(token string) (newToken string, err error) { func basicAuth(r *http.Request, level string) (username string, err error) { - err = errors.New("User authentication failed") + err = errors.New("user authentication failed") auth := strings.SplitN(r.Header.Get("Authorization"), " ", 2) @@ -109,7 +109,7 @@ func urlAuth(r *http.Request, requestType string) (err error) { case "m3u": level = "authentication.m3u" - if Settings.AuthenticationM3U == true { + if Settings.AuthenticationM3U { token, err = authentication.UserAuthentication(username, password) if err != nil { return @@ -119,7 +119,7 @@ func urlAuth(r *http.Request, requestType string) (err error) { case "xml": level = "authentication.xml" - if Settings.AuthenticationXML == true { + if Settings.AuthenticationXML { token, err = authentication.UserAuthentication(username, password) if err != nil { return @@ -150,19 +150,19 @@ func checkAuthorizationLevel(token, level string) (err error) { if v, ok := userData[level].(bool); ok { - if v == false { - err = errors.New("No authorization") + if !v { + err = errors.New("no authorization") } } else { userData[level] = false - err = authentication.WriteUserData(userID, userData) - err = errors.New("No authorization") + authentication.WriteUserData(userID, userData) + //err = errors.New("No authorization") } } else { - err = authentication.WriteUserData(userID, userData) - err = errors.New("No authorization") + authentication.WriteUserData(userID, userData) + //err = errors.New("No authorization") } return diff --git a/src/buffer.go b/src/buffer.go index 8af757f..66fe6a1 100644 --- a/src/buffer.go +++ b/src/buffer.go @@ -150,7 +150,7 @@ func bufferingStream(playlistID, streamingURL, channelName string, w http.Respon } // New Stream for an already active Playlist - if newStream == true { + if newStream { // Check whether the Playlist allows another Stream (Tuner) if len(playlist.Streams) >= playlist.Tuner { @@ -159,8 +159,7 @@ func bufferingStream(playlistID, streamingURL, channelName string, w http.Respon if value, ok := webUI["html/video/stream-limit.ts"]; ok { - var content string - content = GetHTMLString(value.(string)) + var content string = GetHTMLString(value.(string)) w.WriteHeader(200) w.Header().Set("Content-type", "video/mpeg") @@ -200,7 +199,7 @@ func bufferingStream(playlistID, streamingURL, channelName string, w http.Respon } // Check whether the Stream is already being played by another Client - if playlist.Streams[streamID].Status == false && newStream == true { + if !playlist.Streams[streamID].Status && newStream { // New buffer is required stream = playlist.Streams[streamID] @@ -242,7 +241,7 @@ func bufferingStream(playlistID, streamingURL, channelName string, w http.Respon if stream, ok := playlist.Streams[streamID]; ok { - if stream.Status == false { + if !stream.Status { timeOut++ @@ -268,12 +267,13 @@ func bufferingStream(playlistID, streamingURL, channelName string, w http.Respon // Monitor HTTP Client connection - cn, ok := w.(http.CloseNotifier) + //cn, ok := w.(http.CloseNotifier) + ctx := r.Context() if ok { select { - case <-cn.CloseNotify(): + case <-ctx.Done(): // cn.CloseNotify(): killClientConnection(streamID, playlistID, false) return @@ -317,6 +317,12 @@ func bufferingStream(playlistID, streamingURL, channelName string, w http.Respon var fileName = stream.Folder + f file, err := bufferVFS.Open(fileName) + if err != nil { + debug = fmt.Sprintf("Buffer Open (%s)", fileName) + showDebug(debug, 2) + return + } + defer file.Close() if err == nil { @@ -334,7 +340,7 @@ func bufferingStream(playlistID, streamingURL, channelName string, w http.Respon file.Seek(0, 0) - if streaming == false { + if !streaming { contentType := http.DetectContentType(buffer) _ = contentType @@ -464,7 +470,7 @@ func killClientConnection(streamID int, playlistID string, force bool) { var playlist = p.(Playlist) - if force == true { + if force { delete(playlist.Streams, streamID) showInfo(fmt.Sprintf("Streaming Status:Playlist: %s - Tuner: %d / %d", playlist.PlaylistName, len(playlist.Streams), playlist.Tuner)) return @@ -624,9 +630,9 @@ func connectToStreamingServer(streamID int, playlistID string) { var stream ThisStream = playlist.Streams[streamID] - if stream.Status == false { + if !stream.Status { - if strings.Index(stream.URL, ".m3u8") != -1 { + if strings.Contains(stream.URL, ".m3u8") { showInfo("Streaming Type:" + "[HLS / M3U8]") } else { showInfo("Streaming Type:" + "[TS]") @@ -644,7 +650,7 @@ func connectToStreamingServer(streamID int, playlistID string) { for { - if clientConnection(stream) == false { + if !clientConnection(stream) { return } @@ -666,7 +672,7 @@ func connectToStreamingServer(streamID int, playlistID string) { // Jump for redirect (301 <---> 308) Redirect: - req, err := http.NewRequest("GET", currentURL, nil) + req, _ := http.NewRequest("GET", currentURL, nil) req.Header.Set("User-Agent", Settings.UserAgent) req.Header.Set("Connection", "close") //req.Header.Set("Range", "bytes=0-") @@ -688,7 +694,7 @@ func connectToStreamingServer(streamID int, playlistID string) { if resp == nil { - err = errors.New("No response from streaming server") + err = errors.New("no response from streaming server") fmt.Println("Current URL:", currentURL) ShowError(err, 0) @@ -719,7 +725,7 @@ func connectToStreamingServer(streamID int, playlistID string) { } else { - err = errors.New("Streaming server") + err = errors.New("streaming server") ShowError(err, 4002) addErrorToStream(err) @@ -772,7 +778,7 @@ func connectToStreamingServer(streamID int, playlistID string) { } // Read out information about the streaming server - if stream.Status == false { + if !stream.Status { if len(stream.URLStreamingServer) == 0 { @@ -848,7 +854,7 @@ func connectToStreamingServer(streamID int, playlistID string) { var tmpFile = fmt.Sprintf("%s%d.ts", tmpFolder, tmpSegment) - if clientConnection(stream) == false { + if !clientConnection(stream) { resp.Body.Close() return } @@ -900,7 +906,7 @@ func connectToStreamingServer(streamID int, playlistID string) { fileSize = fileSize + n - if clientConnection(stream) == false { + if !clientConnection(stream) { resp.Body.Close() bufferFile.Close() @@ -941,7 +947,7 @@ func connectToStreamingServer(streamID int, playlistID string) { tmpFile = fmt.Sprintf("%s%d.ts", tmpFolder, tmpSegment) - if clientConnection(stream) == false { + if !clientConnection(stream) { bufferFile.Close() resp.Body.Close() @@ -978,7 +984,7 @@ func connectToStreamingServer(streamID int, playlistID string) { // Unknown Format default: showInfo("Content Type:" + resp.Header.Get("Content-Type")) - err = errors.New("Streaming error") + err = errors.New("streaming error") ShowError(err, 4003) addErrorToStream(err) @@ -989,7 +995,7 @@ func connectToStreamingServer(streamID int, playlistID string) { s++ // Calculate the waiting time for the Download of the next Segment - if stream.HLS == true { + if stream.HLS { var sleep float64 @@ -1154,14 +1160,13 @@ func parseM3U8(stream *ThisStream) (err error) { } - return } if strings.Contains(stream.Body, "#EXTM3U") { var lines = strings.Split(strings.Replace(stream.Body, "\r\n", "\n", -1), "\n") - if stream.DynamicBandwidth == false { + if !stream.DynamicBandwidth { stream.DynamicStream = make(map[int]DynamicStream) } @@ -1184,7 +1189,7 @@ func parseM3U8(stream *ThisStream) (err error) { } // M3U8 contains several links to additional M3U8 Playlists (Bandwidth option) - if segment.Info == true && len(line) > 0 && line[0:1] != "#" { + if segment.Info && len(line) > 0 && line[0:1] != "#" { var dynamicStream DynamicStream @@ -1228,7 +1233,7 @@ func parseM3U8(stream *ThisStream) (err error) { noNewSegment = true - if stream.Status == false { + if !stream.Status { if len(m3u8Segments) >= 2 { m3u8Segments = m3u8Segments[0 : len(m3u8Segments)-1] @@ -1240,7 +1245,7 @@ func parseM3U8(stream *ThisStream) (err error) { segment = s - if stream.Status == false { + if !stream.Status { noNewSegment = false stream.LastSequence = segment.Sequence @@ -1266,9 +1271,9 @@ func parseM3U8(stream *ThisStream) (err error) { } - if noNewSegment == false { + if !noNewSegment { - if stream.DynamicBandwidth == true { + if stream.DynamicBandwidth { switchBandwidth(stream) } else { stream.Segment = append(stream.Segment, segment) @@ -1276,7 +1281,7 @@ func parseM3U8(stream *ThisStream) (err error) { } - if noNewSegment == true { + if noNewSegment { var sleep = lastSegmentDuration * 0.5 @@ -1360,7 +1365,7 @@ func thirdPartyBuffer(streamID int, playlistID string) { var buf bytes.Buffer var fileSize = 0 var streamStatus = make(chan bool) - + //var dir_file_mode os.FileMode = fs.ModeDir var tmpFolder = playlist.Streams[streamID].Folder var url = playlist.Streams[streamID].URL @@ -1486,7 +1491,7 @@ func thirdPartyBuffer(streamID int, playlistID string) { return } - if len(buf.Bytes()) == 0 && stream.Status == false { + if len(buf.Bytes()) == 0 && !stream.Status { showInfo(bufferType + ":Processing data") } @@ -1564,11 +1569,11 @@ func thirdPartyBuffer(streamID int, playlistID string) { } - if fileSize == 0 && stream.Status == false { + if fileSize == 0 && !stream.Status { showInfo("Streaming Status:Receive data from " + bufferType) } - if clientConnection(stream) == false { + if !clientConnection(stream) { cmd.Process.Kill() f.Close() cmd.Wait() @@ -1593,7 +1598,7 @@ func thirdPartyBuffer(streamID int, playlistID string) { if fileSize >= bufferSize/2 { - if tmpSegment == 1 && stream.Status == false { + if tmpSegment == 1 && !stream.Status { close(t) close(streamStatus) showInfo(fmt.Sprintf("Streaming Status:Buffering data from %s", bufferType)) @@ -1602,7 +1607,7 @@ func thirdPartyBuffer(streamID int, playlistID string) { f.Close() tmpSegment++ - if stream.Status == false { + if !stream.Status { Lock.Lock() stream.Status = true playlist.Streams[streamID] = stream @@ -1615,7 +1620,7 @@ func thirdPartyBuffer(streamID int, playlistID string) { fileSize = 0 var errCreate, errOpen error - f, errCreate = bufferVFS.Create(tmpFile) + _, errCreate = bufferVFS.Create(tmpFile) f, errOpen = bufferVFS.OpenFile(tmpFile, os.O_APPEND|os.O_WRONLY, 0600) if errCreate != nil || errOpen != nil { cmd.Process.Kill() @@ -1675,7 +1680,7 @@ func initBufferVFS(virtual bool) { } else { bufferVFS = osfs.New() } - + } func debugRequest(req *http.Request) { @@ -1714,8 +1719,6 @@ func debugRequest(req *http.Request) { debug = "Request:* * * * * * END HTTP(S) REQUEST * * * * * *" showDebug(debug, debugLevel) - - return } func debugResponse(resp *http.Response) { @@ -1759,6 +1762,4 @@ func debugResponse(resp *http.Response) { debug = "Pesponse:* * * * * * END RESPONSE * * * * * * " showDebug(debug, debugLevel) - - return } diff --git a/src/config.go b/src/config.go index 6413c1e..8b4251f 100644 --- a/src/config.go +++ b/src/config.go @@ -151,7 +151,7 @@ func Init() (err error) { ShowError(err, 0) return } - + err = resolveHostIP() if err != nil { ShowError(err, 1002) @@ -163,7 +163,7 @@ func Init() (err error) { // Check the permissions on all Folders err = checkFilePermission(System.Folder.Config) if err == nil { - err = checkFilePermission(System.Folder.Temp) + checkFilePermission(System.Folder.Temp) } // Separate tmp Folder for each Instance @@ -183,7 +183,7 @@ func Init() (err error) { // Set Branch System.Branch = Settings.Branch - if System.Dev == true { + if System.Dev { System.Branch = "Development" } @@ -199,8 +199,8 @@ func Init() (err error) { System.URLBase = fmt.Sprintf("%s://%s:%s", System.ServerProtocol.WEB, Settings.HostIP, Settings.Port) - // Create HTML Files, with dev == true the local HTML Files are used - if System.Dev == true { + // Create HTML Files, with dev the local HTML Files are used + if System.Dev { HTMLInit("webUI", "src", "html"+string(os.PathSeparator), "src"+string(os.PathSeparator)+"webUI.go") err = BuildGoFile() @@ -238,7 +238,7 @@ func StartSystem(updateProviderFiles bool) (err error) { showInfo(fmt.Sprintf("Plex Channel Limit:%d", System.PlexChannelLimit)) // Update Provider Data - if len(Settings.Files.M3U) > 0 && Settings.FilesUpdate == true || updateProviderFiles == true { + if len(Settings.Files.M3U) > 0 && Settings.FilesUpdate || updateProviderFiles { err = xTeVeAutoBackup() if err != nil { diff --git a/src/data.go b/src/data.go index 75a33a1..14b2016 100644 --- a/src/data.go +++ b/src/data.go @@ -55,9 +55,9 @@ func updateServerSettings(request RequestStruct) (settings SettingsStruct, err e } - if len(newUpdateTimes) == 0 { - //newUpdateTimes = append(newUpdateTimes, "0000") - } + // if len(newUpdateTimes) == 0 { + // //newUpdateTimes = append(newUpdateTimes, "0000") + // } value = newUpdateTimes @@ -146,7 +146,7 @@ func updateServerSettings(request RequestStruct) (settings SettingsStruct, err e return } - if Settings.AuthenticationWEB == false { + if !Settings.AuthenticationWEB { Settings.AuthenticationAPI = false Settings.AuthenticationM3U = false @@ -188,7 +188,7 @@ func updateServerSettings(request RequestStruct) (settings SettingsStruct, err e settings = Settings - if reloadData == true { + if reloadData { err = buildDatabaseDVR() if err != nil { @@ -199,7 +199,7 @@ func updateServerSettings(request RequestStruct) (settings SettingsStruct, err e } - if cacheImages == true { + if cacheImages { if Settings.EpgSource == "XEPG" && System.ImageCachingInProgress == 0 { @@ -238,7 +238,7 @@ func updateServerSettings(request RequestStruct) (settings SettingsStruct, err e } - if createXEPGFiles == true { + if createXEPGFiles { go func() { createXMLTVFile() @@ -341,7 +341,7 @@ func saveFiles(request RequestStruct, fileType string) (err error) { return } - if reloadData == true { + if reloadData { err = buildDatabaseDVR() if err != nil { @@ -415,7 +415,6 @@ func deleteLocalProviderFiles(dataID, fileType string) { os.RemoveAll(System.Folder.Data + dataID + fileExtension) } - return } // Save Filter Settings (WebUI) @@ -470,7 +469,7 @@ func saveFilter(request RequestStruct) (settings SettingsStruct, err error) { if len(filter) == 0 { err = errors.New(getErrMsg(1014)) - if newFilter == true { + if newFilter { delete(filterMap, dataID) } @@ -538,7 +537,7 @@ func saveXEpgMapping(request RequestStruct) (err error) { // If the Mapping is saved again while the Database is being created, the Database will not be updated again until later. go func() { - if System.BackgroundProcess == true { + if System.BackgroundProcess { return } @@ -556,7 +555,7 @@ func saveXEpgMapping(request RequestStruct) (err error) { cleanupXEPG() System.ScanInProgress = 0 buildXEPG(false) - showInfo("XEPG:" + fmt.Sprintf("Ready to use")) + showInfo("XEPG: Ready to use") System.BackgroundProcess = false @@ -597,7 +596,7 @@ func saveUserData(request RequestStruct) (err error) { return } - if request.DeleteUser == true { + if request.DeleteUser { err = authentication.RemoveUser(userID) return } @@ -878,12 +877,12 @@ func buildDatabaseDVR() (err error) { if value, ok := s[key]; ok { if len(value) > 0 { - if _, ok := tmpGroupsM3U[value]; ok { - tmpGroupsM3U[value]++ - } else { - tmpGroupsM3U[value] = 1 - } - + // if _, ok := tmpGroupsM3U[value]; ok { + // tmpGroupsM3U[value]++ + // } else { + // tmpGroupsM3U[value] = 1 + // } + tmpGroupsM3U[value]++ groupTitle++ } } @@ -958,7 +957,7 @@ func buildDatabaseDVR() (err error) { for group, count := range tmpGroupsM3U { var text = fmt.Sprintf("%s (%d)", group, count) - var value = fmt.Sprintf("%s", group) + var value = group Data.Playlist.M3U.Groups.Text = append(Data.Playlist.M3U.Groups.Text, text) Data.Playlist.M3U.Groups.Value = append(Data.Playlist.M3U.Groups.Value, value) } diff --git a/src/hdhr.go b/src/hdhr.go index 83f56f5..490486d 100644 --- a/src/hdhr.go +++ b/src/hdhr.go @@ -158,7 +158,7 @@ func getLineup() (jsonContent []byte, err error) { return } - if xepgChannel.XActive == true { + if xepgChannel.XActive { var stream LineupStream stream.GuideName = xepgChannel.XName stream.GuideNumber = xepgChannel.XChannelID diff --git a/src/html-build.go b/src/html-build.go index 4010e21..1c54172 100644 --- a/src/html-build.go +++ b/src/html-build.go @@ -73,10 +73,10 @@ func createMapFromFiles(folder string) string { // Sort map keys before writing to file to prevent git mark webUI.go as modified when no real changes has been made keys := make([]string, 0, len(blankMap)) - for k := range blankMap { - keys = append(keys, k) - } - sort.Strings(keys) + for k := range blankMap { + keys = append(keys, k) + } + sort.Strings(keys) for _, key := range keys { var newKey = key @@ -88,7 +88,7 @@ func createMapFromFiles(folder string) string { func readFilesToMap(path string, info os.FileInfo, err error) error { - if info.IsDir() == false { + if !info.IsDir() { var base64Str = fileToBase64(getLocalPath(path)) blankMap[filepath.ToSlash(path)] = base64Str } diff --git a/src/info.go b/src/info.go index c3e0e3e..f0929f3 100644 --- a/src/info.go +++ b/src/info.go @@ -20,47 +20,42 @@ func ShowSystemInfo() { fmt.Println("OK") println() - fmt.Println(fmt.Sprintf("Version: %s %s.%s", System.Name, System.Version, System.Build)) - fmt.Println(fmt.Sprintf("Branch: %s", System.Branch)) - fmt.Println(fmt.Sprintf("GitHub: %s/%s | Git update = %t", System.GitHub.User, System.GitHub.Repo, System.GitHub.Update)) - fmt.Println(fmt.Sprintf("Folder (config): %s", System.Folder.Config)) + fmt.Printf("Version: %s %s.%s\n", System.Name, System.Version, System.Build) + fmt.Printf("Branch: %s\n", System.Branch) + fmt.Printf("GitHub: %s/%s | Git update = %t\n", System.GitHub.User, System.GitHub.Repo, System.GitHub.Update) + fmt.Printf("Folder (config): %s\n", System.Folder.Config) - fmt.Println(fmt.Sprintf("Streams: %d / %d", len(Data.Streams.Active), len(Data.Streams.All))) - fmt.Println(fmt.Sprintf("Filter: %d", len(Data.Filter))) - fmt.Println(fmt.Sprintf("XEPG Chanels: %d", int(Data.XEPG.XEPGCount))) + fmt.Printf("Streams: %d / %d\n", len(Data.Streams.Active), len(Data.Streams.All)) + fmt.Printf("Filter: %d\n", len(Data.Filter)) + fmt.Printf("XEPG Chanels: %d\n", int(Data.XEPG.XEPGCount)) println() - fmt.Println(fmt.Sprintf("IPv4 Addresses:")) + fmt.Println("IPv4 Addresses:") for i, ipv4 := range System.IPAddressesV4 { switch count := i; { case count < 10: - fmt.Println(fmt.Sprintf(" %d. %s", count, ipv4)) - break + fmt.Printf(" %d. %s\n", count, ipv4) case count < 100: - fmt.Println(fmt.Sprintf(" %d. %s", count, ipv4)) - break + fmt.Printf(" %d. %s\n", count, ipv4) } } println() - fmt.Println(fmt.Sprintf("IPv6 Addresses:")) + fmt.Println("IPv6 Addresses:") for i, ipv4 := range System.IPAddressesV6 { switch count := i; { case count < 10: - fmt.Println(fmt.Sprintf(" %d. %s", count, ipv4)) - break + fmt.Printf(" %d. %s\n", count, ipv4) case count < 100: - fmt.Println(fmt.Sprintf(" %d. %s", count, ipv4)) - break - + fmt.Printf(" %d. %s\n", count, ipv4) } } @@ -68,33 +63,33 @@ func ShowSystemInfo() { println("---") fmt.Println("Settings [General]") - fmt.Println(fmt.Sprintf("xTeVe Update: %t", Settings.XteveAutoUpdate)) - fmt.Println(fmt.Sprintf("UUID: %s", Settings.UUID)) - fmt.Println(fmt.Sprintf("Tuner (Plex / Emby): %d", Settings.Tuner)) - fmt.Println(fmt.Sprintf("EPG Source: %s", Settings.EpgSource)) + fmt.Printf("xTeVe Update: %t\n", Settings.XteveAutoUpdate) + fmt.Printf("UUID: %s\n", Settings.UUID) + fmt.Printf("Tuner (Plex / Emby): %d\n", Settings.Tuner) + fmt.Printf("EPG Source: %s\n", Settings.EpgSource) println("---") fmt.Println("Settings [Files]") - fmt.Println(fmt.Sprintf("Schedule: %s", strings.Join(Settings.Update, ","))) - fmt.Println(fmt.Sprintf("Files Update: %t", Settings.FilesUpdate)) - fmt.Println(fmt.Sprintf("Folder (tmp): %s", Settings.TempPath)) - fmt.Println(fmt.Sprintf("Image Chaching: %t", Settings.CacheImages)) - fmt.Println(fmt.Sprintf("Replace EPG Image: %t", Settings.XepgReplaceMissingImages)) + fmt.Printf("Schedule: %s\n", strings.Join(Settings.Update, ",")) + fmt.Printf("Files Update: %t\n", Settings.FilesUpdate) + fmt.Printf("Folder (tmp): %s\n", Settings.TempPath) + fmt.Printf("Image Chaching: %t\n", Settings.CacheImages) + fmt.Printf("Replace EPG Image: %t\n", Settings.XepgReplaceMissingImages) println("---") fmt.Println("Settings [Streaming]") - fmt.Println(fmt.Sprintf("Buffer: %s", Settings.Buffer)) - fmt.Println(fmt.Sprintf("UDPxy: %s", Settings.UDPxy)) - fmt.Println(fmt.Sprintf("Buffer Size: %d KB", Settings.BufferSize)) - fmt.Println(fmt.Sprintf("Timeout: %d ms", int(Settings.BufferTimeout))) - fmt.Println(fmt.Sprintf("User Agent: %s", Settings.UserAgent)) + fmt.Printf("Buffer: %s\n", Settings.Buffer) + fmt.Printf("UDPxy: %s\n", Settings.UDPxy) + fmt.Printf("Buffer Size: %d KB\n", Settings.BufferSize) + fmt.Printf("Timeout: %d ms\n", int(Settings.BufferTimeout)) + fmt.Printf("User Agent: %s\n", Settings.UserAgent) println("---") fmt.Println("Settings [Backup]") - fmt.Println(fmt.Sprintf("Folder (backup): %s", Settings.BackupPath)) - fmt.Println(fmt.Sprintf("Backup Keep: %d", Settings.BackupKeep)) + fmt.Printf("Folder (backup): %s\n", Settings.BackupPath) + fmt.Printf("Backup Keep: %d\n", Settings.BackupKeep) } diff --git a/src/m3u.go b/src/m3u.go index 29d40a6..033093f 100644 --- a/src/m3u.go +++ b/src/m3u.go @@ -9,8 +9,9 @@ import ( "strconv" "strings" - "github.com/samber/lo" m3u "xteve/src/internal/m3u-parser" + + "github.com/samber/lo" ) // Parse Playlists @@ -117,18 +118,18 @@ func filterThisStream(s interface{}) (status bool) { } } - if match == true { + if match { if len(exclude) > 0 { var status = checkConditions(search, exclude, "exclude") - if status == false { + if !status { return false } } if len(include) > 0 { var status = checkConditions(search, include, "include") - if status == false { + if !status { return false } } @@ -194,7 +195,7 @@ func buildM3U(groups []string) (m3u string, err error) { err := json.Unmarshal([]byte(mapToJSON(dxc)), &xepgChannel) if err == nil { - if xepgChannel.XActive == true { + if xepgChannel.XActive { if len(groups) > 0 { diff --git a/src/maintenance.go b/src/maintenance.go index 2dc26d1..4698cda 100644 --- a/src/maintenance.go +++ b/src/maintenance.go @@ -52,7 +52,7 @@ func maintenance() { ShowError(err, 000) } - if Settings.CacheImages == false && System.ImageCachingInProgress == 0 { + if !Settings.CacheImages && System.ImageCachingInProgress == 0 { removeChildItems(System.Folder.ImagesCache) } @@ -75,7 +75,6 @@ func maintenance() { } - return } func randomTime(min, max int) int { diff --git a/src/provider.go b/src/provider.go index 3acbd01..5da3bb2 100644 --- a/src/provider.go +++ b/src/provider.go @@ -152,7 +152,7 @@ func getProviderData(fileType, fileID string) (err error) { } // If an ID is available and does not match the one from the Database, the Update is skipped (goto) - if len(fileID) > 0 && newProvider == false { + if len(fileID) > 0 && !newProvider { if dataID != fileID { goto Done } @@ -204,7 +204,7 @@ func getProviderData(fileType, fileID string) (err error) { ShowError(err, 000) var downloadErr = err - if newProvider == false { + if !newProvider { // Check whether there is an older File var file = System.Folder.Data + dataID + fileExtension @@ -236,7 +236,7 @@ func getProviderData(fileType, fileID string) (err error) { } // Calculate the Margin of Error - if newProvider == false { + if !newProvider { if value, ok := dataMap[dataID].(map[string]interface{}); ok { diff --git a/src/screen.go b/src/screen.go index 89918b4..45a60d4 100644 --- a/src/screen.go +++ b/src/screen.go @@ -1,7 +1,6 @@ package src import ( - "errors" "fmt" "log" "os" @@ -14,7 +13,7 @@ import ( func showInfo(str string) { - if System.Flag.Info == true { + if System.Flag.Info { return } @@ -41,7 +40,6 @@ func showInfo(str string) { } - return } func showDebug(str string, level int) { @@ -75,7 +73,6 @@ func showDebug(str string, level int) { } - return } func showHighlight(str string) { @@ -107,7 +104,6 @@ func showHighlight(str string) { addNotification(notification) - return } func showWarning(errCode int) { @@ -123,7 +119,6 @@ func showWarning(errCode int) { WebScreenLog.Warnings++ mutex.Unlock() - return } // ShowError : Shows the Error Messages in the Console @@ -141,7 +136,6 @@ func ShowError(err error, errCode int) { WebScreenLog.Errors++ mutex.Unlock() - return } func printLogOnScreen(logMsg string, logType string) { @@ -213,7 +207,6 @@ func logCleanUp() { WebScreenLog.Log = logs - return } // Return Error Message from numeric Error Codes @@ -226,89 +219,89 @@ func getErrMsg(errCode int) (errMsg string) { // Errors case 1001: - errMsg = fmt.Sprintf("Web server could not be started.") + errMsg = "Web server could not be started." case 1002: - errMsg = fmt.Sprintf("No local IP address found.") + errMsg = "No local IP address found." case 1003: - errMsg = fmt.Sprintf("Invalid xml") + errMsg = "Invalid xml" case 1004: - errMsg = fmt.Sprintf("File not found") + errMsg = "File not found" case 1005: - errMsg = fmt.Sprintf("Invalid M3U file, an extended M3U file is required.") + errMsg = "Invalid M3U file, an extended M3U file is required." case 1006: - errMsg = fmt.Sprintf("No playlist!") + errMsg = "No playlist!" case 1007: - errMsg = fmt.Sprintf("XEPG requires an XMLTV file.") + errMsg = "XEPG requires an XMLTV file." case 1010: - errMsg = fmt.Sprintf("Invalid file compression") + errMsg = "Invalid file compression" case 1011: errMsg = fmt.Sprintf("Data is corrupt or unavailable, %s now uses an older version of this file", System.Name) case 1012: - errMsg = fmt.Sprintf("Invalid formatting of the time") + errMsg = "Invalid formatting of the time" case 1013: errMsg = fmt.Sprintf("Invalid settings file (settings.json), file must be at least version %s", System.Compatibility) case 1014: - errMsg = fmt.Sprintf("Invalid filter rule") + errMsg = "Invalid filter rule" case 1015: errMsg = fmt.Sprintf("Specified temp folder path is invalid, fallback to %s", os.TempDir()) case 1016: - errMsg = fmt.Sprintf("Web server could not be stopped.") + errMsg = "Web server could not be stopped." case 1017: - errMsg = fmt.Sprintf("Web server could not be started in TLS mode, fallback to default.") + errMsg = "Web server could not be started in TLS mode, fallback to default." case 1018: - errMsg = fmt.Sprintf("Failed to compile channel name update regex") + errMsg = "Failed to compile channel name update regex" case 1020: - errMsg = fmt.Sprintf("Data could not be saved, invalid keyword") + errMsg = "Data could not be saved, invalid keyword" // Database Update case 1030: errMsg = fmt.Sprintf("Invalid settings file (%s)", System.File.Settings) case 1031: - errMsg = fmt.Sprintf("Database error. The database version of your settings is not compatible with this version.") + errMsg = "Database error. The database version of your settings is not compatible with this version." // M3U Parser case 1050: - errMsg = fmt.Sprintf("Invalid duration specification in the M3U8 playlist.") + errMsg = "Invalid duration specification in the M3U8 playlist." case 1060: - errMsg = fmt.Sprintf("Invalid characters found in the tvg parameters, streams with invalid parameters were skipped.") + errMsg = "Invalid characters found in the tvg parameters, streams with invalid parameters were skipped." // Filesystem case 1070: - errMsg = fmt.Sprintf("Folder could not be created.") + errMsg = "Folder could not be created." case 1071: - errMsg = fmt.Sprintf("File could not be created") + errMsg = "File could not be created" case 1072: - errMsg = fmt.Sprintf("File not found") + errMsg = "File not found" case 1073: - errMsg = fmt.Sprintf("Can not remove old config folder contents before recover") + errMsg = "Can not remove old config folder contents before recover" // Backup case 1090: - errMsg = fmt.Sprintf("Automatic backup failed") + errMsg = "Automatic backup failed" // Websockets case 1100: - errMsg = fmt.Sprintf("WebUI build error") + errMsg = "WebUI build error" case 1101: - errMsg = fmt.Sprintf("WebUI request error") + errMsg = "WebUI request error" case 1102: - errMsg = fmt.Sprintf("WebUI response error") + errMsg = "WebUI response error" // PMS Guide Numbers case 1200: - errMsg = fmt.Sprintf("Could not create file") + errMsg = "Could not create file" // Stream URL Error case 1201: - errMsg = fmt.Sprintf("Plex stream error") + errMsg = "Plex stream error" case 1202: - errMsg = fmt.Sprintf("Steaming URL could not be found in any playlist") + errMsg = "Steaming URL could not be found in any playlist" case 1203: - errMsg = fmt.Sprintf("Steaming URL could not be found in any playlist") + errMsg = "Steaming URL could not be found in any playlist" case 1204: - errMsg = fmt.Sprintf("Streaming was stopped by third party transcoder (FFmpeg / VLC)") + errMsg = "Streaming was stopped by third party transcoder (FFmpeg / VLC)" // Warnings case 2000: @@ -318,94 +311,94 @@ func getErrMsg(errCode int) (errMsg string) { // Free slot return case 2002: - errMsg = fmt.Sprintf("PMS can not play m3u8 streams") + errMsg = "PMS can not play m3u8 streams" case 2003: - errMsg = fmt.Sprintf("PMS can not play streams over RTSP.") + errMsg = "PMS can not play streams over RTSP." case 2004: - errMsg = fmt.Sprintf("Buffer is disabled for this stream.") + errMsg = "Buffer is disabled for this stream." case 2005: - errMsg = fmt.Sprintf("There are no channels mapped, use the mapping menu to assign EPG data to the channels.") + errMsg = "There are no channels mapped, use the mapping menu to assign EPG data to the channels." case 2010: - errMsg = fmt.Sprintf("No valid streaming URL") + errMsg = "No valid streaming URL" case 2020: - errMsg = fmt.Sprintf("FFmpeg binary was not found. Check the FFmpeg binary path in the xTeVe settings.") + errMsg = "FFmpeg binary was not found. Check the FFmpeg binary path in the xTeVe settings." case 2021: - errMsg = fmt.Sprintf("VLC binary was not found. Check the VLC path binary in the xTeVe settings.") + errMsg = "VLC binary was not found. Check the VLC path binary in the xTeVe settings." case 2022: - errMsg = fmt.Sprintf("Loaded database had broken XEPG mapping (version <= 2.1.1). It was cleared.") + errMsg = "Loaded database had broken XEPG mapping (version <= 2.1.1). It was cleared." case 2099: - errMsg = fmt.Sprintf("Updates have been disabled by the developer") + errMsg = "Updates have been disabled by the developer" // Tuner case 2105: errMsg = fmt.Sprintf("The number of tuners has changed, you have to delete " + System.Name + " in Plex / Emby HDHR and set it up again.") case 2106: - errMsg = fmt.Sprintf("This function is only available with XEPG as EPG source") + errMsg = "This function is only available with XEPG as EPG source" case 2110: - errMsg = fmt.Sprintf("Don't run this as Root!") + errMsg = "Don't run this as Root!" case 2300: - errMsg = fmt.Sprintf("No channel logo found in the XMLTV or M3U file.") + errMsg = "No channel logo found in the XMLTV or M3U file." case 2301: - errMsg = fmt.Sprintf("XMLTV file no longer available, channel has been deactivated.") + errMsg = "XMLTV file no longer available, channel has been deactivated." case 2302: - errMsg = fmt.Sprintf("Channel ID in the XMLTV file has changed. Channel has been deactivated.") + errMsg = "Channel ID in the XMLTV file has changed. Channel has been deactivated." // User Authentication case 3000: - errMsg = fmt.Sprintf("Database for user authentication could not be initialized.") + errMsg = "Database for user authentication could not be initialized." case 3001: - errMsg = fmt.Sprintf("The user has no authorization to load the channels.") + errMsg = "The user has no authorization to load the channels." // Buffer case 4000: - errMsg = fmt.Sprintf("Connection to streaming source was interrupted.") + errMsg = "Connection to streaming source was interrupted." case 4001: - errMsg = fmt.Sprintf("Too many errors connecting to the provider. Streaming is canceled.") + errMsg = "Too many errors connecting to the provider. Streaming is canceled." case 4002: - errMsg = fmt.Sprintf("New URL for the redirect to the streaming server is missing") + errMsg = "New URL for the redirect to the streaming server is missing" case 4003: - errMsg = fmt.Sprintf("Server sends an incompatible content-type") + errMsg = "Server sends an incompatible content-type" case 4004: - errMsg = fmt.Sprintf("This error message comes from the provider") + errMsg = "This error message comes from the provider" case 4005: - errMsg = fmt.Sprintf("Temporary buffer files could not be deleted") + errMsg = "Temporary buffer files could not be deleted" case 4006: - errMsg = fmt.Sprintf("Server connection timeout") + errMsg = "Server connection timeout" case 4007: - errMsg = fmt.Sprintf("Old temporary buffer file could not be deleted") + errMsg = "Old temporary buffer file could not be deleted" - // Buffer (M3U8) + // Buffer (M3U8 case 4050: - errMsg = fmt.Sprintf("Invalid M3U8 file") + errMsg = "Invalid M3U8 file" case 4051: - errMsg = fmt.Sprintf("#EXTM3U header is missing") + errMsg = "#EXTM3U header is missing" // Caching case 4100: - errMsg = fmt.Sprintf("Unknown content type for downloaded image") + errMsg = "Unknown content type for downloaded image" case 4101: - errMsg = fmt.Sprintf("Invalid URL, original URL is used for this image") + errMsg = "Invalid URL, original URL is used for this image" // API case 5000: - errMsg = fmt.Sprintf("Invalid API command") + errMsg = "Invalid API command" // Update Server case 6001: - errMsg = fmt.Sprintf("Ivalid key") + errMsg = "Ivalid key" case 6002: - errMsg = fmt.Sprintf("Update failed") + errMsg = "Update failed" case 6003: - errMsg = fmt.Sprintf("Update server not available") + errMsg = "Update server not available" case 6004: - errMsg = fmt.Sprintf("xTeVe update available") + errMsg = "xTeVe update available" // Certificates case 7000: - errMsg = fmt.Sprintf("Can not generate a certificate") + errMsg = "Can not generate a certificate" default: errMsg = fmt.Sprintf("Unknown error / warning (%d)", errCode) @@ -420,12 +413,9 @@ func sendAlert(text string) { case webAlerts <- text: // default: - err := errors.New(fmt.Sprintf("Client alert buffer is full, dropping the message: %v", text)) + err := fmt.Errorf("client alert buffer is full, dropping the message: %v", text) ShowError(err, 0) } - - return - } func addNotification(notification Notification) (err error) { diff --git a/src/ssdp.go b/src/ssdp.go index 63ce77c..9fc6074 100644 --- a/src/ssdp.go +++ b/src/ssdp.go @@ -1,72 +1,72 @@ package src import ( - "fmt" - "log" - "os" - "os/signal" - "time" + "fmt" + "log" + "os" + "os/signal" + "time" - "github.com/koron/go-ssdp" + "github.com/koron/go-ssdp" ) // SSDP : SSPD / DLNA Server func SSDP() (err error) { - if Settings.SSDP == false || System.Flag.Info == true { - return - } + if !Settings.SSDP || System.Flag.Info { + return + } - showInfo(fmt.Sprintf("SSDP / DLNA:%t", Settings.SSDP)) + showInfo(fmt.Sprintf("SSDP / DLNA:%t", Settings.SSDP)) - quit := make(chan os.Signal, 1) - signal.Notify(quit, os.Interrupt) + quit := make(chan os.Signal, 1) + signal.Notify(quit, os.Interrupt) - ad, err := ssdp.Advertise( - fmt.Sprintf("upnp:rootdevice"), // send as "ST" - fmt.Sprintf("uuid:%s::upnp:rootdevice", System.DeviceID), // send as "USN" - fmt.Sprintf("%s/device.xml", System.URLBase), // send as "LOCATION" - System.AppName, // send as "SERVER" - 1800) // send as "maxAge" in "CACHE-CONTROL" + ad, err := ssdp.Advertise( + "upnp:rootdevice", // send as "ST" + fmt.Sprintf("uuid:%s::upnp:rootdevice", System.DeviceID), // send as "USN" + fmt.Sprintf("%s/device.xml", System.URLBase), // send as "LOCATION" + System.AppName, // send as "SERVER" + 1800) // send as "maxAge" in "CACHE-CONTROL" - if err != nil { - return - } + if err != nil { + return + } - // Debug SSDP - if System.Flag.Debug == 3 { - ssdp.Logger = log.New(os.Stderr, "[SSDP] ", log.LstdFlags) - } + // Debug SSDP + if System.Flag.Debug == 3 { + ssdp.Logger = log.New(os.Stderr, "[SSDP] ", log.LstdFlags) + } - go func(adv *ssdp.Advertiser) { + go func(adv *ssdp.Advertiser) { - aliveTick := time.Tick(300 * time.Second) + aliveTick := time.NewTicker(300 * time.Second) - loop: - for { + loop: + for { - select { + select { - case <-aliveTick: - err = adv.Alive() - if err != nil { - ShowError(err, 0) - adv.Bye() - adv.Close() - break loop - } + case <-aliveTick.C: + err = adv.Alive() + if err != nil { + ShowError(err, 0) + adv.Bye() + adv.Close() + break loop + } - case <-quit: - adv.Bye() - adv.Close() - os.Exit(0) - break loop + case <-quit: + adv.Bye() + adv.Close() + os.Exit(0) + break loop - } + } - } + } - }(ad) + }(ad) - return + return } diff --git a/src/struct-system.go b/src/struct-system.go index 63506b0..f55c98f 100644 --- a/src/struct-system.go +++ b/src/struct-system.go @@ -173,100 +173,100 @@ type DataStruct struct { // Filter : Used for the Filter Rules type Filter struct { - CaseSensitive bool - PreserveMapping bool - Rule string - Type string - StartingChannel string + CaseSensitive bool + PreserveMapping bool + Rule string + Type string + StartingChannel string } // XEPGChannelStruct : XEPG Structure type XEPGChannelStruct struct { - FileM3UID string `json:"_file.m3u.id,required"` - FileM3UName string `json:"_file.m3u.name,required"` - FileM3UPath string `json:"_file.m3u.path,required"` - GroupTitle string `json:"group-title,required"` - Name string `json:"name,required"` - TvgID string `json:"tvg-id,required"` - TvgLogo string `json:"tvg-logo,required"` - TvgName string `json:"tvg-name,required"` - TvgShift string `json:"tvg-shift,required"` - UpdateChannelNameRegex string `json:"update-channel-name-regex,required"` - UpdateChannelNameByGroupRegex string `json:"update-channel-name-by-group-regex,required"` - URL string `json:"url,required"` - UUIDKey string `json:"_uuid.key,required"` + FileM3UID string `json:"_file.m3u.id"` + FileM3UName string `json:"_file.m3u.name"` + FileM3UPath string `json:"_file.m3u.path"` + GroupTitle string `json:"group-title"` + Name string `json:"name"` + TvgID string `json:"tvg-id"` + TvgLogo string `json:"tvg-logo"` + TvgName string `json:"tvg-name"` + TvgShift string `json:"tvg-shift"` + UpdateChannelNameRegex string `json:"update-channel-name-regex"` + UpdateChannelNameByGroupRegex string `json:"update-channel-name-by-group-regex"` + URL string `json:"url"` + UUIDKey string `json:"_uuid.key"` UUIDValue string `json:"_uuid.value,omitempty"` - Values string `json:"_values,required"` - XActive bool `json:"x-active,required"` - XCategory string `json:"x-category,required"` - XChannelID string `json:"x-channelID,required"` - XEPG string `json:"x-epg,required"` - XGroupTitle string `json:"x-group-title,required"` - XMapping string `json:"x-mapping,required"` - XmltvFile string `json:"x-xmltv-file,required"` - XName string `json:"x-name,required"` - XUpdateChannelIcon bool `json:"x-update-channel-icon,required"` - XUpdateChannelName bool `json:"x-update-channel-name,required"` - XUpdateChannelGroup bool `json:"x-update-channel-group,required"` - XDescription string `json:"x-description,required"` - XTimeshift string `json:"x-timeshift,required"` + Values string `json:"_values"` + XActive bool `json:"x-active"` + XCategory string `json:"x-category"` + XChannelID string `json:"x-channelID"` + XEPG string `json:"x-epg"` + XGroupTitle string `json:"x-group-title"` + XMapping string `json:"x-mapping"` + XmltvFile string `json:"x-xmltv-file"` + XName string `json:"x-name"` + XUpdateChannelIcon bool `json:"x-update-channel-icon"` + XUpdateChannelName bool `json:"x-update-channel-name"` + XUpdateChannelGroup bool `json:"x-update-channel-group"` + XDescription string `json:"x-description"` + XTimeshift string `json:"x-timeshift"` } // M3UChannelStructXEPG : M3U Structure for XEPG type M3UChannelStructXEPG struct { - FileM3UID string `json:"_file.m3u.id,required"` - FileM3UName string `json:"_file.m3u.name,required"` - FileM3UPath string `json:"_file.m3u.path,required"` - GroupTitle string `json:"group-title,required"` - Name string `json:"name,required"` - TvgID string `json:"tvg-id,required"` - TvgLogo string `json:"tvg-logo,required"` - TvgName string `json:"tvg-name,required"` - TvgShift string `json:"tvg-shift,required"` - URL string `json:"url,required"` - UUIDKey string `json:"_uuid.key,required"` - UUIDValue string `json:"_uuid.value,required"` - Values string `json:"_values,required"` - PreserveMapping string `json:"_preserve-mapping,required"` - StartingChannel string `json:"_starting-channel,required"` + FileM3UID string `json:"_file.m3u.id"` + FileM3UName string `json:"_file.m3u.name"` + FileM3UPath string `json:"_file.m3u.path"` + GroupTitle string `json:"group-title"` + Name string `json:"name"` + TvgID string `json:"tvg-id"` + TvgLogo string `json:"tvg-logo"` + TvgName string `json:"tvg-name"` + TvgShift string `json:"tvg-shift"` + URL string `json:"url"` + UUIDKey string `json:"_uuid.key"` + UUIDValue string `json:"_uuid.value"` + Values string `json:"_values"` + PreserveMapping string `json:"_preserve-mapping"` + StartingChannel string `json:"_starting-channel"` } // FilterStruct : Filter Structure type FilterStruct struct { - Active bool `json:"active,required"` - CaseSensitive bool `json:"caseSensitive,required"` - PreserveMapping bool `json:"preserveMapping,required"` - Description string `json:"description,required"` - Exclude string `json:"exclude,required"` - Filter string `json:"filter,required"` - Include string `json:"include,required"` - Name string `json:"name,required"` - Rule string `json:"rule,omitempty"` - Type string `json:"type,required"` - StartingChannel string `json:"startingChannel,required"` + Active bool `json:"active"` + CaseSensitive bool `json:"caseSensitive"` + PreserveMapping bool `json:"preserveMapping"` + Description string `json:"description"` + Exclude string `json:"exclude"` + Filter string `json:"filter"` + Include string `json:"include"` + Name string `json:"name"` + Rule string `json:"rule,omitempty"` + Type string `json:"type"` + StartingChannel string `json:"startingChannel"` } // StreamingURLS : Information on all Streaming URL's type StreamingURLS struct { - Streams map[string]StreamInfo `json:"channels,required"` + Streams map[string]StreamInfo `json:"channels"` } // StreamInfo : Information about the Channel for the Streaming URL type StreamInfo struct { - ChannelNumber string `json:"channelNumber,required"` - Name string `json:"name,required"` - PlaylistID string `json:"playlistID,required"` - URL string `json:"url,required"` - URLid string `json:"urlID,required"` + ChannelNumber string `json:"channelNumber"` + Name string `json:"name"` + PlaylistID string `json:"playlistID"` + URL string `json:"url"` + URLid string `json:"urlID"` } // Notification : Notifications in the Web Interface type Notification struct { - Headline string `json:"headline,required"` - Message string `json:"message,required"` - New bool `json:"new,required"` - Time string `json:"time,required"` - Type string `json:"type,required"` + Headline string `json:"headline"` + Message string `json:"message"` + New bool `json:"new"` + Time string `json:"time"` + Type string `json:"type"` } // SettingsStruct : Content of settings.json @@ -285,7 +285,7 @@ type SettingsStruct struct { BufferTimeout float64 `json:"buffer.timeout"` CacheImages bool `json:"cache.images"` ClearXMLTVCache bool `json:"clearXMLTVCache"` - DefaultMissingEPG string `json:"defaultMissingEPG,required"` + DefaultMissingEPG string `json:"defaultMissingEPG"` DisallowURLDuplicates bool `json:"disallowURLDuplicates"` EnableMappedChannels bool `json:"enableMappedChannels"` EpgSource string `json:"epgSource"` diff --git a/src/struct-webserver.go b/src/struct-webserver.go index 15e6c94..8484fab 100644 --- a/src/struct-webserver.go +++ b/src/struct-webserver.go @@ -3,7 +3,7 @@ package src // RequestStruct : Requests via the Websocket Interface type RequestStruct struct { // Commands to xTeVe - Cmd string `json:"cmd,required"` + Cmd string `json:"cmd"` // User DeleteUser bool `json:"deleteUser,omitempty"` @@ -83,47 +83,47 @@ type ResponseStruct struct { DVR string `json:"DVR"` EpgSource string `json:"epgSource"` Errors int `json:"errors"` - M3U string `json:"m3u-url,required"` + M3U string `json:"m3u-url"` OS string `json:"os"` Streams string `json:"streams"` UUID string `json:"uuid"` Version string `json:"version"` Warnings int `json:"warnings"` XEPGCount int64 `json:"xepg"` - XML string `json:"xepg-url,required"` + XML string `json:"xepg-url"` } `json:"clientInfo,omitempty"` Data struct { Playlist struct { M3U struct { Groups struct { - Text []string `json:"text,required"` - Value []string `json:"value,required"` - } `json:"groups,required"` - } `json:"m3u,required"` - } `json:"playlist,required"` + Text []string `json:"text"` + Value []string `json:"value"` + } `json:"groups"` + } `json:"m3u"` + } `json:"playlist"` StreamPreviewUI struct { - Active []string `json:"activeStreams,required"` - Inactive []string `json:"inactiveStreams,required"` + Active []string `json:"activeStreams"` + Inactive []string `json:"inactiveStreams"` } - } `json:"data,required"` + } `json:"data"` Alert string `json:"alert,omitempty"` - ConfigurationWizard bool `json:"configurationWizard,required"` + ConfigurationWizard bool `json:"configurationWizard"` Error string `json:"err,omitempty"` IPAddressesV4Host []string `json:"ipAddressesV4Host"` // Every IPv4 address to display in web client - Log WebScreenLogStruct `json:"log,required"` + Log WebScreenLogStruct `json:"log"` LogoURL string `json:"logoURL,omitempty"` OpenLink string `json:"openLink,omitempty"` OpenMenu string `json:"openMenu,omitempty"` Reload bool `json:"reload,omitempty"` - Settings SettingsStruct `json:"settings,required"` - Status bool `json:"status,required"` + Settings SettingsStruct `json:"settings"` + Status bool `json:"status"` Token string `json:"token,omitempty"` Users map[string]interface{} `json:"users,omitempty"` Wizard int `json:"wizard,omitempty"` - XEPG map[string]interface{} `json:"xepg,required"` + XEPG map[string]interface{} `json:"xepg"` Notification map[string]Notification `json:"notification,omitempty"` } @@ -140,7 +140,7 @@ type APIRequestStruct struct { type APIResponseStruct struct { EpgSource string `json:"epg.source,omitempty"` Error string `json:"err,omitempty"` - Status bool `json:"status,required"` + Status bool `json:"status"` StreamsActive int64 `json:"streams.active,omitempty"` StreamsAll int64 `json:"streams.all,omitempty"` StreamsXepg int64 `json:"streams.xepg,omitempty"` @@ -154,7 +154,7 @@ type APIResponseStruct struct { // WebScreenLogStruct : Logs are saved in RAM and made available for the Web Interface type WebScreenLogStruct struct { - Errors int `json:"errors,required"` - Log []string `json:"log,required"` - Warnings int `json:"warnings,required"` + Errors int `json:"errors"` + Log []string `json:"log"` + Warnings int `json:"warnings"` } diff --git a/src/system.go b/src/system.go index 7a31778..6144237 100644 --- a/src/system.go +++ b/src/system.go @@ -12,7 +12,7 @@ import ( // Show Developer Information func showDevInfo() { - if System.Dev == true { + if System.Dev { fmt.Print("\033[31m") fmt.Println("* * * * * D E V M O D E * * * * *") @@ -24,7 +24,6 @@ func showDevInfo() { } - return } // Create all System Folders @@ -210,7 +209,7 @@ func saveSettings(settings SettingsStruct) (err error) { settings.BufferTimeout = 0 } - if System.Dev == true { + if System.Dev { Settings.UUID = "2019-01-DEV-xTeVe!" } @@ -267,7 +266,6 @@ func setGlobalDomain(domain string) { System.Addresses.XML = getErrMsg(2106) } - return } // Generate UUID @@ -289,7 +287,6 @@ func setDeviceID() { System.DeviceID = fmt.Sprintf("%s:%d", id, Settings.Tuner) } - return } // Convert Provider Streaming URL to xTeVe Streaming URL @@ -355,7 +352,7 @@ func getStreamInfo(urlID string) (streamInfo StreamInfo, err error) { streamInfo = s streamInfo.URL = strings.Trim(streamInfo.URL, "\r\n") } else { - err = errors.New("Streaming error") + err = errors.New("streaming error") } return diff --git a/src/toolchain.go b/src/toolchain.go index 7ff4771..1750561 100644 --- a/src/toolchain.go +++ b/src/toolchain.go @@ -80,6 +80,7 @@ func checkVFSFolder(path string, vfs avfs.VFS) (err error) { func fsIsNotExistErr(err error) bool { if errors.Is(err, fs.ErrNotExist) || errors.Is(err, avfs.ErrWinPathNotFound) || + errors.Is(err, avfs.ErrNoSuchFileOrDir) || errors.Is(err, avfs.ErrWinFileNotFound) { return true } @@ -104,8 +105,8 @@ func checkFile(filename string) (err error) { switch mode := fi.Mode(); { case mode.IsDir(): err = fmt.Errorf("%s: %s", file, getErrMsg(1072)) - case mode.IsRegular(): - break + // case mode.IsRegular(): + // break } return @@ -304,6 +305,9 @@ func saveMapToJSONFile(file string, tmpMap interface{}) error { func loadJSONFileToMap(file string) (tmpMap map[string]interface{}, err error) { f, err := os.Open(getPlatformFile(file)) + if err != nil { + panic(err) + } defer f.Close() content, err := ioutil.ReadAll(f) @@ -321,6 +325,9 @@ func loadJSONFileToMap(file string) (tmpMap map[string]interface{}, err error) { func readByteFromFile(file string) (content []byte, err error) { f, err := os.Open(getPlatformFile(file)) + if err != nil { + panic(err) + } defer f.Close() content, err = ioutil.ReadAll(f) @@ -393,7 +400,7 @@ func resolveHostIP() (err error) { } // If IP previously set in settings (including the default, empty) is not available anymore - if lo.Contains(System.IPAddressesV4Host, Settings.HostIP) == false { + if !lo.Contains(System.IPAddressesV4Host, Settings.HostIP) { Settings.HostIP = System.IPAddressesV4Host[0] } diff --git a/src/update.go b/src/update.go index 2894be1..cc72a31 100644 --- a/src/update.go +++ b/src/update.go @@ -15,7 +15,7 @@ import ( // BinaryUpdate : Binary update process. Git Branch master and beta is loaded from GitHub. func BinaryUpdate() (err error) { - if System.GitHub.Update == false { + if !System.GitHub.Update { showWarning(2099) return } @@ -58,7 +58,7 @@ func BinaryUpdate() (err error) { return err } - body, err = ioutil.ReadAll(resp.Body) + body, _ = ioutil.ReadAll(resp.Body) err = json.Unmarshal(body, &git) if err != nil { @@ -87,7 +87,7 @@ func BinaryUpdate() (err error) { err = up2date.GetVersion() if err != nil { - debug = fmt.Sprintf(err.Error()) + debug = err.Error() showDebug(debug, 1) return nil @@ -106,9 +106,9 @@ func BinaryUpdate() (err error) { var currentVersion = System.Version + "." + System.Build // Check Version Number - if updater.Response.Version > currentVersion && updater.Response.Status == true { + if updater.Response.Version > currentVersion && updater.Response.Status { - if Settings.XteveAutoUpdate == true { + if Settings.XteveAutoUpdate { // Perform update var fileType, url string @@ -118,7 +118,7 @@ func BinaryUpdate() (err error) { // Update from GitHub case "master", "beta": - showInfo(fmt.Sprintf("Update Server:GitHub")) + showInfo("Update Server:GitHub") // Update from your own Server default: @@ -309,7 +309,7 @@ func convertToNewFilter(oldFilter []interface{}) (newFilterMap map[int]interface func setValueForUUID() (err error) { - xepg, err := loadJSONFileToMap(System.File.XEPG) + xepg, _ := loadJSONFileToMap(System.File.XEPG) for _, c := range xepg { diff --git a/src/webserver.go b/src/webserver.go index e9099e4..2754c0c 100644 --- a/src/webserver.go +++ b/src/webserver.go @@ -64,7 +64,7 @@ func StartWebserver() (err error) { var err error if Settings.TLSMode { - if allFilesExist(System.File.ServerCertPrivKey, System.File.ServerCert) == false { + if !allFilesExist(System.File.ServerCertPrivKey, System.File.ServerCert) { if err = genCertFiles(); err != nil { ShowError(err, 7000) } @@ -125,7 +125,7 @@ func Index(w http.ResponseWriter, r *http.Request) { w.Header().Set("Content-Type", "application/json") case "/lineup.json": - if Settings.AuthenticationPMS == true { + if Settings.AuthenticationPMS { _, err := basicAuth(r, "authentication.pms") if err != nil { @@ -158,7 +158,6 @@ func Index(w http.ResponseWriter, r *http.Request) { httpStatusError(w, r, 500) - return } // Stream : Web Server /stream/ @@ -186,12 +185,12 @@ func Stream(w http.ResponseWriter, r *http.Request) { showInfo(fmt.Sprintf("Buffer:false [%s]", Settings.Buffer)) case "xteve": - if strings.Index(streamInfo.URL, "rtsp://") != -1 || strings.Index(streamInfo.URL, "rtp://") != -1 { + if strings.Contains(streamInfo.URL, "rtsp://") || strings.Contains(streamInfo.URL, "rtp://") { err = errors.New("RTSP and RTP streams are not supported") ShowError(err, 2004) showInfo("Streaming URL:" + streamInfo.URL) - http.Redirect(w, r, streamInfo.URL, 302) + http.Redirect(w, r, streamInfo.URL, http.StatusFound) showInfo("Streaming Info:URL was passed to the client") return @@ -216,7 +215,7 @@ func Stream(w http.ResponseWriter, r *http.Request) { case "-": showInfo("Streaming URL:" + streamInfo.URL) - http.Redirect(w, r, streamInfo.URL, 302) + http.Redirect(w, r, streamInfo.URL, http.StatusFound) showInfo("Streaming Info:URL was passed to the client.") showInfo("Streaming Info:xTeVe is no longer involved, the client connects directly to the streaming server.") @@ -226,7 +225,6 @@ func Stream(w http.ResponseWriter, r *http.Request) { } - return } // Auto : HDHR routing (is currently not used) @@ -251,7 +249,6 @@ func Auto(w http.ResponseWriter, r *http.Request) { } */ - return } // xTeVe : Web Server /xmltv/ and /m3u/ @@ -285,7 +282,7 @@ func xTeVe(w http.ResponseWriter, r *http.Request) { requestType = "m3u" groupTitle = r.URL.Query().Get("group-title") - if System.Dev == false { + if !System.Dev { // false: File name is set in the header // true: M3U is displayed directly in the browser w.Header().Set("Content-Disposition", "attachment; filename="+getFilenameFromPath(path)) @@ -321,7 +318,6 @@ func xTeVe(w http.ResponseWriter, r *http.Request) { w.Write([]byte(content)) } - return } // Images : Image Cache /images/ @@ -341,7 +337,6 @@ func Images(w http.ResponseWriter, r *http.Request) { w.WriteHeader(200) w.Write(content) - return } // DataImages : Image path for Logos / Images that have been uploaded / data_images / @@ -361,7 +356,6 @@ func DataImages(w http.ResponseWriter, r *http.Request) { w.WriteHeader(200) w.Write(content) - return } // WS : Web Sockets /ws/ @@ -378,7 +372,10 @@ func WS(w http.ResponseWriter, r *http.Request) { // return // } - conn, err := websocket.Upgrade(w, r, w.Header(), 1024, 1024) + u := websocket.Upgrader{ReadBufferSize: 1024, WriteBufferSize: 1024} + + conn, err := u.Upgrade(w, r, w.Header()) + if err != nil { ShowError(err, 0) http.Error(w, "Could not open websocket connection", http.StatusBadRequest) @@ -403,7 +400,7 @@ func WS(w http.ResponseWriter, r *http.Request) { return } - if System.ConfigurationWizard == false { + if !System.ConfigurationWizard { switch Settings.AuthenticationWEB { @@ -469,7 +466,7 @@ func WS(w http.ResponseWriter, r *http.Request) { response.OpenMenu = strconv.Itoa(lo.IndexOf(System.WEB.Menu, "settings")) - if Settings.AuthenticationWEB == true && authenticationUpdate == false { + if Settings.AuthenticationWEB && !authenticationUpdate { response.Reload = true } @@ -495,7 +492,7 @@ func WS(w http.ResponseWriter, r *http.Request) { initBufferVFS(Settings.StoreBufferInRAM) } - if Settings.ClearXMLTVCache && previousClearXMLTVCache == false { + if Settings.ClearXMLTVCache && !previousClearXMLTVCache { clearXMLTVCache() } @@ -637,7 +634,7 @@ func WS(w http.ResponseWriter, r *http.Request) { var requestMap = make(map[string]interface{}) // Debug _ = requestMap - if System.Dev == true { + if System.Dev { fmt.Println(mapToJSON(requestMap)) } @@ -650,7 +647,7 @@ func WS(w http.ResponseWriter, r *http.Request) { } response = setDefaultResponseData(response, true) - if System.ConfigurationWizard == true { + if System.ConfigurationWizard { response.ConfigurationWizard = System.ConfigurationWizard } @@ -677,7 +674,7 @@ func Web(w http.ResponseWriter, r *http.Request) { setGlobalDomain(r.Host) - if System.Dev == true { + if System.Dev { lang, err = loadJSONFileToMap(fmt.Sprintf("html/lang/%s.json", Settings.Language)) if err != nil { @@ -751,7 +748,7 @@ func Web(w http.ResponseWriter, r *http.Request) { } // Redirect so that the Data is deleted from the Browser. w = authentication.SetCookieToken(w, token) - http.Redirect(w, r, "/web", 301) + http.Redirect(w, r, "/web", http.StatusMovedPermanently) return } @@ -767,11 +764,11 @@ func Web(w http.ResponseWriter, r *http.Request) { } w = authentication.SetCookieToken(w, token) - http.Redirect(w, r, "/web", 301) // Redirect so that the Data is deleted from the Browser. + http.Redirect(w, r, "/web", http.StatusMovedPermanently) // Redirect so that the Data is deleted from the Browser. } else { w = authentication.SetCookieToken(w, "-") - http.Redirect(w, r, "/web", 301) // Redirect so that the Data is deleted from the Browser. + http.Redirect(w, r, "/web", http.StatusMovedPermanently) // Redirect so that the Data is deleted from the Browser. } return @@ -800,7 +797,7 @@ func Web(w http.ResponseWriter, r *http.Request) { return } - if len(allUserData) == 0 && Settings.AuthenticationWEB == true { + if len(allUserData) == 0 && Settings.AuthenticationWEB { file = requestFile + "create-first-user.html" } @@ -808,9 +805,9 @@ func Web(w http.ResponseWriter, r *http.Request) { requestFile = file - if value, ok := webUI[requestFile]; ok { + if _, ok := webUI[requestFile]; ok { - content = GetHTMLString(value.(string)) + //content = GetHTMLString(value.(string)) if contentType == "text/plain" { w.Header().Set("Content-Disposition", "attachment; filename="+getFilenameFromPath(requestFile)) @@ -840,7 +837,7 @@ func Web(w http.ResponseWriter, r *http.Request) { contentType = getContentType(requestFile) - if System.Dev == true { + if System.Dev { // Local web server Files are loaded, only for Development content, _ = readStringFromFile(requestFile) } @@ -916,13 +913,12 @@ func API(w http.ResponseWriter, r *http.Request) { response.Status = false response.Error = err.Error() w.Write([]byte(mapToJSON(response))) - return } response.Status = true - if Settings.API == false { + if !Settings.API { httpStatusError(w, r, 423) return } @@ -948,7 +944,7 @@ func API(w http.ResponseWriter, r *http.Request) { w.Header().Set("content-type", "application/json") - if Settings.AuthenticationAPI == true { + if Settings.AuthenticationAPI { var token string switch len(request.Token) { case 0: @@ -960,7 +956,7 @@ func API(w http.ResponseWriter, r *http.Request) { } } else { - err = errors.New("Login incorrect") + err = errors.New("login incorrect") if err != nil { responseAPIError(err) return @@ -1045,7 +1041,6 @@ func API(w http.ResponseWriter, r *http.Request) { w.Write([]byte(mapToJSON(response))) - return } // Download : File Download @@ -1063,7 +1058,7 @@ func Download(w http.ResponseWriter, r *http.Request) { os.RemoveAll(System.Folder.Temp + getFilenameFromPath(path)) w.Write([]byte(content)) - return + } func setDefaultResponseData(response ResponseStruct, data bool) (defaults ResponseStruct) { @@ -1089,7 +1084,7 @@ func setDefaultResponseData(response ResponseStruct, data bool) (defaults Respon switch System.Branch { case "master": - defaults.ClientInfo.Version = fmt.Sprintf("%s", System.Version) + defaults.ClientInfo.Version = System.Version default: defaults.ClientInfo.Version = fmt.Sprintf("%s (%s)", System.Version, System.Build) @@ -1097,7 +1092,7 @@ func setDefaultResponseData(response ResponseStruct, data bool) (defaults Respon } - if data == true { + if data { defaults.Users, _ = authentication.GetAllUserData() //defaults.DVR = System.DVRAddress @@ -1138,7 +1133,7 @@ func setDefaultResponseData(response ResponseStruct, data bool) (defaults Respon func httpStatusError(w http.ResponseWriter, r *http.Request, httpStatusCode int) { http.Error(w, fmt.Sprintf("%s [%d]", http.StatusText(httpStatusCode), httpStatusCode), httpStatusCode) - return + } func getContentType(filename string) (contentType string) { diff --git a/src/xepg.go b/src/xepg.go index 5e46ee8..ae91670 100644 --- a/src/xepg.go +++ b/src/xepg.go @@ -72,9 +72,9 @@ func buildXEPG(background bool) { createXMLTVFile() createM3UFile() - showInfo("XEPG:" + fmt.Sprintf("Ready to use")) + showInfo("XEPG: Ready to use") - if Settings.CacheImages == true && System.ImageCachingInProgress == 0 { + if Settings.CacheImages && System.ImageCachingInProgress == 0 { go func() { @@ -114,7 +114,7 @@ func buildXEPG(background bool) { createXMLTVFile() createM3UFile() - if Settings.CacheImages == true && System.ImageCachingInProgress == 0 { + if Settings.CacheImages && System.ImageCachingInProgress == 0 { go func() { @@ -134,7 +134,7 @@ func buildXEPG(background bool) { } - showInfo("XEPG:" + fmt.Sprintf("Ready to use")) + showInfo("XEPG: Ready to use") System.ScanInProgress = 0 @@ -211,7 +211,7 @@ func createXEPGMapping() { } else { - if System.ConfigurationWizard == false { + if !System.ConfigurationWizard { showWarning(1007) } @@ -234,7 +234,6 @@ func createXEPGMapping() { Data.XMLTV.Mapping["xTeVe Dummy"] = dummy - return } // Create / update XEPG Database @@ -398,7 +397,7 @@ func createXEPGDatabase() (err error) { ShowError(err, 1018) continue } - if nameRx.MatchString(m3uChannel.Name) == false { + if !nameRx.MatchString(m3uChannel.Name) { continue } if len(dxc.UpdateChannelNameByGroupRegex) > 0 { @@ -407,7 +406,7 @@ func createXEPGDatabase() (err error) { ShowError(err, 1018) continue } - if groupRx.MatchString(dxc.XGroupTitle) == false { + if !groupRx.MatchString(dxc.XGroupTitle) { // Found the channel name to update but it has wrong group continue } @@ -442,8 +441,8 @@ func createXEPGDatabase() (err error) { xepgChannel.Name = m3uChannel.Name // Update Channel Name, only possible with Channel ID's - if channelHasUUID == true { - if xepgChannel.XUpdateChannelName == true { + if channelHasUUID { + if xepgChannel.XUpdateChannelName { xepgChannel.XName = m3uChannel.Name } } @@ -456,7 +455,7 @@ func createXEPGDatabase() (err error) { } // Update Channel Logo. Will be overwritten again if the Logo is present in the XMLTV file - if xepgChannel.XUpdateChannelIcon == true { + if xepgChannel.XUpdateChannelIcon { xepgChannel.TvgLogo = m3uChannel.TvgLogo } @@ -529,7 +528,7 @@ func mapping() (err error) { } // Automatic mapping for new Channels. Is only executed if the Channel is deactivated and no XMLTV file and no XMLTV Channel is assigned. - if xepgChannel.XActive == false { + if !xepgChannel.XActive { // Values can be "-", therefore len <= 1 // If either XmltvFile (XMLTV file / EPG source) or XMapping (XMLTV Channel / EPG program) is "-" or null, then look for a matching EPG program. @@ -580,7 +579,7 @@ func mapping() (err error) { xmltvNameSolid := strings.ReplaceAll(xmltvName.Value, " ", "") xepgNameSolid := strings.ReplaceAll(xepgChannel.Name, " ", "") - if strings.EqualFold(xmltvNameSolid, xepgNameSolid) == false { + if !strings.EqualFold(xmltvNameSolid, xepgNameSolid) { continue } @@ -613,7 +612,7 @@ func mapping() (err error) { } // Check whether the assigned XMLTV Files and Channels still exist. - if xepgChannel.XActive == true { + if xepgChannel.XActive { var mapping = xepgChannel.XMapping var file = xepgChannel.XmltvFile @@ -627,7 +626,7 @@ func mapping() (err error) { // Update Channel Logo if logo, ok := channel["icon"].(string); ok { - if xepgChannel.XUpdateChannelIcon == true && len(logo) > 0 { + if xepgChannel.XUpdateChannelIcon && len(logo) > 0 { xepgChannel.TvgLogo = logo } @@ -645,7 +644,7 @@ func mapping() (err error) { var fileID = strings.TrimSuffix(getFilenameFromPath(file), path.Ext(getFilenameFromPath(file))) - ShowError(fmt.Errorf("Missing XMLTV file: %s", getProviderParameter(fileID, "xmltv", "name")), 0) + ShowError(fmt.Errorf("missing XMLTV file: %s", getProviderParameter(fileID, "xmltv", "name")), 0) showWarning(2301) xepgChannel.XActive = false @@ -725,7 +724,7 @@ func createXMLTVFile() (err error) { err := json.Unmarshal([]byte(mapToJSON(dxc)), &xepgChannel) if err == nil { - if xepgChannel.XActive == true { + if xepgChannel.XActive { // Channels var channel Channel @@ -740,9 +739,10 @@ func createXMLTVFile() (err error) { *tmpProgram, err = getProgramData(xepgChannel) if err == nil { - for _, program := range tmpProgram.Program { - xepgXML.Program = append(xepgXML.Program, program) - } + // for _, program := range tmpProgram.Program { + // xepgXML.Program = append(xepgXML.Program, program) + // } + xepgXML.Program = append(xepgXML.Program, tmpProgram.Program...) } @@ -901,7 +901,7 @@ func createDummyProgram(xepgChannel XEPGChannelStruct) (dummyXMLTV XMLTV) { epg.Desc = append(epg.Desc, &Desc{Value: xepgChannel.XDescription, Lang: "en"}) } - if Settings.XepgReplaceMissingImages == true { + if Settings.XepgReplaceMissingImages { poster.Src = imgc.Image.GetURL(xepgChannel.TvgLogo) epg.Poster = append(epg.Poster, poster) } @@ -943,7 +943,6 @@ func getCategory(program *Program, xmltvProgram *Program, xepgChannel XEPGChanne } - return } // Load the Poster Cover Program from the XMLTV File @@ -956,7 +955,7 @@ func getPoster(program *Program, xmltvProgram *Program, xepgChannel XEPGChannelS program.Poster = append(program.Poster, poster) } - if Settings.XepgReplaceMissingImages == true { + if Settings.XepgReplaceMissingImages { if len(xmltvProgram.Poster) == 0 { var poster Poster @@ -990,7 +989,6 @@ func getEpisodeNum(program *Program, xmltvProgram *Program, xepgChannel XEPGChan } - return } // Create Video Parameters (createXMLTVFile) @@ -1016,7 +1014,6 @@ func getVideo(program *Program, xmltvProgram *Program, xepgChannel XEPGChannelSt program.Video = video - return } // Load Local Provider XMLTV file @@ -1035,7 +1032,7 @@ func getLocalXMLTV(file string, xmltv *XMLTV) (err error) { // Local XML File does not exist in the folder: Data if err != nil { ShowError(err, 1004) - err = errors.New("Local copy of the file no longer exists") + err = errors.New("local copy of the file no longer exists") return err } @@ -1065,7 +1062,6 @@ func createM3UFile() { saveMapToJSONFile(System.File.URLS, Data.Cache.StreamingURLS) - return } // Clean up the XEPG Database @@ -1081,7 +1077,7 @@ func cleanupXEPG() { sourceIDs = append(sourceIDs, source) } - showInfo("XEPG:" + fmt.Sprintf("Cleanup database")) + showInfo("XEPG: Cleanup database") Data.XEPG.XEPGCount = 0 for id, dxc := range Data.XEPG.Channels { @@ -1115,7 +1111,6 @@ func cleanupXEPG() { showWarning(2005) } - return } // clearXMLTVCache empties XMLTV cache and runs a garbage collector From 4127e94febd313d717c5984e3fd6a26500d00667 Mon Sep 17 00:00:00 2001 From: Senex Crenshaw Date: Wed, 17 Aug 2022 15:20:29 +0000 Subject: [PATCH 121/189] Docker update --- Dockerfile | 13 +++++++------ __debug_bin | Bin 12898709 -> 0 bytes src/info.go | 1 + 3 files changed, 8 insertions(+), 6 deletions(-) delete mode 100755 __debug_bin diff --git a/Dockerfile b/Dockerfile index 0a86094..0826825 100644 --- a/Dockerfile +++ b/Dockerfile @@ -4,10 +4,11 @@ # ----------------------------------------------------------------------------- # Base image for builder is debian 11 with golang 1.18+ pre-installed -FROM golang:1.18.1-bullseye AS builder +#FROM golang:1.18.1-bullseye AS builder +FROM golang:bullseye AS builder # Download the source code -RUN git clone https://github.com/SCP002/xTeVe.git /src +RUN git clone https://github.com/SenexCrenshaw/xTeVe.git /src WORKDIR /src # Install dependencies @@ -29,11 +30,11 @@ ARG XTEVE_VERSION LABEL org.label-schema.build-date="{$BUILD_DATE}" \ org.label-schema.name="xTeVe" \ - org.label-schema.description="Dockerized fork of xTeVe by SCP002" \ - org.label-schema.url="https://hub.docker.com/r/scp002/xteve/" \ + org.label-schema.description="Dockerized fork of xTeVe by SenexCrenshaw" \ + org.label-schema.url="https://hub.docker.com/r/SenexCrenshaw/xteve/" \ org.label-schema.vcs-ref="{$VCS_REF}" \ - org.label-schema.vcs-url="https://github.com/SCP002/xTeVe" \ - org.label-schema.vendor="SCP002" \ + org.label-schema.vcs-url="https://github.com/SenexCrenshaw/xTeVe" \ + org.label-schema.vendor="SenexCrenshaw" \ org.label-schema.version="{$XTEVE_VERSION}" \ org.label-schema.schema-version="1.0" diff --git a/__debug_bin b/__debug_bin deleted file mode 100755 index 1d2fb3167aea979c68b62f5477dda55880c81e60..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12898709 zcmeEvd3;l4)_)2F!+HaP6hR11&@!U7irT8x6kEB)Fct;vfJ;?GRMZLy6ah_13ym>a zXB@|E-l>k`GMnfqvbeN>w5X#6Mg(!e{fS|;>b$IKf8XzU?oE@l;LNT#;@1W%h40h zJtR%%`;g8*`+pZbsu!~A+1D9X zJ^RYC{9}Em+}S@q>qcL9MlY9V`)bq4dIF0XZxC3kGyd#zh9SM zzCG=_bF`+ctjwj;ExwRltk?LguGjdiu4i9879;GdRoihG>ey}70K5LR%iGtCNi;RXIlkr`fWV+wGQ>!5AA2q1scES0*(K>jQTeHwr<#Z>$@!@lgU3@ zepRSLm`OC3>iUjLb^T|LA=HjPPsgp?Ex~VU{l>7a-x${QbNZ)O@T5OF?#QUG?$-6y z-MW58alw_Ec5g;~$1ik!$1imKm4}Z=E$;B7JvkiXt@=qBChekS?`%O^_3ZvAC_y`?qpH9@uWXG%J3}pGvsU+ zI~f1${FiaV_9y?`AL-kjn*L+cGBe7esb!h^-}s-Jc8yj4 z8ms=WzxC^=oKcn;{W9<`xqqLOUvlkpa((}bbor;^Vu5Qi>Q@}l7Q5oLl~RAx$8t&j zWY!N^^=&TM@tz$A+VP$ZAhZ5O$Y39`>)Uak9S_d1D_Yk~HG4RvZfeo|r&h_Mxl`Bp z37(38+}20iem{xybPj1Kp}Ss^o5AA`tv|Z-|Nj0j2mY4>|H}bA7Pt_Mpw*dh6XK)b zO;ax~xcQ1JkDqedH8&UgFFNo18&Ay5n{m>FvcPE>dve%4!ZAM--BPDHSWa?fsTC(@j zb%)AsOUVxJ$~7a4x1rKD0#Lti>gmAEUNsxzv1So8^4iR(nXRv7ZhftE=_^V%tMgGf zQlivpxJGfeOI=Dh$Cd0gvsk&LEjm?2$~@7MT^l<{3-9s(w?eieN?h?@;2D5ZpH?!J zN~PKxg-SwJz}Kw4oPW6{`%~r|2b@^|O2AQYBvR%&IJ7qPw1!3keypK0frrhzRijC1 z-YzsR9m&BOcY&t0%?vMYa|DmHn_b%&?Ef;orpmJm2t%eqs_FFqk0l;i{GAyI0`62W ze$q~Vq-0yP{@*GNAq7Kcxo)~dcUCw9SwB7)9$vG6Z zqy7zS=rk6u|Be{~;``vme;41MSwnY1^npXSt^?nv-)np~{oD8o{|$ULHw!FmS^p+B zrQUo&S||3xjF!0|JE%AsypIcAJB=}m+h&;29;0&vY^{kpd5vb&IqBj19n#{a)f{KML_=f7oagtw1=yR_ zSs=Q(HW#HCH#gUg!(FZvDRG;T+I&2kvDz|TBDFqVqR#yd8f5HOtY=1Jx(#m--VbxY zgsAgvt4L(S%N*CMJxEsFfGg>qZ2uDpwx-ZsvX?|pYK1Ac*V^+^0D(Tk1InOJP)xIp48z z=2#HZ*j$DNw7`or!U?T}6I!0Z_U4jpWKiN}sKIiuV0tIw!a|4>Zp^y2(Kp_3nD?28SHS+AFENWi`=D~T zWLs8v@wUTnjjZHcVWt?WDl^33Lo2qS6|HCmD4W!n(F)LpEa%Q|8XPa@1E9L-CMqk` zLVW*d)f3NRHNKY&s?>QGNSBm$s4WNBvrrxc-U94qjJ}!AV!7r^lIV~!$F!QUdd_#F z0Elwi^{!+g3&t@-6La1Mf@lq(tViOpQXXLyr#7M>8baXhn>uxtD%4JqV)ZUg3cz^P z!R=(WJXYI=RMP#8;QSS>m}#eOc$xD6>T}7eU2c`UPnUdxk1;D%+Ibfi!$ps;N88 zXup@*C=kk3%;z@Dl!yX!f~%lyJ0nxyjZE5B94YyGab!|!F_bL2`0v0Mo%$}i3E-8e zNs*=^9e@2&nt~n~Uc9$G*hl?xHdW5NFVO?#_NF25K%E7FrV4tc)vN*_A|>C27k}qi z;8f#5c2_opMkCw^k>DS0qYfHta8X)xJU|?*5~u;ohh>zg-c_l!OUwE>E!kh)2T66- zwML|_z7Ob<-T7TIH&#nenx3(a8Q~WR&SBKNOcJA7ZK6I`cxMlGio=shAgz|b69YOW z0XlP}&7glF;WpQ$Hq?~qkxk|n72cUe6r+&MG?=8w+7wWl<7WwxQXmV& zvf$bC{?Y-_H5%i4pF$fVwa=1} z7x~*B?5l3Rjv5kwhpe$+8#Np71ib=-Ks=1Da8~?oEwRJiBnEYriZsb@_GObTsT`V) zJhsecfkZvfAkBj5pe(#MD|oyOAzB7LN(G5tB2DI&&&)`h*$ckkq5&ns8BBYSq25)k z9YtJGX)aVe&BZ>1MyGX#icAlMVbT-+$fSl$?Q1S+m6k zfauiaG^z0M^kkD7QK-cqEosobqo}>LlU3=PNsot}^JOwoxvzz)F<3{Jb_9=77$z7e@%zo{NSe7c zW(aa*qat8%#Qi$x6EA8RmO<+DSz=hoYg&#nSE8@3(bWjNGr(vkfbnboM*t^w0(jql z3{dPEcn(#wd0^Sbf0C<=CX#$O>3@hN6-i_(Sp9G(6mQP_PdO8Agp?f}D0IWnmy+#@ zyaAMFbwYW`|7(;xpg!r0j9>kqw-P#?(n{Quk#(I=Ed7sBNGF)k3E(L|3h=_IMN^8V z7F|?yu^BmFM&54U+Paz`J7`Gv>MAEV3Am5)=Xn$G42Y!F_tW1(wMboJ7zE6Hut<^Htj## z9JN(om|0uR@ZKJamR6sBRb}u5qxKefCo{6hTV_TA-YVkGF(d0%6_VUYtGZrOVBEo- z1|3)jFd1-+CHt}b1N@l!+GFl{-)#Ef?C@tj{Gf7HX>53|KW1k63tlyrw6GY^m~3JN zsPo4zz$ko**E1=yrF73brJ!-rs7>d`2DzA8Zie@F5B_9=@qAwwT2=#U91dfoV`fqH zzMF0|Y8Q|^6iFO|-yXpmP|)kr`QP0%GkEC)V};+Qpg-%USoayRx z`ls$_v-8cY>m6$_GH|HT&mjSAE~hql)De7)ImbMNd=K-TR(=KZO||=3$-nf^*E!Zm z#QrG~gg!N$pre#T6f%jwi!fU?|51t`{d<5LMQ|%vpDfl&`nU$yKMC$$B&Y%DkbVJ3 zaA|*SMq{G=9_0lgM=uJzEN?TT3`;kw*HdNJnc*gnvEt`L&FIb0z5;)=$Q4?U?Fd|7 zvmfxk*y78N6Z2=l){ zg1VZu(4aCi3LsQ7U!q&x2(x`Hb^I=lFXGejQyMGEG7H*_7*{9#QRjObq&4s3V(Wj4 z5#EE$QW)Q+ozBvz-{G1R?SYQ5FWAJ!=KDcsu0PVKmXCBeY8r#Xj1?khswEijBjZg! z=*UgfgHuZc#o)PeDfZ@?1;B78FtBj`hT@a5F&gQ2i7qvXmx7kLvx|)t#om#{b;T!v zfwnZEpYcB5L7=;z6ej%lGB9BTnegc|y8WPlOxnuFn6vPYwtl>V1g#%u{DCEHi18ON zl2sG_($k^F;|KQZ3|#7_95%Ex<|C&Tp911ueuZ2rT+R!KJEJtxNZxEHK1^tD(Ajt6 zQeRroGN&D;>vMIdZ#I^!D=7TM@K3;a%(?h#W=Sw|Bc{RFh=Xl=0+$%d(xUG zt0iw}-;JetG`-2o~hTEXNt;Fs1a$84>kEhG@ z({lYZSwFSvr(*rorl0cllbe<|*6%p|l&hac=%+IMG(bPe&@R@`sh{d~-rhJVty`|2 zlzwW(Q~XFts$v^nL9#K@=TOt1K&xX_Y|L_`sq^$RTl5H@&(P0o)-U;doIJ0z+E&e^ zY@K8^@FpfXb&}P}OPTb|<3zO5YU+7N68t-KvRhMoDoeKLq+FfkWzusxsZ1vgWYQx# zsZu97m~@v;s@F+hsRqb@p-x+_)80jznx&Ikby72vrZTD7xn%8c90q04?7Ypo4HuSw z)ZlOgVK|+aBMs4btneb-s8NrxP7g22JJdg6)=P|w+h_Qr<3{g=&Qjme|1tD3mee5= z-ND1Th>#iS;Z?76RXpNc@g776kf6+=9`2%y8(_TL1L;s#BD>D%0`)-U)o$fylJ@oI zRvLGSsM96w!(iI>67J0+d%1x| zjqil9*xMHdLuZmJu4aq+6rqHr z5W{tl8XJ$OWeN@dH1{f5C22w#wmTcF^Q4CIv#QZ?NjROaJH7zDHLcC558A)H4wiyO zV4n>-KqH7jWI>92c^m0Ip<-riVip{y8Tr->?=y^;9tgZ@Hht)XdvyWZnM3{29$5%A z`nXC9z7Af-FbeGk!=xUDF<+}b(z3vKf&?dYd~$@F0e1eRsNe1O7rYtt8Y>nZkzE2^ zbY~amzZo3F=b;E}r?`ju^4~UUu1A}=_Crd;>vKhMgcdc!yTWw)kI=XDN9b$w9J)Z8>(Kc>#-AU{ z|B>du{$u%=ONnf2GoJ2k+|$$*pMNZWS$1SwSA4Z)+&1da?QiRK=zNF|(mROofaL$R ze*7r>|EYfdh=4fP1p%1{lMwVD`3IN4kLkbIPcLkfo3_bC+vKWosNZ8gc&2IGC?>!K z6X4bcP|aRsb@#+8B4VlkQ`83;_WZ~<#sHYx8V3N}x=!7~X=xaelo=5z;MV?Qm<{k7 z!wnCR_=~MM`g-t|{cHIcZxm@H#xj1!%aSKD&T$2qzCc9p}j6%DO=S6gZkZX2(Z|j ztrk3t$A1zl9??`2<5!Ic@f}=MuSGAZsjRXbRn%*|JC~(n&M%$;jS?)KLK>F~44X#N zlnDS#1!1g!i2>?Qn;uCy85v_FmAA1zaaNMLN_ri)`r-kAa$3~6)s6-{UL=q^QCCc_ zyU$qkf_jdX+@$X~()So1LEqVr+dTZ$@0g!PUtJ@ecH|B(M;wMb)WXYv8t-2HxXpTG zjD=ifJ!b1iDTKl~ctp@yNYcULJJ!qa1wf@d$4|pZ*{PQFn5rU=Af<*B3cuSMF>lsu z(TnQq`;qQPNp+26T6$5vp6X(C&%ae!-823>Oy8i3NdNqKdjAAZT=VnH+Kqv+W^8i1 zS-UCtlNxa9K(D#|p~>4)d+WAUy-3sG{{q~Y^DkFiiOW%keYF7Nrv=?pN9huVs7W?{ z35_^8lYQv;D4jA;5!r4w9XQ);0?%TDhGHhNJEr5h%{|pvF&rjptJ(BXcXP}p5Wi>y z+Tj_xSvKo!`Fzydy$;k3&+VXHHO&AEBdx2@r_eusgE@tC(;`p*D*kbTzXSP5ja*iE zwtO~ftFPvL1iC5M&q>9;^`Wk@Tk<&?RCuWWI(}W%8v<41`$7F+H#>!&@p+bvg~y2( zyJ%HMl0<5G8!)QQzfhP--O+8%WV}lOkmeqpSZu@j4Q&$12BQYfMhVfL3 zxn~`pjFPX-O$Usp8d0ux$8DcPS|hKe8@c~4@XgqH?N$rgyJ$h}#>M|}3v_($q1_Gd zDyIx!jrbFJ)*Au`{4l$9xH43q#l}`>tHr5I+4K9YKhmV`6(2W6PYBL3qc2F^yp1L3 z`$PP((yWqeTP?;9?>!;b<8Xguqgn9gt$i>)d1Lpea()BT zkj9ehkX?-Ye5f;L|1seRc7{ghNX1uT$;~4i>U|fQp5a4{TCZ!lzsJ$;S zP)GG;aOvgi{E-hzFf~{3gK_6ufKzg9i$&z1(@U~8l}7fPW8P%$()W=Ir5S#DvGLT7 zk}=yS#inHy7qkRl@<(TQD<>7aYb;rgBL3J-S(6IhGnU=Q^6)BW`Z>b!gR5rgnEj<= zzMB-g#M?e8@^0y#9i`~zlSU;b#(Es-k8H8p^oHFgf8;|QA1v%HZ5yN8c850v(CKX~ zhLt(fk0$%#$I;EAq{)t>+h|Pzb|m;C${*RTx<9~q$?g8gM{4E$=uonoR~;|6aP|At zBXZlqG1U;<){Caggrt}{PG+Oe2D~|((au#D&Q0x=V)@u655qM>dMns0UO8Gs1+AMovKv;8*0eTbg!$s-_iaO``~J z?QIt9pZ`JpYOQF)0W(|pOKtPXA`s^@sAOnV3oQ!}f6etRm+*fST7Z$VjTQMaxU8UJ zp~jxX5n8dZRJPs+#oB6&q@M@;mp1K#=4>y`+Q|BQ0zL9} zCnk_|FIR#f4`@H9oUKNvy$C@vNe6dHy4MdLLOiGu*}x|HYIYkng-|1ZMEsy`Pl^)R z4cz9BY~uXZnqO0S+Bm=6b}w(gRymTi7fImX4kUJ|J8IO;U29BSrRYhAeI1OMZI?eb zKFgQ?L#a{RYPL5q{(||&_KVhaXc5HlZJ02Z`de7P?O^pK zen6X3{S#s4P(gj<|NG#7W1uqwxdPqccH>F zw=_5$fqs~BE#BDRI2(!rVw#<&;Q{M4j)OJK0)ueYZ9<NouBO2d0y#*!7($nf5?=M4-MuG)+ZpGM8YC>HO7AEdkIP5;)osVDv$ zGmSvYOylh)^Av7L3SzLd0b`+NcWGF;6Mx53E}n7|199iUohO0umM&o$FKjdO8gK7A z;`F{FjbAr{z!LDHT}YVMM|O`GSfL3T6QjjF_fCxZ58I2!K+rT=Ok<;&*M#B6Mr?L6 zx!cLEJTcby6%g+*_iPWGhh@yY^D)14YQi-!8tA##-0~&%^Y}vTl6p2%7Xj#&ugoo< zo5mZa@ur!#Col+b-(=D7XM`IRqClyc2e-Dx_-!L*6U52(P?I=`1-nnl4 zobOI&kx_d9{*<{M=6W)7w^+Hk%+1Zr{Ud#Gc!LkD^nu0rzt?9hy%wqQn}GC{A8tAV z|3~8gOb>o;^1SkCVC^g4zugG&VBghGUU@6$%p| zg=@NM%99!S1{)aT&!u$fv{KyN2tONnGtTwav@Cg$LHJCgqEY{^Y=oaU;9hiNY4duK zAr{fY2Rz2I778?0JfbZz1YEIoZqv8M%FU%&P_kyXS3Bmi)Ju za%c*L-Lk)Q%SWh)wR2I{P5x1vt-6yUnEb5W5y&%R=elP;*=7VztYbasIqH2>8vY^+ z75isajJVg8Hj_jQO%96AKccORdZEHuZ?Z$x(wz$f{IN?$>|FoR;;I%%Y{)DB2yBOh zwsbVk<1hH&)=%&gI2|!fY8i+KZ5{~{JRk)vE?P}7>jtMc5=Gh8bQy#SKYjzW1f22B zV%Y-Ltnck`d;S>gV0>EFg15kg3V&zS|0c73HtT!hM;@|1qzhy7Eol!Q@EJ><$6ct< z6qvJg(xXU%1jN?hdJ((S<@}k+?sF4==CP~X#;($Y|6B0?Q~cjE)7Y^V|3Ab3^{`N_ zwyvAugs&P?`mn1Hp;u#R|A22!A=ugz{|)@Vh&|_W&nw>tK1A>N;+3~{u*+bhi0*cF z{r2|2dI|s_L=FdB^M;vGY?>H?lCW~k_z!DWuqp7dpo#iN>_t#B5=Ly3agX421WvM;(8J+C|GxA!T^IIaJ zuJWVPT=5#KfNYtWFT;cVZX_s*C;h#PUw>So#;Y4(S81D!5m~4Sc^_m+T5Lp*nbigp~C5}ieX#; zUjZKUHNta2M`^6mJ#){7Hp8f?K!(N5z>u#?wc#xtgI<676-Hlw!Nz&n{wxd#_RRSQ zlYZ9DwD}L1v0K~CtT+8*-Y$)tk!ArohH-JAAuC884z6-AFoZ$&=Epz4NF?1{c6v&$ zk1+#Go>f05{@Wj~e-QsSg}cYZ@x>@8aeRXz*rek#Uf3KQ4Mx)K%|U?MjLf8SW2Ot< zNjOVuk%e~Wi9llK9}&GK5UQ~S(1p(Zz<{g{5iv}Le6SAL;gMP_ z+eKldj5eT#p&0NP+k{$~9`$j()MQ>6^Mr62-(=3e!QMF3(P0iuW_O-{yY{No z5zCLvzjX;8X4j$CV&S|?_`Uwe@EP2xD-Q<$$t(X2`ZMGgUJGUGt$L=xPL+4&y|jN! z29zj-i6#0-E5^qQZ-JD$Vsp22GFN0m*3X1*Ed3Q4oQ~sL!|gCG-e{cA6zsNeig7|C zE(M%Q$yKFeoenIsLv?b^ycToSsK+k4?%^AQ4taR_s=L-)|J4N!(|8J-v2E$E!UP-E z2V~vfPBT|_RNQ8+>bjx~zh%-$opePi+vDdzP0<8R|F1jIkJT{JKT|hgDy}IlSa#gM z-vUhIIMmN%vHm}8L1jf+3yRnRk#8Y*pG_;`rWJ9s(ViN6e+`Tcc@109)B_uZ%}9%y zAZck!f|^JD(=a3+vF67Q1%FKne5jPbfBazZ|8jY13vBqtQV!bDhJ3ammu-L%#O|wN zq}FaUY8YXg(NaXK*wAX!Ji4tv{626BSBB$blK_-HQ6NY zQ@I#+txi!Gyv|_n(9x9AM6jL~C9 zZ9L|Bhx%xUllwm(#MBzu7IWU5HN&A^zdUVK2mSN1RF=hG2WwM%qSoJThvr`c(I1j` zZ)N?9ynCIX4%U2O{2_RE*P$wB@J=25L1)I*j|StOJi_TvGom)zPIrK9zq%}qZK~wb zG_GyU;93UOl?_@R*PJVr^XTcEw%X--WFaGwb71 z_kHH4ssXHC{rt*Ig#(3W8Qb1OgxS_ge6Cu#}9A0kT#BL|PX)KV0UU z|J!tCz;vRO2w7!PSPh+)+E)lUJN~IXGT@HIL(SnDD_r?~^iaQ}Q>EM)&%0(89HKzf zb*NmuzvxgUxYwefPq3c^G}vp1iBE1(O>U)P9D@IS;Kz|=JlHrYeVY~iJpT8gqwlJK z1Q1;Sk+>M?z8?5FuZPrLOYmz)ZAu~sAEbU)NCW^fd@lT)hoKSicZMMT{nYf>O7E|P zRvb?Gp68MU07!I;y7NojeY0UfJTNP^pw%hmsWMJHnUs*g&s<+%e8_{1&T|3&;r9AM zD|SYzJ7{f^aajt6Ef=R@u-~uxcj1o}QQ+4AMmcs&tWsOVJ`!h zvrkJ0E0btJeYRgZG!7lI7u58O7h9IAy*GSW4nl2;$&_x@j_AS8m0r>DsOD{hf#T7B zd{e=4@~541J^lLu1NLbJrZcpCx?>;g)8`kbc`Mxwe{oSN1Em|nzQu>>I5jD-j2rF0 zp6#;zmz#K%+vdR)nLPMtAL9?0wf}2esC>IK7xKo#WAEt?9y}Aac~G|(JoxycE_iU~ z)J{BzA9+XyblE?&ZR1dvGsG(2LlX*nr+yYB{4TU>a2n#w{xL7T|Ah)mRyJU6c2uaa zRBp0Eg++2>sM(Z62Zoq)%`*-9oiaEb)jtQ0DctWdq~U$`gItrf#lA0`g8kj|4$1>* z|H{^yN~6TCcE+KXaJsBpLi)lp)ww$hcf;si}y`B<>Q?R%+KK0y%g}9XMx{dQd@ua>01HBk zy<**DU0bDRaS-b$TNKXjxymE^h}Jq3>CnXk0+!2AV-YlT9?k)$Y5xfa#&UAV|A@ z7p=F(mp6b5Adc2mkNw8GqZ6~E(}qXqc%rvpkHC1@w}q1>aWy6`*Fg z+H?>iWQ>T=$Tr@p4jf1<)#PaVxs1F_e?K5x*!Tz}5tt|pcXQUtgHjH>M^(oQ(UT6y z9dD45y?6wBqvv;G#cXgPj7|JW2CAi1 zjYQE|NoEPB)w9tIwxUcn$nnN&fl6eQE5BAZf$@778I%x|O5jNcz%C^M#9#n*nOnv? z^bv@zby5b7#Mmw<`RTzZ2`}<`j|d(qRUoTM+OaBi2CQzvsm58xw;W8bNU@kAzv&se zr{#yq)@dHCUC{gJz@+ADjy!UE2DRh}ae8o?1(aQMu6~_*0If>gcL@2S@hlDb=7b6_ zoN_g8{{r#+PBz$gk#%yHIHcKeLn8p*1d^Hu2K(9qvg_pu!9Wazfqde0?Xo*28-z@ANDt2uh|cE zWNWA&^8Ok{l2Qj^;mDI6vS3pX%R4Qq={nZrMl@=c`Xt1VA?OJ$DGgH4=x=;rp%b4rD3+$l|#5GJtAF1JfERaZ_YoJFspYp z5@h60-j%$@^c6k-1#bfqmA;0az&5aQ0$$6O^4i<85{i0)_H()k9Rq8 znUO{LhE{XOxFgs%I=I`T4Tz6wH_tnV?Vm;dY^au8xPU*u#marXn7=E{kggfEFk{dz zn8g-w8uJK%78d)XOW0_v8-netD{$+N-d@Jsf<1GwU6Yc*`_HFd31VO4{?@I{P?*?U zl%{|PkUJVH_|AOf%}j*nMfzgB(RxqXtle!amFRD_$79BM?Dr1qs}37aKyt7)dsg>*XH__U0Q7I1-a2v zj>T)e1<$xqF)%dJX8F&bP;IqHq!NfI!47OhR8`P|;cP8z5bmdVOGtPKX!(FHc8|9K z58;hHNE-f6U=&b}Bvj$q5%3)4>Yc-#KmccpS!9@s_Dw_}ubG|;{_bw-5jZOR;ejNC zs0M0AyS29pJ-eH_vBdYOCCIGQ5?O)1;SYZx1?rDkv>lfESFdkGNk(kg_W1P;*y*VL zcoy56o=<8)U~kVRc*XvDeN{6hU1pWzK!yf_oZi)G#z4hqZ z!qI##aJ(Wo{w4U>f|R<-8p?MBrm1cfU?dm=4B!n|P?IHZ4(BzhV+T^CNHV(@49Tj1*IN}`b&@hlwK0>hMpEyNRt6oo$=iDO)j3=Yue-l5^(9Y7~0 zK%8(f7{f_-&%@z{r!0E%dPmX9F(6GnBlNN9#Kb9eXWr)e#DLKLA;I$m77lbn!(otC zln!Alinz-$S`O*86h}7V{qonFfzSvD@H$?GXe8eUT6T?U>Yg9)jHVsH~En zT5cV^M0S+N&6L#yEx+|n%5Qy$@`EMe58hvBAO+zn7sT>c8cQA;^art;`n>^P-3wks zTTm~nY~&#^pMI<)&;lfv90nUpXQAcbgt3&}jY|VpV`U(CL4D0e9-(LY5FB7>08U2s zNy?d<(98?7|04B}hT_G_3NTcRnAc>Epzm0ZR z3l8HB^uUqEiaUhdnvF*705n7NC;q0C>ZpB0;1V<1hc7oxq((t~ThwV9LV>a39t{CY z7zmI6{T^{2{^-Qq((nQo#tIyKqE~QEn zb~U*UO++a3kQNJ^Gg(}(rh_4I?!E7T7TP~>{)FWE%>bj8`?P@gu)K}&-7KkDxj-uU zfGEkzFJ&^`ri%Oz?LXY8p)Zt$ps`Y=JH|Y^SLrsf`+Ejty+AogY8v*P?)$V+1C1XXct`aFswGH zdI258$wGDuQtxWK4T9z&4d~;WK&C9Ytoj7gd4tZO3GAqsQTn-L=_pHoHeNgBG>CU6 z%Ur`UYgs1J=8vpX^OHG~nDYd4Vov98tzN8#Ok`0%EtiC=W!l2PjzPY%sFtEA2UbF3ChOnqV>Oomw>w^AAa9)|1U7ozdK(Mu=JLxct z^-Bwi+_&8sze3g<(}kkrqhU$s50v zHVwlfB-#?OCDb9A7GayZMV2frFXJOe%Gk>Z$gX3c2UY_iJSY)0hkqJ^G&I+P z5DA=u1J2tW-=(XdC(05o#{Z`eCUa#51dE_}-xvpTVC9&nU9cm_aKglEEVoXhN`ird zS_rJdj6To`U}p50ZF14%Fwit<4jY37gu`MxCI5DnQcQWpLHO8|`h>v%6&)$L0&I6F zOHS(E>!}o6zn#4k3f3$!EIKKSST^(kV|AuL#W~09c-b?j9?;iLP4iFh2)R|a@5c%(abxWYaLe|pHh`GIFXzqw&$_c z0IXDi#?kM?tPes3&7T8T(IIebGx|4≧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 !MrCVDB<>fe?l?D_gkwj&N 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

        ?(-T3YMeRPC{6Zl`l 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 z

        UsV`8ste%~QuE(0^ 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�Dp2gWQ&c}a>&x@aavrFgm z)D3&2|Po5d^!cGCu<{dvSG- zC^=SjPpU zdSL=~dG()AMb+eq>j6G0(!rrI`x*S~XkX#Lk3D@aJ*o(Nz>jv|sVum}2BkpuZr&HD zqYI&)5<$H)Zw$Epv-7td>!9^?FsBWs=h>ZcQ5))LL&s%t5uY#5HB{^Oyp!WbRL18C zHLg+6!8fXgM%9|~P#63T_ECZzAgK%P_dhwbrMaayvoA+R5~)#rg@pwxSn#P(uAEpv zeaC;>L7&e>74~jU6r;~!VI2d5>2qm4^oJtTkuK22T4;AYdfLF>!JmH5!paj&Y@m;)Pl5Y^_2fv@!9fN+j{`sJjPmJm530`)S$2c?ULfkrtE9amA-JM#8Y^vM(pb?gfF2w__5SHHGTd7+g*ssrVf*3|!uUKp4 z*F{K(xasxub@Xfdrl+N!IS?OlAjVl0<2auR^{U)AAyvaJQS!j^h67rj!Tf*-SMfbA z!7SHxnj)H`nX5baO${_#!~>djRvXRsN9EG}BS(c)qqXtikRv_O5T|kK&#Wy6bH1KEkOq8-D1Nb)8F7v0uPDoGau1INkb)F1Zi1tlP9&&7*#6-Dx70+BEQf zah3R`H_$LP;Te&49K?zP;e(Erz1$2jR9z^{j}H6>_`xj)<+uNcg7%Mx#iP~^4!HJz z*R_9;{Dh=QO$1e>Lm(}&zi~QEm`zAS=e(|OaPOMXt<$uW3@-E?oI0n+NfU--jvRHF z0v+w6WhRJVoG44W;?Di8Z%;+N3x0S+*fN{Vf|DoajfZ2bVZ#5?wjzBOt}QAZ#cP9I z?JMTA#jjU;q=bIywj8xJP7I@k=k5pIF4gv)^d4+CAye~{bSIy}(wW2auQs)uN ze03194ZrijkH%`AjOJIc*r>I&$FC;%IAu-E27xnN+Gtib%!NG1H2jp~>>us*=sXf8 zgy`f>zz2uu3|tlJH%D!^epoA+)~bGze)#=8xXI|U#kv8>^thSC(qsg;-9R(bX-5fh zhscbg(nME=>)XKI-)-0^91VM>!~d7P zcLA)ks`9>*lt6%%1Sk+Lg`iPV5lEFw3QAK1Il&YnB4hwHBA4n^jaV@Pqp1l_VtO7@=5o0yz2{)6oJBy)du+e*d-hKIb_nC%x!gzHhz> z^z7%d_u6Z(wf0(TuYGxRViTGR$(6f<6uJ+Y3|qg$v5BV8&zgY$5r#eI3C)b?gM$M#|AD}> z(4q}CYOprwtX5jsnHf50*G7>-xiOFi?i)Oy3peR2(dU;y`#0A$(=+eDlm=}MO~Q`o z^68+f+c`*=LpYCkgz9oEWoKa*%!IXGozKu`G7P9&A?uWCo& z@a_2!z=B`u_=r}%U;WcE{=J_{gNr{$Wd%n)qDx->9K8H<@$%2D_<+Tae!)uyN#Rh! zd`)a#ZqVsAy(*i3+MYenKH}4(b8D<2taI=z;b>mPeRRB_R#KRMe-#t<5`j*g&A36( zIGbmaL6snY7DDf*=V+0Hy`kRaik22=!@2g z7i-J3F4B>TMpcY-y%mpy_U4;TiI3VD3F!bJG)6e&hqW8qDb^|bw>Pze)>1<&oTo+8?rI#dC-HF9y=Z?yIe6FMD58es?pIBac02Ya zcQRTqWrp4U{;lh0*u|m>*$CK?K1#P+ap9hLfNnd|E}0Ymj5|no1NT0{rxAX-Reu#{ zOCyaOOzkqNq0V9AGe?ACu~kCa0$~e6mVNDCvnM<=dnY1a#c1{goe!eZcU$yhLxu*G zl4j9qVSs9q!f)XC?7!kUVt&stkr!MUDYp)kTj$!O=kg*GP~fttlKSXY^7ZEO zOqZQXeQGOrK*461e{dSM0TdQ6Qh@h$L8DJ=y5eI{pE1|^gcVa*F}>?sS06@Ub7O7e z-%ANp$)&+Ry%;{shZ|yk^?jFfu1x1vcQg^XnnESXQ>W4F@$Z)aEV(uKbAgXR)kp#S z8-%|JOP$vuLpxM`rK-yEX)(Q~wKmL*gA3i(B=4n0v7u&sX{^TJ&jvnFqyLn5?SQ(U zpl$T}8(NE&=#Yvtgnv6aC;yJ_$1|KV_%`d5~%|D&Isr2YdZ)UWf+C$wL_ ze{A;UWvaDa!uR!LmDBA$$m$g>`_?sw^Ud9L8a^f6J;wXR45R-$C#zpwEfbO0_{oWF zHzbk|8V<@@d4FXQHu!J1t5iV8dyZjay_oUii?2*0Wo}9ChJqU}|08^#<0Vqki?+Bu z3||q*h7^r#_7QtIqMn6jHp{~KdCTp7g`ayzzERyr{fq6iGt#}dw=|Rd`V-IYvNxz^ zH@s4p?^De2-#05_e5;f%&bTbP!9$OZ09VT%R|-CM%Q6o!20yK8dymlTwQNk4 ziV!WPlVvCDF;6o7Dw>l>iZ(u;M;>Q>y;{^(rOlT&HPo6+- zvx@~4nHwx<$44GPGE$mReGt-dMgrw;$*Y8!>G*?F42GClJl@SaK!ZOFW1 z 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

        dwGf2JA!c&K!l>1T~GzQXgQ`k>|tzqX?% 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

        )IvGuiw8ZmV$QjD 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

        b^-WXT?2dg#dM%NYm)-LtMnpe$Pn+ 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

        u&xPd$vk@(P)svmEl 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 =QU1}I=}9DjbGujw)9|kVQoC3 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 RIbK!SgtOsXA;#}3yHU5JH?UP~yn#-A6T4 zk;wd~e>kE^1?le^NW|$D#-UqC*4Pc^R2m(iz(SY>9B&Vmno}c_}_^{TRs%mvB+|k z6y!WT&UvzOKAy|D&IrL^*+RzTj@49hp*7P8+9$2}biP%S1c&ddPdbi>>E8_jmUX|Q z-lKvdEEu@`-o~-S{<5g{JOAa~V*wht_3TmXt&Lv>aDL+2SzNxa*Q+)TOJ|C1JWCtG zcNt%!+s67Bd@Z$00@f*{Q*IaxWVm1QOEKIbk8xulYV%cGdnT8tHLgLukU(1dhlF)55M5u&+9T3 z*rlndc`T5BJ}!~&+D{j}|14TUb{BS4r!j$52Yn=%;P~5b)|N!?4$WG&{buR@#azSA z8Arpe{ML3FCYD>*qZ$Tl*z30zG;D8fuBTxdpTF>L1#L523flJFxKOTbKO(!&#cMd~ zS2{Li-^UKDczwm19BTmM|NrM7H09YTT%HjvN6n&d@ds~miQ+Hurw9LaTMcuIZ}17= zL5B}Nl7Cp1o8Pky2W^{Lgk#rIUtYmKY_?~7atrav71E_`g_!zT2UViPOrm!_24uI- z{!-s7{2$^n`YYo+CeNApY`c#QZS%;Op{mhOg7{Vul~Ia`J}`RpY?^jYmGAPn70qP* zF&eAy8+Rw>sWO`l!og$5KgF_mv(a+13U`O>Gc=FGMGCL5?y<6xW}@yc&X% zS}UosG1~X{uA>!tgZ7))f>RaG(H+mbZre+W*-MJmmb-tt$;%p4$_i@S0T$vCy*}D? zeuFjKdqokskplV|k(-183bT;};b@t=$A97m+MY>#>+9&vExm3IB=JoBAEj)Hr@Qw` zck|VS?&*wE7aCakpazk)%oJqOQx-1w?>&*;z_Z+jqi`FJ#7Q_(PJ+W*5He}1Ig@yH z-~UV8`@mUU)%pK310y4XGb-pPDq~JL_D2U595D1k{<+{#BWpQ|)tE`t@-0+UQaA53 zSThT^oyuHN+MUWaTCJsx2$O11QnK1WT|?~;TAQESn31^(xGTTs>-|3G{+l}pyY1sQ z%KiK~=e*B3@ALk5-sgSJ=S%?nICg z><`02>IC5;M*M5`+ag<4f>DHVthfwh_Uf5GBU-VpWo4@3zTxDm*J;$s9I8;;Dza*p zpVlnj)UqIH{Eh!Xspn{q6MQ%-V>xUhB$rTx7M`Os3{ulZ0%up5e&9?xwu1z zIz5!qhvusE8Rq4l_sF;mQZ>uKwI>B=-?@jBp)g(&>9Nx ziR!oKTl&!KHoZpwsmPhdMdW2j$=}e{-ZwWzP3fMQ6GK5hO+P!$dep)~0imji=KuKz zZ>Ra@-2itkp|HLzh*`d~4Am)br!sZPYlg5~DnE!8nHaJb4H--ig~)-@75uYdgJIm? zmaYBUFEI@N@o^u9#=CI!i|&xv;dRq7nE>Q2`qP!~b`R3*hH?$K`T&j8Ey3AA?VaqCN(E zUz|dWAH>a002>A4kfJ!`Mlv)A8ZlEpDr;11OI{3ckm+lq;4=yESC68q%kMI?4356Swn zf=x6zkk}oeU@3{+T2`Pn6oAP;SX7`uViy+|5L4pNmP;{DUZ;g(k;Quo1%#zGBd#SH zvyAHEPxRFWE_UDN^p(M;MeX8yeQ>N>5`rea(fefP!;Dd_vl zlLW@GDf(8T=-WDuIE>hg=qq0tH1C})URl>zun<|J_iW*w0TWrbimXp@^)>$skoDL9 zW|;b#{_%p`Jm#Gxa`O-#lVdK3L_JJ>z1m$M>VLg75H+raiC^I%dHVbiUmO)*6I~2c zz1d1?{#8oXU#EE%*li;0)&gN)8p=h&{^vpg z5q2XCdFH*YyRbGvT-04*Ul!1o={>w6t^vPYPWccz1>#~&@B?VWn#-85G7`4jB;Ps_ z+WJNbZAp}Re99*@LSd0C1me`&GeEp&)?&E(L6g((kp=IrAy6J{VUs&H zwaJFH7815H>Nab>Ma@A&Dud6OU5I*Mh7iDEtw^@y`onz6{6E!QplZ#AF)x7rm#@C)v?)UNITd75n4tuJ5jn&|2k{9U57jsN%&;%6TRIW|-~g(Y-s7a8k&jfzucCTn^w z!r1hQBVkPP9Y}Fso}z=W-&ePB%5d@;r z0(t?73|*V*^4uP_Ac>Nad}%XrnHoCY{MVBvjDQ`HTQ&Z*BSuIU{4G?vyr#aPrv5Mw zKCW+=jnKp@rg_{WIGGUpJ;IYkB6VX0vQk$OSP@26T!y*|@f(b?K!``y=*s-<4tzh) z|5_TvV=v?iHiM#}1O^f}nApIuYO=LA^ilS-K{g^>-aL(eQ{kzpq7c46v^?O=tBaxV zF+6UaySr%d4w@mxzRW6EW2N#H9H|PX-0zJW5K^p{jn;*AA$&~VnqK@-ryRZ?+A3%9 zL&=?Ii*}+*H5C*=7%27!agKZ#KT`&NpSuN-ZTc_wPVOoxg;ej-<`(>;PfZ#@H?R|& z^xP}EM{=E-qS#OW%)~V%{+S1lp;PC3=29s$ExIFvGEc*iFh z#d~qXo&du-|6EIb{Aux;sfjyNizplpbBb!nJl|j4ZLOz z%QXBG^RE=drV>5cn9umrq2lr9{NXtMS8DvfC`y%o4GU=*W3T)a`|Ryt@s#ihkdBDO zj`RvnTae)7r>%IjzYH+>*IxnN0Sq{la4of6Md^~kUaDh!v$gZo#NL6jCVqgoB<}ni zOK>JFE_PE0ASMuRITA#6jWNzZai--f=MOe)bsu`WhCyy!~ zS+h5Dr&k#$z3qBIY|cl(v{ggVT)t9BGzq71=fYsivG-~*cxw)S4ox1)1Rd- z=y??(!u_V}<*g)(dG>YilAa^?r({;BWQ_y!aM8uec#BxrTOYD6h|W*3H99q2dc zjyV}LLYi8--L3({-J6AY+brM7js6UET|DG*Xr?Vo{;a!c9tsqm4Lz{+%U3?{WUc%nYh@K#ci1&@TI9SiA7o4{A3WmuR))#QZ9abl zPMgZpK_}~itXM^xG&BRc(nCELleMM8E|#9HUAqyoo=BGDGp{P3ye!W7|5Q%UyOz+4 zR=aKty+So7U)CF%lc87L|FzEL-1=#BMHU-$Bf*?k;D*L|4u0#;( zS{~8SfvCK+7vIs+Pn8EgbU;9xp5_DC6A0Uw@L{*B+v*!aD-L5?;`5FA!)CLtIN=b! z)YPPR))-G#Ta-L>W-v9hDA%Xuxoqt-pL{DFd^C+?LfuN{KaJwWQ-tAQOLyd=1&p*c z96@CrBH-LRG>lG-fX|dFwmttw|Ketkp~!Q!d487R`N44j&*eVO+6K&XBp0UEU!NL3 z0hQD=1SOnXg`rsL)hRs5KRn>d_sa?a>wazr119Irc3rdK%0MRep1H7H!v+kxQ>Af1 zG%e!24V*GAuU;{$4y&L!xl>ThTws0v6O7dFKOh6e38QD`O^bbCCc=L5(JyPzPm_LH zwKgG(ZJCN)`;7b1)-`7Y{~(Do)ii5))x0ZHqucv9ZKsfidD7l@K66}uCC@(N;u_kf z%aoKLw8k?wy?Ulm{dNt`cskX|Go150@f=`TALh&6$st%)&XZ{w|XL z#cqI&?1J8pv&SU^%$sDOK$N#&dh- zDEt1gB>TA$f)2Bg2k=;HjrEUV+@gLm7}7%0_yc+dA#3a!mdqH86wg*r3F=-O^V3s- z4H8Cygl=A!BO&{Ch|OHyVLKc`Yf#0B%e4LLzxP7$>408?euwTGO<}1!e&q2SOHeC) zml0H^h40ND6xqr@gmVn}FedrzTWp?w8Ep~5+r1%!f{8Y;uJ!C0eJ%UuNC};k9#UlQL=01g|UjCch zUvpy{|C7T`BP?nhKgyb_pPZpq@BkViUN-PK;?tv)xPF@a1II1wPc46mDaja(S@qBa zb&BM)Hz76jZTCMOD_=>MAPfRh{I$id`yNtlP@$hS^ZI7D%G=ImD6Wof zR52NBs{iiORoB!E9U?(j2gTVcUP!1W0WNN5Ufc5{XoMR{@sK*IICXS+>geKB=EbFD z$1UtHPH)JkOUjU&sN@wf=4DvV{Du7YE&2GiM_t5s(gTV34qXxPc7@@(^h^(zsoRL) zjm;UqxfypMv?|fBKTF!>H-z$UIFehYRXcBTQ%TvR_>@Bo%n{s{=;EHUt7)1x+S^k;}j@xYBBLHYf>7Kl}L_0|34$S~nl zIblXcgc&y`3z)ghQ^1IukHMfq%N7eIVP=DYmlbUN04ZQ*X&y5*WqA3uJ~d{upTBjuA&LHo_4mQ~I#xNKZV{)2x-r*L^%3vqcKnUF^I_^r2v%VOv>0bhp zU9m&egOtRogN95J3m+^G7r0CNk}9$dk{x2t0MX$_!X)&OcG+QIEX%|Uy~ zWT?V=E9XSmGtNFuW<{1nZr3G;)kcGNOhM*L{#E7W-{01P;O^%#hRS=~pM(5c7Es%3 zSKm$|_FQGp%(d+5zJE1!EzfG|2EAvf)i3=S+3$!q>PSVYDJ_csLO?_eb`8K79mxn) zlCo=%5sX6@;H;n$Y_J4Hx%Gh9(#VCWf6dS$uSB9)mF%)>6vdGg!bs2)jfAz{8V%le z@ItdNC5SZD#fbW4sLX8wzG&&>Z~u0HeEykGKL_TleF z+01_eHr&^^RnvpZgC2HKgb-#v>b{vY^%b#QSRq;zzQ=nW5+>}t8K8t(To8hWId%1-h(?rW_R@{g#C+Cd{|!b73|+2v+0B+vA^wpZ5SLV9E9aOepyvVclX>yjzeY{zr8r9FqZM45(vvOxj(#168|pm8*ktRR$+ayQja*1R`u^ zkq_egXH4gO$G<6eeaP_urUh8cze?cZo{zrjb~dui%cfXueD!j-wM#a${9eH#wwZ;t zNq)%Ouoi{MzKmP@S39Kh&s3L0&ujQ89@7a-Rk;svLBrR+KKdzaEl7rKqxh*wN~~z( zIOhlK723t#z`e~AOZV`{OkVUL-?g(~)RIq_d_ji1Y&}HQRG8=(=+^>)P zUt-Vjs$Ew*Lql@?_KXjXt1&=7=wK>zw4vA89@hY=hGxrM%DEEcMs^7BP6}JWL0yq! z2#=UM$O90GJAss2#teo1S06xS`EVX+ed+T0Qib}0!oWX3Z7FkJOb#1#)W^8j+7J`= z2?Rl3|DDrtU(80l&c%H(pAnhgxDX0yrT6B>kewps*k;#Y(IU{&JZmBB=-!K)kFhrG_kzp&shj&#xiNu@$n6BFk4T%Z;OSEbt^n+#FxO z{_^JIv{&TVj}O>TuMWa1xH1^^*r(YY7&4J ztMTfl_P$vyoaEHlGxMoV2ZEd9qDCg;KRM1p*upEEq8hW~Z@*h1v~m6xCqHpA6c{Yf zQD)CrM(~Up8^LVtq-Up9-Pd3Zen22pG2){NaJux_bmf`PhUdMb$%?d7y*AjJJvhzzFY97s)RSk zpN|wVRN#-euI!EA?@mDhh+?P=e+3W{0bOcGo3IYFlwCK5S)qruN%+>;sBCmcvSh8| zOxRwy;zqcSwcWA>NW`>>Yamwz$OeHPHW;L+Q~k^nt{ay`k5x43^5;AS&ig|K^By@}9d6P^dOGO(hHCfvN`mEUHbQ}T?)YJL3 z{ihyxg-I5rgT_fm5yrs?5^Fv8H>rWkau=d%`g1M(Zh%#x52$|wWLK4ZQg@(&{Ugau z+@p||a#43OyhYfIAmlnIWI}E}HxhE4b`3@<1F=XMkZMY=ar;*KqI&2|VN258)nt(J z#P1MD;kA0h{ocM6Ff>Z>nKj|l;83OXUtUoruiI5wG3E{~j@XfZKb&9mbJ~RR>!*iu z{y6ge+UrI_@9O5yliIto`3^3r-i^(7Dl@vPg{xGcLWZ-oANWlX&(2sXo>hPV`O*!c zK!@G%nvi>DZT{M=VY^>3@qJh6K#i$a+GXbZbz#_o7sKYWHk`a`(g=4!f#ZZiD2G>0 zN16+0$^+pc$whO9A6fn~7djc=v)&MiF6@xPxyi{BG_zjodz@c64q^Tcp84zr6%^+Z zGRQEV3_YGcD!Afl zr~p03xIK}aag9>}`%Tbi_LiHJZlv^y3+hE!SvQGS)@Md8jrf;J{u}avA}rqGESGV9 zLeK6R@b@kf5qiam3u5_Eq`#T;QNnMl@Cz>6!8G{AsJz^%qD8LKG(kWe54bq^I5B80 z4wmT-=HUDa?kXVjJ1demiEPhM%-);rwcqff z%<6kQy=l)m=}o_%na++oGQDZ{DA6*yul8-fo(5t3IGMBr!hmhTKL)$T1S-q(d4a`2 zK`U(u(}`BGb;~WpUw)c*YJO84Q=ikr5SzyrGg;?r=J7LVZy=-(0`wLuf zw+6x8ntL~81gOI#jG%X^S8bv+XwKwE#60KFCC4@ty`er0npo?P`pvGC44Udoh_ zc(^+K++|334)BYq2>zrtgsrLsn_vSaqp13szdV&lFdB!1nfip?D+g_4yHxE~UL-3{ zLckL_&c8FE-w=Cfh^5fX_V-FETcN3GyZ5r^a-Y1z%T85UoqofGTO!TXpq|Ys|L%=i z)u2{20zbLwPsKe|QyOz8fx^&7@83r6U#I%VlD>ZEA9%f7ZcWTp`Ug4Du`V@kk-#i5 z{!h-b&l!~BpUL!?Ayzlfg(_}+3h~g9X}hKVwn6nF%YPMyj< zn3`sv!^rox?jl^7*FqpV%nXysz&^(SNO( zmQY>jzmBv5S+G`Klc@i>-+)v2gZ}$RM>1_=HO)F6W3*=Iox&ipQhaH?wPsq7nQ@PD z97m3pqI91$?FJk(qUxS!c4qc8SiT{PkC%8qj(O7Yejd{Cnx)zFu4d>RMNq7kuLC4A zV=&h8x}tQi<>Sh5WA&O6`0c=NZ)Scfikr+JG9_CKuk~zByZ;fok(EH~kjkltW`@G$ znq*TmyKU;%kL`K-)y(eyvMiFHHfJk=rlZLIdO}nNS8&IR%knQe{KXu*wVj5_iLJa?Kxx;Y9lLm5OM|OF*y!WiMuQ zkqS*B^i~l%@(&FUS4;#e7weIIQIP<&yUIF%9e}an1n{2Ffg`;G7dIaXp&r$5lzO6i z8#0RyIWet%{oLxFr|UDj%{O63AB$d&qSq6JJg9AR%L8sTv>k4QGKEWjzTqYEE$oj& zU<>W^B&D7p`iTpiD+}p12mXs% z;P~G_q!aY_O)hTGeN}fd=&+CPv_w(mr@1SqO6=?34HIr(_L-&He&w2TAdqj6&R>@NE>MCAejf^NU&(k3W_D-x)dU}pmUIOq`zxrF7OD3B(7$Kdtajm>r@T_Ka3Lr>Oth3lLK9NG=lsLoX&#)rDD=BhDEOG`#rdFB*4u>fiqLk0zNdkC+SN2WJNLzO-^1ybpI}yaPS4YvE;IU2p~d?$I`+jerP*J6 z)fSuz+cZ{rtdXN=0E*_gp5tD5m6B5k1KV(j?(Q1Poe-AX!QH)f*Fb8&>MN$_r+zz} zo}VpD$DBTHcKSfzj4(gR&lb%`1~uR!jyB0?+};18?n)XcrAuPCHg^m_eW8Njy?m0} z!7q|u);8?R7b}VqrJH~1iCUaMvK1w2Swf>!zuuQ6CYZ@0573eF08LDuAJU?92@mSA zNt6n?+LRzpkDMLzy-?VvQ8`jA&cOCnHcp=%Aw}cmlP~kZh<;zGW1!3{`zPIj6ZU6w zr{e*k-{dLohYi{relvW~=2sL#K7Qx>_#t{0V-F&UkV&FMx}8?HJ2Za9-YvKpaT7gt z$>TVY%S&jIMf~Z%(qNxtX%lp&ErSoCRk*ADbd$8nai6iv_|NJ>rH!f-gv(0;eYYYN z+8%HKpELl2c>qfsz|{`mntcJV3cEc26`ucn`^sO|-=g911{LPF3&v4>~5Zd+&Al*QFf}VnMTj>`*?vmvbb^KJ-oHC};;qK-6PJ=L5YgOKybo zf#NbRiyAhUV`*T!8XebGSj92^mN*Jc0|D?T1YV9th?+0cCg>}jN<^>Q)oN=E?ZiY3ps{V+~*J5 zlDV!>%;Dko4RYR27{I6r?c}N&bRNBG1Tt=Ps?iZjb9(N7abDk}b6$RO4z9sjJAE z*=hg^K|E?h_`ahfCTjxdK{Vpa>6d?%-t_7@J--{5u6{w-S3}d;i%5$LbN-P4;YA%X z;HdpJJqU4T1LWhkNx%qtLm5fsIr<)t2MWg)31aY%<43IhhaXKNe&jOu&;oy{tTQd1 zP~9>uJ!VuL#G2w7T(c>;W)(92QQ17HVcj=}tYNhJe$-n&leL^x&K*EVF7@> zWWieL>IVrtKjDS+^xc?v7tYC^(bjvUT1<#Su;o&@j|TTE*39LKdSln70MhDCN!Bj$ zG+MT_+Z<<_e5M9JY*s(L{Mhn|^v_wNFb_ls$)Dou`3$8kcX`xYCwM@tgK970=!rV(Dd@>}PYn zrjB@XYOFa$eQGQR@{+ad`Ehjd)er8i*g-i-U#oYr(Kij%hu+n27()T+NZcy3atd8b z4y}Ux4%W|Te$0RT3h_b;yU`+{hU^rwS?Pc$P8Cx`x1L! zx}VwNmQ2JTJuCw}xJ(&|2gq1~ks=Ll3xToW=q^rr!L&hYbRMKrwp_wWluAJ1rK-A5 zKVm&=SNCQ$(0V2;`b%eTv-is-G!dk&s)+P9u3AXdeJb7~G95 zu{uO&thCZo_9hpy(N1*PA<-k~f?|11@O@c9C|Zd+MNE}H0a=+#s+5^;`;Qh`wb#Hw zY}c}7sgWvAwwe`6ys5Qa&^ePENljBKwrA4~@b{?wZjh!HKV}H)*IxqzE!AoIHw$)U zR3x(xxHYvo1+(oRc1GP0;@{rrEh5ZnX)}}LeYI$y(I9GFIoKxlQnzX#+T2oN|ycIezgD@zk9G_dw- zE5A0W>ooq$eML+KsV+&sNjkr0PtC`aYZx$DBPL6}2td186K^(fBmPs0_|G}8k*5_r5Y-t$(&ni186BuG*2?FrVA{s`k zBE-ZpeGR5Sw)UYx%$oPj2W#1DQ6l)TeijV{>SL?#gEcdBk>=7Z$Tv_JJXQ@>yISgK zfx)`uHRQVvgst&9C(paJ8v7DE=)*CmfSc-lt+&Fz5$8K>$nlE%}IbLLbcFxJB3@^30uK-|9 zc0z-25};ftC>Tu_D&oTY$@rbTqr|r4-YdSN_ZHW+C^nL%5WRX6&LA^z+usC>&Y8Z| z(gVP`9>PIJ<4P=A6#;)s@^_2kpes+PbW!eP6cPBj?`80_UO!Vnl83f@RgYid#~mxH z^!QmlGD=lRpB|UZCSzpQUT~g_7C|wL$)5c}Wp}fCMr^tJx?6K+7$rsz z9enoWO7U5KdW7a$rM~#Np8XFbH~uH&a2-G8RABs@-1oELq%fx7-;saq`oCcola_BS zCEr@gJI`bcI%aLt1{ov=U`1b|#P)ZgQ;@+#Gu`_HHSEWU-5HZ#$nsrVSMQPDXDM9Ao zwXe;Yltj)OUm~8Jd7Lkk*9R*%%&D`rFCI?x^r>&~=;@RWmDX8GJu~ln<8>C_Y=_5l zYOZ3X2}$M)+7ln<5&z&HpEUW;9M$(^5s3s*5Fy>@Tj@U4cH*e_`Kis&-BKBMH;Y$FP^OtkIl4yZ?(H@S$@2)obNVcu&Cezo`z&wH zsBXlU4^|9ySA|gC5>ehVYiW5aDh*sY#a{B0;XHPwuR*x~dX+@$KH>+_z}_yGan_L5 zVgVPJZl>_GZ21^6+@k$IEk1Y$rynAU1Py*L2U|W&oQ9ct#QH|=MD1`KuB&lF1QJ^n zB3^Flb@7rC9@5D@CkRa?u?_xF5@efIo$h-t%=!)j>@%Tu;_JsS?(?4;sa{mUe~SFp zp6KM)B=XaWPS4D@1{jdv_!k>Resx4kiu}g^2ao8tR}8GgXp{Cl$dv>IK{Z!He;=h8 zyH9c?XorL7@AsjAdFiz*k{$o@dqrzn9WfaMnStEJQpP$YxK#X@Zz#F-;b9}H{x{{` zTo9cmk9>SPa25b8BN@6(GIW_H20ouS zw&gjBA%vkbaN1?U)m^k^4b5yl)BLkj zxZs~XjZ5A?`?*eQrA0MbNF#PZ*fNM96nwQ;9Rs+#WFM-os+yObg|B+koR_!H*|ZB^ z^^S3Kvv0+El`zR(jYk&IB4l>TAa-vmwT}-K4Tcd zM$2q94>t(I^In_#vk*i_i~>Sa!up4!?T_BGifG$C)zG$w3ut?VOGKOep9?O@kMA_Y z+;zg7MmEY1VNMkX%+(CtG^b}1XnT0h%TLTHPakXz2jtvpnm= z|Bo%ipB@XK<6Z;M;Ul&u#7ztfGvze7eF^y@V!D0vYY|iK(Lzi?F*!jsSP+XfE7uP! zv_$wq{s(Uc7G@)aU@ns;yFrIBt56N!%ljmwZRndrwk~6~xR$iRQy2Pc z(E}o?qh7i{16dGuCJJ9{|r<fEc4}aw9U;1PzlCN~bDP+L&FIfZ zslnQ+6MVuUy5k+wVVP!-(j`vt45`ltNB>0{^PztAi=~-QfYb6Cs1=93S_IkHF8vf) z-1w6A8*W9kS3j)wvBsp;aAcBtm6Em)Y(tGEf8r$wPNY*{(~)ke&Q$Gf3ShB$^Ru|Go1}r6#byRUmecHh)1LOQa=X3WF)-r z!X%&j1qM`tml>}5gM>E*E7ZYR{FKeq%TAL(d90y;!cQ`Gbstze&2Y;uOeTVDEUUxw zYn=p~cZ$@zWQ17pKyh)7Ahv)vByh>LOa{mn)dG~QcJ<&Fv!9YXA9wD7E{p6J6V9~8 z$}y|9az$`B^IFyOa)v(T;?s-zINff`$+Dw^=<-OH=I zw&)bZ5Pxk>^B*cTAFf~;Wr+xGQNL75ZEnEQ(QcDYcrrkVK_6j2P4nE4u2!CWJ-}EB zrY!B9A-dtuZIAA|12iqKmKOHsrXl9k+Zdo!+F|^^#9t-r_47^r+`~`5Bv_sB-Jqdr z^eO2J_YG45J|&%A*)nlDN9$33F_6#-fJ0V8hHsVR&+L@sAKfgJ*Rjf2b)SC3i4Dl& z#s>_5{A=NS(SLUS*r81DhlX1GVOK~Y;n{?ATKgaMRCOKeb8}S+CK%KU{)`EXYLmnbB_J>-s(7B-I^$BYg~&(rZuucT%O43EBrZ$m{mH=x zL}pblO7)so2fuUl4aH;ZR-274rM}D-B+g;{!H~OZ{EbK+ljs~7EpG(1Fa6GyD(9r3 zhKrPHKvy_YRD2RSy3F{$OCN=0w9vu3_9CEHSW_#^Fp@id?K$CSi(W1T6e~y`#r-dU zoyyiF23jORyo7IE*FSZ3m3@+6PT%01z9(QyzRG;%weA-RS`$XKfzBU>TB#}Zp((Kr znx8DVo5Sv@H#QI7q058p%)fuKLcK#_Bk~CKW^3>GkNv`}>a5fH%7!TXr&Qt-w?E$c z+WwnTmBiDrj7W*Nfb%ApV7nHi@*XRirw7yx1xi1C}L=I!P48UL1#?XFH&Z_|Xus$p)cYF&z# zdQFl~U6TKp0G3~Gd$UD8rzEAC+*II>B^DA$w4mi9`yTH3Q?;_%{O+)HH*U1OR8aqq z1ohkg3!hBvM~~naFw|OYMVSY2d}bva>5#I_j8;umZR6L0z{f1X7%77~earQ=Ic=a! zpG?eY#9R7=E$AG{m14XF<$=~R{R#VyW`nau8E2P{J~jr#6jpNKw~N(Of9}qG`(LDAcDemEMh=Yb=Ny^$ zG-rfw^ow1Q@Xk&_x=E~(?yS^l45fpo2}iVFhOktwCNEwKH2Mjx;^tPjTcuXb7)?tc zkq}un8du6gN}H26oQz>n3Rdf{w4zA90T@+NGWRl%l&Nafhz?$=37@iHp@40Zh@qd| zo7MdypLFudw~FzZ`$?JqS@_%F`1^@=5_dnh#Ts;vYeMihXwM$yB~5B#yrS;S*1r88 ziw*`kp;a0nthi8MEr1#XjC-kDzlU_NaEyWta%2YrQR=^dlZ&tmV^d2+lx-CR6J--< zZ)U~}v1x@Zjo^Bvw>1{>ofVJOQR>EOD>gYF-)t*l%dK%i$W|y`gY;WLaa_Z%76Pd3A`7k0*;ARdrkxug9BsJzV0I^MYNx zvVSmGCdbP%d9y}Njn*H0;wL8M^-y_7B$VQiW+)+3yhEW6$H({$D7b8l%-Vh(i&5so zIVC@~h+vvfn>$a+2N|BWLn~+>pvLP(YMi-5|5wcw6ZhOdTC1ffhXd+u`M4y%HFK#< z>YySAgb3T8|8~Tc;?rNz`7^J>bap8MM%F4%SeL0^zieE3`Zlt>tl_VIAw&tJVz}-y z;c!(b(XXo?ShLZnB?5DUw|@Qg<9$N&d8KA25Cs)tch&doY?eOcfE*6-P#R!6k@L;V zLp;&phy)1-(mlavrLa-iVSvfzs+t=-bTVF!F)aGu1nlv3Kg{%GH+G_R@AWKx* zs(~C=%u&mjvuBU(bmtTY=d}Z5fC_a7`^AjL-)eY<8I5>*;xs>W?berQ?bpdnYnK}S z{SYN_JeuGDc~TStb)cV1(E^K9Upv;?X9v+C(9u+dof+7(wll-AUJ&RRXRm57&J+$& z&Hfayp1YL5Qz4)frD1$zj2%$B-AYB|bL^4JI+K?NK-`hycBWr`QV3}B7kkaS*2YQw zCP5DrpXy;$TII^DRQ9X7wzxkF{1Z|7KGA(!dX)KkHH$RED9?R?ho(P_t!syBNiJNQZWZA~uVYF4b`3%J*e_fN@`_%?ag-r4vklekYF z*Uw@48K<8y{MhkcDo?ah@)AFO$k%gvd{&R+X(Q=Raj!Zb)jMAeezK_j2%mj^ed&tFfbFrJ<+d3rkK>0t(*pK@c1 zv;f;}Wjo)iQIC#XjDOJ=7;eNw@who#kg%{dISEXq-%kNBoL^%)1s0kv2&NqHJ0#!Q z>GKLWHW=6)YD0@2TV+AFXRKyAGdq!>P!x`%;hXJ+JdamMR+*-Xz|(u{}V>#$Fd8~-KP z+1mO)aGdqS|NR&OPwv5oQgsq|Ju}}`;~`oKGJJ292O08hCeCOljv7k zN3=OrEo$#$h0H$MQy;(_Lhxb3&^VXRHxRXUYscd7GJC@f-&EoU-Exbqf-L#t(*e8F<>UHB__4 zuF<(&kSLa)^3F8j6kX^dMRjzn)I!ktI+E+l!y&e-!x6MAZF>Rq9amDP3%{v`3Luh8 zO&(Q-5agG&1so4hJ~{bq?qoD+)xkuUZyOnJn=r5yE)gHI;4?`)U7q+l2Ejb>XJD-H z9bR6$(=i;q(%yUqS*O}QYy0+Xn8-os9ce=A(z2|l%A-aua{5Q(!_>6R=Bm>?b(-1} z;INIL9dWkl=~05wR*yrIWA!ko{S44C&oV$0cl!XLH^NpWn$!}S zWPtlR>Ns1Pc+)TAFtF%sh1L9>Sa5GT?HrvSyOx8Wdx+^ zVCmTcW8<%J)6vr3EC4Y*W@4;YjfE+#@s&i;l$Xx)b<|>cl)RqkIG2xi{;*X4-2IPb z`iF(Kg1Q-Yw~zJ1BknI+Ka?GNpMGTJm8~BJ|Lz2#bKm}5GnCr$Yin9RTxT#{*AENx zSR@k%D#xHmPWze20`H&RVJ75@^xW7a@7KkJSM4ii6SPV2g=`{4S#*g`F&7XAATvAj zpLfsm6*1!XI(;1s+eM^|;LoTANG|hzP*KP#J>_lYlg$9OOE)5FfO?t z6`P=L-)qNgh4>|O^zppc?~J z>=wTNQ8RS1kWWR&vM4?Nx9uLPU8mX`Btz;%QH?aU=>abpgWCOFd4*-qj=#f2dKJGv zZy;0li+$*p!Eyu?X1MduO~1q+dv0?*v9+~1ZDs^t3}+K}GBj>>i!{TN!qd&S)Q~** zAy;9BLo86KFNljrbLL9xFia>oksdZHVn+$tiT{47x^I3Dw36OJn%X|0VF(Kr&{81R z#n67w=4FnT6va=O<;97>nK^r$?!yuXeKP{Lvay(t-yL_x@!MKVcma=EUkLM`7Y<BdmEB+eZi!q#-;SYQxHmfInS3u&NL0vQx%er6Jmbe0dB zHBc$`k01V4o8Q0SnuE}^RGmzyo|zwb*)@a|`{_S)#U9MvW*(FD#;7ei#C0CTu>7F( zifQ^R>iN*d^^nFj!RkFaK#TipKD6)Bkka*Clx{-JwDA3hm%J@1-GY*N^S(zDH_z&01e)l?wPqT76Ve6Vt-#KW}1zicjulW>Ri{H z0YEgt<@|St4@1&og3Nh=akhL!qpLzO1C1meL-K))K`;*}EllP_HKi2CVAP-O?4h8C z6AyOwh%n6GQ3;TQoC_nWMS`(>oh)2ctVG48jUJ2h)AH3$@y}MDynR^i;qK=|p_;s{ z(Ur-YT`^~jqA`pHEj@fc3I5rt=hz!#8=rVH&|b)yrz6>hjew+b=J^)P9y-RpUuNN zdKT|2aNaq;o-YD_@sG|q1j$6sdCQ9h&e^@GgmZq+V{+)dk^azEqPq=%oy8Y~SNLzb zW8R7s8hv))onQVrPyJ>Zzx}n!FQR-G3=l3r#y?t1lezOj@lVRx zjXRV_;HfT3f9yP!)*L;`xyV{bBY_f`BN^qJi7W=AL^cdW+r4=$S?vU32k+FWO(Qn` z{}WiHgbvRxnBhFT2%+(jTHO~Kr8dI+Be$#)@BZ^`Bk=A;<-98uDE=LE{{4jW@1UXQ z9_Ls1S0t$E$QHY<&dTT;1;aV?k(a{$7dD_%@Hp6YC<=1@F=pz|LA;J#WRq_InXR zV-7+iZfIQ-;Gr_-^WmWOzDJVVUke0sV@?+!g50>O2t1d~Ua;n7YyYv@h1h@!B4bf|Nao>+F$>Fx%~^HYz^3H2ik<@Q9UOv@$c@ov(UvU1|j{w_L>%%CV0<4L5&do5>B32kD( z3~w~9mLi^Xjer7KBCcB~RZX(molFg*wC~dBgklT$iJ?3*m<9aC^3q0(bX0vSsO~SR znDZZ2td#e*wIz+_>nZ3b3eP^MR>2B0m`oyTl!1}Ui^|mRwReT4% zTNIfVDzG`}k1czau2zWSjFe!jGf#IN*~J9JYRW$E%V|NK-2-W&Ii&4cP>#}b}(oBCC zFX@;K(6x5T58^iye~IdsU^kyCO~teV?WHivQ+qFNJ_TRyDdL4U!;7Ye*BJPqyfI%WONJgMx2bU4AAOel!l>$wZ6UY z@@34}UR1ut%HLUDUi}e9j4kt)^bw(;zQZSGJh!}<5Ei8wjSHIa7taRf4>Qs6g<=|M z8I|9iEar&|kVTd>`*#KTCinl`eU~m9ko$^CYlbtfy!6h1*F@L+ za4ffCIzKfI$hYn;Zgh6)mu-T7O&EuZLp9?;_}6f*+Hf37|5x*noLMOAqmq|x2tvka z;*rO@fMdQA=O88$&Gs*|4f18P6DM06kg>?c)2-ImEIpEFl$2;qKHR$x`DjK(ZirZ- zg85+chp@kFy3ZesPMH52$1{JhD;z&4`hlM{*y`q1yT;%pKX+A=nbqi$kn|BOOm^RkF>i0!D;bX7a`h$kuhM|!wIh#8)`{m5yNYiyi?2K zB8Mh>+pU~eliYojnjdyxGG~Y@Z6OY*Xf{xoE4b~cb&@p#73QS+#C@-xi+pePAqje< zPS@M{;&1Lh$8W$0a~<99^QB9GX6WOsI>TRWqIjU)GfKD{uTIdv=uAnzthVL3Uw-&@q&R7 zfBcO1oz*K`b9KZoeKp@%@gA%)bw;i<%ah_Dpn z1B?c(Y&7A)Z}EWtq&~KNs5gob*;k4CAGX7(*jFM5`45fYksnU@VR{D3h=t5-GF%QQ zH};S-Rz5`L)*oFL;uCag)`~d|Sd0_8cb_x=i&wDOY`hs8%AB3}%5jX^^lb&pY4nsq zJ_dPi^ASi8*5~lp%l4wrT{1gcSOw|XRJXjEcRVspcM8;0UH76&yU*5E|7g0-mwL+4 zmg<>#>JFz(?c`|V-?BRWG!EfAe*i3R+X9x~{H}jD6yoJtKF00jFqP5NRM69Xm*B6x zftA`{|Jva(0QIoeH}7)n%gKu?gL(G&>rWF&YNdr2khV=h14_F$3)2teh(@UD-u>OL zJ-Q0a=xf)iRhX#;Gwd%N2{pOVaFw}^OB5Ld&_~c!2Dc!gnO3Bt9 z^;16H_pb|meRGlC;=!)n^pNnk;7P|HQ@WC{s)&rZZ2icu^2n$gVutci^2INQ_yS@V z{AeX)lbmaPS3~Fec=SJnGCEqR5e)tvB{bIT{fZboW6En{P@;qX_;s@M^}A9miyf@H z4awN!+DRyc_Rwb(=wX`0l=HBy47vGgU{=ToQLqB?o)A4<+w z;~XRju_m~qaKLpJyt*hXm|A&26wVyL2Wp5RCM3D)^CgSXkXSf#U|&#GpN_?{@196D zczuSOX9-6>WC!*ZvWFz*H-{E&uIjNz0EH%+-BNd&i2FG zt*<&BA-L`kHfx1ko;TGa6+DF`ay+Na-F)Fe4eS>HN{EM5azM|T+eu5n>Cqt)9hr(PqN-Hh z4Mm>Ppy(2u!2&KWru=9Md!I^k7KoYo(ODlWA?Nn8HCDy<>9AiH@vpjxXpt+3c#DZa z#M>3qPs1Y<(Ia10hRBzV9{B?Gw9v^)CLl>&N}>xsOSKz~l~5$8Vg}nhf-gP52SpwL z1>JH+-*X%oa%x~A#Yl8pNzw=Op7b># z-3Kz{C*7!q^bMq=zqMJiHg~<0*!%{Dwz+#xP+}(uSv0^3WT&2fl=RpO!}ZvS=0f-r z;3V2sIw^}`i#1s|{Tl_gi;Pj3DXJ$Zvor2TIsNQ0m&HqZW?uP(#4Y;^%9YtfS7xKh zZ}#becSMD@L<%i_0%V<4B>PR3pwF0bUw}?K#Ngt_NcSCO^XFFxzfi-2@1kp@@iQk< z@&^Nk`I0-2JJ~;NT)X!K^;U+n$w%%3XTg4WVHn~%iuGJ6;u^>-Ri{4LJvxi*LDjXP z)ZY9cs_vopx=lZ*>`>blU9+`Y2f^`QKk7I}R|VMMOoJjKa$H4~_v@b*sXU9*`o`*r ztRl-^NLCG4*XTXPX8ltrsJX55-p>ogBtyD}4hcF<`$vR&U;ffvmkAlQZNS2bYzkJ_@4c@AH~|v zXfB>j71AF%8#xf?h{gZ*?3uv!7CvJbEl`x01Y*B(2OG*6%K%c|IGb%vetz{Jy=Gg1 z&g0$m3?j(Y@dWKNoP0C*wQ$X%O0`v?rJhjB$rfs9A29o$)Lxr=tJggE`_Y*_I!%X@lO)+6S;PM{VKj=TxL+C%rD#?SCT|FLFQ^*c`US}u%x0A1nXRT~4(tDI&2Y4&! zMZM|tH)ZRjgS<7>sKKxs2^728$r};Bnh=y_jFk3zC3n>>NfXsCQc2r$Xb0n_cAhuo zk>smvNfNG>xhW5$Gjtn+^jc@?Ufocg>V``WS2xu+Z6A!wGV$6EpXLOr3IW!duG10%>{kAt_>5% zRVwl43tZ279E+=3)g(ujYLbztTH5>GfvUX(RXY%%GJQM>CGeTsU3Wwi#cj;orIg8O zVDn1!93F&lLtu9NlZTFk5y?-(${~~}#Y!e(B}^ArdR%nCN&~6FklJha^ubF6P1=RF zeCGRCvwoG_)akl(hsr<>iLTk&<@W~rW71C?ldJR|IEH;%FPuo`sE%|#_<7~la+SK^ za}h0q;L*=JxD!5Am!h6st9FF4ILe53u1hvi()6cW>7v}}hMhc1eww)esqV7$ zR2^^aV7D7<&H!x9(EOn>L$yPr z)?|6>`{i#7loIqWcrc0q4`NYSlmlG#SCLfaV_gIf>x%bFr$!oacGVEBrL3fk!Hew6 zV2M)O`5LwaGHa)a`^Z5v#L}%dGoAv;0%Zf{SQbu=F*| zPG&3fWHvxPH7lcQo|x_`Bc{8YO#YI@0o7=(Y@D1Yq1-U=|i< z)NSEw^X1L(vnS5V#}10L3T|8rS$p013Lw#h?Gs<)VOzMiaXRx#&`Dolj68 zP-POUc&0cH5A%Z(xu}xLDM>04m*kWL-7fHuvYv;_MZJw?t{S7R<_Sb3DLOEWb#E3T ziQkXvHd-$6gQ7tvxLlkeL4|bUlSn_hp)R)@5^?z?nf7#E3h6MTuTo`@U%8`52|}zc z-s*GT0z&!RfWH)w-Xb7u?n5l%U-%#|5o9hGFLKr~ctQSsUC1%X*j9jaVuaL>{OeN= z7qZn3Oj7Y`-VRlV`KJ-cNMf*@GWa}FnG|%2aMhy$i_&k44TV!mkbb9rzF7KkoC9Oy z((g%vmCl>;Bm6@y{E{o$mFO~A1L=emS7i!rh>X<|yca9(DkGP>{_^A!B;V7&swDZ0 z+=?Y%F{$Mx9}3e{QnB1iF(M}S;Ji!Wys$rkp6{ZE$qW4@a_@l}mwQg$z7t4X>GhY( zz2Zi=+;L++iX7tjascQHx&XOgE*i0_iI{$doDiUKd0^S;WmF4tPYm7w)& zqLq7|WAeCIF$w&zOZO;ACp`S=?B)D0&ud&hig<;8+fxHcC_F$!IfdY?xXt@fuiDjgb(&g6!V`n0G^ z@6gzi{Q6SMAUNP7B=@*L2-~G{@(*_J8G84&pD#teeX6KM@1;c**C@R~R}?j*R(^O)-cD)Jb49QuB!d3O$JA(F%==>#GKd%`&uSn_F3@wzhKR9+uI)@SBc zB}b@NAOw+MZdhEjy2Ej(I|v1w6FgKAz_U*SK+W9`0Is5LB}i%mHC81zafkL=su!lc zJ`|Ij{ug-q#qn)2*I&GiOGW)v?kK-;K`{dr7N5%<<)@W#mXo>D_e>$@z`uXERL1JY z<_!ImS>>c0S3Kp2>5^67L^4#mRL<|ES{b(-OSM|N6y-UccN_;>Gc;2~5O@hYdzs-! z)MV?SnEZrt0W%KUVkCJF-vd&T4HWa*+V9=kv9N-4|a~^}W z(yUH-0(S6H{=`IAMAcfmy5`pM$H2ubj~#de=T&Opy^3y$4YUzM!&zIHx~m=H790OLdpC&~@^o;7&;pk_x9~}ANIv&l zy%qIAvN#UPqAiOn4aqjZ!gcyqp2~XG%!TaHL`fD z91N<_P|FAH8iu-ivnap>{_t%`3rTvQcB~fckP6DQtvKOB{Zv)ovzi{ zHTwP6nTK`O-mU1e3;1`wY&z_p^Ci`OZ$)o&LOvj9#f}W|v?>0p=O@UKN|LACqH396SrCaf z{nMqkMWtT;*W67NoCXE)WbyCUUx{s%()@*Kt$t`y(ezaDVO?s&B9t>L3b1-wmPv=C zXJ_)=4|%Jbr1M&&gIe>G*U2(mi4f^+23@n%i?RF`k;4@o-u<{_xQldplt<+-yfwk zgl-3$rRZyVAAS9Q9sBC5&LA%9p!e^2k!H_x7^sV-;q}89F(`R=0sZrs`&MKGjvxC? zLHlQY4k3E|8W*As>emwWo@t@P=YQQ(E2fjJGKu6^mP4>)G5{ z5rxUA@2HHu+~a1emZ8obZGDtfH(_5K4<1<`t>JRF}GX>mVoHo{z8u+(y&Nb|d+2 zH!jvL76qOrIa>@3Z{16WoKy7!Hb++NeO$uOMNT0cNMN*9F=*FyX81^bNR7zUReni3 z7f~J$uk?YCuJTGB)H9;2SI?yP>zVRuoze{+=`Hk8>8)IqzAB^-D8Gb-2{xq|BuW}2 zQaCC_v`dP?AjM#ivP=Lo0svXSgQoQ*d>|00HVhQYvD9hH4nnk4k)g_*__drEoH=U& zrp8qJq((&JN*k1P-{`{W#P2r#o|HUVem-&7Ugz=2rK6S~ETMCMMr}9e6aU~yGW)3c zC>0_=1V*D4N5!xV5)8{=sC-l!1J;`Y)>XcERO>=|Lr6DxMWeP0@)MG)Lb|~t-Qbms znn5DPAeD@o!63z8l#ZGWm<^o`meP&NNbXvV$5WPhRww4*#Ys# z<8^;g{zw9*c5)T1mXE~tkiH|Nmt%TMNZ%UL4IWrCc=Wlz9|nmOgG5S!KMV#b27{C$ z{@4#pOUSanaA|WZy6pq*GH92e#s0G44}8N})3v!Rb#zmo#i-4FOSjpJFhw5M_aip# zIj83tzKCI8l5ibr(vNdAwIO{?NRJ|MRY)HQ=?0JC zGk7IKZjeYZNF_sVFi0^N2Rh`&FKYDxG0qoi|Duf38?ewHu@JB{$W@AESxC=>^l~gN z3h7Hiy1@e@2CoE*28k4dRDwl=L5jgRP%P#ZN@SGjTlqN8idrLXx41Cb(|yOHO7N;- zP&Uj+9(#HuHIhd0|IPn~%5Q(&UzEx_1Ae;#e#@ym9nw2OdinUYh4fTNH+bOM;FXMz zK_bN6@W|ApzxsTt1 zWWtX99lrzSuge-4KTh-c3mI-L0spN5|K*CQF{C$z^z!km3+W9Z-QY162CroN3=$~@ zsbu^N1}O&Pz{gLPT~k3%#L?473y#q^RvtZdRNf&MBt@h5?&Mv++TYPTU>)=ABTGiF zv=J+V8NUAp+%7s{23Wv;Irk+YeWyB$1}z`G?IC?fNH=(lM3vx`jGjRv#UPc8p1~l+ zVEj);Pf_aO+Y`*?oC)PYaVFe!ZOza{`tSrc#GJlIf(?;AVe6di1Z+QM-r7Umg^ps* z8Z7;Sxrkv?IFeq(5X}ALGlYO8S^e}X7_4uT`8SeR7V>62KO4XR=Q}FHvpi~d8UByt zPVV~)&WB_uRXm66&ppMSgh~^~@XqJoZxD7zUVpN#wAn9HSPPMI*ZjS&SDQK+3bmjS zO~A)_Z?mC`5rOgIIN2XKvqXNPM7Oi3oU# z_`o#{AwKXGMHQ^zX<>JpMNQY{-a&g}eBd_@H3$luUaRJ2$3OeNv#Wl95n${4d_V2c zz3|<~YIE-~CiX2m%KkBHn+Jf493&P!67WcBlU&=uoAcOQEc&oi4{`WIy}e#gJ!{i% z>drg($%V7J_gKr`5(`Ce`o5>d65LIZSs@IuHurbHjX?>8_Iz9Qhgu_m5MOZ>#bZ)& zgABg#Gox~oh=1sc9jp+)p;(PWLT?mR zPYep9KODc6S`_g6L-_?OG%1hYJIGMpD1t@6@0((|GW=dj3E|gUbY8wivR-p99|G>` zrJo@B(O~NtUO>8^y9&}}7G0Gz|MXElz>MY^9TLawrZeMICwh5swIsF+eTw+B!E zTAG|kauJ0Koi~?dtAWxRp!A|_qr(3C3&<+Wj3P@TS>T1GS1wVwt?$pj5c(0lMA}gE zzcFI-Ul1ND3`A)DL#4?hHUIXqY!#ay;(xoyJG}kVmL3$^ze2Kx_A_c{akx&Q8!>)( z#J=oN_L2Lttu%R9Um|^&{J5hmbHyIj=H5@X;?6AWXE?5VzYRxiZjh#y4h8XpUHa;G z8DqH=Y$&a>Tnav0R8VzBX&7mwr2Ti7WgemZHo#BO%k(6~C25>mNj=vl4j`0jAcCVX;JwtERTg$fr8^_89vxu|NiJS%yq(7HjZ zB(8$q7N$gTV_V!Q6F1=(BIBhr1!t?S$W1*<_`bWM!qrs3a1|>n`&1|F*yO{qo>Z-T_{$|2w&9&k|asD{bnf zpR-u(${zQPI=#UxAw_S%rYx5B6?X;O=q~f$DoYZxn4wLFc~-{-Ojy7;_QjYgX!m!# zWc6Gpm+8Q#DKD`;E+R}UbJ$Fot^LTE)A;`3N{>^|SQ($c$*NS|_P)Awb{Xq-=YCr2 zc8V`#H+-s&Rk+U*og!1+&D!OXxO6R}R$;;Qa^-)!?~nJS8_kfOito5jhkL`-Dis=m zxMHwDF@dSFwW^6f1F(UIVN|D8dq->xyf0AQASES`(jeYy7S(<393DWJK#OYy)ws{D zfu!LDby7G`J}G47(s};-s<4}TxlLxwmo0{k4wlo^%^eiD{8OhqWuXseZWGJ z&sVsHlmnp}7JxRH+HBmaz`xzp#hXSOnTc0_#uyHJXoU>g3eCpYtK%2v}fjdpYmnvH*0KF zey^58(7!kFI5#`taGJh1Gvf>o1B~Nf@i#i=_&>kx3(rfU{w}F(=6+RHn>(nau4$!p z(P-85*^-*z=2Z-o{)`3&B2_rUMD7h3!lMAC`dCY34N^?3?qd$Bl0R&B?JJ-{tl)`{ z*VuJ9A1j}brhFP}&xbnEGgP+KuFTH33JK+W+!FG&hIA`OJ}U=2D+ipmkS}Fd7RD_9 z#<1ybU2u;6&vdSa%>Ikl%5&=SX>u~_@{$cphyR;GDB`C7xNsku1hUnIg8Ij&s^>n! zgSUjeo5f-}S^ii0z+(#j=SK10TsAOCsY*ViI|v2oAph9{Jp!sKxyWuuIl<}k%No$oNs6i1U zq68=qpk7i_pfMZ?TCY{O-YR%S$+yArf3hl4cqqYB}=X|U* zeOW&J9#6lkH2v0m`YoRR+0yiD^XZp*`bDMb=jPLAc>1*XBGb1P_>Z@@+$TqJSLFXH z_;Mt3n&gaYwtfFe=b@EdI~C)%_Tub_E%+yk_CFmcdwtvXKZ%Z3i8+fx57zL^!J9RF z*peeUabhZ1ut%Bt3H_0u5D73>4DP;7cXXnY7b%Z;Sy%VrOtP!(&$wBZKOUV_?podT znmgws+?qQ_`zz1l!4`o@l;_|bkRfy7^o-!fNg93}T{usPrV+JjN;^V6Eoo!z!qWza zc^F=)AzMf>_e}uO=fJ-pl}Sb`6PEQgr*8kyg~5Ascq}48qRNW=3pZ0H@4op8X$AL! znitp?6*U@bz<*!>ol%rl1W;lB>)sV%()j>YMMYz^=E4c{pC`u}WSSujaw{#F`qL$- z(9e9vW4>_OhTYwCYY<>HfU9)1Q<-KH()G#>@$YL=a;NHvTdwjWn#x^c09G2*br#R# zDMdI8o`LU^S~jRSjhJ5?Tt2FXyi~560(tjL3-YFXL<4@`UDRwI|2C+H6{QRZC^Z}) z97cq|vW`3gNIxaXK-wYqU2aW&<{lF_xRdCMDw-YF^`77)GWq?+4Q zL{#cqvJr;ikT(>i7Nb;CMdLAdY5vI!Pah9uV@kii4t9#!^7H@g;Qjw0vohf&THipX z;3Q&vQaSDLie}AX?ghKPdLAJx#rpe;Qij8RR8i^{V7GH}gMg?6J2VpgTaSYOVUQm) zXKe19Bq+WYe%t+&XuZakDYE1Cdv=@oPl&(W0I$S<-xhg|C{%lkQn!HknPu6^ ziN+A0%1tC&Dbn*!tRDhkIko&nY9WADOf8b1j}@hr(~Hv00xcqis1+g^2XW!w&l#E8 z1K`KgS~1`Q=6;iK{;A*=vD`HkVtH|{6HCk1iRGMm<;2o-dL))`?m8=YPAv93OjrkE zsS6c3vD74^s7Cb5gr`N+!i;F#glD!&Ey0+TNo(=#nkIG2Kh;AIZ3XR+M^3DIU_4Kn zUoQK#7QN!;J3kjHxp0PezrznR{?bnPJwD&~T(AHWs5n@FRmnO%fYqwxN$#)|ALEi^ z!*s~JEM`vb$>;p0<#hY=R_+CIZd$&`f>^}nzxh&^TB+nB6?npIQKg?7Gbc0hInS`1 zUjOmj=Qgqe=XlBeiCY6cnMlgO(4QUn@m3@m$7Sd_Panm-C%$@y^=u;-tL2BG_ove9 zb$U7E`JV86tMqD(~cQ+~Z`ARE}W~C;FPTYcR zn)}>8%8gO2KkB>B9$$TmR0k%gc&-m6uPf`1c7+B6k4+=j1DC6oE0$bTkvUTyWz{$eJJ zOR7&@E?>(I7Y?woN$P-Z&L8#g)SdKMi)?D&(@w0i1B#eGTzjR@h||IqJ#Vt>O*Z3P zdL6(Yxvp>RPlTqVxyiHEgsgQTYlE)Y2Ym*Zy>26#cRu-z|FmOZqjn5zOuhuYW%@r! z)-YMbD(iObVvU1TYn%zYO_xEcro);eWbEqGWJ=%_=;RIm)5&}#1{ReVSX5$Q^AM<3@M=B>{kgd=$~a4VM$6ESKL4C5a<$k4w){VGa;E?fkGy9DH|hmVZsLkwuzR(w zd&#fDI>sWqccd8e$p3P z`GvzqqI&2o?rd&$>X#O ztmye2aCM-!5DT5j{X4rzjlS3I@*G?jWFQkB(6J(UxYEm);DlrYKkh_GrtTd?aqdea zpKqo3nJcFdn*>eiFbO!l;mrOE(`R1)!WD!gAm|`9pgpqAEMB|8y5+*PM@vc zZ?Xc;0tkV~QjRU2f3fiX%2CVzShM}#Vyf26b-K0HRD0i*)yw}_S4h#eKSV`M~Z|OprP9P-kns3sf(CZgWZ`@4} z`2Tm)R?Y8%LfJoiEw%N5dNS{3M-#AZJ-Ok2dpW+>&oPOms)zQmVT$MnA7#VD_!wjW z#U7^sR2zyNz_bTgaiRP)R37B5&_JwQ-QJBB_RY88-EN94^lqxQJVVSst@pdp`}+Bh zQl?e#%{I)9ze4M4R*Aml0f-%${XvC|<^q!5tr*`ntOfTp z>2f_b*>$1WB3ejlQ8~sMNDY{+kvCvi08-(+dSDgGo`ageHnB$VXEgIZ zX`n}Q%?slUJanhw#O<`ktG?J*ou)(uogTlhn^u7}s{iI94!6%ErPBz$f!oqY)pa`2w z0tkXrMw6*CKypyyDSqfMwF@=}Lw?Ig{vLZS+pkVOLvYlq!0q|&b_ZfS2?N}r5X|YP z4MxyetLV%FP^Akz;&(b(I+Kg)o!DS{l|Tq!W~cxm>jDbB0ViacFdBECAAq+wu1=^PPU80OVQ$p-2wV{E1L#K` zAb*MfLKy42ItGz%s|8n1Y-Y@6va|RAo8}<^VdDk8E~YvO4biS>!0t(372d6m??_)0 z@2RzidrjsI4Cpb^#}d7d(=0kSX!(Mx0rG6hOm^bp%OSM_PlP7$nj{kS!dfPiYC<|r z)W}0Mw*Pm&r$YBiO>R6HgG7p{4$)J~$pjmDtA|!S6ow~$32r^fIFl1DYzwW7?Bshb z&gEUA)NYLLiL>qdcb{@sDcF7ShQ z>E6)#gI1SQY;3Nyon+_`=U1oiAV?9AM&8D(bJY<@S=f+n5;h>W&z}o;hrRlysT$ub zAVR>}uwUP5jw5YhK&PA@$iNm*GFvQuUS#nq)d$>5|w$??hlReN()r zdV?GmA5=bA+#sjiYCSWGYwYUtV}YZ3G%)Pa^?6uianDFXWN~YmOsXleI8y_&^h2-{ zcu{I{2jT60euCrxQwLZ0V)EIwFu4du51o1t(deOD4<&>XC4f=ryp?G(ngrAlF-$(e@Dgh%N`-+?nM;M5WF95W{~D&FpkROk+rl{Nn(`ts-uSvCMhpuG ztFZ9OA|*5LEWr$-qg9f{1_h);d{WdMnzVH$tH-$zX_Yj}__&~%XG^-Fipi4ud5Q5C z}caL9VlSSzr>%q(}LnJaLNT$ADew6IVlrNZoEWS+5Gh zf~nc-)p*z6O9s?THud;>@vh(aQ6J2W5uF*5Me1rmf~3o?w}r?kmbrOO?s=6dd)?^9 z+MRKth}`N#Zar!dn5+u)v&c_et-6(|t9Iv6iZfEa+MTD?Db1S;5nF+>C2X2i7WYsS zS20LizH{MBc&hHxdI(rUSowriRhUO!m1`la=(r5l#gb_Z_K;tS_ zgu~MM;%6vrq(YswivIw=JAhw}gyDC?e#ciO2VUU#6~9}R-r;ima?YfI>Ug#V6?+c& zp7$E;*uN9IFoU%NHtkR%k*-i{hZ2cd_0XijSjt1C!7#xC3XCWEcGh@UB|A^Ga4@T5 z=cx^PuPPWPtk2=&)FALcRa#fZNzcQ_$x*ZRO4Ck`;i~^v0No+5PUkTqIb#*7fSGH{)-V*|CJw=eB`{J$7IDJ zF8AE9(`l{uhWU`oYrckvHKYS$7Fk_5L-`t_tf5CsN($erX|seC^n!Nx`KnM8y}FST zq6f2-f+g!_tB;W*5NS1%bt6xH-9J~eO>^JeuH}-iF#ibO*S4*zBY$6eP<=vx7@{G0 z_3=X3TV!CJUmS0i_>D>4!h!r&4zg3Z+WWm6>j&%l|LK!g)!jpy*l7XR|M*5!JPRIMZZLVA<}L)a`vUUZ5E9ganWECowfE0z zI*+pVzr;mWAeAAXtnDDqvq|i$#~vs-}n))AnNDeQ^54I*(dm_hL4gfO1=Yr zs|aqbKHA%Mh#WBMy_uBhO%YEHuy+!_&A)nuB{44oa zOf5hIQ7lPJiN2&x4Dvjot)~WivoYRO#XJTvG~hZWR0h$hG7+6BOFH{BBtD#?x}^q@ zhkGVFPBE%G463vEuL+b8;f3tzFUwAygB0WY?KA$F*Sa_Yw$k*OG%fNYR;zM_$&SZ3 zaElG7_&Kh%zR>)Rc5Lu(4Y>{Ob7_q#zH9sKuwT>t(Cevr!Min!^=HkJf3fnzwl*H5tDJ1~_RM4-B%gi70VBa@U!f$K)MA`{VdEpX zGy+yHs8(unz>yGw`DIiwwYOxlr_v_|L+-fV*Y>z_Ozw|xuH;{y(?eKONe6%SfI5=lxeGbK4Bsw)bzNcsj6k{wwsHo$S$OP<~c`TNIXm zpnB{lai?;RtHx|~mb1bc>TFkbwR3fk^+dfByKtCHBvAJSHplbzYjq8oC)j z8c5l=8pwk2bE{QUFn%5{6q68HATT1aMTJa@`+w0bp8=(VyG6R9Rxn$`%n$XlUN3`J zNFo-znDRBIw2~?jzaUhcJJa{t4>fMs56j?dyHD=nZa_-4MqF2yEZ@8q`&^Gq2kUa* ztH@#U9~I8GeUS)M=6^nex!dh%=6_}}Lq^Tef>_LL(VI%c3&27KkeuZPxlvawCrI^@ z@yH544Z7CnC$@j~B=L53+`)6OcrFj2rRt;m&CseB_H%0IY+j0oI`>i! zLW(W_-Rp_I0{Hh3@~LvH=EX(8d>*X>4wmMLOM&@3S`GX>d5Ts8!-m;Zt~j{OU{!qd zBL?JfV8i~OlIB>i%r`XZDy_edFG(*0+4eUJ=oeDO-OjIH=IavB_mL+Lbc`>sKu#^a z?h6HG>wmhRIAx)a7lK0L$Iw*ezAiBU{}GuaiBLQkF;2C7FuZ?9mq0eWe>;?mRr*a3Eq?W;r1g;MIyEcik zM}pkOPh+!+TzS|-%;D&veVM;$RF2=b@~8~e+WLe>#m7csS>joLYSh>c<>YKQ;k)~q zn69}NF}>eX7t?o=6)}C1*hu##rlb4cXXKL6Cn26sMEIVlwdK)RvZhL}GEvo|V(8SX zqE4+5g#e1IP}7s#H^h5%q(rUKC2C{3Ojx^z0a{faurs=nf3@<5sg@W-<;?E|{!o}} zc#K+A_m*TMOeNaKGl0~W&t$LMfRgN`9tEO_}>ANdc z>m{;Xy;N@sJ#?jN@+~?34pOtzsm3%b)u36CG89rZW$UQL)d1drdXr5(cNGJ6*?m4> zi+L9ZO!q;rcA9dHLp4P=Qy8<8ES`Yxy)O*doW-()z7Q`L{Yf6bz_6Yq+#D(u)T(-X zsx)Y|Bi5q|GChz#{Ms;_O?~A=RPZk?AT)R_(ZU=mfENDX`||c|{U6S89b9kj*ZOC8 zwE6q-3SKeA>!W^~5v^8bZS=W{c-r)9` zzLV>Q*a1NN>K?A=!_peEZHc-SwUxNUUS#Vp&AQGWR5}B*N>}u!nP2u2on4HAsD+bb z|1Ij^!?^P${y$6zOZ>@N-O-1t#lSMfqxCEKQ726E*ayZpE<5c>#X5 zq5hro^|y_pzi**|3iW3m8QlnRg)RU+_OwBt$>QGb8;z4FLQG)eJ2PE6%70i==#0mY zF*~5T4ei1dv7q_^Q^8vT0r}z=#w{)s$+;PvJ;7_`%;FR7fl_G$UF_OVE$ z@uowXd{V7Cdsns_Va!(P%j)KXTbz(suN|tnGt>XR=FLy3Whm!7Nh%rC+%*T&I$s9~ zjAis4CilNQjIeY2vFJe`y?A1C{J-E^OP7>Tq5 zBfide`G0VRizDXX83lbFv75^xBKm|SEeztq0;`u&;Od6nDTjpu$S?L|nf%%-l(Ej7 z2fJj))h(5vnl5%bPcsSyT`{Ds;IH`Xa_9eLe=qKPZYS?{o>XQ3_u#4W_2WzH80UE# zWb$c>y$M~H$%ZTTe~rDrt+CFoH#Iicl}HJ@-rLy3b-LyWc13dQJt}Rzq#u7~EhIeH zO%*q?Bb7^sEPPnc{o@Wkpy=BY`|}_IVot79<{qnb&8Ai^Ki>7nx$kndI7lVEQ#PFC z7_X-VtnCNKQ-8H>O5NQn7krA^d?W`Js9dfypD?fz$|E|uxq zo$)5dY$N)77@RXv+=)t|N3 z;l><@u-ra+Hg_XC`+NENs_?He!oRXhJ9gSNlmZqT7uvLR`eo_ZUtSKIO|?@_Vc(iz z=zIae=&dgF@}!$JMY^mhQHRRqKRuC6UHtN-s^nvBKIThFQXN(|ZCc&*-|Eiqj$Cu5 z(*%Q9GeivYBgr?3w!rwJglh0{RJ*b|)GjCEqtC8^A#V$1HHr<4;$O;2ntx?se$0e; z!5ha<_l9J>m7{FET}wwO9>Y;GO28&AlOR+$H`XOjoNo8{&Bt;XH|||?sw4_=qN+y5 zWvQ+r8=BOg_0C$u$E9m_N>|k+wn4m!K4t^Nkx$9|jH`|qgi_Y+rtwZfXE5EtX@`{R zWt|Dddy;fsG!!Ss#C{al4uVcx5NT%flfg1fe~Hg_EIY%;%8jgXH+@cDu&jw@m&72n zV0}}V{Gro*tdQP>$#0K*-D~GKR#pQR1445IqoNM1S>uwQ=07 zBz!Q3kvFCsTgZBun6hP9)_YAQ2^X%CPHv)Px_8RYp$s*Ge!VR1`t^->l(%!Q>n{qs zOh37W!p*%?20~#VysUYsCRt8NTVL`ii*RIU5yq{H?gUOI|Jm08gsV7l)4gcRf>brP zo&s-85sg(3?Fuq~nVExnI~B@U2KptdkcQzAImjH^@^gxMwWs)~)|RwG~S zW=*_F;?071vxpnjY&B3gK09rMi+n5T5Nl&x_S^);#=$wE(?TIKq#~Ts2i< ziSL)ZLqx`U0R2Bv?9^Hnzc2c{`B9)GYlC1%u3G08*tJ@749`h;9^@+1se?mvID`pI zEVVai5?!Iqb|D|=W^-l#zTz(rP*S%3yVs#VC$EM8#u{8m!9k+#k#77uo)I`+Baq4| z5}H}S2{g3OtD9WE-|1bV93s&|3$U(Qz+$N*Df#;sp5AO$?G7qAD)%4s+v3x05V|a9 zA^OBhW>asz$;AGFJ)LJP4^pFBdG+~N;1U4#48M3fq^)!$cN5n*-#-rEj}!2G#pWi< zVU&XL3=5FYHVm8~q2;tB92Ig1nu=D|2baRruT6FM2Ix`ml+T{-EL73L+SM(r16AxZ z4?eRQ`v(O1+Sy1p*5puOu(1x=G4i9@+mek{6$(ZRYerc~BDoofQx}|!{*0j|Zf9{a z>>Zyz(@a$%LdX;f+>2JM2Z>+g8*?Z}^loNM9^2Dd20v>1Ih`9zmIJ0i3=E$dH14tj^`%+eXT~-BvwcGQ(;X57=+8!DKoVKb_ zKz2m|*_E;9n*7n^E<>-EkW{l>kxQ1z`_n&@){l~mRNpm9!Uae}9+0iA@AXsro@nd) z`}DqNr*3}Q^j)QHT7P@2hMPig)q|l%XJ%I!^Sc8%6|Wt(o8)h(Gfib;+gjzZ%ydEEcCu}GtWs%C4=RfzeA zHrRUnNhVu}%#M;T*9WnoDc-mh_uKnUbQWD;@5YU#@}PG0MvSf?XWNMQ*vUl}7W_Fj zd0?z_Tp^rBS%}{hrC^_a##ftB6 zX5W)ZLP&^QnoNe&z~pg%I;pE_YVE@1=nv#`d0_Im)g&k1&py3*D0OPzDlZw@ow{Hu zdv_cR+mu%&@U`_`Jxn_BK{N~c6zy-K8~MEbGdLt@2Xnjhtv!;jj86KG z?lY^V2D=?n>6Cy`5wlt8gZ_-s#T!Kv(hpKjd8_pLZB9rBWEd2AYbtGXO8)VDu@^(u z4yp~;q^!cCPv+$g`)iq}()L&487c8nhHaHpF|AHkGrk-Aen+lL-l3CK(57x5YJ zt_Kv82i|#qT4{rN=Dpcw{nOB4Gx2&wOW&i!ZAg}o(QX#2M0VU)PMl)}7sdA*?Y&35 zss_`mc>Ld*L%s%kAD&6KXX;6Z^d_$AlIoRCQ@!fS zY_7>a-cb<1(+N1Za1w2Yr3TnA)jCXQPE`9b{n`mi3Rk0G)kP1sZ zE0gp}2Zae6=;X43^UK~wsbtLW)^5&CRe+lD#}V)cM0hcDk8igw?mylK_bZGEcP5j% zGznCO-jxmPfBr4(uu?mY)3)RIS=({Ey1*9sJH_v;ap&Tz2KNT*M&I4uJ($C~368AW z;KI7gcn_+(sM}RsTNi|dJeF-*c^0|NwNWTlw#7AK5g&~JZg#>yFPOxXVhx&o4BeaF&zZCA z*~Y4q)KvwtRIDt+y~v&kER!hj7VGu!rpLcNBJi)yI~bU-rq=H_8GwJ5EPB6IyNJp( zX{Q01t+``|`q3#d*rkMSb!N6IKzXO`pseZVy_P_k6eeYkCQWlC-DM3>7!WYG0KvT( zyp_V>1Ji*)$=9l_1#ARF78pj6Lz?eN?HC55^J+1*K$MQV?6}kqkD+VJIvb+9b@yS^EAqu-;-z!XXN;AH$RjHf#E0(CQ|MuB{%4< zRk9u5cUa7?Bc`5twP>-nj+lDxHEQa+)2WAv6=Lu`9!}57r~IpxKbvZu2z_RqW0R-H zNCIkUh9+rOpn@$Hn}2at_0Wg)VctykXuisu+MZ(5`^IFlC+v{PUWf5@Y)de{GJRt) zzPA4-!o}vPB6`aDt5;l=)KfiK^kto5_8@8b)Nf zhw|~c>w|pKyky>n#p)dLNeI&7hh1T2LlX3}#L`179sDzB&q0-uPskC|uhIJwX~ZZ- zjp&+A_UWxS3WT?eyN0G~X^k<{p8k_q3e3k`%u10DZLmt!QqQ2Sl!I<=YwXd(_3O+( zVV8YT)2wL!a|(IF8UtEeWvls@`wS**?le3v1L4fZFRB6^-&j2~#lPRNmbfF}nbM&9Q>*)?3NI0At;|Y9L%?YYz%s}pwP-K)sMW!$4IiSSlwIL*pR- zO>S4c{f%%^)SpVQewRGOu;!1FvnW9XoY@r%42wam z6j{n9V}tb~g>2%4>r%@fWHIt%-7Y{P`5`%Al|_RC%H^dg6%SOE^*f;AyzJD;5nY;1 zcFOSBKQF1I-(B6XRDfPF@i%YfV#=+^J;|?7Z2txNFj1XNePK`h5WhIgl|Y9garvYT zbM^Nh<-%QYxGURA;&6Y!V{$w}C-8*yg%-PfTdSrD5>|yc++9O8a=vRh_0&Q!b;myF z+)4>*vS~~G?H||F)ReTT&S34)wbDL`ALWm(y$yFOQDh4Cn8%CFn~{J2rG>As?3MCR z!EEYVd(hJt4)vbewsVhm>N?VUs#Ca6d#Cjj{_&0H^+)p}IqQ|!SBr3Pn^t|*;1>FN zV5lheb#|dx<-XqExvhOQI|m$qjTqEbJitrgimIgPwY7!w`}WcUJXDqJ%pD;dJLrY- zxqbJ>rjR*#Nq3g>Pu#`tx2@A#tM=RUXZI^ovB+u8AU%X$Ry!wb{o~378sYa`b8pVnRQ?r`NhPYA^mXd&VnXSJ>&MG4R*Iilhqd}>-;d&$1zMICJ;La!t5XU zWwUQuHt|UHYiLHc(t%_=fUX=`p)0J79H0<_51G)8CRh-ueWMFs6yGoTIcCLawP$a> zV0!=2`)|UubZZv)n~5*~boEeL=Dr%u@Y!YQ?{lGTWC$SXt?3^a+NHN!dCAgCyk9nP zM@nnvt^!?l)pQDj3el6wJ;NIb!-c_RM3{y0xQX(Dfq!xx9-;=JDQ(5wnUK6}ZODu? zgatFQDWYb7aIn8{aE=OrPpdb!WBU8wt$J4TS(N~|I;)-a1}iY(;#W9tA)7k$Octz? z{%1C0tscm~M(S-85$V$!Wz`ygg{b_}x~oFnHC}g}*ZtCT>fUgR1vrO~d+A}|T8%3c^PB!VKv7tHQ?j2SS{tpMfRb_Mu_lI*|P1aU51lDjcJ?jsC0mo+muy{a0hCZrl7< z9v`T~)bNpY$VWyHf_@MQOuc-{A$qAJi-hD{2sWEKtqCV=cESNOr&T3aPx`eEU7YJa zr*2K+ddQnhd{mQG9M2w6s99fL+N5>IqsR{0!;UkDi^cp+#|u|*!dM8P$tRRL34*P6 zWygw2DlPfW&noM%Ts=dQ_t_QSNPl&c=u_mC;^TQ6jBoqyb~gu8WanqrB8^qtbt)N> zw&w@U-6`H{=2^VgVpkXHh8g!Qwc34`{dP!0slI$f((W=}^@a~SwN+S*WWgl!@Y}f17=MR4k=dVL?8%1#&liT0~ zo&P$#iy|rYNgZh7DwEPX6mSl7-k~riSwCRP`0Ks@YXWymy_1NsUU9Wv0)Ch15@JR` z0(tD6UV85&m^pz<(&Zf4n;kZ>NDkdsNStql;*7-xyj{QxK^m1FU5z2|*Jf0lWbt zQO0T>?52|&QM+nQ#y`oqO7k1f;2kT;socAiNYPDP^F`$xvZ4#DXaIz9QQUxtN=xw; zx@FG+0LIGzjZJ-PJMGW*s?{6SDrrz-R|Z*?BMkT zC*t&SVbtcW)L^a{s!E=E#lyVXLpH}15=7krhZ?Npu>bW;8D&Dk>8jXg9r3%h;RxXz zK%n8!FnALWI$eN%qX!_>a3l}0Q)yd=;nYAHVrL%)A10$Yp8`i1wf!ZtC z7LvWiA4xi8#kPshbrp=dC_K4peP_^(kJSdjhCv2S{`sZ4B0TMixLIZI>5yH0Iwm4n zZ_oGI60?ktjXaB}Ht9WvTMJi7y}5FGc{Rx&f99vq^)2tU6LOEWvt`*ylWh2#7#MYy zRKI3{IgEC@6WuHyiq1S z>o}PbFxT@!WFqW{Yy_Ub6nM#1H}X&ktUN@m5hAgv13pLgv0DeS1T28MTAy3iWPwg- zdxqhhA&9=HrD}EF%0VuORAt5Tl?@C;);}Or|70wfpH1B`iI}|K*Siaxn2XjL3|pN2pWL(H?4O)y z@v$yCzz^mzc{gzq5MkXEc*Y1f8OBSwmkp5E}`N~_Ez}k*qQ$V|DY}3?NmQ-6jVR7OA*zx*bCKP zwR?f;cOELCdY02UpXS#kgyRZQn_DYV{XwC&v5;+@;&ZRwa`7^<|MPAROpT}>{vMl5 z-g5aey1%Qae2bNTZCwfY!|DF2P(K{k|3-;`;M%B7oivu;ay8U}&Ot3G5EDV358t2j9cqFX(i4lk>M4ok}@&Xfnxu+FOCI z_J$p#I(j#Ngo{yk;IKo@K|00e4s$taF+&PttMmD^KENl<^7GjZ#M?RW7 z|I4*ue-%tHthva#f%TrLbI{eAY?)L^Yc_j<>%c|iy4$UQ!)I*w1)3A(o(IPnuVlyd zWSoa!JIOOfgkjOx^{(u6+HH-r>+itZO|xT}?1aVpIp38RH4;~y@PlR+_<+;N-@iA4 zoc>`2t}JkY%kO`IzOMcI+oP}j-ZvtBWe$eEZr@=TeH~F-ps$H*O6hB7o|C^mz0LIX zhj*y1BKq3(nc}h~^mV`Gt!8h0F@1f8#jJ}@O zsX$-Le_2Xj_wbzD{A4kWAQeWIU%ggW5q*8Xq-+U&ogLaOrLTP{u+8)}K2#Cu>$H;A zD#))t>{y_Gqpzn|50hVmr$k!WcKUk!J+Vx7!uo%E3-tBQ@B9n&r7wn6us=m*WXlHwL-yeT5a$9AZ?^oM9 z*pYH}ENKhMLHm^0o8Jlr#>(E*{OQY~F_~r{9D{S*4O5*8n)L$1vczokSwYl%d5iP& zHtSa)QFg+A@9mURUbLY3lI`v;rkC8yBWO9-Z`(>A-`TK@^zq_7Bhtrb^#y?!w=0^d zIDK4NQ=pHJJXt~?vv^F7`uWIX)?PYMIUrOO>ErB@q9ye4##nE)ls+C-e1~bS;j~yr zA3qEgMEV#iFIr9?eW5^}KCTWWis<9QlioUgTy|D0lbvwGo?E4lKYZ&g(1(r!Mt)#b z7vfjs^(%1#x9G81_N7rU{U&NphGm$(-orY!2-Ju^Bh!pw6FqZRr#nj60>yN9OSa1G z-=fuq=`LB?Cqg;j9#up+?lnAiOrCP;_cO_o_Zp6uWN9F3MWe}Kaqf8Q9MO5QA>~!c z`%!1-#~iOkGGE+3n!w1^uSXNegi-G&+$Eo+;-Q}v%xm92$VhKUt2~Yd{Y0|DQ+$)k zXD8GjMj%vIoi-7s`t%Aq0)A!gU722y)T`b~`)ggk{S~65jaIeMqBdGo0W`=qC?nPe z$zbTuwnfQXN=mc#zhx$;4tmN??m*U#JAm7ytv#I7p|6ehr}kWnPrQG^Ub;}J$@sKD zYXP*@6^`xt#%lMRH{stsS&cQRv1aPrg_PtUXO-0XtaA5HcutoQ>QvjsAeXnRay9Bk zU9#yLC9Iw!oFqR2V1<$wgG{i(7~*FFAt!Lg9}6?)U1(+Y4yH7k=TRdatD|ELE4&KF zZ@10ASN5o;Zq?MS$btN98%z|I4t*8egPC+Z2Wu}gVYjeU*REv^6@*iJuW8Uy|7nF+ z)A^1q8zdXFsgQ39;vN$g88>8!olNv%eK?sY`NIeO$QU1FABCct(;=|P*FDwI8EFXz zeHbR5IoPQlcNIyd?3C+c{cU}NZESuYWPfFbE&Eq&xwU3VFPo0s6;hdQ18+ z?%^p_cKD6$zr6MXCH*+4Ec46bV~1y!W`sP7`qpfHgM>%y8!o}V-{$+1Dy@t)x032w ztvc{NtwFJEQU$|M)%DZRjWSeCE2+Aah+9+*1SbOO-O!_R7>1sZDWFAKq(W;7%2=kK zqC6zlB;#)nG@iStL|{36S`b6;2B`941{C`25`Fei4~Oj>Tv)~zrRlA@cNuWZ%y8P( z@BK1e*w7=hz(1!@)vY7tGu3-WBREboc#qcN*PI-E|*8eRLauY86nK z2-G3EIYdAeKx!3VnULBBkc5MpWct_QIG$``O6#kee0{YOJCWcw2?xb*^yr!mS4LB- zT0WZeN)HSoVV?GpXEqxucOk(xS?{9#i59z_Qq`<~S}_(@-i@3)hHYK>{b#?DfW!4? z8940mEHa$Lf!pB(c;DamZOb&Qmg}mQ|EX^K*ICKd2EVyvDmtnA{EvL(qv7k#hPN5R zfTWzh27O%R%JUzER(uWhrtG`ad=$E?@O^0pHFI@{%VHcvF)+cSP+RBm4ScMK%Re&*dqVr5h4B&Gr>Ql z-H&kP>8(G{MK65s*sy!S9(U!|0s&6dZ+jA>-zqJuzX#d z#Hk1DO_42ta<@}^=aP#-?2>Yykow(}st0OlicR3V{A5bi)Ca5wYtJs$kmZWujoTvp zGb*igpl0d>wOg+0w&Fv^N|KD#VTVXeH(m1zb>HoyFbdK_{#S=ifMwJZcLe~(I9~{ zH?oRQpH01UmFsOgQKNk%y*-eedutq@mx}Guh~_gtGkG{VdaPyjVM(%)tJQ4fnI2o>7TgC2FtmRRgxEngI$HB(-Mc^jm{ zWj~l5f&Jk2ga=%iK)2b7)J~Pw*Z*dHDuh}U7^qu8-aRDSsBgg2@PMM=l1FEh%A2eOVq>tN7qM86B}enyXtX zt!;DZ_n0%QlIFR; zvzda45~c*xW$Y`0fjcCN`O}c*dc+vAkiOtvON*>9hiuQ8hMO!%EPyUIX$oRVd0>65 zo!knN*d$=K_KT zr(FEE%Pj9_(WMf!**^&fqRNiZ}{QLsg6Ud?o_bz|dFATP%IH_D`UFx{{Y- z*;MMK%jH)3)SkGN_IPuh+)B?c!`Z@E)FqhnACgkzmB6`JK$u!s_%WCz4`ek_E8d~|vdT(9ebO~&Stqa5sYq0%87YKuL#G8arxM)N;^WLSZBnI1q zn*~;>dbOR57Bqw@#U5TugPp1XWf7y!SGTFNZ%K_lA~m|TkqPnn?P1?<9;J3(ZYP_5 zVOT_E?rG#p?koJ1Nv34qTZRdx+;@geQ6%5P_j&CQ=aIk9yO_QSa3ea1Z;3rW=(vH& znt0Y=%;k%VMjxI*v)AjNQjqjMV1{UDCtnQ`2jtQPHvW5Zm{ac~-f0o%lGPex0IV)X z(+5JLJJ=S|Fg_ZEdUZhDE^=JRzhp5-{YTlhd!y_*Vk|T7S$|g>J-{tMG8VbbIRP9V z3})?>eg8|3-Ae4B2Yl)&Z2oUG1{QI5B>(s^V#~aMa#hLz6$vb+=44Onim8%-w4#2g zKVWO}a(38%S#TWmaHj9ou)#hv@!_z+-q3K+a`Ai#+5xO7vz<;j1O6t?5}GeU7=~hv z0Dkp7iBSLNPmtpMlm1s1%Cwu~EKXRO)VJB{QM=^CfB*^~A5Px+1DpL`d~clns+S0g zyb}E0=Z4XnDZ$*AOB{{`(QbFr54AV^K{)E&04H5chqC&~n_eO&h^Rm?X?g>RbQxYl zN`A;wIUS-IY0G$|PUY(~eywv;xtr9fSRojpq`9~(2D$%TkPaMnE@kkh4vpgbXBwJA ztf%EG`R;6k(2d!x9Ta$TpU1s?kCuJtC$c*|`h5@?%6O`Rgb3 zKHoqOdZ+9ZYKJp-59jw2SD_sxxhsvdG&BO+Tq4rndwt*NViw_J*!g`gCDXV|QubEq z$6G>jG?#&bh)U+)R7@?oe~d&Ul274$%g<;K=Dn@+EhQ~hgDj?2oHz)74Dz7OU90TM zo>i{Ge}^U+%rqn#kZBoS8?~4;u)*n2Hh2Vi;p<-vnw?Lv_mEW|Cv9cNT`IpyqJSx` znavJrs=K!CWIHafhlaSf;{uKE08+rI3_9R3k#7rU91lv5DRW+z1g~q{7$$SRJNX7V zm^U0dU?H(b$5SLSL7SMUYrRhUQ%s-CMxVfPK$e?{7by2mehgO(DS}|J+KY!zYCcoO z`w}8e$vvMf9@2spteJmP?wycN8Sm@S`Ty7WKj43~u|kO9|8{@}({lKOr7j8VyvWyP z+66!afd3{ZY==~?zJT^`!6D@#A*PDb0s|=@lYpy@FVXt3H_7tFWFHtu=8_UsdigfEwCisAg!)&}gGC!CE~u*Ma+h zw=n9enp}ok_=~Cq+Torc(DvYV-f>ra>ijF`Xnb1(aGPX@IB>t^R=}PAaoc~hcL484 zyav3BX)cvJL~tN~@}~uU3tu7`YuHTvm3XWAuXV_-_Ud&O-G}|Q`YQXr@ic!DWRv`M z^i@0L{*BvO`L6>=qdiGj`m5JIHhkanNj?7fQ(YBCh9vRwAjIad^~va}T%7CcVg zD@)+CO7p8LUnQ-0b>*^8sXEa|mHJ*V?Ko3ioEoL1*j+mYq~s$8kY7?17z3KrOlAU4 zU5q+k2g0sOKD##uxsUE!Z66llxc7V&m|y(ozb+gky<)Qa`v2$K(bs>w?x4D=U_pn@5GDCM(;~BbBjiev1d#m$E z?pQxKST9te(O8lz-zc?yc6BbZ2n>Nq4G~^mW`*>oa;~)jXy< zRpa$9)1$$6kM69dZ|W|d~OORCiX>$8@Kf)PLO@R5NsE zHJ!m-JfH4(?gx?@wcJ#5#|xlwVdAKN8vr5mg9 z=uizoQ1+$76d^C6lz44+GV5xct7U5z0cG=63X`@28BKhXsa!+R5(6;KL_CHqTTj3% zxN#qa{2VU$^v36GuyH0!P*SqP<#s|{tD3jvkzmhcQ(b%E#QT}m6J)?_&M)j90kGt2 zBc&9~Oz3m3&lFoFxyQ>4P4iD}{e1Q-ehLL3OX`qToX>v1Jka-6&u7=>%5Ak@q0cmk zF#42!(4Qe+)WZ!{kEqm!qCcDveamqg0k@5Yc^ELD7{xhSE-dr9GP_m_!I5Pi&@d;4 z5oyItC-X7MgtfCgp>-&oAE$w%8bHwbgw&i4|+0_ok25v z`jLXuX|B#H5P{D3EDXNV)R@we%bOhdD!l}FOGNA|Q4=x7Rp+1Y6HfjRDn}k!tAv`p z1$QuK`pQQ(E&J-$-G>dXxCd^@7zvq(L+WHS%u_|P#g&85JtsRtEhB)NxH0H*$$o}R6+5{jPdJ5=P8;RJ`hnz;`jN&IN5iJb zuZNz^$-8?3Zu06eZ=YYSuY=U0kwuQjk@W$?C@fIhT#VWl9;{sxFd)WCLQGZ))N06*QEG|tQc;bkO39FFwd;dnVI_Xl zVxi|l8(TgI$Mc0R^}^XUpt!r6RGxl%f~s51j&DRuXR<&BB`skz<)}LunrDO=lt3uoln-Q zVLG1Z<*t+7{us+Pm|Y?tYYYcI#_CQT&rv=q(y#5H)oq(so!Pg%?bS7H%Qu}ged6Gj zOL9hKbw8($DK6CO-vJw=y zTDXUZ*65l|z4vd&R3#fHYio!bi1tl5CS2Xjw^(()bW~>Yt9Xee8qmI-6sbOavdv## zevU7gU5;wv$kQi8N1Y%#JHBsvcJ$M|Q`SB07&uhkRQ2P`K4vcCpUz}w*65Qa>U-_Z z)w&hbwL70&#}_aliXH)G2C12*+0^Gx(`QRq@Ai6>QA0BEiefWPm}$tJ$xiS!u=VP_%p>#W2fuRba0}MqUuIfE z`zdIwStf3~=GEMpxSUG@wl6ACK=rb*yu6#gnlrqc2joKq<)2^R#%Yt}-MkH(47$5r zJY~am1ho~{Y5YvuZp^*YZG4Tr>0x_V8vcI5tTzoM;?koES&WN7lCYC9#>Y?*g zBU6jgf^wCcz~K8ELF&Dq3No92QCNHH{bSS$YAUn&Q4N!W6;!&d_QiKhC#Y#V77tH@ zbuO<#v+W8VH2-XNx#xox*L`h%8);h)c-c*!&s!<{1q0cdE&^Ua4>zNxBxk>4Bz?<- z&GhXlK=rw4QQzKp#M^;sMALEU-hc%;K}4n6SN>_!zpnr|oQv96V$=~r8luuFwxOWT zI9io$sILhLBbvV^q6_BlVw#hr6a$(pUKMX7Annb1ZWOz5`hpnQ5h4PBV<~CKh5HY$ zWV6RlGT+p=*s~3UZ0mW9dQYmW%T^gJv~%=mkbv&U*lvdkB>UEEPe>tnU(?r%ZTJ;jofp{FL%!PyT-0i;n0st z^EL>3nq05Z75QaXNGRdiI@~S?Hm!Szj8=sIo$q~~UdOUa~OE7>rf8sJlqJk(q*K!xc$ZA7|YV<%IrcABaNkgH5MknnK$6@w>6Pb5BHq7 z1M3BQTUL24oVLzm*lYr$)5EDBLH%D35gps{mz>F>ZkXGpDgO~L zDg-nOegUk^L7eWd1r1(zIM|Q}S}Qsi{iH2fhH9V~{7|4v{vDgN+N#Py4;Q{3V8IQ~ z3J={{I1frtyt=^Zy4N}(>qniCbzyBFLI(9rKGCl%P*J|1<0x=<<|?yQLgqU|<|QHX zQp+5SWEy8B)P)kFo3H;y0Y!pagWjAnsV3CWM3;1MZmR_1pw;J5G09)C6}%Xm1H4u{?flLAzLCtRn_hpRJnZGG*0{8nz;Pe102H>RzxOHQWm+$^@!M<-bL z(6KsD3<5I{>AaQesl;@LMsG9z0Ij_C<6n|wRtxj1`F2)%fiFjea2$WHZ~-$ag32vf zvpHFR{;`ZduD$tpRL5$Dt%|WHCv}o zCILb4YsjQD-O98Sy=$|tIYWRY@7f!vzeW_nqS=#Ij>)}2P0W8+F~1w)HgnKJg-Kmz z;zQF%JtX>DEOa>o-pQ>PO1xsKaX@KMj^J1P4caU9v+dZh1Uh?^hNxMfYvfKQ9I7Pp zk@ue7AS8kMG|XCX}Q(~i|^klBx}^s<~^aaoPdH+ikN=))(c zy%u%0!APOSIuVa(?h$;kBS2jvfmD~w`dG1nlshd((`fuc{N`tU{Dg7IKVx3xpIu?t z#r8hLZ-Ubfo_+kv&Z+RD^?U*ffRpi1Bt^71KlM%wxlq7s#6yYSo6%F*P} z)Clb8UkHXk%x3mgTZ?CdZWuhtiyk^ASA(cWfOiPePIZumEx>VlW1Wo^aLv^cbwPRn z+>x)G=5bObpcTe$(MLG6z7BxO@CO`k-=KTF!yBX5imAY`~9>PoluGzlJ1(_0=) zS8p=l7*FO3SO#t4Zy!=uDv&x zMAaG}s`2Ymxo_AD+hw3p4N6vO*dfp&*)Ij4S^E#`?x5vueXBCBuFWiejrFNj=6{`| zovX$?kcI5@9;-L7>EuFCcKQ0zXJ*HbIukGAnSIsxpGWmh>H0}tC?7ktee(7B z@qDu)W7pL^AP4I=Pn?BUExE61^nwAA$8a+kUTDBr|00HC|71nIsN}cVt2Tbkp=)ZxV({(qGJK~pgd!Jrjs%O!NtE3{tg@q&Mh-I${5(< zFD@BT_Q51+U~|4ipXB9kcHE;kPO16{F2|~5Q?T7zBvM)hS4Lo__1L6G=v9yXQ3@40 zL44JRieb-PocC-xpg=~o7gI%6KgJbFOleYyX2& zlEnvv#_q25pMMvW$Rq5N@t-d)Jg2c$@$L8*j0{FSTzlU!y$`Q$t-bFRvc69s^VtEu zAF^2{xb0(Y(1Z6B=+U6(HKvbzRG4i>zPH%iQ`+BELz?{;Z;IK_`DvZpeweUTik~f1 zrX(B`v7HA%4IPP1CBKJNh=1cZc~-Y&l=U{oZ?|n3Kjg%L619~^??#isarAb-ocNI8 z!zF~D6El_%m#uLN@5`Sb?E_HM4g==nRd2xW9kTxll(ZX*K^V~j@9Q>%Wppq4wH+3s->DJ2;ryX| zd^Onl<8%Yh_#+Z}+}g1PgRF&Jffe6_!+SH$S^c%%CQdK7Qhn)tzLw|dLpns`63$k_O+w%` z()WyfFUxyaw0e4g)Qx(1!D*9BKPPWITcM|t=x0pNj^1(Vf;vrB7Spg4xFHdw3xVzF1BDJEAvIcvVxmaEy ztp4kgIH3cHu%}f$ zTLw8iV6aLR0DiO3?=1rt!X8uo7a9>jfstf$Sl`$q*bEu-V()pc_mIKe-Nm!GeKhuF zDKTfnj!KrlzGgE}>@6soy)&RP$nFl+JDc@WL&nu+vY6=J3(c}$exyAcPRPruho)Jk z_e*Z?73`C}UVRr9BY4HCuP}`Il_4ft4 z3aL&D`4ydk+y_ixh@ym6JO|Hm>?9?=+#)u7TXrhjhQ!IZ&>C1|?nO-{m-@XO<_mPOS?jAGs(s*GG zn7;lMg|+PtM4S|u_aze0X8Vs?sk-*QYQU*aF5#Y=-S}66^y#4-IF)}#0WJ!LvhrqF z7l&H*{)xx{K6S0kwwDq>%vnvS$%P<$1lTyGQ9c;RA{|Pcq8OUp@~j8!>euEJ+C?d>XSwR7TO;damops!3&JF z)722ijoo3*7X5HMFIe-L!>b}Tv*vt#cV;oascQ|n0}DJ?k-kQ2ZqkrexJJr^r%~AU z_U!9KDdh7Q)gKNnu?#yX!x+ynh74n|e~Qz`DSfQd-&k-qxI%ZUNe4XHIK8^Uv;B;;B~d67|w z+c0cWL_D_o*_!HP2b@Rb4(bMwih|fHjI(D=8m}5Yp2=U^hmYmD!dO;9qWsU{`))gH zQnKaqg9^4zFc^caV<>GE=S1fPeRTWa`bU|<-Xi%BSBGLAFy{7BIofwfP9GYEbm=Xy z*%Sg|*bW`z@HiVFtUE=MHJG!TS)MLCmSwfU(h_a#g7?>)n^)U62lIB(W2KQ|TZ5$rh$kC); zB6HA7E|czUT&xOka~g_@`&v#T-b)Bf^2okMxR0ROLT8aF?|~|O&|>t539x{TWDKEk z$#Me6%0-5|dT)I9FglamP3OMjMrRSBiN3=A@2u08kNMr!!Av$>ak4IrB^D(GkUbibiTF_%>rnHjUHDCWSvz}8P2WH<6@PLyR;)Pu_`0O(_kZ!Vca8hQ&=2|=P%hVhKn}2ZyQQ2 zj!s0iK(;a%Ienpe$j;%+!~6DVsu*C|E^au5SbF0IAEgkK0apytMdya@6cINGllx!KfZzLT8d@opS4xSUha8Q+>W3BQJW*o zFEtXK=2Qv970gQdY3fQEibbI2NLlO+x5WerFff6|EW4J76P9!(T!b8|1eath+PU4C ztp4p52_;yd(>^sqXOs5K2wmMB3%5vT6yJLP8$mMt2QWDcnCUbZsW^aTbmm$>+^$9$ z&^vQBb!@io(jto{gx)S-Xjkoaz~pj&x8{FLO&Y+j1QR8!td(e(EC1MMg?jLWaXwwf zgHf4Wz?P8RiGVCw`}N6XfAepL6Ov${JE9+we+eJe>ASmey{_nQ zyCRJ@+WW9sj~zFX*7`$tKWNI{lz0cewVI| z#=Qi;?u830jj;25Gm7Deu>rm%oA@_|D8vn*H8)Yz&j^E7@?x0b<1r8iwOKG9UMrst zGQvqP-!6}4Z`!mTn;m#PqusU=r1(U{mSMw4iELZ@5Q z<|?u!f4N+=5-sa{LmdGC>eQeL3ybXRN8b;c}TP!iqA&hp$ zD%G>nrb?IJSeu!vp$MJU1C@+MFmxMJzjN`4vot}s0ot`@@iRb`gAGs30nHInhu#qyGW0J>S zG`HuW;`$ckJNXY4$M?RTSAjb*2u+h~zlxO;9GP}#T`#bayQ%k~)haMl#Uhe=(~4a% zPCY{aZ_ds0T#YQo_C5RL^Wvmteu=8D+D_*us;%^9dtpnuw8R&% zV{HRNlMKSNs(}>$fYL7^3|mWTUIuo+X`~Hzp-kv|toNl+_)&B;ja=BZ5ne69?Nij6 z)d=h-4NaBLZ-SM1lrn`90=R$+eWM!?MV_rgJAz)c+xp%3s`JFR*{s@v4~b4rwjsJN&;RFkUbcw7-56NOKi+bqX{Q z0x4obMfK>4in1$`V-5Y$pQ)tTmY90&YwS87$IIlNXMI|sT$+el1|)WeG9sz`eVmcs z<8%P4qp6Eik$>g2E)S@b~H|4jQN+xTs zV*L+HTQ0N&owcygWh4^0)mjzLW-;cHi;u9=InEAy7&A&m>`NOZ15bGe?Ij&-ClOL$ zq4uV*19oA4&wGtk>)U}uGY68fk*;hwdU#iG1~w{C;inQ3G-hR~vt+vy)KRxzl3iP2 zBHiHj=Jk(aw5QcKE69vj_Sa%Wt2A%%7SGtkZI(0X{*Cvm(_p?WZ0Wzrwlhi!5W4n8 zH47%GoJ<%=pM}2t9~iq-1_6pecMvUQ_yA9aGx}wbNd1ToHVSw5S{qVqRG4wBncZn7 zgDgX_LB!O4y4f%C=l;f@oSj&P-g*3NKq_{VZ7-H&wzOjI|oD^{3i4+4aG&&40qVAJMVH zse6~Pf%S<^z7KbhEDO%l6e+k|IPQ~LRg12RxvI~?&c1-ZufVS!`e5?cuX%Z8sL<5L z4_i}hYHH=1o^>f%{ahUt>YXyQC?Bp>cEkaQilc606%#2Xb&;A9_Nx%KmTe)%XcqTlLpHgG=A4U-v@ zZ91RF?XM?<+ujXbnjdy*eu%+SyhRg4FHjZ`J)kQ?o#yJ3iWbQ8r(d-5vcLM1wyGre z^>ywWg*j|%XPjun$%R*v{C=|VDwniGg7_b+SK>gDKzBTb`6Sa&Ti8+pcj;gq>z%9= zy=zrtBnbB2m0jiAcxAw)lXrj@<*QKzb!wx*9k2f|XF(C(<1JXJE36L+TwfrRFlwlh zj2H{u?qXG;Sb8V>I~PzSGPNyQ8;rFUu8#j*BritBzghieqje{rfJ&)!cjg1OKDPuy z5+&n?kzyMKjT=tkg&syIdE<~j7?we>BzerYy>QlmW?Xi~36!vzzR*dx*m#i2O%^|K zzR`EtnK^qvEF|nc(rO=a=$-PyLWu$G|Iz1Kj~L~8ADNn_9{_W86X(B&tfimhJhr4jX{d6#CTpM=uS!*_vxO0EgePZYRpu3UOukbb(Z2+_}dcr@pp z?tytn^mDot=F?A0o~(`>VoFb63S=$AT9s4sWNiQ?K|(r8dih#(p&jEs5Qdz2KQujW zIwjrB9LTVXP?A0Wa|z-#(#WZ0{Z5n94KMoS^sA*iB&PvKg~;gvkDPqLWbbyGzMg>o z+8O%Vz61K&XJ$V7I_uYmUAG>);Gw$RX~^I#dTNqfauha(9N2Rr4e z>q`W;-1g)^B#ms{ZDfJzxmr6=lfddl`HPco%SaE^e5TpmDc421mMJ;xm^A?3s23qx zGf&{;PTClu)5QvEzz7rLK#YqHz_{oD%s;_+o6oOu@TRT+FY}%;6U{Rk)VIu$)jHNI z!_e>BK=qo$TIgO&rP32Ic4`uBuy!y(Sa|>ZQUsbWENw(0`Y;46Omc zU)^XVt2{SN#6{iHH$jKWljqwqrN|}05n4>;GT~?Li z*aJ(<@ac2?Xj#=E1Gqp}tx}n+U0vD;XaTxQFNW`qpfkny{!?a=1g#*5b|!$Z16tjv zjXiEYwxIB5;8sO#8)oD})XfR;Fp2Ygoqv}KD5hy1L;7OKVkR6C)Gb6vN$PTLm6G*O z?HBPKWQlKU;|5x@p%2<-q4e1tKl1QH&M37_ijmk85KjB54uZOc+epV(6|7gVRc~Ir zOD*Iw9buu7AaBwO#u4#E>t1|F1m{?e)rHa>S9_E*i%IXrY10bEC?qcXH(`QonmmlO!8+3ZbE z6hxy18i7;Jj@A(y5Cw!D04BXfL6|1tV}j#t0E~A!u>^9|*`+H#yliml>kv*lKY~Zu zRODMx$h$xO^B61d;O#s9EbcGcx93RRgCB9OkZKQ*h12Uv(+=FTclnBLcm&eewic@$>Vfw^_Q!0UkPv?os*yljxp!E2&U) zuuR_?_GSmGnYWw&O6E^SMxtuF(^Qya2kKxQ5N;C0$>G3JXE-aoq(3+?v24l6hlg}?JwaK?I$C-6!n z5rSX)Vg+0T9Zw`@cU4>I?8S&Anm_4_nkbN*oOFKTgq<@@q{e|W*?RiVAPX203A^DC zyviT}K^teK({P3f6J$A5OF=6rWsq6OCU>5`wi?uI^T1kwR28Za`UqFkgZ=%q`MHQk z4@h2&5UO_b-v01D4@vg~sD62y*lFGZ!7>9X4HOK$#72b2kIfemK);vkz#Q%+PjN z?XvblrdNw%D2@q;iz1)_s2hXHsCeQF8+FF_*;f-^!47e!p=}@$&Iwf`m;CB!)mblX<7k!$Ce2k>1dM z%UTOc8_{t7iHKN<8>o!;cft0A*h#R!)ICUGYAVVCNdOmoClk7%1Zbv#5AqQ*Kt3YT zGA07Qa)7~IaQRGge1B;`BOXj$31?@7Cv4lAy4YmM5*BKm{nEBgNS{dhbGNh$VL2y@ zOW9LY!vtzdw=gN*bjy`$4il>7W}n?Tp;~z5?Wn-ct{A33{SAcg==-#@@)DihijOT- zrF*k)n$XSag|~C#4B_5LxEDxbFM6!^Cy-&tESA!BOhfy>Q_J5b&ALUW)zHN#lB0g? z>W!&OiH~ao5!66S*sTxHmJO0;o%u-006A;J>>LF|j%@-dHio!RxaC2>eS3D}m%TK& zU~eH>EJP2X;Pt(7pa8^-C(TU`7XJD$HPz8hEq3)=as$G!|xxL5O6 z^gr11PyVd_hjoIqJCz~8e4X-~7GDP>%iJp_v`7dXExHDE0>|=J4$hJhuU| zw88}Y)GV+f`ph2CGl=$E>QR(JvjRhtU*eX^${ob&X05Gw1r%z{oqH=%8kr4%XyH|m z0(>yRF24krg4mFhfUKlMjtuKdcdm+9+ zaWhtNbIC74ec@0}HR|Vs71Rt3K>JF}PK>bQGS=qm%W9scSThb*Qf(EI)S3OisCG*k zT}rUXB*>3BI3}lKsG57X)!=w3W|)beoXfyi*R|MsV7ZSHE!^e@P`0V6(dPx7`2 zHSnFlK4kzS+EfpNtUt8kx9oKscdQ z8c;|i^-VAv5t(Yl4fVI4e<#7@yzQ$8@29YGO7V{QyQH)lXKS$iHdGXr)Z+zoCV z4+QAHAmS&9GAk#Gv7j;7%(X31gH1WB{bjy?!-omUJ^Nxu6fE=Qn()ILKRF65=-V@> z@sp!>swrqfp!(*y6~qLjq)&=d&<~I!_yIoFh<2zRl?45bVQANi%|XQQi&b9b^gp)BEsVoIpc)7vcATyaUVe z`}Wbe2gw$gcX1Agk#kFs@RU0ME|YI>6#V!5}qG} zG&!zReso!-GYCC%GUEpMArog{aEDQ8j17>HbP2iv>cF^~^gOV!FJL+F7_h`<>{)^Dq%Hma%FWrna~-#Se?0TM@=EGwY?Brh?b*ZQ ze~Jd~QI*!Ls#3=H*rt6!ns$0d(eVET+xE4L1pMC5Yuj#_-z_I&Svmiq{}-gMH(bSPX%q;q zmKOyY|MU#=!X9eCCrwn(HxNRs4fOr88ZHgALgW+7$_7aygI%#={CGq8f)w4X3Ff8f ze`ou_Zho@#^o7Z+*O~bv<10S3O--FovsyG=!BPrs2dUZ@?Au#es~EG`i&T4nW4n z3)ni5Np3or8-=p#9P3|&t9+<-H-cFJryVZ{oHM}kvVz8k7Z$wYBc*}DnR(gb8o62$ zz<^Ll07c1nXcPBc8Ud16#>U`#y_B}dhDlrZ48E_kjqSvh$QF{}1N$!@chGSTKKiWP}}qZ3UyHPMPynSTX$ zw~d0&U6jBN|G{ai1(qjnvE4`~X8W8*)Jk5uzn9>l9kt0#0fFLCI@1+O!NIywmoV5P7gKNwA)Pz}$s!WOxEXiX{-`rU2#2%~rf2N4SbqxhMFFXk*m<)ZvtX^cCMlwn5VHxq$QQFv-$( zD+zQl+&k*UINC!AHH+;Ec}lfLMS^+#dB?8kgM2|7wCxgwB{3#$<&odY4iwH_P{H_C zL|<*Be1zPRkGUI(?hwwV@7rvGHFnVo!!ol$Jf^a9gVe1S9w}8ex`wz}WLXGHcAVqW zSV$GrJ=1)_ZS7%|ft5L!EW ztCD-I)h>;MB|t%RB*NOIQ(jp^+R6l3_uh&n&FjWYYF?BFnj% zP9P|&KsG)7^GM*-UFj}T%GV-q{&zY2E|9PFtf}=*UA&gGS0J-N-hf;9}B~9QaK=ePkPRJ<^?zr_M)p0^evQ_961MrGl`G# zqDT9W=?Z}ZeLB*m_AWLDNVrmW~0CYgd;pnTTE!e z0<)=$Fy=`o^I|x^CQ5OqOpkdOO%B7(#AI2g-t^Bk{#OQ5mhdG4%$3QE08h-Ncbn-jt^yDxhXbkg8^dB)u^- z^Lhp|YLz0K#Qm<%ch!T>-c>WuaNV6_Qufi5mG@u0^9A9 z*ilFtWl%|=QtH}ytUTl*(rT3<&77xI_=tx{JFw6S;h={oy{Vm2doPFkd7BF2rerYf zZ?GY0W*C5!0eq`*i`Xx42u;aInxJcF(2B1k|XXk>HnJG=sa0j>FP(j#Q1K{hlU4iN{} z{Ax+mPgdPq{V`nqhlds3uaezdLIsEBma#$gs}4e`IGYM;|3NuMz4|>w-;&&HVSO2q zb0CTjRls-YdjiPb0u6n_m4n=;$|yx*$sXjC3Vdkht#^q~y5PjY=p1WfzX8G=j5Ow; z6baMYK@xZ6ObQc^cbHVD#iT+VHqKEbT8Fm4dY*uNB@k}Z4-=-=L(Z@>TrEBQkJL;--JH7+6Ja@@Nh>&U(G&rg}LSL?sM z<=x6JiaHol1!mIK+HIgr7J6gFH7DVLo5>`*K-~F_CtFZ~e#}0Nlz$SQBqt2`Goidg z!_$}3oAni-NtgCw4zXv7+`ZxLqJKMk1ww>|(anRlgj8(eGWGgvI$NM-y1 zimJeH$cObvk%z}SCK&g9?RG7*)v+$iFCg_e(OM50ZBQn~Rw6~_{f}&~3-8BcihDH? ziHbk5xSF?Q=^s@!M`_wYT3InXi3sLv9-OlmUn*;;e+2|tsv9K5n1rTv2nq@SIFT?N zN%6O>B@6;x^hCM_2(a`m1cHYW4g_Pq*Lx5UN=4?K4}+L5r2jFsJ->Wq{NZv9{(S}0 zDj58!A#tb9^d#*S)F3bfw7S_Z=tRRSKvRaR+TXM>bS>mVe1|{ajLeH2VjB5~KaSSA z<*H5-ESeehqg;ywSClp)DTEdlK>9$#DXyWVf_4RD4Xra>0SP)pXd<7z6_DL1h=#ee z8oIl@04pHJW^X^-aiXK0Wv*sFHyS|mEkK&O2&Xj?-_260@#GunS$g@~^j;2x;{1@~ zS1dPb&^}s`mv9{{#UK%K5Vg%MM-L){IMZ#KSS+mNIA z^9_8xyc)qW7(p^r=mMmmwI4@-%_(icFq^{rFYoin8__}UanO2&jo&NJQQ(P%_s9E= zd8E5&+@MF1z8^~74xpfneviCSGU&a+eH#gzrcW5@goeif=^WIW4cmHFz;q59ADj>Orlb2WqH>c^8 ztDRs2&n@ROU|qq|a0rFcJ(e%J-5pohEY|T0zkj=AakIRLNsuDbc5Va%)R3-*v2bCO z*|-2%;GaW8EPbm;2R{BJUyBrci>*K>2N{3UKq+P8S0Ns>J{!i4=MKpRezI#VT}v~3fv*as2-PgG3!KJ%2b9~^=?pR5=kYgH+?TzKt3|) zYDe-Bl8$iVpU?!caUNcF@Qr8{QU@7qI7@RJEZV0bKs-T*m2ca?F=W0wY`dsl@GWN{ z?BFDzAfZ&DPdzehn;XNTP$(J>S|DnmZA638Hm2$|Qx4JsA*;n+PS0L)9j05fhVUE zMVRM)!$zmm6NDwHvYvvXn>E=@Vd-@dfN<7M+8#HP{;F+X#&oD=Ij^8_VXH=Y`B%yu z@v}3;dz!5>)LDQbN0rG){EI|56OeBsC~_5lG8!jTcJALSm8CvTUz6qyEi!26!bd&wb+ zT|{H%;KWSnaq!!aMbuC}Y*YJNw$JS4`R$JLK!_nosk=}|V+o1h-F%3^cVB@o55Ba1 z8}L-vz9n`jM$I6&2Z(yWgRBS0fQ4wr(+1%kvchELV=Xlbb@Plk zcgcvNea)4_Ptqw0Y~5Bo@lf()k=?qjcq|@GbXVQN!rG{66Ipw-s_pBbjmv8it=K3b zITsTiFMi!lc*rgj1I@wtbEEy2quaA$$c+u%mIQKhgQP9H7Mic-K zuq24xYGSvB76CroS=tEjLc~%~!~0`N3qbxTsbpV`JxF#rgZF+e7LuNoa)ZSeF=2_R zF_r^Zc@ZlwN%glvQRT<`Dn9_%8T1422W8X=-+`WRYyC!M*Mq$6xpaLJj~1ecLytTG z5ySZ&I(ANIFEJ|@Nu8!t_14*-suSZ%Rq%$zqZH!JmCuaxsA|aYy+~EwhJYn_G}jGM z%%b(I$WAO~-4O69Thsu%;no9rvVxvue?QO@HwZl0W*vyEWt@MTmnSc%DY&Csq0Ni^ zv#_C?-JflAdVZj5HbkGdKj4ceSo*j713n(rex3m^HB1^l_do%F)M-d9tR_$00VWM;}x3s>N z*_Tcvi~I~iBv;xD0UU+0T(rJP-ZQ4-NWRVsg???HQn-RiiTK=cKRs^fPK;h<*;nqlxxQ!-j;o zWYt9fsPqxZtslRdCuI}WIuz@&xtlefPRj+ z%+W&c>E~-#x;)8YldAL34=`P1mjBg~k4_=HOv+LHlY>5T$(Qr7|3Po%%l1Rm+Rh?h z;-`Z?mK>8oAH$FH>EjEL5Pb~BqcH`!5e2|=o#R9pzjI*x{&{qmK8Ezkoi&XhB18jx>ee8az!*%cJKE04Ho6B<2Pr)}qKT}6$(9fHreENB@Z-{;#$D>*HuT5cTpIg4%VvBP6 z>8U(f)97a!vj*ws+B|vF=;weywWObKrDsj2pARZLIv4t3dM z%aa`T-pP6BN90TO=Irw2@*lu=0^529jcxv5?1SO%ID5ExGV;+>>>_#Hk&4JN+9~no z%CE3XgrC24>^q3FP&Hj9BQJkIBvX>+?gK$9u-;+Vqi~w=e5ND3%cFAw8T9B zD^-$c7~Lq)_&^{ATD*(#4mr3n1s-eE?|^q0F%|#)MgmC(?(8wa+~}}svF=}7*=>Nto4$ffusau1%W3$uOlGvXn}{MoQuLE zAc*-M`fI8SF4OVzG__@)tA?yNe1s!0jEWgA)Lgl0q$ewir|n8vQ3M|(f|ioSlkf=p z2Jt7PIXD>Tp4KVboX(aRwz#M`Tj;-770SPMY>Yir-^%eeF*ZmY3n>Q}3>vY~930A! zQ6c&+{u%3G*?yE|d{jtDQ5DXOX)k(Mu=~VV>tT7^W{A?mg8jP&nvW4LVtYvNrLE5f zAQsP1DvA@tpj1maC4n#nfG5VxB|>^YGuXlHFlZwg9EYI5tLM7{lS7uA#QR+30_{<= z?Rm$z*JK#GN`Ds%{dF~xe;dfZ4fM6s&m-+gScb6kG3It`;}x`DX#Obul@kq;8gSMU z%!^1(`h(m$Q^~BJ^oK`sFz%3)PD4Ce=GEy(rN48P{w99|^mq4RN`EnWWt9F#AL-NI z%QBYo=x-w)vHt*~T@*Vpr9bv6C;e?XLW}e1Z*(Ysi2ijAh{o82q8*T zbK?u5phU?xIdb1SnMb@pkg5*(oVQ`75$ic~<}%valEv@IAYVL;l><&>0aBk|mE?EX zNDy5AZ>B!yh!ZZk%s?xp&u2*lndh5I-DPB!8nXvNBt3yRUkOq^ytI#!9{@nc6IY*v zYbPV0o(!Uza%jK+Qdi#_%ls;6I7a(r5P!x%g`EKn)*t84oeAGE8fWKNm45b6{fZQfPKA7{Wz`Tl zp(*k}{H{pgdeY}AY*+=l8ZL@dpO46xZWG~D?!b8Iefh?w3N+6*%J z$gtw%kkh}T^cN>26Qn=jhe&KjoUsUjxT8OPhdk$6cL3D(uq)z9f9Y9;{#a&_>LN(2 zn0fqZOO6zFMU<6LQuvU%C%1eWt@H(|qSqVrRl}lX9@w{PA#(A~Tv+T0DxP2Wgpw4r zyRSQ?oplQTC9+|f)t(8q6H+^JH+?GWr(m0q+A-UdQ*W*~LBS#4kP1;G=zy5zq=tQzF@=2fJ_O9PZtTRQ#UzJ(Q0Yh*RFzR0m7$sVl#_$E`;-Rx z2jX<`*`z9n!!uzl+9++M&weu683VPN$Vrh(bTL=(Ho!nvu7;9rwE3%o7zq3Pp?e)a5P z!0aS)yM@{9l$U@R&o9dYwMeQ2i332RB5i(T*9@Q)u{$QiT#R#uE7W~AMFJ5e+PVq_l!zY-DA<$w z5>jC{RrpMBEDxX4^7xYGAe9~=PDcKfi365@ejXB#j07t@b?vm zS+YK;E>cgXZ5ONd$BP7H^A-RoY=1yl#PA8<<|9;B;&l)Xv5$<0C~|oY2507*Kk1)# z8Zma`qS%UodkSQGGhZRH%g#XYgTbr@0VE)_Oyrf&{3hOsfs(&e*2fhD4&L2_PYe21wT(sW+60MR>%bevu8GXTD7G8VYBaaG zu(7o0v=1NDkUEf~Sd=1+=G%cSH?wG9BPcQ1IFX=uiJ_hNT~vPXi^vbONmAk}DbY~) zALy5XJZ+S=sHG~XbKSRfGp`^N2f*mL_k3AM5>SHqP za;GJT-%iyJ-=PuIw55|RgnkgvLqEtB`eB{C562>sgv;>Wx(tBS)fPIs?o^Cy(ii&f zHdnAwjOW@_tq_|wPRYhRaY>mRh=eax;SP)t&mGc)a4fVJG>ypi0~zxyi^9PsKrK{hb^4t3kaN?OCrnzXJ7gf7bT{oD@d(WHzld*)`TK`Zc_T>PFkama9v0v+FXH2=^2FY2Mtl!U$r(-9=33)An^&2>ORQBoE}9L*|X zhpWMe=Q6pjwz~$b&?Vd;k_NzsB(&OsbCFHqD}V~gsd|hS7%{>>$+QhOWG+@m&2&Hhj&Hu8#Rey?gT#vTN;|1<;Vt7zFUEQ8BWW6NdAwLo7eW5vEGmU16i4%1oL`Ix=!Ggz-Hak?jojo>jUz6KYyk4f>e}tp@+k4E%o)MjQ-Q-IvKUxk`0& zG@yY5-(@1dvP)!t3h0$fXuF(Fl%m1RNIk=oKu}I2p3GheZnEVXPrwN5(HTbwEl9Q# zgs_RpQA{_lC`L)e5kkAX^$9^zL%?flpAgsx5`tE)%Ys1&*PC2~@KXeBfe>!QMF|1> z_ulsTQG&H>?MXFo&tZK=3W7ce)~}IV8qjd`+acBMyW#9XC$5l?Qcu{osf%2VfxSgZ z^D9(vZdi+y0e;1k+g3i5H%bS=>`6(8nq6C(+xxighiaRs7YaL1NdVxTr6(n{Me`sNOuF$$!>9C zMJ(tGy@}#V#*dm0Od>EHWX$R$46L_#vITcVoP%(i3)_4i28r&=0ExaE$co@ksj)fTF%giYFJBFOR_2>fg*c%%^g7i=e)U?q4P~!XJYgi%=udiF$W6inFrthDXr064m@fYI4}pYmPys zFBL9&gbiD;9^ZEp%wu88x%MqO)*q)a07)1jca`gcDmO5(*DU@sfOddrlF#pa`-#Gz zS=Wy{kV1UGXG92B5W?~ZT25QKQf}I2>&RTlpq5aDMMUi5u8eoW0I-PCX6td>RsenC zI1+E0IF@93*g7!nbTS7pq|YUPQA0i!XiM{)A}(x)T0|mM=pXzZ$pWn%52gYo1zs@| z_;V=EwS9i*_u(r9$0LQ%6>Lr1^h(P=scU_% z@sUjVcsUI5jQAKS7L|g~NPMy|C~EGCD|At{%r7v^1$Q95%z&3d*`IUO1GfI2MSiXR zoyzAY*xTkUK-Uad)8OP9aRKPfvE3}o7_i4L5Vh|)IAs|y{A>$9B<%=^Ck)pv%v65v$m9R{) zfPv^qB{Ue<@eA^Z#_>|fx_EV~P{D7N>ccJJT*OC3QC)XUOJ7`>fRos8Q>J?Y|Xn!EA^tzCu`Z2fYkgpJ5&ifb`u z>i9rohHuGmk}A#XK`hqMm=SO{b#)^xcYiw*hlrXhhR_vj4F(WLeRE~M-RX73{+_-{&GC)qC12;Nz&zs1_ z$We|geGn2|_9xjK4{y%lM(>oyV9W|~aW$I=zK;w;c&%=dv~-j*b1geqM`<7&38uG` zmsSiD1}${Co%UPX@$mj6A%wnApn2||Al;>|bh?J{xBH*` z?^xg8_Lon@@n$gt@zN;J@d!-yhVyGDcDTNOZb}OTaQ)cIK=$nG`@4?(KfAs^b+_ZR ze{X&N>wn^$IVMw~n*KMf@4w)$Dtbf*32}ghsPbf3mv?>tVI7~_`u^Jox%K^L)b(P0 z{|6U`-2|%RsMA1|^^_ppB=bD$`)B=ZC)f8k*(y~{+szCh5pqT`(V0JKR6+AR47*iPkS+ zQ;Z?2WmP0DLRh4SdTu(_G>6tF+Ptj<}Xlh0s(R)D^ASO$&c zZ#`~Eb}-Qv%hd)n;6&sBJx9?0gh&PqdiI0el#D$04C%vKx^UW(=Qs{Z^@A~y`YFw0 zJ*?tKa4X{*wgjJU#xpCe*R#q_ z>lxS+ao<_=pU?ws>U3A0jo+By3XP;j>MhF~=E^&oUL9oSoVs~>&6~a*3R|I_Fa@AG zapj-bjO+AfKFki-yfi21lir3a=b!`~ZIOrnaWP&yfAR{?qGyT5d{<>jC-a~hmPmK} z2D!3e?1R+E2Nc{XS2q^00|y{+8Q&w*a=E(wl*D7`tK1rzfVCub*)Hiw3I?Ggl01wb zehg?;I(Nb*I?uP)PWhd*bz^d6tF%q$oc-SF+_UL>vJN$@xJnjJhVvRUA|f3l3nCFVgKK(_ssjDZ5S!mM~69xre=98g1A5~v6rPpF-TuA&NYQE-cL zY@L$UNsL2=9re6;&xZU3uCkVAH|p_h^gnDz)RUgi_Ac*0DmecQckX<)&3sEPGS7G^ z*SeInKP9bM;eEWreH8jNOZ599T-w=QD|pa+NGlkg=B3+%mLEG(q9cx5>6Q)H-#;f0 z^v?cvgu|VTRuUPYi!xk=;yUCS9?lg$pb5>chtRGfnSpQ{nG!VEf~%SJceT@mqJVUn zg|_}_U`goJ4h~&ugzu_@wLl=tP4}5MU(li|_%2Q^=wMAbN->*I#Cd4bfsk=q)*!TJ z_@_z?<@Dmzawbjop@2zRkHGmjf_j$r;{cKIM;Kog^$f;}5OXaeL^!^LOM+exvE;=& zb%u@LxkNJc#ny?8;IaD?ObzBLd|)zKApuho&jP5D*4o*68yb~{V{T3rGavpk1IL9A z-~;66PVMgmemag@JH7QpFHAqtRq7x5clN(|L-w8D$^CCGbxu7G>4bZXR0D{~h?M~) zcmz4oagKMuLh%hY@-eRbjkiEAM_Nc(PJV#^lL4&o{0vxT&DdpAN7u;y_IOGLh9F@7 zn_}Ke4m<4(DUmt&HB**4`y$u=H+K9xY3KQmd*+4t4~!TGwK)GP9uxL)b!j8+fZRck zfW*iBLrJ`*xpGs1Iy)E*NQs&j7Wh&plK<&)4GVO9h;>6gTUjLnLC?0B^{fW$1b7mP z-U!ac1K0=-K-x~0V*sr)rEYSTAjZ7DC?oNvOALkh24#*#M1$x#!7uR#$OG}h?Roh{ zW#VH$&)^r8i5IzXu`|RdA8mZat~6pkr}zpAOotdu`4W~?#Okf6F$caXOmX;m?Glzh z9@YjV3-Z(D@-rHp5K}9Oq&~Yh4xGh^jV9+QDs)*H=2xm!DiaGyh+1X2CQc}MPhLDoKy4Anl zsq(LbO~d#`NDlsWB|T@bx(znfNc8p$1#6VCDu{54LOA0UsfUcrkPIoEoa+c4nSf#E7mpy2MDXv3h>*b4 zFbc3D68s=2wV-Y4>Oe)ZKn@Zcl2&2(8B57R6Q<_BvXg_vH*C-D_YTV6bxI$zRQ|3c zSU?|w3($vL0j^GYpFSG0QGJd+NE7u)sD#qMtx1U=`z&bf#FNV5gw7v|DAx5+O;!*q zrffbHqAY3|-#FC^*}M)+mRwPr4qZ{To!VGB@(l>i~#`R ze9XJqo)waZ#M6Pa;|d?JalJwbz`I9E=Z&+LHcJ6Dz^Emr$D?UMGzbl05G*IJG&*_Ag1)D;?JmDls!zct z9969dQkEU)PPgSjo=<@-UDf)MIdMlt)S(CfWs()@dj^Uq>)Dk>^hFU)zUF900}6qi zF$v}zccXjyBkdR4f&If!2*+QmL!E(DSp_o#ffiHZ$b|^WoBUjp5^ViObG4s`Ag-uN z7SBGMENUfvjf!;PN30!S@FL79)ux3HtWZ&oTIywOHb($Li4sa7Lgsb(?{{-E8^J z`mewWj6|YXWEc~p*BSEViFn?`QLwzJb~gdw&<#W8;vWQ@()y*>Q8!G3Vo!^A3(08}IaADkzq;^E#ERNJE#i5BTPUxG( z(Tlx|32-H_-1-=y?@lH_PIi(dbnqDoTlkD?JD)M2;WPChSJ-1f^YE@1(3Jd5RbaiZ z0++r^RYCs`SC?M=`;Zbm8;_UBmb6ybDkesGS} zgr`WceS4sRE)-4pmKoifa-a>T(?&SQs>4X2oHFX9x6J$Z^`bpch|@XpKF4arhqrnf z@xlr%=hx}w5OP&uPle=#Rx373PQ+iJE9Zz>e8trJSqb_^W=tM1rHtBXspRKtmX}o~ z=%|olO{-LiEf!BF@=%cp`hi`xg(Ac7+SIib7eC&Ar+Ez+{`)ahr(cZN7^+KfWc3tm8+Sk2^Tgor%zxaddU&4s;tAkg_FS&v>m&<$W zP=J2zlxOQmuq;f_mE%1H26q_(_cNQyo@#T+Ms-_=(_$Y~NBc|EX(LimrmU2!$^*)j zPI*rARwS$}iKqLB#iSIADv!qqmTWya_&jnj8n^*fn31nh+qePNEvm_qk^hc@y+@^# zy%S{b2vQ^d=Wo7+d-fwC=B~!0x$R!ZOo?9jE3UAmffdGbqk?t$bHmIJ`YT2Sa&sHY zAEoD3k*0k^4VHELGMn2UVHVesj|gYv&;TS0ZXauT_USF!Yxt+(p|Jkx?FbxEIfl_J z<#Tf6vQjd`Yi3Iud`X=`{vh3uKjaG1>6Z8Q9A)swR(ZB3QiDH4 zT_T;@sS8E#L-i~Q8>#_r&?1$0>dlc)3-6pHyu-Ov%Q+pa239AFCkIiaQ7fwz>gI8^ z8Jt6-H42$%t3|?YWH5iSgH4!^R@b5jA_<&LiLtLW3sH&62$jW@b0jfp$97!FTMtVm zu%egqgJ+beNwJQJ&{j8lX%Fc}v1}X1H)6V@0g@XK5~+Y{I+5=@fRZIZ`NkvQ&Lyua zcOodkap&;2JnkIw$iw7LZx@k!@o3C%lw@uAsjd9);Sn@PWFo#LtZ`L zF2{AU_n<$>CkA|u9p+~P#||{#usyer}s#3HCLL+Y=YF!z*_}Dk%!9W<~n7!Ka z@U?HsgYJOZ@Fw^Qx+PPPF2EkpNZ6TPaF7%-)gv=#OCx*9#w-m(^ec~rK{4uaxXA5(27^X) zo;aeD`jf!mX;p_)`-#Yv^RW(ZnOu4pmLVKQeq?B}NET&j+X)PuV363Jz&h%dy0xk1 z)x+66&R3z&%I}sT>9_HeEWfaw%b6EAZsD_2qyc+*hKMIvK<4p3tEycrIjpovMlS6G zX8z;L$_FwvpsIGt8y+(kfAC;P)xM5LGy2z#6YSK$I+UApYG7Ae8ol#HdOkq@{AtSe z$=9_t%wHz?_esy+K?ndM>>pBDb$h+dNbf!wxa*FzX1CjH3c#^(bsn7=$VLWE`q_vA zM1YPwc9=3SGluPBJ2h5LwIE-CYgR+e3-#-!2CVWGI=3siAzWYmbd<#Zj_y{Jz+LX- z>)O|RluTP0LdhgNnq|LoeUrVqR9@#q$sAjnvwj}WpF0g9qXW4qUl*q576t-3Ob8wQ zB^$?Q4k1T|GA2jve<;B^%i`g=SGCJS0Pur8qWpq9-3^BSm+)X7Smt$DvEtZY#5q#^ zWFHm=V<-*k!~=w02=rdwWbw}qaoLhXe*2+H%|;?n4W?|l^NLLK_LV!5lc^s6Y%k}Z zv;Or_{ZMn$7HKTxqi{Urqg=u9oopCn#X7kzv~toqwV`0T@t%@F5ut_&N7mbz9-Xen zRc;cz3E4rNc;W1zLmu<&An{*J%ru3%k(@NomT;KG8px5XneuLfJo~26CV8(tFyE~} zB0#a0Tmo}wVQB|HL(ngiWWGDicSd9yMvX{I!>EOM0`s6(h!|9#NTK-8SG|yRTl+ytf+&U!=`yn+oV9bzV)Bb4REY|VMTIFBi0`PA)p#%PvEBI2} z)F4@Be2ZHT{S$W{__rLSOa85p>%!7FNf~@whjQemmN&w;9k`**!y?JIihWc6sIczY zV)MM|^Q}N0e7aS#X-(u`@rVZamo<}r*)k4gqy?~B*h0E}3UC!~pN@T8m-Z|rWTCM! z6AgQDI(E!B&oVjWF^8jIa%ls4yHeU9lA7w(nN+p3$(V-nMAATVb?_P2Wy}L6=QFLX zZfOTbKb?5y=w|~z;ExW~O>)O>Xm_muw9V(}M_P|2bs{C{ZJk`zX5;9GB|t%s-8Ks2 zce7*@<--D%G@gns{R^4e`X7g^ULG0*-GxW<>aEIeYKJo*ZIR+D*Er~zKU+B=`;z$@ap+8`bkduA4QN1G)G!^Sg#!5zL<3ZVt)IaqkS1&PS7{;{l9kWBtrz@m_p%rm@ToN1%VD1rfd8Y68RgjdiB-ntmR*UIq_RIX9%qyl|@_d15qC*~K zed#nrxud!nrLjbkKd3}@c`iaHNs1r+3sJ4R+X&ebR#o0ydFxA{m+=1Ummuzg1jCiM zD5EIR#?qR*%5?7~bL#i3?CWW9ZQ=eS1>XK6^P+_6mPRlbhiDDFLWIecJRt8eT9qqC zt8xWn@(LuBvAvK`68`{On6E+hn$7XGWjsczlYhP;vFd$$j@R(-cX3v^jZ}XDw;HL= zEip7s{Xx8wIQ4-&Ha`4rRLM~Fo`TdOjA)Rq|Lno3D{(9OU!J+pQBDWG)Ri7horzn> zcU$f_{lL)j!*Odv)!DwjJ=H>uEH{!mkX11BJ@pT))71P7eSZy4wy3A|w%--Hzx2I$ zl;Rkv{<;iAfg(yXKnLp=uxBgv1{nx1%%M-Jxnl5<)}9Elr1NskDBVg5*=mMMP~%0w zj{7tpr!o%2o{S5S5pZ)iq$-=|{a+CK$OHOGs5BAGKr|{svBPb0PHl7LNt--LG_e*o zN5y|RvPwYPfC;5>K&&*bwHj`Y1}yn3^0OuCd!pv$TkQUx^vjc^&EbnQK3^m(I@gVs zdMZvd+d95MgCqr1k5CxAZ$e>el`oWR=G9RI5E&T-Nj8Y|4U%16N-VsNwb^9(;>0*o zwlig5{Cum>Dn^w=!qrb@8A3Y@U1&cpV+p8xIj_mc9`B7RFc)uBV>0f~RDJTi0+aJp z5B(x!O#T{=X7dsSF3b&;r^JaEbiB5XwKG${wZ%}J(o6PQdbSQUgV`umku8StE%tn# zAIL`Y@vii2Y(2BFH@^9JVjvqw)0d}bBlwuDMYF|qG`*Y62K@u$QT5MgKP&A=%;8x% zK{BidP+l5BK^+>q$-s*e7=m78Pg7STpdm3*5XLS>3S&DYatjZ_2^Eu!A9*4RE|Zbz zTb=#CK~W|y5wIs_A5Qv{kFtS3520+^t+fAdb||whk?bfdu*Eo(jY!YdVSyM%+4|?S zc3R*PANetYJt)-?yaEbYJGLCzKyi$i`7fK6d)-#>wVY7U63Wmvvi1({{}q|Yi>IK^ zVODQ`g1(Py{cPDWRlaMlF-4Jyf6)KDpz)TozWTUgBg8!TD6+4}ek44|SslFMoa48_ zS$jUMXsY!&tK(S@O+#us)B@9^A%;xEqnWnY${)mf1jQYEu^=XxNMJ3VK~!VQ0iGt3 zwZZS)8F-pSHm9xV0_kz@ckUB_2^I~szYwaQIKisWGjjXTJTUlR+TY(?jgF0`!Y zAsdvob42qNGWp=IYcwz8i~v*?r~-m_=Fl}NAgEv{1IRmK8Fagwt?s6P=t-(MKze~q zlP{%j^$1?UW=aNUSTQj1X>GfTfk9^MA~*hm{i1e{Gzx^F3|)-{Ee)~e$`U_gA_hK8 zU9Ws-&7Lw-(WYk42DF@g+Qh3Hvq+OW`35bL6fk=T3Q=w(Mzvf-8#u; z%^eIutdkIVBp^jG*Jrx&!i#1X)O@ozDd*llm~DzX@-WftsNUfWk4{^ znEPx}e^2+_Mr>61vE(`@^{oBG*0Zt>UOk7{rGd(5(JW2RMhG!mqh^DQWpL?nfoznq z7x~#JNh^rP7;=cZr~o{6ji`*RCq=?Qu>qeknleQMdQ%srlOOIK0|6jng4m8ZQzn?u zYEspwsK(;#wMVn!EcqsMrCA%$m5Q?2PkJaDQngfd9$8^| z#Hq@!+F}NYs)Ph7F#CjZt{tP$5Doe16I!W%>cgNB>&@fsX;lfi(Z(kjTb-JGl$o7< zGLa~|$7Wn$BjS{S&D>iu^yEpq5eZIDHrQr3Jvsizj$&%F<1m5fBGsVzaj0tVW{|Ba z$adZVxdrAb+)+Wsu|FGMihi8wB|P6HgnpbVNzG*M;{^9n>3g((KMI$0{ix+%l%XC| zZ*KGUvY~&{u5bJQW`F&u0|Ctc$o~3|v~qv_?Oj$rHCO(4z0z9_?Q<>Cn}x^set-Sr zZFzQo{h;wl+AzXg!``5Fam1?^8rG8cxtLX}CY+h6|+>lEt# zMo(s;1Jus!um8+iEr(3m2G;LWz;C%l5n%Af;rqXD8Jv8$?qsKbs`)>v#vGjyrp{di5qe1Bp;nk z1X3J@@m~7XfCss0aW{)`!#0)6b%o9k!VF|Kwv9Pt$ttdFBQtX5p_Yqu+W8R>*@WwY ze$ACL9#tW`2kID&|L0Lx&Wj~l_vo3-X${B|=S{VTT42^A&RGu_w~%; zf#78Avx5Q$Sn`Ipq1?ozBWd{7;ZiPquPALqZZr4&&lTm7R3)2|jQsrUqc}e}Z?)pQ z8+8>HEhy#QD1}1>GJKT{@kMy=5YKzyr-iSQkw5+h>i7a|)=erZVm&}d39bTzguAJ6 zH+4(`94Kup(%rmaN-J$FEM*STNVQy7lrkgJH?lgAN3DI9sz76`itnXdU;( zi4XXr0;jjLoHjUoz}PDeU)YV6_{!!p8%Z!K@9j)4CYQI#cX1rMPc4Q_nt3$T$2(!^?9 z#A+n?O#g%n#R3kw5u#$dWqt+~HNJ)P?e0R9bYh)kwTfTCb}iiAv=a7xl1KHc)yu(fZ$s z)@Nn>xcSEX@Wr423K6if}2l2c8Wi6j1?W7q+ObpN5 zzKB#!eh2lFxJc}bJrSA!i!&L6Hkgb=$YQ9O*$9rR%K5&jiyW7gyUo;ZXJ_oxSPASQ z|8Dc_pKZ#&EiAP4&eBF+!M}0^4YtdBI3?wZ&;hw3a!sySXN0Q|v|OPY`5t^-jmFAN z!rj#9%>t3YycfExLwa(01Fk`)1{zs)8ZXxpf0myKo^);6?#hVbBT2!PAynRtud>sJ zeAGS>uq)+R`$j}aAAkt<5&IBVC2uKhL{`%et2sy-4LWFqI0dCRk-S2c7lb%IbJ4Yn z^T9~i#>UsMMQmAB+fu9QY*aSZqLGI1xdoTjJxk3MXDJPpvu&VpVw*G+=M`;hL^^Zb zUo}y!O;l$S)#FM+BT!Ro`BH@hJIe8;K)wSd$jvf$LjsgHWGK1G3dT+N`WeC4fvoUf zSU3WD5-P>9b{06|a|Rp*wmXC)b@H94N<_<3XDW~qgaaU1E!TyjfxuntJ+$^ox4{f~ z<#-h=+xX5&As~fWi8ILx0;!QAAXp$$HdM8~YFe+?I!bIEFT1CytMo`;(!AT0?7}2{N%L)9%n#*D+>&)e5v3S@6fJAOr*+SviLbuq611)mAi@OJ5v3T={9 zy@9Go5v|L|mCL60pc#vKQ^_4WvZ9>k?T& zKB7w;2F_d?H`E2rPXfh_&&oW%TMv=Rk-TcYiPM{~mE>crN;GsPHo z2|*cTD%Ro8W0pu+a0c1Xtns0oq{cd_+sbXiLtbG0i8)yqqMqNw^4JRLbh+$=KVV}Ww~PtU_gWxN6`v9~LJ(0!7R4tC0i>rE2$25B3xFiKP;f09 z2K%9wiceaHP-48pv@8bStPFxt#gw*!yR5JgX2vU@aF-Rv*lT=e3a&ejUqVfBUd(#z zuPoZ}mnht7$7NFY4yuWa_f;H?GEc?PEF~{UDd^F1ltu|8i6DVmB(aXE3-P>|>Crf* zBMEE171nErIUT--ifh2tlSs9=7ZC6*=~Yto27V%uw1+-GM8zefD9gMklFTbU9A2T~ z*l_dqTi&1o#wc?DS=w|vlz_@Yh&aBG59JH^tA)=1O1soS*#qTPOC0hGJ0M?r(*dj8 z0@jQ)V@G6hAMoXLPXX%mbWhYii0&z|52Aa@*t9fEvUAK%p|K7CA!elnU{Z`0JWC;X z?zZ1q4l%tI&)G0tXUnVSm3AGjnV6PT0F!(-Bx@OJn|x0yzeWje`@$WEEcV-Oc#$%21B&=Z4}YkkC$FRx;Nu1yV`tNRUUnm zvD$p@4)oJ>w?6A!b?zAQNh`!YuT)O*Z21Qr(ebWzGN+BiML7xZ)qzE;w#)*z2IYv7 zs^*QbM+e`4rOBFBNfq8dDS?&ar^>mYMdU~3FDSfWT4?qgkPh_8 zN4jXg7Nn=+LE1#wh-a$fB6N@pS%51!yF{)U_UL9fIFN|py=i|#2Y`*ttP|Dg3+sGw z2t{dCX02!iX~0t3dFzXZr)`ro#HvitkH7rZt)^J5X?l(0oOY(atAwt^d?e8;HkXx{ zsiSf%!=(M$;Mt!Sav4w478xFb#l^+|i^~-%qnx$|D5yfN@E^)`we`EKkl{C3yaw-S zf7bH5XL38)Cs?K^CR|x$n6=Lq*2ZoTJJ2cnZ4yiJ+q5Pv=b!CyejU)_TfE@>{&R)h zBD|nwQaw0dbPWtyU|SZ-*}gV)5d_d}S(@lL|Lj7J{~Y@tvBUPx!lwRc>$jV?_K_x2 zROM;#t8=8mukrHP8|)0}25UzXlh%%2DHzBPWa!^jmA)mt4nXxRX`y@|Tgm}ZbfP@k zTapO&)G|q|vsHz77O?@0GaXr1^TBZCGxR_^uMi`ACLXIYDTkac$ss``d9MK@G^aiG zX-*_doo!AvX%&)%v`tAu8fJZ@aY_)OWz?JCa}s71yNCGAsjsO}X~8pjqfxGyfRS#k z_RK8(ZoNyI2wo*7227Zkj#q&VV6lnMD6E@>K&Civlg**ln)6&?V-zOqH7u-&empwj z`JWUt`H8_4ea$!0W2n+I(#!0F80i)EL5%c-v@A>{>@c$v=>`BG(MSo_2d@MPU zj0ga;x22&*JdlQzRx)WwzdMa=-N$4d=F37x>(D5Y(FSQ;$hYLXJ8MbhOi6tyDSJ&x zJ$)p;a0g`b;vdw$H>?A#*(z7eu;PmOn??F{nfe|33}c z|9=k!(YN8ztU1@&|IDfOKkIPg-hlltWd-d2P)<^5z0~dePfm{!Uh*Ybyw~$O5LnEF zS=5T9FBp~-z?d-+^&&IFG(^f7O#!PdbCopCXOF9vFQbMk=TuDv11sX3G6^n|KGKg_ zcD^NE1N$p%VdI*%km5e8{qBimVT2A#c2ViIKjJKsXIf8~i(QOF{F59Ta6>}fimRLp z3*wtp$K5kK`30a}7fOMzHGC@!0inE2zB*HNwM~7CXZ|(fyM`OC?O%#}?$3GU1;>F2 zrek3g5LX0m6Y80a=#=EhP25*HIpi5!#;gKfu)h;d{-#fXjV7r|d%+Hy_>6Yzdn?5G zkrR3H5sh5VXLMyH6GH~^nTjkt>%q6=I7x*nI{1t#mdSfNm(lr@Nxj+gk>I)> zBnw~wPj2NyC?jT9C zey|Y8T?ddrWY*qBNC9=7%mFRkz-%&m#P*Xknc^tmXyv zcJ}sb)_T>}i5Mg=poV2es8v_sG)nB0!Bi zIG>S&RdfQ|xZVn;i_1F8zCDxV+OOw?%<~b)NmV!$(XNj?Sf9BlvKY5mWO?xg4Ojs> zAVrgj`$H6@-lZUD{y2(h@N0=R-VR88AGfyrr@?%9%SD_I>8)3Ohd#6XR=w?y^Al&| zR>o(@6~U(|`e^`eY0%^CK)b)ha6UfBMx8%v+C_;`gVDA~sta}Z^n-nqI!)WgklS(Y zc5rGWZnb>b7h|)2Vf(uD)@$D#`pov-pto$__i-C+pB!7!{4v{is-|-7JDQKbWBcl- zo%`Lys3Xvj`z(;IK>YNsntTv)euUTOHO-BFXExIOm_48+b#oI=7%#q-Ruq_%NUgI& zit1={<&qmTBGq4gav@?gIPjee{>7}_Y#tZ^*QakU)!8g=zV0SJ0|g)>qJ?^(ZB;Fi z+?u%Bx*U zkg zoye7HD_1CCKr^67en=MIC!3Z{=3=la4NQUrnos#uMJstejo)!Je$V9B8IW1c!Sn5Q z+f0gK=yS4izuR~(Iha>-NM4ssz-i`=wD3!1JKs*>_r5UM7PNH+2o>@ZqEl@!+oC$% z{;$j&dbxmWZ*P9{T4W_Vf$gXc`v_P}UWZk4KU;( zbv0MMd#!RRCftXdbZ%$~Y6Tw6z28#4RYe8%m3`{6ZW(-=EeaegTL!<7Co51B+#>6{ zHY;}5z!q89-)>2sybZ`(kL74U2X}5b+~&pp+%s`Ljq=ab^!y+VjBJo3uG=(x+^+pb zV<&P6@mt^2exAwrb6wT;!a5Zc&{14R2nqq25J}BlwR-qrg*&uZ-vNZLZgP2&!#?^2 z?=!P1ft+!qBanA84WXT-k6mZ?iat(!I46C)bqDC<#I_9jc;?4GeGH!#qK^_hn(HR_ znm(?wMLGI-AWzmb`Z(EU_2^?>p1f)FQE2mq=wozx{&f0y@tQDwJdS7#GF*T@9(c^* zIt!9TU1ie88X3}aw4EIG!mat}W7LQ|^uh6yJ-^^RS{k46{6%QWGDra#CdGLpt*)oj zc{!d``qY@;%oOU7Q|SoHja}SGT1zu)?PdwWPmsNKyC*m{ zbX4IlO0W|jkj2gmwZaaP-AoD`ysQ%A;YM7!cf#ourkLMdCi?@>o5R=}~g= zvr|H@oi02YGf^=-xmTwxKDf}*2P_zFPcwK@-rS()%OU4y#dPO{d4b&Aq~^)|b%UaV zhb>kHa&rm(HR-tt8#f|F`yleTYr+7R4eg-FJI2pO?N$rl#cOLwk}FCZQGoN1(6XXl zg`$*&Ka(j&sY@{wmUM7f2{NEeA(kZ;5OhUWL7F>DJ6Kjz*D_qfhjhj91}H1O`&m}X zF>bPQ%};snm%$>l7L?6q8E{w*o8_tWX)5y123=fvF-H+5b_>A zbh+BWKS*{1pB?`Q+cd~85UrV%d8*CKiv!H_TQCoxiF~!luU-iyep^F^dqE2`ZRKnp zH4tP?t$5|x06GPE1$yv>IKmx13woSKcZH^L4lkfr*p-ta$V=Xts=V{YQs{s&S1RYo zxgWGUn=7Ac^*QIJ(?gu|BRrble8bUxf^HRU@|Xn$r?eHwZvqGU#BrXF+coWbwmj^; zJAu6O_Kx!7AfGsg3NhuL%0PZ{&kpOy0X}h_=mCp?`*Z!X#pB%xnD6TJ45)O zjdA6l$NX$#$v=Dh*$D9(967nP^JHYucrWq~3ljcu2UcD{1jU)WHq2AC$o)ImnVgPo z@Z499wcz>}oPjeSIA@b7EQ>)jI5xCIi$!&))!)iQPp(8d%ch^DtT3U2XSYACJX;5$ zQMiQnexuk%@NDjuW#iom2j}43iRrvcHwgLHo?md4@^2^lO#T&q1^+7F>bzlw&lPOb zE$LT?FOV49if2wPZ{vG(H-W3%#NAD`yQ$|5nBD0ut%Ur(ptKR6IDa?qLgD)3Wz*lw zEZ1u|FH&f35jDVu!3!$S4Y-nf*c4)QlRUdMW46ioz7FrrTzgPK4Fv*dLWVq65re~7 zHoLW4%CgRu1W68QMLPH)1y;x6HOR_(6>*iUpy9<*l$|4l(BLzL#sw-g?&*Ng*tJQ8 z27L4GaO1^S`a)y+X(6HUO+1=86P(a!pwLjsI%YwiQ`!c}??ecV@emplFlL{N{ooR| zJP3_RatPQ)bM%gifZP~giz2Mthy;p|^S?Hl_s8#`6%ZZcAvz{l(eda4^h)=?K|AE| zuZ`w6>4kI}P&+N5@fs{MteVX~32p%mWIf3OCNoiF=1=){ZCmOV0UTK#%KKKk`GLC4ctK5KFe>(Y*0>#|+Tpq$!GkoIB`0(BzS` zSisSf^5%w42wK2%0=cQfA5X7acn5H3CpqiCQK;m(~1F4Hbb3~7$uqr zSL#6je4h*7P*zm2Z6{!pk?U^)E51D^Fc?)NOED2kB?D$)okxqMB(yxt8YqoH&m1Zd1 zYQp(}Y}ABz`Ps;gG%BauM~1P({GcTr80y%N76@Fy3k)Gx&dwSZHcL~7$wsEh5N26``VviSGnWMH=BkY}%95j)JCOEijQVRrj+9{DJd>Hq7` z_c{67B0G7`;eX_OpIr{7sDs;q!v&x-Jxbjl4ftaPwLKX?sDjekCJ>x0pt_*%E%SVz zsWv)X8Pl^&7A&&+dvBht{1-UC@ccPG|MfW~#DDKqf&UT+FHv%oDG03lLo0GxCtt9o zIsUsaf9^E?+uWdSVQ%u@q3OA^TPI8ZA9wEp7-ey_0Vg2~L5YbMAcE+k0fX1zH3-oK zQ5Ovw5H*TzPgky zNsV0!rtkYcKkT<75&cHr_u=};)E#}F)KF5?P%4kJYTKGOk_6-=>;P*LR8Lnf5 zBn^s4As2bVSmbfv=XiX7i+k$(9LRbo>>|Gd+eVn*u@Bpn{0?wEpK%_yGwB_6eKm(O z?D$3mRVULX@(=LSIAfVa8%r1msyA2Rs3T;Ia5dHDM^Nq{EYP||xYCJDl<3rZ%Y}tz zs?oF~bejvGa8EI*XVniHDGkd!8iEA2=>FD|EVB_= z@$Dtw(h?6vCE7x&qO({coQ@-B?EX|a776Fm-2wOTm1~qmOX!O*1t4BNvCgLp&r)5e zhv@hI^vn^+Zyi3&>6H?ls>J};sWR+kt4sNZ69e!oM}+|n@#m?|f4)xJPMzx9bLgvP zO<9)>I{j(GBy(*Y)SvVVHwK~WH2b46r2wzA0C`k^@LzhEpQk`bzEW?<$Zlw+ciC^0 ziz4JYaH{1T2s#Hkjs<)UK$yTqA}knYh=WTWu|=GOpu$5Jy9yKe!*AtvXY~q4&gpGA zGI@K41zhF7tA+oT$H;$hcK8SUM++eM=n-F-Z|F1g2#zNq^SSxcW{AJ?UnxgNU_fVE z`sXDWFd$Ou1ppC{k#q)1Fs@LP5xtb~g8!-<|6QiRyU%BV|IWEe`7fN}zxCIq_^%-v z;J+!jMgGYNjvXYONB#6p`EQo3F2#TA1MmU<`<^WvcimM_*&)A)kCpY*#X+t620$|s03AQqWs}F8EW%k83PER3DSB8`q{SH<3 z6ZIG2DYv0yRGI1*KLJy1z0%oTC^em6-Fl73RQZ35kg2>6RR00D=8WT%r@T}XnP+88 zH5qQJa;XH91E4EMhQSYp)Cq_8VQksNb$Jy^~k<}Y(Y$DpCKr|w!ll0n*t@n z{E}C$RK4U$SE7E^NYWkrXBz^pbM z1eaf;&j1r&NEVQ+rU5@|;B`k(HJDop9S0P2w3T2^uw@tdwX)@NWHmBlYoblL9g=L7 zfA&@TiV~Ay`@uieY#J)ZKM}XSr1VDwrI!4;_zU4HO(}TL@)gt-jaiN^ox+C*EF!5- zYL6? z@*im8_-}s;<@j$83&3ng5Dw}jU-Ogbz~MoZ@{aN0AjX&1DE~zq|LHTpbX%bO2emn% z?=8xI>7c@Yth11u3O+;5wYhRH%Z?n?LJ>Ub(s1&L&h^s({H?N-i#k|!iZ0eD{TCnNvz}0U*7Yq_jG-3LDeL+|s2QJ!^(>Pha3#i^^9!C}GwZ~F>HHCHO~cXl`$t|TY)#6HRU$}^PEIM( zHLnS*OjnE~#QqRq+q1;20lNgO<`7#nXf^i>0Dwb$ZGp`sAa7kZb498xx@^PJK_fJo zWhs;Sv;&YiYY$_N@{kjQiI~#elHnwJ5hQf0SmK?4)yRe5H=8@>bHwg{f{Z0LFaOEu zj^VUCCuu1lutT0H=;bus3yzn#J`~gZj+65+(hVDRSIA?!zMHVW@WzTboCs-z<#(2z z8vvbED)$Ry%U}h{MR3n$Iodd$FHkAJ_B;mQUQg2kHnWSucv8zJT*sBFu(DGkRbm?^ zpQEY`{N)#ha@xORf6wOEfXKfwZkg89^egm|-xr#IOW|LFJJ|@^i_%Pjzfapk5`0UtiPw^3{t;#z($b#EH*kqh6k>jb2RW$!S$)T*ex;YW zHoyHRddnpE>-Dlb@SBKB2j2s)M&f?V5|;&EG3;P;)u9R5&e8*KiRPanJ!o`~Iy--T z(cOoVOLz%X_e{2X9-lCTr|0{9n@aLeMh5Lq+F2CZE$*7F%g{HAWPZcErhiedo zIGD)r2~C^wakP0%>GpMS>#oMXYse?mF+1U%+eyPsEhm_tcy>yF3P};>SF0& zUD)SBymH!)piZsLVPxcLc~F=_9)+%EtYiXkoB$j>4CMet5jGrl(t9{}v*-8W4`g_b zC2=c%p{(ko%~sGGmQ((hfzg`r4)aU$-0MUiyCXom7u;p{ZVT>}6!E zhW`oe4KBzwq#Hx8Rr33w>K}B6G^ZlQ+P@Ao2ek+fIm{*UYn2y(snjZ(M&L`(movj3 zyC^DPN{gPuW1Jeh8VARkyFS#ti9~`ll=i`?=l8?%|%)`*y1Yd0cmm%tbnt?i#t1 zSM-C;ZM*^-g8$7lUXu;XwYb7glq+2^(JyAAD{IDiCC`wO`hGZ{%I=tL0u!R^~%q5huJ~k85D{Iv=r0vxZl!P}^V3 zTdDO4Ua?m52(MTt;OFvMYQ2+J($m{;<@U!+b7jr7UdbQ0l7OEmWz7Wqw9x4+qCXqf znU_Q>k?#gy2rjdHpMgiGAew~)=;&fLLkRFM{3y7W+)rFtfg)AO zbNI!?;D0*55^?Tie;q^u4k-9@*xq%*MCab3yv&pLhPsC$iDHY_qVK7{ zh%H`7$HGU;%p=8a8pSP|D@PV_R4|7|@>a7gjD^PD%Z{W|jBk4G1wLPh8*{b=6bf^K zlE{DRN%FshQ~eQP-`v>Ct+#Vyx`Hz4kn<(CW&5Wa$;Z;Bz~7F(_uu!e={xaE(D%&? zyP$8?chl*6#vy6+rPL{X54VL$-~7=&`exzAe0;D1`sjPExY)Z+-?>@;FVgp9CX{|V z{@oS@eWzA+LEp_6r_=Ytfob&RSDBQ)FWSPS?<3=U^t~51=5`C{qwi;re>?sizWpsk z1If}*5rv)b@5{t5z7di~$V{4Y8Nz^lS$1z^A$w z&Bv)?9=esjg<9o*50pbqQPvb;O%c{qNiCv5&{EN|VY_l;cgQ9}@7)OI+W&lIE@-#k zUZkvaAhe*JpPWuujf34_{}%r%z<)2L=}*qD=ji*0OZPtP5z0`%p z^i@(P<2$sCtbMIK!Kvd?(mK8_5ee@F66+5FX%myUEU%uKbCgqwORZ9mW@JZazG~P1 z27>i)^g0?XZrD0*)V(7y3F%38L<<6uIKJ#2jPI~dQ&v28Xj^+0%=aOaT4a6lE!0dN zQYV}pV6IsFraUB7SZkuYIbX1|8@Cdn<)_;7afY9(++9sI zQb~B9>HpmY>8kUw0~~u+b7VAglxYr&P(MOOHl8&@09}3rw|+d80%QlO#DniC^D|yj zGK9b3LvaZeMWXCfi*(M;3E(EwGRTPOo`ldPm>E25F~!>&;FFN#TU-1*&W=K9PA?8a z|0MgnNKyyYBM;8L?=_CL494NPjr^RYmp0%p?+Tddb_LM>EK>WE%mL*ZHtJYBrs^5O*M|OfATWe)gFIhinQ4Kt zE<~#o&z<=Jxkxq&3|3_9mpe|N07@wYo_du?;3=O!P7*}@z=YVg860K6gYW-oer6d9_q2yJ<%@WTb=!q!^~+n}ui|She@z^#`n@Jz{>eDyg)qFAf`ewDaw6dQFXs*j`Y-R-(tlZx zk6Dw|u-A+Ji!;g<&3mL=n0su+p^BygsQSFV&PG6IP#xe8-7G!QiggHGKy;j-$V^3u zyl^eFI`o7cI#_o@1mXWMNAo+O+{V7ztfBrEL^&mcn?{iar zb;qEJupkbjad1k6UmI&}Ohwb7?Y%0R{$id-VhQJO9G@0J*zFq|bQ@Af847N-kLMBf z3sAHJ4`3Gk?A>R9YATsXZ5e(EZ#xc?+nf=!DQI8VXf0dvF-qW2XF+3!ZjQPc)D3=j z$1E1T;f|+Z}_F5%OPhz4xiCj1DmE?>x1?uTVxBHfm=d zlg`umRa&Vl=t&1UMq+TFwWABvS#}H}gW4iwnr%x^p@OC&tU_umm^7jU|C8cvxL}D5 z_?1KbFa~<~<9xmW{THQ`xCnV)l38LS{TO>G3i4}F_o*^jW#M=wdf(HRF_8WAAUFw_ zB#uAv8Sr}|zZ5^F+2*?wHFmd6e%)DtYNN?2!XSJ}23aMAY??h7gaSkL(~4j3h{r14 zP(8HDuRYQcO$ePp(K+&5G@B)R!}7QB49RD(qGsKze!l|6d_=~bTTEHYS{z`fR_4Kt zUGP!z18>r#@s&4NXM7|0J(wSa;m*S=b+;t3v&6ftEDN_lqH8YSg|~&~!F42- zoG^vApp*peap|%~s}WAAQJ>cQtlbhLnV%k`(*DoZ{#UdARg4A!OGGTBTHTc&jV1&s zqzt3WiQZJ6j|;8xi>MCaoB?f;AKx34)x zCuH^U^6!pTr;A4(GOk-sMO0q|xsm{Kn8hbP>*ine8b7X%mk+jZ2pRXqe5aX=dcC7*&KWSnoznhx8oW>zR%~ zuc=xnN#J$H(!5Ke46DGVhu1 z>^|m|^KIpP=qexpj9lKp4%k;{+OV9Yw$8)sHJO|TrKFDo0)Uw~VDjHO;edV978WcY zsD8hWsw=)cM*CAw`%_Qpk=8NdE$kXbxQKleRS!+AuaRGXojhFWmhi_HU?G_?$jLN% z=z?c8BW~7jg`-Uf!yTe^k@(o?G; z+hN_^lTB#mrxKi78^?7GUJvkEfW!Xt=%nXQ0k}K=M7H+q9fYszu(je2f}p{``3sA4 zy)KiKu$FGC4oQy2dS8e|LB5KT{FStb;`m^U$p>z8MVLj3+~}i>bJT1R#~-LLdYh{- zk$>@cUUycn$H8X7`+mMne&6XU<fR#sE%TM6?8lV$trfFUK8BmF=#>ahr9nG zZl`b_cng*z$aw&h*`hd$5=v)q3FS)p2Q17N2*y={3+H00vRG1Y`usp$8`LO=hH+Vo6biEcN z$U3dyg6-0A$gjBXbdQ=t|2pPsdF9n(4!djJcF=u4MyNT5@6aWTuEF9WCP{^{FEe|Y_s>@ZkA^wG9s(pua+YaJXdEcLn~D?1cvr~gW?_ft5RycF&nu3N<{bUkK z{>U7OJ#G$NG&F6b3K(B9(^}STkCl%*kp$0aA4EC=Rhs=oX#3W53M3GSb`%JM0wv4L zML;TfeTt(TX8Iezui)07a5RHBg2BqjU}P(4naKW6X&SQTwL6ICqbDey!$7yvAX~k< zhq6_nI#=C(e{33?touni?p(i_`zN4(erM?G_*Dbt2+0bz;2#W7RK^de;<72X*zAWI z0{HMv9!nM)o{!HfjEr>A8)yt~8HgCM^SDBwB4F)J9ud(pIuyu{!1?n%K*Z_AMPC)n zZi8(^*gkV|1ZwFFUMfL0W#^EJ0^`e@!QJY@J+~*usbOOywFF$am{?2u3juDC=kQVF z7e0#oF7ZB!Iv@8HD7T2uG44^0I|!+%0YC{BH4$p+eNvX0aU4fem!0F~y@#pg@f>Mh z)Q6oTeE}i%d0ZW7%otcb90+YbEpjz;JuF!7sQlo36=V-@K+rt-U>;!N+qz-({vI+T zFT1suBY${3a(3)HGk@e}`6fDFR_XX;E>t=;1 zfwxn$mwu4f^HX1$9J_xY5-gXq^n=1wIrd-nH|&X01q-KkTlzs!&rch+)?HS69Qw`t z=|_Q=XcP}?>{jR$=Ov_q?M+9VX9wP9!a0<@Bv>Yhuf_IQlqpzvcDJSP7xi2t*q#7v z2enJnoEoegnFm7qZhO&8C-33FBk%#Hs=$NPK!lPHW#|&)vpN)uIielA1^on!$aS{| z3S{nCb+Amvo*jcS-Z-%RhOO6ME@Kf&vSY!K;Q0I~ltL}YKku@O9g(&eKN)zN31j`f zb1Yach_%N*V^PXCBEb2CI)#515)c>|Of~!ivp0K%2UZ=xQKNb=qc?oTX~ik{ck&4G zVjq7cxvZp}`6DAZ^7{tfK}fS8mbO*uJWfHzgxLl)pN0nJpcKbXwl)3$vWz+sq2K=a z*sR4UlVuKh7%~f^P(v*@A5Tb14guG?=GlAEV2IR+M#J+kKpB83;V;Tlp>j|}q2hg^ zeP6`iMCi|bFpW9sXw{@K)|tpZi}Y@S{5aBDX=B8c#tV^!1Q{E~49A|StQ^INjM z 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

        {~4gJyfJ@Kol>MpNo3hFd`u}s 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%0Dtkdt*Yk8yz^ZI=;bQdeZLv*p=Loh)Ua0-5k1vrf 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

        RqNT2n}4(g9+Gqc#vpMH96 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

        RtRq2KgZ$v+=zEI_RNT^`ke|i>-HaCe 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Ë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 z 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 `$-720o2%SQaXEYXi@CvXzp}h+b%Wn7FGSgP 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žUF&2-m>A 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%0DZcE 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

        nDhTX_Qid5 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

          3E@&9 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

          WTEJRY1Z&n4jKxsJ_P5dJ8CeWvMzEbQ7DjnG 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≠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
        1. 7UudrRA?~79IQfPZg`73lQwEtfD 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

          ?)CazO4`%m;y(A<<- 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

        2. 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�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±~ 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

          j@6jKObSW`hq)y6H5X%mnx_UPG2Jj^TyoFPEt> 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 U<>3kl?dR;0ho_FD4 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%0AF`Nhr+{7 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 ?i7J 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 z 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
          1. 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

            Wym}yS<%2jG+_=>`_a#s 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%0DH5Yr z!8a0U_-gCPr#(B~AEC<);5RdW>W))QKzO0R-rl(M0A?-NQ2{8;r>tVFDHjA}kwQ}s zcU!cuZBoELIxDEpczjRNS9j&u)FAGL?+7bU>RF(dy3!JI9fWsqVwSqP**(ZkXhEa) zn@DV%Np^m29lP3uM|dXlobTsXg>Vi%pN!cMI_9{D9jQQ^CTTo)WKcgxJ#)2Syvo80 z4~HAhjAs|cOnSz`#m`mpvcawJaC$}Qh6QP?^cnS1e<)MJeej|@^dFyx3@`pE09+b^ z=`lBc!L*f}zvG4|3+*6LO^miW0r)i7^T~2&!vA66f8UOm1#|FgNe5Uf`m>QQH#GzNe3=pUgK*zNoOP~eq{YnTHNdL#c5B2t#e(=Rx@(-zR zA+Xsaz)&-=sS5V-tiM!+Q7qBlx4t-Eo9cyeJ=;C`YD);cih~?b0NZvIr#IevLYefP zgj&>PJ62GM{YjUkk@3x}0>(bRZ0Vq0<}0%oTYIV4G?o0XUfm1uhpCtfdB5k5Yv0Tq z6UnGrr)Ef`ZUg|ZQJH}6HG-i%JXCm5gzO^FAw`~u3^;iRbIMLa1)-0ZypD7N^!+h( zPdIl0<_&Ol{biAl?jzzS*B>*zD%iB#dOTuA#O{R4NBPjTd^3C)-&u+&ePkuNm6k_N5lJoqI7f&S0942imX*ZR5)P(RS z5titK@z%^L{0sKHhb44)5eR$S_p@y538D~xygGgNOSs@aF*Dpa+LDj$wBBHTToZir zjw1ANGI~Ao=Zm@bm{F4)j51=h3v-fS{`HWwv8Q$6)x8q57aiW-ZR$cM^xbG88nWKK z<*~-Dt5mt2fu4W!6WSJgIdj0FJJI+$vYNc4sJ(;pyheW-HGm6%=+0uoguY9Ps+=^` zk{v(_VBr|dUi%_`>8RXphc!l*QY{U;N2oy=ssj(;hkqo5AV+`lt5b67s9o|7>54P{ z!#Ygpl`Vz}8@!_TtfeZys}}f&9nxCoQSpHdC8i3bi-}?Mpd$~fNVj(VmJ<<&I)3s4{ymz&-MfUK}BoQp@ z*ou3T$`Ay?2@Dur{7m63f!}@Bt&JHp9h){TCcn@(NfYy($+fUKYAl)!k0J5#99^Bx z>}D9sR3~a|$Nb|`q=#Cr1A%>XLa5o!{iuD0_oI~{Vp2fL5A*d9e@mwl)8D2qbD9N; zPmIi!DoL5mf$V!bp3m+^)Qld+Cn>?`n+~_aaTsvZ8!O`A%CL+T6UAGw$F)451U@2i z^{yz@*l1;;Bl>YDQeN4n-}B*zNJy3W?tJ9znXzEwpT@V*)sQ$po=@rH=V$Q(iz!k) zyB5zO2`N}=w3~f!>07EgIFzcLac$J=`F-_nAq65J zm}Z6#RYHUiPZVuEhxuRGjU?3$HwE|#{Cs#k##(UN�!EzTk*{g9xRA|FgJ7-Gky& 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

            KVzy@L+2|yyjU+ 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

            ikm~ya?O)t7>rI>=ygM*dthu!H4hr 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

              iZAEA>{*oR`&NMX05b$;Aw`$-$X2KG6lJ&b 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%0A$RLY9^^64ggF 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 IJ);!=|G0w#vH$=8 diff --git a/src/info.go b/src/info.go index f0929f3..403e7c6 100644 --- a/src/info.go +++ b/src/info.go @@ -22,6 +22,7 @@ func ShowSystemInfo() { fmt.Printf("Version: %s %s.%s\n", System.Name, System.Version, System.Build) fmt.Printf("Branch: %s\n", System.Branch) + fmt.Printf("Bix\n") fmt.Printf("GitHub: %s/%s | Git update = %t\n", System.GitHub.User, System.GitHub.Repo, System.GitHub.Update) fmt.Printf("Folder (config): %s\n", System.Folder.Config) From cc20876a765877e18bd163943302b23192055b17 Mon Sep 17 00:00:00 2001 From: Senex Crenshaw Date: Wed, 17 Aug 2022 15:27:48 +0000 Subject: [PATCH 122/189] Docker test --- Dockerfile | 1 + src/config.go | 2 ++ src/info.go | 1 - 3 files changed, 3 insertions(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index 0826825..3854728 100644 --- a/Dockerfile +++ b/Dockerfile @@ -8,6 +8,7 @@ FROM golang:bullseye AS builder # Download the source code +ADD "https://www.random.org/cgi-bin/randbyte?nbytes=10&format=h" skipcache RUN git clone https://github.com/SenexCrenshaw/xTeVe.git /src WORKDIR /src diff --git a/src/config.go b/src/config.go index 8b4251f..404ce27 100644 --- a/src/config.go +++ b/src/config.go @@ -194,6 +194,8 @@ func Init() (err error) { showInfo(fmt.Sprintf("GitHub:https://github.com/%s", System.GitHub.User)) showInfo(fmt.Sprintf("Git Branch:%s [%s]", System.Branch, System.GitHub.User)) + showInfo("BIX") + // Set Domain Names setGlobalDomain(fmt.Sprintf("%s:%s", Settings.HostIP, Settings.Port)) diff --git a/src/info.go b/src/info.go index 403e7c6..f0929f3 100644 --- a/src/info.go +++ b/src/info.go @@ -22,7 +22,6 @@ func ShowSystemInfo() { fmt.Printf("Version: %s %s.%s\n", System.Name, System.Version, System.Build) fmt.Printf("Branch: %s\n", System.Branch) - fmt.Printf("Bix\n") fmt.Printf("GitHub: %s/%s | Git update = %t\n", System.GitHub.User, System.GitHub.Repo, System.GitHub.Update) fmt.Printf("Folder (config): %s\n", System.Folder.Config) From 3f3fa043edd9b452b4e821c16def6a8d97cd568a Mon Sep 17 00:00:00 2001 From: Senex Crenshaw Date: Wed, 17 Aug 2022 15:47:19 +0000 Subject: [PATCH 123/189] Updates --- .gitignore | 3 ++- src/config.go | 2 -- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/.gitignore b/.gitignore index aa37409..90713dd 100644 --- a/.gitignore +++ b/.gitignore @@ -2,4 +2,5 @@ xteve xteve.exe /.idea/* -~/.xteve/backup/ \ No newline at end of file +.xteve/ +__debug_bin diff --git a/src/config.go b/src/config.go index 404ce27..8b4251f 100644 --- a/src/config.go +++ b/src/config.go @@ -194,8 +194,6 @@ func Init() (err error) { showInfo(fmt.Sprintf("GitHub:https://github.com/%s", System.GitHub.User)) showInfo(fmt.Sprintf("Git Branch:%s [%s]", System.Branch, System.GitHub.User)) - showInfo("BIX") - // Set Domain Names setGlobalDomain(fmt.Sprintf("%s:%s", Settings.HostIP, Settings.Port)) From 9a19fce52ee88d7886d648954168a2c401c494bd Mon Sep 17 00:00:00 2001 From: Senex Crenshaw Date: Wed, 17 Aug 2022 18:16:05 +0000 Subject: [PATCH 124/189] Docker fix up Added docker-compose --- Dockerfile | 13 +------------ docker-compose.yml | 20 ++++++++++++++++++++ 2 files changed, 21 insertions(+), 12 deletions(-) create mode 100644 docker-compose.yml diff --git a/Dockerfile b/Dockerfile index 3854728..ffe1b4f 100644 --- a/Dockerfile +++ b/Dockerfile @@ -8,7 +8,7 @@ FROM golang:bullseye AS builder # Download the source code -ADD "https://www.random.org/cgi-bin/randbyte?nbytes=10&format=h" skipcache +#ADD "https://www.random.org/cgi-bin/randbyte?nbytes=10&format=h" skipcache RUN git clone https://github.com/SenexCrenshaw/xTeVe.git /src WORKDIR /src @@ -43,11 +43,6 @@ ENV XTEVE_BIN=/home/xteve/bin ENV XTEVE_CONF=/home/xteve/conf ENV XTEVE_HOME=/home/xteve ENV XTEVE_TEMP=/tmp/xteve -ENV XTEVE_UID=31337 -ENV XTEVE_USER=xteve - -# Create the user to run inside the container -RUN adduser --uid $XTEVE_UID $XTEVE_USER # Add binary to PATH ENV PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:$XTEVE_BIN @@ -83,11 +78,5 @@ RUN chmod a+rwX $XTEVE_TEMP VOLUME $XTEVE_CONF VOLUME $XTEVE_TEMP -# Ensure the container user has ownership of home dir -RUN chown -R $XTEVE_USER $XTEVE_HOME - -# Switch users to the xTeVe container user -USER $XTEVE_USER - # Run the xTeVe executable ENTRYPOINT ${XTEVE_BIN}/xteve -port=${XTEVE_PORT} -config=${XTEVE_CONF} diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 0000000..8368127 --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,20 @@ +version: "2.1" +services: + xteve: + image: xteve:latest + container_name: xteve + environment: + - PUID=31337 + - PGID=31337 + - TZ=America/New_York + volumes: + - /opt/configs/xteve/config:/home/xteve/conf + - /tmp/xteve:/tmp/xteve:rw + # deploy: + # resources: + # reservations: + # devices: + # - capabilities: [ gpu ] + ports: + - 34400:34400 + restart: unless-stopped From bd9129e6baaafaffa260fbd830a61981a138e07c Mon Sep 17 00:00:00 2001 From: Senex Crenshaw Date: Wed, 17 Aug 2022 18:44:05 +0000 Subject: [PATCH 125/189] removed puid/pgid from docker-compose --- docker-compose.yml | 2 -- 1 file changed, 2 deletions(-) diff --git a/docker-compose.yml b/docker-compose.yml index 8368127..1ab975d 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -4,8 +4,6 @@ services: image: xteve:latest container_name: xteve environment: - - PUID=31337 - - PGID=31337 - TZ=America/New_York volumes: - /opt/configs/xteve/config:/home/xteve/conf From b69048e05b185187cef67aacec528a89214df7cd Mon Sep 17 00:00:00 2001 From: Senex Crenshaw Date: Tue, 23 Aug 2022 18:53:28 +0000 Subject: [PATCH 126/189] Added in click to copy to clipboard for DVR, M3U and XEPG Urls Various lint cleanups --- html/configuration.html | 112 ++++++++++++------------ html/create-first-user.html | 90 ++++++++++---------- html/css/base.css | 100 ++++++++++++---------- html/css/screen.css | 147 ++++++++++++++++++-------------- html/index.html | 165 ++++++++++++++++++------------------ html/js/menu_ts.js | 10 ++- html/login.html | 65 +++++++------- html/maintenance.html | 44 +++++----- src/webUI.go | 32 +++---- ts/menu_ts.ts | 12 ++- 10 files changed, 418 insertions(+), 359 deletions(-) diff --git a/html/configuration.html b/html/configuration.html index c8bea21..5527a2e 100644 --- a/html/configuration.html +++ b/html/configuration.html @@ -1,58 +1,60 @@ - - - - xTeVe - - - - - - - - - - - -
              -
              -
              - - -
              - - - - - - - - - - - - - - - - - - - - -
              Version: OS: 
              UUID: Arch: 
              Streams: DVR: 
              - -
              -

              Configuration

              -
              -

              -
              - -
              - -
              - + + + + + xTeVe + + + + + + + + + + + +
              +
              +
              + + +
              + + + + + + + + + + + + + + + + + + + + +
              Version: OS: 
              UUID: Arch: 
              Streams: DVR: 
              + +
              +

              Configuration

              +
              +

              +
              + +
              + +
              + + \ No newline at end of file diff --git a/html/create-first-user.html b/html/create-first-user.html index 86fb1d2..965d676 100644 --- a/html/create-first-user.html +++ b/html/create-first-user.html @@ -1,47 +1,49 @@ - - - - xTeVe - - - - - - - - - - -
              - -
              -

              {{.account.headline}}

              -
              - -

              - -
              - -
              - -
              {{.account.username.title}}:
              - -
              {{.account.password.title}}:
              - -
              {{.account.confirm.title}}:
              - - -
              - -
              - - - - -
              - + + + + + xTeVe + + + + + + + + + + +
              + +
              +

              {{.account.headline}}

              +
              + +

              + +
              + +
              + +
              {{.account.username.title}}:
              + +
              {{.account.password.title}}:
              + +
              {{.account.confirm.title}}:
              + + +
              + +
              + + + + +
              + + \ No newline at end of file diff --git a/html/css/base.css b/html/css/base.css index 8fb9390..3d25d85 100644 --- a/html/css/base.css +++ b/html/css/base.css @@ -3,7 +3,7 @@ -moz-appearance: none; -ms-appearance: none; font-family: "Arial", sans-serif; - letter-spacing: 2px; + letter-spacing: 2px; } /* @@ -17,32 +17,35 @@ height: 12px; } - + ::-webkit-scrollbar-track { - -webkit-box-shadow: inset 0 0 6px rgba(0,0,0,0.3); + -webkit-box-shadow: inset 0 0 6px rgba(0, 0, 0, 0.3); + box-shadow: inset 0 0 6px rgba(0, 0, 0, 0.3); border-radius: 5px; - + } - + ::-webkit-scrollbar-thumb { border-radius: 5px; - -webkit-box-shadow: inset 0 0 6px rgba(0, 0, 0,0.6); + -webkit-box-shadow: inset 0 0 6px rgba(0, 0, 0, 0.6); + box-shadow: inset 0 0 6px rgba(0, 0, 0, 0.6); background-color: #444; } ::-webkit-scrollbar-thumb:hover { - background: #333; + background: #333; } -::-webkit-scrollbar-corner { - background: transparent; +::-webkit-scrollbar-corner { + background: transparent; } a { color: #00E6FF; } -html, body { +html, +body { color: #fff; margin: 0px auto; height: 100%; @@ -91,11 +94,11 @@ pre { color: #ddd; letter-spacing: 1px; white-space: pre-wrap; - font-family: monospace; - font-size: 12px; - font-style: normal; - font-variant: normal; - line-height: 1.6em; + font-family: monospace; + font-size: 12px; + font-style: normal; + font-variant: normal; + line-height: 1.6em; } label { @@ -124,7 +127,7 @@ select { outline: none; color: #fff; padding: 9px 10px; - display:block; + display: block; background-color: #333; font-size: 14px; margin: 5px 0px 5px 0px; @@ -142,7 +145,8 @@ input { font-size: 14px; } -input[type=button], input[type=submit] { +input[type=button], +input[type=submit] { cursor: pointer; background-color: #000; margin: 10px 10px; @@ -154,8 +158,8 @@ input[type=button], input[type=submit] { color: #fff; } -input[type=button]:focus { - outline: none; +input[type=button]:focus { + outline: none; } input[type=button]:hover { @@ -163,12 +167,14 @@ input[type=button]:hover { color: #000; } -input[type=button]:hover.delete { +input[type=button]:hover.delete { background-color: red; color: #fff; } -input[type=text], input[type=search], input[type=password] { +input[type=text], +input[type=search], +input[type=password] { color: #fff; width: -webkit-calc(100% - 0px); width: -moz-calc(100% - 0px); @@ -215,23 +221,24 @@ input[type="checkbox"]:checked:before { input[type=button].cancel { - + background-color: transparent; border-color: red; } -input[type=button].save{ +input[type=button].save { background-color: #111; float: right; } -input[type=button].black, input[type=submit].black{ +input[type=button].black, +input[type=submit].black { background-color: #000; border-color: #000; } -input[type=button].center{ +input[type=button].center { margin-right: auto; margin-left: auto; background-color: #000; @@ -302,27 +309,22 @@ input[type=button].center{ margin-bottom: 30px; } -.block { - -} - .none { display: none; } - .notVisible { height: 0px; display: none; opacity: 0; border-bottom: #000 solid 0px; - + } .visible { opacity: 1; display: block; - border-bottom: #444 solid 1px; + border-bottom: #444 solid 1px; padding: 10px; } @@ -338,10 +340,6 @@ input[type=button].center{ background-color: #00E6FF; } -.menu-notActive { - -} - #branch { display: table; margin: auto; @@ -380,7 +378,11 @@ input[type=button].center{ color: magenta; } -.News, .Movie, .Series, .Sports, .Kids { +.News, +.Movie, +.Series, +.Sports, +.Kids { border-left: solid 2px } @@ -410,7 +412,7 @@ input[type=button].center{ top: 0px; z-index: 10000; position: absolute; - background-color: rgba(0,0,0, 0.8); + background-color: rgba(0, 0, 0, 0.8); margin: auto; width: 100%; height: 100%; @@ -434,15 +436,25 @@ input[type=button].center{ right: 0; bottom: 0; left: 0; - + } @-webkit-keyframes spin { - 0% { -webkit-transform: rotate(0deg); } - 100% { -webkit-transform: rotate(360deg); } + 0% { + -webkit-transform: rotate(0deg); + } + + 100% { + -webkit-transform: rotate(360deg); + } } @keyframes spin { - 0% { transform: rotate(0deg); } - 100% { transform: rotate(360deg); } -} + 0% { + transform: rotate(0deg); + } + + 100% { + transform: rotate(360deg); + } +} \ No newline at end of file diff --git a/html/css/screen.css b/html/css/screen.css index 80f2532..db16a88 100644 --- a/html/css/screen.css +++ b/html/css/screen.css @@ -42,7 +42,7 @@ nav p { height: 100px; background: url("../img/logo_w_600x200.png"); background-repeat: no-repeat; - background-position: center; + background-position: center; background-size: 100%; } @@ -57,14 +57,14 @@ nav p { height: -moz-calc(100% - 130px); height: calc(100% - 130px); */ - + min-height: -webkit-calc(100% - 120px); min-height: -moz-calc(100% - 120px); min-height: calc(100% - 120px); - - + + box-shadow: 0px 5px 5px #222; - + } #uiSetting { @@ -72,13 +72,14 @@ nav p { margin-right: 25px; } -#box input[type=text], #box input[type=password] { +#box input[type=text], +#box input[type=password] { width: -webkit-calc(100% - 20px); width: -moz-calc(100% - 20px); width: calc(100% - 20px); } -#box input[type=submit]{ +#box input[type=submit] { margin: 50px auto; } @@ -122,22 +123,17 @@ nav p { float: right; } -#settings-footer { - -} - - /* Wizard*/ #box { background-color: #444; min-height: 400px; - + display: flex; flex-direction: column; justify-content: space-between; } -#box p{ +#box p { padding: 10px 0px; } @@ -167,13 +163,16 @@ nav p { /* --- */ -#clientInfo, #activeStreams, #inactiveStreams { +#clientInfo, +#activeStreams, +#inactiveStreams { font-family: monospace; display: block; font-size: 9px; background-color: #111; color: #00E6FF; - border-bottom: solid 0px;; + border-bottom: solid 0px; + ; padding: 0px; letter-spacing: 1px; overflow-x: hidden; @@ -188,9 +187,9 @@ nav p { max-height: 150px; background-color: #111; color: white; - display:flex; - justify-content:center; - align-items:center; + display: flex; + justify-content: center; + align-items: center; } #openStreams { @@ -203,24 +202,26 @@ nav p { bottom: 0px; background: url("../img/touch.png"); background-color: #111; - - background-position: bottom right; + + background-position: bottom right; } #allStreams { width: 100%; height: 100%; - padding: 2px; + padding: 2px; } -#activeStreams, #inactiveStreams { +#activeStreams, +#inactiveStreams { overflow-y: scroll; width: 50%; max-height: 100px; float: left; } -#activeStreams .tdKey, #inactiveStreams .tdKey { +#activeStreams .tdKey, +#inactiveStreams .tdKey { width: 75px; } @@ -231,21 +232,36 @@ nav p { color: red; } -#clientInfo .tdVal, #logInfo .tdVal, #activeStreams .tdVal, #inactiveStreams .tdVal, #mappingInfo .tdVal{ +#clientInfo .tdVal, +#logInfo .tdVal, +#activeStreams .tdVal, +#inactiveStreams .tdVal, +#mappingInfo .tdVal { color: #aaa; white-space: inherit; } +#clientInfo .tdValLink, +#logInfo .tdValLink, +#activeStreams .tdValLink, +#inactiveStreams .tdValLink, +#mappingInfo .tdValLink { + color: lime; + white-space: inherit; +} + #box-wrapper { display: inline-block; width: 100%; - + overflow-y: scroll; } -#content_table, #mapping-detail-table, #content_table { +#content_table, +#mapping-detail-table, +#content_table { display: table; - + border-collapse: collapse; overflow-y: scroll; width: 100%; @@ -282,7 +298,7 @@ tbody { max-width: 30px; } -#content_table tr{ +#content_table tr { border-left: solid 3px 444; border-bottom: solid 1px #333; cursor: pointer; @@ -297,7 +313,7 @@ tbody { padding: 0px 2px; } -#content_table input[type=text]{ +#content_table input[type=text] { width: 80%; min-width: 35px; max-width: 60px; @@ -307,7 +323,7 @@ tbody { text-align: left; } -#content_table input[type=checkbox]{ +#content_table input[type=checkbox] { max-width: 25px; margin: auto; } @@ -321,20 +337,16 @@ tbody { display: none; } -.noBulk { - -} - -#content_table tr.activeEPG{ +#content_table tr.activeEPG { border-left: solid 3px lawngreen; } -#content_table tr.notActiveEPG{ +#content_table tr.notActiveEPG { border-left: solid 3px red; } -#logScreen p{ +#logScreen p { white-space: pre; font-size: 10px; /* @@ -342,11 +354,11 @@ tbody { font-family: "Arial", sans-serif; */ letter-spacing: 1px; - font-family: monospace; - font-size: 12px; - font-style: normal; - font-variant: normal; - line-height: 1.6em; + font-family: monospace; + font-size: 12px; + font-style: normal; + font-variant: normal; + line-height: 1.6em; } #popup { @@ -359,16 +371,19 @@ tbody { overflow: scroll; } -#mapping-detail, #user-detail, #file-detail, #popup-custom { +#mapping-detail, +#user-detail, +#file-detail, +#popup-custom { box-shadow: 0px 5px 40px #000; margin-top: 20px; margin-left: auto; margin-right: auto; - + max-width: 800px; background-color: #222; padding: 10px; - overflow:auto; + overflow: auto; } #popup-custom h3 { @@ -389,14 +404,18 @@ tbody { margin-right: auto; } -#popup-custom input[type=text], #popup-custom input[type=password], #mapping-detail input[type=text], #content_settings input[type=text], #content_settings input[type=password]{ +#popup-custom input[type=text], +#popup-custom input[type=password], +#mapping-detail input[type=text], +#content_settings input[type=text], +#content_settings input[type=password] { border: solid 1px; border-color: transparent; background-color: #333; text-align: left; width: -webkit-calc(100% - 20px); - width: -moz-calc(100% - 20px); - width: calc(100% - 20px); + width: -moz-calc(100% - 20px); + width: calc(100% - 20px); } #popup-custom input[type=text].notAvailable { @@ -410,34 +429,41 @@ tbody { cursor: not-allowed; } -#mapping-detail-table, #user-detail-table { +#mapping-detail-table, +#user-detail-table { display: inline-table; width: 100%; } -#popup-custom table, #content_settings table { +#popup-custom table, +#content_settings table { display: inline-table; table-layout: fixed; width: 100%; } -#mapping-detail-table td, #user-detail-table td { +#mapping-detail-table td, +#user-detail-table td { padding: 10px 0px; } -#mapping-detail-table td.left, #user-detail-table td.left, #popup-custom td.left { +#mapping-detail-table td.left, +#user-detail-table td.left, +#popup-custom td.left { width: 38%; } -.interaction, #interaction { +.interaction, +#interaction { margin-top: 20px; display: inline-flex; float: right; } -.interaction input[type=button], .interaction input[type=submit] { +.interaction input[type=button], +.interaction input[type=submit] { background-color: #000; min-width: 100px; margin: 0px 10px; @@ -450,7 +476,7 @@ tbody { right: 0px; height: 100%; width: 250px; - + background-color: #222; box-shadow: 0px 0px 20px #000; } @@ -479,7 +505,7 @@ tbody { } -@media only screen and (min-width: 620px){ +@media only screen and (min-width: 620px) { body { width: 100%; background-color: #444; @@ -501,7 +527,7 @@ tbody { height: 100px; background: url("../img/logo_w_600x200.png"); background-repeat: no-repeat; - + background-size: 300px 100px; } @@ -542,7 +568,4 @@ tbody { flex-direction: column; } - #settings, #settings-footer { - - } -} +} \ No newline at end of file diff --git a/html/index.html b/html/index.html index 59eed18..081a9cd 100644 --- a/html/index.html +++ b/html/index.html @@ -1,35 +1,36 @@ - - - - xTeVe - - + xTeVe + + - - - - - + + + + + - + - + -
              -
              -
              +
              +
              +
              - + -
              +
              - - + + -
              - - - \ No newline at end of file diff --git a/html/js/menu_ts.js b/html/js/menu_ts.js index dce5864..46bd5f2 100644 --- a/html/js/menu_ts.js +++ b/html/js/menu_ts.js @@ -700,8 +700,16 @@ function createLayout() { let obj = SERVER["clientInfo"]; let keys = getOwnObjProps(obj); for (var i = 0; i < keys.length; i++) { + document.getElementById(keys[i]).innerHTML = obj[keys[i]]; if (document.getElementById(keys[i])) { - document.getElementById(keys[i]).innerHTML = obj[keys[i]]; + if (location.protocol === 'https:') { + if (keys[i] === "xepg-url" || keys[i] === "m3u-url" || keys[i] === "DVR") { + document.getElementById(keys[i]).addEventListener('click', function (event) { + const target = event.target; + navigator.clipboard.writeText(target.innerText.split(" ")[0]).then(() => { }); + }, false); + } + } } } if (!document.getElementById("main-menu")) { diff --git a/html/login.html b/html/login.html index a3e7042..0b722c9 100644 --- a/html/login.html +++ b/html/login.html @@ -1,46 +1,47 @@ - - - - xTeVe - - - - - - - - + + + + xTeVe + + + + + -
              + -
              -

              {{.login.headline}}

              -
              + -

              {{.authenticationErr}}

              +
              -
              +
              +

              {{.login.headline}}

              +
              -
              +

              {{.authenticationErr}}

              -
              {{.login.username.title}}:
              - -
              {{.login.password.title}}:
              - +
              - +
              -
              +
              {{.login.username.title}}:
              + +
              {{.login.password.title}}:
              + - - -
              + + +
              + + + +
              + + - - \ No newline at end of file diff --git a/html/maintenance.html b/html/maintenance.html index b1ba141..799ea29 100644 --- a/html/maintenance.html +++ b/html/maintenance.html @@ -1,30 +1,32 @@ - - - - xTeVe - - - - - - + + + + xTeVe + + + -
              + -
              -

              Maintenance

              -
              + -
              - xTeVe is updating the database, please try again later. -
              +
              - - -
              +
              +

              Maintenance

              +
              + +
              + xTeVe is updating the database, please try again later. +
              + + + +
              + + - \ No newline at end of file diff --git a/src/webUI.go b/src/webUI.go index 5aebd84..650ebd2 100644 --- a/src/webUI.go +++ b/src/webUI.go @@ -4,10 +4,10 @@ var webUI = make(map[string]interface{}) func loadHTMLMap() { - webUI["html/configuration.html"] = "PCFkb2N0eXBlIGh0bWw+DQo8aHRtbD4NCiAgPGhlYWQ+DQogICAgPG1ldGEgY2hhcnNldD0idXRmLTgiPg0KICAgIDxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgsIGluaXRpYWwtc2NhbGU9MS4wIiAvPiANCiAgICA8dGl0bGU+eFRlVmU8L3RpdGxlPg0KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iY3NzL3NjcmVlbi5jc3MiIHR5cGU9InRleHQvY3NzIj4NCiAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9ImNzcy9iYXNlLmNzcyIgdHlwZT0idGV4dC9jc3MiPg0KICAgIDxzY3JpcHQgbGFuZ3VhZ2U9ImphdmFzY3JpcHQiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJqcy9jb25maWd1cmF0aW9uX3RzLmpzIj48L3NjcmlwdD4NCiAgICA8c2NyaXB0IGxhbmd1YWdlPSJqYXZhc2NyaXB0IiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ianMvbmV0d29ya190cy5qcyI+PC9zY3JpcHQ+DQogICAgPHNjcmlwdCBsYW5ndWFnZT0iamF2YXNjcmlwdCIgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9ImpzL21lbnVfdHMuanMiPjwvc2NyaXB0Pg0KICAgIDxzY3JpcHQgbGFuZ3VhZ2U9ImphdmFzY3JpcHQiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJqcy9zZXR0aW5nc190cy5qcyI+PC9zY3JpcHQ+DQogICAgPHNjcmlwdCBsYW5ndWFnZT0iamF2YXNjcmlwdCIgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9ImpzL2Jhc2VfdHMuanMiPjwvc2NyaXB0Pg0KICA8L2hlYWQ+DQoNCiAgICA8Ym9keSBvbmxvYWQ9ImphdmFzY3JpcHQ6IHJlYWR5Rm9yQ29uZmlndXJhdGlvbigwKTsiPg0KICAgICAgICAgIA0KICAgICAgPGRpdiBpZD0ibG9hZGluZyIgY2xhc3M9ImJsb2NrIj4NCiAgICAgICAgPGRpdiBjbGFzcz0ibG9hZGVyIj48L2Rpdj4NCiAgICAgIDwvZGl2Pg0KDQogICAgICA8ZGl2IGlkPSJoZWFkZXIiIGNsYXNzPSJpbWdDZW50ZXIiPjwvZGl2Pg0KICAgICAgPGRpdiBpZD0iYm94Ij4NCiAgICAgICAgDQogICAgICAgIDx0YWJsZSBpZD0iY2xpZW50SW5mbyIgY2xhc3M9InZpc2libGUiPg0KICAgICAgICAgIDx0cj4NCiAgICAgICAgICAgIDx0ZCBjbGFzcz0idGRLZXkiPlZlcnNpb246PC90ZD4NCiAgICAgICAgICAgIDx0ZCBpZD0idmVyc2lvbiIgY2xhc3M9InRkVmFsIj4mbmJzcDs8L3RkPg0KICAgICAgICAgICAgPHRkIGNsYXNzPSJ0ZEtleSI+T1M6PC90ZD4NCiAgICAgICAgICAgIDx0ZCBpZD0ib3MiIGNsYXNzPSJ0ZFZhbCI+Jm5ic3A7PC90ZD4NCiAgICAgICAgICA8L3RyPg0KICAgICAgICAgIDx0cj4NCiAgICAgICAgICAgIDx0ZCBjbGFzcz0idGRLZXkiPlVVSUQ6PC90ZD4NCiAgICAgICAgICAgIDx0ZCBpZD0idXVpZCIgY2xhc3M9InRkVmFsIj4mbmJzcDs8L3RkPg0KICAgICAgICAgICAgPHRkIGNsYXNzPSJ0ZEtleSI+QXJjaDo8L3RkPg0KICAgICAgICAgICAgPHRkIGlkPSJhcmNoIiBjbGFzcz0idGRWYWwiPiZuYnNwOzwvdGQ+DQogICAgICAgICAgPC90cj4NCiAgICAgICAgICA8dHI+DQogICAgICAgICAgICA8dGQgY2xhc3M9InRkS2V5Ij5TdHJlYW1zOjwvdGQ+DQogICAgICAgICAgICA8dGQgaWQ9InN0cmVhbXMiIGNsYXNzPSJ0ZFZhbCI+Jm5ic3A7PC90ZD4NCiAgICAgICAgICAgIDx0ZCBjbGFzcz0idGRLZXkiPkRWUjo8L3RkPg0KICAgICAgICAgICAgPHRkIGlkPSJEVlIiIGNsYXNzPSJ0ZFZhbCI+Jm5ic3A7PC90ZD4NCiAgICAgICAgICA8L3RyPg0KICAgICAgICA8L3RhYmxlPg0KICAgICAgICANCiAgICAgICAgPGRpdiBpZD0iaGVhZGxpbmUiPg0KICAgICAgICAgIDxoMSBpZD0iaGVhZC10ZXh0IiBjbGFzcz0iY2VudGVyIj5Db25maWd1cmF0aW9uPC9oMT4gICAgICANCiAgICAgICAgPC9kaXY+DQogICAgICAgIDxwIGlkPSJlcnIiIGNsYXNzPSJlcnJvck1zZyBjZW50ZXIiPjwvcD4gICANCiAgICAgICAgPGRpdiBpZD0iY29udGVudCI+DQogICAgICAgICAgICANCiAgICAgICAgPC9kaXY+DQogICAgICAgIDxkaXYgaWQ9ImJveC1mb290ZXIiPg0KICAgICAgICAgIDxpbnB1dCBpZD0ibmV4dCIgY2xhc3M9IiIgdHlwZT0iYnV0dG9uIiBuYW1lPSJuZXh0IiB2YWx1ZT0iTmV4dCIgb25jbGljaz0iamF2YXNjcmlwdDogc2F2ZVdpemFyZCgpOyI+DQogICAgICAgIDwvZGl2Pg0KICAgICAgPC9kaXY+DQogICAgPC9ib2R5Pg0KPC9odG1sPg==" - webUI["html/create-first-user.html"] = "PCFkb2N0eXBlIGh0bWw+DQo8aHRtbD4NCiAgPGhlYWQ+DQogICAgPG1ldGEgY2hhcnNldD0idXRmLTgiPg0KICAgIDxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgsIGluaXRpYWwtc2NhbGU9MS4wIiAvPiANCiAgICA8dGl0bGU+eFRlVmU8L3RpdGxlPg0KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iY3NzL3NjcmVlbi5jc3MiIHR5cGU9InRleHQvY3NzIj4NCiAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9ImNzcy9iYXNlLmNzcyIgdHlwZT0idGV4dC9jc3MiPg0KICAgIDxzY3JpcHQgbGFuZ3VhZ2U9ImphdmFzY3JpcHQiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJqcy9uZXR3b3JrX3RzLmpzIj48L3NjcmlwdD4NCiAgICA8c2NyaXB0IGxhbmd1YWdlPSJqYXZhc2NyaXB0IiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ianMvYXV0aGVudGljYXRpb25fdHMuanMiPjwvc2NyaXB0Pg0KICA8L2hlYWQ+DQoNCiAgICA8Ym9keT4NCiAgICAgICAgICANCiAgICAgIDxkaXYgaWQ9ImhlYWRlciIgY2xhc3M9ImltZ0NlbnRlciI+PC9kaXY+DQoNCiAgICAgIDxkaXYgaWQ9ImJveCI+DQoNCiAgICAgICAgPGRpdiBpZD0iaGVhZGxpbmUiPg0KICAgICAgICAgIDxoMSBpZD0iaGVhZC10ZXh0IiBjbGFzcz0iY2VudGVyIj57ey5hY2NvdW50LmhlYWRsaW5lfX08L2gxPg0KICAgICAgICA8L2Rpdj4NCg0KICAgICAgICA8cCBpZD0iZXJyIiBjbGFzcz0iZXJyb3JNc2cgY2VudGVyIj48L3A+DQoNCiAgICAgICAgPGRpdiBpZD0iY29udGVudCI+DQoNCiAgICAgICAgICAgIDxmb3JtIGlkPSJhdXRoZW50aWNhdGlvbiIgYWN0aW9uPSIiIG1ldGhvZD0icG9zdCI+DQoNCiAgICAgICAgICAgICAgPGg1Pnt7LmFjY291bnQudXNlcm5hbWUudGl0bGV9fTo8L2g1Pg0KICAgICAgICAgICAgICA8aW5wdXQgaWQ9InVzZXJuYW1lIiB0eXBlPSJ0ZXh0IiBuYW1lPSJ1c2VybmFtZSIgcGxhY2Vob2xkZXI9IlVzZXJuYW1lIiB2YWx1ZT0iIj4NCiAgICAgICAgICAgICAgPGg1Pnt7LmFjY291bnQucGFzc3dvcmQudGl0bGV9fTo8L2g1Pg0KICAgICAgICAgICAgICA8aW5wdXQgaWQ9InBhc3N3b3JkIiB0eXBlPSJwYXNzd29yZCIgbmFtZT0icGFzc3dvcmQiIHBsYWNlaG9sZGVyPSJQYXNzd29yZCIgdmFsdWU9IiI+DQogICAgICAgICAgICAgIDxoNT57ey5hY2NvdW50LmNvbmZpcm0udGl0bGV9fTo8L2g1Pg0KICAgICAgICAgICAgICA8aW5wdXQgaWQ9ImNvbmZpcm0iICB0eXBlPSJwYXNzd29yZCIgbmFtZT0iY29uZmlybSIgIHBsYWNlaG9sZGVyPSJDb25maXJtIiB2YWx1ZT0iIj4NCiAgICAgICAgICAgICAgDQogICAgICAgICAgICA8L2Zvcm0+DQoNCiAgICAgICAgPC9kaXY+DQogICAgICAgIA0KICAgICAgICA8ZGl2IGlkPSJib3gtZm9vdGVyIj4NCiAgICAgICAgICA8aW5wdXQgaWQ9InN1Ym1pdCIgY2xhc3M9IiIgdHlwZT0iYnV0dG9uIiB2YWx1ZT0ie3suYnV0dG9uLmNyYWV0ZUFjY291bnR9fSIgb25jbGljaz0iamF2YXNjcmlwdDogbG9naW4oKTsiPg0KICAgICAgICA8L2Rpdj4NCiAgICAgIA0KICAgICAgICANCiAgICAgIDwvZGl2Pg0KICAgIDwvYm9keT4NCjwvaHRtbD4=" - webUI["html/css/base.css"] = "KiB7DQogIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTsNCiAgLW1vei1hcHBlYXJhbmNlOiBub25lOw0KICAtbXMtYXBwZWFyYW5jZTogbm9uZTsNCiAgZm9udC1mYW1pbHk6ICJBcmlhbCIsIHNhbnMtc2VyaWY7DQogIGxldHRlci1zcGFjaW5nOiAycHg7IA0KfQ0KDQovKg0KOjotd2Via2l0LXNjcm9sbGJhciB7IA0KICAgIGRpc3BsYXk6IG5vbmU7IA0KfQ0KKi8NCg0KOjotd2Via2l0LXNjcm9sbGJhciB7DQogIHdpZHRoOiAxMnB4Ow0KICBoZWlnaHQ6IDEycHg7DQp9DQoNCiANCjo6LXdlYmtpdC1zY3JvbGxiYXItdHJhY2sgew0KICAtd2Via2l0LWJveC1zaGFkb3c6IGluc2V0IDAgMCA2cHggcmdiYSgwLDAsMCwwLjMpOyANCiAgYm9yZGVyLXJhZGl1czogNXB4Ow0KICAgIA0KfQ0KIA0KOjotd2Via2l0LXNjcm9sbGJhci10aHVtYiB7DQogIGJvcmRlci1yYWRpdXM6IDVweDsNCiAgLXdlYmtpdC1ib3gtc2hhZG93OiBpbnNldCAwIDAgNnB4IHJnYmEoMCwgMCwgMCwwLjYpOyANCiAgYmFja2dyb3VuZC1jb2xvcjogIzQ0NDsNCn0NCg0KOjotd2Via2l0LXNjcm9sbGJhci10aHVtYjpob3ZlciB7DQogIGJhY2tncm91bmQ6ICMzMzM7IA0KfQ0KDQo6Oi13ZWJraXQtc2Nyb2xsYmFyLWNvcm5lciB7IA0KICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsgDQp9DQoNCmEgew0KICBjb2xvcjogIzAwRTZGRjsNCn0NCg0KaHRtbCwgYm9keSB7DQogIGNvbG9yOiAjZmZmOw0KICBtYXJnaW46IDBweCBhdXRvOw0KICBoZWlnaHQ6IDEwMCU7DQogIGZvbnQtc2l6ZTogMTRweDsNCn0NCg0KaDIgew0KICBmb250LXNpemU6IDI0cHg7DQogIGxldHRlci1zcGFjaW5nOiAycHg7DQp9DQoNCmgzIHsNCiAgZm9udC1zaXplOiAyMnB4Ow0KICBsZXR0ZXItc3BhY2luZzogMXB4Ow0KfQ0KDQpoNCB7DQogIGZvbnQtc2l6ZTogMjBweDsNCiAgbGV0dGVyLXNwYWNpbmc6IDFweDsNCiAgbGluZS1oZWlnaHQ6IDEuNWVtOw0KDQp9DQoNCmg1IHsNCiAgZm9udC1zaXplOiAxNnB4Ow0KICBsZXR0ZXItc3BhY2luZzogMXB4Ow0KICBsaW5lLWhlaWdodDogMS4yZW07DQogIG1hcmdpbjogMjVweCAwcHggMTBweCAwcHg7DQp9DQoNCmhyIHsNCiAgYm9yZGVyOiAwOw0KICBoZWlnaHQ6IDFweDsNCiAgYmFja2dyb3VuZDogIzMzMzsNCiAgbWFyZ2luOiAxMHB4IDBweDsNCn0NCg0KcCB7DQogIG1hcmdpbjogMnB4Ow0KICBwYWRkaW5nOiAycHggNXB4Ow0KfQ0KDQpwcmUgew0KICBtYXJnaW46IDBweCAwcHggNXB4IDBweDsNCiAgZm9udC1zaXplOiAxMnB4Ow0KICBjb2xvcjogI2RkZDsNCiAgbGV0dGVyLXNwYWNpbmc6IDFweDsNCiAgd2hpdGUtc3BhY2U6IHByZS13cmFwOw0KICBmb250LWZhbWlseTogbW9ub3NwYWNlOyANCiAgZm9udC1zaXplOiAxMnB4OyANCiAgZm9udC1zdHlsZTogbm9ybWFsOyANCiAgZm9udC12YXJpYW50OiBub3JtYWw7IA0KICBsaW5lLWhlaWdodDogMS42ZW07IA0KfQ0KDQpsYWJlbCB7DQogIG1hcmdpbi1ib3R0b206IDIwcHg7DQogIGRpc3BsYXk6IGJsb2NrOw0KfQ0KDQpsaSB7DQogIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTsNCiAgYmFja2dyb3VuZC1jb2xvcjogIzExMTsNCiAgcGFkZGluZzogMTBweCAyMHB4Ow0KICBjdXJzb3I6IHBvaW50ZXI7DQogIGJvcmRlci1sZWZ0OiBzb2xpZCAycHggIzExMTsNCiAgdHJhbnNpdGlvbjogYWxsIDAuMzsNCn0NCg0KbGk6aG92ZXIgew0KICBib3JkZXItY29sb3I6ICMwMEU2RkYNCn0NCg0Kc2VsZWN0IHsNCiAgY3Vyc29yOiBwb2ludGVyOw0KICB3aWR0aDogY2FsYygxMDAlICsgMnB4KTsNCiAgYm9yZGVyOiBzb2xpZCAwcHggIzAwRTZGRjsNCiAgYm9yZGVyLXJhZGl1czogMHB4Ow0KICBvdXRsaW5lOiBub25lOw0KICBjb2xvcjogI2ZmZjsNCiAgcGFkZGluZzogOXB4IDEwcHg7DQogIGRpc3BsYXk6YmxvY2s7DQogIGJhY2tncm91bmQtY29sb3I6ICMzMzM7DQogIGZvbnQtc2l6ZTogMTRweDsNCiAgbWFyZ2luOiA1cHggMHB4IDVweCAwcHg7DQp9DQoNCnNlbGVjdDpmb2N1cyB7DQogIG91dGxpbmU6IG5vbmU7DQp9DQoNCmlucHV0IHsNCiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lOw0KICBtYXJnaW46IDVweCAwcHg7DQogIHBhZGRpbmc6IDIuNXB4IDEwcHg7DQogIG91dGxpbmU6IG5vbmU7DQogIGZvbnQtc2l6ZTogMTRweDsNCn0NCg0KaW5wdXRbdHlwZT1idXR0b25dLCBpbnB1dFt0eXBlPXN1Ym1pdF0gew0KICBjdXJzb3I6IHBvaW50ZXI7DQogIGJhY2tncm91bmQtY29sb3I6ICMwMDA7DQogIG1hcmdpbjogMTBweCAxMHB4Ow0KICBwYWRkaW5nOiAxMHB4IDI1cHg7DQogIGJvcmRlcjogc29saWQgMHB4Ow0KICBib3JkZXItY29sb3I6ICMwMDA7DQogIGJvcmRlci1yYWRpdXM6IDNweDsNCiAgb3V0bGluZTogbm9uZTsNCiAgY29sb3I6ICNmZmY7DQp9DQoNCmlucHV0W3R5cGU9YnV0dG9uXTpmb2N1cyB7IA0KICAgb3V0bGluZTogbm9uZTsNCn0NCg0KaW5wdXRbdHlwZT1idXR0b25dOmhvdmVyIHsNCiAgYmFja2dyb3VuZC1jb2xvcjogIzAwRTZGRjsNCiAgY29sb3I6ICMwMDA7DQp9DQoNCmlucHV0W3R5cGU9YnV0dG9uXTpob3Zlci5kZWxldGUgIHsNCiAgYmFja2dyb3VuZC1jb2xvcjogcmVkOw0KICBjb2xvcjogI2ZmZjsNCn0NCg0KaW5wdXRbdHlwZT10ZXh0XSwgaW5wdXRbdHlwZT1zZWFyY2hdLCBpbnB1dFt0eXBlPXBhc3N3b3JkXSB7DQogIGNvbG9yOiAjZmZmOw0KICB3aWR0aDogLXdlYmtpdC1jYWxjKDEwMCUgLSAwcHgpOw0KICB3aWR0aDogLW1vei1jYWxjKDEwMCUgLSAwcHgpOw0KICB3aWR0aDogY2FsYygxMDAlIC0gMHB4KTsNCiAgb3V0bGluZTogbm9uZTsNCiAgYm9yZGVyOiBzb2xpZCAxcHggdHJhbnNwYXJlbnQ7DQogIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50Ow0KICBib3JkZXItYm90dG9tLWNvbG9yOiAjNTU1Ow0KICBib3JkZXItcmFkaXVzOiAwcHg7DQogIHBhZGRpbmc6IDhweCAxMHB4Ow0KfQ0KDQppbnB1dFt0eXBlPSJjaGVja2JveCJdIHsNCiAgYm9yZGVyOiBzb2xpZCAxcHggIzAwRTZGRjsNCiAgYmFja2dyb3VuZC1jb2xvcjogIzMzMzsNCiAgaGVpZ2h0OiAyNXB4Ow0KICB3aWR0aDogMjVweDsNCiAgY3Vyc29yOiBwb2ludGVyOw0KICAvKg0KICAtd2Via2l0LWFwcGVhcmFuY2U6IGNoZWNrYm94Ow0KICAqLw0KfQ0KDQppbnB1dFt0eXBlPSJjaGVja2JveCJdOmNoZWNrZWQgew0KICBjb2xvcjogI2ZmZjsNCiAgYmFja2dyb3VuZC1jb2xvcjogIzAwRTZGRjsNCiAgLypkaXNwbGF5OiBpbmxpbmUtYmxvY2s7Ki8NCn0NCg0KaW5wdXRbdHlwZT0iY2hlY2tib3giXTpiZWZvcmUgew0KICBwb3NpdGlvbjogaW5pdGlhbDsNCiAgbGVmdDogMHB4Ow0KICBtYXJnaW4tbGVmdDogLTRweDsNCiAgY29udGVudDogIiAiOw0KfQ0KDQppbnB1dFt0eXBlPSJjaGVja2JveCJdOmNoZWNrZWQ6YmVmb3JlIHsNCiAgcG9zaXRpb246IGluaXRpYWw7DQogIGxlZnQ6IDBweDsNCiAgbWFyZ2luLWxlZnQ6IC0zcHg7DQogIGNvbnRlbnQ6ICLinJMiOw0KICBjb2xvcjogIzAwMDsNCn0NCg0KDQppbnB1dFt0eXBlPWJ1dHRvbl0uY2FuY2VsIHsNCiAgDQogIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50Ow0KICBib3JkZXItY29sb3I6IHJlZDsNCn0NCg0KaW5wdXRbdHlwZT1idXR0b25dLnNhdmV7DQogIGJhY2tncm91bmQtY29sb3I6ICMxMTE7DQogIGZsb2F0OiByaWdodDsNCn0NCg0KDQppbnB1dFt0eXBlPWJ1dHRvbl0uYmxhY2ssIGlucHV0W3R5cGU9c3VibWl0XS5ibGFja3sNCiAgYmFja2dyb3VuZC1jb2xvcjogIzAwMDsNCiAgYm9yZGVyLWNvbG9yOiAjMDAwOw0KfQ0KDQppbnB1dFt0eXBlPWJ1dHRvbl0uY2VudGVyew0KICBtYXJnaW4tcmlnaHQ6IGF1dG87DQogIG1hcmdpbi1sZWZ0OiBhdXRvOw0KICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDAwOw0KICBib3JkZXItY29sb3I6ICMwMDA7DQp9DQoNCi5wb2ludGVyIHsNCiAgY3Vyc29yOiBwb2ludGVyOw0KfQ0KDQoucG9pbnRlcjpob3ZlciB7DQogIGNvbG9yOiAjMDBFNkZGOw0KICBjdXJzb3I6IHBvaW50ZXI7DQp9DQoNCi5zb3J0VGhpcyB7DQogIGNvbG9yOiAjMDBFNkZGOw0KfQ0KDQoudzQwcHggew0KICBtYXgtd2lkdGg6IDQwcHg7DQp9DQoNCi53NTBweCB7DQogIG1heC13aWR0aDogNTBweDsNCn0NCg0KLnc4MHB4IHsNCiAgbWF4LXdpZHRoOiA4MHB4Ow0KfQ0KDQoudzE1MHB4IHsNCiAgbWF4LXdpZHRoOiAxNTBweDsNCn0NCg0KLncyMDBweCB7DQogIG1heC13aWR0aDogMjAwcHg7DQogIG1pbi13aWR0aDogMTAwcHg7DQogIHdpZHRoOiAyMDBweDsNCiAgb3ZlcmZsb3cteDogaGlkZGVuOw0KICB3aGl0ZS1zcGFjZTogbm93cmFwOw0KICBvdmVyZmxvdzogaGlkZGVuOw0KICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsNCn0NCg0KLnczMDBweCB7DQogIG1heC13aWR0aDogMzAwcHg7DQp9DQoNCi53MjIwcHggew0KICBtYXgtd2lkdGg6IDIyMHB4Ow0KICBjdXJzb3I6IGFsaWFzOw0KfQ0KDQouZm9vdGVyIHsNCiAgZm9udC1zaXplOiAxMHB4Ow0KfQ0KDQouY2VudGVyIHsNCiAgdGV4dC1hbGlnbjogY2VudGVyOw0KfQ0KDQouc2NyZWVuTG9nSGlkZGVuIHsNCiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMHB4LCAtMTEwcHgpOw0KfQ0KDQouYm9yZGVyU3BhY2Ugew0KICBtYXJnaW4tYm90dG9tOiAzMHB4Ow0KfQ0KDQouYmxvY2sgew0KDQp9DQoNCi5ub25lIHsNCiAgZGlzcGxheTogbm9uZTsNCn0NCg0KDQoubm90VmlzaWJsZSB7DQogIGhlaWdodDogMHB4Ow0KICBkaXNwbGF5OiBub25lOw0KICBvcGFjaXR5OiAwOw0KICBib3JkZXItYm90dG9tOiAjMDAwIHNvbGlkIDBweDsNCiAgDQp9DQoNCi52aXNpYmxlIHsNCiAgb3BhY2l0eTogMTsNCiAgZGlzcGxheTogYmxvY2s7DQogIGJvcmRlci1ib3R0b206ICM0NDQgc29saWQgMXB4OyANCiAgcGFkZGluZzogMTBweDsNCn0NCg0KLmZsb2F0UmlnaHQgew0KICBmbG9hdDogcmlnaHQ7DQp9DQoNCi5mbG9hdExlZnQgew0KICBmbG9hdDogbGVmdDsNCn0NCg0KLm1lbnUtYWN0aXZlIHsNCiAgYmFja2dyb3VuZC1jb2xvcjogIzAwRTZGRjsNCn0NCg0KLm1lbnUtbm90QWN0aXZlIHsNCiAgDQp9DQoNCiNicmFuY2ggew0KICBkaXNwbGF5OiB0YWJsZTsNCiAgbWFyZ2luOiBhdXRvOw0KICBjb2xvcjogcmVkOw0KfQ0KDQojaW50ZXJhY3Rpb24gew0KICBtYXJnaW4tYm90dG9tOiAxMDBweDsNCiAgdGV4dC1hbGlnbjogY2VudGVyOw0KICBib3JkZXItYm90dG9tOiBzb2xpZCAwcHggIzc3NzsNCn0NCg0KDQouaGFsZiB7DQogIGRpc3BsYXk6IGJsb2NrOw0KICB3aWR0aDogNDUlOw0KfQ0KDQoubWVudSB7DQogIGJvcmRlcjogc29saWQgMXB4ICMwMEU2RkY7DQp9DQoNCi5pbmZvTXNnIHsNCiAgY29sb3I6ICNhYWE7DQp9DQoNCi5lcnJvck1zZyB7DQogIGNvbG9yOiByZWQ7DQp9DQoNCi53YXJuaW5nTXNnIHsNCiAgY29sb3I6IHllbGxvdzsNCn0NCg0KLmRlYnVnTXNnIHsNCiAgY29sb3I6IG1hZ2VudGE7DQp9DQoNCi5OZXdzLCAuTW92aWUsIC5TZXJpZXMsIC5TcG9ydHMsIC5LaWRzIHsNCiAgYm9yZGVyLWxlZnQ6IHNvbGlkIDJweA0KfQ0KDQouTmV3cyB7DQogIGJvcmRlci1jb2xvcjogdG9tYXRvDQp9DQoNCi5Nb3ZpZSB7DQogIGJvcmRlci1jb2xvcjogcm95YWxibHVlOw0KfQ0KDQouU2VyaWVzIHsNCiAgYm9yZGVyLWNvbG9yOiBnb2xkOw0KfQ0KDQouU3BvcnRzIHsNCiAgYm9yZGVyLWNvbG9yOiB5ZWxsb3dncmVlbjsNCn0NCg0KLktpZHMgew0KICBib3JkZXItY29sb3I6IG1lZGl1bXB1cnBsZTsNCn0NCg0KLyogTG9hZGluZyAqLw0KI2xvYWRpbmcgew0KICBsZWZ0OiAwcHg7DQogIHRvcDogMHB4Ow0KICB6LWluZGV4OiAxMDAwMDsNCiAgcG9zaXRpb246IGFic29sdXRlOw0KICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsMCwwLCAwLjgpOw0KICBtYXJnaW46IGF1dG87DQogIHdpZHRoOiAxMDAlOw0KICBoZWlnaHQ6IDEwMCU7DQp9DQoNCg0KLmxvYWRlciB7DQogIGJvcmRlcjogNXB4IHNvbGlkIHRyYW5zcGFyZW50Ow0KICBib3JkZXItcmFkaXVzOiA1MCU7DQogIGJvcmRlci10b3A6IDVweCBzb2xpZCAjMDBFNkZGOw0KICBib3JkZXItYm90dG9tOiA1cHggc29saWQgIzAwRTZGRjsNCiAgd2lkdGg6IDUwcHg7DQogIGhlaWdodDogNTBweDsNCiAgLXdlYmtpdC1hbmltYXRpb246IHNwaW4gMS4ycyBsaW5lYXIgaW5maW5pdGU7DQogIGFuaW1hdGlvbjogc3BpbiAxLjJzIGxpbmVhciBpbmZpbml0ZTsNCg0KICBwb3NpdGlvbjogZml4ZWQ7DQogIG1hcmdpbjogYXV0bzsNCg0KICB0b3A6IDA7DQogIHJpZ2h0OiAwOw0KICBib3R0b206IDA7DQogIGxlZnQ6IDA7DQogIA0KfQ0KDQpALXdlYmtpdC1rZXlmcmFtZXMgc3BpbiB7DQogIDAlIHsgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTsgfQ0KICAxMDAlIHsgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpOyB9DQp9DQoNCkBrZXlmcmFtZXMgc3BpbiB7DQogIDAlIHsgdHJhbnNmb3JtOiByb3RhdGUoMGRlZyk7IH0NCiAgMTAwJSB7IHRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7IH0NCn0NCg==" - webUI["html/css/screen.css"] = "bmF2IGltZyB7DQogIGRpc3BsYXk6IGJsb2NrOw0KICBtYXgtaGVpZ2h0OiAyMHB4Ow0KICBtYXgtd2lkdGg6IDIwcHg7DQogIGZsb2F0OiBsZWZ0Ow0KfQ0KDQpuYXYgcCB7DQogIHRleHQtYWxpZ246IGxlZnQ7DQogIHBhZGRpbmc6IDBweCAzMHB4Ow0KfQ0KDQojbGF5b3V0IHsNCiAgZGlzcGxheTogYmxvY2s7DQogIGhlaWdodDogMTAwJTsNCn0NCg0KDQoubGF5b3V0LWxlZnQgew0KICBkaXNwbGF5OiBibG9jazsNCiAgbWluLXdpZHRoOiAxNTBweDsNCiAgbWF4LXdpZHRoOiAyMCU7DQogIGJhY2tncm91bmQtY29sb3I6ICMxMTE7DQogIGhlaWdodDogaW5oZXJpdDsNCiAgZmxvYXQ6IGxlZnQ7DQp9DQoNCi5sYXlvdXQtcmlnaHQgew0KICBkaXNwbGF5OiBibG9jazsNCiAgYmFja2dyb3VuZC1jb2xvcjogIzQ0NDsNCn0NCg0KI21lbnUtd3JhcHBlciB7DQogIGhlaWdodDogMTAwJTsNCn0NCg0KDQojbG9nbyB7DQogIGRpc3BsYXk6IGJsb2NrOw0KICBtaW4td2lkdGg6IDE4MHB4Ow0KICB3aWR0aDogMTAwJTsNCiAgaGVpZ2h0OiAxMDBweDsNCiAgYmFja2dyb3VuZDogdXJsKCIuLi9pbWcvbG9nb193XzYwMHgyMDAucG5nIik7DQogIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7DQogIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjsgDQogIGJhY2tncm91bmQtc2l6ZTogMTAwJTsNCn0NCg0KDQojcGFnZSB7DQogIG1heC13aWR0aDogOTUwcHg7DQogIG1hcmdpbjogYXV0bzsNCiAgYmFja2dyb3VuZC1jb2xvcjogIzQ0NDsNCg0KICAvKg0KICBoZWlnaHQ6IC13ZWJraXQtY2FsYygxMDAlIC0gMTMwcHgpOw0KICBoZWlnaHQ6IC1tb3otY2FsYygxMDAlIC0gMTMwcHgpOw0KICBoZWlnaHQ6IGNhbGMoMTAwJSAtIDEzMHB4KTsNCiAgKi8NCiAgDQogIG1pbi1oZWlnaHQ6IC13ZWJraXQtY2FsYygxMDAlIC0gMTIwcHgpOw0KICBtaW4taGVpZ2h0OiAtbW96LWNhbGMoMTAwJSAtIDEyMHB4KTsNCiAgbWluLWhlaWdodDogY2FsYygxMDAlIC0gMTIwcHgpOw0KICANCiAgDQogIGJveC1zaGFkb3c6IDBweCA1cHggNXB4ICMyMjI7DQogIA0KfQ0KDQojdWlTZXR0aW5nIHsNCiAgZmxvYXQ6IHJpZ2h0Ow0KICBtYXJnaW4tcmlnaHQ6IDI1cHg7DQp9DQoNCiNib3ggaW5wdXRbdHlwZT10ZXh0XSwgI2JveCBpbnB1dFt0eXBlPXBhc3N3b3JkXSB7DQogIHdpZHRoOiAtd2Via2l0LWNhbGMoMTAwJSAtIDIwcHgpOw0KICB3aWR0aDogLW1vei1jYWxjKDEwMCUgLSAyMHB4KTsNCiAgd2lkdGg6IGNhbGMoMTAwJSAtIDIwcHgpOw0KfQ0KDQojYm94IGlucHV0W3R5cGU9c3VibWl0XXsNCiAgbWFyZ2luOiA1MHB4IGF1dG87DQp9DQoNCiNzZXR0aW5ncyB7DQogIGRpc3BsYXk6IGJsb2NrOw0KICBwYWRkaW5nOiAxMHB4IDEwcHg7DQp9DQoNCiNzZXR0aW5ncyBoNSB7DQogIG1hcmdpbjogNTBweCAwcHggMTBweCAwcHg7DQp9DQoNCiNjb250ZW50LWludGVyYWN0aW9uIC5zZWFyY2ggew0KICB3aWR0aDogMjAwcHg7DQogIGJvcmRlcjogMXB4IHNvbGlkICMwMDA7DQogIHBhZGRpbmc6IDlweDsNCiAgYmFja2dyb3VuZC1jb2xvcjogIzMzMzsNCiAgbWFyZ2luOiAxMHB4Ow0KICBmbG9hdDogcmlnaHQ7DQogIGJvcmRlci1yYWRpdXM6IDNweDsNCg0KfQ0KDQojbXlTdHJlYW1zIHsNCiAgcG9zaXRpb246IGZpeGVkOw0KICBib3R0b206IDBweDsNCiAgYmFja2dyb3VuZC1jb2xvcjogIzExMTsNCiAgd2lkdGg6IDEwMCU7DQogIG1heC13aWR0aDogOTUwcHg7DQoNCiAgLyoNCiAgbWF4LWhlaWdodDogMTAwcHg7DQogICovDQogIG1hcmdpbi1ib3R0b206IDBweDsNCn0NCg0KI215U3RyZWFtcyBpbWcgew0KICB3aWR0aDogNCU7DQogIHBhZGRpbmc6IDJweCA1cHg7DQogIGN1cnNvcjogcG9pbnRlcjsNCiAgZmxvYXQ6IHJpZ2h0Ow0KfQ0KDQojc2V0dGluZ3MtZm9vdGVyIHsNCg0KfQ0KDQoNCi8qIFdpemFyZCovDQojYm94IHsNCiAgYmFja2dyb3VuZC1jb2xvcjogIzQ0NDsNCiAgbWluLWhlaWdodDogNDAwcHg7DQogIA0KICBkaXNwbGF5OiBmbGV4Ow0KICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOw0KICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47DQp9DQoNCiNib3ggcHsNCiAgcGFkZGluZzogMTBweCAwcHg7DQp9DQoNCiNib3gtZm9vdGVyIHsNCiAgbWFyZ2luLXRvcDogYXV0bzsNCn0NCg0KI2JveC1mb290ZXIgew0KICBtYXJnaW46IGF1dG87DQogIHBhZGRpbmc6IDEwcHg7DQp9DQoNCiNoZWFkbGluZSB7DQogIGJhY2tncm91bmQtY29sb3I6ICMyMjI7DQogIGJvcmRlci1ib3R0b206IHNvbGlkIDJweCAjMjIyOw0KICB0cmFuc2l0aW9uOiBhbGwgMC41czsNCiAgcGFkZGluZzogMTBweCAwcHg7DQogIGRpc3BsYXk6IGJsb2NrOw0KfQ0KDQojY29udGVudCB7DQogIGRpc3BsYXk6IGJsb2NrOw0KICBvdmVyZmxvdzogYXV0bzsNCiAgcGFkZGluZzogMTBweDsNCn0NCg0KLyogLS0tICovDQoNCg0KI2NsaWVudEluZm8sICNhY3RpdmVTdHJlYW1zLCAjaW5hY3RpdmVTdHJlYW1zIHsNCiAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZTsNCiAgZGlzcGxheTogYmxvY2s7DQogIGZvbnQtc2l6ZTogOXB4Ow0KICBiYWNrZ3JvdW5kLWNvbG9yOiAjMTExOw0KICBjb2xvcjogIzAwRTZGRjsNCiAgYm9yZGVyLWJvdHRvbTogc29saWQgMHB4OzsNCiAgcGFkZGluZzogMHB4Ow0KICBsZXR0ZXItc3BhY2luZzogMXB4Ow0KICBvdmVyZmxvdy14OiBoaWRkZW47DQogIGJvcmRlci1zcGFjaW5nOiA0cHggNHB4Ow0KICBib3JkZXItYm90dG9tOiBzb2xpZCAxcHggIzQ0NDsNCn0NCg0KI215U3RyZWFtc0JveCB7DQogIHBvc2l0aW9uOiByZWxhdGl2ZTsNCiAgcGFkZGluZzogMHB4Ow0KICAvKmhlaWdodDogMTAwcHg7Ki8NCiAgbWF4LWhlaWdodDogMTUwcHg7DQogIGJhY2tncm91bmQtY29sb3I6ICMxMTE7DQogIGNvbG9yOiB3aGl0ZTsNCiAgZGlzcGxheTpmbGV4Ow0KICBqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyOw0KICBhbGlnbi1pdGVtczpjZW50ZXI7DQp9DQoNCiNvcGVuU3RyZWFtcyB7DQogIHdpZHRoOiAyMHB4Ow0KICBoZWlnaHQ6IDIwcHg7DQogIGN1cnNvcjogcG9pbnRlcjsNCiAgZmxvYXQ6IHJpZ2h0Ow0KICBwb3NpdGlvbjogYWJzb2x1dGU7DQogIHJpZ2h0OiAwcHg7DQogIGJvdHRvbTogMHB4Ow0KICBiYWNrZ3JvdW5kOiB1cmwoIi4uL2ltZy90b3VjaC5wbmciKTsNCiAgYmFja2dyb3VuZC1jb2xvcjogIzExMTsNCiAgDQogIGJhY2tncm91bmQtcG9zaXRpb246IGJvdHRvbSByaWdodDsgIA0KfQ0KDQojYWxsU3RyZWFtcyB7DQogIHdpZHRoOiAxMDAlOw0KICBoZWlnaHQ6IDEwMCU7DQogIHBhZGRpbmc6IDJweDsgICAgIA0KfQ0KDQojYWN0aXZlU3RyZWFtcywgI2luYWN0aXZlU3RyZWFtcyB7DQogIG92ZXJmbG93LXk6IHNjcm9sbDsNCiAgd2lkdGg6IDUwJTsNCiAgbWF4LWhlaWdodDogMTAwcHg7DQogIGZsb2F0OiBsZWZ0Ow0KfQ0KDQojYWN0aXZlU3RyZWFtcyAudGRLZXksICNpbmFjdGl2ZVN0cmVhbXMgLnRkS2V5IHsNCiAgd2lkdGg6IDc1cHg7DQp9DQoNCg0KDQoNCiNpbmFjdGl2ZVN0cmVhbXMgLnRkS2V5IHsNCiAgY29sb3I6IHJlZDsNCn0NCg0KI2NsaWVudEluZm8gLnRkVmFsLCAjbG9nSW5mbyAudGRWYWwsICNhY3RpdmVTdHJlYW1zIC50ZFZhbCwgI2luYWN0aXZlU3RyZWFtcyAudGRWYWwsICNtYXBwaW5nSW5mbyAudGRWYWx7DQogIGNvbG9yOiAjYWFhOw0KICB3aGl0ZS1zcGFjZTogaW5oZXJpdDsNCn0NCg0KI2JveC13cmFwcGVyIHsNCiAgZGlzcGxheTogaW5saW5lLWJsb2NrOw0KICB3aWR0aDogMTAwJTsNCiAgDQogIG92ZXJmbG93LXk6IHNjcm9sbDsNCn0NCg0KI2NvbnRlbnRfdGFibGUsICNtYXBwaW5nLWRldGFpbC10YWJsZSwgI2NvbnRlbnRfdGFibGUgew0KICBkaXNwbGF5OiB0YWJsZTsNCiAgDQogIGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7DQogIG92ZXJmbG93LXk6IHNjcm9sbDsNCiAgd2lkdGg6IDEwMCU7DQp9DQoNCg0KI2NvbnRlbnRfdGFibGUgLmNvbnRlbnRfdGFibGVfaGVhZGVyIHsNCiAgYmFja2dyb3VuZC1jb2xvcjogIzMzMzsNCiAgaGVpZ2h0OiA1MHB4Ow0KICBib3JkZXItYm90dG9tOiBzb2xpZCAxcHggIzExMTsNCiAgYm9yZGVyLWxlZnQ6IHNvbGlkIDNweCAjMzMzOw0KICBjdXJzb3I6IGF1dG87DQoNCn0NCg0KDQp0Ym9keSB7DQogIHdpZHRoOiAxMDAlOw0KfQ0KDQoNCi50YWJsZUVsbGlwc2lzIHsNCiAgd2lkdGg6IDE1MHB4Ow0KICBvdmVyZmxvdzogaGlkZGVuOw0KICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsNCiAgd2hpdGUtc3BhY2U6IG5vd3JhcDsNCn0NCg0KI2NvbnRlbnRfdGFibGUgaW1nIHsNCiAgZGlzcGxheTogYmxvY2s7DQogIG1heC1oZWlnaHQ6IDI4cHg7DQogIG1hcmdpbi1sZWZ0OiBhdXRvOw0KICBtYXJnaW4tcmlnaHQ6IGF1dG87DQogIG1heC13aWR0aDogMzBweDsNCn0NCg0KI2NvbnRlbnRfdGFibGUgdHJ7DQogIGJvcmRlci1sZWZ0OiBzb2xpZCAzcHggNDQ0Ow0KICBib3JkZXItYm90dG9tOiBzb2xpZCAxcHggIzMzMzsNCiAgY3Vyc29yOiBwb2ludGVyOw0KfQ0KDQojY29udGVudF90YWJsZSB0cjpob3ZlciB7DQogIGJhY2tncm91bmQtY29sb3I6ICMzMzM7DQp9DQoNCiNjb250ZW50X3RhYmxlIHRkIHsNCg0KICBwYWRkaW5nOiAwcHggMnB4Ow0KfQ0KDQojY29udGVudF90YWJsZSBpbnB1dFt0eXBlPXRleHRdew0KICB3aWR0aDogODAlOw0KICBtaW4td2lkdGg6IDM1cHg7DQogIG1heC13aWR0aDogNjBweDsNCiAgYm9yZGVyOiAwcHg7DQogIGJhY2tncm91bmQtY29sb3I6ICMzMzM7DQogIG1hcmdpbi1sZWZ0OiA1cHg7DQogIHRleHQtYWxpZ246IGxlZnQ7DQp9DQoNCiNjb250ZW50X3RhYmxlIGlucHV0W3R5cGU9Y2hlY2tib3hdew0KICBtYXgtd2lkdGg6IDI1cHg7DQogIG1hcmdpbjogYXV0bzsNCn0NCg0KDQouc2hvd0J1bGsgew0KICBkaXNwbGF5OiBibG9jazsNCn0NCg0KLmhpZGVCdWxrIHsNCiAgZGlzcGxheTogbm9uZTsNCn0NCg0KLm5vQnVsayB7DQoNCn0NCg0KI2NvbnRlbnRfdGFibGUgdHIuYWN0aXZlRVBHew0KICBib3JkZXItbGVmdDogc29saWQgM3B4IGxhd25ncmVlbjsNCn0NCg0KI2NvbnRlbnRfdGFibGUgdHIubm90QWN0aXZlRVBHew0KICBib3JkZXItbGVmdDogc29saWQgM3B4IHJlZDsNCn0NCg0KDQojbG9nU2NyZWVuIHB7DQogIHdoaXRlLXNwYWNlOiBwcmU7DQogIGZvbnQtc2l6ZTogMTBweDsNCiAgLyoNCiAgbGluZS1oZWlnaHQ6IDEuNmVtOw0KICBmb250LWZhbWlseTogIkFyaWFsIiwgc2Fucy1zZXJpZjsNCiAgKi8NCiAgbGV0dGVyLXNwYWNpbmc6IDFweDsNCiAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZTsgDQogIGZvbnQtc2l6ZTogMTJweDsgDQogIGZvbnQtc3R5bGU6IG5vcm1hbDsgDQogIGZvbnQtdmFyaWFudDogbm9ybWFsOyANCiAgbGluZS1oZWlnaHQ6IDEuNmVtOyANCn0NCg0KI3BvcHVwIHsNCiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjQpOw0KICBwb3NpdGlvbjogZml4ZWQ7DQogIGxlZnQ6IDBweDsNCiAgd2lkdGg6IDEwMCU7DQogIHotaW5kZXg6IDEwMDsNCiAgaGVpZ2h0OiAxMDAlOw0KICBvdmVyZmxvdzogc2Nyb2xsOw0KfQ0KDQojbWFwcGluZy1kZXRhaWwsICN1c2VyLWRldGFpbCwgI2ZpbGUtZGV0YWlsLCAjcG9wdXAtY3VzdG9tIHsNCiAgYm94LXNoYWRvdzogMHB4IDVweCA0MHB4ICMwMDA7DQogIG1hcmdpbi10b3A6IDIwcHg7DQogIG1hcmdpbi1sZWZ0OiBhdXRvOw0KICBtYXJnaW4tcmlnaHQ6IGF1dG87DQogIA0KICBtYXgtd2lkdGg6IDgwMHB4Ow0KICBiYWNrZ3JvdW5kLWNvbG9yOiAjMjIyOw0KICBwYWRkaW5nOiAxMHB4Ow0KICBvdmVyZmxvdzphdXRvOw0KfQ0KDQojcG9wdXAtY3VzdG9tIGgzIHsNCiAgdGV4dC1hbGlnbjogY2VudGVyOw0KfQ0KDQojZmlsZS1kZXRhaWwgaW5wdXRbdHlwZT10ZXh0XSB7DQogIHdpZHRoOiAtd2Via2l0LWNhbGMoMTAwJSAtIDIwcHgpOw0KICB3aWR0aDogLW1vei1jYWxjKDEwMCUgLSAyMHB4KTsNCiAgd2lkdGg6IGNhbGMoMTAwJSAtIDIwcHgpOw0KfQ0KDQojbWFwcGluZy1kZXRhaWwgaW1nIHsNCiAgZGlzcGxheTogYmxvY2s7DQogIG1heC1oZWlnaHQ6IDMwcHg7DQogIG1hcmdpbi1ib3R0b206IDIwcHg7DQogIG1hcmdpbi1sZWZ0OiBhdXRvOw0KICBtYXJnaW4tcmlnaHQ6IGF1dG87DQp9DQoNCiNwb3B1cC1jdXN0b20gaW5wdXRbdHlwZT10ZXh0XSwgI3BvcHVwLWN1c3RvbSBpbnB1dFt0eXBlPXBhc3N3b3JkXSwgI21hcHBpbmctZGV0YWlsIGlucHV0W3R5cGU9dGV4dF0sICNjb250ZW50X3NldHRpbmdzIGlucHV0W3R5cGU9dGV4dF0sICNjb250ZW50X3NldHRpbmdzIGlucHV0W3R5cGU9cGFzc3dvcmRdew0KICBib3JkZXI6IHNvbGlkIDFweDsNCiAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDsNCiAgYmFja2dyb3VuZC1jb2xvcjogIzMzMzsNCiAgdGV4dC1hbGlnbjogbGVmdDsNCiAgd2lkdGg6IC13ZWJraXQtY2FsYygxMDAlIC0gMjBweCk7DQogIHdpZHRoOiAgICAtbW96LWNhbGMoMTAwJSAtIDIwcHgpOw0KICB3aWR0aDogICAgICAgICBjYWxjKDEwMCUgLSAyMHB4KTsNCn0NCg0KI3BvcHVwLWN1c3RvbSBpbnB1dFt0eXBlPXRleHRdLm5vdEF2YWlsYWJsZSB7DQogIGJvcmRlci1jb2xvcjogcmVkOw0KICBjb2xvcjogIzY2NjsNCiAgY3Vyc29yOiBub3QtYWxsb3dlZDsNCn0NCg0KI3BvcHVwLWN1c3RvbSBpbnB1dFt0eXBlPXRleHRdOmRpc2FibGVkIHsNCiAgY29sb3I6ICM2NjY7DQogIGN1cnNvcjogbm90LWFsbG93ZWQ7DQp9DQoNCiNtYXBwaW5nLWRldGFpbC10YWJsZSwgI3VzZXItZGV0YWlsLXRhYmxlIHsNCiAgZGlzcGxheTogaW5saW5lLXRhYmxlOw0KICB3aWR0aDogMTAwJTsNCn0NCg0KI3BvcHVwLWN1c3RvbSB0YWJsZSwgI2NvbnRlbnRfc2V0dGluZ3MgdGFibGUgew0KICBkaXNwbGF5OiBpbmxpbmUtdGFibGU7DQogIHRhYmxlLWxheW91dDogZml4ZWQ7DQogIHdpZHRoOiAxMDAlOw0KfQ0KDQoNCiNtYXBwaW5nLWRldGFpbC10YWJsZSB0ZCwgI3VzZXItZGV0YWlsLXRhYmxlIHRkIHsNCiAgcGFkZGluZzogMTBweCAwcHg7DQoNCn0NCg0KI21hcHBpbmctZGV0YWlsLXRhYmxlIHRkLmxlZnQsICN1c2VyLWRldGFpbC10YWJsZSB0ZC5sZWZ0LCAjcG9wdXAtY3VzdG9tIHRkLmxlZnQgew0KICB3aWR0aDogMzglOw0KfQ0KDQouaW50ZXJhY3Rpb24sICNpbnRlcmFjdGlvbiB7DQogIG1hcmdpbi10b3A6IDIwcHg7DQogIGRpc3BsYXk6IGlubGluZS1mbGV4Ow0KICBmbG9hdDogcmlnaHQ7DQp9DQoNCi5pbnRlcmFjdGlvbiBpbnB1dFt0eXBlPWJ1dHRvbl0sIC5pbnRlcmFjdGlvbiBpbnB1dFt0eXBlPXN1Ym1pdF0gew0KICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDAwOw0KICBtaW4td2lkdGg6IDEwMHB4Ow0KICBtYXJnaW46IDBweCAxMHB4Ow0KICB0ZXh0LWFsaWduOiBjZW50ZXI7DQp9DQoNCiNub3RpZmljYXRpb24gew0KICBkaXNwbGF5OiBibG9jazsNCiAgcG9zaXRpb246IGZpeGVkOw0KICByaWdodDogMHB4Ow0KICBoZWlnaHQ6IDEwMCU7DQogIHdpZHRoOiAyNTBweDsNCiAgDQogIGJhY2tncm91bmQtY29sb3I6ICMyMjI7DQogIGJveC1zaGFkb3c6IDBweCAwcHggMjBweCAjMDAwOw0KfQ0KDQojbm90aWZpY2F0aW9uIGg1IHsNCiAgYmFja2dyb3VuZC1jb2xvcjogIzEyMTIxMjsNCiAgcGFkZGluZzogNXB4IDEwcHggNXB4IDEwcHg7DQp9DQoNCiNub3RpZmljYXRpb24gcHJlIHsNCiAgcGFkZGluZzogMHB4IDEwcHggMHB4IDEwcHg7DQp9DQoNCiNub3RpZmljYXRpb24gcCB7DQogIGZvbnQtc2l6ZTogMTAgcHg7DQogIG1hcmdpbjogMHB4Ow0KICBwYWRkaW5nOiAwcHggMTBweCA1cHggMTBweDsNCn0NCg0KI25vdGlmaWNhdGlvbiAuZWxlbWVudCB7DQogIC8qcGFkZGluZzogMHB4IDVweDsqLw0KICBtYXJnaW46IDVweCA1cHg7DQogIGJvcmRlci1yYWRpdXM6IDVweDsNCiAgYmFja2dyb3VuZC1jb2xvcjogIzE4MTgxODsNCiAgYm9yZGVyLWxlZnQ6IDEwcHggc29saWQgZ3JlZW47DQp9DQoNCg0KQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2MjBweCl7DQogIGJvZHkgew0KICAgIHdpZHRoOiAxMDAlOw0KICAgIGJhY2tncm91bmQtY29sb3I6ICM0NDQ7DQogIH0NCg0KICBoMSB7DQogICAgZm9udC1zaXplOiAyNnB4Ow0KICAgIGxldHRlci1zcGFjaW5nOiAzcHg7DQogIH0NCg0KICBuYXYgcCB7DQogICAgZGlzcGxheTogYmxvY2s7DQogIH0NCg0KDQoNCiAgI2hlYWRlcl9jb25maWcgew0KICAgIGRpc3BsYXk6IGJsb2NrOw0KICAgIGhlaWdodDogMTAwcHg7DQogICAgYmFja2dyb3VuZDogdXJsKCIuLi9pbWcvbG9nb193XzYwMHgyMDAucG5nIik7DQogICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDsNCiAgICANCiAgICBiYWNrZ3JvdW5kLXNpemU6IDMwMHB4IDEwMHB4Ow0KICB9DQoNCiAgI3NjcmVlbkxvZyB7DQogICAgbWFyZ2luLWxlZnQ6IDMwMHB4Ow0KDQogICAgdHJhbnNpdGlvbjogbm9uZTsNCiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDsNCiAgICBib3JkZXItYm90dG9tOiBzb2xpZCAxcHggdHJhbnNwYXJlbnQ7DQogICAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggIzIyMjsNCiAgfQ0KDQogICNzZXR0aW5ncyB7DQogICAgLyoNCiAgICBoZWlnaHQ6IC13ZWJraXQtY2FsYygxMDAlIC0gMTAwcHgpOw0KICAgIGhlaWdodDogLW1vei1jYWxjKDEwMCUgLSAxMDBweCk7DQogICAgaGVpZ2h0OiBjYWxjKDEwMCUgLSAxMDBweCk7DQogICAgKi8NCiAgICBwb3NpdGlvbjogcmVsYXRpdmU7DQogICAgb3ZlcmZsb3c6IGF1dG87DQogIH0NCg0KDQogIC5zY3JlZW5Mb2dIaWRkZW4gew0KICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDBweCwgMHB4KTsNCiAgfQ0KDQoNCiAgI2JveCB7DQogICAgZGlzcGxheTogYmxvY2s7DQogICAgbWluLWhlaWdodDogNTAwcHg7DQogICAgbWF4LXdpZHRoOiA1MDBweDsNCiAgICBtYXJnaW46IDEwcHggYXV0bzsNCiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNDQ0Ow0KICAgIGJveC1zaGFkb3c6IDBweCA1cHggNXB4ICMyMjI7DQoNCiAgICBkaXNwbGF5OiBmbGV4Ow0KICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47DQogIH0NCg0KICAjc2V0dGluZ3MsICNzZXR0aW5ncy1mb290ZXIgew0KICAgIA0KICB9DQp9DQo=" + webUI["html/configuration.html"] = "PCFkb2N0eXBlIGh0bWw+CjxodG1sPgogIDxoZWFkPgogICAgPG1ldGEgY2hhcnNldD0idXRmLTgiPgogICAgPG1ldGEgbmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9IndpZHRoPWRldmljZS13aWR0aCwgaW5pdGlhbC1zY2FsZT0xLjAiIC8+IAogICAgPHRpdGxlPnhUZVZlPC90aXRsZT4KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iY3NzL3NjcmVlbi5jc3MiIHR5cGU9InRleHQvY3NzIj4KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iY3NzL2Jhc2UuY3NzIiB0eXBlPSJ0ZXh0L2NzcyI+CiAgICA8c2NyaXB0IGxhbmd1YWdlPSJqYXZhc2NyaXB0IiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ianMvY29uZmlndXJhdGlvbl90cy5qcyI+PC9zY3JpcHQ+CiAgICA8c2NyaXB0IGxhbmd1YWdlPSJqYXZhc2NyaXB0IiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ianMvbmV0d29ya190cy5qcyI+PC9zY3JpcHQ+CiAgICA8c2NyaXB0IGxhbmd1YWdlPSJqYXZhc2NyaXB0IiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ianMvbWVudV90cy5qcyI+PC9zY3JpcHQ+CiAgICA8c2NyaXB0IGxhbmd1YWdlPSJqYXZhc2NyaXB0IiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ianMvc2V0dGluZ3NfdHMuanMiPjwvc2NyaXB0PgogICAgPHNjcmlwdCBsYW5ndWFnZT0iamF2YXNjcmlwdCIgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9ImpzL2Jhc2VfdHMuanMiPjwvc2NyaXB0PgogIDwvaGVhZD4KCiAgICA8Ym9keSBvbmxvYWQ9ImphdmFzY3JpcHQ6IHJlYWR5Rm9yQ29uZmlndXJhdGlvbigwKTsiPgogICAgICAgICAgCiAgICAgIDxkaXYgaWQ9ImxvYWRpbmciIGNsYXNzPSJibG9jayI+CiAgICAgICAgPGRpdiBjbGFzcz0ibG9hZGVyIj48L2Rpdj4KICAgICAgPC9kaXY+CgogICAgICA8ZGl2IGlkPSJoZWFkZXIiIGNsYXNzPSJpbWdDZW50ZXIiPjwvZGl2PgogICAgICA8ZGl2IGlkPSJib3giPgogICAgICAgIAogICAgICAgIDx0YWJsZSBpZD0iY2xpZW50SW5mbyIgY2xhc3M9InZpc2libGUiPgogICAgICAgICAgPHRyPgogICAgICAgICAgICA8dGQgY2xhc3M9InRkS2V5Ij5WZXJzaW9uOjwvdGQ+CiAgICAgICAgICAgIDx0ZCBpZD0idmVyc2lvbiIgY2xhc3M9InRkVmFsIj4mbmJzcDs8L3RkPgogICAgICAgICAgICA8dGQgY2xhc3M9InRkS2V5Ij5PUzo8L3RkPgogICAgICAgICAgICA8dGQgaWQ9Im9zIiBjbGFzcz0idGRWYWwiPiZuYnNwOzwvdGQ+CiAgICAgICAgICA8L3RyPgogICAgICAgICAgPHRyPgogICAgICAgICAgICA8dGQgY2xhc3M9InRkS2V5Ij5VVUlEOjwvdGQ+CiAgICAgICAgICAgIDx0ZCBpZD0idXVpZCIgY2xhc3M9InRkVmFsIj4mbmJzcDs8L3RkPgogICAgICAgICAgICA8dGQgY2xhc3M9InRkS2V5Ij5BcmNoOjwvdGQ+CiAgICAgICAgICAgIDx0ZCBpZD0iYXJjaCIgY2xhc3M9InRkVmFsIj4mbmJzcDs8L3RkPgogICAgICAgICAgPC90cj4KICAgICAgICAgIDx0cj4KICAgICAgICAgICAgPHRkIGNsYXNzPSJ0ZEtleSI+U3RyZWFtczo8L3RkPgogICAgICAgICAgICA8dGQgaWQ9InN0cmVhbXMiIGNsYXNzPSJ0ZFZhbCI+Jm5ic3A7PC90ZD4KICAgICAgICAgICAgPHRkIGNsYXNzPSJ0ZEtleSI+RFZSOjwvdGQ+CiAgICAgICAgICAgIDx0ZCBpZD0iRFZSIiBjbGFzcz0idGRWYWwiPiZuYnNwOzwvdGQ+CiAgICAgICAgICA8L3RyPgogICAgICAgIDwvdGFibGU+CiAgICAgICAgCiAgICAgICAgPGRpdiBpZD0iaGVhZGxpbmUiPgogICAgICAgICAgPGgxIGlkPSJoZWFkLXRleHQiIGNsYXNzPSJjZW50ZXIiPkNvbmZpZ3VyYXRpb248L2gxPiAgICAgIAogICAgICAgIDwvZGl2PgogICAgICAgIDxwIGlkPSJlcnIiIGNsYXNzPSJlcnJvck1zZyBjZW50ZXIiPjwvcD4gICAKICAgICAgICA8ZGl2IGlkPSJjb250ZW50Ij4KICAgICAgICAgICAgCiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBpZD0iYm94LWZvb3RlciI+CiAgICAgICAgICA8aW5wdXQgaWQ9Im5leHQiIGNsYXNzPSIiIHR5cGU9ImJ1dHRvbiIgbmFtZT0ibmV4dCIgdmFsdWU9Ik5leHQiIG9uY2xpY2s9ImphdmFzY3JpcHQ6IHNhdmVXaXphcmQoKTsiPgogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KICAgIDwvYm9keT4KPC9odG1sPg==" + webUI["html/create-first-user.html"] = "PCFkb2N0eXBlIGh0bWw+CjxodG1sPgogIDxoZWFkPgogICAgPG1ldGEgY2hhcnNldD0idXRmLTgiPgogICAgPG1ldGEgbmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9IndpZHRoPWRldmljZS13aWR0aCwgaW5pdGlhbC1zY2FsZT0xLjAiIC8+IAogICAgPHRpdGxlPnhUZVZlPC90aXRsZT4KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iY3NzL3NjcmVlbi5jc3MiIHR5cGU9InRleHQvY3NzIj4KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iY3NzL2Jhc2UuY3NzIiB0eXBlPSJ0ZXh0L2NzcyI+CiAgICA8c2NyaXB0IGxhbmd1YWdlPSJqYXZhc2NyaXB0IiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ianMvbmV0d29ya190cy5qcyI+PC9zY3JpcHQ+CiAgICA8c2NyaXB0IGxhbmd1YWdlPSJqYXZhc2NyaXB0IiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ianMvYXV0aGVudGljYXRpb25fdHMuanMiPjwvc2NyaXB0PgogIDwvaGVhZD4KCiAgICA8Ym9keT4KICAgICAgICAgIAogICAgICA8ZGl2IGlkPSJoZWFkZXIiIGNsYXNzPSJpbWdDZW50ZXIiPjwvZGl2PgoKICAgICAgPGRpdiBpZD0iYm94Ij4KCiAgICAgICAgPGRpdiBpZD0iaGVhZGxpbmUiPgogICAgICAgICAgPGgxIGlkPSJoZWFkLXRleHQiIGNsYXNzPSJjZW50ZXIiPnt7LmFjY291bnQuaGVhZGxpbmV9fTwvaDE+CiAgICAgICAgPC9kaXY+CgogICAgICAgIDxwIGlkPSJlcnIiIGNsYXNzPSJlcnJvck1zZyBjZW50ZXIiPjwvcD4KCiAgICAgICAgPGRpdiBpZD0iY29udGVudCI+CgogICAgICAgICAgICA8Zm9ybSBpZD0iYXV0aGVudGljYXRpb24iIGFjdGlvbj0iIiBtZXRob2Q9InBvc3QiPgoKICAgICAgICAgICAgICA8aDU+e3suYWNjb3VudC51c2VybmFtZS50aXRsZX19OjwvaDU+CiAgICAgICAgICAgICAgPGlucHV0IGlkPSJ1c2VybmFtZSIgdHlwZT0idGV4dCIgbmFtZT0idXNlcm5hbWUiIHBsYWNlaG9sZGVyPSJVc2VybmFtZSIgdmFsdWU9IiI+CiAgICAgICAgICAgICAgPGg1Pnt7LmFjY291bnQucGFzc3dvcmQudGl0bGV9fTo8L2g1PgogICAgICAgICAgICAgIDxpbnB1dCBpZD0icGFzc3dvcmQiIHR5cGU9InBhc3N3b3JkIiBuYW1lPSJwYXNzd29yZCIgcGxhY2Vob2xkZXI9IlBhc3N3b3JkIiB2YWx1ZT0iIj4KICAgICAgICAgICAgICA8aDU+e3suYWNjb3VudC5jb25maXJtLnRpdGxlfX06PC9oNT4KICAgICAgICAgICAgICA8aW5wdXQgaWQ9ImNvbmZpcm0iICB0eXBlPSJwYXNzd29yZCIgbmFtZT0iY29uZmlybSIgIHBsYWNlaG9sZGVyPSJDb25maXJtIiB2YWx1ZT0iIj4KICAgICAgICAgICAgICAKICAgICAgICAgICAgPC9mb3JtPgoKICAgICAgICA8L2Rpdj4KICAgICAgICAKICAgICAgICA8ZGl2IGlkPSJib3gtZm9vdGVyIj4KICAgICAgICAgIDxpbnB1dCBpZD0ic3VibWl0IiBjbGFzcz0iIiB0eXBlPSJidXR0b24iIHZhbHVlPSJ7ey5idXR0b24uY3JhZXRlQWNjb3VudH19IiBvbmNsaWNrPSJqYXZhc2NyaXB0OiBsb2dpbigpOyI+CiAgICAgICAgPC9kaXY+CiAgICAgIAogICAgICAgIAogICAgICA8L2Rpdj4KICAgIDwvYm9keT4KPC9odG1sPg==" + webUI["html/css/base.css"] = "KiB7CiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lOwogIC1tb3otYXBwZWFyYW5jZTogbm9uZTsKICAtbXMtYXBwZWFyYW5jZTogbm9uZTsKICBmb250LWZhbWlseTogIkFyaWFsIiwgc2Fucy1zZXJpZjsKICBsZXR0ZXItc3BhY2luZzogMnB4Owp9CgovKgo6Oi13ZWJraXQtc2Nyb2xsYmFyIHsgCiAgICBkaXNwbGF5OiBub25lOyAKfQoqLwoKOjotd2Via2l0LXNjcm9sbGJhciB7CiAgd2lkdGg6IDEycHg7CiAgaGVpZ2h0OiAxMnB4Owp9CgoKOjotd2Via2l0LXNjcm9sbGJhci10cmFjayB7CiAgLXdlYmtpdC1ib3gtc2hhZG93OiBpbnNldCAwIDAgNnB4IHJnYmEoMCwgMCwgMCwgMC4zKTsKICBib3JkZXItcmFkaXVzOiA1cHg7Cgp9Cgo6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iIHsKICBib3JkZXItcmFkaXVzOiA1cHg7CiAgLXdlYmtpdC1ib3gtc2hhZG93OiBpbnNldCAwIDAgNnB4IHJnYmEoMCwgMCwgMCwgMC42KTsKICBiYWNrZ3JvdW5kLWNvbG9yOiAjNDQ0Owp9Cgo6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iOmhvdmVyIHsKICBiYWNrZ3JvdW5kOiAjMzMzOwp9Cgo6Oi13ZWJraXQtc2Nyb2xsYmFyLWNvcm5lciB7CiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7Cn0KCmEgewogIGNvbG9yOiAjMDBFNkZGOwp9CgpodG1sLApib2R5IHsKICBjb2xvcjogI2ZmZjsKICBtYXJnaW46IDBweCBhdXRvOwogIGhlaWdodDogMTAwJTsKICBmb250LXNpemU6IDE0cHg7Cn0KCmgyIHsKICBmb250LXNpemU6IDI0cHg7CiAgbGV0dGVyLXNwYWNpbmc6IDJweDsKfQoKaDMgewogIGZvbnQtc2l6ZTogMjJweDsKICBsZXR0ZXItc3BhY2luZzogMXB4Owp9CgpoNCB7CiAgZm9udC1zaXplOiAyMHB4OwogIGxldHRlci1zcGFjaW5nOiAxcHg7CiAgbGluZS1oZWlnaHQ6IDEuNWVtOwoKfQoKaDUgewogIGZvbnQtc2l6ZTogMTZweDsKICBsZXR0ZXItc3BhY2luZzogMXB4OwogIGxpbmUtaGVpZ2h0OiAxLjJlbTsKICBtYXJnaW46IDI1cHggMHB4IDEwcHggMHB4Owp9CgpociB7CiAgYm9yZGVyOiAwOwogIGhlaWdodDogMXB4OwogIGJhY2tncm91bmQ6ICMzMzM7CiAgbWFyZ2luOiAxMHB4IDBweDsKfQoKcCB7CiAgbWFyZ2luOiAycHg7CiAgcGFkZGluZzogMnB4IDVweDsKfQoKcHJlIHsKICBtYXJnaW46IDBweCAwcHggNXB4IDBweDsKICBmb250LXNpemU6IDEycHg7CiAgY29sb3I6ICNkZGQ7CiAgbGV0dGVyLXNwYWNpbmc6IDFweDsKICB3aGl0ZS1zcGFjZTogcHJlLXdyYXA7CiAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZTsKICBmb250LXNpemU6IDEycHg7CiAgZm9udC1zdHlsZTogbm9ybWFsOwogIGZvbnQtdmFyaWFudDogbm9ybWFsOwogIGxpbmUtaGVpZ2h0OiAxLjZlbTsKfQoKbGFiZWwgewogIG1hcmdpbi1ib3R0b206IDIwcHg7CiAgZGlzcGxheTogYmxvY2s7Cn0KCmxpIHsKICBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7CiAgYmFja2dyb3VuZC1jb2xvcjogIzExMTsKICBwYWRkaW5nOiAxMHB4IDIwcHg7CiAgY3Vyc29yOiBwb2ludGVyOwogIGJvcmRlci1sZWZ0OiBzb2xpZCAycHggIzExMTsKICB0cmFuc2l0aW9uOiBhbGwgMC4zOwp9CgpsaTpob3ZlciB7CiAgYm9yZGVyLWNvbG9yOiAjMDBFNkZGCn0KCnNlbGVjdCB7CiAgY3Vyc29yOiBwb2ludGVyOwogIHdpZHRoOiBjYWxjKDEwMCUgKyAycHgpOwogIGJvcmRlcjogc29saWQgMHB4ICMwMEU2RkY7CiAgYm9yZGVyLXJhZGl1czogMHB4OwogIG91dGxpbmU6IG5vbmU7CiAgY29sb3I6ICNmZmY7CiAgcGFkZGluZzogOXB4IDEwcHg7CiAgZGlzcGxheTogYmxvY2s7CiAgYmFja2dyb3VuZC1jb2xvcjogIzMzMzsKICBmb250LXNpemU6IDE0cHg7CiAgbWFyZ2luOiA1cHggMHB4IDVweCAwcHg7Cn0KCnNlbGVjdDpmb2N1cyB7CiAgb3V0bGluZTogbm9uZTsKfQoKaW5wdXQgewogIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTsKICBtYXJnaW46IDVweCAwcHg7CiAgcGFkZGluZzogMi41cHggMTBweDsKICBvdXRsaW5lOiBub25lOwogIGZvbnQtc2l6ZTogMTRweDsKfQoKaW5wdXRbdHlwZT1idXR0b25dLAppbnB1dFt0eXBlPXN1Ym1pdF0gewogIGN1cnNvcjogcG9pbnRlcjsKICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDAwOwogIG1hcmdpbjogMTBweCAxMHB4OwogIHBhZGRpbmc6IDEwcHggMjVweDsKICBib3JkZXI6IHNvbGlkIDBweDsKICBib3JkZXItY29sb3I6ICMwMDA7CiAgYm9yZGVyLXJhZGl1czogM3B4OwogIG91dGxpbmU6IG5vbmU7CiAgY29sb3I6ICNmZmY7Cn0KCmlucHV0W3R5cGU9YnV0dG9uXTpmb2N1cyB7CiAgb3V0bGluZTogbm9uZTsKfQoKaW5wdXRbdHlwZT1idXR0b25dOmhvdmVyIHsKICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDBFNkZGOwogIGNvbG9yOiAjMDAwOwp9CgppbnB1dFt0eXBlPWJ1dHRvbl06aG92ZXIuZGVsZXRlIHsKICBiYWNrZ3JvdW5kLWNvbG9yOiByZWQ7CiAgY29sb3I6ICNmZmY7Cn0KCmlucHV0W3R5cGU9dGV4dF0sCmlucHV0W3R5cGU9c2VhcmNoXSwKaW5wdXRbdHlwZT1wYXNzd29yZF0gewogIGNvbG9yOiAjZmZmOwogIHdpZHRoOiAtd2Via2l0LWNhbGMoMTAwJSAtIDBweCk7CiAgd2lkdGg6IC1tb3otY2FsYygxMDAlIC0gMHB4KTsKICB3aWR0aDogY2FsYygxMDAlIC0gMHB4KTsKICBvdXRsaW5lOiBub25lOwogIGJvcmRlcjogc29saWQgMXB4IHRyYW5zcGFyZW50OwogIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50OwogIGJvcmRlci1ib3R0b20tY29sb3I6ICM1NTU7CiAgYm9yZGVyLXJhZGl1czogMHB4OwogIHBhZGRpbmc6IDhweCAxMHB4Owp9CgppbnB1dFt0eXBlPSJjaGVja2JveCJdIHsKICBib3JkZXI6IHNvbGlkIDFweCAjMDBFNkZGOwogIGJhY2tncm91bmQtY29sb3I6ICMzMzM7CiAgaGVpZ2h0OiAyNXB4OwogIHdpZHRoOiAyNXB4OwogIGN1cnNvcjogcG9pbnRlcjsKICAvKgogIC13ZWJraXQtYXBwZWFyYW5jZTogY2hlY2tib3g7CiAgKi8KfQoKaW5wdXRbdHlwZT0iY2hlY2tib3giXTpjaGVja2VkIHsKICBjb2xvcjogI2ZmZjsKICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDBFNkZGOwogIC8qZGlzcGxheTogaW5saW5lLWJsb2NrOyovCn0KCmlucHV0W3R5cGU9ImNoZWNrYm94Il06YmVmb3JlIHsKICBwb3NpdGlvbjogaW5pdGlhbDsKICBsZWZ0OiAwcHg7CiAgbWFyZ2luLWxlZnQ6IC00cHg7CiAgY29udGVudDogIiAiOwp9CgppbnB1dFt0eXBlPSJjaGVja2JveCJdOmNoZWNrZWQ6YmVmb3JlIHsKICBwb3NpdGlvbjogaW5pdGlhbDsKICBsZWZ0OiAwcHg7CiAgbWFyZ2luLWxlZnQ6IC0zcHg7CiAgY29udGVudDogIuKckyI7CiAgY29sb3I6ICMwMDA7Cn0KCgppbnB1dFt0eXBlPWJ1dHRvbl0uY2FuY2VsIHsKCiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7CiAgYm9yZGVyLWNvbG9yOiByZWQ7Cn0KCmlucHV0W3R5cGU9YnV0dG9uXS5zYXZlIHsKICBiYWNrZ3JvdW5kLWNvbG9yOiAjMTExOwogIGZsb2F0OiByaWdodDsKfQoKCmlucHV0W3R5cGU9YnV0dG9uXS5ibGFjaywKaW5wdXRbdHlwZT1zdWJtaXRdLmJsYWNrIHsKICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDAwOwogIGJvcmRlci1jb2xvcjogIzAwMDsKfQoKaW5wdXRbdHlwZT1idXR0b25dLmNlbnRlciB7CiAgbWFyZ2luLXJpZ2h0OiBhdXRvOwogIG1hcmdpbi1sZWZ0OiBhdXRvOwogIGJhY2tncm91bmQtY29sb3I6ICMwMDA7CiAgYm9yZGVyLWNvbG9yOiAjMDAwOwp9CgoucG9pbnRlciB7CiAgY3Vyc29yOiBwb2ludGVyOwp9CgoucG9pbnRlcjpob3ZlciB7CiAgY29sb3I6ICMwMEU2RkY7CiAgY3Vyc29yOiBwb2ludGVyOwp9Cgouc29ydFRoaXMgewogIGNvbG9yOiAjMDBFNkZGOwp9CgoudzQwcHggewogIG1heC13aWR0aDogNDBweDsKfQoKLnc1MHB4IHsKICBtYXgtd2lkdGg6IDUwcHg7Cn0KCi53ODBweCB7CiAgbWF4LXdpZHRoOiA4MHB4Owp9CgoudzE1MHB4IHsKICBtYXgtd2lkdGg6IDE1MHB4Owp9CgoudzIwMHB4IHsKICBtYXgtd2lkdGg6IDIwMHB4OwogIG1pbi13aWR0aDogMTAwcHg7CiAgd2lkdGg6IDIwMHB4OwogIG92ZXJmbG93LXg6IGhpZGRlbjsKICB3aGl0ZS1zcGFjZTogbm93cmFwOwogIG92ZXJmbG93OiBoaWRkZW47CiAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7Cn0KCi53MzAwcHggewogIG1heC13aWR0aDogMzAwcHg7Cn0KCi53MjIwcHggewogIG1heC13aWR0aDogMjIwcHg7CiAgY3Vyc29yOiBhbGlhczsKfQoKLmZvb3RlciB7CiAgZm9udC1zaXplOiAxMHB4Owp9CgouY2VudGVyIHsKICB0ZXh0LWFsaWduOiBjZW50ZXI7Cn0KCi5zY3JlZW5Mb2dIaWRkZW4gewogIHRyYW5zZm9ybTogdHJhbnNsYXRlKDBweCwgLTExMHB4KTsKfQoKLmJvcmRlclNwYWNlIHsKICBtYXJnaW4tYm90dG9tOiAzMHB4Owp9CgouYmxvY2sge30KCi5ub25lIHsKICBkaXNwbGF5OiBub25lOwp9CgoKLm5vdFZpc2libGUgewogIGhlaWdodDogMHB4OwogIGRpc3BsYXk6IG5vbmU7CiAgb3BhY2l0eTogMDsKICBib3JkZXItYm90dG9tOiAjMDAwIHNvbGlkIDBweDsKCn0KCi52aXNpYmxlIHsKICBvcGFjaXR5OiAxOwogIGRpc3BsYXk6IGJsb2NrOwogIGJvcmRlci1ib3R0b206ICM0NDQgc29saWQgMXB4OwogIHBhZGRpbmc6IDEwcHg7Cn0KCi5mbG9hdFJpZ2h0IHsKICBmbG9hdDogcmlnaHQ7Cn0KCi5mbG9hdExlZnQgewogIGZsb2F0OiBsZWZ0Owp9CgoubWVudS1hY3RpdmUgewogIGJhY2tncm91bmQtY29sb3I6ICMwMEU2RkY7Cn0KCi5tZW51LW5vdEFjdGl2ZSB7fQoKI2JyYW5jaCB7CiAgZGlzcGxheTogdGFibGU7CiAgbWFyZ2luOiBhdXRvOwogIGNvbG9yOiByZWQ7Cn0KCiNpbnRlcmFjdGlvbiB7CiAgbWFyZ2luLWJvdHRvbTogMTAwcHg7CiAgdGV4dC1hbGlnbjogY2VudGVyOwogIGJvcmRlci1ib3R0b206IHNvbGlkIDBweCAjNzc3Owp9CgoKLmhhbGYgewogIGRpc3BsYXk6IGJsb2NrOwogIHdpZHRoOiA0NSU7Cn0KCi5tZW51IHsKICBib3JkZXI6IHNvbGlkIDFweCAjMDBFNkZGOwp9CgouaW5mb01zZyB7CiAgY29sb3I6ICNhYWE7Cn0KCi5lcnJvck1zZyB7CiAgY29sb3I6IHJlZDsKfQoKLndhcm5pbmdNc2cgewogIGNvbG9yOiB5ZWxsb3c7Cn0KCi5kZWJ1Z01zZyB7CiAgY29sb3I6IG1hZ2VudGE7Cn0KCi5OZXdzLAouTW92aWUsCi5TZXJpZXMsCi5TcG9ydHMsCi5LaWRzIHsKICBib3JkZXItbGVmdDogc29saWQgMnB4Cn0KCi5OZXdzIHsKICBib3JkZXItY29sb3I6IHRvbWF0bwp9CgouTW92aWUgewogIGJvcmRlci1jb2xvcjogcm95YWxibHVlOwp9CgouU2VyaWVzIHsKICBib3JkZXItY29sb3I6IGdvbGQ7Cn0KCi5TcG9ydHMgewogIGJvcmRlci1jb2xvcjogeWVsbG93Z3JlZW47Cn0KCi5LaWRzIHsKICBib3JkZXItY29sb3I6IG1lZGl1bXB1cnBsZTsKfQoKLyogTG9hZGluZyAqLwojbG9hZGluZyB7CiAgbGVmdDogMHB4OwogIHRvcDogMHB4OwogIHotaW5kZXg6IDEwMDAwOwogIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuOCk7CiAgbWFyZ2luOiBhdXRvOwogIHdpZHRoOiAxMDAlOwogIGhlaWdodDogMTAwJTsKfQoKCi5sb2FkZXIgewogIGJvcmRlcjogNXB4IHNvbGlkIHRyYW5zcGFyZW50OwogIGJvcmRlci1yYWRpdXM6IDUwJTsKICBib3JkZXItdG9wOiA1cHggc29saWQgIzAwRTZGRjsKICBib3JkZXItYm90dG9tOiA1cHggc29saWQgIzAwRTZGRjsKICB3aWR0aDogNTBweDsKICBoZWlnaHQ6IDUwcHg7CiAgLXdlYmtpdC1hbmltYXRpb246IHNwaW4gMS4ycyBsaW5lYXIgaW5maW5pdGU7CiAgYW5pbWF0aW9uOiBzcGluIDEuMnMgbGluZWFyIGluZmluaXRlOwoKICBwb3NpdGlvbjogZml4ZWQ7CiAgbWFyZ2luOiBhdXRvOwoKICB0b3A6IDA7CiAgcmlnaHQ6IDA7CiAgYm90dG9tOiAwOwogIGxlZnQ6IDA7Cgp9CgpALXdlYmtpdC1rZXlmcmFtZXMgc3BpbiB7CiAgMCUgewogICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTsKICB9CgogIDEwMCUgewogICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpOwogIH0KfQoKQGtleWZyYW1lcyBzcGluIHsKICAwJSB7CiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTsKICB9CgogIDEwMCUgewogICAgdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKTsKICB9Cn0=" + webUI["html/css/screen.css"] = "bmF2IGltZyB7CiAgZGlzcGxheTogYmxvY2s7CiAgbWF4LWhlaWdodDogMjBweDsKICBtYXgtd2lkdGg6IDIwcHg7CiAgZmxvYXQ6IGxlZnQ7Cn0KCm5hdiBwIHsKICB0ZXh0LWFsaWduOiBsZWZ0OwogIHBhZGRpbmc6IDBweCAzMHB4Owp9CgojbGF5b3V0IHsKICBkaXNwbGF5OiBibG9jazsKICBoZWlnaHQ6IDEwMCU7Cn0KCgoubGF5b3V0LWxlZnQgewogIGRpc3BsYXk6IGJsb2NrOwogIG1pbi13aWR0aDogMTUwcHg7CiAgbWF4LXdpZHRoOiAyMCU7CiAgYmFja2dyb3VuZC1jb2xvcjogIzExMTsKICBoZWlnaHQ6IGluaGVyaXQ7CiAgZmxvYXQ6IGxlZnQ7Cn0KCi5sYXlvdXQtcmlnaHQgewogIGRpc3BsYXk6IGJsb2NrOwogIGJhY2tncm91bmQtY29sb3I6ICM0NDQ7Cn0KCiNtZW51LXdyYXBwZXIgewogIGhlaWdodDogMTAwJTsKfQoKCiNsb2dvIHsKICBkaXNwbGF5OiBibG9jazsKICBtaW4td2lkdGg6IDE4MHB4OwogIHdpZHRoOiAxMDAlOwogIGhlaWdodDogMTAwcHg7CiAgYmFja2dyb3VuZDogdXJsKCIuLi9pbWcvbG9nb193XzYwMHgyMDAucG5nIik7CiAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDsKICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7CiAgYmFja2dyb3VuZC1zaXplOiAxMDAlOwp9CgoKI3BhZ2UgewogIG1heC13aWR0aDogOTUwcHg7CiAgbWFyZ2luOiBhdXRvOwogIGJhY2tncm91bmQtY29sb3I6ICM0NDQ7CgogIC8qCiAgaGVpZ2h0OiAtd2Via2l0LWNhbGMoMTAwJSAtIDEzMHB4KTsKICBoZWlnaHQ6IC1tb3otY2FsYygxMDAlIC0gMTMwcHgpOwogIGhlaWdodDogY2FsYygxMDAlIC0gMTMwcHgpOwogICovCgogIG1pbi1oZWlnaHQ6IC13ZWJraXQtY2FsYygxMDAlIC0gMTIwcHgpOwogIG1pbi1oZWlnaHQ6IC1tb3otY2FsYygxMDAlIC0gMTIwcHgpOwogIG1pbi1oZWlnaHQ6IGNhbGMoMTAwJSAtIDEyMHB4KTsKCgogIGJveC1zaGFkb3c6IDBweCA1cHggNXB4ICMyMjI7Cgp9CgojdWlTZXR0aW5nIHsKICBmbG9hdDogcmlnaHQ7CiAgbWFyZ2luLXJpZ2h0OiAyNXB4Owp9CgojYm94IGlucHV0W3R5cGU9dGV4dF0sCiNib3ggaW5wdXRbdHlwZT1wYXNzd29yZF0gewogIHdpZHRoOiAtd2Via2l0LWNhbGMoMTAwJSAtIDIwcHgpOwogIHdpZHRoOiAtbW96LWNhbGMoMTAwJSAtIDIwcHgpOwogIHdpZHRoOiBjYWxjKDEwMCUgLSAyMHB4KTsKfQoKI2JveCBpbnB1dFt0eXBlPXN1Ym1pdF0gewogIG1hcmdpbjogNTBweCBhdXRvOwp9Cgojc2V0dGluZ3MgewogIGRpc3BsYXk6IGJsb2NrOwogIHBhZGRpbmc6IDEwcHggMTBweDsKfQoKI3NldHRpbmdzIGg1IHsKICBtYXJnaW46IDUwcHggMHB4IDEwcHggMHB4Owp9CgojY29udGVudC1pbnRlcmFjdGlvbiAuc2VhcmNoIHsKICB3aWR0aDogMjAwcHg7CiAgYm9yZGVyOiAxcHggc29saWQgIzAwMDsKICBwYWRkaW5nOiA5cHg7CiAgYmFja2dyb3VuZC1jb2xvcjogIzMzMzsKICBtYXJnaW46IDEwcHg7CiAgZmxvYXQ6IHJpZ2h0OwogIGJvcmRlci1yYWRpdXM6IDNweDsKCn0KCiNteVN0cmVhbXMgewogIHBvc2l0aW9uOiBmaXhlZDsKICBib3R0b206IDBweDsKICBiYWNrZ3JvdW5kLWNvbG9yOiAjMTExOwogIHdpZHRoOiAxMDAlOwogIG1heC13aWR0aDogOTUwcHg7CgogIC8qCiAgbWF4LWhlaWdodDogMTAwcHg7CiAgKi8KICBtYXJnaW4tYm90dG9tOiAwcHg7Cn0KCiNteVN0cmVhbXMgaW1nIHsKICB3aWR0aDogNCU7CiAgcGFkZGluZzogMnB4IDVweDsKICBjdXJzb3I6IHBvaW50ZXI7CiAgZmxvYXQ6IHJpZ2h0Owp9Cgojc2V0dGluZ3MtZm9vdGVyIHt9CgoKLyogV2l6YXJkKi8KI2JveCB7CiAgYmFja2dyb3VuZC1jb2xvcjogIzQ0NDsKICBtaW4taGVpZ2h0OiA0MDBweDsKCiAgZGlzcGxheTogZmxleDsKICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsKfQoKI2JveCBwIHsKICBwYWRkaW5nOiAxMHB4IDBweDsKfQoKI2JveC1mb290ZXIgewogIG1hcmdpbi10b3A6IGF1dG87Cn0KCiNib3gtZm9vdGVyIHsKICBtYXJnaW46IGF1dG87CiAgcGFkZGluZzogMTBweDsKfQoKI2hlYWRsaW5lIHsKICBiYWNrZ3JvdW5kLWNvbG9yOiAjMjIyOwogIGJvcmRlci1ib3R0b206IHNvbGlkIDJweCAjMjIyOwogIHRyYW5zaXRpb246IGFsbCAwLjVzOwogIHBhZGRpbmc6IDEwcHggMHB4OwogIGRpc3BsYXk6IGJsb2NrOwp9CgojY29udGVudCB7CiAgZGlzcGxheTogYmxvY2s7CiAgb3ZlcmZsb3c6IGF1dG87CiAgcGFkZGluZzogMTBweDsKfQoKLyogLS0tICovCgoKI2NsaWVudEluZm8sCiNhY3RpdmVTdHJlYW1zLAojaW5hY3RpdmVTdHJlYW1zIHsKICBmb250LWZhbWlseTogbW9ub3NwYWNlOwogIGRpc3BsYXk6IGJsb2NrOwogIGZvbnQtc2l6ZTogOXB4OwogIGJhY2tncm91bmQtY29sb3I6ICMxMTE7CiAgY29sb3I6ICMwMEU2RkY7CiAgYm9yZGVyLWJvdHRvbTogc29saWQgMHB4OwogIDsKICBwYWRkaW5nOiAwcHg7CiAgbGV0dGVyLXNwYWNpbmc6IDFweDsKICBvdmVyZmxvdy14OiBoaWRkZW47CiAgYm9yZGVyLXNwYWNpbmc6IDRweCA0cHg7CiAgYm9yZGVyLWJvdHRvbTogc29saWQgMXB4ICM0NDQ7Cn0KCiNteVN0cmVhbXNCb3ggewogIHBvc2l0aW9uOiByZWxhdGl2ZTsKICBwYWRkaW5nOiAwcHg7CiAgLypoZWlnaHQ6IDEwMHB4OyovCiAgbWF4LWhlaWdodDogMTUwcHg7CiAgYmFja2dyb3VuZC1jb2xvcjogIzExMTsKICBjb2xvcjogd2hpdGU7CiAgZGlzcGxheTogZmxleDsKICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICBhbGlnbi1pdGVtczogY2VudGVyOwp9Cgojb3BlblN0cmVhbXMgewogIHdpZHRoOiAyMHB4OwogIGhlaWdodDogMjBweDsKICBjdXJzb3I6IHBvaW50ZXI7CiAgZmxvYXQ6IHJpZ2h0OwogIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICByaWdodDogMHB4OwogIGJvdHRvbTogMHB4OwogIGJhY2tncm91bmQ6IHVybCgiLi4vaW1nL3RvdWNoLnBuZyIpOwogIGJhY2tncm91bmQtY29sb3I6ICMxMTE7CgogIGJhY2tncm91bmQtcG9zaXRpb246IGJvdHRvbSByaWdodDsKfQoKI2FsbFN0cmVhbXMgewogIHdpZHRoOiAxMDAlOwogIGhlaWdodDogMTAwJTsKICBwYWRkaW5nOiAycHg7Cn0KCiNhY3RpdmVTdHJlYW1zLAojaW5hY3RpdmVTdHJlYW1zIHsKICBvdmVyZmxvdy15OiBzY3JvbGw7CiAgd2lkdGg6IDUwJTsKICBtYXgtaGVpZ2h0OiAxMDBweDsKICBmbG9hdDogbGVmdDsKfQoKI2FjdGl2ZVN0cmVhbXMgLnRkS2V5LAojaW5hY3RpdmVTdHJlYW1zIC50ZEtleSB7CiAgd2lkdGg6IDc1cHg7Cn0KCgoKCiNpbmFjdGl2ZVN0cmVhbXMgLnRkS2V5IHsKICBjb2xvcjogcmVkOwp9CgojY2xpZW50SW5mbyAudGRWYWwsCiNsb2dJbmZvIC50ZFZhbCwKI2FjdGl2ZVN0cmVhbXMgLnRkVmFsLAojaW5hY3RpdmVTdHJlYW1zIC50ZFZhbCwKI21hcHBpbmdJbmZvIC50ZFZhbCB7CiAgY29sb3I6ICNhYWE7CiAgd2hpdGUtc3BhY2U6IGluaGVyaXQ7Cn0KCiNjbGllbnRJbmZvIC50ZFZhbExpbmssCiNsb2dJbmZvIC50ZFZhbExpbmssCiNhY3RpdmVTdHJlYW1zIC50ZFZhbExpbmssCiNpbmFjdGl2ZVN0cmVhbXMgLnRkVmFsTGluaywKI21hcHBpbmdJbmZvIC50ZFZhbExpbmsgewogIGNvbG9yOiBsaW1lOwogIHdoaXRlLXNwYWNlOiBpbmhlcml0Owp9CgojYm94LXdyYXBwZXIgewogIGRpc3BsYXk6IGlubGluZS1ibG9jazsKICB3aWR0aDogMTAwJTsKCiAgb3ZlcmZsb3cteTogc2Nyb2xsOwp9CgojY29udGVudF90YWJsZSwKI21hcHBpbmctZGV0YWlsLXRhYmxlLAojY29udGVudF90YWJsZSB7CiAgZGlzcGxheTogdGFibGU7CgogIGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7CiAgb3ZlcmZsb3cteTogc2Nyb2xsOwogIHdpZHRoOiAxMDAlOwp9CgoKI2NvbnRlbnRfdGFibGUgLmNvbnRlbnRfdGFibGVfaGVhZGVyIHsKICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzMzOwogIGhlaWdodDogNTBweDsKICBib3JkZXItYm90dG9tOiBzb2xpZCAxcHggIzExMTsKICBib3JkZXItbGVmdDogc29saWQgM3B4ICMzMzM7CiAgY3Vyc29yOiBhdXRvOwoKfQoKCnRib2R5IHsKICB3aWR0aDogMTAwJTsKfQoKCi50YWJsZUVsbGlwc2lzIHsKICB3aWR0aDogMTUwcHg7CiAgb3ZlcmZsb3c6IGhpZGRlbjsKICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKICB3aGl0ZS1zcGFjZTogbm93cmFwOwp9CgojY29udGVudF90YWJsZSBpbWcgewogIGRpc3BsYXk6IGJsb2NrOwogIG1heC1oZWlnaHQ6IDI4cHg7CiAgbWFyZ2luLWxlZnQ6IGF1dG87CiAgbWFyZ2luLXJpZ2h0OiBhdXRvOwogIG1heC13aWR0aDogMzBweDsKfQoKI2NvbnRlbnRfdGFibGUgdHIgewogIGJvcmRlci1sZWZ0OiBzb2xpZCAzcHggNDQ0OwogIGJvcmRlci1ib3R0b206IHNvbGlkIDFweCAjMzMzOwogIGN1cnNvcjogcG9pbnRlcjsKfQoKI2NvbnRlbnRfdGFibGUgdHI6aG92ZXIgewogIGJhY2tncm91bmQtY29sb3I6ICMzMzM7Cn0KCiNjb250ZW50X3RhYmxlIHRkIHsKCiAgcGFkZGluZzogMHB4IDJweDsKfQoKI2NvbnRlbnRfdGFibGUgaW5wdXRbdHlwZT10ZXh0XSB7CiAgd2lkdGg6IDgwJTsKICBtaW4td2lkdGg6IDM1cHg7CiAgbWF4LXdpZHRoOiA2MHB4OwogIGJvcmRlcjogMHB4OwogIGJhY2tncm91bmQtY29sb3I6ICMzMzM7CiAgbWFyZ2luLWxlZnQ6IDVweDsKICB0ZXh0LWFsaWduOiBsZWZ0Owp9CgojY29udGVudF90YWJsZSBpbnB1dFt0eXBlPWNoZWNrYm94XSB7CiAgbWF4LXdpZHRoOiAyNXB4OwogIG1hcmdpbjogYXV0bzsKfQoKCi5zaG93QnVsayB7CiAgZGlzcGxheTogYmxvY2s7Cn0KCi5oaWRlQnVsayB7CiAgZGlzcGxheTogbm9uZTsKfQoKLm5vQnVsayB7fQoKI2NvbnRlbnRfdGFibGUgdHIuYWN0aXZlRVBHIHsKICBib3JkZXItbGVmdDogc29saWQgM3B4IGxhd25ncmVlbjsKfQoKI2NvbnRlbnRfdGFibGUgdHIubm90QWN0aXZlRVBHIHsKICBib3JkZXItbGVmdDogc29saWQgM3B4IHJlZDsKfQoKCiNsb2dTY3JlZW4gcCB7CiAgd2hpdGUtc3BhY2U6IHByZTsKICBmb250LXNpemU6IDEwcHg7CiAgLyoKICBsaW5lLWhlaWdodDogMS42ZW07CiAgZm9udC1mYW1pbHk6ICJBcmlhbCIsIHNhbnMtc2VyaWY7CiAgKi8KICBsZXR0ZXItc3BhY2luZzogMXB4OwogIGZvbnQtZmFtaWx5OiBtb25vc3BhY2U7CiAgZm9udC1zaXplOiAxMnB4OwogIGZvbnQtc3R5bGU6IG5vcm1hbDsKICBmb250LXZhcmlhbnQ6IG5vcm1hbDsKICBsaW5lLWhlaWdodDogMS42ZW07Cn0KCiNwb3B1cCB7CiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjQpOwogIHBvc2l0aW9uOiBmaXhlZDsKICBsZWZ0OiAwcHg7CiAgd2lkdGg6IDEwMCU7CiAgei1pbmRleDogMTAwOwogIGhlaWdodDogMTAwJTsKICBvdmVyZmxvdzogc2Nyb2xsOwp9CgojbWFwcGluZy1kZXRhaWwsCiN1c2VyLWRldGFpbCwKI2ZpbGUtZGV0YWlsLAojcG9wdXAtY3VzdG9tIHsKICBib3gtc2hhZG93OiAwcHggNXB4IDQwcHggIzAwMDsKICBtYXJnaW4tdG9wOiAyMHB4OwogIG1hcmdpbi1sZWZ0OiBhdXRvOwogIG1hcmdpbi1yaWdodDogYXV0bzsKCiAgbWF4LXdpZHRoOiA4MDBweDsKICBiYWNrZ3JvdW5kLWNvbG9yOiAjMjIyOwogIHBhZGRpbmc6IDEwcHg7CiAgb3ZlcmZsb3c6IGF1dG87Cn0KCiNwb3B1cC1jdXN0b20gaDMgewogIHRleHQtYWxpZ246IGNlbnRlcjsKfQoKI2ZpbGUtZGV0YWlsIGlucHV0W3R5cGU9dGV4dF0gewogIHdpZHRoOiAtd2Via2l0LWNhbGMoMTAwJSAtIDIwcHgpOwogIHdpZHRoOiAtbW96LWNhbGMoMTAwJSAtIDIwcHgpOwogIHdpZHRoOiBjYWxjKDEwMCUgLSAyMHB4KTsKfQoKI21hcHBpbmctZGV0YWlsIGltZyB7CiAgZGlzcGxheTogYmxvY2s7CiAgbWF4LWhlaWdodDogMzBweDsKICBtYXJnaW4tYm90dG9tOiAyMHB4OwogIG1hcmdpbi1sZWZ0OiBhdXRvOwogIG1hcmdpbi1yaWdodDogYXV0bzsKfQoKI3BvcHVwLWN1c3RvbSBpbnB1dFt0eXBlPXRleHRdLAojcG9wdXAtY3VzdG9tIGlucHV0W3R5cGU9cGFzc3dvcmRdLAojbWFwcGluZy1kZXRhaWwgaW5wdXRbdHlwZT10ZXh0XSwKI2NvbnRlbnRfc2V0dGluZ3MgaW5wdXRbdHlwZT10ZXh0XSwKI2NvbnRlbnRfc2V0dGluZ3MgaW5wdXRbdHlwZT1wYXNzd29yZF0gewogIGJvcmRlcjogc29saWQgMXB4OwogIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7CiAgYmFja2dyb3VuZC1jb2xvcjogIzMzMzsKICB0ZXh0LWFsaWduOiBsZWZ0OwogIHdpZHRoOiAtd2Via2l0LWNhbGMoMTAwJSAtIDIwcHgpOwogIHdpZHRoOiAtbW96LWNhbGMoMTAwJSAtIDIwcHgpOwogIHdpZHRoOiBjYWxjKDEwMCUgLSAyMHB4KTsKfQoKI3BvcHVwLWN1c3RvbSBpbnB1dFt0eXBlPXRleHRdLm5vdEF2YWlsYWJsZSB7CiAgYm9yZGVyLWNvbG9yOiByZWQ7CiAgY29sb3I6ICM2NjY7CiAgY3Vyc29yOiBub3QtYWxsb3dlZDsKfQoKI3BvcHVwLWN1c3RvbSBpbnB1dFt0eXBlPXRleHRdOmRpc2FibGVkIHsKICBjb2xvcjogIzY2NjsKICBjdXJzb3I6IG5vdC1hbGxvd2VkOwp9CgojbWFwcGluZy1kZXRhaWwtdGFibGUsCiN1c2VyLWRldGFpbC10YWJsZSB7CiAgZGlzcGxheTogaW5saW5lLXRhYmxlOwogIHdpZHRoOiAxMDAlOwp9CgojcG9wdXAtY3VzdG9tIHRhYmxlLAojY29udGVudF9zZXR0aW5ncyB0YWJsZSB7CiAgZGlzcGxheTogaW5saW5lLXRhYmxlOwogIHRhYmxlLWxheW91dDogZml4ZWQ7CiAgd2lkdGg6IDEwMCU7Cn0KCgojbWFwcGluZy1kZXRhaWwtdGFibGUgdGQsCiN1c2VyLWRldGFpbC10YWJsZSB0ZCB7CiAgcGFkZGluZzogMTBweCAwcHg7Cgp9CgojbWFwcGluZy1kZXRhaWwtdGFibGUgdGQubGVmdCwKI3VzZXItZGV0YWlsLXRhYmxlIHRkLmxlZnQsCiNwb3B1cC1jdXN0b20gdGQubGVmdCB7CiAgd2lkdGg6IDM4JTsKfQoKLmludGVyYWN0aW9uLAojaW50ZXJhY3Rpb24gewogIG1hcmdpbi10b3A6IDIwcHg7CiAgZGlzcGxheTogaW5saW5lLWZsZXg7CiAgZmxvYXQ6IHJpZ2h0Owp9CgouaW50ZXJhY3Rpb24gaW5wdXRbdHlwZT1idXR0b25dLAouaW50ZXJhY3Rpb24gaW5wdXRbdHlwZT1zdWJtaXRdIHsKICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDAwOwogIG1pbi13aWR0aDogMTAwcHg7CiAgbWFyZ2luOiAwcHggMTBweDsKICB0ZXh0LWFsaWduOiBjZW50ZXI7Cn0KCiNub3RpZmljYXRpb24gewogIGRpc3BsYXk6IGJsb2NrOwogIHBvc2l0aW9uOiBmaXhlZDsKICByaWdodDogMHB4OwogIGhlaWdodDogMTAwJTsKICB3aWR0aDogMjUwcHg7CgogIGJhY2tncm91bmQtY29sb3I6ICMyMjI7CiAgYm94LXNoYWRvdzogMHB4IDBweCAyMHB4ICMwMDA7Cn0KCiNub3RpZmljYXRpb24gaDUgewogIGJhY2tncm91bmQtY29sb3I6ICMxMjEyMTI7CiAgcGFkZGluZzogNXB4IDEwcHggNXB4IDEwcHg7Cn0KCiNub3RpZmljYXRpb24gcHJlIHsKICBwYWRkaW5nOiAwcHggMTBweCAwcHggMTBweDsKfQoKI25vdGlmaWNhdGlvbiBwIHsKICBmb250LXNpemU6IDEwIHB4OwogIG1hcmdpbjogMHB4OwogIHBhZGRpbmc6IDBweCAxMHB4IDVweCAxMHB4Owp9Cgojbm90aWZpY2F0aW9uIC5lbGVtZW50IHsKICAvKnBhZGRpbmc6IDBweCA1cHg7Ki8KICBtYXJnaW46IDVweCA1cHg7CiAgYm9yZGVyLXJhZGl1czogNXB4OwogIGJhY2tncm91bmQtY29sb3I6ICMxODE4MTg7CiAgYm9yZGVyLWxlZnQ6IDEwcHggc29saWQgZ3JlZW47Cn0KCgpAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDYyMHB4KSB7CiAgYm9keSB7CiAgICB3aWR0aDogMTAwJTsKICAgIGJhY2tncm91bmQtY29sb3I6ICM0NDQ7CiAgfQoKICBoMSB7CiAgICBmb250LXNpemU6IDI2cHg7CiAgICBsZXR0ZXItc3BhY2luZzogM3B4OwogIH0KCiAgbmF2IHAgewogICAgZGlzcGxheTogYmxvY2s7CiAgfQoKCgogICNoZWFkZXJfY29uZmlnIHsKICAgIGRpc3BsYXk6IGJsb2NrOwogICAgaGVpZ2h0OiAxMDBweDsKICAgIGJhY2tncm91bmQ6IHVybCgiLi4vaW1nL2xvZ29fd182MDB4MjAwLnBuZyIpOwogICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDsKCiAgICBiYWNrZ3JvdW5kLXNpemU6IDMwMHB4IDEwMHB4OwogIH0KCiAgI3NjcmVlbkxvZyB7CiAgICBtYXJnaW4tbGVmdDogMzAwcHg7CgogICAgdHJhbnNpdGlvbjogbm9uZTsKICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50OwogICAgYm9yZGVyLWJvdHRvbTogc29saWQgMXB4IHRyYW5zcGFyZW50OwogICAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggIzIyMjsKICB9CgogICNzZXR0aW5ncyB7CiAgICAvKgogICAgaGVpZ2h0OiAtd2Via2l0LWNhbGMoMTAwJSAtIDEwMHB4KTsKICAgIGhlaWdodDogLW1vei1jYWxjKDEwMCUgLSAxMDBweCk7CiAgICBoZWlnaHQ6IGNhbGMoMTAwJSAtIDEwMHB4KTsKICAgICovCiAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICBvdmVyZmxvdzogYXV0bzsKICB9CgoKICAuc2NyZWVuTG9nSGlkZGVuIHsKICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDBweCwgMHB4KTsKICB9CgoKICAjYm94IHsKICAgIGRpc3BsYXk6IGJsb2NrOwogICAgbWluLWhlaWdodDogNTAwcHg7CiAgICBtYXgtd2lkdGg6IDUwMHB4OwogICAgbWFyZ2luOiAxMHB4IGF1dG87CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNDQ0OwogICAgYm94LXNoYWRvdzogMHB4IDVweCA1cHggIzIyMjsKCiAgICBkaXNwbGF5OiBmbGV4OwogICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICB9CgogICNzZXR0aW5ncywKICAjc2V0dGluZ3MtZm9vdGVyIHt9Cn0=" webUI["html/img/BC-QR.jpg"] = "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" webUI["html/img/filter.png"] = "iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAAAXNSR0IArs4c6QAAAAlwSFlzAAAsSwAALEsBpT2WqQAABCRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IlhNUCBDb3JlIDUuNC4wIj4KICAgPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIgogICAgICAgICAgICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgICAgICAgICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyI+CiAgICAgICAgIDx0aWZmOlJlc29sdXRpb25Vbml0PjI8L3RpZmY6UmVzb2x1dGlvblVuaXQ+CiAgICAgICAgIDx0aWZmOkNvbXByZXNzaW9uPjU8L3RpZmY6Q29tcHJlc3Npb24+CiAgICAgICAgIDx0aWZmOlhSZXNvbHV0aW9uPjI4ODwvdGlmZjpYUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6T3JpZW50YXRpb24+MTwvdGlmZjpPcmllbnRhdGlvbj4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+Mjg4PC90aWZmOllSZXNvbHV0aW9uPgogICAgICAgICA8ZXhpZjpQaXhlbFhEaW1lbnNpb24+NTA8L2V4aWY6UGl4ZWxYRGltZW5zaW9uPgogICAgICAgICA8ZXhpZjpDb2xvclNwYWNlPjE8L2V4aWY6Q29sb3JTcGFjZT4KICAgICAgICAgPGV4aWY6UGl4ZWxZRGltZW5zaW9uPjUwPC9leGlmOlBpeGVsWURpbWVuc2lvbj4KICAgICAgICAgPGRjOnN1YmplY3Q+CiAgICAgICAgICAgIDxyZGY6QmFnLz4KICAgICAgICAgPC9kYzpzdWJqZWN0PgogICAgICAgICA8eG1wOk1vZGlmeURhdGU+MjAxOC0wNy0yOFQxOTowNzo2OTwveG1wOk1vZGlmeURhdGU+CiAgICAgICAgIDx4bXA6Q3JlYXRvclRvb2w+UGl4ZWxtYXRvciAzLjM8L3htcDpDcmVhdG9yVG9vbD4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgIDwvcmRmOlJERj4KPC94OnhtcG1ldGE+Cs038OQAAAOISURBVGgF5ZpLSBVRGMfvvfmqCKKiKCqKtE3SQ8haJJm1ctPCZYHrFhXtohcUBLVsU1BRBJKLXpsSKs1aCL1oUUhvMgIloodZKmLZ72+OzNVx7jzOXGfqg/89Z875zv/7f35n7px7vanUP2JptzyGhoYKmK8GW0EZmA/mgW7wHrwDN0BTOp0epPVtxBBnLdgIVoE5YBboBR2gDTTA/5DWn0FeDPaBz8CLdeF0EBR5jYRvKbgABoAXa8Opwit/CudK8NoLs4PPM8ZyBsNnB/jpsD7X0C8cjgDXnaQkqkEPCGMSuGWivxxzx8OQj6xtpHWuPhPloHfEMWzTD0HN2GQY2xuW2Lb+/Fh+VaIQPLE5meh+gmSxFYz+BjBogtjGscfiH26Z2GmbNNltVQAIpwDdP6ZNO2iRYqTpZGhfgWUaiMC2w1kCzkbALcqLvDVvUyK6MW9HFES0b8BvsFwXEZi4F+iBtykCcjtlqf0igr52VJ1eqiIgzzdlrRIZfWfJd3SD8ZbqHvkB4XSDpJNB9V0VcX/cT4Ys/zEzSuSj/3WxW9GpRD7ETpZ/QcOJ6LyfdHugitxNehbob9G7lo4PXWBmQhPqQ/fsDOeUfjqNCU1Csi+TQ5+2luzc3yaRr6elevQZwhZr4bomYam0U41yabYqov5hvSTMjlp6RyuiAarSTLPZmox5246+lVREx/isiuh6NxhUJwF2yEpCWu1bK8WEsjyRgCSa0XrVrjNra2mC7TWD5ilYAuJoA4jSlnppF5dVEU3g0ENTD4b3nsZiZsfGJuGqj8qY+CINGqP2GLZCJ+HjtpblxAJ9k3cPrLfGJrnVUaSCarxw0jFua1lOLNBerANx+byya6IkLM2uLZWpAl6/Mcc1EjvjKtLrJNLqI5HnjfQ+bsVeteb0g2y/t7hGvd7CNjenOL8OkJ40KtOdTF+Cl/nV6Mkf4gxocI9vZPYLLKs9iQrqRIACcM2IXGeSboYrg+rztY5ARaDJWUeo0W+sXudLTFhnApaAW6FkZy/+yuXasLoCrSfwVHAnW0+gK93YawKJMLUIAdNAKwhqnSxcYUpPKB6EBE2mg7VR///EX24jybTQerXnOC70FyVP3gjTPXPTQyaP8NFPNeJrCNTPP667JKOq6VNo/A2hes5ccUjmEmPmDoD5+FMgWCcA+3FG57QJP//kQ1PgGBIOToEDgUn+t4V/AJeGknwARIKLAAAAAElFTkSuQmCC" webUI["html/img/log.png"] = "iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAAAXNSR0IArs4c6QAAAAlwSFlzAAAsSwAALEsBpT2WqQAABCRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IlhNUCBDb3JlIDUuNC4wIj4KICAgPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIgogICAgICAgICAgICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgICAgICAgICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyI+CiAgICAgICAgIDx0aWZmOlJlc29sdXRpb25Vbml0PjI8L3RpZmY6UmVzb2x1dGlvblVuaXQ+CiAgICAgICAgIDx0aWZmOkNvbXByZXNzaW9uPjU8L3RpZmY6Q29tcHJlc3Npb24+CiAgICAgICAgIDx0aWZmOlhSZXNvbHV0aW9uPjI4ODwvdGlmZjpYUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6T3JpZW50YXRpb24+MTwvdGlmZjpPcmllbnRhdGlvbj4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+Mjg4PC90aWZmOllSZXNvbHV0aW9uPgogICAgICAgICA8ZXhpZjpQaXhlbFhEaW1lbnNpb24+NTA8L2V4aWY6UGl4ZWxYRGltZW5zaW9uPgogICAgICAgICA8ZXhpZjpDb2xvclNwYWNlPjE8L2V4aWY6Q29sb3JTcGFjZT4KICAgICAgICAgPGV4aWY6UGl4ZWxZRGltZW5zaW9uPjUwPC9leGlmOlBpeGVsWURpbWVuc2lvbj4KICAgICAgICAgPGRjOnN1YmplY3Q+CiAgICAgICAgICAgIDxyZGY6QmFnLz4KICAgICAgICAgPC9kYzpzdWJqZWN0PgogICAgICAgICA8eG1wOk1vZGlmeURhdGU+MjAxOC0xMC0xNFQxMToxMDo0MjwveG1wOk1vZGlmeURhdGU+CiAgICAgICAgIDx4bXA6Q3JlYXRvclRvb2w+UGl4ZWxtYXRvciAzLjM8L3htcDpDcmVhdG9yVG9vbD4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgIDwvcmRmOlJERj4KPC94OnhtcG1ldGE+CkP32mEAAANASURBVGgF7ZlPiE1RHMffw1AYhiL5k1HEijJiYaFZiHoyFspW2RFRkkSZGgtFWJIwi9FYmo0VOywkKTbKgjSlWcifRCPX51dv6s2d33md77vvXjfmV9859/7u93x/v98959x73p1KRbAkSargAhgDH0E/qIYkuHYEvAPGvwbmNOEerXM/0Q6BRSFuZj/ix0DaDnvCkGppIucDAe4OhzvkcUO+GaELAf8ux7/b8Zlrr+Pvc3zm6nX8NccXdKmFLHaUPJ/Ruhyu5zNap8Nd6PiCLrUQTyi0Rjy/5/M0Zd+smB7M32XwtgBr07aC6yfSTs7XO77OALfH4VbgHsD/HLytVquJx4nyIdQFBsHftscksK5Z0sGhpuN8Or4Aa5sJFHjtO7G2MjKvvZjN1sglOpSlCMt9LrDZ4S4Hd0Qg24vrK+gAZbPtjMqTdFKhEdkIsYxFWP720JlioUK6pzDL41jtpRIqxOOWxecuB3fhRGT8E85YBK8VygI6GSRTCxlH3TaJgyw4O2678aCxO94LbNPovYDdmOrUukIBN/MqwjJEOwGPOHR31W4VONVCLEBR9lAJpBbSrYhn5K5R+quFnGUOr1ICtMIlxjz6XVb6qot9JeKvCPSAdlQJJHDtd8hOIN0wtRDLxx6Ntr0ulalTq1TJNyYzXUjj3SjD8X87Iva7uR8s5+2bi6FtX1oOgi8g2tSn1g2yPx+t3gIR/c90s1+C1vuO/YkxdWrdjxFtE2dE0VELWaqIZ+QuUfqrhZxmyKUvgEoyE1xizOR4YOI8plXXyAZEbYsyTJvXFsUW+x6wGUSbWogJ237rZHSEgojq1CooLT3MdCH6Pcu3xz8zIq0s9lvc2+sgz6dWH/rnQPB/jlybZGoh99hCHJqk0P6TD0jaI/4b7dVYeXVq2bemokyKpRZiHwWKMimWWshxhryjoEpOKXHUNbIN8WcUc5s2r8Vue7l9oAaiTS3EhDeB6EUYnUlGojq1MobLr3uokB/5hcys7OYWKuRl5nD5Cbi5uYXw0ntPHoay2S8Seuol5RZSJ0r/n/DEc/BdrN9kTZrH7BkwDspgwyQxW6uggU3nHnAXvAG/QZE2SrARsL8hJffwDxM0mNDPvT8IAAAAAElFTkSuQmCC" @@ -23,18 +23,18 @@ func loadHTMLMap() { webUI["html/img/x_black.png"] = "iVBORw0KGgoAAAANSUhEUgAAAQAAAAEACAIAAADTED8xAAAAAXNSR0IArs4c6QAAAAlwSFlzAAAWJQAAFiUBSVIk8AAAA6ppVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IlhNUCBDb3JlIDUuNC4wIj4KICAgPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIgogICAgICAgICAgICB4bWxuczp0aWZmPSJodHRwOi8vbnMuYWRvYmUuY29tL3RpZmYvMS4wLyIKICAgICAgICAgICAgeG1sbnM6ZXhpZj0iaHR0cDovL25zLmFkb2JlLmNvbS9leGlmLzEuMC8iPgogICAgICAgICA8eG1wOk1vZGlmeURhdGU+MjAxOC0xMS0xNVQxNzoxMTozNzwveG1wOk1vZGlmeURhdGU+CiAgICAgICAgIDx4bXA6Q3JlYXRvclRvb2w+UGl4ZWxtYXRvciAzLjM8L3htcDpDcmVhdG9yVG9vbD4KICAgICAgICAgPHRpZmY6T3JpZW50YXRpb24+MTwvdGlmZjpPcmllbnRhdGlvbj4KICAgICAgICAgPHRpZmY6Q29tcHJlc3Npb24+NTwvdGlmZjpDb21wcmVzc2lvbj4KICAgICAgICAgPHRpZmY6UmVzb2x1dGlvblVuaXQ+MjwvdGlmZjpSZXNvbHV0aW9uVW5pdD4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+MTQ0PC90aWZmOllSZXNvbHV0aW9uPgogICAgICAgICA8dGlmZjpYUmVzb2x1dGlvbj4xNDQ8L3RpZmY6WFJlc29sdXRpb24+CiAgICAgICAgIDxleGlmOlBpeGVsWERpbWVuc2lvbj4yNTY8L2V4aWY6UGl4ZWxYRGltZW5zaW9uPgogICAgICAgICA8ZXhpZjpDb2xvclNwYWNlPjE8L2V4aWY6Q29sb3JTcGFj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a1jSekqmtA1rrGsx7JYkDuvrVahwRdgVXD1xcwri6mmYRULLe4CuPc2wfrGo4U+7Y/3S9ZHD+GcflbnfiCJbr77whoaS6ucCXVkVkuLKgORQwNJFygRDJnqwb9i3b0HxkqjT0L4erGy5Rh1IRnhXrpaZq6GZCyRLf6cvhoTY6V9koX8bGdEUlyWVm6W5q1GuostihNm97L/dpm5k+QHCbDna0zRzgSS/lRHWL7iHPOa+9YsYkpttoCwSMcQRkrWioz5Qsc7aFJ1coHY3QyJ9jSjfJEOCfTUpWzehVBnUbqCJOCHEkB1xsmXDwq9DnObUz9q4QOUqYPaPKFzUKcVj6Eeu461q67Vhlqy6+Xo11G52JhRZNNW1FRbN00FWPVwguSa+8YEZ1i+D9vQjelm/iHTwAB69Vwd7CkuGLOcWtxfR4o+dHhNg4DNmhDvJ8M6ehknvhTXMDp8kQQgT33W4z+i7k/2gho+Jvrp1NTVwgW5opV76yl8F/cufe9CyJiRllZ6lYCHMXWPAXmNp9CRb8Pi30r658sHtCSCPsZNXQDYdMaLIek/No13V/rBfGMFSCXnsKNo1dDelnKt/dyUH8uvjjLH+zyfpbv1iUl/NVBt4mVJy58HoDyFZLt0rrj4G7TfIjARvMjy7d6JnR/UXS/+yeD5kLYkETxpRZL2jZJVzb7cl9yZA/cYqh4z+20AEzOj+BKxbZYRFqXQssvLs5gQzpBUp616rNsX55WdXBHbPBRrwlBm5v2VYJo1FsjmOtQg8ezo+fd8Ve4qy04HPRlmR1UiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABGwg8D8UnyVeZFwGAQAAAABJRU5ErkJggg==" webUI["html/img/x_white.png"] = "iVBORw0KGgoAAAANSUhEUgAAAQAAAAEACAIAAADTED8xAAAAAXNSR0IArs4c6QAAAAlwSFlzAAAWJQAAFiUBSVIk8AAAA6ppVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IlhNUCBDb3JlIDUuNC4wIj4KICAgPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIgogICAgICAgICAgICB4bWxuczp0aWZmPSJodHRwOi8vbnMuYWRvYmUuY29tL3RpZmYvMS4wLyIKICAgICAgICAgICAgeG1sbnM6ZXhpZj0iaHR0cDovL25zLmFkb2JlLmNvbS9leGlmLzEuMC8iPgogICAgICAgICA8eG1wOk1vZGlmeURhdGU+MjAxOC0xMS0xNVQxNzoxMToyNTwveG1wOk1vZGlmeURhdGU+CiAgICAgICAgIDx4bXA6Q3JlYXRvclRvb2w+UGl4ZWxtYXRvciAzLjM8L3htcDpDcmVhdG9yVG9vbD4KICAgICAgICAgPHRpZmY6T3JpZW50YXRpb24+MTwvdGlmZjpPcmllbnRhdGlvbj4KICAgICAgICAgPHRpZmY6Q29tcHJlc3Npb24+NTwvdGlmZjpDb21wcmVzc2lvbj4KICAgICAgICAgPHRpZmY6UmVzb2x1dGlvblVuaXQ+MjwvdGlmZjpSZXNvbHV0aW9uVW5pdD4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+MTQ0PC90aWZmOllSZXNvbHV0aW9uPgogICAgICAgICA8dGlmZjpYUmVzb2x1dGlvbj4xNDQ8L3RpZmY6WFJlc29sdXRpb24+CiAgICAgICAgIDxleGlmOlBpeGVsWERpbWVuc2lvbj4yNTY8L2V4aWY6UGl4ZWxYRGltZW5zaW9uPgogICAgICAgICA8ZXhpZjpDb2xvclNwYWNlPjE8L2V4aWY6Q29sb3JTcGFj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" webUI["html/img/xmltv.png"] = "iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAAAXNSR0IArs4c6QAAAAlwSFlzAAAsSwAALEsBpT2WqQAABCRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IlhNUCBDb3JlIDUuNC4wIj4KICAgPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIgogICAgICAgICAgICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgICAgICAgICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyI+CiAgICAgICAgIDx0aWZmOlJlc29sdXRpb25Vbml0PjI8L3RpZmY6UmVzb2x1dGlvblVuaXQ+CiAgICAgICAgIDx0aWZmOkNvbXByZXNzaW9uPjU8L3RpZmY6Q29tcHJlc3Npb24+CiAgICAgICAgIDx0aWZmOlhSZXNvbHV0aW9uPjI4ODwvdGlmZjpYUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6T3JpZW50YXRpb24+MTwvdGlmZjpPcmllbnRhdGlvbj4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+Mjg4PC90aWZmOllSZXNvbHV0aW9uPgogICAgICAgICA8ZXhpZjpQaXhlbFhEaW1lbnNpb24+NTA8L2V4aWY6UGl4ZWxYRGltZW5zaW9uPgogICAgICAgICA8ZXhpZjpDb2xvclNwYWNlPjE8L2V4aWY6Q29sb3JTcGFjZT4KICAgICAgICAgPGV4aWY6UGl4ZWxZRGltZW5zaW9uPjUwPC9leGlmOlBpeGVsWURpbWVuc2lvbj4KICAgICAgICAgPGRjOnN1YmplY3Q+CiAgICAgICAgICAgIDxyZGY6QmFnLz4KICAgICAgICAgPC9kYzpzdWJqZWN0PgogICAgICAgICA8eG1wOk1vZGlmeURhdGU+MjAxOC0wNy0yOFQyMDowNzozMzwveG1wOk1vZGlmeURhdGU+CiAgICAgICAgIDx4bXA6Q3JlYXRvclRvb2w+UGl4ZWxtYXRvciAzLjM8L3htcDpDcmVhdG9yVG9vbD4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgIDwvcmRmOlJERj4KPC94OnhtcG1ldGE+Co6j9bsAAAGgSURBVGgF7VqxTsNADL0gYGEon8DOwsbAAH8BYmJn6cYIn8DC3h0+oixISFRiYYCJL0AwMMBAeK5w2rpV6uikxHfYknW98+vds18TK21DWGBlWR7CH+BfcEv2AzLP8HP42gLqkyUATuEp2PWEdQjF9ATs1zF/g29Mrxt+vVcUxR3xWxEktzFPJQmivsv8ZSI9DiQyVnxlIonwn6fpiczXpNuVVXH8O+a3Ys3y9NUyuf/NTTbEHZTjUlGSRzSiPhroUIENwB4AS/vS/susDwDhTpYBER9g7wHh5DWyibV9CiitCZbIafDEYUuJHQI3Nr/9ciWsjK6IFSWYhyvClbAyZqOIlYJG84jq7E1Ot97Zm+TinV1TrWwudk9EI3ebGFekzWprzspGEU2ySWCiOrs/s9dr7M/s9fVJJJrNXcsTsfaJc0WsKZINH+/sf1Jqvl1n1f2ZnStRN/pdq646XcSkIh9dkIg4s+IrE3nCpp8RG7f91ns+cCYR/LD4jcAZB42PN+A7/mcQ8ZxJhBYQvMJwBB/BKTFLVoLMC/wCfgyv7BesTKUC2LKM3wAAAABJRU5ErkJggg==" - webUI["html/index.html"] = "PCFkb2N0eXBlIGh0bWw+DQo8aHRtbD4NCiAgPGhlYWQ+DQogICAgPG1ldGEgY2hhcnNldD0idXRmLTgiPg0KICAgIDwhLS0tDQogICAgPG1ldGEgbmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9IndpZHRoPWRldmljZS13aWR0aCwgaW5pdGlhbC1zY2FsZT0xLjAiIC8+IA0KICAgIC0tPg0KICAgIDx0aXRsZT54VGVWZTwvdGl0bGU+DQogICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJjc3Mvc2NyZWVuLmNzcyIgdHlwZT0idGV4dC9jc3MiPg0KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iY3NzL2Jhc2UuY3NzIiB0eXBlPSJ0ZXh0L2NzcyI+DQoNCiAgICA8c2NyaXB0IGxhbmd1YWdlPSJqYXZhc2NyaXB0IiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ianMvbmV0d29ya190cy5qcyI+PC9zY3JpcHQ+DQogICAgPHNjcmlwdCBsYW5ndWFnZT0iamF2YXNjcmlwdCIgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9ImpzL21lbnVfdHMuanMiPjwvc2NyaXB0Pg0KICAgIDxzY3JpcHQgbGFuZ3VhZ2U9ImphdmFzY3JpcHQiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJqcy9zZXR0aW5nc190cy5qcyI+PC9zY3JpcHQ+DQogICAgPHNjcmlwdCBsYW5ndWFnZT0iamF2YXNjcmlwdCIgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9ImpzL2xvZ3NfdHMuanMiPjwvc2NyaXB0Pg0KICAgIDxzY3JpcHQgbGFuZ3VhZ2U9ImphdmFzY3JpcHQiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJqcy9iYXNlX3RzLmpzIj48L3NjcmlwdD4NCg0KICA8L2hlYWQ+DQoNCiAgICA8Ym9keSBvbmxvYWQ9ImphdmFzY3JpcHQ6IFBhZ2VSZWFkeSgpOyI+DQoNCiAgICAgIDxkaXYgaWQ9ImxvYWRpbmciIGNsYXNzPSJub25lIj4NCiAgICAgICAgPGRpdiBjbGFzcz0ibG9hZGVyIj48L2Rpdj4NCiAgICAgIDwvZGl2Pg0KDQogICAgICA8ZGl2IGlkPSJwb3B1cCIgY2xhc3M9Im5vbmUiPg0KICAgICAgICA8ZGl2IGlkPSJwb3B1cC1jdXN0b20iPjwvZGl2Pg0KICAgICAgPC9kaXY+DQoNCiAgICAgIDxkaXYgaWQ9ImxheW91dCI+DQoNCiAgICAgICAgPCEtLQ0KICAgICAgICA8ZGl2IGlkPSJub3RpZmljYXRpb24iPg0KICAgICAgICAgIDxkaXYgY2xhc3M9ImVsZW1lbnQiPg0KICAgICAgICAgICAgPGg1PlhFUEc8L2g1Pg0KICAgICAgICAgICAgPHByZT4xMS4wNS4yMDE5IC0gMjA6MjE8L3ByZT4NCiAgICAgICAgICAgIDxocj4NCiAgICAgICAgICAgIDxwPkhhbGxvIGRhcyBpc3QgZWluIFRlc3QuIFVuZCBub2NoIG1laHIgVGV4dC48L3A+DQogICAgICAgICAgPC9kaXY+DQogICAgICAgIDwvZGl2Pg0KICAgICAgLS0+DQoNCiAgICAgICAgPGRpdiBpZD0ibWVudS13cmFwcGVyIiBjbGFzcz0ibGF5b3V0LWxlZnQiPg0KICAgICAgICAgIDxkaXYgaWQ9ICJicmFuY2giPjwvZGl2Pg0KICAgICAgICAgIDxkaXYgaWQ9ImxvZ28iPjwvZGl2Pg0KICAgICAgICAgIDxuYXYgaWQ9Im1haW4tbWVudSI+PC9uYXY+DQogICAgICAgIDwvZGl2Pg0KDQogICAgICAgIDxkaXYgY2xhc3M9ImxheW91dC1yaWdodCI+DQoNCiAgICAgICAgICA8dGFibGUgaWQ9ImNsaWVudEluZm8iIGNsYXNzPSIiPg0KDQogICAgICAgICAgICA8dHI+DQogICAgICAgICAgICAgIDx0ZCBjbGFzcz0idGRLZXkiPnhUZVZlOjwvdGQ+DQogICAgICAgICAgICAgIDx0ZCBpZD0idmVyc2lvbiIgY2xhc3M9InRkVmFsIj4mbmJzcDs8L3RkPg0KICAgICAgICAgICAgICA8dGQgY2xhc3M9InRkS2V5Ij5PUzo8L3RkPg0KICAgICAgICAgICAgICA8dGQgaWQ9Im9zIiBjbGFzcz0idGRWYWwiPiZuYnNwOzwvdGQ+DQogICAgICAgICAgICAgIDx0ZCBjbGFzcz0idGRLZXkgcGhvbmUiPkRWUiBJUDo8L3RkPg0KICAgICAgICAgICAgICA8dGQgaWQ9IkRWUiIgY2xhc3M9InRkVmFsIHBob25lIj4mbmJzcDs8L3RkPg0KICAgICAgICAgICAgPC90cj4NCg0KICAgICAgICAgICAgPHRyPg0KICAgICAgICAgICAgICA8dGQgY2xhc3M9InRkS2V5Ij5VVUlEOjwvdGQ+DQogICAgICAgICAgICAgIDx0ZCBpZD0idXVpZCIgY2xhc3M9InRkVmFsIj4mbmJzcDs8L3RkPg0KICAgICAgICAgICAgICA8dGQgY2xhc3M9InRkS2V5Ij5BcmNoOjwvdGQ+DQogICAgICAgICAgICAgIDx0ZCBpZD0iYXJjaCIgY2xhc3M9InRkVmFsIj4mbmJzcDs8L3RkPg0KICAgICAgICAgICAgICA8dGQgY2xhc3M9InRkS2V5IHBob25lIj5NM1UgVVJMOjwvdGQ+DQogICAgICAgICAgICAgIDx0ZCBpZD0ibTN1LXVybCIgY2xhc3M9InRkVmFsIHBob25lIj4mbmJzcDs8L3RkPg0KICAgICAgICAgICAgPC90cj4NCg0KICAgICAgICAgICAgPHRyPg0KICAgICAgICAgICAgICA8dGQgY2xhc3M9InRkS2V5Ij5BdmFpbGFibGUgU3RyZWFtczo8L3RkPg0KICAgICAgICAgICAgICA8dGQgaWQ9InN0cmVhbXMiIGNsYXNzPSJ0ZFZhbCI+Jm5ic3A7PC90ZD4NCiAgICAgICAgICAgICAgPHRkIGNsYXNzPSJ0ZEtleSI+RVBHIFNvdXJjZTo8L3RkPg0KICAgICAgICAgICAgICA8dGQgaWQ9ImVwZ1NvdXJjZSIgY2xhc3M9InRkVmFsIj4mbmJzcDs8L3RkPg0KICAgICAgICAgICAgICA8dGQgY2xhc3M9InRkS2V5IHBob25lIj5YRVBHIFVSTDo8L3RkPg0KICAgICAgICAgICAgICA8dGQgaWQ9InhlcGctdXJsIiBjbGFzcz0idGRWYWwgcGhvbmUiPiZuYnNwOzwvdGQ+DQogICAgICAgICAgICA8L3RyPg0KDQogICAgICAgICAgICA8dHI+DQogICAgICAgICAgICAgIDx0ZCBjbGFzcz0idGRLZXkiPlhFUEcgQ2hhbm5lbHM6PC90ZD4NCiAgICAgICAgICAgICAgPHRkIGlkPSJ4ZXBnIiBjbGFzcz0idGRWYWwiPiZuYnNwOzwvdGQ+DQogICAgICAgICAgICAgIDx0ZCBjbGFzcz0idGRLZXkiPkVycm9yczo8L3RkPg0KICAgICAgICAgICAgICA8dGQgaWQ9ImVycm9ycyIgY2xhc3M9InRkVmFsIj4mbmJzcDs8L3RkPg0KICAgICAgICAgICAgICA8dGQgY2xhc3M9InRkS2V5Ij5XYXJuaW5nczo8L3RkPg0KICAgICAgICAgICAgICA8dGQgaWQ9Indhcm5pbmdzIiBjbGFzcz0idGRWYWwiPiZuYnNwOzwvdGQ+DQogICAgICAgICAgICA8L3RyPg0KDQogICAgICAgICAgPC90YWJsZT4NCiAgICAgICAgIA0KICAgICAgICAgIDxkaXYgaWQ9Im15U3RyZWFtc0JveCIgY2xhc3M9Im5vdFZpc2libGUiPg0KDQogICAgICAgICAgICA8ZGl2IGlkPSJhbGxTdHJlYW1zIj4NCiAgICAgICAgICAgICAgPHRhYmxlIGlkPSJhY3RpdmVTdHJlYW1zIj48L3RhYmxlPg0KICAgICAgICAgICAgICA8dGFibGUgaWQ9ImluYWN0aXZlU3RyZWFtcyI+PC90YWJsZT4NCiAgICAgICAgICAgIDwvZGl2Pg0KDQogICAgICAgICAgPC9kaXY+DQogICAgICAgICAgDQogICAgICAgICAgPGRpdiBpZD0iY29udGVudCIgY2xhc3M9IiI+PC9kaXY+DQogICAgICAgICAgICANCiAgICAgICAgPC9kaXY+DQoNCiAgICAgIDwvZGl2Pg0KICAgICAgDQogICAgPC9ib2R5Pg0KICAgIA0KPC9odG1sPg==" - webUI["html/js/authentication_ts.js"] = "ZnVuY3Rpb24gbG9naW4oKSB7DQogICAgdmFyIGVyciA9IGZhbHNlOw0KICAgIHZhciBkYXRhID0gbmV3IE9iamVjdCgpOw0KICAgIHZhciBkaXYgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29udGVudCIpOw0KICAgIHZhciBmb3JtID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImF1dGhlbnRpY2F0aW9uIik7DQogICAgdmFyIGlucHV0cyA9IGRpdi5nZXRFbGVtZW50c0J5VGFnTmFtZSgiSU5QVVQiKTsNCiAgICBmb3IgKHZhciBpID0gaW5wdXRzLmxlbmd0aCAtIDE7IGkgPj0gMDsgaS0tKSB7DQogICAgICAgIHZhciBrZXkgPSBpbnB1dHNbaV0ubmFtZTsNCiAgICAgICAgdmFyIHZhbHVlID0gaW5wdXRzW2ldLnZhbHVlOw0KICAgICAgICBpZiAodmFsdWUubGVuZ3RoID09IDApIHsNCiAgICAgICAgICAgIGlucHV0c1tpXS5zdHlsZS5ib3JkZXJDb2xvciA9ICJyZWQiOw0KICAgICAgICAgICAgZXJyID0gdHJ1ZTsNCiAgICAgICAgfQ0KICAgICAgICBkYXRhW2tleV0gPSB2YWx1ZTsNCiAgICB9DQogICAgaWYgKGVyciA9PSB0cnVlKSB7DQogICAgICAgIGRhdGEgPSBuZXcgT2JqZWN0KCk7DQogICAgICAgIHJldHVybjsNCiAgICB9DQogICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoImNvbmZpcm0iKSkgew0KICAgICAgICBpZiAoZGF0YVsiY29uZmlybSJdICE9IGRhdGFbInBhc3N3b3JkIl0pIHsNCiAgICAgICAgICAgIGFsZXJ0KCJzZGFmc2QiKTsNCiAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdwYXNzd29yZCcpLnN0eWxlLmJvcmRlckNvbG9yID0gInJlZCI7DQogICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY29uZmlybScpLnN0eWxlLmJvcmRlckNvbG9yID0gInJlZCI7DQogICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZXJyIikuaW5uZXJIVE1MID0gInt7LmFjY291bnQuZmFpbGVkfX0iOw0KICAgICAgICAgICAgcmV0dXJuOw0KICAgICAgICB9DQogICAgfQ0KICAgIGZvcm0uc3VibWl0KCk7DQp9DQo=" - webUI["html/js/base_ts.js"] = "dmFyIFNFUlZFUiA9IG5ldyBPYmplY3QoKTsNCnZhciBCVUxLX0VESVQgPSBmYWxzZTsNCnZhciBDT0xVTU5fVE9fU09SVDsNCnZhciBTRUFSQ0hfTUFQUElORyA9IG5ldyBPYmplY3QoKTsNCnZhciBVTkRPID0gbmV3IE9iamVjdCgpOw0KdmFyIFNFUlZFUl9DT05ORUNUSU9OID0gZmFsc2U7DQp2YXIgV1NfQVZBSUxBQkxFID0gZmFsc2U7DQovLyBNZW51DQp2YXIgbWVudUl0ZW1zID0gbmV3IEFycmF5KCk7DQptZW51SXRlbXMucHVzaChuZXcgTWFpbk1lbnVJdGVtKCJwbGF5bGlzdCIsICJ7ey5tYWluTWVudS5pdGVtLnBsYXlsaXN0fX0iLCAibTN1LnBuZyIsICJ7ey5tYWluTWVudS5oZWFkbGluZS5wbGF5bGlzdH19IikpOw0KbWVudUl0ZW1zLnB1c2gobmV3IE1haW5NZW51SXRlbSgiZmlsdGVyIiwgInt7Lm1haW5NZW51Lml0ZW0uZmlsdGVyfX0iLCAiZmlsdGVyLnBuZyIsICJ7ey5tYWluTWVudS5oZWFkbGluZS5maWx0ZXJ9fSIpKTsNCm1lbnVJdGVtcy5wdXNoKG5ldyBNYWluTWVudUl0ZW0oInhtbHR2IiwgInt7Lm1haW5NZW51Lml0ZW0ueG1sdHZ9fSIsICJ4bWx0di5wbmciLCAie3subWFpbk1lbnUuaGVhZGxpbmUueG1sdHZ9fSIpKTsNCm1lbnVJdGVtcy5wdXNoKG5ldyBNYWluTWVudUl0ZW0oIm1hcHBpbmciLCAie3subWFpbk1lbnUuaXRlbS5tYXBwaW5nfX0iLCAibWFwcGluZy5wbmciLCAie3subWFpbk1lbnUuaGVhZGxpbmUubWFwcGluZ319IikpOw0KbWVudUl0ZW1zLnB1c2gobmV3IE1haW5NZW51SXRlbSgidXNlcnMiLCAie3subWFpbk1lbnUuaXRlbS51c2Vyc319IiwgInVzZXJzLnBuZyIsICJ7ey5tYWluTWVudS5oZWFkbGluZS51c2Vyc319IikpOw0KbWVudUl0ZW1zLnB1c2gobmV3IE1haW5NZW51SXRlbSgic2V0dGluZ3MiLCAie3subWFpbk1lbnUuaXRlbS5zZXR0aW5nc319IiwgInNldHRpbmdzLnBuZyIsICJ7ey5tYWluTWVudS5oZWFkbGluZS5zZXR0aW5nc319IikpOw0KbWVudUl0ZW1zLnB1c2gobmV3IE1haW5NZW51SXRlbSgibG9nIiwgInt7Lm1haW5NZW51Lml0ZW0ubG9nfX0iLCAibG9nLnBuZyIsICJ7ey5tYWluTWVudS5oZWFkbGluZS5sb2d9fSIpKTsNCm1lbnVJdGVtcy5wdXNoKG5ldyBNYWluTWVudUl0ZW0oImxvZ291dCIsICJ7ey5tYWluTWVudS5pdGVtLmxvZ291dH19IiwgImxvZ291dC5wbmciLCAie3subWFpbk1lbnUuaGVhZGxpbmUubG9nb3V0fX0iKSk7DQovLyBTZXR0aW5ncyBjYXRlZ29yaWVzDQp2YXIgc2V0dGluZ3NDYXRlZ29yeSA9IG5ldyBBcnJheSgpOw0Kc2V0dGluZ3NDYXRlZ29yeS5wdXNoKG5ldyBTZXR0aW5nc0NhdGVnb3J5SXRlbSgie3suc2V0dGluZ3MuY2F0ZWdvcnkuZ2VuZXJhbH19IiwgInRsc01vZGUseHRldmVBdXRvVXBkYXRlLGhvc3RJUCx0dW5lcixlcGdTb3VyY2UsZGlzYWxsb3dVUkxEdXBsaWNhdGVzLGNsZWFyWE1MVFZDYWNoZSxhcGkiKSk7DQpzZXR0aW5nc0NhdGVnb3J5LnB1c2gobmV3IFNldHRpbmdzQ2F0ZWdvcnlJdGVtKCJ7ey5zZXR0aW5ncy5jYXRlZ29yeS5tYXBwaW5nfX0iLCAiZGVmYXVsdE1pc3NpbmdFUEcsZW5hYmxlTWFwcGVkQ2hhbm5lbHMiKSk7DQpzZXR0aW5nc0NhdGVnb3J5LnB1c2gobmV3IFNldHRpbmdzQ2F0ZWdvcnlJdGVtKCJ7ey5zZXR0aW5ncy5jYXRlZ29yeS5maWxlc319IiwgInVwZGF0ZSxmaWxlcy51cGRhdGUsdGVtcC5wYXRoLGNhY2hlLmltYWdlcyx4ZXBnLnJlcGxhY2UubWlzc2luZy5pbWFnZXMiKSk7DQpzZXR0aW5nc0NhdGVnb3J5LnB1c2gobmV3IFNldHRpbmdzQ2F0ZWdvcnlJdGVtKCJ7ey5zZXR0aW5ncy5jYXRlZ29yeS5zdHJlYW1pbmd9fSIsICJidWZmZXIsdWRweHksYnVmZmVyLnNpemUua2Isc3RvcmVCdWZmZXJJblJBTSxidWZmZXIudGltZW91dCx1c2VyLmFnZW50LGZmbXBlZy5wYXRoLGZmbXBlZy5vcHRpb25zLHZsYy5wYXRoLHZsYy5vcHRpb25zIikpOw0Kc2V0dGluZ3NDYXRlZ29yeS5wdXNoKG5ldyBTZXR0aW5nc0NhdGVnb3J5SXRlbSgie3suc2V0dGluZ3MuY2F0ZWdvcnkuYmFja3VwfX0iLCAiYmFja3VwLnBhdGgsYmFja3VwLmtlZXAiKSk7DQpzZXR0aW5nc0NhdGVnb3J5LnB1c2gobmV3IFNldHRpbmdzQ2F0ZWdvcnlJdGVtKCJ7ey5zZXR0aW5ncy5jYXRlZ29yeS5hdXRoZW50aWNhdGlvbn19IiwgImF1dGhlbnRpY2F0aW9uLndlYixhdXRoZW50aWNhdGlvbi5wbXMsYXV0aGVudGljYXRpb24ubTN1LGF1dGhlbnRpY2F0aW9uLnhtbCxhdXRoZW50aWNhdGlvbi5hcGkiKSk7DQpmdW5jdGlvbiBzaG93UG9wVXBFbGVtZW50KGVsbSkgew0KICAgIHZhciBhbGxFbGVtZW50cyA9IG5ldyBBcnJheSgicG9wdXAtY3VzdG9tIik7DQogICAgZm9yICh2YXIgaSA9IDA7IGkgPCBhbGxFbGVtZW50cy5sZW5ndGg7IGkrKykgew0KICAgICAgICBzaG93RWxlbWVudChhbGxFbGVtZW50c1tpXSwgZmFsc2UpOw0KICAgIH0NCiAgICBzaG93RWxlbWVudChlbG0sIHRydWUpOw0KICAgIHNldFRpbWVvdXQoZnVuY3Rpb24gKCkgew0KICAgICAgICBzaG93RWxlbWVudCgicG9wdXAiLCB0cnVlKTsNCiAgICB9LCAxMCk7DQogICAgcmV0dXJuOw0KfQ0KZnVuY3Rpb24gc2hvd0VsZW1lbnQoZWxtSUQsIHR5cGUpIHsNCiAgICB2YXIgY3NzQ2xhc3M7DQogICAgc3dpdGNoICh0eXBlKSB7DQogICAgICAgIGNhc2UgdHJ1ZToNCiAgICAgICAgICAgIGNzc0NsYXNzID0gImJsb2NrIjsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlIGZhbHNlOg0KICAgICAgICAgICAgY3NzQ2xhc3MgPSAibm9uZSI7DQogICAgICAgICAgICBicmVhazsNCiAgICB9DQogICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoZWxtSUQpLmNsYXNzTmFtZSA9IGNzc0NsYXNzOw0KfQ0KZnVuY3Rpb24gY2hhbmdlQnV0dG9uQWN0aW9uKGVsZW1lbnQsIGJ1dHRvbklELCBhdHRyaWJ1dGUpIHsNCiAgICB2YXIgdmFsdWUgPSBlbGVtZW50Lm9wdGlvbnNbZWxlbWVudC5zZWxlY3RlZEluZGV4XS52YWx1ZTsNCiAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChidXR0b25JRCkuc2V0QXR0cmlidXRlKGF0dHJpYnV0ZSwgdmFsdWUpOw0KfQ0KZnVuY3Rpb24gZ2V0TG9jYWxEYXRhKGRhdGFUeXBlLCBpZCkgew0KICAgIGxldCBkYXRhID0ge307DQogICAgc3dpdGNoIChkYXRhVHlwZSkgew0KICAgICAgICBjYXNlICJtM3UiOg0KICAgICAgICAgICAgZGF0YSA9IFNFUlZFUlsic2V0dGluZ3MiXVsiZmlsZXMiXVtkYXRhVHlwZV1baWRdOw0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGNhc2UgImhkaHIiOg0KICAgICAgICAgICAgZGF0YSA9IFNFUlZFUlsic2V0dGluZ3MiXVsiZmlsZXMiXVtkYXRhVHlwZV1baWRdOw0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGNhc2UgImZpbHRlciI6DQogICAgICAgIGNhc2UgImN1c3RvbS1maWx0ZXIiOg0KICAgICAgICBjYXNlICJncm91cC10aXRsZSI6DQogICAgICAgICAgICBpZiAoaWQgPT0gLTEpIHsNCiAgICAgICAgICAgICAgICBkYXRhWyJhY3RpdmUiXSA9IHRydWU7DQogICAgICAgICAgICAgICAgZGF0YVsiY2FzZVNlbnNpdGl2ZSJdID0gZmFsc2U7DQogICAgICAgICAgICAgICAgZGF0YVsiZGVzY3JpcHRpb24iXSA9ICIiOw0KICAgICAgICAgICAgICAgIGRhdGFbImV4Y2x1ZGUiXSA9ICIiOw0KICAgICAgICAgICAgICAgIGRhdGFbImZpbHRlciJdID0gIiI7DQogICAgICAgICAgICAgICAgZGF0YVsiaW5jbHVkZSJdID0gIiI7DQogICAgICAgICAgICAgICAgZGF0YVsibmFtZSJdID0gIiI7DQogICAgICAgICAgICAgICAgZGF0YVsidHlwZSJdID0gImdyb3VwLXRpdGxlIjsNCiAgICAgICAgICAgICAgICBkYXRhWyJwcmVzZXJ2ZU1hcHBpbmciXSA9IHRydWU7DQogICAgICAgICAgICAgICAgZGF0YVsic3RhcnRpbmdDaGFubmVsIl0gPSBTRVJWRVJbInNldHRpbmdzIl1bIm1hcHBpbmcuZmlyc3QuY2hhbm5lbCJdOw0KICAgICAgICAgICAgICAgIFNFUlZFUlsic2V0dGluZ3MiXVsiZmlsdGVyIl1baWRdID0gZGF0YTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGRhdGEgPSBTRVJWRVJbInNldHRpbmdzIl1bImZpbHRlciJdW2lkXTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJ4bWx0diI6DQogICAgICAgICAgICBkYXRhID0gU0VSVkVSWyJzZXR0aW5ncyJdWyJmaWxlcyJdW2RhdGFUeXBlXVtpZF07DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSAidXNlcnMiOg0KICAgICAgICAgICAgZGF0YSA9IFNFUlZFUlsidXNlcnMiXVtpZF1bImRhdGEiXTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJtYXBwaW5nIjoNCiAgICAgICAgICAgIGRhdGEgPSBTRVJWRVJbInhlcGciXVsiZXBnTWFwcGluZyJdW2lkXTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJtM3VHcm91cHMiOg0KICAgICAgICAgICAgZGF0YSA9IFNFUlZFUlsiZGF0YSJdWyJwbGF5bGlzdCJdWyJtM3UiXVsiZ3JvdXBzIl07DQogICAgICAgICAgICBicmVhazsNCiAgICB9DQogICAgcmV0dXJuIGRhdGE7DQp9DQpmdW5jdGlvbiBnZXRPd25PYmpQcm9wcyhvYmplY3QpIHsNCiAgICByZXR1cm4gb2JqZWN0ID8gT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMob2JqZWN0KSA6IFtdOw0KfQ0KZnVuY3Rpb24gZ2V0QWxsU2VsZWN0ZWRDaGFubmVscygpIHsNCiAgICB2YXIgY2hhbm5lbHMgPSBuZXcgQXJyYXkoKTsNCiAgICBpZiAoQlVMS19FRElUID09IGZhbHNlKSB7DQogICAgICAgIHJldHVybiBjaGFubmVsczsNCiAgICB9DQogICAgdmFyIHRycyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb250ZW50X3RhYmxlIikuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlRSIik7DQogICAgZm9yICh2YXIgaSA9IDE7IGkgPCB0cnMubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgaWYgKHRyc1tpXS5zdHlsZS5kaXNwbGF5ICE9ICJub25lIikgew0KICAgICAgICAgICAgaWYgKHRyc1tpXS5maXJzdENoaWxkLmZpcnN0Q2hpbGQuY2hlY2tlZCA9PSB0cnVlKSB7DQogICAgICAgICAgICAgICAgY2hhbm5lbHMucHVzaCh0cnNbaV0uaWQpOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQogICAgfQ0KICAgIHJldHVybiBjaGFubmVsczsNCn0NCmZ1bmN0aW9uIHNlbGVjdEFsbENoYW5uZWxzKCkgew0KICAgIHZhciBidWxrID0gZmFsc2U7DQogICAgdmFyIHRycyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb250ZW50X3RhYmxlIikuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlRSIik7DQogICAgaWYgKHRyc1swXS5maXJzdENoaWxkLmZpcnN0Q2hpbGQuY2hlY2tlZCA9PSB0cnVlKSB7DQogICAgICAgIGJ1bGsgPSB0cnVlOw0KICAgIH0NCiAgICBmb3IgKHZhciBpID0gMTsgaSA8IHRycy5sZW5ndGg7IGkrKykgew0KICAgICAgICBpZiAodHJzW2ldLnN0eWxlLmRpc3BsYXkgIT0gIm5vbmUiKSB7DQogICAgICAgICAgICBzd2l0Y2ggKGJ1bGspIHsNCiAgICAgICAgICAgICAgICBjYXNlIHRydWU6DQogICAgICAgICAgICAgICAgICAgIHRyc1tpXS5maXJzdENoaWxkLmZpcnN0Q2hpbGQuY2hlY2tlZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgZmFsc2U6DQogICAgICAgICAgICAgICAgICAgIHRyc1tpXS5maXJzdENoaWxkLmZpcnN0Q2hpbGQuY2hlY2tlZCA9IGZhbHNlOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KICAgIH0NCiAgICByZXR1cm47DQp9DQpmdW5jdGlvbiBidWxrRWRpdCgpIHsNCiAgICBCVUxLX0VESVQgPSAhQlVMS19FRElUOw0KICAgIHZhciBjbGFzc05hbWU7DQogICAgdmFyIHJvd3MgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCJidWxrIik7DQogICAgc3dpdGNoIChCVUxLX0VESVQpIHsNCiAgICAgICAgY2FzZSB0cnVlOg0KICAgICAgICAgICAgY2xhc3NOYW1lID0gImJ1bGsgc2hvd0J1bGsiOw0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGNhc2UgZmFsc2U6DQogICAgICAgICAgICBjbGFzc05hbWUgPSAiYnVsayBoaWRlQnVsayI7DQogICAgICAgICAgICBicmVhazsNCiAgICB9DQogICAgZm9yICh2YXIgaSA9IDA7IGkgPCByb3dzLmxlbmd0aDsgaSsrKSB7DQogICAgICAgIHJvd3NbaV0uY2xhc3NOYW1lID0gY2xhc3NOYW1lOw0KICAgICAgICByb3dzW2ldLmNoZWNrZWQgPSBmYWxzZTsNCiAgICB9DQogICAgcmV0dXJuOw0KfQ0KZnVuY3Rpb24gc29ydFRhYmxlKGNvbHVtbikgew0KICAgIGlmIChjb2x1bW4gPT0gQ09MVU1OX1RPX1NPUlQpIHsNCiAgICAgICAgcmV0dXJuOw0KICAgIH0NCiAgICBjb25zdCB0YWJsZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb250ZW50X3RhYmxlIik7DQogICAgY29uc3QgdGFibGVIZWFkID0gdGFibGUuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlRSIilbMF07DQogICAgY29uc3QgdGFibGVJdGVtcyA9IHRhYmxlSGVhZC5nZXRFbGVtZW50c0J5VGFnTmFtZSgiVEQiKTsNCiAgICBjb25zdCBzb3J0QXJyID0gW107DQogICAgbGV0IHhWYWx1ZTsNCiAgICBpZiAoY29sdW1uID49IDAgJiYgQ09MVU1OX1RPX1NPUlQgPj0gMCkgew0KICAgICAgICB0YWJsZUl0ZW1zW0NPTFVNTl9UT19TT1JUXS5jbGFzc05hbWUgPSAicG9pbnRlciI7DQogICAgICAgIHRhYmxlSXRlbXNbY29sdW1uXS5jbGFzc05hbWUgPSAic29ydFRoaXMiOw0KICAgIH0NCiAgICBDT0xVTU5fVE9fU09SVCA9IGNvbHVtbjsNCiAgICBjb25zdCByb3dzID0gdGFibGUucm93czsNCiAgICBpZiAocm93c1sxXSAhPSB1bmRlZmluZWQpIHsNCiAgICAgICAgY29uc3QgdGFibGVIZWFkZXIgPSByb3dzWzBdOw0KICAgICAgICBsZXQgeCA9IHJvd3NbMV0uZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlREIilbY29sdW1uXTsNCiAgICAgICAgZm9yIChsZXQgaSA9IDE7IGkgPCByb3dzLmxlbmd0aDsgaSsrKSB7DQogICAgICAgICAgICB4ID0gcm93c1tpXS5nZXRFbGVtZW50c0J5VGFnTmFtZSgiVEQiKVtjb2x1bW5dOw0KICAgICAgICAgICAgc3dpdGNoICh4LmNoaWxkTm9kZXNbMF0udGFnTmFtZS50b0xvd2VyQ2FzZSgpKSB7DQogICAgICAgICAgICAgICAgY2FzZSAiaW5wdXQiOg0KICAgICAgICAgICAgICAgICAgICB4VmFsdWUgPSB4LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJJTlBVVCIpWzBdLnZhbHVlLnRvTG93ZXJDYXNlKCk7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgInAiOg0KICAgICAgICAgICAgICAgICAgICB4VmFsdWUgPSB4LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJQIilbMF0uaW5uZXJUZXh0LnRvTG93ZXJDYXNlKCk7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgc29ydEFyci5wdXNoKHsga2V5OiB4VmFsdWUgPyB4VmFsdWUgOiBpLCByb3c6IHJvd3NbaV0gfSk7DQogICAgICAgIH0NCiAgICAgICAgd2hpbGUgKHRhYmxlLmZpcnN0Q2hpbGQpIHsNCiAgICAgICAgICAgIHRhYmxlLnJlbW92ZUNoaWxkKHRhYmxlLmZpcnN0Q2hpbGQpOw0KICAgICAgICB9DQogICAgICAgIHNvcnRBcnIuc29ydCgoc2UxLCBzZTIpID0+IHsNCiAgICAgICAgICAgIGNvbnN0IHNlMUtleU51bSA9IHBhcnNlRmxvYXQoU3RyaW5nKHNlMS5rZXkpKTsNCiAgICAgICAgICAgIGNvbnN0IHNlMktleU51bSA9IHBhcnNlRmxvYXQoU3RyaW5nKHNlMi5rZXkpKTsNCiAgICAgICAgICAgIGlmICghaXNOYU4oc2UxS2V5TnVtKSAmJiAhaXNOYU4oc2UyS2V5TnVtKSkgew0KICAgICAgICAgICAgICAgIHJldHVybiBzZTFLZXlOdW0gLSBzZTJLZXlOdW07DQogICAgICAgICAgICB9DQogICAgICAgICAgICBpZiAoc2UxLmtleSA8IHNlMi5rZXkpIHsNCiAgICAgICAgICAgICAgICByZXR1cm4gLTE7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBpZiAoc2UxLmtleSA+IHNlMi5rZXkpIHsNCiAgICAgICAgICAgICAgICByZXR1cm4gMTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIHJldHVybiAwOw0KICAgICAgICB9KTsNCiAgICAgICAgdGFibGUuYXBwZW5kQ2hpbGQodGFibGVIZWFkZXIpOw0KICAgICAgICBzb3J0QXJyLmZvckVhY2goKHNlKSA9PiB7DQogICAgICAgICAgICB0YWJsZS5hcHBlbmRDaGlsZChzZS5yb3cpOw0KICAgICAgICB9KTsNCiAgICB9DQogICAgcmV0dXJuOw0KfQ0KZnVuY3Rpb24gY3JlYXRlU2VhcmNoT2JqKCkgew0KICAgIFNFQVJDSF9NQVBQSU5HID0gbmV3IE9iamVjdCgpOw0KICAgIHZhciBkYXRhID0gU0VSVkVSWyJ4ZXBnIl1bImVwZ01hcHBpbmciXTsNCiAgICB2YXIgY2hhbm5lbHMgPSBnZXRPd25PYmpQcm9wcyhkYXRhKTsNCiAgICB2YXIgY2hhbm5lbEtleXMgPSBbIngtYWN0aXZlIiwgIngtY2hhbm5lbElEIiwgIngtbmFtZSIsICJ1cGRhdGVDaGFubmVsTmFtZVJlZ2V4IiwgIl9maWxlLm0zdS5uYW1lIiwgIngtZ3JvdXAtdGl0bGUiLCAieC14bWx0di1maWxlIl07DQogICAgY2hhbm5lbHMuZm9yRWFjaChpZCA9PiB7DQogICAgICAgIGNoYW5uZWxLZXlzLmZvckVhY2goa2V5ID0+IHsNCiAgICAgICAgICAgIGlmIChrZXkgPT0gIngtYWN0aXZlIikgew0KICAgICAgICAgICAgICAgIHN3aXRjaCAoZGF0YVtpZF1ba2V5XSkgew0KICAgICAgICAgICAgICAgICAgICBjYXNlIHRydWU6DQogICAgICAgICAgICAgICAgICAgICAgICBTRUFSQ0hfTUFQUElOR1tpZF0gPSAib25saW5lICI7DQogICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICAgICAgY2FzZSBmYWxzZToNCiAgICAgICAgICAgICAgICAgICAgICAgIFNFQVJDSF9NQVBQSU5HW2lkXSA9ICJvZmZsaW5lICI7DQogICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9DQogICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICBpZiAoa2V5ID09ICJ4LXhtbHR2LWZpbGUiKSB7DQogICAgICAgICAgICAgICAgICAgIHZhciB4bWx0dkZpbGUgPSBnZXRWYWx1ZUZyb21Qcm92aWRlckZpbGUoZGF0YVtpZF1ba2V5XSwgInhtbHR2IiwgIm5hbWUiKTsNCiAgICAgICAgICAgICAgICAgICAgaWYgKHhtbHR2RmlsZSAhPSB1bmRlZmluZWQpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIFNFQVJDSF9NQVBQSU5HW2lkXSA9IFNFQVJDSF9NQVBQSU5HW2lkXSArIHhtbHR2RmlsZSArICIgIjsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICAgICAgU0VBUkNIX01BUFBJTkdbaWRdID0gU0VBUkNIX01BUFBJTkdbaWRdICsgZGF0YVtpZF1ba2V5XSArICIgIjsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9DQogICAgICAgIH0pOw0KICAgIH0pOw0KICAgIHJldHVybjsNCn0NCmZ1bmN0aW9uIHNlYXJjaEluTWFwcGluZygpIHsNCiAgICB2YXIgc2VhcmNoVmFsdWUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic2VhcmNoTWFwcGluZyIpLnZhbHVlOw0KICAgIHZhciB0cnMgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29udGVudF90YWJsZSIpLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJUUiIpOw0KICAgIGZvciAodmFyIGkgPSAxOyBpIDwgdHJzLmxlbmd0aDsgKytpKSB7DQogICAgICAgIHZhciBpZCA9IHRyc1tpXS5nZXRBdHRyaWJ1dGUoImlkIik7DQogICAgICAgIHZhciBlbGVtZW50ID0gU0VBUkNIX01BUFBJTkdbaWRdOw0KICAgICAgICBzd2l0Y2ggKGVsZW1lbnQudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhzZWFyY2hWYWx1ZS50b0xvd2VyQ2FzZSgpKSkgew0KICAgICAgICAgICAgY2FzZSB0cnVlOg0KICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5zdHlsZS5kaXNwbGF5ID0gIiI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlIGZhbHNlOg0KICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5zdHlsZS5kaXNwbGF5ID0gIm5vbmUiOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICB9DQogICAgfQ0KICAgIHJldHVybjsNCn0NCmZ1bmN0aW9uIGNhbGN1bGF0ZVdyYXBwZXJIZWlnaHQoKSB7DQogICAgaWYgKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJib3gtd3JhcHBlciIpKSB7DQogICAgICAgIHZhciBlbG0gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYm94LXdyYXBwZXIiKTsNCiAgICAgICAgdmFyIGRpdnMgPSBuZXcgQXJyYXkoIm15U3RyZWFtc0JveCIsICJjbGllbnRJbmZvIiwgImNvbnRlbnQiKTsNCiAgICAgICAgdmFyIGVsZW1lbnRzSGVpZ2h0ID0gMCAtIGVsbS5vZmZzZXRIZWlnaHQ7DQogICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgZGl2cy5sZW5ndGg7IGkrKykgew0KICAgICAgICAgICAgZWxlbWVudHNIZWlnaHQgPSBlbGVtZW50c0hlaWdodCArIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGRpdnNbaV0pLm9mZnNldEhlaWdodDsNCiAgICAgICAgfQ0KICAgICAgICBlbG0uc3R5bGUuaGVpZ2h0ID0gd2luZG93LmlubmVySGVpZ2h0IC0gZWxlbWVudHNIZWlnaHQgKyAicHgiOw0KICAgIH0NCiAgICByZXR1cm47DQp9DQpmdW5jdGlvbiBjaGFuZ2VDaGFubmVsTnVtYmVyKGVsZW1lbnQpIHsNCiAgICB2YXIgZGJJRCA9IGVsZW1lbnQucGFyZW50Tm9kZS5wYXJlbnROb2RlLmlkOw0KICAgIHZhciBuZXdOdW1iZXIgPSBwYXJzZUZsb2F0KGVsZW1lbnQudmFsdWUpOw0KICAgIHZhciBjaGFubmVsTnVtYmVycyA9IFtdOw0KICAgIHZhciBkYXRhID0gU0VSVkVSWyJ4ZXBnIl1bImVwZ01hcHBpbmciXTsNCiAgICB2YXIgY2hhbm5lbHMgPSBnZXRPd25PYmpQcm9wcyhkYXRhKTsNCiAgICBpZiAoaXNOYU4obmV3TnVtYmVyKSkgew0KICAgICAgICBhbGVydCgie3suYWxlcnQuaW52YWxpZENoYW5uZWxOdW1iZXJ9fSIpOw0KICAgICAgICByZXR1cm47DQogICAgfQ0KICAgIGNoYW5uZWxzLmZvckVhY2goaWQgPT4gew0KICAgICAgICB2YXIgY2hhbm5lbE51bWJlciA9IHBhcnNlRmxvYXQoZGF0YVtpZF1bIngtY2hhbm5lbElEIl0pOw0KICAgICAgICBjaGFubmVsTnVtYmVycy5wdXNoKGNoYW5uZWxOdW1iZXIpOw0KICAgIH0pOw0KICAgIGZvciAodmFyIGkgPSAwOyBpIDwgY2hhbm5lbE51bWJlcnMubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgaWYgKGNoYW5uZWxOdW1iZXJzLmluZGV4T2YobmV3TnVtYmVyKSA9PSAtMSkgew0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIH0NCiAgICAgICAgaWYgKE1hdGguZmxvb3IobmV3TnVtYmVyKSA9PSBuZXdOdW1iZXIpIHsNCiAgICAgICAgICAgIG5ld051bWJlciA9IG5ld051bWJlciArIDE7DQogICAgICAgIH0NCiAgICAgICAgZWxzZSB7DQogICAgICAgICAgICBuZXdOdW1iZXIgPSBuZXdOdW1iZXIgKyAwLjE7DQogICAgICAgICAgICBuZXdOdW1iZXIudG9GaXhlZCgxKTsNCiAgICAgICAgICAgIG5ld051bWJlciA9IE1hdGgucm91bmQobmV3TnVtYmVyICogMTApIC8gMTA7DQogICAgICAgIH0NCiAgICB9DQogICAgZGF0YVtkYklEXVsieC1jaGFubmVsSUQiXSA9IG5ld051bWJlci50b1N0cmluZygpOw0KICAgIGVsZW1lbnQudmFsdWUgPSBuZXdOdW1iZXI7DQogICAgaWYgKENPTFVNTl9UT19TT1JUID09IDEpIHsNCiAgICAgICAgQ09MVU1OX1RPX1NPUlQgPSAtMTsNCiAgICAgICAgc29ydFRhYmxlKDEpOw0KICAgIH0NCiAgICByZXR1cm47DQp9DQpmdW5jdGlvbiBiYWNrdXAoKSB7DQogICAgdmFyIGRhdGEgPSBuZXcgT2JqZWN0KCk7DQogICAgdmFyIGNtZCA9ICJ4dGV2ZUJhY2t1cCI7DQogICAgdmFyIHNlcnZlciA9IG5ldyBTZXJ2ZXIoY21kKTsNCiAgICBzZXJ2ZXIucmVxdWVzdChkYXRhKTsNCiAgICByZXR1cm47DQp9DQpmdW5jdGlvbiB0b2dnbGVDaGFubmVsU3RhdHVzKGlkKSB7DQogICAgdmFyIGVsZW1lbnQ7DQogICAgdmFyIHN0YXR1czsNCiAgICBpZiAoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImFjdGl2ZSIpKSB7DQogICAgICAgIHZhciBjaGVja2JveCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJhY3RpdmUiKTsNCiAgICAgICAgc3RhdHVzID0gKGNoZWNrYm94KS5jaGVja2VkOw0KICAgIH0NCiAgICB2YXIgaWRzID0gZ2V0QWxsU2VsZWN0ZWRDaGFubmVscygpOw0KICAgIGlmIChpZHMubGVuZ3RoID09IDApIHsNCiAgICAgICAgaWRzLnB1c2goaWQpOw0KICAgIH0NCiAgICBpZHMuZm9yRWFjaChpZCA9PiB7DQogICAgICAgIHZhciBjaGFubmVsID0gU0VSVkVSWyJ4ZXBnIl1bImVwZ01hcHBpbmciXVtpZF07DQogICAgICAgIGNoYW5uZWxbIngtYWN0aXZlIl0gPSBzdGF0dXM7DQogICAgICAgIHN3aXRjaCAoY2hhbm5lbFsieC1hY3RpdmUiXSkgew0KICAgICAgICAgICAgY2FzZSB0cnVlOg0KICAgICAgICAgICAgICAgIGlmIChjaGFubmVsWyJ4LXhtbHR2LWZpbGUiXSA9PSAiLSIgfHwgY2hhbm5lbFsieC1tYXBwaW5nIl0gPT0gIi0iKSB7DQogICAgICAgICAgICAgICAgICAgIGlmIChCVUxLX0VESVQgPT0gZmFsc2UpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGFsZXJ0KGNoYW5uZWxbIngtbmFtZSJdICsgIjogTWlzc2luZyBYTUxUViBmaWxlIC8gY2hhbm5lbCIpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2hlY2tib3guY2hlY2tlZCA9IGZhbHNlOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIGNoYW5uZWxbIngtYWN0aXZlIl0gPSBmYWxzZTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlIGZhbHNlOg0KICAgICAgICAgICAgICAgIC8vIGNvZGUuLi4NCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgfQ0KICAgICAgICBpZiAoY2hhbm5lbFsieC1hY3RpdmUiXSA9PSBmYWxzZSkgew0KICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpLmNsYXNzTmFtZSA9ICJub3RBY3RpdmVFUEciOw0KICAgICAgICB9DQogICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpLmNsYXNzTmFtZSA9ICJhY3RpdmVFUEciOw0KICAgICAgICB9DQogICAgfSk7DQp9DQpmdW5jdGlvbiB0b2dnbGVHcm91cFVwZGF0ZUNiKHhlcGdJZCwgdGFyZ2V0KSB7DQogICAgdGFyZ2V0LmNsYXNzTmFtZSA9ICdjaGFuZ2VkJzsNCiAgICBjb25zdCBncm91cElucHV0ID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignaW5wdXRbbmFtZT0ieC1ncm91cC10aXRsZSJdJyk7DQogICAgY29uc3QgbWFwcGluZyA9IGdldExvY2FsRGF0YSgnbWFwcGluZycsIHhlcGdJZCk7DQogICAgaWYgKHRhcmdldC5jaGVja2VkKSB7DQogICAgICAgIGdyb3VwSW5wdXQuZGF0YXNldC5vbGRWYWx1ZSA9IGdyb3VwSW5wdXQudmFsdWU7DQogICAgICAgIGdyb3VwSW5wdXQudmFsdWUgPSBtYXBwaW5nWydncm91cC10aXRsZSddOw0KICAgICAgICBncm91cElucHV0LmRpc2FibGVkID0gdHJ1ZTsNCiAgICB9DQogICAgZWxzZSB7DQogICAgICAgIGdyb3VwSW5wdXQudmFsdWUgPSBncm91cElucHV0LmRhdGFzZXQub2xkVmFsdWU7DQogICAgICAgIGdyb3VwSW5wdXQuZGlzYWJsZWQgPSBmYWxzZTsNCiAgICB9DQogICAgZ3JvdXBJbnB1dC5jbGFzc05hbWUgPSAnY2hhbmdlZCc7DQp9DQpmdW5jdGlvbiByZXN0b3JlKCkgew0KICAgIGlmIChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndXBsb2FkJykpIHsNCiAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3VwbG9hZCcpLnJlbW92ZSgpOw0KICAgIH0NCiAgICB2YXIgcmVzdG9yZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIklOUFVUIik7DQogICAgcmVzdG9yZS5zZXRBdHRyaWJ1dGUoInR5cGUiLCAiZmlsZSIpOw0KICAgIHJlc3RvcmUuc2V0QXR0cmlidXRlKCJjbGFzcyIsICJub3RWaXNpYmxlIik7DQogICAgcmVzdG9yZS5zZXRBdHRyaWJ1dGUoIm5hbWUiLCAiIik7DQogICAgcmVzdG9yZS5pZCA9ICJ1cGxvYWQiOw0KICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQocmVzdG9yZSk7DQogICAgcmVzdG9yZS5jbGljaygpOw0KICAgIHJlc3RvcmUub25jaGFuZ2UgPSBmdW5jdGlvbiAoKSB7DQogICAgICAgIHZhciBmaWxlbmFtZSA9IHJlc3RvcmUuZmlsZXNbMF0ubmFtZTsNCiAgICAgICAgdmFyIGNoZWNrID0gY29uZmlybSgiRmlsZTogIiArIGZpbGVuYW1lICsgIlxue3suY29uZmlybS5yZXN0b3JlfX0iKTsNCiAgICAgICAgaWYgKGNoZWNrID09IHRydWUpIHsNCiAgICAgICAgICAgIHZhciByZWFkZXIgPSBuZXcgRmlsZVJlYWRlcigpOw0KICAgICAgICAgICAgdmFyIGZpbGUgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCdpbnB1dFt0eXBlPWZpbGVdJykuZmlsZXNbMF07DQogICAgICAgICAgICBpZiAoZmlsZSkgew0KICAgICAgICAgICAgICAgIHJlYWRlci5yZWFkQXNEYXRhVVJMKGZpbGUpOw0KICAgICAgICAgICAgICAgIHJlYWRlci5vbmxvYWQgPSBmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICAgICAgICAgIHZhciBkYXRhID0gbmV3IE9iamVjdCgpOw0KICAgICAgICAgICAgICAgICAgICB2YXIgY21kID0gInh0ZXZlUmVzdG9yZSI7DQogICAgICAgICAgICAgICAgICAgIGRhdGFbImJhc2U2NCJdID0gcmVhZGVyLnJlc3VsdDsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHNlcnZlciA9IG5ldyBTZXJ2ZXIoY21kKTsNCiAgICAgICAgICAgICAgICAgICAgc2VydmVyLnJlcXVlc3QoZGF0YSk7DQogICAgICAgICAgICAgICAgfTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgICAgIGFsZXJ0KCJGaWxlIGNvdWxkIG5vdCBiZSBsb2FkZWQiKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIHJlc3RvcmUucmVtb3ZlKCk7DQogICAgICAgICAgICByZXR1cm47DQogICAgICAgIH0NCiAgICB9Ow0KICAgIHJldHVybjsNCn0NCmZ1bmN0aW9uIHVwbG9hZExvZ28oKSB7DQogICAgaWYgKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd1cGxvYWQnKSkgew0KICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndXBsb2FkJykucmVtb3ZlKCk7DQogICAgfQ0KICAgIHZhciB1cGxvYWQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJJTlBVVCIpOw0KICAgIHVwbG9hZC5zZXRBdHRyaWJ1dGUoInR5cGUiLCAiZmlsZSIpOw0KICAgIHVwbG9hZC5zZXRBdHRyaWJ1dGUoImNsYXNzIiwgIm5vdFZpc2libGUiKTsNCiAgICB1cGxvYWQuc2V0QXR0cmlidXRlKCJuYW1lIiwgIiIpOw0KICAgIHVwbG9hZC5pZCA9ICJ1cGxvYWQiOw0KICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQodXBsb2FkKTsNCiAgICB1cGxvYWQuY2xpY2soKTsNCiAgICB1cGxvYWQub25ibHVyID0gZnVuY3Rpb24gKCkgew0KICAgICAgICBhbGVydCgpOw0KICAgIH07DQogICAgdXBsb2FkLm9uY2hhbmdlID0gZnVuY3Rpb24gKCkgew0KICAgICAgICB2YXIgZmlsZW5hbWUgPSB1cGxvYWQuZmlsZXNbMF0ubmFtZTsNCiAgICAgICAgdmFyIHJlYWRlciA9IG5ldyBGaWxlUmVhZGVyKCk7DQogICAgICAgIHZhciBmaWxlID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignaW5wdXRbdHlwZT1maWxlXScpLmZpbGVzWzBdOw0KICAgICAgICBpZiAoZmlsZSkgew0KICAgICAgICAgICAgcmVhZGVyLnJlYWRBc0RhdGFVUkwoZmlsZSk7DQogICAgICAgICAgICByZWFkZXIub25sb2FkID0gZnVuY3Rpb24gKCkgew0KICAgICAgICAgICAgICAgIHZhciBkYXRhID0gbmV3IE9iamVjdCgpOw0KICAgICAgICAgICAgICAgIHZhciBjbWQgPSAidXBsb2FkTG9nbyI7DQogICAgICAgICAgICAgICAgZGF0YVsiYmFzZTY0Il0gPSByZWFkZXIucmVzdWx0Ow0KICAgICAgICAgICAgICAgIGRhdGFbImZpbGVuYW1lIl0gPSBmaWxlLm5hbWU7DQogICAgICAgICAgICAgICAgdmFyIHNlcnZlciA9IG5ldyBTZXJ2ZXIoY21kKTsNCiAgICAgICAgICAgICAgICBzZXJ2ZXIucmVxdWVzdChkYXRhKTsNCiAgICAgICAgICAgICAgICB2YXIgdXBkYXRlTG9nbyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd1cGRhdGUtaWNvbicpOw0KICAgICAgICAgICAgICAgIHVwZGF0ZUxvZ28uY2hlY2tlZCA9IGZhbHNlOw0KICAgICAgICAgICAgICAgIHVwZGF0ZUxvZ28uY2xhc3NOYW1lID0gImNoYW5nZWQiOw0KICAgICAgICAgICAgfTsNCiAgICAgICAgfQ0KICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgIGFsZXJ0KCJGaWxlIGNvdWxkIG5vdCBiZSBsb2FkZWQiKTsNCiAgICAgICAgfQ0KICAgICAgICB1cGxvYWQucmVtb3ZlKCk7DQogICAgICAgIHJldHVybjsNCiAgICB9Ow0KfQ0KZnVuY3Rpb24gY2hlY2tVbmRvKGtleSkgew0KICAgIHN3aXRjaCAoa2V5KSB7DQogICAgICAgIGNhc2UgImVwZ01hcHBpbmciOg0KICAgICAgICAgICAgaWYgKFVORE8uaGFzT3duUHJvcGVydHkoa2V5KSkgew0KICAgICAgICAgICAgICAgIFNFUlZFUlsieGVwZyJdW2tleV0gPSBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KFVORE9ba2V5XSkpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgZWxzZSB7DQogICAgICAgICAgICAgICAgVU5ET1trZXldID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeShTRVJWRVJbInhlcGciXVtrZXldKSk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgIGJyZWFrOw0KICAgIH0NCiAgICByZXR1cm47DQp9DQpmdW5jdGlvbiB1cGRhdGVMb2coKSB7DQogICAgdmFyIHNlcnZlciA9IG5ldyBTZXJ2ZXIoInVwZGF0ZUxvZyIpOw0KICAgIHNlcnZlci5yZXF1ZXN0KG5ldyBPYmplY3QoKSk7DQp9DQo=" - webUI["html/js/classes_ts.js"] = "dmFyIF9fZXh0ZW5kcyA9ICh0aGlzICYmIHRoaXMuX19leHRlbmRzKSB8fCAoZnVuY3Rpb24gKCkgew0KICAgIHZhciBleHRlbmRTdGF0aWNzID0gZnVuY3Rpb24gKGQsIGIpIHsNCiAgICAgICAgZXh0ZW5kU3RhdGljcyA9IE9iamVjdC5zZXRQcm90b3R5cGVPZiB8fA0KICAgICAgICAgICAgKHsgX19wcm90b19fOiBbXSB9IGluc3RhbmNlb2YgQXJyYXkgJiYgZnVuY3Rpb24gKGQsIGIpIHsgZC5fX3Byb3RvX18gPSBiOyB9KSB8fA0KICAgICAgICAgICAgZnVuY3Rpb24gKGQsIGIpIHsgZm9yICh2YXIgcCBpbiBiKSBpZiAoYi5oYXNPd25Qcm9wZXJ0eShwKSkgZFtwXSA9IGJbcF07IH07DQogICAgICAgIHJldHVybiBleHRlbmRTdGF0aWNzKGQsIGIpOw0KICAgIH07DQogICAgcmV0dXJuIGZ1bmN0aW9uIChkLCBiKSB7DQogICAgICAgIGV4dGVuZFN0YXRpY3MoZCwgYik7DQogICAgICAgIGZ1bmN0aW9uIF9fKCkgeyB0aGlzLmNvbnN0cnVjdG9yID0gZDsgfQ0KICAgICAgICBkLnByb3RvdHlwZSA9IGIgPT09IG51bGwgPyBPYmplY3QuY3JlYXRlKGIpIDogKF9fLnByb3RvdHlwZSA9IGIucHJvdG90eXBlLCBuZXcgX18oKSk7DQogICAgfTsNCn0pKCk7DQp2YXIgTWFpbk1lbnUgPSAvKiogQGNsYXNzICovIChmdW5jdGlvbiAoKSB7DQogICAgZnVuY3Rpb24gTWFpbk1lbnUoKSB7DQogICAgICAgIHRoaXMuRG9jdW1lbnRJRCA9ICJtYWluLW1lbnUiOw0KICAgICAgICB0aGlzLkhUTUxUYWcgPSAiTEkiOw0KICAgIH0NCiAgICBNYWluTWVudS5wcm90b3R5cGUuY3JlYXRlID0gZnVuY3Rpb24gKCkgew0KICAgICAgICBjb25zb2xlLmxvZyh0aGlzLkRvY3VtZW50SUQpOw0KICAgIH07DQogICAgcmV0dXJuIE1haW5NZW51Ow0KfSgpKTsNCnZhciBNYWluTWVudUl0ZW0gPSAvKiogQGNsYXNzICovIChmdW5jdGlvbiAoX3N1cGVyKSB7DQogICAgX19leHRlbmRzKE1haW5NZW51SXRlbSwgX3N1cGVyKTsNCiAgICBmdW5jdGlvbiBNYWluTWVudUl0ZW0oKSB7DQogICAgICAgIHJldHVybiBfc3VwZXIgIT09IG51bGwgJiYgX3N1cGVyLmFwcGx5KHRoaXMsIGFyZ3VtZW50cykgfHwgdGhpczsNCiAgICB9DQogICAgTWFpbk1lbnVJdGVtLnByb3RvdHlwZS5jcmVhdGUyID0gZnVuY3Rpb24gKCkgew0KICAgICAgICB2YXIgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQodGhpcy5IVE1MVGFnKTsNCiAgICAgICAgZWxlbWVudC5pbm5lclRleHQgPSB0aGlzLlZhbHVlOw0KICAgICAgICBjb25zb2xlLmxvZyhlbGVtZW50KTsNCiAgICB9Ow0KICAgIHJldHVybiBNYWluTWVudUl0ZW07DQp9KE1haW5NZW51KSk7DQpmdW5jdGlvbiBwYWdlUmVhZHkoKSB7DQogICAgdmFyIGl0ZW0gPSBuZXcgTWFpbk1lbnVJdGVtKCk7DQogICAgaXRlbS5WYWx1ZSA9ICJUZXN0IjsNCiAgICBpdGVtLmNyZWF0ZTIoKTsNCn0NCg==" - webUI["html/js/configuration_ts.js"] = "Y2xhc3MgV2l6YXJkQ2F0ZWdvcnkgew0KICAgIGNvbnN0cnVjdG9yKCkgew0KICAgICAgICB0aGlzLkRvY3VtZW50SUQgPSAiY29udGVudCI7DQogICAgfQ0KICAgIGNyZWF0ZUNhdGVnb3J5SGVhZGxpbmUodmFsdWUpIHsNCiAgICAgICAgdmFyIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJINCIpOw0KICAgICAgICBlbGVtZW50LmlubmVySFRNTCA9IHZhbHVlOw0KICAgICAgICByZXR1cm4gZWxlbWVudDsNCiAgICB9DQp9DQpjbGFzcyBXaXphcmRJdGVtIGV4dGVuZHMgV2l6YXJkQ2F0ZWdvcnkgew0KICAgIGNvbnN0cnVjdG9yKGtleSwgaGVhZGxpbmUpIHsNCiAgICAgICAgc3VwZXIoKTsNCiAgICAgICAgdGhpcy5oZWFkbGluZSA9IGhlYWRsaW5lOw0KICAgICAgICB0aGlzLmtleSA9IGtleTsNCiAgICB9DQogICAgY3JlYXRlV2l6YXJkKCkgew0KICAgICAgICB2YXIgaGVhZGxpbmUgPSB0aGlzLmNyZWF0ZUNhdGVnb3J5SGVhZGxpbmUodGhpcy5oZWFkbGluZSk7DQogICAgICAgIHZhciBrZXkgPSB0aGlzLmtleTsNCiAgICAgICAgdmFyIGNvbnRlbnQgPSBuZXcgUG9wdXBDb250ZW50KCk7DQogICAgICAgIHZhciBkZXNjcmlwdGlvbjsNCiAgICAgICAgdmFyIGRvYyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHRoaXMuRG9jdW1lbnRJRCk7DQogICAgICAgIGRvYy5pbm5lckhUTUwgPSAiIjsNCiAgICAgICAgZG9jLmFwcGVuZENoaWxkKGhlYWRsaW5lKTsNCiAgICAgICAgc3dpdGNoIChrZXkpIHsNCiAgICAgICAgICAgIGNhc2UgInR1bmVyIjoNCiAgICAgICAgICAgICAgICB2YXIgdGV4dCA9IG5ldyBBcnJheSgpOw0KICAgICAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBuZXcgQXJyYXkoKTsNCiAgICAgICAgICAgICAgICBmb3IgKHZhciBpID0gMTsgaSA8PSAxMDA7IGkrKykgew0KICAgICAgICAgICAgICAgICAgICB0ZXh0LnB1c2goaSk7DQogICAgICAgICAgICAgICAgICAgIHZhbHVlcy5wdXNoKGkpOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCAiMSIsIGtleSk7DQogICAgICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgiY2xhc3MiLCAid2l6YXJkIik7DQogICAgICAgICAgICAgICAgc2VsZWN0LmlkID0ga2V5Ow0KICAgICAgICAgICAgICAgIGRvYy5hcHBlbmRDaGlsZChzZWxlY3QpOw0KICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uID0gInt7LndpemFyZC50dW5lci5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImVwZ1NvdXJjZSI6DQogICAgICAgICAgICAgICAgdmFyIHRleHQgPSBbIlBNUyIsICJYRVBHIl07DQogICAgICAgICAgICAgICAgdmFyIHZhbHVlcyA9IFsiUE1TIiwgIlhFUEciXTsNCiAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCAiWEVQRyIsIGtleSk7DQogICAgICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgiY2xhc3MiLCAid2l6YXJkIik7DQogICAgICAgICAgICAgICAgc2VsZWN0LmlkID0ga2V5Ow0KICAgICAgICAgICAgICAgIGRvYy5hcHBlbmRDaGlsZChzZWxlY3QpOw0KICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uID0gInt7LndpemFyZC5lcGdTb3VyY2UuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJtM3UiOg0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBrZXksICIiKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LndpemFyZC5tM3UucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgiY2xhc3MiLCAid2l6YXJkIik7DQogICAgICAgICAgICAgICAgaW5wdXQuaWQgPSBrZXk7DQogICAgICAgICAgICAgICAgZG9jLmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbiA9ICJ7ey53aXphcmQubTN1LmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAieG1sdHYiOg0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBrZXksICIiKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LndpemFyZC54bWx0di5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJjbGFzcyIsICJ3aXphcmQiKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5pZCA9IGtleTsNCiAgICAgICAgICAgICAgICBkb2MuYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uID0gInt7LndpemFyZC54bWx0di5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIH0NCiAgICAgICAgdmFyIHByZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlBSRSIpOw0KICAgICAgICBwcmUuaW5uZXJIVE1MID0gZGVzY3JpcHRpb247DQogICAgICAgIGRvYy5hcHBlbmRDaGlsZChwcmUpOw0KICAgIH0NCn0NCmZ1bmN0aW9uIHJlYWR5Rm9yQ29uZmlndXJhdGlvbih3aXphcmQpIHsNCiAgICB2YXIgc2VydmVyID0gbmV3IFNlcnZlcigiZ2V0U2VydmVyQ29uZmlnIik7DQogICAgc2VydmVyLnJlcXVlc3QobmV3IE9iamVjdCgpKTsNCiAgICBzaG93RWxlbWVudCgibG9hZGluZyIsIGZhbHNlKTsNCiAgICBjb25maWd1cmF0aW9uV2l6YXJkW3dpemFyZF0uY3JlYXRlV2l6YXJkKCk7DQp9DQpmdW5jdGlvbiBzYXZlV2l6YXJkKCkgew0KICAgIHZhciBjbWQgPSAic2F2ZVdpemFyZCI7DQogICAgdmFyIGRpdiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb250ZW50Iik7DQogICAgdmFyIGNvbmZpZyA9IGRpdi5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCJ3aXphcmQiKTsNCiAgICB2YXIgd2l6YXJkID0gbmV3IE9iamVjdCgpOw0KICAgIGZvciAodmFyIGkgPSAwOyBpIDwgY29uZmlnLmxlbmd0aDsgaSsrKSB7DQogICAgICAgIHZhciBuYW1lOw0KICAgICAgICB2YXIgdmFsdWU7DQogICAgICAgIHN3aXRjaCAoY29uZmlnW2ldLnRhZ05hbWUpIHsNCiAgICAgICAgICAgIGNhc2UgIlNFTEVDVCI6DQogICAgICAgICAgICAgICAgbmFtZSA9IGNvbmZpZ1tpXS5uYW1lOw0KICAgICAgICAgICAgICAgIHZhbHVlID0gY29uZmlnW2ldLnZhbHVlOw0KICAgICAgICAgICAgICAgIC8vIElmIHRoZSB2YWx1ZSBpcyBhIG51bWJlciwgc3RvcmUgaXQgYXMgYSBudW1iZXINCiAgICAgICAgICAgICAgICBpZiAoaXNOYU4odmFsdWUpKSB7DQogICAgICAgICAgICAgICAgICAgIHdpemFyZFtuYW1lXSA9IHZhbHVlOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICAgICAgd2l6YXJkW25hbWVdID0gcGFyc2VJbnQodmFsdWUpOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgIklOUFVUIjoNCiAgICAgICAgICAgICAgICBzd2l0Y2ggKGNvbmZpZ1tpXS50eXBlKSB7DQogICAgICAgICAgICAgICAgICAgIGNhc2UgInRleHQiOg0KICAgICAgICAgICAgICAgICAgICAgICAgbmFtZSA9IGNvbmZpZ1tpXS5uYW1lOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSBjb25maWdbaV0udmFsdWU7DQogICAgICAgICAgICAgICAgICAgICAgICBpZiAodmFsdWUubGVuZ3RoID09IDApIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgbXNnID0gbmFtZS50b1VwcGVyQ2FzZSgpICsgIjogIiArICJ7ey5hbGVydC5taXNzaW5nSW5wdXR9fSI7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgYWxlcnQobXNnKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICB3aXphcmRbbmFtZV0gPSB2YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICAgICAgLy8gY29kZS4uLg0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICB9DQogICAgfQ0KICAgIHZhciBkYXRhID0gbmV3IE9iamVjdCgpOw0KICAgIGRhdGFbIndpemFyZCJdID0gd2l6YXJkOw0KICAgIHZhciBzZXJ2ZXIgPSBuZXcgU2VydmVyKGNtZCk7DQogICAgc2VydmVyLnJlcXVlc3QoZGF0YSk7DQp9DQovLyBXaXphcmQNCnZhciBjb25maWd1cmF0aW9uV2l6YXJkID0gbmV3IEFycmF5KCk7DQpjb25maWd1cmF0aW9uV2l6YXJkLnB1c2gobmV3IFdpemFyZEl0ZW0oInR1bmVyIiwgInt7LndpemFyZC50dW5lci50aXRsZX19IikpOw0KY29uZmlndXJhdGlvbldpemFyZC5wdXNoKG5ldyBXaXphcmRJdGVtKCJlcGdTb3VyY2UiLCAie3sud2l6YXJkLmVwZ1NvdXJjZS50aXRsZX19IikpOw0KY29uZmlndXJhdGlvbldpemFyZC5wdXNoKG5ldyBXaXphcmRJdGVtKCJtM3UiLCAie3sud2l6YXJkLm0zdS50aXRsZX19IikpOw0KY29uZmlndXJhdGlvbldpemFyZC5wdXNoKG5ldyBXaXphcmRJdGVtKCJ4bWx0diIsICJ7ey53aXphcmQueG1sdHYudGl0bGV9fSIpKTsNCg==" - webUI["html/js/logs_ts.js"] = "Y2xhc3MgTG9nIHsNCiAgICBjcmVhdGVMb2coZW50cnkpIHsNCiAgICAgICAgdmFyIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJQUkUiKTsNCiAgICAgICAgZW50cnkgPSBTdHJpbmcoZW50cnkpOw0KICAgICAgICBpZiAoZW50cnkuaW5kZXhPZigiV0FSTklORyIpICE9IC0xKSB7DQogICAgICAgICAgICBlbGVtZW50LmNsYXNzTmFtZSA9ICJ3YXJuaW5nTXNnIjsNCiAgICAgICAgfQ0KICAgICAgICBpZiAoZW50cnkuaW5kZXhPZigiRVJST1IiKSAhPSAtMSkgew0KICAgICAgICAgICAgZWxlbWVudC5jbGFzc05hbWUgPSAiZXJyb3JNc2ciOw0KICAgICAgICB9DQogICAgICAgIGlmIChlbnRyeS5pbmRleE9mKCJERUJVRyIpICE9IC0xKSB7DQogICAgICAgICAgICBlbGVtZW50LmNsYXNzTmFtZSA9ICJkZWJ1Z01zZyI7DQogICAgICAgIH0NCiAgICAgICAgZWxlbWVudC5pbm5lckhUTUwgPSBlbnRyeTsNCiAgICAgICAgcmV0dXJuIGVsZW1lbnQ7DQogICAgfQ0KfQ0KZnVuY3Rpb24gc2hvd0xvZ3MoYm90dG9tKSB7DQogICAgdmFyIGxvZyA9IG5ldyBMb2coKTsNCiAgICB2YXIgbG9ncyA9IFNFUlZFUlsibG9nIl1bImxvZyJdOw0KICAgIHZhciBkaXYgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29udGVudF9sb2ciKTsNCiAgICBkaXYuaW5uZXJIVE1MID0gIiI7DQogICAgdmFyIGtleXMgPSBnZXRPd25PYmpQcm9wcyhsb2dzKTsNCiAgICBrZXlzLmZvckVhY2gobG9nSUQgPT4gew0KICAgICAgICB2YXIgZW50cnkgPSBsb2cuY3JlYXRlTG9nKGxvZ3NbbG9nSURdKTsNCiAgICAgICAgZGl2LmFwcGVuZChlbnRyeSk7DQogICAgfSk7DQogICAgc2V0VGltZW91dChmdW5jdGlvbiAoKSB7DQogICAgICAgIGlmIChib3R0b20gPT0gdHJ1ZSkgew0KICAgICAgICAgICAgdmFyIHdyYXBwZXIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYm94LXdyYXBwZXIiKTsNCiAgICAgICAgICAgIHdyYXBwZXIuc2Nyb2xsVG9wID0gd3JhcHBlci5zY3JvbGxIZWlnaHQ7DQogICAgICAgIH0NCiAgICB9LCAxMCk7DQp9DQpmdW5jdGlvbiByZXNldExvZ3MoKSB7DQogICAgdmFyIGNtZCA9ICJyZXNldExvZ3MiOw0KICAgIHZhciBkYXRhID0gbmV3IE9iamVjdCgpOw0KICAgIHZhciBzZXJ2ZXIgPSBuZXcgU2VydmVyKGNtZCk7DQogICAgc2VydmVyLnJlcXVlc3QoZGF0YSk7DQp9DQo=" - webUI["html/js/menu_ts.js"] = "Y2xhc3MgTWFpbk1lbnUgew0KICAgIGNvbnN0cnVjdG9yKCkgew0KICAgICAgICB0aGlzLkRvY3VtZW50SUQgPSAibWFpbi1tZW51IjsNCiAgICAgICAgdGhpcy5IVE1MVGFnID0gIkxJIjsNCiAgICAgICAgdGhpcy5JbWFnZVBhdGggPSAiaW1nLyI7DQogICAgfQ0KICAgIGNyZWF0ZUlNRyhzcmMpIHsNCiAgICAgICAgbGV0IGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJJTUciKTsNCiAgICAgICAgZWxlbWVudC5zZXRBdHRyaWJ1dGUoInNyYyIsIHRoaXMuSW1hZ2VQYXRoICsgc3JjKTsNCiAgICAgICAgcmV0dXJuIGVsZW1lbnQ7DQogICAgfQ0KICAgIGNyZWF0ZVZhbHVlKHZhbHVlKSB7DQogICAgICAgIGxldCBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiUCIpOw0KICAgICAgICBlbGVtZW50LmlubmVySFRNTCA9IHZhbHVlOw0KICAgICAgICByZXR1cm4gZWxlbWVudDsNCiAgICB9DQp9DQpjbGFzcyBNYWluTWVudUl0ZW0gZXh0ZW5kcyBNYWluTWVudSB7DQogICAgY29uc3RydWN0b3IobWVudUtleSwgdmFsdWUsIGltYWdlLCBoZWFkbGluZSkgew0KICAgICAgICBzdXBlcigpOw0KICAgICAgICB0aGlzLm1lbnVLZXkgPSBtZW51S2V5Ow0KICAgICAgICB0aGlzLnZhbHVlID0gdmFsdWU7DQogICAgICAgIHRoaXMuaW1nU3JjID0gaW1hZ2U7DQogICAgICAgIHRoaXMuaGVhZGxpbmUgPSBoZWFkbGluZTsNCiAgICB9DQogICAgY3JlYXRlSXRlbSgpIHsNCiAgICAgICAgbGV0IGl0ZW0gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJMSSIpOw0KICAgICAgICBpdGVtLnNldEF0dHJpYnV0ZSgib25jbGljayIsICJqYXZhc2NyaXB0OiBvcGVuVGhpc01lbnUodGhpcykiKTsNCiAgICAgICAgaXRlbS5zZXRBdHRyaWJ1dGUoImlkIiwgdGhpcy5pZCk7DQogICAgICAgIGxldCBpbWcgPSB0aGlzLmNyZWF0ZUlNRyh0aGlzLmltZ1NyYyk7DQogICAgICAgIGxldCB2YWx1ZSA9IHRoaXMuY3JlYXRlVmFsdWUodGhpcy52YWx1ZSk7DQogICAgICAgIGl0ZW0uYXBwZW5kQ2hpbGQoaW1nKTsNCiAgICAgICAgaXRlbS5hcHBlbmRDaGlsZCh2YWx1ZSk7DQogICAgICAgIGxldCBkb2MgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCh0aGlzLkRvY3VtZW50SUQpOw0KICAgICAgICBkb2MuYXBwZW5kQ2hpbGQoaXRlbSk7DQogICAgICAgIHN3aXRjaCAodGhpcy5tZW51S2V5KSB7DQogICAgICAgICAgICBjYXNlICJwbGF5bGlzdCI6DQogICAgICAgICAgICAgICAgdGhpcy50YWJsZUhlYWRlciA9IFsie3sucGxheWxpc3QudGFibGUucGxheWxpc3R9fSIsICJ7ey5wbGF5bGlzdC50YWJsZS50dW5lcn19IiwgInt7LnBsYXlsaXN0LnRhYmxlLmxhc3RVcGRhdGV9fSIsICJ7ey5wbGF5bGlzdC50YWJsZS5hdmFpbGFiaWxpdHl9fSAlIiwgInt7LnBsYXlsaXN0LnRhYmxlLnR5cGV9fSIsICJ7ey5wbGF5bGlzdC50YWJsZS5zdHJlYW1zfX0iLCAie3sucGxheWxpc3QudGFibGUuZ3JvdXBUaXRsZX19ICUiLCAie3sucGxheWxpc3QudGFibGUudHZnSUR9fSAlIiwgInt7LnBsYXlsaXN0LnRhYmxlLnVuaXF1ZUlEfX0gJSJdOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAieG1sdHYiOg0KICAgICAgICAgICAgICAgIHRoaXMudGFibGVIZWFkZXIgPSBbInt7LnhtbHR2LnRhYmxlLmd1aWRlfX0iLCAie3sueG1sdHYudGFibGUubGFzdFVwZGF0ZX19IiwgInt7LnhtbHR2LnRhYmxlLmF2YWlsYWJpbGl0eX19ICUiLCAie3sueG1sdHYudGFibGUuY2hhbm5lbHN9fSIsICJ7ey54bWx0di50YWJsZS5wcm9ncmFtc319Il07DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJmaWx0ZXIiOg0KICAgICAgICAgICAgICAgIHRoaXMudGFibGVIZWFkZXIgPSBbInt7LmZpbHRlci50YWJsZS5zdGFydGluZ0NoYW5uZWx9fSIsICJ7ey5maWx0ZXIudGFibGUubmFtZX19IiwgInt7LmZpbHRlci50YWJsZS50eXBlfX0iLCAie3suZmlsdGVyLnRhYmxlLmZpbHRlcn19Il07DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ1c2VycyI6DQogICAgICAgICAgICAgICAgdGhpcy50YWJsZUhlYWRlciA9IFsie3sudXNlcnMudGFibGUudXNlcm5hbWV9fSIsICJ7ey51c2Vycy50YWJsZS5wYXNzd29yZH19IiwgInt7LnVzZXJzLnRhYmxlLndlYn19IiwgInt7LnVzZXJzLnRhYmxlLnBtc319IiwgInt7LnVzZXJzLnRhYmxlLm0zdX19IiwgInt7LnVzZXJzLnRhYmxlLnhtbH19IiwgInt7LnVzZXJzLnRhYmxlLmFwaX19Il07DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJtYXBwaW5nIjoNCiAgICAgICAgICAgICAgICB0aGlzLnRhYmxlSGVhZGVyID0gWyJCVUxLIiwgInt7Lm1hcHBpbmcudGFibGUuY2hOb319IiwgInt7Lm1hcHBpbmcudGFibGUubG9nb319IiwgInt7Lm1hcHBpbmcudGFibGUuY2hhbm5lbE5hbWV9fSIsICJ7ey5tYXBwaW5nLnRhYmxlLnVwZGF0ZUNoYW5uZWxOYW1lUmVnZXh9fSIsICJ7ey5tYXBwaW5nLnRhYmxlLnBsYXlsaXN0fX0iLCAie3subWFwcGluZy50YWJsZS5ncm91cFRpdGxlfX0iLCAie3subWFwcGluZy50YWJsZS54bWx0dkZpbGV9fSIsICJ7ey5tYXBwaW5nLnRhYmxlLnhtbHR2SUR9fSIsICJ7ey5tYXBwaW5nLnRhYmxlLnRpbWVzaGlmdH19Il07DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIH0NCiAgICB9DQp9DQpjbGFzcyBDb250ZW50IHsNCiAgICBjb25zdHJ1Y3RvcigpIHsNCiAgICAgICAgdGhpcy5Eb2N1bWVudElEID0gImNvbnRlbnQiOw0KICAgICAgICB0aGlzLlRhYmxlSUQgPSAiY29udGVudF90YWJsZSI7DQogICAgICAgIHRoaXMuaGVhZGVyQ2xhc3MgPSAiY29udGVudF90YWJsZV9oZWFkZXIiOw0KICAgICAgICB0aGlzLmludGVyYWN0aW9uSUQgPSAiY29udGVudC1pbnRlcmFjdGlvbiI7DQogICAgfQ0KICAgIGNyZWF0ZUhlYWRsaW5lKHZhbHVlKSB7DQogICAgICAgIGxldCBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiSDMiKTsNCiAgICAgICAgZWxlbWVudC5pbm5lckhUTUwgPSB2YWx1ZTsNCiAgICAgICAgcmV0dXJuIGVsZW1lbnQ7DQogICAgfQ0KICAgIGNyZWF0ZUhSKCkgew0KICAgICAgICByZXR1cm4gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiSFIiKTsNCiAgICB9DQogICAgY3JlYXRlSW50ZXJhY3Rpb24oKSB7DQogICAgICAgIGxldCBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiRElWIik7DQogICAgICAgIGVsZW1lbnQuc2V0QXR0cmlidXRlKCJpZCIsIHRoaXMuaW50ZXJhY3Rpb25JRCk7DQogICAgICAgIHJldHVybiBlbGVtZW50Ow0KICAgIH0NCiAgICBjcmVhdGVESVYoKSB7DQogICAgICAgIGxldCBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiRElWIik7DQogICAgICAgIGVsZW1lbnQuaWQgPSB0aGlzLkRpdklEOw0KICAgICAgICByZXR1cm4gZWxlbWVudDsNCiAgICB9DQogICAgY3JlYXRlVEFCTEUoKSB7DQogICAgICAgIGxldCBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEFCTEUiKTsNCiAgICAgICAgZWxlbWVudC5pZCA9IHRoaXMuVGFibGVJRDsNCiAgICAgICAgcmV0dXJuIGVsZW1lbnQ7DQogICAgfQ0KICAgIGNyZWF0ZVRhYmxlUm93KCkgew0KICAgICAgICBsZXQgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlRSIik7DQogICAgICAgIGVsZW1lbnQuY2xhc3NOYW1lID0gdGhpcy5oZWFkZXJDbGFzczsNCiAgICAgICAgcmV0dXJuIGVsZW1lbnQ7DQogICAgfQ0KICAgIGNyZWF0ZVRhYmxlQ29udGVudChtZW51S2V5KSB7DQogICAgICAgIGxldCBkYXRhID0ge307DQogICAgICAgIGxldCByb3dzID0gW107DQogICAgICAgIGxldCBmaWxlVHlwZXMgPSBbXTsNCiAgICAgICAgc3dpdGNoIChtZW51S2V5KSB7DQogICAgICAgICAgICBjYXNlICJwbGF5bGlzdCI6DQogICAgICAgICAgICAgICAgZmlsZVR5cGVzID0gWyJtM3UiLCAiaGRociJdOw0KICAgICAgICAgICAgICAgIGZpbGVUeXBlcy5mb3JFYWNoKGZpbGVUeXBlID0+IHsNCiAgICAgICAgICAgICAgICAgICAgZGF0YSA9IFNFUlZFUlsic2V0dGluZ3MiXVsiZmlsZXMiXVtmaWxlVHlwZV07DQogICAgICAgICAgICAgICAgICAgIHZhciBrZXlzID0gZ2V0T3duT2JqUHJvcHMoZGF0YSk7DQogICAgICAgICAgICAgICAgICAgIGtleXMuZm9yRWFjaChrZXkgPT4gew0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVFIiKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmlkID0ga2V5Ow0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgiJyArIGZpbGVUeXBlICsgJyIsIHRoaXMpJyk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsibmFtZSJdOw0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChTRVJWRVJbInNldHRpbmdzIl1bImJ1ZmZlciJdICE9ICItIikgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bInR1bmVyIl07DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gIi0iOw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bImxhc3QudXBkYXRlIl07DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsicHJvdmlkZXIuYXZhaWxhYmlsaXR5Il07DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsidHlwZSJdLnRvVXBwZXJDYXNlKCk7DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsiY29tcGF0aWJpbGl0eSJdWyJzdHJlYW1zIl07DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsiY29tcGF0aWJpbGl0eSJdWyJncm91cC50aXRsZSJdOw0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bImNvbXBhdGliaWxpdHkiXVsidHZnLmlkIl07DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsiY29tcGF0aWJpbGl0eSJdWyJzdHJlYW0uaWQiXTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHJvd3MucHVzaCh0cik7DQogICAgICAgICAgICAgICAgICAgIH0pOw0KICAgICAgICAgICAgICAgIH0pOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiZmlsdGVyIjoNCiAgICAgICAgICAgICAgICBkZWxldGUgU0VSVkVSWyJzZXR0aW5ncyJdWyJmaWx0ZXIiXVstMV07DQogICAgICAgICAgICAgICAgZGF0YSA9IFNFUlZFUlsic2V0dGluZ3MiXVsiZmlsdGVyIl07DQogICAgICAgICAgICAgICAgdmFyIGtleXMgPSBnZXRPd25PYmpQcm9wcyhkYXRhKTsNCiAgICAgICAgICAgICAgICBrZXlzLmZvckVhY2goa2V5ID0+IHsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVFIiKTsNCiAgICAgICAgICAgICAgICAgICAgdHIuaWQgPSBrZXk7DQogICAgICAgICAgICAgICAgICAgIHRyLnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoIicgKyBkYXRhW2tleV1bInR5cGUiXSArICciLCB0aGlzKScpOw0KICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsic3RhcnRpbmdDaGFubmVsIl07DQogICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bIm5hbWUiXTsNCiAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgc3dpdGNoIChkYXRhW2tleV1bInR5cGUiXSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAiY3VzdG9tLWZpbHRlciI6DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9ICJ7ey5maWx0ZXIuY3VzdG9tfX0iOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAiZ3JvdXAtdGl0bGUiOg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSAie3suZmlsdGVyLmdyb3VwfX0iOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJmaWx0ZXIiXTsNCiAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICByb3dzLnB1c2godHIpOw0KICAgICAgICAgICAgICAgIH0pOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAieG1sdHYiOg0KICAgICAgICAgICAgICAgIGZpbGVUeXBlcyA9IG5ldyBBcnJheSgieG1sdHYiKTsNCiAgICAgICAgICAgICAgICBmaWxlVHlwZXMuZm9yRWFjaChmaWxlVHlwZSA9PiB7DQogICAgICAgICAgICAgICAgICAgIGRhdGEgPSBTRVJWRVJbInNldHRpbmdzIl1bImZpbGVzIl1bZmlsZVR5cGVdOw0KICAgICAgICAgICAgICAgICAgICB2YXIga2V5cyA9IGdldE93bk9ialByb3BzKGRhdGEpOw0KICAgICAgICAgICAgICAgICAgICBrZXlzLmZvckVhY2goa2V5ID0+IHsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciB0ciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlRSIik7DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5pZCA9IGtleTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoIicgKyBmaWxlVHlwZSArICciLCB0aGlzKScpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bIm5hbWUiXTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJsYXN0LnVwZGF0ZSJdOw0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bInByb3ZpZGVyLmF2YWlsYWJpbGl0eSJdOw0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bImNvbXBhdGliaWxpdHkiXVsieG1sdHYuY2hhbm5lbHMiXTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJjb21wYXRpYmlsaXR5Il1bInhtbHR2LnByb2dyYW1zIl07DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICByb3dzLnB1c2godHIpOw0KICAgICAgICAgICAgICAgICAgICB9KTsNCiAgICAgICAgICAgICAgICB9KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInVzZXJzIjoNCiAgICAgICAgICAgICAgICBmaWxlVHlwZXMgPSBuZXcgQXJyYXkoInVzZXJzIik7DQogICAgICAgICAgICAgICAgZmlsZVR5cGVzLmZvckVhY2goZmlsZVR5cGUgPT4gew0KICAgICAgICAgICAgICAgICAgICBkYXRhID0gU0VSVkVSW2ZpbGVUeXBlXTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGtleXMgPSBnZXRPd25PYmpQcm9wcyhkYXRhKTsNCiAgICAgICAgICAgICAgICAgICAga2V5cy5mb3JFYWNoKGtleSA9PiB7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgdHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJUUiIpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuaWQgPSBrZXk7DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCInICsgZmlsZVR5cGUgKyAnIiwgdGhpcyknKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJkYXRhIl1bInVzZXJuYW1lIl07DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9ICIqKioqKioiOw0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChkYXRhW2tleV1bImRhdGEiXVsiYXV0aGVudGljYXRpb24ud2ViIl0gPT0gdHJ1ZSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSAi4pyTIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSAiLSI7DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGRhdGFba2V5XVsiZGF0YSJdWyJhdXRoZW50aWNhdGlvbi5wbXMiXSA9PSB0cnVlKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9ICLinJMiOw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9ICItIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgICAgICBpZiAoZGF0YVtrZXldWyJkYXRhIl1bImF1dGhlbnRpY2F0aW9uLm0zdSJdID09IHRydWUpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gIuKckyI7DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gIi0iOw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChkYXRhW2tleV1bImRhdGEiXVsiYXV0aGVudGljYXRpb24ueG1sIl0gPT0gdHJ1ZSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSAi4pyTIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSAiLSI7DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGRhdGFba2V5XVsiZGF0YSJdWyJhdXRoZW50aWNhdGlvbi5hcGkiXSA9PSB0cnVlKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9ICLinJMiOw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9ICItIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHJvd3MucHVzaCh0cik7DQogICAgICAgICAgICAgICAgICAgIH0pOw0KICAgICAgICAgICAgICAgIH0pOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAibWFwcGluZyI6DQogICAgICAgICAgICAgICAgQlVMS19FRElUID0gZmFsc2U7DQogICAgICAgICAgICAgICAgY3JlYXRlU2VhcmNoT2JqKCk7DQogICAgICAgICAgICAgICAgY2hlY2tVbmRvKCJlcGdNYXBwaW5nIik7DQogICAgICAgICAgICAgICAgZGF0YSA9IFNFUlZFUlsieGVwZyJdWyJlcGdNYXBwaW5nIl07DQogICAgICAgICAgICAgICAgdmFyIGtleXMgPSBnZXRPd25PYmpQcm9wcyhkYXRhKTsNCiAgICAgICAgICAgICAgICBrZXlzLmZvckVhY2goa2V5ID0+IHsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVFIiKTsNCiAgICAgICAgICAgICAgICAgICAgdHIuaWQgPSBrZXk7DQogICAgICAgICAgICAgICAgICAgIHN3aXRjaCAoZGF0YVtrZXldWyJ4LWFjdGl2ZSJdKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBjYXNlIHRydWU6DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgdHIuY2xhc3NOYW1lID0gImFjdGl2ZUVQRyI7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgICAgICAgICBjYXNlIGZhbHNlOg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyLmNsYXNzTmFtZSA9ICJub3RBY3RpdmVFUEciOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIC8vIEJ1bGsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiQlVMSyI7DQogICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBmYWxzZTsNCiAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOw0KICAgICAgICAgICAgICAgICAgICAvLyBDaGFubmVsIG51bWJlcg0KICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJJTlBVVENIQU5ORUwiOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJ4LWNoYW5uZWxJRCJdOw0KICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICAgICAgICAgIC8vIExvZ28NCiAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiSU1HIjsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5pbWFnZVVSTCA9IGRhdGFba2V5XVsidHZnLWxvZ28iXTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHRkID0gY2VsbC5jcmVhdGVDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgIHRkLnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoIm1hcHBpbmciLCB0aGlzKScpOw0KICAgICAgICAgICAgICAgICAgICB0ZC5pZCA9IGtleTsNCiAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQodGQpOw0KICAgICAgICAgICAgICAgICAgICAvLyBDaGFubmVsIG5hbWUNCiAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2xhc3NOYW1lID0gZGF0YVtrZXldWyJ4LWNhdGVnb3J5Il07DQogICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bIngtbmFtZSJdOw0KICAgICAgICAgICAgICAgICAgICB2YXIgdGQgPSBjZWxsLmNyZWF0ZUNlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgdGQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgibWFwcGluZyIsIHRoaXMpJyk7DQogICAgICAgICAgICAgICAgICAgIHRkLmlkID0ga2V5Ow0KICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZCh0ZCk7DQogICAgICAgICAgICAgICAgICAgIC8vIFVwZGF0ZSBjaGFubmVsIG5hbWUgcmVnZXgNCiAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bInVwZGF0ZS1jaGFubmVsLW5hbWUtcmVnZXgiXTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHRkID0gY2VsbC5jcmVhdGVDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgIHRkLnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoIm1hcHBpbmciLCB0aGlzKScpOw0KICAgICAgICAgICAgICAgICAgICB0ZC5pZCA9IGtleTsNCiAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQodGQpOw0KICAgICAgICAgICAgICAgICAgICAvLyBQbGF5bGlzdA0KICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGdldFZhbHVlRnJvbVByb3ZpZGVyRmlsZShkYXRhW2tleV1bIl9maWxlLm0zdS5pZCJdLCAibTN1IiwgIm5hbWUiKTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHRkID0gY2VsbC5jcmVhdGVDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgIHRkLnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoIm1hcHBpbmciLCB0aGlzKScpOw0KICAgICAgICAgICAgICAgICAgICB0ZC5pZCA9IGtleTsNCiAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQodGQpOw0KICAgICAgICAgICAgICAgICAgICAvLyBHcm91cCAoZ3JvdXAtdGl0bGUpDQogICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJ4LWdyb3VwLXRpdGxlIl07DQogICAgICAgICAgICAgICAgICAgIHZhciB0ZCA9IGNlbGwuY3JlYXRlQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICB0ZC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJtYXBwaW5nIiwgdGhpcyknKTsNCiAgICAgICAgICAgICAgICAgICAgdGQuaWQgPSBrZXk7DQogICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKHRkKTsNCiAgICAgICAgICAgICAgICAgICAgLy8gWE1MVFYgZmlsZQ0KICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsNCiAgICAgICAgICAgICAgICAgICAgaWYgKGRhdGFba2V5XVsieC14bWx0di1maWxlIl0gIT0gIi0iKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZ2V0VmFsdWVGcm9tUHJvdmlkZXJGaWxlKGRhdGFba2V5XVsieC14bWx0di1maWxlIl0sICJ4bWx0diIsICJuYW1lIik7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgZWxzZSB7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJ4LXhtbHR2LWZpbGUiXTsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICB2YXIgdGQgPSBjZWxsLmNyZWF0ZUNlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgdGQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgibWFwcGluZyIsIHRoaXMpJyk7DQogICAgICAgICAgICAgICAgICAgIHRkLmlkID0ga2V5Ow0KICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZCh0ZCk7DQogICAgICAgICAgICAgICAgICAgIC8vIFhNTFRWIENoYW5uZWwNCiAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgICAgIHZhciB2YWx1ZSA9IGRhdGFba2V5XVsieC1tYXBwaW5nIl07DQogICAgICAgICAgICAgICAgICAgIGlmICh2YWx1ZS5sZW5ndGggPiAyMCkgew0KICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSBkYXRhW2tleV1bIngtbWFwcGluZyJdLnN1YnN0cmluZygwLCAyMCkgKyAiLi4uIjsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gdmFsdWU7DQogICAgICAgICAgICAgICAgICAgIHZhciB0ZCA9IGNlbGwuY3JlYXRlQ2VsbCgpOw0KICAgICAgICAgICAgICAgICAgICB0ZC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJtYXBwaW5nIiwgdGhpcyknKTsNCiAgICAgICAgICAgICAgICAgICAgdGQuaWQgPSBrZXk7DQogICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKHRkKTsNCiAgICAgICAgICAgICAgICAgICAgLy8gVGltZVNoaWZ0DQogICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOw0KICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJ4LXRpbWVzaGlmdCJdOw0KICAgICAgICAgICAgICAgICAgICB2YXIgdGQgPSBjZWxsLmNyZWF0ZUNlbGwoKTsNCiAgICAgICAgICAgICAgICAgICAgdGQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgibWFwcGluZyIsIHRoaXMpJyk7DQogICAgICAgICAgICAgICAgICAgIHRkLmlkID0ga2V5Ow0KICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZCh0ZCk7DQogICAgICAgICAgICAgICAgICAgIHJvd3MucHVzaCh0cik7DQogICAgICAgICAgICAgICAgfSk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJzZXR0aW5ncyI6DQogICAgICAgICAgICAgICAgYWxlcnQoKTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIH0NCiAgICAgICAgcmV0dXJuIHJvd3M7DQogICAgfQ0KfQ0KY2xhc3MgQ2VsbCB7DQogICAgY3JlYXRlQ2VsbCgpIHsNCiAgICAgICAgbGV0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgaWYgKHRoaXMuY2hpbGQgPT0gdHJ1ZSkgew0KICAgICAgICAgICAgdmFyIGVsZW1lbnQ7DQogICAgICAgICAgICBzd2l0Y2ggKHRoaXMuY2hpbGRUeXBlKSB7DQogICAgICAgICAgICAgICAgY2FzZSAiUCI6DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KHRoaXMuY2hpbGRUeXBlKTsNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC5pbm5lckhUTUwgPSB0aGlzLnZhbHVlOw0KICAgICAgICAgICAgICAgICAgICBlbGVtZW50LmNsYXNzTmFtZSA9IHRoaXMuY2xhc3NOYW1lOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBjYXNlICJJTlBVVCI6DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KHRoaXMuY2hpbGRUeXBlKTsNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC52YWx1ZSA9IHRoaXMudmFsdWU7DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQudHlwZSA9ICJ0ZXh0IjsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAiSU5QVVRDSEFOTkVMIjoNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIklOUFVUIik7DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZzY3JpcHQ6IGNoYW5nZUNoYW5uZWxOdW1iZXIodGhpcykiKTsNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC52YWx1ZSA9IHRoaXMudmFsdWU7DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQudHlwZSA9ICJ0ZXh0IjsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAiQlVMSyI6DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJJTlBVVCIpOw0KICAgICAgICAgICAgICAgICAgICBlbGVtZW50LmNoZWNrZWQgPSB0aGlzLnZhbHVlOw0KICAgICAgICAgICAgICAgICAgICBlbGVtZW50LnR5cGUgPSAiY2hlY2tib3giOw0KICAgICAgICAgICAgICAgICAgICBlbGVtZW50LmNsYXNzTmFtZSA9ICJidWxrIGhpZGVCdWxrIjsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAiQlVMS19IRUFEIjoNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIklOUFVUIik7DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQuY2hlY2tlZCA9IHRoaXMudmFsdWU7DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQudHlwZSA9ICJjaGVja2JveCI7DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQuY2xhc3NOYW1lID0gImJ1bGsgaGlkZUJ1bGsiOw0KICAgICAgICAgICAgICAgICAgICBlbGVtZW50LnNldEF0dHJpYnV0ZSgib25jbGljayIsICJqYXZhc2NyaXB0OiBzZWxlY3RBbGxDaGFubmVscygpIik7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgIklNRyI6DQogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KHRoaXMuY2hpbGRUeXBlKTsNCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC5zZXRBdHRyaWJ1dGUoInNyYyIsIHRoaXMuaW1hZ2VVUkwpOw0KICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5pbWFnZVVSTCAhPSAiIikgew0KICAgICAgICAgICAgICAgICAgICAgICAgZWxlbWVudC5zZXRBdHRyaWJ1dGUoIm9uZXJyb3IiLCAiamF2YXNjcmlwdDogdGhpcy5vbmVycm9yPW51bGw7dGhpcy5zcmM9JyciKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIC8vb25lcnJvcj0idGhpcy5vbmVycm9yPW51bGw7dGhpcy5zcmM9J21pc3NpbmcuZ2lmJzsiDQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIHRkLmFwcGVuZENoaWxkKGVsZW1lbnQpOw0KICAgICAgICB9DQogICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgdGQuaW5uZXJIVE1MID0gdGhpcy52YWx1ZTsNCiAgICAgICAgfQ0KICAgICAgICBpZiAodGhpcy5vbmNsaWNrID09IHRydWUpIHsNCiAgICAgICAgICAgIHRkLnNldEF0dHJpYnV0ZSgib25jbGljayIsIHRoaXMub25jbGlja0Z1bmN0aW9uKTsNCiAgICAgICAgICAgIHRkLmNsYXNzTmFtZSA9ICJwb2ludGVyIjsNCiAgICAgICAgfQ0KICAgICAgICBpZiAodGhpcy50ZENsYXNzTmFtZSAhPSB1bmRlZmluZWQpIHsNCiAgICAgICAgICAgIHRkLmNsYXNzTmFtZSA9IHRoaXMudGRDbGFzc05hbWU7DQogICAgICAgIH0NCiAgICAgICAgcmV0dXJuIHRkOw0KICAgIH0NCn0NCmNsYXNzIFNob3dDb250ZW50IGV4dGVuZHMgQ29udGVudCB7DQogICAgY29uc3RydWN0b3IobWVudUlEKSB7DQogICAgICAgIHN1cGVyKCk7DQogICAgICAgIHRoaXMubWVudUlEID0gbWVudUlEOw0KICAgIH0NCiAgICBjcmVhdGVJbnB1dCh0eXBlLCBuYW1lLCB2YWx1ZSkgew0KICAgICAgICBsZXQgaW5wdXQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJJTlBVVCIpOw0KICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInR5cGUiLCB0eXBlKTsNCiAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJuYW1lIiwgbmFtZSk7DQogICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgidmFsdWUiLCB2YWx1ZSk7DQogICAgICAgIHJldHVybiBpbnB1dDsNCiAgICB9DQogICAgc2hvdygpIHsNCiAgICAgICAgQ09MVU1OX1RPX1NPUlQgPSAtMTsNCiAgICAgICAgLy8gRGVsZXRlIG9sZCBjb250ZW50DQogICAgICAgIGxldCBkb2MgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCh0aGlzLkRvY3VtZW50SUQpOw0KICAgICAgICBkb2MuaW5uZXJIVE1MID0gIiI7DQogICAgICAgIHNob3dQcmV2aWV3KGZhbHNlKTsNCiAgICAgICAgLy8gSGVhZGxpbmUNCiAgICAgICAgbGV0IGhlYWRsaW5lID0gbWVudUl0ZW1zW3RoaXMubWVudUlEXS5oZWFkbGluZTsNCiAgICAgICAgbGV0IG1lbnVLZXkgPSBtZW51SXRlbXNbdGhpcy5tZW51SURdLm1lbnVLZXk7DQogICAgICAgIGxldCBoID0gdGhpcy5jcmVhdGVIZWFkbGluZShoZWFkbGluZSk7DQogICAgICAgIGRvYy5hcHBlbmRDaGlsZChoKTsNCiAgICAgICAgbGV0IGhyID0gdGhpcy5jcmVhdGVIUigpOw0KICAgICAgICBkb2MuYXBwZW5kQ2hpbGQoaHIpOw0KICAgICAgICAvLyBJbnRlcmFjdGlvbg0KICAgICAgICBsZXQgZGl2ID0gdGhpcy5jcmVhdGVJbnRlcmFjdGlvbigpOw0KICAgICAgICBkb2MuYXBwZW5kQ2hpbGQoZGl2KTsNCiAgICAgICAgbGV0IGludGVyYWN0aW9uID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQodGhpcy5pbnRlcmFjdGlvbklEKTsNCiAgICAgICAgc3dpdGNoIChtZW51S2V5KSB7DQogICAgICAgICAgICBjYXNlICJwbGF5bGlzdCI6DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gdGhpcy5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgbWVudUtleSwgInt7LmJ1dHRvbi5uZXd9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgiaWQiLCAiLSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoInBsYXlsaXN0IiknKTsNCiAgICAgICAgICAgICAgICBpbnRlcmFjdGlvbi5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJmaWx0ZXIiOg0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IHRoaXMuY3JlYXRlSW5wdXQoImJ1dHRvbiIsIG1lbnVLZXksICJ7ey5idXR0b24ubmV3fX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoImlkIiwgLTEpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoImZpbHRlciIsIHRoaXMpJyk7DQogICAgICAgICAgICAgICAgaW50ZXJhY3Rpb24uYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAieG1sdHYiOg0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IHRoaXMuY3JlYXRlSW5wdXQoImJ1dHRvbiIsIG1lbnVLZXksICJ7ey5idXR0b24ubmV3fX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoImlkIiwgInhtbHR2Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgieG1sdHYiKScpOw0KICAgICAgICAgICAgICAgIGludGVyYWN0aW9uLmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInVzZXJzIjoNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSB0aGlzLmNyZWF0ZUlucHV0KCJidXR0b24iLCBtZW51S2V5LCAie3suYnV0dG9uLm5ld319Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJpZCIsICJ1c2VycyIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoInVzZXJzIiknKTsNCiAgICAgICAgICAgICAgICBpbnRlcmFjdGlvbi5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJtYXBwaW5nIjoNCiAgICAgICAgICAgICAgICBzaG93RWxlbWVudCgibG9hZGluZyIsIHRydWUpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IHRoaXMuY3JlYXRlSW5wdXQoImJ1dHRvbiIsIG1lbnVLZXksICJ7ey5idXR0b24uc2F2ZX19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoIm1hcHBpbmciLCAiIiwgIiIpJyk7DQogICAgICAgICAgICAgICAgaW50ZXJhY3Rpb24uYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IHRoaXMuY3JlYXRlSW5wdXQoImJ1dHRvbiIsIG1lbnVLZXksICJ7ey5idXR0b24uYnVsa0VkaXR9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBidWxrRWRpdCgpJyk7DQogICAgICAgICAgICAgICAgaW50ZXJhY3Rpb24uYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IHRoaXMuY3JlYXRlSW5wdXQoInNlYXJjaCIsICJzZWFyY2giLCAiIik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJpZCIsICJzZWFyY2hNYXBwaW5nIik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5idXR0b24uc2VhcmNofX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5jbGFzc05hbWUgPSAic2VhcmNoIjsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgJ2phdmFzY3JpcHQ6IHNlYXJjaEluTWFwcGluZygpJyk7DQogICAgICAgICAgICAgICAgaW50ZXJhY3Rpb24uYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAic2V0dGluZ3MiOg0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IHRoaXMuY3JlYXRlSW5wdXQoImJ1dHRvbiIsIG1lbnVLZXksICJ7ey5idXR0b24uc2F2ZX19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IHNhdmVTZXR0aW5ncygpOycpOw0KICAgICAgICAgICAgICAgIGludGVyYWN0aW9uLmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSB0aGlzLmNyZWF0ZUlucHV0KCJidXR0b24iLCBtZW51S2V5LCAie3suYnV0dG9uLmJhY2t1cH19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IGJhY2t1cCgpOycpOw0KICAgICAgICAgICAgICAgIGludGVyYWN0aW9uLmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSB0aGlzLmNyZWF0ZUlucHV0KCJidXR0b24iLCBtZW51S2V5LCAie3suYnV0dG9uLnJlc3RvcmV9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiByZXN0b3JlKCk7Jyk7DQogICAgICAgICAgICAgICAgaW50ZXJhY3Rpb24uYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIHZhciB3cmFwcGVyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiRElWIik7DQogICAgICAgICAgICAgICAgd3JhcHBlci5zZXRBdHRyaWJ1dGUoImlkIiwgImJveC13cmFwcGVyIik7DQogICAgICAgICAgICAgICAgZG9jLmFwcGVuZENoaWxkKHdyYXBwZXIpOw0KICAgICAgICAgICAgICAgIHRoaXMuRGl2SUQgPSAiY29udGVudF9zZXR0aW5ncyI7DQogICAgICAgICAgICAgICAgdmFyIHNldHRpbmdzID0gdGhpcy5jcmVhdGVESVYoKTsNCiAgICAgICAgICAgICAgICB3cmFwcGVyLmFwcGVuZENoaWxkKHNldHRpbmdzKTsNCiAgICAgICAgICAgICAgICBzaG93U2V0dGluZ3MoKTsNCiAgICAgICAgICAgICAgICByZXR1cm47DQogICAgICAgICAgICBjYXNlICJsb2ciOg0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IHRoaXMuY3JlYXRlSW5wdXQoImJ1dHRvbiIsIG1lbnVLZXksICJ7ey5idXR0b24ucmVzZXRMb2dzfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogcmVzZXRMb2dzKCk7Jyk7DQogICAgICAgICAgICAgICAgaW50ZXJhY3Rpb24uYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIHZhciB3cmFwcGVyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiRElWIik7DQogICAgICAgICAgICAgICAgd3JhcHBlci5zZXRBdHRyaWJ1dGUoImlkIiwgImJveC13cmFwcGVyIik7DQogICAgICAgICAgICAgICAgZG9jLmFwcGVuZENoaWxkKHdyYXBwZXIpOw0KICAgICAgICAgICAgICAgIHRoaXMuRGl2SUQgPSAiY29udGVudF9sb2ciOw0KICAgICAgICAgICAgICAgIHZhciBsb2dzID0gdGhpcy5jcmVhdGVESVYoKTsNCiAgICAgICAgICAgICAgICB3cmFwcGVyLmFwcGVuZENoaWxkKGxvZ3MpOw0KICAgICAgICAgICAgICAgIHNob3dMb2dzKHRydWUpOw0KICAgICAgICAgICAgICAgIHJldHVybjsNCiAgICAgICAgICAgIGNhc2UgImxvZ291dCI6DQogICAgICAgICAgICAgICAgbG9jYXRpb24ucmVsb2FkKCk7DQogICAgICAgICAgICAgICAgZG9jdW1lbnQuY29va2llID0gIlRva2VuPSA7IGV4cGlyZXMgPSBUaHUsIDAxIEphbiAxOTcwIDAwOjAwOjAwIEdNVCI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBkZWZhdWx0Og0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICB9DQogICAgICAgIC8vIENyZWF0ZSB0YWJsZSAoaWYgbmVlZGVkKQ0KICAgICAgICB2YXIgdGFibGVIZWFkZXIgPSBtZW51SXRlbXNbdGhpcy5tZW51SURdLnRhYmxlSGVhZGVyOw0KICAgICAgICBpZiAodGFibGVIZWFkZXIubGVuZ3RoID4gMCkgew0KICAgICAgICAgICAgdmFyIHdyYXBwZXIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJESVYiKTsNCiAgICAgICAgICAgIGRvYy5hcHBlbmRDaGlsZCh3cmFwcGVyKTsNCiAgICAgICAgICAgIHdyYXBwZXIuc2V0QXR0cmlidXRlKCJpZCIsICJib3gtd3JhcHBlciIpOw0KICAgICAgICAgICAgdmFyIHRhYmxlID0gdGhpcy5jcmVhdGVUQUJMRSgpOw0KICAgICAgICAgICAgd3JhcHBlci5hcHBlbmRDaGlsZCh0YWJsZSk7DQogICAgICAgICAgICB2YXIgaGVhZGVyID0gdGhpcy5jcmVhdGVUYWJsZVJvdygpOw0KICAgICAgICAgICAgdGFibGUuYXBwZW5kQ2hpbGQoaGVhZGVyKTsNCiAgICAgICAgICAgIC8vIFRhYmxlIGhlYWRlcg0KICAgICAgICAgICAgdGFibGVIZWFkZXIuZm9yRWFjaChlbGVtZW50ID0+IHsNCiAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7DQogICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7DQogICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7DQogICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGVsZW1lbnQ7DQogICAgICAgICAgICAgICAgaWYgKGVsZW1lbnQgPT0gIkJVTEsiKSB7DQogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIkJVTEtfSEVBRCI7DQogICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBmYWxzZTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgaWYgKG1lbnVLZXkgPT0gIm1hcHBpbmciKSB7DQogICAgICAgICAgICAgICAgICAgIGlmIChlbGVtZW50ID09ICJ7ey5tYXBwaW5nLnRhYmxlLmNoTm99fSIpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwub25jbGljayA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLm9uY2xpY2tGdW5jdGlvbiA9ICJqYXZhc2NyaXB0OiBzb3J0VGFibGUoMSk7IjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudGRDbGFzc05hbWUgPSAic29ydFRoaXMiOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIGlmIChlbGVtZW50ID09ICJ7ey5tYXBwaW5nLnRhYmxlLmNoYW5uZWxOYW1lfX0iKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLm9uY2xpY2sgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5vbmNsaWNrRnVuY3Rpb24gPSAiamF2YXNjcmlwdDogc29ydFRhYmxlKDMpOyI7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgaWYgKGVsZW1lbnQgPT0gInt7Lm1hcHBpbmcudGFibGUudXBkYXRlQ2hhbm5lbE5hbWVSZWdleH19Iikgew0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5vbmNsaWNrID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwub25jbGlja0Z1bmN0aW9uID0gImphdmFzY3JpcHQ6IHNvcnRUYWJsZSg0KTsiOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIGlmIChlbGVtZW50ID09ICJ7ey5tYXBwaW5nLnRhYmxlLnBsYXlsaXN0fX0iKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLm9uY2xpY2sgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5vbmNsaWNrRnVuY3Rpb24gPSAiamF2YXNjcmlwdDogc29ydFRhYmxlKDUpOyI7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgaWYgKGVsZW1lbnQgPT0gInt7Lm1hcHBpbmcudGFibGUuZ3JvdXBUaXRsZX19Iikgew0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5vbmNsaWNrID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwub25jbGlja0Z1bmN0aW9uID0gImphdmFzY3JpcHQ6IHNvcnRUYWJsZSg2KTsiOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIGlmIChlbGVtZW50ID09ICJ7ey5tYXBwaW5nLnRhYmxlLnRpbWVzaGlmdH19Iikgew0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5vbmNsaWNrID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwub25jbGlja0Z1bmN0aW9uID0gImphdmFzY3JpcHQ6IHNvcnRUYWJsZSg5KTsiOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIGlmIChtZW51S2V5ID09ICJmaWx0ZXIiKSB7DQogICAgICAgICAgICAgICAgICAgIGlmIChlbGVtZW50ID09ICJ7ey5maWx0ZXIudGFibGUuc3RhcnRpbmdDaGFubmVsfX0iKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLm9uY2xpY2sgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5vbmNsaWNrRnVuY3Rpb24gPSAiamF2YXNjcmlwdDogc29ydFRhYmxlKDApOyI7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnRkQ2xhc3NOYW1lID0gInNvcnRUaGlzIjsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBpZiAoZWxlbWVudCA9PSAie3suZmlsdGVyLnRhYmxlLm5hbWV9fSIpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwub25jbGljayA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLm9uY2xpY2tGdW5jdGlvbiA9ICJqYXZhc2NyaXB0OiBzb3J0VGFibGUoMSk7IjsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBpZiAoZWxlbWVudCA9PSAie3suZmlsdGVyLnRhYmxlLnR5cGV9fSIpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwub25jbGljayA9IHRydWU7DQogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLm9uY2xpY2tGdW5jdGlvbiA9ICJqYXZhc2NyaXB0OiBzb3J0VGFibGUoMik7IjsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBpZiAoZWxlbWVudCA9PSAie3suZmlsdGVyLnRhYmxlLmZpbHRlcn19Iikgew0KICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5vbmNsaWNrID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwub25jbGlja0Z1bmN0aW9uID0gImphdmFzY3JpcHQ6IHNvcnRUYWJsZSgzKTsiOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIGhlYWRlci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7DQogICAgICAgICAgICB9KTsNCiAgICAgICAgICAgIHRhYmxlLmFwcGVuZENoaWxkKGhlYWRlcik7DQogICAgICAgICAgICAvLyBDb250ZW50IG9mIHRoZSB0YWJsZQ0KICAgICAgICAgICAgdmFyIHJvd3MgPSB0aGlzLmNyZWF0ZVRhYmxlQ29udGVudChtZW51S2V5KTsNCiAgICAgICAgICAgIHJvd3MuZm9yRWFjaCh0ciA9PiB7DQogICAgICAgICAgICAgICAgdGFibGUuYXBwZW5kQ2hpbGQodHIpOw0KICAgICAgICAgICAgfSk7DQogICAgICAgIH0NCiAgICAgICAgc3dpdGNoIChtZW51S2V5KSB7DQogICAgICAgICAgICBjYXNlICJtYXBwaW5nIjoNCiAgICAgICAgICAgICAgICBzb3J0VGFibGUoMSk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJmaWx0ZXIiOg0KICAgICAgICAgICAgICAgIHNob3dQcmV2aWV3KHRydWUpOw0KICAgICAgICAgICAgICAgIHNvcnRUYWJsZSgwKTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICAgICAgQ09MVU1OX1RPX1NPUlQgPSAtMTsNCiAgICAgICAgICAgICAgICBzb3J0VGFibGUoMCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIH0NCiAgICAgICAgc2hvd0VsZW1lbnQoImxvYWRpbmciLCBmYWxzZSk7DQogICAgfQ0KfQ0KZnVuY3Rpb24gUGFnZVJlYWR5KCkgew0KICAgIGxldCBzZXJ2ZXIgPSBuZXcgU2VydmVyKCJnZXRTZXJ2ZXJDb25maWciKTsNCiAgICBzZXJ2ZXIucmVxdWVzdCh7fSk7DQogICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoInJlc2l6ZSIsIGZ1bmN0aW9uICgpIHsNCiAgICAgICAgY2FsY3VsYXRlV3JhcHBlckhlaWdodCgpOw0KICAgIH0sIHRydWUpOw0KICAgIHNldEludGVydmFsKGZ1bmN0aW9uICgpIHsNCiAgICAgICAgdXBkYXRlTG9nKCk7DQogICAgfSwgMTAwMDApOw0KICAgIHJldHVybjsNCn0NCmZ1bmN0aW9uIGNyZWF0ZUxheW91dCgpIHsNCiAgICAvLyBDbGllbnQgSW5mbw0KICAgIGxldCBvYmogPSBTRVJWRVJbImNsaWVudEluZm8iXTsNCiAgICBsZXQga2V5cyA9IGdldE93bk9ialByb3BzKG9iaik7DQogICAgZm9yICh2YXIgaSA9IDA7IGkgPCBrZXlzLmxlbmd0aDsgaSsrKSB7DQogICAgICAgIGlmIChkb2N1bWVudC5nZXRFbGVtZW50QnlJZChrZXlzW2ldKSkgew0KICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoa2V5c1tpXSkuaW5uZXJIVE1MID0gb2JqW2tleXNbaV1dOw0KICAgICAgICB9DQogICAgfQ0KICAgIGlmICghZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm1haW4tbWVudSIpKSB7DQogICAgICAgIHJldHVybjsNCiAgICB9DQogICAgLy8gQ3JlYXRlIG1lbnUNCiAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibWFpbi1tZW51IikuaW5uZXJIVE1MID0gIiI7DQogICAgZm9yIChsZXQgaSA9IDA7IGkgPCBtZW51SXRlbXMubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgbWVudUl0ZW1zW2ldLmlkID0gaTsNCiAgICAgICAgc3dpdGNoIChtZW51SXRlbXNbaV1bIm1lbnVLZXkiXSkgew0KICAgICAgICAgICAgY2FzZSAidXNlcnMiOg0KICAgICAgICAgICAgY2FzZSAibG9nb3V0IjoNCiAgICAgICAgICAgICAgICBpZiAoU0VSVkVSWyJzZXR0aW5ncyJdWyJhdXRoZW50aWNhdGlvbi53ZWIiXSA9PSB0cnVlKSB7DQogICAgICAgICAgICAgICAgICAgIG1lbnVJdGVtc1tpXS5jcmVhdGVJdGVtKCk7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAibWFwcGluZyI6DQogICAgICAgICAgICBjYXNlICJ4bWx0diI6DQogICAgICAgICAgICAgICAgaWYgKFNFUlZFUlsiY2xpZW50SW5mbyJdWyJlcGdTb3VyY2UiXSA9PSAiWEVQRyIpIHsNCiAgICAgICAgICAgICAgICAgICAgbWVudUl0ZW1zW2ldLmNyZWF0ZUl0ZW0oKTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBkZWZhdWx0Og0KICAgICAgICAgICAgICAgIG1lbnVJdGVtc1tpXS5jcmVhdGVJdGVtKCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIH0NCiAgICB9DQogICAgcmV0dXJuOw0KfQ0KZnVuY3Rpb24gb3BlblRoaXNNZW51KGVsZW1lbnQpIHsNCiAgICBsZXQgaWQgPSBlbGVtZW50LmlkOw0KICAgIGxldCBjb250ZW50ID0gbmV3IFNob3dDb250ZW50KGlkKTsNCiAgICBjb250ZW50LnNob3coKTsNCiAgICBjYWxjdWxhdGVXcmFwcGVySGVpZ2h0KCk7DQogICAgcmV0dXJuOw0KfQ0KY2xhc3MgUG9wdXBXaW5kb3cgew0KICAgIGNvbnN0cnVjdG9yKCkgew0KICAgICAgICB0aGlzLkRvY3VtZW50SUQgPSAicG9wdXAtY3VzdG9tIjsNCiAgICAgICAgdGhpcy5JbnRlcmFjdGlvbklEID0gImludGVyYWN0aW9uIjsNCiAgICAgICAgdGhpcy5kb2MgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCh0aGlzLkRvY3VtZW50SUQpOw0KICAgIH0NCiAgICBjcmVhdGVUaXRsZSh0aXRsZSkgew0KICAgICAgICBsZXQgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICB0ZC5jbGFzc05hbWUgPSAibGVmdCI7DQogICAgICAgIHRkLmlubmVySFRNTCA9IHRpdGxlICsgIjoiOw0KICAgICAgICByZXR1cm4gdGQ7DQogICAgfQ0KICAgIGNyZWF0ZUNvbnRlbnQoZWxlbWVudCkgew0KICAgICAgICBsZXQgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICB0ZC5hcHBlbmRDaGlsZChlbGVtZW50KTsNCiAgICAgICAgcmV0dXJuIHRkOw0KICAgIH0NCiAgICBjcmVhdGVJbnRlcmFjdGlvbigpIHsNCiAgICAgICAgbGV0IGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOw0KICAgICAgICBkaXYuc2V0QXR0cmlidXRlKCJpZCIsICJwb3B1cC1pbnRlcmFjdGlvbiIpOw0KICAgICAgICBkaXYuY2xhc3NOYW1lID0gImludGVyYWN0aW9uIjsNCiAgICAgICAgdGhpcy5kb2MuYXBwZW5kQ2hpbGQoZGl2KTsNCiAgICB9DQp9DQpjbGFzcyBQb3B1cENvbnRlbnQgZXh0ZW5kcyBQb3B1cFdpbmRvdyB7DQogICAgY29uc3RydWN0b3IoKSB7DQogICAgICAgIHN1cGVyKC4uLmFyZ3VtZW50cyk7DQogICAgICAgIHRoaXMudGFibGUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJUQUJMRSIpOw0KICAgIH0NCiAgICBjcmVhdGVIZWFkbGluZShoZWFkbGluZSkgew0KICAgICAgICB0aGlzLmRvYy5pbm5lckhUTUwgPSAiIjsNCiAgICAgICAgdmFyIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJIMyIpOw0KICAgICAgICBlbGVtZW50LmlubmVySFRNTCA9IGhlYWRsaW5lLnRvVXBwZXJDYXNlKCk7DQogICAgICAgIHRoaXMuZG9jLmFwcGVuZENoaWxkKGVsZW1lbnQpOw0KICAgICAgICAvLyBDcmVhdGUgdGFibGUNCiAgICAgICAgdGhpcy50YWJsZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlRBQkxFIik7DQogICAgICAgIHRoaXMuZG9jLmFwcGVuZENoaWxkKHRoaXMudGFibGUpOw0KICAgIH0NCiAgICBhcHBlbmRSb3codGl0bGUsIGVsZW1lbnQpIHsNCiAgICAgICAgbGV0IHRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVFIiKTsNCiAgICAgICAgLy8gVGl0bGUNCiAgICAgICAgaWYgKHRpdGxlLmxlbmd0aCAhPSAwKSB7DQogICAgICAgICAgICB0ci5hcHBlbmRDaGlsZCh0aGlzLmNyZWF0ZVRpdGxlKHRpdGxlKSk7DQogICAgICAgIH0NCiAgICAgICAgLy8gQ29udGVudA0KICAgICAgICB0ci5hcHBlbmRDaGlsZCh0aGlzLmNyZWF0ZUNvbnRlbnQoZWxlbWVudCkpOw0KICAgICAgICB0aGlzLnRhYmxlLmFwcGVuZENoaWxkKHRyKTsNCiAgICB9DQogICAgY3JlYXRlSW5wdXQodHlwZSwgbmFtZSwgdmFsdWUpIHsNCiAgICAgICAgbGV0IGlucHV0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiSU5QVVQiKTsNCiAgICAgICAgaWYgKHZhbHVlID09IHVuZGVmaW5lZCkgew0KICAgICAgICAgICAgdmFsdWUgPSAiIjsNCiAgICAgICAgfQ0KICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInR5cGUiLCB0eXBlKTsNCiAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJuYW1lIiwgbmFtZSk7DQogICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgidmFsdWUiLCB2YWx1ZSk7DQogICAgICAgIHJldHVybiBpbnB1dDsNCiAgICB9DQogICAgY3JlYXRlQ2hlY2tib3gobmFtZSkgew0KICAgICAgICBsZXQgaW5wdXQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJJTlBVVCIpOw0KICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInR5cGUiLCAiY2hlY2tib3giKTsNCiAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJuYW1lIiwgbmFtZSk7DQogICAgICAgIHJldHVybiBpbnB1dDsNCiAgICB9DQogICAgLy8gQ3JlYXRlcyBhIHNlbGVjdGlvbiBvZiBtdWx0aXBsZSBvcHRpb25zIHZhbHVlcyB3aXRoIHRleHQgZGVzY3JpcHRpb25zDQogICAgY3JlYXRlU2VsZWN0KHRleHQsIHZhbHVlcywgc2V0LCBkYktleSkgew0KICAgICAgICBsZXQgc2VsZWN0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiU0VMRUNUIik7DQogICAgICAgIHNlbGVjdC5zZXRBdHRyaWJ1dGUoIm5hbWUiLCBkYktleSk7DQogICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGV4dC5sZW5ndGg7IGkrKykgew0KICAgICAgICAgICAgbGV0IG9wdGlvbiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIk9QVElPTiIpOw0KICAgICAgICAgICAgb3B0aW9uLnNldEF0dHJpYnV0ZSgidmFsdWUiLCB2YWx1ZXNbaV0pOw0KICAgICAgICAgICAgb3B0aW9uLmlubmVyVGV4dCA9IHRleHRbaV07DQogICAgICAgICAgICBzZWxlY3QuYXBwZW5kQ2hpbGQob3B0aW9uKTsNCiAgICAgICAgfQ0KICAgICAgICBpZiAoc2V0ICE9ICIiKSB7DQogICAgICAgICAgICBzZWxlY3QudmFsdWUgPSBzZXQ7DQogICAgICAgIH0NCiAgICAgICAgaWYgKHNldCA9PSB1bmRlZmluZWQpIHsNCiAgICAgICAgICAgIHNlbGVjdC52YWx1ZSA9IHZhbHVlc1swXTsNCiAgICAgICAgfQ0KICAgICAgICByZXR1cm4gc2VsZWN0Ow0KICAgIH0NCiAgICBzZWxlY3RPcHRpb24oc2VsZWN0LCB2YWx1ZSkgew0KICAgICAgICAvL3NlbGVjdC5zZWxlY3RlZE9wdGlvbnMgPSB2YWx1ZQ0KICAgICAgICBsZXQgcyA9IHNlbGVjdDsNCiAgICAgICAgcy5vcHRpb25zW3Muc2VsZWN0ZWRJbmRleF0udmFsdWUgPSB2YWx1ZTsNCiAgICAgICAgcmV0dXJuIHNlbGVjdDsNCiAgICB9DQogICAgZGVzY3JpcHRpb24odmFsdWUpIHsNCiAgICAgICAgbGV0IHRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVFIiKTsNCiAgICAgICAgbGV0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgbGV0IHNwYW4gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJQUkUiKTsNCiAgICAgICAgc3Bhbi5pbm5lckhUTUwgPSB2YWx1ZTsNCiAgICAgICAgdHIuYXBwZW5kQ2hpbGQodGQpOw0KICAgICAgICB0ci5hcHBlbmRDaGlsZCh0aGlzLmNyZWF0ZUNvbnRlbnQoc3BhbikpOw0KICAgICAgICB0aGlzLnRhYmxlLmFwcGVuZENoaWxkKHRyKTsNCiAgICB9DQogICAgLy8gSW50ZXJhY3Rpb24NCiAgICBhZGRJbnRlcmFjdGlvbihlbGVtZW50KSB7DQogICAgICAgIGxldCBpbnRlcmFjdGlvbiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJwb3B1cC1pbnRlcmFjdGlvbiIpOw0KICAgICAgICBpbnRlcmFjdGlvbi5hcHBlbmRDaGlsZChlbGVtZW50KTsNCiAgICB9DQp9DQpmdW5jdGlvbiBvcGVuUG9wVXAoZGF0YVR5cGUsIGVsZW1lbnQpIHsNCiAgICBsZXQgZGF0YSA9IHt9Ow0KICAgIGxldCBpZDsNCiAgICBzd2l0Y2ggKGVsZW1lbnQpIHsNCiAgICAgICAgY2FzZSB1bmRlZmluZWQ6DQogICAgICAgICAgICBzd2l0Y2ggKGRhdGFUeXBlKSB7DQogICAgICAgICAgICAgICAgY2FzZSAiZ3JvdXAtdGl0bGUiOg0KICAgICAgICAgICAgICAgICAgICBpZiAoaWQgPT0gdW5kZWZpbmVkKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBpZCA9IC0xOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIGRhdGEgPSBnZXRMb2NhbERhdGEoImZpbHRlciIsIGlkKTsNCiAgICAgICAgICAgICAgICAgICAgZGF0YVsidHlwZSJdID0gImdyb3VwLXRpdGxlIjsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAiY3VzdG9tLWZpbHRlciI6DQogICAgICAgICAgICAgICAgICAgIGlmIChpZCA9PSB1bmRlZmluZWQpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGlkID0gLTE7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgZGF0YSA9IGdldExvY2FsRGF0YSgiZmlsdGVyIiwgaWQpOw0KICAgICAgICAgICAgICAgICAgICBkYXRhWyJ0eXBlIl0gPSAiY3VzdG9tLWZpbHRlciI7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICAgICAgICAgIGRhdGFbImlkLnByb3ZpZGVyIl0gPSAiLSI7DQogICAgICAgICAgICAgICAgICAgIGRhdGFbInR5cGUiXSA9IGRhdGFUeXBlOw0KICAgICAgICAgICAgICAgICAgICBpZCA9ICItIjsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgIGlkID0gZWxlbWVudC5pZDsNCiAgICAgICAgICAgIGRhdGEgPSBnZXRMb2NhbERhdGEoZGF0YVR5cGUsIGlkKTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgIH0NCiAgICBsZXQgY29udGVudCA9IG5ldyBQb3B1cENvbnRlbnQoKTsNCiAgICBzd2l0Y2ggKGRhdGFUeXBlKSB7DQogICAgICAgIGNhc2UgInBsYXlsaXN0IjoNCiAgICAgICAgICAgIGNvbnRlbnQuY3JlYXRlSGVhZGxpbmUoInt7LnBsYXlsaXN0LnBsYXlsaXN0VHlwZS50aXRsZX19Iik7DQogICAgICAgICAgICAvLyBUeXBlDQogICAgICAgICAgICB2YXIgdGV4dCA9IFsiTTNVIiwgIkhESG9tZVJ1biJdOw0KICAgICAgICAgICAgdmFyIHZhbHVlcyA9IFsiamF2YXNjcmlwdDogb3BlblBvcFVwKCdtM3UnKSIsICJqYXZhc2NyaXB0OiBvcGVuUG9wVXAoJ2hkaHInKSJdOw0KICAgICAgICAgICAgdmFyIHNlbGVjdCA9IGNvbnRlbnQuY3JlYXRlU2VsZWN0KHRleHQsIHZhbHVlcywgIiIsICJ0eXBlIik7DQogICAgICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJpZCIsICJ0eXBlIik7DQogICAgICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICdqYXZhc2NyaXB0OiBjaGFuZ2VCdXR0b25BY3Rpb24odGhpcywgIm5leHQiLCAib25jbGljayIpJyk7IC8vIGNoYW5nZUJ1dHRvbkFjdGlvbg0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnBsYXlsaXN0LnR5cGUudGl0bGV9fSIsIHNlbGVjdCk7DQogICAgICAgICAgICAvLyBJbnRlcmFjdGlvbg0KICAgICAgICAgICAgY29udGVudC5jcmVhdGVJbnRlcmFjdGlvbigpOw0KICAgICAgICAgICAgLy8gQWJvcnQNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJjYW5jZWwiLCAie3suYnV0dG9uLmNhbmNlbH19Iik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogc2hvd0VsZW1lbnQoInBvcHVwIiwgZmFsc2UpOycpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICAvLyBOZXh0DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAibmV4dCIsICJ7ey5idXR0b24ubmV4dH19Iik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJtM3UiKScpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJpZCIsICduZXh0Jyk7DQogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJtM3UiOg0KICAgICAgICAgICAgY29udGVudC5jcmVhdGVIZWFkbGluZShkYXRhVHlwZSk7DQogICAgICAgICAgICAvLyBOYW1lDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAibmFtZSI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3sucGxheWxpc3QubmFtZS5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sucGxheWxpc3QubmFtZS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgLy8gRGVzY3JpcHRpb24NCiAgICAgICAgICAgIHZhciBkYktleSA9ICJkZXNjcmlwdGlvbiI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3sucGxheWxpc3QuZGVzY3JpcHRpb24ucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnBsYXlsaXN0LmRlc2NyaXB0aW9uLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBVUkwNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJmaWxlLnNvdXJjZSI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3sucGxheWxpc3QuZmlsZU0zVS5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sucGxheWxpc3QuZmlsZU0zVS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgLy8gVHVuZXINCiAgICAgICAgICAgIGlmIChTRVJWRVJbInNldHRpbmdzIl1bImJ1ZmZlciJdICE9ICItIikgew0KICAgICAgICAgICAgICAgIHZhciB0ZXh0ID0gW107DQogICAgICAgICAgICAgICAgdmFyIHZhbHVlcyA9IFtdOw0KICAgICAgICAgICAgICAgIGZvciAodmFyIGkgPSAxOyBpIDw9IDEwMDsgaSsrKSB7DQogICAgICAgICAgICAgICAgICAgIHRleHQucHVzaChpLnRvU3RyaW5nKCkpOw0KICAgICAgICAgICAgICAgICAgICB2YWx1ZXMucHVzaChpLnRvU3RyaW5nKCkpOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB2YXIgZGJLZXkgPSAidHVuZXIiOw0KICAgICAgICAgICAgICAgIHZhciBzZWxlY3QgPSBjb250ZW50LmNyZWF0ZVNlbGVjdCh0ZXh0LCB2YWx1ZXMsIGRhdGFbZGJLZXldLCBkYktleSk7DQogICAgICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25mb2N1cyIsICJqYXZhc2NyaXB0OiByZXR1cm47Iik7DQogICAgICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnBsYXlsaXN0LnR1bmVyLnRpdGxlfX0iLCBzZWxlY3QpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgZWxzZSB7DQogICAgICAgICAgICAgICAgdmFyIGRiS2V5ID0gInR1bmVyIjsNCiAgICAgICAgICAgICAgICBpZiAoZGF0YVtkYktleV0gPT0gdW5kZWZpbmVkKSB7DQogICAgICAgICAgICAgICAgICAgIGRhdGFbZGJLZXldID0gMTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJyZWFkb25seSIsICJ0cnVlIik7DQogICAgICAgICAgICAgICAgaW5wdXQuY2xhc3NOYW1lID0gIm5vdEF2YWlsYWJsZSI7DQogICAgICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnBsYXlsaXN0LnR1bmVyLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBjb250ZW50LmRlc2NyaXB0aW9uKCJ7ey5wbGF5bGlzdC50dW5lci5kZXNjcmlwdGlvbn19Iik7DQogICAgICAgICAgICAvLyBJbnRlcmF0aW9uDQogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUludGVyYWN0aW9uKCk7DQogICAgICAgICAgICAvLyBEZWxldGUNCiAgICAgICAgICAgIGlmIChkYXRhWyJpZC5wcm92aWRlciJdICE9ICItIikgew0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJkZWxldGUiLCAie3suYnV0dG9uLmRlbGV0ZX19Iik7DQogICAgICAgICAgICAgICAgaW5wdXQuY2xhc3NOYW1lID0gImRlbGV0ZSI7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoIm0zdSIsICInICsgaWQgKyAnIiwgdHJ1ZSwgMCknKTsNCiAgICAgICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJiYWNrIiwgInt7LmJ1dHRvbi5iYWNrfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJwbGF5bGlzdCIpJyk7DQogICAgICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICAvLyBBYm9ydA0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImNhbmNlbCIsICJ7ey5idXR0b24uY2FuY2VsfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBzaG93RWxlbWVudCgicG9wdXAiLCBmYWxzZSk7Jyk7DQogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIC8vIFVwZGF0ZQ0KICAgICAgICAgICAgaWYgKGRhdGFbImlkLnByb3ZpZGVyIl0gIT0gIi0iKSB7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgInVwZGF0ZSIsICJ7ey5idXR0b24udXBkYXRlfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogc2F2ZVBvcHVwRGF0YSgibTN1IiwgIicgKyBpZCArICciLCBmYWxzZSwgMSknKTsNCiAgICAgICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIC8vIFNhdmUNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJzYXZlIiwgInt7LmJ1dHRvbi5zYXZlfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBzYXZlUG9wdXBEYXRhKCJtM3UiLCAiJyArIGlkICsgJyIsIGZhbHNlLCAwKScpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSAiaGRociI6DQogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUhlYWRsaW5lKGRhdGFUeXBlKTsNCiAgICAgICAgICAgIC8vIE5hbWUNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJuYW1lIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5wbGF5bGlzdC5uYW1lLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5wbGF5bGlzdC5uYW1lLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBEZXNjcmlwdGlvbg0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gImRlc2NyaXB0aW9uIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5wbGF5bGlzdC5kZXNjcmlwdGlvbi5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sucGxheWxpc3QuZGVzY3JpcHRpb24ucGxhY2Vob2xkZXJ9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIFVSTA0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gImZpbGUuc291cmNlIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5wbGF5bGlzdC5maWxlSERIUi5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sucGxheWxpc3QuZmlsZUhESFIudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIFR1bmVyDQogICAgICAgICAgICBpZiAoU0VSVkVSWyJzZXR0aW5ncyJdWyJidWZmZXIiXSAhPSAiLSIpIHsNCiAgICAgICAgICAgICAgICB2YXIgdGV4dCA9IFtdOw0KICAgICAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBbXTsNCiAgICAgICAgICAgICAgICBmb3IgKHZhciBpID0gMTsgaSA8PSAxMDA7IGkrKykgew0KICAgICAgICAgICAgICAgICAgICB0ZXh0LnB1c2goaS50b1N0cmluZygpKTsNCiAgICAgICAgICAgICAgICAgICAgdmFsdWVzLnB1c2goaS50b1N0cmluZygpKTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgdmFyIGRiS2V5ID0gInR1bmVyIjsNCiAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCBkYXRhW2RiS2V5XSwgZGJLZXkpOw0KICAgICAgICAgICAgICAgIHNlbGVjdC5zZXRBdHRyaWJ1dGUoIm9uZm9jdXMiLCAiamF2YXNjcmlwdDogcmV0dXJuOyIpOw0KICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5wbGF5bGlzdC50dW5lci50aXRsZX19Iiwgc2VsZWN0KTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgICAgIHZhciBkYktleSA9ICJ0dW5lciI7DQogICAgICAgICAgICAgICAgaWYgKGRhdGFbZGJLZXldID09IHVuZGVmaW5lZCkgew0KICAgICAgICAgICAgICAgICAgICBkYXRhW2RiS2V5XSA9IDE7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicmVhZG9ubHkiLCAidHJ1ZSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LmNsYXNzTmFtZSA9ICJub3RBdmFpbGFibGUiOw0KICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5wbGF5bGlzdC50dW5lci50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgY29udGVudC5kZXNjcmlwdGlvbigie3sucGxheWxpc3QudHVuZXIuZGVzY3JpcHRpb259fSIpOw0KICAgICAgICAgICAgLy8gSW50ZXJhY3Rpb24NCiAgICAgICAgICAgIGNvbnRlbnQuY3JlYXRlSW50ZXJhY3Rpb24oKTsNCiAgICAgICAgICAgIC8vIERlbGV0ZQ0KICAgICAgICAgICAgaWYgKGRhdGFbImlkLnByb3ZpZGVyIl0gIT0gIi0iKSB7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImRlbGV0ZSIsICJ7ey5idXR0b24uZGVsZXRlfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogc2F2ZVBvcHVwRGF0YSgiaGRociIsICInICsgaWQgKyAnIiwgdHJ1ZSwgMCknKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5jbGFzc05hbWUgPSAiZGVsZXRlIjsNCiAgICAgICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJiYWNrIiwgInt7LmJ1dHRvbi5iYWNrfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJwbGF5bGlzdCIpJyk7DQogICAgICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICAvLyBBYm9ydA0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImNhbmNlbCIsICJ7ey5idXR0b24uY2FuY2VsfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBzaG93RWxlbWVudCgicG9wdXAiLCBmYWxzZSk7Jyk7DQogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIC8vIFVwZGF0ZQ0KICAgICAgICAgICAgaWYgKGRhdGFbImlkLnByb3ZpZGVyIl0gIT0gIi0iKSB7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgInVwZGF0ZSIsICJ7ey5idXR0b24udXBkYXRlfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogc2F2ZVBvcHVwRGF0YSgiaGRociIsICInICsgaWQgKyAnIiwgZmFsc2UsIDEpJyk7DQogICAgICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICAvLyBTYXZlDQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAic2F2ZSIsICJ7ey5idXR0b24uc2F2ZX19Iik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogc2F2ZVBvcHVwRGF0YSgiaGRociIsICInICsgaWQgKyAnIiwgZmFsc2UsIDApJyk7DQogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJmaWx0ZXIiOg0KICAgICAgICAgICAgY29udGVudC5jcmVhdGVIZWFkbGluZShkYXRhVHlwZSk7DQogICAgICAgICAgICAvLyBUeXBlDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAidHlwZSI7DQogICAgICAgICAgICB2YXIgdGV4dCA9IFsiTTNVOiAiICsgInt7LmZpbHRlci50eXBlLmdyb3VwVGl0bGV9fSIsICJ4VGVWZTogIiArICJ7ey5maWx0ZXIudHlwZS5jdXN0b21GaWx0ZXJ9fSJdOw0KICAgICAgICAgICAgdmFyIHZhbHVlcyA9IFsiamF2YXNjcmlwdDogb3BlblBvcFVwKCdncm91cC10aXRsZScpIiwgImphdmFzY3JpcHQ6IG9wZW5Qb3BVcCgnY3VzdG9tLWZpbHRlcicpIl07DQogICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCAiamF2YXNjcmlwdDogb3BlblBvcFVwKCdncm91cC10aXRsZScpIiwgZGJLZXkpOw0KICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgiaWQiLCBpZCk7DQogICAgICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICdqYXZhc2NyaXB0OiBjaGFuZ2VCdXR0b25BY3Rpb24odGhpcywgIm5leHQiLCAib25jbGljayIpOycpOyAvLyBjaGFuZ2VCdXR0b25BY3Rpb24NCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5maWx0ZXIudHlwZS50aXRsZX19Iiwgc2VsZWN0KTsNCiAgICAgICAgICAgIC8vIEludGVyYWN0aW9uDQogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUludGVyYWN0aW9uKCk7DQogICAgICAgICAgICAvLyBBYm9ydA0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImNhbmNlbCIsICJ7ey5idXR0b24uY2FuY2VsfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBzaG93RWxlbWVudCgicG9wdXAiLCBmYWxzZSk7Jyk7DQogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIC8vIE5leHQNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJuZXh0IiwgInt7LmJ1dHRvbi5uZXh0fX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoImdyb3VwLXRpdGxlIiknKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgiaWQiLCAnbmV4dCcpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSAiY3VzdG9tLWZpbHRlciI6DQogICAgICAgIGNhc2UgImdyb3VwLXRpdGxlIjoNCiAgICAgICAgICAgIHN3aXRjaCAoZGF0YVR5cGUpIHsNCiAgICAgICAgICAgICAgICBjYXNlICJjdXN0b20tZmlsdGVyIjoNCiAgICAgICAgICAgICAgICAgICAgY29udGVudC5jcmVhdGVIZWFkbGluZSgie3suZmlsdGVyLmN1c3RvbX19IiArICIgRmlsdGVyIik7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgImdyb3VwLXRpdGxlIjoNCiAgICAgICAgICAgICAgICAgICAgY29udGVudC5jcmVhdGVIZWFkbGluZSgie3suZmlsdGVyLmdyb3VwfX0iICsgIiBGaWx0ZXIiKTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICB9DQogICAgICAgICAgICAvLyBOYW1lICAgICAgDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAibmFtZSI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3suZmlsdGVyLm5hbWUucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LmZpbHRlci5uYW1lLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBEZXNjcmlwdGlvbg0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gImRlc2NyaXB0aW9uIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5maWx0ZXIuZGVzY3JpcHRpb24ucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LmZpbHRlci5kZXNjcmlwdGlvbi50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgLy8gVHlwZQ0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gInR5cGUiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiaGlkZGVuIiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCIiLCBpbnB1dCk7DQogICAgICAgICAgICB2YXIgZmlsdGVyVHlwZSA9IGRhdGFbZGJLZXldOw0KICAgICAgICAgICAgc3dpdGNoIChmaWx0ZXJUeXBlKSB7DQogICAgICAgICAgICAgICAgY2FzZSAiY3VzdG9tLWZpbHRlciI6DQogICAgICAgICAgICAgICAgICAgIC8vIENhc2Ugc2Vuc2l0aXZlDQogICAgICAgICAgICAgICAgICAgIHZhciBkYktleSA9ICJjYXNlU2Vuc2l0aXZlIjsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChkYktleSk7DQogICAgICAgICAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhW2RiS2V5XTsNCiAgICAgICAgICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LmZpbHRlci5jYXNlU2Vuc2l0aXZlLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAgICAgICAgIC8vIEZpbHRlciBSdWxlIChDdXN0b20pDQogICAgICAgICAgICAgICAgICAgIHZhciBkYktleSA9ICJmaWx0ZXIiOw0KICAgICAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5maWx0ZXIuZmlsdGVyUnVsZS5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5maWx0ZXIuZmlsdGVyUnVsZS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgICAgICAgICAvLyBTdGFydGluZyBDaGFubmVsIE51bWJlciBNYXBwaW5nDQogICAgICAgICAgICAgICAgICAgIHZhciBkYktleSA9ICJzdGFydGluZ0NoYW5uZWwiOw0KICAgICAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5maWx0ZXIuc3RhcnRpbmdDaGFubmVsLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LmZpbHRlci5zdGFydGluZ0NoYW5uZWwudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAiZ3JvdXAtdGl0bGUiOg0KICAgICAgICAgICAgICAgICAgICAvL2FsZXJ0KGRiS2V5ICsgIiAiICsgZmlsdGVyVHlwZSkNCiAgICAgICAgICAgICAgICAgICAgLy8gRmlsdGVyIGJhc2VkIG9uIHRoZSBncm91cHMgaW4gdGhlIE0zVQ0KICAgICAgICAgICAgICAgICAgICB2YXIgZGJLZXkgPSAiZmlsdGVyIjsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGdyb3Vwc00zVSA9IGdldExvY2FsRGF0YSgibTN1R3JvdXBzIiwgIiIpOw0KICAgICAgICAgICAgICAgICAgICB2YXIgdGV4dCA9IGdyb3Vwc00zVVsidGV4dCJdOw0KICAgICAgICAgICAgICAgICAgICB2YXIgdmFsdWVzID0gZ3JvdXBzTTNVWyJ2YWx1ZSJdOw0KICAgICAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCBkYXRhW2RiS2V5XSwgZGJLZXkpOw0KICAgICAgICAgICAgICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3suZmlsdGVyLmZpbHRlckdyb3VwLnRpdGxlfX0iLCBzZWxlY3QpOw0KICAgICAgICAgICAgICAgICAgICBjb250ZW50LmRlc2NyaXB0aW9uKCJ7ey5maWx0ZXIuZmlsdGVyR3JvdXAuZGVzY3JpcHRpb259fSIpOw0KICAgICAgICAgICAgICAgICAgICAvLyBDYXNlIHNlbnNldGl2ZQ0KICAgICAgICAgICAgICAgICAgICB2YXIgZGJLZXkgPSAiY2FzZVNlbnNpdGl2ZSI7DQogICAgICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goZGJLZXkpOw0KICAgICAgICAgICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YVtkYktleV07DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5maWx0ZXIuY2FzZVNlbnNpdGl2ZS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgICAgICAgICB2YXIgZGJLZXkgPSAiaW5jbHVkZSI7DQogICAgICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LmZpbHRlci5pbmNsdWRlLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LmZpbHRlci5pbmNsdWRlLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuZGVzY3JpcHRpb24oInt7LmZpbHRlci5pbmNsdWRlLmRlc2NyaXB0aW9ufX0iKTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGRiS2V5ID0gImV4Y2x1ZGUiOw0KICAgICAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5maWx0ZXIuZXhjbHVkZS5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5maWx0ZXIuZXhjbHVkZS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgICAgICAgICBjb250ZW50LmRlc2NyaXB0aW9uKCJ7ey5maWx0ZXIuZXhjbHVkZS5kZXNjcmlwdGlvbn19Iik7DQogICAgICAgICAgICAgICAgICAgIC8vIFByZXNlcnZlIE0zVSBQbGF5bGlzdCBDaGFubmVsIE1hcHBpbmcNCiAgICAgICAgICAgICAgICAgICAgdmFyIGRiS2V5ID0gInByZXNlcnZlTWFwcGluZyI7DQogICAgICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goZGJLZXkpOw0KICAgICAgICAgICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YVtkYktleV07DQogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5maWx0ZXIucHJlc2VydmVNYXBwaW5nLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAgICAgICAgIC8vIFN0YXJ0aW5nIENoYW5uZWwgTnVtYmVyIE1hcHBpbmcNCiAgICAgICAgICAgICAgICAgICAgdmFyIGRiS2V5ID0gInN0YXJ0aW5nQ2hhbm5lbCI7DQogICAgICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LmZpbHRlci5zdGFydGluZ0NoYW5uZWwucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3suZmlsdGVyLnN0YXJ0aW5nQ2hhbm5lbC50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBkZWZhdWx0Og0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIC8vIEludGVyYWN0aW9uDQogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUludGVyYWN0aW9uKCk7DQogICAgICAgICAgICAvLyBEZWxldGUNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJkZWxldGUiLCAie3suYnV0dG9uLmRlbGV0ZX19Iik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogc2F2ZVBvcHVwRGF0YSgiZmlsdGVyIiwgIicgKyBpZCArICciLCB0cnVlLCAwKScpOw0KICAgICAgICAgICAgaW5wdXQuY2xhc3NOYW1lID0gImRlbGV0ZSI7DQogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIC8vIEFib3J0DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAiY2FuY2VsIiwgInt7LmJ1dHRvbi5jYW5jZWx9fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IHNob3dFbGVtZW50KCJwb3B1cCIsIGZhbHNlKTsnKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgLy8gU2F2ZQ0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgInNhdmUiLCAie3suYnV0dG9uLnNhdmV9fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoImZpbHRlciIsICInICsgaWQgKyAnIiwgZmFsc2UsIDApJyk7DQogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJ4bWx0diI6DQogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUhlYWRsaW5lKGRhdGFUeXBlKTsNCiAgICAgICAgICAgIC8vIE5hbWUNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJuYW1lIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey54bWx0di5uYW1lLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey54bWx0di5uYW1lLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBEZXNjcmlwdGlvbg0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gImRlc2NyaXB0aW9uIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey54bWx0di5kZXNjcmlwdGlvbi5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sueG1sdHYuZGVzY3JpcHRpb24udGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIFVSTA0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gImZpbGUuc291cmNlIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey54bWx0di5maWxlWE1MVFYucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnhtbHR2LmZpbGVYTUxUVi50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgLy8gSW50ZXJhY3Rpb24NCiAgICAgICAgICAgIGNvbnRlbnQuY3JlYXRlSW50ZXJhY3Rpb24oKTsNCiAgICAgICAgICAgIC8vIERlbGV0ZQ0KICAgICAgICAgICAgaWYgKGRhdGFbImlkLnByb3ZpZGVyIl0gIT0gIi0iKSB7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImRlbGV0ZSIsICJ7ey5idXR0b24uZGVsZXRlfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogc2F2ZVBvcHVwRGF0YSgieG1sdHYiLCAiJyArIGlkICsgJyIsIHRydWUsIDApJyk7DQogICAgICAgICAgICAgICAgaW5wdXQuY2xhc3NOYW1lID0gImRlbGV0ZSI7DQogICAgICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICAvLyBBYm9ydA0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImNhbmNlbCIsICJ7ey5idXR0b24uY2FuY2VsfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBzaG93RWxlbWVudCgicG9wdXAiLCBmYWxzZSk7Jyk7DQogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIC8vIFVwZGF0ZQ0KICAgICAgICAgICAgaWYgKGRhdGFbImlkLnByb3ZpZGVyIl0gIT0gIi0iKSB7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgInVwZGF0ZSIsICJ7ey5idXR0b24udXBkYXRlfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogc2F2ZVBvcHVwRGF0YSgieG1sdHYiLCAiJyArIGlkICsgJyIsIGZhbHNlLCAxKScpOw0KICAgICAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgLy8gU2F2ZQ0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgInNhdmUiLCAie3suYnV0dG9uLnNhdmV9fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoInhtbHR2IiwgIicgKyBpZCArICciLCBmYWxzZSwgMCknKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIGNhc2UgInVzZXJzIjoNCiAgICAgICAgICAgIGNvbnRlbnQuY3JlYXRlSGVhZGxpbmUoInt7Lm1haW5NZW51Lml0ZW0udXNlcnN9fSIpOw0KICAgICAgICAgICAgLy8gVXNlciBuYW1lDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAidXNlcm5hbWUiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnVzZXJzLnVzZXJuYW1lLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey51c2Vycy51c2VybmFtZS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgLy8gTmV3IFBhcnNzd29yZA0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gInBhc3N3b3JkIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInBhc3N3b3JkIiwgZGJLZXksICIiKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3sudXNlcnMucGFzc3dvcmQucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnVzZXJzLnBhc3N3b3JkLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBDb25maXJtYXRpb24NCiAgICAgICAgICAgIHZhciBkYktleSA9ICJjb25maXJtIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInBhc3N3b3JkIiwgZGJLZXksICIiKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3sudXNlcnMuY29uZmlybS5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sudXNlcnMuY29uZmlybS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgLy8gQXV0aGVudGljYXRpb24gV0VCDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAiYXV0aGVudGljYXRpb24ud2ViIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goZGJLZXkpOw0KICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGFbZGJLZXldOw0KICAgICAgICAgICAgaWYgKGRhdGFbImRlZmF1bHRVc2VyIl0gPT0gdHJ1ZSkgew0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICJqYXZhc2NyaXB0OiByZXR1cm4gZmFsc2UiKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey51c2Vycy53ZWIudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIEF1dGhlbnRpY2F0aW9uIFBNUw0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gImF1dGhlbnRpY2F0aW9uLnBtcyI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KGRiS2V5KTsNCiAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhW2RiS2V5XTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey51c2Vycy5wbXMudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIEF1dGhlbnRpY2F0aW9uIE0zVQ0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gImF1dGhlbnRpY2F0aW9uLm0zdSI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KGRiS2V5KTsNCiAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhW2RiS2V5XTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey51c2Vycy5tM3UudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIEF1dGhlbnRpY2F0aW9uIFhNTA0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gImF1dGhlbnRpY2F0aW9uLnhtbCI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KGRiS2V5KTsNCiAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhW2RiS2V5XTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey51c2Vycy54bWwudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIEF1dGhlbnRpY2F0aW9uIEFQSQ0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gImF1dGhlbnRpY2F0aW9uLmFwaSI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KGRiS2V5KTsNCiAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhW2RiS2V5XTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey51c2Vycy5hcGkudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIEludGVyYWN0aW9uDQogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUludGVyYWN0aW9uKCk7DQogICAgICAgICAgICAvLyBEZWxldGUNCiAgICAgICAgICAgIGlmIChkYXRhWyJkZWZhdWx0VXNlciJdICE9IHRydWUgJiYgaWQgIT0gIi0iKSB7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImRlbGV0ZSIsICJ7ey5idXR0b24uZGVsZXRlfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5jbGFzc05hbWUgPSAiZGVsZXRlIjsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogc2F2ZVBvcHVwRGF0YSgiJyArIGRhdGFUeXBlICsgJyIsICInICsgaWQgKyAnIiwgdHJ1ZSwgMCknKTsNCiAgICAgICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIC8vIEFib3J0DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAiY2FuY2VsIiwgInt7LmJ1dHRvbi5jYW5jZWx9fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IHNob3dFbGVtZW50KCJwb3B1cCIsIGZhbHNlKTsnKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgLy8gU2F2ZQ0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgInNhdmUiLCAie3suYnV0dG9uLnNhdmV9fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoIicgKyBkYXRhVHlwZSArICciLCAiJyArIGlkICsgJyIsICJmYWxzZSIpOycpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSAibWFwcGluZyI6DQogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUhlYWRsaW5lKCJ7ey5tYWluTWVudS5pdGVtLm1hcHBpbmd9fSIpOw0KICAgICAgICAgICAgLy8gQWN0aXZlDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAieC1hY3RpdmUiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChkYktleSk7DQogICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YVtkYktleV07DQogICAgICAgICAgICBpbnB1dC5pZCA9ICJhY3RpdmUiOw0KICAgICAgICAgICAgLy9pbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIikNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdG9nZ2xlQ2hhbm5lbFN0YXR1cygnIiArIGlkICsgIicsIHRoaXMpIik7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3subWFwcGluZy5hY3RpdmUudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIENoYW5uZWwgbmFtZQ0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gIngtbmFtZSI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgIGlmIChCVUxLX0VESVQgPT0gdHJ1ZSkgew0KICAgICAgICAgICAgICAgIGlucHV0LnN0eWxlLmJvcmRlciA9ICJzb2xpZCAxcHggcmVkIjsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInJlYWRvbmx5IiwgInRydWUiKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5tYXBwaW5nLmNoYW5uZWxOYW1lLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICBjb250ZW50LmRlc2NyaXB0aW9uKGRhdGFbIm5hbWUiXSk7DQogICAgICAgICAgICAvLyBEZXNjcmlwdGlvbg0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gIngtZGVzY3JpcHRpb24iOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7Lm1hcHBpbmcuZGVzY3JpcHRpb24ucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7Lm1hcHBpbmcuZGVzY3JpcHRpb24udGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIC8vIFVwZGF0ZSB0aGUgY2hhbm5lbCB4LW5hbWUNCiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCJfdXVpZC5rZXkiKSkgew0KICAgICAgICAgICAgICAgIGlmIChkYXRhWyJfdXVpZC5rZXkiXSAhPSAiIikgew0KICAgICAgICAgICAgICAgICAgICB2YXIgZGJLZXkgPSAieC11cGRhdGUtY2hhbm5lbC1uYW1lIjsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChkYktleSk7DQogICAgICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGFbZGJLZXldOw0KICAgICAgICAgICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3subWFwcGluZy51cGRhdGVDaGFubmVsTmFtZS50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIC8vIENoYW5uZWwgbmFtZSByZWdleCBmb3IgdXBkYXRpbmcgdGhlIGNoYW5uZWwgbmFtZQ0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gInVwZGF0ZS1jaGFubmVsLW5hbWUtcmVnZXgiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7Lm1hcHBpbmcudXBkYXRlQ2hhbm5lbE5hbWVSZWdleC5wbGFjZWhvbGRlcn19Iik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3subWFwcGluZy51cGRhdGVDaGFubmVsTmFtZVJlZ2V4LnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICBjb250ZW50LmRlc2NyaXB0aW9uKCJ7ey5tYXBwaW5nLnVwZGF0ZUNoYW5uZWxOYW1lUmVnZXguZGVzY3JpcHRpb259fSIpOw0KICAgICAgICAgICAgLy8gQ2hhbm5lbCBncm91cCByZWdleCBmb3IgdXBkYXRpbmcgdGhlIGNoYW5uZWwgbmFtZQ0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gInVwZGF0ZS1jaGFubmVsLW5hbWUtYnktZ3JvdXAtcmVnZXgiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7Lm1hcHBpbmcudXBkYXRlQ2hhbm5lbE5hbWVCeUdyb3VwUmVnZXgucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7Lm1hcHBpbmcudXBkYXRlQ2hhbm5lbE5hbWVCeUdyb3VwUmVnZXgudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIGNvbnRlbnQuZGVzY3JpcHRpb24oInt7Lm1hcHBpbmcudXBkYXRlQ2hhbm5lbE5hbWVCeUdyb3VwUmVnZXguZGVzY3JpcHRpb259fSIpOw0KICAgICAgICAgICAgLy8gTG9nbyBVUkwgKENoYW5uZWwpIA0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gInR2Zy1sb2dvIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJpZCIsICJjaGFubmVsLWljb24iKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5tYXBwaW5nLmNoYW5uZWxMb2dvLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBDaGFubmVsIGxvZ28gdXBkYXRlDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAieC11cGRhdGUtY2hhbm5lbC1pY29uIjsNCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goZGJLZXkpOw0KICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGFbZGJLZXldOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJpZCIsICJ1cGRhdGUtaWNvbiIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJzsgY2hhbmdlQ2hhbm5lbExvZ28oJyIgKyBpZCArICInKTsiKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5tYXBwaW5nLnVwZGF0ZUNoYW5uZWxMb2dvLnRpdGxlfX0iLCBpbnB1dCk7DQogICAgICAgICAgICAvLyBFeHBhbmQgRVBHIGNhdGVnb3J5DQogICAgICAgICAgICB2YXIgZGJLZXkgPSAieC1jYXRlZ29yeSI7DQogICAgICAgICAgICB2YXIgdGV4dCA9IFsiLSIsICJLaWRzIChFbWJ5IG9ubHkpIiwgIk5ld3MiLCAiTW92aWUiLCAiU2VyaWVzIiwgIlNwb3J0cyJdOw0KICAgICAgICAgICAgdmFyIHZhbHVlcyA9IFsiIiwgIktpZHMiLCAiTmV3cyIsICJNb3ZpZSIsICJTZXJpZXMiLCAiU3BvcnRzIl07DQogICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCBkYXRhW2RiS2V5XSwgZGJLZXkpOw0KICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5tYXBwaW5nLmVwZ0NhdGVnb3J5LnRpdGxlfX0iLCBzZWxlY3QpOw0KICAgICAgICAgICAgLy8gTTNVIGdyb3VwIHRpdGxlDQogICAgICAgICAgICB2YXIgZGJLZXkgPSAieC1ncm91cC10aXRsZSI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgIGlucHV0LmRhdGFzZXQub2xkVmFsdWUgPSBkYXRhW2RiS2V5XTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5tYXBwaW5nLm0zdUdyb3VwVGl0bGUudGl0bGV9fSIsIGlucHV0KTsNCiAgICAgICAgICAgIGlmIChkYXRhWyJncm91cC10aXRsZSJdICE9IHVuZGVmaW5lZCkgew0KICAgICAgICAgICAgICAgIGNvbnRlbnQuZGVzY3JpcHRpb24oZGF0YVsiZ3JvdXAtdGl0bGUiXSk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBpZiAoZGF0YVsieC11cGRhdGUtY2hhbm5lbC1ncm91cCJdID09IHRydWUpIHsNCiAgICAgICAgICAgICAgICBpbnB1dC5kaXNhYmxlZCA9IHRydWU7DQogICAgICAgICAgICB9DQogICAgICAgICAgICAvLyBVcGRhdGUgY2hhbm5lbCBncm91cCBjaGVja2JveA0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gIngtdXBkYXRlLWNoYW5uZWwtZ3JvdXAiOw0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChkYktleSk7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRvZ2dsZUdyb3VwVXBkYXRlQ2IoJyIgKyBpZCArICInLCB0aGlzKTsiKTsNCiAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhW2RiS2V5XTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5tYXBwaW5nLnVwZGF0ZUNoYW5uZWxHcm91cC50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgY29udGVudC5kZXNjcmlwdGlvbigie3subWFwcGluZy51cGRhdGVDaGFubmVsR3JvdXAuZGVzY3JpcHRpb259fSIpOw0KICAgICAgICAgICAgLy8gWE1MVFYgZmlsZQ0KICAgICAgICAgICAgdmFyIGRiS2V5ID0gJ3gteG1sdHYtZmlsZSc7DQogICAgICAgICAgICBjb25zdCB4bWxUdkZpbGUgPSBkYXRhW2RiS2V5XTsNCiAgICAgICAgICAgIHZhciB4bWxUdiA9IG5ldyBYTUxUVkZpbGUoKTsNCiAgICAgICAgICAgIGNvbnN0IHhtbFR2RmlsZVNlbGVjdCA9IHhtbFR2LmdldEZpbGVzKGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIHhtbFR2RmlsZVNlbGVjdC5zZXRBdHRyaWJ1dGUoJ25hbWUnLCBkYktleSk7DQogICAgICAgICAgICB4bWxUdkZpbGVTZWxlY3Quc2V0QXR0cmlidXRlKCdpZCcsICdwb3B1cC14bWx0dicpOw0KICAgICAgICAgICAgeG1sVHZGaWxlU2VsZWN0LnNldEF0dHJpYnV0ZSgnb25jaGFuZ2UnLCBgamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCc7IHNldFhtbHR2Q2hhbm5lbCgnJHtpZH0nLCB0aGlzKTtgKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCd7ey5tYXBwaW5nLnhtbHR2RmlsZS50aXRsZX19JywgeG1sVHZGaWxlU2VsZWN0KTsNCiAgICAgICAgICAgIC8vIFhNTFRWIE1hcHBpbmcNCiAgICAgICAgICAgIHZhciBkYktleSA9ICd4LW1hcHBpbmcnOw0KICAgICAgICAgICAgdmFyIHhtbFR2ID0gbmV3IFhNTFRWRmlsZSgpOw0KICAgICAgICAgICAgY29uc3QgY3VycmVudFhtbFR2SWQgPSBkYXRhW2RiS2V5XTsNCiAgICAgICAgICAgIGNvbnN0IFt4bWxUdklkQ29udGFpbmVyLCB4bWxUdklkSW5wdXQsIHhtbFR2SWREYXRhbGlzdF0gPSB4bWxUdi5uZXdYbWxUdklkUGlja2VyKHhtbFR2RmlsZSwgY3VycmVudFhtbFR2SWQpOw0KICAgICAgICAgICAgeG1sVHZJZENvbnRhaW5lci5zZXRBdHRyaWJ1dGUoJ2lkJywgJ3htbHR2LWlkLXBpY2tlci1jb250YWluZXInKTsNCiAgICAgICAgICAgIHhtbFR2SWRJbnB1dC5zZXRBdHRyaWJ1dGUoJ2xpc3QnLCAneG1sdHYtaWQtcGlja2VyLWRhdGFsaXN0Jyk7DQogICAgICAgICAgICB4bWxUdklkSW5wdXQuc2V0QXR0cmlidXRlKCduYW1lJywgJ3gtbWFwcGluZycpOyAvLyBTaG91bGQgc3RheSB4LW1hcHBpbmcgYXMgaXQgd2lsbCBiZSB1c2VkIGluIGRvbmVQb3B1cERhdGEgdG8gbWFrZSBhIHNlcnZlciByZXF1ZXN0DQogICAgICAgICAgICB4bWxUdklkSW5wdXQuc2V0QXR0cmlidXRlKCdpZCcsICd4bWx0di1pZC1waWNrZXItaW5wdXQnKTsNCiAgICAgICAgICAgIHhtbFR2SWRJbnB1dC5zZXRBdHRyaWJ1dGUoJ29uY2hhbmdlJywgYGphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnOyBjaGVja1htbHR2Q2hhbm5lbCgnJHtpZH0nLCB0aGlzLnZhbHVlLCAnJHt4bWxUdkZpbGV9Jyk7YCk7DQogICAgICAgICAgICB4bWxUdklkRGF0YWxpc3Quc2V0QXR0cmlidXRlKCdpZCcsICd4bWx0di1pZC1waWNrZXItZGF0YWxpc3QnKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCd7ey5tYXBwaW5nLnhtbHR2Q2hhbm5lbC50aXRsZX19JywgeG1sVHZJZENvbnRhaW5lcik7DQogICAgICAgICAgICAvLyBUaW1lc2hpZnQNCiAgICAgICAgICAgIHZhciBkYktleSA9ICJ4LXRpbWVzaGlmdCI7DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3subWFwcGluZy50aW1lc2hpZnQucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJpZCIsICJ0aW1lc2hpZnQiKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5tYXBwaW5nLnRpbWVzaGlmdC50aXRsZX19IiwgaW5wdXQpOw0KICAgICAgICAgICAgLy8gSW50ZXJhY3Rpb24NCiAgICAgICAgICAgIGNvbnRlbnQuY3JlYXRlSW50ZXJhY3Rpb24oKTsNCiAgICAgICAgICAgIC8vIFVwbG9hZCBsb2dvDQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAiY2FuY2VsIiwgInt7LmJ1dHRvbi51cGxvYWRMb2dvfX0iKTsNCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiB1cGxvYWRMb2dvKCk7Jyk7DQogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsNCiAgICAgICAgICAgIC8vIEFib3J0DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAiY2FuY2VsIiwgInt7LmJ1dHRvbi5jYW5jZWx9fSIpOw0KICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IHNob3dFbGVtZW50KCJwb3B1cCIsIGZhbHNlKTsnKTsNCiAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOw0KICAgICAgICAgICAgLy8gRmluaXNoZWQNCiAgICAgICAgICAgIHZhciBpZHMgPSBbXTsNCiAgICAgICAgICAgIGlkcyA9IGdldEFsbFNlbGVjdGVkQ2hhbm5lbHMoKTsNCiAgICAgICAgICAgIGlmIChpZHMubGVuZ3RoID09IDApIHsNCiAgICAgICAgICAgICAgICBpZHMucHVzaChpZCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAic2F2ZSIsICJ7ey5idXR0b24uZG9uZX19Iik7DQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogZG9uZVBvcHVwRGF0YSgiJyArIGRhdGFUeXBlICsgJyIsICInICsgaWRzICsgJyIsICJmYWxzZSIpOycpOw0KICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgIGJyZWFrOw0KICAgIH0NCiAgICBzaG93UG9wVXBFbGVtZW50KCdwb3B1cC1jdXN0b20nKTsNCn0NCmNsYXNzIFhNTFRWRmlsZSB7DQogICAgZ2V0RmlsZXMoc2V0KSB7DQogICAgICAgIGxldCBmaWxlSURzID0gZ2V0T3duT2JqUHJvcHMoU0VSVkVSWyJ4ZXBnIl1bInhtbHR2TWFwIl0pOw0KICAgICAgICBsZXQgdmFsdWVzID0gbmV3IEFycmF5KCItIik7DQogICAgICAgIGxldCB0ZXh0ID0gbmV3IEFycmF5KCItIik7DQogICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgZmlsZUlEcy5sZW5ndGg7IGkrKykgew0KICAgICAgICAgICAgaWYgKGZpbGVJRHNbaV0gIT0gInhUZVZlIER1bW15Iikgew0KICAgICAgICAgICAgICAgIHZhbHVlcy5wdXNoKGdldFZhbHVlRnJvbVByb3ZpZGVyRmlsZShmaWxlSURzW2ldLCAieG1sdHYiLCAiZmlsZS54dGV2ZSIpKTsNCiAgICAgICAgICAgICAgICB0ZXh0LnB1c2goZ2V0VmFsdWVGcm9tUHJvdmlkZXJGaWxlKGZpbGVJRHNbaV0sICJ4bWx0diIsICJuYW1lIikpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgZWxzZSB7DQogICAgICAgICAgICAgICAgdmFsdWVzLnB1c2goZmlsZUlEc1tpXSk7DQogICAgICAgICAgICAgICAgdGV4dC5wdXNoKGZpbGVJRHNbaV0pOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQogICAgICAgIGxldCBzZWxlY3QgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJTRUxFQ1QiKTsNCiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0ZXh0Lmxlbmd0aDsgaSsrKSB7DQogICAgICAgICAgICB2YXIgb3B0aW9uID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiT1BUSU9OIik7DQogICAgICAgICAgICBvcHRpb24uc2V0QXR0cmlidXRlKCJ2YWx1ZSIsIHZhbHVlc1tpXSk7DQogICAgICAgICAgICBvcHRpb24uaW5uZXJUZXh0ID0gdGV4dFtpXTsNCiAgICAgICAgICAgIHNlbGVjdC5hcHBlbmRDaGlsZChvcHRpb24pOw0KICAgICAgICB9DQogICAgICAgIGlmIChzZXQgIT0gIiIpIHsNCiAgICAgICAgICAgIHNlbGVjdC52YWx1ZSA9IHNldDsNCiAgICAgICAgfQ0KICAgICAgICByZXR1cm4gc2VsZWN0Ow0KICAgIH0NCiAgICAvKioNCiAgICAgKiBAcGFyYW0geG1sVHZGaWxlIFhNTCBmaWxlIHBhdGggdG8gZ2V0IEVQRyBmcm9tLg0KICAgICAqIEBwYXJhbSBjdXJyZW50WG1sVHZJZCBDdXJyZW50IFhNTFRWIElEIHRvIHNldCBpbml0aWFsIGlucHV0IHZhbHVlIHRvLg0KICAgICAqIEByZXR1cm5zIEFycmF5IG9mLCBzZXF1ZW50aWFsbHk6DQogICAgICogMSkgQ29udGFpbmVyIG9mIHRoZSBwaWNrZXIuDQogICAgICogMikgSW5wdXQgZmllbGQgdG8gdHlwZSBhdCBhbmQgZ2V0IGNob2ljZSBmcm9tLg0KICAgICAqIDMpIERhdGFsaXN0IGNvbnRhaW5pbmcgZXZlcnkgb3B0aW9uLg0KICAgICAqLw0KICAgIG5ld1htbFR2SWRQaWNrZXIoeG1sVHZGaWxlLCBjdXJyZW50WG1sVHZJZCkgew0KICAgICAgICBjb25zdCBjb250YWluZXIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsNCiAgICAgICAgY29uc3QgaW5wdXQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdpbnB1dCcpOw0KICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoJ3R5cGUnLCAndGV4dCcpOw0KICAgICAgICAvLyBJbml0aWFsbHksIHNldCB2YWx1ZSB0byAnLScgaWYgaW5wdXQgaXMgZW1wdHkNCiAgICAgICAgaW5wdXQudmFsdWUgPSAoY3VycmVudFhtbFR2SWQpID8gY3VycmVudFhtbFR2SWQgOiAnLSc7DQogICAgICAgIC8vIFdoZW4gaW5wdXQgaXMgZm9jdXNlZCwgcmVtb3ZlICctJyBmcm9tIGl0DQogICAgICAgIGlucHV0LmFkZEV2ZW50TGlzdGVuZXIoJ2ZvY3VzJywgKGV2dCkgPT4gew0KICAgICAgICAgICAgY29uc3QgdGFyZ2V0ID0gZXZ0LnRhcmdldDsNCiAgICAgICAgICAgIHRhcmdldC52YWx1ZSA9ICh0YXJnZXQudmFsdWUgPT09ICctJykgPyAnJyA6IHRhcmdldC52YWx1ZTsNCiAgICAgICAgfSk7DQogICAgICAgIC8vIFdoZW4gaW5wdXQgbG9zZSBmb2N1cyBvciB0YWtlIGEgdmFsdWUsIGlmIGl0J3MgZW1wdHksIHNldCB2YWx1ZSB0byAnLScNCiAgICAgICAgaW5wdXQuYWRkRXZlbnRMaXN0ZW5lcignYmx1cicsIHNldEZhbGxiYWNrVmFsdWUpOw0KICAgICAgICBpbnB1dC5hZGRFdmVudExpc3RlbmVyKCdjaGFuZ2UnLCBzZXRGYWxsYmFja1ZhbHVlKTsNCiAgICAgICAgZnVuY3Rpb24gc2V0RmFsbGJhY2tWYWx1ZShldnQpIHsNCiAgICAgICAgICAgIGNvbnN0IHRhcmdldCA9IGV2dC50YXJnZXQ7DQogICAgICAgICAgICB0YXJnZXQudmFsdWUgPSAodGFyZ2V0LnZhbHVlKSA/IHRhcmdldC52YWx1ZSA6ICctJzsNCiAgICAgICAgfQ0KICAgICAgICBjb250YWluZXIuYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICBjb25zdCBkYXRhbGlzdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RhdGFsaXN0Jyk7DQogICAgICAgIGNvbnN0IG9wdGlvbiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ29wdGlvbicpOw0KICAgICAgICBvcHRpb24uc2V0QXR0cmlidXRlKCd2YWx1ZScsICctJyk7DQogICAgICAgIG9wdGlvbi5pbm5lclRleHQgPSAnLSc7DQogICAgICAgIGRhdGFsaXN0LmFwcGVuZENoaWxkKG9wdGlvbik7DQogICAgICAgIGNvbnN0IGVwZyA9IFNFUlZFUlsneGVwZyddWyd4bWx0dk1hcCddW3htbFR2RmlsZV07DQogICAgICAgIGlmIChlcGcpIHsNCiAgICAgICAgICAgIGNvbnN0IHByb2dyYW1JZHMgPSBnZXRPd25PYmpQcm9wcyhlcGcpOw0KICAgICAgICAgICAgcHJvZ3JhbUlkcy5mb3JFYWNoKChwcm9ncmFtSWQpID0+IHsNCiAgICAgICAgICAgICAgICBjb25zdCBwcm9ncmFtID0gZXBnW3Byb2dyYW1JZF07DQogICAgICAgICAgICAgICAgaWYgKHByb2dyYW0uaGFzT3duUHJvcGVydHkoJ2Rpc3BsYXktbmFtZXMnKSkgew0KICAgICAgICAgICAgICAgICAgICBwcm9ncmFtWydkaXNwbGF5LW5hbWVzJ10uZm9yRWFjaCgoZGlzcGxheU5hbWUpID0+IHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IG9wdGlvbiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ29wdGlvbicpOw0KICAgICAgICAgICAgICAgICAgICAgICAgb3B0aW9uLnNldEF0dHJpYnV0ZSgndmFsdWUnLCBwcm9ncmFtSWQpOw0KICAgICAgICAgICAgICAgICAgICAgICAgb3B0aW9uLmlubmVyVGV4dCA9IGRpc3BsYXlOYW1lWydWYWx1ZSddOw0KICAgICAgICAgICAgICAgICAgICAgICAgZGF0YWxpc3QuYXBwZW5kQ2hpbGQob3B0aW9uKTsNCiAgICAgICAgICAgICAgICAgICAgfSk7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgICAgICAgICBjb25zdCBvcHRpb24gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdvcHRpb24nKTsNCiAgICAgICAgICAgICAgICAgICAgb3B0aW9uLnNldEF0dHJpYnV0ZSgndmFsdWUnLCBwcm9ncmFtSWQpOw0KICAgICAgICAgICAgICAgICAgICBvcHRpb24uaW5uZXJUZXh0ID0gJy0nOw0KICAgICAgICAgICAgICAgICAgICBkYXRhbGlzdC5hcHBlbmRDaGlsZChvcHRpb24pOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0pOw0KICAgICAgICB9DQogICAgICAgIGNvbnRhaW5lci5hcHBlbmRDaGlsZChkYXRhbGlzdCk7DQogICAgICAgIHJldHVybiBbY29udGFpbmVyLCBpbnB1dCwgZGF0YWxpc3RdOw0KICAgIH0NCn0NCmZ1bmN0aW9uIGdldFZhbHVlRnJvbVByb3ZpZGVyRmlsZShmaWxlLCBmaWxlVHlwZSwga2V5KSB7DQogICAgaWYgKGZpbGUgPT0gInhUZVZlIER1bW15Iikgew0KICAgICAgICByZXR1cm4gZmlsZTsNCiAgICB9DQogICAgbGV0IGZpbGVJRDsNCiAgICBsZXQgaW5kaWNhdG9yID0gZmlsZS5jaGFyQXQoMCk7DQogICAgc3dpdGNoIChpbmRpY2F0b3IpIHsNCiAgICAgICAgY2FzZSAiTSI6DQogICAgICAgICAgICBmaWxlVHlwZSA9ICJtM3UiOw0KICAgICAgICAgICAgZmlsZUlEID0gZmlsZTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJIIjoNCiAgICAgICAgICAgIGZpbGVUeXBlID0gImhkaHIiOw0KICAgICAgICAgICAgZmlsZUlEID0gZmlsZTsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJYIjoNCiAgICAgICAgICAgIGZpbGVUeXBlID0gInhtbHR2IjsNCiAgICAgICAgICAgIGZpbGVJRCA9IGZpbGUuc3Vic3RyaW5nKDAsIGZpbGUubGFzdEluZGV4T2YoJy4nKSk7DQogICAgICAgICAgICBicmVhazsNCiAgICB9DQogICAgaWYgKFNFUlZFUlsic2V0dGluZ3MiXVsiZmlsZXMiXVtmaWxlVHlwZV0uaGFzT3duUHJvcGVydHkoZmlsZUlEKSA9PSB0cnVlKSB7DQogICAgICAgIHZhciBkYXRhID0gU0VSVkVSWyJzZXR0aW5ncyJdWyJmaWxlcyJdW2ZpbGVUeXBlXVtmaWxlSURdOw0KICAgICAgICByZXR1cm4gZGF0YVtrZXldOw0KICAgIH0NCiAgICByZXR1cm47DQp9DQpmdW5jdGlvbiBzZXRYbWx0dkNoYW5uZWwoZXBnTWFwSWQsIHhtbFR2RmlsZVNlbGVjdCkgew0KICAgIGNvbnN0IHhtbFR2ID0gbmV3IFhNTFRWRmlsZSgpOw0KICAgIGNvbnN0IG5ld1htbFR2RmlsZSA9IHhtbFR2RmlsZVNlbGVjdC52YWx1ZTsNCiAgICAvLyBSZW1vdmUgb2xkIFhNTFRWIElEIHNlbGVjdGlvbiBib3gNCiAgICBjb25zdCB4bWxUdklkUGlja2VyUGFyZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3htbHR2LWlkLXBpY2tlci1jb250YWluZXInKS5wYXJlbnRFbGVtZW50Ow0KICAgIHhtbFR2SWRQaWNrZXJQYXJlbnQuaW5uZXJIVE1MID0gJyc7DQogICAgLy8gQ3JlYXRlIG5ldyBYTUxUViBJRCBzZWxlY3Rpb24gYm94DQogICAgY29uc3QgdHZnSWQgPSBTRVJWRVJbJ3hlcGcnXVsnZXBnTWFwcGluZyddW2VwZ01hcElkXVsndHZnLWlkJ107DQogICAgY29uc3QgW3htbFR2SWRDb250YWluZXIsIHhtbFR2SWRJbnB1dCwgeG1sVHZJZERhdGFsaXN0XSA9IHhtbFR2Lm5ld1htbFR2SWRQaWNrZXIobmV3WG1sVHZGaWxlLCB0dmdJZCk7DQogICAgeG1sVHZJZENvbnRhaW5lci5zZXRBdHRyaWJ1dGUoJ2lkJywgJ3htbHR2LWlkLXBpY2tlci1jb250YWluZXInKTsNCiAgICB4bWxUdklkSW5wdXQuc2V0QXR0cmlidXRlKCdsaXN0JywgJ3htbHR2LWlkLXBpY2tlci1kYXRhbGlzdCcpOw0KICAgIHhtbFR2SWRJbnB1dC5zZXRBdHRyaWJ1dGUoJ25hbWUnLCAneC1tYXBwaW5nJyk7IC8vIFNob3VsZCBzdGF5IHgtbWFwcGluZyBhcyBpdCB3aWxsIGJlIHVzZWQgaW4gZG9uZVBvcHVwRGF0YSB0byBtYWtlIGEgc2VydmVyIHJlcXVlc3QNCiAgICB4bWxUdklkSW5wdXQuc2V0QXR0cmlidXRlKCdpZCcsICd4bWx0di1pZC1waWNrZXItaW5wdXQnKTsNCiAgICB4bWxUdklkSW5wdXQuc2V0QXR0cmlidXRlKCdvbmNoYW5nZScsIGBqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJzsgY2hlY2tYbWx0dkNoYW5uZWwoJyR7ZXBnTWFwSWR9JywgdGhpcy52YWx1ZSwgJyR7bmV3WG1sVHZGaWxlfScpO2ApOw0KICAgIHhtbFR2SWRJbnB1dC5jbGFzc0xpc3QuYWRkKCdjaGFuZ2VkJyk7DQogICAgeG1sVHZJZERhdGFsaXN0LnNldEF0dHJpYnV0ZSgnaWQnLCAneG1sdHYtaWQtcGlja2VyLWRhdGFsaXN0Jyk7DQogICAgLy8gQWRkIG5ldyBYTUxUViBJRCBzZWxlY3Rpb24gYm94IHRvIGl0J3MgcGFyZW50DQogICAgeG1sVHZJZFBpY2tlclBhcmVudC5hcHBlbmRDaGlsZCh4bWxUdklkQ29udGFpbmVyKTsNCiAgICBjaGVja1htbHR2Q2hhbm5lbChlcGdNYXBJZCwgeG1sVHZJZElucHV0LnZhbHVlLCBuZXdYbWxUdkZpbGUpOw0KfQ0KZnVuY3Rpb24gY2hlY2tYbWx0dkNoYW5uZWwoZXBnTWFwSWQsIG5ld1htbFR2SWQsIHhtbFR2RmlsZSkgew0KICAgIGNvbnN0IGNoYW5uZWxBY3RpdmVDYiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdhY3RpdmUnKTsNCiAgICBjb25zdCBjaGFubmVsQWN0aXZlID0gbmV3WG1sVHZJZCAhPSAnLSc7DQogICAgY2hhbm5lbEFjdGl2ZUNiLmNoZWNrZWQgPSBjaGFubmVsQWN0aXZlOw0KICAgIGNoYW5uZWxBY3RpdmVDYi5jbGFzc05hbWUgPSAnY2hhbmdlZCc7DQogICAgaWYgKHhtbFR2RmlsZSAhPSAneFRlVmUgRHVtbXknICYmIGNoYW5uZWxBY3RpdmUgPT0gdHJ1ZSkgew0KICAgICAgICBjaGFuZ2VDaGFubmVsTG9nbyhlcGdNYXBJZCk7DQogICAgICAgIHJldHVybjsNCiAgICB9DQogICAgaWYgKHhtbFR2RmlsZSA9PSAneFRlVmUgRHVtbXknKSB7DQogICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd1cGRhdGUtaWNvbicpLmNoZWNrZWQgPSBmYWxzZTsNCiAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3VwZGF0ZS1pY29uJykuY2xhc3NOYW1lID0gJ2NoYW5nZWQnOw0KICAgIH0NCn0NCmZ1bmN0aW9uIGNoYW5nZUNoYW5uZWxMb2dvKGVwZ01hcElkKSB7DQogICAgY29uc3QgY2hhbm5lbCA9IFNFUlZFUlsneGVwZyddWydlcGdNYXBwaW5nJ11bZXBnTWFwSWRdOw0KICAgIGNvbnN0IHhtbFR2RmlsZVNlbGVjdCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdwb3B1cC14bWx0dicpOw0KICAgIGNvbnN0IHhtbFR2RmlsZSA9IHhtbFR2RmlsZVNlbGVjdC5vcHRpb25zW3htbFR2RmlsZVNlbGVjdC5zZWxlY3RlZEluZGV4XS52YWx1ZTsNCiAgICBjb25zdCB4bWxUdklkSW5wdXQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgneG1sdHYtaWQtcGlja2VyLWlucHV0Jyk7DQogICAgY29uc3QgbmV3WG1sVHZJZCA9IHhtbFR2SWRJbnB1dC52YWx1ZTsNCiAgICBjb25zdCB1cGRhdGVMb2dvID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3VwZGF0ZS1pY29uJykuY2hlY2tlZDsNCiAgICBsZXQgbG9nbzsNCiAgICBpZiAodXBkYXRlTG9nbyA9PSB0cnVlICYmIHhtbFR2RmlsZSAhPSAneFRlVmUgRHVtbXknKSB7DQogICAgICAgIGlmIChTRVJWRVJbJ3hlcGcnXVsneG1sdHZNYXAnXVt4bWxUdkZpbGVdLmhhc093blByb3BlcnR5KG5ld1htbFR2SWQpKSB7DQogICAgICAgICAgICBsb2dvID0gU0VSVkVSWyd4ZXBnJ11bJ3htbHR2TWFwJ11beG1sVHZGaWxlXVtuZXdYbWxUdklkXVsnaWNvbiddOw0KICAgICAgICB9DQogICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgbG9nbyA9IGNoYW5uZWxbJ3R2Zy1sb2dvJ107DQogICAgICAgIH0NCiAgICAgICAgdmFyIGxvZ29JbnB1dCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjaGFubmVsLWljb24nKTsNCiAgICAgICAgbG9nb0lucHV0LnZhbHVlID0gbG9nbzsNCiAgICAgICAgaWYgKEJVTEtfRURJVCA9PSBmYWxzZSkgew0KICAgICAgICAgICAgbG9nb0lucHV0LmNsYXNzTmFtZSA9ICdjaGFuZ2VkJzsNCiAgICAgICAgfQ0KICAgIH0NCn0NCmZ1bmN0aW9uIHNhdmVQb3B1cERhdGEoZGF0YVR5cGUsIGlkLCByZW1vdmUsIG9wdGlvbikgew0KICAgIGlmIChkYXRhVHlwZSA9PSAibWFwcGluZyIpIHsNCiAgICAgICAgbGV0IGRhdGEgPSB7fTsNCiAgICAgICAgbGV0IGNtZCA9ICJzYXZlRXBnTWFwcGluZyI7DQogICAgICAgIGRhdGFbImVwZ01hcHBpbmciXSA9IFNFUlZFUlsieGVwZyJdWyJlcGdNYXBwaW5nIl07DQogICAgICAgIGxldCBzZXJ2ZXIgPSBuZXcgU2VydmVyKGNtZCk7DQogICAgICAgIHNlcnZlci5yZXF1ZXN0KGRhdGEpOw0KICAgICAgICBkZWxldGUgVU5ET1siZXBnTWFwcGluZyJdOw0KICAgICAgICByZXR1cm47DQogICAgfQ0KICAgIGxldCBkaXYgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicG9wdXAtY3VzdG9tIik7DQogICAgbGV0IGlucHV0cyA9IGRpdi5nZXRFbGVtZW50c0J5VGFnTmFtZSgiVEFCTEUiKVswXS5nZXRFbGVtZW50c0J5VGFnTmFtZSgiSU5QVVQiKTsNCiAgICBsZXQgc2VsZWN0cyA9IGRpdi5nZXRFbGVtZW50c0J5VGFnTmFtZSgiVEFCTEUiKVswXS5nZXRFbGVtZW50c0J5VGFnTmFtZSgiU0VMRUNUIik7DQogICAgbGV0IGlucHV0ID0ge307DQogICAgbGV0IGNvbmZpcm1Nc2c7DQogICAgZm9yIChsZXQgaSA9IDA7IGkgPCBzZWxlY3RzLmxlbmd0aDsgaSsrKSB7DQogICAgICAgIHZhciBuYW1lOw0KICAgICAgICBuYW1lID0gc2VsZWN0c1tpXS5uYW1lOw0KICAgICAgICB2YXIgdmFsdWUgPSBzZWxlY3RzW2ldLnZhbHVlOw0KICAgICAgICBzd2l0Y2ggKG5hbWUpIHsNCiAgICAgICAgICAgIGNhc2UgInR1bmVyIjoNCiAgICAgICAgICAgICAgICBpbnB1dFtuYW1lXSA9IHBhcnNlSW50KHZhbHVlKTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICAgICAgaW5wdXRbbmFtZV0gPSB2YWx1ZTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgfQ0KICAgIH0NCiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGlucHV0cy5sZW5ndGg7IGkrKykgew0KICAgICAgICBzd2l0Y2ggKGlucHV0c1tpXS50eXBlKSB7DQogICAgICAgICAgICBjYXNlICJjaGVja2JveCI6DQogICAgICAgICAgICAgICAgbmFtZSA9IGlucHV0c1tpXS5uYW1lOw0KICAgICAgICAgICAgICAgIGlucHV0W25hbWVdID0gaW5wdXRzW2ldLmNoZWNrZWQ7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ0ZXh0IjoNCiAgICAgICAgICAgIGNhc2UgImhpZGRlbiI6DQogICAgICAgICAgICBjYXNlICJwYXNzd29yZCI6DQogICAgICAgICAgICAgICAgbmFtZSA9IGlucHV0c1tpXS5uYW1lOw0KICAgICAgICAgICAgICAgIHN3aXRjaCAobmFtZSkgew0KICAgICAgICAgICAgICAgICAgICBjYXNlICJ0dW5lciI6DQogICAgICAgICAgICAgICAgICAgICAgICBpbnB1dFtuYW1lXSA9IHBhcnNlSW50KGlucHV0c1tpXS52YWx1ZSk7DQogICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgICAgICAgICAgICAgIGlucHV0W25hbWVdID0gaW5wdXRzW2ldLnZhbHVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICB9DQogICAgfQ0KICAgIGxldCBkYXRhID0ge307DQogICAgbGV0IGNtZDsNCiAgICBpZiAocmVtb3ZlID09IHRydWUpIHsNCiAgICAgICAgaW5wdXRbImRlbGV0ZSJdID0gdHJ1ZTsNCiAgICB9DQogICAgc3dpdGNoIChkYXRhVHlwZSkgew0KICAgICAgICBjYXNlICJ1c2VycyI6DQogICAgICAgICAgICBjb25maXJtTXNnID0gIkRlbGV0ZSB0aGlzIHVzZXI/IjsNCiAgICAgICAgICAgIGlmIChpZCA9PSAiLSIpIHsNCiAgICAgICAgICAgICAgICBjbWQgPSAic2F2ZU5ld1VzZXIiOw0KICAgICAgICAgICAgICAgIGRhdGFbInVzZXJEYXRhIl0gPSBpbnB1dDsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgICAgIGNtZCA9ICJzYXZlVXNlckRhdGEiOw0KICAgICAgICAgICAgICAgIGxldCBkID0ge307DQogICAgICAgICAgICAgICAgZFtpZF0gPSBpbnB1dDsNCiAgICAgICAgICAgICAgICBkYXRhWyJ1c2VyRGF0YSJdID0gZDsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJtM3UiOg0KICAgICAgICAgICAgY29uZmlybU1zZyA9ICJEZWxldGUgdGhpcyBwbGF5bGlzdD8iOw0KICAgICAgICAgICAgc3dpdGNoIChvcHRpb24pIHsNCiAgICAgICAgICAgICAgICAvLyBQb3B1cDogU2F2ZQ0KICAgICAgICAgICAgICAgIGNhc2UgMDoNCiAgICAgICAgICAgICAgICAgICAgY21kID0gInNhdmVGaWxlc00zVSI7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIC8vIFBvcHVwOiBVcGRhdGUNCiAgICAgICAgICAgICAgICBjYXNlIDE6DQogICAgICAgICAgICAgICAgICAgIGNtZCA9ICJ1cGRhdGVGaWxlTTNVIjsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBkYXRhWyJmaWxlcyJdID0ge307DQogICAgICAgICAgICBkYXRhWyJmaWxlcyJdW2RhdGFUeXBlXSA9IHt9Ow0KICAgICAgICAgICAgZGF0YVsiZmlsZXMiXVtkYXRhVHlwZV1baWRdID0gaW5wdXQ7DQogICAgICAgICAgICBicmVhazsNCiAgICAgICAgY2FzZSAiaGRociI6DQogICAgICAgICAgICBjb25maXJtTXNnID0gIkRlbGV0ZSB0aGlzIEhESG9tZVJ1biB0dW5lcj8iOw0KICAgICAgICAgICAgc3dpdGNoIChvcHRpb24pIHsNCiAgICAgICAgICAgICAgICAvLyBQb3B1cDogU2F2ZQ0KICAgICAgICAgICAgICAgIGNhc2UgMDoNCiAgICAgICAgICAgICAgICAgICAgY21kID0gInNhdmVGaWxlc0hESFIiOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICAvLyBQb3B1cDogVXBkYXRlDQogICAgICAgICAgICAgICAgY2FzZSAxOg0KICAgICAgICAgICAgICAgICAgICBjbWQgPSAidXBkYXRlRmlsZUhESFIiOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGRhdGFbImZpbGVzIl0gPSB7fTsNCiAgICAgICAgICAgIGRhdGFbImZpbGVzIl1bZGF0YVR5cGVdID0ge307DQogICAgICAgICAgICBkYXRhWyJmaWxlcyJdW2RhdGFUeXBlXVtpZF0gPSBpbnB1dDsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJ4bWx0diI6DQogICAgICAgICAgICBjb25maXJtTXNnID0gIkRlbGV0ZSB0aGlzIFhNTFRWIGZpbGU/IjsNCiAgICAgICAgICAgIHN3aXRjaCAob3B0aW9uKSB7DQogICAgICAgICAgICAgICAgLy8gUG9wdXA6IFNhdmUNCiAgICAgICAgICAgICAgICBjYXNlIDA6DQogICAgICAgICAgICAgICAgICAgIGNtZCA9ICJzYXZlRmlsZXNYTUxUViI7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIC8vIFBvcHVwOiBVcGRhdGUNCiAgICAgICAgICAgICAgICBjYXNlIDE6DQogICAgICAgICAgICAgICAgICAgIGNtZCA9ICJ1cGRhdGVGaWxlWE1MVFYiOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGRhdGFbImZpbGVzIl0gPSB7fTsNCiAgICAgICAgICAgIGRhdGFbImZpbGVzIl1bZGF0YVR5cGVdID0ge307DQogICAgICAgICAgICBkYXRhWyJmaWxlcyJdW2RhdGFUeXBlXVtpZF0gPSBpbnB1dDsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBjYXNlICJmaWx0ZXIiOg0KICAgICAgICAgICAgY29uZmlybU1zZyA9ICJEZWxldGUgdGhpcyBmaWx0ZXI/IjsNCiAgICAgICAgICAgIGNtZCA9ICJzYXZlRmlsdGVyIjsNCiAgICAgICAgICAgIGRhdGFbImZpbHRlciJdID0ge307DQogICAgICAgICAgICBkYXRhWyJmaWx0ZXIiXVtpZF0gPSBpbnB1dDsNCiAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICBkZWZhdWx0Og0KICAgICAgICAgICAgcmV0dXJuOw0KICAgIH0NCiAgICBpZiAocmVtb3ZlID09IHRydWUpIHsNCiAgICAgICAgaWYgKCFjb25maXJtKGNvbmZpcm1Nc2cpKSB7DQogICAgICAgICAgICBzaG93RWxlbWVudCgicG9wdXAiLCBmYWxzZSk7DQogICAgICAgICAgICByZXR1cm47DQogICAgICAgIH0NCiAgICB9DQogICAgbGV0IHNlcnZlciA9IG5ldyBTZXJ2ZXIoY21kKTsNCiAgICBzZXJ2ZXIucmVxdWVzdChkYXRhKTsNCn0NCmZ1bmN0aW9uIGRvbmVQb3B1cERhdGEoZGF0YVR5cGUsIGlkc1N0cikgew0KICAgIGxldCBpZHMgPSBpZHNTdHIuc3BsaXQoJywnKTsNCiAgICBsZXQgZGl2ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInBvcHVwLWN1c3RvbSIpOw0KICAgIGxldCBpbnB1dHMgPSBkaXYuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSgiY2hhbmdlZCIpOw0KICAgIGlkcy5mb3JFYWNoKGlkID0+IHsNCiAgICAgICAgbGV0IGlucHV0Ow0KICAgICAgICBpbnB1dCA9IFNFUlZFUlsieGVwZyJdWyJlcGdNYXBwaW5nIl1baWRdOw0KICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGlucHV0cy5sZW5ndGg7IGkrKykgew0KICAgICAgICAgICAgbGV0IG5hbWU7DQogICAgICAgICAgICBsZXQgdmFsdWU7DQogICAgICAgICAgICBzd2l0Y2ggKGlucHV0c1tpXS50YWdOYW1lKSB7DQogICAgICAgICAgICAgICAgY2FzZSAiSU5QVVQiOg0KICAgICAgICAgICAgICAgICAgICBzd2l0Y2ggKGlucHV0c1tpXS50eXBlKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBjYXNlICJjaGVja2JveCI6DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZSA9IGlucHV0c1tpXS5uYW1lOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlID0gaW5wdXRzW2ldLmNoZWNrZWQ7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5wdXRbbmFtZV0gPSB2YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgInRleHQiOg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWUgPSBpbnB1dHNbaV0ubmFtZTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IGlucHV0c1tpXS52YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnB1dFtuYW1lXSA9IHZhbHVlOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgIlNFTEVDVCI6DQogICAgICAgICAgICAgICAgICAgIG5hbWUgPSBpbnB1dHNbaV0ubmFtZTsNCiAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSBpbnB1dHNbaV0udmFsdWU7DQogICAgICAgICAgICAgICAgICAgIGlucHV0W25hbWVdID0gdmFsdWU7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgc3dpdGNoIChuYW1lKSB7DQogICAgICAgICAgICAgICAgY2FzZSAidHZnLWxvZ28iOg0KICAgICAgICAgICAgICAgICAgICAvLyhkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkuY2hpbGROb2Rlc1syXS5maXJzdENoaWxkIGFzIEhUTUxFbGVtZW50KS5zZXRBdHRyaWJ1dGUoInNyYyIsIHZhbHVlKQ0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBjYXNlICJ4LW5hbWUiOg0KICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkuY2hpbGROb2Rlc1szXS5maXJzdENoaWxkLmlubmVySFRNTCA9IHZhbHVlOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBjYXNlICJ4LWNhdGVnb3J5IjoNCiAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpLmNoaWxkTm9kZXNbM10uZmlyc3RDaGlsZC5jbGFzc05hbWUgPSB2YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAidXBkYXRlLWNoYW5uZWwtbmFtZS1yZWdleCI6DQogICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5jaGlsZE5vZGVzWzRdLmZpcnN0Q2hpbGQuaW5uZXJIVE1MID0gdmFsdWU7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgIngtZ3JvdXAtdGl0bGUiOg0KICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkuY2hpbGROb2Rlc1s2XS5maXJzdENoaWxkLmlubmVySFRNTCA9IHZhbHVlOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBjYXNlICJ4LXhtbHR2LWZpbGUiOg0KICAgICAgICAgICAgICAgICAgICBpZiAodmFsdWUgIT0gInhUZVZlIER1bW15IiAmJiB2YWx1ZSAhPSAiLSIpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlID0gZ2V0VmFsdWVGcm9tUHJvdmlkZXJGaWxlKHZhbHVlLCAieG1sdHYiLCAibmFtZSIpOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIGlmICh2YWx1ZSA9PSAiLSIpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGlucHV0WyJ4LWFjdGl2ZSJdID0gZmFsc2U7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpLmNoaWxkTm9kZXNbN10uZmlyc3RDaGlsZC5pbm5lckhUTUwgPSB2YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgY2FzZSAieC1tYXBwaW5nIjoNCiAgICAgICAgICAgICAgICAgICAgaWYgKHZhbHVlID09ICItIikgew0KICAgICAgICAgICAgICAgICAgICAgICAgaW5wdXRbIngtYWN0aXZlIl0gPSBmYWxzZTsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkuY2hpbGROb2Rlc1s4XS5maXJzdENoaWxkLmlubmVySFRNTCA9IHZhbHVlOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICBjYXNlICJ4LXRpbWVzaGlmdCI6DQogICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5jaGlsZE5vZGVzWzldLmZpcnN0Q2hpbGQuaW5uZXJIVE1MID0gdmFsdWU7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICB9DQogICAgICAgICAgICBjcmVhdGVTZWFyY2hPYmooKTsNCiAgICAgICAgICAgIHNlYXJjaEluTWFwcGluZygpOw0KICAgICAgICB9DQogICAgICAgIGlmIChpbnB1dFsieC1hY3RpdmUiXSA9PSBmYWxzZSkgew0KICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpLmNsYXNzTmFtZSA9ICJub3RBY3RpdmVFUEciOw0KICAgICAgICB9DQogICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpLmNsYXNzTmFtZSA9ICJhY3RpdmVFUEciOw0KICAgICAgICB9DQogICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5jaGlsZE5vZGVzWzJdLmZpcnN0Q2hpbGQuc2V0QXR0cmlidXRlKCJzcmMiLCBpbnB1dFsidHZnLWxvZ28iXSk7DQogICAgfSk7DQogICAgc2hvd0VsZW1lbnQoInBvcHVwIiwgZmFsc2UpOw0KICAgIHJldHVybjsNCn0NCmZ1bmN0aW9uIHNob3dQcmV2aWV3KGVsZW1lbnQpIHsNCiAgICBsZXQgZGl2ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm15U3RyZWFtc0JveCIpOw0KICAgIHN3aXRjaCAoZWxlbWVudCkgew0KICAgICAgICBjYXNlIGZhbHNlOg0KICAgICAgICAgICAgZGl2LmNsYXNzTmFtZSA9ICJub3RWaXNpYmxlIjsNCiAgICAgICAgICAgIHJldHVybjsNCiAgICB9DQogICAgbGV0IHN0cmVhbXMgPSBbImFjdGl2ZVN0cmVhbXMiLCAiaW5hY3RpdmVTdHJlYW1zIl07DQogICAgc3RyZWFtcy5mb3JFYWNoKHByZXZpZXcgPT4gew0KICAgICAgICBsZXQgdGFibGUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChwcmV2aWV3KTsNCiAgICAgICAgdGFibGUuaW5uZXJIVE1MID0gIiI7DQogICAgICAgIGxldCBvYmogPSBTRVJWRVJbImRhdGEiXVsiU3RyZWFtUHJldmlld1VJIl1bcHJldmlld107DQogICAgICAgIG9iai5mb3JFYWNoKGNoYW5uZWwgPT4gew0KICAgICAgICAgICAgbGV0IHRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVFIiKTsNCiAgICAgICAgICAgIGxldCB0ZEtleSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICBsZXQgdGRWYWwgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgdGRLZXkuY2xhc3NOYW1lID0gInRkS2V5IjsNCiAgICAgICAgICAgIHRkVmFsLmNsYXNzTmFtZSA9ICJ0ZFZhbCI7DQogICAgICAgICAgICBzd2l0Y2ggKHByZXZpZXcpIHsNCiAgICAgICAgICAgICAgICBjYXNlICJhY3RpdmVTdHJlYW1zIjoNCiAgICAgICAgICAgICAgICAgICAgdGRLZXkuaW5uZXJUZXh0ID0gIkNoYW5uZWw6ICgrKSI7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgImluYWN0aXZlU3RyZWFtcyI6DQogICAgICAgICAgICAgICAgICAgIHRkS2V5LmlubmVyVGV4dCA9ICJDaGFubmVsOiAoLSkiOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIHRkVmFsLmlubmVyVGV4dCA9IGNoYW5uZWw7DQogICAgICAgICAgICB0ci5hcHBlbmRDaGlsZCh0ZEtleSk7DQogICAgICAgICAgICB0ci5hcHBlbmRDaGlsZCh0ZFZhbCk7DQogICAgICAgICAgICB0YWJsZS5hcHBlbmRDaGlsZCh0cik7DQogICAgICAgIH0pOw0KICAgIH0pOw0KICAgIHNob3dFbGVtZW50KCJsb2FkaW5nIiwgZmFsc2UpOw0KICAgIGRpdi5jbGFzc05hbWUgPSAidmlzaWJsZSI7DQogICAgcmV0dXJuOw0KfQ0K" - webUI["html/js/network_ts.js"] = "Y2xhc3MgU2VydmVyIHsNCiAgICBjb25zdHJ1Y3RvcihjbWQpIHsNCiAgICAgICAgdGhpcy5jbWQgPSBjbWQ7DQogICAgfQ0KICAgIHJlcXVlc3QoZGF0YSkgew0KICAgICAgICBpZiAoU0VSVkVSX0NPTk5FQ1RJT04gPT0gdHJ1ZSkgew0KICAgICAgICAgICAgcmV0dXJuOw0KICAgICAgICB9DQogICAgICAgIFNFUlZFUl9DT05ORUNUSU9OID0gdHJ1ZTsNCiAgICAgICAgaWYgKHRoaXMuY21kICE9ICJ1cGRhdGVMb2ciKSB7DQogICAgICAgICAgICBzaG93RWxlbWVudCgibG9hZGluZyIsIHRydWUpOw0KICAgICAgICAgICAgVU5ETyA9IG5ldyBPYmplY3QoKTsNCiAgICAgICAgfQ0KICAgICAgICBzd2l0Y2ggKHdpbmRvdy5sb2NhdGlvbi5wcm90b2NvbCkgew0KICAgICAgICAgICAgY2FzZSAiaHR0cDoiOg0KICAgICAgICAgICAgICAgIHRoaXMucHJvdG9jb2wgPSAid3M6Ly8iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiaHR0cHM6IjoNCiAgICAgICAgICAgICAgICB0aGlzLnByb3RvY29sID0gIndzczovLyI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgIH0NCiAgICAgICAgdmFyIHVybCA9IHRoaXMucHJvdG9jb2wgKyB3aW5kb3cubG9jYXRpb24uaG9zdG5hbWUgKyAiOiIgKyB3aW5kb3cubG9jYXRpb24ucG9ydCArICIvZGF0YS8iICsgIj9Ub2tlbj0iICsgZ2V0Q29va2llKCJUb2tlbiIpOw0KICAgICAgICBkYXRhWyJjbWQiXSA9IHRoaXMuY21kOw0KICAgICAgICB2YXIgd3MgPSBuZXcgV2ViU29ja2V0KHVybCk7DQogICAgICAgIHdzLm9ub3BlbiA9IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgICAgIFdTX0FWQUlMQUJMRSA9IHRydWU7DQogICAgICAgICAgICB0aGlzLnNlbmQoSlNPTi5zdHJpbmdpZnkoZGF0YSkpOw0KICAgICAgICB9Ow0KICAgICAgICB3cy5vbmVycm9yID0gZnVuY3Rpb24gKHdzRXJyRXZ0KSB7DQogICAgICAgICAgICBjb25zb2xlLmxvZygiTm8gd2Vic29ja2V0IGNvbm5lY3Rpb24gdG8geFRlVmUgY291bGQgYmUgZXN0YWJsaXNoZWQuIENoZWNrIHlvdXIgbmV0d29yayBjb25maWd1cmF0aW9uLiIpOw0KICAgICAgICAgICAgU0VSVkVSX0NPTk5FQ1RJT04gPSBmYWxzZTsNCiAgICAgICAgICAgIGlmIChXU19BVkFJTEFCTEUgPT0gZmFsc2UpIHsNCiAgICAgICAgICAgICAgICBhbGVydCgiTm8gd2Vic29ja2V0IGNvbm5lY3Rpb24gdG8geFRlVmUgY291bGQgYmUgZXN0YWJsaXNoZWQuIENoZWNrIHlvdXIgbmV0d29yayBjb25maWd1cmF0aW9uLiIpOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9Ow0KICAgICAgICB3cy5vbm1lc3NhZ2UgPSBmdW5jdGlvbiAod3NNZXNzYWdlRXZ0KSB7DQogICAgICAgICAgICBTRVJWRVJfQ09OTkVDVElPTiA9IGZhbHNlOw0KICAgICAgICAgICAgc2hvd0VsZW1lbnQoImxvYWRpbmciLCBmYWxzZSk7DQogICAgICAgICAgICBjb25zdCByZXNwb25zZSA9IEpTT04ucGFyc2Uod3NNZXNzYWdlRXZ0LmRhdGEpOw0KICAgICAgICAgICAgaWYgKHJlc3BvbnNlLmhhc093blByb3BlcnR5KCJ0b2tlbiIpKSB7DQogICAgICAgICAgICAgICAgZG9jdW1lbnQuY29va2llID0gIlRva2VuPSIgKyByZXNwb25zZVsidG9rZW4iXTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGlmIChyZXNwb25zZVsic3RhdHVzIl0gPT0gZmFsc2UpIHsNCiAgICAgICAgICAgICAgICBhbGVydChyZXNwb25zZVsiZXJyIl0pOw0KICAgICAgICAgICAgICAgIHJldHVybjsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGlmIChyZXNwb25zZS5oYXNPd25Qcm9wZXJ0eSgnb3BlbkxpbmsnKSkgew0KICAgICAgICAgICAgICAgIHdpbmRvdy5sb2NhdGlvbiA9IHJlc3BvbnNlWydvcGVuTGluayddOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgaWYgKHJlc3BvbnNlLmhhc093blByb3BlcnR5KCJyZWxvYWQiKSkgew0KICAgICAgICAgICAgICAgIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGlmIChyZXNwb25zZS5oYXNPd25Qcm9wZXJ0eSgiYWxlcnQiKSkgew0KICAgICAgICAgICAgICAgIGFsZXJ0KHJlc3BvbnNlWyJhbGVydCJdKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGlmIChyZXNwb25zZS5oYXNPd25Qcm9wZXJ0eSgibG9nb1VSTCIpKSB7DQogICAgICAgICAgICAgICAgdmFyIGRpdiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjaGFubmVsLWljb24iKTsNCiAgICAgICAgICAgICAgICBkaXYudmFsdWUgPSByZXNwb25zZVsibG9nb1VSTCJdOw0KICAgICAgICAgICAgICAgIGRpdi5jbGFzc05hbWUgPSAiY2hhbmdlZCI7DQogICAgICAgICAgICAgICAgcmV0dXJuOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgc3dpdGNoIChkYXRhWyJjbWQiXSkgew0KICAgICAgICAgICAgICAgIGNhc2UgInVwZGF0ZUxvZyI6DQogICAgICAgICAgICAgICAgICAgIFNFUlZFUlsibG9nIl0gPSByZXNwb25zZVsibG9nIl07DQogICAgICAgICAgICAgICAgICAgIGlmIChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29udGVudF9sb2ciKSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgc2hvd0xvZ3MoZmFsc2UpOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIHJldHVybjsNCiAgICAgICAgICAgICAgICBkZWZhdWx0Og0KICAgICAgICAgICAgICAgICAgICBTRVJWRVIgPSBuZXcgT2JqZWN0KCk7DQogICAgICAgICAgICAgICAgICAgIFNFUlZFUiA9IHJlc3BvbnNlOw0KICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGlmIChyZXNwb25zZS5oYXNPd25Qcm9wZXJ0eSgib3Blbk1lbnUiKSkgew0KICAgICAgICAgICAgICAgIHZhciBtZW51ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQocmVzcG9uc2VbIm9wZW5NZW51Il0pOw0KICAgICAgICAgICAgICAgIG1lbnUuY2xpY2soKTsNCiAgICAgICAgICAgICAgICBzaG93RWxlbWVudCgicG9wdXAiLCBmYWxzZSk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBpZiAocmVzcG9uc2UuaGFzT3duUHJvcGVydHkoInJlbG9hZCIpKSB7DQogICAgICAgICAgICAgICAgbG9jYXRpb24ucmVsb2FkKCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBpZiAocmVzcG9uc2UuaGFzT3duUHJvcGVydHkoIndpemFyZCIpKSB7DQogICAgICAgICAgICAgICAgY3JlYXRlTGF5b3V0KCk7DQogICAgICAgICAgICAgICAgY29uZmlndXJhdGlvbldpemFyZFtyZXNwb25zZVsid2l6YXJkIl1dLmNyZWF0ZVdpemFyZCgpOw0KICAgICAgICAgICAgICAgIHJldHVybjsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGNyZWF0ZUxheW91dCgpOw0KICAgICAgICB9Ow0KICAgIH0NCn0NCmZ1bmN0aW9uIGdldENvb2tpZShuYW1lKSB7DQogICAgdmFyIHZhbHVlID0gIjsgIiArIGRvY3VtZW50LmNvb2tpZTsNCiAgICB2YXIgcGFydHMgPSB2YWx1ZS5zcGxpdCgiOyAiICsgbmFtZSArICI9Iik7DQogICAgaWYgKHBhcnRzLmxlbmd0aCA9PSAyKSB7DQogICAgICAgIHJldHVybiBwYXJ0cy5wb3AoKS5zcGxpdCgiOyIpLnNoaWZ0KCk7DQogICAgfQ0KfQ0K" - webUI["html/js/settings_ts.js"] = "Y2xhc3MgU2V0dGluZ3NDYXRlZ29yeSB7DQogICAgY29uc3RydWN0b3IoKSB7DQogICAgICAgIHRoaXMuRG9jdW1lbnRJRCA9ICJjb250ZW50X3NldHRpbmdzIjsNCiAgICB9DQogICAgY3JlYXRlQ2F0ZWdvcnlIZWFkbGluZSh2YWx1ZSkgew0KICAgICAgICB2YXIgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIkg0Iik7DQogICAgICAgIGVsZW1lbnQuaW5uZXJIVE1MID0gdmFsdWU7DQogICAgICAgIHJldHVybiBlbGVtZW50Ow0KICAgIH0NCiAgICBjcmVhdGVIUigpIHsNCiAgICAgICAgdmFyIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJIUiIpOw0KICAgICAgICByZXR1cm4gZWxlbWVudDsNCiAgICB9DQogICAgY3JlYXRlU2V0dGluZ3Moc2V0dGluZ3NLZXkpIHsNCiAgICAgICAgdmFyIHNldHRpbmcgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJUUiIpOw0KICAgICAgICB2YXIgY29udGVudCA9IG5ldyBQb3B1cENvbnRlbnQoKTsNCiAgICAgICAgdmFyIGRhdGEgPSBTRVJWRVJbInNldHRpbmdzIl1bc2V0dGluZ3NLZXldOw0KICAgICAgICBzd2l0Y2ggKHNldHRpbmdzS2V5KSB7DQogICAgICAgICAgICAvLyBUZXh0IGlucHV0cw0KICAgICAgICAgICAgY2FzZSAidXBkYXRlIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLnVwZGF0ZS50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsICJ1cGRhdGUiLCBkYXRhLnRvU3RyaW5nKCkpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3suc2V0dGluZ3MudXBkYXRlLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJiYWNrdXAucGF0aCI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5iYWNrdXBQYXRoLnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgImJhY2t1cC5wYXRoIiwgZGF0YSk7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5zZXR0aW5ncy5iYWNrdXBQYXRoLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ0ZW1wLnBhdGgiOg0KICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MudGVtcFBhdGgudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCAidGVtcC5wYXRoIiwgZGF0YSk7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5zZXR0aW5ncy50bXBQYXRoLnBsYWNlaG9sZGVyfX0iKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ1c2VyLmFnZW50IjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLnVzZXJBZ2VudC50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsICJ1c2VyLmFnZW50IiwgZGF0YSk7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5zZXR0aW5ncy51c2VyQWdlbnQucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImJ1ZmZlci50aW1lb3V0IjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmJ1ZmZlclRpbWVvdXQudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCAiYnVmZmVyLnRpbWVvdXQiLCBkYXRhKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnNldHRpbmdzLmJ1ZmZlclRpbWVvdXQucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImZmbXBlZy5wYXRoIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmZmbXBlZ1BhdGgudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCAiZmZtcGVnLnBhdGgiLCBkYXRhKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnNldHRpbmdzLmZmbXBlZ1BhdGgucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImZmbXBlZy5vcHRpb25zIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmZmbXBlZ09wdGlvbnMudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCAiZmZtcGVnLm9wdGlvbnMiLCBkYXRhKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnNldHRpbmdzLmZmbXBlZ09wdGlvbnMucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInZsYy5wYXRoIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLnZsY1BhdGgudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCAidmxjLnBhdGgiLCBkYXRhKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnNldHRpbmdzLnZsY1BhdGgucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInZsYy5vcHRpb25zIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLnZsY09wdGlvbnMudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCAidmxjLm9wdGlvbnMiLCBkYXRhKTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnNldHRpbmdzLnZsY09wdGlvbnMucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIC8vIENoZWNrYm94ZXMNCiAgICAgICAgICAgIGNhc2UgInRsc01vZGUiOg0KICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MudGxzTW9kZS50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChzZXR0aW5nc0tleSk7DQogICAgICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGE7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiZGlzYWxsb3dVUkxEdXBsaWNhdGVzIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmRpc2FsbG93VVJMRHVwbGljYXRlcy50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChzZXR0aW5nc0tleSk7DQogICAgICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGE7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiYXV0aGVudGljYXRpb24ud2ViIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmF1dGhlbnRpY2F0aW9uV0VCLnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KHNldHRpbmdzS2V5KTsNCiAgICAgICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJhdXRoZW50aWNhdGlvbi5wbXMiOg0KICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MuYXV0aGVudGljYXRpb25QTVMudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goc2V0dGluZ3NLZXkpOw0KICAgICAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImF1dGhlbnRpY2F0aW9uLm0zdSI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5hdXRoZW50aWNhdGlvbk0zVS50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChzZXR0aW5nc0tleSk7DQogICAgICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGE7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiYXV0aGVudGljYXRpb24ueG1sIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmF1dGhlbnRpY2F0aW9uWE1MLnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KHNldHRpbmdzS2V5KTsNCiAgICAgICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJhdXRoZW50aWNhdGlvbi5hcGkiOg0KICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MuYXV0aGVudGljYXRpb25BUEkudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goc2V0dGluZ3NLZXkpOw0KICAgICAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImZpbGVzLnVwZGF0ZSI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5maWxlc1VwZGF0ZS50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChzZXR0aW5nc0tleSk7DQogICAgICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGE7DQogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQoaW5wdXQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiY2FjaGUuaW1hZ2VzIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmNhY2hlSW1hZ2VzLnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KHNldHRpbmdzS2V5KTsNCiAgICAgICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ4ZXBnLnJlcGxhY2UubWlzc2luZy5pbWFnZXMiOg0KICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MucmVwbGFjZUVtcHR5SW1hZ2VzLnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KHNldHRpbmdzS2V5KTsNCiAgICAgICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJzdG9yZUJ1ZmZlckluUkFNIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLnN0b3JlQnVmZmVySW5SQU0udGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goc2V0dGluZ3NLZXkpOw0KICAgICAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInh0ZXZlQXV0b1VwZGF0ZSI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy54dGV2ZUF1dG9VcGRhdGUudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goc2V0dGluZ3NLZXkpOw0KICAgICAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImNsZWFyWE1MVFZDYWNoZSI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5jbGVhclhNTFRWQ2FjaGUudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goc2V0dGluZ3NLZXkpOw0KICAgICAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImFwaSI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5hcGkudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goc2V0dGluZ3NLZXkpOw0KICAgICAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImVuYWJsZU1hcHBlZENoYW5uZWxzIjoNCiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmVuYWJsZU1hcHBlZENoYW5uZWxzLnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KHNldHRpbmdzS2V5KTsNCiAgICAgICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YTsNCiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAvLyBTZWxlY3QNCiAgICAgICAgICAgIGNhc2UgImhvc3RJUCI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5ob3N0SVAudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciB0ZXh0ID0gU0VSVkVSWyJpcEFkZHJlc3Nlc1Y0SG9zdCJdOw0KICAgICAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBTRVJWRVJbImlwQWRkcmVzc2VzVjRIb3N0Il07DQogICAgICAgICAgICAgICAgdmFyIHNlbGVjdCA9IGNvbnRlbnQuY3JlYXRlU2VsZWN0KHRleHQsIHZhbHVlcywgZGF0YSwgc2V0dGluZ3NLZXkpOw0KICAgICAgICAgICAgICAgIHNlbGVjdC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChzZWxlY3QpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAidHVuZXIiOg0KICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MudHVuZXIudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciB0ZXh0ID0gbmV3IEFycmF5KCk7DQogICAgICAgICAgICAgICAgdmFyIHZhbHVlcyA9IG5ldyBBcnJheSgpOw0KICAgICAgICAgICAgICAgIGZvciAodmFyIGkgPSAxOyBpIDw9IDEwMDsgaSsrKSB7DQogICAgICAgICAgICAgICAgICAgIHRleHQucHVzaChpKTsNCiAgICAgICAgICAgICAgICAgICAgdmFsdWVzLnB1c2goaSk7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIHZhciBzZWxlY3QgPSBjb250ZW50LmNyZWF0ZVNlbGVjdCh0ZXh0LCB2YWx1ZXMsIGRhdGEsIHNldHRpbmdzS2V5KTsNCiAgICAgICAgICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOw0KICAgICAgICAgICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQoc2VsZWN0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImVwZ1NvdXJjZSI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5lcGdTb3VyY2UudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciB0ZXh0ID0gWyJQTVMiLCAiWEVQRyJdOw0KICAgICAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBbIlBNUyIsICJYRVBHIl07DQogICAgICAgICAgICAgICAgdmFyIHNlbGVjdCA9IGNvbnRlbnQuY3JlYXRlU2VsZWN0KHRleHQsIHZhbHVlcywgZGF0YSwgc2V0dGluZ3NLZXkpOw0KICAgICAgICAgICAgICAgIHNlbGVjdC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7DQogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChzZWxlY3QpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiZGVmYXVsdE1pc3NpbmdFUEciOg0KICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MuZGVmYXVsdE1pc3NpbmdFUEcudGl0bGV9fSIgKyAiOiI7DQogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHZhciB0ZXh0ID0gWw0KICAgICAgICAgICAgICAgICAgICAiLSIsICIzMCBNaW51dGVzICgzMF9NaW51dGVzKSIsICI2MCBNaW51dGVzICg2MF9NaW51dGVzKSIsICI5MCBNaW51dGVzICg5MF9NaW51dGVzKSIsDQogICAgICAgICAgICAgICAgICAgICIxMjAgTWludXRlcyAoMTIwX01pbnV0ZXMpIiwgIjE4MCBNaW51dGVzICgxODBfTWludXRlcykiLCAiMjQwIE1pbnV0ZXMgKDI0MF9NaW51dGVzKSIsICIzNjAgTWludXRlcyAoMzYwX01pbnV0ZXMpIg0KICAgICAgICAgICAgICAgIF07DQogICAgICAgICAgICAgICAgdmFyIHZhbHVlcyA9IFsNCiAgICAgICAgICAgICAgICAgICAgIi0iLCAiMzBfTWludXRlcyIsICI2MF9NaW51dGVzIiwgIjkwX01pbnV0ZXMiLCAiMTIwX01pbnV0ZXMiLCAiMTgwX01pbnV0ZXMiLCAiMjQwX01pbnV0ZXMiLCAiMzYwX01pbnV0ZXMiDQogICAgICAgICAgICAgICAgXTsNCiAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCBkYXRhLCBzZXR0aW5nc0tleSk7DQogICAgICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKHNlbGVjdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJiYWNrdXAua2VlcCI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5iYWNrdXBLZWVwLnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgdGV4dCA9IFsiNSIsICIxMCIsICIyMCIsICIzMCIsICI0MCIsICI1MCJdOw0KICAgICAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBbIjUiLCAiMTAiLCAiMjAiLCAiMzAiLCAiNDAiLCAiNTAiXTsNCiAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCBkYXRhLCBzZXR0aW5nc0tleSk7DQogICAgICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKHNlbGVjdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJidWZmZXIuc2l6ZS5rYiI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5idWZmZXJTaXplLnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgdGV4dCA9IFsiMC41IE1CIiwgIjEgTUIiLCAiMiBNQiIsICIzIE1CIiwgIjQgTUIiLCAiNSBNQiIsICI2IE1CIiwgIjcgTUIiLCAiOCBNQiJdOw0KICAgICAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBbIjUxMiIsICIxMDI0IiwgIjIwNDgiLCAiMzA3MiIsICI0MDk2IiwgIjUxMjAiLCAiNjE0NCIsICI3MTY4IiwgIjgxOTIiXTsNCiAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCBkYXRhLCBzZXR0aW5nc0tleSk7DQogICAgICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKHNlbGVjdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJidWZmZXIiOg0KICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3Muc3RyZWFtQnVmZmVyaW5nLnRpdGxlfX0iICsgIjoiOw0KICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgICAgICAgICB2YXIgdGV4dCA9IFsie3suc2V0dGluZ3Muc3RyZWFtQnVmZmVyaW5nLmluZm9fZmFsc2V9fSIsICJ4VGVWZTogKHt7LnNldHRpbmdzLnN0cmVhbUJ1ZmZlcmluZy5pbmZvX3h0ZXZlfX0pIiwgIkZGbXBlZzogKHt7LnNldHRpbmdzLnN0cmVhbUJ1ZmZlcmluZy5pbmZvX2ZmbXBlZ319KSIsICJWTEM6ICh7ey5zZXR0aW5ncy5zdHJlYW1CdWZmZXJpbmcuaW5mb192bGN9fSkiXTsNCiAgICAgICAgICAgICAgICB2YXIgdmFsdWVzID0gWyItIiwgInh0ZXZlIiwgImZmbXBlZyIsICJ2bGMiXTsNCiAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCBkYXRhLCBzZXR0aW5nc0tleSk7DQogICAgICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKHNlbGVjdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ1ZHB4eSI6DQogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy51ZHB4eS50aXRsZX19IiArICI6IjsNCiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7DQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsICJ1ZHB4eSIsIGRhdGEpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3suc2V0dGluZ3MudWRweHkucGxhY2Vob2xkZXJ9fSIpOw0KICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsNCiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7DQogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgfQ0KICAgICAgICByZXR1cm4gc2V0dGluZzsNCiAgICB9DQogICAgY3JlYXRlRGVzY3JpcHRpb24oc2V0dGluZ3NLZXkpIHsNCiAgICAgICAgdmFyIGRlc2NyaXB0aW9uID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVFIiKTsNCiAgICAgICAgdmFyIHRleHQ7DQogICAgICAgIHN3aXRjaCAoc2V0dGluZ3NLZXkpIHsNCiAgICAgICAgICAgIGNhc2UgInRsc01vZGUiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MudGxzTW9kZS5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImRpc2FsbG93VVJMRHVwbGljYXRlcyI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5kaXNhbGxvd1VSTER1cGxpY2F0ZXMuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJhdXRoZW50aWNhdGlvbi53ZWIiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MuYXV0aGVudGljYXRpb25XRUIuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJhdXRoZW50aWNhdGlvbi5tM3UiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MuYXV0aGVudGljYXRpb25NM1UuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJhdXRoZW50aWNhdGlvbi5wbXMiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MuYXV0aGVudGljYXRpb25QTVMuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJhdXRoZW50aWNhdGlvbi54bWwiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MuYXV0aGVudGljYXRpb25YTUwuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJhdXRoZW50aWNhdGlvbi5hcGkiOg0KICAgICAgICAgICAgICAgIGlmIChTRVJWRVJbInNldHRpbmdzIl1bImF1dGhlbnRpY2F0aW9uLndlYiJdID09IHRydWUpIHsNCiAgICAgICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5hdXRoZW50aWNhdGlvbkFQSS5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ4dGV2ZUF1dG9VcGRhdGUiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MueHRldmVBdXRvVXBkYXRlLmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiYmFja3VwLmtlZXAiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MuYmFja3VwS2VlcC5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImJhY2t1cC5wYXRoIjoNCiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLmJhY2t1cFBhdGguZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ0ZW1wLnBhdGgiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MudGVtcFBhdGguZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJidWZmZXIiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3Muc3RyZWFtQnVmZmVyaW5nLmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiYnVmZmVyLnNpemUua2IiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MuYnVmZmVyU2l6ZS5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInN0b3JlQnVmZmVySW5SQU0iOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3Muc3RvcmVCdWZmZXJJblJBTS5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImJ1ZmZlci50aW1lb3V0IjoNCiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLmJ1ZmZlclRpbWVvdXQuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ1c2VyLmFnZW50IjoNCiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLnVzZXJBZ2VudC5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImZmbXBlZy5wYXRoIjoNCiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLmZmbXBlZ1BhdGguZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJmZm1wZWcub3B0aW9ucyI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5mZm1wZWdPcHRpb25zLmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAidmxjLnBhdGgiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MudmxjUGF0aC5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInZsYy5vcHRpb25zIjoNCiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLnZsY09wdGlvbnMuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJlcGdTb3VyY2UiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MuZXBnU291cmNlLmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiaG9zdElQIjoNCiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLmhvc3RJUC5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInR1bmVyIjoNCiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLnR1bmVyLmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAidXBkYXRlIjoNCiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLnVwZGF0ZS5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImNsZWFyWE1MVFZDYWNoZSI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5jbGVhclhNTFRWQ2FjaGUuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJhcGkiOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MuYXBpLmRlc2NyaXB0aW9ufX0iOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiZGVmYXVsdE1pc3NpbmdFUEciOg0KICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MuZGVmYXVsdE1pc3NpbmdFUEcuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJlbmFibGVNYXBwZWRDaGFubmVscyI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5lbmFibGVNYXBwZWRDaGFubmVscy5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImZpbGVzLnVwZGF0ZSI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5maWxlc1VwZGF0ZS5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImNhY2hlLmltYWdlcyI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5jYWNoZUltYWdlcy5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgInhlcGcucmVwbGFjZS5taXNzaW5nLmltYWdlcyI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5yZXBsYWNlRW1wdHlJbWFnZXMuZGVzY3JpcHRpb259fSI7DQogICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICBjYXNlICJ1ZHB4eSI6DQogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy51ZHB4eS5kZXNjcmlwdGlvbn19IjsNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGRlZmF1bHQ6DQogICAgICAgICAgICAgICAgdGV4dCA9ICIiOw0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICB9DQogICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOw0KICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gIiI7DQogICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsNCiAgICAgICAgdmFyIHByZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlBSRSIpOw0KICAgICAgICBwcmUuaW5uZXJIVE1MID0gdGV4dDsNCiAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChwcmUpOw0KICAgICAgICBkZXNjcmlwdGlvbi5hcHBlbmRDaGlsZCh0ZExlZnQpOw0KICAgICAgICBkZXNjcmlwdGlvbi5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsNCiAgICAgICAgcmV0dXJuIGRlc2NyaXB0aW9uOw0KICAgIH0NCn0NCmNsYXNzIFNldHRpbmdzQ2F0ZWdvcnlJdGVtIGV4dGVuZHMgU2V0dGluZ3NDYXRlZ29yeSB7DQogICAgY29uc3RydWN0b3IoaGVhZGxpbmUsIHNldHRpbmdzS2V5cykgew0KICAgICAgICBzdXBlcigpOw0KICAgICAgICB0aGlzLmhlYWRsaW5lID0gaGVhZGxpbmU7DQogICAgICAgIHRoaXMuc2V0dGluZ3NLZXlzID0gc2V0dGluZ3NLZXlzOw0KICAgIH0NCiAgICBjcmVhdGVDYXRlZ29yeSgpIHsNCiAgICAgICAgdmFyIGhlYWRsaW5lID0gdGhpcy5jcmVhdGVDYXRlZ29yeUhlYWRsaW5lKHRoaXMuaGVhZGxpbmUpOw0KICAgICAgICB2YXIgc2V0dGluZ3NLZXlzID0gdGhpcy5zZXR0aW5nc0tleXM7DQogICAgICAgIHZhciBkb2MgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCh0aGlzLkRvY3VtZW50SUQpOw0KICAgICAgICBkb2MuYXBwZW5kQ2hpbGQoaGVhZGxpbmUpOw0KICAgICAgICAvLyBDcmVhdGUgYSB0YWJsZSBmb3IgdGhlIGNhdGVnb3J5DQogICAgICAgIHZhciB0YWJsZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlRBQkxFIik7DQogICAgICAgIHZhciBrZXlzID0gc2V0dGluZ3NLZXlzLnNwbGl0KCIsIik7DQogICAgICAgIGtleXMuZm9yRWFjaChzZXR0aW5nc0tleSA9PiB7DQogICAgICAgICAgICBzd2l0Y2ggKHNldHRpbmdzS2V5KSB7DQogICAgICAgICAgICAgICAgY2FzZSAiYXV0aGVudGljYXRpb24ucG1zIjoNCiAgICAgICAgICAgICAgICBjYXNlICJhdXRoZW50aWNhdGlvbi5tM3UiOg0KICAgICAgICAgICAgICAgIGNhc2UgImF1dGhlbnRpY2F0aW9uLnhtbCI6DQogICAgICAgICAgICAgICAgY2FzZSAiYXV0aGVudGljYXRpb24uYXBpIjoNCiAgICAgICAgICAgICAgICAgICAgaWYgKFNFUlZFUlsic2V0dGluZ3MiXVsiYXV0aGVudGljYXRpb24ud2ViIl0gPT0gZmFsc2UpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgICAgICAgICAgdmFyIGl0ZW0gPSB0aGlzLmNyZWF0ZVNldHRpbmdzKHNldHRpbmdzS2V5KTsNCiAgICAgICAgICAgICAgICAgICAgdmFyIGRlc2NyaXB0aW9uID0gdGhpcy5jcmVhdGVEZXNjcmlwdGlvbihzZXR0aW5nc0tleSk7DQogICAgICAgICAgICAgICAgICAgIHRhYmxlLmFwcGVuZENoaWxkKGl0ZW0pOw0KICAgICAgICAgICAgICAgICAgICB0YWJsZS5hcHBlbmRDaGlsZChkZXNjcmlwdGlvbik7DQogICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9KTsNCiAgICAgICAgZG9jLmFwcGVuZENoaWxkKHRhYmxlKTsNCiAgICAgICAgZG9jLmFwcGVuZENoaWxkKHRoaXMuY3JlYXRlSFIoKSk7DQogICAgfQ0KfQ0KZnVuY3Rpb24gc2hvd1NldHRpbmdzKCkgew0KICAgIGZvciAobGV0IGkgPSAwOyBpIDwgc2V0dGluZ3NDYXRlZ29yeS5sZW5ndGg7IGkrKykgew0KICAgICAgICBzZXR0aW5nc0NhdGVnb3J5W2ldLmNyZWF0ZUNhdGVnb3J5KCk7DQogICAgfQ0KfQ0KZnVuY3Rpb24gc2F2ZVNldHRpbmdzKCkgew0KICAgIHZhciBjbWQgPSAic2F2ZVNldHRpbmdzIjsNCiAgICB2YXIgZGl2ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnRlbnRfc2V0dGluZ3MiKTsNCiAgICB2YXIgc2V0dGluZ3MgPSBkaXYuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSgiY2hhbmdlZCIpOw0KICAgIHZhciBuZXdTZXR0aW5ncyA9IG5ldyBPYmplY3QoKTsNCiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHNldHRpbmdzLmxlbmd0aDsgaSsrKSB7DQogICAgICAgIHZhciBuYW1lOw0KICAgICAgICB2YXIgdmFsdWU7DQogICAgICAgIHN3aXRjaCAoc2V0dGluZ3NbaV0udGFnTmFtZSkgew0KICAgICAgICAgICAgY2FzZSAiSU5QVVQiOg0KICAgICAgICAgICAgICAgIHN3aXRjaCAoc2V0dGluZ3NbaV0udHlwZSkgew0KICAgICAgICAgICAgICAgICAgICBjYXNlICJjaGVja2JveCI6DQogICAgICAgICAgICAgICAgICAgICAgICBuYW1lID0gc2V0dGluZ3NbaV0ubmFtZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlID0gc2V0dGluZ3NbaV0uY2hlY2tlZDsNCiAgICAgICAgICAgICAgICAgICAgICAgIG5ld1NldHRpbmdzW25hbWVdID0gdmFsdWU7DQogICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICAgICAgICAgY2FzZSAidGV4dCI6DQogICAgICAgICAgICAgICAgICAgICAgICBuYW1lID0gc2V0dGluZ3NbaV0ubmFtZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlID0gc2V0dGluZ3NbaV0udmFsdWU7DQogICAgICAgICAgICAgICAgICAgICAgICBzd2l0Y2ggKG5hbWUpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYXNlICJ1cGRhdGUiOg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IHZhbHVlLnNwbGl0KCIsIik7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlID0gdmFsdWUuZmlsdGVyKGZ1bmN0aW9uIChlKSB7IHJldHVybiBlOyB9KTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAiYnVmZmVyLnRpbWVvdXQiOg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IHBhcnNlRmxvYXQodmFsdWUpOw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgbmV3U2V0dGluZ3NbbmFtZV0gPSB2YWx1ZTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgIlNFTEVDVCI6DQogICAgICAgICAgICAgICAgbmFtZSA9IHNldHRpbmdzW2ldLm5hbWU7DQogICAgICAgICAgICAgICAgdmFsdWUgPSBzZXR0aW5nc1tpXS52YWx1ZTsNCiAgICAgICAgICAgICAgICAvLyBJZiB0aGUgdmFsdWUgaXMgYSBudW1iZXIsIHN0b3JlIGl0IGFzIGEgbnVtYmVyDQogICAgICAgICAgICAgICAgaWYgKGlzTmFOKHZhbHVlKSkgew0KICAgICAgICAgICAgICAgICAgICBuZXdTZXR0aW5nc1tuYW1lXSA9IHZhbHVlOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICAgICAgbmV3U2V0dGluZ3NbbmFtZV0gPSBwYXJzZUludCh2YWx1ZSk7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICB9DQogICAgfQ0KICAgIHZhciBkYXRhID0gbmV3IE9iamVjdCgpOw0KICAgIGRhdGFbInNldHRpbmdzIl0gPSBuZXdTZXR0aW5nczsNCiAgICB2YXIgc2VydmVyID0gbmV3IFNlcnZlcihjbWQpOw0KICAgIHNlcnZlci5yZXF1ZXN0KGRhdGEpOw0KfQ0K" - webUI["html/lang/en.json"] = "ew0KICAibWFpbk1lbnUiOg0KICB7DQogICAgIml0ZW0iOg0KICAgIHsNCiAgICAgICJwbGF5bGlzdCI6ICJQbGF5bGlzdCIsDQogICAgICAicG1zSUQiOiAiUE1TIElEIiwNCiAgICAgICJmaWx0ZXIiOiAiRmlsdGVyIiwNCiAgICAgICJ4bWx0diI6ICJYTUxUViIsDQogICAgICAibWFwcGluZyI6ICJNYXBwaW5nIiwNCiAgICAgICJ1c2VycyI6ICJVc2VycyIsDQogICAgICAic2V0dGluZ3MiOiAiU2V0dGluZ3MiLA0KICAgICAgImxvZyI6ICJMb2ciLA0KICAgICAgImxvZ291dCI6ICJMb2dvdXQiDQogICAgfSwNCiAgICAiaGVhZGxpbmUiOg0KICAgIHsNCiAgICAgICJwbGF5bGlzdCI6ICJMb2NhbCBvciByZW1vdGUgcGxheWxpc3RzIiwNCiAgICAgICJmaWx0ZXIiOiAiRmlsdGVyIHBsYXlsaXN0IiwNCiAgICAgICJ4bWx0diI6ICJMb2NhbCBvciByZW1vdGUgWE1MVFYgZmlsZXMiLA0KICAgICAgIm1hcHBpbmciOiAiTWFwIHBsYXlsaXN0IGNoYW5uZWxzIHRvIEVQRyBjaGFubmVscyIsDQogICAgICAidXNlcnMiOiAiVXNlciBtYW5hZ2VtZW50IiwNCiAgICAgICJzZXR0aW5ncyI6ICJTZXR0aW5ncyIsDQogICAgICAibG9nIjogIkxvZyIsDQogICAgICAibG9nb3V0IjogIkxvZ291dCINCiAgICB9DQogIH0sDQogICJjb25maXJtIjoNCiAgew0KICAgICJyZXN0b3JlIjogIkFsbCBkYXRhIHdpbGwgYmUgcmVwbGFjZWQgd2l0aCB0aG9zZSBmcm9tIHRoZSBiYWNrdXAuIFNob3VsZCB0aGUgZmlsZXMgYmUgcmVzdG9yZWQ/Ig0KICB9LA0KICAiYWxlcnQiOg0KICB7DQogICAgImZpbGVMb2FkaW5nRXJyb3IiOiAiRmlsZSBjb3VsZG4ndCBiZSBsb2FkZWQiLA0KICAgICJpbnZhbGlkQ2hhbm5lbE51bWJlciI6ICJJbnZhbGlkIGNoYW5uZWwgbnVtYmVyIiwNCiAgICAibWlzc2luZ0lucHV0IjogIk1pc3NpbmcgaW5wdXQiDQogIH0sDQogICJidXR0b24iOg0KICB7DQogICAgImJhY2siOiAiQmFjayIsDQogICAgImJhY2t1cCI6ICJCYWNrdXAiLA0KICAgICJidWxrRWRpdCI6ICJCdWxrIEVkaXQiLA0KICAgICJjYW5jZWwiOiAiQ2FuY2VsIiwNCiAgICAiZGVsZXRlIjogIkRlbGV0ZSIsDQogICAgImRvbmUiOiAiRG9uZSIsDQogICAgImxvZ2luIjogIkxvZ2luIiwNCiAgICAibmV3IjogIk5ldyIsDQogICAgIm5leHQiOiAiTmV4dCIsDQogICAgInJlc3RvcmUiOiAiUmVzdG9yZSIsDQogICAgInNhdmUiOiAiU2F2ZSIsDQogICAgInNlYXJjaCI6ICJTZWFyY2giLA0KICAgICJ1cGRhdGUiOiAiVXBkYXRlIiwNCiAgICAiY3JhZXRlQWNjb3VudCI6ICJDcmVhdGUgQWNjb3VudCIsDQogICAgInJlc2V0TG9ncyI6ICJSZXNldCBMb2dzIiwNCiAgICAidXBsb2FkTG9nbyI6ICJVcGxvYWQgTG9nbyINCiAgfSwNCiAgImZpbHRlciI6DQogIHsNCiAgICAidGFibGUiOg0KICAgIHsNCiAgICAgICJzdGFydGluZ0NoYW5uZWwiOiAiU3RhcnRpbmcgQ2guIE5vLiIsDQogICAgICAibmFtZSI6ICJGaWx0ZXIgTmFtZSIsDQogICAgICAidHlwZSI6ICJGaWx0ZXIgVHlwZSIsDQogICAgICAiZmlsdGVyIjogIkZpbHRlciINCiAgICB9LA0KICAgICJjdXN0b20iOiAiQ3VzdG9tIiwNCiAgICAiZ3JvdXAiOiAiTTNVIEdyb3VwIiwNCiAgICAibmFtZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIkZpbHRlciBOYW1lIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJGaWx0ZXIgbmFtZSIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgImRlc2NyaXB0aW9uIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiRGVzY3JpcHRpb24iLA0KICAgICAgInBsYWNlaG9sZGVyIjogIkRlc2NyaXB0aW9uIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAidHlwZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIlR5cGUiLA0KICAgICAgImdyb3VwVGl0bGUiOiAiR3JvdXAgVGl0bGUiLA0KICAgICAgImN1c3RvbUZpbHRlciI6ICJDdXN0b20gRmlsdGVyIg0KICAgIH0sDQogICAgImNhc2VTZW5zaXRpdmUiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJDYXNlIFNlbnNpdGl2ZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAiZmlsdGVyUnVsZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIkZpbHRlciBSdWxlIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJTcG9ydCB7SER9ICF7RVMsSVR9IiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAiZmlsdGVyR3JvdXAiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJHcm91cCBUaXRsZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJTZWxlY3QgYSBNM1UgZ3JvdXAuIChDb3VudGVyKTxicj5DaGFuZ2luZyB0aGUgZ3JvdXAgdGl0bGUgaW4gdGhlIE0zVSBpbnZhbGlkYXRlcyB0aGUgZmlsdGVyLiINCiAgICB9LA0KICAgICJpbmNsdWRlIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiSW5jbHVkZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiRkhELFVIRCIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiQ2hhbm5lbCBuYW1lIG11c3QgaW5jbHVkZS48YnI+KENvbW1hIHNlcGFyYXRlZCkgQ29tbWEgbWVhbnMgb3IiDQogICAgfSwNCiAgICAiZXhjbHVkZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIkV4Y2x1ZGUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIkVTLElUIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJDaGFubmVsIG5hbWUgbXVzdCBub3QgY29udGFpbi48YnI+KENvbW1hIHNlcGFyYXRlZCkgQ29tbWEgbWVhbnMgb3IiDQogICAgfSwNCiAgICAicHJlc2VydmVNYXBwaW5nIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiUHJlc2VydmUgRXhpc3RpbmcgTTNVPGJyPkNoYW5uZWwgTnVtYmVycyIsDQogICAgICAicGFsY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJQcmVzZXJ2ZSBleGlzdGluZyBNM1UgcGxheWxpc3QgY2hhbm5lbCBudW1iZXJzPyINCiAgICB9LA0KICAgICJzdGFydGluZ0NoYW5uZWwiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJTdGFydGluZyBDaGFubmVsIE51bWJlciIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfQ0KICB9LA0KICAicGxheWxpc3QiOg0KICB7DQogICAgInRhYmxlIjoNCiAgICB7DQogICAgICAicGxheWxpc3QiOiAiUGxheWxpc3QiLA0KICAgICAgInR1bmVyIjogIlR1bmVyIiwNCiAgICAgICJsYXN0VXBkYXRlIjogIkxhc3QgVXBkYXRlIiwNCiAgICAgICJhdmFpbGFiaWxpdHkiOiAiQXZhaWxhYmlsaXR5IiwNCiAgICAgICJ0eXBlIjogIlR5cGUiLA0KICAgICAgInN0cmVhbXMiOiAiU3RyZWFtcyIsDQogICAgICAiZ3JvdXBUaXRsZSI6ICJncm91cC10aXRsZSIsDQogICAgICAidHZnSUQiOiAidHZnLWlkIiwNCiAgICAgICJ1bmlxdWVJRCI6ICJVbmlxdWUgSUQiDQogICAgfSwNCiAgICAicGxheWxpc3RUeXBlIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiUGxheWxpc3QgdHlwZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAidHlwZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIlR5cGUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgIm5hbWUiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJOYW1lIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJQbGF5bGlzdCBuYW1lIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAiZGVzY3JpcHRpb24iOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJEZXNjcmlwdGlvbiIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiRGVzY3JpcHRpb24iLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJmaWxlTTNVIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiTTNVIEZpbGUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIkZpbGUgcGF0aCBvciBVUkwgb2YgdGhlIE0zVSIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgImZpbGVIREhSIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiSERIb21lUnVuIElQIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJJUCBhZGRyZXNzIGFuZCBwb3J0ICgxOTIuMTY4LjEuMTA6NTAwNCkiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJ0dW5lciI6DQogICAgew0KICAgICAgInRpdGxlIjogIlR1bmVyIC8gU3RyZWFtcyIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJOdW1iZXIgb2YgcGFyYWxsZWwgY29ubmVjdGlvbnMgdGhhdCBjYW4gYmUgZXN0YWJsaXNoZWQgdG8gdGhlIHByb3ZpZGVyLiA8YnI+T25seSBhdmFpbGFibGUgd2l0aCBhY3RpdmF0ZWQgYnVmZmVyLjxicj5OZXcgc2V0dGluZ3Mgd2lsbCBvbmx5IGJlIGFwcGxpZWQgYWZ0ZXIgcXVpdHRpbmcgYWxsIHN0cmVhbXMuIg0KICAgIH0NCiAgfSwNCiAgInhtbHR2IjoNCiAgew0KICAgICJ0YWJsZSI6DQogICAgew0KICAgICAgImd1aWRlIjogIkd1aWRlIiwNCiAgICAgICJsYXN0VXBkYXRlIjogIkxhc3QgVXBkYXRlIiwNCiAgICAgICJhdmFpbGFiaWxpdHkiOiAiQXZhaWxhYmlsaXR5IiwNCiAgICAgICJjaGFubmVscyI6ICJDaGFubmVscyIsDQogICAgICAicHJvZ3JhbXMiOiAiUHJvZ3JhbXMiDQogICAgfSwNCiAgICAibmFtZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIk5hbWUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIkd1aWRlIG5hbWUiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJkZXNjcmlwdGlvbiI6DQogICAgew0KICAgICAgInRpdGxlIjogIkRlc2NyaXB0aW9uIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJEZXNjcmlwdGlvbiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgImZpbGVYTUxUViI6DQogICAgew0KICAgICAgInRpdGxlIjogIlhNTFRWIEZpbGUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIkZpbGUgcGF0aCBvciBVUkwgb2YgdGhlIFhNTFRWIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfQ0KICB9LA0KICAibWFwcGluZyI6DQogIHsNCiAgICAidGFibGUiOg0KICAgIHsNCiAgICAgICJjaE5vIjogIkNoLiBOby4iLA0KICAgICAgImxvZ28iOiAiTG9nbyIsDQogICAgICAiY2hhbm5lbE5hbWUiOiAiQ2hhbm5lbCBOYW1lIiwNCiAgICAgICJ1cGRhdGVDaGFubmVsTmFtZVJlZ2V4IjogIlVwZC4gUnguIiwNCiAgICAgICJwbGF5bGlzdCI6ICJQbGF5bGlzdCIsDQogICAgICAiZ3JvdXBUaXRsZSI6ICJHcm91cCBUaXRsZSIsDQogICAgICAieG1sdHZGaWxlIjogIlhNTFRWIEZpbGUiLA0KICAgICAgInhtbHR2SUQiOiAiWE1MVFYgSUQiLA0KICAgICAgInRpbWVzaGlmdCI6ICJUaW1lc2hpZnQiDQogICAgfSwNCiAgICAiYWN0aXZlIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiQWN0aXZlIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJjaGFubmVsTmFtZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIkNoYW5uZWwgTmFtZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAiZGVzY3JpcHRpb24iOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJDaGFubmVsIERlc2NyaXB0aW9uIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJVc2VkIGJ5IHRoZSBEdW1teSBhcyBhbiBYTUwgZGVzY3JpcHRpb24iLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJ1cGRhdGVDaGFubmVsTmFtZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIlVwZGF0ZSBDaGFubmVsIE5hbWUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgInVwZGF0ZUNoYW5uZWxOYW1lUmVnZXgiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJDaGFubmVsIG5hbWUgdXBkYXRlIHJlZ2V4IiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJGb3IgZXhhbXBsZSBeUFBWWyBcXFxcLV9dPzEuKiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiT24gdXBkYXRlLCBpZiBhbnkgbmV3IGNoYW5uZWwgbmFtZSBtYXRjaGVzIHRoaXMgcmVnZXgsIHJlbmFtZSBjdXJyZW50IGNoYW5uZWwgdG8gdGhlIGZpcnN0IG1hdGNoaW5nIG5hbWUiDQogICAgfSwNCiAgICAidXBkYXRlQ2hhbm5lbE5hbWVCeUdyb3VwUmVnZXgiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJPbmx5IGJ5IGdyb3VwIHJlZ2V4IiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIlJlbmFtZSB0aGlzIGNoYW5uZWwgb25seSBpZiBjdXJyZW50IHVzZXItZGVmaW5lZCBncm91cCBtYXRjaGVzIHRoaXMgcmVnZXgiDQogICAgfSwNCiAgICAidXBkYXRlQ2hhbm5lbEdyb3VwIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiVXBkYXRlIENoYW5uZWwgR3JvdXAiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiSWYgY2hlY2tlZCwgdXNlIGdyb3VwIGZyb20gdGhlIGRhdGFiYXNlIg0KICAgIH0sDQogICAgImNoYW5uZWxMb2dvIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiTG9nbyBVUkwiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgInVwZGF0ZUNoYW5uZWxMb2dvIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiVXBkYXRlIENoYW5uZWwgTG9nbyIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAiZXBnQ2F0ZWdvcnkiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJFUEcgQ2F0ZWdvcnkiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgIm0zdUdyb3VwVGl0bGUiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJHcm91cCBUaXRsZSAoeHRldmUubTN1KSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAieG1sdHZGaWxlIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiWE1MVFYgRmlsZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAieG1sdHZDaGFubmVsIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiWE1MVFYgQ2hhbm5lbCIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAidGltZXNoaWZ0IjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiVGltZXNoaWZ0IiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIwIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfQ0KICB9LA0KICAidXNlcnMiOg0KICB7DQogICAgInRhYmxlIjoNCiAgICB7DQogICAgICAidXNlcm5hbWUiOiAiVXNlcm5hbWUiLA0KICAgICAgInBhc3N3b3JkIjogIlBhc3N3b3JkIiwNCiAgICAgICJ3ZWIiOiAiV0VCIiwNCiAgICAgICJwbXMiOiAiUE1TIiwNCiAgICAgICJtM3UiOiAiTTNVIiwNCiAgICAgICJ4bWwiOiAiWE1MIiwNCiAgICAgICJhcGkiOiAiQVBJIg0KICAgIH0sDQogICAgInVzZXJuYW1lIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiVXNlcm5hbWUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIlVzZXJuYW1lIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiDQogICAgfSwNCiAgICAicGFzc3dvcmQiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJQYXNzd29yZCIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiUGFzc3dvcmQiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIiINCiAgICB9LA0KICAgICJjb25maXJtIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiQ29uZmlybSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiUGFzc3dvcmQgY29uZmlybSIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgIndlYiI6DQogICAgew0KICAgICAgInRpdGxlIjogIldlYiBBY2Nlc3MiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgInBtcyI6DQogICAgew0KICAgICAgInRpdGxlIjogIlBNUyBBY2Nlc3MiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgIm0zdSI6DQogICAgew0KICAgICAgInRpdGxlIjogIk0zVSBBY2Nlc3MiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgInhtbCI6DQogICAgew0KICAgICAgInRpdGxlIjogIlhNTCBBY2Nlc3MiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0sDQogICAgImFwaSI6DQogICAgew0KICAgICAgInRpdGxlIjogIkFQSSBBY2Nlc3MiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiIg0KICAgIH0NCiAgfSwNCiAgInNldHRpbmdzIjoNCiAgew0KICAgICJjYXRlZ29yeSI6DQogICAgew0KICAgICAgImdlbmVyYWwiOiAiR2VuZXJhbCIsDQogICAgICAibWFwcGluZyI6ICJNYXBwaW5nIiwNCiAgICAgICJmaWxlcyI6ICJGaWxlcyIsDQogICAgICAic3RyZWFtaW5nIjogIlN0cmVhbWluZyIsDQogICAgICAiYmFja3VwIjogIkJhY2t1cCIsDQogICAgICAiYXV0aGVudGljYXRpb24iOiAiQXV0aGVudGljYXRpb24iDQogICAgfSwNCiAgICAidXBkYXRlIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiU2NoZWR1bGUgZm9yIHVwZGF0aW5nIChQbGF5bGlzdCwgWE1MVFYsIEJhY2t1cCkiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIjAwMDAsMTAwMCwyMDAwIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJUaW1lIGluIDI0IGhvdXIgZm9ybWF0ICgwODAwID0gODowMCBhbSkuIE1vcmUgdGltZXMgY2FuIGJlIGVudGVyZWQgY29tbWEgc2VwYXJhdGVkLiBMZWF2ZSB0aGlzIGZpZWxkIGVtcHR5IGlmIG5vIHVwZGF0ZXMgYXJlIHRvIGJlIGNhcnJpZWQgb3V0LiINCiAgICB9LA0KICAgICJhcGkiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJBUEkgSW50ZXJmYWNlIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJWaWEgQVBJIGludGVyZmFjZSBpdCBpcyBwb3NzaWJsZSB0byBzZW5kIGNvbW1hbmRzIHRvIHhUZVZlLiBBUEkgZG9jdW1lbnRhdGlvbiBpcyA8YSBocmVmPSdodHRwczovL2dpdGh1Yi5jb20veHRldmUtcHJvamVjdC94VGVWZS1Eb2N1bWVudGF0aW9uL2Jsb2IvbWFzdGVyL2VuL2NvbmZpZ3VyYXRpb24ubWQjYXBpJz5oZXJlPC9hPiINCiAgICB9LA0KICAgICJjbGVhclhNTFRWQ2FjaGUiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJDbGVhciBYTUxUViBjYWNoZSIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiSWYgY2hlY2tlZCwgZG8gbm90IGtlZXAgWE1MVFYgY2FjaGUgaW4gbWVtb3J5Ljxicj5TaWduaWZpY2FsbHkgcmVkdWNlcyBSQU0gdXNhZ2UgaW4gaWRsZSBtb2RlLDxicj5idXQgc2lnbmlmaWNhbGx5IHNsb3dpbmcgZG93biBldmVyeSBzdWJzZXF1ZW50IHVwZGF0ZSBpbiBYRVBHIGRhdGFiYXNlLiINCiAgICB9LA0KICAgICJkZWZhdWx0TWlzc2luZ0VQRyI6DQogICAgew0KICAgICAgInRpdGxlIjogIkZpbGwgTWlzc2luZyBFUEcgRGF0YSIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiV2hlbiB0aGVyZSBpcyBubyBtYXRjaGluZyBFUEcgZGF0YSBmb3IgY2hhbm5lbCwgPGJyPmF1dG9maWxsIHdpdGggeFRlVmUgZHVtbXkgRVBHIGRhdGE/Ig0KICAgIH0sDQogICAgImVuYWJsZU1hcHBlZENoYW5uZWxzIjogew0KICAgICAgInRpdGxlIjogIkVuYWJsZSBtYXBwZWQgY2hhbm5lbHMiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIkF1dG9tYXRpY2FsbHkgZW5hYmxlIGNoYW5uZWxzIHdpdGggYXNzaWduZWQgRVBHIGRhdGEiDQogICAgfSwNCiAgICAiZGlzYWxsb3dVUkxEdXBsaWNhdGVzIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiRGlzYWxsb3cgVVJMIGR1cGxpY2F0ZXMiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIklmIGNoZWNrZWQsIGRvIG5vdCBhZGQgYSBuZXcgY2hhbm5lbCBmcm9tIHBsYXlsaXN0IGlmIGNoYW5uZWwgd2l0aCBzdWNoIFVSTCBhbHJlYWR5IGV4aXN0cyINCiAgICB9LA0KICAgICJlcGdTb3VyY2UiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJFUEcgU291cmNlIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJQTVM6PGJyPi0gVXNlIEVQRyBkYXRhIGZyb20gUGxleCBvciBFbWJ5IDxicj48YnI+WEVQRzo8YnI+LSBVc2Ugb2Ygb25lIG9yIG1vcmUgWE1MVFYgZmlsZXM8YnI+LSBDaGFubmVsIG1hbmFnZW1lbnQ8YnI+LSBNM1UgLyBYTUxUViBleHBvcnQgKEhUVFAgbGluayBmb3IgSVBUViBhcHBzKSINCiAgICB9LA0KICAgICJ0dW5lciI6DQogICAgew0KICAgICAgInRpdGxlIjogIk51bWJlciBvZiBUdW5lcnMiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIk51bWJlciBvZiBwYXJhbGxlbCBjb25uZWN0aW9ucyB0aGF0IGNhbiBiZSBlc3RhYmxpc2hlZCB0byB0aGUgcHJvdmlkZXIuPGJyPkF2YWlsYWJsZSBmb3I6IFBsZXgsIEVtYnkgKEhESFIpLCBNM1UgKHdpdGggYWN0aXZlIGJ1ZmZlcikuPGJyPkFmdGVyIGEgY2hhbmdlLCB4VGVWZSBtdXN0IGJlIGRlbGV0ZSBpbiB0aGUgUGxleCAvIEVtYnkgRFZSIHNldHRpbmdzIGFuZCBzZXQgdXAgYWdhaW4uIg0KICAgIH0sDQogICAgImhvc3RJUCI6DQogICAgew0KICAgICAgInRpdGxlIjogIkhvc3QgSVAiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIklQIGFkZHJlc3MgeFRlVmUgd2lsbCB1c2UgdG8gZm9ybSBNM1UgYW5kIFhNTFRWIGZpbGVzIg0KICAgIH0sDQogICAgInRsc01vZGUiOiB7DQogICAgICAidGl0bGUiOiAiVExTIChIVFRQUykgbW9kZSIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiQ2hhbmdlcyB3ZWIgc2VydmVyIHByb3RvY29sIHRvIEhUVFBTLjxicj5Gb3IgZGV0YWlscywgc2VlIDxhPmh0dHBzOi8vZ2l0aHViLmNvbS9TQ1AwMDIveFRlVmUjdGxzLW1vZGU8L2E+Ig0KICAgIH0sDQogICAgImZpbGVzVXBkYXRlIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiVXBkYXRlcyBhbGwgZmlsZXMgYXQgc3RhcnR1cCIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiVXBkYXRlcyBhbGwgcGxheWxpc3RzLCB0dW5lciBhbmQgWE1MVFYgZmlsZXMgYXQgc3RhcnR1cC4iDQogICAgfSwNCiAgICAiY2FjaGVJbWFnZXMiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJJbWFnZSBDYWNoaW5nIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJBbGwgaW1hZ2VzIGZyb20gdGhlIFhNTFRWIGZpbGUgYXJlIGNhY2hlZCwgYWxsb3dpbmcgZmFzdGVyIHJlbmRlcmluZyBvZiB0aGUgZ3JpZCBpbiB0aGUgY2xpZW50Ljxicj5Eb3dubG9hZGluZyB0aGUgaW1hZ2VzIG1heSB0YWtlIGEgd2hpbGUgYW5kIHdpbGwgYmUgZG9uZSBpbiB0aGUgYmFja2dyb3VuZC4iDQogICAgfSwNCiAgICAicmVwbGFjZUVtcHR5SW1hZ2VzIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiUmVwbGFjZSBtaXNzaW5nIHByb2dyYW0gaW1hZ2VzIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJJZiB0aGUgcG9zdGVyIGluIHRoZSBYTUxUViBwcm9ncmFtIGlzIG1pc3NpbmcsIHRoZSBjaGFubmVsIGxvZ28gd2lsbCBiZSB1c2VkLiINCiAgICB9LA0KICAgICJ4dGV2ZUF1dG9VcGRhdGUiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJBdXRvbWF0aWMgdXBkYXRlIG9mIHhUZVZlIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJJZiBhIG5ldyB2ZXJzaW9uIG9mIHhUZVZlIGlzIGF2YWlsYWJsZSwgaXQgd2lsbCBiZSBhdXRvbWF0aWNhbGx5IGluc3RhbGxlZC4gVGhlIHVwZGF0ZXMgYXJlIGRvd25sb2FkZWQgZnJvbSBHaXRIdWIuIg0KICAgIH0sDQogICAgInN0cmVhbUJ1ZmZlcmluZyI6DQogICAgew0KICAgICAgInRpdGxlIjogIlN0cmVhbSBCdWZmZXIiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIkZ1bmN0aW9ucyBvZiB0aGUgYnVmZmVyOjxicj4tIFRoZSBzdHJlYW0gaXMgcGFzc2VkIGZyb20geFRlVmUsIEZGbXBlZyBvciBWTEMgdG8gUGxleCwgRW1ieSBvciBNM1UgUGxheWVyPGJyPi0gU21hbGwgamVya2luZyBvZiB0aGUgc3RyZWFtcyBjYW4gYmUgY29tcGVuc2F0ZWQ8YnI+LSBITFMgLyBNM1U4IHN1cHBvcnQ8YnI+LSBSVFAgLyBSVFBTIHN1cHBvcnQgKG9ubHkgRkZtcGVnIG9yIFZMQyk8YnI+LSBSZS1zdHJlYW1pbmc8YnI+LSBTZXBhcmF0ZSB0dW5lciBsaW1pdCBmb3IgZWFjaCBwbGF5bGlzdCIsDQogICAgICAiaW5mb19mYWxzZSI6ICJObyBCdWZmZXIgKENsaWVudCBjb25uZWN0cyB0byB0aGUgc3RyZWFtaW5nIHNlcnZlcikiLA0KICAgICAgImluZm9feHRldmUiOiAieFRlVmUgY29ubmVjdHMgdG8gdGhlIHN0cmVhbWluZyBzZXJ2ZXIiLA0KICAgICAgImluZm9fZmZtcGVnIjogIkZGbXBlZyBjb25uZWN0cyB0byB0aGUgc3RyZWFtaW5nIHNlcnZlciIsDQogICAgICAiaW5mb192bGMiOiAiVkxDIGNvbm5lY3RzIHRvIHRoZSBzdHJlYW1pbmcgc2VydmVyIg0KDQogICAgfSwNCiAgICAidWRweHkiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJVRFB4eSBhZGRyZXNzIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJUaGUgYWRkcmVzcyBvZiB5b3VyIFVEUHh5IHNlcnZlci4gSWYgc2V0LCBhbmQgdGhlIGNoYW5uZWwgVVJMcyBpbiB0aGUgbTN1IGlzIG11bHRpY2FzdCwgeFRlVmUgd2lsbCByZXdyaXRlIGl0IHNvIHRoYXQgaXQgaXMgYWNjZXNzZWQgdmlhIHRoZSBVRFB4eSBzZXJ2aWNlLiIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiaG9zdDpwb3J0Ig0KICAgIH0sDQogICAgImZmbXBlZ1BhdGgiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJGRm1wZWcgQmluYXJ5IFBhdGgiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIlBhdGggdG8gRkZtcGVnIGJpbmFyeS4iLA0KICAgICAgInBsYWNlaG9sZGVyIjogIi9wYXRoL3RvL2ZmbXBlZyINCiAgICB9LA0KICAgICJmZm1wZWdPcHRpb25zIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiRkZtcGVnIE9wdGlvbnMiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIkZGbXBlZyBvcHRpb25zLjxicj5Pbmx5IGNoYW5nZSBpZiB5b3Uga25vdyB3aGF0IHlvdSBhcmUgZG9pbmcuPGJyPkxlYXZlIGJsYW5rIHRvIHNldCBkZWZhdWx0IHNldHRpbmdzLiIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiTGVhdmUgYmxhbmsgdG8gc2V0IGRlZmF1bHQgc2V0dGluZ3MiDQogICAgfSwNCiAgICAidmxjUGF0aCI6DQogICAgew0KICAgICAgInRpdGxlIjogIlZMQyAvIENWTEMgQmluYXJ5IFBhdGgiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIlBhdGggdG8gVkxDIC8gQ1ZMQyBiaW5hcnkuIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIvcGF0aC90by9jdmxjIg0KICAgIH0sDQogICAgInZsY09wdGlvbnMiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJWTEMgLyBDVkxDIE9wdGlvbnMiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIlZMQyAvIENWTEMgb3B0aW9ucy48YnI+T25seSBjaGFuZ2UgaWYgeW91IGtub3cgd2hhdCB5b3UgYXJlIGRvaW5nLjxicj5MZWF2ZSBibGFuayB0byBzZXQgZGVmYXVsdCBzZXR0aW5ncy4iLA0KICAgICAgInBsYWNlaG9sZGVyIjogIkxlYXZlIGJsYW5rIHRvIHNldCBkZWZhdWx0IHNldHRpbmdzIg0KICAgIH0sDQogICAgImJ1ZmZlclNpemUiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJCdWZmZXIgU2l6ZSIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiQnVmZmVyIHNpemUgaW4gTUIuPGJyPk0zVTg6IElmIHRoZSBUUyBzZWdtZW50IHNtYWxsZXIgdGhlbiB0aGUgYnVmZmVyIHNpemUsIHRoZSBmaWxlIHNpemUgb2YgdGhlIHNlZ21lbnQgaXMgdXNlZC4iDQogICAgfSwNCiAgICAic3RvcmVCdWZmZXJJblJBTSI6DQogICAgew0KICAgICAgInRpdGxlIjogIlN0b3JlIGJ1ZmZlciBpbiBSQU0iLA0KICAgICAgImRlc2NyaXB0aW9uIjogIklmIGNoZWNrZWQsIHdyaXRlIGJ1ZmZlciB0byBSQU0gaW5zdGVhZCBvZiB3cml0aW5nIHRvIGRpc2siDQogICAgfSwNCiAgICAiYnVmZmVyVGltZW91dCI6DQogICAgew0KICAgICAgInRpdGxlIjogIlRpbWVvdXQgZm9yIG5ldyBjbGllbnQgY29ubmVjdGlvbnMiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIlRoZSB4VGVWZSBidWZmZXIgd2FpdHMgdW50aWwgbmV3IGNsaWVudCBjb25uZWN0aW9ucyBhcmUgZXN0YWJsaXNoZWQuIEhlbHBmdWwgZm9yIGZhc3QgY2hhbm5lbCBzd2l0Y2hpbmcuIFZhbHVlIGluIG1pbGxpc2Vjb25kcy4iLA0KICAgICAgInBsYWNlaG9sZGVyIjogIjEwMCINCiAgICB9LA0KICAgICJ1c2VyQWdlbnQiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJVc2VyIEFnZW50IiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJVc2VyIEFnZW50IGZvciBIVFRQIHJlcXVlc3RzLiBGb3IgZXZlcnkgSFRUUCBjb25uZWN0aW9uLCB0aGlzIHZhbHVlIGlzIHVzZWQgZm9yIHRoZSB1c2VyIGFnZW50LiBTaG91bGQgb25seSBiZSBjaGFuZ2VkIGlmIHhUZVZlIGlzIGJsb2NrZWQuIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJ4VGVWZSINCiAgICB9LA0KICAgICJiYWNrdXBQYXRoIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiTG9jYXRpb24gZm9yIGF1dG9tYXRpYyBiYWNrdXBzIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICIvbW50L2RhdGEvYmFja3VwL3h0ZXZlLyIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiQmVmb3JlIGFueSB1cGRhdGUgb2YgdGhlIHByb3ZpZGVyIGRhdGEgYnkgdGhlIHNjaGVkdWxlLCB4VGVWZSBjcmVhdGVzIGEgYmFja3VwLiBUaGUgcGF0aCBmb3IgdGhlIGF1dG9tYXRpYyBiYWNrdXBzIGNhbiBiZSBjaGFuZ2VkLiB4VGVWZSByZXF1aXJlcyB3cml0ZSBwZXJtaXNzaW9uIGZvciB0aGlzIGZvbGRlci4iDQogICAgfSwNCiAgICAidGVtcFBhdGgiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJMb2NhdGlvbiBmb3IgdGhlIHRlbXBvcmFyeSBmaWxlcyIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiL3RtcC94dGV2ZS8iLA0KICAgICAgImRlc2NyaXB0aW9uIjogIkxvY2F0aW9uIGZvciB0aGUgYnVmZmVyIGZpbGVzLiINCiAgICB9LA0KICAgICJiYWNrdXBLZWVwIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiTnVtYmVyIG9mIGJhY2t1cHMgdG8ga2VlcCIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiTnVtYmVyIG9mIGJhY2t1cHMgdG8ga2VlcC4gT2xkZXIgYmFja3VwcyBhcmUgYXV0b21hdGljYWxseSBkZWxldGVkLiINCiAgICB9LA0KICAgICJhdXRoZW50aWNhdGlvbldFQiI6DQogICAgew0KICAgICAgInRpdGxlIjogIldFQiBBdXRoZW50aWNhdGlvbiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiQWNjZXNzIHRvIHRoZSB3ZWIgaW50ZXJmYWNlIG9ubHkgcG9zc2libGUgd2l0aCBjcmVkZW50aWFscy4iDQogICAgfSwNCiAgICAiYXV0aGVudGljYXRpb25QTVMiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJQTVMgQXV0aGVudGljYXRpb24iLA0KICAgICAgImRlc2NyaXB0aW9uIjogIlBsZXggcmVxdWVzdHMgYXJlIG9ubHkgcG9zc2libGUgd2l0aCBhdXRoZW50aWNhdGlvbi4gPGJyPjxiPldhcm5pbmchISE8L2I+IEFmdGVyIGFjdGl2YXRpbmcgdGhpcyBmdW5jdGlvbiB4VGVWZSBtdXN0IGJlIGRlbGV0ZSBpbiB0aGUgUE1TIERWUiBzZXR0aW5ncyBhbmQgc2V0IHVwIGFnYWluLiINCiAgICB9LA0KICAgICJhdXRoZW50aWNhdGlvbk0zVSI6DQogICAgew0KICAgICAgInRpdGxlIjogIk0zVSBBdXRoZW50aWNhdGlvbiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiRG93bmxvYWRpbmcgdGhlIHh0ZXZlLm0zdSBmaWxlIHZpYSBhbiBIVFRQIHJlcXVlc3QgaXMgb25seSBwb3NzaWJsZSB3aXRoIGF1dGhlbnRpY2F0aW9uLiINCiAgICB9LA0KICAgICJhdXRoZW50aWNhdGlvblhNTCI6DQogICAgew0KICAgICAgInRpdGxlIjogIlhNTCBBdXRoZW50aWNhdGlvbiIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiRG93bmxvYWRpbmcgdGhlIHh0ZXZlLnhtbCBmaWxlIHZpYSBhbiBIVFRQIHJlcXVlc3QgaXMgb25seSBwb3NzaWJsZSB3aXRoIGF1dGhlbnRpY2F0aW9uIg0KICAgIH0sDQogICAgImF1dGhlbnRpY2F0aW9uQVBJIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiQVBJIEF1dGhlbnRpY2F0aW9uIiwNCiAgICAgICJkZXNjcmlwdGlvbiI6ICJBY2Nlc3MgdG8gdGhlIEFQSSBpbnRlcmZhY2UgaXMgb25seSBwb3NzaWJsZSB3aXRoIGF1dGhlbnRpY2F0aW9uLiINCiAgICB9DQogIH0sDQogICJ3aXphcmQiOg0KICB7DQogICAgImVwZ1NvdXJjZSI6DQogICAgew0KICAgICAgInRpdGxlIjogIkVQRyBTb3VyY2UiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIlBNUzo8YnI+LSBVc2UgRVBHIGRhdGEgZnJvbSBQbGV4IG9yIEVtYnkgPGJyPjxicj5YRVBHOjxicj4tIFVzZSBvZiBvbmUgb3IgbW9yZSBYTUxUViBmaWxlczxicj4tIENoYW5uZWwgbWFuYWdlbWVudDxicj4tIE0zVSAvIFhNTFRWIGV4cG9ydCAoSFRUUCBsaW5rIGZvciBJUFRWIGFwcHMpIg0KICAgIH0sDQogICAgInR1bmVyIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiTnVtYmVyIG9mIHR1bmVycyIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiTnVtYmVyIG9mIHBhcmFsbGVsIGNvbm5lY3Rpb25zIHRoYXQgY2FuIGJlIGVzdGFibGlzaGVkIHRvIHRoZSBwcm92aWRlci48YnI+QXZhaWxhYmxlIGZvcjogUGxleCwgRW1ieSAoSERIUiksIE0zVSAod2l0aCBhY3RpdmUgYnVmZmVyKS48YnI+QWZ0ZXIgYSBjaGFuZ2UsIHhUZVZlIG11c3QgYmUgZGVsZXRlIGluIHRoZSBQbGV4IC8gRW1ieSBEVlIgc2V0dGluZ3MgYW5kIHNldCB1cCBhZ2Fpbi4iDQogICAgfSwNCiAgICAibTN1IjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiTTNVIFBsYXlsaXN0IiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJGaWxlIHBhdGggb3IgVVJMIG9mIHRoZSBNM1UiLA0KICAgICAgImRlc2NyaXB0aW9uIjogIkxvY2FsIG9yIHJlbW90ZSBwbGF5bGlzdHMiDQogICAgfSwNCiAgICAieG1sdHYiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJYTUxUViBGaWxlIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJGaWxlIHBhdGggb3IgVVJMIG9mIHRoZSBYTUxUViIsDQogICAgICAiZGVzY3JpcHRpb24iOiAiTG9jYWwgb3IgcmVtb3RlIFhNTFRWIGZpbGUiDQogICAgfQ0KICB9LA0KICAibG9naW4iOg0KICB7DQogICAgImZhaWxlZCI6ICJVc2VyIGF1dGhlbnRpY2F0aW9uIGZhaWxlZCIsDQogICAgImhlYWRsaW5lIjogIkxvZ2luIiwNCiAgICAidXNlcm5hbWUiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJVc2VybmFtZSIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiVXNlcm5hbWUiDQogICAgfSwNCiAgICAicGFzc3dvcmQiOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJQYXNzd29yZCIsDQogICAgICAicGxhY2Vob2xkZXIiOiAiUGFzc3dvcmQiDQogICAgfQ0KICB9LA0KICAiYWNjb3VudCI6DQogIHsNCiAgICAiZmFpbGVkIjogIlBhc3N3b3JkIGRvZXMgbm90IG1hdGNoIiwNCiAgICAiaGVhZGxpbmUiOiAiQ3JlYXRlIHVzZXIgYWNjb3VudCIsDQogICAgInVzZXJuYW1lIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiVXNlcm5hbWUiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIlVzZXJuYW1lIg0KICAgIH0sDQogICAgInBhc3N3b3JkIjoNCiAgICB7DQogICAgICAidGl0bGUiOiAiUGFzc3dvcmQiLA0KICAgICAgInBsYWNlaG9sZGVyIjogIlBhc3N3b3JkIg0KICAgIH0sDQogICAgImNvbmZpcm0iOg0KICAgIHsNCiAgICAgICJ0aXRsZSI6ICJDb25maXJtIiwNCiAgICAgICJwbGFjZWhvbGRlciI6ICJDb25maXJtIg0KICAgIH0NCiAgfQ0KfQ==" - webUI["html/login.html"] = "PCFkb2N0eXBlIGh0bWw+DQo8aHRtbD4NCiAgPGhlYWQ+DQogICAgPG1ldGEgY2hhcnNldD0idXRmLTgiPg0KICAgIDxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgsIGluaXRpYWwtc2NhbGU9MS4wIiAvPiANCiAgICA8dGl0bGU+eFRlVmU8L3RpdGxlPg0KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iY3NzL3NjcmVlbi5jc3MiIHR5cGU9InRleHQvY3NzIj4NCiAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9ImNzcy9iYXNlLmNzcyIgdHlwZT0idGV4dC9jc3MiPg0KICAgIDxzY3JpcHQgbGFuZ3VhZ2U9ImphdmFzY3JpcHQiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJqcy9uZXR3b3JrX3RzLmpzIj48L3NjcmlwdD4NCiAgICA8c2NyaXB0IGxhbmd1YWdlPSJqYXZhc2NyaXB0IiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ianMvYXV0aGVudGljYXRpb25fdHMuanMiPjwvc2NyaXB0Pg0KICA8L2hlYWQ+DQoNCiAgICA8Ym9keT4NCiAgICAgICAgICANCiAgICAgIDxkaXYgaWQ9ImhlYWRlciIgY2xhc3M9ImltZ0NlbnRlciI+PC9kaXY+DQoNCiAgICAgIDxkaXYgaWQ9ImJveCI+DQoNCiAgICAgICAgPGRpdiBpZD0iaGVhZGxpbmUiPg0KICAgICAgICAgIDxoMSBpZD0iaGVhZC10ZXh0IiBjbGFzcz0iY2VudGVyIj57ey5sb2dpbi5oZWFkbGluZX19PC9oMT4NCiAgICAgICAgPC9kaXY+DQoNCiAgICAgICAgPHAgaWQ9ImVyciIgY2xhc3M9ImVycm9yTXNnIGNlbnRlciI+e3suYXV0aGVudGljYXRpb25FcnJ9fTwvcD4NCg0KICAgICAgICA8ZGl2IGlkPSJjb250ZW50Ij4NCg0KICAgICAgICAgICAgPGZvcm0gaWQ9ImF1dGhlbnRpY2F0aW9uIiBhY3Rpb249IiIgbWV0aG9kPSJwb3N0Ij4NCg0KICAgICAgICAgICAgICA8aDU+e3subG9naW4udXNlcm5hbWUudGl0bGV9fTo8L2g1Pg0KICAgICAgICAgICAgICA8aW5wdXQgaWQ9InVzZXJuYW1lIiB0eXBlPSJ0ZXh0IiBuYW1lPSJ1c2VybmFtZSIgcGxhY2Vob2xkZXI9IlVzZXJuYW1lIiB2YWx1ZT0iIj4NCiAgICAgICAgICAgICAgPGg1Pnt7LmxvZ2luLnBhc3N3b3JkLnRpdGxlfX06PC9oNT4NCiAgICAgICAgICAgICAgPGlucHV0IGlkPSJwYXNzd29yZCIgdHlwZT0icGFzc3dvcmQiIG5hbWU9InBhc3N3b3JkIiBwbGFjZWhvbGRlcj0iUGFzc3dvcmQiIHZhbHVlPSIiPg0KDQogICAgICAgICAgICA8L2Zvcm0+DQoNCiAgICAgICAgPC9kaXY+DQoNCiAgICAgICAgPGRpdiBpZD0iYm94LWZvb3RlciI+DQogICAgICAgICAgPGlucHV0IGlkPSJzdWJtaXQiIGNsYXNzPSIiIHR5cGU9ImJ1dHRvbiIgdmFsdWU9Int7LmJ1dHRvbi5sb2dpbn19IiBvbmNsaWNrPSJqYXZhc2NyaXB0OiBsb2dpbigpOyI+DQogICAgICAgIDwvZGl2Pg0KICAgICAgICANCiAgICAgIDwvZGl2Pg0KDQogICAgPC9ib2R5Pg0KICAgIA0KPC9odG1sPg==" - webUI["html/maintenance.html"] = "PCFkb2N0eXBlIGh0bWw+DQo8aHRtbD4NCiAgPGhlYWQ+DQogICAgPG1ldGEgY2hhcnNldD0idXRmLTgiPg0KICAgIDxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgsIGluaXRpYWwtc2NhbGU9MS4wIiAvPiANCiAgICA8dGl0bGU+eFRlVmU8L3RpdGxlPg0KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iY3NzL3NjcmVlbi5jc3MiIHR5cGU9InRleHQvY3NzIj4NCiAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9ImNzcy9iYXNlLmNzcyIgdHlwZT0idGV4dC9jc3MiPg0KICA8L2hlYWQ+DQoNCiAgICA8Ym9keT4NCiAgICAgICAgICANCiAgICAgIDxkaXYgaWQ9ImhlYWRlciIgY2xhc3M9ImltZ0NlbnRlciI+PC9kaXY+DQoNCiAgICAgIDxkaXYgaWQ9ImJveCI+DQoNCiAgICAgICAgPGRpdiBpZD0iaGVhZGxpbmUiPg0KICAgICAgICAgIDxoMSBpZD0iaGVhZC10ZXh0IiBjbGFzcz0iY2VudGVyIj5NYWludGVuYW5jZTwvaDE+ICAgICAgDQogICAgICAgIDwvZGl2PiAgDQoNCiAgICAgICAgPGRpdiBpZD0iY29udGVudCI+DQogICAgICAgICAgeFRlVmUgaXMgdXBkYXRpbmcgdGhlIGRhdGFiYXNlLCBwbGVhc2UgdHJ5IGFnYWluIGxhdGVyLg0KICAgICAgICA8L2Rpdj4NCg0KICAgICAgICA8ZGl2IGlkPSJib3gtZm9vdGVyIj48L2Rpdj4NCiAgICAgICAgDQogICAgICA8L2Rpdj4NCg0KICAgIDwvYm9keT4NCjwvaHRtbD4=" + webUI["html/index.html"] = "PCFkb2N0eXBlIGh0bWw+CjxodG1sPgoKPGhlYWQ+CiAgPG1ldGEgY2hhcnNldD0idXRmLTgiPgogIDwhLS0tCiAgICA8bWV0YSBuYW1lPSJ2aWV3cG9ydCIgY29udGVudD0id2lkdGg9ZGV2aWNlLXdpZHRoLCBpbml0aWFsLXNjYWxlPTEuMCIgLz4gCiAgICAtLT4KICA8dGl0bGU+eFRlVmU8L3RpdGxlPgogIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iY3NzL3NjcmVlbi5jc3MiIHR5cGU9InRleHQvY3NzIj4KICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9ImNzcy9iYXNlLmNzcyIgdHlwZT0idGV4dC9jc3MiPgoKICA8c2NyaXB0IGxhbmd1YWdlPSJqYXZhc2NyaXB0IiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ianMvbmV0d29ya190cy5qcyI+PC9zY3JpcHQ+CiAgPHNjcmlwdCBsYW5ndWFnZT0iamF2YXNjcmlwdCIgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9ImpzL21lbnVfdHMuanMiPjwvc2NyaXB0PgogIDxzY3JpcHQgbGFuZ3VhZ2U9ImphdmFzY3JpcHQiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJqcy9zZXR0aW5nc190cy5qcyI+PC9zY3JpcHQ+CiAgPHNjcmlwdCBsYW5ndWFnZT0iamF2YXNjcmlwdCIgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9ImpzL2xvZ3NfdHMuanMiPjwvc2NyaXB0PgogIDxzY3JpcHQgbGFuZ3VhZ2U9ImphdmFzY3JpcHQiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJqcy9iYXNlX3RzLmpzIj48L3NjcmlwdD4KCjwvaGVhZD4KCjxib2R5IG9ubG9hZD0iamF2YXNjcmlwdDogUGFnZVJlYWR5KCk7Ij4KCiAgPGRpdiBpZD0ibG9hZGluZyIgY2xhc3M9Im5vbmUiPgogICAgPGRpdiBjbGFzcz0ibG9hZGVyIj48L2Rpdj4KICA8L2Rpdj4KCiAgPGRpdiBpZD0icG9wdXAiIGNsYXNzPSJub25lIj4KICAgIDxkaXYgaWQ9InBvcHVwLWN1c3RvbSI+PC9kaXY+CiAgPC9kaXY+CgogIDxkaXYgaWQ9ImxheW91dCI+CgogICAgPCEtLQogICAgICAgIDxkaXYgaWQ9Im5vdGlmaWNhdGlvbiI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJlbGVtZW50Ij4KICAgICAgICAgICAgPGg1PlhFUEc8L2g1PgogICAgICAgICAgICA8cHJlPjExLjA1LjIwMTkgLSAyMDoyMTwvcHJlPgogICAgICAgICAgICA8aHI+CiAgICAgICAgICAgIDxwPkhhbGxvIGRhcyBpc3QgZWluIFRlc3QuIFVuZCBub2NoIG1laHIgVGV4dC48L3A+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgLS0+CgogICAgPGRpdiBpZD0ibWVudS13cmFwcGVyIiBjbGFzcz0ibGF5b3V0LWxlZnQiPgogICAgICA8ZGl2IGlkPSJicmFuY2giPjwvZGl2PgogICAgICA8ZGl2IGlkPSJsb2dvIj48L2Rpdj4KICAgICAgPG5hdiBpZD0ibWFpbi1tZW51Ij48L25hdj4KICAgIDwvZGl2PgoKICAgIDxkaXYgY2xhc3M9ImxheW91dC1yaWdodCI+CgogICAgICA8dGFibGUgaWQ9ImNsaWVudEluZm8iIGNsYXNzPSIiPgoKICAgICAgICA8dHI+CiAgICAgICAgICA8dGQgY2xhc3M9InRkS2V5Ij54VGVWZTo8L3RkPgogICAgICAgICAgPHRkIGlkPSJ2ZXJzaW9uIiBjbGFzcz0idGRWYWwiPiZuYnNwOzwvdGQ+CiAgICAgICAgICA8dGQgY2xhc3M9InRkS2V5Ij5PUzo8L3RkPgogICAgICAgICAgPHRkIGlkPSJvcyIgY2xhc3M9InRkVmFsIj4mbmJzcDs8L3RkPgogICAgICAgICAgPHRkIGNsYXNzPSJ0ZEtleSBwaG9uZSI+RFZSIElQOjwvdGQ+CiAgICAgICAgICA8dGQgaWQ9IkRWUiIgY2xhc3M9InRkVmFsTGluayBwaG9uZSI+Jm5ic3A7PC90ZD4KICAgICAgICA8L3RyPgoKICAgICAgICA8dHI+CiAgICAgICAgICA8dGQgY2xhc3M9InRkS2V5Ij5VVUlEOjwvdGQ+CiAgICAgICAgICA8dGQgaWQ9InV1aWQiIGNsYXNzPSJ0ZFZhbCI+Jm5ic3A7PC90ZD4KICAgICAgICAgIDx0ZCBjbGFzcz0idGRLZXkiPkFyY2g6PC90ZD4KICAgICAgICAgIDx0ZCBpZD0iYXJjaCIgY2xhc3M9InRkVmFsIj4mbmJzcDs8L3RkPgogICAgICAgICAgPHRkIGNsYXNzPSJ0ZEtleSBwaG9uZSI+TTNVIFVSTDo8L3RkPgogICAgICAgICAgPHRkIGlkPSJtM3UtdXJsIiBjbGFzcz0idGRWYWxMaW5rIHBob25lIj4mbmJzcDs8L3RkPgogICAgICAgIDwvdHI+CgogICAgICAgIDx0cj4KICAgICAgICAgIDx0ZCBjbGFzcz0idGRLZXkiPkF2YWlsYWJsZSBTdHJlYW1zOjwvdGQ+CiAgICAgICAgICA8dGQgaWQ9InN0cmVhbXMiIGNsYXNzPSJ0ZFZhbCI+Jm5ic3A7PC90ZD4KICAgICAgICAgIDx0ZCBjbGFzcz0idGRLZXkiPkVQRyBTb3VyY2U6PC90ZD4KICAgICAgICAgIDx0ZCBpZD0iZXBnU291cmNlIiBjbGFzcz0idGRWYWwiPiZuYnNwOzwvdGQ+CiAgICAgICAgICA8dGQgY2xhc3M9InRkS2V5IHBob25lIj5YRVBHIFVSTDo8L3RkPgogICAgICAgICAgPHRkIGlkPSJ4ZXBnLXVybCIgY2xhc3M9InRkVmFsTGluayBwaG9uZSI+Jm5ic3A7PC90ZD4KICAgICAgICA8L3RyPgoKICAgICAgICA8dHI+CiAgICAgICAgICA8dGQgY2xhc3M9InRkS2V5Ij5YRVBHIENoYW5uZWxzOjwvdGQ+CiAgICAgICAgICA8dGQgaWQ9InhlcGciIGNsYXNzPSJ0ZFZhbCI+Jm5ic3A7PC90ZD4KICAgICAgICAgIDx0ZCBjbGFzcz0idGRLZXkiPkVycm9yczo8L3RkPgogICAgICAgICAgPHRkIGlkPSJlcnJvcnMiIGNsYXNzPSJ0ZFZhbCI+Jm5ic3A7PC90ZD4KICAgICAgICAgIDx0ZCBjbGFzcz0idGRLZXkiPldhcm5pbmdzOjwvdGQ+CiAgICAgICAgICA8dGQgaWQ9Indhcm5pbmdzIiBjbGFzcz0idGRWYWwiPiZuYnNwOzwvdGQ+CiAgICAgICAgPC90cj4KCiAgICAgIDwvdGFibGU+CgogICAgICA8ZGl2IGlkPSJteVN0cmVhbXNCb3giIGNsYXNzPSJub3RWaXNpYmxlIj4KCiAgICAgICAgPGRpdiBpZD0iYWxsU3RyZWFtcyI+CiAgICAgICAgICA8dGFibGUgaWQ9ImFjdGl2ZVN0cmVhbXMiPjwvdGFibGU+CiAgICAgICAgICA8dGFibGUgaWQ9ImluYWN0aXZlU3RyZWFtcyI+PC90YWJsZT4KICAgICAgICA8L2Rpdj4KCiAgICAgIDwvZGl2PgoKICAgICAgPGRpdiBpZD0iY29udGVudCIgY2xhc3M9IiI+PC9kaXY+CgogICAgPC9kaXY+CgogIDwvZGl2PgoKPC9ib2R5PgoKPC9odG1sPg==" + webUI["html/js/authentication_ts.js"] = "ZnVuY3Rpb24gbG9naW4oKSB7CiAgICB2YXIgZXJyID0gZmFsc2U7CiAgICB2YXIgZGF0YSA9IG5ldyBPYmplY3QoKTsKICAgIHZhciBkaXYgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29udGVudCIpOwogICAgdmFyIGZvcm0gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYXV0aGVudGljYXRpb24iKTsKICAgIHZhciBpbnB1dHMgPSBkaXYuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIklOUFVUIik7CiAgICBmb3IgKHZhciBpID0gaW5wdXRzLmxlbmd0aCAtIDE7IGkgPj0gMDsgaS0tKSB7CiAgICAgICAgdmFyIGtleSA9IGlucHV0c1tpXS5uYW1lOwogICAgICAgIHZhciB2YWx1ZSA9IGlucHV0c1tpXS52YWx1ZTsKICAgICAgICBpZiAodmFsdWUubGVuZ3RoID09IDApIHsKICAgICAgICAgICAgaW5wdXRzW2ldLnN0eWxlLmJvcmRlckNvbG9yID0gInJlZCI7CiAgICAgICAgICAgIGVyciA9IHRydWU7CiAgICAgICAgfQogICAgICAgIGRhdGFba2V5XSA9IHZhbHVlOwogICAgfQogICAgaWYgKGVyciA9PSB0cnVlKSB7CiAgICAgICAgZGF0YSA9IG5ldyBPYmplY3QoKTsKICAgICAgICByZXR1cm47CiAgICB9CiAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgiY29uZmlybSIpKSB7CiAgICAgICAgaWYgKGRhdGFbImNvbmZpcm0iXSAhPSBkYXRhWyJwYXNzd29yZCJdKSB7CiAgICAgICAgICAgIGFsZXJ0KCJzZGFmc2QiKTsKICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Bhc3N3b3JkJykuc3R5bGUuYm9yZGVyQ29sb3IgPSAicmVkIjsKICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NvbmZpcm0nKS5zdHlsZS5ib3JkZXJDb2xvciA9ICJyZWQiOwogICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZXJyIikuaW5uZXJIVE1MID0gInt7LmFjY291bnQuZmFpbGVkfX0iOwogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQogICAgfQogICAgZm9ybS5zdWJtaXQoKTsKfQo=" + webUI["html/js/base_ts.js"] = "dmFyIFNFUlZFUiA9IG5ldyBPYmplY3QoKTsKdmFyIEJVTEtfRURJVCA9IGZhbHNlOwp2YXIgQ09MVU1OX1RPX1NPUlQ7CnZhciBTRUFSQ0hfTUFQUElORyA9IG5ldyBPYmplY3QoKTsKdmFyIFVORE8gPSBuZXcgT2JqZWN0KCk7CnZhciBTRVJWRVJfQ09OTkVDVElPTiA9IGZhbHNlOwp2YXIgV1NfQVZBSUxBQkxFID0gZmFsc2U7Ci8vIE1lbnUKdmFyIG1lbnVJdGVtcyA9IG5ldyBBcnJheSgpOwptZW51SXRlbXMucHVzaChuZXcgTWFpbk1lbnVJdGVtKCJwbGF5bGlzdCIsICJ7ey5tYWluTWVudS5pdGVtLnBsYXlsaXN0fX0iLCAibTN1LnBuZyIsICJ7ey5tYWluTWVudS5oZWFkbGluZS5wbGF5bGlzdH19IikpOwptZW51SXRlbXMucHVzaChuZXcgTWFpbk1lbnVJdGVtKCJmaWx0ZXIiLCAie3subWFpbk1lbnUuaXRlbS5maWx0ZXJ9fSIsICJmaWx0ZXIucG5nIiwgInt7Lm1haW5NZW51LmhlYWRsaW5lLmZpbHRlcn19IikpOwptZW51SXRlbXMucHVzaChuZXcgTWFpbk1lbnVJdGVtKCJ4bWx0diIsICJ7ey5tYWluTWVudS5pdGVtLnhtbHR2fX0iLCAieG1sdHYucG5nIiwgInt7Lm1haW5NZW51LmhlYWRsaW5lLnhtbHR2fX0iKSk7Cm1lbnVJdGVtcy5wdXNoKG5ldyBNYWluTWVudUl0ZW0oIm1hcHBpbmciLCAie3subWFpbk1lbnUuaXRlbS5tYXBwaW5nfX0iLCAibWFwcGluZy5wbmciLCAie3subWFpbk1lbnUuaGVhZGxpbmUubWFwcGluZ319IikpOwptZW51SXRlbXMucHVzaChuZXcgTWFpbk1lbnVJdGVtKCJ1c2VycyIsICJ7ey5tYWluTWVudS5pdGVtLnVzZXJzfX0iLCAidXNlcnMucG5nIiwgInt7Lm1haW5NZW51LmhlYWRsaW5lLnVzZXJzfX0iKSk7Cm1lbnVJdGVtcy5wdXNoKG5ldyBNYWluTWVudUl0ZW0oInNldHRpbmdzIiwgInt7Lm1haW5NZW51Lml0ZW0uc2V0dGluZ3N9fSIsICJzZXR0aW5ncy5wbmciLCAie3subWFpbk1lbnUuaGVhZGxpbmUuc2V0dGluZ3N9fSIpKTsKbWVudUl0ZW1zLnB1c2gobmV3IE1haW5NZW51SXRlbSgibG9nIiwgInt7Lm1haW5NZW51Lml0ZW0ubG9nfX0iLCAibG9nLnBuZyIsICJ7ey5tYWluTWVudS5oZWFkbGluZS5sb2d9fSIpKTsKbWVudUl0ZW1zLnB1c2gobmV3IE1haW5NZW51SXRlbSgibG9nb3V0IiwgInt7Lm1haW5NZW51Lml0ZW0ubG9nb3V0fX0iLCAibG9nb3V0LnBuZyIsICJ7ey5tYWluTWVudS5oZWFkbGluZS5sb2dvdXR9fSIpKTsKLy8gU2V0dGluZ3MgY2F0ZWdvcmllcwp2YXIgc2V0dGluZ3NDYXRlZ29yeSA9IG5ldyBBcnJheSgpOwpzZXR0aW5nc0NhdGVnb3J5LnB1c2gobmV3IFNldHRpbmdzQ2F0ZWdvcnlJdGVtKCJ7ey5zZXR0aW5ncy5jYXRlZ29yeS5nZW5lcmFsfX0iLCAidGxzTW9kZSx4dGV2ZUF1dG9VcGRhdGUsaG9zdElQLHR1bmVyLGVwZ1NvdXJjZSxkaXNhbGxvd1VSTER1cGxpY2F0ZXMsY2xlYXJYTUxUVkNhY2hlLGFwaSIpKTsKc2V0dGluZ3NDYXRlZ29yeS5wdXNoKG5ldyBTZXR0aW5nc0NhdGVnb3J5SXRlbSgie3suc2V0dGluZ3MuY2F0ZWdvcnkubWFwcGluZ319IiwgImRlZmF1bHRNaXNzaW5nRVBHLGVuYWJsZU1hcHBlZENoYW5uZWxzIikpOwpzZXR0aW5nc0NhdGVnb3J5LnB1c2gobmV3IFNldHRpbmdzQ2F0ZWdvcnlJdGVtKCJ7ey5zZXR0aW5ncy5jYXRlZ29yeS5maWxlc319IiwgInVwZGF0ZSxmaWxlcy51cGRhdGUsdGVtcC5wYXRoLGNhY2hlLmltYWdlcyx4ZXBnLnJlcGxhY2UubWlzc2luZy5pbWFnZXMiKSk7CnNldHRpbmdzQ2F0ZWdvcnkucHVzaChuZXcgU2V0dGluZ3NDYXRlZ29yeUl0ZW0oInt7LnNldHRpbmdzLmNhdGVnb3J5LnN0cmVhbWluZ319IiwgImJ1ZmZlcix1ZHB4eSxidWZmZXIuc2l6ZS5rYixzdG9yZUJ1ZmZlckluUkFNLGJ1ZmZlci50aW1lb3V0LHVzZXIuYWdlbnQsZmZtcGVnLnBhdGgsZmZtcGVnLm9wdGlvbnMsdmxjLnBhdGgsdmxjLm9wdGlvbnMiKSk7CnNldHRpbmdzQ2F0ZWdvcnkucHVzaChuZXcgU2V0dGluZ3NDYXRlZ29yeUl0ZW0oInt7LnNldHRpbmdzLmNhdGVnb3J5LmJhY2t1cH19IiwgImJhY2t1cC5wYXRoLGJhY2t1cC5rZWVwIikpOwpzZXR0aW5nc0NhdGVnb3J5LnB1c2gobmV3IFNldHRpbmdzQ2F0ZWdvcnlJdGVtKCJ7ey5zZXR0aW5ncy5jYXRlZ29yeS5hdXRoZW50aWNhdGlvbn19IiwgImF1dGhlbnRpY2F0aW9uLndlYixhdXRoZW50aWNhdGlvbi5wbXMsYXV0aGVudGljYXRpb24ubTN1LGF1dGhlbnRpY2F0aW9uLnhtbCxhdXRoZW50aWNhdGlvbi5hcGkiKSk7CmZ1bmN0aW9uIHNob3dQb3BVcEVsZW1lbnQoZWxtKSB7CiAgICB2YXIgYWxsRWxlbWVudHMgPSBuZXcgQXJyYXkoInBvcHVwLWN1c3RvbSIpOwogICAgZm9yICh2YXIgaSA9IDA7IGkgPCBhbGxFbGVtZW50cy5sZW5ndGg7IGkrKykgewogICAgICAgIHNob3dFbGVtZW50KGFsbEVsZW1lbnRzW2ldLCBmYWxzZSk7CiAgICB9CiAgICBzaG93RWxlbWVudChlbG0sIHRydWUpOwogICAgc2V0VGltZW91dChmdW5jdGlvbiAoKSB7CiAgICAgICAgc2hvd0VsZW1lbnQoInBvcHVwIiwgdHJ1ZSk7CiAgICB9LCAxMCk7CiAgICByZXR1cm47Cn0KZnVuY3Rpb24gc2hvd0VsZW1lbnQoZWxtSUQsIHR5cGUpIHsKICAgIHZhciBjc3NDbGFzczsKICAgIHN3aXRjaCAodHlwZSkgewogICAgICAgIGNhc2UgdHJ1ZToKICAgICAgICAgICAgY3NzQ2xhc3MgPSAiYmxvY2siOwogICAgICAgICAgICBicmVhazsKICAgICAgICBjYXNlIGZhbHNlOgogICAgICAgICAgICBjc3NDbGFzcyA9ICJub25lIjsKICAgICAgICAgICAgYnJlYWs7CiAgICB9CiAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChlbG1JRCkuY2xhc3NOYW1lID0gY3NzQ2xhc3M7Cn0KZnVuY3Rpb24gY2hhbmdlQnV0dG9uQWN0aW9uKGVsZW1lbnQsIGJ1dHRvbklELCBhdHRyaWJ1dGUpIHsKICAgIHZhciB2YWx1ZSA9IGVsZW1lbnQub3B0aW9uc1tlbGVtZW50LnNlbGVjdGVkSW5kZXhdLnZhbHVlOwogICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoYnV0dG9uSUQpLnNldEF0dHJpYnV0ZShhdHRyaWJ1dGUsIHZhbHVlKTsKfQpmdW5jdGlvbiBnZXRMb2NhbERhdGEoZGF0YVR5cGUsIGlkKSB7CiAgICBsZXQgZGF0YSA9IHt9OwogICAgc3dpdGNoIChkYXRhVHlwZSkgewogICAgICAgIGNhc2UgIm0zdSI6CiAgICAgICAgICAgIGRhdGEgPSBTRVJWRVJbInNldHRpbmdzIl1bImZpbGVzIl1bZGF0YVR5cGVdW2lkXTsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgY2FzZSAiaGRociI6CiAgICAgICAgICAgIGRhdGEgPSBTRVJWRVJbInNldHRpbmdzIl1bImZpbGVzIl1bZGF0YVR5cGVdW2lkXTsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgY2FzZSAiZmlsdGVyIjoKICAgICAgICBjYXNlICJjdXN0b20tZmlsdGVyIjoKICAgICAgICBjYXNlICJncm91cC10aXRsZSI6CiAgICAgICAgICAgIGlmIChpZCA9PSAtMSkgewogICAgICAgICAgICAgICAgZGF0YVsiYWN0aXZlIl0gPSB0cnVlOwogICAgICAgICAgICAgICAgZGF0YVsiY2FzZVNlbnNpdGl2ZSJdID0gZmFsc2U7CiAgICAgICAgICAgICAgICBkYXRhWyJkZXNjcmlwdGlvbiJdID0gIiI7CiAgICAgICAgICAgICAgICBkYXRhWyJleGNsdWRlIl0gPSAiIjsKICAgICAgICAgICAgICAgIGRhdGFbImZpbHRlciJdID0gIiI7CiAgICAgICAgICAgICAgICBkYXRhWyJpbmNsdWRlIl0gPSAiIjsKICAgICAgICAgICAgICAgIGRhdGFbIm5hbWUiXSA9ICIiOwogICAgICAgICAgICAgICAgZGF0YVsidHlwZSJdID0gImdyb3VwLXRpdGxlIjsKICAgICAgICAgICAgICAgIGRhdGFbInByZXNlcnZlTWFwcGluZyJdID0gdHJ1ZTsKICAgICAgICAgICAgICAgIGRhdGFbInN0YXJ0aW5nQ2hhbm5lbCJdID0gU0VSVkVSWyJzZXR0aW5ncyJdWyJtYXBwaW5nLmZpcnN0LmNoYW5uZWwiXTsKICAgICAgICAgICAgICAgIFNFUlZFUlsic2V0dGluZ3MiXVsiZmlsdGVyIl1baWRdID0gZGF0YTsKICAgICAgICAgICAgfQogICAgICAgICAgICBkYXRhID0gU0VSVkVSWyJzZXR0aW5ncyJdWyJmaWx0ZXIiXVtpZF07CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgIGNhc2UgInhtbHR2IjoKICAgICAgICAgICAgZGF0YSA9IFNFUlZFUlsic2V0dGluZ3MiXVsiZmlsZXMiXVtkYXRhVHlwZV1baWRdOwogICAgICAgICAgICBicmVhazsKICAgICAgICBjYXNlICJ1c2VycyI6CiAgICAgICAgICAgIGRhdGEgPSBTRVJWRVJbInVzZXJzIl1baWRdWyJkYXRhIl07CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgIGNhc2UgIm1hcHBpbmciOgogICAgICAgICAgICBkYXRhID0gU0VSVkVSWyJ4ZXBnIl1bImVwZ01hcHBpbmciXVtpZF07CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgIGNhc2UgIm0zdUdyb3VwcyI6CiAgICAgICAgICAgIGRhdGEgPSBTRVJWRVJbImRhdGEiXVsicGxheWxpc3QiXVsibTN1Il1bImdyb3VwcyJdOwogICAgICAgICAgICBicmVhazsKICAgIH0KICAgIHJldHVybiBkYXRhOwp9CmZ1bmN0aW9uIGdldE93bk9ialByb3BzKG9iamVjdCkgewogICAgcmV0dXJuIG9iamVjdCA/IE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKG9iamVjdCkgOiBbXTsKfQpmdW5jdGlvbiBnZXRBbGxTZWxlY3RlZENoYW5uZWxzKCkgewogICAgdmFyIGNoYW5uZWxzID0gbmV3IEFycmF5KCk7CiAgICBpZiAoQlVMS19FRElUID09IGZhbHNlKSB7CiAgICAgICAgcmV0dXJuIGNoYW5uZWxzOwogICAgfQogICAgdmFyIHRycyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb250ZW50X3RhYmxlIikuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlRSIik7CiAgICBmb3IgKHZhciBpID0gMTsgaSA8IHRycy5sZW5ndGg7IGkrKykgewogICAgICAgIGlmICh0cnNbaV0uc3R5bGUuZGlzcGxheSAhPSAibm9uZSIpIHsKICAgICAgICAgICAgaWYgKHRyc1tpXS5maXJzdENoaWxkLmZpcnN0Q2hpbGQuY2hlY2tlZCA9PSB0cnVlKSB7CiAgICAgICAgICAgICAgICBjaGFubmVscy5wdXNoKHRyc1tpXS5pZCk7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CiAgICByZXR1cm4gY2hhbm5lbHM7Cn0KZnVuY3Rpb24gc2VsZWN0QWxsQ2hhbm5lbHMoKSB7CiAgICB2YXIgYnVsayA9IGZhbHNlOwogICAgdmFyIHRycyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb250ZW50X3RhYmxlIikuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlRSIik7CiAgICBpZiAodHJzWzBdLmZpcnN0Q2hpbGQuZmlyc3RDaGlsZC5jaGVja2VkID09IHRydWUpIHsKICAgICAgICBidWxrID0gdHJ1ZTsKICAgIH0KICAgIGZvciAodmFyIGkgPSAxOyBpIDwgdHJzLmxlbmd0aDsgaSsrKSB7CiAgICAgICAgaWYgKHRyc1tpXS5zdHlsZS5kaXNwbGF5ICE9ICJub25lIikgewogICAgICAgICAgICBzd2l0Y2ggKGJ1bGspIHsKICAgICAgICAgICAgICAgIGNhc2UgdHJ1ZToKICAgICAgICAgICAgICAgICAgICB0cnNbaV0uZmlyc3RDaGlsZC5maXJzdENoaWxkLmNoZWNrZWQgPSB0cnVlOwogICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgY2FzZSBmYWxzZToKICAgICAgICAgICAgICAgICAgICB0cnNbaV0uZmlyc3RDaGlsZC5maXJzdENoaWxkLmNoZWNrZWQgPSBmYWxzZTsKICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KICAgIHJldHVybjsKfQpmdW5jdGlvbiBidWxrRWRpdCgpIHsKICAgIEJVTEtfRURJVCA9ICFCVUxLX0VESVQ7CiAgICB2YXIgY2xhc3NOYW1lOwogICAgdmFyIHJvd3MgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCJidWxrIik7CiAgICBzd2l0Y2ggKEJVTEtfRURJVCkgewogICAgICAgIGNhc2UgdHJ1ZToKICAgICAgICAgICAgY2xhc3NOYW1lID0gImJ1bGsgc2hvd0J1bGsiOwogICAgICAgICAgICBicmVhazsKICAgICAgICBjYXNlIGZhbHNlOgogICAgICAgICAgICBjbGFzc05hbWUgPSAiYnVsayBoaWRlQnVsayI7CiAgICAgICAgICAgIGJyZWFrOwogICAgfQogICAgZm9yICh2YXIgaSA9IDA7IGkgPCByb3dzLmxlbmd0aDsgaSsrKSB7CiAgICAgICAgcm93c1tpXS5jbGFzc05hbWUgPSBjbGFzc05hbWU7CiAgICAgICAgcm93c1tpXS5jaGVja2VkID0gZmFsc2U7CiAgICB9CiAgICByZXR1cm47Cn0KZnVuY3Rpb24gc29ydFRhYmxlKGNvbHVtbikgewogICAgaWYgKGNvbHVtbiA9PSBDT0xVTU5fVE9fU09SVCkgewogICAgICAgIHJldHVybjsKICAgIH0KICAgIGNvbnN0IHRhYmxlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnRlbnRfdGFibGUiKTsKICAgIGNvbnN0IHRhYmxlSGVhZCA9IHRhYmxlLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJUUiIpWzBdOwogICAgY29uc3QgdGFibGVJdGVtcyA9IHRhYmxlSGVhZC5nZXRFbGVtZW50c0J5VGFnTmFtZSgiVEQiKTsKICAgIGNvbnN0IHNvcnRBcnIgPSBbXTsKICAgIGxldCB4VmFsdWU7CiAgICBpZiAoY29sdW1uID49IDAgJiYgQ09MVU1OX1RPX1NPUlQgPj0gMCkgewogICAgICAgIHRhYmxlSXRlbXNbQ09MVU1OX1RPX1NPUlRdLmNsYXNzTmFtZSA9ICJwb2ludGVyIjsKICAgICAgICB0YWJsZUl0ZW1zW2NvbHVtbl0uY2xhc3NOYW1lID0gInNvcnRUaGlzIjsKICAgIH0KICAgIENPTFVNTl9UT19TT1JUID0gY29sdW1uOwogICAgY29uc3Qgcm93cyA9IHRhYmxlLnJvd3M7CiAgICBpZiAocm93c1sxXSAhPSB1bmRlZmluZWQpIHsKICAgICAgICBjb25zdCB0YWJsZUhlYWRlciA9IHJvd3NbMF07CiAgICAgICAgbGV0IHggPSByb3dzWzFdLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJURCIpW2NvbHVtbl07CiAgICAgICAgZm9yIChsZXQgaSA9IDE7IGkgPCByb3dzLmxlbmd0aDsgaSsrKSB7CiAgICAgICAgICAgIHggPSByb3dzW2ldLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJURCIpW2NvbHVtbl07CiAgICAgICAgICAgIHN3aXRjaCAoeC5jaGlsZE5vZGVzWzBdLnRhZ05hbWUudG9Mb3dlckNhc2UoKSkgewogICAgICAgICAgICAgICAgY2FzZSAiaW5wdXQiOgogICAgICAgICAgICAgICAgICAgIHhWYWx1ZSA9IHguZ2V0RWxlbWVudHNCeVRhZ05hbWUoIklOUFVUIilbMF0udmFsdWUudG9Mb3dlckNhc2UoKTsKICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgIGNhc2UgInAiOgogICAgICAgICAgICAgICAgICAgIHhWYWx1ZSA9IHguZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlAiKVswXS5pbm5lclRleHQudG9Mb3dlckNhc2UoKTsKICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgc29ydEFyci5wdXNoKHsga2V5OiB4VmFsdWUgPyB4VmFsdWUgOiBpLCByb3c6IHJvd3NbaV0gfSk7CiAgICAgICAgfQogICAgICAgIHdoaWxlICh0YWJsZS5maXJzdENoaWxkKSB7CiAgICAgICAgICAgIHRhYmxlLnJlbW92ZUNoaWxkKHRhYmxlLmZpcnN0Q2hpbGQpOwogICAgICAgIH0KICAgICAgICBzb3J0QXJyLnNvcnQoKHNlMSwgc2UyKSA9PiB7CiAgICAgICAgICAgIGNvbnN0IHNlMUtleU51bSA9IHBhcnNlRmxvYXQoU3RyaW5nKHNlMS5rZXkpKTsKICAgICAgICAgICAgY29uc3Qgc2UyS2V5TnVtID0gcGFyc2VGbG9hdChTdHJpbmcoc2UyLmtleSkpOwogICAgICAgICAgICBpZiAoIWlzTmFOKHNlMUtleU51bSkgJiYgIWlzTmFOKHNlMktleU51bSkpIHsKICAgICAgICAgICAgICAgIHJldHVybiBzZTFLZXlOdW0gLSBzZTJLZXlOdW07CiAgICAgICAgICAgIH0KICAgICAgICAgICAgaWYgKHNlMS5rZXkgPCBzZTIua2V5KSB7CiAgICAgICAgICAgICAgICByZXR1cm4gLTE7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgaWYgKHNlMS5rZXkgPiBzZTIua2V5KSB7CiAgICAgICAgICAgICAgICByZXR1cm4gMTsKICAgICAgICAgICAgfQogICAgICAgICAgICByZXR1cm4gMDsKICAgICAgICB9KTsKICAgICAgICB0YWJsZS5hcHBlbmRDaGlsZCh0YWJsZUhlYWRlcik7CiAgICAgICAgc29ydEFyci5mb3JFYWNoKChzZSkgPT4gewogICAgICAgICAgICB0YWJsZS5hcHBlbmRDaGlsZChzZS5yb3cpOwogICAgICAgIH0pOwogICAgfQogICAgcmV0dXJuOwp9CmZ1bmN0aW9uIGNyZWF0ZVNlYXJjaE9iaigpIHsKICAgIFNFQVJDSF9NQVBQSU5HID0gbmV3IE9iamVjdCgpOwogICAgdmFyIGRhdGEgPSBTRVJWRVJbInhlcGciXVsiZXBnTWFwcGluZyJdOwogICAgdmFyIGNoYW5uZWxzID0gZ2V0T3duT2JqUHJvcHMoZGF0YSk7CiAgICB2YXIgY2hhbm5lbEtleXMgPSBbIngtYWN0aXZlIiwgIngtY2hhbm5lbElEIiwgIngtbmFtZSIsICJ1cGRhdGVDaGFubmVsTmFtZVJlZ2V4IiwgIl9maWxlLm0zdS5uYW1lIiwgIngtZ3JvdXAtdGl0bGUiLCAieC14bWx0di1maWxlIl07CiAgICBjaGFubmVscy5mb3JFYWNoKGlkID0+IHsKICAgICAgICBjaGFubmVsS2V5cy5mb3JFYWNoKGtleSA9PiB7CiAgICAgICAgICAgIGlmIChrZXkgPT0gIngtYWN0aXZlIikgewogICAgICAgICAgICAgICAgc3dpdGNoIChkYXRhW2lkXVtrZXldKSB7CiAgICAgICAgICAgICAgICAgICAgY2FzZSB0cnVlOgogICAgICAgICAgICAgICAgICAgICAgICBTRUFSQ0hfTUFQUElOR1tpZF0gPSAib25saW5lICI7CiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICAgIGNhc2UgZmFsc2U6CiAgICAgICAgICAgICAgICAgICAgICAgIFNFQVJDSF9NQVBQSU5HW2lkXSA9ICJvZmZsaW5lICI7CiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgaWYgKGtleSA9PSAieC14bWx0di1maWxlIikgewogICAgICAgICAgICAgICAgICAgIHZhciB4bWx0dkZpbGUgPSBnZXRWYWx1ZUZyb21Qcm92aWRlckZpbGUoZGF0YVtpZF1ba2V5XSwgInhtbHR2IiwgIm5hbWUiKTsKICAgICAgICAgICAgICAgICAgICBpZiAoeG1sdHZGaWxlICE9IHVuZGVmaW5lZCkgewogICAgICAgICAgICAgICAgICAgICAgICBTRUFSQ0hfTUFQUElOR1tpZF0gPSBTRUFSQ0hfTUFQUElOR1tpZF0gKyB4bWx0dkZpbGUgKyAiICI7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgU0VBUkNIX01BUFBJTkdbaWRdID0gU0VBUkNIX01BUFBJTkdbaWRdICsgZGF0YVtpZF1ba2V5XSArICIgIjsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIH0pOwogICAgfSk7CiAgICByZXR1cm47Cn0KZnVuY3Rpb24gc2VhcmNoSW5NYXBwaW5nKCkgewogICAgdmFyIHNlYXJjaFZhbHVlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNlYXJjaE1hcHBpbmciKS52YWx1ZTsKICAgIHZhciB0cnMgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29udGVudF90YWJsZSIpLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJUUiIpOwogICAgZm9yICh2YXIgaSA9IDE7IGkgPCB0cnMubGVuZ3RoOyArK2kpIHsKICAgICAgICB2YXIgaWQgPSB0cnNbaV0uZ2V0QXR0cmlidXRlKCJpZCIpOwogICAgICAgIHZhciBlbGVtZW50ID0gU0VBUkNIX01BUFBJTkdbaWRdOwogICAgICAgIHN3aXRjaCAoZWxlbWVudC50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKHNlYXJjaFZhbHVlLnRvTG93ZXJDYXNlKCkpKSB7CiAgICAgICAgICAgIGNhc2UgdHJ1ZToKICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5zdHlsZS5kaXNwbGF5ID0gIiI7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSBmYWxzZToKICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5zdHlsZS5kaXNwbGF5ID0gIm5vbmUiOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgfQogICAgfQogICAgcmV0dXJuOwp9CmZ1bmN0aW9uIGNhbGN1bGF0ZVdyYXBwZXJIZWlnaHQoKSB7CiAgICBpZiAoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImJveC13cmFwcGVyIikpIHsKICAgICAgICB2YXIgZWxtID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImJveC13cmFwcGVyIik7CiAgICAgICAgdmFyIGRpdnMgPSBuZXcgQXJyYXkoIm15U3RyZWFtc0JveCIsICJjbGllbnRJbmZvIiwgImNvbnRlbnQiKTsKICAgICAgICB2YXIgZWxlbWVudHNIZWlnaHQgPSAwIC0gZWxtLm9mZnNldEhlaWdodDsKICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGRpdnMubGVuZ3RoOyBpKyspIHsKICAgICAgICAgICAgZWxlbWVudHNIZWlnaHQgPSBlbGVtZW50c0hlaWdodCArIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGRpdnNbaV0pLm9mZnNldEhlaWdodDsKICAgICAgICB9CiAgICAgICAgZWxtLnN0eWxlLmhlaWdodCA9IHdpbmRvdy5pbm5lckhlaWdodCAtIGVsZW1lbnRzSGVpZ2h0ICsgInB4IjsKICAgIH0KICAgIHJldHVybjsKfQpmdW5jdGlvbiBjaGFuZ2VDaGFubmVsTnVtYmVyKGVsZW1lbnQpIHsKICAgIHZhciBkYklEID0gZWxlbWVudC5wYXJlbnROb2RlLnBhcmVudE5vZGUuaWQ7CiAgICB2YXIgbmV3TnVtYmVyID0gcGFyc2VGbG9hdChlbGVtZW50LnZhbHVlKTsKICAgIHZhciBjaGFubmVsTnVtYmVycyA9IFtdOwogICAgdmFyIGRhdGEgPSBTRVJWRVJbInhlcGciXVsiZXBnTWFwcGluZyJdOwogICAgdmFyIGNoYW5uZWxzID0gZ2V0T3duT2JqUHJvcHMoZGF0YSk7CiAgICBpZiAoaXNOYU4obmV3TnVtYmVyKSkgewogICAgICAgIGFsZXJ0KCJ7ey5hbGVydC5pbnZhbGlkQ2hhbm5lbE51bWJlcn19Iik7CiAgICAgICAgcmV0dXJuOwogICAgfQogICAgY2hhbm5lbHMuZm9yRWFjaChpZCA9PiB7CiAgICAgICAgdmFyIGNoYW5uZWxOdW1iZXIgPSBwYXJzZUZsb2F0KGRhdGFbaWRdWyJ4LWNoYW5uZWxJRCJdKTsKICAgICAgICBjaGFubmVsTnVtYmVycy5wdXNoKGNoYW5uZWxOdW1iZXIpOwogICAgfSk7CiAgICBmb3IgKHZhciBpID0gMDsgaSA8IGNoYW5uZWxOdW1iZXJzLmxlbmd0aDsgaSsrKSB7CiAgICAgICAgaWYgKGNoYW5uZWxOdW1iZXJzLmluZGV4T2YobmV3TnVtYmVyKSA9PSAtMSkgewogICAgICAgICAgICBicmVhazsKICAgICAgICB9CiAgICAgICAgaWYgKE1hdGguZmxvb3IobmV3TnVtYmVyKSA9PSBuZXdOdW1iZXIpIHsKICAgICAgICAgICAgbmV3TnVtYmVyID0gbmV3TnVtYmVyICsgMTsKICAgICAgICB9CiAgICAgICAgZWxzZSB7CiAgICAgICAgICAgIG5ld051bWJlciA9IG5ld051bWJlciArIDAuMTsKICAgICAgICAgICAgbmV3TnVtYmVyLnRvRml4ZWQoMSk7CiAgICAgICAgICAgIG5ld051bWJlciA9IE1hdGgucm91bmQobmV3TnVtYmVyICogMTApIC8gMTA7CiAgICAgICAgfQogICAgfQogICAgZGF0YVtkYklEXVsieC1jaGFubmVsSUQiXSA9IG5ld051bWJlci50b1N0cmluZygpOwogICAgZWxlbWVudC52YWx1ZSA9IG5ld051bWJlcjsKICAgIGlmIChDT0xVTU5fVE9fU09SVCA9PSAxKSB7CiAgICAgICAgQ09MVU1OX1RPX1NPUlQgPSAtMTsKICAgICAgICBzb3J0VGFibGUoMSk7CiAgICB9CiAgICByZXR1cm47Cn0KZnVuY3Rpb24gYmFja3VwKCkgewogICAgdmFyIGRhdGEgPSBuZXcgT2JqZWN0KCk7CiAgICB2YXIgY21kID0gInh0ZXZlQmFja3VwIjsKICAgIHZhciBzZXJ2ZXIgPSBuZXcgU2VydmVyKGNtZCk7CiAgICBzZXJ2ZXIucmVxdWVzdChkYXRhKTsKICAgIHJldHVybjsKfQpmdW5jdGlvbiB0b2dnbGVDaGFubmVsU3RhdHVzKGlkKSB7CiAgICB2YXIgZWxlbWVudDsKICAgIHZhciBzdGF0dXM7CiAgICBpZiAoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImFjdGl2ZSIpKSB7CiAgICAgICAgdmFyIGNoZWNrYm94ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImFjdGl2ZSIpOwogICAgICAgIHN0YXR1cyA9IChjaGVja2JveCkuY2hlY2tlZDsKICAgIH0KICAgIHZhciBpZHMgPSBnZXRBbGxTZWxlY3RlZENoYW5uZWxzKCk7CiAgICBpZiAoaWRzLmxlbmd0aCA9PSAwKSB7CiAgICAgICAgaWRzLnB1c2goaWQpOwogICAgfQogICAgaWRzLmZvckVhY2goaWQgPT4gewogICAgICAgIHZhciBjaGFubmVsID0gU0VSVkVSWyJ4ZXBnIl1bImVwZ01hcHBpbmciXVtpZF07CiAgICAgICAgY2hhbm5lbFsieC1hY3RpdmUiXSA9IHN0YXR1czsKICAgICAgICBzd2l0Y2ggKGNoYW5uZWxbIngtYWN0aXZlIl0pIHsKICAgICAgICAgICAgY2FzZSB0cnVlOgogICAgICAgICAgICAgICAgaWYgKGNoYW5uZWxbIngteG1sdHYtZmlsZSJdID09ICItIiB8fCBjaGFubmVsWyJ4LW1hcHBpbmciXSA9PSAiLSIpIHsKICAgICAgICAgICAgICAgICAgICBpZiAoQlVMS19FRElUID09IGZhbHNlKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGFsZXJ0KGNoYW5uZWxbIngtbmFtZSJdICsgIjogTWlzc2luZyBYTUxUViBmaWxlIC8gY2hhbm5lbCIpOwogICAgICAgICAgICAgICAgICAgICAgICBjaGVja2JveC5jaGVja2VkID0gZmFsc2U7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIGNoYW5uZWxbIngtYWN0aXZlIl0gPSBmYWxzZTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlIGZhbHNlOgogICAgICAgICAgICAgICAgLy8gY29kZS4uLgogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgfQogICAgICAgIGlmIChjaGFubmVsWyJ4LWFjdGl2ZSJdID09IGZhbHNlKSB7CiAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5jbGFzc05hbWUgPSAibm90QWN0aXZlRVBHIjsKICAgICAgICB9CiAgICAgICAgZWxzZSB7CiAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5jbGFzc05hbWUgPSAiYWN0aXZlRVBHIjsKICAgICAgICB9CiAgICB9KTsKfQpmdW5jdGlvbiB0b2dnbGVHcm91cFVwZGF0ZUNiKHhlcGdJZCwgdGFyZ2V0KSB7CiAgICB0YXJnZXQuY2xhc3NOYW1lID0gJ2NoYW5nZWQnOwogICAgY29uc3QgZ3JvdXBJbnB1dCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ2lucHV0W25hbWU9IngtZ3JvdXAtdGl0bGUiXScpOwogICAgY29uc3QgbWFwcGluZyA9IGdldExvY2FsRGF0YSgnbWFwcGluZycsIHhlcGdJZCk7CiAgICBpZiAodGFyZ2V0LmNoZWNrZWQpIHsKICAgICAgICBncm91cElucHV0LmRhdGFzZXQub2xkVmFsdWUgPSBncm91cElucHV0LnZhbHVlOwogICAgICAgIGdyb3VwSW5wdXQudmFsdWUgPSBtYXBwaW5nWydncm91cC10aXRsZSddOwogICAgICAgIGdyb3VwSW5wdXQuZGlzYWJsZWQgPSB0cnVlOwogICAgfQogICAgZWxzZSB7CiAgICAgICAgZ3JvdXBJbnB1dC52YWx1ZSA9IGdyb3VwSW5wdXQuZGF0YXNldC5vbGRWYWx1ZTsKICAgICAgICBncm91cElucHV0LmRpc2FibGVkID0gZmFsc2U7CiAgICB9CiAgICBncm91cElucHV0LmNsYXNzTmFtZSA9ICdjaGFuZ2VkJzsKfQpmdW5jdGlvbiByZXN0b3JlKCkgewogICAgaWYgKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd1cGxvYWQnKSkgewogICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd1cGxvYWQnKS5yZW1vdmUoKTsKICAgIH0KICAgIHZhciByZXN0b3JlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiSU5QVVQiKTsKICAgIHJlc3RvcmUuc2V0QXR0cmlidXRlKCJ0eXBlIiwgImZpbGUiKTsKICAgIHJlc3RvcmUuc2V0QXR0cmlidXRlKCJjbGFzcyIsICJub3RWaXNpYmxlIik7CiAgICByZXN0b3JlLnNldEF0dHJpYnV0ZSgibmFtZSIsICIiKTsKICAgIHJlc3RvcmUuaWQgPSAidXBsb2FkIjsKICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQocmVzdG9yZSk7CiAgICByZXN0b3JlLmNsaWNrKCk7CiAgICByZXN0b3JlLm9uY2hhbmdlID0gZnVuY3Rpb24gKCkgewogICAgICAgIHZhciBmaWxlbmFtZSA9IHJlc3RvcmUuZmlsZXNbMF0ubmFtZTsKICAgICAgICB2YXIgY2hlY2sgPSBjb25maXJtKCJGaWxlOiAiICsgZmlsZW5hbWUgKyAiXG57ey5jb25maXJtLnJlc3RvcmV9fSIpOwogICAgICAgIGlmIChjaGVjayA9PSB0cnVlKSB7CiAgICAgICAgICAgIHZhciByZWFkZXIgPSBuZXcgRmlsZVJlYWRlcigpOwogICAgICAgICAgICB2YXIgZmlsZSA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ2lucHV0W3R5cGU9ZmlsZV0nKS5maWxlc1swXTsKICAgICAgICAgICAgaWYgKGZpbGUpIHsKICAgICAgICAgICAgICAgIHJlYWRlci5yZWFkQXNEYXRhVVJMKGZpbGUpOwogICAgICAgICAgICAgICAgcmVhZGVyLm9ubG9hZCA9IGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgICAgICB2YXIgZGF0YSA9IG5ldyBPYmplY3QoKTsKICAgICAgICAgICAgICAgICAgICB2YXIgY21kID0gInh0ZXZlUmVzdG9yZSI7CiAgICAgICAgICAgICAgICAgICAgZGF0YVsiYmFzZTY0Il0gPSByZWFkZXIucmVzdWx0OwogICAgICAgICAgICAgICAgICAgIHZhciBzZXJ2ZXIgPSBuZXcgU2VydmVyKGNtZCk7CiAgICAgICAgICAgICAgICAgICAgc2VydmVyLnJlcXVlc3QoZGF0YSk7CiAgICAgICAgICAgICAgICB9OwogICAgICAgICAgICB9CiAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgYWxlcnQoIkZpbGUgY291bGQgbm90IGJlIGxvYWRlZCIpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIHJlc3RvcmUucmVtb3ZlKCk7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICB9OwogICAgcmV0dXJuOwp9CmZ1bmN0aW9uIHVwbG9hZExvZ28oKSB7CiAgICBpZiAoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3VwbG9hZCcpKSB7CiAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3VwbG9hZCcpLnJlbW92ZSgpOwogICAgfQogICAgdmFyIHVwbG9hZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIklOUFVUIik7CiAgICB1cGxvYWQuc2V0QXR0cmlidXRlKCJ0eXBlIiwgImZpbGUiKTsKICAgIHVwbG9hZC5zZXRBdHRyaWJ1dGUoImNsYXNzIiwgIm5vdFZpc2libGUiKTsKICAgIHVwbG9hZC5zZXRBdHRyaWJ1dGUoIm5hbWUiLCAiIik7CiAgICB1cGxvYWQuaWQgPSAidXBsb2FkIjsKICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQodXBsb2FkKTsKICAgIHVwbG9hZC5jbGljaygpOwogICAgdXBsb2FkLm9uYmx1ciA9IGZ1bmN0aW9uICgpIHsKICAgICAgICBhbGVydCgpOwogICAgfTsKICAgIHVwbG9hZC5vbmNoYW5nZSA9IGZ1bmN0aW9uICgpIHsKICAgICAgICB2YXIgZmlsZW5hbWUgPSB1cGxvYWQuZmlsZXNbMF0ubmFtZTsKICAgICAgICB2YXIgcmVhZGVyID0gbmV3IEZpbGVSZWFkZXIoKTsKICAgICAgICB2YXIgZmlsZSA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ2lucHV0W3R5cGU9ZmlsZV0nKS5maWxlc1swXTsKICAgICAgICBpZiAoZmlsZSkgewogICAgICAgICAgICByZWFkZXIucmVhZEFzRGF0YVVSTChmaWxlKTsKICAgICAgICAgICAgcmVhZGVyLm9ubG9hZCA9IGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgIHZhciBkYXRhID0gbmV3IE9iamVjdCgpOwogICAgICAgICAgICAgICAgdmFyIGNtZCA9ICJ1cGxvYWRMb2dvIjsKICAgICAgICAgICAgICAgIGRhdGFbImJhc2U2NCJdID0gcmVhZGVyLnJlc3VsdDsKICAgICAgICAgICAgICAgIGRhdGFbImZpbGVuYW1lIl0gPSBmaWxlLm5hbWU7CiAgICAgICAgICAgICAgICB2YXIgc2VydmVyID0gbmV3IFNlcnZlcihjbWQpOwogICAgICAgICAgICAgICAgc2VydmVyLnJlcXVlc3QoZGF0YSk7CiAgICAgICAgICAgICAgICB2YXIgdXBkYXRlTG9nbyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd1cGRhdGUtaWNvbicpOwogICAgICAgICAgICAgICAgdXBkYXRlTG9nby5jaGVja2VkID0gZmFsc2U7CiAgICAgICAgICAgICAgICB1cGRhdGVMb2dvLmNsYXNzTmFtZSA9ICJjaGFuZ2VkIjsKICAgICAgICAgICAgfTsKICAgICAgICB9CiAgICAgICAgZWxzZSB7CiAgICAgICAgICAgIGFsZXJ0KCJGaWxlIGNvdWxkIG5vdCBiZSBsb2FkZWQiKTsKICAgICAgICB9CiAgICAgICAgdXBsb2FkLnJlbW92ZSgpOwogICAgICAgIHJldHVybjsKICAgIH07Cn0KZnVuY3Rpb24gY2hlY2tVbmRvKGtleSkgewogICAgc3dpdGNoIChrZXkpIHsKICAgICAgICBjYXNlICJlcGdNYXBwaW5nIjoKICAgICAgICAgICAgaWYgKFVORE8uaGFzT3duUHJvcGVydHkoa2V5KSkgewogICAgICAgICAgICAgICAgU0VSVkVSWyJ4ZXBnIl1ba2V5XSA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkoVU5ET1trZXldKSk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICBVTkRPW2tleV0gPSBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KFNFUlZFUlsieGVwZyJdW2tleV0pKTsKICAgICAgICAgICAgfQogICAgICAgICAgICBicmVhazsKICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICBicmVhazsKICAgIH0KICAgIHJldHVybjsKfQpmdW5jdGlvbiB1cGRhdGVMb2coKSB7CiAgICB2YXIgc2VydmVyID0gbmV3IFNlcnZlcigidXBkYXRlTG9nIik7CiAgICBzZXJ2ZXIucmVxdWVzdChuZXcgT2JqZWN0KCkpOwp9Cg==" + webUI["html/js/classes_ts.js"] = "dmFyIF9fZXh0ZW5kcyA9ICh0aGlzICYmIHRoaXMuX19leHRlbmRzKSB8fCAoZnVuY3Rpb24gKCkgewogICAgdmFyIGV4dGVuZFN0YXRpY3MgPSBmdW5jdGlvbiAoZCwgYikgewogICAgICAgIGV4dGVuZFN0YXRpY3MgPSBPYmplY3Quc2V0UHJvdG90eXBlT2YgfHwKICAgICAgICAgICAgKHsgX19wcm90b19fOiBbXSB9IGluc3RhbmNlb2YgQXJyYXkgJiYgZnVuY3Rpb24gKGQsIGIpIHsgZC5fX3Byb3RvX18gPSBiOyB9KSB8fAogICAgICAgICAgICBmdW5jdGlvbiAoZCwgYikgeyBmb3IgKHZhciBwIGluIGIpIGlmIChiLmhhc093blByb3BlcnR5KHApKSBkW3BdID0gYltwXTsgfTsKICAgICAgICByZXR1cm4gZXh0ZW5kU3RhdGljcyhkLCBiKTsKICAgIH07CiAgICByZXR1cm4gZnVuY3Rpb24gKGQsIGIpIHsKICAgICAgICBleHRlbmRTdGF0aWNzKGQsIGIpOwogICAgICAgIGZ1bmN0aW9uIF9fKCkgeyB0aGlzLmNvbnN0cnVjdG9yID0gZDsgfQogICAgICAgIGQucHJvdG90eXBlID0gYiA9PT0gbnVsbCA/IE9iamVjdC5jcmVhdGUoYikgOiAoX18ucHJvdG90eXBlID0gYi5wcm90b3R5cGUsIG5ldyBfXygpKTsKICAgIH07Cn0pKCk7CnZhciBNYWluTWVudSA9IC8qKiBAY2xhc3MgKi8gKGZ1bmN0aW9uICgpIHsKICAgIGZ1bmN0aW9uIE1haW5NZW51KCkgewogICAgICAgIHRoaXMuRG9jdW1lbnRJRCA9ICJtYWluLW1lbnUiOwogICAgICAgIHRoaXMuSFRNTFRhZyA9ICJMSSI7CiAgICB9CiAgICBNYWluTWVudS5wcm90b3R5cGUuY3JlYXRlID0gZnVuY3Rpb24gKCkgewogICAgICAgIGNvbnNvbGUubG9nKHRoaXMuRG9jdW1lbnRJRCk7CiAgICB9OwogICAgcmV0dXJuIE1haW5NZW51Owp9KCkpOwp2YXIgTWFpbk1lbnVJdGVtID0gLyoqIEBjbGFzcyAqLyAoZnVuY3Rpb24gKF9zdXBlcikgewogICAgX19leHRlbmRzKE1haW5NZW51SXRlbSwgX3N1cGVyKTsKICAgIGZ1bmN0aW9uIE1haW5NZW51SXRlbSgpIHsKICAgICAgICByZXR1cm4gX3N1cGVyICE9PSBudWxsICYmIF9zdXBlci5hcHBseSh0aGlzLCBhcmd1bWVudHMpIHx8IHRoaXM7CiAgICB9CiAgICBNYWluTWVudUl0ZW0ucHJvdG90eXBlLmNyZWF0ZTIgPSBmdW5jdGlvbiAoKSB7CiAgICAgICAgdmFyIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KHRoaXMuSFRNTFRhZyk7CiAgICAgICAgZWxlbWVudC5pbm5lclRleHQgPSB0aGlzLlZhbHVlOwogICAgICAgIGNvbnNvbGUubG9nKGVsZW1lbnQpOwogICAgfTsKICAgIHJldHVybiBNYWluTWVudUl0ZW07Cn0oTWFpbk1lbnUpKTsKZnVuY3Rpb24gcGFnZVJlYWR5KCkgewogICAgdmFyIGl0ZW0gPSBuZXcgTWFpbk1lbnVJdGVtKCk7CiAgICBpdGVtLlZhbHVlID0gIlRlc3QiOwogICAgaXRlbS5jcmVhdGUyKCk7Cn0K" + webUI["html/js/configuration_ts.js"] = "Y2xhc3MgV2l6YXJkQ2F0ZWdvcnkgewogICAgY29uc3RydWN0b3IoKSB7CiAgICAgICAgdGhpcy5Eb2N1bWVudElEID0gImNvbnRlbnQiOwogICAgfQogICAgY3JlYXRlQ2F0ZWdvcnlIZWFkbGluZSh2YWx1ZSkgewogICAgICAgIHZhciBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiSDQiKTsKICAgICAgICBlbGVtZW50LmlubmVySFRNTCA9IHZhbHVlOwogICAgICAgIHJldHVybiBlbGVtZW50OwogICAgfQp9CmNsYXNzIFdpemFyZEl0ZW0gZXh0ZW5kcyBXaXphcmRDYXRlZ29yeSB7CiAgICBjb25zdHJ1Y3RvcihrZXksIGhlYWRsaW5lKSB7CiAgICAgICAgc3VwZXIoKTsKICAgICAgICB0aGlzLmhlYWRsaW5lID0gaGVhZGxpbmU7CiAgICAgICAgdGhpcy5rZXkgPSBrZXk7CiAgICB9CiAgICBjcmVhdGVXaXphcmQoKSB7CiAgICAgICAgdmFyIGhlYWRsaW5lID0gdGhpcy5jcmVhdGVDYXRlZ29yeUhlYWRsaW5lKHRoaXMuaGVhZGxpbmUpOwogICAgICAgIHZhciBrZXkgPSB0aGlzLmtleTsKICAgICAgICB2YXIgY29udGVudCA9IG5ldyBQb3B1cENvbnRlbnQoKTsKICAgICAgICB2YXIgZGVzY3JpcHRpb247CiAgICAgICAgdmFyIGRvYyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHRoaXMuRG9jdW1lbnRJRCk7CiAgICAgICAgZG9jLmlubmVySFRNTCA9ICIiOwogICAgICAgIGRvYy5hcHBlbmRDaGlsZChoZWFkbGluZSk7CiAgICAgICAgc3dpdGNoIChrZXkpIHsKICAgICAgICAgICAgY2FzZSAidHVuZXIiOgogICAgICAgICAgICAgICAgdmFyIHRleHQgPSBuZXcgQXJyYXkoKTsKICAgICAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBuZXcgQXJyYXkoKTsKICAgICAgICAgICAgICAgIGZvciAodmFyIGkgPSAxOyBpIDw9IDEwMDsgaSsrKSB7CiAgICAgICAgICAgICAgICAgICAgdGV4dC5wdXNoKGkpOwogICAgICAgICAgICAgICAgICAgIHZhbHVlcy5wdXNoKGkpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgdmFyIHNlbGVjdCA9IGNvbnRlbnQuY3JlYXRlU2VsZWN0KHRleHQsIHZhbHVlcywgIjEiLCBrZXkpOwogICAgICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgiY2xhc3MiLCAid2l6YXJkIik7CiAgICAgICAgICAgICAgICBzZWxlY3QuaWQgPSBrZXk7CiAgICAgICAgICAgICAgICBkb2MuYXBwZW5kQ2hpbGQoc2VsZWN0KTsKICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uID0gInt7LndpemFyZC50dW5lci5kZXNjcmlwdGlvbn19IjsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJlcGdTb3VyY2UiOgogICAgICAgICAgICAgICAgdmFyIHRleHQgPSBbIlBNUyIsICJYRVBHIl07CiAgICAgICAgICAgICAgICB2YXIgdmFsdWVzID0gWyJQTVMiLCAiWEVQRyJdOwogICAgICAgICAgICAgICAgdmFyIHNlbGVjdCA9IGNvbnRlbnQuY3JlYXRlU2VsZWN0KHRleHQsIHZhbHVlcywgIlhFUEciLCBrZXkpOwogICAgICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgiY2xhc3MiLCAid2l6YXJkIik7CiAgICAgICAgICAgICAgICBzZWxlY3QuaWQgPSBrZXk7CiAgICAgICAgICAgICAgICBkb2MuYXBwZW5kQ2hpbGQoc2VsZWN0KTsKICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uID0gInt7LndpemFyZC5lcGdTb3VyY2UuZGVzY3JpcHRpb259fSI7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAibTN1IjoKICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBrZXksICIiKTsKICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3sud2l6YXJkLm0zdS5wbGFjZWhvbGRlcn19Iik7CiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoImNsYXNzIiwgIndpemFyZCIpOwogICAgICAgICAgICAgICAgaW5wdXQuaWQgPSBrZXk7CiAgICAgICAgICAgICAgICBkb2MuYXBwZW5kQ2hpbGQoaW5wdXQpOwogICAgICAgICAgICAgICAgZGVzY3JpcHRpb24gPSAie3sud2l6YXJkLm0zdS5kZXNjcmlwdGlvbn19IjsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJ4bWx0diI6CiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0Iiwga2V5LCAiIik7CiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LndpemFyZC54bWx0di5wbGFjZWhvbGRlcn19Iik7CiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoImNsYXNzIiwgIndpemFyZCIpOwogICAgICAgICAgICAgICAgaW5wdXQuaWQgPSBrZXk7CiAgICAgICAgICAgICAgICBkb2MuYXBwZW5kQ2hpbGQoaW5wdXQpOwogICAgICAgICAgICAgICAgZGVzY3JpcHRpb24gPSAie3sud2l6YXJkLnhtbHR2LmRlc2NyaXB0aW9ufX0iOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICB9CiAgICAgICAgdmFyIHByZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlBSRSIpOwogICAgICAgIHByZS5pbm5lckhUTUwgPSBkZXNjcmlwdGlvbjsKICAgICAgICBkb2MuYXBwZW5kQ2hpbGQocHJlKTsKICAgIH0KfQpmdW5jdGlvbiByZWFkeUZvckNvbmZpZ3VyYXRpb24od2l6YXJkKSB7CiAgICB2YXIgc2VydmVyID0gbmV3IFNlcnZlcigiZ2V0U2VydmVyQ29uZmlnIik7CiAgICBzZXJ2ZXIucmVxdWVzdChuZXcgT2JqZWN0KCkpOwogICAgc2hvd0VsZW1lbnQoImxvYWRpbmciLCBmYWxzZSk7CiAgICBjb25maWd1cmF0aW9uV2l6YXJkW3dpemFyZF0uY3JlYXRlV2l6YXJkKCk7Cn0KZnVuY3Rpb24gc2F2ZVdpemFyZCgpIHsKICAgIHZhciBjbWQgPSAic2F2ZVdpemFyZCI7CiAgICB2YXIgZGl2ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnRlbnQiKTsKICAgIHZhciBjb25maWcgPSBkaXYuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSgid2l6YXJkIik7CiAgICB2YXIgd2l6YXJkID0gbmV3IE9iamVjdCgpOwogICAgZm9yICh2YXIgaSA9IDA7IGkgPCBjb25maWcubGVuZ3RoOyBpKyspIHsKICAgICAgICB2YXIgbmFtZTsKICAgICAgICB2YXIgdmFsdWU7CiAgICAgICAgc3dpdGNoIChjb25maWdbaV0udGFnTmFtZSkgewogICAgICAgICAgICBjYXNlICJTRUxFQ1QiOgogICAgICAgICAgICAgICAgbmFtZSA9IGNvbmZpZ1tpXS5uYW1lOwogICAgICAgICAgICAgICAgdmFsdWUgPSBjb25maWdbaV0udmFsdWU7CiAgICAgICAgICAgICAgICAvLyBJZiB0aGUgdmFsdWUgaXMgYSBudW1iZXIsIHN0b3JlIGl0IGFzIGEgbnVtYmVyCiAgICAgICAgICAgICAgICBpZiAoaXNOYU4odmFsdWUpKSB7CiAgICAgICAgICAgICAgICAgICAgd2l6YXJkW25hbWVdID0gdmFsdWU7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgICAgICB3aXphcmRbbmFtZV0gPSBwYXJzZUludCh2YWx1ZSk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAiSU5QVVQiOgogICAgICAgICAgICAgICAgc3dpdGNoIChjb25maWdbaV0udHlwZSkgewogICAgICAgICAgICAgICAgICAgIGNhc2UgInRleHQiOgogICAgICAgICAgICAgICAgICAgICAgICBuYW1lID0gY29uZmlnW2ldLm5hbWU7CiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlID0gY29uZmlnW2ldLnZhbHVlOwogICAgICAgICAgICAgICAgICAgICAgICBpZiAodmFsdWUubGVuZ3RoID09IDApIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBtc2cgPSBuYW1lLnRvVXBwZXJDYXNlKCkgKyAiOiAiICsgInt7LmFsZXJ0Lm1pc3NpbmdJbnB1dH19IjsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFsZXJ0KG1zZyk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgd2l6YXJkW25hbWVdID0gdmFsdWU7CiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICAgICAvLyBjb2RlLi4uCiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICB9CiAgICB9CiAgICB2YXIgZGF0YSA9IG5ldyBPYmplY3QoKTsKICAgIGRhdGFbIndpemFyZCJdID0gd2l6YXJkOwogICAgdmFyIHNlcnZlciA9IG5ldyBTZXJ2ZXIoY21kKTsKICAgIHNlcnZlci5yZXF1ZXN0KGRhdGEpOwp9Ci8vIFdpemFyZAp2YXIgY29uZmlndXJhdGlvbldpemFyZCA9IG5ldyBBcnJheSgpOwpjb25maWd1cmF0aW9uV2l6YXJkLnB1c2gobmV3IFdpemFyZEl0ZW0oInR1bmVyIiwgInt7LndpemFyZC50dW5lci50aXRsZX19IikpOwpjb25maWd1cmF0aW9uV2l6YXJkLnB1c2gobmV3IFdpemFyZEl0ZW0oImVwZ1NvdXJjZSIsICJ7ey53aXphcmQuZXBnU291cmNlLnRpdGxlfX0iKSk7CmNvbmZpZ3VyYXRpb25XaXphcmQucHVzaChuZXcgV2l6YXJkSXRlbSgibTN1IiwgInt7LndpemFyZC5tM3UudGl0bGV9fSIpKTsKY29uZmlndXJhdGlvbldpemFyZC5wdXNoKG5ldyBXaXphcmRJdGVtKCJ4bWx0diIsICJ7ey53aXphcmQueG1sdHYudGl0bGV9fSIpKTsK" + webUI["html/js/logs_ts.js"] = "Y2xhc3MgTG9nIHsKICAgIGNyZWF0ZUxvZyhlbnRyeSkgewogICAgICAgIHZhciBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiUFJFIik7CiAgICAgICAgZW50cnkgPSBTdHJpbmcoZW50cnkpOwogICAgICAgIGlmIChlbnRyeS5pbmRleE9mKCJXQVJOSU5HIikgIT0gLTEpIHsKICAgICAgICAgICAgZWxlbWVudC5jbGFzc05hbWUgPSAid2FybmluZ01zZyI7CiAgICAgICAgfQogICAgICAgIGlmIChlbnRyeS5pbmRleE9mKCJFUlJPUiIpICE9IC0xKSB7CiAgICAgICAgICAgIGVsZW1lbnQuY2xhc3NOYW1lID0gImVycm9yTXNnIjsKICAgICAgICB9CiAgICAgICAgaWYgKGVudHJ5LmluZGV4T2YoIkRFQlVHIikgIT0gLTEpIHsKICAgICAgICAgICAgZWxlbWVudC5jbGFzc05hbWUgPSAiZGVidWdNc2ciOwogICAgICAgIH0KICAgICAgICBlbGVtZW50LmlubmVySFRNTCA9IGVudHJ5OwogICAgICAgIHJldHVybiBlbGVtZW50OwogICAgfQp9CmZ1bmN0aW9uIHNob3dMb2dzKGJvdHRvbSkgewogICAgdmFyIGxvZyA9IG5ldyBMb2coKTsKICAgIHZhciBsb2dzID0gU0VSVkVSWyJsb2ciXVsibG9nIl07CiAgICB2YXIgZGl2ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnRlbnRfbG9nIik7CiAgICBkaXYuaW5uZXJIVE1MID0gIiI7CiAgICB2YXIga2V5cyA9IGdldE93bk9ialByb3BzKGxvZ3MpOwogICAga2V5cy5mb3JFYWNoKGxvZ0lEID0+IHsKICAgICAgICB2YXIgZW50cnkgPSBsb2cuY3JlYXRlTG9nKGxvZ3NbbG9nSURdKTsKICAgICAgICBkaXYuYXBwZW5kKGVudHJ5KTsKICAgIH0pOwogICAgc2V0VGltZW91dChmdW5jdGlvbiAoKSB7CiAgICAgICAgaWYgKGJvdHRvbSA9PSB0cnVlKSB7CiAgICAgICAgICAgIHZhciB3cmFwcGVyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImJveC13cmFwcGVyIik7CiAgICAgICAgICAgIHdyYXBwZXIuc2Nyb2xsVG9wID0gd3JhcHBlci5zY3JvbGxIZWlnaHQ7CiAgICAgICAgfQogICAgfSwgMTApOwp9CmZ1bmN0aW9uIHJlc2V0TG9ncygpIHsKICAgIHZhciBjbWQgPSAicmVzZXRMb2dzIjsKICAgIHZhciBkYXRhID0gbmV3IE9iamVjdCgpOwogICAgdmFyIHNlcnZlciA9IG5ldyBTZXJ2ZXIoY21kKTsKICAgIHNlcnZlci5yZXF1ZXN0KGRhdGEpOwp9Cg==" + webUI["html/js/menu_ts.js"] = "Y2xhc3MgTWFpbk1lbnUgewogICAgY29uc3RydWN0b3IoKSB7CiAgICAgICAgdGhpcy5Eb2N1bWVudElEID0gIm1haW4tbWVudSI7CiAgICAgICAgdGhpcy5IVE1MVGFnID0gIkxJIjsKICAgICAgICB0aGlzLkltYWdlUGF0aCA9ICJpbWcvIjsKICAgIH0KICAgIGNyZWF0ZUlNRyhzcmMpIHsKICAgICAgICBsZXQgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIklNRyIpOwogICAgICAgIGVsZW1lbnQuc2V0QXR0cmlidXRlKCJzcmMiLCB0aGlzLkltYWdlUGF0aCArIHNyYyk7CiAgICAgICAgcmV0dXJuIGVsZW1lbnQ7CiAgICB9CiAgICBjcmVhdGVWYWx1ZSh2YWx1ZSkgewogICAgICAgIGxldCBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiUCIpOwogICAgICAgIGVsZW1lbnQuaW5uZXJIVE1MID0gdmFsdWU7CiAgICAgICAgcmV0dXJuIGVsZW1lbnQ7CiAgICB9Cn0KY2xhc3MgTWFpbk1lbnVJdGVtIGV4dGVuZHMgTWFpbk1lbnUgewogICAgY29uc3RydWN0b3IobWVudUtleSwgdmFsdWUsIGltYWdlLCBoZWFkbGluZSkgewogICAgICAgIHN1cGVyKCk7CiAgICAgICAgdGhpcy5tZW51S2V5ID0gbWVudUtleTsKICAgICAgICB0aGlzLnZhbHVlID0gdmFsdWU7CiAgICAgICAgdGhpcy5pbWdTcmMgPSBpbWFnZTsKICAgICAgICB0aGlzLmhlYWRsaW5lID0gaGVhZGxpbmU7CiAgICB9CiAgICBjcmVhdGVJdGVtKCkgewogICAgICAgIGxldCBpdGVtID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiTEkiKTsKICAgICAgICBpdGVtLnNldEF0dHJpYnV0ZSgib25jbGljayIsICJqYXZhc2NyaXB0OiBvcGVuVGhpc01lbnUodGhpcykiKTsKICAgICAgICBpdGVtLnNldEF0dHJpYnV0ZSgiaWQiLCB0aGlzLmlkKTsKICAgICAgICBsZXQgaW1nID0gdGhpcy5jcmVhdGVJTUcodGhpcy5pbWdTcmMpOwogICAgICAgIGxldCB2YWx1ZSA9IHRoaXMuY3JlYXRlVmFsdWUodGhpcy52YWx1ZSk7CiAgICAgICAgaXRlbS5hcHBlbmRDaGlsZChpbWcpOwogICAgICAgIGl0ZW0uYXBwZW5kQ2hpbGQodmFsdWUpOwogICAgICAgIGxldCBkb2MgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCh0aGlzLkRvY3VtZW50SUQpOwogICAgICAgIGRvYy5hcHBlbmRDaGlsZChpdGVtKTsKICAgICAgICBzd2l0Y2ggKHRoaXMubWVudUtleSkgewogICAgICAgICAgICBjYXNlICJwbGF5bGlzdCI6CiAgICAgICAgICAgICAgICB0aGlzLnRhYmxlSGVhZGVyID0gWyJ7ey5wbGF5bGlzdC50YWJsZS5wbGF5bGlzdH19IiwgInt7LnBsYXlsaXN0LnRhYmxlLnR1bmVyfX0iLCAie3sucGxheWxpc3QudGFibGUubGFzdFVwZGF0ZX19IiwgInt7LnBsYXlsaXN0LnRhYmxlLmF2YWlsYWJpbGl0eX19ICUiLCAie3sucGxheWxpc3QudGFibGUudHlwZX19IiwgInt7LnBsYXlsaXN0LnRhYmxlLnN0cmVhbXN9fSIsICJ7ey5wbGF5bGlzdC50YWJsZS5ncm91cFRpdGxlfX0gJSIsICJ7ey5wbGF5bGlzdC50YWJsZS50dmdJRH19ICUiLCAie3sucGxheWxpc3QudGFibGUudW5pcXVlSUR9fSAlIl07CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAieG1sdHYiOgogICAgICAgICAgICAgICAgdGhpcy50YWJsZUhlYWRlciA9IFsie3sueG1sdHYudGFibGUuZ3VpZGV9fSIsICJ7ey54bWx0di50YWJsZS5sYXN0VXBkYXRlfX0iLCAie3sueG1sdHYudGFibGUuYXZhaWxhYmlsaXR5fX0gJSIsICJ7ey54bWx0di50YWJsZS5jaGFubmVsc319IiwgInt7LnhtbHR2LnRhYmxlLnByb2dyYW1zfX0iXTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJmaWx0ZXIiOgogICAgICAgICAgICAgICAgdGhpcy50YWJsZUhlYWRlciA9IFsie3suZmlsdGVyLnRhYmxlLnN0YXJ0aW5nQ2hhbm5lbH19IiwgInt7LmZpbHRlci50YWJsZS5uYW1lfX0iLCAie3suZmlsdGVyLnRhYmxlLnR5cGV9fSIsICJ7ey5maWx0ZXIudGFibGUuZmlsdGVyfX0iXTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJ1c2VycyI6CiAgICAgICAgICAgICAgICB0aGlzLnRhYmxlSGVhZGVyID0gWyJ7ey51c2Vycy50YWJsZS51c2VybmFtZX19IiwgInt7LnVzZXJzLnRhYmxlLnBhc3N3b3JkfX0iLCAie3sudXNlcnMudGFibGUud2VifX0iLCAie3sudXNlcnMudGFibGUucG1zfX0iLCAie3sudXNlcnMudGFibGUubTN1fX0iLCAie3sudXNlcnMudGFibGUueG1sfX0iLCAie3sudXNlcnMudGFibGUuYXBpfX0iXTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJtYXBwaW5nIjoKICAgICAgICAgICAgICAgIHRoaXMudGFibGVIZWFkZXIgPSBbIkJVTEsiLCAie3subWFwcGluZy50YWJsZS5jaE5vfX0iLCAie3subWFwcGluZy50YWJsZS5sb2dvfX0iLCAie3subWFwcGluZy50YWJsZS5jaGFubmVsTmFtZX19IiwgInt7Lm1hcHBpbmcudGFibGUudXBkYXRlQ2hhbm5lbE5hbWVSZWdleH19IiwgInt7Lm1hcHBpbmcudGFibGUucGxheWxpc3R9fSIsICJ7ey5tYXBwaW5nLnRhYmxlLmdyb3VwVGl0bGV9fSIsICJ7ey5tYXBwaW5nLnRhYmxlLnhtbHR2RmlsZX19IiwgInt7Lm1hcHBpbmcudGFibGUueG1sdHZJRH19IiwgInt7Lm1hcHBpbmcudGFibGUudGltZXNoaWZ0fX0iXTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgIH0KICAgIH0KfQpjbGFzcyBDb250ZW50IHsKICAgIGNvbnN0cnVjdG9yKCkgewogICAgICAgIHRoaXMuRG9jdW1lbnRJRCA9ICJjb250ZW50IjsKICAgICAgICB0aGlzLlRhYmxlSUQgPSAiY29udGVudF90YWJsZSI7CiAgICAgICAgdGhpcy5oZWFkZXJDbGFzcyA9ICJjb250ZW50X3RhYmxlX2hlYWRlciI7CiAgICAgICAgdGhpcy5pbnRlcmFjdGlvbklEID0gImNvbnRlbnQtaW50ZXJhY3Rpb24iOwogICAgfQogICAgY3JlYXRlSGVhZGxpbmUodmFsdWUpIHsKICAgICAgICBsZXQgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIkgzIik7CiAgICAgICAgZWxlbWVudC5pbm5lckhUTUwgPSB2YWx1ZTsKICAgICAgICByZXR1cm4gZWxlbWVudDsKICAgIH0KICAgIGNyZWF0ZUhSKCkgewogICAgICAgIHJldHVybiBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJIUiIpOwogICAgfQogICAgY3JlYXRlSW50ZXJhY3Rpb24oKSB7CiAgICAgICAgbGV0IGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJESVYiKTsKICAgICAgICBlbGVtZW50LnNldEF0dHJpYnV0ZSgiaWQiLCB0aGlzLmludGVyYWN0aW9uSUQpOwogICAgICAgIHJldHVybiBlbGVtZW50OwogICAgfQogICAgY3JlYXRlRElWKCkgewogICAgICAgIGxldCBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiRElWIik7CiAgICAgICAgZWxlbWVudC5pZCA9IHRoaXMuRGl2SUQ7CiAgICAgICAgcmV0dXJuIGVsZW1lbnQ7CiAgICB9CiAgICBjcmVhdGVUQUJMRSgpIHsKICAgICAgICBsZXQgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlRBQkxFIik7CiAgICAgICAgZWxlbWVudC5pZCA9IHRoaXMuVGFibGVJRDsKICAgICAgICByZXR1cm4gZWxlbWVudDsKICAgIH0KICAgIGNyZWF0ZVRhYmxlUm93KCkgewogICAgICAgIGxldCBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVFIiKTsKICAgICAgICBlbGVtZW50LmNsYXNzTmFtZSA9IHRoaXMuaGVhZGVyQ2xhc3M7CiAgICAgICAgcmV0dXJuIGVsZW1lbnQ7CiAgICB9CiAgICBjcmVhdGVUYWJsZUNvbnRlbnQobWVudUtleSkgewogICAgICAgIGxldCBkYXRhID0ge307CiAgICAgICAgbGV0IHJvd3MgPSBbXTsKICAgICAgICBsZXQgZmlsZVR5cGVzID0gW107CiAgICAgICAgc3dpdGNoIChtZW51S2V5KSB7CiAgICAgICAgICAgIGNhc2UgInBsYXlsaXN0IjoKICAgICAgICAgICAgICAgIGZpbGVUeXBlcyA9IFsibTN1IiwgImhkaHIiXTsKICAgICAgICAgICAgICAgIGZpbGVUeXBlcy5mb3JFYWNoKGZpbGVUeXBlID0+IHsKICAgICAgICAgICAgICAgICAgICBkYXRhID0gU0VSVkVSWyJzZXR0aW5ncyJdWyJmaWxlcyJdW2ZpbGVUeXBlXTsKICAgICAgICAgICAgICAgICAgICB2YXIga2V5cyA9IGdldE93bk9ialByb3BzKGRhdGEpOwogICAgICAgICAgICAgICAgICAgIGtleXMuZm9yRWFjaChrZXkgPT4gewogICAgICAgICAgICAgICAgICAgICAgICB2YXIgdHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJUUiIpOwogICAgICAgICAgICAgICAgICAgICAgICB0ci5pZCA9IGtleTsKICAgICAgICAgICAgICAgICAgICAgICAgdHIuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgiJyArIGZpbGVUeXBlICsgJyIsIHRoaXMpJyk7CiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsKICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7CiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOwogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJuYW1lIl07CiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsKICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOwogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7CiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChTRVJWRVJbInNldHRpbmdzIl1bImJ1ZmZlciJdICE9ICItIikgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsidHVuZXIiXTsKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSAiLSI7CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOwogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7CiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOwogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsKICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsibGFzdC51cGRhdGUiXTsKICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOwogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7CiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOwogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsKICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsicHJvdmlkZXIuYXZhaWxhYmlsaXR5Il07CiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsKICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOwogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7CiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bInR5cGUiXS50b1VwcGVyQ2FzZSgpOwogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7CiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsKICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7CiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOwogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJjb21wYXRpYmlsaXR5Il1bInN0cmVhbXMiXTsKICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOwogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7CiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOwogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsKICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsiY29tcGF0aWJpbGl0eSJdWyJncm91cC50aXRsZSJdOwogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7CiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsKICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7CiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOwogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJjb21wYXRpYmlsaXR5Il1bInR2Zy5pZCJdOwogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7CiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsKICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7CiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOwogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJjb21wYXRpYmlsaXR5Il1bInN0cmVhbS5pZCJdOwogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7CiAgICAgICAgICAgICAgICAgICAgICAgIHJvd3MucHVzaCh0cik7CiAgICAgICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJmaWx0ZXIiOgogICAgICAgICAgICAgICAgZGVsZXRlIFNFUlZFUlsic2V0dGluZ3MiXVsiZmlsdGVyIl1bLTFdOwogICAgICAgICAgICAgICAgZGF0YSA9IFNFUlZFUlsic2V0dGluZ3MiXVsiZmlsdGVyIl07CiAgICAgICAgICAgICAgICB2YXIga2V5cyA9IGdldE93bk9ialByb3BzKGRhdGEpOwogICAgICAgICAgICAgICAga2V5cy5mb3JFYWNoKGtleSA9PiB7CiAgICAgICAgICAgICAgICAgICAgdmFyIHRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVFIiKTsKICAgICAgICAgICAgICAgICAgICB0ci5pZCA9IGtleTsKICAgICAgICAgICAgICAgICAgICB0ci5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCInICsgZGF0YVtrZXldWyJ0eXBlIl0gKyAnIiwgdGhpcyknKTsKICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7CiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7CiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7CiAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsic3RhcnRpbmdDaGFubmVsIl07CiAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOwogICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsKICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsKICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJuYW1lIl07CiAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOwogICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsKICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsKICAgICAgICAgICAgICAgICAgICBzd2l0Y2ggKGRhdGFba2V5XVsidHlwZSJdKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgImN1c3RvbS1maWx0ZXIiOgogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9ICJ7ey5maWx0ZXIuY3VzdG9tfX0iOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgImdyb3VwLXRpdGxlIjoKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSAie3suZmlsdGVyLmdyb3VwfX0iOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOwogICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsKICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsKICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJmaWx0ZXIiXTsKICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7CiAgICAgICAgICAgICAgICAgICAgcm93cy5wdXNoKHRyKTsKICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgInhtbHR2IjoKICAgICAgICAgICAgICAgIGZpbGVUeXBlcyA9IG5ldyBBcnJheSgieG1sdHYiKTsKICAgICAgICAgICAgICAgIGZpbGVUeXBlcy5mb3JFYWNoKGZpbGVUeXBlID0+IHsKICAgICAgICAgICAgICAgICAgICBkYXRhID0gU0VSVkVSWyJzZXR0aW5ncyJdWyJmaWxlcyJdW2ZpbGVUeXBlXTsKICAgICAgICAgICAgICAgICAgICB2YXIga2V5cyA9IGdldE93bk9ialByb3BzKGRhdGEpOwogICAgICAgICAgICAgICAgICAgIGtleXMuZm9yRWFjaChrZXkgPT4gewogICAgICAgICAgICAgICAgICAgICAgICB2YXIgdHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJUUiIpOwogICAgICAgICAgICAgICAgICAgICAgICB0ci5pZCA9IGtleTsKICAgICAgICAgICAgICAgICAgICAgICAgdHIuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgiJyArIGZpbGVUeXBlICsgJyIsIHRoaXMpJyk7CiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsKICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7CiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOwogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJuYW1lIl07CiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsKICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOwogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7CiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bImxhc3QudXBkYXRlIl07CiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsKICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOwogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7CiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bInByb3ZpZGVyLmF2YWlsYWJpbGl0eSJdOwogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7CiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsKICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7CiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOwogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJjb21wYXRpYmlsaXR5Il1bInhtbHR2LmNoYW5uZWxzIl07CiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsKICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOwogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7CiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bImNvbXBhdGliaWxpdHkiXVsieG1sdHYucHJvZ3JhbXMiXTsKICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOwogICAgICAgICAgICAgICAgICAgICAgICByb3dzLnB1c2godHIpOwogICAgICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAidXNlcnMiOgogICAgICAgICAgICAgICAgZmlsZVR5cGVzID0gbmV3IEFycmF5KCJ1c2VycyIpOwogICAgICAgICAgICAgICAgZmlsZVR5cGVzLmZvckVhY2goZmlsZVR5cGUgPT4gewogICAgICAgICAgICAgICAgICAgIGRhdGEgPSBTRVJWRVJbZmlsZVR5cGVdOwogICAgICAgICAgICAgICAgICAgIHZhciBrZXlzID0gZ2V0T3duT2JqUHJvcHMoZGF0YSk7CiAgICAgICAgICAgICAgICAgICAga2V5cy5mb3JFYWNoKGtleSA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgIHZhciB0ciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlRSIik7CiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmlkID0ga2V5OwogICAgICAgICAgICAgICAgICAgICAgICB0ci5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCInICsgZmlsZVR5cGUgKyAnIiwgdGhpcyknKTsKICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOwogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7CiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bImRhdGEiXVsidXNlcm5hbWUiXTsKICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOwogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7CiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOwogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsKICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9ICIqKioqKioiOwogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7CiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsKICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7CiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOwogICAgICAgICAgICAgICAgICAgICAgICBpZiAoZGF0YVtrZXldWyJkYXRhIl1bImF1dGhlbnRpY2F0aW9uLndlYiJdID09IHRydWUpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSAi4pyTIjsKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSAiLSI7CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOwogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7CiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOwogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsKICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGRhdGFba2V5XVsiZGF0YSJdWyJhdXRoZW50aWNhdGlvbi5wbXMiXSA9PSB0cnVlKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gIuKckyI7CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gIi0iOwogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsKICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOwogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7CiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChkYXRhW2tleV1bImRhdGEiXVsiYXV0aGVudGljYXRpb24ubTN1Il0gPT0gdHJ1ZSkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9ICLinJMiOwogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9ICItIjsKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7CiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsKICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7CiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOwogICAgICAgICAgICAgICAgICAgICAgICBpZiAoZGF0YVtrZXldWyJkYXRhIl1bImF1dGhlbnRpY2F0aW9uLnhtbCJdID09IHRydWUpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSAi4pyTIjsKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSAiLSI7CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOwogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7CiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOwogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsKICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGRhdGFba2V5XVsiZGF0YSJdWyJhdXRoZW50aWNhdGlvbi5hcGkiXSA9PSB0cnVlKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gIuKckyI7CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gIi0iOwogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsKICAgICAgICAgICAgICAgICAgICAgICAgcm93cy5wdXNoKHRyKTsKICAgICAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgIm1hcHBpbmciOgogICAgICAgICAgICAgICAgQlVMS19FRElUID0gZmFsc2U7CiAgICAgICAgICAgICAgICBjcmVhdGVTZWFyY2hPYmooKTsKICAgICAgICAgICAgICAgIGNoZWNrVW5kbygiZXBnTWFwcGluZyIpOwogICAgICAgICAgICAgICAgZGF0YSA9IFNFUlZFUlsieGVwZyJdWyJlcGdNYXBwaW5nIl07CiAgICAgICAgICAgICAgICB2YXIga2V5cyA9IGdldE93bk9ialByb3BzKGRhdGEpOwogICAgICAgICAgICAgICAga2V5cy5mb3JFYWNoKGtleSA9PiB7CiAgICAgICAgICAgICAgICAgICAgdmFyIHRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVFIiKTsKICAgICAgICAgICAgICAgICAgICB0ci5pZCA9IGtleTsKICAgICAgICAgICAgICAgICAgICBzd2l0Y2ggKGRhdGFba2V5XVsieC1hY3RpdmUiXSkgewogICAgICAgICAgICAgICAgICAgICAgICBjYXNlIHRydWU6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ci5jbGFzc05hbWUgPSAiYWN0aXZlRVBHIjsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICAgICAgICBjYXNlIGZhbHNlOgogICAgICAgICAgICAgICAgICAgICAgICAgICAgdHIuY2xhc3NOYW1lID0gIm5vdEFjdGl2ZUVQRyI7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgLy8gQnVsawogICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsKICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJCVUxLIjsKICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZmFsc2U7CiAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOwogICAgICAgICAgICAgICAgICAgIC8vIENoYW5uZWwgbnVtYmVyCiAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOwogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOwogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIklOUFVUQ0hBTk5FTCI7CiAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsieC1jaGFubmVsSUQiXTsKICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7CiAgICAgICAgICAgICAgICAgICAgLy8gTG9nbwogICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsKICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJJTUciOwogICAgICAgICAgICAgICAgICAgIGNlbGwuaW1hZ2VVUkwgPSBkYXRhW2tleV1bInR2Zy1sb2dvIl07CiAgICAgICAgICAgICAgICAgICAgdmFyIHRkID0gY2VsbC5jcmVhdGVDZWxsKCk7CiAgICAgICAgICAgICAgICAgICAgdGQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgibWFwcGluZyIsIHRoaXMpJyk7CiAgICAgICAgICAgICAgICAgICAgdGQuaWQgPSBrZXk7CiAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQodGQpOwogICAgICAgICAgICAgICAgICAgIC8vIENoYW5uZWwgbmFtZQogICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsKICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsKICAgICAgICAgICAgICAgICAgICBjZWxsLmNsYXNzTmFtZSA9IGRhdGFba2V5XVsieC1jYXRlZ29yeSJdOwogICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bIngtbmFtZSJdOwogICAgICAgICAgICAgICAgICAgIHZhciB0ZCA9IGNlbGwuY3JlYXRlQ2VsbCgpOwogICAgICAgICAgICAgICAgICAgIHRkLnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoIm1hcHBpbmciLCB0aGlzKScpOwogICAgICAgICAgICAgICAgICAgIHRkLmlkID0ga2V5OwogICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKHRkKTsKICAgICAgICAgICAgICAgICAgICAvLyBVcGRhdGUgY2hhbm5lbCBuYW1lIHJlZ2V4CiAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOwogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOwogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOwogICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bInVwZGF0ZS1jaGFubmVsLW5hbWUtcmVnZXgiXTsKICAgICAgICAgICAgICAgICAgICB2YXIgdGQgPSBjZWxsLmNyZWF0ZUNlbGwoKTsKICAgICAgICAgICAgICAgICAgICB0ZC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJtYXBwaW5nIiwgdGhpcyknKTsKICAgICAgICAgICAgICAgICAgICB0ZC5pZCA9IGtleTsKICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZCh0ZCk7CiAgICAgICAgICAgICAgICAgICAgLy8gUGxheWxpc3QKICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7CiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7CiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7CiAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGdldFZhbHVlRnJvbVByb3ZpZGVyRmlsZShkYXRhW2tleV1bIl9maWxlLm0zdS5pZCJdLCAibTN1IiwgIm5hbWUiKTsKICAgICAgICAgICAgICAgICAgICB2YXIgdGQgPSBjZWxsLmNyZWF0ZUNlbGwoKTsKICAgICAgICAgICAgICAgICAgICB0ZC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJtYXBwaW5nIiwgdGhpcyknKTsKICAgICAgICAgICAgICAgICAgICB0ZC5pZCA9IGtleTsKICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZCh0ZCk7CiAgICAgICAgICAgICAgICAgICAgLy8gR3JvdXAgKGdyb3VwLXRpdGxlKQogICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsKICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsKICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJ4LWdyb3VwLXRpdGxlIl07CiAgICAgICAgICAgICAgICAgICAgdmFyIHRkID0gY2VsbC5jcmVhdGVDZWxsKCk7CiAgICAgICAgICAgICAgICAgICAgdGQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgibWFwcGluZyIsIHRoaXMpJyk7CiAgICAgICAgICAgICAgICAgICAgdGQuaWQgPSBrZXk7CiAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQodGQpOwogICAgICAgICAgICAgICAgICAgIC8vIFhNTFRWIGZpbGUKICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7CiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7CiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7CiAgICAgICAgICAgICAgICAgICAgaWYgKGRhdGFba2V5XVsieC14bWx0di1maWxlIl0gIT0gIi0iKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBnZXRWYWx1ZUZyb21Qcm92aWRlckZpbGUoZGF0YVtrZXldWyJ4LXhtbHR2LWZpbGUiXSwgInhtbHR2IiwgIm5hbWUiKTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bIngteG1sdHYtZmlsZSJdOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB2YXIgdGQgPSBjZWxsLmNyZWF0ZUNlbGwoKTsKICAgICAgICAgICAgICAgICAgICB0ZC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJtYXBwaW5nIiwgdGhpcyknKTsKICAgICAgICAgICAgICAgICAgICB0ZC5pZCA9IGtleTsKICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZCh0ZCk7CiAgICAgICAgICAgICAgICAgICAgLy8gWE1MVFYgQ2hhbm5lbAogICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsKICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsKICAgICAgICAgICAgICAgICAgICB2YXIgdmFsdWUgPSBkYXRhW2tleV1bIngtbWFwcGluZyJdOwogICAgICAgICAgICAgICAgICAgIGlmICh2YWx1ZS5sZW5ndGggPiAyMCkgewogICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IGRhdGFba2V5XVsieC1tYXBwaW5nIl0uc3Vic3RyaW5nKDAsIDIwKSArICIuLi4iOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gdmFsdWU7CiAgICAgICAgICAgICAgICAgICAgdmFyIHRkID0gY2VsbC5jcmVhdGVDZWxsKCk7CiAgICAgICAgICAgICAgICAgICAgdGQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgibWFwcGluZyIsIHRoaXMpJyk7CiAgICAgICAgICAgICAgICAgICAgdGQuaWQgPSBrZXk7CiAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQodGQpOwogICAgICAgICAgICAgICAgICAgIC8vIFRpbWVTaGlmdAogICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsKICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsKICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJ4LXRpbWVzaGlmdCJdOwogICAgICAgICAgICAgICAgICAgIHZhciB0ZCA9IGNlbGwuY3JlYXRlQ2VsbCgpOwogICAgICAgICAgICAgICAgICAgIHRkLnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoIm1hcHBpbmciLCB0aGlzKScpOwogICAgICAgICAgICAgICAgICAgIHRkLmlkID0ga2V5OwogICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKHRkKTsKICAgICAgICAgICAgICAgICAgICByb3dzLnB1c2godHIpOwogICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAic2V0dGluZ3MiOgogICAgICAgICAgICAgICAgYWxlcnQoKTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgfQogICAgICAgIHJldHVybiByb3dzOwogICAgfQp9CmNsYXNzIENlbGwgewogICAgY3JlYXRlQ2VsbCgpIHsKICAgICAgICBsZXQgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOwogICAgICAgIGlmICh0aGlzLmNoaWxkID09IHRydWUpIHsKICAgICAgICAgICAgdmFyIGVsZW1lbnQ7CiAgICAgICAgICAgIHN3aXRjaCAodGhpcy5jaGlsZFR5cGUpIHsKICAgICAgICAgICAgICAgIGNhc2UgIlAiOgogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KHRoaXMuY2hpbGRUeXBlKTsKICAgICAgICAgICAgICAgICAgICBlbGVtZW50LmlubmVySFRNTCA9IHRoaXMudmFsdWU7CiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC5jbGFzc05hbWUgPSB0aGlzLmNsYXNzTmFtZTsKICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgIGNhc2UgIklOUFVUIjoKICAgICAgICAgICAgICAgICAgICBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCh0aGlzLmNoaWxkVHlwZSk7CiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC52YWx1ZSA9IHRoaXMudmFsdWU7CiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC50eXBlID0gInRleHQiOwogICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgY2FzZSAiSU5QVVRDSEFOTkVMIjoKICAgICAgICAgICAgICAgICAgICBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiSU5QVVQiKTsKICAgICAgICAgICAgICAgICAgICBlbGVtZW50LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2c2NyaXB0OiBjaGFuZ2VDaGFubmVsTnVtYmVyKHRoaXMpIik7CiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC52YWx1ZSA9IHRoaXMudmFsdWU7CiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC50eXBlID0gInRleHQiOwogICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgY2FzZSAiQlVMSyI6CiAgICAgICAgICAgICAgICAgICAgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIklOUFVUIik7CiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC5jaGVja2VkID0gdGhpcy52YWx1ZTsKICAgICAgICAgICAgICAgICAgICBlbGVtZW50LnR5cGUgPSAiY2hlY2tib3giOwogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQuY2xhc3NOYW1lID0gImJ1bGsgaGlkZUJ1bGsiOwogICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgY2FzZSAiQlVMS19IRUFEIjoKICAgICAgICAgICAgICAgICAgICBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiSU5QVVQiKTsKICAgICAgICAgICAgICAgICAgICBlbGVtZW50LmNoZWNrZWQgPSB0aGlzLnZhbHVlOwogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQudHlwZSA9ICJjaGVja2JveCI7CiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC5jbGFzc05hbWUgPSAiYnVsayBoaWRlQnVsayI7CiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAiamF2YXNjcmlwdDogc2VsZWN0QWxsQ2hhbm5lbHMoKSIpOwogICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgY2FzZSAiSU1HIjoKICAgICAgICAgICAgICAgICAgICBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCh0aGlzLmNoaWxkVHlwZSk7CiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC5zZXRBdHRyaWJ1dGUoInNyYyIsIHRoaXMuaW1hZ2VVUkwpOwogICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLmltYWdlVVJMICE9ICIiKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGVsZW1lbnQuc2V0QXR0cmlidXRlKCJvbmVycm9yIiwgImphdmFzY3JpcHQ6IHRoaXMub25lcnJvcj1udWxsO3RoaXMuc3JjPScnIik7CiAgICAgICAgICAgICAgICAgICAgICAgIC8vb25lcnJvcj0idGhpcy5vbmVycm9yPW51bGw7dGhpcy5zcmM9J21pc3NpbmcuZ2lmJzsiCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICAgIHRkLmFwcGVuZENoaWxkKGVsZW1lbnQpOwogICAgICAgIH0KICAgICAgICBlbHNlIHsKICAgICAgICAgICAgdGQuaW5uZXJIVE1MID0gdGhpcy52YWx1ZTsKICAgICAgICB9CiAgICAgICAgaWYgKHRoaXMub25jbGljayA9PSB0cnVlKSB7CiAgICAgICAgICAgIHRkLnNldEF0dHJpYnV0ZSgib25jbGljayIsIHRoaXMub25jbGlja0Z1bmN0aW9uKTsKICAgICAgICAgICAgdGQuY2xhc3NOYW1lID0gInBvaW50ZXIiOwogICAgICAgIH0KICAgICAgICBpZiAodGhpcy50ZENsYXNzTmFtZSAhPSB1bmRlZmluZWQpIHsKICAgICAgICAgICAgdGQuY2xhc3NOYW1lID0gdGhpcy50ZENsYXNzTmFtZTsKICAgICAgICB9CiAgICAgICAgcmV0dXJuIHRkOwogICAgfQp9CmNsYXNzIFNob3dDb250ZW50IGV4dGVuZHMgQ29udGVudCB7CiAgICBjb25zdHJ1Y3RvcihtZW51SUQpIHsKICAgICAgICBzdXBlcigpOwogICAgICAgIHRoaXMubWVudUlEID0gbWVudUlEOwogICAgfQogICAgY3JlYXRlSW5wdXQodHlwZSwgbmFtZSwgdmFsdWUpIHsKICAgICAgICBsZXQgaW5wdXQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJJTlBVVCIpOwogICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgidHlwZSIsIHR5cGUpOwogICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgibmFtZSIsIG5hbWUpOwogICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgidmFsdWUiLCB2YWx1ZSk7CiAgICAgICAgcmV0dXJuIGlucHV0OwogICAgfQogICAgc2hvdygpIHsKICAgICAgICBDT0xVTU5fVE9fU09SVCA9IC0xOwogICAgICAgIC8vIERlbGV0ZSBvbGQgY29udGVudAogICAgICAgIGxldCBkb2MgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCh0aGlzLkRvY3VtZW50SUQpOwogICAgICAgIGRvYy5pbm5lckhUTUwgPSAiIjsKICAgICAgICBzaG93UHJldmlldyhmYWxzZSk7CiAgICAgICAgLy8gSGVhZGxpbmUKICAgICAgICBsZXQgaGVhZGxpbmUgPSBtZW51SXRlbXNbdGhpcy5tZW51SURdLmhlYWRsaW5lOwogICAgICAgIGxldCBtZW51S2V5ID0gbWVudUl0ZW1zW3RoaXMubWVudUlEXS5tZW51S2V5OwogICAgICAgIGxldCBoID0gdGhpcy5jcmVhdGVIZWFkbGluZShoZWFkbGluZSk7CiAgICAgICAgZG9jLmFwcGVuZENoaWxkKGgpOwogICAgICAgIGxldCBociA9IHRoaXMuY3JlYXRlSFIoKTsKICAgICAgICBkb2MuYXBwZW5kQ2hpbGQoaHIpOwogICAgICAgIC8vIEludGVyYWN0aW9uCiAgICAgICAgbGV0IGRpdiA9IHRoaXMuY3JlYXRlSW50ZXJhY3Rpb24oKTsKICAgICAgICBkb2MuYXBwZW5kQ2hpbGQoZGl2KTsKICAgICAgICBsZXQgaW50ZXJhY3Rpb24gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCh0aGlzLmludGVyYWN0aW9uSUQpOwogICAgICAgIHN3aXRjaCAobWVudUtleSkgewogICAgICAgICAgICBjYXNlICJwbGF5bGlzdCI6CiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSB0aGlzLmNyZWF0ZUlucHV0KCJidXR0b24iLCBtZW51S2V5LCAie3suYnV0dG9uLm5ld319Iik7CiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoImlkIiwgIi0iKTsKICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoInBsYXlsaXN0IiknKTsKICAgICAgICAgICAgICAgIGludGVyYWN0aW9uLmFwcGVuZENoaWxkKGlucHV0KTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJmaWx0ZXIiOgogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gdGhpcy5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgbWVudUtleSwgInt7LmJ1dHRvbi5uZXd9fSIpOwogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJpZCIsIC0xKTsKICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoImZpbHRlciIsIHRoaXMpJyk7CiAgICAgICAgICAgICAgICBpbnRlcmFjdGlvbi5hcHBlbmRDaGlsZChpbnB1dCk7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAieG1sdHYiOgogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gdGhpcy5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgbWVudUtleSwgInt7LmJ1dHRvbi5uZXd9fSIpOwogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJpZCIsICJ4bWx0diIpOwogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgieG1sdHYiKScpOwogICAgICAgICAgICAgICAgaW50ZXJhY3Rpb24uYXBwZW5kQ2hpbGQoaW5wdXQpOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgInVzZXJzIjoKICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IHRoaXMuY3JlYXRlSW5wdXQoImJ1dHRvbiIsIG1lbnVLZXksICJ7ey5idXR0b24ubmV3fX0iKTsKICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgiaWQiLCAidXNlcnMiKTsKICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoInVzZXJzIiknKTsKICAgICAgICAgICAgICAgIGludGVyYWN0aW9uLmFwcGVuZENoaWxkKGlucHV0KTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJtYXBwaW5nIjoKICAgICAgICAgICAgICAgIHNob3dFbGVtZW50KCJsb2FkaW5nIiwgdHJ1ZSk7CiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSB0aGlzLmNyZWF0ZUlucHV0KCJidXR0b24iLCBtZW51S2V5LCAie3suYnV0dG9uLnNhdmV9fSIpOwogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoIm1hcHBpbmciLCAiIiwgIiIpJyk7CiAgICAgICAgICAgICAgICBpbnRlcmFjdGlvbi5hcHBlbmRDaGlsZChpbnB1dCk7CiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSB0aGlzLmNyZWF0ZUlucHV0KCJidXR0b24iLCBtZW51S2V5LCAie3suYnV0dG9uLmJ1bGtFZGl0fX0iKTsKICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBidWxrRWRpdCgpJyk7CiAgICAgICAgICAgICAgICBpbnRlcmFjdGlvbi5hcHBlbmRDaGlsZChpbnB1dCk7CiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSB0aGlzLmNyZWF0ZUlucHV0KCJzZWFyY2giLCAic2VhcmNoIiwgIiIpOwogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJpZCIsICJzZWFyY2hNYXBwaW5nIik7CiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LmJ1dHRvbi5zZWFyY2h9fSIpOwogICAgICAgICAgICAgICAgaW5wdXQuY2xhc3NOYW1lID0gInNlYXJjaCI7CiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgJ2phdmFzY3JpcHQ6IHNlYXJjaEluTWFwcGluZygpJyk7CiAgICAgICAgICAgICAgICBpbnRlcmFjdGlvbi5hcHBlbmRDaGlsZChpbnB1dCk7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAic2V0dGluZ3MiOgogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gdGhpcy5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgbWVudUtleSwgInt7LmJ1dHRvbi5zYXZlfX0iKTsKICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBzYXZlU2V0dGluZ3MoKTsnKTsKICAgICAgICAgICAgICAgIGludGVyYWN0aW9uLmFwcGVuZENoaWxkKGlucHV0KTsKICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IHRoaXMuY3JlYXRlSW5wdXQoImJ1dHRvbiIsIG1lbnVLZXksICJ7ey5idXR0b24uYmFja3VwfX0iKTsKICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBiYWNrdXAoKTsnKTsKICAgICAgICAgICAgICAgIGludGVyYWN0aW9uLmFwcGVuZENoaWxkKGlucHV0KTsKICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IHRoaXMuY3JlYXRlSW5wdXQoImJ1dHRvbiIsIG1lbnVLZXksICJ7ey5idXR0b24ucmVzdG9yZX19Iik7CiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogcmVzdG9yZSgpOycpOwogICAgICAgICAgICAgICAgaW50ZXJhY3Rpb24uYXBwZW5kQ2hpbGQoaW5wdXQpOwogICAgICAgICAgICAgICAgdmFyIHdyYXBwZXIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJESVYiKTsKICAgICAgICAgICAgICAgIHdyYXBwZXIuc2V0QXR0cmlidXRlKCJpZCIsICJib3gtd3JhcHBlciIpOwogICAgICAgICAgICAgICAgZG9jLmFwcGVuZENoaWxkKHdyYXBwZXIpOwogICAgICAgICAgICAgICAgdGhpcy5EaXZJRCA9ICJjb250ZW50X3NldHRpbmdzIjsKICAgICAgICAgICAgICAgIHZhciBzZXR0aW5ncyA9IHRoaXMuY3JlYXRlRElWKCk7CiAgICAgICAgICAgICAgICB3cmFwcGVyLmFwcGVuZENoaWxkKHNldHRpbmdzKTsKICAgICAgICAgICAgICAgIHNob3dTZXR0aW5ncygpOwogICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICBjYXNlICJsb2ciOgogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gdGhpcy5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgbWVudUtleSwgInt7LmJ1dHRvbi5yZXNldExvZ3N9fSIpOwogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IHJlc2V0TG9ncygpOycpOwogICAgICAgICAgICAgICAgaW50ZXJhY3Rpb24uYXBwZW5kQ2hpbGQoaW5wdXQpOwogICAgICAgICAgICAgICAgdmFyIHdyYXBwZXIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJESVYiKTsKICAgICAgICAgICAgICAgIHdyYXBwZXIuc2V0QXR0cmlidXRlKCJpZCIsICJib3gtd3JhcHBlciIpOwogICAgICAgICAgICAgICAgZG9jLmFwcGVuZENoaWxkKHdyYXBwZXIpOwogICAgICAgICAgICAgICAgdGhpcy5EaXZJRCA9ICJjb250ZW50X2xvZyI7CiAgICAgICAgICAgICAgICB2YXIgbG9ncyA9IHRoaXMuY3JlYXRlRElWKCk7CiAgICAgICAgICAgICAgICB3cmFwcGVyLmFwcGVuZENoaWxkKGxvZ3MpOwogICAgICAgICAgICAgICAgc2hvd0xvZ3ModHJ1ZSk7CiAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgIGNhc2UgImxvZ291dCI6CiAgICAgICAgICAgICAgICBsb2NhdGlvbi5yZWxvYWQoKTsKICAgICAgICAgICAgICAgIGRvY3VtZW50LmNvb2tpZSA9ICJUb2tlbj0gOyBleHBpcmVzID0gVGh1LCAwMSBKYW4gMTk3MCAwMDowMDowMCBHTVQiOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICB9CiAgICAgICAgLy8gQ3JlYXRlIHRhYmxlIChpZiBuZWVkZWQpCiAgICAgICAgdmFyIHRhYmxlSGVhZGVyID0gbWVudUl0ZW1zW3RoaXMubWVudUlEXS50YWJsZUhlYWRlcjsKICAgICAgICBpZiAodGFibGVIZWFkZXIubGVuZ3RoID4gMCkgewogICAgICAgICAgICB2YXIgd3JhcHBlciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIkRJViIpOwogICAgICAgICAgICBkb2MuYXBwZW5kQ2hpbGQod3JhcHBlcik7CiAgICAgICAgICAgIHdyYXBwZXIuc2V0QXR0cmlidXRlKCJpZCIsICJib3gtd3JhcHBlciIpOwogICAgICAgICAgICB2YXIgdGFibGUgPSB0aGlzLmNyZWF0ZVRBQkxFKCk7CiAgICAgICAgICAgIHdyYXBwZXIuYXBwZW5kQ2hpbGQodGFibGUpOwogICAgICAgICAgICB2YXIgaGVhZGVyID0gdGhpcy5jcmVhdGVUYWJsZVJvdygpOwogICAgICAgICAgICB0YWJsZS5hcHBlbmRDaGlsZChoZWFkZXIpOwogICAgICAgICAgICAvLyBUYWJsZSBoZWFkZXIKICAgICAgICAgICAgdGFibGVIZWFkZXIuZm9yRWFjaChlbGVtZW50ID0+IHsKICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsKICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOwogICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7CiAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZWxlbWVudDsKICAgICAgICAgICAgICAgIGlmIChlbGVtZW50ID09ICJCVUxLIikgewogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIkJVTEtfSEVBRCI7CiAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGZhbHNlOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgaWYgKG1lbnVLZXkgPT0gIm1hcHBpbmciKSB7CiAgICAgICAgICAgICAgICAgICAgaWYgKGVsZW1lbnQgPT0gInt7Lm1hcHBpbmcudGFibGUuY2hOb319IikgewogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLm9uY2xpY2sgPSB0cnVlOwogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLm9uY2xpY2tGdW5jdGlvbiA9ICJqYXZhc2NyaXB0OiBzb3J0VGFibGUoMSk7IjsKICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC50ZENsYXNzTmFtZSA9ICJzb3J0VGhpcyI7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIGlmIChlbGVtZW50ID09ICJ7ey5tYXBwaW5nLnRhYmxlLmNoYW5uZWxOYW1lfX0iKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwub25jbGljayA9IHRydWU7CiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwub25jbGlja0Z1bmN0aW9uID0gImphdmFzY3JpcHQ6IHNvcnRUYWJsZSgzKTsiOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBpZiAoZWxlbWVudCA9PSAie3subWFwcGluZy50YWJsZS51cGRhdGVDaGFubmVsTmFtZVJlZ2V4fX0iKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwub25jbGljayA9IHRydWU7CiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwub25jbGlja0Z1bmN0aW9uID0gImphdmFzY3JpcHQ6IHNvcnRUYWJsZSg0KTsiOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBpZiAoZWxlbWVudCA9PSAie3subWFwcGluZy50YWJsZS5wbGF5bGlzdH19IikgewogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLm9uY2xpY2sgPSB0cnVlOwogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLm9uY2xpY2tGdW5jdGlvbiA9ICJqYXZhc2NyaXB0OiBzb3J0VGFibGUoNSk7IjsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgaWYgKGVsZW1lbnQgPT0gInt7Lm1hcHBpbmcudGFibGUuZ3JvdXBUaXRsZX19IikgewogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLm9uY2xpY2sgPSB0cnVlOwogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLm9uY2xpY2tGdW5jdGlvbiA9ICJqYXZhc2NyaXB0OiBzb3J0VGFibGUoNik7IjsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgaWYgKGVsZW1lbnQgPT0gInt7Lm1hcHBpbmcudGFibGUudGltZXNoaWZ0fX0iKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwub25jbGljayA9IHRydWU7CiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwub25jbGlja0Z1bmN0aW9uID0gImphdmFzY3JpcHQ6IHNvcnRUYWJsZSg5KTsiOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGlmIChtZW51S2V5ID09ICJmaWx0ZXIiKSB7CiAgICAgICAgICAgICAgICAgICAgaWYgKGVsZW1lbnQgPT0gInt7LmZpbHRlci50YWJsZS5zdGFydGluZ0NoYW5uZWx9fSIpIHsKICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5vbmNsaWNrID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5vbmNsaWNrRnVuY3Rpb24gPSAiamF2YXNjcmlwdDogc29ydFRhYmxlKDApOyI7CiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudGRDbGFzc05hbWUgPSAic29ydFRoaXMiOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBpZiAoZWxlbWVudCA9PSAie3suZmlsdGVyLnRhYmxlLm5hbWV9fSIpIHsKICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5vbmNsaWNrID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5vbmNsaWNrRnVuY3Rpb24gPSAiamF2YXNjcmlwdDogc29ydFRhYmxlKDEpOyI7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIGlmIChlbGVtZW50ID09ICJ7ey5maWx0ZXIudGFibGUudHlwZX19IikgewogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLm9uY2xpY2sgPSB0cnVlOwogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLm9uY2xpY2tGdW5jdGlvbiA9ICJqYXZhc2NyaXB0OiBzb3J0VGFibGUoMik7IjsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgaWYgKGVsZW1lbnQgPT0gInt7LmZpbHRlci50YWJsZS5maWx0ZXJ9fSIpIHsKICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5vbmNsaWNrID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5vbmNsaWNrRnVuY3Rpb24gPSAiamF2YXNjcmlwdDogc29ydFRhYmxlKDMpOyI7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgaGVhZGVyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsKICAgICAgICAgICAgfSk7CiAgICAgICAgICAgIHRhYmxlLmFwcGVuZENoaWxkKGhlYWRlcik7CiAgICAgICAgICAgIC8vIENvbnRlbnQgb2YgdGhlIHRhYmxlCiAgICAgICAgICAgIHZhciByb3dzID0gdGhpcy5jcmVhdGVUYWJsZUNvbnRlbnQobWVudUtleSk7CiAgICAgICAgICAgIHJvd3MuZm9yRWFjaCh0ciA9PiB7CiAgICAgICAgICAgICAgICB0YWJsZS5hcHBlbmRDaGlsZCh0cik7CiAgICAgICAgICAgIH0pOwogICAgICAgIH0KICAgICAgICBzd2l0Y2ggKG1lbnVLZXkpIHsKICAgICAgICAgICAgY2FzZSAibWFwcGluZyI6CiAgICAgICAgICAgICAgICBzb3J0VGFibGUoMSk7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAiZmlsdGVyIjoKICAgICAgICAgICAgICAgIHNob3dQcmV2aWV3KHRydWUpOwogICAgICAgICAgICAgICAgc29ydFRhYmxlKDApOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICAgICBDT0xVTU5fVE9fU09SVCA9IC0xOwogICAgICAgICAgICAgICAgc29ydFRhYmxlKDApOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgfQogICAgICAgIHNob3dFbGVtZW50KCJsb2FkaW5nIiwgZmFsc2UpOwogICAgfQp9CmZ1bmN0aW9uIFBhZ2VSZWFkeSgpIHsKICAgIGxldCBzZXJ2ZXIgPSBuZXcgU2VydmVyKCJnZXRTZXJ2ZXJDb25maWciKTsKICAgIHNlcnZlci5yZXF1ZXN0KHt9KTsKICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJyZXNpemUiLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgY2FsY3VsYXRlV3JhcHBlckhlaWdodCgpOwogICAgfSwgdHJ1ZSk7CiAgICBzZXRJbnRlcnZhbChmdW5jdGlvbiAoKSB7CiAgICAgICAgdXBkYXRlTG9nKCk7CiAgICB9LCAxMDAwMCk7CiAgICByZXR1cm47Cn0KZnVuY3Rpb24gY3JlYXRlTGF5b3V0KCkgewogICAgLy8gQ2xpZW50IEluZm8KICAgIGxldCBvYmogPSBTRVJWRVJbImNsaWVudEluZm8iXTsKICAgIGxldCBrZXlzID0gZ2V0T3duT2JqUHJvcHMob2JqKTsKICAgIGZvciAodmFyIGkgPSAwOyBpIDwga2V5cy5sZW5ndGg7IGkrKykgewogICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGtleXNbaV0pLmlubmVySFRNTCA9IG9ialtrZXlzW2ldXTsKICAgICAgICBpZiAoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoa2V5c1tpXSkpIHsKICAgICAgICAgICAgaWYgKGxvY2F0aW9uLnByb3RvY29sID09PSAnaHR0cHM6JykgewogICAgICAgICAgICAgICAgaWYgKGtleXNbaV0gPT09ICJ4ZXBnLXVybCIgfHwga2V5c1tpXSA9PT0gIm0zdS11cmwiIHx8IGtleXNbaV0gPT09ICJEVlIiKSB7CiAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoa2V5c1tpXSkuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCBmdW5jdGlvbiAoZXZlbnQpIHsKICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdGFyZ2V0ID0gZXZlbnQudGFyZ2V0OwogICAgICAgICAgICAgICAgICAgICAgICBuYXZpZ2F0b3IuY2xpcGJvYXJkLndyaXRlVGV4dCh0YXJnZXQuaW5uZXJUZXh0LnNwbGl0KCIgIilbMF0pLnRoZW4oKCkgPT4geyB9KTsKICAgICAgICAgICAgICAgICAgICB9LCBmYWxzZSk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CiAgICBpZiAoIWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJtYWluLW1lbnUiKSkgewogICAgICAgIHJldHVybjsKICAgIH0KICAgIC8vIENyZWF0ZSBtZW51CiAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibWFpbi1tZW51IikuaW5uZXJIVE1MID0gIiI7CiAgICBmb3IgKGxldCBpID0gMDsgaSA8IG1lbnVJdGVtcy5sZW5ndGg7IGkrKykgewogICAgICAgIG1lbnVJdGVtc1tpXS5pZCA9IGk7CiAgICAgICAgc3dpdGNoIChtZW51SXRlbXNbaV1bIm1lbnVLZXkiXSkgewogICAgICAgICAgICBjYXNlICJ1c2VycyI6CiAgICAgICAgICAgIGNhc2UgImxvZ291dCI6CiAgICAgICAgICAgICAgICBpZiAoU0VSVkVSWyJzZXR0aW5ncyJdWyJhdXRoZW50aWNhdGlvbi53ZWIiXSA9PSB0cnVlKSB7CiAgICAgICAgICAgICAgICAgICAgbWVudUl0ZW1zW2ldLmNyZWF0ZUl0ZW0oKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJtYXBwaW5nIjoKICAgICAgICAgICAgY2FzZSAieG1sdHYiOgogICAgICAgICAgICAgICAgaWYgKFNFUlZFUlsiY2xpZW50SW5mbyJdWyJlcGdTb3VyY2UiXSA9PSAiWEVQRyIpIHsKICAgICAgICAgICAgICAgICAgICBtZW51SXRlbXNbaV0uY3JlYXRlSXRlbSgpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICAgICBtZW51SXRlbXNbaV0uY3JlYXRlSXRlbSgpOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgfQogICAgfQogICAgcmV0dXJuOwp9CmZ1bmN0aW9uIG9wZW5UaGlzTWVudShlbGVtZW50KSB7CiAgICBsZXQgaWQgPSBlbGVtZW50LmlkOwogICAgbGV0IGNvbnRlbnQgPSBuZXcgU2hvd0NvbnRlbnQoaWQpOwogICAgY29udGVudC5zaG93KCk7CiAgICBjYWxjdWxhdGVXcmFwcGVySGVpZ2h0KCk7CiAgICByZXR1cm47Cn0KY2xhc3MgUG9wdXBXaW5kb3cgewogICAgY29uc3RydWN0b3IoKSB7CiAgICAgICAgdGhpcy5Eb2N1bWVudElEID0gInBvcHVwLWN1c3RvbSI7CiAgICAgICAgdGhpcy5JbnRlcmFjdGlvbklEID0gImludGVyYWN0aW9uIjsKICAgICAgICB0aGlzLmRvYyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHRoaXMuRG9jdW1lbnRJRCk7CiAgICB9CiAgICBjcmVhdGVUaXRsZSh0aXRsZSkgewogICAgICAgIGxldCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7CiAgICAgICAgdGQuY2xhc3NOYW1lID0gImxlZnQiOwogICAgICAgIHRkLmlubmVySFRNTCA9IHRpdGxlICsgIjoiOwogICAgICAgIHJldHVybiB0ZDsKICAgIH0KICAgIGNyZWF0ZUNvbnRlbnQoZWxlbWVudCkgewogICAgICAgIGxldCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7CiAgICAgICAgdGQuYXBwZW5kQ2hpbGQoZWxlbWVudCk7CiAgICAgICAgcmV0dXJuIHRkOwogICAgfQogICAgY3JlYXRlSW50ZXJhY3Rpb24oKSB7CiAgICAgICAgbGV0IGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOwogICAgICAgIGRpdi5zZXRBdHRyaWJ1dGUoImlkIiwgInBvcHVwLWludGVyYWN0aW9uIik7CiAgICAgICAgZGl2LmNsYXNzTmFtZSA9ICJpbnRlcmFjdGlvbiI7CiAgICAgICAgdGhpcy5kb2MuYXBwZW5kQ2hpbGQoZGl2KTsKICAgIH0KfQpjbGFzcyBQb3B1cENvbnRlbnQgZXh0ZW5kcyBQb3B1cFdpbmRvdyB7CiAgICBjb25zdHJ1Y3RvcigpIHsKICAgICAgICBzdXBlciguLi5hcmd1bWVudHMpOwogICAgICAgIHRoaXMudGFibGUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJUQUJMRSIpOwogICAgfQogICAgY3JlYXRlSGVhZGxpbmUoaGVhZGxpbmUpIHsKICAgICAgICB0aGlzLmRvYy5pbm5lckhUTUwgPSAiIjsKICAgICAgICB2YXIgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIkgzIik7CiAgICAgICAgZWxlbWVudC5pbm5lckhUTUwgPSBoZWFkbGluZS50b1VwcGVyQ2FzZSgpOwogICAgICAgIHRoaXMuZG9jLmFwcGVuZENoaWxkKGVsZW1lbnQpOwogICAgICAgIC8vIENyZWF0ZSB0YWJsZQogICAgICAgIHRoaXMudGFibGUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJUQUJMRSIpOwogICAgICAgIHRoaXMuZG9jLmFwcGVuZENoaWxkKHRoaXMudGFibGUpOwogICAgfQogICAgYXBwZW5kUm93KHRpdGxlLCBlbGVtZW50KSB7CiAgICAgICAgbGV0IHRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVFIiKTsKICAgICAgICAvLyBUaXRsZQogICAgICAgIGlmICh0aXRsZS5sZW5ndGggIT0gMCkgewogICAgICAgICAgICB0ci5hcHBlbmRDaGlsZCh0aGlzLmNyZWF0ZVRpdGxlKHRpdGxlKSk7CiAgICAgICAgfQogICAgICAgIC8vIENvbnRlbnQKICAgICAgICB0ci5hcHBlbmRDaGlsZCh0aGlzLmNyZWF0ZUNvbnRlbnQoZWxlbWVudCkpOwogICAgICAgIHRoaXMudGFibGUuYXBwZW5kQ2hpbGQodHIpOwogICAgfQogICAgY3JlYXRlSW5wdXQodHlwZSwgbmFtZSwgdmFsdWUpIHsKICAgICAgICBsZXQgaW5wdXQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJJTlBVVCIpOwogICAgICAgIGlmICh2YWx1ZSA9PSB1bmRlZmluZWQpIHsKICAgICAgICAgICAgdmFsdWUgPSAiIjsKICAgICAgICB9CiAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJ0eXBlIiwgdHlwZSk7CiAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJuYW1lIiwgbmFtZSk7CiAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJ2YWx1ZSIsIHZhbHVlKTsKICAgICAgICByZXR1cm4gaW5wdXQ7CiAgICB9CiAgICBjcmVhdGVDaGVja2JveChuYW1lKSB7CiAgICAgICAgbGV0IGlucHV0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiSU5QVVQiKTsKICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInR5cGUiLCAiY2hlY2tib3giKTsKICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm5hbWUiLCBuYW1lKTsKICAgICAgICByZXR1cm4gaW5wdXQ7CiAgICB9CiAgICAvLyBDcmVhdGVzIGEgc2VsZWN0aW9uIG9mIG11bHRpcGxlIG9wdGlvbnMgdmFsdWVzIHdpdGggdGV4dCBkZXNjcmlwdGlvbnMKICAgIGNyZWF0ZVNlbGVjdCh0ZXh0LCB2YWx1ZXMsIHNldCwgZGJLZXkpIHsKICAgICAgICBsZXQgc2VsZWN0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiU0VMRUNUIik7CiAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgibmFtZSIsIGRiS2V5KTsKICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRleHQubGVuZ3RoOyBpKyspIHsKICAgICAgICAgICAgbGV0IG9wdGlvbiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIk9QVElPTiIpOwogICAgICAgICAgICBvcHRpb24uc2V0QXR0cmlidXRlKCJ2YWx1ZSIsIHZhbHVlc1tpXSk7CiAgICAgICAgICAgIG9wdGlvbi5pbm5lclRleHQgPSB0ZXh0W2ldOwogICAgICAgICAgICBzZWxlY3QuYXBwZW5kQ2hpbGQob3B0aW9uKTsKICAgICAgICB9CiAgICAgICAgaWYgKHNldCAhPSAiIikgewogICAgICAgICAgICBzZWxlY3QudmFsdWUgPSBzZXQ7CiAgICAgICAgfQogICAgICAgIGlmIChzZXQgPT0gdW5kZWZpbmVkKSB7CiAgICAgICAgICAgIHNlbGVjdC52YWx1ZSA9IHZhbHVlc1swXTsKICAgICAgICB9CiAgICAgICAgcmV0dXJuIHNlbGVjdDsKICAgIH0KICAgIHNlbGVjdE9wdGlvbihzZWxlY3QsIHZhbHVlKSB7CiAgICAgICAgLy9zZWxlY3Quc2VsZWN0ZWRPcHRpb25zID0gdmFsdWUKICAgICAgICBsZXQgcyA9IHNlbGVjdDsKICAgICAgICBzLm9wdGlvbnNbcy5zZWxlY3RlZEluZGV4XS52YWx1ZSA9IHZhbHVlOwogICAgICAgIHJldHVybiBzZWxlY3Q7CiAgICB9CiAgICBkZXNjcmlwdGlvbih2YWx1ZSkgewogICAgICAgIGxldCB0ciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlRSIik7CiAgICAgICAgbGV0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsKICAgICAgICBsZXQgc3BhbiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlBSRSIpOwogICAgICAgIHNwYW4uaW5uZXJIVE1MID0gdmFsdWU7CiAgICAgICAgdHIuYXBwZW5kQ2hpbGQodGQpOwogICAgICAgIHRyLmFwcGVuZENoaWxkKHRoaXMuY3JlYXRlQ29udGVudChzcGFuKSk7CiAgICAgICAgdGhpcy50YWJsZS5hcHBlbmRDaGlsZCh0cik7CiAgICB9CiAgICAvLyBJbnRlcmFjdGlvbgogICAgYWRkSW50ZXJhY3Rpb24oZWxlbWVudCkgewogICAgICAgIGxldCBpbnRlcmFjdGlvbiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJwb3B1cC1pbnRlcmFjdGlvbiIpOwogICAgICAgIGludGVyYWN0aW9uLmFwcGVuZENoaWxkKGVsZW1lbnQpOwogICAgfQp9CmZ1bmN0aW9uIG9wZW5Qb3BVcChkYXRhVHlwZSwgZWxlbWVudCkgewogICAgbGV0IGRhdGEgPSB7fTsKICAgIGxldCBpZDsKICAgIHN3aXRjaCAoZWxlbWVudCkgewogICAgICAgIGNhc2UgdW5kZWZpbmVkOgogICAgICAgICAgICBzd2l0Y2ggKGRhdGFUeXBlKSB7CiAgICAgICAgICAgICAgICBjYXNlICJncm91cC10aXRsZSI6CiAgICAgICAgICAgICAgICAgICAgaWYgKGlkID09IHVuZGVmaW5lZCkgewogICAgICAgICAgICAgICAgICAgICAgICBpZCA9IC0xOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBkYXRhID0gZ2V0TG9jYWxEYXRhKCJmaWx0ZXIiLCBpZCk7CiAgICAgICAgICAgICAgICAgICAgZGF0YVsidHlwZSJdID0gImdyb3VwLXRpdGxlIjsKICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgIGNhc2UgImN1c3RvbS1maWx0ZXIiOgogICAgICAgICAgICAgICAgICAgIGlmIChpZCA9PSB1bmRlZmluZWQpIHsKICAgICAgICAgICAgICAgICAgICAgICAgaWQgPSAtMTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgZGF0YSA9IGdldExvY2FsRGF0YSgiZmlsdGVyIiwgaWQpOwogICAgICAgICAgICAgICAgICAgIGRhdGFbInR5cGUiXSA9ICJjdXN0b20tZmlsdGVyIjsKICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICAgICAgICAgZGF0YVsiaWQucHJvdmlkZXIiXSA9ICItIjsKICAgICAgICAgICAgICAgICAgICBkYXRhWyJ0eXBlIl0gPSBkYXRhVHlwZTsKICAgICAgICAgICAgICAgICAgICBpZCA9ICItIjsKICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgfQogICAgICAgICAgICBicmVhazsKICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICBpZCA9IGVsZW1lbnQuaWQ7CiAgICAgICAgICAgIGRhdGEgPSBnZXRMb2NhbERhdGEoZGF0YVR5cGUsIGlkKTsKICAgICAgICAgICAgYnJlYWs7CiAgICB9CiAgICBsZXQgY29udGVudCA9IG5ldyBQb3B1cENvbnRlbnQoKTsKICAgIHN3aXRjaCAoZGF0YVR5cGUpIHsKICAgICAgICBjYXNlICJwbGF5bGlzdCI6CiAgICAgICAgICAgIGNvbnRlbnQuY3JlYXRlSGVhZGxpbmUoInt7LnBsYXlsaXN0LnBsYXlsaXN0VHlwZS50aXRsZX19Iik7CiAgICAgICAgICAgIC8vIFR5cGUKICAgICAgICAgICAgdmFyIHRleHQgPSBbIk0zVSIsICJIREhvbWVSdW4iXTsKICAgICAgICAgICAgdmFyIHZhbHVlcyA9IFsiamF2YXNjcmlwdDogb3BlblBvcFVwKCdtM3UnKSIsICJqYXZhc2NyaXB0OiBvcGVuUG9wVXAoJ2hkaHInKSJdOwogICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCAiIiwgInR5cGUiKTsKICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgiaWQiLCAidHlwZSIpOwogICAgICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICdqYXZhc2NyaXB0OiBjaGFuZ2VCdXR0b25BY3Rpb24odGhpcywgIm5leHQiLCAib25jbGljayIpJyk7IC8vIGNoYW5nZUJ1dHRvbkFjdGlvbgogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sucGxheWxpc3QudHlwZS50aXRsZX19Iiwgc2VsZWN0KTsKICAgICAgICAgICAgLy8gSW50ZXJhY3Rpb24KICAgICAgICAgICAgY29udGVudC5jcmVhdGVJbnRlcmFjdGlvbigpOwogICAgICAgICAgICAvLyBBYm9ydAogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAiY2FuY2VsIiwgInt7LmJ1dHRvbi5jYW5jZWx9fSIpOwogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogc2hvd0VsZW1lbnQoInBvcHVwIiwgZmFsc2UpOycpOwogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsKICAgICAgICAgICAgLy8gTmV4dAogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAibmV4dCIsICJ7ey5idXR0b24ubmV4dH19Iik7CiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoIm0zdSIpJyk7CiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgiaWQiLCAnbmV4dCcpOwogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgY2FzZSAibTN1IjoKICAgICAgICAgICAgY29udGVudC5jcmVhdGVIZWFkbGluZShkYXRhVHlwZSk7CiAgICAgICAgICAgIC8vIE5hbWUKICAgICAgICAgICAgdmFyIGRiS2V5ID0gIm5hbWUiOwogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsKICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5wbGF5bGlzdC5uYW1lLnBsYWNlaG9sZGVyfX0iKTsKICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnBsYXlsaXN0Lm5hbWUudGl0bGV9fSIsIGlucHV0KTsKICAgICAgICAgICAgLy8gRGVzY3JpcHRpb24KICAgICAgICAgICAgdmFyIGRiS2V5ID0gImRlc2NyaXB0aW9uIjsKICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7CiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3sucGxheWxpc3QuZGVzY3JpcHRpb24ucGxhY2Vob2xkZXJ9fSIpOwogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sucGxheWxpc3QuZGVzY3JpcHRpb24udGl0bGV9fSIsIGlucHV0KTsKICAgICAgICAgICAgLy8gVVJMCiAgICAgICAgICAgIHZhciBkYktleSA9ICJmaWxlLnNvdXJjZSI7CiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOwogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnBsYXlsaXN0LmZpbGVNM1UucGxhY2Vob2xkZXJ9fSIpOwogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sucGxheWxpc3QuZmlsZU0zVS50aXRsZX19IiwgaW5wdXQpOwogICAgICAgICAgICAvLyBUdW5lcgogICAgICAgICAgICBpZiAoU0VSVkVSWyJzZXR0aW5ncyJdWyJidWZmZXIiXSAhPSAiLSIpIHsKICAgICAgICAgICAgICAgIHZhciB0ZXh0ID0gW107CiAgICAgICAgICAgICAgICB2YXIgdmFsdWVzID0gW107CiAgICAgICAgICAgICAgICBmb3IgKHZhciBpID0gMTsgaSA8PSAxMDA7IGkrKykgewogICAgICAgICAgICAgICAgICAgIHRleHQucHVzaChpLnRvU3RyaW5nKCkpOwogICAgICAgICAgICAgICAgICAgIHZhbHVlcy5wdXNoKGkudG9TdHJpbmcoKSk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB2YXIgZGJLZXkgPSAidHVuZXIiOwogICAgICAgICAgICAgICAgdmFyIHNlbGVjdCA9IGNvbnRlbnQuY3JlYXRlU2VsZWN0KHRleHQsIHZhbHVlcywgZGF0YVtkYktleV0sIGRiS2V5KTsKICAgICAgICAgICAgICAgIHNlbGVjdC5zZXRBdHRyaWJ1dGUoIm9uZm9jdXMiLCAiamF2YXNjcmlwdDogcmV0dXJuOyIpOwogICAgICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnBsYXlsaXN0LnR1bmVyLnRpdGxlfX0iLCBzZWxlY3QpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgdmFyIGRiS2V5ID0gInR1bmVyIjsKICAgICAgICAgICAgICAgIGlmIChkYXRhW2RiS2V5XSA9PSB1bmRlZmluZWQpIHsKICAgICAgICAgICAgICAgICAgICBkYXRhW2RiS2V5XSA9IDE7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsKICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicmVhZG9ubHkiLCAidHJ1ZSIpOwogICAgICAgICAgICAgICAgaW5wdXQuY2xhc3NOYW1lID0gIm5vdEF2YWlsYWJsZSI7CiAgICAgICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sucGxheWxpc3QudHVuZXIudGl0bGV9fSIsIGlucHV0KTsKICAgICAgICAgICAgfQogICAgICAgICAgICBjb250ZW50LmRlc2NyaXB0aW9uKCJ7ey5wbGF5bGlzdC50dW5lci5kZXNjcmlwdGlvbn19Iik7CiAgICAgICAgICAgIC8vIEludGVyYXRpb24KICAgICAgICAgICAgY29udGVudC5jcmVhdGVJbnRlcmFjdGlvbigpOwogICAgICAgICAgICAvLyBEZWxldGUKICAgICAgICAgICAgaWYgKGRhdGFbImlkLnByb3ZpZGVyIl0gIT0gIi0iKSB7CiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAiZGVsZXRlIiwgInt7LmJ1dHRvbi5kZWxldGV9fSIpOwogICAgICAgICAgICAgICAgaW5wdXQuY2xhc3NOYW1lID0gImRlbGV0ZSI7CiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogc2F2ZVBvcHVwRGF0YSgibTN1IiwgIicgKyBpZCArICciLCB0cnVlLCAwKScpOwogICAgICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAiYmFjayIsICJ7ey5idXR0b24uYmFja319Iik7CiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJwbGF5bGlzdCIpJyk7CiAgICAgICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsKICAgICAgICAgICAgfQogICAgICAgICAgICAvLyBBYm9ydAogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAiY2FuY2VsIiwgInt7LmJ1dHRvbi5jYW5jZWx9fSIpOwogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogc2hvd0VsZW1lbnQoInBvcHVwIiwgZmFsc2UpOycpOwogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsKICAgICAgICAgICAgLy8gVXBkYXRlCiAgICAgICAgICAgIGlmIChkYXRhWyJpZC5wcm92aWRlciJdICE9ICItIikgewogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgInVwZGF0ZSIsICJ7ey5idXR0b24udXBkYXRlfX0iKTsKICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBzYXZlUG9wdXBEYXRhKCJtM3UiLCAiJyArIGlkICsgJyIsIGZhbHNlLCAxKScpOwogICAgICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgLy8gU2F2ZQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAic2F2ZSIsICJ7ey5idXR0b24uc2F2ZX19Iik7CiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBzYXZlUG9wdXBEYXRhKCJtM3UiLCAiJyArIGlkICsgJyIsIGZhbHNlLCAwKScpOwogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgY2FzZSAiaGRociI6CiAgICAgICAgICAgIGNvbnRlbnQuY3JlYXRlSGVhZGxpbmUoZGF0YVR5cGUpOwogICAgICAgICAgICAvLyBOYW1lCiAgICAgICAgICAgIHZhciBkYktleSA9ICJuYW1lIjsKICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7CiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3sucGxheWxpc3QubmFtZS5wbGFjZWhvbGRlcn19Iik7CiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5wbGF5bGlzdC5uYW1lLnRpdGxlfX0iLCBpbnB1dCk7CiAgICAgICAgICAgIC8vIERlc2NyaXB0aW9uCiAgICAgICAgICAgIHZhciBkYktleSA9ICJkZXNjcmlwdGlvbiI7CiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOwogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnBsYXlsaXN0LmRlc2NyaXB0aW9uLnBsYWNlaG9sZGVyfX0iKTsKICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnBsYXlsaXN0LmRlc2NyaXB0aW9uLnBsYWNlaG9sZGVyfX0iLCBpbnB1dCk7CiAgICAgICAgICAgIC8vIFVSTAogICAgICAgICAgICB2YXIgZGJLZXkgPSAiZmlsZS5zb3VyY2UiOwogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsKICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5wbGF5bGlzdC5maWxlSERIUi5wbGFjZWhvbGRlcn19Iik7CiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5wbGF5bGlzdC5maWxlSERIUi50aXRsZX19IiwgaW5wdXQpOwogICAgICAgICAgICAvLyBUdW5lcgogICAgICAgICAgICBpZiAoU0VSVkVSWyJzZXR0aW5ncyJdWyJidWZmZXIiXSAhPSAiLSIpIHsKICAgICAgICAgICAgICAgIHZhciB0ZXh0ID0gW107CiAgICAgICAgICAgICAgICB2YXIgdmFsdWVzID0gW107CiAgICAgICAgICAgICAgICBmb3IgKHZhciBpID0gMTsgaSA8PSAxMDA7IGkrKykgewogICAgICAgICAgICAgICAgICAgIHRleHQucHVzaChpLnRvU3RyaW5nKCkpOwogICAgICAgICAgICAgICAgICAgIHZhbHVlcy5wdXNoKGkudG9TdHJpbmcoKSk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB2YXIgZGJLZXkgPSAidHVuZXIiOwogICAgICAgICAgICAgICAgdmFyIHNlbGVjdCA9IGNvbnRlbnQuY3JlYXRlU2VsZWN0KHRleHQsIHZhbHVlcywgZGF0YVtkYktleV0sIGRiS2V5KTsKICAgICAgICAgICAgICAgIHNlbGVjdC5zZXRBdHRyaWJ1dGUoIm9uZm9jdXMiLCAiamF2YXNjcmlwdDogcmV0dXJuOyIpOwogICAgICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnBsYXlsaXN0LnR1bmVyLnRpdGxlfX0iLCBzZWxlY3QpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgdmFyIGRiS2V5ID0gInR1bmVyIjsKICAgICAgICAgICAgICAgIGlmIChkYXRhW2RiS2V5XSA9PSB1bmRlZmluZWQpIHsKICAgICAgICAgICAgICAgICAgICBkYXRhW2RiS2V5XSA9IDE7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsKICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicmVhZG9ubHkiLCAidHJ1ZSIpOwogICAgICAgICAgICAgICAgaW5wdXQuY2xhc3NOYW1lID0gIm5vdEF2YWlsYWJsZSI7CiAgICAgICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sucGxheWxpc3QudHVuZXIudGl0bGV9fSIsIGlucHV0KTsKICAgICAgICAgICAgfQogICAgICAgICAgICBjb250ZW50LmRlc2NyaXB0aW9uKCJ7ey5wbGF5bGlzdC50dW5lci5kZXNjcmlwdGlvbn19Iik7CiAgICAgICAgICAgIC8vIEludGVyYWN0aW9uCiAgICAgICAgICAgIGNvbnRlbnQuY3JlYXRlSW50ZXJhY3Rpb24oKTsKICAgICAgICAgICAgLy8gRGVsZXRlCiAgICAgICAgICAgIGlmIChkYXRhWyJpZC5wcm92aWRlciJdICE9ICItIikgewogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImRlbGV0ZSIsICJ7ey5idXR0b24uZGVsZXRlfX0iKTsKICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBzYXZlUG9wdXBEYXRhKCJoZGhyIiwgIicgKyBpZCArICciLCB0cnVlLCAwKScpOwogICAgICAgICAgICAgICAgaW5wdXQuY2xhc3NOYW1lID0gImRlbGV0ZSI7CiAgICAgICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsKICAgICAgICAgICAgfQogICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJiYWNrIiwgInt7LmJ1dHRvbi5iYWNrfX0iKTsKICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoInBsYXlsaXN0IiknKTsKICAgICAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIC8vIEFib3J0CiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJjYW5jZWwiLCAie3suYnV0dG9uLmNhbmNlbH19Iik7CiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBzaG93RWxlbWVudCgicG9wdXAiLCBmYWxzZSk7Jyk7CiAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOwogICAgICAgICAgICAvLyBVcGRhdGUKICAgICAgICAgICAgaWYgKGRhdGFbImlkLnByb3ZpZGVyIl0gIT0gIi0iKSB7CiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAidXBkYXRlIiwgInt7LmJ1dHRvbi51cGRhdGV9fSIpOwogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoImhkaHIiLCAiJyArIGlkICsgJyIsIGZhbHNlLCAxKScpOwogICAgICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgLy8gU2F2ZQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAic2F2ZSIsICJ7ey5idXR0b24uc2F2ZX19Iik7CiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBzYXZlUG9wdXBEYXRhKCJoZGhyIiwgIicgKyBpZCArICciLCBmYWxzZSwgMCknKTsKICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgIGNhc2UgImZpbHRlciI6CiAgICAgICAgICAgIGNvbnRlbnQuY3JlYXRlSGVhZGxpbmUoZGF0YVR5cGUpOwogICAgICAgICAgICAvLyBUeXBlCiAgICAgICAgICAgIHZhciBkYktleSA9ICJ0eXBlIjsKICAgICAgICAgICAgdmFyIHRleHQgPSBbIk0zVTogIiArICJ7ey5maWx0ZXIudHlwZS5ncm91cFRpdGxlfX0iLCAieFRlVmU6ICIgKyAie3suZmlsdGVyLnR5cGUuY3VzdG9tRmlsdGVyfX0iXTsKICAgICAgICAgICAgdmFyIHZhbHVlcyA9IFsiamF2YXNjcmlwdDogb3BlblBvcFVwKCdncm91cC10aXRsZScpIiwgImphdmFzY3JpcHQ6IG9wZW5Qb3BVcCgnY3VzdG9tLWZpbHRlcicpIl07CiAgICAgICAgICAgIHZhciBzZWxlY3QgPSBjb250ZW50LmNyZWF0ZVNlbGVjdCh0ZXh0LCB2YWx1ZXMsICJqYXZhc2NyaXB0OiBvcGVuUG9wVXAoJ2dyb3VwLXRpdGxlJykiLCBkYktleSk7CiAgICAgICAgICAgIHNlbGVjdC5zZXRBdHRyaWJ1dGUoImlkIiwgaWQpOwogICAgICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICdqYXZhc2NyaXB0OiBjaGFuZ2VCdXR0b25BY3Rpb24odGhpcywgIm5leHQiLCAib25jbGljayIpOycpOyAvLyBjaGFuZ2VCdXR0b25BY3Rpb24KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LmZpbHRlci50eXBlLnRpdGxlfX0iLCBzZWxlY3QpOwogICAgICAgICAgICAvLyBJbnRlcmFjdGlvbgogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUludGVyYWN0aW9uKCk7CiAgICAgICAgICAgIC8vIEFib3J0CiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJjYW5jZWwiLCAie3suYnV0dG9uLmNhbmNlbH19Iik7CiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBzaG93RWxlbWVudCgicG9wdXAiLCBmYWxzZSk7Jyk7CiAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOwogICAgICAgICAgICAvLyBOZXh0CiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJuZXh0IiwgInt7LmJ1dHRvbi5uZXh0fX0iKTsKICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgiZ3JvdXAtdGl0bGUiKScpOwogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoImlkIiwgJ25leHQnKTsKICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgIGNhc2UgImN1c3RvbS1maWx0ZXIiOgogICAgICAgIGNhc2UgImdyb3VwLXRpdGxlIjoKICAgICAgICAgICAgc3dpdGNoIChkYXRhVHlwZSkgewogICAgICAgICAgICAgICAgY2FzZSAiY3VzdG9tLWZpbHRlciI6CiAgICAgICAgICAgICAgICAgICAgY29udGVudC5jcmVhdGVIZWFkbGluZSgie3suZmlsdGVyLmN1c3RvbX19IiArICIgRmlsdGVyIik7CiAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICBjYXNlICJncm91cC10aXRsZSI6CiAgICAgICAgICAgICAgICAgICAgY29udGVudC5jcmVhdGVIZWFkbGluZSgie3suZmlsdGVyLmdyb3VwfX0iICsgIiBGaWx0ZXIiKTsKICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgfQogICAgICAgICAgICAvLyBOYW1lICAgICAgCiAgICAgICAgICAgIHZhciBkYktleSA9ICJuYW1lIjsKICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7CiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3suZmlsdGVyLm5hbWUucGxhY2Vob2xkZXJ9fSIpOwogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3suZmlsdGVyLm5hbWUudGl0bGV9fSIsIGlucHV0KTsKICAgICAgICAgICAgLy8gRGVzY3JpcHRpb24KICAgICAgICAgICAgdmFyIGRiS2V5ID0gImRlc2NyaXB0aW9uIjsKICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7CiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3suZmlsdGVyLmRlc2NyaXB0aW9uLnBsYWNlaG9sZGVyfX0iKTsKICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LmZpbHRlci5kZXNjcmlwdGlvbi50aXRsZX19IiwgaW5wdXQpOwogICAgICAgICAgICAvLyBUeXBlCiAgICAgICAgICAgIHZhciBkYktleSA9ICJ0eXBlIjsKICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiaGlkZGVuIiwgZGJLZXksIGRhdGFbZGJLZXldKTsKICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coIiIsIGlucHV0KTsKICAgICAgICAgICAgdmFyIGZpbHRlclR5cGUgPSBkYXRhW2RiS2V5XTsKICAgICAgICAgICAgc3dpdGNoIChmaWx0ZXJUeXBlKSB7CiAgICAgICAgICAgICAgICBjYXNlICJjdXN0b20tZmlsdGVyIjoKICAgICAgICAgICAgICAgICAgICAvLyBDYXNlIHNlbnNpdGl2ZQogICAgICAgICAgICAgICAgICAgIHZhciBkYktleSA9ICJjYXNlU2Vuc2l0aXZlIjsKICAgICAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KGRiS2V5KTsKICAgICAgICAgICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YVtkYktleV07CiAgICAgICAgICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LmZpbHRlci5jYXNlU2Vuc2l0aXZlLnRpdGxlfX0iLCBpbnB1dCk7CiAgICAgICAgICAgICAgICAgICAgLy8gRmlsdGVyIFJ1bGUgKEN1c3RvbSkKICAgICAgICAgICAgICAgICAgICB2YXIgZGJLZXkgPSAiZmlsdGVyIjsKICAgICAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsKICAgICAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LmZpbHRlci5maWx0ZXJSdWxlLnBsYWNlaG9sZGVyfX0iKTsKICAgICAgICAgICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3suZmlsdGVyLmZpbHRlclJ1bGUudGl0bGV9fSIsIGlucHV0KTsKICAgICAgICAgICAgICAgICAgICAvLyBTdGFydGluZyBDaGFubmVsIE51bWJlciBNYXBwaW5nCiAgICAgICAgICAgICAgICAgICAgdmFyIGRiS2V5ID0gInN0YXJ0aW5nQ2hhbm5lbCI7CiAgICAgICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7CiAgICAgICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5maWx0ZXIuc3RhcnRpbmdDaGFubmVsLnBsYWNlaG9sZGVyfX0iKTsKICAgICAgICAgICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3suZmlsdGVyLnN0YXJ0aW5nQ2hhbm5lbC50aXRsZX19IiwgaW5wdXQpOwogICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgY2FzZSAiZ3JvdXAtdGl0bGUiOgogICAgICAgICAgICAgICAgICAgIC8vYWxlcnQoZGJLZXkgKyAiICIgKyBmaWx0ZXJUeXBlKQogICAgICAgICAgICAgICAgICAgIC8vIEZpbHRlciBiYXNlZCBvbiB0aGUgZ3JvdXBzIGluIHRoZSBNM1UKICAgICAgICAgICAgICAgICAgICB2YXIgZGJLZXkgPSAiZmlsdGVyIjsKICAgICAgICAgICAgICAgICAgICB2YXIgZ3JvdXBzTTNVID0gZ2V0TG9jYWxEYXRhKCJtM3VHcm91cHMiLCAiIik7CiAgICAgICAgICAgICAgICAgICAgdmFyIHRleHQgPSBncm91cHNNM1VbInRleHQiXTsKICAgICAgICAgICAgICAgICAgICB2YXIgdmFsdWVzID0gZ3JvdXBzTTNVWyJ2YWx1ZSJdOwogICAgICAgICAgICAgICAgICAgIHZhciBzZWxlY3QgPSBjb250ZW50LmNyZWF0ZVNlbGVjdCh0ZXh0LCB2YWx1ZXMsIGRhdGFbZGJLZXldLCBkYktleSk7CiAgICAgICAgICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsKICAgICAgICAgICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3suZmlsdGVyLmZpbHRlckdyb3VwLnRpdGxlfX0iLCBzZWxlY3QpOwogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuZGVzY3JpcHRpb24oInt7LmZpbHRlci5maWx0ZXJHcm91cC5kZXNjcmlwdGlvbn19Iik7CiAgICAgICAgICAgICAgICAgICAgLy8gQ2FzZSBzZW5zZXRpdmUKICAgICAgICAgICAgICAgICAgICB2YXIgZGJLZXkgPSAiY2FzZVNlbnNpdGl2ZSI7CiAgICAgICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChkYktleSk7CiAgICAgICAgICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGFbZGJLZXldOwogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5maWx0ZXIuY2FzZVNlbnNpdGl2ZS50aXRsZX19IiwgaW5wdXQpOwogICAgICAgICAgICAgICAgICAgIHZhciBkYktleSA9ICJpbmNsdWRlIjsKICAgICAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsKICAgICAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LmZpbHRlci5pbmNsdWRlLnBsYWNlaG9sZGVyfX0iKTsKICAgICAgICAgICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3suZmlsdGVyLmluY2x1ZGUudGl0bGV9fSIsIGlucHV0KTsKICAgICAgICAgICAgICAgICAgICBjb250ZW50LmRlc2NyaXB0aW9uKCJ7ey5maWx0ZXIuaW5jbHVkZS5kZXNjcmlwdGlvbn19Iik7CiAgICAgICAgICAgICAgICAgICAgdmFyIGRiS2V5ID0gImV4Y2x1ZGUiOwogICAgICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOwogICAgICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3suZmlsdGVyLmV4Y2x1ZGUucGxhY2Vob2xkZXJ9fSIpOwogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5maWx0ZXIuZXhjbHVkZS50aXRsZX19IiwgaW5wdXQpOwogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuZGVzY3JpcHRpb24oInt7LmZpbHRlci5leGNsdWRlLmRlc2NyaXB0aW9ufX0iKTsKICAgICAgICAgICAgICAgICAgICAvLyBQcmVzZXJ2ZSBNM1UgUGxheWxpc3QgQ2hhbm5lbCBNYXBwaW5nCiAgICAgICAgICAgICAgICAgICAgdmFyIGRiS2V5ID0gInByZXNlcnZlTWFwcGluZyI7CiAgICAgICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChkYktleSk7CiAgICAgICAgICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGFbZGJLZXldOwogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5maWx0ZXIucHJlc2VydmVNYXBwaW5nLnRpdGxlfX0iLCBpbnB1dCk7CiAgICAgICAgICAgICAgICAgICAgLy8gU3RhcnRpbmcgQ2hhbm5lbCBOdW1iZXIgTWFwcGluZwogICAgICAgICAgICAgICAgICAgIHZhciBkYktleSA9ICJzdGFydGluZ0NoYW5uZWwiOwogICAgICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOwogICAgICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3suZmlsdGVyLnN0YXJ0aW5nQ2hhbm5lbC5wbGFjZWhvbGRlcn19Iik7CiAgICAgICAgICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LmZpbHRlci5zdGFydGluZ0NoYW5uZWwudGl0bGV9fSIsIGlucHV0KTsKICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgLy8gSW50ZXJhY3Rpb24KICAgICAgICAgICAgY29udGVudC5jcmVhdGVJbnRlcmFjdGlvbigpOwogICAgICAgICAgICAvLyBEZWxldGUKICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImRlbGV0ZSIsICJ7ey5idXR0b24uZGVsZXRlfX0iKTsKICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoImZpbHRlciIsICInICsgaWQgKyAnIiwgdHJ1ZSwgMCknKTsKICAgICAgICAgICAgaW5wdXQuY2xhc3NOYW1lID0gImRlbGV0ZSI7CiAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOwogICAgICAgICAgICAvLyBBYm9ydAogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAiY2FuY2VsIiwgInt7LmJ1dHRvbi5jYW5jZWx9fSIpOwogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogc2hvd0VsZW1lbnQoInBvcHVwIiwgZmFsc2UpOycpOwogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsKICAgICAgICAgICAgLy8gU2F2ZQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAic2F2ZSIsICJ7ey5idXR0b24uc2F2ZX19Iik7CiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBzYXZlUG9wdXBEYXRhKCJmaWx0ZXIiLCAiJyArIGlkICsgJyIsIGZhbHNlLCAwKScpOwogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgY2FzZSAieG1sdHYiOgogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUhlYWRsaW5lKGRhdGFUeXBlKTsKICAgICAgICAgICAgLy8gTmFtZQogICAgICAgICAgICB2YXIgZGJLZXkgPSAibmFtZSI7CiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOwogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnhtbHR2Lm5hbWUucGxhY2Vob2xkZXJ9fSIpOwogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sueG1sdHYubmFtZS50aXRsZX19IiwgaW5wdXQpOwogICAgICAgICAgICAvLyBEZXNjcmlwdGlvbgogICAgICAgICAgICB2YXIgZGJLZXkgPSAiZGVzY3JpcHRpb24iOwogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsKICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey54bWx0di5kZXNjcmlwdGlvbi5wbGFjZWhvbGRlcn19Iik7CiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey54bWx0di5kZXNjcmlwdGlvbi50aXRsZX19IiwgaW5wdXQpOwogICAgICAgICAgICAvLyBVUkwKICAgICAgICAgICAgdmFyIGRiS2V5ID0gImZpbGUuc291cmNlIjsKICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7CiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3sueG1sdHYuZmlsZVhNTFRWLnBsYWNlaG9sZGVyfX0iKTsKICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnhtbHR2LmZpbGVYTUxUVi50aXRsZX19IiwgaW5wdXQpOwogICAgICAgICAgICAvLyBJbnRlcmFjdGlvbgogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUludGVyYWN0aW9uKCk7CiAgICAgICAgICAgIC8vIERlbGV0ZQogICAgICAgICAgICBpZiAoZGF0YVsiaWQucHJvdmlkZXIiXSAhPSAiLSIpIHsKICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJkZWxldGUiLCAie3suYnV0dG9uLmRlbGV0ZX19Iik7CiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogc2F2ZVBvcHVwRGF0YSgieG1sdHYiLCAiJyArIGlkICsgJyIsIHRydWUsIDApJyk7CiAgICAgICAgICAgICAgICBpbnB1dC5jbGFzc05hbWUgPSAiZGVsZXRlIjsKICAgICAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIC8vIEFib3J0CiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJjYW5jZWwiLCAie3suYnV0dG9uLmNhbmNlbH19Iik7CiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBzaG93RWxlbWVudCgicG9wdXAiLCBmYWxzZSk7Jyk7CiAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOwogICAgICAgICAgICAvLyBVcGRhdGUKICAgICAgICAgICAgaWYgKGRhdGFbImlkLnByb3ZpZGVyIl0gIT0gIi0iKSB7CiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAidXBkYXRlIiwgInt7LmJ1dHRvbi51cGRhdGV9fSIpOwogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoInhtbHR2IiwgIicgKyBpZCArICciLCBmYWxzZSwgMSknKTsKICAgICAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIC8vIFNhdmUKICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgInNhdmUiLCAie3suYnV0dG9uLnNhdmV9fSIpOwogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogc2F2ZVBvcHVwRGF0YSgieG1sdHYiLCAiJyArIGlkICsgJyIsIGZhbHNlLCAwKScpOwogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgY2FzZSAidXNlcnMiOgogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUhlYWRsaW5lKCJ7ey5tYWluTWVudS5pdGVtLnVzZXJzfX0iKTsKICAgICAgICAgICAgLy8gVXNlciBuYW1lCiAgICAgICAgICAgIHZhciBkYktleSA9ICJ1c2VybmFtZSI7CiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOwogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnVzZXJzLnVzZXJuYW1lLnBsYWNlaG9sZGVyfX0iKTsKICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnVzZXJzLnVzZXJuYW1lLnRpdGxlfX0iLCBpbnB1dCk7CiAgICAgICAgICAgIC8vIE5ldyBQYXJzc3dvcmQKICAgICAgICAgICAgdmFyIGRiS2V5ID0gInBhc3N3b3JkIjsKICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgicGFzc3dvcmQiLCBkYktleSwgIiIpOwogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnVzZXJzLnBhc3N3b3JkLnBsYWNlaG9sZGVyfX0iKTsKICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnVzZXJzLnBhc3N3b3JkLnRpdGxlfX0iLCBpbnB1dCk7CiAgICAgICAgICAgIC8vIENvbmZpcm1hdGlvbgogICAgICAgICAgICB2YXIgZGJLZXkgPSAiY29uZmlybSI7CiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInBhc3N3b3JkIiwgZGJLZXksICIiKTsKICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey51c2Vycy5jb25maXJtLnBsYWNlaG9sZGVyfX0iKTsKICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnVzZXJzLmNvbmZpcm0udGl0bGV9fSIsIGlucHV0KTsKICAgICAgICAgICAgLy8gQXV0aGVudGljYXRpb24gV0VCCiAgICAgICAgICAgIHZhciBkYktleSA9ICJhdXRoZW50aWNhdGlvbi53ZWIiOwogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KGRiS2V5KTsKICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGFbZGJLZXldOwogICAgICAgICAgICBpZiAoZGF0YVsiZGVmYXVsdFVzZXIiXSA9PSB0cnVlKSB7CiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAiamF2YXNjcmlwdDogcmV0dXJuIGZhbHNlIik7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnVzZXJzLndlYi50aXRsZX19IiwgaW5wdXQpOwogICAgICAgICAgICAvLyBBdXRoZW50aWNhdGlvbiBQTVMKICAgICAgICAgICAgdmFyIGRiS2V5ID0gImF1dGhlbnRpY2F0aW9uLnBtcyI7CiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goZGJLZXkpOwogICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YVtkYktleV07CiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey51c2Vycy5wbXMudGl0bGV9fSIsIGlucHV0KTsKICAgICAgICAgICAgLy8gQXV0aGVudGljYXRpb24gTTNVCiAgICAgICAgICAgIHZhciBkYktleSA9ICJhdXRoZW50aWNhdGlvbi5tM3UiOwogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KGRiS2V5KTsKICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGFbZGJLZXldOwogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sudXNlcnMubTN1LnRpdGxlfX0iLCBpbnB1dCk7CiAgICAgICAgICAgIC8vIEF1dGhlbnRpY2F0aW9uIFhNTAogICAgICAgICAgICB2YXIgZGJLZXkgPSAiYXV0aGVudGljYXRpb24ueG1sIjsKICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChkYktleSk7CiAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhW2RiS2V5XTsKICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnVzZXJzLnhtbC50aXRsZX19IiwgaW5wdXQpOwogICAgICAgICAgICAvLyBBdXRoZW50aWNhdGlvbiBBUEkKICAgICAgICAgICAgdmFyIGRiS2V5ID0gImF1dGhlbnRpY2F0aW9uLmFwaSI7CiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goZGJLZXkpOwogICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YVtkYktleV07CiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey51c2Vycy5hcGkudGl0bGV9fSIsIGlucHV0KTsKICAgICAgICAgICAgLy8gSW50ZXJhY3Rpb24KICAgICAgICAgICAgY29udGVudC5jcmVhdGVJbnRlcmFjdGlvbigpOwogICAgICAgICAgICAvLyBEZWxldGUKICAgICAgICAgICAgaWYgKGRhdGFbImRlZmF1bHRVc2VyIl0gIT0gdHJ1ZSAmJiBpZCAhPSAiLSIpIHsKICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJkZWxldGUiLCAie3suYnV0dG9uLmRlbGV0ZX19Iik7CiAgICAgICAgICAgICAgICBpbnB1dC5jbGFzc05hbWUgPSAiZGVsZXRlIjsKICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBzYXZlUG9wdXBEYXRhKCInICsgZGF0YVR5cGUgKyAnIiwgIicgKyBpZCArICciLCB0cnVlLCAwKScpOwogICAgICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgLy8gQWJvcnQKICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImNhbmNlbCIsICJ7ey5idXR0b24uY2FuY2VsfX0iKTsKICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IHNob3dFbGVtZW50KCJwb3B1cCIsIGZhbHNlKTsnKTsKICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7CiAgICAgICAgICAgIC8vIFNhdmUKICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgInNhdmUiLCAie3suYnV0dG9uLnNhdmV9fSIpOwogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogc2F2ZVBvcHVwRGF0YSgiJyArIGRhdGFUeXBlICsgJyIsICInICsgaWQgKyAnIiwgImZhbHNlIik7Jyk7CiAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOwogICAgICAgICAgICBicmVhazsKICAgICAgICBjYXNlICJtYXBwaW5nIjoKICAgICAgICAgICAgY29udGVudC5jcmVhdGVIZWFkbGluZSgie3subWFpbk1lbnUuaXRlbS5tYXBwaW5nfX0iKTsKICAgICAgICAgICAgLy8gQWN0aXZlCiAgICAgICAgICAgIHZhciBkYktleSA9ICJ4LWFjdGl2ZSI7CiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goZGJLZXkpOwogICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YVtkYktleV07CiAgICAgICAgICAgIGlucHV0LmlkID0gImFjdGl2ZSI7CiAgICAgICAgICAgIC8vaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdG9nZ2xlQ2hhbm5lbFN0YXR1cygnIiArIGlkICsgIicsIHRoaXMpIik7CiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5tYXBwaW5nLmFjdGl2ZS50aXRsZX19IiwgaW5wdXQpOwogICAgICAgICAgICAvLyBDaGFubmVsIG5hbWUKICAgICAgICAgICAgdmFyIGRiS2V5ID0gIngtbmFtZSI7CiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOwogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7CiAgICAgICAgICAgIGlmIChCVUxLX0VESVQgPT0gdHJ1ZSkgewogICAgICAgICAgICAgICAgaW5wdXQuc3R5bGUuYm9yZGVyID0gInNvbGlkIDFweCByZWQiOwogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJyZWFkb25seSIsICJ0cnVlIik7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7Lm1hcHBpbmcuY2hhbm5lbE5hbWUudGl0bGV9fSIsIGlucHV0KTsKICAgICAgICAgICAgY29udGVudC5kZXNjcmlwdGlvbihkYXRhWyJuYW1lIl0pOwogICAgICAgICAgICAvLyBEZXNjcmlwdGlvbgogICAgICAgICAgICB2YXIgZGJLZXkgPSAieC1kZXNjcmlwdGlvbiI7CiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOwogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7Lm1hcHBpbmcuZGVzY3JpcHRpb24ucGxhY2Vob2xkZXJ9fSIpOwogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7CiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5tYXBwaW5nLmRlc2NyaXB0aW9uLnRpdGxlfX0iLCBpbnB1dCk7CiAgICAgICAgICAgIC8vIFVwZGF0ZSB0aGUgY2hhbm5lbCB4LW5hbWUKICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoIl91dWlkLmtleSIpKSB7CiAgICAgICAgICAgICAgICBpZiAoZGF0YVsiX3V1aWQua2V5Il0gIT0gIiIpIHsKICAgICAgICAgICAgICAgICAgICB2YXIgZGJLZXkgPSAieC11cGRhdGUtY2hhbm5lbC1uYW1lIjsKICAgICAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KGRiS2V5KTsKICAgICAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7CiAgICAgICAgICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGFbZGJLZXldOwogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5tYXBwaW5nLnVwZGF0ZUNoYW5uZWxOYW1lLnRpdGxlfX0iLCBpbnB1dCk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgICAgLy8gQ2hhbm5lbCBuYW1lIHJlZ2V4IGZvciB1cGRhdGluZyB0aGUgY2hhbm5lbCBuYW1lCiAgICAgICAgICAgIHZhciBkYktleSA9ICJ1cGRhdGUtY2hhbm5lbC1uYW1lLXJlZ2V4IjsKICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7CiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3subWFwcGluZy51cGRhdGVDaGFubmVsTmFtZVJlZ2V4LnBsYWNlaG9sZGVyfX0iKTsKICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOwogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3subWFwcGluZy51cGRhdGVDaGFubmVsTmFtZVJlZ2V4LnRpdGxlfX0iLCBpbnB1dCk7CiAgICAgICAgICAgIGNvbnRlbnQuZGVzY3JpcHRpb24oInt7Lm1hcHBpbmcudXBkYXRlQ2hhbm5lbE5hbWVSZWdleC5kZXNjcmlwdGlvbn19Iik7CiAgICAgICAgICAgIC8vIENoYW5uZWwgZ3JvdXAgcmVnZXggZm9yIHVwZGF0aW5nIHRoZSBjaGFubmVsIG5hbWUKICAgICAgICAgICAgdmFyIGRiS2V5ID0gInVwZGF0ZS1jaGFubmVsLW5hbWUtYnktZ3JvdXAtcmVnZXgiOwogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsKICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5tYXBwaW5nLnVwZGF0ZUNoYW5uZWxOYW1lQnlHcm91cFJlZ2V4LnBsYWNlaG9sZGVyfX0iKTsKICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOwogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3subWFwcGluZy51cGRhdGVDaGFubmVsTmFtZUJ5R3JvdXBSZWdleC50aXRsZX19IiwgaW5wdXQpOwogICAgICAgICAgICBjb250ZW50LmRlc2NyaXB0aW9uKCJ7ey5tYXBwaW5nLnVwZGF0ZUNoYW5uZWxOYW1lQnlHcm91cFJlZ2V4LmRlc2NyaXB0aW9ufX0iKTsKICAgICAgICAgICAgLy8gTG9nbyBVUkwgKENoYW5uZWwpIAogICAgICAgICAgICB2YXIgZGJLZXkgPSAidHZnLWxvZ28iOwogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsKICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOwogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoImlkIiwgImNoYW5uZWwtaWNvbiIpOwogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3subWFwcGluZy5jaGFubmVsTG9nby50aXRsZX19IiwgaW5wdXQpOwogICAgICAgICAgICAvLyBDaGFubmVsIGxvZ28gdXBkYXRlCiAgICAgICAgICAgIHZhciBkYktleSA9ICJ4LXVwZGF0ZS1jaGFubmVsLWljb24iOwogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KGRiS2V5KTsKICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGFbZGJLZXldOwogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoImlkIiwgInVwZGF0ZS1pY29uIik7CiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCc7IGNoYW5nZUNoYW5uZWxMb2dvKCciICsgaWQgKyAiJyk7Iik7CiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5tYXBwaW5nLnVwZGF0ZUNoYW5uZWxMb2dvLnRpdGxlfX0iLCBpbnB1dCk7CiAgICAgICAgICAgIC8vIEV4cGFuZCBFUEcgY2F0ZWdvcnkKICAgICAgICAgICAgdmFyIGRiS2V5ID0gIngtY2F0ZWdvcnkiOwogICAgICAgICAgICB2YXIgdGV4dCA9IFsiLSIsICJLaWRzIChFbWJ5IG9ubHkpIiwgIk5ld3MiLCAiTW92aWUiLCAiU2VyaWVzIiwgIlNwb3J0cyJdOwogICAgICAgICAgICB2YXIgdmFsdWVzID0gWyIiLCAiS2lkcyIsICJOZXdzIiwgIk1vdmllIiwgIlNlcmllcyIsICJTcG9ydHMiXTsKICAgICAgICAgICAgdmFyIHNlbGVjdCA9IGNvbnRlbnQuY3JlYXRlU2VsZWN0KHRleHQsIHZhbHVlcywgZGF0YVtkYktleV0sIGRiS2V5KTsKICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsKICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7Lm1hcHBpbmcuZXBnQ2F0ZWdvcnkudGl0bGV9fSIsIHNlbGVjdCk7CiAgICAgICAgICAgIC8vIE0zVSBncm91cCB0aXRsZQogICAgICAgICAgICB2YXIgZGJLZXkgPSAieC1ncm91cC10aXRsZSI7CiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOwogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7CiAgICAgICAgICAgIGlucHV0LmRhdGFzZXQub2xkVmFsdWUgPSBkYXRhW2RiS2V5XTsKICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7Lm1hcHBpbmcubTN1R3JvdXBUaXRsZS50aXRsZX19IiwgaW5wdXQpOwogICAgICAgICAgICBpZiAoZGF0YVsiZ3JvdXAtdGl0bGUiXSAhPSB1bmRlZmluZWQpIHsKICAgICAgICAgICAgICAgIGNvbnRlbnQuZGVzY3JpcHRpb24oZGF0YVsiZ3JvdXAtdGl0bGUiXSk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgaWYgKGRhdGFbIngtdXBkYXRlLWNoYW5uZWwtZ3JvdXAiXSA9PSB0cnVlKSB7CiAgICAgICAgICAgICAgICBpbnB1dC5kaXNhYmxlZCA9IHRydWU7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgLy8gVXBkYXRlIGNoYW5uZWwgZ3JvdXAgY2hlY2tib3gKICAgICAgICAgICAgdmFyIGRiS2V5ID0gIngtdXBkYXRlLWNoYW5uZWwtZ3JvdXAiOwogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KGRiS2V5KTsKICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0b2dnbGVHcm91cFVwZGF0ZUNiKCciICsgaWQgKyAiJywgdGhpcyk7Iik7CiAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhW2RiS2V5XTsKICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7Lm1hcHBpbmcudXBkYXRlQ2hhbm5lbEdyb3VwLnRpdGxlfX0iLCBpbnB1dCk7CiAgICAgICAgICAgIGNvbnRlbnQuZGVzY3JpcHRpb24oInt7Lm1hcHBpbmcudXBkYXRlQ2hhbm5lbEdyb3VwLmRlc2NyaXB0aW9ufX0iKTsKICAgICAgICAgICAgLy8gWE1MVFYgZmlsZQogICAgICAgICAgICB2YXIgZGJLZXkgPSAneC14bWx0di1maWxlJzsKICAgICAgICAgICAgY29uc3QgeG1sVHZGaWxlID0gZGF0YVtkYktleV07CiAgICAgICAgICAgIHZhciB4bWxUdiA9IG5ldyBYTUxUVkZpbGUoKTsKICAgICAgICAgICAgY29uc3QgeG1sVHZGaWxlU2VsZWN0ID0geG1sVHYuZ2V0RmlsZXMoZGF0YVtkYktleV0pOwogICAgICAgICAgICB4bWxUdkZpbGVTZWxlY3Quc2V0QXR0cmlidXRlKCduYW1lJywgZGJLZXkpOwogICAgICAgICAgICB4bWxUdkZpbGVTZWxlY3Quc2V0QXR0cmlidXRlKCdpZCcsICdwb3B1cC14bWx0dicpOwogICAgICAgICAgICB4bWxUdkZpbGVTZWxlY3Quc2V0QXR0cmlidXRlKCdvbmNoYW5nZScsIGBqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJzsgc2V0WG1sdHZDaGFubmVsKCcke2lkfScsIHRoaXMpO2ApOwogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygne3subWFwcGluZy54bWx0dkZpbGUudGl0bGV9fScsIHhtbFR2RmlsZVNlbGVjdCk7CiAgICAgICAgICAgIC8vIFhNTFRWIE1hcHBpbmcKICAgICAgICAgICAgdmFyIGRiS2V5ID0gJ3gtbWFwcGluZyc7CiAgICAgICAgICAgIHZhciB4bWxUdiA9IG5ldyBYTUxUVkZpbGUoKTsKICAgICAgICAgICAgY29uc3QgY3VycmVudFhtbFR2SWQgPSBkYXRhW2RiS2V5XTsKICAgICAgICAgICAgY29uc3QgW3htbFR2SWRDb250YWluZXIsIHhtbFR2SWRJbnB1dCwgeG1sVHZJZERhdGFsaXN0XSA9IHhtbFR2Lm5ld1htbFR2SWRQaWNrZXIoeG1sVHZGaWxlLCBjdXJyZW50WG1sVHZJZCk7CiAgICAgICAgICAgIHhtbFR2SWRDb250YWluZXIuc2V0QXR0cmlidXRlKCdpZCcsICd4bWx0di1pZC1waWNrZXItY29udGFpbmVyJyk7CiAgICAgICAgICAgIHhtbFR2SWRJbnB1dC5zZXRBdHRyaWJ1dGUoJ2xpc3QnLCAneG1sdHYtaWQtcGlja2VyLWRhdGFsaXN0Jyk7CiAgICAgICAgICAgIHhtbFR2SWRJbnB1dC5zZXRBdHRyaWJ1dGUoJ25hbWUnLCAneC1tYXBwaW5nJyk7IC8vIFNob3VsZCBzdGF5IHgtbWFwcGluZyBhcyBpdCB3aWxsIGJlIHVzZWQgaW4gZG9uZVBvcHVwRGF0YSB0byBtYWtlIGEgc2VydmVyIHJlcXVlc3QKICAgICAgICAgICAgeG1sVHZJZElucHV0LnNldEF0dHJpYnV0ZSgnaWQnLCAneG1sdHYtaWQtcGlja2VyLWlucHV0Jyk7CiAgICAgICAgICAgIHhtbFR2SWRJbnB1dC5zZXRBdHRyaWJ1dGUoJ29uY2hhbmdlJywgYGphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnOyBjaGVja1htbHR2Q2hhbm5lbCgnJHtpZH0nLCB0aGlzLnZhbHVlLCAnJHt4bWxUdkZpbGV9Jyk7YCk7CiAgICAgICAgICAgIHhtbFR2SWREYXRhbGlzdC5zZXRBdHRyaWJ1dGUoJ2lkJywgJ3htbHR2LWlkLXBpY2tlci1kYXRhbGlzdCcpOwogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygne3subWFwcGluZy54bWx0dkNoYW5uZWwudGl0bGV9fScsIHhtbFR2SWRDb250YWluZXIpOwogICAgICAgICAgICAvLyBUaW1lc2hpZnQKICAgICAgICAgICAgdmFyIGRiS2V5ID0gIngtdGltZXNoaWZ0IjsKICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7CiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsKICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5tYXBwaW5nLnRpbWVzaGlmdC5wbGFjZWhvbGRlcn19Iik7CiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgiaWQiLCAidGltZXNoaWZ0Iik7CiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5tYXBwaW5nLnRpbWVzaGlmdC50aXRsZX19IiwgaW5wdXQpOwogICAgICAgICAgICAvLyBJbnRlcmFjdGlvbgogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUludGVyYWN0aW9uKCk7CiAgICAgICAgICAgIC8vIFVwbG9hZCBsb2dvCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJjYW5jZWwiLCAie3suYnV0dG9uLnVwbG9hZExvZ299fSIpOwogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogdXBsb2FkTG9nbygpOycpOwogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsKICAgICAgICAgICAgLy8gQWJvcnQKICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImNhbmNlbCIsICJ7ey5idXR0b24uY2FuY2VsfX0iKTsKICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IHNob3dFbGVtZW50KCJwb3B1cCIsIGZhbHNlKTsnKTsKICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7CiAgICAgICAgICAgIC8vIEZpbmlzaGVkCiAgICAgICAgICAgIHZhciBpZHMgPSBbXTsKICAgICAgICAgICAgaWRzID0gZ2V0QWxsU2VsZWN0ZWRDaGFubmVscygpOwogICAgICAgICAgICBpZiAoaWRzLmxlbmd0aCA9PSAwKSB7CiAgICAgICAgICAgICAgICBpZHMucHVzaChpZCk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgInNhdmUiLCAie3suYnV0dG9uLmRvbmV9fSIpOwogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogZG9uZVBvcHVwRGF0YSgiJyArIGRhdGFUeXBlICsgJyIsICInICsgaWRzICsgJyIsICJmYWxzZSIpOycpOwogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgYnJlYWs7CiAgICB9CiAgICBzaG93UG9wVXBFbGVtZW50KCdwb3B1cC1jdXN0b20nKTsKfQpjbGFzcyBYTUxUVkZpbGUgewogICAgZ2V0RmlsZXMoc2V0KSB7CiAgICAgICAgbGV0IGZpbGVJRHMgPSBnZXRPd25PYmpQcm9wcyhTRVJWRVJbInhlcGciXVsieG1sdHZNYXAiXSk7CiAgICAgICAgbGV0IHZhbHVlcyA9IG5ldyBBcnJheSgiLSIpOwogICAgICAgIGxldCB0ZXh0ID0gbmV3IEFycmF5KCItIik7CiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBmaWxlSURzLmxlbmd0aDsgaSsrKSB7CiAgICAgICAgICAgIGlmIChmaWxlSURzW2ldICE9ICJ4VGVWZSBEdW1teSIpIHsKICAgICAgICAgICAgICAgIHZhbHVlcy5wdXNoKGdldFZhbHVlRnJvbVByb3ZpZGVyRmlsZShmaWxlSURzW2ldLCAieG1sdHYiLCAiZmlsZS54dGV2ZSIpKTsKICAgICAgICAgICAgICAgIHRleHQucHVzaChnZXRWYWx1ZUZyb21Qcm92aWRlckZpbGUoZmlsZUlEc1tpXSwgInhtbHR2IiwgIm5hbWUiKSk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICB2YWx1ZXMucHVzaChmaWxlSURzW2ldKTsKICAgICAgICAgICAgICAgIHRleHQucHVzaChmaWxlSURzW2ldKTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBsZXQgc2VsZWN0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiU0VMRUNUIik7CiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0ZXh0Lmxlbmd0aDsgaSsrKSB7CiAgICAgICAgICAgIHZhciBvcHRpb24gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJPUFRJT04iKTsKICAgICAgICAgICAgb3B0aW9uLnNldEF0dHJpYnV0ZSgidmFsdWUiLCB2YWx1ZXNbaV0pOwogICAgICAgICAgICBvcHRpb24uaW5uZXJUZXh0ID0gdGV4dFtpXTsKICAgICAgICAgICAgc2VsZWN0LmFwcGVuZENoaWxkKG9wdGlvbik7CiAgICAgICAgfQogICAgICAgIGlmIChzZXQgIT0gIiIpIHsKICAgICAgICAgICAgc2VsZWN0LnZhbHVlID0gc2V0OwogICAgICAgIH0KICAgICAgICByZXR1cm4gc2VsZWN0OwogICAgfQogICAgLyoqCiAgICAgKiBAcGFyYW0geG1sVHZGaWxlIFhNTCBmaWxlIHBhdGggdG8gZ2V0IEVQRyBmcm9tLgogICAgICogQHBhcmFtIGN1cnJlbnRYbWxUdklkIEN1cnJlbnQgWE1MVFYgSUQgdG8gc2V0IGluaXRpYWwgaW5wdXQgdmFsdWUgdG8uCiAgICAgKiBAcmV0dXJucyBBcnJheSBvZiwgc2VxdWVudGlhbGx5OgogICAgICogMSkgQ29udGFpbmVyIG9mIHRoZSBwaWNrZXIuCiAgICAgKiAyKSBJbnB1dCBmaWVsZCB0byB0eXBlIGF0IGFuZCBnZXQgY2hvaWNlIGZyb20uCiAgICAgKiAzKSBEYXRhbGlzdCBjb250YWluaW5nIGV2ZXJ5IG9wdGlvbi4KICAgICAqLwogICAgbmV3WG1sVHZJZFBpY2tlcih4bWxUdkZpbGUsIGN1cnJlbnRYbWxUdklkKSB7CiAgICAgICAgY29uc3QgY29udGFpbmVyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7CiAgICAgICAgY29uc3QgaW5wdXQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdpbnB1dCcpOwogICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgndHlwZScsICd0ZXh0Jyk7CiAgICAgICAgLy8gSW5pdGlhbGx5LCBzZXQgdmFsdWUgdG8gJy0nIGlmIGlucHV0IGlzIGVtcHR5CiAgICAgICAgaW5wdXQudmFsdWUgPSAoY3VycmVudFhtbFR2SWQpID8gY3VycmVudFhtbFR2SWQgOiAnLSc7CiAgICAgICAgLy8gV2hlbiBpbnB1dCBpcyBmb2N1c2VkLCByZW1vdmUgJy0nIGZyb20gaXQKICAgICAgICBpbnB1dC5hZGRFdmVudExpc3RlbmVyKCdmb2N1cycsIChldnQpID0+IHsKICAgICAgICAgICAgY29uc3QgdGFyZ2V0ID0gZXZ0LnRhcmdldDsKICAgICAgICAgICAgdGFyZ2V0LnZhbHVlID0gKHRhcmdldC52YWx1ZSA9PT0gJy0nKSA/ICcnIDogdGFyZ2V0LnZhbHVlOwogICAgICAgIH0pOwogICAgICAgIC8vIFdoZW4gaW5wdXQgbG9zZSBmb2N1cyBvciB0YWtlIGEgdmFsdWUsIGlmIGl0J3MgZW1wdHksIHNldCB2YWx1ZSB0byAnLScKICAgICAgICBpbnB1dC5hZGRFdmVudExpc3RlbmVyKCdibHVyJywgc2V0RmFsbGJhY2tWYWx1ZSk7CiAgICAgICAgaW5wdXQuYWRkRXZlbnRMaXN0ZW5lcignY2hhbmdlJywgc2V0RmFsbGJhY2tWYWx1ZSk7CiAgICAgICAgZnVuY3Rpb24gc2V0RmFsbGJhY2tWYWx1ZShldnQpIHsKICAgICAgICAgICAgY29uc3QgdGFyZ2V0ID0gZXZ0LnRhcmdldDsKICAgICAgICAgICAgdGFyZ2V0LnZhbHVlID0gKHRhcmdldC52YWx1ZSkgPyB0YXJnZXQudmFsdWUgOiAnLSc7CiAgICAgICAgfQogICAgICAgIGNvbnRhaW5lci5hcHBlbmRDaGlsZChpbnB1dCk7CiAgICAgICAgY29uc3QgZGF0YWxpc3QgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkYXRhbGlzdCcpOwogICAgICAgIGNvbnN0IG9wdGlvbiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ29wdGlvbicpOwogICAgICAgIG9wdGlvbi5zZXRBdHRyaWJ1dGUoJ3ZhbHVlJywgJy0nKTsKICAgICAgICBvcHRpb24uaW5uZXJUZXh0ID0gJy0nOwogICAgICAgIGRhdGFsaXN0LmFwcGVuZENoaWxkKG9wdGlvbik7CiAgICAgICAgY29uc3QgZXBnID0gU0VSVkVSWyd4ZXBnJ11bJ3htbHR2TWFwJ11beG1sVHZGaWxlXTsKICAgICAgICBpZiAoZXBnKSB7CiAgICAgICAgICAgIGNvbnN0IHByb2dyYW1JZHMgPSBnZXRPd25PYmpQcm9wcyhlcGcpOwogICAgICAgICAgICBwcm9ncmFtSWRzLmZvckVhY2goKHByb2dyYW1JZCkgPT4gewogICAgICAgICAgICAgICAgY29uc3QgcHJvZ3JhbSA9IGVwZ1twcm9ncmFtSWRdOwogICAgICAgICAgICAgICAgaWYgKHByb2dyYW0uaGFzT3duUHJvcGVydHkoJ2Rpc3BsYXktbmFtZXMnKSkgewogICAgICAgICAgICAgICAgICAgIHByb2dyYW1bJ2Rpc3BsYXktbmFtZXMnXS5mb3JFYWNoKChkaXNwbGF5TmFtZSkgPT4gewogICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBvcHRpb24gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdvcHRpb24nKTsKICAgICAgICAgICAgICAgICAgICAgICAgb3B0aW9uLnNldEF0dHJpYnV0ZSgndmFsdWUnLCBwcm9ncmFtSWQpOwogICAgICAgICAgICAgICAgICAgICAgICBvcHRpb24uaW5uZXJUZXh0ID0gZGlzcGxheU5hbWVbJ1ZhbHVlJ107CiAgICAgICAgICAgICAgICAgICAgICAgIGRhdGFsaXN0LmFwcGVuZENoaWxkKG9wdGlvbik7CiAgICAgICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgICAgICBjb25zdCBvcHRpb24gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdvcHRpb24nKTsKICAgICAgICAgICAgICAgICAgICBvcHRpb24uc2V0QXR0cmlidXRlKCd2YWx1ZScsIHByb2dyYW1JZCk7CiAgICAgICAgICAgICAgICAgICAgb3B0aW9uLmlubmVyVGV4dCA9ICctJzsKICAgICAgICAgICAgICAgICAgICBkYXRhbGlzdC5hcHBlbmRDaGlsZChvcHRpb24pOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9KTsKICAgICAgICB9CiAgICAgICAgY29udGFpbmVyLmFwcGVuZENoaWxkKGRhdGFsaXN0KTsKICAgICAgICByZXR1cm4gW2NvbnRhaW5lciwgaW5wdXQsIGRhdGFsaXN0XTsKICAgIH0KfQpmdW5jdGlvbiBnZXRWYWx1ZUZyb21Qcm92aWRlckZpbGUoZmlsZSwgZmlsZVR5cGUsIGtleSkgewogICAgaWYgKGZpbGUgPT0gInhUZVZlIER1bW15IikgewogICAgICAgIHJldHVybiBmaWxlOwogICAgfQogICAgbGV0IGZpbGVJRDsKICAgIGxldCBpbmRpY2F0b3IgPSBmaWxlLmNoYXJBdCgwKTsKICAgIHN3aXRjaCAoaW5kaWNhdG9yKSB7CiAgICAgICAgY2FzZSAiTSI6CiAgICAgICAgICAgIGZpbGVUeXBlID0gIm0zdSI7CiAgICAgICAgICAgIGZpbGVJRCA9IGZpbGU7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgIGNhc2UgIkgiOgogICAgICAgICAgICBmaWxlVHlwZSA9ICJoZGhyIjsKICAgICAgICAgICAgZmlsZUlEID0gZmlsZTsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgY2FzZSAiWCI6CiAgICAgICAgICAgIGZpbGVUeXBlID0gInhtbHR2IjsKICAgICAgICAgICAgZmlsZUlEID0gZmlsZS5zdWJzdHJpbmcoMCwgZmlsZS5sYXN0SW5kZXhPZignLicpKTsKICAgICAgICAgICAgYnJlYWs7CiAgICB9CiAgICBpZiAoU0VSVkVSWyJzZXR0aW5ncyJdWyJmaWxlcyJdW2ZpbGVUeXBlXS5oYXNPd25Qcm9wZXJ0eShmaWxlSUQpID09IHRydWUpIHsKICAgICAgICB2YXIgZGF0YSA9IFNFUlZFUlsic2V0dGluZ3MiXVsiZmlsZXMiXVtmaWxlVHlwZV1bZmlsZUlEXTsKICAgICAgICByZXR1cm4gZGF0YVtrZXldOwogICAgfQogICAgcmV0dXJuOwp9CmZ1bmN0aW9uIHNldFhtbHR2Q2hhbm5lbChlcGdNYXBJZCwgeG1sVHZGaWxlU2VsZWN0KSB7CiAgICBjb25zdCB4bWxUdiA9IG5ldyBYTUxUVkZpbGUoKTsKICAgIGNvbnN0IG5ld1htbFR2RmlsZSA9IHhtbFR2RmlsZVNlbGVjdC52YWx1ZTsKICAgIC8vIFJlbW92ZSBvbGQgWE1MVFYgSUQgc2VsZWN0aW9uIGJveAogICAgY29uc3QgeG1sVHZJZFBpY2tlclBhcmVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd4bWx0di1pZC1waWNrZXItY29udGFpbmVyJykucGFyZW50RWxlbWVudDsKICAgIHhtbFR2SWRQaWNrZXJQYXJlbnQuaW5uZXJIVE1MID0gJyc7CiAgICAvLyBDcmVhdGUgbmV3IFhNTFRWIElEIHNlbGVjdGlvbiBib3gKICAgIGNvbnN0IHR2Z0lkID0gU0VSVkVSWyd4ZXBnJ11bJ2VwZ01hcHBpbmcnXVtlcGdNYXBJZF1bJ3R2Zy1pZCddOwogICAgY29uc3QgW3htbFR2SWRDb250YWluZXIsIHhtbFR2SWRJbnB1dCwgeG1sVHZJZERhdGFsaXN0XSA9IHhtbFR2Lm5ld1htbFR2SWRQaWNrZXIobmV3WG1sVHZGaWxlLCB0dmdJZCk7CiAgICB4bWxUdklkQ29udGFpbmVyLnNldEF0dHJpYnV0ZSgnaWQnLCAneG1sdHYtaWQtcGlja2VyLWNvbnRhaW5lcicpOwogICAgeG1sVHZJZElucHV0LnNldEF0dHJpYnV0ZSgnbGlzdCcsICd4bWx0di1pZC1waWNrZXItZGF0YWxpc3QnKTsKICAgIHhtbFR2SWRJbnB1dC5zZXRBdHRyaWJ1dGUoJ25hbWUnLCAneC1tYXBwaW5nJyk7IC8vIFNob3VsZCBzdGF5IHgtbWFwcGluZyBhcyBpdCB3aWxsIGJlIHVzZWQgaW4gZG9uZVBvcHVwRGF0YSB0byBtYWtlIGEgc2VydmVyIHJlcXVlc3QKICAgIHhtbFR2SWRJbnB1dC5zZXRBdHRyaWJ1dGUoJ2lkJywgJ3htbHR2LWlkLXBpY2tlci1pbnB1dCcpOwogICAgeG1sVHZJZElucHV0LnNldEF0dHJpYnV0ZSgnb25jaGFuZ2UnLCBgamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCc7IGNoZWNrWG1sdHZDaGFubmVsKCcke2VwZ01hcElkfScsIHRoaXMudmFsdWUsICcke25ld1htbFR2RmlsZX0nKTtgKTsKICAgIHhtbFR2SWRJbnB1dC5jbGFzc0xpc3QuYWRkKCdjaGFuZ2VkJyk7CiAgICB4bWxUdklkRGF0YWxpc3Quc2V0QXR0cmlidXRlKCdpZCcsICd4bWx0di1pZC1waWNrZXItZGF0YWxpc3QnKTsKICAgIC8vIEFkZCBuZXcgWE1MVFYgSUQgc2VsZWN0aW9uIGJveCB0byBpdCdzIHBhcmVudAogICAgeG1sVHZJZFBpY2tlclBhcmVudC5hcHBlbmRDaGlsZCh4bWxUdklkQ29udGFpbmVyKTsKICAgIGNoZWNrWG1sdHZDaGFubmVsKGVwZ01hcElkLCB4bWxUdklkSW5wdXQudmFsdWUsIG5ld1htbFR2RmlsZSk7Cn0KZnVuY3Rpb24gY2hlY2tYbWx0dkNoYW5uZWwoZXBnTWFwSWQsIG5ld1htbFR2SWQsIHhtbFR2RmlsZSkgewogICAgY29uc3QgY2hhbm5lbEFjdGl2ZUNiID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2FjdGl2ZScpOwogICAgY29uc3QgY2hhbm5lbEFjdGl2ZSA9IG5ld1htbFR2SWQgIT0gJy0nOwogICAgY2hhbm5lbEFjdGl2ZUNiLmNoZWNrZWQgPSBjaGFubmVsQWN0aXZlOwogICAgY2hhbm5lbEFjdGl2ZUNiLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJzsKICAgIGlmICh4bWxUdkZpbGUgIT0gJ3hUZVZlIER1bW15JyAmJiBjaGFubmVsQWN0aXZlID09IHRydWUpIHsKICAgICAgICBjaGFuZ2VDaGFubmVsTG9nbyhlcGdNYXBJZCk7CiAgICAgICAgcmV0dXJuOwogICAgfQogICAgaWYgKHhtbFR2RmlsZSA9PSAneFRlVmUgRHVtbXknKSB7CiAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3VwZGF0ZS1pY29uJykuY2hlY2tlZCA9IGZhbHNlOwogICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd1cGRhdGUtaWNvbicpLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJzsKICAgIH0KfQpmdW5jdGlvbiBjaGFuZ2VDaGFubmVsTG9nbyhlcGdNYXBJZCkgewogICAgY29uc3QgY2hhbm5lbCA9IFNFUlZFUlsneGVwZyddWydlcGdNYXBwaW5nJ11bZXBnTWFwSWRdOwogICAgY29uc3QgeG1sVHZGaWxlU2VsZWN0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3BvcHVwLXhtbHR2Jyk7CiAgICBjb25zdCB4bWxUdkZpbGUgPSB4bWxUdkZpbGVTZWxlY3Qub3B0aW9uc1t4bWxUdkZpbGVTZWxlY3Quc2VsZWN0ZWRJbmRleF0udmFsdWU7CiAgICBjb25zdCB4bWxUdklkSW5wdXQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgneG1sdHYtaWQtcGlja2VyLWlucHV0Jyk7CiAgICBjb25zdCBuZXdYbWxUdklkID0geG1sVHZJZElucHV0LnZhbHVlOwogICAgY29uc3QgdXBkYXRlTG9nbyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd1cGRhdGUtaWNvbicpLmNoZWNrZWQ7CiAgICBsZXQgbG9nbzsKICAgIGlmICh1cGRhdGVMb2dvID09IHRydWUgJiYgeG1sVHZGaWxlICE9ICd4VGVWZSBEdW1teScpIHsKICAgICAgICBpZiAoU0VSVkVSWyd4ZXBnJ11bJ3htbHR2TWFwJ11beG1sVHZGaWxlXS5oYXNPd25Qcm9wZXJ0eShuZXdYbWxUdklkKSkgewogICAgICAgICAgICBsb2dvID0gU0VSVkVSWyd4ZXBnJ11bJ3htbHR2TWFwJ11beG1sVHZGaWxlXVtuZXdYbWxUdklkXVsnaWNvbiddOwogICAgICAgIH0KICAgICAgICBlbHNlIHsKICAgICAgICAgICAgbG9nbyA9IGNoYW5uZWxbJ3R2Zy1sb2dvJ107CiAgICAgICAgfQogICAgICAgIHZhciBsb2dvSW5wdXQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY2hhbm5lbC1pY29uJyk7CiAgICAgICAgbG9nb0lucHV0LnZhbHVlID0gbG9nbzsKICAgICAgICBpZiAoQlVMS19FRElUID09IGZhbHNlKSB7CiAgICAgICAgICAgIGxvZ29JbnB1dC5jbGFzc05hbWUgPSAnY2hhbmdlZCc7CiAgICAgICAgfQogICAgfQp9CmZ1bmN0aW9uIHNhdmVQb3B1cERhdGEoZGF0YVR5cGUsIGlkLCByZW1vdmUsIG9wdGlvbikgewogICAgaWYgKGRhdGFUeXBlID09ICJtYXBwaW5nIikgewogICAgICAgIGxldCBkYXRhID0ge307CiAgICAgICAgbGV0IGNtZCA9ICJzYXZlRXBnTWFwcGluZyI7CiAgICAgICAgZGF0YVsiZXBnTWFwcGluZyJdID0gU0VSVkVSWyJ4ZXBnIl1bImVwZ01hcHBpbmciXTsKICAgICAgICBsZXQgc2VydmVyID0gbmV3IFNlcnZlcihjbWQpOwogICAgICAgIHNlcnZlci5yZXF1ZXN0KGRhdGEpOwogICAgICAgIGRlbGV0ZSBVTkRPWyJlcGdNYXBwaW5nIl07CiAgICAgICAgcmV0dXJuOwogICAgfQogICAgbGV0IGRpdiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJwb3B1cC1jdXN0b20iKTsKICAgIGxldCBpbnB1dHMgPSBkaXYuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlRBQkxFIilbMF0uZ2V0RWxlbWVudHNCeVRhZ05hbWUoIklOUFVUIik7CiAgICBsZXQgc2VsZWN0cyA9IGRpdi5nZXRFbGVtZW50c0J5VGFnTmFtZSgiVEFCTEUiKVswXS5nZXRFbGVtZW50c0J5VGFnTmFtZSgiU0VMRUNUIik7CiAgICBsZXQgaW5wdXQgPSB7fTsKICAgIGxldCBjb25maXJtTXNnOwogICAgZm9yIChsZXQgaSA9IDA7IGkgPCBzZWxlY3RzLmxlbmd0aDsgaSsrKSB7CiAgICAgICAgdmFyIG5hbWU7CiAgICAgICAgbmFtZSA9IHNlbGVjdHNbaV0ubmFtZTsKICAgICAgICB2YXIgdmFsdWUgPSBzZWxlY3RzW2ldLnZhbHVlOwogICAgICAgIHN3aXRjaCAobmFtZSkgewogICAgICAgICAgICBjYXNlICJ0dW5lciI6CiAgICAgICAgICAgICAgICBpbnB1dFtuYW1lXSA9IHBhcnNlSW50KHZhbHVlKTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAgICAgaW5wdXRbbmFtZV0gPSB2YWx1ZTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgIH0KICAgIH0KICAgIGZvciAobGV0IGkgPSAwOyBpIDwgaW5wdXRzLmxlbmd0aDsgaSsrKSB7CiAgICAgICAgc3dpdGNoIChpbnB1dHNbaV0udHlwZSkgewogICAgICAgICAgICBjYXNlICJjaGVja2JveCI6CiAgICAgICAgICAgICAgICBuYW1lID0gaW5wdXRzW2ldLm5hbWU7CiAgICAgICAgICAgICAgICBpbnB1dFtuYW1lXSA9IGlucHV0c1tpXS5jaGVja2VkOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgInRleHQiOgogICAgICAgICAgICBjYXNlICJoaWRkZW4iOgogICAgICAgICAgICBjYXNlICJwYXNzd29yZCI6CiAgICAgICAgICAgICAgICBuYW1lID0gaW5wdXRzW2ldLm5hbWU7CiAgICAgICAgICAgICAgICBzd2l0Y2ggKG5hbWUpIHsKICAgICAgICAgICAgICAgICAgICBjYXNlICJ0dW5lciI6CiAgICAgICAgICAgICAgICAgICAgICAgIGlucHV0W25hbWVdID0gcGFyc2VJbnQoaW5wdXRzW2ldLnZhbHVlKTsKICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgICAgICAgICAgICAgaW5wdXRbbmFtZV0gPSBpbnB1dHNbaV0udmFsdWU7CiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgfQogICAgfQogICAgbGV0IGRhdGEgPSB7fTsKICAgIGxldCBjbWQ7CiAgICBpZiAocmVtb3ZlID09IHRydWUpIHsKICAgICAgICBpbnB1dFsiZGVsZXRlIl0gPSB0cnVlOwogICAgfQogICAgc3dpdGNoIChkYXRhVHlwZSkgewogICAgICAgIGNhc2UgInVzZXJzIjoKICAgICAgICAgICAgY29uZmlybU1zZyA9ICJEZWxldGUgdGhpcyB1c2VyPyI7CiAgICAgICAgICAgIGlmIChpZCA9PSAiLSIpIHsKICAgICAgICAgICAgICAgIGNtZCA9ICJzYXZlTmV3VXNlciI7CiAgICAgICAgICAgICAgICBkYXRhWyJ1c2VyRGF0YSJdID0gaW5wdXQ7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICBjbWQgPSAic2F2ZVVzZXJEYXRhIjsKICAgICAgICAgICAgICAgIGxldCBkID0ge307CiAgICAgICAgICAgICAgICBkW2lkXSA9IGlucHV0OwogICAgICAgICAgICAgICAgZGF0YVsidXNlckRhdGEiXSA9IGQ7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgY2FzZSAibTN1IjoKICAgICAgICAgICAgY29uZmlybU1zZyA9ICJEZWxldGUgdGhpcyBwbGF5bGlzdD8iOwogICAgICAgICAgICBzd2l0Y2ggKG9wdGlvbikgewogICAgICAgICAgICAgICAgLy8gUG9wdXA6IFNhdmUKICAgICAgICAgICAgICAgIGNhc2UgMDoKICAgICAgICAgICAgICAgICAgICBjbWQgPSAic2F2ZUZpbGVzTTNVIjsKICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgIC8vIFBvcHVwOiBVcGRhdGUKICAgICAgICAgICAgICAgIGNhc2UgMToKICAgICAgICAgICAgICAgICAgICBjbWQgPSAidXBkYXRlRmlsZU0zVSI7CiAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZGF0YVsiZmlsZXMiXSA9IHt9OwogICAgICAgICAgICBkYXRhWyJmaWxlcyJdW2RhdGFUeXBlXSA9IHt9OwogICAgICAgICAgICBkYXRhWyJmaWxlcyJdW2RhdGFUeXBlXVtpZF0gPSBpbnB1dDsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgY2FzZSAiaGRociI6CiAgICAgICAgICAgIGNvbmZpcm1Nc2cgPSAiRGVsZXRlIHRoaXMgSERIb21lUnVuIHR1bmVyPyI7CiAgICAgICAgICAgIHN3aXRjaCAob3B0aW9uKSB7CiAgICAgICAgICAgICAgICAvLyBQb3B1cDogU2F2ZQogICAgICAgICAgICAgICAgY2FzZSAwOgogICAgICAgICAgICAgICAgICAgIGNtZCA9ICJzYXZlRmlsZXNIREhSIjsKICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgIC8vIFBvcHVwOiBVcGRhdGUKICAgICAgICAgICAgICAgIGNhc2UgMToKICAgICAgICAgICAgICAgICAgICBjbWQgPSAidXBkYXRlRmlsZUhESFIiOwogICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGRhdGFbImZpbGVzIl0gPSB7fTsKICAgICAgICAgICAgZGF0YVsiZmlsZXMiXVtkYXRhVHlwZV0gPSB7fTsKICAgICAgICAgICAgZGF0YVsiZmlsZXMiXVtkYXRhVHlwZV1baWRdID0gaW5wdXQ7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgIGNhc2UgInhtbHR2IjoKICAgICAgICAgICAgY29uZmlybU1zZyA9ICJEZWxldGUgdGhpcyBYTUxUViBmaWxlPyI7CiAgICAgICAgICAgIHN3aXRjaCAob3B0aW9uKSB7CiAgICAgICAgICAgICAgICAvLyBQb3B1cDogU2F2ZQogICAgICAgICAgICAgICAgY2FzZSAwOgogICAgICAgICAgICAgICAgICAgIGNtZCA9ICJzYXZlRmlsZXNYTUxUViI7CiAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAvLyBQb3B1cDogVXBkYXRlCiAgICAgICAgICAgICAgICBjYXNlIDE6CiAgICAgICAgICAgICAgICAgICAgY21kID0gInVwZGF0ZUZpbGVYTUxUViI7CiAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZGF0YVsiZmlsZXMiXSA9IHt9OwogICAgICAgICAgICBkYXRhWyJmaWxlcyJdW2RhdGFUeXBlXSA9IHt9OwogICAgICAgICAgICBkYXRhWyJmaWxlcyJdW2RhdGFUeXBlXVtpZF0gPSBpbnB1dDsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgY2FzZSAiZmlsdGVyIjoKICAgICAgICAgICAgY29uZmlybU1zZyA9ICJEZWxldGUgdGhpcyBmaWx0ZXI/IjsKICAgICAgICAgICAgY21kID0gInNhdmVGaWx0ZXIiOwogICAgICAgICAgICBkYXRhWyJmaWx0ZXIiXSA9IHt9OwogICAgICAgICAgICBkYXRhWyJmaWx0ZXIiXVtpZF0gPSBpbnB1dDsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgcmV0dXJuOwogICAgfQogICAgaWYgKHJlbW92ZSA9PSB0cnVlKSB7CiAgICAgICAgaWYgKCFjb25maXJtKGNvbmZpcm1Nc2cpKSB7CiAgICAgICAgICAgIHNob3dFbGVtZW50KCJwb3B1cCIsIGZhbHNlKTsKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KICAgIH0KICAgIGxldCBzZXJ2ZXIgPSBuZXcgU2VydmVyKGNtZCk7CiAgICBzZXJ2ZXIucmVxdWVzdChkYXRhKTsKfQpmdW5jdGlvbiBkb25lUG9wdXBEYXRhKGRhdGFUeXBlLCBpZHNTdHIpIHsKICAgIGxldCBpZHMgPSBpZHNTdHIuc3BsaXQoJywnKTsKICAgIGxldCBkaXYgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicG9wdXAtY3VzdG9tIik7CiAgICBsZXQgaW5wdXRzID0gZGl2LmdldEVsZW1lbnRzQnlDbGFzc05hbWUoImNoYW5nZWQiKTsKICAgIGlkcy5mb3JFYWNoKGlkID0+IHsKICAgICAgICBsZXQgaW5wdXQ7CiAgICAgICAgaW5wdXQgPSBTRVJWRVJbInhlcGciXVsiZXBnTWFwcGluZyJdW2lkXTsKICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGlucHV0cy5sZW5ndGg7IGkrKykgewogICAgICAgICAgICBsZXQgbmFtZTsKICAgICAgICAgICAgbGV0IHZhbHVlOwogICAgICAgICAgICBzd2l0Y2ggKGlucHV0c1tpXS50YWdOYW1lKSB7CiAgICAgICAgICAgICAgICBjYXNlICJJTlBVVCI6CiAgICAgICAgICAgICAgICAgICAgc3dpdGNoIChpbnB1dHNbaV0udHlwZSkgewogICAgICAgICAgICAgICAgICAgICAgICBjYXNlICJjaGVja2JveCI6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lID0gaW5wdXRzW2ldLm5hbWU7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IGlucHV0c1tpXS5jaGVja2VkOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5wdXRbbmFtZV0gPSB2YWx1ZTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICAgICAgICBjYXNlICJ0ZXh0IjoKICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWUgPSBpbnB1dHNbaV0ubmFtZTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlID0gaW5wdXRzW2ldLnZhbHVlOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5wdXRbbmFtZV0gPSB2YWx1ZTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgIGNhc2UgIlNFTEVDVCI6CiAgICAgICAgICAgICAgICAgICAgbmFtZSA9IGlucHV0c1tpXS5uYW1lOwogICAgICAgICAgICAgICAgICAgIHZhbHVlID0gaW5wdXRzW2ldLnZhbHVlOwogICAgICAgICAgICAgICAgICAgIGlucHV0W25hbWVdID0gdmFsdWU7CiAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgc3dpdGNoIChuYW1lKSB7CiAgICAgICAgICAgICAgICBjYXNlICJ0dmctbG9nbyI6CiAgICAgICAgICAgICAgICAgICAgLy8oZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpLmNoaWxkTm9kZXNbMl0uZmlyc3RDaGlsZCBhcyBIVE1MRWxlbWVudCkuc2V0QXR0cmlidXRlKCJzcmMiLCB2YWx1ZSkKICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgIGNhc2UgIngtbmFtZSI6CiAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpLmNoaWxkTm9kZXNbM10uZmlyc3RDaGlsZC5pbm5lckhUTUwgPSB2YWx1ZTsKICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgIGNhc2UgIngtY2F0ZWdvcnkiOgogICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5jaGlsZE5vZGVzWzNdLmZpcnN0Q2hpbGQuY2xhc3NOYW1lID0gdmFsdWU7CiAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICBjYXNlICJ1cGRhdGUtY2hhbm5lbC1uYW1lLXJlZ2V4IjoKICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkuY2hpbGROb2Rlc1s0XS5maXJzdENoaWxkLmlubmVySFRNTCA9IHZhbHVlOwogICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgY2FzZSAieC1ncm91cC10aXRsZSI6CiAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpLmNoaWxkTm9kZXNbNl0uZmlyc3RDaGlsZC5pbm5lckhUTUwgPSB2YWx1ZTsKICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgIGNhc2UgIngteG1sdHYtZmlsZSI6CiAgICAgICAgICAgICAgICAgICAgaWYgKHZhbHVlICE9ICJ4VGVWZSBEdW1teSIgJiYgdmFsdWUgIT0gIi0iKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlID0gZ2V0VmFsdWVGcm9tUHJvdmlkZXJGaWxlKHZhbHVlLCAieG1sdHYiLCAibmFtZSIpOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBpZiAodmFsdWUgPT0gIi0iKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGlucHV0WyJ4LWFjdGl2ZSJdID0gZmFsc2U7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5jaGlsZE5vZGVzWzddLmZpcnN0Q2hpbGQuaW5uZXJIVE1MID0gdmFsdWU7CiAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICBjYXNlICJ4LW1hcHBpbmciOgogICAgICAgICAgICAgICAgICAgIGlmICh2YWx1ZSA9PSAiLSIpIHsKICAgICAgICAgICAgICAgICAgICAgICAgaW5wdXRbIngtYWN0aXZlIl0gPSBmYWxzZTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpLmNoaWxkTm9kZXNbOF0uZmlyc3RDaGlsZC5pbm5lckhUTUwgPSB2YWx1ZTsKICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgIGNhc2UgIngtdGltZXNoaWZ0IjoKICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkuY2hpbGROb2Rlc1s5XS5maXJzdENoaWxkLmlubmVySFRNTCA9IHZhbHVlOwogICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgfQogICAgICAgICAgICBjcmVhdGVTZWFyY2hPYmooKTsKICAgICAgICAgICAgc2VhcmNoSW5NYXBwaW5nKCk7CiAgICAgICAgfQogICAgICAgIGlmIChpbnB1dFsieC1hY3RpdmUiXSA9PSBmYWxzZSkgewogICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkuY2xhc3NOYW1lID0gIm5vdEFjdGl2ZUVQRyI7CiAgICAgICAgfQogICAgICAgIGVsc2UgewogICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkuY2xhc3NOYW1lID0gImFjdGl2ZUVQRyI7CiAgICAgICAgfQogICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5jaGlsZE5vZGVzWzJdLmZpcnN0Q2hpbGQuc2V0QXR0cmlidXRlKCJzcmMiLCBpbnB1dFsidHZnLWxvZ28iXSk7CiAgICB9KTsKICAgIHNob3dFbGVtZW50KCJwb3B1cCIsIGZhbHNlKTsKICAgIHJldHVybjsKfQpmdW5jdGlvbiBzaG93UHJldmlldyhlbGVtZW50KSB7CiAgICBsZXQgZGl2ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm15U3RyZWFtc0JveCIpOwogICAgc3dpdGNoIChlbGVtZW50KSB7CiAgICAgICAgY2FzZSBmYWxzZToKICAgICAgICAgICAgZGl2LmNsYXNzTmFtZSA9ICJub3RWaXNpYmxlIjsKICAgICAgICAgICAgcmV0dXJuOwogICAgfQogICAgbGV0IHN0cmVhbXMgPSBbImFjdGl2ZVN0cmVhbXMiLCAiaW5hY3RpdmVTdHJlYW1zIl07CiAgICBzdHJlYW1zLmZvckVhY2gocHJldmlldyA9PiB7CiAgICAgICAgbGV0IHRhYmxlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQocHJldmlldyk7CiAgICAgICAgdGFibGUuaW5uZXJIVE1MID0gIiI7CiAgICAgICAgbGV0IG9iaiA9IFNFUlZFUlsiZGF0YSJdWyJTdHJlYW1QcmV2aWV3VUkiXVtwcmV2aWV3XTsKICAgICAgICBvYmouZm9yRWFjaChjaGFubmVsID0+IHsKICAgICAgICAgICAgbGV0IHRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVFIiKTsKICAgICAgICAgICAgbGV0IHRkS2V5ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsKICAgICAgICAgICAgbGV0IHRkVmFsID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsKICAgICAgICAgICAgdGRLZXkuY2xhc3NOYW1lID0gInRkS2V5IjsKICAgICAgICAgICAgdGRWYWwuY2xhc3NOYW1lID0gInRkVmFsIjsKICAgICAgICAgICAgc3dpdGNoIChwcmV2aWV3KSB7CiAgICAgICAgICAgICAgICBjYXNlICJhY3RpdmVTdHJlYW1zIjoKICAgICAgICAgICAgICAgICAgICB0ZEtleS5pbm5lclRleHQgPSAiQ2hhbm5lbDogKCspIjsKICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgIGNhc2UgImluYWN0aXZlU3RyZWFtcyI6CiAgICAgICAgICAgICAgICAgICAgdGRLZXkuaW5uZXJUZXh0ID0gIkNoYW5uZWw6ICgtKSI7CiAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgdGRWYWwuaW5uZXJUZXh0ID0gY2hhbm5lbDsKICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQodGRLZXkpOwogICAgICAgICAgICB0ci5hcHBlbmRDaGlsZCh0ZFZhbCk7CiAgICAgICAgICAgIHRhYmxlLmFwcGVuZENoaWxkKHRyKTsKICAgICAgICB9KTsKICAgIH0pOwogICAgc2hvd0VsZW1lbnQoImxvYWRpbmciLCBmYWxzZSk7CiAgICBkaXYuY2xhc3NOYW1lID0gInZpc2libGUiOwogICAgcmV0dXJuOwp9Cg==" + webUI["html/js/network_ts.js"] = "Y2xhc3MgU2VydmVyIHsKICAgIGNvbnN0cnVjdG9yKGNtZCkgewogICAgICAgIHRoaXMuY21kID0gY21kOwogICAgfQogICAgcmVxdWVzdChkYXRhKSB7CiAgICAgICAgaWYgKFNFUlZFUl9DT05ORUNUSU9OID09IHRydWUpIHsKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KICAgICAgICBTRVJWRVJfQ09OTkVDVElPTiA9IHRydWU7CiAgICAgICAgaWYgKHRoaXMuY21kICE9ICJ1cGRhdGVMb2ciKSB7CiAgICAgICAgICAgIHNob3dFbGVtZW50KCJsb2FkaW5nIiwgdHJ1ZSk7CiAgICAgICAgICAgIFVORE8gPSBuZXcgT2JqZWN0KCk7CiAgICAgICAgfQogICAgICAgIHN3aXRjaCAod2luZG93LmxvY2F0aW9uLnByb3RvY29sKSB7CiAgICAgICAgICAgIGNhc2UgImh0dHA6IjoKICAgICAgICAgICAgICAgIHRoaXMucHJvdG9jb2wgPSAid3M6Ly8iOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgImh0dHBzOiI6CiAgICAgICAgICAgICAgICB0aGlzLnByb3RvY29sID0gIndzczovLyI7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICB9CiAgICAgICAgdmFyIHVybCA9IHRoaXMucHJvdG9jb2wgKyB3aW5kb3cubG9jYXRpb24uaG9zdG5hbWUgKyAiOiIgKyB3aW5kb3cubG9jYXRpb24ucG9ydCArICIvZGF0YS8iICsgIj9Ub2tlbj0iICsgZ2V0Q29va2llKCJUb2tlbiIpOwogICAgICAgIGRhdGFbImNtZCJdID0gdGhpcy5jbWQ7CiAgICAgICAgdmFyIHdzID0gbmV3IFdlYlNvY2tldCh1cmwpOwogICAgICAgIHdzLm9ub3BlbiA9IGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgV1NfQVZBSUxBQkxFID0gdHJ1ZTsKICAgICAgICAgICAgdGhpcy5zZW5kKEpTT04uc3RyaW5naWZ5KGRhdGEpKTsKICAgICAgICB9OwogICAgICAgIHdzLm9uZXJyb3IgPSBmdW5jdGlvbiAod3NFcnJFdnQpIHsKICAgICAgICAgICAgY29uc29sZS5sb2coIk5vIHdlYnNvY2tldCBjb25uZWN0aW9uIHRvIHhUZVZlIGNvdWxkIGJlIGVzdGFibGlzaGVkLiBDaGVjayB5b3VyIG5ldHdvcmsgY29uZmlndXJhdGlvbi4iKTsKICAgICAgICAgICAgU0VSVkVSX0NPTk5FQ1RJT04gPSBmYWxzZTsKICAgICAgICAgICAgaWYgKFdTX0FWQUlMQUJMRSA9PSBmYWxzZSkgewogICAgICAgICAgICAgICAgYWxlcnQoIk5vIHdlYnNvY2tldCBjb25uZWN0aW9uIHRvIHhUZVZlIGNvdWxkIGJlIGVzdGFibGlzaGVkLiBDaGVjayB5b3VyIG5ldHdvcmsgY29uZmlndXJhdGlvbi4iKTsKICAgICAgICAgICAgfQogICAgICAgIH07CiAgICAgICAgd3Mub25tZXNzYWdlID0gZnVuY3Rpb24gKHdzTWVzc2FnZUV2dCkgewogICAgICAgICAgICBTRVJWRVJfQ09OTkVDVElPTiA9IGZhbHNlOwogICAgICAgICAgICBzaG93RWxlbWVudCgibG9hZGluZyIsIGZhbHNlKTsKICAgICAgICAgICAgY29uc3QgcmVzcG9uc2UgPSBKU09OLnBhcnNlKHdzTWVzc2FnZUV2dC5kYXRhKTsKICAgICAgICAgICAgaWYgKHJlc3BvbnNlLmhhc093blByb3BlcnR5KCJ0b2tlbiIpKSB7CiAgICAgICAgICAgICAgICBkb2N1bWVudC5jb29raWUgPSAiVG9rZW49IiArIHJlc3BvbnNlWyJ0b2tlbiJdOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGlmIChyZXNwb25zZVsic3RhdHVzIl0gPT0gZmFsc2UpIHsKICAgICAgICAgICAgICAgIGFsZXJ0KHJlc3BvbnNlWyJlcnIiXSk7CiAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgIH0KICAgICAgICAgICAgaWYgKHJlc3BvbnNlLmhhc093blByb3BlcnR5KCdvcGVuTGluaycpKSB7CiAgICAgICAgICAgICAgICB3aW5kb3cubG9jYXRpb24gPSByZXNwb25zZVsnb3BlbkxpbmsnXTsKICAgICAgICAgICAgfQogICAgICAgICAgICBpZiAocmVzcG9uc2UuaGFzT3duUHJvcGVydHkoInJlbG9hZCIpKSB7CiAgICAgICAgICAgICAgICB3aW5kb3cubG9jYXRpb24ucmVsb2FkKCk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgaWYgKHJlc3BvbnNlLmhhc093blByb3BlcnR5KCJhbGVydCIpKSB7CiAgICAgICAgICAgICAgICBhbGVydChyZXNwb25zZVsiYWxlcnQiXSk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgaWYgKHJlc3BvbnNlLmhhc093blByb3BlcnR5KCJsb2dvVVJMIikpIHsKICAgICAgICAgICAgICAgIHZhciBkaXYgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY2hhbm5lbC1pY29uIik7CiAgICAgICAgICAgICAgICBkaXYudmFsdWUgPSByZXNwb25zZVsibG9nb1VSTCJdOwogICAgICAgICAgICAgICAgZGl2LmNsYXNzTmFtZSA9ICJjaGFuZ2VkIjsKICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgfQogICAgICAgICAgICBzd2l0Y2ggKGRhdGFbImNtZCJdKSB7CiAgICAgICAgICAgICAgICBjYXNlICJ1cGRhdGVMb2ciOgogICAgICAgICAgICAgICAgICAgIFNFUlZFUlsibG9nIl0gPSByZXNwb25zZVsibG9nIl07CiAgICAgICAgICAgICAgICAgICAgaWYgKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb250ZW50X2xvZyIpKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIHNob3dMb2dzKGZhbHNlKTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgICAgICAgICBTRVJWRVIgPSBuZXcgT2JqZWN0KCk7CiAgICAgICAgICAgICAgICAgICAgU0VSVkVSID0gcmVzcG9uc2U7CiAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgaWYgKHJlc3BvbnNlLmhhc093blByb3BlcnR5KCJvcGVuTWVudSIpKSB7CiAgICAgICAgICAgICAgICB2YXIgbWVudSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHJlc3BvbnNlWyJvcGVuTWVudSJdKTsKICAgICAgICAgICAgICAgIG1lbnUuY2xpY2soKTsKICAgICAgICAgICAgICAgIHNob3dFbGVtZW50KCJwb3B1cCIsIGZhbHNlKTsKICAgICAgICAgICAgfQogICAgICAgICAgICBpZiAocmVzcG9uc2UuaGFzT3duUHJvcGVydHkoInJlbG9hZCIpKSB7CiAgICAgICAgICAgICAgICBsb2NhdGlvbi5yZWxvYWQoKTsKICAgICAgICAgICAgfQogICAgICAgICAgICBpZiAocmVzcG9uc2UuaGFzT3duUHJvcGVydHkoIndpemFyZCIpKSB7CiAgICAgICAgICAgICAgICBjcmVhdGVMYXlvdXQoKTsKICAgICAgICAgICAgICAgIGNvbmZpZ3VyYXRpb25XaXphcmRbcmVzcG9uc2VbIndpemFyZCJdXS5jcmVhdGVXaXphcmQoKTsKICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgfQogICAgICAgICAgICBjcmVhdGVMYXlvdXQoKTsKICAgICAgICB9OwogICAgfQp9CmZ1bmN0aW9uIGdldENvb2tpZShuYW1lKSB7CiAgICB2YXIgdmFsdWUgPSAiOyAiICsgZG9jdW1lbnQuY29va2llOwogICAgdmFyIHBhcnRzID0gdmFsdWUuc3BsaXQoIjsgIiArIG5hbWUgKyAiPSIpOwogICAgaWYgKHBhcnRzLmxlbmd0aCA9PSAyKSB7CiAgICAgICAgcmV0dXJuIHBhcnRzLnBvcCgpLnNwbGl0KCI7Iikuc2hpZnQoKTsKICAgIH0KfQo=" + webUI["html/js/settings_ts.js"] = "Y2xhc3MgU2V0dGluZ3NDYXRlZ29yeSB7CiAgICBjb25zdHJ1Y3RvcigpIHsKICAgICAgICB0aGlzLkRvY3VtZW50SUQgPSAiY29udGVudF9zZXR0aW5ncyI7CiAgICB9CiAgICBjcmVhdGVDYXRlZ29yeUhlYWRsaW5lKHZhbHVlKSB7CiAgICAgICAgdmFyIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJINCIpOwogICAgICAgIGVsZW1lbnQuaW5uZXJIVE1MID0gdmFsdWU7CiAgICAgICAgcmV0dXJuIGVsZW1lbnQ7CiAgICB9CiAgICBjcmVhdGVIUigpIHsKICAgICAgICB2YXIgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIkhSIik7CiAgICAgICAgcmV0dXJuIGVsZW1lbnQ7CiAgICB9CiAgICBjcmVhdGVTZXR0aW5ncyhzZXR0aW5nc0tleSkgewogICAgICAgIHZhciBzZXR0aW5nID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVFIiKTsKICAgICAgICB2YXIgY29udGVudCA9IG5ldyBQb3B1cENvbnRlbnQoKTsKICAgICAgICB2YXIgZGF0YSA9IFNFUlZFUlsic2V0dGluZ3MiXVtzZXR0aW5nc0tleV07CiAgICAgICAgc3dpdGNoIChzZXR0aW5nc0tleSkgewogICAgICAgICAgICAvLyBUZXh0IGlucHV0cwogICAgICAgICAgICBjYXNlICJ1cGRhdGUiOgogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7CiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLnVwZGF0ZS50aXRsZX19IiArICI6IjsKICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsKICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCAidXBkYXRlIiwgZGF0YS50b1N0cmluZygpKTsKICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3suc2V0dGluZ3MudXBkYXRlLnBsYWNlaG9sZGVyfX0iKTsKICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsKICAgICAgICAgICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQoaW5wdXQpOwogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOwogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJiYWNrdXAucGF0aCI6CiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsKICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MuYmFja3VwUGF0aC50aXRsZX19IiArICI6IjsKICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsKICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCAiYmFja3VwLnBhdGgiLCBkYXRhKTsKICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3suc2V0dGluZ3MuYmFja3VwUGF0aC5wbGFjZWhvbGRlcn19Iik7CiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7CiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsKICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsKICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAidGVtcC5wYXRoIjoKICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOwogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy50ZW1wUGF0aC50aXRsZX19IiArICI6IjsKICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsKICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCAidGVtcC5wYXRoIiwgZGF0YSk7CiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnNldHRpbmdzLnRtcFBhdGgucGxhY2Vob2xkZXJ9fSIpOwogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOwogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7CiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7CiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgInVzZXIuYWdlbnQiOgogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7CiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLnVzZXJBZ2VudC50aXRsZX19IiArICI6IjsKICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsKICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCAidXNlci5hZ2VudCIsIGRhdGEpOwogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5zZXR0aW5ncy51c2VyQWdlbnQucGxhY2Vob2xkZXJ9fSIpOwogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOwogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7CiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7CiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgImJ1ZmZlci50aW1lb3V0IjoKICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOwogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5idWZmZXJUaW1lb3V0LnRpdGxlfX0iICsgIjoiOwogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOwogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsICJidWZmZXIudGltZW91dCIsIGRhdGEpOwogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5zZXR0aW5ncy5idWZmZXJUaW1lb3V0LnBsYWNlaG9sZGVyfX0iKTsKICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsKICAgICAgICAgICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQoaW5wdXQpOwogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOwogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJmZm1wZWcucGF0aCI6CiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsKICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MuZmZtcGVnUGF0aC50aXRsZX19IiArICI6IjsKICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsKICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCAiZmZtcGVnLnBhdGgiLCBkYXRhKTsKICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3suc2V0dGluZ3MuZmZtcGVnUGF0aC5wbGFjZWhvbGRlcn19Iik7CiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7CiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsKICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsKICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAiZmZtcGVnLm9wdGlvbnMiOgogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7CiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmZmbXBlZ09wdGlvbnMudGl0bGV9fSIgKyAiOiI7CiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7CiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgImZmbXBlZy5vcHRpb25zIiwgZGF0YSk7CiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnNldHRpbmdzLmZmbXBlZ09wdGlvbnMucGxhY2Vob2xkZXJ9fSIpOwogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOwogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7CiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7CiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgInZsYy5wYXRoIjoKICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOwogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy52bGNQYXRoLnRpdGxlfX0iICsgIjoiOwogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOwogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsICJ2bGMucGF0aCIsIGRhdGEpOwogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5zZXR0aW5ncy52bGNQYXRoLnBsYWNlaG9sZGVyfX0iKTsKICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsKICAgICAgICAgICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQoaW5wdXQpOwogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOwogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJ2bGMub3B0aW9ucyI6CiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsKICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MudmxjT3B0aW9ucy50aXRsZX19IiArICI6IjsKICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsKICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCAidmxjLm9wdGlvbnMiLCBkYXRhKTsKICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3suc2V0dGluZ3MudmxjT3B0aW9ucy5wbGFjZWhvbGRlcn19Iik7CiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7CiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsKICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsKICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgLy8gQ2hlY2tib3hlcwogICAgICAgICAgICBjYXNlICJ0bHNNb2RlIjoKICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOwogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy50bHNNb2RlLnRpdGxlfX0iICsgIjoiOwogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOwogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChzZXR0aW5nc0tleSk7CiAgICAgICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YTsKICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsKICAgICAgICAgICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQoaW5wdXQpOwogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOwogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJkaXNhbGxvd1VSTER1cGxpY2F0ZXMiOgogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7CiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmRpc2FsbG93VVJMRHVwbGljYXRlcy50aXRsZX19IiArICI6IjsKICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsKICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goc2V0dGluZ3NLZXkpOwogICAgICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGE7CiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7CiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsKICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsKICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAiYXV0aGVudGljYXRpb24ud2ViIjoKICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOwogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5hdXRoZW50aWNhdGlvbldFQi50aXRsZX19IiArICI6IjsKICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsKICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goc2V0dGluZ3NLZXkpOwogICAgICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGE7CiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7CiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsKICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsKICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAiYXV0aGVudGljYXRpb24ucG1zIjoKICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOwogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5hdXRoZW50aWNhdGlvblBNUy50aXRsZX19IiArICI6IjsKICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsKICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goc2V0dGluZ3NLZXkpOwogICAgICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGE7CiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7CiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsKICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsKICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAiYXV0aGVudGljYXRpb24ubTN1IjoKICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOwogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5hdXRoZW50aWNhdGlvbk0zVS50aXRsZX19IiArICI6IjsKICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsKICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goc2V0dGluZ3NLZXkpOwogICAgICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGE7CiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7CiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsKICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsKICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAiYXV0aGVudGljYXRpb24ueG1sIjoKICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOwogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5hdXRoZW50aWNhdGlvblhNTC50aXRsZX19IiArICI6IjsKICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsKICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goc2V0dGluZ3NLZXkpOwogICAgICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGE7CiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7CiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsKICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsKICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAiYXV0aGVudGljYXRpb24uYXBpIjoKICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOwogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5hdXRoZW50aWNhdGlvbkFQSS50aXRsZX19IiArICI6IjsKICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsKICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goc2V0dGluZ3NLZXkpOwogICAgICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGE7CiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7CiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsKICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsKICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAiZmlsZXMudXBkYXRlIjoKICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOwogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5maWxlc1VwZGF0ZS50aXRsZX19IiArICI6IjsKICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsKICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goc2V0dGluZ3NLZXkpOwogICAgICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGE7CiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7CiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsKICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsKICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAiY2FjaGUuaW1hZ2VzIjoKICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOwogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5jYWNoZUltYWdlcy50aXRsZX19IiArICI6IjsKICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsKICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goc2V0dGluZ3NLZXkpOwogICAgICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGE7CiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7CiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsKICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsKICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAieGVwZy5yZXBsYWNlLm1pc3NpbmcuaW1hZ2VzIjoKICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOwogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5yZXBsYWNlRW1wdHlJbWFnZXMudGl0bGV9fSIgKyAiOiI7CiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7CiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KHNldHRpbmdzS2V5KTsKICAgICAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhOwogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOwogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7CiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7CiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgInN0b3JlQnVmZmVySW5SQU0iOgogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7CiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLnN0b3JlQnVmZmVySW5SQU0udGl0bGV9fSIgKyAiOiI7CiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7CiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KHNldHRpbmdzS2V5KTsKICAgICAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhOwogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOwogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7CiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7CiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgInh0ZXZlQXV0b1VwZGF0ZSI6CiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsKICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MueHRldmVBdXRvVXBkYXRlLnRpdGxlfX0iICsgIjoiOwogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOwogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChzZXR0aW5nc0tleSk7CiAgICAgICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YTsKICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsKICAgICAgICAgICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQoaW5wdXQpOwogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOwogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJjbGVhclhNTFRWQ2FjaGUiOgogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7CiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmNsZWFyWE1MVFZDYWNoZS50aXRsZX19IiArICI6IjsKICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsKICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goc2V0dGluZ3NLZXkpOwogICAgICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGE7CiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7CiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsKICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsKICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAiYXBpIjoKICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOwogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5hcGkudGl0bGV9fSIgKyAiOiI7CiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7CiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KHNldHRpbmdzS2V5KTsKICAgICAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhOwogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOwogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7CiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7CiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgImVuYWJsZU1hcHBlZENoYW5uZWxzIjoKICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOwogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5lbmFibGVNYXBwZWRDaGFubmVscy50aXRsZX19IiArICI6IjsKICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsKICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goc2V0dGluZ3NLZXkpOwogICAgICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGE7CiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7CiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsKICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsKICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgLy8gU2VsZWN0CiAgICAgICAgICAgIGNhc2UgImhvc3RJUCI6CiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsKICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MuaG9zdElQLnRpdGxlfX0iICsgIjoiOwogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOwogICAgICAgICAgICAgICAgdmFyIHRleHQgPSBTRVJWRVJbImlwQWRkcmVzc2VzVjRIb3N0Il07CiAgICAgICAgICAgICAgICB2YXIgdmFsdWVzID0gU0VSVkVSWyJpcEFkZHJlc3Nlc1Y0SG9zdCJdOwogICAgICAgICAgICAgICAgdmFyIHNlbGVjdCA9IGNvbnRlbnQuY3JlYXRlU2VsZWN0KHRleHQsIHZhbHVlcywgZGF0YSwgc2V0dGluZ3NLZXkpOwogICAgICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsKICAgICAgICAgICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQoc2VsZWN0KTsKICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsKICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAidHVuZXIiOgogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7CiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLnR1bmVyLnRpdGxlfX0iICsgIjoiOwogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOwogICAgICAgICAgICAgICAgdmFyIHRleHQgPSBuZXcgQXJyYXkoKTsKICAgICAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBuZXcgQXJyYXkoKTsKICAgICAgICAgICAgICAgIGZvciAodmFyIGkgPSAxOyBpIDw9IDEwMDsgaSsrKSB7CiAgICAgICAgICAgICAgICAgICAgdGV4dC5wdXNoKGkpOwogICAgICAgICAgICAgICAgICAgIHZhbHVlcy5wdXNoKGkpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgdmFyIHNlbGVjdCA9IGNvbnRlbnQuY3JlYXRlU2VsZWN0KHRleHQsIHZhbHVlcywgZGF0YSwgc2V0dGluZ3NLZXkpOwogICAgICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsKICAgICAgICAgICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQoc2VsZWN0KTsKICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsKICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAiZXBnU291cmNlIjoKICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOwogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5lcGdTb3VyY2UudGl0bGV9fSIgKyAiOiI7CiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7CiAgICAgICAgICAgICAgICB2YXIgdGV4dCA9IFsiUE1TIiwgIlhFUEciXTsKICAgICAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBbIlBNUyIsICJYRVBHIl07CiAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCBkYXRhLCBzZXR0aW5nc0tleSk7CiAgICAgICAgICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOwogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChzZWxlY3QpOwogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOwogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJkZWZhdWx0TWlzc2luZ0VQRyI6CiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsKICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MuZGVmYXVsdE1pc3NpbmdFUEcudGl0bGV9fSIgKyAiOiI7CiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7CiAgICAgICAgICAgICAgICB2YXIgdGV4dCA9IFsKICAgICAgICAgICAgICAgICAgICAiLSIsICIzMCBNaW51dGVzICgzMF9NaW51dGVzKSIsICI2MCBNaW51dGVzICg2MF9NaW51dGVzKSIsICI5MCBNaW51dGVzICg5MF9NaW51dGVzKSIsCiAgICAgICAgICAgICAgICAgICAgIjEyMCBNaW51dGVzICgxMjBfTWludXRlcykiLCAiMTgwIE1pbnV0ZXMgKDE4MF9NaW51dGVzKSIsICIyNDAgTWludXRlcyAoMjQwX01pbnV0ZXMpIiwgIjM2MCBNaW51dGVzICgzNjBfTWludXRlcykiCiAgICAgICAgICAgICAgICBdOwogICAgICAgICAgICAgICAgdmFyIHZhbHVlcyA9IFsKICAgICAgICAgICAgICAgICAgICAiLSIsICIzMF9NaW51dGVzIiwgIjYwX01pbnV0ZXMiLCAiOTBfTWludXRlcyIsICIxMjBfTWludXRlcyIsICIxODBfTWludXRlcyIsICIyNDBfTWludXRlcyIsICIzNjBfTWludXRlcyIKICAgICAgICAgICAgICAgIF07CiAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCBkYXRhLCBzZXR0aW5nc0tleSk7CiAgICAgICAgICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOwogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChzZWxlY3QpOwogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOwogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJiYWNrdXAua2VlcCI6CiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsKICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MuYmFja3VwS2VlcC50aXRsZX19IiArICI6IjsKICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsKICAgICAgICAgICAgICAgIHZhciB0ZXh0ID0gWyI1IiwgIjEwIiwgIjIwIiwgIjMwIiwgIjQwIiwgIjUwIl07CiAgICAgICAgICAgICAgICB2YXIgdmFsdWVzID0gWyI1IiwgIjEwIiwgIjIwIiwgIjMwIiwgIjQwIiwgIjUwIl07CiAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCBkYXRhLCBzZXR0aW5nc0tleSk7CiAgICAgICAgICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOwogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChzZWxlY3QpOwogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOwogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJidWZmZXIuc2l6ZS5rYiI6CiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsKICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MuYnVmZmVyU2l6ZS50aXRsZX19IiArICI6IjsKICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsKICAgICAgICAgICAgICAgIHZhciB0ZXh0ID0gWyIwLjUgTUIiLCAiMSBNQiIsICIyIE1CIiwgIjMgTUIiLCAiNCBNQiIsICI1IE1CIiwgIjYgTUIiLCAiNyBNQiIsICI4IE1CIl07CiAgICAgICAgICAgICAgICB2YXIgdmFsdWVzID0gWyI1MTIiLCAiMTAyNCIsICIyMDQ4IiwgIjMwNzIiLCAiNDA5NiIsICI1MTIwIiwgIjYxNDQiLCAiNzE2OCIsICI4MTkyIl07CiAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCBkYXRhLCBzZXR0aW5nc0tleSk7CiAgICAgICAgICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOwogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChzZWxlY3QpOwogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOwogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJidWZmZXIiOgogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7CiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLnN0cmVhbUJ1ZmZlcmluZy50aXRsZX19IiArICI6IjsKICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsKICAgICAgICAgICAgICAgIHZhciB0ZXh0ID0gWyJ7ey5zZXR0aW5ncy5zdHJlYW1CdWZmZXJpbmcuaW5mb19mYWxzZX19IiwgInhUZVZlOiAoe3suc2V0dGluZ3Muc3RyZWFtQnVmZmVyaW5nLmluZm9feHRldmV9fSkiLCAiRkZtcGVnOiAoe3suc2V0dGluZ3Muc3RyZWFtQnVmZmVyaW5nLmluZm9fZmZtcGVnfX0pIiwgIlZMQzogKHt7LnNldHRpbmdzLnN0cmVhbUJ1ZmZlcmluZy5pbmZvX3ZsY319KSJdOwogICAgICAgICAgICAgICAgdmFyIHZhbHVlcyA9IFsiLSIsICJ4dGV2ZSIsICJmZm1wZWciLCAidmxjIl07CiAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCBkYXRhLCBzZXR0aW5nc0tleSk7CiAgICAgICAgICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOwogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChzZWxlY3QpOwogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOwogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJ1ZHB4eSI6CiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsKICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MudWRweHkudGl0bGV9fSIgKyAiOiI7CiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7CiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgInVkcHh5IiwgZGF0YSk7CiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnNldHRpbmdzLnVkcHh5LnBsYWNlaG9sZGVyfX0iKTsKICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsKICAgICAgICAgICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQoaW5wdXQpOwogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOwogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgIH0KICAgICAgICByZXR1cm4gc2V0dGluZzsKICAgIH0KICAgIGNyZWF0ZURlc2NyaXB0aW9uKHNldHRpbmdzS2V5KSB7CiAgICAgICAgdmFyIGRlc2NyaXB0aW9uID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVFIiKTsKICAgICAgICB2YXIgdGV4dDsKICAgICAgICBzd2l0Y2ggKHNldHRpbmdzS2V5KSB7CiAgICAgICAgICAgIGNhc2UgInRsc01vZGUiOgogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy50bHNNb2RlLmRlc2NyaXB0aW9ufX0iOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgImRpc2FsbG93VVJMRHVwbGljYXRlcyI6CiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLmRpc2FsbG93VVJMRHVwbGljYXRlcy5kZXNjcmlwdGlvbn19IjsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJhdXRoZW50aWNhdGlvbi53ZWIiOgogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5hdXRoZW50aWNhdGlvbldFQi5kZXNjcmlwdGlvbn19IjsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJhdXRoZW50aWNhdGlvbi5tM3UiOgogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5hdXRoZW50aWNhdGlvbk0zVS5kZXNjcmlwdGlvbn19IjsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJhdXRoZW50aWNhdGlvbi5wbXMiOgogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5hdXRoZW50aWNhdGlvblBNUy5kZXNjcmlwdGlvbn19IjsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJhdXRoZW50aWNhdGlvbi54bWwiOgogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5hdXRoZW50aWNhdGlvblhNTC5kZXNjcmlwdGlvbn19IjsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJhdXRoZW50aWNhdGlvbi5hcGkiOgogICAgICAgICAgICAgICAgaWYgKFNFUlZFUlsic2V0dGluZ3MiXVsiYXV0aGVudGljYXRpb24ud2ViIl0gPT0gdHJ1ZSkgewogICAgICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MuYXV0aGVudGljYXRpb25BUEkuZGVzY3JpcHRpb259fSI7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAieHRldmVBdXRvVXBkYXRlIjoKICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MueHRldmVBdXRvVXBkYXRlLmRlc2NyaXB0aW9ufX0iOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgImJhY2t1cC5rZWVwIjoKICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MuYmFja3VwS2VlcC5kZXNjcmlwdGlvbn19IjsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJiYWNrdXAucGF0aCI6CiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLmJhY2t1cFBhdGguZGVzY3JpcHRpb259fSI7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAidGVtcC5wYXRoIjoKICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MudGVtcFBhdGguZGVzY3JpcHRpb259fSI7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAiYnVmZmVyIjoKICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3Muc3RyZWFtQnVmZmVyaW5nLmRlc2NyaXB0aW9ufX0iOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgImJ1ZmZlci5zaXplLmtiIjoKICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MuYnVmZmVyU2l6ZS5kZXNjcmlwdGlvbn19IjsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJzdG9yZUJ1ZmZlckluUkFNIjoKICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3Muc3RvcmVCdWZmZXJJblJBTS5kZXNjcmlwdGlvbn19IjsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJidWZmZXIudGltZW91dCI6CiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLmJ1ZmZlclRpbWVvdXQuZGVzY3JpcHRpb259fSI7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAidXNlci5hZ2VudCI6CiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLnVzZXJBZ2VudC5kZXNjcmlwdGlvbn19IjsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJmZm1wZWcucGF0aCI6CiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLmZmbXBlZ1BhdGguZGVzY3JpcHRpb259fSI7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAiZmZtcGVnLm9wdGlvbnMiOgogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5mZm1wZWdPcHRpb25zLmRlc2NyaXB0aW9ufX0iOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgInZsYy5wYXRoIjoKICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MudmxjUGF0aC5kZXNjcmlwdGlvbn19IjsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJ2bGMub3B0aW9ucyI6CiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLnZsY09wdGlvbnMuZGVzY3JpcHRpb259fSI7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAiZXBnU291cmNlIjoKICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MuZXBnU291cmNlLmRlc2NyaXB0aW9ufX0iOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgImhvc3RJUCI6CiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLmhvc3RJUC5kZXNjcmlwdGlvbn19IjsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJ0dW5lciI6CiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLnR1bmVyLmRlc2NyaXB0aW9ufX0iOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgInVwZGF0ZSI6CiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLnVwZGF0ZS5kZXNjcmlwdGlvbn19IjsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJjbGVhclhNTFRWQ2FjaGUiOgogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5jbGVhclhNTFRWQ2FjaGUuZGVzY3JpcHRpb259fSI7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAiYXBpIjoKICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MuYXBpLmRlc2NyaXB0aW9ufX0iOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgImRlZmF1bHRNaXNzaW5nRVBHIjoKICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MuZGVmYXVsdE1pc3NpbmdFUEcuZGVzY3JpcHRpb259fSI7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAiZW5hYmxlTWFwcGVkQ2hhbm5lbHMiOgogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5lbmFibGVNYXBwZWRDaGFubmVscy5kZXNjcmlwdGlvbn19IjsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJmaWxlcy51cGRhdGUiOgogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5maWxlc1VwZGF0ZS5kZXNjcmlwdGlvbn19IjsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJjYWNoZS5pbWFnZXMiOgogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5jYWNoZUltYWdlcy5kZXNjcmlwdGlvbn19IjsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJ4ZXBnLnJlcGxhY2UubWlzc2luZy5pbWFnZXMiOgogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5yZXBsYWNlRW1wdHlJbWFnZXMuZGVzY3JpcHRpb259fSI7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAidWRweHkiOgogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy51ZHB4eS5kZXNjcmlwdGlvbn19IjsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAgICAgdGV4dCA9ICIiOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgfQogICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOwogICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAiIjsKICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7CiAgICAgICAgdmFyIHByZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlBSRSIpOwogICAgICAgIHByZS5pbm5lckhUTUwgPSB0ZXh0OwogICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQocHJlKTsKICAgICAgICBkZXNjcmlwdGlvbi5hcHBlbmRDaGlsZCh0ZExlZnQpOwogICAgICAgIGRlc2NyaXB0aW9uLmFwcGVuZENoaWxkKHRkUmlnaHQpOwogICAgICAgIHJldHVybiBkZXNjcmlwdGlvbjsKICAgIH0KfQpjbGFzcyBTZXR0aW5nc0NhdGVnb3J5SXRlbSBleHRlbmRzIFNldHRpbmdzQ2F0ZWdvcnkgewogICAgY29uc3RydWN0b3IoaGVhZGxpbmUsIHNldHRpbmdzS2V5cykgewogICAgICAgIHN1cGVyKCk7CiAgICAgICAgdGhpcy5oZWFkbGluZSA9IGhlYWRsaW5lOwogICAgICAgIHRoaXMuc2V0dGluZ3NLZXlzID0gc2V0dGluZ3NLZXlzOwogICAgfQogICAgY3JlYXRlQ2F0ZWdvcnkoKSB7CiAgICAgICAgdmFyIGhlYWRsaW5lID0gdGhpcy5jcmVhdGVDYXRlZ29yeUhlYWRsaW5lKHRoaXMuaGVhZGxpbmUpOwogICAgICAgIHZhciBzZXR0aW5nc0tleXMgPSB0aGlzLnNldHRpbmdzS2V5czsKICAgICAgICB2YXIgZG9jID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQodGhpcy5Eb2N1bWVudElEKTsKICAgICAgICBkb2MuYXBwZW5kQ2hpbGQoaGVhZGxpbmUpOwogICAgICAgIC8vIENyZWF0ZSBhIHRhYmxlIGZvciB0aGUgY2F0ZWdvcnkKICAgICAgICB2YXIgdGFibGUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJUQUJMRSIpOwogICAgICAgIHZhciBrZXlzID0gc2V0dGluZ3NLZXlzLnNwbGl0KCIsIik7CiAgICAgICAga2V5cy5mb3JFYWNoKHNldHRpbmdzS2V5ID0+IHsKICAgICAgICAgICAgc3dpdGNoIChzZXR0aW5nc0tleSkgewogICAgICAgICAgICAgICAgY2FzZSAiYXV0aGVudGljYXRpb24ucG1zIjoKICAgICAgICAgICAgICAgIGNhc2UgImF1dGhlbnRpY2F0aW9uLm0zdSI6CiAgICAgICAgICAgICAgICBjYXNlICJhdXRoZW50aWNhdGlvbi54bWwiOgogICAgICAgICAgICAgICAgY2FzZSAiYXV0aGVudGljYXRpb24uYXBpIjoKICAgICAgICAgICAgICAgICAgICBpZiAoU0VSVkVSWyJzZXR0aW5ncyJdWyJhdXRoZW50aWNhdGlvbi53ZWIiXSA9PSBmYWxzZSkgewogICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAgICAgICAgIHZhciBpdGVtID0gdGhpcy5jcmVhdGVTZXR0aW5ncyhzZXR0aW5nc0tleSk7CiAgICAgICAgICAgICAgICAgICAgdmFyIGRlc2NyaXB0aW9uID0gdGhpcy5jcmVhdGVEZXNjcmlwdGlvbihzZXR0aW5nc0tleSk7CiAgICAgICAgICAgICAgICAgICAgdGFibGUuYXBwZW5kQ2hpbGQoaXRlbSk7CiAgICAgICAgICAgICAgICAgICAgdGFibGUuYXBwZW5kQ2hpbGQoZGVzY3JpcHRpb24pOwogICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICB9CiAgICAgICAgfSk7CiAgICAgICAgZG9jLmFwcGVuZENoaWxkKHRhYmxlKTsKICAgICAgICBkb2MuYXBwZW5kQ2hpbGQodGhpcy5jcmVhdGVIUigpKTsKICAgIH0KfQpmdW5jdGlvbiBzaG93U2V0dGluZ3MoKSB7CiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHNldHRpbmdzQ2F0ZWdvcnkubGVuZ3RoOyBpKyspIHsKICAgICAgICBzZXR0aW5nc0NhdGVnb3J5W2ldLmNyZWF0ZUNhdGVnb3J5KCk7CiAgICB9Cn0KZnVuY3Rpb24gc2F2ZVNldHRpbmdzKCkgewogICAgdmFyIGNtZCA9ICJzYXZlU2V0dGluZ3MiOwogICAgdmFyIGRpdiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb250ZW50X3NldHRpbmdzIik7CiAgICB2YXIgc2V0dGluZ3MgPSBkaXYuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSgiY2hhbmdlZCIpOwogICAgdmFyIG5ld1NldHRpbmdzID0gbmV3IE9iamVjdCgpOwogICAgZm9yIChsZXQgaSA9IDA7IGkgPCBzZXR0aW5ncy5sZW5ndGg7IGkrKykgewogICAgICAgIHZhciBuYW1lOwogICAgICAgIHZhciB2YWx1ZTsKICAgICAgICBzd2l0Y2ggKHNldHRpbmdzW2ldLnRhZ05hbWUpIHsKICAgICAgICAgICAgY2FzZSAiSU5QVVQiOgogICAgICAgICAgICAgICAgc3dpdGNoIChzZXR0aW5nc1tpXS50eXBlKSB7CiAgICAgICAgICAgICAgICAgICAgY2FzZSAiY2hlY2tib3giOgogICAgICAgICAgICAgICAgICAgICAgICBuYW1lID0gc2V0dGluZ3NbaV0ubmFtZTsKICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSBzZXR0aW5nc1tpXS5jaGVja2VkOwogICAgICAgICAgICAgICAgICAgICAgICBuZXdTZXR0aW5nc1tuYW1lXSA9IHZhbHVlOwogICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICAgICBjYXNlICJ0ZXh0IjoKICAgICAgICAgICAgICAgICAgICAgICAgbmFtZSA9IHNldHRpbmdzW2ldLm5hbWU7CiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlID0gc2V0dGluZ3NbaV0udmFsdWU7CiAgICAgICAgICAgICAgICAgICAgICAgIHN3aXRjaCAobmFtZSkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAidXBkYXRlIjoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IHZhbHVlLnNwbGl0KCIsIik7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSB2YWx1ZS5maWx0ZXIoZnVuY3Rpb24gKGUpIHsgcmV0dXJuIGU7IH0pOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAiYnVmZmVyLnRpbWVvdXQiOgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlID0gcGFyc2VGbG9hdCh2YWx1ZSk7CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgbmV3U2V0dGluZ3NbbmFtZV0gPSB2YWx1ZTsKICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAiU0VMRUNUIjoKICAgICAgICAgICAgICAgIG5hbWUgPSBzZXR0aW5nc1tpXS5uYW1lOwogICAgICAgICAgICAgICAgdmFsdWUgPSBzZXR0aW5nc1tpXS52YWx1ZTsKICAgICAgICAgICAgICAgIC8vIElmIHRoZSB2YWx1ZSBpcyBhIG51bWJlciwgc3RvcmUgaXQgYXMgYSBudW1iZXIKICAgICAgICAgICAgICAgIGlmIChpc05hTih2YWx1ZSkpIHsKICAgICAgICAgICAgICAgICAgICBuZXdTZXR0aW5nc1tuYW1lXSA9IHZhbHVlOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgbmV3U2V0dGluZ3NbbmFtZV0gPSBwYXJzZUludCh2YWx1ZSk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICB9CiAgICB9CiAgICB2YXIgZGF0YSA9IG5ldyBPYmplY3QoKTsKICAgIGRhdGFbInNldHRpbmdzIl0gPSBuZXdTZXR0aW5nczsKICAgIHZhciBzZXJ2ZXIgPSBuZXcgU2VydmVyKGNtZCk7CiAgICBzZXJ2ZXIucmVxdWVzdChkYXRhKTsKfQo=" + webUI["html/lang/en.json"] = "ewogICJtYWluTWVudSI6CiAgewogICAgIml0ZW0iOgogICAgewogICAgICAicGxheWxpc3QiOiAiUGxheWxpc3QiLAogICAgICAicG1zSUQiOiAiUE1TIElEIiwKICAgICAgImZpbHRlciI6ICJGaWx0ZXIiLAogICAgICAieG1sdHYiOiAiWE1MVFYiLAogICAgICAibWFwcGluZyI6ICJNYXBwaW5nIiwKICAgICAgInVzZXJzIjogIlVzZXJzIiwKICAgICAgInNldHRpbmdzIjogIlNldHRpbmdzIiwKICAgICAgImxvZyI6ICJMb2ciLAogICAgICAibG9nb3V0IjogIkxvZ291dCIKICAgIH0sCiAgICAiaGVhZGxpbmUiOgogICAgewogICAgICAicGxheWxpc3QiOiAiTG9jYWwgb3IgcmVtb3RlIHBsYXlsaXN0cyIsCiAgICAgICJmaWx0ZXIiOiAiRmlsdGVyIHBsYXlsaXN0IiwKICAgICAgInhtbHR2IjogIkxvY2FsIG9yIHJlbW90ZSBYTUxUViBmaWxlcyIsCiAgICAgICJtYXBwaW5nIjogIk1hcCBwbGF5bGlzdCBjaGFubmVscyB0byBFUEcgY2hhbm5lbHMiLAogICAgICAidXNlcnMiOiAiVXNlciBtYW5hZ2VtZW50IiwKICAgICAgInNldHRpbmdzIjogIlNldHRpbmdzIiwKICAgICAgImxvZyI6ICJMb2ciLAogICAgICAibG9nb3V0IjogIkxvZ291dCIKICAgIH0KICB9LAogICJjb25maXJtIjoKICB7CiAgICAicmVzdG9yZSI6ICJBbGwgZGF0YSB3aWxsIGJlIHJlcGxhY2VkIHdpdGggdGhvc2UgZnJvbSB0aGUgYmFja3VwLiBTaG91bGQgdGhlIGZpbGVzIGJlIHJlc3RvcmVkPyIKICB9LAogICJhbGVydCI6CiAgewogICAgImZpbGVMb2FkaW5nRXJyb3IiOiAiRmlsZSBjb3VsZG4ndCBiZSBsb2FkZWQiLAogICAgImludmFsaWRDaGFubmVsTnVtYmVyIjogIkludmFsaWQgY2hhbm5lbCBudW1iZXIiLAogICAgIm1pc3NpbmdJbnB1dCI6ICJNaXNzaW5nIGlucHV0IgogIH0sCiAgImJ1dHRvbiI6CiAgewogICAgImJhY2siOiAiQmFjayIsCiAgICAiYmFja3VwIjogIkJhY2t1cCIsCiAgICAiYnVsa0VkaXQiOiAiQnVsayBFZGl0IiwKICAgICJjYW5jZWwiOiAiQ2FuY2VsIiwKICAgICJkZWxldGUiOiAiRGVsZXRlIiwKICAgICJkb25lIjogIkRvbmUiLAogICAgImxvZ2luIjogIkxvZ2luIiwKICAgICJuZXciOiAiTmV3IiwKICAgICJuZXh0IjogIk5leHQiLAogICAgInJlc3RvcmUiOiAiUmVzdG9yZSIsCiAgICAic2F2ZSI6ICJTYXZlIiwKICAgICJzZWFyY2giOiAiU2VhcmNoIiwKICAgICJ1cGRhdGUiOiAiVXBkYXRlIiwKICAgICJjcmFldGVBY2NvdW50IjogIkNyZWF0ZSBBY2NvdW50IiwKICAgICJyZXNldExvZ3MiOiAiUmVzZXQgTG9ncyIsCiAgICAidXBsb2FkTG9nbyI6ICJVcGxvYWQgTG9nbyIKICB9LAogICJmaWx0ZXIiOgogIHsKICAgICJ0YWJsZSI6CiAgICB7CiAgICAgICJzdGFydGluZ0NoYW5uZWwiOiAiU3RhcnRpbmcgQ2guIE5vLiIsCiAgICAgICJuYW1lIjogIkZpbHRlciBOYW1lIiwKICAgICAgInR5cGUiOiAiRmlsdGVyIFR5cGUiLAogICAgICAiZmlsdGVyIjogIkZpbHRlciIKICAgIH0sCiAgICAiY3VzdG9tIjogIkN1c3RvbSIsCiAgICAiZ3JvdXAiOiAiTTNVIEdyb3VwIiwKICAgICJuYW1lIjoKICAgIHsKICAgICAgInRpdGxlIjogIkZpbHRlciBOYW1lIiwKICAgICAgInBsYWNlaG9sZGVyIjogIkZpbHRlciBuYW1lIiwKICAgICAgImRlc2NyaXB0aW9uIjogIiIKICAgIH0sCiAgICAiZGVzY3JpcHRpb24iOgogICAgewogICAgICAidGl0bGUiOiAiRGVzY3JpcHRpb24iLAogICAgICAicGxhY2Vob2xkZXIiOiAiRGVzY3JpcHRpb24iLAogICAgICAiZGVzY3JpcHRpb24iOiAiIgogICAgfSwKICAgICJ0eXBlIjoKICAgIHsKICAgICAgInRpdGxlIjogIlR5cGUiLAogICAgICAiZ3JvdXBUaXRsZSI6ICJHcm91cCBUaXRsZSIsCiAgICAgICJjdXN0b21GaWx0ZXIiOiAiQ3VzdG9tIEZpbHRlciIKICAgIH0sCiAgICAiY2FzZVNlbnNpdGl2ZSI6CiAgICB7CiAgICAgICJ0aXRsZSI6ICJDYXNlIFNlbnNpdGl2ZSIsCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLAogICAgICAiZGVzY3JpcHRpb24iOiAiIgogICAgfSwKICAgICJmaWx0ZXJSdWxlIjoKICAgIHsKICAgICAgInRpdGxlIjogIkZpbHRlciBSdWxlIiwKICAgICAgInBsYWNlaG9sZGVyIjogIlNwb3J0IHtIRH0gIXtFUyxJVH0iLAogICAgICAiZGVzY3JpcHRpb24iOiAiIgogICAgfSwKICAgICJmaWx0ZXJHcm91cCI6CiAgICB7CiAgICAgICJ0aXRsZSI6ICJHcm91cCBUaXRsZSIsCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLAogICAgICAiZGVzY3JpcHRpb24iOiAiU2VsZWN0IGEgTTNVIGdyb3VwLiAoQ291bnRlcik8YnI+Q2hhbmdpbmcgdGhlIGdyb3VwIHRpdGxlIGluIHRoZSBNM1UgaW52YWxpZGF0ZXMgdGhlIGZpbHRlci4iCiAgICB9LAogICAgImluY2x1ZGUiOgogICAgewogICAgICAidGl0bGUiOiAiSW5jbHVkZSIsCiAgICAgICJwbGFjZWhvbGRlciI6ICJGSEQsVUhEIiwKICAgICAgImRlc2NyaXB0aW9uIjogIkNoYW5uZWwgbmFtZSBtdXN0IGluY2x1ZGUuPGJyPihDb21tYSBzZXBhcmF0ZWQpIENvbW1hIG1lYW5zIG9yIgogICAgfSwKICAgICJleGNsdWRlIjoKICAgIHsKICAgICAgInRpdGxlIjogIkV4Y2x1ZGUiLAogICAgICAicGxhY2Vob2xkZXIiOiAiRVMsSVQiLAogICAgICAiZGVzY3JpcHRpb24iOiAiQ2hhbm5lbCBuYW1lIG11c3Qgbm90IGNvbnRhaW4uPGJyPihDb21tYSBzZXBhcmF0ZWQpIENvbW1hIG1lYW5zIG9yIgogICAgfSwKICAgICJwcmVzZXJ2ZU1hcHBpbmciOgogICAgewogICAgICAidGl0bGUiOiAiUHJlc2VydmUgRXhpc3RpbmcgTTNVPGJyPkNoYW5uZWwgTnVtYmVycyIsCiAgICAgICJwYWxjZWhvbGRlciI6ICIiLAogICAgICAiZGVzY3JpcHRpb24iOiAiUHJlc2VydmUgZXhpc3RpbmcgTTNVIHBsYXlsaXN0IGNoYW5uZWwgbnVtYmVycz8iCiAgICB9LAogICAgInN0YXJ0aW5nQ2hhbm5lbCI6CiAgICB7CiAgICAgICJ0aXRsZSI6ICJTdGFydGluZyBDaGFubmVsIE51bWJlciIsCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLAogICAgICAiZGVzY3JpcHRpb24iOiAiIgogICAgfQogIH0sCiAgInBsYXlsaXN0IjoKICB7CiAgICAidGFibGUiOgogICAgewogICAgICAicGxheWxpc3QiOiAiUGxheWxpc3QiLAogICAgICAidHVuZXIiOiAiVHVuZXIiLAogICAgICAibGFzdFVwZGF0ZSI6ICJMYXN0IFVwZGF0ZSIsCiAgICAgICJhdmFpbGFiaWxpdHkiOiAiQXZhaWxhYmlsaXR5IiwKICAgICAgInR5cGUiOiAiVHlwZSIsCiAgICAgICJzdHJlYW1zIjogIlN0cmVhbXMiLAogICAgICAiZ3JvdXBUaXRsZSI6ICJncm91cC10aXRsZSIsCiAgICAgICJ0dmdJRCI6ICJ0dmctaWQiLAogICAgICAidW5pcXVlSUQiOiAiVW5pcXVlIElEIgogICAgfSwKICAgICJwbGF5bGlzdFR5cGUiOgogICAgewogICAgICAidGl0bGUiOiAiUGxheWxpc3QgdHlwZSIsCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLAogICAgICAiZGVzY3JpcHRpb24iOiAiIgogICAgfSwKICAgICJ0eXBlIjoKICAgIHsKICAgICAgInRpdGxlIjogIlR5cGUiLAogICAgICAicGxhY2Vob2xkZXIiOiAiIiwKICAgICAgImRlc2NyaXB0aW9uIjogIiIKICAgIH0sCiAgICAibmFtZSI6CiAgICB7CiAgICAgICJ0aXRsZSI6ICJOYW1lIiwKICAgICAgInBsYWNlaG9sZGVyIjogIlBsYXlsaXN0IG5hbWUiLAogICAgICAiZGVzY3JpcHRpb24iOiAiIgogICAgfSwKICAgICJkZXNjcmlwdGlvbiI6CiAgICB7CiAgICAgICJ0aXRsZSI6ICJEZXNjcmlwdGlvbiIsCiAgICAgICJwbGFjZWhvbGRlciI6ICJEZXNjcmlwdGlvbiIsCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiCiAgICB9LAogICAgImZpbGVNM1UiOgogICAgewogICAgICAidGl0bGUiOiAiTTNVIEZpbGUiLAogICAgICAicGxhY2Vob2xkZXIiOiAiRmlsZSBwYXRoIG9yIFVSTCBvZiB0aGUgTTNVIiwKICAgICAgImRlc2NyaXB0aW9uIjogIiIKICAgIH0sCiAgICAiZmlsZUhESFIiOgogICAgewogICAgICAidGl0bGUiOiAiSERIb21lUnVuIElQIiwKICAgICAgInBsYWNlaG9sZGVyIjogIklQIGFkZHJlc3MgYW5kIHBvcnQgKDE5Mi4xNjguMS4xMDo1MDA0KSIsCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiCiAgICB9LAogICAgInR1bmVyIjoKICAgIHsKICAgICAgInRpdGxlIjogIlR1bmVyIC8gU3RyZWFtcyIsCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLAogICAgICAiZGVzY3JpcHRpb24iOiAiTnVtYmVyIG9mIHBhcmFsbGVsIGNvbm5lY3Rpb25zIHRoYXQgY2FuIGJlIGVzdGFibGlzaGVkIHRvIHRoZSBwcm92aWRlci4gPGJyPk9ubHkgYXZhaWxhYmxlIHdpdGggYWN0aXZhdGVkIGJ1ZmZlci48YnI+TmV3IHNldHRpbmdzIHdpbGwgb25seSBiZSBhcHBsaWVkIGFmdGVyIHF1aXR0aW5nIGFsbCBzdHJlYW1zLiIKICAgIH0KICB9LAogICJ4bWx0diI6CiAgewogICAgInRhYmxlIjoKICAgIHsKICAgICAgImd1aWRlIjogIkd1aWRlIiwKICAgICAgImxhc3RVcGRhdGUiOiAiTGFzdCBVcGRhdGUiLAogICAgICAiYXZhaWxhYmlsaXR5IjogIkF2YWlsYWJpbGl0eSIsCiAgICAgICJjaGFubmVscyI6ICJDaGFubmVscyIsCiAgICAgICJwcm9ncmFtcyI6ICJQcm9ncmFtcyIKICAgIH0sCiAgICAibmFtZSI6CiAgICB7CiAgICAgICJ0aXRsZSI6ICJOYW1lIiwKICAgICAgInBsYWNlaG9sZGVyIjogIkd1aWRlIG5hbWUiLAogICAgICAiZGVzY3JpcHRpb24iOiAiIgogICAgfSwKICAgICJkZXNjcmlwdGlvbiI6CiAgICB7CiAgICAgICJ0aXRsZSI6ICJEZXNjcmlwdGlvbiIsCiAgICAgICJwbGFjZWhvbGRlciI6ICJEZXNjcmlwdGlvbiIsCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiCiAgICB9LAogICAgImZpbGVYTUxUViI6CiAgICB7CiAgICAgICJ0aXRsZSI6ICJYTUxUViBGaWxlIiwKICAgICAgInBsYWNlaG9sZGVyIjogIkZpbGUgcGF0aCBvciBVUkwgb2YgdGhlIFhNTFRWIiwKICAgICAgImRlc2NyaXB0aW9uIjogIiIKICAgIH0KICB9LAogICJtYXBwaW5nIjoKICB7CiAgICAidGFibGUiOgogICAgewogICAgICAiY2hObyI6ICJDaC4gTm8uIiwKICAgICAgImxvZ28iOiAiTG9nbyIsCiAgICAgICJjaGFubmVsTmFtZSI6ICJDaGFubmVsIE5hbWUiLAogICAgICAidXBkYXRlQ2hhbm5lbE5hbWVSZWdleCI6ICJVcGQuIFJ4LiIsCiAgICAgICJwbGF5bGlzdCI6ICJQbGF5bGlzdCIsCiAgICAgICJncm91cFRpdGxlIjogIkdyb3VwIFRpdGxlIiwKICAgICAgInhtbHR2RmlsZSI6ICJYTUxUViBGaWxlIiwKICAgICAgInhtbHR2SUQiOiAiWE1MVFYgSUQiLAogICAgICAidGltZXNoaWZ0IjogIlRpbWVzaGlmdCIKICAgIH0sCiAgICAiYWN0aXZlIjoKICAgIHsKICAgICAgInRpdGxlIjogIkFjdGl2ZSIsCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLAogICAgICAiZGVzY3JpcHRpb24iOiAiIgogICAgfSwKICAgICJjaGFubmVsTmFtZSI6CiAgICB7CiAgICAgICJ0aXRsZSI6ICJDaGFubmVsIE5hbWUiLAogICAgICAicGxhY2Vob2xkZXIiOiAiIiwKICAgICAgImRlc2NyaXB0aW9uIjogIiIKICAgIH0sCiAgICAiZGVzY3JpcHRpb24iOgogICAgewogICAgICAidGl0bGUiOiAiQ2hhbm5lbCBEZXNjcmlwdGlvbiIsCiAgICAgICJwbGFjZWhvbGRlciI6ICJVc2VkIGJ5IHRoZSBEdW1teSBhcyBhbiBYTUwgZGVzY3JpcHRpb24iLAogICAgICAiZGVzY3JpcHRpb24iOiAiIgogICAgfSwKICAgICJ1cGRhdGVDaGFubmVsTmFtZSI6CiAgICB7CiAgICAgICJ0aXRsZSI6ICJVcGRhdGUgQ2hhbm5lbCBOYW1lIiwKICAgICAgInBsYWNlaG9sZGVyIjogIiIsCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiCiAgICB9LAogICAgInVwZGF0ZUNoYW5uZWxOYW1lUmVnZXgiOgogICAgewogICAgICAidGl0bGUiOiAiQ2hhbm5lbCBuYW1lIHVwZGF0ZSByZWdleCIsCiAgICAgICJwbGFjZWhvbGRlciI6ICJGb3IgZXhhbXBsZSBeUFBWWyBcXFxcLV9dPzEuKiIsCiAgICAgICJkZXNjcmlwdGlvbiI6ICJPbiB1cGRhdGUsIGlmIGFueSBuZXcgY2hhbm5lbCBuYW1lIG1hdGNoZXMgdGhpcyByZWdleCwgcmVuYW1lIGN1cnJlbnQgY2hhbm5lbCB0byB0aGUgZmlyc3QgbWF0Y2hpbmcgbmFtZSIKICAgIH0sCiAgICAidXBkYXRlQ2hhbm5lbE5hbWVCeUdyb3VwUmVnZXgiOgogICAgewogICAgICAidGl0bGUiOiAiT25seSBieSBncm91cCByZWdleCIsCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLAogICAgICAiZGVzY3JpcHRpb24iOiAiUmVuYW1lIHRoaXMgY2hhbm5lbCBvbmx5IGlmIGN1cnJlbnQgdXNlci1kZWZpbmVkIGdyb3VwIG1hdGNoZXMgdGhpcyByZWdleCIKICAgIH0sCiAgICAidXBkYXRlQ2hhbm5lbEdyb3VwIjoKICAgIHsKICAgICAgInRpdGxlIjogIlVwZGF0ZSBDaGFubmVsIEdyb3VwIiwKICAgICAgInBsYWNlaG9sZGVyIjogIiIsCiAgICAgICJkZXNjcmlwdGlvbiI6ICJJZiBjaGVja2VkLCB1c2UgZ3JvdXAgZnJvbSB0aGUgZGF0YWJhc2UiCiAgICB9LAogICAgImNoYW5uZWxMb2dvIjoKICAgIHsKICAgICAgInRpdGxlIjogIkxvZ28gVVJMIiwKICAgICAgInBsYWNlaG9sZGVyIjogIiIsCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiCiAgICB9LAogICAgInVwZGF0ZUNoYW5uZWxMb2dvIjoKICAgIHsKICAgICAgInRpdGxlIjogIlVwZGF0ZSBDaGFubmVsIExvZ28iLAogICAgICAicGxhY2Vob2xkZXIiOiAiIiwKICAgICAgImRlc2NyaXB0aW9uIjogIiIKICAgIH0sCiAgICAiZXBnQ2F0ZWdvcnkiOgogICAgewogICAgICAidGl0bGUiOiAiRVBHIENhdGVnb3J5IiwKICAgICAgInBsYWNlaG9sZGVyIjogIiIsCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiCiAgICB9LAogICAgIm0zdUdyb3VwVGl0bGUiOgogICAgewogICAgICAidGl0bGUiOiAiR3JvdXAgVGl0bGUgKHh0ZXZlLm0zdSkiLAogICAgICAicGxhY2Vob2xkZXIiOiAiIiwKICAgICAgImRlc2NyaXB0aW9uIjogIiIKICAgIH0sCiAgICAieG1sdHZGaWxlIjoKICAgIHsKICAgICAgInRpdGxlIjogIlhNTFRWIEZpbGUiLAogICAgICAicGxhY2Vob2xkZXIiOiAiIiwKICAgICAgImRlc2NyaXB0aW9uIjogIiIKICAgIH0sCiAgICAieG1sdHZDaGFubmVsIjoKICAgIHsKICAgICAgInRpdGxlIjogIlhNTFRWIENoYW5uZWwiLAogICAgICAicGxhY2Vob2xkZXIiOiAiIiwKICAgICAgImRlc2NyaXB0aW9uIjogIiIKICAgIH0sCiAgICAidGltZXNoaWZ0IjoKICAgIHsKICAgICAgInRpdGxlIjogIlRpbWVzaGlmdCIsCiAgICAgICJwbGFjZWhvbGRlciI6ICIwIiwKICAgICAgImRlc2NyaXB0aW9uIjogIiIKICAgIH0KICB9LAogICJ1c2VycyI6CiAgewogICAgInRhYmxlIjoKICAgIHsKICAgICAgInVzZXJuYW1lIjogIlVzZXJuYW1lIiwKICAgICAgInBhc3N3b3JkIjogIlBhc3N3b3JkIiwKICAgICAgIndlYiI6ICJXRUIiLAogICAgICAicG1zIjogIlBNUyIsCiAgICAgICJtM3UiOiAiTTNVIiwKICAgICAgInhtbCI6ICJYTUwiLAogICAgICAiYXBpIjogIkFQSSIKICAgIH0sCiAgICAidXNlcm5hbWUiOgogICAgewogICAgICAidGl0bGUiOiAiVXNlcm5hbWUiLAogICAgICAicGxhY2Vob2xkZXIiOiAiVXNlcm5hbWUiLAogICAgICAiZGVzY3JpcHRpb24iOiAiIgogICAgfSwKICAgICJwYXNzd29yZCI6CiAgICB7CiAgICAgICJ0aXRsZSI6ICJQYXNzd29yZCIsCiAgICAgICJwbGFjZWhvbGRlciI6ICJQYXNzd29yZCIsCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiCiAgICB9LAogICAgImNvbmZpcm0iOgogICAgewogICAgICAidGl0bGUiOiAiQ29uZmlybSIsCiAgICAgICJwbGFjZWhvbGRlciI6ICJQYXNzd29yZCBjb25maXJtIiwKICAgICAgImRlc2NyaXB0aW9uIjogIiIKICAgIH0sCiAgICAid2ViIjoKICAgIHsKICAgICAgInRpdGxlIjogIldlYiBBY2Nlc3MiLAogICAgICAicGxhY2Vob2xkZXIiOiAiIiwKICAgICAgImRlc2NyaXB0aW9uIjogIiIKICAgIH0sCiAgICAicG1zIjoKICAgIHsKICAgICAgInRpdGxlIjogIlBNUyBBY2Nlc3MiLAogICAgICAicGxhY2Vob2xkZXIiOiAiIiwKICAgICAgImRlc2NyaXB0aW9uIjogIiIKICAgIH0sCiAgICAibTN1IjoKICAgIHsKICAgICAgInRpdGxlIjogIk0zVSBBY2Nlc3MiLAogICAgICAicGxhY2Vob2xkZXIiOiAiIiwKICAgICAgImRlc2NyaXB0aW9uIjogIiIKICAgIH0sCiAgICAieG1sIjoKICAgIHsKICAgICAgInRpdGxlIjogIlhNTCBBY2Nlc3MiLAogICAgICAicGxhY2Vob2xkZXIiOiAiIiwKICAgICAgImRlc2NyaXB0aW9uIjogIiIKICAgIH0sCiAgICAiYXBpIjoKICAgIHsKICAgICAgInRpdGxlIjogIkFQSSBBY2Nlc3MiLAogICAgICAicGxhY2Vob2xkZXIiOiAiIiwKICAgICAgImRlc2NyaXB0aW9uIjogIiIKICAgIH0KICB9LAogICJzZXR0aW5ncyI6CiAgewogICAgImNhdGVnb3J5IjoKICAgIHsKICAgICAgImdlbmVyYWwiOiAiR2VuZXJhbCIsCiAgICAgICJtYXBwaW5nIjogIk1hcHBpbmciLAogICAgICAiZmlsZXMiOiAiRmlsZXMiLAogICAgICAic3RyZWFtaW5nIjogIlN0cmVhbWluZyIsCiAgICAgICJiYWNrdXAiOiAiQmFja3VwIiwKICAgICAgImF1dGhlbnRpY2F0aW9uIjogIkF1dGhlbnRpY2F0aW9uIgogICAgfSwKICAgICJ1cGRhdGUiOgogICAgewogICAgICAidGl0bGUiOiAiU2NoZWR1bGUgZm9yIHVwZGF0aW5nIChQbGF5bGlzdCwgWE1MVFYsIEJhY2t1cCkiLAogICAgICAicGxhY2Vob2xkZXIiOiAiMDAwMCwxMDAwLDIwMDAiLAogICAgICAiZGVzY3JpcHRpb24iOiAiVGltZSBpbiAyNCBob3VyIGZvcm1hdCAoMDgwMCA9IDg6MDAgYW0pLiBNb3JlIHRpbWVzIGNhbiBiZSBlbnRlcmVkIGNvbW1hIHNlcGFyYXRlZC4gTGVhdmUgdGhpcyBmaWVsZCBlbXB0eSBpZiBubyB1cGRhdGVzIGFyZSB0byBiZSBjYXJyaWVkIG91dC4iCiAgICB9LAogICAgImFwaSI6CiAgICB7CiAgICAgICJ0aXRsZSI6ICJBUEkgSW50ZXJmYWNlIiwKICAgICAgImRlc2NyaXB0aW9uIjogIlZpYSBBUEkgaW50ZXJmYWNlIGl0IGlzIHBvc3NpYmxlIHRvIHNlbmQgY29tbWFuZHMgdG8geFRlVmUuIEFQSSBkb2N1bWVudGF0aW9uIGlzIDxhIGhyZWY9J2h0dHBzOi8vZ2l0aHViLmNvbS94dGV2ZS1wcm9qZWN0L3hUZVZlLURvY3VtZW50YXRpb24vYmxvYi9tYXN0ZXIvZW4vY29uZmlndXJhdGlvbi5tZCNhcGknPmhlcmU8L2E+IgogICAgfSwKICAgICJjbGVhclhNTFRWQ2FjaGUiOgogICAgewogICAgICAidGl0bGUiOiAiQ2xlYXIgWE1MVFYgY2FjaGUiLAogICAgICAiZGVzY3JpcHRpb24iOiAiSWYgY2hlY2tlZCwgZG8gbm90IGtlZXAgWE1MVFYgY2FjaGUgaW4gbWVtb3J5Ljxicj5TaWduaWZpY2FsbHkgcmVkdWNlcyBSQU0gdXNhZ2UgaW4gaWRsZSBtb2RlLDxicj5idXQgc2lnbmlmaWNhbGx5IHNsb3dpbmcgZG93biBldmVyeSBzdWJzZXF1ZW50IHVwZGF0ZSBpbiBYRVBHIGRhdGFiYXNlLiIKICAgIH0sCiAgICAiZGVmYXVsdE1pc3NpbmdFUEciOgogICAgewogICAgICAidGl0bGUiOiAiRmlsbCBNaXNzaW5nIEVQRyBEYXRhIiwKICAgICAgImRlc2NyaXB0aW9uIjogIldoZW4gdGhlcmUgaXMgbm8gbWF0Y2hpbmcgRVBHIGRhdGEgZm9yIGNoYW5uZWwsIDxicj5hdXRvZmlsbCB3aXRoIHhUZVZlIGR1bW15IEVQRyBkYXRhPyIKICAgIH0sCiAgICAiZW5hYmxlTWFwcGVkQ2hhbm5lbHMiOiB7CiAgICAgICJ0aXRsZSI6ICJFbmFibGUgbWFwcGVkIGNoYW5uZWxzIiwKICAgICAgImRlc2NyaXB0aW9uIjogIkF1dG9tYXRpY2FsbHkgZW5hYmxlIGNoYW5uZWxzIHdpdGggYXNzaWduZWQgRVBHIGRhdGEiCiAgICB9LAogICAgImRpc2FsbG93VVJMRHVwbGljYXRlcyI6CiAgICB7CiAgICAgICJ0aXRsZSI6ICJEaXNhbGxvdyBVUkwgZHVwbGljYXRlcyIsCiAgICAgICJkZXNjcmlwdGlvbiI6ICJJZiBjaGVja2VkLCBkbyBub3QgYWRkIGEgbmV3IGNoYW5uZWwgZnJvbSBwbGF5bGlzdCBpZiBjaGFubmVsIHdpdGggc3VjaCBVUkwgYWxyZWFkeSBleGlzdHMiCiAgICB9LAogICAgImVwZ1NvdXJjZSI6CiAgICB7CiAgICAgICJ0aXRsZSI6ICJFUEcgU291cmNlIiwKICAgICAgImRlc2NyaXB0aW9uIjogIlBNUzo8YnI+LSBVc2UgRVBHIGRhdGEgZnJvbSBQbGV4IG9yIEVtYnkgPGJyPjxicj5YRVBHOjxicj4tIFVzZSBvZiBvbmUgb3IgbW9yZSBYTUxUViBmaWxlczxicj4tIENoYW5uZWwgbWFuYWdlbWVudDxicj4tIE0zVSAvIFhNTFRWIGV4cG9ydCAoSFRUUCBsaW5rIGZvciBJUFRWIGFwcHMpIgogICAgfSwKICAgICJ0dW5lciI6CiAgICB7CiAgICAgICJ0aXRsZSI6ICJOdW1iZXIgb2YgVHVuZXJzIiwKICAgICAgImRlc2NyaXB0aW9uIjogIk51bWJlciBvZiBwYXJhbGxlbCBjb25uZWN0aW9ucyB0aGF0IGNhbiBiZSBlc3RhYmxpc2hlZCB0byB0aGUgcHJvdmlkZXIuPGJyPkF2YWlsYWJsZSBmb3I6IFBsZXgsIEVtYnkgKEhESFIpLCBNM1UgKHdpdGggYWN0aXZlIGJ1ZmZlcikuPGJyPkFmdGVyIGEgY2hhbmdlLCB4VGVWZSBtdXN0IGJlIGRlbGV0ZSBpbiB0aGUgUGxleCAvIEVtYnkgRFZSIHNldHRpbmdzIGFuZCBzZXQgdXAgYWdhaW4uIgogICAgfSwKICAgICJob3N0SVAiOgogICAgewogICAgICAidGl0bGUiOiAiSG9zdCBJUCIsCiAgICAgICJkZXNjcmlwdGlvbiI6ICJJUCBhZGRyZXNzIHhUZVZlIHdpbGwgdXNlIHRvIGZvcm0gTTNVIGFuZCBYTUxUViBmaWxlcyIKICAgIH0sCiAgICAidGxzTW9kZSI6IHsKICAgICAgInRpdGxlIjogIlRMUyAoSFRUUFMpIG1vZGUiLAogICAgICAiZGVzY3JpcHRpb24iOiAiQ2hhbmdlcyB3ZWIgc2VydmVyIHByb3RvY29sIHRvIEhUVFBTLjxicj5Gb3IgZGV0YWlscywgc2VlIDxhPmh0dHBzOi8vZ2l0aHViLmNvbS9TQ1AwMDIveFRlVmUjdGxzLW1vZGU8L2E+IgogICAgfSwKICAgICJmaWxlc1VwZGF0ZSI6CiAgICB7CiAgICAgICJ0aXRsZSI6ICJVcGRhdGVzIGFsbCBmaWxlcyBhdCBzdGFydHVwIiwKICAgICAgImRlc2NyaXB0aW9uIjogIlVwZGF0ZXMgYWxsIHBsYXlsaXN0cywgdHVuZXIgYW5kIFhNTFRWIGZpbGVzIGF0IHN0YXJ0dXAuIgogICAgfSwKICAgICJjYWNoZUltYWdlcyI6CiAgICB7CiAgICAgICJ0aXRsZSI6ICJJbWFnZSBDYWNoaW5nIiwKICAgICAgImRlc2NyaXB0aW9uIjogIkFsbCBpbWFnZXMgZnJvbSB0aGUgWE1MVFYgZmlsZSBhcmUgY2FjaGVkLCBhbGxvd2luZyBmYXN0ZXIgcmVuZGVyaW5nIG9mIHRoZSBncmlkIGluIHRoZSBjbGllbnQuPGJyPkRvd25sb2FkaW5nIHRoZSBpbWFnZXMgbWF5IHRha2UgYSB3aGlsZSBhbmQgd2lsbCBiZSBkb25lIGluIHRoZSBiYWNrZ3JvdW5kLiIKICAgIH0sCiAgICAicmVwbGFjZUVtcHR5SW1hZ2VzIjoKICAgIHsKICAgICAgInRpdGxlIjogIlJlcGxhY2UgbWlzc2luZyBwcm9ncmFtIGltYWdlcyIsCiAgICAgICJkZXNjcmlwdGlvbiI6ICJJZiB0aGUgcG9zdGVyIGluIHRoZSBYTUxUViBwcm9ncmFtIGlzIG1pc3NpbmcsIHRoZSBjaGFubmVsIGxvZ28gd2lsbCBiZSB1c2VkLiIKICAgIH0sCiAgICAieHRldmVBdXRvVXBkYXRlIjoKICAgIHsKICAgICAgInRpdGxlIjogIkF1dG9tYXRpYyB1cGRhdGUgb2YgeFRlVmUiLAogICAgICAiZGVzY3JpcHRpb24iOiAiSWYgYSBuZXcgdmVyc2lvbiBvZiB4VGVWZSBpcyBhdmFpbGFibGUsIGl0IHdpbGwgYmUgYXV0b21hdGljYWxseSBpbnN0YWxsZWQuIFRoZSB1cGRhdGVzIGFyZSBkb3dubG9hZGVkIGZyb20gR2l0SHViLiIKICAgIH0sCiAgICAic3RyZWFtQnVmZmVyaW5nIjoKICAgIHsKICAgICAgInRpdGxlIjogIlN0cmVhbSBCdWZmZXIiLAogICAgICAiZGVzY3JpcHRpb24iOiAiRnVuY3Rpb25zIG9mIHRoZSBidWZmZXI6PGJyPi0gVGhlIHN0cmVhbSBpcyBwYXNzZWQgZnJvbSB4VGVWZSwgRkZtcGVnIG9yIFZMQyB0byBQbGV4LCBFbWJ5IG9yIE0zVSBQbGF5ZXI8YnI+LSBTbWFsbCBqZXJraW5nIG9mIHRoZSBzdHJlYW1zIGNhbiBiZSBjb21wZW5zYXRlZDxicj4tIEhMUyAvIE0zVTggc3VwcG9ydDxicj4tIFJUUCAvIFJUUFMgc3VwcG9ydCAob25seSBGRm1wZWcgb3IgVkxDKTxicj4tIFJlLXN0cmVhbWluZzxicj4tIFNlcGFyYXRlIHR1bmVyIGxpbWl0IGZvciBlYWNoIHBsYXlsaXN0IiwKICAgICAgImluZm9fZmFsc2UiOiAiTm8gQnVmZmVyIChDbGllbnQgY29ubmVjdHMgdG8gdGhlIHN0cmVhbWluZyBzZXJ2ZXIpIiwKICAgICAgImluZm9feHRldmUiOiAieFRlVmUgY29ubmVjdHMgdG8gdGhlIHN0cmVhbWluZyBzZXJ2ZXIiLAogICAgICAiaW5mb19mZm1wZWciOiAiRkZtcGVnIGNvbm5lY3RzIHRvIHRoZSBzdHJlYW1pbmcgc2VydmVyIiwKICAgICAgImluZm9fdmxjIjogIlZMQyBjb25uZWN0cyB0byB0aGUgc3RyZWFtaW5nIHNlcnZlciIKCiAgICB9LAogICAgInVkcHh5IjoKICAgIHsKICAgICAgInRpdGxlIjogIlVEUHh5IGFkZHJlc3MiLAogICAgICAiZGVzY3JpcHRpb24iOiAiVGhlIGFkZHJlc3Mgb2YgeW91ciBVRFB4eSBzZXJ2ZXIuIElmIHNldCwgYW5kIHRoZSBjaGFubmVsIFVSTHMgaW4gdGhlIG0zdSBpcyBtdWx0aWNhc3QsIHhUZVZlIHdpbGwgcmV3cml0ZSBpdCBzbyB0aGF0IGl0IGlzIGFjY2Vzc2VkIHZpYSB0aGUgVURQeHkgc2VydmljZS4iLAogICAgICAicGxhY2Vob2xkZXIiOiAiaG9zdDpwb3J0IgogICAgfSwKICAgICJmZm1wZWdQYXRoIjoKICAgIHsKICAgICAgInRpdGxlIjogIkZGbXBlZyBCaW5hcnkgUGF0aCIsCiAgICAgICJkZXNjcmlwdGlvbiI6ICJQYXRoIHRvIEZGbXBlZyBiaW5hcnkuIiwKICAgICAgInBsYWNlaG9sZGVyIjogIi9wYXRoL3RvL2ZmbXBlZyIKICAgIH0sCiAgICAiZmZtcGVnT3B0aW9ucyI6CiAgICB7CiAgICAgICJ0aXRsZSI6ICJGRm1wZWcgT3B0aW9ucyIsCiAgICAgICJkZXNjcmlwdGlvbiI6ICJGRm1wZWcgb3B0aW9ucy48YnI+T25seSBjaGFuZ2UgaWYgeW91IGtub3cgd2hhdCB5b3UgYXJlIGRvaW5nLjxicj5MZWF2ZSBibGFuayB0byBzZXQgZGVmYXVsdCBzZXR0aW5ncy4iLAogICAgICAicGxhY2Vob2xkZXIiOiAiTGVhdmUgYmxhbmsgdG8gc2V0IGRlZmF1bHQgc2V0dGluZ3MiCiAgICB9LAogICAgInZsY1BhdGgiOgogICAgewogICAgICAidGl0bGUiOiAiVkxDIC8gQ1ZMQyBCaW5hcnkgUGF0aCIsCiAgICAgICJkZXNjcmlwdGlvbiI6ICJQYXRoIHRvIFZMQyAvIENWTEMgYmluYXJ5LiIsCiAgICAgICJwbGFjZWhvbGRlciI6ICIvcGF0aC90by9jdmxjIgogICAgfSwKICAgICJ2bGNPcHRpb25zIjoKICAgIHsKICAgICAgInRpdGxlIjogIlZMQyAvIENWTEMgT3B0aW9ucyIsCiAgICAgICJkZXNjcmlwdGlvbiI6ICJWTEMgLyBDVkxDIG9wdGlvbnMuPGJyPk9ubHkgY2hhbmdlIGlmIHlvdSBrbm93IHdoYXQgeW91IGFyZSBkb2luZy48YnI+TGVhdmUgYmxhbmsgdG8gc2V0IGRlZmF1bHQgc2V0dGluZ3MuIiwKICAgICAgInBsYWNlaG9sZGVyIjogIkxlYXZlIGJsYW5rIHRvIHNldCBkZWZhdWx0IHNldHRpbmdzIgogICAgfSwKICAgICJidWZmZXJTaXplIjoKICAgIHsKICAgICAgInRpdGxlIjogIkJ1ZmZlciBTaXplIiwKICAgICAgImRlc2NyaXB0aW9uIjogIkJ1ZmZlciBzaXplIGluIE1CLjxicj5NM1U4OiBJZiB0aGUgVFMgc2VnbWVudCBzbWFsbGVyIHRoZW4gdGhlIGJ1ZmZlciBzaXplLCB0aGUgZmlsZSBzaXplIG9mIHRoZSBzZWdtZW50IGlzIHVzZWQuIgogICAgfSwKICAgICJzdG9yZUJ1ZmZlckluUkFNIjoKICAgIHsKICAgICAgInRpdGxlIjogIlN0b3JlIGJ1ZmZlciBpbiBSQU0iLAogICAgICAiZGVzY3JpcHRpb24iOiAiSWYgY2hlY2tlZCwgd3JpdGUgYnVmZmVyIHRvIFJBTSBpbnN0ZWFkIG9mIHdyaXRpbmcgdG8gZGlzayIKICAgIH0sCiAgICAiYnVmZmVyVGltZW91dCI6CiAgICB7CiAgICAgICJ0aXRsZSI6ICJUaW1lb3V0IGZvciBuZXcgY2xpZW50IGNvbm5lY3Rpb25zIiwKICAgICAgImRlc2NyaXB0aW9uIjogIlRoZSB4VGVWZSBidWZmZXIgd2FpdHMgdW50aWwgbmV3IGNsaWVudCBjb25uZWN0aW9ucyBhcmUgZXN0YWJsaXNoZWQuIEhlbHBmdWwgZm9yIGZhc3QgY2hhbm5lbCBzd2l0Y2hpbmcuIFZhbHVlIGluIG1pbGxpc2Vjb25kcy4iLAogICAgICAicGxhY2Vob2xkZXIiOiAiMTAwIgogICAgfSwKICAgICJ1c2VyQWdlbnQiOgogICAgewogICAgICAidGl0bGUiOiAiVXNlciBBZ2VudCIsCiAgICAgICJkZXNjcmlwdGlvbiI6ICJVc2VyIEFnZW50IGZvciBIVFRQIHJlcXVlc3RzLiBGb3IgZXZlcnkgSFRUUCBjb25uZWN0aW9uLCB0aGlzIHZhbHVlIGlzIHVzZWQgZm9yIHRoZSB1c2VyIGFnZW50LiBTaG91bGQgb25seSBiZSBjaGFuZ2VkIGlmIHhUZVZlIGlzIGJsb2NrZWQuIiwKICAgICAgInBsYWNlaG9sZGVyIjogInhUZVZlIgogICAgfSwKICAgICJiYWNrdXBQYXRoIjoKICAgIHsKICAgICAgInRpdGxlIjogIkxvY2F0aW9uIGZvciBhdXRvbWF0aWMgYmFja3VwcyIsCiAgICAgICJwbGFjZWhvbGRlciI6ICIvbW50L2RhdGEvYmFja3VwL3h0ZXZlLyIsCiAgICAgICJkZXNjcmlwdGlvbiI6ICJCZWZvcmUgYW55IHVwZGF0ZSBvZiB0aGUgcHJvdmlkZXIgZGF0YSBieSB0aGUgc2NoZWR1bGUsIHhUZVZlIGNyZWF0ZXMgYSBiYWNrdXAuIFRoZSBwYXRoIGZvciB0aGUgYXV0b21hdGljIGJhY2t1cHMgY2FuIGJlIGNoYW5nZWQuIHhUZVZlIHJlcXVpcmVzIHdyaXRlIHBlcm1pc3Npb24gZm9yIHRoaXMgZm9sZGVyLiIKICAgIH0sCiAgICAidGVtcFBhdGgiOgogICAgewogICAgICAidGl0bGUiOiAiTG9jYXRpb24gZm9yIHRoZSB0ZW1wb3JhcnkgZmlsZXMiLAogICAgICAicGxhY2Vob2xkZXIiOiAiL3RtcC94dGV2ZS8iLAogICAgICAiZGVzY3JpcHRpb24iOiAiTG9jYXRpb24gZm9yIHRoZSBidWZmZXIgZmlsZXMuIgogICAgfSwKICAgICJiYWNrdXBLZWVwIjoKICAgIHsKICAgICAgInRpdGxlIjogIk51bWJlciBvZiBiYWNrdXBzIHRvIGtlZXAiLAogICAgICAiZGVzY3JpcHRpb24iOiAiTnVtYmVyIG9mIGJhY2t1cHMgdG8ga2VlcC4gT2xkZXIgYmFja3VwcyBhcmUgYXV0b21hdGljYWxseSBkZWxldGVkLiIKICAgIH0sCiAgICAiYXV0aGVudGljYXRpb25XRUIiOgogICAgewogICAgICAidGl0bGUiOiAiV0VCIEF1dGhlbnRpY2F0aW9uIiwKICAgICAgImRlc2NyaXB0aW9uIjogIkFjY2VzcyB0byB0aGUgd2ViIGludGVyZmFjZSBvbmx5IHBvc3NpYmxlIHdpdGggY3JlZGVudGlhbHMuIgogICAgfSwKICAgICJhdXRoZW50aWNhdGlvblBNUyI6CiAgICB7CiAgICAgICJ0aXRsZSI6ICJQTVMgQXV0aGVudGljYXRpb24iLAogICAgICAiZGVzY3JpcHRpb24iOiAiUGxleCByZXF1ZXN0cyBhcmUgb25seSBwb3NzaWJsZSB3aXRoIGF1dGhlbnRpY2F0aW9uLiA8YnI+PGI+V2FybmluZyEhITwvYj4gQWZ0ZXIgYWN0aXZhdGluZyB0aGlzIGZ1bmN0aW9uIHhUZVZlIG11c3QgYmUgZGVsZXRlIGluIHRoZSBQTVMgRFZSIHNldHRpbmdzIGFuZCBzZXQgdXAgYWdhaW4uIgogICAgfSwKICAgICJhdXRoZW50aWNhdGlvbk0zVSI6CiAgICB7CiAgICAgICJ0aXRsZSI6ICJNM1UgQXV0aGVudGljYXRpb24iLAogICAgICAiZGVzY3JpcHRpb24iOiAiRG93bmxvYWRpbmcgdGhlIHh0ZXZlLm0zdSBmaWxlIHZpYSBhbiBIVFRQIHJlcXVlc3QgaXMgb25seSBwb3NzaWJsZSB3aXRoIGF1dGhlbnRpY2F0aW9uLiIKICAgIH0sCiAgICAiYXV0aGVudGljYXRpb25YTUwiOgogICAgewogICAgICAidGl0bGUiOiAiWE1MIEF1dGhlbnRpY2F0aW9uIiwKICAgICAgImRlc2NyaXB0aW9uIjogIkRvd25sb2FkaW5nIHRoZSB4dGV2ZS54bWwgZmlsZSB2aWEgYW4gSFRUUCByZXF1ZXN0IGlzIG9ubHkgcG9zc2libGUgd2l0aCBhdXRoZW50aWNhdGlvbiIKICAgIH0sCiAgICAiYXV0aGVudGljYXRpb25BUEkiOgogICAgewogICAgICAidGl0bGUiOiAiQVBJIEF1dGhlbnRpY2F0aW9uIiwKICAgICAgImRlc2NyaXB0aW9uIjogIkFjY2VzcyB0byB0aGUgQVBJIGludGVyZmFjZSBpcyBvbmx5IHBvc3NpYmxlIHdpdGggYXV0aGVudGljYXRpb24uIgogICAgfQogIH0sCiAgIndpemFyZCI6CiAgewogICAgImVwZ1NvdXJjZSI6CiAgICB7CiAgICAgICJ0aXRsZSI6ICJFUEcgU291cmNlIiwKICAgICAgImRlc2NyaXB0aW9uIjogIlBNUzo8YnI+LSBVc2UgRVBHIGRhdGEgZnJvbSBQbGV4IG9yIEVtYnkgPGJyPjxicj5YRVBHOjxicj4tIFVzZSBvZiBvbmUgb3IgbW9yZSBYTUxUViBmaWxlczxicj4tIENoYW5uZWwgbWFuYWdlbWVudDxicj4tIE0zVSAvIFhNTFRWIGV4cG9ydCAoSFRUUCBsaW5rIGZvciBJUFRWIGFwcHMpIgogICAgfSwKICAgICJ0dW5lciI6CiAgICB7CiAgICAgICJ0aXRsZSI6ICJOdW1iZXIgb2YgdHVuZXJzIiwKICAgICAgImRlc2NyaXB0aW9uIjogIk51bWJlciBvZiBwYXJhbGxlbCBjb25uZWN0aW9ucyB0aGF0IGNhbiBiZSBlc3RhYmxpc2hlZCB0byB0aGUgcHJvdmlkZXIuPGJyPkF2YWlsYWJsZSBmb3I6IFBsZXgsIEVtYnkgKEhESFIpLCBNM1UgKHdpdGggYWN0aXZlIGJ1ZmZlcikuPGJyPkFmdGVyIGEgY2hhbmdlLCB4VGVWZSBtdXN0IGJlIGRlbGV0ZSBpbiB0aGUgUGxleCAvIEVtYnkgRFZSIHNldHRpbmdzIGFuZCBzZXQgdXAgYWdhaW4uIgogICAgfSwKICAgICJtM3UiOgogICAgewogICAgICAidGl0bGUiOiAiTTNVIFBsYXlsaXN0IiwKICAgICAgInBsYWNlaG9sZGVyIjogIkZpbGUgcGF0aCBvciBVUkwgb2YgdGhlIE0zVSIsCiAgICAgICJkZXNjcmlwdGlvbiI6ICJMb2NhbCBvciByZW1vdGUgcGxheWxpc3RzIgogICAgfSwKICAgICJ4bWx0diI6CiAgICB7CiAgICAgICJ0aXRsZSI6ICJYTUxUViBGaWxlIiwKICAgICAgInBsYWNlaG9sZGVyIjogIkZpbGUgcGF0aCBvciBVUkwgb2YgdGhlIFhNTFRWIiwKICAgICAgImRlc2NyaXB0aW9uIjogIkxvY2FsIG9yIHJlbW90ZSBYTUxUViBmaWxlIgogICAgfQogIH0sCiAgImxvZ2luIjoKICB7CiAgICAiZmFpbGVkIjogIlVzZXIgYXV0aGVudGljYXRpb24gZmFpbGVkIiwKICAgICJoZWFkbGluZSI6ICJMb2dpbiIsCiAgICAidXNlcm5hbWUiOgogICAgewogICAgICAidGl0bGUiOiAiVXNlcm5hbWUiLAogICAgICAicGxhY2Vob2xkZXIiOiAiVXNlcm5hbWUiCiAgICB9LAogICAgInBhc3N3b3JkIjoKICAgIHsKICAgICAgInRpdGxlIjogIlBhc3N3b3JkIiwKICAgICAgInBsYWNlaG9sZGVyIjogIlBhc3N3b3JkIgogICAgfQogIH0sCiAgImFjY291bnQiOgogIHsKICAgICJmYWlsZWQiOiAiUGFzc3dvcmQgZG9lcyBub3QgbWF0Y2giLAogICAgImhlYWRsaW5lIjogIkNyZWF0ZSB1c2VyIGFjY291bnQiLAogICAgInVzZXJuYW1lIjoKICAgIHsKICAgICAgInRpdGxlIjogIlVzZXJuYW1lIiwKICAgICAgInBsYWNlaG9sZGVyIjogIlVzZXJuYW1lIgogICAgfSwKICAgICJwYXNzd29yZCI6CiAgICB7CiAgICAgICJ0aXRsZSI6ICJQYXNzd29yZCIsCiAgICAgICJwbGFjZWhvbGRlciI6ICJQYXNzd29yZCIKICAgIH0sCiAgICAiY29uZmlybSI6CiAgICB7CiAgICAgICJ0aXRsZSI6ICJDb25maXJtIiwKICAgICAgInBsYWNlaG9sZGVyIjogIkNvbmZpcm0iCiAgICB9CiAgfQp9" + webUI["html/login.html"] = "PCFkb2N0eXBlIGh0bWw+CjxodG1sPgogIDxoZWFkPgogICAgPG1ldGEgY2hhcnNldD0idXRmLTgiPgogICAgPG1ldGEgbmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9IndpZHRoPWRldmljZS13aWR0aCwgaW5pdGlhbC1zY2FsZT0xLjAiIC8+IAogICAgPHRpdGxlPnhUZVZlPC90aXRsZT4KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iY3NzL3NjcmVlbi5jc3MiIHR5cGU9InRleHQvY3NzIj4KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iY3NzL2Jhc2UuY3NzIiB0eXBlPSJ0ZXh0L2NzcyI+CiAgICA8c2NyaXB0IGxhbmd1YWdlPSJqYXZhc2NyaXB0IiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ianMvbmV0d29ya190cy5qcyI+PC9zY3JpcHQ+CiAgICA8c2NyaXB0IGxhbmd1YWdlPSJqYXZhc2NyaXB0IiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ianMvYXV0aGVudGljYXRpb25fdHMuanMiPjwvc2NyaXB0PgogIDwvaGVhZD4KCiAgICA8Ym9keT4KICAgICAgICAgIAogICAgICA8ZGl2IGlkPSJoZWFkZXIiIGNsYXNzPSJpbWdDZW50ZXIiPjwvZGl2PgoKICAgICAgPGRpdiBpZD0iYm94Ij4KCiAgICAgICAgPGRpdiBpZD0iaGVhZGxpbmUiPgogICAgICAgICAgPGgxIGlkPSJoZWFkLXRleHQiIGNsYXNzPSJjZW50ZXIiPnt7LmxvZ2luLmhlYWRsaW5lfX08L2gxPgogICAgICAgIDwvZGl2PgoKICAgICAgICA8cCBpZD0iZXJyIiBjbGFzcz0iZXJyb3JNc2cgY2VudGVyIj57ey5hdXRoZW50aWNhdGlvbkVycn19PC9wPgoKICAgICAgICA8ZGl2IGlkPSJjb250ZW50Ij4KCiAgICAgICAgICAgIDxmb3JtIGlkPSJhdXRoZW50aWNhdGlvbiIgYWN0aW9uPSIiIG1ldGhvZD0icG9zdCI+CgogICAgICAgICAgICAgIDxoNT57ey5sb2dpbi51c2VybmFtZS50aXRsZX19OjwvaDU+CiAgICAgICAgICAgICAgPGlucHV0IGlkPSJ1c2VybmFtZSIgdHlwZT0idGV4dCIgbmFtZT0idXNlcm5hbWUiIHBsYWNlaG9sZGVyPSJVc2VybmFtZSIgdmFsdWU9IiI+CiAgICAgICAgICAgICAgPGg1Pnt7LmxvZ2luLnBhc3N3b3JkLnRpdGxlfX06PC9oNT4KICAgICAgICAgICAgICA8aW5wdXQgaWQ9InBhc3N3b3JkIiB0eXBlPSJwYXNzd29yZCIgbmFtZT0icGFzc3dvcmQiIHBsYWNlaG9sZGVyPSJQYXNzd29yZCIgdmFsdWU9IiI+CgogICAgICAgICAgICA8L2Zvcm0+CgogICAgICAgIDwvZGl2PgoKICAgICAgICA8ZGl2IGlkPSJib3gtZm9vdGVyIj4KICAgICAgICAgIDxpbnB1dCBpZD0ic3VibWl0IiBjbGFzcz0iIiB0eXBlPSJidXR0b24iIHZhbHVlPSJ7ey5idXR0b24ubG9naW59fSIgb25jbGljaz0iamF2YXNjcmlwdDogbG9naW4oKTsiPgogICAgICAgIDwvZGl2PgogICAgICAgIAogICAgICA8L2Rpdj4KCiAgICA8L2JvZHk+CiAgICAKPC9odG1sPg==" + webUI["html/maintenance.html"] = "PCFkb2N0eXBlIGh0bWw+CjxodG1sPgogIDxoZWFkPgogICAgPG1ldGEgY2hhcnNldD0idXRmLTgiPgogICAgPG1ldGEgbmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9IndpZHRoPWRldmljZS13aWR0aCwgaW5pdGlhbC1zY2FsZT0xLjAiIC8+IAogICAgPHRpdGxlPnhUZVZlPC90aXRsZT4KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iY3NzL3NjcmVlbi5jc3MiIHR5cGU9InRleHQvY3NzIj4KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iY3NzL2Jhc2UuY3NzIiB0eXBlPSJ0ZXh0L2NzcyI+CiAgPC9oZWFkPgoKICAgIDxib2R5PgogICAgICAgICAgCiAgICAgIDxkaXYgaWQ9ImhlYWRlciIgY2xhc3M9ImltZ0NlbnRlciI+PC9kaXY+CgogICAgICA8ZGl2IGlkPSJib3giPgoKICAgICAgICA8ZGl2IGlkPSJoZWFkbGluZSI+CiAgICAgICAgICA8aDEgaWQ9ImhlYWQtdGV4dCIgY2xhc3M9ImNlbnRlciI+TWFpbnRlbmFuY2U8L2gxPiAgICAgIAogICAgICAgIDwvZGl2PiAgCgogICAgICAgIDxkaXYgaWQ9ImNvbnRlbnQiPgogICAgICAgICAgeFRlVmUgaXMgdXBkYXRpbmcgdGhlIGRhdGFiYXNlLCBwbGVhc2UgdHJ5IGFnYWluIGxhdGVyLgogICAgICAgIDwvZGl2PgoKICAgICAgICA8ZGl2IGlkPSJib3gtZm9vdGVyIj48L2Rpdj4KICAgICAgICAKICAgICAgPC9kaXY+CgogICAgPC9ib2R5Pgo8L2h0bWw+" webUI["html/video/stream-limit.ts"] = "R0AREABC8CUAAcEAAP8B/wAB/IAUSBIBBkZGbXBlZwlTZXJ2aWNlMDF3fEPK//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////9HQAAQAACwDQABwQAAAAHwACqxBLL//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////0dQABAAArASAAHBAADhAPAAG+EA8AAVvU1W////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////R0EAMAdQAAB7DH4AAAAB4AAAgMAKMQAJEKERAAfYYQAAAAEJ8AAAAAFnZAAorNlAeAIn5cBEAAADAAQAAAMAyDxgxlgAAAABaOvjyyLAAAABBgX//6rcRem95tlIt5Ys2CDZI+7veDI2NCAtIGNvcmUgMTUyIHIyODU0IGU5YTU5MDMgLSBILjI2NC9NUEVHLTQgQVZDIGNvZGVjIC0gQ29weWxlZnQgMjAwMy0yMDE3IC0gaHR0cDovL3dHAQARd3cudmlkZW9sYW4ub3JnL3gyNjQuaHRtbCAtIG9wdGlvbnM6IGNhYmFjPTEgcmVmPTMgZGVibG9jaz0xOjA6MCBhbmFseXNlPTB4MzoweDExMyBtZT1oZXggc3VibWU9NyBwc3k9MSBwc3lfcmQ9MS4wMDowLjAwIG1peGVkX3JlZj0xIG1lX3JhbmdlPTE2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ACqxBLL//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////0dQABEAArASAAHBAADhAPAAG+EA8AAVvU1W////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////RwEAGO10tGlFAwyE91Tzg8923ovJk1dv2xh1gVlYQFtWdZ6NSQ8vgHM7/tMfIZPsqgCU856rdBJJRMDaor/oWA7pkvSmC2aqaC5fd/mkWUPTuG8fRhGqOY1rKxLNSI3HtTQAcuVBxRM0NfMw0ky/JMJYZiCgXcNsxpxl+khr/9fKtO5Fg2VNBti92xcZimHUZDJMQTBOY6vSR9L1N2O/kJQCpdfuc9bkcUTMjH/es/lAySxvbiislkohqkpHAQAZVatwHI0t9eHCUfDyWUEtuCNyDwQFOVMtaYEQJrTrhQX0VduT86F0u0wN9ag0uPsrmX6Rid/x5S7KI1SkS+qP6cdmgSP57uiF4dG6IKsWNfGBLY09H/CFlrg73WINQkkp2diKkdEmtZetn8+ZAKzR5eXN5FebiKt6pIkNLuSofjosypEs2o6boKsfpmbtOV0idOeWDM9C8EIcn3aZwk1s2KBDvt1DlY+i2Cuvhk3XoKLT+pq/bOC5QkcBABolcOXneZXLoQw9W1PH1f/of92Ytjj8okrWijcQAKlE5l8XoTb9qrOiZnDOhqwcMlB9H9rorq041I89hChohYoSkJElcM8V+r8WYN5axD1BNyfwaHAOm4UN2/VEYOkNSfMjmx2S0WW/F2ha8Jj4fc4QgqcXr+TnnbwqLkLTValK4Qa1pcv7PIbDq6zCUfxe04guZ8xEhPQjp17/G6IB/6uqIuo7pzuN2ILWNmJBMsawAinQy0KHE7HQRwEAGz1R+tt0cmQSjo1isoOsDDDIp3Tmizsn67P/OcHe/0kDfOxZ64ySuxIIL/dIIzhjEvRAf7spa1ZKukufXffNiEUgf2Dh1+Svgx4pc4AR8v3Kp5DA2FPhKaNALz2OOqAZkq4APojoxUc4cQJzOVMx3nKPN7LUwaZe9h5UYz/rr+O7LMCCGQBmZv+T+vfZ7MH+hgR0RuIm2WDgK0xWnYsjYgpdhPkOFmR9ypsthtXh18/3M3tIcz9yoZVHAQAcD8cm9dXbHuN4+yGebTg8JOyIFoRImB2o8d5inS5OiJXyBrySVrU4Fa1MzjPYLNulucjXgAAIoPdc/bfDnuKIc/a9sheUEUfQrQ448VMZ//WQwDCe5igCPqKczFJKJlDdha+0Q5QIimmwUxYyfbvp26689j/qAOiUFcqTfas3Q+SvP/xhToXvE9eJPwsbS6RH7k01YATeMm0rydZVwAxxrLS9pyCenFWkXN1PaPL/Poy9IQyFK00RNkcBAB3yQSzlj6PoCoBh32QZwW5Q1kSeVBOU7Do3dvkhOL5NnUI4ttFWYv1PMol7ZoW+Yj/GGQY5BB31FcMnl+YPTIJxJrh4ZXzrdaRUJAdJZ4Zfu/UuKVp597MBazkkqo6VZ+kaIa55znw1YrruHcZmImU3xw2gtDjOORIJditem0geEQwoVrxrKPS/+4ODbBhxPi0X10lBjIPGs3x+M84+ebMH1YsfbnxbPnYFG1YKifvd0N91ocx+DK3FRwEAHuKZ7ozvu2wsrpTRpTlKdI+uDOb1ROwsQ/sPFlaMgNtRfOmWhxG26B7kHd5ZLZe0cuEdA1sE5tjAIhqFLLNQCJkvcZ4vsFUG7Sd/21dRP1RxoEMqYzoAmHx7P8/1oFhPG3LyqmFm4Yg/8On9yygdzEcENDcwT0pW3gQgwMtqy0pNWA/iwHhUtT8pAZ0J9MIn0L86JkKL7IEsUy3h4MTqYfiCnE+E63xb1o0ig06TZr6WWPr/aVBCa9BHAQAfu9S4KEn/4HBrNuHU6wD5ScTeQ5t1rKcrO3OIA8IBCnH24QceeDn376IBFsMWypXDR/z6EAAAAwAAFhs+36OpsPrZqefoW5lZtwn5uW02DNDJn0WzXKHvi3VeD2ArLGEmY4UT5EykLlpp+24W4mnq0/b0DpKJGeP9/gmXd8dzAqzG/rAzwnD9R7efBvEg8vhF9rv1T4ak45NvSySq1WefGcipvYXEldjS7JUY1mWc9acYUQg0ONaQ30cBABAwN2JhmEe1e59DNT+kVr8blx2elmAQT6EbQ4aJAw3xeVjTHRFb1LHG4B7ggA9XA1ul3JePxANqg1S6yIpH3Pk+JGGaBgrgqC6+c1B8NDAnG/HE1v29xLaIF9kt/+XaLnfua/FzVNXtV5+ABnuVcJ8w1ARgdiewIev1oAkHX50VncMg23r2UgeqhxhYRWUdJW3xKXRzwBwW6fD6JB1E+e+tksyeQua9Mo9l+MjL+YOsS78h6Pto1PEpRwEAEY912w+d5D8ZhXzwlBcjKTsJgplzEsdxYDppRR3rwhgmZEEhxKYSAbR82MVWL6LRj1W5G/m/im/3mWc7OSyaTZDGJPilsghWdgIPUNP8yU7b2HiApE4goxjc/XdUAJo+LAMHEn8ZYHRJQ2fwVxf1ZbBsOqEcglft1bdl4weUIQvU7TRRBdd66RlcPo7or5OkhTlvG6fwWv2v6zPg38hAkGcANEb27RFoj3LmLgoqWA4OoSA4CIGnCl9HAQASFZYomwyHjvRRnlD0n6T1BYm652Lp0fAaojKnPakdQd++WlJsnPu5fjEzRo6Zg+EwLTvnHjKNQw5cExyWfk8hJqp3LsegNx/7u+Ezd/6MNodhmzPoF+LTb6BCFbCPwHgJ4bUp1YUWr7tyb4xYdEojhhTJ140OyFMrCkStDb+PEL/WJqFTw56zpU1aQWK/0cNp69jvTcJtgsskEkL0EMJeakI3/xQFHjmKzi/Rr9Cjd/nnx3mAedwYCkcBABMdbTIM6Kwho8RL8QYLZJwgeneAEc+qJ6nhLMzzHdDzXQSgQ6+KioMAhQLKbChryo1vOBWhCRT1e/6z1L6ApYgZAtuQDXWsKPfOrNSkf0JFonpGE4omnNnaQ6eUvsVoGnne+AAAAwAACOn9aEgzsgB6/iB10jVeKJi6jpoN2IlhkaPjUXiO/7/MTfMgvYkifLFmIi0qbyzxMv/f+9XFf5k4RflW2Qu0ZutzUKznuY7Ml8Ma0LIJR5x4RwEAFIJhwbdbbmXWxS4/Vj6rtX1NX60Ar+fetTN6P+mshdJt0rv/Pv+R/N5ZgUp/8e9tYrxYZz5b+4C3VXaruuHouUR5YKRlA4RNmcacgaxGDz6Ca+00EE1rXyGy/03udWMQPPkWEJmXU3g7bzSrIFytreC+EZNfVkgMuPYLTgxkvKA+e7H9PmmwLojNZdgTQi7Nala/tVnLQGAthQztBYI0y9H/uXju0axwnmopNvjdtPwMvhjMckg7EPFHAQAVTtct+JOyBmPENfuD3Y5En8dkZH+5jhAWPYgWv4INxpckQWu/979vIi/wJWGJFGJDMP//cfilLsEkQwH7CA3+wYURzLAu61mtmR/VG1qnqt0F92iYVULqF7CH1YVu0GcGsvnYLtWRfiKV47jT2HUCgtJUeL5QanujI43Kxdf8eiakEZkWiAQy4Nfvgw5zROnWOatZImIJHSL7RNmC3XNLFVvnrY6xKQNoReMVpcH8Sj7xTe/R0yy570cBABbh7k1iSoUoMqQYxOJodbHu9zS3msCs25Nqb3ZDhCtdWOsqvKvtrPZQ4XcOI+a6ihG/Ycmd+asxHg3VrQ6JG/pzFphe9c8TRV5yfWJYQgpoboaMniM5ppcybB53KlDIcab7dSYrttrbaYJBYUACFIyck+sfCXgCdAAAVAAAAwAAAwDDQAAAAwAEeAAAAwAAEiAAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMARwEAFwADAAADAAADASlycnNTmxnyBLcXsWz8h6WF0kYTGhHP8asasyLeBzDJ9gp5mHMGnpKbAjmdyZKkqLM/GPx32j5xbE1B/4BVb1CqOUh708D4c8SgbK4l8oH+7ntXSn+1ucd/8/mpMXAZkli7GqwRswPkf3iy73pwD0Lj1jtsvFV5Ya9pbK5XPJvnr5kAh5B2olRuayQficqQun3BaA+TLwI4Pet5fRsuu/NlLyByr9A+ZDEAkVGe729HAQAY7VmiGx1Ogtz4HMMQQAAAAwAQxL11ZI096au1I6RJP/y/sIb/M3lrvj7OsbbcGYu6AFxP7TCvVbqcDnZvz4Jvg3J9UCcXOZAawA8hwlkNrWHVOW4QQUMqCRS0hmubAxYpievo+EKMZFclBcpqmos+6tIq4yYuMm2mU7SHT2YXfi/smSQKGiQ5rOUPvaDibyW27+4HGz/LOV8On1IosaigeYiM2kPhtAMzDBMgFmkypIjkGoaWQ2xfZUcBABkLYUBb/feXPFLHLSkevtM5lBKWRqKPo2s10TOMa1i1iUxgwMr46RICL6ewK5XDbHNlzaD0EO+haLSR8mJrKjyktTxR1qF8CF8YpGNK3b4rtbZ68pn1Cycf8FMjDYTuNUCw6TyJQxAu6CFGaFgpS2pApj2wxHhN9xe7Bk8+zHQy+mNy9AV5Dn+ckwd78CNrtfT4JPGDeXq/oqpr2VwJCtXI2pz1d/eGU5RWvauNYDbJumMcZmoDLRQLRwEAGksa3WjicuJEvpE/WKZapUatBGpvl3Y/7YU/cd3HnppRvayufhAU+rp5PXdQB48ZjNRSQF0OzYiZ40gXb5wwhN+lDw86ULPV/R5FF8e7rR0Ncne5CJseKGSSKJdN7N6mE0WowZrVoslYamlOFF9EepFYXcul3MWr/8sHaW2ivgv6USTm9wmys9O5TTRogkLCkV51bMO5Nf26bSlsf8MHa5paD9RLq5PZ/O54+rQB8nL2NAZQyde1/5ZHAQAbjTU3beuNZI6wglFkDNfNBPhH6uv/MazQ4XfWwNSQ7aHrfORMZYpwCo9uHR9org13ueb/HwHvVsHHOjq6Ea6iIBWC5NjSHZ886ZqJ2f5UVzQqITMsQAvWPR/1H++IharnM3V/3vhl4qsEQGidY7vhk+jd0aVI+WqwGVjgIryjo2P+lo7eyR62jVTUHGrz8woJESAwviQcjk6RS12hH/rH/kokr884wXkNeMUbMMD1quFOgtZwYFTb6EcBABx/76VVTABvZ66Tpl7FFNKuyvTB22cx75z6QLpBGOkovrN/3stJ60KRDgSxKEQlBpm4sH3bkDmzy56AHBkdGIv/1abQQKuGoFTBBYl5+j7zE00Nj/AHdteq0oArBYZzAEvcDju230uEMV+YOfMQQiSojTVSR+4kHCTT3LvzU53EVHzD7ZmsKhyhCSrAH6um+HcPHESNZCknCIVwNRUHYWmUBQvBqQ6eFSSw3OBH8cfI92IzgTHchjeWRwEAHQ67+e5mho6aJfJ1DSfvRz6nm4wQlWUxmY3WoxgY7eSZSWnyDk5zUtxutuhTnLRwngGI2GAYptHV4/JE6hvICCrOVyXSO54J25RuUE+XqT0E9zKiKiHCd7McqAW/LG7aqUfRoGXO4+FzLs/4HJ/GEdYZb2/8tksmvDRED1XjzrAkTXnrsD+Y66hYBscvgm2D2IUm5DIirxrSHCtrDTo/P653/JPhOwcwB1ARpihyfMYpIRU/NNX2P/dHAQAe47PibRpj44bY8wv6RkvLrZAAFzeK7wAreuY1mQfzgAJ+NKZDvAL6cXghTWYbwl0vQvkUV/UXT2k+v6FWRYjSTd+EBVjBgFS6GqEzMEbQl6r/jGarqdgKOqVSDAch/A3JGSxAXRCY0U+TJ0Jss6CoiyEcz6VlcHWgVGLM715+t87wkNGc2PRJIv/m5YJ1Z5EpDjoDHEAW4ytyc7jm0Nm3P5fradcJlYNs7NA2RDK4UqyhjculF8vWWUcBAB9AptBsY/CA7o70Ymq7D+51DrpBVnhghBCERYgwY2AgCGIXmb0FP8mOi4SztMegdVsu3nYsu3wedsR4n7C3fBxFoXOtXR7jb9y2tdxaN+vE9U29rqeo09jeoE0DohbRndPDtqleKZ0M9JX1mITUVKc1h5Uyk2n4LUiu6y9FqRYqMhgnmJFyb4n0l1r0w2vEp5hZqQ6s+pincvbzhqo0cM0Eze+tLhKI5DSLp3ts9IKBsGkjflGPHcoFRwEAEK0Kf+WapwtI+Tbh9IF8OTLreFFPrGaD9iButWKDb8FZybOe1xnsUaFcof4ttxETtD5CzFPVFPrbKWQ+4i3OaCl/v3ehqlrEJFBXy6TUrtcE8imbhjou6Yp5ckgTS5NMhToX+FQ/SnHv3lG+B/oFkVnC59jZb2KObyb0IwwM3VOQwt65xyAHoBFD/3xsvJhC0UJcudSdXreuoOHVVJvvLCIDY9zLcG7Z+T1LtHLfRrJrK22yTCH+p4NHAQAR2MUOxiSRh77FN4Xq89SijTT1QcFcwJWgi7qxRPm0cvNXlOO3eKu8LzhxW+1r9oTUKe++y09Ar7D+jK7PtfcU51RJ6u9hxLL03qcNLM5F37FlVL7Ii6HRZtudEV617L76N7+dw+vfjJgAFFYNoCFVSGaWcim0NG7JY35/r6TYlg788HQMS5JTnU+fQW7OKewui/OE6wVhD5DwqIRtpx5QlRU5Du1ffsnT+4G09pqTfRhtOdkT1Jr/e0cBABJXIpvsDPvnr5cnvs8/o9CAe+0EIPMIFdgBJKfQx0TfNITZDVrus+nyfopE6lgvfrd1luEc5kas65cuQdwjHYTVCyzLN+wgmZnBOwrtSZuT00SpBvDJyiSSg9Okl8GB8uShlQ1IKC0UfSZ9E9kEbe3hBOJYk7FZrR0x179tvGBjXBx+LHlUNSKUkNm2wE0+3MB4X5VtpEfRxZXn1KxgzVENBVidWkXspbp+2vajsCIWsJ6QtRGG12dARwEAEwXVDuILuHUHe0YVozn5MeSxkHHLW6A/FhIOmBUlwa15+6I3sLvEfs/lvt3dg9qyV3WDyefrnnP8R7K1oUJffNqTYpk2x3tf1eP1lw1jCVs8Md6RfBp636Ao//6M2CJJr07dqQZ7JS2dJ4ekIlNKa6yvuzZDYgAdTjGmv4y8nUpwdH4blHePi4WE4zR9xDKjl7WopKtgXgFiw0Qygdqa0p8KMwBF4ei1J/NythnX82KmGtQh8RkVMidHAQAUkckmc83sODwEv5QRD+/8XbUZjc7OyVHeFDNLwdTrxZwbjM0oKaEYr9A9jVt2YyuIEvM4S0jx9t041mJeU4zNAAADAAD+wJN/aSH3oQjomrrvvYbLAY892upvZRpRdxKJhcO9kRE3HqOJo+dhziRHjYVsjnrEWxhlLrbQttswOzATqSgqofqVDqyptVyt+hRwQjP2Vp8jL+etFOL+4/yYP7izg3eH+ehTkGuhcXM/pL7KkZjDcM6m6EcBABV3+EtJpjSjvrKOei4iwHF3ie2AqHGbkkhaM/ciyuODy8Qubl2GxT/JLw6k3pqcQj0sjL1Eee3yEeqIFLLqgDbbBsu+x6/AxrcsalU1VpUVujcfRBm82qyIgD2l9tl96oF701i/7a3Y2ZQFsEuz3MmJWOJ8i3iAcDmtxbLyYKJQvFQB7GChv1hdsiOF8RgLQaRdOL4qjfRAOY8AIBfdooc5IgOsdbncGRZmSPD0mgjNJUKIb++krWDmRwEAFvb9EAAkNWIlXOFqNjYHpGUrwAKWtVTG32tuzoX1rF4kt6exM8j4BfAUCD9PR/47qqTLR8qo9BwTYMWR19SjX/sYsA4ADaB79JCYDTg+o/1WSVkjkATYEmjVZlaZgvwIRCEq6wRTeH9Xmt1ymBnu8BmSzdVWEdpBXybOA8Q2Hn/0qYhhfQIvJu0GJEZTY5WXUqQjT4YattfDV/vUg5h51OVXjtbE7JZfHnCjmytxSBOMbL688/hpm41HAQAXLSpU5jydyJaS3J5S2u70zpQFYtEgdjodrabpk+sY5bDt0SCAWVo3bKtWDTLQUfu1ryRljAxn9RKmG/PxLkez6l4+iAYuV78qyuuYf/r9S/VP1VPGnsRam6C37TPn0GK5RiVfAkcoBlWITztAAjwqpfifBkFp75i2Uhw1dovkWVuCWdl0JF9S6heMPqXuvZnqLty1sWwLmsjTK0RvoY+JS3OBTbQLu6RwXG54Qt/2KJBAVEDS/2HouEcBABhCnS4sa3Kf28wcXVk7uLQ/tgWCQOltgo0+fadM0nOV6Ct7HmQgh1/c+Hx+aTHqdCFmHf4U+LzI1irsvE0iygXVwq3gaxQfOpGVuNhKx40xYOJCv7GeiOHxGv1/TVcHeTggQQub0Ce7OJETW3zL2ijEvFr/90IpEJjGVcuGXlHT4YGT+sEgiww7LXPLhV+mRVs+dQCZLqkhFOOqXHIMSc1f2pjxQ/0AnMD4G19aAr6aSux4Un6zJV6eRwEAGWmqjXInxpYxmhZUgnGD4hHccy8iX7PXAzN2X5vepIyAo2Pt/3eM6VfzczMJdlQBT7OB78fa1XJvQguJXp0/IeoQXzyyq6IKbsJY/Fq8YIV8Nb7x3CLandnKjBSu5tpcBORjKSwfGB80kyqJy8MIdtD88MT5Vk2BE4Mx+qxPj1uGsNcqJokvDLyGUziFTI8XALCj6SL+RZNb5+8ejK2PZrv/JJcoL0RVzKxJ4CQ1DwiDGRZesmCcIslHAQAatdKwVX6Xfcep1RT38EuHBV7fg3RJ/PYvSJqMCFZd5lOXJh9YpTZQ0TyWNegCEGlA353UkXS0g9RdUFOMrVsBzvBlQlavBQK/tT0MV7YEiCmtKxXwz+D6E5K2HkXSztUb0L3XMYLhs4ZfWOEZ/vn5FL/6uxSlrW6irjtnM1J+bBTHmrgO5Zvx56BO7cpe7+SSYTa+P3HPNTDvnhth6RZHkIAMc+fwXod00HcrfYaEUP5vUjNisffDVEcBABtwZ7eaZH715QL+vN2lkyrfofshaE8HQ9UllaoJe4PSvUzzid3X95s8WbJv6A76JYODVx21aCqpi2ourmt/o4H9IXsSp5JsNnYOpGwb7Ju0oL/WeSNKWGSWkQug3XLox83iBBARgNDJUMkoCJQPrL9KSebkr0T6WVp2FggtoeiPsDjrsz1VlfsFkOOIIQpJmpzeLVzCsuefvxwqdnJflpQSMY6XFBVJSMRLtrQLQFOm1Y8A4UXo/gB0RwEAHEdgReRhgFYhRCwRO4hsBkniGCbjjOxpUyPGiHd8zz8D9mRud+NCP9OU30S6fwtaFSfKHhmut9b6HDHkdeFLYRj4PCRzwnibxQ/cXEblVnM47wbCN3iy4eHjYB5MoIICrSYmd8nt4V0toLs084KJlmnur5FbApYM4W79ff4oZkW88Cg8Fv8TnWhh1Hqc4UlhMbRKm2QxDgfBxar3U7BwNR6prrXXjqfR7ja3tPli+H7Jez/xcTg32QpHAQAdTa7pSSgBvmOqzz175NAFIhwE9p3d71F9jLvhaPv8q1iKopL0kizwzEWElnXWmNhfLkl/Au8KujnoKUaxVdTe+zAZm2dOkejnpNVtVj0Aw9wKcG3ZQ1iRZrUFRIoPKYlmR+oi0LrupuhYABtgPbdCbDtezGTr0nw9wVd/rZ6V+1wcoJ6+8VAVueIdwI3brqm6EoFHiI8L6lER+9SefB8fHo4NYgr/I8jSxaa/2PLX2K/DjrlY6bN8fEcBAB7DXsuh8DITF6CYWj2HTFvqfzlic3QHXnHtvsTFNpyVY1LY8y/fRK2mwALN6IB5W3OuyoKiA3K0lJdQUv2gYhHWvPTV218HYrD0rkbMxRH0SiEEkrHDeOt5T1HtWD13D2/QvMu535fsfZyeaFDjdCE9M0Xi8Lfc7Xj1ZNGend7Jo7/cEiczFkc1vB4z2JpFGZreV2EdquyEzC2STFJtfimyx8QlLngEuR1cxH+lWEcFX+mvBa/eqktIRwEAH6VazFLPNsnHZqsI66TVoArQuUUGFAzr8MT8GZ9V6qpZa5D0jA/4eGi6Kq0smUgRExnqIbSMLWqDf/Pk2YT3MpHTu9VE3Dn9blgB6KsVIkWnB98Y2n/6DrZDcF94Ndu0Ka4U/RZwdV5O5KcO+lU2ZiIOYTYZ6Ie0d+tApxYxJ+YmxaDoCyRNe6crw/yzR5SflT8ddi/E2BM+l+nwVDiKZ/714fmrBxFKWuqLiQNHV19o1cZ8Ubun+ZtHQAASAACwDQABwQAAAAHwACqxBLL//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////0dQABIAArASAAHBAADhAPAAG+EA8AAVvU1W////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////RwEAEH1s3BdtHdF1ln55B24wdACF/ggcRtPmB4IUB6cZJ+m32I4R48ZkdhAFBulgWcsv0wZwH0o1yi3i4qm3rJ98AUKdB9PsNyG9gURV0bTw4myAj6g5Dgodfv6w9bsbOxsGUWkvgAJ3rrR010BvZbIa6CMRCQRjxkCfRF77ansRJZT0JzhtYeSS/ZJob8Rr2jrng3W2rkmHtE+rdqlPiHxmwkRZvYGhBxwiJO2L6f+l/cABsfs09rA+A0pHAQAREZay3TBUIAfMWhApE+LaPgeyOYtaPFONA9aC0h4QrFkaLZfb86678MK+zLgqDBsDoj50eZHMVcczRjs4sYlv7RG8RIWKb5lB9Kn/8+CkxiiA11cHH1yzLX2SKCmhsak/+P/zYQ1EDvEj33bl9e3Jd62cTI+Qw99KrsWnUMN8hFNeXzoGHA3aec+Li4NFboF8sa6lCPR6Csxsvxw8DJaWCnER5Z0p+nKhXavF/eNHQ0DX47ohycc87UcBABKsYHCHXXe3vK1cFYDWO6rhwM6hxCdJ+/X+VB1akQejL6iBMdUPuadUqBnbprwJM0dWpSSn9uuZZeqe46iZOGIJUo69d8x+ZSvPcBH/dK1Y0LJnoWdgWH51SQg7eYqcwjQW3BOy7ZF02Hn1EhTuhsN7ms8zv3WIeEBDBq0T3Idl+Tmw9iJU9skVYiwygHG2+0XwrLa6y+uiQPwMzrnEr1kuf24XoAqrJTZQiVH3aQF4d94yDreWu2KPRwEAE2FsynHZaUcBXEFbeX0nSxZ7sRcRjJvc7RYOny6N8QFwKDVO7jpRWWYM55kuepBOyZ+7BFYeG+FU1kR+ZfmqyDNkD4D1IPwNh6u9JQxDymfN/aMcQC3WxdvCKquPsAut6dugpGkOFtIe+W3ayc4V/J978P+h1EDFMbFjxRPuXht0K2dBQZCJ0ybISUDqWzhPuep8CdxSU4MvMVfdXh7FLl/BqKJUTT+vM+Pz3XnqCQQmH5TjQ4CK55VHAQAUEtgfkBwIYgtwHkhjmtLw7HNTeJeMfTjATEKcyuKzItSeYxHBmGzQ/+G2otpPCOkVAXJ9mfx7LxrW4joZ0ttTRQJ/wqMUK1IN349LiJoo8y/+FwN4jPNDwIleJG697riqnmLOweFW8spHKLBfnHcyC1pG6EIxFpTqUQ0KHqXD/KXIHKioJNAOVwQ1Gfloxebo/Tdtd00dpHP3gcsAOnV75APCYOjVIlwm2X6ViDeZw6Btdb/Br/+yokcBABU3+eOESLlneGbR5SLiL8wPkoRaZ5X7xFlMTMvsv9yHk26bVdmsubSdbYS1Hy64n0+NnL7C1aLD7aJxOudMjVW5goZbfO2KxBQkCD4HFA284wbaB5vOL7mRilCn6YEs1kiwf22+fBLNUmXDb2p353wrD/ygTDhlki66USvUmd/ZAs9uzAddegEzy7Xn00YysWTu/hegYyZtWFC+X5dhLubWJ7n96y5wjrP7PAOXoQQtFUH9j/rBiP/7RwEAFnL/wYKYuj80mPGtimSbF/E9K7XwjwBz8yHZubmVMTCmwkZBM4h0FR1thnUGiSjqjJT6SfunWCZ/dZDQplrzS00UKcUP399SyM+nNG1br8Za0ZYwWch8nyLHYXSRuxdnrfUUespsOQo1cWSLGf0pV2HIcHoiAAEKwPU6irB5BSoFvB1qKVjgEk+QwAEYAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAABHAQA3pAD/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////AwAAAwAAAwAAAwAAAwAAAwBbwUdBABgAAAHgAACAwAoxAAmBIREAB/SBAAAAAQnwAAAAAUGaJGxDv/6plgAAAwAAAwAAAwAAAwAAAwAAAwAAAwAKCKB0AIhy1ftwLNISWucTFC7xeBcaIzP3oZjZo8uT9hqZVstWGnrPz+vjaA5FuCO+K2w7/o39LygDO7aL+0zSrN90LW7r133x8+f+PEKk8d7pd2fj4RYuMOXOYunzFzRX/4IvR1XsK5WJYwVkOca3yfo7DTvUBP9rgSiTRwEAGQD6CFK1PBC4qYCa+coLVnX+jgODNrau5YJXIekDI4+wUNV+5T5HE4e2t5EGAjn77+kC1Vghmvx8KqPnylVUvsaTofheggxHsPuxn1zQt6nA59UglrRUMn8b4pmrvfqTBSqU949+AcNAI6M/eAqz6r0RG5KNeBhx8R2f0x2kujwHU3pc3rlPb6ZrFM/2HiG97eEIezrvWFG7YAAAAwAAAwAE1KRo1VfbdZQ/tOpNGxFmTcQoFidyD2tHAQAapTTIErUKA2Rc9uIzGJu+oW0uNOxRyl6oJNUNJp5L9TIshNS1CmUKgdCaE3LkLwdE8iUkUnIGfWLiWpWmjzsINYC8dnDaSptB53yJkBu0SsR00oo1PZ0pl4ZzoXGSYQJTPaVCbj6FNqm5wcnUqKTB/rgHdPdnDj0K8asLABeo/n3XCXrDorI+LYSD1FBgmV9O7RZdjfL0NnXOQkiq/ZGirwVV0cUF1aHtZx1yHlAAZKuuu7TqB13CAUcBADuRAP///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////yj/IrOvAEoXDNGy+nrxWN0l8cmuqWYaUJpuM9XgAAADAAADAAKmR0EAPAcQAACJHH4AAAAB4AAAgMAKMQAJSOERAAkQoQAAAAEJ8AAAAAFBnkJ4hf8AAAMAAAMAAAMAAAMAAAMAAAMAAAMAC/BmhyuvLmkCgKTgACEXfOVvHRHdpBEEmTTz9pIZCa2FD0CXukzDCakOHekTpJQSdsfd7a/jjM1/5lBtKCAGQ6zOCSQ6DeKtyw+CugDuuglGipwmvQW+FIDjnZ6HRd0uaSOGy6VB3h9MI1o4nqaCqVwwIgubYZFHAQA9XgD////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////WcZrO6BEiqf8pCxYwlz2mkdUzY/ipM/TIHS4m5xQAAAMAAAMAAA5sVm90p14dlvWgBgY7XQ9KVOJKLtaMAN5KiffVQtNuzW5DfL+RewZpAAADAAADAAAQMUdBAB4AAAHgAACAgAUhAAkswQAAAAEJ8AAAAAEBnmF0Qr8AAAMAAAMAAAMAAAMAAAMAAAMAAAMAABJfBjP2+4+W7ZybyT130+Ma4WSqICfd/dS4YtjrLlmh5VBlfrtwJqdN1PBTYDkwGOOONqZQeFN6lLGJoDzvuh3kv1aDBLqug+JhvrSeu5ebnvcrtQzb2REwJL3h9mvtkr0WfDu4AAADAAADAAs32Y4C/6Ns79oCGj6oqLltY3T4I0/QRwEAP5wA//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////8BeoWLRnKQmVgO/RBoBfcK85AAAAMAAAMACFhHQQAwBxAAAJcsfgAAAAHgAACAwAoxAAllAREACUjhAAAAAQnwAAAAAQGeY2pCvwAAAwAAAwAAAwAAAwAAAwAAAwAAAwAAEmDKfLGXsvBBQPNYXlEd6WueJ4deApfcHESlG+7V6u0AiWQqJvNZYM+3Js3Lj9Ldc9yYIHqruVwfMtCYGlX3wMavI/DrhMuJw+RreIF8SKsJD8CMccAAAAMAAAMACrFZOBgEqaP/8EyWsAHV6CgcAgfyox/roEcBADGuAP//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////AAADAAADAHTBR0EAEgAAAeAAAIDACjEACfGhEQAJZQEAAAABCfAAAAABQZpoSahBaJlMCHf//qmWAAADAAADAAADAAADAAADAAADAAADAAALf8A2bry6lUyIAQGNFfVK2Cd7h4qDqmqpvmXfkfTwo2Ab79AHhajxJ4MPWIgAAA84xLRIx7I2CrWjWe96OvgkzgS9mtvhuxdzAgpuIOJI3DEY9mviDDZz8XSAAAADAAADAB7AZkj9AAHHGvk+Pzlku8UkWa5HAQAzogD//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////6HjAkbF/gsWuvw4QAAAAwAAAwAccUdBADQHEAAApTx+AAAAAeAAAIDACjEACblhEQAJgSEAAAABCfAAAAABQZ6GRREsL/8AAAMAAAMAAAMAAAMAAAMAAAMAAAMAAA3URJB/3lMHSmOd0GYZnfpoR80WdqxlyHzPX+V81VUMeXIGrRgq5agd+ACdjoGI036yQ/rmpGw0CmMBrKwpI+nwFo3SP0s1rI2yHBZaiPJjSUgw33rBkxXcq55kfLf2sAAAAwAAAwACBWolidWDnIeQAAADRwEANbEA//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////8AAAMADulHQQA2NAD///////////////////////////////////////////////////////////////////8AAAHgAACAgAUhAAmdQQAAAAEJ8AAAAAEBnqV0Qr8AAAMAAAMAAAMAAAMAAAMAAAMAAAMAABJXNihCnx11JUosH2hBE53O/YN+GPHqcnJiQBIf3maTAAj5iRt+7GYUKBAU9iCXTiouCjGYgAAAAwAAAwA9p4HQBg2cAAADAAADAADGgUdBADc4EAAAs0x+AP////////////////////////////////////////////////////////////////8AAAHgAACAwAoxAAnVgREACblhAAAAAQnwAAAAAQGep2pCvwAAAwAAAwAAAwAAAwAAAwAAAwAAAwAAAwBR6/L83y+ZevtMZ0FW4lp8qV7fVXQAhLAWlS6mDxvpaSUgChorvgTMXtxJEIAAAAMAAAMACqFCAAADAAADAAADAAz4R0EAOCsA////////////////////////////////////////////////////////AAAB4AAAgMAKMQALYiERAAnVgQAAAAEJ8AAAAAFBmqxJqEFsmUwId//+qZYAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAApQTq0hABLvkcWCYrAaRRPNDrECJGlF/11BYvG9+JJ9Y86nxnmQzPxtAAe1UgOsXAAADAAADAAADAAADAAADAAADAAADA/JHQQA5JhAAAMFcfgD/////////////////////////////////////////AAAB4AAAgMAKMQALKeERAAnxoQAAAAEJ8AAAAAFBnspFFSwv/wAAAwAAAwAAAwAAAwAAAwAAAwAAAwAADdRFmvrVE0KXDOGwWddlwYa1foib7tXZKmkua6R4APb4b8+tXwdSNNqgf2IVNwGTohgQAcMvp6SiQxpiQym4AAADAAADAANUNUAAAAMAAAMAAAMBN0dBADo8AP//////////////////////////////////////////////////////////////////////////////AAAB4AAAgIAFIQALDcEAAAABCfAAAAABAZ7pdEK/AAADAAADAAADAAADAAADAAADAAADAAADAFHTAfujIUaaLSuklb9y0/so9AEtQAqkAxOviALQZ5jNt/iOkABrCOZ4md0iUnFwAAADAAADAALwckAAAAMAAAMAAATcR0EAO0IQAADPbH4A//////////////////////////////////////////////////////////////////////////////8AAAHgAACAwAoxAAtGAREACynhAAAAAQnwAAAAAQGe62pCvwAAAwAAAwAAAwAAAwAAAwAAAwAAAwAAAwBR6/L83y+WryR9gmVKPGbIhJpkgAFgHCej3gB6rAHPgHHAAAADAAADAAAYIV0AAAMAAAMAAAMABnxHQQA8UQD//////////////////////////////////////////////////////////////////////////////////////////////////////////wAAAeAAAIDACjEAC9KhEQALRgEAAAABCfAAAAABQZrwSahBbJlMCG///qeEAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAAZ8UdBAD00EAAA3Xx+AP///////////////////////////////////////////////////////////wAAAeAAAIDACjEAC5phEQALYiEAAAABCfAAAAABQZ8ORRUsL/8AAAMAAAMAAAMAAAMAAAMAAAMAAAMAAA3URZr61RNClwzhI2ZXdRHYLZWc1yTgKRhTIXBNABHQKIIyYNyc+AaEn1jhATEAAAMAAAMAAAMAckkIAAADAAADAAADAEbBR0EAPkYA////////////////////////////////////////////////////////////////////////////////////////////AAAB4AAAgIAFIQALfkEAAAABCfAAAAABAZ8tdEK/AAADAAADAAADAAADAAADAAADAAADAAADAFHTAfujIUAYRtY0f/43cIs2OjxACR2hMR1QBGYX+34JGAAAAwAAAwAAAwKEJ6AAAAMAAAMAAAMA3oFHQQA/QhAAAOuMfgD//////////////////////////////////////////////////////////////////////////////wAAAeAAAIDACjEAC7aBEQALmmEAAAABCfAAAAABAZ8vakK/AAADAAADAAADAAADAAADAAADAAADAAADAFHr8vzfL5avJH2CZUo8ZsiEmmSAAWAcJ6PeAHqsAc+AccAAAAMAAAMAABghXQAAAwAAAwAAAwAGfEdBADBRAP//////////////////////////////////////////////////////////////////////////////////////////////////////////AAAB4AAAgMAKMQANQyERAAu2gQAAAAEJ8AAAAAFBmzRJqEFsmUwIZ//+nhAAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAGVAR0EAMTQQAAD5nH4A////////////////////////////////////////////////////////////AAAB4AAAgMAKMQANCuERAAvSoQAAAAEJ8AAAAAFBn1JFFSwv/wAAAwAAAwAAAwAAAwAAAwAAAwAAAwAADdRFmvrVE0KXDOEjZld1EdgtlZzXJOApGFMhcE0AEdAogjJg3Jz4BoSfWOEBMQAAAwAAAwAAAwBySQgAAAMAAAMAAAMARsFHQQAyRgD///////////////////////////////////////////////////////////////////////////////////////////8AAAHgAACAgAUhAAvuwQAAAAEJ8AAAAAEBn3F0Qr8AAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAUdMB+6MhQBhG1jR//jdwizY6PEAJHaExHVAEZhf7fgkYAAADAAADAAADAoQnoAAAAwAAAwAAAwDegEdBADNCEAABB6x+AP//////////////////////////////////////////////////////////////////////////////AAAB4AAAgMAKMQANJwERAA0K4QAAAAEJ8AAAAAEBn3NqQr8AAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAUevy/N8vlq8kfYJlSjxmyISaZIABYBwno94AeqwBz4BxwAAAAwAAAwAAGCFdAAADAAADAAADAAZ8R0EANFIA////////////////////////////////////////////////////////////////////////////////////////////////////////////AAAB4AAAgMAKMQANs6ERAA0nAQAAAAEJ8AAAAAFBm3hJqEFsmUwIV//+OEAAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAYtHQQA1NBAAARW8fgD///////////////////////////////////////////////////////////8AAAHgAACAwAoxAA17YREADUMhAAAAAQnwAAAAAUGflkUVLC//AAADAAADAAADAAADAAADAAADAAADAAAN1EWa+tUTQpcM4SNmV3UR2C2VnNck4CkYUyFwTQAR0CiCMmDcnPgGhJ9Y4QExAAADAAADAAADAHJJCAAAAwAAAwAAAwBGwEdBADZGAP///////////////////////////////////////////////////////////////////////////////////////////wAAAeAAAICABSEADV9BAAAAAQnwAAAAAQGftXRCvwAAAwAAAwAAAwAAAwAAAwAAAwAAAwAAAwBR0wH7oyFAGEbWNH/+N3CLNjo8QAkdoTEdUARmF/t+CRgAAAMAAAMAAAMChCegAAADAAADAAADAN6BR0EAN0IQAAEjzH4A//////////////////////////////////////////////////////////////////////////////8AAAHgAACAwAoxAA2XgREADXthAAAAAQnwAAAAAQGft2pCvwAAAwAAAwAAAwAAAwAAAwAAAwAAAwAAAwBR6/L83y+WryR9gmVKPGbIhJpkgAFgHCej3gB6rAHPgHHAAAADAAADAAAYIV0AAAMAAAMAAAMABn0=" } diff --git a/ts/menu_ts.ts b/ts/menu_ts.ts index 3ad4d92..bb28b3a 100644 --- a/ts/menu_ts.ts +++ b/ts/menu_ts.ts @@ -894,10 +894,18 @@ function createLayout() { let keys = getOwnObjProps(obj); for (var i = 0; i < keys.length; i++) { + document.getElementById(keys[i]).innerHTML = obj[keys[i]]; + if (document.getElementById(keys[i])) { - document.getElementById(keys[i]).innerHTML = obj[keys[i]]; + if (location.protocol === 'https:') { + if (keys[i] === "xepg-url" || keys[i] === "m3u-url" || keys[i] === "DVR") { + document.getElementById(keys[i]).addEventListener('click', function (event) { + const target = event.target as HTMLElement; + navigator.clipboard.writeText(target.innerText.split(" ")[0]).then(() => {}); + },false); + } + } } - } if (!document.getElementById("main-menu")) { From 09a326050f4fdd6074633d2a269025c23e0daf83 Mon Sep 17 00:00:00 2001 From: Senex Crenshaw Date: Tue, 23 Aug 2022 18:57:20 +0000 Subject: [PATCH 127/189] format fix --- src/xepg.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/xepg.go b/src/xepg.go index ae91670..16c1185 100644 --- a/src/xepg.go +++ b/src/xepg.go @@ -1077,7 +1077,7 @@ func cleanupXEPG() { sourceIDs = append(sourceIDs, source) } - showInfo("XEPG: Cleanup database") + showInfo("XEPG:" + "Cleanup database") Data.XEPG.XEPGCount = 0 for id, dxc := range Data.XEPG.Channels { From 24253f8b4eab4ea0019dc1741a595221131806a0 Mon Sep 17 00:00:00 2001 From: Senex Crenshaw Date: Tue, 23 Aug 2022 18:59:43 +0000 Subject: [PATCH 128/189] Format fixes --- src/data.go | 2 +- src/xepg.go | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/data.go b/src/data.go index 14b2016..77db7ed 100644 --- a/src/data.go +++ b/src/data.go @@ -555,7 +555,7 @@ func saveXEpgMapping(request RequestStruct) (err error) { cleanupXEPG() System.ScanInProgress = 0 buildXEPG(false) - showInfo("XEPG: Ready to use") + showInfo("XEPG:" + "Ready to use") System.BackgroundProcess = false diff --git a/src/xepg.go b/src/xepg.go index 16c1185..0f42dd8 100644 --- a/src/xepg.go +++ b/src/xepg.go @@ -72,7 +72,7 @@ func buildXEPG(background bool) { createXMLTVFile() createM3UFile() - showInfo("XEPG: Ready to use") + showInfo("XEPG:" + "Ready to use") if Settings.CacheImages && System.ImageCachingInProgress == 0 { @@ -134,7 +134,7 @@ func buildXEPG(background bool) { } - showInfo("XEPG: Ready to use") + showInfo("XEPG:" + "Ready to use") System.ScanInProgress = 0 From 18ca6560e97e4ad69657fa6c27e01992a0ee026c Mon Sep 17 00:00:00 2001 From: Senex Crenshaw Date: Tue, 23 Aug 2022 19:01:59 +0000 Subject: [PATCH 129/189] Added docker comments --- Dockerfile | 1 + 1 file changed, 1 insertion(+) diff --git a/Dockerfile b/Dockerfile index ffe1b4f..39dda24 100644 --- a/Dockerfile +++ b/Dockerfile @@ -8,6 +8,7 @@ FROM golang:bullseye AS builder # Download the source code +# Uncomment the below line to force git pull (no cache) #ADD "https://www.random.org/cgi-bin/randbyte?nbytes=10&format=h" skipcache RUN git clone https://github.com/SenexCrenshaw/xTeVe.git /src WORKDIR /src From fc90186bc2b74cfdf59b1669ab5bc612c2a12023 Mon Sep 17 00:00:00 2001 From: Senex Crenshaw Date: Tue, 23 Aug 2022 20:06:36 +0000 Subject: [PATCH 130/189] Added Host Name Override in settings --- html/js/base_ts.js | 2 +- html/js/settings_ts.js | 14 ++ html/lang/en.json | 311 ++++++++++++++-------------------------- src/config.go | 4 + src/struct-system.go | 3 +- src/struct-webserver.go | 1 + src/system.go | 1 + src/webUI.go | 18 +-- ts/base_ts.ts | 2 +- ts/settings_ts.ts | 21 ++- xteve.go | 2 +- 11 files changed, 158 insertions(+), 221 deletions(-) diff --git a/html/js/base_ts.js b/html/js/base_ts.js index 5446614..8d85c83 100644 --- a/html/js/base_ts.js +++ b/html/js/base_ts.js @@ -17,7 +17,7 @@ menuItems.push(new MainMenuItem("log", "{{.mainMenu.item.log}}", "log.png", "{{. menuItems.push(new MainMenuItem("logout", "{{.mainMenu.item.logout}}", "logout.png", "{{.mainMenu.headline.logout}}")); // Settings categories var settingsCategory = new Array(); -settingsCategory.push(new SettingsCategoryItem("{{.settings.category.general}}", "tlsMode,xteveAutoUpdate,hostIP,tuner,epgSource,disallowURLDuplicates,clearXMLTVCache,api")); +settingsCategory.push(new SettingsCategoryItem("{{.settings.category.general}}", "tlsMode,xteveAutoUpdate,hostIP,hostName,tuner,epgSource,disallowURLDuplicates,clearXMLTVCache,api")); settingsCategory.push(new SettingsCategoryItem("{{.settings.category.mapping}}", "defaultMissingEPG,enableMappedChannels")); settingsCategory.push(new SettingsCategoryItem("{{.settings.category.files}}", "update,files.update,temp.path,cache.images,xepg.replace.missing.images")); settingsCategory.push(new SettingsCategoryItem("{{.settings.category.streaming}}", "buffer,udpxy,buffer.size.kb,storeBufferInRAM,buffer.timeout,user.agent,ffmpeg.path,ffmpeg.options,vlc.path,vlc.options")); diff --git a/html/js/settings_ts.js b/html/js/settings_ts.js index b2e55b9..62f8f93 100644 --- a/html/js/settings_ts.js +++ b/html/js/settings_ts.js @@ -295,6 +295,17 @@ class SettingsCategory { setting.appendChild(tdLeft); setting.appendChild(tdRight); break; + case "hostName": + var tdLeft = document.createElement("TD"); + tdLeft.innerHTML = "{{.settings.hostName.title}}" + ":"; + var tdRight = document.createElement("TD"); + var input = content.createInput("text", "hostName", data); + input.setAttribute("placeholder", "{{.settings.hostName.placeholder}}"); + input.setAttribute("onchange", "javascript: this.className = 'changed'"); + tdRight.appendChild(input); + setting.appendChild(tdLeft); + setting.appendChild(tdRight); + break; case "tuner": var tdLeft = document.createElement("TD"); tdLeft.innerHTML = "{{.settings.tuner.title}}" + ":"; @@ -462,6 +473,9 @@ class SettingsCategory { case "hostIP": text = "{{.settings.hostIP.description}}"; break; + case "hostName": + text = "{{.settings.hostName.description}}"; + break; case "tuner": text = "{{.settings.tuner.description}}"; break; diff --git a/html/lang/en.json b/html/lang/en.json index 3f903d1..61aa45f 100644 --- a/html/lang/en.json +++ b/html/lang/en.json @@ -1,8 +1,6 @@ { - "mainMenu": - { - "item": - { + "mainMenu": { + "item": { "playlist": "Playlist", "pmsID": "PMS ID", "filter": "Filter", @@ -13,8 +11,7 @@ "log": "Log", "logout": "Logout" }, - "headline": - { + "headline": { "playlist": "Local or remote playlists", "filter": "Filter playlist", "xmltv": "Local or remote XMLTV files", @@ -25,18 +22,15 @@ "logout": "Logout" } }, - "confirm": - { + "confirm": { "restore": "All data will be replaced with those from the backup. Should the files be restored?" }, - "alert": - { + "alert": { "fileLoadingError": "File couldn't be loaded", "invalidChannelNumber": "Invalid channel number", "missingInput": "Missing input" }, - "button": - { + "button": { "back": "Back", "backup": "Backup", "bulkEdit": "Bulk Edit", @@ -54,10 +48,8 @@ "resetLogs": "Reset Logs", "uploadLogo": "Upload Logo" }, - "filter": - { - "table": - { + "filter": { + "table": { "startingChannel": "Starting Ch. No.", "name": "Filter Name", "type": "Filter Type", @@ -65,71 +57,59 @@ }, "custom": "Custom", "group": "M3U Group", - "name": - { + "name": { "title": "Filter Name", "placeholder": "Filter name", "description": "" }, - "description": - { + "description": { "title": "Description", "placeholder": "Description", "description": "" }, - "type": - { + "type": { "title": "Type", "groupTitle": "Group Title", "customFilter": "Custom Filter" }, - "caseSensitive": - { + "caseSensitive": { "title": "Case Sensitive", "placeholder": "", "description": "" }, - "filterRule": - { + "filterRule": { "title": "Filter Rule", "placeholder": "Sport {HD} !{ES,IT}", "description": "" }, - "filterGroup": - { + "filterGroup": { "title": "Group Title", "placeholder": "", "description": "Select a M3U group. (Counter)
              Changing the group title in the M3U invalidates the filter." }, - "include": - { + "include": { "title": "Include", "placeholder": "FHD,UHD", "description": "Channel name must include.
              (Comma separated) Comma means or" }, - "exclude": - { + "exclude": { "title": "Exclude", "placeholder": "ES,IT", "description": "Channel name must not contain.
              (Comma separated) Comma means or" }, - "preserveMapping": - { + "preserveMapping": { "title": "Preserve Existing M3U
              Channel Numbers", "palceholder": "", "description": "Preserve existing M3U playlist channel numbers?" }, - "startingChannel": - { + "startingChannel": { "title": "Starting Channel Number", "placeholder": "", "description": "" } }, - "playlist": - { - "table": - { + "playlist": { + "table": { "playlist": "Playlist", "tuner": "Tuner", "lastUpdate": "Last Update", @@ -140,82 +120,68 @@ "tvgID": "tvg-id", "uniqueID": "Unique ID" }, - "playlistType": - { + "playlistType": { "title": "Playlist type", "placeholder": "", "description": "" }, - "type": - { + "type": { "title": "Type", "placeholder": "", "description": "" }, - "name": - { + "name": { "title": "Name", "placeholder": "Playlist name", "description": "" }, - "description": - { + "description": { "title": "Description", "placeholder": "Description", "description": "" }, - "fileM3U": - { + "fileM3U": { "title": "M3U File", "placeholder": "File path or URL of the M3U", "description": "" }, - "fileHDHR": - { + "fileHDHR": { "title": "HDHomeRun IP", "placeholder": "IP address and port (192.168.1.10:5004)", "description": "" }, - "tuner": - { + "tuner": { "title": "Tuner / Streams", "placeholder": "", "description": "Number of parallel connections that can be established to the provider.
              Only available with activated buffer.
              New settings will only be applied after quitting all streams." } }, - "xmltv": - { - "table": - { + "xmltv": { + "table": { "guide": "Guide", "lastUpdate": "Last Update", "availability": "Availability", "channels": "Channels", "programs": "Programs" }, - "name": - { + "name": { "title": "Name", "placeholder": "Guide name", "description": "" }, - "description": - { + "description": { "title": "Description", "placeholder": "Description", "description": "" }, - "fileXMLTV": - { + "fileXMLTV": { "title": "XMLTV File", "placeholder": "File path or URL of the XMLTV", "description": "" } }, - "mapping": - { - "table": - { + "mapping": { + "table": { "chNo": "Ch. No.", "logo": "Logo", "channelName": "Channel Name", @@ -226,95 +192,79 @@ "xmltvID": "XMLTV ID", "timeshift": "Timeshift" }, - "active": - { + "active": { "title": "Active", "placeholder": "", "description": "" }, - "channelName": - { + "channelName": { "title": "Channel Name", "placeholder": "", "description": "" }, - "description": - { + "description": { "title": "Channel Description", "placeholder": "Used by the Dummy as an XML description", "description": "" }, - "updateChannelName": - { + "updateChannelName": { "title": "Update Channel Name", "placeholder": "", "description": "" }, - "updateChannelNameRegex": - { + "updateChannelNameRegex": { "title": "Channel name update regex", "placeholder": "For example ^PPV[ \\\\-_]?1.*", "description": "On update, if any new channel name matches this regex, rename current channel to the first matching name" }, - "updateChannelNameByGroupRegex": - { + "updateChannelNameByGroupRegex": { "title": "Only by group regex", "placeholder": "", "description": "Rename this channel only if current user-defined group matches this regex" }, - "updateChannelGroup": - { + "updateChannelGroup": { "title": "Update Channel Group", "placeholder": "", "description": "If checked, use group from the database" }, - "channelLogo": - { + "channelLogo": { "title": "Logo URL", "placeholder": "", "description": "" }, - "updateChannelLogo": - { + "updateChannelLogo": { "title": "Update Channel Logo", "placeholder": "", "description": "" }, - "epgCategory": - { + "epgCategory": { "title": "EPG Category", "placeholder": "", "description": "" }, - "m3uGroupTitle": - { + "m3uGroupTitle": { "title": "Group Title (xteve.m3u)", "placeholder": "", "description": "" }, - "xmltvFile": - { + "xmltvFile": { "title": "XMLTV File", "placeholder": "", "description": "" }, - "xmltvChannel": - { + "xmltvChannel": { "title": "XMLTV Channel", "placeholder": "", "description": "" }, - "timeshift": - { + "timeshift": { "title": "Timeshift", "placeholder": "0", "description": "" } }, - "users": - { - "table": - { + "users": { + "table": { "username": "Username", "password": "Password", "web": "WEB", @@ -323,59 +273,49 @@ "xml": "XML", "api": "API" }, - "username": - { + "username": { "title": "Username", "placeholder": "Username", "description": "" }, - "password": - { + "password": { "title": "Password", "placeholder": "Password", "description": "" }, - "confirm": - { + "confirm": { "title": "Confirm", "placeholder": "Password confirm", "description": "" }, - "web": - { + "web": { "title": "Web Access", "placeholder": "", "description": "" }, - "pms": - { + "pms": { "title": "PMS Access", "placeholder": "", "description": "" }, - "m3u": - { + "m3u": { "title": "M3U Access", "placeholder": "", "description": "" }, - "xml": - { + "xml": { "title": "XML Access", "placeholder": "", "description": "" }, - "api": - { + "api": { "title": "API Access", "placeholder": "", "description": "" } }, - "settings": - { - "category": - { + "settings": { + "category": { "general": "General", "mapping": "Mapping", "files": "Files", @@ -383,24 +323,20 @@ "backup": "Backup", "authentication": "Authentication" }, - "update": - { + "update": { "title": "Schedule for updating (Playlist, XMLTV, Backup)", "placeholder": "0000,1000,2000", "description": "Time in 24 hour format (0800 = 8:00 am). More times can be entered comma separated. Leave this field empty if no updates are to be carried out." }, - "api": - { + "api": { "title": "API Interface", "description": "Via API interface it is possible to send commands to xTeVe. API documentation is
              here" }, - "clearXMLTVCache": - { + "clearXMLTVCache": { "title": "Clear XMLTV cache", "description": "If checked, do not keep XMLTV cache in memory.
              Significally reduces RAM usage in idle mode,
              but significally slowing down every subsequent update in XEPG database." }, - "defaultMissingEPG": - { + "defaultMissingEPG": { "title": "Fill Missing EPG Data", "description": "When there is no matching EPG data for channel,
              autofill with xTeVe dummy EPG data?" }, @@ -408,211 +344,176 @@ "title": "Enable mapped channels", "description": "Automatically enable channels with assigned EPG data" }, - "disallowURLDuplicates": - { + "disallowURLDuplicates": { "title": "Disallow URL duplicates", "description": "If checked, do not add a new channel from playlist if channel with such URL already exists" }, - "epgSource": - { + "epgSource": { "title": "EPG Source", "description": "PMS:
              - Use EPG data from Plex or Emby

              XEPG:
              - Use of one or more XMLTV files
              - Channel management
              - M3U / XMLTV export (HTTP link for IPTV apps)" }, - "tuner": - { + "tuner": { "title": "Number of Tuners", "description": "Number of parallel connections that can be established to the provider.
              Available for: Plex, Emby (HDHR), M3U (with active buffer).
              After a change, xTeVe must be delete in the Plex / Emby DVR settings and set up again." }, - "hostIP": - { + "hostIP": { "title": "Host IP", "description": "IP address xTeVe will use to form M3U and XMLTV files" }, + "hostName": { + "title": "Host Name Override", + "description": "Hostname xTeVe will use to form M3U and XMLTV files. This will override Host IP if set" + }, "tlsMode": { "title": "TLS (HTTPS) mode", "description": "Changes web server protocol to HTTPS.
              For details, see https://github.com/SCP002/xTeVe#tls-mode" }, - "filesUpdate": - { + "filesUpdate": { "title": "Updates all files at startup", "description": "Updates all playlists, tuner and XMLTV files at startup." }, - "cacheImages": - { + "cacheImages": { "title": "Image Caching", "description": "All images from the XMLTV file are cached, allowing faster rendering of the grid in the client.
              Downloading the images may take a while and will be done in the background." }, - "replaceEmptyImages": - { + "replaceEmptyImages": { "title": "Replace missing program images", "description": "If the poster in the XMLTV program is missing, the channel logo will be used." }, - "xteveAutoUpdate": - { + "xteveAutoUpdate": { "title": "Automatic update of xTeVe", "description": "If a new version of xTeVe is available, it will be automatically installed. The updates are downloaded from GitHub." }, - "streamBuffering": - { + "streamBuffering": { "title": "Stream Buffer", "description": "Functions of the buffer:
              - The stream is passed from xTeVe, FFmpeg or VLC to Plex, Emby or M3U Player
              - Small jerking of the streams can be compensated
              - HLS / M3U8 support
              - RTP / RTPS support (only FFmpeg or VLC)
              - Re-streaming
              - Separate tuner limit for each playlist", "info_false": "No Buffer (Client connects to the streaming server)", "info_xteve": "xTeVe connects to the streaming server", "info_ffmpeg": "FFmpeg connects to the streaming server", "info_vlc": "VLC connects to the streaming server" - }, - "udpxy": - { + "udpxy": { "title": "UDPxy address", "description": "The address of your UDPxy server. If set, and the channel URLs in the m3u is multicast, xTeVe will rewrite it so that it is accessed via the UDPxy service.", "placeholder": "host:port" }, - "ffmpegPath": - { + "ffmpegPath": { "title": "FFmpeg Binary Path", "description": "Path to FFmpeg binary.", "placeholder": "/path/to/ffmpeg" }, - "ffmpegOptions": - { + "ffmpegOptions": { "title": "FFmpeg Options", "description": "FFmpeg options.
              Only change if you know what you are doing.
              Leave blank to set default settings.", "placeholder": "Leave blank to set default settings" }, - "vlcPath": - { + "vlcPath": { "title": "VLC / CVLC Binary Path", "description": "Path to VLC / CVLC binary.", "placeholder": "/path/to/cvlc" }, - "vlcOptions": - { + "vlcOptions": { "title": "VLC / CVLC Options", "description": "VLC / CVLC options.
              Only change if you know what you are doing.
              Leave blank to set default settings.", "placeholder": "Leave blank to set default settings" }, - "bufferSize": - { + "bufferSize": { "title": "Buffer Size", "description": "Buffer size in MB.
              M3U8: If the TS segment smaller then the buffer size, the file size of the segment is used." }, - "storeBufferInRAM": - { + "storeBufferInRAM": { "title": "Store buffer in RAM", "description": "If checked, write buffer to RAM instead of writing to disk" }, - "bufferTimeout": - { + "bufferTimeout": { "title": "Timeout for new client connections", "description": "The xTeVe buffer waits until new client connections are established. Helpful for fast channel switching. Value in milliseconds.", "placeholder": "100" }, - "userAgent": - { + "userAgent": { "title": "User Agent", "description": "User Agent for HTTP requests. For every HTTP connection, this value is used for the user agent. Should only be changed if xTeVe is blocked.", "placeholder": "xTeVe" }, - "backupPath": - { + "backupPath": { "title": "Location for automatic backups", "placeholder": "/mnt/data/backup/xteve/", "description": "Before any update of the provider data by the schedule, xTeVe creates a backup. The path for the automatic backups can be changed. xTeVe requires write permission for this folder." }, - "tempPath": - { + "tempPath": { "title": "Location for the temporary files", "placeholder": "/tmp/xteve/", "description": "Location for the buffer files." }, - "backupKeep": - { + "backupKeep": { "title": "Number of backups to keep", "description": "Number of backups to keep. Older backups are automatically deleted." }, - "authenticationWEB": - { + "authenticationWEB": { "title": "WEB Authentication", "description": "Access to the web interface only possible with credentials." }, - "authenticationPMS": - { + "authenticationPMS": { "title": "PMS Authentication", "description": "Plex requests are only possible with authentication.
              Warning!!! After activating this function xTeVe must be delete in the PMS DVR settings and set up again." }, - "authenticationM3U": - { + "authenticationM3U": { "title": "M3U Authentication", "description": "Downloading the xteve.m3u file via an HTTP request is only possible with authentication." }, - "authenticationXML": - { + "authenticationXML": { "title": "XML Authentication", "description": "Downloading the xteve.xml file via an HTTP request is only possible with authentication" }, - "authenticationAPI": - { + "authenticationAPI": { "title": "API Authentication", "description": "Access to the API interface is only possible with authentication." } }, - "wizard": - { - "epgSource": - { + "wizard": { + "epgSource": { "title": "EPG Source", "description": "PMS:
              - Use EPG data from Plex or Emby

              XEPG:
              - Use of one or more XMLTV files
              - Channel management
              - M3U / XMLTV export (HTTP link for IPTV apps)" }, - "tuner": - { + "tuner": { "title": "Number of tuners", "description": "Number of parallel connections that can be established to the provider.
              Available for: Plex, Emby (HDHR), M3U (with active buffer).
              After a change, xTeVe must be delete in the Plex / Emby DVR settings and set up again." }, - "m3u": - { + "m3u": { "title": "M3U Playlist", "placeholder": "File path or URL of the M3U", "description": "Local or remote playlists" }, - "xmltv": - { + "xmltv": { "title": "XMLTV File", "placeholder": "File path or URL of the XMLTV", "description": "Local or remote XMLTV file" } }, - "login": - { + "login": { "failed": "User authentication failed", "headline": "Login", - "username": - { + "username": { "title": "Username", "placeholder": "Username" }, - "password": - { + "password": { "title": "Password", "placeholder": "Password" } }, - "account": - { + "account": { "failed": "Password does not match", "headline": "Create user account", - "username": - { + "username": { "title": "Username", "placeholder": "Username" }, - "password": - { + "password": { "title": "Password", "placeholder": "Password" }, - "confirm": - { + "confirm": { "title": "Confirm", "placeholder": "Confirm" } diff --git a/src/config.go b/src/config.go index 8b4251f..a932275 100644 --- a/src/config.go +++ b/src/config.go @@ -194,6 +194,10 @@ func Init() (err error) { showInfo(fmt.Sprintf("GitHub:https://github.com/%s", System.GitHub.User)) showInfo(fmt.Sprintf("Git Branch:%s [%s]", System.Branch, System.GitHub.User)) + if len(strings.TrimSpace(Settings.HostName)) > 0 { + Settings.HostIP = strings.TrimSpace(Settings.HostName) + } + // Set Domain Names setGlobalDomain(fmt.Sprintf("%s:%s", Settings.HostIP, Settings.Port)) diff --git a/src/struct-system.go b/src/struct-system.go index f55c98f..630dd4c 100644 --- a/src/struct-system.go +++ b/src/struct-system.go @@ -304,7 +304,8 @@ type SettingsStruct struct { FilesUpdate bool `json:"files.update"` Filter map[int64]interface{} `json:"filter"` - HostIP string `json:"hostIP"` // IP chosen in web client. Used to form m3u and xml files. + HostIP string `json:"hostIP"` // IP chosen in web client. Used to form m3u and xml files. + HostName string `json:"hostName"` // Hostname chosen in web client. Used to form m3u and xml files. Key string `json:"key,omitempty"` Language string `json:"language"` LogEntriesRAM int `json:"log.entries.ram"` diff --git a/src/struct-webserver.go b/src/struct-webserver.go index 8484fab..e3927f3 100644 --- a/src/struct-webserver.go +++ b/src/struct-webserver.go @@ -40,6 +40,7 @@ type RequestStruct struct { VLCPath *string `json:"vlc.path,omitempty"` FilesUpdate *bool `json:"files.update,omitempty"` HostIP *string `json:"hostIP,omitempty"` // IP chosen in web client. Used to form m3u and xml files. + HostName *string `json:"hostName"` // Hostname chosen in web client. Used to form m3u and xml files. TempPath *string `json:"temp.path,omitempty"` TLSMode *bool `json:"tlsMode,omitempty"` Tuner *int `json:"tuner,omitempty"` diff --git a/src/system.go b/src/system.go index 6144237..f8b6c37 100644 --- a/src/system.go +++ b/src/system.go @@ -126,6 +126,7 @@ func loadSettings() (settings SettingsStruct, err error) { defaults["filter"] = make(map[string]interface{}) defaults["git.branch"] = System.Branch defaults["hostIP"] = "" // Will be set in resolveHostIP() + defaults["hostName"] = "" defaults["language"] = "en" defaults["log.entries.ram"] = 500 defaults["m3u8.adaptive.bandwidth.mbps"] = 10 diff --git a/src/webUI.go b/src/webUI.go index 650ebd2..29cebb8 100644 --- a/src/webUI.go +++ b/src/webUI.go @@ -4,10 +4,10 @@ var webUI = make(map[string]interface{}) func loadHTMLMap() { - webUI["html/configuration.html"] = "PCFkb2N0eXBlIGh0bWw+CjxodG1sPgogIDxoZWFkPgogICAgPG1ldGEgY2hhcnNldD0idXRmLTgiPgogICAgPG1ldGEgbmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9IndpZHRoPWRldmljZS13aWR0aCwgaW5pdGlhbC1zY2FsZT0xLjAiIC8+IAogICAgPHRpdGxlPnhUZVZlPC90aXRsZT4KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iY3NzL3NjcmVlbi5jc3MiIHR5cGU9InRleHQvY3NzIj4KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iY3NzL2Jhc2UuY3NzIiB0eXBlPSJ0ZXh0L2NzcyI+CiAgICA8c2NyaXB0IGxhbmd1YWdlPSJqYXZhc2NyaXB0IiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ianMvY29uZmlndXJhdGlvbl90cy5qcyI+PC9zY3JpcHQ+CiAgICA8c2NyaXB0IGxhbmd1YWdlPSJqYXZhc2NyaXB0IiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ianMvbmV0d29ya190cy5qcyI+PC9zY3JpcHQ+CiAgICA8c2NyaXB0IGxhbmd1YWdlPSJqYXZhc2NyaXB0IiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ianMvbWVudV90cy5qcyI+PC9zY3JpcHQ+CiAgICA8c2NyaXB0IGxhbmd1YWdlPSJqYXZhc2NyaXB0IiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ianMvc2V0dGluZ3NfdHMuanMiPjwvc2NyaXB0PgogICAgPHNjcmlwdCBsYW5ndWFnZT0iamF2YXNjcmlwdCIgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9ImpzL2Jhc2VfdHMuanMiPjwvc2NyaXB0PgogIDwvaGVhZD4KCiAgICA8Ym9keSBvbmxvYWQ9ImphdmFzY3JpcHQ6IHJlYWR5Rm9yQ29uZmlndXJhdGlvbigwKTsiPgogICAgICAgICAgCiAgICAgIDxkaXYgaWQ9ImxvYWRpbmciIGNsYXNzPSJibG9jayI+CiAgICAgICAgPGRpdiBjbGFzcz0ibG9hZGVyIj48L2Rpdj4KICAgICAgPC9kaXY+CgogICAgICA8ZGl2IGlkPSJoZWFkZXIiIGNsYXNzPSJpbWdDZW50ZXIiPjwvZGl2PgogICAgICA8ZGl2IGlkPSJib3giPgogICAgICAgIAogICAgICAgIDx0YWJsZSBpZD0iY2xpZW50SW5mbyIgY2xhc3M9InZpc2libGUiPgogICAgICAgICAgPHRyPgogICAgICAgICAgICA8dGQgY2xhc3M9InRkS2V5Ij5WZXJzaW9uOjwvdGQ+CiAgICAgICAgICAgIDx0ZCBpZD0idmVyc2lvbiIgY2xhc3M9InRkVmFsIj4mbmJzcDs8L3RkPgogICAgICAgICAgICA8dGQgY2xhc3M9InRkS2V5Ij5PUzo8L3RkPgogICAgICAgICAgICA8dGQgaWQ9Im9zIiBjbGFzcz0idGRWYWwiPiZuYnNwOzwvdGQ+CiAgICAgICAgICA8L3RyPgogICAgICAgICAgPHRyPgogICAgICAgICAgICA8dGQgY2xhc3M9InRkS2V5Ij5VVUlEOjwvdGQ+CiAgICAgICAgICAgIDx0ZCBpZD0idXVpZCIgY2xhc3M9InRkVmFsIj4mbmJzcDs8L3RkPgogICAgICAgICAgICA8dGQgY2xhc3M9InRkS2V5Ij5BcmNoOjwvdGQ+CiAgICAgICAgICAgIDx0ZCBpZD0iYXJjaCIgY2xhc3M9InRkVmFsIj4mbmJzcDs8L3RkPgogICAgICAgICAgPC90cj4KICAgICAgICAgIDx0cj4KICAgICAgICAgICAgPHRkIGNsYXNzPSJ0ZEtleSI+U3RyZWFtczo8L3RkPgogICAgICAgICAgICA8dGQgaWQ9InN0cmVhbXMiIGNsYXNzPSJ0ZFZhbCI+Jm5ic3A7PC90ZD4KICAgICAgICAgICAgPHRkIGNsYXNzPSJ0ZEtleSI+RFZSOjwvdGQ+CiAgICAgICAgICAgIDx0ZCBpZD0iRFZSIiBjbGFzcz0idGRWYWwiPiZuYnNwOzwvdGQ+CiAgICAgICAgICA8L3RyPgogICAgICAgIDwvdGFibGU+CiAgICAgICAgCiAgICAgICAgPGRpdiBpZD0iaGVhZGxpbmUiPgogICAgICAgICAgPGgxIGlkPSJoZWFkLXRleHQiIGNsYXNzPSJjZW50ZXIiPkNvbmZpZ3VyYXRpb248L2gxPiAgICAgIAogICAgICAgIDwvZGl2PgogICAgICAgIDxwIGlkPSJlcnIiIGNsYXNzPSJlcnJvck1zZyBjZW50ZXIiPjwvcD4gICAKICAgICAgICA8ZGl2IGlkPSJjb250ZW50Ij4KICAgICAgICAgICAgCiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBpZD0iYm94LWZvb3RlciI+CiAgICAgICAgICA8aW5wdXQgaWQ9Im5leHQiIGNsYXNzPSIiIHR5cGU9ImJ1dHRvbiIgbmFtZT0ibmV4dCIgdmFsdWU9Ik5leHQiIG9uY2xpY2s9ImphdmFzY3JpcHQ6IHNhdmVXaXphcmQoKTsiPgogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KICAgIDwvYm9keT4KPC9odG1sPg==" - webUI["html/create-first-user.html"] = "PCFkb2N0eXBlIGh0bWw+CjxodG1sPgogIDxoZWFkPgogICAgPG1ldGEgY2hhcnNldD0idXRmLTgiPgogICAgPG1ldGEgbmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9IndpZHRoPWRldmljZS13aWR0aCwgaW5pdGlhbC1zY2FsZT0xLjAiIC8+IAogICAgPHRpdGxlPnhUZVZlPC90aXRsZT4KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iY3NzL3NjcmVlbi5jc3MiIHR5cGU9InRleHQvY3NzIj4KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iY3NzL2Jhc2UuY3NzIiB0eXBlPSJ0ZXh0L2NzcyI+CiAgICA8c2NyaXB0IGxhbmd1YWdlPSJqYXZhc2NyaXB0IiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ianMvbmV0d29ya190cy5qcyI+PC9zY3JpcHQ+CiAgICA8c2NyaXB0IGxhbmd1YWdlPSJqYXZhc2NyaXB0IiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ianMvYXV0aGVudGljYXRpb25fdHMuanMiPjwvc2NyaXB0PgogIDwvaGVhZD4KCiAgICA8Ym9keT4KICAgICAgICAgIAogICAgICA8ZGl2IGlkPSJoZWFkZXIiIGNsYXNzPSJpbWdDZW50ZXIiPjwvZGl2PgoKICAgICAgPGRpdiBpZD0iYm94Ij4KCiAgICAgICAgPGRpdiBpZD0iaGVhZGxpbmUiPgogICAgICAgICAgPGgxIGlkPSJoZWFkLXRleHQiIGNsYXNzPSJjZW50ZXIiPnt7LmFjY291bnQuaGVhZGxpbmV9fTwvaDE+CiAgICAgICAgPC9kaXY+CgogICAgICAgIDxwIGlkPSJlcnIiIGNsYXNzPSJlcnJvck1zZyBjZW50ZXIiPjwvcD4KCiAgICAgICAgPGRpdiBpZD0iY29udGVudCI+CgogICAgICAgICAgICA8Zm9ybSBpZD0iYXV0aGVudGljYXRpb24iIGFjdGlvbj0iIiBtZXRob2Q9InBvc3QiPgoKICAgICAgICAgICAgICA8aDU+e3suYWNjb3VudC51c2VybmFtZS50aXRsZX19OjwvaDU+CiAgICAgICAgICAgICAgPGlucHV0IGlkPSJ1c2VybmFtZSIgdHlwZT0idGV4dCIgbmFtZT0idXNlcm5hbWUiIHBsYWNlaG9sZGVyPSJVc2VybmFtZSIgdmFsdWU9IiI+CiAgICAgICAgICAgICAgPGg1Pnt7LmFjY291bnQucGFzc3dvcmQudGl0bGV9fTo8L2g1PgogICAgICAgICAgICAgIDxpbnB1dCBpZD0icGFzc3dvcmQiIHR5cGU9InBhc3N3b3JkIiBuYW1lPSJwYXNzd29yZCIgcGxhY2Vob2xkZXI9IlBhc3N3b3JkIiB2YWx1ZT0iIj4KICAgICAgICAgICAgICA8aDU+e3suYWNjb3VudC5jb25maXJtLnRpdGxlfX06PC9oNT4KICAgICAgICAgICAgICA8aW5wdXQgaWQ9ImNvbmZpcm0iICB0eXBlPSJwYXNzd29yZCIgbmFtZT0iY29uZmlybSIgIHBsYWNlaG9sZGVyPSJDb25maXJtIiB2YWx1ZT0iIj4KICAgICAgICAgICAgICAKICAgICAgICAgICAgPC9mb3JtPgoKICAgICAgICA8L2Rpdj4KICAgICAgICAKICAgICAgICA8ZGl2IGlkPSJib3gtZm9vdGVyIj4KICAgICAgICAgIDxpbnB1dCBpZD0ic3VibWl0IiBjbGFzcz0iIiB0eXBlPSJidXR0b24iIHZhbHVlPSJ7ey5idXR0b24uY3JhZXRlQWNjb3VudH19IiBvbmNsaWNrPSJqYXZhc2NyaXB0OiBsb2dpbigpOyI+CiAgICAgICAgPC9kaXY+CiAgICAgIAogICAgICAgIAogICAgICA8L2Rpdj4KICAgIDwvYm9keT4KPC9odG1sPg==" - webUI["html/css/base.css"] = "KiB7CiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lOwogIC1tb3otYXBwZWFyYW5jZTogbm9uZTsKICAtbXMtYXBwZWFyYW5jZTogbm9uZTsKICBmb250LWZhbWlseTogIkFyaWFsIiwgc2Fucy1zZXJpZjsKICBsZXR0ZXItc3BhY2luZzogMnB4Owp9CgovKgo6Oi13ZWJraXQtc2Nyb2xsYmFyIHsgCiAgICBkaXNwbGF5OiBub25lOyAKfQoqLwoKOjotd2Via2l0LXNjcm9sbGJhciB7CiAgd2lkdGg6IDEycHg7CiAgaGVpZ2h0OiAxMnB4Owp9CgoKOjotd2Via2l0LXNjcm9sbGJhci10cmFjayB7CiAgLXdlYmtpdC1ib3gtc2hhZG93OiBpbnNldCAwIDAgNnB4IHJnYmEoMCwgMCwgMCwgMC4zKTsKICBib3JkZXItcmFkaXVzOiA1cHg7Cgp9Cgo6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iIHsKICBib3JkZXItcmFkaXVzOiA1cHg7CiAgLXdlYmtpdC1ib3gtc2hhZG93OiBpbnNldCAwIDAgNnB4IHJnYmEoMCwgMCwgMCwgMC42KTsKICBiYWNrZ3JvdW5kLWNvbG9yOiAjNDQ0Owp9Cgo6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iOmhvdmVyIHsKICBiYWNrZ3JvdW5kOiAjMzMzOwp9Cgo6Oi13ZWJraXQtc2Nyb2xsYmFyLWNvcm5lciB7CiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7Cn0KCmEgewogIGNvbG9yOiAjMDBFNkZGOwp9CgpodG1sLApib2R5IHsKICBjb2xvcjogI2ZmZjsKICBtYXJnaW46IDBweCBhdXRvOwogIGhlaWdodDogMTAwJTsKICBmb250LXNpemU6IDE0cHg7Cn0KCmgyIHsKICBmb250LXNpemU6IDI0cHg7CiAgbGV0dGVyLXNwYWNpbmc6IDJweDsKfQoKaDMgewogIGZvbnQtc2l6ZTogMjJweDsKICBsZXR0ZXItc3BhY2luZzogMXB4Owp9CgpoNCB7CiAgZm9udC1zaXplOiAyMHB4OwogIGxldHRlci1zcGFjaW5nOiAxcHg7CiAgbGluZS1oZWlnaHQ6IDEuNWVtOwoKfQoKaDUgewogIGZvbnQtc2l6ZTogMTZweDsKICBsZXR0ZXItc3BhY2luZzogMXB4OwogIGxpbmUtaGVpZ2h0OiAxLjJlbTsKICBtYXJnaW46IDI1cHggMHB4IDEwcHggMHB4Owp9CgpociB7CiAgYm9yZGVyOiAwOwogIGhlaWdodDogMXB4OwogIGJhY2tncm91bmQ6ICMzMzM7CiAgbWFyZ2luOiAxMHB4IDBweDsKfQoKcCB7CiAgbWFyZ2luOiAycHg7CiAgcGFkZGluZzogMnB4IDVweDsKfQoKcHJlIHsKICBtYXJnaW46IDBweCAwcHggNXB4IDBweDsKICBmb250LXNpemU6IDEycHg7CiAgY29sb3I6ICNkZGQ7CiAgbGV0dGVyLXNwYWNpbmc6IDFweDsKICB3aGl0ZS1zcGFjZTogcHJlLXdyYXA7CiAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZTsKICBmb250LXNpemU6IDEycHg7CiAgZm9udC1zdHlsZTogbm9ybWFsOwogIGZvbnQtdmFyaWFudDogbm9ybWFsOwogIGxpbmUtaGVpZ2h0OiAxLjZlbTsKfQoKbGFiZWwgewogIG1hcmdpbi1ib3R0b206IDIwcHg7CiAgZGlzcGxheTogYmxvY2s7Cn0KCmxpIHsKICBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7CiAgYmFja2dyb3VuZC1jb2xvcjogIzExMTsKICBwYWRkaW5nOiAxMHB4IDIwcHg7CiAgY3Vyc29yOiBwb2ludGVyOwogIGJvcmRlci1sZWZ0OiBzb2xpZCAycHggIzExMTsKICB0cmFuc2l0aW9uOiBhbGwgMC4zOwp9CgpsaTpob3ZlciB7CiAgYm9yZGVyLWNvbG9yOiAjMDBFNkZGCn0KCnNlbGVjdCB7CiAgY3Vyc29yOiBwb2ludGVyOwogIHdpZHRoOiBjYWxjKDEwMCUgKyAycHgpOwogIGJvcmRlcjogc29saWQgMHB4ICMwMEU2RkY7CiAgYm9yZGVyLXJhZGl1czogMHB4OwogIG91dGxpbmU6IG5vbmU7CiAgY29sb3I6ICNmZmY7CiAgcGFkZGluZzogOXB4IDEwcHg7CiAgZGlzcGxheTogYmxvY2s7CiAgYmFja2dyb3VuZC1jb2xvcjogIzMzMzsKICBmb250LXNpemU6IDE0cHg7CiAgbWFyZ2luOiA1cHggMHB4IDVweCAwcHg7Cn0KCnNlbGVjdDpmb2N1cyB7CiAgb3V0bGluZTogbm9uZTsKfQoKaW5wdXQgewogIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTsKICBtYXJnaW46IDVweCAwcHg7CiAgcGFkZGluZzogMi41cHggMTBweDsKICBvdXRsaW5lOiBub25lOwogIGZvbnQtc2l6ZTogMTRweDsKfQoKaW5wdXRbdHlwZT1idXR0b25dLAppbnB1dFt0eXBlPXN1Ym1pdF0gewogIGN1cnNvcjogcG9pbnRlcjsKICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDAwOwogIG1hcmdpbjogMTBweCAxMHB4OwogIHBhZGRpbmc6IDEwcHggMjVweDsKICBib3JkZXI6IHNvbGlkIDBweDsKICBib3JkZXItY29sb3I6ICMwMDA7CiAgYm9yZGVyLXJhZGl1czogM3B4OwogIG91dGxpbmU6IG5vbmU7CiAgY29sb3I6ICNmZmY7Cn0KCmlucHV0W3R5cGU9YnV0dG9uXTpmb2N1cyB7CiAgb3V0bGluZTogbm9uZTsKfQoKaW5wdXRbdHlwZT1idXR0b25dOmhvdmVyIHsKICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDBFNkZGOwogIGNvbG9yOiAjMDAwOwp9CgppbnB1dFt0eXBlPWJ1dHRvbl06aG92ZXIuZGVsZXRlIHsKICBiYWNrZ3JvdW5kLWNvbG9yOiByZWQ7CiAgY29sb3I6ICNmZmY7Cn0KCmlucHV0W3R5cGU9dGV4dF0sCmlucHV0W3R5cGU9c2VhcmNoXSwKaW5wdXRbdHlwZT1wYXNzd29yZF0gewogIGNvbG9yOiAjZmZmOwogIHdpZHRoOiAtd2Via2l0LWNhbGMoMTAwJSAtIDBweCk7CiAgd2lkdGg6IC1tb3otY2FsYygxMDAlIC0gMHB4KTsKICB3aWR0aDogY2FsYygxMDAlIC0gMHB4KTsKICBvdXRsaW5lOiBub25lOwogIGJvcmRlcjogc29saWQgMXB4IHRyYW5zcGFyZW50OwogIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50OwogIGJvcmRlci1ib3R0b20tY29sb3I6ICM1NTU7CiAgYm9yZGVyLXJhZGl1czogMHB4OwogIHBhZGRpbmc6IDhweCAxMHB4Owp9CgppbnB1dFt0eXBlPSJjaGVja2JveCJdIHsKICBib3JkZXI6IHNvbGlkIDFweCAjMDBFNkZGOwogIGJhY2tncm91bmQtY29sb3I6ICMzMzM7CiAgaGVpZ2h0OiAyNXB4OwogIHdpZHRoOiAyNXB4OwogIGN1cnNvcjogcG9pbnRlcjsKICAvKgogIC13ZWJraXQtYXBwZWFyYW5jZTogY2hlY2tib3g7CiAgKi8KfQoKaW5wdXRbdHlwZT0iY2hlY2tib3giXTpjaGVja2VkIHsKICBjb2xvcjogI2ZmZjsKICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDBFNkZGOwogIC8qZGlzcGxheTogaW5saW5lLWJsb2NrOyovCn0KCmlucHV0W3R5cGU9ImNoZWNrYm94Il06YmVmb3JlIHsKICBwb3NpdGlvbjogaW5pdGlhbDsKICBsZWZ0OiAwcHg7CiAgbWFyZ2luLWxlZnQ6IC00cHg7CiAgY29udGVudDogIiAiOwp9CgppbnB1dFt0eXBlPSJjaGVja2JveCJdOmNoZWNrZWQ6YmVmb3JlIHsKICBwb3NpdGlvbjogaW5pdGlhbDsKICBsZWZ0OiAwcHg7CiAgbWFyZ2luLWxlZnQ6IC0zcHg7CiAgY29udGVudDogIuKckyI7CiAgY29sb3I6ICMwMDA7Cn0KCgppbnB1dFt0eXBlPWJ1dHRvbl0uY2FuY2VsIHsKCiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7CiAgYm9yZGVyLWNvbG9yOiByZWQ7Cn0KCmlucHV0W3R5cGU9YnV0dG9uXS5zYXZlIHsKICBiYWNrZ3JvdW5kLWNvbG9yOiAjMTExOwogIGZsb2F0OiByaWdodDsKfQoKCmlucHV0W3R5cGU9YnV0dG9uXS5ibGFjaywKaW5wdXRbdHlwZT1zdWJtaXRdLmJsYWNrIHsKICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDAwOwogIGJvcmRlci1jb2xvcjogIzAwMDsKfQoKaW5wdXRbdHlwZT1idXR0b25dLmNlbnRlciB7CiAgbWFyZ2luLXJpZ2h0OiBhdXRvOwogIG1hcmdpbi1sZWZ0OiBhdXRvOwogIGJhY2tncm91bmQtY29sb3I6ICMwMDA7CiAgYm9yZGVyLWNvbG9yOiAjMDAwOwp9CgoucG9pbnRlciB7CiAgY3Vyc29yOiBwb2ludGVyOwp9CgoucG9pbnRlcjpob3ZlciB7CiAgY29sb3I6ICMwMEU2RkY7CiAgY3Vyc29yOiBwb2ludGVyOwp9Cgouc29ydFRoaXMgewogIGNvbG9yOiAjMDBFNkZGOwp9CgoudzQwcHggewogIG1heC13aWR0aDogNDBweDsKfQoKLnc1MHB4IHsKICBtYXgtd2lkdGg6IDUwcHg7Cn0KCi53ODBweCB7CiAgbWF4LXdpZHRoOiA4MHB4Owp9CgoudzE1MHB4IHsKICBtYXgtd2lkdGg6IDE1MHB4Owp9CgoudzIwMHB4IHsKICBtYXgtd2lkdGg6IDIwMHB4OwogIG1pbi13aWR0aDogMTAwcHg7CiAgd2lkdGg6IDIwMHB4OwogIG92ZXJmbG93LXg6IGhpZGRlbjsKICB3aGl0ZS1zcGFjZTogbm93cmFwOwogIG92ZXJmbG93OiBoaWRkZW47CiAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7Cn0KCi53MzAwcHggewogIG1heC13aWR0aDogMzAwcHg7Cn0KCi53MjIwcHggewogIG1heC13aWR0aDogMjIwcHg7CiAgY3Vyc29yOiBhbGlhczsKfQoKLmZvb3RlciB7CiAgZm9udC1zaXplOiAxMHB4Owp9CgouY2VudGVyIHsKICB0ZXh0LWFsaWduOiBjZW50ZXI7Cn0KCi5zY3JlZW5Mb2dIaWRkZW4gewogIHRyYW5zZm9ybTogdHJhbnNsYXRlKDBweCwgLTExMHB4KTsKfQoKLmJvcmRlclNwYWNlIHsKICBtYXJnaW4tYm90dG9tOiAzMHB4Owp9CgouYmxvY2sge30KCi5ub25lIHsKICBkaXNwbGF5OiBub25lOwp9CgoKLm5vdFZpc2libGUgewogIGhlaWdodDogMHB4OwogIGRpc3BsYXk6IG5vbmU7CiAgb3BhY2l0eTogMDsKICBib3JkZXItYm90dG9tOiAjMDAwIHNvbGlkIDBweDsKCn0KCi52aXNpYmxlIHsKICBvcGFjaXR5OiAxOwogIGRpc3BsYXk6IGJsb2NrOwogIGJvcmRlci1ib3R0b206ICM0NDQgc29saWQgMXB4OwogIHBhZGRpbmc6IDEwcHg7Cn0KCi5mbG9hdFJpZ2h0IHsKICBmbG9hdDogcmlnaHQ7Cn0KCi5mbG9hdExlZnQgewogIGZsb2F0OiBsZWZ0Owp9CgoubWVudS1hY3RpdmUgewogIGJhY2tncm91bmQtY29sb3I6ICMwMEU2RkY7Cn0KCi5tZW51LW5vdEFjdGl2ZSB7fQoKI2JyYW5jaCB7CiAgZGlzcGxheTogdGFibGU7CiAgbWFyZ2luOiBhdXRvOwogIGNvbG9yOiByZWQ7Cn0KCiNpbnRlcmFjdGlvbiB7CiAgbWFyZ2luLWJvdHRvbTogMTAwcHg7CiAgdGV4dC1hbGlnbjogY2VudGVyOwogIGJvcmRlci1ib3R0b206IHNvbGlkIDBweCAjNzc3Owp9CgoKLmhhbGYgewogIGRpc3BsYXk6IGJsb2NrOwogIHdpZHRoOiA0NSU7Cn0KCi5tZW51IHsKICBib3JkZXI6IHNvbGlkIDFweCAjMDBFNkZGOwp9CgouaW5mb01zZyB7CiAgY29sb3I6ICNhYWE7Cn0KCi5lcnJvck1zZyB7CiAgY29sb3I6IHJlZDsKfQoKLndhcm5pbmdNc2cgewogIGNvbG9yOiB5ZWxsb3c7Cn0KCi5kZWJ1Z01zZyB7CiAgY29sb3I6IG1hZ2VudGE7Cn0KCi5OZXdzLAouTW92aWUsCi5TZXJpZXMsCi5TcG9ydHMsCi5LaWRzIHsKICBib3JkZXItbGVmdDogc29saWQgMnB4Cn0KCi5OZXdzIHsKICBib3JkZXItY29sb3I6IHRvbWF0bwp9CgouTW92aWUgewogIGJvcmRlci1jb2xvcjogcm95YWxibHVlOwp9CgouU2VyaWVzIHsKICBib3JkZXItY29sb3I6IGdvbGQ7Cn0KCi5TcG9ydHMgewogIGJvcmRlci1jb2xvcjogeWVsbG93Z3JlZW47Cn0KCi5LaWRzIHsKICBib3JkZXItY29sb3I6IG1lZGl1bXB1cnBsZTsKfQoKLyogTG9hZGluZyAqLwojbG9hZGluZyB7CiAgbGVmdDogMHB4OwogIHRvcDogMHB4OwogIHotaW5kZXg6IDEwMDAwOwogIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuOCk7CiAgbWFyZ2luOiBhdXRvOwogIHdpZHRoOiAxMDAlOwogIGhlaWdodDogMTAwJTsKfQoKCi5sb2FkZXIgewogIGJvcmRlcjogNXB4IHNvbGlkIHRyYW5zcGFyZW50OwogIGJvcmRlci1yYWRpdXM6IDUwJTsKICBib3JkZXItdG9wOiA1cHggc29saWQgIzAwRTZGRjsKICBib3JkZXItYm90dG9tOiA1cHggc29saWQgIzAwRTZGRjsKICB3aWR0aDogNTBweDsKICBoZWlnaHQ6IDUwcHg7CiAgLXdlYmtpdC1hbmltYXRpb246IHNwaW4gMS4ycyBsaW5lYXIgaW5maW5pdGU7CiAgYW5pbWF0aW9uOiBzcGluIDEuMnMgbGluZWFyIGluZmluaXRlOwoKICBwb3NpdGlvbjogZml4ZWQ7CiAgbWFyZ2luOiBhdXRvOwoKICB0b3A6IDA7CiAgcmlnaHQ6IDA7CiAgYm90dG9tOiAwOwogIGxlZnQ6IDA7Cgp9CgpALXdlYmtpdC1rZXlmcmFtZXMgc3BpbiB7CiAgMCUgewogICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTsKICB9CgogIDEwMCUgewogICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpOwogIH0KfQoKQGtleWZyYW1lcyBzcGluIHsKICAwJSB7CiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTsKICB9CgogIDEwMCUgewogICAgdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKTsKICB9Cn0=" - webUI["html/css/screen.css"] = "bmF2IGltZyB7CiAgZGlzcGxheTogYmxvY2s7CiAgbWF4LWhlaWdodDogMjBweDsKICBtYXgtd2lkdGg6IDIwcHg7CiAgZmxvYXQ6IGxlZnQ7Cn0KCm5hdiBwIHsKICB0ZXh0LWFsaWduOiBsZWZ0OwogIHBhZGRpbmc6IDBweCAzMHB4Owp9CgojbGF5b3V0IHsKICBkaXNwbGF5OiBibG9jazsKICBoZWlnaHQ6IDEwMCU7Cn0KCgoubGF5b3V0LWxlZnQgewogIGRpc3BsYXk6IGJsb2NrOwogIG1pbi13aWR0aDogMTUwcHg7CiAgbWF4LXdpZHRoOiAyMCU7CiAgYmFja2dyb3VuZC1jb2xvcjogIzExMTsKICBoZWlnaHQ6IGluaGVyaXQ7CiAgZmxvYXQ6IGxlZnQ7Cn0KCi5sYXlvdXQtcmlnaHQgewogIGRpc3BsYXk6IGJsb2NrOwogIGJhY2tncm91bmQtY29sb3I6ICM0NDQ7Cn0KCiNtZW51LXdyYXBwZXIgewogIGhlaWdodDogMTAwJTsKfQoKCiNsb2dvIHsKICBkaXNwbGF5OiBibG9jazsKICBtaW4td2lkdGg6IDE4MHB4OwogIHdpZHRoOiAxMDAlOwogIGhlaWdodDogMTAwcHg7CiAgYmFja2dyb3VuZDogdXJsKCIuLi9pbWcvbG9nb193XzYwMHgyMDAucG5nIik7CiAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDsKICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7CiAgYmFja2dyb3VuZC1zaXplOiAxMDAlOwp9CgoKI3BhZ2UgewogIG1heC13aWR0aDogOTUwcHg7CiAgbWFyZ2luOiBhdXRvOwogIGJhY2tncm91bmQtY29sb3I6ICM0NDQ7CgogIC8qCiAgaGVpZ2h0OiAtd2Via2l0LWNhbGMoMTAwJSAtIDEzMHB4KTsKICBoZWlnaHQ6IC1tb3otY2FsYygxMDAlIC0gMTMwcHgpOwogIGhlaWdodDogY2FsYygxMDAlIC0gMTMwcHgpOwogICovCgogIG1pbi1oZWlnaHQ6IC13ZWJraXQtY2FsYygxMDAlIC0gMTIwcHgpOwogIG1pbi1oZWlnaHQ6IC1tb3otY2FsYygxMDAlIC0gMTIwcHgpOwogIG1pbi1oZWlnaHQ6IGNhbGMoMTAwJSAtIDEyMHB4KTsKCgogIGJveC1zaGFkb3c6IDBweCA1cHggNXB4ICMyMjI7Cgp9CgojdWlTZXR0aW5nIHsKICBmbG9hdDogcmlnaHQ7CiAgbWFyZ2luLXJpZ2h0OiAyNXB4Owp9CgojYm94IGlucHV0W3R5cGU9dGV4dF0sCiNib3ggaW5wdXRbdHlwZT1wYXNzd29yZF0gewogIHdpZHRoOiAtd2Via2l0LWNhbGMoMTAwJSAtIDIwcHgpOwogIHdpZHRoOiAtbW96LWNhbGMoMTAwJSAtIDIwcHgpOwogIHdpZHRoOiBjYWxjKDEwMCUgLSAyMHB4KTsKfQoKI2JveCBpbnB1dFt0eXBlPXN1Ym1pdF0gewogIG1hcmdpbjogNTBweCBhdXRvOwp9Cgojc2V0dGluZ3MgewogIGRpc3BsYXk6IGJsb2NrOwogIHBhZGRpbmc6IDEwcHggMTBweDsKfQoKI3NldHRpbmdzIGg1IHsKICBtYXJnaW46IDUwcHggMHB4IDEwcHggMHB4Owp9CgojY29udGVudC1pbnRlcmFjdGlvbiAuc2VhcmNoIHsKICB3aWR0aDogMjAwcHg7CiAgYm9yZGVyOiAxcHggc29saWQgIzAwMDsKICBwYWRkaW5nOiA5cHg7CiAgYmFja2dyb3VuZC1jb2xvcjogIzMzMzsKICBtYXJnaW46IDEwcHg7CiAgZmxvYXQ6IHJpZ2h0OwogIGJvcmRlci1yYWRpdXM6IDNweDsKCn0KCiNteVN0cmVhbXMgewogIHBvc2l0aW9uOiBmaXhlZDsKICBib3R0b206IDBweDsKICBiYWNrZ3JvdW5kLWNvbG9yOiAjMTExOwogIHdpZHRoOiAxMDAlOwogIG1heC13aWR0aDogOTUwcHg7CgogIC8qCiAgbWF4LWhlaWdodDogMTAwcHg7CiAgKi8KICBtYXJnaW4tYm90dG9tOiAwcHg7Cn0KCiNteVN0cmVhbXMgaW1nIHsKICB3aWR0aDogNCU7CiAgcGFkZGluZzogMnB4IDVweDsKICBjdXJzb3I6IHBvaW50ZXI7CiAgZmxvYXQ6IHJpZ2h0Owp9Cgojc2V0dGluZ3MtZm9vdGVyIHt9CgoKLyogV2l6YXJkKi8KI2JveCB7CiAgYmFja2dyb3VuZC1jb2xvcjogIzQ0NDsKICBtaW4taGVpZ2h0OiA0MDBweDsKCiAgZGlzcGxheTogZmxleDsKICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsKfQoKI2JveCBwIHsKICBwYWRkaW5nOiAxMHB4IDBweDsKfQoKI2JveC1mb290ZXIgewogIG1hcmdpbi10b3A6IGF1dG87Cn0KCiNib3gtZm9vdGVyIHsKICBtYXJnaW46IGF1dG87CiAgcGFkZGluZzogMTBweDsKfQoKI2hlYWRsaW5lIHsKICBiYWNrZ3JvdW5kLWNvbG9yOiAjMjIyOwogIGJvcmRlci1ib3R0b206IHNvbGlkIDJweCAjMjIyOwogIHRyYW5zaXRpb246IGFsbCAwLjVzOwogIHBhZGRpbmc6IDEwcHggMHB4OwogIGRpc3BsYXk6IGJsb2NrOwp9CgojY29udGVudCB7CiAgZGlzcGxheTogYmxvY2s7CiAgb3ZlcmZsb3c6IGF1dG87CiAgcGFkZGluZzogMTBweDsKfQoKLyogLS0tICovCgoKI2NsaWVudEluZm8sCiNhY3RpdmVTdHJlYW1zLAojaW5hY3RpdmVTdHJlYW1zIHsKICBmb250LWZhbWlseTogbW9ub3NwYWNlOwogIGRpc3BsYXk6IGJsb2NrOwogIGZvbnQtc2l6ZTogOXB4OwogIGJhY2tncm91bmQtY29sb3I6ICMxMTE7CiAgY29sb3I6ICMwMEU2RkY7CiAgYm9yZGVyLWJvdHRvbTogc29saWQgMHB4OwogIDsKICBwYWRkaW5nOiAwcHg7CiAgbGV0dGVyLXNwYWNpbmc6IDFweDsKICBvdmVyZmxvdy14OiBoaWRkZW47CiAgYm9yZGVyLXNwYWNpbmc6IDRweCA0cHg7CiAgYm9yZGVyLWJvdHRvbTogc29saWQgMXB4ICM0NDQ7Cn0KCiNteVN0cmVhbXNCb3ggewogIHBvc2l0aW9uOiByZWxhdGl2ZTsKICBwYWRkaW5nOiAwcHg7CiAgLypoZWlnaHQ6IDEwMHB4OyovCiAgbWF4LWhlaWdodDogMTUwcHg7CiAgYmFja2dyb3VuZC1jb2xvcjogIzExMTsKICBjb2xvcjogd2hpdGU7CiAgZGlzcGxheTogZmxleDsKICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICBhbGlnbi1pdGVtczogY2VudGVyOwp9Cgojb3BlblN0cmVhbXMgewogIHdpZHRoOiAyMHB4OwogIGhlaWdodDogMjBweDsKICBjdXJzb3I6IHBvaW50ZXI7CiAgZmxvYXQ6IHJpZ2h0OwogIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICByaWdodDogMHB4OwogIGJvdHRvbTogMHB4OwogIGJhY2tncm91bmQ6IHVybCgiLi4vaW1nL3RvdWNoLnBuZyIpOwogIGJhY2tncm91bmQtY29sb3I6ICMxMTE7CgogIGJhY2tncm91bmQtcG9zaXRpb246IGJvdHRvbSByaWdodDsKfQoKI2FsbFN0cmVhbXMgewogIHdpZHRoOiAxMDAlOwogIGhlaWdodDogMTAwJTsKICBwYWRkaW5nOiAycHg7Cn0KCiNhY3RpdmVTdHJlYW1zLAojaW5hY3RpdmVTdHJlYW1zIHsKICBvdmVyZmxvdy15OiBzY3JvbGw7CiAgd2lkdGg6IDUwJTsKICBtYXgtaGVpZ2h0OiAxMDBweDsKICBmbG9hdDogbGVmdDsKfQoKI2FjdGl2ZVN0cmVhbXMgLnRkS2V5LAojaW5hY3RpdmVTdHJlYW1zIC50ZEtleSB7CiAgd2lkdGg6IDc1cHg7Cn0KCgoKCiNpbmFjdGl2ZVN0cmVhbXMgLnRkS2V5IHsKICBjb2xvcjogcmVkOwp9CgojY2xpZW50SW5mbyAudGRWYWwsCiNsb2dJbmZvIC50ZFZhbCwKI2FjdGl2ZVN0cmVhbXMgLnRkVmFsLAojaW5hY3RpdmVTdHJlYW1zIC50ZFZhbCwKI21hcHBpbmdJbmZvIC50ZFZhbCB7CiAgY29sb3I6ICNhYWE7CiAgd2hpdGUtc3BhY2U6IGluaGVyaXQ7Cn0KCiNjbGllbnRJbmZvIC50ZFZhbExpbmssCiNsb2dJbmZvIC50ZFZhbExpbmssCiNhY3RpdmVTdHJlYW1zIC50ZFZhbExpbmssCiNpbmFjdGl2ZVN0cmVhbXMgLnRkVmFsTGluaywKI21hcHBpbmdJbmZvIC50ZFZhbExpbmsgewogIGNvbG9yOiBsaW1lOwogIHdoaXRlLXNwYWNlOiBpbmhlcml0Owp9CgojYm94LXdyYXBwZXIgewogIGRpc3BsYXk6IGlubGluZS1ibG9jazsKICB3aWR0aDogMTAwJTsKCiAgb3ZlcmZsb3cteTogc2Nyb2xsOwp9CgojY29udGVudF90YWJsZSwKI21hcHBpbmctZGV0YWlsLXRhYmxlLAojY29udGVudF90YWJsZSB7CiAgZGlzcGxheTogdGFibGU7CgogIGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7CiAgb3ZlcmZsb3cteTogc2Nyb2xsOwogIHdpZHRoOiAxMDAlOwp9CgoKI2NvbnRlbnRfdGFibGUgLmNvbnRlbnRfdGFibGVfaGVhZGVyIHsKICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzMzOwogIGhlaWdodDogNTBweDsKICBib3JkZXItYm90dG9tOiBzb2xpZCAxcHggIzExMTsKICBib3JkZXItbGVmdDogc29saWQgM3B4ICMzMzM7CiAgY3Vyc29yOiBhdXRvOwoKfQoKCnRib2R5IHsKICB3aWR0aDogMTAwJTsKfQoKCi50YWJsZUVsbGlwc2lzIHsKICB3aWR0aDogMTUwcHg7CiAgb3ZlcmZsb3c6IGhpZGRlbjsKICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKICB3aGl0ZS1zcGFjZTogbm93cmFwOwp9CgojY29udGVudF90YWJsZSBpbWcgewogIGRpc3BsYXk6IGJsb2NrOwogIG1heC1oZWlnaHQ6IDI4cHg7CiAgbWFyZ2luLWxlZnQ6IGF1dG87CiAgbWFyZ2luLXJpZ2h0OiBhdXRvOwogIG1heC13aWR0aDogMzBweDsKfQoKI2NvbnRlbnRfdGFibGUgdHIgewogIGJvcmRlci1sZWZ0OiBzb2xpZCAzcHggNDQ0OwogIGJvcmRlci1ib3R0b206IHNvbGlkIDFweCAjMzMzOwogIGN1cnNvcjogcG9pbnRlcjsKfQoKI2NvbnRlbnRfdGFibGUgdHI6aG92ZXIgewogIGJhY2tncm91bmQtY29sb3I6ICMzMzM7Cn0KCiNjb250ZW50X3RhYmxlIHRkIHsKCiAgcGFkZGluZzogMHB4IDJweDsKfQoKI2NvbnRlbnRfdGFibGUgaW5wdXRbdHlwZT10ZXh0XSB7CiAgd2lkdGg6IDgwJTsKICBtaW4td2lkdGg6IDM1cHg7CiAgbWF4LXdpZHRoOiA2MHB4OwogIGJvcmRlcjogMHB4OwogIGJhY2tncm91bmQtY29sb3I6ICMzMzM7CiAgbWFyZ2luLWxlZnQ6IDVweDsKICB0ZXh0LWFsaWduOiBsZWZ0Owp9CgojY29udGVudF90YWJsZSBpbnB1dFt0eXBlPWNoZWNrYm94XSB7CiAgbWF4LXdpZHRoOiAyNXB4OwogIG1hcmdpbjogYXV0bzsKfQoKCi5zaG93QnVsayB7CiAgZGlzcGxheTogYmxvY2s7Cn0KCi5oaWRlQnVsayB7CiAgZGlzcGxheTogbm9uZTsKfQoKLm5vQnVsayB7fQoKI2NvbnRlbnRfdGFibGUgdHIuYWN0aXZlRVBHIHsKICBib3JkZXItbGVmdDogc29saWQgM3B4IGxhd25ncmVlbjsKfQoKI2NvbnRlbnRfdGFibGUgdHIubm90QWN0aXZlRVBHIHsKICBib3JkZXItbGVmdDogc29saWQgM3B4IHJlZDsKfQoKCiNsb2dTY3JlZW4gcCB7CiAgd2hpdGUtc3BhY2U6IHByZTsKICBmb250LXNpemU6IDEwcHg7CiAgLyoKICBsaW5lLWhlaWdodDogMS42ZW07CiAgZm9udC1mYW1pbHk6ICJBcmlhbCIsIHNhbnMtc2VyaWY7CiAgKi8KICBsZXR0ZXItc3BhY2luZzogMXB4OwogIGZvbnQtZmFtaWx5OiBtb25vc3BhY2U7CiAgZm9udC1zaXplOiAxMnB4OwogIGZvbnQtc3R5bGU6IG5vcm1hbDsKICBmb250LXZhcmlhbnQ6IG5vcm1hbDsKICBsaW5lLWhlaWdodDogMS42ZW07Cn0KCiNwb3B1cCB7CiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjQpOwogIHBvc2l0aW9uOiBmaXhlZDsKICBsZWZ0OiAwcHg7CiAgd2lkdGg6IDEwMCU7CiAgei1pbmRleDogMTAwOwogIGhlaWdodDogMTAwJTsKICBvdmVyZmxvdzogc2Nyb2xsOwp9CgojbWFwcGluZy1kZXRhaWwsCiN1c2VyLWRldGFpbCwKI2ZpbGUtZGV0YWlsLAojcG9wdXAtY3VzdG9tIHsKICBib3gtc2hhZG93OiAwcHggNXB4IDQwcHggIzAwMDsKICBtYXJnaW4tdG9wOiAyMHB4OwogIG1hcmdpbi1sZWZ0OiBhdXRvOwogIG1hcmdpbi1yaWdodDogYXV0bzsKCiAgbWF4LXdpZHRoOiA4MDBweDsKICBiYWNrZ3JvdW5kLWNvbG9yOiAjMjIyOwogIHBhZGRpbmc6IDEwcHg7CiAgb3ZlcmZsb3c6IGF1dG87Cn0KCiNwb3B1cC1jdXN0b20gaDMgewogIHRleHQtYWxpZ246IGNlbnRlcjsKfQoKI2ZpbGUtZGV0YWlsIGlucHV0W3R5cGU9dGV4dF0gewogIHdpZHRoOiAtd2Via2l0LWNhbGMoMTAwJSAtIDIwcHgpOwogIHdpZHRoOiAtbW96LWNhbGMoMTAwJSAtIDIwcHgpOwogIHdpZHRoOiBjYWxjKDEwMCUgLSAyMHB4KTsKfQoKI21hcHBpbmctZGV0YWlsIGltZyB7CiAgZGlzcGxheTogYmxvY2s7CiAgbWF4LWhlaWdodDogMzBweDsKICBtYXJnaW4tYm90dG9tOiAyMHB4OwogIG1hcmdpbi1sZWZ0OiBhdXRvOwogIG1hcmdpbi1yaWdodDogYXV0bzsKfQoKI3BvcHVwLWN1c3RvbSBpbnB1dFt0eXBlPXRleHRdLAojcG9wdXAtY3VzdG9tIGlucHV0W3R5cGU9cGFzc3dvcmRdLAojbWFwcGluZy1kZXRhaWwgaW5wdXRbdHlwZT10ZXh0XSwKI2NvbnRlbnRfc2V0dGluZ3MgaW5wdXRbdHlwZT10ZXh0XSwKI2NvbnRlbnRfc2V0dGluZ3MgaW5wdXRbdHlwZT1wYXNzd29yZF0gewogIGJvcmRlcjogc29saWQgMXB4OwogIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7CiAgYmFja2dyb3VuZC1jb2xvcjogIzMzMzsKICB0ZXh0LWFsaWduOiBsZWZ0OwogIHdpZHRoOiAtd2Via2l0LWNhbGMoMTAwJSAtIDIwcHgpOwogIHdpZHRoOiAtbW96LWNhbGMoMTAwJSAtIDIwcHgpOwogIHdpZHRoOiBjYWxjKDEwMCUgLSAyMHB4KTsKfQoKI3BvcHVwLWN1c3RvbSBpbnB1dFt0eXBlPXRleHRdLm5vdEF2YWlsYWJsZSB7CiAgYm9yZGVyLWNvbG9yOiByZWQ7CiAgY29sb3I6ICM2NjY7CiAgY3Vyc29yOiBub3QtYWxsb3dlZDsKfQoKI3BvcHVwLWN1c3RvbSBpbnB1dFt0eXBlPXRleHRdOmRpc2FibGVkIHsKICBjb2xvcjogIzY2NjsKICBjdXJzb3I6IG5vdC1hbGxvd2VkOwp9CgojbWFwcGluZy1kZXRhaWwtdGFibGUsCiN1c2VyLWRldGFpbC10YWJsZSB7CiAgZGlzcGxheTogaW5saW5lLXRhYmxlOwogIHdpZHRoOiAxMDAlOwp9CgojcG9wdXAtY3VzdG9tIHRhYmxlLAojY29udGVudF9zZXR0aW5ncyB0YWJsZSB7CiAgZGlzcGxheTogaW5saW5lLXRhYmxlOwogIHRhYmxlLWxheW91dDogZml4ZWQ7CiAgd2lkdGg6IDEwMCU7Cn0KCgojbWFwcGluZy1kZXRhaWwtdGFibGUgdGQsCiN1c2VyLWRldGFpbC10YWJsZSB0ZCB7CiAgcGFkZGluZzogMTBweCAwcHg7Cgp9CgojbWFwcGluZy1kZXRhaWwtdGFibGUgdGQubGVmdCwKI3VzZXItZGV0YWlsLXRhYmxlIHRkLmxlZnQsCiNwb3B1cC1jdXN0b20gdGQubGVmdCB7CiAgd2lkdGg6IDM4JTsKfQoKLmludGVyYWN0aW9uLAojaW50ZXJhY3Rpb24gewogIG1hcmdpbi10b3A6IDIwcHg7CiAgZGlzcGxheTogaW5saW5lLWZsZXg7CiAgZmxvYXQ6IHJpZ2h0Owp9CgouaW50ZXJhY3Rpb24gaW5wdXRbdHlwZT1idXR0b25dLAouaW50ZXJhY3Rpb24gaW5wdXRbdHlwZT1zdWJtaXRdIHsKICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDAwOwogIG1pbi13aWR0aDogMTAwcHg7CiAgbWFyZ2luOiAwcHggMTBweDsKICB0ZXh0LWFsaWduOiBjZW50ZXI7Cn0KCiNub3RpZmljYXRpb24gewogIGRpc3BsYXk6IGJsb2NrOwogIHBvc2l0aW9uOiBmaXhlZDsKICByaWdodDogMHB4OwogIGhlaWdodDogMTAwJTsKICB3aWR0aDogMjUwcHg7CgogIGJhY2tncm91bmQtY29sb3I6ICMyMjI7CiAgYm94LXNoYWRvdzogMHB4IDBweCAyMHB4ICMwMDA7Cn0KCiNub3RpZmljYXRpb24gaDUgewogIGJhY2tncm91bmQtY29sb3I6ICMxMjEyMTI7CiAgcGFkZGluZzogNXB4IDEwcHggNXB4IDEwcHg7Cn0KCiNub3RpZmljYXRpb24gcHJlIHsKICBwYWRkaW5nOiAwcHggMTBweCAwcHggMTBweDsKfQoKI25vdGlmaWNhdGlvbiBwIHsKICBmb250LXNpemU6IDEwIHB4OwogIG1hcmdpbjogMHB4OwogIHBhZGRpbmc6IDBweCAxMHB4IDVweCAxMHB4Owp9Cgojbm90aWZpY2F0aW9uIC5lbGVtZW50IHsKICAvKnBhZGRpbmc6IDBweCA1cHg7Ki8KICBtYXJnaW46IDVweCA1cHg7CiAgYm9yZGVyLXJhZGl1czogNXB4OwogIGJhY2tncm91bmQtY29sb3I6ICMxODE4MTg7CiAgYm9yZGVyLWxlZnQ6IDEwcHggc29saWQgZ3JlZW47Cn0KCgpAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDYyMHB4KSB7CiAgYm9keSB7CiAgICB3aWR0aDogMTAwJTsKICAgIGJhY2tncm91bmQtY29sb3I6ICM0NDQ7CiAgfQoKICBoMSB7CiAgICBmb250LXNpemU6IDI2cHg7CiAgICBsZXR0ZXItc3BhY2luZzogM3B4OwogIH0KCiAgbmF2IHAgewogICAgZGlzcGxheTogYmxvY2s7CiAgfQoKCgogICNoZWFkZXJfY29uZmlnIHsKICAgIGRpc3BsYXk6IGJsb2NrOwogICAgaGVpZ2h0OiAxMDBweDsKICAgIGJhY2tncm91bmQ6IHVybCgiLi4vaW1nL2xvZ29fd182MDB4MjAwLnBuZyIpOwogICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDsKCiAgICBiYWNrZ3JvdW5kLXNpemU6IDMwMHB4IDEwMHB4OwogIH0KCiAgI3NjcmVlbkxvZyB7CiAgICBtYXJnaW4tbGVmdDogMzAwcHg7CgogICAgdHJhbnNpdGlvbjogbm9uZTsKICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50OwogICAgYm9yZGVyLWJvdHRvbTogc29saWQgMXB4IHRyYW5zcGFyZW50OwogICAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggIzIyMjsKICB9CgogICNzZXR0aW5ncyB7CiAgICAvKgogICAgaGVpZ2h0OiAtd2Via2l0LWNhbGMoMTAwJSAtIDEwMHB4KTsKICAgIGhlaWdodDogLW1vei1jYWxjKDEwMCUgLSAxMDBweCk7CiAgICBoZWlnaHQ6IGNhbGMoMTAwJSAtIDEwMHB4KTsKICAgICovCiAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICBvdmVyZmxvdzogYXV0bzsKICB9CgoKICAuc2NyZWVuTG9nSGlkZGVuIHsKICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDBweCwgMHB4KTsKICB9CgoKICAjYm94IHsKICAgIGRpc3BsYXk6IGJsb2NrOwogICAgbWluLWhlaWdodDogNTAwcHg7CiAgICBtYXgtd2lkdGg6IDUwMHB4OwogICAgbWFyZ2luOiAxMHB4IGF1dG87CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNDQ0OwogICAgYm94LXNoYWRvdzogMHB4IDVweCA1cHggIzIyMjsKCiAgICBkaXNwbGF5OiBmbGV4OwogICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICB9CgogICNzZXR0aW5ncywKICAjc2V0dGluZ3MtZm9vdGVyIHt9Cn0=" + webUI["html/configuration.html"] = "PCFkb2N0eXBlIGh0bWw+CjxodG1sPgoKPGhlYWQ+CiAgPG1ldGEgY2hhcnNldD0idXRmLTgiPgogIDxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgsIGluaXRpYWwtc2NhbGU9MS4wIiAvPgogIDx0aXRsZT54VGVWZTwvdGl0bGU+CiAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJjc3Mvc2NyZWVuLmNzcyIgdHlwZT0idGV4dC9jc3MiPgogIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iY3NzL2Jhc2UuY3NzIiB0eXBlPSJ0ZXh0L2NzcyI+CiAgPHNjcmlwdCBsYW5ndWFnZT0iamF2YXNjcmlwdCIgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9ImpzL2NvbmZpZ3VyYXRpb25fdHMuanMiPjwvc2NyaXB0PgogIDxzY3JpcHQgbGFuZ3VhZ2U9ImphdmFzY3JpcHQiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJqcy9uZXR3b3JrX3RzLmpzIj48L3NjcmlwdD4KICA8c2NyaXB0IGxhbmd1YWdlPSJqYXZhc2NyaXB0IiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ianMvbWVudV90cy5qcyI+PC9zY3JpcHQ+CiAgPHNjcmlwdCBsYW5ndWFnZT0iamF2YXNjcmlwdCIgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9ImpzL3NldHRpbmdzX3RzLmpzIj48L3NjcmlwdD4KICA8c2NyaXB0IGxhbmd1YWdlPSJqYXZhc2NyaXB0IiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ianMvYmFzZV90cy5qcyI+PC9zY3JpcHQ+CjwvaGVhZD4KCjxib2R5IG9ubG9hZD0iamF2YXNjcmlwdDogcmVhZHlGb3JDb25maWd1cmF0aW9uKDApOyI+CgogIDxkaXYgaWQ9ImxvYWRpbmciIGNsYXNzPSJibG9jayI+CiAgICA8ZGl2IGNsYXNzPSJsb2FkZXIiPjwvZGl2PgogIDwvZGl2PgoKICA8ZGl2IGlkPSJoZWFkZXIiIGNsYXNzPSJpbWdDZW50ZXIiPjwvZGl2PgogIDxkaXYgaWQ9ImJveCI+CgogICAgPHRhYmxlIGlkPSJjbGllbnRJbmZvIiBjbGFzcz0idmlzaWJsZSI+CiAgICAgIDx0cj4KICAgICAgICA8dGQgY2xhc3M9InRkS2V5Ij5WZXJzaW9uOjwvdGQ+CiAgICAgICAgPHRkIGlkPSJ2ZXJzaW9uIiBjbGFzcz0idGRWYWwiPiZuYnNwOzwvdGQ+CiAgICAgICAgPHRkIGNsYXNzPSJ0ZEtleSI+T1M6PC90ZD4KICAgICAgICA8dGQgaWQ9Im9zIiBjbGFzcz0idGRWYWwiPiZuYnNwOzwvdGQ+CiAgICAgIDwvdHI+CiAgICAgIDx0cj4KICAgICAgICA8dGQgY2xhc3M9InRkS2V5Ij5VVUlEOjwvdGQ+CiAgICAgICAgPHRkIGlkPSJ1dWlkIiBjbGFzcz0idGRWYWwiPiZuYnNwOzwvdGQ+CiAgICAgICAgPHRkIGNsYXNzPSJ0ZEtleSI+QXJjaDo8L3RkPgogICAgICAgIDx0ZCBpZD0iYXJjaCIgY2xhc3M9InRkVmFsIj4mbmJzcDs8L3RkPgogICAgICA8L3RyPgogICAgICA8dHI+CiAgICAgICAgPHRkIGNsYXNzPSJ0ZEtleSI+U3RyZWFtczo8L3RkPgogICAgICAgIDx0ZCBpZD0ic3RyZWFtcyIgY2xhc3M9InRkVmFsIj4mbmJzcDs8L3RkPgogICAgICAgIDx0ZCBjbGFzcz0idGRLZXkiPkRWUjo8L3RkPgogICAgICAgIDx0ZCBpZD0iRFZSIiBjbGFzcz0idGRWYWwiPiZuYnNwOzwvdGQ+CiAgICAgIDwvdHI+CiAgICA8L3RhYmxlPgoKICAgIDxkaXYgaWQ9ImhlYWRsaW5lIj4KICAgICAgPGgxIGlkPSJoZWFkLXRleHQiIGNsYXNzPSJjZW50ZXIiPkNvbmZpZ3VyYXRpb248L2gxPgogICAgPC9kaXY+CiAgICA8cCBpZD0iZXJyIiBjbGFzcz0iZXJyb3JNc2cgY2VudGVyIj48L3A+CiAgICA8ZGl2IGlkPSJjb250ZW50Ij4KCiAgICA8L2Rpdj4KICAgIDxkaXYgaWQ9ImJveC1mb290ZXIiPgogICAgICA8aW5wdXQgaWQ9Im5leHQiIGNsYXNzPSIiIHR5cGU9ImJ1dHRvbiIgbmFtZT0ibmV4dCIgdmFsdWU9Ik5leHQiIG9uY2xpY2s9ImphdmFzY3JpcHQ6IHNhdmVXaXphcmQoKTsiPgogICAgPC9kaXY+CiAgPC9kaXY+CjwvYm9keT4KCjwvaHRtbD4=" + webUI["html/create-first-user.html"] = "PCFkb2N0eXBlIGh0bWw+CjxodG1sPgoKPGhlYWQ+CiAgPG1ldGEgY2hhcnNldD0idXRmLTgiPgogIDxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgsIGluaXRpYWwtc2NhbGU9MS4wIiAvPgogIDx0aXRsZT54VGVWZTwvdGl0bGU+CiAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJjc3Mvc2NyZWVuLmNzcyIgdHlwZT0idGV4dC9jc3MiPgogIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iY3NzL2Jhc2UuY3NzIiB0eXBlPSJ0ZXh0L2NzcyI+CiAgPHNjcmlwdCBsYW5ndWFnZT0iamF2YXNjcmlwdCIgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9ImpzL25ldHdvcmtfdHMuanMiPjwvc2NyaXB0PgogIDxzY3JpcHQgbGFuZ3VhZ2U9ImphdmFzY3JpcHQiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJqcy9hdXRoZW50aWNhdGlvbl90cy5qcyI+PC9zY3JpcHQ+CjwvaGVhZD4KCjxib2R5PgoKICA8ZGl2IGlkPSJoZWFkZXIiIGNsYXNzPSJpbWdDZW50ZXIiPjwvZGl2PgoKICA8ZGl2IGlkPSJib3giPgoKICAgIDxkaXYgaWQ9ImhlYWRsaW5lIj4KICAgICAgPGgxIGlkPSJoZWFkLXRleHQiIGNsYXNzPSJjZW50ZXIiPnt7LmFjY291bnQuaGVhZGxpbmV9fTwvaDE+CiAgICA8L2Rpdj4KCiAgICA8cCBpZD0iZXJyIiBjbGFzcz0iZXJyb3JNc2cgY2VudGVyIj48L3A+CgogICAgPGRpdiBpZD0iY29udGVudCI+CgogICAgICA8Zm9ybSBpZD0iYXV0aGVudGljYXRpb24iIGFjdGlvbj0iIiBtZXRob2Q9InBvc3QiPgoKICAgICAgICA8aDU+e3suYWNjb3VudC51c2VybmFtZS50aXRsZX19OjwvaDU+CiAgICAgICAgPGlucHV0IGlkPSJ1c2VybmFtZSIgdHlwZT0idGV4dCIgbmFtZT0idXNlcm5hbWUiIHBsYWNlaG9sZGVyPSJVc2VybmFtZSIgdmFsdWU9IiI+CiAgICAgICAgPGg1Pnt7LmFjY291bnQucGFzc3dvcmQudGl0bGV9fTo8L2g1PgogICAgICAgIDxpbnB1dCBpZD0icGFzc3dvcmQiIHR5cGU9InBhc3N3b3JkIiBuYW1lPSJwYXNzd29yZCIgcGxhY2Vob2xkZXI9IlBhc3N3b3JkIiB2YWx1ZT0iIj4KICAgICAgICA8aDU+e3suYWNjb3VudC5jb25maXJtLnRpdGxlfX06PC9oNT4KICAgICAgICA8aW5wdXQgaWQ9ImNvbmZpcm0iIHR5cGU9InBhc3N3b3JkIiBuYW1lPSJjb25maXJtIiBwbGFjZWhvbGRlcj0iQ29uZmlybSIgdmFsdWU9IiI+CgogICAgICA8L2Zvcm0+CgogICAgPC9kaXY+CgogICAgPGRpdiBpZD0iYm94LWZvb3RlciI+CiAgICAgIDxpbnB1dCBpZD0ic3VibWl0IiBjbGFzcz0iIiB0eXBlPSJidXR0b24iIHZhbHVlPSJ7ey5idXR0b24uY3JhZXRlQWNjb3VudH19IiBvbmNsaWNrPSJqYXZhc2NyaXB0OiBsb2dpbigpOyI+CiAgICA8L2Rpdj4KCgogIDwvZGl2Pgo8L2JvZHk+Cgo8L2h0bWw+" + webUI["html/css/base.css"] = "KiB7CiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lOwogIC1tb3otYXBwZWFyYW5jZTogbm9uZTsKICAtbXMtYXBwZWFyYW5jZTogbm9uZTsKICBmb250LWZhbWlseTogIkFyaWFsIiwgc2Fucy1zZXJpZjsKICBsZXR0ZXItc3BhY2luZzogMnB4Owp9CgovKgo6Oi13ZWJraXQtc2Nyb2xsYmFyIHsgCiAgICBkaXNwbGF5OiBub25lOyAKfQoqLwoKOjotd2Via2l0LXNjcm9sbGJhciB7CiAgd2lkdGg6IDEycHg7CiAgaGVpZ2h0OiAxMnB4Owp9CgoKOjotd2Via2l0LXNjcm9sbGJhci10cmFjayB7CiAgLXdlYmtpdC1ib3gtc2hhZG93OiBpbnNldCAwIDAgNnB4IHJnYmEoMCwgMCwgMCwgMC4zKTsKICBib3gtc2hhZG93OiBpbnNldCAwIDAgNnB4IHJnYmEoMCwgMCwgMCwgMC4zKTsKICBib3JkZXItcmFkaXVzOiA1cHg7Cgp9Cgo6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iIHsKICBib3JkZXItcmFkaXVzOiA1cHg7CiAgLXdlYmtpdC1ib3gtc2hhZG93OiBpbnNldCAwIDAgNnB4IHJnYmEoMCwgMCwgMCwgMC42KTsKICBib3gtc2hhZG93OiBpbnNldCAwIDAgNnB4IHJnYmEoMCwgMCwgMCwgMC42KTsKICBiYWNrZ3JvdW5kLWNvbG9yOiAjNDQ0Owp9Cgo6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iOmhvdmVyIHsKICBiYWNrZ3JvdW5kOiAjMzMzOwp9Cgo6Oi13ZWJraXQtc2Nyb2xsYmFyLWNvcm5lciB7CiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7Cn0KCmEgewogIGNvbG9yOiAjMDBFNkZGOwp9CgpodG1sLApib2R5IHsKICBjb2xvcjogI2ZmZjsKICBtYXJnaW46IDBweCBhdXRvOwogIGhlaWdodDogMTAwJTsKICBmb250LXNpemU6IDE0cHg7Cn0KCmgyIHsKICBmb250LXNpemU6IDI0cHg7CiAgbGV0dGVyLXNwYWNpbmc6IDJweDsKfQoKaDMgewogIGZvbnQtc2l6ZTogMjJweDsKICBsZXR0ZXItc3BhY2luZzogMXB4Owp9CgpoNCB7CiAgZm9udC1zaXplOiAyMHB4OwogIGxldHRlci1zcGFjaW5nOiAxcHg7CiAgbGluZS1oZWlnaHQ6IDEuNWVtOwoKfQoKaDUgewogIGZvbnQtc2l6ZTogMTZweDsKICBsZXR0ZXItc3BhY2luZzogMXB4OwogIGxpbmUtaGVpZ2h0OiAxLjJlbTsKICBtYXJnaW46IDI1cHggMHB4IDEwcHggMHB4Owp9CgpociB7CiAgYm9yZGVyOiAwOwogIGhlaWdodDogMXB4OwogIGJhY2tncm91bmQ6ICMzMzM7CiAgbWFyZ2luOiAxMHB4IDBweDsKfQoKcCB7CiAgbWFyZ2luOiAycHg7CiAgcGFkZGluZzogMnB4IDVweDsKfQoKcHJlIHsKICBtYXJnaW46IDBweCAwcHggNXB4IDBweDsKICBmb250LXNpemU6IDEycHg7CiAgY29sb3I6ICNkZGQ7CiAgbGV0dGVyLXNwYWNpbmc6IDFweDsKICB3aGl0ZS1zcGFjZTogcHJlLXdyYXA7CiAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZTsKICBmb250LXNpemU6IDEycHg7CiAgZm9udC1zdHlsZTogbm9ybWFsOwogIGZvbnQtdmFyaWFudDogbm9ybWFsOwogIGxpbmUtaGVpZ2h0OiAxLjZlbTsKfQoKbGFiZWwgewogIG1hcmdpbi1ib3R0b206IDIwcHg7CiAgZGlzcGxheTogYmxvY2s7Cn0KCmxpIHsKICBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7CiAgYmFja2dyb3VuZC1jb2xvcjogIzExMTsKICBwYWRkaW5nOiAxMHB4IDIwcHg7CiAgY3Vyc29yOiBwb2ludGVyOwogIGJvcmRlci1sZWZ0OiBzb2xpZCAycHggIzExMTsKICB0cmFuc2l0aW9uOiBhbGwgMC4zOwp9CgpsaTpob3ZlciB7CiAgYm9yZGVyLWNvbG9yOiAjMDBFNkZGCn0KCnNlbGVjdCB7CiAgY3Vyc29yOiBwb2ludGVyOwogIHdpZHRoOiBjYWxjKDEwMCUgKyAycHgpOwogIGJvcmRlcjogc29saWQgMHB4ICMwMEU2RkY7CiAgYm9yZGVyLXJhZGl1czogMHB4OwogIG91dGxpbmU6IG5vbmU7CiAgY29sb3I6ICNmZmY7CiAgcGFkZGluZzogOXB4IDEwcHg7CiAgZGlzcGxheTogYmxvY2s7CiAgYmFja2dyb3VuZC1jb2xvcjogIzMzMzsKICBmb250LXNpemU6IDE0cHg7CiAgbWFyZ2luOiA1cHggMHB4IDVweCAwcHg7Cn0KCnNlbGVjdDpmb2N1cyB7CiAgb3V0bGluZTogbm9uZTsKfQoKaW5wdXQgewogIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTsKICBtYXJnaW46IDVweCAwcHg7CiAgcGFkZGluZzogMi41cHggMTBweDsKICBvdXRsaW5lOiBub25lOwogIGZvbnQtc2l6ZTogMTRweDsKfQoKaW5wdXRbdHlwZT1idXR0b25dLAppbnB1dFt0eXBlPXN1Ym1pdF0gewogIGN1cnNvcjogcG9pbnRlcjsKICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDAwOwogIG1hcmdpbjogMTBweCAxMHB4OwogIHBhZGRpbmc6IDEwcHggMjVweDsKICBib3JkZXI6IHNvbGlkIDBweDsKICBib3JkZXItY29sb3I6ICMwMDA7CiAgYm9yZGVyLXJhZGl1czogM3B4OwogIG91dGxpbmU6IG5vbmU7CiAgY29sb3I6ICNmZmY7Cn0KCmlucHV0W3R5cGU9YnV0dG9uXTpmb2N1cyB7CiAgb3V0bGluZTogbm9uZTsKfQoKaW5wdXRbdHlwZT1idXR0b25dOmhvdmVyIHsKICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDBFNkZGOwogIGNvbG9yOiAjMDAwOwp9CgppbnB1dFt0eXBlPWJ1dHRvbl06aG92ZXIuZGVsZXRlIHsKICBiYWNrZ3JvdW5kLWNvbG9yOiByZWQ7CiAgY29sb3I6ICNmZmY7Cn0KCmlucHV0W3R5cGU9dGV4dF0sCmlucHV0W3R5cGU9c2VhcmNoXSwKaW5wdXRbdHlwZT1wYXNzd29yZF0gewogIGNvbG9yOiAjZmZmOwogIHdpZHRoOiAtd2Via2l0LWNhbGMoMTAwJSAtIDBweCk7CiAgd2lkdGg6IC1tb3otY2FsYygxMDAlIC0gMHB4KTsKICB3aWR0aDogY2FsYygxMDAlIC0gMHB4KTsKICBvdXRsaW5lOiBub25lOwogIGJvcmRlcjogc29saWQgMXB4IHRyYW5zcGFyZW50OwogIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50OwogIGJvcmRlci1ib3R0b20tY29sb3I6ICM1NTU7CiAgYm9yZGVyLXJhZGl1czogMHB4OwogIHBhZGRpbmc6IDhweCAxMHB4Owp9CgppbnB1dFt0eXBlPSJjaGVja2JveCJdIHsKICBib3JkZXI6IHNvbGlkIDFweCAjMDBFNkZGOwogIGJhY2tncm91bmQtY29sb3I6ICMzMzM7CiAgaGVpZ2h0OiAyNXB4OwogIHdpZHRoOiAyNXB4OwogIGN1cnNvcjogcG9pbnRlcjsKICAvKgogIC13ZWJraXQtYXBwZWFyYW5jZTogY2hlY2tib3g7CiAgKi8KfQoKaW5wdXRbdHlwZT0iY2hlY2tib3giXTpjaGVja2VkIHsKICBjb2xvcjogI2ZmZjsKICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDBFNkZGOwogIC8qZGlzcGxheTogaW5saW5lLWJsb2NrOyovCn0KCmlucHV0W3R5cGU9ImNoZWNrYm94Il06YmVmb3JlIHsKICBwb3NpdGlvbjogaW5pdGlhbDsKICBsZWZ0OiAwcHg7CiAgbWFyZ2luLWxlZnQ6IC00cHg7CiAgY29udGVudDogIiAiOwp9CgppbnB1dFt0eXBlPSJjaGVja2JveCJdOmNoZWNrZWQ6YmVmb3JlIHsKICBwb3NpdGlvbjogaW5pdGlhbDsKICBsZWZ0OiAwcHg7CiAgbWFyZ2luLWxlZnQ6IC0zcHg7CiAgY29udGVudDogIuKckyI7CiAgY29sb3I6ICMwMDA7Cn0KCgppbnB1dFt0eXBlPWJ1dHRvbl0uY2FuY2VsIHsKCiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7CiAgYm9yZGVyLWNvbG9yOiByZWQ7Cn0KCmlucHV0W3R5cGU9YnV0dG9uXS5zYXZlIHsKICBiYWNrZ3JvdW5kLWNvbG9yOiAjMTExOwogIGZsb2F0OiByaWdodDsKfQoKCmlucHV0W3R5cGU9YnV0dG9uXS5ibGFjaywKaW5wdXRbdHlwZT1zdWJtaXRdLmJsYWNrIHsKICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDAwOwogIGJvcmRlci1jb2xvcjogIzAwMDsKfQoKaW5wdXRbdHlwZT1idXR0b25dLmNlbnRlciB7CiAgbWFyZ2luLXJpZ2h0OiBhdXRvOwogIG1hcmdpbi1sZWZ0OiBhdXRvOwogIGJhY2tncm91bmQtY29sb3I6ICMwMDA7CiAgYm9yZGVyLWNvbG9yOiAjMDAwOwp9CgoucG9pbnRlciB7CiAgY3Vyc29yOiBwb2ludGVyOwp9CgoucG9pbnRlcjpob3ZlciB7CiAgY29sb3I6ICMwMEU2RkY7CiAgY3Vyc29yOiBwb2ludGVyOwp9Cgouc29ydFRoaXMgewogIGNvbG9yOiAjMDBFNkZGOwp9CgoudzQwcHggewogIG1heC13aWR0aDogNDBweDsKfQoKLnc1MHB4IHsKICBtYXgtd2lkdGg6IDUwcHg7Cn0KCi53ODBweCB7CiAgbWF4LXdpZHRoOiA4MHB4Owp9CgoudzE1MHB4IHsKICBtYXgtd2lkdGg6IDE1MHB4Owp9CgoudzIwMHB4IHsKICBtYXgtd2lkdGg6IDIwMHB4OwogIG1pbi13aWR0aDogMTAwcHg7CiAgd2lkdGg6IDIwMHB4OwogIG92ZXJmbG93LXg6IGhpZGRlbjsKICB3aGl0ZS1zcGFjZTogbm93cmFwOwogIG92ZXJmbG93OiBoaWRkZW47CiAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7Cn0KCi53MzAwcHggewogIG1heC13aWR0aDogMzAwcHg7Cn0KCi53MjIwcHggewogIG1heC13aWR0aDogMjIwcHg7CiAgY3Vyc29yOiBhbGlhczsKfQoKLmZvb3RlciB7CiAgZm9udC1zaXplOiAxMHB4Owp9CgouY2VudGVyIHsKICB0ZXh0LWFsaWduOiBjZW50ZXI7Cn0KCi5zY3JlZW5Mb2dIaWRkZW4gewogIHRyYW5zZm9ybTogdHJhbnNsYXRlKDBweCwgLTExMHB4KTsKfQoKLmJvcmRlclNwYWNlIHsKICBtYXJnaW4tYm90dG9tOiAzMHB4Owp9Cgoubm9uZSB7CiAgZGlzcGxheTogbm9uZTsKfQoKLm5vdFZpc2libGUgewogIGhlaWdodDogMHB4OwogIGRpc3BsYXk6IG5vbmU7CiAgb3BhY2l0eTogMDsKICBib3JkZXItYm90dG9tOiAjMDAwIHNvbGlkIDBweDsKCn0KCi52aXNpYmxlIHsKICBvcGFjaXR5OiAxOwogIGRpc3BsYXk6IGJsb2NrOwogIGJvcmRlci1ib3R0b206ICM0NDQgc29saWQgMXB4OwogIHBhZGRpbmc6IDEwcHg7Cn0KCi5mbG9hdFJpZ2h0IHsKICBmbG9hdDogcmlnaHQ7Cn0KCi5mbG9hdExlZnQgewogIGZsb2F0OiBsZWZ0Owp9CgoubWVudS1hY3RpdmUgewogIGJhY2tncm91bmQtY29sb3I6ICMwMEU2RkY7Cn0KCiNicmFuY2ggewogIGRpc3BsYXk6IHRhYmxlOwogIG1hcmdpbjogYXV0bzsKICBjb2xvcjogcmVkOwp9CgojaW50ZXJhY3Rpb24gewogIG1hcmdpbi1ib3R0b206IDEwMHB4OwogIHRleHQtYWxpZ246IGNlbnRlcjsKICBib3JkZXItYm90dG9tOiBzb2xpZCAwcHggIzc3NzsKfQoKCi5oYWxmIHsKICBkaXNwbGF5OiBibG9jazsKICB3aWR0aDogNDUlOwp9CgoubWVudSB7CiAgYm9yZGVyOiBzb2xpZCAxcHggIzAwRTZGRjsKfQoKLmluZm9Nc2cgewogIGNvbG9yOiAjYWFhOwp9CgouZXJyb3JNc2cgewogIGNvbG9yOiByZWQ7Cn0KCi53YXJuaW5nTXNnIHsKICBjb2xvcjogeWVsbG93Owp9CgouZGVidWdNc2cgewogIGNvbG9yOiBtYWdlbnRhOwp9CgouTmV3cywKLk1vdmllLAouU2VyaWVzLAouU3BvcnRzLAouS2lkcyB7CiAgYm9yZGVyLWxlZnQ6IHNvbGlkIDJweAp9CgouTmV3cyB7CiAgYm9yZGVyLWNvbG9yOiB0b21hdG8KfQoKLk1vdmllIHsKICBib3JkZXItY29sb3I6IHJveWFsYmx1ZTsKfQoKLlNlcmllcyB7CiAgYm9yZGVyLWNvbG9yOiBnb2xkOwp9CgouU3BvcnRzIHsKICBib3JkZXItY29sb3I6IHllbGxvd2dyZWVuOwp9CgouS2lkcyB7CiAgYm9yZGVyLWNvbG9yOiBtZWRpdW1wdXJwbGU7Cn0KCi8qIExvYWRpbmcgKi8KI2xvYWRpbmcgewogIGxlZnQ6IDBweDsKICB0b3A6IDBweDsKICB6LWluZGV4OiAxMDAwMDsKICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjgpOwogIG1hcmdpbjogYXV0bzsKICB3aWR0aDogMTAwJTsKICBoZWlnaHQ6IDEwMCU7Cn0KCgoubG9hZGVyIHsKICBib3JkZXI6IDVweCBzb2xpZCB0cmFuc3BhcmVudDsKICBib3JkZXItcmFkaXVzOiA1MCU7CiAgYm9yZGVyLXRvcDogNXB4IHNvbGlkICMwMEU2RkY7CiAgYm9yZGVyLWJvdHRvbTogNXB4IHNvbGlkICMwMEU2RkY7CiAgd2lkdGg6IDUwcHg7CiAgaGVpZ2h0OiA1MHB4OwogIC13ZWJraXQtYW5pbWF0aW9uOiBzcGluIDEuMnMgbGluZWFyIGluZmluaXRlOwogIGFuaW1hdGlvbjogc3BpbiAxLjJzIGxpbmVhciBpbmZpbml0ZTsKCiAgcG9zaXRpb246IGZpeGVkOwogIG1hcmdpbjogYXV0bzsKCiAgdG9wOiAwOwogIHJpZ2h0OiAwOwogIGJvdHRvbTogMDsKICBsZWZ0OiAwOwoKfQoKQC13ZWJraXQta2V5ZnJhbWVzIHNwaW4gewogIDAlIHsKICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoMGRlZyk7CiAgfQoKICAxMDAlIHsKICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKTsKICB9Cn0KCkBrZXlmcmFtZXMgc3BpbiB7CiAgMCUgewogICAgdHJhbnNmb3JtOiByb3RhdGUoMGRlZyk7CiAgfQoKICAxMDAlIHsKICAgIHRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7CiAgfQp9" + webUI["html/css/screen.css"] = "bmF2IGltZyB7CiAgZGlzcGxheTogYmxvY2s7CiAgbWF4LWhlaWdodDogMjBweDsKICBtYXgtd2lkdGg6IDIwcHg7CiAgZmxvYXQ6IGxlZnQ7Cn0KCm5hdiBwIHsKICB0ZXh0LWFsaWduOiBsZWZ0OwogIHBhZGRpbmc6IDBweCAzMHB4Owp9CgojbGF5b3V0IHsKICBkaXNwbGF5OiBibG9jazsKICBoZWlnaHQ6IDEwMCU7Cn0KCgoubGF5b3V0LWxlZnQgewogIGRpc3BsYXk6IGJsb2NrOwogIG1pbi13aWR0aDogMTUwcHg7CiAgbWF4LXdpZHRoOiAyMCU7CiAgYmFja2dyb3VuZC1jb2xvcjogIzExMTsKICBoZWlnaHQ6IGluaGVyaXQ7CiAgZmxvYXQ6IGxlZnQ7Cn0KCi5sYXlvdXQtcmlnaHQgewogIGRpc3BsYXk6IGJsb2NrOwogIGJhY2tncm91bmQtY29sb3I6ICM0NDQ7Cn0KCiNtZW51LXdyYXBwZXIgewogIGhlaWdodDogMTAwJTsKfQoKCiNsb2dvIHsKICBkaXNwbGF5OiBibG9jazsKICBtaW4td2lkdGg6IDE4MHB4OwogIHdpZHRoOiAxMDAlOwogIGhlaWdodDogMTAwcHg7CiAgYmFja2dyb3VuZDogdXJsKCIuLi9pbWcvbG9nb193XzYwMHgyMDAucG5nIik7CiAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDsKICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7CiAgYmFja2dyb3VuZC1zaXplOiAxMDAlOwp9CgoKI3BhZ2UgewogIG1heC13aWR0aDogOTUwcHg7CiAgbWFyZ2luOiBhdXRvOwogIGJhY2tncm91bmQtY29sb3I6ICM0NDQ7CgogIC8qCiAgaGVpZ2h0OiAtd2Via2l0LWNhbGMoMTAwJSAtIDEzMHB4KTsKICBoZWlnaHQ6IC1tb3otY2FsYygxMDAlIC0gMTMwcHgpOwogIGhlaWdodDogY2FsYygxMDAlIC0gMTMwcHgpOwogICovCgogIG1pbi1oZWlnaHQ6IC13ZWJraXQtY2FsYygxMDAlIC0gMTIwcHgpOwogIG1pbi1oZWlnaHQ6IC1tb3otY2FsYygxMDAlIC0gMTIwcHgpOwogIG1pbi1oZWlnaHQ6IGNhbGMoMTAwJSAtIDEyMHB4KTsKCgogIGJveC1zaGFkb3c6IDBweCA1cHggNXB4ICMyMjI7Cgp9CgojdWlTZXR0aW5nIHsKICBmbG9hdDogcmlnaHQ7CiAgbWFyZ2luLXJpZ2h0OiAyNXB4Owp9CgojYm94IGlucHV0W3R5cGU9dGV4dF0sCiNib3ggaW5wdXRbdHlwZT1wYXNzd29yZF0gewogIHdpZHRoOiAtd2Via2l0LWNhbGMoMTAwJSAtIDIwcHgpOwogIHdpZHRoOiAtbW96LWNhbGMoMTAwJSAtIDIwcHgpOwogIHdpZHRoOiBjYWxjKDEwMCUgLSAyMHB4KTsKfQoKI2JveCBpbnB1dFt0eXBlPXN1Ym1pdF0gewogIG1hcmdpbjogNTBweCBhdXRvOwp9Cgojc2V0dGluZ3MgewogIGRpc3BsYXk6IGJsb2NrOwogIHBhZGRpbmc6IDEwcHggMTBweDsKfQoKI3NldHRpbmdzIGg1IHsKICBtYXJnaW46IDUwcHggMHB4IDEwcHggMHB4Owp9CgojY29udGVudC1pbnRlcmFjdGlvbiAuc2VhcmNoIHsKICB3aWR0aDogMjAwcHg7CiAgYm9yZGVyOiAxcHggc29saWQgIzAwMDsKICBwYWRkaW5nOiA5cHg7CiAgYmFja2dyb3VuZC1jb2xvcjogIzMzMzsKICBtYXJnaW46IDEwcHg7CiAgZmxvYXQ6IHJpZ2h0OwogIGJvcmRlci1yYWRpdXM6IDNweDsKCn0KCiNteVN0cmVhbXMgewogIHBvc2l0aW9uOiBmaXhlZDsKICBib3R0b206IDBweDsKICBiYWNrZ3JvdW5kLWNvbG9yOiAjMTExOwogIHdpZHRoOiAxMDAlOwogIG1heC13aWR0aDogOTUwcHg7CgogIC8qCiAgbWF4LWhlaWdodDogMTAwcHg7CiAgKi8KICBtYXJnaW4tYm90dG9tOiAwcHg7Cn0KCiNteVN0cmVhbXMgaW1nIHsKICB3aWR0aDogNCU7CiAgcGFkZGluZzogMnB4IDVweDsKICBjdXJzb3I6IHBvaW50ZXI7CiAgZmxvYXQ6IHJpZ2h0Owp9CgovKiBXaXphcmQqLwojYm94IHsKICBiYWNrZ3JvdW5kLWNvbG9yOiAjNDQ0OwogIG1pbi1oZWlnaHQ6IDQwMHB4OwoKICBkaXNwbGF5OiBmbGV4OwogIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOwp9CgojYm94IHAgewogIHBhZGRpbmc6IDEwcHggMHB4Owp9CgojYm94LWZvb3RlciB7CiAgbWFyZ2luLXRvcDogYXV0bzsKfQoKI2JveC1mb290ZXIgewogIG1hcmdpbjogYXV0bzsKICBwYWRkaW5nOiAxMHB4Owp9CgojaGVhZGxpbmUgewogIGJhY2tncm91bmQtY29sb3I6ICMyMjI7CiAgYm9yZGVyLWJvdHRvbTogc29saWQgMnB4ICMyMjI7CiAgdHJhbnNpdGlvbjogYWxsIDAuNXM7CiAgcGFkZGluZzogMTBweCAwcHg7CiAgZGlzcGxheTogYmxvY2s7Cn0KCiNjb250ZW50IHsKICBkaXNwbGF5OiBibG9jazsKICBvdmVyZmxvdzogYXV0bzsKICBwYWRkaW5nOiAxMHB4Owp9CgovKiAtLS0gKi8KCgojY2xpZW50SW5mbywKI2FjdGl2ZVN0cmVhbXMsCiNpbmFjdGl2ZVN0cmVhbXMgewogIGZvbnQtZmFtaWx5OiBtb25vc3BhY2U7CiAgZGlzcGxheTogYmxvY2s7CiAgZm9udC1zaXplOiA5cHg7CiAgYmFja2dyb3VuZC1jb2xvcjogIzExMTsKICBjb2xvcjogIzAwRTZGRjsKICBib3JkZXItYm90dG9tOiBzb2xpZCAwcHg7CiAgOwogIHBhZGRpbmc6IDBweDsKICBsZXR0ZXItc3BhY2luZzogMXB4OwogIG92ZXJmbG93LXg6IGhpZGRlbjsKICBib3JkZXItc3BhY2luZzogNHB4IDRweDsKICBib3JkZXItYm90dG9tOiBzb2xpZCAxcHggIzQ0NDsKfQoKI215U3RyZWFtc0JveCB7CiAgcG9zaXRpb246IHJlbGF0aXZlOwogIHBhZGRpbmc6IDBweDsKICAvKmhlaWdodDogMTAwcHg7Ki8KICBtYXgtaGVpZ2h0OiAxNTBweDsKICBiYWNrZ3JvdW5kLWNvbG9yOiAjMTExOwogIGNvbG9yOiB3aGl0ZTsKICBkaXNwbGF5OiBmbGV4OwogIGp1c3RpZnktY29udGVudDogY2VudGVyOwogIGFsaWduLWl0ZW1zOiBjZW50ZXI7Cn0KCiNvcGVuU3RyZWFtcyB7CiAgd2lkdGg6IDIwcHg7CiAgaGVpZ2h0OiAyMHB4OwogIGN1cnNvcjogcG9pbnRlcjsKICBmbG9hdDogcmlnaHQ7CiAgcG9zaXRpb246IGFic29sdXRlOwogIHJpZ2h0OiAwcHg7CiAgYm90dG9tOiAwcHg7CiAgYmFja2dyb3VuZDogdXJsKCIuLi9pbWcvdG91Y2gucG5nIik7CiAgYmFja2dyb3VuZC1jb2xvcjogIzExMTsKCiAgYmFja2dyb3VuZC1wb3NpdGlvbjogYm90dG9tIHJpZ2h0Owp9CgojYWxsU3RyZWFtcyB7CiAgd2lkdGg6IDEwMCU7CiAgaGVpZ2h0OiAxMDAlOwogIHBhZGRpbmc6IDJweDsKfQoKI2FjdGl2ZVN0cmVhbXMsCiNpbmFjdGl2ZVN0cmVhbXMgewogIG92ZXJmbG93LXk6IHNjcm9sbDsKICB3aWR0aDogNTAlOwogIG1heC1oZWlnaHQ6IDEwMHB4OwogIGZsb2F0OiBsZWZ0Owp9CgojYWN0aXZlU3RyZWFtcyAudGRLZXksCiNpbmFjdGl2ZVN0cmVhbXMgLnRkS2V5IHsKICB3aWR0aDogNzVweDsKfQoKCgoKI2luYWN0aXZlU3RyZWFtcyAudGRLZXkgewogIGNvbG9yOiByZWQ7Cn0KCiNjbGllbnRJbmZvIC50ZFZhbCwKI2xvZ0luZm8gLnRkVmFsLAojYWN0aXZlU3RyZWFtcyAudGRWYWwsCiNpbmFjdGl2ZVN0cmVhbXMgLnRkVmFsLAojbWFwcGluZ0luZm8gLnRkVmFsIHsKICBjb2xvcjogI2FhYTsKICB3aGl0ZS1zcGFjZTogaW5oZXJpdDsKfQoKI2NsaWVudEluZm8gLnRkVmFsTGluaywKI2xvZ0luZm8gLnRkVmFsTGluaywKI2FjdGl2ZVN0cmVhbXMgLnRkVmFsTGluaywKI2luYWN0aXZlU3RyZWFtcyAudGRWYWxMaW5rLAojbWFwcGluZ0luZm8gLnRkVmFsTGluayB7CiAgY29sb3I6IGxpbWU7CiAgd2hpdGUtc3BhY2U6IGluaGVyaXQ7Cn0KCiNib3gtd3JhcHBlciB7CiAgZGlzcGxheTogaW5saW5lLWJsb2NrOwogIHdpZHRoOiAxMDAlOwoKICBvdmVyZmxvdy15OiBzY3JvbGw7Cn0KCiNjb250ZW50X3RhYmxlLAojbWFwcGluZy1kZXRhaWwtdGFibGUsCiNjb250ZW50X3RhYmxlIHsKICBkaXNwbGF5OiB0YWJsZTsKCiAgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTsKICBvdmVyZmxvdy15OiBzY3JvbGw7CiAgd2lkdGg6IDEwMCU7Cn0KCgojY29udGVudF90YWJsZSAuY29udGVudF90YWJsZV9oZWFkZXIgewogIGJhY2tncm91bmQtY29sb3I6ICMzMzM7CiAgaGVpZ2h0OiA1MHB4OwogIGJvcmRlci1ib3R0b206IHNvbGlkIDFweCAjMTExOwogIGJvcmRlci1sZWZ0OiBzb2xpZCAzcHggIzMzMzsKICBjdXJzb3I6IGF1dG87Cgp9CgoKdGJvZHkgewogIHdpZHRoOiAxMDAlOwp9CgoKLnRhYmxlRWxsaXBzaXMgewogIHdpZHRoOiAxNTBweDsKICBvdmVyZmxvdzogaGlkZGVuOwogIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwogIHdoaXRlLXNwYWNlOiBub3dyYXA7Cn0KCiNjb250ZW50X3RhYmxlIGltZyB7CiAgZGlzcGxheTogYmxvY2s7CiAgbWF4LWhlaWdodDogMjhweDsKICBtYXJnaW4tbGVmdDogYXV0bzsKICBtYXJnaW4tcmlnaHQ6IGF1dG87CiAgbWF4LXdpZHRoOiAzMHB4Owp9CgojY29udGVudF90YWJsZSB0ciB7CiAgYm9yZGVyLWxlZnQ6IHNvbGlkIDNweCA0NDQ7CiAgYm9yZGVyLWJvdHRvbTogc29saWQgMXB4ICMzMzM7CiAgY3Vyc29yOiBwb2ludGVyOwp9CgojY29udGVudF90YWJsZSB0cjpob3ZlciB7CiAgYmFja2dyb3VuZC1jb2xvcjogIzMzMzsKfQoKI2NvbnRlbnRfdGFibGUgdGQgewoKICBwYWRkaW5nOiAwcHggMnB4Owp9CgojY29udGVudF90YWJsZSBpbnB1dFt0eXBlPXRleHRdIHsKICB3aWR0aDogODAlOwogIG1pbi13aWR0aDogMzVweDsKICBtYXgtd2lkdGg6IDYwcHg7CiAgYm9yZGVyOiAwcHg7CiAgYmFja2dyb3VuZC1jb2xvcjogIzMzMzsKICBtYXJnaW4tbGVmdDogNXB4OwogIHRleHQtYWxpZ246IGxlZnQ7Cn0KCiNjb250ZW50X3RhYmxlIGlucHV0W3R5cGU9Y2hlY2tib3hdIHsKICBtYXgtd2lkdGg6IDI1cHg7CiAgbWFyZ2luOiBhdXRvOwp9CgoKLnNob3dCdWxrIHsKICBkaXNwbGF5OiBibG9jazsKfQoKLmhpZGVCdWxrIHsKICBkaXNwbGF5OiBub25lOwp9CgojY29udGVudF90YWJsZSB0ci5hY3RpdmVFUEcgewogIGJvcmRlci1sZWZ0OiBzb2xpZCAzcHggbGF3bmdyZWVuOwp9CgojY29udGVudF90YWJsZSB0ci5ub3RBY3RpdmVFUEcgewogIGJvcmRlci1sZWZ0OiBzb2xpZCAzcHggcmVkOwp9CgoKI2xvZ1NjcmVlbiBwIHsKICB3aGl0ZS1zcGFjZTogcHJlOwogIGZvbnQtc2l6ZTogMTBweDsKICAvKgogIGxpbmUtaGVpZ2h0OiAxLjZlbTsKICBmb250LWZhbWlseTogIkFyaWFsIiwgc2Fucy1zZXJpZjsKICAqLwogIGxldHRlci1zcGFjaW5nOiAxcHg7CiAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZTsKICBmb250LXNpemU6IDEycHg7CiAgZm9udC1zdHlsZTogbm9ybWFsOwogIGZvbnQtdmFyaWFudDogbm9ybWFsOwogIGxpbmUtaGVpZ2h0OiAxLjZlbTsKfQoKI3BvcHVwIHsKICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNCk7CiAgcG9zaXRpb246IGZpeGVkOwogIGxlZnQ6IDBweDsKICB3aWR0aDogMTAwJTsKICB6LWluZGV4OiAxMDA7CiAgaGVpZ2h0OiAxMDAlOwogIG92ZXJmbG93OiBzY3JvbGw7Cn0KCiNtYXBwaW5nLWRldGFpbCwKI3VzZXItZGV0YWlsLAojZmlsZS1kZXRhaWwsCiNwb3B1cC1jdXN0b20gewogIGJveC1zaGFkb3c6IDBweCA1cHggNDBweCAjMDAwOwogIG1hcmdpbi10b3A6IDIwcHg7CiAgbWFyZ2luLWxlZnQ6IGF1dG87CiAgbWFyZ2luLXJpZ2h0OiBhdXRvOwoKICBtYXgtd2lkdGg6IDgwMHB4OwogIGJhY2tncm91bmQtY29sb3I6ICMyMjI7CiAgcGFkZGluZzogMTBweDsKICBvdmVyZmxvdzogYXV0bzsKfQoKI3BvcHVwLWN1c3RvbSBoMyB7CiAgdGV4dC1hbGlnbjogY2VudGVyOwp9CgojZmlsZS1kZXRhaWwgaW5wdXRbdHlwZT10ZXh0XSB7CiAgd2lkdGg6IC13ZWJraXQtY2FsYygxMDAlIC0gMjBweCk7CiAgd2lkdGg6IC1tb3otY2FsYygxMDAlIC0gMjBweCk7CiAgd2lkdGg6IGNhbGMoMTAwJSAtIDIwcHgpOwp9CgojbWFwcGluZy1kZXRhaWwgaW1nIHsKICBkaXNwbGF5OiBibG9jazsKICBtYXgtaGVpZ2h0OiAzMHB4OwogIG1hcmdpbi1ib3R0b206IDIwcHg7CiAgbWFyZ2luLWxlZnQ6IGF1dG87CiAgbWFyZ2luLXJpZ2h0OiBhdXRvOwp9CgojcG9wdXAtY3VzdG9tIGlucHV0W3R5cGU9dGV4dF0sCiNwb3B1cC1jdXN0b20gaW5wdXRbdHlwZT1wYXNzd29yZF0sCiNtYXBwaW5nLWRldGFpbCBpbnB1dFt0eXBlPXRleHRdLAojY29udGVudF9zZXR0aW5ncyBpbnB1dFt0eXBlPXRleHRdLAojY29udGVudF9zZXR0aW5ncyBpbnB1dFt0eXBlPXBhc3N3b3JkXSB7CiAgYm9yZGVyOiBzb2xpZCAxcHg7CiAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDsKICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzMzOwogIHRleHQtYWxpZ246IGxlZnQ7CiAgd2lkdGg6IC13ZWJraXQtY2FsYygxMDAlIC0gMjBweCk7CiAgd2lkdGg6IC1tb3otY2FsYygxMDAlIC0gMjBweCk7CiAgd2lkdGg6IGNhbGMoMTAwJSAtIDIwcHgpOwp9CgojcG9wdXAtY3VzdG9tIGlucHV0W3R5cGU9dGV4dF0ubm90QXZhaWxhYmxlIHsKICBib3JkZXItY29sb3I6IHJlZDsKICBjb2xvcjogIzY2NjsKICBjdXJzb3I6IG5vdC1hbGxvd2VkOwp9CgojcG9wdXAtY3VzdG9tIGlucHV0W3R5cGU9dGV4dF06ZGlzYWJsZWQgewogIGNvbG9yOiAjNjY2OwogIGN1cnNvcjogbm90LWFsbG93ZWQ7Cn0KCiNtYXBwaW5nLWRldGFpbC10YWJsZSwKI3VzZXItZGV0YWlsLXRhYmxlIHsKICBkaXNwbGF5OiBpbmxpbmUtdGFibGU7CiAgd2lkdGg6IDEwMCU7Cn0KCiNwb3B1cC1jdXN0b20gdGFibGUsCiNjb250ZW50X3NldHRpbmdzIHRhYmxlIHsKICBkaXNwbGF5OiBpbmxpbmUtdGFibGU7CiAgdGFibGUtbGF5b3V0OiBmaXhlZDsKICB3aWR0aDogMTAwJTsKfQoKCiNtYXBwaW5nLWRldGFpbC10YWJsZSB0ZCwKI3VzZXItZGV0YWlsLXRhYmxlIHRkIHsKICBwYWRkaW5nOiAxMHB4IDBweDsKCn0KCiNtYXBwaW5nLWRldGFpbC10YWJsZSB0ZC5sZWZ0LAojdXNlci1kZXRhaWwtdGFibGUgdGQubGVmdCwKI3BvcHVwLWN1c3RvbSB0ZC5sZWZ0IHsKICB3aWR0aDogMzglOwp9CgouaW50ZXJhY3Rpb24sCiNpbnRlcmFjdGlvbiB7CiAgbWFyZ2luLXRvcDogMjBweDsKICBkaXNwbGF5OiBpbmxpbmUtZmxleDsKICBmbG9hdDogcmlnaHQ7Cn0KCi5pbnRlcmFjdGlvbiBpbnB1dFt0eXBlPWJ1dHRvbl0sCi5pbnRlcmFjdGlvbiBpbnB1dFt0eXBlPXN1Ym1pdF0gewogIGJhY2tncm91bmQtY29sb3I6ICMwMDA7CiAgbWluLXdpZHRoOiAxMDBweDsKICBtYXJnaW46IDBweCAxMHB4OwogIHRleHQtYWxpZ246IGNlbnRlcjsKfQoKI25vdGlmaWNhdGlvbiB7CiAgZGlzcGxheTogYmxvY2s7CiAgcG9zaXRpb246IGZpeGVkOwogIHJpZ2h0OiAwcHg7CiAgaGVpZ2h0OiAxMDAlOwogIHdpZHRoOiAyNTBweDsKCiAgYmFja2dyb3VuZC1jb2xvcjogIzIyMjsKICBib3gtc2hhZG93OiAwcHggMHB4IDIwcHggIzAwMDsKfQoKI25vdGlmaWNhdGlvbiBoNSB7CiAgYmFja2dyb3VuZC1jb2xvcjogIzEyMTIxMjsKICBwYWRkaW5nOiA1cHggMTBweCA1cHggMTBweDsKfQoKI25vdGlmaWNhdGlvbiBwcmUgewogIHBhZGRpbmc6IDBweCAxMHB4IDBweCAxMHB4Owp9Cgojbm90aWZpY2F0aW9uIHAgewogIGZvbnQtc2l6ZTogMTAgcHg7CiAgbWFyZ2luOiAwcHg7CiAgcGFkZGluZzogMHB4IDEwcHggNXB4IDEwcHg7Cn0KCiNub3RpZmljYXRpb24gLmVsZW1lbnQgewogIC8qcGFkZGluZzogMHB4IDVweDsqLwogIG1hcmdpbjogNXB4IDVweDsKICBib3JkZXItcmFkaXVzOiA1cHg7CiAgYmFja2dyb3VuZC1jb2xvcjogIzE4MTgxODsKICBib3JkZXItbGVmdDogMTBweCBzb2xpZCBncmVlbjsKfQoKCkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjIwcHgpIHsKICBib2R5IHsKICAgIHdpZHRoOiAxMDAlOwogICAgYmFja2dyb3VuZC1jb2xvcjogIzQ0NDsKICB9CgogIGgxIHsKICAgIGZvbnQtc2l6ZTogMjZweDsKICAgIGxldHRlci1zcGFjaW5nOiAzcHg7CiAgfQoKICBuYXYgcCB7CiAgICBkaXNwbGF5OiBibG9jazsKICB9CgoKCiAgI2hlYWRlcl9jb25maWcgewogICAgZGlzcGxheTogYmxvY2s7CiAgICBoZWlnaHQ6IDEwMHB4OwogICAgYmFja2dyb3VuZDogdXJsKCIuLi9pbWcvbG9nb193XzYwMHgyMDAucG5nIik7CiAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0OwoKICAgIGJhY2tncm91bmQtc2l6ZTogMzAwcHggMTAwcHg7CiAgfQoKICAjc2NyZWVuTG9nIHsKICAgIG1hcmdpbi1sZWZ0OiAzMDBweDsKCiAgICB0cmFuc2l0aW9uOiBub25lOwogICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7CiAgICBib3JkZXItYm90dG9tOiBzb2xpZCAxcHggdHJhbnNwYXJlbnQ7CiAgICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAjMjIyOwogIH0KCiAgI3NldHRpbmdzIHsKICAgIC8qCiAgICBoZWlnaHQ6IC13ZWJraXQtY2FsYygxMDAlIC0gMTAwcHgpOwogICAgaGVpZ2h0OiAtbW96LWNhbGMoMTAwJSAtIDEwMHB4KTsKICAgIGhlaWdodDogY2FsYygxMDAlIC0gMTAwcHgpOwogICAgKi8KICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgIG92ZXJmbG93OiBhdXRvOwogIH0KCgogIC5zY3JlZW5Mb2dIaWRkZW4gewogICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMHB4LCAwcHgpOwogIH0KCgogICNib3ggewogICAgZGlzcGxheTogYmxvY2s7CiAgICBtaW4taGVpZ2h0OiA1MDBweDsKICAgIG1heC13aWR0aDogNTAwcHg7CiAgICBtYXJnaW46IDEwcHggYXV0bzsKICAgIGJhY2tncm91bmQtY29sb3I6ICM0NDQ7CiAgICBib3gtc2hhZG93OiAwcHggNXB4IDVweCAjMjIyOwoKICAgIGRpc3BsYXk6IGZsZXg7CiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogIH0KCn0=" webUI["html/img/BC-QR.jpg"] = "/9j/4AAQSkZJRgABAQAASABIAAD/4QBYRXhpZgAATU0AKgAAAAgAAgESAAMAAAABAAEAAIdpAAQAAAABAAAAJgAAAAAAA6ABAAMAAAABAAEAAKACAAQAAAABAAAAuqADAAQAAAABAAAAugAAAAD/7QA4UGhvdG9zaG9wIDMuMAA4QklNBAQAAAAAAAA4QklNBCUAAAAAABDUHYzZjwCyBOmACZjs+EJ+/8AAEQgAugC6AwERAAIRAQMRAf/EAB8AAAEFAQEBAQEBAAAAAAAAAAABAgMEBQYHCAkKC//EALUQAAIBAwMCBAMFBQQEAAABfQECAwAEEQUSITFBBhNRYQcicRQygZGhCCNCscEVUtHwJDNicoIJChYXGBkaJSYnKCkqNDU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6g4SFhoeIiYqSk5SVlpeYmZqio6Slpqeoqaqys7S1tre4ubrCw8TFxsfIycrS09TV1tfY2drh4uPk5ebn6Onq8fLz9PX29/j5+v/EAB8BAAMBAQEBAQEBAQEAAAAAAAABAgMEBQYHCAkKC//EALURAAIBAgQEAwQHBQQEAAECdwABAgMRBAUhMQYSQVEHYXETIjKBCBRCkaGxwQkjM1LwFWJy0QoWJDThJfEXGBkaJicoKSo1Njc4OTpDREVGR0hJSlNUVVZXWFlaY2RlZmdoaWpzdHV2d3h5eoKDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uLj5OXm5+jp6vLz9PX29/j5+v/bAEMAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAf/bAEMBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAf/dAAQAGP/aAAwDAQACEQMRAD8A/v4oAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgD/0P7+KAP5/wD/AILmf8FzP+HL/wDwy8B+y9/w0mP2k/8AhdmB/wALsPwe/wCEL/4U8fhLn5j8Jfih/b//AAkH/C0fTRP7F/sL/mIjUQtkAfgH/wARzn/WLz/zdb/8k2gA/wCI5z/rF5/5ut/+SbQAf8Rzn/WLz/zdb/8AJNoAP+I5z/rF5/5ut/8Akm0Af08/8EWP+CrP/D4H9lrx9+0uPgMf2ef+EI+Pvin4GjwSPiofi1/aX/CN/Dn4W+Pj4n/4SH/hXXww+xm8PxOGkf2J/Yl19k/sU3/9sv8A2h9isAD3/wD4KiftzH/gmz+wt8cv21B8Lv8Ahc4+C5+Ghb4a/wDCbD4cf8JJ/wALG+MPgD4TjHjFfB/jwaSdJPjv/hISD4X1L7f/AGadNLWH24ahaAHwH/wQz/4Lmf8AD6D/AIahB/Ze/wCGbB+zZ/wpPI/4XYfjD/wmn/C4T8WsfMPhL8L/AOwP+Ef/AOFXemt/21/bv/MOGnFb0A/oAoAKAP5Af+Cov/B1h/w7Z/bq+OX7FZ/YOHxpPwWHwyP/AAsr/hqA/Dk+Iz8Rvg94B+LH/Inf8M7ePf7J/sr/AITv/hHcjxPqAvTp/wDaObEX32GyAPgH/iOc/wCsXn/m63/5JtAH9PP/AARY/wCCrP8Aw+B/Za8fftLj4DH9nn/hCPj74p+Bo8Ej4qH4tf2l/wAI38Ofhb4+Pif/AISH/hXXww+xm8PxOGkf2J/Yl19k/sU3/wDbL/2h9isAD3//AIKiftzH/gmz+wt8cv21B8Lv+Fzj4Ln4aFvhr/wmw+HH/CSf8LG+MPgD4TjHjFfB/jwaSdJPjv8A4SEg+F9S+3/2adNLWH24ahaAH8g//Ec5/wBYvP8Azdb/APJNoA/r7/4bm/41af8ADy3/AIVf/wA2B/8ADc3/AApb/hNTt/5N1/4X/wD8Kv8A+Fj/APCH4zj/AIpH/hOP+EEx/wAx7/hE8/8AEjoA/kE/4jnP+sXn/m63/wCSbQAf8Rzn/WLz/wA3W/8AyTaAD/iOc/6xef8Am63/AOSbQAf8Rzn/AFi8/wDN1v8A8k2gD7+/4Jdf8HWH/Dyb9ur4G/sVj9g4fBY/GkfE0/8ACyv+GoD8Rj4cPw5+D3j74sf8id/wzt4C/tb+1f8AhBP+EdyfE+niyOof2jm+Fj9hvQD+v6gAoA//0f7+KAP4A/8Ag+c/5xef93rf++lUAfv3/wAE9v8Agnx/wS0/4da/sP8Ax0+Of7D/AOwE279gL9mr4s/GL4x/Fn9mn9nb5f8AjHbwZ4w+IHxI+JPxB8YeC1AAA1fxN4x8Y+JtXJ/4/wDXNdv2zeXtAC/8csn/AFgD/wDOd1AB/wAcsn/WAP8A853UAfjF/wAHcn7Ef7GP7Nv/AATc+Cnjn9nX9kb9l74A+NtU/bd+HHhPVPGPwX+APwp+FfinU/C158CP2ldX1DwxfeIPA3g/Q9Vu9Bu9V0PQ9XutGurttOvNR0TTb5rU3lhYlQD6h/4Mqv8AlFj8e/8As/74p/8ArO37K1AH8of/AAWp/wCHzv8Aw0H/AMFGf+Fwf8PPP+HfH/DX3xy/sf8A4WX/AMNXf8Mcf8Ks/wCGltU/4Ub/AGf/AMJR/wAWS/4QH+0v+EB/4VV9n/4kP2//AIRH/hEv9M/sOgD9Pf8Agzc/aw/Za/Zg/wCHjQ/aX/aU+AX7Pf8AwnH/AAx+fBP/AAvL4yfDn4Snxd/wjK/tP/8ACQ/8IuPH/iXQRr39g/2/4dXWxo7Xv9jHXNG+3G1/tCydgD8Zf23P+Cmn/BSHx7/wUi/a68D/ALKf/BQT9t3xl4K8Zftu/H7wn+zd4N/Z6/at+PHiLwt4t8LeI/jx4o0f4PeGPgf4f+G/ju80rXdC13Sbvw5pXw20jwJZ3enalYXmhWHhSyezewRwDd/46m/+s/n/AJ0RoA/u3/4I1f8ABPj4W/HH/gm5+zf8Uf8Agp3+xB8PvjB+3J4n/wCFv/8AC7/iL+3p+zX4d+IP7VviI6N8d/ihoHw3X4reLv2hfBmq/GLVRpXwe0vwHofgX/hML+6+wfDjT/CGn6AI/CtjoaUAf5V/wV/Z++Pf7SXirUPAv7OfwO+L/wAf/G2l+HrzxXqng74L/DXxl8U/FWneFrO/0vSL/wAU3/h/wNouu6raaFZ6tr+jaTdaxd2f9n2eoa1pli12t5f2SsAf6eX/AAaN/s+fH39m3/gm98avA37RXwP+LvwA8bar+298RvFel+DfjT8NvGXwr8Vap4Vu/gP+zVo9j4nsfD/jnRNC1W70G91XQ9a0q11m2szp13qOi6jYpeC8sL1VAP248WftA/8ABN/9qbxX4k/Yk8c/HL9iH9ovxtrXiDV/CfjL9kTxZ8SvgP8AF7xXrPir4Tahc+KfEPhjxP8AALWNb8QarqOv/DfVvA194m1jRtV8Itf+C9Q8I3euX1lp15oD3lgAY/8Aw6e/4JZ/9I1P2Av/ABDr9nb/AOdvQBzP/BTTwn4X8B/8EjP+CgngTwN4a0LwX4I8Gf8ABOX9q7wl4O8HeE9H07w14V8K+FfDf7M/jzRfDvhjwx4f0a0tdK0Lw9oel2tnpGi6NpNnZ2FhYWVnY2NnFZRolAH+eX/waN/s+fAL9pL/AIKRfGrwN+0V8D/hF8fvBOlfsQ/EXxXpfg340/Dbwb8VPCul+KrT48fs1aPY+J7Hw/450TXdJtNes9K1zWtKtdZtrMajZ6drWo2KXhs7+9VgD+5b4o/Cf/g2++B/jnXPhb8avht/wRE+EPxN8LjTR4n+HfxR8IfsIeAPHfhsa1pGm+IdF/t7wj4q03SvEGk/2poGq6PrWlC/sLQXuj6lp2o2O+yvrN2AOC/45ZP+sAf/AJzuoA+nPgr+xF/wQ5/aT8K6h46/Zz/ZH/4JSfH/AME6X4gvfCepeMfgv8A/2Qfin4V0zxVZ6fpOr33he+8Q+BvCGvaVZ69aaVruj6vd6PdXYv7Sw1vTL6SzFnfWTMAfwm/8EqvCfhPwB/wd6eIfA3gbw34f8F+CfBf7b3/BUbwn4O8HeEtGsPDvhXwp4W8OfDj9r3SfD/hjwzoGj21ppWgaFoOlWdnpGkaNpNnZ2Gn6daWdhY2UVmqKoB/qLUAFAH//0v7+KAP4A/8Ag+c/5xef93rf++lUAfv5/wA6sn/eAP8A+B3UAf5A9ABQB/p+f8Hqv/KLH4Cf9n/fCz/1nb9qmgA/4Mqv+UWPx7/7P++Kf/rO37K1AH5Bf8F9P+Dj4ftEfDz/AIKDf8Elj+xt/wAIePD3x/1f4F/8L/P7Q518Xn/DL/7U+g6z/wAJSfhUPghof2b/AITo/CT7J/Y3/CxpP+EX/t8v/bXiAabsvwD8gP8Aghn/AMEM/wDh9B/w1CT+1D/wzYf2bP8AhSfP/Ckx8Yf+E0/4XCPizj5R8Wfhf/YH/CPj4Xeut/21/bv/ADDjpxa/APA/2TvgYP2X/wDgvh+zT+zSPFX/AAnA/Z4/4K+fBz4Gf8Jt/Yn/AAjf/CXn4S/tneH/AAAPFH/COnU9e/sA6/8A2AdX/sca5rv9jm8Ww/trUDF9tlAP9nSgD+QH/gqL/wAHWH/Dtn9ur45fsVn9g4fGk/BYfDI/8LK/4agPw5PiM/Eb4PeAfix/yJ3/AAzt49/sn+yv+E7/AOEdyPE+oC9On/2jmxF99hsgD+Ij/gix/wAFWf8Ahz9+1L4+/aXHwG/4aG/4Tf4BeKfgaPBI+Kg+Ev8AZv8AwknxG+Fvj4+J/wDhIf8AhXXxP+2fYx8MRpH9if2Ja/a/7aN//bKf2f8AYr8A/p5/4jnP+sXn/m63/wCSbQAf8MNf8O8v+OtP/haH/C4P+Fgf8Zy/8MA/8IV/wr/+x/8Ah57/AMUd/wAKv/4ap/4S3xp9r/4Ul/w1n/a3/Ccf8M22X/Cx/wDhXn2L/hFPAf8Awln23w8AH/Ec5/1i8/8AN1v/AMk2gD+nj9rH45n9qD/ggf8AtLftLHwr/wAIOf2h/wDgkH8Y/jmPBP8Abf8Awkh8ID4tfsZeIPH58L/8JGNM0H+3/wCwP7fGkf2w2h6F/bAs2vzouniUWUQB/ET/AMGVP/KUz49/9mA/FT/1on9lSgD4A/4Oj/8AlOt+3J9P2Zv/AFj39n6gD8AKAP8AT8/4Mqv+UWPx7/7P++Kf/rO37K1AH4A/8E1P+VyT4i/9n/f8FYv/AFB/2yaAP9PqgAoA/9P+/igD+AP/AIPnP+cXn/d63/vpVAH7+f8AOrJ/3gD/APgd1AH+QPQAUAf6fn/B6r/yix+An/Z/3ws/9Z2/apoAP+DKr/lFj8e/+z/vin/6zt+ytQB+nXxY/wCDcj/gjN8cPit8SfjT8Uf2OB4n+Jvxf8f+Mvij8RfEg/aC/ap0f/hIfHfxA8Q6l4v8X6+dG8PfG7S/D2l/2p4g1W/v/wCytH0rTdFsPtf2LTtOs7BbSzQA/nF/4Ll/8c2P/DL3/DlX/jDD/hs7/hdf/DSu7/jIn/hZP/DOv/Cpf+FN/wDJ2H/C+P8AhDv+EN/4Xt8VMf8ACBf8Ip/b/wDwlX/FV/27/YXh7+wwD9AP+HXX7Cv/AA61/wCH1P8Awo0f8PM/+GAv+Hof/DS3/CzfjBj/AIbp/wCGd/8Ahq//AIXn/wAKf/4WF/woDH/DQP8AxXv/AArX/hVn/Cntv/FJ/wDCAf8ACC/8U9QB8ff8Gwv/AAWV/wCCkf8AwUQ/b5+LfwX/AGxP2jz8YPhl4Z/ZD8efFHQPDf8Awp74D+ADY+O9G+M/7P8A4Q03Xv7Y+Fvwu8F6/c/ZfD/jXxLZnSrvVbrQ5DqH22809r+w0+9sgD+cP/g6P/5TrftyfT9mb/1j39n6gD9v/wDg56/4I1f8E3P+Cd/7A3wk+NH7Hf7OA+D/AMTfE37XngP4Xa/4k/4XD8ePH4vvAms/Bj9oDxfqWg/2P8Uvij400C2+1eIPBXhq8Gq2mlWuuRjT/sVnqC2F/qFlegB/wbC/8Eav+Cbn/BRD9gb4t/Gj9sT9nAfGD4m+Gf2vPHnwu0DxJ/wuH48eABY+BNG+DH7P/i/TdB/sf4W/FHwXoFz9l8QeNfEt4dVu9KutckGofYrzUGsLDT7KyAP7dfiT+wZ+yl8YP2ONM/4J/fEb4UHxD+yPo/gD4TfC+w+Ew8d/EbSVt/AnwOvvBuo/C/Qv+E90PxjpnxOn/wCEXu/AfhG4XVbnxlJrOtnRseIL7UlvtRF+Af55X/B1h/wS6/YU/wCCbX/DB3/DFXwNHwW/4XQP2oT8Ss/E34wfEb/hJP8AhXX/AAzr/wAIcD/wtj4h+OxpJ0f/AIT3xZk+HRpx1D+0f+JkL37BY/YgD+vr/nVk/wC8Af8A8DuoA/kF/wCDKn/lKZ8e/wDswH4qf+tE/sqUAfAH/B0f/wAp1v25Pp+zN/6x7+z9QB+AFAH+n5/wZVf8osfj3/2f98U//Wdv2VqAPwB/4Jqf8rknxF/7P+/4Kxf+oP8Atk0Af6fVABQB/9T+/igD+AP/AIPnP+cXn/d63/vpVAHsH7Ef/B3J/wAE3f2bv2MP2Rv2dfHHwV/be1Txr8Af2XvgD8FvGWp+FPhz8B7vwrqfin4V/Crwp4G8QX/he+1j9pTQ9VvNBu9V0O8utGutV0XRdRu9Paze+06xvWawQA+oP+I1X/glj/0QX9v7/wANX+zt/wDRVUAH/Ear/wAEsf8Aogv7f3/hq/2dv/oqqAPwh/4OEf8Ag4S/Yx/4KzfsY/DP9nX9nT4Z/tOeCvGngz9p3wX8atV1T41+C/hR4a8LT+FvDXwn+Nfgi+0/Tr7wN8bPiNqtx4gk1X4j6LdWdnc6NZWDWNpqTPqSXaWdnfgH7vf8GVX/ACix+Pf/AGf98U//AFnb9lagD8Af+Can/K5J8Rf+z/v+CsX/AKg/7ZNAH39/wfOf84vP+71v/fSqAP6mP2IvjV4V/Zs/4IdfskftF+OrDxDqvgn4Af8ABKP4B/GjxjpnhOz0+88Uan4V+Ff7IXhTx14gsfC9hrOqaFpN5rt5pOhXlro1pq+saJYXd+1nHf6np9mTfIAeAf8ABML/AIOFf2Mf+Csnx88Xfs7fs6fDH9p/wZ418G/CLXPjPqeqfGfwV8KvDvhifwt4d8ZeAfA19Y2N74G+NfxH1SfXDqvxH0a7trW60ay0/wDs+01J21Jb2Oysr8A8h/bz/wCDnv8AYI/4J4ftYfFf9jz41fCL9r7xL8Tvg+PA/wDwkeu/C/wF8GNY8C3o8f8Aw28IfFLRhoGo+Lf2gPA3iC6FtoHjLSbPVPt3hqwC61a39nZ/bbJbK/uwD8Bv2K/2K/in/wAGnXxS1z/gon/wUS174ffGX4K/GfwDqn7FXhnwx+xZqviH4jfFSw+KXxH1/wAL/HHRtf1/R/jp4W/Zv8HWngC08L/s5eN7HV9WsvG+s6/aa/qHhWxtPCl9p19rOt6GAf2Mf8Ewv+CnnwE/4KxfAbxf+0V+zp4R+Lvg7wR4M+LmufBjU9M+NGh+DPDviq48V+HfBvgLxxqF7Y2Hgb4g/EbSZtBbSviNolraXV1rVlqH9o2epo2mLZR2N7dgH8E//BNT/lck+Iv/AGf9/wAFYv8A1B/2yaAPv7/g+c/5xef93rf++lUAfv5/zqyf94A//gd1AH+fV/wb1f8ABT34Bf8ABJ79s34nftF/tF+E/i94x8FeMf2YPG3wX0rTPgxoXgzxD4pi8U+I/ir8FPHNjqGoWPjr4hfDnS4NCXSvhzq9rdXVprN5qA1C90yNNNlsmvb2wAP7Gf8AiNV/4JY/9EF/b+/8NX+zt/8ARVUAH/Ear/wSx/6IL+39/wCGr/Z2/wDoqqAD/iNV/wCCWP8A0QX9v7/w1f7O3/0VVAH80f8AwRR+NfhX9pT/AIOoPC/7RfgWw17SvBPx8/af/wCCifxr8HaV4stNOsfFeneFfip8Ev2qfG2gaf4msNH1PX9KtdftNK16zttZtdJ1vW9Osr5L0WF/qFiiXrAH+qxQAUAf/9X+/igD8ff+CrH/AARY/Zb/AOCwH/Chv+GlvHnx98D/APDPB+KY8E/8KN8VfDrw1/aQ+LR+HY8Rf8JP/wAJ/wDCX4nm7Nl/wrLw8dFOkf2J9j+2619v/tASWQsgD8hf+IKr/glj/wBF6/b+/wDDqfs7f/Qq0AH/ABBVf8Esf+i9ft/f+HU/Z2/+hVoAP+IKr/glj/0Xr9v7/wAOp+zt/wDQq0AH/EFV/wAEsf8AovX7f3/h1P2dv/oVaAP3a/4Jhf8ABMP4Cf8ABJ34DeL/ANnX9nTxd8XfGPgjxn8XNc+M+p6n8aNc8GeIvFVv4r8ReDfAXgfULKxv/A3w++HOkw6CulfDnRLq0tbrRb3UP7RvNTdtTayksbK0APj74H/8G937GPwB/wCClmt/8FTPBvxN/ad1L9oPXvi/+0H8abvwd4j8Z/Ci7+DkXir9pPSPibo/jjT7fQNM+CuieNU0DS7b4o+Im8J2x+Ib6hY3VloR1vU9dWzvk1AA9h/4Ksf8EWP2W/8AgsB/wob/AIaW8efH3wP/AMM8H4pjwT/wo3xV8OvDX9pD4tH4djxF/wAJP/wn/wAJfiebs2X/AArLw8dFOkf2J9j+2619v/tASWQsgDe/bd+CvhX9mz/gh1+1v+zp4Fv/ABDqvgn4Af8ABKP4+fBfwdqfiy80+88Uan4V+Ff7IXivwL4fvvFF/o2l6FpN5rt5pOhWd1rN3pGj6JYXd+15JYaZp9mRYoAfw0/8GVP/AClM+Pf/AGYD8VP/AFon9lSgD+rn9vP/AINhP2CP+Ch/7WHxX/bD+NXxd/a+8NfE74wDwP8A8JHoXwv8e/BjR/AtkPAHw28IfC3RjoGneLf2f/HPiC1FzoHg3SbzVPt3iW/Da1dX95Z/YrJrKwtAD+Cv/gp7/wAHCv7Z3/BWT4B+Ef2dv2i/hj+zB4M8FeDfi7ofxn0zVPgx4K+Kvh3xPP4p8O+DfH3gaxsb698c/Gv4j6XPoZ0r4j6zd3Nra6NZah/aFpprrqS2Ud7ZX4B/Yz/wZVf8osfj3/2f98U//Wdv2VqAP0Z+B/8Awb3fsY/AH/gpZrf/AAVM8G/E39p3Uv2g9e+L/wC0H8abvwd4j8Z/Ci7+DkXir9pPSPibo/jjT7fQNM+CuieNU0DS7b4o+Im8J2x+Ib6hY3VloR1vU9dWzvk1AA/nm/4PnP8AnF5/3et/76VQB/Ux+xF8FfCv7Sf/AAQ6/ZI/Z08dX/iHSvBPx/8A+CUfwD+C/jHU/Cd5p9n4o0zwr8VP2QvCngXxBfeF7/WdL13SbPXbPSddvLrRrvV9H1uwtL9bOS/0zULMGxcA/Gf/AIgqv+CWP/Rev2/v/Dqfs7f/AEKtAB/xBVf8Esf+i9ft/f8Ah1P2dv8A6FWgA/4gqv8Aglj/ANF6/b+/8Op+zt/9CrQAf8QVX/BLH/ovX7f3/h1P2dv/AKFWgD67/YM/4NhP2CP+CeH7WHwo/bD+Cvxd/a+8S/E74Pjxx/wjmhfFDx78GNY8C3o8f/Dbxf8AC3WTr+neEv2f/A3iC6FtoHjLVrzS/sPiWwC61a2F5efbbJb2wuwD+kGgAoA//9b+/igD+IL/AIPIv2sP2pf2YP8Ah3KP2aP2lPj7+z2fHB/bA/4Tb/hRvxk+I3wkHi7/AIRlv2YP+Ed/4Sj/AIQDxLoP9vf2D/b3iJdE/tg3v9jDXNZ+w/Zf7QvWYA/jJ+FP/BQ7/gsL8cfin8Nfgp8Lv+Chn7fvif4n/F34geD/AIX/AA68ND9tj43aN/wknjv4g+IdM8I+ENB/trxB8V9J0LShq2u6tZWf9ra3rOn6LYm8+16jfWNmt1eoAfXn7c2t/wDBxp/wTX/4Ve37av7XH7fnwWb40Hxufhp/xsS8UfEf/hI/+Fcf8IefGH/JJ/2iPHY0kaT/AMJ34TX/AIqFtO/tAaj/AMS3+0BY6ibIA/P/AP4ex/8ABUz/AKSWft//APiYv7RP/wA8igD/AFFf+DhH4Hf8FK/j9+xn8MfB3/BLLW/i/oX7QemftPeDPEnjG8+C37QWkfs2+Kpfg3a/Cn41aV4gttR8c6z8SfhbbanoB8aa58O2ufCS+Ir27vr9dM1oaJdLoLX1gAf51n7avxs/4L9f8E8PinoXwW/bG/bU/b9+EPxM8TeANK+J+h+GR+3/APEDx/8AbPAus+IPFPhHT9fGsfC347eNNAtzda94L8S2f9lXur2utp/Zwvr3T1sL2xu70A+gPiV4J/4Ob/g/+xzpv/BQD4i/tN/t/eHP2RtZ8AfCf4n6f8Wm/wCCk2o6v5/gX443/g+x+Fuv/wDCBeH/ANpbVPibbjxRd+PfCFodLuvBya3ov9s7tf0/TEsdQayAPPf2Gdb/AODjT/gpR/wtBv2Kv2uP2/PjS3wXPgg/Ev8A42JeKPhx/wAI5/wsf/hMD4P/AOSsftEeBBqw1b/hBPFi/wDFPNqP9njTv+Jl/Z4vtON6Af6SXi34EftQeP8A/ghx4j/Zk8daZ4g8aftneM/+CUus/Anxlo3iz4gaB4k8U+LP2nvEf7IV18PvEGmeJ/ihrPie68L67r2vfFa6u7TWvH2reM7zQtR1G8vPEV74qbTnfWWAP5p/+DYX/gjV/wAFI/8Agnf+3z8W/jR+2J+zgfg/8MvE37Ifjz4XaB4k/wCFw/Afx+b7x3rPxn/Z/wDF+m6D/Y/wt+KPjTX7b7V4f8FeJbw6rd6Va6HGdP8AsV5qC39/p9legH5Cf8HG/wDwUI/b3+B//BZj9sn4X/Bb9uH9r74P/DPwx/wz5/wjXw6+F37Svxn+H/gTw+NZ/ZY+COv6x/wj/hDwj400rQNKOqa/qmr6zq32GxtPt+t6jqGpXxa9vbt6APyD/bU/4I1f8FJP+Cd3wt0L40/th/s4f8Kf+GPiXx9pvwv0LxI3xf8AgN8Qje+Oda8PeKPFumaD/Y/ww+KPjbX7b7RoHgvxHfnVrrSLPRY/7P8AsV1fJfX2nWV6AfMfwW/bZ/bO/Zq8LXvgb9nX9rv9p74B+CdW1668Xap4N+Cfx9+K/wALPCuo+Kb3TtM0bUPE2oeHvA/i7QdKuvEF3pWhaHpV7rN1aPqF3YaLp1g121pp9kigH+zT/wAEy/Fvivx9/wAE3v8Agn3468deJfEHjPxr4z/Yh/ZR8XeMvGXi7WtQ8R+KvFfinxF8B/AWr6/4n8T6/q91eatr+ua/q15eavrGsare3eoajqF3eX19ePeOzOAfx1f8Hzn/ADi8/wC71v8A30qgD+cX/gk9/wAFB/2+f+G+P+CavwL/AOG3/wBrz/hSf/DXv7HPwo/4U5/w0r8Zx8LR8LP+Fz/Dnwh/wrf/AIV9/wAJn/wh/wDwgf8Awiv/ABTP/CHf2P8A2D/YP/Ej/s/7AfsdAH9y/wDwdyftB/H39m3/AIJvfBXxz+zr8cPi78APG2q/tvfDnwpqnjL4LfEnxl8K/FWqeFbv4D/tK6xfeGL7xB4G1vQtVu9BvdV0PRdVutGubw6dd6jounXz2YvLCyZQD5g/4I1f8HH3/BPP4Pf8E3P2bvh1/wAFAf29fiBq/wC114eHxf8A+Fs6j8T/AIf/ALWvxy8dzrrPx2+KHiDwCdf+KFh8LfHtr4oNv8MtU8HWulfZfGGsjRNGXT9Ac2T6Y+n2AB4B/wAEav2IP+Dlb4Pf8FJP2b/iN/wUC8Z/te6t+yP4fPxe/wCFtWHxP/4KDeFfjj4GuDrHwI+KGgeAF1/4Yaf+0v49uvFIt/ibqXg270n7J4R1n+xNb/s/XyNPTTG1GwAPmH/g7k/bc/bO/Zt/4KR/BTwN+zr+1z+1D8AfBOqfsRfDjxZqng74L/H74rfCvwtqfim8+O/7Sukah4nvvD/gbxhoelXevXelaHoekXWs3Vo2o3mnaJpti10bOwsQoB/Rx/wSD/4LifsC/tN/CT9gz9jq0/ay8QfFf9u3Xv2X/hX4b+IPhfxZ8Of2ibvxT4k+Mvww/Z6svFHxxuPE3xe8a/DeDwZ4h8QWtz4O8eazq/i688e6haeK7+xvbzT9d1y/1Sy/tIA/ojoAKAP/1/7+KAP4A/8Ag+c/5xef93rf++lUAfxFfsofHRf2X/2o/wBmn9pU+Fv+E4/4Z4+PvwY+Of8AwhP9u/8ACNjxg3wl+Ivh/wAfnwv/AG+NK18+Hzr/APYH9kf20dF1saP9ta/Oi6jsFkwB+vP/AAXM/wCC5n/D6D/hl4D9l7/hmw/s2f8AC7OP+F2D4w/8Jp/wuEfCbPzH4TfC/wDsD/hHx8LvTW/7a/t3/mHHTgt+Aff/APwS7/4NTx/wUm/YV+Bv7ag/by/4UuPjQfiaP+Faj9mD/hYo8Nj4dfGHx/8ACb/kcP8AhonwH/ax1X/hBP8AhIsf8I1YfYv7RGm/6d9h/tC9AP7dv+C0/wDwVZ/4c/fsteAf2lz8Bj+0N/wm/wAffC3wNPgk/FQ/CX+zf+Ek+HPxS8fDxP8A8JD/AMK6+J/2w2Z+GJ0j+xP7Etftf9tC/wD7ZT+z/sV+Af5hv/Baf/gqz/w+B/al8A/tLn4Df8M8/wDCEfALwt8DT4JPxUHxa/tL/hG/iN8UvHw8T/8ACQ/8K6+GH2P7YPicdI/sT+xLr7J/Yov/AO2X/tD7FYAH39+0p/wcfD9of/gjh4a/4JKn9jb/AIRAeHvgF+yf8C/+F/n9of8At77Z/wAMv698G9Z/4Sn/AIVSPgjoP2YeOf8AhUv2X+xT8R3/AOEXGvbv7c8Qf2aUvwD9e/8Agxj/AOcof/dlP/v2tAH0B+1f/wAHkf8AwzB+1L+0t+zX/wAO5j45/wCGd/j98ZPgX/wmo/a+PhoeMP8AhUvxG8QeAf8AhJz4f/4Zg1/+wT4g/sD+1/7G/tvXDov2wWH9tajtN64B8/8A/Ec5/wBYvP8Azdb/APJNoA/kJ/4Ki/tzD/gpN+3V8cf21R8Lj8GD8aB8NC3w2PjZviP/AMI1/wAK5+D/AIB+E4/4rFfB/gP+1v7XHgT/AISIg+F9O/s86h/ZxOofYRf3YB+vf/Baj/g4+/4fAfss+Av2av8AhjUfs8/8IP8AH3wt8cx41/4aIHxaOqf8I38Ovij4C/4Rj/hHh8EPhitm10fif/bH9sjW7w2f9if2edEf7d9vsgA/4Ir/APBuD/w+A/ZZ8e/tK/8ADZQ/Z5/4Qf4++KfgYfBX/DO4+LR1T/hG/h18LvHv/CT/APCQn43/AAxWza6PxP8A7H/sY6JeGz/sT+0Brb/bvsFkAf08/wDBLv8A4LlnR/26fgf/AMG/w/ZgFz/wyz/wsz9hr/hrI/GryP8AhOv+GBfhB4+8M/8ACzz8B/8AhU7jwv8A8LY/4UL9s/4QYfGPX/8AhBz4t+yf8Jb4uGhG814A+/v+C5n/AAQz/wCH0H/DLxH7UP8AwzYP2bP+F2YP/Ckz8Yf+E0/4XCfhLn5T8Wvhf/YH/CP/APCrvXW/7a/t3/mHDTg16Af5xf7J3wMH7L//AAXw/Zp/ZpHir/hOB+zx/wAFfPg58DP+E2/sT/hG/wDhLz8Jf2zvD/gAeKP+EdOp69/YB1/+wDq/9jjXNd/sc3i2H9tagYvtsoB/bx/weq/8osfgJ/2f98LP/Wdv2qaAP8wOgD+/z/iOc/6xef8Am63/AOSbQAf8MN/8RgX/ABss/wCFo/8ADvH/AIUj/wAYNf8AClv+EJ/4az/4Sn/hWf8Axf7/AIWh/wALG/4S/wDZq/sT+3P+Gmf+ER/4Qf8A4QPW/wCzv+EH/t3/AISu/wD+Eg/sXQAD7+/4Jdf8Gp//AA7Z/bq+Bv7ag/bxHxpPwWHxNH/Ctf8Ahl8/Dk+Iz8Rvg94++E//ACOP/DRPj3+yf7K/4Tv/AISLB8MagL06f/Z2LEX326yAP6/qACgD/9D+/igD+IL/AIPIv2T/ANqX9p//AIdyn9mj9mv4+/tCHwOf2wP+E2/4Ub8G/iN8Wx4R/wCEmb9mD/hHf+Eo/wCEA8Na9/YP9vf2D4ibRP7YFl/bI0PWfsP2r+z71VAP4a/Fv/BMv/gpD4B8KeJfHXjv/gn3+294M8FeDPD+teLvGXjLxd+yj8ePDvhbwp4V8Oafdav4g8T+J9f1fwBZ6ToGh6BpNpeatrGr6teWmn6dp9neX19epZq7oAfDFAH+vz/wa4f8oKf2G/r+0z/62F+0DQB+nX7an/DAn/CrtD/4eK/8Mg/8KT/4WBpP/CM/8Nq/8KZ/4VX/AMLT/wCEe8V/2L/wj/8AwvL/AIpT/hPv+EU/4Tr+yvsP/FQf2B/wlf2H/iXf2zQB/nV/8HCP7EfhT9pX9s/4ZeOf+CMH7JGgfHz9lzS/2YvBXhLx54x/4Jg/APTfin8A9O+Plj8VfjbrHinw14u1/wDZR8I658O7X4wWfw7134V6t4i0bWLxfG9p4J1vwHfahY/2FqHh53APvv8A4KFeEv8AgkZ4D/4N0rDwJ4X8Of8ABOTwX/wU78GfswfsJeE/iN4N0LRf2ZvDf7eHhT4++GvHv7OWjftLeGPG+gafbWf7QGhfGHQDafErSPjdo2t2dn43sDaeO7Lx5ar5WvIgB/JR+wz/AMPTP+Lof8O0v+G/f+ZK/wCF0/8ADDP/AA0V1x4w/wCFcf8AC0P+FA89f+E8/wCEG/4S7v8A8Jb/AGD8v9tUAdH+xH4T8VePP+Cuf7I3gb9q3w1r3jTxv40/4KN/ALwn+0l4O/aG0fUPEninxT4p8RftM+FNH+L/AIY+N/h/4j29zquu+Ide1S68R6P8StF8eWN7fX9/e63Y+K7R7yS/RgD/AFbvjV+xF/wQ5/Zs8K6f46/aM/ZH/wCCUnwA8E6p4gsvCem+MfjR8A/2QfhZ4V1PxVeafq2r2Phex8Q+OfCGg6Vea9d6VoWsavaaPa3Zv7uw0TU76OzNnY3rKAf5dv8AwXo/4ZY/4ew/tV/8MVf8KB/4Zn/4sb/wrT/hl3/hXf8AwojH/DN3we/4TH/hB/8AhU//ABQWP+E+/wCEt/4ST/hHuf8AhLv7d/tH/idf2lQB+cnwV/Z++Pf7SXirUPAv7OfwO+L/AMf/ABtpfh688V6p4O+C/wANfGXxT8Vad4Ws7/S9Iv8AxTf+H/A2i67qtpoVnq2v6NpN1rF3Z/2fZ6hrWmWLXa3l/ZKwB/p5f8Gjf7Pnx9/Zt/4JvfGrwN+0V8D/AIu/ADxtqv7b3xG8V6X4N+NPw28ZfCvxVqnhW7+A/wCzVo9j4nsfD/jnRNC1W70G91XQ9a0q11m2szp13qOi6jYpeC8sL1VAP4iv+Cmn7Pv/AAUh/Za/4KQf8FBf22vBHwN/be/Z08FaL+29+1f4t8Hftd+FPhr8dvhD4V0fwv8AFn48ePPC3h/xN4Y+PujaHoGk6boXxI0rxzZeGdI1nSvFq2HjTT/F1rodjeahZ+IEs78A8f8AgX+1h/wXx/agHik/s0ftL/8ABXr9of8A4QYaIfG3/CjPjH+2b8Wh4QPiT+1v+Ee/4Sf/AIQDxJrx0Ftf/sHWzorasLP+2W0PWvsH2r+zr7YAf6Gf/Dvb4Xf8OYv+F6f8MQ/D/wD4ejf8Owv+Fs/8Lj/4Zr8O/wDDfX/DfP8Awyf/AMJb/wALH/4WB/whX/DQn/DXn/DQn/FUf8Jh/a//AAub/hcv/E9/tD/hOv8ATaAPwk/4N7v2e/8AgpD+0r+2d8TfAv8AwWf+B37b/wAfP2XdK/Zh8Z+LPAng7/gp98Nfjt8U/gJpvx9sfit8E9H8L+JvCOgftXaHrvw6tPjBa/DvXfinpPh3WdItF8a2vgnWvHun6feroWoeIY5QD+x3/h09/wAEs/8ApGp+wF/4h1+zt/8AO3oA/wA0f/gjV/wT4+KXwO/4KR/s3/FH/gp3+xB8Qfg/+w34Y/4W/wD8Lv8AiL+3p+zX4i+H37KXh0az8CPihoHw3X4reLv2hfBmlfB3Sjqvxh1TwHofgX/hML+1+3/EfUPCGn6AJPFV9oaUAfp7/wAFqP8AhqX/AIak8Bf8Q6v/AAvz/hiX/hQXhb/hZ/8Aw5Y/4WN/wyx/w1P/AMLG+KP/AAm3/Cff8MMf8Wm/4aB/4VP/AMKS/wCEm/4SL/i4v/Cuf+FUf2j/AMU9/wAIjQB/dr/wT3/4Wl/wwL+xB/wvT/hYP/C7P+GQ/wBmv/hcX/C2f+Eh/wCFpf8AC1P+FMeDP+Fg/wDCx/8AhMP+Kq/4Tz/hK/7Y/wCEw/4Sb/ioP+Eg/tD+3P8AiYfbaAPsWgAoA//R/v4oAKAP4wf+CsP/AAc+/sEf8Kr/AOClf/BOo/Cb9rw/Gz/hAf2xv2KT4oHgD4Lj4WH4pDw98Rvgede/tn/hoH/hMB4CPir/AE3+2f8AhBf7fGg/6afCLaiP7HoA/jH/AOCU/wDwRY/ak/4LAf8AC+f+GafHnwC8D/8ADPH/AAqweNv+F5eKviL4a/tI/FofEQeHf+EY/wCEA+EvxPF2LL/hWXiE60dX/sT7H9t0X7B/aBkvRZAH9fH7Lv8AwWn/AGXP+DeD4F+Bv+CO/wC2p4C+PvxN/aX/AGQT4k/4WX44/Zc8LfDjxp8CtcHx+8Ya7+1B4O/4QfxR8V/ix8EvHuqf2d4B+NnhPSPEo8Q/DHwqbHxZY69p+nHXdDstP8Qa0Afs3/wcK/8ABML4+/8ABWH9jL4Yfs6fs6eLfhD4O8a+Dv2n/BPxo1XU/jPrvjPw94Vl8LeHPhV8a/A19p+n33gX4ffEbVJ9dfVPiNo91bWt3o1np50+y1KR9SjvVsrK9AD/AIN6v+CYXx9/4JPfsZfE/wDZ0/aL8W/CHxj418Y/tP8Ajb40aVqfwY13xn4h8KxeFvEfwq+Cngax0/UL7x18PvhzqkGupqnw51i6ubW00a808afe6bImpSXrXtlZAH8ZX/Bc/wD4N7/2zfgHr/8AwUO/4KneM/ib+zDqX7Puv/tPfEP41Wng7w340+Kt38ZIvC37Sn7TyaP4G0648P6r8FdD8GDXtMufin4ebxbbr8RGsLC1stdOjajrzWlgl+AeP/8ABuD/AMFqP2Wf+CQH/DZQ/aU8A/H3xuf2hv8Ahnf/AIQv/hRvhb4c+Jv7N/4VJ/wvT/hIR4mHj74r/C77Gbz/AIWb4fGjf2R/bgvPsetf2gdP2WJvwD79/wCHLP7U3/DUn/ERX/wn3wB/4Yl/4X9/w+n/AOFYf8JR8RP+GqP+GWf+Fj/8Nzf8IF/whX/CqP8AhU//AA0B/wAKm/4p3/hGf+F3f8K6/wCFh/8AEl/4Wv8A8It/xVdAHkH/AAcI/wDBwl+xj/wVm/Yx+Gf7Ov7Onwz/AGnPBXjTwZ+074L+NWq6p8a/Bfwo8NeFp/C3hr4T/GvwRfafp194G+NnxG1W48QSar8R9FurOzudGsrBrG01Jn1JLtLOzvwD4i/YM/4NhP29/wDgof8Asn/Cj9sP4K/F39kHw18MfjAfHH/COaF8UPHvxn0fx1ZHwB8SfF/wt1k6/p3hL9n/AMc+H7U3Ov8Ag3VrzS/sPiW/LaLdWF5efYr1r2wtADyH/g3q/wCCnvwC/wCCT37ZvxO/aL/aL8J/F7xj4K8Y/sweNvgvpWmfBjQvBniHxTF4p8R/FX4KeObHUNQsfHXxC+HOlwaEulfDnV7W6urTWbzUBqF7pkaabLZNe3tgAf2M/wDEar/wSx/6IL+39/4av9nb/wCiqoA+ff2ov+C0/wCy5/wcP/Avxz/wR3/Yr8BfH34ZftL/ALXx8N/8K08cftR+Fvhx4L+BWhj4A+MNC/ag8Y/8Jx4o+FHxY+Nvj3S/7R8A/BPxZpHhoeHvhj4qN94svtB0/UToWh3uoeINFAPAf2G/+OP7/haP/Dyv/i93/Dw3/hCP+FMf8MNf8XM/4Rf/AIZL/wCEv/4WR/ws/wD4X9/wzJ/YX9uf8NK+BP8AhBf+ER/4Tj+0f7G8Wf29/wAI/wD2fon9vAH6Af8AEar/AMEsf+iC/t/f+Gr/AGdv/oqqAD/iNV/4JY/9EF/b+/8ADV/s7f8A0VVAB/xGq/8ABLH/AKIL+39/4av9nb/6KqgD8wP+Cy//AAc9fsD/APBRD/gm5+0f+x38FvhJ+154X+JvxgX4Qf8ACN6/8UfAfwY0bwJZDwB8dvhb8U9YGval4R/aA8c+ILX7ToPg3VrLSvsXhq+Da3dadZ3v2Gxa91G0AP0//wCDKr/lFj8e/wDs/wC+Kf8A6zt+ytQB+jPwP/4OEf2Mfj9/wUs1v/gln4N+GX7Tum/tB6D8X/2g/gtd+MfEfgz4UWnwcl8Vfs2aR8TdY8cahb6/pnxq1vxq+gapbfC7xEvhO5Pw8TUL66vdCGt6ZoS3l8+ngH7x0AFAH//S/v4oAKAP8cr4r/CzwL8cP+DkH4k/Bb4o6D/wlPwy+MH/AAW88Y/Cz4i+HP7T1bRf+Ej8B/ED9vDUfCHi7QTrHh7U9M1/SjqugapfWP8Aa2i6pputWBvBfafqNnfraXagH+pj+wz/AMEvP2FP+CbB+J//AAxV8Df+FLj40/8ACEf8LKH/AAs34v8AxGPiM/Dn/hMG8HAj4sfELx4dJOkjx14tH/FPHTvt/wDaWdTF8bHTTZAH+YV/wdH/APKdb9uT6fszf+se/s/UAf3cf8HPf7eP7V//AATw/YI+Efxq/Y7+Kw+EHxO8TftfeAvhfr3iT/hBfht8QPtngXWPgx+0B4t1HQBo/wAUvB/jPw/ai68QeC/DV7/alnpVprajT/slpqC2V9fWV2AH/BsJ+3j+1f8A8FD/ANgj4ufGr9sT4rD4v/E7wz+1949+F+g+JP8AhBfht8P/ALH4F0f4Mfs/+LdO0A6P8LfB/gzw/dC18QeNPEt7/al5pV3rbDUPsl3qDWVjY2VoAfxE/wDBan/gst/wUk+L/wC0J/wUY/4J/wDxG/aOHiH9kfR/2vfjf8L7D4SH4QfAjSfI8DfA79pfVdQ+F+gDx9oPwv0z4m3K+F7vwH4Quzqt34yfW9b/ALFA1/UdTW+1BL8A+vf+DU//AIJdfsKf8FJf+G8f+G1fgaPjT/wpcfsvH4a4+Jvxg+HP/CN/8LF/4aK/4TED/hU/xD8CDVjrH/CBeE8HxENROn/2d/xLRZfb777aAf6Ov/DLvwK/4Zb/AOGK/wDhB/8AjGb/AIUF/wAMtf8ACtP+Ek8Y/wDJCv8AhXH/AAqn/hB/+Ey/t/8A4T7P/CBf8U7/AMJL/wAJZ/wleP8AiY/2/wD27/p9AH5Df8QuX/BCn/oxv/zZb9sD/wCiCoA/kF/4Kif8FRP26/8AgjD+3V8cv+Caf/BNL43/APDNv7E37Np+GR+CvwVPw0+D/wAYf+EM/wCFwfB/wD8fviP/AMXG+Pvw8+KPxb1//hIPiz8UfHfi/wD4q/x5rw0ca5/YmhLp3hbTtF0PTQD5A/4NhP2Dv2UP+Ch/7e/xc+Cv7Ynwpb4v/DHwz+yF49+KGg+G/wDhOviT8P8A7H460f4z/s/+EtO186x8LfGHgzxBdG18P+NPEtl/Zd5qt3ojHUPtd3p7XtjY3toAH/Bz3+wd+yh/wTw/b3+EfwV/Y7+FLfCD4Y+Jv2QvAXxQ17w3/wAJ18SfiB9s8dax8Z/2gPCWo6+NY+KXjDxn4gtTdeH/AAX4asv7Ls9VtNEU6f8Aa7TT1vb6+vbsA89/4NcP+U637Df0/aZ/9Y9/aBoA/wBPX9ub/gl5+wp/wUnPww/4bV+Bv/C6B8Fv+E3/AOFaj/hZvxf+HJ8OH4jf8Ie3jEAfCf4heAzqx1YeBfCQ/wCKhOo/YP7NzpgsTfakb0A+Bf8AiFy/4IU/9GN/+bLftgf/AEQVAH84f/Bz1/wRq/4Juf8ABO/9gb4SfGj9jv8AZwHwf+Jvib9rzwH8Ltf8Sf8AC4fjx4/F94E1n4MftAeL9S0H+x/il8UfGmgW32rxB4K8NXg1W00q11yMaf8AYrPUFsL/AFCyvQD+EGgAoA/0/P8Agyq/5RY/Hv8A7P8Avin/AOs7fsrUAftx8Nf+CNP/AATd+EH7Y+pf8FAPh1+zgfDv7XOsfED4s/E/Ufi0vxg+O+ribx18cbDxhp/xR8Qf8IF4g+KGqfDO2bxRa+PPF9oNKtfBq6Lon9s7tB07TWsdOeyAP1EoAKAP/9P+/igD+X//AIOPv+CK/wC1N/wV/wD+GNT+zX4++AXggfs8/wDDRH/Caf8AC8vFPxG8M/2l/wALb/4UX/wjx8MnwD8KPij9sFn/AMKy8QHWf7X/ALDNn9s0X+zxqG++FgAfyT/tB/8ABo3/AMFIv2bfgF8cP2ivHPxq/Yh1TwR8AfhF8TPjT4y0vwp8Rvjxd+KdU8LfCzwZrnjnxBYeGLDV/wBmrQ9LvNeu9K0O9tdGtdV1rRdNu9RNnHfalY2Re9QA/Vz/AIMY/wDnKH/3ZT/79rQB+3f7ef8Awc9/sEf8E8P2sPiv+x58avhF+194l+J3wfHgf/hI9d+F/gL4Max4FvR4/wDht4Q+KWjDQNR8W/tAeBvEF0LbQPGWk2eqfbvDVgF1q1v7Oz+22S2V/dgH6P8A/BT3/gp58BP+CTvwG8IftFftF+Efi74x8EeM/i5ofwY0zTPgvofgzxF4qt/FfiLwb498cafe31h45+IPw50mHQV0r4c63a3d1a61e6h/aN5piLpjWUl9e2gAf8Ewv+CnnwE/4KxfAbxf+0V+zp4R+Lvg7wR4M+LmufBjU9M+NGh+DPDviq48V+HfBvgLxxqF7Y2Hgb4g/EbSZtBbSviNolraXV1rVlqH9o2epo2mLZR2N7dgH8o3jr/gmF8e/wDgjn/wVD/aB/4OEf2mvF3wi8dfsZ/D39p/9qL40a38NPgPrvjDxN+0/deFP20fEvxN+C3wu0/TPBXxA+H3ww+FFx4g0PxR+0X4FvvH1rd/Gex0/TdC07xXe+HtT8WX9louna4AfjF/wcff8FqP2Wf+Cv8A/wAMaj9mvwD8ffBB/Z5/4aI/4TT/AIXl4W+HPhn+0v8Ahbf/AAov/hHh4ZHgH4r/ABR+2Gz/AOFZeIBrP9r/ANhiz+2aL/Z51DffGwAP7eP+dWT/ALwB/wDwO6gD/Pq/4N6v+CnvwC/4JPftm/E79ov9ovwn8XvGPgrxj+zB42+C+laZ8GNC8GeIfFMXinxH8Vfgp45sdQ1Cx8dfEL4c6XBoS6V8OdXtbq6tNZvNQGoXumRppstk17e2AB8w/wDBZX9tT4Wf8FEf+Ckn7R/7YfwW0Lx/4Y+GHxgHwgbw3oPxQ03w9o3jqy/4V78Bfhh8MNY/t3TPCfijxzoFsbnXvBWsXOk/YfEmob9HutPur37FfPe6faAH92//ABGq/wDBLH/ogv7f3/hq/wBnb/6KqgD92v8AgmF/wU8+An/BWL4DeL/2iv2dPCPxd8HeCPBnxc1z4Manpnxo0PwZ4d8VXHivw74N8BeONQvbGw8DfEH4jaTNoLaV8RtEtbS6utastQ/tGz1NG0xbKOxvbsA5z/gsr+xX8U/+CiP/AATb/aP/AGPPgtrvgDwz8T/jAfhAvhvXvihqXiHRvAtl/wAK9+PXww+J2sHXdT8J+F/HOv2wutB8Faxa6T9h8N6hv1i5061vfsVi97qFoAfwlf8AEFT/AMFTP+i9/sA/+HV/aJ/+hRoA/ob/AGI/+DhH9jH9mrxX+yN/wRg8c/DP9p7VP2ovgHr/AMA/+CYHjHx34T8F/Cm++AWo/Hz4Wal4V/ZR1/xd4Z8Uax8bNB+Il38H7r4iaFeaxo3iHVfhZovja68EtY3+oeA7DXWfw+gB+3v/AAU9/wCCnnwE/wCCTvwG8IftFftF+Efi74x8EeM/i5ofwY0zTPgvofgzxF4qt/FfiLwb498cafe31h45+IPw50mHQV0r4c63a3d1a61e6h/aN5piLpjWUl9e2gB/FP8AtRf8EWP2o/8Ag4f+Onjn/gsR+xX4++AXwy/Zo/a+/wCEb/4Vp4H/AGo/FPxG8F/HXQj8AfB+hfsv+MR448L/AAo+FHxt8B6X/aPj74J+K9X8Nf8ACPfE7xSL7wnfaDqGo/2Hrl7qHh/QwA/Zd/4IsftR/wDBvB8dPA3/AAWI/bU8ffAL4m/s0fsg/wDCSf8ACy/A/wCy54p+I3jT4666fj94P139l/wcPA/hf4r/AAo+CXgPVP7O8ffGzwpq/iX/AISH4neFhY+E7HXtQ07+3NcstP8AD+uAH6/f8Rqv/BLH/ogv7f3/AIav9nb/AOiqoA+u/wBgz/g57/YI/wCCh/7WHwo/Y8+Cvwi/a+8NfE74wDxx/wAI5rvxQ8BfBjR/AtkPAHw28X/FLWRr+o+Ev2gPHPiC1FzoHg3VrPS/sPhq/Da1dWFnefYrJr2/tAD+kGgAoA//1P7+KAP5f/8Ag4+/4LUftTf8EgP+GNR+zX4B+AXjcftDf8NEf8Jp/wALy8LfEbxN/Zv/AAqT/hRf/CPDwyPAPxX+F32MXn/CzfEA1n+1/wC3DefY9F/s86fsvjfgH6+fCYH/AIKTf8EtfhoPjmD4VH7fX7APg7/hcR+Ev/EiXw1/w1P+zvprfED/AIVqPF58dHSTpH/Ceax/wh3/AAk//CajT/smn/263iHZeregHgP/AASn/wCCLH7Lf/BH/wD4Xz/wzT48+Pvjj/hoc/CweNv+F5eKvh14l/s0fCU/EQeHf+EY/wCEA+EvwwNob3/hZviE60dX/tv7Z9i0X7B/Z4jvRegHyB+3n/wbCfsEf8FD/wBrD4r/ALYfxq+Lv7X3hr4nfGAeB/8AhI9C+F/j34MaP4Fsh4A+G3hD4W6MdA07xb+z/wCOfEFqLnQPBuk3mqfbvEt+G1q6v7yz+xWTWVhaAH4DfsV/tqfFP/g7F+KWuf8ABOz/AIKJaD8Pvg18Ffgx4B1T9tXwz4n/AGLNK8Q/Dn4qX/xS+HGv+F/gdo2ga/rHx08U/tIeDrvwBd+F/wBo3xvfavpNl4I0bX7vX9P8K31p4rsdOsdZ0TXAD+xj/gmF/wAEw/gJ/wAEnfgN4v8A2df2dPF3xd8Y+CPGfxc1z4z6nqfxo1zwZ4i8VW/ivxF4N8BeB9QsrG/8DfD74c6TDoK6V8OdEurS1utFvdQ/tG81N21NrKSxsrQA+Iv+Do//AJQU/tyfX9mb/wBbC/Z+oA/yBqAP9pT9iL4K+Ff2k/8Agh1+yR+zp46v/EOleCfj/wD8Eo/gH8F/GOp+E7zT7PxRpnhX4qfsheFPAviC+8L3+s6Xruk2eu2ek67eXWjXer6PrdhaX62cl/pmoWYNi4B+M/8AxBVf8Esf+i9ft/f+HU/Z2/8AoVaAD/iCq/4JY/8ARev2/v8Aw6n7O3/0KtAB/wAQVX/BLH/ovX7f3/h1P2dv/oVaAP3a/wCCYX/BMP4Cf8EnfgN4v/Z1/Z08XfF3xj4I8Z/FzXPjPqep/GjXPBniLxVb+K/EXg3wF4H1Cysb/wADfD74c6TDoK6V8OdEurS1utFvdQ/tG81N21NrKSxsrQA/jG/bc/4O5P8AgpF+zd+2d+1z+zr4G+Cv7EOqeCfgD+1D8ffgt4O1TxX8Ofjxd+KdT8LfCv4q+K/A3h+/8UX2j/tKaJpV5r15pOh2d1rN1pWjaJp13qBvHsdNsbJlsUAPmD/iNW/4Kmf9EE/YB/8ADVftE/8A0V1AH6+/8OWf2Wf+GW/+Iiv/AIT74/f8Ntf8KB/4fT/8Kw/4Sj4d/wDDK/8Aw1N/wrj/AIbm/wCEC/4Qr/hVH/C2P+Gf/wDhbP8AxTv/AAjP/C7v+Fi/8K8/4kv/AAtf/hKf+KroA+Qv2K/21Pin/wAHYvxS1z/gnZ/wUS0H4ffBr4K/BjwDqn7avhnxP+xZpXiH4c/FS/8Ail8ONf8AC/wO0bQNf1j46eKf2kPB134Au/C/7Rvje+1fSbLwRo2v3ev6f4VvrTxXY6dY6zomuAHn/wC1F/wWn/aj/wCDeD46eOf+CO/7FfgH4BfE39mj9kH/AIRv/hWnjj9qPwt8RvGnx110/H7wfoX7UHjE+OPFHwo+K/wS8B6p/Z3j742eK9I8Nf8ACPfDHwsLHwnY6Dp+o/25rllqHiDXAD+nv/g6P/5QU/tyfX9mb/1sL9n6gD/IGoA/f/8A4NcP+U637Df0/aZ/9Y9/aBoA/wBfmgAoA//V/v4oA/gD/wCD5z/nF5/3et/76VQB/Qz4T8WeK/AP/Bsp4b8c+BfEniHwZ418F/8ABCfR/Fvg7xj4S1m/8O+KvCnirw7/AME/7bV9A8T+Gdf0e6tNV0HXfD+rWdpq+j6xpF7aX+n6hZ2l/YXq3iqyAH8tH/BuD/wX0+Hf7PA/bJP/AAVq/wCCg/x+8RDxf/wzwf2f/wDheesftS/tP/Y/7B/4XoPisfC40fQPi0fA/wBo/tz4c/20bz+wf+En2aJ5f9pf2A/2AA9B/bx8B/8ABeH/AIKX/tYfFf8Abb/4I0/G39r3xn/wTa+Nh8Cj9m7xH8Lv24Zf2XvAup/8K5+G3g/4TfF/+wfgZ8UPjv8ABLx74E+x/HjwF8U7LVV1n4aeGP8AhJ9bs7/xfp39uaLr9h4h1QA/KH4K/wDBvz/wcnfs1+K7/wAc/s5/A34v/AHxtqugXfhLU/GPwX/bi/Zy+FninUvC97qGlaxf+F7/AMQ+Bf2m9D1W70G81bQ9G1a70i7vTp11f6LpmoSWhvNOsigB/Tx/wTC/4KTT/wDBHP4CeLv2ZP8Ag4R/an+L3w9/bO8dfF7Xfjr8NNF+NXiX4z/to+Kbv9mHxL4P8B/D7wdqth8UPgxB+0T4X0DQLj4sfDH40Wlp4BvfGmm67YX1lqfiG+8KWNh4s03XNfAPIP8AgvP/AMF6P+CUH7aP/BKD9qr9mr9mn9qofEj41/EgfA5vBXgk/A79o/weNZ/4Q/8AaP8Ag74+8Q58Q+Pfg74W8Iab/Zvhbwt4g1bGr+IbD7Z9g+w2H26/vbLT7oA+Av8Agzc/ZP8A2Wv2n/8Ah40f2l/2a/gF+0J/wg//AAx+PBP/AAvL4N/Dn4tHwj/wky/tP/8ACQ/8IufH/hrXhoP9vf2B4dbWzo62X9snQ9G+3C6/s+yRQD8hf2sP2tv+CmNp/wAFSv2k/wBiL9jv9sP9r7wD4ft/2/vjH+yv+y1+zv8ACf8Aan+J3wf+FvgnR4v2h/EHwm+CHwX+Gvhiw+I3g/4Y/C/wF4Zsx4Z8DeD/AA7Zjwr4F8EaDZadp9kdD0HT0FkAf1sf8G937I3/AAXx+Af7Z/xN8Y/8FTfFf7T2v/s+6j+zF4z8N+DrP41ftueHv2k/CsPxjvPit8FdV8P3Gn+B9I+PPxRudK18eCtE+IgtfFz+HbOzsbB9S0P+3LZ9dWxvwD+eT/g43/4KEft7/A//AILMftk/C/4Lftw/tffB/wCGfhj/AIZ8/wCEa+HXwu/aV+M/w/8AAnh8az+yx8Edf1j/AIR/wh4R8aaVoGlHVNf1TV9Z1b7DY2n2/W9R1DUr4te3t29AHQf8G93/AAXQ1/4Bftm/E7xj/wAFTf8Agof+07r37P2pfsw+NPDfg6z+NXxD/af/AGk/CsXxku/it8FdU0C5sPAujJ8U7jS9fHgzSfiItt4uk8O2FtZWDaloo121bXlsdQAP09/4Ke+Ov+Cof/BYz4+eEf2m/wDg3u/aB/af+If7GHgb4Q6F8CviXrPwV/ah8T/sXeFbX9p/w34x8efEHxjpeofC74z/ABN/Z18Ua9r9v8KPih8F7u78f2fgzUND1GwvtM8P2XivUL/wnqWjaGAfgN/wRL+AOpeP/wDg4V+FP7P/AO3n8P8AQPjV42j+L/7aHhr9pzwJ8fYfC3x80/xT8ZfBPwK/aLvvG1z8QLrxDdeOvC/xJ1/TvizoFz4ifxfc3via11HxRYW3iux1vUbw2mpMAf6av/Dp7/gln/0jU/YC/wDEOv2dv/nb0AfHf/D5D/gib/wtP/h1x/wt7wB/wln/AAsH/hgb/hlH/hl343/8Kt/4SX/hIv8Ahnf/AIZ6/s//AIUZ/wAKQ/4QH+0/+Lc/Yv7V/wCFVf2B+7+3/wDCJ/6ZQB8gf8Fp/wDglt8XtJ/Zc8Azf8EKP2XPh/8AsyftdS/HzwrD8RPHv7Fc/wAEf2Gvinq/7OP/AArn4ot4v8I6/wDFnw/r/wAEbvX/AAHefE9fhBq+r/Dl/F1/aa1ruheFPER0G+k8JpqOigHwH+y5+0r/AMEcP2QfgV4E/Z4/4OAPDvwC8Xf8FcPh9/wkx/a01/8Aai/ZQ1/9uH476ifFXjHX/G/wHHjn9qDw38G/2gtE+J4tv2afEvwYsfDQsvi74qPgvwlZ+H/hzd/2FeeE7vwvooB+A/8AwQa/aw/ak/bg/wCCr/7Kv7L37an7Svx8/bA/Zm+Jw+OK/Ev9nf8Aai+MfxH+P/wJ+IX/AAhX7OHxh+IPg8eOfhD8WPEfi/wF4r/4RTx/4Q8J+OvDX/CR+HL/APsLxb4X0HxVposdb0TTb60AP7NP20/G3/Bsh/wTu+KOh/Bb9sP9mX9gL4QfE3xN4A034n6H4ZP/AATasPiF9t8C614h8U+EtM1v+2Phh+zV400C2+1a94L8S2J0m61e01lBp/22709LG+0+9vQA/YM/bf8A+Daj4v8A7V3wp+HX/BP/AMGfshaV+1v4gbxyfhLffC7/AIJ8eJ/gd47g/sn4b+MNd8fHQPifqX7NXgC08LG4+Gem+MbTVvtfi/RjrmiNqGgKdQk1NdNvwD+kKgAoA//W/v4oA/gD/wCD5z/nF5/3et/76VQB+/n/ADqyf94A/wD4HdQB/kD0Af1//wDBLv8A4OsB/wAE2f2Ffgb+xWP2Df8AhdA+C5+Jp/4WUP2n/wDhXQ8SD4i/GHx/8Wf+RP8A+GdvHn9knSv+E7/4R3P/AAkt/wDbf7OGpf6D9u/s+yAPv3/iOc/6xef+brf/AJJtAB/ww3/xGBf8bLP+Fo/8O8f+FI/8YNf8KW/4Qn/hrP8A4Sn/AIVn/wAX+/4Wh/wsb/hL/wBmr+xP7c/4aZ/4RH/hB/8AhA9b/s7/AIQf+3f+Erv/APhIP7F0AAP+IGP/AKyh/wDmlP8A+VlQAf8AKl7/ANZJv+Hkv/dnX/CmP+GOP/EpP+Fif8LH/wCGpv8AqR/+EU/4Qb/mav8AhKv+JAAfzD/snfHMftQf8F8P2af2lh4V/wCEHH7Q/wDwV8+Dnxz/AOEJ/tv/AIST/hED8Wv2zvD/AI/Hhf8A4SI6ZoP9vnQP7fOkf2wND0L+2DZrf/2Lp5l+xRAH+zpQB/ID/wAFRf8Ag1P/AOHk37dXxy/bUP7eI+Cx+NI+GQ/4Vr/wy+fiMfDh+HPwe8A/Cf8A5HH/AIaJ8Bf2t/av/CCf8JFgeGNPFkdQ/s7F8LH7degH8RH/AARY/wCCU3/D4H9qXx9+zQPjz/wzz/whHwC8U/HIeNh8Kx8Wv7S/4Rv4jfC3wCfDH/CPf8LF+GH2P7YPicNX/tv+27r7J/YpsP7Gf+0PttgAf08/8Nyf8Qfv/GtP/hV3/Dw7/hd3/Gcv/C6f+E2/4ZM/4Rb/AIWZ/wAWB/4Vf/wrn/hEP2lf7b/sP/hmb/hLv+E4/wCE80T+0f8AhOP7C/4RSw/4R/8AtrXwD7+/4Jd/8ENDrH7dPwP/AODgEftPi2/4am/4WZ+3L/wyafgr5/8Awgv/AA318IPH3ib/AIVgfjx/wthB4o/4VP8A8L6+x/8ACcj4OaB/wnB8Jfa/+ES8IjXTZ6CAff3/AAXM/wCC5n/Dl/8A4ZeA/Ze/4aTH7Sf/AAuzA/4XYfg9/wAIX/wp4/CXPzH4S/FD+3/+Eg/4Wj6aJ/Yv9hf8xEaiFsgD/MK/4bl/42l/8PLf+FX/APN/v/Dcv/Cl/wDhNR1/4aJ/4X//AMKv/wCFjf8ACH5/6lH/AITn/hBP+o9/wieP+JHQB/Xz/wARzn/WLz/zdb/8k2gD+Qn/AIKi/tzD/gpN+3V8cf21R8Lj8GD8aB8NC3w2PjZviP8A8I1/wrn4P+AfhOP+KxXwf4D/ALW/tceBP+EiIPhfTv7POof2cTqH2EX92Af17f8ADjT/AIhsP+N1H/DUP/DZ/wDwxnz/AMM1/wDCkv8AhnX/AIWR/wANFf8AGJ//ACWH/hbnx2/4Q3/hDf8Ahe3/AAnn/JKvFX9v/wDCL/8ACK/8SP8Atz+39NAP5hv+C0//AAVZ/wCHwP7UvgH9pc/Ab/hnn/hCPgF4W+Bp8En4qD4tf2l/wjfxG+KXj4eJ/wDhIf8AhXXww+x/bB8TjpH9if2JdfZP7FF//bL/ANofYrAA/r3/AOCBf/BuCf2d/iH/AME+f+CtI/bJ/wCEwPiH4AaR8dP+FAj9ngaAbP8A4ag/ZY13Rv8AhFh8Vj8btc+0f8IL/wALb+1/2yPhzH/wlH9gBP7F0A6j5mngH9v1ABQB/9f+/igD8/v25f8Ah1n/AMWv/wCHlv8AwwF/zO3/AApb/hub/hnXp/xSH/Cx/wDhV/8Awv7jOP8AhA/+E5/4RLn/AJFH+3uf7FoA89/4eDf8EYP+FWf8KM/4bf8A+CYf/Ckv+EA/4VR/wpv/AIaX/ZS/4VZ/wqz/AIR//hD/APhWv/Cv/wDhMf8AhFv+EB/4RX/imv8AhD/7I/sH+wf+JJ/Z/wDZ3+hUAfIX/HLJ/wBYA/8AzndQAf8AHLJ/1gD/APOd1AB/xyyf9YA//Od1AH6d/sV/8MCf8Ku1z/h3V/wyD/wpP/hYGrf8JN/wxV/wpn/hVf8AwtP/AIR7wp/bX/CQf8KN/wCKU/4T7/hFP+EF/tX7d/xUH9gf8Ip9u/4l39jUAf5d/wC3H+23/wAFcfGn/BVv9uj9nX9lv9rn/go14r1i1/be/bB8JfCn4D/AP4+ftMa/qNn4W8BfGD4n3Nv4a+H3ww+H/i66urfQvB3gvw9eXMejeG9GFh4e8LaJdSLZ2Wiac5QA+YPjp+yf/wAF8f2oB4WH7S/7NH/BXr9of/hBhrY8E/8AC8/g5+2b8Wh4QPiT+yf+Eh/4Rj/hP/DevHQW1/8AsHRBrS6SbP8AtltD0X7f9q/s6x2AH+gl4T/4JlfAPwF/wQ58NeOfAv8AwT8+EPg3/god4L/4JSaN4t8HeMfCP7KXgnw7+2h4W/bQ8Ofsg22r+H/EvhnX9H8B2fxv0H9p3QPjfZ2er6PrOj3tp8VdP+KlnZ39jep4tRHoA/gN+NX7Qv8AwcL/ALNfhax8dftF/G3/AILOfAPwTquu2nhHSvGPxr+JH7b/AMLPC2oeKr7TdU1ix8M6d4g8ca7oOlXPiC60vQda1az0e1vGv7yw0TUL5LI2en3rqAf3qf8ABBj/AIKwfsuD/gk/+yt/w2r/AMFKvgF/w0x/xfP/AIWV/wANRftjfDcfHf8A5OP+MP8Awh3/AAm//C2fiN/wnp/4oI+Eh4aPiLn/AIRP+wjp+dDOmrQB+Uf/AAcI/tCf8E3v2av2Mfhl46/4IwfHH9iD4B/tRar+0/4M8J+O/GP/AATB+JXwJ+Fnx71L4BX3wp+NmseKPDPi7X/2Udc0L4i3fwfuviJoXws1bxFo2r3beCrrxtovgLUNQsm13T/D0kQAf8G937Qn/BN79pX9jH4m+Ov+Cz/xx/Yg+Pn7UWlftP8AjPwn4E8Y/wDBT74lfAn4p/HvTfgFY/Cn4J6x4X8M+Edf/au1zXfiLafB+1+Imu/FPVvDujaRdr4KtfG2tePdQ0+yXXdQ8QySgH84/wC0T+25/wAFH/Gn/BQr9p/9nP8A4J0/tc/tveLfhTZ/tP8A7R/hT9kj4FfsV/Hz48a78PLT4BeA/Hvjqf4beGf2cvhf8DfGFx4Zg+D3g34OaBZ3XgXSPhton/CFaB8N9BsToFnZeFNNR4gD4e/bm/4emf8AFr/+Hlv/AA37/wAzr/wpb/hub/horrjwf/wsf/hV/wDwv7nr/wAIH/wnP/CI9/8AhEv7e+X+xaAP9PT/AIJ7f8E+P+CWn/DrX9h/46fHP9h/9gJt37AX7NXxZ+MXxj+LP7NP7O3y/wDGO3gzxh8QPiR8SfiD4w8FqAABq/ibxj4x8TauT/x/65rt+2by9oA9d+Cv7PX/AAb0ftKeKb/wL+zp8Ev+CMnx88baVoV34u1Xwd8FPhv+xB8U/FOn+FbHUtL0e+8Taj4f8D6Fr2q23h+11TXtF0m81i6s1sLO/wBb06xe9F5qFkjAH+bZ/wAHG3wo+FXwP/4LMftkfC/4L/DX4f8Awf8Ahl4Z/wCGff8AhGvh18LvBvh74f8AgPw9/bH7LHwQ17WR4f8ACHhHTdK0DSjquv6pq2tar9gsLT7dreoajqV6Wvr67ZgDgf2pP+H+P/Ci/HP/AA2p/wAPfP8Ahmf/AIpr/hZf/DUX/DaH/CiP+Rw0D/hD/wDhOf8AhbP/ABQX/I9/8In/AMIz/wAJD/zN39g/2b/xPP7OoA+JPgt+xN+2d+0r4WvfHP7Ov7In7T3x88E6Tr114R1Txl8E/gF8V/in4V07xTZadpms6h4Z1DxD4H8I69pVr4gtNK13Q9VvdGurtNQtLDWtOv2tFtNQsnYA/q3/AODe3wj/AMFxvAP/AAU0/Yu8C/tN+G/+CrXgz9i/wZoHxY8J6z4M+O2jftfeHf2YPCnhbw5+y/8AFnRvhf4Z1Pw/4/gtPhToOgaD4otPBeleAdFvLSz03T9es/C1l4etItRTR41AP9JmgAoA/9D+/igD+AP/AIPnP+cXn/d63/vpVAH5R/s+f8Gjf/BSL9pL4BfA/wDaK8DfGr9iHS/BHx++EXwz+NPg3S/FfxG+PFp4p0vwt8U/Bmh+OfD9h4nsNI/Zq1zS7PXrTStcsrXWbXSta1rTbTUReR2OpX1kEvXAPXv+IKn/AIKmf9F7/YB/8Or+0T/9CjQAf8QVP/BUz/ovf7AP/h1f2if/AKFGgD85P+Cnv/BvV+2d/wAEm/gH4R/aJ/aL+J37MHjPwV4y+Luh/BjTNL+DHjX4q+IvE8HinxF4N8feObG+vrLxz8FPhxpcGhjSvhxrNpc3VrrN7qH9oXemoumtZSXt7YAH9jP/AAZVf8osfj3/ANn/AHxT/wDWdv2VqAPiDx1/wTC+Pf8AwRz/AOCof7QP/Bwj+014u+EXjr9jP4e/tP8A7UXxo1v4afAfXfGHib9p+68Kfto+Jfib8Fvhdp+meCviB8Pvhh8KLjxBofij9ovwLfePrW7+M9jp+m6Fp3iu98Pan4sv7LRdO1wA+3/+I1X/AIJY/wDRBf2/v/DV/s7f/RVUAf0b/wDDavwv/wCGBv8Ah4n/AGD8Qf8AhSf/AAyF/wANr/8ACM/2T4d/4Wl/wqv/AIUz/wALx/4R/wDsb/hK/wDhDv8AhP8A/hE/9A/sn/hPP7A/t/8A0P8A4Sr+zv8AidUAf59X/Bwj/wAHCX7GP/BWb9jH4Z/s6/s6fDP9pzwV408GftO+C/jVquqfGvwX8KPDXhafwt4a+E/xr8EX2n6dfeBvjZ8RtVuPEEmq/EfRbqzs7nRrKwaxtNSZ9SS7Szs78A+Iv2DP+DYT9vf/AIKH/sn/AAo/bD+Cvxd/ZB8NfDH4wHxx/wAI5oXxQ8e/GfR/HVkfAHxJ8X/C3WTr+neEv2f/ABz4ftTc6/4N1a80v7D4lvy2i3VheXn2K9a9sLQA/OH/AIJhf8Ew/j3/AMFYvjz4v/Z1/Z08XfCLwd438GfCPXPjPqep/GjXPGfh3wrceFPDvjLwF4H1Cysb/wADfD74jatNrzar8RtEurS1utFstP8A7Os9TdtTW9jsbK7AP3b/AOIKn/gqZ/0Xv9gH/wAOr+0T/wDQo0AflL/wTu+NPhb/AIIt/wDBaHw946/aistf8e6T+xJ8Xf2qfgv8VbX4BWth4o1LXfFWmfDn42fs7T33gC3+IupfCm11TQT4z1u01VLvxLd+FL9vCq3d82nJrSroTgH25/wcff8ABaj9ln/gr/8A8Maj9mvwD8ffBB/Z5/4aI/4TT/heXhb4c+Gf7S/4W3/wov8A4R4eGR4B+K/xR+2Gz/4Vl4gGs/2v/YYs/tmi/wBnnUN98bAA/vV/Z6+Cviv9pX/g3n+CX7OngW/0LSvG3x8/4Ix/DT4KeDdV8XXWo2HhXTvFPxT/AGIND8D+H9Q8S32j6Zr2q2vh+11TXrK51m80nQ9b1C0sFvHsbHULxUs3APyE/wCDe7/g3t/bO/4JM/tnfEz9or9ov4mfsx+NfBfjP9mLxn8FdK0v4KeM/it4k8UQeKfEnxY+Cfjex1DUbHxx8E/hzpVvoEek/DjWrW8vbbWb3UFv7vTgumvaSXd5YAH8kn/B0f8A8p1v25Pp+zN/6x7+z9QB/paf8Flf2K/in/wUR/4Jt/tH/sefBbXfAHhn4n/GA/CBfDevfFDUvEOjeBbL/hXvx6+GHxO1g67qfhPwv451+2F1oPgrWLXSfsPhvUN+sXOnWt79isXvdQtAD5h/4N6v+CYXx9/4JPfsZfE/9nT9ovxb8IfGPjXxj+0/42+NGlan8GNd8Z+IfCsXhbxH8Kvgp4GsdP1C+8dfD74c6pBrqap8OdYurm1tNGvNPGn3umyJqUl617ZWQB+8dABQAUAf/9H+/igD+AP/AIPnP+cXn/d63/vpVAH9HPwo+Kfjv4H/APBt98NvjT8Lde/4Rf4m/B//AIIieDvin8OvEf8AZuk61/wjvjz4f/sIad4v8Ia6NH8Q6Xqnh/VRpWv6VY339k61pWpaLf8A2M2Oo6deWD3Vm4B/nk/8RRn/AAXX/wCj4z/4jR+x/wD/AEPtAB/xFGf8F1/+j4z/AOI0fsf/AP0PtAH9fv8Aweq/8osfgJ/2f98LP/Wdv2qaAD/gyq/5RY/Hv/s/74p/+s7fsrUAfyif8Fqf+Cy3/BST4v8A7Qn/AAUY/wCCf/xG/aOHiH9kfR/2vfjf8L7D4SH4QfAjSfI8DfA79pfVdQ+F+gDx9oPwv0z4m3K+F7vwH4Quzqt34yfW9b/sUDX9R1Nb7UEvwD69/wCDU/8A4JdfsKf8FJf+G8f+G1fgaPjT/wAKXH7Lx+GuPib8YPhz/wAI3/wsX/hor/hMQP8AhU/xD8CDVjrH/CBeE8HxENROn/2d/wAS0WX2+++2gH92/wDwUI+F/gb4Gf8ABGT9t/4KfC7Qv+EY+GXwg/4JhftLfDD4c+Gv7U1rWv8AhHPAnw+/ZS8ZeEvB+gHWfEOo6truqjSdA0mxsTqutavf6zf/AGUXepX1/eveXrgH+cX/AMGwn7B37KH/AAUP/b3+LnwV/bE+FLfF/wCGPhn9kLx78UNB8N/8J18Sfh/9j8daP8Z/2f8Awlp2vnWPhb4w8GeILo2vh/xp4lsv7LvNVu9EY6h9ru9Pa9sbG9tAD6//AOCon/BUT9uv/gjD+3V8cv8Agmn/AME0vjf/AMM2/sTfs2n4ZH4K/BU/DT4P/GH/AIQz/hcHwf8AAPx++I//ABcb4+/Dz4o/FvX/APhIPiz8UfHfi/8A4q/x5rw0ca5/YmhLp3hbTtF0PTQD+cX9ir9vL9q//gnh8U9e+NP7HXxX/wCFQfEzxN8P9U+GOueI28DfDbx/9t8C6z4h8LeL9Q0E6R8UfB3jPQbc3Wv+DfDN4dWs9Itdaj/s82VjqAsb6/tL8A/08f8Ag2E/bx/av/4KH/sEfFz41ftifFYfF/4neGf2vvHvwv0HxJ/wgvw2+H/2PwLo/wAGP2f/ABbp2gHR/hb4P8GeH7oWviDxp4lvf7UvNKu9bYah9ku9QaysbGytAD3/AOLH/BuR/wAEZvjh8VviT8afij+xwPE/xN+L/j/xl8UfiL4kH7QX7VOj/wDCQ+O/iB4h1Lxf4v186N4e+N2l+HtL/tTxBqt/f/2Vo+laboth9r+xadp1nYLaWaAH8Y//AAdYf8Euv2FP+CbX/DB3/DFXwNHwW/4XQP2oT8Ss/E34wfEb/hJP+Fdf8M6/8IcD/wALY+IfjsaSdH/4T3xZk+HRpx1D+0f+JkL37BY/YgD8w/hP/wAHG/8AwWZ+B/wp+G3wW+F37Y58MfDL4QeAPBvwu+HXhs/s+/srax/wj3gT4f8Ah7TfCHhDQBrPiH4I6p4h1T+y/D+lWFh/ausarqWtX/2T7bqOo3l+13eOAd7/AMRRn/Bdf/o+M/8AiNH7H/8A9D7QB+RH7Uf7Ufx1/bR+Ovjn9pX9pjxwPiV8bPiQPDI8beNx4b8IeEBrA8H+D9B8AeHj/wAI98P/AA/4W8IaX/ZvhXwv4e0j/iT+HbD7d9hF/ffbNQvL29vQD9d/+Ioz/guv/wBHxn/xGj9j/wD+h9oAP+Ioz/guv/0fGf8AxGj9j/8A+h9oA/X/AP4IMf8ABej/AIKv/to/8FX/ANlX9mr9pb9qo/Ej4KfEg/HFvGvgkfA79nDwedZ/4Q/9nD4xePvD2PEPgL4O+FvF+m/2b4p8LeH9WxpHiGw+2fYPsN/9usL290+6AP8AR6oAKAP/0v7+KAP4A/8Ag+c/5xef93rf++lUAfv5/wA6sn/eAP8A+B3UAf5A9ABQB/p+f8Hqv/KLH4Cf9n/fCz/1nb9qmgA/4Mqv+UWPx7/7P++Kf/rO37K1AH8wn7PH7UXwK/Yv/wCDqn9oD9pX9pfx1/wrb4KfDf8Ab9/4Kdf8Jv41Hhvxh4vOijxjB+1P4A8PAeHfh/oHirxdqX9peK/FPh7SP+JR4ev/ALF9ua/vfsWn2V7fWoB77/wdYf8ABUX9hT/gpL/wwd/wxV8ch8af+FLj9qEfErPwy+MHw5/4Rv8A4WL/AMM6/wDCHE/8LY+HngQasdY/4QLxZkeHTqJ0/wDs7/iZGy+32P20A/o5/wCCe3/Bxv8A8EZvgf8AsE/sO/BX4pftj/8ACMfE74P/ALIH7Nfwu+Inhv8A4Z9/ao1j/hHvHfw/+DHgrwj4v0A6x4e+COqeH9U/srX9Kv7D+1dH1TUtFvzZ/btO1G7sHs7pgD9ff2K/+Cyv/BNv/goj8Utd+C37Hn7R5+MHxN8NeAdS+KOu+Gx8IPjz8PRZeBtE8Q+F/Cep67/bHxP+F3gnQLk2+v8AjPw3YDSbXV7zWpP7Q+22ti9jY6je2QB+olAH+Gb+xV+wb+1f/wAFD/inr3wW/Y6+FH/C3/iZ4Z+H+qfE7XPDjeOfht4A+xeBdG8Q+FvCGoa8dX+KPjHwZoNwbXX/ABl4ZszpNnq91rUn9oG9sdPNjY393YAH92n/AARY/ag+BP8AwbwfsteP/wBiz/gsR45/4ZB/aX+J/wAffFH7Ufgf4ajw14u+P39u/Anxp8Ofhb8KPDHjkeMP2XNA+NvgPTP7U8efBP4oeHv+EZ1bxZY+LbAeFhqeo6BZ6Hrvh7UdaAP7N/hT8UfAnxx+Fvw1+Nnwu10+J/hj8Xvh94Q+KHw68SDTNa0Y+JPAnxB8PaX4u8Ia9/Y3iDTtI17S/wC1tA1Wxvf7J1vR7HWrEXQtNRsdPvVurNAD+Er/AIPnP+cXn/d63/vpVAH6+f8ABJ//AILz/wDBJ8fst/8ABNX9ir/hqn/jJj/hQX7HH7Lv/Ctf+FG/tH/8l3Hw3+HPwn/4Qj/hMT8HT4C/5H3/AIp0eJT4u/4RL/mIf28dE/4mVAH7dftq/t5fsof8E8PhZoPxp/bF+K//AAqD4Z+JviBpfwx0PxGvgb4k+P8A7b471nw94p8X6doP9kfC7wb4y163+1aD4N8TXg1W80m10VP7PWyvtQF9fWFnegH5j/8AEUb/AMEKf+j5P/Naf2wP/ofaAE/4Oj/+UFP7cn1/Zm/9bC/Z+oA/yBqAP7Pv+DcH/gjV/wAFI/g9/wAFDP2Cv+CgPxF/ZuPh/wDZF1f4f/ED4n6f8WT8X/gTrLT+BPjj+yV8UdP+F+vjwD4f+KGqfE23/wCEouvHvhC1GlXXg0azon9shtf0/TUstQfTwD/S6oAKAP/T/v4oA/gD/wCD5z/nF5/3et/76VQB/Ux+xF8FfCv7Sf8AwQ6/ZI/Z08dX/iHSvBPx/wD+CUfwD+C/jHU/Cd5p9n4o0zwr8VP2QvCngXxBfeF7/WdL13SbPXbPSddvLrRrvV9H1uwtL9bOS/0zULMGxcA/Gf8A4gqv+CWP/Rev2/v/AA6n7O3/ANCrQAf8QVX/AASx/wCi9ft/f+HU/Z2/+hVoAP8Ag9V/5RY/AT/s/wC+Fn/rO37VNAB/wZVf8osfj3/2f98U/wD1nb9lagD+AT/grH/ylM/4KWf9n/8A7Y3/AK0R8R6AP1//AODcH/giv+yz/wAFf/8Ahso/tKePvj74IP7PP/DO/wDwhf8Awo3xT8OfDP8AaX/C2/8Ahen/AAkJ8THx98KPij9sNn/wrLw+dG/sj+wxZ/bNa/tAahvsRYAH5h/8MWfCr/h89/w7p/t7x/8A8KU/4ee/8MVf8JT/AGj4e/4Wp/wq3/hqv/hR39vf23/wi/8AwiH/AAnv/CL/AOm/2v8A8IL/AMI//b/+nf8ACIf2d/xJKAP9NH/gmF/wb1fsY/8ABJv4+eLv2if2dPid+0/4z8a+MvhFrnwY1PS/jP41+FXiLwxB4W8ReMvAPjm+vrGy8DfBT4capBrg1X4caNaW11daze6f/Z93qSNprXslle2AB+Ev/BZf/g56/b4/4J3/APBSP9o/9jv4LfCT9kPxR8Mvg+3wg/4RvX/ij4D+M+s+O70+P/gT8LfinrA17UvCP7QHgbw/dfZte8ZatZaV9i8NWJXRLXTrO9+3Xy3uo3YB+7X/AATC/wCDer9jH/gk38fPF37RP7OnxO/af8Z+NfGXwi1z4Manpfxn8a/CrxF4Yg8LeIvGXgHxzfX1jZeBvgp8ONUg1war8ONGtLa6utZvdP8A7Pu9SRtNa9ksr2wAD/gp7/wb1fsY/wDBWT4+eEf2if2i/id+0/4M8a+DfhFofwY0zS/gx41+FXh3wxP4W8O+MvH3jmxvr6y8c/BT4j6pPrh1X4j6zaXN1a6zZaf/AGfaaai6at7He3t+Afr5+z98FPC37NvwE+B37OfgXUPEOq+CfgD8Ifhl8F/B2qeK7zT7zxTqXhX4V+DdD8C+H9Q8UX2j6XoOk3mu3Wk6DZ3esXWlaPothe6gbxrHS9PsytkgB+cn/BVj/gix+y3/AMFgP+FDf8NLePPj74H/AOGeD8Ux4J/4Ub4q+HXhr+0h8Wj8Ox4i/wCEn/4T/wCEvxPN2bL/AIVl4eOinSP7E+x/bda+3/2gJLIWQB/mWfs9fBXwr+zV/wAHDHwS/Z18C3+u6r4J+Af/AAWc+GvwU8G6r4uutNv/ABVqPhb4Wftv6F4H8P6h4lvtI0zQdKuvEF1pWg2dzrF5pGiaJp95fvePYWGn2ZSzQA/tZ/4PVf8AlFj8BP8As/74Wf8ArO37VNAH+YHQB/uZft5fsVfCv/gof+yh8Vv2OvjVr3xA8M/DL4wf8IMfEmufDDVPD+jeO7H/AIQD4k+D/ijo50DUPF3hbxvoNsLjxB4N0qz1Q3nhi/3aJd31lZfYr9rW/sgD/Kw/4OFf+CYXwC/4JPftm/DH9nT9nTxZ8XvGPgrxj+zB4J+NGq6n8Z9d8GeIfFMXinxH8VfjX4GvtP0++8C/D34c6XBoS6V8OdIurW1u9GvNQGoXupyPqUtk1lZWAB/qLf8ABJ3/AJRZ/wDBNX/swL9jn/1nf4c0Aff9ABQB/9T+/igD+QL/AIOsP+CXP7dn/BSX/hg7/hir4Gn40f8ACl2/ahPxKB+Jnwe+HP8Awjn/AAsX/hnT/hDgf+FsfEPwIdX/ALX/AOED8WZ/4R3+0Bp407/iZfYhfWP20A/nl8J/8Eqv+DvTwB4T8N+BvA3iH9t7wX4K8F+H9G8JeDvB3hP/AIKjfDfw54W8KeFfDlhbaPoHhnwzoGkftfWelaDoWg6VaWekaNpGkWVpp2nWFnZ2On2aWaBEAN3/AIdqf8Hkf/RRf2/v/Fsfgj/6MegA/wCHan/B5H/0UX9v7/xbH4I/+jHoA8i+Nf8AwRR/4OoP2lPCth4F/aL8L/tP/HzwTpWvWnizSfB3xr/4KJ/BL4qeFdP8V2On6no9h4m0/QPG37VWv6Vaa/a6Vr+taTa6zbWaX1lp2t6hYi8Syvr1HAP7Fv8Ag2E/YO/av/4J4fsEfFz4K/tifCkfCD4neJv2vvHvxQ0Hw3/wnXw2+IH2zwLrHwY/Z/8ACWna+dY+FvjDxn4ftRdeIPBfiWy/su81W01tRp/2u709bK+sb27AP5Cf+ChP/BuR/wAFmfjh+3t+3F8afhb+xwfE/wAMfi/+1/8AtKfFH4d+JD+0F+yvo/8AwkPgT4g/Gfxr4v8ACOvjR/EPxu0vxBpf9q6Bqthf/wBlaxpem61YC8+xajp9pfpd2qgH9HX/AAan/wDBLn9uz/gm1/w3j/w2r8DT8F/+F0N+y8fhqB8TPg98Rv8AhI/+Fdf8NF/8JiB/wqf4h+OzpH9kf8J54Tx/wkX9njUBqP8AxLftosb77EAfkF/w4Z/4Kwf8P7/+G1v+GVf+MZ/+Hvf/AA1H/wALK/4Xj+zd/wAkH/4bR/4Wx/wnH/CHf8Li/wCE9z/wgP8AxUP/AAjX/CIf8Jb/AMw/+wP7b/4ltAH+j1QB8cfFD/gn1+wP8c/HWu/FL40fsP8A7IHxg+Jvic6cPEnxF+KH7NfwY+IHjrxD/Yuk6b4e0b+3/F/i/wAFatr+rf2VoGlaRo2lfb7+6Fjoun6fptiqWNjZpQB/nmf8O1P+DyP/AKKL+39/4tj8Ef8A0Y9AB/w7U/4PI/8Aoov7f3/i2PwR/wDRj0AH/DtT/g8j/wCii/t/f+LY/BH/ANGPQB/Tz/wbg/s1/wDBY/8AZ3P7ZI/4K1eJPj94i/4S/wD4Z4/4Z/8A+F5ftXaF+1B9j/sL/heh+K3/AAizaN8ZfiwPAxuRrvw4/tr7Z/YJ8T7NE8v+0v7CcaeAfo3+21/wTT/Zs8Z/AP8Aa7+If7O37FH7MFl+3b4s+EPx88ZfAn42+FPgp8EfAfx+s/2udd8G+KtZ+GPxT8M/Hq50Pw94l8G/GK3+Mlzovi/Rvi9c+OdB1vQPGws/F7eLNOv7NtbQA/np/wCCLP8AwTA/4K7at+1N48tf+C7Hw9+IH7TX7JCfALxVP8OvAP7af7SHwq/bm+FekftGj4jfC1fCPi7QfhP4g+MXxus9A8e2fwwb4vaPpPxFXwlYXmjaFr3ivw6Ndso/Fsmn60AfmD/wWV/4Nwf+Chnxh/4KR/tI/EX/AIJ/fsFfD/SP2RfEJ+EB+E2nfDD4gfslfA3wJA2jfAn4X+H/AB8NA+F+ofFLwFdeF/tHxN0vxjdaqLrwfo39t6y2oa+gvk1NNRvQDz//AIdqf8Hkf/RRf2/v/Fsfgj/6MegD+nj/AIIsf8Etvi9q37Lnj6b/AILr/sufD/8Aab/a6i+PniqH4d+Pf21J/gj+3L8U9I/Zx/4Vz8Lm8IeEdA+LPiDX/jdd6B4Ds/ie3xf1fSPhyni6wtNF13XfFfiIaDYyeLH1HWgD+lrwn4U8LeAfC/hvwN4G8NaF4L8D+C9C0fwn4O8HeE9I07w34V8KeFfDWnWuj+HvDPhnw9o9pa6Xofh7Q9LtbPSdG0fSbOysNPsLKzsbGyjs0RaAOooAKAP/1f7+KACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoA/9b+/igAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKAP/Z" webUI["html/img/filter.png"] = "iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAAAXNSR0IArs4c6QAAAAlwSFlzAAAsSwAALEsBpT2WqQAABCRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IlhNUCBDb3JlIDUuNC4wIj4KICAgPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIgogICAgICAgICAgICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgICAgICAgICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyI+CiAgICAgICAgIDx0aWZmOlJlc29sdXRpb25Vbml0PjI8L3RpZmY6UmVzb2x1dGlvblVuaXQ+CiAgICAgICAgIDx0aWZmOkNvbXByZXNzaW9uPjU8L3RpZmY6Q29tcHJlc3Npb24+CiAgICAgICAgIDx0aWZmOlhSZXNvbHV0aW9uPjI4ODwvdGlmZjpYUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6T3JpZW50YXRpb24+MTwvdGlmZjpPcmllbnRhdGlvbj4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+Mjg4PC90aWZmOllSZXNvbHV0aW9uPgogICAgICAgICA8ZXhpZjpQaXhlbFhEaW1lbnNpb24+NTA8L2V4aWY6UGl4ZWxYRGltZW5zaW9uPgogICAgICAgICA8ZXhpZjpDb2xvclNwYWNlPjE8L2V4aWY6Q29sb3JTcGFjZT4KICAgICAgICAgPGV4aWY6UGl4ZWxZRGltZW5zaW9uPjUwPC9leGlmOlBpeGVsWURpbWVuc2lvbj4KICAgICAgICAgPGRjOnN1YmplY3Q+CiAgICAgICAgICAgIDxyZGY6QmFnLz4KICAgICAgICAgPC9kYzpzdWJqZWN0PgogICAgICAgICA8eG1wOk1vZGlmeURhdGU+MjAxOC0wNy0yOFQxOTowNzo2OTwveG1wOk1vZGlmeURhdGU+CiAgICAgICAgIDx4bXA6Q3JlYXRvclRvb2w+UGl4ZWxtYXRvciAzLjM8L3htcDpDcmVhdG9yVG9vbD4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgIDwvcmRmOlJERj4KPC94OnhtcG1ldGE+Cs038OQAAAOISURBVGgF5ZpLSBVRGMfvvfmqCKKiKCqKtE3SQ8haJJm1ctPCZYHrFhXtohcUBLVsU1BRBJKLXpsSKs1aCL1oUUhvMgIloodZKmLZ72+OzNVx7jzOXGfqg/89Z875zv/7f35n7px7vanUP2JptzyGhoYKmK8GW0EZmA/mgW7wHrwDN0BTOp0epPVtxBBnLdgIVoE5YBboBR2gDTTA/5DWn0FeDPaBz8CLdeF0EBR5jYRvKbgABoAXa8Opwit/CudK8NoLs4PPM8ZyBsNnB/jpsD7X0C8cjgDXnaQkqkEPCGMSuGWivxxzx8OQj6xtpHWuPhPloHfEMWzTD0HN2GQY2xuW2Lb+/Fh+VaIQPLE5meh+gmSxFYz+BjBogtjGscfiH26Z2GmbNNltVQAIpwDdP6ZNO2iRYqTpZGhfgWUaiMC2w1kCzkbALcqLvDVvUyK6MW9HFES0b8BvsFwXEZi4F+iBtykCcjtlqf0igr52VJ1eqiIgzzdlrRIZfWfJd3SD8ZbqHvkB4XSDpJNB9V0VcX/cT4Ys/zEzSuSj/3WxW9GpRD7ETpZ/QcOJ6LyfdHugitxNehbob9G7lo4PXWBmQhPqQ/fsDOeUfjqNCU1Csi+TQ5+2luzc3yaRr6elevQZwhZr4bomYam0U41yabYqov5hvSTMjlp6RyuiAarSTLPZmox5246+lVREx/isiuh6NxhUJwF2yEpCWu1bK8WEsjyRgCSa0XrVrjNra2mC7TWD5ilYAuJoA4jSlnppF5dVEU3g0ENTD4b3nsZiZsfGJuGqj8qY+CINGqP2GLZCJ+HjtpblxAJ9k3cPrLfGJrnVUaSCarxw0jFua1lOLNBerANx+byya6IkLM2uLZWpAl6/Mcc1EjvjKtLrJNLqI5HnjfQ+bsVeteb0g2y/t7hGvd7CNjenOL8OkJ40KtOdTF+Cl/nV6Mkf4gxocI9vZPYLLKs9iQrqRIACcM2IXGeSboYrg+rztY5ARaDJWUeo0W+sXudLTFhnApaAW6FkZy/+yuXasLoCrSfwVHAnW0+gK93YawKJMLUIAdNAKwhqnSxcYUpPKB6EBE2mg7VR///EX24jybTQerXnOC70FyVP3gjTPXPTQyaP8NFPNeJrCNTPP667JKOq6VNo/A2hes5ccUjmEmPmDoD5+FMgWCcA+3FG57QJP//kQ1PgGBIOToEDgUn+t4V/AJeGknwARIKLAAAAAElFTkSuQmCC" webUI["html/img/log.png"] = "iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAAAXNSR0IArs4c6QAAAAlwSFlzAAAsSwAALEsBpT2WqQAABCRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IlhNUCBDb3JlIDUuNC4wIj4KICAgPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIgogICAgICAgICAgICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgICAgICAgICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyI+CiAgICAgICAgIDx0aWZmOlJlc29sdXRpb25Vbml0PjI8L3RpZmY6UmVzb2x1dGlvblVuaXQ+CiAgICAgICAgIDx0aWZmOkNvbXByZXNzaW9uPjU8L3RpZmY6Q29tcHJlc3Npb24+CiAgICAgICAgIDx0aWZmOlhSZXNvbHV0aW9uPjI4ODwvdGlmZjpYUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6T3JpZW50YXRpb24+MTwvdGlmZjpPcmllbnRhdGlvbj4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+Mjg4PC90aWZmOllSZXNvbHV0aW9uPgogICAgICAgICA8ZXhpZjpQaXhlbFhEaW1lbnNpb24+NTA8L2V4aWY6UGl4ZWxYRGltZW5zaW9uPgogICAgICAgICA8ZXhpZjpDb2xvclNwYWNlPjE8L2V4aWY6Q29sb3JTcGFjZT4KICAgICAgICAgPGV4aWY6UGl4ZWxZRGltZW5zaW9uPjUwPC9leGlmOlBpeGVsWURpbWVuc2lvbj4KICAgICAgICAgPGRjOnN1YmplY3Q+CiAgICAgICAgICAgIDxyZGY6QmFnLz4KICAgICAgICAgPC9kYzpzdWJqZWN0PgogICAgICAgICA8eG1wOk1vZGlmeURhdGU+MjAxOC0xMC0xNFQxMToxMDo0MjwveG1wOk1vZGlmeURhdGU+CiAgICAgICAgIDx4bXA6Q3JlYXRvclRvb2w+UGl4ZWxtYXRvciAzLjM8L3htcDpDcmVhdG9yVG9vbD4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgIDwvcmRmOlJERj4KPC94OnhtcG1ldGE+CkP32mEAAANASURBVGgF7ZlPiE1RHMffw1AYhiL5k1HEijJiYaFZiHoyFspW2RFRkkSZGgtFWJIwi9FYmo0VOywkKTbKgjSlWcifRCPX51dv6s2d33md77vvXjfmV9859/7u93x/v98959x73p1KRbAkSargAhgDH0E/qIYkuHYEvAPGvwbmNOEerXM/0Q6BRSFuZj/ix0DaDnvCkGppIucDAe4OhzvkcUO+GaELAf8ux7/b8Zlrr+Pvc3zm6nX8NccXdKmFLHaUPJ/Ruhyu5zNap8Nd6PiCLrUQTyi0Rjy/5/M0Zd+smB7M32XwtgBr07aC6yfSTs7XO77OALfH4VbgHsD/HLytVquJx4nyIdQFBsHftscksK5Z0sGhpuN8Or4Aa5sJFHjtO7G2MjKvvZjN1sglOpSlCMt9LrDZ4S4Hd0Qg24vrK+gAZbPtjMqTdFKhEdkIsYxFWP720JlioUK6pzDL41jtpRIqxOOWxecuB3fhRGT8E85YBK8VygI6GSRTCxlH3TaJgyw4O2678aCxO94LbNPovYDdmOrUukIBN/MqwjJEOwGPOHR31W4VONVCLEBR9lAJpBbSrYhn5K5R+quFnGUOr1ICtMIlxjz6XVb6qot9JeKvCPSAdlQJJHDtd8hOIN0wtRDLxx6Ntr0ulalTq1TJNyYzXUjj3SjD8X87Iva7uR8s5+2bi6FtX1oOgi8g2tSn1g2yPx+t3gIR/c90s1+C1vuO/YkxdWrdjxFtE2dE0VELWaqIZ+QuUfqrhZxmyKUvgEoyE1xizOR4YOI8plXXyAZEbYsyTJvXFsUW+x6wGUSbWogJ237rZHSEgojq1CooLT3MdCH6Pcu3xz8zIq0s9lvc2+sgz6dWH/rnQPB/jlybZGoh99hCHJqk0P6TD0jaI/4b7dVYeXVq2bemokyKpRZiHwWKMimWWshxhryjoEpOKXHUNbIN8WcUc5s2r8Vue7l9oAaiTS3EhDeB6EUYnUlGojq1MobLr3uokB/5hcys7OYWKuRl5nD5Cbi5uYXw0ntPHoay2S8Seuol5RZSJ0r/n/DEc/BdrN9kTZrH7BkwDspgwyQxW6uggU3nHnAXvAG/QZE2SrARsL8hJffwDxM0mNDPvT8IAAAAAElFTkSuQmCC" @@ -25,16 +25,16 @@ func loadHTMLMap() { webUI["html/img/xmltv.png"] = "iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAAAXNSR0IArs4c6QAAAAlwSFlzAAAsSwAALEsBpT2WqQAABCRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IlhNUCBDb3JlIDUuNC4wIj4KICAgPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIgogICAgICAgICAgICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgICAgICAgICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyI+CiAgICAgICAgIDx0aWZmOlJlc29sdXRpb25Vbml0PjI8L3RpZmY6UmVzb2x1dGlvblVuaXQ+CiAgICAgICAgIDx0aWZmOkNvbXByZXNzaW9uPjU8L3RpZmY6Q29tcHJlc3Npb24+CiAgICAgICAgIDx0aWZmOlhSZXNvbHV0aW9uPjI4ODwvdGlmZjpYUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6T3JpZW50YXRpb24+MTwvdGlmZjpPcmllbnRhdGlvbj4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+Mjg4PC90aWZmOllSZXNvbHV0aW9uPgogICAgICAgICA8ZXhpZjpQaXhlbFhEaW1lbnNpb24+NTA8L2V4aWY6UGl4ZWxYRGltZW5zaW9uPgogICAgICAgICA8ZXhpZjpDb2xvclNwYWNlPjE8L2V4aWY6Q29sb3JTcGFjZT4KICAgICAgICAgPGV4aWY6UGl4ZWxZRGltZW5zaW9uPjUwPC9leGlmOlBpeGVsWURpbWVuc2lvbj4KICAgICAgICAgPGRjOnN1YmplY3Q+CiAgICAgICAgICAgIDxyZGY6QmFnLz4KICAgICAgICAgPC9kYzpzdWJqZWN0PgogICAgICAgICA8eG1wOk1vZGlmeURhdGU+MjAxOC0wNy0yOFQyMDowNzozMzwveG1wOk1vZGlmeURhdGU+CiAgICAgICAgIDx4bXA6Q3JlYXRvclRvb2w+UGl4ZWxtYXRvciAzLjM8L3htcDpDcmVhdG9yVG9vbD4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgIDwvcmRmOlJERj4KPC94OnhtcG1ldGE+Co6j9bsAAAGgSURBVGgF7VqxTsNADL0gYGEon8DOwsbAAH8BYmJn6cYIn8DC3h0+oixISFRiYYCJL0AwMMBAeK5w2rpV6uikxHfYknW98+vds18TK21DWGBlWR7CH+BfcEv2AzLP8HP42gLqkyUATuEp2PWEdQjF9ATs1zF/g29Mrxt+vVcUxR3xWxEktzFPJQmivsv8ZSI9DiQyVnxlIonwn6fpiczXpNuVVXH8O+a3Ys3y9NUyuf/NTTbEHZTjUlGSRzSiPhroUIENwB4AS/vS/susDwDhTpYBER9g7wHh5DWyibV9CiitCZbIafDEYUuJHQI3Nr/9ciWsjK6IFSWYhyvClbAyZqOIlYJG84jq7E1Ot97Zm+TinV1TrWwudk9EI3ebGFekzWprzspGEU2ySWCiOrs/s9dr7M/s9fVJJJrNXcsTsfaJc0WsKZINH+/sf1Jqvl1n1f2ZnStRN/pdq646XcSkIh9dkIg4s+IrE3nCpp8RG7f91ns+cCYR/LD4jcAZB42PN+A7/mcQ8ZxJhBYQvMJwBB/BKTFLVoLMC/wCfgyv7BesTKUC2LKM3wAAAABJRU5ErkJggg==" webUI["html/index.html"] = "PCFkb2N0eXBlIGh0bWw+CjxodG1sPgoKPGhlYWQ+CiAgPG1ldGEgY2hhcnNldD0idXRmLTgiPgogIDwhLS0tCiAgICA8bWV0YSBuYW1lPSJ2aWV3cG9ydCIgY29udGVudD0id2lkdGg9ZGV2aWNlLXdpZHRoLCBpbml0aWFsLXNjYWxlPTEuMCIgLz4gCiAgICAtLT4KICA8dGl0bGU+eFRlVmU8L3RpdGxlPgogIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iY3NzL3NjcmVlbi5jc3MiIHR5cGU9InRleHQvY3NzIj4KICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9ImNzcy9iYXNlLmNzcyIgdHlwZT0idGV4dC9jc3MiPgoKICA8c2NyaXB0IGxhbmd1YWdlPSJqYXZhc2NyaXB0IiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ianMvbmV0d29ya190cy5qcyI+PC9zY3JpcHQ+CiAgPHNjcmlwdCBsYW5ndWFnZT0iamF2YXNjcmlwdCIgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9ImpzL21lbnVfdHMuanMiPjwvc2NyaXB0PgogIDxzY3JpcHQgbGFuZ3VhZ2U9ImphdmFzY3JpcHQiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJqcy9zZXR0aW5nc190cy5qcyI+PC9zY3JpcHQ+CiAgPHNjcmlwdCBsYW5ndWFnZT0iamF2YXNjcmlwdCIgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9ImpzL2xvZ3NfdHMuanMiPjwvc2NyaXB0PgogIDxzY3JpcHQgbGFuZ3VhZ2U9ImphdmFzY3JpcHQiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJqcy9iYXNlX3RzLmpzIj48L3NjcmlwdD4KCjwvaGVhZD4KCjxib2R5IG9ubG9hZD0iamF2YXNjcmlwdDogUGFnZVJlYWR5KCk7Ij4KCiAgPGRpdiBpZD0ibG9hZGluZyIgY2xhc3M9Im5vbmUiPgogICAgPGRpdiBjbGFzcz0ibG9hZGVyIj48L2Rpdj4KICA8L2Rpdj4KCiAgPGRpdiBpZD0icG9wdXAiIGNsYXNzPSJub25lIj4KICAgIDxkaXYgaWQ9InBvcHVwLWN1c3RvbSI+PC9kaXY+CiAgPC9kaXY+CgogIDxkaXYgaWQ9ImxheW91dCI+CgogICAgPCEtLQogICAgICAgIDxkaXYgaWQ9Im5vdGlmaWNhdGlvbiI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJlbGVtZW50Ij4KICAgICAgICAgICAgPGg1PlhFUEc8L2g1PgogICAgICAgICAgICA8cHJlPjExLjA1LjIwMTkgLSAyMDoyMTwvcHJlPgogICAgICAgICAgICA8aHI+CiAgICAgICAgICAgIDxwPkhhbGxvIGRhcyBpc3QgZWluIFRlc3QuIFVuZCBub2NoIG1laHIgVGV4dC48L3A+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgLS0+CgogICAgPGRpdiBpZD0ibWVudS13cmFwcGVyIiBjbGFzcz0ibGF5b3V0LWxlZnQiPgogICAgICA8ZGl2IGlkPSJicmFuY2giPjwvZGl2PgogICAgICA8ZGl2IGlkPSJsb2dvIj48L2Rpdj4KICAgICAgPG5hdiBpZD0ibWFpbi1tZW51Ij48L25hdj4KICAgIDwvZGl2PgoKICAgIDxkaXYgY2xhc3M9ImxheW91dC1yaWdodCI+CgogICAgICA8dGFibGUgaWQ9ImNsaWVudEluZm8iIGNsYXNzPSIiPgoKICAgICAgICA8dHI+CiAgICAgICAgICA8dGQgY2xhc3M9InRkS2V5Ij54VGVWZTo8L3RkPgogICAgICAgICAgPHRkIGlkPSJ2ZXJzaW9uIiBjbGFzcz0idGRWYWwiPiZuYnNwOzwvdGQ+CiAgICAgICAgICA8dGQgY2xhc3M9InRkS2V5Ij5PUzo8L3RkPgogICAgICAgICAgPHRkIGlkPSJvcyIgY2xhc3M9InRkVmFsIj4mbmJzcDs8L3RkPgogICAgICAgICAgPHRkIGNsYXNzPSJ0ZEtleSBwaG9uZSI+RFZSIElQOjwvdGQ+CiAgICAgICAgICA8dGQgaWQ9IkRWUiIgY2xhc3M9InRkVmFsTGluayBwaG9uZSI+Jm5ic3A7PC90ZD4KICAgICAgICA8L3RyPgoKICAgICAgICA8dHI+CiAgICAgICAgICA8dGQgY2xhc3M9InRkS2V5Ij5VVUlEOjwvdGQ+CiAgICAgICAgICA8dGQgaWQ9InV1aWQiIGNsYXNzPSJ0ZFZhbCI+Jm5ic3A7PC90ZD4KICAgICAgICAgIDx0ZCBjbGFzcz0idGRLZXkiPkFyY2g6PC90ZD4KICAgICAgICAgIDx0ZCBpZD0iYXJjaCIgY2xhc3M9InRkVmFsIj4mbmJzcDs8L3RkPgogICAgICAgICAgPHRkIGNsYXNzPSJ0ZEtleSBwaG9uZSI+TTNVIFVSTDo8L3RkPgogICAgICAgICAgPHRkIGlkPSJtM3UtdXJsIiBjbGFzcz0idGRWYWxMaW5rIHBob25lIj4mbmJzcDs8L3RkPgogICAgICAgIDwvdHI+CgogICAgICAgIDx0cj4KICAgICAgICAgIDx0ZCBjbGFzcz0idGRLZXkiPkF2YWlsYWJsZSBTdHJlYW1zOjwvdGQ+CiAgICAgICAgICA8dGQgaWQ9InN0cmVhbXMiIGNsYXNzPSJ0ZFZhbCI+Jm5ic3A7PC90ZD4KICAgICAgICAgIDx0ZCBjbGFzcz0idGRLZXkiPkVQRyBTb3VyY2U6PC90ZD4KICAgICAgICAgIDx0ZCBpZD0iZXBnU291cmNlIiBjbGFzcz0idGRWYWwiPiZuYnNwOzwvdGQ+CiAgICAgICAgICA8dGQgY2xhc3M9InRkS2V5IHBob25lIj5YRVBHIFVSTDo8L3RkPgogICAgICAgICAgPHRkIGlkPSJ4ZXBnLXVybCIgY2xhc3M9InRkVmFsTGluayBwaG9uZSI+Jm5ic3A7PC90ZD4KICAgICAgICA8L3RyPgoKICAgICAgICA8dHI+CiAgICAgICAgICA8dGQgY2xhc3M9InRkS2V5Ij5YRVBHIENoYW5uZWxzOjwvdGQ+CiAgICAgICAgICA8dGQgaWQ9InhlcGciIGNsYXNzPSJ0ZFZhbCI+Jm5ic3A7PC90ZD4KICAgICAgICAgIDx0ZCBjbGFzcz0idGRLZXkiPkVycm9yczo8L3RkPgogICAgICAgICAgPHRkIGlkPSJlcnJvcnMiIGNsYXNzPSJ0ZFZhbCI+Jm5ic3A7PC90ZD4KICAgICAgICAgIDx0ZCBjbGFzcz0idGRLZXkiPldhcm5pbmdzOjwvdGQ+CiAgICAgICAgICA8dGQgaWQ9Indhcm5pbmdzIiBjbGFzcz0idGRWYWwiPiZuYnNwOzwvdGQ+CiAgICAgICAgPC90cj4KCiAgICAgIDwvdGFibGU+CgogICAgICA8ZGl2IGlkPSJteVN0cmVhbXNCb3giIGNsYXNzPSJub3RWaXNpYmxlIj4KCiAgICAgICAgPGRpdiBpZD0iYWxsU3RyZWFtcyI+CiAgICAgICAgICA8dGFibGUgaWQ9ImFjdGl2ZVN0cmVhbXMiPjwvdGFibGU+CiAgICAgICAgICA8dGFibGUgaWQ9ImluYWN0aXZlU3RyZWFtcyI+PC90YWJsZT4KICAgICAgICA8L2Rpdj4KCiAgICAgIDwvZGl2PgoKICAgICAgPGRpdiBpZD0iY29udGVudCIgY2xhc3M9IiI+PC9kaXY+CgogICAgPC9kaXY+CgogIDwvZGl2PgoKPC9ib2R5PgoKPC9odG1sPg==" webUI["html/js/authentication_ts.js"] = "ZnVuY3Rpb24gbG9naW4oKSB7CiAgICB2YXIgZXJyID0gZmFsc2U7CiAgICB2YXIgZGF0YSA9IG5ldyBPYmplY3QoKTsKICAgIHZhciBkaXYgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29udGVudCIpOwogICAgdmFyIGZvcm0gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYXV0aGVudGljYXRpb24iKTsKICAgIHZhciBpbnB1dHMgPSBkaXYuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIklOUFVUIik7CiAgICBmb3IgKHZhciBpID0gaW5wdXRzLmxlbmd0aCAtIDE7IGkgPj0gMDsgaS0tKSB7CiAgICAgICAgdmFyIGtleSA9IGlucHV0c1tpXS5uYW1lOwogICAgICAgIHZhciB2YWx1ZSA9IGlucHV0c1tpXS52YWx1ZTsKICAgICAgICBpZiAodmFsdWUubGVuZ3RoID09IDApIHsKICAgICAgICAgICAgaW5wdXRzW2ldLnN0eWxlLmJvcmRlckNvbG9yID0gInJlZCI7CiAgICAgICAgICAgIGVyciA9IHRydWU7CiAgICAgICAgfQogICAgICAgIGRhdGFba2V5XSA9IHZhbHVlOwogICAgfQogICAgaWYgKGVyciA9PSB0cnVlKSB7CiAgICAgICAgZGF0YSA9IG5ldyBPYmplY3QoKTsKICAgICAgICByZXR1cm47CiAgICB9CiAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgiY29uZmlybSIpKSB7CiAgICAgICAgaWYgKGRhdGFbImNvbmZpcm0iXSAhPSBkYXRhWyJwYXNzd29yZCJdKSB7CiAgICAgICAgICAgIGFsZXJ0KCJzZGFmc2QiKTsKICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Bhc3N3b3JkJykuc3R5bGUuYm9yZGVyQ29sb3IgPSAicmVkIjsKICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NvbmZpcm0nKS5zdHlsZS5ib3JkZXJDb2xvciA9ICJyZWQiOwogICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZXJyIikuaW5uZXJIVE1MID0gInt7LmFjY291bnQuZmFpbGVkfX0iOwogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQogICAgfQogICAgZm9ybS5zdWJtaXQoKTsKfQo=" - webUI["html/js/base_ts.js"] = "dmFyIFNFUlZFUiA9IG5ldyBPYmplY3QoKTsKdmFyIEJVTEtfRURJVCA9IGZhbHNlOwp2YXIgQ09MVU1OX1RPX1NPUlQ7CnZhciBTRUFSQ0hfTUFQUElORyA9IG5ldyBPYmplY3QoKTsKdmFyIFVORE8gPSBuZXcgT2JqZWN0KCk7CnZhciBTRVJWRVJfQ09OTkVDVElPTiA9IGZhbHNlOwp2YXIgV1NfQVZBSUxBQkxFID0gZmFsc2U7Ci8vIE1lbnUKdmFyIG1lbnVJdGVtcyA9IG5ldyBBcnJheSgpOwptZW51SXRlbXMucHVzaChuZXcgTWFpbk1lbnVJdGVtKCJwbGF5bGlzdCIsICJ7ey5tYWluTWVudS5pdGVtLnBsYXlsaXN0fX0iLCAibTN1LnBuZyIsICJ7ey5tYWluTWVudS5oZWFkbGluZS5wbGF5bGlzdH19IikpOwptZW51SXRlbXMucHVzaChuZXcgTWFpbk1lbnVJdGVtKCJmaWx0ZXIiLCAie3subWFpbk1lbnUuaXRlbS5maWx0ZXJ9fSIsICJmaWx0ZXIucG5nIiwgInt7Lm1haW5NZW51LmhlYWRsaW5lLmZpbHRlcn19IikpOwptZW51SXRlbXMucHVzaChuZXcgTWFpbk1lbnVJdGVtKCJ4bWx0diIsICJ7ey5tYWluTWVudS5pdGVtLnhtbHR2fX0iLCAieG1sdHYucG5nIiwgInt7Lm1haW5NZW51LmhlYWRsaW5lLnhtbHR2fX0iKSk7Cm1lbnVJdGVtcy5wdXNoKG5ldyBNYWluTWVudUl0ZW0oIm1hcHBpbmciLCAie3subWFpbk1lbnUuaXRlbS5tYXBwaW5nfX0iLCAibWFwcGluZy5wbmciLCAie3subWFpbk1lbnUuaGVhZGxpbmUubWFwcGluZ319IikpOwptZW51SXRlbXMucHVzaChuZXcgTWFpbk1lbnVJdGVtKCJ1c2VycyIsICJ7ey5tYWluTWVudS5pdGVtLnVzZXJzfX0iLCAidXNlcnMucG5nIiwgInt7Lm1haW5NZW51LmhlYWRsaW5lLnVzZXJzfX0iKSk7Cm1lbnVJdGVtcy5wdXNoKG5ldyBNYWluTWVudUl0ZW0oInNldHRpbmdzIiwgInt7Lm1haW5NZW51Lml0ZW0uc2V0dGluZ3N9fSIsICJzZXR0aW5ncy5wbmciLCAie3subWFpbk1lbnUuaGVhZGxpbmUuc2V0dGluZ3N9fSIpKTsKbWVudUl0ZW1zLnB1c2gobmV3IE1haW5NZW51SXRlbSgibG9nIiwgInt7Lm1haW5NZW51Lml0ZW0ubG9nfX0iLCAibG9nLnBuZyIsICJ7ey5tYWluTWVudS5oZWFkbGluZS5sb2d9fSIpKTsKbWVudUl0ZW1zLnB1c2gobmV3IE1haW5NZW51SXRlbSgibG9nb3V0IiwgInt7Lm1haW5NZW51Lml0ZW0ubG9nb3V0fX0iLCAibG9nb3V0LnBuZyIsICJ7ey5tYWluTWVudS5oZWFkbGluZS5sb2dvdXR9fSIpKTsKLy8gU2V0dGluZ3MgY2F0ZWdvcmllcwp2YXIgc2V0dGluZ3NDYXRlZ29yeSA9IG5ldyBBcnJheSgpOwpzZXR0aW5nc0NhdGVnb3J5LnB1c2gobmV3IFNldHRpbmdzQ2F0ZWdvcnlJdGVtKCJ7ey5zZXR0aW5ncy5jYXRlZ29yeS5nZW5lcmFsfX0iLCAidGxzTW9kZSx4dGV2ZUF1dG9VcGRhdGUsaG9zdElQLHR1bmVyLGVwZ1NvdXJjZSxkaXNhbGxvd1VSTER1cGxpY2F0ZXMsY2xlYXJYTUxUVkNhY2hlLGFwaSIpKTsKc2V0dGluZ3NDYXRlZ29yeS5wdXNoKG5ldyBTZXR0aW5nc0NhdGVnb3J5SXRlbSgie3suc2V0dGluZ3MuY2F0ZWdvcnkubWFwcGluZ319IiwgImRlZmF1bHRNaXNzaW5nRVBHLGVuYWJsZU1hcHBlZENoYW5uZWxzIikpOwpzZXR0aW5nc0NhdGVnb3J5LnB1c2gobmV3IFNldHRpbmdzQ2F0ZWdvcnlJdGVtKCJ7ey5zZXR0aW5ncy5jYXRlZ29yeS5maWxlc319IiwgInVwZGF0ZSxmaWxlcy51cGRhdGUsdGVtcC5wYXRoLGNhY2hlLmltYWdlcyx4ZXBnLnJlcGxhY2UubWlzc2luZy5pbWFnZXMiKSk7CnNldHRpbmdzQ2F0ZWdvcnkucHVzaChuZXcgU2V0dGluZ3NDYXRlZ29yeUl0ZW0oInt7LnNldHRpbmdzLmNhdGVnb3J5LnN0cmVhbWluZ319IiwgImJ1ZmZlcix1ZHB4eSxidWZmZXIuc2l6ZS5rYixzdG9yZUJ1ZmZlckluUkFNLGJ1ZmZlci50aW1lb3V0LHVzZXIuYWdlbnQsZmZtcGVnLnBhdGgsZmZtcGVnLm9wdGlvbnMsdmxjLnBhdGgsdmxjLm9wdGlvbnMiKSk7CnNldHRpbmdzQ2F0ZWdvcnkucHVzaChuZXcgU2V0dGluZ3NDYXRlZ29yeUl0ZW0oInt7LnNldHRpbmdzLmNhdGVnb3J5LmJhY2t1cH19IiwgImJhY2t1cC5wYXRoLGJhY2t1cC5rZWVwIikpOwpzZXR0aW5nc0NhdGVnb3J5LnB1c2gobmV3IFNldHRpbmdzQ2F0ZWdvcnlJdGVtKCJ7ey5zZXR0aW5ncy5jYXRlZ29yeS5hdXRoZW50aWNhdGlvbn19IiwgImF1dGhlbnRpY2F0aW9uLndlYixhdXRoZW50aWNhdGlvbi5wbXMsYXV0aGVudGljYXRpb24ubTN1LGF1dGhlbnRpY2F0aW9uLnhtbCxhdXRoZW50aWNhdGlvbi5hcGkiKSk7CmZ1bmN0aW9uIHNob3dQb3BVcEVsZW1lbnQoZWxtKSB7CiAgICB2YXIgYWxsRWxlbWVudHMgPSBuZXcgQXJyYXkoInBvcHVwLWN1c3RvbSIpOwogICAgZm9yICh2YXIgaSA9IDA7IGkgPCBhbGxFbGVtZW50cy5sZW5ndGg7IGkrKykgewogICAgICAgIHNob3dFbGVtZW50KGFsbEVsZW1lbnRzW2ldLCBmYWxzZSk7CiAgICB9CiAgICBzaG93RWxlbWVudChlbG0sIHRydWUpOwogICAgc2V0VGltZW91dChmdW5jdGlvbiAoKSB7CiAgICAgICAgc2hvd0VsZW1lbnQoInBvcHVwIiwgdHJ1ZSk7CiAgICB9LCAxMCk7CiAgICByZXR1cm47Cn0KZnVuY3Rpb24gc2hvd0VsZW1lbnQoZWxtSUQsIHR5cGUpIHsKICAgIHZhciBjc3NDbGFzczsKICAgIHN3aXRjaCAodHlwZSkgewogICAgICAgIGNhc2UgdHJ1ZToKICAgICAgICAgICAgY3NzQ2xhc3MgPSAiYmxvY2siOwogICAgICAgICAgICBicmVhazsKICAgICAgICBjYXNlIGZhbHNlOgogICAgICAgICAgICBjc3NDbGFzcyA9ICJub25lIjsKICAgICAgICAgICAgYnJlYWs7CiAgICB9CiAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChlbG1JRCkuY2xhc3NOYW1lID0gY3NzQ2xhc3M7Cn0KZnVuY3Rpb24gY2hhbmdlQnV0dG9uQWN0aW9uKGVsZW1lbnQsIGJ1dHRvbklELCBhdHRyaWJ1dGUpIHsKICAgIHZhciB2YWx1ZSA9IGVsZW1lbnQub3B0aW9uc1tlbGVtZW50LnNlbGVjdGVkSW5kZXhdLnZhbHVlOwogICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoYnV0dG9uSUQpLnNldEF0dHJpYnV0ZShhdHRyaWJ1dGUsIHZhbHVlKTsKfQpmdW5jdGlvbiBnZXRMb2NhbERhdGEoZGF0YVR5cGUsIGlkKSB7CiAgICBsZXQgZGF0YSA9IHt9OwogICAgc3dpdGNoIChkYXRhVHlwZSkgewogICAgICAgIGNhc2UgIm0zdSI6CiAgICAgICAgICAgIGRhdGEgPSBTRVJWRVJbInNldHRpbmdzIl1bImZpbGVzIl1bZGF0YVR5cGVdW2lkXTsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgY2FzZSAiaGRociI6CiAgICAgICAgICAgIGRhdGEgPSBTRVJWRVJbInNldHRpbmdzIl1bImZpbGVzIl1bZGF0YVR5cGVdW2lkXTsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgY2FzZSAiZmlsdGVyIjoKICAgICAgICBjYXNlICJjdXN0b20tZmlsdGVyIjoKICAgICAgICBjYXNlICJncm91cC10aXRsZSI6CiAgICAgICAgICAgIGlmIChpZCA9PSAtMSkgewogICAgICAgICAgICAgICAgZGF0YVsiYWN0aXZlIl0gPSB0cnVlOwogICAgICAgICAgICAgICAgZGF0YVsiY2FzZVNlbnNpdGl2ZSJdID0gZmFsc2U7CiAgICAgICAgICAgICAgICBkYXRhWyJkZXNjcmlwdGlvbiJdID0gIiI7CiAgICAgICAgICAgICAgICBkYXRhWyJleGNsdWRlIl0gPSAiIjsKICAgICAgICAgICAgICAgIGRhdGFbImZpbHRlciJdID0gIiI7CiAgICAgICAgICAgICAgICBkYXRhWyJpbmNsdWRlIl0gPSAiIjsKICAgICAgICAgICAgICAgIGRhdGFbIm5hbWUiXSA9ICIiOwogICAgICAgICAgICAgICAgZGF0YVsidHlwZSJdID0gImdyb3VwLXRpdGxlIjsKICAgICAgICAgICAgICAgIGRhdGFbInByZXNlcnZlTWFwcGluZyJdID0gdHJ1ZTsKICAgICAgICAgICAgICAgIGRhdGFbInN0YXJ0aW5nQ2hhbm5lbCJdID0gU0VSVkVSWyJzZXR0aW5ncyJdWyJtYXBwaW5nLmZpcnN0LmNoYW5uZWwiXTsKICAgICAgICAgICAgICAgIFNFUlZFUlsic2V0dGluZ3MiXVsiZmlsdGVyIl1baWRdID0gZGF0YTsKICAgICAgICAgICAgfQogICAgICAgICAgICBkYXRhID0gU0VSVkVSWyJzZXR0aW5ncyJdWyJmaWx0ZXIiXVtpZF07CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgIGNhc2UgInhtbHR2IjoKICAgICAgICAgICAgZGF0YSA9IFNFUlZFUlsic2V0dGluZ3MiXVsiZmlsZXMiXVtkYXRhVHlwZV1baWRdOwogICAgICAgICAgICBicmVhazsKICAgICAgICBjYXNlICJ1c2VycyI6CiAgICAgICAgICAgIGRhdGEgPSBTRVJWRVJbInVzZXJzIl1baWRdWyJkYXRhIl07CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgIGNhc2UgIm1hcHBpbmciOgogICAgICAgICAgICBkYXRhID0gU0VSVkVSWyJ4ZXBnIl1bImVwZ01hcHBpbmciXVtpZF07CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgIGNhc2UgIm0zdUdyb3VwcyI6CiAgICAgICAgICAgIGRhdGEgPSBTRVJWRVJbImRhdGEiXVsicGxheWxpc3QiXVsibTN1Il1bImdyb3VwcyJdOwogICAgICAgICAgICBicmVhazsKICAgIH0KICAgIHJldHVybiBkYXRhOwp9CmZ1bmN0aW9uIGdldE93bk9ialByb3BzKG9iamVjdCkgewogICAgcmV0dXJuIG9iamVjdCA/IE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKG9iamVjdCkgOiBbXTsKfQpmdW5jdGlvbiBnZXRBbGxTZWxlY3RlZENoYW5uZWxzKCkgewogICAgdmFyIGNoYW5uZWxzID0gbmV3IEFycmF5KCk7CiAgICBpZiAoQlVMS19FRElUID09IGZhbHNlKSB7CiAgICAgICAgcmV0dXJuIGNoYW5uZWxzOwogICAgfQogICAgdmFyIHRycyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb250ZW50X3RhYmxlIikuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlRSIik7CiAgICBmb3IgKHZhciBpID0gMTsgaSA8IHRycy5sZW5ndGg7IGkrKykgewogICAgICAgIGlmICh0cnNbaV0uc3R5bGUuZGlzcGxheSAhPSAibm9uZSIpIHsKICAgICAgICAgICAgaWYgKHRyc1tpXS5maXJzdENoaWxkLmZpcnN0Q2hpbGQuY2hlY2tlZCA9PSB0cnVlKSB7CiAgICAgICAgICAgICAgICBjaGFubmVscy5wdXNoKHRyc1tpXS5pZCk7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CiAgICByZXR1cm4gY2hhbm5lbHM7Cn0KZnVuY3Rpb24gc2VsZWN0QWxsQ2hhbm5lbHMoKSB7CiAgICB2YXIgYnVsayA9IGZhbHNlOwogICAgdmFyIHRycyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb250ZW50X3RhYmxlIikuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlRSIik7CiAgICBpZiAodHJzWzBdLmZpcnN0Q2hpbGQuZmlyc3RDaGlsZC5jaGVja2VkID09IHRydWUpIHsKICAgICAgICBidWxrID0gdHJ1ZTsKICAgIH0KICAgIGZvciAodmFyIGkgPSAxOyBpIDwgdHJzLmxlbmd0aDsgaSsrKSB7CiAgICAgICAgaWYgKHRyc1tpXS5zdHlsZS5kaXNwbGF5ICE9ICJub25lIikgewogICAgICAgICAgICBzd2l0Y2ggKGJ1bGspIHsKICAgICAgICAgICAgICAgIGNhc2UgdHJ1ZToKICAgICAgICAgICAgICAgICAgICB0cnNbaV0uZmlyc3RDaGlsZC5maXJzdENoaWxkLmNoZWNrZWQgPSB0cnVlOwogICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgY2FzZSBmYWxzZToKICAgICAgICAgICAgICAgICAgICB0cnNbaV0uZmlyc3RDaGlsZC5maXJzdENoaWxkLmNoZWNrZWQgPSBmYWxzZTsKICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KICAgIHJldHVybjsKfQpmdW5jdGlvbiBidWxrRWRpdCgpIHsKICAgIEJVTEtfRURJVCA9ICFCVUxLX0VESVQ7CiAgICB2YXIgY2xhc3NOYW1lOwogICAgdmFyIHJvd3MgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCJidWxrIik7CiAgICBzd2l0Y2ggKEJVTEtfRURJVCkgewogICAgICAgIGNhc2UgdHJ1ZToKICAgICAgICAgICAgY2xhc3NOYW1lID0gImJ1bGsgc2hvd0J1bGsiOwogICAgICAgICAgICBicmVhazsKICAgICAgICBjYXNlIGZhbHNlOgogICAgICAgICAgICBjbGFzc05hbWUgPSAiYnVsayBoaWRlQnVsayI7CiAgICAgICAgICAgIGJyZWFrOwogICAgfQogICAgZm9yICh2YXIgaSA9IDA7IGkgPCByb3dzLmxlbmd0aDsgaSsrKSB7CiAgICAgICAgcm93c1tpXS5jbGFzc05hbWUgPSBjbGFzc05hbWU7CiAgICAgICAgcm93c1tpXS5jaGVja2VkID0gZmFsc2U7CiAgICB9CiAgICByZXR1cm47Cn0KZnVuY3Rpb24gc29ydFRhYmxlKGNvbHVtbikgewogICAgaWYgKGNvbHVtbiA9PSBDT0xVTU5fVE9fU09SVCkgewogICAgICAgIHJldHVybjsKICAgIH0KICAgIGNvbnN0IHRhYmxlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnRlbnRfdGFibGUiKTsKICAgIGNvbnN0IHRhYmxlSGVhZCA9IHRhYmxlLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJUUiIpWzBdOwogICAgY29uc3QgdGFibGVJdGVtcyA9IHRhYmxlSGVhZC5nZXRFbGVtZW50c0J5VGFnTmFtZSgiVEQiKTsKICAgIGNvbnN0IHNvcnRBcnIgPSBbXTsKICAgIGxldCB4VmFsdWU7CiAgICBpZiAoY29sdW1uID49IDAgJiYgQ09MVU1OX1RPX1NPUlQgPj0gMCkgewogICAgICAgIHRhYmxlSXRlbXNbQ09MVU1OX1RPX1NPUlRdLmNsYXNzTmFtZSA9ICJwb2ludGVyIjsKICAgICAgICB0YWJsZUl0ZW1zW2NvbHVtbl0uY2xhc3NOYW1lID0gInNvcnRUaGlzIjsKICAgIH0KICAgIENPTFVNTl9UT19TT1JUID0gY29sdW1uOwogICAgY29uc3Qgcm93cyA9IHRhYmxlLnJvd3M7CiAgICBpZiAocm93c1sxXSAhPSB1bmRlZmluZWQpIHsKICAgICAgICBjb25zdCB0YWJsZUhlYWRlciA9IHJvd3NbMF07CiAgICAgICAgbGV0IHggPSByb3dzWzFdLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJURCIpW2NvbHVtbl07CiAgICAgICAgZm9yIChsZXQgaSA9IDE7IGkgPCByb3dzLmxlbmd0aDsgaSsrKSB7CiAgICAgICAgICAgIHggPSByb3dzW2ldLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJURCIpW2NvbHVtbl07CiAgICAgICAgICAgIHN3aXRjaCAoeC5jaGlsZE5vZGVzWzBdLnRhZ05hbWUudG9Mb3dlckNhc2UoKSkgewogICAgICAgICAgICAgICAgY2FzZSAiaW5wdXQiOgogICAgICAgICAgICAgICAgICAgIHhWYWx1ZSA9IHguZ2V0RWxlbWVudHNCeVRhZ05hbWUoIklOUFVUIilbMF0udmFsdWUudG9Mb3dlckNhc2UoKTsKICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgIGNhc2UgInAiOgogICAgICAgICAgICAgICAgICAgIHhWYWx1ZSA9IHguZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlAiKVswXS5pbm5lclRleHQudG9Mb3dlckNhc2UoKTsKICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgc29ydEFyci5wdXNoKHsga2V5OiB4VmFsdWUgPyB4VmFsdWUgOiBpLCByb3c6IHJvd3NbaV0gfSk7CiAgICAgICAgfQogICAgICAgIHdoaWxlICh0YWJsZS5maXJzdENoaWxkKSB7CiAgICAgICAgICAgIHRhYmxlLnJlbW92ZUNoaWxkKHRhYmxlLmZpcnN0Q2hpbGQpOwogICAgICAgIH0KICAgICAgICBzb3J0QXJyLnNvcnQoKHNlMSwgc2UyKSA9PiB7CiAgICAgICAgICAgIGNvbnN0IHNlMUtleU51bSA9IHBhcnNlRmxvYXQoU3RyaW5nKHNlMS5rZXkpKTsKICAgICAgICAgICAgY29uc3Qgc2UyS2V5TnVtID0gcGFyc2VGbG9hdChTdHJpbmcoc2UyLmtleSkpOwogICAgICAgICAgICBpZiAoIWlzTmFOKHNlMUtleU51bSkgJiYgIWlzTmFOKHNlMktleU51bSkpIHsKICAgICAgICAgICAgICAgIHJldHVybiBzZTFLZXlOdW0gLSBzZTJLZXlOdW07CiAgICAgICAgICAgIH0KICAgICAgICAgICAgaWYgKHNlMS5rZXkgPCBzZTIua2V5KSB7CiAgICAgICAgICAgICAgICByZXR1cm4gLTE7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgaWYgKHNlMS5rZXkgPiBzZTIua2V5KSB7CiAgICAgICAgICAgICAgICByZXR1cm4gMTsKICAgICAgICAgICAgfQogICAgICAgICAgICByZXR1cm4gMDsKICAgICAgICB9KTsKICAgICAgICB0YWJsZS5hcHBlbmRDaGlsZCh0YWJsZUhlYWRlcik7CiAgICAgICAgc29ydEFyci5mb3JFYWNoKChzZSkgPT4gewogICAgICAgICAgICB0YWJsZS5hcHBlbmRDaGlsZChzZS5yb3cpOwogICAgICAgIH0pOwogICAgfQogICAgcmV0dXJuOwp9CmZ1bmN0aW9uIGNyZWF0ZVNlYXJjaE9iaigpIHsKICAgIFNFQVJDSF9NQVBQSU5HID0gbmV3IE9iamVjdCgpOwogICAgdmFyIGRhdGEgPSBTRVJWRVJbInhlcGciXVsiZXBnTWFwcGluZyJdOwogICAgdmFyIGNoYW5uZWxzID0gZ2V0T3duT2JqUHJvcHMoZGF0YSk7CiAgICB2YXIgY2hhbm5lbEtleXMgPSBbIngtYWN0aXZlIiwgIngtY2hhbm5lbElEIiwgIngtbmFtZSIsICJ1cGRhdGVDaGFubmVsTmFtZVJlZ2V4IiwgIl9maWxlLm0zdS5uYW1lIiwgIngtZ3JvdXAtdGl0bGUiLCAieC14bWx0di1maWxlIl07CiAgICBjaGFubmVscy5mb3JFYWNoKGlkID0+IHsKICAgICAgICBjaGFubmVsS2V5cy5mb3JFYWNoKGtleSA9PiB7CiAgICAgICAgICAgIGlmIChrZXkgPT0gIngtYWN0aXZlIikgewogICAgICAgICAgICAgICAgc3dpdGNoIChkYXRhW2lkXVtrZXldKSB7CiAgICAgICAgICAgICAgICAgICAgY2FzZSB0cnVlOgogICAgICAgICAgICAgICAgICAgICAgICBTRUFSQ0hfTUFQUElOR1tpZF0gPSAib25saW5lICI7CiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICAgIGNhc2UgZmFsc2U6CiAgICAgICAgICAgICAgICAgICAgICAgIFNFQVJDSF9NQVBQSU5HW2lkXSA9ICJvZmZsaW5lICI7CiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgaWYgKGtleSA9PSAieC14bWx0di1maWxlIikgewogICAgICAgICAgICAgICAgICAgIHZhciB4bWx0dkZpbGUgPSBnZXRWYWx1ZUZyb21Qcm92aWRlckZpbGUoZGF0YVtpZF1ba2V5XSwgInhtbHR2IiwgIm5hbWUiKTsKICAgICAgICAgICAgICAgICAgICBpZiAoeG1sdHZGaWxlICE9IHVuZGVmaW5lZCkgewogICAgICAgICAgICAgICAgICAgICAgICBTRUFSQ0hfTUFQUElOR1tpZF0gPSBTRUFSQ0hfTUFQUElOR1tpZF0gKyB4bWx0dkZpbGUgKyAiICI7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgU0VBUkNIX01BUFBJTkdbaWRdID0gU0VBUkNIX01BUFBJTkdbaWRdICsgZGF0YVtpZF1ba2V5XSArICIgIjsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIH0pOwogICAgfSk7CiAgICByZXR1cm47Cn0KZnVuY3Rpb24gc2VhcmNoSW5NYXBwaW5nKCkgewogICAgdmFyIHNlYXJjaFZhbHVlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNlYXJjaE1hcHBpbmciKS52YWx1ZTsKICAgIHZhciB0cnMgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29udGVudF90YWJsZSIpLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJUUiIpOwogICAgZm9yICh2YXIgaSA9IDE7IGkgPCB0cnMubGVuZ3RoOyArK2kpIHsKICAgICAgICB2YXIgaWQgPSB0cnNbaV0uZ2V0QXR0cmlidXRlKCJpZCIpOwogICAgICAgIHZhciBlbGVtZW50ID0gU0VBUkNIX01BUFBJTkdbaWRdOwogICAgICAgIHN3aXRjaCAoZWxlbWVudC50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKHNlYXJjaFZhbHVlLnRvTG93ZXJDYXNlKCkpKSB7CiAgICAgICAgICAgIGNhc2UgdHJ1ZToKICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5zdHlsZS5kaXNwbGF5ID0gIiI7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSBmYWxzZToKICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5zdHlsZS5kaXNwbGF5ID0gIm5vbmUiOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgfQogICAgfQogICAgcmV0dXJuOwp9CmZ1bmN0aW9uIGNhbGN1bGF0ZVdyYXBwZXJIZWlnaHQoKSB7CiAgICBpZiAoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImJveC13cmFwcGVyIikpIHsKICAgICAgICB2YXIgZWxtID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImJveC13cmFwcGVyIik7CiAgICAgICAgdmFyIGRpdnMgPSBuZXcgQXJyYXkoIm15U3RyZWFtc0JveCIsICJjbGllbnRJbmZvIiwgImNvbnRlbnQiKTsKICAgICAgICB2YXIgZWxlbWVudHNIZWlnaHQgPSAwIC0gZWxtLm9mZnNldEhlaWdodDsKICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGRpdnMubGVuZ3RoOyBpKyspIHsKICAgICAgICAgICAgZWxlbWVudHNIZWlnaHQgPSBlbGVtZW50c0hlaWdodCArIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGRpdnNbaV0pLm9mZnNldEhlaWdodDsKICAgICAgICB9CiAgICAgICAgZWxtLnN0eWxlLmhlaWdodCA9IHdpbmRvdy5pbm5lckhlaWdodCAtIGVsZW1lbnRzSGVpZ2h0ICsgInB4IjsKICAgIH0KICAgIHJldHVybjsKfQpmdW5jdGlvbiBjaGFuZ2VDaGFubmVsTnVtYmVyKGVsZW1lbnQpIHsKICAgIHZhciBkYklEID0gZWxlbWVudC5wYXJlbnROb2RlLnBhcmVudE5vZGUuaWQ7CiAgICB2YXIgbmV3TnVtYmVyID0gcGFyc2VGbG9hdChlbGVtZW50LnZhbHVlKTsKICAgIHZhciBjaGFubmVsTnVtYmVycyA9IFtdOwogICAgdmFyIGRhdGEgPSBTRVJWRVJbInhlcGciXVsiZXBnTWFwcGluZyJdOwogICAgdmFyIGNoYW5uZWxzID0gZ2V0T3duT2JqUHJvcHMoZGF0YSk7CiAgICBpZiAoaXNOYU4obmV3TnVtYmVyKSkgewogICAgICAgIGFsZXJ0KCJ7ey5hbGVydC5pbnZhbGlkQ2hhbm5lbE51bWJlcn19Iik7CiAgICAgICAgcmV0dXJuOwogICAgfQogICAgY2hhbm5lbHMuZm9yRWFjaChpZCA9PiB7CiAgICAgICAgdmFyIGNoYW5uZWxOdW1iZXIgPSBwYXJzZUZsb2F0KGRhdGFbaWRdWyJ4LWNoYW5uZWxJRCJdKTsKICAgICAgICBjaGFubmVsTnVtYmVycy5wdXNoKGNoYW5uZWxOdW1iZXIpOwogICAgfSk7CiAgICBmb3IgKHZhciBpID0gMDsgaSA8IGNoYW5uZWxOdW1iZXJzLmxlbmd0aDsgaSsrKSB7CiAgICAgICAgaWYgKGNoYW5uZWxOdW1iZXJzLmluZGV4T2YobmV3TnVtYmVyKSA9PSAtMSkgewogICAgICAgICAgICBicmVhazsKICAgICAgICB9CiAgICAgICAgaWYgKE1hdGguZmxvb3IobmV3TnVtYmVyKSA9PSBuZXdOdW1iZXIpIHsKICAgICAgICAgICAgbmV3TnVtYmVyID0gbmV3TnVtYmVyICsgMTsKICAgICAgICB9CiAgICAgICAgZWxzZSB7CiAgICAgICAgICAgIG5ld051bWJlciA9IG5ld051bWJlciArIDAuMTsKICAgICAgICAgICAgbmV3TnVtYmVyLnRvRml4ZWQoMSk7CiAgICAgICAgICAgIG5ld051bWJlciA9IE1hdGgucm91bmQobmV3TnVtYmVyICogMTApIC8gMTA7CiAgICAgICAgfQogICAgfQogICAgZGF0YVtkYklEXVsieC1jaGFubmVsSUQiXSA9IG5ld051bWJlci50b1N0cmluZygpOwogICAgZWxlbWVudC52YWx1ZSA9IG5ld051bWJlcjsKICAgIGlmIChDT0xVTU5fVE9fU09SVCA9PSAxKSB7CiAgICAgICAgQ09MVU1OX1RPX1NPUlQgPSAtMTsKICAgICAgICBzb3J0VGFibGUoMSk7CiAgICB9CiAgICByZXR1cm47Cn0KZnVuY3Rpb24gYmFja3VwKCkgewogICAgdmFyIGRhdGEgPSBuZXcgT2JqZWN0KCk7CiAgICB2YXIgY21kID0gInh0ZXZlQmFja3VwIjsKICAgIHZhciBzZXJ2ZXIgPSBuZXcgU2VydmVyKGNtZCk7CiAgICBzZXJ2ZXIucmVxdWVzdChkYXRhKTsKICAgIHJldHVybjsKfQpmdW5jdGlvbiB0b2dnbGVDaGFubmVsU3RhdHVzKGlkKSB7CiAgICB2YXIgZWxlbWVudDsKICAgIHZhciBzdGF0dXM7CiAgICBpZiAoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImFjdGl2ZSIpKSB7CiAgICAgICAgdmFyIGNoZWNrYm94ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImFjdGl2ZSIpOwogICAgICAgIHN0YXR1cyA9IChjaGVja2JveCkuY2hlY2tlZDsKICAgIH0KICAgIHZhciBpZHMgPSBnZXRBbGxTZWxlY3RlZENoYW5uZWxzKCk7CiAgICBpZiAoaWRzLmxlbmd0aCA9PSAwKSB7CiAgICAgICAgaWRzLnB1c2goaWQpOwogICAgfQogICAgaWRzLmZvckVhY2goaWQgPT4gewogICAgICAgIHZhciBjaGFubmVsID0gU0VSVkVSWyJ4ZXBnIl1bImVwZ01hcHBpbmciXVtpZF07CiAgICAgICAgY2hhbm5lbFsieC1hY3RpdmUiXSA9IHN0YXR1czsKICAgICAgICBzd2l0Y2ggKGNoYW5uZWxbIngtYWN0aXZlIl0pIHsKICAgICAgICAgICAgY2FzZSB0cnVlOgogICAgICAgICAgICAgICAgaWYgKGNoYW5uZWxbIngteG1sdHYtZmlsZSJdID09ICItIiB8fCBjaGFubmVsWyJ4LW1hcHBpbmciXSA9PSAiLSIpIHsKICAgICAgICAgICAgICAgICAgICBpZiAoQlVMS19FRElUID09IGZhbHNlKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGFsZXJ0KGNoYW5uZWxbIngtbmFtZSJdICsgIjogTWlzc2luZyBYTUxUViBmaWxlIC8gY2hhbm5lbCIpOwogICAgICAgICAgICAgICAgICAgICAgICBjaGVja2JveC5jaGVja2VkID0gZmFsc2U7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIGNoYW5uZWxbIngtYWN0aXZlIl0gPSBmYWxzZTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlIGZhbHNlOgogICAgICAgICAgICAgICAgLy8gY29kZS4uLgogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgfQogICAgICAgIGlmIChjaGFubmVsWyJ4LWFjdGl2ZSJdID09IGZhbHNlKSB7CiAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5jbGFzc05hbWUgPSAibm90QWN0aXZlRVBHIjsKICAgICAgICB9CiAgICAgICAgZWxzZSB7CiAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5jbGFzc05hbWUgPSAiYWN0aXZlRVBHIjsKICAgICAgICB9CiAgICB9KTsKfQpmdW5jdGlvbiB0b2dnbGVHcm91cFVwZGF0ZUNiKHhlcGdJZCwgdGFyZ2V0KSB7CiAgICB0YXJnZXQuY2xhc3NOYW1lID0gJ2NoYW5nZWQnOwogICAgY29uc3QgZ3JvdXBJbnB1dCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ2lucHV0W25hbWU9IngtZ3JvdXAtdGl0bGUiXScpOwogICAgY29uc3QgbWFwcGluZyA9IGdldExvY2FsRGF0YSgnbWFwcGluZycsIHhlcGdJZCk7CiAgICBpZiAodGFyZ2V0LmNoZWNrZWQpIHsKICAgICAgICBncm91cElucHV0LmRhdGFzZXQub2xkVmFsdWUgPSBncm91cElucHV0LnZhbHVlOwogICAgICAgIGdyb3VwSW5wdXQudmFsdWUgPSBtYXBwaW5nWydncm91cC10aXRsZSddOwogICAgICAgIGdyb3VwSW5wdXQuZGlzYWJsZWQgPSB0cnVlOwogICAgfQogICAgZWxzZSB7CiAgICAgICAgZ3JvdXBJbnB1dC52YWx1ZSA9IGdyb3VwSW5wdXQuZGF0YXNldC5vbGRWYWx1ZTsKICAgICAgICBncm91cElucHV0LmRpc2FibGVkID0gZmFsc2U7CiAgICB9CiAgICBncm91cElucHV0LmNsYXNzTmFtZSA9ICdjaGFuZ2VkJzsKfQpmdW5jdGlvbiByZXN0b3JlKCkgewogICAgaWYgKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd1cGxvYWQnKSkgewogICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd1cGxvYWQnKS5yZW1vdmUoKTsKICAgIH0KICAgIHZhciByZXN0b3JlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiSU5QVVQiKTsKICAgIHJlc3RvcmUuc2V0QXR0cmlidXRlKCJ0eXBlIiwgImZpbGUiKTsKICAgIHJlc3RvcmUuc2V0QXR0cmlidXRlKCJjbGFzcyIsICJub3RWaXNpYmxlIik7CiAgICByZXN0b3JlLnNldEF0dHJpYnV0ZSgibmFtZSIsICIiKTsKICAgIHJlc3RvcmUuaWQgPSAidXBsb2FkIjsKICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQocmVzdG9yZSk7CiAgICByZXN0b3JlLmNsaWNrKCk7CiAgICByZXN0b3JlLm9uY2hhbmdlID0gZnVuY3Rpb24gKCkgewogICAgICAgIHZhciBmaWxlbmFtZSA9IHJlc3RvcmUuZmlsZXNbMF0ubmFtZTsKICAgICAgICB2YXIgY2hlY2sgPSBjb25maXJtKCJGaWxlOiAiICsgZmlsZW5hbWUgKyAiXG57ey5jb25maXJtLnJlc3RvcmV9fSIpOwogICAgICAgIGlmIChjaGVjayA9PSB0cnVlKSB7CiAgICAgICAgICAgIHZhciByZWFkZXIgPSBuZXcgRmlsZVJlYWRlcigpOwogICAgICAgICAgICB2YXIgZmlsZSA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ2lucHV0W3R5cGU9ZmlsZV0nKS5maWxlc1swXTsKICAgICAgICAgICAgaWYgKGZpbGUpIHsKICAgICAgICAgICAgICAgIHJlYWRlci5yZWFkQXNEYXRhVVJMKGZpbGUpOwogICAgICAgICAgICAgICAgcmVhZGVyLm9ubG9hZCA9IGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgICAgICB2YXIgZGF0YSA9IG5ldyBPYmplY3QoKTsKICAgICAgICAgICAgICAgICAgICB2YXIgY21kID0gInh0ZXZlUmVzdG9yZSI7CiAgICAgICAgICAgICAgICAgICAgZGF0YVsiYmFzZTY0Il0gPSByZWFkZXIucmVzdWx0OwogICAgICAgICAgICAgICAgICAgIHZhciBzZXJ2ZXIgPSBuZXcgU2VydmVyKGNtZCk7CiAgICAgICAgICAgICAgICAgICAgc2VydmVyLnJlcXVlc3QoZGF0YSk7CiAgICAgICAgICAgICAgICB9OwogICAgICAgICAgICB9CiAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgYWxlcnQoIkZpbGUgY291bGQgbm90IGJlIGxvYWRlZCIpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIHJlc3RvcmUucmVtb3ZlKCk7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICB9OwogICAgcmV0dXJuOwp9CmZ1bmN0aW9uIHVwbG9hZExvZ28oKSB7CiAgICBpZiAoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3VwbG9hZCcpKSB7CiAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3VwbG9hZCcpLnJlbW92ZSgpOwogICAgfQogICAgdmFyIHVwbG9hZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIklOUFVUIik7CiAgICB1cGxvYWQuc2V0QXR0cmlidXRlKCJ0eXBlIiwgImZpbGUiKTsKICAgIHVwbG9hZC5zZXRBdHRyaWJ1dGUoImNsYXNzIiwgIm5vdFZpc2libGUiKTsKICAgIHVwbG9hZC5zZXRBdHRyaWJ1dGUoIm5hbWUiLCAiIik7CiAgICB1cGxvYWQuaWQgPSAidXBsb2FkIjsKICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQodXBsb2FkKTsKICAgIHVwbG9hZC5jbGljaygpOwogICAgdXBsb2FkLm9uYmx1ciA9IGZ1bmN0aW9uICgpIHsKICAgICAgICBhbGVydCgpOwogICAgfTsKICAgIHVwbG9hZC5vbmNoYW5nZSA9IGZ1bmN0aW9uICgpIHsKICAgICAgICB2YXIgZmlsZW5hbWUgPSB1cGxvYWQuZmlsZXNbMF0ubmFtZTsKICAgICAgICB2YXIgcmVhZGVyID0gbmV3IEZpbGVSZWFkZXIoKTsKICAgICAgICB2YXIgZmlsZSA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ2lucHV0W3R5cGU9ZmlsZV0nKS5maWxlc1swXTsKICAgICAgICBpZiAoZmlsZSkgewogICAgICAgICAgICByZWFkZXIucmVhZEFzRGF0YVVSTChmaWxlKTsKICAgICAgICAgICAgcmVhZGVyLm9ubG9hZCA9IGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgIHZhciBkYXRhID0gbmV3IE9iamVjdCgpOwogICAgICAgICAgICAgICAgdmFyIGNtZCA9ICJ1cGxvYWRMb2dvIjsKICAgICAgICAgICAgICAgIGRhdGFbImJhc2U2NCJdID0gcmVhZGVyLnJlc3VsdDsKICAgICAgICAgICAgICAgIGRhdGFbImZpbGVuYW1lIl0gPSBmaWxlLm5hbWU7CiAgICAgICAgICAgICAgICB2YXIgc2VydmVyID0gbmV3IFNlcnZlcihjbWQpOwogICAgICAgICAgICAgICAgc2VydmVyLnJlcXVlc3QoZGF0YSk7CiAgICAgICAgICAgICAgICB2YXIgdXBkYXRlTG9nbyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd1cGRhdGUtaWNvbicpOwogICAgICAgICAgICAgICAgdXBkYXRlTG9nby5jaGVja2VkID0gZmFsc2U7CiAgICAgICAgICAgICAgICB1cGRhdGVMb2dvLmNsYXNzTmFtZSA9ICJjaGFuZ2VkIjsKICAgICAgICAgICAgfTsKICAgICAgICB9CiAgICAgICAgZWxzZSB7CiAgICAgICAgICAgIGFsZXJ0KCJGaWxlIGNvdWxkIG5vdCBiZSBsb2FkZWQiKTsKICAgICAgICB9CiAgICAgICAgdXBsb2FkLnJlbW92ZSgpOwogICAgICAgIHJldHVybjsKICAgIH07Cn0KZnVuY3Rpb24gY2hlY2tVbmRvKGtleSkgewogICAgc3dpdGNoIChrZXkpIHsKICAgICAgICBjYXNlICJlcGdNYXBwaW5nIjoKICAgICAgICAgICAgaWYgKFVORE8uaGFzT3duUHJvcGVydHkoa2V5KSkgewogICAgICAgICAgICAgICAgU0VSVkVSWyJ4ZXBnIl1ba2V5XSA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkoVU5ET1trZXldKSk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICBVTkRPW2tleV0gPSBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KFNFUlZFUlsieGVwZyJdW2tleV0pKTsKICAgICAgICAgICAgfQogICAgICAgICAgICBicmVhazsKICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICBicmVhazsKICAgIH0KICAgIHJldHVybjsKfQpmdW5jdGlvbiB1cGRhdGVMb2coKSB7CiAgICB2YXIgc2VydmVyID0gbmV3IFNlcnZlcigidXBkYXRlTG9nIik7CiAgICBzZXJ2ZXIucmVxdWVzdChuZXcgT2JqZWN0KCkpOwp9Cg==" + webUI["html/js/base_ts.js"] = "dmFyIFNFUlZFUiA9IG5ldyBPYmplY3QoKTsKdmFyIEJVTEtfRURJVCA9IGZhbHNlOwp2YXIgQ09MVU1OX1RPX1NPUlQ7CnZhciBTRUFSQ0hfTUFQUElORyA9IG5ldyBPYmplY3QoKTsKdmFyIFVORE8gPSBuZXcgT2JqZWN0KCk7CnZhciBTRVJWRVJfQ09OTkVDVElPTiA9IGZhbHNlOwp2YXIgV1NfQVZBSUxBQkxFID0gZmFsc2U7Ci8vIE1lbnUKdmFyIG1lbnVJdGVtcyA9IG5ldyBBcnJheSgpOwptZW51SXRlbXMucHVzaChuZXcgTWFpbk1lbnVJdGVtKCJwbGF5bGlzdCIsICJ7ey5tYWluTWVudS5pdGVtLnBsYXlsaXN0fX0iLCAibTN1LnBuZyIsICJ7ey5tYWluTWVudS5oZWFkbGluZS5wbGF5bGlzdH19IikpOwptZW51SXRlbXMucHVzaChuZXcgTWFpbk1lbnVJdGVtKCJmaWx0ZXIiLCAie3subWFpbk1lbnUuaXRlbS5maWx0ZXJ9fSIsICJmaWx0ZXIucG5nIiwgInt7Lm1haW5NZW51LmhlYWRsaW5lLmZpbHRlcn19IikpOwptZW51SXRlbXMucHVzaChuZXcgTWFpbk1lbnVJdGVtKCJ4bWx0diIsICJ7ey5tYWluTWVudS5pdGVtLnhtbHR2fX0iLCAieG1sdHYucG5nIiwgInt7Lm1haW5NZW51LmhlYWRsaW5lLnhtbHR2fX0iKSk7Cm1lbnVJdGVtcy5wdXNoKG5ldyBNYWluTWVudUl0ZW0oIm1hcHBpbmciLCAie3subWFpbk1lbnUuaXRlbS5tYXBwaW5nfX0iLCAibWFwcGluZy5wbmciLCAie3subWFpbk1lbnUuaGVhZGxpbmUubWFwcGluZ319IikpOwptZW51SXRlbXMucHVzaChuZXcgTWFpbk1lbnVJdGVtKCJ1c2VycyIsICJ7ey5tYWluTWVudS5pdGVtLnVzZXJzfX0iLCAidXNlcnMucG5nIiwgInt7Lm1haW5NZW51LmhlYWRsaW5lLnVzZXJzfX0iKSk7Cm1lbnVJdGVtcy5wdXNoKG5ldyBNYWluTWVudUl0ZW0oInNldHRpbmdzIiwgInt7Lm1haW5NZW51Lml0ZW0uc2V0dGluZ3N9fSIsICJzZXR0aW5ncy5wbmciLCAie3subWFpbk1lbnUuaGVhZGxpbmUuc2V0dGluZ3N9fSIpKTsKbWVudUl0ZW1zLnB1c2gobmV3IE1haW5NZW51SXRlbSgibG9nIiwgInt7Lm1haW5NZW51Lml0ZW0ubG9nfX0iLCAibG9nLnBuZyIsICJ7ey5tYWluTWVudS5oZWFkbGluZS5sb2d9fSIpKTsKbWVudUl0ZW1zLnB1c2gobmV3IE1haW5NZW51SXRlbSgibG9nb3V0IiwgInt7Lm1haW5NZW51Lml0ZW0ubG9nb3V0fX0iLCAibG9nb3V0LnBuZyIsICJ7ey5tYWluTWVudS5oZWFkbGluZS5sb2dvdXR9fSIpKTsKLy8gU2V0dGluZ3MgY2F0ZWdvcmllcwp2YXIgc2V0dGluZ3NDYXRlZ29yeSA9IG5ldyBBcnJheSgpOwpzZXR0aW5nc0NhdGVnb3J5LnB1c2gobmV3IFNldHRpbmdzQ2F0ZWdvcnlJdGVtKCJ7ey5zZXR0aW5ncy5jYXRlZ29yeS5nZW5lcmFsfX0iLCAidGxzTW9kZSx4dGV2ZUF1dG9VcGRhdGUsaG9zdElQLGhvc3ROYW1lLHR1bmVyLGVwZ1NvdXJjZSxkaXNhbGxvd1VSTER1cGxpY2F0ZXMsY2xlYXJYTUxUVkNhY2hlLGFwaSIpKTsKc2V0dGluZ3NDYXRlZ29yeS5wdXNoKG5ldyBTZXR0aW5nc0NhdGVnb3J5SXRlbSgie3suc2V0dGluZ3MuY2F0ZWdvcnkubWFwcGluZ319IiwgImRlZmF1bHRNaXNzaW5nRVBHLGVuYWJsZU1hcHBlZENoYW5uZWxzIikpOwpzZXR0aW5nc0NhdGVnb3J5LnB1c2gobmV3IFNldHRpbmdzQ2F0ZWdvcnlJdGVtKCJ7ey5zZXR0aW5ncy5jYXRlZ29yeS5maWxlc319IiwgInVwZGF0ZSxmaWxlcy51cGRhdGUsdGVtcC5wYXRoLGNhY2hlLmltYWdlcyx4ZXBnLnJlcGxhY2UubWlzc2luZy5pbWFnZXMiKSk7CnNldHRpbmdzQ2F0ZWdvcnkucHVzaChuZXcgU2V0dGluZ3NDYXRlZ29yeUl0ZW0oInt7LnNldHRpbmdzLmNhdGVnb3J5LnN0cmVhbWluZ319IiwgImJ1ZmZlcix1ZHB4eSxidWZmZXIuc2l6ZS5rYixzdG9yZUJ1ZmZlckluUkFNLGJ1ZmZlci50aW1lb3V0LHVzZXIuYWdlbnQsZmZtcGVnLnBhdGgsZmZtcGVnLm9wdGlvbnMsdmxjLnBhdGgsdmxjLm9wdGlvbnMiKSk7CnNldHRpbmdzQ2F0ZWdvcnkucHVzaChuZXcgU2V0dGluZ3NDYXRlZ29yeUl0ZW0oInt7LnNldHRpbmdzLmNhdGVnb3J5LmJhY2t1cH19IiwgImJhY2t1cC5wYXRoLGJhY2t1cC5rZWVwIikpOwpzZXR0aW5nc0NhdGVnb3J5LnB1c2gobmV3IFNldHRpbmdzQ2F0ZWdvcnlJdGVtKCJ7ey5zZXR0aW5ncy5jYXRlZ29yeS5hdXRoZW50aWNhdGlvbn19IiwgImF1dGhlbnRpY2F0aW9uLndlYixhdXRoZW50aWNhdGlvbi5wbXMsYXV0aGVudGljYXRpb24ubTN1LGF1dGhlbnRpY2F0aW9uLnhtbCxhdXRoZW50aWNhdGlvbi5hcGkiKSk7CmZ1bmN0aW9uIHNob3dQb3BVcEVsZW1lbnQoZWxtKSB7CiAgICB2YXIgYWxsRWxlbWVudHMgPSBuZXcgQXJyYXkoInBvcHVwLWN1c3RvbSIpOwogICAgZm9yICh2YXIgaSA9IDA7IGkgPCBhbGxFbGVtZW50cy5sZW5ndGg7IGkrKykgewogICAgICAgIHNob3dFbGVtZW50KGFsbEVsZW1lbnRzW2ldLCBmYWxzZSk7CiAgICB9CiAgICBzaG93RWxlbWVudChlbG0sIHRydWUpOwogICAgc2V0VGltZW91dChmdW5jdGlvbiAoKSB7CiAgICAgICAgc2hvd0VsZW1lbnQoInBvcHVwIiwgdHJ1ZSk7CiAgICB9LCAxMCk7CiAgICByZXR1cm47Cn0KZnVuY3Rpb24gc2hvd0VsZW1lbnQoZWxtSUQsIHR5cGUpIHsKICAgIHZhciBjc3NDbGFzczsKICAgIHN3aXRjaCAodHlwZSkgewogICAgICAgIGNhc2UgdHJ1ZToKICAgICAgICAgICAgY3NzQ2xhc3MgPSAiYmxvY2siOwogICAgICAgICAgICBicmVhazsKICAgICAgICBjYXNlIGZhbHNlOgogICAgICAgICAgICBjc3NDbGFzcyA9ICJub25lIjsKICAgICAgICAgICAgYnJlYWs7CiAgICB9CiAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChlbG1JRCkuY2xhc3NOYW1lID0gY3NzQ2xhc3M7Cn0KZnVuY3Rpb24gY2hhbmdlQnV0dG9uQWN0aW9uKGVsZW1lbnQsIGJ1dHRvbklELCBhdHRyaWJ1dGUpIHsKICAgIHZhciB2YWx1ZSA9IGVsZW1lbnQub3B0aW9uc1tlbGVtZW50LnNlbGVjdGVkSW5kZXhdLnZhbHVlOwogICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoYnV0dG9uSUQpLnNldEF0dHJpYnV0ZShhdHRyaWJ1dGUsIHZhbHVlKTsKfQpmdW5jdGlvbiBnZXRMb2NhbERhdGEoZGF0YVR5cGUsIGlkKSB7CiAgICBsZXQgZGF0YSA9IHt9OwogICAgc3dpdGNoIChkYXRhVHlwZSkgewogICAgICAgIGNhc2UgIm0zdSI6CiAgICAgICAgICAgIGRhdGEgPSBTRVJWRVJbInNldHRpbmdzIl1bImZpbGVzIl1bZGF0YVR5cGVdW2lkXTsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgY2FzZSAiaGRociI6CiAgICAgICAgICAgIGRhdGEgPSBTRVJWRVJbInNldHRpbmdzIl1bImZpbGVzIl1bZGF0YVR5cGVdW2lkXTsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgY2FzZSAiZmlsdGVyIjoKICAgICAgICBjYXNlICJjdXN0b20tZmlsdGVyIjoKICAgICAgICBjYXNlICJncm91cC10aXRsZSI6CiAgICAgICAgICAgIGlmIChpZCA9PSAtMSkgewogICAgICAgICAgICAgICAgZGF0YVsiYWN0aXZlIl0gPSB0cnVlOwogICAgICAgICAgICAgICAgZGF0YVsiY2FzZVNlbnNpdGl2ZSJdID0gZmFsc2U7CiAgICAgICAgICAgICAgICBkYXRhWyJkZXNjcmlwdGlvbiJdID0gIiI7CiAgICAgICAgICAgICAgICBkYXRhWyJleGNsdWRlIl0gPSAiIjsKICAgICAgICAgICAgICAgIGRhdGFbImZpbHRlciJdID0gIiI7CiAgICAgICAgICAgICAgICBkYXRhWyJpbmNsdWRlIl0gPSAiIjsKICAgICAgICAgICAgICAgIGRhdGFbIm5hbWUiXSA9ICIiOwogICAgICAgICAgICAgICAgZGF0YVsidHlwZSJdID0gImdyb3VwLXRpdGxlIjsKICAgICAgICAgICAgICAgIGRhdGFbInByZXNlcnZlTWFwcGluZyJdID0gdHJ1ZTsKICAgICAgICAgICAgICAgIGRhdGFbInN0YXJ0aW5nQ2hhbm5lbCJdID0gU0VSVkVSWyJzZXR0aW5ncyJdWyJtYXBwaW5nLmZpcnN0LmNoYW5uZWwiXTsKICAgICAgICAgICAgICAgIFNFUlZFUlsic2V0dGluZ3MiXVsiZmlsdGVyIl1baWRdID0gZGF0YTsKICAgICAgICAgICAgfQogICAgICAgICAgICBkYXRhID0gU0VSVkVSWyJzZXR0aW5ncyJdWyJmaWx0ZXIiXVtpZF07CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgIGNhc2UgInhtbHR2IjoKICAgICAgICAgICAgZGF0YSA9IFNFUlZFUlsic2V0dGluZ3MiXVsiZmlsZXMiXVtkYXRhVHlwZV1baWRdOwogICAgICAgICAgICBicmVhazsKICAgICAgICBjYXNlICJ1c2VycyI6CiAgICAgICAgICAgIGRhdGEgPSBTRVJWRVJbInVzZXJzIl1baWRdWyJkYXRhIl07CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgIGNhc2UgIm1hcHBpbmciOgogICAgICAgICAgICBkYXRhID0gU0VSVkVSWyJ4ZXBnIl1bImVwZ01hcHBpbmciXVtpZF07CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgIGNhc2UgIm0zdUdyb3VwcyI6CiAgICAgICAgICAgIGRhdGEgPSBTRVJWRVJbImRhdGEiXVsicGxheWxpc3QiXVsibTN1Il1bImdyb3VwcyJdOwogICAgICAgICAgICBicmVhazsKICAgIH0KICAgIHJldHVybiBkYXRhOwp9CmZ1bmN0aW9uIGdldE93bk9ialByb3BzKG9iamVjdCkgewogICAgcmV0dXJuIG9iamVjdCA/IE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKG9iamVjdCkgOiBbXTsKfQpmdW5jdGlvbiBnZXRBbGxTZWxlY3RlZENoYW5uZWxzKCkgewogICAgdmFyIGNoYW5uZWxzID0gbmV3IEFycmF5KCk7CiAgICBpZiAoQlVMS19FRElUID09IGZhbHNlKSB7CiAgICAgICAgcmV0dXJuIGNoYW5uZWxzOwogICAgfQogICAgdmFyIHRycyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb250ZW50X3RhYmxlIikuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlRSIik7CiAgICBmb3IgKHZhciBpID0gMTsgaSA8IHRycy5sZW5ndGg7IGkrKykgewogICAgICAgIGlmICh0cnNbaV0uc3R5bGUuZGlzcGxheSAhPSAibm9uZSIpIHsKICAgICAgICAgICAgaWYgKHRyc1tpXS5maXJzdENoaWxkLmZpcnN0Q2hpbGQuY2hlY2tlZCA9PSB0cnVlKSB7CiAgICAgICAgICAgICAgICBjaGFubmVscy5wdXNoKHRyc1tpXS5pZCk7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CiAgICByZXR1cm4gY2hhbm5lbHM7Cn0KZnVuY3Rpb24gc2VsZWN0QWxsQ2hhbm5lbHMoKSB7CiAgICB2YXIgYnVsayA9IGZhbHNlOwogICAgdmFyIHRycyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb250ZW50X3RhYmxlIikuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlRSIik7CiAgICBpZiAodHJzWzBdLmZpcnN0Q2hpbGQuZmlyc3RDaGlsZC5jaGVja2VkID09IHRydWUpIHsKICAgICAgICBidWxrID0gdHJ1ZTsKICAgIH0KICAgIGZvciAodmFyIGkgPSAxOyBpIDwgdHJzLmxlbmd0aDsgaSsrKSB7CiAgICAgICAgaWYgKHRyc1tpXS5zdHlsZS5kaXNwbGF5ICE9ICJub25lIikgewogICAgICAgICAgICBzd2l0Y2ggKGJ1bGspIHsKICAgICAgICAgICAgICAgIGNhc2UgdHJ1ZToKICAgICAgICAgICAgICAgICAgICB0cnNbaV0uZmlyc3RDaGlsZC5maXJzdENoaWxkLmNoZWNrZWQgPSB0cnVlOwogICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgY2FzZSBmYWxzZToKICAgICAgICAgICAgICAgICAgICB0cnNbaV0uZmlyc3RDaGlsZC5maXJzdENoaWxkLmNoZWNrZWQgPSBmYWxzZTsKICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KICAgIHJldHVybjsKfQpmdW5jdGlvbiBidWxrRWRpdCgpIHsKICAgIEJVTEtfRURJVCA9ICFCVUxLX0VESVQ7CiAgICB2YXIgY2xhc3NOYW1lOwogICAgdmFyIHJvd3MgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCJidWxrIik7CiAgICBzd2l0Y2ggKEJVTEtfRURJVCkgewogICAgICAgIGNhc2UgdHJ1ZToKICAgICAgICAgICAgY2xhc3NOYW1lID0gImJ1bGsgc2hvd0J1bGsiOwogICAgICAgICAgICBicmVhazsKICAgICAgICBjYXNlIGZhbHNlOgogICAgICAgICAgICBjbGFzc05hbWUgPSAiYnVsayBoaWRlQnVsayI7CiAgICAgICAgICAgIGJyZWFrOwogICAgfQogICAgZm9yICh2YXIgaSA9IDA7IGkgPCByb3dzLmxlbmd0aDsgaSsrKSB7CiAgICAgICAgcm93c1tpXS5jbGFzc05hbWUgPSBjbGFzc05hbWU7CiAgICAgICAgcm93c1tpXS5jaGVja2VkID0gZmFsc2U7CiAgICB9CiAgICByZXR1cm47Cn0KZnVuY3Rpb24gc29ydFRhYmxlKGNvbHVtbikgewogICAgaWYgKGNvbHVtbiA9PSBDT0xVTU5fVE9fU09SVCkgewogICAgICAgIHJldHVybjsKICAgIH0KICAgIGNvbnN0IHRhYmxlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnRlbnRfdGFibGUiKTsKICAgIGNvbnN0IHRhYmxlSGVhZCA9IHRhYmxlLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJUUiIpWzBdOwogICAgY29uc3QgdGFibGVJdGVtcyA9IHRhYmxlSGVhZC5nZXRFbGVtZW50c0J5VGFnTmFtZSgiVEQiKTsKICAgIGNvbnN0IHNvcnRBcnIgPSBbXTsKICAgIGxldCB4VmFsdWU7CiAgICBpZiAoY29sdW1uID49IDAgJiYgQ09MVU1OX1RPX1NPUlQgPj0gMCkgewogICAgICAgIHRhYmxlSXRlbXNbQ09MVU1OX1RPX1NPUlRdLmNsYXNzTmFtZSA9ICJwb2ludGVyIjsKICAgICAgICB0YWJsZUl0ZW1zW2NvbHVtbl0uY2xhc3NOYW1lID0gInNvcnRUaGlzIjsKICAgIH0KICAgIENPTFVNTl9UT19TT1JUID0gY29sdW1uOwogICAgY29uc3Qgcm93cyA9IHRhYmxlLnJvd3M7CiAgICBpZiAocm93c1sxXSAhPSB1bmRlZmluZWQpIHsKICAgICAgICBjb25zdCB0YWJsZUhlYWRlciA9IHJvd3NbMF07CiAgICAgICAgbGV0IHggPSByb3dzWzFdLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJURCIpW2NvbHVtbl07CiAgICAgICAgZm9yIChsZXQgaSA9IDE7IGkgPCByb3dzLmxlbmd0aDsgaSsrKSB7CiAgICAgICAgICAgIHggPSByb3dzW2ldLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJURCIpW2NvbHVtbl07CiAgICAgICAgICAgIHN3aXRjaCAoeC5jaGlsZE5vZGVzWzBdLnRhZ05hbWUudG9Mb3dlckNhc2UoKSkgewogICAgICAgICAgICAgICAgY2FzZSAiaW5wdXQiOgogICAgICAgICAgICAgICAgICAgIHhWYWx1ZSA9IHguZ2V0RWxlbWVudHNCeVRhZ05hbWUoIklOUFVUIilbMF0udmFsdWUudG9Mb3dlckNhc2UoKTsKICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgIGNhc2UgInAiOgogICAgICAgICAgICAgICAgICAgIHhWYWx1ZSA9IHguZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlAiKVswXS5pbm5lclRleHQudG9Mb3dlckNhc2UoKTsKICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgc29ydEFyci5wdXNoKHsga2V5OiB4VmFsdWUgPyB4VmFsdWUgOiBpLCByb3c6IHJvd3NbaV0gfSk7CiAgICAgICAgfQogICAgICAgIHdoaWxlICh0YWJsZS5maXJzdENoaWxkKSB7CiAgICAgICAgICAgIHRhYmxlLnJlbW92ZUNoaWxkKHRhYmxlLmZpcnN0Q2hpbGQpOwogICAgICAgIH0KICAgICAgICBzb3J0QXJyLnNvcnQoKHNlMSwgc2UyKSA9PiB7CiAgICAgICAgICAgIGNvbnN0IHNlMUtleU51bSA9IHBhcnNlRmxvYXQoU3RyaW5nKHNlMS5rZXkpKTsKICAgICAgICAgICAgY29uc3Qgc2UyS2V5TnVtID0gcGFyc2VGbG9hdChTdHJpbmcoc2UyLmtleSkpOwogICAgICAgICAgICBpZiAoIWlzTmFOKHNlMUtleU51bSkgJiYgIWlzTmFOKHNlMktleU51bSkpIHsKICAgICAgICAgICAgICAgIHJldHVybiBzZTFLZXlOdW0gLSBzZTJLZXlOdW07CiAgICAgICAgICAgIH0KICAgICAgICAgICAgaWYgKHNlMS5rZXkgPCBzZTIua2V5KSB7CiAgICAgICAgICAgICAgICByZXR1cm4gLTE7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgaWYgKHNlMS5rZXkgPiBzZTIua2V5KSB7CiAgICAgICAgICAgICAgICByZXR1cm4gMTsKICAgICAgICAgICAgfQogICAgICAgICAgICByZXR1cm4gMDsKICAgICAgICB9KTsKICAgICAgICB0YWJsZS5hcHBlbmRDaGlsZCh0YWJsZUhlYWRlcik7CiAgICAgICAgc29ydEFyci5mb3JFYWNoKChzZSkgPT4gewogICAgICAgICAgICB0YWJsZS5hcHBlbmRDaGlsZChzZS5yb3cpOwogICAgICAgIH0pOwogICAgfQogICAgcmV0dXJuOwp9CmZ1bmN0aW9uIGNyZWF0ZVNlYXJjaE9iaigpIHsKICAgIFNFQVJDSF9NQVBQSU5HID0gbmV3IE9iamVjdCgpOwogICAgdmFyIGRhdGEgPSBTRVJWRVJbInhlcGciXVsiZXBnTWFwcGluZyJdOwogICAgdmFyIGNoYW5uZWxzID0gZ2V0T3duT2JqUHJvcHMoZGF0YSk7CiAgICB2YXIgY2hhbm5lbEtleXMgPSBbIngtYWN0aXZlIiwgIngtY2hhbm5lbElEIiwgIngtbmFtZSIsICJ1cGRhdGVDaGFubmVsTmFtZVJlZ2V4IiwgIl9maWxlLm0zdS5uYW1lIiwgIngtZ3JvdXAtdGl0bGUiLCAieC14bWx0di1maWxlIl07CiAgICBjaGFubmVscy5mb3JFYWNoKGlkID0+IHsKICAgICAgICBjaGFubmVsS2V5cy5mb3JFYWNoKGtleSA9PiB7CiAgICAgICAgICAgIGlmIChrZXkgPT0gIngtYWN0aXZlIikgewogICAgICAgICAgICAgICAgc3dpdGNoIChkYXRhW2lkXVtrZXldKSB7CiAgICAgICAgICAgICAgICAgICAgY2FzZSB0cnVlOgogICAgICAgICAgICAgICAgICAgICAgICBTRUFSQ0hfTUFQUElOR1tpZF0gPSAib25saW5lICI7CiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICAgIGNhc2UgZmFsc2U6CiAgICAgICAgICAgICAgICAgICAgICAgIFNFQVJDSF9NQVBQSU5HW2lkXSA9ICJvZmZsaW5lICI7CiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgaWYgKGtleSA9PSAieC14bWx0di1maWxlIikgewogICAgICAgICAgICAgICAgICAgIHZhciB4bWx0dkZpbGUgPSBnZXRWYWx1ZUZyb21Qcm92aWRlckZpbGUoZGF0YVtpZF1ba2V5XSwgInhtbHR2IiwgIm5hbWUiKTsKICAgICAgICAgICAgICAgICAgICBpZiAoeG1sdHZGaWxlICE9IHVuZGVmaW5lZCkgewogICAgICAgICAgICAgICAgICAgICAgICBTRUFSQ0hfTUFQUElOR1tpZF0gPSBTRUFSQ0hfTUFQUElOR1tpZF0gKyB4bWx0dkZpbGUgKyAiICI7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgU0VBUkNIX01BUFBJTkdbaWRdID0gU0VBUkNIX01BUFBJTkdbaWRdICsgZGF0YVtpZF1ba2V5XSArICIgIjsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIH0pOwogICAgfSk7CiAgICByZXR1cm47Cn0KZnVuY3Rpb24gc2VhcmNoSW5NYXBwaW5nKCkgewogICAgdmFyIHNlYXJjaFZhbHVlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNlYXJjaE1hcHBpbmciKS52YWx1ZTsKICAgIHZhciB0cnMgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29udGVudF90YWJsZSIpLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJUUiIpOwogICAgZm9yICh2YXIgaSA9IDE7IGkgPCB0cnMubGVuZ3RoOyArK2kpIHsKICAgICAgICB2YXIgaWQgPSB0cnNbaV0uZ2V0QXR0cmlidXRlKCJpZCIpOwogICAgICAgIHZhciBlbGVtZW50ID0gU0VBUkNIX01BUFBJTkdbaWRdOwogICAgICAgIHN3aXRjaCAoZWxlbWVudC50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKHNlYXJjaFZhbHVlLnRvTG93ZXJDYXNlKCkpKSB7CiAgICAgICAgICAgIGNhc2UgdHJ1ZToKICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5zdHlsZS5kaXNwbGF5ID0gIiI7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSBmYWxzZToKICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5zdHlsZS5kaXNwbGF5ID0gIm5vbmUiOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgfQogICAgfQogICAgcmV0dXJuOwp9CmZ1bmN0aW9uIGNhbGN1bGF0ZVdyYXBwZXJIZWlnaHQoKSB7CiAgICBpZiAoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImJveC13cmFwcGVyIikpIHsKICAgICAgICB2YXIgZWxtID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImJveC13cmFwcGVyIik7CiAgICAgICAgdmFyIGRpdnMgPSBuZXcgQXJyYXkoIm15U3RyZWFtc0JveCIsICJjbGllbnRJbmZvIiwgImNvbnRlbnQiKTsKICAgICAgICB2YXIgZWxlbWVudHNIZWlnaHQgPSAwIC0gZWxtLm9mZnNldEhlaWdodDsKICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGRpdnMubGVuZ3RoOyBpKyspIHsKICAgICAgICAgICAgZWxlbWVudHNIZWlnaHQgPSBlbGVtZW50c0hlaWdodCArIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGRpdnNbaV0pLm9mZnNldEhlaWdodDsKICAgICAgICB9CiAgICAgICAgZWxtLnN0eWxlLmhlaWdodCA9IHdpbmRvdy5pbm5lckhlaWdodCAtIGVsZW1lbnRzSGVpZ2h0ICsgInB4IjsKICAgIH0KICAgIHJldHVybjsKfQpmdW5jdGlvbiBjaGFuZ2VDaGFubmVsTnVtYmVyKGVsZW1lbnQpIHsKICAgIHZhciBkYklEID0gZWxlbWVudC5wYXJlbnROb2RlLnBhcmVudE5vZGUuaWQ7CiAgICB2YXIgbmV3TnVtYmVyID0gcGFyc2VGbG9hdChlbGVtZW50LnZhbHVlKTsKICAgIHZhciBjaGFubmVsTnVtYmVycyA9IFtdOwogICAgdmFyIGRhdGEgPSBTRVJWRVJbInhlcGciXVsiZXBnTWFwcGluZyJdOwogICAgdmFyIGNoYW5uZWxzID0gZ2V0T3duT2JqUHJvcHMoZGF0YSk7CiAgICBpZiAoaXNOYU4obmV3TnVtYmVyKSkgewogICAgICAgIGFsZXJ0KCJ7ey5hbGVydC5pbnZhbGlkQ2hhbm5lbE51bWJlcn19Iik7CiAgICAgICAgcmV0dXJuOwogICAgfQogICAgY2hhbm5lbHMuZm9yRWFjaChpZCA9PiB7CiAgICAgICAgdmFyIGNoYW5uZWxOdW1iZXIgPSBwYXJzZUZsb2F0KGRhdGFbaWRdWyJ4LWNoYW5uZWxJRCJdKTsKICAgICAgICBjaGFubmVsTnVtYmVycy5wdXNoKGNoYW5uZWxOdW1iZXIpOwogICAgfSk7CiAgICBmb3IgKHZhciBpID0gMDsgaSA8IGNoYW5uZWxOdW1iZXJzLmxlbmd0aDsgaSsrKSB7CiAgICAgICAgaWYgKGNoYW5uZWxOdW1iZXJzLmluZGV4T2YobmV3TnVtYmVyKSA9PSAtMSkgewogICAgICAgICAgICBicmVhazsKICAgICAgICB9CiAgICAgICAgaWYgKE1hdGguZmxvb3IobmV3TnVtYmVyKSA9PSBuZXdOdW1iZXIpIHsKICAgICAgICAgICAgbmV3TnVtYmVyID0gbmV3TnVtYmVyICsgMTsKICAgICAgICB9CiAgICAgICAgZWxzZSB7CiAgICAgICAgICAgIG5ld051bWJlciA9IG5ld051bWJlciArIDAuMTsKICAgICAgICAgICAgbmV3TnVtYmVyLnRvRml4ZWQoMSk7CiAgICAgICAgICAgIG5ld051bWJlciA9IE1hdGgucm91bmQobmV3TnVtYmVyICogMTApIC8gMTA7CiAgICAgICAgfQogICAgfQogICAgZGF0YVtkYklEXVsieC1jaGFubmVsSUQiXSA9IG5ld051bWJlci50b1N0cmluZygpOwogICAgZWxlbWVudC52YWx1ZSA9IG5ld051bWJlcjsKICAgIGlmIChDT0xVTU5fVE9fU09SVCA9PSAxKSB7CiAgICAgICAgQ09MVU1OX1RPX1NPUlQgPSAtMTsKICAgICAgICBzb3J0VGFibGUoMSk7CiAgICB9CiAgICByZXR1cm47Cn0KZnVuY3Rpb24gYmFja3VwKCkgewogICAgdmFyIGRhdGEgPSBuZXcgT2JqZWN0KCk7CiAgICB2YXIgY21kID0gInh0ZXZlQmFja3VwIjsKICAgIHZhciBzZXJ2ZXIgPSBuZXcgU2VydmVyKGNtZCk7CiAgICBzZXJ2ZXIucmVxdWVzdChkYXRhKTsKICAgIHJldHVybjsKfQpmdW5jdGlvbiB0b2dnbGVDaGFubmVsU3RhdHVzKGlkKSB7CiAgICB2YXIgZWxlbWVudDsKICAgIHZhciBzdGF0dXM7CiAgICBpZiAoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImFjdGl2ZSIpKSB7CiAgICAgICAgdmFyIGNoZWNrYm94ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImFjdGl2ZSIpOwogICAgICAgIHN0YXR1cyA9IChjaGVja2JveCkuY2hlY2tlZDsKICAgIH0KICAgIHZhciBpZHMgPSBnZXRBbGxTZWxlY3RlZENoYW5uZWxzKCk7CiAgICBpZiAoaWRzLmxlbmd0aCA9PSAwKSB7CiAgICAgICAgaWRzLnB1c2goaWQpOwogICAgfQogICAgaWRzLmZvckVhY2goaWQgPT4gewogICAgICAgIHZhciBjaGFubmVsID0gU0VSVkVSWyJ4ZXBnIl1bImVwZ01hcHBpbmciXVtpZF07CiAgICAgICAgY2hhbm5lbFsieC1hY3RpdmUiXSA9IHN0YXR1czsKICAgICAgICBzd2l0Y2ggKGNoYW5uZWxbIngtYWN0aXZlIl0pIHsKICAgICAgICAgICAgY2FzZSB0cnVlOgogICAgICAgICAgICAgICAgaWYgKGNoYW5uZWxbIngteG1sdHYtZmlsZSJdID09ICItIiB8fCBjaGFubmVsWyJ4LW1hcHBpbmciXSA9PSAiLSIpIHsKICAgICAgICAgICAgICAgICAgICBpZiAoQlVMS19FRElUID09IGZhbHNlKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGFsZXJ0KGNoYW5uZWxbIngtbmFtZSJdICsgIjogTWlzc2luZyBYTUxUViBmaWxlIC8gY2hhbm5lbCIpOwogICAgICAgICAgICAgICAgICAgICAgICBjaGVja2JveC5jaGVja2VkID0gZmFsc2U7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIGNoYW5uZWxbIngtYWN0aXZlIl0gPSBmYWxzZTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlIGZhbHNlOgogICAgICAgICAgICAgICAgLy8gY29kZS4uLgogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgfQogICAgICAgIGlmIChjaGFubmVsWyJ4LWFjdGl2ZSJdID09IGZhbHNlKSB7CiAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5jbGFzc05hbWUgPSAibm90QWN0aXZlRVBHIjsKICAgICAgICB9CiAgICAgICAgZWxzZSB7CiAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5jbGFzc05hbWUgPSAiYWN0aXZlRVBHIjsKICAgICAgICB9CiAgICB9KTsKfQpmdW5jdGlvbiB0b2dnbGVHcm91cFVwZGF0ZUNiKHhlcGdJZCwgdGFyZ2V0KSB7CiAgICB0YXJnZXQuY2xhc3NOYW1lID0gJ2NoYW5nZWQnOwogICAgY29uc3QgZ3JvdXBJbnB1dCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ2lucHV0W25hbWU9IngtZ3JvdXAtdGl0bGUiXScpOwogICAgY29uc3QgbWFwcGluZyA9IGdldExvY2FsRGF0YSgnbWFwcGluZycsIHhlcGdJZCk7CiAgICBpZiAodGFyZ2V0LmNoZWNrZWQpIHsKICAgICAgICBncm91cElucHV0LmRhdGFzZXQub2xkVmFsdWUgPSBncm91cElucHV0LnZhbHVlOwogICAgICAgIGdyb3VwSW5wdXQudmFsdWUgPSBtYXBwaW5nWydncm91cC10aXRsZSddOwogICAgICAgIGdyb3VwSW5wdXQuZGlzYWJsZWQgPSB0cnVlOwogICAgfQogICAgZWxzZSB7CiAgICAgICAgZ3JvdXBJbnB1dC52YWx1ZSA9IGdyb3VwSW5wdXQuZGF0YXNldC5vbGRWYWx1ZTsKICAgICAgICBncm91cElucHV0LmRpc2FibGVkID0gZmFsc2U7CiAgICB9CiAgICBncm91cElucHV0LmNsYXNzTmFtZSA9ICdjaGFuZ2VkJzsKfQpmdW5jdGlvbiByZXN0b3JlKCkgewogICAgaWYgKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd1cGxvYWQnKSkgewogICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd1cGxvYWQnKS5yZW1vdmUoKTsKICAgIH0KICAgIHZhciByZXN0b3JlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiSU5QVVQiKTsKICAgIHJlc3RvcmUuc2V0QXR0cmlidXRlKCJ0eXBlIiwgImZpbGUiKTsKICAgIHJlc3RvcmUuc2V0QXR0cmlidXRlKCJjbGFzcyIsICJub3RWaXNpYmxlIik7CiAgICByZXN0b3JlLnNldEF0dHJpYnV0ZSgibmFtZSIsICIiKTsKICAgIHJlc3RvcmUuaWQgPSAidXBsb2FkIjsKICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQocmVzdG9yZSk7CiAgICByZXN0b3JlLmNsaWNrKCk7CiAgICByZXN0b3JlLm9uY2hhbmdlID0gZnVuY3Rpb24gKCkgewogICAgICAgIHZhciBmaWxlbmFtZSA9IHJlc3RvcmUuZmlsZXNbMF0ubmFtZTsKICAgICAgICB2YXIgY2hlY2sgPSBjb25maXJtKCJGaWxlOiAiICsgZmlsZW5hbWUgKyAiXG57ey5jb25maXJtLnJlc3RvcmV9fSIpOwogICAgICAgIGlmIChjaGVjayA9PSB0cnVlKSB7CiAgICAgICAgICAgIHZhciByZWFkZXIgPSBuZXcgRmlsZVJlYWRlcigpOwogICAgICAgICAgICB2YXIgZmlsZSA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ2lucHV0W3R5cGU9ZmlsZV0nKS5maWxlc1swXTsKICAgICAgICAgICAgaWYgKGZpbGUpIHsKICAgICAgICAgICAgICAgIHJlYWRlci5yZWFkQXNEYXRhVVJMKGZpbGUpOwogICAgICAgICAgICAgICAgcmVhZGVyLm9ubG9hZCA9IGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgICAgICB2YXIgZGF0YSA9IG5ldyBPYmplY3QoKTsKICAgICAgICAgICAgICAgICAgICB2YXIgY21kID0gInh0ZXZlUmVzdG9yZSI7CiAgICAgICAgICAgICAgICAgICAgZGF0YVsiYmFzZTY0Il0gPSByZWFkZXIucmVzdWx0OwogICAgICAgICAgICAgICAgICAgIHZhciBzZXJ2ZXIgPSBuZXcgU2VydmVyKGNtZCk7CiAgICAgICAgICAgICAgICAgICAgc2VydmVyLnJlcXVlc3QoZGF0YSk7CiAgICAgICAgICAgICAgICB9OwogICAgICAgICAgICB9CiAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgYWxlcnQoIkZpbGUgY291bGQgbm90IGJlIGxvYWRlZCIpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIHJlc3RvcmUucmVtb3ZlKCk7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICB9OwogICAgcmV0dXJuOwp9CmZ1bmN0aW9uIHVwbG9hZExvZ28oKSB7CiAgICBpZiAoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3VwbG9hZCcpKSB7CiAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3VwbG9hZCcpLnJlbW92ZSgpOwogICAgfQogICAgdmFyIHVwbG9hZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIklOUFVUIik7CiAgICB1cGxvYWQuc2V0QXR0cmlidXRlKCJ0eXBlIiwgImZpbGUiKTsKICAgIHVwbG9hZC5zZXRBdHRyaWJ1dGUoImNsYXNzIiwgIm5vdFZpc2libGUiKTsKICAgIHVwbG9hZC5zZXRBdHRyaWJ1dGUoIm5hbWUiLCAiIik7CiAgICB1cGxvYWQuaWQgPSAidXBsb2FkIjsKICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQodXBsb2FkKTsKICAgIHVwbG9hZC5jbGljaygpOwogICAgdXBsb2FkLm9uYmx1ciA9IGZ1bmN0aW9uICgpIHsKICAgICAgICBhbGVydCgpOwogICAgfTsKICAgIHVwbG9hZC5vbmNoYW5nZSA9IGZ1bmN0aW9uICgpIHsKICAgICAgICB2YXIgZmlsZW5hbWUgPSB1cGxvYWQuZmlsZXNbMF0ubmFtZTsKICAgICAgICB2YXIgcmVhZGVyID0gbmV3IEZpbGVSZWFkZXIoKTsKICAgICAgICB2YXIgZmlsZSA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ2lucHV0W3R5cGU9ZmlsZV0nKS5maWxlc1swXTsKICAgICAgICBpZiAoZmlsZSkgewogICAgICAgICAgICByZWFkZXIucmVhZEFzRGF0YVVSTChmaWxlKTsKICAgICAgICAgICAgcmVhZGVyLm9ubG9hZCA9IGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgIHZhciBkYXRhID0gbmV3IE9iamVjdCgpOwogICAgICAgICAgICAgICAgdmFyIGNtZCA9ICJ1cGxvYWRMb2dvIjsKICAgICAgICAgICAgICAgIGRhdGFbImJhc2U2NCJdID0gcmVhZGVyLnJlc3VsdDsKICAgICAgICAgICAgICAgIGRhdGFbImZpbGVuYW1lIl0gPSBmaWxlLm5hbWU7CiAgICAgICAgICAgICAgICB2YXIgc2VydmVyID0gbmV3IFNlcnZlcihjbWQpOwogICAgICAgICAgICAgICAgc2VydmVyLnJlcXVlc3QoZGF0YSk7CiAgICAgICAgICAgICAgICB2YXIgdXBkYXRlTG9nbyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd1cGRhdGUtaWNvbicpOwogICAgICAgICAgICAgICAgdXBkYXRlTG9nby5jaGVja2VkID0gZmFsc2U7CiAgICAgICAgICAgICAgICB1cGRhdGVMb2dvLmNsYXNzTmFtZSA9ICJjaGFuZ2VkIjsKICAgICAgICAgICAgfTsKICAgICAgICB9CiAgICAgICAgZWxzZSB7CiAgICAgICAgICAgIGFsZXJ0KCJGaWxlIGNvdWxkIG5vdCBiZSBsb2FkZWQiKTsKICAgICAgICB9CiAgICAgICAgdXBsb2FkLnJlbW92ZSgpOwogICAgICAgIHJldHVybjsKICAgIH07Cn0KZnVuY3Rpb24gY2hlY2tVbmRvKGtleSkgewogICAgc3dpdGNoIChrZXkpIHsKICAgICAgICBjYXNlICJlcGdNYXBwaW5nIjoKICAgICAgICAgICAgaWYgKFVORE8uaGFzT3duUHJvcGVydHkoa2V5KSkgewogICAgICAgICAgICAgICAgU0VSVkVSWyJ4ZXBnIl1ba2V5XSA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkoVU5ET1trZXldKSk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICBVTkRPW2tleV0gPSBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KFNFUlZFUlsieGVwZyJdW2tleV0pKTsKICAgICAgICAgICAgfQogICAgICAgICAgICBicmVhazsKICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICBicmVhazsKICAgIH0KICAgIHJldHVybjsKfQpmdW5jdGlvbiB1cGRhdGVMb2coKSB7CiAgICB2YXIgc2VydmVyID0gbmV3IFNlcnZlcigidXBkYXRlTG9nIik7CiAgICBzZXJ2ZXIucmVxdWVzdChuZXcgT2JqZWN0KCkpOwp9Cg==" webUI["html/js/classes_ts.js"] = "dmFyIF9fZXh0ZW5kcyA9ICh0aGlzICYmIHRoaXMuX19leHRlbmRzKSB8fCAoZnVuY3Rpb24gKCkgewogICAgdmFyIGV4dGVuZFN0YXRpY3MgPSBmdW5jdGlvbiAoZCwgYikgewogICAgICAgIGV4dGVuZFN0YXRpY3MgPSBPYmplY3Quc2V0UHJvdG90eXBlT2YgfHwKICAgICAgICAgICAgKHsgX19wcm90b19fOiBbXSB9IGluc3RhbmNlb2YgQXJyYXkgJiYgZnVuY3Rpb24gKGQsIGIpIHsgZC5fX3Byb3RvX18gPSBiOyB9KSB8fAogICAgICAgICAgICBmdW5jdGlvbiAoZCwgYikgeyBmb3IgKHZhciBwIGluIGIpIGlmIChiLmhhc093blByb3BlcnR5KHApKSBkW3BdID0gYltwXTsgfTsKICAgICAgICByZXR1cm4gZXh0ZW5kU3RhdGljcyhkLCBiKTsKICAgIH07CiAgICByZXR1cm4gZnVuY3Rpb24gKGQsIGIpIHsKICAgICAgICBleHRlbmRTdGF0aWNzKGQsIGIpOwogICAgICAgIGZ1bmN0aW9uIF9fKCkgeyB0aGlzLmNvbnN0cnVjdG9yID0gZDsgfQogICAgICAgIGQucHJvdG90eXBlID0gYiA9PT0gbnVsbCA/IE9iamVjdC5jcmVhdGUoYikgOiAoX18ucHJvdG90eXBlID0gYi5wcm90b3R5cGUsIG5ldyBfXygpKTsKICAgIH07Cn0pKCk7CnZhciBNYWluTWVudSA9IC8qKiBAY2xhc3MgKi8gKGZ1bmN0aW9uICgpIHsKICAgIGZ1bmN0aW9uIE1haW5NZW51KCkgewogICAgICAgIHRoaXMuRG9jdW1lbnRJRCA9ICJtYWluLW1lbnUiOwogICAgICAgIHRoaXMuSFRNTFRhZyA9ICJMSSI7CiAgICB9CiAgICBNYWluTWVudS5wcm90b3R5cGUuY3JlYXRlID0gZnVuY3Rpb24gKCkgewogICAgICAgIGNvbnNvbGUubG9nKHRoaXMuRG9jdW1lbnRJRCk7CiAgICB9OwogICAgcmV0dXJuIE1haW5NZW51Owp9KCkpOwp2YXIgTWFpbk1lbnVJdGVtID0gLyoqIEBjbGFzcyAqLyAoZnVuY3Rpb24gKF9zdXBlcikgewogICAgX19leHRlbmRzKE1haW5NZW51SXRlbSwgX3N1cGVyKTsKICAgIGZ1bmN0aW9uIE1haW5NZW51SXRlbSgpIHsKICAgICAgICByZXR1cm4gX3N1cGVyICE9PSBudWxsICYmIF9zdXBlci5hcHBseSh0aGlzLCBhcmd1bWVudHMpIHx8IHRoaXM7CiAgICB9CiAgICBNYWluTWVudUl0ZW0ucHJvdG90eXBlLmNyZWF0ZTIgPSBmdW5jdGlvbiAoKSB7CiAgICAgICAgdmFyIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KHRoaXMuSFRNTFRhZyk7CiAgICAgICAgZWxlbWVudC5pbm5lclRleHQgPSB0aGlzLlZhbHVlOwogICAgICAgIGNvbnNvbGUubG9nKGVsZW1lbnQpOwogICAgfTsKICAgIHJldHVybiBNYWluTWVudUl0ZW07Cn0oTWFpbk1lbnUpKTsKZnVuY3Rpb24gcGFnZVJlYWR5KCkgewogICAgdmFyIGl0ZW0gPSBuZXcgTWFpbk1lbnVJdGVtKCk7CiAgICBpdGVtLlZhbHVlID0gIlRlc3QiOwogICAgaXRlbS5jcmVhdGUyKCk7Cn0K" webUI["html/js/configuration_ts.js"] = "Y2xhc3MgV2l6YXJkQ2F0ZWdvcnkgewogICAgY29uc3RydWN0b3IoKSB7CiAgICAgICAgdGhpcy5Eb2N1bWVudElEID0gImNvbnRlbnQiOwogICAgfQogICAgY3JlYXRlQ2F0ZWdvcnlIZWFkbGluZSh2YWx1ZSkgewogICAgICAgIHZhciBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiSDQiKTsKICAgICAgICBlbGVtZW50LmlubmVySFRNTCA9IHZhbHVlOwogICAgICAgIHJldHVybiBlbGVtZW50OwogICAgfQp9CmNsYXNzIFdpemFyZEl0ZW0gZXh0ZW5kcyBXaXphcmRDYXRlZ29yeSB7CiAgICBjb25zdHJ1Y3RvcihrZXksIGhlYWRsaW5lKSB7CiAgICAgICAgc3VwZXIoKTsKICAgICAgICB0aGlzLmhlYWRsaW5lID0gaGVhZGxpbmU7CiAgICAgICAgdGhpcy5rZXkgPSBrZXk7CiAgICB9CiAgICBjcmVhdGVXaXphcmQoKSB7CiAgICAgICAgdmFyIGhlYWRsaW5lID0gdGhpcy5jcmVhdGVDYXRlZ29yeUhlYWRsaW5lKHRoaXMuaGVhZGxpbmUpOwogICAgICAgIHZhciBrZXkgPSB0aGlzLmtleTsKICAgICAgICB2YXIgY29udGVudCA9IG5ldyBQb3B1cENvbnRlbnQoKTsKICAgICAgICB2YXIgZGVzY3JpcHRpb247CiAgICAgICAgdmFyIGRvYyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHRoaXMuRG9jdW1lbnRJRCk7CiAgICAgICAgZG9jLmlubmVySFRNTCA9ICIiOwogICAgICAgIGRvYy5hcHBlbmRDaGlsZChoZWFkbGluZSk7CiAgICAgICAgc3dpdGNoIChrZXkpIHsKICAgICAgICAgICAgY2FzZSAidHVuZXIiOgogICAgICAgICAgICAgICAgdmFyIHRleHQgPSBuZXcgQXJyYXkoKTsKICAgICAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBuZXcgQXJyYXkoKTsKICAgICAgICAgICAgICAgIGZvciAodmFyIGkgPSAxOyBpIDw9IDEwMDsgaSsrKSB7CiAgICAgICAgICAgICAgICAgICAgdGV4dC5wdXNoKGkpOwogICAgICAgICAgICAgICAgICAgIHZhbHVlcy5wdXNoKGkpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgdmFyIHNlbGVjdCA9IGNvbnRlbnQuY3JlYXRlU2VsZWN0KHRleHQsIHZhbHVlcywgIjEiLCBrZXkpOwogICAgICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgiY2xhc3MiLCAid2l6YXJkIik7CiAgICAgICAgICAgICAgICBzZWxlY3QuaWQgPSBrZXk7CiAgICAgICAgICAgICAgICBkb2MuYXBwZW5kQ2hpbGQoc2VsZWN0KTsKICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uID0gInt7LndpemFyZC50dW5lci5kZXNjcmlwdGlvbn19IjsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJlcGdTb3VyY2UiOgogICAgICAgICAgICAgICAgdmFyIHRleHQgPSBbIlBNUyIsICJYRVBHIl07CiAgICAgICAgICAgICAgICB2YXIgdmFsdWVzID0gWyJQTVMiLCAiWEVQRyJdOwogICAgICAgICAgICAgICAgdmFyIHNlbGVjdCA9IGNvbnRlbnQuY3JlYXRlU2VsZWN0KHRleHQsIHZhbHVlcywgIlhFUEciLCBrZXkpOwogICAgICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgiY2xhc3MiLCAid2l6YXJkIik7CiAgICAgICAgICAgICAgICBzZWxlY3QuaWQgPSBrZXk7CiAgICAgICAgICAgICAgICBkb2MuYXBwZW5kQ2hpbGQoc2VsZWN0KTsKICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uID0gInt7LndpemFyZC5lcGdTb3VyY2UuZGVzY3JpcHRpb259fSI7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAibTN1IjoKICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBrZXksICIiKTsKICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3sud2l6YXJkLm0zdS5wbGFjZWhvbGRlcn19Iik7CiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoImNsYXNzIiwgIndpemFyZCIpOwogICAgICAgICAgICAgICAgaW5wdXQuaWQgPSBrZXk7CiAgICAgICAgICAgICAgICBkb2MuYXBwZW5kQ2hpbGQoaW5wdXQpOwogICAgICAgICAgICAgICAgZGVzY3JpcHRpb24gPSAie3sud2l6YXJkLm0zdS5kZXNjcmlwdGlvbn19IjsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJ4bWx0diI6CiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0Iiwga2V5LCAiIik7CiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LndpemFyZC54bWx0di5wbGFjZWhvbGRlcn19Iik7CiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoImNsYXNzIiwgIndpemFyZCIpOwogICAgICAgICAgICAgICAgaW5wdXQuaWQgPSBrZXk7CiAgICAgICAgICAgICAgICBkb2MuYXBwZW5kQ2hpbGQoaW5wdXQpOwogICAgICAgICAgICAgICAgZGVzY3JpcHRpb24gPSAie3sud2l6YXJkLnhtbHR2LmRlc2NyaXB0aW9ufX0iOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICB9CiAgICAgICAgdmFyIHByZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlBSRSIpOwogICAgICAgIHByZS5pbm5lckhUTUwgPSBkZXNjcmlwdGlvbjsKICAgICAgICBkb2MuYXBwZW5kQ2hpbGQocHJlKTsKICAgIH0KfQpmdW5jdGlvbiByZWFkeUZvckNvbmZpZ3VyYXRpb24od2l6YXJkKSB7CiAgICB2YXIgc2VydmVyID0gbmV3IFNlcnZlcigiZ2V0U2VydmVyQ29uZmlnIik7CiAgICBzZXJ2ZXIucmVxdWVzdChuZXcgT2JqZWN0KCkpOwogICAgc2hvd0VsZW1lbnQoImxvYWRpbmciLCBmYWxzZSk7CiAgICBjb25maWd1cmF0aW9uV2l6YXJkW3dpemFyZF0uY3JlYXRlV2l6YXJkKCk7Cn0KZnVuY3Rpb24gc2F2ZVdpemFyZCgpIHsKICAgIHZhciBjbWQgPSAic2F2ZVdpemFyZCI7CiAgICB2YXIgZGl2ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnRlbnQiKTsKICAgIHZhciBjb25maWcgPSBkaXYuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSgid2l6YXJkIik7CiAgICB2YXIgd2l6YXJkID0gbmV3IE9iamVjdCgpOwogICAgZm9yICh2YXIgaSA9IDA7IGkgPCBjb25maWcubGVuZ3RoOyBpKyspIHsKICAgICAgICB2YXIgbmFtZTsKICAgICAgICB2YXIgdmFsdWU7CiAgICAgICAgc3dpdGNoIChjb25maWdbaV0udGFnTmFtZSkgewogICAgICAgICAgICBjYXNlICJTRUxFQ1QiOgogICAgICAgICAgICAgICAgbmFtZSA9IGNvbmZpZ1tpXS5uYW1lOwogICAgICAgICAgICAgICAgdmFsdWUgPSBjb25maWdbaV0udmFsdWU7CiAgICAgICAgICAgICAgICAvLyBJZiB0aGUgdmFsdWUgaXMgYSBudW1iZXIsIHN0b3JlIGl0IGFzIGEgbnVtYmVyCiAgICAgICAgICAgICAgICBpZiAoaXNOYU4odmFsdWUpKSB7CiAgICAgICAgICAgICAgICAgICAgd2l6YXJkW25hbWVdID0gdmFsdWU7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgICAgICB3aXphcmRbbmFtZV0gPSBwYXJzZUludCh2YWx1ZSk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAiSU5QVVQiOgogICAgICAgICAgICAgICAgc3dpdGNoIChjb25maWdbaV0udHlwZSkgewogICAgICAgICAgICAgICAgICAgIGNhc2UgInRleHQiOgogICAgICAgICAgICAgICAgICAgICAgICBuYW1lID0gY29uZmlnW2ldLm5hbWU7CiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlID0gY29uZmlnW2ldLnZhbHVlOwogICAgICAgICAgICAgICAgICAgICAgICBpZiAodmFsdWUubGVuZ3RoID09IDApIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBtc2cgPSBuYW1lLnRvVXBwZXJDYXNlKCkgKyAiOiAiICsgInt7LmFsZXJ0Lm1pc3NpbmdJbnB1dH19IjsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFsZXJ0KG1zZyk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgd2l6YXJkW25hbWVdID0gdmFsdWU7CiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICAgICAvLyBjb2RlLi4uCiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICB9CiAgICB9CiAgICB2YXIgZGF0YSA9IG5ldyBPYmplY3QoKTsKICAgIGRhdGFbIndpemFyZCJdID0gd2l6YXJkOwogICAgdmFyIHNlcnZlciA9IG5ldyBTZXJ2ZXIoY21kKTsKICAgIHNlcnZlci5yZXF1ZXN0KGRhdGEpOwp9Ci8vIFdpemFyZAp2YXIgY29uZmlndXJhdGlvbldpemFyZCA9IG5ldyBBcnJheSgpOwpjb25maWd1cmF0aW9uV2l6YXJkLnB1c2gobmV3IFdpemFyZEl0ZW0oInR1bmVyIiwgInt7LndpemFyZC50dW5lci50aXRsZX19IikpOwpjb25maWd1cmF0aW9uV2l6YXJkLnB1c2gobmV3IFdpemFyZEl0ZW0oImVwZ1NvdXJjZSIsICJ7ey53aXphcmQuZXBnU291cmNlLnRpdGxlfX0iKSk7CmNvbmZpZ3VyYXRpb25XaXphcmQucHVzaChuZXcgV2l6YXJkSXRlbSgibTN1IiwgInt7LndpemFyZC5tM3UudGl0bGV9fSIpKTsKY29uZmlndXJhdGlvbldpemFyZC5wdXNoKG5ldyBXaXphcmRJdGVtKCJ4bWx0diIsICJ7ey53aXphcmQueG1sdHYudGl0bGV9fSIpKTsK" webUI["html/js/logs_ts.js"] = "Y2xhc3MgTG9nIHsKICAgIGNyZWF0ZUxvZyhlbnRyeSkgewogICAgICAgIHZhciBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiUFJFIik7CiAgICAgICAgZW50cnkgPSBTdHJpbmcoZW50cnkpOwogICAgICAgIGlmIChlbnRyeS5pbmRleE9mKCJXQVJOSU5HIikgIT0gLTEpIHsKICAgICAgICAgICAgZWxlbWVudC5jbGFzc05hbWUgPSAid2FybmluZ01zZyI7CiAgICAgICAgfQogICAgICAgIGlmIChlbnRyeS5pbmRleE9mKCJFUlJPUiIpICE9IC0xKSB7CiAgICAgICAgICAgIGVsZW1lbnQuY2xhc3NOYW1lID0gImVycm9yTXNnIjsKICAgICAgICB9CiAgICAgICAgaWYgKGVudHJ5LmluZGV4T2YoIkRFQlVHIikgIT0gLTEpIHsKICAgICAgICAgICAgZWxlbWVudC5jbGFzc05hbWUgPSAiZGVidWdNc2ciOwogICAgICAgIH0KICAgICAgICBlbGVtZW50LmlubmVySFRNTCA9IGVudHJ5OwogICAgICAgIHJldHVybiBlbGVtZW50OwogICAgfQp9CmZ1bmN0aW9uIHNob3dMb2dzKGJvdHRvbSkgewogICAgdmFyIGxvZyA9IG5ldyBMb2coKTsKICAgIHZhciBsb2dzID0gU0VSVkVSWyJsb2ciXVsibG9nIl07CiAgICB2YXIgZGl2ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnRlbnRfbG9nIik7CiAgICBkaXYuaW5uZXJIVE1MID0gIiI7CiAgICB2YXIga2V5cyA9IGdldE93bk9ialByb3BzKGxvZ3MpOwogICAga2V5cy5mb3JFYWNoKGxvZ0lEID0+IHsKICAgICAgICB2YXIgZW50cnkgPSBsb2cuY3JlYXRlTG9nKGxvZ3NbbG9nSURdKTsKICAgICAgICBkaXYuYXBwZW5kKGVudHJ5KTsKICAgIH0pOwogICAgc2V0VGltZW91dChmdW5jdGlvbiAoKSB7CiAgICAgICAgaWYgKGJvdHRvbSA9PSB0cnVlKSB7CiAgICAgICAgICAgIHZhciB3cmFwcGVyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImJveC13cmFwcGVyIik7CiAgICAgICAgICAgIHdyYXBwZXIuc2Nyb2xsVG9wID0gd3JhcHBlci5zY3JvbGxIZWlnaHQ7CiAgICAgICAgfQogICAgfSwgMTApOwp9CmZ1bmN0aW9uIHJlc2V0TG9ncygpIHsKICAgIHZhciBjbWQgPSAicmVzZXRMb2dzIjsKICAgIHZhciBkYXRhID0gbmV3IE9iamVjdCgpOwogICAgdmFyIHNlcnZlciA9IG5ldyBTZXJ2ZXIoY21kKTsKICAgIHNlcnZlci5yZXF1ZXN0KGRhdGEpOwp9Cg==" webUI["html/js/menu_ts.js"] = "Y2xhc3MgTWFpbk1lbnUgewogICAgY29uc3RydWN0b3IoKSB7CiAgICAgICAgdGhpcy5Eb2N1bWVudElEID0gIm1haW4tbWVudSI7CiAgICAgICAgdGhpcy5IVE1MVGFnID0gIkxJIjsKICAgICAgICB0aGlzLkltYWdlUGF0aCA9ICJpbWcvIjsKICAgIH0KICAgIGNyZWF0ZUlNRyhzcmMpIHsKICAgICAgICBsZXQgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIklNRyIpOwogICAgICAgIGVsZW1lbnQuc2V0QXR0cmlidXRlKCJzcmMiLCB0aGlzLkltYWdlUGF0aCArIHNyYyk7CiAgICAgICAgcmV0dXJuIGVsZW1lbnQ7CiAgICB9CiAgICBjcmVhdGVWYWx1ZSh2YWx1ZSkgewogICAgICAgIGxldCBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiUCIpOwogICAgICAgIGVsZW1lbnQuaW5uZXJIVE1MID0gdmFsdWU7CiAgICAgICAgcmV0dXJuIGVsZW1lbnQ7CiAgICB9Cn0KY2xhc3MgTWFpbk1lbnVJdGVtIGV4dGVuZHMgTWFpbk1lbnUgewogICAgY29uc3RydWN0b3IobWVudUtleSwgdmFsdWUsIGltYWdlLCBoZWFkbGluZSkgewogICAgICAgIHN1cGVyKCk7CiAgICAgICAgdGhpcy5tZW51S2V5ID0gbWVudUtleTsKICAgICAgICB0aGlzLnZhbHVlID0gdmFsdWU7CiAgICAgICAgdGhpcy5pbWdTcmMgPSBpbWFnZTsKICAgICAgICB0aGlzLmhlYWRsaW5lID0gaGVhZGxpbmU7CiAgICB9CiAgICBjcmVhdGVJdGVtKCkgewogICAgICAgIGxldCBpdGVtID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiTEkiKTsKICAgICAgICBpdGVtLnNldEF0dHJpYnV0ZSgib25jbGljayIsICJqYXZhc2NyaXB0OiBvcGVuVGhpc01lbnUodGhpcykiKTsKICAgICAgICBpdGVtLnNldEF0dHJpYnV0ZSgiaWQiLCB0aGlzLmlkKTsKICAgICAgICBsZXQgaW1nID0gdGhpcy5jcmVhdGVJTUcodGhpcy5pbWdTcmMpOwogICAgICAgIGxldCB2YWx1ZSA9IHRoaXMuY3JlYXRlVmFsdWUodGhpcy52YWx1ZSk7CiAgICAgICAgaXRlbS5hcHBlbmRDaGlsZChpbWcpOwogICAgICAgIGl0ZW0uYXBwZW5kQ2hpbGQodmFsdWUpOwogICAgICAgIGxldCBkb2MgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCh0aGlzLkRvY3VtZW50SUQpOwogICAgICAgIGRvYy5hcHBlbmRDaGlsZChpdGVtKTsKICAgICAgICBzd2l0Y2ggKHRoaXMubWVudUtleSkgewogICAgICAgICAgICBjYXNlICJwbGF5bGlzdCI6CiAgICAgICAgICAgICAgICB0aGlzLnRhYmxlSGVhZGVyID0gWyJ7ey5wbGF5bGlzdC50YWJsZS5wbGF5bGlzdH19IiwgInt7LnBsYXlsaXN0LnRhYmxlLnR1bmVyfX0iLCAie3sucGxheWxpc3QudGFibGUubGFzdFVwZGF0ZX19IiwgInt7LnBsYXlsaXN0LnRhYmxlLmF2YWlsYWJpbGl0eX19ICUiLCAie3sucGxheWxpc3QudGFibGUudHlwZX19IiwgInt7LnBsYXlsaXN0LnRhYmxlLnN0cmVhbXN9fSIsICJ7ey5wbGF5bGlzdC50YWJsZS5ncm91cFRpdGxlfX0gJSIsICJ7ey5wbGF5bGlzdC50YWJsZS50dmdJRH19ICUiLCAie3sucGxheWxpc3QudGFibGUudW5pcXVlSUR9fSAlIl07CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAieG1sdHYiOgogICAgICAgICAgICAgICAgdGhpcy50YWJsZUhlYWRlciA9IFsie3sueG1sdHYudGFibGUuZ3VpZGV9fSIsICJ7ey54bWx0di50YWJsZS5sYXN0VXBkYXRlfX0iLCAie3sueG1sdHYudGFibGUuYXZhaWxhYmlsaXR5fX0gJSIsICJ7ey54bWx0di50YWJsZS5jaGFubmVsc319IiwgInt7LnhtbHR2LnRhYmxlLnByb2dyYW1zfX0iXTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJmaWx0ZXIiOgogICAgICAgICAgICAgICAgdGhpcy50YWJsZUhlYWRlciA9IFsie3suZmlsdGVyLnRhYmxlLnN0YXJ0aW5nQ2hhbm5lbH19IiwgInt7LmZpbHRlci50YWJsZS5uYW1lfX0iLCAie3suZmlsdGVyLnRhYmxlLnR5cGV9fSIsICJ7ey5maWx0ZXIudGFibGUuZmlsdGVyfX0iXTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJ1c2VycyI6CiAgICAgICAgICAgICAgICB0aGlzLnRhYmxlSGVhZGVyID0gWyJ7ey51c2Vycy50YWJsZS51c2VybmFtZX19IiwgInt7LnVzZXJzLnRhYmxlLnBhc3N3b3JkfX0iLCAie3sudXNlcnMudGFibGUud2VifX0iLCAie3sudXNlcnMudGFibGUucG1zfX0iLCAie3sudXNlcnMudGFibGUubTN1fX0iLCAie3sudXNlcnMudGFibGUueG1sfX0iLCAie3sudXNlcnMudGFibGUuYXBpfX0iXTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJtYXBwaW5nIjoKICAgICAgICAgICAgICAgIHRoaXMudGFibGVIZWFkZXIgPSBbIkJVTEsiLCAie3subWFwcGluZy50YWJsZS5jaE5vfX0iLCAie3subWFwcGluZy50YWJsZS5sb2dvfX0iLCAie3subWFwcGluZy50YWJsZS5jaGFubmVsTmFtZX19IiwgInt7Lm1hcHBpbmcudGFibGUudXBkYXRlQ2hhbm5lbE5hbWVSZWdleH19IiwgInt7Lm1hcHBpbmcudGFibGUucGxheWxpc3R9fSIsICJ7ey5tYXBwaW5nLnRhYmxlLmdyb3VwVGl0bGV9fSIsICJ7ey5tYXBwaW5nLnRhYmxlLnhtbHR2RmlsZX19IiwgInt7Lm1hcHBpbmcudGFibGUueG1sdHZJRH19IiwgInt7Lm1hcHBpbmcudGFibGUudGltZXNoaWZ0fX0iXTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgIH0KICAgIH0KfQpjbGFzcyBDb250ZW50IHsKICAgIGNvbnN0cnVjdG9yKCkgewogICAgICAgIHRoaXMuRG9jdW1lbnRJRCA9ICJjb250ZW50IjsKICAgICAgICB0aGlzLlRhYmxlSUQgPSAiY29udGVudF90YWJsZSI7CiAgICAgICAgdGhpcy5oZWFkZXJDbGFzcyA9ICJjb250ZW50X3RhYmxlX2hlYWRlciI7CiAgICAgICAgdGhpcy5pbnRlcmFjdGlvbklEID0gImNvbnRlbnQtaW50ZXJhY3Rpb24iOwogICAgfQogICAgY3JlYXRlSGVhZGxpbmUodmFsdWUpIHsKICAgICAgICBsZXQgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIkgzIik7CiAgICAgICAgZWxlbWVudC5pbm5lckhUTUwgPSB2YWx1ZTsKICAgICAgICByZXR1cm4gZWxlbWVudDsKICAgIH0KICAgIGNyZWF0ZUhSKCkgewogICAgICAgIHJldHVybiBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJIUiIpOwogICAgfQogICAgY3JlYXRlSW50ZXJhY3Rpb24oKSB7CiAgICAgICAgbGV0IGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJESVYiKTsKICAgICAgICBlbGVtZW50LnNldEF0dHJpYnV0ZSgiaWQiLCB0aGlzLmludGVyYWN0aW9uSUQpOwogICAgICAgIHJldHVybiBlbGVtZW50OwogICAgfQogICAgY3JlYXRlRElWKCkgewogICAgICAgIGxldCBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiRElWIik7CiAgICAgICAgZWxlbWVudC5pZCA9IHRoaXMuRGl2SUQ7CiAgICAgICAgcmV0dXJuIGVsZW1lbnQ7CiAgICB9CiAgICBjcmVhdGVUQUJMRSgpIHsKICAgICAgICBsZXQgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlRBQkxFIik7CiAgICAgICAgZWxlbWVudC5pZCA9IHRoaXMuVGFibGVJRDsKICAgICAgICByZXR1cm4gZWxlbWVudDsKICAgIH0KICAgIGNyZWF0ZVRhYmxlUm93KCkgewogICAgICAgIGxldCBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVFIiKTsKICAgICAgICBlbGVtZW50LmNsYXNzTmFtZSA9IHRoaXMuaGVhZGVyQ2xhc3M7CiAgICAgICAgcmV0dXJuIGVsZW1lbnQ7CiAgICB9CiAgICBjcmVhdGVUYWJsZUNvbnRlbnQobWVudUtleSkgewogICAgICAgIGxldCBkYXRhID0ge307CiAgICAgICAgbGV0IHJvd3MgPSBbXTsKICAgICAgICBsZXQgZmlsZVR5cGVzID0gW107CiAgICAgICAgc3dpdGNoIChtZW51S2V5KSB7CiAgICAgICAgICAgIGNhc2UgInBsYXlsaXN0IjoKICAgICAgICAgICAgICAgIGZpbGVUeXBlcyA9IFsibTN1IiwgImhkaHIiXTsKICAgICAgICAgICAgICAgIGZpbGVUeXBlcy5mb3JFYWNoKGZpbGVUeXBlID0+IHsKICAgICAgICAgICAgICAgICAgICBkYXRhID0gU0VSVkVSWyJzZXR0aW5ncyJdWyJmaWxlcyJdW2ZpbGVUeXBlXTsKICAgICAgICAgICAgICAgICAgICB2YXIga2V5cyA9IGdldE93bk9ialByb3BzKGRhdGEpOwogICAgICAgICAgICAgICAgICAgIGtleXMuZm9yRWFjaChrZXkgPT4gewogICAgICAgICAgICAgICAgICAgICAgICB2YXIgdHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJUUiIpOwogICAgICAgICAgICAgICAgICAgICAgICB0ci5pZCA9IGtleTsKICAgICAgICAgICAgICAgICAgICAgICAgdHIuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgiJyArIGZpbGVUeXBlICsgJyIsIHRoaXMpJyk7CiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsKICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7CiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOwogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJuYW1lIl07CiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsKICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOwogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7CiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChTRVJWRVJbInNldHRpbmdzIl1bImJ1ZmZlciJdICE9ICItIikgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsidHVuZXIiXTsKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSAiLSI7CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOwogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7CiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOwogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsKICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsibGFzdC51cGRhdGUiXTsKICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOwogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7CiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOwogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsKICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsicHJvdmlkZXIuYXZhaWxhYmlsaXR5Il07CiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsKICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOwogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7CiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bInR5cGUiXS50b1VwcGVyQ2FzZSgpOwogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7CiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsKICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7CiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOwogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJjb21wYXRpYmlsaXR5Il1bInN0cmVhbXMiXTsKICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOwogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7CiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOwogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsKICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsiY29tcGF0aWJpbGl0eSJdWyJncm91cC50aXRsZSJdOwogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7CiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsKICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7CiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOwogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJjb21wYXRpYmlsaXR5Il1bInR2Zy5pZCJdOwogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7CiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsKICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7CiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOwogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJjb21wYXRpYmlsaXR5Il1bInN0cmVhbS5pZCJdOwogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7CiAgICAgICAgICAgICAgICAgICAgICAgIHJvd3MucHVzaCh0cik7CiAgICAgICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJmaWx0ZXIiOgogICAgICAgICAgICAgICAgZGVsZXRlIFNFUlZFUlsic2V0dGluZ3MiXVsiZmlsdGVyIl1bLTFdOwogICAgICAgICAgICAgICAgZGF0YSA9IFNFUlZFUlsic2V0dGluZ3MiXVsiZmlsdGVyIl07CiAgICAgICAgICAgICAgICB2YXIga2V5cyA9IGdldE93bk9ialByb3BzKGRhdGEpOwogICAgICAgICAgICAgICAga2V5cy5mb3JFYWNoKGtleSA9PiB7CiAgICAgICAgICAgICAgICAgICAgdmFyIHRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVFIiKTsKICAgICAgICAgICAgICAgICAgICB0ci5pZCA9IGtleTsKICAgICAgICAgICAgICAgICAgICB0ci5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCInICsgZGF0YVtrZXldWyJ0eXBlIl0gKyAnIiwgdGhpcyknKTsKICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7CiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7CiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7CiAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsic3RhcnRpbmdDaGFubmVsIl07CiAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOwogICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsKICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsKICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJuYW1lIl07CiAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOwogICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsKICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsKICAgICAgICAgICAgICAgICAgICBzd2l0Y2ggKGRhdGFba2V5XVsidHlwZSJdKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgImN1c3RvbS1maWx0ZXIiOgogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9ICJ7ey5maWx0ZXIuY3VzdG9tfX0iOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgImdyb3VwLXRpdGxlIjoKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSAie3suZmlsdGVyLmdyb3VwfX0iOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOwogICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsKICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsKICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJmaWx0ZXIiXTsKICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7CiAgICAgICAgICAgICAgICAgICAgcm93cy5wdXNoKHRyKTsKICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgInhtbHR2IjoKICAgICAgICAgICAgICAgIGZpbGVUeXBlcyA9IG5ldyBBcnJheSgieG1sdHYiKTsKICAgICAgICAgICAgICAgIGZpbGVUeXBlcy5mb3JFYWNoKGZpbGVUeXBlID0+IHsKICAgICAgICAgICAgICAgICAgICBkYXRhID0gU0VSVkVSWyJzZXR0aW5ncyJdWyJmaWxlcyJdW2ZpbGVUeXBlXTsKICAgICAgICAgICAgICAgICAgICB2YXIga2V5cyA9IGdldE93bk9ialByb3BzKGRhdGEpOwogICAgICAgICAgICAgICAgICAgIGtleXMuZm9yRWFjaChrZXkgPT4gewogICAgICAgICAgICAgICAgICAgICAgICB2YXIgdHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJUUiIpOwogICAgICAgICAgICAgICAgICAgICAgICB0ci5pZCA9IGtleTsKICAgICAgICAgICAgICAgICAgICAgICAgdHIuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgiJyArIGZpbGVUeXBlICsgJyIsIHRoaXMpJyk7CiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsKICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7CiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOwogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJuYW1lIl07CiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsKICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOwogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7CiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bImxhc3QudXBkYXRlIl07CiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsKICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOwogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7CiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bInByb3ZpZGVyLmF2YWlsYWJpbGl0eSJdOwogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7CiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsKICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7CiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOwogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJjb21wYXRpYmlsaXR5Il1bInhtbHR2LmNoYW5uZWxzIl07CiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsKICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOwogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7CiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bImNvbXBhdGliaWxpdHkiXVsieG1sdHYucHJvZ3JhbXMiXTsKICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOwogICAgICAgICAgICAgICAgICAgICAgICByb3dzLnB1c2godHIpOwogICAgICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAidXNlcnMiOgogICAgICAgICAgICAgICAgZmlsZVR5cGVzID0gbmV3IEFycmF5KCJ1c2VycyIpOwogICAgICAgICAgICAgICAgZmlsZVR5cGVzLmZvckVhY2goZmlsZVR5cGUgPT4gewogICAgICAgICAgICAgICAgICAgIGRhdGEgPSBTRVJWRVJbZmlsZVR5cGVdOwogICAgICAgICAgICAgICAgICAgIHZhciBrZXlzID0gZ2V0T3duT2JqUHJvcHMoZGF0YSk7CiAgICAgICAgICAgICAgICAgICAga2V5cy5mb3JFYWNoKGtleSA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgIHZhciB0ciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlRSIik7CiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmlkID0ga2V5OwogICAgICAgICAgICAgICAgICAgICAgICB0ci5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCInICsgZmlsZVR5cGUgKyAnIiwgdGhpcyknKTsKICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOwogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7CiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bImRhdGEiXVsidXNlcm5hbWUiXTsKICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOwogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7CiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOwogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsKICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9ICIqKioqKioiOwogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7CiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsKICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7CiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOwogICAgICAgICAgICAgICAgICAgICAgICBpZiAoZGF0YVtrZXldWyJkYXRhIl1bImF1dGhlbnRpY2F0aW9uLndlYiJdID09IHRydWUpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSAi4pyTIjsKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSAiLSI7CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOwogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7CiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOwogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsKICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGRhdGFba2V5XVsiZGF0YSJdWyJhdXRoZW50aWNhdGlvbi5wbXMiXSA9PSB0cnVlKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gIuKckyI7CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gIi0iOwogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsKICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOwogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7CiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChkYXRhW2tleV1bImRhdGEiXVsiYXV0aGVudGljYXRpb24ubTN1Il0gPT0gdHJ1ZSkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9ICLinJMiOwogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9ICItIjsKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7CiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsKICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7CiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOwogICAgICAgICAgICAgICAgICAgICAgICBpZiAoZGF0YVtrZXldWyJkYXRhIl1bImF1dGhlbnRpY2F0aW9uLnhtbCJdID09IHRydWUpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSAi4pyTIjsKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSAiLSI7CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOwogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7CiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOwogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsKICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGRhdGFba2V5XVsiZGF0YSJdWyJhdXRoZW50aWNhdGlvbi5hcGkiXSA9PSB0cnVlKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gIuKckyI7CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gIi0iOwogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsKICAgICAgICAgICAgICAgICAgICAgICAgcm93cy5wdXNoKHRyKTsKICAgICAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgIm1hcHBpbmciOgogICAgICAgICAgICAgICAgQlVMS19FRElUID0gZmFsc2U7CiAgICAgICAgICAgICAgICBjcmVhdGVTZWFyY2hPYmooKTsKICAgICAgICAgICAgICAgIGNoZWNrVW5kbygiZXBnTWFwcGluZyIpOwogICAgICAgICAgICAgICAgZGF0YSA9IFNFUlZFUlsieGVwZyJdWyJlcGdNYXBwaW5nIl07CiAgICAgICAgICAgICAgICB2YXIga2V5cyA9IGdldE93bk9ialByb3BzKGRhdGEpOwogICAgICAgICAgICAgICAga2V5cy5mb3JFYWNoKGtleSA9PiB7CiAgICAgICAgICAgICAgICAgICAgdmFyIHRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVFIiKTsKICAgICAgICAgICAgICAgICAgICB0ci5pZCA9IGtleTsKICAgICAgICAgICAgICAgICAgICBzd2l0Y2ggKGRhdGFba2V5XVsieC1hY3RpdmUiXSkgewogICAgICAgICAgICAgICAgICAgICAgICBjYXNlIHRydWU6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ci5jbGFzc05hbWUgPSAiYWN0aXZlRVBHIjsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICAgICAgICBjYXNlIGZhbHNlOgogICAgICAgICAgICAgICAgICAgICAgICAgICAgdHIuY2xhc3NOYW1lID0gIm5vdEFjdGl2ZUVQRyI7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgLy8gQnVsawogICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsKICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJCVUxLIjsKICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZmFsc2U7CiAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOwogICAgICAgICAgICAgICAgICAgIC8vIENoYW5uZWwgbnVtYmVyCiAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOwogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOwogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIklOUFVUQ0hBTk5FTCI7CiAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsieC1jaGFubmVsSUQiXTsKICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7CiAgICAgICAgICAgICAgICAgICAgLy8gTG9nbwogICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsKICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJJTUciOwogICAgICAgICAgICAgICAgICAgIGNlbGwuaW1hZ2VVUkwgPSBkYXRhW2tleV1bInR2Zy1sb2dvIl07CiAgICAgICAgICAgICAgICAgICAgdmFyIHRkID0gY2VsbC5jcmVhdGVDZWxsKCk7CiAgICAgICAgICAgICAgICAgICAgdGQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgibWFwcGluZyIsIHRoaXMpJyk7CiAgICAgICAgICAgICAgICAgICAgdGQuaWQgPSBrZXk7CiAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQodGQpOwogICAgICAgICAgICAgICAgICAgIC8vIENoYW5uZWwgbmFtZQogICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsKICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsKICAgICAgICAgICAgICAgICAgICBjZWxsLmNsYXNzTmFtZSA9IGRhdGFba2V5XVsieC1jYXRlZ29yeSJdOwogICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bIngtbmFtZSJdOwogICAgICAgICAgICAgICAgICAgIHZhciB0ZCA9IGNlbGwuY3JlYXRlQ2VsbCgpOwogICAgICAgICAgICAgICAgICAgIHRkLnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoIm1hcHBpbmciLCB0aGlzKScpOwogICAgICAgICAgICAgICAgICAgIHRkLmlkID0ga2V5OwogICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKHRkKTsKICAgICAgICAgICAgICAgICAgICAvLyBVcGRhdGUgY2hhbm5lbCBuYW1lIHJlZ2V4CiAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOwogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOwogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOwogICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bInVwZGF0ZS1jaGFubmVsLW5hbWUtcmVnZXgiXTsKICAgICAgICAgICAgICAgICAgICB2YXIgdGQgPSBjZWxsLmNyZWF0ZUNlbGwoKTsKICAgICAgICAgICAgICAgICAgICB0ZC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJtYXBwaW5nIiwgdGhpcyknKTsKICAgICAgICAgICAgICAgICAgICB0ZC5pZCA9IGtleTsKICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZCh0ZCk7CiAgICAgICAgICAgICAgICAgICAgLy8gUGxheWxpc3QKICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7CiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7CiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7CiAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGdldFZhbHVlRnJvbVByb3ZpZGVyRmlsZShkYXRhW2tleV1bIl9maWxlLm0zdS5pZCJdLCAibTN1IiwgIm5hbWUiKTsKICAgICAgICAgICAgICAgICAgICB2YXIgdGQgPSBjZWxsLmNyZWF0ZUNlbGwoKTsKICAgICAgICAgICAgICAgICAgICB0ZC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJtYXBwaW5nIiwgdGhpcyknKTsKICAgICAgICAgICAgICAgICAgICB0ZC5pZCA9IGtleTsKICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZCh0ZCk7CiAgICAgICAgICAgICAgICAgICAgLy8gR3JvdXAgKGdyb3VwLXRpdGxlKQogICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsKICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsKICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJ4LWdyb3VwLXRpdGxlIl07CiAgICAgICAgICAgICAgICAgICAgdmFyIHRkID0gY2VsbC5jcmVhdGVDZWxsKCk7CiAgICAgICAgICAgICAgICAgICAgdGQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgibWFwcGluZyIsIHRoaXMpJyk7CiAgICAgICAgICAgICAgICAgICAgdGQuaWQgPSBrZXk7CiAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQodGQpOwogICAgICAgICAgICAgICAgICAgIC8vIFhNTFRWIGZpbGUKICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7CiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7CiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7CiAgICAgICAgICAgICAgICAgICAgaWYgKGRhdGFba2V5XVsieC14bWx0di1maWxlIl0gIT0gIi0iKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBnZXRWYWx1ZUZyb21Qcm92aWRlckZpbGUoZGF0YVtrZXldWyJ4LXhtbHR2LWZpbGUiXSwgInhtbHR2IiwgIm5hbWUiKTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bIngteG1sdHYtZmlsZSJdOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB2YXIgdGQgPSBjZWxsLmNyZWF0ZUNlbGwoKTsKICAgICAgICAgICAgICAgICAgICB0ZC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJtYXBwaW5nIiwgdGhpcyknKTsKICAgICAgICAgICAgICAgICAgICB0ZC5pZCA9IGtleTsKICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZCh0ZCk7CiAgICAgICAgICAgICAgICAgICAgLy8gWE1MVFYgQ2hhbm5lbAogICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsKICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsKICAgICAgICAgICAgICAgICAgICB2YXIgdmFsdWUgPSBkYXRhW2tleV1bIngtbWFwcGluZyJdOwogICAgICAgICAgICAgICAgICAgIGlmICh2YWx1ZS5sZW5ndGggPiAyMCkgewogICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IGRhdGFba2V5XVsieC1tYXBwaW5nIl0uc3Vic3RyaW5nKDAsIDIwKSArICIuLi4iOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gdmFsdWU7CiAgICAgICAgICAgICAgICAgICAgdmFyIHRkID0gY2VsbC5jcmVhdGVDZWxsKCk7CiAgICAgICAgICAgICAgICAgICAgdGQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgibWFwcGluZyIsIHRoaXMpJyk7CiAgICAgICAgICAgICAgICAgICAgdGQuaWQgPSBrZXk7CiAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQodGQpOwogICAgICAgICAgICAgICAgICAgIC8vIFRpbWVTaGlmdAogICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsKICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsKICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJ4LXRpbWVzaGlmdCJdOwogICAgICAgICAgICAgICAgICAgIHZhciB0ZCA9IGNlbGwuY3JlYXRlQ2VsbCgpOwogICAgICAgICAgICAgICAgICAgIHRkLnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoIm1hcHBpbmciLCB0aGlzKScpOwogICAgICAgICAgICAgICAgICAgIHRkLmlkID0ga2V5OwogICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKHRkKTsKICAgICAgICAgICAgICAgICAgICByb3dzLnB1c2godHIpOwogICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAic2V0dGluZ3MiOgogICAgICAgICAgICAgICAgYWxlcnQoKTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgfQogICAgICAgIHJldHVybiByb3dzOwogICAgfQp9CmNsYXNzIENlbGwgewogICAgY3JlYXRlQ2VsbCgpIHsKICAgICAgICBsZXQgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOwogICAgICAgIGlmICh0aGlzLmNoaWxkID09IHRydWUpIHsKICAgICAgICAgICAgdmFyIGVsZW1lbnQ7CiAgICAgICAgICAgIHN3aXRjaCAodGhpcy5jaGlsZFR5cGUpIHsKICAgICAgICAgICAgICAgIGNhc2UgIlAiOgogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KHRoaXMuY2hpbGRUeXBlKTsKICAgICAgICAgICAgICAgICAgICBlbGVtZW50LmlubmVySFRNTCA9IHRoaXMudmFsdWU7CiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC5jbGFzc05hbWUgPSB0aGlzLmNsYXNzTmFtZTsKICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgIGNhc2UgIklOUFVUIjoKICAgICAgICAgICAgICAgICAgICBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCh0aGlzLmNoaWxkVHlwZSk7CiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC52YWx1ZSA9IHRoaXMudmFsdWU7CiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC50eXBlID0gInRleHQiOwogICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgY2FzZSAiSU5QVVRDSEFOTkVMIjoKICAgICAgICAgICAgICAgICAgICBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiSU5QVVQiKTsKICAgICAgICAgICAgICAgICAgICBlbGVtZW50LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2c2NyaXB0OiBjaGFuZ2VDaGFubmVsTnVtYmVyKHRoaXMpIik7CiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC52YWx1ZSA9IHRoaXMudmFsdWU7CiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC50eXBlID0gInRleHQiOwogICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgY2FzZSAiQlVMSyI6CiAgICAgICAgICAgICAgICAgICAgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIklOUFVUIik7CiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC5jaGVja2VkID0gdGhpcy52YWx1ZTsKICAgICAgICAgICAgICAgICAgICBlbGVtZW50LnR5cGUgPSAiY2hlY2tib3giOwogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQuY2xhc3NOYW1lID0gImJ1bGsgaGlkZUJ1bGsiOwogICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgY2FzZSAiQlVMS19IRUFEIjoKICAgICAgICAgICAgICAgICAgICBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiSU5QVVQiKTsKICAgICAgICAgICAgICAgICAgICBlbGVtZW50LmNoZWNrZWQgPSB0aGlzLnZhbHVlOwogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQudHlwZSA9ICJjaGVja2JveCI7CiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC5jbGFzc05hbWUgPSAiYnVsayBoaWRlQnVsayI7CiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAiamF2YXNjcmlwdDogc2VsZWN0QWxsQ2hhbm5lbHMoKSIpOwogICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgY2FzZSAiSU1HIjoKICAgICAgICAgICAgICAgICAgICBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCh0aGlzLmNoaWxkVHlwZSk7CiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC5zZXRBdHRyaWJ1dGUoInNyYyIsIHRoaXMuaW1hZ2VVUkwpOwogICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLmltYWdlVVJMICE9ICIiKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGVsZW1lbnQuc2V0QXR0cmlidXRlKCJvbmVycm9yIiwgImphdmFzY3JpcHQ6IHRoaXMub25lcnJvcj1udWxsO3RoaXMuc3JjPScnIik7CiAgICAgICAgICAgICAgICAgICAgICAgIC8vb25lcnJvcj0idGhpcy5vbmVycm9yPW51bGw7dGhpcy5zcmM9J21pc3NpbmcuZ2lmJzsiCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICAgIHRkLmFwcGVuZENoaWxkKGVsZW1lbnQpOwogICAgICAgIH0KICAgICAgICBlbHNlIHsKICAgICAgICAgICAgdGQuaW5uZXJIVE1MID0gdGhpcy52YWx1ZTsKICAgICAgICB9CiAgICAgICAgaWYgKHRoaXMub25jbGljayA9PSB0cnVlKSB7CiAgICAgICAgICAgIHRkLnNldEF0dHJpYnV0ZSgib25jbGljayIsIHRoaXMub25jbGlja0Z1bmN0aW9uKTsKICAgICAgICAgICAgdGQuY2xhc3NOYW1lID0gInBvaW50ZXIiOwogICAgICAgIH0KICAgICAgICBpZiAodGhpcy50ZENsYXNzTmFtZSAhPSB1bmRlZmluZWQpIHsKICAgICAgICAgICAgdGQuY2xhc3NOYW1lID0gdGhpcy50ZENsYXNzTmFtZTsKICAgICAgICB9CiAgICAgICAgcmV0dXJuIHRkOwogICAgfQp9CmNsYXNzIFNob3dDb250ZW50IGV4dGVuZHMgQ29udGVudCB7CiAgICBjb25zdHJ1Y3RvcihtZW51SUQpIHsKICAgICAgICBzdXBlcigpOwogICAgICAgIHRoaXMubWVudUlEID0gbWVudUlEOwogICAgfQogICAgY3JlYXRlSW5wdXQodHlwZSwgbmFtZSwgdmFsdWUpIHsKICAgICAgICBsZXQgaW5wdXQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJJTlBVVCIpOwogICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgidHlwZSIsIHR5cGUpOwogICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgibmFtZSIsIG5hbWUpOwogICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgidmFsdWUiLCB2YWx1ZSk7CiAgICAgICAgcmV0dXJuIGlucHV0OwogICAgfQogICAgc2hvdygpIHsKICAgICAgICBDT0xVTU5fVE9fU09SVCA9IC0xOwogICAgICAgIC8vIERlbGV0ZSBvbGQgY29udGVudAogICAgICAgIGxldCBkb2MgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCh0aGlzLkRvY3VtZW50SUQpOwogICAgICAgIGRvYy5pbm5lckhUTUwgPSAiIjsKICAgICAgICBzaG93UHJldmlldyhmYWxzZSk7CiAgICAgICAgLy8gSGVhZGxpbmUKICAgICAgICBsZXQgaGVhZGxpbmUgPSBtZW51SXRlbXNbdGhpcy5tZW51SURdLmhlYWRsaW5lOwogICAgICAgIGxldCBtZW51S2V5ID0gbWVudUl0ZW1zW3RoaXMubWVudUlEXS5tZW51S2V5OwogICAgICAgIGxldCBoID0gdGhpcy5jcmVhdGVIZWFkbGluZShoZWFkbGluZSk7CiAgICAgICAgZG9jLmFwcGVuZENoaWxkKGgpOwogICAgICAgIGxldCBociA9IHRoaXMuY3JlYXRlSFIoKTsKICAgICAgICBkb2MuYXBwZW5kQ2hpbGQoaHIpOwogICAgICAgIC8vIEludGVyYWN0aW9uCiAgICAgICAgbGV0IGRpdiA9IHRoaXMuY3JlYXRlSW50ZXJhY3Rpb24oKTsKICAgICAgICBkb2MuYXBwZW5kQ2hpbGQoZGl2KTsKICAgICAgICBsZXQgaW50ZXJhY3Rpb24gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCh0aGlzLmludGVyYWN0aW9uSUQpOwogICAgICAgIHN3aXRjaCAobWVudUtleSkgewogICAgICAgICAgICBjYXNlICJwbGF5bGlzdCI6CiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSB0aGlzLmNyZWF0ZUlucHV0KCJidXR0b24iLCBtZW51S2V5LCAie3suYnV0dG9uLm5ld319Iik7CiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoImlkIiwgIi0iKTsKICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoInBsYXlsaXN0IiknKTsKICAgICAgICAgICAgICAgIGludGVyYWN0aW9uLmFwcGVuZENoaWxkKGlucHV0KTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJmaWx0ZXIiOgogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gdGhpcy5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgbWVudUtleSwgInt7LmJ1dHRvbi5uZXd9fSIpOwogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJpZCIsIC0xKTsKICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoImZpbHRlciIsIHRoaXMpJyk7CiAgICAgICAgICAgICAgICBpbnRlcmFjdGlvbi5hcHBlbmRDaGlsZChpbnB1dCk7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAieG1sdHYiOgogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gdGhpcy5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgbWVudUtleSwgInt7LmJ1dHRvbi5uZXd9fSIpOwogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJpZCIsICJ4bWx0diIpOwogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgieG1sdHYiKScpOwogICAgICAgICAgICAgICAgaW50ZXJhY3Rpb24uYXBwZW5kQ2hpbGQoaW5wdXQpOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgInVzZXJzIjoKICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IHRoaXMuY3JlYXRlSW5wdXQoImJ1dHRvbiIsIG1lbnVLZXksICJ7ey5idXR0b24ubmV3fX0iKTsKICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgiaWQiLCAidXNlcnMiKTsKICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoInVzZXJzIiknKTsKICAgICAgICAgICAgICAgIGludGVyYWN0aW9uLmFwcGVuZENoaWxkKGlucHV0KTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJtYXBwaW5nIjoKICAgICAgICAgICAgICAgIHNob3dFbGVtZW50KCJsb2FkaW5nIiwgdHJ1ZSk7CiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSB0aGlzLmNyZWF0ZUlucHV0KCJidXR0b24iLCBtZW51S2V5LCAie3suYnV0dG9uLnNhdmV9fSIpOwogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoIm1hcHBpbmciLCAiIiwgIiIpJyk7CiAgICAgICAgICAgICAgICBpbnRlcmFjdGlvbi5hcHBlbmRDaGlsZChpbnB1dCk7CiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSB0aGlzLmNyZWF0ZUlucHV0KCJidXR0b24iLCBtZW51S2V5LCAie3suYnV0dG9uLmJ1bGtFZGl0fX0iKTsKICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBidWxrRWRpdCgpJyk7CiAgICAgICAgICAgICAgICBpbnRlcmFjdGlvbi5hcHBlbmRDaGlsZChpbnB1dCk7CiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSB0aGlzLmNyZWF0ZUlucHV0KCJzZWFyY2giLCAic2VhcmNoIiwgIiIpOwogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJpZCIsICJzZWFyY2hNYXBwaW5nIik7CiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LmJ1dHRvbi5zZWFyY2h9fSIpOwogICAgICAgICAgICAgICAgaW5wdXQuY2xhc3NOYW1lID0gInNlYXJjaCI7CiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgJ2phdmFzY3JpcHQ6IHNlYXJjaEluTWFwcGluZygpJyk7CiAgICAgICAgICAgICAgICBpbnRlcmFjdGlvbi5hcHBlbmRDaGlsZChpbnB1dCk7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAic2V0dGluZ3MiOgogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gdGhpcy5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgbWVudUtleSwgInt7LmJ1dHRvbi5zYXZlfX0iKTsKICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBzYXZlU2V0dGluZ3MoKTsnKTsKICAgICAgICAgICAgICAgIGludGVyYWN0aW9uLmFwcGVuZENoaWxkKGlucHV0KTsKICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IHRoaXMuY3JlYXRlSW5wdXQoImJ1dHRvbiIsIG1lbnVLZXksICJ7ey5idXR0b24uYmFja3VwfX0iKTsKICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBiYWNrdXAoKTsnKTsKICAgICAgICAgICAgICAgIGludGVyYWN0aW9uLmFwcGVuZENoaWxkKGlucHV0KTsKICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IHRoaXMuY3JlYXRlSW5wdXQoImJ1dHRvbiIsIG1lbnVLZXksICJ7ey5idXR0b24ucmVzdG9yZX19Iik7CiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogcmVzdG9yZSgpOycpOwogICAgICAgICAgICAgICAgaW50ZXJhY3Rpb24uYXBwZW5kQ2hpbGQoaW5wdXQpOwogICAgICAgICAgICAgICAgdmFyIHdyYXBwZXIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJESVYiKTsKICAgICAgICAgICAgICAgIHdyYXBwZXIuc2V0QXR0cmlidXRlKCJpZCIsICJib3gtd3JhcHBlciIpOwogICAgICAgICAgICAgICAgZG9jLmFwcGVuZENoaWxkKHdyYXBwZXIpOwogICAgICAgICAgICAgICAgdGhpcy5EaXZJRCA9ICJjb250ZW50X3NldHRpbmdzIjsKICAgICAgICAgICAgICAgIHZhciBzZXR0aW5ncyA9IHRoaXMuY3JlYXRlRElWKCk7CiAgICAgICAgICAgICAgICB3cmFwcGVyLmFwcGVuZENoaWxkKHNldHRpbmdzKTsKICAgICAgICAgICAgICAgIHNob3dTZXR0aW5ncygpOwogICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICBjYXNlICJsb2ciOgogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gdGhpcy5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgbWVudUtleSwgInt7LmJ1dHRvbi5yZXNldExvZ3N9fSIpOwogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IHJlc2V0TG9ncygpOycpOwogICAgICAgICAgICAgICAgaW50ZXJhY3Rpb24uYXBwZW5kQ2hpbGQoaW5wdXQpOwogICAgICAgICAgICAgICAgdmFyIHdyYXBwZXIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJESVYiKTsKICAgICAgICAgICAgICAgIHdyYXBwZXIuc2V0QXR0cmlidXRlKCJpZCIsICJib3gtd3JhcHBlciIpOwogICAgICAgICAgICAgICAgZG9jLmFwcGVuZENoaWxkKHdyYXBwZXIpOwogICAgICAgICAgICAgICAgdGhpcy5EaXZJRCA9ICJjb250ZW50X2xvZyI7CiAgICAgICAgICAgICAgICB2YXIgbG9ncyA9IHRoaXMuY3JlYXRlRElWKCk7CiAgICAgICAgICAgICAgICB3cmFwcGVyLmFwcGVuZENoaWxkKGxvZ3MpOwogICAgICAgICAgICAgICAgc2hvd0xvZ3ModHJ1ZSk7CiAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgIGNhc2UgImxvZ291dCI6CiAgICAgICAgICAgICAgICBsb2NhdGlvbi5yZWxvYWQoKTsKICAgICAgICAgICAgICAgIGRvY3VtZW50LmNvb2tpZSA9ICJUb2tlbj0gOyBleHBpcmVzID0gVGh1LCAwMSBKYW4gMTk3MCAwMDowMDowMCBHTVQiOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICB9CiAgICAgICAgLy8gQ3JlYXRlIHRhYmxlIChpZiBuZWVkZWQpCiAgICAgICAgdmFyIHRhYmxlSGVhZGVyID0gbWVudUl0ZW1zW3RoaXMubWVudUlEXS50YWJsZUhlYWRlcjsKICAgICAgICBpZiAodGFibGVIZWFkZXIubGVuZ3RoID4gMCkgewogICAgICAgICAgICB2YXIgd3JhcHBlciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIkRJViIpOwogICAgICAgICAgICBkb2MuYXBwZW5kQ2hpbGQod3JhcHBlcik7CiAgICAgICAgICAgIHdyYXBwZXIuc2V0QXR0cmlidXRlKCJpZCIsICJib3gtd3JhcHBlciIpOwogICAgICAgICAgICB2YXIgdGFibGUgPSB0aGlzLmNyZWF0ZVRBQkxFKCk7CiAgICAgICAgICAgIHdyYXBwZXIuYXBwZW5kQ2hpbGQodGFibGUpOwogICAgICAgICAgICB2YXIgaGVhZGVyID0gdGhpcy5jcmVhdGVUYWJsZVJvdygpOwogICAgICAgICAgICB0YWJsZS5hcHBlbmRDaGlsZChoZWFkZXIpOwogICAgICAgICAgICAvLyBUYWJsZSBoZWFkZXIKICAgICAgICAgICAgdGFibGVIZWFkZXIuZm9yRWFjaChlbGVtZW50ID0+IHsKICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsKICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOwogICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7CiAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZWxlbWVudDsKICAgICAgICAgICAgICAgIGlmIChlbGVtZW50ID09ICJCVUxLIikgewogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIkJVTEtfSEVBRCI7CiAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGZhbHNlOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgaWYgKG1lbnVLZXkgPT0gIm1hcHBpbmciKSB7CiAgICAgICAgICAgICAgICAgICAgaWYgKGVsZW1lbnQgPT0gInt7Lm1hcHBpbmcudGFibGUuY2hOb319IikgewogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLm9uY2xpY2sgPSB0cnVlOwogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLm9uY2xpY2tGdW5jdGlvbiA9ICJqYXZhc2NyaXB0OiBzb3J0VGFibGUoMSk7IjsKICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC50ZENsYXNzTmFtZSA9ICJzb3J0VGhpcyI7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIGlmIChlbGVtZW50ID09ICJ7ey5tYXBwaW5nLnRhYmxlLmNoYW5uZWxOYW1lfX0iKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwub25jbGljayA9IHRydWU7CiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwub25jbGlja0Z1bmN0aW9uID0gImphdmFzY3JpcHQ6IHNvcnRUYWJsZSgzKTsiOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBpZiAoZWxlbWVudCA9PSAie3subWFwcGluZy50YWJsZS51cGRhdGVDaGFubmVsTmFtZVJlZ2V4fX0iKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwub25jbGljayA9IHRydWU7CiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwub25jbGlja0Z1bmN0aW9uID0gImphdmFzY3JpcHQ6IHNvcnRUYWJsZSg0KTsiOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBpZiAoZWxlbWVudCA9PSAie3subWFwcGluZy50YWJsZS5wbGF5bGlzdH19IikgewogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLm9uY2xpY2sgPSB0cnVlOwogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLm9uY2xpY2tGdW5jdGlvbiA9ICJqYXZhc2NyaXB0OiBzb3J0VGFibGUoNSk7IjsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgaWYgKGVsZW1lbnQgPT0gInt7Lm1hcHBpbmcudGFibGUuZ3JvdXBUaXRsZX19IikgewogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLm9uY2xpY2sgPSB0cnVlOwogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLm9uY2xpY2tGdW5jdGlvbiA9ICJqYXZhc2NyaXB0OiBzb3J0VGFibGUoNik7IjsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgaWYgKGVsZW1lbnQgPT0gInt7Lm1hcHBpbmcudGFibGUudGltZXNoaWZ0fX0iKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwub25jbGljayA9IHRydWU7CiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwub25jbGlja0Z1bmN0aW9uID0gImphdmFzY3JpcHQ6IHNvcnRUYWJsZSg5KTsiOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGlmIChtZW51S2V5ID09ICJmaWx0ZXIiKSB7CiAgICAgICAgICAgICAgICAgICAgaWYgKGVsZW1lbnQgPT0gInt7LmZpbHRlci50YWJsZS5zdGFydGluZ0NoYW5uZWx9fSIpIHsKICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5vbmNsaWNrID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5vbmNsaWNrRnVuY3Rpb24gPSAiamF2YXNjcmlwdDogc29ydFRhYmxlKDApOyI7CiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudGRDbGFzc05hbWUgPSAic29ydFRoaXMiOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBpZiAoZWxlbWVudCA9PSAie3suZmlsdGVyLnRhYmxlLm5hbWV9fSIpIHsKICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5vbmNsaWNrID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5vbmNsaWNrRnVuY3Rpb24gPSAiamF2YXNjcmlwdDogc29ydFRhYmxlKDEpOyI7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIGlmIChlbGVtZW50ID09ICJ7ey5maWx0ZXIudGFibGUudHlwZX19IikgewogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLm9uY2xpY2sgPSB0cnVlOwogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLm9uY2xpY2tGdW5jdGlvbiA9ICJqYXZhc2NyaXB0OiBzb3J0VGFibGUoMik7IjsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgaWYgKGVsZW1lbnQgPT0gInt7LmZpbHRlci50YWJsZS5maWx0ZXJ9fSIpIHsKICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5vbmNsaWNrID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5vbmNsaWNrRnVuY3Rpb24gPSAiamF2YXNjcmlwdDogc29ydFRhYmxlKDMpOyI7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgaGVhZGVyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsKICAgICAgICAgICAgfSk7CiAgICAgICAgICAgIHRhYmxlLmFwcGVuZENoaWxkKGhlYWRlcik7CiAgICAgICAgICAgIC8vIENvbnRlbnQgb2YgdGhlIHRhYmxlCiAgICAgICAgICAgIHZhciByb3dzID0gdGhpcy5jcmVhdGVUYWJsZUNvbnRlbnQobWVudUtleSk7CiAgICAgICAgICAgIHJvd3MuZm9yRWFjaCh0ciA9PiB7CiAgICAgICAgICAgICAgICB0YWJsZS5hcHBlbmRDaGlsZCh0cik7CiAgICAgICAgICAgIH0pOwogICAgICAgIH0KICAgICAgICBzd2l0Y2ggKG1lbnVLZXkpIHsKICAgICAgICAgICAgY2FzZSAibWFwcGluZyI6CiAgICAgICAgICAgICAgICBzb3J0VGFibGUoMSk7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAiZmlsdGVyIjoKICAgICAgICAgICAgICAgIHNob3dQcmV2aWV3KHRydWUpOwogICAgICAgICAgICAgICAgc29ydFRhYmxlKDApOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICAgICBDT0xVTU5fVE9fU09SVCA9IC0xOwogICAgICAgICAgICAgICAgc29ydFRhYmxlKDApOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgfQogICAgICAgIHNob3dFbGVtZW50KCJsb2FkaW5nIiwgZmFsc2UpOwogICAgfQp9CmZ1bmN0aW9uIFBhZ2VSZWFkeSgpIHsKICAgIGxldCBzZXJ2ZXIgPSBuZXcgU2VydmVyKCJnZXRTZXJ2ZXJDb25maWciKTsKICAgIHNlcnZlci5yZXF1ZXN0KHt9KTsKICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJyZXNpemUiLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgY2FsY3VsYXRlV3JhcHBlckhlaWdodCgpOwogICAgfSwgdHJ1ZSk7CiAgICBzZXRJbnRlcnZhbChmdW5jdGlvbiAoKSB7CiAgICAgICAgdXBkYXRlTG9nKCk7CiAgICB9LCAxMDAwMCk7CiAgICByZXR1cm47Cn0KZnVuY3Rpb24gY3JlYXRlTGF5b3V0KCkgewogICAgLy8gQ2xpZW50IEluZm8KICAgIGxldCBvYmogPSBTRVJWRVJbImNsaWVudEluZm8iXTsKICAgIGxldCBrZXlzID0gZ2V0T3duT2JqUHJvcHMob2JqKTsKICAgIGZvciAodmFyIGkgPSAwOyBpIDwga2V5cy5sZW5ndGg7IGkrKykgewogICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGtleXNbaV0pLmlubmVySFRNTCA9IG9ialtrZXlzW2ldXTsKICAgICAgICBpZiAoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoa2V5c1tpXSkpIHsKICAgICAgICAgICAgaWYgKGxvY2F0aW9uLnByb3RvY29sID09PSAnaHR0cHM6JykgewogICAgICAgICAgICAgICAgaWYgKGtleXNbaV0gPT09ICJ4ZXBnLXVybCIgfHwga2V5c1tpXSA9PT0gIm0zdS11cmwiIHx8IGtleXNbaV0gPT09ICJEVlIiKSB7CiAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoa2V5c1tpXSkuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCBmdW5jdGlvbiAoZXZlbnQpIHsKICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdGFyZ2V0ID0gZXZlbnQudGFyZ2V0OwogICAgICAgICAgICAgICAgICAgICAgICBuYXZpZ2F0b3IuY2xpcGJvYXJkLndyaXRlVGV4dCh0YXJnZXQuaW5uZXJUZXh0LnNwbGl0KCIgIilbMF0pLnRoZW4oKCkgPT4geyB9KTsKICAgICAgICAgICAgICAgICAgICB9LCBmYWxzZSk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CiAgICBpZiAoIWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJtYWluLW1lbnUiKSkgewogICAgICAgIHJldHVybjsKICAgIH0KICAgIC8vIENyZWF0ZSBtZW51CiAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibWFpbi1tZW51IikuaW5uZXJIVE1MID0gIiI7CiAgICBmb3IgKGxldCBpID0gMDsgaSA8IG1lbnVJdGVtcy5sZW5ndGg7IGkrKykgewogICAgICAgIG1lbnVJdGVtc1tpXS5pZCA9IGk7CiAgICAgICAgc3dpdGNoIChtZW51SXRlbXNbaV1bIm1lbnVLZXkiXSkgewogICAgICAgICAgICBjYXNlICJ1c2VycyI6CiAgICAgICAgICAgIGNhc2UgImxvZ291dCI6CiAgICAgICAgICAgICAgICBpZiAoU0VSVkVSWyJzZXR0aW5ncyJdWyJhdXRoZW50aWNhdGlvbi53ZWIiXSA9PSB0cnVlKSB7CiAgICAgICAgICAgICAgICAgICAgbWVudUl0ZW1zW2ldLmNyZWF0ZUl0ZW0oKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJtYXBwaW5nIjoKICAgICAgICAgICAgY2FzZSAieG1sdHYiOgogICAgICAgICAgICAgICAgaWYgKFNFUlZFUlsiY2xpZW50SW5mbyJdWyJlcGdTb3VyY2UiXSA9PSAiWEVQRyIpIHsKICAgICAgICAgICAgICAgICAgICBtZW51SXRlbXNbaV0uY3JlYXRlSXRlbSgpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICAgICBtZW51SXRlbXNbaV0uY3JlYXRlSXRlbSgpOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgfQogICAgfQogICAgcmV0dXJuOwp9CmZ1bmN0aW9uIG9wZW5UaGlzTWVudShlbGVtZW50KSB7CiAgICBsZXQgaWQgPSBlbGVtZW50LmlkOwogICAgbGV0IGNvbnRlbnQgPSBuZXcgU2hvd0NvbnRlbnQoaWQpOwogICAgY29udGVudC5zaG93KCk7CiAgICBjYWxjdWxhdGVXcmFwcGVySGVpZ2h0KCk7CiAgICByZXR1cm47Cn0KY2xhc3MgUG9wdXBXaW5kb3cgewogICAgY29uc3RydWN0b3IoKSB7CiAgICAgICAgdGhpcy5Eb2N1bWVudElEID0gInBvcHVwLWN1c3RvbSI7CiAgICAgICAgdGhpcy5JbnRlcmFjdGlvbklEID0gImludGVyYWN0aW9uIjsKICAgICAgICB0aGlzLmRvYyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHRoaXMuRG9jdW1lbnRJRCk7CiAgICB9CiAgICBjcmVhdGVUaXRsZSh0aXRsZSkgewogICAgICAgIGxldCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7CiAgICAgICAgdGQuY2xhc3NOYW1lID0gImxlZnQiOwogICAgICAgIHRkLmlubmVySFRNTCA9IHRpdGxlICsgIjoiOwogICAgICAgIHJldHVybiB0ZDsKICAgIH0KICAgIGNyZWF0ZUNvbnRlbnQoZWxlbWVudCkgewogICAgICAgIGxldCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7CiAgICAgICAgdGQuYXBwZW5kQ2hpbGQoZWxlbWVudCk7CiAgICAgICAgcmV0dXJuIHRkOwogICAgfQogICAgY3JlYXRlSW50ZXJhY3Rpb24oKSB7CiAgICAgICAgbGV0IGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOwogICAgICAgIGRpdi5zZXRBdHRyaWJ1dGUoImlkIiwgInBvcHVwLWludGVyYWN0aW9uIik7CiAgICAgICAgZGl2LmNsYXNzTmFtZSA9ICJpbnRlcmFjdGlvbiI7CiAgICAgICAgdGhpcy5kb2MuYXBwZW5kQ2hpbGQoZGl2KTsKICAgIH0KfQpjbGFzcyBQb3B1cENvbnRlbnQgZXh0ZW5kcyBQb3B1cFdpbmRvdyB7CiAgICBjb25zdHJ1Y3RvcigpIHsKICAgICAgICBzdXBlciguLi5hcmd1bWVudHMpOwogICAgICAgIHRoaXMudGFibGUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJUQUJMRSIpOwogICAgfQogICAgY3JlYXRlSGVhZGxpbmUoaGVhZGxpbmUpIHsKICAgICAgICB0aGlzLmRvYy5pbm5lckhUTUwgPSAiIjsKICAgICAgICB2YXIgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIkgzIik7CiAgICAgICAgZWxlbWVudC5pbm5lckhUTUwgPSBoZWFkbGluZS50b1VwcGVyQ2FzZSgpOwogICAgICAgIHRoaXMuZG9jLmFwcGVuZENoaWxkKGVsZW1lbnQpOwogICAgICAgIC8vIENyZWF0ZSB0YWJsZQogICAgICAgIHRoaXMudGFibGUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJUQUJMRSIpOwogICAgICAgIHRoaXMuZG9jLmFwcGVuZENoaWxkKHRoaXMudGFibGUpOwogICAgfQogICAgYXBwZW5kUm93KHRpdGxlLCBlbGVtZW50KSB7CiAgICAgICAgbGV0IHRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVFIiKTsKICAgICAgICAvLyBUaXRsZQogICAgICAgIGlmICh0aXRsZS5sZW5ndGggIT0gMCkgewogICAgICAgICAgICB0ci5hcHBlbmRDaGlsZCh0aGlzLmNyZWF0ZVRpdGxlKHRpdGxlKSk7CiAgICAgICAgfQogICAgICAgIC8vIENvbnRlbnQKICAgICAgICB0ci5hcHBlbmRDaGlsZCh0aGlzLmNyZWF0ZUNvbnRlbnQoZWxlbWVudCkpOwogICAgICAgIHRoaXMudGFibGUuYXBwZW5kQ2hpbGQodHIpOwogICAgfQogICAgY3JlYXRlSW5wdXQodHlwZSwgbmFtZSwgdmFsdWUpIHsKICAgICAgICBsZXQgaW5wdXQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJJTlBVVCIpOwogICAgICAgIGlmICh2YWx1ZSA9PSB1bmRlZmluZWQpIHsKICAgICAgICAgICAgdmFsdWUgPSAiIjsKICAgICAgICB9CiAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJ0eXBlIiwgdHlwZSk7CiAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJuYW1lIiwgbmFtZSk7CiAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJ2YWx1ZSIsIHZhbHVlKTsKICAgICAgICByZXR1cm4gaW5wdXQ7CiAgICB9CiAgICBjcmVhdGVDaGVja2JveChuYW1lKSB7CiAgICAgICAgbGV0IGlucHV0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiSU5QVVQiKTsKICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInR5cGUiLCAiY2hlY2tib3giKTsKICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm5hbWUiLCBuYW1lKTsKICAgICAgICByZXR1cm4gaW5wdXQ7CiAgICB9CiAgICAvLyBDcmVhdGVzIGEgc2VsZWN0aW9uIG9mIG11bHRpcGxlIG9wdGlvbnMgdmFsdWVzIHdpdGggdGV4dCBkZXNjcmlwdGlvbnMKICAgIGNyZWF0ZVNlbGVjdCh0ZXh0LCB2YWx1ZXMsIHNldCwgZGJLZXkpIHsKICAgICAgICBsZXQgc2VsZWN0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiU0VMRUNUIik7CiAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgibmFtZSIsIGRiS2V5KTsKICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRleHQubGVuZ3RoOyBpKyspIHsKICAgICAgICAgICAgbGV0IG9wdGlvbiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIk9QVElPTiIpOwogICAgICAgICAgICBvcHRpb24uc2V0QXR0cmlidXRlKCJ2YWx1ZSIsIHZhbHVlc1tpXSk7CiAgICAgICAgICAgIG9wdGlvbi5pbm5lclRleHQgPSB0ZXh0W2ldOwogICAgICAgICAgICBzZWxlY3QuYXBwZW5kQ2hpbGQob3B0aW9uKTsKICAgICAgICB9CiAgICAgICAgaWYgKHNldCAhPSAiIikgewogICAgICAgICAgICBzZWxlY3QudmFsdWUgPSBzZXQ7CiAgICAgICAgfQogICAgICAgIGlmIChzZXQgPT0gdW5kZWZpbmVkKSB7CiAgICAgICAgICAgIHNlbGVjdC52YWx1ZSA9IHZhbHVlc1swXTsKICAgICAgICB9CiAgICAgICAgcmV0dXJuIHNlbGVjdDsKICAgIH0KICAgIHNlbGVjdE9wdGlvbihzZWxlY3QsIHZhbHVlKSB7CiAgICAgICAgLy9zZWxlY3Quc2VsZWN0ZWRPcHRpb25zID0gdmFsdWUKICAgICAgICBsZXQgcyA9IHNlbGVjdDsKICAgICAgICBzLm9wdGlvbnNbcy5zZWxlY3RlZEluZGV4XS52YWx1ZSA9IHZhbHVlOwogICAgICAgIHJldHVybiBzZWxlY3Q7CiAgICB9CiAgICBkZXNjcmlwdGlvbih2YWx1ZSkgewogICAgICAgIGxldCB0ciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlRSIik7CiAgICAgICAgbGV0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsKICAgICAgICBsZXQgc3BhbiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlBSRSIpOwogICAgICAgIHNwYW4uaW5uZXJIVE1MID0gdmFsdWU7CiAgICAgICAgdHIuYXBwZW5kQ2hpbGQodGQpOwogICAgICAgIHRyLmFwcGVuZENoaWxkKHRoaXMuY3JlYXRlQ29udGVudChzcGFuKSk7CiAgICAgICAgdGhpcy50YWJsZS5hcHBlbmRDaGlsZCh0cik7CiAgICB9CiAgICAvLyBJbnRlcmFjdGlvbgogICAgYWRkSW50ZXJhY3Rpb24oZWxlbWVudCkgewogICAgICAgIGxldCBpbnRlcmFjdGlvbiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJwb3B1cC1pbnRlcmFjdGlvbiIpOwogICAgICAgIGludGVyYWN0aW9uLmFwcGVuZENoaWxkKGVsZW1lbnQpOwogICAgfQp9CmZ1bmN0aW9uIG9wZW5Qb3BVcChkYXRhVHlwZSwgZWxlbWVudCkgewogICAgbGV0IGRhdGEgPSB7fTsKICAgIGxldCBpZDsKICAgIHN3aXRjaCAoZWxlbWVudCkgewogICAgICAgIGNhc2UgdW5kZWZpbmVkOgogICAgICAgICAgICBzd2l0Y2ggKGRhdGFUeXBlKSB7CiAgICAgICAgICAgICAgICBjYXNlICJncm91cC10aXRsZSI6CiAgICAgICAgICAgICAgICAgICAgaWYgKGlkID09IHVuZGVmaW5lZCkgewogICAgICAgICAgICAgICAgICAgICAgICBpZCA9IC0xOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBkYXRhID0gZ2V0TG9jYWxEYXRhKCJmaWx0ZXIiLCBpZCk7CiAgICAgICAgICAgICAgICAgICAgZGF0YVsidHlwZSJdID0gImdyb3VwLXRpdGxlIjsKICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgIGNhc2UgImN1c3RvbS1maWx0ZXIiOgogICAgICAgICAgICAgICAgICAgIGlmIChpZCA9PSB1bmRlZmluZWQpIHsKICAgICAgICAgICAgICAgICAgICAgICAgaWQgPSAtMTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgZGF0YSA9IGdldExvY2FsRGF0YSgiZmlsdGVyIiwgaWQpOwogICAgICAgICAgICAgICAgICAgIGRhdGFbInR5cGUiXSA9ICJjdXN0b20tZmlsdGVyIjsKICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICAgICAgICAgZGF0YVsiaWQucHJvdmlkZXIiXSA9ICItIjsKICAgICAgICAgICAgICAgICAgICBkYXRhWyJ0eXBlIl0gPSBkYXRhVHlwZTsKICAgICAgICAgICAgICAgICAgICBpZCA9ICItIjsKICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgfQogICAgICAgICAgICBicmVhazsKICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICBpZCA9IGVsZW1lbnQuaWQ7CiAgICAgICAgICAgIGRhdGEgPSBnZXRMb2NhbERhdGEoZGF0YVR5cGUsIGlkKTsKICAgICAgICAgICAgYnJlYWs7CiAgICB9CiAgICBsZXQgY29udGVudCA9IG5ldyBQb3B1cENvbnRlbnQoKTsKICAgIHN3aXRjaCAoZGF0YVR5cGUpIHsKICAgICAgICBjYXNlICJwbGF5bGlzdCI6CiAgICAgICAgICAgIGNvbnRlbnQuY3JlYXRlSGVhZGxpbmUoInt7LnBsYXlsaXN0LnBsYXlsaXN0VHlwZS50aXRsZX19Iik7CiAgICAgICAgICAgIC8vIFR5cGUKICAgICAgICAgICAgdmFyIHRleHQgPSBbIk0zVSIsICJIREhvbWVSdW4iXTsKICAgICAgICAgICAgdmFyIHZhbHVlcyA9IFsiamF2YXNjcmlwdDogb3BlblBvcFVwKCdtM3UnKSIsICJqYXZhc2NyaXB0OiBvcGVuUG9wVXAoJ2hkaHInKSJdOwogICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCAiIiwgInR5cGUiKTsKICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgiaWQiLCAidHlwZSIpOwogICAgICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICdqYXZhc2NyaXB0OiBjaGFuZ2VCdXR0b25BY3Rpb24odGhpcywgIm5leHQiLCAib25jbGljayIpJyk7IC8vIGNoYW5nZUJ1dHRvbkFjdGlvbgogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sucGxheWxpc3QudHlwZS50aXRsZX19Iiwgc2VsZWN0KTsKICAgICAgICAgICAgLy8gSW50ZXJhY3Rpb24KICAgICAgICAgICAgY29udGVudC5jcmVhdGVJbnRlcmFjdGlvbigpOwogICAgICAgICAgICAvLyBBYm9ydAogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAiY2FuY2VsIiwgInt7LmJ1dHRvbi5jYW5jZWx9fSIpOwogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogc2hvd0VsZW1lbnQoInBvcHVwIiwgZmFsc2UpOycpOwogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsKICAgICAgICAgICAgLy8gTmV4dAogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAibmV4dCIsICJ7ey5idXR0b24ubmV4dH19Iik7CiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoIm0zdSIpJyk7CiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgiaWQiLCAnbmV4dCcpOwogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgY2FzZSAibTN1IjoKICAgICAgICAgICAgY29udGVudC5jcmVhdGVIZWFkbGluZShkYXRhVHlwZSk7CiAgICAgICAgICAgIC8vIE5hbWUKICAgICAgICAgICAgdmFyIGRiS2V5ID0gIm5hbWUiOwogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsKICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5wbGF5bGlzdC5uYW1lLnBsYWNlaG9sZGVyfX0iKTsKICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnBsYXlsaXN0Lm5hbWUudGl0bGV9fSIsIGlucHV0KTsKICAgICAgICAgICAgLy8gRGVzY3JpcHRpb24KICAgICAgICAgICAgdmFyIGRiS2V5ID0gImRlc2NyaXB0aW9uIjsKICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7CiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3sucGxheWxpc3QuZGVzY3JpcHRpb24ucGxhY2Vob2xkZXJ9fSIpOwogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sucGxheWxpc3QuZGVzY3JpcHRpb24udGl0bGV9fSIsIGlucHV0KTsKICAgICAgICAgICAgLy8gVVJMCiAgICAgICAgICAgIHZhciBkYktleSA9ICJmaWxlLnNvdXJjZSI7CiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOwogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnBsYXlsaXN0LmZpbGVNM1UucGxhY2Vob2xkZXJ9fSIpOwogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sucGxheWxpc3QuZmlsZU0zVS50aXRsZX19IiwgaW5wdXQpOwogICAgICAgICAgICAvLyBUdW5lcgogICAgICAgICAgICBpZiAoU0VSVkVSWyJzZXR0aW5ncyJdWyJidWZmZXIiXSAhPSAiLSIpIHsKICAgICAgICAgICAgICAgIHZhciB0ZXh0ID0gW107CiAgICAgICAgICAgICAgICB2YXIgdmFsdWVzID0gW107CiAgICAgICAgICAgICAgICBmb3IgKHZhciBpID0gMTsgaSA8PSAxMDA7IGkrKykgewogICAgICAgICAgICAgICAgICAgIHRleHQucHVzaChpLnRvU3RyaW5nKCkpOwogICAgICAgICAgICAgICAgICAgIHZhbHVlcy5wdXNoKGkudG9TdHJpbmcoKSk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB2YXIgZGJLZXkgPSAidHVuZXIiOwogICAgICAgICAgICAgICAgdmFyIHNlbGVjdCA9IGNvbnRlbnQuY3JlYXRlU2VsZWN0KHRleHQsIHZhbHVlcywgZGF0YVtkYktleV0sIGRiS2V5KTsKICAgICAgICAgICAgICAgIHNlbGVjdC5zZXRBdHRyaWJ1dGUoIm9uZm9jdXMiLCAiamF2YXNjcmlwdDogcmV0dXJuOyIpOwogICAgICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnBsYXlsaXN0LnR1bmVyLnRpdGxlfX0iLCBzZWxlY3QpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgdmFyIGRiS2V5ID0gInR1bmVyIjsKICAgICAgICAgICAgICAgIGlmIChkYXRhW2RiS2V5XSA9PSB1bmRlZmluZWQpIHsKICAgICAgICAgICAgICAgICAgICBkYXRhW2RiS2V5XSA9IDE7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsKICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicmVhZG9ubHkiLCAidHJ1ZSIpOwogICAgICAgICAgICAgICAgaW5wdXQuY2xhc3NOYW1lID0gIm5vdEF2YWlsYWJsZSI7CiAgICAgICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sucGxheWxpc3QudHVuZXIudGl0bGV9fSIsIGlucHV0KTsKICAgICAgICAgICAgfQogICAgICAgICAgICBjb250ZW50LmRlc2NyaXB0aW9uKCJ7ey5wbGF5bGlzdC50dW5lci5kZXNjcmlwdGlvbn19Iik7CiAgICAgICAgICAgIC8vIEludGVyYXRpb24KICAgICAgICAgICAgY29udGVudC5jcmVhdGVJbnRlcmFjdGlvbigpOwogICAgICAgICAgICAvLyBEZWxldGUKICAgICAgICAgICAgaWYgKGRhdGFbImlkLnByb3ZpZGVyIl0gIT0gIi0iKSB7CiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAiZGVsZXRlIiwgInt7LmJ1dHRvbi5kZWxldGV9fSIpOwogICAgICAgICAgICAgICAgaW5wdXQuY2xhc3NOYW1lID0gImRlbGV0ZSI7CiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogc2F2ZVBvcHVwRGF0YSgibTN1IiwgIicgKyBpZCArICciLCB0cnVlLCAwKScpOwogICAgICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAiYmFjayIsICJ7ey5idXR0b24uYmFja319Iik7CiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJwbGF5bGlzdCIpJyk7CiAgICAgICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsKICAgICAgICAgICAgfQogICAgICAgICAgICAvLyBBYm9ydAogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAiY2FuY2VsIiwgInt7LmJ1dHRvbi5jYW5jZWx9fSIpOwogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogc2hvd0VsZW1lbnQoInBvcHVwIiwgZmFsc2UpOycpOwogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsKICAgICAgICAgICAgLy8gVXBkYXRlCiAgICAgICAgICAgIGlmIChkYXRhWyJpZC5wcm92aWRlciJdICE9ICItIikgewogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgInVwZGF0ZSIsICJ7ey5idXR0b24udXBkYXRlfX0iKTsKICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBzYXZlUG9wdXBEYXRhKCJtM3UiLCAiJyArIGlkICsgJyIsIGZhbHNlLCAxKScpOwogICAgICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgLy8gU2F2ZQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAic2F2ZSIsICJ7ey5idXR0b24uc2F2ZX19Iik7CiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBzYXZlUG9wdXBEYXRhKCJtM3UiLCAiJyArIGlkICsgJyIsIGZhbHNlLCAwKScpOwogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgY2FzZSAiaGRociI6CiAgICAgICAgICAgIGNvbnRlbnQuY3JlYXRlSGVhZGxpbmUoZGF0YVR5cGUpOwogICAgICAgICAgICAvLyBOYW1lCiAgICAgICAgICAgIHZhciBkYktleSA9ICJuYW1lIjsKICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7CiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3sucGxheWxpc3QubmFtZS5wbGFjZWhvbGRlcn19Iik7CiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5wbGF5bGlzdC5uYW1lLnRpdGxlfX0iLCBpbnB1dCk7CiAgICAgICAgICAgIC8vIERlc2NyaXB0aW9uCiAgICAgICAgICAgIHZhciBkYktleSA9ICJkZXNjcmlwdGlvbiI7CiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOwogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnBsYXlsaXN0LmRlc2NyaXB0aW9uLnBsYWNlaG9sZGVyfX0iKTsKICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnBsYXlsaXN0LmRlc2NyaXB0aW9uLnBsYWNlaG9sZGVyfX0iLCBpbnB1dCk7CiAgICAgICAgICAgIC8vIFVSTAogICAgICAgICAgICB2YXIgZGJLZXkgPSAiZmlsZS5zb3VyY2UiOwogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsKICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5wbGF5bGlzdC5maWxlSERIUi5wbGFjZWhvbGRlcn19Iik7CiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5wbGF5bGlzdC5maWxlSERIUi50aXRsZX19IiwgaW5wdXQpOwogICAgICAgICAgICAvLyBUdW5lcgogICAgICAgICAgICBpZiAoU0VSVkVSWyJzZXR0aW5ncyJdWyJidWZmZXIiXSAhPSAiLSIpIHsKICAgICAgICAgICAgICAgIHZhciB0ZXh0ID0gW107CiAgICAgICAgICAgICAgICB2YXIgdmFsdWVzID0gW107CiAgICAgICAgICAgICAgICBmb3IgKHZhciBpID0gMTsgaSA8PSAxMDA7IGkrKykgewogICAgICAgICAgICAgICAgICAgIHRleHQucHVzaChpLnRvU3RyaW5nKCkpOwogICAgICAgICAgICAgICAgICAgIHZhbHVlcy5wdXNoKGkudG9TdHJpbmcoKSk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB2YXIgZGJLZXkgPSAidHVuZXIiOwogICAgICAgICAgICAgICAgdmFyIHNlbGVjdCA9IGNvbnRlbnQuY3JlYXRlU2VsZWN0KHRleHQsIHZhbHVlcywgZGF0YVtkYktleV0sIGRiS2V5KTsKICAgICAgICAgICAgICAgIHNlbGVjdC5zZXRBdHRyaWJ1dGUoIm9uZm9jdXMiLCAiamF2YXNjcmlwdDogcmV0dXJuOyIpOwogICAgICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnBsYXlsaXN0LnR1bmVyLnRpdGxlfX0iLCBzZWxlY3QpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgdmFyIGRiS2V5ID0gInR1bmVyIjsKICAgICAgICAgICAgICAgIGlmIChkYXRhW2RiS2V5XSA9PSB1bmRlZmluZWQpIHsKICAgICAgICAgICAgICAgICAgICBkYXRhW2RiS2V5XSA9IDE7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsKICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicmVhZG9ubHkiLCAidHJ1ZSIpOwogICAgICAgICAgICAgICAgaW5wdXQuY2xhc3NOYW1lID0gIm5vdEF2YWlsYWJsZSI7CiAgICAgICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sucGxheWxpc3QudHVuZXIudGl0bGV9fSIsIGlucHV0KTsKICAgICAgICAgICAgfQogICAgICAgICAgICBjb250ZW50LmRlc2NyaXB0aW9uKCJ7ey5wbGF5bGlzdC50dW5lci5kZXNjcmlwdGlvbn19Iik7CiAgICAgICAgICAgIC8vIEludGVyYWN0aW9uCiAgICAgICAgICAgIGNvbnRlbnQuY3JlYXRlSW50ZXJhY3Rpb24oKTsKICAgICAgICAgICAgLy8gRGVsZXRlCiAgICAgICAgICAgIGlmIChkYXRhWyJpZC5wcm92aWRlciJdICE9ICItIikgewogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImRlbGV0ZSIsICJ7ey5idXR0b24uZGVsZXRlfX0iKTsKICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBzYXZlUG9wdXBEYXRhKCJoZGhyIiwgIicgKyBpZCArICciLCB0cnVlLCAwKScpOwogICAgICAgICAgICAgICAgaW5wdXQuY2xhc3NOYW1lID0gImRlbGV0ZSI7CiAgICAgICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsKICAgICAgICAgICAgfQogICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJiYWNrIiwgInt7LmJ1dHRvbi5iYWNrfX0iKTsKICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoInBsYXlsaXN0IiknKTsKICAgICAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIC8vIEFib3J0CiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJjYW5jZWwiLCAie3suYnV0dG9uLmNhbmNlbH19Iik7CiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBzaG93RWxlbWVudCgicG9wdXAiLCBmYWxzZSk7Jyk7CiAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOwogICAgICAgICAgICAvLyBVcGRhdGUKICAgICAgICAgICAgaWYgKGRhdGFbImlkLnByb3ZpZGVyIl0gIT0gIi0iKSB7CiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAidXBkYXRlIiwgInt7LmJ1dHRvbi51cGRhdGV9fSIpOwogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoImhkaHIiLCAiJyArIGlkICsgJyIsIGZhbHNlLCAxKScpOwogICAgICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgLy8gU2F2ZQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAic2F2ZSIsICJ7ey5idXR0b24uc2F2ZX19Iik7CiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBzYXZlUG9wdXBEYXRhKCJoZGhyIiwgIicgKyBpZCArICciLCBmYWxzZSwgMCknKTsKICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgIGNhc2UgImZpbHRlciI6CiAgICAgICAgICAgIGNvbnRlbnQuY3JlYXRlSGVhZGxpbmUoZGF0YVR5cGUpOwogICAgICAgICAgICAvLyBUeXBlCiAgICAgICAgICAgIHZhciBkYktleSA9ICJ0eXBlIjsKICAgICAgICAgICAgdmFyIHRleHQgPSBbIk0zVTogIiArICJ7ey5maWx0ZXIudHlwZS5ncm91cFRpdGxlfX0iLCAieFRlVmU6ICIgKyAie3suZmlsdGVyLnR5cGUuY3VzdG9tRmlsdGVyfX0iXTsKICAgICAgICAgICAgdmFyIHZhbHVlcyA9IFsiamF2YXNjcmlwdDogb3BlblBvcFVwKCdncm91cC10aXRsZScpIiwgImphdmFzY3JpcHQ6IG9wZW5Qb3BVcCgnY3VzdG9tLWZpbHRlcicpIl07CiAgICAgICAgICAgIHZhciBzZWxlY3QgPSBjb250ZW50LmNyZWF0ZVNlbGVjdCh0ZXh0LCB2YWx1ZXMsICJqYXZhc2NyaXB0OiBvcGVuUG9wVXAoJ2dyb3VwLXRpdGxlJykiLCBkYktleSk7CiAgICAgICAgICAgIHNlbGVjdC5zZXRBdHRyaWJ1dGUoImlkIiwgaWQpOwogICAgICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICdqYXZhc2NyaXB0OiBjaGFuZ2VCdXR0b25BY3Rpb24odGhpcywgIm5leHQiLCAib25jbGljayIpOycpOyAvLyBjaGFuZ2VCdXR0b25BY3Rpb24KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LmZpbHRlci50eXBlLnRpdGxlfX0iLCBzZWxlY3QpOwogICAgICAgICAgICAvLyBJbnRlcmFjdGlvbgogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUludGVyYWN0aW9uKCk7CiAgICAgICAgICAgIC8vIEFib3J0CiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJjYW5jZWwiLCAie3suYnV0dG9uLmNhbmNlbH19Iik7CiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBzaG93RWxlbWVudCgicG9wdXAiLCBmYWxzZSk7Jyk7CiAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOwogICAgICAgICAgICAvLyBOZXh0CiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJuZXh0IiwgInt7LmJ1dHRvbi5uZXh0fX0iKTsKICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgiZ3JvdXAtdGl0bGUiKScpOwogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoImlkIiwgJ25leHQnKTsKICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgIGNhc2UgImN1c3RvbS1maWx0ZXIiOgogICAgICAgIGNhc2UgImdyb3VwLXRpdGxlIjoKICAgICAgICAgICAgc3dpdGNoIChkYXRhVHlwZSkgewogICAgICAgICAgICAgICAgY2FzZSAiY3VzdG9tLWZpbHRlciI6CiAgICAgICAgICAgICAgICAgICAgY29udGVudC5jcmVhdGVIZWFkbGluZSgie3suZmlsdGVyLmN1c3RvbX19IiArICIgRmlsdGVyIik7CiAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICBjYXNlICJncm91cC10aXRsZSI6CiAgICAgICAgICAgICAgICAgICAgY29udGVudC5jcmVhdGVIZWFkbGluZSgie3suZmlsdGVyLmdyb3VwfX0iICsgIiBGaWx0ZXIiKTsKICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgfQogICAgICAgICAgICAvLyBOYW1lICAgICAgCiAgICAgICAgICAgIHZhciBkYktleSA9ICJuYW1lIjsKICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7CiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3suZmlsdGVyLm5hbWUucGxhY2Vob2xkZXJ9fSIpOwogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3suZmlsdGVyLm5hbWUudGl0bGV9fSIsIGlucHV0KTsKICAgICAgICAgICAgLy8gRGVzY3JpcHRpb24KICAgICAgICAgICAgdmFyIGRiS2V5ID0gImRlc2NyaXB0aW9uIjsKICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7CiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3suZmlsdGVyLmRlc2NyaXB0aW9uLnBsYWNlaG9sZGVyfX0iKTsKICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LmZpbHRlci5kZXNjcmlwdGlvbi50aXRsZX19IiwgaW5wdXQpOwogICAgICAgICAgICAvLyBUeXBlCiAgICAgICAgICAgIHZhciBkYktleSA9ICJ0eXBlIjsKICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiaGlkZGVuIiwgZGJLZXksIGRhdGFbZGJLZXldKTsKICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coIiIsIGlucHV0KTsKICAgICAgICAgICAgdmFyIGZpbHRlclR5cGUgPSBkYXRhW2RiS2V5XTsKICAgICAgICAgICAgc3dpdGNoIChmaWx0ZXJUeXBlKSB7CiAgICAgICAgICAgICAgICBjYXNlICJjdXN0b20tZmlsdGVyIjoKICAgICAgICAgICAgICAgICAgICAvLyBDYXNlIHNlbnNpdGl2ZQogICAgICAgICAgICAgICAgICAgIHZhciBkYktleSA9ICJjYXNlU2Vuc2l0aXZlIjsKICAgICAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KGRiS2V5KTsKICAgICAgICAgICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YVtkYktleV07CiAgICAgICAgICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LmZpbHRlci5jYXNlU2Vuc2l0aXZlLnRpdGxlfX0iLCBpbnB1dCk7CiAgICAgICAgICAgICAgICAgICAgLy8gRmlsdGVyIFJ1bGUgKEN1c3RvbSkKICAgICAgICAgICAgICAgICAgICB2YXIgZGJLZXkgPSAiZmlsdGVyIjsKICAgICAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsKICAgICAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LmZpbHRlci5maWx0ZXJSdWxlLnBsYWNlaG9sZGVyfX0iKTsKICAgICAgICAgICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3suZmlsdGVyLmZpbHRlclJ1bGUudGl0bGV9fSIsIGlucHV0KTsKICAgICAgICAgICAgICAgICAgICAvLyBTdGFydGluZyBDaGFubmVsIE51bWJlciBNYXBwaW5nCiAgICAgICAgICAgICAgICAgICAgdmFyIGRiS2V5ID0gInN0YXJ0aW5nQ2hhbm5lbCI7CiAgICAgICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7CiAgICAgICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5maWx0ZXIuc3RhcnRpbmdDaGFubmVsLnBsYWNlaG9sZGVyfX0iKTsKICAgICAgICAgICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3suZmlsdGVyLnN0YXJ0aW5nQ2hhbm5lbC50aXRsZX19IiwgaW5wdXQpOwogICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgY2FzZSAiZ3JvdXAtdGl0bGUiOgogICAgICAgICAgICAgICAgICAgIC8vYWxlcnQoZGJLZXkgKyAiICIgKyBmaWx0ZXJUeXBlKQogICAgICAgICAgICAgICAgICAgIC8vIEZpbHRlciBiYXNlZCBvbiB0aGUgZ3JvdXBzIGluIHRoZSBNM1UKICAgICAgICAgICAgICAgICAgICB2YXIgZGJLZXkgPSAiZmlsdGVyIjsKICAgICAgICAgICAgICAgICAgICB2YXIgZ3JvdXBzTTNVID0gZ2V0TG9jYWxEYXRhKCJtM3VHcm91cHMiLCAiIik7CiAgICAgICAgICAgICAgICAgICAgdmFyIHRleHQgPSBncm91cHNNM1VbInRleHQiXTsKICAgICAgICAgICAgICAgICAgICB2YXIgdmFsdWVzID0gZ3JvdXBzTTNVWyJ2YWx1ZSJdOwogICAgICAgICAgICAgICAgICAgIHZhciBzZWxlY3QgPSBjb250ZW50LmNyZWF0ZVNlbGVjdCh0ZXh0LCB2YWx1ZXMsIGRhdGFbZGJLZXldLCBkYktleSk7CiAgICAgICAgICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsKICAgICAgICAgICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3suZmlsdGVyLmZpbHRlckdyb3VwLnRpdGxlfX0iLCBzZWxlY3QpOwogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuZGVzY3JpcHRpb24oInt7LmZpbHRlci5maWx0ZXJHcm91cC5kZXNjcmlwdGlvbn19Iik7CiAgICAgICAgICAgICAgICAgICAgLy8gQ2FzZSBzZW5zZXRpdmUKICAgICAgICAgICAgICAgICAgICB2YXIgZGJLZXkgPSAiY2FzZVNlbnNpdGl2ZSI7CiAgICAgICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChkYktleSk7CiAgICAgICAgICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGFbZGJLZXldOwogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5maWx0ZXIuY2FzZVNlbnNpdGl2ZS50aXRsZX19IiwgaW5wdXQpOwogICAgICAgICAgICAgICAgICAgIHZhciBkYktleSA9ICJpbmNsdWRlIjsKICAgICAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsKICAgICAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LmZpbHRlci5pbmNsdWRlLnBsYWNlaG9sZGVyfX0iKTsKICAgICAgICAgICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3suZmlsdGVyLmluY2x1ZGUudGl0bGV9fSIsIGlucHV0KTsKICAgICAgICAgICAgICAgICAgICBjb250ZW50LmRlc2NyaXB0aW9uKCJ7ey5maWx0ZXIuaW5jbHVkZS5kZXNjcmlwdGlvbn19Iik7CiAgICAgICAgICAgICAgICAgICAgdmFyIGRiS2V5ID0gImV4Y2x1ZGUiOwogICAgICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOwogICAgICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3suZmlsdGVyLmV4Y2x1ZGUucGxhY2Vob2xkZXJ9fSIpOwogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5maWx0ZXIuZXhjbHVkZS50aXRsZX19IiwgaW5wdXQpOwogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuZGVzY3JpcHRpb24oInt7LmZpbHRlci5leGNsdWRlLmRlc2NyaXB0aW9ufX0iKTsKICAgICAgICAgICAgICAgICAgICAvLyBQcmVzZXJ2ZSBNM1UgUGxheWxpc3QgQ2hhbm5lbCBNYXBwaW5nCiAgICAgICAgICAgICAgICAgICAgdmFyIGRiS2V5ID0gInByZXNlcnZlTWFwcGluZyI7CiAgICAgICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChkYktleSk7CiAgICAgICAgICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGFbZGJLZXldOwogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5maWx0ZXIucHJlc2VydmVNYXBwaW5nLnRpdGxlfX0iLCBpbnB1dCk7CiAgICAgICAgICAgICAgICAgICAgLy8gU3RhcnRpbmcgQ2hhbm5lbCBOdW1iZXIgTWFwcGluZwogICAgICAgICAgICAgICAgICAgIHZhciBkYktleSA9ICJzdGFydGluZ0NoYW5uZWwiOwogICAgICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOwogICAgICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3suZmlsdGVyLnN0YXJ0aW5nQ2hhbm5lbC5wbGFjZWhvbGRlcn19Iik7CiAgICAgICAgICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LmZpbHRlci5zdGFydGluZ0NoYW5uZWwudGl0bGV9fSIsIGlucHV0KTsKICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgLy8gSW50ZXJhY3Rpb24KICAgICAgICAgICAgY29udGVudC5jcmVhdGVJbnRlcmFjdGlvbigpOwogICAgICAgICAgICAvLyBEZWxldGUKICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImRlbGV0ZSIsICJ7ey5idXR0b24uZGVsZXRlfX0iKTsKICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoImZpbHRlciIsICInICsgaWQgKyAnIiwgdHJ1ZSwgMCknKTsKICAgICAgICAgICAgaW5wdXQuY2xhc3NOYW1lID0gImRlbGV0ZSI7CiAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOwogICAgICAgICAgICAvLyBBYm9ydAogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAiY2FuY2VsIiwgInt7LmJ1dHRvbi5jYW5jZWx9fSIpOwogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogc2hvd0VsZW1lbnQoInBvcHVwIiwgZmFsc2UpOycpOwogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsKICAgICAgICAgICAgLy8gU2F2ZQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAic2F2ZSIsICJ7ey5idXR0b24uc2F2ZX19Iik7CiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBzYXZlUG9wdXBEYXRhKCJmaWx0ZXIiLCAiJyArIGlkICsgJyIsIGZhbHNlLCAwKScpOwogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgY2FzZSAieG1sdHYiOgogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUhlYWRsaW5lKGRhdGFUeXBlKTsKICAgICAgICAgICAgLy8gTmFtZQogICAgICAgICAgICB2YXIgZGJLZXkgPSAibmFtZSI7CiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOwogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnhtbHR2Lm5hbWUucGxhY2Vob2xkZXJ9fSIpOwogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sueG1sdHYubmFtZS50aXRsZX19IiwgaW5wdXQpOwogICAgICAgICAgICAvLyBEZXNjcmlwdGlvbgogICAgICAgICAgICB2YXIgZGJLZXkgPSAiZGVzY3JpcHRpb24iOwogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsKICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey54bWx0di5kZXNjcmlwdGlvbi5wbGFjZWhvbGRlcn19Iik7CiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey54bWx0di5kZXNjcmlwdGlvbi50aXRsZX19IiwgaW5wdXQpOwogICAgICAgICAgICAvLyBVUkwKICAgICAgICAgICAgdmFyIGRiS2V5ID0gImZpbGUuc291cmNlIjsKICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7CiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3sueG1sdHYuZmlsZVhNTFRWLnBsYWNlaG9sZGVyfX0iKTsKICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnhtbHR2LmZpbGVYTUxUVi50aXRsZX19IiwgaW5wdXQpOwogICAgICAgICAgICAvLyBJbnRlcmFjdGlvbgogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUludGVyYWN0aW9uKCk7CiAgICAgICAgICAgIC8vIERlbGV0ZQogICAgICAgICAgICBpZiAoZGF0YVsiaWQucHJvdmlkZXIiXSAhPSAiLSIpIHsKICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJkZWxldGUiLCAie3suYnV0dG9uLmRlbGV0ZX19Iik7CiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogc2F2ZVBvcHVwRGF0YSgieG1sdHYiLCAiJyArIGlkICsgJyIsIHRydWUsIDApJyk7CiAgICAgICAgICAgICAgICBpbnB1dC5jbGFzc05hbWUgPSAiZGVsZXRlIjsKICAgICAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIC8vIEFib3J0CiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJjYW5jZWwiLCAie3suYnV0dG9uLmNhbmNlbH19Iik7CiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBzaG93RWxlbWVudCgicG9wdXAiLCBmYWxzZSk7Jyk7CiAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOwogICAgICAgICAgICAvLyBVcGRhdGUKICAgICAgICAgICAgaWYgKGRhdGFbImlkLnByb3ZpZGVyIl0gIT0gIi0iKSB7CiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAidXBkYXRlIiwgInt7LmJ1dHRvbi51cGRhdGV9fSIpOwogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoInhtbHR2IiwgIicgKyBpZCArICciLCBmYWxzZSwgMSknKTsKICAgICAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIC8vIFNhdmUKICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgInNhdmUiLCAie3suYnV0dG9uLnNhdmV9fSIpOwogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogc2F2ZVBvcHVwRGF0YSgieG1sdHYiLCAiJyArIGlkICsgJyIsIGZhbHNlLCAwKScpOwogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgY2FzZSAidXNlcnMiOgogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUhlYWRsaW5lKCJ7ey5tYWluTWVudS5pdGVtLnVzZXJzfX0iKTsKICAgICAgICAgICAgLy8gVXNlciBuYW1lCiAgICAgICAgICAgIHZhciBkYktleSA9ICJ1c2VybmFtZSI7CiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOwogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnVzZXJzLnVzZXJuYW1lLnBsYWNlaG9sZGVyfX0iKTsKICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnVzZXJzLnVzZXJuYW1lLnRpdGxlfX0iLCBpbnB1dCk7CiAgICAgICAgICAgIC8vIE5ldyBQYXJzc3dvcmQKICAgICAgICAgICAgdmFyIGRiS2V5ID0gInBhc3N3b3JkIjsKICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgicGFzc3dvcmQiLCBkYktleSwgIiIpOwogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnVzZXJzLnBhc3N3b3JkLnBsYWNlaG9sZGVyfX0iKTsKICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnVzZXJzLnBhc3N3b3JkLnRpdGxlfX0iLCBpbnB1dCk7CiAgICAgICAgICAgIC8vIENvbmZpcm1hdGlvbgogICAgICAgICAgICB2YXIgZGJLZXkgPSAiY29uZmlybSI7CiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInBhc3N3b3JkIiwgZGJLZXksICIiKTsKICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey51c2Vycy5jb25maXJtLnBsYWNlaG9sZGVyfX0iKTsKICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnVzZXJzLmNvbmZpcm0udGl0bGV9fSIsIGlucHV0KTsKICAgICAgICAgICAgLy8gQXV0aGVudGljYXRpb24gV0VCCiAgICAgICAgICAgIHZhciBkYktleSA9ICJhdXRoZW50aWNhdGlvbi53ZWIiOwogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KGRiS2V5KTsKICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGFbZGJLZXldOwogICAgICAgICAgICBpZiAoZGF0YVsiZGVmYXVsdFVzZXIiXSA9PSB0cnVlKSB7CiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAiamF2YXNjcmlwdDogcmV0dXJuIGZhbHNlIik7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnVzZXJzLndlYi50aXRsZX19IiwgaW5wdXQpOwogICAgICAgICAgICAvLyBBdXRoZW50aWNhdGlvbiBQTVMKICAgICAgICAgICAgdmFyIGRiS2V5ID0gImF1dGhlbnRpY2F0aW9uLnBtcyI7CiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goZGJLZXkpOwogICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YVtkYktleV07CiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey51c2Vycy5wbXMudGl0bGV9fSIsIGlucHV0KTsKICAgICAgICAgICAgLy8gQXV0aGVudGljYXRpb24gTTNVCiAgICAgICAgICAgIHZhciBkYktleSA9ICJhdXRoZW50aWNhdGlvbi5tM3UiOwogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KGRiS2V5KTsKICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGFbZGJLZXldOwogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sudXNlcnMubTN1LnRpdGxlfX0iLCBpbnB1dCk7CiAgICAgICAgICAgIC8vIEF1dGhlbnRpY2F0aW9uIFhNTAogICAgICAgICAgICB2YXIgZGJLZXkgPSAiYXV0aGVudGljYXRpb24ueG1sIjsKICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChkYktleSk7CiAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhW2RiS2V5XTsKICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnVzZXJzLnhtbC50aXRsZX19IiwgaW5wdXQpOwogICAgICAgICAgICAvLyBBdXRoZW50aWNhdGlvbiBBUEkKICAgICAgICAgICAgdmFyIGRiS2V5ID0gImF1dGhlbnRpY2F0aW9uLmFwaSI7CiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goZGJLZXkpOwogICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YVtkYktleV07CiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey51c2Vycy5hcGkudGl0bGV9fSIsIGlucHV0KTsKICAgICAgICAgICAgLy8gSW50ZXJhY3Rpb24KICAgICAgICAgICAgY29udGVudC5jcmVhdGVJbnRlcmFjdGlvbigpOwogICAgICAgICAgICAvLyBEZWxldGUKICAgICAgICAgICAgaWYgKGRhdGFbImRlZmF1bHRVc2VyIl0gIT0gdHJ1ZSAmJiBpZCAhPSAiLSIpIHsKICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJkZWxldGUiLCAie3suYnV0dG9uLmRlbGV0ZX19Iik7CiAgICAgICAgICAgICAgICBpbnB1dC5jbGFzc05hbWUgPSAiZGVsZXRlIjsKICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBzYXZlUG9wdXBEYXRhKCInICsgZGF0YVR5cGUgKyAnIiwgIicgKyBpZCArICciLCB0cnVlLCAwKScpOwogICAgICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgLy8gQWJvcnQKICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImNhbmNlbCIsICJ7ey5idXR0b24uY2FuY2VsfX0iKTsKICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IHNob3dFbGVtZW50KCJwb3B1cCIsIGZhbHNlKTsnKTsKICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7CiAgICAgICAgICAgIC8vIFNhdmUKICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgInNhdmUiLCAie3suYnV0dG9uLnNhdmV9fSIpOwogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogc2F2ZVBvcHVwRGF0YSgiJyArIGRhdGFUeXBlICsgJyIsICInICsgaWQgKyAnIiwgImZhbHNlIik7Jyk7CiAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOwogICAgICAgICAgICBicmVhazsKICAgICAgICBjYXNlICJtYXBwaW5nIjoKICAgICAgICAgICAgY29udGVudC5jcmVhdGVIZWFkbGluZSgie3subWFpbk1lbnUuaXRlbS5tYXBwaW5nfX0iKTsKICAgICAgICAgICAgLy8gQWN0aXZlCiAgICAgICAgICAgIHZhciBkYktleSA9ICJ4LWFjdGl2ZSI7CiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goZGJLZXkpOwogICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YVtkYktleV07CiAgICAgICAgICAgIGlucHV0LmlkID0gImFjdGl2ZSI7CiAgICAgICAgICAgIC8vaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdG9nZ2xlQ2hhbm5lbFN0YXR1cygnIiArIGlkICsgIicsIHRoaXMpIik7CiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5tYXBwaW5nLmFjdGl2ZS50aXRsZX19IiwgaW5wdXQpOwogICAgICAgICAgICAvLyBDaGFubmVsIG5hbWUKICAgICAgICAgICAgdmFyIGRiS2V5ID0gIngtbmFtZSI7CiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOwogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7CiAgICAgICAgICAgIGlmIChCVUxLX0VESVQgPT0gdHJ1ZSkgewogICAgICAgICAgICAgICAgaW5wdXQuc3R5bGUuYm9yZGVyID0gInNvbGlkIDFweCByZWQiOwogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJyZWFkb25seSIsICJ0cnVlIik7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7Lm1hcHBpbmcuY2hhbm5lbE5hbWUudGl0bGV9fSIsIGlucHV0KTsKICAgICAgICAgICAgY29udGVudC5kZXNjcmlwdGlvbihkYXRhWyJuYW1lIl0pOwogICAgICAgICAgICAvLyBEZXNjcmlwdGlvbgogICAgICAgICAgICB2YXIgZGJLZXkgPSAieC1kZXNjcmlwdGlvbiI7CiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOwogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7Lm1hcHBpbmcuZGVzY3JpcHRpb24ucGxhY2Vob2xkZXJ9fSIpOwogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7CiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5tYXBwaW5nLmRlc2NyaXB0aW9uLnRpdGxlfX0iLCBpbnB1dCk7CiAgICAgICAgICAgIC8vIFVwZGF0ZSB0aGUgY2hhbm5lbCB4LW5hbWUKICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoIl91dWlkLmtleSIpKSB7CiAgICAgICAgICAgICAgICBpZiAoZGF0YVsiX3V1aWQua2V5Il0gIT0gIiIpIHsKICAgICAgICAgICAgICAgICAgICB2YXIgZGJLZXkgPSAieC11cGRhdGUtY2hhbm5lbC1uYW1lIjsKICAgICAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KGRiS2V5KTsKICAgICAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7CiAgICAgICAgICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGFbZGJLZXldOwogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5tYXBwaW5nLnVwZGF0ZUNoYW5uZWxOYW1lLnRpdGxlfX0iLCBpbnB1dCk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgICAgLy8gQ2hhbm5lbCBuYW1lIHJlZ2V4IGZvciB1cGRhdGluZyB0aGUgY2hhbm5lbCBuYW1lCiAgICAgICAgICAgIHZhciBkYktleSA9ICJ1cGRhdGUtY2hhbm5lbC1uYW1lLXJlZ2V4IjsKICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7CiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3subWFwcGluZy51cGRhdGVDaGFubmVsTmFtZVJlZ2V4LnBsYWNlaG9sZGVyfX0iKTsKICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOwogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3subWFwcGluZy51cGRhdGVDaGFubmVsTmFtZVJlZ2V4LnRpdGxlfX0iLCBpbnB1dCk7CiAgICAgICAgICAgIGNvbnRlbnQuZGVzY3JpcHRpb24oInt7Lm1hcHBpbmcudXBkYXRlQ2hhbm5lbE5hbWVSZWdleC5kZXNjcmlwdGlvbn19Iik7CiAgICAgICAgICAgIC8vIENoYW5uZWwgZ3JvdXAgcmVnZXggZm9yIHVwZGF0aW5nIHRoZSBjaGFubmVsIG5hbWUKICAgICAgICAgICAgdmFyIGRiS2V5ID0gInVwZGF0ZS1jaGFubmVsLW5hbWUtYnktZ3JvdXAtcmVnZXgiOwogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsKICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5tYXBwaW5nLnVwZGF0ZUNoYW5uZWxOYW1lQnlHcm91cFJlZ2V4LnBsYWNlaG9sZGVyfX0iKTsKICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOwogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3subWFwcGluZy51cGRhdGVDaGFubmVsTmFtZUJ5R3JvdXBSZWdleC50aXRsZX19IiwgaW5wdXQpOwogICAgICAgICAgICBjb250ZW50LmRlc2NyaXB0aW9uKCJ7ey5tYXBwaW5nLnVwZGF0ZUNoYW5uZWxOYW1lQnlHcm91cFJlZ2V4LmRlc2NyaXB0aW9ufX0iKTsKICAgICAgICAgICAgLy8gTG9nbyBVUkwgKENoYW5uZWwpIAogICAgICAgICAgICB2YXIgZGJLZXkgPSAidHZnLWxvZ28iOwogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsKICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOwogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoImlkIiwgImNoYW5uZWwtaWNvbiIpOwogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3subWFwcGluZy5jaGFubmVsTG9nby50aXRsZX19IiwgaW5wdXQpOwogICAgICAgICAgICAvLyBDaGFubmVsIGxvZ28gdXBkYXRlCiAgICAgICAgICAgIHZhciBkYktleSA9ICJ4LXVwZGF0ZS1jaGFubmVsLWljb24iOwogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KGRiS2V5KTsKICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGFbZGJLZXldOwogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoImlkIiwgInVwZGF0ZS1pY29uIik7CiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCc7IGNoYW5nZUNoYW5uZWxMb2dvKCciICsgaWQgKyAiJyk7Iik7CiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5tYXBwaW5nLnVwZGF0ZUNoYW5uZWxMb2dvLnRpdGxlfX0iLCBpbnB1dCk7CiAgICAgICAgICAgIC8vIEV4cGFuZCBFUEcgY2F0ZWdvcnkKICAgICAgICAgICAgdmFyIGRiS2V5ID0gIngtY2F0ZWdvcnkiOwogICAgICAgICAgICB2YXIgdGV4dCA9IFsiLSIsICJLaWRzIChFbWJ5IG9ubHkpIiwgIk5ld3MiLCAiTW92aWUiLCAiU2VyaWVzIiwgIlNwb3J0cyJdOwogICAgICAgICAgICB2YXIgdmFsdWVzID0gWyIiLCAiS2lkcyIsICJOZXdzIiwgIk1vdmllIiwgIlNlcmllcyIsICJTcG9ydHMiXTsKICAgICAgICAgICAgdmFyIHNlbGVjdCA9IGNvbnRlbnQuY3JlYXRlU2VsZWN0KHRleHQsIHZhbHVlcywgZGF0YVtkYktleV0sIGRiS2V5KTsKICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsKICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7Lm1hcHBpbmcuZXBnQ2F0ZWdvcnkudGl0bGV9fSIsIHNlbGVjdCk7CiAgICAgICAgICAgIC8vIE0zVSBncm91cCB0aXRsZQogICAgICAgICAgICB2YXIgZGJLZXkgPSAieC1ncm91cC10aXRsZSI7CiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOwogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7CiAgICAgICAgICAgIGlucHV0LmRhdGFzZXQub2xkVmFsdWUgPSBkYXRhW2RiS2V5XTsKICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7Lm1hcHBpbmcubTN1R3JvdXBUaXRsZS50aXRsZX19IiwgaW5wdXQpOwogICAgICAgICAgICBpZiAoZGF0YVsiZ3JvdXAtdGl0bGUiXSAhPSB1bmRlZmluZWQpIHsKICAgICAgICAgICAgICAgIGNvbnRlbnQuZGVzY3JpcHRpb24oZGF0YVsiZ3JvdXAtdGl0bGUiXSk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgaWYgKGRhdGFbIngtdXBkYXRlLWNoYW5uZWwtZ3JvdXAiXSA9PSB0cnVlKSB7CiAgICAgICAgICAgICAgICBpbnB1dC5kaXNhYmxlZCA9IHRydWU7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgLy8gVXBkYXRlIGNoYW5uZWwgZ3JvdXAgY2hlY2tib3gKICAgICAgICAgICAgdmFyIGRiS2V5ID0gIngtdXBkYXRlLWNoYW5uZWwtZ3JvdXAiOwogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KGRiS2V5KTsKICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0b2dnbGVHcm91cFVwZGF0ZUNiKCciICsgaWQgKyAiJywgdGhpcyk7Iik7CiAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhW2RiS2V5XTsKICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7Lm1hcHBpbmcudXBkYXRlQ2hhbm5lbEdyb3VwLnRpdGxlfX0iLCBpbnB1dCk7CiAgICAgICAgICAgIGNvbnRlbnQuZGVzY3JpcHRpb24oInt7Lm1hcHBpbmcudXBkYXRlQ2hhbm5lbEdyb3VwLmRlc2NyaXB0aW9ufX0iKTsKICAgICAgICAgICAgLy8gWE1MVFYgZmlsZQogICAgICAgICAgICB2YXIgZGJLZXkgPSAneC14bWx0di1maWxlJzsKICAgICAgICAgICAgY29uc3QgeG1sVHZGaWxlID0gZGF0YVtkYktleV07CiAgICAgICAgICAgIHZhciB4bWxUdiA9IG5ldyBYTUxUVkZpbGUoKTsKICAgICAgICAgICAgY29uc3QgeG1sVHZGaWxlU2VsZWN0ID0geG1sVHYuZ2V0RmlsZXMoZGF0YVtkYktleV0pOwogICAgICAgICAgICB4bWxUdkZpbGVTZWxlY3Quc2V0QXR0cmlidXRlKCduYW1lJywgZGJLZXkpOwogICAgICAgICAgICB4bWxUdkZpbGVTZWxlY3Quc2V0QXR0cmlidXRlKCdpZCcsICdwb3B1cC14bWx0dicpOwogICAgICAgICAgICB4bWxUdkZpbGVTZWxlY3Quc2V0QXR0cmlidXRlKCdvbmNoYW5nZScsIGBqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJzsgc2V0WG1sdHZDaGFubmVsKCcke2lkfScsIHRoaXMpO2ApOwogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygne3subWFwcGluZy54bWx0dkZpbGUudGl0bGV9fScsIHhtbFR2RmlsZVNlbGVjdCk7CiAgICAgICAgICAgIC8vIFhNTFRWIE1hcHBpbmcKICAgICAgICAgICAgdmFyIGRiS2V5ID0gJ3gtbWFwcGluZyc7CiAgICAgICAgICAgIHZhciB4bWxUdiA9IG5ldyBYTUxUVkZpbGUoKTsKICAgICAgICAgICAgY29uc3QgY3VycmVudFhtbFR2SWQgPSBkYXRhW2RiS2V5XTsKICAgICAgICAgICAgY29uc3QgW3htbFR2SWRDb250YWluZXIsIHhtbFR2SWRJbnB1dCwgeG1sVHZJZERhdGFsaXN0XSA9IHhtbFR2Lm5ld1htbFR2SWRQaWNrZXIoeG1sVHZGaWxlLCBjdXJyZW50WG1sVHZJZCk7CiAgICAgICAgICAgIHhtbFR2SWRDb250YWluZXIuc2V0QXR0cmlidXRlKCdpZCcsICd4bWx0di1pZC1waWNrZXItY29udGFpbmVyJyk7CiAgICAgICAgICAgIHhtbFR2SWRJbnB1dC5zZXRBdHRyaWJ1dGUoJ2xpc3QnLCAneG1sdHYtaWQtcGlja2VyLWRhdGFsaXN0Jyk7CiAgICAgICAgICAgIHhtbFR2SWRJbnB1dC5zZXRBdHRyaWJ1dGUoJ25hbWUnLCAneC1tYXBwaW5nJyk7IC8vIFNob3VsZCBzdGF5IHgtbWFwcGluZyBhcyBpdCB3aWxsIGJlIHVzZWQgaW4gZG9uZVBvcHVwRGF0YSB0byBtYWtlIGEgc2VydmVyIHJlcXVlc3QKICAgICAgICAgICAgeG1sVHZJZElucHV0LnNldEF0dHJpYnV0ZSgnaWQnLCAneG1sdHYtaWQtcGlja2VyLWlucHV0Jyk7CiAgICAgICAgICAgIHhtbFR2SWRJbnB1dC5zZXRBdHRyaWJ1dGUoJ29uY2hhbmdlJywgYGphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnOyBjaGVja1htbHR2Q2hhbm5lbCgnJHtpZH0nLCB0aGlzLnZhbHVlLCAnJHt4bWxUdkZpbGV9Jyk7YCk7CiAgICAgICAgICAgIHhtbFR2SWREYXRhbGlzdC5zZXRBdHRyaWJ1dGUoJ2lkJywgJ3htbHR2LWlkLXBpY2tlci1kYXRhbGlzdCcpOwogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygne3subWFwcGluZy54bWx0dkNoYW5uZWwudGl0bGV9fScsIHhtbFR2SWRDb250YWluZXIpOwogICAgICAgICAgICAvLyBUaW1lc2hpZnQKICAgICAgICAgICAgdmFyIGRiS2V5ID0gIngtdGltZXNoaWZ0IjsKICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7CiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsKICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5tYXBwaW5nLnRpbWVzaGlmdC5wbGFjZWhvbGRlcn19Iik7CiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgiaWQiLCAidGltZXNoaWZ0Iik7CiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5tYXBwaW5nLnRpbWVzaGlmdC50aXRsZX19IiwgaW5wdXQpOwogICAgICAgICAgICAvLyBJbnRlcmFjdGlvbgogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUludGVyYWN0aW9uKCk7CiAgICAgICAgICAgIC8vIFVwbG9hZCBsb2dvCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJjYW5jZWwiLCAie3suYnV0dG9uLnVwbG9hZExvZ299fSIpOwogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogdXBsb2FkTG9nbygpOycpOwogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsKICAgICAgICAgICAgLy8gQWJvcnQKICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImNhbmNlbCIsICJ7ey5idXR0b24uY2FuY2VsfX0iKTsKICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IHNob3dFbGVtZW50KCJwb3B1cCIsIGZhbHNlKTsnKTsKICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7CiAgICAgICAgICAgIC8vIEZpbmlzaGVkCiAgICAgICAgICAgIHZhciBpZHMgPSBbXTsKICAgICAgICAgICAgaWRzID0gZ2V0QWxsU2VsZWN0ZWRDaGFubmVscygpOwogICAgICAgICAgICBpZiAoaWRzLmxlbmd0aCA9PSAwKSB7CiAgICAgICAgICAgICAgICBpZHMucHVzaChpZCk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgInNhdmUiLCAie3suYnV0dG9uLmRvbmV9fSIpOwogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogZG9uZVBvcHVwRGF0YSgiJyArIGRhdGFUeXBlICsgJyIsICInICsgaWRzICsgJyIsICJmYWxzZSIpOycpOwogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgYnJlYWs7CiAgICB9CiAgICBzaG93UG9wVXBFbGVtZW50KCdwb3B1cC1jdXN0b20nKTsKfQpjbGFzcyBYTUxUVkZpbGUgewogICAgZ2V0RmlsZXMoc2V0KSB7CiAgICAgICAgbGV0IGZpbGVJRHMgPSBnZXRPd25PYmpQcm9wcyhTRVJWRVJbInhlcGciXVsieG1sdHZNYXAiXSk7CiAgICAgICAgbGV0IHZhbHVlcyA9IG5ldyBBcnJheSgiLSIpOwogICAgICAgIGxldCB0ZXh0ID0gbmV3IEFycmF5KCItIik7CiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBmaWxlSURzLmxlbmd0aDsgaSsrKSB7CiAgICAgICAgICAgIGlmIChmaWxlSURzW2ldICE9ICJ4VGVWZSBEdW1teSIpIHsKICAgICAgICAgICAgICAgIHZhbHVlcy5wdXNoKGdldFZhbHVlRnJvbVByb3ZpZGVyRmlsZShmaWxlSURzW2ldLCAieG1sdHYiLCAiZmlsZS54dGV2ZSIpKTsKICAgICAgICAgICAgICAgIHRleHQucHVzaChnZXRWYWx1ZUZyb21Qcm92aWRlckZpbGUoZmlsZUlEc1tpXSwgInhtbHR2IiwgIm5hbWUiKSk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICB2YWx1ZXMucHVzaChmaWxlSURzW2ldKTsKICAgICAgICAgICAgICAgIHRleHQucHVzaChmaWxlSURzW2ldKTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBsZXQgc2VsZWN0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiU0VMRUNUIik7CiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0ZXh0Lmxlbmd0aDsgaSsrKSB7CiAgICAgICAgICAgIHZhciBvcHRpb24gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJPUFRJT04iKTsKICAgICAgICAgICAgb3B0aW9uLnNldEF0dHJpYnV0ZSgidmFsdWUiLCB2YWx1ZXNbaV0pOwogICAgICAgICAgICBvcHRpb24uaW5uZXJUZXh0ID0gdGV4dFtpXTsKICAgICAgICAgICAgc2VsZWN0LmFwcGVuZENoaWxkKG9wdGlvbik7CiAgICAgICAgfQogICAgICAgIGlmIChzZXQgIT0gIiIpIHsKICAgICAgICAgICAgc2VsZWN0LnZhbHVlID0gc2V0OwogICAgICAgIH0KICAgICAgICByZXR1cm4gc2VsZWN0OwogICAgfQogICAgLyoqCiAgICAgKiBAcGFyYW0geG1sVHZGaWxlIFhNTCBmaWxlIHBhdGggdG8gZ2V0IEVQRyBmcm9tLgogICAgICogQHBhcmFtIGN1cnJlbnRYbWxUdklkIEN1cnJlbnQgWE1MVFYgSUQgdG8gc2V0IGluaXRpYWwgaW5wdXQgdmFsdWUgdG8uCiAgICAgKiBAcmV0dXJucyBBcnJheSBvZiwgc2VxdWVudGlhbGx5OgogICAgICogMSkgQ29udGFpbmVyIG9mIHRoZSBwaWNrZXIuCiAgICAgKiAyKSBJbnB1dCBmaWVsZCB0byB0eXBlIGF0IGFuZCBnZXQgY2hvaWNlIGZyb20uCiAgICAgKiAzKSBEYXRhbGlzdCBjb250YWluaW5nIGV2ZXJ5IG9wdGlvbi4KICAgICAqLwogICAgbmV3WG1sVHZJZFBpY2tlcih4bWxUdkZpbGUsIGN1cnJlbnRYbWxUdklkKSB7CiAgICAgICAgY29uc3QgY29udGFpbmVyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7CiAgICAgICAgY29uc3QgaW5wdXQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdpbnB1dCcpOwogICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgndHlwZScsICd0ZXh0Jyk7CiAgICAgICAgLy8gSW5pdGlhbGx5LCBzZXQgdmFsdWUgdG8gJy0nIGlmIGlucHV0IGlzIGVtcHR5CiAgICAgICAgaW5wdXQudmFsdWUgPSAoY3VycmVudFhtbFR2SWQpID8gY3VycmVudFhtbFR2SWQgOiAnLSc7CiAgICAgICAgLy8gV2hlbiBpbnB1dCBpcyBmb2N1c2VkLCByZW1vdmUgJy0nIGZyb20gaXQKICAgICAgICBpbnB1dC5hZGRFdmVudExpc3RlbmVyKCdmb2N1cycsIChldnQpID0+IHsKICAgICAgICAgICAgY29uc3QgdGFyZ2V0ID0gZXZ0LnRhcmdldDsKICAgICAgICAgICAgdGFyZ2V0LnZhbHVlID0gKHRhcmdldC52YWx1ZSA9PT0gJy0nKSA/ICcnIDogdGFyZ2V0LnZhbHVlOwogICAgICAgIH0pOwogICAgICAgIC8vIFdoZW4gaW5wdXQgbG9zZSBmb2N1cyBvciB0YWtlIGEgdmFsdWUsIGlmIGl0J3MgZW1wdHksIHNldCB2YWx1ZSB0byAnLScKICAgICAgICBpbnB1dC5hZGRFdmVudExpc3RlbmVyKCdibHVyJywgc2V0RmFsbGJhY2tWYWx1ZSk7CiAgICAgICAgaW5wdXQuYWRkRXZlbnRMaXN0ZW5lcignY2hhbmdlJywgc2V0RmFsbGJhY2tWYWx1ZSk7CiAgICAgICAgZnVuY3Rpb24gc2V0RmFsbGJhY2tWYWx1ZShldnQpIHsKICAgICAgICAgICAgY29uc3QgdGFyZ2V0ID0gZXZ0LnRhcmdldDsKICAgICAgICAgICAgdGFyZ2V0LnZhbHVlID0gKHRhcmdldC52YWx1ZSkgPyB0YXJnZXQudmFsdWUgOiAnLSc7CiAgICAgICAgfQogICAgICAgIGNvbnRhaW5lci5hcHBlbmRDaGlsZChpbnB1dCk7CiAgICAgICAgY29uc3QgZGF0YWxpc3QgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkYXRhbGlzdCcpOwogICAgICAgIGNvbnN0IG9wdGlvbiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ29wdGlvbicpOwogICAgICAgIG9wdGlvbi5zZXRBdHRyaWJ1dGUoJ3ZhbHVlJywgJy0nKTsKICAgICAgICBvcHRpb24uaW5uZXJUZXh0ID0gJy0nOwogICAgICAgIGRhdGFsaXN0LmFwcGVuZENoaWxkKG9wdGlvbik7CiAgICAgICAgY29uc3QgZXBnID0gU0VSVkVSWyd4ZXBnJ11bJ3htbHR2TWFwJ11beG1sVHZGaWxlXTsKICAgICAgICBpZiAoZXBnKSB7CiAgICAgICAgICAgIGNvbnN0IHByb2dyYW1JZHMgPSBnZXRPd25PYmpQcm9wcyhlcGcpOwogICAgICAgICAgICBwcm9ncmFtSWRzLmZvckVhY2goKHByb2dyYW1JZCkgPT4gewogICAgICAgICAgICAgICAgY29uc3QgcHJvZ3JhbSA9IGVwZ1twcm9ncmFtSWRdOwogICAgICAgICAgICAgICAgaWYgKHByb2dyYW0uaGFzT3duUHJvcGVydHkoJ2Rpc3BsYXktbmFtZXMnKSkgewogICAgICAgICAgICAgICAgICAgIHByb2dyYW1bJ2Rpc3BsYXktbmFtZXMnXS5mb3JFYWNoKChkaXNwbGF5TmFtZSkgPT4gewogICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBvcHRpb24gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdvcHRpb24nKTsKICAgICAgICAgICAgICAgICAgICAgICAgb3B0aW9uLnNldEF0dHJpYnV0ZSgndmFsdWUnLCBwcm9ncmFtSWQpOwogICAgICAgICAgICAgICAgICAgICAgICBvcHRpb24uaW5uZXJUZXh0ID0gZGlzcGxheU5hbWVbJ1ZhbHVlJ107CiAgICAgICAgICAgICAgICAgICAgICAgIGRhdGFsaXN0LmFwcGVuZENoaWxkKG9wdGlvbik7CiAgICAgICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgICAgICBjb25zdCBvcHRpb24gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdvcHRpb24nKTsKICAgICAgICAgICAgICAgICAgICBvcHRpb24uc2V0QXR0cmlidXRlKCd2YWx1ZScsIHByb2dyYW1JZCk7CiAgICAgICAgICAgICAgICAgICAgb3B0aW9uLmlubmVyVGV4dCA9ICctJzsKICAgICAgICAgICAgICAgICAgICBkYXRhbGlzdC5hcHBlbmRDaGlsZChvcHRpb24pOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9KTsKICAgICAgICB9CiAgICAgICAgY29udGFpbmVyLmFwcGVuZENoaWxkKGRhdGFsaXN0KTsKICAgICAgICByZXR1cm4gW2NvbnRhaW5lciwgaW5wdXQsIGRhdGFsaXN0XTsKICAgIH0KfQpmdW5jdGlvbiBnZXRWYWx1ZUZyb21Qcm92aWRlckZpbGUoZmlsZSwgZmlsZVR5cGUsIGtleSkgewogICAgaWYgKGZpbGUgPT0gInhUZVZlIER1bW15IikgewogICAgICAgIHJldHVybiBmaWxlOwogICAgfQogICAgbGV0IGZpbGVJRDsKICAgIGxldCBpbmRpY2F0b3IgPSBmaWxlLmNoYXJBdCgwKTsKICAgIHN3aXRjaCAoaW5kaWNhdG9yKSB7CiAgICAgICAgY2FzZSAiTSI6CiAgICAgICAgICAgIGZpbGVUeXBlID0gIm0zdSI7CiAgICAgICAgICAgIGZpbGVJRCA9IGZpbGU7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgIGNhc2UgIkgiOgogICAgICAgICAgICBmaWxlVHlwZSA9ICJoZGhyIjsKICAgICAgICAgICAgZmlsZUlEID0gZmlsZTsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgY2FzZSAiWCI6CiAgICAgICAgICAgIGZpbGVUeXBlID0gInhtbHR2IjsKICAgICAgICAgICAgZmlsZUlEID0gZmlsZS5zdWJzdHJpbmcoMCwgZmlsZS5sYXN0SW5kZXhPZignLicpKTsKICAgICAgICAgICAgYnJlYWs7CiAgICB9CiAgICBpZiAoU0VSVkVSWyJzZXR0aW5ncyJdWyJmaWxlcyJdW2ZpbGVUeXBlXS5oYXNPd25Qcm9wZXJ0eShmaWxlSUQpID09IHRydWUpIHsKICAgICAgICB2YXIgZGF0YSA9IFNFUlZFUlsic2V0dGluZ3MiXVsiZmlsZXMiXVtmaWxlVHlwZV1bZmlsZUlEXTsKICAgICAgICByZXR1cm4gZGF0YVtrZXldOwogICAgfQogICAgcmV0dXJuOwp9CmZ1bmN0aW9uIHNldFhtbHR2Q2hhbm5lbChlcGdNYXBJZCwgeG1sVHZGaWxlU2VsZWN0KSB7CiAgICBjb25zdCB4bWxUdiA9IG5ldyBYTUxUVkZpbGUoKTsKICAgIGNvbnN0IG5ld1htbFR2RmlsZSA9IHhtbFR2RmlsZVNlbGVjdC52YWx1ZTsKICAgIC8vIFJlbW92ZSBvbGQgWE1MVFYgSUQgc2VsZWN0aW9uIGJveAogICAgY29uc3QgeG1sVHZJZFBpY2tlclBhcmVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd4bWx0di1pZC1waWNrZXItY29udGFpbmVyJykucGFyZW50RWxlbWVudDsKICAgIHhtbFR2SWRQaWNrZXJQYXJlbnQuaW5uZXJIVE1MID0gJyc7CiAgICAvLyBDcmVhdGUgbmV3IFhNTFRWIElEIHNlbGVjdGlvbiBib3gKICAgIGNvbnN0IHR2Z0lkID0gU0VSVkVSWyd4ZXBnJ11bJ2VwZ01hcHBpbmcnXVtlcGdNYXBJZF1bJ3R2Zy1pZCddOwogICAgY29uc3QgW3htbFR2SWRDb250YWluZXIsIHhtbFR2SWRJbnB1dCwgeG1sVHZJZERhdGFsaXN0XSA9IHhtbFR2Lm5ld1htbFR2SWRQaWNrZXIobmV3WG1sVHZGaWxlLCB0dmdJZCk7CiAgICB4bWxUdklkQ29udGFpbmVyLnNldEF0dHJpYnV0ZSgnaWQnLCAneG1sdHYtaWQtcGlja2VyLWNvbnRhaW5lcicpOwogICAgeG1sVHZJZElucHV0LnNldEF0dHJpYnV0ZSgnbGlzdCcsICd4bWx0di1pZC1waWNrZXItZGF0YWxpc3QnKTsKICAgIHhtbFR2SWRJbnB1dC5zZXRBdHRyaWJ1dGUoJ25hbWUnLCAneC1tYXBwaW5nJyk7IC8vIFNob3VsZCBzdGF5IHgtbWFwcGluZyBhcyBpdCB3aWxsIGJlIHVzZWQgaW4gZG9uZVBvcHVwRGF0YSB0byBtYWtlIGEgc2VydmVyIHJlcXVlc3QKICAgIHhtbFR2SWRJbnB1dC5zZXRBdHRyaWJ1dGUoJ2lkJywgJ3htbHR2LWlkLXBpY2tlci1pbnB1dCcpOwogICAgeG1sVHZJZElucHV0LnNldEF0dHJpYnV0ZSgnb25jaGFuZ2UnLCBgamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCc7IGNoZWNrWG1sdHZDaGFubmVsKCcke2VwZ01hcElkfScsIHRoaXMudmFsdWUsICcke25ld1htbFR2RmlsZX0nKTtgKTsKICAgIHhtbFR2SWRJbnB1dC5jbGFzc0xpc3QuYWRkKCdjaGFuZ2VkJyk7CiAgICB4bWxUdklkRGF0YWxpc3Quc2V0QXR0cmlidXRlKCdpZCcsICd4bWx0di1pZC1waWNrZXItZGF0YWxpc3QnKTsKICAgIC8vIEFkZCBuZXcgWE1MVFYgSUQgc2VsZWN0aW9uIGJveCB0byBpdCdzIHBhcmVudAogICAgeG1sVHZJZFBpY2tlclBhcmVudC5hcHBlbmRDaGlsZCh4bWxUdklkQ29udGFpbmVyKTsKICAgIGNoZWNrWG1sdHZDaGFubmVsKGVwZ01hcElkLCB4bWxUdklkSW5wdXQudmFsdWUsIG5ld1htbFR2RmlsZSk7Cn0KZnVuY3Rpb24gY2hlY2tYbWx0dkNoYW5uZWwoZXBnTWFwSWQsIG5ld1htbFR2SWQsIHhtbFR2RmlsZSkgewogICAgY29uc3QgY2hhbm5lbEFjdGl2ZUNiID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2FjdGl2ZScpOwogICAgY29uc3QgY2hhbm5lbEFjdGl2ZSA9IG5ld1htbFR2SWQgIT0gJy0nOwogICAgY2hhbm5lbEFjdGl2ZUNiLmNoZWNrZWQgPSBjaGFubmVsQWN0aXZlOwogICAgY2hhbm5lbEFjdGl2ZUNiLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJzsKICAgIGlmICh4bWxUdkZpbGUgIT0gJ3hUZVZlIER1bW15JyAmJiBjaGFubmVsQWN0aXZlID09IHRydWUpIHsKICAgICAgICBjaGFuZ2VDaGFubmVsTG9nbyhlcGdNYXBJZCk7CiAgICAgICAgcmV0dXJuOwogICAgfQogICAgaWYgKHhtbFR2RmlsZSA9PSAneFRlVmUgRHVtbXknKSB7CiAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3VwZGF0ZS1pY29uJykuY2hlY2tlZCA9IGZhbHNlOwogICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd1cGRhdGUtaWNvbicpLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJzsKICAgIH0KfQpmdW5jdGlvbiBjaGFuZ2VDaGFubmVsTG9nbyhlcGdNYXBJZCkgewogICAgY29uc3QgY2hhbm5lbCA9IFNFUlZFUlsneGVwZyddWydlcGdNYXBwaW5nJ11bZXBnTWFwSWRdOwogICAgY29uc3QgeG1sVHZGaWxlU2VsZWN0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3BvcHVwLXhtbHR2Jyk7CiAgICBjb25zdCB4bWxUdkZpbGUgPSB4bWxUdkZpbGVTZWxlY3Qub3B0aW9uc1t4bWxUdkZpbGVTZWxlY3Quc2VsZWN0ZWRJbmRleF0udmFsdWU7CiAgICBjb25zdCB4bWxUdklkSW5wdXQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgneG1sdHYtaWQtcGlja2VyLWlucHV0Jyk7CiAgICBjb25zdCBuZXdYbWxUdklkID0geG1sVHZJZElucHV0LnZhbHVlOwogICAgY29uc3QgdXBkYXRlTG9nbyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd1cGRhdGUtaWNvbicpLmNoZWNrZWQ7CiAgICBsZXQgbG9nbzsKICAgIGlmICh1cGRhdGVMb2dvID09IHRydWUgJiYgeG1sVHZGaWxlICE9ICd4VGVWZSBEdW1teScpIHsKICAgICAgICBpZiAoU0VSVkVSWyd4ZXBnJ11bJ3htbHR2TWFwJ11beG1sVHZGaWxlXS5oYXNPd25Qcm9wZXJ0eShuZXdYbWxUdklkKSkgewogICAgICAgICAgICBsb2dvID0gU0VSVkVSWyd4ZXBnJ11bJ3htbHR2TWFwJ11beG1sVHZGaWxlXVtuZXdYbWxUdklkXVsnaWNvbiddOwogICAgICAgIH0KICAgICAgICBlbHNlIHsKICAgICAgICAgICAgbG9nbyA9IGNoYW5uZWxbJ3R2Zy1sb2dvJ107CiAgICAgICAgfQogICAgICAgIHZhciBsb2dvSW5wdXQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY2hhbm5lbC1pY29uJyk7CiAgICAgICAgbG9nb0lucHV0LnZhbHVlID0gbG9nbzsKICAgICAgICBpZiAoQlVMS19FRElUID09IGZhbHNlKSB7CiAgICAgICAgICAgIGxvZ29JbnB1dC5jbGFzc05hbWUgPSAnY2hhbmdlZCc7CiAgICAgICAgfQogICAgfQp9CmZ1bmN0aW9uIHNhdmVQb3B1cERhdGEoZGF0YVR5cGUsIGlkLCByZW1vdmUsIG9wdGlvbikgewogICAgaWYgKGRhdGFUeXBlID09ICJtYXBwaW5nIikgewogICAgICAgIGxldCBkYXRhID0ge307CiAgICAgICAgbGV0IGNtZCA9ICJzYXZlRXBnTWFwcGluZyI7CiAgICAgICAgZGF0YVsiZXBnTWFwcGluZyJdID0gU0VSVkVSWyJ4ZXBnIl1bImVwZ01hcHBpbmciXTsKICAgICAgICBsZXQgc2VydmVyID0gbmV3IFNlcnZlcihjbWQpOwogICAgICAgIHNlcnZlci5yZXF1ZXN0KGRhdGEpOwogICAgICAgIGRlbGV0ZSBVTkRPWyJlcGdNYXBwaW5nIl07CiAgICAgICAgcmV0dXJuOwogICAgfQogICAgbGV0IGRpdiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJwb3B1cC1jdXN0b20iKTsKICAgIGxldCBpbnB1dHMgPSBkaXYuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlRBQkxFIilbMF0uZ2V0RWxlbWVudHNCeVRhZ05hbWUoIklOUFVUIik7CiAgICBsZXQgc2VsZWN0cyA9IGRpdi5nZXRFbGVtZW50c0J5VGFnTmFtZSgiVEFCTEUiKVswXS5nZXRFbGVtZW50c0J5VGFnTmFtZSgiU0VMRUNUIik7CiAgICBsZXQgaW5wdXQgPSB7fTsKICAgIGxldCBjb25maXJtTXNnOwogICAgZm9yIChsZXQgaSA9IDA7IGkgPCBzZWxlY3RzLmxlbmd0aDsgaSsrKSB7CiAgICAgICAgdmFyIG5hbWU7CiAgICAgICAgbmFtZSA9IHNlbGVjdHNbaV0ubmFtZTsKICAgICAgICB2YXIgdmFsdWUgPSBzZWxlY3RzW2ldLnZhbHVlOwogICAgICAgIHN3aXRjaCAobmFtZSkgewogICAgICAgICAgICBjYXNlICJ0dW5lciI6CiAgICAgICAgICAgICAgICBpbnB1dFtuYW1lXSA9IHBhcnNlSW50KHZhbHVlKTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAgICAgaW5wdXRbbmFtZV0gPSB2YWx1ZTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgIH0KICAgIH0KICAgIGZvciAobGV0IGkgPSAwOyBpIDwgaW5wdXRzLmxlbmd0aDsgaSsrKSB7CiAgICAgICAgc3dpdGNoIChpbnB1dHNbaV0udHlwZSkgewogICAgICAgICAgICBjYXNlICJjaGVja2JveCI6CiAgICAgICAgICAgICAgICBuYW1lID0gaW5wdXRzW2ldLm5hbWU7CiAgICAgICAgICAgICAgICBpbnB1dFtuYW1lXSA9IGlucHV0c1tpXS5jaGVja2VkOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgInRleHQiOgogICAgICAgICAgICBjYXNlICJoaWRkZW4iOgogICAgICAgICAgICBjYXNlICJwYXNzd29yZCI6CiAgICAgICAgICAgICAgICBuYW1lID0gaW5wdXRzW2ldLm5hbWU7CiAgICAgICAgICAgICAgICBzd2l0Y2ggKG5hbWUpIHsKICAgICAgICAgICAgICAgICAgICBjYXNlICJ0dW5lciI6CiAgICAgICAgICAgICAgICAgICAgICAgIGlucHV0W25hbWVdID0gcGFyc2VJbnQoaW5wdXRzW2ldLnZhbHVlKTsKICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgICAgICAgICAgICAgaW5wdXRbbmFtZV0gPSBpbnB1dHNbaV0udmFsdWU7CiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgfQogICAgfQogICAgbGV0IGRhdGEgPSB7fTsKICAgIGxldCBjbWQ7CiAgICBpZiAocmVtb3ZlID09IHRydWUpIHsKICAgICAgICBpbnB1dFsiZGVsZXRlIl0gPSB0cnVlOwogICAgfQogICAgc3dpdGNoIChkYXRhVHlwZSkgewogICAgICAgIGNhc2UgInVzZXJzIjoKICAgICAgICAgICAgY29uZmlybU1zZyA9ICJEZWxldGUgdGhpcyB1c2VyPyI7CiAgICAgICAgICAgIGlmIChpZCA9PSAiLSIpIHsKICAgICAgICAgICAgICAgIGNtZCA9ICJzYXZlTmV3VXNlciI7CiAgICAgICAgICAgICAgICBkYXRhWyJ1c2VyRGF0YSJdID0gaW5wdXQ7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICBjbWQgPSAic2F2ZVVzZXJEYXRhIjsKICAgICAgICAgICAgICAgIGxldCBkID0ge307CiAgICAgICAgICAgICAgICBkW2lkXSA9IGlucHV0OwogICAgICAgICAgICAgICAgZGF0YVsidXNlckRhdGEiXSA9IGQ7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgY2FzZSAibTN1IjoKICAgICAgICAgICAgY29uZmlybU1zZyA9ICJEZWxldGUgdGhpcyBwbGF5bGlzdD8iOwogICAgICAgICAgICBzd2l0Y2ggKG9wdGlvbikgewogICAgICAgICAgICAgICAgLy8gUG9wdXA6IFNhdmUKICAgICAgICAgICAgICAgIGNhc2UgMDoKICAgICAgICAgICAgICAgICAgICBjbWQgPSAic2F2ZUZpbGVzTTNVIjsKICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgIC8vIFBvcHVwOiBVcGRhdGUKICAgICAgICAgICAgICAgIGNhc2UgMToKICAgICAgICAgICAgICAgICAgICBjbWQgPSAidXBkYXRlRmlsZU0zVSI7CiAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZGF0YVsiZmlsZXMiXSA9IHt9OwogICAgICAgICAgICBkYXRhWyJmaWxlcyJdW2RhdGFUeXBlXSA9IHt9OwogICAgICAgICAgICBkYXRhWyJmaWxlcyJdW2RhdGFUeXBlXVtpZF0gPSBpbnB1dDsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgY2FzZSAiaGRociI6CiAgICAgICAgICAgIGNvbmZpcm1Nc2cgPSAiRGVsZXRlIHRoaXMgSERIb21lUnVuIHR1bmVyPyI7CiAgICAgICAgICAgIHN3aXRjaCAob3B0aW9uKSB7CiAgICAgICAgICAgICAgICAvLyBQb3B1cDogU2F2ZQogICAgICAgICAgICAgICAgY2FzZSAwOgogICAgICAgICAgICAgICAgICAgIGNtZCA9ICJzYXZlRmlsZXNIREhSIjsKICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgIC8vIFBvcHVwOiBVcGRhdGUKICAgICAgICAgICAgICAgIGNhc2UgMToKICAgICAgICAgICAgICAgICAgICBjbWQgPSAidXBkYXRlRmlsZUhESFIiOwogICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGRhdGFbImZpbGVzIl0gPSB7fTsKICAgICAgICAgICAgZGF0YVsiZmlsZXMiXVtkYXRhVHlwZV0gPSB7fTsKICAgICAgICAgICAgZGF0YVsiZmlsZXMiXVtkYXRhVHlwZV1baWRdID0gaW5wdXQ7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgIGNhc2UgInhtbHR2IjoKICAgICAgICAgICAgY29uZmlybU1zZyA9ICJEZWxldGUgdGhpcyBYTUxUViBmaWxlPyI7CiAgICAgICAgICAgIHN3aXRjaCAob3B0aW9uKSB7CiAgICAgICAgICAgICAgICAvLyBQb3B1cDogU2F2ZQogICAgICAgICAgICAgICAgY2FzZSAwOgogICAgICAgICAgICAgICAgICAgIGNtZCA9ICJzYXZlRmlsZXNYTUxUViI7CiAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAvLyBQb3B1cDogVXBkYXRlCiAgICAgICAgICAgICAgICBjYXNlIDE6CiAgICAgICAgICAgICAgICAgICAgY21kID0gInVwZGF0ZUZpbGVYTUxUViI7CiAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZGF0YVsiZmlsZXMiXSA9IHt9OwogICAgICAgICAgICBkYXRhWyJmaWxlcyJdW2RhdGFUeXBlXSA9IHt9OwogICAgICAgICAgICBkYXRhWyJmaWxlcyJdW2RhdGFUeXBlXVtpZF0gPSBpbnB1dDsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgY2FzZSAiZmlsdGVyIjoKICAgICAgICAgICAgY29uZmlybU1zZyA9ICJEZWxldGUgdGhpcyBmaWx0ZXI/IjsKICAgICAgICAgICAgY21kID0gInNhdmVGaWx0ZXIiOwogICAgICAgICAgICBkYXRhWyJmaWx0ZXIiXSA9IHt9OwogICAgICAgICAgICBkYXRhWyJmaWx0ZXIiXVtpZF0gPSBpbnB1dDsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgcmV0dXJuOwogICAgfQogICAgaWYgKHJlbW92ZSA9PSB0cnVlKSB7CiAgICAgICAgaWYgKCFjb25maXJtKGNvbmZpcm1Nc2cpKSB7CiAgICAgICAgICAgIHNob3dFbGVtZW50KCJwb3B1cCIsIGZhbHNlKTsKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KICAgIH0KICAgIGxldCBzZXJ2ZXIgPSBuZXcgU2VydmVyKGNtZCk7CiAgICBzZXJ2ZXIucmVxdWVzdChkYXRhKTsKfQpmdW5jdGlvbiBkb25lUG9wdXBEYXRhKGRhdGFUeXBlLCBpZHNTdHIpIHsKICAgIGxldCBpZHMgPSBpZHNTdHIuc3BsaXQoJywnKTsKICAgIGxldCBkaXYgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicG9wdXAtY3VzdG9tIik7CiAgICBsZXQgaW5wdXRzID0gZGl2LmdldEVsZW1lbnRzQnlDbGFzc05hbWUoImNoYW5nZWQiKTsKICAgIGlkcy5mb3JFYWNoKGlkID0+IHsKICAgICAgICBsZXQgaW5wdXQ7CiAgICAgICAgaW5wdXQgPSBTRVJWRVJbInhlcGciXVsiZXBnTWFwcGluZyJdW2lkXTsKICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGlucHV0cy5sZW5ndGg7IGkrKykgewogICAgICAgICAgICBsZXQgbmFtZTsKICAgICAgICAgICAgbGV0IHZhbHVlOwogICAgICAgICAgICBzd2l0Y2ggKGlucHV0c1tpXS50YWdOYW1lKSB7CiAgICAgICAgICAgICAgICBjYXNlICJJTlBVVCI6CiAgICAgICAgICAgICAgICAgICAgc3dpdGNoIChpbnB1dHNbaV0udHlwZSkgewogICAgICAgICAgICAgICAgICAgICAgICBjYXNlICJjaGVja2JveCI6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lID0gaW5wdXRzW2ldLm5hbWU7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IGlucHV0c1tpXS5jaGVja2VkOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5wdXRbbmFtZV0gPSB2YWx1ZTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICAgICAgICBjYXNlICJ0ZXh0IjoKICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWUgPSBpbnB1dHNbaV0ubmFtZTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlID0gaW5wdXRzW2ldLnZhbHVlOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5wdXRbbmFtZV0gPSB2YWx1ZTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgIGNhc2UgIlNFTEVDVCI6CiAgICAgICAgICAgICAgICAgICAgbmFtZSA9IGlucHV0c1tpXS5uYW1lOwogICAgICAgICAgICAgICAgICAgIHZhbHVlID0gaW5wdXRzW2ldLnZhbHVlOwogICAgICAgICAgICAgICAgICAgIGlucHV0W25hbWVdID0gdmFsdWU7CiAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgc3dpdGNoIChuYW1lKSB7CiAgICAgICAgICAgICAgICBjYXNlICJ0dmctbG9nbyI6CiAgICAgICAgICAgICAgICAgICAgLy8oZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpLmNoaWxkTm9kZXNbMl0uZmlyc3RDaGlsZCBhcyBIVE1MRWxlbWVudCkuc2V0QXR0cmlidXRlKCJzcmMiLCB2YWx1ZSkKICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgIGNhc2UgIngtbmFtZSI6CiAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpLmNoaWxkTm9kZXNbM10uZmlyc3RDaGlsZC5pbm5lckhUTUwgPSB2YWx1ZTsKICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgIGNhc2UgIngtY2F0ZWdvcnkiOgogICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5jaGlsZE5vZGVzWzNdLmZpcnN0Q2hpbGQuY2xhc3NOYW1lID0gdmFsdWU7CiAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICBjYXNlICJ1cGRhdGUtY2hhbm5lbC1uYW1lLXJlZ2V4IjoKICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkuY2hpbGROb2Rlc1s0XS5maXJzdENoaWxkLmlubmVySFRNTCA9IHZhbHVlOwogICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgY2FzZSAieC1ncm91cC10aXRsZSI6CiAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpLmNoaWxkTm9kZXNbNl0uZmlyc3RDaGlsZC5pbm5lckhUTUwgPSB2YWx1ZTsKICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgIGNhc2UgIngteG1sdHYtZmlsZSI6CiAgICAgICAgICAgICAgICAgICAgaWYgKHZhbHVlICE9ICJ4VGVWZSBEdW1teSIgJiYgdmFsdWUgIT0gIi0iKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlID0gZ2V0VmFsdWVGcm9tUHJvdmlkZXJGaWxlKHZhbHVlLCAieG1sdHYiLCAibmFtZSIpOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBpZiAodmFsdWUgPT0gIi0iKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGlucHV0WyJ4LWFjdGl2ZSJdID0gZmFsc2U7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5jaGlsZE5vZGVzWzddLmZpcnN0Q2hpbGQuaW5uZXJIVE1MID0gdmFsdWU7CiAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICBjYXNlICJ4LW1hcHBpbmciOgogICAgICAgICAgICAgICAgICAgIGlmICh2YWx1ZSA9PSAiLSIpIHsKICAgICAgICAgICAgICAgICAgICAgICAgaW5wdXRbIngtYWN0aXZlIl0gPSBmYWxzZTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpLmNoaWxkTm9kZXNbOF0uZmlyc3RDaGlsZC5pbm5lckhUTUwgPSB2YWx1ZTsKICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgIGNhc2UgIngtdGltZXNoaWZ0IjoKICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkuY2hpbGROb2Rlc1s5XS5maXJzdENoaWxkLmlubmVySFRNTCA9IHZhbHVlOwogICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgfQogICAgICAgICAgICBjcmVhdGVTZWFyY2hPYmooKTsKICAgICAgICAgICAgc2VhcmNoSW5NYXBwaW5nKCk7CiAgICAgICAgfQogICAgICAgIGlmIChpbnB1dFsieC1hY3RpdmUiXSA9PSBmYWxzZSkgewogICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkuY2xhc3NOYW1lID0gIm5vdEFjdGl2ZUVQRyI7CiAgICAgICAgfQogICAgICAgIGVsc2UgewogICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkuY2xhc3NOYW1lID0gImFjdGl2ZUVQRyI7CiAgICAgICAgfQogICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5jaGlsZE5vZGVzWzJdLmZpcnN0Q2hpbGQuc2V0QXR0cmlidXRlKCJzcmMiLCBpbnB1dFsidHZnLWxvZ28iXSk7CiAgICB9KTsKICAgIHNob3dFbGVtZW50KCJwb3B1cCIsIGZhbHNlKTsKICAgIHJldHVybjsKfQpmdW5jdGlvbiBzaG93UHJldmlldyhlbGVtZW50KSB7CiAgICBsZXQgZGl2ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm15U3RyZWFtc0JveCIpOwogICAgc3dpdGNoIChlbGVtZW50KSB7CiAgICAgICAgY2FzZSBmYWxzZToKICAgICAgICAgICAgZGl2LmNsYXNzTmFtZSA9ICJub3RWaXNpYmxlIjsKICAgICAgICAgICAgcmV0dXJuOwogICAgfQogICAgbGV0IHN0cmVhbXMgPSBbImFjdGl2ZVN0cmVhbXMiLCAiaW5hY3RpdmVTdHJlYW1zIl07CiAgICBzdHJlYW1zLmZvckVhY2gocHJldmlldyA9PiB7CiAgICAgICAgbGV0IHRhYmxlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQocHJldmlldyk7CiAgICAgICAgdGFibGUuaW5uZXJIVE1MID0gIiI7CiAgICAgICAgbGV0IG9iaiA9IFNFUlZFUlsiZGF0YSJdWyJTdHJlYW1QcmV2aWV3VUkiXVtwcmV2aWV3XTsKICAgICAgICBvYmouZm9yRWFjaChjaGFubmVsID0+IHsKICAgICAgICAgICAgbGV0IHRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVFIiKTsKICAgICAgICAgICAgbGV0IHRkS2V5ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsKICAgICAgICAgICAgbGV0IHRkVmFsID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsKICAgICAgICAgICAgdGRLZXkuY2xhc3NOYW1lID0gInRkS2V5IjsKICAgICAgICAgICAgdGRWYWwuY2xhc3NOYW1lID0gInRkVmFsIjsKICAgICAgICAgICAgc3dpdGNoIChwcmV2aWV3KSB7CiAgICAgICAgICAgICAgICBjYXNlICJhY3RpdmVTdHJlYW1zIjoKICAgICAgICAgICAgICAgICAgICB0ZEtleS5pbm5lclRleHQgPSAiQ2hhbm5lbDogKCspIjsKICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgIGNhc2UgImluYWN0aXZlU3RyZWFtcyI6CiAgICAgICAgICAgICAgICAgICAgdGRLZXkuaW5uZXJUZXh0ID0gIkNoYW5uZWw6ICgtKSI7CiAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgdGRWYWwuaW5uZXJUZXh0ID0gY2hhbm5lbDsKICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQodGRLZXkpOwogICAgICAgICAgICB0ci5hcHBlbmRDaGlsZCh0ZFZhbCk7CiAgICAgICAgICAgIHRhYmxlLmFwcGVuZENoaWxkKHRyKTsKICAgICAgICB9KTsKICAgIH0pOwogICAgc2hvd0VsZW1lbnQoImxvYWRpbmciLCBmYWxzZSk7CiAgICBkaXYuY2xhc3NOYW1lID0gInZpc2libGUiOwogICAgcmV0dXJuOwp9Cg==" webUI["html/js/network_ts.js"] = "Y2xhc3MgU2VydmVyIHsKICAgIGNvbnN0cnVjdG9yKGNtZCkgewogICAgICAgIHRoaXMuY21kID0gY21kOwogICAgfQogICAgcmVxdWVzdChkYXRhKSB7CiAgICAgICAgaWYgKFNFUlZFUl9DT05ORUNUSU9OID09IHRydWUpIHsKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KICAgICAgICBTRVJWRVJfQ09OTkVDVElPTiA9IHRydWU7CiAgICAgICAgaWYgKHRoaXMuY21kICE9ICJ1cGRhdGVMb2ciKSB7CiAgICAgICAgICAgIHNob3dFbGVtZW50KCJsb2FkaW5nIiwgdHJ1ZSk7CiAgICAgICAgICAgIFVORE8gPSBuZXcgT2JqZWN0KCk7CiAgICAgICAgfQogICAgICAgIHN3aXRjaCAod2luZG93LmxvY2F0aW9uLnByb3RvY29sKSB7CiAgICAgICAgICAgIGNhc2UgImh0dHA6IjoKICAgICAgICAgICAgICAgIHRoaXMucHJvdG9jb2wgPSAid3M6Ly8iOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgImh0dHBzOiI6CiAgICAgICAgICAgICAgICB0aGlzLnByb3RvY29sID0gIndzczovLyI7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICB9CiAgICAgICAgdmFyIHVybCA9IHRoaXMucHJvdG9jb2wgKyB3aW5kb3cubG9jYXRpb24uaG9zdG5hbWUgKyAiOiIgKyB3aW5kb3cubG9jYXRpb24ucG9ydCArICIvZGF0YS8iICsgIj9Ub2tlbj0iICsgZ2V0Q29va2llKCJUb2tlbiIpOwogICAgICAgIGRhdGFbImNtZCJdID0gdGhpcy5jbWQ7CiAgICAgICAgdmFyIHdzID0gbmV3IFdlYlNvY2tldCh1cmwpOwogICAgICAgIHdzLm9ub3BlbiA9IGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgV1NfQVZBSUxBQkxFID0gdHJ1ZTsKICAgICAgICAgICAgdGhpcy5zZW5kKEpTT04uc3RyaW5naWZ5KGRhdGEpKTsKICAgICAgICB9OwogICAgICAgIHdzLm9uZXJyb3IgPSBmdW5jdGlvbiAod3NFcnJFdnQpIHsKICAgICAgICAgICAgY29uc29sZS5sb2coIk5vIHdlYnNvY2tldCBjb25uZWN0aW9uIHRvIHhUZVZlIGNvdWxkIGJlIGVzdGFibGlzaGVkLiBDaGVjayB5b3VyIG5ldHdvcmsgY29uZmlndXJhdGlvbi4iKTsKICAgICAgICAgICAgU0VSVkVSX0NPTk5FQ1RJT04gPSBmYWxzZTsKICAgICAgICAgICAgaWYgKFdTX0FWQUlMQUJMRSA9PSBmYWxzZSkgewogICAgICAgICAgICAgICAgYWxlcnQoIk5vIHdlYnNvY2tldCBjb25uZWN0aW9uIHRvIHhUZVZlIGNvdWxkIGJlIGVzdGFibGlzaGVkLiBDaGVjayB5b3VyIG5ldHdvcmsgY29uZmlndXJhdGlvbi4iKTsKICAgICAgICAgICAgfQogICAgICAgIH07CiAgICAgICAgd3Mub25tZXNzYWdlID0gZnVuY3Rpb24gKHdzTWVzc2FnZUV2dCkgewogICAgICAgICAgICBTRVJWRVJfQ09OTkVDVElPTiA9IGZhbHNlOwogICAgICAgICAgICBzaG93RWxlbWVudCgibG9hZGluZyIsIGZhbHNlKTsKICAgICAgICAgICAgY29uc3QgcmVzcG9uc2UgPSBKU09OLnBhcnNlKHdzTWVzc2FnZUV2dC5kYXRhKTsKICAgICAgICAgICAgaWYgKHJlc3BvbnNlLmhhc093blByb3BlcnR5KCJ0b2tlbiIpKSB7CiAgICAgICAgICAgICAgICBkb2N1bWVudC5jb29raWUgPSAiVG9rZW49IiArIHJlc3BvbnNlWyJ0b2tlbiJdOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGlmIChyZXNwb25zZVsic3RhdHVzIl0gPT0gZmFsc2UpIHsKICAgICAgICAgICAgICAgIGFsZXJ0KHJlc3BvbnNlWyJlcnIiXSk7CiAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgIH0KICAgICAgICAgICAgaWYgKHJlc3BvbnNlLmhhc093blByb3BlcnR5KCdvcGVuTGluaycpKSB7CiAgICAgICAgICAgICAgICB3aW5kb3cubG9jYXRpb24gPSByZXNwb25zZVsnb3BlbkxpbmsnXTsKICAgICAgICAgICAgfQogICAgICAgICAgICBpZiAocmVzcG9uc2UuaGFzT3duUHJvcGVydHkoInJlbG9hZCIpKSB7CiAgICAgICAgICAgICAgICB3aW5kb3cubG9jYXRpb24ucmVsb2FkKCk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgaWYgKHJlc3BvbnNlLmhhc093blByb3BlcnR5KCJhbGVydCIpKSB7CiAgICAgICAgICAgICAgICBhbGVydChyZXNwb25zZVsiYWxlcnQiXSk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgaWYgKHJlc3BvbnNlLmhhc093blByb3BlcnR5KCJsb2dvVVJMIikpIHsKICAgICAgICAgICAgICAgIHZhciBkaXYgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY2hhbm5lbC1pY29uIik7CiAgICAgICAgICAgICAgICBkaXYudmFsdWUgPSByZXNwb25zZVsibG9nb1VSTCJdOwogICAgICAgICAgICAgICAgZGl2LmNsYXNzTmFtZSA9ICJjaGFuZ2VkIjsKICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgfQogICAgICAgICAgICBzd2l0Y2ggKGRhdGFbImNtZCJdKSB7CiAgICAgICAgICAgICAgICBjYXNlICJ1cGRhdGVMb2ciOgogICAgICAgICAgICAgICAgICAgIFNFUlZFUlsibG9nIl0gPSByZXNwb25zZVsibG9nIl07CiAgICAgICAgICAgICAgICAgICAgaWYgKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb250ZW50X2xvZyIpKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIHNob3dMb2dzKGZhbHNlKTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgICAgICAgICBTRVJWRVIgPSBuZXcgT2JqZWN0KCk7CiAgICAgICAgICAgICAgICAgICAgU0VSVkVSID0gcmVzcG9uc2U7CiAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgaWYgKHJlc3BvbnNlLmhhc093blByb3BlcnR5KCJvcGVuTWVudSIpKSB7CiAgICAgICAgICAgICAgICB2YXIgbWVudSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHJlc3BvbnNlWyJvcGVuTWVudSJdKTsKICAgICAgICAgICAgICAgIG1lbnUuY2xpY2soKTsKICAgICAgICAgICAgICAgIHNob3dFbGVtZW50KCJwb3B1cCIsIGZhbHNlKTsKICAgICAgICAgICAgfQogICAgICAgICAgICBpZiAocmVzcG9uc2UuaGFzT3duUHJvcGVydHkoInJlbG9hZCIpKSB7CiAgICAgICAgICAgICAgICBsb2NhdGlvbi5yZWxvYWQoKTsKICAgICAgICAgICAgfQogICAgICAgICAgICBpZiAocmVzcG9uc2UuaGFzT3duUHJvcGVydHkoIndpemFyZCIpKSB7CiAgICAgICAgICAgICAgICBjcmVhdGVMYXlvdXQoKTsKICAgICAgICAgICAgICAgIGNvbmZpZ3VyYXRpb25XaXphcmRbcmVzcG9uc2VbIndpemFyZCJdXS5jcmVhdGVXaXphcmQoKTsKICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgfQogICAgICAgICAgICBjcmVhdGVMYXlvdXQoKTsKICAgICAgICB9OwogICAgfQp9CmZ1bmN0aW9uIGdldENvb2tpZShuYW1lKSB7CiAgICB2YXIgdmFsdWUgPSAiOyAiICsgZG9jdW1lbnQuY29va2llOwogICAgdmFyIHBhcnRzID0gdmFsdWUuc3BsaXQoIjsgIiArIG5hbWUgKyAiPSIpOwogICAgaWYgKHBhcnRzLmxlbmd0aCA9PSAyKSB7CiAgICAgICAgcmV0dXJuIHBhcnRzLnBvcCgpLnNwbGl0KCI7Iikuc2hpZnQoKTsKICAgIH0KfQo=" - webUI["html/js/settings_ts.js"] = "Y2xhc3MgU2V0dGluZ3NDYXRlZ29yeSB7CiAgICBjb25zdHJ1Y3RvcigpIHsKICAgICAgICB0aGlzLkRvY3VtZW50SUQgPSAiY29udGVudF9zZXR0aW5ncyI7CiAgICB9CiAgICBjcmVhdGVDYXRlZ29yeUhlYWRsaW5lKHZhbHVlKSB7CiAgICAgICAgdmFyIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJINCIpOwogICAgICAgIGVsZW1lbnQuaW5uZXJIVE1MID0gdmFsdWU7CiAgICAgICAgcmV0dXJuIGVsZW1lbnQ7CiAgICB9CiAgICBjcmVhdGVIUigpIHsKICAgICAgICB2YXIgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIkhSIik7CiAgICAgICAgcmV0dXJuIGVsZW1lbnQ7CiAgICB9CiAgICBjcmVhdGVTZXR0aW5ncyhzZXR0aW5nc0tleSkgewogICAgICAgIHZhciBzZXR0aW5nID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVFIiKTsKICAgICAgICB2YXIgY29udGVudCA9IG5ldyBQb3B1cENvbnRlbnQoKTsKICAgICAgICB2YXIgZGF0YSA9IFNFUlZFUlsic2V0dGluZ3MiXVtzZXR0aW5nc0tleV07CiAgICAgICAgc3dpdGNoIChzZXR0aW5nc0tleSkgewogICAgICAgICAgICAvLyBUZXh0IGlucHV0cwogICAgICAgICAgICBjYXNlICJ1cGRhdGUiOgogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7CiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLnVwZGF0ZS50aXRsZX19IiArICI6IjsKICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsKICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCAidXBkYXRlIiwgZGF0YS50b1N0cmluZygpKTsKICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3suc2V0dGluZ3MudXBkYXRlLnBsYWNlaG9sZGVyfX0iKTsKICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsKICAgICAgICAgICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQoaW5wdXQpOwogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOwogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJiYWNrdXAucGF0aCI6CiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsKICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MuYmFja3VwUGF0aC50aXRsZX19IiArICI6IjsKICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsKICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCAiYmFja3VwLnBhdGgiLCBkYXRhKTsKICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3suc2V0dGluZ3MuYmFja3VwUGF0aC5wbGFjZWhvbGRlcn19Iik7CiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7CiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsKICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsKICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAidGVtcC5wYXRoIjoKICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOwogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy50ZW1wUGF0aC50aXRsZX19IiArICI6IjsKICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsKICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCAidGVtcC5wYXRoIiwgZGF0YSk7CiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnNldHRpbmdzLnRtcFBhdGgucGxhY2Vob2xkZXJ9fSIpOwogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOwogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7CiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7CiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgInVzZXIuYWdlbnQiOgogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7CiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLnVzZXJBZ2VudC50aXRsZX19IiArICI6IjsKICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsKICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCAidXNlci5hZ2VudCIsIGRhdGEpOwogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5zZXR0aW5ncy51c2VyQWdlbnQucGxhY2Vob2xkZXJ9fSIpOwogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOwogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7CiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7CiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgImJ1ZmZlci50aW1lb3V0IjoKICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOwogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5idWZmZXJUaW1lb3V0LnRpdGxlfX0iICsgIjoiOwogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOwogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsICJidWZmZXIudGltZW91dCIsIGRhdGEpOwogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5zZXR0aW5ncy5idWZmZXJUaW1lb3V0LnBsYWNlaG9sZGVyfX0iKTsKICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsKICAgICAgICAgICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQoaW5wdXQpOwogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOwogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJmZm1wZWcucGF0aCI6CiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsKICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MuZmZtcGVnUGF0aC50aXRsZX19IiArICI6IjsKICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsKICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCAiZmZtcGVnLnBhdGgiLCBkYXRhKTsKICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3suc2V0dGluZ3MuZmZtcGVnUGF0aC5wbGFjZWhvbGRlcn19Iik7CiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7CiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsKICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsKICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAiZmZtcGVnLm9wdGlvbnMiOgogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7CiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmZmbXBlZ09wdGlvbnMudGl0bGV9fSIgKyAiOiI7CiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7CiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgImZmbXBlZy5vcHRpb25zIiwgZGF0YSk7CiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnNldHRpbmdzLmZmbXBlZ09wdGlvbnMucGxhY2Vob2xkZXJ9fSIpOwogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOwogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7CiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7CiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgInZsYy5wYXRoIjoKICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOwogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy52bGNQYXRoLnRpdGxlfX0iICsgIjoiOwogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOwogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsICJ2bGMucGF0aCIsIGRhdGEpOwogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5zZXR0aW5ncy52bGNQYXRoLnBsYWNlaG9sZGVyfX0iKTsKICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsKICAgICAgICAgICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQoaW5wdXQpOwogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOwogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJ2bGMub3B0aW9ucyI6CiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsKICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MudmxjT3B0aW9ucy50aXRsZX19IiArICI6IjsKICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsKICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCAidmxjLm9wdGlvbnMiLCBkYXRhKTsKICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3suc2V0dGluZ3MudmxjT3B0aW9ucy5wbGFjZWhvbGRlcn19Iik7CiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7CiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsKICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsKICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgLy8gQ2hlY2tib3hlcwogICAgICAgICAgICBjYXNlICJ0bHNNb2RlIjoKICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOwogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy50bHNNb2RlLnRpdGxlfX0iICsgIjoiOwogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOwogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChzZXR0aW5nc0tleSk7CiAgICAgICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YTsKICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsKICAgICAgICAgICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQoaW5wdXQpOwogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOwogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJkaXNhbGxvd1VSTER1cGxpY2F0ZXMiOgogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7CiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmRpc2FsbG93VVJMRHVwbGljYXRlcy50aXRsZX19IiArICI6IjsKICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsKICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goc2V0dGluZ3NLZXkpOwogICAgICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGE7CiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7CiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsKICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsKICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAiYXV0aGVudGljYXRpb24ud2ViIjoKICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOwogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5hdXRoZW50aWNhdGlvbldFQi50aXRsZX19IiArICI6IjsKICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsKICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goc2V0dGluZ3NLZXkpOwogICAgICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGE7CiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7CiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsKICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsKICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAiYXV0aGVudGljYXRpb24ucG1zIjoKICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOwogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5hdXRoZW50aWNhdGlvblBNUy50aXRsZX19IiArICI6IjsKICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsKICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goc2V0dGluZ3NLZXkpOwogICAgICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGE7CiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7CiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsKICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsKICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAiYXV0aGVudGljYXRpb24ubTN1IjoKICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOwogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5hdXRoZW50aWNhdGlvbk0zVS50aXRsZX19IiArICI6IjsKICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsKICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goc2V0dGluZ3NLZXkpOwogICAgICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGE7CiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7CiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsKICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsKICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAiYXV0aGVudGljYXRpb24ueG1sIjoKICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOwogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5hdXRoZW50aWNhdGlvblhNTC50aXRsZX19IiArICI6IjsKICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsKICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goc2V0dGluZ3NLZXkpOwogICAgICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGE7CiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7CiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsKICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsKICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAiYXV0aGVudGljYXRpb24uYXBpIjoKICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOwogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5hdXRoZW50aWNhdGlvbkFQSS50aXRsZX19IiArICI6IjsKICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsKICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goc2V0dGluZ3NLZXkpOwogICAgICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGE7CiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7CiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsKICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsKICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAiZmlsZXMudXBkYXRlIjoKICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOwogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5maWxlc1VwZGF0ZS50aXRsZX19IiArICI6IjsKICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsKICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goc2V0dGluZ3NLZXkpOwogICAgICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGE7CiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7CiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsKICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsKICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAiY2FjaGUuaW1hZ2VzIjoKICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOwogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5jYWNoZUltYWdlcy50aXRsZX19IiArICI6IjsKICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsKICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goc2V0dGluZ3NLZXkpOwogICAgICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGE7CiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7CiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsKICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsKICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAieGVwZy5yZXBsYWNlLm1pc3NpbmcuaW1hZ2VzIjoKICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOwogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5yZXBsYWNlRW1wdHlJbWFnZXMudGl0bGV9fSIgKyAiOiI7CiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7CiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KHNldHRpbmdzS2V5KTsKICAgICAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhOwogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOwogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7CiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7CiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgInN0b3JlQnVmZmVySW5SQU0iOgogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7CiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLnN0b3JlQnVmZmVySW5SQU0udGl0bGV9fSIgKyAiOiI7CiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7CiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KHNldHRpbmdzS2V5KTsKICAgICAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhOwogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOwogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7CiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7CiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgInh0ZXZlQXV0b1VwZGF0ZSI6CiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsKICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MueHRldmVBdXRvVXBkYXRlLnRpdGxlfX0iICsgIjoiOwogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOwogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChzZXR0aW5nc0tleSk7CiAgICAgICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YTsKICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsKICAgICAgICAgICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQoaW5wdXQpOwogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOwogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJjbGVhclhNTFRWQ2FjaGUiOgogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7CiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmNsZWFyWE1MVFZDYWNoZS50aXRsZX19IiArICI6IjsKICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsKICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goc2V0dGluZ3NLZXkpOwogICAgICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGE7CiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7CiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsKICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsKICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAiYXBpIjoKICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOwogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5hcGkudGl0bGV9fSIgKyAiOiI7CiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7CiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KHNldHRpbmdzS2V5KTsKICAgICAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhOwogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOwogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7CiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7CiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgImVuYWJsZU1hcHBlZENoYW5uZWxzIjoKICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOwogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5lbmFibGVNYXBwZWRDaGFubmVscy50aXRsZX19IiArICI6IjsKICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsKICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goc2V0dGluZ3NLZXkpOwogICAgICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGE7CiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7CiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsKICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsKICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgLy8gU2VsZWN0CiAgICAgICAgICAgIGNhc2UgImhvc3RJUCI6CiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsKICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MuaG9zdElQLnRpdGxlfX0iICsgIjoiOwogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOwogICAgICAgICAgICAgICAgdmFyIHRleHQgPSBTRVJWRVJbImlwQWRkcmVzc2VzVjRIb3N0Il07CiAgICAgICAgICAgICAgICB2YXIgdmFsdWVzID0gU0VSVkVSWyJpcEFkZHJlc3Nlc1Y0SG9zdCJdOwogICAgICAgICAgICAgICAgdmFyIHNlbGVjdCA9IGNvbnRlbnQuY3JlYXRlU2VsZWN0KHRleHQsIHZhbHVlcywgZGF0YSwgc2V0dGluZ3NLZXkpOwogICAgICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsKICAgICAgICAgICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQoc2VsZWN0KTsKICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsKICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAidHVuZXIiOgogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7CiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLnR1bmVyLnRpdGxlfX0iICsgIjoiOwogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOwogICAgICAgICAgICAgICAgdmFyIHRleHQgPSBuZXcgQXJyYXkoKTsKICAgICAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBuZXcgQXJyYXkoKTsKICAgICAgICAgICAgICAgIGZvciAodmFyIGkgPSAxOyBpIDw9IDEwMDsgaSsrKSB7CiAgICAgICAgICAgICAgICAgICAgdGV4dC5wdXNoKGkpOwogICAgICAgICAgICAgICAgICAgIHZhbHVlcy5wdXNoKGkpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgdmFyIHNlbGVjdCA9IGNvbnRlbnQuY3JlYXRlU2VsZWN0KHRleHQsIHZhbHVlcywgZGF0YSwgc2V0dGluZ3NLZXkpOwogICAgICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsKICAgICAgICAgICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQoc2VsZWN0KTsKICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsKICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAiZXBnU291cmNlIjoKICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOwogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5lcGdTb3VyY2UudGl0bGV9fSIgKyAiOiI7CiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7CiAgICAgICAgICAgICAgICB2YXIgdGV4dCA9IFsiUE1TIiwgIlhFUEciXTsKICAgICAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBbIlBNUyIsICJYRVBHIl07CiAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCBkYXRhLCBzZXR0aW5nc0tleSk7CiAgICAgICAgICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOwogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChzZWxlY3QpOwogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOwogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJkZWZhdWx0TWlzc2luZ0VQRyI6CiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsKICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MuZGVmYXVsdE1pc3NpbmdFUEcudGl0bGV9fSIgKyAiOiI7CiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7CiAgICAgICAgICAgICAgICB2YXIgdGV4dCA9IFsKICAgICAgICAgICAgICAgICAgICAiLSIsICIzMCBNaW51dGVzICgzMF9NaW51dGVzKSIsICI2MCBNaW51dGVzICg2MF9NaW51dGVzKSIsICI5MCBNaW51dGVzICg5MF9NaW51dGVzKSIsCiAgICAgICAgICAgICAgICAgICAgIjEyMCBNaW51dGVzICgxMjBfTWludXRlcykiLCAiMTgwIE1pbnV0ZXMgKDE4MF9NaW51dGVzKSIsICIyNDAgTWludXRlcyAoMjQwX01pbnV0ZXMpIiwgIjM2MCBNaW51dGVzICgzNjBfTWludXRlcykiCiAgICAgICAgICAgICAgICBdOwogICAgICAgICAgICAgICAgdmFyIHZhbHVlcyA9IFsKICAgICAgICAgICAgICAgICAgICAiLSIsICIzMF9NaW51dGVzIiwgIjYwX01pbnV0ZXMiLCAiOTBfTWludXRlcyIsICIxMjBfTWludXRlcyIsICIxODBfTWludXRlcyIsICIyNDBfTWludXRlcyIsICIzNjBfTWludXRlcyIKICAgICAgICAgICAgICAgIF07CiAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCBkYXRhLCBzZXR0aW5nc0tleSk7CiAgICAgICAgICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOwogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChzZWxlY3QpOwogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOwogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJiYWNrdXAua2VlcCI6CiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsKICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MuYmFja3VwS2VlcC50aXRsZX19IiArICI6IjsKICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsKICAgICAgICAgICAgICAgIHZhciB0ZXh0ID0gWyI1IiwgIjEwIiwgIjIwIiwgIjMwIiwgIjQwIiwgIjUwIl07CiAgICAgICAgICAgICAgICB2YXIgdmFsdWVzID0gWyI1IiwgIjEwIiwgIjIwIiwgIjMwIiwgIjQwIiwgIjUwIl07CiAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCBkYXRhLCBzZXR0aW5nc0tleSk7CiAgICAgICAgICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOwogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChzZWxlY3QpOwogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOwogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJidWZmZXIuc2l6ZS5rYiI6CiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsKICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MuYnVmZmVyU2l6ZS50aXRsZX19IiArICI6IjsKICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsKICAgICAgICAgICAgICAgIHZhciB0ZXh0ID0gWyIwLjUgTUIiLCAiMSBNQiIsICIyIE1CIiwgIjMgTUIiLCAiNCBNQiIsICI1IE1CIiwgIjYgTUIiLCAiNyBNQiIsICI4IE1CIl07CiAgICAgICAgICAgICAgICB2YXIgdmFsdWVzID0gWyI1MTIiLCAiMTAyNCIsICIyMDQ4IiwgIjMwNzIiLCAiNDA5NiIsICI1MTIwIiwgIjYxNDQiLCAiNzE2OCIsICI4MTkyIl07CiAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCBkYXRhLCBzZXR0aW5nc0tleSk7CiAgICAgICAgICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOwogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChzZWxlY3QpOwogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOwogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJidWZmZXIiOgogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7CiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLnN0cmVhbUJ1ZmZlcmluZy50aXRsZX19IiArICI6IjsKICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsKICAgICAgICAgICAgICAgIHZhciB0ZXh0ID0gWyJ7ey5zZXR0aW5ncy5zdHJlYW1CdWZmZXJpbmcuaW5mb19mYWxzZX19IiwgInhUZVZlOiAoe3suc2V0dGluZ3Muc3RyZWFtQnVmZmVyaW5nLmluZm9feHRldmV9fSkiLCAiRkZtcGVnOiAoe3suc2V0dGluZ3Muc3RyZWFtQnVmZmVyaW5nLmluZm9fZmZtcGVnfX0pIiwgIlZMQzogKHt7LnNldHRpbmdzLnN0cmVhbUJ1ZmZlcmluZy5pbmZvX3ZsY319KSJdOwogICAgICAgICAgICAgICAgdmFyIHZhbHVlcyA9IFsiLSIsICJ4dGV2ZSIsICJmZm1wZWciLCAidmxjIl07CiAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCBkYXRhLCBzZXR0aW5nc0tleSk7CiAgICAgICAgICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOwogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChzZWxlY3QpOwogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOwogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJ1ZHB4eSI6CiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsKICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MudWRweHkudGl0bGV9fSIgKyAiOiI7CiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7CiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgInVkcHh5IiwgZGF0YSk7CiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnNldHRpbmdzLnVkcHh5LnBsYWNlaG9sZGVyfX0iKTsKICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsKICAgICAgICAgICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQoaW5wdXQpOwogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOwogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgIH0KICAgICAgICByZXR1cm4gc2V0dGluZzsKICAgIH0KICAgIGNyZWF0ZURlc2NyaXB0aW9uKHNldHRpbmdzS2V5KSB7CiAgICAgICAgdmFyIGRlc2NyaXB0aW9uID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVFIiKTsKICAgICAgICB2YXIgdGV4dDsKICAgICAgICBzd2l0Y2ggKHNldHRpbmdzS2V5KSB7CiAgICAgICAgICAgIGNhc2UgInRsc01vZGUiOgogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy50bHNNb2RlLmRlc2NyaXB0aW9ufX0iOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgImRpc2FsbG93VVJMRHVwbGljYXRlcyI6CiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLmRpc2FsbG93VVJMRHVwbGljYXRlcy5kZXNjcmlwdGlvbn19IjsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJhdXRoZW50aWNhdGlvbi53ZWIiOgogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5hdXRoZW50aWNhdGlvbldFQi5kZXNjcmlwdGlvbn19IjsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJhdXRoZW50aWNhdGlvbi5tM3UiOgogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5hdXRoZW50aWNhdGlvbk0zVS5kZXNjcmlwdGlvbn19IjsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJhdXRoZW50aWNhdGlvbi5wbXMiOgogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5hdXRoZW50aWNhdGlvblBNUy5kZXNjcmlwdGlvbn19IjsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJhdXRoZW50aWNhdGlvbi54bWwiOgogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5hdXRoZW50aWNhdGlvblhNTC5kZXNjcmlwdGlvbn19IjsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJhdXRoZW50aWNhdGlvbi5hcGkiOgogICAgICAgICAgICAgICAgaWYgKFNFUlZFUlsic2V0dGluZ3MiXVsiYXV0aGVudGljYXRpb24ud2ViIl0gPT0gdHJ1ZSkgewogICAgICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MuYXV0aGVudGljYXRpb25BUEkuZGVzY3JpcHRpb259fSI7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAieHRldmVBdXRvVXBkYXRlIjoKICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MueHRldmVBdXRvVXBkYXRlLmRlc2NyaXB0aW9ufX0iOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgImJhY2t1cC5rZWVwIjoKICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MuYmFja3VwS2VlcC5kZXNjcmlwdGlvbn19IjsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJiYWNrdXAucGF0aCI6CiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLmJhY2t1cFBhdGguZGVzY3JpcHRpb259fSI7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAidGVtcC5wYXRoIjoKICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MudGVtcFBhdGguZGVzY3JpcHRpb259fSI7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAiYnVmZmVyIjoKICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3Muc3RyZWFtQnVmZmVyaW5nLmRlc2NyaXB0aW9ufX0iOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgImJ1ZmZlci5zaXplLmtiIjoKICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MuYnVmZmVyU2l6ZS5kZXNjcmlwdGlvbn19IjsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJzdG9yZUJ1ZmZlckluUkFNIjoKICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3Muc3RvcmVCdWZmZXJJblJBTS5kZXNjcmlwdGlvbn19IjsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJidWZmZXIudGltZW91dCI6CiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLmJ1ZmZlclRpbWVvdXQuZGVzY3JpcHRpb259fSI7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAidXNlci5hZ2VudCI6CiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLnVzZXJBZ2VudC5kZXNjcmlwdGlvbn19IjsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJmZm1wZWcucGF0aCI6CiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLmZmbXBlZ1BhdGguZGVzY3JpcHRpb259fSI7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAiZmZtcGVnLm9wdGlvbnMiOgogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5mZm1wZWdPcHRpb25zLmRlc2NyaXB0aW9ufX0iOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgInZsYy5wYXRoIjoKICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MudmxjUGF0aC5kZXNjcmlwdGlvbn19IjsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJ2bGMub3B0aW9ucyI6CiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLnZsY09wdGlvbnMuZGVzY3JpcHRpb259fSI7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAiZXBnU291cmNlIjoKICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MuZXBnU291cmNlLmRlc2NyaXB0aW9ufX0iOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgImhvc3RJUCI6CiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLmhvc3RJUC5kZXNjcmlwdGlvbn19IjsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJ0dW5lciI6CiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLnR1bmVyLmRlc2NyaXB0aW9ufX0iOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgInVwZGF0ZSI6CiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLnVwZGF0ZS5kZXNjcmlwdGlvbn19IjsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJjbGVhclhNTFRWQ2FjaGUiOgogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5jbGVhclhNTFRWQ2FjaGUuZGVzY3JpcHRpb259fSI7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAiYXBpIjoKICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MuYXBpLmRlc2NyaXB0aW9ufX0iOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgImRlZmF1bHRNaXNzaW5nRVBHIjoKICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MuZGVmYXVsdE1pc3NpbmdFUEcuZGVzY3JpcHRpb259fSI7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAiZW5hYmxlTWFwcGVkQ2hhbm5lbHMiOgogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5lbmFibGVNYXBwZWRDaGFubmVscy5kZXNjcmlwdGlvbn19IjsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJmaWxlcy51cGRhdGUiOgogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5maWxlc1VwZGF0ZS5kZXNjcmlwdGlvbn19IjsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJjYWNoZS5pbWFnZXMiOgogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5jYWNoZUltYWdlcy5kZXNjcmlwdGlvbn19IjsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJ4ZXBnLnJlcGxhY2UubWlzc2luZy5pbWFnZXMiOgogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5yZXBsYWNlRW1wdHlJbWFnZXMuZGVzY3JpcHRpb259fSI7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAidWRweHkiOgogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy51ZHB4eS5kZXNjcmlwdGlvbn19IjsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAgICAgdGV4dCA9ICIiOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgfQogICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOwogICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAiIjsKICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7CiAgICAgICAgdmFyIHByZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlBSRSIpOwogICAgICAgIHByZS5pbm5lckhUTUwgPSB0ZXh0OwogICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQocHJlKTsKICAgICAgICBkZXNjcmlwdGlvbi5hcHBlbmRDaGlsZCh0ZExlZnQpOwogICAgICAgIGRlc2NyaXB0aW9uLmFwcGVuZENoaWxkKHRkUmlnaHQpOwogICAgICAgIHJldHVybiBkZXNjcmlwdGlvbjsKICAgIH0KfQpjbGFzcyBTZXR0aW5nc0NhdGVnb3J5SXRlbSBleHRlbmRzIFNldHRpbmdzQ2F0ZWdvcnkgewogICAgY29uc3RydWN0b3IoaGVhZGxpbmUsIHNldHRpbmdzS2V5cykgewogICAgICAgIHN1cGVyKCk7CiAgICAgICAgdGhpcy5oZWFkbGluZSA9IGhlYWRsaW5lOwogICAgICAgIHRoaXMuc2V0dGluZ3NLZXlzID0gc2V0dGluZ3NLZXlzOwogICAgfQogICAgY3JlYXRlQ2F0ZWdvcnkoKSB7CiAgICAgICAgdmFyIGhlYWRsaW5lID0gdGhpcy5jcmVhdGVDYXRlZ29yeUhlYWRsaW5lKHRoaXMuaGVhZGxpbmUpOwogICAgICAgIHZhciBzZXR0aW5nc0tleXMgPSB0aGlzLnNldHRpbmdzS2V5czsKICAgICAgICB2YXIgZG9jID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQodGhpcy5Eb2N1bWVudElEKTsKICAgICAgICBkb2MuYXBwZW5kQ2hpbGQoaGVhZGxpbmUpOwogICAgICAgIC8vIENyZWF0ZSBhIHRhYmxlIGZvciB0aGUgY2F0ZWdvcnkKICAgICAgICB2YXIgdGFibGUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJUQUJMRSIpOwogICAgICAgIHZhciBrZXlzID0gc2V0dGluZ3NLZXlzLnNwbGl0KCIsIik7CiAgICAgICAga2V5cy5mb3JFYWNoKHNldHRpbmdzS2V5ID0+IHsKICAgICAgICAgICAgc3dpdGNoIChzZXR0aW5nc0tleSkgewogICAgICAgICAgICAgICAgY2FzZSAiYXV0aGVudGljYXRpb24ucG1zIjoKICAgICAgICAgICAgICAgIGNhc2UgImF1dGhlbnRpY2F0aW9uLm0zdSI6CiAgICAgICAgICAgICAgICBjYXNlICJhdXRoZW50aWNhdGlvbi54bWwiOgogICAgICAgICAgICAgICAgY2FzZSAiYXV0aGVudGljYXRpb24uYXBpIjoKICAgICAgICAgICAgICAgICAgICBpZiAoU0VSVkVSWyJzZXR0aW5ncyJdWyJhdXRoZW50aWNhdGlvbi53ZWIiXSA9PSBmYWxzZSkgewogICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAgICAgICAgIHZhciBpdGVtID0gdGhpcy5jcmVhdGVTZXR0aW5ncyhzZXR0aW5nc0tleSk7CiAgICAgICAgICAgICAgICAgICAgdmFyIGRlc2NyaXB0aW9uID0gdGhpcy5jcmVhdGVEZXNjcmlwdGlvbihzZXR0aW5nc0tleSk7CiAgICAgICAgICAgICAgICAgICAgdGFibGUuYXBwZW5kQ2hpbGQoaXRlbSk7CiAgICAgICAgICAgICAgICAgICAgdGFibGUuYXBwZW5kQ2hpbGQoZGVzY3JpcHRpb24pOwogICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICB9CiAgICAgICAgfSk7CiAgICAgICAgZG9jLmFwcGVuZENoaWxkKHRhYmxlKTsKICAgICAgICBkb2MuYXBwZW5kQ2hpbGQodGhpcy5jcmVhdGVIUigpKTsKICAgIH0KfQpmdW5jdGlvbiBzaG93U2V0dGluZ3MoKSB7CiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHNldHRpbmdzQ2F0ZWdvcnkubGVuZ3RoOyBpKyspIHsKICAgICAgICBzZXR0aW5nc0NhdGVnb3J5W2ldLmNyZWF0ZUNhdGVnb3J5KCk7CiAgICB9Cn0KZnVuY3Rpb24gc2F2ZVNldHRpbmdzKCkgewogICAgdmFyIGNtZCA9ICJzYXZlU2V0dGluZ3MiOwogICAgdmFyIGRpdiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb250ZW50X3NldHRpbmdzIik7CiAgICB2YXIgc2V0dGluZ3MgPSBkaXYuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSgiY2hhbmdlZCIpOwogICAgdmFyIG5ld1NldHRpbmdzID0gbmV3IE9iamVjdCgpOwogICAgZm9yIChsZXQgaSA9IDA7IGkgPCBzZXR0aW5ncy5sZW5ndGg7IGkrKykgewogICAgICAgIHZhciBuYW1lOwogICAgICAgIHZhciB2YWx1ZTsKICAgICAgICBzd2l0Y2ggKHNldHRpbmdzW2ldLnRhZ05hbWUpIHsKICAgICAgICAgICAgY2FzZSAiSU5QVVQiOgogICAgICAgICAgICAgICAgc3dpdGNoIChzZXR0aW5nc1tpXS50eXBlKSB7CiAgICAgICAgICAgICAgICAgICAgY2FzZSAiY2hlY2tib3giOgogICAgICAgICAgICAgICAgICAgICAgICBuYW1lID0gc2V0dGluZ3NbaV0ubmFtZTsKICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSBzZXR0aW5nc1tpXS5jaGVja2VkOwogICAgICAgICAgICAgICAgICAgICAgICBuZXdTZXR0aW5nc1tuYW1lXSA9IHZhbHVlOwogICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICAgICBjYXNlICJ0ZXh0IjoKICAgICAgICAgICAgICAgICAgICAgICAgbmFtZSA9IHNldHRpbmdzW2ldLm5hbWU7CiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlID0gc2V0dGluZ3NbaV0udmFsdWU7CiAgICAgICAgICAgICAgICAgICAgICAgIHN3aXRjaCAobmFtZSkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAidXBkYXRlIjoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IHZhbHVlLnNwbGl0KCIsIik7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSB2YWx1ZS5maWx0ZXIoZnVuY3Rpb24gKGUpIHsgcmV0dXJuIGU7IH0pOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAiYnVmZmVyLnRpbWVvdXQiOgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlID0gcGFyc2VGbG9hdCh2YWx1ZSk7CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgbmV3U2V0dGluZ3NbbmFtZV0gPSB2YWx1ZTsKICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAiU0VMRUNUIjoKICAgICAgICAgICAgICAgIG5hbWUgPSBzZXR0aW5nc1tpXS5uYW1lOwogICAgICAgICAgICAgICAgdmFsdWUgPSBzZXR0aW5nc1tpXS52YWx1ZTsKICAgICAgICAgICAgICAgIC8vIElmIHRoZSB2YWx1ZSBpcyBhIG51bWJlciwgc3RvcmUgaXQgYXMgYSBudW1iZXIKICAgICAgICAgICAgICAgIGlmIChpc05hTih2YWx1ZSkpIHsKICAgICAgICAgICAgICAgICAgICBuZXdTZXR0aW5nc1tuYW1lXSA9IHZhbHVlOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgbmV3U2V0dGluZ3NbbmFtZV0gPSBwYXJzZUludCh2YWx1ZSk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICB9CiAgICB9CiAgICB2YXIgZGF0YSA9IG5ldyBPYmplY3QoKTsKICAgIGRhdGFbInNldHRpbmdzIl0gPSBuZXdTZXR0aW5nczsKICAgIHZhciBzZXJ2ZXIgPSBuZXcgU2VydmVyKGNtZCk7CiAgICBzZXJ2ZXIucmVxdWVzdChkYXRhKTsKfQo=" - webUI["html/lang/en.json"] = "ewogICJtYWluTWVudSI6CiAgewogICAgIml0ZW0iOgogICAgewogICAgICAicGxheWxpc3QiOiAiUGxheWxpc3QiLAogICAgICAicG1zSUQiOiAiUE1TIElEIiwKICAgICAgImZpbHRlciI6ICJGaWx0ZXIiLAogICAgICAieG1sdHYiOiAiWE1MVFYiLAogICAgICAibWFwcGluZyI6ICJNYXBwaW5nIiwKICAgICAgInVzZXJzIjogIlVzZXJzIiwKICAgICAgInNldHRpbmdzIjogIlNldHRpbmdzIiwKICAgICAgImxvZyI6ICJMb2ciLAogICAgICAibG9nb3V0IjogIkxvZ291dCIKICAgIH0sCiAgICAiaGVhZGxpbmUiOgogICAgewogICAgICAicGxheWxpc3QiOiAiTG9jYWwgb3IgcmVtb3RlIHBsYXlsaXN0cyIsCiAgICAgICJmaWx0ZXIiOiAiRmlsdGVyIHBsYXlsaXN0IiwKICAgICAgInhtbHR2IjogIkxvY2FsIG9yIHJlbW90ZSBYTUxUViBmaWxlcyIsCiAgICAgICJtYXBwaW5nIjogIk1hcCBwbGF5bGlzdCBjaGFubmVscyB0byBFUEcgY2hhbm5lbHMiLAogICAgICAidXNlcnMiOiAiVXNlciBtYW5hZ2VtZW50IiwKICAgICAgInNldHRpbmdzIjogIlNldHRpbmdzIiwKICAgICAgImxvZyI6ICJMb2ciLAogICAgICAibG9nb3V0IjogIkxvZ291dCIKICAgIH0KICB9LAogICJjb25maXJtIjoKICB7CiAgICAicmVzdG9yZSI6ICJBbGwgZGF0YSB3aWxsIGJlIHJlcGxhY2VkIHdpdGggdGhvc2UgZnJvbSB0aGUgYmFja3VwLiBTaG91bGQgdGhlIGZpbGVzIGJlIHJlc3RvcmVkPyIKICB9LAogICJhbGVydCI6CiAgewogICAgImZpbGVMb2FkaW5nRXJyb3IiOiAiRmlsZSBjb3VsZG4ndCBiZSBsb2FkZWQiLAogICAgImludmFsaWRDaGFubmVsTnVtYmVyIjogIkludmFsaWQgY2hhbm5lbCBudW1iZXIiLAogICAgIm1pc3NpbmdJbnB1dCI6ICJNaXNzaW5nIGlucHV0IgogIH0sCiAgImJ1dHRvbiI6CiAgewogICAgImJhY2siOiAiQmFjayIsCiAgICAiYmFja3VwIjogIkJhY2t1cCIsCiAgICAiYnVsa0VkaXQiOiAiQnVsayBFZGl0IiwKICAgICJjYW5jZWwiOiAiQ2FuY2VsIiwKICAgICJkZWxldGUiOiAiRGVsZXRlIiwKICAgICJkb25lIjogIkRvbmUiLAogICAgImxvZ2luIjogIkxvZ2luIiwKICAgICJuZXciOiAiTmV3IiwKICAgICJuZXh0IjogIk5leHQiLAogICAgInJlc3RvcmUiOiAiUmVzdG9yZSIsCiAgICAic2F2ZSI6ICJTYXZlIiwKICAgICJzZWFyY2giOiAiU2VhcmNoIiwKICAgICJ1cGRhdGUiOiAiVXBkYXRlIiwKICAgICJjcmFldGVBY2NvdW50IjogIkNyZWF0ZSBBY2NvdW50IiwKICAgICJyZXNldExvZ3MiOiAiUmVzZXQgTG9ncyIsCiAgICAidXBsb2FkTG9nbyI6ICJVcGxvYWQgTG9nbyIKICB9LAogICJmaWx0ZXIiOgogIHsKICAgICJ0YWJsZSI6CiAgICB7CiAgICAgICJzdGFydGluZ0NoYW5uZWwiOiAiU3RhcnRpbmcgQ2guIE5vLiIsCiAgICAgICJuYW1lIjogIkZpbHRlciBOYW1lIiwKICAgICAgInR5cGUiOiAiRmlsdGVyIFR5cGUiLAogICAgICAiZmlsdGVyIjogIkZpbHRlciIKICAgIH0sCiAgICAiY3VzdG9tIjogIkN1c3RvbSIsCiAgICAiZ3JvdXAiOiAiTTNVIEdyb3VwIiwKICAgICJuYW1lIjoKICAgIHsKICAgICAgInRpdGxlIjogIkZpbHRlciBOYW1lIiwKICAgICAgInBsYWNlaG9sZGVyIjogIkZpbHRlciBuYW1lIiwKICAgICAgImRlc2NyaXB0aW9uIjogIiIKICAgIH0sCiAgICAiZGVzY3JpcHRpb24iOgogICAgewogICAgICAidGl0bGUiOiAiRGVzY3JpcHRpb24iLAogICAgICAicGxhY2Vob2xkZXIiOiAiRGVzY3JpcHRpb24iLAogICAgICAiZGVzY3JpcHRpb24iOiAiIgogICAgfSwKICAgICJ0eXBlIjoKICAgIHsKICAgICAgInRpdGxlIjogIlR5cGUiLAogICAgICAiZ3JvdXBUaXRsZSI6ICJHcm91cCBUaXRsZSIsCiAgICAgICJjdXN0b21GaWx0ZXIiOiAiQ3VzdG9tIEZpbHRlciIKICAgIH0sCiAgICAiY2FzZVNlbnNpdGl2ZSI6CiAgICB7CiAgICAgICJ0aXRsZSI6ICJDYXNlIFNlbnNpdGl2ZSIsCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLAogICAgICAiZGVzY3JpcHRpb24iOiAiIgogICAgfSwKICAgICJmaWx0ZXJSdWxlIjoKICAgIHsKICAgICAgInRpdGxlIjogIkZpbHRlciBSdWxlIiwKICAgICAgInBsYWNlaG9sZGVyIjogIlNwb3J0IHtIRH0gIXtFUyxJVH0iLAogICAgICAiZGVzY3JpcHRpb24iOiAiIgogICAgfSwKICAgICJmaWx0ZXJHcm91cCI6CiAgICB7CiAgICAgICJ0aXRsZSI6ICJHcm91cCBUaXRsZSIsCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLAogICAgICAiZGVzY3JpcHRpb24iOiAiU2VsZWN0IGEgTTNVIGdyb3VwLiAoQ291bnRlcik8YnI+Q2hhbmdpbmcgdGhlIGdyb3VwIHRpdGxlIGluIHRoZSBNM1UgaW52YWxpZGF0ZXMgdGhlIGZpbHRlci4iCiAgICB9LAogICAgImluY2x1ZGUiOgogICAgewogICAgICAidGl0bGUiOiAiSW5jbHVkZSIsCiAgICAgICJwbGFjZWhvbGRlciI6ICJGSEQsVUhEIiwKICAgICAgImRlc2NyaXB0aW9uIjogIkNoYW5uZWwgbmFtZSBtdXN0IGluY2x1ZGUuPGJyPihDb21tYSBzZXBhcmF0ZWQpIENvbW1hIG1lYW5zIG9yIgogICAgfSwKICAgICJleGNsdWRlIjoKICAgIHsKICAgICAgInRpdGxlIjogIkV4Y2x1ZGUiLAogICAgICAicGxhY2Vob2xkZXIiOiAiRVMsSVQiLAogICAgICAiZGVzY3JpcHRpb24iOiAiQ2hhbm5lbCBuYW1lIG11c3Qgbm90IGNvbnRhaW4uPGJyPihDb21tYSBzZXBhcmF0ZWQpIENvbW1hIG1lYW5zIG9yIgogICAgfSwKICAgICJwcmVzZXJ2ZU1hcHBpbmciOgogICAgewogICAgICAidGl0bGUiOiAiUHJlc2VydmUgRXhpc3RpbmcgTTNVPGJyPkNoYW5uZWwgTnVtYmVycyIsCiAgICAgICJwYWxjZWhvbGRlciI6ICIiLAogICAgICAiZGVzY3JpcHRpb24iOiAiUHJlc2VydmUgZXhpc3RpbmcgTTNVIHBsYXlsaXN0IGNoYW5uZWwgbnVtYmVycz8iCiAgICB9LAogICAgInN0YXJ0aW5nQ2hhbm5lbCI6CiAgICB7CiAgICAgICJ0aXRsZSI6ICJTdGFydGluZyBDaGFubmVsIE51bWJlciIsCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLAogICAgICAiZGVzY3JpcHRpb24iOiAiIgogICAgfQogIH0sCiAgInBsYXlsaXN0IjoKICB7CiAgICAidGFibGUiOgogICAgewogICAgICAicGxheWxpc3QiOiAiUGxheWxpc3QiLAogICAgICAidHVuZXIiOiAiVHVuZXIiLAogICAgICAibGFzdFVwZGF0ZSI6ICJMYXN0IFVwZGF0ZSIsCiAgICAgICJhdmFpbGFiaWxpdHkiOiAiQXZhaWxhYmlsaXR5IiwKICAgICAgInR5cGUiOiAiVHlwZSIsCiAgICAgICJzdHJlYW1zIjogIlN0cmVhbXMiLAogICAgICAiZ3JvdXBUaXRsZSI6ICJncm91cC10aXRsZSIsCiAgICAgICJ0dmdJRCI6ICJ0dmctaWQiLAogICAgICAidW5pcXVlSUQiOiAiVW5pcXVlIElEIgogICAgfSwKICAgICJwbGF5bGlzdFR5cGUiOgogICAgewogICAgICAidGl0bGUiOiAiUGxheWxpc3QgdHlwZSIsCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLAogICAgICAiZGVzY3JpcHRpb24iOiAiIgogICAgfSwKICAgICJ0eXBlIjoKICAgIHsKICAgICAgInRpdGxlIjogIlR5cGUiLAogICAgICAicGxhY2Vob2xkZXIiOiAiIiwKICAgICAgImRlc2NyaXB0aW9uIjogIiIKICAgIH0sCiAgICAibmFtZSI6CiAgICB7CiAgICAgICJ0aXRsZSI6ICJOYW1lIiwKICAgICAgInBsYWNlaG9sZGVyIjogIlBsYXlsaXN0IG5hbWUiLAogICAgICAiZGVzY3JpcHRpb24iOiAiIgogICAgfSwKICAgICJkZXNjcmlwdGlvbiI6CiAgICB7CiAgICAgICJ0aXRsZSI6ICJEZXNjcmlwdGlvbiIsCiAgICAgICJwbGFjZWhvbGRlciI6ICJEZXNjcmlwdGlvbiIsCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiCiAgICB9LAogICAgImZpbGVNM1UiOgogICAgewogICAgICAidGl0bGUiOiAiTTNVIEZpbGUiLAogICAgICAicGxhY2Vob2xkZXIiOiAiRmlsZSBwYXRoIG9yIFVSTCBvZiB0aGUgTTNVIiwKICAgICAgImRlc2NyaXB0aW9uIjogIiIKICAgIH0sCiAgICAiZmlsZUhESFIiOgogICAgewogICAgICAidGl0bGUiOiAiSERIb21lUnVuIElQIiwKICAgICAgInBsYWNlaG9sZGVyIjogIklQIGFkZHJlc3MgYW5kIHBvcnQgKDE5Mi4xNjguMS4xMDo1MDA0KSIsCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiCiAgICB9LAogICAgInR1bmVyIjoKICAgIHsKICAgICAgInRpdGxlIjogIlR1bmVyIC8gU3RyZWFtcyIsCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLAogICAgICAiZGVzY3JpcHRpb24iOiAiTnVtYmVyIG9mIHBhcmFsbGVsIGNvbm5lY3Rpb25zIHRoYXQgY2FuIGJlIGVzdGFibGlzaGVkIHRvIHRoZSBwcm92aWRlci4gPGJyPk9ubHkgYXZhaWxhYmxlIHdpdGggYWN0aXZhdGVkIGJ1ZmZlci48YnI+TmV3IHNldHRpbmdzIHdpbGwgb25seSBiZSBhcHBsaWVkIGFmdGVyIHF1aXR0aW5nIGFsbCBzdHJlYW1zLiIKICAgIH0KICB9LAogICJ4bWx0diI6CiAgewogICAgInRhYmxlIjoKICAgIHsKICAgICAgImd1aWRlIjogIkd1aWRlIiwKICAgICAgImxhc3RVcGRhdGUiOiAiTGFzdCBVcGRhdGUiLAogICAgICAiYXZhaWxhYmlsaXR5IjogIkF2YWlsYWJpbGl0eSIsCiAgICAgICJjaGFubmVscyI6ICJDaGFubmVscyIsCiAgICAgICJwcm9ncmFtcyI6ICJQcm9ncmFtcyIKICAgIH0sCiAgICAibmFtZSI6CiAgICB7CiAgICAgICJ0aXRsZSI6ICJOYW1lIiwKICAgICAgInBsYWNlaG9sZGVyIjogIkd1aWRlIG5hbWUiLAogICAgICAiZGVzY3JpcHRpb24iOiAiIgogICAgfSwKICAgICJkZXNjcmlwdGlvbiI6CiAgICB7CiAgICAgICJ0aXRsZSI6ICJEZXNjcmlwdGlvbiIsCiAgICAgICJwbGFjZWhvbGRlciI6ICJEZXNjcmlwdGlvbiIsCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiCiAgICB9LAogICAgImZpbGVYTUxUViI6CiAgICB7CiAgICAgICJ0aXRsZSI6ICJYTUxUViBGaWxlIiwKICAgICAgInBsYWNlaG9sZGVyIjogIkZpbGUgcGF0aCBvciBVUkwgb2YgdGhlIFhNTFRWIiwKICAgICAgImRlc2NyaXB0aW9uIjogIiIKICAgIH0KICB9LAogICJtYXBwaW5nIjoKICB7CiAgICAidGFibGUiOgogICAgewogICAgICAiY2hObyI6ICJDaC4gTm8uIiwKICAgICAgImxvZ28iOiAiTG9nbyIsCiAgICAgICJjaGFubmVsTmFtZSI6ICJDaGFubmVsIE5hbWUiLAogICAgICAidXBkYXRlQ2hhbm5lbE5hbWVSZWdleCI6ICJVcGQuIFJ4LiIsCiAgICAgICJwbGF5bGlzdCI6ICJQbGF5bGlzdCIsCiAgICAgICJncm91cFRpdGxlIjogIkdyb3VwIFRpdGxlIiwKICAgICAgInhtbHR2RmlsZSI6ICJYTUxUViBGaWxlIiwKICAgICAgInhtbHR2SUQiOiAiWE1MVFYgSUQiLAogICAgICAidGltZXNoaWZ0IjogIlRpbWVzaGlmdCIKICAgIH0sCiAgICAiYWN0aXZlIjoKICAgIHsKICAgICAgInRpdGxlIjogIkFjdGl2ZSIsCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLAogICAgICAiZGVzY3JpcHRpb24iOiAiIgogICAgfSwKICAgICJjaGFubmVsTmFtZSI6CiAgICB7CiAgICAgICJ0aXRsZSI6ICJDaGFubmVsIE5hbWUiLAogICAgICAicGxhY2Vob2xkZXIiOiAiIiwKICAgICAgImRlc2NyaXB0aW9uIjogIiIKICAgIH0sCiAgICAiZGVzY3JpcHRpb24iOgogICAgewogICAgICAidGl0bGUiOiAiQ2hhbm5lbCBEZXNjcmlwdGlvbiIsCiAgICAgICJwbGFjZWhvbGRlciI6ICJVc2VkIGJ5IHRoZSBEdW1teSBhcyBhbiBYTUwgZGVzY3JpcHRpb24iLAogICAgICAiZGVzY3JpcHRpb24iOiAiIgogICAgfSwKICAgICJ1cGRhdGVDaGFubmVsTmFtZSI6CiAgICB7CiAgICAgICJ0aXRsZSI6ICJVcGRhdGUgQ2hhbm5lbCBOYW1lIiwKICAgICAgInBsYWNlaG9sZGVyIjogIiIsCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiCiAgICB9LAogICAgInVwZGF0ZUNoYW5uZWxOYW1lUmVnZXgiOgogICAgewogICAgICAidGl0bGUiOiAiQ2hhbm5lbCBuYW1lIHVwZGF0ZSByZWdleCIsCiAgICAgICJwbGFjZWhvbGRlciI6ICJGb3IgZXhhbXBsZSBeUFBWWyBcXFxcLV9dPzEuKiIsCiAgICAgICJkZXNjcmlwdGlvbiI6ICJPbiB1cGRhdGUsIGlmIGFueSBuZXcgY2hhbm5lbCBuYW1lIG1hdGNoZXMgdGhpcyByZWdleCwgcmVuYW1lIGN1cnJlbnQgY2hhbm5lbCB0byB0aGUgZmlyc3QgbWF0Y2hpbmcgbmFtZSIKICAgIH0sCiAgICAidXBkYXRlQ2hhbm5lbE5hbWVCeUdyb3VwUmVnZXgiOgogICAgewogICAgICAidGl0bGUiOiAiT25seSBieSBncm91cCByZWdleCIsCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLAogICAgICAiZGVzY3JpcHRpb24iOiAiUmVuYW1lIHRoaXMgY2hhbm5lbCBvbmx5IGlmIGN1cnJlbnQgdXNlci1kZWZpbmVkIGdyb3VwIG1hdGNoZXMgdGhpcyByZWdleCIKICAgIH0sCiAgICAidXBkYXRlQ2hhbm5lbEdyb3VwIjoKICAgIHsKICAgICAgInRpdGxlIjogIlVwZGF0ZSBDaGFubmVsIEdyb3VwIiwKICAgICAgInBsYWNlaG9sZGVyIjogIiIsCiAgICAgICJkZXNjcmlwdGlvbiI6ICJJZiBjaGVja2VkLCB1c2UgZ3JvdXAgZnJvbSB0aGUgZGF0YWJhc2UiCiAgICB9LAogICAgImNoYW5uZWxMb2dvIjoKICAgIHsKICAgICAgInRpdGxlIjogIkxvZ28gVVJMIiwKICAgICAgInBsYWNlaG9sZGVyIjogIiIsCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiCiAgICB9LAogICAgInVwZGF0ZUNoYW5uZWxMb2dvIjoKICAgIHsKICAgICAgInRpdGxlIjogIlVwZGF0ZSBDaGFubmVsIExvZ28iLAogICAgICAicGxhY2Vob2xkZXIiOiAiIiwKICAgICAgImRlc2NyaXB0aW9uIjogIiIKICAgIH0sCiAgICAiZXBnQ2F0ZWdvcnkiOgogICAgewogICAgICAidGl0bGUiOiAiRVBHIENhdGVnb3J5IiwKICAgICAgInBsYWNlaG9sZGVyIjogIiIsCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiCiAgICB9LAogICAgIm0zdUdyb3VwVGl0bGUiOgogICAgewogICAgICAidGl0bGUiOiAiR3JvdXAgVGl0bGUgKHh0ZXZlLm0zdSkiLAogICAgICAicGxhY2Vob2xkZXIiOiAiIiwKICAgICAgImRlc2NyaXB0aW9uIjogIiIKICAgIH0sCiAgICAieG1sdHZGaWxlIjoKICAgIHsKICAgICAgInRpdGxlIjogIlhNTFRWIEZpbGUiLAogICAgICAicGxhY2Vob2xkZXIiOiAiIiwKICAgICAgImRlc2NyaXB0aW9uIjogIiIKICAgIH0sCiAgICAieG1sdHZDaGFubmVsIjoKICAgIHsKICAgICAgInRpdGxlIjogIlhNTFRWIENoYW5uZWwiLAogICAgICAicGxhY2Vob2xkZXIiOiAiIiwKICAgICAgImRlc2NyaXB0aW9uIjogIiIKICAgIH0sCiAgICAidGltZXNoaWZ0IjoKICAgIHsKICAgICAgInRpdGxlIjogIlRpbWVzaGlmdCIsCiAgICAgICJwbGFjZWhvbGRlciI6ICIwIiwKICAgICAgImRlc2NyaXB0aW9uIjogIiIKICAgIH0KICB9LAogICJ1c2VycyI6CiAgewogICAgInRhYmxlIjoKICAgIHsKICAgICAgInVzZXJuYW1lIjogIlVzZXJuYW1lIiwKICAgICAgInBhc3N3b3JkIjogIlBhc3N3b3JkIiwKICAgICAgIndlYiI6ICJXRUIiLAogICAgICAicG1zIjogIlBNUyIsCiAgICAgICJtM3UiOiAiTTNVIiwKICAgICAgInhtbCI6ICJYTUwiLAogICAgICAiYXBpIjogIkFQSSIKICAgIH0sCiAgICAidXNlcm5hbWUiOgogICAgewogICAgICAidGl0bGUiOiAiVXNlcm5hbWUiLAogICAgICAicGxhY2Vob2xkZXIiOiAiVXNlcm5hbWUiLAogICAgICAiZGVzY3JpcHRpb24iOiAiIgogICAgfSwKICAgICJwYXNzd29yZCI6CiAgICB7CiAgICAgICJ0aXRsZSI6ICJQYXNzd29yZCIsCiAgICAgICJwbGFjZWhvbGRlciI6ICJQYXNzd29yZCIsCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiCiAgICB9LAogICAgImNvbmZpcm0iOgogICAgewogICAgICAidGl0bGUiOiAiQ29uZmlybSIsCiAgICAgICJwbGFjZWhvbGRlciI6ICJQYXNzd29yZCBjb25maXJtIiwKICAgICAgImRlc2NyaXB0aW9uIjogIiIKICAgIH0sCiAgICAid2ViIjoKICAgIHsKICAgICAgInRpdGxlIjogIldlYiBBY2Nlc3MiLAogICAgICAicGxhY2Vob2xkZXIiOiAiIiwKICAgICAgImRlc2NyaXB0aW9uIjogIiIKICAgIH0sCiAgICAicG1zIjoKICAgIHsKICAgICAgInRpdGxlIjogIlBNUyBBY2Nlc3MiLAogICAgICAicGxhY2Vob2xkZXIiOiAiIiwKICAgICAgImRlc2NyaXB0aW9uIjogIiIKICAgIH0sCiAgICAibTN1IjoKICAgIHsKICAgICAgInRpdGxlIjogIk0zVSBBY2Nlc3MiLAogICAgICAicGxhY2Vob2xkZXIiOiAiIiwKICAgICAgImRlc2NyaXB0aW9uIjogIiIKICAgIH0sCiAgICAieG1sIjoKICAgIHsKICAgICAgInRpdGxlIjogIlhNTCBBY2Nlc3MiLAogICAgICAicGxhY2Vob2xkZXIiOiAiIiwKICAgICAgImRlc2NyaXB0aW9uIjogIiIKICAgIH0sCiAgICAiYXBpIjoKICAgIHsKICAgICAgInRpdGxlIjogIkFQSSBBY2Nlc3MiLAogICAgICAicGxhY2Vob2xkZXIiOiAiIiwKICAgICAgImRlc2NyaXB0aW9uIjogIiIKICAgIH0KICB9LAogICJzZXR0aW5ncyI6CiAgewogICAgImNhdGVnb3J5IjoKICAgIHsKICAgICAgImdlbmVyYWwiOiAiR2VuZXJhbCIsCiAgICAgICJtYXBwaW5nIjogIk1hcHBpbmciLAogICAgICAiZmlsZXMiOiAiRmlsZXMiLAogICAgICAic3RyZWFtaW5nIjogIlN0cmVhbWluZyIsCiAgICAgICJiYWNrdXAiOiAiQmFja3VwIiwKICAgICAgImF1dGhlbnRpY2F0aW9uIjogIkF1dGhlbnRpY2F0aW9uIgogICAgfSwKICAgICJ1cGRhdGUiOgogICAgewogICAgICAidGl0bGUiOiAiU2NoZWR1bGUgZm9yIHVwZGF0aW5nIChQbGF5bGlzdCwgWE1MVFYsIEJhY2t1cCkiLAogICAgICAicGxhY2Vob2xkZXIiOiAiMDAwMCwxMDAwLDIwMDAiLAogICAgICAiZGVzY3JpcHRpb24iOiAiVGltZSBpbiAyNCBob3VyIGZvcm1hdCAoMDgwMCA9IDg6MDAgYW0pLiBNb3JlIHRpbWVzIGNhbiBiZSBlbnRlcmVkIGNvbW1hIHNlcGFyYXRlZC4gTGVhdmUgdGhpcyBmaWVsZCBlbXB0eSBpZiBubyB1cGRhdGVzIGFyZSB0byBiZSBjYXJyaWVkIG91dC4iCiAgICB9LAogICAgImFwaSI6CiAgICB7CiAgICAgICJ0aXRsZSI6ICJBUEkgSW50ZXJmYWNlIiwKICAgICAgImRlc2NyaXB0aW9uIjogIlZpYSBBUEkgaW50ZXJmYWNlIGl0IGlzIHBvc3NpYmxlIHRvIHNlbmQgY29tbWFuZHMgdG8geFRlVmUuIEFQSSBkb2N1bWVudGF0aW9uIGlzIDxhIGhyZWY9J2h0dHBzOi8vZ2l0aHViLmNvbS94dGV2ZS1wcm9qZWN0L3hUZVZlLURvY3VtZW50YXRpb24vYmxvYi9tYXN0ZXIvZW4vY29uZmlndXJhdGlvbi5tZCNhcGknPmhlcmU8L2E+IgogICAgfSwKICAgICJjbGVhclhNTFRWQ2FjaGUiOgogICAgewogICAgICAidGl0bGUiOiAiQ2xlYXIgWE1MVFYgY2FjaGUiLAogICAgICAiZGVzY3JpcHRpb24iOiAiSWYgY2hlY2tlZCwgZG8gbm90IGtlZXAgWE1MVFYgY2FjaGUgaW4gbWVtb3J5Ljxicj5TaWduaWZpY2FsbHkgcmVkdWNlcyBSQU0gdXNhZ2UgaW4gaWRsZSBtb2RlLDxicj5idXQgc2lnbmlmaWNhbGx5IHNsb3dpbmcgZG93biBldmVyeSBzdWJzZXF1ZW50IHVwZGF0ZSBpbiBYRVBHIGRhdGFiYXNlLiIKICAgIH0sCiAgICAiZGVmYXVsdE1pc3NpbmdFUEciOgogICAgewogICAgICAidGl0bGUiOiAiRmlsbCBNaXNzaW5nIEVQRyBEYXRhIiwKICAgICAgImRlc2NyaXB0aW9uIjogIldoZW4gdGhlcmUgaXMgbm8gbWF0Y2hpbmcgRVBHIGRhdGEgZm9yIGNoYW5uZWwsIDxicj5hdXRvZmlsbCB3aXRoIHhUZVZlIGR1bW15IEVQRyBkYXRhPyIKICAgIH0sCiAgICAiZW5hYmxlTWFwcGVkQ2hhbm5lbHMiOiB7CiAgICAgICJ0aXRsZSI6ICJFbmFibGUgbWFwcGVkIGNoYW5uZWxzIiwKICAgICAgImRlc2NyaXB0aW9uIjogIkF1dG9tYXRpY2FsbHkgZW5hYmxlIGNoYW5uZWxzIHdpdGggYXNzaWduZWQgRVBHIGRhdGEiCiAgICB9LAogICAgImRpc2FsbG93VVJMRHVwbGljYXRlcyI6CiAgICB7CiAgICAgICJ0aXRsZSI6ICJEaXNhbGxvdyBVUkwgZHVwbGljYXRlcyIsCiAgICAgICJkZXNjcmlwdGlvbiI6ICJJZiBjaGVja2VkLCBkbyBub3QgYWRkIGEgbmV3IGNoYW5uZWwgZnJvbSBwbGF5bGlzdCBpZiBjaGFubmVsIHdpdGggc3VjaCBVUkwgYWxyZWFkeSBleGlzdHMiCiAgICB9LAogICAgImVwZ1NvdXJjZSI6CiAgICB7CiAgICAgICJ0aXRsZSI6ICJFUEcgU291cmNlIiwKICAgICAgImRlc2NyaXB0aW9uIjogIlBNUzo8YnI+LSBVc2UgRVBHIGRhdGEgZnJvbSBQbGV4IG9yIEVtYnkgPGJyPjxicj5YRVBHOjxicj4tIFVzZSBvZiBvbmUgb3IgbW9yZSBYTUxUViBmaWxlczxicj4tIENoYW5uZWwgbWFuYWdlbWVudDxicj4tIE0zVSAvIFhNTFRWIGV4cG9ydCAoSFRUUCBsaW5rIGZvciBJUFRWIGFwcHMpIgogICAgfSwKICAgICJ0dW5lciI6CiAgICB7CiAgICAgICJ0aXRsZSI6ICJOdW1iZXIgb2YgVHVuZXJzIiwKICAgICAgImRlc2NyaXB0aW9uIjogIk51bWJlciBvZiBwYXJhbGxlbCBjb25uZWN0aW9ucyB0aGF0IGNhbiBiZSBlc3RhYmxpc2hlZCB0byB0aGUgcHJvdmlkZXIuPGJyPkF2YWlsYWJsZSBmb3I6IFBsZXgsIEVtYnkgKEhESFIpLCBNM1UgKHdpdGggYWN0aXZlIGJ1ZmZlcikuPGJyPkFmdGVyIGEgY2hhbmdlLCB4VGVWZSBtdXN0IGJlIGRlbGV0ZSBpbiB0aGUgUGxleCAvIEVtYnkgRFZSIHNldHRpbmdzIGFuZCBzZXQgdXAgYWdhaW4uIgogICAgfSwKICAgICJob3N0SVAiOgogICAgewogICAgICAidGl0bGUiOiAiSG9zdCBJUCIsCiAgICAgICJkZXNjcmlwdGlvbiI6ICJJUCBhZGRyZXNzIHhUZVZlIHdpbGwgdXNlIHRvIGZvcm0gTTNVIGFuZCBYTUxUViBmaWxlcyIKICAgIH0sCiAgICAidGxzTW9kZSI6IHsKICAgICAgInRpdGxlIjogIlRMUyAoSFRUUFMpIG1vZGUiLAogICAgICAiZGVzY3JpcHRpb24iOiAiQ2hhbmdlcyB3ZWIgc2VydmVyIHByb3RvY29sIHRvIEhUVFBTLjxicj5Gb3IgZGV0YWlscywgc2VlIDxhPmh0dHBzOi8vZ2l0aHViLmNvbS9TQ1AwMDIveFRlVmUjdGxzLW1vZGU8L2E+IgogICAgfSwKICAgICJmaWxlc1VwZGF0ZSI6CiAgICB7CiAgICAgICJ0aXRsZSI6ICJVcGRhdGVzIGFsbCBmaWxlcyBhdCBzdGFydHVwIiwKICAgICAgImRlc2NyaXB0aW9uIjogIlVwZGF0ZXMgYWxsIHBsYXlsaXN0cywgdHVuZXIgYW5kIFhNTFRWIGZpbGVzIGF0IHN0YXJ0dXAuIgogICAgfSwKICAgICJjYWNoZUltYWdlcyI6CiAgICB7CiAgICAgICJ0aXRsZSI6ICJJbWFnZSBDYWNoaW5nIiwKICAgICAgImRlc2NyaXB0aW9uIjogIkFsbCBpbWFnZXMgZnJvbSB0aGUgWE1MVFYgZmlsZSBhcmUgY2FjaGVkLCBhbGxvd2luZyBmYXN0ZXIgcmVuZGVyaW5nIG9mIHRoZSBncmlkIGluIHRoZSBjbGllbnQuPGJyPkRvd25sb2FkaW5nIHRoZSBpbWFnZXMgbWF5IHRha2UgYSB3aGlsZSBhbmQgd2lsbCBiZSBkb25lIGluIHRoZSBiYWNrZ3JvdW5kLiIKICAgIH0sCiAgICAicmVwbGFjZUVtcHR5SW1hZ2VzIjoKICAgIHsKICAgICAgInRpdGxlIjogIlJlcGxhY2UgbWlzc2luZyBwcm9ncmFtIGltYWdlcyIsCiAgICAgICJkZXNjcmlwdGlvbiI6ICJJZiB0aGUgcG9zdGVyIGluIHRoZSBYTUxUViBwcm9ncmFtIGlzIG1pc3NpbmcsIHRoZSBjaGFubmVsIGxvZ28gd2lsbCBiZSB1c2VkLiIKICAgIH0sCiAgICAieHRldmVBdXRvVXBkYXRlIjoKICAgIHsKICAgICAgInRpdGxlIjogIkF1dG9tYXRpYyB1cGRhdGUgb2YgeFRlVmUiLAogICAgICAiZGVzY3JpcHRpb24iOiAiSWYgYSBuZXcgdmVyc2lvbiBvZiB4VGVWZSBpcyBhdmFpbGFibGUsIGl0IHdpbGwgYmUgYXV0b21hdGljYWxseSBpbnN0YWxsZWQuIFRoZSB1cGRhdGVzIGFyZSBkb3dubG9hZGVkIGZyb20gR2l0SHViLiIKICAgIH0sCiAgICAic3RyZWFtQnVmZmVyaW5nIjoKICAgIHsKICAgICAgInRpdGxlIjogIlN0cmVhbSBCdWZmZXIiLAogICAgICAiZGVzY3JpcHRpb24iOiAiRnVuY3Rpb25zIG9mIHRoZSBidWZmZXI6PGJyPi0gVGhlIHN0cmVhbSBpcyBwYXNzZWQgZnJvbSB4VGVWZSwgRkZtcGVnIG9yIFZMQyB0byBQbGV4LCBFbWJ5IG9yIE0zVSBQbGF5ZXI8YnI+LSBTbWFsbCBqZXJraW5nIG9mIHRoZSBzdHJlYW1zIGNhbiBiZSBjb21wZW5zYXRlZDxicj4tIEhMUyAvIE0zVTggc3VwcG9ydDxicj4tIFJUUCAvIFJUUFMgc3VwcG9ydCAob25seSBGRm1wZWcgb3IgVkxDKTxicj4tIFJlLXN0cmVhbWluZzxicj4tIFNlcGFyYXRlIHR1bmVyIGxpbWl0IGZvciBlYWNoIHBsYXlsaXN0IiwKICAgICAgImluZm9fZmFsc2UiOiAiTm8gQnVmZmVyIChDbGllbnQgY29ubmVjdHMgdG8gdGhlIHN0cmVhbWluZyBzZXJ2ZXIpIiwKICAgICAgImluZm9feHRldmUiOiAieFRlVmUgY29ubmVjdHMgdG8gdGhlIHN0cmVhbWluZyBzZXJ2ZXIiLAogICAgICAiaW5mb19mZm1wZWciOiAiRkZtcGVnIGNvbm5lY3RzIHRvIHRoZSBzdHJlYW1pbmcgc2VydmVyIiwKICAgICAgImluZm9fdmxjIjogIlZMQyBjb25uZWN0cyB0byB0aGUgc3RyZWFtaW5nIHNlcnZlciIKCiAgICB9LAogICAgInVkcHh5IjoKICAgIHsKICAgICAgInRpdGxlIjogIlVEUHh5IGFkZHJlc3MiLAogICAgICAiZGVzY3JpcHRpb24iOiAiVGhlIGFkZHJlc3Mgb2YgeW91ciBVRFB4eSBzZXJ2ZXIuIElmIHNldCwgYW5kIHRoZSBjaGFubmVsIFVSTHMgaW4gdGhlIG0zdSBpcyBtdWx0aWNhc3QsIHhUZVZlIHdpbGwgcmV3cml0ZSBpdCBzbyB0aGF0IGl0IGlzIGFjY2Vzc2VkIHZpYSB0aGUgVURQeHkgc2VydmljZS4iLAogICAgICAicGxhY2Vob2xkZXIiOiAiaG9zdDpwb3J0IgogICAgfSwKICAgICJmZm1wZWdQYXRoIjoKICAgIHsKICAgICAgInRpdGxlIjogIkZGbXBlZyBCaW5hcnkgUGF0aCIsCiAgICAgICJkZXNjcmlwdGlvbiI6ICJQYXRoIHRvIEZGbXBlZyBiaW5hcnkuIiwKICAgICAgInBsYWNlaG9sZGVyIjogIi9wYXRoL3RvL2ZmbXBlZyIKICAgIH0sCiAgICAiZmZtcGVnT3B0aW9ucyI6CiAgICB7CiAgICAgICJ0aXRsZSI6ICJGRm1wZWcgT3B0aW9ucyIsCiAgICAgICJkZXNjcmlwdGlvbiI6ICJGRm1wZWcgb3B0aW9ucy48YnI+T25seSBjaGFuZ2UgaWYgeW91IGtub3cgd2hhdCB5b3UgYXJlIGRvaW5nLjxicj5MZWF2ZSBibGFuayB0byBzZXQgZGVmYXVsdCBzZXR0aW5ncy4iLAogICAgICAicGxhY2Vob2xkZXIiOiAiTGVhdmUgYmxhbmsgdG8gc2V0IGRlZmF1bHQgc2V0dGluZ3MiCiAgICB9LAogICAgInZsY1BhdGgiOgogICAgewogICAgICAidGl0bGUiOiAiVkxDIC8gQ1ZMQyBCaW5hcnkgUGF0aCIsCiAgICAgICJkZXNjcmlwdGlvbiI6ICJQYXRoIHRvIFZMQyAvIENWTEMgYmluYXJ5LiIsCiAgICAgICJwbGFjZWhvbGRlciI6ICIvcGF0aC90by9jdmxjIgogICAgfSwKICAgICJ2bGNPcHRpb25zIjoKICAgIHsKICAgICAgInRpdGxlIjogIlZMQyAvIENWTEMgT3B0aW9ucyIsCiAgICAgICJkZXNjcmlwdGlvbiI6ICJWTEMgLyBDVkxDIG9wdGlvbnMuPGJyPk9ubHkgY2hhbmdlIGlmIHlvdSBrbm93IHdoYXQgeW91IGFyZSBkb2luZy48YnI+TGVhdmUgYmxhbmsgdG8gc2V0IGRlZmF1bHQgc2V0dGluZ3MuIiwKICAgICAgInBsYWNlaG9sZGVyIjogIkxlYXZlIGJsYW5rIHRvIHNldCBkZWZhdWx0IHNldHRpbmdzIgogICAgfSwKICAgICJidWZmZXJTaXplIjoKICAgIHsKICAgICAgInRpdGxlIjogIkJ1ZmZlciBTaXplIiwKICAgICAgImRlc2NyaXB0aW9uIjogIkJ1ZmZlciBzaXplIGluIE1CLjxicj5NM1U4OiBJZiB0aGUgVFMgc2VnbWVudCBzbWFsbGVyIHRoZW4gdGhlIGJ1ZmZlciBzaXplLCB0aGUgZmlsZSBzaXplIG9mIHRoZSBzZWdtZW50IGlzIHVzZWQuIgogICAgfSwKICAgICJzdG9yZUJ1ZmZlckluUkFNIjoKICAgIHsKICAgICAgInRpdGxlIjogIlN0b3JlIGJ1ZmZlciBpbiBSQU0iLAogICAgICAiZGVzY3JpcHRpb24iOiAiSWYgY2hlY2tlZCwgd3JpdGUgYnVmZmVyIHRvIFJBTSBpbnN0ZWFkIG9mIHdyaXRpbmcgdG8gZGlzayIKICAgIH0sCiAgICAiYnVmZmVyVGltZW91dCI6CiAgICB7CiAgICAgICJ0aXRsZSI6ICJUaW1lb3V0IGZvciBuZXcgY2xpZW50IGNvbm5lY3Rpb25zIiwKICAgICAgImRlc2NyaXB0aW9uIjogIlRoZSB4VGVWZSBidWZmZXIgd2FpdHMgdW50aWwgbmV3IGNsaWVudCBjb25uZWN0aW9ucyBhcmUgZXN0YWJsaXNoZWQuIEhlbHBmdWwgZm9yIGZhc3QgY2hhbm5lbCBzd2l0Y2hpbmcuIFZhbHVlIGluIG1pbGxpc2Vjb25kcy4iLAogICAgICAicGxhY2Vob2xkZXIiOiAiMTAwIgogICAgfSwKICAgICJ1c2VyQWdlbnQiOgogICAgewogICAgICAidGl0bGUiOiAiVXNlciBBZ2VudCIsCiAgICAgICJkZXNjcmlwdGlvbiI6ICJVc2VyIEFnZW50IGZvciBIVFRQIHJlcXVlc3RzLiBGb3IgZXZlcnkgSFRUUCBjb25uZWN0aW9uLCB0aGlzIHZhbHVlIGlzIHVzZWQgZm9yIHRoZSB1c2VyIGFnZW50LiBTaG91bGQgb25seSBiZSBjaGFuZ2VkIGlmIHhUZVZlIGlzIGJsb2NrZWQuIiwKICAgICAgInBsYWNlaG9sZGVyIjogInhUZVZlIgogICAgfSwKICAgICJiYWNrdXBQYXRoIjoKICAgIHsKICAgICAgInRpdGxlIjogIkxvY2F0aW9uIGZvciBhdXRvbWF0aWMgYmFja3VwcyIsCiAgICAgICJwbGFjZWhvbGRlciI6ICIvbW50L2RhdGEvYmFja3VwL3h0ZXZlLyIsCiAgICAgICJkZXNjcmlwdGlvbiI6ICJCZWZvcmUgYW55IHVwZGF0ZSBvZiB0aGUgcHJvdmlkZXIgZGF0YSBieSB0aGUgc2NoZWR1bGUsIHhUZVZlIGNyZWF0ZXMgYSBiYWNrdXAuIFRoZSBwYXRoIGZvciB0aGUgYXV0b21hdGljIGJhY2t1cHMgY2FuIGJlIGNoYW5nZWQuIHhUZVZlIHJlcXVpcmVzIHdyaXRlIHBlcm1pc3Npb24gZm9yIHRoaXMgZm9sZGVyLiIKICAgIH0sCiAgICAidGVtcFBhdGgiOgogICAgewogICAgICAidGl0bGUiOiAiTG9jYXRpb24gZm9yIHRoZSB0ZW1wb3JhcnkgZmlsZXMiLAogICAgICAicGxhY2Vob2xkZXIiOiAiL3RtcC94dGV2ZS8iLAogICAgICAiZGVzY3JpcHRpb24iOiAiTG9jYXRpb24gZm9yIHRoZSBidWZmZXIgZmlsZXMuIgogICAgfSwKICAgICJiYWNrdXBLZWVwIjoKICAgIHsKICAgICAgInRpdGxlIjogIk51bWJlciBvZiBiYWNrdXBzIHRvIGtlZXAiLAogICAgICAiZGVzY3JpcHRpb24iOiAiTnVtYmVyIG9mIGJhY2t1cHMgdG8ga2VlcC4gT2xkZXIgYmFja3VwcyBhcmUgYXV0b21hdGljYWxseSBkZWxldGVkLiIKICAgIH0sCiAgICAiYXV0aGVudGljYXRpb25XRUIiOgogICAgewogICAgICAidGl0bGUiOiAiV0VCIEF1dGhlbnRpY2F0aW9uIiwKICAgICAgImRlc2NyaXB0aW9uIjogIkFjY2VzcyB0byB0aGUgd2ViIGludGVyZmFjZSBvbmx5IHBvc3NpYmxlIHdpdGggY3JlZGVudGlhbHMuIgogICAgfSwKICAgICJhdXRoZW50aWNhdGlvblBNUyI6CiAgICB7CiAgICAgICJ0aXRsZSI6ICJQTVMgQXV0aGVudGljYXRpb24iLAogICAgICAiZGVzY3JpcHRpb24iOiAiUGxleCByZXF1ZXN0cyBhcmUgb25seSBwb3NzaWJsZSB3aXRoIGF1dGhlbnRpY2F0aW9uLiA8YnI+PGI+V2FybmluZyEhITwvYj4gQWZ0ZXIgYWN0aXZhdGluZyB0aGlzIGZ1bmN0aW9uIHhUZVZlIG11c3QgYmUgZGVsZXRlIGluIHRoZSBQTVMgRFZSIHNldHRpbmdzIGFuZCBzZXQgdXAgYWdhaW4uIgogICAgfSwKICAgICJhdXRoZW50aWNhdGlvbk0zVSI6CiAgICB7CiAgICAgICJ0aXRsZSI6ICJNM1UgQXV0aGVudGljYXRpb24iLAogICAgICAiZGVzY3JpcHRpb24iOiAiRG93bmxvYWRpbmcgdGhlIHh0ZXZlLm0zdSBmaWxlIHZpYSBhbiBIVFRQIHJlcXVlc3QgaXMgb25seSBwb3NzaWJsZSB3aXRoIGF1dGhlbnRpY2F0aW9uLiIKICAgIH0sCiAgICAiYXV0aGVudGljYXRpb25YTUwiOgogICAgewogICAgICAidGl0bGUiOiAiWE1MIEF1dGhlbnRpY2F0aW9uIiwKICAgICAgImRlc2NyaXB0aW9uIjogIkRvd25sb2FkaW5nIHRoZSB4dGV2ZS54bWwgZmlsZSB2aWEgYW4gSFRUUCByZXF1ZXN0IGlzIG9ubHkgcG9zc2libGUgd2l0aCBhdXRoZW50aWNhdGlvbiIKICAgIH0sCiAgICAiYXV0aGVudGljYXRpb25BUEkiOgogICAgewogICAgICAidGl0bGUiOiAiQVBJIEF1dGhlbnRpY2F0aW9uIiwKICAgICAgImRlc2NyaXB0aW9uIjogIkFjY2VzcyB0byB0aGUgQVBJIGludGVyZmFjZSBpcyBvbmx5IHBvc3NpYmxlIHdpdGggYXV0aGVudGljYXRpb24uIgogICAgfQogIH0sCiAgIndpemFyZCI6CiAgewogICAgImVwZ1NvdXJjZSI6CiAgICB7CiAgICAgICJ0aXRsZSI6ICJFUEcgU291cmNlIiwKICAgICAgImRlc2NyaXB0aW9uIjogIlBNUzo8YnI+LSBVc2UgRVBHIGRhdGEgZnJvbSBQbGV4IG9yIEVtYnkgPGJyPjxicj5YRVBHOjxicj4tIFVzZSBvZiBvbmUgb3IgbW9yZSBYTUxUViBmaWxlczxicj4tIENoYW5uZWwgbWFuYWdlbWVudDxicj4tIE0zVSAvIFhNTFRWIGV4cG9ydCAoSFRUUCBsaW5rIGZvciBJUFRWIGFwcHMpIgogICAgfSwKICAgICJ0dW5lciI6CiAgICB7CiAgICAgICJ0aXRsZSI6ICJOdW1iZXIgb2YgdHVuZXJzIiwKICAgICAgImRlc2NyaXB0aW9uIjogIk51bWJlciBvZiBwYXJhbGxlbCBjb25uZWN0aW9ucyB0aGF0IGNhbiBiZSBlc3RhYmxpc2hlZCB0byB0aGUgcHJvdmlkZXIuPGJyPkF2YWlsYWJsZSBmb3I6IFBsZXgsIEVtYnkgKEhESFIpLCBNM1UgKHdpdGggYWN0aXZlIGJ1ZmZlcikuPGJyPkFmdGVyIGEgY2hhbmdlLCB4VGVWZSBtdXN0IGJlIGRlbGV0ZSBpbiB0aGUgUGxleCAvIEVtYnkgRFZSIHNldHRpbmdzIGFuZCBzZXQgdXAgYWdhaW4uIgogICAgfSwKICAgICJtM3UiOgogICAgewogICAgICAidGl0bGUiOiAiTTNVIFBsYXlsaXN0IiwKICAgICAgInBsYWNlaG9sZGVyIjogIkZpbGUgcGF0aCBvciBVUkwgb2YgdGhlIE0zVSIsCiAgICAgICJkZXNjcmlwdGlvbiI6ICJMb2NhbCBvciByZW1vdGUgcGxheWxpc3RzIgogICAgfSwKICAgICJ4bWx0diI6CiAgICB7CiAgICAgICJ0aXRsZSI6ICJYTUxUViBGaWxlIiwKICAgICAgInBsYWNlaG9sZGVyIjogIkZpbGUgcGF0aCBvciBVUkwgb2YgdGhlIFhNTFRWIiwKICAgICAgImRlc2NyaXB0aW9uIjogIkxvY2FsIG9yIHJlbW90ZSBYTUxUViBmaWxlIgogICAgfQogIH0sCiAgImxvZ2luIjoKICB7CiAgICAiZmFpbGVkIjogIlVzZXIgYXV0aGVudGljYXRpb24gZmFpbGVkIiwKICAgICJoZWFkbGluZSI6ICJMb2dpbiIsCiAgICAidXNlcm5hbWUiOgogICAgewogICAgICAidGl0bGUiOiAiVXNlcm5hbWUiLAogICAgICAicGxhY2Vob2xkZXIiOiAiVXNlcm5hbWUiCiAgICB9LAogICAgInBhc3N3b3JkIjoKICAgIHsKICAgICAgInRpdGxlIjogIlBhc3N3b3JkIiwKICAgICAgInBsYWNlaG9sZGVyIjogIlBhc3N3b3JkIgogICAgfQogIH0sCiAgImFjY291bnQiOgogIHsKICAgICJmYWlsZWQiOiAiUGFzc3dvcmQgZG9lcyBub3QgbWF0Y2giLAogICAgImhlYWRsaW5lIjogIkNyZWF0ZSB1c2VyIGFjY291bnQiLAogICAgInVzZXJuYW1lIjoKICAgIHsKICAgICAgInRpdGxlIjogIlVzZXJuYW1lIiwKICAgICAgInBsYWNlaG9sZGVyIjogIlVzZXJuYW1lIgogICAgfSwKICAgICJwYXNzd29yZCI6CiAgICB7CiAgICAgICJ0aXRsZSI6ICJQYXNzd29yZCIsCiAgICAgICJwbGFjZWhvbGRlciI6ICJQYXNzd29yZCIKICAgIH0sCiAgICAiY29uZmlybSI6CiAgICB7CiAgICAgICJ0aXRsZSI6ICJDb25maXJtIiwKICAgICAgInBsYWNlaG9sZGVyIjogIkNvbmZpcm0iCiAgICB9CiAgfQp9" - webUI["html/login.html"] = "PCFkb2N0eXBlIGh0bWw+CjxodG1sPgogIDxoZWFkPgogICAgPG1ldGEgY2hhcnNldD0idXRmLTgiPgogICAgPG1ldGEgbmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9IndpZHRoPWRldmljZS13aWR0aCwgaW5pdGlhbC1zY2FsZT0xLjAiIC8+IAogICAgPHRpdGxlPnhUZVZlPC90aXRsZT4KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iY3NzL3NjcmVlbi5jc3MiIHR5cGU9InRleHQvY3NzIj4KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iY3NzL2Jhc2UuY3NzIiB0eXBlPSJ0ZXh0L2NzcyI+CiAgICA8c2NyaXB0IGxhbmd1YWdlPSJqYXZhc2NyaXB0IiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ianMvbmV0d29ya190cy5qcyI+PC9zY3JpcHQ+CiAgICA8c2NyaXB0IGxhbmd1YWdlPSJqYXZhc2NyaXB0IiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ianMvYXV0aGVudGljYXRpb25fdHMuanMiPjwvc2NyaXB0PgogIDwvaGVhZD4KCiAgICA8Ym9keT4KICAgICAgICAgIAogICAgICA8ZGl2IGlkPSJoZWFkZXIiIGNsYXNzPSJpbWdDZW50ZXIiPjwvZGl2PgoKICAgICAgPGRpdiBpZD0iYm94Ij4KCiAgICAgICAgPGRpdiBpZD0iaGVhZGxpbmUiPgogICAgICAgICAgPGgxIGlkPSJoZWFkLXRleHQiIGNsYXNzPSJjZW50ZXIiPnt7LmxvZ2luLmhlYWRsaW5lfX08L2gxPgogICAgICAgIDwvZGl2PgoKICAgICAgICA8cCBpZD0iZXJyIiBjbGFzcz0iZXJyb3JNc2cgY2VudGVyIj57ey5hdXRoZW50aWNhdGlvbkVycn19PC9wPgoKICAgICAgICA8ZGl2IGlkPSJjb250ZW50Ij4KCiAgICAgICAgICAgIDxmb3JtIGlkPSJhdXRoZW50aWNhdGlvbiIgYWN0aW9uPSIiIG1ldGhvZD0icG9zdCI+CgogICAgICAgICAgICAgIDxoNT57ey5sb2dpbi51c2VybmFtZS50aXRsZX19OjwvaDU+CiAgICAgICAgICAgICAgPGlucHV0IGlkPSJ1c2VybmFtZSIgdHlwZT0idGV4dCIgbmFtZT0idXNlcm5hbWUiIHBsYWNlaG9sZGVyPSJVc2VybmFtZSIgdmFsdWU9IiI+CiAgICAgICAgICAgICAgPGg1Pnt7LmxvZ2luLnBhc3N3b3JkLnRpdGxlfX06PC9oNT4KICAgICAgICAgICAgICA8aW5wdXQgaWQ9InBhc3N3b3JkIiB0eXBlPSJwYXNzd29yZCIgbmFtZT0icGFzc3dvcmQiIHBsYWNlaG9sZGVyPSJQYXNzd29yZCIgdmFsdWU9IiI+CgogICAgICAgICAgICA8L2Zvcm0+CgogICAgICAgIDwvZGl2PgoKICAgICAgICA8ZGl2IGlkPSJib3gtZm9vdGVyIj4KICAgICAgICAgIDxpbnB1dCBpZD0ic3VibWl0IiBjbGFzcz0iIiB0eXBlPSJidXR0b24iIHZhbHVlPSJ7ey5idXR0b24ubG9naW59fSIgb25jbGljaz0iamF2YXNjcmlwdDogbG9naW4oKTsiPgogICAgICAgIDwvZGl2PgogICAgICAgIAogICAgICA8L2Rpdj4KCiAgICA8L2JvZHk+CiAgICAKPC9odG1sPg==" - webUI["html/maintenance.html"] = "PCFkb2N0eXBlIGh0bWw+CjxodG1sPgogIDxoZWFkPgogICAgPG1ldGEgY2hhcnNldD0idXRmLTgiPgogICAgPG1ldGEgbmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9IndpZHRoPWRldmljZS13aWR0aCwgaW5pdGlhbC1zY2FsZT0xLjAiIC8+IAogICAgPHRpdGxlPnhUZVZlPC90aXRsZT4KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iY3NzL3NjcmVlbi5jc3MiIHR5cGU9InRleHQvY3NzIj4KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iY3NzL2Jhc2UuY3NzIiB0eXBlPSJ0ZXh0L2NzcyI+CiAgPC9oZWFkPgoKICAgIDxib2R5PgogICAgICAgICAgCiAgICAgIDxkaXYgaWQ9ImhlYWRlciIgY2xhc3M9ImltZ0NlbnRlciI+PC9kaXY+CgogICAgICA8ZGl2IGlkPSJib3giPgoKICAgICAgICA8ZGl2IGlkPSJoZWFkbGluZSI+CiAgICAgICAgICA8aDEgaWQ9ImhlYWQtdGV4dCIgY2xhc3M9ImNlbnRlciI+TWFpbnRlbmFuY2U8L2gxPiAgICAgIAogICAgICAgIDwvZGl2PiAgCgogICAgICAgIDxkaXYgaWQ9ImNvbnRlbnQiPgogICAgICAgICAgeFRlVmUgaXMgdXBkYXRpbmcgdGhlIGRhdGFiYXNlLCBwbGVhc2UgdHJ5IGFnYWluIGxhdGVyLgogICAgICAgIDwvZGl2PgoKICAgICAgICA8ZGl2IGlkPSJib3gtZm9vdGVyIj48L2Rpdj4KICAgICAgICAKICAgICAgPC9kaXY+CgogICAgPC9ib2R5Pgo8L2h0bWw+" + webUI["html/js/settings_ts.js"] = "Y2xhc3MgU2V0dGluZ3NDYXRlZ29yeSB7CiAgICBjb25zdHJ1Y3RvcigpIHsKICAgICAgICB0aGlzLkRvY3VtZW50SUQgPSAiY29udGVudF9zZXR0aW5ncyI7CiAgICB9CiAgICBjcmVhdGVDYXRlZ29yeUhlYWRsaW5lKHZhbHVlKSB7CiAgICAgICAgdmFyIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJINCIpOwogICAgICAgIGVsZW1lbnQuaW5uZXJIVE1MID0gdmFsdWU7CiAgICAgICAgcmV0dXJuIGVsZW1lbnQ7CiAgICB9CiAgICBjcmVhdGVIUigpIHsKICAgICAgICB2YXIgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIkhSIik7CiAgICAgICAgcmV0dXJuIGVsZW1lbnQ7CiAgICB9CiAgICBjcmVhdGVTZXR0aW5ncyhzZXR0aW5nc0tleSkgewogICAgICAgIHZhciBzZXR0aW5nID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVFIiKTsKICAgICAgICB2YXIgY29udGVudCA9IG5ldyBQb3B1cENvbnRlbnQoKTsKICAgICAgICB2YXIgZGF0YSA9IFNFUlZFUlsic2V0dGluZ3MiXVtzZXR0aW5nc0tleV07CiAgICAgICAgc3dpdGNoIChzZXR0aW5nc0tleSkgewogICAgICAgICAgICAvLyBUZXh0IGlucHV0cwogICAgICAgICAgICBjYXNlICJ1cGRhdGUiOgogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7CiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLnVwZGF0ZS50aXRsZX19IiArICI6IjsKICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsKICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCAidXBkYXRlIiwgZGF0YS50b1N0cmluZygpKTsKICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3suc2V0dGluZ3MudXBkYXRlLnBsYWNlaG9sZGVyfX0iKTsKICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsKICAgICAgICAgICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQoaW5wdXQpOwogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOwogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJiYWNrdXAucGF0aCI6CiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsKICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MuYmFja3VwUGF0aC50aXRsZX19IiArICI6IjsKICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsKICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCAiYmFja3VwLnBhdGgiLCBkYXRhKTsKICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3suc2V0dGluZ3MuYmFja3VwUGF0aC5wbGFjZWhvbGRlcn19Iik7CiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7CiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsKICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsKICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAidGVtcC5wYXRoIjoKICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOwogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy50ZW1wUGF0aC50aXRsZX19IiArICI6IjsKICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsKICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCAidGVtcC5wYXRoIiwgZGF0YSk7CiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnNldHRpbmdzLnRtcFBhdGgucGxhY2Vob2xkZXJ9fSIpOwogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOwogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7CiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7CiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgInVzZXIuYWdlbnQiOgogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7CiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLnVzZXJBZ2VudC50aXRsZX19IiArICI6IjsKICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsKICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCAidXNlci5hZ2VudCIsIGRhdGEpOwogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5zZXR0aW5ncy51c2VyQWdlbnQucGxhY2Vob2xkZXJ9fSIpOwogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOwogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7CiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7CiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgImJ1ZmZlci50aW1lb3V0IjoKICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOwogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5idWZmZXJUaW1lb3V0LnRpdGxlfX0iICsgIjoiOwogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOwogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsICJidWZmZXIudGltZW91dCIsIGRhdGEpOwogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5zZXR0aW5ncy5idWZmZXJUaW1lb3V0LnBsYWNlaG9sZGVyfX0iKTsKICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsKICAgICAgICAgICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQoaW5wdXQpOwogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOwogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJmZm1wZWcucGF0aCI6CiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsKICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MuZmZtcGVnUGF0aC50aXRsZX19IiArICI6IjsKICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsKICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCAiZmZtcGVnLnBhdGgiLCBkYXRhKTsKICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3suc2V0dGluZ3MuZmZtcGVnUGF0aC5wbGFjZWhvbGRlcn19Iik7CiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7CiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsKICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsKICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAiZmZtcGVnLm9wdGlvbnMiOgogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7CiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmZmbXBlZ09wdGlvbnMudGl0bGV9fSIgKyAiOiI7CiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7CiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgImZmbXBlZy5vcHRpb25zIiwgZGF0YSk7CiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnNldHRpbmdzLmZmbXBlZ09wdGlvbnMucGxhY2Vob2xkZXJ9fSIpOwogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOwogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7CiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7CiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgInZsYy5wYXRoIjoKICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOwogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy52bGNQYXRoLnRpdGxlfX0iICsgIjoiOwogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOwogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsICJ2bGMucGF0aCIsIGRhdGEpOwogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5zZXR0aW5ncy52bGNQYXRoLnBsYWNlaG9sZGVyfX0iKTsKICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsKICAgICAgICAgICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQoaW5wdXQpOwogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOwogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJ2bGMub3B0aW9ucyI6CiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsKICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MudmxjT3B0aW9ucy50aXRsZX19IiArICI6IjsKICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsKICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCAidmxjLm9wdGlvbnMiLCBkYXRhKTsKICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3suc2V0dGluZ3MudmxjT3B0aW9ucy5wbGFjZWhvbGRlcn19Iik7CiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7CiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsKICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsKICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgLy8gQ2hlY2tib3hlcwogICAgICAgICAgICBjYXNlICJ0bHNNb2RlIjoKICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOwogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy50bHNNb2RlLnRpdGxlfX0iICsgIjoiOwogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOwogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChzZXR0aW5nc0tleSk7CiAgICAgICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YTsKICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsKICAgICAgICAgICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQoaW5wdXQpOwogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOwogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJkaXNhbGxvd1VSTER1cGxpY2F0ZXMiOgogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7CiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmRpc2FsbG93VVJMRHVwbGljYXRlcy50aXRsZX19IiArICI6IjsKICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsKICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goc2V0dGluZ3NLZXkpOwogICAgICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGE7CiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7CiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsKICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsKICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAiYXV0aGVudGljYXRpb24ud2ViIjoKICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOwogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5hdXRoZW50aWNhdGlvbldFQi50aXRsZX19IiArICI6IjsKICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsKICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goc2V0dGluZ3NLZXkpOwogICAgICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGE7CiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7CiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsKICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsKICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAiYXV0aGVudGljYXRpb24ucG1zIjoKICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOwogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5hdXRoZW50aWNhdGlvblBNUy50aXRsZX19IiArICI6IjsKICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsKICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goc2V0dGluZ3NLZXkpOwogICAgICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGE7CiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7CiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsKICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsKICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAiYXV0aGVudGljYXRpb24ubTN1IjoKICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOwogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5hdXRoZW50aWNhdGlvbk0zVS50aXRsZX19IiArICI6IjsKICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsKICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goc2V0dGluZ3NLZXkpOwogICAgICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGE7CiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7CiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsKICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsKICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAiYXV0aGVudGljYXRpb24ueG1sIjoKICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOwogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5hdXRoZW50aWNhdGlvblhNTC50aXRsZX19IiArICI6IjsKICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsKICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goc2V0dGluZ3NLZXkpOwogICAgICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGE7CiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7CiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsKICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsKICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAiYXV0aGVudGljYXRpb24uYXBpIjoKICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOwogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5hdXRoZW50aWNhdGlvbkFQSS50aXRsZX19IiArICI6IjsKICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsKICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goc2V0dGluZ3NLZXkpOwogICAgICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGE7CiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7CiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsKICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsKICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAiZmlsZXMudXBkYXRlIjoKICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOwogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5maWxlc1VwZGF0ZS50aXRsZX19IiArICI6IjsKICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsKICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goc2V0dGluZ3NLZXkpOwogICAgICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGE7CiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7CiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsKICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsKICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAiY2FjaGUuaW1hZ2VzIjoKICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOwogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5jYWNoZUltYWdlcy50aXRsZX19IiArICI6IjsKICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsKICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goc2V0dGluZ3NLZXkpOwogICAgICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGE7CiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7CiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsKICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsKICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAieGVwZy5yZXBsYWNlLm1pc3NpbmcuaW1hZ2VzIjoKICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOwogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5yZXBsYWNlRW1wdHlJbWFnZXMudGl0bGV9fSIgKyAiOiI7CiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7CiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KHNldHRpbmdzS2V5KTsKICAgICAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhOwogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOwogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7CiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7CiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgInN0b3JlQnVmZmVySW5SQU0iOgogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7CiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLnN0b3JlQnVmZmVySW5SQU0udGl0bGV9fSIgKyAiOiI7CiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7CiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KHNldHRpbmdzS2V5KTsKICAgICAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhOwogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOwogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7CiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7CiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgInh0ZXZlQXV0b1VwZGF0ZSI6CiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsKICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MueHRldmVBdXRvVXBkYXRlLnRpdGxlfX0iICsgIjoiOwogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOwogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChzZXR0aW5nc0tleSk7CiAgICAgICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YTsKICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsKICAgICAgICAgICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQoaW5wdXQpOwogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOwogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJjbGVhclhNTFRWQ2FjaGUiOgogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7CiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmNsZWFyWE1MVFZDYWNoZS50aXRsZX19IiArICI6IjsKICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsKICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goc2V0dGluZ3NLZXkpOwogICAgICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGE7CiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7CiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsKICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsKICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAiYXBpIjoKICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOwogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5hcGkudGl0bGV9fSIgKyAiOiI7CiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7CiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KHNldHRpbmdzS2V5KTsKICAgICAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhOwogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOwogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7CiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7CiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgImVuYWJsZU1hcHBlZENoYW5uZWxzIjoKICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOwogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5lbmFibGVNYXBwZWRDaGFubmVscy50aXRsZX19IiArICI6IjsKICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsKICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goc2V0dGluZ3NLZXkpOwogICAgICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGE7CiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7CiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsKICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsKICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgLy8gU2VsZWN0CiAgICAgICAgICAgIGNhc2UgImhvc3RJUCI6CiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsKICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MuaG9zdElQLnRpdGxlfX0iICsgIjoiOwogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOwogICAgICAgICAgICAgICAgdmFyIHRleHQgPSBTRVJWRVJbImlwQWRkcmVzc2VzVjRIb3N0Il07CiAgICAgICAgICAgICAgICB2YXIgdmFsdWVzID0gU0VSVkVSWyJpcEFkZHJlc3Nlc1Y0SG9zdCJdOwogICAgICAgICAgICAgICAgdmFyIHNlbGVjdCA9IGNvbnRlbnQuY3JlYXRlU2VsZWN0KHRleHQsIHZhbHVlcywgZGF0YSwgc2V0dGluZ3NLZXkpOwogICAgICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsKICAgICAgICAgICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQoc2VsZWN0KTsKICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsKICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAiaG9zdE5hbWUiOgogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7CiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmhvc3ROYW1lLnRpdGxlfX0iICsgIjoiOwogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOwogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsICJob3N0TmFtZSIsIGRhdGEpOwogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5zZXR0aW5ncy5ob3N0TmFtZS5wbGFjZWhvbGRlcn19Iik7CiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7CiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsKICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsKICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAidHVuZXIiOgogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7CiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLnR1bmVyLnRpdGxlfX0iICsgIjoiOwogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOwogICAgICAgICAgICAgICAgdmFyIHRleHQgPSBuZXcgQXJyYXkoKTsKICAgICAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBuZXcgQXJyYXkoKTsKICAgICAgICAgICAgICAgIGZvciAodmFyIGkgPSAxOyBpIDw9IDEwMDsgaSsrKSB7CiAgICAgICAgICAgICAgICAgICAgdGV4dC5wdXNoKGkpOwogICAgICAgICAgICAgICAgICAgIHZhbHVlcy5wdXNoKGkpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgdmFyIHNlbGVjdCA9IGNvbnRlbnQuY3JlYXRlU2VsZWN0KHRleHQsIHZhbHVlcywgZGF0YSwgc2V0dGluZ3NLZXkpOwogICAgICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsKICAgICAgICAgICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQoc2VsZWN0KTsKICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsKICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAiZXBnU291cmNlIjoKICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOwogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5lcGdTb3VyY2UudGl0bGV9fSIgKyAiOiI7CiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7CiAgICAgICAgICAgICAgICB2YXIgdGV4dCA9IFsiUE1TIiwgIlhFUEciXTsKICAgICAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBbIlBNUyIsICJYRVBHIl07CiAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCBkYXRhLCBzZXR0aW5nc0tleSk7CiAgICAgICAgICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOwogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChzZWxlY3QpOwogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOwogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJkZWZhdWx0TWlzc2luZ0VQRyI6CiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsKICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MuZGVmYXVsdE1pc3NpbmdFUEcudGl0bGV9fSIgKyAiOiI7CiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7CiAgICAgICAgICAgICAgICB2YXIgdGV4dCA9IFsKICAgICAgICAgICAgICAgICAgICAiLSIsICIzMCBNaW51dGVzICgzMF9NaW51dGVzKSIsICI2MCBNaW51dGVzICg2MF9NaW51dGVzKSIsICI5MCBNaW51dGVzICg5MF9NaW51dGVzKSIsCiAgICAgICAgICAgICAgICAgICAgIjEyMCBNaW51dGVzICgxMjBfTWludXRlcykiLCAiMTgwIE1pbnV0ZXMgKDE4MF9NaW51dGVzKSIsICIyNDAgTWludXRlcyAoMjQwX01pbnV0ZXMpIiwgIjM2MCBNaW51dGVzICgzNjBfTWludXRlcykiCiAgICAgICAgICAgICAgICBdOwogICAgICAgICAgICAgICAgdmFyIHZhbHVlcyA9IFsKICAgICAgICAgICAgICAgICAgICAiLSIsICIzMF9NaW51dGVzIiwgIjYwX01pbnV0ZXMiLCAiOTBfTWludXRlcyIsICIxMjBfTWludXRlcyIsICIxODBfTWludXRlcyIsICIyNDBfTWludXRlcyIsICIzNjBfTWludXRlcyIKICAgICAgICAgICAgICAgIF07CiAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCBkYXRhLCBzZXR0aW5nc0tleSk7CiAgICAgICAgICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOwogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChzZWxlY3QpOwogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOwogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJiYWNrdXAua2VlcCI6CiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsKICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MuYmFja3VwS2VlcC50aXRsZX19IiArICI6IjsKICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsKICAgICAgICAgICAgICAgIHZhciB0ZXh0ID0gWyI1IiwgIjEwIiwgIjIwIiwgIjMwIiwgIjQwIiwgIjUwIl07CiAgICAgICAgICAgICAgICB2YXIgdmFsdWVzID0gWyI1IiwgIjEwIiwgIjIwIiwgIjMwIiwgIjQwIiwgIjUwIl07CiAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCBkYXRhLCBzZXR0aW5nc0tleSk7CiAgICAgICAgICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOwogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChzZWxlY3QpOwogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOwogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJidWZmZXIuc2l6ZS5rYiI6CiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsKICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MuYnVmZmVyU2l6ZS50aXRsZX19IiArICI6IjsKICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsKICAgICAgICAgICAgICAgIHZhciB0ZXh0ID0gWyIwLjUgTUIiLCAiMSBNQiIsICIyIE1CIiwgIjMgTUIiLCAiNCBNQiIsICI1IE1CIiwgIjYgTUIiLCAiNyBNQiIsICI4IE1CIl07CiAgICAgICAgICAgICAgICB2YXIgdmFsdWVzID0gWyI1MTIiLCAiMTAyNCIsICIyMDQ4IiwgIjMwNzIiLCAiNDA5NiIsICI1MTIwIiwgIjYxNDQiLCAiNzE2OCIsICI4MTkyIl07CiAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCBkYXRhLCBzZXR0aW5nc0tleSk7CiAgICAgICAgICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOwogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChzZWxlY3QpOwogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOwogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJidWZmZXIiOgogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7CiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLnN0cmVhbUJ1ZmZlcmluZy50aXRsZX19IiArICI6IjsKICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsKICAgICAgICAgICAgICAgIHZhciB0ZXh0ID0gWyJ7ey5zZXR0aW5ncy5zdHJlYW1CdWZmZXJpbmcuaW5mb19mYWxzZX19IiwgInhUZVZlOiAoe3suc2V0dGluZ3Muc3RyZWFtQnVmZmVyaW5nLmluZm9feHRldmV9fSkiLCAiRkZtcGVnOiAoe3suc2V0dGluZ3Muc3RyZWFtQnVmZmVyaW5nLmluZm9fZmZtcGVnfX0pIiwgIlZMQzogKHt7LnNldHRpbmdzLnN0cmVhbUJ1ZmZlcmluZy5pbmZvX3ZsY319KSJdOwogICAgICAgICAgICAgICAgdmFyIHZhbHVlcyA9IFsiLSIsICJ4dGV2ZSIsICJmZm1wZWciLCAidmxjIl07CiAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCBkYXRhLCBzZXR0aW5nc0tleSk7CiAgICAgICAgICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOwogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChzZWxlY3QpOwogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOwogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJ1ZHB4eSI6CiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsKICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MudWRweHkudGl0bGV9fSIgKyAiOiI7CiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7CiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgInVkcHh5IiwgZGF0YSk7CiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnNldHRpbmdzLnVkcHh5LnBsYWNlaG9sZGVyfX0iKTsKICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsKICAgICAgICAgICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQoaW5wdXQpOwogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOwogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgIH0KICAgICAgICByZXR1cm4gc2V0dGluZzsKICAgIH0KICAgIGNyZWF0ZURlc2NyaXB0aW9uKHNldHRpbmdzS2V5KSB7CiAgICAgICAgdmFyIGRlc2NyaXB0aW9uID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVFIiKTsKICAgICAgICB2YXIgdGV4dDsKICAgICAgICBzd2l0Y2ggKHNldHRpbmdzS2V5KSB7CiAgICAgICAgICAgIGNhc2UgInRsc01vZGUiOgogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy50bHNNb2RlLmRlc2NyaXB0aW9ufX0iOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgImRpc2FsbG93VVJMRHVwbGljYXRlcyI6CiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLmRpc2FsbG93VVJMRHVwbGljYXRlcy5kZXNjcmlwdGlvbn19IjsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJhdXRoZW50aWNhdGlvbi53ZWIiOgogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5hdXRoZW50aWNhdGlvbldFQi5kZXNjcmlwdGlvbn19IjsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJhdXRoZW50aWNhdGlvbi5tM3UiOgogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5hdXRoZW50aWNhdGlvbk0zVS5kZXNjcmlwdGlvbn19IjsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJhdXRoZW50aWNhdGlvbi5wbXMiOgogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5hdXRoZW50aWNhdGlvblBNUy5kZXNjcmlwdGlvbn19IjsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJhdXRoZW50aWNhdGlvbi54bWwiOgogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5hdXRoZW50aWNhdGlvblhNTC5kZXNjcmlwdGlvbn19IjsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJhdXRoZW50aWNhdGlvbi5hcGkiOgogICAgICAgICAgICAgICAgaWYgKFNFUlZFUlsic2V0dGluZ3MiXVsiYXV0aGVudGljYXRpb24ud2ViIl0gPT0gdHJ1ZSkgewogICAgICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MuYXV0aGVudGljYXRpb25BUEkuZGVzY3JpcHRpb259fSI7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAieHRldmVBdXRvVXBkYXRlIjoKICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MueHRldmVBdXRvVXBkYXRlLmRlc2NyaXB0aW9ufX0iOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgImJhY2t1cC5rZWVwIjoKICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MuYmFja3VwS2VlcC5kZXNjcmlwdGlvbn19IjsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJiYWNrdXAucGF0aCI6CiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLmJhY2t1cFBhdGguZGVzY3JpcHRpb259fSI7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAidGVtcC5wYXRoIjoKICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MudGVtcFBhdGguZGVzY3JpcHRpb259fSI7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAiYnVmZmVyIjoKICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3Muc3RyZWFtQnVmZmVyaW5nLmRlc2NyaXB0aW9ufX0iOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgImJ1ZmZlci5zaXplLmtiIjoKICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MuYnVmZmVyU2l6ZS5kZXNjcmlwdGlvbn19IjsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJzdG9yZUJ1ZmZlckluUkFNIjoKICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3Muc3RvcmVCdWZmZXJJblJBTS5kZXNjcmlwdGlvbn19IjsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJidWZmZXIudGltZW91dCI6CiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLmJ1ZmZlclRpbWVvdXQuZGVzY3JpcHRpb259fSI7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAidXNlci5hZ2VudCI6CiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLnVzZXJBZ2VudC5kZXNjcmlwdGlvbn19IjsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJmZm1wZWcucGF0aCI6CiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLmZmbXBlZ1BhdGguZGVzY3JpcHRpb259fSI7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAiZmZtcGVnLm9wdGlvbnMiOgogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5mZm1wZWdPcHRpb25zLmRlc2NyaXB0aW9ufX0iOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgInZsYy5wYXRoIjoKICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MudmxjUGF0aC5kZXNjcmlwdGlvbn19IjsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJ2bGMub3B0aW9ucyI6CiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLnZsY09wdGlvbnMuZGVzY3JpcHRpb259fSI7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAiZXBnU291cmNlIjoKICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MuZXBnU291cmNlLmRlc2NyaXB0aW9ufX0iOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgImhvc3RJUCI6CiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLmhvc3RJUC5kZXNjcmlwdGlvbn19IjsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJob3N0TmFtZSI6CiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLmhvc3ROYW1lLmRlc2NyaXB0aW9ufX0iOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgInR1bmVyIjoKICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MudHVuZXIuZGVzY3JpcHRpb259fSI7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAidXBkYXRlIjoKICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MudXBkYXRlLmRlc2NyaXB0aW9ufX0iOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgImNsZWFyWE1MVFZDYWNoZSI6CiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLmNsZWFyWE1MVFZDYWNoZS5kZXNjcmlwdGlvbn19IjsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJhcGkiOgogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5hcGkuZGVzY3JpcHRpb259fSI7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAiZGVmYXVsdE1pc3NpbmdFUEciOgogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5kZWZhdWx0TWlzc2luZ0VQRy5kZXNjcmlwdGlvbn19IjsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJlbmFibGVNYXBwZWRDaGFubmVscyI6CiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLmVuYWJsZU1hcHBlZENoYW5uZWxzLmRlc2NyaXB0aW9ufX0iOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgImZpbGVzLnVwZGF0ZSI6CiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLmZpbGVzVXBkYXRlLmRlc2NyaXB0aW9ufX0iOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgImNhY2hlLmltYWdlcyI6CiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLmNhY2hlSW1hZ2VzLmRlc2NyaXB0aW9ufX0iOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgInhlcGcucmVwbGFjZS5taXNzaW5nLmltYWdlcyI6CiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLnJlcGxhY2VFbXB0eUltYWdlcy5kZXNjcmlwdGlvbn19IjsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJ1ZHB4eSI6CiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLnVkcHh5LmRlc2NyaXB0aW9ufX0iOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICAgICB0ZXh0ID0gIiI7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICB9CiAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7CiAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICIiOwogICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsKICAgICAgICB2YXIgcHJlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiUFJFIik7CiAgICAgICAgcHJlLmlubmVySFRNTCA9IHRleHQ7CiAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChwcmUpOwogICAgICAgIGRlc2NyaXB0aW9uLmFwcGVuZENoaWxkKHRkTGVmdCk7CiAgICAgICAgZGVzY3JpcHRpb24uYXBwZW5kQ2hpbGQodGRSaWdodCk7CiAgICAgICAgcmV0dXJuIGRlc2NyaXB0aW9uOwogICAgfQp9CmNsYXNzIFNldHRpbmdzQ2F0ZWdvcnlJdGVtIGV4dGVuZHMgU2V0dGluZ3NDYXRlZ29yeSB7CiAgICBjb25zdHJ1Y3RvcihoZWFkbGluZSwgc2V0dGluZ3NLZXlzKSB7CiAgICAgICAgc3VwZXIoKTsKICAgICAgICB0aGlzLmhlYWRsaW5lID0gaGVhZGxpbmU7CiAgICAgICAgdGhpcy5zZXR0aW5nc0tleXMgPSBzZXR0aW5nc0tleXM7CiAgICB9CiAgICBjcmVhdGVDYXRlZ29yeSgpIHsKICAgICAgICB2YXIgaGVhZGxpbmUgPSB0aGlzLmNyZWF0ZUNhdGVnb3J5SGVhZGxpbmUodGhpcy5oZWFkbGluZSk7CiAgICAgICAgdmFyIHNldHRpbmdzS2V5cyA9IHRoaXMuc2V0dGluZ3NLZXlzOwogICAgICAgIHZhciBkb2MgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCh0aGlzLkRvY3VtZW50SUQpOwogICAgICAgIGRvYy5hcHBlbmRDaGlsZChoZWFkbGluZSk7CiAgICAgICAgLy8gQ3JlYXRlIGEgdGFibGUgZm9yIHRoZSBjYXRlZ29yeQogICAgICAgIHZhciB0YWJsZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlRBQkxFIik7CiAgICAgICAgdmFyIGtleXMgPSBzZXR0aW5nc0tleXMuc3BsaXQoIiwiKTsKICAgICAgICBrZXlzLmZvckVhY2goc2V0dGluZ3NLZXkgPT4gewogICAgICAgICAgICBzd2l0Y2ggKHNldHRpbmdzS2V5KSB7CiAgICAgICAgICAgICAgICBjYXNlICJhdXRoZW50aWNhdGlvbi5wbXMiOgogICAgICAgICAgICAgICAgY2FzZSAiYXV0aGVudGljYXRpb24ubTN1IjoKICAgICAgICAgICAgICAgIGNhc2UgImF1dGhlbnRpY2F0aW9uLnhtbCI6CiAgICAgICAgICAgICAgICBjYXNlICJhdXRoZW50aWNhdGlvbi5hcGkiOgogICAgICAgICAgICAgICAgICAgIGlmIChTRVJWRVJbInNldHRpbmdzIl1bImF1dGhlbnRpY2F0aW9uLndlYiJdID09IGZhbHNlKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICAgICAgICAgdmFyIGl0ZW0gPSB0aGlzLmNyZWF0ZVNldHRpbmdzKHNldHRpbmdzS2V5KTsKICAgICAgICAgICAgICAgICAgICB2YXIgZGVzY3JpcHRpb24gPSB0aGlzLmNyZWF0ZURlc2NyaXB0aW9uKHNldHRpbmdzS2V5KTsKICAgICAgICAgICAgICAgICAgICB0YWJsZS5hcHBlbmRDaGlsZChpdGVtKTsKICAgICAgICAgICAgICAgICAgICB0YWJsZS5hcHBlbmRDaGlsZChkZXNjcmlwdGlvbik7CiAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIH0KICAgICAgICB9KTsKICAgICAgICBkb2MuYXBwZW5kQ2hpbGQodGFibGUpOwogICAgICAgIGRvYy5hcHBlbmRDaGlsZCh0aGlzLmNyZWF0ZUhSKCkpOwogICAgfQp9CmZ1bmN0aW9uIHNob3dTZXR0aW5ncygpIHsKICAgIGZvciAobGV0IGkgPSAwOyBpIDwgc2V0dGluZ3NDYXRlZ29yeS5sZW5ndGg7IGkrKykgewogICAgICAgIHNldHRpbmdzQ2F0ZWdvcnlbaV0uY3JlYXRlQ2F0ZWdvcnkoKTsKICAgIH0KfQpmdW5jdGlvbiBzYXZlU2V0dGluZ3MoKSB7CiAgICB2YXIgY21kID0gInNhdmVTZXR0aW5ncyI7CiAgICB2YXIgZGl2ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnRlbnRfc2V0dGluZ3MiKTsKICAgIHZhciBzZXR0aW5ncyA9IGRpdi5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCJjaGFuZ2VkIik7CiAgICB2YXIgbmV3U2V0dGluZ3MgPSBuZXcgT2JqZWN0KCk7CiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHNldHRpbmdzLmxlbmd0aDsgaSsrKSB7CiAgICAgICAgdmFyIG5hbWU7CiAgICAgICAgdmFyIHZhbHVlOwogICAgICAgIHN3aXRjaCAoc2V0dGluZ3NbaV0udGFnTmFtZSkgewogICAgICAgICAgICBjYXNlICJJTlBVVCI6CiAgICAgICAgICAgICAgICBzd2l0Y2ggKHNldHRpbmdzW2ldLnR5cGUpIHsKICAgICAgICAgICAgICAgICAgICBjYXNlICJjaGVja2JveCI6CiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWUgPSBzZXR0aW5nc1tpXS5uYW1lOwogICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IHNldHRpbmdzW2ldLmNoZWNrZWQ7CiAgICAgICAgICAgICAgICAgICAgICAgIG5ld1NldHRpbmdzW25hbWVdID0gdmFsdWU7CiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICAgIGNhc2UgInRleHQiOgogICAgICAgICAgICAgICAgICAgICAgICBuYW1lID0gc2V0dGluZ3NbaV0ubmFtZTsKICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSBzZXR0aW5nc1tpXS52YWx1ZTsKICAgICAgICAgICAgICAgICAgICAgICAgc3dpdGNoIChuYW1lKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYXNlICJ1cGRhdGUiOgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlID0gdmFsdWUuc3BsaXQoIiwiKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IHZhbHVlLmZpbHRlcihmdW5jdGlvbiAoZSkgeyByZXR1cm4gZTsgfSk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYXNlICJidWZmZXIudGltZW91dCI6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSBwYXJzZUZsb2F0KHZhbHVlKTsKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICBuZXdTZXR0aW5nc1tuYW1lXSA9IHZhbHVlOwogICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJTRUxFQ1QiOgogICAgICAgICAgICAgICAgbmFtZSA9IHNldHRpbmdzW2ldLm5hbWU7CiAgICAgICAgICAgICAgICB2YWx1ZSA9IHNldHRpbmdzW2ldLnZhbHVlOwogICAgICAgICAgICAgICAgLy8gSWYgdGhlIHZhbHVlIGlzIGEgbnVtYmVyLCBzdG9yZSBpdCBhcyBhIG51bWJlcgogICAgICAgICAgICAgICAgaWYgKGlzTmFOKHZhbHVlKSkgewogICAgICAgICAgICAgICAgICAgIG5ld1NldHRpbmdzW25hbWVdID0gdmFsdWU7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgICAgICBuZXdTZXR0aW5nc1tuYW1lXSA9IHBhcnNlSW50KHZhbHVlKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgIH0KICAgIH0KICAgIHZhciBkYXRhID0gbmV3IE9iamVjdCgpOwogICAgZGF0YVsic2V0dGluZ3MiXSA9IG5ld1NldHRpbmdzOwogICAgdmFyIHNlcnZlciA9IG5ldyBTZXJ2ZXIoY21kKTsKICAgIHNlcnZlci5yZXF1ZXN0KGRhdGEpOwp9Cg==" + webUI["html/lang/en.json"] = "ewogICJtYWluTWVudSI6IHsKICAgICJpdGVtIjogewogICAgICAicGxheWxpc3QiOiAiUGxheWxpc3QiLAogICAgICAicG1zSUQiOiAiUE1TIElEIiwKICAgICAgImZpbHRlciI6ICJGaWx0ZXIiLAogICAgICAieG1sdHYiOiAiWE1MVFYiLAogICAgICAibWFwcGluZyI6ICJNYXBwaW5nIiwKICAgICAgInVzZXJzIjogIlVzZXJzIiwKICAgICAgInNldHRpbmdzIjogIlNldHRpbmdzIiwKICAgICAgImxvZyI6ICJMb2ciLAogICAgICAibG9nb3V0IjogIkxvZ291dCIKICAgIH0sCiAgICAiaGVhZGxpbmUiOiB7CiAgICAgICJwbGF5bGlzdCI6ICJMb2NhbCBvciByZW1vdGUgcGxheWxpc3RzIiwKICAgICAgImZpbHRlciI6ICJGaWx0ZXIgcGxheWxpc3QiLAogICAgICAieG1sdHYiOiAiTG9jYWwgb3IgcmVtb3RlIFhNTFRWIGZpbGVzIiwKICAgICAgIm1hcHBpbmciOiAiTWFwIHBsYXlsaXN0IGNoYW5uZWxzIHRvIEVQRyBjaGFubmVscyIsCiAgICAgICJ1c2VycyI6ICJVc2VyIG1hbmFnZW1lbnQiLAogICAgICAic2V0dGluZ3MiOiAiU2V0dGluZ3MiLAogICAgICAibG9nIjogIkxvZyIsCiAgICAgICJsb2dvdXQiOiAiTG9nb3V0IgogICAgfQogIH0sCiAgImNvbmZpcm0iOiB7CiAgICAicmVzdG9yZSI6ICJBbGwgZGF0YSB3aWxsIGJlIHJlcGxhY2VkIHdpdGggdGhvc2UgZnJvbSB0aGUgYmFja3VwLiBTaG91bGQgdGhlIGZpbGVzIGJlIHJlc3RvcmVkPyIKICB9LAogICJhbGVydCI6IHsKICAgICJmaWxlTG9hZGluZ0Vycm9yIjogIkZpbGUgY291bGRuJ3QgYmUgbG9hZGVkIiwKICAgICJpbnZhbGlkQ2hhbm5lbE51bWJlciI6ICJJbnZhbGlkIGNoYW5uZWwgbnVtYmVyIiwKICAgICJtaXNzaW5nSW5wdXQiOiAiTWlzc2luZyBpbnB1dCIKICB9LAogICJidXR0b24iOiB7CiAgICAiYmFjayI6ICJCYWNrIiwKICAgICJiYWNrdXAiOiAiQmFja3VwIiwKICAgICJidWxrRWRpdCI6ICJCdWxrIEVkaXQiLAogICAgImNhbmNlbCI6ICJDYW5jZWwiLAogICAgImRlbGV0ZSI6ICJEZWxldGUiLAogICAgImRvbmUiOiAiRG9uZSIsCiAgICAibG9naW4iOiAiTG9naW4iLAogICAgIm5ldyI6ICJOZXciLAogICAgIm5leHQiOiAiTmV4dCIsCiAgICAicmVzdG9yZSI6ICJSZXN0b3JlIiwKICAgICJzYXZlIjogIlNhdmUiLAogICAgInNlYXJjaCI6ICJTZWFyY2giLAogICAgInVwZGF0ZSI6ICJVcGRhdGUiLAogICAgImNyYWV0ZUFjY291bnQiOiAiQ3JlYXRlIEFjY291bnQiLAogICAgInJlc2V0TG9ncyI6ICJSZXNldCBMb2dzIiwKICAgICJ1cGxvYWRMb2dvIjogIlVwbG9hZCBMb2dvIgogIH0sCiAgImZpbHRlciI6IHsKICAgICJ0YWJsZSI6IHsKICAgICAgInN0YXJ0aW5nQ2hhbm5lbCI6ICJTdGFydGluZyBDaC4gTm8uIiwKICAgICAgIm5hbWUiOiAiRmlsdGVyIE5hbWUiLAogICAgICAidHlwZSI6ICJGaWx0ZXIgVHlwZSIsCiAgICAgICJmaWx0ZXIiOiAiRmlsdGVyIgogICAgfSwKICAgICJjdXN0b20iOiAiQ3VzdG9tIiwKICAgICJncm91cCI6ICJNM1UgR3JvdXAiLAogICAgIm5hbWUiOiB7CiAgICAgICJ0aXRsZSI6ICJGaWx0ZXIgTmFtZSIsCiAgICAgICJwbGFjZWhvbGRlciI6ICJGaWx0ZXIgbmFtZSIsCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiCiAgICB9LAogICAgImRlc2NyaXB0aW9uIjogewogICAgICAidGl0bGUiOiAiRGVzY3JpcHRpb24iLAogICAgICAicGxhY2Vob2xkZXIiOiAiRGVzY3JpcHRpb24iLAogICAgICAiZGVzY3JpcHRpb24iOiAiIgogICAgfSwKICAgICJ0eXBlIjogewogICAgICAidGl0bGUiOiAiVHlwZSIsCiAgICAgICJncm91cFRpdGxlIjogIkdyb3VwIFRpdGxlIiwKICAgICAgImN1c3RvbUZpbHRlciI6ICJDdXN0b20gRmlsdGVyIgogICAgfSwKICAgICJjYXNlU2Vuc2l0aXZlIjogewogICAgICAidGl0bGUiOiAiQ2FzZSBTZW5zaXRpdmUiLAogICAgICAicGxhY2Vob2xkZXIiOiAiIiwKICAgICAgImRlc2NyaXB0aW9uIjogIiIKICAgIH0sCiAgICAiZmlsdGVyUnVsZSI6IHsKICAgICAgInRpdGxlIjogIkZpbHRlciBSdWxlIiwKICAgICAgInBsYWNlaG9sZGVyIjogIlNwb3J0IHtIRH0gIXtFUyxJVH0iLAogICAgICAiZGVzY3JpcHRpb24iOiAiIgogICAgfSwKICAgICJmaWx0ZXJHcm91cCI6IHsKICAgICAgInRpdGxlIjogIkdyb3VwIFRpdGxlIiwKICAgICAgInBsYWNlaG9sZGVyIjogIiIsCiAgICAgICJkZXNjcmlwdGlvbiI6ICJTZWxlY3QgYSBNM1UgZ3JvdXAuIChDb3VudGVyKTxicj5DaGFuZ2luZyB0aGUgZ3JvdXAgdGl0bGUgaW4gdGhlIE0zVSBpbnZhbGlkYXRlcyB0aGUgZmlsdGVyLiIKICAgIH0sCiAgICAiaW5jbHVkZSI6IHsKICAgICAgInRpdGxlIjogIkluY2x1ZGUiLAogICAgICAicGxhY2Vob2xkZXIiOiAiRkhELFVIRCIsCiAgICAgICJkZXNjcmlwdGlvbiI6ICJDaGFubmVsIG5hbWUgbXVzdCBpbmNsdWRlLjxicj4oQ29tbWEgc2VwYXJhdGVkKSBDb21tYSBtZWFucyBvciIKICAgIH0sCiAgICAiZXhjbHVkZSI6IHsKICAgICAgInRpdGxlIjogIkV4Y2x1ZGUiLAogICAgICAicGxhY2Vob2xkZXIiOiAiRVMsSVQiLAogICAgICAiZGVzY3JpcHRpb24iOiAiQ2hhbm5lbCBuYW1lIG11c3Qgbm90IGNvbnRhaW4uPGJyPihDb21tYSBzZXBhcmF0ZWQpIENvbW1hIG1lYW5zIG9yIgogICAgfSwKICAgICJwcmVzZXJ2ZU1hcHBpbmciOiB7CiAgICAgICJ0aXRsZSI6ICJQcmVzZXJ2ZSBFeGlzdGluZyBNM1U8YnI+Q2hhbm5lbCBOdW1iZXJzIiwKICAgICAgInBhbGNlaG9sZGVyIjogIiIsCiAgICAgICJkZXNjcmlwdGlvbiI6ICJQcmVzZXJ2ZSBleGlzdGluZyBNM1UgcGxheWxpc3QgY2hhbm5lbCBudW1iZXJzPyIKICAgIH0sCiAgICAic3RhcnRpbmdDaGFubmVsIjogewogICAgICAidGl0bGUiOiAiU3RhcnRpbmcgQ2hhbm5lbCBOdW1iZXIiLAogICAgICAicGxhY2Vob2xkZXIiOiAiIiwKICAgICAgImRlc2NyaXB0aW9uIjogIiIKICAgIH0KICB9LAogICJwbGF5bGlzdCI6IHsKICAgICJ0YWJsZSI6IHsKICAgICAgInBsYXlsaXN0IjogIlBsYXlsaXN0IiwKICAgICAgInR1bmVyIjogIlR1bmVyIiwKICAgICAgImxhc3RVcGRhdGUiOiAiTGFzdCBVcGRhdGUiLAogICAgICAiYXZhaWxhYmlsaXR5IjogIkF2YWlsYWJpbGl0eSIsCiAgICAgICJ0eXBlIjogIlR5cGUiLAogICAgICAic3RyZWFtcyI6ICJTdHJlYW1zIiwKICAgICAgImdyb3VwVGl0bGUiOiAiZ3JvdXAtdGl0bGUiLAogICAgICAidHZnSUQiOiAidHZnLWlkIiwKICAgICAgInVuaXF1ZUlEIjogIlVuaXF1ZSBJRCIKICAgIH0sCiAgICAicGxheWxpc3RUeXBlIjogewogICAgICAidGl0bGUiOiAiUGxheWxpc3QgdHlwZSIsCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLAogICAgICAiZGVzY3JpcHRpb24iOiAiIgogICAgfSwKICAgICJ0eXBlIjogewogICAgICAidGl0bGUiOiAiVHlwZSIsCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLAogICAgICAiZGVzY3JpcHRpb24iOiAiIgogICAgfSwKICAgICJuYW1lIjogewogICAgICAidGl0bGUiOiAiTmFtZSIsCiAgICAgICJwbGFjZWhvbGRlciI6ICJQbGF5bGlzdCBuYW1lIiwKICAgICAgImRlc2NyaXB0aW9uIjogIiIKICAgIH0sCiAgICAiZGVzY3JpcHRpb24iOiB7CiAgICAgICJ0aXRsZSI6ICJEZXNjcmlwdGlvbiIsCiAgICAgICJwbGFjZWhvbGRlciI6ICJEZXNjcmlwdGlvbiIsCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiCiAgICB9LAogICAgImZpbGVNM1UiOiB7CiAgICAgICJ0aXRsZSI6ICJNM1UgRmlsZSIsCiAgICAgICJwbGFjZWhvbGRlciI6ICJGaWxlIHBhdGggb3IgVVJMIG9mIHRoZSBNM1UiLAogICAgICAiZGVzY3JpcHRpb24iOiAiIgogICAgfSwKICAgICJmaWxlSERIUiI6IHsKICAgICAgInRpdGxlIjogIkhESG9tZVJ1biBJUCIsCiAgICAgICJwbGFjZWhvbGRlciI6ICJJUCBhZGRyZXNzIGFuZCBwb3J0ICgxOTIuMTY4LjEuMTA6NTAwNCkiLAogICAgICAiZGVzY3JpcHRpb24iOiAiIgogICAgfSwKICAgICJ0dW5lciI6IHsKICAgICAgInRpdGxlIjogIlR1bmVyIC8gU3RyZWFtcyIsCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLAogICAgICAiZGVzY3JpcHRpb24iOiAiTnVtYmVyIG9mIHBhcmFsbGVsIGNvbm5lY3Rpb25zIHRoYXQgY2FuIGJlIGVzdGFibGlzaGVkIHRvIHRoZSBwcm92aWRlci4gPGJyPk9ubHkgYXZhaWxhYmxlIHdpdGggYWN0aXZhdGVkIGJ1ZmZlci48YnI+TmV3IHNldHRpbmdzIHdpbGwgb25seSBiZSBhcHBsaWVkIGFmdGVyIHF1aXR0aW5nIGFsbCBzdHJlYW1zLiIKICAgIH0KICB9LAogICJ4bWx0diI6IHsKICAgICJ0YWJsZSI6IHsKICAgICAgImd1aWRlIjogIkd1aWRlIiwKICAgICAgImxhc3RVcGRhdGUiOiAiTGFzdCBVcGRhdGUiLAogICAgICAiYXZhaWxhYmlsaXR5IjogIkF2YWlsYWJpbGl0eSIsCiAgICAgICJjaGFubmVscyI6ICJDaGFubmVscyIsCiAgICAgICJwcm9ncmFtcyI6ICJQcm9ncmFtcyIKICAgIH0sCiAgICAibmFtZSI6IHsKICAgICAgInRpdGxlIjogIk5hbWUiLAogICAgICAicGxhY2Vob2xkZXIiOiAiR3VpZGUgbmFtZSIsCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiCiAgICB9LAogICAgImRlc2NyaXB0aW9uIjogewogICAgICAidGl0bGUiOiAiRGVzY3JpcHRpb24iLAogICAgICAicGxhY2Vob2xkZXIiOiAiRGVzY3JpcHRpb24iLAogICAgICAiZGVzY3JpcHRpb24iOiAiIgogICAgfSwKICAgICJmaWxlWE1MVFYiOiB7CiAgICAgICJ0aXRsZSI6ICJYTUxUViBGaWxlIiwKICAgICAgInBsYWNlaG9sZGVyIjogIkZpbGUgcGF0aCBvciBVUkwgb2YgdGhlIFhNTFRWIiwKICAgICAgImRlc2NyaXB0aW9uIjogIiIKICAgIH0KICB9LAogICJtYXBwaW5nIjogewogICAgInRhYmxlIjogewogICAgICAiY2hObyI6ICJDaC4gTm8uIiwKICAgICAgImxvZ28iOiAiTG9nbyIsCiAgICAgICJjaGFubmVsTmFtZSI6ICJDaGFubmVsIE5hbWUiLAogICAgICAidXBkYXRlQ2hhbm5lbE5hbWVSZWdleCI6ICJVcGQuIFJ4LiIsCiAgICAgICJwbGF5bGlzdCI6ICJQbGF5bGlzdCIsCiAgICAgICJncm91cFRpdGxlIjogIkdyb3VwIFRpdGxlIiwKICAgICAgInhtbHR2RmlsZSI6ICJYTUxUViBGaWxlIiwKICAgICAgInhtbHR2SUQiOiAiWE1MVFYgSUQiLAogICAgICAidGltZXNoaWZ0IjogIlRpbWVzaGlmdCIKICAgIH0sCiAgICAiYWN0aXZlIjogewogICAgICAidGl0bGUiOiAiQWN0aXZlIiwKICAgICAgInBsYWNlaG9sZGVyIjogIiIsCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiCiAgICB9LAogICAgImNoYW5uZWxOYW1lIjogewogICAgICAidGl0bGUiOiAiQ2hhbm5lbCBOYW1lIiwKICAgICAgInBsYWNlaG9sZGVyIjogIiIsCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiCiAgICB9LAogICAgImRlc2NyaXB0aW9uIjogewogICAgICAidGl0bGUiOiAiQ2hhbm5lbCBEZXNjcmlwdGlvbiIsCiAgICAgICJwbGFjZWhvbGRlciI6ICJVc2VkIGJ5IHRoZSBEdW1teSBhcyBhbiBYTUwgZGVzY3JpcHRpb24iLAogICAgICAiZGVzY3JpcHRpb24iOiAiIgogICAgfSwKICAgICJ1cGRhdGVDaGFubmVsTmFtZSI6IHsKICAgICAgInRpdGxlIjogIlVwZGF0ZSBDaGFubmVsIE5hbWUiLAogICAgICAicGxhY2Vob2xkZXIiOiAiIiwKICAgICAgImRlc2NyaXB0aW9uIjogIiIKICAgIH0sCiAgICAidXBkYXRlQ2hhbm5lbE5hbWVSZWdleCI6IHsKICAgICAgInRpdGxlIjogIkNoYW5uZWwgbmFtZSB1cGRhdGUgcmVnZXgiLAogICAgICAicGxhY2Vob2xkZXIiOiAiRm9yIGV4YW1wbGUgXlBQVlsgXFxcXC1fXT8xLioiLAogICAgICAiZGVzY3JpcHRpb24iOiAiT24gdXBkYXRlLCBpZiBhbnkgbmV3IGNoYW5uZWwgbmFtZSBtYXRjaGVzIHRoaXMgcmVnZXgsIHJlbmFtZSBjdXJyZW50IGNoYW5uZWwgdG8gdGhlIGZpcnN0IG1hdGNoaW5nIG5hbWUiCiAgICB9LAogICAgInVwZGF0ZUNoYW5uZWxOYW1lQnlHcm91cFJlZ2V4IjogewogICAgICAidGl0bGUiOiAiT25seSBieSBncm91cCByZWdleCIsCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLAogICAgICAiZGVzY3JpcHRpb24iOiAiUmVuYW1lIHRoaXMgY2hhbm5lbCBvbmx5IGlmIGN1cnJlbnQgdXNlci1kZWZpbmVkIGdyb3VwIG1hdGNoZXMgdGhpcyByZWdleCIKICAgIH0sCiAgICAidXBkYXRlQ2hhbm5lbEdyb3VwIjogewogICAgICAidGl0bGUiOiAiVXBkYXRlIENoYW5uZWwgR3JvdXAiLAogICAgICAicGxhY2Vob2xkZXIiOiAiIiwKICAgICAgImRlc2NyaXB0aW9uIjogIklmIGNoZWNrZWQsIHVzZSBncm91cCBmcm9tIHRoZSBkYXRhYmFzZSIKICAgIH0sCiAgICAiY2hhbm5lbExvZ28iOiB7CiAgICAgICJ0aXRsZSI6ICJMb2dvIFVSTCIsCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLAogICAgICAiZGVzY3JpcHRpb24iOiAiIgogICAgfSwKICAgICJ1cGRhdGVDaGFubmVsTG9nbyI6IHsKICAgICAgInRpdGxlIjogIlVwZGF0ZSBDaGFubmVsIExvZ28iLAogICAgICAicGxhY2Vob2xkZXIiOiAiIiwKICAgICAgImRlc2NyaXB0aW9uIjogIiIKICAgIH0sCiAgICAiZXBnQ2F0ZWdvcnkiOiB7CiAgICAgICJ0aXRsZSI6ICJFUEcgQ2F0ZWdvcnkiLAogICAgICAicGxhY2Vob2xkZXIiOiAiIiwKICAgICAgImRlc2NyaXB0aW9uIjogIiIKICAgIH0sCiAgICAibTN1R3JvdXBUaXRsZSI6IHsKICAgICAgInRpdGxlIjogIkdyb3VwIFRpdGxlICh4dGV2ZS5tM3UpIiwKICAgICAgInBsYWNlaG9sZGVyIjogIiIsCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiCiAgICB9LAogICAgInhtbHR2RmlsZSI6IHsKICAgICAgInRpdGxlIjogIlhNTFRWIEZpbGUiLAogICAgICAicGxhY2Vob2xkZXIiOiAiIiwKICAgICAgImRlc2NyaXB0aW9uIjogIiIKICAgIH0sCiAgICAieG1sdHZDaGFubmVsIjogewogICAgICAidGl0bGUiOiAiWE1MVFYgQ2hhbm5lbCIsCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLAogICAgICAiZGVzY3JpcHRpb24iOiAiIgogICAgfSwKICAgICJ0aW1lc2hpZnQiOiB7CiAgICAgICJ0aXRsZSI6ICJUaW1lc2hpZnQiLAogICAgICAicGxhY2Vob2xkZXIiOiAiMCIsCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiCiAgICB9CiAgfSwKICAidXNlcnMiOiB7CiAgICAidGFibGUiOiB7CiAgICAgICJ1c2VybmFtZSI6ICJVc2VybmFtZSIsCiAgICAgICJwYXNzd29yZCI6ICJQYXNzd29yZCIsCiAgICAgICJ3ZWIiOiAiV0VCIiwKICAgICAgInBtcyI6ICJQTVMiLAogICAgICAibTN1IjogIk0zVSIsCiAgICAgICJ4bWwiOiAiWE1MIiwKICAgICAgImFwaSI6ICJBUEkiCiAgICB9LAogICAgInVzZXJuYW1lIjogewogICAgICAidGl0bGUiOiAiVXNlcm5hbWUiLAogICAgICAicGxhY2Vob2xkZXIiOiAiVXNlcm5hbWUiLAogICAgICAiZGVzY3JpcHRpb24iOiAiIgogICAgfSwKICAgICJwYXNzd29yZCI6IHsKICAgICAgInRpdGxlIjogIlBhc3N3b3JkIiwKICAgICAgInBsYWNlaG9sZGVyIjogIlBhc3N3b3JkIiwKICAgICAgImRlc2NyaXB0aW9uIjogIiIKICAgIH0sCiAgICAiY29uZmlybSI6IHsKICAgICAgInRpdGxlIjogIkNvbmZpcm0iLAogICAgICAicGxhY2Vob2xkZXIiOiAiUGFzc3dvcmQgY29uZmlybSIsCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiCiAgICB9LAogICAgIndlYiI6IHsKICAgICAgInRpdGxlIjogIldlYiBBY2Nlc3MiLAogICAgICAicGxhY2Vob2xkZXIiOiAiIiwKICAgICAgImRlc2NyaXB0aW9uIjogIiIKICAgIH0sCiAgICAicG1zIjogewogICAgICAidGl0bGUiOiAiUE1TIEFjY2VzcyIsCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLAogICAgICAiZGVzY3JpcHRpb24iOiAiIgogICAgfSwKICAgICJtM3UiOiB7CiAgICAgICJ0aXRsZSI6ICJNM1UgQWNjZXNzIiwKICAgICAgInBsYWNlaG9sZGVyIjogIiIsCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiCiAgICB9LAogICAgInhtbCI6IHsKICAgICAgInRpdGxlIjogIlhNTCBBY2Nlc3MiLAogICAgICAicGxhY2Vob2xkZXIiOiAiIiwKICAgICAgImRlc2NyaXB0aW9uIjogIiIKICAgIH0sCiAgICAiYXBpIjogewogICAgICAidGl0bGUiOiAiQVBJIEFjY2VzcyIsCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLAogICAgICAiZGVzY3JpcHRpb24iOiAiIgogICAgfQogIH0sCiAgInNldHRpbmdzIjogewogICAgImNhdGVnb3J5IjogewogICAgICAiZ2VuZXJhbCI6ICJHZW5lcmFsIiwKICAgICAgIm1hcHBpbmciOiAiTWFwcGluZyIsCiAgICAgICJmaWxlcyI6ICJGaWxlcyIsCiAgICAgICJzdHJlYW1pbmciOiAiU3RyZWFtaW5nIiwKICAgICAgImJhY2t1cCI6ICJCYWNrdXAiLAogICAgICAiYXV0aGVudGljYXRpb24iOiAiQXV0aGVudGljYXRpb24iCiAgICB9LAogICAgInVwZGF0ZSI6IHsKICAgICAgInRpdGxlIjogIlNjaGVkdWxlIGZvciB1cGRhdGluZyAoUGxheWxpc3QsIFhNTFRWLCBCYWNrdXApIiwKICAgICAgInBsYWNlaG9sZGVyIjogIjAwMDAsMTAwMCwyMDAwIiwKICAgICAgImRlc2NyaXB0aW9uIjogIlRpbWUgaW4gMjQgaG91ciBmb3JtYXQgKDA4MDAgPSA4OjAwIGFtKS4gTW9yZSB0aW1lcyBjYW4gYmUgZW50ZXJlZCBjb21tYSBzZXBhcmF0ZWQuIExlYXZlIHRoaXMgZmllbGQgZW1wdHkgaWYgbm8gdXBkYXRlcyBhcmUgdG8gYmUgY2FycmllZCBvdXQuIgogICAgfSwKICAgICJhcGkiOiB7CiAgICAgICJ0aXRsZSI6ICJBUEkgSW50ZXJmYWNlIiwKICAgICAgImRlc2NyaXB0aW9uIjogIlZpYSBBUEkgaW50ZXJmYWNlIGl0IGlzIHBvc3NpYmxlIHRvIHNlbmQgY29tbWFuZHMgdG8geFRlVmUuIEFQSSBkb2N1bWVudGF0aW9uIGlzIDxhIGhyZWY9J2h0dHBzOi8vZ2l0aHViLmNvbS94dGV2ZS1wcm9qZWN0L3hUZVZlLURvY3VtZW50YXRpb24vYmxvYi9tYXN0ZXIvZW4vY29uZmlndXJhdGlvbi5tZCNhcGknPmhlcmU8L2E+IgogICAgfSwKICAgICJjbGVhclhNTFRWQ2FjaGUiOiB7CiAgICAgICJ0aXRsZSI6ICJDbGVhciBYTUxUViBjYWNoZSIsCiAgICAgICJkZXNjcmlwdGlvbiI6ICJJZiBjaGVja2VkLCBkbyBub3Qga2VlcCBYTUxUViBjYWNoZSBpbiBtZW1vcnkuPGJyPlNpZ25pZmljYWxseSByZWR1Y2VzIFJBTSB1c2FnZSBpbiBpZGxlIG1vZGUsPGJyPmJ1dCBzaWduaWZpY2FsbHkgc2xvd2luZyBkb3duIGV2ZXJ5IHN1YnNlcXVlbnQgdXBkYXRlIGluIFhFUEcgZGF0YWJhc2UuIgogICAgfSwKICAgICJkZWZhdWx0TWlzc2luZ0VQRyI6IHsKICAgICAgInRpdGxlIjogIkZpbGwgTWlzc2luZyBFUEcgRGF0YSIsCiAgICAgICJkZXNjcmlwdGlvbiI6ICJXaGVuIHRoZXJlIGlzIG5vIG1hdGNoaW5nIEVQRyBkYXRhIGZvciBjaGFubmVsLCA8YnI+YXV0b2ZpbGwgd2l0aCB4VGVWZSBkdW1teSBFUEcgZGF0YT8iCiAgICB9LAogICAgImVuYWJsZU1hcHBlZENoYW5uZWxzIjogewogICAgICAidGl0bGUiOiAiRW5hYmxlIG1hcHBlZCBjaGFubmVscyIsCiAgICAgICJkZXNjcmlwdGlvbiI6ICJBdXRvbWF0aWNhbGx5IGVuYWJsZSBjaGFubmVscyB3aXRoIGFzc2lnbmVkIEVQRyBkYXRhIgogICAgfSwKICAgICJkaXNhbGxvd1VSTER1cGxpY2F0ZXMiOiB7CiAgICAgICJ0aXRsZSI6ICJEaXNhbGxvdyBVUkwgZHVwbGljYXRlcyIsCiAgICAgICJkZXNjcmlwdGlvbiI6ICJJZiBjaGVja2VkLCBkbyBub3QgYWRkIGEgbmV3IGNoYW5uZWwgZnJvbSBwbGF5bGlzdCBpZiBjaGFubmVsIHdpdGggc3VjaCBVUkwgYWxyZWFkeSBleGlzdHMiCiAgICB9LAogICAgImVwZ1NvdXJjZSI6IHsKICAgICAgInRpdGxlIjogIkVQRyBTb3VyY2UiLAogICAgICAiZGVzY3JpcHRpb24iOiAiUE1TOjxicj4tIFVzZSBFUEcgZGF0YSBmcm9tIFBsZXggb3IgRW1ieSA8YnI+PGJyPlhFUEc6PGJyPi0gVXNlIG9mIG9uZSBvciBtb3JlIFhNTFRWIGZpbGVzPGJyPi0gQ2hhbm5lbCBtYW5hZ2VtZW50PGJyPi0gTTNVIC8gWE1MVFYgZXhwb3J0IChIVFRQIGxpbmsgZm9yIElQVFYgYXBwcykiCiAgICB9LAogICAgInR1bmVyIjogewogICAgICAidGl0bGUiOiAiTnVtYmVyIG9mIFR1bmVycyIsCiAgICAgICJkZXNjcmlwdGlvbiI6ICJOdW1iZXIgb2YgcGFyYWxsZWwgY29ubmVjdGlvbnMgdGhhdCBjYW4gYmUgZXN0YWJsaXNoZWQgdG8gdGhlIHByb3ZpZGVyLjxicj5BdmFpbGFibGUgZm9yOiBQbGV4LCBFbWJ5IChIREhSKSwgTTNVICh3aXRoIGFjdGl2ZSBidWZmZXIpLjxicj5BZnRlciBhIGNoYW5nZSwgeFRlVmUgbXVzdCBiZSBkZWxldGUgaW4gdGhlIFBsZXggLyBFbWJ5IERWUiBzZXR0aW5ncyBhbmQgc2V0IHVwIGFnYWluLiIKICAgIH0sCiAgICAiaG9zdElQIjogewogICAgICAidGl0bGUiOiAiSG9zdCBJUCIsCiAgICAgICJkZXNjcmlwdGlvbiI6ICJJUCBhZGRyZXNzIHhUZVZlIHdpbGwgdXNlIHRvIGZvcm0gTTNVIGFuZCBYTUxUViBmaWxlcyIKICAgIH0sCiAgICAiaG9zdE5hbWUiOiB7CiAgICAgICJ0aXRsZSI6ICJIb3N0IE5hbWUgT3ZlcnJpZGUiLAogICAgICAiZGVzY3JpcHRpb24iOiAiSG9zdG5hbWUgeFRlVmUgd2lsbCB1c2UgdG8gZm9ybSBNM1UgYW5kIFhNTFRWIGZpbGVzIgogICAgfSwKICAgICJ0bHNNb2RlIjogewogICAgICAidGl0bGUiOiAiVExTIChIVFRQUykgbW9kZSIsCiAgICAgICJkZXNjcmlwdGlvbiI6ICJDaGFuZ2VzIHdlYiBzZXJ2ZXIgcHJvdG9jb2wgdG8gSFRUUFMuPGJyPkZvciBkZXRhaWxzLCBzZWUgPGE+aHR0cHM6Ly9naXRodWIuY29tL1NDUDAwMi94VGVWZSN0bHMtbW9kZTwvYT4iCiAgICB9LAogICAgImZpbGVzVXBkYXRlIjogewogICAgICAidGl0bGUiOiAiVXBkYXRlcyBhbGwgZmlsZXMgYXQgc3RhcnR1cCIsCiAgICAgICJkZXNjcmlwdGlvbiI6ICJVcGRhdGVzIGFsbCBwbGF5bGlzdHMsIHR1bmVyIGFuZCBYTUxUViBmaWxlcyBhdCBzdGFydHVwLiIKICAgIH0sCiAgICAiY2FjaGVJbWFnZXMiOiB7CiAgICAgICJ0aXRsZSI6ICJJbWFnZSBDYWNoaW5nIiwKICAgICAgImRlc2NyaXB0aW9uIjogIkFsbCBpbWFnZXMgZnJvbSB0aGUgWE1MVFYgZmlsZSBhcmUgY2FjaGVkLCBhbGxvd2luZyBmYXN0ZXIgcmVuZGVyaW5nIG9mIHRoZSBncmlkIGluIHRoZSBjbGllbnQuPGJyPkRvd25sb2FkaW5nIHRoZSBpbWFnZXMgbWF5IHRha2UgYSB3aGlsZSBhbmQgd2lsbCBiZSBkb25lIGluIHRoZSBiYWNrZ3JvdW5kLiIKICAgIH0sCiAgICAicmVwbGFjZUVtcHR5SW1hZ2VzIjogewogICAgICAidGl0bGUiOiAiUmVwbGFjZSBtaXNzaW5nIHByb2dyYW0gaW1hZ2VzIiwKICAgICAgImRlc2NyaXB0aW9uIjogIklmIHRoZSBwb3N0ZXIgaW4gdGhlIFhNTFRWIHByb2dyYW0gaXMgbWlzc2luZywgdGhlIGNoYW5uZWwgbG9nbyB3aWxsIGJlIHVzZWQuIgogICAgfSwKICAgICJ4dGV2ZUF1dG9VcGRhdGUiOiB7CiAgICAgICJ0aXRsZSI6ICJBdXRvbWF0aWMgdXBkYXRlIG9mIHhUZVZlIiwKICAgICAgImRlc2NyaXB0aW9uIjogIklmIGEgbmV3IHZlcnNpb24gb2YgeFRlVmUgaXMgYXZhaWxhYmxlLCBpdCB3aWxsIGJlIGF1dG9tYXRpY2FsbHkgaW5zdGFsbGVkLiBUaGUgdXBkYXRlcyBhcmUgZG93bmxvYWRlZCBmcm9tIEdpdEh1Yi4iCiAgICB9LAogICAgInN0cmVhbUJ1ZmZlcmluZyI6IHsKICAgICAgInRpdGxlIjogIlN0cmVhbSBCdWZmZXIiLAogICAgICAiZGVzY3JpcHRpb24iOiAiRnVuY3Rpb25zIG9mIHRoZSBidWZmZXI6PGJyPi0gVGhlIHN0cmVhbSBpcyBwYXNzZWQgZnJvbSB4VGVWZSwgRkZtcGVnIG9yIFZMQyB0byBQbGV4LCBFbWJ5IG9yIE0zVSBQbGF5ZXI8YnI+LSBTbWFsbCBqZXJraW5nIG9mIHRoZSBzdHJlYW1zIGNhbiBiZSBjb21wZW5zYXRlZDxicj4tIEhMUyAvIE0zVTggc3VwcG9ydDxicj4tIFJUUCAvIFJUUFMgc3VwcG9ydCAob25seSBGRm1wZWcgb3IgVkxDKTxicj4tIFJlLXN0cmVhbWluZzxicj4tIFNlcGFyYXRlIHR1bmVyIGxpbWl0IGZvciBlYWNoIHBsYXlsaXN0IiwKICAgICAgImluZm9fZmFsc2UiOiAiTm8gQnVmZmVyIChDbGllbnQgY29ubmVjdHMgdG8gdGhlIHN0cmVhbWluZyBzZXJ2ZXIpIiwKICAgICAgImluZm9feHRldmUiOiAieFRlVmUgY29ubmVjdHMgdG8gdGhlIHN0cmVhbWluZyBzZXJ2ZXIiLAogICAgICAiaW5mb19mZm1wZWciOiAiRkZtcGVnIGNvbm5lY3RzIHRvIHRoZSBzdHJlYW1pbmcgc2VydmVyIiwKICAgICAgImluZm9fdmxjIjogIlZMQyBjb25uZWN0cyB0byB0aGUgc3RyZWFtaW5nIHNlcnZlciIKICAgIH0sCiAgICAidWRweHkiOiB7CiAgICAgICJ0aXRsZSI6ICJVRFB4eSBhZGRyZXNzIiwKICAgICAgImRlc2NyaXB0aW9uIjogIlRoZSBhZGRyZXNzIG9mIHlvdXIgVURQeHkgc2VydmVyLiBJZiBzZXQsIGFuZCB0aGUgY2hhbm5lbCBVUkxzIGluIHRoZSBtM3UgaXMgbXVsdGljYXN0LCB4VGVWZSB3aWxsIHJld3JpdGUgaXQgc28gdGhhdCBpdCBpcyBhY2Nlc3NlZCB2aWEgdGhlIFVEUHh5IHNlcnZpY2UuIiwKICAgICAgInBsYWNlaG9sZGVyIjogImhvc3Q6cG9ydCIKICAgIH0sCiAgICAiZmZtcGVnUGF0aCI6IHsKICAgICAgInRpdGxlIjogIkZGbXBlZyBCaW5hcnkgUGF0aCIsCiAgICAgICJkZXNjcmlwdGlvbiI6ICJQYXRoIHRvIEZGbXBlZyBiaW5hcnkuIiwKICAgICAgInBsYWNlaG9sZGVyIjogIi9wYXRoL3RvL2ZmbXBlZyIKICAgIH0sCiAgICAiZmZtcGVnT3B0aW9ucyI6IHsKICAgICAgInRpdGxlIjogIkZGbXBlZyBPcHRpb25zIiwKICAgICAgImRlc2NyaXB0aW9uIjogIkZGbXBlZyBvcHRpb25zLjxicj5Pbmx5IGNoYW5nZSBpZiB5b3Uga25vdyB3aGF0IHlvdSBhcmUgZG9pbmcuPGJyPkxlYXZlIGJsYW5rIHRvIHNldCBkZWZhdWx0IHNldHRpbmdzLiIsCiAgICAgICJwbGFjZWhvbGRlciI6ICJMZWF2ZSBibGFuayB0byBzZXQgZGVmYXVsdCBzZXR0aW5ncyIKICAgIH0sCiAgICAidmxjUGF0aCI6IHsKICAgICAgInRpdGxlIjogIlZMQyAvIENWTEMgQmluYXJ5IFBhdGgiLAogICAgICAiZGVzY3JpcHRpb24iOiAiUGF0aCB0byBWTEMgLyBDVkxDIGJpbmFyeS4iLAogICAgICAicGxhY2Vob2xkZXIiOiAiL3BhdGgvdG8vY3ZsYyIKICAgIH0sCiAgICAidmxjT3B0aW9ucyI6IHsKICAgICAgInRpdGxlIjogIlZMQyAvIENWTEMgT3B0aW9ucyIsCiAgICAgICJkZXNjcmlwdGlvbiI6ICJWTEMgLyBDVkxDIG9wdGlvbnMuPGJyPk9ubHkgY2hhbmdlIGlmIHlvdSBrbm93IHdoYXQgeW91IGFyZSBkb2luZy48YnI+TGVhdmUgYmxhbmsgdG8gc2V0IGRlZmF1bHQgc2V0dGluZ3MuIiwKICAgICAgInBsYWNlaG9sZGVyIjogIkxlYXZlIGJsYW5rIHRvIHNldCBkZWZhdWx0IHNldHRpbmdzIgogICAgfSwKICAgICJidWZmZXJTaXplIjogewogICAgICAidGl0bGUiOiAiQnVmZmVyIFNpemUiLAogICAgICAiZGVzY3JpcHRpb24iOiAiQnVmZmVyIHNpemUgaW4gTUIuPGJyPk0zVTg6IElmIHRoZSBUUyBzZWdtZW50IHNtYWxsZXIgdGhlbiB0aGUgYnVmZmVyIHNpemUsIHRoZSBmaWxlIHNpemUgb2YgdGhlIHNlZ21lbnQgaXMgdXNlZC4iCiAgICB9LAogICAgInN0b3JlQnVmZmVySW5SQU0iOiB7CiAgICAgICJ0aXRsZSI6ICJTdG9yZSBidWZmZXIgaW4gUkFNIiwKICAgICAgImRlc2NyaXB0aW9uIjogIklmIGNoZWNrZWQsIHdyaXRlIGJ1ZmZlciB0byBSQU0gaW5zdGVhZCBvZiB3cml0aW5nIHRvIGRpc2siCiAgICB9LAogICAgImJ1ZmZlclRpbWVvdXQiOiB7CiAgICAgICJ0aXRsZSI6ICJUaW1lb3V0IGZvciBuZXcgY2xpZW50IGNvbm5lY3Rpb25zIiwKICAgICAgImRlc2NyaXB0aW9uIjogIlRoZSB4VGVWZSBidWZmZXIgd2FpdHMgdW50aWwgbmV3IGNsaWVudCBjb25uZWN0aW9ucyBhcmUgZXN0YWJsaXNoZWQuIEhlbHBmdWwgZm9yIGZhc3QgY2hhbm5lbCBzd2l0Y2hpbmcuIFZhbHVlIGluIG1pbGxpc2Vjb25kcy4iLAogICAgICAicGxhY2Vob2xkZXIiOiAiMTAwIgogICAgfSwKICAgICJ1c2VyQWdlbnQiOiB7CiAgICAgICJ0aXRsZSI6ICJVc2VyIEFnZW50IiwKICAgICAgImRlc2NyaXB0aW9uIjogIlVzZXIgQWdlbnQgZm9yIEhUVFAgcmVxdWVzdHMuIEZvciBldmVyeSBIVFRQIGNvbm5lY3Rpb24sIHRoaXMgdmFsdWUgaXMgdXNlZCBmb3IgdGhlIHVzZXIgYWdlbnQuIFNob3VsZCBvbmx5IGJlIGNoYW5nZWQgaWYgeFRlVmUgaXMgYmxvY2tlZC4iLAogICAgICAicGxhY2Vob2xkZXIiOiAieFRlVmUiCiAgICB9LAogICAgImJhY2t1cFBhdGgiOiB7CiAgICAgICJ0aXRsZSI6ICJMb2NhdGlvbiBmb3IgYXV0b21hdGljIGJhY2t1cHMiLAogICAgICAicGxhY2Vob2xkZXIiOiAiL21udC9kYXRhL2JhY2t1cC94dGV2ZS8iLAogICAgICAiZGVzY3JpcHRpb24iOiAiQmVmb3JlIGFueSB1cGRhdGUgb2YgdGhlIHByb3ZpZGVyIGRhdGEgYnkgdGhlIHNjaGVkdWxlLCB4VGVWZSBjcmVhdGVzIGEgYmFja3VwLiBUaGUgcGF0aCBmb3IgdGhlIGF1dG9tYXRpYyBiYWNrdXBzIGNhbiBiZSBjaGFuZ2VkLiB4VGVWZSByZXF1aXJlcyB3cml0ZSBwZXJtaXNzaW9uIGZvciB0aGlzIGZvbGRlci4iCiAgICB9LAogICAgInRlbXBQYXRoIjogewogICAgICAidGl0bGUiOiAiTG9jYXRpb24gZm9yIHRoZSB0ZW1wb3JhcnkgZmlsZXMiLAogICAgICAicGxhY2Vob2xkZXIiOiAiL3RtcC94dGV2ZS8iLAogICAgICAiZGVzY3JpcHRpb24iOiAiTG9jYXRpb24gZm9yIHRoZSBidWZmZXIgZmlsZXMuIgogICAgfSwKICAgICJiYWNrdXBLZWVwIjogewogICAgICAidGl0bGUiOiAiTnVtYmVyIG9mIGJhY2t1cHMgdG8ga2VlcCIsCiAgICAgICJkZXNjcmlwdGlvbiI6ICJOdW1iZXIgb2YgYmFja3VwcyB0byBrZWVwLiBPbGRlciBiYWNrdXBzIGFyZSBhdXRvbWF0aWNhbGx5IGRlbGV0ZWQuIgogICAgfSwKICAgICJhdXRoZW50aWNhdGlvbldFQiI6IHsKICAgICAgInRpdGxlIjogIldFQiBBdXRoZW50aWNhdGlvbiIsCiAgICAgICJkZXNjcmlwdGlvbiI6ICJBY2Nlc3MgdG8gdGhlIHdlYiBpbnRlcmZhY2Ugb25seSBwb3NzaWJsZSB3aXRoIGNyZWRlbnRpYWxzLiIKICAgIH0sCiAgICAiYXV0aGVudGljYXRpb25QTVMiOiB7CiAgICAgICJ0aXRsZSI6ICJQTVMgQXV0aGVudGljYXRpb24iLAogICAgICAiZGVzY3JpcHRpb24iOiAiUGxleCByZXF1ZXN0cyBhcmUgb25seSBwb3NzaWJsZSB3aXRoIGF1dGhlbnRpY2F0aW9uLiA8YnI+PGI+V2FybmluZyEhITwvYj4gQWZ0ZXIgYWN0aXZhdGluZyB0aGlzIGZ1bmN0aW9uIHhUZVZlIG11c3QgYmUgZGVsZXRlIGluIHRoZSBQTVMgRFZSIHNldHRpbmdzIGFuZCBzZXQgdXAgYWdhaW4uIgogICAgfSwKICAgICJhdXRoZW50aWNhdGlvbk0zVSI6IHsKICAgICAgInRpdGxlIjogIk0zVSBBdXRoZW50aWNhdGlvbiIsCiAgICAgICJkZXNjcmlwdGlvbiI6ICJEb3dubG9hZGluZyB0aGUgeHRldmUubTN1IGZpbGUgdmlhIGFuIEhUVFAgcmVxdWVzdCBpcyBvbmx5IHBvc3NpYmxlIHdpdGggYXV0aGVudGljYXRpb24uIgogICAgfSwKICAgICJhdXRoZW50aWNhdGlvblhNTCI6IHsKICAgICAgInRpdGxlIjogIlhNTCBBdXRoZW50aWNhdGlvbiIsCiAgICAgICJkZXNjcmlwdGlvbiI6ICJEb3dubG9hZGluZyB0aGUgeHRldmUueG1sIGZpbGUgdmlhIGFuIEhUVFAgcmVxdWVzdCBpcyBvbmx5IHBvc3NpYmxlIHdpdGggYXV0aGVudGljYXRpb24iCiAgICB9LAogICAgImF1dGhlbnRpY2F0aW9uQVBJIjogewogICAgICAidGl0bGUiOiAiQVBJIEF1dGhlbnRpY2F0aW9uIiwKICAgICAgImRlc2NyaXB0aW9uIjogIkFjY2VzcyB0byB0aGUgQVBJIGludGVyZmFjZSBpcyBvbmx5IHBvc3NpYmxlIHdpdGggYXV0aGVudGljYXRpb24uIgogICAgfQogIH0sCiAgIndpemFyZCI6IHsKICAgICJlcGdTb3VyY2UiOiB7CiAgICAgICJ0aXRsZSI6ICJFUEcgU291cmNlIiwKICAgICAgImRlc2NyaXB0aW9uIjogIlBNUzo8YnI+LSBVc2UgRVBHIGRhdGEgZnJvbSBQbGV4IG9yIEVtYnkgPGJyPjxicj5YRVBHOjxicj4tIFVzZSBvZiBvbmUgb3IgbW9yZSBYTUxUViBmaWxlczxicj4tIENoYW5uZWwgbWFuYWdlbWVudDxicj4tIE0zVSAvIFhNTFRWIGV4cG9ydCAoSFRUUCBsaW5rIGZvciBJUFRWIGFwcHMpIgogICAgfSwKICAgICJ0dW5lciI6IHsKICAgICAgInRpdGxlIjogIk51bWJlciBvZiB0dW5lcnMiLAogICAgICAiZGVzY3JpcHRpb24iOiAiTnVtYmVyIG9mIHBhcmFsbGVsIGNvbm5lY3Rpb25zIHRoYXQgY2FuIGJlIGVzdGFibGlzaGVkIHRvIHRoZSBwcm92aWRlci48YnI+QXZhaWxhYmxlIGZvcjogUGxleCwgRW1ieSAoSERIUiksIE0zVSAod2l0aCBhY3RpdmUgYnVmZmVyKS48YnI+QWZ0ZXIgYSBjaGFuZ2UsIHhUZVZlIG11c3QgYmUgZGVsZXRlIGluIHRoZSBQbGV4IC8gRW1ieSBEVlIgc2V0dGluZ3MgYW5kIHNldCB1cCBhZ2Fpbi4iCiAgICB9LAogICAgIm0zdSI6IHsKICAgICAgInRpdGxlIjogIk0zVSBQbGF5bGlzdCIsCiAgICAgICJwbGFjZWhvbGRlciI6ICJGaWxlIHBhdGggb3IgVVJMIG9mIHRoZSBNM1UiLAogICAgICAiZGVzY3JpcHRpb24iOiAiTG9jYWwgb3IgcmVtb3RlIHBsYXlsaXN0cyIKICAgIH0sCiAgICAieG1sdHYiOiB7CiAgICAgICJ0aXRsZSI6ICJYTUxUViBGaWxlIiwKICAgICAgInBsYWNlaG9sZGVyIjogIkZpbGUgcGF0aCBvciBVUkwgb2YgdGhlIFhNTFRWIiwKICAgICAgImRlc2NyaXB0aW9uIjogIkxvY2FsIG9yIHJlbW90ZSBYTUxUViBmaWxlIgogICAgfQogIH0sCiAgImxvZ2luIjogewogICAgImZhaWxlZCI6ICJVc2VyIGF1dGhlbnRpY2F0aW9uIGZhaWxlZCIsCiAgICAiaGVhZGxpbmUiOiAiTG9naW4iLAogICAgInVzZXJuYW1lIjogewogICAgICAidGl0bGUiOiAiVXNlcm5hbWUiLAogICAgICAicGxhY2Vob2xkZXIiOiAiVXNlcm5hbWUiCiAgICB9LAogICAgInBhc3N3b3JkIjogewogICAgICAidGl0bGUiOiAiUGFzc3dvcmQiLAogICAgICAicGxhY2Vob2xkZXIiOiAiUGFzc3dvcmQiCiAgICB9CiAgfSwKICAiYWNjb3VudCI6IHsKICAgICJmYWlsZWQiOiAiUGFzc3dvcmQgZG9lcyBub3QgbWF0Y2giLAogICAgImhlYWRsaW5lIjogIkNyZWF0ZSB1c2VyIGFjY291bnQiLAogICAgInVzZXJuYW1lIjogewogICAgICAidGl0bGUiOiAiVXNlcm5hbWUiLAogICAgICAicGxhY2Vob2xkZXIiOiAiVXNlcm5hbWUiCiAgICB9LAogICAgInBhc3N3b3JkIjogewogICAgICAidGl0bGUiOiAiUGFzc3dvcmQiLAogICAgICAicGxhY2Vob2xkZXIiOiAiUGFzc3dvcmQiCiAgICB9LAogICAgImNvbmZpcm0iOiB7CiAgICAgICJ0aXRsZSI6ICJDb25maXJtIiwKICAgICAgInBsYWNlaG9sZGVyIjogIkNvbmZpcm0iCiAgICB9CiAgfQp9" + webUI["html/login.html"] = "PCFkb2N0eXBlIGh0bWw+CjxodG1sPgoKPGhlYWQ+CiAgPG1ldGEgY2hhcnNldD0idXRmLTgiPgogIDxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgsIGluaXRpYWwtc2NhbGU9MS4wIiAvPgogIDx0aXRsZT54VGVWZTwvdGl0bGU+CiAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJjc3Mvc2NyZWVuLmNzcyIgdHlwZT0idGV4dC9jc3MiPgogIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iY3NzL2Jhc2UuY3NzIiB0eXBlPSJ0ZXh0L2NzcyI+CiAgPHNjcmlwdCBsYW5ndWFnZT0iamF2YXNjcmlwdCIgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9ImpzL25ldHdvcmtfdHMuanMiPjwvc2NyaXB0PgogIDxzY3JpcHQgbGFuZ3VhZ2U9ImphdmFzY3JpcHQiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJqcy9hdXRoZW50aWNhdGlvbl90cy5qcyI+PC9zY3JpcHQ+CjwvaGVhZD4KCjxib2R5PgoKICA8ZGl2IGlkPSJoZWFkZXIiIGNsYXNzPSJpbWdDZW50ZXIiPjwvZGl2PgoKICA8ZGl2IGlkPSJib3giPgoKICAgIDxkaXYgaWQ9ImhlYWRsaW5lIj4KICAgICAgPGgxIGlkPSJoZWFkLXRleHQiIGNsYXNzPSJjZW50ZXIiPnt7LmxvZ2luLmhlYWRsaW5lfX08L2gxPgogICAgPC9kaXY+CgogICAgPHAgaWQ9ImVyciIgY2xhc3M9ImVycm9yTXNnIGNlbnRlciI+e3suYXV0aGVudGljYXRpb25FcnJ9fTwvcD4KCiAgICA8ZGl2IGlkPSJjb250ZW50Ij4KCiAgICAgIDxmb3JtIGlkPSJhdXRoZW50aWNhdGlvbiIgYWN0aW9uPSIiIG1ldGhvZD0icG9zdCI+CgogICAgICAgIDxoNT57ey5sb2dpbi51c2VybmFtZS50aXRsZX19OjwvaDU+CiAgICAgICAgPGlucHV0IGlkPSJ1c2VybmFtZSIgdHlwZT0idGV4dCIgbmFtZT0idXNlcm5hbWUiIHBsYWNlaG9sZGVyPSJVc2VybmFtZSIgdmFsdWU9IiI+CiAgICAgICAgPGg1Pnt7LmxvZ2luLnBhc3N3b3JkLnRpdGxlfX06PC9oNT4KICAgICAgICA8aW5wdXQgaWQ9InBhc3N3b3JkIiB0eXBlPSJwYXNzd29yZCIgbmFtZT0icGFzc3dvcmQiIHBsYWNlaG9sZGVyPSJQYXNzd29yZCIgdmFsdWU9IiI+CgogICAgICA8L2Zvcm0+CgogICAgPC9kaXY+CgogICAgPGRpdiBpZD0iYm94LWZvb3RlciI+CiAgICAgIDxpbnB1dCBpZD0ic3VibWl0IiBjbGFzcz0iIiB0eXBlPSJidXR0b24iIHZhbHVlPSJ7ey5idXR0b24ubG9naW59fSIgb25jbGljaz0iamF2YXNjcmlwdDogbG9naW4oKTsiPgogICAgPC9kaXY+CgogIDwvZGl2PgoKPC9ib2R5PgoKPC9odG1sPg==" + webUI["html/maintenance.html"] = "PCFkb2N0eXBlIGh0bWw+CjxodG1sPgoKPGhlYWQ+CiAgPG1ldGEgY2hhcnNldD0idXRmLTgiPgogIDxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgsIGluaXRpYWwtc2NhbGU9MS4wIiAvPgogIDx0aXRsZT54VGVWZTwvdGl0bGU+CiAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJjc3Mvc2NyZWVuLmNzcyIgdHlwZT0idGV4dC9jc3MiPgogIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iY3NzL2Jhc2UuY3NzIiB0eXBlPSJ0ZXh0L2NzcyI+CjwvaGVhZD4KCjxib2R5PgoKICA8ZGl2IGlkPSJoZWFkZXIiIGNsYXNzPSJpbWdDZW50ZXIiPjwvZGl2PgoKICA8ZGl2IGlkPSJib3giPgoKICAgIDxkaXYgaWQ9ImhlYWRsaW5lIj4KICAgICAgPGgxIGlkPSJoZWFkLXRleHQiIGNsYXNzPSJjZW50ZXIiPk1haW50ZW5hbmNlPC9oMT4KICAgIDwvZGl2PgoKICAgIDxkaXYgaWQ9ImNvbnRlbnQiPgogICAgICB4VGVWZSBpcyB1cGRhdGluZyB0aGUgZGF0YWJhc2UsIHBsZWFzZSB0cnkgYWdhaW4gbGF0ZXIuCiAgICA8L2Rpdj4KCiAgICA8ZGl2IGlkPSJib3gtZm9vdGVyIj48L2Rpdj4KCiAgPC9kaXY+Cgo8L2JvZHk+Cgo8L2h0bWw+" webUI["html/video/stream-limit.ts"] = "R0AREABC8CUAAcEAAP8B/wAB/IAUSBIBBkZGbXBlZwlTZXJ2aWNlMDF3fEPK//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////9HQAAQAACwDQABwQAAAAHwACqxBLL//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////0dQABAAArASAAHBAADhAPAAG+EA8AAVvU1W////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////R0EAMAdQAAB7DH4AAAAB4AAAgMAKMQAJEKERAAfYYQAAAAEJ8AAAAAFnZAAorNlAeAIn5cBEAAADAAQAAAMAyDxgxlgAAAABaOvjyyLAAAABBgX//6rcRem95tlIt5Ys2CDZI+7veDI2NCAtIGNvcmUgMTUyIHIyODU0IGU5YTU5MDMgLSBILjI2NC9NUEVHLTQgQVZDIGNvZGVjIC0gQ29weWxlZnQgMjAwMy0yMDE3IC0gaHR0cDovL3dHAQARd3cudmlkZW9sYW4ub3JnL3gyNjQuaHRtbCAtIG9wdGlvbnM6IGNhYmFjPTEgcmVmPTMgZGVibG9jaz0xOjA6MCBhbmFseXNlPTB4MzoweDExMyBtZT1oZXggc3VibWU9NyBwc3k9MSBwc3lfcmQ9MS4wMDowLjAwIG1peGVkX3JlZj0xIG1lX3JhbmdlPTE2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ACqxBLL//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////0dQABEAArASAAHBAADhAPAAG+EA8AAVvU1W////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////RwEAGO10tGlFAwyE91Tzg8923ovJk1dv2xh1gVlYQFtWdZ6NSQ8vgHM7/tMfIZPsqgCU856rdBJJRMDaor/oWA7pkvSmC2aqaC5fd/mkWUPTuG8fRhGqOY1rKxLNSI3HtTQAcuVBxRM0NfMw0ky/JMJYZiCgXcNsxpxl+khr/9fKtO5Fg2VNBti92xcZimHUZDJMQTBOY6vSR9L1N2O/kJQCpdfuc9bkcUTMjH/es/lAySxvbiislkohqkpHAQAZVatwHI0t9eHCUfDyWUEtuCNyDwQFOVMtaYEQJrTrhQX0VduT86F0u0wN9ag0uPsrmX6Rid/x5S7KI1SkS+qP6cdmgSP57uiF4dG6IKsWNfGBLY09H/CFlrg73WINQkkp2diKkdEmtZetn8+ZAKzR5eXN5FebiKt6pIkNLuSofjosypEs2o6boKsfpmbtOV0idOeWDM9C8EIcn3aZwk1s2KBDvt1DlY+i2Cuvhk3XoKLT+pq/bOC5QkcBABolcOXneZXLoQw9W1PH1f/of92Ytjj8okrWijcQAKlE5l8XoTb9qrOiZnDOhqwcMlB9H9rorq041I89hChohYoSkJElcM8V+r8WYN5axD1BNyfwaHAOm4UN2/VEYOkNSfMjmx2S0WW/F2ha8Jj4fc4QgqcXr+TnnbwqLkLTValK4Qa1pcv7PIbDq6zCUfxe04guZ8xEhPQjp17/G6IB/6uq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wnibxQ/cXEblVnM47wbCN3iy4eHjYB5MoIICrSYmd8nt4V0toLs084KJlmnur5FbApYM4W79ff4oZkW88Cg8Fv8TnWhh1Hqc4UlhMbRKm2QxDgfBxar3U7BwNR6prrXXjqfR7ja3tPli+H7Jez/xcTg32QpHAQAdTa7pSSgBvmOqzz175NAFIhwE9p3d71F9jLvhaPv8q1iKopL0kizwzEWElnXWmNhfLkl/Au8KujnoKUaxVdTe+zAZm2dOkejnpNVtVj0Aw9wKcG3ZQ1iRZrUFRIoPKYlmR+oi0LrupuhYABtgPbdCbDtezGTr0nw9wVd/rZ6V+1wcoJ6+8VAVueIdwI3brqm6EoFHiI8L6lER+9SefB8fHo4NYgr/I8jSxaa/2PLX2K/DjrlY6bN8fEcBAB7DXsuh8DITF6CYWj2HTFvqfzlic3QHXnHtvsTFNpyVY1LY8y/fRK2mwALN6IB5W3OuyoKiA3K0lJdQUv2gYhHWvPTV218HYrD0rkbMxRH0SiEEkrHDeOt5T1HtWD13D2/QvMu535fsfZyeaFDjdCE9M0Xi8Lfc7Xj1ZNGend7Jo7/cEiczFkc1vB4z2JpFGZreV2EdquyEzC2STFJtfimyx8QlLngEuR1cxH+lWEcFX+mvBa/eqktIRwEAH6VazFLPNsnHZqsI66TVoArQuUUGFAzr8MT8GZ9V6qpZa5D0jA/4eGi6Kq0smUgRExnqIbSMLWqDf/Pk2YT3MpHTu9VE3Dn9blgB6KsVIkWnB98Y2n/6DrZDcF94Ndu0Ka4U/RZwdV5O5KcO+lU2ZiIOYTYZ6Ie0d+tApxYxJ+YmxaDoCyRNe6crw/yzR5SflT8ddi/E2BM+l+nwVDiKZ/714fmrBxFKWuqLiQNHV19o1cZ8Ubun+ZtHQAASAACwDQABwQAAAAHwACqxBLL//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////0dQABIAArASAAHBAADhAPAAG+EA8AAVvU1W////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////RwEAEH1s3BdtHdF1ln55B24wdACF/ggcRtPmB4IUB6cZJ+m32I4R48ZkdhAFBulgWcsv0wZwH0o1yi3i4qm3rJ98AUKdB9PsNyG9gURV0bTw4myAj6g5Dgodfv6w9bsbOxsGUWkvgAJ3rrR010BvZbIa6CMRCQRjxkCfRF77ansRJZT0JzhtYeSS/ZJob8Rr2jrng3W2rkmHtE+rdqlPiHxmwkRZvYGhBxwiJO2L6f+l/cABsfs09rA+A0pHAQAREZay3TBUIAfMWhApE+LaPgeyOYtaPFONA9aC0h4QrFkaLZfb86678MK+zLgqDBsDoj50eZHMVcczRjs4sYlv7RG8RIWKb5lB9Kn/8+CkxiiA11cHH1yzLX2SKCmhsak/+P/zYQ1EDvEj33bl9e3Jd62cTI+Qw99KrsWnUMN8hFNeXzoGHA3aec+Li4NFboF8sa6lCPR6Csxsvxw8DJaWCnER5Z0p+nKhXavF/eNHQ0DX47ohycc87UcBABKsYHCHXXe3vK1cFYDWO6rhwM6hxCdJ+/X+VB1akQejL6iBMdUPuadUqBnbprwJM0dWpSSn9uuZZeqe46iZOGIJUo69d8x+ZSvPcBH/dK1Y0LJnoWdgWH51SQg7eYqcwjQW3BOy7ZF02Hn1EhTuhsN7ms8zv3WIeEBDBq0T3Idl+Tmw9iJU9skVYiwygHG2+0XwrLa6y+uiQPwMzrnEr1kuf24XoAqrJTZQiVH3aQF4d94yDreWu2KPRwEAE2FsynHZaUcBXEFbeX0nSxZ7sRcRjJvc7RYOny6N8QFwKDVO7jpRWWYM55kuepBOyZ+7BFYeG+FU1kR+ZfmqyDNkD4D1IPwNh6u9JQxDymfN/aMcQC3WxdvCKquPsAut6dugpGkOFtIe+W3ayc4V/J978P+h1EDFMbFjxRPuXht0K2dBQZCJ0ybISUDqWzhPuep8CdxSU4MvMVfdXh7FLl/BqKJUTT+vM+Pz3XnqCQQmH5TjQ4CK55VHAQAUEtgfkBwIYgtwHkhjmtLw7HNTeJeMfTjATEKcyuKzItSeYxHBmGzQ/+G2otpPCOkVAXJ9mfx7LxrW4joZ0ttTRQJ/wqMUK1IN349LiJoo8y/+FwN4jPNDwIleJG697riqnmLOweFW8spHKLBfnHcyC1pG6EIxFpTqUQ0KHqXD/KXIHKioJNAOVwQ1Gfloxebo/Tdtd00dpHP3gcsAOnV75APCYOjVIlwm2X6ViDeZw6Btdb/Br/+yokcBABU3+eOESLlneGbR5SLiL8wPkoRaZ5X7xFlMTMvsv9yHk26bVdmsubSdbYS1Hy64n0+NnL7C1aLD7aJxOudMjVW5goZbfO2KxBQkCD4HFA284wbaB5vOL7mRilCn6YEs1kiwf22+fBLNUmXDb2p353wrD/ygTDhlki66USvUmd/ZAs9uzAddegEzy7Xn00YysWTu/hegYyZtWFC+X5dhLubWJ7n96y5wjrP7PAOXoQQtFUH9j/rBiP/7RwEAFnL/wYKYuj80mPGtimSbF/E9K7XwjwBz8yHZubmVMTCmwkZBM4h0FR1thnUGiSjqjJT6SfunWCZ/dZDQplrzS00UKcUP399SyM+nNG1br8Za0ZYwWch8nyLHYXSRuxdnrfUUespsOQo1cWSLGf0pV2HIcHoiAAEKwPU6irB5BSoFvB1qKVjgEk+QwAEYAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAABHAQA3pAD/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////AwAAAwAAAwAAAwAAAwAAAwBbwUdBABgAAAHgAACAwAoxAAmBIREAB/SBAAAAAQnwAAAAAUGaJGxDv/6plgAAAwAAAwAAAwAAAwAAAwAAAwAAAwAKCKB0AIhy1ftwLNISWucTFC7xeBcaIzP3oZjZo8uT9hqZVstWGnrPz+vjaA5FuCO+K2w7/o39LygDO7aL+0zSrN90LW7r133x8+f+PEKk8d7pd2fj4RYuMOXOYunzFzRX/4IvR1XsK5WJYwVkOca3yfo7DTvUBP9rgSiTRwEAGQD6CFK1PBC4qYCa+coLVnX+jgODNrau5YJXIekDI4+wUNV+5T5HE4e2t5EGAjn77+kC1Vghmvx8KqPnylVUvsaTofheggxHsPuxn1zQt6nA59UglrRUMn8b4pmrvfqTBSqU949+AcNAI6M/eAqz6r0RG5KNeBhx8R2f0x2kujwHU3pc3rlPb6ZrFM/2HiG97eEIezrvWFG7YAAAAwAAAwAE1KRo1VfbdZQ/tOpNGxFmTcQoFidyD2tHAQAapTTIErUKA2Rc9uIzGJu+oW0uNOxRyl6oJNUNJp5L9TIshNS1CmUKgdCaE3LkLwdE8iUkUnIGfWLiWpWmjzsINYC8dnDaSptB53yJkBu0SsR00oo1PZ0pl4ZzoXGSYQJTPaVCbj6FNqm5wcnUqKTB/rgHdPdnDj0K8asLABeo/n3XCXrDorI+LYSD1FBgmV9O7RZdjfL0NnXOQkiq/ZGirwVV0cUF1aHtZx1yHlAAZKuuu7TqB13CAUcBADuRAP///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////yj/IrOvAEoXDNGy+nrxWN0l8cmuqWYaUJpuM9XgAAADAAADAAKmR0EAPAcQAACJHH4AAAAB4AAAgMAKMQAJSOERAAkQoQAAAAEJ8AAAAAFBnkJ4hf8AAAMAAAMAAAMAAAMAAAMAAAMAAAMAC/BmhyuvLmkCgKTgACEXfOVvHRHdpBEEmTTz9pIZCa2FD0CXukzDCakOHekTpJQSdsfd7a/jjM1/5lBtKCAGQ6zOCSQ6DeKtyw+CugDuuglGipwmvQW+FIDjnZ6HRd0uaSOGy6VB3h9MI1o4nqaCqVwwIgubYZFHAQA9XgD////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////WcZrO6BEiqf8pCxYwlz2mkdUzY/ipM/TIHS4m5xQAAAMAAAMAAA5sVm90p14dlvWgBgY7XQ9KVOJKLtaMAN5KiffVQtNuzW5DfL+RewZpAAADAAADAAAQMUdBAB4AAAHgAACAgAUhAAkswQAAAAEJ8AAAAAEBnmF0Qr8AAAMAAAMAAAMAAAMAAAMAAAMAAAMAABJfBjP2+4+W7ZybyT130+Ma4WSqICfd/dS4YtjrLlmh5VBlfrtwJqdN1PBTYDkwGOOONqZQeFN6lLGJoDzvuh3kv1aDBLqug+JhvrSeu5ebnvcrtQzb2REwJL3h9mvtkr0WfDu4AAADAAADAAs32Y4C/6Ns79oCGj6oqLltY3T4I0/QRwEAP5wA//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////8BeoWLRnKQmVgO/RBoBfcK85AAAAMAAAMACFhHQQAwBxAAAJcsfgAAAAHgAACAwAoxAAllAREACUjhAAAAAQnwAAAAAQGeY2pCvwAAAwAAAwAAAwAAAwAAAwAAAwAAAwAAEmDKfLGXsvBBQPNYXlEd6WueJ4deApfcHESlG+7V6u0AiWQqJvNZYM+3Js3Lj9Ldc9yYIHqruVwfMtCYGlX3wMavI/DrhMuJw+RreIF8SKsJD8CMccAAAAMAAAMACrFZOBgEqaP/8EyWsAHV6CgcAgfyox/roEcBADGuAP//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////AAADAAADAHTBR0EAEgAAAeAAAIDACjEACfGhEQAJZQEAAAABCfAAAAABQZpoSahBaJlMCHf//qmWAAADAAADAAADAAADAAADAAADAAADAAALf8A2bry6lUyIAQGNFfVK2Cd7h4qDqmqpvmXfkfTwo2Ab79AHhajxJ4MPWIgAAA84xLRIx7I2CrWjWe96OvgkzgS9mtvhuxdzAgpuIOJI3DEY9mviDDZz8XSAAAADAAADAB7AZkj9AAHHGvk+Pzlku8UkWa5HAQAzogD//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////6HjAkbF/gsWuvw4QAAAAwAAAwAccUdBADQHEAAApTx+AAAAAeAAAIDACjEACblhEQAJgSEAAAABCfAAAAABQZ6GRREsL/8AAAMAAAMAAAMAAAMAAAMAAAMAAAMAAA3URJB/3lMHSmOd0GYZnfpoR80WdqxlyHzPX+V81VUMeXIGrRgq5agd+ACdjoGI036yQ/rmpGw0CmMBrKwpI+nwFo3SP0s1rI2yHBZaiPJjSUgw33rBkxXcq55kfLf2sAAAAwAAAwACBWolidWDnIeQAAADRwEANbEA//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////8AAAMADulHQQA2NAD///////////////////////////////////////////////////////////////////8AAAHgAACAgAUhAAmdQQAAAAEJ8AAAAAEBnqV0Qr8AAAMAAAMAAAMAAAMAAAMAAAMAAAMAABJXNihCnx11JUosH2hBE53O/YN+GPHqcnJiQBIf3maTAAj5iRt+7GYUKBAU9iCXTiouCjGYgAAAAwAAAwA9p4HQBg2cAAADAAADAADGgUdBADc4EAAAs0x+AP////////////////////////////////////////////////////////////////8AAAHgAACAwAoxAAnVgREACblhAAAAAQnwAAAAAQGep2pCvwAAAwAAAwAAAwAAAwAAAwAAAwAAAwAAAwBR6/L83y+ZevtMZ0FW4lp8qV7fVXQAhLAWlS6mDxvpaSUgChorvgTMXtxJEIAAAAMAAAMACqFCAAADAAADAAADAAz4R0EAOCsA////////////////////////////////////////////////////////AAAB4AAAgMAKMQALYiERAAnVgQAAAAEJ8AAAAAFBmqxJqEFsmUwId//+qZYAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAApQTq0hABLvkcWCYrAaRRPNDrECJGlF/11BYvG9+JJ9Y86nxnmQzPxtAAe1UgOsXAAADAAADAAADAAADAAADAAADAAADA/JHQQA5JhAAAMFcfgD/////////////////////////////////////////AAAB4AAAgMAKMQALKeERAAnxoQAAAAEJ8AAAAAFBnspFFSwv/wAAAwAAAwAAAwAAAwAAAwAAAwAAAwAADdRFmvrVE0KXDOGwWddlwYa1foib7tXZKmkua6R4APb4b8+tXwdSNNqgf2IVNwGTohgQAcMvp6SiQxpiQym4AAADAAADAANUNUAAAAMAAAMAAAMBN0dBADo8AP//////////////////////////////////////////////////////////////////////////////AAAB4AAAgIAFIQALDcEAAAABCfAAAAABAZ7pdEK/AAADAAADAAADAAADAAADAAADAAADAAADAFHTAfujIUaaLSuklb9y0/so9AEtQAqkAxOviALQZ5jNt/iOkABrCOZ4md0iUnFwAAADAAADAALwckAAAAMAAAMAAATcR0EAO0IQAADPbH4A//////////////////////////////////////////////////////////////////////////////8AAAHgAACAwAoxAAtGAREACynhAAAAAQnwAAAAAQGe62pCvwAAAwAAAwAAAwAAAwAAAwAAAwAAAwAAAwBR6/L83y+WryR9gmVKPGbIhJpkgAFgHCej3gB6rAHPgHHAAAADAAADAAAYIV0AAAMAAAMAAAMABnxHQQA8UQD//////////////////////////////////////////////////////////////////////////////////////////////////////////wAAAeAAAIDACjEAC9KhEQALRgEAAAABCfAAAAABQZrwSahBbJlMCG///qeEAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAAZ8UdBAD00EAAA3Xx+AP///////////////////////////////////////////////////////////wAAAeAAAIDACjEAC5phEQALYiEAAAABCfAAAAABQZ8ORRUsL/8AAAMAAAMAAAMAAAMAAAMAAAMAAAMAAA3URZr61RNClwzhI2ZXdRHYLZWc1yTgKRhTIXBNABHQKIIyYNyc+AaEn1jhATEAAAMAAAMAAAMAckkIAAADAAADAAADAEbBR0EAPkYA////////////////////////////////////////////////////////////////////////////////////////////AAAB4AAAgIAFIQALfkEAAAABCfAAAAABAZ8tdEK/AAADAAADAAADAAADAAADAAADAAADAAADAFHTAfujIUAYRtY0f/43cIs2OjxACR2hMR1QBGYX+34JGAAAAwAAAwAAAwKEJ6AAAAMAAAMAAAMA3oFHQQA/QhAAAOuMfgD//////////////////////////////////////////////////////////////////////////////wAAAeAAAIDACjEAC7aBEQALmmEAAAABCfAAAAABAZ8vakK/AAADAAADAAADAAADAAADAAADAAADAAADAFHr8vzfL5avJH2CZUo8ZsiEmmSAAWAcJ6PeAHqsAc+AccAAAAMAAAMAABghXQAAAwAAAwAAAwAGfEdBADBRAP//////////////////////////////////////////////////////////////////////////////////////////////////////////AAAB4AAAgMAKMQANQyERAAu2gQAAAAEJ8AAAAAFBmzRJqEFsmUwIZ//+nhAAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAGVAR0EAMTQQAAD5nH4A////////////////////////////////////////////////////////////AAAB4AAAgMAKMQANCuERAAvSoQAAAAEJ8AAAAAFBn1JFFSwv/wAAAwAAAwAAAwAAAwAAAwAAAwAAAwAADdRFmvrVE0KXDOEjZld1EdgtlZzXJOApGFMhcE0AEdAogjJg3Jz4BoSfWOEBMQAAAwAAAwAAAwBySQgAAAMAAAMAAAMARsFHQQAyRgD///////////////////////////////////////////////////////////////////////////////////////////8AAAHgAACAgAUhAAvuwQAAAAEJ8AAAAAEBn3F0Qr8AAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAUdMB+6MhQBhG1jR//jdwizY6PEAJHaExHVAEZhf7fgkYAAADAAADAAADAoQnoAAAAwAAAwAAAwDegEdBADNCEAABB6x+AP//////////////////////////////////////////////////////////////////////////////AAAB4AAAgMAKMQANJwERAA0K4QAAAAEJ8AAAAAEBn3NqQr8AAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAUevy/N8vlq8kfYJlSjxmyISaZIABYBwno94AeqwBz4BxwAAAAwAAAwAAGCFdAAADAAADAAADAAZ8R0EANFIA////////////////////////////////////////////////////////////////////////////////////////////////////////////AAAB4AAAgMAKMQANs6ERAA0nAQAAAAEJ8AAAAAFBm3hJqEFsmUwIV//+OEAAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAYtHQQA1NBAAARW8fgD///////////////////////////////////////////////////////////8AAAHgAACAwAoxAA17YREADUMhAAAAAQnwAAAAAUGflkUVLC//AAADAAADAAADAAADAAADAAADAAADAAAN1EWa+tUTQpcM4SNmV3UR2C2VnNck4CkYUyFwTQAR0CiCMmDcnPgGhJ9Y4QExAAADAAADAAADAHJJCAAAAwAAAwAAAwBGwEdBADZGAP///////////////////////////////////////////////////////////////////////////////////////////wAAAeAAAICABSEADV9BAAAAAQnwAAAAAQGftXRCvwAAAwAAAwAAAwAAAwAAAwAAAwAAAwAAAwBR0wH7oyFAGEbWNH/+N3CLNjo8QAkdoTEdUARmF/t+CRgAAAMAAAMAAAMChCegAAADAAADAAADAN6BR0EAN0IQAAEjzH4A//////////////////////////////////////////////////////////////////////////////8AAAHgAACAwAoxAA2XgREADXthAAAAAQnwAAAAAQGft2pCvwAAAwAAAwAAAwAAAwAAAwAAAwAAAwAAAwBR6/L83y+WryR9gmVKPGbIhJpkgAFgHCej3gB6rAHPgHHAAAADAAADAAAYIV0AAAMAAAMAAAMABn0=" } diff --git a/ts/base_ts.ts b/ts/base_ts.ts index 85ef423..90630ae 100644 --- a/ts/base_ts.ts +++ b/ts/base_ts.ts @@ -20,7 +20,7 @@ menuItems.push(new MainMenuItem("logout", "{{.mainMenu.item.logout}}", "logout.p // Settings categories var settingsCategory = new Array() -settingsCategory.push(new SettingsCategoryItem("{{.settings.category.general}}", "tlsMode,xteveAutoUpdate,hostIP,tuner,epgSource,disallowURLDuplicates,clearXMLTVCache,api")) +settingsCategory.push(new SettingsCategoryItem("{{.settings.category.general}}", "tlsMode,xteveAutoUpdate,hostIP,hostName,tuner,epgSource,disallowURLDuplicates,clearXMLTVCache,api")) settingsCategory.push(new SettingsCategoryItem("{{.settings.category.mapping}}", "defaultMissingEPG,enableMappedChannels")) settingsCategory.push(new SettingsCategoryItem("{{.settings.category.files}}", "update,files.update,temp.path,cache.images,xepg.replace.missing.images")) settingsCategory.push(new SettingsCategoryItem("{{.settings.category.streaming}}", "buffer,udpxy,buffer.size.kb,storeBufferInRAM,buffer.timeout,user.agent,ffmpeg.path,ffmpeg.options,vlc.path,vlc.options")) diff --git a/ts/settings_ts.ts b/ts/settings_ts.ts index 720eceb..b9064c5 100644 --- a/ts/settings_ts.ts +++ b/ts/settings_ts.ts @@ -371,8 +371,19 @@ class SettingsCategory { setting.appendChild(tdLeft) setting.appendChild(tdRight) - break - + break; + + case "hostName": + var tdLeft = document.createElement("TD"); + tdLeft.innerHTML = "{{.settings.hostName.title}}" + ":"; + var tdRight = document.createElement("TD"); + var input = content.createInput("text", "hostName", data); + input.setAttribute("placeholder", "{{.settings.hostName.placeholder}}"); + input.setAttribute("onchange", "javascript: this.className = 'changed'"); + tdRight.appendChild(input); + setting.appendChild(tdLeft); + setting.appendChild(tdRight); + break; case "tuner": var tdLeft = document.createElement("TD") tdLeft.innerHTML = "{{.settings.tuner.title}}" + ":" @@ -595,7 +606,11 @@ class SettingsCategory { case "hostIP": text = "{{.settings.hostIP.description}}" - break + break; + + case "hostName": + text = "{{.settings.hostName.description}}" + break; case "tuner": text = "{{.settings.tuner.description}}" diff --git a/xteve.go b/xteve.go index 9c0da99..4550074 100644 --- a/xteve.go +++ b/xteve.go @@ -37,7 +37,7 @@ var GitHub = GitHubStruct{Branch: "master", User: "SCP002", Repo: "xTeVe", Updat const Name = "xTeVe" // Version : Version, the Build Number is parsed in the main func -const Version = "2.5.0.0000" +const Version = "2.5.1.0000" // DBVersion : Database Version const DBVersion = "2.3.0" From d3ca2cd96018140552375f9b6d0b09294c60354f Mon Sep 17 00:00:00 2001 From: Senex Crenshaw Date: Tue, 23 Aug 2022 20:17:55 +0000 Subject: [PATCH 131/189] Update savesettings for HostName --- Dockerfile | 2 +- src/webUI.go | 2 +- src/webserver.go | 11 +++++++++++ 3 files changed, 13 insertions(+), 2 deletions(-) diff --git a/Dockerfile b/Dockerfile index 39dda24..2e4323f 100644 --- a/Dockerfile +++ b/Dockerfile @@ -9,7 +9,7 @@ FROM golang:bullseye AS builder # Download the source code # Uncomment the below line to force git pull (no cache) -#ADD "https://www.random.org/cgi-bin/randbyte?nbytes=10&format=h" skipcache +ADD "https://www.random.org/cgi-bin/randbyte?nbytes=10&format=h" skipcache RUN git clone https://github.com/SenexCrenshaw/xTeVe.git /src WORKDIR /src diff --git a/src/webUI.go b/src/webUI.go index 29cebb8..5dbf2b4 100644 --- a/src/webUI.go +++ b/src/webUI.go @@ -32,7 +32,7 @@ func loadHTMLMap() { webUI["html/js/menu_ts.js"] = "Y2xhc3MgTWFpbk1lbnUgewogICAgY29uc3RydWN0b3IoKSB7CiAgICAgICAgdGhpcy5Eb2N1bWVudElEID0gIm1haW4tbWVudSI7CiAgICAgICAgdGhpcy5IVE1MVGFnID0gIkxJIjsKICAgICAgICB0aGlzLkltYWdlUGF0aCA9ICJpbWcvIjsKICAgIH0KICAgIGNyZWF0ZUlNRyhzcmMpIHsKICAgICAgICBsZXQgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIklNRyIpOwogICAgICAgIGVsZW1lbnQuc2V0QXR0cmlidXRlKCJzcmMiLCB0aGlzLkltYWdlUGF0aCArIHNyYyk7CiAgICAgICAgcmV0dXJuIGVsZW1lbnQ7CiAgICB9CiAgICBjcmVhdGVWYWx1ZSh2YWx1ZSkgewogICAgICAgIGxldCBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiUCIpOwogICAgICAgIGVsZW1lbnQuaW5uZXJIVE1MID0gdmFsdWU7CiAgICAgICAgcmV0dXJuIGVsZW1lbnQ7CiAgICB9Cn0KY2xhc3MgTWFpbk1lbnVJdGVtIGV4dGVuZHMgTWFpbk1lbnUgewogICAgY29uc3RydWN0b3IobWVudUtleSwgdmFsdWUsIGltYWdlLCBoZWFkbGluZSkgewogICAgICAgIHN1cGVyKCk7CiAgICAgICAgdGhpcy5tZW51S2V5ID0gbWVudUtleTsKICAgICAgICB0aGlzLnZhbHVlID0gdmFsdWU7CiAgICAgICAgdGhpcy5pbWdTcmMgPSBpbWFnZTsKICAgICAgICB0aGlzLmhlYWRsaW5lID0gaGVhZGxpbmU7CiAgICB9CiAgICBjcmVhdGVJdGVtKCkgewogICAgICAgIGxldCBpdGVtID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiTEkiKTsKICAgICAgICBpdGVtLnNldEF0dHJpYnV0ZSgib25jbGljayIsICJqYXZhc2NyaXB0OiBvcGVuVGhpc01lbnUodGhpcykiKTsKICAgICAgICBpdGVtLnNldEF0dHJpYnV0ZSgiaWQiLCB0aGlzLmlkKTsKICAgICAgICBsZXQgaW1nID0gdGhpcy5jcmVhdGVJTUcodGhpcy5pbWdTcmMpOwogICAgICAgIGxldCB2YWx1ZSA9IHRoaXMuY3JlYXRlVmFsdWUodGhpcy52YWx1ZSk7CiAgICAgICAgaXRlbS5hcHBlbmRDaGlsZChpbWcpOwogICAgICAgIGl0ZW0uYXBwZW5kQ2hpbGQodmFsdWUpOwogICAgICAgIGxldCBkb2MgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCh0aGlzLkRvY3VtZW50SUQpOwogICAgICAgIGRvYy5hcHBlbmRDaGlsZChpdGVtKTsKICAgICAgICBzd2l0Y2ggKHRoaXMubWVudUtleSkgewogICAgICAgICAgICBjYXNlICJwbGF5bGlzdCI6CiAgICAgICAgICAgICAgICB0aGlzLnRhYmxlSGVhZGVyID0gWyJ7ey5wbGF5bGlzdC50YWJsZS5wbGF5bGlzdH19IiwgInt7LnBsYXlsaXN0LnRhYmxlLnR1bmVyfX0iLCAie3sucGxheWxpc3QudGFibGUubGFzdFVwZGF0ZX19IiwgInt7LnBsYXlsaXN0LnRhYmxlLmF2YWlsYWJpbGl0eX19ICUiLCAie3sucGxheWxpc3QudGFibGUudHlwZX19IiwgInt7LnBsYXlsaXN0LnRhYmxlLnN0cmVhbXN9fSIsICJ7ey5wbGF5bGlzdC50YWJsZS5ncm91cFRpdGxlfX0gJSIsICJ7ey5wbGF5bGlzdC50YWJsZS50dmdJRH19ICUiLCAie3sucGxheWxpc3QudGFibGUudW5pcXVlSUR9fSAlIl07CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAieG1sdHYiOgogICAgICAgICAgICAgICAgdGhpcy50YWJsZUhlYWRlciA9IFsie3sueG1sdHYudGFibGUuZ3VpZGV9fSIsICJ7ey54bWx0di50YWJsZS5sYXN0VXBkYXRlfX0iLCAie3sueG1sdHYudGFibGUuYXZhaWxhYmlsaXR5fX0gJSIsICJ7ey54bWx0di50YWJsZS5jaGFubmVsc319IiwgInt7LnhtbHR2LnRhYmxlLnByb2dyYW1zfX0iXTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJmaWx0ZXIiOgogICAgICAgICAgICAgICAgdGhpcy50YWJsZUhlYWRlciA9IFsie3suZmlsdGVyLnRhYmxlLnN0YXJ0aW5nQ2hhbm5lbH19IiwgInt7LmZpbHRlci50YWJsZS5uYW1lfX0iLCAie3suZmlsdGVyLnRhYmxlLnR5cGV9fSIsICJ7ey5maWx0ZXIudGFibGUuZmlsdGVyfX0iXTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJ1c2VycyI6CiAgICAgICAgICAgICAgICB0aGlzLnRhYmxlSGVhZGVyID0gWyJ7ey51c2Vycy50YWJsZS51c2VybmFtZX19IiwgInt7LnVzZXJzLnRhYmxlLnBhc3N3b3JkfX0iLCAie3sudXNlcnMudGFibGUud2VifX0iLCAie3sudXNlcnMudGFibGUucG1zfX0iLCAie3sudXNlcnMudGFibGUubTN1fX0iLCAie3sudXNlcnMudGFibGUueG1sfX0iLCAie3sudXNlcnMudGFibGUuYXBpfX0iXTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJtYXBwaW5nIjoKICAgICAgICAgICAgICAgIHRoaXMudGFibGVIZWFkZXIgPSBbIkJVTEsiLCAie3subWFwcGluZy50YWJsZS5jaE5vfX0iLCAie3subWFwcGluZy50YWJsZS5sb2dvfX0iLCAie3subWFwcGluZy50YWJsZS5jaGFubmVsTmFtZX19IiwgInt7Lm1hcHBpbmcudGFibGUudXBkYXRlQ2hhbm5lbE5hbWVSZWdleH19IiwgInt7Lm1hcHBpbmcudGFibGUucGxheWxpc3R9fSIsICJ7ey5tYXBwaW5nLnRhYmxlLmdyb3VwVGl0bGV9fSIsICJ7ey5tYXBwaW5nLnRhYmxlLnhtbHR2RmlsZX19IiwgInt7Lm1hcHBpbmcudGFibGUueG1sdHZJRH19IiwgInt7Lm1hcHBpbmcudGFibGUudGltZXNoaWZ0fX0iXTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgIH0KICAgIH0KfQpjbGFzcyBDb250ZW50IHsKICAgIGNvbnN0cnVjdG9yKCkgewogICAgICAgIHRoaXMuRG9jdW1lbnRJRCA9ICJjb250ZW50IjsKICAgICAgICB0aGlzLlRhYmxlSUQgPSAiY29udGVudF90YWJsZSI7CiAgICAgICAgdGhpcy5oZWFkZXJDbGFzcyA9ICJjb250ZW50X3RhYmxlX2hlYWRlciI7CiAgICAgICAgdGhpcy5pbnRlcmFjdGlvbklEID0gImNvbnRlbnQtaW50ZXJhY3Rpb24iOwogICAgfQogICAgY3JlYXRlSGVhZGxpbmUodmFsdWUpIHsKICAgICAgICBsZXQgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIkgzIik7CiAgICAgICAgZWxlbWVudC5pbm5lckhUTUwgPSB2YWx1ZTsKICAgICAgICByZXR1cm4gZWxlbWVudDsKICAgIH0KICAgIGNyZWF0ZUhSKCkgewogICAgICAgIHJldHVybiBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJIUiIpOwogICAgfQogICAgY3JlYXRlSW50ZXJhY3Rpb24oKSB7CiAgICAgICAgbGV0IGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJESVYiKTsKICAgICAgICBlbGVtZW50LnNldEF0dHJpYnV0ZSgiaWQiLCB0aGlzLmludGVyYWN0aW9uSUQpOwogICAgICAgIHJldHVybiBlbGVtZW50OwogICAgfQogICAgY3JlYXRlRElWKCkgewogICAgICAgIGxldCBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiRElWIik7CiAgICAgICAgZWxlbWVudC5pZCA9IHRoaXMuRGl2SUQ7CiAgICAgICAgcmV0dXJuIGVsZW1lbnQ7CiAgICB9CiAgICBjcmVhdGVUQUJMRSgpIHsKICAgICAgICBsZXQgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlRBQkxFIik7CiAgICAgICAgZWxlbWVudC5pZCA9IHRoaXMuVGFibGVJRDsKICAgICAgICByZXR1cm4gZWxlbWVudDsKICAgIH0KICAgIGNyZWF0ZVRhYmxlUm93KCkgewogICAgICAgIGxldCBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVFIiKTsKICAgICAgICBlbGVtZW50LmNsYXNzTmFtZSA9IHRoaXMuaGVhZGVyQ2xhc3M7CiAgICAgICAgcmV0dXJuIGVsZW1lbnQ7CiAgICB9CiAgICBjcmVhdGVUYWJsZUNvbnRlbnQobWVudUtleSkgewogICAgICAgIGxldCBkYXRhID0ge307CiAgICAgICAgbGV0IHJvd3MgPSBbXTsKICAgICAgICBsZXQgZmlsZVR5cGVzID0gW107CiAgICAgICAgc3dpdGNoIChtZW51S2V5KSB7CiAgICAgICAgICAgIGNhc2UgInBsYXlsaXN0IjoKICAgICAgICAgICAgICAgIGZpbGVUeXBlcyA9IFsibTN1IiwgImhkaHIiXTsKICAgICAgICAgICAgICAgIGZpbGVUeXBlcy5mb3JFYWNoKGZpbGVUeXBlID0+IHsKICAgICAgICAgICAgICAgICAgICBkYXRhID0gU0VSVkVSWyJzZXR0aW5ncyJdWyJmaWxlcyJdW2ZpbGVUeXBlXTsKICAgICAgICAgICAgICAgICAgICB2YXIga2V5cyA9IGdldE93bk9ialByb3BzKGRhdGEpOwogICAgICAgICAgICAgICAgICAgIGtleXMuZm9yRWFjaChrZXkgPT4gewogICAgICAgICAgICAgICAgICAgICAgICB2YXIgdHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJUUiIpOwogICAgICAgICAgICAgICAgICAgICAgICB0ci5pZCA9IGtleTsKICAgICAgICAgICAgICAgICAgICAgICAgdHIuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgiJyArIGZpbGVUeXBlICsgJyIsIHRoaXMpJyk7CiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsKICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7CiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOwogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJuYW1lIl07CiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsKICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOwogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7CiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChTRVJWRVJbInNldHRpbmdzIl1bImJ1ZmZlciJdICE9ICItIikgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsidHVuZXIiXTsKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSAiLSI7CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOwogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7CiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOwogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsKICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsibGFzdC51cGRhdGUiXTsKICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOwogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7CiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOwogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsKICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsicHJvdmlkZXIuYXZhaWxhYmlsaXR5Il07CiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsKICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOwogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7CiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bInR5cGUiXS50b1VwcGVyQ2FzZSgpOwogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7CiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsKICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7CiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOwogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJjb21wYXRpYmlsaXR5Il1bInN0cmVhbXMiXTsKICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOwogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7CiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOwogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsKICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsiY29tcGF0aWJpbGl0eSJdWyJncm91cC50aXRsZSJdOwogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7CiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsKICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7CiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOwogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJjb21wYXRpYmlsaXR5Il1bInR2Zy5pZCJdOwogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7CiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsKICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7CiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOwogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJjb21wYXRpYmlsaXR5Il1bInN0cmVhbS5pZCJdOwogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7CiAgICAgICAgICAgICAgICAgICAgICAgIHJvd3MucHVzaCh0cik7CiAgICAgICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJmaWx0ZXIiOgogICAgICAgICAgICAgICAgZGVsZXRlIFNFUlZFUlsic2V0dGluZ3MiXVsiZmlsdGVyIl1bLTFdOwogICAgICAgICAgICAgICAgZGF0YSA9IFNFUlZFUlsic2V0dGluZ3MiXVsiZmlsdGVyIl07CiAgICAgICAgICAgICAgICB2YXIga2V5cyA9IGdldE93bk9ialByb3BzKGRhdGEpOwogICAgICAgICAgICAgICAga2V5cy5mb3JFYWNoKGtleSA9PiB7CiAgICAgICAgICAgICAgICAgICAgdmFyIHRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVFIiKTsKICAgICAgICAgICAgICAgICAgICB0ci5pZCA9IGtleTsKICAgICAgICAgICAgICAgICAgICB0ci5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCInICsgZGF0YVtrZXldWyJ0eXBlIl0gKyAnIiwgdGhpcyknKTsKICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7CiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7CiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7CiAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsic3RhcnRpbmdDaGFubmVsIl07CiAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOwogICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsKICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsKICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJuYW1lIl07CiAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOwogICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsKICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsKICAgICAgICAgICAgICAgICAgICBzd2l0Y2ggKGRhdGFba2V5XVsidHlwZSJdKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgImN1c3RvbS1maWx0ZXIiOgogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9ICJ7ey5maWx0ZXIuY3VzdG9tfX0iOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgImdyb3VwLXRpdGxlIjoKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSAie3suZmlsdGVyLmdyb3VwfX0iOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOwogICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsKICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsKICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJmaWx0ZXIiXTsKICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7CiAgICAgICAgICAgICAgICAgICAgcm93cy5wdXNoKHRyKTsKICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgInhtbHR2IjoKICAgICAgICAgICAgICAgIGZpbGVUeXBlcyA9IG5ldyBBcnJheSgieG1sdHYiKTsKICAgICAgICAgICAgICAgIGZpbGVUeXBlcy5mb3JFYWNoKGZpbGVUeXBlID0+IHsKICAgICAgICAgICAgICAgICAgICBkYXRhID0gU0VSVkVSWyJzZXR0aW5ncyJdWyJmaWxlcyJdW2ZpbGVUeXBlXTsKICAgICAgICAgICAgICAgICAgICB2YXIga2V5cyA9IGdldE93bk9ialByb3BzKGRhdGEpOwogICAgICAgICAgICAgICAgICAgIGtleXMuZm9yRWFjaChrZXkgPT4gewogICAgICAgICAgICAgICAgICAgICAgICB2YXIgdHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJUUiIpOwogICAgICAgICAgICAgICAgICAgICAgICB0ci5pZCA9IGtleTsKICAgICAgICAgICAgICAgICAgICAgICAgdHIuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgiJyArIGZpbGVUeXBlICsgJyIsIHRoaXMpJyk7CiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsKICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7CiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOwogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJuYW1lIl07CiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsKICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOwogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7CiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bImxhc3QudXBkYXRlIl07CiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsKICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOwogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7CiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bInByb3ZpZGVyLmF2YWlsYWJpbGl0eSJdOwogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7CiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsKICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7CiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOwogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJjb21wYXRpYmlsaXR5Il1bInhtbHR2LmNoYW5uZWxzIl07CiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsKICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOwogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7CiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bImNvbXBhdGliaWxpdHkiXVsieG1sdHYucHJvZ3JhbXMiXTsKICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOwogICAgICAgICAgICAgICAgICAgICAgICByb3dzLnB1c2godHIpOwogICAgICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAidXNlcnMiOgogICAgICAgICAgICAgICAgZmlsZVR5cGVzID0gbmV3IEFycmF5KCJ1c2VycyIpOwogICAgICAgICAgICAgICAgZmlsZVR5cGVzLmZvckVhY2goZmlsZVR5cGUgPT4gewogICAgICAgICAgICAgICAgICAgIGRhdGEgPSBTRVJWRVJbZmlsZVR5cGVdOwogICAgICAgICAgICAgICAgICAgIHZhciBrZXlzID0gZ2V0T3duT2JqUHJvcHMoZGF0YSk7CiAgICAgICAgICAgICAgICAgICAga2V5cy5mb3JFYWNoKGtleSA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgIHZhciB0ciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlRSIik7CiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmlkID0ga2V5OwogICAgICAgICAgICAgICAgICAgICAgICB0ci5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCInICsgZmlsZVR5cGUgKyAnIiwgdGhpcyknKTsKICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOwogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7CiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bImRhdGEiXVsidXNlcm5hbWUiXTsKICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOwogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7CiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOwogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsKICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9ICIqKioqKioiOwogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7CiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsKICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7CiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOwogICAgICAgICAgICAgICAgICAgICAgICBpZiAoZGF0YVtrZXldWyJkYXRhIl1bImF1dGhlbnRpY2F0aW9uLndlYiJdID09IHRydWUpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSAi4pyTIjsKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSAiLSI7CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOwogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7CiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOwogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsKICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGRhdGFba2V5XVsiZGF0YSJdWyJhdXRoZW50aWNhdGlvbi5wbXMiXSA9PSB0cnVlKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gIuKckyI7CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gIi0iOwogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsKICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOwogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7CiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChkYXRhW2tleV1bImRhdGEiXVsiYXV0aGVudGljYXRpb24ubTN1Il0gPT0gdHJ1ZSkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9ICLinJMiOwogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9ICItIjsKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7CiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsKICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7CiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOwogICAgICAgICAgICAgICAgICAgICAgICBpZiAoZGF0YVtrZXldWyJkYXRhIl1bImF1dGhlbnRpY2F0aW9uLnhtbCJdID09IHRydWUpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSAi4pyTIjsKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSAiLSI7CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOwogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7CiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOwogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsKICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGRhdGFba2V5XVsiZGF0YSJdWyJhdXRoZW50aWNhdGlvbi5hcGkiXSA9PSB0cnVlKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gIuKckyI7CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gIi0iOwogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsKICAgICAgICAgICAgICAgICAgICAgICAgcm93cy5wdXNoKHRyKTsKICAgICAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgIm1hcHBpbmciOgogICAgICAgICAgICAgICAgQlVMS19FRElUID0gZmFsc2U7CiAgICAgICAgICAgICAgICBjcmVhdGVTZWFyY2hPYmooKTsKICAgICAgICAgICAgICAgIGNoZWNrVW5kbygiZXBnTWFwcGluZyIpOwogICAgICAgICAgICAgICAgZGF0YSA9IFNFUlZFUlsieGVwZyJdWyJlcGdNYXBwaW5nIl07CiAgICAgICAgICAgICAgICB2YXIga2V5cyA9IGdldE93bk9ialByb3BzKGRhdGEpOwogICAgICAgICAgICAgICAga2V5cy5mb3JFYWNoKGtleSA9PiB7CiAgICAgICAgICAgICAgICAgICAgdmFyIHRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVFIiKTsKICAgICAgICAgICAgICAgICAgICB0ci5pZCA9IGtleTsKICAgICAgICAgICAgICAgICAgICBzd2l0Y2ggKGRhdGFba2V5XVsieC1hY3RpdmUiXSkgewogICAgICAgICAgICAgICAgICAgICAgICBjYXNlIHRydWU6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ci5jbGFzc05hbWUgPSAiYWN0aXZlRVBHIjsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICAgICAgICBjYXNlIGZhbHNlOgogICAgICAgICAgICAgICAgICAgICAgICAgICAgdHIuY2xhc3NOYW1lID0gIm5vdEFjdGl2ZUVQRyI7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgLy8gQnVsawogICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsKICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJCVUxLIjsKICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZmFsc2U7CiAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOwogICAgICAgICAgICAgICAgICAgIC8vIENoYW5uZWwgbnVtYmVyCiAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOwogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOwogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIklOUFVUQ0hBTk5FTCI7CiAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsieC1jaGFubmVsSUQiXTsKICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7CiAgICAgICAgICAgICAgICAgICAgLy8gTG9nbwogICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsKICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJJTUciOwogICAgICAgICAgICAgICAgICAgIGNlbGwuaW1hZ2VVUkwgPSBkYXRhW2tleV1bInR2Zy1sb2dvIl07CiAgICAgICAgICAgICAgICAgICAgdmFyIHRkID0gY2VsbC5jcmVhdGVDZWxsKCk7CiAgICAgICAgICAgICAgICAgICAgdGQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgibWFwcGluZyIsIHRoaXMpJyk7CiAgICAgICAgICAgICAgICAgICAgdGQuaWQgPSBrZXk7CiAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQodGQpOwogICAgICAgICAgICAgICAgICAgIC8vIENoYW5uZWwgbmFtZQogICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsKICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsKICAgICAgICAgICAgICAgICAgICBjZWxsLmNsYXNzTmFtZSA9IGRhdGFba2V5XVsieC1jYXRlZ29yeSJdOwogICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bIngtbmFtZSJdOwogICAgICAgICAgICAgICAgICAgIHZhciB0ZCA9IGNlbGwuY3JlYXRlQ2VsbCgpOwogICAgICAgICAgICAgICAgICAgIHRkLnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoIm1hcHBpbmciLCB0aGlzKScpOwogICAgICAgICAgICAgICAgICAgIHRkLmlkID0ga2V5OwogICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKHRkKTsKICAgICAgICAgICAgICAgICAgICAvLyBVcGRhdGUgY2hhbm5lbCBuYW1lIHJlZ2V4CiAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOwogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOwogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOwogICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bInVwZGF0ZS1jaGFubmVsLW5hbWUtcmVnZXgiXTsKICAgICAgICAgICAgICAgICAgICB2YXIgdGQgPSBjZWxsLmNyZWF0ZUNlbGwoKTsKICAgICAgICAgICAgICAgICAgICB0ZC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJtYXBwaW5nIiwgdGhpcyknKTsKICAgICAgICAgICAgICAgICAgICB0ZC5pZCA9IGtleTsKICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZCh0ZCk7CiAgICAgICAgICAgICAgICAgICAgLy8gUGxheWxpc3QKICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7CiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7CiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7CiAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGdldFZhbHVlRnJvbVByb3ZpZGVyRmlsZShkYXRhW2tleV1bIl9maWxlLm0zdS5pZCJdLCAibTN1IiwgIm5hbWUiKTsKICAgICAgICAgICAgICAgICAgICB2YXIgdGQgPSBjZWxsLmNyZWF0ZUNlbGwoKTsKICAgICAgICAgICAgICAgICAgICB0ZC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJtYXBwaW5nIiwgdGhpcyknKTsKICAgICAgICAgICAgICAgICAgICB0ZC5pZCA9IGtleTsKICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZCh0ZCk7CiAgICAgICAgICAgICAgICAgICAgLy8gR3JvdXAgKGdyb3VwLXRpdGxlKQogICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsKICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsKICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJ4LWdyb3VwLXRpdGxlIl07CiAgICAgICAgICAgICAgICAgICAgdmFyIHRkID0gY2VsbC5jcmVhdGVDZWxsKCk7CiAgICAgICAgICAgICAgICAgICAgdGQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgibWFwcGluZyIsIHRoaXMpJyk7CiAgICAgICAgICAgICAgICAgICAgdGQuaWQgPSBrZXk7CiAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQodGQpOwogICAgICAgICAgICAgICAgICAgIC8vIFhNTFRWIGZpbGUKICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7CiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7CiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7CiAgICAgICAgICAgICAgICAgICAgaWYgKGRhdGFba2V5XVsieC14bWx0di1maWxlIl0gIT0gIi0iKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBnZXRWYWx1ZUZyb21Qcm92aWRlckZpbGUoZGF0YVtrZXldWyJ4LXhtbHR2LWZpbGUiXSwgInhtbHR2IiwgIm5hbWUiKTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bIngteG1sdHYtZmlsZSJdOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB2YXIgdGQgPSBjZWxsLmNyZWF0ZUNlbGwoKTsKICAgICAgICAgICAgICAgICAgICB0ZC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJtYXBwaW5nIiwgdGhpcyknKTsKICAgICAgICAgICAgICAgICAgICB0ZC5pZCA9IGtleTsKICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZCh0ZCk7CiAgICAgICAgICAgICAgICAgICAgLy8gWE1MVFYgQ2hhbm5lbAogICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsKICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsKICAgICAgICAgICAgICAgICAgICB2YXIgdmFsdWUgPSBkYXRhW2tleV1bIngtbWFwcGluZyJdOwogICAgICAgICAgICAgICAgICAgIGlmICh2YWx1ZS5sZW5ndGggPiAyMCkgewogICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IGRhdGFba2V5XVsieC1tYXBwaW5nIl0uc3Vic3RyaW5nKDAsIDIwKSArICIuLi4iOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gdmFsdWU7CiAgICAgICAgICAgICAgICAgICAgdmFyIHRkID0gY2VsbC5jcmVhdGVDZWxsKCk7CiAgICAgICAgICAgICAgICAgICAgdGQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgibWFwcGluZyIsIHRoaXMpJyk7CiAgICAgICAgICAgICAgICAgICAgdGQuaWQgPSBrZXk7CiAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQodGQpOwogICAgICAgICAgICAgICAgICAgIC8vIFRpbWVTaGlmdAogICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsKICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsKICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJ4LXRpbWVzaGlmdCJdOwogICAgICAgICAgICAgICAgICAgIHZhciB0ZCA9IGNlbGwuY3JlYXRlQ2VsbCgpOwogICAgICAgICAgICAgICAgICAgIHRkLnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoIm1hcHBpbmciLCB0aGlzKScpOwogICAgICAgICAgICAgICAgICAgIHRkLmlkID0ga2V5OwogICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKHRkKTsKICAgICAgICAgICAgICAgICAgICByb3dzLnB1c2godHIpOwogICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAic2V0dGluZ3MiOgogICAgICAgICAgICAgICAgYWxlcnQoKTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgfQogICAgICAgIHJldHVybiByb3dzOwogICAgfQp9CmNsYXNzIENlbGwgewogICAgY3JlYXRlQ2VsbCgpIHsKICAgICAgICBsZXQgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOwogICAgICAgIGlmICh0aGlzLmNoaWxkID09IHRydWUpIHsKICAgICAgICAgICAgdmFyIGVsZW1lbnQ7CiAgICAgICAgICAgIHN3aXRjaCAodGhpcy5jaGlsZFR5cGUpIHsKICAgICAgICAgICAgICAgIGNhc2UgIlAiOgogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KHRoaXMuY2hpbGRUeXBlKTsKICAgICAgICAgICAgICAgICAgICBlbGVtZW50LmlubmVySFRNTCA9IHRoaXMudmFsdWU7CiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC5jbGFzc05hbWUgPSB0aGlzLmNsYXNzTmFtZTsKICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgIGNhc2UgIklOUFVUIjoKICAgICAgICAgICAgICAgICAgICBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCh0aGlzLmNoaWxkVHlwZSk7CiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC52YWx1ZSA9IHRoaXMudmFsdWU7CiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC50eXBlID0gInRleHQiOwogICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgY2FzZSAiSU5QVVRDSEFOTkVMIjoKICAgICAgICAgICAgICAgICAgICBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiSU5QVVQiKTsKICAgICAgICAgICAgICAgICAgICBlbGVtZW50LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2c2NyaXB0OiBjaGFuZ2VDaGFubmVsTnVtYmVyKHRoaXMpIik7CiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC52YWx1ZSA9IHRoaXMudmFsdWU7CiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC50eXBlID0gInRleHQiOwogICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgY2FzZSAiQlVMSyI6CiAgICAgICAgICAgICAgICAgICAgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIklOUFVUIik7CiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC5jaGVja2VkID0gdGhpcy52YWx1ZTsKICAgICAgICAgICAgICAgICAgICBlbGVtZW50LnR5cGUgPSAiY2hlY2tib3giOwogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQuY2xhc3NOYW1lID0gImJ1bGsgaGlkZUJ1bGsiOwogICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgY2FzZSAiQlVMS19IRUFEIjoKICAgICAgICAgICAgICAgICAgICBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiSU5QVVQiKTsKICAgICAgICAgICAgICAgICAgICBlbGVtZW50LmNoZWNrZWQgPSB0aGlzLnZhbHVlOwogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQudHlwZSA9ICJjaGVja2JveCI7CiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC5jbGFzc05hbWUgPSAiYnVsayBoaWRlQnVsayI7CiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAiamF2YXNjcmlwdDogc2VsZWN0QWxsQ2hhbm5lbHMoKSIpOwogICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgY2FzZSAiSU1HIjoKICAgICAgICAgICAgICAgICAgICBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCh0aGlzLmNoaWxkVHlwZSk7CiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC5zZXRBdHRyaWJ1dGUoInNyYyIsIHRoaXMuaW1hZ2VVUkwpOwogICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLmltYWdlVVJMICE9ICIiKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGVsZW1lbnQuc2V0QXR0cmlidXRlKCJvbmVycm9yIiwgImphdmFzY3JpcHQ6IHRoaXMub25lcnJvcj1udWxsO3RoaXMuc3JjPScnIik7CiAgICAgICAgICAgICAgICAgICAgICAgIC8vb25lcnJvcj0idGhpcy5vbmVycm9yPW51bGw7dGhpcy5zcmM9J21pc3NpbmcuZ2lmJzsiCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICAgIHRkLmFwcGVuZENoaWxkKGVsZW1lbnQpOwogICAgICAgIH0KICAgICAgICBlbHNlIHsKICAgICAgICAgICAgdGQuaW5uZXJIVE1MID0gdGhpcy52YWx1ZTsKICAgICAgICB9CiAgICAgICAgaWYgKHRoaXMub25jbGljayA9PSB0cnVlKSB7CiAgICAgICAgICAgIHRkLnNldEF0dHJpYnV0ZSgib25jbGljayIsIHRoaXMub25jbGlja0Z1bmN0aW9uKTsKICAgICAgICAgICAgdGQuY2xhc3NOYW1lID0gInBvaW50ZXIiOwogICAgICAgIH0KICAgICAgICBpZiAodGhpcy50ZENsYXNzTmFtZSAhPSB1bmRlZmluZWQpIHsKICAgICAgICAgICAgdGQuY2xhc3NOYW1lID0gdGhpcy50ZENsYXNzTmFtZTsKICAgICAgICB9CiAgICAgICAgcmV0dXJuIHRkOwogICAgfQp9CmNsYXNzIFNob3dDb250ZW50IGV4dGVuZHMgQ29udGVudCB7CiAgICBjb25zdHJ1Y3RvcihtZW51SUQpIHsKICAgICAgICBzdXBlcigpOwogICAgICAgIHRoaXMubWVudUlEID0gbWVudUlEOwogICAgfQogICAgY3JlYXRlSW5wdXQodHlwZSwgbmFtZSwgdmFsdWUpIHsKICAgICAgICBsZXQgaW5wdXQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJJTlBVVCIpOwogICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgidHlwZSIsIHR5cGUpOwogICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgibmFtZSIsIG5hbWUpOwogICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgidmFsdWUiLCB2YWx1ZSk7CiAgICAgICAgcmV0dXJuIGlucHV0OwogICAgfQogICAgc2hvdygpIHsKICAgICAgICBDT0xVTU5fVE9fU09SVCA9IC0xOwogICAgICAgIC8vIERlbGV0ZSBvbGQgY29udGVudAogICAgICAgIGxldCBkb2MgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCh0aGlzLkRvY3VtZW50SUQpOwogICAgICAgIGRvYy5pbm5lckhUTUwgPSAiIjsKICAgICAgICBzaG93UHJldmlldyhmYWxzZSk7CiAgICAgICAgLy8gSGVhZGxpbmUKICAgICAgICBsZXQgaGVhZGxpbmUgPSBtZW51SXRlbXNbdGhpcy5tZW51SURdLmhlYWRsaW5lOwogICAgICAgIGxldCBtZW51S2V5ID0gbWVudUl0ZW1zW3RoaXMubWVudUlEXS5tZW51S2V5OwogICAgICAgIGxldCBoID0gdGhpcy5jcmVhdGVIZWFkbGluZShoZWFkbGluZSk7CiAgICAgICAgZG9jLmFwcGVuZENoaWxkKGgpOwogICAgICAgIGxldCBociA9IHRoaXMuY3JlYXRlSFIoKTsKICAgICAgICBkb2MuYXBwZW5kQ2hpbGQoaHIpOwogICAgICAgIC8vIEludGVyYWN0aW9uCiAgICAgICAgbGV0IGRpdiA9IHRoaXMuY3JlYXRlSW50ZXJhY3Rpb24oKTsKICAgICAgICBkb2MuYXBwZW5kQ2hpbGQoZGl2KTsKICAgICAgICBsZXQgaW50ZXJhY3Rpb24gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCh0aGlzLmludGVyYWN0aW9uSUQpOwogICAgICAgIHN3aXRjaCAobWVudUtleSkgewogICAgICAgICAgICBjYXNlICJwbGF5bGlzdCI6CiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSB0aGlzLmNyZWF0ZUlucHV0KCJidXR0b24iLCBtZW51S2V5LCAie3suYnV0dG9uLm5ld319Iik7CiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoImlkIiwgIi0iKTsKICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoInBsYXlsaXN0IiknKTsKICAgICAgICAgICAgICAgIGludGVyYWN0aW9uLmFwcGVuZENoaWxkKGlucHV0KTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJmaWx0ZXIiOgogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gdGhpcy5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgbWVudUtleSwgInt7LmJ1dHRvbi5uZXd9fSIpOwogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJpZCIsIC0xKTsKICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoImZpbHRlciIsIHRoaXMpJyk7CiAgICAgICAgICAgICAgICBpbnRlcmFjdGlvbi5hcHBlbmRDaGlsZChpbnB1dCk7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAieG1sdHYiOgogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gdGhpcy5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgbWVudUtleSwgInt7LmJ1dHRvbi5uZXd9fSIpOwogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJpZCIsICJ4bWx0diIpOwogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgieG1sdHYiKScpOwogICAgICAgICAgICAgICAgaW50ZXJhY3Rpb24uYXBwZW5kQ2hpbGQoaW5wdXQpOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgInVzZXJzIjoKICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IHRoaXMuY3JlYXRlSW5wdXQoImJ1dHRvbiIsIG1lbnVLZXksICJ7ey5idXR0b24ubmV3fX0iKTsKICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgiaWQiLCAidXNlcnMiKTsKICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoInVzZXJzIiknKTsKICAgICAgICAgICAgICAgIGludGVyYWN0aW9uLmFwcGVuZENoaWxkKGlucHV0KTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJtYXBwaW5nIjoKICAgICAgICAgICAgICAgIHNob3dFbGVtZW50KCJsb2FkaW5nIiwgdHJ1ZSk7CiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSB0aGlzLmNyZWF0ZUlucHV0KCJidXR0b24iLCBtZW51S2V5LCAie3suYnV0dG9uLnNhdmV9fSIpOwogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoIm1hcHBpbmciLCAiIiwgIiIpJyk7CiAgICAgICAgICAgICAgICBpbnRlcmFjdGlvbi5hcHBlbmRDaGlsZChpbnB1dCk7CiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSB0aGlzLmNyZWF0ZUlucHV0KCJidXR0b24iLCBtZW51S2V5LCAie3suYnV0dG9uLmJ1bGtFZGl0fX0iKTsKICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBidWxrRWRpdCgpJyk7CiAgICAgICAgICAgICAgICBpbnRlcmFjdGlvbi5hcHBlbmRDaGlsZChpbnB1dCk7CiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSB0aGlzLmNyZWF0ZUlucHV0KCJzZWFyY2giLCAic2VhcmNoIiwgIiIpOwogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJpZCIsICJzZWFyY2hNYXBwaW5nIik7CiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LmJ1dHRvbi5zZWFyY2h9fSIpOwogICAgICAgICAgICAgICAgaW5wdXQuY2xhc3NOYW1lID0gInNlYXJjaCI7CiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgJ2phdmFzY3JpcHQ6IHNlYXJjaEluTWFwcGluZygpJyk7CiAgICAgICAgICAgICAgICBpbnRlcmFjdGlvbi5hcHBlbmRDaGlsZChpbnB1dCk7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAic2V0dGluZ3MiOgogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gdGhpcy5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgbWVudUtleSwgInt7LmJ1dHRvbi5zYXZlfX0iKTsKICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBzYXZlU2V0dGluZ3MoKTsnKTsKICAgICAgICAgICAgICAgIGludGVyYWN0aW9uLmFwcGVuZENoaWxkKGlucHV0KTsKICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IHRoaXMuY3JlYXRlSW5wdXQoImJ1dHRvbiIsIG1lbnVLZXksICJ7ey5idXR0b24uYmFja3VwfX0iKTsKICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBiYWNrdXAoKTsnKTsKICAgICAgICAgICAgICAgIGludGVyYWN0aW9uLmFwcGVuZENoaWxkKGlucHV0KTsKICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IHRoaXMuY3JlYXRlSW5wdXQoImJ1dHRvbiIsIG1lbnVLZXksICJ7ey5idXR0b24ucmVzdG9yZX19Iik7CiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogcmVzdG9yZSgpOycpOwogICAgICAgICAgICAgICAgaW50ZXJhY3Rpb24uYXBwZW5kQ2hpbGQoaW5wdXQpOwogICAgICAgICAgICAgICAgdmFyIHdyYXBwZXIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJESVYiKTsKICAgICAgICAgICAgICAgIHdyYXBwZXIuc2V0QXR0cmlidXRlKCJpZCIsICJib3gtd3JhcHBlciIpOwogICAgICAgICAgICAgICAgZG9jLmFwcGVuZENoaWxkKHdyYXBwZXIpOwogICAgICAgICAgICAgICAgdGhpcy5EaXZJRCA9ICJjb250ZW50X3NldHRpbmdzIjsKICAgICAgICAgICAgICAgIHZhciBzZXR0aW5ncyA9IHRoaXMuY3JlYXRlRElWKCk7CiAgICAgICAgICAgICAgICB3cmFwcGVyLmFwcGVuZENoaWxkKHNldHRpbmdzKTsKICAgICAgICAgICAgICAgIHNob3dTZXR0aW5ncygpOwogICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICBjYXNlICJsb2ciOgogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gdGhpcy5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgbWVudUtleSwgInt7LmJ1dHRvbi5yZXNldExvZ3N9fSIpOwogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IHJlc2V0TG9ncygpOycpOwogICAgICAgICAgICAgICAgaW50ZXJhY3Rpb24uYXBwZW5kQ2hpbGQoaW5wdXQpOwogICAgICAgICAgICAgICAgdmFyIHdyYXBwZXIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJESVYiKTsKICAgICAgICAgICAgICAgIHdyYXBwZXIuc2V0QXR0cmlidXRlKCJpZCIsICJib3gtd3JhcHBlciIpOwogICAgICAgICAgICAgICAgZG9jLmFwcGVuZENoaWxkKHdyYXBwZXIpOwogICAgICAgICAgICAgICAgdGhpcy5EaXZJRCA9ICJjb250ZW50X2xvZyI7CiAgICAgICAgICAgICAgICB2YXIgbG9ncyA9IHRoaXMuY3JlYXRlRElWKCk7CiAgICAgICAgICAgICAgICB3cmFwcGVyLmFwcGVuZENoaWxkKGxvZ3MpOwogICAgICAgICAgICAgICAgc2hvd0xvZ3ModHJ1ZSk7CiAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgIGNhc2UgImxvZ291dCI6CiAgICAgICAgICAgICAgICBsb2NhdGlvbi5yZWxvYWQoKTsKICAgICAgICAgICAgICAgIGRvY3VtZW50LmNvb2tpZSA9ICJUb2tlbj0gOyBleHBpcmVzID0gVGh1LCAwMSBKYW4gMTk3MCAwMDowMDowMCBHTVQiOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICB9CiAgICAgICAgLy8gQ3JlYXRlIHRhYmxlIChpZiBuZWVkZWQpCiAgICAgICAgdmFyIHRhYmxlSGVhZGVyID0gbWVudUl0ZW1zW3RoaXMubWVudUlEXS50YWJsZUhlYWRlcjsKICAgICAgICBpZiAodGFibGVIZWFkZXIubGVuZ3RoID4gMCkgewogICAgICAgICAgICB2YXIgd3JhcHBlciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIkRJViIpOwogICAgICAgICAgICBkb2MuYXBwZW5kQ2hpbGQod3JhcHBlcik7CiAgICAgICAgICAgIHdyYXBwZXIuc2V0QXR0cmlidXRlKCJpZCIsICJib3gtd3JhcHBlciIpOwogICAgICAgICAgICB2YXIgdGFibGUgPSB0aGlzLmNyZWF0ZVRBQkxFKCk7CiAgICAgICAgICAgIHdyYXBwZXIuYXBwZW5kQ2hpbGQodGFibGUpOwogICAgICAgICAgICB2YXIgaGVhZGVyID0gdGhpcy5jcmVhdGVUYWJsZVJvdygpOwogICAgICAgICAgICB0YWJsZS5hcHBlbmRDaGlsZChoZWFkZXIpOwogICAgICAgICAgICAvLyBUYWJsZSBoZWFkZXIKICAgICAgICAgICAgdGFibGVIZWFkZXIuZm9yRWFjaChlbGVtZW50ID0+IHsKICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsKICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOwogICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7CiAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZWxlbWVudDsKICAgICAgICAgICAgICAgIGlmIChlbGVtZW50ID09ICJCVUxLIikgewogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIkJVTEtfSEVBRCI7CiAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGZhbHNlOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgaWYgKG1lbnVLZXkgPT0gIm1hcHBpbmciKSB7CiAgICAgICAgICAgICAgICAgICAgaWYgKGVsZW1lbnQgPT0gInt7Lm1hcHBpbmcudGFibGUuY2hOb319IikgewogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLm9uY2xpY2sgPSB0cnVlOwogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLm9uY2xpY2tGdW5jdGlvbiA9ICJqYXZhc2NyaXB0OiBzb3J0VGFibGUoMSk7IjsKICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC50ZENsYXNzTmFtZSA9ICJzb3J0VGhpcyI7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIGlmIChlbGVtZW50ID09ICJ7ey5tYXBwaW5nLnRhYmxlLmNoYW5uZWxOYW1lfX0iKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwub25jbGljayA9IHRydWU7CiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwub25jbGlja0Z1bmN0aW9uID0gImphdmFzY3JpcHQ6IHNvcnRUYWJsZSgzKTsiOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBpZiAoZWxlbWVudCA9PSAie3subWFwcGluZy50YWJsZS51cGRhdGVDaGFubmVsTmFtZVJlZ2V4fX0iKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwub25jbGljayA9IHRydWU7CiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwub25jbGlja0Z1bmN0aW9uID0gImphdmFzY3JpcHQ6IHNvcnRUYWJsZSg0KTsiOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBpZiAoZWxlbWVudCA9PSAie3subWFwcGluZy50YWJsZS5wbGF5bGlzdH19IikgewogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLm9uY2xpY2sgPSB0cnVlOwogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLm9uY2xpY2tGdW5jdGlvbiA9ICJqYXZhc2NyaXB0OiBzb3J0VGFibGUoNSk7IjsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgaWYgKGVsZW1lbnQgPT0gInt7Lm1hcHBpbmcudGFibGUuZ3JvdXBUaXRsZX19IikgewogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLm9uY2xpY2sgPSB0cnVlOwogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLm9uY2xpY2tGdW5jdGlvbiA9ICJqYXZhc2NyaXB0OiBzb3J0VGFibGUoNik7IjsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgaWYgKGVsZW1lbnQgPT0gInt7Lm1hcHBpbmcudGFibGUudGltZXNoaWZ0fX0iKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwub25jbGljayA9IHRydWU7CiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwub25jbGlja0Z1bmN0aW9uID0gImphdmFzY3JpcHQ6IHNvcnRUYWJsZSg5KTsiOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGlmIChtZW51S2V5ID09ICJmaWx0ZXIiKSB7CiAgICAgICAgICAgICAgICAgICAgaWYgKGVsZW1lbnQgPT0gInt7LmZpbHRlci50YWJsZS5zdGFydGluZ0NoYW5uZWx9fSIpIHsKICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5vbmNsaWNrID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5vbmNsaWNrRnVuY3Rpb24gPSAiamF2YXNjcmlwdDogc29ydFRhYmxlKDApOyI7CiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudGRDbGFzc05hbWUgPSAic29ydFRoaXMiOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBpZiAoZWxlbWVudCA9PSAie3suZmlsdGVyLnRhYmxlLm5hbWV9fSIpIHsKICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5vbmNsaWNrID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5vbmNsaWNrRnVuY3Rpb24gPSAiamF2YXNjcmlwdDogc29ydFRhYmxlKDEpOyI7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIGlmIChlbGVtZW50ID09ICJ7ey5maWx0ZXIudGFibGUudHlwZX19IikgewogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLm9uY2xpY2sgPSB0cnVlOwogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLm9uY2xpY2tGdW5jdGlvbiA9ICJqYXZhc2NyaXB0OiBzb3J0VGFibGUoMik7IjsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgaWYgKGVsZW1lbnQgPT0gInt7LmZpbHRlci50YWJsZS5maWx0ZXJ9fSIpIHsKICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5vbmNsaWNrID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5vbmNsaWNrRnVuY3Rpb24gPSAiamF2YXNjcmlwdDogc29ydFRhYmxlKDMpOyI7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgaGVhZGVyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsKICAgICAgICAgICAgfSk7CiAgICAgICAgICAgIHRhYmxlLmFwcGVuZENoaWxkKGhlYWRlcik7CiAgICAgICAgICAgIC8vIENvbnRlbnQgb2YgdGhlIHRhYmxlCiAgICAgICAgICAgIHZhciByb3dzID0gdGhpcy5jcmVhdGVUYWJsZUNvbnRlbnQobWVudUtleSk7CiAgICAgICAgICAgIHJvd3MuZm9yRWFjaCh0ciA9PiB7CiAgICAgICAgICAgICAgICB0YWJsZS5hcHBlbmRDaGlsZCh0cik7CiAgICAgICAgICAgIH0pOwogICAgICAgIH0KICAgICAgICBzd2l0Y2ggKG1lbnVLZXkpIHsKICAgICAgICAgICAgY2FzZSAibWFwcGluZyI6CiAgICAgICAgICAgICAgICBzb3J0VGFibGUoMSk7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAiZmlsdGVyIjoKICAgICAgICAgICAgICAgIHNob3dQcmV2aWV3KHRydWUpOwogICAgICAgICAgICAgICAgc29ydFRhYmxlKDApOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICAgICBDT0xVTU5fVE9fU09SVCA9IC0xOwogICAgICAgICAgICAgICAgc29ydFRhYmxlKDApOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgfQogICAgICAgIHNob3dFbGVtZW50KCJsb2FkaW5nIiwgZmFsc2UpOwogICAgfQp9CmZ1bmN0aW9uIFBhZ2VSZWFkeSgpIHsKICAgIGxldCBzZXJ2ZXIgPSBuZXcgU2VydmVyKCJnZXRTZXJ2ZXJDb25maWciKTsKICAgIHNlcnZlci5yZXF1ZXN0KHt9KTsKICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJyZXNpemUiLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgY2FsY3VsYXRlV3JhcHBlckhlaWdodCgpOwogICAgfSwgdHJ1ZSk7CiAgICBzZXRJbnRlcnZhbChmdW5jdGlvbiAoKSB7CiAgICAgICAgdXBkYXRlTG9nKCk7CiAgICB9LCAxMDAwMCk7CiAgICByZXR1cm47Cn0KZnVuY3Rpb24gY3JlYXRlTGF5b3V0KCkgewogICAgLy8gQ2xpZW50IEluZm8KICAgIGxldCBvYmogPSBTRVJWRVJbImNsaWVudEluZm8iXTsKICAgIGxldCBrZXlzID0gZ2V0T3duT2JqUHJvcHMob2JqKTsKICAgIGZvciAodmFyIGkgPSAwOyBpIDwga2V5cy5sZW5ndGg7IGkrKykgewogICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGtleXNbaV0pLmlubmVySFRNTCA9IG9ialtrZXlzW2ldXTsKICAgICAgICBpZiAoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoa2V5c1tpXSkpIHsKICAgICAgICAgICAgaWYgKGxvY2F0aW9uLnByb3RvY29sID09PSAnaHR0cHM6JykgewogICAgICAgICAgICAgICAgaWYgKGtleXNbaV0gPT09ICJ4ZXBnLXVybCIgfHwga2V5c1tpXSA9PT0gIm0zdS11cmwiIHx8IGtleXNbaV0gPT09ICJEVlIiKSB7CiAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoa2V5c1tpXSkuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCBmdW5jdGlvbiAoZXZlbnQpIHsKICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdGFyZ2V0ID0gZXZlbnQudGFyZ2V0OwogICAgICAgICAgICAgICAgICAgICAgICBuYXZpZ2F0b3IuY2xpcGJvYXJkLndyaXRlVGV4dCh0YXJnZXQuaW5uZXJUZXh0LnNwbGl0KCIgIilbMF0pLnRoZW4oKCkgPT4geyB9KTsKICAgICAgICAgICAgICAgICAgICB9LCBmYWxzZSk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CiAgICBpZiAoIWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJtYWluLW1lbnUiKSkgewogICAgICAgIHJldHVybjsKICAgIH0KICAgIC8vIENyZWF0ZSBtZW51CiAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibWFpbi1tZW51IikuaW5uZXJIVE1MID0gIiI7CiAgICBmb3IgKGxldCBpID0gMDsgaSA8IG1lbnVJdGVtcy5sZW5ndGg7IGkrKykgewogICAgICAgIG1lbnVJdGVtc1tpXS5pZCA9IGk7CiAgICAgICAgc3dpdGNoIChtZW51SXRlbXNbaV1bIm1lbnVLZXkiXSkgewogICAgICAgICAgICBjYXNlICJ1c2VycyI6CiAgICAgICAgICAgIGNhc2UgImxvZ291dCI6CiAgICAgICAgICAgICAgICBpZiAoU0VSVkVSWyJzZXR0aW5ncyJdWyJhdXRoZW50aWNhdGlvbi53ZWIiXSA9PSB0cnVlKSB7CiAgICAgICAgICAgICAgICAgICAgbWVudUl0ZW1zW2ldLmNyZWF0ZUl0ZW0oKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJtYXBwaW5nIjoKICAgICAgICAgICAgY2FzZSAieG1sdHYiOgogICAgICAgICAgICAgICAgaWYgKFNFUlZFUlsiY2xpZW50SW5mbyJdWyJlcGdTb3VyY2UiXSA9PSAiWEVQRyIpIHsKICAgICAgICAgICAgICAgICAgICBtZW51SXRlbXNbaV0uY3JlYXRlSXRlbSgpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICAgICBtZW51SXRlbXNbaV0uY3JlYXRlSXRlbSgpOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgfQogICAgfQogICAgcmV0dXJuOwp9CmZ1bmN0aW9uIG9wZW5UaGlzTWVudShlbGVtZW50KSB7CiAgICBsZXQgaWQgPSBlbGVtZW50LmlkOwogICAgbGV0IGNvbnRlbnQgPSBuZXcgU2hvd0NvbnRlbnQoaWQpOwogICAgY29udGVudC5zaG93KCk7CiAgICBjYWxjdWxhdGVXcmFwcGVySGVpZ2h0KCk7CiAgICByZXR1cm47Cn0KY2xhc3MgUG9wdXBXaW5kb3cgewogICAgY29uc3RydWN0b3IoKSB7CiAgICAgICAgdGhpcy5Eb2N1bWVudElEID0gInBvcHVwLWN1c3RvbSI7CiAgICAgICAgdGhpcy5JbnRlcmFjdGlvbklEID0gImludGVyYWN0aW9uIjsKICAgICAgICB0aGlzLmRvYyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHRoaXMuRG9jdW1lbnRJRCk7CiAgICB9CiAgICBjcmVhdGVUaXRsZSh0aXRsZSkgewogICAgICAgIGxldCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7CiAgICAgICAgdGQuY2xhc3NOYW1lID0gImxlZnQiOwogICAgICAgIHRkLmlubmVySFRNTCA9IHRpdGxlICsgIjoiOwogICAgICAgIHJldHVybiB0ZDsKICAgIH0KICAgIGNyZWF0ZUNvbnRlbnQoZWxlbWVudCkgewogICAgICAgIGxldCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7CiAgICAgICAgdGQuYXBwZW5kQ2hpbGQoZWxlbWVudCk7CiAgICAgICAgcmV0dXJuIHRkOwogICAgfQogICAgY3JlYXRlSW50ZXJhY3Rpb24oKSB7CiAgICAgICAgbGV0IGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOwogICAgICAgIGRpdi5zZXRBdHRyaWJ1dGUoImlkIiwgInBvcHVwLWludGVyYWN0aW9uIik7CiAgICAgICAgZGl2LmNsYXNzTmFtZSA9ICJpbnRlcmFjdGlvbiI7CiAgICAgICAgdGhpcy5kb2MuYXBwZW5kQ2hpbGQoZGl2KTsKICAgIH0KfQpjbGFzcyBQb3B1cENvbnRlbnQgZXh0ZW5kcyBQb3B1cFdpbmRvdyB7CiAgICBjb25zdHJ1Y3RvcigpIHsKICAgICAgICBzdXBlciguLi5hcmd1bWVudHMpOwogICAgICAgIHRoaXMudGFibGUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJUQUJMRSIpOwogICAgfQogICAgY3JlYXRlSGVhZGxpbmUoaGVhZGxpbmUpIHsKICAgICAgICB0aGlzLmRvYy5pbm5lckhUTUwgPSAiIjsKICAgICAgICB2YXIgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIkgzIik7CiAgICAgICAgZWxlbWVudC5pbm5lckhUTUwgPSBoZWFkbGluZS50b1VwcGVyQ2FzZSgpOwogICAgICAgIHRoaXMuZG9jLmFwcGVuZENoaWxkKGVsZW1lbnQpOwogICAgICAgIC8vIENyZWF0ZSB0YWJsZQogICAgICAgIHRoaXMudGFibGUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJUQUJMRSIpOwogICAgICAgIHRoaXMuZG9jLmFwcGVuZENoaWxkKHRoaXMudGFibGUpOwogICAgfQogICAgYXBwZW5kUm93KHRpdGxlLCBlbGVtZW50KSB7CiAgICAgICAgbGV0IHRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVFIiKTsKICAgICAgICAvLyBUaXRsZQogICAgICAgIGlmICh0aXRsZS5sZW5ndGggIT0gMCkgewogICAgICAgICAgICB0ci5hcHBlbmRDaGlsZCh0aGlzLmNyZWF0ZVRpdGxlKHRpdGxlKSk7CiAgICAgICAgfQogICAgICAgIC8vIENvbnRlbnQKICAgICAgICB0ci5hcHBlbmRDaGlsZCh0aGlzLmNyZWF0ZUNvbnRlbnQoZWxlbWVudCkpOwogICAgICAgIHRoaXMudGFibGUuYXBwZW5kQ2hpbGQodHIpOwogICAgfQogICAgY3JlYXRlSW5wdXQodHlwZSwgbmFtZSwgdmFsdWUpIHsKICAgICAgICBsZXQgaW5wdXQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJJTlBVVCIpOwogICAgICAgIGlmICh2YWx1ZSA9PSB1bmRlZmluZWQpIHsKICAgICAgICAgICAgdmFsdWUgPSAiIjsKICAgICAgICB9CiAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJ0eXBlIiwgdHlwZSk7CiAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJuYW1lIiwgbmFtZSk7CiAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJ2YWx1ZSIsIHZhbHVlKTsKICAgICAgICByZXR1cm4gaW5wdXQ7CiAgICB9CiAgICBjcmVhdGVDaGVja2JveChuYW1lKSB7CiAgICAgICAgbGV0IGlucHV0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiSU5QVVQiKTsKICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInR5cGUiLCAiY2hlY2tib3giKTsKICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm5hbWUiLCBuYW1lKTsKICAgICAgICByZXR1cm4gaW5wdXQ7CiAgICB9CiAgICAvLyBDcmVhdGVzIGEgc2VsZWN0aW9uIG9mIG11bHRpcGxlIG9wdGlvbnMgdmFsdWVzIHdpdGggdGV4dCBkZXNjcmlwdGlvbnMKICAgIGNyZWF0ZVNlbGVjdCh0ZXh0LCB2YWx1ZXMsIHNldCwgZGJLZXkpIHsKICAgICAgICBsZXQgc2VsZWN0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiU0VMRUNUIik7CiAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgibmFtZSIsIGRiS2V5KTsKICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRleHQubGVuZ3RoOyBpKyspIHsKICAgICAgICAgICAgbGV0IG9wdGlvbiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIk9QVElPTiIpOwogICAgICAgICAgICBvcHRpb24uc2V0QXR0cmlidXRlKCJ2YWx1ZSIsIHZhbHVlc1tpXSk7CiAgICAgICAgICAgIG9wdGlvbi5pbm5lclRleHQgPSB0ZXh0W2ldOwogICAgICAgICAgICBzZWxlY3QuYXBwZW5kQ2hpbGQob3B0aW9uKTsKICAgICAgICB9CiAgICAgICAgaWYgKHNldCAhPSAiIikgewogICAgICAgICAgICBzZWxlY3QudmFsdWUgPSBzZXQ7CiAgICAgICAgfQogICAgICAgIGlmIChzZXQgPT0gdW5kZWZpbmVkKSB7CiAgICAgICAgICAgIHNlbGVjdC52YWx1ZSA9IHZhbHVlc1swXTsKICAgICAgICB9CiAgICAgICAgcmV0dXJuIHNlbGVjdDsKICAgIH0KICAgIHNlbGVjdE9wdGlvbihzZWxlY3QsIHZhbHVlKSB7CiAgICAgICAgLy9zZWxlY3Quc2VsZWN0ZWRPcHRpb25zID0gdmFsdWUKICAgICAgICBsZXQgcyA9IHNlbGVjdDsKICAgICAgICBzLm9wdGlvbnNbcy5zZWxlY3RlZEluZGV4XS52YWx1ZSA9IHZhbHVlOwogICAgICAgIHJldHVybiBzZWxlY3Q7CiAgICB9CiAgICBkZXNjcmlwdGlvbih2YWx1ZSkgewogICAgICAgIGxldCB0ciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlRSIik7CiAgICAgICAgbGV0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsKICAgICAgICBsZXQgc3BhbiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlBSRSIpOwogICAgICAgIHNwYW4uaW5uZXJIVE1MID0gdmFsdWU7CiAgICAgICAgdHIuYXBwZW5kQ2hpbGQodGQpOwogICAgICAgIHRyLmFwcGVuZENoaWxkKHRoaXMuY3JlYXRlQ29udGVudChzcGFuKSk7CiAgICAgICAgdGhpcy50YWJsZS5hcHBlbmRDaGlsZCh0cik7CiAgICB9CiAgICAvLyBJbnRlcmFjdGlvbgogICAgYWRkSW50ZXJhY3Rpb24oZWxlbWVudCkgewogICAgICAgIGxldCBpbnRlcmFjdGlvbiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJwb3B1cC1pbnRlcmFjdGlvbiIpOwogICAgICAgIGludGVyYWN0aW9uLmFwcGVuZENoaWxkKGVsZW1lbnQpOwogICAgfQp9CmZ1bmN0aW9uIG9wZW5Qb3BVcChkYXRhVHlwZSwgZWxlbWVudCkgewogICAgbGV0IGRhdGEgPSB7fTsKICAgIGxldCBpZDsKICAgIHN3aXRjaCAoZWxlbWVudCkgewogICAgICAgIGNhc2UgdW5kZWZpbmVkOgogICAgICAgICAgICBzd2l0Y2ggKGRhdGFUeXBlKSB7CiAgICAgICAgICAgICAgICBjYXNlICJncm91cC10aXRsZSI6CiAgICAgICAgICAgICAgICAgICAgaWYgKGlkID09IHVuZGVmaW5lZCkgewogICAgICAgICAgICAgICAgICAgICAgICBpZCA9IC0xOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBkYXRhID0gZ2V0TG9jYWxEYXRhKCJmaWx0ZXIiLCBpZCk7CiAgICAgICAgICAgICAgICAgICAgZGF0YVsidHlwZSJdID0gImdyb3VwLXRpdGxlIjsKICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgIGNhc2UgImN1c3RvbS1maWx0ZXIiOgogICAgICAgICAgICAgICAgICAgIGlmIChpZCA9PSB1bmRlZmluZWQpIHsKICAgICAgICAgICAgICAgICAgICAgICAgaWQgPSAtMTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgZGF0YSA9IGdldExvY2FsRGF0YSgiZmlsdGVyIiwgaWQpOwogICAgICAgICAgICAgICAgICAgIGRhdGFbInR5cGUiXSA9ICJjdXN0b20tZmlsdGVyIjsKICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICAgICAgICAgZGF0YVsiaWQucHJvdmlkZXIiXSA9ICItIjsKICAgICAgICAgICAgICAgICAgICBkYXRhWyJ0eXBlIl0gPSBkYXRhVHlwZTsKICAgICAgICAgICAgICAgICAgICBpZCA9ICItIjsKICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgfQogICAgICAgICAgICBicmVhazsKICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICBpZCA9IGVsZW1lbnQuaWQ7CiAgICAgICAgICAgIGRhdGEgPSBnZXRMb2NhbERhdGEoZGF0YVR5cGUsIGlkKTsKICAgICAgICAgICAgYnJlYWs7CiAgICB9CiAgICBsZXQgY29udGVudCA9IG5ldyBQb3B1cENvbnRlbnQoKTsKICAgIHN3aXRjaCAoZGF0YVR5cGUpIHsKICAgICAgICBjYXNlICJwbGF5bGlzdCI6CiAgICAgICAgICAgIGNvbnRlbnQuY3JlYXRlSGVhZGxpbmUoInt7LnBsYXlsaXN0LnBsYXlsaXN0VHlwZS50aXRsZX19Iik7CiAgICAgICAgICAgIC8vIFR5cGUKICAgICAgICAgICAgdmFyIHRleHQgPSBbIk0zVSIsICJIREhvbWVSdW4iXTsKICAgICAgICAgICAgdmFyIHZhbHVlcyA9IFsiamF2YXNjcmlwdDogb3BlblBvcFVwKCdtM3UnKSIsICJqYXZhc2NyaXB0OiBvcGVuUG9wVXAoJ2hkaHInKSJdOwogICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCAiIiwgInR5cGUiKTsKICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgiaWQiLCAidHlwZSIpOwogICAgICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICdqYXZhc2NyaXB0OiBjaGFuZ2VCdXR0b25BY3Rpb24odGhpcywgIm5leHQiLCAib25jbGljayIpJyk7IC8vIGNoYW5nZUJ1dHRvbkFjdGlvbgogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sucGxheWxpc3QudHlwZS50aXRsZX19Iiwgc2VsZWN0KTsKICAgICAgICAgICAgLy8gSW50ZXJhY3Rpb24KICAgICAgICAgICAgY29udGVudC5jcmVhdGVJbnRlcmFjdGlvbigpOwogICAgICAgICAgICAvLyBBYm9ydAogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAiY2FuY2VsIiwgInt7LmJ1dHRvbi5jYW5jZWx9fSIpOwogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogc2hvd0VsZW1lbnQoInBvcHVwIiwgZmFsc2UpOycpOwogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsKICAgICAgICAgICAgLy8gTmV4dAogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAibmV4dCIsICJ7ey5idXR0b24ubmV4dH19Iik7CiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoIm0zdSIpJyk7CiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgiaWQiLCAnbmV4dCcpOwogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgY2FzZSAibTN1IjoKICAgICAgICAgICAgY29udGVudC5jcmVhdGVIZWFkbGluZShkYXRhVHlwZSk7CiAgICAgICAgICAgIC8vIE5hbWUKICAgICAgICAgICAgdmFyIGRiS2V5ID0gIm5hbWUiOwogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsKICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5wbGF5bGlzdC5uYW1lLnBsYWNlaG9sZGVyfX0iKTsKICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnBsYXlsaXN0Lm5hbWUudGl0bGV9fSIsIGlucHV0KTsKICAgICAgICAgICAgLy8gRGVzY3JpcHRpb24KICAgICAgICAgICAgdmFyIGRiS2V5ID0gImRlc2NyaXB0aW9uIjsKICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7CiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3sucGxheWxpc3QuZGVzY3JpcHRpb24ucGxhY2Vob2xkZXJ9fSIpOwogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sucGxheWxpc3QuZGVzY3JpcHRpb24udGl0bGV9fSIsIGlucHV0KTsKICAgICAgICAgICAgLy8gVVJMCiAgICAgICAgICAgIHZhciBkYktleSA9ICJmaWxlLnNvdXJjZSI7CiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOwogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnBsYXlsaXN0LmZpbGVNM1UucGxhY2Vob2xkZXJ9fSIpOwogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sucGxheWxpc3QuZmlsZU0zVS50aXRsZX19IiwgaW5wdXQpOwogICAgICAgICAgICAvLyBUdW5lcgogICAgICAgICAgICBpZiAoU0VSVkVSWyJzZXR0aW5ncyJdWyJidWZmZXIiXSAhPSAiLSIpIHsKICAgICAgICAgICAgICAgIHZhciB0ZXh0ID0gW107CiAgICAgICAgICAgICAgICB2YXIgdmFsdWVzID0gW107CiAgICAgICAgICAgICAgICBmb3IgKHZhciBpID0gMTsgaSA8PSAxMDA7IGkrKykgewogICAgICAgICAgICAgICAgICAgIHRleHQucHVzaChpLnRvU3RyaW5nKCkpOwogICAgICAgICAgICAgICAgICAgIHZhbHVlcy5wdXNoKGkudG9TdHJpbmcoKSk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB2YXIgZGJLZXkgPSAidHVuZXIiOwogICAgICAgICAgICAgICAgdmFyIHNlbGVjdCA9IGNvbnRlbnQuY3JlYXRlU2VsZWN0KHRleHQsIHZhbHVlcywgZGF0YVtkYktleV0sIGRiS2V5KTsKICAgICAgICAgICAgICAgIHNlbGVjdC5zZXRBdHRyaWJ1dGUoIm9uZm9jdXMiLCAiamF2YXNjcmlwdDogcmV0dXJuOyIpOwogICAgICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnBsYXlsaXN0LnR1bmVyLnRpdGxlfX0iLCBzZWxlY3QpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgdmFyIGRiS2V5ID0gInR1bmVyIjsKICAgICAgICAgICAgICAgIGlmIChkYXRhW2RiS2V5XSA9PSB1bmRlZmluZWQpIHsKICAgICAgICAgICAgICAgICAgICBkYXRhW2RiS2V5XSA9IDE7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsKICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicmVhZG9ubHkiLCAidHJ1ZSIpOwogICAgICAgICAgICAgICAgaW5wdXQuY2xhc3NOYW1lID0gIm5vdEF2YWlsYWJsZSI7CiAgICAgICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sucGxheWxpc3QudHVuZXIudGl0bGV9fSIsIGlucHV0KTsKICAgICAgICAgICAgfQogICAgICAgICAgICBjb250ZW50LmRlc2NyaXB0aW9uKCJ7ey5wbGF5bGlzdC50dW5lci5kZXNjcmlwdGlvbn19Iik7CiAgICAgICAgICAgIC8vIEludGVyYXRpb24KICAgICAgICAgICAgY29udGVudC5jcmVhdGVJbnRlcmFjdGlvbigpOwogICAgICAgICAgICAvLyBEZWxldGUKICAgICAgICAgICAgaWYgKGRhdGFbImlkLnByb3ZpZGVyIl0gIT0gIi0iKSB7CiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAiZGVsZXRlIiwgInt7LmJ1dHRvbi5kZWxldGV9fSIpOwogICAgICAgICAgICAgICAgaW5wdXQuY2xhc3NOYW1lID0gImRlbGV0ZSI7CiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogc2F2ZVBvcHVwRGF0YSgibTN1IiwgIicgKyBpZCArICciLCB0cnVlLCAwKScpOwogICAgICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAiYmFjayIsICJ7ey5idXR0b24uYmFja319Iik7CiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJwbGF5bGlzdCIpJyk7CiAgICAgICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsKICAgICAgICAgICAgfQogICAgICAgICAgICAvLyBBYm9ydAogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAiY2FuY2VsIiwgInt7LmJ1dHRvbi5jYW5jZWx9fSIpOwogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogc2hvd0VsZW1lbnQoInBvcHVwIiwgZmFsc2UpOycpOwogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsKICAgICAgICAgICAgLy8gVXBkYXRlCiAgICAgICAgICAgIGlmIChkYXRhWyJpZC5wcm92aWRlciJdICE9ICItIikgewogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgInVwZGF0ZSIsICJ7ey5idXR0b24udXBkYXRlfX0iKTsKICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBzYXZlUG9wdXBEYXRhKCJtM3UiLCAiJyArIGlkICsgJyIsIGZhbHNlLCAxKScpOwogICAgICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgLy8gU2F2ZQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAic2F2ZSIsICJ7ey5idXR0b24uc2F2ZX19Iik7CiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBzYXZlUG9wdXBEYXRhKCJtM3UiLCAiJyArIGlkICsgJyIsIGZhbHNlLCAwKScpOwogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgY2FzZSAiaGRociI6CiAgICAgICAgICAgIGNvbnRlbnQuY3JlYXRlSGVhZGxpbmUoZGF0YVR5cGUpOwogICAgICAgICAgICAvLyBOYW1lCiAgICAgICAgICAgIHZhciBkYktleSA9ICJuYW1lIjsKICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7CiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3sucGxheWxpc3QubmFtZS5wbGFjZWhvbGRlcn19Iik7CiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5wbGF5bGlzdC5uYW1lLnRpdGxlfX0iLCBpbnB1dCk7CiAgICAgICAgICAgIC8vIERlc2NyaXB0aW9uCiAgICAgICAgICAgIHZhciBkYktleSA9ICJkZXNjcmlwdGlvbiI7CiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOwogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnBsYXlsaXN0LmRlc2NyaXB0aW9uLnBsYWNlaG9sZGVyfX0iKTsKICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnBsYXlsaXN0LmRlc2NyaXB0aW9uLnBsYWNlaG9sZGVyfX0iLCBpbnB1dCk7CiAgICAgICAgICAgIC8vIFVSTAogICAgICAgICAgICB2YXIgZGJLZXkgPSAiZmlsZS5zb3VyY2UiOwogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsKICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5wbGF5bGlzdC5maWxlSERIUi5wbGFjZWhvbGRlcn19Iik7CiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5wbGF5bGlzdC5maWxlSERIUi50aXRsZX19IiwgaW5wdXQpOwogICAgICAgICAgICAvLyBUdW5lcgogICAgICAgICAgICBpZiAoU0VSVkVSWyJzZXR0aW5ncyJdWyJidWZmZXIiXSAhPSAiLSIpIHsKICAgICAgICAgICAgICAgIHZhciB0ZXh0ID0gW107CiAgICAgICAgICAgICAgICB2YXIgdmFsdWVzID0gW107CiAgICAgICAgICAgICAgICBmb3IgKHZhciBpID0gMTsgaSA8PSAxMDA7IGkrKykgewogICAgICAgICAgICAgICAgICAgIHRleHQucHVzaChpLnRvU3RyaW5nKCkpOwogICAgICAgICAgICAgICAgICAgIHZhbHVlcy5wdXNoKGkudG9TdHJpbmcoKSk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB2YXIgZGJLZXkgPSAidHVuZXIiOwogICAgICAgICAgICAgICAgdmFyIHNlbGVjdCA9IGNvbnRlbnQuY3JlYXRlU2VsZWN0KHRleHQsIHZhbHVlcywgZGF0YVtkYktleV0sIGRiS2V5KTsKICAgICAgICAgICAgICAgIHNlbGVjdC5zZXRBdHRyaWJ1dGUoIm9uZm9jdXMiLCAiamF2YXNjcmlwdDogcmV0dXJuOyIpOwogICAgICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnBsYXlsaXN0LnR1bmVyLnRpdGxlfX0iLCBzZWxlY3QpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgdmFyIGRiS2V5ID0gInR1bmVyIjsKICAgICAgICAgICAgICAgIGlmIChkYXRhW2RiS2V5XSA9PSB1bmRlZmluZWQpIHsKICAgICAgICAgICAgICAgICAgICBkYXRhW2RiS2V5XSA9IDE7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsKICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicmVhZG9ubHkiLCAidHJ1ZSIpOwogICAgICAgICAgICAgICAgaW5wdXQuY2xhc3NOYW1lID0gIm5vdEF2YWlsYWJsZSI7CiAgICAgICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sucGxheWxpc3QudHVuZXIudGl0bGV9fSIsIGlucHV0KTsKICAgICAgICAgICAgfQogICAgICAgICAgICBjb250ZW50LmRlc2NyaXB0aW9uKCJ7ey5wbGF5bGlzdC50dW5lci5kZXNjcmlwdGlvbn19Iik7CiAgICAgICAgICAgIC8vIEludGVyYWN0aW9uCiAgICAgICAgICAgIGNvbnRlbnQuY3JlYXRlSW50ZXJhY3Rpb24oKTsKICAgICAgICAgICAgLy8gRGVsZXRlCiAgICAgICAgICAgIGlmIChkYXRhWyJpZC5wcm92aWRlciJdICE9ICItIikgewogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImRlbGV0ZSIsICJ7ey5idXR0b24uZGVsZXRlfX0iKTsKICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBzYXZlUG9wdXBEYXRhKCJoZGhyIiwgIicgKyBpZCArICciLCB0cnVlLCAwKScpOwogICAgICAgICAgICAgICAgaW5wdXQuY2xhc3NOYW1lID0gImRlbGV0ZSI7CiAgICAgICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsKICAgICAgICAgICAgfQogICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJiYWNrIiwgInt7LmJ1dHRvbi5iYWNrfX0iKTsKICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoInBsYXlsaXN0IiknKTsKICAgICAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIC8vIEFib3J0CiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJjYW5jZWwiLCAie3suYnV0dG9uLmNhbmNlbH19Iik7CiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBzaG93RWxlbWVudCgicG9wdXAiLCBmYWxzZSk7Jyk7CiAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOwogICAgICAgICAgICAvLyBVcGRhdGUKICAgICAgICAgICAgaWYgKGRhdGFbImlkLnByb3ZpZGVyIl0gIT0gIi0iKSB7CiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAidXBkYXRlIiwgInt7LmJ1dHRvbi51cGRhdGV9fSIpOwogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoImhkaHIiLCAiJyArIGlkICsgJyIsIGZhbHNlLCAxKScpOwogICAgICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgLy8gU2F2ZQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAic2F2ZSIsICJ7ey5idXR0b24uc2F2ZX19Iik7CiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBzYXZlUG9wdXBEYXRhKCJoZGhyIiwgIicgKyBpZCArICciLCBmYWxzZSwgMCknKTsKICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgIGNhc2UgImZpbHRlciI6CiAgICAgICAgICAgIGNvbnRlbnQuY3JlYXRlSGVhZGxpbmUoZGF0YVR5cGUpOwogICAgICAgICAgICAvLyBUeXBlCiAgICAgICAgICAgIHZhciBkYktleSA9ICJ0eXBlIjsKICAgICAgICAgICAgdmFyIHRleHQgPSBbIk0zVTogIiArICJ7ey5maWx0ZXIudHlwZS5ncm91cFRpdGxlfX0iLCAieFRlVmU6ICIgKyAie3suZmlsdGVyLnR5cGUuY3VzdG9tRmlsdGVyfX0iXTsKICAgICAgICAgICAgdmFyIHZhbHVlcyA9IFsiamF2YXNjcmlwdDogb3BlblBvcFVwKCdncm91cC10aXRsZScpIiwgImphdmFzY3JpcHQ6IG9wZW5Qb3BVcCgnY3VzdG9tLWZpbHRlcicpIl07CiAgICAgICAgICAgIHZhciBzZWxlY3QgPSBjb250ZW50LmNyZWF0ZVNlbGVjdCh0ZXh0LCB2YWx1ZXMsICJqYXZhc2NyaXB0OiBvcGVuUG9wVXAoJ2dyb3VwLXRpdGxlJykiLCBkYktleSk7CiAgICAgICAgICAgIHNlbGVjdC5zZXRBdHRyaWJ1dGUoImlkIiwgaWQpOwogICAgICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICdqYXZhc2NyaXB0OiBjaGFuZ2VCdXR0b25BY3Rpb24odGhpcywgIm5leHQiLCAib25jbGljayIpOycpOyAvLyBjaGFuZ2VCdXR0b25BY3Rpb24KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LmZpbHRlci50eXBlLnRpdGxlfX0iLCBzZWxlY3QpOwogICAgICAgICAgICAvLyBJbnRlcmFjdGlvbgogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUludGVyYWN0aW9uKCk7CiAgICAgICAgICAgIC8vIEFib3J0CiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJjYW5jZWwiLCAie3suYnV0dG9uLmNhbmNlbH19Iik7CiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBzaG93RWxlbWVudCgicG9wdXAiLCBmYWxzZSk7Jyk7CiAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOwogICAgICAgICAgICAvLyBOZXh0CiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJuZXh0IiwgInt7LmJ1dHRvbi5uZXh0fX0iKTsKICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgiZ3JvdXAtdGl0bGUiKScpOwogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoImlkIiwgJ25leHQnKTsKICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgIGNhc2UgImN1c3RvbS1maWx0ZXIiOgogICAgICAgIGNhc2UgImdyb3VwLXRpdGxlIjoKICAgICAgICAgICAgc3dpdGNoIChkYXRhVHlwZSkgewogICAgICAgICAgICAgICAgY2FzZSAiY3VzdG9tLWZpbHRlciI6CiAgICAgICAgICAgICAgICAgICAgY29udGVudC5jcmVhdGVIZWFkbGluZSgie3suZmlsdGVyLmN1c3RvbX19IiArICIgRmlsdGVyIik7CiAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICBjYXNlICJncm91cC10aXRsZSI6CiAgICAgICAgICAgICAgICAgICAgY29udGVudC5jcmVhdGVIZWFkbGluZSgie3suZmlsdGVyLmdyb3VwfX0iICsgIiBGaWx0ZXIiKTsKICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgfQogICAgICAgICAgICAvLyBOYW1lICAgICAgCiAgICAgICAgICAgIHZhciBkYktleSA9ICJuYW1lIjsKICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7CiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3suZmlsdGVyLm5hbWUucGxhY2Vob2xkZXJ9fSIpOwogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3suZmlsdGVyLm5hbWUudGl0bGV9fSIsIGlucHV0KTsKICAgICAgICAgICAgLy8gRGVzY3JpcHRpb24KICAgICAgICAgICAgdmFyIGRiS2V5ID0gImRlc2NyaXB0aW9uIjsKICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7CiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3suZmlsdGVyLmRlc2NyaXB0aW9uLnBsYWNlaG9sZGVyfX0iKTsKICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LmZpbHRlci5kZXNjcmlwdGlvbi50aXRsZX19IiwgaW5wdXQpOwogICAgICAgICAgICAvLyBUeXBlCiAgICAgICAgICAgIHZhciBkYktleSA9ICJ0eXBlIjsKICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiaGlkZGVuIiwgZGJLZXksIGRhdGFbZGJLZXldKTsKICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coIiIsIGlucHV0KTsKICAgICAgICAgICAgdmFyIGZpbHRlclR5cGUgPSBkYXRhW2RiS2V5XTsKICAgICAgICAgICAgc3dpdGNoIChmaWx0ZXJUeXBlKSB7CiAgICAgICAgICAgICAgICBjYXNlICJjdXN0b20tZmlsdGVyIjoKICAgICAgICAgICAgICAgICAgICAvLyBDYXNlIHNlbnNpdGl2ZQogICAgICAgICAgICAgICAgICAgIHZhciBkYktleSA9ICJjYXNlU2Vuc2l0aXZlIjsKICAgICAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KGRiS2V5KTsKICAgICAgICAgICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YVtkYktleV07CiAgICAgICAgICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LmZpbHRlci5jYXNlU2Vuc2l0aXZlLnRpdGxlfX0iLCBpbnB1dCk7CiAgICAgICAgICAgICAgICAgICAgLy8gRmlsdGVyIFJ1bGUgKEN1c3RvbSkKICAgICAgICAgICAgICAgICAgICB2YXIgZGJLZXkgPSAiZmlsdGVyIjsKICAgICAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsKICAgICAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LmZpbHRlci5maWx0ZXJSdWxlLnBsYWNlaG9sZGVyfX0iKTsKICAgICAgICAgICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3suZmlsdGVyLmZpbHRlclJ1bGUudGl0bGV9fSIsIGlucHV0KTsKICAgICAgICAgICAgICAgICAgICAvLyBTdGFydGluZyBDaGFubmVsIE51bWJlciBNYXBwaW5nCiAgICAgICAgICAgICAgICAgICAgdmFyIGRiS2V5ID0gInN0YXJ0aW5nQ2hhbm5lbCI7CiAgICAgICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7CiAgICAgICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5maWx0ZXIuc3RhcnRpbmdDaGFubmVsLnBsYWNlaG9sZGVyfX0iKTsKICAgICAgICAgICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3suZmlsdGVyLnN0YXJ0aW5nQ2hhbm5lbC50aXRsZX19IiwgaW5wdXQpOwogICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgY2FzZSAiZ3JvdXAtdGl0bGUiOgogICAgICAgICAgICAgICAgICAgIC8vYWxlcnQoZGJLZXkgKyAiICIgKyBmaWx0ZXJUeXBlKQogICAgICAgICAgICAgICAgICAgIC8vIEZpbHRlciBiYXNlZCBvbiB0aGUgZ3JvdXBzIGluIHRoZSBNM1UKICAgICAgICAgICAgICAgICAgICB2YXIgZGJLZXkgPSAiZmlsdGVyIjsKICAgICAgICAgICAgICAgICAgICB2YXIgZ3JvdXBzTTNVID0gZ2V0TG9jYWxEYXRhKCJtM3VHcm91cHMiLCAiIik7CiAgICAgICAgICAgICAgICAgICAgdmFyIHRleHQgPSBncm91cHNNM1VbInRleHQiXTsKICAgICAgICAgICAgICAgICAgICB2YXIgdmFsdWVzID0gZ3JvdXBzTTNVWyJ2YWx1ZSJdOwogICAgICAgICAgICAgICAgICAgIHZhciBzZWxlY3QgPSBjb250ZW50LmNyZWF0ZVNlbGVjdCh0ZXh0LCB2YWx1ZXMsIGRhdGFbZGJLZXldLCBkYktleSk7CiAgICAgICAgICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsKICAgICAgICAgICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3suZmlsdGVyLmZpbHRlckdyb3VwLnRpdGxlfX0iLCBzZWxlY3QpOwogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuZGVzY3JpcHRpb24oInt7LmZpbHRlci5maWx0ZXJHcm91cC5kZXNjcmlwdGlvbn19Iik7CiAgICAgICAgICAgICAgICAgICAgLy8gQ2FzZSBzZW5zZXRpdmUKICAgICAgICAgICAgICAgICAgICB2YXIgZGJLZXkgPSAiY2FzZVNlbnNpdGl2ZSI7CiAgICAgICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChkYktleSk7CiAgICAgICAgICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGFbZGJLZXldOwogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5maWx0ZXIuY2FzZVNlbnNpdGl2ZS50aXRsZX19IiwgaW5wdXQpOwogICAgICAgICAgICAgICAgICAgIHZhciBkYktleSA9ICJpbmNsdWRlIjsKICAgICAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsKICAgICAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LmZpbHRlci5pbmNsdWRlLnBsYWNlaG9sZGVyfX0iKTsKICAgICAgICAgICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3suZmlsdGVyLmluY2x1ZGUudGl0bGV9fSIsIGlucHV0KTsKICAgICAgICAgICAgICAgICAgICBjb250ZW50LmRlc2NyaXB0aW9uKCJ7ey5maWx0ZXIuaW5jbHVkZS5kZXNjcmlwdGlvbn19Iik7CiAgICAgICAgICAgICAgICAgICAgdmFyIGRiS2V5ID0gImV4Y2x1ZGUiOwogICAgICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOwogICAgICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3suZmlsdGVyLmV4Y2x1ZGUucGxhY2Vob2xkZXJ9fSIpOwogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5maWx0ZXIuZXhjbHVkZS50aXRsZX19IiwgaW5wdXQpOwogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuZGVzY3JpcHRpb24oInt7LmZpbHRlci5leGNsdWRlLmRlc2NyaXB0aW9ufX0iKTsKICAgICAgICAgICAgICAgICAgICAvLyBQcmVzZXJ2ZSBNM1UgUGxheWxpc3QgQ2hhbm5lbCBNYXBwaW5nCiAgICAgICAgICAgICAgICAgICAgdmFyIGRiS2V5ID0gInByZXNlcnZlTWFwcGluZyI7CiAgICAgICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChkYktleSk7CiAgICAgICAgICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGFbZGJLZXldOwogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5maWx0ZXIucHJlc2VydmVNYXBwaW5nLnRpdGxlfX0iLCBpbnB1dCk7CiAgICAgICAgICAgICAgICAgICAgLy8gU3RhcnRpbmcgQ2hhbm5lbCBOdW1iZXIgTWFwcGluZwogICAgICAgICAgICAgICAgICAgIHZhciBkYktleSA9ICJzdGFydGluZ0NoYW5uZWwiOwogICAgICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOwogICAgICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3suZmlsdGVyLnN0YXJ0aW5nQ2hhbm5lbC5wbGFjZWhvbGRlcn19Iik7CiAgICAgICAgICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LmZpbHRlci5zdGFydGluZ0NoYW5uZWwudGl0bGV9fSIsIGlucHV0KTsKICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgLy8gSW50ZXJhY3Rpb24KICAgICAgICAgICAgY29udGVudC5jcmVhdGVJbnRlcmFjdGlvbigpOwogICAgICAgICAgICAvLyBEZWxldGUKICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImRlbGV0ZSIsICJ7ey5idXR0b24uZGVsZXRlfX0iKTsKICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoImZpbHRlciIsICInICsgaWQgKyAnIiwgdHJ1ZSwgMCknKTsKICAgICAgICAgICAgaW5wdXQuY2xhc3NOYW1lID0gImRlbGV0ZSI7CiAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOwogICAgICAgICAgICAvLyBBYm9ydAogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAiY2FuY2VsIiwgInt7LmJ1dHRvbi5jYW5jZWx9fSIpOwogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogc2hvd0VsZW1lbnQoInBvcHVwIiwgZmFsc2UpOycpOwogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsKICAgICAgICAgICAgLy8gU2F2ZQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAic2F2ZSIsICJ7ey5idXR0b24uc2F2ZX19Iik7CiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBzYXZlUG9wdXBEYXRhKCJmaWx0ZXIiLCAiJyArIGlkICsgJyIsIGZhbHNlLCAwKScpOwogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgY2FzZSAieG1sdHYiOgogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUhlYWRsaW5lKGRhdGFUeXBlKTsKICAgICAgICAgICAgLy8gTmFtZQogICAgICAgICAgICB2YXIgZGJLZXkgPSAibmFtZSI7CiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOwogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnhtbHR2Lm5hbWUucGxhY2Vob2xkZXJ9fSIpOwogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sueG1sdHYubmFtZS50aXRsZX19IiwgaW5wdXQpOwogICAgICAgICAgICAvLyBEZXNjcmlwdGlvbgogICAgICAgICAgICB2YXIgZGJLZXkgPSAiZGVzY3JpcHRpb24iOwogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsKICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey54bWx0di5kZXNjcmlwdGlvbi5wbGFjZWhvbGRlcn19Iik7CiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey54bWx0di5kZXNjcmlwdGlvbi50aXRsZX19IiwgaW5wdXQpOwogICAgICAgICAgICAvLyBVUkwKICAgICAgICAgICAgdmFyIGRiS2V5ID0gImZpbGUuc291cmNlIjsKICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7CiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3sueG1sdHYuZmlsZVhNTFRWLnBsYWNlaG9sZGVyfX0iKTsKICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnhtbHR2LmZpbGVYTUxUVi50aXRsZX19IiwgaW5wdXQpOwogICAgICAgICAgICAvLyBJbnRlcmFjdGlvbgogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUludGVyYWN0aW9uKCk7CiAgICAgICAgICAgIC8vIERlbGV0ZQogICAgICAgICAgICBpZiAoZGF0YVsiaWQucHJvdmlkZXIiXSAhPSAiLSIpIHsKICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJkZWxldGUiLCAie3suYnV0dG9uLmRlbGV0ZX19Iik7CiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogc2F2ZVBvcHVwRGF0YSgieG1sdHYiLCAiJyArIGlkICsgJyIsIHRydWUsIDApJyk7CiAgICAgICAgICAgICAgICBpbnB1dC5jbGFzc05hbWUgPSAiZGVsZXRlIjsKICAgICAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIC8vIEFib3J0CiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJjYW5jZWwiLCAie3suYnV0dG9uLmNhbmNlbH19Iik7CiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBzaG93RWxlbWVudCgicG9wdXAiLCBmYWxzZSk7Jyk7CiAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOwogICAgICAgICAgICAvLyBVcGRhdGUKICAgICAgICAgICAgaWYgKGRhdGFbImlkLnByb3ZpZGVyIl0gIT0gIi0iKSB7CiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAidXBkYXRlIiwgInt7LmJ1dHRvbi51cGRhdGV9fSIpOwogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoInhtbHR2IiwgIicgKyBpZCArICciLCBmYWxzZSwgMSknKTsKICAgICAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIC8vIFNhdmUKICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgInNhdmUiLCAie3suYnV0dG9uLnNhdmV9fSIpOwogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogc2F2ZVBvcHVwRGF0YSgieG1sdHYiLCAiJyArIGlkICsgJyIsIGZhbHNlLCAwKScpOwogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgY2FzZSAidXNlcnMiOgogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUhlYWRsaW5lKCJ7ey5tYWluTWVudS5pdGVtLnVzZXJzfX0iKTsKICAgICAgICAgICAgLy8gVXNlciBuYW1lCiAgICAgICAgICAgIHZhciBkYktleSA9ICJ1c2VybmFtZSI7CiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOwogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnVzZXJzLnVzZXJuYW1lLnBsYWNlaG9sZGVyfX0iKTsKICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnVzZXJzLnVzZXJuYW1lLnRpdGxlfX0iLCBpbnB1dCk7CiAgICAgICAgICAgIC8vIE5ldyBQYXJzc3dvcmQKICAgICAgICAgICAgdmFyIGRiS2V5ID0gInBhc3N3b3JkIjsKICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgicGFzc3dvcmQiLCBkYktleSwgIiIpOwogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnVzZXJzLnBhc3N3b3JkLnBsYWNlaG9sZGVyfX0iKTsKICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnVzZXJzLnBhc3N3b3JkLnRpdGxlfX0iLCBpbnB1dCk7CiAgICAgICAgICAgIC8vIENvbmZpcm1hdGlvbgogICAgICAgICAgICB2YXIgZGJLZXkgPSAiY29uZmlybSI7CiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInBhc3N3b3JkIiwgZGJLZXksICIiKTsKICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey51c2Vycy5jb25maXJtLnBsYWNlaG9sZGVyfX0iKTsKICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnVzZXJzLmNvbmZpcm0udGl0bGV9fSIsIGlucHV0KTsKICAgICAgICAgICAgLy8gQXV0aGVudGljYXRpb24gV0VCCiAgICAgICAgICAgIHZhciBkYktleSA9ICJhdXRoZW50aWNhdGlvbi53ZWIiOwogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KGRiS2V5KTsKICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGFbZGJLZXldOwogICAgICAgICAgICBpZiAoZGF0YVsiZGVmYXVsdFVzZXIiXSA9PSB0cnVlKSB7CiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAiamF2YXNjcmlwdDogcmV0dXJuIGZhbHNlIik7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnVzZXJzLndlYi50aXRsZX19IiwgaW5wdXQpOwogICAgICAgICAgICAvLyBBdXRoZW50aWNhdGlvbiBQTVMKICAgICAgICAgICAgdmFyIGRiS2V5ID0gImF1dGhlbnRpY2F0aW9uLnBtcyI7CiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goZGJLZXkpOwogICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YVtkYktleV07CiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey51c2Vycy5wbXMudGl0bGV9fSIsIGlucHV0KTsKICAgICAgICAgICAgLy8gQXV0aGVudGljYXRpb24gTTNVCiAgICAgICAgICAgIHZhciBkYktleSA9ICJhdXRoZW50aWNhdGlvbi5tM3UiOwogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KGRiS2V5KTsKICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGFbZGJLZXldOwogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sudXNlcnMubTN1LnRpdGxlfX0iLCBpbnB1dCk7CiAgICAgICAgICAgIC8vIEF1dGhlbnRpY2F0aW9uIFhNTAogICAgICAgICAgICB2YXIgZGJLZXkgPSAiYXV0aGVudGljYXRpb24ueG1sIjsKICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChkYktleSk7CiAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhW2RiS2V5XTsKICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnVzZXJzLnhtbC50aXRsZX19IiwgaW5wdXQpOwogICAgICAgICAgICAvLyBBdXRoZW50aWNhdGlvbiBBUEkKICAgICAgICAgICAgdmFyIGRiS2V5ID0gImF1dGhlbnRpY2F0aW9uLmFwaSI7CiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goZGJLZXkpOwogICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YVtkYktleV07CiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey51c2Vycy5hcGkudGl0bGV9fSIsIGlucHV0KTsKICAgICAgICAgICAgLy8gSW50ZXJhY3Rpb24KICAgICAgICAgICAgY29udGVudC5jcmVhdGVJbnRlcmFjdGlvbigpOwogICAgICAgICAgICAvLyBEZWxldGUKICAgICAgICAgICAgaWYgKGRhdGFbImRlZmF1bHRVc2VyIl0gIT0gdHJ1ZSAmJiBpZCAhPSAiLSIpIHsKICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJkZWxldGUiLCAie3suYnV0dG9uLmRlbGV0ZX19Iik7CiAgICAgICAgICAgICAgICBpbnB1dC5jbGFzc05hbWUgPSAiZGVsZXRlIjsKICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBzYXZlUG9wdXBEYXRhKCInICsgZGF0YVR5cGUgKyAnIiwgIicgKyBpZCArICciLCB0cnVlLCAwKScpOwogICAgICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgLy8gQWJvcnQKICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImNhbmNlbCIsICJ7ey5idXR0b24uY2FuY2VsfX0iKTsKICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IHNob3dFbGVtZW50KCJwb3B1cCIsIGZhbHNlKTsnKTsKICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7CiAgICAgICAgICAgIC8vIFNhdmUKICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgInNhdmUiLCAie3suYnV0dG9uLnNhdmV9fSIpOwogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogc2F2ZVBvcHVwRGF0YSgiJyArIGRhdGFUeXBlICsgJyIsICInICsgaWQgKyAnIiwgImZhbHNlIik7Jyk7CiAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOwogICAgICAgICAgICBicmVhazsKICAgICAgICBjYXNlICJtYXBwaW5nIjoKICAgICAgICAgICAgY29udGVudC5jcmVhdGVIZWFkbGluZSgie3subWFpbk1lbnUuaXRlbS5tYXBwaW5nfX0iKTsKICAgICAgICAgICAgLy8gQWN0aXZlCiAgICAgICAgICAgIHZhciBkYktleSA9ICJ4LWFjdGl2ZSI7CiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goZGJLZXkpOwogICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YVtkYktleV07CiAgICAgICAgICAgIGlucHV0LmlkID0gImFjdGl2ZSI7CiAgICAgICAgICAgIC8vaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdG9nZ2xlQ2hhbm5lbFN0YXR1cygnIiArIGlkICsgIicsIHRoaXMpIik7CiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5tYXBwaW5nLmFjdGl2ZS50aXRsZX19IiwgaW5wdXQpOwogICAgICAgICAgICAvLyBDaGFubmVsIG5hbWUKICAgICAgICAgICAgdmFyIGRiS2V5ID0gIngtbmFtZSI7CiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOwogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7CiAgICAgICAgICAgIGlmIChCVUxLX0VESVQgPT0gdHJ1ZSkgewogICAgICAgICAgICAgICAgaW5wdXQuc3R5bGUuYm9yZGVyID0gInNvbGlkIDFweCByZWQiOwogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJyZWFkb25seSIsICJ0cnVlIik7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7Lm1hcHBpbmcuY2hhbm5lbE5hbWUudGl0bGV9fSIsIGlucHV0KTsKICAgICAgICAgICAgY29udGVudC5kZXNjcmlwdGlvbihkYXRhWyJuYW1lIl0pOwogICAgICAgICAgICAvLyBEZXNjcmlwdGlvbgogICAgICAgICAgICB2YXIgZGJLZXkgPSAieC1kZXNjcmlwdGlvbiI7CiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOwogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7Lm1hcHBpbmcuZGVzY3JpcHRpb24ucGxhY2Vob2xkZXJ9fSIpOwogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7CiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5tYXBwaW5nLmRlc2NyaXB0aW9uLnRpdGxlfX0iLCBpbnB1dCk7CiAgICAgICAgICAgIC8vIFVwZGF0ZSB0aGUgY2hhbm5lbCB4LW5hbWUKICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoIl91dWlkLmtleSIpKSB7CiAgICAgICAgICAgICAgICBpZiAoZGF0YVsiX3V1aWQua2V5Il0gIT0gIiIpIHsKICAgICAgICAgICAgICAgICAgICB2YXIgZGJLZXkgPSAieC11cGRhdGUtY2hhbm5lbC1uYW1lIjsKICAgICAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KGRiS2V5KTsKICAgICAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7CiAgICAgICAgICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGFbZGJLZXldOwogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5tYXBwaW5nLnVwZGF0ZUNoYW5uZWxOYW1lLnRpdGxlfX0iLCBpbnB1dCk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgICAgLy8gQ2hhbm5lbCBuYW1lIHJlZ2V4IGZvciB1cGRhdGluZyB0aGUgY2hhbm5lbCBuYW1lCiAgICAgICAgICAgIHZhciBkYktleSA9ICJ1cGRhdGUtY2hhbm5lbC1uYW1lLXJlZ2V4IjsKICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7CiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3subWFwcGluZy51cGRhdGVDaGFubmVsTmFtZVJlZ2V4LnBsYWNlaG9sZGVyfX0iKTsKICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOwogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3subWFwcGluZy51cGRhdGVDaGFubmVsTmFtZVJlZ2V4LnRpdGxlfX0iLCBpbnB1dCk7CiAgICAgICAgICAgIGNvbnRlbnQuZGVzY3JpcHRpb24oInt7Lm1hcHBpbmcudXBkYXRlQ2hhbm5lbE5hbWVSZWdleC5kZXNjcmlwdGlvbn19Iik7CiAgICAgICAgICAgIC8vIENoYW5uZWwgZ3JvdXAgcmVnZXggZm9yIHVwZGF0aW5nIHRoZSBjaGFubmVsIG5hbWUKICAgICAgICAgICAgdmFyIGRiS2V5ID0gInVwZGF0ZS1jaGFubmVsLW5hbWUtYnktZ3JvdXAtcmVnZXgiOwogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsKICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5tYXBwaW5nLnVwZGF0ZUNoYW5uZWxOYW1lQnlHcm91cFJlZ2V4LnBsYWNlaG9sZGVyfX0iKTsKICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOwogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3subWFwcGluZy51cGRhdGVDaGFubmVsTmFtZUJ5R3JvdXBSZWdleC50aXRsZX19IiwgaW5wdXQpOwogICAgICAgICAgICBjb250ZW50LmRlc2NyaXB0aW9uKCJ7ey5tYXBwaW5nLnVwZGF0ZUNoYW5uZWxOYW1lQnlHcm91cFJlZ2V4LmRlc2NyaXB0aW9ufX0iKTsKICAgICAgICAgICAgLy8gTG9nbyBVUkwgKENoYW5uZWwpIAogICAgICAgICAgICB2YXIgZGJLZXkgPSAidHZnLWxvZ28iOwogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsKICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOwogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoImlkIiwgImNoYW5uZWwtaWNvbiIpOwogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3subWFwcGluZy5jaGFubmVsTG9nby50aXRsZX19IiwgaW5wdXQpOwogICAgICAgICAgICAvLyBDaGFubmVsIGxvZ28gdXBkYXRlCiAgICAgICAgICAgIHZhciBkYktleSA9ICJ4LXVwZGF0ZS1jaGFubmVsLWljb24iOwogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KGRiS2V5KTsKICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGFbZGJLZXldOwogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoImlkIiwgInVwZGF0ZS1pY29uIik7CiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCc7IGNoYW5nZUNoYW5uZWxMb2dvKCciICsgaWQgKyAiJyk7Iik7CiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5tYXBwaW5nLnVwZGF0ZUNoYW5uZWxMb2dvLnRpdGxlfX0iLCBpbnB1dCk7CiAgICAgICAgICAgIC8vIEV4cGFuZCBFUEcgY2F0ZWdvcnkKICAgICAgICAgICAgdmFyIGRiS2V5ID0gIngtY2F0ZWdvcnkiOwogICAgICAgICAgICB2YXIgdGV4dCA9IFsiLSIsICJLaWRzIChFbWJ5IG9ubHkpIiwgIk5ld3MiLCAiTW92aWUiLCAiU2VyaWVzIiwgIlNwb3J0cyJdOwogICAgICAgICAgICB2YXIgdmFsdWVzID0gWyIiLCAiS2lkcyIsICJOZXdzIiwgIk1vdmllIiwgIlNlcmllcyIsICJTcG9ydHMiXTsKICAgICAgICAgICAgdmFyIHNlbGVjdCA9IGNvbnRlbnQuY3JlYXRlU2VsZWN0KHRleHQsIHZhbHVlcywgZGF0YVtkYktleV0sIGRiS2V5KTsKICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsKICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7Lm1hcHBpbmcuZXBnQ2F0ZWdvcnkudGl0bGV9fSIsIHNlbGVjdCk7CiAgICAgICAgICAgIC8vIE0zVSBncm91cCB0aXRsZQogICAgICAgICAgICB2YXIgZGJLZXkgPSAieC1ncm91cC10aXRsZSI7CiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOwogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7CiAgICAgICAgICAgIGlucHV0LmRhdGFzZXQub2xkVmFsdWUgPSBkYXRhW2RiS2V5XTsKICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7Lm1hcHBpbmcubTN1R3JvdXBUaXRsZS50aXRsZX19IiwgaW5wdXQpOwogICAgICAgICAgICBpZiAoZGF0YVsiZ3JvdXAtdGl0bGUiXSAhPSB1bmRlZmluZWQpIHsKICAgICAgICAgICAgICAgIGNvbnRlbnQuZGVzY3JpcHRpb24oZGF0YVsiZ3JvdXAtdGl0bGUiXSk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgaWYgKGRhdGFbIngtdXBkYXRlLWNoYW5uZWwtZ3JvdXAiXSA9PSB0cnVlKSB7CiAgICAgICAgICAgICAgICBpbnB1dC5kaXNhYmxlZCA9IHRydWU7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgLy8gVXBkYXRlIGNoYW5uZWwgZ3JvdXAgY2hlY2tib3gKICAgICAgICAgICAgdmFyIGRiS2V5ID0gIngtdXBkYXRlLWNoYW5uZWwtZ3JvdXAiOwogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KGRiS2V5KTsKICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0b2dnbGVHcm91cFVwZGF0ZUNiKCciICsgaWQgKyAiJywgdGhpcyk7Iik7CiAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhW2RiS2V5XTsKICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7Lm1hcHBpbmcudXBkYXRlQ2hhbm5lbEdyb3VwLnRpdGxlfX0iLCBpbnB1dCk7CiAgICAgICAgICAgIGNvbnRlbnQuZGVzY3JpcHRpb24oInt7Lm1hcHBpbmcudXBkYXRlQ2hhbm5lbEdyb3VwLmRlc2NyaXB0aW9ufX0iKTsKICAgICAgICAgICAgLy8gWE1MVFYgZmlsZQogICAgICAgICAgICB2YXIgZGJLZXkgPSAneC14bWx0di1maWxlJzsKICAgICAgICAgICAgY29uc3QgeG1sVHZGaWxlID0gZGF0YVtkYktleV07CiAgICAgICAgICAgIHZhciB4bWxUdiA9IG5ldyBYTUxUVkZpbGUoKTsKICAgICAgICAgICAgY29uc3QgeG1sVHZGaWxlU2VsZWN0ID0geG1sVHYuZ2V0RmlsZXMoZGF0YVtkYktleV0pOwogICAgICAgICAgICB4bWxUdkZpbGVTZWxlY3Quc2V0QXR0cmlidXRlKCduYW1lJywgZGJLZXkpOwogICAgICAgICAgICB4bWxUdkZpbGVTZWxlY3Quc2V0QXR0cmlidXRlKCdpZCcsICdwb3B1cC14bWx0dicpOwogICAgICAgICAgICB4bWxUdkZpbGVTZWxlY3Quc2V0QXR0cmlidXRlKCdvbmNoYW5nZScsIGBqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJzsgc2V0WG1sdHZDaGFubmVsKCcke2lkfScsIHRoaXMpO2ApOwogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygne3subWFwcGluZy54bWx0dkZpbGUudGl0bGV9fScsIHhtbFR2RmlsZVNlbGVjdCk7CiAgICAgICAgICAgIC8vIFhNTFRWIE1hcHBpbmcKICAgICAgICAgICAgdmFyIGRiS2V5ID0gJ3gtbWFwcGluZyc7CiAgICAgICAgICAgIHZhciB4bWxUdiA9IG5ldyBYTUxUVkZpbGUoKTsKICAgICAgICAgICAgY29uc3QgY3VycmVudFhtbFR2SWQgPSBkYXRhW2RiS2V5XTsKICAgICAgICAgICAgY29uc3QgW3htbFR2SWRDb250YWluZXIsIHhtbFR2SWRJbnB1dCwgeG1sVHZJZERhdGFsaXN0XSA9IHhtbFR2Lm5ld1htbFR2SWRQaWNrZXIoeG1sVHZGaWxlLCBjdXJyZW50WG1sVHZJZCk7CiAgICAgICAgICAgIHhtbFR2SWRDb250YWluZXIuc2V0QXR0cmlidXRlKCdpZCcsICd4bWx0di1pZC1waWNrZXItY29udGFpbmVyJyk7CiAgICAgICAgICAgIHhtbFR2SWRJbnB1dC5zZXRBdHRyaWJ1dGUoJ2xpc3QnLCAneG1sdHYtaWQtcGlja2VyLWRhdGFsaXN0Jyk7CiAgICAgICAgICAgIHhtbFR2SWRJbnB1dC5zZXRBdHRyaWJ1dGUoJ25hbWUnLCAneC1tYXBwaW5nJyk7IC8vIFNob3VsZCBzdGF5IHgtbWFwcGluZyBhcyBpdCB3aWxsIGJlIHVzZWQgaW4gZG9uZVBvcHVwRGF0YSB0byBtYWtlIGEgc2VydmVyIHJlcXVlc3QKICAgICAgICAgICAgeG1sVHZJZElucHV0LnNldEF0dHJpYnV0ZSgnaWQnLCAneG1sdHYtaWQtcGlja2VyLWlucHV0Jyk7CiAgICAgICAgICAgIHhtbFR2SWRJbnB1dC5zZXRBdHRyaWJ1dGUoJ29uY2hhbmdlJywgYGphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnOyBjaGVja1htbHR2Q2hhbm5lbCgnJHtpZH0nLCB0aGlzLnZhbHVlLCAnJHt4bWxUdkZpbGV9Jyk7YCk7CiAgICAgICAgICAgIHhtbFR2SWREYXRhbGlzdC5zZXRBdHRyaWJ1dGUoJ2lkJywgJ3htbHR2LWlkLXBpY2tlci1kYXRhbGlzdCcpOwogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygne3subWFwcGluZy54bWx0dkNoYW5uZWwudGl0bGV9fScsIHhtbFR2SWRDb250YWluZXIpOwogICAgICAgICAgICAvLyBUaW1lc2hpZnQKICAgICAgICAgICAgdmFyIGRiS2V5ID0gIngtdGltZXNoaWZ0IjsKICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7CiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsKICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5tYXBwaW5nLnRpbWVzaGlmdC5wbGFjZWhvbGRlcn19Iik7CiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgiaWQiLCAidGltZXNoaWZ0Iik7CiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5tYXBwaW5nLnRpbWVzaGlmdC50aXRsZX19IiwgaW5wdXQpOwogICAgICAgICAgICAvLyBJbnRlcmFjdGlvbgogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUludGVyYWN0aW9uKCk7CiAgICAgICAgICAgIC8vIFVwbG9hZCBsb2dvCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJjYW5jZWwiLCAie3suYnV0dG9uLnVwbG9hZExvZ299fSIpOwogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogdXBsb2FkTG9nbygpOycpOwogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsKICAgICAgICAgICAgLy8gQWJvcnQKICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImNhbmNlbCIsICJ7ey5idXR0b24uY2FuY2VsfX0iKTsKICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IHNob3dFbGVtZW50KCJwb3B1cCIsIGZhbHNlKTsnKTsKICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7CiAgICAgICAgICAgIC8vIEZpbmlzaGVkCiAgICAgICAgICAgIHZhciBpZHMgPSBbXTsKICAgICAgICAgICAgaWRzID0gZ2V0QWxsU2VsZWN0ZWRDaGFubmVscygpOwogICAgICAgICAgICBpZiAoaWRzLmxlbmd0aCA9PSAwKSB7CiAgICAgICAgICAgICAgICBpZHMucHVzaChpZCk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgInNhdmUiLCAie3suYnV0dG9uLmRvbmV9fSIpOwogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogZG9uZVBvcHVwRGF0YSgiJyArIGRhdGFUeXBlICsgJyIsICInICsgaWRzICsgJyIsICJmYWxzZSIpOycpOwogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgYnJlYWs7CiAgICB9CiAgICBzaG93UG9wVXBFbGVtZW50KCdwb3B1cC1jdXN0b20nKTsKfQpjbGFzcyBYTUxUVkZpbGUgewogICAgZ2V0RmlsZXMoc2V0KSB7CiAgICAgICAgbGV0IGZpbGVJRHMgPSBnZXRPd25PYmpQcm9wcyhTRVJWRVJbInhlcGciXVsieG1sdHZNYXAiXSk7CiAgICAgICAgbGV0IHZhbHVlcyA9IG5ldyBBcnJheSgiLSIpOwogICAgICAgIGxldCB0ZXh0ID0gbmV3IEFycmF5KCItIik7CiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBmaWxlSURzLmxlbmd0aDsgaSsrKSB7CiAgICAgICAgICAgIGlmIChmaWxlSURzW2ldICE9ICJ4VGVWZSBEdW1teSIpIHsKICAgICAgICAgICAgICAgIHZhbHVlcy5wdXNoKGdldFZhbHVlRnJvbVByb3ZpZGVyRmlsZShmaWxlSURzW2ldLCAieG1sdHYiLCAiZmlsZS54dGV2ZSIpKTsKICAgICAgICAgICAgICAgIHRleHQucHVzaChnZXRWYWx1ZUZyb21Qcm92aWRlckZpbGUoZmlsZUlEc1tpXSwgInhtbHR2IiwgIm5hbWUiKSk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICB2YWx1ZXMucHVzaChmaWxlSURzW2ldKTsKICAgICAgICAgICAgICAgIHRleHQucHVzaChmaWxlSURzW2ldKTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBsZXQgc2VsZWN0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiU0VMRUNUIik7CiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0ZXh0Lmxlbmd0aDsgaSsrKSB7CiAgICAgICAgICAgIHZhciBvcHRpb24gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJPUFRJT04iKTsKICAgICAgICAgICAgb3B0aW9uLnNldEF0dHJpYnV0ZSgidmFsdWUiLCB2YWx1ZXNbaV0pOwogICAgICAgICAgICBvcHRpb24uaW5uZXJUZXh0ID0gdGV4dFtpXTsKICAgICAgICAgICAgc2VsZWN0LmFwcGVuZENoaWxkKG9wdGlvbik7CiAgICAgICAgfQogICAgICAgIGlmIChzZXQgIT0gIiIpIHsKICAgICAgICAgICAgc2VsZWN0LnZhbHVlID0gc2V0OwogICAgICAgIH0KICAgICAgICByZXR1cm4gc2VsZWN0OwogICAgfQogICAgLyoqCiAgICAgKiBAcGFyYW0geG1sVHZGaWxlIFhNTCBmaWxlIHBhdGggdG8gZ2V0IEVQRyBmcm9tLgogICAgICogQHBhcmFtIGN1cnJlbnRYbWxUdklkIEN1cnJlbnQgWE1MVFYgSUQgdG8gc2V0IGluaXRpYWwgaW5wdXQgdmFsdWUgdG8uCiAgICAgKiBAcmV0dXJucyBBcnJheSBvZiwgc2VxdWVudGlhbGx5OgogICAgICogMSkgQ29udGFpbmVyIG9mIHRoZSBwaWNrZXIuCiAgICAgKiAyKSBJbnB1dCBmaWVsZCB0byB0eXBlIGF0IGFuZCBnZXQgY2hvaWNlIGZyb20uCiAgICAgKiAzKSBEYXRhbGlzdCBjb250YWluaW5nIGV2ZXJ5IG9wdGlvbi4KICAgICAqLwogICAgbmV3WG1sVHZJZFBpY2tlcih4bWxUdkZpbGUsIGN1cnJlbnRYbWxUdklkKSB7CiAgICAgICAgY29uc3QgY29udGFpbmVyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7CiAgICAgICAgY29uc3QgaW5wdXQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdpbnB1dCcpOwogICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgndHlwZScsICd0ZXh0Jyk7CiAgICAgICAgLy8gSW5pdGlhbGx5LCBzZXQgdmFsdWUgdG8gJy0nIGlmIGlucHV0IGlzIGVtcHR5CiAgICAgICAgaW5wdXQudmFsdWUgPSAoY3VycmVudFhtbFR2SWQpID8gY3VycmVudFhtbFR2SWQgOiAnLSc7CiAgICAgICAgLy8gV2hlbiBpbnB1dCBpcyBmb2N1c2VkLCByZW1vdmUgJy0nIGZyb20gaXQKICAgICAgICBpbnB1dC5hZGRFdmVudExpc3RlbmVyKCdmb2N1cycsIChldnQpID0+IHsKICAgICAgICAgICAgY29uc3QgdGFyZ2V0ID0gZXZ0LnRhcmdldDsKICAgICAgICAgICAgdGFyZ2V0LnZhbHVlID0gKHRhcmdldC52YWx1ZSA9PT0gJy0nKSA/ICcnIDogdGFyZ2V0LnZhbHVlOwogICAgICAgIH0pOwogICAgICAgIC8vIFdoZW4gaW5wdXQgbG9zZSBmb2N1cyBvciB0YWtlIGEgdmFsdWUsIGlmIGl0J3MgZW1wdHksIHNldCB2YWx1ZSB0byAnLScKICAgICAgICBpbnB1dC5hZGRFdmVudExpc3RlbmVyKCdibHVyJywgc2V0RmFsbGJhY2tWYWx1ZSk7CiAgICAgICAgaW5wdXQuYWRkRXZlbnRMaXN0ZW5lcignY2hhbmdlJywgc2V0RmFsbGJhY2tWYWx1ZSk7CiAgICAgICAgZnVuY3Rpb24gc2V0RmFsbGJhY2tWYWx1ZShldnQpIHsKICAgICAgICAgICAgY29uc3QgdGFyZ2V0ID0gZXZ0LnRhcmdldDsKICAgICAgICAgICAgdGFyZ2V0LnZhbHVlID0gKHRhcmdldC52YWx1ZSkgPyB0YXJnZXQudmFsdWUgOiAnLSc7CiAgICAgICAgfQogICAgICAgIGNvbnRhaW5lci5hcHBlbmRDaGlsZChpbnB1dCk7CiAgICAgICAgY29uc3QgZGF0YWxpc3QgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkYXRhbGlzdCcpOwogICAgICAgIGNvbnN0IG9wdGlvbiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ29wdGlvbicpOwogICAgICAgIG9wdGlvbi5zZXRBdHRyaWJ1dGUoJ3ZhbHVlJywgJy0nKTsKICAgICAgICBvcHRpb24uaW5uZXJUZXh0ID0gJy0nOwogICAgICAgIGRhdGFsaXN0LmFwcGVuZENoaWxkKG9wdGlvbik7CiAgICAgICAgY29uc3QgZXBnID0gU0VSVkVSWyd4ZXBnJ11bJ3htbHR2TWFwJ11beG1sVHZGaWxlXTsKICAgICAgICBpZiAoZXBnKSB7CiAgICAgICAgICAgIGNvbnN0IHByb2dyYW1JZHMgPSBnZXRPd25PYmpQcm9wcyhlcGcpOwogICAgICAgICAgICBwcm9ncmFtSWRzLmZvckVhY2goKHByb2dyYW1JZCkgPT4gewogICAgICAgICAgICAgICAgY29uc3QgcHJvZ3JhbSA9IGVwZ1twcm9ncmFtSWRdOwogICAgICAgICAgICAgICAgaWYgKHByb2dyYW0uaGFzT3duUHJvcGVydHkoJ2Rpc3BsYXktbmFtZXMnKSkgewogICAgICAgICAgICAgICAgICAgIHByb2dyYW1bJ2Rpc3BsYXktbmFtZXMnXS5mb3JFYWNoKChkaXNwbGF5TmFtZSkgPT4gewogICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBvcHRpb24gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdvcHRpb24nKTsKICAgICAgICAgICAgICAgICAgICAgICAgb3B0aW9uLnNldEF0dHJpYnV0ZSgndmFsdWUnLCBwcm9ncmFtSWQpOwogICAgICAgICAgICAgICAgICAgICAgICBvcHRpb24uaW5uZXJUZXh0ID0gZGlzcGxheU5hbWVbJ1ZhbHVlJ107CiAgICAgICAgICAgICAgICAgICAgICAgIGRhdGFsaXN0LmFwcGVuZENoaWxkKG9wdGlvbik7CiAgICAgICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgICAgICBjb25zdCBvcHRpb24gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdvcHRpb24nKTsKICAgICAgICAgICAgICAgICAgICBvcHRpb24uc2V0QXR0cmlidXRlKCd2YWx1ZScsIHByb2dyYW1JZCk7CiAgICAgICAgICAgICAgICAgICAgb3B0aW9uLmlubmVyVGV4dCA9ICctJzsKICAgICAgICAgICAgICAgICAgICBkYXRhbGlzdC5hcHBlbmRDaGlsZChvcHRpb24pOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9KTsKICAgICAgICB9CiAgICAgICAgY29udGFpbmVyLmFwcGVuZENoaWxkKGRhdGFsaXN0KTsKICAgICAgICByZXR1cm4gW2NvbnRhaW5lciwgaW5wdXQsIGRhdGFsaXN0XTsKICAgIH0KfQpmdW5jdGlvbiBnZXRWYWx1ZUZyb21Qcm92aWRlckZpbGUoZmlsZSwgZmlsZVR5cGUsIGtleSkgewogICAgaWYgKGZpbGUgPT0gInhUZVZlIER1bW15IikgewogICAgICAgIHJldHVybiBmaWxlOwogICAgfQogICAgbGV0IGZpbGVJRDsKICAgIGxldCBpbmRpY2F0b3IgPSBmaWxlLmNoYXJBdCgwKTsKICAgIHN3aXRjaCAoaW5kaWNhdG9yKSB7CiAgICAgICAgY2FzZSAiTSI6CiAgICAgICAgICAgIGZpbGVUeXBlID0gIm0zdSI7CiAgICAgICAgICAgIGZpbGVJRCA9IGZpbGU7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgIGNhc2UgIkgiOgogICAgICAgICAgICBmaWxlVHlwZSA9ICJoZGhyIjsKICAgICAgICAgICAgZmlsZUlEID0gZmlsZTsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgY2FzZSAiWCI6CiAgICAgICAgICAgIGZpbGVUeXBlID0gInhtbHR2IjsKICAgICAgICAgICAgZmlsZUlEID0gZmlsZS5zdWJzdHJpbmcoMCwgZmlsZS5sYXN0SW5kZXhPZignLicpKTsKICAgICAgICAgICAgYnJlYWs7CiAgICB9CiAgICBpZiAoU0VSVkVSWyJzZXR0aW5ncyJdWyJmaWxlcyJdW2ZpbGVUeXBlXS5oYXNPd25Qcm9wZXJ0eShmaWxlSUQpID09IHRydWUpIHsKICAgICAgICB2YXIgZGF0YSA9IFNFUlZFUlsic2V0dGluZ3MiXVsiZmlsZXMiXVtmaWxlVHlwZV1bZmlsZUlEXTsKICAgICAgICByZXR1cm4gZGF0YVtrZXldOwogICAgfQogICAgcmV0dXJuOwp9CmZ1bmN0aW9uIHNldFhtbHR2Q2hhbm5lbChlcGdNYXBJZCwgeG1sVHZGaWxlU2VsZWN0KSB7CiAgICBjb25zdCB4bWxUdiA9IG5ldyBYTUxUVkZpbGUoKTsKICAgIGNvbnN0IG5ld1htbFR2RmlsZSA9IHhtbFR2RmlsZVNlbGVjdC52YWx1ZTsKICAgIC8vIFJlbW92ZSBvbGQgWE1MVFYgSUQgc2VsZWN0aW9uIGJveAogICAgY29uc3QgeG1sVHZJZFBpY2tlclBhcmVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd4bWx0di1pZC1waWNrZXItY29udGFpbmVyJykucGFyZW50RWxlbWVudDsKICAgIHhtbFR2SWRQaWNrZXJQYXJlbnQuaW5uZXJIVE1MID0gJyc7CiAgICAvLyBDcmVhdGUgbmV3IFhNTFRWIElEIHNlbGVjdGlvbiBib3gKICAgIGNvbnN0IHR2Z0lkID0gU0VSVkVSWyd4ZXBnJ11bJ2VwZ01hcHBpbmcnXVtlcGdNYXBJZF1bJ3R2Zy1pZCddOwogICAgY29uc3QgW3htbFR2SWRDb250YWluZXIsIHhtbFR2SWRJbnB1dCwgeG1sVHZJZERhdGFsaXN0XSA9IHhtbFR2Lm5ld1htbFR2SWRQaWNrZXIobmV3WG1sVHZGaWxlLCB0dmdJZCk7CiAgICB4bWxUdklkQ29udGFpbmVyLnNldEF0dHJpYnV0ZSgnaWQnLCAneG1sdHYtaWQtcGlja2VyLWNvbnRhaW5lcicpOwogICAgeG1sVHZJZElucHV0LnNldEF0dHJpYnV0ZSgnbGlzdCcsICd4bWx0di1pZC1waWNrZXItZGF0YWxpc3QnKTsKICAgIHhtbFR2SWRJbnB1dC5zZXRBdHRyaWJ1dGUoJ25hbWUnLCAneC1tYXBwaW5nJyk7IC8vIFNob3VsZCBzdGF5IHgtbWFwcGluZyBhcyBpdCB3aWxsIGJlIHVzZWQgaW4gZG9uZVBvcHVwRGF0YSB0byBtYWtlIGEgc2VydmVyIHJlcXVlc3QKICAgIHhtbFR2SWRJbnB1dC5zZXRBdHRyaWJ1dGUoJ2lkJywgJ3htbHR2LWlkLXBpY2tlci1pbnB1dCcpOwogICAgeG1sVHZJZElucHV0LnNldEF0dHJpYnV0ZSgnb25jaGFuZ2UnLCBgamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCc7IGNoZWNrWG1sdHZDaGFubmVsKCcke2VwZ01hcElkfScsIHRoaXMudmFsdWUsICcke25ld1htbFR2RmlsZX0nKTtgKTsKICAgIHhtbFR2SWRJbnB1dC5jbGFzc0xpc3QuYWRkKCdjaGFuZ2VkJyk7CiAgICB4bWxUdklkRGF0YWxpc3Quc2V0QXR0cmlidXRlKCdpZCcsICd4bWx0di1pZC1waWNrZXItZGF0YWxpc3QnKTsKICAgIC8vIEFkZCBuZXcgWE1MVFYgSUQgc2VsZWN0aW9uIGJveCB0byBpdCdzIHBhcmVudAogICAgeG1sVHZJZFBpY2tlclBhcmVudC5hcHBlbmRDaGlsZCh4bWxUdklkQ29udGFpbmVyKTsKICAgIGNoZWNrWG1sdHZDaGFubmVsKGVwZ01hcElkLCB4bWxUdklkSW5wdXQudmFsdWUsIG5ld1htbFR2RmlsZSk7Cn0KZnVuY3Rpb24gY2hlY2tYbWx0dkNoYW5uZWwoZXBnTWFwSWQsIG5ld1htbFR2SWQsIHhtbFR2RmlsZSkgewogICAgY29uc3QgY2hhbm5lbEFjdGl2ZUNiID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2FjdGl2ZScpOwogICAgY29uc3QgY2hhbm5lbEFjdGl2ZSA9IG5ld1htbFR2SWQgIT0gJy0nOwogICAgY2hhbm5lbEFjdGl2ZUNiLmNoZWNrZWQgPSBjaGFubmVsQWN0aXZlOwogICAgY2hhbm5lbEFjdGl2ZUNiLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJzsKICAgIGlmICh4bWxUdkZpbGUgIT0gJ3hUZVZlIER1bW15JyAmJiBjaGFubmVsQWN0aXZlID09IHRydWUpIHsKICAgICAgICBjaGFuZ2VDaGFubmVsTG9nbyhlcGdNYXBJZCk7CiAgICAgICAgcmV0dXJuOwogICAgfQogICAgaWYgKHhtbFR2RmlsZSA9PSAneFRlVmUgRHVtbXknKSB7CiAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3VwZGF0ZS1pY29uJykuY2hlY2tlZCA9IGZhbHNlOwogICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd1cGRhdGUtaWNvbicpLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJzsKICAgIH0KfQpmdW5jdGlvbiBjaGFuZ2VDaGFubmVsTG9nbyhlcGdNYXBJZCkgewogICAgY29uc3QgY2hhbm5lbCA9IFNFUlZFUlsneGVwZyddWydlcGdNYXBwaW5nJ11bZXBnTWFwSWRdOwogICAgY29uc3QgeG1sVHZGaWxlU2VsZWN0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3BvcHVwLXhtbHR2Jyk7CiAgICBjb25zdCB4bWxUdkZpbGUgPSB4bWxUdkZpbGVTZWxlY3Qub3B0aW9uc1t4bWxUdkZpbGVTZWxlY3Quc2VsZWN0ZWRJbmRleF0udmFsdWU7CiAgICBjb25zdCB4bWxUdklkSW5wdXQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgneG1sdHYtaWQtcGlja2VyLWlucHV0Jyk7CiAgICBjb25zdCBuZXdYbWxUdklkID0geG1sVHZJZElucHV0LnZhbHVlOwogICAgY29uc3QgdXBkYXRlTG9nbyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd1cGRhdGUtaWNvbicpLmNoZWNrZWQ7CiAgICBsZXQgbG9nbzsKICAgIGlmICh1cGRhdGVMb2dvID09IHRydWUgJiYgeG1sVHZGaWxlICE9ICd4VGVWZSBEdW1teScpIHsKICAgICAgICBpZiAoU0VSVkVSWyd4ZXBnJ11bJ3htbHR2TWFwJ11beG1sVHZGaWxlXS5oYXNPd25Qcm9wZXJ0eShuZXdYbWxUdklkKSkgewogICAgICAgICAgICBsb2dvID0gU0VSVkVSWyd4ZXBnJ11bJ3htbHR2TWFwJ11beG1sVHZGaWxlXVtuZXdYbWxUdklkXVsnaWNvbiddOwogICAgICAgIH0KICAgICAgICBlbHNlIHsKICAgICAgICAgICAgbG9nbyA9IGNoYW5uZWxbJ3R2Zy1sb2dvJ107CiAgICAgICAgfQogICAgICAgIHZhciBsb2dvSW5wdXQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY2hhbm5lbC1pY29uJyk7CiAgICAgICAgbG9nb0lucHV0LnZhbHVlID0gbG9nbzsKICAgICAgICBpZiAoQlVMS19FRElUID09IGZhbHNlKSB7CiAgICAgICAgICAgIGxvZ29JbnB1dC5jbGFzc05hbWUgPSAnY2hhbmdlZCc7CiAgICAgICAgfQogICAgfQp9CmZ1bmN0aW9uIHNhdmVQb3B1cERhdGEoZGF0YVR5cGUsIGlkLCByZW1vdmUsIG9wdGlvbikgewogICAgaWYgKGRhdGFUeXBlID09ICJtYXBwaW5nIikgewogICAgICAgIGxldCBkYXRhID0ge307CiAgICAgICAgbGV0IGNtZCA9ICJzYXZlRXBnTWFwcGluZyI7CiAgICAgICAgZGF0YVsiZXBnTWFwcGluZyJdID0gU0VSVkVSWyJ4ZXBnIl1bImVwZ01hcHBpbmciXTsKICAgICAgICBsZXQgc2VydmVyID0gbmV3IFNlcnZlcihjbWQpOwogICAgICAgIHNlcnZlci5yZXF1ZXN0KGRhdGEpOwogICAgICAgIGRlbGV0ZSBVTkRPWyJlcGdNYXBwaW5nIl07CiAgICAgICAgcmV0dXJuOwogICAgfQogICAgbGV0IGRpdiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJwb3B1cC1jdXN0b20iKTsKICAgIGxldCBpbnB1dHMgPSBkaXYuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlRBQkxFIilbMF0uZ2V0RWxlbWVudHNCeVRhZ05hbWUoIklOUFVUIik7CiAgICBsZXQgc2VsZWN0cyA9IGRpdi5nZXRFbGVtZW50c0J5VGFnTmFtZSgiVEFCTEUiKVswXS5nZXRFbGVtZW50c0J5VGFnTmFtZSgiU0VMRUNUIik7CiAgICBsZXQgaW5wdXQgPSB7fTsKICAgIGxldCBjb25maXJtTXNnOwogICAgZm9yIChsZXQgaSA9IDA7IGkgPCBzZWxlY3RzLmxlbmd0aDsgaSsrKSB7CiAgICAgICAgdmFyIG5hbWU7CiAgICAgICAgbmFtZSA9IHNlbGVjdHNbaV0ubmFtZTsKICAgICAgICB2YXIgdmFsdWUgPSBzZWxlY3RzW2ldLnZhbHVlOwogICAgICAgIHN3aXRjaCAobmFtZSkgewogICAgICAgICAgICBjYXNlICJ0dW5lciI6CiAgICAgICAgICAgICAgICBpbnB1dFtuYW1lXSA9IHBhcnNlSW50KHZhbHVlKTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAgICAgaW5wdXRbbmFtZV0gPSB2YWx1ZTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgIH0KICAgIH0KICAgIGZvciAobGV0IGkgPSAwOyBpIDwgaW5wdXRzLmxlbmd0aDsgaSsrKSB7CiAgICAgICAgc3dpdGNoIChpbnB1dHNbaV0udHlwZSkgewogICAgICAgICAgICBjYXNlICJjaGVja2JveCI6CiAgICAgICAgICAgICAgICBuYW1lID0gaW5wdXRzW2ldLm5hbWU7CiAgICAgICAgICAgICAgICBpbnB1dFtuYW1lXSA9IGlucHV0c1tpXS5jaGVja2VkOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgInRleHQiOgogICAgICAgICAgICBjYXNlICJoaWRkZW4iOgogICAgICAgICAgICBjYXNlICJwYXNzd29yZCI6CiAgICAgICAgICAgICAgICBuYW1lID0gaW5wdXRzW2ldLm5hbWU7CiAgICAgICAgICAgICAgICBzd2l0Y2ggKG5hbWUpIHsKICAgICAgICAgICAgICAgICAgICBjYXNlICJ0dW5lciI6CiAgICAgICAgICAgICAgICAgICAgICAgIGlucHV0W25hbWVdID0gcGFyc2VJbnQoaW5wdXRzW2ldLnZhbHVlKTsKICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgICAgICAgICAgICAgaW5wdXRbbmFtZV0gPSBpbnB1dHNbaV0udmFsdWU7CiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgfQogICAgfQogICAgbGV0IGRhdGEgPSB7fTsKICAgIGxldCBjbWQ7CiAgICBpZiAocmVtb3ZlID09IHRydWUpIHsKICAgICAgICBpbnB1dFsiZGVsZXRlIl0gPSB0cnVlOwogICAgfQogICAgc3dpdGNoIChkYXRhVHlwZSkgewogICAgICAgIGNhc2UgInVzZXJzIjoKICAgICAgICAgICAgY29uZmlybU1zZyA9ICJEZWxldGUgdGhpcyB1c2VyPyI7CiAgICAgICAgICAgIGlmIChpZCA9PSAiLSIpIHsKICAgICAgICAgICAgICAgIGNtZCA9ICJzYXZlTmV3VXNlciI7CiAgICAgICAgICAgICAgICBkYXRhWyJ1c2VyRGF0YSJdID0gaW5wdXQ7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICBjbWQgPSAic2F2ZVVzZXJEYXRhIjsKICAgICAgICAgICAgICAgIGxldCBkID0ge307CiAgICAgICAgICAgICAgICBkW2lkXSA9IGlucHV0OwogICAgICAgICAgICAgICAgZGF0YVsidXNlckRhdGEiXSA9IGQ7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgY2FzZSAibTN1IjoKICAgICAgICAgICAgY29uZmlybU1zZyA9ICJEZWxldGUgdGhpcyBwbGF5bGlzdD8iOwogICAgICAgICAgICBzd2l0Y2ggKG9wdGlvbikgewogICAgICAgICAgICAgICAgLy8gUG9wdXA6IFNhdmUKICAgICAgICAgICAgICAgIGNhc2UgMDoKICAgICAgICAgICAgICAgICAgICBjbWQgPSAic2F2ZUZpbGVzTTNVIjsKICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgIC8vIFBvcHVwOiBVcGRhdGUKICAgICAgICAgICAgICAgIGNhc2UgMToKICAgICAgICAgICAgICAgICAgICBjbWQgPSAidXBkYXRlRmlsZU0zVSI7CiAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZGF0YVsiZmlsZXMiXSA9IHt9OwogICAgICAgICAgICBkYXRhWyJmaWxlcyJdW2RhdGFUeXBlXSA9IHt9OwogICAgICAgICAgICBkYXRhWyJmaWxlcyJdW2RhdGFUeXBlXVtpZF0gPSBpbnB1dDsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgY2FzZSAiaGRociI6CiAgICAgICAgICAgIGNvbmZpcm1Nc2cgPSAiRGVsZXRlIHRoaXMgSERIb21lUnVuIHR1bmVyPyI7CiAgICAgICAgICAgIHN3aXRjaCAob3B0aW9uKSB7CiAgICAgICAgICAgICAgICAvLyBQb3B1cDogU2F2ZQogICAgICAgICAgICAgICAgY2FzZSAwOgogICAgICAgICAgICAgICAgICAgIGNtZCA9ICJzYXZlRmlsZXNIREhSIjsKICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgIC8vIFBvcHVwOiBVcGRhdGUKICAgICAgICAgICAgICAgIGNhc2UgMToKICAgICAgICAgICAgICAgICAgICBjbWQgPSAidXBkYXRlRmlsZUhESFIiOwogICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGRhdGFbImZpbGVzIl0gPSB7fTsKICAgICAgICAgICAgZGF0YVsiZmlsZXMiXVtkYXRhVHlwZV0gPSB7fTsKICAgICAgICAgICAgZGF0YVsiZmlsZXMiXVtkYXRhVHlwZV1baWRdID0gaW5wdXQ7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgIGNhc2UgInhtbHR2IjoKICAgICAgICAgICAgY29uZmlybU1zZyA9ICJEZWxldGUgdGhpcyBYTUxUViBmaWxlPyI7CiAgICAgICAgICAgIHN3aXRjaCAob3B0aW9uKSB7CiAgICAgICAgICAgICAgICAvLyBQb3B1cDogU2F2ZQogICAgICAgICAgICAgICAgY2FzZSAwOgogICAgICAgICAgICAgICAgICAgIGNtZCA9ICJzYXZlRmlsZXNYTUxUViI7CiAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAvLyBQb3B1cDogVXBkYXRlCiAgICAgICAgICAgICAgICBjYXNlIDE6CiAgICAgICAgICAgICAgICAgICAgY21kID0gInVwZGF0ZUZpbGVYTUxUViI7CiAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZGF0YVsiZmlsZXMiXSA9IHt9OwogICAgICAgICAgICBkYXRhWyJmaWxlcyJdW2RhdGFUeXBlXSA9IHt9OwogICAgICAgICAgICBkYXRhWyJmaWxlcyJdW2RhdGFUeXBlXVtpZF0gPSBpbnB1dDsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgY2FzZSAiZmlsdGVyIjoKICAgICAgICAgICAgY29uZmlybU1zZyA9ICJEZWxldGUgdGhpcyBmaWx0ZXI/IjsKICAgICAgICAgICAgY21kID0gInNhdmVGaWx0ZXIiOwogICAgICAgICAgICBkYXRhWyJmaWx0ZXIiXSA9IHt9OwogICAgICAgICAgICBkYXRhWyJmaWx0ZXIiXVtpZF0gPSBpbnB1dDsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgcmV0dXJuOwogICAgfQogICAgaWYgKHJlbW92ZSA9PSB0cnVlKSB7CiAgICAgICAgaWYgKCFjb25maXJtKGNvbmZpcm1Nc2cpKSB7CiAgICAgICAgICAgIHNob3dFbGVtZW50KCJwb3B1cCIsIGZhbHNlKTsKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KICAgIH0KICAgIGxldCBzZXJ2ZXIgPSBuZXcgU2VydmVyKGNtZCk7CiAgICBzZXJ2ZXIucmVxdWVzdChkYXRhKTsKfQpmdW5jdGlvbiBkb25lUG9wdXBEYXRhKGRhdGFUeXBlLCBpZHNTdHIpIHsKICAgIGxldCBpZHMgPSBpZHNTdHIuc3BsaXQoJywnKTsKICAgIGxldCBkaXYgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicG9wdXAtY3VzdG9tIik7CiAgICBsZXQgaW5wdXRzID0gZGl2LmdldEVsZW1lbnRzQnlDbGFzc05hbWUoImNoYW5nZWQiKTsKICAgIGlkcy5mb3JFYWNoKGlkID0+IHsKICAgICAgICBsZXQgaW5wdXQ7CiAgICAgICAgaW5wdXQgPSBTRVJWRVJbInhlcGciXVsiZXBnTWFwcGluZyJdW2lkXTsKICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGlucHV0cy5sZW5ndGg7IGkrKykgewogICAgICAgICAgICBsZXQgbmFtZTsKICAgICAgICAgICAgbGV0IHZhbHVlOwogICAgICAgICAgICBzd2l0Y2ggKGlucHV0c1tpXS50YWdOYW1lKSB7CiAgICAgICAgICAgICAgICBjYXNlICJJTlBVVCI6CiAgICAgICAgICAgICAgICAgICAgc3dpdGNoIChpbnB1dHNbaV0udHlwZSkgewogICAgICAgICAgICAgICAgICAgICAgICBjYXNlICJjaGVja2JveCI6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lID0gaW5wdXRzW2ldLm5hbWU7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IGlucHV0c1tpXS5jaGVja2VkOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5wdXRbbmFtZV0gPSB2YWx1ZTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICAgICAgICBjYXNlICJ0ZXh0IjoKICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWUgPSBpbnB1dHNbaV0ubmFtZTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlID0gaW5wdXRzW2ldLnZhbHVlOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5wdXRbbmFtZV0gPSB2YWx1ZTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgIGNhc2UgIlNFTEVDVCI6CiAgICAgICAgICAgICAgICAgICAgbmFtZSA9IGlucHV0c1tpXS5uYW1lOwogICAgICAgICAgICAgICAgICAgIHZhbHVlID0gaW5wdXRzW2ldLnZhbHVlOwogICAgICAgICAgICAgICAgICAgIGlucHV0W25hbWVdID0gdmFsdWU7CiAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgc3dpdGNoIChuYW1lKSB7CiAgICAgICAgICAgICAgICBjYXNlICJ0dmctbG9nbyI6CiAgICAgICAgICAgICAgICAgICAgLy8oZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpLmNoaWxkTm9kZXNbMl0uZmlyc3RDaGlsZCBhcyBIVE1MRWxlbWVudCkuc2V0QXR0cmlidXRlKCJzcmMiLCB2YWx1ZSkKICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgIGNhc2UgIngtbmFtZSI6CiAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpLmNoaWxkTm9kZXNbM10uZmlyc3RDaGlsZC5pbm5lckhUTUwgPSB2YWx1ZTsKICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgIGNhc2UgIngtY2F0ZWdvcnkiOgogICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5jaGlsZE5vZGVzWzNdLmZpcnN0Q2hpbGQuY2xhc3NOYW1lID0gdmFsdWU7CiAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICBjYXNlICJ1cGRhdGUtY2hhbm5lbC1uYW1lLXJlZ2V4IjoKICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkuY2hpbGROb2Rlc1s0XS5maXJzdENoaWxkLmlubmVySFRNTCA9IHZhbHVlOwogICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgY2FzZSAieC1ncm91cC10aXRsZSI6CiAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpLmNoaWxkTm9kZXNbNl0uZmlyc3RDaGlsZC5pbm5lckhUTUwgPSB2YWx1ZTsKICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgIGNhc2UgIngteG1sdHYtZmlsZSI6CiAgICAgICAgICAgICAgICAgICAgaWYgKHZhbHVlICE9ICJ4VGVWZSBEdW1teSIgJiYgdmFsdWUgIT0gIi0iKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlID0gZ2V0VmFsdWVGcm9tUHJvdmlkZXJGaWxlKHZhbHVlLCAieG1sdHYiLCAibmFtZSIpOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBpZiAodmFsdWUgPT0gIi0iKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGlucHV0WyJ4LWFjdGl2ZSJdID0gZmFsc2U7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5jaGlsZE5vZGVzWzddLmZpcnN0Q2hpbGQuaW5uZXJIVE1MID0gdmFsdWU7CiAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICBjYXNlICJ4LW1hcHBpbmciOgogICAgICAgICAgICAgICAgICAgIGlmICh2YWx1ZSA9PSAiLSIpIHsKICAgICAgICAgICAgICAgICAgICAgICAgaW5wdXRbIngtYWN0aXZlIl0gPSBmYWxzZTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpLmNoaWxkTm9kZXNbOF0uZmlyc3RDaGlsZC5pbm5lckhUTUwgPSB2YWx1ZTsKICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgIGNhc2UgIngtdGltZXNoaWZ0IjoKICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkuY2hpbGROb2Rlc1s5XS5maXJzdENoaWxkLmlubmVySFRNTCA9IHZhbHVlOwogICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgfQogICAgICAgICAgICBjcmVhdGVTZWFyY2hPYmooKTsKICAgICAgICAgICAgc2VhcmNoSW5NYXBwaW5nKCk7CiAgICAgICAgfQogICAgICAgIGlmIChpbnB1dFsieC1hY3RpdmUiXSA9PSBmYWxzZSkgewogICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkuY2xhc3NOYW1lID0gIm5vdEFjdGl2ZUVQRyI7CiAgICAgICAgfQogICAgICAgIGVsc2UgewogICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkuY2xhc3NOYW1lID0gImFjdGl2ZUVQRyI7CiAgICAgICAgfQogICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5jaGlsZE5vZGVzWzJdLmZpcnN0Q2hpbGQuc2V0QXR0cmlidXRlKCJzcmMiLCBpbnB1dFsidHZnLWxvZ28iXSk7CiAgICB9KTsKICAgIHNob3dFbGVtZW50KCJwb3B1cCIsIGZhbHNlKTsKICAgIHJldHVybjsKfQpmdW5jdGlvbiBzaG93UHJldmlldyhlbGVtZW50KSB7CiAgICBsZXQgZGl2ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm15U3RyZWFtc0JveCIpOwogICAgc3dpdGNoIChlbGVtZW50KSB7CiAgICAgICAgY2FzZSBmYWxzZToKICAgICAgICAgICAgZGl2LmNsYXNzTmFtZSA9ICJub3RWaXNpYmxlIjsKICAgICAgICAgICAgcmV0dXJuOwogICAgfQogICAgbGV0IHN0cmVhbXMgPSBbImFjdGl2ZVN0cmVhbXMiLCAiaW5hY3RpdmVTdHJlYW1zIl07CiAgICBzdHJlYW1zLmZvckVhY2gocHJldmlldyA9PiB7CiAgICAgICAgbGV0IHRhYmxlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQocHJldmlldyk7CiAgICAgICAgdGFibGUuaW5uZXJIVE1MID0gIiI7CiAgICAgICAgbGV0IG9iaiA9IFNFUlZFUlsiZGF0YSJdWyJTdHJlYW1QcmV2aWV3VUkiXVtwcmV2aWV3XTsKICAgICAgICBvYmouZm9yRWFjaChjaGFubmVsID0+IHsKICAgICAgICAgICAgbGV0IHRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVFIiKTsKICAgICAgICAgICAgbGV0IHRkS2V5ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsKICAgICAgICAgICAgbGV0IHRkVmFsID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsKICAgICAgICAgICAgdGRLZXkuY2xhc3NOYW1lID0gInRkS2V5IjsKICAgICAgICAgICAgdGRWYWwuY2xhc3NOYW1lID0gInRkVmFsIjsKICAgICAgICAgICAgc3dpdGNoIChwcmV2aWV3KSB7CiAgICAgICAgICAgICAgICBjYXNlICJhY3RpdmVTdHJlYW1zIjoKICAgICAgICAgICAgICAgICAgICB0ZEtleS5pbm5lclRleHQgPSAiQ2hhbm5lbDogKCspIjsKICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgIGNhc2UgImluYWN0aXZlU3RyZWFtcyI6CiAgICAgICAgICAgICAgICAgICAgdGRLZXkuaW5uZXJUZXh0ID0gIkNoYW5uZWw6ICgtKSI7CiAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgdGRWYWwuaW5uZXJUZXh0ID0gY2hhbm5lbDsKICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQodGRLZXkpOwogICAgICAgICAgICB0ci5hcHBlbmRDaGlsZCh0ZFZhbCk7CiAgICAgICAgICAgIHRhYmxlLmFwcGVuZENoaWxkKHRyKTsKICAgICAgICB9KTsKICAgIH0pOwogICAgc2hvd0VsZW1lbnQoImxvYWRpbmciLCBmYWxzZSk7CiAgICBkaXYuY2xhc3NOYW1lID0gInZpc2libGUiOwogICAgcmV0dXJuOwp9Cg==" webUI["html/js/network_ts.js"] = "Y2xhc3MgU2VydmVyIHsKICAgIGNvbnN0cnVjdG9yKGNtZCkgewogICAgICAgIHRoaXMuY21kID0gY21kOwogICAgfQogICAgcmVxdWVzdChkYXRhKSB7CiAgICAgICAgaWYgKFNFUlZFUl9DT05ORUNUSU9OID09IHRydWUpIHsKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KICAgICAgICBTRVJWRVJfQ09OTkVDVElPTiA9IHRydWU7CiAgICAgICAgaWYgKHRoaXMuY21kICE9ICJ1cGRhdGVMb2ciKSB7CiAgICAgICAgICAgIHNob3dFbGVtZW50KCJsb2FkaW5nIiwgdHJ1ZSk7CiAgICAgICAgICAgIFVORE8gPSBuZXcgT2JqZWN0KCk7CiAgICAgICAgfQogICAgICAgIHN3aXRjaCAod2luZG93LmxvY2F0aW9uLnByb3RvY29sKSB7CiAgICAgICAgICAgIGNhc2UgImh0dHA6IjoKICAgICAgICAgICAgICAgIHRoaXMucHJvdG9jb2wgPSAid3M6Ly8iOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgImh0dHBzOiI6CiAgICAgICAgICAgICAgICB0aGlzLnByb3RvY29sID0gIndzczovLyI7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICB9CiAgICAgICAgdmFyIHVybCA9IHRoaXMucHJvdG9jb2wgKyB3aW5kb3cubG9jYXRpb24uaG9zdG5hbWUgKyAiOiIgKyB3aW5kb3cubG9jYXRpb24ucG9ydCArICIvZGF0YS8iICsgIj9Ub2tlbj0iICsgZ2V0Q29va2llKCJUb2tlbiIpOwogICAgICAgIGRhdGFbImNtZCJdID0gdGhpcy5jbWQ7CiAgICAgICAgdmFyIHdzID0gbmV3IFdlYlNvY2tldCh1cmwpOwogICAgICAgIHdzLm9ub3BlbiA9IGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgV1NfQVZBSUxBQkxFID0gdHJ1ZTsKICAgICAgICAgICAgdGhpcy5zZW5kKEpTT04uc3RyaW5naWZ5KGRhdGEpKTsKICAgICAgICB9OwogICAgICAgIHdzLm9uZXJyb3IgPSBmdW5jdGlvbiAod3NFcnJFdnQpIHsKICAgICAgICAgICAgY29uc29sZS5sb2coIk5vIHdlYnNvY2tldCBjb25uZWN0aW9uIHRvIHhUZVZlIGNvdWxkIGJlIGVzdGFibGlzaGVkLiBDaGVjayB5b3VyIG5ldHdvcmsgY29uZmlndXJhdGlvbi4iKTsKICAgICAgICAgICAgU0VSVkVSX0NPTk5FQ1RJT04gPSBmYWxzZTsKICAgICAgICAgICAgaWYgKFdTX0FWQUlMQUJMRSA9PSBmYWxzZSkgewogICAgICAgICAgICAgICAgYWxlcnQoIk5vIHdlYnNvY2tldCBjb25uZWN0aW9uIHRvIHhUZVZlIGNvdWxkIGJlIGVzdGFibGlzaGVkLiBDaGVjayB5b3VyIG5ldHdvcmsgY29uZmlndXJhdGlvbi4iKTsKICAgICAgICAgICAgfQogICAgICAgIH07CiAgICAgICAgd3Mub25tZXNzYWdlID0gZnVuY3Rpb24gKHdzTWVzc2FnZUV2dCkgewogICAgICAgICAgICBTRVJWRVJfQ09OTkVDVElPTiA9IGZhbHNlOwogICAgICAgICAgICBzaG93RWxlbWVudCgibG9hZGluZyIsIGZhbHNlKTsKICAgICAgICAgICAgY29uc3QgcmVzcG9uc2UgPSBKU09OLnBhcnNlKHdzTWVzc2FnZUV2dC5kYXRhKTsKICAgICAgICAgICAgaWYgKHJlc3BvbnNlLmhhc093blByb3BlcnR5KCJ0b2tlbiIpKSB7CiAgICAgICAgICAgICAgICBkb2N1bWVudC5jb29raWUgPSAiVG9rZW49IiArIHJlc3BvbnNlWyJ0b2tlbiJdOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGlmIChyZXNwb25zZVsic3RhdHVzIl0gPT0gZmFsc2UpIHsKICAgICAgICAgICAgICAgIGFsZXJ0KHJlc3BvbnNlWyJlcnIiXSk7CiAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgIH0KICAgICAgICAgICAgaWYgKHJlc3BvbnNlLmhhc093blByb3BlcnR5KCdvcGVuTGluaycpKSB7CiAgICAgICAgICAgICAgICB3aW5kb3cubG9jYXRpb24gPSByZXNwb25zZVsnb3BlbkxpbmsnXTsKICAgICAgICAgICAgfQogICAgICAgICAgICBpZiAocmVzcG9uc2UuaGFzT3duUHJvcGVydHkoInJlbG9hZCIpKSB7CiAgICAgICAgICAgICAgICB3aW5kb3cubG9jYXRpb24ucmVsb2FkKCk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgaWYgKHJlc3BvbnNlLmhhc093blByb3BlcnR5KCJhbGVydCIpKSB7CiAgICAgICAgICAgICAgICBhbGVydChyZXNwb25zZVsiYWxlcnQiXSk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgaWYgKHJlc3BvbnNlLmhhc093blByb3BlcnR5KCJsb2dvVVJMIikpIHsKICAgICAgICAgICAgICAgIHZhciBkaXYgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY2hhbm5lbC1pY29uIik7CiAgICAgICAgICAgICAgICBkaXYudmFsdWUgPSByZXNwb25zZVsibG9nb1VSTCJdOwogICAgICAgICAgICAgICAgZGl2LmNsYXNzTmFtZSA9ICJjaGFuZ2VkIjsKICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgfQogICAgICAgICAgICBzd2l0Y2ggKGRhdGFbImNtZCJdKSB7CiAgICAgICAgICAgICAgICBjYXNlICJ1cGRhdGVMb2ciOgogICAgICAgICAgICAgICAgICAgIFNFUlZFUlsibG9nIl0gPSByZXNwb25zZVsibG9nIl07CiAgICAgICAgICAgICAgICAgICAgaWYgKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb250ZW50X2xvZyIpKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIHNob3dMb2dzKGZhbHNlKTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgICAgICAgICBTRVJWRVIgPSBuZXcgT2JqZWN0KCk7CiAgICAgICAgICAgICAgICAgICAgU0VSVkVSID0gcmVzcG9uc2U7CiAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgaWYgKHJlc3BvbnNlLmhhc093blByb3BlcnR5KCJvcGVuTWVudSIpKSB7CiAgICAgICAgICAgICAgICB2YXIgbWVudSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHJlc3BvbnNlWyJvcGVuTWVudSJdKTsKICAgICAgICAgICAgICAgIG1lbnUuY2xpY2soKTsKICAgICAgICAgICAgICAgIHNob3dFbGVtZW50KCJwb3B1cCIsIGZhbHNlKTsKICAgICAgICAgICAgfQogICAgICAgICAgICBpZiAocmVzcG9uc2UuaGFzT3duUHJvcGVydHkoInJlbG9hZCIpKSB7CiAgICAgICAgICAgICAgICBsb2NhdGlvbi5yZWxvYWQoKTsKICAgICAgICAgICAgfQogICAgICAgICAgICBpZiAocmVzcG9uc2UuaGFzT3duUHJvcGVydHkoIndpemFyZCIpKSB7CiAgICAgICAgICAgICAgICBjcmVhdGVMYXlvdXQoKTsKICAgICAgICAgICAgICAgIGNvbmZpZ3VyYXRpb25XaXphcmRbcmVzcG9uc2VbIndpemFyZCJdXS5jcmVhdGVXaXphcmQoKTsKICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgfQogICAgICAgICAgICBjcmVhdGVMYXlvdXQoKTsKICAgICAgICB9OwogICAgfQp9CmZ1bmN0aW9uIGdldENvb2tpZShuYW1lKSB7CiAgICB2YXIgdmFsdWUgPSAiOyAiICsgZG9jdW1lbnQuY29va2llOwogICAgdmFyIHBhcnRzID0gdmFsdWUuc3BsaXQoIjsgIiArIG5hbWUgKyAiPSIpOwogICAgaWYgKHBhcnRzLmxlbmd0aCA9PSAyKSB7CiAgICAgICAgcmV0dXJuIHBhcnRzLnBvcCgpLnNwbGl0KCI7Iikuc2hpZnQoKTsKICAgIH0KfQo=" webUI["html/js/settings_ts.js"] = "Y2xhc3MgU2V0dGluZ3NDYXRlZ29yeSB7CiAgICBjb25zdHJ1Y3RvcigpIHsKICAgICAgICB0aGlzLkRvY3VtZW50SUQgPSAiY29udGVudF9zZXR0aW5ncyI7CiAgICB9CiAgICBjcmVhdGVDYXRlZ29yeUhlYWRsaW5lKHZhbHVlKSB7CiAgICAgICAgdmFyIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJINCIpOwogICAgICAgIGVsZW1lbnQuaW5uZXJIVE1MID0gdmFsdWU7CiAgICAgICAgcmV0dXJuIGVsZW1lbnQ7CiAgICB9CiAgICBjcmVhdGVIUigpIHsKICAgICAgICB2YXIgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIkhSIik7CiAgICAgICAgcmV0dXJuIGVsZW1lbnQ7CiAgICB9CiAgICBjcmVhdGVTZXR0aW5ncyhzZXR0aW5nc0tleSkgewogICAgICAgIHZhciBzZXR0aW5nID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVFIiKTsKICAgICAgICB2YXIgY29udGVudCA9IG5ldyBQb3B1cENvbnRlbnQoKTsKICAgICAgICB2YXIgZGF0YSA9IFNFUlZFUlsic2V0dGluZ3MiXVtzZXR0aW5nc0tleV07CiAgICAgICAgc3dpdGNoIChzZXR0aW5nc0tleSkgewogICAgICAgICAgICAvLyBUZXh0IGlucHV0cwogICAgICAgICAgICBjYXNlICJ1cGRhdGUiOgogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7CiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLnVwZGF0ZS50aXRsZX19IiArICI6IjsKICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsKICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCAidXBkYXRlIiwgZGF0YS50b1N0cmluZygpKTsKICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3suc2V0dGluZ3MudXBkYXRlLnBsYWNlaG9sZGVyfX0iKTsKICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsKICAgICAgICAgICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQoaW5wdXQpOwogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOwogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJiYWNrdXAucGF0aCI6CiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsKICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MuYmFja3VwUGF0aC50aXRsZX19IiArICI6IjsKICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsKICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCAiYmFja3VwLnBhdGgiLCBkYXRhKTsKICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3suc2V0dGluZ3MuYmFja3VwUGF0aC5wbGFjZWhvbGRlcn19Iik7CiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7CiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsKICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsKICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAidGVtcC5wYXRoIjoKICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOwogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy50ZW1wUGF0aC50aXRsZX19IiArICI6IjsKICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsKICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCAidGVtcC5wYXRoIiwgZGF0YSk7CiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnNldHRpbmdzLnRtcFBhdGgucGxhY2Vob2xkZXJ9fSIpOwogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOwogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7CiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7CiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgInVzZXIuYWdlbnQiOgogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7CiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLnVzZXJBZ2VudC50aXRsZX19IiArICI6IjsKICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsKICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCAidXNlci5hZ2VudCIsIGRhdGEpOwogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5zZXR0aW5ncy51c2VyQWdlbnQucGxhY2Vob2xkZXJ9fSIpOwogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOwogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7CiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7CiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgImJ1ZmZlci50aW1lb3V0IjoKICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOwogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5idWZmZXJUaW1lb3V0LnRpdGxlfX0iICsgIjoiOwogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOwogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsICJidWZmZXIudGltZW91dCIsIGRhdGEpOwogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5zZXR0aW5ncy5idWZmZXJUaW1lb3V0LnBsYWNlaG9sZGVyfX0iKTsKICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsKICAgICAgICAgICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQoaW5wdXQpOwogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOwogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJmZm1wZWcucGF0aCI6CiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsKICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MuZmZtcGVnUGF0aC50aXRsZX19IiArICI6IjsKICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsKICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCAiZmZtcGVnLnBhdGgiLCBkYXRhKTsKICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3suc2V0dGluZ3MuZmZtcGVnUGF0aC5wbGFjZWhvbGRlcn19Iik7CiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7CiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsKICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsKICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAiZmZtcGVnLm9wdGlvbnMiOgogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7CiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmZmbXBlZ09wdGlvbnMudGl0bGV9fSIgKyAiOiI7CiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7CiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgImZmbXBlZy5vcHRpb25zIiwgZGF0YSk7CiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnNldHRpbmdzLmZmbXBlZ09wdGlvbnMucGxhY2Vob2xkZXJ9fSIpOwogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOwogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7CiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7CiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgInZsYy5wYXRoIjoKICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOwogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy52bGNQYXRoLnRpdGxlfX0iICsgIjoiOwogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOwogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsICJ2bGMucGF0aCIsIGRhdGEpOwogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5zZXR0aW5ncy52bGNQYXRoLnBsYWNlaG9sZGVyfX0iKTsKICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsKICAgICAgICAgICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQoaW5wdXQpOwogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOwogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJ2bGMub3B0aW9ucyI6CiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsKICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MudmxjT3B0aW9ucy50aXRsZX19IiArICI6IjsKICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsKICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCAidmxjLm9wdGlvbnMiLCBkYXRhKTsKICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3suc2V0dGluZ3MudmxjT3B0aW9ucy5wbGFjZWhvbGRlcn19Iik7CiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7CiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsKICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsKICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgLy8gQ2hlY2tib3hlcwogICAgICAgICAgICBjYXNlICJ0bHNNb2RlIjoKICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOwogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy50bHNNb2RlLnRpdGxlfX0iICsgIjoiOwogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOwogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChzZXR0aW5nc0tleSk7CiAgICAgICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YTsKICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsKICAgICAgICAgICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQoaW5wdXQpOwogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOwogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJkaXNhbGxvd1VSTER1cGxpY2F0ZXMiOgogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7CiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmRpc2FsbG93VVJMRHVwbGljYXRlcy50aXRsZX19IiArICI6IjsKICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsKICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goc2V0dGluZ3NLZXkpOwogICAgICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGE7CiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7CiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsKICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsKICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAiYXV0aGVudGljYXRpb24ud2ViIjoKICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOwogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5hdXRoZW50aWNhdGlvbldFQi50aXRsZX19IiArICI6IjsKICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsKICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goc2V0dGluZ3NLZXkpOwogICAgICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGE7CiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7CiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsKICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsKICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAiYXV0aGVudGljYXRpb24ucG1zIjoKICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOwogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5hdXRoZW50aWNhdGlvblBNUy50aXRsZX19IiArICI6IjsKICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsKICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goc2V0dGluZ3NLZXkpOwogICAgICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGE7CiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7CiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsKICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsKICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAiYXV0aGVudGljYXRpb24ubTN1IjoKICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOwogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5hdXRoZW50aWNhdGlvbk0zVS50aXRsZX19IiArICI6IjsKICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsKICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goc2V0dGluZ3NLZXkpOwogICAgICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGE7CiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7CiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsKICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsKICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAiYXV0aGVudGljYXRpb24ueG1sIjoKICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOwogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5hdXRoZW50aWNhdGlvblhNTC50aXRsZX19IiArICI6IjsKICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsKICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goc2V0dGluZ3NLZXkpOwogICAgICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGE7CiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7CiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsKICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsKICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAiYXV0aGVudGljYXRpb24uYXBpIjoKICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOwogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5hdXRoZW50aWNhdGlvbkFQSS50aXRsZX19IiArICI6IjsKICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsKICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goc2V0dGluZ3NLZXkpOwogICAgICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGE7CiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7CiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsKICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsKICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAiZmlsZXMudXBkYXRlIjoKICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOwogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5maWxlc1VwZGF0ZS50aXRsZX19IiArICI6IjsKICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsKICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goc2V0dGluZ3NLZXkpOwogICAgICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGE7CiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7CiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsKICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsKICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAiY2FjaGUuaW1hZ2VzIjoKICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOwogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5jYWNoZUltYWdlcy50aXRsZX19IiArICI6IjsKICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsKICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goc2V0dGluZ3NLZXkpOwogICAgICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGE7CiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7CiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsKICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsKICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAieGVwZy5yZXBsYWNlLm1pc3NpbmcuaW1hZ2VzIjoKICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOwogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5yZXBsYWNlRW1wdHlJbWFnZXMudGl0bGV9fSIgKyAiOiI7CiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7CiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KHNldHRpbmdzS2V5KTsKICAgICAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhOwogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOwogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7CiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7CiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgInN0b3JlQnVmZmVySW5SQU0iOgogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7CiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLnN0b3JlQnVmZmVySW5SQU0udGl0bGV9fSIgKyAiOiI7CiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7CiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KHNldHRpbmdzS2V5KTsKICAgICAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhOwogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOwogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7CiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7CiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgInh0ZXZlQXV0b1VwZGF0ZSI6CiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsKICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MueHRldmVBdXRvVXBkYXRlLnRpdGxlfX0iICsgIjoiOwogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOwogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChzZXR0aW5nc0tleSk7CiAgICAgICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YTsKICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsKICAgICAgICAgICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQoaW5wdXQpOwogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOwogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJjbGVhclhNTFRWQ2FjaGUiOgogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7CiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmNsZWFyWE1MVFZDYWNoZS50aXRsZX19IiArICI6IjsKICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsKICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goc2V0dGluZ3NLZXkpOwogICAgICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGE7CiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7CiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsKICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsKICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAiYXBpIjoKICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOwogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5hcGkudGl0bGV9fSIgKyAiOiI7CiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7CiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KHNldHRpbmdzS2V5KTsKICAgICAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhOwogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOwogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7CiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7CiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgImVuYWJsZU1hcHBlZENoYW5uZWxzIjoKICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOwogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5lbmFibGVNYXBwZWRDaGFubmVscy50aXRsZX19IiArICI6IjsKICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsKICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goc2V0dGluZ3NLZXkpOwogICAgICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGE7CiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7CiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsKICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsKICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgLy8gU2VsZWN0CiAgICAgICAgICAgIGNhc2UgImhvc3RJUCI6CiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsKICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MuaG9zdElQLnRpdGxlfX0iICsgIjoiOwogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOwogICAgICAgICAgICAgICAgdmFyIHRleHQgPSBTRVJWRVJbImlwQWRkcmVzc2VzVjRIb3N0Il07CiAgICAgICAgICAgICAgICB2YXIgdmFsdWVzID0gU0VSVkVSWyJpcEFkZHJlc3Nlc1Y0SG9zdCJdOwogICAgICAgICAgICAgICAgdmFyIHNlbGVjdCA9IGNvbnRlbnQuY3JlYXRlU2VsZWN0KHRleHQsIHZhbHVlcywgZGF0YSwgc2V0dGluZ3NLZXkpOwogICAgICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsKICAgICAgICAgICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQoc2VsZWN0KTsKICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsKICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAiaG9zdE5hbWUiOgogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7CiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmhvc3ROYW1lLnRpdGxlfX0iICsgIjoiOwogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOwogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsICJob3N0TmFtZSIsIGRhdGEpOwogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5zZXR0aW5ncy5ob3N0TmFtZS5wbGFjZWhvbGRlcn19Iik7CiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7CiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsKICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsKICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAidHVuZXIiOgogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7CiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLnR1bmVyLnRpdGxlfX0iICsgIjoiOwogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOwogICAgICAgICAgICAgICAgdmFyIHRleHQgPSBuZXcgQXJyYXkoKTsKICAgICAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBuZXcgQXJyYXkoKTsKICAgICAgICAgICAgICAgIGZvciAodmFyIGkgPSAxOyBpIDw9IDEwMDsgaSsrKSB7CiAgICAgICAgICAgICAgICAgICAgdGV4dC5wdXNoKGkpOwogICAgICAgICAgICAgICAgICAgIHZhbHVlcy5wdXNoKGkpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgdmFyIHNlbGVjdCA9IGNvbnRlbnQuY3JlYXRlU2VsZWN0KHRleHQsIHZhbHVlcywgZGF0YSwgc2V0dGluZ3NLZXkpOwogICAgICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsKICAgICAgICAgICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQoc2VsZWN0KTsKICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsKICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAiZXBnU291cmNlIjoKICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOwogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5lcGdTb3VyY2UudGl0bGV9fSIgKyAiOiI7CiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7CiAgICAgICAgICAgICAgICB2YXIgdGV4dCA9IFsiUE1TIiwgIlhFUEciXTsKICAgICAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBbIlBNUyIsICJYRVBHIl07CiAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCBkYXRhLCBzZXR0aW5nc0tleSk7CiAgICAgICAgICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOwogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChzZWxlY3QpOwogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOwogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJkZWZhdWx0TWlzc2luZ0VQRyI6CiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsKICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MuZGVmYXVsdE1pc3NpbmdFUEcudGl0bGV9fSIgKyAiOiI7CiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7CiAgICAgICAgICAgICAgICB2YXIgdGV4dCA9IFsKICAgICAgICAgICAgICAgICAgICAiLSIsICIzMCBNaW51dGVzICgzMF9NaW51dGVzKSIsICI2MCBNaW51dGVzICg2MF9NaW51dGVzKSIsICI5MCBNaW51dGVzICg5MF9NaW51dGVzKSIsCiAgICAgICAgICAgICAgICAgICAgIjEyMCBNaW51dGVzICgxMjBfTWludXRlcykiLCAiMTgwIE1pbnV0ZXMgKDE4MF9NaW51dGVzKSIsICIyNDAgTWludXRlcyAoMjQwX01pbnV0ZXMpIiwgIjM2MCBNaW51dGVzICgzNjBfTWludXRlcykiCiAgICAgICAgICAgICAgICBdOwogICAgICAgICAgICAgICAgdmFyIHZhbHVlcyA9IFsKICAgICAgICAgICAgICAgICAgICAiLSIsICIzMF9NaW51dGVzIiwgIjYwX01pbnV0ZXMiLCAiOTBfTWludXRlcyIsICIxMjBfTWludXRlcyIsICIxODBfTWludXRlcyIsICIyNDBfTWludXRlcyIsICIzNjBfTWludXRlcyIKICAgICAgICAgICAgICAgIF07CiAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCBkYXRhLCBzZXR0aW5nc0tleSk7CiAgICAgICAgICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOwogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChzZWxlY3QpOwogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOwogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJiYWNrdXAua2VlcCI6CiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsKICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MuYmFja3VwS2VlcC50aXRsZX19IiArICI6IjsKICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsKICAgICAgICAgICAgICAgIHZhciB0ZXh0ID0gWyI1IiwgIjEwIiwgIjIwIiwgIjMwIiwgIjQwIiwgIjUwIl07CiAgICAgICAgICAgICAgICB2YXIgdmFsdWVzID0gWyI1IiwgIjEwIiwgIjIwIiwgIjMwIiwgIjQwIiwgIjUwIl07CiAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCBkYXRhLCBzZXR0aW5nc0tleSk7CiAgICAgICAgICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOwogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChzZWxlY3QpOwogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOwogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJidWZmZXIuc2l6ZS5rYiI6CiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsKICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MuYnVmZmVyU2l6ZS50aXRsZX19IiArICI6IjsKICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsKICAgICAgICAgICAgICAgIHZhciB0ZXh0ID0gWyIwLjUgTUIiLCAiMSBNQiIsICIyIE1CIiwgIjMgTUIiLCAiNCBNQiIsICI1IE1CIiwgIjYgTUIiLCAiNyBNQiIsICI4IE1CIl07CiAgICAgICAgICAgICAgICB2YXIgdmFsdWVzID0gWyI1MTIiLCAiMTAyNCIsICIyMDQ4IiwgIjMwNzIiLCAiNDA5NiIsICI1MTIwIiwgIjYxNDQiLCAiNzE2OCIsICI4MTkyIl07CiAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCBkYXRhLCBzZXR0aW5nc0tleSk7CiAgICAgICAgICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOwogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChzZWxlY3QpOwogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOwogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJidWZmZXIiOgogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7CiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLnN0cmVhbUJ1ZmZlcmluZy50aXRsZX19IiArICI6IjsKICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsKICAgICAgICAgICAgICAgIHZhciB0ZXh0ID0gWyJ7ey5zZXR0aW5ncy5zdHJlYW1CdWZmZXJpbmcuaW5mb19mYWxzZX19IiwgInhUZVZlOiAoe3suc2V0dGluZ3Muc3RyZWFtQnVmZmVyaW5nLmluZm9feHRldmV9fSkiLCAiRkZtcGVnOiAoe3suc2V0dGluZ3Muc3RyZWFtQnVmZmVyaW5nLmluZm9fZmZtcGVnfX0pIiwgIlZMQzogKHt7LnNldHRpbmdzLnN0cmVhbUJ1ZmZlcmluZy5pbmZvX3ZsY319KSJdOwogICAgICAgICAgICAgICAgdmFyIHZhbHVlcyA9IFsiLSIsICJ4dGV2ZSIsICJmZm1wZWciLCAidmxjIl07CiAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCBkYXRhLCBzZXR0aW5nc0tleSk7CiAgICAgICAgICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOwogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChzZWxlY3QpOwogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOwogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJ1ZHB4eSI6CiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsKICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MudWRweHkudGl0bGV9fSIgKyAiOiI7CiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7CiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgInVkcHh5IiwgZGF0YSk7CiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnNldHRpbmdzLnVkcHh5LnBsYWNlaG9sZGVyfX0iKTsKICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsKICAgICAgICAgICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQoaW5wdXQpOwogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOwogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgIH0KICAgICAgICByZXR1cm4gc2V0dGluZzsKICAgIH0KICAgIGNyZWF0ZURlc2NyaXB0aW9uKHNldHRpbmdzS2V5KSB7CiAgICAgICAgdmFyIGRlc2NyaXB0aW9uID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVFIiKTsKICAgICAgICB2YXIgdGV4dDsKICAgICAgICBzd2l0Y2ggKHNldHRpbmdzS2V5KSB7CiAgICAgICAgICAgIGNhc2UgInRsc01vZGUiOgogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy50bHNNb2RlLmRlc2NyaXB0aW9ufX0iOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgImRpc2FsbG93VVJMRHVwbGljYXRlcyI6CiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLmRpc2FsbG93VVJMRHVwbGljYXRlcy5kZXNjcmlwdGlvbn19IjsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJhdXRoZW50aWNhdGlvbi53ZWIiOgogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5hdXRoZW50aWNhdGlvbldFQi5kZXNjcmlwdGlvbn19IjsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJhdXRoZW50aWNhdGlvbi5tM3UiOgogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5hdXRoZW50aWNhdGlvbk0zVS5kZXNjcmlwdGlvbn19IjsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJhdXRoZW50aWNhdGlvbi5wbXMiOgogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5hdXRoZW50aWNhdGlvblBNUy5kZXNjcmlwdGlvbn19IjsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJhdXRoZW50aWNhdGlvbi54bWwiOgogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5hdXRoZW50aWNhdGlvblhNTC5kZXNjcmlwdGlvbn19IjsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJhdXRoZW50aWNhdGlvbi5hcGkiOgogICAgICAgICAgICAgICAgaWYgKFNFUlZFUlsic2V0dGluZ3MiXVsiYXV0aGVudGljYXRpb24ud2ViIl0gPT0gdHJ1ZSkgewogICAgICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MuYXV0aGVudGljYXRpb25BUEkuZGVzY3JpcHRpb259fSI7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAieHRldmVBdXRvVXBkYXRlIjoKICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MueHRldmVBdXRvVXBkYXRlLmRlc2NyaXB0aW9ufX0iOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgImJhY2t1cC5rZWVwIjoKICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MuYmFja3VwS2VlcC5kZXNjcmlwdGlvbn19IjsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJiYWNrdXAucGF0aCI6CiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLmJhY2t1cFBhdGguZGVzY3JpcHRpb259fSI7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAidGVtcC5wYXRoIjoKICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MudGVtcFBhdGguZGVzY3JpcHRpb259fSI7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAiYnVmZmVyIjoKICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3Muc3RyZWFtQnVmZmVyaW5nLmRlc2NyaXB0aW9ufX0iOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgImJ1ZmZlci5zaXplLmtiIjoKICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MuYnVmZmVyU2l6ZS5kZXNjcmlwdGlvbn19IjsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJzdG9yZUJ1ZmZlckluUkFNIjoKICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3Muc3RvcmVCdWZmZXJJblJBTS5kZXNjcmlwdGlvbn19IjsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJidWZmZXIudGltZW91dCI6CiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLmJ1ZmZlclRpbWVvdXQuZGVzY3JpcHRpb259fSI7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAidXNlci5hZ2VudCI6CiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLnVzZXJBZ2VudC5kZXNjcmlwdGlvbn19IjsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJmZm1wZWcucGF0aCI6CiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLmZmbXBlZ1BhdGguZGVzY3JpcHRpb259fSI7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAiZmZtcGVnLm9wdGlvbnMiOgogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5mZm1wZWdPcHRpb25zLmRlc2NyaXB0aW9ufX0iOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgInZsYy5wYXRoIjoKICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MudmxjUGF0aC5kZXNjcmlwdGlvbn19IjsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJ2bGMub3B0aW9ucyI6CiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLnZsY09wdGlvbnMuZGVzY3JpcHRpb259fSI7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAiZXBnU291cmNlIjoKICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MuZXBnU291cmNlLmRlc2NyaXB0aW9ufX0iOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgImhvc3RJUCI6CiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLmhvc3RJUC5kZXNjcmlwdGlvbn19IjsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJob3N0TmFtZSI6CiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLmhvc3ROYW1lLmRlc2NyaXB0aW9ufX0iOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgInR1bmVyIjoKICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MudHVuZXIuZGVzY3JpcHRpb259fSI7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAidXBkYXRlIjoKICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MudXBkYXRlLmRlc2NyaXB0aW9ufX0iOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgImNsZWFyWE1MVFZDYWNoZSI6CiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLmNsZWFyWE1MVFZDYWNoZS5kZXNjcmlwdGlvbn19IjsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJhcGkiOgogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5hcGkuZGVzY3JpcHRpb259fSI7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAiZGVmYXVsdE1pc3NpbmdFUEciOgogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5kZWZhdWx0TWlzc2luZ0VQRy5kZXNjcmlwdGlvbn19IjsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJlbmFibGVNYXBwZWRDaGFubmVscyI6CiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLmVuYWJsZU1hcHBlZENoYW5uZWxzLmRlc2NyaXB0aW9ufX0iOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgImZpbGVzLnVwZGF0ZSI6CiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLmZpbGVzVXBkYXRlLmRlc2NyaXB0aW9ufX0iOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgImNhY2hlLmltYWdlcyI6CiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLmNhY2hlSW1hZ2VzLmRlc2NyaXB0aW9ufX0iOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgInhlcGcucmVwbGFjZS5taXNzaW5nLmltYWdlcyI6CiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLnJlcGxhY2VFbXB0eUltYWdlcy5kZXNjcmlwdGlvbn19IjsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJ1ZHB4eSI6CiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLnVkcHh5LmRlc2NyaXB0aW9ufX0iOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICAgICB0ZXh0ID0gIiI7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICB9CiAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7CiAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICIiOwogICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsKICAgICAgICB2YXIgcHJlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiUFJFIik7CiAgICAgICAgcHJlLmlubmVySFRNTCA9IHRleHQ7CiAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChwcmUpOwogICAgICAgIGRlc2NyaXB0aW9uLmFwcGVuZENoaWxkKHRkTGVmdCk7CiAgICAgICAgZGVzY3JpcHRpb24uYXBwZW5kQ2hpbGQodGRSaWdodCk7CiAgICAgICAgcmV0dXJuIGRlc2NyaXB0aW9uOwogICAgfQp9CmNsYXNzIFNldHRpbmdzQ2F0ZWdvcnlJdGVtIGV4dGVuZHMgU2V0dGluZ3NDYXRlZ29yeSB7CiAgICBjb25zdHJ1Y3RvcihoZWFkbGluZSwgc2V0dGluZ3NLZXlzKSB7CiAgICAgICAgc3VwZXIoKTsKICAgICAgICB0aGlzLmhlYWRsaW5lID0gaGVhZGxpbmU7CiAgICAgICAgdGhpcy5zZXR0aW5nc0tleXMgPSBzZXR0aW5nc0tleXM7CiAgICB9CiAgICBjcmVhdGVDYXRlZ29yeSgpIHsKICAgICAgICB2YXIgaGVhZGxpbmUgPSB0aGlzLmNyZWF0ZUNhdGVnb3J5SGVhZGxpbmUodGhpcy5oZWFkbGluZSk7CiAgICAgICAgdmFyIHNldHRpbmdzS2V5cyA9IHRoaXMuc2V0dGluZ3NLZXlzOwogICAgICAgIHZhciBkb2MgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCh0aGlzLkRvY3VtZW50SUQpOwogICAgICAgIGRvYy5hcHBlbmRDaGlsZChoZWFkbGluZSk7CiAgICAgICAgLy8gQ3JlYXRlIGEgdGFibGUgZm9yIHRoZSBjYXRlZ29yeQogICAgICAgIHZhciB0YWJsZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlRBQkxFIik7CiAgICAgICAgdmFyIGtleXMgPSBzZXR0aW5nc0tleXMuc3BsaXQoIiwiKTsKICAgICAgICBrZXlzLmZvckVhY2goc2V0dGluZ3NLZXkgPT4gewogICAgICAgICAgICBzd2l0Y2ggKHNldHRpbmdzS2V5KSB7CiAgICAgICAgICAgICAgICBjYXNlICJhdXRoZW50aWNhdGlvbi5wbXMiOgogICAgICAgICAgICAgICAgY2FzZSAiYXV0aGVudGljYXRpb24ubTN1IjoKICAgICAgICAgICAgICAgIGNhc2UgImF1dGhlbnRpY2F0aW9uLnhtbCI6CiAgICAgICAgICAgICAgICBjYXNlICJhdXRoZW50aWNhdGlvbi5hcGkiOgogICAgICAgICAgICAgICAgICAgIGlmIChTRVJWRVJbInNldHRpbmdzIl1bImF1dGhlbnRpY2F0aW9uLndlYiJdID09IGZhbHNlKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICAgICAgICAgdmFyIGl0ZW0gPSB0aGlzLmNyZWF0ZVNldHRpbmdzKHNldHRpbmdzS2V5KTsKICAgICAgICAgICAgICAgICAgICB2YXIgZGVzY3JpcHRpb24gPSB0aGlzLmNyZWF0ZURlc2NyaXB0aW9uKHNldHRpbmdzS2V5KTsKICAgICAgICAgICAgICAgICAgICB0YWJsZS5hcHBlbmRDaGlsZChpdGVtKTsKICAgICAgICAgICAgICAgICAgICB0YWJsZS5hcHBlbmRDaGlsZChkZXNjcmlwdGlvbik7CiAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIH0KICAgICAgICB9KTsKICAgICAgICBkb2MuYXBwZW5kQ2hpbGQodGFibGUpOwogICAgICAgIGRvYy5hcHBlbmRDaGlsZCh0aGlzLmNyZWF0ZUhSKCkpOwogICAgfQp9CmZ1bmN0aW9uIHNob3dTZXR0aW5ncygpIHsKICAgIGZvciAobGV0IGkgPSAwOyBpIDwgc2V0dGluZ3NDYXRlZ29yeS5sZW5ndGg7IGkrKykgewogICAgICAgIHNldHRpbmdzQ2F0ZWdvcnlbaV0uY3JlYXRlQ2F0ZWdvcnkoKTsKICAgIH0KfQpmdW5jdGlvbiBzYXZlU2V0dGluZ3MoKSB7CiAgICB2YXIgY21kID0gInNhdmVTZXR0aW5ncyI7CiAgICB2YXIgZGl2ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnRlbnRfc2V0dGluZ3MiKTsKICAgIHZhciBzZXR0aW5ncyA9IGRpdi5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCJjaGFuZ2VkIik7CiAgICB2YXIgbmV3U2V0dGluZ3MgPSBuZXcgT2JqZWN0KCk7CiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHNldHRpbmdzLmxlbmd0aDsgaSsrKSB7CiAgICAgICAgdmFyIG5hbWU7CiAgICAgICAgdmFyIHZhbHVlOwogICAgICAgIHN3aXRjaCAoc2V0dGluZ3NbaV0udGFnTmFtZSkgewogICAgICAgICAgICBjYXNlICJJTlBVVCI6CiAgICAgICAgICAgICAgICBzd2l0Y2ggKHNldHRpbmdzW2ldLnR5cGUpIHsKICAgICAgICAgICAgICAgICAgICBjYXNlICJjaGVja2JveCI6CiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWUgPSBzZXR0aW5nc1tpXS5uYW1lOwogICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IHNldHRpbmdzW2ldLmNoZWNrZWQ7CiAgICAgICAgICAgICAgICAgICAgICAgIG5ld1NldHRpbmdzW25hbWVdID0gdmFsdWU7CiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICAgIGNhc2UgInRleHQiOgogICAgICAgICAgICAgICAgICAgICAgICBuYW1lID0gc2V0dGluZ3NbaV0ubmFtZTsKICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSBzZXR0aW5nc1tpXS52YWx1ZTsKICAgICAgICAgICAgICAgICAgICAgICAgc3dpdGNoIChuYW1lKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYXNlICJ1cGRhdGUiOgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlID0gdmFsdWUuc3BsaXQoIiwiKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IHZhbHVlLmZpbHRlcihmdW5jdGlvbiAoZSkgeyByZXR1cm4gZTsgfSk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYXNlICJidWZmZXIudGltZW91dCI6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSBwYXJzZUZsb2F0KHZhbHVlKTsKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICBuZXdTZXR0aW5nc1tuYW1lXSA9IHZhbHVlOwogICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJTRUxFQ1QiOgogICAgICAgICAgICAgICAgbmFtZSA9IHNldHRpbmdzW2ldLm5hbWU7CiAgICAgICAgICAgICAgICB2YWx1ZSA9IHNldHRpbmdzW2ldLnZhbHVlOwogICAgICAgICAgICAgICAgLy8gSWYgdGhlIHZhbHVlIGlzIGEgbnVtYmVyLCBzdG9yZSBpdCBhcyBhIG51bWJlcgogICAgICAgICAgICAgICAgaWYgKGlzTmFOKHZhbHVlKSkgewogICAgICAgICAgICAgICAgICAgIG5ld1NldHRpbmdzW25hbWVdID0gdmFsdWU7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgICAgICBuZXdTZXR0aW5nc1tuYW1lXSA9IHBhcnNlSW50KHZhbHVlKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgIH0KICAgIH0KICAgIHZhciBkYXRhID0gbmV3IE9iamVjdCgpOwogICAgZGF0YVsic2V0dGluZ3MiXSA9IG5ld1NldHRpbmdzOwogICAgdmFyIHNlcnZlciA9IG5ldyBTZXJ2ZXIoY21kKTsKICAgIHNlcnZlci5yZXF1ZXN0KGRhdGEpOwp9Cg==" - webUI["html/lang/en.json"] = "ewogICJtYWluTWVudSI6IHsKICAgICJpdGVtIjogewogICAgICAicGxheWxpc3QiOiAiUGxheWxpc3QiLAogICAgICAicG1zSUQiOiAiUE1TIElEIiwKICAgICAgImZpbHRlciI6ICJGaWx0ZXIiLAogICAgICAieG1sdHYiOiAiWE1MVFYiLAogICAgICAibWFwcGluZyI6ICJNYXBwaW5nIiwKICAgICAgInVzZXJzIjogIlVzZXJzIiwKICAgICAgInNldHRpbmdzIjogIlNldHRpbmdzIiwKICAgICAgImxvZyI6ICJMb2ciLAogICAgICAibG9nb3V0IjogIkxvZ291dCIKICAgIH0sCiAgICAiaGVhZGxpbmUiOiB7CiAgICAgICJwbGF5bGlzdCI6ICJMb2NhbCBvciByZW1vdGUgcGxheWxpc3RzIiwKICAgICAgImZpbHRlciI6ICJGaWx0ZXIgcGxheWxpc3QiLAogICAgICAieG1sdHYiOiAiTG9jYWwgb3IgcmVtb3RlIFhNTFRWIGZpbGVzIiwKICAgICAgIm1hcHBpbmciOiAiTWFwIHBsYXlsaXN0IGNoYW5uZWxzIHRvIEVQRyBjaGFubmVscyIsCiAgICAgICJ1c2VycyI6ICJVc2VyIG1hbmFnZW1lbnQiLAogICAgICAic2V0dGluZ3MiOiAiU2V0dGluZ3MiLAogICAgICAibG9nIjogIkxvZyIsCiAgICAgICJsb2dvdXQiOiAiTG9nb3V0IgogICAgfQogIH0sCiAgImNvbmZpcm0iOiB7CiAgICAicmVzdG9yZSI6ICJBbGwgZGF0YSB3aWxsIGJlIHJlcGxhY2VkIHdpdGggdGhvc2UgZnJvbSB0aGUgYmFja3VwLiBTaG91bGQgdGhlIGZpbGVzIGJlIHJlc3RvcmVkPyIKICB9LAogICJhbGVydCI6IHsKICAgICJmaWxlTG9hZGluZ0Vycm9yIjogIkZpbGUgY291bGRuJ3QgYmUgbG9hZGVkIiwKICAgICJpbnZhbGlkQ2hhbm5lbE51bWJlciI6ICJJbnZhbGlkIGNoYW5uZWwgbnVtYmVyIiwKICAgICJtaXNzaW5nSW5wdXQiOiAiTWlzc2luZyBpbnB1dCIKICB9LAogICJidXR0b24iOiB7CiAgICAiYmFjayI6ICJCYWNrIiwKICAgICJiYWNrdXAiOiAiQmFja3VwIiwKICAgICJidWxrRWRpdCI6ICJCdWxrIEVkaXQiLAogICAgImNhbmNlbCI6ICJDYW5jZWwiLAogICAgImRlbGV0ZSI6ICJEZWxldGUiLAogICAgImRvbmUiOiAiRG9uZSIsCiAgICAibG9naW4iOiAiTG9naW4iLAogICAgIm5ldyI6ICJOZXciLAogICAgIm5leHQiOiAiTmV4dCIsCiAgICAicmVzdG9yZSI6ICJSZXN0b3JlIiwKICAgICJzYXZlIjogIlNhdmUiLAogICAgInNlYXJjaCI6ICJTZWFyY2giLAogICAgInVwZGF0ZSI6ICJVcGRhdGUiLAogICAgImNyYWV0ZUFjY291bnQiOiAiQ3JlYXRlIEFjY291bnQiLAogICAgInJlc2V0TG9ncyI6ICJSZXNldCBMb2dzIiwKICAgICJ1cGxvYWRMb2dvIjogIlVwbG9hZCBMb2dvIgogIH0sCiAgImZpbHRlciI6IHsKICAgICJ0YWJsZSI6IHsKICAgICAgInN0YXJ0aW5nQ2hhbm5lbCI6ICJTdGFydGluZyBDaC4gTm8uIiwKICAgICAgIm5hbWUiOiAiRmlsdGVyIE5hbWUiLAogICAgICAidHlwZSI6ICJGaWx0ZXIgVHlwZSIsCiAgICAgICJmaWx0ZXIiOiAiRmlsdGVyIgogICAgfSwKICAgICJjdXN0b20iOiAiQ3VzdG9tIiwKICAgICJncm91cCI6ICJNM1UgR3JvdXAiLAogICAgIm5hbWUiOiB7CiAgICAgICJ0aXRsZSI6ICJGaWx0ZXIgTmFtZSIsCiAgICAgICJwbGFjZWhvbGRlciI6ICJGaWx0ZXIgbmFtZSIsCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiCiAgICB9LAogICAgImRlc2NyaXB0aW9uIjogewogICAgICAidGl0bGUiOiAiRGVzY3JpcHRpb24iLAogICAgICAicGxhY2Vob2xkZXIiOiAiRGVzY3JpcHRpb24iLAogICAgICAiZGVzY3JpcHRpb24iOiAiIgogICAgfSwKICAgICJ0eXBlIjogewogICAgICAidGl0bGUiOiAiVHlwZSIsCiAgICAgICJncm91cFRpdGxlIjogIkdyb3VwIFRpdGxlIiwKICAgICAgImN1c3RvbUZpbHRlciI6ICJDdXN0b20gRmlsdGVyIgogICAgfSwKICAgICJjYXNlU2Vuc2l0aXZlIjogewogICAgICAidGl0bGUiOiAiQ2FzZSBTZW5zaXRpdmUiLAogICAgICAicGxhY2Vob2xkZXIiOiAiIiwKICAgICAgImRlc2NyaXB0aW9uIjogIiIKICAgIH0sCiAgICAiZmlsdGVyUnVsZSI6IHsKICAgICAgInRpdGxlIjogIkZpbHRlciBSdWxlIiwKICAgICAgInBsYWNlaG9sZGVyIjogIlNwb3J0IHtIRH0gIXtFUyxJVH0iLAogICAgICAiZGVzY3JpcHRpb24iOiAiIgogICAgfSwKICAgICJmaWx0ZXJHcm91cCI6IHsKICAgICAgInRpdGxlIjogIkdyb3VwIFRpdGxlIiwKICAgICAgInBsYWNlaG9sZGVyIjogIiIsCiAgICAgICJkZXNjcmlwdGlvbiI6ICJTZWxlY3QgYSBNM1UgZ3JvdXAuIChDb3VudGVyKTxicj5DaGFuZ2luZyB0aGUgZ3JvdXAgdGl0bGUgaW4gdGhlIE0zVSBpbnZhbGlkYXRlcyB0aGUgZmlsdGVyLiIKICAgIH0sCiAgICAiaW5jbHVkZSI6IHsKICAgICAgInRpdGxlIjogIkluY2x1ZGUiLAogICAgICAicGxhY2Vob2xkZXIiOiAiRkhELFVIRCIsCiAgICAgICJkZXNjcmlwdGlvbiI6ICJDaGFubmVsIG5hbWUgbXVzdCBpbmNsdWRlLjxicj4oQ29tbWEgc2VwYXJhdGVkKSBDb21tYSBtZWFucyBvciIKICAgIH0sCiAgICAiZXhjbHVkZSI6IHsKICAgICAgInRpdGxlIjogIkV4Y2x1ZGUiLAogICAgICAicGxhY2Vob2xkZXIiOiAiRVMsSVQiLAogICAgICAiZGVzY3JpcHRpb24iOiAiQ2hhbm5lbCBuYW1lIG11c3Qgbm90IGNvbnRhaW4uPGJyPihDb21tYSBzZXBhcmF0ZWQpIENvbW1hIG1lYW5zIG9yIgogICAgfSwKICAgICJwcmVzZXJ2ZU1hcHBpbmciOiB7CiAgICAgICJ0aXRsZSI6ICJQcmVzZXJ2ZSBFeGlzdGluZyBNM1U8YnI+Q2hhbm5lbCBOdW1iZXJzIiwKICAgICAgInBhbGNlaG9sZGVyIjogIiIsCiAgICAgICJkZXNjcmlwdGlvbiI6ICJQcmVzZXJ2ZSBleGlzdGluZyBNM1UgcGxheWxpc3QgY2hhbm5lbCBudW1iZXJzPyIKICAgIH0sCiAgICAic3RhcnRpbmdDaGFubmVsIjogewogICAgICAidGl0bGUiOiAiU3RhcnRpbmcgQ2hhbm5lbCBOdW1iZXIiLAogICAgICAicGxhY2Vob2xkZXIiOiAiIiwKICAgICAgImRlc2NyaXB0aW9uIjogIiIKICAgIH0KICB9LAogICJwbGF5bGlzdCI6IHsKICAgICJ0YWJsZSI6IHsKICAgICAgInBsYXlsaXN0IjogIlBsYXlsaXN0IiwKICAgICAgInR1bmVyIjogIlR1bmVyIiwKICAgICAgImxhc3RVcGRhdGUiOiAiTGFzdCBVcGRhdGUiLAogICAgICAiYXZhaWxhYmlsaXR5IjogIkF2YWlsYWJpbGl0eSIsCiAgICAgICJ0eXBlIjogIlR5cGUiLAogICAgICAic3RyZWFtcyI6ICJTdHJlYW1zIiwKICAgICAgImdyb3VwVGl0bGUiOiAiZ3JvdXAtdGl0bGUiLAogICAgICAidHZnSUQiOiAidHZnLWlkIiwKICAgICAgInVuaXF1ZUlEIjogIlVuaXF1ZSBJRCIKICAgIH0sCiAgICAicGxheWxpc3RUeXBlIjogewogICAgICAidGl0bGUiOiAiUGxheWxpc3QgdHlwZSIsCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLAogICAgICAiZGVzY3JpcHRpb24iOiAiIgogICAgfSwKICAgICJ0eXBlIjogewogICAgICAidGl0bGUiOiAiVHlwZSIsCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLAogICAgICAiZGVzY3JpcHRpb24iOiAiIgogICAgfSwKICAgICJuYW1lIjogewogICAgICAidGl0bGUiOiAiTmFtZSIsCiAgICAgICJwbGFjZWhvbGRlciI6ICJQbGF5bGlzdCBuYW1lIiwKICAgICAgImRlc2NyaXB0aW9uIjogIiIKICAgIH0sCiAgICAiZGVzY3JpcHRpb24iOiB7CiAgICAgICJ0aXRsZSI6ICJEZXNjcmlwdGlvbiIsCiAgICAgICJwbGFjZWhvbGRlciI6ICJEZXNjcmlwdGlvbiIsCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiCiAgICB9LAogICAgImZpbGVNM1UiOiB7CiAgICAgICJ0aXRsZSI6ICJNM1UgRmlsZSIsCiAgICAgICJwbGFjZWhvbGRlciI6ICJGaWxlIHBhdGggb3IgVVJMIG9mIHRoZSBNM1UiLAogICAgICAiZGVzY3JpcHRpb24iOiAiIgogICAgfSwKICAgICJmaWxlSERIUiI6IHsKICAgICAgInRpdGxlIjogIkhESG9tZVJ1biBJUCIsCiAgICAgICJwbGFjZWhvbGRlciI6ICJJUCBhZGRyZXNzIGFuZCBwb3J0ICgxOTIuMTY4LjEuMTA6NTAwNCkiLAogICAgICAiZGVzY3JpcHRpb24iOiAiIgogICAgfSwKICAgICJ0dW5lciI6IHsKICAgICAgInRpdGxlIjogIlR1bmVyIC8gU3RyZWFtcyIsCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLAogICAgICAiZGVzY3JpcHRpb24iOiAiTnVtYmVyIG9mIHBhcmFsbGVsIGNvbm5lY3Rpb25zIHRoYXQgY2FuIGJlIGVzdGFibGlzaGVkIHRvIHRoZSBwcm92aWRlci4gPGJyPk9ubHkgYXZhaWxhYmxlIHdpdGggYWN0aXZhdGVkIGJ1ZmZlci48YnI+TmV3IHNldHRpbmdzIHdpbGwgb25seSBiZSBhcHBsaWVkIGFmdGVyIHF1aXR0aW5nIGFsbCBzdHJlYW1zLiIKICAgIH0KICB9LAogICJ4bWx0diI6IHsKICAgICJ0YWJsZSI6IHsKICAgICAgImd1aWRlIjogIkd1aWRlIiwKICAgICAgImxhc3RVcGRhdGUiOiAiTGFzdCBVcGRhdGUiLAogICAgICAiYXZhaWxhYmlsaXR5IjogIkF2YWlsYWJpbGl0eSIsCiAgICAgICJjaGFubmVscyI6ICJDaGFubmVscyIsCiAgICAgICJwcm9ncmFtcyI6ICJQcm9ncmFtcyIKICAgIH0sCiAgICAibmFtZSI6IHsKICAgICAgInRpdGxlIjogIk5hbWUiLAogICAgICAicGxhY2Vob2xkZXIiOiAiR3VpZGUgbmFtZSIsCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiCiAgICB9LAogICAgImRlc2NyaXB0aW9uIjogewogICAgICAidGl0bGUiOiAiRGVzY3JpcHRpb24iLAogICAgICAicGxhY2Vob2xkZXIiOiAiRGVzY3JpcHRpb24iLAogICAgICAiZGVzY3JpcHRpb24iOiAiIgogICAgfSwKICAgICJmaWxlWE1MVFYiOiB7CiAgICAgICJ0aXRsZSI6ICJYTUxUViBGaWxlIiwKICAgICAgInBsYWNlaG9sZGVyIjogIkZpbGUgcGF0aCBvciBVUkwgb2YgdGhlIFhNTFRWIiwKICAgICAgImRlc2NyaXB0aW9uIjogIiIKICAgIH0KICB9LAogICJtYXBwaW5nIjogewogICAgInRhYmxlIjogewogICAgICAiY2hObyI6ICJDaC4gTm8uIiwKICAgICAgImxvZ28iOiAiTG9nbyIsCiAgICAgICJjaGFubmVsTmFtZSI6ICJDaGFubmVsIE5hbWUiLAogICAgICAidXBkYXRlQ2hhbm5lbE5hbWVSZWdleCI6ICJVcGQuIFJ4LiIsCiAgICAgICJwbGF5bGlzdCI6ICJQbGF5bGlzdCIsCiAgICAgICJncm91cFRpdGxlIjogIkdyb3VwIFRpdGxlIiwKICAgICAgInhtbHR2RmlsZSI6ICJYTUxUViBGaWxlIiwKICAgICAgInhtbHR2SUQiOiAiWE1MVFYgSUQiLAogICAgICAidGltZXNoaWZ0IjogIlRpbWVzaGlmdCIKICAgIH0sCiAgICAiYWN0aXZlIjogewogICAgICAidGl0bGUiOiAiQWN0aXZlIiwKICAgICAgInBsYWNlaG9sZGVyIjogIiIsCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiCiAgICB9LAogICAgImNoYW5uZWxOYW1lIjogewogICAgICAidGl0bGUiOiAiQ2hhbm5lbCBOYW1lIiwKICAgICAgInBsYWNlaG9sZGVyIjogIiIsCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiCiAgICB9LAogICAgImRlc2NyaXB0aW9uIjogewogICAgICAidGl0bGUiOiAiQ2hhbm5lbCBEZXNjcmlwdGlvbiIsCiAgICAgICJwbGFjZWhvbGRlciI6ICJVc2VkIGJ5IHRoZSBEdW1teSBhcyBhbiBYTUwgZGVzY3JpcHRpb24iLAogICAgICAiZGVzY3JpcHRpb24iOiAiIgogICAgfSwKICAgICJ1cGRhdGVDaGFubmVsTmFtZSI6IHsKICAgICAgInRpdGxlIjogIlVwZGF0ZSBDaGFubmVsIE5hbWUiLAogICAgICAicGxhY2Vob2xkZXIiOiAiIiwKICAgICAgImRlc2NyaXB0aW9uIjogIiIKICAgIH0sCiAgICAidXBkYXRlQ2hhbm5lbE5hbWVSZWdleCI6IHsKICAgICAgInRpdGxlIjogIkNoYW5uZWwgbmFtZSB1cGRhdGUgcmVnZXgiLAogICAgICAicGxhY2Vob2xkZXIiOiAiRm9yIGV4YW1wbGUgXlBQVlsgXFxcXC1fXT8xLioiLAogICAgICAiZGVzY3JpcHRpb24iOiAiT24gdXBkYXRlLCBpZiBhbnkgbmV3IGNoYW5uZWwgbmFtZSBtYXRjaGVzIHRoaXMgcmVnZXgsIHJlbmFtZSBjdXJyZW50IGNoYW5uZWwgdG8gdGhlIGZpcnN0IG1hdGNoaW5nIG5hbWUiCiAgICB9LAogICAgInVwZGF0ZUNoYW5uZWxOYW1lQnlHcm91cFJlZ2V4IjogewogICAgICAidGl0bGUiOiAiT25seSBieSBncm91cCByZWdleCIsCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLAogICAgICAiZGVzY3JpcHRpb24iOiAiUmVuYW1lIHRoaXMgY2hhbm5lbCBvbmx5IGlmIGN1cnJlbnQgdXNlci1kZWZpbmVkIGdyb3VwIG1hdGNoZXMgdGhpcyByZWdleCIKICAgIH0sCiAgICAidXBkYXRlQ2hhbm5lbEdyb3VwIjogewogICAgICAidGl0bGUiOiAiVXBkYXRlIENoYW5uZWwgR3JvdXAiLAogICAgICAicGxhY2Vob2xkZXIiOiAiIiwKICAgICAgImRlc2NyaXB0aW9uIjogIklmIGNoZWNrZWQsIHVzZSBncm91cCBmcm9tIHRoZSBkYXRhYmFzZSIKICAgIH0sCiAgICAiY2hhbm5lbExvZ28iOiB7CiAgICAgICJ0aXRsZSI6ICJMb2dvIFVSTCIsCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLAogICAgICAiZGVzY3JpcHRpb24iOiAiIgogICAgfSwKICAgICJ1cGRhdGVDaGFubmVsTG9nbyI6IHsKICAgICAgInRpdGxlIjogIlVwZGF0ZSBDaGFubmVsIExvZ28iLAogICAgICAicGxhY2Vob2xkZXIiOiAiIiwKICAgICAgImRlc2NyaXB0aW9uIjogIiIKICAgIH0sCiAgICAiZXBnQ2F0ZWdvcnkiOiB7CiAgICAgICJ0aXRsZSI6ICJFUEcgQ2F0ZWdvcnkiLAogICAgICAicGxhY2Vob2xkZXIiOiAiIiwKICAgICAgImRlc2NyaXB0aW9uIjogIiIKICAgIH0sCiAgICAibTN1R3JvdXBUaXRsZSI6IHsKICAgICAgInRpdGxlIjogIkdyb3VwIFRpdGxlICh4dGV2ZS5tM3UpIiwKICAgICAgInBsYWNlaG9sZGVyIjogIiIsCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiCiAgICB9LAogICAgInhtbHR2RmlsZSI6IHsKICAgICAgInRpdGxlIjogIlhNTFRWIEZpbGUiLAogICAgICAicGxhY2Vob2xkZXIiOiAiIiwKICAgICAgImRlc2NyaXB0aW9uIjogIiIKICAgIH0sCiAgICAieG1sdHZDaGFubmVsIjogewogICAgICAidGl0bGUiOiAiWE1MVFYgQ2hhbm5lbCIsCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLAogICAgICAiZGVzY3JpcHRpb24iOiAiIgogICAgfSwKICAgICJ0aW1lc2hpZnQiOiB7CiAgICAgICJ0aXRsZSI6ICJUaW1lc2hpZnQiLAogICAgICAicGxhY2Vob2xkZXIiOiAiMCIsCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiCiAgICB9CiAgfSwKICAidXNlcnMiOiB7CiAgICAidGFibGUiOiB7CiAgICAgICJ1c2VybmFtZSI6ICJVc2VybmFtZSIsCiAgICAgICJwYXNzd29yZCI6ICJQYXNzd29yZCIsCiAgICAgICJ3ZWIiOiAiV0VCIiwKICAgICAgInBtcyI6ICJQTVMiLAogICAgICAibTN1IjogIk0zVSIsCiAgICAgICJ4bWwiOiAiWE1MIiwKICAgICAgImFwaSI6ICJBUEkiCiAgICB9LAogICAgInVzZXJuYW1lIjogewogICAgICAidGl0bGUiOiAiVXNlcm5hbWUiLAogICAgICAicGxhY2Vob2xkZXIiOiAiVXNlcm5hbWUiLAogICAgICAiZGVzY3JpcHRpb24iOiAiIgogICAgfSwKICAgICJwYXNzd29yZCI6IHsKICAgICAgInRpdGxlIjogIlBhc3N3b3JkIiwKICAgICAgInBsYWNlaG9sZGVyIjogIlBhc3N3b3JkIiwKICAgICAgImRlc2NyaXB0aW9uIjogIiIKICAgIH0sCiAgICAiY29uZmlybSI6IHsKICAgICAgInRpdGxlIjogIkNvbmZpcm0iLAogICAgICAicGxhY2Vob2xkZXIiOiAiUGFzc3dvcmQgY29uZmlybSIsCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiCiAgICB9LAogICAgIndlYiI6IHsKICAgICAgInRpdGxlIjogIldlYiBBY2Nlc3MiLAogICAgICAicGxhY2Vob2xkZXIiOiAiIiwKICAgICAgImRlc2NyaXB0aW9uIjogIiIKICAgIH0sCiAgICAicG1zIjogewogICAgICAidGl0bGUiOiAiUE1TIEFjY2VzcyIsCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLAogICAgICAiZGVzY3JpcHRpb24iOiAiIgogICAgfSwKICAgICJtM3UiOiB7CiAgICAgICJ0aXRsZSI6ICJNM1UgQWNjZXNzIiwKICAgICAgInBsYWNlaG9sZGVyIjogIiIsCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiCiAgICB9LAogICAgInhtbCI6IHsKICAgICAgInRpdGxlIjogIlhNTCBBY2Nlc3MiLAogICAgICAicGxhY2Vob2xkZXIiOiAiIiwKICAgICAgImRlc2NyaXB0aW9uIjogIiIKICAgIH0sCiAgICAiYXBpIjogewogICAgICAidGl0bGUiOiAiQVBJIEFjY2VzcyIsCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLAogICAgICAiZGVzY3JpcHRpb24iOiAiIgogICAgfQogIH0sCiAgInNldHRpbmdzIjogewogICAgImNhdGVnb3J5IjogewogICAgICAiZ2VuZXJhbCI6ICJHZW5lcmFsIiwKICAgICAgIm1hcHBpbmciOiAiTWFwcGluZyIsCiAgICAgICJmaWxlcyI6ICJGaWxlcyIsCiAgICAgICJzdHJlYW1pbmciOiAiU3RyZWFtaW5nIiwKICAgICAgImJhY2t1cCI6ICJCYWNrdXAiLAogICAgICAiYXV0aGVudGljYXRpb24iOiAiQXV0aGVudGljYXRpb24iCiAgICB9LAogICAgInVwZGF0ZSI6IHsKICAgICAgInRpdGxlIjogIlNjaGVkdWxlIGZvciB1cGRhdGluZyAoUGxheWxpc3QsIFhNTFRWLCBCYWNrdXApIiwKICAgICAgInBsYWNlaG9sZGVyIjogIjAwMDAsMTAwMCwyMDAwIiwKICAgICAgImRlc2NyaXB0aW9uIjogIlRpbWUgaW4gMjQgaG91ciBmb3JtYXQgKDA4MDAgPSA4OjAwIGFtKS4gTW9yZSB0aW1lcyBjYW4gYmUgZW50ZXJlZCBjb21tYSBzZXBhcmF0ZWQuIExlYXZlIHRoaXMgZmllbGQgZW1wdHkgaWYgbm8gdXBkYXRlcyBhcmUgdG8gYmUgY2FycmllZCBvdXQuIgogICAgfSwKICAgICJhcGkiOiB7CiAgICAgICJ0aXRsZSI6ICJBUEkgSW50ZXJmYWNlIiwKICAgICAgImRlc2NyaXB0aW9uIjogIlZpYSBBUEkgaW50ZXJmYWNlIGl0IGlzIHBvc3NpYmxlIHRvIHNlbmQgY29tbWFuZHMgdG8geFRlVmUuIEFQSSBkb2N1bWVudGF0aW9uIGlzIDxhIGhyZWY9J2h0dHBzOi8vZ2l0aHViLmNvbS94dGV2ZS1wcm9qZWN0L3hUZVZlLURvY3VtZW50YXRpb24vYmxvYi9tYXN0ZXIvZW4vY29uZmlndXJhdGlvbi5tZCNhcGknPmhlcmU8L2E+IgogICAgfSwKICAgICJjbGVhclhNTFRWQ2FjaGUiOiB7CiAgICAgICJ0aXRsZSI6ICJDbGVhciBYTUxUViBjYWNoZSIsCiAgICAgICJkZXNjcmlwdGlvbiI6ICJJZiBjaGVja2VkLCBkbyBub3Qga2VlcCBYTUxUViBjYWNoZSBpbiBtZW1vcnkuPGJyPlNpZ25pZmljYWxseSByZWR1Y2VzIFJBTSB1c2FnZSBpbiBpZGxlIG1vZGUsPGJyPmJ1dCBzaWduaWZpY2FsbHkgc2xvd2luZyBkb3duIGV2ZXJ5IHN1YnNlcXVlbnQgdXBkYXRlIGluIFhFUEcgZGF0YWJhc2UuIgogICAgfSwKICAgICJkZWZhdWx0TWlzc2luZ0VQRyI6IHsKICAgICAgInRpdGxlIjogIkZpbGwgTWlzc2luZyBFUEcgRGF0YSIsCiAgICAgICJkZXNjcmlwdGlvbiI6ICJXaGVuIHRoZXJlIGlzIG5vIG1hdGNoaW5nIEVQRyBkYXRhIGZvciBjaGFubmVsLCA8YnI+YXV0b2ZpbGwgd2l0aCB4VGVWZSBkdW1teSBFUEcgZGF0YT8iCiAgICB9LAogICAgImVuYWJsZU1hcHBlZENoYW5uZWxzIjogewogICAgICAidGl0bGUiOiAiRW5hYmxlIG1hcHBlZCBjaGFubmVscyIsCiAgICAgICJkZXNjcmlwdGlvbiI6ICJBdXRvbWF0aWNhbGx5IGVuYWJsZSBjaGFubmVscyB3aXRoIGFzc2lnbmVkIEVQRyBkYXRhIgogICAgfSwKICAgICJkaXNhbGxvd1VSTER1cGxpY2F0ZXMiOiB7CiAgICAgICJ0aXRsZSI6ICJEaXNhbGxvdyBVUkwgZHVwbGljYXRlcyIsCiAgICAgICJkZXNjcmlwdGlvbiI6ICJJZiBjaGVja2VkLCBkbyBub3QgYWRkIGEgbmV3IGNoYW5uZWwgZnJvbSBwbGF5bGlzdCBpZiBjaGFubmVsIHdpdGggc3VjaCBVUkwgYWxyZWFkeSBleGlzdHMiCiAgICB9LAogICAgImVwZ1NvdXJjZSI6IHsKICAgICAgInRpdGxlIjogIkVQRyBTb3VyY2UiLAogICAgICAiZGVzY3JpcHRpb24iOiAiUE1TOjxicj4tIFVzZSBFUEcgZGF0YSBmcm9tIFBsZXggb3IgRW1ieSA8YnI+PGJyPlhFUEc6PGJyPi0gVXNlIG9mIG9uZSBvciBtb3JlIFhNTFRWIGZpbGVzPGJyPi0gQ2hhbm5lbCBtYW5hZ2VtZW50PGJyPi0gTTNVIC8gWE1MVFYgZXhwb3J0IChIVFRQIGxpbmsgZm9yIElQVFYgYXBwcykiCiAgICB9LAogICAgInR1bmVyIjogewogICAgICAidGl0bGUiOiAiTnVtYmVyIG9mIFR1bmVycyIsCiAgICAgICJkZXNjcmlwdGlvbiI6ICJOdW1iZXIgb2YgcGFyYWxsZWwgY29ubmVjdGlvbnMgdGhhdCBjYW4gYmUgZXN0YWJsaXNoZWQgdG8gdGhlIHByb3ZpZGVyLjxicj5BdmFpbGFibGUgZm9yOiBQbGV4LCBFbWJ5IChIREhSKSwgTTNVICh3aXRoIGFjdGl2ZSBidWZmZXIpLjxicj5BZnRlciBhIGNoYW5nZSwgeFRlVmUgbXVzdCBiZSBkZWxldGUgaW4gdGhlIFBsZXggLyBFbWJ5IERWUiBzZXR0aW5ncyBhbmQgc2V0IHVwIGFnYWluLiIKICAgIH0sCiAgICAiaG9zdElQIjogewogICAgICAidGl0bGUiOiAiSG9zdCBJUCIsCiAgICAgICJkZXNjcmlwdGlvbiI6ICJJUCBhZGRyZXNzIHhUZVZlIHdpbGwgdXNlIHRvIGZvcm0gTTNVIGFuZCBYTUxUViBmaWxlcyIKICAgIH0sCiAgICAiaG9zdE5hbWUiOiB7CiAgICAgICJ0aXRsZSI6ICJIb3N0IE5hbWUgT3ZlcnJpZGUiLAogICAgICAiZGVzY3JpcHRpb24iOiAiSG9zdG5hbWUgeFRlVmUgd2lsbCB1c2UgdG8gZm9ybSBNM1UgYW5kIFhNTFRWIGZpbGVzIgogICAgfSwKICAgICJ0bHNNb2RlIjogewogICAgICAidGl0bGUiOiAiVExTIChIVFRQUykgbW9kZSIsCiAgICAgICJkZXNjcmlwdGlvbiI6ICJDaGFuZ2VzIHdlYiBzZXJ2ZXIgcHJvdG9jb2wgdG8gSFRUUFMuPGJyPkZvciBkZXRhaWxzLCBzZWUgPGE+aHR0cHM6Ly9naXRodWIuY29tL1NDUDAwMi94VGVWZSN0bHMtbW9kZTwvYT4iCiAgICB9LAogICAgImZpbGVzVXBkYXRlIjogewogICAgICAidGl0bGUiOiAiVXBkYXRlcyBhbGwgZmlsZXMgYXQgc3RhcnR1cCIsCiAgICAgICJkZXNjcmlwdGlvbiI6ICJVcGRhdGVzIGFsbCBwbGF5bGlzdHMsIHR1bmVyIGFuZCBYTUxUViBmaWxlcyBhdCBzdGFydHVwLiIKICAgIH0sCiAgICAiY2FjaGVJbWFnZXMiOiB7CiAgICAgICJ0aXRsZSI6ICJJbWFnZSBDYWNoaW5nIiwKICAgICAgImRlc2NyaXB0aW9uIjogIkFsbCBpbWFnZXMgZnJvbSB0aGUgWE1MVFYgZmlsZSBhcmUgY2FjaGVkLCBhbGxvd2luZyBmYXN0ZXIgcmVuZGVyaW5nIG9mIHRoZSBncmlkIGluIHRoZSBjbGllbnQuPGJyPkRvd25sb2FkaW5nIHRoZSBpbWFnZXMgbWF5IHRha2UgYSB3aGlsZSBhbmQgd2lsbCBiZSBkb25lIGluIHRoZSBiYWNrZ3JvdW5kLiIKICAgIH0sCiAgICAicmVwbGFjZUVtcHR5SW1hZ2VzIjogewogICAgICAidGl0bGUiOiAiUmVwbGFjZSBtaXNzaW5nIHByb2dyYW0gaW1hZ2VzIiwKICAgICAgImRlc2NyaXB0aW9uIjogIklmIHRoZSBwb3N0ZXIgaW4gdGhlIFhNTFRWIHByb2dyYW0gaXMgbWlzc2luZywgdGhlIGNoYW5uZWwgbG9nbyB3aWxsIGJlIHVzZWQuIgogICAgfSwKICAgICJ4dGV2ZUF1dG9VcGRhdGUiOiB7CiAgICAgICJ0aXRsZSI6ICJBdXRvbWF0aWMgdXBkYXRlIG9mIHhUZVZlIiwKICAgICAgImRlc2NyaXB0aW9uIjogIklmIGEgbmV3IHZlcnNpb24gb2YgeFRlVmUgaXMgYXZhaWxhYmxlLCBpdCB3aWxsIGJlIGF1dG9tYXRpY2FsbHkgaW5zdGFsbGVkLiBUaGUgdXBkYXRlcyBhcmUgZG93bmxvYWRlZCBmcm9tIEdpdEh1Yi4iCiAgICB9LAogICAgInN0cmVhbUJ1ZmZlcmluZyI6IHsKICAgICAgInRpdGxlIjogIlN0cmVhbSBCdWZmZXIiLAogICAgICAiZGVzY3JpcHRpb24iOiAiRnVuY3Rpb25zIG9mIHRoZSBidWZmZXI6PGJyPi0gVGhlIHN0cmVhbSBpcyBwYXNzZWQgZnJvbSB4VGVWZSwgRkZtcGVnIG9yIFZMQyB0byBQbGV4LCBFbWJ5IG9yIE0zVSBQbGF5ZXI8YnI+LSBTbWFsbCBqZXJraW5nIG9mIHRoZSBzdHJlYW1zIGNhbiBiZSBjb21wZW5zYXRlZDxicj4tIEhMUyAvIE0zVTggc3VwcG9ydDxicj4tIFJUUCAvIFJUUFMgc3VwcG9ydCAob25seSBGRm1wZWcgb3IgVkxDKTxicj4tIFJlLXN0cmVhbWluZzxicj4tIFNlcGFyYXRlIHR1bmVyIGxpbWl0IGZvciBlYWNoIHBsYXlsaXN0IiwKICAgICAgImluZm9fZmFsc2UiOiAiTm8gQnVmZmVyIChDbGllbnQgY29ubmVjdHMgdG8gdGhlIHN0cmVhbWluZyBzZXJ2ZXIpIiwKICAgICAgImluZm9feHRldmUiOiAieFRlVmUgY29ubmVjdHMgdG8gdGhlIHN0cmVhbWluZyBzZXJ2ZXIiLAogICAgICAiaW5mb19mZm1wZWciOiAiRkZtcGVnIGNvbm5lY3RzIHRvIHRoZSBzdHJlYW1pbmcgc2VydmVyIiwKICAgICAgImluZm9fdmxjIjogIlZMQyBjb25uZWN0cyB0byB0aGUgc3RyZWFtaW5nIHNlcnZlciIKICAgIH0sCiAgICAidWRweHkiOiB7CiAgICAgICJ0aXRsZSI6ICJVRFB4eSBhZGRyZXNzIiwKICAgICAgImRlc2NyaXB0aW9uIjogIlRoZSBhZGRyZXNzIG9mIHlvdXIgVURQeHkgc2VydmVyLiBJZiBzZXQsIGFuZCB0aGUgY2hhbm5lbCBVUkxzIGluIHRoZSBtM3UgaXMgbXVsdGljYXN0LCB4VGVWZSB3aWxsIHJld3JpdGUgaXQgc28gdGhhdCBpdCBpcyBhY2Nlc3NlZCB2aWEgdGhlIFVEUHh5IHNlcnZpY2UuIiwKICAgICAgInBsYWNlaG9sZGVyIjogImhvc3Q6cG9ydCIKICAgIH0sCiAgICAiZmZtcGVnUGF0aCI6IHsKICAgICAgInRpdGxlIjogIkZGbXBlZyBCaW5hcnkgUGF0aCIsCiAgICAgICJkZXNjcmlwdGlvbiI6ICJQYXRoIHRvIEZGbXBlZyBiaW5hcnkuIiwKICAgICAgInBsYWNlaG9sZGVyIjogIi9wYXRoL3RvL2ZmbXBlZyIKICAgIH0sCiAgICAiZmZtcGVnT3B0aW9ucyI6IHsKICAgICAgInRpdGxlIjogIkZGbXBlZyBPcHRpb25zIiwKICAgICAgImRlc2NyaXB0aW9uIjogIkZGbXBlZyBvcHRpb25zLjxicj5Pbmx5IGNoYW5nZSBpZiB5b3Uga25vdyB3aGF0IHlvdSBhcmUgZG9pbmcuPGJyPkxlYXZlIGJsYW5rIHRvIHNldCBkZWZhdWx0IHNldHRpbmdzLiIsCiAgICAgICJwbGFjZWhvbGRlciI6ICJMZWF2ZSBibGFuayB0byBzZXQgZGVmYXVsdCBzZXR0aW5ncyIKICAgIH0sCiAgICAidmxjUGF0aCI6IHsKICAgICAgInRpdGxlIjogIlZMQyAvIENWTEMgQmluYXJ5IFBhdGgiLAogICAgICAiZGVzY3JpcHRpb24iOiAiUGF0aCB0byBWTEMgLyBDVkxDIGJpbmFyeS4iLAogICAgICAicGxhY2Vob2xkZXIiOiAiL3BhdGgvdG8vY3ZsYyIKICAgIH0sCiAgICAidmxjT3B0aW9ucyI6IHsKICAgICAgInRpdGxlIjogIlZMQyAvIENWTEMgT3B0aW9ucyIsCiAgICAgICJkZXNjcmlwdGlvbiI6ICJWTEMgLyBDVkxDIG9wdGlvbnMuPGJyPk9ubHkgY2hhbmdlIGlmIHlvdSBrbm93IHdoYXQgeW91IGFyZSBkb2luZy48YnI+TGVhdmUgYmxhbmsgdG8gc2V0IGRlZmF1bHQgc2V0dGluZ3MuIiwKICAgICAgInBsYWNlaG9sZGVyIjogIkxlYXZlIGJsYW5rIHRvIHNldCBkZWZhdWx0IHNldHRpbmdzIgogICAgfSwKICAgICJidWZmZXJTaXplIjogewogICAgICAidGl0bGUiOiAiQnVmZmVyIFNpemUiLAogICAgICAiZGVzY3JpcHRpb24iOiAiQnVmZmVyIHNpemUgaW4gTUIuPGJyPk0zVTg6IElmIHRoZSBUUyBzZWdtZW50IHNtYWxsZXIgdGhlbiB0aGUgYnVmZmVyIHNpemUsIHRoZSBmaWxlIHNpemUgb2YgdGhlIHNlZ21lbnQgaXMgdXNlZC4iCiAgICB9LAogICAgInN0b3JlQnVmZmVySW5SQU0iOiB7CiAgICAgICJ0aXRsZSI6ICJTdG9yZSBidWZmZXIgaW4gUkFNIiwKICAgICAgImRlc2NyaXB0aW9uIjogIklmIGNoZWNrZWQsIHdyaXRlIGJ1ZmZlciB0byBSQU0gaW5zdGVhZCBvZiB3cml0aW5nIHRvIGRpc2siCiAgICB9LAogICAgImJ1ZmZlclRpbWVvdXQiOiB7CiAgICAgICJ0aXRsZSI6ICJUaW1lb3V0IGZvciBuZXcgY2xpZW50IGNvbm5lY3Rpb25zIiwKICAgICAgImRlc2NyaXB0aW9uIjogIlRoZSB4VGVWZSBidWZmZXIgd2FpdHMgdW50aWwgbmV3IGNsaWVudCBjb25uZWN0aW9ucyBhcmUgZXN0YWJsaXNoZWQuIEhlbHBmdWwgZm9yIGZhc3QgY2hhbm5lbCBzd2l0Y2hpbmcuIFZhbHVlIGluIG1pbGxpc2Vjb25kcy4iLAogICAgICAicGxhY2Vob2xkZXIiOiAiMTAwIgogICAgfSwKICAgICJ1c2VyQWdlbnQiOiB7CiAgICAgICJ0aXRsZSI6ICJVc2VyIEFnZW50IiwKICAgICAgImRlc2NyaXB0aW9uIjogIlVzZXIgQWdlbnQgZm9yIEhUVFAgcmVxdWVzdHMuIEZvciBldmVyeSBIVFRQIGNvbm5lY3Rpb24sIHRoaXMgdmFsdWUgaXMgdXNlZCBmb3IgdGhlIHVzZXIgYWdlbnQuIFNob3VsZCBvbmx5IGJlIGNoYW5nZWQgaWYgeFRlVmUgaXMgYmxvY2tlZC4iLAogICAgICAicGxhY2Vob2xkZXIiOiAieFRlVmUiCiAgICB9LAogICAgImJhY2t1cFBhdGgiOiB7CiAgICAgICJ0aXRsZSI6ICJMb2NhdGlvbiBmb3IgYXV0b21hdGljIGJhY2t1cHMiLAogICAgICAicGxhY2Vob2xkZXIiOiAiL21udC9kYXRhL2JhY2t1cC94dGV2ZS8iLAogICAgICAiZGVzY3JpcHRpb24iOiAiQmVmb3JlIGFueSB1cGRhdGUgb2YgdGhlIHByb3ZpZGVyIGRhdGEgYnkgdGhlIHNjaGVkdWxlLCB4VGVWZSBjcmVhdGVzIGEgYmFja3VwLiBUaGUgcGF0aCBmb3IgdGhlIGF1dG9tYXRpYyBiYWNrdXBzIGNhbiBiZSBjaGFuZ2VkLiB4VGVWZSByZXF1aXJlcyB3cml0ZSBwZXJtaXNzaW9uIGZvciB0aGlzIGZvbGRlci4iCiAgICB9LAogICAgInRlbXBQYXRoIjogewogICAgICAidGl0bGUiOiAiTG9jYXRpb24gZm9yIHRoZSB0ZW1wb3JhcnkgZmlsZXMiLAogICAgICAicGxhY2Vob2xkZXIiOiAiL3RtcC94dGV2ZS8iLAogICAgICAiZGVzY3JpcHRpb24iOiAiTG9jYXRpb24gZm9yIHRoZSBidWZmZXIgZmlsZXMuIgogICAgfSwKICAgICJiYWNrdXBLZWVwIjogewogICAgICAidGl0bGUiOiAiTnVtYmVyIG9mIGJhY2t1cHMgdG8ga2VlcCIsCiAgICAgICJkZXNjcmlwdGlvbiI6ICJOdW1iZXIgb2YgYmFja3VwcyB0byBrZWVwLiBPbGRlciBiYWNrdXBzIGFyZSBhdXRvbWF0aWNhbGx5IGRlbGV0ZWQuIgogICAgfSwKICAgICJhdXRoZW50aWNhdGlvbldFQiI6IHsKICAgICAgInRpdGxlIjogIldFQiBBdXRoZW50aWNhdGlvbiIsCiAgICAgICJkZXNjcmlwdGlvbiI6ICJBY2Nlc3MgdG8gdGhlIHdlYiBpbnRlcmZhY2Ugb25seSBwb3NzaWJsZSB3aXRoIGNyZWRlbnRpYWxzLiIKICAgIH0sCiAgICAiYXV0aGVudGljYXRpb25QTVMiOiB7CiAgICAgICJ0aXRsZSI6ICJQTVMgQXV0aGVudGljYXRpb24iLAogICAgICAiZGVzY3JpcHRpb24iOiAiUGxleCByZXF1ZXN0cyBhcmUgb25seSBwb3NzaWJsZSB3aXRoIGF1dGhlbnRpY2F0aW9uLiA8YnI+PGI+V2FybmluZyEhITwvYj4gQWZ0ZXIgYWN0aXZhdGluZyB0aGlzIGZ1bmN0aW9uIHhUZVZlIG11c3QgYmUgZGVsZXRlIGluIHRoZSBQTVMgRFZSIHNldHRpbmdzIGFuZCBzZXQgdXAgYWdhaW4uIgogICAgfSwKICAgICJhdXRoZW50aWNhdGlvbk0zVSI6IHsKICAgICAgInRpdGxlIjogIk0zVSBBdXRoZW50aWNhdGlvbiIsCiAgICAgICJkZXNjcmlwdGlvbiI6ICJEb3dubG9hZGluZyB0aGUgeHRldmUubTN1IGZpbGUgdmlhIGFuIEhUVFAgcmVxdWVzdCBpcyBvbmx5IHBvc3NpYmxlIHdpdGggYXV0aGVudGljYXRpb24uIgogICAgfSwKICAgICJhdXRoZW50aWNhdGlvblhNTCI6IHsKICAgICAgInRpdGxlIjogIlhNTCBBdXRoZW50aWNhdGlvbiIsCiAgICAgICJkZXNjcmlwdGlvbiI6ICJEb3dubG9hZGluZyB0aGUgeHRldmUueG1sIGZpbGUgdmlhIGFuIEhUVFAgcmVxdWVzdCBpcyBvbmx5IHBvc3NpYmxlIHdpdGggYXV0aGVudGljYXRpb24iCiAgICB9LAogICAgImF1dGhlbnRpY2F0aW9uQVBJIjogewogICAgICAidGl0bGUiOiAiQVBJIEF1dGhlbnRpY2F0aW9uIiwKICAgICAgImRlc2NyaXB0aW9uIjogIkFjY2VzcyB0byB0aGUgQVBJIGludGVyZmFjZSBpcyBvbmx5IHBvc3NpYmxlIHdpdGggYXV0aGVudGljYXRpb24uIgogICAgfQogIH0sCiAgIndpemFyZCI6IHsKICAgICJlcGdTb3VyY2UiOiB7CiAgICAgICJ0aXRsZSI6ICJFUEcgU291cmNlIiwKICAgICAgImRlc2NyaXB0aW9uIjogIlBNUzo8YnI+LSBVc2UgRVBHIGRhdGEgZnJvbSBQbGV4IG9yIEVtYnkgPGJyPjxicj5YRVBHOjxicj4tIFVzZSBvZiBvbmUgb3IgbW9yZSBYTUxUViBmaWxlczxicj4tIENoYW5uZWwgbWFuYWdlbWVudDxicj4tIE0zVSAvIFhNTFRWIGV4cG9ydCAoSFRUUCBsaW5rIGZvciBJUFRWIGFwcHMpIgogICAgfSwKICAgICJ0dW5lciI6IHsKICAgICAgInRpdGxlIjogIk51bWJlciBvZiB0dW5lcnMiLAogICAgICAiZGVzY3JpcHRpb24iOiAiTnVtYmVyIG9mIHBhcmFsbGVsIGNvbm5lY3Rpb25zIHRoYXQgY2FuIGJlIGVzdGFibGlzaGVkIHRvIHRoZSBwcm92aWRlci48YnI+QXZhaWxhYmxlIGZvcjogUGxleCwgRW1ieSAoSERIUiksIE0zVSAod2l0aCBhY3RpdmUgYnVmZmVyKS48YnI+QWZ0ZXIgYSBjaGFuZ2UsIHhUZVZlIG11c3QgYmUgZGVsZXRlIGluIHRoZSBQbGV4IC8gRW1ieSBEVlIgc2V0dGluZ3MgYW5kIHNldCB1cCBhZ2Fpbi4iCiAgICB9LAogICAgIm0zdSI6IHsKICAgICAgInRpdGxlIjogIk0zVSBQbGF5bGlzdCIsCiAgICAgICJwbGFjZWhvbGRlciI6ICJGaWxlIHBhdGggb3IgVVJMIG9mIHRoZSBNM1UiLAogICAgICAiZGVzY3JpcHRpb24iOiAiTG9jYWwgb3IgcmVtb3RlIHBsYXlsaXN0cyIKICAgIH0sCiAgICAieG1sdHYiOiB7CiAgICAgICJ0aXRsZSI6ICJYTUxUViBGaWxlIiwKICAgICAgInBsYWNlaG9sZGVyIjogIkZpbGUgcGF0aCBvciBVUkwgb2YgdGhlIFhNTFRWIiwKICAgICAgImRlc2NyaXB0aW9uIjogIkxvY2FsIG9yIHJlbW90ZSBYTUxUViBmaWxlIgogICAgfQogIH0sCiAgImxvZ2luIjogewogICAgImZhaWxlZCI6ICJVc2VyIGF1dGhlbnRpY2F0aW9uIGZhaWxlZCIsCiAgICAiaGVhZGxpbmUiOiAiTG9naW4iLAogICAgInVzZXJuYW1lIjogewogICAgICAidGl0bGUiOiAiVXNlcm5hbWUiLAogICAgICAicGxhY2Vob2xkZXIiOiAiVXNlcm5hbWUiCiAgICB9LAogICAgInBhc3N3b3JkIjogewogICAgICAidGl0bGUiOiAiUGFzc3dvcmQiLAogICAgICAicGxhY2Vob2xkZXIiOiAiUGFzc3dvcmQiCiAgICB9CiAgfSwKICAiYWNjb3VudCI6IHsKICAgICJmYWlsZWQiOiAiUGFzc3dvcmQgZG9lcyBub3QgbWF0Y2giLAogICAgImhlYWRsaW5lIjogIkNyZWF0ZSB1c2VyIGFjY291bnQiLAogICAgInVzZXJuYW1lIjogewogICAgICAidGl0bGUiOiAiVXNlcm5hbWUiLAogICAgICAicGxhY2Vob2xkZXIiOiAiVXNlcm5hbWUiCiAgICB9LAogICAgInBhc3N3b3JkIjogewogICAgICAidGl0bGUiOiAiUGFzc3dvcmQiLAogICAgICAicGxhY2Vob2xkZXIiOiAiUGFzc3dvcmQiCiAgICB9LAogICAgImNvbmZpcm0iOiB7CiAgICAgICJ0aXRsZSI6ICJDb25maXJtIiwKICAgICAgInBsYWNlaG9sZGVyIjogIkNvbmZpcm0iCiAgICB9CiAgfQp9" + webUI["html/lang/en.json"] = "ewogICJtYWluTWVudSI6IHsKICAgICJpdGVtIjogewogICAgICAicGxheWxpc3QiOiAiUGxheWxpc3QiLAogICAgICAicG1zSUQiOiAiUE1TIElEIiwKICAgICAgImZpbHRlciI6ICJGaWx0ZXIiLAogICAgICAieG1sdHYiOiAiWE1MVFYiLAogICAgICAibWFwcGluZyI6ICJNYXBwaW5nIiwKICAgICAgInVzZXJzIjogIlVzZXJzIiwKICAgICAgInNldHRpbmdzIjogIlNldHRpbmdzIiwKICAgICAgImxvZyI6ICJMb2ciLAogICAgICAibG9nb3V0IjogIkxvZ291dCIKICAgIH0sCiAgICAiaGVhZGxpbmUiOiB7CiAgICAgICJwbGF5bGlzdCI6ICJMb2NhbCBvciByZW1vdGUgcGxheWxpc3RzIiwKICAgICAgImZpbHRlciI6ICJGaWx0ZXIgcGxheWxpc3QiLAogICAgICAieG1sdHYiOiAiTG9jYWwgb3IgcmVtb3RlIFhNTFRWIGZpbGVzIiwKICAgICAgIm1hcHBpbmciOiAiTWFwIHBsYXlsaXN0IGNoYW5uZWxzIHRvIEVQRyBjaGFubmVscyIsCiAgICAgICJ1c2VycyI6ICJVc2VyIG1hbmFnZW1lbnQiLAogICAgICAic2V0dGluZ3MiOiAiU2V0dGluZ3MiLAogICAgICAibG9nIjogIkxvZyIsCiAgICAgICJsb2dvdXQiOiAiTG9nb3V0IgogICAgfQogIH0sCiAgImNvbmZpcm0iOiB7CiAgICAicmVzdG9yZSI6ICJBbGwgZGF0YSB3aWxsIGJlIHJlcGxhY2VkIHdpdGggdGhvc2UgZnJvbSB0aGUgYmFja3VwLiBTaG91bGQgdGhlIGZpbGVzIGJlIHJlc3RvcmVkPyIKICB9LAogICJhbGVydCI6IHsKICAgICJmaWxlTG9hZGluZ0Vycm9yIjogIkZpbGUgY291bGRuJ3QgYmUgbG9hZGVkIiwKICAgICJpbnZhbGlkQ2hhbm5lbE51bWJlciI6ICJJbnZhbGlkIGNoYW5uZWwgbnVtYmVyIiwKICAgICJtaXNzaW5nSW5wdXQiOiAiTWlzc2luZyBpbnB1dCIKICB9LAogICJidXR0b24iOiB7CiAgICAiYmFjayI6ICJCYWNrIiwKICAgICJiYWNrdXAiOiAiQmFja3VwIiwKICAgICJidWxrRWRpdCI6ICJCdWxrIEVkaXQiLAogICAgImNhbmNlbCI6ICJDYW5jZWwiLAogICAgImRlbGV0ZSI6ICJEZWxldGUiLAogICAgImRvbmUiOiAiRG9uZSIsCiAgICAibG9naW4iOiAiTG9naW4iLAogICAgIm5ldyI6ICJOZXciLAogICAgIm5leHQiOiAiTmV4dCIsCiAgICAicmVzdG9yZSI6ICJSZXN0b3JlIiwKICAgICJzYXZlIjogIlNhdmUiLAogICAgInNlYXJjaCI6ICJTZWFyY2giLAogICAgInVwZGF0ZSI6ICJVcGRhdGUiLAogICAgImNyYWV0ZUFjY291bnQiOiAiQ3JlYXRlIEFjY291bnQiLAogICAgInJlc2V0TG9ncyI6ICJSZXNldCBMb2dzIiwKICAgICJ1cGxvYWRMb2dvIjogIlVwbG9hZCBMb2dvIgogIH0sCiAgImZpbHRlciI6IHsKICAgICJ0YWJsZSI6IHsKICAgICAgInN0YXJ0aW5nQ2hhbm5lbCI6ICJTdGFydGluZyBDaC4gTm8uIiwKICAgICAgIm5hbWUiOiAiRmlsdGVyIE5hbWUiLAogICAgICAidHlwZSI6ICJGaWx0ZXIgVHlwZSIsCiAgICAgICJmaWx0ZXIiOiAiRmlsdGVyIgogICAgfSwKICAgICJjdXN0b20iOiAiQ3VzdG9tIiwKICAgICJncm91cCI6ICJNM1UgR3JvdXAiLAogICAgIm5hbWUiOiB7CiAgICAgICJ0aXRsZSI6ICJGaWx0ZXIgTmFtZSIsCiAgICAgICJwbGFjZWhvbGRlciI6ICJGaWx0ZXIgbmFtZSIsCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiCiAgICB9LAogICAgImRlc2NyaXB0aW9uIjogewogICAgICAidGl0bGUiOiAiRGVzY3JpcHRpb24iLAogICAgICAicGxhY2Vob2xkZXIiOiAiRGVzY3JpcHRpb24iLAogICAgICAiZGVzY3JpcHRpb24iOiAiIgogICAgfSwKICAgICJ0eXBlIjogewogICAgICAidGl0bGUiOiAiVHlwZSIsCiAgICAgICJncm91cFRpdGxlIjogIkdyb3VwIFRpdGxlIiwKICAgICAgImN1c3RvbUZpbHRlciI6ICJDdXN0b20gRmlsdGVyIgogICAgfSwKICAgICJjYXNlU2Vuc2l0aXZlIjogewogICAgICAidGl0bGUiOiAiQ2FzZSBTZW5zaXRpdmUiLAogICAgICAicGxhY2Vob2xkZXIiOiAiIiwKICAgICAgImRlc2NyaXB0aW9uIjogIiIKICAgIH0sCiAgICAiZmlsdGVyUnVsZSI6IHsKICAgICAgInRpdGxlIjogIkZpbHRlciBSdWxlIiwKICAgICAgInBsYWNlaG9sZGVyIjogIlNwb3J0IHtIRH0gIXtFUyxJVH0iLAogICAgICAiZGVzY3JpcHRpb24iOiAiIgogICAgfSwKICAgICJmaWx0ZXJHcm91cCI6IHsKICAgICAgInRpdGxlIjogIkdyb3VwIFRpdGxlIiwKICAgICAgInBsYWNlaG9sZGVyIjogIiIsCiAgICAgICJkZXNjcmlwdGlvbiI6ICJTZWxlY3QgYSBNM1UgZ3JvdXAuIChDb3VudGVyKTxicj5DaGFuZ2luZyB0aGUgZ3JvdXAgdGl0bGUgaW4gdGhlIE0zVSBpbnZhbGlkYXRlcyB0aGUgZmlsdGVyLiIKICAgIH0sCiAgICAiaW5jbHVkZSI6IHsKICAgICAgInRpdGxlIjogIkluY2x1ZGUiLAogICAgICAicGxhY2Vob2xkZXIiOiAiRkhELFVIRCIsCiAgICAgICJkZXNjcmlwdGlvbiI6ICJDaGFubmVsIG5hbWUgbXVzdCBpbmNsdWRlLjxicj4oQ29tbWEgc2VwYXJhdGVkKSBDb21tYSBtZWFucyBvciIKICAgIH0sCiAgICAiZXhjbHVkZSI6IHsKICAgICAgInRpdGxlIjogIkV4Y2x1ZGUiLAogICAgICAicGxhY2Vob2xkZXIiOiAiRVMsSVQiLAogICAgICAiZGVzY3JpcHRpb24iOiAiQ2hhbm5lbCBuYW1lIG11c3Qgbm90IGNvbnRhaW4uPGJyPihDb21tYSBzZXBhcmF0ZWQpIENvbW1hIG1lYW5zIG9yIgogICAgfSwKICAgICJwcmVzZXJ2ZU1hcHBpbmciOiB7CiAgICAgICJ0aXRsZSI6ICJQcmVzZXJ2ZSBFeGlzdGluZyBNM1U8YnI+Q2hhbm5lbCBOdW1iZXJzIiwKICAgICAgInBhbGNlaG9sZGVyIjogIiIsCiAgICAgICJkZXNjcmlwdGlvbiI6ICJQcmVzZXJ2ZSBleGlzdGluZyBNM1UgcGxheWxpc3QgY2hhbm5lbCBudW1iZXJzPyIKICAgIH0sCiAgICAic3RhcnRpbmdDaGFubmVsIjogewogICAgICAidGl0bGUiOiAiU3RhcnRpbmcgQ2hhbm5lbCBOdW1iZXIiLAogICAgICAicGxhY2Vob2xkZXIiOiAiIiwKICAgICAgImRlc2NyaXB0aW9uIjogIiIKICAgIH0KICB9LAogICJwbGF5bGlzdCI6IHsKICAgICJ0YWJsZSI6IHsKICAgICAgInBsYXlsaXN0IjogIlBsYXlsaXN0IiwKICAgICAgInR1bmVyIjogIlR1bmVyIiwKICAgICAgImxhc3RVcGRhdGUiOiAiTGFzdCBVcGRhdGUiLAogICAgICAiYXZhaWxhYmlsaXR5IjogIkF2YWlsYWJpbGl0eSIsCiAgICAgICJ0eXBlIjogIlR5cGUiLAogICAgICAic3RyZWFtcyI6ICJTdHJlYW1zIiwKICAgICAgImdyb3VwVGl0bGUiOiAiZ3JvdXAtdGl0bGUiLAogICAgICAidHZnSUQiOiAidHZnLWlkIiwKICAgICAgInVuaXF1ZUlEIjogIlVuaXF1ZSBJRCIKICAgIH0sCiAgICAicGxheWxpc3RUeXBlIjogewogICAgICAidGl0bGUiOiAiUGxheWxpc3QgdHlwZSIsCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLAogICAgICAiZGVzY3JpcHRpb24iOiAiIgogICAgfSwKICAgICJ0eXBlIjogewogICAgICAidGl0bGUiOiAiVHlwZSIsCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLAogICAgICAiZGVzY3JpcHRpb24iOiAiIgogICAgfSwKICAgICJuYW1lIjogewogICAgICAidGl0bGUiOiAiTmFtZSIsCiAgICAgICJwbGFjZWhvbGRlciI6ICJQbGF5bGlzdCBuYW1lIiwKICAgICAgImRlc2NyaXB0aW9uIjogIiIKICAgIH0sCiAgICAiZGVzY3JpcHRpb24iOiB7CiAgICAgICJ0aXRsZSI6ICJEZXNjcmlwdGlvbiIsCiAgICAgICJwbGFjZWhvbGRlciI6ICJEZXNjcmlwdGlvbiIsCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiCiAgICB9LAogICAgImZpbGVNM1UiOiB7CiAgICAgICJ0aXRsZSI6ICJNM1UgRmlsZSIsCiAgICAgICJwbGFjZWhvbGRlciI6ICJGaWxlIHBhdGggb3IgVVJMIG9mIHRoZSBNM1UiLAogICAgICAiZGVzY3JpcHRpb24iOiAiIgogICAgfSwKICAgICJmaWxlSERIUiI6IHsKICAgICAgInRpdGxlIjogIkhESG9tZVJ1biBJUCIsCiAgICAgICJwbGFjZWhvbGRlciI6ICJJUCBhZGRyZXNzIGFuZCBwb3J0ICgxOTIuMTY4LjEuMTA6NTAwNCkiLAogICAgICAiZGVzY3JpcHRpb24iOiAiIgogICAgfSwKICAgICJ0dW5lciI6IHsKICAgICAgInRpdGxlIjogIlR1bmVyIC8gU3RyZWFtcyIsCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLAogICAgICAiZGVzY3JpcHRpb24iOiAiTnVtYmVyIG9mIHBhcmFsbGVsIGNvbm5lY3Rpb25zIHRoYXQgY2FuIGJlIGVzdGFibGlzaGVkIHRvIHRoZSBwcm92aWRlci4gPGJyPk9ubHkgYXZhaWxhYmxlIHdpdGggYWN0aXZhdGVkIGJ1ZmZlci48YnI+TmV3IHNldHRpbmdzIHdpbGwgb25seSBiZSBhcHBsaWVkIGFmdGVyIHF1aXR0aW5nIGFsbCBzdHJlYW1zLiIKICAgIH0KICB9LAogICJ4bWx0diI6IHsKICAgICJ0YWJsZSI6IHsKICAgICAgImd1aWRlIjogIkd1aWRlIiwKICAgICAgImxhc3RVcGRhdGUiOiAiTGFzdCBVcGRhdGUiLAogICAgICAiYXZhaWxhYmlsaXR5IjogIkF2YWlsYWJpbGl0eSIsCiAgICAgICJjaGFubmVscyI6ICJDaGFubmVscyIsCiAgICAgICJwcm9ncmFtcyI6ICJQcm9ncmFtcyIKICAgIH0sCiAgICAibmFtZSI6IHsKICAgICAgInRpdGxlIjogIk5hbWUiLAogICAgICAicGxhY2Vob2xkZXIiOiAiR3VpZGUgbmFtZSIsCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiCiAgICB9LAogICAgImRlc2NyaXB0aW9uIjogewogICAgICAidGl0bGUiOiAiRGVzY3JpcHRpb24iLAogICAgICAicGxhY2Vob2xkZXIiOiAiRGVzY3JpcHRpb24iLAogICAgICAiZGVzY3JpcHRpb24iOiAiIgogICAgfSwKICAgICJmaWxlWE1MVFYiOiB7CiAgICAgICJ0aXRsZSI6ICJYTUxUViBGaWxlIiwKICAgICAgInBsYWNlaG9sZGVyIjogIkZpbGUgcGF0aCBvciBVUkwgb2YgdGhlIFhNTFRWIiwKICAgICAgImRlc2NyaXB0aW9uIjogIiIKICAgIH0KICB9LAogICJtYXBwaW5nIjogewogICAgInRhYmxlIjogewogICAgICAiY2hObyI6ICJDaC4gTm8uIiwKICAgICAgImxvZ28iOiAiTG9nbyIsCiAgICAgICJjaGFubmVsTmFtZSI6ICJDaGFubmVsIE5hbWUiLAogICAgICAidXBkYXRlQ2hhbm5lbE5hbWVSZWdleCI6ICJVcGQuIFJ4LiIsCiAgICAgICJwbGF5bGlzdCI6ICJQbGF5bGlzdCIsCiAgICAgICJncm91cFRpdGxlIjogIkdyb3VwIFRpdGxlIiwKICAgICAgInhtbHR2RmlsZSI6ICJYTUxUViBGaWxlIiwKICAgICAgInhtbHR2SUQiOiAiWE1MVFYgSUQiLAogICAgICAidGltZXNoaWZ0IjogIlRpbWVzaGlmdCIKICAgIH0sCiAgICAiYWN0aXZlIjogewogICAgICAidGl0bGUiOiAiQWN0aXZlIiwKICAgICAgInBsYWNlaG9sZGVyIjogIiIsCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiCiAgICB9LAogICAgImNoYW5uZWxOYW1lIjogewogICAgICAidGl0bGUiOiAiQ2hhbm5lbCBOYW1lIiwKICAgICAgInBsYWNlaG9sZGVyIjogIiIsCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiCiAgICB9LAogICAgImRlc2NyaXB0aW9uIjogewogICAgICAidGl0bGUiOiAiQ2hhbm5lbCBEZXNjcmlwdGlvbiIsCiAgICAgICJwbGFjZWhvbGRlciI6ICJVc2VkIGJ5IHRoZSBEdW1teSBhcyBhbiBYTUwgZGVzY3JpcHRpb24iLAogICAgICAiZGVzY3JpcHRpb24iOiAiIgogICAgfSwKICAgICJ1cGRhdGVDaGFubmVsTmFtZSI6IHsKICAgICAgInRpdGxlIjogIlVwZGF0ZSBDaGFubmVsIE5hbWUiLAogICAgICAicGxhY2Vob2xkZXIiOiAiIiwKICAgICAgImRlc2NyaXB0aW9uIjogIiIKICAgIH0sCiAgICAidXBkYXRlQ2hhbm5lbE5hbWVSZWdleCI6IHsKICAgICAgInRpdGxlIjogIkNoYW5uZWwgbmFtZSB1cGRhdGUgcmVnZXgiLAogICAgICAicGxhY2Vob2xkZXIiOiAiRm9yIGV4YW1wbGUgXlBQVlsgXFxcXC1fXT8xLioiLAogICAgICAiZGVzY3JpcHRpb24iOiAiT24gdXBkYXRlLCBpZiBhbnkgbmV3IGNoYW5uZWwgbmFtZSBtYXRjaGVzIHRoaXMgcmVnZXgsIHJlbmFtZSBjdXJyZW50IGNoYW5uZWwgdG8gdGhlIGZpcnN0IG1hdGNoaW5nIG5hbWUiCiAgICB9LAogICAgInVwZGF0ZUNoYW5uZWxOYW1lQnlHcm91cFJlZ2V4IjogewogICAgICAidGl0bGUiOiAiT25seSBieSBncm91cCByZWdleCIsCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLAogICAgICAiZGVzY3JpcHRpb24iOiAiUmVuYW1lIHRoaXMgY2hhbm5lbCBvbmx5IGlmIGN1cnJlbnQgdXNlci1kZWZpbmVkIGdyb3VwIG1hdGNoZXMgdGhpcyByZWdleCIKICAgIH0sCiAgICAidXBkYXRlQ2hhbm5lbEdyb3VwIjogewogICAgICAidGl0bGUiOiAiVXBkYXRlIENoYW5uZWwgR3JvdXAiLAogICAgICAicGxhY2Vob2xkZXIiOiAiIiwKICAgICAgImRlc2NyaXB0aW9uIjogIklmIGNoZWNrZWQsIHVzZSBncm91cCBmcm9tIHRoZSBkYXRhYmFzZSIKICAgIH0sCiAgICAiY2hhbm5lbExvZ28iOiB7CiAgICAgICJ0aXRsZSI6ICJMb2dvIFVSTCIsCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLAogICAgICAiZGVzY3JpcHRpb24iOiAiIgogICAgfSwKICAgICJ1cGRhdGVDaGFubmVsTG9nbyI6IHsKICAgICAgInRpdGxlIjogIlVwZGF0ZSBDaGFubmVsIExvZ28iLAogICAgICAicGxhY2Vob2xkZXIiOiAiIiwKICAgICAgImRlc2NyaXB0aW9uIjogIiIKICAgIH0sCiAgICAiZXBnQ2F0ZWdvcnkiOiB7CiAgICAgICJ0aXRsZSI6ICJFUEcgQ2F0ZWdvcnkiLAogICAgICAicGxhY2Vob2xkZXIiOiAiIiwKICAgICAgImRlc2NyaXB0aW9uIjogIiIKICAgIH0sCiAgICAibTN1R3JvdXBUaXRsZSI6IHsKICAgICAgInRpdGxlIjogIkdyb3VwIFRpdGxlICh4dGV2ZS5tM3UpIiwKICAgICAgInBsYWNlaG9sZGVyIjogIiIsCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiCiAgICB9LAogICAgInhtbHR2RmlsZSI6IHsKICAgICAgInRpdGxlIjogIlhNTFRWIEZpbGUiLAogICAgICAicGxhY2Vob2xkZXIiOiAiIiwKICAgICAgImRlc2NyaXB0aW9uIjogIiIKICAgIH0sCiAgICAieG1sdHZDaGFubmVsIjogewogICAgICAidGl0bGUiOiAiWE1MVFYgQ2hhbm5lbCIsCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLAogICAgICAiZGVzY3JpcHRpb24iOiAiIgogICAgfSwKICAgICJ0aW1lc2hpZnQiOiB7CiAgICAgICJ0aXRsZSI6ICJUaW1lc2hpZnQiLAogICAgICAicGxhY2Vob2xkZXIiOiAiMCIsCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiCiAgICB9CiAgfSwKICAidXNlcnMiOiB7CiAgICAidGFibGUiOiB7CiAgICAgICJ1c2VybmFtZSI6ICJVc2VybmFtZSIsCiAgICAgICJwYXNzd29yZCI6ICJQYXNzd29yZCIsCiAgICAgICJ3ZWIiOiAiV0VCIiwKICAgICAgInBtcyI6ICJQTVMiLAogICAgICAibTN1IjogIk0zVSIsCiAgICAgICJ4bWwiOiAiWE1MIiwKICAgICAgImFwaSI6ICJBUEkiCiAgICB9LAogICAgInVzZXJuYW1lIjogewogICAgICAidGl0bGUiOiAiVXNlcm5hbWUiLAogICAgICAicGxhY2Vob2xkZXIiOiAiVXNlcm5hbWUiLAogICAgICAiZGVzY3JpcHRpb24iOiAiIgogICAgfSwKICAgICJwYXNzd29yZCI6IHsKICAgICAgInRpdGxlIjogIlBhc3N3b3JkIiwKICAgICAgInBsYWNlaG9sZGVyIjogIlBhc3N3b3JkIiwKICAgICAgImRlc2NyaXB0aW9uIjogIiIKICAgIH0sCiAgICAiY29uZmlybSI6IHsKICAgICAgInRpdGxlIjogIkNvbmZpcm0iLAogICAgICAicGxhY2Vob2xkZXIiOiAiUGFzc3dvcmQgY29uZmlybSIsCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiCiAgICB9LAogICAgIndlYiI6IHsKICAgICAgInRpdGxlIjogIldlYiBBY2Nlc3MiLAogICAgICAicGxhY2Vob2xkZXIiOiAiIiwKICAgICAgImRlc2NyaXB0aW9uIjogIiIKICAgIH0sCiAgICAicG1zIjogewogICAgICAidGl0bGUiOiAiUE1TIEFjY2VzcyIsCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLAogICAgICAiZGVzY3JpcHRpb24iOiAiIgogICAgfSwKICAgICJtM3UiOiB7CiAgICAgICJ0aXRsZSI6ICJNM1UgQWNjZXNzIiwKICAgICAgInBsYWNlaG9sZGVyIjogIiIsCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiCiAgICB9LAogICAgInhtbCI6IHsKICAgICAgInRpdGxlIjogIlhNTCBBY2Nlc3MiLAogICAgICAicGxhY2Vob2xkZXIiOiAiIiwKICAgICAgImRlc2NyaXB0aW9uIjogIiIKICAgIH0sCiAgICAiYXBpIjogewogICAgICAidGl0bGUiOiAiQVBJIEFjY2VzcyIsCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLAogICAgICAiZGVzY3JpcHRpb24iOiAiIgogICAgfQogIH0sCiAgInNldHRpbmdzIjogewogICAgImNhdGVnb3J5IjogewogICAgICAiZ2VuZXJhbCI6ICJHZW5lcmFsIiwKICAgICAgIm1hcHBpbmciOiAiTWFwcGluZyIsCiAgICAgICJmaWxlcyI6ICJGaWxlcyIsCiAgICAgICJzdHJlYW1pbmciOiAiU3RyZWFtaW5nIiwKICAgICAgImJhY2t1cCI6ICJCYWNrdXAiLAogICAgICAiYXV0aGVudGljYXRpb24iOiAiQXV0aGVudGljYXRpb24iCiAgICB9LAogICAgInVwZGF0ZSI6IHsKICAgICAgInRpdGxlIjogIlNjaGVkdWxlIGZvciB1cGRhdGluZyAoUGxheWxpc3QsIFhNTFRWLCBCYWNrdXApIiwKICAgICAgInBsYWNlaG9sZGVyIjogIjAwMDAsMTAwMCwyMDAwIiwKICAgICAgImRlc2NyaXB0aW9uIjogIlRpbWUgaW4gMjQgaG91ciBmb3JtYXQgKDA4MDAgPSA4OjAwIGFtKS4gTW9yZSB0aW1lcyBjYW4gYmUgZW50ZXJlZCBjb21tYSBzZXBhcmF0ZWQuIExlYXZlIHRoaXMgZmllbGQgZW1wdHkgaWYgbm8gdXBkYXRlcyBhcmUgdG8gYmUgY2FycmllZCBvdXQuIgogICAgfSwKICAgICJhcGkiOiB7CiAgICAgICJ0aXRsZSI6ICJBUEkgSW50ZXJmYWNlIiwKICAgICAgImRlc2NyaXB0aW9uIjogIlZpYSBBUEkgaW50ZXJmYWNlIGl0IGlzIHBvc3NpYmxlIHRvIHNlbmQgY29tbWFuZHMgdG8geFRlVmUuIEFQSSBkb2N1bWVudGF0aW9uIGlzIDxhIGhyZWY9J2h0dHBzOi8vZ2l0aHViLmNvbS94dGV2ZS1wcm9qZWN0L3hUZVZlLURvY3VtZW50YXRpb24vYmxvYi9tYXN0ZXIvZW4vY29uZmlndXJhdGlvbi5tZCNhcGknPmhlcmU8L2E+IgogICAgfSwKICAgICJjbGVhclhNTFRWQ2FjaGUiOiB7CiAgICAgICJ0aXRsZSI6ICJDbGVhciBYTUxUViBjYWNoZSIsCiAgICAgICJkZXNjcmlwdGlvbiI6ICJJZiBjaGVja2VkLCBkbyBub3Qga2VlcCBYTUxUViBjYWNoZSBpbiBtZW1vcnkuPGJyPlNpZ25pZmljYWxseSByZWR1Y2VzIFJBTSB1c2FnZSBpbiBpZGxlIG1vZGUsPGJyPmJ1dCBzaWduaWZpY2FsbHkgc2xvd2luZyBkb3duIGV2ZXJ5IHN1YnNlcXVlbnQgdXBkYXRlIGluIFhFUEcgZGF0YWJhc2UuIgogICAgfSwKICAgICJkZWZhdWx0TWlzc2luZ0VQRyI6IHsKICAgICAgInRpdGxlIjogIkZpbGwgTWlzc2luZyBFUEcgRGF0YSIsCiAgICAgICJkZXNjcmlwdGlvbiI6ICJXaGVuIHRoZXJlIGlzIG5vIG1hdGNoaW5nIEVQRyBkYXRhIGZvciBjaGFubmVsLCA8YnI+YXV0b2ZpbGwgd2l0aCB4VGVWZSBkdW1teSBFUEcgZGF0YT8iCiAgICB9LAogICAgImVuYWJsZU1hcHBlZENoYW5uZWxzIjogewogICAgICAidGl0bGUiOiAiRW5hYmxlIG1hcHBlZCBjaGFubmVscyIsCiAgICAgICJkZXNjcmlwdGlvbiI6ICJBdXRvbWF0aWNhbGx5IGVuYWJsZSBjaGFubmVscyB3aXRoIGFzc2lnbmVkIEVQRyBkYXRhIgogICAgfSwKICAgICJkaXNhbGxvd1VSTER1cGxpY2F0ZXMiOiB7CiAgICAgICJ0aXRsZSI6ICJEaXNhbGxvdyBVUkwgZHVwbGljYXRlcyIsCiAgICAgICJkZXNjcmlwdGlvbiI6ICJJZiBjaGVja2VkLCBkbyBub3QgYWRkIGEgbmV3IGNoYW5uZWwgZnJvbSBwbGF5bGlzdCBpZiBjaGFubmVsIHdpdGggc3VjaCBVUkwgYWxyZWFkeSBleGlzdHMiCiAgICB9LAogICAgImVwZ1NvdXJjZSI6IHsKICAgICAgInRpdGxlIjogIkVQRyBTb3VyY2UiLAogICAgICAiZGVzY3JpcHRpb24iOiAiUE1TOjxicj4tIFVzZSBFUEcgZGF0YSBmcm9tIFBsZXggb3IgRW1ieSA8YnI+PGJyPlhFUEc6PGJyPi0gVXNlIG9mIG9uZSBvciBtb3JlIFhNTFRWIGZpbGVzPGJyPi0gQ2hhbm5lbCBtYW5hZ2VtZW50PGJyPi0gTTNVIC8gWE1MVFYgZXhwb3J0IChIVFRQIGxpbmsgZm9yIElQVFYgYXBwcykiCiAgICB9LAogICAgInR1bmVyIjogewogICAgICAidGl0bGUiOiAiTnVtYmVyIG9mIFR1bmVycyIsCiAgICAgICJkZXNjcmlwdGlvbiI6ICJOdW1iZXIgb2YgcGFyYWxsZWwgY29ubmVjdGlvbnMgdGhhdCBjYW4gYmUgZXN0YWJsaXNoZWQgdG8gdGhlIHByb3ZpZGVyLjxicj5BdmFpbGFibGUgZm9yOiBQbGV4LCBFbWJ5IChIREhSKSwgTTNVICh3aXRoIGFjdGl2ZSBidWZmZXIpLjxicj5BZnRlciBhIGNoYW5nZSwgeFRlVmUgbXVzdCBiZSBkZWxldGUgaW4gdGhlIFBsZXggLyBFbWJ5IERWUiBzZXR0aW5ncyBhbmQgc2V0IHVwIGFnYWluLiIKICAgIH0sCiAgICAiaG9zdElQIjogewogICAgICAidGl0bGUiOiAiSG9zdCBJUCIsCiAgICAgICJkZXNjcmlwdGlvbiI6ICJJUCBhZGRyZXNzIHhUZVZlIHdpbGwgdXNlIHRvIGZvcm0gTTNVIGFuZCBYTUxUViBmaWxlcyIKICAgIH0sCiAgICAiaG9zdE5hbWUiOiB7CiAgICAgICJ0aXRsZSI6ICJIb3N0IE5hbWUgT3ZlcnJpZGUiLAogICAgICAiZGVzY3JpcHRpb24iOiAiSG9zdG5hbWUgeFRlVmUgd2lsbCB1c2UgdG8gZm9ybSBNM1UgYW5kIFhNTFRWIGZpbGVzLiBUaGlzIHdpbGwgb3ZlcnJpZGUgSG9zdCBJUCBpZiBzZXQiCiAgICB9LAogICAgInRsc01vZGUiOiB7CiAgICAgICJ0aXRsZSI6ICJUTFMgKEhUVFBTKSBtb2RlIiwKICAgICAgImRlc2NyaXB0aW9uIjogIkNoYW5nZXMgd2ViIHNlcnZlciBwcm90b2NvbCB0byBIVFRQUy48YnI+Rm9yIGRldGFpbHMsIHNlZSA8YT5odHRwczovL2dpdGh1Yi5jb20vU0NQMDAyL3hUZVZlI3Rscy1tb2RlPC9hPiIKICAgIH0sCiAgICAiZmlsZXNVcGRhdGUiOiB7CiAgICAgICJ0aXRsZSI6ICJVcGRhdGVzIGFsbCBmaWxlcyBhdCBzdGFydHVwIiwKICAgICAgImRlc2NyaXB0aW9uIjogIlVwZGF0ZXMgYWxsIHBsYXlsaXN0cywgdHVuZXIgYW5kIFhNTFRWIGZpbGVzIGF0IHN0YXJ0dXAuIgogICAgfSwKICAgICJjYWNoZUltYWdlcyI6IHsKICAgICAgInRpdGxlIjogIkltYWdlIENhY2hpbmciLAogICAgICAiZGVzY3JpcHRpb24iOiAiQWxsIGltYWdlcyBmcm9tIHRoZSBYTUxUViBmaWxlIGFyZSBjYWNoZWQsIGFsbG93aW5nIGZhc3RlciByZW5kZXJpbmcgb2YgdGhlIGdyaWQgaW4gdGhlIGNsaWVudC48YnI+RG93bmxvYWRpbmcgdGhlIGltYWdlcyBtYXkgdGFrZSBhIHdoaWxlIGFuZCB3aWxsIGJlIGRvbmUgaW4gdGhlIGJhY2tncm91bmQuIgogICAgfSwKICAgICJyZXBsYWNlRW1wdHlJbWFnZXMiOiB7CiAgICAgICJ0aXRsZSI6ICJSZXBsYWNlIG1pc3NpbmcgcHJvZ3JhbSBpbWFnZXMiLAogICAgICAiZGVzY3JpcHRpb24iOiAiSWYgdGhlIHBvc3RlciBpbiB0aGUgWE1MVFYgcHJvZ3JhbSBpcyBtaXNzaW5nLCB0aGUgY2hhbm5lbCBsb2dvIHdpbGwgYmUgdXNlZC4iCiAgICB9LAogICAgInh0ZXZlQXV0b1VwZGF0ZSI6IHsKICAgICAgInRpdGxlIjogIkF1dG9tYXRpYyB1cGRhdGUgb2YgeFRlVmUiLAogICAgICAiZGVzY3JpcHRpb24iOiAiSWYgYSBuZXcgdmVyc2lvbiBvZiB4VGVWZSBpcyBhdmFpbGFibGUsIGl0IHdpbGwgYmUgYXV0b21hdGljYWxseSBpbnN0YWxsZWQuIFRoZSB1cGRhdGVzIGFyZSBkb3dubG9hZGVkIGZyb20gR2l0SHViLiIKICAgIH0sCiAgICAic3RyZWFtQnVmZmVyaW5nIjogewogICAgICAidGl0bGUiOiAiU3RyZWFtIEJ1ZmZlciIsCiAgICAgICJkZXNjcmlwdGlvbiI6ICJGdW5jdGlvbnMgb2YgdGhlIGJ1ZmZlcjo8YnI+LSBUaGUgc3RyZWFtIGlzIHBhc3NlZCBmcm9tIHhUZVZlLCBGRm1wZWcgb3IgVkxDIHRvIFBsZXgsIEVtYnkgb3IgTTNVIFBsYXllcjxicj4tIFNtYWxsIGplcmtpbmcgb2YgdGhlIHN0cmVhbXMgY2FuIGJlIGNvbXBlbnNhdGVkPGJyPi0gSExTIC8gTTNVOCBzdXBwb3J0PGJyPi0gUlRQIC8gUlRQUyBzdXBwb3J0IChvbmx5IEZGbXBlZyBvciBWTEMpPGJyPi0gUmUtc3RyZWFtaW5nPGJyPi0gU2VwYXJhdGUgdHVuZXIgbGltaXQgZm9yIGVhY2ggcGxheWxpc3QiLAogICAgICAiaW5mb19mYWxzZSI6ICJObyBCdWZmZXIgKENsaWVudCBjb25uZWN0cyB0byB0aGUgc3RyZWFtaW5nIHNlcnZlcikiLAogICAgICAiaW5mb194dGV2ZSI6ICJ4VGVWZSBjb25uZWN0cyB0byB0aGUgc3RyZWFtaW5nIHNlcnZlciIsCiAgICAgICJpbmZvX2ZmbXBlZyI6ICJGRm1wZWcgY29ubmVjdHMgdG8gdGhlIHN0cmVhbWluZyBzZXJ2ZXIiLAogICAgICAiaW5mb192bGMiOiAiVkxDIGNvbm5lY3RzIHRvIHRoZSBzdHJlYW1pbmcgc2VydmVyIgogICAgfSwKICAgICJ1ZHB4eSI6IHsKICAgICAgInRpdGxlIjogIlVEUHh5IGFkZHJlc3MiLAogICAgICAiZGVzY3JpcHRpb24iOiAiVGhlIGFkZHJlc3Mgb2YgeW91ciBVRFB4eSBzZXJ2ZXIuIElmIHNldCwgYW5kIHRoZSBjaGFubmVsIFVSTHMgaW4gdGhlIG0zdSBpcyBtdWx0aWNhc3QsIHhUZVZlIHdpbGwgcmV3cml0ZSBpdCBzbyB0aGF0IGl0IGlzIGFjY2Vzc2VkIHZpYSB0aGUgVURQeHkgc2VydmljZS4iLAogICAgICAicGxhY2Vob2xkZXIiOiAiaG9zdDpwb3J0IgogICAgfSwKICAgICJmZm1wZWdQYXRoIjogewogICAgICAidGl0bGUiOiAiRkZtcGVnIEJpbmFyeSBQYXRoIiwKICAgICAgImRlc2NyaXB0aW9uIjogIlBhdGggdG8gRkZtcGVnIGJpbmFyeS4iLAogICAgICAicGxhY2Vob2xkZXIiOiAiL3BhdGgvdG8vZmZtcGVnIgogICAgfSwKICAgICJmZm1wZWdPcHRpb25zIjogewogICAgICAidGl0bGUiOiAiRkZtcGVnIE9wdGlvbnMiLAogICAgICAiZGVzY3JpcHRpb24iOiAiRkZtcGVnIG9wdGlvbnMuPGJyPk9ubHkgY2hhbmdlIGlmIHlvdSBrbm93IHdoYXQgeW91IGFyZSBkb2luZy48YnI+TGVhdmUgYmxhbmsgdG8gc2V0IGRlZmF1bHQgc2V0dGluZ3MuIiwKICAgICAgInBsYWNlaG9sZGVyIjogIkxlYXZlIGJsYW5rIHRvIHNldCBkZWZhdWx0IHNldHRpbmdzIgogICAgfSwKICAgICJ2bGNQYXRoIjogewogICAgICAidGl0bGUiOiAiVkxDIC8gQ1ZMQyBCaW5hcnkgUGF0aCIsCiAgICAgICJkZXNjcmlwdGlvbiI6ICJQYXRoIHRvIFZMQyAvIENWTEMgYmluYXJ5LiIsCiAgICAgICJwbGFjZWhvbGRlciI6ICIvcGF0aC90by9jdmxjIgogICAgfSwKICAgICJ2bGNPcHRpb25zIjogewogICAgICAidGl0bGUiOiAiVkxDIC8gQ1ZMQyBPcHRpb25zIiwKICAgICAgImRlc2NyaXB0aW9uIjogIlZMQyAvIENWTEMgb3B0aW9ucy48YnI+T25seSBjaGFuZ2UgaWYgeW91IGtub3cgd2hhdCB5b3UgYXJlIGRvaW5nLjxicj5MZWF2ZSBibGFuayB0byBzZXQgZGVmYXVsdCBzZXR0aW5ncy4iLAogICAgICAicGxhY2Vob2xkZXIiOiAiTGVhdmUgYmxhbmsgdG8gc2V0IGRlZmF1bHQgc2V0dGluZ3MiCiAgICB9LAogICAgImJ1ZmZlclNpemUiOiB7CiAgICAgICJ0aXRsZSI6ICJCdWZmZXIgU2l6ZSIsCiAgICAgICJkZXNjcmlwdGlvbiI6ICJCdWZmZXIgc2l6ZSBpbiBNQi48YnI+TTNVODogSWYgdGhlIFRTIHNlZ21lbnQgc21hbGxlciB0aGVuIHRoZSBidWZmZXIgc2l6ZSwgdGhlIGZpbGUgc2l6ZSBvZiB0aGUgc2VnbWVudCBpcyB1c2VkLiIKICAgIH0sCiAgICAic3RvcmVCdWZmZXJJblJBTSI6IHsKICAgICAgInRpdGxlIjogIlN0b3JlIGJ1ZmZlciBpbiBSQU0iLAogICAgICAiZGVzY3JpcHRpb24iOiAiSWYgY2hlY2tlZCwgd3JpdGUgYnVmZmVyIHRvIFJBTSBpbnN0ZWFkIG9mIHdyaXRpbmcgdG8gZGlzayIKICAgIH0sCiAgICAiYnVmZmVyVGltZW91dCI6IHsKICAgICAgInRpdGxlIjogIlRpbWVvdXQgZm9yIG5ldyBjbGllbnQgY29ubmVjdGlvbnMiLAogICAgICAiZGVzY3JpcHRpb24iOiAiVGhlIHhUZVZlIGJ1ZmZlciB3YWl0cyB1bnRpbCBuZXcgY2xpZW50IGNvbm5lY3Rpb25zIGFyZSBlc3RhYmxpc2hlZC4gSGVscGZ1bCBmb3IgZmFzdCBjaGFubmVsIHN3aXRjaGluZy4gVmFsdWUgaW4gbWlsbGlzZWNvbmRzLiIsCiAgICAgICJwbGFjZWhvbGRlciI6ICIxMDAiCiAgICB9LAogICAgInVzZXJBZ2VudCI6IHsKICAgICAgInRpdGxlIjogIlVzZXIgQWdlbnQiLAogICAgICAiZGVzY3JpcHRpb24iOiAiVXNlciBBZ2VudCBmb3IgSFRUUCByZXF1ZXN0cy4gRm9yIGV2ZXJ5IEhUVFAgY29ubmVjdGlvbiwgdGhpcyB2YWx1ZSBpcyB1c2VkIGZvciB0aGUgdXNlciBhZ2VudC4gU2hvdWxkIG9ubHkgYmUgY2hhbmdlZCBpZiB4VGVWZSBpcyBibG9ja2VkLiIsCiAgICAgICJwbGFjZWhvbGRlciI6ICJ4VGVWZSIKICAgIH0sCiAgICAiYmFja3VwUGF0aCI6IHsKICAgICAgInRpdGxlIjogIkxvY2F0aW9uIGZvciBhdXRvbWF0aWMgYmFja3VwcyIsCiAgICAgICJwbGFjZWhvbGRlciI6ICIvbW50L2RhdGEvYmFja3VwL3h0ZXZlLyIsCiAgICAgICJkZXNjcmlwdGlvbiI6ICJCZWZvcmUgYW55IHVwZGF0ZSBvZiB0aGUgcHJvdmlkZXIgZGF0YSBieSB0aGUgc2NoZWR1bGUsIHhUZVZlIGNyZWF0ZXMgYSBiYWNrdXAuIFRoZSBwYXRoIGZvciB0aGUgYXV0b21hdGljIGJhY2t1cHMgY2FuIGJlIGNoYW5nZWQuIHhUZVZlIHJlcXVpcmVzIHdyaXRlIHBlcm1pc3Npb24gZm9yIHRoaXMgZm9sZGVyLiIKICAgIH0sCiAgICAidGVtcFBhdGgiOiB7CiAgICAgICJ0aXRsZSI6ICJMb2NhdGlvbiBmb3IgdGhlIHRlbXBvcmFyeSBmaWxlcyIsCiAgICAgICJwbGFjZWhvbGRlciI6ICIvdG1wL3h0ZXZlLyIsCiAgICAgICJkZXNjcmlwdGlvbiI6ICJMb2NhdGlvbiBmb3IgdGhlIGJ1ZmZlciBmaWxlcy4iCiAgICB9LAogICAgImJhY2t1cEtlZXAiOiB7CiAgICAgICJ0aXRsZSI6ICJOdW1iZXIgb2YgYmFja3VwcyB0byBrZWVwIiwKICAgICAgImRlc2NyaXB0aW9uIjogIk51bWJlciBvZiBiYWNrdXBzIHRvIGtlZXAuIE9sZGVyIGJhY2t1cHMgYXJlIGF1dG9tYXRpY2FsbHkgZGVsZXRlZC4iCiAgICB9LAogICAgImF1dGhlbnRpY2F0aW9uV0VCIjogewogICAgICAidGl0bGUiOiAiV0VCIEF1dGhlbnRpY2F0aW9uIiwKICAgICAgImRlc2NyaXB0aW9uIjogIkFjY2VzcyB0byB0aGUgd2ViIGludGVyZmFjZSBvbmx5IHBvc3NpYmxlIHdpdGggY3JlZGVudGlhbHMuIgogICAgfSwKICAgICJhdXRoZW50aWNhdGlvblBNUyI6IHsKICAgICAgInRpdGxlIjogIlBNUyBBdXRoZW50aWNhdGlvbiIsCiAgICAgICJkZXNjcmlwdGlvbiI6ICJQbGV4IHJlcXVlc3RzIGFyZSBvbmx5IHBvc3NpYmxlIHdpdGggYXV0aGVudGljYXRpb24uIDxicj48Yj5XYXJuaW5nISEhPC9iPiBBZnRlciBhY3RpdmF0aW5nIHRoaXMgZnVuY3Rpb24geFRlVmUgbXVzdCBiZSBkZWxldGUgaW4gdGhlIFBNUyBEVlIgc2V0dGluZ3MgYW5kIHNldCB1cCBhZ2Fpbi4iCiAgICB9LAogICAgImF1dGhlbnRpY2F0aW9uTTNVIjogewogICAgICAidGl0bGUiOiAiTTNVIEF1dGhlbnRpY2F0aW9uIiwKICAgICAgImRlc2NyaXB0aW9uIjogIkRvd25sb2FkaW5nIHRoZSB4dGV2ZS5tM3UgZmlsZSB2aWEgYW4gSFRUUCByZXF1ZXN0IGlzIG9ubHkgcG9zc2libGUgd2l0aCBhdXRoZW50aWNhdGlvbi4iCiAgICB9LAogICAgImF1dGhlbnRpY2F0aW9uWE1MIjogewogICAgICAidGl0bGUiOiAiWE1MIEF1dGhlbnRpY2F0aW9uIiwKICAgICAgImRlc2NyaXB0aW9uIjogIkRvd25sb2FkaW5nIHRoZSB4dGV2ZS54bWwgZmlsZSB2aWEgYW4gSFRUUCByZXF1ZXN0IGlzIG9ubHkgcG9zc2libGUgd2l0aCBhdXRoZW50aWNhdGlvbiIKICAgIH0sCiAgICAiYXV0aGVudGljYXRpb25BUEkiOiB7CiAgICAgICJ0aXRsZSI6ICJBUEkgQXV0aGVudGljYXRpb24iLAogICAgICAiZGVzY3JpcHRpb24iOiAiQWNjZXNzIHRvIHRoZSBBUEkgaW50ZXJmYWNlIGlzIG9ubHkgcG9zc2libGUgd2l0aCBhdXRoZW50aWNhdGlvbi4iCiAgICB9CiAgfSwKICAid2l6YXJkIjogewogICAgImVwZ1NvdXJjZSI6IHsKICAgICAgInRpdGxlIjogIkVQRyBTb3VyY2UiLAogICAgICAiZGVzY3JpcHRpb24iOiAiUE1TOjxicj4tIFVzZSBFUEcgZGF0YSBmcm9tIFBsZXggb3IgRW1ieSA8YnI+PGJyPlhFUEc6PGJyPi0gVXNlIG9mIG9uZSBvciBtb3JlIFhNTFRWIGZpbGVzPGJyPi0gQ2hhbm5lbCBtYW5hZ2VtZW50PGJyPi0gTTNVIC8gWE1MVFYgZXhwb3J0IChIVFRQIGxpbmsgZm9yIElQVFYgYXBwcykiCiAgICB9LAogICAgInR1bmVyIjogewogICAgICAidGl0bGUiOiAiTnVtYmVyIG9mIHR1bmVycyIsCiAgICAgICJkZXNjcmlwdGlvbiI6ICJOdW1iZXIgb2YgcGFyYWxsZWwgY29ubmVjdGlvbnMgdGhhdCBjYW4gYmUgZXN0YWJsaXNoZWQgdG8gdGhlIHByb3ZpZGVyLjxicj5BdmFpbGFibGUgZm9yOiBQbGV4LCBFbWJ5IChIREhSKSwgTTNVICh3aXRoIGFjdGl2ZSBidWZmZXIpLjxicj5BZnRlciBhIGNoYW5nZSwgeFRlVmUgbXVzdCBiZSBkZWxldGUgaW4gdGhlIFBsZXggLyBFbWJ5IERWUiBzZXR0aW5ncyBhbmQgc2V0IHVwIGFnYWluLiIKICAgIH0sCiAgICAibTN1IjogewogICAgICAidGl0bGUiOiAiTTNVIFBsYXlsaXN0IiwKICAgICAgInBsYWNlaG9sZGVyIjogIkZpbGUgcGF0aCBvciBVUkwgb2YgdGhlIE0zVSIsCiAgICAgICJkZXNjcmlwdGlvbiI6ICJMb2NhbCBvciByZW1vdGUgcGxheWxpc3RzIgogICAgfSwKICAgICJ4bWx0diI6IHsKICAgICAgInRpdGxlIjogIlhNTFRWIEZpbGUiLAogICAgICAicGxhY2Vob2xkZXIiOiAiRmlsZSBwYXRoIG9yIFVSTCBvZiB0aGUgWE1MVFYiLAogICAgICAiZGVzY3JpcHRpb24iOiAiTG9jYWwgb3IgcmVtb3RlIFhNTFRWIGZpbGUiCiAgICB9CiAgfSwKICAibG9naW4iOiB7CiAgICAiZmFpbGVkIjogIlVzZXIgYXV0aGVudGljYXRpb24gZmFpbGVkIiwKICAgICJoZWFkbGluZSI6ICJMb2dpbiIsCiAgICAidXNlcm5hbWUiOiB7CiAgICAgICJ0aXRsZSI6ICJVc2VybmFtZSIsCiAgICAgICJwbGFjZWhvbGRlciI6ICJVc2VybmFtZSIKICAgIH0sCiAgICAicGFzc3dvcmQiOiB7CiAgICAgICJ0aXRsZSI6ICJQYXNzd29yZCIsCiAgICAgICJwbGFjZWhvbGRlciI6ICJQYXNzd29yZCIKICAgIH0KICB9LAogICJhY2NvdW50IjogewogICAgImZhaWxlZCI6ICJQYXNzd29yZCBkb2VzIG5vdCBtYXRjaCIsCiAgICAiaGVhZGxpbmUiOiAiQ3JlYXRlIHVzZXIgYWNjb3VudCIsCiAgICAidXNlcm5hbWUiOiB7CiAgICAgICJ0aXRsZSI6ICJVc2VybmFtZSIsCiAgICAgICJwbGFjZWhvbGRlciI6ICJVc2VybmFtZSIKICAgIH0sCiAgICAicGFzc3dvcmQiOiB7CiAgICAgICJ0aXRsZSI6ICJQYXNzd29yZCIsCiAgICAgICJwbGFjZWhvbGRlciI6ICJQYXNzd29yZCIKICAgIH0sCiAgICAiY29uZmlybSI6IHsKICAgICAgInRpdGxlIjogIkNvbmZpcm0iLAogICAgICAicGxhY2Vob2xkZXIiOiAiQ29uZmlybSIKICAgIH0KICB9Cn0=" webUI["html/login.html"] = "PCFkb2N0eXBlIGh0bWw+CjxodG1sPgoKPGhlYWQ+CiAgPG1ldGEgY2hhcnNldD0idXRmLTgiPgogIDxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgsIGluaXRpYWwtc2NhbGU9MS4wIiAvPgogIDx0aXRsZT54VGVWZTwvdGl0bGU+CiAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJjc3Mvc2NyZWVuLmNzcyIgdHlwZT0idGV4dC9jc3MiPgogIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iY3NzL2Jhc2UuY3NzIiB0eXBlPSJ0ZXh0L2NzcyI+CiAgPHNjcmlwdCBsYW5ndWFnZT0iamF2YXNjcmlwdCIgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9ImpzL25ldHdvcmtfdHMuanMiPjwvc2NyaXB0PgogIDxzY3JpcHQgbGFuZ3VhZ2U9ImphdmFzY3JpcHQiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJqcy9hdXRoZW50aWNhdGlvbl90cy5qcyI+PC9zY3JpcHQ+CjwvaGVhZD4KCjxib2R5PgoKICA8ZGl2IGlkPSJoZWFkZXIiIGNsYXNzPSJpbWdDZW50ZXIiPjwvZGl2PgoKICA8ZGl2IGlkPSJib3giPgoKICAgIDxkaXYgaWQ9ImhlYWRsaW5lIj4KICAgICAgPGgxIGlkPSJoZWFkLXRleHQiIGNsYXNzPSJjZW50ZXIiPnt7LmxvZ2luLmhlYWRsaW5lfX08L2gxPgogICAgPC9kaXY+CgogICAgPHAgaWQ9ImVyciIgY2xhc3M9ImVycm9yTXNnIGNlbnRlciI+e3suYXV0aGVudGljYXRpb25FcnJ9fTwvcD4KCiAgICA8ZGl2IGlkPSJjb250ZW50Ij4KCiAgICAgIDxmb3JtIGlkPSJhdXRoZW50aWNhdGlvbiIgYWN0aW9uPSIiIG1ldGhvZD0icG9zdCI+CgogICAgICAgIDxoNT57ey5sb2dpbi51c2VybmFtZS50aXRsZX19OjwvaDU+CiAgICAgICAgPGlucHV0IGlkPSJ1c2VybmFtZSIgdHlwZT0idGV4dCIgbmFtZT0idXNlcm5hbWUiIHBsYWNlaG9sZGVyPSJVc2VybmFtZSIgdmFsdWU9IiI+CiAgICAgICAgPGg1Pnt7LmxvZ2luLnBhc3N3b3JkLnRpdGxlfX06PC9oNT4KICAgICAgICA8aW5wdXQgaWQ9InBhc3N3b3JkIiB0eXBlPSJwYXNzd29yZCIgbmFtZT0icGFzc3dvcmQiIHBsYWNlaG9sZGVyPSJQYXNzd29yZCIgdmFsdWU9IiI+CgogICAgICA8L2Zvcm0+CgogICAgPC9kaXY+CgogICAgPGRpdiBpZD0iYm94LWZvb3RlciI+CiAgICAgIDxpbnB1dCBpZD0ic3VibWl0IiBjbGFzcz0iIiB0eXBlPSJidXR0b24iIHZhbHVlPSJ7ey5idXR0b24ubG9naW59fSIgb25jbGljaz0iamF2YXNjcmlwdDogbG9naW4oKTsiPgogICAgPC9kaXY+CgogIDwvZGl2PgoKPC9ib2R5PgoKPC9odG1sPg==" webUI["html/maintenance.html"] = "PCFkb2N0eXBlIGh0bWw+CjxodG1sPgoKPGhlYWQ+CiAgPG1ldGEgY2hhcnNldD0idXRmLTgiPgogIDxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgsIGluaXRpYWwtc2NhbGU9MS4wIiAvPgogIDx0aXRsZT54VGVWZTwvdGl0bGU+CiAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJjc3Mvc2NyZWVuLmNzcyIgdHlwZT0idGV4dC9jc3MiPgogIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iY3NzL2Jhc2UuY3NzIiB0eXBlPSJ0ZXh0L2NzcyI+CjwvaGVhZD4KCjxib2R5PgoKICA8ZGl2IGlkPSJoZWFkZXIiIGNsYXNzPSJpbWdDZW50ZXIiPjwvZGl2PgoKICA8ZGl2IGlkPSJib3giPgoKICAgIDxkaXYgaWQ9ImhlYWRsaW5lIj4KICAgICAgPGgxIGlkPSJoZWFkLXRleHQiIGNsYXNzPSJjZW50ZXIiPk1haW50ZW5hbmNlPC9oMT4KICAgIDwvZGl2PgoKICAgIDxkaXYgaWQ9ImNvbnRlbnQiPgogICAgICB4VGVWZSBpcyB1cGRhdGluZyB0aGUgZGF0YWJhc2UsIHBsZWFzZSB0cnkgYWdhaW4gbGF0ZXIuCiAgICA8L2Rpdj4KCiAgICA8ZGl2IGlkPSJib3gtZm9vdGVyIj48L2Rpdj4KCiAgPC9kaXY+Cgo8L2JvZHk+Cgo8L2h0bWw+" webUI["html/video/stream-limit.ts"] = "R0AREABC8CUAAcEAAP8B/wAB/IAUSBIBBkZGbXBlZwlTZXJ2aWNlMDF3fEPK//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////9HQAAQAACwDQABwQAAAAHwACqxBLL//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////0dQABAAArASAAHBAADhAPAAG+EA8AAVvU1W////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////R0EAMAdQAAB7DH4AAAAB4AAAgMAKMQAJEKERAAfYYQAAAAEJ8AAAAAFnZAAorNlAeAIn5cBEAAADAAQAAAMAyDxgxlgAAAABaOvjyyLAAAABBgX//6rcRem95tlIt5Ys2CDZI+7veDI2NCAtIGNvcmUgMTUyIHIyODU0IGU5YTU5MDMgLSBILjI2NC9NUEVHLTQgQVZDIGNvZGVjIC0gQ29weWxlZnQgMjAwMy0yMDE3IC0gaHR0cDovL3dHAQARd3cudmlkZW9sYW4ub3JnL3gyNjQuaHRtbCAtIG9wdGlvbnM6IGNhYmFjPTEgcmVmPTMgZGVibG9jaz0xOjA6MCBhbmFseXNlPTB4MzoweDExMyBtZT1oZXggc3VibWU9NyBwc3k9MSBwc3lfcmQ9MS4wMDowLjAwIG1peGVkX3JlZj0xIG1lX3JhbmdlPTE2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ACqxBLL//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////0dQABEAArASAAHBAADhAPAAG+EA8AAVvU1W////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////RwEAGO10tGlFAwyE91Tzg8923ovJk1dv2xh1gVlYQFtWdZ6NSQ8vgHM7/tMfIZPsqgCU856rdBJJRMDaor/oWA7pkvSmC2aqaC5fd/mkWUPTuG8fRhGqOY1rKxLNSI3HtTQAcuVBxRM0NfMw0ky/JMJYZiCgXcNsxpxl+khr/9fKtO5Fg2VNBti92xcZimHUZDJMQTBOY6vSR9L1N2O/kJQCpdfuc9bkcUTMjH/es/lAySxvbiislkohqkpHAQAZVatwHI0t9eHCUfDyWUEtuCNyDwQFOVMtaYEQJrTrhQX0VduT86F0u0wN9ag0uPsrmX6Rid/x5S7KI1SkS+qP6cdmgSP57uiF4dG6IKsWNfGBLY09H/CFlrg73WINQkkp2diKkdEmtZetn8+ZAKzR5eXN5FebiKt6pIkNLuSofjosypEs2o6boKsfpmbtOV0idOeWDM9C8EIcn3aZwk1s2KBDvt1DlY+i2Cuvhk3XoKLT+pq/bOC5QkcBABolcOXneZXLoQw9W1PH1f/of92Ytjj8okrWijcQAKlE5l8XoTb9qrOiZnDOhqwcMlB9H9rorq041I89hChohYoSkJElcM8V+r8WYN5axD1BNyfwaHAOm4UN2/VEYOkNSfMjmx2S0WW/F2ha8Jj4fc4QgqcXr+TnnbwqLkLTValK4Qa1pcv7PIbDq6zCUfxe04guZ8xEhPQjp17/G6IB/6uq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wnibxQ/cXEblVnM47wbCN3iy4eHjYB5MoIICrSYmd8nt4V0toLs084KJlmnur5FbApYM4W79ff4oZkW88Cg8Fv8TnWhh1Hqc4UlhMbRKm2QxDgfBxar3U7BwNR6prrXXjqfR7ja3tPli+H7Jez/xcTg32QpHAQAdTa7pSSgBvmOqzz175NAFIhwE9p3d71F9jLvhaPv8q1iKopL0kizwzEWElnXWmNhfLkl/Au8KujnoKUaxVdTe+zAZm2dOkejnpNVtVj0Aw9wKcG3ZQ1iRZrUFRIoPKYlmR+oi0LrupuhYABtgPbdCbDtezGTr0nw9wVd/rZ6V+1wcoJ6+8VAVueIdwI3brqm6EoFHiI8L6lER+9SefB8fHo4NYgr/I8jSxaa/2PLX2K/DjrlY6bN8fEcBAB7DXsuh8DITF6CYWj2HTFvqfzlic3QHXnHtvsTFNpyVY1LY8y/fRK2mwALN6IB5W3OuyoKiA3K0lJdQUv2gYhHWvPTV218HYrD0rkbMxRH0SiEEkrHDeOt5T1HtWD13D2/QvMu535fsfZyeaFDjdCE9M0Xi8Lfc7Xj1ZNGend7Jo7/cEiczFkc1vB4z2JpFGZreV2EdquyEzC2STFJtfimyx8QlLngEuR1cxH+lWEcFX+mvBa/eqktIRwEAH6VazFLPNsnHZqsI66TVoArQuUUGFAzr8MT8GZ9V6qpZa5D0jA/4eGi6Kq0smUgRExnqIbSMLWqDf/Pk2YT3MpHTu9VE3Dn9blgB6KsVIkWnB98Y2n/6DrZDcF94Ndu0Ka4U/RZwdV5O5KcO+lU2ZiIOYTYZ6Ie0d+tApxYxJ+YmxaDoCyRNe6crw/yzR5SflT8ddi/E2BM+l+nwVDiKZ/714fmrBxFKWuqLiQNHV19o1cZ8Ubun+ZtHQAASAACwDQABwQAAAAHwACqxBLL//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////0dQABIAArASAAHBAADhAPAAG+EA8AAVvU1W////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////RwEAEH1s3BdtHdF1ln55B24wdACF/ggcRtPmB4IUB6cZJ+m32I4R48ZkdhAFBulgWcsv0wZwH0o1yi3i4qm3rJ98AUKdB9PsNyG9gURV0bTw4myAj6g5Dgodfv6w9bsbOxsGUWkvgAJ3rrR010BvZbIa6CMRCQRjxkCfRF77ansRJZT0JzhtYeSS/ZJob8Rr2jrng3W2rkmHtE+rdqlPiHxmwkRZvYGhBxwiJO2L6f+l/cABsfs09rA+A0pHAQAREZay3TBUIAfMWhApE+LaPgeyOYtaPFONA9aC0h4QrFkaLZfb86678MK+zLgqDBsDoj50eZHMVcczRjs4sYlv7RG8RIWKb5lB9Kn/8+CkxiiA11cHH1yzLX2SKCmhsak/+P/zYQ1EDvEj33bl9e3Jd62cTI+Qw99KrsWnUMN8hFNeXzoGHA3aec+Li4NFboF8sa6lCPR6Csxsvxw8DJaWCnER5Z0p+nKhXavF/eNHQ0DX47ohycc87UcBABKsYHCHXXe3vK1cFYDWO6rhwM6hxCdJ+/X+VB1akQejL6iBMdUPuadUqBnbprwJM0dWpSSn9uuZZeqe46iZOGIJUo69d8x+ZSvPcBH/dK1Y0LJnoWdgWH51SQg7eYqcwjQW3BOy7ZF02Hn1EhTuhsN7ms8zv3WIeEBDBq0T3Idl+Tmw9iJU9skVYiwygHG2+0XwrLa6y+uiQPwMzrnEr1kuf24XoAqrJTZQiVH3aQF4d94yDreWu2KPRwEAE2FsynHZaUcBXEFbeX0nSxZ7sRcRjJvc7RYOny6N8QFwKDVO7jpRWWYM55kuepBOyZ+7BFYeG+FU1kR+ZfmqyDNkD4D1IPwNh6u9JQxDymfN/aMcQC3WxdvCKquPsAut6dugpGkOFtIe+W3ayc4V/J978P+h1EDFMbFjxRPuXht0K2dBQZCJ0ybISUDqWzhPuep8CdxSU4MvMVfdXh7FLl/BqKJUTT+vM+Pz3XnqCQQmH5TjQ4CK55VHAQAUEtgfkBwIYgtwHkhjmtLw7HNTeJeMfTjATEKcyuKzItSeYxHBmGzQ/+G2otpPCOkVAXJ9mfx7LxrW4joZ0ttTRQJ/wqMUK1IN349LiJoo8y/+FwN4jPNDwIleJG697riqnmLOweFW8spHKLBfnHcyC1pG6EIxFpTqUQ0KHqXD/KXIHKioJNAOVwQ1Gfloxebo/Tdtd00dpHP3gcsAOnV75APCYOjVIlwm2X6ViDeZw6Btdb/Br/+yokcBABU3+eOESLlneGbR5SLiL8wPkoRaZ5X7xFlMTMvsv9yHk26bVdmsubSdbYS1Hy64n0+NnL7C1aLD7aJxOudMjVW5goZbfO2KxBQkCD4HFA284wbaB5vOL7mRilCn6YEs1kiwf22+fBLNUmXDb2p353wrD/ygTDhlki66USvUmd/ZAs9uzAddegEzy7Xn00YysWTu/hegYyZtWFC+X5dhLubWJ7n96y5wjrP7PAOXoQQtFUH9j/rBiP/7RwEAFnL/wYKYuj80mPGtimSbF/E9K7XwjwBz8yHZubmVMTCmwkZBM4h0FR1thnUGiSjqjJT6SfunWCZ/dZDQplrzS00UKcUP399SyM+nNG1br8Za0ZYwWch8nyLHYXSRuxdnrfUUespsOQo1cWSLGf0pV2HIcHoiAAEKwPU6irB5BSoFvB1qKVjgEk+QwAEYAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAABHAQA3pAD/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////AwAAAwAAAwAAAwAAAwAAAwBbwUdBABgAAAHgAACAwAoxAAmBIREAB/SBAAAAAQnwAAAAAUGaJGxDv/6plgAAAwAAAwAAAwAAAwAAAwAAAwAAAwAKCKB0AIhy1ftwLNISWucTFC7xeBcaIzP3oZjZo8uT9hqZVstWGnrPz+vjaA5FuCO+K2w7/o39LygDO7aL+0zSrN90LW7r133x8+f+PEKk8d7pd2fj4RYuMOXOYunzFzRX/4IvR1XsK5WJYwVkOca3yfo7DTvUBP9rgSiTRwEAGQD6CFK1PBC4qYCa+coLVnX+jgODNrau5YJXIekDI4+wUNV+5T5HE4e2t5EGAjn77+kC1Vghmvx8KqPnylVUvsaTofheggxHsPuxn1zQt6nA59UglrRUMn8b4pmrvfqTBSqU949+AcNAI6M/eAqz6r0RG5KNeBhx8R2f0x2kujwHU3pc3rlPb6ZrFM/2HiG97eEIezrvWFG7YAAAAwAAAwAE1KRo1VfbdZQ/tOpNGxFmTcQoFidyD2tHAQAapTTIErUKA2Rc9uIzGJu+oW0uNOxRyl6oJNUNJp5L9TIshNS1CmUKgdCaE3LkLwdE8iUkUnIGfWLiWpWmjzsINYC8dnDaSptB53yJkBu0SsR00oo1PZ0pl4ZzoXGSYQJTPaVCbj6FNqm5wcnUqKTB/rgHdPdnDj0K8asLABeo/n3XCXrDorI+LYSD1FBgmV9O7RZdjfL0NnXOQkiq/ZGirwVV0cUF1aHtZx1yHlAAZKuuu7TqB13CAUcBADuRAP///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////yj/IrOvAEoXDNGy+nrxWN0l8cmuqWYaUJpuM9XgAAADAAADAAKmR0EAPAcQAACJHH4AAAAB4AAAgMAKMQAJSOERAAkQoQAAAAEJ8AAAAAFBnkJ4hf8AAAMAAAMAAAMAAAMAAAMAAAMAAAMAC/BmhyuvLmkCgKTgACEXfOVvHRHdpBEEmTTz9pIZCa2FD0CXukzDCakOHekTpJQSdsfd7a/jjM1/5lBtKCAGQ6zOCSQ6DeKtyw+CugDuuglGipwmvQW+FIDjnZ6HRd0uaSOGy6VB3h9MI1o4nqaCqVwwIgubYZFHAQA9XgD////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////WcZrO6BEiqf8pCxYwlz2mkdUzY/ipM/TIHS4m5xQAAAMAAAMAAA5sVm90p14dlvWgBgY7XQ9KVOJKLtaMAN5KiffVQtNuzW5DfL+RewZpAAADAAADAAAQMUdBAB4AAAHgAACAgAUhAAkswQAAAAEJ8AAAAAEBnmF0Qr8AAAMAAAMAAAMAAAMAAAMAAAMAAAMAABJfBjP2+4+W7ZybyT130+Ma4WSqICfd/dS4YtjrLlmh5VBlfrtwJqdN1PBTYDkwGOOONqZQeFN6lLGJoDzvuh3kv1aDBLqug+JhvrSeu5ebnvcrtQzb2REwJL3h9mvtkr0WfDu4AAADAAADAAs32Y4C/6Ns79oCGj6oqLltY3T4I0/QRwEAP5wA//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////8BeoWLRnKQmVgO/RBoBfcK85AAAAMAAAMACFhHQQAwBxAAAJcsfgAAAAHgAACAwAoxAAllAREACUjhAAAAAQnwAAAAAQGeY2pCvwAAAwAAAwAAAwAAAwAAAwAAAwAAAwAAEmDKfLGXsvBBQPNYXlEd6WueJ4deApfcHESlG+7V6u0AiWQqJvNZYM+3Js3Lj9Ldc9yYIHqruVwfMtCYGlX3wMavI/DrhMuJw+RreIF8SKsJD8CMccAAAAMAAAMACrFZOBgEqaP/8EyWsAHV6CgcAgfyox/roEcBADGuAP//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////AAADAAADAHTBR0EAEgAAAeAAAIDACjEACfGhEQAJZQEAAAABCfAAAAABQZpoSahBaJlMCHf//qmWAAADAAADAAADAAADAAADAAADAAADAAALf8A2bry6lUyIAQGNFfVK2Cd7h4qDqmqpvmXfkfTwo2Ab79AHhajxJ4MPWIgAAA84xLRIx7I2CrWjWe96OvgkzgS9mtvhuxdzAgpuIOJI3DEY9mviDDZz8XSAAAADAAADAB7AZkj9AAHHGvk+Pzlku8UkWa5HAQAzogD//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////6HjAkbF/gsWuvw4QAAAAwAAAwAccUdBADQHEAAApTx+AAAAAeAAAIDACjEACblhEQAJgSEAAAABCfAAAAABQZ6GRREsL/8AAAMAAAMAAAMAAAMAAAMAAAMAAAMAAA3URJB/3lMHSmOd0GYZnfpoR80WdqxlyHzPX+V81VUMeXIGrRgq5agd+ACdjoGI036yQ/rmpGw0CmMBrKwpI+nwFo3SP0s1rI2yHBZaiPJjSUgw33rBkxXcq55kfLf2sAAAAwAAAwACBWolidWDnIeQAAADRwEANbEA//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////8AAAMADulHQQA2NAD///////////////////////////////////////////////////////////////////8AAAHgAACAgAUhAAmdQQAAAAEJ8AAAAAEBnqV0Qr8AAAMAAAMAAAMAAAMAAAMAAAMAAAMAABJXNihCnx11JUosH2hBE53O/YN+GPHqcnJiQBIf3maTAAj5iRt+7GYUKBAU9iCXTiouCjGYgAAAAwAAAwA9p4HQBg2cAAADAAADAADGgUdBADc4EAAAs0x+AP////////////////////////////////////////////////////////////////8AAAHgAACAwAoxAAnVgREACblhAAAAAQnwAAAAAQGep2pCvwAAAwAAAwAAAwAAAwAAAwAAAwAAAwAAAwBR6/L83y+ZevtMZ0FW4lp8qV7fVXQAhLAWlS6mDxvpaSUgChorvgTMXtxJEIAAAAMAAAMACqFCAAADAAADAAADAAz4R0EAOCsA////////////////////////////////////////////////////////AAAB4AAAgMAKMQALYiERAAnVgQAAAAEJ8AAAAAFBmqxJqEFsmUwId//+qZYAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAApQTq0hABLvkcWCYrAaRRPNDrECJGlF/11BYvG9+JJ9Y86nxnmQzPxtAAe1UgOsXAAADAAADAAADAAADAAADAAADAAADA/JHQQA5JhAAAMFcfgD/////////////////////////////////////////AAAB4AAAgMAKMQALKeERAAnxoQAAAAEJ8AAAAAFBnspFFSwv/wAAAwAAAwAAAwAAAwAAAwAAAwAAAwAADdRFmvrVE0KXDOGwWddlwYa1foib7tXZKmkua6R4APb4b8+tXwdSNNqgf2IVNwGTohgQAcMvp6SiQxpiQym4AAADAAADAANUNUAAAAMAAAMAAAMBN0dBADo8AP//////////////////////////////////////////////////////////////////////////////AAAB4AAAgIAFIQALDcEAAAABCfAAAAABAZ7pdEK/AAADAAADAAADAAADAAADAAADAAADAAADAFHTAfujIUaaLSuklb9y0/so9AEtQAqkAxOviALQZ5jNt/iOkABrCOZ4md0iUnFwAAADAAADAALwckAAAAMAAAMAAATcR0EAO0IQAADPbH4A//////////////////////////////////////////////////////////////////////////////8AAAHgAACAwAoxAAtGAREACynhAAAAAQnwAAAAAQGe62pCvwAAAwAAAwAAAwAAAwAAAwAAAwAAAwAAAwBR6/L83y+WryR9gmVKPGbIhJpkgAFgHCej3gB6rAHPgHHAAAADAAADAAAYIV0AAAMAAAMAAAMABnxHQQA8UQD//////////////////////////////////////////////////////////////////////////////////////////////////////////wAAAeAAAIDACjEAC9KhEQALRgEAAAABCfAAAAABQZrwSahBbJlMCG///qeEAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAAZ8UdBAD00EAAA3Xx+AP///////////////////////////////////////////////////////////wAAAeAAAIDACjEAC5phEQALYiEAAAABCfAAAAABQZ8ORRUsL/8AAAMAAAMAAAMAAAMAAAMAAAMAAAMAAA3URZr61RNClwzhI2ZXdRHYLZWc1yTgKRhTIXBNABHQKIIyYNyc+AaEn1jhATEAAAMAAAMAAAMAckkIAAADAAADAAADAEbBR0EAPkYA////////////////////////////////////////////////////////////////////////////////////////////AAAB4AAAgIAFIQALfkEAAAABCfAAAAABAZ8tdEK/AAADAAADAAADAAADAAADAAADAAADAAADAFHTAfujIUAYRtY0f/43cIs2OjxACR2hMR1QBGYX+34JGAAAAwAAAwAAAwKEJ6AAAAMAAAMAAAMA3oFHQQA/QhAAAOuMfgD//////////////////////////////////////////////////////////////////////////////wAAAeAAAIDACjEAC7aBEQALmmEAAAABCfAAAAABAZ8vakK/AAADAAADAAADAAADAAADAAADAAADAAADAFHr8vzfL5avJH2CZUo8ZsiEmmSAAWAcJ6PeAHqsAc+AccAAAAMAAAMAABghXQAAAwAAAwAAAwAGfEdBADBRAP//////////////////////////////////////////////////////////////////////////////////////////////////////////AAAB4AAAgMAKMQANQyERAAu2gQAAAAEJ8AAAAAFBmzRJqEFsmUwIZ//+nhAAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAGVAR0EAMTQQAAD5nH4A////////////////////////////////////////////////////////////AAAB4AAAgMAKMQANCuERAAvSoQAAAAEJ8AAAAAFBn1JFFSwv/wAAAwAAAwAAAwAAAwAAAwAAAwAAAwAADdRFmvrVE0KXDOEjZld1EdgtlZzXJOApGFMhcE0AEdAogjJg3Jz4BoSfWOEBMQAAAwAAAwAAAwBySQgAAAMAAAMAAAMARsFHQQAyRgD///////////////////////////////////////////////////////////////////////////////////////////8AAAHgAACAgAUhAAvuwQAAAAEJ8AAAAAEBn3F0Qr8AAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAUdMB+6MhQBhG1jR//jdwizY6PEAJHaExHVAEZhf7fgkYAAADAAADAAADAoQnoAAAAwAAAwAAAwDegEdBADNCEAABB6x+AP//////////////////////////////////////////////////////////////////////////////AAAB4AAAgMAKMQANJwERAA0K4QAAAAEJ8AAAAAEBn3NqQr8AAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAUevy/N8vlq8kfYJlSjxmyISaZIABYBwno94AeqwBz4BxwAAAAwAAAwAAGCFdAAADAAADAAADAAZ8R0EANFIA////////////////////////////////////////////////////////////////////////////////////////////////////////////AAAB4AAAgMAKMQANs6ERAA0nAQAAAAEJ8AAAAAFBm3hJqEFsmUwIV//+OEAAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAYtHQQA1NBAAARW8fgD///////////////////////////////////////////////////////////8AAAHgAACAwAoxAA17YREADUMhAAAAAQnwAAAAAUGflkUVLC//AAADAAADAAADAAADAAADAAADAAADAAAN1EWa+tUTQpcM4SNmV3UR2C2VnNck4CkYUyFwTQAR0CiCMmDcnPgGhJ9Y4QExAAADAAADAAADAHJJCAAAAwAAAwAAAwBGwEdBADZGAP///////////////////////////////////////////////////////////////////////////////////////////wAAAeAAAICABSEADV9BAAAAAQnwAAAAAQGftXRCvwAAAwAAAwAAAwAAAwAAAwAAAwAAAwAAAwBR0wH7oyFAGEbWNH/+N3CLNjo8QAkdoTEdUARmF/t+CRgAAAMAAAMAAAMChCegAAADAAADAAADAN6BR0EAN0IQAAEjzH4A//////////////////////////////////////////////////////////////////////////////8AAAHgAACAwAoxAA2XgREADXthAAAAAQnwAAAAAQGft2pCvwAAAwAAAwAAAwAAAwAAAwAAAwAAAwAAAwBR6/L83y+WryR9gmVKPGbIhJpkgAFgHCej3gB6rAHPgHHAAAADAAADAAAYIV0AAAMAAAMAAAMABn0=" diff --git a/src/webserver.go b/src/webserver.go index 2754c0c..45dc383 100644 --- a/src/webserver.go +++ b/src/webserver.go @@ -458,6 +458,7 @@ func WS(w http.ResponseWriter, r *http.Request) { var authenticationUpdate = Settings.AuthenticationWEB var previousTLSMode = Settings.TLSMode var previousHostIP = Settings.HostIP + var previousHostName = Settings.HostName var previousStoreBufferInRAM = Settings.StoreBufferInRAM var previousClearXMLTVCache = Settings.ClearXMLTVCache @@ -488,6 +489,16 @@ func WS(w http.ResponseWriter, r *http.Request) { restartWebserver <- true } + if Settings.HostName != previousHostName { + Settings.HostIP = previousHostName + showInfo("Web server:" + fmt.Sprintf("Changing host name to %s", Settings.HostName)) + + reinitialize() + + response.OpenLink = System.URLBase + "/web/" + restartWebserver <- true + } + if Settings.StoreBufferInRAM != previousStoreBufferInRAM { initBufferVFS(Settings.StoreBufferInRAM) } From cc184746cd24048c47a0c1b2cdf1b6fc46d1144a Mon Sep 17 00:00:00 2001 From: Senex Crenshaw Date: Tue, 23 Aug 2022 20:33:46 +0000 Subject: [PATCH 132/189] Readme fixes --- README.md | 7 ++----- html/img/BC-QR.jpg | Bin 29877 -> 0 bytes 2 files changed, 2 insertions(+), 5 deletions(-) delete mode 100644 html/img/BC-QR.jpg diff --git a/README.md b/README.md index bb915b8..5ac1eaa 100644 --- a/README.md +++ b/README.md @@ -11,11 +11,6 @@ Documentation for setup and configuration is [here](https://github.com/xteve-project/xTeVe-Documentation/blob/master/en/configuration.md). -#### Donation - -* **Bitcoin:** 1c1iCe4CJPfNUXtqxKBbW2Qd2EtqRPWme -![Bitcoin](html/img/BC-QR.jpg "Bitcoin - xTeVe") - --- ## Features @@ -69,6 +64,8 @@ Certificate and it's private key should be placed in xTeVe config directory like If the certificate is signed by a certificate authority (CA), it should be the concatenation of the server's certificate, any intermediates, and the CA's certificate. +This will also enable copy to clipboad by clicking the green links at the header. (DVR IP,M3U URL,XEPG URL) + --- ## Docker diff --git a/html/img/BC-QR.jpg b/html/img/BC-QR.jpg deleted file mode 100644 index 25d79aa20fd01545aaf3e7326a60351cd329cdd5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 29877 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 a>wVwc@FV|4s{Z%ir|6`5{rkV&^S=PHnA6q( From 0a2d0a1f96daa6a7b06ef1fc6f7d2acf907d9b06 Mon Sep 17 00:00:00 2001 From: Senex Crenshaw Date: Tue, 23 Aug 2022 20:47:39 +0000 Subject: [PATCH 133/189] Updated Readme --- README.md | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/README.md b/README.md index 5ac1eaa..e54836f 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,5 @@
              - xTeVe + xTeVe

              @@ -42,7 +42,7 @@ Documentation for setup and configuration is [here](https://github.com/xteve-pro ## Downloads -* See [releases page](https://github.com/SCP002/xTeVe/releases) +* See [releases page](https://github.com/senexcrenshaw/xTeVe/releases) --- @@ -75,15 +75,15 @@ This will also enable copy to clipboad by clicking the green links at the header Pull from dockerhub: ```sh -docker pull scp002/xteve:latest +docker pull senexcrenshaw/xteve:latest ``` **OR** build your own image based on Dockerfile from this repository: ```sh -git clone https://github.com/SCP002/xTeVe.git +git clone https://github.com/SenexCrenshaw/xTeVe.git cd xTeVe -docker build --tag scp002/xteve . +docker build --tag senexcrenshaw/xteve . ``` ### Create a container @@ -93,7 +93,7 @@ docker create \ --tty \ --publish 34400:34400 \ --name xteve \ - scp002/xteve + senexcrenshaw/xteve ``` With the specific timezone, ip and port: @@ -105,7 +105,7 @@ docker create \ --env XTEVE_PORT=12345 \ --publish 192.168.88.218:12345:12345 \ --name xteve \ - scp002/xteve + senexcrenshaw/xteve ``` ### Start a container @@ -149,8 +149,8 @@ With the command line argument `branch` the Git Branch can be changed. xTeVe mus xteve -branch beta ... -[xTeVe] GitHub: https://github.com/SCP002 -[xTeVe] Git Branch: beta [SCP002] +[xTeVe] GitHub: https://github.com/senexcrenshaw +[xTeVe] Git Branch: beta [senexcrenshaw] ... ``` @@ -160,8 +160,8 @@ xteve -branch beta xteve -branch master ... -[xTeVe] GitHub: https://github.com/SCP002 -[xTeVe] Git Branch: master [SCP002] +[xTeVe] GitHub: https://github.com/senexcrenshaw +[xTeVe] Git Branch: master [senexcrenshaw] ... ``` @@ -189,7 +189,7 @@ When the branch is changed, an update is only performed if there is a new versio #### 1. Download source code ```sh -git clone https://github.com/SCP002/xTeVe.git +git clone https://github.com/senexcrenshaw/xTeVe.git ``` #### 2. Install dependencies @@ -257,7 +257,7 @@ When creating a fork, the xTeVe GitHub account must be changed from the source c xteve.go - Line: 29 ```go -var GitHub = GitHubStruct{Branch: "master", User: "SCP002", Repo: "xTeVe", Update: true} +var GitHub = GitHubStruct{Branch: "master", User: "senexcrenshaw", Repo: "xTeVe", Update: true} // Branch: GitHub Branch // User: GitHub Username From 06f7272cc81c812677f9ec0d652b94b96e0fd532 Mon Sep 17 00:00:00 2001 From: Senex Crenshaw Date: Wed, 24 Aug 2022 12:17:55 +0000 Subject: [PATCH 134/189] Changed master branch to main --- README.md | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/README.md b/README.md index e54836f..f0b0144 100644 --- a/README.md +++ b/README.md @@ -9,7 +9,7 @@ ### This is a fork of , all credit goes to the original author -Documentation for setup and configuration is [here](https://github.com/xteve-project/xTeVe-Documentation/blob/master/en/configuration.md). +Documentation for setup and configuration is [here](https://github.com/xteve-project/xTeVe-Documentation/blob/main/en/configuration.md). --- @@ -137,13 +137,13 @@ docker stop xteve ### xTeVe Beta branch -New features and bug fixes are only available in beta branch. Only after successful testing are they are merged into the master branch. +New features and bug fixes are only available in beta branch. Only after successful testing are they are merged into the main branch. **It is not recommended to use the beta version in a production system.** With the command line argument `branch` the Git Branch can be changed. xTeVe must be started via the terminal. -#### Switch from master to beta branch +#### Switch from main to beta branch ```text xteve -branch beta @@ -154,14 +154,14 @@ xteve -branch beta ... ``` -#### Switch from beta to master branch +#### Switch from beta to main branch ```text -xteve -branch master +xteve -branch main ... [xTeVe] GitHub: https://github.com/senexcrenshaw -[xTeVe] Git Branch: master [senexcrenshaw] +[xTeVe] Git Branch: main [senexcrenshaw] ... ``` @@ -232,7 +232,7 @@ xteve -dev :exclamation: To not to get CreateFile error, do not forget to switch your binary to "regular" mode after runnning with `-dev` flag: -`xteve -branch master` or `xteve -branch beta` +`xteve -branch main` or `xteve -branch beta` #### 4. Build xTeVe @@ -257,7 +257,7 @@ When creating a fork, the xTeVe GitHub account must be changed from the source c xteve.go - Line: 29 ```go -var GitHub = GitHubStruct{Branch: "master", User: "senexcrenshaw", Repo: "xTeVe", Update: true} +var GitHub = GitHubStruct{Branch: "main", User: "senexcrenshaw", Repo: "xTeVe", Update: true} // Branch: GitHub Branch // User: GitHub Username From 72480de62d46c29a18573dab33612095e0f3211f Mon Sep 17 00:00:00 2001 From: Senex Crenshaw Date: Wed, 24 Aug 2022 12:29:35 +0000 Subject: [PATCH 135/189] Convert from label-schema to OCI annotations --- Dockerfile | 24 +++++++++++++----------- 1 file changed, 13 insertions(+), 11 deletions(-) diff --git a/Dockerfile b/Dockerfile index 2e4323f..06bb164 100644 --- a/Dockerfile +++ b/Dockerfile @@ -23,22 +23,22 @@ RUN go build xteve.go # ----------------------------------------------------------------------------- # Base image is a latest stable debian -FROM debian +FROM alpine:latest ARG BUILD_DATE ARG VCS_REF ARG XTEVE_PORT=34400 ARG XTEVE_VERSION -LABEL org.label-schema.build-date="{$BUILD_DATE}" \ - org.label-schema.name="xTeVe" \ - org.label-schema.description="Dockerized fork of xTeVe by SenexCrenshaw" \ - org.label-schema.url="https://hub.docker.com/r/SenexCrenshaw/xteve/" \ - org.label-schema.vcs-ref="{$VCS_REF}" \ - org.label-schema.vcs-url="https://github.com/SenexCrenshaw/xTeVe" \ - org.label-schema.vendor="SenexCrenshaw" \ - org.label-schema.version="{$XTEVE_VERSION}" \ - org.label-schema.schema-version="1.0" +LABEL org.opencontainers.image.created="{$BUILD_DATE}" \ + org.opencontainers.image.url="https://hub.docker.com/r/SenexCrenshaw/xteve/" \ + org.opencontainers.image.source="https://github.com/SenexCrenshaw/xTeVe" \ + org.opencontainers.image.version="{$XTEVE_VERSION}" \ + org.opencontainers.image.revision="{$VCS_REF}" \ + org.opencontainers.image.vendor="SenexCrenshaw" \ + org.opencontainers.image.title="xTeVe" \ + org.opencontainers.image.description="Dockerized fork of xTeVe by SenexCrenshaw" \ + org.opencontainers.image.authors="SenexCrenshaw SenexCrenshaw@gmail.com" ENV XTEVE_BIN=/home/xteve/bin ENV XTEVE_CONF=/home/xteve/conf @@ -52,7 +52,9 @@ ENV PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:$XTEVE_BIN WORKDIR $XTEVE_HOME # Update package lists -RUN apt-get update +RUN apk update +RUN apk upgrade +RUN apk add --no-cache ca-certificates # Install CA certificates RUN apt-get install --yes ca-certificates From 4afea963c98e0f8d94d364a0a01b0917846f150e Mon Sep 17 00:00:00 2001 From: Senex Crenshaw Date: Wed, 24 Aug 2022 15:25:01 +0000 Subject: [PATCH 136/189] Converted to docker alpine. Saves 800MB --- Dockerfile | 23 ++++++++++++++++++----- 1 file changed, 18 insertions(+), 5 deletions(-) diff --git a/Dockerfile b/Dockerfile index 06bb164..07c6617 100644 --- a/Dockerfile +++ b/Dockerfile @@ -9,7 +9,7 @@ FROM golang:bullseye AS builder # Download the source code # Uncomment the below line to force git pull (no cache) -ADD "https://www.random.org/cgi-bin/randbyte?nbytes=10&format=h" skipcache +#ADD "https://www.random.org/cgi-bin/randbyte?nbytes=10&format=h" skipcache RUN git clone https://github.com/SenexCrenshaw/xTeVe.git /src WORKDIR /src @@ -54,13 +54,21 @@ WORKDIR $XTEVE_HOME # Update package lists RUN apk update RUN apk upgrade -RUN apk add --no-cache ca-certificates # Install CA certificates -RUN apt-get install --yes ca-certificates +RUN apk add --no-cache ca-certificates + +# Timezone (TZ) +RUN apk update && apk add --no-cache tzdata +ENV TZ=America/New_York +RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone -# Add VLC and FFMPEG support -RUN apt-get install --yes vlc-bin ffmpeg +# Add ffmpeg and vlc +RUN apk add ffmpeg +RUN apk add vlc + +# Creat bin dir +RUN mkdir $XTEVE_BIN # Copy built binary from builder image COPY --from=builder [ "/src/xteve", "${XTEVE_BIN}/" ] @@ -77,9 +85,14 @@ RUN chmod a+rwX $XTEVE_CONF RUN mkdir $XTEVE_TEMP RUN chmod a+rwX $XTEVE_TEMP +RUN mkdir /lib64 && ln -s /lib/libc.musl-x86_64.so.1 /lib64/ld-linux-x86-64.so.2 + # Configure container volume mappings VOLUME $XTEVE_CONF VOLUME $XTEVE_TEMP +# Expose Port +EXPOSE 34400 + # Run the xTeVe executable ENTRYPOINT ${XTEVE_BIN}/xteve -port=${XTEVE_PORT} -config=${XTEVE_CONF} From b177632b4eced9b66cea3bdd8b69d0dc84b687a8 Mon Sep 17 00:00:00 2001 From: Senex Crenshaw Date: Wed, 24 Aug 2022 16:13:06 +0000 Subject: [PATCH 137/189] Doc cleanup --- html/lang/en.json | 2 +- xteve.go | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/html/lang/en.json b/html/lang/en.json index 61aa45f..152a1bc 100644 --- a/html/lang/en.json +++ b/html/lang/en.json @@ -366,7 +366,7 @@ }, "tlsMode": { "title": "TLS (HTTPS) mode", - "description": "Changes web server protocol to HTTPS.
              For details, see https://github.com/SCP002/xTeVe#tls-mode" + "description": "Changes web server protocol to HTTPS.
              For details, see https://github.com/SenexCrenshaw/xTeVe#tls-mode" }, "filesUpdate": { "title": "Updates all files at startup", diff --git a/xteve.go b/xteve.go index 4550074..c10cfa3 100644 --- a/xteve.go +++ b/xteve.go @@ -26,7 +26,7 @@ type GitHubStruct struct { // GitHub : GitHub Account // If you want to fork this project, enter your Github account here. This prevents a newer version of xTeVe from updating your version. -var GitHub = GitHubStruct{Branch: "master", User: "SCP002", Repo: "xTeVe", Update: false} +var GitHub = GitHubStruct{Branch: "main", User: "SenexCrenshaw", Repo: "xTeVe", Update: false} // Branch: GitHub Branch // User: GitHub Username From 57535d49f493ed796f67004a56a89d4bd39ef991 Mon Sep 17 00:00:00 2001 From: SenexCrenshaw <35600301+SenexCrenshaw@users.noreply.github.com> Date: Wed, 24 Aug 2022 14:01:31 -0400 Subject: [PATCH 138/189] Create go.yml --- .github/workflows/go.yml | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 .github/workflows/go.yml diff --git a/.github/workflows/go.yml b/.github/workflows/go.yml new file mode 100644 index 0000000..b61e411 --- /dev/null +++ b/.github/workflows/go.yml @@ -0,0 +1,25 @@ +name: Go + +on: + push: + branches: [ "main" ] + pull_request: + branches: [ "main" ] + +jobs: + + build: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + + - name: Set up Go + uses: actions/setup-go@v3 + with: + go-version: 1.19 + + - name: Build + run: go build -v ./... + + - name: Test + run: go test -v ./... From 02dcc222c3b407bae3f7c5b7bfe4a5f25ec99caa Mon Sep 17 00:00:00 2001 From: SenexCrenshaw <35600301+SenexCrenshaw@users.noreply.github.com> Date: Wed, 24 Aug 2022 14:04:28 -0400 Subject: [PATCH 139/189] Update go.yml --- .github/workflows/go.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/go.yml b/.github/workflows/go.yml index b61e411..f7aefc8 100644 --- a/.github/workflows/go.yml +++ b/.github/workflows/go.yml @@ -5,6 +5,7 @@ on: branches: [ "main" ] pull_request: branches: [ "main" ] + workflow_dispatch: jobs: From 8e803c26c00e25ce3ee098ce83ad678aebbeae64 Mon Sep 17 00:00:00 2001 From: SenexCrenshaw <35600301+SenexCrenshaw@users.noreply.github.com> Date: Wed, 24 Aug 2022 14:11:49 -0400 Subject: [PATCH 140/189] Update go.yml --- .github/workflows/go.yml | 3 --- 1 file changed, 3 deletions(-) diff --git a/.github/workflows/go.yml b/.github/workflows/go.yml index f7aefc8..80a3ab9 100644 --- a/.github/workflows/go.yml +++ b/.github/workflows/go.yml @@ -21,6 +21,3 @@ jobs: - name: Build run: go build -v ./... - - - name: Test - run: go test -v ./... From 9700b004f3d6a608641b95a4b7f2e7e2c67190fa Mon Sep 17 00:00:00 2001 From: SenexCrenshaw <35600301+SenexCrenshaw@users.noreply.github.com> Date: Wed, 24 Aug 2022 14:25:25 -0400 Subject: [PATCH 141/189] Create go-ossf-slsa3-publish.yml --- .github/workflows/go-ossf-slsa3-publish.yml | 62 +++++++++++++++++++++ 1 file changed, 62 insertions(+) create mode 100644 .github/workflows/go-ossf-slsa3-publish.yml diff --git a/.github/workflows/go-ossf-slsa3-publish.yml b/.github/workflows/go-ossf-slsa3-publish.yml new file mode 100644 index 0000000..142b7f7 --- /dev/null +++ b/.github/workflows/go-ossf-slsa3-publish.yml @@ -0,0 +1,62 @@ +# This workflow uses actions that are not certified by GitHub. +# They are provided by a third-party and are governed by +# separate terms of service, privacy policy, and support +# documentation. + +# This workflow lets you compile your Go project using a SLSA3 compliant builder. +# This workflow will generate a so-called "provenance" file describing the steps +# that were performed to generate the final binary. +# The project is an initiative of the OpenSSF (openssf.org) and is developed at +# https://github.com/slsa-framework/slsa-github-generator. +# The provenance file can be verified using https://github.com/slsa-framework/slsa-verifier. +# For more information about SLSA and how it improves the supply-chain, visit slsa.dev. + +name: SLSA Go releaser +on: + workflow_dispatch: + push: + tags: + - "*" + release: + types: [created] + +permissions: read-all + +jobs: + # Generate ldflags dynamically. + # Optional: only needed for ldflags. + args: + runs-on: ubuntu-latest + outputs: + commit-date: ${{ steps.ldflags.outputs.commit-date }} + commit: ${{ steps.ldflags.outputs.commit }} + version: ${{ steps.ldflags.outputs.version }} + tree-state: ${{ steps.ldflags.outputs.tree-state }} + steps: + - id: checkout + uses: actions/checkout@ec3a7ce113134d7a93b817d10a8272cb61118579 # tag=v2.3.4 + with: + fetch-depth: 0 + - id: ldflags + run: | + echo "::set-output name=commit-date::$(git log --date=iso8601-strict -1 --pretty=%ct)" + echo "::set-output name=commit::$GITHUB_SHA" + echo "::set-output name=version::$(git describe --tags --always --dirty | cut -c2-)" + echo "::set-output name=tree-state::$(if git diff --quiet; then echo "clean"; else echo "dirty"; fi)" + + # ======================================================================================================================================== + # Prerequesite: Create a .slsa-goreleaser.yml in the root directory of your project. + # See format in https://github.com/slsa-framework/slsa-github-generator/blob/main/internal/builders/go/README.md#configuration-file + #========================================================================================================================================= + build: + permissions: + id-token: write # To sign. + contents: write # To upload release assets. + actions: read # To read workflow path. + uses: slsa-framework/slsa-github-generator/.github/workflows/builder_go_slsa3.yml@v1.2.0 + with: + go-version: 1.19 + evaluated-envs: "COMMIT_DATE:${{needs.args.outputs.commit-date}}, COMMIT:${{needs.args.outputs.commit}}, VERSION:${{needs.args.outputs.version}}, TREE_STATE:${{needs.args.outputs.tree-state}}" + # ============================================================================================================= + # Optional: For more options, see https://github.com/slsa-framework/slsa-github-generator#golang-projects + # ============================================================================================================= From 5c82e1537943416c4b813a461d68680549fa098f Mon Sep 17 00:00:00 2001 From: Senex Crenshaw Date: Wed, 24 Aug 2022 18:21:04 +0000 Subject: [PATCH 142/189] Cleanup docker-compose --- docker-compose.yml | 5 ----- 1 file changed, 5 deletions(-) diff --git a/docker-compose.yml b/docker-compose.yml index 1ab975d..ef104b4 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -8,11 +8,6 @@ services: volumes: - /opt/configs/xteve/config:/home/xteve/conf - /tmp/xteve:/tmp/xteve:rw - # deploy: - # resources: - # reservations: - # devices: - # - capabilities: [ gpu ] ports: - 34400:34400 restart: unless-stopped From 431169de507e7ff481d62989e837436624013e35 Mon Sep 17 00:00:00 2001 From: Senex Crenshaw Date: Wed, 24 Aug 2022 18:28:37 +0000 Subject: [PATCH 143/189] Added .slsa-goreleaser --- .slsa-goreleaser.yml | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 .slsa-goreleaser.yml diff --git a/.slsa-goreleaser.yml b/.slsa-goreleaser.yml new file mode 100644 index 0000000..ed9e3fd --- /dev/null +++ b/.slsa-goreleaser.yml @@ -0,0 +1,36 @@ +# Version for this file. +version: 1 + +# (Optional) List of env variables used during compilation. +# env: +# - GO111MODULE=on +# - CGO_ENABLED=0 + +# (Optional) Flags for the compiler. +# flags: +# - -trimpath +# - -tags=netgo + +# The OS to compile for. `GOOS` env variable will be set to this value. +goos: linux + +# The architecture to compile for. `GOARCH` env variable will be set to this value. +goarch: amd64 + +# (Optional) Entrypoint to compile. (Optional) +# main: ./path/to/main.go + +# (Optional) Working directory. (default: root of the project) +# dir: ./relative/path/to/dir + +# Binary output name. +# {{ .Os }} will be replaced by goos field in the config file. +# {{ .Arch }} will be replaced by goarch field in the config file. +binary: xteve-{{ .Os }}-{{ .Arch }} + +# (Optional) ldflags generated dynamically in the workflow, and set as the `evaluated-envs` input variables in the workflow. +ldflags: + - "-X main.Version={{ .Env.VERSION }}" + - "-X main.Commit={{ .Env.COMMIT }}" + - "-X main.CommitDate={{ .Env.COMMIT_DATE }}" + - "-X main.TreeState={{ .Env.TREE_STATE }}" \ No newline at end of file From d21728840811646937bf40fafce81c96f62e1a58 Mon Sep 17 00:00:00 2001 From: SenexCrenshaw <35600301+SenexCrenshaw@users.noreply.github.com> Date: Wed, 24 Aug 2022 14:47:45 -0400 Subject: [PATCH 144/189] Update go-ossf-slsa3-publish.yml --- .github/workflows/go-ossf-slsa3-publish.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/go-ossf-slsa3-publish.yml b/.github/workflows/go-ossf-slsa3-publish.yml index 142b7f7..67cc6f8 100644 --- a/.github/workflows/go-ossf-slsa3-publish.yml +++ b/.github/workflows/go-ossf-slsa3-publish.yml @@ -56,6 +56,7 @@ jobs: uses: slsa-framework/slsa-github-generator/.github/workflows/builder_go_slsa3.yml@v1.2.0 with: go-version: 1.19 + upload-assets: true evaluated-envs: "COMMIT_DATE:${{needs.args.outputs.commit-date}}, COMMIT:${{needs.args.outputs.commit}}, VERSION:${{needs.args.outputs.version}}, TREE_STATE:${{needs.args.outputs.tree-state}}" # ============================================================================================================= # Optional: For more options, see https://github.com/slsa-framework/slsa-github-generator#golang-projects From 153737c76af0755cdce8b797d80a9f356255f196 Mon Sep 17 00:00:00 2001 From: SenexCrenshaw <35600301+SenexCrenshaw@users.noreply.github.com> Date: Wed, 24 Aug 2022 15:06:53 -0400 Subject: [PATCH 145/189] Create docker-image.yml --- .github/workflows/docker-image.yml | 34 ++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 .github/workflows/docker-image.yml diff --git a/.github/workflows/docker-image.yml b/.github/workflows/docker-image.yml new file mode 100644 index 0000000..dcfa917 --- /dev/null +++ b/.github/workflows/docker-image.yml @@ -0,0 +1,34 @@ +name: Publish Docker image + +on: + workflow_dispatch: + #release: + #types: [published] + +jobs: + push_to_registry: + name: Push Docker image to Docker Hub + runs-on: ubuntu-latest + steps: + - name: Check out the repo + uses: actions/checkout@v3 + + - name: Log in to Docker Hub + uses: docker/login-action@f054a8b539a109f9f41c372932f1ae047eff08c9 + with: + username: ${{ secrets.DOCKER_USERNAME }} + password: ${{ secrets.DOCKER_PASSWORD }} + + - name: Extract metadata (tags, labels) for Docker + id: meta + uses: docker/metadata-action@98669ae865ea3cffbcbaa878cf57c20bbf1c6c38 + with: + images: senexcrenshaw/xteve + + - name: Build and push Docker image + uses: docker/build-push-action@ad44023a93711e3deb337508980b4b5e9bcdc5dc + with: + context: . + push: true + tags: ${{ steps.meta.outputs.tags }} + labels: ${{ steps.meta.outputs.labels }} From e042b858b63b512731dcaf9c4c1c5a743163e5de Mon Sep 17 00:00:00 2001 From: SenexCrenshaw <35600301+SenexCrenshaw@users.noreply.github.com> Date: Wed, 24 Aug 2022 15:13:17 -0400 Subject: [PATCH 146/189] Update docker-image.yml --- .github/workflows/docker-image.yml | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/.github/workflows/docker-image.yml b/.github/workflows/docker-image.yml index dcfa917..2be692a 100644 --- a/.github/workflows/docker-image.yml +++ b/.github/workflows/docker-image.yml @@ -13,6 +13,10 @@ jobs: - name: Check out the repo uses: actions/checkout@v3 + - name: Extract latest tag + run: | + GIT_TAG=$GITHUB_REF_NAME + - name: Log in to Docker Hub uses: docker/login-action@f054a8b539a109f9f41c372932f1ae047eff08c9 with: @@ -30,5 +34,6 @@ jobs: with: context: . push: true - tags: ${{ steps.meta.outputs.tags }} + version: ${{ steps.prep.outputs.version }} + tags: $GIT_TAG labels: ${{ steps.meta.outputs.labels }} From 2a329ae04a46114e84450dc991b8cc4ed67815bb Mon Sep 17 00:00:00 2001 From: SenexCrenshaw <35600301+SenexCrenshaw@users.noreply.github.com> Date: Wed, 24 Aug 2022 15:20:48 -0400 Subject: [PATCH 147/189] Create main.yml --- .github/workflows/main.yml | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) create mode 100644 .github/workflows/main.yml diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml new file mode 100644 index 0000000..496311e --- /dev/null +++ b/.github/workflows/main.yml @@ -0,0 +1,21 @@ +name: Publish to Registry +on: + #push: + #branches: + # - main + #schedule: + # - cron: '0 2 * * 0' # Weekly on Sundays at 02:00 + workflow_dispatch: +jobs: + update: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + - name: Publish to Registry + uses: elgohr/Publish-Docker-Github-Action@v4 + with: + name: myDocker/repository + username: ${{ secrets.DOCKER_USERNAME }} + password: ${{ secrets.DOCKER_PASSWORD }} + cache: ${{ github.event_name != 'schedule' }} + tag_semver: true From c0a4c580d2bbfa9576305bbab1a5832a88162212 Mon Sep 17 00:00:00 2001 From: SenexCrenshaw <35600301+SenexCrenshaw@users.noreply.github.com> Date: Wed, 24 Aug 2022 15:23:38 -0400 Subject: [PATCH 148/189] Update main.yml --- .github/workflows/main.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 496311e..9899898 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -11,10 +11,10 @@ jobs: runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 - - name: Publish to Registry + - name: Publish to Docker Registry uses: elgohr/Publish-Docker-Github-Action@v4 with: - name: myDocker/repository + name: senexcrenshaw/xteve username: ${{ secrets.DOCKER_USERNAME }} password: ${{ secrets.DOCKER_PASSWORD }} cache: ${{ github.event_name != 'schedule' }} From 37af397c32f302a626bb99b0a4e4dac31ada2fc9 Mon Sep 17 00:00:00 2001 From: Senex Crenshaw Date: Wed, 24 Aug 2022 19:24:16 +0000 Subject: [PATCH 149/189] GitHub Action cleanup --- .github/workflows/docker-image.yml | 39 ------------------------------ 1 file changed, 39 deletions(-) delete mode 100644 .github/workflows/docker-image.yml diff --git a/.github/workflows/docker-image.yml b/.github/workflows/docker-image.yml deleted file mode 100644 index 2be692a..0000000 --- a/.github/workflows/docker-image.yml +++ /dev/null @@ -1,39 +0,0 @@ -name: Publish Docker image - -on: - workflow_dispatch: - #release: - #types: [published] - -jobs: - push_to_registry: - name: Push Docker image to Docker Hub - runs-on: ubuntu-latest - steps: - - name: Check out the repo - uses: actions/checkout@v3 - - - name: Extract latest tag - run: | - GIT_TAG=$GITHUB_REF_NAME - - - name: Log in to Docker Hub - uses: docker/login-action@f054a8b539a109f9f41c372932f1ae047eff08c9 - with: - username: ${{ secrets.DOCKER_USERNAME }} - password: ${{ secrets.DOCKER_PASSWORD }} - - - name: Extract metadata (tags, labels) for Docker - id: meta - uses: docker/metadata-action@98669ae865ea3cffbcbaa878cf57c20bbf1c6c38 - with: - images: senexcrenshaw/xteve - - - name: Build and push Docker image - uses: docker/build-push-action@ad44023a93711e3deb337508980b4b5e9bcdc5dc - with: - context: . - push: true - version: ${{ steps.prep.outputs.version }} - tags: $GIT_TAG - labels: ${{ steps.meta.outputs.labels }} From 312813e93c056f1e4822adc618dc7ef314fa6b78 Mon Sep 17 00:00:00 2001 From: SenexCrenshaw <35600301+SenexCrenshaw@users.noreply.github.com> Date: Wed, 24 Aug 2022 15:24:30 -0400 Subject: [PATCH 150/189] Update main.yml --- .github/workflows/main.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 9899898..912acee 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -1,4 +1,4 @@ -name: Publish to Registry +name: Publish to Docker Registry on: #push: #branches: From 1a6250002ecd7d4afcaaee71860ec5e59a824dbf Mon Sep 17 00:00:00 2001 From: SenexCrenshaw <35600301+SenexCrenshaw@users.noreply.github.com> Date: Wed, 24 Aug 2022 15:28:50 -0400 Subject: [PATCH 151/189] Delete go.yml --- .github/workflows/go.yml | 23 ----------------------- 1 file changed, 23 deletions(-) delete mode 100644 .github/workflows/go.yml diff --git a/.github/workflows/go.yml b/.github/workflows/go.yml deleted file mode 100644 index 80a3ab9..0000000 --- a/.github/workflows/go.yml +++ /dev/null @@ -1,23 +0,0 @@ -name: Go - -on: - push: - branches: [ "main" ] - pull_request: - branches: [ "main" ] - workflow_dispatch: - -jobs: - - build: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v3 - - - name: Set up Go - uses: actions/setup-go@v3 - with: - go-version: 1.19 - - - name: Build - run: go build -v ./... From e345fcce6a3f910f079aec2c49ea7d2427c2514f Mon Sep 17 00:00:00 2001 From: SenexCrenshaw <35600301+SenexCrenshaw@users.noreply.github.com> Date: Wed, 24 Aug 2022 15:29:15 -0400 Subject: [PATCH 152/189] Update main.yml --- .github/workflows/main.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 912acee..ab1bbe7 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -1,5 +1,7 @@ name: Publish to Docker Registry on: + release: + types: [published] #push: #branches: # - main From aca05ade5758f628726833e3c252ec8fe010aaf9 Mon Sep 17 00:00:00 2001 From: SenexCrenshaw <35600301+SenexCrenshaw@users.noreply.github.com> Date: Wed, 24 Aug 2022 15:30:06 -0400 Subject: [PATCH 153/189] Rename main.yml to dockerpublish.yml --- .github/workflows/{main.yml => dockerpublish.yml} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename .github/workflows/{main.yml => dockerpublish.yml} (100%) diff --git a/.github/workflows/main.yml b/.github/workflows/dockerpublish.yml similarity index 100% rename from .github/workflows/main.yml rename to .github/workflows/dockerpublish.yml From d9b59e87c48aba9d3dedde8cd5c7272193d24e82 Mon Sep 17 00:00:00 2001 From: Senex Crenshaw Date: Wed, 24 Aug 2022 19:44:09 +0000 Subject: [PATCH 154/189] xteve releas from github instead of building --- Dockerfile | 28 ++------------- DockerfileGit | 98 +++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 100 insertions(+), 26 deletions(-) create mode 100644 DockerfileGit diff --git a/Dockerfile b/Dockerfile index 07c6617..0c2cfdc 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,28 +1,3 @@ -# syntax=docker/dockerfile:1 - -# First stage. Building a binary -# ----------------------------------------------------------------------------- - -# Base image for builder is debian 11 with golang 1.18+ pre-installed -#FROM golang:1.18.1-bullseye AS builder -FROM golang:bullseye AS builder - -# Download the source code -# Uncomment the below line to force git pull (no cache) -#ADD "https://www.random.org/cgi-bin/randbyte?nbytes=10&format=h" skipcache -RUN git clone https://github.com/SenexCrenshaw/xTeVe.git /src -WORKDIR /src - -# Install dependencies -RUN go mod download - -# Compile -RUN go build xteve.go - -# Second stage. Creating an image -# ----------------------------------------------------------------------------- - -# Base image is a latest stable debian FROM alpine:latest ARG BUILD_DATE @@ -57,6 +32,7 @@ RUN apk upgrade # Install CA certificates RUN apk add --no-cache ca-certificates +RUN apk add curl # Timezone (TZ) RUN apk update && apk add --no-cache tzdata @@ -71,7 +47,7 @@ RUN apk add vlc RUN mkdir $XTEVE_BIN # Copy built binary from builder image -COPY --from=builder [ "/src/xteve", "${XTEVE_BIN}/" ] +RUN curl -LJ 'https://github.com/SenexCrenshaw/xTeVe/releases/latest/download/xteve-linux-amd64' -o $XTEVE_BIN/xteve # Set binary permissions RUN chmod +rx $XTEVE_BIN/xteve diff --git a/DockerfileGit b/DockerfileGit new file mode 100644 index 0000000..5a65499 --- /dev/null +++ b/DockerfileGit @@ -0,0 +1,98 @@ +# syntax=docker/dockerfile:1 + +# First stage. Building a binary +# ----------------------------------------------------------------------------- + +# Base image for builder is debian 11 with golang 1.18+ pre-installed +#FROM golang:1.18.1-bullseye AS builder +FROM golang:bullseye AS builder + +# Download the source code +# Uncomment the below line to force git pull (no cache) +#ADD "https://www.random.org/cgi-bin/randbyte?nbytes=10&format=h" skipcache +RUN git clone https://github.com/SenexCrenshaw/xTeVe.git /src +WORKDIR /src + +# Install dependencies +RUN go mod download + +# Compile +RUN go build xteve.go + +# Second stage. Creating an image +# ----------------------------------------------------------------------------- + +# Base image +FROM alpine:latest + +ARG BUILD_DATE +ARG VCS_REF +ARG XTEVE_PORT=34400 +ARG XTEVE_VERSION + +LABEL org.opencontainers.image.created="{$BUILD_DATE}" \ + org.opencontainers.image.url="https://hub.docker.com/r/SenexCrenshaw/xteve/" \ + org.opencontainers.image.source="https://github.com/SenexCrenshaw/xTeVe" \ + org.opencontainers.image.version="{$XTEVE_VERSION}" \ + org.opencontainers.image.revision="{$VCS_REF}" \ + org.opencontainers.image.vendor="SenexCrenshaw" \ + org.opencontainers.image.title="xTeVe" \ + org.opencontainers.image.description="Dockerized fork of xTeVe by SenexCrenshaw" \ + org.opencontainers.image.authors="SenexCrenshaw SenexCrenshaw@gmail.com" + +ENV XTEVE_BIN=/home/xteve/bin +ENV XTEVE_CONF=/home/xteve/conf +ENV XTEVE_HOME=/home/xteve +ENV XTEVE_TEMP=/tmp/xteve + +# Add binary to PATH +ENV PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:$XTEVE_BIN + +# Set working directory +WORKDIR $XTEVE_HOME + +# Update package lists +RUN apk update +RUN apk upgrade + +# Install CA certificates +RUN apk add --no-cache ca-certificates + +# Timezone (TZ) +RUN apk update && apk add --no-cache tzdata +ENV TZ=America/New_York +RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone + +# Add ffmpeg and vlc +RUN apk add ffmpeg +RUN apk add vlc + +# Creat bin dir +RUN mkdir $XTEVE_BIN + +# Copy built binary from builder image +COPY --from=builder [ "/src/xteve", "${XTEVE_BIN}/" ] + +# Set binary permissions +RUN chmod +rx $XTEVE_BIN/xteve + +# Create XML cache directory +RUN mkdir $XTEVE_HOME/cache + +# Create working directories for xTeVe +RUN mkdir $XTEVE_CONF +RUN chmod a+rwX $XTEVE_CONF +RUN mkdir $XTEVE_TEMP +RUN chmod a+rwX $XTEVE_TEMP + +RUN mkdir /lib64 && ln -s /lib/libc.musl-x86_64.so.1 /lib64/ld-linux-x86-64.so.2 + +# Configure container volume mappings +VOLUME $XTEVE_CONF +VOLUME $XTEVE_TEMP + +# Expose Port +EXPOSE 34400 + +# Run the xTeVe executable +ENTRYPOINT ${XTEVE_BIN}/xteve -port=${XTEVE_PORT} -config=${XTEVE_CONF} From 90ff2b57016b536de54f3500f3f8e0d642b1273a Mon Sep 17 00:00:00 2001 From: Senex Crenshaw Date: Wed, 24 Aug 2022 19:48:15 +0000 Subject: [PATCH 155/189] 2.5.2 release Update docker publish Update docker build action 2.5.2 release 2.5.3 trigger test Action Trigger test Action Trigger test Fixup trigger for SLSA Go releaser Updated docker-compose to use docker.io Update dockerpublish tags tags fixup tags tags v2.5.4 v2.5.5 v2.5.5 Update action v2.5.1 job update tags --- .github/workflows/dockerpublish.yml | 26 +++++++++++++-------- .github/workflows/go-ossf-slsa3-publish.yml | 22 +++++++++++++---- docker-compose.yml | 2 +- 3 files changed, 35 insertions(+), 15 deletions(-) diff --git a/.github/workflows/dockerpublish.yml b/.github/workflows/dockerpublish.yml index ab1bbe7..74ff707 100644 --- a/.github/workflows/dockerpublish.yml +++ b/.github/workflows/dockerpublish.yml @@ -7,17 +7,23 @@ on: # - main #schedule: # - cron: '0 2 * * 0' # Weekly on Sundays at 02:00 + # workflow_run: + # workflows: ["SLSA Go releaser"] + # types: + # - completed workflow_dispatch: + jobs: - update: + build_and_publish: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v3 - - name: Publish to Docker Registry - uses: elgohr/Publish-Docker-Github-Action@v4 - with: - name: senexcrenshaw/xteve - username: ${{ secrets.DOCKER_USERNAME }} - password: ${{ secrets.DOCKER_PASSWORD }} - cache: ${{ github.event_name != 'schedule' }} - tag_semver: true + - uses: actions/checkout@v3 + - name: Publish to Docker Registry + uses: elgohr/Publish-Docker-Github-Action@v4 + with: + name: senexcrenshaw/xteve + username: ${{ secrets.DOCKER_USERNAME }} + password: ${{ secrets.DOCKER_PASSWORD }} + cache: ${{ github.event_name != 'schedule' }} + tags: "latest,${{ env.STATE_RELEASE_VERSION }}" + default_branch: main diff --git a/.github/workflows/go-ossf-slsa3-publish.yml b/.github/workflows/go-ossf-slsa3-publish.yml index 67cc6f8..2638540 100644 --- a/.github/workflows/go-ossf-slsa3-publish.yml +++ b/.github/workflows/go-ossf-slsa3-publish.yml @@ -14,9 +14,9 @@ name: SLSA Go releaser on: workflow_dispatch: - push: - tags: - - "*" + # push: + # tags: + # - "*" release: types: [created] @@ -48,7 +48,7 @@ jobs: # Prerequesite: Create a .slsa-goreleaser.yml in the root directory of your project. # See format in https://github.com/slsa-framework/slsa-github-generator/blob/main/internal/builders/go/README.md#configuration-file #========================================================================================================================================= - build: + build_go: permissions: id-token: write # To sign. contents: write # To upload release assets. @@ -61,3 +61,17 @@ jobs: # ============================================================================================================= # Optional: For more options, see https://github.com/slsa-framework/slsa-github-generator#golang-projects # ============================================================================================================= + build_docker_and_publish: + needs: build_go + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + - name: Publish to Docker Registry + uses: elgohr/Publish-Docker-Github-Action@v4 + with: + name: senexcrenshaw/xteve + username: ${{ secrets.DOCKER_USERNAME }} + password: ${{ secrets.DOCKER_PASSWORD }} + cache: ${{ github.event_name != 'schedule' }} + tags: "latest,${{needs.args.outputs.version}}" + default_branch: main diff --git a/docker-compose.yml b/docker-compose.yml index ef104b4..934445f 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -1,7 +1,7 @@ version: "2.1" services: xteve: - image: xteve:latest + image: senexcrenshaw/xteve:latest container_name: xteve environment: - TZ=America/New_York From 10097ed010927621081f5aef79ad7749dc390618 Mon Sep 17 00:00:00 2001 From: Senex Crenshaw Date: Thu, 25 Aug 2022 13:42:37 +0000 Subject: [PATCH 156/189] Added in versioning system Added in more binary builds --- .github/workflows/dockerpublish.yml | 4 +- .github/workflows/go-ossf-slsa3-publish.yml | 4 +- .github/workflows/xTeVe_release.yml | 76 +++++++++++++++++++++ .vscode/tasks.json | 17 ++++- Dockerfile | 2 +- Dockerfile.arm64 | 74 ++++++++++++++++++++ VERSION | 1 + release.json | 4 ++ src/version.go | 4 ++ update_version.sh | 17 +++++ xteve.go | 5 +- 11 files changed, 197 insertions(+), 11 deletions(-) create mode 100644 .github/workflows/xTeVe_release.yml create mode 100644 Dockerfile.arm64 create mode 100644 VERSION create mode 100644 release.json create mode 100644 src/version.go create mode 100755 update_version.sh diff --git a/.github/workflows/dockerpublish.yml b/.github/workflows/dockerpublish.yml index 74ff707..240072a 100644 --- a/.github/workflows/dockerpublish.yml +++ b/.github/workflows/dockerpublish.yml @@ -1,7 +1,7 @@ name: Publish to Docker Registry on: - release: - types: [published] + # release: + # types: [published] #push: #branches: # - main diff --git a/.github/workflows/go-ossf-slsa3-publish.yml b/.github/workflows/go-ossf-slsa3-publish.yml index 2638540..49d952e 100644 --- a/.github/workflows/go-ossf-slsa3-publish.yml +++ b/.github/workflows/go-ossf-slsa3-publish.yml @@ -17,8 +17,8 @@ on: # push: # tags: # - "*" - release: - types: [created] + # release: + # types: [created] permissions: read-all diff --git a/.github/workflows/xTeVe_release.yml b/.github/workflows/xTeVe_release.yml new file mode 100644 index 0000000..b1d06c1 --- /dev/null +++ b/.github/workflows/xTeVe_release.yml @@ -0,0 +1,76 @@ +name: xTeVe release +on: + workflow_dispatch: + # push: + # tags: + # - "*" + #release: + # types: [created] + +permissions: read-all + +jobs: + release-linux-amd64: + name: release linux/amd64 + runs-on: ubuntu-latest + strategy: + matrix: + # build and publish in parallel: linux/386, linux/amd64, linux/arm64, windows/386, windows/amd64, darwin/amd64, darwin/arm64 + goos: [linux, windows, darwin] + goarch: ["386", amd64, arm64] + exclude: + - goarch: "386" + goos: darwin + - goarch: arm64 + goos: windows + steps: + - uses: actions/checkout@v3 + + - name: Read version from release.json + uses: notiz-dev/github-action-json-property@release + id: xteve_version + with: + path: 'release.json' + prop_path: 'version' + + - name: Read go_version from release.json + uses: notiz-dev/github-action-json-property@release + id: go_version + with: + path: 'release.json' + prop_path: 'go_version' + + - name: Set APP_VERSION env + run: echo APP_VERSION=$(echo ${GITHUB_REF} | rev | cut -d'/' -f 1 | rev ) >> ${GITHUB_ENV} + - name: Set BUILD_TIME env + run: echo BUILD_TIME=$(date -u +%Y%m%d-%H%M) >> ${GITHUB_ENV} + - name: Environment Printer + uses: managedkaos/print-env@v1.0 + + - uses: wangyoucao577/go-release-action@v1.30 + with: + github_token: ${{ secrets.GITHUB_TOKEN }} + goos: ${{ matrix.goos }} + goarch: ${{ matrix.goarch }} + extra_files: LICENSE README.md + #release_name: v${{steps.xteve_version.outputs.prop}} + overwrite: true + binary_name: xteve + asset_name: "xteve-${{ env.BUILD_TIME }}-${{ matrix.goos }}-${{ matrix.goarch }}" + build_flags: -v + ldflags: -X "main.appVersion=${{ steps.xteve_version.outputs.prop }}" -X "main.buildTime=${{ env.BUILD_TIME }}" -X main.gitCommit=${{ github.sha }} -X main.gitRef=${{ github.ref }} + + # build_docker_and_publish: + # needs: build_go + # runs-on: ubuntu-latest + # steps: + # - uses: actions/checkout@v3 + # - name: Publish to Docker Registry + # uses: elgohr/Publish-Docker-Github-Action@v4 + # with: + # name: senexcrenshaw/xteve + # username: ${{ secrets.DOCKER_USERNAME }} + # password: ${{ secrets.DOCKER_PASSWORD }} + # cache: ${{ github.event_name != 'schedule' }} + # tags: "latest,${{needs.args.outputs.version}}" + # default_branch: main diff --git a/.vscode/tasks.json b/.vscode/tasks.json index 3e2815f..e5de95c 100644 --- a/.vscode/tasks.json +++ b/.vscode/tasks.json @@ -1,6 +1,15 @@ { "version": "2.0.0", "tasks": [ + { + "label": "Update Version", + "type": "shell", + "command": "./update_version.sh", + "presentation": { + "reveal": "always", + "panel": "new" + } + }, { "type": "typescript", "tsconfig": "ts/tsconfig.json", @@ -14,13 +23,17 @@ "label": "tsc build" }, { - "label": "Build Go", + "label": "Build xTeVe", "type": "shell", "command": "go build xteve.go", "group": { "kind": "build", "isDefault": true - } + }, + "dependsOn": [ + "Update Version", + "tsc build" + ] } ] } \ No newline at end of file diff --git a/Dockerfile b/Dockerfile index 0c2cfdc..b2ada0b 100644 --- a/Dockerfile +++ b/Dockerfile @@ -3,7 +3,7 @@ FROM alpine:latest ARG BUILD_DATE ARG VCS_REF ARG XTEVE_PORT=34400 -ARG XTEVE_VERSION +ARG XTEVE_VERSION=2.5.1 LABEL org.opencontainers.image.created="{$BUILD_DATE}" \ org.opencontainers.image.url="https://hub.docker.com/r/SenexCrenshaw/xteve/" \ diff --git a/Dockerfile.arm64 b/Dockerfile.arm64 new file mode 100644 index 0000000..d090424 --- /dev/null +++ b/Dockerfile.arm64 @@ -0,0 +1,74 @@ +FROM arm64v8/alpine:latest + +ARG BUILD_DATE +ARG VCS_REF +ARG XTEVE_PORT=34400 +ARG XTEVE_VERSION + +LABEL org.opencontainers.image.created="{$BUILD_DATE}" \ + org.opencontainers.image.url="https://hub.docker.com/r/SenexCrenshaw/xteve/" \ + org.opencontainers.image.source="https://github.com/SenexCrenshaw/xTeVe" \ + org.opencontainers.image.version="{$XTEVE_VERSION}" \ + org.opencontainers.image.revision="{$VCS_REF}" \ + org.opencontainers.image.vendor="SenexCrenshaw" \ + org.opencontainers.image.title="xTeVe" \ + org.opencontainers.image.description="Dockerized fork of xTeVe by SenexCrenshaw" \ + org.opencontainers.image.authors="SenexCrenshaw SenexCrenshaw@gmail.com" + +ENV XTEVE_BIN=/home/xteve/bin +ENV XTEVE_CONF=/home/xteve/conf +ENV XTEVE_HOME=/home/xteve +ENV XTEVE_TEMP=/tmp/xteve + +# Add binary to PATH +ENV PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:$XTEVE_BIN + +# Set working directory +WORKDIR $XTEVE_HOME + +# Update package lists +RUN apk update +RUN apk upgrade + +# Install CA certificates +RUN apk add --no-cache ca-certificates +RUN apk add curl + +# Timezone (TZ) +RUN apk update && apk add --no-cache tzdata +ENV TZ=America/New_York +RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone + +# Add ffmpeg and vlc +RUN apk add ffmpeg +RUN apk add vlc + +# Creat bin dir +RUN mkdir $XTEVE_BIN + +# Copy built binary from builder image +RUN curl -LJ 'https://github.com/SenexCrenshaw/xTeVe/releases/latest/download/xteve-linux-amd64' -o $XTEVE_BIN/xteve + +# Set binary permissions +RUN chmod +rx $XTEVE_BIN/xteve + +# Create XML cache directory +RUN mkdir $XTEVE_HOME/cache + +# Create working directories for xTeVe +RUN mkdir $XTEVE_CONF +RUN chmod a+rwX $XTEVE_CONF +RUN mkdir $XTEVE_TEMP +RUN chmod a+rwX $XTEVE_TEMP + +RUN mkdir /lib64 && ln -s /lib/libc.musl-x86_64.so.1 /lib64/ld-linux-x86-64.so.2 + +# Configure container volume mappings +VOLUME $XTEVE_CONF +VOLUME $XTEVE_TEMP + +# Expose Port +EXPOSE 34400 + +# Run the xTeVe executable +ENTRYPOINT ${XTEVE_BIN}/xteve -port=${XTEVE_PORT} -config=${XTEVE_CONF} diff --git a/VERSION b/VERSION new file mode 100644 index 0000000..4fd0fe3 --- /dev/null +++ b/VERSION @@ -0,0 +1 @@ +2.5.1 \ No newline at end of file diff --git a/release.json b/release.json new file mode 100644 index 0000000..79426e8 --- /dev/null +++ b/release.json @@ -0,0 +1,4 @@ +{ + "version": "2.5.1", + "go_version": "1.19.0" +} diff --git a/src/version.go b/src/version.go new file mode 100644 index 0000000..4acf3aa --- /dev/null +++ b/src/version.go @@ -0,0 +1,4 @@ +package src + +// Version : Version, the Build Number is parsed in the main func +const Version = "2.5.1" diff --git a/update_version.sh b/update_version.sh new file mode 100755 index 0000000..d215ce0 --- /dev/null +++ b/update_version.sh @@ -0,0 +1,17 @@ +#!/bin/sh +VERSION=`cat VERSION` +cat << EOF > release.json +{ + "version": "$VERSION", + "go_version": "1.19.0" +} +EOF + +cat << EOF > src/version.go +package src + +// Version : Version, the Build Number is parsed in the main func +const Version = "$VERSION" +EOF + +sed -Ei "s/ARG XTEVE_VERSION.*/ARG XTEVE_VERSION=$VERSION/" Dockerfile diff --git a/xteve.go b/xteve.go index c10cfa3..26ca19c 100644 --- a/xteve.go +++ b/xteve.go @@ -36,9 +36,6 @@ var GitHub = GitHubStruct{Branch: "main", User: "SenexCrenshaw", Repo: "xTeVe", // Name : Program Name const Name = "xTeVe" -// Version : Version, the Build Number is parsed in the main func -const Version = "2.5.1.0000" - // DBVersion : Database Version const DBVersion = "2.3.0" @@ -64,7 +61,7 @@ var dev = flag.Bool("dev", false, ": Activates the developer mode, the source co func main() { // Separate Build Number from Version Number - var build = strings.Split(Version, ".") + var build = strings.Split(src.Version, ".") var system = &src.System system.APIVersion = APIVersion From 38c8d1c2bc0f6dc2b62a7b6f8955c48bee2331ad Mon Sep 17 00:00:00 2001 From: Senex Crenshaw Date: Thu, 25 Aug 2022 13:47:39 +0000 Subject: [PATCH 157/189] Updated release --- .github/workflows/xTeVe_release.yml | 35 +++++++++++++---------------- DockerfileGit => Dockerfile.fromgit | 0 2 files changed, 16 insertions(+), 19 deletions(-) rename DockerfileGit => Dockerfile.fromgit (100%) diff --git a/.github/workflows/xTeVe_release.yml b/.github/workflows/xTeVe_release.yml index b1d06c1..6344052 100644 --- a/.github/workflows/xTeVe_release.yml +++ b/.github/workflows/xTeVe_release.yml @@ -1,16 +1,19 @@ -name: xTeVe release +name: xTeVe release manual on: workflow_dispatch: # push: # tags: # - "*" - #release: - # types: [created] + release: + types: [created] -permissions: read-all +permissions: + contents: read jobs: - release-linux-amd64: + release: + permissions: + contents: write name: release linux/amd64 runs-on: ubuntu-latest strategy: @@ -25,38 +28,32 @@ jobs: goos: windows steps: - uses: actions/checkout@v3 - + - name: Read version from release.json uses: notiz-dev/github-action-json-property@release id: xteve_version with: path: 'release.json' - prop_path: 'version' - - - name: Read go_version from release.json - uses: notiz-dev/github-action-json-property@release - id: go_version - with: - path: 'release.json' - prop_path: 'go_version' + prop_path: 'version' - name: Set APP_VERSION env run: echo APP_VERSION=$(echo ${GITHUB_REF} | rev | cut -d'/' -f 1 | rev ) >> ${GITHUB_ENV} - name: Set BUILD_TIME env run: echo BUILD_TIME=$(date -u +%Y%m%d-%H%M) >> ${GITHUB_ENV} - - name: Environment Printer - uses: managedkaos/print-env@v1.0 + #- name: Environment Printer + # uses: managedkaos/print-env@v1.0 - uses: wangyoucao577/go-release-action@v1.30 with: github_token: ${{ secrets.GITHUB_TOKEN }} goos: ${{ matrix.goos }} goarch: ${{ matrix.goarch }} - extra_files: LICENSE README.md - #release_name: v${{steps.xteve_version.outputs.prop}} overwrite: true + extra_files: LICENSE README.md + release_tag: v${{steps.xteve_version.outputs.prop}} + #release_name: v${{steps.xteve_version.outputs.prop}} binary_name: xteve - asset_name: "xteve-${{ env.BUILD_TIME }}-${{ matrix.goos }}-${{ matrix.goarch }}" + #asset_name: "xteve-${{ steps.xteve_version.outputs.prop }}-${{ matrix.goos }}-${{ matrix.goarch }}" build_flags: -v ldflags: -X "main.appVersion=${{ steps.xteve_version.outputs.prop }}" -X "main.buildTime=${{ env.BUILD_TIME }}" -X main.gitCommit=${{ github.sha }} -X main.gitRef=${{ github.ref }} diff --git a/DockerfileGit b/Dockerfile.fromgit similarity index 100% rename from DockerfileGit rename to Dockerfile.fromgit From a81803800446f47e95be09cbff9044434ce081cc Mon Sep 17 00:00:00 2001 From: Senex Crenshaw Date: Thu, 25 Aug 2022 14:32:20 +0000 Subject: [PATCH 158/189] Update to build multiple docker arch --- .github/workflows/dockerpublish.yml | 42 ++++++++++++++++------ .github/workflows/xTeVe_release.yml | 54 +++++++++++++++++++++-------- Dockerfile | 4 ++- Dockerfile.arm64 | 6 ++-- 4 files changed, 78 insertions(+), 28 deletions(-) diff --git a/.github/workflows/dockerpublish.yml b/.github/workflows/dockerpublish.yml index 240072a..d49fb4d 100644 --- a/.github/workflows/dockerpublish.yml +++ b/.github/workflows/dockerpublish.yml @@ -14,16 +14,38 @@ on: workflow_dispatch: jobs: - build_and_publish: + build_docker_and_publish: + needs: build_xteve runs-on: ubuntu-latest steps: - - uses: actions/checkout@v3 - - name: Publish to Docker Registry - uses: elgohr/Publish-Docker-Github-Action@v4 + - uses: actions/checkout@v3 + + - name: Read version from release.json + uses: notiz-dev/github-action-json-property@release + id: xteve_version with: - name: senexcrenshaw/xteve - username: ${{ secrets.DOCKER_USERNAME }} - password: ${{ secrets.DOCKER_PASSWORD }} - cache: ${{ github.event_name != 'schedule' }} - tags: "latest,${{ env.STATE_RELEASE_VERSION }}" - default_branch: main + path: 'release.json' + prop_path: 'version' + + - name: Set up QEMU + uses: docker/setup-qemu-action@v1 + with: + image: tonistiigi/binfmt:latest + platforms: arm64,arm + + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v1 + + - name: Login to DockerHub + uses: docker/login-action@v1 + with: + username: ${{ secrets.DOCKERHUB_USERNAME }} + password: ${{ secrets.DOCKERHUB_TOKEN }} + + - name: Build and push + uses: docker/build-push-action@v2 + with: + context: . + platforms: linux/amd64,linux/arm64,linux/arm/v7 + push: true + tags: ${{ secrets.DOCKERHUB_USERNAME }}/ranking:${{ steps.xteve_version.outputs.prop}} \ No newline at end of file diff --git a/.github/workflows/xTeVe_release.yml b/.github/workflows/xTeVe_release.yml index 6344052..c5beefd 100644 --- a/.github/workflows/xTeVe_release.yml +++ b/.github/workflows/xTeVe_release.yml @@ -14,7 +14,7 @@ jobs: release: permissions: contents: write - name: release linux/amd64 + name: build_xteve runs-on: ubuntu-latest strategy: matrix: @@ -57,17 +57,41 @@ jobs: build_flags: -v ldflags: -X "main.appVersion=${{ steps.xteve_version.outputs.prop }}" -X "main.buildTime=${{ env.BUILD_TIME }}" -X main.gitCommit=${{ github.sha }} -X main.gitRef=${{ github.ref }} - # build_docker_and_publish: - # needs: build_go - # runs-on: ubuntu-latest - # steps: - # - uses: actions/checkout@v3 - # - name: Publish to Docker Registry - # uses: elgohr/Publish-Docker-Github-Action@v4 - # with: - # name: senexcrenshaw/xteve - # username: ${{ secrets.DOCKER_USERNAME }} - # password: ${{ secrets.DOCKER_PASSWORD }} - # cache: ${{ github.event_name != 'schedule' }} - # tags: "latest,${{needs.args.outputs.version}}" - # default_branch: main + build_docker_and_publish: + needs: build_xteve + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + - name: Set up QEMU + uses: docker/setup-qemu-action@v1 + with: + image: tonistiigi/binfmt:latest + platforms: arm64,arm + + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v1 + + - name: Login to DockerHub + uses: docker/login-action@v1 + with: + username: ${{ secrets.DOCKERHUB_USERNAME }} + password: ${{ secrets.DOCKERHUB_TOKEN }} + + - name: Build and push + uses: docker/build-push-action@v2 + with: + context: . + platforms: linux/amd64,linux/arm64,linux/arm/v7 + push: true + tags: ${{ secrets.DOCKERHUB_USERNAME }}/ranking:${{ steps.xteve_version.outputs.prop}} + + # - name: Publish to Docker Registry + # uses: elgohr/Publish-Docker-Github-Action@v4 + # with: + # name: senexcrenshaw/xteve + # username: ${{ secrets.DOCKER_USERNAME }} + # password: ${{ secrets.DOCKERHUB_TOKEN }} + # cache: ${{ github.event_name != 'schedule' }} + # tags: "latest,${{needs.args.outputs.version}}" + # platforms: linux/amd64,linux/arm64 + # default_branch: main diff --git a/Dockerfile b/Dockerfile index b2ada0b..a06aca0 100644 --- a/Dockerfile +++ b/Dockerfile @@ -4,6 +4,8 @@ ARG BUILD_DATE ARG VCS_REF ARG XTEVE_PORT=34400 ARG XTEVE_VERSION=2.5.1 +ARG XTEVE_OS=linux +ARG XTEVE_ARCH=amd64 LABEL org.opencontainers.image.created="{$BUILD_DATE}" \ org.opencontainers.image.url="https://hub.docker.com/r/SenexCrenshaw/xteve/" \ @@ -47,7 +49,7 @@ RUN apk add vlc RUN mkdir $XTEVE_BIN # Copy built binary from builder image -RUN curl -LJ 'https://github.com/SenexCrenshaw/xTeVe/releases/latest/download/xteve-linux-amd64' -o $XTEVE_BIN/xteve +RUN curl -L "https://github.com/SenexCrenshaw/xTeVe/releases/download/v$XTEVE_VERSION/xteve-v$XTEVE_VERSION-$XTEVE_OS-$XTEVE_ARCH.tar.gz" | tar xvz -C $XTEVE_BIN/ # Set binary permissions RUN chmod +rx $XTEVE_BIN/xteve diff --git a/Dockerfile.arm64 b/Dockerfile.arm64 index d090424..b2a6204 100644 --- a/Dockerfile.arm64 +++ b/Dockerfile.arm64 @@ -3,7 +3,9 @@ FROM arm64v8/alpine:latest ARG BUILD_DATE ARG VCS_REF ARG XTEVE_PORT=34400 -ARG XTEVE_VERSION +ARG XTEVE_VERSION=2.5.1 +ARG XTEVE_OS=linux +ARG XTEVE_ARCH=arm64 LABEL org.opencontainers.image.created="{$BUILD_DATE}" \ org.opencontainers.image.url="https://hub.docker.com/r/SenexCrenshaw/xteve/" \ @@ -47,7 +49,7 @@ RUN apk add vlc RUN mkdir $XTEVE_BIN # Copy built binary from builder image -RUN curl -LJ 'https://github.com/SenexCrenshaw/xTeVe/releases/latest/download/xteve-linux-amd64' -o $XTEVE_BIN/xteve +RUN curl -L "https://github.com/SenexCrenshaw/xTeVe/releases/download/v$XTEVE_VERSION/xteve-v$XTEVE_VERSION-$XTEVE_OS-$XTEVE_ARCH.tar.gz" | tar xvz -C $XTEVE_BIN/ # Set binary permissions RUN chmod +rx $XTEVE_BIN/xteve From 6ee5fa62b9eb7e2c1575cc12d77c269a390744e4 Mon Sep 17 00:00:00 2001 From: Senex Crenshaw Date: Thu, 25 Aug 2022 14:37:15 +0000 Subject: [PATCH 159/189] Updated docker build --- .github/workflows/dockerpublish.yml | 39 +++++++---------------------- 1 file changed, 9 insertions(+), 30 deletions(-) diff --git a/.github/workflows/dockerpublish.yml b/.github/workflows/dockerpublish.yml index d49fb4d..d8876c0 100644 --- a/.github/workflows/dockerpublish.yml +++ b/.github/workflows/dockerpublish.yml @@ -18,34 +18,13 @@ jobs: needs: build_xteve runs-on: ubuntu-latest steps: - - uses: actions/checkout@v3 - - - name: Read version from release.json - uses: notiz-dev/github-action-json-property@release - id: xteve_version + - uses: actions/checkout@v3 + - name: Publish to Docker Registry + uses: elgohr/Publish-Docker-Github-Action@v4 with: - path: 'release.json' - prop_path: 'version' - - - name: Set up QEMU - uses: docker/setup-qemu-action@v1 - with: - image: tonistiigi/binfmt:latest - platforms: arm64,arm - - - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v1 - - - name: Login to DockerHub - uses: docker/login-action@v1 - with: - username: ${{ secrets.DOCKERHUB_USERNAME }} - password: ${{ secrets.DOCKERHUB_TOKEN }} - - - name: Build and push - uses: docker/build-push-action@v2 - with: - context: . - platforms: linux/amd64,linux/arm64,linux/arm/v7 - push: true - tags: ${{ secrets.DOCKERHUB_USERNAME }}/ranking:${{ steps.xteve_version.outputs.prop}} \ No newline at end of file + name: senexcrenshaw/xteve + username: ${{ secrets.DOCKER_USERNAME }} + password: ${{ secrets.DOCKER_PASSWORD }} + cache: ${{ github.event_name != 'schedule' }} + tags: "latest,${{ env.STATE_RELEASE_VERSION }}" + default_branch: main From a6f0335e665586c8584064a5d43d5f3973460226 Mon Sep 17 00:00:00 2001 From: Senex Crenshaw Date: Thu, 25 Aug 2022 14:40:29 +0000 Subject: [PATCH 160/189] Updated docker build --- .github/workflows/dockerpublish.yml | 48 +++++++++++++++++++++-------- 1 file changed, 36 insertions(+), 12 deletions(-) diff --git a/.github/workflows/dockerpublish.yml b/.github/workflows/dockerpublish.yml index d8876c0..b3a57d4 100644 --- a/.github/workflows/dockerpublish.yml +++ b/.github/workflows/dockerpublish.yml @@ -14,17 +14,41 @@ on: workflow_dispatch: jobs: - build_docker_and_publish: - needs: build_xteve + build_docker_and_publish: runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v3 - - name: Publish to Docker Registry - uses: elgohr/Publish-Docker-Github-Action@v4 + steps: + + - name: Clone repository + uses: actions/checkout@v2 + # with: + # ref: ${{ steps.vars.outputs.tag }} + + - name: Read version from release.json + uses: notiz-dev/github-action-json-property@release + id: xteve_version with: - name: senexcrenshaw/xteve - username: ${{ secrets.DOCKER_USERNAME }} - password: ${{ secrets.DOCKER_PASSWORD }} - cache: ${{ github.event_name != 'schedule' }} - tags: "latest,${{ env.STATE_RELEASE_VERSION }}" - default_branch: main + path: 'release.json' + prop_path: 'version' + + - name: Set up QEMU + uses: docker/setup-qemu-action@v1 + with: + image: tonistiigi/binfmt:latest + platforms: arm64,arm + + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v1 + + - name: Login to DockerHub + uses: docker/login-action@v1 + with: + username: ${{ secrets.DOCKERHUB_USERNAME }} + password: ${{ secrets.DOCKERHUB_TOKEN }} + + - name: Build and push + uses: docker/build-push-action@v2 + with: + context: . + platforms: linux/amd64,linux/arm64,linux/arm/v7 + push: true + tags: ${{ secrets.DOCKERHUB_USERNAME }}/ranking:${{ steps.xteve_version.outputs.prop }} From a3ce6cd042e5fc217c7427642ac76fa3b72b042f Mon Sep 17 00:00:00 2001 From: Senex Crenshaw Date: Thu, 25 Aug 2022 14:41:58 +0000 Subject: [PATCH 161/189] Updated dockerpublish --- .github/workflows/dockerpublish.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/dockerpublish.yml b/.github/workflows/dockerpublish.yml index b3a57d4..c130195 100644 --- a/.github/workflows/dockerpublish.yml +++ b/.github/workflows/dockerpublish.yml @@ -42,7 +42,7 @@ jobs: - name: Login to DockerHub uses: docker/login-action@v1 with: - username: ${{ secrets.DOCKERHUB_USERNAME }} + username: ${{ secrets.DOCKER_USERNAME }} password: ${{ secrets.DOCKERHUB_TOKEN }} - name: Build and push @@ -51,4 +51,4 @@ jobs: context: . platforms: linux/amd64,linux/arm64,linux/arm/v7 push: true - tags: ${{ secrets.DOCKERHUB_USERNAME }}/ranking:${{ steps.xteve_version.outputs.prop }} + tags: ${{ secrets.DOCKER_USERNAME }}/ranking:${{ steps.xteve_version.outputs.prop }} From c422862e9b16cbb42212e72a3862ea7a973e0064 Mon Sep 17 00:00:00 2001 From: Senex Crenshaw Date: Thu, 25 Aug 2022 14:43:19 +0000 Subject: [PATCH 162/189] Publish to Docker Registry --- .github/workflows/dockerpublish.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/dockerpublish.yml b/.github/workflows/dockerpublish.yml index c130195..10869a7 100644 --- a/.github/workflows/dockerpublish.yml +++ b/.github/workflows/dockerpublish.yml @@ -1,4 +1,4 @@ -name: Publish to Docker Registry +name: Publish to Docker Registry Manual on: # release: # types: [published] From 87e7ef4ce6684d6dcd51d870b0cf565d7d17ff2a Mon Sep 17 00:00:00 2001 From: SenexCrenshaw <35600301+SenexCrenshaw@users.noreply.github.com> Date: Thu, 25 Aug 2022 10:44:45 -0400 Subject: [PATCH 163/189] Update dockerpublish.yml --- .github/workflows/dockerpublish.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/dockerpublish.yml b/.github/workflows/dockerpublish.yml index 10869a7..7af7fa6 100644 --- a/.github/workflows/dockerpublish.yml +++ b/.github/workflows/dockerpublish.yml @@ -15,8 +15,8 @@ on: jobs: build_docker_and_publish: - runs-on: ubuntu-latest - steps: + runs-on: ubuntu-latest + steps: - name: Clone repository uses: actions/checkout@v2 From 18deaef881e710286151ddaef07e769d13d3a088 Mon Sep 17 00:00:00 2001 From: Senex Crenshaw Date: Thu, 25 Aug 2022 14:55:01 +0000 Subject: [PATCH 164/189] Remove dockerfiile.arm64 --- Dockerfile.arm64 | 76 ------------------------------------------------ 1 file changed, 76 deletions(-) delete mode 100644 Dockerfile.arm64 diff --git a/Dockerfile.arm64 b/Dockerfile.arm64 deleted file mode 100644 index b2a6204..0000000 --- a/Dockerfile.arm64 +++ /dev/null @@ -1,76 +0,0 @@ -FROM arm64v8/alpine:latest - -ARG BUILD_DATE -ARG VCS_REF -ARG XTEVE_PORT=34400 -ARG XTEVE_VERSION=2.5.1 -ARG XTEVE_OS=linux -ARG XTEVE_ARCH=arm64 - -LABEL org.opencontainers.image.created="{$BUILD_DATE}" \ - org.opencontainers.image.url="https://hub.docker.com/r/SenexCrenshaw/xteve/" \ - org.opencontainers.image.source="https://github.com/SenexCrenshaw/xTeVe" \ - org.opencontainers.image.version="{$XTEVE_VERSION}" \ - org.opencontainers.image.revision="{$VCS_REF}" \ - org.opencontainers.image.vendor="SenexCrenshaw" \ - org.opencontainers.image.title="xTeVe" \ - org.opencontainers.image.description="Dockerized fork of xTeVe by SenexCrenshaw" \ - org.opencontainers.image.authors="SenexCrenshaw SenexCrenshaw@gmail.com" - -ENV XTEVE_BIN=/home/xteve/bin -ENV XTEVE_CONF=/home/xteve/conf -ENV XTEVE_HOME=/home/xteve -ENV XTEVE_TEMP=/tmp/xteve - -# Add binary to PATH -ENV PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:$XTEVE_BIN - -# Set working directory -WORKDIR $XTEVE_HOME - -# Update package lists -RUN apk update -RUN apk upgrade - -# Install CA certificates -RUN apk add --no-cache ca-certificates -RUN apk add curl - -# Timezone (TZ) -RUN apk update && apk add --no-cache tzdata -ENV TZ=America/New_York -RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone - -# Add ffmpeg and vlc -RUN apk add ffmpeg -RUN apk add vlc - -# Creat bin dir -RUN mkdir $XTEVE_BIN - -# Copy built binary from builder image -RUN curl -L "https://github.com/SenexCrenshaw/xTeVe/releases/download/v$XTEVE_VERSION/xteve-v$XTEVE_VERSION-$XTEVE_OS-$XTEVE_ARCH.tar.gz" | tar xvz -C $XTEVE_BIN/ - -# Set binary permissions -RUN chmod +rx $XTEVE_BIN/xteve - -# Create XML cache directory -RUN mkdir $XTEVE_HOME/cache - -# Create working directories for xTeVe -RUN mkdir $XTEVE_CONF -RUN chmod a+rwX $XTEVE_CONF -RUN mkdir $XTEVE_TEMP -RUN chmod a+rwX $XTEVE_TEMP - -RUN mkdir /lib64 && ln -s /lib/libc.musl-x86_64.so.1 /lib64/ld-linux-x86-64.so.2 - -# Configure container volume mappings -VOLUME $XTEVE_CONF -VOLUME $XTEVE_TEMP - -# Expose Port -EXPOSE 34400 - -# Run the xTeVe executable -ENTRYPOINT ${XTEVE_BIN}/xteve -port=${XTEVE_PORT} -config=${XTEVE_CONF} From c480511eb7c968c43b9eb05430e4440e88cef53d Mon Sep 17 00:00:00 2001 From: SenexCrenshaw <35600301+SenexCrenshaw@users.noreply.github.com> Date: Thu, 25 Aug 2022 11:01:37 -0400 Subject: [PATCH 165/189] Update Dockerfile --- Dockerfile | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/Dockerfile b/Dockerfile index a06aca0..4a20ceb 100644 --- a/Dockerfile +++ b/Dockerfile @@ -4,8 +4,6 @@ ARG BUILD_DATE ARG VCS_REF ARG XTEVE_PORT=34400 ARG XTEVE_VERSION=2.5.1 -ARG XTEVE_OS=linux -ARG XTEVE_ARCH=amd64 LABEL org.opencontainers.image.created="{$BUILD_DATE}" \ org.opencontainers.image.url="https://hub.docker.com/r/SenexCrenshaw/xteve/" \ @@ -49,7 +47,7 @@ RUN apk add vlc RUN mkdir $XTEVE_BIN # Copy built binary from builder image -RUN curl -L "https://github.com/SenexCrenshaw/xTeVe/releases/download/v$XTEVE_VERSION/xteve-v$XTEVE_VERSION-$XTEVE_OS-$XTEVE_ARCH.tar.gz" | tar xvz -C $XTEVE_BIN/ +RUN curl -L "https://github.com/SenexCrenshaw/xTeVe/releases/download/v$XTEVE_VERSION/xteve-v$XTEVE_VERSION-$TARGETOS-$TARGETARCH.tar.gz" | tar xvz -C $XTEVE_BIN/ # Set binary permissions RUN chmod +rx $XTEVE_BIN/xteve From f1ef3197bdd8cf584c83149b2ee4baec9f6289e2 Mon Sep 17 00:00:00 2001 From: Senex Crenshaw Date: Thu, 25 Aug 2022 15:08:27 +0000 Subject: [PATCH 166/189] Updated Dockerfile --- Dockerfile | 22 +++++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index 4a20ceb..d585d4c 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,3 +1,23 @@ +# First stage. Building a binary +# ----------------------------------------------------------------------------- + +# Base image for builder is debian 11 with golang 1.18+ pre-installed +FROM golang:bullseye AS builder + +# Download the source code +# Uncomment the below line to force git pull (no cache) +#ADD "https://www.random.org/cgi-bin/randbyte?nbytes=10&format=h" skipcache +RUN git clone https://github.com/SenexCrenshaw/xTeVe.git /src +WORKDIR /src + +# Install dependencies +RUN go mod download + +# Compile +RUN go build xteve.go + +# Second stage. Creating an image +# ----------------------------------------------------------------------------- FROM alpine:latest ARG BUILD_DATE @@ -47,7 +67,7 @@ RUN apk add vlc RUN mkdir $XTEVE_BIN # Copy built binary from builder image -RUN curl -L "https://github.com/SenexCrenshaw/xTeVe/releases/download/v$XTEVE_VERSION/xteve-v$XTEVE_VERSION-$TARGETOS-$TARGETARCH.tar.gz" | tar xvz -C $XTEVE_BIN/ +COPY --from=builder [ "/src/xteve", "${XTEVE_BIN}/" ] # Set binary permissions RUN chmod +rx $XTEVE_BIN/xteve From aa67d5abc6167f43796cd4e1d80e19d960afad68 Mon Sep 17 00:00:00 2001 From: SenexCrenshaw <35600301+SenexCrenshaw@users.noreply.github.com> Date: Thu, 25 Aug 2022 11:16:15 -0400 Subject: [PATCH 167/189] Update dockerpublish.yml --- .github/workflows/dockerpublish.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/dockerpublish.yml b/.github/workflows/dockerpublish.yml index 7af7fa6..2bf609e 100644 --- a/.github/workflows/dockerpublish.yml +++ b/.github/workflows/dockerpublish.yml @@ -51,4 +51,4 @@ jobs: context: . platforms: linux/amd64,linux/arm64,linux/arm/v7 push: true - tags: ${{ secrets.DOCKER_USERNAME }}/ranking:${{ steps.xteve_version.outputs.prop }} + tags: ${{ secrets.DOCKER_USERNAME }}/xteve:${{ steps.xteve_version.outputs.prop }} From 7f914305ce2a73407196fd4bcfe633291d6b1835 Mon Sep 17 00:00:00 2001 From: Senex Crenshaw Date: Thu, 25 Aug 2022 15:33:56 +0000 Subject: [PATCH 168/189] Added latest tag --- .github/workflows/dockerpublish.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/dockerpublish.yml b/.github/workflows/dockerpublish.yml index 2bf609e..dd301c6 100644 --- a/.github/workflows/dockerpublish.yml +++ b/.github/workflows/dockerpublish.yml @@ -51,4 +51,4 @@ jobs: context: . platforms: linux/amd64,linux/arm64,linux/arm/v7 push: true - tags: ${{ secrets.DOCKER_USERNAME }}/xteve:${{ steps.xteve_version.outputs.prop }} + tags: ${{ secrets.DOCKER_USERNAME }}/xteve:latest,${{ secrets.DOCKER_USERNAME }}/xteve:${{ steps.xteve_version.outputs.prop }} From a7f4b3d020435fa2e5f99dddbb1d92d08cc422ab Mon Sep 17 00:00:00 2001 From: Senex Crenshaw Date: Thu, 25 Aug 2022 15:41:27 +0000 Subject: [PATCH 169/189] Updated go build arch --- Dockerfile | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/Dockerfile b/Dockerfile index d585d4c..be7b016 100644 --- a/Dockerfile +++ b/Dockerfile @@ -2,7 +2,7 @@ # ----------------------------------------------------------------------------- # Base image for builder is debian 11 with golang 1.18+ pre-installed -FROM golang:bullseye AS builder +FROM --platform=$BUILDPLATFORM golang:bullseye AS builder # Download the source code # Uncomment the below line to force git pull (no cache) @@ -10,11 +10,12 @@ FROM golang:bullseye AS builder RUN git clone https://github.com/SenexCrenshaw/xTeVe.git /src WORKDIR /src +ARG TARGETOS TARGETARCH # Install dependencies -RUN go mod download +RUN GOOS=$TARGETOS GOARCH=$TARGETARCH go mod download # Compile -RUN go build xteve.go +RUN GOOS=$TARGETOS GOARCH=$TARGETARCH go build xteve.go # Second stage. Creating an image # ----------------------------------------------------------------------------- From 0e2665589d7e22ad66ceb373661cbe6bdbc365ed Mon Sep 17 00:00:00 2001 From: Senex Crenshaw Date: Thu, 25 Aug 2022 15:56:41 +0000 Subject: [PATCH 170/189] Update Release yml --- .github/workflows/go-ossf-slsa3-publish.yml | 77 --------------------- .github/workflows/xTeVe_release.yml | 40 +++++------ 2 files changed, 17 insertions(+), 100 deletions(-) delete mode 100644 .github/workflows/go-ossf-slsa3-publish.yml diff --git a/.github/workflows/go-ossf-slsa3-publish.yml b/.github/workflows/go-ossf-slsa3-publish.yml deleted file mode 100644 index 49d952e..0000000 --- a/.github/workflows/go-ossf-slsa3-publish.yml +++ /dev/null @@ -1,77 +0,0 @@ -# This workflow uses actions that are not certified by GitHub. -# They are provided by a third-party and are governed by -# separate terms of service, privacy policy, and support -# documentation. - -# This workflow lets you compile your Go project using a SLSA3 compliant builder. -# This workflow will generate a so-called "provenance" file describing the steps -# that were performed to generate the final binary. -# The project is an initiative of the OpenSSF (openssf.org) and is developed at -# https://github.com/slsa-framework/slsa-github-generator. -# The provenance file can be verified using https://github.com/slsa-framework/slsa-verifier. -# For more information about SLSA and how it improves the supply-chain, visit slsa.dev. - -name: SLSA Go releaser -on: - workflow_dispatch: - # push: - # tags: - # - "*" - # release: - # types: [created] - -permissions: read-all - -jobs: - # Generate ldflags dynamically. - # Optional: only needed for ldflags. - args: - runs-on: ubuntu-latest - outputs: - commit-date: ${{ steps.ldflags.outputs.commit-date }} - commit: ${{ steps.ldflags.outputs.commit }} - version: ${{ steps.ldflags.outputs.version }} - tree-state: ${{ steps.ldflags.outputs.tree-state }} - steps: - - id: checkout - uses: actions/checkout@ec3a7ce113134d7a93b817d10a8272cb61118579 # tag=v2.3.4 - with: - fetch-depth: 0 - - id: ldflags - run: | - echo "::set-output name=commit-date::$(git log --date=iso8601-strict -1 --pretty=%ct)" - echo "::set-output name=commit::$GITHUB_SHA" - echo "::set-output name=version::$(git describe --tags --always --dirty | cut -c2-)" - echo "::set-output name=tree-state::$(if git diff --quiet; then echo "clean"; else echo "dirty"; fi)" - - # ======================================================================================================================================== - # Prerequesite: Create a .slsa-goreleaser.yml in the root directory of your project. - # See format in https://github.com/slsa-framework/slsa-github-generator/blob/main/internal/builders/go/README.md#configuration-file - #========================================================================================================================================= - build_go: - permissions: - id-token: write # To sign. - contents: write # To upload release assets. - actions: read # To read workflow path. - uses: slsa-framework/slsa-github-generator/.github/workflows/builder_go_slsa3.yml@v1.2.0 - with: - go-version: 1.19 - upload-assets: true - evaluated-envs: "COMMIT_DATE:${{needs.args.outputs.commit-date}}, COMMIT:${{needs.args.outputs.commit}}, VERSION:${{needs.args.outputs.version}}, TREE_STATE:${{needs.args.outputs.tree-state}}" - # ============================================================================================================= - # Optional: For more options, see https://github.com/slsa-framework/slsa-github-generator#golang-projects - # ============================================================================================================= - build_docker_and_publish: - needs: build_go - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v3 - - name: Publish to Docker Registry - uses: elgohr/Publish-Docker-Github-Action@v4 - with: - name: senexcrenshaw/xteve - username: ${{ secrets.DOCKER_USERNAME }} - password: ${{ secrets.DOCKER_PASSWORD }} - cache: ${{ github.event_name != 'schedule' }} - tags: "latest,${{needs.args.outputs.version}}" - default_branch: main diff --git a/.github/workflows/xTeVe_release.yml b/.github/workflows/xTeVe_release.yml index c5beefd..e287823 100644 --- a/.github/workflows/xTeVe_release.yml +++ b/.github/workflows/xTeVe_release.yml @@ -11,7 +11,7 @@ permissions: contents: read jobs: - release: + build_xteve_and_publish: permissions: contents: write name: build_xteve @@ -36,12 +36,8 @@ jobs: path: 'release.json' prop_path: 'version' - - name: Set APP_VERSION env - run: echo APP_VERSION=$(echo ${GITHUB_REF} | rev | cut -d'/' -f 1 | rev ) >> ${GITHUB_ENV} - name: Set BUILD_TIME env run: echo BUILD_TIME=$(date -u +%Y%m%d-%H%M) >> ${GITHUB_ENV} - #- name: Environment Printer - # uses: managedkaos/print-env@v1.0 - uses: wangyoucao577/go-release-action@v1.30 with: @@ -57,11 +53,20 @@ jobs: build_flags: -v ldflags: -X "main.appVersion=${{ steps.xteve_version.outputs.prop }}" -X "main.buildTime=${{ env.BUILD_TIME }}" -X main.gitCommit=${{ github.sha }} -X main.gitRef=${{ github.ref }} - build_docker_and_publish: - needs: build_xteve - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v3 + build_docker_and_publish: + runs-on: ubuntu-latest + steps: + + - name: Clone repository + uses: actions/checkout@v2 + + - name: Read version from release.json + uses: notiz-dev/github-action-json-property@release + id: xteve_version + with: + path: 'release.json' + prop_path: 'version' + - name: Set up QEMU uses: docker/setup-qemu-action@v1 with: @@ -74,7 +79,7 @@ jobs: - name: Login to DockerHub uses: docker/login-action@v1 with: - username: ${{ secrets.DOCKERHUB_USERNAME }} + username: ${{ secrets.DOCKER_USERNAME }} password: ${{ secrets.DOCKERHUB_TOKEN }} - name: Build and push @@ -83,15 +88,4 @@ jobs: context: . platforms: linux/amd64,linux/arm64,linux/arm/v7 push: true - tags: ${{ secrets.DOCKERHUB_USERNAME }}/ranking:${{ steps.xteve_version.outputs.prop}} - - # - name: Publish to Docker Registry - # uses: elgohr/Publish-Docker-Github-Action@v4 - # with: - # name: senexcrenshaw/xteve - # username: ${{ secrets.DOCKER_USERNAME }} - # password: ${{ secrets.DOCKERHUB_TOKEN }} - # cache: ${{ github.event_name != 'schedule' }} - # tags: "latest,${{needs.args.outputs.version}}" - # platforms: linux/amd64,linux/arm64 - # default_branch: main + tags: ${{ secrets.DOCKER_USERNAME }}/xteve:latest,${{ secrets.DOCKER_USERNAME }}/xteve:${{ steps.xteve_version.outputs.prop }} From ed1dd344b85346059ec3a49e95898ba39c5e45b3 Mon Sep 17 00:00:00 2001 From: Senex Crenshaw Date: Thu, 25 Aug 2022 16:14:43 +0000 Subject: [PATCH 171/189] Updated Readme --- README.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/README.md b/README.md index f0b0144..1c0faa5 100644 --- a/README.md +++ b/README.md @@ -70,6 +70,12 @@ This will also enable copy to clipboad by clicking the green links at the header ## Docker +Supported OS/ARCH: + +* linux/amd64 +* linux/arm64 +* linux/arm/v7 + ### Get an image Pull from dockerhub: From 8f81e815bed87ba6bf9809387011a18532599d88 Mon Sep 17 00:00:00 2001 From: Senex Crenshaw Date: Thu, 25 Aug 2022 17:06:52 +0000 Subject: [PATCH 172/189] Fixed null object --- Dockerfile.fromgit | 98 ---------------------------------------------- go.mod | 3 +- html/js/menu_ts.js | 2 +- src/webUI.go | 5 +-- ts/menu_ts.ts | 5 +-- 5 files changed, 6 insertions(+), 107 deletions(-) delete mode 100644 Dockerfile.fromgit diff --git a/Dockerfile.fromgit b/Dockerfile.fromgit deleted file mode 100644 index 5a65499..0000000 --- a/Dockerfile.fromgit +++ /dev/null @@ -1,98 +0,0 @@ -# syntax=docker/dockerfile:1 - -# First stage. Building a binary -# ----------------------------------------------------------------------------- - -# Base image for builder is debian 11 with golang 1.18+ pre-installed -#FROM golang:1.18.1-bullseye AS builder -FROM golang:bullseye AS builder - -# Download the source code -# Uncomment the below line to force git pull (no cache) -#ADD "https://www.random.org/cgi-bin/randbyte?nbytes=10&format=h" skipcache -RUN git clone https://github.com/SenexCrenshaw/xTeVe.git /src -WORKDIR /src - -# Install dependencies -RUN go mod download - -# Compile -RUN go build xteve.go - -# Second stage. Creating an image -# ----------------------------------------------------------------------------- - -# Base image -FROM alpine:latest - -ARG BUILD_DATE -ARG VCS_REF -ARG XTEVE_PORT=34400 -ARG XTEVE_VERSION - -LABEL org.opencontainers.image.created="{$BUILD_DATE}" \ - org.opencontainers.image.url="https://hub.docker.com/r/SenexCrenshaw/xteve/" \ - org.opencontainers.image.source="https://github.com/SenexCrenshaw/xTeVe" \ - org.opencontainers.image.version="{$XTEVE_VERSION}" \ - org.opencontainers.image.revision="{$VCS_REF}" \ - org.opencontainers.image.vendor="SenexCrenshaw" \ - org.opencontainers.image.title="xTeVe" \ - org.opencontainers.image.description="Dockerized fork of xTeVe by SenexCrenshaw" \ - org.opencontainers.image.authors="SenexCrenshaw SenexCrenshaw@gmail.com" - -ENV XTEVE_BIN=/home/xteve/bin -ENV XTEVE_CONF=/home/xteve/conf -ENV XTEVE_HOME=/home/xteve -ENV XTEVE_TEMP=/tmp/xteve - -# Add binary to PATH -ENV PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:$XTEVE_BIN - -# Set working directory -WORKDIR $XTEVE_HOME - -# Update package lists -RUN apk update -RUN apk upgrade - -# Install CA certificates -RUN apk add --no-cache ca-certificates - -# Timezone (TZ) -RUN apk update && apk add --no-cache tzdata -ENV TZ=America/New_York -RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone - -# Add ffmpeg and vlc -RUN apk add ffmpeg -RUN apk add vlc - -# Creat bin dir -RUN mkdir $XTEVE_BIN - -# Copy built binary from builder image -COPY --from=builder [ "/src/xteve", "${XTEVE_BIN}/" ] - -# Set binary permissions -RUN chmod +rx $XTEVE_BIN/xteve - -# Create XML cache directory -RUN mkdir $XTEVE_HOME/cache - -# Create working directories for xTeVe -RUN mkdir $XTEVE_CONF -RUN chmod a+rwX $XTEVE_CONF -RUN mkdir $XTEVE_TEMP -RUN chmod a+rwX $XTEVE_TEMP - -RUN mkdir /lib64 && ln -s /lib/libc.musl-x86_64.so.1 /lib64/ld-linux-x86-64.so.2 - -# Configure container volume mappings -VOLUME $XTEVE_CONF -VOLUME $XTEVE_TEMP - -# Expose Port -EXPOSE 34400 - -# Run the xTeVe executable -ENTRYPOINT ${XTEVE_BIN}/xteve -port=${XTEVE_PORT} -config=${XTEVE_CONF} diff --git a/go.mod b/go.mod index e279551..1e66c9b 100644 --- a/go.mod +++ b/go.mod @@ -1,6 +1,6 @@ module xteve -go 1.18 +go 1.19 require ( github.com/gorilla/websocket v1.5.0 @@ -15,7 +15,6 @@ require github.com/avfs/avfs v0.30.0 require ( github.com/davecgh/go-spew v1.1.1 // indirect github.com/pmezard/go-difflib v1.0.0 // indirect - github.com/stretchr/objx v0.4.0 // indirect golang.org/x/exp v0.0.0-20220722155223-a9213eeb770e // indirect golang.org/x/net v0.0.0-20220812174116-3211cb980234 // indirect golang.org/x/sys v0.0.0-20220817070843-5a390386f1f2 // indirect diff --git a/html/js/menu_ts.js b/html/js/menu_ts.js index 46bd5f2..d6b6605 100644 --- a/html/js/menu_ts.js +++ b/html/js/menu_ts.js @@ -700,8 +700,8 @@ function createLayout() { let obj = SERVER["clientInfo"]; let keys = getOwnObjProps(obj); for (var i = 0; i < keys.length; i++) { - document.getElementById(keys[i]).innerHTML = obj[keys[i]]; if (document.getElementById(keys[i])) { + document.getElementById(keys[i]).innerHTML = obj[keys[i]]; if (location.protocol === 'https:') { if (keys[i] === "xepg-url" || keys[i] === "m3u-url" || keys[i] === "DVR") { document.getElementById(keys[i]).addEventListener('click', function (event) { diff --git a/src/webUI.go b/src/webUI.go index 5dbf2b4..4fe47b3 100644 --- a/src/webUI.go +++ b/src/webUI.go @@ -8,7 +8,6 @@ func loadHTMLMap() { webUI["html/create-first-user.html"] = "PCFkb2N0eXBlIGh0bWw+CjxodG1sPgoKPGhlYWQ+CiAgPG1ldGEgY2hhcnNldD0idXRmLTgiPgogIDxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgsIGluaXRpYWwtc2NhbGU9MS4wIiAvPgogIDx0aXRsZT54VGVWZTwvdGl0bGU+CiAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJjc3Mvc2NyZWVuLmNzcyIgdHlwZT0idGV4dC9jc3MiPgogIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iY3NzL2Jhc2UuY3NzIiB0eXBlPSJ0ZXh0L2NzcyI+CiAgPHNjcmlwdCBsYW5ndWFnZT0iamF2YXNjcmlwdCIgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9ImpzL25ldHdvcmtfdHMuanMiPjwvc2NyaXB0PgogIDxzY3JpcHQgbGFuZ3VhZ2U9ImphdmFzY3JpcHQiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJqcy9hdXRoZW50aWNhdGlvbl90cy5qcyI+PC9zY3JpcHQ+CjwvaGVhZD4KCjxib2R5PgoKICA8ZGl2IGlkPSJoZWFkZXIiIGNsYXNzPSJpbWdDZW50ZXIiPjwvZGl2PgoKICA8ZGl2IGlkPSJib3giPgoKICAgIDxkaXYgaWQ9ImhlYWRsaW5lIj4KICAgICAgPGgxIGlkPSJoZWFkLXRleHQiIGNsYXNzPSJjZW50ZXIiPnt7LmFjY291bnQuaGVhZGxpbmV9fTwvaDE+CiAgICA8L2Rpdj4KCiAgICA8cCBpZD0iZXJyIiBjbGFzcz0iZXJyb3JNc2cgY2VudGVyIj48L3A+CgogICAgPGRpdiBpZD0iY29udGVudCI+CgogICAgICA8Zm9ybSBpZD0iYXV0aGVudGljYXRpb24iIGFjdGlvbj0iIiBtZXRob2Q9InBvc3QiPgoKICAgICAgICA8aDU+e3suYWNjb3VudC51c2VybmFtZS50aXRsZX19OjwvaDU+CiAgICAgICAgPGlucHV0IGlkPSJ1c2VybmFtZSIgdHlwZT0idGV4dCIgbmFtZT0idXNlcm5hbWUiIHBsYWNlaG9sZGVyPSJVc2VybmFtZSIgdmFsdWU9IiI+CiAgICAgICAgPGg1Pnt7LmFjY291bnQucGFzc3dvcmQudGl0bGV9fTo8L2g1PgogICAgICAgIDxpbnB1dCBpZD0icGFzc3dvcmQiIHR5cGU9InBhc3N3b3JkIiBuYW1lPSJwYXNzd29yZCIgcGxhY2Vob2xkZXI9IlBhc3N3b3JkIiB2YWx1ZT0iIj4KICAgICAgICA8aDU+e3suYWNjb3VudC5jb25maXJtLnRpdGxlfX06PC9oNT4KICAgICAgICA8aW5wdXQgaWQ9ImNvbmZpcm0iIHR5cGU9InBhc3N3b3JkIiBuYW1lPSJjb25maXJtIiBwbGFjZWhvbGRlcj0iQ29uZmlybSIgdmFsdWU9IiI+CgogICAgICA8L2Zvcm0+CgogICAgPC9kaXY+CgogICAgPGRpdiBpZD0iYm94LWZvb3RlciI+CiAgICAgIDxpbnB1dCBpZD0ic3VibWl0IiBjbGFzcz0iIiB0eXBlPSJidXR0b24iIHZhbHVlPSJ7ey5idXR0b24uY3JhZXRlQWNjb3VudH19IiBvbmNsaWNrPSJqYXZhc2NyaXB0OiBsb2dpbigpOyI+CiAgICA8L2Rpdj4KCgogIDwvZGl2Pgo8L2JvZHk+Cgo8L2h0bWw+" webUI["html/css/base.css"] = "KiB7CiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lOwogIC1tb3otYXBwZWFyYW5jZTogbm9uZTsKICAtbXMtYXBwZWFyYW5jZTogbm9uZTsKICBmb250LWZhbWlseTogIkFyaWFsIiwgc2Fucy1zZXJpZjsKICBsZXR0ZXItc3BhY2luZzogMnB4Owp9CgovKgo6Oi13ZWJraXQtc2Nyb2xsYmFyIHsgCiAgICBkaXNwbGF5OiBub25lOyAKfQoqLwoKOjotd2Via2l0LXNjcm9sbGJhciB7CiAgd2lkdGg6IDEycHg7CiAgaGVpZ2h0OiAxMnB4Owp9CgoKOjotd2Via2l0LXNjcm9sbGJhci10cmFjayB7CiAgLXdlYmtpdC1ib3gtc2hhZG93OiBpbnNldCAwIDAgNnB4IHJnYmEoMCwgMCwgMCwgMC4zKTsKICBib3gtc2hhZG93OiBpbnNldCAwIDAgNnB4IHJnYmEoMCwgMCwgMCwgMC4zKTsKICBib3JkZXItcmFkaXVzOiA1cHg7Cgp9Cgo6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iIHsKICBib3JkZXItcmFkaXVzOiA1cHg7CiAgLXdlYmtpdC1ib3gtc2hhZG93OiBpbnNldCAwIDAgNnB4IHJnYmEoMCwgMCwgMCwgMC42KTsKICBib3gtc2hhZG93OiBpbnNldCAwIDAgNnB4IHJnYmEoMCwgMCwgMCwgMC42KTsKICBiYWNrZ3JvdW5kLWNvbG9yOiAjNDQ0Owp9Cgo6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iOmhvdmVyIHsKICBiYWNrZ3JvdW5kOiAjMzMzOwp9Cgo6Oi13ZWJraXQtc2Nyb2xsYmFyLWNvcm5lciB7CiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7Cn0KCmEgewogIGNvbG9yOiAjMDBFNkZGOwp9CgpodG1sLApib2R5IHsKICBjb2xvcjogI2ZmZjsKICBtYXJnaW46IDBweCBhdXRvOwogIGhlaWdodDogMTAwJTsKICBmb250LXNpemU6IDE0cHg7Cn0KCmgyIHsKICBmb250LXNpemU6IDI0cHg7CiAgbGV0dGVyLXNwYWNpbmc6IDJweDsKfQoKaDMgewogIGZvbnQtc2l6ZTogMjJweDsKICBsZXR0ZXItc3BhY2luZzogMXB4Owp9CgpoNCB7CiAgZm9udC1zaXplOiAyMHB4OwogIGxldHRlci1zcGFjaW5nOiAxcHg7CiAgbGluZS1oZWlnaHQ6IDEuNWVtOwoKfQoKaDUgewogIGZvbnQtc2l6ZTogMTZweDsKICBsZXR0ZXItc3BhY2luZzogMXB4OwogIGxpbmUtaGVpZ2h0OiAxLjJlbTsKICBtYXJnaW46IDI1cHggMHB4IDEwcHggMHB4Owp9CgpociB7CiAgYm9yZGVyOiAwOwogIGhlaWdodDogMXB4OwogIGJhY2tncm91bmQ6ICMzMzM7CiAgbWFyZ2luOiAxMHB4IDBweDsKfQoKcCB7CiAgbWFyZ2luOiAycHg7CiAgcGFkZGluZzogMnB4IDVweDsKfQoKcHJlIHsKICBtYXJnaW46IDBweCAwcHggNXB4IDBweDsKICBmb250LXNpemU6IDEycHg7CiAgY29sb3I6ICNkZGQ7CiAgbGV0dGVyLXNwYWNpbmc6IDFweDsKICB3aGl0ZS1zcGFjZTogcHJlLXdyYXA7CiAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZTsKICBmb250LXNpemU6IDEycHg7CiAgZm9udC1zdHlsZTogbm9ybWFsOwogIGZvbnQtdmFyaWFudDogbm9ybWFsOwogIGxpbmUtaGVpZ2h0OiAxLjZlbTsKfQoKbGFiZWwgewogIG1hcmdpbi1ib3R0b206IDIwcHg7CiAgZGlzcGxheTogYmxvY2s7Cn0KCmxpIHsKICBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7CiAgYmFja2dyb3VuZC1jb2xvcjogIzExMTsKICBwYWRkaW5nOiAxMHB4IDIwcHg7CiAgY3Vyc29yOiBwb2ludGVyOwogIGJvcmRlci1sZWZ0OiBzb2xpZCAycHggIzExMTsKICB0cmFuc2l0aW9uOiBhbGwgMC4zOwp9CgpsaTpob3ZlciB7CiAgYm9yZGVyLWNvbG9yOiAjMDBFNkZGCn0KCnNlbGVjdCB7CiAgY3Vyc29yOiBwb2ludGVyOwogIHdpZHRoOiBjYWxjKDEwMCUgKyAycHgpOwogIGJvcmRlcjogc29saWQgMHB4ICMwMEU2RkY7CiAgYm9yZGVyLXJhZGl1czogMHB4OwogIG91dGxpbmU6IG5vbmU7CiAgY29sb3I6ICNmZmY7CiAgcGFkZGluZzogOXB4IDEwcHg7CiAgZGlzcGxheTogYmxvY2s7CiAgYmFja2dyb3VuZC1jb2xvcjogIzMzMzsKICBmb250LXNpemU6IDE0cHg7CiAgbWFyZ2luOiA1cHggMHB4IDVweCAwcHg7Cn0KCnNlbGVjdDpmb2N1cyB7CiAgb3V0bGluZTogbm9uZTsKfQoKaW5wdXQgewogIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTsKICBtYXJnaW46IDVweCAwcHg7CiAgcGFkZGluZzogMi41cHggMTBweDsKICBvdXRsaW5lOiBub25lOwogIGZvbnQtc2l6ZTogMTRweDsKfQoKaW5wdXRbdHlwZT1idXR0b25dLAppbnB1dFt0eXBlPXN1Ym1pdF0gewogIGN1cnNvcjogcG9pbnRlcjsKICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDAwOwogIG1hcmdpbjogMTBweCAxMHB4OwogIHBhZGRpbmc6IDEwcHggMjVweDsKICBib3JkZXI6IHNvbGlkIDBweDsKICBib3JkZXItY29sb3I6ICMwMDA7CiAgYm9yZGVyLXJhZGl1czogM3B4OwogIG91dGxpbmU6IG5vbmU7CiAgY29sb3I6ICNmZmY7Cn0KCmlucHV0W3R5cGU9YnV0dG9uXTpmb2N1cyB7CiAgb3V0bGluZTogbm9uZTsKfQoKaW5wdXRbdHlwZT1idXR0b25dOmhvdmVyIHsKICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDBFNkZGOwogIGNvbG9yOiAjMDAwOwp9CgppbnB1dFt0eXBlPWJ1dHRvbl06aG92ZXIuZGVsZXRlIHsKICBiYWNrZ3JvdW5kLWNvbG9yOiByZWQ7CiAgY29sb3I6ICNmZmY7Cn0KCmlucHV0W3R5cGU9dGV4dF0sCmlucHV0W3R5cGU9c2VhcmNoXSwKaW5wdXRbdHlwZT1wYXNzd29yZF0gewogIGNvbG9yOiAjZmZmOwogIHdpZHRoOiAtd2Via2l0LWNhbGMoMTAwJSAtIDBweCk7CiAgd2lkdGg6IC1tb3otY2FsYygxMDAlIC0gMHB4KTsKICB3aWR0aDogY2FsYygxMDAlIC0gMHB4KTsKICBvdXRsaW5lOiBub25lOwogIGJvcmRlcjogc29saWQgMXB4IHRyYW5zcGFyZW50OwogIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50OwogIGJvcmRlci1ib3R0b20tY29sb3I6ICM1NTU7CiAgYm9yZGVyLXJhZGl1czogMHB4OwogIHBhZGRpbmc6IDhweCAxMHB4Owp9CgppbnB1dFt0eXBlPSJjaGVja2JveCJdIHsKICBib3JkZXI6IHNvbGlkIDFweCAjMDBFNkZGOwogIGJhY2tncm91bmQtY29sb3I6ICMzMzM7CiAgaGVpZ2h0OiAyNXB4OwogIHdpZHRoOiAyNXB4OwogIGN1cnNvcjogcG9pbnRlcjsKICAvKgogIC13ZWJraXQtYXBwZWFyYW5jZTogY2hlY2tib3g7CiAgKi8KfQoKaW5wdXRbdHlwZT0iY2hlY2tib3giXTpjaGVja2VkIHsKICBjb2xvcjogI2ZmZjsKICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDBFNkZGOwogIC8qZGlzcGxheTogaW5saW5lLWJsb2NrOyovCn0KCmlucHV0W3R5cGU9ImNoZWNrYm94Il06YmVmb3JlIHsKICBwb3NpdGlvbjogaW5pdGlhbDsKICBsZWZ0OiAwcHg7CiAgbWFyZ2luLWxlZnQ6IC00cHg7CiAgY29udGVudDogIiAiOwp9CgppbnB1dFt0eXBlPSJjaGVja2JveCJdOmNoZWNrZWQ6YmVmb3JlIHsKICBwb3NpdGlvbjogaW5pdGlhbDsKICBsZWZ0OiAwcHg7CiAgbWFyZ2luLWxlZnQ6IC0zcHg7CiAgY29udGVudDogIuKckyI7CiAgY29sb3I6ICMwMDA7Cn0KCgppbnB1dFt0eXBlPWJ1dHRvbl0uY2FuY2VsIHsKCiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7CiAgYm9yZGVyLWNvbG9yOiByZWQ7Cn0KCmlucHV0W3R5cGU9YnV0dG9uXS5zYXZlIHsKICBiYWNrZ3JvdW5kLWNvbG9yOiAjMTExOwogIGZsb2F0OiByaWdodDsKfQoKCmlucHV0W3R5cGU9YnV0dG9uXS5ibGFjaywKaW5wdXRbdHlwZT1zdWJtaXRdLmJsYWNrIHsKICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDAwOwogIGJvcmRlci1jb2xvcjogIzAwMDsKfQoKaW5wdXRbdHlwZT1idXR0b25dLmNlbnRlciB7CiAgbWFyZ2luLXJpZ2h0OiBhdXRvOwogIG1hcmdpbi1sZWZ0OiBhdXRvOwogIGJhY2tncm91bmQtY29sb3I6ICMwMDA7CiAgYm9yZGVyLWNvbG9yOiAjMDAwOwp9CgoucG9pbnRlciB7CiAgY3Vyc29yOiBwb2ludGVyOwp9CgoucG9pbnRlcjpob3ZlciB7CiAgY29sb3I6ICMwMEU2RkY7CiAgY3Vyc29yOiBwb2ludGVyOwp9Cgouc29ydFRoaXMgewogIGNvbG9yOiAjMDBFNkZGOwp9CgoudzQwcHggewogIG1heC13aWR0aDogNDBweDsKfQoKLnc1MHB4IHsKICBtYXgtd2lkdGg6IDUwcHg7Cn0KCi53ODBweCB7CiAgbWF4LXdpZHRoOiA4MHB4Owp9CgoudzE1MHB4IHsKICBtYXgtd2lkdGg6IDE1MHB4Owp9CgoudzIwMHB4IHsKICBtYXgtd2lkdGg6IDIwMHB4OwogIG1pbi13aWR0aDogMTAwcHg7CiAgd2lkdGg6IDIwMHB4OwogIG92ZXJmbG93LXg6IGhpZGRlbjsKICB3aGl0ZS1zcGFjZTogbm93cmFwOwogIG92ZXJmbG93OiBoaWRkZW47CiAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7Cn0KCi53MzAwcHggewogIG1heC13aWR0aDogMzAwcHg7Cn0KCi53MjIwcHggewogIG1heC13aWR0aDogMjIwcHg7CiAgY3Vyc29yOiBhbGlhczsKfQoKLmZvb3RlciB7CiAgZm9udC1zaXplOiAxMHB4Owp9CgouY2VudGVyIHsKICB0ZXh0LWFsaWduOiBjZW50ZXI7Cn0KCi5zY3JlZW5Mb2dIaWRkZW4gewogIHRyYW5zZm9ybTogdHJhbnNsYXRlKDBweCwgLTExMHB4KTsKfQoKLmJvcmRlclNwYWNlIHsKICBtYXJnaW4tYm90dG9tOiAzMHB4Owp9Cgoubm9uZSB7CiAgZGlzcGxheTogbm9uZTsKfQoKLm5vdFZpc2libGUgewogIGhlaWdodDogMHB4OwogIGRpc3BsYXk6IG5vbmU7CiAgb3BhY2l0eTogMDsKICBib3JkZXItYm90dG9tOiAjMDAwIHNvbGlkIDBweDsKCn0KCi52aXNpYmxlIHsKICBvcGFjaXR5OiAxOwogIGRpc3BsYXk6IGJsb2NrOwogIGJvcmRlci1ib3R0b206ICM0NDQgc29saWQgMXB4OwogIHBhZGRpbmc6IDEwcHg7Cn0KCi5mbG9hdFJpZ2h0IHsKICBmbG9hdDogcmlnaHQ7Cn0KCi5mbG9hdExlZnQgewogIGZsb2F0OiBsZWZ0Owp9CgoubWVudS1hY3RpdmUgewogIGJhY2tncm91bmQtY29sb3I6ICMwMEU2RkY7Cn0KCiNicmFuY2ggewogIGRpc3BsYXk6IHRhYmxlOwogIG1hcmdpbjogYXV0bzsKICBjb2xvcjogcmVkOwp9CgojaW50ZXJhY3Rpb24gewogIG1hcmdpbi1ib3R0b206IDEwMHB4OwogIHRleHQtYWxpZ246IGNlbnRlcjsKICBib3JkZXItYm90dG9tOiBzb2xpZCAwcHggIzc3NzsKfQoKCi5oYWxmIHsKICBkaXNwbGF5OiBibG9jazsKICB3aWR0aDogNDUlOwp9CgoubWVudSB7CiAgYm9yZGVyOiBzb2xpZCAxcHggIzAwRTZGRjsKfQoKLmluZm9Nc2cgewogIGNvbG9yOiAjYWFhOwp9CgouZXJyb3JNc2cgewogIGNvbG9yOiByZWQ7Cn0KCi53YXJuaW5nTXNnIHsKICBjb2xvcjogeWVsbG93Owp9CgouZGVidWdNc2cgewogIGNvbG9yOiBtYWdlbnRhOwp9CgouTmV3cywKLk1vdmllLAouU2VyaWVzLAouU3BvcnRzLAouS2lkcyB7CiAgYm9yZGVyLWxlZnQ6IHNvbGlkIDJweAp9CgouTmV3cyB7CiAgYm9yZGVyLWNvbG9yOiB0b21hdG8KfQoKLk1vdmllIHsKICBib3JkZXItY29sb3I6IHJveWFsYmx1ZTsKfQoKLlNlcmllcyB7CiAgYm9yZGVyLWNvbG9yOiBnb2xkOwp9CgouU3BvcnRzIHsKICBib3JkZXItY29sb3I6IHllbGxvd2dyZWVuOwp9CgouS2lkcyB7CiAgYm9yZGVyLWNvbG9yOiBtZWRpdW1wdXJwbGU7Cn0KCi8qIExvYWRpbmcgKi8KI2xvYWRpbmcgewogIGxlZnQ6IDBweDsKICB0b3A6IDBweDsKICB6LWluZGV4OiAxMDAwMDsKICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjgpOwogIG1hcmdpbjogYXV0bzsKICB3aWR0aDogMTAwJTsKICBoZWlnaHQ6IDEwMCU7Cn0KCgoubG9hZGVyIHsKICBib3JkZXI6IDVweCBzb2xpZCB0cmFuc3BhcmVudDsKICBib3JkZXItcmFkaXVzOiA1MCU7CiAgYm9yZGVyLXRvcDogNXB4IHNvbGlkICMwMEU2RkY7CiAgYm9yZGVyLWJvdHRvbTogNXB4IHNvbGlkICMwMEU2RkY7CiAgd2lkdGg6IDUwcHg7CiAgaGVpZ2h0OiA1MHB4OwogIC13ZWJraXQtYW5pbWF0aW9uOiBzcGluIDEuMnMgbGluZWFyIGluZmluaXRlOwogIGFuaW1hdGlvbjogc3BpbiAxLjJzIGxpbmVhciBpbmZpbml0ZTsKCiAgcG9zaXRpb246IGZpeGVkOwogIG1hcmdpbjogYXV0bzsKCiAgdG9wOiAwOwogIHJpZ2h0OiAwOwogIGJvdHRvbTogMDsKICBsZWZ0OiAwOwoKfQoKQC13ZWJraXQta2V5ZnJhbWVzIHNwaW4gewogIDAlIHsKICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoMGRlZyk7CiAgfQoKICAxMDAlIHsKICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKTsKICB9Cn0KCkBrZXlmcmFtZXMgc3BpbiB7CiAgMCUgewogICAgdHJhbnNmb3JtOiByb3RhdGUoMGRlZyk7CiAgfQoKICAxMDAlIHsKICAgIHRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7CiAgfQp9" webUI["html/css/screen.css"] = "bmF2IGltZyB7CiAgZGlzcGxheTogYmxvY2s7CiAgbWF4LWhlaWdodDogMjBweDsKICBtYXgtd2lkdGg6IDIwcHg7CiAgZmxvYXQ6IGxlZnQ7Cn0KCm5hdiBwIHsKICB0ZXh0LWFsaWduOiBsZWZ0OwogIHBhZGRpbmc6IDBweCAzMHB4Owp9CgojbGF5b3V0IHsKICBkaXNwbGF5OiBibG9jazsKICBoZWlnaHQ6IDEwMCU7Cn0KCgoubGF5b3V0LWxlZnQgewogIGRpc3BsYXk6IGJsb2NrOwogIG1pbi13aWR0aDogMTUwcHg7CiAgbWF4LXdpZHRoOiAyMCU7CiAgYmFja2dyb3VuZC1jb2xvcjogIzExMTsKICBoZWlnaHQ6IGluaGVyaXQ7CiAgZmxvYXQ6IGxlZnQ7Cn0KCi5sYXlvdXQtcmlnaHQgewogIGRpc3BsYXk6IGJsb2NrOwogIGJhY2tncm91bmQtY29sb3I6ICM0NDQ7Cn0KCiNtZW51LXdyYXBwZXIgewogIGhlaWdodDogMTAwJTsKfQoKCiNsb2dvIHsKICBkaXNwbGF5OiBibG9jazsKICBtaW4td2lkdGg6IDE4MHB4OwogIHdpZHRoOiAxMDAlOwogIGhlaWdodDogMTAwcHg7CiAgYmFja2dyb3VuZDogdXJsKCIuLi9pbWcvbG9nb193XzYwMHgyMDAucG5nIik7CiAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDsKICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7CiAgYmFja2dyb3VuZC1zaXplOiAxMDAlOwp9CgoKI3BhZ2UgewogIG1heC13aWR0aDogOTUwcHg7CiAgbWFyZ2luOiBhdXRvOwogIGJhY2tncm91bmQtY29sb3I6ICM0NDQ7CgogIC8qCiAgaGVpZ2h0OiAtd2Via2l0LWNhbGMoMTAwJSAtIDEzMHB4KTsKICBoZWlnaHQ6IC1tb3otY2FsYygxMDAlIC0gMTMwcHgpOwogIGhlaWdodDogY2FsYygxMDAlIC0gMTMwcHgpOwogICovCgogIG1pbi1oZWlnaHQ6IC13ZWJraXQtY2FsYygxMDAlIC0gMTIwcHgpOwogIG1pbi1oZWlnaHQ6IC1tb3otY2FsYygxMDAlIC0gMTIwcHgpOwogIG1pbi1oZWlnaHQ6IGNhbGMoMTAwJSAtIDEyMHB4KTsKCgogIGJveC1zaGFkb3c6IDBweCA1cHggNXB4ICMyMjI7Cgp9CgojdWlTZXR0aW5nIHsKICBmbG9hdDogcmlnaHQ7CiAgbWFyZ2luLXJpZ2h0OiAyNXB4Owp9CgojYm94IGlucHV0W3R5cGU9dGV4dF0sCiNib3ggaW5wdXRbdHlwZT1wYXNzd29yZF0gewogIHdpZHRoOiAtd2Via2l0LWNhbGMoMTAwJSAtIDIwcHgpOwogIHdpZHRoOiAtbW96LWNhbGMoMTAwJSAtIDIwcHgpOwogIHdpZHRoOiBjYWxjKDEwMCUgLSAyMHB4KTsKfQoKI2JveCBpbnB1dFt0eXBlPXN1Ym1pdF0gewogIG1hcmdpbjogNTBweCBhdXRvOwp9Cgojc2V0dGluZ3MgewogIGRpc3BsYXk6IGJsb2NrOwogIHBhZGRpbmc6IDEwcHggMTBweDsKfQoKI3NldHRpbmdzIGg1IHsKICBtYXJnaW46IDUwcHggMHB4IDEwcHggMHB4Owp9CgojY29udGVudC1pbnRlcmFjdGlvbiAuc2VhcmNoIHsKICB3aWR0aDogMjAwcHg7CiAgYm9yZGVyOiAxcHggc29saWQgIzAwMDsKICBwYWRkaW5nOiA5cHg7CiAgYmFja2dyb3VuZC1jb2xvcjogIzMzMzsKICBtYXJnaW46IDEwcHg7CiAgZmxvYXQ6IHJpZ2h0OwogIGJvcmRlci1yYWRpdXM6IDNweDsKCn0KCiNteVN0cmVhbXMgewogIHBvc2l0aW9uOiBmaXhlZDsKICBib3R0b206IDBweDsKICBiYWNrZ3JvdW5kLWNvbG9yOiAjMTExOwogIHdpZHRoOiAxMDAlOwogIG1heC13aWR0aDogOTUwcHg7CgogIC8qCiAgbWF4LWhlaWdodDogMTAwcHg7CiAgKi8KICBtYXJnaW4tYm90dG9tOiAwcHg7Cn0KCiNteVN0cmVhbXMgaW1nIHsKICB3aWR0aDogNCU7CiAgcGFkZGluZzogMnB4IDVweDsKICBjdXJzb3I6IHBvaW50ZXI7CiAgZmxvYXQ6IHJpZ2h0Owp9CgovKiBXaXphcmQqLwojYm94IHsKICBiYWNrZ3JvdW5kLWNvbG9yOiAjNDQ0OwogIG1pbi1oZWlnaHQ6IDQwMHB4OwoKICBkaXNwbGF5OiBmbGV4OwogIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOwp9CgojYm94IHAgewogIHBhZGRpbmc6IDEwcHggMHB4Owp9CgojYm94LWZvb3RlciB7CiAgbWFyZ2luLXRvcDogYXV0bzsKfQoKI2JveC1mb290ZXIgewogIG1hcmdpbjogYXV0bzsKICBwYWRkaW5nOiAxMHB4Owp9CgojaGVhZGxpbmUgewogIGJhY2tncm91bmQtY29sb3I6ICMyMjI7CiAgYm9yZGVyLWJvdHRvbTogc29saWQgMnB4ICMyMjI7CiAgdHJhbnNpdGlvbjogYWxsIDAuNXM7CiAgcGFkZGluZzogMTBweCAwcHg7CiAgZGlzcGxheTogYmxvY2s7Cn0KCiNjb250ZW50IHsKICBkaXNwbGF5OiBibG9jazsKICBvdmVyZmxvdzogYXV0bzsKICBwYWRkaW5nOiAxMHB4Owp9CgovKiAtLS0gKi8KCgojY2xpZW50SW5mbywKI2FjdGl2ZVN0cmVhbXMsCiNpbmFjdGl2ZVN0cmVhbXMgewogIGZvbnQtZmFtaWx5OiBtb25vc3BhY2U7CiAgZGlzcGxheTogYmxvY2s7CiAgZm9udC1zaXplOiA5cHg7CiAgYmFja2dyb3VuZC1jb2xvcjogIzExMTsKICBjb2xvcjogIzAwRTZGRjsKICBib3JkZXItYm90dG9tOiBzb2xpZCAwcHg7CiAgOwogIHBhZGRpbmc6IDBweDsKICBsZXR0ZXItc3BhY2luZzogMXB4OwogIG92ZXJmbG93LXg6IGhpZGRlbjsKICBib3JkZXItc3BhY2luZzogNHB4IDRweDsKICBib3JkZXItYm90dG9tOiBzb2xpZCAxcHggIzQ0NDsKfQoKI215U3RyZWFtc0JveCB7CiAgcG9zaXRpb246IHJlbGF0aXZlOwogIHBhZGRpbmc6IDBweDsKICAvKmhlaWdodDogMTAwcHg7Ki8KICBtYXgtaGVpZ2h0OiAxNTBweDsKICBiYWNrZ3JvdW5kLWNvbG9yOiAjMTExOwogIGNvbG9yOiB3aGl0ZTsKICBkaXNwbGF5OiBmbGV4OwogIGp1c3RpZnktY29udGVudDogY2VudGVyOwogIGFsaWduLWl0ZW1zOiBjZW50ZXI7Cn0KCiNvcGVuU3RyZWFtcyB7CiAgd2lkdGg6IDIwcHg7CiAgaGVpZ2h0OiAyMHB4OwogIGN1cnNvcjogcG9pbnRlcjsKICBmbG9hdDogcmlnaHQ7CiAgcG9zaXRpb246IGFic29sdXRlOwogIHJpZ2h0OiAwcHg7CiAgYm90dG9tOiAwcHg7CiAgYmFja2dyb3VuZDogdXJsKCIuLi9pbWcvdG91Y2gucG5nIik7CiAgYmFja2dyb3VuZC1jb2xvcjogIzExMTsKCiAgYmFja2dyb3VuZC1wb3NpdGlvbjogYm90dG9tIHJpZ2h0Owp9CgojYWxsU3RyZWFtcyB7CiAgd2lkdGg6IDEwMCU7CiAgaGVpZ2h0OiAxMDAlOwogIHBhZGRpbmc6IDJweDsKfQoKI2FjdGl2ZVN0cmVhbXMsCiNpbmFjdGl2ZVN0cmVhbXMgewogIG92ZXJmbG93LXk6IHNjcm9sbDsKICB3aWR0aDogNTAlOwogIG1heC1oZWlnaHQ6IDEwMHB4OwogIGZsb2F0OiBsZWZ0Owp9CgojYWN0aXZlU3RyZWFtcyAudGRLZXksCiNpbmFjdGl2ZVN0cmVhbXMgLnRkS2V5IHsKICB3aWR0aDogNzVweDsKfQoKCgoKI2luYWN0aXZlU3RyZWFtcyAudGRLZXkgewogIGNvbG9yOiByZWQ7Cn0KCiNjbGllbnRJbmZvIC50ZFZhbCwKI2xvZ0luZm8gLnRkVmFsLAojYWN0aXZlU3RyZWFtcyAudGRWYWwsCiNpbmFjdGl2ZVN0cmVhbXMgLnRkVmFsLAojbWFwcGluZ0luZm8gLnRkVmFsIHsKICBjb2xvcjogI2FhYTsKICB3aGl0ZS1zcGFjZTogaW5oZXJpdDsKfQoKI2NsaWVudEluZm8gLnRkVmFsTGluaywKI2xvZ0luZm8gLnRkVmFsTGluaywKI2FjdGl2ZVN0cmVhbXMgLnRkVmFsTGluaywKI2luYWN0aXZlU3RyZWFtcyAudGRWYWxMaW5rLAojbWFwcGluZ0luZm8gLnRkVmFsTGluayB7CiAgY29sb3I6IGxpbWU7CiAgd2hpdGUtc3BhY2U6IGluaGVyaXQ7Cn0KCiNib3gtd3JhcHBlciB7CiAgZGlzcGxheTogaW5saW5lLWJsb2NrOwogIHdpZHRoOiAxMDAlOwoKICBvdmVyZmxvdy15OiBzY3JvbGw7Cn0KCiNjb250ZW50X3RhYmxlLAojbWFwcGluZy1kZXRhaWwtdGFibGUsCiNjb250ZW50X3RhYmxlIHsKICBkaXNwbGF5OiB0YWJsZTsKCiAgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTsKICBvdmVyZmxvdy15OiBzY3JvbGw7CiAgd2lkdGg6IDEwMCU7Cn0KCgojY29udGVudF90YWJsZSAuY29udGVudF90YWJsZV9oZWFkZXIgewogIGJhY2tncm91bmQtY29sb3I6ICMzMzM7CiAgaGVpZ2h0OiA1MHB4OwogIGJvcmRlci1ib3R0b206IHNvbGlkIDFweCAjMTExOwogIGJvcmRlci1sZWZ0OiBzb2xpZCAzcHggIzMzMzsKICBjdXJzb3I6IGF1dG87Cgp9CgoKdGJvZHkgewogIHdpZHRoOiAxMDAlOwp9CgoKLnRhYmxlRWxsaXBzaXMgewogIHdpZHRoOiAxNTBweDsKICBvdmVyZmxvdzogaGlkZGVuOwogIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwogIHdoaXRlLXNwYWNlOiBub3dyYXA7Cn0KCiNjb250ZW50X3RhYmxlIGltZyB7CiAgZGlzcGxheTogYmxvY2s7CiAgbWF4LWhlaWdodDogMjhweDsKICBtYXJnaW4tbGVmdDogYXV0bzsKICBtYXJnaW4tcmlnaHQ6IGF1dG87CiAgbWF4LXdpZHRoOiAzMHB4Owp9CgojY29udGVudF90YWJsZSB0ciB7CiAgYm9yZGVyLWxlZnQ6IHNvbGlkIDNweCA0NDQ7CiAgYm9yZGVyLWJvdHRvbTogc29saWQgMXB4ICMzMzM7CiAgY3Vyc29yOiBwb2ludGVyOwp9CgojY29udGVudF90YWJsZSB0cjpob3ZlciB7CiAgYmFja2dyb3VuZC1jb2xvcjogIzMzMzsKfQoKI2NvbnRlbnRfdGFibGUgdGQgewoKICBwYWRkaW5nOiAwcHggMnB4Owp9CgojY29udGVudF90YWJsZSBpbnB1dFt0eXBlPXRleHRdIHsKICB3aWR0aDogODAlOwogIG1pbi13aWR0aDogMzVweDsKICBtYXgtd2lkdGg6IDYwcHg7CiAgYm9yZGVyOiAwcHg7CiAgYmFja2dyb3VuZC1jb2xvcjogIzMzMzsKICBtYXJnaW4tbGVmdDogNXB4OwogIHRleHQtYWxpZ246IGxlZnQ7Cn0KCiNjb250ZW50X3RhYmxlIGlucHV0W3R5cGU9Y2hlY2tib3hdIHsKICBtYXgtd2lkdGg6IDI1cHg7CiAgbWFyZ2luOiBhdXRvOwp9CgoKLnNob3dCdWxrIHsKICBkaXNwbGF5OiBibG9jazsKfQoKLmhpZGVCdWxrIHsKICBkaXNwbGF5OiBub25lOwp9CgojY29udGVudF90YWJsZSB0ci5hY3RpdmVFUEcgewogIGJvcmRlci1sZWZ0OiBzb2xpZCAzcHggbGF3bmdyZWVuOwp9CgojY29udGVudF90YWJsZSB0ci5ub3RBY3RpdmVFUEcgewogIGJvcmRlci1sZWZ0OiBzb2xpZCAzcHggcmVkOwp9CgoKI2xvZ1NjcmVlbiBwIHsKICB3aGl0ZS1zcGFjZTogcHJlOwogIGZvbnQtc2l6ZTogMTBweDsKICAvKgogIGxpbmUtaGVpZ2h0OiAxLjZlbTsKICBmb250LWZhbWlseTogIkFyaWFsIiwgc2Fucy1zZXJpZjsKICAqLwogIGxldHRlci1zcGFjaW5nOiAxcHg7CiAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZTsKICBmb250LXNpemU6IDEycHg7CiAgZm9udC1zdHlsZTogbm9ybWFsOwogIGZvbnQtdmFyaWFudDogbm9ybWFsOwogIGxpbmUtaGVpZ2h0OiAxLjZlbTsKfQoKI3BvcHVwIHsKICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNCk7CiAgcG9zaXRpb246IGZpeGVkOwogIGxlZnQ6IDBweDsKICB3aWR0aDogMTAwJTsKICB6LWluZGV4OiAxMDA7CiAgaGVpZ2h0OiAxMDAlOwogIG92ZXJmbG93OiBzY3JvbGw7Cn0KCiNtYXBwaW5nLWRldGFpbCwKI3VzZXItZGV0YWlsLAojZmlsZS1kZXRhaWwsCiNwb3B1cC1jdXN0b20gewogIGJveC1zaGFkb3c6IDBweCA1cHggNDBweCAjMDAwOwogIG1hcmdpbi10b3A6IDIwcHg7CiAgbWFyZ2luLWxlZnQ6IGF1dG87CiAgbWFyZ2luLXJpZ2h0OiBhdXRvOwoKICBtYXgtd2lkdGg6IDgwMHB4OwogIGJhY2tncm91bmQtY29sb3I6ICMyMjI7CiAgcGFkZGluZzogMTBweDsKICBvdmVyZmxvdzogYXV0bzsKfQoKI3BvcHVwLWN1c3RvbSBoMyB7CiAgdGV4dC1hbGlnbjogY2VudGVyOwp9CgojZmlsZS1kZXRhaWwgaW5wdXRbdHlwZT10ZXh0XSB7CiAgd2lkdGg6IC13ZWJraXQtY2FsYygxMDAlIC0gMjBweCk7CiAgd2lkdGg6IC1tb3otY2FsYygxMDAlIC0gMjBweCk7CiAgd2lkdGg6IGNhbGMoMTAwJSAtIDIwcHgpOwp9CgojbWFwcGluZy1kZXRhaWwgaW1nIHsKICBkaXNwbGF5OiBibG9jazsKICBtYXgtaGVpZ2h0OiAzMHB4OwogIG1hcmdpbi1ib3R0b206IDIwcHg7CiAgbWFyZ2luLWxlZnQ6IGF1dG87CiAgbWFyZ2luLXJpZ2h0OiBhdXRvOwp9CgojcG9wdXAtY3VzdG9tIGlucHV0W3R5cGU9dGV4dF0sCiNwb3B1cC1jdXN0b20gaW5wdXRbdHlwZT1wYXNzd29yZF0sCiNtYXBwaW5nLWRldGFpbCBpbnB1dFt0eXBlPXRleHRdLAojY29udGVudF9zZXR0aW5ncyBpbnB1dFt0eXBlPXRleHRdLAojY29udGVudF9zZXR0aW5ncyBpbnB1dFt0eXBlPXBhc3N3b3JkXSB7CiAgYm9yZGVyOiBzb2xpZCAxcHg7CiAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDsKICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzMzOwogIHRleHQtYWxpZ246IGxlZnQ7CiAgd2lkdGg6IC13ZWJraXQtY2FsYygxMDAlIC0gMjBweCk7CiAgd2lkdGg6IC1tb3otY2FsYygxMDAlIC0gMjBweCk7CiAgd2lkdGg6IGNhbGMoMTAwJSAtIDIwcHgpOwp9CgojcG9wdXAtY3VzdG9tIGlucHV0W3R5cGU9dGV4dF0ubm90QXZhaWxhYmxlIHsKICBib3JkZXItY29sb3I6IHJlZDsKICBjb2xvcjogIzY2NjsKICBjdXJzb3I6IG5vdC1hbGxvd2VkOwp9CgojcG9wdXAtY3VzdG9tIGlucHV0W3R5cGU9dGV4dF06ZGlzYWJsZWQgewogIGNvbG9yOiAjNjY2OwogIGN1cnNvcjogbm90LWFsbG93ZWQ7Cn0KCiNtYXBwaW5nLWRldGFpbC10YWJsZSwKI3VzZXItZGV0YWlsLXRhYmxlIHsKICBkaXNwbGF5OiBpbmxpbmUtdGFibGU7CiAgd2lkdGg6IDEwMCU7Cn0KCiNwb3B1cC1jdXN0b20gdGFibGUsCiNjb250ZW50X3NldHRpbmdzIHRhYmxlIHsKICBkaXNwbGF5OiBpbmxpbmUtdGFibGU7CiAgdGFibGUtbGF5b3V0OiBmaXhlZDsKICB3aWR0aDogMTAwJTsKfQoKCiNtYXBwaW5nLWRldGFpbC10YWJsZSB0ZCwKI3VzZXItZGV0YWlsLXRhYmxlIHRkIHsKICBwYWRkaW5nOiAxMHB4IDBweDsKCn0KCiNtYXBwaW5nLWRldGFpbC10YWJsZSB0ZC5sZWZ0LAojdXNlci1kZXRhaWwtdGFibGUgdGQubGVmdCwKI3BvcHVwLWN1c3RvbSB0ZC5sZWZ0IHsKICB3aWR0aDogMzglOwp9CgouaW50ZXJhY3Rpb24sCiNpbnRlcmFjdGlvbiB7CiAgbWFyZ2luLXRvcDogMjBweDsKICBkaXNwbGF5OiBpbmxpbmUtZmxleDsKICBmbG9hdDogcmlnaHQ7Cn0KCi5pbnRlcmFjdGlvbiBpbnB1dFt0eXBlPWJ1dHRvbl0sCi5pbnRlcmFjdGlvbiBpbnB1dFt0eXBlPXN1Ym1pdF0gewogIGJhY2tncm91bmQtY29sb3I6ICMwMDA7CiAgbWluLXdpZHRoOiAxMDBweDsKICBtYXJnaW46IDBweCAxMHB4OwogIHRleHQtYWxpZ246IGNlbnRlcjsKfQoKI25vdGlmaWNhdGlvbiB7CiAgZGlzcGxheTogYmxvY2s7CiAgcG9zaXRpb246IGZpeGVkOwogIHJpZ2h0OiAwcHg7CiAgaGVpZ2h0OiAxMDAlOwogIHdpZHRoOiAyNTBweDsKCiAgYmFja2dyb3VuZC1jb2xvcjogIzIyMjsKICBib3gtc2hhZG93OiAwcHggMHB4IDIwcHggIzAwMDsKfQoKI25vdGlmaWNhdGlvbiBoNSB7CiAgYmFja2dyb3VuZC1jb2xvcjogIzEyMTIxMjsKICBwYWRkaW5nOiA1cHggMTBweCA1cHggMTBweDsKfQoKI25vdGlmaWNhdGlvbiBwcmUgewogIHBhZGRpbmc6IDBweCAxMHB4IDBweCAxMHB4Owp9Cgojbm90aWZpY2F0aW9uIHAgewogIGZvbnQtc2l6ZTogMTAgcHg7CiAgbWFyZ2luOiAwcHg7CiAgcGFkZGluZzogMHB4IDEwcHggNXB4IDEwcHg7Cn0KCiNub3RpZmljYXRpb24gLmVsZW1lbnQgewogIC8qcGFkZGluZzogMHB4IDVweDsqLwogIG1hcmdpbjogNXB4IDVweDsKICBib3JkZXItcmFkaXVzOiA1cHg7CiAgYmFja2dyb3VuZC1jb2xvcjogIzE4MTgxODsKICBib3JkZXItbGVmdDogMTBweCBzb2xpZCBncmVlbjsKfQoKCkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjIwcHgpIHsKICBib2R5IHsKICAgIHdpZHRoOiAxMDAlOwogICAgYmFja2dyb3VuZC1jb2xvcjogIzQ0NDsKICB9CgogIGgxIHsKICAgIGZvbnQtc2l6ZTogMjZweDsKICAgIGxldHRlci1zcGFjaW5nOiAzcHg7CiAgfQoKICBuYXYgcCB7CiAgICBkaXNwbGF5OiBibG9jazsKICB9CgoKCiAgI2hlYWRlcl9jb25maWcgewogICAgZGlzcGxheTogYmxvY2s7CiAgICBoZWlnaHQ6IDEwMHB4OwogICAgYmFja2dyb3VuZDogdXJsKCIuLi9pbWcvbG9nb193XzYwMHgyMDAucG5nIik7CiAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0OwoKICAgIGJhY2tncm91bmQtc2l6ZTogMzAwcHggMTAwcHg7CiAgfQoKICAjc2NyZWVuTG9nIHsKICAgIG1hcmdpbi1sZWZ0OiAzMDBweDsKCiAgICB0cmFuc2l0aW9uOiBub25lOwogICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7CiAgICBib3JkZXItYm90dG9tOiBzb2xpZCAxcHggdHJhbnNwYXJlbnQ7CiAgICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAjMjIyOwogIH0KCiAgI3NldHRpbmdzIHsKICAgIC8qCiAgICBoZWlnaHQ6IC13ZWJraXQtY2FsYygxMDAlIC0gMTAwcHgpOwogICAgaGVpZ2h0OiAtbW96LWNhbGMoMTAwJSAtIDEwMHB4KTsKICAgIGhlaWdodDogY2FsYygxMDAlIC0gMTAwcHgpOwogICAgKi8KICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgIG92ZXJmbG93OiBhdXRvOwogIH0KCgogIC5zY3JlZW5Mb2dIaWRkZW4gewogICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMHB4LCAwcHgpOwogIH0KCgogICNib3ggewogICAgZGlzcGxheTogYmxvY2s7CiAgICBtaW4taGVpZ2h0OiA1MDBweDsKICAgIG1heC13aWR0aDogNTAwcHg7CiAgICBtYXJnaW46IDEwcHggYXV0bzsKICAgIGJhY2tncm91bmQtY29sb3I6ICM0NDQ7CiAgICBib3gtc2hhZG93OiAwcHggNXB4IDVweCAjMjIyOwoKICAgIGRpc3BsYXk6IGZsZXg7CiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogIH0KCn0=" - webUI["html/img/BC-QR.jpg"] = "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" webUI["html/img/filter.png"] = "iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAAAXNSR0IArs4c6QAAAAlwSFlzAAAsSwAALEsBpT2WqQAABCRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IlhNUCBDb3JlIDUuNC4wIj4KICAgPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIgogICAgICAgICAgICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgICAgICAgICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyI+CiAgICAgICAgIDx0aWZmOlJlc29sdXRpb25Vbml0PjI8L3RpZmY6UmVzb2x1dGlvblVuaXQ+CiAgICAgICAgIDx0aWZmOkNvbXByZXNzaW9uPjU8L3RpZmY6Q29tcHJlc3Npb24+CiAgICAgICAgIDx0aWZmOlhSZXNvbHV0aW9uPjI4ODwvdGlmZjpYUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6T3JpZW50YXRpb24+MTwvdGlmZjpPcmllbnRhdGlvbj4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+Mjg4PC90aWZmOllSZXNvbHV0aW9uPgogICAgICAgICA8ZXhpZjpQaXhlbFhEaW1lbnNpb24+NTA8L2V4aWY6UGl4ZWxYRGltZW5zaW9uPgogICAgICAgICA8ZXhpZjpDb2xvclNwYWNlPjE8L2V4aWY6Q29sb3JTcGFjZT4KICAgICAgICAgPGV4aWY6UGl4ZWxZRGltZW5zaW9uPjUwPC9leGlmOlBpeGVsWURpbWVuc2lvbj4KICAgICAgICAgPGRjOnN1YmplY3Q+CiAgICAgICAgICAgIDxyZGY6QmFnLz4KICAgICAgICAgPC9kYzpzdWJqZWN0PgogICAgICAgICA8eG1wOk1vZGlmeURhdGU+MjAxOC0wNy0yOFQxOTowNzo2OTwveG1wOk1vZGlmeURhdGU+CiAgICAgICAgIDx4bXA6Q3JlYXRvclRvb2w+UGl4ZWxtYXRvciAzLjM8L3htcDpDcmVhdG9yVG9vbD4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgIDwvcmRmOlJERj4KPC94OnhtcG1ldGE+Cs038OQAAAOISURBVGgF5ZpLSBVRGMfvvfmqCKKiKCqKtE3SQ8haJJm1ctPCZYHrFhXtohcUBLVsU1BRBJKLXpsSKs1aCL1oUUhvMgIloodZKmLZ72+OzNVx7jzOXGfqg/89Z875zv/7f35n7px7vanUP2JptzyGhoYKmK8GW0EZmA/mgW7wHrwDN0BTOp0epPVtxBBnLdgIVoE5YBboBR2gDTTA/5DWn0FeDPaBz8CLdeF0EBR5jYRvKbgABoAXa8Opwit/CudK8NoLs4PPM8ZyBsNnB/jpsD7X0C8cjgDXnaQkqkEPCGMSuGWivxxzx8OQj6xtpHWuPhPloHfEMWzTD0HN2GQY2xuW2Lb+/Fh+VaIQPLE5meh+gmSxFYz+BjBogtjGscfiH26Z2GmbNNltVQAIpwDdP6ZNO2iRYqTpZGhfgWUaiMC2w1kCzkbALcqLvDVvUyK6MW9HFES0b8BvsFwXEZi4F+iBtykCcjtlqf0igr52VJ1eqiIgzzdlrRIZfWfJd3SD8ZbqHvkB4XSDpJNB9V0VcX/cT4Ys/zEzSuSj/3WxW9GpRD7ETpZ/QcOJ6LyfdHugitxNehbob9G7lo4PXWBmQhPqQ/fsDOeUfjqNCU1Csi+TQ5+2luzc3yaRr6elevQZwhZr4bomYam0U41yabYqov5hvSTMjlp6RyuiAarSTLPZmox5246+lVREx/isiuh6NxhUJwF2yEpCWu1bK8WEsjyRgCSa0XrVrjNra2mC7TWD5ilYAuJoA4jSlnppF5dVEU3g0ENTD4b3nsZiZsfGJuGqj8qY+CINGqP2GLZCJ+HjtpblxAJ9k3cPrLfGJrnVUaSCarxw0jFua1lOLNBerANx+byya6IkLM2uLZWpAl6/Mcc1EjvjKtLrJNLqI5HnjfQ+bsVeteb0g2y/t7hGvd7CNjenOL8OkJ40KtOdTF+Cl/nV6Mkf4gxocI9vZPYLLKs9iQrqRIACcM2IXGeSboYrg+rztY5ARaDJWUeo0W+sXudLTFhnApaAW6FkZy/+yuXasLoCrSfwVHAnW0+gK93YawKJMLUIAdNAKwhqnSxcYUpPKB6EBE2mg7VR///EX24jybTQerXnOC70FyVP3gjTPXPTQyaP8NFPNeJrCNTPP667JKOq6VNo/A2hes5ccUjmEmPmDoD5+FMgWCcA+3FG57QJP//kQ1PgGBIOToEDgUn+t4V/AJeGknwARIKLAAAAAElFTkSuQmCC" webUI["html/img/log.png"] = "iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAAAXNSR0IArs4c6QAAAAlwSFlzAAAsSwAALEsBpT2WqQAABCRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IlhNUCBDb3JlIDUuNC4wIj4KICAgPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIgogICAgICAgICAgICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgICAgICAgICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyI+CiAgICAgICAgIDx0aWZmOlJlc29sdXRpb25Vbml0PjI8L3RpZmY6UmVzb2x1dGlvblVuaXQ+CiAgICAgICAgIDx0aWZmOkNvbXByZXNzaW9uPjU8L3RpZmY6Q29tcHJlc3Npb24+CiAgICAgICAgIDx0aWZmOlhSZXNvbHV0aW9uPjI4ODwvdGlmZjpYUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6T3JpZW50YXRpb24+MTwvdGlmZjpPcmllbnRhdGlvbj4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+Mjg4PC90aWZmOllSZXNvbHV0aW9uPgogICAgICAgICA8ZXhpZjpQaXhlbFhEaW1lbnNpb24+NTA8L2V4aWY6UGl4ZWxYRGltZW5zaW9uPgogICAgICAgICA8ZXhpZjpDb2xvclNwYWNlPjE8L2V4aWY6Q29sb3JTcGFjZT4KICAgICAgICAgPGV4aWY6UGl4ZWxZRGltZW5zaW9uPjUwPC9leGlmOlBpeGVsWURpbWVuc2lvbj4KICAgICAgICAgPGRjOnN1YmplY3Q+CiAgICAgICAgICAgIDxyZGY6QmFnLz4KICAgICAgICAgPC9kYzpzdWJqZWN0PgogICAgICAgICA8eG1wOk1vZGlmeURhdGU+MjAxOC0xMC0xNFQxMToxMDo0MjwveG1wOk1vZGlmeURhdGU+CiAgICAgICAgIDx4bXA6Q3JlYXRvclRvb2w+UGl4ZWxtYXRvciAzLjM8L3htcDpDcmVhdG9yVG9vbD4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgIDwvcmRmOlJERj4KPC94OnhtcG1ldGE+CkP32mEAAANASURBVGgF7ZlPiE1RHMffw1AYhiL5k1HEijJiYaFZiHoyFspW2RFRkkSZGgtFWJIwi9FYmo0VOywkKTbKgjSlWcifRCPX51dv6s2d33md77vvXjfmV9859/7u93x/v98959x73p1KRbAkSargAhgDH0E/qIYkuHYEvAPGvwbmNOEerXM/0Q6BRSFuZj/ix0DaDnvCkGppIucDAe4OhzvkcUO+GaELAf8ux7/b8Zlrr+Pvc3zm6nX8NccXdKmFLHaUPJ/Ruhyu5zNap8Nd6PiCLrUQTyi0Rjy/5/M0Zd+smB7M32XwtgBr07aC6yfSTs7XO77OALfH4VbgHsD/HLytVquJx4nyIdQFBsHftscksK5Z0sGhpuN8Or4Aa5sJFHjtO7G2MjKvvZjN1sglOpSlCMt9LrDZ4S4Hd0Qg24vrK+gAZbPtjMqTdFKhEdkIsYxFWP720JlioUK6pzDL41jtpRIqxOOWxecuB3fhRGT8E85YBK8VygI6GSRTCxlH3TaJgyw4O2678aCxO94LbNPovYDdmOrUukIBN/MqwjJEOwGPOHR31W4VONVCLEBR9lAJpBbSrYhn5K5R+quFnGUOr1ICtMIlxjz6XVb6qot9JeKvCPSAdlQJJHDtd8hOIN0wtRDLxx6Ntr0ulalTq1TJNyYzXUjj3SjD8X87Iva7uR8s5+2bi6FtX1oOgi8g2tSn1g2yPx+t3gIR/c90s1+C1vuO/YkxdWrdjxFtE2dE0VELWaqIZ+QuUfqrhZxmyKUvgEoyE1xizOR4YOI8plXXyAZEbYsyTJvXFsUW+x6wGUSbWogJ237rZHSEgojq1CooLT3MdCH6Pcu3xz8zIq0s9lvc2+sgz6dWH/rnQPB/jlybZGoh99hCHJqk0P6TD0jaI/4b7dVYeXVq2bemokyKpRZiHwWKMimWWshxhryjoEpOKXHUNbIN8WcUc5s2r8Vue7l9oAaiTS3EhDeB6EUYnUlGojq1MobLr3uokB/5hcys7OYWKuRl5nD5Cbi5uYXw0ntPHoay2S8Seuol5RZSJ0r/n/DEc/BdrN9kTZrH7BkwDspgwyQxW6uggU3nHnAXvAG/QZE2SrARsL8hJffwDxM0mNDPvT8IAAAAAElFTkSuQmCC" webUI["html/img/logo_b_880x200.jpg"] = "/9j/4AAQSkZJRgABAQABLAEsAAD/4QDIRXhpZgAATU0AKgAAAAgABwESAAMAAAABAAEAAAEaAAUAAAABAAAAYgEbAAUAAAABAAAAagEoAAMAAAABAAIAAAExAAIAAAAPAAAAcgEyAAIAAAAUAAAAgodpAAQAAAABAAAAlgAAAAAAAAEsAAAAAQAAASwAAAABUGl4ZWxtYXRvciAzLjMAADIwMTk6MDg6MDIgMjA6MDg6MTQAAAOgAQADAAAAAQABAACgAgAEAAAAAQAAA3CgAwAEAAAAAQAAAMgAAAAA/+EJkGh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8APD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iWE1QIENvcmUgNS40LjAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcDpDcmVhdG9yVG9vbD0iUGl4ZWxtYXRvciAzLjMiIHhtcDpNb2RpZnlEYXRlPSIyMDE5LTA4LTAyVDIwOjA4OjE0Ii8+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPD94cGFja2V0IGVuZD0idyI/PgD/7QA4UGhvdG9zaG9wIDMuMAA4QklNBAQAAAAAAAA4QklNBCUAAAAAABDUHYzZjwCyBOmACZjs+EJ+/8AAEQgAyANwAwERAAIRAQMRAf/EAB8AAAEFAQEBAQEBAAAAAAAAAAABAgMEBQYHCAkKC//EALUQAAIBAwMCBAMFBQQEAAABfQECAwAEEQUSITFBBhNRYQcicRQygZGhCCNCscEVUtHwJDNicoIJChYXGBkaJSYnKCkqNDU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6g4SFhoeIiYqSk5SVlpeYmZqio6Slpqeoqaqys7S1tre4ubrCw8TFxsfIycrS09TV1tfY2drh4uPk5ebn6Onq8fLz9PX29/j5+v/EAB8BAAMBAQEBAQEBAQEAAAAAAAABAgMEBQYHCAkKC//EALURAAIBAgQEAwQHBQQEAAECdwABAgMRBAUhMQYSQVEHYXETIjKBCBRCkaGxwQkjM1LwFWJy0QoWJDThJfEXGBkaJicoKSo1Njc4OTpDREVGR0hJSlNUVVZXWFlaY2RlZmdoaWpzdHV2d3h5eoKDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uLj5OXm5+jp6vLz9PX29/j5+v/bAEMAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAf/bAEMBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAf/dAAQAbv/aAAwDAQACEQMRAD8A/iHoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKAP/9D+IegAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoA//0f4h6ACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgD//S/iHoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKAP/9P+IegAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoA//1P4h6ACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgDvPDXws+J3jPT31bwf8OfHnivSo7mSyfU/DXhDxBrunpeQpFLNaPe6Xp11bLcxRzwSSQNL5saTROyhZUNAHQf8M//AB4/6In8XP8Aw23jL/5TUAH/AAz/APHj/oifxc/8Nt4y/wDl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f/E3xn4o+IPjnxDLaafp8mveMPGet33iPxNrMlhpNpYaVZPqmtale3z2mmWNlp9s05hsrS2tkjhQA4ygAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgD//S/iHoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAczu+N7M2BgbmLYHoM9BnJxx1/FgBtABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAOLuwVWZiq/dUsSFz12joM4HQduc4FADaACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgD//0/4h6ACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgD//U/iHoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKAP/9X+IegAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoA//1v4h6ACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgD//X/iHoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKAP/9k=" @@ -29,10 +28,10 @@ func loadHTMLMap() { webUI["html/js/classes_ts.js"] = "dmFyIF9fZXh0ZW5kcyA9ICh0aGlzICYmIHRoaXMuX19leHRlbmRzKSB8fCAoZnVuY3Rpb24gKCkgewogICAgdmFyIGV4dGVuZFN0YXRpY3MgPSBmdW5jdGlvbiAoZCwgYikgewogICAgICAgIGV4dGVuZFN0YXRpY3MgPSBPYmplY3Quc2V0UHJvdG90eXBlT2YgfHwKICAgICAgICAgICAgKHsgX19wcm90b19fOiBbXSB9IGluc3RhbmNlb2YgQXJyYXkgJiYgZnVuY3Rpb24gKGQsIGIpIHsgZC5fX3Byb3RvX18gPSBiOyB9KSB8fAogICAgICAgICAgICBmdW5jdGlvbiAoZCwgYikgeyBmb3IgKHZhciBwIGluIGIpIGlmIChiLmhhc093blByb3BlcnR5KHApKSBkW3BdID0gYltwXTsgfTsKICAgICAgICByZXR1cm4gZXh0ZW5kU3RhdGljcyhkLCBiKTsKICAgIH07CiAgICByZXR1cm4gZnVuY3Rpb24gKGQsIGIpIHsKICAgICAgICBleHRlbmRTdGF0aWNzKGQsIGIpOwogICAgICAgIGZ1bmN0aW9uIF9fKCkgeyB0aGlzLmNvbnN0cnVjdG9yID0gZDsgfQogICAgICAgIGQucHJvdG90eXBlID0gYiA9PT0gbnVsbCA/IE9iamVjdC5jcmVhdGUoYikgOiAoX18ucHJvdG90eXBlID0gYi5wcm90b3R5cGUsIG5ldyBfXygpKTsKICAgIH07Cn0pKCk7CnZhciBNYWluTWVudSA9IC8qKiBAY2xhc3MgKi8gKGZ1bmN0aW9uICgpIHsKICAgIGZ1bmN0aW9uIE1haW5NZW51KCkgewogICAgICAgIHRoaXMuRG9jdW1lbnRJRCA9ICJtYWluLW1lbnUiOwogICAgICAgIHRoaXMuSFRNTFRhZyA9ICJMSSI7CiAgICB9CiAgICBNYWluTWVudS5wcm90b3R5cGUuY3JlYXRlID0gZnVuY3Rpb24gKCkgewogICAgICAgIGNvbnNvbGUubG9nKHRoaXMuRG9jdW1lbnRJRCk7CiAgICB9OwogICAgcmV0dXJuIE1haW5NZW51Owp9KCkpOwp2YXIgTWFpbk1lbnVJdGVtID0gLyoqIEBjbGFzcyAqLyAoZnVuY3Rpb24gKF9zdXBlcikgewogICAgX19leHRlbmRzKE1haW5NZW51SXRlbSwgX3N1cGVyKTsKICAgIGZ1bmN0aW9uIE1haW5NZW51SXRlbSgpIHsKICAgICAgICByZXR1cm4gX3N1cGVyICE9PSBudWxsICYmIF9zdXBlci5hcHBseSh0aGlzLCBhcmd1bWVudHMpIHx8IHRoaXM7CiAgICB9CiAgICBNYWluTWVudUl0ZW0ucHJvdG90eXBlLmNyZWF0ZTIgPSBmdW5jdGlvbiAoKSB7CiAgICAgICAgdmFyIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KHRoaXMuSFRNTFRhZyk7CiAgICAgICAgZWxlbWVudC5pbm5lclRleHQgPSB0aGlzLlZhbHVlOwogICAgICAgIGNvbnNvbGUubG9nKGVsZW1lbnQpOwogICAgfTsKICAgIHJldHVybiBNYWluTWVudUl0ZW07Cn0oTWFpbk1lbnUpKTsKZnVuY3Rpb24gcGFnZVJlYWR5KCkgewogICAgdmFyIGl0ZW0gPSBuZXcgTWFpbk1lbnVJdGVtKCk7CiAgICBpdGVtLlZhbHVlID0gIlRlc3QiOwogICAgaXRlbS5jcmVhdGUyKCk7Cn0K" webUI["html/js/configuration_ts.js"] = "Y2xhc3MgV2l6YXJkQ2F0ZWdvcnkgewogICAgY29uc3RydWN0b3IoKSB7CiAgICAgICAgdGhpcy5Eb2N1bWVudElEID0gImNvbnRlbnQiOwogICAgfQogICAgY3JlYXRlQ2F0ZWdvcnlIZWFkbGluZSh2YWx1ZSkgewogICAgICAgIHZhciBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiSDQiKTsKICAgICAgICBlbGVtZW50LmlubmVySFRNTCA9IHZhbHVlOwogICAgICAgIHJldHVybiBlbGVtZW50OwogICAgfQp9CmNsYXNzIFdpemFyZEl0ZW0gZXh0ZW5kcyBXaXphcmRDYXRlZ29yeSB7CiAgICBjb25zdHJ1Y3RvcihrZXksIGhlYWRsaW5lKSB7CiAgICAgICAgc3VwZXIoKTsKICAgICAgICB0aGlzLmhlYWRsaW5lID0gaGVhZGxpbmU7CiAgICAgICAgdGhpcy5rZXkgPSBrZXk7CiAgICB9CiAgICBjcmVhdGVXaXphcmQoKSB7CiAgICAgICAgdmFyIGhlYWRsaW5lID0gdGhpcy5jcmVhdGVDYXRlZ29yeUhlYWRsaW5lKHRoaXMuaGVhZGxpbmUpOwogICAgICAgIHZhciBrZXkgPSB0aGlzLmtleTsKICAgICAgICB2YXIgY29udGVudCA9IG5ldyBQb3B1cENvbnRlbnQoKTsKICAgICAgICB2YXIgZGVzY3JpcHRpb247CiAgICAgICAgdmFyIGRvYyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHRoaXMuRG9jdW1lbnRJRCk7CiAgICAgICAgZG9jLmlubmVySFRNTCA9ICIiOwogICAgICAgIGRvYy5hcHBlbmRDaGlsZChoZWFkbGluZSk7CiAgICAgICAgc3dpdGNoIChrZXkpIHsKICAgICAgICAgICAgY2FzZSAidHVuZXIiOgogICAgICAgICAgICAgICAgdmFyIHRleHQgPSBuZXcgQXJyYXkoKTsKICAgICAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBuZXcgQXJyYXkoKTsKICAgICAgICAgICAgICAgIGZvciAodmFyIGkgPSAxOyBpIDw9IDEwMDsgaSsrKSB7CiAgICAgICAgICAgICAgICAgICAgdGV4dC5wdXNoKGkpOwogICAgICAgICAgICAgICAgICAgIHZhbHVlcy5wdXNoKGkpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgdmFyIHNlbGVjdCA9IGNvbnRlbnQuY3JlYXRlU2VsZWN0KHRleHQsIHZhbHVlcywgIjEiLCBrZXkpOwogICAgICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgiY2xhc3MiLCAid2l6YXJkIik7CiAgICAgICAgICAgICAgICBzZWxlY3QuaWQgPSBrZXk7CiAgICAgICAgICAgICAgICBkb2MuYXBwZW5kQ2hpbGQoc2VsZWN0KTsKICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uID0gInt7LndpemFyZC50dW5lci5kZXNjcmlwdGlvbn19IjsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJlcGdTb3VyY2UiOgogICAgICAgICAgICAgICAgdmFyIHRleHQgPSBbIlBNUyIsICJYRVBHIl07CiAgICAgICAgICAgICAgICB2YXIgdmFsdWVzID0gWyJQTVMiLCAiWEVQRyJdOwogICAgICAgICAgICAgICAgdmFyIHNlbGVjdCA9IGNvbnRlbnQuY3JlYXRlU2VsZWN0KHRleHQsIHZhbHVlcywgIlhFUEciLCBrZXkpOwogICAgICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgiY2xhc3MiLCAid2l6YXJkIik7CiAgICAgICAgICAgICAgICBzZWxlY3QuaWQgPSBrZXk7CiAgICAgICAgICAgICAgICBkb2MuYXBwZW5kQ2hpbGQoc2VsZWN0KTsKICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uID0gInt7LndpemFyZC5lcGdTb3VyY2UuZGVzY3JpcHRpb259fSI7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAibTN1IjoKICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBrZXksICIiKTsKICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3sud2l6YXJkLm0zdS5wbGFjZWhvbGRlcn19Iik7CiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoImNsYXNzIiwgIndpemFyZCIpOwogICAgICAgICAgICAgICAgaW5wdXQuaWQgPSBrZXk7CiAgICAgICAgICAgICAgICBkb2MuYXBwZW5kQ2hpbGQoaW5wdXQpOwogICAgICAgICAgICAgICAgZGVzY3JpcHRpb24gPSAie3sud2l6YXJkLm0zdS5kZXNjcmlwdGlvbn19IjsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJ4bWx0diI6CiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0Iiwga2V5LCAiIik7CiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LndpemFyZC54bWx0di5wbGFjZWhvbGRlcn19Iik7CiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoImNsYXNzIiwgIndpemFyZCIpOwogICAgICAgICAgICAgICAgaW5wdXQuaWQgPSBrZXk7CiAgICAgICAgICAgICAgICBkb2MuYXBwZW5kQ2hpbGQoaW5wdXQpOwogICAgICAgICAgICAgICAgZGVzY3JpcHRpb24gPSAie3sud2l6YXJkLnhtbHR2LmRlc2NyaXB0aW9ufX0iOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICB9CiAgICAgICAgdmFyIHByZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlBSRSIpOwogICAgICAgIHByZS5pbm5lckhUTUwgPSBkZXNjcmlwdGlvbjsKICAgICAgICBkb2MuYXBwZW5kQ2hpbGQocHJlKTsKICAgIH0KfQpmdW5jdGlvbiByZWFkeUZvckNvbmZpZ3VyYXRpb24od2l6YXJkKSB7CiAgICB2YXIgc2VydmVyID0gbmV3IFNlcnZlcigiZ2V0U2VydmVyQ29uZmlnIik7CiAgICBzZXJ2ZXIucmVxdWVzdChuZXcgT2JqZWN0KCkpOwogICAgc2hvd0VsZW1lbnQoImxvYWRpbmciLCBmYWxzZSk7CiAgICBjb25maWd1cmF0aW9uV2l6YXJkW3dpemFyZF0uY3JlYXRlV2l6YXJkKCk7Cn0KZnVuY3Rpb24gc2F2ZVdpemFyZCgpIHsKICAgIHZhciBjbWQgPSAic2F2ZVdpemFyZCI7CiAgICB2YXIgZGl2ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnRlbnQiKTsKICAgIHZhciBjb25maWcgPSBkaXYuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSgid2l6YXJkIik7CiAgICB2YXIgd2l6YXJkID0gbmV3IE9iamVjdCgpOwogICAgZm9yICh2YXIgaSA9IDA7IGkgPCBjb25maWcubGVuZ3RoOyBpKyspIHsKICAgICAgICB2YXIgbmFtZTsKICAgICAgICB2YXIgdmFsdWU7CiAgICAgICAgc3dpdGNoIChjb25maWdbaV0udGFnTmFtZSkgewogICAgICAgICAgICBjYXNlICJTRUxFQ1QiOgogICAgICAgICAgICAgICAgbmFtZSA9IGNvbmZpZ1tpXS5uYW1lOwogICAgICAgICAgICAgICAgdmFsdWUgPSBjb25maWdbaV0udmFsdWU7CiAgICAgICAgICAgICAgICAvLyBJZiB0aGUgdmFsdWUgaXMgYSBudW1iZXIsIHN0b3JlIGl0IGFzIGEgbnVtYmVyCiAgICAgICAgICAgICAgICBpZiAoaXNOYU4odmFsdWUpKSB7CiAgICAgICAgICAgICAgICAgICAgd2l6YXJkW25hbWVdID0gdmFsdWU7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgICAgICB3aXphcmRbbmFtZV0gPSBwYXJzZUludCh2YWx1ZSk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAiSU5QVVQiOgogICAgICAgICAgICAgICAgc3dpdGNoIChjb25maWdbaV0udHlwZSkgewogICAgICAgICAgICAgICAgICAgIGNhc2UgInRleHQiOgogICAgICAgICAgICAgICAgICAgICAgICBuYW1lID0gY29uZmlnW2ldLm5hbWU7CiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlID0gY29uZmlnW2ldLnZhbHVlOwogICAgICAgICAgICAgICAgICAgICAgICBpZiAodmFsdWUubGVuZ3RoID09IDApIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBtc2cgPSBuYW1lLnRvVXBwZXJDYXNlKCkgKyAiOiAiICsgInt7LmFsZXJ0Lm1pc3NpbmdJbnB1dH19IjsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFsZXJ0KG1zZyk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgd2l6YXJkW25hbWVdID0gdmFsdWU7CiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICAgICAvLyBjb2RlLi4uCiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICB9CiAgICB9CiAgICB2YXIgZGF0YSA9IG5ldyBPYmplY3QoKTsKICAgIGRhdGFbIndpemFyZCJdID0gd2l6YXJkOwogICAgdmFyIHNlcnZlciA9IG5ldyBTZXJ2ZXIoY21kKTsKICAgIHNlcnZlci5yZXF1ZXN0KGRhdGEpOwp9Ci8vIFdpemFyZAp2YXIgY29uZmlndXJhdGlvbldpemFyZCA9IG5ldyBBcnJheSgpOwpjb25maWd1cmF0aW9uV2l6YXJkLnB1c2gobmV3IFdpemFyZEl0ZW0oInR1bmVyIiwgInt7LndpemFyZC50dW5lci50aXRsZX19IikpOwpjb25maWd1cmF0aW9uV2l6YXJkLnB1c2gobmV3IFdpemFyZEl0ZW0oImVwZ1NvdXJjZSIsICJ7ey53aXphcmQuZXBnU291cmNlLnRpdGxlfX0iKSk7CmNvbmZpZ3VyYXRpb25XaXphcmQucHVzaChuZXcgV2l6YXJkSXRlbSgibTN1IiwgInt7LndpemFyZC5tM3UudGl0bGV9fSIpKTsKY29uZmlndXJhdGlvbldpemFyZC5wdXNoKG5ldyBXaXphcmRJdGVtKCJ4bWx0diIsICJ7ey53aXphcmQueG1sdHYudGl0bGV9fSIpKTsK" webUI["html/js/logs_ts.js"] = "Y2xhc3MgTG9nIHsKICAgIGNyZWF0ZUxvZyhlbnRyeSkgewogICAgICAgIHZhciBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiUFJFIik7CiAgICAgICAgZW50cnkgPSBTdHJpbmcoZW50cnkpOwogICAgICAgIGlmIChlbnRyeS5pbmRleE9mKCJXQVJOSU5HIikgIT0gLTEpIHsKICAgICAgICAgICAgZWxlbWVudC5jbGFzc05hbWUgPSAid2FybmluZ01zZyI7CiAgICAgICAgfQogICAgICAgIGlmIChlbnRyeS5pbmRleE9mKCJFUlJPUiIpICE9IC0xKSB7CiAgICAgICAgICAgIGVsZW1lbnQuY2xhc3NOYW1lID0gImVycm9yTXNnIjsKICAgICAgICB9CiAgICAgICAgaWYgKGVudHJ5LmluZGV4T2YoIkRFQlVHIikgIT0gLTEpIHsKICAgICAgICAgICAgZWxlbWVudC5jbGFzc05hbWUgPSAiZGVidWdNc2ciOwogICAgICAgIH0KICAgICAgICBlbGVtZW50LmlubmVySFRNTCA9IGVudHJ5OwogICAgICAgIHJldHVybiBlbGVtZW50OwogICAgfQp9CmZ1bmN0aW9uIHNob3dMb2dzKGJvdHRvbSkgewogICAgdmFyIGxvZyA9IG5ldyBMb2coKTsKICAgIHZhciBsb2dzID0gU0VSVkVSWyJsb2ciXVsibG9nIl07CiAgICB2YXIgZGl2ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnRlbnRfbG9nIik7CiAgICBkaXYuaW5uZXJIVE1MID0gIiI7CiAgICB2YXIga2V5cyA9IGdldE93bk9ialByb3BzKGxvZ3MpOwogICAga2V5cy5mb3JFYWNoKGxvZ0lEID0+IHsKICAgICAgICB2YXIgZW50cnkgPSBsb2cuY3JlYXRlTG9nKGxvZ3NbbG9nSURdKTsKICAgICAgICBkaXYuYXBwZW5kKGVudHJ5KTsKICAgIH0pOwogICAgc2V0VGltZW91dChmdW5jdGlvbiAoKSB7CiAgICAgICAgaWYgKGJvdHRvbSA9PSB0cnVlKSB7CiAgICAgICAgICAgIHZhciB3cmFwcGVyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImJveC13cmFwcGVyIik7CiAgICAgICAgICAgIHdyYXBwZXIuc2Nyb2xsVG9wID0gd3JhcHBlci5zY3JvbGxIZWlnaHQ7CiAgICAgICAgfQogICAgfSwgMTApOwp9CmZ1bmN0aW9uIHJlc2V0TG9ncygpIHsKICAgIHZhciBjbWQgPSAicmVzZXRMb2dzIjsKICAgIHZhciBkYXRhID0gbmV3IE9iamVjdCgpOwogICAgdmFyIHNlcnZlciA9IG5ldyBTZXJ2ZXIoY21kKTsKICAgIHNlcnZlci5yZXF1ZXN0KGRhdGEpOwp9Cg==" - webUI["html/js/menu_ts.js"] = "Y2xhc3MgTWFpbk1lbnUgewogICAgY29uc3RydWN0b3IoKSB7CiAgICAgICAgdGhpcy5Eb2N1bWVudElEID0gIm1haW4tbWVudSI7CiAgICAgICAgdGhpcy5IVE1MVGFnID0gIkxJIjsKICAgICAgICB0aGlzLkltYWdlUGF0aCA9ICJpbWcvIjsKICAgIH0KICAgIGNyZWF0ZUlNRyhzcmMpIHsKICAgICAgICBsZXQgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIklNRyIpOwogICAgICAgIGVsZW1lbnQuc2V0QXR0cmlidXRlKCJzcmMiLCB0aGlzLkltYWdlUGF0aCArIHNyYyk7CiAgICAgICAgcmV0dXJuIGVsZW1lbnQ7CiAgICB9CiAgICBjcmVhdGVWYWx1ZSh2YWx1ZSkgewogICAgICAgIGxldCBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiUCIpOwogICAgICAgIGVsZW1lbnQuaW5uZXJIVE1MID0gdmFsdWU7CiAgICAgICAgcmV0dXJuIGVsZW1lbnQ7CiAgICB9Cn0KY2xhc3MgTWFpbk1lbnVJdGVtIGV4dGVuZHMgTWFpbk1lbnUgewogICAgY29uc3RydWN0b3IobWVudUtleSwgdmFsdWUsIGltYWdlLCBoZWFkbGluZSkgewogICAgICAgIHN1cGVyKCk7CiAgICAgICAgdGhpcy5tZW51S2V5ID0gbWVudUtleTsKICAgICAgICB0aGlzLnZhbHVlID0gdmFsdWU7CiAgICAgICAgdGhpcy5pbWdTcmMgPSBpbWFnZTsKICAgICAgICB0aGlzLmhlYWRsaW5lID0gaGVhZGxpbmU7CiAgICB9CiAgICBjcmVhdGVJdGVtKCkgewogICAgICAgIGxldCBpdGVtID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiTEkiKTsKICAgICAgICBpdGVtLnNldEF0dHJpYnV0ZSgib25jbGljayIsICJqYXZhc2NyaXB0OiBvcGVuVGhpc01lbnUodGhpcykiKTsKICAgICAgICBpdGVtLnNldEF0dHJpYnV0ZSgiaWQiLCB0aGlzLmlkKTsKICAgICAgICBsZXQgaW1nID0gdGhpcy5jcmVhdGVJTUcodGhpcy5pbWdTcmMpOwogICAgICAgIGxldCB2YWx1ZSA9IHRoaXMuY3JlYXRlVmFsdWUodGhpcy52YWx1ZSk7CiAgICAgICAgaXRlbS5hcHBlbmRDaGlsZChpbWcpOwogICAgICAgIGl0ZW0uYXBwZW5kQ2hpbGQodmFsdWUpOwogICAgICAgIGxldCBkb2MgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCh0aGlzLkRvY3VtZW50SUQpOwogICAgICAgIGRvYy5hcHBlbmRDaGlsZChpdGVtKTsKICAgICAgICBzd2l0Y2ggKHRoaXMubWVudUtleSkgewogICAgICAgICAgICBjYXNlICJwbGF5bGlzdCI6CiAgICAgICAgICAgICAgICB0aGlzLnRhYmxlSGVhZGVyID0gWyJ7ey5wbGF5bGlzdC50YWJsZS5wbGF5bGlzdH19IiwgInt7LnBsYXlsaXN0LnRhYmxlLnR1bmVyfX0iLCAie3sucGxheWxpc3QudGFibGUubGFzdFVwZGF0ZX19IiwgInt7LnBsYXlsaXN0LnRhYmxlLmF2YWlsYWJpbGl0eX19ICUiLCAie3sucGxheWxpc3QudGFibGUudHlwZX19IiwgInt7LnBsYXlsaXN0LnRhYmxlLnN0cmVhbXN9fSIsICJ7ey5wbGF5bGlzdC50YWJsZS5ncm91cFRpdGxlfX0gJSIsICJ7ey5wbGF5bGlzdC50YWJsZS50dmdJRH19ICUiLCAie3sucGxheWxpc3QudGFibGUudW5pcXVlSUR9fSAlIl07CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAieG1sdHYiOgogICAgICAgICAgICAgICAgdGhpcy50YWJsZUhlYWRlciA9IFsie3sueG1sdHYudGFibGUuZ3VpZGV9fSIsICJ7ey54bWx0di50YWJsZS5sYXN0VXBkYXRlfX0iLCAie3sueG1sdHYudGFibGUuYXZhaWxhYmlsaXR5fX0gJSIsICJ7ey54bWx0di50YWJsZS5jaGFubmVsc319IiwgInt7LnhtbHR2LnRhYmxlLnByb2dyYW1zfX0iXTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJmaWx0ZXIiOgogICAgICAgICAgICAgICAgdGhpcy50YWJsZUhlYWRlciA9IFsie3suZmlsdGVyLnRhYmxlLnN0YXJ0aW5nQ2hhbm5lbH19IiwgInt7LmZpbHRlci50YWJsZS5uYW1lfX0iLCAie3suZmlsdGVyLnRhYmxlLnR5cGV9fSIsICJ7ey5maWx0ZXIudGFibGUuZmlsdGVyfX0iXTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJ1c2VycyI6CiAgICAgICAgICAgICAgICB0aGlzLnRhYmxlSGVhZGVyID0gWyJ7ey51c2Vycy50YWJsZS51c2VybmFtZX19IiwgInt7LnVzZXJzLnRhYmxlLnBhc3N3b3JkfX0iLCAie3sudXNlcnMudGFibGUud2VifX0iLCAie3sudXNlcnMudGFibGUucG1zfX0iLCAie3sudXNlcnMudGFibGUubTN1fX0iLCAie3sudXNlcnMudGFibGUueG1sfX0iLCAie3sudXNlcnMudGFibGUuYXBpfX0iXTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJtYXBwaW5nIjoKICAgICAgICAgICAgICAgIHRoaXMudGFibGVIZWFkZXIgPSBbIkJVTEsiLCAie3subWFwcGluZy50YWJsZS5jaE5vfX0iLCAie3subWFwcGluZy50YWJsZS5sb2dvfX0iLCAie3subWFwcGluZy50YWJsZS5jaGFubmVsTmFtZX19IiwgInt7Lm1hcHBpbmcudGFibGUudXBkYXRlQ2hhbm5lbE5hbWVSZWdleH19IiwgInt7Lm1hcHBpbmcudGFibGUucGxheWxpc3R9fSIsICJ7ey5tYXBwaW5nLnRhYmxlLmdyb3VwVGl0bGV9fSIsICJ7ey5tYXBwaW5nLnRhYmxlLnhtbHR2RmlsZX19IiwgInt7Lm1hcHBpbmcudGFibGUueG1sdHZJRH19IiwgInt7Lm1hcHBpbmcudGFibGUudGltZXNoaWZ0fX0iXTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgIH0KICAgIH0KfQpjbGFzcyBDb250ZW50IHsKICAgIGNvbnN0cnVjdG9yKCkgewogICAgICAgIHRoaXMuRG9jdW1lbnRJRCA9ICJjb250ZW50IjsKICAgICAgICB0aGlzLlRhYmxlSUQgPSAiY29udGVudF90YWJsZSI7CiAgICAgICAgdGhpcy5oZWFkZXJDbGFzcyA9ICJjb250ZW50X3RhYmxlX2hlYWRlciI7CiAgICAgICAgdGhpcy5pbnRlcmFjdGlvbklEID0gImNvbnRlbnQtaW50ZXJhY3Rpb24iOwogICAgfQogICAgY3JlYXRlSGVhZGxpbmUodmFsdWUpIHsKICAgICAgICBsZXQgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIkgzIik7CiAgICAgICAgZWxlbWVudC5pbm5lckhUTUwgPSB2YWx1ZTsKICAgICAgICByZXR1cm4gZWxlbWVudDsKICAgIH0KICAgIGNyZWF0ZUhSKCkgewogICAgICAgIHJldHVybiBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJIUiIpOwogICAgfQogICAgY3JlYXRlSW50ZXJhY3Rpb24oKSB7CiAgICAgICAgbGV0IGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJESVYiKTsKICAgICAgICBlbGVtZW50LnNldEF0dHJpYnV0ZSgiaWQiLCB0aGlzLmludGVyYWN0aW9uSUQpOwogICAgICAgIHJldHVybiBlbGVtZW50OwogICAgfQogICAgY3JlYXRlRElWKCkgewogICAgICAgIGxldCBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiRElWIik7CiAgICAgICAgZWxlbWVudC5pZCA9IHRoaXMuRGl2SUQ7CiAgICAgICAgcmV0dXJuIGVsZW1lbnQ7CiAgICB9CiAgICBjcmVhdGVUQUJMRSgpIHsKICAgICAgICBsZXQgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlRBQkxFIik7CiAgICAgICAgZWxlbWVudC5pZCA9IHRoaXMuVGFibGVJRDsKICAgICAgICByZXR1cm4gZWxlbWVudDsKICAgIH0KICAgIGNyZWF0ZVRhYmxlUm93KCkgewogICAgICAgIGxldCBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVFIiKTsKICAgICAgICBlbGVtZW50LmNsYXNzTmFtZSA9IHRoaXMuaGVhZGVyQ2xhc3M7CiAgICAgICAgcmV0dXJuIGVsZW1lbnQ7CiAgICB9CiAgICBjcmVhdGVUYWJsZUNvbnRlbnQobWVudUtleSkgewogICAgICAgIGxldCBkYXRhID0ge307CiAgICAgICAgbGV0IHJvd3MgPSBbXTsKICAgICAgICBsZXQgZmlsZVR5cGVzID0gW107CiAgICAgICAgc3dpdGNoIChtZW51S2V5KSB7CiAgICAgICAgICAgIGNhc2UgInBsYXlsaXN0IjoKICAgICAgICAgICAgICAgIGZpbGVUeXBlcyA9IFsibTN1IiwgImhkaHIiXTsKICAgICAgICAgICAgICAgIGZpbGVUeXBlcy5mb3JFYWNoKGZpbGVUeXBlID0+IHsKICAgICAgICAgICAgICAgICAgICBkYXRhID0gU0VSVkVSWyJzZXR0aW5ncyJdWyJmaWxlcyJdW2ZpbGVUeXBlXTsKICAgICAgICAgICAgICAgICAgICB2YXIga2V5cyA9IGdldE93bk9ialByb3BzKGRhdGEpOwogICAgICAgICAgICAgICAgICAgIGtleXMuZm9yRWFjaChrZXkgPT4gewogICAgICAgICAgICAgICAgICAgICAgICB2YXIgdHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJUUiIpOwogICAgICAgICAgICAgICAgICAgICAgICB0ci5pZCA9IGtleTsKICAgICAgICAgICAgICAgICAgICAgICAgdHIuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgiJyArIGZpbGVUeXBlICsgJyIsIHRoaXMpJyk7CiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsKICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7CiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOwogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJuYW1lIl07CiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsKICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOwogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7CiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChTRVJWRVJbInNldHRpbmdzIl1bImJ1ZmZlciJdICE9ICItIikgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsidHVuZXIiXTsKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSAiLSI7CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOwogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7CiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOwogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsKICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsibGFzdC51cGRhdGUiXTsKICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOwogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7CiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOwogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsKICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsicHJvdmlkZXIuYXZhaWxhYmlsaXR5Il07CiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsKICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOwogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7CiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bInR5cGUiXS50b1VwcGVyQ2FzZSgpOwogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7CiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsKICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7CiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOwogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJjb21wYXRpYmlsaXR5Il1bInN0cmVhbXMiXTsKICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOwogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7CiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOwogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsKICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsiY29tcGF0aWJpbGl0eSJdWyJncm91cC50aXRsZSJdOwogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7CiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsKICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7CiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOwogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJjb21wYXRpYmlsaXR5Il1bInR2Zy5pZCJdOwogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7CiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsKICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7CiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOwogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJjb21wYXRpYmlsaXR5Il1bInN0cmVhbS5pZCJdOwogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7CiAgICAgICAgICAgICAgICAgICAgICAgIHJvd3MucHVzaCh0cik7CiAgICAgICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJmaWx0ZXIiOgogICAgICAgICAgICAgICAgZGVsZXRlIFNFUlZFUlsic2V0dGluZ3MiXVsiZmlsdGVyIl1bLTFdOwogICAgICAgICAgICAgICAgZGF0YSA9IFNFUlZFUlsic2V0dGluZ3MiXVsiZmlsdGVyIl07CiAgICAgICAgICAgICAgICB2YXIga2V5cyA9IGdldE93bk9ialByb3BzKGRhdGEpOwogICAgICAgICAgICAgICAga2V5cy5mb3JFYWNoKGtleSA9PiB7CiAgICAgICAgICAgICAgICAgICAgdmFyIHRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVFIiKTsKICAgICAgICAgICAgICAgICAgICB0ci5pZCA9IGtleTsKICAgICAgICAgICAgICAgICAgICB0ci5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCInICsgZGF0YVtrZXldWyJ0eXBlIl0gKyAnIiwgdGhpcyknKTsKICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7CiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7CiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7CiAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsic3RhcnRpbmdDaGFubmVsIl07CiAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOwogICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsKICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsKICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJuYW1lIl07CiAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOwogICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsKICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsKICAgICAgICAgICAgICAgICAgICBzd2l0Y2ggKGRhdGFba2V5XVsidHlwZSJdKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgImN1c3RvbS1maWx0ZXIiOgogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9ICJ7ey5maWx0ZXIuY3VzdG9tfX0iOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgImdyb3VwLXRpdGxlIjoKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSAie3suZmlsdGVyLmdyb3VwfX0iOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOwogICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsKICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsKICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJmaWx0ZXIiXTsKICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7CiAgICAgICAgICAgICAgICAgICAgcm93cy5wdXNoKHRyKTsKICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgInhtbHR2IjoKICAgICAgICAgICAgICAgIGZpbGVUeXBlcyA9IG5ldyBBcnJheSgieG1sdHYiKTsKICAgICAgICAgICAgICAgIGZpbGVUeXBlcy5mb3JFYWNoKGZpbGVUeXBlID0+IHsKICAgICAgICAgICAgICAgICAgICBkYXRhID0gU0VSVkVSWyJzZXR0aW5ncyJdWyJmaWxlcyJdW2ZpbGVUeXBlXTsKICAgICAgICAgICAgICAgICAgICB2YXIga2V5cyA9IGdldE93bk9ialByb3BzKGRhdGEpOwogICAgICAgICAgICAgICAgICAgIGtleXMuZm9yRWFjaChrZXkgPT4gewogICAgICAgICAgICAgICAgICAgICAgICB2YXIgdHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJUUiIpOwogICAgICAgICAgICAgICAgICAgICAgICB0ci5pZCA9IGtleTsKICAgICAgICAgICAgICAgICAgICAgICAgdHIuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgiJyArIGZpbGVUeXBlICsgJyIsIHRoaXMpJyk7CiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsKICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7CiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOwogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJuYW1lIl07CiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsKICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOwogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7CiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bImxhc3QudXBkYXRlIl07CiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsKICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOwogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7CiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bInByb3ZpZGVyLmF2YWlsYWJpbGl0eSJdOwogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7CiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsKICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7CiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOwogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJjb21wYXRpYmlsaXR5Il1bInhtbHR2LmNoYW5uZWxzIl07CiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsKICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOwogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7CiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bImNvbXBhdGliaWxpdHkiXVsieG1sdHYucHJvZ3JhbXMiXTsKICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOwogICAgICAgICAgICAgICAgICAgICAgICByb3dzLnB1c2godHIpOwogICAgICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAidXNlcnMiOgogICAgICAgICAgICAgICAgZmlsZVR5cGVzID0gbmV3IEFycmF5KCJ1c2VycyIpOwogICAgICAgICAgICAgICAgZmlsZVR5cGVzLmZvckVhY2goZmlsZVR5cGUgPT4gewogICAgICAgICAgICAgICAgICAgIGRhdGEgPSBTRVJWRVJbZmlsZVR5cGVdOwogICAgICAgICAgICAgICAgICAgIHZhciBrZXlzID0gZ2V0T3duT2JqUHJvcHMoZGF0YSk7CiAgICAgICAgICAgICAgICAgICAga2V5cy5mb3JFYWNoKGtleSA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgIHZhciB0ciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlRSIik7CiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmlkID0ga2V5OwogICAgICAgICAgICAgICAgICAgICAgICB0ci5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCInICsgZmlsZVR5cGUgKyAnIiwgdGhpcyknKTsKICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOwogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7CiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bImRhdGEiXVsidXNlcm5hbWUiXTsKICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOwogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7CiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOwogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsKICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9ICIqKioqKioiOwogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7CiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsKICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7CiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOwogICAgICAgICAgICAgICAgICAgICAgICBpZiAoZGF0YVtrZXldWyJkYXRhIl1bImF1dGhlbnRpY2F0aW9uLndlYiJdID09IHRydWUpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSAi4pyTIjsKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSAiLSI7CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOwogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7CiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOwogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsKICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGRhdGFba2V5XVsiZGF0YSJdWyJhdXRoZW50aWNhdGlvbi5wbXMiXSA9PSB0cnVlKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gIuKckyI7CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gIi0iOwogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsKICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOwogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7CiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChkYXRhW2tleV1bImRhdGEiXVsiYXV0aGVudGljYXRpb24ubTN1Il0gPT0gdHJ1ZSkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9ICLinJMiOwogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9ICItIjsKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7CiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsKICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7CiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOwogICAgICAgICAgICAgICAgICAgICAgICBpZiAoZGF0YVtrZXldWyJkYXRhIl1bImF1dGhlbnRpY2F0aW9uLnhtbCJdID09IHRydWUpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSAi4pyTIjsKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSAiLSI7CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOwogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7CiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOwogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsKICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGRhdGFba2V5XVsiZGF0YSJdWyJhdXRoZW50aWNhdGlvbi5hcGkiXSA9PSB0cnVlKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gIuKckyI7CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gIi0iOwogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsKICAgICAgICAgICAgICAgICAgICAgICAgcm93cy5wdXNoKHRyKTsKICAgICAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgIm1hcHBpbmciOgogICAgICAgICAgICAgICAgQlVMS19FRElUID0gZmFsc2U7CiAgICAgICAgICAgICAgICBjcmVhdGVTZWFyY2hPYmooKTsKICAgICAgICAgICAgICAgIGNoZWNrVW5kbygiZXBnTWFwcGluZyIpOwogICAgICAgICAgICAgICAgZGF0YSA9IFNFUlZFUlsieGVwZyJdWyJlcGdNYXBwaW5nIl07CiAgICAgICAgICAgICAgICB2YXIga2V5cyA9IGdldE93bk9ialByb3BzKGRhdGEpOwogICAgICAgICAgICAgICAga2V5cy5mb3JFYWNoKGtleSA9PiB7CiAgICAgICAgICAgICAgICAgICAgdmFyIHRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVFIiKTsKICAgICAgICAgICAgICAgICAgICB0ci5pZCA9IGtleTsKICAgICAgICAgICAgICAgICAgICBzd2l0Y2ggKGRhdGFba2V5XVsieC1hY3RpdmUiXSkgewogICAgICAgICAgICAgICAgICAgICAgICBjYXNlIHRydWU6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ci5jbGFzc05hbWUgPSAiYWN0aXZlRVBHIjsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICAgICAgICBjYXNlIGZhbHNlOgogICAgICAgICAgICAgICAgICAgICAgICAgICAgdHIuY2xhc3NOYW1lID0gIm5vdEFjdGl2ZUVQRyI7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgLy8gQnVsawogICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsKICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJCVUxLIjsKICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZmFsc2U7CiAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOwogICAgICAgICAgICAgICAgICAgIC8vIENoYW5uZWwgbnVtYmVyCiAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOwogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOwogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIklOUFVUQ0hBTk5FTCI7CiAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsieC1jaGFubmVsSUQiXTsKICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7CiAgICAgICAgICAgICAgICAgICAgLy8gTG9nbwogICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsKICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJJTUciOwogICAgICAgICAgICAgICAgICAgIGNlbGwuaW1hZ2VVUkwgPSBkYXRhW2tleV1bInR2Zy1sb2dvIl07CiAgICAgICAgICAgICAgICAgICAgdmFyIHRkID0gY2VsbC5jcmVhdGVDZWxsKCk7CiAgICAgICAgICAgICAgICAgICAgdGQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgibWFwcGluZyIsIHRoaXMpJyk7CiAgICAgICAgICAgICAgICAgICAgdGQuaWQgPSBrZXk7CiAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQodGQpOwogICAgICAgICAgICAgICAgICAgIC8vIENoYW5uZWwgbmFtZQogICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsKICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsKICAgICAgICAgICAgICAgICAgICBjZWxsLmNsYXNzTmFtZSA9IGRhdGFba2V5XVsieC1jYXRlZ29yeSJdOwogICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bIngtbmFtZSJdOwogICAgICAgICAgICAgICAgICAgIHZhciB0ZCA9IGNlbGwuY3JlYXRlQ2VsbCgpOwogICAgICAgICAgICAgICAgICAgIHRkLnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoIm1hcHBpbmciLCB0aGlzKScpOwogICAgICAgICAgICAgICAgICAgIHRkLmlkID0ga2V5OwogICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKHRkKTsKICAgICAgICAgICAgICAgICAgICAvLyBVcGRhdGUgY2hhbm5lbCBuYW1lIHJlZ2V4CiAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOwogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOwogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOwogICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bInVwZGF0ZS1jaGFubmVsLW5hbWUtcmVnZXgiXTsKICAgICAgICAgICAgICAgICAgICB2YXIgdGQgPSBjZWxsLmNyZWF0ZUNlbGwoKTsKICAgICAgICAgICAgICAgICAgICB0ZC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJtYXBwaW5nIiwgdGhpcyknKTsKICAgICAgICAgICAgICAgICAgICB0ZC5pZCA9IGtleTsKICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZCh0ZCk7CiAgICAgICAgICAgICAgICAgICAgLy8gUGxheWxpc3QKICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7CiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7CiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7CiAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGdldFZhbHVlRnJvbVByb3ZpZGVyRmlsZShkYXRhW2tleV1bIl9maWxlLm0zdS5pZCJdLCAibTN1IiwgIm5hbWUiKTsKICAgICAgICAgICAgICAgICAgICB2YXIgdGQgPSBjZWxsLmNyZWF0ZUNlbGwoKTsKICAgICAgICAgICAgICAgICAgICB0ZC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJtYXBwaW5nIiwgdGhpcyknKTsKICAgICAgICAgICAgICAgICAgICB0ZC5pZCA9IGtleTsKICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZCh0ZCk7CiAgICAgICAgICAgICAgICAgICAgLy8gR3JvdXAgKGdyb3VwLXRpdGxlKQogICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsKICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsKICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJ4LWdyb3VwLXRpdGxlIl07CiAgICAgICAgICAgICAgICAgICAgdmFyIHRkID0gY2VsbC5jcmVhdGVDZWxsKCk7CiAgICAgICAgICAgICAgICAgICAgdGQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgibWFwcGluZyIsIHRoaXMpJyk7CiAgICAgICAgICAgICAgICAgICAgdGQuaWQgPSBrZXk7CiAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQodGQpOwogICAgICAgICAgICAgICAgICAgIC8vIFhNTFRWIGZpbGUKICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7CiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7CiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7CiAgICAgICAgICAgICAgICAgICAgaWYgKGRhdGFba2V5XVsieC14bWx0di1maWxlIl0gIT0gIi0iKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBnZXRWYWx1ZUZyb21Qcm92aWRlckZpbGUoZGF0YVtrZXldWyJ4LXhtbHR2LWZpbGUiXSwgInhtbHR2IiwgIm5hbWUiKTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bIngteG1sdHYtZmlsZSJdOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB2YXIgdGQgPSBjZWxsLmNyZWF0ZUNlbGwoKTsKICAgICAgICAgICAgICAgICAgICB0ZC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJtYXBwaW5nIiwgdGhpcyknKTsKICAgICAgICAgICAgICAgICAgICB0ZC5pZCA9IGtleTsKICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZCh0ZCk7CiAgICAgICAgICAgICAgICAgICAgLy8gWE1MVFYgQ2hhbm5lbAogICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsKICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsKICAgICAgICAgICAgICAgICAgICB2YXIgdmFsdWUgPSBkYXRhW2tleV1bIngtbWFwcGluZyJdOwogICAgICAgICAgICAgICAgICAgIGlmICh2YWx1ZS5sZW5ndGggPiAyMCkgewogICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IGRhdGFba2V5XVsieC1tYXBwaW5nIl0uc3Vic3RyaW5nKDAsIDIwKSArICIuLi4iOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gdmFsdWU7CiAgICAgICAgICAgICAgICAgICAgdmFyIHRkID0gY2VsbC5jcmVhdGVDZWxsKCk7CiAgICAgICAgICAgICAgICAgICAgdGQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgibWFwcGluZyIsIHRoaXMpJyk7CiAgICAgICAgICAgICAgICAgICAgdGQuaWQgPSBrZXk7CiAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQodGQpOwogICAgICAgICAgICAgICAgICAgIC8vIFRpbWVTaGlmdAogICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsKICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsKICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJ4LXRpbWVzaGlmdCJdOwogICAgICAgICAgICAgICAgICAgIHZhciB0ZCA9IGNlbGwuY3JlYXRlQ2VsbCgpOwogICAgICAgICAgICAgICAgICAgIHRkLnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoIm1hcHBpbmciLCB0aGlzKScpOwogICAgICAgICAgICAgICAgICAgIHRkLmlkID0ga2V5OwogICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKHRkKTsKICAgICAgICAgICAgICAgICAgICByb3dzLnB1c2godHIpOwogICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAic2V0dGluZ3MiOgogICAgICAgICAgICAgICAgYWxlcnQoKTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgfQogICAgICAgIHJldHVybiByb3dzOwogICAgfQp9CmNsYXNzIENlbGwgewogICAgY3JlYXRlQ2VsbCgpIHsKICAgICAgICBsZXQgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOwogICAgICAgIGlmICh0aGlzLmNoaWxkID09IHRydWUpIHsKICAgICAgICAgICAgdmFyIGVsZW1lbnQ7CiAgICAgICAgICAgIHN3aXRjaCAodGhpcy5jaGlsZFR5cGUpIHsKICAgICAgICAgICAgICAgIGNhc2UgIlAiOgogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KHRoaXMuY2hpbGRUeXBlKTsKICAgICAgICAgICAgICAgICAgICBlbGVtZW50LmlubmVySFRNTCA9IHRoaXMudmFsdWU7CiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC5jbGFzc05hbWUgPSB0aGlzLmNsYXNzTmFtZTsKICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgIGNhc2UgIklOUFVUIjoKICAgICAgICAgICAgICAgICAgICBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCh0aGlzLmNoaWxkVHlwZSk7CiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC52YWx1ZSA9IHRoaXMudmFsdWU7CiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC50eXBlID0gInRleHQiOwogICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgY2FzZSAiSU5QVVRDSEFOTkVMIjoKICAgICAgICAgICAgICAgICAgICBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiSU5QVVQiKTsKICAgICAgICAgICAgICAgICAgICBlbGVtZW50LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2c2NyaXB0OiBjaGFuZ2VDaGFubmVsTnVtYmVyKHRoaXMpIik7CiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC52YWx1ZSA9IHRoaXMudmFsdWU7CiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC50eXBlID0gInRleHQiOwogICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgY2FzZSAiQlVMSyI6CiAgICAgICAgICAgICAgICAgICAgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIklOUFVUIik7CiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC5jaGVja2VkID0gdGhpcy52YWx1ZTsKICAgICAgICAgICAgICAgICAgICBlbGVtZW50LnR5cGUgPSAiY2hlY2tib3giOwogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQuY2xhc3NOYW1lID0gImJ1bGsgaGlkZUJ1bGsiOwogICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgY2FzZSAiQlVMS19IRUFEIjoKICAgICAgICAgICAgICAgICAgICBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiSU5QVVQiKTsKICAgICAgICAgICAgICAgICAgICBlbGVtZW50LmNoZWNrZWQgPSB0aGlzLnZhbHVlOwogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQudHlwZSA9ICJjaGVja2JveCI7CiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC5jbGFzc05hbWUgPSAiYnVsayBoaWRlQnVsayI7CiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAiamF2YXNjcmlwdDogc2VsZWN0QWxsQ2hhbm5lbHMoKSIpOwogICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgY2FzZSAiSU1HIjoKICAgICAgICAgICAgICAgICAgICBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCh0aGlzLmNoaWxkVHlwZSk7CiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC5zZXRBdHRyaWJ1dGUoInNyYyIsIHRoaXMuaW1hZ2VVUkwpOwogICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLmltYWdlVVJMICE9ICIiKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGVsZW1lbnQuc2V0QXR0cmlidXRlKCJvbmVycm9yIiwgImphdmFzY3JpcHQ6IHRoaXMub25lcnJvcj1udWxsO3RoaXMuc3JjPScnIik7CiAgICAgICAgICAgICAgICAgICAgICAgIC8vb25lcnJvcj0idGhpcy5vbmVycm9yPW51bGw7dGhpcy5zcmM9J21pc3NpbmcuZ2lmJzsiCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICAgIHRkLmFwcGVuZENoaWxkKGVsZW1lbnQpOwogICAgICAgIH0KICAgICAgICBlbHNlIHsKICAgICAgICAgICAgdGQuaW5uZXJIVE1MID0gdGhpcy52YWx1ZTsKICAgICAgICB9CiAgICAgICAgaWYgKHRoaXMub25jbGljayA9PSB0cnVlKSB7CiAgICAgICAgICAgIHRkLnNldEF0dHJpYnV0ZSgib25jbGljayIsIHRoaXMub25jbGlja0Z1bmN0aW9uKTsKICAgICAgICAgICAgdGQuY2xhc3NOYW1lID0gInBvaW50ZXIiOwogICAgICAgIH0KICAgICAgICBpZiAodGhpcy50ZENsYXNzTmFtZSAhPSB1bmRlZmluZWQpIHsKICAgICAgICAgICAgdGQuY2xhc3NOYW1lID0gdGhpcy50ZENsYXNzTmFtZTsKICAgICAgICB9CiAgICAgICAgcmV0dXJuIHRkOwogICAgfQp9CmNsYXNzIFNob3dDb250ZW50IGV4dGVuZHMgQ29udGVudCB7CiAgICBjb25zdHJ1Y3RvcihtZW51SUQpIHsKICAgICAgICBzdXBlcigpOwogICAgICAgIHRoaXMubWVudUlEID0gbWVudUlEOwogICAgfQogICAgY3JlYXRlSW5wdXQodHlwZSwgbmFtZSwgdmFsdWUpIHsKICAgICAgICBsZXQgaW5wdXQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJJTlBVVCIpOwogICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgidHlwZSIsIHR5cGUpOwogICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgibmFtZSIsIG5hbWUpOwogICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgidmFsdWUiLCB2YWx1ZSk7CiAgICAgICAgcmV0dXJuIGlucHV0OwogICAgfQogICAgc2hvdygpIHsKICAgICAgICBDT0xVTU5fVE9fU09SVCA9IC0xOwogICAgICAgIC8vIERlbGV0ZSBvbGQgY29udGVudAogICAgICAgIGxldCBkb2MgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCh0aGlzLkRvY3VtZW50SUQpOwogICAgICAgIGRvYy5pbm5lckhUTUwgPSAiIjsKICAgICAgICBzaG93UHJldmlldyhmYWxzZSk7CiAgICAgICAgLy8gSGVhZGxpbmUKICAgICAgICBsZXQgaGVhZGxpbmUgPSBtZW51SXRlbXNbdGhpcy5tZW51SURdLmhlYWRsaW5lOwogICAgICAgIGxldCBtZW51S2V5ID0gbWVudUl0ZW1zW3RoaXMubWVudUlEXS5tZW51S2V5OwogICAgICAgIGxldCBoID0gdGhpcy5jcmVhdGVIZWFkbGluZShoZWFkbGluZSk7CiAgICAgICAgZG9jLmFwcGVuZENoaWxkKGgpOwogICAgICAgIGxldCBociA9IHRoaXMuY3JlYXRlSFIoKTsKICAgICAgICBkb2MuYXBwZW5kQ2hpbGQoaHIpOwogICAgICAgIC8vIEludGVyYWN0aW9uCiAgICAgICAgbGV0IGRpdiA9IHRoaXMuY3JlYXRlSW50ZXJhY3Rpb24oKTsKICAgICAgICBkb2MuYXBwZW5kQ2hpbGQoZGl2KTsKICAgICAgICBsZXQgaW50ZXJhY3Rpb24gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCh0aGlzLmludGVyYWN0aW9uSUQpOwogICAgICAgIHN3aXRjaCAobWVudUtleSkgewogICAgICAgICAgICBjYXNlICJwbGF5bGlzdCI6CiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSB0aGlzLmNyZWF0ZUlucHV0KCJidXR0b24iLCBtZW51S2V5LCAie3suYnV0dG9uLm5ld319Iik7CiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoImlkIiwgIi0iKTsKICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoInBsYXlsaXN0IiknKTsKICAgICAgICAgICAgICAgIGludGVyYWN0aW9uLmFwcGVuZENoaWxkKGlucHV0KTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJmaWx0ZXIiOgogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gdGhpcy5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgbWVudUtleSwgInt7LmJ1dHRvbi5uZXd9fSIpOwogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJpZCIsIC0xKTsKICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoImZpbHRlciIsIHRoaXMpJyk7CiAgICAgICAgICAgICAgICBpbnRlcmFjdGlvbi5hcHBlbmRDaGlsZChpbnB1dCk7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAieG1sdHYiOgogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gdGhpcy5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgbWVudUtleSwgInt7LmJ1dHRvbi5uZXd9fSIpOwogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJpZCIsICJ4bWx0diIpOwogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgieG1sdHYiKScpOwogICAgICAgICAgICAgICAgaW50ZXJhY3Rpb24uYXBwZW5kQ2hpbGQoaW5wdXQpOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgInVzZXJzIjoKICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IHRoaXMuY3JlYXRlSW5wdXQoImJ1dHRvbiIsIG1lbnVLZXksICJ7ey5idXR0b24ubmV3fX0iKTsKICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgiaWQiLCAidXNlcnMiKTsKICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoInVzZXJzIiknKTsKICAgICAgICAgICAgICAgIGludGVyYWN0aW9uLmFwcGVuZENoaWxkKGlucHV0KTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJtYXBwaW5nIjoKICAgICAgICAgICAgICAgIHNob3dFbGVtZW50KCJsb2FkaW5nIiwgdHJ1ZSk7CiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSB0aGlzLmNyZWF0ZUlucHV0KCJidXR0b24iLCBtZW51S2V5LCAie3suYnV0dG9uLnNhdmV9fSIpOwogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoIm1hcHBpbmciLCAiIiwgIiIpJyk7CiAgICAgICAgICAgICAgICBpbnRlcmFjdGlvbi5hcHBlbmRDaGlsZChpbnB1dCk7CiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSB0aGlzLmNyZWF0ZUlucHV0KCJidXR0b24iLCBtZW51S2V5LCAie3suYnV0dG9uLmJ1bGtFZGl0fX0iKTsKICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBidWxrRWRpdCgpJyk7CiAgICAgICAgICAgICAgICBpbnRlcmFjdGlvbi5hcHBlbmRDaGlsZChpbnB1dCk7CiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSB0aGlzLmNyZWF0ZUlucHV0KCJzZWFyY2giLCAic2VhcmNoIiwgIiIpOwogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJpZCIsICJzZWFyY2hNYXBwaW5nIik7CiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LmJ1dHRvbi5zZWFyY2h9fSIpOwogICAgICAgICAgICAgICAgaW5wdXQuY2xhc3NOYW1lID0gInNlYXJjaCI7CiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgJ2phdmFzY3JpcHQ6IHNlYXJjaEluTWFwcGluZygpJyk7CiAgICAgICAgICAgICAgICBpbnRlcmFjdGlvbi5hcHBlbmRDaGlsZChpbnB1dCk7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAic2V0dGluZ3MiOgogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gdGhpcy5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgbWVudUtleSwgInt7LmJ1dHRvbi5zYXZlfX0iKTsKICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBzYXZlU2V0dGluZ3MoKTsnKTsKICAgICAgICAgICAgICAgIGludGVyYWN0aW9uLmFwcGVuZENoaWxkKGlucHV0KTsKICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IHRoaXMuY3JlYXRlSW5wdXQoImJ1dHRvbiIsIG1lbnVLZXksICJ7ey5idXR0b24uYmFja3VwfX0iKTsKICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBiYWNrdXAoKTsnKTsKICAgICAgICAgICAgICAgIGludGVyYWN0aW9uLmFwcGVuZENoaWxkKGlucHV0KTsKICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IHRoaXMuY3JlYXRlSW5wdXQoImJ1dHRvbiIsIG1lbnVLZXksICJ7ey5idXR0b24ucmVzdG9yZX19Iik7CiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogcmVzdG9yZSgpOycpOwogICAgICAgICAgICAgICAgaW50ZXJhY3Rpb24uYXBwZW5kQ2hpbGQoaW5wdXQpOwogICAgICAgICAgICAgICAgdmFyIHdyYXBwZXIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJESVYiKTsKICAgICAgICAgICAgICAgIHdyYXBwZXIuc2V0QXR0cmlidXRlKCJpZCIsICJib3gtd3JhcHBlciIpOwogICAgICAgICAgICAgICAgZG9jLmFwcGVuZENoaWxkKHdyYXBwZXIpOwogICAgICAgICAgICAgICAgdGhpcy5EaXZJRCA9ICJjb250ZW50X3NldHRpbmdzIjsKICAgICAgICAgICAgICAgIHZhciBzZXR0aW5ncyA9IHRoaXMuY3JlYXRlRElWKCk7CiAgICAgICAgICAgICAgICB3cmFwcGVyLmFwcGVuZENoaWxkKHNldHRpbmdzKTsKICAgICAgICAgICAgICAgIHNob3dTZXR0aW5ncygpOwogICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICBjYXNlICJsb2ciOgogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gdGhpcy5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgbWVudUtleSwgInt7LmJ1dHRvbi5yZXNldExvZ3N9fSIpOwogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IHJlc2V0TG9ncygpOycpOwogICAgICAgICAgICAgICAgaW50ZXJhY3Rpb24uYXBwZW5kQ2hpbGQoaW5wdXQpOwogICAgICAgICAgICAgICAgdmFyIHdyYXBwZXIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJESVYiKTsKICAgICAgICAgICAgICAgIHdyYXBwZXIuc2V0QXR0cmlidXRlKCJpZCIsICJib3gtd3JhcHBlciIpOwogICAgICAgICAgICAgICAgZG9jLmFwcGVuZENoaWxkKHdyYXBwZXIpOwogICAgICAgICAgICAgICAgdGhpcy5EaXZJRCA9ICJjb250ZW50X2xvZyI7CiAgICAgICAgICAgICAgICB2YXIgbG9ncyA9IHRoaXMuY3JlYXRlRElWKCk7CiAgICAgICAgICAgICAgICB3cmFwcGVyLmFwcGVuZENoaWxkKGxvZ3MpOwogICAgICAgICAgICAgICAgc2hvd0xvZ3ModHJ1ZSk7CiAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgIGNhc2UgImxvZ291dCI6CiAgICAgICAgICAgICAgICBsb2NhdGlvbi5yZWxvYWQoKTsKICAgICAgICAgICAgICAgIGRvY3VtZW50LmNvb2tpZSA9ICJUb2tlbj0gOyBleHBpcmVzID0gVGh1LCAwMSBKYW4gMTk3MCAwMDowMDowMCBHTVQiOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICB9CiAgICAgICAgLy8gQ3JlYXRlIHRhYmxlIChpZiBuZWVkZWQpCiAgICAgICAgdmFyIHRhYmxlSGVhZGVyID0gbWVudUl0ZW1zW3RoaXMubWVudUlEXS50YWJsZUhlYWRlcjsKICAgICAgICBpZiAodGFibGVIZWFkZXIubGVuZ3RoID4gMCkgewogICAgICAgICAgICB2YXIgd3JhcHBlciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIkRJViIpOwogICAgICAgICAgICBkb2MuYXBwZW5kQ2hpbGQod3JhcHBlcik7CiAgICAgICAgICAgIHdyYXBwZXIuc2V0QXR0cmlidXRlKCJpZCIsICJib3gtd3JhcHBlciIpOwogICAgICAgICAgICB2YXIgdGFibGUgPSB0aGlzLmNyZWF0ZVRBQkxFKCk7CiAgICAgICAgICAgIHdyYXBwZXIuYXBwZW5kQ2hpbGQodGFibGUpOwogICAgICAgICAgICB2YXIgaGVhZGVyID0gdGhpcy5jcmVhdGVUYWJsZVJvdygpOwogICAgICAgICAgICB0YWJsZS5hcHBlbmRDaGlsZChoZWFkZXIpOwogICAgICAgICAgICAvLyBUYWJsZSBoZWFkZXIKICAgICAgICAgICAgdGFibGVIZWFkZXIuZm9yRWFjaChlbGVtZW50ID0+IHsKICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsKICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOwogICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7CiAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZWxlbWVudDsKICAgICAgICAgICAgICAgIGlmIChlbGVtZW50ID09ICJCVUxLIikgewogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIkJVTEtfSEVBRCI7CiAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGZhbHNlOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgaWYgKG1lbnVLZXkgPT0gIm1hcHBpbmciKSB7CiAgICAgICAgICAgICAgICAgICAgaWYgKGVsZW1lbnQgPT0gInt7Lm1hcHBpbmcudGFibGUuY2hOb319IikgewogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLm9uY2xpY2sgPSB0cnVlOwogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLm9uY2xpY2tGdW5jdGlvbiA9ICJqYXZhc2NyaXB0OiBzb3J0VGFibGUoMSk7IjsKICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC50ZENsYXNzTmFtZSA9ICJzb3J0VGhpcyI7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIGlmIChlbGVtZW50ID09ICJ7ey5tYXBwaW5nLnRhYmxlLmNoYW5uZWxOYW1lfX0iKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwub25jbGljayA9IHRydWU7CiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwub25jbGlja0Z1bmN0aW9uID0gImphdmFzY3JpcHQ6IHNvcnRUYWJsZSgzKTsiOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBpZiAoZWxlbWVudCA9PSAie3subWFwcGluZy50YWJsZS51cGRhdGVDaGFubmVsTmFtZVJlZ2V4fX0iKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwub25jbGljayA9IHRydWU7CiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwub25jbGlja0Z1bmN0aW9uID0gImphdmFzY3JpcHQ6IHNvcnRUYWJsZSg0KTsiOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBpZiAoZWxlbWVudCA9PSAie3subWFwcGluZy50YWJsZS5wbGF5bGlzdH19IikgewogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLm9uY2xpY2sgPSB0cnVlOwogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLm9uY2xpY2tGdW5jdGlvbiA9ICJqYXZhc2NyaXB0OiBzb3J0VGFibGUoNSk7IjsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgaWYgKGVsZW1lbnQgPT0gInt7Lm1hcHBpbmcudGFibGUuZ3JvdXBUaXRsZX19IikgewogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLm9uY2xpY2sgPSB0cnVlOwogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLm9uY2xpY2tGdW5jdGlvbiA9ICJqYXZhc2NyaXB0OiBzb3J0VGFibGUoNik7IjsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgaWYgKGVsZW1lbnQgPT0gInt7Lm1hcHBpbmcudGFibGUudGltZXNoaWZ0fX0iKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwub25jbGljayA9IHRydWU7CiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwub25jbGlja0Z1bmN0aW9uID0gImphdmFzY3JpcHQ6IHNvcnRUYWJsZSg5KTsiOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGlmIChtZW51S2V5ID09ICJmaWx0ZXIiKSB7CiAgICAgICAgICAgICAgICAgICAgaWYgKGVsZW1lbnQgPT0gInt7LmZpbHRlci50YWJsZS5zdGFydGluZ0NoYW5uZWx9fSIpIHsKICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5vbmNsaWNrID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5vbmNsaWNrRnVuY3Rpb24gPSAiamF2YXNjcmlwdDogc29ydFRhYmxlKDApOyI7CiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudGRDbGFzc05hbWUgPSAic29ydFRoaXMiOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBpZiAoZWxlbWVudCA9PSAie3suZmlsdGVyLnRhYmxlLm5hbWV9fSIpIHsKICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5vbmNsaWNrID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5vbmNsaWNrRnVuY3Rpb24gPSAiamF2YXNjcmlwdDogc29ydFRhYmxlKDEpOyI7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIGlmIChlbGVtZW50ID09ICJ7ey5maWx0ZXIudGFibGUudHlwZX19IikgewogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLm9uY2xpY2sgPSB0cnVlOwogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLm9uY2xpY2tGdW5jdGlvbiA9ICJqYXZhc2NyaXB0OiBzb3J0VGFibGUoMik7IjsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgaWYgKGVsZW1lbnQgPT0gInt7LmZpbHRlci50YWJsZS5maWx0ZXJ9fSIpIHsKICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5vbmNsaWNrID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5vbmNsaWNrRnVuY3Rpb24gPSAiamF2YXNjcmlwdDogc29ydFRhYmxlKDMpOyI7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgaGVhZGVyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsKICAgICAgICAgICAgfSk7CiAgICAgICAgICAgIHRhYmxlLmFwcGVuZENoaWxkKGhlYWRlcik7CiAgICAgICAgICAgIC8vIENvbnRlbnQgb2YgdGhlIHRhYmxlCiAgICAgICAgICAgIHZhciByb3dzID0gdGhpcy5jcmVhdGVUYWJsZUNvbnRlbnQobWVudUtleSk7CiAgICAgICAgICAgIHJvd3MuZm9yRWFjaCh0ciA9PiB7CiAgICAgICAgICAgICAgICB0YWJsZS5hcHBlbmRDaGlsZCh0cik7CiAgICAgICAgICAgIH0pOwogICAgICAgIH0KICAgICAgICBzd2l0Y2ggKG1lbnVLZXkpIHsKICAgICAgICAgICAgY2FzZSAibWFwcGluZyI6CiAgICAgICAgICAgICAgICBzb3J0VGFibGUoMSk7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAiZmlsdGVyIjoKICAgICAgICAgICAgICAgIHNob3dQcmV2aWV3KHRydWUpOwogICAgICAgICAgICAgICAgc29ydFRhYmxlKDApOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICAgICBDT0xVTU5fVE9fU09SVCA9IC0xOwogICAgICAgICAgICAgICAgc29ydFRhYmxlKDApOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgfQogICAgICAgIHNob3dFbGVtZW50KCJsb2FkaW5nIiwgZmFsc2UpOwogICAgfQp9CmZ1bmN0aW9uIFBhZ2VSZWFkeSgpIHsKICAgIGxldCBzZXJ2ZXIgPSBuZXcgU2VydmVyKCJnZXRTZXJ2ZXJDb25maWciKTsKICAgIHNlcnZlci5yZXF1ZXN0KHt9KTsKICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJyZXNpemUiLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgY2FsY3VsYXRlV3JhcHBlckhlaWdodCgpOwogICAgfSwgdHJ1ZSk7CiAgICBzZXRJbnRlcnZhbChmdW5jdGlvbiAoKSB7CiAgICAgICAgdXBkYXRlTG9nKCk7CiAgICB9LCAxMDAwMCk7CiAgICByZXR1cm47Cn0KZnVuY3Rpb24gY3JlYXRlTGF5b3V0KCkgewogICAgLy8gQ2xpZW50IEluZm8KICAgIGxldCBvYmogPSBTRVJWRVJbImNsaWVudEluZm8iXTsKICAgIGxldCBrZXlzID0gZ2V0T3duT2JqUHJvcHMob2JqKTsKICAgIGZvciAodmFyIGkgPSAwOyBpIDwga2V5cy5sZW5ndGg7IGkrKykgewogICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGtleXNbaV0pLmlubmVySFRNTCA9IG9ialtrZXlzW2ldXTsKICAgICAgICBpZiAoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoa2V5c1tpXSkpIHsKICAgICAgICAgICAgaWYgKGxvY2F0aW9uLnByb3RvY29sID09PSAnaHR0cHM6JykgewogICAgICAgICAgICAgICAgaWYgKGtleXNbaV0gPT09ICJ4ZXBnLXVybCIgfHwga2V5c1tpXSA9PT0gIm0zdS11cmwiIHx8IGtleXNbaV0gPT09ICJEVlIiKSB7CiAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoa2V5c1tpXSkuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCBmdW5jdGlvbiAoZXZlbnQpIHsKICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdGFyZ2V0ID0gZXZlbnQudGFyZ2V0OwogICAgICAgICAgICAgICAgICAgICAgICBuYXZpZ2F0b3IuY2xpcGJvYXJkLndyaXRlVGV4dCh0YXJnZXQuaW5uZXJUZXh0LnNwbGl0KCIgIilbMF0pLnRoZW4oKCkgPT4geyB9KTsKICAgICAgICAgICAgICAgICAgICB9LCBmYWxzZSk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CiAgICBpZiAoIWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJtYWluLW1lbnUiKSkgewogICAgICAgIHJldHVybjsKICAgIH0KICAgIC8vIENyZWF0ZSBtZW51CiAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibWFpbi1tZW51IikuaW5uZXJIVE1MID0gIiI7CiAgICBmb3IgKGxldCBpID0gMDsgaSA8IG1lbnVJdGVtcy5sZW5ndGg7IGkrKykgewogICAgICAgIG1lbnVJdGVtc1tpXS5pZCA9IGk7CiAgICAgICAgc3dpdGNoIChtZW51SXRlbXNbaV1bIm1lbnVLZXkiXSkgewogICAgICAgICAgICBjYXNlICJ1c2VycyI6CiAgICAgICAgICAgIGNhc2UgImxvZ291dCI6CiAgICAgICAgICAgICAgICBpZiAoU0VSVkVSWyJzZXR0aW5ncyJdWyJhdXRoZW50aWNhdGlvbi53ZWIiXSA9PSB0cnVlKSB7CiAgICAgICAgICAgICAgICAgICAgbWVudUl0ZW1zW2ldLmNyZWF0ZUl0ZW0oKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJtYXBwaW5nIjoKICAgICAgICAgICAgY2FzZSAieG1sdHYiOgogICAgICAgICAgICAgICAgaWYgKFNFUlZFUlsiY2xpZW50SW5mbyJdWyJlcGdTb3VyY2UiXSA9PSAiWEVQRyIpIHsKICAgICAgICAgICAgICAgICAgICBtZW51SXRlbXNbaV0uY3JlYXRlSXRlbSgpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICAgICBtZW51SXRlbXNbaV0uY3JlYXRlSXRlbSgpOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgfQogICAgfQogICAgcmV0dXJuOwp9CmZ1bmN0aW9uIG9wZW5UaGlzTWVudShlbGVtZW50KSB7CiAgICBsZXQgaWQgPSBlbGVtZW50LmlkOwogICAgbGV0IGNvbnRlbnQgPSBuZXcgU2hvd0NvbnRlbnQoaWQpOwogICAgY29udGVudC5zaG93KCk7CiAgICBjYWxjdWxhdGVXcmFwcGVySGVpZ2h0KCk7CiAgICByZXR1cm47Cn0KY2xhc3MgUG9wdXBXaW5kb3cgewogICAgY29uc3RydWN0b3IoKSB7CiAgICAgICAgdGhpcy5Eb2N1bWVudElEID0gInBvcHVwLWN1c3RvbSI7CiAgICAgICAgdGhpcy5JbnRlcmFjdGlvbklEID0gImludGVyYWN0aW9uIjsKICAgICAgICB0aGlzLmRvYyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHRoaXMuRG9jdW1lbnRJRCk7CiAgICB9CiAgICBjcmVhdGVUaXRsZSh0aXRsZSkgewogICAgICAgIGxldCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7CiAgICAgICAgdGQuY2xhc3NOYW1lID0gImxlZnQiOwogICAgICAgIHRkLmlubmVySFRNTCA9IHRpdGxlICsgIjoiOwogICAgICAgIHJldHVybiB0ZDsKICAgIH0KICAgIGNyZWF0ZUNvbnRlbnQoZWxlbWVudCkgewogICAgICAgIGxldCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7CiAgICAgICAgdGQuYXBwZW5kQ2hpbGQoZWxlbWVudCk7CiAgICAgICAgcmV0dXJuIHRkOwogICAgfQogICAgY3JlYXRlSW50ZXJhY3Rpb24oKSB7CiAgICAgICAgbGV0IGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOwogICAgICAgIGRpdi5zZXRBdHRyaWJ1dGUoImlkIiwgInBvcHVwLWludGVyYWN0aW9uIik7CiAgICAgICAgZGl2LmNsYXNzTmFtZSA9ICJpbnRlcmFjdGlvbiI7CiAgICAgICAgdGhpcy5kb2MuYXBwZW5kQ2hpbGQoZGl2KTsKICAgIH0KfQpjbGFzcyBQb3B1cENvbnRlbnQgZXh0ZW5kcyBQb3B1cFdpbmRvdyB7CiAgICBjb25zdHJ1Y3RvcigpIHsKICAgICAgICBzdXBlciguLi5hcmd1bWVudHMpOwogICAgICAgIHRoaXMudGFibGUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJUQUJMRSIpOwogICAgfQogICAgY3JlYXRlSGVhZGxpbmUoaGVhZGxpbmUpIHsKICAgICAgICB0aGlzLmRvYy5pbm5lckhUTUwgPSAiIjsKICAgICAgICB2YXIgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIkgzIik7CiAgICAgICAgZWxlbWVudC5pbm5lckhUTUwgPSBoZWFkbGluZS50b1VwcGVyQ2FzZSgpOwogICAgICAgIHRoaXMuZG9jLmFwcGVuZENoaWxkKGVsZW1lbnQpOwogICAgICAgIC8vIENyZWF0ZSB0YWJsZQogICAgICAgIHRoaXMudGFibGUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJUQUJMRSIpOwogICAgICAgIHRoaXMuZG9jLmFwcGVuZENoaWxkKHRoaXMudGFibGUpOwogICAgfQogICAgYXBwZW5kUm93KHRpdGxlLCBlbGVtZW50KSB7CiAgICAgICAgbGV0IHRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVFIiKTsKICAgICAgICAvLyBUaXRsZQogICAgICAgIGlmICh0aXRsZS5sZW5ndGggIT0gMCkgewogICAgICAgICAgICB0ci5hcHBlbmRDaGlsZCh0aGlzLmNyZWF0ZVRpdGxlKHRpdGxlKSk7CiAgICAgICAgfQogICAgICAgIC8vIENvbnRlbnQKICAgICAgICB0ci5hcHBlbmRDaGlsZCh0aGlzLmNyZWF0ZUNvbnRlbnQoZWxlbWVudCkpOwogICAgICAgIHRoaXMudGFibGUuYXBwZW5kQ2hpbGQodHIpOwogICAgfQogICAgY3JlYXRlSW5wdXQodHlwZSwgbmFtZSwgdmFsdWUpIHsKICAgICAgICBsZXQgaW5wdXQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJJTlBVVCIpOwogICAgICAgIGlmICh2YWx1ZSA9PSB1bmRlZmluZWQpIHsKICAgICAgICAgICAgdmFsdWUgPSAiIjsKICAgICAgICB9CiAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJ0eXBlIiwgdHlwZSk7CiAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJuYW1lIiwgbmFtZSk7CiAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJ2YWx1ZSIsIHZhbHVlKTsKICAgICAgICByZXR1cm4gaW5wdXQ7CiAgICB9CiAgICBjcmVhdGVDaGVja2JveChuYW1lKSB7CiAgICAgICAgbGV0IGlucHV0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiSU5QVVQiKTsKICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInR5cGUiLCAiY2hlY2tib3giKTsKICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm5hbWUiLCBuYW1lKTsKICAgICAgICByZXR1cm4gaW5wdXQ7CiAgICB9CiAgICAvLyBDcmVhdGVzIGEgc2VsZWN0aW9uIG9mIG11bHRpcGxlIG9wdGlvbnMgdmFsdWVzIHdpdGggdGV4dCBkZXNjcmlwdGlvbnMKICAgIGNyZWF0ZVNlbGVjdCh0ZXh0LCB2YWx1ZXMsIHNldCwgZGJLZXkpIHsKICAgICAgICBsZXQgc2VsZWN0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiU0VMRUNUIik7CiAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgibmFtZSIsIGRiS2V5KTsKICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRleHQubGVuZ3RoOyBpKyspIHsKICAgICAgICAgICAgbGV0IG9wdGlvbiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIk9QVElPTiIpOwogICAgICAgICAgICBvcHRpb24uc2V0QXR0cmlidXRlKCJ2YWx1ZSIsIHZhbHVlc1tpXSk7CiAgICAgICAgICAgIG9wdGlvbi5pbm5lclRleHQgPSB0ZXh0W2ldOwogICAgICAgICAgICBzZWxlY3QuYXBwZW5kQ2hpbGQob3B0aW9uKTsKICAgICAgICB9CiAgICAgICAgaWYgKHNldCAhPSAiIikgewogICAgICAgICAgICBzZWxlY3QudmFsdWUgPSBzZXQ7CiAgICAgICAgfQogICAgICAgIGlmIChzZXQgPT0gdW5kZWZpbmVkKSB7CiAgICAgICAgICAgIHNlbGVjdC52YWx1ZSA9IHZhbHVlc1swXTsKICAgICAgICB9CiAgICAgICAgcmV0dXJuIHNlbGVjdDsKICAgIH0KICAgIHNlbGVjdE9wdGlvbihzZWxlY3QsIHZhbHVlKSB7CiAgICAgICAgLy9zZWxlY3Quc2VsZWN0ZWRPcHRpb25zID0gdmFsdWUKICAgICAgICBsZXQgcyA9IHNlbGVjdDsKICAgICAgICBzLm9wdGlvbnNbcy5zZWxlY3RlZEluZGV4XS52YWx1ZSA9IHZhbHVlOwogICAgICAgIHJldHVybiBzZWxlY3Q7CiAgICB9CiAgICBkZXNjcmlwdGlvbih2YWx1ZSkgewogICAgICAgIGxldCB0ciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlRSIik7CiAgICAgICAgbGV0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsKICAgICAgICBsZXQgc3BhbiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlBSRSIpOwogICAgICAgIHNwYW4uaW5uZXJIVE1MID0gdmFsdWU7CiAgICAgICAgdHIuYXBwZW5kQ2hpbGQodGQpOwogICAgICAgIHRyLmFwcGVuZENoaWxkKHRoaXMuY3JlYXRlQ29udGVudChzcGFuKSk7CiAgICAgICAgdGhpcy50YWJsZS5hcHBlbmRDaGlsZCh0cik7CiAgICB9CiAgICAvLyBJbnRlcmFjdGlvbgogICAgYWRkSW50ZXJhY3Rpb24oZWxlbWVudCkgewogICAgICAgIGxldCBpbnRlcmFjdGlvbiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJwb3B1cC1pbnRlcmFjdGlvbiIpOwogICAgICAgIGludGVyYWN0aW9uLmFwcGVuZENoaWxkKGVsZW1lbnQpOwogICAgfQp9CmZ1bmN0aW9uIG9wZW5Qb3BVcChkYXRhVHlwZSwgZWxlbWVudCkgewogICAgbGV0IGRhdGEgPSB7fTsKICAgIGxldCBpZDsKICAgIHN3aXRjaCAoZWxlbWVudCkgewogICAgICAgIGNhc2UgdW5kZWZpbmVkOgogICAgICAgICAgICBzd2l0Y2ggKGRhdGFUeXBlKSB7CiAgICAgICAgICAgICAgICBjYXNlICJncm91cC10aXRsZSI6CiAgICAgICAgICAgICAgICAgICAgaWYgKGlkID09IHVuZGVmaW5lZCkgewogICAgICAgICAgICAgICAgICAgICAgICBpZCA9IC0xOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBkYXRhID0gZ2V0TG9jYWxEYXRhKCJmaWx0ZXIiLCBpZCk7CiAgICAgICAgICAgICAgICAgICAgZGF0YVsidHlwZSJdID0gImdyb3VwLXRpdGxlIjsKICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgIGNhc2UgImN1c3RvbS1maWx0ZXIiOgogICAgICAgICAgICAgICAgICAgIGlmIChpZCA9PSB1bmRlZmluZWQpIHsKICAgICAgICAgICAgICAgICAgICAgICAgaWQgPSAtMTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgZGF0YSA9IGdldExvY2FsRGF0YSgiZmlsdGVyIiwgaWQpOwogICAgICAgICAgICAgICAgICAgIGRhdGFbInR5cGUiXSA9ICJjdXN0b20tZmlsdGVyIjsKICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICAgICAgICAgZGF0YVsiaWQucHJvdmlkZXIiXSA9ICItIjsKICAgICAgICAgICAgICAgICAgICBkYXRhWyJ0eXBlIl0gPSBkYXRhVHlwZTsKICAgICAgICAgICAgICAgICAgICBpZCA9ICItIjsKICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgfQogICAgICAgICAgICBicmVhazsKICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICBpZCA9IGVsZW1lbnQuaWQ7CiAgICAgICAgICAgIGRhdGEgPSBnZXRMb2NhbERhdGEoZGF0YVR5cGUsIGlkKTsKICAgICAgICAgICAgYnJlYWs7CiAgICB9CiAgICBsZXQgY29udGVudCA9IG5ldyBQb3B1cENvbnRlbnQoKTsKICAgIHN3aXRjaCAoZGF0YVR5cGUpIHsKICAgICAgICBjYXNlICJwbGF5bGlzdCI6CiAgICAgICAgICAgIGNvbnRlbnQuY3JlYXRlSGVhZGxpbmUoInt7LnBsYXlsaXN0LnBsYXlsaXN0VHlwZS50aXRsZX19Iik7CiAgICAgICAgICAgIC8vIFR5cGUKICAgICAgICAgICAgdmFyIHRleHQgPSBbIk0zVSIsICJIREhvbWVSdW4iXTsKICAgICAgICAgICAgdmFyIHZhbHVlcyA9IFsiamF2YXNjcmlwdDogb3BlblBvcFVwKCdtM3UnKSIsICJqYXZhc2NyaXB0OiBvcGVuUG9wVXAoJ2hkaHInKSJdOwogICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCAiIiwgInR5cGUiKTsKICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgiaWQiLCAidHlwZSIpOwogICAgICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICdqYXZhc2NyaXB0OiBjaGFuZ2VCdXR0b25BY3Rpb24odGhpcywgIm5leHQiLCAib25jbGljayIpJyk7IC8vIGNoYW5nZUJ1dHRvbkFjdGlvbgogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sucGxheWxpc3QudHlwZS50aXRsZX19Iiwgc2VsZWN0KTsKICAgICAgICAgICAgLy8gSW50ZXJhY3Rpb24KICAgICAgICAgICAgY29udGVudC5jcmVhdGVJbnRlcmFjdGlvbigpOwogICAgICAgICAgICAvLyBBYm9ydAogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAiY2FuY2VsIiwgInt7LmJ1dHRvbi5jYW5jZWx9fSIpOwogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogc2hvd0VsZW1lbnQoInBvcHVwIiwgZmFsc2UpOycpOwogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsKICAgICAgICAgICAgLy8gTmV4dAogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAibmV4dCIsICJ7ey5idXR0b24ubmV4dH19Iik7CiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoIm0zdSIpJyk7CiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgiaWQiLCAnbmV4dCcpOwogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgY2FzZSAibTN1IjoKICAgICAgICAgICAgY29udGVudC5jcmVhdGVIZWFkbGluZShkYXRhVHlwZSk7CiAgICAgICAgICAgIC8vIE5hbWUKICAgICAgICAgICAgdmFyIGRiS2V5ID0gIm5hbWUiOwogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsKICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5wbGF5bGlzdC5uYW1lLnBsYWNlaG9sZGVyfX0iKTsKICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnBsYXlsaXN0Lm5hbWUudGl0bGV9fSIsIGlucHV0KTsKICAgICAgICAgICAgLy8gRGVzY3JpcHRpb24KICAgICAgICAgICAgdmFyIGRiS2V5ID0gImRlc2NyaXB0aW9uIjsKICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7CiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3sucGxheWxpc3QuZGVzY3JpcHRpb24ucGxhY2Vob2xkZXJ9fSIpOwogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sucGxheWxpc3QuZGVzY3JpcHRpb24udGl0bGV9fSIsIGlucHV0KTsKICAgICAgICAgICAgLy8gVVJMCiAgICAgICAgICAgIHZhciBkYktleSA9ICJmaWxlLnNvdXJjZSI7CiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOwogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnBsYXlsaXN0LmZpbGVNM1UucGxhY2Vob2xkZXJ9fSIpOwogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sucGxheWxpc3QuZmlsZU0zVS50aXRsZX19IiwgaW5wdXQpOwogICAgICAgICAgICAvLyBUdW5lcgogICAgICAgICAgICBpZiAoU0VSVkVSWyJzZXR0aW5ncyJdWyJidWZmZXIiXSAhPSAiLSIpIHsKICAgICAgICAgICAgICAgIHZhciB0ZXh0ID0gW107CiAgICAgICAgICAgICAgICB2YXIgdmFsdWVzID0gW107CiAgICAgICAgICAgICAgICBmb3IgKHZhciBpID0gMTsgaSA8PSAxMDA7IGkrKykgewogICAgICAgICAgICAgICAgICAgIHRleHQucHVzaChpLnRvU3RyaW5nKCkpOwogICAgICAgICAgICAgICAgICAgIHZhbHVlcy5wdXNoKGkudG9TdHJpbmcoKSk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB2YXIgZGJLZXkgPSAidHVuZXIiOwogICAgICAgICAgICAgICAgdmFyIHNlbGVjdCA9IGNvbnRlbnQuY3JlYXRlU2VsZWN0KHRleHQsIHZhbHVlcywgZGF0YVtkYktleV0sIGRiS2V5KTsKICAgICAgICAgICAgICAgIHNlbGVjdC5zZXRBdHRyaWJ1dGUoIm9uZm9jdXMiLCAiamF2YXNjcmlwdDogcmV0dXJuOyIpOwogICAgICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnBsYXlsaXN0LnR1bmVyLnRpdGxlfX0iLCBzZWxlY3QpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgdmFyIGRiS2V5ID0gInR1bmVyIjsKICAgICAgICAgICAgICAgIGlmIChkYXRhW2RiS2V5XSA9PSB1bmRlZmluZWQpIHsKICAgICAgICAgICAgICAgICAgICBkYXRhW2RiS2V5XSA9IDE7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsKICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicmVhZG9ubHkiLCAidHJ1ZSIpOwogICAgICAgICAgICAgICAgaW5wdXQuY2xhc3NOYW1lID0gIm5vdEF2YWlsYWJsZSI7CiAgICAgICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sucGxheWxpc3QudHVuZXIudGl0bGV9fSIsIGlucHV0KTsKICAgICAgICAgICAgfQogICAgICAgICAgICBjb250ZW50LmRlc2NyaXB0aW9uKCJ7ey5wbGF5bGlzdC50dW5lci5kZXNjcmlwdGlvbn19Iik7CiAgICAgICAgICAgIC8vIEludGVyYXRpb24KICAgICAgICAgICAgY29udGVudC5jcmVhdGVJbnRlcmFjdGlvbigpOwogICAgICAgICAgICAvLyBEZWxldGUKICAgICAgICAgICAgaWYgKGRhdGFbImlkLnByb3ZpZGVyIl0gIT0gIi0iKSB7CiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAiZGVsZXRlIiwgInt7LmJ1dHRvbi5kZWxldGV9fSIpOwogICAgICAgICAgICAgICAgaW5wdXQuY2xhc3NOYW1lID0gImRlbGV0ZSI7CiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogc2F2ZVBvcHVwRGF0YSgibTN1IiwgIicgKyBpZCArICciLCB0cnVlLCAwKScpOwogICAgICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAiYmFjayIsICJ7ey5idXR0b24uYmFja319Iik7CiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJwbGF5bGlzdCIpJyk7CiAgICAgICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsKICAgICAgICAgICAgfQogICAgICAgICAgICAvLyBBYm9ydAogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAiY2FuY2VsIiwgInt7LmJ1dHRvbi5jYW5jZWx9fSIpOwogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogc2hvd0VsZW1lbnQoInBvcHVwIiwgZmFsc2UpOycpOwogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsKICAgICAgICAgICAgLy8gVXBkYXRlCiAgICAgICAgICAgIGlmIChkYXRhWyJpZC5wcm92aWRlciJdICE9ICItIikgewogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgInVwZGF0ZSIsICJ7ey5idXR0b24udXBkYXRlfX0iKTsKICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBzYXZlUG9wdXBEYXRhKCJtM3UiLCAiJyArIGlkICsgJyIsIGZhbHNlLCAxKScpOwogICAgICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgLy8gU2F2ZQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAic2F2ZSIsICJ7ey5idXR0b24uc2F2ZX19Iik7CiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBzYXZlUG9wdXBEYXRhKCJtM3UiLCAiJyArIGlkICsgJyIsIGZhbHNlLCAwKScpOwogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgY2FzZSAiaGRociI6CiAgICAgICAgICAgIGNvbnRlbnQuY3JlYXRlSGVhZGxpbmUoZGF0YVR5cGUpOwogICAgICAgICAgICAvLyBOYW1lCiAgICAgICAgICAgIHZhciBkYktleSA9ICJuYW1lIjsKICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7CiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3sucGxheWxpc3QubmFtZS5wbGFjZWhvbGRlcn19Iik7CiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5wbGF5bGlzdC5uYW1lLnRpdGxlfX0iLCBpbnB1dCk7CiAgICAgICAgICAgIC8vIERlc2NyaXB0aW9uCiAgICAgICAgICAgIHZhciBkYktleSA9ICJkZXNjcmlwdGlvbiI7CiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOwogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnBsYXlsaXN0LmRlc2NyaXB0aW9uLnBsYWNlaG9sZGVyfX0iKTsKICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnBsYXlsaXN0LmRlc2NyaXB0aW9uLnBsYWNlaG9sZGVyfX0iLCBpbnB1dCk7CiAgICAgICAgICAgIC8vIFVSTAogICAgICAgICAgICB2YXIgZGJLZXkgPSAiZmlsZS5zb3VyY2UiOwogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsKICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5wbGF5bGlzdC5maWxlSERIUi5wbGFjZWhvbGRlcn19Iik7CiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5wbGF5bGlzdC5maWxlSERIUi50aXRsZX19IiwgaW5wdXQpOwogICAgICAgICAgICAvLyBUdW5lcgogICAgICAgICAgICBpZiAoU0VSVkVSWyJzZXR0aW5ncyJdWyJidWZmZXIiXSAhPSAiLSIpIHsKICAgICAgICAgICAgICAgIHZhciB0ZXh0ID0gW107CiAgICAgICAgICAgICAgICB2YXIgdmFsdWVzID0gW107CiAgICAgICAgICAgICAgICBmb3IgKHZhciBpID0gMTsgaSA8PSAxMDA7IGkrKykgewogICAgICAgICAgICAgICAgICAgIHRleHQucHVzaChpLnRvU3RyaW5nKCkpOwogICAgICAgICAgICAgICAgICAgIHZhbHVlcy5wdXNoKGkudG9TdHJpbmcoKSk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB2YXIgZGJLZXkgPSAidHVuZXIiOwogICAgICAgICAgICAgICAgdmFyIHNlbGVjdCA9IGNvbnRlbnQuY3JlYXRlU2VsZWN0KHRleHQsIHZhbHVlcywgZGF0YVtkYktleV0sIGRiS2V5KTsKICAgICAgICAgICAgICAgIHNlbGVjdC5zZXRBdHRyaWJ1dGUoIm9uZm9jdXMiLCAiamF2YXNjcmlwdDogcmV0dXJuOyIpOwogICAgICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnBsYXlsaXN0LnR1bmVyLnRpdGxlfX0iLCBzZWxlY3QpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgdmFyIGRiS2V5ID0gInR1bmVyIjsKICAgICAgICAgICAgICAgIGlmIChkYXRhW2RiS2V5XSA9PSB1bmRlZmluZWQpIHsKICAgICAgICAgICAgICAgICAgICBkYXRhW2RiS2V5XSA9IDE7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsKICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicmVhZG9ubHkiLCAidHJ1ZSIpOwogICAgICAgICAgICAgICAgaW5wdXQuY2xhc3NOYW1lID0gIm5vdEF2YWlsYWJsZSI7CiAgICAgICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sucGxheWxpc3QudHVuZXIudGl0bGV9fSIsIGlucHV0KTsKICAgICAgICAgICAgfQogICAgICAgICAgICBjb250ZW50LmRlc2NyaXB0aW9uKCJ7ey5wbGF5bGlzdC50dW5lci5kZXNjcmlwdGlvbn19Iik7CiAgICAgICAgICAgIC8vIEludGVyYWN0aW9uCiAgICAgICAgICAgIGNvbnRlbnQuY3JlYXRlSW50ZXJhY3Rpb24oKTsKICAgICAgICAgICAgLy8gRGVsZXRlCiAgICAgICAgICAgIGlmIChkYXRhWyJpZC5wcm92aWRlciJdICE9ICItIikgewogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImRlbGV0ZSIsICJ7ey5idXR0b24uZGVsZXRlfX0iKTsKICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBzYXZlUG9wdXBEYXRhKCJoZGhyIiwgIicgKyBpZCArICciLCB0cnVlLCAwKScpOwogICAgICAgICAgICAgICAgaW5wdXQuY2xhc3NOYW1lID0gImRlbGV0ZSI7CiAgICAgICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsKICAgICAgICAgICAgfQogICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJiYWNrIiwgInt7LmJ1dHRvbi5iYWNrfX0iKTsKICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoInBsYXlsaXN0IiknKTsKICAgICAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIC8vIEFib3J0CiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJjYW5jZWwiLCAie3suYnV0dG9uLmNhbmNlbH19Iik7CiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBzaG93RWxlbWVudCgicG9wdXAiLCBmYWxzZSk7Jyk7CiAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOwogICAgICAgICAgICAvLyBVcGRhdGUKICAgICAgICAgICAgaWYgKGRhdGFbImlkLnByb3ZpZGVyIl0gIT0gIi0iKSB7CiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAidXBkYXRlIiwgInt7LmJ1dHRvbi51cGRhdGV9fSIpOwogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoImhkaHIiLCAiJyArIGlkICsgJyIsIGZhbHNlLCAxKScpOwogICAgICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgLy8gU2F2ZQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAic2F2ZSIsICJ7ey5idXR0b24uc2F2ZX19Iik7CiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBzYXZlUG9wdXBEYXRhKCJoZGhyIiwgIicgKyBpZCArICciLCBmYWxzZSwgMCknKTsKICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgIGNhc2UgImZpbHRlciI6CiAgICAgICAgICAgIGNvbnRlbnQuY3JlYXRlSGVhZGxpbmUoZGF0YVR5cGUpOwogICAgICAgICAgICAvLyBUeXBlCiAgICAgICAgICAgIHZhciBkYktleSA9ICJ0eXBlIjsKICAgICAgICAgICAgdmFyIHRleHQgPSBbIk0zVTogIiArICJ7ey5maWx0ZXIudHlwZS5ncm91cFRpdGxlfX0iLCAieFRlVmU6ICIgKyAie3suZmlsdGVyLnR5cGUuY3VzdG9tRmlsdGVyfX0iXTsKICAgICAgICAgICAgdmFyIHZhbHVlcyA9IFsiamF2YXNjcmlwdDogb3BlblBvcFVwKCdncm91cC10aXRsZScpIiwgImphdmFzY3JpcHQ6IG9wZW5Qb3BVcCgnY3VzdG9tLWZpbHRlcicpIl07CiAgICAgICAgICAgIHZhciBzZWxlY3QgPSBjb250ZW50LmNyZWF0ZVNlbGVjdCh0ZXh0LCB2YWx1ZXMsICJqYXZhc2NyaXB0OiBvcGVuUG9wVXAoJ2dyb3VwLXRpdGxlJykiLCBkYktleSk7CiAgICAgICAgICAgIHNlbGVjdC5zZXRBdHRyaWJ1dGUoImlkIiwgaWQpOwogICAgICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICdqYXZhc2NyaXB0OiBjaGFuZ2VCdXR0b25BY3Rpb24odGhpcywgIm5leHQiLCAib25jbGljayIpOycpOyAvLyBjaGFuZ2VCdXR0b25BY3Rpb24KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LmZpbHRlci50eXBlLnRpdGxlfX0iLCBzZWxlY3QpOwogICAgICAgICAgICAvLyBJbnRlcmFjdGlvbgogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUludGVyYWN0aW9uKCk7CiAgICAgICAgICAgIC8vIEFib3J0CiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJjYW5jZWwiLCAie3suYnV0dG9uLmNhbmNlbH19Iik7CiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBzaG93RWxlbWVudCgicG9wdXAiLCBmYWxzZSk7Jyk7CiAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOwogICAgICAgICAgICAvLyBOZXh0CiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJuZXh0IiwgInt7LmJ1dHRvbi5uZXh0fX0iKTsKICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgiZ3JvdXAtdGl0bGUiKScpOwogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoImlkIiwgJ25leHQnKTsKICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgIGNhc2UgImN1c3RvbS1maWx0ZXIiOgogICAgICAgIGNhc2UgImdyb3VwLXRpdGxlIjoKICAgICAgICAgICAgc3dpdGNoIChkYXRhVHlwZSkgewogICAgICAgICAgICAgICAgY2FzZSAiY3VzdG9tLWZpbHRlciI6CiAgICAgICAgICAgICAgICAgICAgY29udGVudC5jcmVhdGVIZWFkbGluZSgie3suZmlsdGVyLmN1c3RvbX19IiArICIgRmlsdGVyIik7CiAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICBjYXNlICJncm91cC10aXRsZSI6CiAgICAgICAgICAgICAgICAgICAgY29udGVudC5jcmVhdGVIZWFkbGluZSgie3suZmlsdGVyLmdyb3VwfX0iICsgIiBGaWx0ZXIiKTsKICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgfQogICAgICAgICAgICAvLyBOYW1lICAgICAgCiAgICAgICAgICAgIHZhciBkYktleSA9ICJuYW1lIjsKICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7CiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3suZmlsdGVyLm5hbWUucGxhY2Vob2xkZXJ9fSIpOwogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3suZmlsdGVyLm5hbWUudGl0bGV9fSIsIGlucHV0KTsKICAgICAgICAgICAgLy8gRGVzY3JpcHRpb24KICAgICAgICAgICAgdmFyIGRiS2V5ID0gImRlc2NyaXB0aW9uIjsKICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7CiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3suZmlsdGVyLmRlc2NyaXB0aW9uLnBsYWNlaG9sZGVyfX0iKTsKICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LmZpbHRlci5kZXNjcmlwdGlvbi50aXRsZX19IiwgaW5wdXQpOwogICAgICAgICAgICAvLyBUeXBlCiAgICAgICAgICAgIHZhciBkYktleSA9ICJ0eXBlIjsKICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiaGlkZGVuIiwgZGJLZXksIGRhdGFbZGJLZXldKTsKICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coIiIsIGlucHV0KTsKICAgICAgICAgICAgdmFyIGZpbHRlclR5cGUgPSBkYXRhW2RiS2V5XTsKICAgICAgICAgICAgc3dpdGNoIChmaWx0ZXJUeXBlKSB7CiAgICAgICAgICAgICAgICBjYXNlICJjdXN0b20tZmlsdGVyIjoKICAgICAgICAgICAgICAgICAgICAvLyBDYXNlIHNlbnNpdGl2ZQogICAgICAgICAgICAgICAgICAgIHZhciBkYktleSA9ICJjYXNlU2Vuc2l0aXZlIjsKICAgICAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KGRiS2V5KTsKICAgICAgICAgICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YVtkYktleV07CiAgICAgICAgICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LmZpbHRlci5jYXNlU2Vuc2l0aXZlLnRpdGxlfX0iLCBpbnB1dCk7CiAgICAgICAgICAgICAgICAgICAgLy8gRmlsdGVyIFJ1bGUgKEN1c3RvbSkKICAgICAgICAgICAgICAgICAgICB2YXIgZGJLZXkgPSAiZmlsdGVyIjsKICAgICAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsKICAgICAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LmZpbHRlci5maWx0ZXJSdWxlLnBsYWNlaG9sZGVyfX0iKTsKICAgICAgICAgICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3suZmlsdGVyLmZpbHRlclJ1bGUudGl0bGV9fSIsIGlucHV0KTsKICAgICAgICAgICAgICAgICAgICAvLyBTdGFydGluZyBDaGFubmVsIE51bWJlciBNYXBwaW5nCiAgICAgICAgICAgICAgICAgICAgdmFyIGRiS2V5ID0gInN0YXJ0aW5nQ2hhbm5lbCI7CiAgICAgICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7CiAgICAgICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5maWx0ZXIuc3RhcnRpbmdDaGFubmVsLnBsYWNlaG9sZGVyfX0iKTsKICAgICAgICAgICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3suZmlsdGVyLnN0YXJ0aW5nQ2hhbm5lbC50aXRsZX19IiwgaW5wdXQpOwogICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgY2FzZSAiZ3JvdXAtdGl0bGUiOgogICAgICAgICAgICAgICAgICAgIC8vYWxlcnQoZGJLZXkgKyAiICIgKyBmaWx0ZXJUeXBlKQogICAgICAgICAgICAgICAgICAgIC8vIEZpbHRlciBiYXNlZCBvbiB0aGUgZ3JvdXBzIGluIHRoZSBNM1UKICAgICAgICAgICAgICAgICAgICB2YXIgZGJLZXkgPSAiZmlsdGVyIjsKICAgICAgICAgICAgICAgICAgICB2YXIgZ3JvdXBzTTNVID0gZ2V0TG9jYWxEYXRhKCJtM3VHcm91cHMiLCAiIik7CiAgICAgICAgICAgICAgICAgICAgdmFyIHRleHQgPSBncm91cHNNM1VbInRleHQiXTsKICAgICAgICAgICAgICAgICAgICB2YXIgdmFsdWVzID0gZ3JvdXBzTTNVWyJ2YWx1ZSJdOwogICAgICAgICAgICAgICAgICAgIHZhciBzZWxlY3QgPSBjb250ZW50LmNyZWF0ZVNlbGVjdCh0ZXh0LCB2YWx1ZXMsIGRhdGFbZGJLZXldLCBkYktleSk7CiAgICAgICAgICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsKICAgICAgICAgICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3suZmlsdGVyLmZpbHRlckdyb3VwLnRpdGxlfX0iLCBzZWxlY3QpOwogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuZGVzY3JpcHRpb24oInt7LmZpbHRlci5maWx0ZXJHcm91cC5kZXNjcmlwdGlvbn19Iik7CiAgICAgICAgICAgICAgICAgICAgLy8gQ2FzZSBzZW5zZXRpdmUKICAgICAgICAgICAgICAgICAgICB2YXIgZGJLZXkgPSAiY2FzZVNlbnNpdGl2ZSI7CiAgICAgICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChkYktleSk7CiAgICAgICAgICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGFbZGJLZXldOwogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5maWx0ZXIuY2FzZVNlbnNpdGl2ZS50aXRsZX19IiwgaW5wdXQpOwogICAgICAgICAgICAgICAgICAgIHZhciBkYktleSA9ICJpbmNsdWRlIjsKICAgICAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsKICAgICAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LmZpbHRlci5pbmNsdWRlLnBsYWNlaG9sZGVyfX0iKTsKICAgICAgICAgICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3suZmlsdGVyLmluY2x1ZGUudGl0bGV9fSIsIGlucHV0KTsKICAgICAgICAgICAgICAgICAgICBjb250ZW50LmRlc2NyaXB0aW9uKCJ7ey5maWx0ZXIuaW5jbHVkZS5kZXNjcmlwdGlvbn19Iik7CiAgICAgICAgICAgICAgICAgICAgdmFyIGRiS2V5ID0gImV4Y2x1ZGUiOwogICAgICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOwogICAgICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3suZmlsdGVyLmV4Y2x1ZGUucGxhY2Vob2xkZXJ9fSIpOwogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5maWx0ZXIuZXhjbHVkZS50aXRsZX19IiwgaW5wdXQpOwogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuZGVzY3JpcHRpb24oInt7LmZpbHRlci5leGNsdWRlLmRlc2NyaXB0aW9ufX0iKTsKICAgICAgICAgICAgICAgICAgICAvLyBQcmVzZXJ2ZSBNM1UgUGxheWxpc3QgQ2hhbm5lbCBNYXBwaW5nCiAgICAgICAgICAgICAgICAgICAgdmFyIGRiS2V5ID0gInByZXNlcnZlTWFwcGluZyI7CiAgICAgICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChkYktleSk7CiAgICAgICAgICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGFbZGJLZXldOwogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5maWx0ZXIucHJlc2VydmVNYXBwaW5nLnRpdGxlfX0iLCBpbnB1dCk7CiAgICAgICAgICAgICAgICAgICAgLy8gU3RhcnRpbmcgQ2hhbm5lbCBOdW1iZXIgTWFwcGluZwogICAgICAgICAgICAgICAgICAgIHZhciBkYktleSA9ICJzdGFydGluZ0NoYW5uZWwiOwogICAgICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOwogICAgICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3suZmlsdGVyLnN0YXJ0aW5nQ2hhbm5lbC5wbGFjZWhvbGRlcn19Iik7CiAgICAgICAgICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LmZpbHRlci5zdGFydGluZ0NoYW5uZWwudGl0bGV9fSIsIGlucHV0KTsKICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgLy8gSW50ZXJhY3Rpb24KICAgICAgICAgICAgY29udGVudC5jcmVhdGVJbnRlcmFjdGlvbigpOwogICAgICAgICAgICAvLyBEZWxldGUKICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImRlbGV0ZSIsICJ7ey5idXR0b24uZGVsZXRlfX0iKTsKICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoImZpbHRlciIsICInICsgaWQgKyAnIiwgdHJ1ZSwgMCknKTsKICAgICAgICAgICAgaW5wdXQuY2xhc3NOYW1lID0gImRlbGV0ZSI7CiAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOwogICAgICAgICAgICAvLyBBYm9ydAogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAiY2FuY2VsIiwgInt7LmJ1dHRvbi5jYW5jZWx9fSIpOwogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogc2hvd0VsZW1lbnQoInBvcHVwIiwgZmFsc2UpOycpOwogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsKICAgICAgICAgICAgLy8gU2F2ZQogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAic2F2ZSIsICJ7ey5idXR0b24uc2F2ZX19Iik7CiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBzYXZlUG9wdXBEYXRhKCJmaWx0ZXIiLCAiJyArIGlkICsgJyIsIGZhbHNlLCAwKScpOwogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgY2FzZSAieG1sdHYiOgogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUhlYWRsaW5lKGRhdGFUeXBlKTsKICAgICAgICAgICAgLy8gTmFtZQogICAgICAgICAgICB2YXIgZGJLZXkgPSAibmFtZSI7CiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOwogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnhtbHR2Lm5hbWUucGxhY2Vob2xkZXJ9fSIpOwogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sueG1sdHYubmFtZS50aXRsZX19IiwgaW5wdXQpOwogICAgICAgICAgICAvLyBEZXNjcmlwdGlvbgogICAgICAgICAgICB2YXIgZGJLZXkgPSAiZGVzY3JpcHRpb24iOwogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsKICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey54bWx0di5kZXNjcmlwdGlvbi5wbGFjZWhvbGRlcn19Iik7CiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey54bWx0di5kZXNjcmlwdGlvbi50aXRsZX19IiwgaW5wdXQpOwogICAgICAgICAgICAvLyBVUkwKICAgICAgICAgICAgdmFyIGRiS2V5ID0gImZpbGUuc291cmNlIjsKICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7CiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3sueG1sdHYuZmlsZVhNTFRWLnBsYWNlaG9sZGVyfX0iKTsKICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnhtbHR2LmZpbGVYTUxUVi50aXRsZX19IiwgaW5wdXQpOwogICAgICAgICAgICAvLyBJbnRlcmFjdGlvbgogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUludGVyYWN0aW9uKCk7CiAgICAgICAgICAgIC8vIERlbGV0ZQogICAgICAgICAgICBpZiAoZGF0YVsiaWQucHJvdmlkZXIiXSAhPSAiLSIpIHsKICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJkZWxldGUiLCAie3suYnV0dG9uLmRlbGV0ZX19Iik7CiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogc2F2ZVBvcHVwRGF0YSgieG1sdHYiLCAiJyArIGlkICsgJyIsIHRydWUsIDApJyk7CiAgICAgICAgICAgICAgICBpbnB1dC5jbGFzc05hbWUgPSAiZGVsZXRlIjsKICAgICAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIC8vIEFib3J0CiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJjYW5jZWwiLCAie3suYnV0dG9uLmNhbmNlbH19Iik7CiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBzaG93RWxlbWVudCgicG9wdXAiLCBmYWxzZSk7Jyk7CiAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOwogICAgICAgICAgICAvLyBVcGRhdGUKICAgICAgICAgICAgaWYgKGRhdGFbImlkLnByb3ZpZGVyIl0gIT0gIi0iKSB7CiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAidXBkYXRlIiwgInt7LmJ1dHRvbi51cGRhdGV9fSIpOwogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoInhtbHR2IiwgIicgKyBpZCArICciLCBmYWxzZSwgMSknKTsKICAgICAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIC8vIFNhdmUKICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgInNhdmUiLCAie3suYnV0dG9uLnNhdmV9fSIpOwogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogc2F2ZVBvcHVwRGF0YSgieG1sdHYiLCAiJyArIGlkICsgJyIsIGZhbHNlLCAwKScpOwogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgY2FzZSAidXNlcnMiOgogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUhlYWRsaW5lKCJ7ey5tYWluTWVudS5pdGVtLnVzZXJzfX0iKTsKICAgICAgICAgICAgLy8gVXNlciBuYW1lCiAgICAgICAgICAgIHZhciBkYktleSA9ICJ1c2VybmFtZSI7CiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOwogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnVzZXJzLnVzZXJuYW1lLnBsYWNlaG9sZGVyfX0iKTsKICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnVzZXJzLnVzZXJuYW1lLnRpdGxlfX0iLCBpbnB1dCk7CiAgICAgICAgICAgIC8vIE5ldyBQYXJzc3dvcmQKICAgICAgICAgICAgdmFyIGRiS2V5ID0gInBhc3N3b3JkIjsKICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgicGFzc3dvcmQiLCBkYktleSwgIiIpOwogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnVzZXJzLnBhc3N3b3JkLnBsYWNlaG9sZGVyfX0iKTsKICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnVzZXJzLnBhc3N3b3JkLnRpdGxlfX0iLCBpbnB1dCk7CiAgICAgICAgICAgIC8vIENvbmZpcm1hdGlvbgogICAgICAgICAgICB2YXIgZGJLZXkgPSAiY29uZmlybSI7CiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInBhc3N3b3JkIiwgZGJLZXksICIiKTsKICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey51c2Vycy5jb25maXJtLnBsYWNlaG9sZGVyfX0iKTsKICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnVzZXJzLmNvbmZpcm0udGl0bGV9fSIsIGlucHV0KTsKICAgICAgICAgICAgLy8gQXV0aGVudGljYXRpb24gV0VCCiAgICAgICAgICAgIHZhciBkYktleSA9ICJhdXRoZW50aWNhdGlvbi53ZWIiOwogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KGRiS2V5KTsKICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGFbZGJLZXldOwogICAgICAgICAgICBpZiAoZGF0YVsiZGVmYXVsdFVzZXIiXSA9PSB0cnVlKSB7CiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAiamF2YXNjcmlwdDogcmV0dXJuIGZhbHNlIik7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnVzZXJzLndlYi50aXRsZX19IiwgaW5wdXQpOwogICAgICAgICAgICAvLyBBdXRoZW50aWNhdGlvbiBQTVMKICAgICAgICAgICAgdmFyIGRiS2V5ID0gImF1dGhlbnRpY2F0aW9uLnBtcyI7CiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goZGJLZXkpOwogICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YVtkYktleV07CiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey51c2Vycy5wbXMudGl0bGV9fSIsIGlucHV0KTsKICAgICAgICAgICAgLy8gQXV0aGVudGljYXRpb24gTTNVCiAgICAgICAgICAgIHZhciBkYktleSA9ICJhdXRoZW50aWNhdGlvbi5tM3UiOwogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KGRiS2V5KTsKICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGFbZGJLZXldOwogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sudXNlcnMubTN1LnRpdGxlfX0iLCBpbnB1dCk7CiAgICAgICAgICAgIC8vIEF1dGhlbnRpY2F0aW9uIFhNTAogICAgICAgICAgICB2YXIgZGJLZXkgPSAiYXV0aGVudGljYXRpb24ueG1sIjsKICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChkYktleSk7CiAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhW2RiS2V5XTsKICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnVzZXJzLnhtbC50aXRsZX19IiwgaW5wdXQpOwogICAgICAgICAgICAvLyBBdXRoZW50aWNhdGlvbiBBUEkKICAgICAgICAgICAgdmFyIGRiS2V5ID0gImF1dGhlbnRpY2F0aW9uLmFwaSI7CiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goZGJLZXkpOwogICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YVtkYktleV07CiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey51c2Vycy5hcGkudGl0bGV9fSIsIGlucHV0KTsKICAgICAgICAgICAgLy8gSW50ZXJhY3Rpb24KICAgICAgICAgICAgY29udGVudC5jcmVhdGVJbnRlcmFjdGlvbigpOwogICAgICAgICAgICAvLyBEZWxldGUKICAgICAgICAgICAgaWYgKGRhdGFbImRlZmF1bHRVc2VyIl0gIT0gdHJ1ZSAmJiBpZCAhPSAiLSIpIHsKICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJkZWxldGUiLCAie3suYnV0dG9uLmRlbGV0ZX19Iik7CiAgICAgICAgICAgICAgICBpbnB1dC5jbGFzc05hbWUgPSAiZGVsZXRlIjsKICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBzYXZlUG9wdXBEYXRhKCInICsgZGF0YVR5cGUgKyAnIiwgIicgKyBpZCArICciLCB0cnVlLCAwKScpOwogICAgICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgLy8gQWJvcnQKICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImNhbmNlbCIsICJ7ey5idXR0b24uY2FuY2VsfX0iKTsKICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IHNob3dFbGVtZW50KCJwb3B1cCIsIGZhbHNlKTsnKTsKICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7CiAgICAgICAgICAgIC8vIFNhdmUKICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgInNhdmUiLCAie3suYnV0dG9uLnNhdmV9fSIpOwogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogc2F2ZVBvcHVwRGF0YSgiJyArIGRhdGFUeXBlICsgJyIsICInICsgaWQgKyAnIiwgImZhbHNlIik7Jyk7CiAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOwogICAgICAgICAgICBicmVhazsKICAgICAgICBjYXNlICJtYXBwaW5nIjoKICAgICAgICAgICAgY29udGVudC5jcmVhdGVIZWFkbGluZSgie3subWFpbk1lbnUuaXRlbS5tYXBwaW5nfX0iKTsKICAgICAgICAgICAgLy8gQWN0aXZlCiAgICAgICAgICAgIHZhciBkYktleSA9ICJ4LWFjdGl2ZSI7CiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goZGJLZXkpOwogICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YVtkYktleV07CiAgICAgICAgICAgIGlucHV0LmlkID0gImFjdGl2ZSI7CiAgICAgICAgICAgIC8vaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpCiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdG9nZ2xlQ2hhbm5lbFN0YXR1cygnIiArIGlkICsgIicsIHRoaXMpIik7CiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5tYXBwaW5nLmFjdGl2ZS50aXRsZX19IiwgaW5wdXQpOwogICAgICAgICAgICAvLyBDaGFubmVsIG5hbWUKICAgICAgICAgICAgdmFyIGRiS2V5ID0gIngtbmFtZSI7CiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOwogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7CiAgICAgICAgICAgIGlmIChCVUxLX0VESVQgPT0gdHJ1ZSkgewogICAgICAgICAgICAgICAgaW5wdXQuc3R5bGUuYm9yZGVyID0gInNvbGlkIDFweCByZWQiOwogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJyZWFkb25seSIsICJ0cnVlIik7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7Lm1hcHBpbmcuY2hhbm5lbE5hbWUudGl0bGV9fSIsIGlucHV0KTsKICAgICAgICAgICAgY29udGVudC5kZXNjcmlwdGlvbihkYXRhWyJuYW1lIl0pOwogICAgICAgICAgICAvLyBEZXNjcmlwdGlvbgogICAgICAgICAgICB2YXIgZGJLZXkgPSAieC1kZXNjcmlwdGlvbiI7CiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOwogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7Lm1hcHBpbmcuZGVzY3JpcHRpb24ucGxhY2Vob2xkZXJ9fSIpOwogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7CiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5tYXBwaW5nLmRlc2NyaXB0aW9uLnRpdGxlfX0iLCBpbnB1dCk7CiAgICAgICAgICAgIC8vIFVwZGF0ZSB0aGUgY2hhbm5lbCB4LW5hbWUKICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoIl91dWlkLmtleSIpKSB7CiAgICAgICAgICAgICAgICBpZiAoZGF0YVsiX3V1aWQua2V5Il0gIT0gIiIpIHsKICAgICAgICAgICAgICAgICAgICB2YXIgZGJLZXkgPSAieC11cGRhdGUtY2hhbm5lbC1uYW1lIjsKICAgICAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KGRiS2V5KTsKICAgICAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7CiAgICAgICAgICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGFbZGJLZXldOwogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5tYXBwaW5nLnVwZGF0ZUNoYW5uZWxOYW1lLnRpdGxlfX0iLCBpbnB1dCk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgICAgLy8gQ2hhbm5lbCBuYW1lIHJlZ2V4IGZvciB1cGRhdGluZyB0aGUgY2hhbm5lbCBuYW1lCiAgICAgICAgICAgIHZhciBkYktleSA9ICJ1cGRhdGUtY2hhbm5lbC1uYW1lLXJlZ2V4IjsKICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7CiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3subWFwcGluZy51cGRhdGVDaGFubmVsTmFtZVJlZ2V4LnBsYWNlaG9sZGVyfX0iKTsKICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOwogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3subWFwcGluZy51cGRhdGVDaGFubmVsTmFtZVJlZ2V4LnRpdGxlfX0iLCBpbnB1dCk7CiAgICAgICAgICAgIGNvbnRlbnQuZGVzY3JpcHRpb24oInt7Lm1hcHBpbmcudXBkYXRlQ2hhbm5lbE5hbWVSZWdleC5kZXNjcmlwdGlvbn19Iik7CiAgICAgICAgICAgIC8vIENoYW5uZWwgZ3JvdXAgcmVnZXggZm9yIHVwZGF0aW5nIHRoZSBjaGFubmVsIG5hbWUKICAgICAgICAgICAgdmFyIGRiS2V5ID0gInVwZGF0ZS1jaGFubmVsLW5hbWUtYnktZ3JvdXAtcmVnZXgiOwogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsKICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5tYXBwaW5nLnVwZGF0ZUNoYW5uZWxOYW1lQnlHcm91cFJlZ2V4LnBsYWNlaG9sZGVyfX0iKTsKICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOwogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3subWFwcGluZy51cGRhdGVDaGFubmVsTmFtZUJ5R3JvdXBSZWdleC50aXRsZX19IiwgaW5wdXQpOwogICAgICAgICAgICBjb250ZW50LmRlc2NyaXB0aW9uKCJ7ey5tYXBwaW5nLnVwZGF0ZUNoYW5uZWxOYW1lQnlHcm91cFJlZ2V4LmRlc2NyaXB0aW9ufX0iKTsKICAgICAgICAgICAgLy8gTG9nbyBVUkwgKENoYW5uZWwpIAogICAgICAgICAgICB2YXIgZGJLZXkgPSAidHZnLWxvZ28iOwogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsKICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOwogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoImlkIiwgImNoYW5uZWwtaWNvbiIpOwogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3subWFwcGluZy5jaGFubmVsTG9nby50aXRsZX19IiwgaW5wdXQpOwogICAgICAgICAgICAvLyBDaGFubmVsIGxvZ28gdXBkYXRlCiAgICAgICAgICAgIHZhciBkYktleSA9ICJ4LXVwZGF0ZS1jaGFubmVsLWljb24iOwogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KGRiS2V5KTsKICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGFbZGJLZXldOwogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoImlkIiwgInVwZGF0ZS1pY29uIik7CiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCc7IGNoYW5nZUNoYW5uZWxMb2dvKCciICsgaWQgKyAiJyk7Iik7CiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5tYXBwaW5nLnVwZGF0ZUNoYW5uZWxMb2dvLnRpdGxlfX0iLCBpbnB1dCk7CiAgICAgICAgICAgIC8vIEV4cGFuZCBFUEcgY2F0ZWdvcnkKICAgICAgICAgICAgdmFyIGRiS2V5ID0gIngtY2F0ZWdvcnkiOwogICAgICAgICAgICB2YXIgdGV4dCA9IFsiLSIsICJLaWRzIChFbWJ5IG9ubHkpIiwgIk5ld3MiLCAiTW92aWUiLCAiU2VyaWVzIiwgIlNwb3J0cyJdOwogICAgICAgICAgICB2YXIgdmFsdWVzID0gWyIiLCAiS2lkcyIsICJOZXdzIiwgIk1vdmllIiwgIlNlcmllcyIsICJTcG9ydHMiXTsKICAgICAgICAgICAgdmFyIHNlbGVjdCA9IGNvbnRlbnQuY3JlYXRlU2VsZWN0KHRleHQsIHZhbHVlcywgZGF0YVtkYktleV0sIGRiS2V5KTsKICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsKICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7Lm1hcHBpbmcuZXBnQ2F0ZWdvcnkudGl0bGV9fSIsIHNlbGVjdCk7CiAgICAgICAgICAgIC8vIE0zVSBncm91cCB0aXRsZQogICAgICAgICAgICB2YXIgZGJLZXkgPSAieC1ncm91cC10aXRsZSI7CiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOwogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7CiAgICAgICAgICAgIGlucHV0LmRhdGFzZXQub2xkVmFsdWUgPSBkYXRhW2RiS2V5XTsKICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7Lm1hcHBpbmcubTN1R3JvdXBUaXRsZS50aXRsZX19IiwgaW5wdXQpOwogICAgICAgICAgICBpZiAoZGF0YVsiZ3JvdXAtdGl0bGUiXSAhPSB1bmRlZmluZWQpIHsKICAgICAgICAgICAgICAgIGNvbnRlbnQuZGVzY3JpcHRpb24oZGF0YVsiZ3JvdXAtdGl0bGUiXSk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgaWYgKGRhdGFbIngtdXBkYXRlLWNoYW5uZWwtZ3JvdXAiXSA9PSB0cnVlKSB7CiAgICAgICAgICAgICAgICBpbnB1dC5kaXNhYmxlZCA9IHRydWU7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgLy8gVXBkYXRlIGNoYW5uZWwgZ3JvdXAgY2hlY2tib3gKICAgICAgICAgICAgdmFyIGRiS2V5ID0gIngtdXBkYXRlLWNoYW5uZWwtZ3JvdXAiOwogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KGRiS2V5KTsKICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0b2dnbGVHcm91cFVwZGF0ZUNiKCciICsgaWQgKyAiJywgdGhpcyk7Iik7CiAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhW2RiS2V5XTsKICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7Lm1hcHBpbmcudXBkYXRlQ2hhbm5lbEdyb3VwLnRpdGxlfX0iLCBpbnB1dCk7CiAgICAgICAgICAgIGNvbnRlbnQuZGVzY3JpcHRpb24oInt7Lm1hcHBpbmcudXBkYXRlQ2hhbm5lbEdyb3VwLmRlc2NyaXB0aW9ufX0iKTsKICAgICAgICAgICAgLy8gWE1MVFYgZmlsZQogICAgICAgICAgICB2YXIgZGJLZXkgPSAneC14bWx0di1maWxlJzsKICAgICAgICAgICAgY29uc3QgeG1sVHZGaWxlID0gZGF0YVtkYktleV07CiAgICAgICAgICAgIHZhciB4bWxUdiA9IG5ldyBYTUxUVkZpbGUoKTsKICAgICAgICAgICAgY29uc3QgeG1sVHZGaWxlU2VsZWN0ID0geG1sVHYuZ2V0RmlsZXMoZGF0YVtkYktleV0pOwogICAgICAgICAgICB4bWxUdkZpbGVTZWxlY3Quc2V0QXR0cmlidXRlKCduYW1lJywgZGJLZXkpOwogICAgICAgICAgICB4bWxUdkZpbGVTZWxlY3Quc2V0QXR0cmlidXRlKCdpZCcsICdwb3B1cC14bWx0dicpOwogICAgICAgICAgICB4bWxUdkZpbGVTZWxlY3Quc2V0QXR0cmlidXRlKCdvbmNoYW5nZScsIGBqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJzsgc2V0WG1sdHZDaGFubmVsKCcke2lkfScsIHRoaXMpO2ApOwogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygne3subWFwcGluZy54bWx0dkZpbGUudGl0bGV9fScsIHhtbFR2RmlsZVNlbGVjdCk7CiAgICAgICAgICAgIC8vIFhNTFRWIE1hcHBpbmcKICAgICAgICAgICAgdmFyIGRiS2V5ID0gJ3gtbWFwcGluZyc7CiAgICAgICAgICAgIHZhciB4bWxUdiA9IG5ldyBYTUxUVkZpbGUoKTsKICAgICAgICAgICAgY29uc3QgY3VycmVudFhtbFR2SWQgPSBkYXRhW2RiS2V5XTsKICAgICAgICAgICAgY29uc3QgW3htbFR2SWRDb250YWluZXIsIHhtbFR2SWRJbnB1dCwgeG1sVHZJZERhdGFsaXN0XSA9IHhtbFR2Lm5ld1htbFR2SWRQaWNrZXIoeG1sVHZGaWxlLCBjdXJyZW50WG1sVHZJZCk7CiAgICAgICAgICAgIHhtbFR2SWRDb250YWluZXIuc2V0QXR0cmlidXRlKCdpZCcsICd4bWx0di1pZC1waWNrZXItY29udGFpbmVyJyk7CiAgICAgICAgICAgIHhtbFR2SWRJbnB1dC5zZXRBdHRyaWJ1dGUoJ2xpc3QnLCAneG1sdHYtaWQtcGlja2VyLWRhdGFsaXN0Jyk7CiAgICAgICAgICAgIHhtbFR2SWRJbnB1dC5zZXRBdHRyaWJ1dGUoJ25hbWUnLCAneC1tYXBwaW5nJyk7IC8vIFNob3VsZCBzdGF5IHgtbWFwcGluZyBhcyBpdCB3aWxsIGJlIHVzZWQgaW4gZG9uZVBvcHVwRGF0YSB0byBtYWtlIGEgc2VydmVyIHJlcXVlc3QKICAgICAgICAgICAgeG1sVHZJZElucHV0LnNldEF0dHJpYnV0ZSgnaWQnLCAneG1sdHYtaWQtcGlja2VyLWlucHV0Jyk7CiAgICAgICAgICAgIHhtbFR2SWRJbnB1dC5zZXRBdHRyaWJ1dGUoJ29uY2hhbmdlJywgYGphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnOyBjaGVja1htbHR2Q2hhbm5lbCgnJHtpZH0nLCB0aGlzLnZhbHVlLCAnJHt4bWxUdkZpbGV9Jyk7YCk7CiAgICAgICAgICAgIHhtbFR2SWREYXRhbGlzdC5zZXRBdHRyaWJ1dGUoJ2lkJywgJ3htbHR2LWlkLXBpY2tlci1kYXRhbGlzdCcpOwogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygne3subWFwcGluZy54bWx0dkNoYW5uZWwudGl0bGV9fScsIHhtbFR2SWRDb250YWluZXIpOwogICAgICAgICAgICAvLyBUaW1lc2hpZnQKICAgICAgICAgICAgdmFyIGRiS2V5ID0gIngtdGltZXNoaWZ0IjsKICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7CiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsKICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5tYXBwaW5nLnRpbWVzaGlmdC5wbGFjZWhvbGRlcn19Iik7CiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgiaWQiLCAidGltZXNoaWZ0Iik7CiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5tYXBwaW5nLnRpbWVzaGlmdC50aXRsZX19IiwgaW5wdXQpOwogICAgICAgICAgICAvLyBJbnRlcmFjdGlvbgogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUludGVyYWN0aW9uKCk7CiAgICAgICAgICAgIC8vIFVwbG9hZCBsb2dvCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJjYW5jZWwiLCAie3suYnV0dG9uLnVwbG9hZExvZ299fSIpOwogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogdXBsb2FkTG9nbygpOycpOwogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsKICAgICAgICAgICAgLy8gQWJvcnQKICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImNhbmNlbCIsICJ7ey5idXR0b24uY2FuY2VsfX0iKTsKICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IHNob3dFbGVtZW50KCJwb3B1cCIsIGZhbHNlKTsnKTsKICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7CiAgICAgICAgICAgIC8vIEZpbmlzaGVkCiAgICAgICAgICAgIHZhciBpZHMgPSBbXTsKICAgICAgICAgICAgaWRzID0gZ2V0QWxsU2VsZWN0ZWRDaGFubmVscygpOwogICAgICAgICAgICBpZiAoaWRzLmxlbmd0aCA9PSAwKSB7CiAgICAgICAgICAgICAgICBpZHMucHVzaChpZCk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgInNhdmUiLCAie3suYnV0dG9uLmRvbmV9fSIpOwogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogZG9uZVBvcHVwRGF0YSgiJyArIGRhdGFUeXBlICsgJyIsICInICsgaWRzICsgJyIsICJmYWxzZSIpOycpOwogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgYnJlYWs7CiAgICB9CiAgICBzaG93UG9wVXBFbGVtZW50KCdwb3B1cC1jdXN0b20nKTsKfQpjbGFzcyBYTUxUVkZpbGUgewogICAgZ2V0RmlsZXMoc2V0KSB7CiAgICAgICAgbGV0IGZpbGVJRHMgPSBnZXRPd25PYmpQcm9wcyhTRVJWRVJbInhlcGciXVsieG1sdHZNYXAiXSk7CiAgICAgICAgbGV0IHZhbHVlcyA9IG5ldyBBcnJheSgiLSIpOwogICAgICAgIGxldCB0ZXh0ID0gbmV3IEFycmF5KCItIik7CiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBmaWxlSURzLmxlbmd0aDsgaSsrKSB7CiAgICAgICAgICAgIGlmIChmaWxlSURzW2ldICE9ICJ4VGVWZSBEdW1teSIpIHsKICAgICAgICAgICAgICAgIHZhbHVlcy5wdXNoKGdldFZhbHVlRnJvbVByb3ZpZGVyRmlsZShmaWxlSURzW2ldLCAieG1sdHYiLCAiZmlsZS54dGV2ZSIpKTsKICAgICAgICAgICAgICAgIHRleHQucHVzaChnZXRWYWx1ZUZyb21Qcm92aWRlckZpbGUoZmlsZUlEc1tpXSwgInhtbHR2IiwgIm5hbWUiKSk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICB2YWx1ZXMucHVzaChmaWxlSURzW2ldKTsKICAgICAgICAgICAgICAgIHRleHQucHVzaChmaWxlSURzW2ldKTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBsZXQgc2VsZWN0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiU0VMRUNUIik7CiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0ZXh0Lmxlbmd0aDsgaSsrKSB7CiAgICAgICAgICAgIHZhciBvcHRpb24gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJPUFRJT04iKTsKICAgICAgICAgICAgb3B0aW9uLnNldEF0dHJpYnV0ZSgidmFsdWUiLCB2YWx1ZXNbaV0pOwogICAgICAgICAgICBvcHRpb24uaW5uZXJUZXh0ID0gdGV4dFtpXTsKICAgICAgICAgICAgc2VsZWN0LmFwcGVuZENoaWxkKG9wdGlvbik7CiAgICAgICAgfQogICAgICAgIGlmIChzZXQgIT0gIiIpIHsKICAgICAgICAgICAgc2VsZWN0LnZhbHVlID0gc2V0OwogICAgICAgIH0KICAgICAgICByZXR1cm4gc2VsZWN0OwogICAgfQogICAgLyoqCiAgICAgKiBAcGFyYW0geG1sVHZGaWxlIFhNTCBmaWxlIHBhdGggdG8gZ2V0IEVQRyBmcm9tLgogICAgICogQHBhcmFtIGN1cnJlbnRYbWxUdklkIEN1cnJlbnQgWE1MVFYgSUQgdG8gc2V0IGluaXRpYWwgaW5wdXQgdmFsdWUgdG8uCiAgICAgKiBAcmV0dXJucyBBcnJheSBvZiwgc2VxdWVudGlhbGx5OgogICAgICogMSkgQ29udGFpbmVyIG9mIHRoZSBwaWNrZXIuCiAgICAgKiAyKSBJbnB1dCBmaWVsZCB0byB0eXBlIGF0IGFuZCBnZXQgY2hvaWNlIGZyb20uCiAgICAgKiAzKSBEYXRhbGlzdCBjb250YWluaW5nIGV2ZXJ5IG9wdGlvbi4KICAgICAqLwogICAgbmV3WG1sVHZJZFBpY2tlcih4bWxUdkZpbGUsIGN1cnJlbnRYbWxUdklkKSB7CiAgICAgICAgY29uc3QgY29udGFpbmVyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7CiAgICAgICAgY29uc3QgaW5wdXQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdpbnB1dCcpOwogICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgndHlwZScsICd0ZXh0Jyk7CiAgICAgICAgLy8gSW5pdGlhbGx5LCBzZXQgdmFsdWUgdG8gJy0nIGlmIGlucHV0IGlzIGVtcHR5CiAgICAgICAgaW5wdXQudmFsdWUgPSAoY3VycmVudFhtbFR2SWQpID8gY3VycmVudFhtbFR2SWQgOiAnLSc7CiAgICAgICAgLy8gV2hlbiBpbnB1dCBpcyBmb2N1c2VkLCByZW1vdmUgJy0nIGZyb20gaXQKICAgICAgICBpbnB1dC5hZGRFdmVudExpc3RlbmVyKCdmb2N1cycsIChldnQpID0+IHsKICAgICAgICAgICAgY29uc3QgdGFyZ2V0ID0gZXZ0LnRhcmdldDsKICAgICAgICAgICAgdGFyZ2V0LnZhbHVlID0gKHRhcmdldC52YWx1ZSA9PT0gJy0nKSA/ICcnIDogdGFyZ2V0LnZhbHVlOwogICAgICAgIH0pOwogICAgICAgIC8vIFdoZW4gaW5wdXQgbG9zZSBmb2N1cyBvciB0YWtlIGEgdmFsdWUsIGlmIGl0J3MgZW1wdHksIHNldCB2YWx1ZSB0byAnLScKICAgICAgICBpbnB1dC5hZGRFdmVudExpc3RlbmVyKCdibHVyJywgc2V0RmFsbGJhY2tWYWx1ZSk7CiAgICAgICAgaW5wdXQuYWRkRXZlbnRMaXN0ZW5lcignY2hhbmdlJywgc2V0RmFsbGJhY2tWYWx1ZSk7CiAgICAgICAgZnVuY3Rpb24gc2V0RmFsbGJhY2tWYWx1ZShldnQpIHsKICAgICAgICAgICAgY29uc3QgdGFyZ2V0ID0gZXZ0LnRhcmdldDsKICAgICAgICAgICAgdGFyZ2V0LnZhbHVlID0gKHRhcmdldC52YWx1ZSkgPyB0YXJnZXQudmFsdWUgOiAnLSc7CiAgICAgICAgfQogICAgICAgIGNvbnRhaW5lci5hcHBlbmRDaGlsZChpbnB1dCk7CiAgICAgICAgY29uc3QgZGF0YWxpc3QgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkYXRhbGlzdCcpOwogICAgICAgIGNvbnN0IG9wdGlvbiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ29wdGlvbicpOwogICAgICAgIG9wdGlvbi5zZXRBdHRyaWJ1dGUoJ3ZhbHVlJywgJy0nKTsKICAgICAgICBvcHRpb24uaW5uZXJUZXh0ID0gJy0nOwogICAgICAgIGRhdGFsaXN0LmFwcGVuZENoaWxkKG9wdGlvbik7CiAgICAgICAgY29uc3QgZXBnID0gU0VSVkVSWyd4ZXBnJ11bJ3htbHR2TWFwJ11beG1sVHZGaWxlXTsKICAgICAgICBpZiAoZXBnKSB7CiAgICAgICAgICAgIGNvbnN0IHByb2dyYW1JZHMgPSBnZXRPd25PYmpQcm9wcyhlcGcpOwogICAgICAgICAgICBwcm9ncmFtSWRzLmZvckVhY2goKHByb2dyYW1JZCkgPT4gewogICAgICAgICAgICAgICAgY29uc3QgcHJvZ3JhbSA9IGVwZ1twcm9ncmFtSWRdOwogICAgICAgICAgICAgICAgaWYgKHByb2dyYW0uaGFzT3duUHJvcGVydHkoJ2Rpc3BsYXktbmFtZXMnKSkgewogICAgICAgICAgICAgICAgICAgIHByb2dyYW1bJ2Rpc3BsYXktbmFtZXMnXS5mb3JFYWNoKChkaXNwbGF5TmFtZSkgPT4gewogICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBvcHRpb24gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdvcHRpb24nKTsKICAgICAgICAgICAgICAgICAgICAgICAgb3B0aW9uLnNldEF0dHJpYnV0ZSgndmFsdWUnLCBwcm9ncmFtSWQpOwogICAgICAgICAgICAgICAgICAgICAgICBvcHRpb24uaW5uZXJUZXh0ID0gZGlzcGxheU5hbWVbJ1ZhbHVlJ107CiAgICAgICAgICAgICAgICAgICAgICAgIGRhdGFsaXN0LmFwcGVuZENoaWxkKG9wdGlvbik7CiAgICAgICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgICAgICBjb25zdCBvcHRpb24gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdvcHRpb24nKTsKICAgICAgICAgICAgICAgICAgICBvcHRpb24uc2V0QXR0cmlidXRlKCd2YWx1ZScsIHByb2dyYW1JZCk7CiAgICAgICAgICAgICAgICAgICAgb3B0aW9uLmlubmVyVGV4dCA9ICctJzsKICAgICAgICAgICAgICAgICAgICBkYXRhbGlzdC5hcHBlbmRDaGlsZChvcHRpb24pOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9KTsKICAgICAgICB9CiAgICAgICAgY29udGFpbmVyLmFwcGVuZENoaWxkKGRhdGFsaXN0KTsKICAgICAgICByZXR1cm4gW2NvbnRhaW5lciwgaW5wdXQsIGRhdGFsaXN0XTsKICAgIH0KfQpmdW5jdGlvbiBnZXRWYWx1ZUZyb21Qcm92aWRlckZpbGUoZmlsZSwgZmlsZVR5cGUsIGtleSkgewogICAgaWYgKGZpbGUgPT0gInhUZVZlIER1bW15IikgewogICAgICAgIHJldHVybiBmaWxlOwogICAgfQogICAgbGV0IGZpbGVJRDsKICAgIGxldCBpbmRpY2F0b3IgPSBmaWxlLmNoYXJBdCgwKTsKICAgIHN3aXRjaCAoaW5kaWNhdG9yKSB7CiAgICAgICAgY2FzZSAiTSI6CiAgICAgICAgICAgIGZpbGVUeXBlID0gIm0zdSI7CiAgICAgICAgICAgIGZpbGVJRCA9IGZpbGU7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgIGNhc2UgIkgiOgogICAgICAgICAgICBmaWxlVHlwZSA9ICJoZGhyIjsKICAgICAgICAgICAgZmlsZUlEID0gZmlsZTsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgY2FzZSAiWCI6CiAgICAgICAgICAgIGZpbGVUeXBlID0gInhtbHR2IjsKICAgICAgICAgICAgZmlsZUlEID0gZmlsZS5zdWJzdHJpbmcoMCwgZmlsZS5sYXN0SW5kZXhPZignLicpKTsKICAgICAgICAgICAgYnJlYWs7CiAgICB9CiAgICBpZiAoU0VSVkVSWyJzZXR0aW5ncyJdWyJmaWxlcyJdW2ZpbGVUeXBlXS5oYXNPd25Qcm9wZXJ0eShmaWxlSUQpID09IHRydWUpIHsKICAgICAgICB2YXIgZGF0YSA9IFNFUlZFUlsic2V0dGluZ3MiXVsiZmlsZXMiXVtmaWxlVHlwZV1bZmlsZUlEXTsKICAgICAgICByZXR1cm4gZGF0YVtrZXldOwogICAgfQogICAgcmV0dXJuOwp9CmZ1bmN0aW9uIHNldFhtbHR2Q2hhbm5lbChlcGdNYXBJZCwgeG1sVHZGaWxlU2VsZWN0KSB7CiAgICBjb25zdCB4bWxUdiA9IG5ldyBYTUxUVkZpbGUoKTsKICAgIGNvbnN0IG5ld1htbFR2RmlsZSA9IHhtbFR2RmlsZVNlbGVjdC52YWx1ZTsKICAgIC8vIFJlbW92ZSBvbGQgWE1MVFYgSUQgc2VsZWN0aW9uIGJveAogICAgY29uc3QgeG1sVHZJZFBpY2tlclBhcmVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd4bWx0di1pZC1waWNrZXItY29udGFpbmVyJykucGFyZW50RWxlbWVudDsKICAgIHhtbFR2SWRQaWNrZXJQYXJlbnQuaW5uZXJIVE1MID0gJyc7CiAgICAvLyBDcmVhdGUgbmV3IFhNTFRWIElEIHNlbGVjdGlvbiBib3gKICAgIGNvbnN0IHR2Z0lkID0gU0VSVkVSWyd4ZXBnJ11bJ2VwZ01hcHBpbmcnXVtlcGdNYXBJZF1bJ3R2Zy1pZCddOwogICAgY29uc3QgW3htbFR2SWRDb250YWluZXIsIHhtbFR2SWRJbnB1dCwgeG1sVHZJZERhdGFsaXN0XSA9IHhtbFR2Lm5ld1htbFR2SWRQaWNrZXIobmV3WG1sVHZGaWxlLCB0dmdJZCk7CiAgICB4bWxUdklkQ29udGFpbmVyLnNldEF0dHJpYnV0ZSgnaWQnLCAneG1sdHYtaWQtcGlja2VyLWNvbnRhaW5lcicpOwogICAgeG1sVHZJZElucHV0LnNldEF0dHJpYnV0ZSgnbGlzdCcsICd4bWx0di1pZC1waWNrZXItZGF0YWxpc3QnKTsKICAgIHhtbFR2SWRJbnB1dC5zZXRBdHRyaWJ1dGUoJ25hbWUnLCAneC1tYXBwaW5nJyk7IC8vIFNob3VsZCBzdGF5IHgtbWFwcGluZyBhcyBpdCB3aWxsIGJlIHVzZWQgaW4gZG9uZVBvcHVwRGF0YSB0byBtYWtlIGEgc2VydmVyIHJlcXVlc3QKICAgIHhtbFR2SWRJbnB1dC5zZXRBdHRyaWJ1dGUoJ2lkJywgJ3htbHR2LWlkLXBpY2tlci1pbnB1dCcpOwogICAgeG1sVHZJZElucHV0LnNldEF0dHJpYnV0ZSgnb25jaGFuZ2UnLCBgamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCc7IGNoZWNrWG1sdHZDaGFubmVsKCcke2VwZ01hcElkfScsIHRoaXMudmFsdWUsICcke25ld1htbFR2RmlsZX0nKTtgKTsKICAgIHhtbFR2SWRJbnB1dC5jbGFzc0xpc3QuYWRkKCdjaGFuZ2VkJyk7CiAgICB4bWxUdklkRGF0YWxpc3Quc2V0QXR0cmlidXRlKCdpZCcsICd4bWx0di1pZC1waWNrZXItZGF0YWxpc3QnKTsKICAgIC8vIEFkZCBuZXcgWE1MVFYgSUQgc2VsZWN0aW9uIGJveCB0byBpdCdzIHBhcmVudAogICAgeG1sVHZJZFBpY2tlclBhcmVudC5hcHBlbmRDaGlsZCh4bWxUdklkQ29udGFpbmVyKTsKICAgIGNoZWNrWG1sdHZDaGFubmVsKGVwZ01hcElkLCB4bWxUdklkSW5wdXQudmFsdWUsIG5ld1htbFR2RmlsZSk7Cn0KZnVuY3Rpb24gY2hlY2tYbWx0dkNoYW5uZWwoZXBnTWFwSWQsIG5ld1htbFR2SWQsIHhtbFR2RmlsZSkgewogICAgY29uc3QgY2hhbm5lbEFjdGl2ZUNiID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2FjdGl2ZScpOwogICAgY29uc3QgY2hhbm5lbEFjdGl2ZSA9IG5ld1htbFR2SWQgIT0gJy0nOwogICAgY2hhbm5lbEFjdGl2ZUNiLmNoZWNrZWQgPSBjaGFubmVsQWN0aXZlOwogICAgY2hhbm5lbEFjdGl2ZUNiLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJzsKICAgIGlmICh4bWxUdkZpbGUgIT0gJ3hUZVZlIER1bW15JyAmJiBjaGFubmVsQWN0aXZlID09IHRydWUpIHsKICAgICAgICBjaGFuZ2VDaGFubmVsTG9nbyhlcGdNYXBJZCk7CiAgICAgICAgcmV0dXJuOwogICAgfQogICAgaWYgKHhtbFR2RmlsZSA9PSAneFRlVmUgRHVtbXknKSB7CiAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3VwZGF0ZS1pY29uJykuY2hlY2tlZCA9IGZhbHNlOwogICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd1cGRhdGUtaWNvbicpLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJzsKICAgIH0KfQpmdW5jdGlvbiBjaGFuZ2VDaGFubmVsTG9nbyhlcGdNYXBJZCkgewogICAgY29uc3QgY2hhbm5lbCA9IFNFUlZFUlsneGVwZyddWydlcGdNYXBwaW5nJ11bZXBnTWFwSWRdOwogICAgY29uc3QgeG1sVHZGaWxlU2VsZWN0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3BvcHVwLXhtbHR2Jyk7CiAgICBjb25zdCB4bWxUdkZpbGUgPSB4bWxUdkZpbGVTZWxlY3Qub3B0aW9uc1t4bWxUdkZpbGVTZWxlY3Quc2VsZWN0ZWRJbmRleF0udmFsdWU7CiAgICBjb25zdCB4bWxUdklkSW5wdXQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgneG1sdHYtaWQtcGlja2VyLWlucHV0Jyk7CiAgICBjb25zdCBuZXdYbWxUdklkID0geG1sVHZJZElucHV0LnZhbHVlOwogICAgY29uc3QgdXBkYXRlTG9nbyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd1cGRhdGUtaWNvbicpLmNoZWNrZWQ7CiAgICBsZXQgbG9nbzsKICAgIGlmICh1cGRhdGVMb2dvID09IHRydWUgJiYgeG1sVHZGaWxlICE9ICd4VGVWZSBEdW1teScpIHsKICAgICAgICBpZiAoU0VSVkVSWyd4ZXBnJ11bJ3htbHR2TWFwJ11beG1sVHZGaWxlXS5oYXNPd25Qcm9wZXJ0eShuZXdYbWxUdklkKSkgewogICAgICAgICAgICBsb2dvID0gU0VSVkVSWyd4ZXBnJ11bJ3htbHR2TWFwJ11beG1sVHZGaWxlXVtuZXdYbWxUdklkXVsnaWNvbiddOwogICAgICAgIH0KICAgICAgICBlbHNlIHsKICAgICAgICAgICAgbG9nbyA9IGNoYW5uZWxbJ3R2Zy1sb2dvJ107CiAgICAgICAgfQogICAgICAgIHZhciBsb2dvSW5wdXQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY2hhbm5lbC1pY29uJyk7CiAgICAgICAgbG9nb0lucHV0LnZhbHVlID0gbG9nbzsKICAgICAgICBpZiAoQlVMS19FRElUID09IGZhbHNlKSB7CiAgICAgICAgICAgIGxvZ29JbnB1dC5jbGFzc05hbWUgPSAnY2hhbmdlZCc7CiAgICAgICAgfQogICAgfQp9CmZ1bmN0aW9uIHNhdmVQb3B1cERhdGEoZGF0YVR5cGUsIGlkLCByZW1vdmUsIG9wdGlvbikgewogICAgaWYgKGRhdGFUeXBlID09ICJtYXBwaW5nIikgewogICAgICAgIGxldCBkYXRhID0ge307CiAgICAgICAgbGV0IGNtZCA9ICJzYXZlRXBnTWFwcGluZyI7CiAgICAgICAgZGF0YVsiZXBnTWFwcGluZyJdID0gU0VSVkVSWyJ4ZXBnIl1bImVwZ01hcHBpbmciXTsKICAgICAgICBsZXQgc2VydmVyID0gbmV3IFNlcnZlcihjbWQpOwogICAgICAgIHNlcnZlci5yZXF1ZXN0KGRhdGEpOwogICAgICAgIGRlbGV0ZSBVTkRPWyJlcGdNYXBwaW5nIl07CiAgICAgICAgcmV0dXJuOwogICAgfQogICAgbGV0IGRpdiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJwb3B1cC1jdXN0b20iKTsKICAgIGxldCBpbnB1dHMgPSBkaXYuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlRBQkxFIilbMF0uZ2V0RWxlbWVudHNCeVRhZ05hbWUoIklOUFVUIik7CiAgICBsZXQgc2VsZWN0cyA9IGRpdi5nZXRFbGVtZW50c0J5VGFnTmFtZSgiVEFCTEUiKVswXS5nZXRFbGVtZW50c0J5VGFnTmFtZSgiU0VMRUNUIik7CiAgICBsZXQgaW5wdXQgPSB7fTsKICAgIGxldCBjb25maXJtTXNnOwogICAgZm9yIChsZXQgaSA9IDA7IGkgPCBzZWxlY3RzLmxlbmd0aDsgaSsrKSB7CiAgICAgICAgdmFyIG5hbWU7CiAgICAgICAgbmFtZSA9IHNlbGVjdHNbaV0ubmFtZTsKICAgICAgICB2YXIgdmFsdWUgPSBzZWxlY3RzW2ldLnZhbHVlOwogICAgICAgIHN3aXRjaCAobmFtZSkgewogICAgICAgICAgICBjYXNlICJ0dW5lciI6CiAgICAgICAgICAgICAgICBpbnB1dFtuYW1lXSA9IHBhcnNlSW50KHZhbHVlKTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAgICAgaW5wdXRbbmFtZV0gPSB2YWx1ZTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgIH0KICAgIH0KICAgIGZvciAobGV0IGkgPSAwOyBpIDwgaW5wdXRzLmxlbmd0aDsgaSsrKSB7CiAgICAgICAgc3dpdGNoIChpbnB1dHNbaV0udHlwZSkgewogICAgICAgICAgICBjYXNlICJjaGVja2JveCI6CiAgICAgICAgICAgICAgICBuYW1lID0gaW5wdXRzW2ldLm5hbWU7CiAgICAgICAgICAgICAgICBpbnB1dFtuYW1lXSA9IGlucHV0c1tpXS5jaGVja2VkOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgInRleHQiOgogICAgICAgICAgICBjYXNlICJoaWRkZW4iOgogICAgICAgICAgICBjYXNlICJwYXNzd29yZCI6CiAgICAgICAgICAgICAgICBuYW1lID0gaW5wdXRzW2ldLm5hbWU7CiAgICAgICAgICAgICAgICBzd2l0Y2ggKG5hbWUpIHsKICAgICAgICAgICAgICAgICAgICBjYXNlICJ0dW5lciI6CiAgICAgICAgICAgICAgICAgICAgICAgIGlucHV0W25hbWVdID0gcGFyc2VJbnQoaW5wdXRzW2ldLnZhbHVlKTsKICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgICAgICAgICAgICAgaW5wdXRbbmFtZV0gPSBpbnB1dHNbaV0udmFsdWU7CiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgfQogICAgfQogICAgbGV0IGRhdGEgPSB7fTsKICAgIGxldCBjbWQ7CiAgICBpZiAocmVtb3ZlID09IHRydWUpIHsKICAgICAgICBpbnB1dFsiZGVsZXRlIl0gPSB0cnVlOwogICAgfQogICAgc3dpdGNoIChkYXRhVHlwZSkgewogICAgICAgIGNhc2UgInVzZXJzIjoKICAgICAgICAgICAgY29uZmlybU1zZyA9ICJEZWxldGUgdGhpcyB1c2VyPyI7CiAgICAgICAgICAgIGlmIChpZCA9PSAiLSIpIHsKICAgICAgICAgICAgICAgIGNtZCA9ICJzYXZlTmV3VXNlciI7CiAgICAgICAgICAgICAgICBkYXRhWyJ1c2VyRGF0YSJdID0gaW5wdXQ7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICBjbWQgPSAic2F2ZVVzZXJEYXRhIjsKICAgICAgICAgICAgICAgIGxldCBkID0ge307CiAgICAgICAgICAgICAgICBkW2lkXSA9IGlucHV0OwogICAgICAgICAgICAgICAgZGF0YVsidXNlckRhdGEiXSA9IGQ7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgY2FzZSAibTN1IjoKICAgICAgICAgICAgY29uZmlybU1zZyA9ICJEZWxldGUgdGhpcyBwbGF5bGlzdD8iOwogICAgICAgICAgICBzd2l0Y2ggKG9wdGlvbikgewogICAgICAgICAgICAgICAgLy8gUG9wdXA6IFNhdmUKICAgICAgICAgICAgICAgIGNhc2UgMDoKICAgICAgICAgICAgICAgICAgICBjbWQgPSAic2F2ZUZpbGVzTTNVIjsKICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgIC8vIFBvcHVwOiBVcGRhdGUKICAgICAgICAgICAgICAgIGNhc2UgMToKICAgICAgICAgICAgICAgICAgICBjbWQgPSAidXBkYXRlRmlsZU0zVSI7CiAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZGF0YVsiZmlsZXMiXSA9IHt9OwogICAgICAgICAgICBkYXRhWyJmaWxlcyJdW2RhdGFUeXBlXSA9IHt9OwogICAgICAgICAgICBkYXRhWyJmaWxlcyJdW2RhdGFUeXBlXVtpZF0gPSBpbnB1dDsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgY2FzZSAiaGRociI6CiAgICAgICAgICAgIGNvbmZpcm1Nc2cgPSAiRGVsZXRlIHRoaXMgSERIb21lUnVuIHR1bmVyPyI7CiAgICAgICAgICAgIHN3aXRjaCAob3B0aW9uKSB7CiAgICAgICAgICAgICAgICAvLyBQb3B1cDogU2F2ZQogICAgICAgICAgICAgICAgY2FzZSAwOgogICAgICAgICAgICAgICAgICAgIGNtZCA9ICJzYXZlRmlsZXNIREhSIjsKICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgIC8vIFBvcHVwOiBVcGRhdGUKICAgICAgICAgICAgICAgIGNhc2UgMToKICAgICAgICAgICAgICAgICAgICBjbWQgPSAidXBkYXRlRmlsZUhESFIiOwogICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGRhdGFbImZpbGVzIl0gPSB7fTsKICAgICAgICAgICAgZGF0YVsiZmlsZXMiXVtkYXRhVHlwZV0gPSB7fTsKICAgICAgICAgICAgZGF0YVsiZmlsZXMiXVtkYXRhVHlwZV1baWRdID0gaW5wdXQ7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgIGNhc2UgInhtbHR2IjoKICAgICAgICAgICAgY29uZmlybU1zZyA9ICJEZWxldGUgdGhpcyBYTUxUViBmaWxlPyI7CiAgICAgICAgICAgIHN3aXRjaCAob3B0aW9uKSB7CiAgICAgICAgICAgICAgICAvLyBQb3B1cDogU2F2ZQogICAgICAgICAgICAgICAgY2FzZSAwOgogICAgICAgICAgICAgICAgICAgIGNtZCA9ICJzYXZlRmlsZXNYTUxUViI7CiAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAvLyBQb3B1cDogVXBkYXRlCiAgICAgICAgICAgICAgICBjYXNlIDE6CiAgICAgICAgICAgICAgICAgICAgY21kID0gInVwZGF0ZUZpbGVYTUxUViI7CiAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZGF0YVsiZmlsZXMiXSA9IHt9OwogICAgICAgICAgICBkYXRhWyJmaWxlcyJdW2RhdGFUeXBlXSA9IHt9OwogICAgICAgICAgICBkYXRhWyJmaWxlcyJdW2RhdGFUeXBlXVtpZF0gPSBpbnB1dDsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgY2FzZSAiZmlsdGVyIjoKICAgICAgICAgICAgY29uZmlybU1zZyA9ICJEZWxldGUgdGhpcyBmaWx0ZXI/IjsKICAgICAgICAgICAgY21kID0gInNhdmVGaWx0ZXIiOwogICAgICAgICAgICBkYXRhWyJmaWx0ZXIiXSA9IHt9OwogICAgICAgICAgICBkYXRhWyJmaWx0ZXIiXVtpZF0gPSBpbnB1dDsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgcmV0dXJuOwogICAgfQogICAgaWYgKHJlbW92ZSA9PSB0cnVlKSB7CiAgICAgICAgaWYgKCFjb25maXJtKGNvbmZpcm1Nc2cpKSB7CiAgICAgICAgICAgIHNob3dFbGVtZW50KCJwb3B1cCIsIGZhbHNlKTsKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KICAgIH0KICAgIGxldCBzZXJ2ZXIgPSBuZXcgU2VydmVyKGNtZCk7CiAgICBzZXJ2ZXIucmVxdWVzdChkYXRhKTsKfQpmdW5jdGlvbiBkb25lUG9wdXBEYXRhKGRhdGFUeXBlLCBpZHNTdHIpIHsKICAgIGxldCBpZHMgPSBpZHNTdHIuc3BsaXQoJywnKTsKICAgIGxldCBkaXYgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicG9wdXAtY3VzdG9tIik7CiAgICBsZXQgaW5wdXRzID0gZGl2LmdldEVsZW1lbnRzQnlDbGFzc05hbWUoImNoYW5nZWQiKTsKICAgIGlkcy5mb3JFYWNoKGlkID0+IHsKICAgICAgICBsZXQgaW5wdXQ7CiAgICAgICAgaW5wdXQgPSBTRVJWRVJbInhlcGciXVsiZXBnTWFwcGluZyJdW2lkXTsKICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGlucHV0cy5sZW5ndGg7IGkrKykgewogICAgICAgICAgICBsZXQgbmFtZTsKICAgICAgICAgICAgbGV0IHZhbHVlOwogICAgICAgICAgICBzd2l0Y2ggKGlucHV0c1tpXS50YWdOYW1lKSB7CiAgICAgICAgICAgICAgICBjYXNlICJJTlBVVCI6CiAgICAgICAgICAgICAgICAgICAgc3dpdGNoIChpbnB1dHNbaV0udHlwZSkgewogICAgICAgICAgICAgICAgICAgICAgICBjYXNlICJjaGVja2JveCI6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lID0gaW5wdXRzW2ldLm5hbWU7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IGlucHV0c1tpXS5jaGVja2VkOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5wdXRbbmFtZV0gPSB2YWx1ZTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICAgICAgICBjYXNlICJ0ZXh0IjoKICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWUgPSBpbnB1dHNbaV0ubmFtZTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlID0gaW5wdXRzW2ldLnZhbHVlOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5wdXRbbmFtZV0gPSB2YWx1ZTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgIGNhc2UgIlNFTEVDVCI6CiAgICAgICAgICAgICAgICAgICAgbmFtZSA9IGlucHV0c1tpXS5uYW1lOwogICAgICAgICAgICAgICAgICAgIHZhbHVlID0gaW5wdXRzW2ldLnZhbHVlOwogICAgICAgICAgICAgICAgICAgIGlucHV0W25hbWVdID0gdmFsdWU7CiAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgc3dpdGNoIChuYW1lKSB7CiAgICAgICAgICAgICAgICBjYXNlICJ0dmctbG9nbyI6CiAgICAgICAgICAgICAgICAgICAgLy8oZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpLmNoaWxkTm9kZXNbMl0uZmlyc3RDaGlsZCBhcyBIVE1MRWxlbWVudCkuc2V0QXR0cmlidXRlKCJzcmMiLCB2YWx1ZSkKICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgIGNhc2UgIngtbmFtZSI6CiAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpLmNoaWxkTm9kZXNbM10uZmlyc3RDaGlsZC5pbm5lckhUTUwgPSB2YWx1ZTsKICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgIGNhc2UgIngtY2F0ZWdvcnkiOgogICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5jaGlsZE5vZGVzWzNdLmZpcnN0Q2hpbGQuY2xhc3NOYW1lID0gdmFsdWU7CiAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICBjYXNlICJ1cGRhdGUtY2hhbm5lbC1uYW1lLXJlZ2V4IjoKICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkuY2hpbGROb2Rlc1s0XS5maXJzdENoaWxkLmlubmVySFRNTCA9IHZhbHVlOwogICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgY2FzZSAieC1ncm91cC10aXRsZSI6CiAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpLmNoaWxkTm9kZXNbNl0uZmlyc3RDaGlsZC5pbm5lckhUTUwgPSB2YWx1ZTsKICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgIGNhc2UgIngteG1sdHYtZmlsZSI6CiAgICAgICAgICAgICAgICAgICAgaWYgKHZhbHVlICE9ICJ4VGVWZSBEdW1teSIgJiYgdmFsdWUgIT0gIi0iKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlID0gZ2V0VmFsdWVGcm9tUHJvdmlkZXJGaWxlKHZhbHVlLCAieG1sdHYiLCAibmFtZSIpOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBpZiAodmFsdWUgPT0gIi0iKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGlucHV0WyJ4LWFjdGl2ZSJdID0gZmFsc2U7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5jaGlsZE5vZGVzWzddLmZpcnN0Q2hpbGQuaW5uZXJIVE1MID0gdmFsdWU7CiAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICBjYXNlICJ4LW1hcHBpbmciOgogICAgICAgICAgICAgICAgICAgIGlmICh2YWx1ZSA9PSAiLSIpIHsKICAgICAgICAgICAgICAgICAgICAgICAgaW5wdXRbIngtYWN0aXZlIl0gPSBmYWxzZTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpLmNoaWxkTm9kZXNbOF0uZmlyc3RDaGlsZC5pbm5lckhUTUwgPSB2YWx1ZTsKICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgIGNhc2UgIngtdGltZXNoaWZ0IjoKICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkuY2hpbGROb2Rlc1s5XS5maXJzdENoaWxkLmlubmVySFRNTCA9IHZhbHVlOwogICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgfQogICAgICAgICAgICBjcmVhdGVTZWFyY2hPYmooKTsKICAgICAgICAgICAgc2VhcmNoSW5NYXBwaW5nKCk7CiAgICAgICAgfQogICAgICAgIGlmIChpbnB1dFsieC1hY3RpdmUiXSA9PSBmYWxzZSkgewogICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkuY2xhc3NOYW1lID0gIm5vdEFjdGl2ZUVQRyI7CiAgICAgICAgfQogICAgICAgIGVsc2UgewogICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkuY2xhc3NOYW1lID0gImFjdGl2ZUVQRyI7CiAgICAgICAgfQogICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5jaGlsZE5vZGVzWzJdLmZpcnN0Q2hpbGQuc2V0QXR0cmlidXRlKCJzcmMiLCBpbnB1dFsidHZnLWxvZ28iXSk7CiAgICB9KTsKICAgIHNob3dFbGVtZW50KCJwb3B1cCIsIGZhbHNlKTsKICAgIHJldHVybjsKfQpmdW5jdGlvbiBzaG93UHJldmlldyhlbGVtZW50KSB7CiAgICBsZXQgZGl2ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm15U3RyZWFtc0JveCIpOwogICAgc3dpdGNoIChlbGVtZW50KSB7CiAgICAgICAgY2FzZSBmYWxzZToKICAgICAgICAgICAgZGl2LmNsYXNzTmFtZSA9ICJub3RWaXNpYmxlIjsKICAgICAgICAgICAgcmV0dXJuOwogICAgfQogICAgbGV0IHN0cmVhbXMgPSBbImFjdGl2ZVN0cmVhbXMiLCAiaW5hY3RpdmVTdHJlYW1zIl07CiAgICBzdHJlYW1zLmZvckVhY2gocHJldmlldyA9PiB7CiAgICAgICAgbGV0IHRhYmxlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQocHJldmlldyk7CiAgICAgICAgdGFibGUuaW5uZXJIVE1MID0gIiI7CiAgICAgICAgbGV0IG9iaiA9IFNFUlZFUlsiZGF0YSJdWyJTdHJlYW1QcmV2aWV3VUkiXVtwcmV2aWV3XTsKICAgICAgICBvYmouZm9yRWFjaChjaGFubmVsID0+IHsKICAgICAgICAgICAgbGV0IHRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVFIiKTsKICAgICAgICAgICAgbGV0IHRkS2V5ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsKICAgICAgICAgICAgbGV0IHRkVmFsID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsKICAgICAgICAgICAgdGRLZXkuY2xhc3NOYW1lID0gInRkS2V5IjsKICAgICAgICAgICAgdGRWYWwuY2xhc3NOYW1lID0gInRkVmFsIjsKICAgICAgICAgICAgc3dpdGNoIChwcmV2aWV3KSB7CiAgICAgICAgICAgICAgICBjYXNlICJhY3RpdmVTdHJlYW1zIjoKICAgICAgICAgICAgICAgICAgICB0ZEtleS5pbm5lclRleHQgPSAiQ2hhbm5lbDogKCspIjsKICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgIGNhc2UgImluYWN0aXZlU3RyZWFtcyI6CiAgICAgICAgICAgICAgICAgICAgdGRLZXkuaW5uZXJUZXh0ID0gIkNoYW5uZWw6ICgtKSI7CiAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgdGRWYWwuaW5uZXJUZXh0ID0gY2hhbm5lbDsKICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQodGRLZXkpOwogICAgICAgICAgICB0ci5hcHBlbmRDaGlsZCh0ZFZhbCk7CiAgICAgICAgICAgIHRhYmxlLmFwcGVuZENoaWxkKHRyKTsKICAgICAgICB9KTsKICAgIH0pOwogICAgc2hvd0VsZW1lbnQoImxvYWRpbmciLCBmYWxzZSk7CiAgICBkaXYuY2xhc3NOYW1lID0gInZpc2libGUiOwogICAgcmV0dXJuOwp9Cg==" + webUI["html/js/menu_ts.js"] = "Y2xhc3MgTWFpbk1lbnUgewogICAgY29uc3RydWN0b3IoKSB7CiAgICAgICAgdGhpcy5Eb2N1bWVudElEID0gIm1haW4tbWVudSI7CiAgICAgICAgdGhpcy5IVE1MVGFnID0gIkxJIjsKICAgICAgICB0aGlzLkltYWdlUGF0aCA9ICJpbWcvIjsKICAgIH0KICAgIGNyZWF0ZUlNRyhzcmMpIHsKICAgICAgICBsZXQgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIklNRyIpOwogICAgICAgIGVsZW1lbnQuc2V0QXR0cmlidXRlKCJzcmMiLCB0aGlzLkltYWdlUGF0aCArIHNyYyk7CiAgICAgICAgcmV0dXJuIGVsZW1lbnQ7CiAgICB9CiAgICBjcmVhdGVWYWx1ZSh2YWx1ZSkgewogICAgICAgIGxldCBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiUCIpOwogICAgICAgIGVsZW1lbnQuaW5uZXJIVE1MID0gdmFsdWU7CiAgICAgICAgcmV0dXJuIGVsZW1lbnQ7CiAgICB9Cn0KY2xhc3MgTWFpbk1lbnVJdGVtIGV4dGVuZHMgTWFpbk1lbnUgewogICAgY29uc3RydWN0b3IobWVudUtleSwgdmFsdWUsIGltYWdlLCBoZWFkbGluZSkgewogICAgICAgIHN1cGVyKCk7CiAgICAgICAgdGhpcy5tZW51S2V5ID0gbWVudUtleTsKICAgICAgICB0aGlzLnZhbHVlID0gdmFsdWU7CiAgICAgICAgdGhpcy5pbWdTcmMgPSBpbWFnZTsKICAgICAgICB0aGlzLmhlYWRsaW5lID0gaGVhZGxpbmU7CiAgICB9CiAgICBjcmVhdGVJdGVtKCkgewogICAgICAgIGxldCBpdGVtID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiTEkiKTsKICAgICAgICBpdGVtLnNldEF0dHJpYnV0ZSgib25jbGljayIsICJqYXZhc2NyaXB0OiBvcGVuVGhpc01lbnUodGhpcykiKTsKICAgICAgICBpdGVtLnNldEF0dHJpYnV0ZSgiaWQiLCB0aGlzLmlkKTsKICAgICAgICBsZXQgaW1nID0gdGhpcy5jcmVhdGVJTUcodGhpcy5pbWdTcmMpOwogICAgICAgIGxldCB2YWx1ZSA9IHRoaXMuY3JlYXRlVmFsdWUodGhpcy52YWx1ZSk7CiAgICAgICAgaXRlbS5hcHBlbmRDaGlsZChpbWcpOwogICAgICAgIGl0ZW0uYXBwZW5kQ2hpbGQodmFsdWUpOwogICAgICAgIGxldCBkb2MgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCh0aGlzLkRvY3VtZW50SUQpOwogICAgICAgIGRvYy5hcHBlbmRDaGlsZChpdGVtKTsKICAgICAgICBzd2l0Y2ggKHRoaXMubWVudUtleSkgewogICAgICAgICAgICBjYXNlICJwbGF5bGlzdCI6CiAgICAgICAgICAgICAgICB0aGlzLnRhYmxlSGVhZGVyID0gWyJ7ey5wbGF5bGlzdC50YWJsZS5wbGF5bGlzdH19IiwgInt7LnBsYXlsaXN0LnRhYmxlLnR1bmVyfX0iLCAie3sucGxheWxpc3QudGFibGUubGFzdFVwZGF0ZX19IiwgInt7LnBsYXlsaXN0LnRhYmxlLmF2YWlsYWJpbGl0eX19ICUiLCAie3sucGxheWxpc3QudGFibGUudHlwZX19IiwgInt7LnBsYXlsaXN0LnRhYmxlLnN0cmVhbXN9fSIsICJ7ey5wbGF5bGlzdC50YWJsZS5ncm91cFRpdGxlfX0gJSIsICJ7ey5wbGF5bGlzdC50YWJsZS50dmdJRH19ICUiLCAie3sucGxheWxpc3QudGFibGUudW5pcXVlSUR9fSAlIl07CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAieG1sdHYiOgogICAgICAgICAgICAgICAgdGhpcy50YWJsZUhlYWRlciA9IFsie3sueG1sdHYudGFibGUuZ3VpZGV9fSIsICJ7ey54bWx0di50YWJsZS5sYXN0VXBkYXRlfX0iLCAie3sueG1sdHYudGFibGUuYXZhaWxhYmlsaXR5fX0gJSIsICJ7ey54bWx0di50YWJsZS5jaGFubmVsc319IiwgInt7LnhtbHR2LnRhYmxlLnByb2dyYW1zfX0iXTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJmaWx0ZXIiOgogICAgICAgICAgICAgICAgdGhpcy50YWJsZUhlYWRlciA9IFsie3suZmlsdGVyLnRhYmxlLnN0YXJ0aW5nQ2hhbm5lbH19IiwgInt7LmZpbHRlci50YWJsZS5uYW1lfX0iLCAie3suZmlsdGVyLnRhYmxlLnR5cGV9fSIsICJ7ey5maWx0ZXIudGFibGUuZmlsdGVyfX0iXTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJ1c2VycyI6CiAgICAgICAgICAgICAgICB0aGlzLnRhYmxlSGVhZGVyID0gWyJ7ey51c2Vycy50YWJsZS51c2VybmFtZX19IiwgInt7LnVzZXJzLnRhYmxlLnBhc3N3b3JkfX0iLCAie3sudXNlcnMudGFibGUud2VifX0iLCAie3sudXNlcnMudGFibGUucG1zfX0iLCAie3sudXNlcnMudGFibGUubTN1fX0iLCAie3sudXNlcnMudGFibGUueG1sfX0iLCAie3sudXNlcnMudGFibGUuYXBpfX0iXTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJtYXBwaW5nIjoKICAgICAgICAgICAgICAgIHRoaXMudGFibGVIZWFkZXIgPSBbIkJVTEsiLCAie3subWFwcGluZy50YWJsZS5jaE5vfX0iLCAie3subWFwcGluZy50YWJsZS5sb2dvfX0iLCAie3subWFwcGluZy50YWJsZS5jaGFubmVsTmFtZX19IiwgInt7Lm1hcHBpbmcudGFibGUudXBkYXRlQ2hhbm5lbE5hbWVSZWdleH19IiwgInt7Lm1hcHBpbmcudGFibGUucGxheWxpc3R9fSIsICJ7ey5tYXBwaW5nLnRhYmxlLmdyb3VwVGl0bGV9fSIsICJ7ey5tYXBwaW5nLnRhYmxlLnhtbHR2RmlsZX19IiwgInt7Lm1hcHBpbmcudGFibGUueG1sdHZJRH19IiwgInt7Lm1hcHBpbmcudGFibGUudGltZXNoaWZ0fX0iXTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgIH0KICAgIH0KfQpjbGFzcyBDb250ZW50IHsKICAgIGNvbnN0cnVjdG9yKCkgewogICAgICAgIHRoaXMuRG9jdW1lbnRJRCA9ICJjb250ZW50IjsKICAgICAgICB0aGlzLlRhYmxlSUQgPSAiY29udGVudF90YWJsZSI7CiAgICAgICAgdGhpcy5oZWFkZXJDbGFzcyA9ICJjb250ZW50X3RhYmxlX2hlYWRlciI7CiAgICAgICAgdGhpcy5pbnRlcmFjdGlvbklEID0gImNvbnRlbnQtaW50ZXJhY3Rpb24iOwogICAgfQogICAgY3JlYXRlSGVhZGxpbmUodmFsdWUpIHsKICAgICAgICBsZXQgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIkgzIik7CiAgICAgICAgZWxlbWVudC5pbm5lckhUTUwgPSB2YWx1ZTsKICAgICAgICByZXR1cm4gZWxlbWVudDsKICAgIH0KICAgIGNyZWF0ZUhSKCkgewogICAgICAgIHJldHVybiBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJIUiIpOwogICAgfQogICAgY3JlYXRlSW50ZXJhY3Rpb24oKSB7CiAgICAgICAgbGV0IGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJESVYiKTsKICAgICAgICBlbGVtZW50LnNldEF0dHJpYnV0ZSgiaWQiLCB0aGlzLmludGVyYWN0aW9uSUQpOwogICAgICAgIHJldHVybiBlbGVtZW50OwogICAgfQogICAgY3JlYXRlRElWKCkgewogICAgICAgIGxldCBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiRElWIik7CiAgICAgICAgZWxlbWVudC5pZCA9IHRoaXMuRGl2SUQ7CiAgICAgICAgcmV0dXJuIGVsZW1lbnQ7CiAgICB9CiAgICBjcmVhdGVUQUJMRSgpIHsKICAgICAgICBsZXQgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlRBQkxFIik7CiAgICAgICAgZWxlbWVudC5pZCA9IHRoaXMuVGFibGVJRDsKICAgICAgICByZXR1cm4gZWxlbWVudDsKICAgIH0KICAgIGNyZWF0ZVRhYmxlUm93KCkgewogICAgICAgIGxldCBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVFIiKTsKICAgICAgICBlbGVtZW50LmNsYXNzTmFtZSA9IHRoaXMuaGVhZGVyQ2xhc3M7CiAgICAgICAgcmV0dXJuIGVsZW1lbnQ7CiAgICB9CiAgICBjcmVhdGVUYWJsZUNvbnRlbnQobWVudUtleSkgewogICAgICAgIGxldCBkYXRhID0ge307CiAgICAgICAgbGV0IHJvd3MgPSBbXTsKICAgICAgICBsZXQgZmlsZVR5cGVzID0gW107CiAgICAgICAgc3dpdGNoIChtZW51S2V5KSB7CiAgICAgICAgICAgIGNhc2UgInBsYXlsaXN0IjoKICAgICAgICAgICAgICAgIGZpbGVUeXBlcyA9IFsibTN1IiwgImhkaHIiXTsKICAgICAgICAgICAgICAgIGZpbGVUeXBlcy5mb3JFYWNoKGZpbGVUeXBlID0+IHsKICAgICAgICAgICAgICAgICAgICBkYXRhID0gU0VSVkVSWyJzZXR0aW5ncyJdWyJmaWxlcyJdW2ZpbGVUeXBlXTsKICAgICAgICAgICAgICAgICAgICB2YXIga2V5cyA9IGdldE93bk9ialByb3BzKGRhdGEpOwogICAgICAgICAgICAgICAgICAgIGtleXMuZm9yRWFjaChrZXkgPT4gewogICAgICAgICAgICAgICAgICAgICAgICB2YXIgdHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJUUiIpOwogICAgICAgICAgICAgICAgICAgICAgICB0ci5pZCA9IGtleTsKICAgICAgICAgICAgICAgICAgICAgICAgdHIuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgiJyArIGZpbGVUeXBlICsgJyIsIHRoaXMpJyk7CiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsKICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7CiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOwogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJuYW1lIl07CiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsKICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOwogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7CiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChTRVJWRVJbInNldHRpbmdzIl1bImJ1ZmZlciJdICE9ICItIikgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsidHVuZXIiXTsKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSAiLSI7CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOwogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7CiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOwogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsKICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsibGFzdC51cGRhdGUiXTsKICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOwogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7CiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOwogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsKICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsicHJvdmlkZXIuYXZhaWxhYmlsaXR5Il07CiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsKICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOwogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7CiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bInR5cGUiXS50b1VwcGVyQ2FzZSgpOwogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7CiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsKICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7CiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOwogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJjb21wYXRpYmlsaXR5Il1bInN0cmVhbXMiXTsKICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOwogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7CiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOwogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsKICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsiY29tcGF0aWJpbGl0eSJdWyJncm91cC50aXRsZSJdOwogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7CiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsKICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7CiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOwogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJjb21wYXRpYmlsaXR5Il1bInR2Zy5pZCJdOwogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7CiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsKICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7CiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOwogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJjb21wYXRpYmlsaXR5Il1bInN0cmVhbS5pZCJdOwogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7CiAgICAgICAgICAgICAgICAgICAgICAgIHJvd3MucHVzaCh0cik7CiAgICAgICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJmaWx0ZXIiOgogICAgICAgICAgICAgICAgZGVsZXRlIFNFUlZFUlsic2V0dGluZ3MiXVsiZmlsdGVyIl1bLTFdOwogICAgICAgICAgICAgICAgZGF0YSA9IFNFUlZFUlsic2V0dGluZ3MiXVsiZmlsdGVyIl07CiAgICAgICAgICAgICAgICB2YXIga2V5cyA9IGdldE93bk9ialByb3BzKGRhdGEpOwogICAgICAgICAgICAgICAga2V5cy5mb3JFYWNoKGtleSA9PiB7CiAgICAgICAgICAgICAgICAgICAgdmFyIHRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVFIiKTsKICAgICAgICAgICAgICAgICAgICB0ci5pZCA9IGtleTsKICAgICAgICAgICAgICAgICAgICB0ci5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCInICsgZGF0YVtrZXldWyJ0eXBlIl0gKyAnIiwgdGhpcyknKTsKICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7CiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7CiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7CiAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsic3RhcnRpbmdDaGFubmVsIl07CiAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOwogICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsKICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsKICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJuYW1lIl07CiAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOwogICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsKICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsKICAgICAgICAgICAgICAgICAgICBzd2l0Y2ggKGRhdGFba2V5XVsidHlwZSJdKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgImN1c3RvbS1maWx0ZXIiOgogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9ICJ7ey5maWx0ZXIuY3VzdG9tfX0iOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgImdyb3VwLXRpdGxlIjoKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSAie3suZmlsdGVyLmdyb3VwfX0iOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOwogICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsKICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsKICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJmaWx0ZXIiXTsKICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7CiAgICAgICAgICAgICAgICAgICAgcm93cy5wdXNoKHRyKTsKICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgInhtbHR2IjoKICAgICAgICAgICAgICAgIGZpbGVUeXBlcyA9IG5ldyBBcnJheSgieG1sdHYiKTsKICAgICAgICAgICAgICAgIGZpbGVUeXBlcy5mb3JFYWNoKGZpbGVUeXBlID0+IHsKICAgICAgICAgICAgICAgICAgICBkYXRhID0gU0VSVkVSWyJzZXR0aW5ncyJdWyJmaWxlcyJdW2ZpbGVUeXBlXTsKICAgICAgICAgICAgICAgICAgICB2YXIga2V5cyA9IGdldE93bk9ialByb3BzKGRhdGEpOwogICAgICAgICAgICAgICAgICAgIGtleXMuZm9yRWFjaChrZXkgPT4gewogICAgICAgICAgICAgICAgICAgICAgICB2YXIgdHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJUUiIpOwogICAgICAgICAgICAgICAgICAgICAgICB0ci5pZCA9IGtleTsKICAgICAgICAgICAgICAgICAgICAgICAgdHIuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgiJyArIGZpbGVUeXBlICsgJyIsIHRoaXMpJyk7CiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsKICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7CiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOwogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJuYW1lIl07CiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsKICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOwogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7CiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bImxhc3QudXBkYXRlIl07CiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsKICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOwogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7CiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bInByb3ZpZGVyLmF2YWlsYWJpbGl0eSJdOwogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7CiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsKICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7CiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOwogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJjb21wYXRpYmlsaXR5Il1bInhtbHR2LmNoYW5uZWxzIl07CiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsKICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOwogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7CiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bImNvbXBhdGliaWxpdHkiXVsieG1sdHYucHJvZ3JhbXMiXTsKICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOwogICAgICAgICAgICAgICAgICAgICAgICByb3dzLnB1c2godHIpOwogICAgICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAidXNlcnMiOgogICAgICAgICAgICAgICAgZmlsZVR5cGVzID0gbmV3IEFycmF5KCJ1c2VycyIpOwogICAgICAgICAgICAgICAgZmlsZVR5cGVzLmZvckVhY2goZmlsZVR5cGUgPT4gewogICAgICAgICAgICAgICAgICAgIGRhdGEgPSBTRVJWRVJbZmlsZVR5cGVdOwogICAgICAgICAgICAgICAgICAgIHZhciBrZXlzID0gZ2V0T3duT2JqUHJvcHMoZGF0YSk7CiAgICAgICAgICAgICAgICAgICAga2V5cy5mb3JFYWNoKGtleSA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgIHZhciB0ciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlRSIik7CiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmlkID0ga2V5OwogICAgICAgICAgICAgICAgICAgICAgICB0ci5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCInICsgZmlsZVR5cGUgKyAnIiwgdGhpcyknKTsKICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOwogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7CiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bImRhdGEiXVsidXNlcm5hbWUiXTsKICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOwogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7CiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOwogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsKICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9ICIqKioqKioiOwogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7CiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsKICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7CiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOwogICAgICAgICAgICAgICAgICAgICAgICBpZiAoZGF0YVtrZXldWyJkYXRhIl1bImF1dGhlbnRpY2F0aW9uLndlYiJdID09IHRydWUpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSAi4pyTIjsKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSAiLSI7CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOwogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7CiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOwogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsKICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGRhdGFba2V5XVsiZGF0YSJdWyJhdXRoZW50aWNhdGlvbi5wbXMiXSA9PSB0cnVlKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gIuKckyI7CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gIi0iOwogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsKICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOwogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7CiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChkYXRhW2tleV1bImRhdGEiXVsiYXV0aGVudGljYXRpb24ubTN1Il0gPT0gdHJ1ZSkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9ICLinJMiOwogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9ICItIjsKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7CiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsKICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7CiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOwogICAgICAgICAgICAgICAgICAgICAgICBpZiAoZGF0YVtrZXldWyJkYXRhIl1bImF1dGhlbnRpY2F0aW9uLnhtbCJdID09IHRydWUpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSAi4pyTIjsKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSAiLSI7CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOwogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7CiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOwogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsKICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGRhdGFba2V5XVsiZGF0YSJdWyJhdXRoZW50aWNhdGlvbi5hcGkiXSA9PSB0cnVlKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gIuKckyI7CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gIi0iOwogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsKICAgICAgICAgICAgICAgICAgICAgICAgcm93cy5wdXNoKHRyKTsKICAgICAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgIm1hcHBpbmciOgogICAgICAgICAgICAgICAgQlVMS19FRElUID0gZmFsc2U7CiAgICAgICAgICAgICAgICBjcmVhdGVTZWFyY2hPYmooKTsKICAgICAgICAgICAgICAgIGNoZWNrVW5kbygiZXBnTWFwcGluZyIpOwogICAgICAgICAgICAgICAgZGF0YSA9IFNFUlZFUlsieGVwZyJdWyJlcGdNYXBwaW5nIl07CiAgICAgICAgICAgICAgICB2YXIga2V5cyA9IGdldE93bk9ialByb3BzKGRhdGEpOwogICAgICAgICAgICAgICAga2V5cy5mb3JFYWNoKGtleSA9PiB7CiAgICAgICAgICAgICAgICAgICAgdmFyIHRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVFIiKTsKICAgICAgICAgICAgICAgICAgICB0ci5pZCA9IGtleTsKICAgICAgICAgICAgICAgICAgICBzd2l0Y2ggKGRhdGFba2V5XVsieC1hY3RpdmUiXSkgewogICAgICAgICAgICAgICAgICAgICAgICBjYXNlIHRydWU6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ci5jbGFzc05hbWUgPSAiYWN0aXZlRVBHIjsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICAgICAgICBjYXNlIGZhbHNlOgogICAgICAgICAgICAgICAgICAgICAgICAgICAgdHIuY2xhc3NOYW1lID0gIm5vdEFjdGl2ZUVQRyI7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgLy8gQnVsawogICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsKICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJCVUxLIjsKICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZmFsc2U7CiAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOwogICAgICAgICAgICAgICAgICAgIC8vIENoYW5uZWwgbnVtYmVyCiAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOwogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOwogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIklOUFVUQ0hBTk5FTCI7CiAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsieC1jaGFubmVsSUQiXTsKICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7CiAgICAgICAgICAgICAgICAgICAgLy8gTG9nbwogICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsKICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJJTUciOwogICAgICAgICAgICAgICAgICAgIGNlbGwuaW1hZ2VVUkwgPSBkYXRhW2tleV1bInR2Zy1sb2dvIl07CiAgICAgICAgICAgICAgICAgICAgdmFyIHRkID0gY2VsbC5jcmVhdGVDZWxsKCk7CiAgICAgICAgICAgICAgICAgICAgdGQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgibWFwcGluZyIsIHRoaXMpJyk7CiAgICAgICAgICAgICAgICAgICAgdGQuaWQgPSBrZXk7CiAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQodGQpOwogICAgICAgICAgICAgICAgICAgIC8vIENoYW5uZWwgbmFtZQogICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsKICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsKICAgICAgICAgICAgICAgICAgICBjZWxsLmNsYXNzTmFtZSA9IGRhdGFba2V5XVsieC1jYXRlZ29yeSJdOwogICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bIngtbmFtZSJdOwogICAgICAgICAgICAgICAgICAgIHZhciB0ZCA9IGNlbGwuY3JlYXRlQ2VsbCgpOwogICAgICAgICAgICAgICAgICAgIHRkLnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoIm1hcHBpbmciLCB0aGlzKScpOwogICAgICAgICAgICAgICAgICAgIHRkLmlkID0ga2V5OwogICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKHRkKTsKICAgICAgICAgICAgICAgICAgICAvLyBVcGRhdGUgY2hhbm5lbCBuYW1lIHJlZ2V4CiAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOwogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOwogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOwogICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bInVwZGF0ZS1jaGFubmVsLW5hbWUtcmVnZXgiXTsKICAgICAgICAgICAgICAgICAgICB2YXIgdGQgPSBjZWxsLmNyZWF0ZUNlbGwoKTsKICAgICAgICAgICAgICAgICAgICB0ZC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJtYXBwaW5nIiwgdGhpcyknKTsKICAgICAgICAgICAgICAgICAgICB0ZC5pZCA9IGtleTsKICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZCh0ZCk7CiAgICAgICAgICAgICAgICAgICAgLy8gUGxheWxpc3QKICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7CiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7CiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7CiAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGdldFZhbHVlRnJvbVByb3ZpZGVyRmlsZShkYXRhW2tleV1bIl9maWxlLm0zdS5pZCJdLCAibTN1IiwgIm5hbWUiKTsKICAgICAgICAgICAgICAgICAgICB2YXIgdGQgPSBjZWxsLmNyZWF0ZUNlbGwoKTsKICAgICAgICAgICAgICAgICAgICB0ZC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJtYXBwaW5nIiwgdGhpcyknKTsKICAgICAgICAgICAgICAgICAgICB0ZC5pZCA9IGtleTsKICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZCh0ZCk7CiAgICAgICAgICAgICAgICAgICAgLy8gR3JvdXAgKGdyb3VwLXRpdGxlKQogICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsKICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsKICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJ4LWdyb3VwLXRpdGxlIl07CiAgICAgICAgICAgICAgICAgICAgdmFyIHRkID0gY2VsbC5jcmVhdGVDZWxsKCk7CiAgICAgICAgICAgICAgICAgICAgdGQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgibWFwcGluZyIsIHRoaXMpJyk7CiAgICAgICAgICAgICAgICAgICAgdGQuaWQgPSBrZXk7CiAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQodGQpOwogICAgICAgICAgICAgICAgICAgIC8vIFhNTFRWIGZpbGUKICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7CiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7CiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7CiAgICAgICAgICAgICAgICAgICAgaWYgKGRhdGFba2V5XVsieC14bWx0di1maWxlIl0gIT0gIi0iKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBnZXRWYWx1ZUZyb21Qcm92aWRlckZpbGUoZGF0YVtrZXldWyJ4LXhtbHR2LWZpbGUiXSwgInhtbHR2IiwgIm5hbWUiKTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bIngteG1sdHYtZmlsZSJdOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB2YXIgdGQgPSBjZWxsLmNyZWF0ZUNlbGwoKTsKICAgICAgICAgICAgICAgICAgICB0ZC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJtYXBwaW5nIiwgdGhpcyknKTsKICAgICAgICAgICAgICAgICAgICB0ZC5pZCA9IGtleTsKICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZCh0ZCk7CiAgICAgICAgICAgICAgICAgICAgLy8gWE1MVFYgQ2hhbm5lbAogICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsKICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsKICAgICAgICAgICAgICAgICAgICB2YXIgdmFsdWUgPSBkYXRhW2tleV1bIngtbWFwcGluZyJdOwogICAgICAgICAgICAgICAgICAgIGlmICh2YWx1ZS5sZW5ndGggPiAyMCkgewogICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IGRhdGFba2V5XVsieC1tYXBwaW5nIl0uc3Vic3RyaW5nKDAsIDIwKSArICIuLi4iOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gdmFsdWU7CiAgICAgICAgICAgICAgICAgICAgdmFyIHRkID0gY2VsbC5jcmVhdGVDZWxsKCk7CiAgICAgICAgICAgICAgICAgICAgdGQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgibWFwcGluZyIsIHRoaXMpJyk7CiAgICAgICAgICAgICAgICAgICAgdGQuaWQgPSBrZXk7CiAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQodGQpOwogICAgICAgICAgICAgICAgICAgIC8vIFRpbWVTaGlmdAogICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsKICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsKICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJ4LXRpbWVzaGlmdCJdOwogICAgICAgICAgICAgICAgICAgIHZhciB0ZCA9IGNlbGwuY3JlYXRlQ2VsbCgpOwogICAgICAgICAgICAgICAgICAgIHRkLnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoIm1hcHBpbmciLCB0aGlzKScpOwogICAgICAgICAgICAgICAgICAgIHRkLmlkID0ga2V5OwogICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKHRkKTsKICAgICAgICAgICAgICAgICAgICByb3dzLnB1c2godHIpOwogICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAic2V0dGluZ3MiOgogICAgICAgICAgICAgICAgYWxlcnQoKTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgfQogICAgICAgIHJldHVybiByb3dzOwogICAgfQp9CmNsYXNzIENlbGwgewogICAgY3JlYXRlQ2VsbCgpIHsKICAgICAgICBsZXQgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOwogICAgICAgIGlmICh0aGlzLmNoaWxkID09IHRydWUpIHsKICAgICAgICAgICAgdmFyIGVsZW1lbnQ7CiAgICAgICAgICAgIHN3aXRjaCAodGhpcy5jaGlsZFR5cGUpIHsKICAgICAgICAgICAgICAgIGNhc2UgIlAiOgogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KHRoaXMuY2hpbGRUeXBlKTsKICAgICAgICAgICAgICAgICAgICBlbGVtZW50LmlubmVySFRNTCA9IHRoaXMudmFsdWU7CiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC5jbGFzc05hbWUgPSB0aGlzLmNsYXNzTmFtZTsKICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgIGNhc2UgIklOUFVUIjoKICAgICAgICAgICAgICAgICAgICBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCh0aGlzLmNoaWxkVHlwZSk7CiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC52YWx1ZSA9IHRoaXMudmFsdWU7CiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC50eXBlID0gInRleHQiOwogICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgY2FzZSAiSU5QVVRDSEFOTkVMIjoKICAgICAgICAgICAgICAgICAgICBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiSU5QVVQiKTsKICAgICAgICAgICAgICAgICAgICBlbGVtZW50LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2c2NyaXB0OiBjaGFuZ2VDaGFubmVsTnVtYmVyKHRoaXMpIik7CiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC52YWx1ZSA9IHRoaXMudmFsdWU7CiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC50eXBlID0gInRleHQiOwogICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgY2FzZSAiQlVMSyI6CiAgICAgICAgICAgICAgICAgICAgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIklOUFVUIik7CiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC5jaGVja2VkID0gdGhpcy52YWx1ZTsKICAgICAgICAgICAgICAgICAgICBlbGVtZW50LnR5cGUgPSAiY2hlY2tib3giOwogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQuY2xhc3NOYW1lID0gImJ1bGsgaGlkZUJ1bGsiOwogICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgY2FzZSAiQlVMS19IRUFEIjoKICAgICAgICAgICAgICAgICAgICBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiSU5QVVQiKTsKICAgICAgICAgICAgICAgICAgICBlbGVtZW50LmNoZWNrZWQgPSB0aGlzLnZhbHVlOwogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQudHlwZSA9ICJjaGVja2JveCI7CiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC5jbGFzc05hbWUgPSAiYnVsayBoaWRlQnVsayI7CiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAiamF2YXNjcmlwdDogc2VsZWN0QWxsQ2hhbm5lbHMoKSIpOwogICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgY2FzZSAiSU1HIjoKICAgICAgICAgICAgICAgICAgICBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCh0aGlzLmNoaWxkVHlwZSk7CiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC5zZXRBdHRyaWJ1dGUoInNyYyIsIHRoaXMuaW1hZ2VVUkwpOwogICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLmltYWdlVVJMICE9ICIiKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGVsZW1lbnQuc2V0QXR0cmlidXRlKCJvbmVycm9yIiwgImphdmFzY3JpcHQ6IHRoaXMub25lcnJvcj1udWxsO3RoaXMuc3JjPScnIik7CiAgICAgICAgICAgICAgICAgICAgICAgIC8vb25lcnJvcj0idGhpcy5vbmVycm9yPW51bGw7dGhpcy5zcmM9J21pc3NpbmcuZ2lmJzsiCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICAgIHRkLmFwcGVuZENoaWxkKGVsZW1lbnQpOwogICAgICAgIH0KICAgICAgICBlbHNlIHsKICAgICAgICAgICAgdGQuaW5uZXJIVE1MID0gdGhpcy52YWx1ZTsKICAgICAgICB9CiAgICAgICAgaWYgKHRoaXMub25jbGljayA9PSB0cnVlKSB7CiAgICAgICAgICAgIHRkLnNldEF0dHJpYnV0ZSgib25jbGljayIsIHRoaXMub25jbGlja0Z1bmN0aW9uKTsKICAgICAgICAgICAgdGQuY2xhc3NOYW1lID0gInBvaW50ZXIiOwogICAgICAgIH0KICAgICAgICBpZiAodGhpcy50ZENsYXNzTmFtZSAhPSB1bmRlZmluZWQpIHsKICAgICAgICAgICAgdGQuY2xhc3NOYW1lID0gdGhpcy50ZENsYXNzTmFtZTsKICAgICAgICB9CiAgICAgICAgcmV0dXJuIHRkOwogICAgfQp9CmNsYXNzIFNob3dDb250ZW50IGV4dGVuZHMgQ29udGVudCB7CiAgICBjb25zdHJ1Y3RvcihtZW51SUQpIHsKICAgICAgICBzdXBlcigpOwogICAgICAgIHRoaXMubWVudUlEID0gbWVudUlEOwogICAgfQogICAgY3JlYXRlSW5wdXQodHlwZSwgbmFtZSwgdmFsdWUpIHsKICAgICAgICBsZXQgaW5wdXQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJJTlBVVCIpOwogICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgidHlwZSIsIHR5cGUpOwogICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgibmFtZSIsIG5hbWUpOwogICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgidmFsdWUiLCB2YWx1ZSk7CiAgICAgICAgcmV0dXJuIGlucHV0OwogICAgfQogICAgc2hvdygpIHsKICAgICAgICBDT0xVTU5fVE9fU09SVCA9IC0xOwogICAgICAgIC8vIERlbGV0ZSBvbGQgY29udGVudAogICAgICAgIGxldCBkb2MgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCh0aGlzLkRvY3VtZW50SUQpOwogICAgICAgIGRvYy5pbm5lckhUTUwgPSAiIjsKICAgICAgICBzaG93UHJldmlldyhmYWxzZSk7CiAgICAgICAgLy8gSGVhZGxpbmUKICAgICAgICBsZXQgaGVhZGxpbmUgPSBtZW51SXRlbXNbdGhpcy5tZW51SURdLmhlYWRsaW5lOwogICAgICAgIGxldCBtZW51S2V5ID0gbWVudUl0ZW1zW3RoaXMubWVudUlEXS5tZW51S2V5OwogICAgICAgIGxldCBoID0gdGhpcy5jcmVhdGVIZWFkbGluZShoZWFkbGluZSk7CiAgICAgICAgZG9jLmFwcGVuZENoaWxkKGgpOwogICAgICAgIGxldCBociA9IHRoaXMuY3JlYXRlSFIoKTsKICAgICAgICBkb2MuYXBwZW5kQ2hpbGQoaHIpOwogICAgICAgIC8vIEludGVyYWN0aW9uCiAgICAgICAgbGV0IGRpdiA9IHRoaXMuY3JlYXRlSW50ZXJhY3Rpb24oKTsKICAgICAgICBkb2MuYXBwZW5kQ2hpbGQoZGl2KTsKICAgICAgICBsZXQgaW50ZXJhY3Rpb24gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCh0aGlzLmludGVyYWN0aW9uSUQpOwogICAgICAgIHN3aXRjaCAobWVudUtleSkgewogICAgICAgICAgICBjYXNlICJwbGF5bGlzdCI6CiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSB0aGlzLmNyZWF0ZUlucHV0KCJidXR0b24iLCBtZW51S2V5LCAie3suYnV0dG9uLm5ld319Iik7CiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoImlkIiwgIi0iKTsKICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoInBsYXlsaXN0IiknKTsKICAgICAgICAgICAgICAgIGludGVyYWN0aW9uLmFwcGVuZENoaWxkKGlucHV0KTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJmaWx0ZXIiOgogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gdGhpcy5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgbWVudUtleSwgInt7LmJ1dHRvbi5uZXd9fSIpOwogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJpZCIsIC0xKTsKICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoImZpbHRlciIsIHRoaXMpJyk7CiAgICAgICAgICAgICAgICBpbnRlcmFjdGlvbi5hcHBlbmRDaGlsZChpbnB1dCk7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAieG1sdHYiOgogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gdGhpcy5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgbWVudUtleSwgInt7LmJ1dHRvbi5uZXd9fSIpOwogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJpZCIsICJ4bWx0diIpOwogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgieG1sdHYiKScpOwogICAgICAgICAgICAgICAgaW50ZXJhY3Rpb24uYXBwZW5kQ2hpbGQoaW5wdXQpOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgInVzZXJzIjoKICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IHRoaXMuY3JlYXRlSW5wdXQoImJ1dHRvbiIsIG1lbnVLZXksICJ7ey5idXR0b24ubmV3fX0iKTsKICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgiaWQiLCAidXNlcnMiKTsKICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoInVzZXJzIiknKTsKICAgICAgICAgICAgICAgIGludGVyYWN0aW9uLmFwcGVuZENoaWxkKGlucHV0KTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJtYXBwaW5nIjoKICAgICAgICAgICAgICAgIHNob3dFbGVtZW50KCJsb2FkaW5nIiwgdHJ1ZSk7CiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSB0aGlzLmNyZWF0ZUlucHV0KCJidXR0b24iLCBtZW51S2V5LCAie3suYnV0dG9uLnNhdmV9fSIpOwogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoIm1hcHBpbmciLCAiIiwgIiIpJyk7CiAgICAgICAgICAgICAgICBpbnRlcmFjdGlvbi5hcHBlbmRDaGlsZChpbnB1dCk7CiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSB0aGlzLmNyZWF0ZUlucHV0KCJidXR0b24iLCBtZW51S2V5LCAie3suYnV0dG9uLmJ1bGtFZGl0fX0iKTsKICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBidWxrRWRpdCgpJyk7CiAgICAgICAgICAgICAgICBpbnRlcmFjdGlvbi5hcHBlbmRDaGlsZChpbnB1dCk7CiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSB0aGlzLmNyZWF0ZUlucHV0KCJzZWFyY2giLCAic2VhcmNoIiwgIiIpOwogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJpZCIsICJzZWFyY2hNYXBwaW5nIik7CiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LmJ1dHRvbi5zZWFyY2h9fSIpOwogICAgICAgICAgICAgICAgaW5wdXQuY2xhc3NOYW1lID0gInNlYXJjaCI7CiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgJ2phdmFzY3JpcHQ6IHNlYXJjaEluTWFwcGluZygpJyk7CiAgICAgICAgICAgICAgICBpbnRlcmFjdGlvbi5hcHBlbmRDaGlsZChpbnB1dCk7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAic2V0dGluZ3MiOgogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gdGhpcy5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgbWVudUtleSwgInt7LmJ1dHRvbi5zYXZlfX0iKTsKICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBzYXZlU2V0dGluZ3MoKTsnKTsKICAgICAgICAgICAgICAgIGludGVyYWN0aW9uLmFwcGVuZENoaWxkKGlucHV0KTsKICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IHRoaXMuY3JlYXRlSW5wdXQoImJ1dHRvbiIsIG1lbnVLZXksICJ7ey5idXR0b24uYmFja3VwfX0iKTsKICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBiYWNrdXAoKTsnKTsKICAgICAgICAgICAgICAgIGludGVyYWN0aW9uLmFwcGVuZENoaWxkKGlucHV0KTsKICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IHRoaXMuY3JlYXRlSW5wdXQoImJ1dHRvbiIsIG1lbnVLZXksICJ7ey5idXR0b24ucmVzdG9yZX19Iik7CiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogcmVzdG9yZSgpOycpOwogICAgICAgICAgICAgICAgaW50ZXJhY3Rpb24uYXBwZW5kQ2hpbGQoaW5wdXQpOwogICAgICAgICAgICAgICAgdmFyIHdyYXBwZXIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJESVYiKTsKICAgICAgICAgICAgICAgIHdyYXBwZXIuc2V0QXR0cmlidXRlKCJpZCIsICJib3gtd3JhcHBlciIpOwogICAgICAgICAgICAgICAgZG9jLmFwcGVuZENoaWxkKHdyYXBwZXIpOwogICAgICAgICAgICAgICAgdGhpcy5EaXZJRCA9ICJjb250ZW50X3NldHRpbmdzIjsKICAgICAgICAgICAgICAgIHZhciBzZXR0aW5ncyA9IHRoaXMuY3JlYXRlRElWKCk7CiAgICAgICAgICAgICAgICB3cmFwcGVyLmFwcGVuZENoaWxkKHNldHRpbmdzKTsKICAgICAgICAgICAgICAgIHNob3dTZXR0aW5ncygpOwogICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICBjYXNlICJsb2ciOgogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gdGhpcy5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgbWVudUtleSwgInt7LmJ1dHRvbi5yZXNldExvZ3N9fSIpOwogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IHJlc2V0TG9ncygpOycpOwogICAgICAgICAgICAgICAgaW50ZXJhY3Rpb24uYXBwZW5kQ2hpbGQoaW5wdXQpOwogICAgICAgICAgICAgICAgdmFyIHdyYXBwZXIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJESVYiKTsKICAgICAgICAgICAgICAgIHdyYXBwZXIuc2V0QXR0cmlidXRlKCJpZCIsICJib3gtd3JhcHBlciIpOwogICAgICAgICAgICAgICAgZG9jLmFwcGVuZENoaWxkKHdyYXBwZXIpOwogICAgICAgICAgICAgICAgdGhpcy5EaXZJRCA9ICJjb250ZW50X2xvZyI7CiAgICAgICAgICAgICAgICB2YXIgbG9ncyA9IHRoaXMuY3JlYXRlRElWKCk7CiAgICAgICAgICAgICAgICB3cmFwcGVyLmFwcGVuZENoaWxkKGxvZ3MpOwogICAgICAgICAgICAgICAgc2hvd0xvZ3ModHJ1ZSk7CiAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgIGNhc2UgImxvZ291dCI6CiAgICAgICAgICAgICAgICBsb2NhdGlvbi5yZWxvYWQoKTsKICAgICAgICAgICAgICAgIGRvY3VtZW50LmNvb2tpZSA9ICJUb2tlbj0gOyBleHBpcmVzID0gVGh1LCAwMSBKYW4gMTk3MCAwMDowMDowMCBHTVQiOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICB9CiAgICAgICAgLy8gQ3JlYXRlIHRhYmxlIChpZiBuZWVkZWQpCiAgICAgICAgdmFyIHRhYmxlSGVhZGVyID0gbWVudUl0ZW1zW3RoaXMubWVudUlEXS50YWJsZUhlYWRlcjsKICAgICAgICBpZiAodGFibGVIZWFkZXIubGVuZ3RoID4gMCkgewogICAgICAgICAgICB2YXIgd3JhcHBlciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIkRJViIpOwogICAgICAgICAgICBkb2MuYXBwZW5kQ2hpbGQod3JhcHBlcik7CiAgICAgICAgICAgIHdyYXBwZXIuc2V0QXR0cmlidXRlKCJpZCIsICJib3gtd3JhcHBlciIpOwogICAgICAgICAgICB2YXIgdGFibGUgPSB0aGlzLmNyZWF0ZVRBQkxFKCk7CiAgICAgICAgICAgIHdyYXBwZXIuYXBwZW5kQ2hpbGQodGFibGUpOwogICAgICAgICAgICB2YXIgaGVhZGVyID0gdGhpcy5jcmVhdGVUYWJsZVJvdygpOwogICAgICAgICAgICB0YWJsZS5hcHBlbmRDaGlsZChoZWFkZXIpOwogICAgICAgICAgICAvLyBUYWJsZSBoZWFkZXIKICAgICAgICAgICAgdGFibGVIZWFkZXIuZm9yRWFjaChlbGVtZW50ID0+IHsKICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsKICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOwogICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7CiAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZWxlbWVudDsKICAgICAgICAgICAgICAgIGlmIChlbGVtZW50ID09ICJCVUxLIikgewogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIkJVTEtfSEVBRCI7CiAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGZhbHNlOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgaWYgKG1lbnVLZXkgPT0gIm1hcHBpbmciKSB7CiAgICAgICAgICAgICAgICAgICAgaWYgKGVsZW1lbnQgPT0gInt7Lm1hcHBpbmcudGFibGUuY2hOb319IikgewogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLm9uY2xpY2sgPSB0cnVlOwogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLm9uY2xpY2tGdW5jdGlvbiA9ICJqYXZhc2NyaXB0OiBzb3J0VGFibGUoMSk7IjsKICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC50ZENsYXNzTmFtZSA9ICJzb3J0VGhpcyI7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIGlmIChlbGVtZW50ID09ICJ7ey5tYXBwaW5nLnRhYmxlLmNoYW5uZWxOYW1lfX0iKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwub25jbGljayA9IHRydWU7CiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwub25jbGlja0Z1bmN0aW9uID0gImphdmFzY3JpcHQ6IHNvcnRUYWJsZSgzKTsiOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBpZiAoZWxlbWVudCA9PSAie3subWFwcGluZy50YWJsZS51cGRhdGVDaGFubmVsTmFtZVJlZ2V4fX0iKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwub25jbGljayA9IHRydWU7CiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwub25jbGlja0Z1bmN0aW9uID0gImphdmFzY3JpcHQ6IHNvcnRUYWJsZSg0KTsiOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBpZiAoZWxlbWVudCA9PSAie3subWFwcGluZy50YWJsZS5wbGF5bGlzdH19IikgewogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLm9uY2xpY2sgPSB0cnVlOwogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLm9uY2xpY2tGdW5jdGlvbiA9ICJqYXZhc2NyaXB0OiBzb3J0VGFibGUoNSk7IjsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgaWYgKGVsZW1lbnQgPT0gInt7Lm1hcHBpbmcudGFibGUuZ3JvdXBUaXRsZX19IikgewogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLm9uY2xpY2sgPSB0cnVlOwogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLm9uY2xpY2tGdW5jdGlvbiA9ICJqYXZhc2NyaXB0OiBzb3J0VGFibGUoNik7IjsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgaWYgKGVsZW1lbnQgPT0gInt7Lm1hcHBpbmcudGFibGUudGltZXNoaWZ0fX0iKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwub25jbGljayA9IHRydWU7CiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwub25jbGlja0Z1bmN0aW9uID0gImphdmFzY3JpcHQ6IHNvcnRUYWJsZSg5KTsiOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGlmIChtZW51S2V5ID09ICJmaWx0ZXIiKSB7CiAgICAgICAgICAgICAgICAgICAgaWYgKGVsZW1lbnQgPT0gInt7LmZpbHRlci50YWJsZS5zdGFydGluZ0NoYW5uZWx9fSIpIHsKICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5vbmNsaWNrID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5vbmNsaWNrRnVuY3Rpb24gPSAiamF2YXNjcmlwdDogc29ydFRhYmxlKDApOyI7CiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudGRDbGFzc05hbWUgPSAic29ydFRoaXMiOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBpZiAoZWxlbWVudCA9PSAie3suZmlsdGVyLnRhYmxlLm5hbWV9fSIpIHsKICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5vbmNsaWNrID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5vbmNsaWNrRnVuY3Rpb24gPSAiamF2YXNjcmlwdDogc29ydFRhYmxlKDEpOyI7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIGlmIChlbGVtZW50ID09ICJ7ey5maWx0ZXIudGFibGUudHlwZX19IikgewogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLm9uY2xpY2sgPSB0cnVlOwogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLm9uY2xpY2tGdW5jdGlvbiA9ICJqYXZhc2NyaXB0OiBzb3J0VGFibGUoMik7IjsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgaWYgKGVsZW1lbnQgPT0gInt7LmZpbHRlci50YWJsZS5maWx0ZXJ9fSIpIHsKICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5vbmNsaWNrID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5vbmNsaWNrRnVuY3Rpb24gPSAiamF2YXNjcmlwdDogc29ydFRhYmxlKDMpOyI7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgaGVhZGVyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsKICAgICAgICAgICAgfSk7CiAgICAgICAgICAgIHRhYmxlLmFwcGVuZENoaWxkKGhlYWRlcik7CiAgICAgICAgICAgIC8vIENvbnRlbnQgb2YgdGhlIHRhYmxlCiAgICAgICAgICAgIHZhciByb3dzID0gdGhpcy5jcmVhdGVUYWJsZUNvbnRlbnQobWVudUtleSk7CiAgICAgICAgICAgIHJvd3MuZm9yRWFjaCh0ciA9PiB7CiAgICAgICAgICAgICAgICB0YWJsZS5hcHBlbmRDaGlsZCh0cik7CiAgICAgICAgICAgIH0pOwogICAgICAgIH0KICAgICAgICBzd2l0Y2ggKG1lbnVLZXkpIHsKICAgICAgICAgICAgY2FzZSAibWFwcGluZyI6CiAgICAgICAgICAgICAgICBzb3J0VGFibGUoMSk7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAiZmlsdGVyIjoKICAgICAgICAgICAgICAgIHNob3dQcmV2aWV3KHRydWUpOwogICAgICAgICAgICAgICAgc29ydFRhYmxlKDApOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICAgICBDT0xVTU5fVE9fU09SVCA9IC0xOwogICAgICAgICAgICAgICAgc29ydFRhYmxlKDApOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgfQogICAgICAgIHNob3dFbGVtZW50KCJsb2FkaW5nIiwgZmFsc2UpOwogICAgfQp9CmZ1bmN0aW9uIFBhZ2VSZWFkeSgpIHsKICAgIGxldCBzZXJ2ZXIgPSBuZXcgU2VydmVyKCJnZXRTZXJ2ZXJDb25maWciKTsKICAgIHNlcnZlci5yZXF1ZXN0KHt9KTsKICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJyZXNpemUiLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgY2FsY3VsYXRlV3JhcHBlckhlaWdodCgpOwogICAgfSwgdHJ1ZSk7CiAgICBzZXRJbnRlcnZhbChmdW5jdGlvbiAoKSB7CiAgICAgICAgdXBkYXRlTG9nKCk7CiAgICB9LCAxMDAwMCk7CiAgICByZXR1cm47Cn0KZnVuY3Rpb24gY3JlYXRlTGF5b3V0KCkgewogICAgLy8gQ2xpZW50IEluZm8KICAgIGxldCBvYmogPSBTRVJWRVJbImNsaWVudEluZm8iXTsKICAgIGxldCBrZXlzID0gZ2V0T3duT2JqUHJvcHMob2JqKTsKICAgIGZvciAodmFyIGkgPSAwOyBpIDwga2V5cy5sZW5ndGg7IGkrKykgewogICAgICAgIGlmIChkb2N1bWVudC5nZXRFbGVtZW50QnlJZChrZXlzW2ldKSkgewogICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChrZXlzW2ldKS5pbm5lckhUTUwgPSBvYmpba2V5c1tpXV07CiAgICAgICAgICAgIGlmIChsb2NhdGlvbi5wcm90b2NvbCA9PT0gJ2h0dHBzOicpIHsKICAgICAgICAgICAgICAgIGlmIChrZXlzW2ldID09PSAieGVwZy11cmwiIHx8IGtleXNbaV0gPT09ICJtM3UtdXJsIiB8fCBrZXlzW2ldID09PSAiRFZSIikgewogICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGtleXNbaV0pLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgZnVuY3Rpb24gKGV2ZW50KSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHRhcmdldCA9IGV2ZW50LnRhcmdldDsKICAgICAgICAgICAgICAgICAgICAgICAgbmF2aWdhdG9yLmNsaXBib2FyZC53cml0ZVRleHQodGFyZ2V0LmlubmVyVGV4dC5zcGxpdCgiICIpWzBdKS50aGVuKCgpID0+IHsgfSk7CiAgICAgICAgICAgICAgICAgICAgfSwgZmFsc2UpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQogICAgaWYgKCFkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibWFpbi1tZW51IikpIHsKICAgICAgICByZXR1cm47CiAgICB9CiAgICAvLyBDcmVhdGUgbWVudQogICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm1haW4tbWVudSIpLmlubmVySFRNTCA9ICIiOwogICAgZm9yIChsZXQgaSA9IDA7IGkgPCBtZW51SXRlbXMubGVuZ3RoOyBpKyspIHsKICAgICAgICBtZW51SXRlbXNbaV0uaWQgPSBpOwogICAgICAgIHN3aXRjaCAobWVudUl0ZW1zW2ldWyJtZW51S2V5Il0pIHsKICAgICAgICAgICAgY2FzZSAidXNlcnMiOgogICAgICAgICAgICBjYXNlICJsb2dvdXQiOgogICAgICAgICAgICAgICAgaWYgKFNFUlZFUlsic2V0dGluZ3MiXVsiYXV0aGVudGljYXRpb24ud2ViIl0gPT0gdHJ1ZSkgewogICAgICAgICAgICAgICAgICAgIG1lbnVJdGVtc1tpXS5jcmVhdGVJdGVtKCk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAibWFwcGluZyI6CiAgICAgICAgICAgIGNhc2UgInhtbHR2IjoKICAgICAgICAgICAgICAgIGlmIChTRVJWRVJbImNsaWVudEluZm8iXVsiZXBnU291cmNlIl0gPT0gIlhFUEciKSB7CiAgICAgICAgICAgICAgICAgICAgbWVudUl0ZW1zW2ldLmNyZWF0ZUl0ZW0oKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAgICAgbWVudUl0ZW1zW2ldLmNyZWF0ZUl0ZW0oKTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgIH0KICAgIH0KICAgIHJldHVybjsKfQpmdW5jdGlvbiBvcGVuVGhpc01lbnUoZWxlbWVudCkgewogICAgbGV0IGlkID0gZWxlbWVudC5pZDsKICAgIGxldCBjb250ZW50ID0gbmV3IFNob3dDb250ZW50KGlkKTsKICAgIGNvbnRlbnQuc2hvdygpOwogICAgY2FsY3VsYXRlV3JhcHBlckhlaWdodCgpOwogICAgcmV0dXJuOwp9CmNsYXNzIFBvcHVwV2luZG93IHsKICAgIGNvbnN0cnVjdG9yKCkgewogICAgICAgIHRoaXMuRG9jdW1lbnRJRCA9ICJwb3B1cC1jdXN0b20iOwogICAgICAgIHRoaXMuSW50ZXJhY3Rpb25JRCA9ICJpbnRlcmFjdGlvbiI7CiAgICAgICAgdGhpcy5kb2MgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCh0aGlzLkRvY3VtZW50SUQpOwogICAgfQogICAgY3JlYXRlVGl0bGUodGl0bGUpIHsKICAgICAgICBsZXQgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOwogICAgICAgIHRkLmNsYXNzTmFtZSA9ICJsZWZ0IjsKICAgICAgICB0ZC5pbm5lckhUTUwgPSB0aXRsZSArICI6IjsKICAgICAgICByZXR1cm4gdGQ7CiAgICB9CiAgICBjcmVhdGVDb250ZW50KGVsZW1lbnQpIHsKICAgICAgICBsZXQgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOwogICAgICAgIHRkLmFwcGVuZENoaWxkKGVsZW1lbnQpOwogICAgICAgIHJldHVybiB0ZDsKICAgIH0KICAgIGNyZWF0ZUludGVyYWN0aW9uKCkgewogICAgICAgIGxldCBkaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsKICAgICAgICBkaXYuc2V0QXR0cmlidXRlKCJpZCIsICJwb3B1cC1pbnRlcmFjdGlvbiIpOwogICAgICAgIGRpdi5jbGFzc05hbWUgPSAiaW50ZXJhY3Rpb24iOwogICAgICAgIHRoaXMuZG9jLmFwcGVuZENoaWxkKGRpdik7CiAgICB9Cn0KY2xhc3MgUG9wdXBDb250ZW50IGV4dGVuZHMgUG9wdXBXaW5kb3cgewogICAgY29uc3RydWN0b3IoKSB7CiAgICAgICAgc3VwZXIoLi4uYXJndW1lbnRzKTsKICAgICAgICB0aGlzLnRhYmxlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEFCTEUiKTsKICAgIH0KICAgIGNyZWF0ZUhlYWRsaW5lKGhlYWRsaW5lKSB7CiAgICAgICAgdGhpcy5kb2MuaW5uZXJIVE1MID0gIiI7CiAgICAgICAgdmFyIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJIMyIpOwogICAgICAgIGVsZW1lbnQuaW5uZXJIVE1MID0gaGVhZGxpbmUudG9VcHBlckNhc2UoKTsKICAgICAgICB0aGlzLmRvYy5hcHBlbmRDaGlsZChlbGVtZW50KTsKICAgICAgICAvLyBDcmVhdGUgdGFibGUKICAgICAgICB0aGlzLnRhYmxlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEFCTEUiKTsKICAgICAgICB0aGlzLmRvYy5hcHBlbmRDaGlsZCh0aGlzLnRhYmxlKTsKICAgIH0KICAgIGFwcGVuZFJvdyh0aXRsZSwgZWxlbWVudCkgewogICAgICAgIGxldCB0ciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlRSIik7CiAgICAgICAgLy8gVGl0bGUKICAgICAgICBpZiAodGl0bGUubGVuZ3RoICE9IDApIHsKICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQodGhpcy5jcmVhdGVUaXRsZSh0aXRsZSkpOwogICAgICAgIH0KICAgICAgICAvLyBDb250ZW50CiAgICAgICAgdHIuYXBwZW5kQ2hpbGQodGhpcy5jcmVhdGVDb250ZW50KGVsZW1lbnQpKTsKICAgICAgICB0aGlzLnRhYmxlLmFwcGVuZENoaWxkKHRyKTsKICAgIH0KICAgIGNyZWF0ZUlucHV0KHR5cGUsIG5hbWUsIHZhbHVlKSB7CiAgICAgICAgbGV0IGlucHV0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiSU5QVVQiKTsKICAgICAgICBpZiAodmFsdWUgPT0gdW5kZWZpbmVkKSB7CiAgICAgICAgICAgIHZhbHVlID0gIiI7CiAgICAgICAgfQogICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgidHlwZSIsIHR5cGUpOwogICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgibmFtZSIsIG5hbWUpOwogICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgidmFsdWUiLCB2YWx1ZSk7CiAgICAgICAgcmV0dXJuIGlucHV0OwogICAgfQogICAgY3JlYXRlQ2hlY2tib3gobmFtZSkgewogICAgICAgIGxldCBpbnB1dCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIklOUFVUIik7CiAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJ0eXBlIiwgImNoZWNrYm94Iik7CiAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJuYW1lIiwgbmFtZSk7CiAgICAgICAgcmV0dXJuIGlucHV0OwogICAgfQogICAgLy8gQ3JlYXRlcyBhIHNlbGVjdGlvbiBvZiBtdWx0aXBsZSBvcHRpb25zIHZhbHVlcyB3aXRoIHRleHQgZGVzY3JpcHRpb25zCiAgICBjcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCBzZXQsIGRiS2V5KSB7CiAgICAgICAgbGV0IHNlbGVjdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlNFTEVDVCIpOwogICAgICAgIHNlbGVjdC5zZXRBdHRyaWJ1dGUoIm5hbWUiLCBkYktleSk7CiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0ZXh0Lmxlbmd0aDsgaSsrKSB7CiAgICAgICAgICAgIGxldCBvcHRpb24gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJPUFRJT04iKTsKICAgICAgICAgICAgb3B0aW9uLnNldEF0dHJpYnV0ZSgidmFsdWUiLCB2YWx1ZXNbaV0pOwogICAgICAgICAgICBvcHRpb24uaW5uZXJUZXh0ID0gdGV4dFtpXTsKICAgICAgICAgICAgc2VsZWN0LmFwcGVuZENoaWxkKG9wdGlvbik7CiAgICAgICAgfQogICAgICAgIGlmIChzZXQgIT0gIiIpIHsKICAgICAgICAgICAgc2VsZWN0LnZhbHVlID0gc2V0OwogICAgICAgIH0KICAgICAgICBpZiAoc2V0ID09IHVuZGVmaW5lZCkgewogICAgICAgICAgICBzZWxlY3QudmFsdWUgPSB2YWx1ZXNbMF07CiAgICAgICAgfQogICAgICAgIHJldHVybiBzZWxlY3Q7CiAgICB9CiAgICBzZWxlY3RPcHRpb24oc2VsZWN0LCB2YWx1ZSkgewogICAgICAgIC8vc2VsZWN0LnNlbGVjdGVkT3B0aW9ucyA9IHZhbHVlCiAgICAgICAgbGV0IHMgPSBzZWxlY3Q7CiAgICAgICAgcy5vcHRpb25zW3Muc2VsZWN0ZWRJbmRleF0udmFsdWUgPSB2YWx1ZTsKICAgICAgICByZXR1cm4gc2VsZWN0OwogICAgfQogICAgZGVzY3JpcHRpb24odmFsdWUpIHsKICAgICAgICBsZXQgdHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJUUiIpOwogICAgICAgIGxldCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7CiAgICAgICAgbGV0IHNwYW4gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJQUkUiKTsKICAgICAgICBzcGFuLmlubmVySFRNTCA9IHZhbHVlOwogICAgICAgIHRyLmFwcGVuZENoaWxkKHRkKTsKICAgICAgICB0ci5hcHBlbmRDaGlsZCh0aGlzLmNyZWF0ZUNvbnRlbnQoc3BhbikpOwogICAgICAgIHRoaXMudGFibGUuYXBwZW5kQ2hpbGQodHIpOwogICAgfQogICAgLy8gSW50ZXJhY3Rpb24KICAgIGFkZEludGVyYWN0aW9uKGVsZW1lbnQpIHsKICAgICAgICBsZXQgaW50ZXJhY3Rpb24gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicG9wdXAtaW50ZXJhY3Rpb24iKTsKICAgICAgICBpbnRlcmFjdGlvbi5hcHBlbmRDaGlsZChlbGVtZW50KTsKICAgIH0KfQpmdW5jdGlvbiBvcGVuUG9wVXAoZGF0YVR5cGUsIGVsZW1lbnQpIHsKICAgIGxldCBkYXRhID0ge307CiAgICBsZXQgaWQ7CiAgICBzd2l0Y2ggKGVsZW1lbnQpIHsKICAgICAgICBjYXNlIHVuZGVmaW5lZDoKICAgICAgICAgICAgc3dpdGNoIChkYXRhVHlwZSkgewogICAgICAgICAgICAgICAgY2FzZSAiZ3JvdXAtdGl0bGUiOgogICAgICAgICAgICAgICAgICAgIGlmIChpZCA9PSB1bmRlZmluZWQpIHsKICAgICAgICAgICAgICAgICAgICAgICAgaWQgPSAtMTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgZGF0YSA9IGdldExvY2FsRGF0YSgiZmlsdGVyIiwgaWQpOwogICAgICAgICAgICAgICAgICAgIGRhdGFbInR5cGUiXSA9ICJncm91cC10aXRsZSI7CiAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICBjYXNlICJjdXN0b20tZmlsdGVyIjoKICAgICAgICAgICAgICAgICAgICBpZiAoaWQgPT0gdW5kZWZpbmVkKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGlkID0gLTE7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIGRhdGEgPSBnZXRMb2NhbERhdGEoImZpbHRlciIsIGlkKTsKICAgICAgICAgICAgICAgICAgICBkYXRhWyJ0eXBlIl0gPSAiY3VzdG9tLWZpbHRlciI7CiAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAgICAgICAgIGRhdGFbImlkLnByb3ZpZGVyIl0gPSAiLSI7CiAgICAgICAgICAgICAgICAgICAgZGF0YVsidHlwZSJdID0gZGF0YVR5cGU7CiAgICAgICAgICAgICAgICAgICAgaWQgPSAiLSI7CiAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgaWQgPSBlbGVtZW50LmlkOwogICAgICAgICAgICBkYXRhID0gZ2V0TG9jYWxEYXRhKGRhdGFUeXBlLCBpZCk7CiAgICAgICAgICAgIGJyZWFrOwogICAgfQogICAgbGV0IGNvbnRlbnQgPSBuZXcgUG9wdXBDb250ZW50KCk7CiAgICBzd2l0Y2ggKGRhdGFUeXBlKSB7CiAgICAgICAgY2FzZSAicGxheWxpc3QiOgogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUhlYWRsaW5lKCJ7ey5wbGF5bGlzdC5wbGF5bGlzdFR5cGUudGl0bGV9fSIpOwogICAgICAgICAgICAvLyBUeXBlCiAgICAgICAgICAgIHZhciB0ZXh0ID0gWyJNM1UiLCAiSERIb21lUnVuIl07CiAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBbImphdmFzY3JpcHQ6IG9wZW5Qb3BVcCgnbTN1JykiLCAiamF2YXNjcmlwdDogb3BlblBvcFVwKCdoZGhyJykiXTsKICAgICAgICAgICAgdmFyIHNlbGVjdCA9IGNvbnRlbnQuY3JlYXRlU2VsZWN0KHRleHQsIHZhbHVlcywgIiIsICJ0eXBlIik7CiAgICAgICAgICAgIHNlbGVjdC5zZXRBdHRyaWJ1dGUoImlkIiwgInR5cGUiKTsKICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAnamF2YXNjcmlwdDogY2hhbmdlQnV0dG9uQWN0aW9uKHRoaXMsICJuZXh0IiwgIm9uY2xpY2siKScpOyAvLyBjaGFuZ2VCdXR0b25BY3Rpb24KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnBsYXlsaXN0LnR5cGUudGl0bGV9fSIsIHNlbGVjdCk7CiAgICAgICAgICAgIC8vIEludGVyYWN0aW9uCiAgICAgICAgICAgIGNvbnRlbnQuY3JlYXRlSW50ZXJhY3Rpb24oKTsKICAgICAgICAgICAgLy8gQWJvcnQKICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImNhbmNlbCIsICJ7ey5idXR0b24uY2FuY2VsfX0iKTsKICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IHNob3dFbGVtZW50KCJwb3B1cCIsIGZhbHNlKTsnKTsKICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7CiAgICAgICAgICAgIC8vIE5leHQKICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgIm5leHQiLCAie3suYnV0dG9uLm5leHR9fSIpOwogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJtM3UiKScpOwogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoImlkIiwgJ25leHQnKTsKICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgIGNhc2UgIm0zdSI6CiAgICAgICAgICAgIGNvbnRlbnQuY3JlYXRlSGVhZGxpbmUoZGF0YVR5cGUpOwogICAgICAgICAgICAvLyBOYW1lCiAgICAgICAgICAgIHZhciBkYktleSA9ICJuYW1lIjsKICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7CiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3sucGxheWxpc3QubmFtZS5wbGFjZWhvbGRlcn19Iik7CiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5wbGF5bGlzdC5uYW1lLnRpdGxlfX0iLCBpbnB1dCk7CiAgICAgICAgICAgIC8vIERlc2NyaXB0aW9uCiAgICAgICAgICAgIHZhciBkYktleSA9ICJkZXNjcmlwdGlvbiI7CiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOwogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnBsYXlsaXN0LmRlc2NyaXB0aW9uLnBsYWNlaG9sZGVyfX0iKTsKICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnBsYXlsaXN0LmRlc2NyaXB0aW9uLnRpdGxlfX0iLCBpbnB1dCk7CiAgICAgICAgICAgIC8vIFVSTAogICAgICAgICAgICB2YXIgZGJLZXkgPSAiZmlsZS5zb3VyY2UiOwogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsKICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5wbGF5bGlzdC5maWxlTTNVLnBsYWNlaG9sZGVyfX0iKTsKICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnBsYXlsaXN0LmZpbGVNM1UudGl0bGV9fSIsIGlucHV0KTsKICAgICAgICAgICAgLy8gVHVuZXIKICAgICAgICAgICAgaWYgKFNFUlZFUlsic2V0dGluZ3MiXVsiYnVmZmVyIl0gIT0gIi0iKSB7CiAgICAgICAgICAgICAgICB2YXIgdGV4dCA9IFtdOwogICAgICAgICAgICAgICAgdmFyIHZhbHVlcyA9IFtdOwogICAgICAgICAgICAgICAgZm9yICh2YXIgaSA9IDE7IGkgPD0gMTAwOyBpKyspIHsKICAgICAgICAgICAgICAgICAgICB0ZXh0LnB1c2goaS50b1N0cmluZygpKTsKICAgICAgICAgICAgICAgICAgICB2YWx1ZXMucHVzaChpLnRvU3RyaW5nKCkpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgdmFyIGRiS2V5ID0gInR1bmVyIjsKICAgICAgICAgICAgICAgIHZhciBzZWxlY3QgPSBjb250ZW50LmNyZWF0ZVNlbGVjdCh0ZXh0LCB2YWx1ZXMsIGRhdGFbZGJLZXldLCBkYktleSk7CiAgICAgICAgICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJvbmZvY3VzIiwgImphdmFzY3JpcHQ6IHJldHVybjsiKTsKICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5wbGF5bGlzdC50dW5lci50aXRsZX19Iiwgc2VsZWN0KTsKICAgICAgICAgICAgfQogICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgIHZhciBkYktleSA9ICJ0dW5lciI7CiAgICAgICAgICAgICAgICBpZiAoZGF0YVtkYktleV0gPT0gdW5kZWZpbmVkKSB7CiAgICAgICAgICAgICAgICAgICAgZGF0YVtkYktleV0gPSAxOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7CiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInJlYWRvbmx5IiwgInRydWUiKTsKICAgICAgICAgICAgICAgIGlucHV0LmNsYXNzTmFtZSA9ICJub3RBdmFpbGFibGUiOwogICAgICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnBsYXlsaXN0LnR1bmVyLnRpdGxlfX0iLCBpbnB1dCk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgY29udGVudC5kZXNjcmlwdGlvbigie3sucGxheWxpc3QudHVuZXIuZGVzY3JpcHRpb259fSIpOwogICAgICAgICAgICAvLyBJbnRlcmF0aW9uCiAgICAgICAgICAgIGNvbnRlbnQuY3JlYXRlSW50ZXJhY3Rpb24oKTsKICAgICAgICAgICAgLy8gRGVsZXRlCiAgICAgICAgICAgIGlmIChkYXRhWyJpZC5wcm92aWRlciJdICE9ICItIikgewogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImRlbGV0ZSIsICJ7ey5idXR0b24uZGVsZXRlfX0iKTsKICAgICAgICAgICAgICAgIGlucHV0LmNsYXNzTmFtZSA9ICJkZWxldGUiOwogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoIm0zdSIsICInICsgaWQgKyAnIiwgdHJ1ZSwgMCknKTsKICAgICAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImJhY2siLCAie3suYnV0dG9uLmJhY2t9fSIpOwogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgicGxheWxpc3QiKScpOwogICAgICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgLy8gQWJvcnQKICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImNhbmNlbCIsICJ7ey5idXR0b24uY2FuY2VsfX0iKTsKICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IHNob3dFbGVtZW50KCJwb3B1cCIsIGZhbHNlKTsnKTsKICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7CiAgICAgICAgICAgIC8vIFVwZGF0ZQogICAgICAgICAgICBpZiAoZGF0YVsiaWQucHJvdmlkZXIiXSAhPSAiLSIpIHsKICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJ1cGRhdGUiLCAie3suYnV0dG9uLnVwZGF0ZX19Iik7CiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogc2F2ZVBvcHVwRGF0YSgibTN1IiwgIicgKyBpZCArICciLCBmYWxzZSwgMSknKTsKICAgICAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIC8vIFNhdmUKICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgInNhdmUiLCAie3suYnV0dG9uLnNhdmV9fSIpOwogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogc2F2ZVBvcHVwRGF0YSgibTN1IiwgIicgKyBpZCArICciLCBmYWxzZSwgMCknKTsKICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgIGNhc2UgImhkaHIiOgogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUhlYWRsaW5lKGRhdGFUeXBlKTsKICAgICAgICAgICAgLy8gTmFtZQogICAgICAgICAgICB2YXIgZGJLZXkgPSAibmFtZSI7CiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOwogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnBsYXlsaXN0Lm5hbWUucGxhY2Vob2xkZXJ9fSIpOwogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sucGxheWxpc3QubmFtZS50aXRsZX19IiwgaW5wdXQpOwogICAgICAgICAgICAvLyBEZXNjcmlwdGlvbgogICAgICAgICAgICB2YXIgZGJLZXkgPSAiZGVzY3JpcHRpb24iOwogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsKICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5wbGF5bGlzdC5kZXNjcmlwdGlvbi5wbGFjZWhvbGRlcn19Iik7CiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5wbGF5bGlzdC5kZXNjcmlwdGlvbi5wbGFjZWhvbGRlcn19IiwgaW5wdXQpOwogICAgICAgICAgICAvLyBVUkwKICAgICAgICAgICAgdmFyIGRiS2V5ID0gImZpbGUuc291cmNlIjsKICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7CiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3sucGxheWxpc3QuZmlsZUhESFIucGxhY2Vob2xkZXJ9fSIpOwogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sucGxheWxpc3QuZmlsZUhESFIudGl0bGV9fSIsIGlucHV0KTsKICAgICAgICAgICAgLy8gVHVuZXIKICAgICAgICAgICAgaWYgKFNFUlZFUlsic2V0dGluZ3MiXVsiYnVmZmVyIl0gIT0gIi0iKSB7CiAgICAgICAgICAgICAgICB2YXIgdGV4dCA9IFtdOwogICAgICAgICAgICAgICAgdmFyIHZhbHVlcyA9IFtdOwogICAgICAgICAgICAgICAgZm9yICh2YXIgaSA9IDE7IGkgPD0gMTAwOyBpKyspIHsKICAgICAgICAgICAgICAgICAgICB0ZXh0LnB1c2goaS50b1N0cmluZygpKTsKICAgICAgICAgICAgICAgICAgICB2YWx1ZXMucHVzaChpLnRvU3RyaW5nKCkpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgdmFyIGRiS2V5ID0gInR1bmVyIjsKICAgICAgICAgICAgICAgIHZhciBzZWxlY3QgPSBjb250ZW50LmNyZWF0ZVNlbGVjdCh0ZXh0LCB2YWx1ZXMsIGRhdGFbZGJLZXldLCBkYktleSk7CiAgICAgICAgICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJvbmZvY3VzIiwgImphdmFzY3JpcHQ6IHJldHVybjsiKTsKICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5wbGF5bGlzdC50dW5lci50aXRsZX19Iiwgc2VsZWN0KTsKICAgICAgICAgICAgfQogICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgIHZhciBkYktleSA9ICJ0dW5lciI7CiAgICAgICAgICAgICAgICBpZiAoZGF0YVtkYktleV0gPT0gdW5kZWZpbmVkKSB7CiAgICAgICAgICAgICAgICAgICAgZGF0YVtkYktleV0gPSAxOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7CiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInJlYWRvbmx5IiwgInRydWUiKTsKICAgICAgICAgICAgICAgIGlucHV0LmNsYXNzTmFtZSA9ICJub3RBdmFpbGFibGUiOwogICAgICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnBsYXlsaXN0LnR1bmVyLnRpdGxlfX0iLCBpbnB1dCk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgY29udGVudC5kZXNjcmlwdGlvbigie3sucGxheWxpc3QudHVuZXIuZGVzY3JpcHRpb259fSIpOwogICAgICAgICAgICAvLyBJbnRlcmFjdGlvbgogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUludGVyYWN0aW9uKCk7CiAgICAgICAgICAgIC8vIERlbGV0ZQogICAgICAgICAgICBpZiAoZGF0YVsiaWQucHJvdmlkZXIiXSAhPSAiLSIpIHsKICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJkZWxldGUiLCAie3suYnV0dG9uLmRlbGV0ZX19Iik7CiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogc2F2ZVBvcHVwRGF0YSgiaGRociIsICInICsgaWQgKyAnIiwgdHJ1ZSwgMCknKTsKICAgICAgICAgICAgICAgIGlucHV0LmNsYXNzTmFtZSA9ICJkZWxldGUiOwogICAgICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAiYmFjayIsICJ7ey5idXR0b24uYmFja319Iik7CiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJwbGF5bGlzdCIpJyk7CiAgICAgICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsKICAgICAgICAgICAgfQogICAgICAgICAgICAvLyBBYm9ydAogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAiY2FuY2VsIiwgInt7LmJ1dHRvbi5jYW5jZWx9fSIpOwogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogc2hvd0VsZW1lbnQoInBvcHVwIiwgZmFsc2UpOycpOwogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsKICAgICAgICAgICAgLy8gVXBkYXRlCiAgICAgICAgICAgIGlmIChkYXRhWyJpZC5wcm92aWRlciJdICE9ICItIikgewogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgInVwZGF0ZSIsICJ7ey5idXR0b24udXBkYXRlfX0iKTsKICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBzYXZlUG9wdXBEYXRhKCJoZGhyIiwgIicgKyBpZCArICciLCBmYWxzZSwgMSknKTsKICAgICAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIC8vIFNhdmUKICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgInNhdmUiLCAie3suYnV0dG9uLnNhdmV9fSIpOwogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogc2F2ZVBvcHVwRGF0YSgiaGRociIsICInICsgaWQgKyAnIiwgZmFsc2UsIDApJyk7CiAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOwogICAgICAgICAgICBicmVhazsKICAgICAgICBjYXNlICJmaWx0ZXIiOgogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUhlYWRsaW5lKGRhdGFUeXBlKTsKICAgICAgICAgICAgLy8gVHlwZQogICAgICAgICAgICB2YXIgZGJLZXkgPSAidHlwZSI7CiAgICAgICAgICAgIHZhciB0ZXh0ID0gWyJNM1U6ICIgKyAie3suZmlsdGVyLnR5cGUuZ3JvdXBUaXRsZX19IiwgInhUZVZlOiAiICsgInt7LmZpbHRlci50eXBlLmN1c3RvbUZpbHRlcn19Il07CiAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBbImphdmFzY3JpcHQ6IG9wZW5Qb3BVcCgnZ3JvdXAtdGl0bGUnKSIsICJqYXZhc2NyaXB0OiBvcGVuUG9wVXAoJ2N1c3RvbS1maWx0ZXInKSJdOwogICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCAiamF2YXNjcmlwdDogb3BlblBvcFVwKCdncm91cC10aXRsZScpIiwgZGJLZXkpOwogICAgICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJpZCIsIGlkKTsKICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAnamF2YXNjcmlwdDogY2hhbmdlQnV0dG9uQWN0aW9uKHRoaXMsICJuZXh0IiwgIm9uY2xpY2siKTsnKTsgLy8gY2hhbmdlQnV0dG9uQWN0aW9uCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5maWx0ZXIudHlwZS50aXRsZX19Iiwgc2VsZWN0KTsKICAgICAgICAgICAgLy8gSW50ZXJhY3Rpb24KICAgICAgICAgICAgY29udGVudC5jcmVhdGVJbnRlcmFjdGlvbigpOwogICAgICAgICAgICAvLyBBYm9ydAogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAiY2FuY2VsIiwgInt7LmJ1dHRvbi5jYW5jZWx9fSIpOwogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogc2hvd0VsZW1lbnQoInBvcHVwIiwgZmFsc2UpOycpOwogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsKICAgICAgICAgICAgLy8gTmV4dAogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAibmV4dCIsICJ7ey5idXR0b24ubmV4dH19Iik7CiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoImdyb3VwLXRpdGxlIiknKTsKICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJpZCIsICduZXh0Jyk7CiAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOwogICAgICAgICAgICBicmVhazsKICAgICAgICBjYXNlICJjdXN0b20tZmlsdGVyIjoKICAgICAgICBjYXNlICJncm91cC10aXRsZSI6CiAgICAgICAgICAgIHN3aXRjaCAoZGF0YVR5cGUpIHsKICAgICAgICAgICAgICAgIGNhc2UgImN1c3RvbS1maWx0ZXIiOgogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuY3JlYXRlSGVhZGxpbmUoInt7LmZpbHRlci5jdXN0b219fSIgKyAiIEZpbHRlciIpOwogICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgY2FzZSAiZ3JvdXAtdGl0bGUiOgogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuY3JlYXRlSGVhZGxpbmUoInt7LmZpbHRlci5ncm91cH19IiArICIgRmlsdGVyIik7CiAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgLy8gTmFtZSAgICAgIAogICAgICAgICAgICB2YXIgZGJLZXkgPSAibmFtZSI7CiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOwogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LmZpbHRlci5uYW1lLnBsYWNlaG9sZGVyfX0iKTsKICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LmZpbHRlci5uYW1lLnRpdGxlfX0iLCBpbnB1dCk7CiAgICAgICAgICAgIC8vIERlc2NyaXB0aW9uCiAgICAgICAgICAgIHZhciBkYktleSA9ICJkZXNjcmlwdGlvbiI7CiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOwogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LmZpbHRlci5kZXNjcmlwdGlvbi5wbGFjZWhvbGRlcn19Iik7CiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5maWx0ZXIuZGVzY3JpcHRpb24udGl0bGV9fSIsIGlucHV0KTsKICAgICAgICAgICAgLy8gVHlwZQogICAgICAgICAgICB2YXIgZGJLZXkgPSAidHlwZSI7CiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImhpZGRlbiIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7CiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCIiLCBpbnB1dCk7CiAgICAgICAgICAgIHZhciBmaWx0ZXJUeXBlID0gZGF0YVtkYktleV07CiAgICAgICAgICAgIHN3aXRjaCAoZmlsdGVyVHlwZSkgewogICAgICAgICAgICAgICAgY2FzZSAiY3VzdG9tLWZpbHRlciI6CiAgICAgICAgICAgICAgICAgICAgLy8gQ2FzZSBzZW5zaXRpdmUKICAgICAgICAgICAgICAgICAgICB2YXIgZGJLZXkgPSAiY2FzZVNlbnNpdGl2ZSI7CiAgICAgICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChkYktleSk7CiAgICAgICAgICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGFbZGJLZXldOwogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5maWx0ZXIuY2FzZVNlbnNpdGl2ZS50aXRsZX19IiwgaW5wdXQpOwogICAgICAgICAgICAgICAgICAgIC8vIEZpbHRlciBSdWxlIChDdXN0b20pCiAgICAgICAgICAgICAgICAgICAgdmFyIGRiS2V5ID0gImZpbHRlciI7CiAgICAgICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7CiAgICAgICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5maWx0ZXIuZmlsdGVyUnVsZS5wbGFjZWhvbGRlcn19Iik7CiAgICAgICAgICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LmZpbHRlci5maWx0ZXJSdWxlLnRpdGxlfX0iLCBpbnB1dCk7CiAgICAgICAgICAgICAgICAgICAgLy8gU3RhcnRpbmcgQ2hhbm5lbCBOdW1iZXIgTWFwcGluZwogICAgICAgICAgICAgICAgICAgIHZhciBkYktleSA9ICJzdGFydGluZ0NoYW5uZWwiOwogICAgICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOwogICAgICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3suZmlsdGVyLnN0YXJ0aW5nQ2hhbm5lbC5wbGFjZWhvbGRlcn19Iik7CiAgICAgICAgICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LmZpbHRlci5zdGFydGluZ0NoYW5uZWwudGl0bGV9fSIsIGlucHV0KTsKICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgIGNhc2UgImdyb3VwLXRpdGxlIjoKICAgICAgICAgICAgICAgICAgICAvL2FsZXJ0KGRiS2V5ICsgIiAiICsgZmlsdGVyVHlwZSkKICAgICAgICAgICAgICAgICAgICAvLyBGaWx0ZXIgYmFzZWQgb24gdGhlIGdyb3VwcyBpbiB0aGUgTTNVCiAgICAgICAgICAgICAgICAgICAgdmFyIGRiS2V5ID0gImZpbHRlciI7CiAgICAgICAgICAgICAgICAgICAgdmFyIGdyb3Vwc00zVSA9IGdldExvY2FsRGF0YSgibTN1R3JvdXBzIiwgIiIpOwogICAgICAgICAgICAgICAgICAgIHZhciB0ZXh0ID0gZ3JvdXBzTTNVWyJ0ZXh0Il07CiAgICAgICAgICAgICAgICAgICAgdmFyIHZhbHVlcyA9IGdyb3Vwc00zVVsidmFsdWUiXTsKICAgICAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCBkYXRhW2RiS2V5XSwgZGJLZXkpOwogICAgICAgICAgICAgICAgICAgIHNlbGVjdC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7CiAgICAgICAgICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LmZpbHRlci5maWx0ZXJHcm91cC50aXRsZX19Iiwgc2VsZWN0KTsKICAgICAgICAgICAgICAgICAgICBjb250ZW50LmRlc2NyaXB0aW9uKCJ7ey5maWx0ZXIuZmlsdGVyR3JvdXAuZGVzY3JpcHRpb259fSIpOwogICAgICAgICAgICAgICAgICAgIC8vIENhc2Ugc2Vuc2V0aXZlCiAgICAgICAgICAgICAgICAgICAgdmFyIGRiS2V5ID0gImNhc2VTZW5zaXRpdmUiOwogICAgICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goZGJLZXkpOwogICAgICAgICAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhW2RiS2V5XTsKICAgICAgICAgICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3suZmlsdGVyLmNhc2VTZW5zaXRpdmUudGl0bGV9fSIsIGlucHV0KTsKICAgICAgICAgICAgICAgICAgICB2YXIgZGJLZXkgPSAiaW5jbHVkZSI7CiAgICAgICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7CiAgICAgICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5maWx0ZXIuaW5jbHVkZS5wbGFjZWhvbGRlcn19Iik7CiAgICAgICAgICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LmZpbHRlci5pbmNsdWRlLnRpdGxlfX0iLCBpbnB1dCk7CiAgICAgICAgICAgICAgICAgICAgY29udGVudC5kZXNjcmlwdGlvbigie3suZmlsdGVyLmluY2x1ZGUuZGVzY3JpcHRpb259fSIpOwogICAgICAgICAgICAgICAgICAgIHZhciBkYktleSA9ICJleGNsdWRlIjsKICAgICAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsKICAgICAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LmZpbHRlci5leGNsdWRlLnBsYWNlaG9sZGVyfX0iKTsKICAgICAgICAgICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3suZmlsdGVyLmV4Y2x1ZGUudGl0bGV9fSIsIGlucHV0KTsKICAgICAgICAgICAgICAgICAgICBjb250ZW50LmRlc2NyaXB0aW9uKCJ7ey5maWx0ZXIuZXhjbHVkZS5kZXNjcmlwdGlvbn19Iik7CiAgICAgICAgICAgICAgICAgICAgLy8gUHJlc2VydmUgTTNVIFBsYXlsaXN0IENoYW5uZWwgTWFwcGluZwogICAgICAgICAgICAgICAgICAgIHZhciBkYktleSA9ICJwcmVzZXJ2ZU1hcHBpbmciOwogICAgICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goZGJLZXkpOwogICAgICAgICAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhW2RiS2V5XTsKICAgICAgICAgICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3suZmlsdGVyLnByZXNlcnZlTWFwcGluZy50aXRsZX19IiwgaW5wdXQpOwogICAgICAgICAgICAgICAgICAgIC8vIFN0YXJ0aW5nIENoYW5uZWwgTnVtYmVyIE1hcHBpbmcKICAgICAgICAgICAgICAgICAgICB2YXIgZGJLZXkgPSAic3RhcnRpbmdDaGFubmVsIjsKICAgICAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsKICAgICAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LmZpbHRlci5zdGFydGluZ0NoYW5uZWwucGxhY2Vob2xkZXJ9fSIpOwogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5maWx0ZXIuc3RhcnRpbmdDaGFubmVsLnRpdGxlfX0iLCBpbnB1dCk7CiAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICB9CiAgICAgICAgICAgIC8vIEludGVyYWN0aW9uCiAgICAgICAgICAgIGNvbnRlbnQuY3JlYXRlSW50ZXJhY3Rpb24oKTsKICAgICAgICAgICAgLy8gRGVsZXRlCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJkZWxldGUiLCAie3suYnV0dG9uLmRlbGV0ZX19Iik7CiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBzYXZlUG9wdXBEYXRhKCJmaWx0ZXIiLCAiJyArIGlkICsgJyIsIHRydWUsIDApJyk7CiAgICAgICAgICAgIGlucHV0LmNsYXNzTmFtZSA9ICJkZWxldGUiOwogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsKICAgICAgICAgICAgLy8gQWJvcnQKICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImNhbmNlbCIsICJ7ey5idXR0b24uY2FuY2VsfX0iKTsKICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IHNob3dFbGVtZW50KCJwb3B1cCIsIGZhbHNlKTsnKTsKICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7CiAgICAgICAgICAgIC8vIFNhdmUKICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgInNhdmUiLCAie3suYnV0dG9uLnNhdmV9fSIpOwogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogc2F2ZVBvcHVwRGF0YSgiZmlsdGVyIiwgIicgKyBpZCArICciLCBmYWxzZSwgMCknKTsKICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgIGNhc2UgInhtbHR2IjoKICAgICAgICAgICAgY29udGVudC5jcmVhdGVIZWFkbGluZShkYXRhVHlwZSk7CiAgICAgICAgICAgIC8vIE5hbWUKICAgICAgICAgICAgdmFyIGRiS2V5ID0gIm5hbWUiOwogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsKICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey54bWx0di5uYW1lLnBsYWNlaG9sZGVyfX0iKTsKICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnhtbHR2Lm5hbWUudGl0bGV9fSIsIGlucHV0KTsKICAgICAgICAgICAgLy8gRGVzY3JpcHRpb24KICAgICAgICAgICAgdmFyIGRiS2V5ID0gImRlc2NyaXB0aW9uIjsKICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7CiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3sueG1sdHYuZGVzY3JpcHRpb24ucGxhY2Vob2xkZXJ9fSIpOwogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sueG1sdHYuZGVzY3JpcHRpb24udGl0bGV9fSIsIGlucHV0KTsKICAgICAgICAgICAgLy8gVVJMCiAgICAgICAgICAgIHZhciBkYktleSA9ICJmaWxlLnNvdXJjZSI7CiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOwogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnhtbHR2LmZpbGVYTUxUVi5wbGFjZWhvbGRlcn19Iik7CiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey54bWx0di5maWxlWE1MVFYudGl0bGV9fSIsIGlucHV0KTsKICAgICAgICAgICAgLy8gSW50ZXJhY3Rpb24KICAgICAgICAgICAgY29udGVudC5jcmVhdGVJbnRlcmFjdGlvbigpOwogICAgICAgICAgICAvLyBEZWxldGUKICAgICAgICAgICAgaWYgKGRhdGFbImlkLnByb3ZpZGVyIl0gIT0gIi0iKSB7CiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAiZGVsZXRlIiwgInt7LmJ1dHRvbi5kZWxldGV9fSIpOwogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoInhtbHR2IiwgIicgKyBpZCArICciLCB0cnVlLCAwKScpOwogICAgICAgICAgICAgICAgaW5wdXQuY2xhc3NOYW1lID0gImRlbGV0ZSI7CiAgICAgICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsKICAgICAgICAgICAgfQogICAgICAgICAgICAvLyBBYm9ydAogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAiY2FuY2VsIiwgInt7LmJ1dHRvbi5jYW5jZWx9fSIpOwogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogc2hvd0VsZW1lbnQoInBvcHVwIiwgZmFsc2UpOycpOwogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsKICAgICAgICAgICAgLy8gVXBkYXRlCiAgICAgICAgICAgIGlmIChkYXRhWyJpZC5wcm92aWRlciJdICE9ICItIikgewogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgInVwZGF0ZSIsICJ7ey5idXR0b24udXBkYXRlfX0iKTsKICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBzYXZlUG9wdXBEYXRhKCJ4bWx0diIsICInICsgaWQgKyAnIiwgZmFsc2UsIDEpJyk7CiAgICAgICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsKICAgICAgICAgICAgfQogICAgICAgICAgICAvLyBTYXZlCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJzYXZlIiwgInt7LmJ1dHRvbi5zYXZlfX0iKTsKICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoInhtbHR2IiwgIicgKyBpZCArICciLCBmYWxzZSwgMCknKTsKICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgIGNhc2UgInVzZXJzIjoKICAgICAgICAgICAgY29udGVudC5jcmVhdGVIZWFkbGluZSgie3subWFpbk1lbnUuaXRlbS51c2Vyc319Iik7CiAgICAgICAgICAgIC8vIFVzZXIgbmFtZQogICAgICAgICAgICB2YXIgZGJLZXkgPSAidXNlcm5hbWUiOwogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsKICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey51c2Vycy51c2VybmFtZS5wbGFjZWhvbGRlcn19Iik7CiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey51c2Vycy51c2VybmFtZS50aXRsZX19IiwgaW5wdXQpOwogICAgICAgICAgICAvLyBOZXcgUGFyc3N3b3JkCiAgICAgICAgICAgIHZhciBkYktleSA9ICJwYXNzd29yZCI7CiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInBhc3N3b3JkIiwgZGJLZXksICIiKTsKICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey51c2Vycy5wYXNzd29yZC5wbGFjZWhvbGRlcn19Iik7CiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey51c2Vycy5wYXNzd29yZC50aXRsZX19IiwgaW5wdXQpOwogICAgICAgICAgICAvLyBDb25maXJtYXRpb24KICAgICAgICAgICAgdmFyIGRiS2V5ID0gImNvbmZpcm0iOwogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJwYXNzd29yZCIsIGRiS2V5LCAiIik7CiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3sudXNlcnMuY29uZmlybS5wbGFjZWhvbGRlcn19Iik7CiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey51c2Vycy5jb25maXJtLnRpdGxlfX0iLCBpbnB1dCk7CiAgICAgICAgICAgIC8vIEF1dGhlbnRpY2F0aW9uIFdFQgogICAgICAgICAgICB2YXIgZGJLZXkgPSAiYXV0aGVudGljYXRpb24ud2ViIjsKICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChkYktleSk7CiAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhW2RiS2V5XTsKICAgICAgICAgICAgaWYgKGRhdGFbImRlZmF1bHRVc2VyIl0gPT0gdHJ1ZSkgewogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgImphdmFzY3JpcHQ6IHJldHVybiBmYWxzZSIpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey51c2Vycy53ZWIudGl0bGV9fSIsIGlucHV0KTsKICAgICAgICAgICAgLy8gQXV0aGVudGljYXRpb24gUE1TCiAgICAgICAgICAgIHZhciBkYktleSA9ICJhdXRoZW50aWNhdGlvbi5wbXMiOwogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KGRiS2V5KTsKICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGFbZGJLZXldOwogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sudXNlcnMucG1zLnRpdGxlfX0iLCBpbnB1dCk7CiAgICAgICAgICAgIC8vIEF1dGhlbnRpY2F0aW9uIE0zVQogICAgICAgICAgICB2YXIgZGJLZXkgPSAiYXV0aGVudGljYXRpb24ubTN1IjsKICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChkYktleSk7CiAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhW2RiS2V5XTsKICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnVzZXJzLm0zdS50aXRsZX19IiwgaW5wdXQpOwogICAgICAgICAgICAvLyBBdXRoZW50aWNhdGlvbiBYTUwKICAgICAgICAgICAgdmFyIGRiS2V5ID0gImF1dGhlbnRpY2F0aW9uLnhtbCI7CiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goZGJLZXkpOwogICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YVtkYktleV07CiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey51c2Vycy54bWwudGl0bGV9fSIsIGlucHV0KTsKICAgICAgICAgICAgLy8gQXV0aGVudGljYXRpb24gQVBJCiAgICAgICAgICAgIHZhciBkYktleSA9ICJhdXRoZW50aWNhdGlvbi5hcGkiOwogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KGRiS2V5KTsKICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGFbZGJLZXldOwogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sudXNlcnMuYXBpLnRpdGxlfX0iLCBpbnB1dCk7CiAgICAgICAgICAgIC8vIEludGVyYWN0aW9uCiAgICAgICAgICAgIGNvbnRlbnQuY3JlYXRlSW50ZXJhY3Rpb24oKTsKICAgICAgICAgICAgLy8gRGVsZXRlCiAgICAgICAgICAgIGlmIChkYXRhWyJkZWZhdWx0VXNlciJdICE9IHRydWUgJiYgaWQgIT0gIi0iKSB7CiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAiZGVsZXRlIiwgInt7LmJ1dHRvbi5kZWxldGV9fSIpOwogICAgICAgICAgICAgICAgaW5wdXQuY2xhc3NOYW1lID0gImRlbGV0ZSI7CiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogc2F2ZVBvcHVwRGF0YSgiJyArIGRhdGFUeXBlICsgJyIsICInICsgaWQgKyAnIiwgdHJ1ZSwgMCknKTsKICAgICAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIC8vIEFib3J0CiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJjYW5jZWwiLCAie3suYnV0dG9uLmNhbmNlbH19Iik7CiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBzaG93RWxlbWVudCgicG9wdXAiLCBmYWxzZSk7Jyk7CiAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOwogICAgICAgICAgICAvLyBTYXZlCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJzYXZlIiwgInt7LmJ1dHRvbi5zYXZlfX0iKTsKICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoIicgKyBkYXRhVHlwZSArICciLCAiJyArIGlkICsgJyIsICJmYWxzZSIpOycpOwogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgY2FzZSAibWFwcGluZyI6CiAgICAgICAgICAgIGNvbnRlbnQuY3JlYXRlSGVhZGxpbmUoInt7Lm1haW5NZW51Lml0ZW0ubWFwcGluZ319Iik7CiAgICAgICAgICAgIC8vIEFjdGl2ZQogICAgICAgICAgICB2YXIgZGJLZXkgPSAieC1hY3RpdmUiOwogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KGRiS2V5KTsKICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGFbZGJLZXldOwogICAgICAgICAgICBpbnB1dC5pZCA9ICJhY3RpdmUiOwogICAgICAgICAgICAvL2lucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRvZ2dsZUNoYW5uZWxTdGF0dXMoJyIgKyBpZCArICInLCB0aGlzKSIpOwogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3subWFwcGluZy5hY3RpdmUudGl0bGV9fSIsIGlucHV0KTsKICAgICAgICAgICAgLy8gQ2hhbm5lbCBuYW1lCiAgICAgICAgICAgIHZhciBkYktleSA9ICJ4LW5hbWUiOwogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsKICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOwogICAgICAgICAgICBpZiAoQlVMS19FRElUID09IHRydWUpIHsKICAgICAgICAgICAgICAgIGlucHV0LnN0eWxlLmJvcmRlciA9ICJzb2xpZCAxcHggcmVkIjsKICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicmVhZG9ubHkiLCAidHJ1ZSIpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5tYXBwaW5nLmNoYW5uZWxOYW1lLnRpdGxlfX0iLCBpbnB1dCk7CiAgICAgICAgICAgIGNvbnRlbnQuZGVzY3JpcHRpb24oZGF0YVsibmFtZSJdKTsKICAgICAgICAgICAgLy8gRGVzY3JpcHRpb24KICAgICAgICAgICAgdmFyIGRiS2V5ID0gIngtZGVzY3JpcHRpb24iOwogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsKICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5tYXBwaW5nLmRlc2NyaXB0aW9uLnBsYWNlaG9sZGVyfX0iKTsKICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOwogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3subWFwcGluZy5kZXNjcmlwdGlvbi50aXRsZX19IiwgaW5wdXQpOwogICAgICAgICAgICAvLyBVcGRhdGUgdGhlIGNoYW5uZWwgeC1uYW1lCiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCJfdXVpZC5rZXkiKSkgewogICAgICAgICAgICAgICAgaWYgKGRhdGFbIl91dWlkLmtleSJdICE9ICIiKSB7CiAgICAgICAgICAgICAgICAgICAgdmFyIGRiS2V5ID0gIngtdXBkYXRlLWNoYW5uZWwtbmFtZSI7CiAgICAgICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChkYktleSk7CiAgICAgICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOwogICAgICAgICAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhW2RiS2V5XTsKICAgICAgICAgICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3subWFwcGluZy51cGRhdGVDaGFubmVsTmFtZS50aXRsZX19IiwgaW5wdXQpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICAgIC8vIENoYW5uZWwgbmFtZSByZWdleCBmb3IgdXBkYXRpbmcgdGhlIGNoYW5uZWwgbmFtZQogICAgICAgICAgICB2YXIgZGJLZXkgPSAidXBkYXRlLWNoYW5uZWwtbmFtZS1yZWdleCI7CiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOwogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7Lm1hcHBpbmcudXBkYXRlQ2hhbm5lbE5hbWVSZWdleC5wbGFjZWhvbGRlcn19Iik7CiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsKICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7Lm1hcHBpbmcudXBkYXRlQ2hhbm5lbE5hbWVSZWdleC50aXRsZX19IiwgaW5wdXQpOwogICAgICAgICAgICBjb250ZW50LmRlc2NyaXB0aW9uKCJ7ey5tYXBwaW5nLnVwZGF0ZUNoYW5uZWxOYW1lUmVnZXguZGVzY3JpcHRpb259fSIpOwogICAgICAgICAgICAvLyBDaGFubmVsIGdyb3VwIHJlZ2V4IGZvciB1cGRhdGluZyB0aGUgY2hhbm5lbCBuYW1lCiAgICAgICAgICAgIHZhciBkYktleSA9ICJ1cGRhdGUtY2hhbm5lbC1uYW1lLWJ5LWdyb3VwLXJlZ2V4IjsKICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7CiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3subWFwcGluZy51cGRhdGVDaGFubmVsTmFtZUJ5R3JvdXBSZWdleC5wbGFjZWhvbGRlcn19Iik7CiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsKICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7Lm1hcHBpbmcudXBkYXRlQ2hhbm5lbE5hbWVCeUdyb3VwUmVnZXgudGl0bGV9fSIsIGlucHV0KTsKICAgICAgICAgICAgY29udGVudC5kZXNjcmlwdGlvbigie3subWFwcGluZy51cGRhdGVDaGFubmVsTmFtZUJ5R3JvdXBSZWdleC5kZXNjcmlwdGlvbn19Iik7CiAgICAgICAgICAgIC8vIExvZ28gVVJMIChDaGFubmVsKSAKICAgICAgICAgICAgdmFyIGRiS2V5ID0gInR2Zy1sb2dvIjsKICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7CiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsKICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJpZCIsICJjaGFubmVsLWljb24iKTsKICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7Lm1hcHBpbmcuY2hhbm5lbExvZ28udGl0bGV9fSIsIGlucHV0KTsKICAgICAgICAgICAgLy8gQ2hhbm5lbCBsb2dvIHVwZGF0ZQogICAgICAgICAgICB2YXIgZGJLZXkgPSAieC11cGRhdGUtY2hhbm5lbC1pY29uIjsKICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChkYktleSk7CiAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhW2RiS2V5XTsKICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJpZCIsICJ1cGRhdGUtaWNvbiIpOwogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnOyBjaGFuZ2VDaGFubmVsTG9nbygnIiArIGlkICsgIicpOyIpOwogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3subWFwcGluZy51cGRhdGVDaGFubmVsTG9nby50aXRsZX19IiwgaW5wdXQpOwogICAgICAgICAgICAvLyBFeHBhbmQgRVBHIGNhdGVnb3J5CiAgICAgICAgICAgIHZhciBkYktleSA9ICJ4LWNhdGVnb3J5IjsKICAgICAgICAgICAgdmFyIHRleHQgPSBbIi0iLCAiS2lkcyAoRW1ieSBvbmx5KSIsICJOZXdzIiwgIk1vdmllIiwgIlNlcmllcyIsICJTcG9ydHMiXTsKICAgICAgICAgICAgdmFyIHZhbHVlcyA9IFsiIiwgIktpZHMiLCAiTmV3cyIsICJNb3ZpZSIsICJTZXJpZXMiLCAiU3BvcnRzIl07CiAgICAgICAgICAgIHZhciBzZWxlY3QgPSBjb250ZW50LmNyZWF0ZVNlbGVjdCh0ZXh0LCB2YWx1ZXMsIGRhdGFbZGJLZXldLCBkYktleSk7CiAgICAgICAgICAgIHNlbGVjdC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7CiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5tYXBwaW5nLmVwZ0NhdGVnb3J5LnRpdGxlfX0iLCBzZWxlY3QpOwogICAgICAgICAgICAvLyBNM1UgZ3JvdXAgdGl0bGUKICAgICAgICAgICAgdmFyIGRiS2V5ID0gIngtZ3JvdXAtdGl0bGUiOwogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsKICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOwogICAgICAgICAgICBpbnB1dC5kYXRhc2V0Lm9sZFZhbHVlID0gZGF0YVtkYktleV07CiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5tYXBwaW5nLm0zdUdyb3VwVGl0bGUudGl0bGV9fSIsIGlucHV0KTsKICAgICAgICAgICAgaWYgKGRhdGFbImdyb3VwLXRpdGxlIl0gIT0gdW5kZWZpbmVkKSB7CiAgICAgICAgICAgICAgICBjb250ZW50LmRlc2NyaXB0aW9uKGRhdGFbImdyb3VwLXRpdGxlIl0pOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGlmIChkYXRhWyJ4LXVwZGF0ZS1jaGFubmVsLWdyb3VwIl0gPT0gdHJ1ZSkgewogICAgICAgICAgICAgICAgaW5wdXQuZGlzYWJsZWQgPSB0cnVlOwogICAgICAgICAgICB9CiAgICAgICAgICAgIC8vIFVwZGF0ZSBjaGFubmVsIGdyb3VwIGNoZWNrYm94CiAgICAgICAgICAgIHZhciBkYktleSA9ICJ4LXVwZGF0ZS1jaGFubmVsLWdyb3VwIjsKICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChkYktleSk7CiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdG9nZ2xlR3JvdXBVcGRhdGVDYignIiArIGlkICsgIicsIHRoaXMpOyIpOwogICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YVtkYktleV07CiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5tYXBwaW5nLnVwZGF0ZUNoYW5uZWxHcm91cC50aXRsZX19IiwgaW5wdXQpOwogICAgICAgICAgICBjb250ZW50LmRlc2NyaXB0aW9uKCJ7ey5tYXBwaW5nLnVwZGF0ZUNoYW5uZWxHcm91cC5kZXNjcmlwdGlvbn19Iik7CiAgICAgICAgICAgIC8vIFhNTFRWIGZpbGUKICAgICAgICAgICAgdmFyIGRiS2V5ID0gJ3gteG1sdHYtZmlsZSc7CiAgICAgICAgICAgIGNvbnN0IHhtbFR2RmlsZSA9IGRhdGFbZGJLZXldOwogICAgICAgICAgICB2YXIgeG1sVHYgPSBuZXcgWE1MVFZGaWxlKCk7CiAgICAgICAgICAgIGNvbnN0IHhtbFR2RmlsZVNlbGVjdCA9IHhtbFR2LmdldEZpbGVzKGRhdGFbZGJLZXldKTsKICAgICAgICAgICAgeG1sVHZGaWxlU2VsZWN0LnNldEF0dHJpYnV0ZSgnbmFtZScsIGRiS2V5KTsKICAgICAgICAgICAgeG1sVHZGaWxlU2VsZWN0LnNldEF0dHJpYnV0ZSgnaWQnLCAncG9wdXAteG1sdHYnKTsKICAgICAgICAgICAgeG1sVHZGaWxlU2VsZWN0LnNldEF0dHJpYnV0ZSgnb25jaGFuZ2UnLCBgamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCc7IHNldFhtbHR2Q2hhbm5lbCgnJHtpZH0nLCB0aGlzKTtgKTsKICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coJ3t7Lm1hcHBpbmcueG1sdHZGaWxlLnRpdGxlfX0nLCB4bWxUdkZpbGVTZWxlY3QpOwogICAgICAgICAgICAvLyBYTUxUViBNYXBwaW5nCiAgICAgICAgICAgIHZhciBkYktleSA9ICd4LW1hcHBpbmcnOwogICAgICAgICAgICB2YXIgeG1sVHYgPSBuZXcgWE1MVFZGaWxlKCk7CiAgICAgICAgICAgIGNvbnN0IGN1cnJlbnRYbWxUdklkID0gZGF0YVtkYktleV07CiAgICAgICAgICAgIGNvbnN0IFt4bWxUdklkQ29udGFpbmVyLCB4bWxUdklkSW5wdXQsIHhtbFR2SWREYXRhbGlzdF0gPSB4bWxUdi5uZXdYbWxUdklkUGlja2VyKHhtbFR2RmlsZSwgY3VycmVudFhtbFR2SWQpOwogICAgICAgICAgICB4bWxUdklkQ29udGFpbmVyLnNldEF0dHJpYnV0ZSgnaWQnLCAneG1sdHYtaWQtcGlja2VyLWNvbnRhaW5lcicpOwogICAgICAgICAgICB4bWxUdklkSW5wdXQuc2V0QXR0cmlidXRlKCdsaXN0JywgJ3htbHR2LWlkLXBpY2tlci1kYXRhbGlzdCcpOwogICAgICAgICAgICB4bWxUdklkSW5wdXQuc2V0QXR0cmlidXRlKCduYW1lJywgJ3gtbWFwcGluZycpOyAvLyBTaG91bGQgc3RheSB4LW1hcHBpbmcgYXMgaXQgd2lsbCBiZSB1c2VkIGluIGRvbmVQb3B1cERhdGEgdG8gbWFrZSBhIHNlcnZlciByZXF1ZXN0CiAgICAgICAgICAgIHhtbFR2SWRJbnB1dC5zZXRBdHRyaWJ1dGUoJ2lkJywgJ3htbHR2LWlkLXBpY2tlci1pbnB1dCcpOwogICAgICAgICAgICB4bWxUdklkSW5wdXQuc2V0QXR0cmlidXRlKCdvbmNoYW5nZScsIGBqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJzsgY2hlY2tYbWx0dkNoYW5uZWwoJyR7aWR9JywgdGhpcy52YWx1ZSwgJyR7eG1sVHZGaWxlfScpO2ApOwogICAgICAgICAgICB4bWxUdklkRGF0YWxpc3Quc2V0QXR0cmlidXRlKCdpZCcsICd4bWx0di1pZC1waWNrZXItZGF0YWxpc3QnKTsKICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coJ3t7Lm1hcHBpbmcueG1sdHZDaGFubmVsLnRpdGxlfX0nLCB4bWxUdklkQ29udGFpbmVyKTsKICAgICAgICAgICAgLy8gVGltZXNoaWZ0CiAgICAgICAgICAgIHZhciBkYktleSA9ICJ4LXRpbWVzaGlmdCI7CiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOwogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7CiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3subWFwcGluZy50aW1lc2hpZnQucGxhY2Vob2xkZXJ9fSIpOwogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoImlkIiwgInRpbWVzaGlmdCIpOwogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3subWFwcGluZy50aW1lc2hpZnQudGl0bGV9fSIsIGlucHV0KTsKICAgICAgICAgICAgLy8gSW50ZXJhY3Rpb24KICAgICAgICAgICAgY29udGVudC5jcmVhdGVJbnRlcmFjdGlvbigpOwogICAgICAgICAgICAvLyBVcGxvYWQgbG9nbwogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAiY2FuY2VsIiwgInt7LmJ1dHRvbi51cGxvYWRMb2dvfX0iKTsKICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IHVwbG9hZExvZ28oKTsnKTsKICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7CiAgICAgICAgICAgIC8vIEFib3J0CiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJjYW5jZWwiLCAie3suYnV0dG9uLmNhbmNlbH19Iik7CiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBzaG93RWxlbWVudCgicG9wdXAiLCBmYWxzZSk7Jyk7CiAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOwogICAgICAgICAgICAvLyBGaW5pc2hlZAogICAgICAgICAgICB2YXIgaWRzID0gW107CiAgICAgICAgICAgIGlkcyA9IGdldEFsbFNlbGVjdGVkQ2hhbm5lbHMoKTsKICAgICAgICAgICAgaWYgKGlkcy5sZW5ndGggPT0gMCkgewogICAgICAgICAgICAgICAgaWRzLnB1c2goaWQpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJzYXZlIiwgInt7LmJ1dHRvbi5kb25lfX0iKTsKICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IGRvbmVQb3B1cERhdGEoIicgKyBkYXRhVHlwZSArICciLCAiJyArIGlkcyArICciLCAiZmFsc2UiKTsnKTsKICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgIGJyZWFrOwogICAgfQogICAgc2hvd1BvcFVwRWxlbWVudCgncG9wdXAtY3VzdG9tJyk7Cn0KY2xhc3MgWE1MVFZGaWxlIHsKICAgIGdldEZpbGVzKHNldCkgewogICAgICAgIGxldCBmaWxlSURzID0gZ2V0T3duT2JqUHJvcHMoU0VSVkVSWyJ4ZXBnIl1bInhtbHR2TWFwIl0pOwogICAgICAgIGxldCB2YWx1ZXMgPSBuZXcgQXJyYXkoIi0iKTsKICAgICAgICBsZXQgdGV4dCA9IG5ldyBBcnJheSgiLSIpOwogICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgZmlsZUlEcy5sZW5ndGg7IGkrKykgewogICAgICAgICAgICBpZiAoZmlsZUlEc1tpXSAhPSAieFRlVmUgRHVtbXkiKSB7CiAgICAgICAgICAgICAgICB2YWx1ZXMucHVzaChnZXRWYWx1ZUZyb21Qcm92aWRlckZpbGUoZmlsZUlEc1tpXSwgInhtbHR2IiwgImZpbGUueHRldmUiKSk7CiAgICAgICAgICAgICAgICB0ZXh0LnB1c2goZ2V0VmFsdWVGcm9tUHJvdmlkZXJGaWxlKGZpbGVJRHNbaV0sICJ4bWx0diIsICJuYW1lIikpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgdmFsdWVzLnB1c2goZmlsZUlEc1tpXSk7CiAgICAgICAgICAgICAgICB0ZXh0LnB1c2goZmlsZUlEc1tpXSk7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgbGV0IHNlbGVjdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlNFTEVDVCIpOwogICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGV4dC5sZW5ndGg7IGkrKykgewogICAgICAgICAgICB2YXIgb3B0aW9uID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiT1BUSU9OIik7CiAgICAgICAgICAgIG9wdGlvbi5zZXRBdHRyaWJ1dGUoInZhbHVlIiwgdmFsdWVzW2ldKTsKICAgICAgICAgICAgb3B0aW9uLmlubmVyVGV4dCA9IHRleHRbaV07CiAgICAgICAgICAgIHNlbGVjdC5hcHBlbmRDaGlsZChvcHRpb24pOwogICAgICAgIH0KICAgICAgICBpZiAoc2V0ICE9ICIiKSB7CiAgICAgICAgICAgIHNlbGVjdC52YWx1ZSA9IHNldDsKICAgICAgICB9CiAgICAgICAgcmV0dXJuIHNlbGVjdDsKICAgIH0KICAgIC8qKgogICAgICogQHBhcmFtIHhtbFR2RmlsZSBYTUwgZmlsZSBwYXRoIHRvIGdldCBFUEcgZnJvbS4KICAgICAqIEBwYXJhbSBjdXJyZW50WG1sVHZJZCBDdXJyZW50IFhNTFRWIElEIHRvIHNldCBpbml0aWFsIGlucHV0IHZhbHVlIHRvLgogICAgICogQHJldHVybnMgQXJyYXkgb2YsIHNlcXVlbnRpYWxseToKICAgICAqIDEpIENvbnRhaW5lciBvZiB0aGUgcGlja2VyLgogICAgICogMikgSW5wdXQgZmllbGQgdG8gdHlwZSBhdCBhbmQgZ2V0IGNob2ljZSBmcm9tLgogICAgICogMykgRGF0YWxpc3QgY29udGFpbmluZyBldmVyeSBvcHRpb24uCiAgICAgKi8KICAgIG5ld1htbFR2SWRQaWNrZXIoeG1sVHZGaWxlLCBjdXJyZW50WG1sVHZJZCkgewogICAgICAgIGNvbnN0IGNvbnRhaW5lciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOwogICAgICAgIGNvbnN0IGlucHV0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnaW5wdXQnKTsKICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoJ3R5cGUnLCAndGV4dCcpOwogICAgICAgIC8vIEluaXRpYWxseSwgc2V0IHZhbHVlIHRvICctJyBpZiBpbnB1dCBpcyBlbXB0eQogICAgICAgIGlucHV0LnZhbHVlID0gKGN1cnJlbnRYbWxUdklkKSA/IGN1cnJlbnRYbWxUdklkIDogJy0nOwogICAgICAgIC8vIFdoZW4gaW5wdXQgaXMgZm9jdXNlZCwgcmVtb3ZlICctJyBmcm9tIGl0CiAgICAgICAgaW5wdXQuYWRkRXZlbnRMaXN0ZW5lcignZm9jdXMnLCAoZXZ0KSA9PiB7CiAgICAgICAgICAgIGNvbnN0IHRhcmdldCA9IGV2dC50YXJnZXQ7CiAgICAgICAgICAgIHRhcmdldC52YWx1ZSA9ICh0YXJnZXQudmFsdWUgPT09ICctJykgPyAnJyA6IHRhcmdldC52YWx1ZTsKICAgICAgICB9KTsKICAgICAgICAvLyBXaGVuIGlucHV0IGxvc2UgZm9jdXMgb3IgdGFrZSBhIHZhbHVlLCBpZiBpdCdzIGVtcHR5LCBzZXQgdmFsdWUgdG8gJy0nCiAgICAgICAgaW5wdXQuYWRkRXZlbnRMaXN0ZW5lcignYmx1cicsIHNldEZhbGxiYWNrVmFsdWUpOwogICAgICAgIGlucHV0LmFkZEV2ZW50TGlzdGVuZXIoJ2NoYW5nZScsIHNldEZhbGxiYWNrVmFsdWUpOwogICAgICAgIGZ1bmN0aW9uIHNldEZhbGxiYWNrVmFsdWUoZXZ0KSB7CiAgICAgICAgICAgIGNvbnN0IHRhcmdldCA9IGV2dC50YXJnZXQ7CiAgICAgICAgICAgIHRhcmdldC52YWx1ZSA9ICh0YXJnZXQudmFsdWUpID8gdGFyZ2V0LnZhbHVlIDogJy0nOwogICAgICAgIH0KICAgICAgICBjb250YWluZXIuYXBwZW5kQ2hpbGQoaW5wdXQpOwogICAgICAgIGNvbnN0IGRhdGFsaXN0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGF0YWxpc3QnKTsKICAgICAgICBjb25zdCBvcHRpb24gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdvcHRpb24nKTsKICAgICAgICBvcHRpb24uc2V0QXR0cmlidXRlKCd2YWx1ZScsICctJyk7CiAgICAgICAgb3B0aW9uLmlubmVyVGV4dCA9ICctJzsKICAgICAgICBkYXRhbGlzdC5hcHBlbmRDaGlsZChvcHRpb24pOwogICAgICAgIGNvbnN0IGVwZyA9IFNFUlZFUlsneGVwZyddWyd4bWx0dk1hcCddW3htbFR2RmlsZV07CiAgICAgICAgaWYgKGVwZykgewogICAgICAgICAgICBjb25zdCBwcm9ncmFtSWRzID0gZ2V0T3duT2JqUHJvcHMoZXBnKTsKICAgICAgICAgICAgcHJvZ3JhbUlkcy5mb3JFYWNoKChwcm9ncmFtSWQpID0+IHsKICAgICAgICAgICAgICAgIGNvbnN0IHByb2dyYW0gPSBlcGdbcHJvZ3JhbUlkXTsKICAgICAgICAgICAgICAgIGlmIChwcm9ncmFtLmhhc093blByb3BlcnR5KCdkaXNwbGF5LW5hbWVzJykpIHsKICAgICAgICAgICAgICAgICAgICBwcm9ncmFtWydkaXNwbGF5LW5hbWVzJ10uZm9yRWFjaCgoZGlzcGxheU5hbWUpID0+IHsKICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgb3B0aW9uID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnb3B0aW9uJyk7CiAgICAgICAgICAgICAgICAgICAgICAgIG9wdGlvbi5zZXRBdHRyaWJ1dGUoJ3ZhbHVlJywgcHJvZ3JhbUlkKTsKICAgICAgICAgICAgICAgICAgICAgICAgb3B0aW9uLmlubmVyVGV4dCA9IGRpc3BsYXlOYW1lWydWYWx1ZSddOwogICAgICAgICAgICAgICAgICAgICAgICBkYXRhbGlzdC5hcHBlbmRDaGlsZChvcHRpb24pOwogICAgICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgY29uc3Qgb3B0aW9uID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnb3B0aW9uJyk7CiAgICAgICAgICAgICAgICAgICAgb3B0aW9uLnNldEF0dHJpYnV0ZSgndmFsdWUnLCBwcm9ncmFtSWQpOwogICAgICAgICAgICAgICAgICAgIG9wdGlvbi5pbm5lclRleHQgPSAnLSc7CiAgICAgICAgICAgICAgICAgICAgZGF0YWxpc3QuYXBwZW5kQ2hpbGQob3B0aW9uKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSk7CiAgICAgICAgfQogICAgICAgIGNvbnRhaW5lci5hcHBlbmRDaGlsZChkYXRhbGlzdCk7CiAgICAgICAgcmV0dXJuIFtjb250YWluZXIsIGlucHV0LCBkYXRhbGlzdF07CiAgICB9Cn0KZnVuY3Rpb24gZ2V0VmFsdWVGcm9tUHJvdmlkZXJGaWxlKGZpbGUsIGZpbGVUeXBlLCBrZXkpIHsKICAgIGlmIChmaWxlID09ICJ4VGVWZSBEdW1teSIpIHsKICAgICAgICByZXR1cm4gZmlsZTsKICAgIH0KICAgIGxldCBmaWxlSUQ7CiAgICBsZXQgaW5kaWNhdG9yID0gZmlsZS5jaGFyQXQoMCk7CiAgICBzd2l0Y2ggKGluZGljYXRvcikgewogICAgICAgIGNhc2UgIk0iOgogICAgICAgICAgICBmaWxlVHlwZSA9ICJtM3UiOwogICAgICAgICAgICBmaWxlSUQgPSBmaWxlOwogICAgICAgICAgICBicmVhazsKICAgICAgICBjYXNlICJIIjoKICAgICAgICAgICAgZmlsZVR5cGUgPSAiaGRociI7CiAgICAgICAgICAgIGZpbGVJRCA9IGZpbGU7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgIGNhc2UgIlgiOgogICAgICAgICAgICBmaWxlVHlwZSA9ICJ4bWx0diI7CiAgICAgICAgICAgIGZpbGVJRCA9IGZpbGUuc3Vic3RyaW5nKDAsIGZpbGUubGFzdEluZGV4T2YoJy4nKSk7CiAgICAgICAgICAgIGJyZWFrOwogICAgfQogICAgaWYgKFNFUlZFUlsic2V0dGluZ3MiXVsiZmlsZXMiXVtmaWxlVHlwZV0uaGFzT3duUHJvcGVydHkoZmlsZUlEKSA9PSB0cnVlKSB7CiAgICAgICAgdmFyIGRhdGEgPSBTRVJWRVJbInNldHRpbmdzIl1bImZpbGVzIl1bZmlsZVR5cGVdW2ZpbGVJRF07CiAgICAgICAgcmV0dXJuIGRhdGFba2V5XTsKICAgIH0KICAgIHJldHVybjsKfQpmdW5jdGlvbiBzZXRYbWx0dkNoYW5uZWwoZXBnTWFwSWQsIHhtbFR2RmlsZVNlbGVjdCkgewogICAgY29uc3QgeG1sVHYgPSBuZXcgWE1MVFZGaWxlKCk7CiAgICBjb25zdCBuZXdYbWxUdkZpbGUgPSB4bWxUdkZpbGVTZWxlY3QudmFsdWU7CiAgICAvLyBSZW1vdmUgb2xkIFhNTFRWIElEIHNlbGVjdGlvbiBib3gKICAgIGNvbnN0IHhtbFR2SWRQaWNrZXJQYXJlbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgneG1sdHYtaWQtcGlja2VyLWNvbnRhaW5lcicpLnBhcmVudEVsZW1lbnQ7CiAgICB4bWxUdklkUGlja2VyUGFyZW50LmlubmVySFRNTCA9ICcnOwogICAgLy8gQ3JlYXRlIG5ldyBYTUxUViBJRCBzZWxlY3Rpb24gYm94CiAgICBjb25zdCB0dmdJZCA9IFNFUlZFUlsneGVwZyddWydlcGdNYXBwaW5nJ11bZXBnTWFwSWRdWyd0dmctaWQnXTsKICAgIGNvbnN0IFt4bWxUdklkQ29udGFpbmVyLCB4bWxUdklkSW5wdXQsIHhtbFR2SWREYXRhbGlzdF0gPSB4bWxUdi5uZXdYbWxUdklkUGlja2VyKG5ld1htbFR2RmlsZSwgdHZnSWQpOwogICAgeG1sVHZJZENvbnRhaW5lci5zZXRBdHRyaWJ1dGUoJ2lkJywgJ3htbHR2LWlkLXBpY2tlci1jb250YWluZXInKTsKICAgIHhtbFR2SWRJbnB1dC5zZXRBdHRyaWJ1dGUoJ2xpc3QnLCAneG1sdHYtaWQtcGlja2VyLWRhdGFsaXN0Jyk7CiAgICB4bWxUdklkSW5wdXQuc2V0QXR0cmlidXRlKCduYW1lJywgJ3gtbWFwcGluZycpOyAvLyBTaG91bGQgc3RheSB4LW1hcHBpbmcgYXMgaXQgd2lsbCBiZSB1c2VkIGluIGRvbmVQb3B1cERhdGEgdG8gbWFrZSBhIHNlcnZlciByZXF1ZXN0CiAgICB4bWxUdklkSW5wdXQuc2V0QXR0cmlidXRlKCdpZCcsICd4bWx0di1pZC1waWNrZXItaW5wdXQnKTsKICAgIHhtbFR2SWRJbnB1dC5zZXRBdHRyaWJ1dGUoJ29uY2hhbmdlJywgYGphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnOyBjaGVja1htbHR2Q2hhbm5lbCgnJHtlcGdNYXBJZH0nLCB0aGlzLnZhbHVlLCAnJHtuZXdYbWxUdkZpbGV9Jyk7YCk7CiAgICB4bWxUdklkSW5wdXQuY2xhc3NMaXN0LmFkZCgnY2hhbmdlZCcpOwogICAgeG1sVHZJZERhdGFsaXN0LnNldEF0dHJpYnV0ZSgnaWQnLCAneG1sdHYtaWQtcGlja2VyLWRhdGFsaXN0Jyk7CiAgICAvLyBBZGQgbmV3IFhNTFRWIElEIHNlbGVjdGlvbiBib3ggdG8gaXQncyBwYXJlbnQKICAgIHhtbFR2SWRQaWNrZXJQYXJlbnQuYXBwZW5kQ2hpbGQoeG1sVHZJZENvbnRhaW5lcik7CiAgICBjaGVja1htbHR2Q2hhbm5lbChlcGdNYXBJZCwgeG1sVHZJZElucHV0LnZhbHVlLCBuZXdYbWxUdkZpbGUpOwp9CmZ1bmN0aW9uIGNoZWNrWG1sdHZDaGFubmVsKGVwZ01hcElkLCBuZXdYbWxUdklkLCB4bWxUdkZpbGUpIHsKICAgIGNvbnN0IGNoYW5uZWxBY3RpdmVDYiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdhY3RpdmUnKTsKICAgIGNvbnN0IGNoYW5uZWxBY3RpdmUgPSBuZXdYbWxUdklkICE9ICctJzsKICAgIGNoYW5uZWxBY3RpdmVDYi5jaGVja2VkID0gY2hhbm5lbEFjdGl2ZTsKICAgIGNoYW5uZWxBY3RpdmVDYi5jbGFzc05hbWUgPSAnY2hhbmdlZCc7CiAgICBpZiAoeG1sVHZGaWxlICE9ICd4VGVWZSBEdW1teScgJiYgY2hhbm5lbEFjdGl2ZSA9PSB0cnVlKSB7CiAgICAgICAgY2hhbmdlQ2hhbm5lbExvZ28oZXBnTWFwSWQpOwogICAgICAgIHJldHVybjsKICAgIH0KICAgIGlmICh4bWxUdkZpbGUgPT0gJ3hUZVZlIER1bW15JykgewogICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd1cGRhdGUtaWNvbicpLmNoZWNrZWQgPSBmYWxzZTsKICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndXBkYXRlLWljb24nKS5jbGFzc05hbWUgPSAnY2hhbmdlZCc7CiAgICB9Cn0KZnVuY3Rpb24gY2hhbmdlQ2hhbm5lbExvZ28oZXBnTWFwSWQpIHsKICAgIGNvbnN0IGNoYW5uZWwgPSBTRVJWRVJbJ3hlcGcnXVsnZXBnTWFwcGluZyddW2VwZ01hcElkXTsKICAgIGNvbnN0IHhtbFR2RmlsZVNlbGVjdCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdwb3B1cC14bWx0dicpOwogICAgY29uc3QgeG1sVHZGaWxlID0geG1sVHZGaWxlU2VsZWN0Lm9wdGlvbnNbeG1sVHZGaWxlU2VsZWN0LnNlbGVjdGVkSW5kZXhdLnZhbHVlOwogICAgY29uc3QgeG1sVHZJZElucHV0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3htbHR2LWlkLXBpY2tlci1pbnB1dCcpOwogICAgY29uc3QgbmV3WG1sVHZJZCA9IHhtbFR2SWRJbnB1dC52YWx1ZTsKICAgIGNvbnN0IHVwZGF0ZUxvZ28gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndXBkYXRlLWljb24nKS5jaGVja2VkOwogICAgbGV0IGxvZ287CiAgICBpZiAodXBkYXRlTG9nbyA9PSB0cnVlICYmIHhtbFR2RmlsZSAhPSAneFRlVmUgRHVtbXknKSB7CiAgICAgICAgaWYgKFNFUlZFUlsneGVwZyddWyd4bWx0dk1hcCddW3htbFR2RmlsZV0uaGFzT3duUHJvcGVydHkobmV3WG1sVHZJZCkpIHsKICAgICAgICAgICAgbG9nbyA9IFNFUlZFUlsneGVwZyddWyd4bWx0dk1hcCddW3htbFR2RmlsZV1bbmV3WG1sVHZJZF1bJ2ljb24nXTsKICAgICAgICB9CiAgICAgICAgZWxzZSB7CiAgICAgICAgICAgIGxvZ28gPSBjaGFubmVsWyd0dmctbG9nbyddOwogICAgICAgIH0KICAgICAgICB2YXIgbG9nb0lucHV0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NoYW5uZWwtaWNvbicpOwogICAgICAgIGxvZ29JbnB1dC52YWx1ZSA9IGxvZ287CiAgICAgICAgaWYgKEJVTEtfRURJVCA9PSBmYWxzZSkgewogICAgICAgICAgICBsb2dvSW5wdXQuY2xhc3NOYW1lID0gJ2NoYW5nZWQnOwogICAgICAgIH0KICAgIH0KfQpmdW5jdGlvbiBzYXZlUG9wdXBEYXRhKGRhdGFUeXBlLCBpZCwgcmVtb3ZlLCBvcHRpb24pIHsKICAgIGlmIChkYXRhVHlwZSA9PSAibWFwcGluZyIpIHsKICAgICAgICBsZXQgZGF0YSA9IHt9OwogICAgICAgIGxldCBjbWQgPSAic2F2ZUVwZ01hcHBpbmciOwogICAgICAgIGRhdGFbImVwZ01hcHBpbmciXSA9IFNFUlZFUlsieGVwZyJdWyJlcGdNYXBwaW5nIl07CiAgICAgICAgbGV0IHNlcnZlciA9IG5ldyBTZXJ2ZXIoY21kKTsKICAgICAgICBzZXJ2ZXIucmVxdWVzdChkYXRhKTsKICAgICAgICBkZWxldGUgVU5ET1siZXBnTWFwcGluZyJdOwogICAgICAgIHJldHVybjsKICAgIH0KICAgIGxldCBkaXYgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicG9wdXAtY3VzdG9tIik7CiAgICBsZXQgaW5wdXRzID0gZGl2LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJUQUJMRSIpWzBdLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJJTlBVVCIpOwogICAgbGV0IHNlbGVjdHMgPSBkaXYuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlRBQkxFIilbMF0uZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlNFTEVDVCIpOwogICAgbGV0IGlucHV0ID0ge307CiAgICBsZXQgY29uZmlybU1zZzsKICAgIGZvciAobGV0IGkgPSAwOyBpIDwgc2VsZWN0cy5sZW5ndGg7IGkrKykgewogICAgICAgIHZhciBuYW1lOwogICAgICAgIG5hbWUgPSBzZWxlY3RzW2ldLm5hbWU7CiAgICAgICAgdmFyIHZhbHVlID0gc2VsZWN0c1tpXS52YWx1ZTsKICAgICAgICBzd2l0Y2ggKG5hbWUpIHsKICAgICAgICAgICAgY2FzZSAidHVuZXIiOgogICAgICAgICAgICAgICAgaW5wdXRbbmFtZV0gPSBwYXJzZUludCh2YWx1ZSk7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgICAgIGlucHV0W25hbWVdID0gdmFsdWU7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICB9CiAgICB9CiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGlucHV0cy5sZW5ndGg7IGkrKykgewogICAgICAgIHN3aXRjaCAoaW5wdXRzW2ldLnR5cGUpIHsKICAgICAgICAgICAgY2FzZSAiY2hlY2tib3giOgogICAgICAgICAgICAgICAgbmFtZSA9IGlucHV0c1tpXS5uYW1lOwogICAgICAgICAgICAgICAgaW5wdXRbbmFtZV0gPSBpbnB1dHNbaV0uY2hlY2tlZDsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJ0ZXh0IjoKICAgICAgICAgICAgY2FzZSAiaGlkZGVuIjoKICAgICAgICAgICAgY2FzZSAicGFzc3dvcmQiOgogICAgICAgICAgICAgICAgbmFtZSA9IGlucHV0c1tpXS5uYW1lOwogICAgICAgICAgICAgICAgc3dpdGNoIChuYW1lKSB7CiAgICAgICAgICAgICAgICAgICAgY2FzZSAidHVuZXIiOgogICAgICAgICAgICAgICAgICAgICAgICBpbnB1dFtuYW1lXSA9IHBhcnNlSW50KGlucHV0c1tpXS52YWx1ZSk7CiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICAgICAgICAgICAgIGlucHV0W25hbWVdID0gaW5wdXRzW2ldLnZhbHVlOwogICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgIH0KICAgIH0KICAgIGxldCBkYXRhID0ge307CiAgICBsZXQgY21kOwogICAgaWYgKHJlbW92ZSA9PSB0cnVlKSB7CiAgICAgICAgaW5wdXRbImRlbGV0ZSJdID0gdHJ1ZTsKICAgIH0KICAgIHN3aXRjaCAoZGF0YVR5cGUpIHsKICAgICAgICBjYXNlICJ1c2VycyI6CiAgICAgICAgICAgIGNvbmZpcm1Nc2cgPSAiRGVsZXRlIHRoaXMgdXNlcj8iOwogICAgICAgICAgICBpZiAoaWQgPT0gIi0iKSB7CiAgICAgICAgICAgICAgICBjbWQgPSAic2F2ZU5ld1VzZXIiOwogICAgICAgICAgICAgICAgZGF0YVsidXNlckRhdGEiXSA9IGlucHV0OwogICAgICAgICAgICB9CiAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgY21kID0gInNhdmVVc2VyRGF0YSI7CiAgICAgICAgICAgICAgICBsZXQgZCA9IHt9OwogICAgICAgICAgICAgICAgZFtpZF0gPSBpbnB1dDsKICAgICAgICAgICAgICAgIGRhdGFbInVzZXJEYXRhIl0gPSBkOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgIGNhc2UgIm0zdSI6CiAgICAgICAgICAgIGNvbmZpcm1Nc2cgPSAiRGVsZXRlIHRoaXMgcGxheWxpc3Q/IjsKICAgICAgICAgICAgc3dpdGNoIChvcHRpb24pIHsKICAgICAgICAgICAgICAgIC8vIFBvcHVwOiBTYXZlCiAgICAgICAgICAgICAgICBjYXNlIDA6CiAgICAgICAgICAgICAgICAgICAgY21kID0gInNhdmVGaWxlc00zVSI7CiAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAvLyBQb3B1cDogVXBkYXRlCiAgICAgICAgICAgICAgICBjYXNlIDE6CiAgICAgICAgICAgICAgICAgICAgY21kID0gInVwZGF0ZUZpbGVNM1UiOwogICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGRhdGFbImZpbGVzIl0gPSB7fTsKICAgICAgICAgICAgZGF0YVsiZmlsZXMiXVtkYXRhVHlwZV0gPSB7fTsKICAgICAgICAgICAgZGF0YVsiZmlsZXMiXVtkYXRhVHlwZV1baWRdID0gaW5wdXQ7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgIGNhc2UgImhkaHIiOgogICAgICAgICAgICBjb25maXJtTXNnID0gIkRlbGV0ZSB0aGlzIEhESG9tZVJ1biB0dW5lcj8iOwogICAgICAgICAgICBzd2l0Y2ggKG9wdGlvbikgewogICAgICAgICAgICAgICAgLy8gUG9wdXA6IFNhdmUKICAgICAgICAgICAgICAgIGNhc2UgMDoKICAgICAgICAgICAgICAgICAgICBjbWQgPSAic2F2ZUZpbGVzSERIUiI7CiAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAvLyBQb3B1cDogVXBkYXRlCiAgICAgICAgICAgICAgICBjYXNlIDE6CiAgICAgICAgICAgICAgICAgICAgY21kID0gInVwZGF0ZUZpbGVIREhSIjsKICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgfQogICAgICAgICAgICBkYXRhWyJmaWxlcyJdID0ge307CiAgICAgICAgICAgIGRhdGFbImZpbGVzIl1bZGF0YVR5cGVdID0ge307CiAgICAgICAgICAgIGRhdGFbImZpbGVzIl1bZGF0YVR5cGVdW2lkXSA9IGlucHV0OwogICAgICAgICAgICBicmVhazsKICAgICAgICBjYXNlICJ4bWx0diI6CiAgICAgICAgICAgIGNvbmZpcm1Nc2cgPSAiRGVsZXRlIHRoaXMgWE1MVFYgZmlsZT8iOwogICAgICAgICAgICBzd2l0Y2ggKG9wdGlvbikgewogICAgICAgICAgICAgICAgLy8gUG9wdXA6IFNhdmUKICAgICAgICAgICAgICAgIGNhc2UgMDoKICAgICAgICAgICAgICAgICAgICBjbWQgPSAic2F2ZUZpbGVzWE1MVFYiOwogICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgLy8gUG9wdXA6IFVwZGF0ZQogICAgICAgICAgICAgICAgY2FzZSAxOgogICAgICAgICAgICAgICAgICAgIGNtZCA9ICJ1cGRhdGVGaWxlWE1MVFYiOwogICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGRhdGFbImZpbGVzIl0gPSB7fTsKICAgICAgICAgICAgZGF0YVsiZmlsZXMiXVtkYXRhVHlwZV0gPSB7fTsKICAgICAgICAgICAgZGF0YVsiZmlsZXMiXVtkYXRhVHlwZV1baWRdID0gaW5wdXQ7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgIGNhc2UgImZpbHRlciI6CiAgICAgICAgICAgIGNvbmZpcm1Nc2cgPSAiRGVsZXRlIHRoaXMgZmlsdGVyPyI7CiAgICAgICAgICAgIGNtZCA9ICJzYXZlRmlsdGVyIjsKICAgICAgICAgICAgZGF0YVsiZmlsdGVyIl0gPSB7fTsKICAgICAgICAgICAgZGF0YVsiZmlsdGVyIl1baWRdID0gaW5wdXQ7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgIHJldHVybjsKICAgIH0KICAgIGlmIChyZW1vdmUgPT0gdHJ1ZSkgewogICAgICAgIGlmICghY29uZmlybShjb25maXJtTXNnKSkgewogICAgICAgICAgICBzaG93RWxlbWVudCgicG9wdXAiLCBmYWxzZSk7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICB9CiAgICBsZXQgc2VydmVyID0gbmV3IFNlcnZlcihjbWQpOwogICAgc2VydmVyLnJlcXVlc3QoZGF0YSk7Cn0KZnVuY3Rpb24gZG9uZVBvcHVwRGF0YShkYXRhVHlwZSwgaWRzU3RyKSB7CiAgICBsZXQgaWRzID0gaWRzU3RyLnNwbGl0KCcsJyk7CiAgICBsZXQgZGl2ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInBvcHVwLWN1c3RvbSIpOwogICAgbGV0IGlucHV0cyA9IGRpdi5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCJjaGFuZ2VkIik7CiAgICBpZHMuZm9yRWFjaChpZCA9PiB7CiAgICAgICAgbGV0IGlucHV0OwogICAgICAgIGlucHV0ID0gU0VSVkVSWyJ4ZXBnIl1bImVwZ01hcHBpbmciXVtpZF07CiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBpbnB1dHMubGVuZ3RoOyBpKyspIHsKICAgICAgICAgICAgbGV0IG5hbWU7CiAgICAgICAgICAgIGxldCB2YWx1ZTsKICAgICAgICAgICAgc3dpdGNoIChpbnB1dHNbaV0udGFnTmFtZSkgewogICAgICAgICAgICAgICAgY2FzZSAiSU5QVVQiOgogICAgICAgICAgICAgICAgICAgIHN3aXRjaCAoaW5wdXRzW2ldLnR5cGUpIHsKICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAiY2hlY2tib3giOgogICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZSA9IGlucHV0c1tpXS5uYW1lOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSBpbnB1dHNbaV0uY2hlY2tlZDsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlucHV0W25hbWVdID0gdmFsdWU7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAidGV4dCI6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lID0gaW5wdXRzW2ldLm5hbWU7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IGlucHV0c1tpXS52YWx1ZTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlucHV0W25hbWVdID0gdmFsdWU7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICBjYXNlICJTRUxFQ1QiOgogICAgICAgICAgICAgICAgICAgIG5hbWUgPSBpbnB1dHNbaV0ubmFtZTsKICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IGlucHV0c1tpXS52YWx1ZTsKICAgICAgICAgICAgICAgICAgICBpbnB1dFtuYW1lXSA9IHZhbHVlOwogICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICB9CiAgICAgICAgICAgIHN3aXRjaCAobmFtZSkgewogICAgICAgICAgICAgICAgY2FzZSAidHZnLWxvZ28iOgogICAgICAgICAgICAgICAgICAgIC8vKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5jaGlsZE5vZGVzWzJdLmZpcnN0Q2hpbGQgYXMgSFRNTEVsZW1lbnQpLnNldEF0dHJpYnV0ZSgic3JjIiwgdmFsdWUpCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICBjYXNlICJ4LW5hbWUiOgogICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5jaGlsZE5vZGVzWzNdLmZpcnN0Q2hpbGQuaW5uZXJIVE1MID0gdmFsdWU7CiAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICBjYXNlICJ4LWNhdGVnb3J5IjoKICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkuY2hpbGROb2Rlc1szXS5maXJzdENoaWxkLmNsYXNzTmFtZSA9IHZhbHVlOwogICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgY2FzZSAidXBkYXRlLWNoYW5uZWwtbmFtZS1yZWdleCI6CiAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpLmNoaWxkTm9kZXNbNF0uZmlyc3RDaGlsZC5pbm5lckhUTUwgPSB2YWx1ZTsKICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgIGNhc2UgIngtZ3JvdXAtdGl0bGUiOgogICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5jaGlsZE5vZGVzWzZdLmZpcnN0Q2hpbGQuaW5uZXJIVE1MID0gdmFsdWU7CiAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICBjYXNlICJ4LXhtbHR2LWZpbGUiOgogICAgICAgICAgICAgICAgICAgIGlmICh2YWx1ZSAhPSAieFRlVmUgRHVtbXkiICYmIHZhbHVlICE9ICItIikgewogICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IGdldFZhbHVlRnJvbVByb3ZpZGVyRmlsZSh2YWx1ZSwgInhtbHR2IiwgIm5hbWUiKTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgaWYgKHZhbHVlID09ICItIikgewogICAgICAgICAgICAgICAgICAgICAgICBpbnB1dFsieC1hY3RpdmUiXSA9IGZhbHNlOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkuY2hpbGROb2Rlc1s3XS5maXJzdENoaWxkLmlubmVySFRNTCA9IHZhbHVlOwogICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgY2FzZSAieC1tYXBwaW5nIjoKICAgICAgICAgICAgICAgICAgICBpZiAodmFsdWUgPT0gIi0iKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGlucHV0WyJ4LWFjdGl2ZSJdID0gZmFsc2U7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5jaGlsZE5vZGVzWzhdLmZpcnN0Q2hpbGQuaW5uZXJIVE1MID0gdmFsdWU7CiAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICBjYXNlICJ4LXRpbWVzaGlmdCI6CiAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpLmNoaWxkTm9kZXNbOV0uZmlyc3RDaGlsZC5pbm5lckhUTUwgPSB2YWx1ZTsKICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgIH0KICAgICAgICAgICAgY3JlYXRlU2VhcmNoT2JqKCk7CiAgICAgICAgICAgIHNlYXJjaEluTWFwcGluZygpOwogICAgICAgIH0KICAgICAgICBpZiAoaW5wdXRbIngtYWN0aXZlIl0gPT0gZmFsc2UpIHsKICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpLmNsYXNzTmFtZSA9ICJub3RBY3RpdmVFUEciOwogICAgICAgIH0KICAgICAgICBlbHNlIHsKICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpLmNsYXNzTmFtZSA9ICJhY3RpdmVFUEciOwogICAgICAgIH0KICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkuY2hpbGROb2Rlc1syXS5maXJzdENoaWxkLnNldEF0dHJpYnV0ZSgic3JjIiwgaW5wdXRbInR2Zy1sb2dvIl0pOwogICAgfSk7CiAgICBzaG93RWxlbWVudCgicG9wdXAiLCBmYWxzZSk7CiAgICByZXR1cm47Cn0KZnVuY3Rpb24gc2hvd1ByZXZpZXcoZWxlbWVudCkgewogICAgbGV0IGRpdiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJteVN0cmVhbXNCb3giKTsKICAgIHN3aXRjaCAoZWxlbWVudCkgewogICAgICAgIGNhc2UgZmFsc2U6CiAgICAgICAgICAgIGRpdi5jbGFzc05hbWUgPSAibm90VmlzaWJsZSI7CiAgICAgICAgICAgIHJldHVybjsKICAgIH0KICAgIGxldCBzdHJlYW1zID0gWyJhY3RpdmVTdHJlYW1zIiwgImluYWN0aXZlU3RyZWFtcyJdOwogICAgc3RyZWFtcy5mb3JFYWNoKHByZXZpZXcgPT4gewogICAgICAgIGxldCB0YWJsZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHByZXZpZXcpOwogICAgICAgIHRhYmxlLmlubmVySFRNTCA9ICIiOwogICAgICAgIGxldCBvYmogPSBTRVJWRVJbImRhdGEiXVsiU3RyZWFtUHJldmlld1VJIl1bcHJldmlld107CiAgICAgICAgb2JqLmZvckVhY2goY2hhbm5lbCA9PiB7CiAgICAgICAgICAgIGxldCB0ciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlRSIik7CiAgICAgICAgICAgIGxldCB0ZEtleSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7CiAgICAgICAgICAgIGxldCB0ZFZhbCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7CiAgICAgICAgICAgIHRkS2V5LmNsYXNzTmFtZSA9ICJ0ZEtleSI7CiAgICAgICAgICAgIHRkVmFsLmNsYXNzTmFtZSA9ICJ0ZFZhbCI7CiAgICAgICAgICAgIHN3aXRjaCAocHJldmlldykgewogICAgICAgICAgICAgICAgY2FzZSAiYWN0aXZlU3RyZWFtcyI6CiAgICAgICAgICAgICAgICAgICAgdGRLZXkuaW5uZXJUZXh0ID0gIkNoYW5uZWw6ICgrKSI7CiAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICBjYXNlICJpbmFjdGl2ZVN0cmVhbXMiOgogICAgICAgICAgICAgICAgICAgIHRkS2V5LmlubmVyVGV4dCA9ICJDaGFubmVsOiAoLSkiOwogICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICB9CiAgICAgICAgICAgIHRkVmFsLmlubmVyVGV4dCA9IGNoYW5uZWw7CiAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKHRkS2V5KTsKICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQodGRWYWwpOwogICAgICAgICAgICB0YWJsZS5hcHBlbmRDaGlsZCh0cik7CiAgICAgICAgfSk7CiAgICB9KTsKICAgIHNob3dFbGVtZW50KCJsb2FkaW5nIiwgZmFsc2UpOwogICAgZGl2LmNsYXNzTmFtZSA9ICJ2aXNpYmxlIjsKICAgIHJldHVybjsKfQo=" webUI["html/js/network_ts.js"] = "Y2xhc3MgU2VydmVyIHsKICAgIGNvbnN0cnVjdG9yKGNtZCkgewogICAgICAgIHRoaXMuY21kID0gY21kOwogICAgfQogICAgcmVxdWVzdChkYXRhKSB7CiAgICAgICAgaWYgKFNFUlZFUl9DT05ORUNUSU9OID09IHRydWUpIHsKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KICAgICAgICBTRVJWRVJfQ09OTkVDVElPTiA9IHRydWU7CiAgICAgICAgaWYgKHRoaXMuY21kICE9ICJ1cGRhdGVMb2ciKSB7CiAgICAgICAgICAgIHNob3dFbGVtZW50KCJsb2FkaW5nIiwgdHJ1ZSk7CiAgICAgICAgICAgIFVORE8gPSBuZXcgT2JqZWN0KCk7CiAgICAgICAgfQogICAgICAgIHN3aXRjaCAod2luZG93LmxvY2F0aW9uLnByb3RvY29sKSB7CiAgICAgICAgICAgIGNhc2UgImh0dHA6IjoKICAgICAgICAgICAgICAgIHRoaXMucHJvdG9jb2wgPSAid3M6Ly8iOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgImh0dHBzOiI6CiAgICAgICAgICAgICAgICB0aGlzLnByb3RvY29sID0gIndzczovLyI7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICB9CiAgICAgICAgdmFyIHVybCA9IHRoaXMucHJvdG9jb2wgKyB3aW5kb3cubG9jYXRpb24uaG9zdG5hbWUgKyAiOiIgKyB3aW5kb3cubG9jYXRpb24ucG9ydCArICIvZGF0YS8iICsgIj9Ub2tlbj0iICsgZ2V0Q29va2llKCJUb2tlbiIpOwogICAgICAgIGRhdGFbImNtZCJdID0gdGhpcy5jbWQ7CiAgICAgICAgdmFyIHdzID0gbmV3IFdlYlNvY2tldCh1cmwpOwogICAgICAgIHdzLm9ub3BlbiA9IGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgV1NfQVZBSUxBQkxFID0gdHJ1ZTsKICAgICAgICAgICAgdGhpcy5zZW5kKEpTT04uc3RyaW5naWZ5KGRhdGEpKTsKICAgICAgICB9OwogICAgICAgIHdzLm9uZXJyb3IgPSBmdW5jdGlvbiAod3NFcnJFdnQpIHsKICAgICAgICAgICAgY29uc29sZS5sb2coIk5vIHdlYnNvY2tldCBjb25uZWN0aW9uIHRvIHhUZVZlIGNvdWxkIGJlIGVzdGFibGlzaGVkLiBDaGVjayB5b3VyIG5ldHdvcmsgY29uZmlndXJhdGlvbi4iKTsKICAgICAgICAgICAgU0VSVkVSX0NPTk5FQ1RJT04gPSBmYWxzZTsKICAgICAgICAgICAgaWYgKFdTX0FWQUlMQUJMRSA9PSBmYWxzZSkgewogICAgICAgICAgICAgICAgYWxlcnQoIk5vIHdlYnNvY2tldCBjb25uZWN0aW9uIHRvIHhUZVZlIGNvdWxkIGJlIGVzdGFibGlzaGVkLiBDaGVjayB5b3VyIG5ldHdvcmsgY29uZmlndXJhdGlvbi4iKTsKICAgICAgICAgICAgfQogICAgICAgIH07CiAgICAgICAgd3Mub25tZXNzYWdlID0gZnVuY3Rpb24gKHdzTWVzc2FnZUV2dCkgewogICAgICAgICAgICBTRVJWRVJfQ09OTkVDVElPTiA9IGZhbHNlOwogICAgICAgICAgICBzaG93RWxlbWVudCgibG9hZGluZyIsIGZhbHNlKTsKICAgICAgICAgICAgY29uc3QgcmVzcG9uc2UgPSBKU09OLnBhcnNlKHdzTWVzc2FnZUV2dC5kYXRhKTsKICAgICAgICAgICAgaWYgKHJlc3BvbnNlLmhhc093blByb3BlcnR5KCJ0b2tlbiIpKSB7CiAgICAgICAgICAgICAgICBkb2N1bWVudC5jb29raWUgPSAiVG9rZW49IiArIHJlc3BvbnNlWyJ0b2tlbiJdOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGlmIChyZXNwb25zZVsic3RhdHVzIl0gPT0gZmFsc2UpIHsKICAgICAgICAgICAgICAgIGFsZXJ0KHJlc3BvbnNlWyJlcnIiXSk7CiAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgIH0KICAgICAgICAgICAgaWYgKHJlc3BvbnNlLmhhc093blByb3BlcnR5KCdvcGVuTGluaycpKSB7CiAgICAgICAgICAgICAgICB3aW5kb3cubG9jYXRpb24gPSByZXNwb25zZVsnb3BlbkxpbmsnXTsKICAgICAgICAgICAgfQogICAgICAgICAgICBpZiAocmVzcG9uc2UuaGFzT3duUHJvcGVydHkoInJlbG9hZCIpKSB7CiAgICAgICAgICAgICAgICB3aW5kb3cubG9jYXRpb24ucmVsb2FkKCk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgaWYgKHJlc3BvbnNlLmhhc093blByb3BlcnR5KCJhbGVydCIpKSB7CiAgICAgICAgICAgICAgICBhbGVydChyZXNwb25zZVsiYWxlcnQiXSk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgaWYgKHJlc3BvbnNlLmhhc093blByb3BlcnR5KCJsb2dvVVJMIikpIHsKICAgICAgICAgICAgICAgIHZhciBkaXYgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY2hhbm5lbC1pY29uIik7CiAgICAgICAgICAgICAgICBkaXYudmFsdWUgPSByZXNwb25zZVsibG9nb1VSTCJdOwogICAgICAgICAgICAgICAgZGl2LmNsYXNzTmFtZSA9ICJjaGFuZ2VkIjsKICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgfQogICAgICAgICAgICBzd2l0Y2ggKGRhdGFbImNtZCJdKSB7CiAgICAgICAgICAgICAgICBjYXNlICJ1cGRhdGVMb2ciOgogICAgICAgICAgICAgICAgICAgIFNFUlZFUlsibG9nIl0gPSByZXNwb25zZVsibG9nIl07CiAgICAgICAgICAgICAgICAgICAgaWYgKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb250ZW50X2xvZyIpKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIHNob3dMb2dzKGZhbHNlKTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgICAgICAgICBTRVJWRVIgPSBuZXcgT2JqZWN0KCk7CiAgICAgICAgICAgICAgICAgICAgU0VSVkVSID0gcmVzcG9uc2U7CiAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgaWYgKHJlc3BvbnNlLmhhc093blByb3BlcnR5KCJvcGVuTWVudSIpKSB7CiAgICAgICAgICAgICAgICB2YXIgbWVudSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHJlc3BvbnNlWyJvcGVuTWVudSJdKTsKICAgICAgICAgICAgICAgIG1lbnUuY2xpY2soKTsKICAgICAgICAgICAgICAgIHNob3dFbGVtZW50KCJwb3B1cCIsIGZhbHNlKTsKICAgICAgICAgICAgfQogICAgICAgICAgICBpZiAocmVzcG9uc2UuaGFzT3duUHJvcGVydHkoInJlbG9hZCIpKSB7CiAgICAgICAgICAgICAgICBsb2NhdGlvbi5yZWxvYWQoKTsKICAgICAgICAgICAgfQogICAgICAgICAgICBpZiAocmVzcG9uc2UuaGFzT3duUHJvcGVydHkoIndpemFyZCIpKSB7CiAgICAgICAgICAgICAgICBjcmVhdGVMYXlvdXQoKTsKICAgICAgICAgICAgICAgIGNvbmZpZ3VyYXRpb25XaXphcmRbcmVzcG9uc2VbIndpemFyZCJdXS5jcmVhdGVXaXphcmQoKTsKICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgfQogICAgICAgICAgICBjcmVhdGVMYXlvdXQoKTsKICAgICAgICB9OwogICAgfQp9CmZ1bmN0aW9uIGdldENvb2tpZShuYW1lKSB7CiAgICB2YXIgdmFsdWUgPSAiOyAiICsgZG9jdW1lbnQuY29va2llOwogICAgdmFyIHBhcnRzID0gdmFsdWUuc3BsaXQoIjsgIiArIG5hbWUgKyAiPSIpOwogICAgaWYgKHBhcnRzLmxlbmd0aCA9PSAyKSB7CiAgICAgICAgcmV0dXJuIHBhcnRzLnBvcCgpLnNwbGl0KCI7Iikuc2hpZnQoKTsKICAgIH0KfQo=" webUI["html/js/settings_ts.js"] = "Y2xhc3MgU2V0dGluZ3NDYXRlZ29yeSB7CiAgICBjb25zdHJ1Y3RvcigpIHsKICAgICAgICB0aGlzLkRvY3VtZW50SUQgPSAiY29udGVudF9zZXR0aW5ncyI7CiAgICB9CiAgICBjcmVhdGVDYXRlZ29yeUhlYWRsaW5lKHZhbHVlKSB7CiAgICAgICAgdmFyIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJINCIpOwogICAgICAgIGVsZW1lbnQuaW5uZXJIVE1MID0gdmFsdWU7CiAgICAgICAgcmV0dXJuIGVsZW1lbnQ7CiAgICB9CiAgICBjcmVhdGVIUigpIHsKICAgICAgICB2YXIgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIkhSIik7CiAgICAgICAgcmV0dXJuIGVsZW1lbnQ7CiAgICB9CiAgICBjcmVhdGVTZXR0aW5ncyhzZXR0aW5nc0tleSkgewogICAgICAgIHZhciBzZXR0aW5nID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVFIiKTsKICAgICAgICB2YXIgY29udGVudCA9IG5ldyBQb3B1cENvbnRlbnQoKTsKICAgICAgICB2YXIgZGF0YSA9IFNFUlZFUlsic2V0dGluZ3MiXVtzZXR0aW5nc0tleV07CiAgICAgICAgc3dpdGNoIChzZXR0aW5nc0tleSkgewogICAgICAgICAgICAvLyBUZXh0IGlucHV0cwogICAgICAgICAgICBjYXNlICJ1cGRhdGUiOgogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7CiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLnVwZGF0ZS50aXRsZX19IiArICI6IjsKICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsKICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCAidXBkYXRlIiwgZGF0YS50b1N0cmluZygpKTsKICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3suc2V0dGluZ3MudXBkYXRlLnBsYWNlaG9sZGVyfX0iKTsKICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsKICAgICAgICAgICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQoaW5wdXQpOwogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOwogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJiYWNrdXAucGF0aCI6CiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsKICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MuYmFja3VwUGF0aC50aXRsZX19IiArICI6IjsKICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsKICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCAiYmFja3VwLnBhdGgiLCBkYXRhKTsKICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3suc2V0dGluZ3MuYmFja3VwUGF0aC5wbGFjZWhvbGRlcn19Iik7CiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7CiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsKICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsKICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAidGVtcC5wYXRoIjoKICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOwogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy50ZW1wUGF0aC50aXRsZX19IiArICI6IjsKICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsKICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCAidGVtcC5wYXRoIiwgZGF0YSk7CiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnNldHRpbmdzLnRtcFBhdGgucGxhY2Vob2xkZXJ9fSIpOwogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOwogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7CiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7CiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgInVzZXIuYWdlbnQiOgogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7CiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLnVzZXJBZ2VudC50aXRsZX19IiArICI6IjsKICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsKICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCAidXNlci5hZ2VudCIsIGRhdGEpOwogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5zZXR0aW5ncy51c2VyQWdlbnQucGxhY2Vob2xkZXJ9fSIpOwogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOwogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7CiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7CiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgImJ1ZmZlci50aW1lb3V0IjoKICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOwogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5idWZmZXJUaW1lb3V0LnRpdGxlfX0iICsgIjoiOwogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOwogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsICJidWZmZXIudGltZW91dCIsIGRhdGEpOwogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5zZXR0aW5ncy5idWZmZXJUaW1lb3V0LnBsYWNlaG9sZGVyfX0iKTsKICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsKICAgICAgICAgICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQoaW5wdXQpOwogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOwogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJmZm1wZWcucGF0aCI6CiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsKICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MuZmZtcGVnUGF0aC50aXRsZX19IiArICI6IjsKICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsKICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCAiZmZtcGVnLnBhdGgiLCBkYXRhKTsKICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3suc2V0dGluZ3MuZmZtcGVnUGF0aC5wbGFjZWhvbGRlcn19Iik7CiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7CiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsKICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsKICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAiZmZtcGVnLm9wdGlvbnMiOgogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7CiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmZmbXBlZ09wdGlvbnMudGl0bGV9fSIgKyAiOiI7CiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7CiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgImZmbXBlZy5vcHRpb25zIiwgZGF0YSk7CiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnNldHRpbmdzLmZmbXBlZ09wdGlvbnMucGxhY2Vob2xkZXJ9fSIpOwogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOwogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7CiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7CiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgInZsYy5wYXRoIjoKICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOwogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy52bGNQYXRoLnRpdGxlfX0iICsgIjoiOwogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOwogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsICJ2bGMucGF0aCIsIGRhdGEpOwogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5zZXR0aW5ncy52bGNQYXRoLnBsYWNlaG9sZGVyfX0iKTsKICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsKICAgICAgICAgICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQoaW5wdXQpOwogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOwogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJ2bGMub3B0aW9ucyI6CiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsKICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MudmxjT3B0aW9ucy50aXRsZX19IiArICI6IjsKICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsKICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCAidmxjLm9wdGlvbnMiLCBkYXRhKTsKICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3suc2V0dGluZ3MudmxjT3B0aW9ucy5wbGFjZWhvbGRlcn19Iik7CiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7CiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsKICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsKICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgLy8gQ2hlY2tib3hlcwogICAgICAgICAgICBjYXNlICJ0bHNNb2RlIjoKICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOwogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy50bHNNb2RlLnRpdGxlfX0iICsgIjoiOwogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOwogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChzZXR0aW5nc0tleSk7CiAgICAgICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YTsKICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsKICAgICAgICAgICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQoaW5wdXQpOwogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOwogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJkaXNhbGxvd1VSTER1cGxpY2F0ZXMiOgogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7CiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmRpc2FsbG93VVJMRHVwbGljYXRlcy50aXRsZX19IiArICI6IjsKICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsKICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goc2V0dGluZ3NLZXkpOwogICAgICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGE7CiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7CiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsKICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsKICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAiYXV0aGVudGljYXRpb24ud2ViIjoKICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOwogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5hdXRoZW50aWNhdGlvbldFQi50aXRsZX19IiArICI6IjsKICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsKICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goc2V0dGluZ3NLZXkpOwogICAgICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGE7CiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7CiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsKICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsKICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAiYXV0aGVudGljYXRpb24ucG1zIjoKICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOwogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5hdXRoZW50aWNhdGlvblBNUy50aXRsZX19IiArICI6IjsKICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsKICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goc2V0dGluZ3NLZXkpOwogICAgICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGE7CiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7CiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsKICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsKICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAiYXV0aGVudGljYXRpb24ubTN1IjoKICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOwogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5hdXRoZW50aWNhdGlvbk0zVS50aXRsZX19IiArICI6IjsKICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsKICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goc2V0dGluZ3NLZXkpOwogICAgICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGE7CiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7CiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsKICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsKICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAiYXV0aGVudGljYXRpb24ueG1sIjoKICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOwogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5hdXRoZW50aWNhdGlvblhNTC50aXRsZX19IiArICI6IjsKICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsKICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goc2V0dGluZ3NLZXkpOwogICAgICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGE7CiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7CiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsKICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsKICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAiYXV0aGVudGljYXRpb24uYXBpIjoKICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOwogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5hdXRoZW50aWNhdGlvbkFQSS50aXRsZX19IiArICI6IjsKICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsKICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goc2V0dGluZ3NLZXkpOwogICAgICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGE7CiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7CiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsKICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsKICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAiZmlsZXMudXBkYXRlIjoKICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOwogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5maWxlc1VwZGF0ZS50aXRsZX19IiArICI6IjsKICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsKICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goc2V0dGluZ3NLZXkpOwogICAgICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGE7CiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7CiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsKICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsKICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAiY2FjaGUuaW1hZ2VzIjoKICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOwogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5jYWNoZUltYWdlcy50aXRsZX19IiArICI6IjsKICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsKICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goc2V0dGluZ3NLZXkpOwogICAgICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGE7CiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7CiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsKICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsKICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAieGVwZy5yZXBsYWNlLm1pc3NpbmcuaW1hZ2VzIjoKICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOwogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5yZXBsYWNlRW1wdHlJbWFnZXMudGl0bGV9fSIgKyAiOiI7CiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7CiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KHNldHRpbmdzS2V5KTsKICAgICAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhOwogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOwogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7CiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7CiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgInN0b3JlQnVmZmVySW5SQU0iOgogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7CiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLnN0b3JlQnVmZmVySW5SQU0udGl0bGV9fSIgKyAiOiI7CiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7CiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KHNldHRpbmdzS2V5KTsKICAgICAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhOwogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOwogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7CiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7CiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgInh0ZXZlQXV0b1VwZGF0ZSI6CiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsKICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MueHRldmVBdXRvVXBkYXRlLnRpdGxlfX0iICsgIjoiOwogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOwogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChzZXR0aW5nc0tleSk7CiAgICAgICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YTsKICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsKICAgICAgICAgICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQoaW5wdXQpOwogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOwogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJjbGVhclhNTFRWQ2FjaGUiOgogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7CiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmNsZWFyWE1MVFZDYWNoZS50aXRsZX19IiArICI6IjsKICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsKICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goc2V0dGluZ3NLZXkpOwogICAgICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGE7CiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7CiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsKICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsKICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAiYXBpIjoKICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOwogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5hcGkudGl0bGV9fSIgKyAiOiI7CiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7CiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KHNldHRpbmdzS2V5KTsKICAgICAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhOwogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOwogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7CiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7CiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgImVuYWJsZU1hcHBlZENoYW5uZWxzIjoKICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOwogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5lbmFibGVNYXBwZWRDaGFubmVscy50aXRsZX19IiArICI6IjsKICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsKICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goc2V0dGluZ3NLZXkpOwogICAgICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGE7CiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7CiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsKICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsKICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgLy8gU2VsZWN0CiAgICAgICAgICAgIGNhc2UgImhvc3RJUCI6CiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsKICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MuaG9zdElQLnRpdGxlfX0iICsgIjoiOwogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOwogICAgICAgICAgICAgICAgdmFyIHRleHQgPSBTRVJWRVJbImlwQWRkcmVzc2VzVjRIb3N0Il07CiAgICAgICAgICAgICAgICB2YXIgdmFsdWVzID0gU0VSVkVSWyJpcEFkZHJlc3Nlc1Y0SG9zdCJdOwogICAgICAgICAgICAgICAgdmFyIHNlbGVjdCA9IGNvbnRlbnQuY3JlYXRlU2VsZWN0KHRleHQsIHZhbHVlcywgZGF0YSwgc2V0dGluZ3NLZXkpOwogICAgICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsKICAgICAgICAgICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQoc2VsZWN0KTsKICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsKICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAiaG9zdE5hbWUiOgogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7CiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmhvc3ROYW1lLnRpdGxlfX0iICsgIjoiOwogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOwogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsICJob3N0TmFtZSIsIGRhdGEpOwogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5zZXR0aW5ncy5ob3N0TmFtZS5wbGFjZWhvbGRlcn19Iik7CiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7CiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsKICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsKICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAidHVuZXIiOgogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7CiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLnR1bmVyLnRpdGxlfX0iICsgIjoiOwogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOwogICAgICAgICAgICAgICAgdmFyIHRleHQgPSBuZXcgQXJyYXkoKTsKICAgICAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBuZXcgQXJyYXkoKTsKICAgICAgICAgICAgICAgIGZvciAodmFyIGkgPSAxOyBpIDw9IDEwMDsgaSsrKSB7CiAgICAgICAgICAgICAgICAgICAgdGV4dC5wdXNoKGkpOwogICAgICAgICAgICAgICAgICAgIHZhbHVlcy5wdXNoKGkpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgdmFyIHNlbGVjdCA9IGNvbnRlbnQuY3JlYXRlU2VsZWN0KHRleHQsIHZhbHVlcywgZGF0YSwgc2V0dGluZ3NLZXkpOwogICAgICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsKICAgICAgICAgICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQoc2VsZWN0KTsKICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsKICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAiZXBnU291cmNlIjoKICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOwogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5lcGdTb3VyY2UudGl0bGV9fSIgKyAiOiI7CiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7CiAgICAgICAgICAgICAgICB2YXIgdGV4dCA9IFsiUE1TIiwgIlhFUEciXTsKICAgICAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBbIlBNUyIsICJYRVBHIl07CiAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCBkYXRhLCBzZXR0aW5nc0tleSk7CiAgICAgICAgICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOwogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChzZWxlY3QpOwogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOwogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJkZWZhdWx0TWlzc2luZ0VQRyI6CiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsKICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MuZGVmYXVsdE1pc3NpbmdFUEcudGl0bGV9fSIgKyAiOiI7CiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7CiAgICAgICAgICAgICAgICB2YXIgdGV4dCA9IFsKICAgICAgICAgICAgICAgICAgICAiLSIsICIzMCBNaW51dGVzICgzMF9NaW51dGVzKSIsICI2MCBNaW51dGVzICg2MF9NaW51dGVzKSIsICI5MCBNaW51dGVzICg5MF9NaW51dGVzKSIsCiAgICAgICAgICAgICAgICAgICAgIjEyMCBNaW51dGVzICgxMjBfTWludXRlcykiLCAiMTgwIE1pbnV0ZXMgKDE4MF9NaW51dGVzKSIsICIyNDAgTWludXRlcyAoMjQwX01pbnV0ZXMpIiwgIjM2MCBNaW51dGVzICgzNjBfTWludXRlcykiCiAgICAgICAgICAgICAgICBdOwogICAgICAgICAgICAgICAgdmFyIHZhbHVlcyA9IFsKICAgICAgICAgICAgICAgICAgICAiLSIsICIzMF9NaW51dGVzIiwgIjYwX01pbnV0ZXMiLCAiOTBfTWludXRlcyIsICIxMjBfTWludXRlcyIsICIxODBfTWludXRlcyIsICIyNDBfTWludXRlcyIsICIzNjBfTWludXRlcyIKICAgICAgICAgICAgICAgIF07CiAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCBkYXRhLCBzZXR0aW5nc0tleSk7CiAgICAgICAgICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOwogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChzZWxlY3QpOwogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOwogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJiYWNrdXAua2VlcCI6CiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsKICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MuYmFja3VwS2VlcC50aXRsZX19IiArICI6IjsKICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsKICAgICAgICAgICAgICAgIHZhciB0ZXh0ID0gWyI1IiwgIjEwIiwgIjIwIiwgIjMwIiwgIjQwIiwgIjUwIl07CiAgICAgICAgICAgICAgICB2YXIgdmFsdWVzID0gWyI1IiwgIjEwIiwgIjIwIiwgIjMwIiwgIjQwIiwgIjUwIl07CiAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCBkYXRhLCBzZXR0aW5nc0tleSk7CiAgICAgICAgICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOwogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChzZWxlY3QpOwogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOwogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJidWZmZXIuc2l6ZS5rYiI6CiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsKICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MuYnVmZmVyU2l6ZS50aXRsZX19IiArICI6IjsKICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsKICAgICAgICAgICAgICAgIHZhciB0ZXh0ID0gWyIwLjUgTUIiLCAiMSBNQiIsICIyIE1CIiwgIjMgTUIiLCAiNCBNQiIsICI1IE1CIiwgIjYgTUIiLCAiNyBNQiIsICI4IE1CIl07CiAgICAgICAgICAgICAgICB2YXIgdmFsdWVzID0gWyI1MTIiLCAiMTAyNCIsICIyMDQ4IiwgIjMwNzIiLCAiNDA5NiIsICI1MTIwIiwgIjYxNDQiLCAiNzE2OCIsICI4MTkyIl07CiAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCBkYXRhLCBzZXR0aW5nc0tleSk7CiAgICAgICAgICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOwogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChzZWxlY3QpOwogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOwogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJidWZmZXIiOgogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7CiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLnN0cmVhbUJ1ZmZlcmluZy50aXRsZX19IiArICI6IjsKICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsKICAgICAgICAgICAgICAgIHZhciB0ZXh0ID0gWyJ7ey5zZXR0aW5ncy5zdHJlYW1CdWZmZXJpbmcuaW5mb19mYWxzZX19IiwgInhUZVZlOiAoe3suc2V0dGluZ3Muc3RyZWFtQnVmZmVyaW5nLmluZm9feHRldmV9fSkiLCAiRkZtcGVnOiAoe3suc2V0dGluZ3Muc3RyZWFtQnVmZmVyaW5nLmluZm9fZmZtcGVnfX0pIiwgIlZMQzogKHt7LnNldHRpbmdzLnN0cmVhbUJ1ZmZlcmluZy5pbmZvX3ZsY319KSJdOwogICAgICAgICAgICAgICAgdmFyIHZhbHVlcyA9IFsiLSIsICJ4dGV2ZSIsICJmZm1wZWciLCAidmxjIl07CiAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCBkYXRhLCBzZXR0aW5nc0tleSk7CiAgICAgICAgICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOwogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChzZWxlY3QpOwogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOwogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJ1ZHB4eSI6CiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsKICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MudWRweHkudGl0bGV9fSIgKyAiOiI7CiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7CiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgInVkcHh5IiwgZGF0YSk7CiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnNldHRpbmdzLnVkcHh5LnBsYWNlaG9sZGVyfX0iKTsKICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsKICAgICAgICAgICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQoaW5wdXQpOwogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOwogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgIH0KICAgICAgICByZXR1cm4gc2V0dGluZzsKICAgIH0KICAgIGNyZWF0ZURlc2NyaXB0aW9uKHNldHRpbmdzS2V5KSB7CiAgICAgICAgdmFyIGRlc2NyaXB0aW9uID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVFIiKTsKICAgICAgICB2YXIgdGV4dDsKICAgICAgICBzd2l0Y2ggKHNldHRpbmdzS2V5KSB7CiAgICAgICAgICAgIGNhc2UgInRsc01vZGUiOgogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy50bHNNb2RlLmRlc2NyaXB0aW9ufX0iOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgImRpc2FsbG93VVJMRHVwbGljYXRlcyI6CiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLmRpc2FsbG93VVJMRHVwbGljYXRlcy5kZXNjcmlwdGlvbn19IjsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJhdXRoZW50aWNhdGlvbi53ZWIiOgogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5hdXRoZW50aWNhdGlvbldFQi5kZXNjcmlwdGlvbn19IjsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJhdXRoZW50aWNhdGlvbi5tM3UiOgogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5hdXRoZW50aWNhdGlvbk0zVS5kZXNjcmlwdGlvbn19IjsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJhdXRoZW50aWNhdGlvbi5wbXMiOgogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5hdXRoZW50aWNhdGlvblBNUy5kZXNjcmlwdGlvbn19IjsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJhdXRoZW50aWNhdGlvbi54bWwiOgogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5hdXRoZW50aWNhdGlvblhNTC5kZXNjcmlwdGlvbn19IjsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJhdXRoZW50aWNhdGlvbi5hcGkiOgogICAgICAgICAgICAgICAgaWYgKFNFUlZFUlsic2V0dGluZ3MiXVsiYXV0aGVudGljYXRpb24ud2ViIl0gPT0gdHJ1ZSkgewogICAgICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MuYXV0aGVudGljYXRpb25BUEkuZGVzY3JpcHRpb259fSI7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAieHRldmVBdXRvVXBkYXRlIjoKICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MueHRldmVBdXRvVXBkYXRlLmRlc2NyaXB0aW9ufX0iOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgImJhY2t1cC5rZWVwIjoKICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MuYmFja3VwS2VlcC5kZXNjcmlwdGlvbn19IjsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJiYWNrdXAucGF0aCI6CiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLmJhY2t1cFBhdGguZGVzY3JpcHRpb259fSI7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAidGVtcC5wYXRoIjoKICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MudGVtcFBhdGguZGVzY3JpcHRpb259fSI7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAiYnVmZmVyIjoKICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3Muc3RyZWFtQnVmZmVyaW5nLmRlc2NyaXB0aW9ufX0iOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgImJ1ZmZlci5zaXplLmtiIjoKICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MuYnVmZmVyU2l6ZS5kZXNjcmlwdGlvbn19IjsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJzdG9yZUJ1ZmZlckluUkFNIjoKICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3Muc3RvcmVCdWZmZXJJblJBTS5kZXNjcmlwdGlvbn19IjsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJidWZmZXIudGltZW91dCI6CiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLmJ1ZmZlclRpbWVvdXQuZGVzY3JpcHRpb259fSI7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAidXNlci5hZ2VudCI6CiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLnVzZXJBZ2VudC5kZXNjcmlwdGlvbn19IjsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJmZm1wZWcucGF0aCI6CiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLmZmbXBlZ1BhdGguZGVzY3JpcHRpb259fSI7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAiZmZtcGVnLm9wdGlvbnMiOgogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5mZm1wZWdPcHRpb25zLmRlc2NyaXB0aW9ufX0iOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgInZsYy5wYXRoIjoKICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MudmxjUGF0aC5kZXNjcmlwdGlvbn19IjsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJ2bGMub3B0aW9ucyI6CiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLnZsY09wdGlvbnMuZGVzY3JpcHRpb259fSI7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAiZXBnU291cmNlIjoKICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MuZXBnU291cmNlLmRlc2NyaXB0aW9ufX0iOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgImhvc3RJUCI6CiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLmhvc3RJUC5kZXNjcmlwdGlvbn19IjsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJob3N0TmFtZSI6CiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLmhvc3ROYW1lLmRlc2NyaXB0aW9ufX0iOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgInR1bmVyIjoKICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MudHVuZXIuZGVzY3JpcHRpb259fSI7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAidXBkYXRlIjoKICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MudXBkYXRlLmRlc2NyaXB0aW9ufX0iOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgImNsZWFyWE1MVFZDYWNoZSI6CiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLmNsZWFyWE1MVFZDYWNoZS5kZXNjcmlwdGlvbn19IjsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJhcGkiOgogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5hcGkuZGVzY3JpcHRpb259fSI7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAiZGVmYXVsdE1pc3NpbmdFUEciOgogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5kZWZhdWx0TWlzc2luZ0VQRy5kZXNjcmlwdGlvbn19IjsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJlbmFibGVNYXBwZWRDaGFubmVscyI6CiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLmVuYWJsZU1hcHBlZENoYW5uZWxzLmRlc2NyaXB0aW9ufX0iOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgImZpbGVzLnVwZGF0ZSI6CiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLmZpbGVzVXBkYXRlLmRlc2NyaXB0aW9ufX0iOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgImNhY2hlLmltYWdlcyI6CiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLmNhY2hlSW1hZ2VzLmRlc2NyaXB0aW9ufX0iOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgInhlcGcucmVwbGFjZS5taXNzaW5nLmltYWdlcyI6CiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLnJlcGxhY2VFbXB0eUltYWdlcy5kZXNjcmlwdGlvbn19IjsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJ1ZHB4eSI6CiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLnVkcHh5LmRlc2NyaXB0aW9ufX0iOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICAgICB0ZXh0ID0gIiI7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICB9CiAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7CiAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICIiOwogICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsKICAgICAgICB2YXIgcHJlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiUFJFIik7CiAgICAgICAgcHJlLmlubmVySFRNTCA9IHRleHQ7CiAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChwcmUpOwogICAgICAgIGRlc2NyaXB0aW9uLmFwcGVuZENoaWxkKHRkTGVmdCk7CiAgICAgICAgZGVzY3JpcHRpb24uYXBwZW5kQ2hpbGQodGRSaWdodCk7CiAgICAgICAgcmV0dXJuIGRlc2NyaXB0aW9uOwogICAgfQp9CmNsYXNzIFNldHRpbmdzQ2F0ZWdvcnlJdGVtIGV4dGVuZHMgU2V0dGluZ3NDYXRlZ29yeSB7CiAgICBjb25zdHJ1Y3RvcihoZWFkbGluZSwgc2V0dGluZ3NLZXlzKSB7CiAgICAgICAgc3VwZXIoKTsKICAgICAgICB0aGlzLmhlYWRsaW5lID0gaGVhZGxpbmU7CiAgICAgICAgdGhpcy5zZXR0aW5nc0tleXMgPSBzZXR0aW5nc0tleXM7CiAgICB9CiAgICBjcmVhdGVDYXRlZ29yeSgpIHsKICAgICAgICB2YXIgaGVhZGxpbmUgPSB0aGlzLmNyZWF0ZUNhdGVnb3J5SGVhZGxpbmUodGhpcy5oZWFkbGluZSk7CiAgICAgICAgdmFyIHNldHRpbmdzS2V5cyA9IHRoaXMuc2V0dGluZ3NLZXlzOwogICAgICAgIHZhciBkb2MgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCh0aGlzLkRvY3VtZW50SUQpOwogICAgICAgIGRvYy5hcHBlbmRDaGlsZChoZWFkbGluZSk7CiAgICAgICAgLy8gQ3JlYXRlIGEgdGFibGUgZm9yIHRoZSBjYXRlZ29yeQogICAgICAgIHZhciB0YWJsZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlRBQkxFIik7CiAgICAgICAgdmFyIGtleXMgPSBzZXR0aW5nc0tleXMuc3BsaXQoIiwiKTsKICAgICAgICBrZXlzLmZvckVhY2goc2V0dGluZ3NLZXkgPT4gewogICAgICAgICAgICBzd2l0Y2ggKHNldHRpbmdzS2V5KSB7CiAgICAgICAgICAgICAgICBjYXNlICJhdXRoZW50aWNhdGlvbi5wbXMiOgogICAgICAgICAgICAgICAgY2FzZSAiYXV0aGVudGljYXRpb24ubTN1IjoKICAgICAgICAgICAgICAgIGNhc2UgImF1dGhlbnRpY2F0aW9uLnhtbCI6CiAgICAgICAgICAgICAgICBjYXNlICJhdXRoZW50aWNhdGlvbi5hcGkiOgogICAgICAgICAgICAgICAgICAgIGlmIChTRVJWRVJbInNldHRpbmdzIl1bImF1dGhlbnRpY2F0aW9uLndlYiJdID09IGZhbHNlKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICAgICAgICAgdmFyIGl0ZW0gPSB0aGlzLmNyZWF0ZVNldHRpbmdzKHNldHRpbmdzS2V5KTsKICAgICAgICAgICAgICAgICAgICB2YXIgZGVzY3JpcHRpb24gPSB0aGlzLmNyZWF0ZURlc2NyaXB0aW9uKHNldHRpbmdzS2V5KTsKICAgICAgICAgICAgICAgICAgICB0YWJsZS5hcHBlbmRDaGlsZChpdGVtKTsKICAgICAgICAgICAgICAgICAgICB0YWJsZS5hcHBlbmRDaGlsZChkZXNjcmlwdGlvbik7CiAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIH0KICAgICAgICB9KTsKICAgICAgICBkb2MuYXBwZW5kQ2hpbGQodGFibGUpOwogICAgICAgIGRvYy5hcHBlbmRDaGlsZCh0aGlzLmNyZWF0ZUhSKCkpOwogICAgfQp9CmZ1bmN0aW9uIHNob3dTZXR0aW5ncygpIHsKICAgIGZvciAobGV0IGkgPSAwOyBpIDwgc2V0dGluZ3NDYXRlZ29yeS5sZW5ndGg7IGkrKykgewogICAgICAgIHNldHRpbmdzQ2F0ZWdvcnlbaV0uY3JlYXRlQ2F0ZWdvcnkoKTsKICAgIH0KfQpmdW5jdGlvbiBzYXZlU2V0dGluZ3MoKSB7CiAgICB2YXIgY21kID0gInNhdmVTZXR0aW5ncyI7CiAgICB2YXIgZGl2ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnRlbnRfc2V0dGluZ3MiKTsKICAgIHZhciBzZXR0aW5ncyA9IGRpdi5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCJjaGFuZ2VkIik7CiAgICB2YXIgbmV3U2V0dGluZ3MgPSBuZXcgT2JqZWN0KCk7CiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHNldHRpbmdzLmxlbmd0aDsgaSsrKSB7CiAgICAgICAgdmFyIG5hbWU7CiAgICAgICAgdmFyIHZhbHVlOwogICAgICAgIHN3aXRjaCAoc2V0dGluZ3NbaV0udGFnTmFtZSkgewogICAgICAgICAgICBjYXNlICJJTlBVVCI6CiAgICAgICAgICAgICAgICBzd2l0Y2ggKHNldHRpbmdzW2ldLnR5cGUpIHsKICAgICAgICAgICAgICAgICAgICBjYXNlICJjaGVja2JveCI6CiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWUgPSBzZXR0aW5nc1tpXS5uYW1lOwogICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IHNldHRpbmdzW2ldLmNoZWNrZWQ7CiAgICAgICAgICAgICAgICAgICAgICAgIG5ld1NldHRpbmdzW25hbWVdID0gdmFsdWU7CiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICAgIGNhc2UgInRleHQiOgogICAgICAgICAgICAgICAgICAgICAgICBuYW1lID0gc2V0dGluZ3NbaV0ubmFtZTsKICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSBzZXR0aW5nc1tpXS52YWx1ZTsKICAgICAgICAgICAgICAgICAgICAgICAgc3dpdGNoIChuYW1lKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYXNlICJ1cGRhdGUiOgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlID0gdmFsdWUuc3BsaXQoIiwiKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IHZhbHVlLmZpbHRlcihmdW5jdGlvbiAoZSkgeyByZXR1cm4gZTsgfSk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYXNlICJidWZmZXIudGltZW91dCI6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSBwYXJzZUZsb2F0KHZhbHVlKTsKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICBuZXdTZXR0aW5nc1tuYW1lXSA9IHZhbHVlOwogICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJTRUxFQ1QiOgogICAgICAgICAgICAgICAgbmFtZSA9IHNldHRpbmdzW2ldLm5hbWU7CiAgICAgICAgICAgICAgICB2YWx1ZSA9IHNldHRpbmdzW2ldLnZhbHVlOwogICAgICAgICAgICAgICAgLy8gSWYgdGhlIHZhbHVlIGlzIGEgbnVtYmVyLCBzdG9yZSBpdCBhcyBhIG51bWJlcgogICAgICAgICAgICAgICAgaWYgKGlzTmFOKHZhbHVlKSkgewogICAgICAgICAgICAgICAgICAgIG5ld1NldHRpbmdzW25hbWVdID0gdmFsdWU7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgICAgICBuZXdTZXR0aW5nc1tuYW1lXSA9IHBhcnNlSW50KHZhbHVlKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgIH0KICAgIH0KICAgIHZhciBkYXRhID0gbmV3IE9iamVjdCgpOwogICAgZGF0YVsic2V0dGluZ3MiXSA9IG5ld1NldHRpbmdzOwogICAgdmFyIHNlcnZlciA9IG5ldyBTZXJ2ZXIoY21kKTsKICAgIHNlcnZlci5yZXF1ZXN0KGRhdGEpOwp9Cg==" - webUI["html/lang/en.json"] = "ewogICJtYWluTWVudSI6IHsKICAgICJpdGVtIjogewogICAgICAicGxheWxpc3QiOiAiUGxheWxpc3QiLAogICAgICAicG1zSUQiOiAiUE1TIElEIiwKICAgICAgImZpbHRlciI6ICJGaWx0ZXIiLAogICAgICAieG1sdHYiOiAiWE1MVFYiLAogICAgICAibWFwcGluZyI6ICJNYXBwaW5nIiwKICAgICAgInVzZXJzIjogIlVzZXJzIiwKICAgICAgInNldHRpbmdzIjogIlNldHRpbmdzIiwKICAgICAgImxvZyI6ICJMb2ciLAogICAgICAibG9nb3V0IjogIkxvZ291dCIKICAgIH0sCiAgICAiaGVhZGxpbmUiOiB7CiAgICAgICJwbGF5bGlzdCI6ICJMb2NhbCBvciByZW1vdGUgcGxheWxpc3RzIiwKICAgICAgImZpbHRlciI6ICJGaWx0ZXIgcGxheWxpc3QiLAogICAgICAieG1sdHYiOiAiTG9jYWwgb3IgcmVtb3RlIFhNTFRWIGZpbGVzIiwKICAgICAgIm1hcHBpbmciOiAiTWFwIHBsYXlsaXN0IGNoYW5uZWxzIHRvIEVQRyBjaGFubmVscyIsCiAgICAgICJ1c2VycyI6ICJVc2VyIG1hbmFnZW1lbnQiLAogICAgICAic2V0dGluZ3MiOiAiU2V0dGluZ3MiLAogICAgICAibG9nIjogIkxvZyIsCiAgICAgICJsb2dvdXQiOiAiTG9nb3V0IgogICAgfQogIH0sCiAgImNvbmZpcm0iOiB7CiAgICAicmVzdG9yZSI6ICJBbGwgZGF0YSB3aWxsIGJlIHJlcGxhY2VkIHdpdGggdGhvc2UgZnJvbSB0aGUgYmFja3VwLiBTaG91bGQgdGhlIGZpbGVzIGJlIHJlc3RvcmVkPyIKICB9LAogICJhbGVydCI6IHsKICAgICJmaWxlTG9hZGluZ0Vycm9yIjogIkZpbGUgY291bGRuJ3QgYmUgbG9hZGVkIiwKICAgICJpbnZhbGlkQ2hhbm5lbE51bWJlciI6ICJJbnZhbGlkIGNoYW5uZWwgbnVtYmVyIiwKICAgICJtaXNzaW5nSW5wdXQiOiAiTWlzc2luZyBpbnB1dCIKICB9LAogICJidXR0b24iOiB7CiAgICAiYmFjayI6ICJCYWNrIiwKICAgICJiYWNrdXAiOiAiQmFja3VwIiwKICAgICJidWxrRWRpdCI6ICJCdWxrIEVkaXQiLAogICAgImNhbmNlbCI6ICJDYW5jZWwiLAogICAgImRlbGV0ZSI6ICJEZWxldGUiLAogICAgImRvbmUiOiAiRG9uZSIsCiAgICAibG9naW4iOiAiTG9naW4iLAogICAgIm5ldyI6ICJOZXciLAogICAgIm5leHQiOiAiTmV4dCIsCiAgICAicmVzdG9yZSI6ICJSZXN0b3JlIiwKICAgICJzYXZlIjogIlNhdmUiLAogICAgInNlYXJjaCI6ICJTZWFyY2giLAogICAgInVwZGF0ZSI6ICJVcGRhdGUiLAogICAgImNyYWV0ZUFjY291bnQiOiAiQ3JlYXRlIEFjY291bnQiLAogICAgInJlc2V0TG9ncyI6ICJSZXNldCBMb2dzIiwKICAgICJ1cGxvYWRMb2dvIjogIlVwbG9hZCBMb2dvIgogIH0sCiAgImZpbHRlciI6IHsKICAgICJ0YWJsZSI6IHsKICAgICAgInN0YXJ0aW5nQ2hhbm5lbCI6ICJTdGFydGluZyBDaC4gTm8uIiwKICAgICAgIm5hbWUiOiAiRmlsdGVyIE5hbWUiLAogICAgICAidHlwZSI6ICJGaWx0ZXIgVHlwZSIsCiAgICAgICJmaWx0ZXIiOiAiRmlsdGVyIgogICAgfSwKICAgICJjdXN0b20iOiAiQ3VzdG9tIiwKICAgICJncm91cCI6ICJNM1UgR3JvdXAiLAogICAgIm5hbWUiOiB7CiAgICAgICJ0aXRsZSI6ICJGaWx0ZXIgTmFtZSIsCiAgICAgICJwbGFjZWhvbGRlciI6ICJGaWx0ZXIgbmFtZSIsCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiCiAgICB9LAogICAgImRlc2NyaXB0aW9uIjogewogICAgICAidGl0bGUiOiAiRGVzY3JpcHRpb24iLAogICAgICAicGxhY2Vob2xkZXIiOiAiRGVzY3JpcHRpb24iLAogICAgICAiZGVzY3JpcHRpb24iOiAiIgogICAgfSwKICAgICJ0eXBlIjogewogICAgICAidGl0bGUiOiAiVHlwZSIsCiAgICAgICJncm91cFRpdGxlIjogIkdyb3VwIFRpdGxlIiwKICAgICAgImN1c3RvbUZpbHRlciI6ICJDdXN0b20gRmlsdGVyIgogICAgfSwKICAgICJjYXNlU2Vuc2l0aXZlIjogewogICAgICAidGl0bGUiOiAiQ2FzZSBTZW5zaXRpdmUiLAogICAgICAicGxhY2Vob2xkZXIiOiAiIiwKICAgICAgImRlc2NyaXB0aW9uIjogIiIKICAgIH0sCiAgICAiZmlsdGVyUnVsZSI6IHsKICAgICAgInRpdGxlIjogIkZpbHRlciBSdWxlIiwKICAgICAgInBsYWNlaG9sZGVyIjogIlNwb3J0IHtIRH0gIXtFUyxJVH0iLAogICAgICAiZGVzY3JpcHRpb24iOiAiIgogICAgfSwKICAgICJmaWx0ZXJHcm91cCI6IHsKICAgICAgInRpdGxlIjogIkdyb3VwIFRpdGxlIiwKICAgICAgInBsYWNlaG9sZGVyIjogIiIsCiAgICAgICJkZXNjcmlwdGlvbiI6ICJTZWxlY3QgYSBNM1UgZ3JvdXAuIChDb3VudGVyKTxicj5DaGFuZ2luZyB0aGUgZ3JvdXAgdGl0bGUgaW4gdGhlIE0zVSBpbnZhbGlkYXRlcyB0aGUgZmlsdGVyLiIKICAgIH0sCiAgICAiaW5jbHVkZSI6IHsKICAgICAgInRpdGxlIjogIkluY2x1ZGUiLAogICAgICAicGxhY2Vob2xkZXIiOiAiRkhELFVIRCIsCiAgICAgICJkZXNjcmlwdGlvbiI6ICJDaGFubmVsIG5hbWUgbXVzdCBpbmNsdWRlLjxicj4oQ29tbWEgc2VwYXJhdGVkKSBDb21tYSBtZWFucyBvciIKICAgIH0sCiAgICAiZXhjbHVkZSI6IHsKICAgICAgInRpdGxlIjogIkV4Y2x1ZGUiLAogICAgICAicGxhY2Vob2xkZXIiOiAiRVMsSVQiLAogICAgICAiZGVzY3JpcHRpb24iOiAiQ2hhbm5lbCBuYW1lIG11c3Qgbm90IGNvbnRhaW4uPGJyPihDb21tYSBzZXBhcmF0ZWQpIENvbW1hIG1lYW5zIG9yIgogICAgfSwKICAgICJwcmVzZXJ2ZU1hcHBpbmciOiB7CiAgICAgICJ0aXRsZSI6ICJQcmVzZXJ2ZSBFeGlzdGluZyBNM1U8YnI+Q2hhbm5lbCBOdW1iZXJzIiwKICAgICAgInBhbGNlaG9sZGVyIjogIiIsCiAgICAgICJkZXNjcmlwdGlvbiI6ICJQcmVzZXJ2ZSBleGlzdGluZyBNM1UgcGxheWxpc3QgY2hhbm5lbCBudW1iZXJzPyIKICAgIH0sCiAgICAic3RhcnRpbmdDaGFubmVsIjogewogICAgICAidGl0bGUiOiAiU3RhcnRpbmcgQ2hhbm5lbCBOdW1iZXIiLAogICAgICAicGxhY2Vob2xkZXIiOiAiIiwKICAgICAgImRlc2NyaXB0aW9uIjogIiIKICAgIH0KICB9LAogICJwbGF5bGlzdCI6IHsKICAgICJ0YWJsZSI6IHsKICAgICAgInBsYXlsaXN0IjogIlBsYXlsaXN0IiwKICAgICAgInR1bmVyIjogIlR1bmVyIiwKICAgICAgImxhc3RVcGRhdGUiOiAiTGFzdCBVcGRhdGUiLAogICAgICAiYXZhaWxhYmlsaXR5IjogIkF2YWlsYWJpbGl0eSIsCiAgICAgICJ0eXBlIjogIlR5cGUiLAogICAgICAic3RyZWFtcyI6ICJTdHJlYW1zIiwKICAgICAgImdyb3VwVGl0bGUiOiAiZ3JvdXAtdGl0bGUiLAogICAgICAidHZnSUQiOiAidHZnLWlkIiwKICAgICAgInVuaXF1ZUlEIjogIlVuaXF1ZSBJRCIKICAgIH0sCiAgICAicGxheWxpc3RUeXBlIjogewogICAgICAidGl0bGUiOiAiUGxheWxpc3QgdHlwZSIsCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLAogICAgICAiZGVzY3JpcHRpb24iOiAiIgogICAgfSwKICAgICJ0eXBlIjogewogICAgICAidGl0bGUiOiAiVHlwZSIsCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLAogICAgICAiZGVzY3JpcHRpb24iOiAiIgogICAgfSwKICAgICJuYW1lIjogewogICAgICAidGl0bGUiOiAiTmFtZSIsCiAgICAgICJwbGFjZWhvbGRlciI6ICJQbGF5bGlzdCBuYW1lIiwKICAgICAgImRlc2NyaXB0aW9uIjogIiIKICAgIH0sCiAgICAiZGVzY3JpcHRpb24iOiB7CiAgICAgICJ0aXRsZSI6ICJEZXNjcmlwdGlvbiIsCiAgICAgICJwbGFjZWhvbGRlciI6ICJEZXNjcmlwdGlvbiIsCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiCiAgICB9LAogICAgImZpbGVNM1UiOiB7CiAgICAgICJ0aXRsZSI6ICJNM1UgRmlsZSIsCiAgICAgICJwbGFjZWhvbGRlciI6ICJGaWxlIHBhdGggb3IgVVJMIG9mIHRoZSBNM1UiLAogICAgICAiZGVzY3JpcHRpb24iOiAiIgogICAgfSwKICAgICJmaWxlSERIUiI6IHsKICAgICAgInRpdGxlIjogIkhESG9tZVJ1biBJUCIsCiAgICAgICJwbGFjZWhvbGRlciI6ICJJUCBhZGRyZXNzIGFuZCBwb3J0ICgxOTIuMTY4LjEuMTA6NTAwNCkiLAogICAgICAiZGVzY3JpcHRpb24iOiAiIgogICAgfSwKICAgICJ0dW5lciI6IHsKICAgICAgInRpdGxlIjogIlR1bmVyIC8gU3RyZWFtcyIsCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLAogICAgICAiZGVzY3JpcHRpb24iOiAiTnVtYmVyIG9mIHBhcmFsbGVsIGNvbm5lY3Rpb25zIHRoYXQgY2FuIGJlIGVzdGFibGlzaGVkIHRvIHRoZSBwcm92aWRlci4gPGJyPk9ubHkgYXZhaWxhYmxlIHdpdGggYWN0aXZhdGVkIGJ1ZmZlci48YnI+TmV3IHNldHRpbmdzIHdpbGwgb25seSBiZSBhcHBsaWVkIGFmdGVyIHF1aXR0aW5nIGFsbCBzdHJlYW1zLiIKICAgIH0KICB9LAogICJ4bWx0diI6IHsKICAgICJ0YWJsZSI6IHsKICAgICAgImd1aWRlIjogIkd1aWRlIiwKICAgICAgImxhc3RVcGRhdGUiOiAiTGFzdCBVcGRhdGUiLAogICAgICAiYXZhaWxhYmlsaXR5IjogIkF2YWlsYWJpbGl0eSIsCiAgICAgICJjaGFubmVscyI6ICJDaGFubmVscyIsCiAgICAgICJwcm9ncmFtcyI6ICJQcm9ncmFtcyIKICAgIH0sCiAgICAibmFtZSI6IHsKICAgICAgInRpdGxlIjogIk5hbWUiLAogICAgICAicGxhY2Vob2xkZXIiOiAiR3VpZGUgbmFtZSIsCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiCiAgICB9LAogICAgImRlc2NyaXB0aW9uIjogewogICAgICAidGl0bGUiOiAiRGVzY3JpcHRpb24iLAogICAgICAicGxhY2Vob2xkZXIiOiAiRGVzY3JpcHRpb24iLAogICAgICAiZGVzY3JpcHRpb24iOiAiIgogICAgfSwKICAgICJmaWxlWE1MVFYiOiB7CiAgICAgICJ0aXRsZSI6ICJYTUxUViBGaWxlIiwKICAgICAgInBsYWNlaG9sZGVyIjogIkZpbGUgcGF0aCBvciBVUkwgb2YgdGhlIFhNTFRWIiwKICAgICAgImRlc2NyaXB0aW9uIjogIiIKICAgIH0KICB9LAogICJtYXBwaW5nIjogewogICAgInRhYmxlIjogewogICAgICAiY2hObyI6ICJDaC4gTm8uIiwKICAgICAgImxvZ28iOiAiTG9nbyIsCiAgICAgICJjaGFubmVsTmFtZSI6ICJDaGFubmVsIE5hbWUiLAogICAgICAidXBkYXRlQ2hhbm5lbE5hbWVSZWdleCI6ICJVcGQuIFJ4LiIsCiAgICAgICJwbGF5bGlzdCI6ICJQbGF5bGlzdCIsCiAgICAgICJncm91cFRpdGxlIjogIkdyb3VwIFRpdGxlIiwKICAgICAgInhtbHR2RmlsZSI6ICJYTUxUViBGaWxlIiwKICAgICAgInhtbHR2SUQiOiAiWE1MVFYgSUQiLAogICAgICAidGltZXNoaWZ0IjogIlRpbWVzaGlmdCIKICAgIH0sCiAgICAiYWN0aXZlIjogewogICAgICAidGl0bGUiOiAiQWN0aXZlIiwKICAgICAgInBsYWNlaG9sZGVyIjogIiIsCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiCiAgICB9LAogICAgImNoYW5uZWxOYW1lIjogewogICAgICAidGl0bGUiOiAiQ2hhbm5lbCBOYW1lIiwKICAgICAgInBsYWNlaG9sZGVyIjogIiIsCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiCiAgICB9LAogICAgImRlc2NyaXB0aW9uIjogewogICAgICAidGl0bGUiOiAiQ2hhbm5lbCBEZXNjcmlwdGlvbiIsCiAgICAgICJwbGFjZWhvbGRlciI6ICJVc2VkIGJ5IHRoZSBEdW1teSBhcyBhbiBYTUwgZGVzY3JpcHRpb24iLAogICAgICAiZGVzY3JpcHRpb24iOiAiIgogICAgfSwKICAgICJ1cGRhdGVDaGFubmVsTmFtZSI6IHsKICAgICAgInRpdGxlIjogIlVwZGF0ZSBDaGFubmVsIE5hbWUiLAogICAgICAicGxhY2Vob2xkZXIiOiAiIiwKICAgICAgImRlc2NyaXB0aW9uIjogIiIKICAgIH0sCiAgICAidXBkYXRlQ2hhbm5lbE5hbWVSZWdleCI6IHsKICAgICAgInRpdGxlIjogIkNoYW5uZWwgbmFtZSB1cGRhdGUgcmVnZXgiLAogICAgICAicGxhY2Vob2xkZXIiOiAiRm9yIGV4YW1wbGUgXlBQVlsgXFxcXC1fXT8xLioiLAogICAgICAiZGVzY3JpcHRpb24iOiAiT24gdXBkYXRlLCBpZiBhbnkgbmV3IGNoYW5uZWwgbmFtZSBtYXRjaGVzIHRoaXMgcmVnZXgsIHJlbmFtZSBjdXJyZW50IGNoYW5uZWwgdG8gdGhlIGZpcnN0IG1hdGNoaW5nIG5hbWUiCiAgICB9LAogICAgInVwZGF0ZUNoYW5uZWxOYW1lQnlHcm91cFJlZ2V4IjogewogICAgICAidGl0bGUiOiAiT25seSBieSBncm91cCByZWdleCIsCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLAogICAgICAiZGVzY3JpcHRpb24iOiAiUmVuYW1lIHRoaXMgY2hhbm5lbCBvbmx5IGlmIGN1cnJlbnQgdXNlci1kZWZpbmVkIGdyb3VwIG1hdGNoZXMgdGhpcyByZWdleCIKICAgIH0sCiAgICAidXBkYXRlQ2hhbm5lbEdyb3VwIjogewogICAgICAidGl0bGUiOiAiVXBkYXRlIENoYW5uZWwgR3JvdXAiLAogICAgICAicGxhY2Vob2xkZXIiOiAiIiwKICAgICAgImRlc2NyaXB0aW9uIjogIklmIGNoZWNrZWQsIHVzZSBncm91cCBmcm9tIHRoZSBkYXRhYmFzZSIKICAgIH0sCiAgICAiY2hhbm5lbExvZ28iOiB7CiAgICAgICJ0aXRsZSI6ICJMb2dvIFVSTCIsCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLAogICAgICAiZGVzY3JpcHRpb24iOiAiIgogICAgfSwKICAgICJ1cGRhdGVDaGFubmVsTG9nbyI6IHsKICAgICAgInRpdGxlIjogIlVwZGF0ZSBDaGFubmVsIExvZ28iLAogICAgICAicGxhY2Vob2xkZXIiOiAiIiwKICAgICAgImRlc2NyaXB0aW9uIjogIiIKICAgIH0sCiAgICAiZXBnQ2F0ZWdvcnkiOiB7CiAgICAgICJ0aXRsZSI6ICJFUEcgQ2F0ZWdvcnkiLAogICAgICAicGxhY2Vob2xkZXIiOiAiIiwKICAgICAgImRlc2NyaXB0aW9uIjogIiIKICAgIH0sCiAgICAibTN1R3JvdXBUaXRsZSI6IHsKICAgICAgInRpdGxlIjogIkdyb3VwIFRpdGxlICh4dGV2ZS5tM3UpIiwKICAgICAgInBsYWNlaG9sZGVyIjogIiIsCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiCiAgICB9LAogICAgInhtbHR2RmlsZSI6IHsKICAgICAgInRpdGxlIjogIlhNTFRWIEZpbGUiLAogICAgICAicGxhY2Vob2xkZXIiOiAiIiwKICAgICAgImRlc2NyaXB0aW9uIjogIiIKICAgIH0sCiAgICAieG1sdHZDaGFubmVsIjogewogICAgICAidGl0bGUiOiAiWE1MVFYgQ2hhbm5lbCIsCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLAogICAgICAiZGVzY3JpcHRpb24iOiAiIgogICAgfSwKICAgICJ0aW1lc2hpZnQiOiB7CiAgICAgICJ0aXRsZSI6ICJUaW1lc2hpZnQiLAogICAgICAicGxhY2Vob2xkZXIiOiAiMCIsCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiCiAgICB9CiAgfSwKICAidXNlcnMiOiB7CiAgICAidGFibGUiOiB7CiAgICAgICJ1c2VybmFtZSI6ICJVc2VybmFtZSIsCiAgICAgICJwYXNzd29yZCI6ICJQYXNzd29yZCIsCiAgICAgICJ3ZWIiOiAiV0VCIiwKICAgICAgInBtcyI6ICJQTVMiLAogICAgICAibTN1IjogIk0zVSIsCiAgICAgICJ4bWwiOiAiWE1MIiwKICAgICAgImFwaSI6ICJBUEkiCiAgICB9LAogICAgInVzZXJuYW1lIjogewogICAgICAidGl0bGUiOiAiVXNlcm5hbWUiLAogICAgICAicGxhY2Vob2xkZXIiOiAiVXNlcm5hbWUiLAogICAgICAiZGVzY3JpcHRpb24iOiAiIgogICAgfSwKICAgICJwYXNzd29yZCI6IHsKICAgICAgInRpdGxlIjogIlBhc3N3b3JkIiwKICAgICAgInBsYWNlaG9sZGVyIjogIlBhc3N3b3JkIiwKICAgICAgImRlc2NyaXB0aW9uIjogIiIKICAgIH0sCiAgICAiY29uZmlybSI6IHsKICAgICAgInRpdGxlIjogIkNvbmZpcm0iLAogICAgICAicGxhY2Vob2xkZXIiOiAiUGFzc3dvcmQgY29uZmlybSIsCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiCiAgICB9LAogICAgIndlYiI6IHsKICAgICAgInRpdGxlIjogIldlYiBBY2Nlc3MiLAogICAgICAicGxhY2Vob2xkZXIiOiAiIiwKICAgICAgImRlc2NyaXB0aW9uIjogIiIKICAgIH0sCiAgICAicG1zIjogewogICAgICAidGl0bGUiOiAiUE1TIEFjY2VzcyIsCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLAogICAgICAiZGVzY3JpcHRpb24iOiAiIgogICAgfSwKICAgICJtM3UiOiB7CiAgICAgICJ0aXRsZSI6ICJNM1UgQWNjZXNzIiwKICAgICAgInBsYWNlaG9sZGVyIjogIiIsCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiCiAgICB9LAogICAgInhtbCI6IHsKICAgICAgInRpdGxlIjogIlhNTCBBY2Nlc3MiLAogICAgICAicGxhY2Vob2xkZXIiOiAiIiwKICAgICAgImRlc2NyaXB0aW9uIjogIiIKICAgIH0sCiAgICAiYXBpIjogewogICAgICAidGl0bGUiOiAiQVBJIEFjY2VzcyIsCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLAogICAgICAiZGVzY3JpcHRpb24iOiAiIgogICAgfQogIH0sCiAgInNldHRpbmdzIjogewogICAgImNhdGVnb3J5IjogewogICAgICAiZ2VuZXJhbCI6ICJHZW5lcmFsIiwKICAgICAgIm1hcHBpbmciOiAiTWFwcGluZyIsCiAgICAgICJmaWxlcyI6ICJGaWxlcyIsCiAgICAgICJzdHJlYW1pbmciOiAiU3RyZWFtaW5nIiwKICAgICAgImJhY2t1cCI6ICJCYWNrdXAiLAogICAgICAiYXV0aGVudGljYXRpb24iOiAiQXV0aGVudGljYXRpb24iCiAgICB9LAogICAgInVwZGF0ZSI6IHsKICAgICAgInRpdGxlIjogIlNjaGVkdWxlIGZvciB1cGRhdGluZyAoUGxheWxpc3QsIFhNTFRWLCBCYWNrdXApIiwKICAgICAgInBsYWNlaG9sZGVyIjogIjAwMDAsMTAwMCwyMDAwIiwKICAgICAgImRlc2NyaXB0aW9uIjogIlRpbWUgaW4gMjQgaG91ciBmb3JtYXQgKDA4MDAgPSA4OjAwIGFtKS4gTW9yZSB0aW1lcyBjYW4gYmUgZW50ZXJlZCBjb21tYSBzZXBhcmF0ZWQuIExlYXZlIHRoaXMgZmllbGQgZW1wdHkgaWYgbm8gdXBkYXRlcyBhcmUgdG8gYmUgY2FycmllZCBvdXQuIgogICAgfSwKICAgICJhcGkiOiB7CiAgICAgICJ0aXRsZSI6ICJBUEkgSW50ZXJmYWNlIiwKICAgICAgImRlc2NyaXB0aW9uIjogIlZpYSBBUEkgaW50ZXJmYWNlIGl0IGlzIHBvc3NpYmxlIHRvIHNlbmQgY29tbWFuZHMgdG8geFRlVmUuIEFQSSBkb2N1bWVudGF0aW9uIGlzIDxhIGhyZWY9J2h0dHBzOi8vZ2l0aHViLmNvbS94dGV2ZS1wcm9qZWN0L3hUZVZlLURvY3VtZW50YXRpb24vYmxvYi9tYXN0ZXIvZW4vY29uZmlndXJhdGlvbi5tZCNhcGknPmhlcmU8L2E+IgogICAgfSwKICAgICJjbGVhclhNTFRWQ2FjaGUiOiB7CiAgICAgICJ0aXRsZSI6ICJDbGVhciBYTUxUViBjYWNoZSIsCiAgICAgICJkZXNjcmlwdGlvbiI6ICJJZiBjaGVja2VkLCBkbyBub3Qga2VlcCBYTUxUViBjYWNoZSBpbiBtZW1vcnkuPGJyPlNpZ25pZmljYWxseSByZWR1Y2VzIFJBTSB1c2FnZSBpbiBpZGxlIG1vZGUsPGJyPmJ1dCBzaWduaWZpY2FsbHkgc2xvd2luZyBkb3duIGV2ZXJ5IHN1YnNlcXVlbnQgdXBkYXRlIGluIFhFUEcgZGF0YWJhc2UuIgogICAgfSwKICAgICJkZWZhdWx0TWlzc2luZ0VQRyI6IHsKICAgICAgInRpdGxlIjogIkZpbGwgTWlzc2luZyBFUEcgRGF0YSIsCiAgICAgICJkZXNjcmlwdGlvbiI6ICJXaGVuIHRoZXJlIGlzIG5vIG1hdGNoaW5nIEVQRyBkYXRhIGZvciBjaGFubmVsLCA8YnI+YXV0b2ZpbGwgd2l0aCB4VGVWZSBkdW1teSBFUEcgZGF0YT8iCiAgICB9LAogICAgImVuYWJsZU1hcHBlZENoYW5uZWxzIjogewogICAgICAidGl0bGUiOiAiRW5hYmxlIG1hcHBlZCBjaGFubmVscyIsCiAgICAgICJkZXNjcmlwdGlvbiI6ICJBdXRvbWF0aWNhbGx5IGVuYWJsZSBjaGFubmVscyB3aXRoIGFzc2lnbmVkIEVQRyBkYXRhIgogICAgfSwKICAgICJkaXNhbGxvd1VSTER1cGxpY2F0ZXMiOiB7CiAgICAgICJ0aXRsZSI6ICJEaXNhbGxvdyBVUkwgZHVwbGljYXRlcyIsCiAgICAgICJkZXNjcmlwdGlvbiI6ICJJZiBjaGVja2VkLCBkbyBub3QgYWRkIGEgbmV3IGNoYW5uZWwgZnJvbSBwbGF5bGlzdCBpZiBjaGFubmVsIHdpdGggc3VjaCBVUkwgYWxyZWFkeSBleGlzdHMiCiAgICB9LAogICAgImVwZ1NvdXJjZSI6IHsKICAgICAgInRpdGxlIjogIkVQRyBTb3VyY2UiLAogICAgICAiZGVzY3JpcHRpb24iOiAiUE1TOjxicj4tIFVzZSBFUEcgZGF0YSBmcm9tIFBsZXggb3IgRW1ieSA8YnI+PGJyPlhFUEc6PGJyPi0gVXNlIG9mIG9uZSBvciBtb3JlIFhNTFRWIGZpbGVzPGJyPi0gQ2hhbm5lbCBtYW5hZ2VtZW50PGJyPi0gTTNVIC8gWE1MVFYgZXhwb3J0IChIVFRQIGxpbmsgZm9yIElQVFYgYXBwcykiCiAgICB9LAogICAgInR1bmVyIjogewogICAgICAidGl0bGUiOiAiTnVtYmVyIG9mIFR1bmVycyIsCiAgICAgICJkZXNjcmlwdGlvbiI6ICJOdW1iZXIgb2YgcGFyYWxsZWwgY29ubmVjdGlvbnMgdGhhdCBjYW4gYmUgZXN0YWJsaXNoZWQgdG8gdGhlIHByb3ZpZGVyLjxicj5BdmFpbGFibGUgZm9yOiBQbGV4LCBFbWJ5IChIREhSKSwgTTNVICh3aXRoIGFjdGl2ZSBidWZmZXIpLjxicj5BZnRlciBhIGNoYW5nZSwgeFRlVmUgbXVzdCBiZSBkZWxldGUgaW4gdGhlIFBsZXggLyBFbWJ5IERWUiBzZXR0aW5ncyBhbmQgc2V0IHVwIGFnYWluLiIKICAgIH0sCiAgICAiaG9zdElQIjogewogICAgICAidGl0bGUiOiAiSG9zdCBJUCIsCiAgICAgICJkZXNjcmlwdGlvbiI6ICJJUCBhZGRyZXNzIHhUZVZlIHdpbGwgdXNlIHRvIGZvcm0gTTNVIGFuZCBYTUxUViBmaWxlcyIKICAgIH0sCiAgICAiaG9zdE5hbWUiOiB7CiAgICAgICJ0aXRsZSI6ICJIb3N0IE5hbWUgT3ZlcnJpZGUiLAogICAgICAiZGVzY3JpcHRpb24iOiAiSG9zdG5hbWUgeFRlVmUgd2lsbCB1c2UgdG8gZm9ybSBNM1UgYW5kIFhNTFRWIGZpbGVzLiBUaGlzIHdpbGwgb3ZlcnJpZGUgSG9zdCBJUCBpZiBzZXQiCiAgICB9LAogICAgInRsc01vZGUiOiB7CiAgICAgICJ0aXRsZSI6ICJUTFMgKEhUVFBTKSBtb2RlIiwKICAgICAgImRlc2NyaXB0aW9uIjogIkNoYW5nZXMgd2ViIHNlcnZlciBwcm90b2NvbCB0byBIVFRQUy48YnI+Rm9yIGRldGFpbHMsIHNlZSA8YT5odHRwczovL2dpdGh1Yi5jb20vU0NQMDAyL3hUZVZlI3Rscy1tb2RlPC9hPiIKICAgIH0sCiAgICAiZmlsZXNVcGRhdGUiOiB7CiAgICAgICJ0aXRsZSI6ICJVcGRhdGVzIGFsbCBmaWxlcyBhdCBzdGFydHVwIiwKICAgICAgImRlc2NyaXB0aW9uIjogIlVwZGF0ZXMgYWxsIHBsYXlsaXN0cywgdHVuZXIgYW5kIFhNTFRWIGZpbGVzIGF0IHN0YXJ0dXAuIgogICAgfSwKICAgICJjYWNoZUltYWdlcyI6IHsKICAgICAgInRpdGxlIjogIkltYWdlIENhY2hpbmciLAogICAgICAiZGVzY3JpcHRpb24iOiAiQWxsIGltYWdlcyBmcm9tIHRoZSBYTUxUViBmaWxlIGFyZSBjYWNoZWQsIGFsbG93aW5nIGZhc3RlciByZW5kZXJpbmcgb2YgdGhlIGdyaWQgaW4gdGhlIGNsaWVudC48YnI+RG93bmxvYWRpbmcgdGhlIGltYWdlcyBtYXkgdGFrZSBhIHdoaWxlIGFuZCB3aWxsIGJlIGRvbmUgaW4gdGhlIGJhY2tncm91bmQuIgogICAgfSwKICAgICJyZXBsYWNlRW1wdHlJbWFnZXMiOiB7CiAgICAgICJ0aXRsZSI6ICJSZXBsYWNlIG1pc3NpbmcgcHJvZ3JhbSBpbWFnZXMiLAogICAgICAiZGVzY3JpcHRpb24iOiAiSWYgdGhlIHBvc3RlciBpbiB0aGUgWE1MVFYgcHJvZ3JhbSBpcyBtaXNzaW5nLCB0aGUgY2hhbm5lbCBsb2dvIHdpbGwgYmUgdXNlZC4iCiAgICB9LAogICAgInh0ZXZlQXV0b1VwZGF0ZSI6IHsKICAgICAgInRpdGxlIjogIkF1dG9tYXRpYyB1cGRhdGUgb2YgeFRlVmUiLAogICAgICAiZGVzY3JpcHRpb24iOiAiSWYgYSBuZXcgdmVyc2lvbiBvZiB4VGVWZSBpcyBhdmFpbGFibGUsIGl0IHdpbGwgYmUgYXV0b21hdGljYWxseSBpbnN0YWxsZWQuIFRoZSB1cGRhdGVzIGFyZSBkb3dubG9hZGVkIGZyb20gR2l0SHViLiIKICAgIH0sCiAgICAic3RyZWFtQnVmZmVyaW5nIjogewogICAgICAidGl0bGUiOiAiU3RyZWFtIEJ1ZmZlciIsCiAgICAgICJkZXNjcmlwdGlvbiI6ICJGdW5jdGlvbnMgb2YgdGhlIGJ1ZmZlcjo8YnI+LSBUaGUgc3RyZWFtIGlzIHBhc3NlZCBmcm9tIHhUZVZlLCBGRm1wZWcgb3IgVkxDIHRvIFBsZXgsIEVtYnkgb3IgTTNVIFBsYXllcjxicj4tIFNtYWxsIGplcmtpbmcgb2YgdGhlIHN0cmVhbXMgY2FuIGJlIGNvbXBlbnNhdGVkPGJyPi0gSExTIC8gTTNVOCBzdXBwb3J0PGJyPi0gUlRQIC8gUlRQUyBzdXBwb3J0IChvbmx5IEZGbXBlZyBvciBWTEMpPGJyPi0gUmUtc3RyZWFtaW5nPGJyPi0gU2VwYXJhdGUgdHVuZXIgbGltaXQgZm9yIGVhY2ggcGxheWxpc3QiLAogICAgICAiaW5mb19mYWxzZSI6ICJObyBCdWZmZXIgKENsaWVudCBjb25uZWN0cyB0byB0aGUgc3RyZWFtaW5nIHNlcnZlcikiLAogICAgICAiaW5mb194dGV2ZSI6ICJ4VGVWZSBjb25uZWN0cyB0byB0aGUgc3RyZWFtaW5nIHNlcnZlciIsCiAgICAgICJpbmZvX2ZmbXBlZyI6ICJGRm1wZWcgY29ubmVjdHMgdG8gdGhlIHN0cmVhbWluZyBzZXJ2ZXIiLAogICAgICAiaW5mb192bGMiOiAiVkxDIGNvbm5lY3RzIHRvIHRoZSBzdHJlYW1pbmcgc2VydmVyIgogICAgfSwKICAgICJ1ZHB4eSI6IHsKICAgICAgInRpdGxlIjogIlVEUHh5IGFkZHJlc3MiLAogICAgICAiZGVzY3JpcHRpb24iOiAiVGhlIGFkZHJlc3Mgb2YgeW91ciBVRFB4eSBzZXJ2ZXIuIElmIHNldCwgYW5kIHRoZSBjaGFubmVsIFVSTHMgaW4gdGhlIG0zdSBpcyBtdWx0aWNhc3QsIHhUZVZlIHdpbGwgcmV3cml0ZSBpdCBzbyB0aGF0IGl0IGlzIGFjY2Vzc2VkIHZpYSB0aGUgVURQeHkgc2VydmljZS4iLAogICAgICAicGxhY2Vob2xkZXIiOiAiaG9zdDpwb3J0IgogICAgfSwKICAgICJmZm1wZWdQYXRoIjogewogICAgICAidGl0bGUiOiAiRkZtcGVnIEJpbmFyeSBQYXRoIiwKICAgICAgImRlc2NyaXB0aW9uIjogIlBhdGggdG8gRkZtcGVnIGJpbmFyeS4iLAogICAgICAicGxhY2Vob2xkZXIiOiAiL3BhdGgvdG8vZmZtcGVnIgogICAgfSwKICAgICJmZm1wZWdPcHRpb25zIjogewogICAgICAidGl0bGUiOiAiRkZtcGVnIE9wdGlvbnMiLAogICAgICAiZGVzY3JpcHRpb24iOiAiRkZtcGVnIG9wdGlvbnMuPGJyPk9ubHkgY2hhbmdlIGlmIHlvdSBrbm93IHdoYXQgeW91IGFyZSBkb2luZy48YnI+TGVhdmUgYmxhbmsgdG8gc2V0IGRlZmF1bHQgc2V0dGluZ3MuIiwKICAgICAgInBsYWNlaG9sZGVyIjogIkxlYXZlIGJsYW5rIHRvIHNldCBkZWZhdWx0IHNldHRpbmdzIgogICAgfSwKICAgICJ2bGNQYXRoIjogewogICAgICAidGl0bGUiOiAiVkxDIC8gQ1ZMQyBCaW5hcnkgUGF0aCIsCiAgICAgICJkZXNjcmlwdGlvbiI6ICJQYXRoIHRvIFZMQyAvIENWTEMgYmluYXJ5LiIsCiAgICAgICJwbGFjZWhvbGRlciI6ICIvcGF0aC90by9jdmxjIgogICAgfSwKICAgICJ2bGNPcHRpb25zIjogewogICAgICAidGl0bGUiOiAiVkxDIC8gQ1ZMQyBPcHRpb25zIiwKICAgICAgImRlc2NyaXB0aW9uIjogIlZMQyAvIENWTEMgb3B0aW9ucy48YnI+T25seSBjaGFuZ2UgaWYgeW91IGtub3cgd2hhdCB5b3UgYXJlIGRvaW5nLjxicj5MZWF2ZSBibGFuayB0byBzZXQgZGVmYXVsdCBzZXR0aW5ncy4iLAogICAgICAicGxhY2Vob2xkZXIiOiAiTGVhdmUgYmxhbmsgdG8gc2V0IGRlZmF1bHQgc2V0dGluZ3MiCiAgICB9LAogICAgImJ1ZmZlclNpemUiOiB7CiAgICAgICJ0aXRsZSI6ICJCdWZmZXIgU2l6ZSIsCiAgICAgICJkZXNjcmlwdGlvbiI6ICJCdWZmZXIgc2l6ZSBpbiBNQi48YnI+TTNVODogSWYgdGhlIFRTIHNlZ21lbnQgc21hbGxlciB0aGVuIHRoZSBidWZmZXIgc2l6ZSwgdGhlIGZpbGUgc2l6ZSBvZiB0aGUgc2VnbWVudCBpcyB1c2VkLiIKICAgIH0sCiAgICAic3RvcmVCdWZmZXJJblJBTSI6IHsKICAgICAgInRpdGxlIjogIlN0b3JlIGJ1ZmZlciBpbiBSQU0iLAogICAgICAiZGVzY3JpcHRpb24iOiAiSWYgY2hlY2tlZCwgd3JpdGUgYnVmZmVyIHRvIFJBTSBpbnN0ZWFkIG9mIHdyaXRpbmcgdG8gZGlzayIKICAgIH0sCiAgICAiYnVmZmVyVGltZW91dCI6IHsKICAgICAgInRpdGxlIjogIlRpbWVvdXQgZm9yIG5ldyBjbGllbnQgY29ubmVjdGlvbnMiLAogICAgICAiZGVzY3JpcHRpb24iOiAiVGhlIHhUZVZlIGJ1ZmZlciB3YWl0cyB1bnRpbCBuZXcgY2xpZW50IGNvbm5lY3Rpb25zIGFyZSBlc3RhYmxpc2hlZC4gSGVscGZ1bCBmb3IgZmFzdCBjaGFubmVsIHN3aXRjaGluZy4gVmFsdWUgaW4gbWlsbGlzZWNvbmRzLiIsCiAgICAgICJwbGFjZWhvbGRlciI6ICIxMDAiCiAgICB9LAogICAgInVzZXJBZ2VudCI6IHsKICAgICAgInRpdGxlIjogIlVzZXIgQWdlbnQiLAogICAgICAiZGVzY3JpcHRpb24iOiAiVXNlciBBZ2VudCBmb3IgSFRUUCByZXF1ZXN0cy4gRm9yIGV2ZXJ5IEhUVFAgY29ubmVjdGlvbiwgdGhpcyB2YWx1ZSBpcyB1c2VkIGZvciB0aGUgdXNlciBhZ2VudC4gU2hvdWxkIG9ubHkgYmUgY2hhbmdlZCBpZiB4VGVWZSBpcyBibG9ja2VkLiIsCiAgICAgICJwbGFjZWhvbGRlciI6ICJ4VGVWZSIKICAgIH0sCiAgICAiYmFja3VwUGF0aCI6IHsKICAgICAgInRpdGxlIjogIkxvY2F0aW9uIGZvciBhdXRvbWF0aWMgYmFja3VwcyIsCiAgICAgICJwbGFjZWhvbGRlciI6ICIvbW50L2RhdGEvYmFja3VwL3h0ZXZlLyIsCiAgICAgICJkZXNjcmlwdGlvbiI6ICJCZWZvcmUgYW55IHVwZGF0ZSBvZiB0aGUgcHJvdmlkZXIgZGF0YSBieSB0aGUgc2NoZWR1bGUsIHhUZVZlIGNyZWF0ZXMgYSBiYWNrdXAuIFRoZSBwYXRoIGZvciB0aGUgYXV0b21hdGljIGJhY2t1cHMgY2FuIGJlIGNoYW5nZWQuIHhUZVZlIHJlcXVpcmVzIHdyaXRlIHBlcm1pc3Npb24gZm9yIHRoaXMgZm9sZGVyLiIKICAgIH0sCiAgICAidGVtcFBhdGgiOiB7CiAgICAgICJ0aXRsZSI6ICJMb2NhdGlvbiBmb3IgdGhlIHRlbXBvcmFyeSBmaWxlcyIsCiAgICAgICJwbGFjZWhvbGRlciI6ICIvdG1wL3h0ZXZlLyIsCiAgICAgICJkZXNjcmlwdGlvbiI6ICJMb2NhdGlvbiBmb3IgdGhlIGJ1ZmZlciBmaWxlcy4iCiAgICB9LAogICAgImJhY2t1cEtlZXAiOiB7CiAgICAgICJ0aXRsZSI6ICJOdW1iZXIgb2YgYmFja3VwcyB0byBrZWVwIiwKICAgICAgImRlc2NyaXB0aW9uIjogIk51bWJlciBvZiBiYWNrdXBzIHRvIGtlZXAuIE9sZGVyIGJhY2t1cHMgYXJlIGF1dG9tYXRpY2FsbHkgZGVsZXRlZC4iCiAgICB9LAogICAgImF1dGhlbnRpY2F0aW9uV0VCIjogewogICAgICAidGl0bGUiOiAiV0VCIEF1dGhlbnRpY2F0aW9uIiwKICAgICAgImRlc2NyaXB0aW9uIjogIkFjY2VzcyB0byB0aGUgd2ViIGludGVyZmFjZSBvbmx5IHBvc3NpYmxlIHdpdGggY3JlZGVudGlhbHMuIgogICAgfSwKICAgICJhdXRoZW50aWNhdGlvblBNUyI6IHsKICAgICAgInRpdGxlIjogIlBNUyBBdXRoZW50aWNhdGlvbiIsCiAgICAgICJkZXNjcmlwdGlvbiI6ICJQbGV4IHJlcXVlc3RzIGFyZSBvbmx5IHBvc3NpYmxlIHdpdGggYXV0aGVudGljYXRpb24uIDxicj48Yj5XYXJuaW5nISEhPC9iPiBBZnRlciBhY3RpdmF0aW5nIHRoaXMgZnVuY3Rpb24geFRlVmUgbXVzdCBiZSBkZWxldGUgaW4gdGhlIFBNUyBEVlIgc2V0dGluZ3MgYW5kIHNldCB1cCBhZ2Fpbi4iCiAgICB9LAogICAgImF1dGhlbnRpY2F0aW9uTTNVIjogewogICAgICAidGl0bGUiOiAiTTNVIEF1dGhlbnRpY2F0aW9uIiwKICAgICAgImRlc2NyaXB0aW9uIjogIkRvd25sb2FkaW5nIHRoZSB4dGV2ZS5tM3UgZmlsZSB2aWEgYW4gSFRUUCByZXF1ZXN0IGlzIG9ubHkgcG9zc2libGUgd2l0aCBhdXRoZW50aWNhdGlvbi4iCiAgICB9LAogICAgImF1dGhlbnRpY2F0aW9uWE1MIjogewogICAgICAidGl0bGUiOiAiWE1MIEF1dGhlbnRpY2F0aW9uIiwKICAgICAgImRlc2NyaXB0aW9uIjogIkRvd25sb2FkaW5nIHRoZSB4dGV2ZS54bWwgZmlsZSB2aWEgYW4gSFRUUCByZXF1ZXN0IGlzIG9ubHkgcG9zc2libGUgd2l0aCBhdXRoZW50aWNhdGlvbiIKICAgIH0sCiAgICAiYXV0aGVudGljYXRpb25BUEkiOiB7CiAgICAgICJ0aXRsZSI6ICJBUEkgQXV0aGVudGljYXRpb24iLAogICAgICAiZGVzY3JpcHRpb24iOiAiQWNjZXNzIHRvIHRoZSBBUEkgaW50ZXJmYWNlIGlzIG9ubHkgcG9zc2libGUgd2l0aCBhdXRoZW50aWNhdGlvbi4iCiAgICB9CiAgfSwKICAid2l6YXJkIjogewogICAgImVwZ1NvdXJjZSI6IHsKICAgICAgInRpdGxlIjogIkVQRyBTb3VyY2UiLAogICAgICAiZGVzY3JpcHRpb24iOiAiUE1TOjxicj4tIFVzZSBFUEcgZGF0YSBmcm9tIFBsZXggb3IgRW1ieSA8YnI+PGJyPlhFUEc6PGJyPi0gVXNlIG9mIG9uZSBvciBtb3JlIFhNTFRWIGZpbGVzPGJyPi0gQ2hhbm5lbCBtYW5hZ2VtZW50PGJyPi0gTTNVIC8gWE1MVFYgZXhwb3J0IChIVFRQIGxpbmsgZm9yIElQVFYgYXBwcykiCiAgICB9LAogICAgInR1bmVyIjogewogICAgICAidGl0bGUiOiAiTnVtYmVyIG9mIHR1bmVycyIsCiAgICAgICJkZXNjcmlwdGlvbiI6ICJOdW1iZXIgb2YgcGFyYWxsZWwgY29ubmVjdGlvbnMgdGhhdCBjYW4gYmUgZXN0YWJsaXNoZWQgdG8gdGhlIHByb3ZpZGVyLjxicj5BdmFpbGFibGUgZm9yOiBQbGV4LCBFbWJ5IChIREhSKSwgTTNVICh3aXRoIGFjdGl2ZSBidWZmZXIpLjxicj5BZnRlciBhIGNoYW5nZSwgeFRlVmUgbXVzdCBiZSBkZWxldGUgaW4gdGhlIFBsZXggLyBFbWJ5IERWUiBzZXR0aW5ncyBhbmQgc2V0IHVwIGFnYWluLiIKICAgIH0sCiAgICAibTN1IjogewogICAgICAidGl0bGUiOiAiTTNVIFBsYXlsaXN0IiwKICAgICAgInBsYWNlaG9sZGVyIjogIkZpbGUgcGF0aCBvciBVUkwgb2YgdGhlIE0zVSIsCiAgICAgICJkZXNjcmlwdGlvbiI6ICJMb2NhbCBvciByZW1vdGUgcGxheWxpc3RzIgogICAgfSwKICAgICJ4bWx0diI6IHsKICAgICAgInRpdGxlIjogIlhNTFRWIEZpbGUiLAogICAgICAicGxhY2Vob2xkZXIiOiAiRmlsZSBwYXRoIG9yIFVSTCBvZiB0aGUgWE1MVFYiLAogICAgICAiZGVzY3JpcHRpb24iOiAiTG9jYWwgb3IgcmVtb3RlIFhNTFRWIGZpbGUiCiAgICB9CiAgfSwKICAibG9naW4iOiB7CiAgICAiZmFpbGVkIjogIlVzZXIgYXV0aGVudGljYXRpb24gZmFpbGVkIiwKICAgICJoZWFkbGluZSI6ICJMb2dpbiIsCiAgICAidXNlcm5hbWUiOiB7CiAgICAgICJ0aXRsZSI6ICJVc2VybmFtZSIsCiAgICAgICJwbGFjZWhvbGRlciI6ICJVc2VybmFtZSIKICAgIH0sCiAgICAicGFzc3dvcmQiOiB7CiAgICAgICJ0aXRsZSI6ICJQYXNzd29yZCIsCiAgICAgICJwbGFjZWhvbGRlciI6ICJQYXNzd29yZCIKICAgIH0KICB9LAogICJhY2NvdW50IjogewogICAgImZhaWxlZCI6ICJQYXNzd29yZCBkb2VzIG5vdCBtYXRjaCIsCiAgICAiaGVhZGxpbmUiOiAiQ3JlYXRlIHVzZXIgYWNjb3VudCIsCiAgICAidXNlcm5hbWUiOiB7CiAgICAgICJ0aXRsZSI6ICJVc2VybmFtZSIsCiAgICAgICJwbGFjZWhvbGRlciI6ICJVc2VybmFtZSIKICAgIH0sCiAgICAicGFzc3dvcmQiOiB7CiAgICAgICJ0aXRsZSI6ICJQYXNzd29yZCIsCiAgICAgICJwbGFjZWhvbGRlciI6ICJQYXNzd29yZCIKICAgIH0sCiAgICAiY29uZmlybSI6IHsKICAgICAgInRpdGxlIjogIkNvbmZpcm0iLAogICAgICAicGxhY2Vob2xkZXIiOiAiQ29uZmlybSIKICAgIH0KICB9Cn0=" + webUI["html/lang/en.json"] = "ewogICJtYWluTWVudSI6IHsKICAgICJpdGVtIjogewogICAgICAicGxheWxpc3QiOiAiUGxheWxpc3QiLAogICAgICAicG1zSUQiOiAiUE1TIElEIiwKICAgICAgImZpbHRlciI6ICJGaWx0ZXIiLAogICAgICAieG1sdHYiOiAiWE1MVFYiLAogICAgICAibWFwcGluZyI6ICJNYXBwaW5nIiwKICAgICAgInVzZXJzIjogIlVzZXJzIiwKICAgICAgInNldHRpbmdzIjogIlNldHRpbmdzIiwKICAgICAgImxvZyI6ICJMb2ciLAogICAgICAibG9nb3V0IjogIkxvZ291dCIKICAgIH0sCiAgICAiaGVhZGxpbmUiOiB7CiAgICAgICJwbGF5bGlzdCI6ICJMb2NhbCBvciByZW1vdGUgcGxheWxpc3RzIiwKICAgICAgImZpbHRlciI6ICJGaWx0ZXIgcGxheWxpc3QiLAogICAgICAieG1sdHYiOiAiTG9jYWwgb3IgcmVtb3RlIFhNTFRWIGZpbGVzIiwKICAgICAgIm1hcHBpbmciOiAiTWFwIHBsYXlsaXN0IGNoYW5uZWxzIHRvIEVQRyBjaGFubmVscyIsCiAgICAgICJ1c2VycyI6ICJVc2VyIG1hbmFnZW1lbnQiLAogICAgICAic2V0dGluZ3MiOiAiU2V0dGluZ3MiLAogICAgICAibG9nIjogIkxvZyIsCiAgICAgICJsb2dvdXQiOiAiTG9nb3V0IgogICAgfQogIH0sCiAgImNvbmZpcm0iOiB7CiAgICAicmVzdG9yZSI6ICJBbGwgZGF0YSB3aWxsIGJlIHJlcGxhY2VkIHdpdGggdGhvc2UgZnJvbSB0aGUgYmFja3VwLiBTaG91bGQgdGhlIGZpbGVzIGJlIHJlc3RvcmVkPyIKICB9LAogICJhbGVydCI6IHsKICAgICJmaWxlTG9hZGluZ0Vycm9yIjogIkZpbGUgY291bGRuJ3QgYmUgbG9hZGVkIiwKICAgICJpbnZhbGlkQ2hhbm5lbE51bWJlciI6ICJJbnZhbGlkIGNoYW5uZWwgbnVtYmVyIiwKICAgICJtaXNzaW5nSW5wdXQiOiAiTWlzc2luZyBpbnB1dCIKICB9LAogICJidXR0b24iOiB7CiAgICAiYmFjayI6ICJCYWNrIiwKICAgICJiYWNrdXAiOiAiQmFja3VwIiwKICAgICJidWxrRWRpdCI6ICJCdWxrIEVkaXQiLAogICAgImNhbmNlbCI6ICJDYW5jZWwiLAogICAgImRlbGV0ZSI6ICJEZWxldGUiLAogICAgImRvbmUiOiAiRG9uZSIsCiAgICAibG9naW4iOiAiTG9naW4iLAogICAgIm5ldyI6ICJOZXciLAogICAgIm5leHQiOiAiTmV4dCIsCiAgICAicmVzdG9yZSI6ICJSZXN0b3JlIiwKICAgICJzYXZlIjogIlNhdmUiLAogICAgInNlYXJjaCI6ICJTZWFyY2giLAogICAgInVwZGF0ZSI6ICJVcGRhdGUiLAogICAgImNyYWV0ZUFjY291bnQiOiAiQ3JlYXRlIEFjY291bnQiLAogICAgInJlc2V0TG9ncyI6ICJSZXNldCBMb2dzIiwKICAgICJ1cGxvYWRMb2dvIjogIlVwbG9hZCBMb2dvIgogIH0sCiAgImZpbHRlciI6IHsKICAgICJ0YWJsZSI6IHsKICAgICAgInN0YXJ0aW5nQ2hhbm5lbCI6ICJTdGFydGluZyBDaC4gTm8uIiwKICAgICAgIm5hbWUiOiAiRmlsdGVyIE5hbWUiLAogICAgICAidHlwZSI6ICJGaWx0ZXIgVHlwZSIsCiAgICAgICJmaWx0ZXIiOiAiRmlsdGVyIgogICAgfSwKICAgICJjdXN0b20iOiAiQ3VzdG9tIiwKICAgICJncm91cCI6ICJNM1UgR3JvdXAiLAogICAgIm5hbWUiOiB7CiAgICAgICJ0aXRsZSI6ICJGaWx0ZXIgTmFtZSIsCiAgICAgICJwbGFjZWhvbGRlciI6ICJGaWx0ZXIgbmFtZSIsCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiCiAgICB9LAogICAgImRlc2NyaXB0aW9uIjogewogICAgICAidGl0bGUiOiAiRGVzY3JpcHRpb24iLAogICAgICAicGxhY2Vob2xkZXIiOiAiRGVzY3JpcHRpb24iLAogICAgICAiZGVzY3JpcHRpb24iOiAiIgogICAgfSwKICAgICJ0eXBlIjogewogICAgICAidGl0bGUiOiAiVHlwZSIsCiAgICAgICJncm91cFRpdGxlIjogIkdyb3VwIFRpdGxlIiwKICAgICAgImN1c3RvbUZpbHRlciI6ICJDdXN0b20gRmlsdGVyIgogICAgfSwKICAgICJjYXNlU2Vuc2l0aXZlIjogewogICAgICAidGl0bGUiOiAiQ2FzZSBTZW5zaXRpdmUiLAogICAgICAicGxhY2Vob2xkZXIiOiAiIiwKICAgICAgImRlc2NyaXB0aW9uIjogIiIKICAgIH0sCiAgICAiZmlsdGVyUnVsZSI6IHsKICAgICAgInRpdGxlIjogIkZpbHRlciBSdWxlIiwKICAgICAgInBsYWNlaG9sZGVyIjogIlNwb3J0IHtIRH0gIXtFUyxJVH0iLAogICAgICAiZGVzY3JpcHRpb24iOiAiIgogICAgfSwKICAgICJmaWx0ZXJHcm91cCI6IHsKICAgICAgInRpdGxlIjogIkdyb3VwIFRpdGxlIiwKICAgICAgInBsYWNlaG9sZGVyIjogIiIsCiAgICAgICJkZXNjcmlwdGlvbiI6ICJTZWxlY3QgYSBNM1UgZ3JvdXAuIChDb3VudGVyKTxicj5DaGFuZ2luZyB0aGUgZ3JvdXAgdGl0bGUgaW4gdGhlIE0zVSBpbnZhbGlkYXRlcyB0aGUgZmlsdGVyLiIKICAgIH0sCiAgICAiaW5jbHVkZSI6IHsKICAgICAgInRpdGxlIjogIkluY2x1ZGUiLAogICAgICAicGxhY2Vob2xkZXIiOiAiRkhELFVIRCIsCiAgICAgICJkZXNjcmlwdGlvbiI6ICJDaGFubmVsIG5hbWUgbXVzdCBpbmNsdWRlLjxicj4oQ29tbWEgc2VwYXJhdGVkKSBDb21tYSBtZWFucyBvciIKICAgIH0sCiAgICAiZXhjbHVkZSI6IHsKICAgICAgInRpdGxlIjogIkV4Y2x1ZGUiLAogICAgICAicGxhY2Vob2xkZXIiOiAiRVMsSVQiLAogICAgICAiZGVzY3JpcHRpb24iOiAiQ2hhbm5lbCBuYW1lIG11c3Qgbm90IGNvbnRhaW4uPGJyPihDb21tYSBzZXBhcmF0ZWQpIENvbW1hIG1lYW5zIG9yIgogICAgfSwKICAgICJwcmVzZXJ2ZU1hcHBpbmciOiB7CiAgICAgICJ0aXRsZSI6ICJQcmVzZXJ2ZSBFeGlzdGluZyBNM1U8YnI+Q2hhbm5lbCBOdW1iZXJzIiwKICAgICAgInBhbGNlaG9sZGVyIjogIiIsCiAgICAgICJkZXNjcmlwdGlvbiI6ICJQcmVzZXJ2ZSBleGlzdGluZyBNM1UgcGxheWxpc3QgY2hhbm5lbCBudW1iZXJzPyIKICAgIH0sCiAgICAic3RhcnRpbmdDaGFubmVsIjogewogICAgICAidGl0bGUiOiAiU3RhcnRpbmcgQ2hhbm5lbCBOdW1iZXIiLAogICAgICAicGxhY2Vob2xkZXIiOiAiIiwKICAgICAgImRlc2NyaXB0aW9uIjogIiIKICAgIH0KICB9LAogICJwbGF5bGlzdCI6IHsKICAgICJ0YWJsZSI6IHsKICAgICAgInBsYXlsaXN0IjogIlBsYXlsaXN0IiwKICAgICAgInR1bmVyIjogIlR1bmVyIiwKICAgICAgImxhc3RVcGRhdGUiOiAiTGFzdCBVcGRhdGUiLAogICAgICAiYXZhaWxhYmlsaXR5IjogIkF2YWlsYWJpbGl0eSIsCiAgICAgICJ0eXBlIjogIlR5cGUiLAogICAgICAic3RyZWFtcyI6ICJTdHJlYW1zIiwKICAgICAgImdyb3VwVGl0bGUiOiAiZ3JvdXAtdGl0bGUiLAogICAgICAidHZnSUQiOiAidHZnLWlkIiwKICAgICAgInVuaXF1ZUlEIjogIlVuaXF1ZSBJRCIKICAgIH0sCiAgICAicGxheWxpc3RUeXBlIjogewogICAgICAidGl0bGUiOiAiUGxheWxpc3QgdHlwZSIsCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLAogICAgICAiZGVzY3JpcHRpb24iOiAiIgogICAgfSwKICAgICJ0eXBlIjogewogICAgICAidGl0bGUiOiAiVHlwZSIsCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLAogICAgICAiZGVzY3JpcHRpb24iOiAiIgogICAgfSwKICAgICJuYW1lIjogewogICAgICAidGl0bGUiOiAiTmFtZSIsCiAgICAgICJwbGFjZWhvbGRlciI6ICJQbGF5bGlzdCBuYW1lIiwKICAgICAgImRlc2NyaXB0aW9uIjogIiIKICAgIH0sCiAgICAiZGVzY3JpcHRpb24iOiB7CiAgICAgICJ0aXRsZSI6ICJEZXNjcmlwdGlvbiIsCiAgICAgICJwbGFjZWhvbGRlciI6ICJEZXNjcmlwdGlvbiIsCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiCiAgICB9LAogICAgImZpbGVNM1UiOiB7CiAgICAgICJ0aXRsZSI6ICJNM1UgRmlsZSIsCiAgICAgICJwbGFjZWhvbGRlciI6ICJGaWxlIHBhdGggb3IgVVJMIG9mIHRoZSBNM1UiLAogICAgICAiZGVzY3JpcHRpb24iOiAiIgogICAgfSwKICAgICJmaWxlSERIUiI6IHsKICAgICAgInRpdGxlIjogIkhESG9tZVJ1biBJUCIsCiAgICAgICJwbGFjZWhvbGRlciI6ICJJUCBhZGRyZXNzIGFuZCBwb3J0ICgxOTIuMTY4LjEuMTA6NTAwNCkiLAogICAgICAiZGVzY3JpcHRpb24iOiAiIgogICAgfSwKICAgICJ0dW5lciI6IHsKICAgICAgInRpdGxlIjogIlR1bmVyIC8gU3RyZWFtcyIsCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLAogICAgICAiZGVzY3JpcHRpb24iOiAiTnVtYmVyIG9mIHBhcmFsbGVsIGNvbm5lY3Rpb25zIHRoYXQgY2FuIGJlIGVzdGFibGlzaGVkIHRvIHRoZSBwcm92aWRlci4gPGJyPk9ubHkgYXZhaWxhYmxlIHdpdGggYWN0aXZhdGVkIGJ1ZmZlci48YnI+TmV3IHNldHRpbmdzIHdpbGwgb25seSBiZSBhcHBsaWVkIGFmdGVyIHF1aXR0aW5nIGFsbCBzdHJlYW1zLiIKICAgIH0KICB9LAogICJ4bWx0diI6IHsKICAgICJ0YWJsZSI6IHsKICAgICAgImd1aWRlIjogIkd1aWRlIiwKICAgICAgImxhc3RVcGRhdGUiOiAiTGFzdCBVcGRhdGUiLAogICAgICAiYXZhaWxhYmlsaXR5IjogIkF2YWlsYWJpbGl0eSIsCiAgICAgICJjaGFubmVscyI6ICJDaGFubmVscyIsCiAgICAgICJwcm9ncmFtcyI6ICJQcm9ncmFtcyIKICAgIH0sCiAgICAibmFtZSI6IHsKICAgICAgInRpdGxlIjogIk5hbWUiLAogICAgICAicGxhY2Vob2xkZXIiOiAiR3VpZGUgbmFtZSIsCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiCiAgICB9LAogICAgImRlc2NyaXB0aW9uIjogewogICAgICAidGl0bGUiOiAiRGVzY3JpcHRpb24iLAogICAgICAicGxhY2Vob2xkZXIiOiAiRGVzY3JpcHRpb24iLAogICAgICAiZGVzY3JpcHRpb24iOiAiIgogICAgfSwKICAgICJmaWxlWE1MVFYiOiB7CiAgICAgICJ0aXRsZSI6ICJYTUxUViBGaWxlIiwKICAgICAgInBsYWNlaG9sZGVyIjogIkZpbGUgcGF0aCBvciBVUkwgb2YgdGhlIFhNTFRWIiwKICAgICAgImRlc2NyaXB0aW9uIjogIiIKICAgIH0KICB9LAogICJtYXBwaW5nIjogewogICAgInRhYmxlIjogewogICAgICAiY2hObyI6ICJDaC4gTm8uIiwKICAgICAgImxvZ28iOiAiTG9nbyIsCiAgICAgICJjaGFubmVsTmFtZSI6ICJDaGFubmVsIE5hbWUiLAogICAgICAidXBkYXRlQ2hhbm5lbE5hbWVSZWdleCI6ICJVcGQuIFJ4LiIsCiAgICAgICJwbGF5bGlzdCI6ICJQbGF5bGlzdCIsCiAgICAgICJncm91cFRpdGxlIjogIkdyb3VwIFRpdGxlIiwKICAgICAgInhtbHR2RmlsZSI6ICJYTUxUViBGaWxlIiwKICAgICAgInhtbHR2SUQiOiAiWE1MVFYgSUQiLAogICAgICAidGltZXNoaWZ0IjogIlRpbWVzaGlmdCIKICAgIH0sCiAgICAiYWN0aXZlIjogewogICAgICAidGl0bGUiOiAiQWN0aXZlIiwKICAgICAgInBsYWNlaG9sZGVyIjogIiIsCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiCiAgICB9LAogICAgImNoYW5uZWxOYW1lIjogewogICAgICAidGl0bGUiOiAiQ2hhbm5lbCBOYW1lIiwKICAgICAgInBsYWNlaG9sZGVyIjogIiIsCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiCiAgICB9LAogICAgImRlc2NyaXB0aW9uIjogewogICAgICAidGl0bGUiOiAiQ2hhbm5lbCBEZXNjcmlwdGlvbiIsCiAgICAgICJwbGFjZWhvbGRlciI6ICJVc2VkIGJ5IHRoZSBEdW1teSBhcyBhbiBYTUwgZGVzY3JpcHRpb24iLAogICAgICAiZGVzY3JpcHRpb24iOiAiIgogICAgfSwKICAgICJ1cGRhdGVDaGFubmVsTmFtZSI6IHsKICAgICAgInRpdGxlIjogIlVwZGF0ZSBDaGFubmVsIE5hbWUiLAogICAgICAicGxhY2Vob2xkZXIiOiAiIiwKICAgICAgImRlc2NyaXB0aW9uIjogIiIKICAgIH0sCiAgICAidXBkYXRlQ2hhbm5lbE5hbWVSZWdleCI6IHsKICAgICAgInRpdGxlIjogIkNoYW5uZWwgbmFtZSB1cGRhdGUgcmVnZXgiLAogICAgICAicGxhY2Vob2xkZXIiOiAiRm9yIGV4YW1wbGUgXlBQVlsgXFxcXC1fXT8xLioiLAogICAgICAiZGVzY3JpcHRpb24iOiAiT24gdXBkYXRlLCBpZiBhbnkgbmV3IGNoYW5uZWwgbmFtZSBtYXRjaGVzIHRoaXMgcmVnZXgsIHJlbmFtZSBjdXJyZW50IGNoYW5uZWwgdG8gdGhlIGZpcnN0IG1hdGNoaW5nIG5hbWUiCiAgICB9LAogICAgInVwZGF0ZUNoYW5uZWxOYW1lQnlHcm91cFJlZ2V4IjogewogICAgICAidGl0bGUiOiAiT25seSBieSBncm91cCByZWdleCIsCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLAogICAgICAiZGVzY3JpcHRpb24iOiAiUmVuYW1lIHRoaXMgY2hhbm5lbCBvbmx5IGlmIGN1cnJlbnQgdXNlci1kZWZpbmVkIGdyb3VwIG1hdGNoZXMgdGhpcyByZWdleCIKICAgIH0sCiAgICAidXBkYXRlQ2hhbm5lbEdyb3VwIjogewogICAgICAidGl0bGUiOiAiVXBkYXRlIENoYW5uZWwgR3JvdXAiLAogICAgICAicGxhY2Vob2xkZXIiOiAiIiwKICAgICAgImRlc2NyaXB0aW9uIjogIklmIGNoZWNrZWQsIHVzZSBncm91cCBmcm9tIHRoZSBkYXRhYmFzZSIKICAgIH0sCiAgICAiY2hhbm5lbExvZ28iOiB7CiAgICAgICJ0aXRsZSI6ICJMb2dvIFVSTCIsCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLAogICAgICAiZGVzY3JpcHRpb24iOiAiIgogICAgfSwKICAgICJ1cGRhdGVDaGFubmVsTG9nbyI6IHsKICAgICAgInRpdGxlIjogIlVwZGF0ZSBDaGFubmVsIExvZ28iLAogICAgICAicGxhY2Vob2xkZXIiOiAiIiwKICAgICAgImRlc2NyaXB0aW9uIjogIiIKICAgIH0sCiAgICAiZXBnQ2F0ZWdvcnkiOiB7CiAgICAgICJ0aXRsZSI6ICJFUEcgQ2F0ZWdvcnkiLAogICAgICAicGxhY2Vob2xkZXIiOiAiIiwKICAgICAgImRlc2NyaXB0aW9uIjogIiIKICAgIH0sCiAgICAibTN1R3JvdXBUaXRsZSI6IHsKICAgICAgInRpdGxlIjogIkdyb3VwIFRpdGxlICh4dGV2ZS5tM3UpIiwKICAgICAgInBsYWNlaG9sZGVyIjogIiIsCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiCiAgICB9LAogICAgInhtbHR2RmlsZSI6IHsKICAgICAgInRpdGxlIjogIlhNTFRWIEZpbGUiLAogICAgICAicGxhY2Vob2xkZXIiOiAiIiwKICAgICAgImRlc2NyaXB0aW9uIjogIiIKICAgIH0sCiAgICAieG1sdHZDaGFubmVsIjogewogICAgICAidGl0bGUiOiAiWE1MVFYgQ2hhbm5lbCIsCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLAogICAgICAiZGVzY3JpcHRpb24iOiAiIgogICAgfSwKICAgICJ0aW1lc2hpZnQiOiB7CiAgICAgICJ0aXRsZSI6ICJUaW1lc2hpZnQiLAogICAgICAicGxhY2Vob2xkZXIiOiAiMCIsCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiCiAgICB9CiAgfSwKICAidXNlcnMiOiB7CiAgICAidGFibGUiOiB7CiAgICAgICJ1c2VybmFtZSI6ICJVc2VybmFtZSIsCiAgICAgICJwYXNzd29yZCI6ICJQYXNzd29yZCIsCiAgICAgICJ3ZWIiOiAiV0VCIiwKICAgICAgInBtcyI6ICJQTVMiLAogICAgICAibTN1IjogIk0zVSIsCiAgICAgICJ4bWwiOiAiWE1MIiwKICAgICAgImFwaSI6ICJBUEkiCiAgICB9LAogICAgInVzZXJuYW1lIjogewogICAgICAidGl0bGUiOiAiVXNlcm5hbWUiLAogICAgICAicGxhY2Vob2xkZXIiOiAiVXNlcm5hbWUiLAogICAgICAiZGVzY3JpcHRpb24iOiAiIgogICAgfSwKICAgICJwYXNzd29yZCI6IHsKICAgICAgInRpdGxlIjogIlBhc3N3b3JkIiwKICAgICAgInBsYWNlaG9sZGVyIjogIlBhc3N3b3JkIiwKICAgICAgImRlc2NyaXB0aW9uIjogIiIKICAgIH0sCiAgICAiY29uZmlybSI6IHsKICAgICAgInRpdGxlIjogIkNvbmZpcm0iLAogICAgICAicGxhY2Vob2xkZXIiOiAiUGFzc3dvcmQgY29uZmlybSIsCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiCiAgICB9LAogICAgIndlYiI6IHsKICAgICAgInRpdGxlIjogIldlYiBBY2Nlc3MiLAogICAgICAicGxhY2Vob2xkZXIiOiAiIiwKICAgICAgImRlc2NyaXB0aW9uIjogIiIKICAgIH0sCiAgICAicG1zIjogewogICAgICAidGl0bGUiOiAiUE1TIEFjY2VzcyIsCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLAogICAgICAiZGVzY3JpcHRpb24iOiAiIgogICAgfSwKICAgICJtM3UiOiB7CiAgICAgICJ0aXRsZSI6ICJNM1UgQWNjZXNzIiwKICAgICAgInBsYWNlaG9sZGVyIjogIiIsCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiCiAgICB9LAogICAgInhtbCI6IHsKICAgICAgInRpdGxlIjogIlhNTCBBY2Nlc3MiLAogICAgICAicGxhY2Vob2xkZXIiOiAiIiwKICAgICAgImRlc2NyaXB0aW9uIjogIiIKICAgIH0sCiAgICAiYXBpIjogewogICAgICAidGl0bGUiOiAiQVBJIEFjY2VzcyIsCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLAogICAgICAiZGVzY3JpcHRpb24iOiAiIgogICAgfQogIH0sCiAgInNldHRpbmdzIjogewogICAgImNhdGVnb3J5IjogewogICAgICAiZ2VuZXJhbCI6ICJHZW5lcmFsIiwKICAgICAgIm1hcHBpbmciOiAiTWFwcGluZyIsCiAgICAgICJmaWxlcyI6ICJGaWxlcyIsCiAgICAgICJzdHJlYW1pbmciOiAiU3RyZWFtaW5nIiwKICAgICAgImJhY2t1cCI6ICJCYWNrdXAiLAogICAgICAiYXV0aGVudGljYXRpb24iOiAiQXV0aGVudGljYXRpb24iCiAgICB9LAogICAgInVwZGF0ZSI6IHsKICAgICAgInRpdGxlIjogIlNjaGVkdWxlIGZvciB1cGRhdGluZyAoUGxheWxpc3QsIFhNTFRWLCBCYWNrdXApIiwKICAgICAgInBsYWNlaG9sZGVyIjogIjAwMDAsMTAwMCwyMDAwIiwKICAgICAgImRlc2NyaXB0aW9uIjogIlRpbWUgaW4gMjQgaG91ciBmb3JtYXQgKDA4MDAgPSA4OjAwIGFtKS4gTW9yZSB0aW1lcyBjYW4gYmUgZW50ZXJlZCBjb21tYSBzZXBhcmF0ZWQuIExlYXZlIHRoaXMgZmllbGQgZW1wdHkgaWYgbm8gdXBkYXRlcyBhcmUgdG8gYmUgY2FycmllZCBvdXQuIgogICAgfSwKICAgICJhcGkiOiB7CiAgICAgICJ0aXRsZSI6ICJBUEkgSW50ZXJmYWNlIiwKICAgICAgImRlc2NyaXB0aW9uIjogIlZpYSBBUEkgaW50ZXJmYWNlIGl0IGlzIHBvc3NpYmxlIHRvIHNlbmQgY29tbWFuZHMgdG8geFRlVmUuIEFQSSBkb2N1bWVudGF0aW9uIGlzIDxhIGhyZWY9J2h0dHBzOi8vZ2l0aHViLmNvbS94dGV2ZS1wcm9qZWN0L3hUZVZlLURvY3VtZW50YXRpb24vYmxvYi9tYXN0ZXIvZW4vY29uZmlndXJhdGlvbi5tZCNhcGknPmhlcmU8L2E+IgogICAgfSwKICAgICJjbGVhclhNTFRWQ2FjaGUiOiB7CiAgICAgICJ0aXRsZSI6ICJDbGVhciBYTUxUViBjYWNoZSIsCiAgICAgICJkZXNjcmlwdGlvbiI6ICJJZiBjaGVja2VkLCBkbyBub3Qga2VlcCBYTUxUViBjYWNoZSBpbiBtZW1vcnkuPGJyPlNpZ25pZmljYWxseSByZWR1Y2VzIFJBTSB1c2FnZSBpbiBpZGxlIG1vZGUsPGJyPmJ1dCBzaWduaWZpY2FsbHkgc2xvd2luZyBkb3duIGV2ZXJ5IHN1YnNlcXVlbnQgdXBkYXRlIGluIFhFUEcgZGF0YWJhc2UuIgogICAgfSwKICAgICJkZWZhdWx0TWlzc2luZ0VQRyI6IHsKICAgICAgInRpdGxlIjogIkZpbGwgTWlzc2luZyBFUEcgRGF0YSIsCiAgICAgICJkZXNjcmlwdGlvbiI6ICJXaGVuIHRoZXJlIGlzIG5vIG1hdGNoaW5nIEVQRyBkYXRhIGZvciBjaGFubmVsLCA8YnI+YXV0b2ZpbGwgd2l0aCB4VGVWZSBkdW1teSBFUEcgZGF0YT8iCiAgICB9LAogICAgImVuYWJsZU1hcHBlZENoYW5uZWxzIjogewogICAgICAidGl0bGUiOiAiRW5hYmxlIG1hcHBlZCBjaGFubmVscyIsCiAgICAgICJkZXNjcmlwdGlvbiI6ICJBdXRvbWF0aWNhbGx5IGVuYWJsZSBjaGFubmVscyB3aXRoIGFzc2lnbmVkIEVQRyBkYXRhIgogICAgfSwKICAgICJkaXNhbGxvd1VSTER1cGxpY2F0ZXMiOiB7CiAgICAgICJ0aXRsZSI6ICJEaXNhbGxvdyBVUkwgZHVwbGljYXRlcyIsCiAgICAgICJkZXNjcmlwdGlvbiI6ICJJZiBjaGVja2VkLCBkbyBub3QgYWRkIGEgbmV3IGNoYW5uZWwgZnJvbSBwbGF5bGlzdCBpZiBjaGFubmVsIHdpdGggc3VjaCBVUkwgYWxyZWFkeSBleGlzdHMiCiAgICB9LAogICAgImVwZ1NvdXJjZSI6IHsKICAgICAgInRpdGxlIjogIkVQRyBTb3VyY2UiLAogICAgICAiZGVzY3JpcHRpb24iOiAiUE1TOjxicj4tIFVzZSBFUEcgZGF0YSBmcm9tIFBsZXggb3IgRW1ieSA8YnI+PGJyPlhFUEc6PGJyPi0gVXNlIG9mIG9uZSBvciBtb3JlIFhNTFRWIGZpbGVzPGJyPi0gQ2hhbm5lbCBtYW5hZ2VtZW50PGJyPi0gTTNVIC8gWE1MVFYgZXhwb3J0IChIVFRQIGxpbmsgZm9yIElQVFYgYXBwcykiCiAgICB9LAogICAgInR1bmVyIjogewogICAgICAidGl0bGUiOiAiTnVtYmVyIG9mIFR1bmVycyIsCiAgICAgICJkZXNjcmlwdGlvbiI6ICJOdW1iZXIgb2YgcGFyYWxsZWwgY29ubmVjdGlvbnMgdGhhdCBjYW4gYmUgZXN0YWJsaXNoZWQgdG8gdGhlIHByb3ZpZGVyLjxicj5BdmFpbGFibGUgZm9yOiBQbGV4LCBFbWJ5IChIREhSKSwgTTNVICh3aXRoIGFjdGl2ZSBidWZmZXIpLjxicj5BZnRlciBhIGNoYW5nZSwgeFRlVmUgbXVzdCBiZSBkZWxldGUgaW4gdGhlIFBsZXggLyBFbWJ5IERWUiBzZXR0aW5ncyBhbmQgc2V0IHVwIGFnYWluLiIKICAgIH0sCiAgICAiaG9zdElQIjogewogICAgICAidGl0bGUiOiAiSG9zdCBJUCIsCiAgICAgICJkZXNjcmlwdGlvbiI6ICJJUCBhZGRyZXNzIHhUZVZlIHdpbGwgdXNlIHRvIGZvcm0gTTNVIGFuZCBYTUxUViBmaWxlcyIKICAgIH0sCiAgICAiaG9zdE5hbWUiOiB7CiAgICAgICJ0aXRsZSI6ICJIb3N0IE5hbWUgT3ZlcnJpZGUiLAogICAgICAiZGVzY3JpcHRpb24iOiAiSG9zdG5hbWUgeFRlVmUgd2lsbCB1c2UgdG8gZm9ybSBNM1UgYW5kIFhNTFRWIGZpbGVzLiBUaGlzIHdpbGwgb3ZlcnJpZGUgSG9zdCBJUCBpZiBzZXQiCiAgICB9LAogICAgInRsc01vZGUiOiB7CiAgICAgICJ0aXRsZSI6ICJUTFMgKEhUVFBTKSBtb2RlIiwKICAgICAgImRlc2NyaXB0aW9uIjogIkNoYW5nZXMgd2ViIHNlcnZlciBwcm90b2NvbCB0byBIVFRQUy48YnI+Rm9yIGRldGFpbHMsIHNlZSA8YT5odHRwczovL2dpdGh1Yi5jb20vU2VuZXhDcmVuc2hhdy94VGVWZSN0bHMtbW9kZTwvYT4iCiAgICB9LAogICAgImZpbGVzVXBkYXRlIjogewogICAgICAidGl0bGUiOiAiVXBkYXRlcyBhbGwgZmlsZXMgYXQgc3RhcnR1cCIsCiAgICAgICJkZXNjcmlwdGlvbiI6ICJVcGRhdGVzIGFsbCBwbGF5bGlzdHMsIHR1bmVyIGFuZCBYTUxUViBmaWxlcyBhdCBzdGFydHVwLiIKICAgIH0sCiAgICAiY2FjaGVJbWFnZXMiOiB7CiAgICAgICJ0aXRsZSI6ICJJbWFnZSBDYWNoaW5nIiwKICAgICAgImRlc2NyaXB0aW9uIjogIkFsbCBpbWFnZXMgZnJvbSB0aGUgWE1MVFYgZmlsZSBhcmUgY2FjaGVkLCBhbGxvd2luZyBmYXN0ZXIgcmVuZGVyaW5nIG9mIHRoZSBncmlkIGluIHRoZSBjbGllbnQuPGJyPkRvd25sb2FkaW5nIHRoZSBpbWFnZXMgbWF5IHRha2UgYSB3aGlsZSBhbmQgd2lsbCBiZSBkb25lIGluIHRoZSBiYWNrZ3JvdW5kLiIKICAgIH0sCiAgICAicmVwbGFjZUVtcHR5SW1hZ2VzIjogewogICAgICAidGl0bGUiOiAiUmVwbGFjZSBtaXNzaW5nIHByb2dyYW0gaW1hZ2VzIiwKICAgICAgImRlc2NyaXB0aW9uIjogIklmIHRoZSBwb3N0ZXIgaW4gdGhlIFhNTFRWIHByb2dyYW0gaXMgbWlzc2luZywgdGhlIGNoYW5uZWwgbG9nbyB3aWxsIGJlIHVzZWQuIgogICAgfSwKICAgICJ4dGV2ZUF1dG9VcGRhdGUiOiB7CiAgICAgICJ0aXRsZSI6ICJBdXRvbWF0aWMgdXBkYXRlIG9mIHhUZVZlIiwKICAgICAgImRlc2NyaXB0aW9uIjogIklmIGEgbmV3IHZlcnNpb24gb2YgeFRlVmUgaXMgYXZhaWxhYmxlLCBpdCB3aWxsIGJlIGF1dG9tYXRpY2FsbHkgaW5zdGFsbGVkLiBUaGUgdXBkYXRlcyBhcmUgZG93bmxvYWRlZCBmcm9tIEdpdEh1Yi4iCiAgICB9LAogICAgInN0cmVhbUJ1ZmZlcmluZyI6IHsKICAgICAgInRpdGxlIjogIlN0cmVhbSBCdWZmZXIiLAogICAgICAiZGVzY3JpcHRpb24iOiAiRnVuY3Rpb25zIG9mIHRoZSBidWZmZXI6PGJyPi0gVGhlIHN0cmVhbSBpcyBwYXNzZWQgZnJvbSB4VGVWZSwgRkZtcGVnIG9yIFZMQyB0byBQbGV4LCBFbWJ5IG9yIE0zVSBQbGF5ZXI8YnI+LSBTbWFsbCBqZXJraW5nIG9mIHRoZSBzdHJlYW1zIGNhbiBiZSBjb21wZW5zYXRlZDxicj4tIEhMUyAvIE0zVTggc3VwcG9ydDxicj4tIFJUUCAvIFJUUFMgc3VwcG9ydCAob25seSBGRm1wZWcgb3IgVkxDKTxicj4tIFJlLXN0cmVhbWluZzxicj4tIFNlcGFyYXRlIHR1bmVyIGxpbWl0IGZvciBlYWNoIHBsYXlsaXN0IiwKICAgICAgImluZm9fZmFsc2UiOiAiTm8gQnVmZmVyIChDbGllbnQgY29ubmVjdHMgdG8gdGhlIHN0cmVhbWluZyBzZXJ2ZXIpIiwKICAgICAgImluZm9feHRldmUiOiAieFRlVmUgY29ubmVjdHMgdG8gdGhlIHN0cmVhbWluZyBzZXJ2ZXIiLAogICAgICAiaW5mb19mZm1wZWciOiAiRkZtcGVnIGNvbm5lY3RzIHRvIHRoZSBzdHJlYW1pbmcgc2VydmVyIiwKICAgICAgImluZm9fdmxjIjogIlZMQyBjb25uZWN0cyB0byB0aGUgc3RyZWFtaW5nIHNlcnZlciIKICAgIH0sCiAgICAidWRweHkiOiB7CiAgICAgICJ0aXRsZSI6ICJVRFB4eSBhZGRyZXNzIiwKICAgICAgImRlc2NyaXB0aW9uIjogIlRoZSBhZGRyZXNzIG9mIHlvdXIgVURQeHkgc2VydmVyLiBJZiBzZXQsIGFuZCB0aGUgY2hhbm5lbCBVUkxzIGluIHRoZSBtM3UgaXMgbXVsdGljYXN0LCB4VGVWZSB3aWxsIHJld3JpdGUgaXQgc28gdGhhdCBpdCBpcyBhY2Nlc3NlZCB2aWEgdGhlIFVEUHh5IHNlcnZpY2UuIiwKICAgICAgInBsYWNlaG9sZGVyIjogImhvc3Q6cG9ydCIKICAgIH0sCiAgICAiZmZtcGVnUGF0aCI6IHsKICAgICAgInRpdGxlIjogIkZGbXBlZyBCaW5hcnkgUGF0aCIsCiAgICAgICJkZXNjcmlwdGlvbiI6ICJQYXRoIHRvIEZGbXBlZyBiaW5hcnkuIiwKICAgICAgInBsYWNlaG9sZGVyIjogIi9wYXRoL3RvL2ZmbXBlZyIKICAgIH0sCiAgICAiZmZtcGVnT3B0aW9ucyI6IHsKICAgICAgInRpdGxlIjogIkZGbXBlZyBPcHRpb25zIiwKICAgICAgImRlc2NyaXB0aW9uIjogIkZGbXBlZyBvcHRpb25zLjxicj5Pbmx5IGNoYW5nZSBpZiB5b3Uga25vdyB3aGF0IHlvdSBhcmUgZG9pbmcuPGJyPkxlYXZlIGJsYW5rIHRvIHNldCBkZWZhdWx0IHNldHRpbmdzLiIsCiAgICAgICJwbGFjZWhvbGRlciI6ICJMZWF2ZSBibGFuayB0byBzZXQgZGVmYXVsdCBzZXR0aW5ncyIKICAgIH0sCiAgICAidmxjUGF0aCI6IHsKICAgICAgInRpdGxlIjogIlZMQyAvIENWTEMgQmluYXJ5IFBhdGgiLAogICAgICAiZGVzY3JpcHRpb24iOiAiUGF0aCB0byBWTEMgLyBDVkxDIGJpbmFyeS4iLAogICAgICAicGxhY2Vob2xkZXIiOiAiL3BhdGgvdG8vY3ZsYyIKICAgIH0sCiAgICAidmxjT3B0aW9ucyI6IHsKICAgICAgInRpdGxlIjogIlZMQyAvIENWTEMgT3B0aW9ucyIsCiAgICAgICJkZXNjcmlwdGlvbiI6ICJWTEMgLyBDVkxDIG9wdGlvbnMuPGJyPk9ubHkgY2hhbmdlIGlmIHlvdSBrbm93IHdoYXQgeW91IGFyZSBkb2luZy48YnI+TGVhdmUgYmxhbmsgdG8gc2V0IGRlZmF1bHQgc2V0dGluZ3MuIiwKICAgICAgInBsYWNlaG9sZGVyIjogIkxlYXZlIGJsYW5rIHRvIHNldCBkZWZhdWx0IHNldHRpbmdzIgogICAgfSwKICAgICJidWZmZXJTaXplIjogewogICAgICAidGl0bGUiOiAiQnVmZmVyIFNpemUiLAogICAgICAiZGVzY3JpcHRpb24iOiAiQnVmZmVyIHNpemUgaW4gTUIuPGJyPk0zVTg6IElmIHRoZSBUUyBzZWdtZW50IHNtYWxsZXIgdGhlbiB0aGUgYnVmZmVyIHNpemUsIHRoZSBmaWxlIHNpemUgb2YgdGhlIHNlZ21lbnQgaXMgdXNlZC4iCiAgICB9LAogICAgInN0b3JlQnVmZmVySW5SQU0iOiB7CiAgICAgICJ0aXRsZSI6ICJTdG9yZSBidWZmZXIgaW4gUkFNIiwKICAgICAgImRlc2NyaXB0aW9uIjogIklmIGNoZWNrZWQsIHdyaXRlIGJ1ZmZlciB0byBSQU0gaW5zdGVhZCBvZiB3cml0aW5nIHRvIGRpc2siCiAgICB9LAogICAgImJ1ZmZlclRpbWVvdXQiOiB7CiAgICAgICJ0aXRsZSI6ICJUaW1lb3V0IGZvciBuZXcgY2xpZW50IGNvbm5lY3Rpb25zIiwKICAgICAgImRlc2NyaXB0aW9uIjogIlRoZSB4VGVWZSBidWZmZXIgd2FpdHMgdW50aWwgbmV3IGNsaWVudCBjb25uZWN0aW9ucyBhcmUgZXN0YWJsaXNoZWQuIEhlbHBmdWwgZm9yIGZhc3QgY2hhbm5lbCBzd2l0Y2hpbmcuIFZhbHVlIGluIG1pbGxpc2Vjb25kcy4iLAogICAgICAicGxhY2Vob2xkZXIiOiAiMTAwIgogICAgfSwKICAgICJ1c2VyQWdlbnQiOiB7CiAgICAgICJ0aXRsZSI6ICJVc2VyIEFnZW50IiwKICAgICAgImRlc2NyaXB0aW9uIjogIlVzZXIgQWdlbnQgZm9yIEhUVFAgcmVxdWVzdHMuIEZvciBldmVyeSBIVFRQIGNvbm5lY3Rpb24sIHRoaXMgdmFsdWUgaXMgdXNlZCBmb3IgdGhlIHVzZXIgYWdlbnQuIFNob3VsZCBvbmx5IGJlIGNoYW5nZWQgaWYgeFRlVmUgaXMgYmxvY2tlZC4iLAogICAgICAicGxhY2Vob2xkZXIiOiAieFRlVmUiCiAgICB9LAogICAgImJhY2t1cFBhdGgiOiB7CiAgICAgICJ0aXRsZSI6ICJMb2NhdGlvbiBmb3IgYXV0b21hdGljIGJhY2t1cHMiLAogICAgICAicGxhY2Vob2xkZXIiOiAiL21udC9kYXRhL2JhY2t1cC94dGV2ZS8iLAogICAgICAiZGVzY3JpcHRpb24iOiAiQmVmb3JlIGFueSB1cGRhdGUgb2YgdGhlIHByb3ZpZGVyIGRhdGEgYnkgdGhlIHNjaGVkdWxlLCB4VGVWZSBjcmVhdGVzIGEgYmFja3VwLiBUaGUgcGF0aCBmb3IgdGhlIGF1dG9tYXRpYyBiYWNrdXBzIGNhbiBiZSBjaGFuZ2VkLiB4VGVWZSByZXF1aXJlcyB3cml0ZSBwZXJtaXNzaW9uIGZvciB0aGlzIGZvbGRlci4iCiAgICB9LAogICAgInRlbXBQYXRoIjogewogICAgICAidGl0bGUiOiAiTG9jYXRpb24gZm9yIHRoZSB0ZW1wb3JhcnkgZmlsZXMiLAogICAgICAicGxhY2Vob2xkZXIiOiAiL3RtcC94dGV2ZS8iLAogICAgICAiZGVzY3JpcHRpb24iOiAiTG9jYXRpb24gZm9yIHRoZSBidWZmZXIgZmlsZXMuIgogICAgfSwKICAgICJiYWNrdXBLZWVwIjogewogICAgICAidGl0bGUiOiAiTnVtYmVyIG9mIGJhY2t1cHMgdG8ga2VlcCIsCiAgICAgICJkZXNjcmlwdGlvbiI6ICJOdW1iZXIgb2YgYmFja3VwcyB0byBrZWVwLiBPbGRlciBiYWNrdXBzIGFyZSBhdXRvbWF0aWNhbGx5IGRlbGV0ZWQuIgogICAgfSwKICAgICJhdXRoZW50aWNhdGlvbldFQiI6IHsKICAgICAgInRpdGxlIjogIldFQiBBdXRoZW50aWNhdGlvbiIsCiAgICAgICJkZXNjcmlwdGlvbiI6ICJBY2Nlc3MgdG8gdGhlIHdlYiBpbnRlcmZhY2Ugb25seSBwb3NzaWJsZSB3aXRoIGNyZWRlbnRpYWxzLiIKICAgIH0sCiAgICAiYXV0aGVudGljYXRpb25QTVMiOiB7CiAgICAgICJ0aXRsZSI6ICJQTVMgQXV0aGVudGljYXRpb24iLAogICAgICAiZGVzY3JpcHRpb24iOiAiUGxleCByZXF1ZXN0cyBhcmUgb25seSBwb3NzaWJsZSB3aXRoIGF1dGhlbnRpY2F0aW9uLiA8YnI+PGI+V2FybmluZyEhITwvYj4gQWZ0ZXIgYWN0aXZhdGluZyB0aGlzIGZ1bmN0aW9uIHhUZVZlIG11c3QgYmUgZGVsZXRlIGluIHRoZSBQTVMgRFZSIHNldHRpbmdzIGFuZCBzZXQgdXAgYWdhaW4uIgogICAgfSwKICAgICJhdXRoZW50aWNhdGlvbk0zVSI6IHsKICAgICAgInRpdGxlIjogIk0zVSBBdXRoZW50aWNhdGlvbiIsCiAgICAgICJkZXNjcmlwdGlvbiI6ICJEb3dubG9hZGluZyB0aGUgeHRldmUubTN1IGZpbGUgdmlhIGFuIEhUVFAgcmVxdWVzdCBpcyBvbmx5IHBvc3NpYmxlIHdpdGggYXV0aGVudGljYXRpb24uIgogICAgfSwKICAgICJhdXRoZW50aWNhdGlvblhNTCI6IHsKICAgICAgInRpdGxlIjogIlhNTCBBdXRoZW50aWNhdGlvbiIsCiAgICAgICJkZXNjcmlwdGlvbiI6ICJEb3dubG9hZGluZyB0aGUgeHRldmUueG1sIGZpbGUgdmlhIGFuIEhUVFAgcmVxdWVzdCBpcyBvbmx5IHBvc3NpYmxlIHdpdGggYXV0aGVudGljYXRpb24iCiAgICB9LAogICAgImF1dGhlbnRpY2F0aW9uQVBJIjogewogICAgICAidGl0bGUiOiAiQVBJIEF1dGhlbnRpY2F0aW9uIiwKICAgICAgImRlc2NyaXB0aW9uIjogIkFjY2VzcyB0byB0aGUgQVBJIGludGVyZmFjZSBpcyBvbmx5IHBvc3NpYmxlIHdpdGggYXV0aGVudGljYXRpb24uIgogICAgfQogIH0sCiAgIndpemFyZCI6IHsKICAgICJlcGdTb3VyY2UiOiB7CiAgICAgICJ0aXRsZSI6ICJFUEcgU291cmNlIiwKICAgICAgImRlc2NyaXB0aW9uIjogIlBNUzo8YnI+LSBVc2UgRVBHIGRhdGEgZnJvbSBQbGV4IG9yIEVtYnkgPGJyPjxicj5YRVBHOjxicj4tIFVzZSBvZiBvbmUgb3IgbW9yZSBYTUxUViBmaWxlczxicj4tIENoYW5uZWwgbWFuYWdlbWVudDxicj4tIE0zVSAvIFhNTFRWIGV4cG9ydCAoSFRUUCBsaW5rIGZvciBJUFRWIGFwcHMpIgogICAgfSwKICAgICJ0dW5lciI6IHsKICAgICAgInRpdGxlIjogIk51bWJlciBvZiB0dW5lcnMiLAogICAgICAiZGVzY3JpcHRpb24iOiAiTnVtYmVyIG9mIHBhcmFsbGVsIGNvbm5lY3Rpb25zIHRoYXQgY2FuIGJlIGVzdGFibGlzaGVkIHRvIHRoZSBwcm92aWRlci48YnI+QXZhaWxhYmxlIGZvcjogUGxleCwgRW1ieSAoSERIUiksIE0zVSAod2l0aCBhY3RpdmUgYnVmZmVyKS48YnI+QWZ0ZXIgYSBjaGFuZ2UsIHhUZVZlIG11c3QgYmUgZGVsZXRlIGluIHRoZSBQbGV4IC8gRW1ieSBEVlIgc2V0dGluZ3MgYW5kIHNldCB1cCBhZ2Fpbi4iCiAgICB9LAogICAgIm0zdSI6IHsKICAgICAgInRpdGxlIjogIk0zVSBQbGF5bGlzdCIsCiAgICAgICJwbGFjZWhvbGRlciI6ICJGaWxlIHBhdGggb3IgVVJMIG9mIHRoZSBNM1UiLAogICAgICAiZGVzY3JpcHRpb24iOiAiTG9jYWwgb3IgcmVtb3RlIHBsYXlsaXN0cyIKICAgIH0sCiAgICAieG1sdHYiOiB7CiAgICAgICJ0aXRsZSI6ICJYTUxUViBGaWxlIiwKICAgICAgInBsYWNlaG9sZGVyIjogIkZpbGUgcGF0aCBvciBVUkwgb2YgdGhlIFhNTFRWIiwKICAgICAgImRlc2NyaXB0aW9uIjogIkxvY2FsIG9yIHJlbW90ZSBYTUxUViBmaWxlIgogICAgfQogIH0sCiAgImxvZ2luIjogewogICAgImZhaWxlZCI6ICJVc2VyIGF1dGhlbnRpY2F0aW9uIGZhaWxlZCIsCiAgICAiaGVhZGxpbmUiOiAiTG9naW4iLAogICAgInVzZXJuYW1lIjogewogICAgICAidGl0bGUiOiAiVXNlcm5hbWUiLAogICAgICAicGxhY2Vob2xkZXIiOiAiVXNlcm5hbWUiCiAgICB9LAogICAgInBhc3N3b3JkIjogewogICAgICAidGl0bGUiOiAiUGFzc3dvcmQiLAogICAgICAicGxhY2Vob2xkZXIiOiAiUGFzc3dvcmQiCiAgICB9CiAgfSwKICAiYWNjb3VudCI6IHsKICAgICJmYWlsZWQiOiAiUGFzc3dvcmQgZG9lcyBub3QgbWF0Y2giLAogICAgImhlYWRsaW5lIjogIkNyZWF0ZSB1c2VyIGFjY291bnQiLAogICAgInVzZXJuYW1lIjogewogICAgICAidGl0bGUiOiAiVXNlcm5hbWUiLAogICAgICAicGxhY2Vob2xkZXIiOiAiVXNlcm5hbWUiCiAgICB9LAogICAgInBhc3N3b3JkIjogewogICAgICAidGl0bGUiOiAiUGFzc3dvcmQiLAogICAgICAicGxhY2Vob2xkZXIiOiAiUGFzc3dvcmQiCiAgICB9LAogICAgImNvbmZpcm0iOiB7CiAgICAgICJ0aXRsZSI6ICJDb25maXJtIiwKICAgICAgInBsYWNlaG9sZGVyIjogIkNvbmZpcm0iCiAgICB9CiAgfQp9" webUI["html/login.html"] = "PCFkb2N0eXBlIGh0bWw+CjxodG1sPgoKPGhlYWQ+CiAgPG1ldGEgY2hhcnNldD0idXRmLTgiPgogIDxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgsIGluaXRpYWwtc2NhbGU9MS4wIiAvPgogIDx0aXRsZT54VGVWZTwvdGl0bGU+CiAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJjc3Mvc2NyZWVuLmNzcyIgdHlwZT0idGV4dC9jc3MiPgogIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iY3NzL2Jhc2UuY3NzIiB0eXBlPSJ0ZXh0L2NzcyI+CiAgPHNjcmlwdCBsYW5ndWFnZT0iamF2YXNjcmlwdCIgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9ImpzL25ldHdvcmtfdHMuanMiPjwvc2NyaXB0PgogIDxzY3JpcHQgbGFuZ3VhZ2U9ImphdmFzY3JpcHQiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJqcy9hdXRoZW50aWNhdGlvbl90cy5qcyI+PC9zY3JpcHQ+CjwvaGVhZD4KCjxib2R5PgoKICA8ZGl2IGlkPSJoZWFkZXIiIGNsYXNzPSJpbWdDZW50ZXIiPjwvZGl2PgoKICA8ZGl2IGlkPSJib3giPgoKICAgIDxkaXYgaWQ9ImhlYWRsaW5lIj4KICAgICAgPGgxIGlkPSJoZWFkLXRleHQiIGNsYXNzPSJjZW50ZXIiPnt7LmxvZ2luLmhlYWRsaW5lfX08L2gxPgogICAgPC9kaXY+CgogICAgPHAgaWQ9ImVyciIgY2xhc3M9ImVycm9yTXNnIGNlbnRlciI+e3suYXV0aGVudGljYXRpb25FcnJ9fTwvcD4KCiAgICA8ZGl2IGlkPSJjb250ZW50Ij4KCiAgICAgIDxmb3JtIGlkPSJhdXRoZW50aWNhdGlvbiIgYWN0aW9uPSIiIG1ldGhvZD0icG9zdCI+CgogICAgICAgIDxoNT57ey5sb2dpbi51c2VybmFtZS50aXRsZX19OjwvaDU+CiAgICAgICAgPGlucHV0IGlkPSJ1c2VybmFtZSIgdHlwZT0idGV4dCIgbmFtZT0idXNlcm5hbWUiIHBsYWNlaG9sZGVyPSJVc2VybmFtZSIgdmFsdWU9IiI+CiAgICAgICAgPGg1Pnt7LmxvZ2luLnBhc3N3b3JkLnRpdGxlfX06PC9oNT4KICAgICAgICA8aW5wdXQgaWQ9InBhc3N3b3JkIiB0eXBlPSJwYXNzd29yZCIgbmFtZT0icGFzc3dvcmQiIHBsYWNlaG9sZGVyPSJQYXNzd29yZCIgdmFsdWU9IiI+CgogICAgICA8L2Zvcm0+CgogICAgPC9kaXY+CgogICAgPGRpdiBpZD0iYm94LWZvb3RlciI+CiAgICAgIDxpbnB1dCBpZD0ic3VibWl0IiBjbGFzcz0iIiB0eXBlPSJidXR0b24iIHZhbHVlPSJ7ey5idXR0b24ubG9naW59fSIgb25jbGljaz0iamF2YXNjcmlwdDogbG9naW4oKTsiPgogICAgPC9kaXY+CgogIDwvZGl2PgoKPC9ib2R5PgoKPC9odG1sPg==" webUI["html/maintenance.html"] = "PCFkb2N0eXBlIGh0bWw+CjxodG1sPgoKPGhlYWQ+CiAgPG1ldGEgY2hhcnNldD0idXRmLTgiPgogIDxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgsIGluaXRpYWwtc2NhbGU9MS4wIiAvPgogIDx0aXRsZT54VGVWZTwvdGl0bGU+CiAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJjc3Mvc2NyZWVuLmNzcyIgdHlwZT0idGV4dC9jc3MiPgogIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iY3NzL2Jhc2UuY3NzIiB0eXBlPSJ0ZXh0L2NzcyI+CjwvaGVhZD4KCjxib2R5PgoKICA8ZGl2IGlkPSJoZWFkZXIiIGNsYXNzPSJpbWdDZW50ZXIiPjwvZGl2PgoKICA8ZGl2IGlkPSJib3giPgoKICAgIDxkaXYgaWQ9ImhlYWRsaW5lIj4KICAgICAgPGgxIGlkPSJoZWFkLXRleHQiIGNsYXNzPSJjZW50ZXIiPk1haW50ZW5hbmNlPC9oMT4KICAgIDwvZGl2PgoKICAgIDxkaXYgaWQ9ImNvbnRlbnQiPgogICAgICB4VGVWZSBpcyB1cGRhdGluZyB0aGUgZGF0YWJhc2UsIHBsZWFzZSB0cnkgYWdhaW4gbGF0ZXIuCiAgICA8L2Rpdj4KCiAgICA8ZGl2IGlkPSJib3gtZm9vdGVyIj48L2Rpdj4KCiAgPC9kaXY+Cgo8L2JvZHk+Cgo8L2h0bWw+" webUI["html/video/stream-limit.ts"] = "R0AREABC8CUAAcEAAP8B/wAB/IAUSBIBBkZGbXBlZwlTZXJ2aWNlMDF3fEPK//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////9HQAAQAACwDQABwQAAAAHwACqxBLL//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////0dQABAAArASAAHBAADhAPAAG+EA8AAVvU1W////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////R0EAMAdQAAB7DH4AAAAB4AAAgMAKMQAJEKERAAfYYQAAAAEJ8AAAAAFnZAAorNlAeAIn5cBEAAADAAQAAAMAyDxgxlgAAAABaOvjyyLAAAABBgX//6rcRem95tlIt5Ys2CDZI+7veDI2NCAtIGNvcmUgMTUyIHIyODU0IGU5YTU5MDMgLSBILjI2NC9NUEVHLTQgQVZDIGNvZGVjIC0gQ29weWxlZnQgMjAwMy0yMDE3IC0gaHR0cDovL3dHAQARd3cudmlkZW9sYW4ub3JnL3gyNjQuaHRtbCAtIG9wdGlvbnM6IGNhYmFjPTEgcmVmPTMgZGVibG9jaz0xOjA6MCBhbmFseXNlPTB4MzoweDExMyBtZT1oZXggc3VibWU9NyBwc3k9MSBwc3lfcmQ9MS4wMDowLjAwIG1peGVkX3JlZj0xIG1lX3JhbmdlPTE2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ACqxBLL//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////0dQABEAArASAAHBAADhAPAAG+EA8AAVvU1W////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////RwEAGO10tGlFAwyE91Tzg8923ovJk1dv2xh1gVlYQFtWdZ6NSQ8vgHM7/tMfIZPsqgCU856rdBJJRMDaor/oWA7pkvSmC2aqaC5fd/mkWUPTuG8fRhGqOY1rKxLNSI3HtTQAcuVBxRM0NfMw0ky/JMJYZiCgXcNsxpxl+khr/9fKtO5Fg2VNBti92xcZimHUZDJMQTBOY6vSR9L1N2O/kJQCpdfuc9bkcUTMjH/es/lAySxvbiislkohqkpHAQAZVatwHI0t9eHCUfDyWUEtuCNyDwQFOVMtaYEQJrTrhQX0VduT86F0u0wN9ag0uPsrmX6Rid/x5S7KI1SkS+qP6cdmgSP57uiF4dG6IKsWNfGBLY09H/CFlrg73WINQkkp2diKkdEmtZetn8+ZAKzR5eXN5FebiKt6pIkNLuSofjosypEs2o6boKsfpmbtOV0idOeWDM9C8EIcn3aZwk1s2KBDvt1DlY+i2Cuvhk3XoKLT+pq/bOC5QkcBABolcOXneZXLoQw9W1PH1f/of92Ytjj8okrWijcQAKlE5l8XoTb9qrOiZnDOhqwcMlB9H9rorq041I89hChohYoSkJElcM8V+r8WYN5axD1BNyfwaHAOm4UN2/VEYOkNSfMjmx2S0WW/F2ha8Jj4fc4QgqcXr+TnnbwqLkLTValK4Qa1pcv7PIbDq6zCUfxe04guZ8xEhPQjp17/G6IB/6uq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wnibxQ/cXEblVnM47wbCN3iy4eHjYB5MoIICrSYmd8nt4V0toLs084KJlmnur5FbApYM4W79ff4oZkW88Cg8Fv8TnWhh1Hqc4UlhMbRKm2QxDgfBxar3U7BwNR6prrXXjqfR7ja3tPli+H7Jez/xcTg32QpHAQAdTa7pSSgBvmOqzz175NAFIhwE9p3d71F9jLvhaPv8q1iKopL0kizwzEWElnXWmNhfLkl/Au8KujnoKUaxVdTe+zAZm2dOkejnpNVtVj0Aw9wKcG3ZQ1iRZrUFRIoPKYlmR+oi0LrupuhYABtgPbdCbDtezGTr0nw9wVd/rZ6V+1wcoJ6+8VAVueIdwI3brqm6EoFHiI8L6lER+9SefB8fHo4NYgr/I8jSxaa/2PLX2K/DjrlY6bN8fEcBAB7DXsuh8DITF6CYWj2HTFvqfzlic3QHXnHtvsTFNpyVY1LY8y/fRK2mwALN6IB5W3OuyoKiA3K0lJdQUv2gYhHWvPTV218HYrD0rkbMxRH0SiEEkrHDeOt5T1HtWD13D2/QvMu535fsfZyeaFDjdCE9M0Xi8Lfc7Xj1ZNGend7Jo7/cEiczFkc1vB4z2JpFGZreV2EdquyEzC2STFJtfimyx8QlLngEuR1cxH+lWEcFX+mvBa/eqktIRwEAH6VazFLPNsnHZqsI66TVoArQuUUGFAzr8MT8GZ9V6qpZa5D0jA/4eGi6Kq0smUgRExnqIbSMLWqDf/Pk2YT3MpHTu9VE3Dn9blgB6KsVIkWnB98Y2n/6DrZDcF94Ndu0Ka4U/RZwdV5O5KcO+lU2ZiIOYTYZ6Ie0d+tApxYxJ+YmxaDoCyRNe6crw/yzR5SflT8ddi/E2BM+l+nwVDiKZ/714fmrBxFKWuqLiQNHV19o1cZ8Ubun+ZtHQAASAACwDQABwQAAAAHwACqxBLL//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////0dQABIAArASAAHBAADhAPAAG+EA8AAVvU1W////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////RwEAEH1s3BdtHdF1ln55B24wdACF/ggcRtPmB4IUB6cZJ+m32I4R48ZkdhAFBulgWcsv0wZwH0o1yi3i4qm3rJ98AUKdB9PsNyG9gURV0bTw4myAj6g5Dgodfv6w9bsbOxsGUWkvgAJ3rrR010BvZbIa6CMRCQRjxkCfRF77ansRJZT0JzhtYeSS/ZJob8Rr2jrng3W2rkmHtE+rdqlPiHxmwkRZvYGhBxwiJO2L6f+l/cABsfs09rA+A0pHAQAREZay3TBUIAfMWhApE+LaPgeyOYtaPFONA9aC0h4QrFkaLZfb86678MK+zLgqDBsDoj50eZHMVcczRjs4sYlv7RG8RIWKb5lB9Kn/8+CkxiiA11cHH1yzLX2SKCmhsak/+P/zYQ1EDvEj33bl9e3Jd62cTI+Qw99KrsWnUMN8hFNeXzoGHA3aec+Li4NFboF8sa6lCPR6Csxsvxw8DJaWCnER5Z0p+nKhXavF/eNHQ0DX47ohycc87UcBABKsYHCHXXe3vK1cFYDWO6rhwM6hxCdJ+/X+VB1akQejL6iBMdUPuadUqBnbprwJM0dWpSSn9uuZZeqe46iZOGIJUo69d8x+ZSvPcBH/dK1Y0LJnoWdgWH51SQg7eYqcwjQW3BOy7ZF02Hn1EhTuhsN7ms8zv3WIeEBDBq0T3Idl+Tmw9iJU9skVYiwygHG2+0XwrLa6y+uiQPwMzrnEr1kuf24XoAqrJTZQiVH3aQF4d94yDreWu2KPRwEAE2FsynHZaUcBXEFbeX0nSxZ7sRcRjJvc7RYOny6N8QFwKDVO7jpRWWYM55kuepBOyZ+7BFYeG+FU1kR+ZfmqyDNkD4D1IPwNh6u9JQxDymfN/aMcQC3WxdvCKquPsAut6dugpGkOFtIe+W3ayc4V/J978P+h1EDFMbFjxRPuXht0K2dBQZCJ0ybISUDqWzhPuep8CdxSU4MvMVfdXh7FLl/BqKJUTT+vM+Pz3XnqCQQmH5TjQ4CK55VHAQAUEtgfkBwIYgtwHkhjmtLw7HNTeJeMfTjATEKcyuKzItSeYxHBmGzQ/+G2otpPCOkVAXJ9mfx7LxrW4joZ0ttTRQJ/wqMUK1IN349LiJoo8y/+FwN4jPNDwIleJG697riqnmLOweFW8spHKLBfnHcyC1pG6EIxFpTqUQ0KHqXD/KXIHKioJNAOVwQ1Gfloxebo/Tdtd00dpHP3gcsAOnV75APCYOjVIlwm2X6ViDeZw6Btdb/Br/+yokcBABU3+eOESLlneGbR5SLiL8wPkoRaZ5X7xFlMTMvsv9yHk26bVdmsubSdbYS1Hy64n0+NnL7C1aLD7aJxOudMjVW5goZbfO2KxBQkCD4HFA284wbaB5vOL7mRilCn6YEs1kiwf22+fBLNUmXDb2p353wrD/ygTDhlki66USvUmd/ZAs9uzAddegEzy7Xn00YysWTu/hegYyZtWFC+X5dhLubWJ7n96y5wjrP7PAOXoQQtFUH9j/rBiP/7RwEAFnL/wYKYuj80mPGtimSbF/E9K7XwjwBz8yHZubmVMTCmwkZBM4h0FR1thnUGiSjqjJT6SfunWCZ/dZDQplrzS00UKcUP399SyM+nNG1br8Za0ZYwWch8nyLHYXSRuxdnrfUUespsOQo1cWSLGf0pV2HIcHoiAAEKwPU6irB5BSoFvB1qKVjgEk+QwAEYAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAABHAQA3pAD/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////AwAAAwAAAwAAAwAAAwAAAwBbwUdBABgAAAHgAACAwAoxAAmBIREAB/SBAAAAAQnwAAAAAUGaJGxDv/6plgAAAwAAAwAAAwAAAwAAAwAAAwAAAwAKCKB0AIhy1ftwLNISWucTFC7xeBcaIzP3oZjZo8uT9hqZVstWGnrPz+vjaA5FuCO+K2w7/o39LygDO7aL+0zSrN90LW7r133x8+f+PEKk8d7pd2fj4RYuMOXOYunzFzRX/4IvR1XsK5WJYwVkOca3yfo7DTvUBP9rgSiTRwEAGQD6CFK1PBC4qYCa+coLVnX+jgODNrau5YJXIekDI4+wUNV+5T5HE4e2t5EGAjn77+kC1Vghmvx8KqPnylVUvsaTofheggxHsPuxn1zQt6nA59UglrRUMn8b4pmrvfqTBSqU949+AcNAI6M/eAqz6r0RG5KNeBhx8R2f0x2kujwHU3pc3rlPb6ZrFM/2HiG97eEIezrvWFG7YAAAAwAAAwAE1KRo1VfbdZQ/tOpNGxFmTcQoFidyD2tHAQAapTTIErUKA2Rc9uIzGJu+oW0uNOxRyl6oJNUNJp5L9TIshNS1CmUKgdCaE3LkLwdE8iUkUnIGfWLiWpWmjzsINYC8dnDaSptB53yJkBu0SsR00oo1PZ0pl4ZzoXGSYQJTPaVCbj6FNqm5wcnUqKTB/rgHdPdnDj0K8asLABeo/n3XCXrDorI+LYSD1FBgmV9O7RZdjfL0NnXOQkiq/ZGirwVV0cUF1aHtZx1yHlAAZKuuu7TqB13CAUcBADuRAP///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////yj/IrOvAEoXDNGy+nrxWN0l8cmuqWYaUJpuM9XgAAADAAADAAKmR0EAPAcQAACJHH4AAAAB4AAAgMAKMQAJSOERAAkQoQAAAAEJ8AAAAAFBnkJ4hf8AAAMAAAMAAAMAAAMAAAMAAAMAAAMAC/BmhyuvLmkCgKTgACEXfOVvHRHdpBEEmTTz9pIZCa2FD0CXukzDCakOHekTpJQSdsfd7a/jjM1/5lBtKCAGQ6zOCSQ6DeKtyw+CugDuuglGipwmvQW+FIDjnZ6HRd0uaSOGy6VB3h9MI1o4nqaCqVwwIgubYZFHAQA9XgD////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////WcZrO6BEiqf8pCxYwlz2mkdUzY/ipM/TIHS4m5xQAAAMAAAMAAA5sVm90p14dlvWgBgY7XQ9KVOJKLtaMAN5KiffVQtNuzW5DfL+RewZpAAADAAADAAAQMUdBAB4AAAHgAACAgAUhAAkswQAAAAEJ8AAAAAEBnmF0Qr8AAAMAAAMAAAMAAAMAAAMAAAMAAAMAABJfBjP2+4+W7ZybyT130+Ma4WSqICfd/dS4YtjrLlmh5VBlfrtwJqdN1PBTYDkwGOOONqZQeFN6lLGJoDzvuh3kv1aDBLqug+JhvrSeu5ebnvcrtQzb2REwJL3h9mvtkr0WfDu4AAADAAADAAs32Y4C/6Ns79oCGj6oqLltY3T4I0/QRwEAP5wA//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////8BeoWLRnKQmVgO/RBoBfcK85AAAAMAAAMACFhHQQAwBxAAAJcsfgAAAAHgAACAwAoxAAllAREACUjhAAAAAQnwAAAAAQGeY2pCvwAAAwAAAwAAAwAAAwAAAwAAAwAAAwAAEmDKfLGXsvBBQPNYXlEd6WueJ4deApfcHESlG+7V6u0AiWQqJvNZYM+3Js3Lj9Ldc9yYIHqruVwfMtCYGlX3wMavI/DrhMuJw+RreIF8SKsJD8CMccAAAAMAAAMACrFZOBgEqaP/8EyWsAHV6CgcAgfyox/roEcBADGuAP//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////AAADAAADAHTBR0EAEgAAAeAAAIDACjEACfGhEQAJZQEAAAABCfAAAAABQZpoSahBaJlMCHf//qmWAAADAAADAAADAAADAAADAAADAAADAAALf8A2bry6lUyIAQGNFfVK2Cd7h4qDqmqpvmXfkfTwo2Ab79AHhajxJ4MPWIgAAA84xLRIx7I2CrWjWe96OvgkzgS9mtvhuxdzAgpuIOJI3DEY9mviDDZz8XSAAAADAAADAB7AZkj9AAHHGvk+Pzlku8UkWa5HAQAzogD//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////6HjAkbF/gsWuvw4QAAAAwAAAwAccUdBADQHEAAApTx+AAAAAeAAAIDACjEACblhEQAJgSEAAAABCfAAAAABQZ6GRREsL/8AAAMAAAMAAAMAAAMAAAMAAAMAAAMAAA3URJB/3lMHSmOd0GYZnfpoR80WdqxlyHzPX+V81VUMeXIGrRgq5agd+ACdjoGI036yQ/rmpGw0CmMBrKwpI+nwFo3SP0s1rI2yHBZaiPJjSUgw33rBkxXcq55kfLf2sAAAAwAAAwACBWolidWDnIeQAAADRwEANbEA//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////8AAAMADulHQQA2NAD///////////////////////////////////////////////////////////////////8AAAHgAACAgAUhAAmdQQAAAAEJ8AAAAAEBnqV0Qr8AAAMAAAMAAAMAAAMAAAMAAAMAAAMAABJXNihCnx11JUosH2hBE53O/YN+GPHqcnJiQBIf3maTAAj5iRt+7GYUKBAU9iCXTiouCjGYgAAAAwAAAwA9p4HQBg2cAAADAAADAADGgUdBADc4EAAAs0x+AP////////////////////////////////////////////////////////////////8AAAHgAACAwAoxAAnVgREACblhAAAAAQnwAAAAAQGep2pCvwAAAwAAAwAAAwAAAwAAAwAAAwAAAwAAAwBR6/L83y+ZevtMZ0FW4lp8qV7fVXQAhLAWlS6mDxvpaSUgChorvgTMXtxJEIAAAAMAAAMACqFCAAADAAADAAADAAz4R0EAOCsA////////////////////////////////////////////////////////AAAB4AAAgMAKMQALYiERAAnVgQAAAAEJ8AAAAAFBmqxJqEFsmUwId//+qZYAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAApQTq0hABLvkcWCYrAaRRPNDrECJGlF/11BYvG9+JJ9Y86nxnmQzPxtAAe1UgOsXAAADAAADAAADAAADAAADAAADAAADA/JHQQA5JhAAAMFcfgD/////////////////////////////////////////AAAB4AAAgMAKMQALKeERAAnxoQAAAAEJ8AAAAAFBnspFFSwv/wAAAwAAAwAAAwAAAwAAAwAAAwAAAwAADdRFmvrVE0KXDOGwWddlwYa1foib7tXZKmkua6R4APb4b8+tXwdSNNqgf2IVNwGTohgQAcMvp6SiQxpiQym4AAADAAADAANUNUAAAAMAAAMAAAMBN0dBADo8AP//////////////////////////////////////////////////////////////////////////////AAAB4AAAgIAFIQALDcEAAAABCfAAAAABAZ7pdEK/AAADAAADAAADAAADAAADAAADAAADAAADAFHTAfujIUaaLSuklb9y0/so9AEtQAqkAxOviALQZ5jNt/iOkABrCOZ4md0iUnFwAAADAAADAALwckAAAAMAAAMAAATcR0EAO0IQAADPbH4A//////////////////////////////////////////////////////////////////////////////8AAAHgAACAwAoxAAtGAREACynhAAAAAQnwAAAAAQGe62pCvwAAAwAAAwAAAwAAAwAAAwAAAwAAAwAAAwBR6/L83y+WryR9gmVKPGbIhJpkgAFgHCej3gB6rAHPgHHAAAADAAADAAAYIV0AAAMAAAMAAAMABnxHQQA8UQD//////////////////////////////////////////////////////////////////////////////////////////////////////////wAAAeAAAIDACjEAC9KhEQALRgEAAAABCfAAAAABQZrwSahBbJlMCG///qeEAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAAZ8UdBAD00EAAA3Xx+AP///////////////////////////////////////////////////////////wAAAeAAAIDACjEAC5phEQALYiEAAAABCfAAAAABQZ8ORRUsL/8AAAMAAAMAAAMAAAMAAAMAAAMAAAMAAA3URZr61RNClwzhI2ZXdRHYLZWc1yTgKRhTIXBNABHQKIIyYNyc+AaEn1jhATEAAAMAAAMAAAMAckkIAAADAAADAAADAEbBR0EAPkYA////////////////////////////////////////////////////////////////////////////////////////////AAAB4AAAgIAFIQALfkEAAAABCfAAAAABAZ8tdEK/AAADAAADAAADAAADAAADAAADAAADAAADAFHTAfujIUAYRtY0f/43cIs2OjxACR2hMR1QBGYX+34JGAAAAwAAAwAAAwKEJ6AAAAMAAAMAAAMA3oFHQQA/QhAAAOuMfgD//////////////////////////////////////////////////////////////////////////////wAAAeAAAIDACjEAC7aBEQALmmEAAAABCfAAAAABAZ8vakK/AAADAAADAAADAAADAAADAAADAAADAAADAFHr8vzfL5avJH2CZUo8ZsiEmmSAAWAcJ6PeAHqsAc+AccAAAAMAAAMAABghXQAAAwAAAwAAAwAGfEdBADBRAP//////////////////////////////////////////////////////////////////////////////////////////////////////////AAAB4AAAgMAKMQANQyERAAu2gQAAAAEJ8AAAAAFBmzRJqEFsmUwIZ//+nhAAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAGVAR0EAMTQQAAD5nH4A////////////////////////////////////////////////////////////AAAB4AAAgMAKMQANCuERAAvSoQAAAAEJ8AAAAAFBn1JFFSwv/wAAAwAAAwAAAwAAAwAAAwAAAwAAAwAADdRFmvrVE0KXDOEjZld1EdgtlZzXJOApGFMhcE0AEdAogjJg3Jz4BoSfWOEBMQAAAwAAAwAAAwBySQgAAAMAAAMAAAMARsFHQQAyRgD///////////////////////////////////////////////////////////////////////////////////////////8AAAHgAACAgAUhAAvuwQAAAAEJ8AAAAAEBn3F0Qr8AAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAUdMB+6MhQBhG1jR//jdwizY6PEAJHaExHVAEZhf7fgkYAAADAAADAAADAoQnoAAAAwAAAwAAAwDegEdBADNCEAABB6x+AP//////////////////////////////////////////////////////////////////////////////AAAB4AAAgMAKMQANJwERAA0K4QAAAAEJ8AAAAAEBn3NqQr8AAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAUevy/N8vlq8kfYJlSjxmyISaZIABYBwno94AeqwBz4BxwAAAAwAAAwAAGCFdAAADAAADAAADAAZ8R0EANFIA////////////////////////////////////////////////////////////////////////////////////////////////////////////AAAB4AAAgMAKMQANs6ERAA0nAQAAAAEJ8AAAAAFBm3hJqEFsmUwIV//+OEAAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAYtHQQA1NBAAARW8fgD///////////////////////////////////////////////////////////8AAAHgAACAwAoxAA17YREADUMhAAAAAQnwAAAAAUGflkUVLC//AAADAAADAAADAAADAAADAAADAAADAAAN1EWa+tUTQpcM4SNmV3UR2C2VnNck4CkYUyFwTQAR0CiCMmDcnPgGhJ9Y4QExAAADAAADAAADAHJJCAAAAwAAAwAAAwBGwEdBADZGAP///////////////////////////////////////////////////////////////////////////////////////////wAAAeAAAICABSEADV9BAAAAAQnwAAAAAQGftXRCvwAAAwAAAwAAAwAAAwAAAwAAAwAAAwAAAwBR0wH7oyFAGEbWNH/+N3CLNjo8QAkdoTEdUARmF/t+CRgAAAMAAAMAAAMChCegAAADAAADAAADAN6BR0EAN0IQAAEjzH4A//////////////////////////////////////////////////////////////////////////////8AAAHgAACAwAoxAA2XgREADXthAAAAAQnwAAAAAQGft2pCvwAAAwAAAwAAAwAAAwAAAwAAAwAAAwAAAwBR6/L83y+WryR9gmVKPGbIhJpkgAFgHCej3gB6rAHPgHHAAAADAAADAAAYIV0AAAMAAAMAAAMABn0=" diff --git a/ts/menu_ts.ts b/ts/menu_ts.ts index bb28b3a..65cb532 100644 --- a/ts/menu_ts.ts +++ b/ts/menu_ts.ts @@ -893,10 +893,9 @@ function createLayout() { let obj = SERVER["clientInfo"] let keys = getOwnObjProps(obj); for (var i = 0; i < keys.length; i++) { - - document.getElementById(keys[i]).innerHTML = obj[keys[i]]; - + if (document.getElementById(keys[i])) { + document.getElementById(keys[i]).innerHTML = obj[keys[i]]; if (location.protocol === 'https:') { if (keys[i] === "xepg-url" || keys[i] === "m3u-url" || keys[i] === "DVR") { document.getElementById(keys[i]).addEventListener('click', function (event) { From 897c5de8f517ffa49509af3542e218c24fc79db8 Mon Sep 17 00:00:00 2001 From: Senex Crenshaw Date: Thu, 25 Aug 2022 17:45:58 +0000 Subject: [PATCH 173/189] Renamed Update Logo to "Use logo from M3U" --- html/lang/en.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/html/lang/en.json b/html/lang/en.json index 152a1bc..1a4756a 100644 --- a/html/lang/en.json +++ b/html/lang/en.json @@ -233,7 +233,7 @@ "description": "" }, "updateChannelLogo": { - "title": "Update Channel Logo", + "title": "Use logo from M3U", "placeholder": "", "description": "" }, From acaad623cb0bb20732275f5364f552c719eb7b75 Mon Sep 17 00:00:00 2001 From: Senex Crenshaw Date: Thu, 25 Aug 2022 17:49:26 +0000 Subject: [PATCH 174/189] Removed beta branch from ReadMe --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 1c0faa5..d496684 100644 --- a/README.md +++ b/README.md @@ -140,7 +140,7 @@ docker stop xteve ``` --- - + ## Build from source code [Go / Golang] From de8a4a6f5de778b263a7ae11ea24e7d6d5a79421 Mon Sep 17 00:00:00 2001 From: Senex Crenshaw Date: Thu, 25 Aug 2022 19:10:40 +0000 Subject: [PATCH 175/189] Added favicon --- html/favicon.ico | Bin 0 -> 15406 bytes src/webUI.go | 3 ++- src/webserver.go | 6 +++++- 3 files changed, 7 insertions(+), 2 deletions(-) create mode 100644 html/favicon.ico diff --git a/html/favicon.ico b/html/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..2b97fa3c337bf9ebd241a50e1c97973794b54858 GIT binary patch literal 15406 zcmeHNX^b4z5$+tn6Y?W}qge->g@oXo0&+p_0}?5RAQu7@1UZyTN+bwM5V`Lt5lM`9 zjgQ5~Ue;dl1$Jx`Y}RWVjAH|~*T%+Pdu_;idZv43`k3ynd|&nST;AE)#nK+6TN?HB zd#_&AtE%_9y1p`uR~fG{F1WzJJ!9PVTElp+VHlZA{M`8l!&r#6dGjj$a}8tQjfT;Q zF(3g&+>YCr*V(SjPqSSa4?mgY&pQv=gxAaAo6ydzd-t0q+kK(RWG;SNEZco^(T4Vg zaeJ)aj;3em9b?=>y;6R0kJuZ(p?7ofTP4U2iSx`t@lQT3&fa^Z^wggvID0_c=axuu z$KAE{ch3>;`8DGF=bw^Y)G7YR4)B;O<^S%J(vyD>?}bfL+Wk8zJoW=ApWZ3C2d)%z z(Iqwdt_~><{7kHeKQHEzOEJ%U$*uUHGBVLRPw8@0iU(v?C+A?vdin} zYrbP`__}yU*JIqnQrPKK@2OmO^E#)Kce5<%^DFE8 zO6@rd?OBac7G12dLUJbO@SbN3kUVD*8|0Q>-q2?DytA&q_U>mKV=lQ2@ywjD`zv}f z7hfu2@eJaMA4=q!5_y)`o4>6zLH-!xl}BTG#7&He^oklU1Mu&v(W5Ht&D8 z>exHBUINUiZIDNzP=fqXjr}w>+mCqg)Ds#rMs7~*E#DD)!wt&6wEOoB>t*~_vt!Lp zCT#AH3@A-#4P)*e{(qLwi``|Lnqx+S0X}Z?f(DUYaaT zI=*%$q`F9T@e22W>HG%L@6hSeZ__vMRO(@b-@g3*Zj~4Ke`#l)1SwkMM*POhlc3wk z&Y$!8(FJe%8vJD-+np&*m*2GI8_PC8S4xDvq)A z9pF3u*k;;1@}iNKN8Lpa>LNY>tYE+9TABa1)_?`ga4WGyAs zTM)ZoZkbnDz<<<<5X-P0xl!jSpV_5-#5)o?>XsM@^U2H!y9btQjydve@s6xkEJ85~ z=)ym~N$XeKpfEsA?^1?pKYR-WYL4fR#!w>RAqv&Y)={nrTnfOwJp=uOD;pVhVbC$~e-pV4|5 zVhdqmL~Cxi#^j<+i4Rc@bLl*>)?FXt9b?qEBr-SO3&3hPCowNubq?GIwL;dqFRNU{ zHhB3XgH`#h)z_jWQf$FLzESmS_Pk4d*m~q99j{mye40K%OshEf3+*RH#VZP2Vf{|C zJjAN3HD5fZy?Gp;sUPAk)PEE>;_Ue=bl$j6S-ZrGepa0W7y#>-Nar40u9z9?ljzr0 zWxRW6g^p)U6Xhq4lzZTPz|lSpeF4)0E$6PzIRSsEAIn;$uy9)OAzih{Th7%_PT?*sUO1zbELTK zcEvZt{Bf;Q-jnAd0|E6{=VE#l-o(J5cyy&0RcG!vI>F>ly z=?~oF_U3P@z9ZmW9Lv4J^MF2D-2Ri89vG{$Z+^Tk(1-aKfS2A-ojc*t?rv|oRWZ{9 z*P~5{S<$bmw7_e5#_}o-{=C*sdt=`cr{y_DOpI%#jr4iPT@_h775k#@%E~>6P%y#qSo)DJmiJ)AwIB8;Gm&> zO4q}4d?L79RktnH$FsymO&kuctC#w9g$EIc(+*Vzp8Z%#Mt9suiC{qxD0iie^jh| zZ2Hz~aS!(){`jrx$VE*AYa8f0d}q+Elbvs>$LE$`spsfa^G*4+_Ni1iscupqNPQsn zfz$_5ADCf2Fq<*RNo4D*Zj-y=>^$H7_%*Z?&Vvt|vb*MQ8Zn_&$~ YT^+~Ft|zFgpGjn={OOfy;N@!IfB4*_-~a#s literal 0 HcmV?d00001 diff --git a/src/webUI.go b/src/webUI.go index 4fe47b3..ca9156b 100644 --- a/src/webUI.go +++ b/src/webUI.go @@ -8,6 +8,7 @@ func loadHTMLMap() { webUI["html/create-first-user.html"] = "PCFkb2N0eXBlIGh0bWw+CjxodG1sPgoKPGhlYWQ+CiAgPG1ldGEgY2hhcnNldD0idXRmLTgiPgogIDxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgsIGluaXRpYWwtc2NhbGU9MS4wIiAvPgogIDx0aXRsZT54VGVWZTwvdGl0bGU+CiAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJjc3Mvc2NyZWVuLmNzcyIgdHlwZT0idGV4dC9jc3MiPgogIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iY3NzL2Jhc2UuY3NzIiB0eXBlPSJ0ZXh0L2NzcyI+CiAgPHNjcmlwdCBsYW5ndWFnZT0iamF2YXNjcmlwdCIgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9ImpzL25ldHdvcmtfdHMuanMiPjwvc2NyaXB0PgogIDxzY3JpcHQgbGFuZ3VhZ2U9ImphdmFzY3JpcHQiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJqcy9hdXRoZW50aWNhdGlvbl90cy5qcyI+PC9zY3JpcHQ+CjwvaGVhZD4KCjxib2R5PgoKICA8ZGl2IGlkPSJoZWFkZXIiIGNsYXNzPSJpbWdDZW50ZXIiPjwvZGl2PgoKICA8ZGl2IGlkPSJib3giPgoKICAgIDxkaXYgaWQ9ImhlYWRsaW5lIj4KICAgICAgPGgxIGlkPSJoZWFkLXRleHQiIGNsYXNzPSJjZW50ZXIiPnt7LmFjY291bnQuaGVhZGxpbmV9fTwvaDE+CiAgICA8L2Rpdj4KCiAgICA8cCBpZD0iZXJyIiBjbGFzcz0iZXJyb3JNc2cgY2VudGVyIj48L3A+CgogICAgPGRpdiBpZD0iY29udGVudCI+CgogICAgICA8Zm9ybSBpZD0iYXV0aGVudGljYXRpb24iIGFjdGlvbj0iIiBtZXRob2Q9InBvc3QiPgoKICAgICAgICA8aDU+e3suYWNjb3VudC51c2VybmFtZS50aXRsZX19OjwvaDU+CiAgICAgICAgPGlucHV0IGlkPSJ1c2VybmFtZSIgdHlwZT0idGV4dCIgbmFtZT0idXNlcm5hbWUiIHBsYWNlaG9sZGVyPSJVc2VybmFtZSIgdmFsdWU9IiI+CiAgICAgICAgPGg1Pnt7LmFjY291bnQucGFzc3dvcmQudGl0bGV9fTo8L2g1PgogICAgICAgIDxpbnB1dCBpZD0icGFzc3dvcmQiIHR5cGU9InBhc3N3b3JkIiBuYW1lPSJwYXNzd29yZCIgcGxhY2Vob2xkZXI9IlBhc3N3b3JkIiB2YWx1ZT0iIj4KICAgICAgICA8aDU+e3suYWNjb3VudC5jb25maXJtLnRpdGxlfX06PC9oNT4KICAgICAgICA8aW5wdXQgaWQ9ImNvbmZpcm0iIHR5cGU9InBhc3N3b3JkIiBuYW1lPSJjb25maXJtIiBwbGFjZWhvbGRlcj0iQ29uZmlybSIgdmFsdWU9IiI+CgogICAgICA8L2Zvcm0+CgogICAgPC9kaXY+CgogICAgPGRpdiBpZD0iYm94LWZvb3RlciI+CiAgICAgIDxpbnB1dCBpZD0ic3VibWl0IiBjbGFzcz0iIiB0eXBlPSJidXR0b24iIHZhbHVlPSJ7ey5idXR0b24uY3JhZXRlQWNjb3VudH19IiBvbmNsaWNrPSJqYXZhc2NyaXB0OiBsb2dpbigpOyI+CiAgICA8L2Rpdj4KCgogIDwvZGl2Pgo8L2JvZHk+Cgo8L2h0bWw+" webUI["html/css/base.css"] = "KiB7CiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lOwogIC1tb3otYXBwZWFyYW5jZTogbm9uZTsKICAtbXMtYXBwZWFyYW5jZTogbm9uZTsKICBmb250LWZhbWlseTogIkFyaWFsIiwgc2Fucy1zZXJpZjsKICBsZXR0ZXItc3BhY2luZzogMnB4Owp9CgovKgo6Oi13ZWJraXQtc2Nyb2xsYmFyIHsgCiAgICBkaXNwbGF5OiBub25lOyAKfQoqLwoKOjotd2Via2l0LXNjcm9sbGJhciB7CiAgd2lkdGg6IDEycHg7CiAgaGVpZ2h0OiAxMnB4Owp9CgoKOjotd2Via2l0LXNjcm9sbGJhci10cmFjayB7CiAgLXdlYmtpdC1ib3gtc2hhZG93OiBpbnNldCAwIDAgNnB4IHJnYmEoMCwgMCwgMCwgMC4zKTsKICBib3gtc2hhZG93OiBpbnNldCAwIDAgNnB4IHJnYmEoMCwgMCwgMCwgMC4zKTsKICBib3JkZXItcmFkaXVzOiA1cHg7Cgp9Cgo6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iIHsKICBib3JkZXItcmFkaXVzOiA1cHg7CiAgLXdlYmtpdC1ib3gtc2hhZG93OiBpbnNldCAwIDAgNnB4IHJnYmEoMCwgMCwgMCwgMC42KTsKICBib3gtc2hhZG93OiBpbnNldCAwIDAgNnB4IHJnYmEoMCwgMCwgMCwgMC42KTsKICBiYWNrZ3JvdW5kLWNvbG9yOiAjNDQ0Owp9Cgo6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iOmhvdmVyIHsKICBiYWNrZ3JvdW5kOiAjMzMzOwp9Cgo6Oi13ZWJraXQtc2Nyb2xsYmFyLWNvcm5lciB7CiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7Cn0KCmEgewogIGNvbG9yOiAjMDBFNkZGOwp9CgpodG1sLApib2R5IHsKICBjb2xvcjogI2ZmZjsKICBtYXJnaW46IDBweCBhdXRvOwogIGhlaWdodDogMTAwJTsKICBmb250LXNpemU6IDE0cHg7Cn0KCmgyIHsKICBmb250LXNpemU6IDI0cHg7CiAgbGV0dGVyLXNwYWNpbmc6IDJweDsKfQoKaDMgewogIGZvbnQtc2l6ZTogMjJweDsKICBsZXR0ZXItc3BhY2luZzogMXB4Owp9CgpoNCB7CiAgZm9udC1zaXplOiAyMHB4OwogIGxldHRlci1zcGFjaW5nOiAxcHg7CiAgbGluZS1oZWlnaHQ6IDEuNWVtOwoKfQoKaDUgewogIGZvbnQtc2l6ZTogMTZweDsKICBsZXR0ZXItc3BhY2luZzogMXB4OwogIGxpbmUtaGVpZ2h0OiAxLjJlbTsKICBtYXJnaW46IDI1cHggMHB4IDEwcHggMHB4Owp9CgpociB7CiAgYm9yZGVyOiAwOwogIGhlaWdodDogMXB4OwogIGJhY2tncm91bmQ6ICMzMzM7CiAgbWFyZ2luOiAxMHB4IDBweDsKfQoKcCB7CiAgbWFyZ2luOiAycHg7CiAgcGFkZGluZzogMnB4IDVweDsKfQoKcHJlIHsKICBtYXJnaW46IDBweCAwcHggNXB4IDBweDsKICBmb250LXNpemU6IDEycHg7CiAgY29sb3I6ICNkZGQ7CiAgbGV0dGVyLXNwYWNpbmc6IDFweDsKICB3aGl0ZS1zcGFjZTogcHJlLXdyYXA7CiAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZTsKICBmb250LXNpemU6IDEycHg7CiAgZm9udC1zdHlsZTogbm9ybWFsOwogIGZvbnQtdmFyaWFudDogbm9ybWFsOwogIGxpbmUtaGVpZ2h0OiAxLjZlbTsKfQoKbGFiZWwgewogIG1hcmdpbi1ib3R0b206IDIwcHg7CiAgZGlzcGxheTogYmxvY2s7Cn0KCmxpIHsKICBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7CiAgYmFja2dyb3VuZC1jb2xvcjogIzExMTsKICBwYWRkaW5nOiAxMHB4IDIwcHg7CiAgY3Vyc29yOiBwb2ludGVyOwogIGJvcmRlci1sZWZ0OiBzb2xpZCAycHggIzExMTsKICB0cmFuc2l0aW9uOiBhbGwgMC4zOwp9CgpsaTpob3ZlciB7CiAgYm9yZGVyLWNvbG9yOiAjMDBFNkZGCn0KCnNlbGVjdCB7CiAgY3Vyc29yOiBwb2ludGVyOwogIHdpZHRoOiBjYWxjKDEwMCUgKyAycHgpOwogIGJvcmRlcjogc29saWQgMHB4ICMwMEU2RkY7CiAgYm9yZGVyLXJhZGl1czogMHB4OwogIG91dGxpbmU6IG5vbmU7CiAgY29sb3I6ICNmZmY7CiAgcGFkZGluZzogOXB4IDEwcHg7CiAgZGlzcGxheTogYmxvY2s7CiAgYmFja2dyb3VuZC1jb2xvcjogIzMzMzsKICBmb250LXNpemU6IDE0cHg7CiAgbWFyZ2luOiA1cHggMHB4IDVweCAwcHg7Cn0KCnNlbGVjdDpmb2N1cyB7CiAgb3V0bGluZTogbm9uZTsKfQoKaW5wdXQgewogIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTsKICBtYXJnaW46IDVweCAwcHg7CiAgcGFkZGluZzogMi41cHggMTBweDsKICBvdXRsaW5lOiBub25lOwogIGZvbnQtc2l6ZTogMTRweDsKfQoKaW5wdXRbdHlwZT1idXR0b25dLAppbnB1dFt0eXBlPXN1Ym1pdF0gewogIGN1cnNvcjogcG9pbnRlcjsKICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDAwOwogIG1hcmdpbjogMTBweCAxMHB4OwogIHBhZGRpbmc6IDEwcHggMjVweDsKICBib3JkZXI6IHNvbGlkIDBweDsKICBib3JkZXItY29sb3I6ICMwMDA7CiAgYm9yZGVyLXJhZGl1czogM3B4OwogIG91dGxpbmU6IG5vbmU7CiAgY29sb3I6ICNmZmY7Cn0KCmlucHV0W3R5cGU9YnV0dG9uXTpmb2N1cyB7CiAgb3V0bGluZTogbm9uZTsKfQoKaW5wdXRbdHlwZT1idXR0b25dOmhvdmVyIHsKICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDBFNkZGOwogIGNvbG9yOiAjMDAwOwp9CgppbnB1dFt0eXBlPWJ1dHRvbl06aG92ZXIuZGVsZXRlIHsKICBiYWNrZ3JvdW5kLWNvbG9yOiByZWQ7CiAgY29sb3I6ICNmZmY7Cn0KCmlucHV0W3R5cGU9dGV4dF0sCmlucHV0W3R5cGU9c2VhcmNoXSwKaW5wdXRbdHlwZT1wYXNzd29yZF0gewogIGNvbG9yOiAjZmZmOwogIHdpZHRoOiAtd2Via2l0LWNhbGMoMTAwJSAtIDBweCk7CiAgd2lkdGg6IC1tb3otY2FsYygxMDAlIC0gMHB4KTsKICB3aWR0aDogY2FsYygxMDAlIC0gMHB4KTsKICBvdXRsaW5lOiBub25lOwogIGJvcmRlcjogc29saWQgMXB4IHRyYW5zcGFyZW50OwogIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50OwogIGJvcmRlci1ib3R0b20tY29sb3I6ICM1NTU7CiAgYm9yZGVyLXJhZGl1czogMHB4OwogIHBhZGRpbmc6IDhweCAxMHB4Owp9CgppbnB1dFt0eXBlPSJjaGVja2JveCJdIHsKICBib3JkZXI6IHNvbGlkIDFweCAjMDBFNkZGOwogIGJhY2tncm91bmQtY29sb3I6ICMzMzM7CiAgaGVpZ2h0OiAyNXB4OwogIHdpZHRoOiAyNXB4OwogIGN1cnNvcjogcG9pbnRlcjsKICAvKgogIC13ZWJraXQtYXBwZWFyYW5jZTogY2hlY2tib3g7CiAgKi8KfQoKaW5wdXRbdHlwZT0iY2hlY2tib3giXTpjaGVja2VkIHsKICBjb2xvcjogI2ZmZjsKICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDBFNkZGOwogIC8qZGlzcGxheTogaW5saW5lLWJsb2NrOyovCn0KCmlucHV0W3R5cGU9ImNoZWNrYm94Il06YmVmb3JlIHsKICBwb3NpdGlvbjogaW5pdGlhbDsKICBsZWZ0OiAwcHg7CiAgbWFyZ2luLWxlZnQ6IC00cHg7CiAgY29udGVudDogIiAiOwp9CgppbnB1dFt0eXBlPSJjaGVja2JveCJdOmNoZWNrZWQ6YmVmb3JlIHsKICBwb3NpdGlvbjogaW5pdGlhbDsKICBsZWZ0OiAwcHg7CiAgbWFyZ2luLWxlZnQ6IC0zcHg7CiAgY29udGVudDogIuKckyI7CiAgY29sb3I6ICMwMDA7Cn0KCgppbnB1dFt0eXBlPWJ1dHRvbl0uY2FuY2VsIHsKCiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7CiAgYm9yZGVyLWNvbG9yOiByZWQ7Cn0KCmlucHV0W3R5cGU9YnV0dG9uXS5zYXZlIHsKICBiYWNrZ3JvdW5kLWNvbG9yOiAjMTExOwogIGZsb2F0OiByaWdodDsKfQoKCmlucHV0W3R5cGU9YnV0dG9uXS5ibGFjaywKaW5wdXRbdHlwZT1zdWJtaXRdLmJsYWNrIHsKICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDAwOwogIGJvcmRlci1jb2xvcjogIzAwMDsKfQoKaW5wdXRbdHlwZT1idXR0b25dLmNlbnRlciB7CiAgbWFyZ2luLXJpZ2h0OiBhdXRvOwogIG1hcmdpbi1sZWZ0OiBhdXRvOwogIGJhY2tncm91bmQtY29sb3I6ICMwMDA7CiAgYm9yZGVyLWNvbG9yOiAjMDAwOwp9CgoucG9pbnRlciB7CiAgY3Vyc29yOiBwb2ludGVyOwp9CgoucG9pbnRlcjpob3ZlciB7CiAgY29sb3I6ICMwMEU2RkY7CiAgY3Vyc29yOiBwb2ludGVyOwp9Cgouc29ydFRoaXMgewogIGNvbG9yOiAjMDBFNkZGOwp9CgoudzQwcHggewogIG1heC13aWR0aDogNDBweDsKfQoKLnc1MHB4IHsKICBtYXgtd2lkdGg6IDUwcHg7Cn0KCi53ODBweCB7CiAgbWF4LXdpZHRoOiA4MHB4Owp9CgoudzE1MHB4IHsKICBtYXgtd2lkdGg6IDE1MHB4Owp9CgoudzIwMHB4IHsKICBtYXgtd2lkdGg6IDIwMHB4OwogIG1pbi13aWR0aDogMTAwcHg7CiAgd2lkdGg6IDIwMHB4OwogIG92ZXJmbG93LXg6IGhpZGRlbjsKICB3aGl0ZS1zcGFjZTogbm93cmFwOwogIG92ZXJmbG93OiBoaWRkZW47CiAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7Cn0KCi53MzAwcHggewogIG1heC13aWR0aDogMzAwcHg7Cn0KCi53MjIwcHggewogIG1heC13aWR0aDogMjIwcHg7CiAgY3Vyc29yOiBhbGlhczsKfQoKLmZvb3RlciB7CiAgZm9udC1zaXplOiAxMHB4Owp9CgouY2VudGVyIHsKICB0ZXh0LWFsaWduOiBjZW50ZXI7Cn0KCi5zY3JlZW5Mb2dIaWRkZW4gewogIHRyYW5zZm9ybTogdHJhbnNsYXRlKDBweCwgLTExMHB4KTsKfQoKLmJvcmRlclNwYWNlIHsKICBtYXJnaW4tYm90dG9tOiAzMHB4Owp9Cgoubm9uZSB7CiAgZGlzcGxheTogbm9uZTsKfQoKLm5vdFZpc2libGUgewogIGhlaWdodDogMHB4OwogIGRpc3BsYXk6IG5vbmU7CiAgb3BhY2l0eTogMDsKICBib3JkZXItYm90dG9tOiAjMDAwIHNvbGlkIDBweDsKCn0KCi52aXNpYmxlIHsKICBvcGFjaXR5OiAxOwogIGRpc3BsYXk6IGJsb2NrOwogIGJvcmRlci1ib3R0b206ICM0NDQgc29saWQgMXB4OwogIHBhZGRpbmc6IDEwcHg7Cn0KCi5mbG9hdFJpZ2h0IHsKICBmbG9hdDogcmlnaHQ7Cn0KCi5mbG9hdExlZnQgewogIGZsb2F0OiBsZWZ0Owp9CgoubWVudS1hY3RpdmUgewogIGJhY2tncm91bmQtY29sb3I6ICMwMEU2RkY7Cn0KCiNicmFuY2ggewogIGRpc3BsYXk6IHRhYmxlOwogIG1hcmdpbjogYXV0bzsKICBjb2xvcjogcmVkOwp9CgojaW50ZXJhY3Rpb24gewogIG1hcmdpbi1ib3R0b206IDEwMHB4OwogIHRleHQtYWxpZ246IGNlbnRlcjsKICBib3JkZXItYm90dG9tOiBzb2xpZCAwcHggIzc3NzsKfQoKCi5oYWxmIHsKICBkaXNwbGF5OiBibG9jazsKICB3aWR0aDogNDUlOwp9CgoubWVudSB7CiAgYm9yZGVyOiBzb2xpZCAxcHggIzAwRTZGRjsKfQoKLmluZm9Nc2cgewogIGNvbG9yOiAjYWFhOwp9CgouZXJyb3JNc2cgewogIGNvbG9yOiByZWQ7Cn0KCi53YXJuaW5nTXNnIHsKICBjb2xvcjogeWVsbG93Owp9CgouZGVidWdNc2cgewogIGNvbG9yOiBtYWdlbnRhOwp9CgouTmV3cywKLk1vdmllLAouU2VyaWVzLAouU3BvcnRzLAouS2lkcyB7CiAgYm9yZGVyLWxlZnQ6IHNvbGlkIDJweAp9CgouTmV3cyB7CiAgYm9yZGVyLWNvbG9yOiB0b21hdG8KfQoKLk1vdmllIHsKICBib3JkZXItY29sb3I6IHJveWFsYmx1ZTsKfQoKLlNlcmllcyB7CiAgYm9yZGVyLWNvbG9yOiBnb2xkOwp9CgouU3BvcnRzIHsKICBib3JkZXItY29sb3I6IHllbGxvd2dyZWVuOwp9CgouS2lkcyB7CiAgYm9yZGVyLWNvbG9yOiBtZWRpdW1wdXJwbGU7Cn0KCi8qIExvYWRpbmcgKi8KI2xvYWRpbmcgewogIGxlZnQ6IDBweDsKICB0b3A6IDBweDsKICB6LWluZGV4OiAxMDAwMDsKICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjgpOwogIG1hcmdpbjogYXV0bzsKICB3aWR0aDogMTAwJTsKICBoZWlnaHQ6IDEwMCU7Cn0KCgoubG9hZGVyIHsKICBib3JkZXI6IDVweCBzb2xpZCB0cmFuc3BhcmVudDsKICBib3JkZXItcmFkaXVzOiA1MCU7CiAgYm9yZGVyLXRvcDogNXB4IHNvbGlkICMwMEU2RkY7CiAgYm9yZGVyLWJvdHRvbTogNXB4IHNvbGlkICMwMEU2RkY7CiAgd2lkdGg6IDUwcHg7CiAgaGVpZ2h0OiA1MHB4OwogIC13ZWJraXQtYW5pbWF0aW9uOiBzcGluIDEuMnMgbGluZWFyIGluZmluaXRlOwogIGFuaW1hdGlvbjogc3BpbiAxLjJzIGxpbmVhciBpbmZpbml0ZTsKCiAgcG9zaXRpb246IGZpeGVkOwogIG1hcmdpbjogYXV0bzsKCiAgdG9wOiAwOwogIHJpZ2h0OiAwOwogIGJvdHRvbTogMDsKICBsZWZ0OiAwOwoKfQoKQC13ZWJraXQta2V5ZnJhbWVzIHNwaW4gewogIDAlIHsKICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoMGRlZyk7CiAgfQoKICAxMDAlIHsKICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKTsKICB9Cn0KCkBrZXlmcmFtZXMgc3BpbiB7CiAgMCUgewogICAgdHJhbnNmb3JtOiByb3RhdGUoMGRlZyk7CiAgfQoKICAxMDAlIHsKICAgIHRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7CiAgfQp9" webUI["html/css/screen.css"] = "bmF2IGltZyB7CiAgZGlzcGxheTogYmxvY2s7CiAgbWF4LWhlaWdodDogMjBweDsKICBtYXgtd2lkdGg6IDIwcHg7CiAgZmxvYXQ6IGxlZnQ7Cn0KCm5hdiBwIHsKICB0ZXh0LWFsaWduOiBsZWZ0OwogIHBhZGRpbmc6IDBweCAzMHB4Owp9CgojbGF5b3V0IHsKICBkaXNwbGF5OiBibG9jazsKICBoZWlnaHQ6IDEwMCU7Cn0KCgoubGF5b3V0LWxlZnQgewogIGRpc3BsYXk6IGJsb2NrOwogIG1pbi13aWR0aDogMTUwcHg7CiAgbWF4LXdpZHRoOiAyMCU7CiAgYmFja2dyb3VuZC1jb2xvcjogIzExMTsKICBoZWlnaHQ6IGluaGVyaXQ7CiAgZmxvYXQ6IGxlZnQ7Cn0KCi5sYXlvdXQtcmlnaHQgewogIGRpc3BsYXk6IGJsb2NrOwogIGJhY2tncm91bmQtY29sb3I6ICM0NDQ7Cn0KCiNtZW51LXdyYXBwZXIgewogIGhlaWdodDogMTAwJTsKfQoKCiNsb2dvIHsKICBkaXNwbGF5OiBibG9jazsKICBtaW4td2lkdGg6IDE4MHB4OwogIHdpZHRoOiAxMDAlOwogIGhlaWdodDogMTAwcHg7CiAgYmFja2dyb3VuZDogdXJsKCIuLi9pbWcvbG9nb193XzYwMHgyMDAucG5nIik7CiAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDsKICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7CiAgYmFja2dyb3VuZC1zaXplOiAxMDAlOwp9CgoKI3BhZ2UgewogIG1heC13aWR0aDogOTUwcHg7CiAgbWFyZ2luOiBhdXRvOwogIGJhY2tncm91bmQtY29sb3I6ICM0NDQ7CgogIC8qCiAgaGVpZ2h0OiAtd2Via2l0LWNhbGMoMTAwJSAtIDEzMHB4KTsKICBoZWlnaHQ6IC1tb3otY2FsYygxMDAlIC0gMTMwcHgpOwogIGhlaWdodDogY2FsYygxMDAlIC0gMTMwcHgpOwogICovCgogIG1pbi1oZWlnaHQ6IC13ZWJraXQtY2FsYygxMDAlIC0gMTIwcHgpOwogIG1pbi1oZWlnaHQ6IC1tb3otY2FsYygxMDAlIC0gMTIwcHgpOwogIG1pbi1oZWlnaHQ6IGNhbGMoMTAwJSAtIDEyMHB4KTsKCgogIGJveC1zaGFkb3c6IDBweCA1cHggNXB4ICMyMjI7Cgp9CgojdWlTZXR0aW5nIHsKICBmbG9hdDogcmlnaHQ7CiAgbWFyZ2luLXJpZ2h0OiAyNXB4Owp9CgojYm94IGlucHV0W3R5cGU9dGV4dF0sCiNib3ggaW5wdXRbdHlwZT1wYXNzd29yZF0gewogIHdpZHRoOiAtd2Via2l0LWNhbGMoMTAwJSAtIDIwcHgpOwogIHdpZHRoOiAtbW96LWNhbGMoMTAwJSAtIDIwcHgpOwogIHdpZHRoOiBjYWxjKDEwMCUgLSAyMHB4KTsKfQoKI2JveCBpbnB1dFt0eXBlPXN1Ym1pdF0gewogIG1hcmdpbjogNTBweCBhdXRvOwp9Cgojc2V0dGluZ3MgewogIGRpc3BsYXk6IGJsb2NrOwogIHBhZGRpbmc6IDEwcHggMTBweDsKfQoKI3NldHRpbmdzIGg1IHsKICBtYXJnaW46IDUwcHggMHB4IDEwcHggMHB4Owp9CgojY29udGVudC1pbnRlcmFjdGlvbiAuc2VhcmNoIHsKICB3aWR0aDogMjAwcHg7CiAgYm9yZGVyOiAxcHggc29saWQgIzAwMDsKICBwYWRkaW5nOiA5cHg7CiAgYmFja2dyb3VuZC1jb2xvcjogIzMzMzsKICBtYXJnaW46IDEwcHg7CiAgZmxvYXQ6IHJpZ2h0OwogIGJvcmRlci1yYWRpdXM6IDNweDsKCn0KCiNteVN0cmVhbXMgewogIHBvc2l0aW9uOiBmaXhlZDsKICBib3R0b206IDBweDsKICBiYWNrZ3JvdW5kLWNvbG9yOiAjMTExOwogIHdpZHRoOiAxMDAlOwogIG1heC13aWR0aDogOTUwcHg7CgogIC8qCiAgbWF4LWhlaWdodDogMTAwcHg7CiAgKi8KICBtYXJnaW4tYm90dG9tOiAwcHg7Cn0KCiNteVN0cmVhbXMgaW1nIHsKICB3aWR0aDogNCU7CiAgcGFkZGluZzogMnB4IDVweDsKICBjdXJzb3I6IHBvaW50ZXI7CiAgZmxvYXQ6IHJpZ2h0Owp9CgovKiBXaXphcmQqLwojYm94IHsKICBiYWNrZ3JvdW5kLWNvbG9yOiAjNDQ0OwogIG1pbi1oZWlnaHQ6IDQwMHB4OwoKICBkaXNwbGF5OiBmbGV4OwogIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOwp9CgojYm94IHAgewogIHBhZGRpbmc6IDEwcHggMHB4Owp9CgojYm94LWZvb3RlciB7CiAgbWFyZ2luLXRvcDogYXV0bzsKfQoKI2JveC1mb290ZXIgewogIG1hcmdpbjogYXV0bzsKICBwYWRkaW5nOiAxMHB4Owp9CgojaGVhZGxpbmUgewogIGJhY2tncm91bmQtY29sb3I6ICMyMjI7CiAgYm9yZGVyLWJvdHRvbTogc29saWQgMnB4ICMyMjI7CiAgdHJhbnNpdGlvbjogYWxsIDAuNXM7CiAgcGFkZGluZzogMTBweCAwcHg7CiAgZGlzcGxheTogYmxvY2s7Cn0KCiNjb250ZW50IHsKICBkaXNwbGF5OiBibG9jazsKICBvdmVyZmxvdzogYXV0bzsKICBwYWRkaW5nOiAxMHB4Owp9CgovKiAtLS0gKi8KCgojY2xpZW50SW5mbywKI2FjdGl2ZVN0cmVhbXMsCiNpbmFjdGl2ZVN0cmVhbXMgewogIGZvbnQtZmFtaWx5OiBtb25vc3BhY2U7CiAgZGlzcGxheTogYmxvY2s7CiAgZm9udC1zaXplOiA5cHg7CiAgYmFja2dyb3VuZC1jb2xvcjogIzExMTsKICBjb2xvcjogIzAwRTZGRjsKICBib3JkZXItYm90dG9tOiBzb2xpZCAwcHg7CiAgOwogIHBhZGRpbmc6IDBweDsKICBsZXR0ZXItc3BhY2luZzogMXB4OwogIG92ZXJmbG93LXg6IGhpZGRlbjsKICBib3JkZXItc3BhY2luZzogNHB4IDRweDsKICBib3JkZXItYm90dG9tOiBzb2xpZCAxcHggIzQ0NDsKfQoKI215U3RyZWFtc0JveCB7CiAgcG9zaXRpb246IHJlbGF0aXZlOwogIHBhZGRpbmc6IDBweDsKICAvKmhlaWdodDogMTAwcHg7Ki8KICBtYXgtaGVpZ2h0OiAxNTBweDsKICBiYWNrZ3JvdW5kLWNvbG9yOiAjMTExOwogIGNvbG9yOiB3aGl0ZTsKICBkaXNwbGF5OiBmbGV4OwogIGp1c3RpZnktY29udGVudDogY2VudGVyOwogIGFsaWduLWl0ZW1zOiBjZW50ZXI7Cn0KCiNvcGVuU3RyZWFtcyB7CiAgd2lkdGg6IDIwcHg7CiAgaGVpZ2h0OiAyMHB4OwogIGN1cnNvcjogcG9pbnRlcjsKICBmbG9hdDogcmlnaHQ7CiAgcG9zaXRpb246IGFic29sdXRlOwogIHJpZ2h0OiAwcHg7CiAgYm90dG9tOiAwcHg7CiAgYmFja2dyb3VuZDogdXJsKCIuLi9pbWcvdG91Y2gucG5nIik7CiAgYmFja2dyb3VuZC1jb2xvcjogIzExMTsKCiAgYmFja2dyb3VuZC1wb3NpdGlvbjogYm90dG9tIHJpZ2h0Owp9CgojYWxsU3RyZWFtcyB7CiAgd2lkdGg6IDEwMCU7CiAgaGVpZ2h0OiAxMDAlOwogIHBhZGRpbmc6IDJweDsKfQoKI2FjdGl2ZVN0cmVhbXMsCiNpbmFjdGl2ZVN0cmVhbXMgewogIG92ZXJmbG93LXk6IHNjcm9sbDsKICB3aWR0aDogNTAlOwogIG1heC1oZWlnaHQ6IDEwMHB4OwogIGZsb2F0OiBsZWZ0Owp9CgojYWN0aXZlU3RyZWFtcyAudGRLZXksCiNpbmFjdGl2ZVN0cmVhbXMgLnRkS2V5IHsKICB3aWR0aDogNzVweDsKfQoKCgoKI2luYWN0aXZlU3RyZWFtcyAudGRLZXkgewogIGNvbG9yOiByZWQ7Cn0KCiNjbGllbnRJbmZvIC50ZFZhbCwKI2xvZ0luZm8gLnRkVmFsLAojYWN0aXZlU3RyZWFtcyAudGRWYWwsCiNpbmFjdGl2ZVN0cmVhbXMgLnRkVmFsLAojbWFwcGluZ0luZm8gLnRkVmFsIHsKICBjb2xvcjogI2FhYTsKICB3aGl0ZS1zcGFjZTogaW5oZXJpdDsKfQoKI2NsaWVudEluZm8gLnRkVmFsTGluaywKI2xvZ0luZm8gLnRkVmFsTGluaywKI2FjdGl2ZVN0cmVhbXMgLnRkVmFsTGluaywKI2luYWN0aXZlU3RyZWFtcyAudGRWYWxMaW5rLAojbWFwcGluZ0luZm8gLnRkVmFsTGluayB7CiAgY29sb3I6IGxpbWU7CiAgd2hpdGUtc3BhY2U6IGluaGVyaXQ7Cn0KCiNib3gtd3JhcHBlciB7CiAgZGlzcGxheTogaW5saW5lLWJsb2NrOwogIHdpZHRoOiAxMDAlOwoKICBvdmVyZmxvdy15OiBzY3JvbGw7Cn0KCiNjb250ZW50X3RhYmxlLAojbWFwcGluZy1kZXRhaWwtdGFibGUsCiNjb250ZW50X3RhYmxlIHsKICBkaXNwbGF5OiB0YWJsZTsKCiAgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTsKICBvdmVyZmxvdy15OiBzY3JvbGw7CiAgd2lkdGg6IDEwMCU7Cn0KCgojY29udGVudF90YWJsZSAuY29udGVudF90YWJsZV9oZWFkZXIgewogIGJhY2tncm91bmQtY29sb3I6ICMzMzM7CiAgaGVpZ2h0OiA1MHB4OwogIGJvcmRlci1ib3R0b206IHNvbGlkIDFweCAjMTExOwogIGJvcmRlci1sZWZ0OiBzb2xpZCAzcHggIzMzMzsKICBjdXJzb3I6IGF1dG87Cgp9CgoKdGJvZHkgewogIHdpZHRoOiAxMDAlOwp9CgoKLnRhYmxlRWxsaXBzaXMgewogIHdpZHRoOiAxNTBweDsKICBvdmVyZmxvdzogaGlkZGVuOwogIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwogIHdoaXRlLXNwYWNlOiBub3dyYXA7Cn0KCiNjb250ZW50X3RhYmxlIGltZyB7CiAgZGlzcGxheTogYmxvY2s7CiAgbWF4LWhlaWdodDogMjhweDsKICBtYXJnaW4tbGVmdDogYXV0bzsKICBtYXJnaW4tcmlnaHQ6IGF1dG87CiAgbWF4LXdpZHRoOiAzMHB4Owp9CgojY29udGVudF90YWJsZSB0ciB7CiAgYm9yZGVyLWxlZnQ6IHNvbGlkIDNweCA0NDQ7CiAgYm9yZGVyLWJvdHRvbTogc29saWQgMXB4ICMzMzM7CiAgY3Vyc29yOiBwb2ludGVyOwp9CgojY29udGVudF90YWJsZSB0cjpob3ZlciB7CiAgYmFja2dyb3VuZC1jb2xvcjogIzMzMzsKfQoKI2NvbnRlbnRfdGFibGUgdGQgewoKICBwYWRkaW5nOiAwcHggMnB4Owp9CgojY29udGVudF90YWJsZSBpbnB1dFt0eXBlPXRleHRdIHsKICB3aWR0aDogODAlOwogIG1pbi13aWR0aDogMzVweDsKICBtYXgtd2lkdGg6IDYwcHg7CiAgYm9yZGVyOiAwcHg7CiAgYmFja2dyb3VuZC1jb2xvcjogIzMzMzsKICBtYXJnaW4tbGVmdDogNXB4OwogIHRleHQtYWxpZ246IGxlZnQ7Cn0KCiNjb250ZW50X3RhYmxlIGlucHV0W3R5cGU9Y2hlY2tib3hdIHsKICBtYXgtd2lkdGg6IDI1cHg7CiAgbWFyZ2luOiBhdXRvOwp9CgoKLnNob3dCdWxrIHsKICBkaXNwbGF5OiBibG9jazsKfQoKLmhpZGVCdWxrIHsKICBkaXNwbGF5OiBub25lOwp9CgojY29udGVudF90YWJsZSB0ci5hY3RpdmVFUEcgewogIGJvcmRlci1sZWZ0OiBzb2xpZCAzcHggbGF3bmdyZWVuOwp9CgojY29udGVudF90YWJsZSB0ci5ub3RBY3RpdmVFUEcgewogIGJvcmRlci1sZWZ0OiBzb2xpZCAzcHggcmVkOwp9CgoKI2xvZ1NjcmVlbiBwIHsKICB3aGl0ZS1zcGFjZTogcHJlOwogIGZvbnQtc2l6ZTogMTBweDsKICAvKgogIGxpbmUtaGVpZ2h0OiAxLjZlbTsKICBmb250LWZhbWlseTogIkFyaWFsIiwgc2Fucy1zZXJpZjsKICAqLwogIGxldHRlci1zcGFjaW5nOiAxcHg7CiAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZTsKICBmb250LXNpemU6IDEycHg7CiAgZm9udC1zdHlsZTogbm9ybWFsOwogIGZvbnQtdmFyaWFudDogbm9ybWFsOwogIGxpbmUtaGVpZ2h0OiAxLjZlbTsKfQoKI3BvcHVwIHsKICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNCk7CiAgcG9zaXRpb246IGZpeGVkOwogIGxlZnQ6IDBweDsKICB3aWR0aDogMTAwJTsKICB6LWluZGV4OiAxMDA7CiAgaGVpZ2h0OiAxMDAlOwogIG92ZXJmbG93OiBzY3JvbGw7Cn0KCiNtYXBwaW5nLWRldGFpbCwKI3VzZXItZGV0YWlsLAojZmlsZS1kZXRhaWwsCiNwb3B1cC1jdXN0b20gewogIGJveC1zaGFkb3c6IDBweCA1cHggNDBweCAjMDAwOwogIG1hcmdpbi10b3A6IDIwcHg7CiAgbWFyZ2luLWxlZnQ6IGF1dG87CiAgbWFyZ2luLXJpZ2h0OiBhdXRvOwoKICBtYXgtd2lkdGg6IDgwMHB4OwogIGJhY2tncm91bmQtY29sb3I6ICMyMjI7CiAgcGFkZGluZzogMTBweDsKICBvdmVyZmxvdzogYXV0bzsKfQoKI3BvcHVwLWN1c3RvbSBoMyB7CiAgdGV4dC1hbGlnbjogY2VudGVyOwp9CgojZmlsZS1kZXRhaWwgaW5wdXRbdHlwZT10ZXh0XSB7CiAgd2lkdGg6IC13ZWJraXQtY2FsYygxMDAlIC0gMjBweCk7CiAgd2lkdGg6IC1tb3otY2FsYygxMDAlIC0gMjBweCk7CiAgd2lkdGg6IGNhbGMoMTAwJSAtIDIwcHgpOwp9CgojbWFwcGluZy1kZXRhaWwgaW1nIHsKICBkaXNwbGF5OiBibG9jazsKICBtYXgtaGVpZ2h0OiAzMHB4OwogIG1hcmdpbi1ib3R0b206IDIwcHg7CiAgbWFyZ2luLWxlZnQ6IGF1dG87CiAgbWFyZ2luLXJpZ2h0OiBhdXRvOwp9CgojcG9wdXAtY3VzdG9tIGlucHV0W3R5cGU9dGV4dF0sCiNwb3B1cC1jdXN0b20gaW5wdXRbdHlwZT1wYXNzd29yZF0sCiNtYXBwaW5nLWRldGFpbCBpbnB1dFt0eXBlPXRleHRdLAojY29udGVudF9zZXR0aW5ncyBpbnB1dFt0eXBlPXRleHRdLAojY29udGVudF9zZXR0aW5ncyBpbnB1dFt0eXBlPXBhc3N3b3JkXSB7CiAgYm9yZGVyOiBzb2xpZCAxcHg7CiAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDsKICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzMzOwogIHRleHQtYWxpZ246IGxlZnQ7CiAgd2lkdGg6IC13ZWJraXQtY2FsYygxMDAlIC0gMjBweCk7CiAgd2lkdGg6IC1tb3otY2FsYygxMDAlIC0gMjBweCk7CiAgd2lkdGg6IGNhbGMoMTAwJSAtIDIwcHgpOwp9CgojcG9wdXAtY3VzdG9tIGlucHV0W3R5cGU9dGV4dF0ubm90QXZhaWxhYmxlIHsKICBib3JkZXItY29sb3I6IHJlZDsKICBjb2xvcjogIzY2NjsKICBjdXJzb3I6IG5vdC1hbGxvd2VkOwp9CgojcG9wdXAtY3VzdG9tIGlucHV0W3R5cGU9dGV4dF06ZGlzYWJsZWQgewogIGNvbG9yOiAjNjY2OwogIGN1cnNvcjogbm90LWFsbG93ZWQ7Cn0KCiNtYXBwaW5nLWRldGFpbC10YWJsZSwKI3VzZXItZGV0YWlsLXRhYmxlIHsKICBkaXNwbGF5OiBpbmxpbmUtdGFibGU7CiAgd2lkdGg6IDEwMCU7Cn0KCiNwb3B1cC1jdXN0b20gdGFibGUsCiNjb250ZW50X3NldHRpbmdzIHRhYmxlIHsKICBkaXNwbGF5OiBpbmxpbmUtdGFibGU7CiAgdGFibGUtbGF5b3V0OiBmaXhlZDsKICB3aWR0aDogMTAwJTsKfQoKCiNtYXBwaW5nLWRldGFpbC10YWJsZSB0ZCwKI3VzZXItZGV0YWlsLXRhYmxlIHRkIHsKICBwYWRkaW5nOiAxMHB4IDBweDsKCn0KCiNtYXBwaW5nLWRldGFpbC10YWJsZSB0ZC5sZWZ0LAojdXNlci1kZXRhaWwtdGFibGUgdGQubGVmdCwKI3BvcHVwLWN1c3RvbSB0ZC5sZWZ0IHsKICB3aWR0aDogMzglOwp9CgouaW50ZXJhY3Rpb24sCiNpbnRlcmFjdGlvbiB7CiAgbWFyZ2luLXRvcDogMjBweDsKICBkaXNwbGF5OiBpbmxpbmUtZmxleDsKICBmbG9hdDogcmlnaHQ7Cn0KCi5pbnRlcmFjdGlvbiBpbnB1dFt0eXBlPWJ1dHRvbl0sCi5pbnRlcmFjdGlvbiBpbnB1dFt0eXBlPXN1Ym1pdF0gewogIGJhY2tncm91bmQtY29sb3I6ICMwMDA7CiAgbWluLXdpZHRoOiAxMDBweDsKICBtYXJnaW46IDBweCAxMHB4OwogIHRleHQtYWxpZ246IGNlbnRlcjsKfQoKI25vdGlmaWNhdGlvbiB7CiAgZGlzcGxheTogYmxvY2s7CiAgcG9zaXRpb246IGZpeGVkOwogIHJpZ2h0OiAwcHg7CiAgaGVpZ2h0OiAxMDAlOwogIHdpZHRoOiAyNTBweDsKCiAgYmFja2dyb3VuZC1jb2xvcjogIzIyMjsKICBib3gtc2hhZG93OiAwcHggMHB4IDIwcHggIzAwMDsKfQoKI25vdGlmaWNhdGlvbiBoNSB7CiAgYmFja2dyb3VuZC1jb2xvcjogIzEyMTIxMjsKICBwYWRkaW5nOiA1cHggMTBweCA1cHggMTBweDsKfQoKI25vdGlmaWNhdGlvbiBwcmUgewogIHBhZGRpbmc6IDBweCAxMHB4IDBweCAxMHB4Owp9Cgojbm90aWZpY2F0aW9uIHAgewogIGZvbnQtc2l6ZTogMTAgcHg7CiAgbWFyZ2luOiAwcHg7CiAgcGFkZGluZzogMHB4IDEwcHggNXB4IDEwcHg7Cn0KCiNub3RpZmljYXRpb24gLmVsZW1lbnQgewogIC8qcGFkZGluZzogMHB4IDVweDsqLwogIG1hcmdpbjogNXB4IDVweDsKICBib3JkZXItcmFkaXVzOiA1cHg7CiAgYmFja2dyb3VuZC1jb2xvcjogIzE4MTgxODsKICBib3JkZXItbGVmdDogMTBweCBzb2xpZCBncmVlbjsKfQoKCkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjIwcHgpIHsKICBib2R5IHsKICAgIHdpZHRoOiAxMDAlOwogICAgYmFja2dyb3VuZC1jb2xvcjogIzQ0NDsKICB9CgogIGgxIHsKICAgIGZvbnQtc2l6ZTogMjZweDsKICAgIGxldHRlci1zcGFjaW5nOiAzcHg7CiAgfQoKICBuYXYgcCB7CiAgICBkaXNwbGF5OiBibG9jazsKICB9CgoKCiAgI2hlYWRlcl9jb25maWcgewogICAgZGlzcGxheTogYmxvY2s7CiAgICBoZWlnaHQ6IDEwMHB4OwogICAgYmFja2dyb3VuZDogdXJsKCIuLi9pbWcvbG9nb193XzYwMHgyMDAucG5nIik7CiAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0OwoKICAgIGJhY2tncm91bmQtc2l6ZTogMzAwcHggMTAwcHg7CiAgfQoKICAjc2NyZWVuTG9nIHsKICAgIG1hcmdpbi1sZWZ0OiAzMDBweDsKCiAgICB0cmFuc2l0aW9uOiBub25lOwogICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7CiAgICBib3JkZXItYm90dG9tOiBzb2xpZCAxcHggdHJhbnNwYXJlbnQ7CiAgICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAjMjIyOwogIH0KCiAgI3NldHRpbmdzIHsKICAgIC8qCiAgICBoZWlnaHQ6IC13ZWJraXQtY2FsYygxMDAlIC0gMTAwcHgpOwogICAgaGVpZ2h0OiAtbW96LWNhbGMoMTAwJSAtIDEwMHB4KTsKICAgIGhlaWdodDogY2FsYygxMDAlIC0gMTAwcHgpOwogICAgKi8KICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgIG92ZXJmbG93OiBhdXRvOwogIH0KCgogIC5zY3JlZW5Mb2dIaWRkZW4gewogICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMHB4LCAwcHgpOwogIH0KCgogICNib3ggewogICAgZGlzcGxheTogYmxvY2s7CiAgICBtaW4taGVpZ2h0OiA1MDBweDsKICAgIG1heC13aWR0aDogNTAwcHg7CiAgICBtYXJnaW46IDEwcHggYXV0bzsKICAgIGJhY2tncm91bmQtY29sb3I6ICM0NDQ7CiAgICBib3gtc2hhZG93OiAwcHggNXB4IDVweCAjMjIyOwoKICAgIGRpc3BsYXk6IGZsZXg7CiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogIH0KCn0=" + webUI["html/favicon.ico"] = "AAABAAMAEBAAAAEAIABoBAAANgAAACAgAAABACAAKBEAAJ4EAAAwMAAAAQAgAGgmAADGFQAAKAAAABAAAAAgAAAAAQAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAO2cIH7unCD57pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg+e2cIH7unCD57pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD57pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unSP/7p0k/+6cIP/voSz/7pwg/+6fJv/unSP/7p4k/+6cIP/unCD/7pwh/+6eJP/unCD/7pwg/+6cIP/unSP/+Nmr//vpzv/zumT/++nO/++hK//87tr/99Se//rkwv/30JX/9s2P//zt1//41qL/9ceC/+6cIP/unCD/7p0i//nds//30Zj/7qAo//rmx//unib/++vS//bMjP/54Lv/9suK//TAcf/758n/8Kg6/++gKv/unCD/7pwg/+6cIf/1xn//8rJS/++iLf/30Zn/8Kk+//GuSf/0wnX/9MBx//GsRP/xr0z/+d20//fTnP/wpjj/7pwg/+6cIP/unCD/7pwg/+6cIP/yt13/+d62//ndsv/0v3D/7pwg/+6cIP/unCD/7pwg//ncsP/53rb/9cmF/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unSP/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg+e6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg+e2cIH7unCD57pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg+e2cIH4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKAAAACAAAABAAAAAAQAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP+AAALsmiF87pwg5u6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg5uyaIXz/gAAC7JwhfO6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+ycIXzunCDm7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg5u6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/76Es/+6cIP/uoCn/7p4m/+6cIP/unCD/8KxE/++iLf/unCD/7pwg/+6cIf/wpzj/76It/+6cIP/unCD/76Qy/+6cIP/unCD/7pwg/+6cIP/unCD/7p0j/++iL//unSL/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/++hLf/99ej/9MBy//747//++fL/871r/+6cIP/88d//+eC5/+6cIP/uniT/++nO/////////v7/+uPA//CrQv/++vT/+uC5/+6fJv/wq0L/76Mv//fRl//++/X///////769P/31aD/7p8n/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg//K0WP///fv///36//K3Xf/87NT/76Qy//zt1//758r/7pwg//GtR///////99Kb//CnOf/1x4L//fXo//316f/30pr//O/b//3y4v/99ur///////vq0P/xsE7/8a5J//jZqv/30Zj/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwh//3z5v/76tD/7pwg/++lNP/voi3/+d+2//zy4v/unCD/76Qy///+/f/88d7/9s2P/++iLf/3057/+uXF/+6dI//++PD/875s//O3Xv//////9suL/+6cIP/unCD/7pwg//GuSf/unCD/7pwg/+6cIP/unCD/7pwg/++gKf/65sb///////3y4//2zY7/7pwg/+6cIP/2y4r///78/+6eJv/unCD/+d62//netv/537b/+uK9//jarP/88N7/7pwg//779//87tj/7p0j//rkw//87db/9L1r//CqP//unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7p4m//3z5P/76Mv/76Iv//zu2f/ys1X/7pwg//KzU///////8a5I/+6cIP/voi//+d+3//769P/41qL/9s6Q//748P/unCD/+dyx//vpz//unCD/8a1H//78+f/64r3/871q/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/76Aq/+6dJP/unCD/7pwg/+6cIP/unCD/7p0j//337v/0v2//7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7p4k/+6cIP/unCD/7pwg/+6cIP/20JX//v37//bNj//54Lv/9cZ//+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/8K1F//vpzv/30Zj/++rQ//nftv/1xHr/9cV8/+6fJ//unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg//XGf///////+uK+//O8aP///v7/8KtB/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/8KtD//jXpv/76Mz/++nN//vozP/658n/8rNT/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/+d60//bNj//76c7//fPj//ndsv/uniX/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/voSv/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCDm7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg5uyaIXzunCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/smiF8/4AAAuycIXzunCDm7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCDm7JwhfP+AAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKAAAADAAAABgAAAAAQAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADumSIP7JseXO6cIMbunSD27pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unSD27pwgxuybHlztpCQOAAAAAO6ZIg/unCGV7pwg9+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6bIPjunCGV7aQkDuybHlzunCD37pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD47JseXO6cIMbunCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwgxu6dIPbunCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7p0g9u6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/++lNP/uoCr/7pwg/+6eJv/wpzn/7p0j/+6cIP/unCD/7pwg//GwT//zt17/758o/+6cIP/unCD/7pwg/+6cIf/vpTT/8a9M//CqP//uniT/7pwg/+6cIP/voCn/8K1G/+6cIf/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/758o//CnOP/vozH/7p0h/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/8atD//758f/41qT/8Kk9//zs0////////O/b//K2Wv/uniT/7pwg//vnyP//////9cmF/+6cIP/unCD/7p0i//bLiv/++/b//////////v/98uH/9cR5/++iLf/2yIL///z5//riv//wqTz/7pwh/++gKf/voSz/7p0i//GvTP/64Lv///35/////////////fLi//bKiP/vpTX/7pwh/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg//bJhf/99ej/++rQ///////99Oj/++bH//316f/yuGD/7pwh//voyv//////99Kb/+6cIP/unCD/8K1G///9+v///v7/++nN//jXp//64r7//vrz//ncr//65cX///79//zv2//64bv/87pk//jaq//53rX/9smG//zy4v////////36//vlxv/527D/+uK///747//64r3/76U0/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/++hK//416b///79///+/P/30Jb/76U0//fTnP/42Kn/76Ap//netf//////+dqt/+6cIP/unCD/87tl///////99ej/8bBM/++fKP/voy//87lh//337f///fr/+uTE//GvS//769L//vjw//305v/65ML//vrz////////////9cmF/++kMv/voSv/76Mw//K1WP/87db/9L9w/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/0vmz//vrz//747//zuGD/7pwg/++hLP/ytVn/758o//bOkP//////+ubI/+6cIP/unCD/8q9N/////v/+/fv/+uG6//O6ZP/vpDP/7p0h//K4Yf//////99Wg/+6dIf/2yoj///37//XIhP/unSH/99Ka///////+/Pj/8axE/+6cIP/unCD/7pwg/+6cIP/xsE7/8rNU/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg//GvS//53LH///79//789//3zpL/76Ao/+6cIP/unCD/7pwg//O6ZP///////fXo/+6cIP/unCD/7p4l//zu2v///v3/+Nin//zv2//65sf/8a9M//K6ZP//////+Nmp/+6cIP/1x4L///37//zt1v/wqDv/8a5K//769f///v3/87pk/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/8KY4//305//+/Pn///////rjwf/99ur/986S/+6cIP/unCD/7pwg//GrQv/++PD///79/++jMP/unCD/7pwg//O9av///Pr/99Od//O5Yv///v7/+Nmq//XEev///////OzV/+6cIP/2yof///78//779//0wnb/7p0i//XDef/++fL//fHh//fRmf/3zpL/76U1/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/76Mx//747v///v7//O7Y/++jMf/2z5P//vz4//TDef/unCD/7pwg/++lNf/76c3///////K1WP/unCD/7pwg/++gKP/2z5P//fft//779f/+/Pj/99Kb//O9af///fv//vfu/+6cIP/zu2X//fXp//768//1xHv/7pwg/+6fJv/30pn///78//737f/98eD/8rde/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg//O7Z//30pr/8a5I/+6cIP/wpjj/9cZ///GvS//unCD/7pwg/+6fJ//41qT///////XIg//unCD/7pwg/+6cIP/unyj/8rdd//bJhf/1xXz/76U1/++jMP/2yYX/9ceA/+6cIP/unyj/87xo//TCdv/vpTX/7pwg//CqQP/99ej///78//O5Yv/ytFf/8bBN/++iLv/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIf/uniX/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/0wnX//vv2//narv/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCH/7pwh/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg//G0V/////7//vz5//rft//98+X//fXo//vq0P/ys1P/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/++kM//43LD/+Nmq//O6Zf/zuWH//fXp//zs1f/wqT3/8Ko///CqQP/vpDH/7pwh/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg//GtR//++/b///////zv2v/0vm7/87xn///+/f/52q3/76Aq/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6dIv/ytVf/+uTD///9+//++fL///38///9+//99Ob//fbq//337v/42qv/76It/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg//K1Wf/99ej//v36//758//64r7/+uO////+/f/41qT/76Ao/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCH/76Qy//K2W//30Zf/+Nqs//jarP/42qv/+Nmq//fYpv/2zI3/76Iv/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg//jbrf/2y4n/8rVX//jVoP/758r/++rQ//fVoP/wqkD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg//CnOv/unSL/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6dIPbunCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7p0g9u6cIMbunCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwgxuybHlzumyD47pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD37JseXO2kJA7unCGV7pwg+O6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIPfunCGV7pkiDwAAAADtpCQO7JseXO6cIMbunSD27pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unSD27pwgxuybHlzumSIPAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==" webUI["html/img/filter.png"] = "iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAAAXNSR0IArs4c6QAAAAlwSFlzAAAsSwAALEsBpT2WqQAABCRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IlhNUCBDb3JlIDUuNC4wIj4KICAgPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIgogICAgICAgICAgICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgICAgICAgICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyI+CiAgICAgICAgIDx0aWZmOlJlc29sdXRpb25Vbml0PjI8L3RpZmY6UmVzb2x1dGlvblVuaXQ+CiAgICAgICAgIDx0aWZmOkNvbXByZXNzaW9uPjU8L3RpZmY6Q29tcHJlc3Npb24+CiAgICAgICAgIDx0aWZmOlhSZXNvbHV0aW9uPjI4ODwvdGlmZjpYUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6T3JpZW50YXRpb24+MTwvdGlmZjpPcmllbnRhdGlvbj4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+Mjg4PC90aWZmOllSZXNvbHV0aW9uPgogICAgICAgICA8ZXhpZjpQaXhlbFhEaW1lbnNpb24+NTA8L2V4aWY6UGl4ZWxYRGltZW5zaW9uPgogICAgICAgICA8ZXhpZjpDb2xvclNwYWNlPjE8L2V4aWY6Q29sb3JTcGFjZT4KICAgICAgICAgPGV4aWY6UGl4ZWxZRGltZW5zaW9uPjUwPC9leGlmOlBpeGVsWURpbWVuc2lvbj4KICAgICAgICAgPGRjOnN1YmplY3Q+CiAgICAgICAgICAgIDxyZGY6QmFnLz4KICAgICAgICAgPC9kYzpzdWJqZWN0PgogICAgICAgICA8eG1wOk1vZGlmeURhdGU+MjAxOC0wNy0yOFQxOTowNzo2OTwveG1wOk1vZGlmeURhdGU+CiAgICAgICAgIDx4bXA6Q3JlYXRvclRvb2w+UGl4ZWxtYXRvciAzLjM8L3htcDpDcmVhdG9yVG9vbD4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgIDwvcmRmOlJERj4KPC94OnhtcG1ldGE+Cs038OQAAAOISURBVGgF5ZpLSBVRGMfvvfmqCKKiKCqKtE3SQ8haJJm1ctPCZYHrFhXtohcUBLVsU1BRBJKLXpsSKs1aCL1oUUhvMgIloodZKmLZ72+OzNVx7jzOXGfqg/89Z875zv/7f35n7px7vanUP2JptzyGhoYKmK8GW0EZmA/mgW7wHrwDN0BTOp0epPVtxBBnLdgIVoE5YBboBR2gDTTA/5DWn0FeDPaBz8CLdeF0EBR5jYRvKbgABoAXa8Opwit/CudK8NoLs4PPM8ZyBsNnB/jpsD7X0C8cjgDXnaQkqkEPCGMSuGWivxxzx8OQj6xtpHWuPhPloHfEMWzTD0HN2GQY2xuW2Lb+/Fh+VaIQPLE5meh+gmSxFYz+BjBogtjGscfiH26Z2GmbNNltVQAIpwDdP6ZNO2iRYqTpZGhfgWUaiMC2w1kCzkbALcqLvDVvUyK6MW9HFES0b8BvsFwXEZi4F+iBtykCcjtlqf0igr52VJ1eqiIgzzdlrRIZfWfJd3SD8ZbqHvkB4XSDpJNB9V0VcX/cT4Ys/zEzSuSj/3WxW9GpRD7ETpZ/QcOJ6LyfdHugitxNehbob9G7lo4PXWBmQhPqQ/fsDOeUfjqNCU1Csi+TQ5+2luzc3yaRr6elevQZwhZr4bomYam0U41yabYqov5hvSTMjlp6RyuiAarSTLPZmox5246+lVREx/isiuh6NxhUJwF2yEpCWu1bK8WEsjyRgCSa0XrVrjNra2mC7TWD5ilYAuJoA4jSlnppF5dVEU3g0ENTD4b3nsZiZsfGJuGqj8qY+CINGqP2GLZCJ+HjtpblxAJ9k3cPrLfGJrnVUaSCarxw0jFua1lOLNBerANx+byya6IkLM2uLZWpAl6/Mcc1EjvjKtLrJNLqI5HnjfQ+bsVeteb0g2y/t7hGvd7CNjenOL8OkJ40KtOdTF+Cl/nV6Mkf4gxocI9vZPYLLKs9iQrqRIACcM2IXGeSboYrg+rztY5ARaDJWUeo0W+sXudLTFhnApaAW6FkZy/+yuXasLoCrSfwVHAnW0+gK93YawKJMLUIAdNAKwhqnSxcYUpPKB6EBE2mg7VR///EX24jybTQerXnOC70FyVP3gjTPXPTQyaP8NFPNeJrCNTPP667JKOq6VNo/A2hes5ccUjmEmPmDoD5+FMgWCcA+3FG57QJP//kQ1PgGBIOToEDgUn+t4V/AJeGknwARIKLAAAAAElFTkSuQmCC" webUI["html/img/log.png"] = "iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAAAXNSR0IArs4c6QAAAAlwSFlzAAAsSwAALEsBpT2WqQAABCRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IlhNUCBDb3JlIDUuNC4wIj4KICAgPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIgogICAgICAgICAgICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgICAgICAgICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyI+CiAgICAgICAgIDx0aWZmOlJlc29sdXRpb25Vbml0PjI8L3RpZmY6UmVzb2x1dGlvblVuaXQ+CiAgICAgICAgIDx0aWZmOkNvbXByZXNzaW9uPjU8L3RpZmY6Q29tcHJlc3Npb24+CiAgICAgICAgIDx0aWZmOlhSZXNvbHV0aW9uPjI4ODwvdGlmZjpYUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6T3JpZW50YXRpb24+MTwvdGlmZjpPcmllbnRhdGlvbj4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+Mjg4PC90aWZmOllSZXNvbHV0aW9uPgogICAgICAgICA8ZXhpZjpQaXhlbFhEaW1lbnNpb24+NTA8L2V4aWY6UGl4ZWxYRGltZW5zaW9uPgogICAgICAgICA8ZXhpZjpDb2xvclNwYWNlPjE8L2V4aWY6Q29sb3JTcGFjZT4KICAgICAgICAgPGV4aWY6UGl4ZWxZRGltZW5zaW9uPjUwPC9leGlmOlBpeGVsWURpbWVuc2lvbj4KICAgICAgICAgPGRjOnN1YmplY3Q+CiAgICAgICAgICAgIDxyZGY6QmFnLz4KICAgICAgICAgPC9kYzpzdWJqZWN0PgogICAgICAgICA8eG1wOk1vZGlmeURhdGU+MjAxOC0xMC0xNFQxMToxMDo0MjwveG1wOk1vZGlmeURhdGU+CiAgICAgICAgIDx4bXA6Q3JlYXRvclRvb2w+UGl4ZWxtYXRvciAzLjM8L3htcDpDcmVhdG9yVG9vbD4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgIDwvcmRmOlJERj4KPC94OnhtcG1ldGE+CkP32mEAAANASURBVGgF7ZlPiE1RHMffw1AYhiL5k1HEijJiYaFZiHoyFspW2RFRkkSZGgtFWJIwi9FYmo0VOywkKTbKgjSlWcifRCPX51dv6s2d33md77vvXjfmV9859/7u93x/v98959x73p1KRbAkSargAhgDH0E/qIYkuHYEvAPGvwbmNOEerXM/0Q6BRSFuZj/ix0DaDnvCkGppIucDAe4OhzvkcUO+GaELAf8ux7/b8Zlrr+Pvc3zm6nX8NccXdKmFLHaUPJ/Ruhyu5zNap8Nd6PiCLrUQTyi0Rjy/5/M0Zd+smB7M32XwtgBr07aC6yfSTs7XO77OALfH4VbgHsD/HLytVquJx4nyIdQFBsHftscksK5Z0sGhpuN8Or4Aa5sJFHjtO7G2MjKvvZjN1sglOpSlCMt9LrDZ4S4Hd0Qg24vrK+gAZbPtjMqTdFKhEdkIsYxFWP720JlioUK6pzDL41jtpRIqxOOWxecuB3fhRGT8E85YBK8VygI6GSRTCxlH3TaJgyw4O2678aCxO94LbNPovYDdmOrUukIBN/MqwjJEOwGPOHR31W4VONVCLEBR9lAJpBbSrYhn5K5R+quFnGUOr1ICtMIlxjz6XVb6qot9JeKvCPSAdlQJJHDtd8hOIN0wtRDLxx6Ntr0ulalTq1TJNyYzXUjj3SjD8X87Iva7uR8s5+2bi6FtX1oOgi8g2tSn1g2yPx+t3gIR/c90s1+C1vuO/YkxdWrdjxFtE2dE0VELWaqIZ+QuUfqrhZxmyKUvgEoyE1xizOR4YOI8plXXyAZEbYsyTJvXFsUW+x6wGUSbWogJ237rZHSEgojq1CooLT3MdCH6Pcu3xz8zIq0s9lvc2+sgz6dWH/rnQPB/jlybZGoh99hCHJqk0P6TD0jaI/4b7dVYeXVq2bemokyKpRZiHwWKMimWWshxhryjoEpOKXHUNbIN8WcUc5s2r8Vue7l9oAaiTS3EhDeB6EUYnUlGojq1MobLr3uokB/5hcys7OYWKuRl5nD5Cbi5uYXw0ntPHoay2S8Seuol5RZSJ0r/n/DEc/BdrN9kTZrH7BkwDspgwyQxW6uggU3nHnAXvAG/QZE2SrARsL8hJffwDxM0mNDPvT8IAAAAAElFTkSuQmCC" webUI["html/img/logo_b_880x200.jpg"] = "/9j/4AAQSkZJRgABAQABLAEsAAD/4QDIRXhpZgAATU0AKgAAAAgABwESAAMAAAABAAEAAAEaAAUAAAABAAAAYgEbAAUAAAABAAAAagEoAAMAAAABAAIAAAExAAIAAAAPAAAAcgEyAAIAAAAUAAAAgodpAAQAAAABAAAAlgAAAAAAAAEsAAAAAQAAASwAAAABUGl4ZWxtYXRvciAzLjMAADIwMTk6MDg6MDIgMjA6MDg6MTQAAAOgAQADAAAAAQABAACgAgAEAAAAAQAAA3CgAwAEAAAAAQAAAMgAAAAA/+EJkGh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8APD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iWE1QIENvcmUgNS40LjAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcDpDcmVhdG9yVG9vbD0iUGl4ZWxtYXRvciAzLjMiIHhtcDpNb2RpZnlEYXRlPSIyMDE5LTA4LTAyVDIwOjA4OjE0Ii8+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPD94cGFja2V0IGVuZD0idyI/PgD/7QA4UGhvdG9zaG9wIDMuMAA4QklNBAQAAAAAAAA4QklNBCUAAAAAABDUHYzZjwCyBOmACZjs+EJ+/8AAEQgAyANwAwERAAIRAQMRAf/EAB8AAAEFAQEBAQEBAAAAAAAAAAABAgMEBQYHCAkKC//EALUQAAIBAwMCBAMFBQQEAAABfQECAwAEEQUSITFBBhNRYQcicRQygZGhCCNCscEVUtHwJDNicoIJChYXGBkaJSYnKCkqNDU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6g4SFhoeIiYqSk5SVlpeYmZqio6Slpqeoqaqys7S1tre4ubrCw8TFxsfIycrS09TV1tfY2drh4uPk5ebn6Onq8fLz9PX29/j5+v/EAB8BAAMBAQEBAQEBAQEAAAAAAAABAgMEBQYHCAkKC//EALURAAIBAgQEAwQHBQQEAAECdwABAgMRBAUhMQYSQVEHYXETIjKBCBRCkaGxwQkjM1LwFWJy0QoWJDThJfEXGBkaJicoKSo1Njc4OTpDREVGR0hJSlNUVVZXWFlaY2RlZmdoaWpzdHV2d3h5eoKDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uLj5OXm5+jp6vLz9PX29/j5+v/bAEMAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAf/bAEMBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAf/dAAQAbv/aAAwDAQACEQMRAD8A/iHoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKAP/9D+IegAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoA//0f4h6ACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgD//S/iHoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKAP/9P+IegAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoA//1P4h6ACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgDvPDXws+J3jPT31bwf8OfHnivSo7mSyfU/DXhDxBrunpeQpFLNaPe6Xp11bLcxRzwSSQNL5saTROyhZUNAHQf8M//AB4/6In8XP8Aw23jL/5TUAH/AAz/APHj/oifxc/8Nt4y/wDl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f/E3xn4o+IPjnxDLaafp8mveMPGet33iPxNrMlhpNpYaVZPqmtale3z2mmWNlp9s05hsrS2tkjhQA4ygAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgD//S/iHoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAczu+N7M2BgbmLYHoM9BnJxx1/FgBtABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAOLuwVWZiq/dUsSFz12joM4HQduc4FADaACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgD//0/4h6ACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgD//U/iHoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKAP/9X+IegAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoA//1v4h6ACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgD//X/iHoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKAP/9k=" @@ -31,7 +32,7 @@ func loadHTMLMap() { webUI["html/js/menu_ts.js"] = "Y2xhc3MgTWFpbk1lbnUgewogICAgY29uc3RydWN0b3IoKSB7CiAgICAgICAgdGhpcy5Eb2N1bWVudElEID0gIm1haW4tbWVudSI7CiAgICAgICAgdGhpcy5IVE1MVGFnID0gIkxJIjsKICAgICAgICB0aGlzLkltYWdlUGF0aCA9ICJpbWcvIjsKICAgIH0KICAgIGNyZWF0ZUlNRyhzcmMpIHsKICAgICAgICBsZXQgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIklNRyIpOwogICAgICAgIGVsZW1lbnQuc2V0QXR0cmlidXRlKCJzcmMiLCB0aGlzLkltYWdlUGF0aCArIHNyYyk7CiAgICAgICAgcmV0dXJuIGVsZW1lbnQ7CiAgICB9CiAgICBjcmVhdGVWYWx1ZSh2YWx1ZSkgewogICAgICAgIGxldCBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiUCIpOwogICAgICAgIGVsZW1lbnQuaW5uZXJIVE1MID0gdmFsdWU7CiAgICAgICAgcmV0dXJuIGVsZW1lbnQ7CiAgICB9Cn0KY2xhc3MgTWFpbk1lbnVJdGVtIGV4dGVuZHMgTWFpbk1lbnUgewogICAgY29uc3RydWN0b3IobWVudUtleSwgdmFsdWUsIGltYWdlLCBoZWFkbGluZSkgewogICAgICAgIHN1cGVyKCk7CiAgICAgICAgdGhpcy5tZW51S2V5ID0gbWVudUtleTsKICAgICAgICB0aGlzLnZhbHVlID0gdmFsdWU7CiAgICAgICAgdGhpcy5pbWdTcmMgPSBpbWFnZTsKICAgICAgICB0aGlzLmhlYWRsaW5lID0gaGVhZGxpbmU7CiAgICB9CiAgICBjcmVhdGVJdGVtKCkgewogICAgICAgIGxldCBpdGVtID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiTEkiKTsKICAgICAgICBpdGVtLnNldEF0dHJpYnV0ZSgib25jbGljayIsICJqYXZhc2NyaXB0OiBvcGVuVGhpc01lbnUodGhpcykiKTsKICAgICAgICBpdGVtLnNldEF0dHJpYnV0ZSgiaWQiLCB0aGlzLmlkKTsKICAgICAgICBsZXQgaW1nID0gdGhpcy5jcmVhdGVJTUcodGhpcy5pbWdTcmMpOwogICAgICAgIGxldCB2YWx1ZSA9IHRoaXMuY3JlYXRlVmFsdWUodGhpcy52YWx1ZSk7CiAgICAgICAgaXRlbS5hcHBlbmRDaGlsZChpbWcpOwogICAgICAgIGl0ZW0uYXBwZW5kQ2hpbGQodmFsdWUpOwogICAgICAgIGxldCBkb2MgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCh0aGlzLkRvY3VtZW50SUQpOwogICAgICAgIGRvYy5hcHBlbmRDaGlsZChpdGVtKTsKICAgICAgICBzd2l0Y2ggKHRoaXMubWVudUtleSkgewogICAgICAgICAgICBjYXNlICJwbGF5bGlzdCI6CiAgICAgICAgICAgICAgICB0aGlzLnRhYmxlSGVhZGVyID0gWyJ7ey5wbGF5bGlzdC50YWJsZS5wbGF5bGlzdH19IiwgInt7LnBsYXlsaXN0LnRhYmxlLnR1bmVyfX0iLCAie3sucGxheWxpc3QudGFibGUubGFzdFVwZGF0ZX19IiwgInt7LnBsYXlsaXN0LnRhYmxlLmF2YWlsYWJpbGl0eX19ICUiLCAie3sucGxheWxpc3QudGFibGUudHlwZX19IiwgInt7LnBsYXlsaXN0LnRhYmxlLnN0cmVhbXN9fSIsICJ7ey5wbGF5bGlzdC50YWJsZS5ncm91cFRpdGxlfX0gJSIsICJ7ey5wbGF5bGlzdC50YWJsZS50dmdJRH19ICUiLCAie3sucGxheWxpc3QudGFibGUudW5pcXVlSUR9fSAlIl07CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAieG1sdHYiOgogICAgICAgICAgICAgICAgdGhpcy50YWJsZUhlYWRlciA9IFsie3sueG1sdHYudGFibGUuZ3VpZGV9fSIsICJ7ey54bWx0di50YWJsZS5sYXN0VXBkYXRlfX0iLCAie3sueG1sdHYudGFibGUuYXZhaWxhYmlsaXR5fX0gJSIsICJ7ey54bWx0di50YWJsZS5jaGFubmVsc319IiwgInt7LnhtbHR2LnRhYmxlLnByb2dyYW1zfX0iXTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJmaWx0ZXIiOgogICAgICAgICAgICAgICAgdGhpcy50YWJsZUhlYWRlciA9IFsie3suZmlsdGVyLnRhYmxlLnN0YXJ0aW5nQ2hhbm5lbH19IiwgInt7LmZpbHRlci50YWJsZS5uYW1lfX0iLCAie3suZmlsdGVyLnRhYmxlLnR5cGV9fSIsICJ7ey5maWx0ZXIudGFibGUuZmlsdGVyfX0iXTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJ1c2VycyI6CiAgICAgICAgICAgICAgICB0aGlzLnRhYmxlSGVhZGVyID0gWyJ7ey51c2Vycy50YWJsZS51c2VybmFtZX19IiwgInt7LnVzZXJzLnRhYmxlLnBhc3N3b3JkfX0iLCAie3sudXNlcnMudGFibGUud2VifX0iLCAie3sudXNlcnMudGFibGUucG1zfX0iLCAie3sudXNlcnMudGFibGUubTN1fX0iLCAie3sudXNlcnMudGFibGUueG1sfX0iLCAie3sudXNlcnMudGFibGUuYXBpfX0iXTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJtYXBwaW5nIjoKICAgICAgICAgICAgICAgIHRoaXMudGFibGVIZWFkZXIgPSBbIkJVTEsiLCAie3subWFwcGluZy50YWJsZS5jaE5vfX0iLCAie3subWFwcGluZy50YWJsZS5sb2dvfX0iLCAie3subWFwcGluZy50YWJsZS5jaGFubmVsTmFtZX19IiwgInt7Lm1hcHBpbmcudGFibGUudXBkYXRlQ2hhbm5lbE5hbWVSZWdleH19IiwgInt7Lm1hcHBpbmcudGFibGUucGxheWxpc3R9fSIsICJ7ey5tYXBwaW5nLnRhYmxlLmdyb3VwVGl0bGV9fSIsICJ7ey5tYXBwaW5nLnRhYmxlLnhtbHR2RmlsZX19IiwgInt7Lm1hcHBpbmcudGFibGUueG1sdHZJRH19IiwgInt7Lm1hcHBpbmcudGFibGUudGltZXNoaWZ0fX0iXTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgIH0KICAgIH0KfQpjbGFzcyBDb250ZW50IHsKICAgIGNvbnN0cnVjdG9yKCkgewogICAgICAgIHRoaXMuRG9jdW1lbnRJRCA9ICJjb250ZW50IjsKICAgICAgICB0aGlzLlRhYmxlSUQgPSAiY29udGVudF90YWJsZSI7CiAgICAgICAgdGhpcy5oZWFkZXJDbGFzcyA9ICJjb250ZW50X3RhYmxlX2hlYWRlciI7CiAgICAgICAgdGhpcy5pbnRlcmFjdGlvbklEID0gImNvbnRlbnQtaW50ZXJhY3Rpb24iOwogICAgfQogICAgY3JlYXRlSGVhZGxpbmUodmFsdWUpIHsKICAgICAgICBsZXQgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIkgzIik7CiAgICAgICAgZWxlbWVudC5pbm5lckhUTUwgPSB2YWx1ZTsKICAgICAgICByZXR1cm4gZWxlbWVudDsKICAgIH0KICAgIGNyZWF0ZUhSKCkgewogICAgICAgIHJldHVybiBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJIUiIpOwogICAgfQogICAgY3JlYXRlSW50ZXJhY3Rpb24oKSB7CiAgICAgICAgbGV0IGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJESVYiKTsKICAgICAgICBlbGVtZW50LnNldEF0dHJpYnV0ZSgiaWQiLCB0aGlzLmludGVyYWN0aW9uSUQpOwogICAgICAgIHJldHVybiBlbGVtZW50OwogICAgfQogICAgY3JlYXRlRElWKCkgewogICAgICAgIGxldCBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiRElWIik7CiAgICAgICAgZWxlbWVudC5pZCA9IHRoaXMuRGl2SUQ7CiAgICAgICAgcmV0dXJuIGVsZW1lbnQ7CiAgICB9CiAgICBjcmVhdGVUQUJMRSgpIHsKICAgICAgICBsZXQgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlRBQkxFIik7CiAgICAgICAgZWxlbWVudC5pZCA9IHRoaXMuVGFibGVJRDsKICAgICAgICByZXR1cm4gZWxlbWVudDsKICAgIH0KICAgIGNyZWF0ZVRhYmxlUm93KCkgewogICAgICAgIGxldCBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVFIiKTsKICAgICAgICBlbGVtZW50LmNsYXNzTmFtZSA9IHRoaXMuaGVhZGVyQ2xhc3M7CiAgICAgICAgcmV0dXJuIGVsZW1lbnQ7CiAgICB9CiAgICBjcmVhdGVUYWJsZUNvbnRlbnQobWVudUtleSkgewogICAgICAgIGxldCBkYXRhID0ge307CiAgICAgICAgbGV0IHJvd3MgPSBbXTsKICAgICAgICBsZXQgZmlsZVR5cGVzID0gW107CiAgICAgICAgc3dpdGNoIChtZW51S2V5KSB7CiAgICAgICAgICAgIGNhc2UgInBsYXlsaXN0IjoKICAgICAgICAgICAgICAgIGZpbGVUeXBlcyA9IFsibTN1IiwgImhkaHIiXTsKICAgICAgICAgICAgICAgIGZpbGVUeXBlcy5mb3JFYWNoKGZpbGVUeXBlID0+IHsKICAgICAgICAgICAgICAgICAgICBkYXRhID0gU0VSVkVSWyJzZXR0aW5ncyJdWyJmaWxlcyJdW2ZpbGVUeXBlXTsKICAgICAgICAgICAgICAgICAgICB2YXIga2V5cyA9IGdldE93bk9ialByb3BzKGRhdGEpOwogICAgICAgICAgICAgICAgICAgIGtleXMuZm9yRWFjaChrZXkgPT4gewogICAgICAgICAgICAgICAgICAgICAgICB2YXIgdHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJUUiIpOwogICAgICAgICAgICAgICAgICAgICAgICB0ci5pZCA9IGtleTsKICAgICAgICAgICAgICAgICAgICAgICAgdHIuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgiJyArIGZpbGVUeXBlICsgJyIsIHRoaXMpJyk7CiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsKICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7CiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOwogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJuYW1lIl07CiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsKICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOwogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7CiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChTRVJWRVJbInNldHRpbmdzIl1bImJ1ZmZlciJdICE9ICItIikgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsidHVuZXIiXTsKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSAiLSI7CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOwogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7CiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOwogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsKICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsibGFzdC51cGRhdGUiXTsKICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOwogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7CiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOwogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsKICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsicHJvdmlkZXIuYXZhaWxhYmlsaXR5Il07CiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsKICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOwogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7CiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bInR5cGUiXS50b1VwcGVyQ2FzZSgpOwogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7CiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsKICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7CiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOwogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJjb21wYXRpYmlsaXR5Il1bInN0cmVhbXMiXTsKICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOwogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7CiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOwogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsKICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsiY29tcGF0aWJpbGl0eSJdWyJncm91cC50aXRsZSJdOwogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7CiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsKICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7CiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOwogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJjb21wYXRpYmlsaXR5Il1bInR2Zy5pZCJdOwogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7CiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsKICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7CiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOwogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJjb21wYXRpYmlsaXR5Il1bInN0cmVhbS5pZCJdOwogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7CiAgICAgICAgICAgICAgICAgICAgICAgIHJvd3MucHVzaCh0cik7CiAgICAgICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJmaWx0ZXIiOgogICAgICAgICAgICAgICAgZGVsZXRlIFNFUlZFUlsic2V0dGluZ3MiXVsiZmlsdGVyIl1bLTFdOwogICAgICAgICAgICAgICAgZGF0YSA9IFNFUlZFUlsic2V0dGluZ3MiXVsiZmlsdGVyIl07CiAgICAgICAgICAgICAgICB2YXIga2V5cyA9IGdldE93bk9ialByb3BzKGRhdGEpOwogICAgICAgICAgICAgICAga2V5cy5mb3JFYWNoKGtleSA9PiB7CiAgICAgICAgICAgICAgICAgICAgdmFyIHRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVFIiKTsKICAgICAgICAgICAgICAgICAgICB0ci5pZCA9IGtleTsKICAgICAgICAgICAgICAgICAgICB0ci5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCInICsgZGF0YVtrZXldWyJ0eXBlIl0gKyAnIiwgdGhpcyknKTsKICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7CiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7CiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7CiAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsic3RhcnRpbmdDaGFubmVsIl07CiAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOwogICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsKICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsKICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJuYW1lIl07CiAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOwogICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsKICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsKICAgICAgICAgICAgICAgICAgICBzd2l0Y2ggKGRhdGFba2V5XVsidHlwZSJdKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgImN1c3RvbS1maWx0ZXIiOgogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9ICJ7ey5maWx0ZXIuY3VzdG9tfX0iOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgImdyb3VwLXRpdGxlIjoKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSAie3suZmlsdGVyLmdyb3VwfX0iOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOwogICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsKICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsKICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJmaWx0ZXIiXTsKICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7CiAgICAgICAgICAgICAgICAgICAgcm93cy5wdXNoKHRyKTsKICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgInhtbHR2IjoKICAgICAgICAgICAgICAgIGZpbGVUeXBlcyA9IG5ldyBBcnJheSgieG1sdHYiKTsKICAgICAgICAgICAgICAgIGZpbGVUeXBlcy5mb3JFYWNoKGZpbGVUeXBlID0+IHsKICAgICAgICAgICAgICAgICAgICBkYXRhID0gU0VSVkVSWyJzZXR0aW5ncyJdWyJmaWxlcyJdW2ZpbGVUeXBlXTsKICAgICAgICAgICAgICAgICAgICB2YXIga2V5cyA9IGdldE93bk9ialByb3BzKGRhdGEpOwogICAgICAgICAgICAgICAgICAgIGtleXMuZm9yRWFjaChrZXkgPT4gewogICAgICAgICAgICAgICAgICAgICAgICB2YXIgdHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJUUiIpOwogICAgICAgICAgICAgICAgICAgICAgICB0ci5pZCA9IGtleTsKICAgICAgICAgICAgICAgICAgICAgICAgdHIuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgiJyArIGZpbGVUeXBlICsgJyIsIHRoaXMpJyk7CiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsKICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7CiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOwogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJuYW1lIl07CiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsKICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOwogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7CiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bImxhc3QudXBkYXRlIl07CiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsKICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOwogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7CiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bInByb3ZpZGVyLmF2YWlsYWJpbGl0eSJdOwogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7CiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsKICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7CiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOwogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJjb21wYXRpYmlsaXR5Il1bInhtbHR2LmNoYW5uZWxzIl07CiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsKICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOwogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7CiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bImNvbXBhdGliaWxpdHkiXVsieG1sdHYucHJvZ3JhbXMiXTsKICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOwogICAgICAgICAgICAgICAgICAgICAgICByb3dzLnB1c2godHIpOwogICAgICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAidXNlcnMiOgogICAgICAgICAgICAgICAgZmlsZVR5cGVzID0gbmV3IEFycmF5KCJ1c2VycyIpOwogICAgICAgICAgICAgICAgZmlsZVR5cGVzLmZvckVhY2goZmlsZVR5cGUgPT4gewogICAgICAgICAgICAgICAgICAgIGRhdGEgPSBTRVJWRVJbZmlsZVR5cGVdOwogICAgICAgICAgICAgICAgICAgIHZhciBrZXlzID0gZ2V0T3duT2JqUHJvcHMoZGF0YSk7CiAgICAgICAgICAgICAgICAgICAga2V5cy5mb3JFYWNoKGtleSA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgIHZhciB0ciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlRSIik7CiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmlkID0ga2V5OwogICAgICAgICAgICAgICAgICAgICAgICB0ci5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCInICsgZmlsZVR5cGUgKyAnIiwgdGhpcyknKTsKICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOwogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7CiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bImRhdGEiXVsidXNlcm5hbWUiXTsKICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOwogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7CiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOwogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsKICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9ICIqKioqKioiOwogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7CiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsKICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7CiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOwogICAgICAgICAgICAgICAgICAgICAgICBpZiAoZGF0YVtrZXldWyJkYXRhIl1bImF1dGhlbnRpY2F0aW9uLndlYiJdID09IHRydWUpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSAi4pyTIjsKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSAiLSI7CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOwogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7CiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOwogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsKICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGRhdGFba2V5XVsiZGF0YSJdWyJhdXRoZW50aWNhdGlvbi5wbXMiXSA9PSB0cnVlKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gIuKckyI7CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gIi0iOwogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsKICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOwogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7CiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChkYXRhW2tleV1bImRhdGEiXVsiYXV0aGVudGljYXRpb24ubTN1Il0gPT0gdHJ1ZSkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9ICLinJMiOwogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9ICItIjsKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7CiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsKICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7CiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOwogICAgICAgICAgICAgICAgICAgICAgICBpZiAoZGF0YVtrZXldWyJkYXRhIl1bImF1dGhlbnRpY2F0aW9uLnhtbCJdID09IHRydWUpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSAi4pyTIjsKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSAiLSI7CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOwogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7CiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOwogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsKICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGRhdGFba2V5XVsiZGF0YSJdWyJhdXRoZW50aWNhdGlvbi5hcGkiXSA9PSB0cnVlKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gIuKckyI7CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gIi0iOwogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsKICAgICAgICAgICAgICAgICAgICAgICAgcm93cy5wdXNoKHRyKTsKICAgICAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgIm1hcHBpbmciOgogICAgICAgICAgICAgICAgQlVMS19FRElUID0gZmFsc2U7CiAgICAgICAgICAgICAgICBjcmVhdGVTZWFyY2hPYmooKTsKICAgICAgICAgICAgICAgIGNoZWNrVW5kbygiZXBnTWFwcGluZyIpOwogICAgICAgICAgICAgICAgZGF0YSA9IFNFUlZFUlsieGVwZyJdWyJlcGdNYXBwaW5nIl07CiAgICAgICAgICAgICAgICB2YXIga2V5cyA9IGdldE93bk9ialByb3BzKGRhdGEpOwogICAgICAgICAgICAgICAga2V5cy5mb3JFYWNoKGtleSA9PiB7CiAgICAgICAgICAgICAgICAgICAgdmFyIHRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVFIiKTsKICAgICAgICAgICAgICAgICAgICB0ci5pZCA9IGtleTsKICAgICAgICAgICAgICAgICAgICBzd2l0Y2ggKGRhdGFba2V5XVsieC1hY3RpdmUiXSkgewogICAgICAgICAgICAgICAgICAgICAgICBjYXNlIHRydWU6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ci5jbGFzc05hbWUgPSAiYWN0aXZlRVBHIjsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICAgICAgICBjYXNlIGZhbHNlOgogICAgICAgICAgICAgICAgICAgICAgICAgICAgdHIuY2xhc3NOYW1lID0gIm5vdEFjdGl2ZUVQRyI7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgLy8gQnVsawogICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsKICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJCVUxLIjsKICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZmFsc2U7CiAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOwogICAgICAgICAgICAgICAgICAgIC8vIENoYW5uZWwgbnVtYmVyCiAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOwogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOwogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIklOUFVUQ0hBTk5FTCI7CiAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsieC1jaGFubmVsSUQiXTsKICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7CiAgICAgICAgICAgICAgICAgICAgLy8gTG9nbwogICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsKICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJJTUciOwogICAgICAgICAgICAgICAgICAgIGNlbGwuaW1hZ2VVUkwgPSBkYXRhW2tleV1bInR2Zy1sb2dvIl07CiAgICAgICAgICAgICAgICAgICAgdmFyIHRkID0gY2VsbC5jcmVhdGVDZWxsKCk7CiAgICAgICAgICAgICAgICAgICAgdGQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgibWFwcGluZyIsIHRoaXMpJyk7CiAgICAgICAgICAgICAgICAgICAgdGQuaWQgPSBrZXk7CiAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQodGQpOwogICAgICAgICAgICAgICAgICAgIC8vIENoYW5uZWwgbmFtZQogICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsKICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsKICAgICAgICAgICAgICAgICAgICBjZWxsLmNsYXNzTmFtZSA9IGRhdGFba2V5XVsieC1jYXRlZ29yeSJdOwogICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bIngtbmFtZSJdOwogICAgICAgICAgICAgICAgICAgIHZhciB0ZCA9IGNlbGwuY3JlYXRlQ2VsbCgpOwogICAgICAgICAgICAgICAgICAgIHRkLnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoIm1hcHBpbmciLCB0aGlzKScpOwogICAgICAgICAgICAgICAgICAgIHRkLmlkID0ga2V5OwogICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKHRkKTsKICAgICAgICAgICAgICAgICAgICAvLyBVcGRhdGUgY2hhbm5lbCBuYW1lIHJlZ2V4CiAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOwogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOwogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOwogICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bInVwZGF0ZS1jaGFubmVsLW5hbWUtcmVnZXgiXTsKICAgICAgICAgICAgICAgICAgICB2YXIgdGQgPSBjZWxsLmNyZWF0ZUNlbGwoKTsKICAgICAgICAgICAgICAgICAgICB0ZC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJtYXBwaW5nIiwgdGhpcyknKTsKICAgICAgICAgICAgICAgICAgICB0ZC5pZCA9IGtleTsKICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZCh0ZCk7CiAgICAgICAgICAgICAgICAgICAgLy8gUGxheWxpc3QKICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7CiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7CiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7CiAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGdldFZhbHVlRnJvbVByb3ZpZGVyRmlsZShkYXRhW2tleV1bIl9maWxlLm0zdS5pZCJdLCAibTN1IiwgIm5hbWUiKTsKICAgICAgICAgICAgICAgICAgICB2YXIgdGQgPSBjZWxsLmNyZWF0ZUNlbGwoKTsKICAgICAgICAgICAgICAgICAgICB0ZC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJtYXBwaW5nIiwgdGhpcyknKTsKICAgICAgICAgICAgICAgICAgICB0ZC5pZCA9IGtleTsKICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZCh0ZCk7CiAgICAgICAgICAgICAgICAgICAgLy8gR3JvdXAgKGdyb3VwLXRpdGxlKQogICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsKICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsKICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJ4LWdyb3VwLXRpdGxlIl07CiAgICAgICAgICAgICAgICAgICAgdmFyIHRkID0gY2VsbC5jcmVhdGVDZWxsKCk7CiAgICAgICAgICAgICAgICAgICAgdGQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgibWFwcGluZyIsIHRoaXMpJyk7CiAgICAgICAgICAgICAgICAgICAgdGQuaWQgPSBrZXk7CiAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQodGQpOwogICAgICAgICAgICAgICAgICAgIC8vIFhNTFRWIGZpbGUKICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7CiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7CiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7CiAgICAgICAgICAgICAgICAgICAgaWYgKGRhdGFba2V5XVsieC14bWx0di1maWxlIl0gIT0gIi0iKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBnZXRWYWx1ZUZyb21Qcm92aWRlckZpbGUoZGF0YVtrZXldWyJ4LXhtbHR2LWZpbGUiXSwgInhtbHR2IiwgIm5hbWUiKTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bIngteG1sdHYtZmlsZSJdOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB2YXIgdGQgPSBjZWxsLmNyZWF0ZUNlbGwoKTsKICAgICAgICAgICAgICAgICAgICB0ZC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJtYXBwaW5nIiwgdGhpcyknKTsKICAgICAgICAgICAgICAgICAgICB0ZC5pZCA9IGtleTsKICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZCh0ZCk7CiAgICAgICAgICAgICAgICAgICAgLy8gWE1MVFYgQ2hhbm5lbAogICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsKICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsKICAgICAgICAgICAgICAgICAgICB2YXIgdmFsdWUgPSBkYXRhW2tleV1bIngtbWFwcGluZyJdOwogICAgICAgICAgICAgICAgICAgIGlmICh2YWx1ZS5sZW5ndGggPiAyMCkgewogICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IGRhdGFba2V5XVsieC1tYXBwaW5nIl0uc3Vic3RyaW5nKDAsIDIwKSArICIuLi4iOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gdmFsdWU7CiAgICAgICAgICAgICAgICAgICAgdmFyIHRkID0gY2VsbC5jcmVhdGVDZWxsKCk7CiAgICAgICAgICAgICAgICAgICAgdGQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgibWFwcGluZyIsIHRoaXMpJyk7CiAgICAgICAgICAgICAgICAgICAgdGQuaWQgPSBrZXk7CiAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQodGQpOwogICAgICAgICAgICAgICAgICAgIC8vIFRpbWVTaGlmdAogICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsKICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsKICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJ4LXRpbWVzaGlmdCJdOwogICAgICAgICAgICAgICAgICAgIHZhciB0ZCA9IGNlbGwuY3JlYXRlQ2VsbCgpOwogICAgICAgICAgICAgICAgICAgIHRkLnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoIm1hcHBpbmciLCB0aGlzKScpOwogICAgICAgICAgICAgICAgICAgIHRkLmlkID0ga2V5OwogICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKHRkKTsKICAgICAgICAgICAgICAgICAgICByb3dzLnB1c2godHIpOwogICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAic2V0dGluZ3MiOgogICAgICAgICAgICAgICAgYWxlcnQoKTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgfQogICAgICAgIHJldHVybiByb3dzOwogICAgfQp9CmNsYXNzIENlbGwgewogICAgY3JlYXRlQ2VsbCgpIHsKICAgICAgICBsZXQgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOwogICAgICAgIGlmICh0aGlzLmNoaWxkID09IHRydWUpIHsKICAgICAgICAgICAgdmFyIGVsZW1lbnQ7CiAgICAgICAgICAgIHN3aXRjaCAodGhpcy5jaGlsZFR5cGUpIHsKICAgICAgICAgICAgICAgIGNhc2UgIlAiOgogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KHRoaXMuY2hpbGRUeXBlKTsKICAgICAgICAgICAgICAgICAgICBlbGVtZW50LmlubmVySFRNTCA9IHRoaXMudmFsdWU7CiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC5jbGFzc05hbWUgPSB0aGlzLmNsYXNzTmFtZTsKICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgIGNhc2UgIklOUFVUIjoKICAgICAgICAgICAgICAgICAgICBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCh0aGlzLmNoaWxkVHlwZSk7CiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC52YWx1ZSA9IHRoaXMudmFsdWU7CiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC50eXBlID0gInRleHQiOwogICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgY2FzZSAiSU5QVVRDSEFOTkVMIjoKICAgICAgICAgICAgICAgICAgICBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiSU5QVVQiKTsKICAgICAgICAgICAgICAgICAgICBlbGVtZW50LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2c2NyaXB0OiBjaGFuZ2VDaGFubmVsTnVtYmVyKHRoaXMpIik7CiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC52YWx1ZSA9IHRoaXMudmFsdWU7CiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC50eXBlID0gInRleHQiOwogICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgY2FzZSAiQlVMSyI6CiAgICAgICAgICAgICAgICAgICAgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIklOUFVUIik7CiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC5jaGVja2VkID0gdGhpcy52YWx1ZTsKICAgICAgICAgICAgICAgICAgICBlbGVtZW50LnR5cGUgPSAiY2hlY2tib3giOwogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQuY2xhc3NOYW1lID0gImJ1bGsgaGlkZUJ1bGsiOwogICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgY2FzZSAiQlVMS19IRUFEIjoKICAgICAgICAgICAgICAgICAgICBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiSU5QVVQiKTsKICAgICAgICAgICAgICAgICAgICBlbGVtZW50LmNoZWNrZWQgPSB0aGlzLnZhbHVlOwogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQudHlwZSA9ICJjaGVja2JveCI7CiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC5jbGFzc05hbWUgPSAiYnVsayBoaWRlQnVsayI7CiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAiamF2YXNjcmlwdDogc2VsZWN0QWxsQ2hhbm5lbHMoKSIpOwogICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgY2FzZSAiSU1HIjoKICAgICAgICAgICAgICAgICAgICBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCh0aGlzLmNoaWxkVHlwZSk7CiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC5zZXRBdHRyaWJ1dGUoInNyYyIsIHRoaXMuaW1hZ2VVUkwpOwogICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLmltYWdlVVJMICE9ICIiKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGVsZW1lbnQuc2V0QXR0cmlidXRlKCJvbmVycm9yIiwgImphdmFzY3JpcHQ6IHRoaXMub25lcnJvcj1udWxsO3RoaXMuc3JjPScnIik7CiAgICAgICAgICAgICAgICAgICAgICAgIC8vb25lcnJvcj0idGhpcy5vbmVycm9yPW51bGw7dGhpcy5zcmM9J21pc3NpbmcuZ2lmJzsiCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICAgIHRkLmFwcGVuZENoaWxkKGVsZW1lbnQpOwogICAgICAgIH0KICAgICAgICBlbHNlIHsKICAgICAgICAgICAgdGQuaW5uZXJIVE1MID0gdGhpcy52YWx1ZTsKICAgICAgICB9CiAgICAgICAgaWYgKHRoaXMub25jbGljayA9PSB0cnVlKSB7CiAgICAgICAgICAgIHRkLnNldEF0dHJpYnV0ZSgib25jbGljayIsIHRoaXMub25jbGlja0Z1bmN0aW9uKTsKICAgICAgICAgICAgdGQuY2xhc3NOYW1lID0gInBvaW50ZXIiOwogICAgICAgIH0KICAgICAgICBpZiAodGhpcy50ZENsYXNzTmFtZSAhPSB1bmRlZmluZWQpIHsKICAgICAgICAgICAgdGQuY2xhc3NOYW1lID0gdGhpcy50ZENsYXNzTmFtZTsKICAgICAgICB9CiAgICAgICAgcmV0dXJuIHRkOwogICAgfQp9CmNsYXNzIFNob3dDb250ZW50IGV4dGVuZHMgQ29udGVudCB7CiAgICBjb25zdHJ1Y3RvcihtZW51SUQpIHsKICAgICAgICBzdXBlcigpOwogICAgICAgIHRoaXMubWVudUlEID0gbWVudUlEOwogICAgfQogICAgY3JlYXRlSW5wdXQodHlwZSwgbmFtZSwgdmFsdWUpIHsKICAgICAgICBsZXQgaW5wdXQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJJTlBVVCIpOwogICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgidHlwZSIsIHR5cGUpOwogICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgibmFtZSIsIG5hbWUpOwogICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgidmFsdWUiLCB2YWx1ZSk7CiAgICAgICAgcmV0dXJuIGlucHV0OwogICAgfQogICAgc2hvdygpIHsKICAgICAgICBDT0xVTU5fVE9fU09SVCA9IC0xOwogICAgICAgIC8vIERlbGV0ZSBvbGQgY29udGVudAogICAgICAgIGxldCBkb2MgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCh0aGlzLkRvY3VtZW50SUQpOwogICAgICAgIGRvYy5pbm5lckhUTUwgPSAiIjsKICAgICAgICBzaG93UHJldmlldyhmYWxzZSk7CiAgICAgICAgLy8gSGVhZGxpbmUKICAgICAgICBsZXQgaGVhZGxpbmUgPSBtZW51SXRlbXNbdGhpcy5tZW51SURdLmhlYWRsaW5lOwogICAgICAgIGxldCBtZW51S2V5ID0gbWVudUl0ZW1zW3RoaXMubWVudUlEXS5tZW51S2V5OwogICAgICAgIGxldCBoID0gdGhpcy5jcmVhdGVIZWFkbGluZShoZWFkbGluZSk7CiAgICAgICAgZG9jLmFwcGVuZENoaWxkKGgpOwogICAgICAgIGxldCBociA9IHRoaXMuY3JlYXRlSFIoKTsKICAgICAgICBkb2MuYXBwZW5kQ2hpbGQoaHIpOwogICAgICAgIC8vIEludGVyYWN0aW9uCiAgICAgICAgbGV0IGRpdiA9IHRoaXMuY3JlYXRlSW50ZXJhY3Rpb24oKTsKICAgICAgICBkb2MuYXBwZW5kQ2hpbGQoZGl2KTsKICAgICAgICBsZXQgaW50ZXJhY3Rpb24gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCh0aGlzLmludGVyYWN0aW9uSUQpOwogICAgICAgIHN3aXRjaCAobWVudUtleSkgewogICAgICAgICAgICBjYXNlICJwbGF5bGlzdCI6CiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSB0aGlzLmNyZWF0ZUlucHV0KCJidXR0b24iLCBtZW51S2V5LCAie3suYnV0dG9uLm5ld319Iik7CiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoImlkIiwgIi0iKTsKICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoInBsYXlsaXN0IiknKTsKICAgICAgICAgICAgICAgIGludGVyYWN0aW9uLmFwcGVuZENoaWxkKGlucHV0KTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJmaWx0ZXIiOgogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gdGhpcy5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgbWVudUtleSwgInt7LmJ1dHRvbi5uZXd9fSIpOwogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJpZCIsIC0xKTsKICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoImZpbHRlciIsIHRoaXMpJyk7CiAgICAgICAgICAgICAgICBpbnRlcmFjdGlvbi5hcHBlbmRDaGlsZChpbnB1dCk7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAieG1sdHYiOgogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gdGhpcy5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgbWVudUtleSwgInt7LmJ1dHRvbi5uZXd9fSIpOwogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJpZCIsICJ4bWx0diIpOwogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgieG1sdHYiKScpOwogICAgICAgICAgICAgICAgaW50ZXJhY3Rpb24uYXBwZW5kQ2hpbGQoaW5wdXQpOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgInVzZXJzIjoKICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IHRoaXMuY3JlYXRlSW5wdXQoImJ1dHRvbiIsIG1lbnVLZXksICJ7ey5idXR0b24ubmV3fX0iKTsKICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgiaWQiLCAidXNlcnMiKTsKICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoInVzZXJzIiknKTsKICAgICAgICAgICAgICAgIGludGVyYWN0aW9uLmFwcGVuZENoaWxkKGlucHV0KTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJtYXBwaW5nIjoKICAgICAgICAgICAgICAgIHNob3dFbGVtZW50KCJsb2FkaW5nIiwgdHJ1ZSk7CiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSB0aGlzLmNyZWF0ZUlucHV0KCJidXR0b24iLCBtZW51S2V5LCAie3suYnV0dG9uLnNhdmV9fSIpOwogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoIm1hcHBpbmciLCAiIiwgIiIpJyk7CiAgICAgICAgICAgICAgICBpbnRlcmFjdGlvbi5hcHBlbmRDaGlsZChpbnB1dCk7CiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSB0aGlzLmNyZWF0ZUlucHV0KCJidXR0b24iLCBtZW51S2V5LCAie3suYnV0dG9uLmJ1bGtFZGl0fX0iKTsKICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBidWxrRWRpdCgpJyk7CiAgICAgICAgICAgICAgICBpbnRlcmFjdGlvbi5hcHBlbmRDaGlsZChpbnB1dCk7CiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSB0aGlzLmNyZWF0ZUlucHV0KCJzZWFyY2giLCAic2VhcmNoIiwgIiIpOwogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJpZCIsICJzZWFyY2hNYXBwaW5nIik7CiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LmJ1dHRvbi5zZWFyY2h9fSIpOwogICAgICAgICAgICAgICAgaW5wdXQuY2xhc3NOYW1lID0gInNlYXJjaCI7CiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgJ2phdmFzY3JpcHQ6IHNlYXJjaEluTWFwcGluZygpJyk7CiAgICAgICAgICAgICAgICBpbnRlcmFjdGlvbi5hcHBlbmRDaGlsZChpbnB1dCk7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAic2V0dGluZ3MiOgogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gdGhpcy5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgbWVudUtleSwgInt7LmJ1dHRvbi5zYXZlfX0iKTsKICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBzYXZlU2V0dGluZ3MoKTsnKTsKICAgICAgICAgICAgICAgIGludGVyYWN0aW9uLmFwcGVuZENoaWxkKGlucHV0KTsKICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IHRoaXMuY3JlYXRlSW5wdXQoImJ1dHRvbiIsIG1lbnVLZXksICJ7ey5idXR0b24uYmFja3VwfX0iKTsKICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBiYWNrdXAoKTsnKTsKICAgICAgICAgICAgICAgIGludGVyYWN0aW9uLmFwcGVuZENoaWxkKGlucHV0KTsKICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IHRoaXMuY3JlYXRlSW5wdXQoImJ1dHRvbiIsIG1lbnVLZXksICJ7ey5idXR0b24ucmVzdG9yZX19Iik7CiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogcmVzdG9yZSgpOycpOwogICAgICAgICAgICAgICAgaW50ZXJhY3Rpb24uYXBwZW5kQ2hpbGQoaW5wdXQpOwogICAgICAgICAgICAgICAgdmFyIHdyYXBwZXIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJESVYiKTsKICAgICAgICAgICAgICAgIHdyYXBwZXIuc2V0QXR0cmlidXRlKCJpZCIsICJib3gtd3JhcHBlciIpOwogICAgICAgICAgICAgICAgZG9jLmFwcGVuZENoaWxkKHdyYXBwZXIpOwogICAgICAgICAgICAgICAgdGhpcy5EaXZJRCA9ICJjb250ZW50X3NldHRpbmdzIjsKICAgICAgICAgICAgICAgIHZhciBzZXR0aW5ncyA9IHRoaXMuY3JlYXRlRElWKCk7CiAgICAgICAgICAgICAgICB3cmFwcGVyLmFwcGVuZENoaWxkKHNldHRpbmdzKTsKICAgICAgICAgICAgICAgIHNob3dTZXR0aW5ncygpOwogICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICBjYXNlICJsb2ciOgogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gdGhpcy5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgbWVudUtleSwgInt7LmJ1dHRvbi5yZXNldExvZ3N9fSIpOwogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IHJlc2V0TG9ncygpOycpOwogICAgICAgICAgICAgICAgaW50ZXJhY3Rpb24uYXBwZW5kQ2hpbGQoaW5wdXQpOwogICAgICAgICAgICAgICAgdmFyIHdyYXBwZXIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJESVYiKTsKICAgICAgICAgICAgICAgIHdyYXBwZXIuc2V0QXR0cmlidXRlKCJpZCIsICJib3gtd3JhcHBlciIpOwogICAgICAgICAgICAgICAgZG9jLmFwcGVuZENoaWxkKHdyYXBwZXIpOwogICAgICAgICAgICAgICAgdGhpcy5EaXZJRCA9ICJjb250ZW50X2xvZyI7CiAgICAgICAgICAgICAgICB2YXIgbG9ncyA9IHRoaXMuY3JlYXRlRElWKCk7CiAgICAgICAgICAgICAgICB3cmFwcGVyLmFwcGVuZENoaWxkKGxvZ3MpOwogICAgICAgICAgICAgICAgc2hvd0xvZ3ModHJ1ZSk7CiAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgIGNhc2UgImxvZ291dCI6CiAgICAgICAgICAgICAgICBsb2NhdGlvbi5yZWxvYWQoKTsKICAgICAgICAgICAgICAgIGRvY3VtZW50LmNvb2tpZSA9ICJUb2tlbj0gOyBleHBpcmVzID0gVGh1LCAwMSBKYW4gMTk3MCAwMDowMDowMCBHTVQiOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICB9CiAgICAgICAgLy8gQ3JlYXRlIHRhYmxlIChpZiBuZWVkZWQpCiAgICAgICAgdmFyIHRhYmxlSGVhZGVyID0gbWVudUl0ZW1zW3RoaXMubWVudUlEXS50YWJsZUhlYWRlcjsKICAgICAgICBpZiAodGFibGVIZWFkZXIubGVuZ3RoID4gMCkgewogICAgICAgICAgICB2YXIgd3JhcHBlciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIkRJViIpOwogICAgICAgICAgICBkb2MuYXBwZW5kQ2hpbGQod3JhcHBlcik7CiAgICAgICAgICAgIHdyYXBwZXIuc2V0QXR0cmlidXRlKCJpZCIsICJib3gtd3JhcHBlciIpOwogICAgICAgICAgICB2YXIgdGFibGUgPSB0aGlzLmNyZWF0ZVRBQkxFKCk7CiAgICAgICAgICAgIHdyYXBwZXIuYXBwZW5kQ2hpbGQodGFibGUpOwogICAgICAgICAgICB2YXIgaGVhZGVyID0gdGhpcy5jcmVhdGVUYWJsZVJvdygpOwogICAgICAgICAgICB0YWJsZS5hcHBlbmRDaGlsZChoZWFkZXIpOwogICAgICAgICAgICAvLyBUYWJsZSBoZWFkZXIKICAgICAgICAgICAgdGFibGVIZWFkZXIuZm9yRWFjaChlbGVtZW50ID0+IHsKICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsKICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOwogICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7CiAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZWxlbWVudDsKICAgICAgICAgICAgICAgIGlmIChlbGVtZW50ID09ICJCVUxLIikgewogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIkJVTEtfSEVBRCI7CiAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGZhbHNlOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgaWYgKG1lbnVLZXkgPT0gIm1hcHBpbmciKSB7CiAgICAgICAgICAgICAgICAgICAgaWYgKGVsZW1lbnQgPT0gInt7Lm1hcHBpbmcudGFibGUuY2hOb319IikgewogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLm9uY2xpY2sgPSB0cnVlOwogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLm9uY2xpY2tGdW5jdGlvbiA9ICJqYXZhc2NyaXB0OiBzb3J0VGFibGUoMSk7IjsKICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC50ZENsYXNzTmFtZSA9ICJzb3J0VGhpcyI7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIGlmIChlbGVtZW50ID09ICJ7ey5tYXBwaW5nLnRhYmxlLmNoYW5uZWxOYW1lfX0iKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwub25jbGljayA9IHRydWU7CiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwub25jbGlja0Z1bmN0aW9uID0gImphdmFzY3JpcHQ6IHNvcnRUYWJsZSgzKTsiOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBpZiAoZWxlbWVudCA9PSAie3subWFwcGluZy50YWJsZS51cGRhdGVDaGFubmVsTmFtZVJlZ2V4fX0iKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwub25jbGljayA9IHRydWU7CiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwub25jbGlja0Z1bmN0aW9uID0gImphdmFzY3JpcHQ6IHNvcnRUYWJsZSg0KTsiOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBpZiAoZWxlbWVudCA9PSAie3subWFwcGluZy50YWJsZS5wbGF5bGlzdH19IikgewogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLm9uY2xpY2sgPSB0cnVlOwogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLm9uY2xpY2tGdW5jdGlvbiA9ICJqYXZhc2NyaXB0OiBzb3J0VGFibGUoNSk7IjsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgaWYgKGVsZW1lbnQgPT0gInt7Lm1hcHBpbmcudGFibGUuZ3JvdXBUaXRsZX19IikgewogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLm9uY2xpY2sgPSB0cnVlOwogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLm9uY2xpY2tGdW5jdGlvbiA9ICJqYXZhc2NyaXB0OiBzb3J0VGFibGUoNik7IjsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgaWYgKGVsZW1lbnQgPT0gInt7Lm1hcHBpbmcudGFibGUudGltZXNoaWZ0fX0iKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwub25jbGljayA9IHRydWU7CiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwub25jbGlja0Z1bmN0aW9uID0gImphdmFzY3JpcHQ6IHNvcnRUYWJsZSg5KTsiOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGlmIChtZW51S2V5ID09ICJmaWx0ZXIiKSB7CiAgICAgICAgICAgICAgICAgICAgaWYgKGVsZW1lbnQgPT0gInt7LmZpbHRlci50YWJsZS5zdGFydGluZ0NoYW5uZWx9fSIpIHsKICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5vbmNsaWNrID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5vbmNsaWNrRnVuY3Rpb24gPSAiamF2YXNjcmlwdDogc29ydFRhYmxlKDApOyI7CiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudGRDbGFzc05hbWUgPSAic29ydFRoaXMiOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBpZiAoZWxlbWVudCA9PSAie3suZmlsdGVyLnRhYmxlLm5hbWV9fSIpIHsKICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5vbmNsaWNrID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5vbmNsaWNrRnVuY3Rpb24gPSAiamF2YXNjcmlwdDogc29ydFRhYmxlKDEpOyI7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIGlmIChlbGVtZW50ID09ICJ7ey5maWx0ZXIudGFibGUudHlwZX19IikgewogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLm9uY2xpY2sgPSB0cnVlOwogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLm9uY2xpY2tGdW5jdGlvbiA9ICJqYXZhc2NyaXB0OiBzb3J0VGFibGUoMik7IjsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgaWYgKGVsZW1lbnQgPT0gInt7LmZpbHRlci50YWJsZS5maWx0ZXJ9fSIpIHsKICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5vbmNsaWNrID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5vbmNsaWNrRnVuY3Rpb24gPSAiamF2YXNjcmlwdDogc29ydFRhYmxlKDMpOyI7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgaGVhZGVyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsKICAgICAgICAgICAgfSk7CiAgICAgICAgICAgIHRhYmxlLmFwcGVuZENoaWxkKGhlYWRlcik7CiAgICAgICAgICAgIC8vIENvbnRlbnQgb2YgdGhlIHRhYmxlCiAgICAgICAgICAgIHZhciByb3dzID0gdGhpcy5jcmVhdGVUYWJsZUNvbnRlbnQobWVudUtleSk7CiAgICAgICAgICAgIHJvd3MuZm9yRWFjaCh0ciA9PiB7CiAgICAgICAgICAgICAgICB0YWJsZS5hcHBlbmRDaGlsZCh0cik7CiAgICAgICAgICAgIH0pOwogICAgICAgIH0KICAgICAgICBzd2l0Y2ggKG1lbnVLZXkpIHsKICAgICAgICAgICAgY2FzZSAibWFwcGluZyI6CiAgICAgICAgICAgICAgICBzb3J0VGFibGUoMSk7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAiZmlsdGVyIjoKICAgICAgICAgICAgICAgIHNob3dQcmV2aWV3KHRydWUpOwogICAgICAgICAgICAgICAgc29ydFRhYmxlKDApOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICAgICBDT0xVTU5fVE9fU09SVCA9IC0xOwogICAgICAgICAgICAgICAgc29ydFRhYmxlKDApOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgfQogICAgICAgIHNob3dFbGVtZW50KCJsb2FkaW5nIiwgZmFsc2UpOwogICAgfQp9CmZ1bmN0aW9uIFBhZ2VSZWFkeSgpIHsKICAgIGxldCBzZXJ2ZXIgPSBuZXcgU2VydmVyKCJnZXRTZXJ2ZXJDb25maWciKTsKICAgIHNlcnZlci5yZXF1ZXN0KHt9KTsKICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJyZXNpemUiLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgY2FsY3VsYXRlV3JhcHBlckhlaWdodCgpOwogICAgfSwgdHJ1ZSk7CiAgICBzZXRJbnRlcnZhbChmdW5jdGlvbiAoKSB7CiAgICAgICAgdXBkYXRlTG9nKCk7CiAgICB9LCAxMDAwMCk7CiAgICByZXR1cm47Cn0KZnVuY3Rpb24gY3JlYXRlTGF5b3V0KCkgewogICAgLy8gQ2xpZW50IEluZm8KICAgIGxldCBvYmogPSBTRVJWRVJbImNsaWVudEluZm8iXTsKICAgIGxldCBrZXlzID0gZ2V0T3duT2JqUHJvcHMob2JqKTsKICAgIGZvciAodmFyIGkgPSAwOyBpIDwga2V5cy5sZW5ndGg7IGkrKykgewogICAgICAgIGlmIChkb2N1bWVudC5nZXRFbGVtZW50QnlJZChrZXlzW2ldKSkgewogICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChrZXlzW2ldKS5pbm5lckhUTUwgPSBvYmpba2V5c1tpXV07CiAgICAgICAgICAgIGlmIChsb2NhdGlvbi5wcm90b2NvbCA9PT0gJ2h0dHBzOicpIHsKICAgICAgICAgICAgICAgIGlmIChrZXlzW2ldID09PSAieGVwZy11cmwiIHx8IGtleXNbaV0gPT09ICJtM3UtdXJsIiB8fCBrZXlzW2ldID09PSAiRFZSIikgewogICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGtleXNbaV0pLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgZnVuY3Rpb24gKGV2ZW50KSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHRhcmdldCA9IGV2ZW50LnRhcmdldDsKICAgICAgICAgICAgICAgICAgICAgICAgbmF2aWdhdG9yLmNsaXBib2FyZC53cml0ZVRleHQodGFyZ2V0LmlubmVyVGV4dC5zcGxpdCgiICIpWzBdKS50aGVuKCgpID0+IHsgfSk7CiAgICAgICAgICAgICAgICAgICAgfSwgZmFsc2UpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQogICAgaWYgKCFkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibWFpbi1tZW51IikpIHsKICAgICAgICByZXR1cm47CiAgICB9CiAgICAvLyBDcmVhdGUgbWVudQogICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm1haW4tbWVudSIpLmlubmVySFRNTCA9ICIiOwogICAgZm9yIChsZXQgaSA9IDA7IGkgPCBtZW51SXRlbXMubGVuZ3RoOyBpKyspIHsKICAgICAgICBtZW51SXRlbXNbaV0uaWQgPSBpOwogICAgICAgIHN3aXRjaCAobWVudUl0ZW1zW2ldWyJtZW51S2V5Il0pIHsKICAgICAgICAgICAgY2FzZSAidXNlcnMiOgogICAgICAgICAgICBjYXNlICJsb2dvdXQiOgogICAgICAgICAgICAgICAgaWYgKFNFUlZFUlsic2V0dGluZ3MiXVsiYXV0aGVudGljYXRpb24ud2ViIl0gPT0gdHJ1ZSkgewogICAgICAgICAgICAgICAgICAgIG1lbnVJdGVtc1tpXS5jcmVhdGVJdGVtKCk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAibWFwcGluZyI6CiAgICAgICAgICAgIGNhc2UgInhtbHR2IjoKICAgICAgICAgICAgICAgIGlmIChTRVJWRVJbImNsaWVudEluZm8iXVsiZXBnU291cmNlIl0gPT0gIlhFUEciKSB7CiAgICAgICAgICAgICAgICAgICAgbWVudUl0ZW1zW2ldLmNyZWF0ZUl0ZW0oKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAgICAgbWVudUl0ZW1zW2ldLmNyZWF0ZUl0ZW0oKTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgIH0KICAgIH0KICAgIHJldHVybjsKfQpmdW5jdGlvbiBvcGVuVGhpc01lbnUoZWxlbWVudCkgewogICAgbGV0IGlkID0gZWxlbWVudC5pZDsKICAgIGxldCBjb250ZW50ID0gbmV3IFNob3dDb250ZW50KGlkKTsKICAgIGNvbnRlbnQuc2hvdygpOwogICAgY2FsY3VsYXRlV3JhcHBlckhlaWdodCgpOwogICAgcmV0dXJuOwp9CmNsYXNzIFBvcHVwV2luZG93IHsKICAgIGNvbnN0cnVjdG9yKCkgewogICAgICAgIHRoaXMuRG9jdW1lbnRJRCA9ICJwb3B1cC1jdXN0b20iOwogICAgICAgIHRoaXMuSW50ZXJhY3Rpb25JRCA9ICJpbnRlcmFjdGlvbiI7CiAgICAgICAgdGhpcy5kb2MgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCh0aGlzLkRvY3VtZW50SUQpOwogICAgfQogICAgY3JlYXRlVGl0bGUodGl0bGUpIHsKICAgICAgICBsZXQgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOwogICAgICAgIHRkLmNsYXNzTmFtZSA9ICJsZWZ0IjsKICAgICAgICB0ZC5pbm5lckhUTUwgPSB0aXRsZSArICI6IjsKICAgICAgICByZXR1cm4gdGQ7CiAgICB9CiAgICBjcmVhdGVDb250ZW50KGVsZW1lbnQpIHsKICAgICAgICBsZXQgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOwogICAgICAgIHRkLmFwcGVuZENoaWxkKGVsZW1lbnQpOwogICAgICAgIHJldHVybiB0ZDsKICAgIH0KICAgIGNyZWF0ZUludGVyYWN0aW9uKCkgewogICAgICAgIGxldCBkaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsKICAgICAgICBkaXYuc2V0QXR0cmlidXRlKCJpZCIsICJwb3B1cC1pbnRlcmFjdGlvbiIpOwogICAgICAgIGRpdi5jbGFzc05hbWUgPSAiaW50ZXJhY3Rpb24iOwogICAgICAgIHRoaXMuZG9jLmFwcGVuZENoaWxkKGRpdik7CiAgICB9Cn0KY2xhc3MgUG9wdXBDb250ZW50IGV4dGVuZHMgUG9wdXBXaW5kb3cgewogICAgY29uc3RydWN0b3IoKSB7CiAgICAgICAgc3VwZXIoLi4uYXJndW1lbnRzKTsKICAgICAgICB0aGlzLnRhYmxlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEFCTEUiKTsKICAgIH0KICAgIGNyZWF0ZUhlYWRsaW5lKGhlYWRsaW5lKSB7CiAgICAgICAgdGhpcy5kb2MuaW5uZXJIVE1MID0gIiI7CiAgICAgICAgdmFyIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJIMyIpOwogICAgICAgIGVsZW1lbnQuaW5uZXJIVE1MID0gaGVhZGxpbmUudG9VcHBlckNhc2UoKTsKICAgICAgICB0aGlzLmRvYy5hcHBlbmRDaGlsZChlbGVtZW50KTsKICAgICAgICAvLyBDcmVhdGUgdGFibGUKICAgICAgICB0aGlzLnRhYmxlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEFCTEUiKTsKICAgICAgICB0aGlzLmRvYy5hcHBlbmRDaGlsZCh0aGlzLnRhYmxlKTsKICAgIH0KICAgIGFwcGVuZFJvdyh0aXRsZSwgZWxlbWVudCkgewogICAgICAgIGxldCB0ciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlRSIik7CiAgICAgICAgLy8gVGl0bGUKICAgICAgICBpZiAodGl0bGUubGVuZ3RoICE9IDApIHsKICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQodGhpcy5jcmVhdGVUaXRsZSh0aXRsZSkpOwogICAgICAgIH0KICAgICAgICAvLyBDb250ZW50CiAgICAgICAgdHIuYXBwZW5kQ2hpbGQodGhpcy5jcmVhdGVDb250ZW50KGVsZW1lbnQpKTsKICAgICAgICB0aGlzLnRhYmxlLmFwcGVuZENoaWxkKHRyKTsKICAgIH0KICAgIGNyZWF0ZUlucHV0KHR5cGUsIG5hbWUsIHZhbHVlKSB7CiAgICAgICAgbGV0IGlucHV0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiSU5QVVQiKTsKICAgICAgICBpZiAodmFsdWUgPT0gdW5kZWZpbmVkKSB7CiAgICAgICAgICAgIHZhbHVlID0gIiI7CiAgICAgICAgfQogICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgidHlwZSIsIHR5cGUpOwogICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgibmFtZSIsIG5hbWUpOwogICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgidmFsdWUiLCB2YWx1ZSk7CiAgICAgICAgcmV0dXJuIGlucHV0OwogICAgfQogICAgY3JlYXRlQ2hlY2tib3gobmFtZSkgewogICAgICAgIGxldCBpbnB1dCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIklOUFVUIik7CiAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJ0eXBlIiwgImNoZWNrYm94Iik7CiAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJuYW1lIiwgbmFtZSk7CiAgICAgICAgcmV0dXJuIGlucHV0OwogICAgfQogICAgLy8gQ3JlYXRlcyBhIHNlbGVjdGlvbiBvZiBtdWx0aXBsZSBvcHRpb25zIHZhbHVlcyB3aXRoIHRleHQgZGVzY3JpcHRpb25zCiAgICBjcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCBzZXQsIGRiS2V5KSB7CiAgICAgICAgbGV0IHNlbGVjdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlNFTEVDVCIpOwogICAgICAgIHNlbGVjdC5zZXRBdHRyaWJ1dGUoIm5hbWUiLCBkYktleSk7CiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0ZXh0Lmxlbmd0aDsgaSsrKSB7CiAgICAgICAgICAgIGxldCBvcHRpb24gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJPUFRJT04iKTsKICAgICAgICAgICAgb3B0aW9uLnNldEF0dHJpYnV0ZSgidmFsdWUiLCB2YWx1ZXNbaV0pOwogICAgICAgICAgICBvcHRpb24uaW5uZXJUZXh0ID0gdGV4dFtpXTsKICAgICAgICAgICAgc2VsZWN0LmFwcGVuZENoaWxkKG9wdGlvbik7CiAgICAgICAgfQogICAgICAgIGlmIChzZXQgIT0gIiIpIHsKICAgICAgICAgICAgc2VsZWN0LnZhbHVlID0gc2V0OwogICAgICAgIH0KICAgICAgICBpZiAoc2V0ID09IHVuZGVmaW5lZCkgewogICAgICAgICAgICBzZWxlY3QudmFsdWUgPSB2YWx1ZXNbMF07CiAgICAgICAgfQogICAgICAgIHJldHVybiBzZWxlY3Q7CiAgICB9CiAgICBzZWxlY3RPcHRpb24oc2VsZWN0LCB2YWx1ZSkgewogICAgICAgIC8vc2VsZWN0LnNlbGVjdGVkT3B0aW9ucyA9IHZhbHVlCiAgICAgICAgbGV0IHMgPSBzZWxlY3Q7CiAgICAgICAgcy5vcHRpb25zW3Muc2VsZWN0ZWRJbmRleF0udmFsdWUgPSB2YWx1ZTsKICAgICAgICByZXR1cm4gc2VsZWN0OwogICAgfQogICAgZGVzY3JpcHRpb24odmFsdWUpIHsKICAgICAgICBsZXQgdHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJUUiIpOwogICAgICAgIGxldCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7CiAgICAgICAgbGV0IHNwYW4gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJQUkUiKTsKICAgICAgICBzcGFuLmlubmVySFRNTCA9IHZhbHVlOwogICAgICAgIHRyLmFwcGVuZENoaWxkKHRkKTsKICAgICAgICB0ci5hcHBlbmRDaGlsZCh0aGlzLmNyZWF0ZUNvbnRlbnQoc3BhbikpOwogICAgICAgIHRoaXMudGFibGUuYXBwZW5kQ2hpbGQodHIpOwogICAgfQogICAgLy8gSW50ZXJhY3Rpb24KICAgIGFkZEludGVyYWN0aW9uKGVsZW1lbnQpIHsKICAgICAgICBsZXQgaW50ZXJhY3Rpb24gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicG9wdXAtaW50ZXJhY3Rpb24iKTsKICAgICAgICBpbnRlcmFjdGlvbi5hcHBlbmRDaGlsZChlbGVtZW50KTsKICAgIH0KfQpmdW5jdGlvbiBvcGVuUG9wVXAoZGF0YVR5cGUsIGVsZW1lbnQpIHsKICAgIGxldCBkYXRhID0ge307CiAgICBsZXQgaWQ7CiAgICBzd2l0Y2ggKGVsZW1lbnQpIHsKICAgICAgICBjYXNlIHVuZGVmaW5lZDoKICAgICAgICAgICAgc3dpdGNoIChkYXRhVHlwZSkgewogICAgICAgICAgICAgICAgY2FzZSAiZ3JvdXAtdGl0bGUiOgogICAgICAgICAgICAgICAgICAgIGlmIChpZCA9PSB1bmRlZmluZWQpIHsKICAgICAgICAgICAgICAgICAgICAgICAgaWQgPSAtMTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgZGF0YSA9IGdldExvY2FsRGF0YSgiZmlsdGVyIiwgaWQpOwogICAgICAgICAgICAgICAgICAgIGRhdGFbInR5cGUiXSA9ICJncm91cC10aXRsZSI7CiAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICBjYXNlICJjdXN0b20tZmlsdGVyIjoKICAgICAgICAgICAgICAgICAgICBpZiAoaWQgPT0gdW5kZWZpbmVkKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGlkID0gLTE7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIGRhdGEgPSBnZXRMb2NhbERhdGEoImZpbHRlciIsIGlkKTsKICAgICAgICAgICAgICAgICAgICBkYXRhWyJ0eXBlIl0gPSAiY3VzdG9tLWZpbHRlciI7CiAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAgICAgICAgIGRhdGFbImlkLnByb3ZpZGVyIl0gPSAiLSI7CiAgICAgICAgICAgICAgICAgICAgZGF0YVsidHlwZSJdID0gZGF0YVR5cGU7CiAgICAgICAgICAgICAgICAgICAgaWQgPSAiLSI7CiAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgaWQgPSBlbGVtZW50LmlkOwogICAgICAgICAgICBkYXRhID0gZ2V0TG9jYWxEYXRhKGRhdGFUeXBlLCBpZCk7CiAgICAgICAgICAgIGJyZWFrOwogICAgfQogICAgbGV0IGNvbnRlbnQgPSBuZXcgUG9wdXBDb250ZW50KCk7CiAgICBzd2l0Y2ggKGRhdGFUeXBlKSB7CiAgICAgICAgY2FzZSAicGxheWxpc3QiOgogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUhlYWRsaW5lKCJ7ey5wbGF5bGlzdC5wbGF5bGlzdFR5cGUudGl0bGV9fSIpOwogICAgICAgICAgICAvLyBUeXBlCiAgICAgICAgICAgIHZhciB0ZXh0ID0gWyJNM1UiLCAiSERIb21lUnVuIl07CiAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBbImphdmFzY3JpcHQ6IG9wZW5Qb3BVcCgnbTN1JykiLCAiamF2YXNjcmlwdDogb3BlblBvcFVwKCdoZGhyJykiXTsKICAgICAgICAgICAgdmFyIHNlbGVjdCA9IGNvbnRlbnQuY3JlYXRlU2VsZWN0KHRleHQsIHZhbHVlcywgIiIsICJ0eXBlIik7CiAgICAgICAgICAgIHNlbGVjdC5zZXRBdHRyaWJ1dGUoImlkIiwgInR5cGUiKTsKICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAnamF2YXNjcmlwdDogY2hhbmdlQnV0dG9uQWN0aW9uKHRoaXMsICJuZXh0IiwgIm9uY2xpY2siKScpOyAvLyBjaGFuZ2VCdXR0b25BY3Rpb24KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnBsYXlsaXN0LnR5cGUudGl0bGV9fSIsIHNlbGVjdCk7CiAgICAgICAgICAgIC8vIEludGVyYWN0aW9uCiAgICAgICAgICAgIGNvbnRlbnQuY3JlYXRlSW50ZXJhY3Rpb24oKTsKICAgICAgICAgICAgLy8gQWJvcnQKICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImNhbmNlbCIsICJ7ey5idXR0b24uY2FuY2VsfX0iKTsKICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IHNob3dFbGVtZW50KCJwb3B1cCIsIGZhbHNlKTsnKTsKICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7CiAgICAgICAgICAgIC8vIE5leHQKICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgIm5leHQiLCAie3suYnV0dG9uLm5leHR9fSIpOwogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJtM3UiKScpOwogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoImlkIiwgJ25leHQnKTsKICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgIGNhc2UgIm0zdSI6CiAgICAgICAgICAgIGNvbnRlbnQuY3JlYXRlSGVhZGxpbmUoZGF0YVR5cGUpOwogICAgICAgICAgICAvLyBOYW1lCiAgICAgICAgICAgIHZhciBkYktleSA9ICJuYW1lIjsKICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7CiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3sucGxheWxpc3QubmFtZS5wbGFjZWhvbGRlcn19Iik7CiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5wbGF5bGlzdC5uYW1lLnRpdGxlfX0iLCBpbnB1dCk7CiAgICAgICAgICAgIC8vIERlc2NyaXB0aW9uCiAgICAgICAgICAgIHZhciBkYktleSA9ICJkZXNjcmlwdGlvbiI7CiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOwogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnBsYXlsaXN0LmRlc2NyaXB0aW9uLnBsYWNlaG9sZGVyfX0iKTsKICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnBsYXlsaXN0LmRlc2NyaXB0aW9uLnRpdGxlfX0iLCBpbnB1dCk7CiAgICAgICAgICAgIC8vIFVSTAogICAgICAgICAgICB2YXIgZGJLZXkgPSAiZmlsZS5zb3VyY2UiOwogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsKICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5wbGF5bGlzdC5maWxlTTNVLnBsYWNlaG9sZGVyfX0iKTsKICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnBsYXlsaXN0LmZpbGVNM1UudGl0bGV9fSIsIGlucHV0KTsKICAgICAgICAgICAgLy8gVHVuZXIKICAgICAgICAgICAgaWYgKFNFUlZFUlsic2V0dGluZ3MiXVsiYnVmZmVyIl0gIT0gIi0iKSB7CiAgICAgICAgICAgICAgICB2YXIgdGV4dCA9IFtdOwogICAgICAgICAgICAgICAgdmFyIHZhbHVlcyA9IFtdOwogICAgICAgICAgICAgICAgZm9yICh2YXIgaSA9IDE7IGkgPD0gMTAwOyBpKyspIHsKICAgICAgICAgICAgICAgICAgICB0ZXh0LnB1c2goaS50b1N0cmluZygpKTsKICAgICAgICAgICAgICAgICAgICB2YWx1ZXMucHVzaChpLnRvU3RyaW5nKCkpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgdmFyIGRiS2V5ID0gInR1bmVyIjsKICAgICAgICAgICAgICAgIHZhciBzZWxlY3QgPSBjb250ZW50LmNyZWF0ZVNlbGVjdCh0ZXh0LCB2YWx1ZXMsIGRhdGFbZGJLZXldLCBkYktleSk7CiAgICAgICAgICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJvbmZvY3VzIiwgImphdmFzY3JpcHQ6IHJldHVybjsiKTsKICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5wbGF5bGlzdC50dW5lci50aXRsZX19Iiwgc2VsZWN0KTsKICAgICAgICAgICAgfQogICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgIHZhciBkYktleSA9ICJ0dW5lciI7CiAgICAgICAgICAgICAgICBpZiAoZGF0YVtkYktleV0gPT0gdW5kZWZpbmVkKSB7CiAgICAgICAgICAgICAgICAgICAgZGF0YVtkYktleV0gPSAxOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7CiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInJlYWRvbmx5IiwgInRydWUiKTsKICAgICAgICAgICAgICAgIGlucHV0LmNsYXNzTmFtZSA9ICJub3RBdmFpbGFibGUiOwogICAgICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnBsYXlsaXN0LnR1bmVyLnRpdGxlfX0iLCBpbnB1dCk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgY29udGVudC5kZXNjcmlwdGlvbigie3sucGxheWxpc3QudHVuZXIuZGVzY3JpcHRpb259fSIpOwogICAgICAgICAgICAvLyBJbnRlcmF0aW9uCiAgICAgICAgICAgIGNvbnRlbnQuY3JlYXRlSW50ZXJhY3Rpb24oKTsKICAgICAgICAgICAgLy8gRGVsZXRlCiAgICAgICAgICAgIGlmIChkYXRhWyJpZC5wcm92aWRlciJdICE9ICItIikgewogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImRlbGV0ZSIsICJ7ey5idXR0b24uZGVsZXRlfX0iKTsKICAgICAgICAgICAgICAgIGlucHV0LmNsYXNzTmFtZSA9ICJkZWxldGUiOwogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoIm0zdSIsICInICsgaWQgKyAnIiwgdHJ1ZSwgMCknKTsKICAgICAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImJhY2siLCAie3suYnV0dG9uLmJhY2t9fSIpOwogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgicGxheWxpc3QiKScpOwogICAgICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgLy8gQWJvcnQKICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImNhbmNlbCIsICJ7ey5idXR0b24uY2FuY2VsfX0iKTsKICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IHNob3dFbGVtZW50KCJwb3B1cCIsIGZhbHNlKTsnKTsKICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7CiAgICAgICAgICAgIC8vIFVwZGF0ZQogICAgICAgICAgICBpZiAoZGF0YVsiaWQucHJvdmlkZXIiXSAhPSAiLSIpIHsKICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJ1cGRhdGUiLCAie3suYnV0dG9uLnVwZGF0ZX19Iik7CiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogc2F2ZVBvcHVwRGF0YSgibTN1IiwgIicgKyBpZCArICciLCBmYWxzZSwgMSknKTsKICAgICAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIC8vIFNhdmUKICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgInNhdmUiLCAie3suYnV0dG9uLnNhdmV9fSIpOwogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogc2F2ZVBvcHVwRGF0YSgibTN1IiwgIicgKyBpZCArICciLCBmYWxzZSwgMCknKTsKICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgIGNhc2UgImhkaHIiOgogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUhlYWRsaW5lKGRhdGFUeXBlKTsKICAgICAgICAgICAgLy8gTmFtZQogICAgICAgICAgICB2YXIgZGJLZXkgPSAibmFtZSI7CiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOwogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnBsYXlsaXN0Lm5hbWUucGxhY2Vob2xkZXJ9fSIpOwogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sucGxheWxpc3QubmFtZS50aXRsZX19IiwgaW5wdXQpOwogICAgICAgICAgICAvLyBEZXNjcmlwdGlvbgogICAgICAgICAgICB2YXIgZGJLZXkgPSAiZGVzY3JpcHRpb24iOwogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsKICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5wbGF5bGlzdC5kZXNjcmlwdGlvbi5wbGFjZWhvbGRlcn19Iik7CiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5wbGF5bGlzdC5kZXNjcmlwdGlvbi5wbGFjZWhvbGRlcn19IiwgaW5wdXQpOwogICAgICAgICAgICAvLyBVUkwKICAgICAgICAgICAgdmFyIGRiS2V5ID0gImZpbGUuc291cmNlIjsKICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7CiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3sucGxheWxpc3QuZmlsZUhESFIucGxhY2Vob2xkZXJ9fSIpOwogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sucGxheWxpc3QuZmlsZUhESFIudGl0bGV9fSIsIGlucHV0KTsKICAgICAgICAgICAgLy8gVHVuZXIKICAgICAgICAgICAgaWYgKFNFUlZFUlsic2V0dGluZ3MiXVsiYnVmZmVyIl0gIT0gIi0iKSB7CiAgICAgICAgICAgICAgICB2YXIgdGV4dCA9IFtdOwogICAgICAgICAgICAgICAgdmFyIHZhbHVlcyA9IFtdOwogICAgICAgICAgICAgICAgZm9yICh2YXIgaSA9IDE7IGkgPD0gMTAwOyBpKyspIHsKICAgICAgICAgICAgICAgICAgICB0ZXh0LnB1c2goaS50b1N0cmluZygpKTsKICAgICAgICAgICAgICAgICAgICB2YWx1ZXMucHVzaChpLnRvU3RyaW5nKCkpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgdmFyIGRiS2V5ID0gInR1bmVyIjsKICAgICAgICAgICAgICAgIHZhciBzZWxlY3QgPSBjb250ZW50LmNyZWF0ZVNlbGVjdCh0ZXh0LCB2YWx1ZXMsIGRhdGFbZGJLZXldLCBkYktleSk7CiAgICAgICAgICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJvbmZvY3VzIiwgImphdmFzY3JpcHQ6IHJldHVybjsiKTsKICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5wbGF5bGlzdC50dW5lci50aXRsZX19Iiwgc2VsZWN0KTsKICAgICAgICAgICAgfQogICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgIHZhciBkYktleSA9ICJ0dW5lciI7CiAgICAgICAgICAgICAgICBpZiAoZGF0YVtkYktleV0gPT0gdW5kZWZpbmVkKSB7CiAgICAgICAgICAgICAgICAgICAgZGF0YVtkYktleV0gPSAxOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7CiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInJlYWRvbmx5IiwgInRydWUiKTsKICAgICAgICAgICAgICAgIGlucHV0LmNsYXNzTmFtZSA9ICJub3RBdmFpbGFibGUiOwogICAgICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnBsYXlsaXN0LnR1bmVyLnRpdGxlfX0iLCBpbnB1dCk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgY29udGVudC5kZXNjcmlwdGlvbigie3sucGxheWxpc3QudHVuZXIuZGVzY3JpcHRpb259fSIpOwogICAgICAgICAgICAvLyBJbnRlcmFjdGlvbgogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUludGVyYWN0aW9uKCk7CiAgICAgICAgICAgIC8vIERlbGV0ZQogICAgICAgICAgICBpZiAoZGF0YVsiaWQucHJvdmlkZXIiXSAhPSAiLSIpIHsKICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJkZWxldGUiLCAie3suYnV0dG9uLmRlbGV0ZX19Iik7CiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogc2F2ZVBvcHVwRGF0YSgiaGRociIsICInICsgaWQgKyAnIiwgdHJ1ZSwgMCknKTsKICAgICAgICAgICAgICAgIGlucHV0LmNsYXNzTmFtZSA9ICJkZWxldGUiOwogICAgICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAiYmFjayIsICJ7ey5idXR0b24uYmFja319Iik7CiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJwbGF5bGlzdCIpJyk7CiAgICAgICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsKICAgICAgICAgICAgfQogICAgICAgICAgICAvLyBBYm9ydAogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAiY2FuY2VsIiwgInt7LmJ1dHRvbi5jYW5jZWx9fSIpOwogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogc2hvd0VsZW1lbnQoInBvcHVwIiwgZmFsc2UpOycpOwogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsKICAgICAgICAgICAgLy8gVXBkYXRlCiAgICAgICAgICAgIGlmIChkYXRhWyJpZC5wcm92aWRlciJdICE9ICItIikgewogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgInVwZGF0ZSIsICJ7ey5idXR0b24udXBkYXRlfX0iKTsKICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBzYXZlUG9wdXBEYXRhKCJoZGhyIiwgIicgKyBpZCArICciLCBmYWxzZSwgMSknKTsKICAgICAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIC8vIFNhdmUKICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgInNhdmUiLCAie3suYnV0dG9uLnNhdmV9fSIpOwogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogc2F2ZVBvcHVwRGF0YSgiaGRociIsICInICsgaWQgKyAnIiwgZmFsc2UsIDApJyk7CiAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOwogICAgICAgICAgICBicmVhazsKICAgICAgICBjYXNlICJmaWx0ZXIiOgogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUhlYWRsaW5lKGRhdGFUeXBlKTsKICAgICAgICAgICAgLy8gVHlwZQogICAgICAgICAgICB2YXIgZGJLZXkgPSAidHlwZSI7CiAgICAgICAgICAgIHZhciB0ZXh0ID0gWyJNM1U6ICIgKyAie3suZmlsdGVyLnR5cGUuZ3JvdXBUaXRsZX19IiwgInhUZVZlOiAiICsgInt7LmZpbHRlci50eXBlLmN1c3RvbUZpbHRlcn19Il07CiAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBbImphdmFzY3JpcHQ6IG9wZW5Qb3BVcCgnZ3JvdXAtdGl0bGUnKSIsICJqYXZhc2NyaXB0OiBvcGVuUG9wVXAoJ2N1c3RvbS1maWx0ZXInKSJdOwogICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCAiamF2YXNjcmlwdDogb3BlblBvcFVwKCdncm91cC10aXRsZScpIiwgZGJLZXkpOwogICAgICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJpZCIsIGlkKTsKICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAnamF2YXNjcmlwdDogY2hhbmdlQnV0dG9uQWN0aW9uKHRoaXMsICJuZXh0IiwgIm9uY2xpY2siKTsnKTsgLy8gY2hhbmdlQnV0dG9uQWN0aW9uCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5maWx0ZXIudHlwZS50aXRsZX19Iiwgc2VsZWN0KTsKICAgICAgICAgICAgLy8gSW50ZXJhY3Rpb24KICAgICAgICAgICAgY29udGVudC5jcmVhdGVJbnRlcmFjdGlvbigpOwogICAgICAgICAgICAvLyBBYm9ydAogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAiY2FuY2VsIiwgInt7LmJ1dHRvbi5jYW5jZWx9fSIpOwogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogc2hvd0VsZW1lbnQoInBvcHVwIiwgZmFsc2UpOycpOwogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsKICAgICAgICAgICAgLy8gTmV4dAogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAibmV4dCIsICJ7ey5idXR0b24ubmV4dH19Iik7CiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoImdyb3VwLXRpdGxlIiknKTsKICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJpZCIsICduZXh0Jyk7CiAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOwogICAgICAgICAgICBicmVhazsKICAgICAgICBjYXNlICJjdXN0b20tZmlsdGVyIjoKICAgICAgICBjYXNlICJncm91cC10aXRsZSI6CiAgICAgICAgICAgIHN3aXRjaCAoZGF0YVR5cGUpIHsKICAgICAgICAgICAgICAgIGNhc2UgImN1c3RvbS1maWx0ZXIiOgogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuY3JlYXRlSGVhZGxpbmUoInt7LmZpbHRlci5jdXN0b219fSIgKyAiIEZpbHRlciIpOwogICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgY2FzZSAiZ3JvdXAtdGl0bGUiOgogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuY3JlYXRlSGVhZGxpbmUoInt7LmZpbHRlci5ncm91cH19IiArICIgRmlsdGVyIik7CiAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgLy8gTmFtZSAgICAgIAogICAgICAgICAgICB2YXIgZGJLZXkgPSAibmFtZSI7CiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOwogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LmZpbHRlci5uYW1lLnBsYWNlaG9sZGVyfX0iKTsKICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LmZpbHRlci5uYW1lLnRpdGxlfX0iLCBpbnB1dCk7CiAgICAgICAgICAgIC8vIERlc2NyaXB0aW9uCiAgICAgICAgICAgIHZhciBkYktleSA9ICJkZXNjcmlwdGlvbiI7CiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOwogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LmZpbHRlci5kZXNjcmlwdGlvbi5wbGFjZWhvbGRlcn19Iik7CiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5maWx0ZXIuZGVzY3JpcHRpb24udGl0bGV9fSIsIGlucHV0KTsKICAgICAgICAgICAgLy8gVHlwZQogICAgICAgICAgICB2YXIgZGJLZXkgPSAidHlwZSI7CiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImhpZGRlbiIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7CiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCIiLCBpbnB1dCk7CiAgICAgICAgICAgIHZhciBmaWx0ZXJUeXBlID0gZGF0YVtkYktleV07CiAgICAgICAgICAgIHN3aXRjaCAoZmlsdGVyVHlwZSkgewogICAgICAgICAgICAgICAgY2FzZSAiY3VzdG9tLWZpbHRlciI6CiAgICAgICAgICAgICAgICAgICAgLy8gQ2FzZSBzZW5zaXRpdmUKICAgICAgICAgICAgICAgICAgICB2YXIgZGJLZXkgPSAiY2FzZVNlbnNpdGl2ZSI7CiAgICAgICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChkYktleSk7CiAgICAgICAgICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGFbZGJLZXldOwogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5maWx0ZXIuY2FzZVNlbnNpdGl2ZS50aXRsZX19IiwgaW5wdXQpOwogICAgICAgICAgICAgICAgICAgIC8vIEZpbHRlciBSdWxlIChDdXN0b20pCiAgICAgICAgICAgICAgICAgICAgdmFyIGRiS2V5ID0gImZpbHRlciI7CiAgICAgICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7CiAgICAgICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5maWx0ZXIuZmlsdGVyUnVsZS5wbGFjZWhvbGRlcn19Iik7CiAgICAgICAgICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LmZpbHRlci5maWx0ZXJSdWxlLnRpdGxlfX0iLCBpbnB1dCk7CiAgICAgICAgICAgICAgICAgICAgLy8gU3RhcnRpbmcgQ2hhbm5lbCBOdW1iZXIgTWFwcGluZwogICAgICAgICAgICAgICAgICAgIHZhciBkYktleSA9ICJzdGFydGluZ0NoYW5uZWwiOwogICAgICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOwogICAgICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3suZmlsdGVyLnN0YXJ0aW5nQ2hhbm5lbC5wbGFjZWhvbGRlcn19Iik7CiAgICAgICAgICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LmZpbHRlci5zdGFydGluZ0NoYW5uZWwudGl0bGV9fSIsIGlucHV0KTsKICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgIGNhc2UgImdyb3VwLXRpdGxlIjoKICAgICAgICAgICAgICAgICAgICAvL2FsZXJ0KGRiS2V5ICsgIiAiICsgZmlsdGVyVHlwZSkKICAgICAgICAgICAgICAgICAgICAvLyBGaWx0ZXIgYmFzZWQgb24gdGhlIGdyb3VwcyBpbiB0aGUgTTNVCiAgICAgICAgICAgICAgICAgICAgdmFyIGRiS2V5ID0gImZpbHRlciI7CiAgICAgICAgICAgICAgICAgICAgdmFyIGdyb3Vwc00zVSA9IGdldExvY2FsRGF0YSgibTN1R3JvdXBzIiwgIiIpOwogICAgICAgICAgICAgICAgICAgIHZhciB0ZXh0ID0gZ3JvdXBzTTNVWyJ0ZXh0Il07CiAgICAgICAgICAgICAgICAgICAgdmFyIHZhbHVlcyA9IGdyb3Vwc00zVVsidmFsdWUiXTsKICAgICAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCBkYXRhW2RiS2V5XSwgZGJLZXkpOwogICAgICAgICAgICAgICAgICAgIHNlbGVjdC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7CiAgICAgICAgICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LmZpbHRlci5maWx0ZXJHcm91cC50aXRsZX19Iiwgc2VsZWN0KTsKICAgICAgICAgICAgICAgICAgICBjb250ZW50LmRlc2NyaXB0aW9uKCJ7ey5maWx0ZXIuZmlsdGVyR3JvdXAuZGVzY3JpcHRpb259fSIpOwogICAgICAgICAgICAgICAgICAgIC8vIENhc2Ugc2Vuc2V0aXZlCiAgICAgICAgICAgICAgICAgICAgdmFyIGRiS2V5ID0gImNhc2VTZW5zaXRpdmUiOwogICAgICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goZGJLZXkpOwogICAgICAgICAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhW2RiS2V5XTsKICAgICAgICAgICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3suZmlsdGVyLmNhc2VTZW5zaXRpdmUudGl0bGV9fSIsIGlucHV0KTsKICAgICAgICAgICAgICAgICAgICB2YXIgZGJLZXkgPSAiaW5jbHVkZSI7CiAgICAgICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7CiAgICAgICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5maWx0ZXIuaW5jbHVkZS5wbGFjZWhvbGRlcn19Iik7CiAgICAgICAgICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LmZpbHRlci5pbmNsdWRlLnRpdGxlfX0iLCBpbnB1dCk7CiAgICAgICAgICAgICAgICAgICAgY29udGVudC5kZXNjcmlwdGlvbigie3suZmlsdGVyLmluY2x1ZGUuZGVzY3JpcHRpb259fSIpOwogICAgICAgICAgICAgICAgICAgIHZhciBkYktleSA9ICJleGNsdWRlIjsKICAgICAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsKICAgICAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LmZpbHRlci5leGNsdWRlLnBsYWNlaG9sZGVyfX0iKTsKICAgICAgICAgICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3suZmlsdGVyLmV4Y2x1ZGUudGl0bGV9fSIsIGlucHV0KTsKICAgICAgICAgICAgICAgICAgICBjb250ZW50LmRlc2NyaXB0aW9uKCJ7ey5maWx0ZXIuZXhjbHVkZS5kZXNjcmlwdGlvbn19Iik7CiAgICAgICAgICAgICAgICAgICAgLy8gUHJlc2VydmUgTTNVIFBsYXlsaXN0IENoYW5uZWwgTWFwcGluZwogICAgICAgICAgICAgICAgICAgIHZhciBkYktleSA9ICJwcmVzZXJ2ZU1hcHBpbmciOwogICAgICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goZGJLZXkpOwogICAgICAgICAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhW2RiS2V5XTsKICAgICAgICAgICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3suZmlsdGVyLnByZXNlcnZlTWFwcGluZy50aXRsZX19IiwgaW5wdXQpOwogICAgICAgICAgICAgICAgICAgIC8vIFN0YXJ0aW5nIENoYW5uZWwgTnVtYmVyIE1hcHBpbmcKICAgICAgICAgICAgICAgICAgICB2YXIgZGJLZXkgPSAic3RhcnRpbmdDaGFubmVsIjsKICAgICAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsKICAgICAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LmZpbHRlci5zdGFydGluZ0NoYW5uZWwucGxhY2Vob2xkZXJ9fSIpOwogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5maWx0ZXIuc3RhcnRpbmdDaGFubmVsLnRpdGxlfX0iLCBpbnB1dCk7CiAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICB9CiAgICAgICAgICAgIC8vIEludGVyYWN0aW9uCiAgICAgICAgICAgIGNvbnRlbnQuY3JlYXRlSW50ZXJhY3Rpb24oKTsKICAgICAgICAgICAgLy8gRGVsZXRlCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJkZWxldGUiLCAie3suYnV0dG9uLmRlbGV0ZX19Iik7CiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBzYXZlUG9wdXBEYXRhKCJmaWx0ZXIiLCAiJyArIGlkICsgJyIsIHRydWUsIDApJyk7CiAgICAgICAgICAgIGlucHV0LmNsYXNzTmFtZSA9ICJkZWxldGUiOwogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsKICAgICAgICAgICAgLy8gQWJvcnQKICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImNhbmNlbCIsICJ7ey5idXR0b24uY2FuY2VsfX0iKTsKICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IHNob3dFbGVtZW50KCJwb3B1cCIsIGZhbHNlKTsnKTsKICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7CiAgICAgICAgICAgIC8vIFNhdmUKICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgInNhdmUiLCAie3suYnV0dG9uLnNhdmV9fSIpOwogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogc2F2ZVBvcHVwRGF0YSgiZmlsdGVyIiwgIicgKyBpZCArICciLCBmYWxzZSwgMCknKTsKICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgIGNhc2UgInhtbHR2IjoKICAgICAgICAgICAgY29udGVudC5jcmVhdGVIZWFkbGluZShkYXRhVHlwZSk7CiAgICAgICAgICAgIC8vIE5hbWUKICAgICAgICAgICAgdmFyIGRiS2V5ID0gIm5hbWUiOwogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsKICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey54bWx0di5uYW1lLnBsYWNlaG9sZGVyfX0iKTsKICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnhtbHR2Lm5hbWUudGl0bGV9fSIsIGlucHV0KTsKICAgICAgICAgICAgLy8gRGVzY3JpcHRpb24KICAgICAgICAgICAgdmFyIGRiS2V5ID0gImRlc2NyaXB0aW9uIjsKICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7CiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3sueG1sdHYuZGVzY3JpcHRpb24ucGxhY2Vob2xkZXJ9fSIpOwogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sueG1sdHYuZGVzY3JpcHRpb24udGl0bGV9fSIsIGlucHV0KTsKICAgICAgICAgICAgLy8gVVJMCiAgICAgICAgICAgIHZhciBkYktleSA9ICJmaWxlLnNvdXJjZSI7CiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOwogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnhtbHR2LmZpbGVYTUxUVi5wbGFjZWhvbGRlcn19Iik7CiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey54bWx0di5maWxlWE1MVFYudGl0bGV9fSIsIGlucHV0KTsKICAgICAgICAgICAgLy8gSW50ZXJhY3Rpb24KICAgICAgICAgICAgY29udGVudC5jcmVhdGVJbnRlcmFjdGlvbigpOwogICAgICAgICAgICAvLyBEZWxldGUKICAgICAgICAgICAgaWYgKGRhdGFbImlkLnByb3ZpZGVyIl0gIT0gIi0iKSB7CiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAiZGVsZXRlIiwgInt7LmJ1dHRvbi5kZWxldGV9fSIpOwogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoInhtbHR2IiwgIicgKyBpZCArICciLCB0cnVlLCAwKScpOwogICAgICAgICAgICAgICAgaW5wdXQuY2xhc3NOYW1lID0gImRlbGV0ZSI7CiAgICAgICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsKICAgICAgICAgICAgfQogICAgICAgICAgICAvLyBBYm9ydAogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAiY2FuY2VsIiwgInt7LmJ1dHRvbi5jYW5jZWx9fSIpOwogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogc2hvd0VsZW1lbnQoInBvcHVwIiwgZmFsc2UpOycpOwogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsKICAgICAgICAgICAgLy8gVXBkYXRlCiAgICAgICAgICAgIGlmIChkYXRhWyJpZC5wcm92aWRlciJdICE9ICItIikgewogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgInVwZGF0ZSIsICJ7ey5idXR0b24udXBkYXRlfX0iKTsKICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBzYXZlUG9wdXBEYXRhKCJ4bWx0diIsICInICsgaWQgKyAnIiwgZmFsc2UsIDEpJyk7CiAgICAgICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsKICAgICAgICAgICAgfQogICAgICAgICAgICAvLyBTYXZlCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJzYXZlIiwgInt7LmJ1dHRvbi5zYXZlfX0iKTsKICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoInhtbHR2IiwgIicgKyBpZCArICciLCBmYWxzZSwgMCknKTsKICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgIGNhc2UgInVzZXJzIjoKICAgICAgICAgICAgY29udGVudC5jcmVhdGVIZWFkbGluZSgie3subWFpbk1lbnUuaXRlbS51c2Vyc319Iik7CiAgICAgICAgICAgIC8vIFVzZXIgbmFtZQogICAgICAgICAgICB2YXIgZGJLZXkgPSAidXNlcm5hbWUiOwogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsKICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey51c2Vycy51c2VybmFtZS5wbGFjZWhvbGRlcn19Iik7CiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey51c2Vycy51c2VybmFtZS50aXRsZX19IiwgaW5wdXQpOwogICAgICAgICAgICAvLyBOZXcgUGFyc3N3b3JkCiAgICAgICAgICAgIHZhciBkYktleSA9ICJwYXNzd29yZCI7CiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInBhc3N3b3JkIiwgZGJLZXksICIiKTsKICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey51c2Vycy5wYXNzd29yZC5wbGFjZWhvbGRlcn19Iik7CiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey51c2Vycy5wYXNzd29yZC50aXRsZX19IiwgaW5wdXQpOwogICAgICAgICAgICAvLyBDb25maXJtYXRpb24KICAgICAgICAgICAgdmFyIGRiS2V5ID0gImNvbmZpcm0iOwogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJwYXNzd29yZCIsIGRiS2V5LCAiIik7CiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3sudXNlcnMuY29uZmlybS5wbGFjZWhvbGRlcn19Iik7CiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey51c2Vycy5jb25maXJtLnRpdGxlfX0iLCBpbnB1dCk7CiAgICAgICAgICAgIC8vIEF1dGhlbnRpY2F0aW9uIFdFQgogICAgICAgICAgICB2YXIgZGJLZXkgPSAiYXV0aGVudGljYXRpb24ud2ViIjsKICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChkYktleSk7CiAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhW2RiS2V5XTsKICAgICAgICAgICAgaWYgKGRhdGFbImRlZmF1bHRVc2VyIl0gPT0gdHJ1ZSkgewogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgImphdmFzY3JpcHQ6IHJldHVybiBmYWxzZSIpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey51c2Vycy53ZWIudGl0bGV9fSIsIGlucHV0KTsKICAgICAgICAgICAgLy8gQXV0aGVudGljYXRpb24gUE1TCiAgICAgICAgICAgIHZhciBkYktleSA9ICJhdXRoZW50aWNhdGlvbi5wbXMiOwogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KGRiS2V5KTsKICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGFbZGJLZXldOwogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sudXNlcnMucG1zLnRpdGxlfX0iLCBpbnB1dCk7CiAgICAgICAgICAgIC8vIEF1dGhlbnRpY2F0aW9uIE0zVQogICAgICAgICAgICB2YXIgZGJLZXkgPSAiYXV0aGVudGljYXRpb24ubTN1IjsKICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChkYktleSk7CiAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhW2RiS2V5XTsKICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnVzZXJzLm0zdS50aXRsZX19IiwgaW5wdXQpOwogICAgICAgICAgICAvLyBBdXRoZW50aWNhdGlvbiBYTUwKICAgICAgICAgICAgdmFyIGRiS2V5ID0gImF1dGhlbnRpY2F0aW9uLnhtbCI7CiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goZGJLZXkpOwogICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YVtkYktleV07CiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey51c2Vycy54bWwudGl0bGV9fSIsIGlucHV0KTsKICAgICAgICAgICAgLy8gQXV0aGVudGljYXRpb24gQVBJCiAgICAgICAgICAgIHZhciBkYktleSA9ICJhdXRoZW50aWNhdGlvbi5hcGkiOwogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KGRiS2V5KTsKICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGFbZGJLZXldOwogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sudXNlcnMuYXBpLnRpdGxlfX0iLCBpbnB1dCk7CiAgICAgICAgICAgIC8vIEludGVyYWN0aW9uCiAgICAgICAgICAgIGNvbnRlbnQuY3JlYXRlSW50ZXJhY3Rpb24oKTsKICAgICAgICAgICAgLy8gRGVsZXRlCiAgICAgICAgICAgIGlmIChkYXRhWyJkZWZhdWx0VXNlciJdICE9IHRydWUgJiYgaWQgIT0gIi0iKSB7CiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAiZGVsZXRlIiwgInt7LmJ1dHRvbi5kZWxldGV9fSIpOwogICAgICAgICAgICAgICAgaW5wdXQuY2xhc3NOYW1lID0gImRlbGV0ZSI7CiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogc2F2ZVBvcHVwRGF0YSgiJyArIGRhdGFUeXBlICsgJyIsICInICsgaWQgKyAnIiwgdHJ1ZSwgMCknKTsKICAgICAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIC8vIEFib3J0CiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJjYW5jZWwiLCAie3suYnV0dG9uLmNhbmNlbH19Iik7CiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBzaG93RWxlbWVudCgicG9wdXAiLCBmYWxzZSk7Jyk7CiAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOwogICAgICAgICAgICAvLyBTYXZlCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJzYXZlIiwgInt7LmJ1dHRvbi5zYXZlfX0iKTsKICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoIicgKyBkYXRhVHlwZSArICciLCAiJyArIGlkICsgJyIsICJmYWxzZSIpOycpOwogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgY2FzZSAibWFwcGluZyI6CiAgICAgICAgICAgIGNvbnRlbnQuY3JlYXRlSGVhZGxpbmUoInt7Lm1haW5NZW51Lml0ZW0ubWFwcGluZ319Iik7CiAgICAgICAgICAgIC8vIEFjdGl2ZQogICAgICAgICAgICB2YXIgZGJLZXkgPSAieC1hY3RpdmUiOwogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KGRiS2V5KTsKICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGFbZGJLZXldOwogICAgICAgICAgICBpbnB1dC5pZCA9ICJhY3RpdmUiOwogICAgICAgICAgICAvL2lucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRvZ2dsZUNoYW5uZWxTdGF0dXMoJyIgKyBpZCArICInLCB0aGlzKSIpOwogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3subWFwcGluZy5hY3RpdmUudGl0bGV9fSIsIGlucHV0KTsKICAgICAgICAgICAgLy8gQ2hhbm5lbCBuYW1lCiAgICAgICAgICAgIHZhciBkYktleSA9ICJ4LW5hbWUiOwogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsKICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOwogICAgICAgICAgICBpZiAoQlVMS19FRElUID09IHRydWUpIHsKICAgICAgICAgICAgICAgIGlucHV0LnN0eWxlLmJvcmRlciA9ICJzb2xpZCAxcHggcmVkIjsKICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicmVhZG9ubHkiLCAidHJ1ZSIpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5tYXBwaW5nLmNoYW5uZWxOYW1lLnRpdGxlfX0iLCBpbnB1dCk7CiAgICAgICAgICAgIGNvbnRlbnQuZGVzY3JpcHRpb24oZGF0YVsibmFtZSJdKTsKICAgICAgICAgICAgLy8gRGVzY3JpcHRpb24KICAgICAgICAgICAgdmFyIGRiS2V5ID0gIngtZGVzY3JpcHRpb24iOwogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsKICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5tYXBwaW5nLmRlc2NyaXB0aW9uLnBsYWNlaG9sZGVyfX0iKTsKICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOwogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3subWFwcGluZy5kZXNjcmlwdGlvbi50aXRsZX19IiwgaW5wdXQpOwogICAgICAgICAgICAvLyBVcGRhdGUgdGhlIGNoYW5uZWwgeC1uYW1lCiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCJfdXVpZC5rZXkiKSkgewogICAgICAgICAgICAgICAgaWYgKGRhdGFbIl91dWlkLmtleSJdICE9ICIiKSB7CiAgICAgICAgICAgICAgICAgICAgdmFyIGRiS2V5ID0gIngtdXBkYXRlLWNoYW5uZWwtbmFtZSI7CiAgICAgICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChkYktleSk7CiAgICAgICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOwogICAgICAgICAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhW2RiS2V5XTsKICAgICAgICAgICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3subWFwcGluZy51cGRhdGVDaGFubmVsTmFtZS50aXRsZX19IiwgaW5wdXQpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICAgIC8vIENoYW5uZWwgbmFtZSByZWdleCBmb3IgdXBkYXRpbmcgdGhlIGNoYW5uZWwgbmFtZQogICAgICAgICAgICB2YXIgZGJLZXkgPSAidXBkYXRlLWNoYW5uZWwtbmFtZS1yZWdleCI7CiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOwogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7Lm1hcHBpbmcudXBkYXRlQ2hhbm5lbE5hbWVSZWdleC5wbGFjZWhvbGRlcn19Iik7CiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsKICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7Lm1hcHBpbmcudXBkYXRlQ2hhbm5lbE5hbWVSZWdleC50aXRsZX19IiwgaW5wdXQpOwogICAgICAgICAgICBjb250ZW50LmRlc2NyaXB0aW9uKCJ7ey5tYXBwaW5nLnVwZGF0ZUNoYW5uZWxOYW1lUmVnZXguZGVzY3JpcHRpb259fSIpOwogICAgICAgICAgICAvLyBDaGFubmVsIGdyb3VwIHJlZ2V4IGZvciB1cGRhdGluZyB0aGUgY2hhbm5lbCBuYW1lCiAgICAgICAgICAgIHZhciBkYktleSA9ICJ1cGRhdGUtY2hhbm5lbC1uYW1lLWJ5LWdyb3VwLXJlZ2V4IjsKICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7CiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3subWFwcGluZy51cGRhdGVDaGFubmVsTmFtZUJ5R3JvdXBSZWdleC5wbGFjZWhvbGRlcn19Iik7CiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsKICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7Lm1hcHBpbmcudXBkYXRlQ2hhbm5lbE5hbWVCeUdyb3VwUmVnZXgudGl0bGV9fSIsIGlucHV0KTsKICAgICAgICAgICAgY29udGVudC5kZXNjcmlwdGlvbigie3subWFwcGluZy51cGRhdGVDaGFubmVsTmFtZUJ5R3JvdXBSZWdleC5kZXNjcmlwdGlvbn19Iik7CiAgICAgICAgICAgIC8vIExvZ28gVVJMIChDaGFubmVsKSAKICAgICAgICAgICAgdmFyIGRiS2V5ID0gInR2Zy1sb2dvIjsKICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7CiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsKICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJpZCIsICJjaGFubmVsLWljb24iKTsKICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7Lm1hcHBpbmcuY2hhbm5lbExvZ28udGl0bGV9fSIsIGlucHV0KTsKICAgICAgICAgICAgLy8gQ2hhbm5lbCBsb2dvIHVwZGF0ZQogICAgICAgICAgICB2YXIgZGJLZXkgPSAieC11cGRhdGUtY2hhbm5lbC1pY29uIjsKICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChkYktleSk7CiAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhW2RiS2V5XTsKICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJpZCIsICJ1cGRhdGUtaWNvbiIpOwogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnOyBjaGFuZ2VDaGFubmVsTG9nbygnIiArIGlkICsgIicpOyIpOwogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3subWFwcGluZy51cGRhdGVDaGFubmVsTG9nby50aXRsZX19IiwgaW5wdXQpOwogICAgICAgICAgICAvLyBFeHBhbmQgRVBHIGNhdGVnb3J5CiAgICAgICAgICAgIHZhciBkYktleSA9ICJ4LWNhdGVnb3J5IjsKICAgICAgICAgICAgdmFyIHRleHQgPSBbIi0iLCAiS2lkcyAoRW1ieSBvbmx5KSIsICJOZXdzIiwgIk1vdmllIiwgIlNlcmllcyIsICJTcG9ydHMiXTsKICAgICAgICAgICAgdmFyIHZhbHVlcyA9IFsiIiwgIktpZHMiLCAiTmV3cyIsICJNb3ZpZSIsICJTZXJpZXMiLCAiU3BvcnRzIl07CiAgICAgICAgICAgIHZhciBzZWxlY3QgPSBjb250ZW50LmNyZWF0ZVNlbGVjdCh0ZXh0LCB2YWx1ZXMsIGRhdGFbZGJLZXldLCBkYktleSk7CiAgICAgICAgICAgIHNlbGVjdC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7CiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5tYXBwaW5nLmVwZ0NhdGVnb3J5LnRpdGxlfX0iLCBzZWxlY3QpOwogICAgICAgICAgICAvLyBNM1UgZ3JvdXAgdGl0bGUKICAgICAgICAgICAgdmFyIGRiS2V5ID0gIngtZ3JvdXAtdGl0bGUiOwogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsKICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOwogICAgICAgICAgICBpbnB1dC5kYXRhc2V0Lm9sZFZhbHVlID0gZGF0YVtkYktleV07CiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5tYXBwaW5nLm0zdUdyb3VwVGl0bGUudGl0bGV9fSIsIGlucHV0KTsKICAgICAgICAgICAgaWYgKGRhdGFbImdyb3VwLXRpdGxlIl0gIT0gdW5kZWZpbmVkKSB7CiAgICAgICAgICAgICAgICBjb250ZW50LmRlc2NyaXB0aW9uKGRhdGFbImdyb3VwLXRpdGxlIl0pOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGlmIChkYXRhWyJ4LXVwZGF0ZS1jaGFubmVsLWdyb3VwIl0gPT0gdHJ1ZSkgewogICAgICAgICAgICAgICAgaW5wdXQuZGlzYWJsZWQgPSB0cnVlOwogICAgICAgICAgICB9CiAgICAgICAgICAgIC8vIFVwZGF0ZSBjaGFubmVsIGdyb3VwIGNoZWNrYm94CiAgICAgICAgICAgIHZhciBkYktleSA9ICJ4LXVwZGF0ZS1jaGFubmVsLWdyb3VwIjsKICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChkYktleSk7CiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdG9nZ2xlR3JvdXBVcGRhdGVDYignIiArIGlkICsgIicsIHRoaXMpOyIpOwogICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YVtkYktleV07CiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5tYXBwaW5nLnVwZGF0ZUNoYW5uZWxHcm91cC50aXRsZX19IiwgaW5wdXQpOwogICAgICAgICAgICBjb250ZW50LmRlc2NyaXB0aW9uKCJ7ey5tYXBwaW5nLnVwZGF0ZUNoYW5uZWxHcm91cC5kZXNjcmlwdGlvbn19Iik7CiAgICAgICAgICAgIC8vIFhNTFRWIGZpbGUKICAgICAgICAgICAgdmFyIGRiS2V5ID0gJ3gteG1sdHYtZmlsZSc7CiAgICAgICAgICAgIGNvbnN0IHhtbFR2RmlsZSA9IGRhdGFbZGJLZXldOwogICAgICAgICAgICB2YXIgeG1sVHYgPSBuZXcgWE1MVFZGaWxlKCk7CiAgICAgICAgICAgIGNvbnN0IHhtbFR2RmlsZVNlbGVjdCA9IHhtbFR2LmdldEZpbGVzKGRhdGFbZGJLZXldKTsKICAgICAgICAgICAgeG1sVHZGaWxlU2VsZWN0LnNldEF0dHJpYnV0ZSgnbmFtZScsIGRiS2V5KTsKICAgICAgICAgICAgeG1sVHZGaWxlU2VsZWN0LnNldEF0dHJpYnV0ZSgnaWQnLCAncG9wdXAteG1sdHYnKTsKICAgICAgICAgICAgeG1sVHZGaWxlU2VsZWN0LnNldEF0dHJpYnV0ZSgnb25jaGFuZ2UnLCBgamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCc7IHNldFhtbHR2Q2hhbm5lbCgnJHtpZH0nLCB0aGlzKTtgKTsKICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coJ3t7Lm1hcHBpbmcueG1sdHZGaWxlLnRpdGxlfX0nLCB4bWxUdkZpbGVTZWxlY3QpOwogICAgICAgICAgICAvLyBYTUxUViBNYXBwaW5nCiAgICAgICAgICAgIHZhciBkYktleSA9ICd4LW1hcHBpbmcnOwogICAgICAgICAgICB2YXIgeG1sVHYgPSBuZXcgWE1MVFZGaWxlKCk7CiAgICAgICAgICAgIGNvbnN0IGN1cnJlbnRYbWxUdklkID0gZGF0YVtkYktleV07CiAgICAgICAgICAgIGNvbnN0IFt4bWxUdklkQ29udGFpbmVyLCB4bWxUdklkSW5wdXQsIHhtbFR2SWREYXRhbGlzdF0gPSB4bWxUdi5uZXdYbWxUdklkUGlja2VyKHhtbFR2RmlsZSwgY3VycmVudFhtbFR2SWQpOwogICAgICAgICAgICB4bWxUdklkQ29udGFpbmVyLnNldEF0dHJpYnV0ZSgnaWQnLCAneG1sdHYtaWQtcGlja2VyLWNvbnRhaW5lcicpOwogICAgICAgICAgICB4bWxUdklkSW5wdXQuc2V0QXR0cmlidXRlKCdsaXN0JywgJ3htbHR2LWlkLXBpY2tlci1kYXRhbGlzdCcpOwogICAgICAgICAgICB4bWxUdklkSW5wdXQuc2V0QXR0cmlidXRlKCduYW1lJywgJ3gtbWFwcGluZycpOyAvLyBTaG91bGQgc3RheSB4LW1hcHBpbmcgYXMgaXQgd2lsbCBiZSB1c2VkIGluIGRvbmVQb3B1cERhdGEgdG8gbWFrZSBhIHNlcnZlciByZXF1ZXN0CiAgICAgICAgICAgIHhtbFR2SWRJbnB1dC5zZXRBdHRyaWJ1dGUoJ2lkJywgJ3htbHR2LWlkLXBpY2tlci1pbnB1dCcpOwogICAgICAgICAgICB4bWxUdklkSW5wdXQuc2V0QXR0cmlidXRlKCdvbmNoYW5nZScsIGBqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJzsgY2hlY2tYbWx0dkNoYW5uZWwoJyR7aWR9JywgdGhpcy52YWx1ZSwgJyR7eG1sVHZGaWxlfScpO2ApOwogICAgICAgICAgICB4bWxUdklkRGF0YWxpc3Quc2V0QXR0cmlidXRlKCdpZCcsICd4bWx0di1pZC1waWNrZXItZGF0YWxpc3QnKTsKICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coJ3t7Lm1hcHBpbmcueG1sdHZDaGFubmVsLnRpdGxlfX0nLCB4bWxUdklkQ29udGFpbmVyKTsKICAgICAgICAgICAgLy8gVGltZXNoaWZ0CiAgICAgICAgICAgIHZhciBkYktleSA9ICJ4LXRpbWVzaGlmdCI7CiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOwogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7CiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3subWFwcGluZy50aW1lc2hpZnQucGxhY2Vob2xkZXJ9fSIpOwogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoImlkIiwgInRpbWVzaGlmdCIpOwogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3subWFwcGluZy50aW1lc2hpZnQudGl0bGV9fSIsIGlucHV0KTsKICAgICAgICAgICAgLy8gSW50ZXJhY3Rpb24KICAgICAgICAgICAgY29udGVudC5jcmVhdGVJbnRlcmFjdGlvbigpOwogICAgICAgICAgICAvLyBVcGxvYWQgbG9nbwogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAiY2FuY2VsIiwgInt7LmJ1dHRvbi51cGxvYWRMb2dvfX0iKTsKICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IHVwbG9hZExvZ28oKTsnKTsKICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7CiAgICAgICAgICAgIC8vIEFib3J0CiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJjYW5jZWwiLCAie3suYnV0dG9uLmNhbmNlbH19Iik7CiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBzaG93RWxlbWVudCgicG9wdXAiLCBmYWxzZSk7Jyk7CiAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOwogICAgICAgICAgICAvLyBGaW5pc2hlZAogICAgICAgICAgICB2YXIgaWRzID0gW107CiAgICAgICAgICAgIGlkcyA9IGdldEFsbFNlbGVjdGVkQ2hhbm5lbHMoKTsKICAgICAgICAgICAgaWYgKGlkcy5sZW5ndGggPT0gMCkgewogICAgICAgICAgICAgICAgaWRzLnB1c2goaWQpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJzYXZlIiwgInt7LmJ1dHRvbi5kb25lfX0iKTsKICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IGRvbmVQb3B1cERhdGEoIicgKyBkYXRhVHlwZSArICciLCAiJyArIGlkcyArICciLCAiZmFsc2UiKTsnKTsKICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgIGJyZWFrOwogICAgfQogICAgc2hvd1BvcFVwRWxlbWVudCgncG9wdXAtY3VzdG9tJyk7Cn0KY2xhc3MgWE1MVFZGaWxlIHsKICAgIGdldEZpbGVzKHNldCkgewogICAgICAgIGxldCBmaWxlSURzID0gZ2V0T3duT2JqUHJvcHMoU0VSVkVSWyJ4ZXBnIl1bInhtbHR2TWFwIl0pOwogICAgICAgIGxldCB2YWx1ZXMgPSBuZXcgQXJyYXkoIi0iKTsKICAgICAgICBsZXQgdGV4dCA9IG5ldyBBcnJheSgiLSIpOwogICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgZmlsZUlEcy5sZW5ndGg7IGkrKykgewogICAgICAgICAgICBpZiAoZmlsZUlEc1tpXSAhPSAieFRlVmUgRHVtbXkiKSB7CiAgICAgICAgICAgICAgICB2YWx1ZXMucHVzaChnZXRWYWx1ZUZyb21Qcm92aWRlckZpbGUoZmlsZUlEc1tpXSwgInhtbHR2IiwgImZpbGUueHRldmUiKSk7CiAgICAgICAgICAgICAgICB0ZXh0LnB1c2goZ2V0VmFsdWVGcm9tUHJvdmlkZXJGaWxlKGZpbGVJRHNbaV0sICJ4bWx0diIsICJuYW1lIikpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgdmFsdWVzLnB1c2goZmlsZUlEc1tpXSk7CiAgICAgICAgICAgICAgICB0ZXh0LnB1c2goZmlsZUlEc1tpXSk7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgbGV0IHNlbGVjdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlNFTEVDVCIpOwogICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGV4dC5sZW5ndGg7IGkrKykgewogICAgICAgICAgICB2YXIgb3B0aW9uID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiT1BUSU9OIik7CiAgICAgICAgICAgIG9wdGlvbi5zZXRBdHRyaWJ1dGUoInZhbHVlIiwgdmFsdWVzW2ldKTsKICAgICAgICAgICAgb3B0aW9uLmlubmVyVGV4dCA9IHRleHRbaV07CiAgICAgICAgICAgIHNlbGVjdC5hcHBlbmRDaGlsZChvcHRpb24pOwogICAgICAgIH0KICAgICAgICBpZiAoc2V0ICE9ICIiKSB7CiAgICAgICAgICAgIHNlbGVjdC52YWx1ZSA9IHNldDsKICAgICAgICB9CiAgICAgICAgcmV0dXJuIHNlbGVjdDsKICAgIH0KICAgIC8qKgogICAgICogQHBhcmFtIHhtbFR2RmlsZSBYTUwgZmlsZSBwYXRoIHRvIGdldCBFUEcgZnJvbS4KICAgICAqIEBwYXJhbSBjdXJyZW50WG1sVHZJZCBDdXJyZW50IFhNTFRWIElEIHRvIHNldCBpbml0aWFsIGlucHV0IHZhbHVlIHRvLgogICAgICogQHJldHVybnMgQXJyYXkgb2YsIHNlcXVlbnRpYWxseToKICAgICAqIDEpIENvbnRhaW5lciBvZiB0aGUgcGlja2VyLgogICAgICogMikgSW5wdXQgZmllbGQgdG8gdHlwZSBhdCBhbmQgZ2V0IGNob2ljZSBmcm9tLgogICAgICogMykgRGF0YWxpc3QgY29udGFpbmluZyBldmVyeSBvcHRpb24uCiAgICAgKi8KICAgIG5ld1htbFR2SWRQaWNrZXIoeG1sVHZGaWxlLCBjdXJyZW50WG1sVHZJZCkgewogICAgICAgIGNvbnN0IGNvbnRhaW5lciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOwogICAgICAgIGNvbnN0IGlucHV0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnaW5wdXQnKTsKICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoJ3R5cGUnLCAndGV4dCcpOwogICAgICAgIC8vIEluaXRpYWxseSwgc2V0IHZhbHVlIHRvICctJyBpZiBpbnB1dCBpcyBlbXB0eQogICAgICAgIGlucHV0LnZhbHVlID0gKGN1cnJlbnRYbWxUdklkKSA/IGN1cnJlbnRYbWxUdklkIDogJy0nOwogICAgICAgIC8vIFdoZW4gaW5wdXQgaXMgZm9jdXNlZCwgcmVtb3ZlICctJyBmcm9tIGl0CiAgICAgICAgaW5wdXQuYWRkRXZlbnRMaXN0ZW5lcignZm9jdXMnLCAoZXZ0KSA9PiB7CiAgICAgICAgICAgIGNvbnN0IHRhcmdldCA9IGV2dC50YXJnZXQ7CiAgICAgICAgICAgIHRhcmdldC52YWx1ZSA9ICh0YXJnZXQudmFsdWUgPT09ICctJykgPyAnJyA6IHRhcmdldC52YWx1ZTsKICAgICAgICB9KTsKICAgICAgICAvLyBXaGVuIGlucHV0IGxvc2UgZm9jdXMgb3IgdGFrZSBhIHZhbHVlLCBpZiBpdCdzIGVtcHR5LCBzZXQgdmFsdWUgdG8gJy0nCiAgICAgICAgaW5wdXQuYWRkRXZlbnRMaXN0ZW5lcignYmx1cicsIHNldEZhbGxiYWNrVmFsdWUpOwogICAgICAgIGlucHV0LmFkZEV2ZW50TGlzdGVuZXIoJ2NoYW5nZScsIHNldEZhbGxiYWNrVmFsdWUpOwogICAgICAgIGZ1bmN0aW9uIHNldEZhbGxiYWNrVmFsdWUoZXZ0KSB7CiAgICAgICAgICAgIGNvbnN0IHRhcmdldCA9IGV2dC50YXJnZXQ7CiAgICAgICAgICAgIHRhcmdldC52YWx1ZSA9ICh0YXJnZXQudmFsdWUpID8gdGFyZ2V0LnZhbHVlIDogJy0nOwogICAgICAgIH0KICAgICAgICBjb250YWluZXIuYXBwZW5kQ2hpbGQoaW5wdXQpOwogICAgICAgIGNvbnN0IGRhdGFsaXN0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGF0YWxpc3QnKTsKICAgICAgICBjb25zdCBvcHRpb24gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdvcHRpb24nKTsKICAgICAgICBvcHRpb24uc2V0QXR0cmlidXRlKCd2YWx1ZScsICctJyk7CiAgICAgICAgb3B0aW9uLmlubmVyVGV4dCA9ICctJzsKICAgICAgICBkYXRhbGlzdC5hcHBlbmRDaGlsZChvcHRpb24pOwogICAgICAgIGNvbnN0IGVwZyA9IFNFUlZFUlsneGVwZyddWyd4bWx0dk1hcCddW3htbFR2RmlsZV07CiAgICAgICAgaWYgKGVwZykgewogICAgICAgICAgICBjb25zdCBwcm9ncmFtSWRzID0gZ2V0T3duT2JqUHJvcHMoZXBnKTsKICAgICAgICAgICAgcHJvZ3JhbUlkcy5mb3JFYWNoKChwcm9ncmFtSWQpID0+IHsKICAgICAgICAgICAgICAgIGNvbnN0IHByb2dyYW0gPSBlcGdbcHJvZ3JhbUlkXTsKICAgICAgICAgICAgICAgIGlmIChwcm9ncmFtLmhhc093blByb3BlcnR5KCdkaXNwbGF5LW5hbWVzJykpIHsKICAgICAgICAgICAgICAgICAgICBwcm9ncmFtWydkaXNwbGF5LW5hbWVzJ10uZm9yRWFjaCgoZGlzcGxheU5hbWUpID0+IHsKICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgb3B0aW9uID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnb3B0aW9uJyk7CiAgICAgICAgICAgICAgICAgICAgICAgIG9wdGlvbi5zZXRBdHRyaWJ1dGUoJ3ZhbHVlJywgcHJvZ3JhbUlkKTsKICAgICAgICAgICAgICAgICAgICAgICAgb3B0aW9uLmlubmVyVGV4dCA9IGRpc3BsYXlOYW1lWydWYWx1ZSddOwogICAgICAgICAgICAgICAgICAgICAgICBkYXRhbGlzdC5hcHBlbmRDaGlsZChvcHRpb24pOwogICAgICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgY29uc3Qgb3B0aW9uID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnb3B0aW9uJyk7CiAgICAgICAgICAgICAgICAgICAgb3B0aW9uLnNldEF0dHJpYnV0ZSgndmFsdWUnLCBwcm9ncmFtSWQpOwogICAgICAgICAgICAgICAgICAgIG9wdGlvbi5pbm5lclRleHQgPSAnLSc7CiAgICAgICAgICAgICAgICAgICAgZGF0YWxpc3QuYXBwZW5kQ2hpbGQob3B0aW9uKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSk7CiAgICAgICAgfQogICAgICAgIGNvbnRhaW5lci5hcHBlbmRDaGlsZChkYXRhbGlzdCk7CiAgICAgICAgcmV0dXJuIFtjb250YWluZXIsIGlucHV0LCBkYXRhbGlzdF07CiAgICB9Cn0KZnVuY3Rpb24gZ2V0VmFsdWVGcm9tUHJvdmlkZXJGaWxlKGZpbGUsIGZpbGVUeXBlLCBrZXkpIHsKICAgIGlmIChmaWxlID09ICJ4VGVWZSBEdW1teSIpIHsKICAgICAgICByZXR1cm4gZmlsZTsKICAgIH0KICAgIGxldCBmaWxlSUQ7CiAgICBsZXQgaW5kaWNhdG9yID0gZmlsZS5jaGFyQXQoMCk7CiAgICBzd2l0Y2ggKGluZGljYXRvcikgewogICAgICAgIGNhc2UgIk0iOgogICAgICAgICAgICBmaWxlVHlwZSA9ICJtM3UiOwogICAgICAgICAgICBmaWxlSUQgPSBmaWxlOwogICAgICAgICAgICBicmVhazsKICAgICAgICBjYXNlICJIIjoKICAgICAgICAgICAgZmlsZVR5cGUgPSAiaGRociI7CiAgICAgICAgICAgIGZpbGVJRCA9IGZpbGU7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgIGNhc2UgIlgiOgogICAgICAgICAgICBmaWxlVHlwZSA9ICJ4bWx0diI7CiAgICAgICAgICAgIGZpbGVJRCA9IGZpbGUuc3Vic3RyaW5nKDAsIGZpbGUubGFzdEluZGV4T2YoJy4nKSk7CiAgICAgICAgICAgIGJyZWFrOwogICAgfQogICAgaWYgKFNFUlZFUlsic2V0dGluZ3MiXVsiZmlsZXMiXVtmaWxlVHlwZV0uaGFzT3duUHJvcGVydHkoZmlsZUlEKSA9PSB0cnVlKSB7CiAgICAgICAgdmFyIGRhdGEgPSBTRVJWRVJbInNldHRpbmdzIl1bImZpbGVzIl1bZmlsZVR5cGVdW2ZpbGVJRF07CiAgICAgICAgcmV0dXJuIGRhdGFba2V5XTsKICAgIH0KICAgIHJldHVybjsKfQpmdW5jdGlvbiBzZXRYbWx0dkNoYW5uZWwoZXBnTWFwSWQsIHhtbFR2RmlsZVNlbGVjdCkgewogICAgY29uc3QgeG1sVHYgPSBuZXcgWE1MVFZGaWxlKCk7CiAgICBjb25zdCBuZXdYbWxUdkZpbGUgPSB4bWxUdkZpbGVTZWxlY3QudmFsdWU7CiAgICAvLyBSZW1vdmUgb2xkIFhNTFRWIElEIHNlbGVjdGlvbiBib3gKICAgIGNvbnN0IHhtbFR2SWRQaWNrZXJQYXJlbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgneG1sdHYtaWQtcGlja2VyLWNvbnRhaW5lcicpLnBhcmVudEVsZW1lbnQ7CiAgICB4bWxUdklkUGlja2VyUGFyZW50LmlubmVySFRNTCA9ICcnOwogICAgLy8gQ3JlYXRlIG5ldyBYTUxUViBJRCBzZWxlY3Rpb24gYm94CiAgICBjb25zdCB0dmdJZCA9IFNFUlZFUlsneGVwZyddWydlcGdNYXBwaW5nJ11bZXBnTWFwSWRdWyd0dmctaWQnXTsKICAgIGNvbnN0IFt4bWxUdklkQ29udGFpbmVyLCB4bWxUdklkSW5wdXQsIHhtbFR2SWREYXRhbGlzdF0gPSB4bWxUdi5uZXdYbWxUdklkUGlja2VyKG5ld1htbFR2RmlsZSwgdHZnSWQpOwogICAgeG1sVHZJZENvbnRhaW5lci5zZXRBdHRyaWJ1dGUoJ2lkJywgJ3htbHR2LWlkLXBpY2tlci1jb250YWluZXInKTsKICAgIHhtbFR2SWRJbnB1dC5zZXRBdHRyaWJ1dGUoJ2xpc3QnLCAneG1sdHYtaWQtcGlja2VyLWRhdGFsaXN0Jyk7CiAgICB4bWxUdklkSW5wdXQuc2V0QXR0cmlidXRlKCduYW1lJywgJ3gtbWFwcGluZycpOyAvLyBTaG91bGQgc3RheSB4LW1hcHBpbmcgYXMgaXQgd2lsbCBiZSB1c2VkIGluIGRvbmVQb3B1cERhdGEgdG8gbWFrZSBhIHNlcnZlciByZXF1ZXN0CiAgICB4bWxUdklkSW5wdXQuc2V0QXR0cmlidXRlKCdpZCcsICd4bWx0di1pZC1waWNrZXItaW5wdXQnKTsKICAgIHhtbFR2SWRJbnB1dC5zZXRBdHRyaWJ1dGUoJ29uY2hhbmdlJywgYGphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnOyBjaGVja1htbHR2Q2hhbm5lbCgnJHtlcGdNYXBJZH0nLCB0aGlzLnZhbHVlLCAnJHtuZXdYbWxUdkZpbGV9Jyk7YCk7CiAgICB4bWxUdklkSW5wdXQuY2xhc3NMaXN0LmFkZCgnY2hhbmdlZCcpOwogICAgeG1sVHZJZERhdGFsaXN0LnNldEF0dHJpYnV0ZSgnaWQnLCAneG1sdHYtaWQtcGlja2VyLWRhdGFsaXN0Jyk7CiAgICAvLyBBZGQgbmV3IFhNTFRWIElEIHNlbGVjdGlvbiBib3ggdG8gaXQncyBwYXJlbnQKICAgIHhtbFR2SWRQaWNrZXJQYXJlbnQuYXBwZW5kQ2hpbGQoeG1sVHZJZENvbnRhaW5lcik7CiAgICBjaGVja1htbHR2Q2hhbm5lbChlcGdNYXBJZCwgeG1sVHZJZElucHV0LnZhbHVlLCBuZXdYbWxUdkZpbGUpOwp9CmZ1bmN0aW9uIGNoZWNrWG1sdHZDaGFubmVsKGVwZ01hcElkLCBuZXdYbWxUdklkLCB4bWxUdkZpbGUpIHsKICAgIGNvbnN0IGNoYW5uZWxBY3RpdmVDYiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdhY3RpdmUnKTsKICAgIGNvbnN0IGNoYW5uZWxBY3RpdmUgPSBuZXdYbWxUdklkICE9ICctJzsKICAgIGNoYW5uZWxBY3RpdmVDYi5jaGVja2VkID0gY2hhbm5lbEFjdGl2ZTsKICAgIGNoYW5uZWxBY3RpdmVDYi5jbGFzc05hbWUgPSAnY2hhbmdlZCc7CiAgICBpZiAoeG1sVHZGaWxlICE9ICd4VGVWZSBEdW1teScgJiYgY2hhbm5lbEFjdGl2ZSA9PSB0cnVlKSB7CiAgICAgICAgY2hhbmdlQ2hhbm5lbExvZ28oZXBnTWFwSWQpOwogICAgICAgIHJldHVybjsKICAgIH0KICAgIGlmICh4bWxUdkZpbGUgPT0gJ3hUZVZlIER1bW15JykgewogICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd1cGRhdGUtaWNvbicpLmNoZWNrZWQgPSBmYWxzZTsKICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndXBkYXRlLWljb24nKS5jbGFzc05hbWUgPSAnY2hhbmdlZCc7CiAgICB9Cn0KZnVuY3Rpb24gY2hhbmdlQ2hhbm5lbExvZ28oZXBnTWFwSWQpIHsKICAgIGNvbnN0IGNoYW5uZWwgPSBTRVJWRVJbJ3hlcGcnXVsnZXBnTWFwcGluZyddW2VwZ01hcElkXTsKICAgIGNvbnN0IHhtbFR2RmlsZVNlbGVjdCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdwb3B1cC14bWx0dicpOwogICAgY29uc3QgeG1sVHZGaWxlID0geG1sVHZGaWxlU2VsZWN0Lm9wdGlvbnNbeG1sVHZGaWxlU2VsZWN0LnNlbGVjdGVkSW5kZXhdLnZhbHVlOwogICAgY29uc3QgeG1sVHZJZElucHV0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3htbHR2LWlkLXBpY2tlci1pbnB1dCcpOwogICAgY29uc3QgbmV3WG1sVHZJZCA9IHhtbFR2SWRJbnB1dC52YWx1ZTsKICAgIGNvbnN0IHVwZGF0ZUxvZ28gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndXBkYXRlLWljb24nKS5jaGVja2VkOwogICAgbGV0IGxvZ287CiAgICBpZiAodXBkYXRlTG9nbyA9PSB0cnVlICYmIHhtbFR2RmlsZSAhPSAneFRlVmUgRHVtbXknKSB7CiAgICAgICAgaWYgKFNFUlZFUlsneGVwZyddWyd4bWx0dk1hcCddW3htbFR2RmlsZV0uaGFzT3duUHJvcGVydHkobmV3WG1sVHZJZCkpIHsKICAgICAgICAgICAgbG9nbyA9IFNFUlZFUlsneGVwZyddWyd4bWx0dk1hcCddW3htbFR2RmlsZV1bbmV3WG1sVHZJZF1bJ2ljb24nXTsKICAgICAgICB9CiAgICAgICAgZWxzZSB7CiAgICAgICAgICAgIGxvZ28gPSBjaGFubmVsWyd0dmctbG9nbyddOwogICAgICAgIH0KICAgICAgICB2YXIgbG9nb0lucHV0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NoYW5uZWwtaWNvbicpOwogICAgICAgIGxvZ29JbnB1dC52YWx1ZSA9IGxvZ287CiAgICAgICAgaWYgKEJVTEtfRURJVCA9PSBmYWxzZSkgewogICAgICAgICAgICBsb2dvSW5wdXQuY2xhc3NOYW1lID0gJ2NoYW5nZWQnOwogICAgICAgIH0KICAgIH0KfQpmdW5jdGlvbiBzYXZlUG9wdXBEYXRhKGRhdGFUeXBlLCBpZCwgcmVtb3ZlLCBvcHRpb24pIHsKICAgIGlmIChkYXRhVHlwZSA9PSAibWFwcGluZyIpIHsKICAgICAgICBsZXQgZGF0YSA9IHt9OwogICAgICAgIGxldCBjbWQgPSAic2F2ZUVwZ01hcHBpbmciOwogICAgICAgIGRhdGFbImVwZ01hcHBpbmciXSA9IFNFUlZFUlsieGVwZyJdWyJlcGdNYXBwaW5nIl07CiAgICAgICAgbGV0IHNlcnZlciA9IG5ldyBTZXJ2ZXIoY21kKTsKICAgICAgICBzZXJ2ZXIucmVxdWVzdChkYXRhKTsKICAgICAgICBkZWxldGUgVU5ET1siZXBnTWFwcGluZyJdOwogICAgICAgIHJldHVybjsKICAgIH0KICAgIGxldCBkaXYgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicG9wdXAtY3VzdG9tIik7CiAgICBsZXQgaW5wdXRzID0gZGl2LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJUQUJMRSIpWzBdLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJJTlBVVCIpOwogICAgbGV0IHNlbGVjdHMgPSBkaXYuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlRBQkxFIilbMF0uZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlNFTEVDVCIpOwogICAgbGV0IGlucHV0ID0ge307CiAgICBsZXQgY29uZmlybU1zZzsKICAgIGZvciAobGV0IGkgPSAwOyBpIDwgc2VsZWN0cy5sZW5ndGg7IGkrKykgewogICAgICAgIHZhciBuYW1lOwogICAgICAgIG5hbWUgPSBzZWxlY3RzW2ldLm5hbWU7CiAgICAgICAgdmFyIHZhbHVlID0gc2VsZWN0c1tpXS52YWx1ZTsKICAgICAgICBzd2l0Y2ggKG5hbWUpIHsKICAgICAgICAgICAgY2FzZSAidHVuZXIiOgogICAgICAgICAgICAgICAgaW5wdXRbbmFtZV0gPSBwYXJzZUludCh2YWx1ZSk7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgICAgIGlucHV0W25hbWVdID0gdmFsdWU7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICB9CiAgICB9CiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGlucHV0cy5sZW5ndGg7IGkrKykgewogICAgICAgIHN3aXRjaCAoaW5wdXRzW2ldLnR5cGUpIHsKICAgICAgICAgICAgY2FzZSAiY2hlY2tib3giOgogICAgICAgICAgICAgICAgbmFtZSA9IGlucHV0c1tpXS5uYW1lOwogICAgICAgICAgICAgICAgaW5wdXRbbmFtZV0gPSBpbnB1dHNbaV0uY2hlY2tlZDsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJ0ZXh0IjoKICAgICAgICAgICAgY2FzZSAiaGlkZGVuIjoKICAgICAgICAgICAgY2FzZSAicGFzc3dvcmQiOgogICAgICAgICAgICAgICAgbmFtZSA9IGlucHV0c1tpXS5uYW1lOwogICAgICAgICAgICAgICAgc3dpdGNoIChuYW1lKSB7CiAgICAgICAgICAgICAgICAgICAgY2FzZSAidHVuZXIiOgogICAgICAgICAgICAgICAgICAgICAgICBpbnB1dFtuYW1lXSA9IHBhcnNlSW50KGlucHV0c1tpXS52YWx1ZSk7CiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICAgICAgICAgICAgIGlucHV0W25hbWVdID0gaW5wdXRzW2ldLnZhbHVlOwogICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgIH0KICAgIH0KICAgIGxldCBkYXRhID0ge307CiAgICBsZXQgY21kOwogICAgaWYgKHJlbW92ZSA9PSB0cnVlKSB7CiAgICAgICAgaW5wdXRbImRlbGV0ZSJdID0gdHJ1ZTsKICAgIH0KICAgIHN3aXRjaCAoZGF0YVR5cGUpIHsKICAgICAgICBjYXNlICJ1c2VycyI6CiAgICAgICAgICAgIGNvbmZpcm1Nc2cgPSAiRGVsZXRlIHRoaXMgdXNlcj8iOwogICAgICAgICAgICBpZiAoaWQgPT0gIi0iKSB7CiAgICAgICAgICAgICAgICBjbWQgPSAic2F2ZU5ld1VzZXIiOwogICAgICAgICAgICAgICAgZGF0YVsidXNlckRhdGEiXSA9IGlucHV0OwogICAgICAgICAgICB9CiAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgY21kID0gInNhdmVVc2VyRGF0YSI7CiAgICAgICAgICAgICAgICBsZXQgZCA9IHt9OwogICAgICAgICAgICAgICAgZFtpZF0gPSBpbnB1dDsKICAgICAgICAgICAgICAgIGRhdGFbInVzZXJEYXRhIl0gPSBkOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgIGNhc2UgIm0zdSI6CiAgICAgICAgICAgIGNvbmZpcm1Nc2cgPSAiRGVsZXRlIHRoaXMgcGxheWxpc3Q/IjsKICAgICAgICAgICAgc3dpdGNoIChvcHRpb24pIHsKICAgICAgICAgICAgICAgIC8vIFBvcHVwOiBTYXZlCiAgICAgICAgICAgICAgICBjYXNlIDA6CiAgICAgICAgICAgICAgICAgICAgY21kID0gInNhdmVGaWxlc00zVSI7CiAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAvLyBQb3B1cDogVXBkYXRlCiAgICAgICAgICAgICAgICBjYXNlIDE6CiAgICAgICAgICAgICAgICAgICAgY21kID0gInVwZGF0ZUZpbGVNM1UiOwogICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGRhdGFbImZpbGVzIl0gPSB7fTsKICAgICAgICAgICAgZGF0YVsiZmlsZXMiXVtkYXRhVHlwZV0gPSB7fTsKICAgICAgICAgICAgZGF0YVsiZmlsZXMiXVtkYXRhVHlwZV1baWRdID0gaW5wdXQ7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgIGNhc2UgImhkaHIiOgogICAgICAgICAgICBjb25maXJtTXNnID0gIkRlbGV0ZSB0aGlzIEhESG9tZVJ1biB0dW5lcj8iOwogICAgICAgICAgICBzd2l0Y2ggKG9wdGlvbikgewogICAgICAgICAgICAgICAgLy8gUG9wdXA6IFNhdmUKICAgICAgICAgICAgICAgIGNhc2UgMDoKICAgICAgICAgICAgICAgICAgICBjbWQgPSAic2F2ZUZpbGVzSERIUiI7CiAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAvLyBQb3B1cDogVXBkYXRlCiAgICAgICAgICAgICAgICBjYXNlIDE6CiAgICAgICAgICAgICAgICAgICAgY21kID0gInVwZGF0ZUZpbGVIREhSIjsKICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgfQogICAgICAgICAgICBkYXRhWyJmaWxlcyJdID0ge307CiAgICAgICAgICAgIGRhdGFbImZpbGVzIl1bZGF0YVR5cGVdID0ge307CiAgICAgICAgICAgIGRhdGFbImZpbGVzIl1bZGF0YVR5cGVdW2lkXSA9IGlucHV0OwogICAgICAgICAgICBicmVhazsKICAgICAgICBjYXNlICJ4bWx0diI6CiAgICAgICAgICAgIGNvbmZpcm1Nc2cgPSAiRGVsZXRlIHRoaXMgWE1MVFYgZmlsZT8iOwogICAgICAgICAgICBzd2l0Y2ggKG9wdGlvbikgewogICAgICAgICAgICAgICAgLy8gUG9wdXA6IFNhdmUKICAgICAgICAgICAgICAgIGNhc2UgMDoKICAgICAgICAgICAgICAgICAgICBjbWQgPSAic2F2ZUZpbGVzWE1MVFYiOwogICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgLy8gUG9wdXA6IFVwZGF0ZQogICAgICAgICAgICAgICAgY2FzZSAxOgogICAgICAgICAgICAgICAgICAgIGNtZCA9ICJ1cGRhdGVGaWxlWE1MVFYiOwogICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGRhdGFbImZpbGVzIl0gPSB7fTsKICAgICAgICAgICAgZGF0YVsiZmlsZXMiXVtkYXRhVHlwZV0gPSB7fTsKICAgICAgICAgICAgZGF0YVsiZmlsZXMiXVtkYXRhVHlwZV1baWRdID0gaW5wdXQ7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgIGNhc2UgImZpbHRlciI6CiAgICAgICAgICAgIGNvbmZpcm1Nc2cgPSAiRGVsZXRlIHRoaXMgZmlsdGVyPyI7CiAgICAgICAgICAgIGNtZCA9ICJzYXZlRmlsdGVyIjsKICAgICAgICAgICAgZGF0YVsiZmlsdGVyIl0gPSB7fTsKICAgICAgICAgICAgZGF0YVsiZmlsdGVyIl1baWRdID0gaW5wdXQ7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgIHJldHVybjsKICAgIH0KICAgIGlmIChyZW1vdmUgPT0gdHJ1ZSkgewogICAgICAgIGlmICghY29uZmlybShjb25maXJtTXNnKSkgewogICAgICAgICAgICBzaG93RWxlbWVudCgicG9wdXAiLCBmYWxzZSk7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICB9CiAgICBsZXQgc2VydmVyID0gbmV3IFNlcnZlcihjbWQpOwogICAgc2VydmVyLnJlcXVlc3QoZGF0YSk7Cn0KZnVuY3Rpb24gZG9uZVBvcHVwRGF0YShkYXRhVHlwZSwgaWRzU3RyKSB7CiAgICBsZXQgaWRzID0gaWRzU3RyLnNwbGl0KCcsJyk7CiAgICBsZXQgZGl2ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInBvcHVwLWN1c3RvbSIpOwogICAgbGV0IGlucHV0cyA9IGRpdi5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCJjaGFuZ2VkIik7CiAgICBpZHMuZm9yRWFjaChpZCA9PiB7CiAgICAgICAgbGV0IGlucHV0OwogICAgICAgIGlucHV0ID0gU0VSVkVSWyJ4ZXBnIl1bImVwZ01hcHBpbmciXVtpZF07CiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBpbnB1dHMubGVuZ3RoOyBpKyspIHsKICAgICAgICAgICAgbGV0IG5hbWU7CiAgICAgICAgICAgIGxldCB2YWx1ZTsKICAgICAgICAgICAgc3dpdGNoIChpbnB1dHNbaV0udGFnTmFtZSkgewogICAgICAgICAgICAgICAgY2FzZSAiSU5QVVQiOgogICAgICAgICAgICAgICAgICAgIHN3aXRjaCAoaW5wdXRzW2ldLnR5cGUpIHsKICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAiY2hlY2tib3giOgogICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZSA9IGlucHV0c1tpXS5uYW1lOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSBpbnB1dHNbaV0uY2hlY2tlZDsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlucHV0W25hbWVdID0gdmFsdWU7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAidGV4dCI6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lID0gaW5wdXRzW2ldLm5hbWU7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IGlucHV0c1tpXS52YWx1ZTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlucHV0W25hbWVdID0gdmFsdWU7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICBjYXNlICJTRUxFQ1QiOgogICAgICAgICAgICAgICAgICAgIG5hbWUgPSBpbnB1dHNbaV0ubmFtZTsKICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IGlucHV0c1tpXS52YWx1ZTsKICAgICAgICAgICAgICAgICAgICBpbnB1dFtuYW1lXSA9IHZhbHVlOwogICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICB9CiAgICAgICAgICAgIHN3aXRjaCAobmFtZSkgewogICAgICAgICAgICAgICAgY2FzZSAidHZnLWxvZ28iOgogICAgICAgICAgICAgICAgICAgIC8vKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5jaGlsZE5vZGVzWzJdLmZpcnN0Q2hpbGQgYXMgSFRNTEVsZW1lbnQpLnNldEF0dHJpYnV0ZSgic3JjIiwgdmFsdWUpCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICBjYXNlICJ4LW5hbWUiOgogICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5jaGlsZE5vZGVzWzNdLmZpcnN0Q2hpbGQuaW5uZXJIVE1MID0gdmFsdWU7CiAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICBjYXNlICJ4LWNhdGVnb3J5IjoKICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkuY2hpbGROb2Rlc1szXS5maXJzdENoaWxkLmNsYXNzTmFtZSA9IHZhbHVlOwogICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgY2FzZSAidXBkYXRlLWNoYW5uZWwtbmFtZS1yZWdleCI6CiAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpLmNoaWxkTm9kZXNbNF0uZmlyc3RDaGlsZC5pbm5lckhUTUwgPSB2YWx1ZTsKICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgIGNhc2UgIngtZ3JvdXAtdGl0bGUiOgogICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5jaGlsZE5vZGVzWzZdLmZpcnN0Q2hpbGQuaW5uZXJIVE1MID0gdmFsdWU7CiAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICBjYXNlICJ4LXhtbHR2LWZpbGUiOgogICAgICAgICAgICAgICAgICAgIGlmICh2YWx1ZSAhPSAieFRlVmUgRHVtbXkiICYmIHZhbHVlICE9ICItIikgewogICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IGdldFZhbHVlRnJvbVByb3ZpZGVyRmlsZSh2YWx1ZSwgInhtbHR2IiwgIm5hbWUiKTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgaWYgKHZhbHVlID09ICItIikgewogICAgICAgICAgICAgICAgICAgICAgICBpbnB1dFsieC1hY3RpdmUiXSA9IGZhbHNlOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkuY2hpbGROb2Rlc1s3XS5maXJzdENoaWxkLmlubmVySFRNTCA9IHZhbHVlOwogICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgY2FzZSAieC1tYXBwaW5nIjoKICAgICAgICAgICAgICAgICAgICBpZiAodmFsdWUgPT0gIi0iKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGlucHV0WyJ4LWFjdGl2ZSJdID0gZmFsc2U7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5jaGlsZE5vZGVzWzhdLmZpcnN0Q2hpbGQuaW5uZXJIVE1MID0gdmFsdWU7CiAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICBjYXNlICJ4LXRpbWVzaGlmdCI6CiAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpLmNoaWxkTm9kZXNbOV0uZmlyc3RDaGlsZC5pbm5lckhUTUwgPSB2YWx1ZTsKICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgIH0KICAgICAgICAgICAgY3JlYXRlU2VhcmNoT2JqKCk7CiAgICAgICAgICAgIHNlYXJjaEluTWFwcGluZygpOwogICAgICAgIH0KICAgICAgICBpZiAoaW5wdXRbIngtYWN0aXZlIl0gPT0gZmFsc2UpIHsKICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpLmNsYXNzTmFtZSA9ICJub3RBY3RpdmVFUEciOwogICAgICAgIH0KICAgICAgICBlbHNlIHsKICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpLmNsYXNzTmFtZSA9ICJhY3RpdmVFUEciOwogICAgICAgIH0KICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkuY2hpbGROb2Rlc1syXS5maXJzdENoaWxkLnNldEF0dHJpYnV0ZSgic3JjIiwgaW5wdXRbInR2Zy1sb2dvIl0pOwogICAgfSk7CiAgICBzaG93RWxlbWVudCgicG9wdXAiLCBmYWxzZSk7CiAgICByZXR1cm47Cn0KZnVuY3Rpb24gc2hvd1ByZXZpZXcoZWxlbWVudCkgewogICAgbGV0IGRpdiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJteVN0cmVhbXNCb3giKTsKICAgIHN3aXRjaCAoZWxlbWVudCkgewogICAgICAgIGNhc2UgZmFsc2U6CiAgICAgICAgICAgIGRpdi5jbGFzc05hbWUgPSAibm90VmlzaWJsZSI7CiAgICAgICAgICAgIHJldHVybjsKICAgIH0KICAgIGxldCBzdHJlYW1zID0gWyJhY3RpdmVTdHJlYW1zIiwgImluYWN0aXZlU3RyZWFtcyJdOwogICAgc3RyZWFtcy5mb3JFYWNoKHByZXZpZXcgPT4gewogICAgICAgIGxldCB0YWJsZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHByZXZpZXcpOwogICAgICAgIHRhYmxlLmlubmVySFRNTCA9ICIiOwogICAgICAgIGxldCBvYmogPSBTRVJWRVJbImRhdGEiXVsiU3RyZWFtUHJldmlld1VJIl1bcHJldmlld107CiAgICAgICAgb2JqLmZvckVhY2goY2hhbm5lbCA9PiB7CiAgICAgICAgICAgIGxldCB0ciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlRSIik7CiAgICAgICAgICAgIGxldCB0ZEtleSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7CiAgICAgICAgICAgIGxldCB0ZFZhbCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7CiAgICAgICAgICAgIHRkS2V5LmNsYXNzTmFtZSA9ICJ0ZEtleSI7CiAgICAgICAgICAgIHRkVmFsLmNsYXNzTmFtZSA9ICJ0ZFZhbCI7CiAgICAgICAgICAgIHN3aXRjaCAocHJldmlldykgewogICAgICAgICAgICAgICAgY2FzZSAiYWN0aXZlU3RyZWFtcyI6CiAgICAgICAgICAgICAgICAgICAgdGRLZXkuaW5uZXJUZXh0ID0gIkNoYW5uZWw6ICgrKSI7CiAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICBjYXNlICJpbmFjdGl2ZVN0cmVhbXMiOgogICAgICAgICAgICAgICAgICAgIHRkS2V5LmlubmVyVGV4dCA9ICJDaGFubmVsOiAoLSkiOwogICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICB9CiAgICAgICAgICAgIHRkVmFsLmlubmVyVGV4dCA9IGNoYW5uZWw7CiAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKHRkS2V5KTsKICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQodGRWYWwpOwogICAgICAgICAgICB0YWJsZS5hcHBlbmRDaGlsZCh0cik7CiAgICAgICAgfSk7CiAgICB9KTsKICAgIHNob3dFbGVtZW50KCJsb2FkaW5nIiwgZmFsc2UpOwogICAgZGl2LmNsYXNzTmFtZSA9ICJ2aXNpYmxlIjsKICAgIHJldHVybjsKfQo=" webUI["html/js/network_ts.js"] = "Y2xhc3MgU2VydmVyIHsKICAgIGNvbnN0cnVjdG9yKGNtZCkgewogICAgICAgIHRoaXMuY21kID0gY21kOwogICAgfQogICAgcmVxdWVzdChkYXRhKSB7CiAgICAgICAgaWYgKFNFUlZFUl9DT05ORUNUSU9OID09IHRydWUpIHsKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KICAgICAgICBTRVJWRVJfQ09OTkVDVElPTiA9IHRydWU7CiAgICAgICAgaWYgKHRoaXMuY21kICE9ICJ1cGRhdGVMb2ciKSB7CiAgICAgICAgICAgIHNob3dFbGVtZW50KCJsb2FkaW5nIiwgdHJ1ZSk7CiAgICAgICAgICAgIFVORE8gPSBuZXcgT2JqZWN0KCk7CiAgICAgICAgfQogICAgICAgIHN3aXRjaCAod2luZG93LmxvY2F0aW9uLnByb3RvY29sKSB7CiAgICAgICAgICAgIGNhc2UgImh0dHA6IjoKICAgICAgICAgICAgICAgIHRoaXMucHJvdG9jb2wgPSAid3M6Ly8iOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgImh0dHBzOiI6CiAgICAgICAgICAgICAgICB0aGlzLnByb3RvY29sID0gIndzczovLyI7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICB9CiAgICAgICAgdmFyIHVybCA9IHRoaXMucHJvdG9jb2wgKyB3aW5kb3cubG9jYXRpb24uaG9zdG5hbWUgKyAiOiIgKyB3aW5kb3cubG9jYXRpb24ucG9ydCArICIvZGF0YS8iICsgIj9Ub2tlbj0iICsgZ2V0Q29va2llKCJUb2tlbiIpOwogICAgICAgIGRhdGFbImNtZCJdID0gdGhpcy5jbWQ7CiAgICAgICAgdmFyIHdzID0gbmV3IFdlYlNvY2tldCh1cmwpOwogICAgICAgIHdzLm9ub3BlbiA9IGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgV1NfQVZBSUxBQkxFID0gdHJ1ZTsKICAgICAgICAgICAgdGhpcy5zZW5kKEpTT04uc3RyaW5naWZ5KGRhdGEpKTsKICAgICAgICB9OwogICAgICAgIHdzLm9uZXJyb3IgPSBmdW5jdGlvbiAod3NFcnJFdnQpIHsKICAgICAgICAgICAgY29uc29sZS5sb2coIk5vIHdlYnNvY2tldCBjb25uZWN0aW9uIHRvIHhUZVZlIGNvdWxkIGJlIGVzdGFibGlzaGVkLiBDaGVjayB5b3VyIG5ldHdvcmsgY29uZmlndXJhdGlvbi4iKTsKICAgICAgICAgICAgU0VSVkVSX0NPTk5FQ1RJT04gPSBmYWxzZTsKICAgICAgICAgICAgaWYgKFdTX0FWQUlMQUJMRSA9PSBmYWxzZSkgewogICAgICAgICAgICAgICAgYWxlcnQoIk5vIHdlYnNvY2tldCBjb25uZWN0aW9uIHRvIHhUZVZlIGNvdWxkIGJlIGVzdGFibGlzaGVkLiBDaGVjayB5b3VyIG5ldHdvcmsgY29uZmlndXJhdGlvbi4iKTsKICAgICAgICAgICAgfQogICAgICAgIH07CiAgICAgICAgd3Mub25tZXNzYWdlID0gZnVuY3Rpb24gKHdzTWVzc2FnZUV2dCkgewogICAgICAgICAgICBTRVJWRVJfQ09OTkVDVElPTiA9IGZhbHNlOwogICAgICAgICAgICBzaG93RWxlbWVudCgibG9hZGluZyIsIGZhbHNlKTsKICAgICAgICAgICAgY29uc3QgcmVzcG9uc2UgPSBKU09OLnBhcnNlKHdzTWVzc2FnZUV2dC5kYXRhKTsKICAgICAgICAgICAgaWYgKHJlc3BvbnNlLmhhc093blByb3BlcnR5KCJ0b2tlbiIpKSB7CiAgICAgICAgICAgICAgICBkb2N1bWVudC5jb29raWUgPSAiVG9rZW49IiArIHJlc3BvbnNlWyJ0b2tlbiJdOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGlmIChyZXNwb25zZVsic3RhdHVzIl0gPT0gZmFsc2UpIHsKICAgICAgICAgICAgICAgIGFsZXJ0KHJlc3BvbnNlWyJlcnIiXSk7CiAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgIH0KICAgICAgICAgICAgaWYgKHJlc3BvbnNlLmhhc093blByb3BlcnR5KCdvcGVuTGluaycpKSB7CiAgICAgICAgICAgICAgICB3aW5kb3cubG9jYXRpb24gPSByZXNwb25zZVsnb3BlbkxpbmsnXTsKICAgICAgICAgICAgfQogICAgICAgICAgICBpZiAocmVzcG9uc2UuaGFzT3duUHJvcGVydHkoInJlbG9hZCIpKSB7CiAgICAgICAgICAgICAgICB3aW5kb3cubG9jYXRpb24ucmVsb2FkKCk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgaWYgKHJlc3BvbnNlLmhhc093blByb3BlcnR5KCJhbGVydCIpKSB7CiAgICAgICAgICAgICAgICBhbGVydChyZXNwb25zZVsiYWxlcnQiXSk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgaWYgKHJlc3BvbnNlLmhhc093blByb3BlcnR5KCJsb2dvVVJMIikpIHsKICAgICAgICAgICAgICAgIHZhciBkaXYgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY2hhbm5lbC1pY29uIik7CiAgICAgICAgICAgICAgICBkaXYudmFsdWUgPSByZXNwb25zZVsibG9nb1VSTCJdOwogICAgICAgICAgICAgICAgZGl2LmNsYXNzTmFtZSA9ICJjaGFuZ2VkIjsKICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgfQogICAgICAgICAgICBzd2l0Y2ggKGRhdGFbImNtZCJdKSB7CiAgICAgICAgICAgICAgICBjYXNlICJ1cGRhdGVMb2ciOgogICAgICAgICAgICAgICAgICAgIFNFUlZFUlsibG9nIl0gPSByZXNwb25zZVsibG9nIl07CiAgICAgICAgICAgICAgICAgICAgaWYgKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb250ZW50X2xvZyIpKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIHNob3dMb2dzKGZhbHNlKTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgICAgICAgICBTRVJWRVIgPSBuZXcgT2JqZWN0KCk7CiAgICAgICAgICAgICAgICAgICAgU0VSVkVSID0gcmVzcG9uc2U7CiAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgaWYgKHJlc3BvbnNlLmhhc093blByb3BlcnR5KCJvcGVuTWVudSIpKSB7CiAgICAgICAgICAgICAgICB2YXIgbWVudSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHJlc3BvbnNlWyJvcGVuTWVudSJdKTsKICAgICAgICAgICAgICAgIG1lbnUuY2xpY2soKTsKICAgICAgICAgICAgICAgIHNob3dFbGVtZW50KCJwb3B1cCIsIGZhbHNlKTsKICAgICAgICAgICAgfQogICAgICAgICAgICBpZiAocmVzcG9uc2UuaGFzT3duUHJvcGVydHkoInJlbG9hZCIpKSB7CiAgICAgICAgICAgICAgICBsb2NhdGlvbi5yZWxvYWQoKTsKICAgICAgICAgICAgfQogICAgICAgICAgICBpZiAocmVzcG9uc2UuaGFzT3duUHJvcGVydHkoIndpemFyZCIpKSB7CiAgICAgICAgICAgICAgICBjcmVhdGVMYXlvdXQoKTsKICAgICAgICAgICAgICAgIGNvbmZpZ3VyYXRpb25XaXphcmRbcmVzcG9uc2VbIndpemFyZCJdXS5jcmVhdGVXaXphcmQoKTsKICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgfQogICAgICAgICAgICBjcmVhdGVMYXlvdXQoKTsKICAgICAgICB9OwogICAgfQp9CmZ1bmN0aW9uIGdldENvb2tpZShuYW1lKSB7CiAgICB2YXIgdmFsdWUgPSAiOyAiICsgZG9jdW1lbnQuY29va2llOwogICAgdmFyIHBhcnRzID0gdmFsdWUuc3BsaXQoIjsgIiArIG5hbWUgKyAiPSIpOwogICAgaWYgKHBhcnRzLmxlbmd0aCA9PSAyKSB7CiAgICAgICAgcmV0dXJuIHBhcnRzLnBvcCgpLnNwbGl0KCI7Iikuc2hpZnQoKTsKICAgIH0KfQo=" webUI["html/js/settings_ts.js"] = "Y2xhc3MgU2V0dGluZ3NDYXRlZ29yeSB7CiAgICBjb25zdHJ1Y3RvcigpIHsKICAgICAgICB0aGlzLkRvY3VtZW50SUQgPSAiY29udGVudF9zZXR0aW5ncyI7CiAgICB9CiAgICBjcmVhdGVDYXRlZ29yeUhlYWRsaW5lKHZhbHVlKSB7CiAgICAgICAgdmFyIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJINCIpOwogICAgICAgIGVsZW1lbnQuaW5uZXJIVE1MID0gdmFsdWU7CiAgICAgICAgcmV0dXJuIGVsZW1lbnQ7CiAgICB9CiAgICBjcmVhdGVIUigpIHsKICAgICAgICB2YXIgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIkhSIik7CiAgICAgICAgcmV0dXJuIGVsZW1lbnQ7CiAgICB9CiAgICBjcmVhdGVTZXR0aW5ncyhzZXR0aW5nc0tleSkgewogICAgICAgIHZhciBzZXR0aW5nID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVFIiKTsKICAgICAgICB2YXIgY29udGVudCA9IG5ldyBQb3B1cENvbnRlbnQoKTsKICAgICAgICB2YXIgZGF0YSA9IFNFUlZFUlsic2V0dGluZ3MiXVtzZXR0aW5nc0tleV07CiAgICAgICAgc3dpdGNoIChzZXR0aW5nc0tleSkgewogICAgICAgICAgICAvLyBUZXh0IGlucHV0cwogICAgICAgICAgICBjYXNlICJ1cGRhdGUiOgogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7CiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLnVwZGF0ZS50aXRsZX19IiArICI6IjsKICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsKICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCAidXBkYXRlIiwgZGF0YS50b1N0cmluZygpKTsKICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3suc2V0dGluZ3MudXBkYXRlLnBsYWNlaG9sZGVyfX0iKTsKICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsKICAgICAgICAgICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQoaW5wdXQpOwogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOwogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJiYWNrdXAucGF0aCI6CiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsKICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MuYmFja3VwUGF0aC50aXRsZX19IiArICI6IjsKICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsKICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCAiYmFja3VwLnBhdGgiLCBkYXRhKTsKICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3suc2V0dGluZ3MuYmFja3VwUGF0aC5wbGFjZWhvbGRlcn19Iik7CiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7CiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsKICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsKICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAidGVtcC5wYXRoIjoKICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOwogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy50ZW1wUGF0aC50aXRsZX19IiArICI6IjsKICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsKICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCAidGVtcC5wYXRoIiwgZGF0YSk7CiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnNldHRpbmdzLnRtcFBhdGgucGxhY2Vob2xkZXJ9fSIpOwogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOwogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7CiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7CiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgInVzZXIuYWdlbnQiOgogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7CiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLnVzZXJBZ2VudC50aXRsZX19IiArICI6IjsKICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsKICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCAidXNlci5hZ2VudCIsIGRhdGEpOwogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5zZXR0aW5ncy51c2VyQWdlbnQucGxhY2Vob2xkZXJ9fSIpOwogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOwogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7CiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7CiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgImJ1ZmZlci50aW1lb3V0IjoKICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOwogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5idWZmZXJUaW1lb3V0LnRpdGxlfX0iICsgIjoiOwogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOwogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsICJidWZmZXIudGltZW91dCIsIGRhdGEpOwogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5zZXR0aW5ncy5idWZmZXJUaW1lb3V0LnBsYWNlaG9sZGVyfX0iKTsKICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsKICAgICAgICAgICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQoaW5wdXQpOwogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOwogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJmZm1wZWcucGF0aCI6CiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsKICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MuZmZtcGVnUGF0aC50aXRsZX19IiArICI6IjsKICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsKICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCAiZmZtcGVnLnBhdGgiLCBkYXRhKTsKICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3suc2V0dGluZ3MuZmZtcGVnUGF0aC5wbGFjZWhvbGRlcn19Iik7CiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7CiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsKICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsKICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAiZmZtcGVnLm9wdGlvbnMiOgogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7CiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmZmbXBlZ09wdGlvbnMudGl0bGV9fSIgKyAiOiI7CiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7CiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgImZmbXBlZy5vcHRpb25zIiwgZGF0YSk7CiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnNldHRpbmdzLmZmbXBlZ09wdGlvbnMucGxhY2Vob2xkZXJ9fSIpOwogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOwogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7CiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7CiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgInZsYy5wYXRoIjoKICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOwogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy52bGNQYXRoLnRpdGxlfX0iICsgIjoiOwogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOwogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsICJ2bGMucGF0aCIsIGRhdGEpOwogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5zZXR0aW5ncy52bGNQYXRoLnBsYWNlaG9sZGVyfX0iKTsKICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsKICAgICAgICAgICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQoaW5wdXQpOwogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOwogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJ2bGMub3B0aW9ucyI6CiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsKICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MudmxjT3B0aW9ucy50aXRsZX19IiArICI6IjsKICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsKICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCAidmxjLm9wdGlvbnMiLCBkYXRhKTsKICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3suc2V0dGluZ3MudmxjT3B0aW9ucy5wbGFjZWhvbGRlcn19Iik7CiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7CiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsKICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsKICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgLy8gQ2hlY2tib3hlcwogICAgICAgICAgICBjYXNlICJ0bHNNb2RlIjoKICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOwogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy50bHNNb2RlLnRpdGxlfX0iICsgIjoiOwogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOwogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChzZXR0aW5nc0tleSk7CiAgICAgICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YTsKICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsKICAgICAgICAgICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQoaW5wdXQpOwogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOwogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJkaXNhbGxvd1VSTER1cGxpY2F0ZXMiOgogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7CiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmRpc2FsbG93VVJMRHVwbGljYXRlcy50aXRsZX19IiArICI6IjsKICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsKICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goc2V0dGluZ3NLZXkpOwogICAgICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGE7CiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7CiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsKICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsKICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAiYXV0aGVudGljYXRpb24ud2ViIjoKICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOwogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5hdXRoZW50aWNhdGlvbldFQi50aXRsZX19IiArICI6IjsKICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsKICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goc2V0dGluZ3NLZXkpOwogICAgICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGE7CiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7CiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsKICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsKICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAiYXV0aGVudGljYXRpb24ucG1zIjoKICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOwogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5hdXRoZW50aWNhdGlvblBNUy50aXRsZX19IiArICI6IjsKICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsKICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goc2V0dGluZ3NLZXkpOwogICAgICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGE7CiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7CiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsKICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsKICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAiYXV0aGVudGljYXRpb24ubTN1IjoKICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOwogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5hdXRoZW50aWNhdGlvbk0zVS50aXRsZX19IiArICI6IjsKICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsKICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goc2V0dGluZ3NLZXkpOwogICAgICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGE7CiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7CiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsKICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsKICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAiYXV0aGVudGljYXRpb24ueG1sIjoKICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOwogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5hdXRoZW50aWNhdGlvblhNTC50aXRsZX19IiArICI6IjsKICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsKICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goc2V0dGluZ3NLZXkpOwogICAgICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGE7CiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7CiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsKICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsKICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAiYXV0aGVudGljYXRpb24uYXBpIjoKICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOwogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5hdXRoZW50aWNhdGlvbkFQSS50aXRsZX19IiArICI6IjsKICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsKICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goc2V0dGluZ3NLZXkpOwogICAgICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGE7CiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7CiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsKICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsKICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAiZmlsZXMudXBkYXRlIjoKICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOwogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5maWxlc1VwZGF0ZS50aXRsZX19IiArICI6IjsKICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsKICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goc2V0dGluZ3NLZXkpOwogICAgICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGE7CiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7CiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsKICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsKICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAiY2FjaGUuaW1hZ2VzIjoKICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOwogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5jYWNoZUltYWdlcy50aXRsZX19IiArICI6IjsKICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsKICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goc2V0dGluZ3NLZXkpOwogICAgICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGE7CiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7CiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsKICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsKICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAieGVwZy5yZXBsYWNlLm1pc3NpbmcuaW1hZ2VzIjoKICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOwogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5yZXBsYWNlRW1wdHlJbWFnZXMudGl0bGV9fSIgKyAiOiI7CiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7CiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KHNldHRpbmdzS2V5KTsKICAgICAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhOwogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOwogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7CiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7CiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgInN0b3JlQnVmZmVySW5SQU0iOgogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7CiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLnN0b3JlQnVmZmVySW5SQU0udGl0bGV9fSIgKyAiOiI7CiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7CiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KHNldHRpbmdzS2V5KTsKICAgICAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhOwogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOwogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7CiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7CiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgInh0ZXZlQXV0b1VwZGF0ZSI6CiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsKICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MueHRldmVBdXRvVXBkYXRlLnRpdGxlfX0iICsgIjoiOwogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOwogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChzZXR0aW5nc0tleSk7CiAgICAgICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YTsKICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsKICAgICAgICAgICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQoaW5wdXQpOwogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOwogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJjbGVhclhNTFRWQ2FjaGUiOgogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7CiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmNsZWFyWE1MVFZDYWNoZS50aXRsZX19IiArICI6IjsKICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsKICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goc2V0dGluZ3NLZXkpOwogICAgICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGE7CiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7CiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsKICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsKICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAiYXBpIjoKICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOwogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5hcGkudGl0bGV9fSIgKyAiOiI7CiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7CiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KHNldHRpbmdzS2V5KTsKICAgICAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhOwogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOwogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7CiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7CiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgImVuYWJsZU1hcHBlZENoYW5uZWxzIjoKICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOwogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5lbmFibGVNYXBwZWRDaGFubmVscy50aXRsZX19IiArICI6IjsKICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsKICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goc2V0dGluZ3NLZXkpOwogICAgICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGE7CiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7CiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsKICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsKICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgLy8gU2VsZWN0CiAgICAgICAgICAgIGNhc2UgImhvc3RJUCI6CiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsKICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MuaG9zdElQLnRpdGxlfX0iICsgIjoiOwogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOwogICAgICAgICAgICAgICAgdmFyIHRleHQgPSBTRVJWRVJbImlwQWRkcmVzc2VzVjRIb3N0Il07CiAgICAgICAgICAgICAgICB2YXIgdmFsdWVzID0gU0VSVkVSWyJpcEFkZHJlc3Nlc1Y0SG9zdCJdOwogICAgICAgICAgICAgICAgdmFyIHNlbGVjdCA9IGNvbnRlbnQuY3JlYXRlU2VsZWN0KHRleHQsIHZhbHVlcywgZGF0YSwgc2V0dGluZ3NLZXkpOwogICAgICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsKICAgICAgICAgICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQoc2VsZWN0KTsKICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsKICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAiaG9zdE5hbWUiOgogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7CiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmhvc3ROYW1lLnRpdGxlfX0iICsgIjoiOwogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOwogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsICJob3N0TmFtZSIsIGRhdGEpOwogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5zZXR0aW5ncy5ob3N0TmFtZS5wbGFjZWhvbGRlcn19Iik7CiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7CiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsKICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsKICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAidHVuZXIiOgogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7CiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLnR1bmVyLnRpdGxlfX0iICsgIjoiOwogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOwogICAgICAgICAgICAgICAgdmFyIHRleHQgPSBuZXcgQXJyYXkoKTsKICAgICAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBuZXcgQXJyYXkoKTsKICAgICAgICAgICAgICAgIGZvciAodmFyIGkgPSAxOyBpIDw9IDEwMDsgaSsrKSB7CiAgICAgICAgICAgICAgICAgICAgdGV4dC5wdXNoKGkpOwogICAgICAgICAgICAgICAgICAgIHZhbHVlcy5wdXNoKGkpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgdmFyIHNlbGVjdCA9IGNvbnRlbnQuY3JlYXRlU2VsZWN0KHRleHQsIHZhbHVlcywgZGF0YSwgc2V0dGluZ3NLZXkpOwogICAgICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsKICAgICAgICAgICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQoc2VsZWN0KTsKICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsKICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAiZXBnU291cmNlIjoKICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOwogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5lcGdTb3VyY2UudGl0bGV9fSIgKyAiOiI7CiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7CiAgICAgICAgICAgICAgICB2YXIgdGV4dCA9IFsiUE1TIiwgIlhFUEciXTsKICAgICAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBbIlBNUyIsICJYRVBHIl07CiAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCBkYXRhLCBzZXR0aW5nc0tleSk7CiAgICAgICAgICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOwogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChzZWxlY3QpOwogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOwogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJkZWZhdWx0TWlzc2luZ0VQRyI6CiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsKICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MuZGVmYXVsdE1pc3NpbmdFUEcudGl0bGV9fSIgKyAiOiI7CiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7CiAgICAgICAgICAgICAgICB2YXIgdGV4dCA9IFsKICAgICAgICAgICAgICAgICAgICAiLSIsICIzMCBNaW51dGVzICgzMF9NaW51dGVzKSIsICI2MCBNaW51dGVzICg2MF9NaW51dGVzKSIsICI5MCBNaW51dGVzICg5MF9NaW51dGVzKSIsCiAgICAgICAgICAgICAgICAgICAgIjEyMCBNaW51dGVzICgxMjBfTWludXRlcykiLCAiMTgwIE1pbnV0ZXMgKDE4MF9NaW51dGVzKSIsICIyNDAgTWludXRlcyAoMjQwX01pbnV0ZXMpIiwgIjM2MCBNaW51dGVzICgzNjBfTWludXRlcykiCiAgICAgICAgICAgICAgICBdOwogICAgICAgICAgICAgICAgdmFyIHZhbHVlcyA9IFsKICAgICAgICAgICAgICAgICAgICAiLSIsICIzMF9NaW51dGVzIiwgIjYwX01pbnV0ZXMiLCAiOTBfTWludXRlcyIsICIxMjBfTWludXRlcyIsICIxODBfTWludXRlcyIsICIyNDBfTWludXRlcyIsICIzNjBfTWludXRlcyIKICAgICAgICAgICAgICAgIF07CiAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCBkYXRhLCBzZXR0aW5nc0tleSk7CiAgICAgICAgICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOwogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChzZWxlY3QpOwogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOwogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJiYWNrdXAua2VlcCI6CiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsKICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MuYmFja3VwS2VlcC50aXRsZX19IiArICI6IjsKICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsKICAgICAgICAgICAgICAgIHZhciB0ZXh0ID0gWyI1IiwgIjEwIiwgIjIwIiwgIjMwIiwgIjQwIiwgIjUwIl07CiAgICAgICAgICAgICAgICB2YXIgdmFsdWVzID0gWyI1IiwgIjEwIiwgIjIwIiwgIjMwIiwgIjQwIiwgIjUwIl07CiAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCBkYXRhLCBzZXR0aW5nc0tleSk7CiAgICAgICAgICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOwogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChzZWxlY3QpOwogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOwogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJidWZmZXIuc2l6ZS5rYiI6CiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsKICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MuYnVmZmVyU2l6ZS50aXRsZX19IiArICI6IjsKICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsKICAgICAgICAgICAgICAgIHZhciB0ZXh0ID0gWyIwLjUgTUIiLCAiMSBNQiIsICIyIE1CIiwgIjMgTUIiLCAiNCBNQiIsICI1IE1CIiwgIjYgTUIiLCAiNyBNQiIsICI4IE1CIl07CiAgICAgICAgICAgICAgICB2YXIgdmFsdWVzID0gWyI1MTIiLCAiMTAyNCIsICIyMDQ4IiwgIjMwNzIiLCAiNDA5NiIsICI1MTIwIiwgIjYxNDQiLCAiNzE2OCIsICI4MTkyIl07CiAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCBkYXRhLCBzZXR0aW5nc0tleSk7CiAgICAgICAgICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOwogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChzZWxlY3QpOwogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOwogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJidWZmZXIiOgogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7CiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLnN0cmVhbUJ1ZmZlcmluZy50aXRsZX19IiArICI6IjsKICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsKICAgICAgICAgICAgICAgIHZhciB0ZXh0ID0gWyJ7ey5zZXR0aW5ncy5zdHJlYW1CdWZmZXJpbmcuaW5mb19mYWxzZX19IiwgInhUZVZlOiAoe3suc2V0dGluZ3Muc3RyZWFtQnVmZmVyaW5nLmluZm9feHRldmV9fSkiLCAiRkZtcGVnOiAoe3suc2V0dGluZ3Muc3RyZWFtQnVmZmVyaW5nLmluZm9fZmZtcGVnfX0pIiwgIlZMQzogKHt7LnNldHRpbmdzLnN0cmVhbUJ1ZmZlcmluZy5pbmZvX3ZsY319KSJdOwogICAgICAgICAgICAgICAgdmFyIHZhbHVlcyA9IFsiLSIsICJ4dGV2ZSIsICJmZm1wZWciLCAidmxjIl07CiAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCBkYXRhLCBzZXR0aW5nc0tleSk7CiAgICAgICAgICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOwogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChzZWxlY3QpOwogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOwogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJ1ZHB4eSI6CiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsKICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MudWRweHkudGl0bGV9fSIgKyAiOiI7CiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7CiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgInVkcHh5IiwgZGF0YSk7CiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnNldHRpbmdzLnVkcHh5LnBsYWNlaG9sZGVyfX0iKTsKICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsKICAgICAgICAgICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQoaW5wdXQpOwogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOwogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgIH0KICAgICAgICByZXR1cm4gc2V0dGluZzsKICAgIH0KICAgIGNyZWF0ZURlc2NyaXB0aW9uKHNldHRpbmdzS2V5KSB7CiAgICAgICAgdmFyIGRlc2NyaXB0aW9uID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVFIiKTsKICAgICAgICB2YXIgdGV4dDsKICAgICAgICBzd2l0Y2ggKHNldHRpbmdzS2V5KSB7CiAgICAgICAgICAgIGNhc2UgInRsc01vZGUiOgogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy50bHNNb2RlLmRlc2NyaXB0aW9ufX0iOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgImRpc2FsbG93VVJMRHVwbGljYXRlcyI6CiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLmRpc2FsbG93VVJMRHVwbGljYXRlcy5kZXNjcmlwdGlvbn19IjsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJhdXRoZW50aWNhdGlvbi53ZWIiOgogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5hdXRoZW50aWNhdGlvbldFQi5kZXNjcmlwdGlvbn19IjsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJhdXRoZW50aWNhdGlvbi5tM3UiOgogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5hdXRoZW50aWNhdGlvbk0zVS5kZXNjcmlwdGlvbn19IjsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJhdXRoZW50aWNhdGlvbi5wbXMiOgogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5hdXRoZW50aWNhdGlvblBNUy5kZXNjcmlwdGlvbn19IjsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJhdXRoZW50aWNhdGlvbi54bWwiOgogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5hdXRoZW50aWNhdGlvblhNTC5kZXNjcmlwdGlvbn19IjsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJhdXRoZW50aWNhdGlvbi5hcGkiOgogICAgICAgICAgICAgICAgaWYgKFNFUlZFUlsic2V0dGluZ3MiXVsiYXV0aGVudGljYXRpb24ud2ViIl0gPT0gdHJ1ZSkgewogICAgICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MuYXV0aGVudGljYXRpb25BUEkuZGVzY3JpcHRpb259fSI7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAieHRldmVBdXRvVXBkYXRlIjoKICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MueHRldmVBdXRvVXBkYXRlLmRlc2NyaXB0aW9ufX0iOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgImJhY2t1cC5rZWVwIjoKICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MuYmFja3VwS2VlcC5kZXNjcmlwdGlvbn19IjsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJiYWNrdXAucGF0aCI6CiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLmJhY2t1cFBhdGguZGVzY3JpcHRpb259fSI7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAidGVtcC5wYXRoIjoKICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MudGVtcFBhdGguZGVzY3JpcHRpb259fSI7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAiYnVmZmVyIjoKICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3Muc3RyZWFtQnVmZmVyaW5nLmRlc2NyaXB0aW9ufX0iOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgImJ1ZmZlci5zaXplLmtiIjoKICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MuYnVmZmVyU2l6ZS5kZXNjcmlwdGlvbn19IjsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJzdG9yZUJ1ZmZlckluUkFNIjoKICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3Muc3RvcmVCdWZmZXJJblJBTS5kZXNjcmlwdGlvbn19IjsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJidWZmZXIudGltZW91dCI6CiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLmJ1ZmZlclRpbWVvdXQuZGVzY3JpcHRpb259fSI7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAidXNlci5hZ2VudCI6CiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLnVzZXJBZ2VudC5kZXNjcmlwdGlvbn19IjsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJmZm1wZWcucGF0aCI6CiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLmZmbXBlZ1BhdGguZGVzY3JpcHRpb259fSI7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAiZmZtcGVnLm9wdGlvbnMiOgogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5mZm1wZWdPcHRpb25zLmRlc2NyaXB0aW9ufX0iOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgInZsYy5wYXRoIjoKICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MudmxjUGF0aC5kZXNjcmlwdGlvbn19IjsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJ2bGMub3B0aW9ucyI6CiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLnZsY09wdGlvbnMuZGVzY3JpcHRpb259fSI7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAiZXBnU291cmNlIjoKICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MuZXBnU291cmNlLmRlc2NyaXB0aW9ufX0iOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgImhvc3RJUCI6CiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLmhvc3RJUC5kZXNjcmlwdGlvbn19IjsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJob3N0TmFtZSI6CiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLmhvc3ROYW1lLmRlc2NyaXB0aW9ufX0iOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgInR1bmVyIjoKICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MudHVuZXIuZGVzY3JpcHRpb259fSI7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAidXBkYXRlIjoKICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MudXBkYXRlLmRlc2NyaXB0aW9ufX0iOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgImNsZWFyWE1MVFZDYWNoZSI6CiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLmNsZWFyWE1MVFZDYWNoZS5kZXNjcmlwdGlvbn19IjsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJhcGkiOgogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5hcGkuZGVzY3JpcHRpb259fSI7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAiZGVmYXVsdE1pc3NpbmdFUEciOgogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5kZWZhdWx0TWlzc2luZ0VQRy5kZXNjcmlwdGlvbn19IjsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJlbmFibGVNYXBwZWRDaGFubmVscyI6CiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLmVuYWJsZU1hcHBlZENoYW5uZWxzLmRlc2NyaXB0aW9ufX0iOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgImZpbGVzLnVwZGF0ZSI6CiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLmZpbGVzVXBkYXRlLmRlc2NyaXB0aW9ufX0iOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgImNhY2hlLmltYWdlcyI6CiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLmNhY2hlSW1hZ2VzLmRlc2NyaXB0aW9ufX0iOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgInhlcGcucmVwbGFjZS5taXNzaW5nLmltYWdlcyI6CiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLnJlcGxhY2VFbXB0eUltYWdlcy5kZXNjcmlwdGlvbn19IjsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJ1ZHB4eSI6CiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLnVkcHh5LmRlc2NyaXB0aW9ufX0iOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICAgICB0ZXh0ID0gIiI7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICB9CiAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7CiAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICIiOwogICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsKICAgICAgICB2YXIgcHJlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiUFJFIik7CiAgICAgICAgcHJlLmlubmVySFRNTCA9IHRleHQ7CiAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChwcmUpOwogICAgICAgIGRlc2NyaXB0aW9uLmFwcGVuZENoaWxkKHRkTGVmdCk7CiAgICAgICAgZGVzY3JpcHRpb24uYXBwZW5kQ2hpbGQodGRSaWdodCk7CiAgICAgICAgcmV0dXJuIGRlc2NyaXB0aW9uOwogICAgfQp9CmNsYXNzIFNldHRpbmdzQ2F0ZWdvcnlJdGVtIGV4dGVuZHMgU2V0dGluZ3NDYXRlZ29yeSB7CiAgICBjb25zdHJ1Y3RvcihoZWFkbGluZSwgc2V0dGluZ3NLZXlzKSB7CiAgICAgICAgc3VwZXIoKTsKICAgICAgICB0aGlzLmhlYWRsaW5lID0gaGVhZGxpbmU7CiAgICAgICAgdGhpcy5zZXR0aW5nc0tleXMgPSBzZXR0aW5nc0tleXM7CiAgICB9CiAgICBjcmVhdGVDYXRlZ29yeSgpIHsKICAgICAgICB2YXIgaGVhZGxpbmUgPSB0aGlzLmNyZWF0ZUNhdGVnb3J5SGVhZGxpbmUodGhpcy5oZWFkbGluZSk7CiAgICAgICAgdmFyIHNldHRpbmdzS2V5cyA9IHRoaXMuc2V0dGluZ3NLZXlzOwogICAgICAgIHZhciBkb2MgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCh0aGlzLkRvY3VtZW50SUQpOwogICAgICAgIGRvYy5hcHBlbmRDaGlsZChoZWFkbGluZSk7CiAgICAgICAgLy8gQ3JlYXRlIGEgdGFibGUgZm9yIHRoZSBjYXRlZ29yeQogICAgICAgIHZhciB0YWJsZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlRBQkxFIik7CiAgICAgICAgdmFyIGtleXMgPSBzZXR0aW5nc0tleXMuc3BsaXQoIiwiKTsKICAgICAgICBrZXlzLmZvckVhY2goc2V0dGluZ3NLZXkgPT4gewogICAgICAgICAgICBzd2l0Y2ggKHNldHRpbmdzS2V5KSB7CiAgICAgICAgICAgICAgICBjYXNlICJhdXRoZW50aWNhdGlvbi5wbXMiOgogICAgICAgICAgICAgICAgY2FzZSAiYXV0aGVudGljYXRpb24ubTN1IjoKICAgICAgICAgICAgICAgIGNhc2UgImF1dGhlbnRpY2F0aW9uLnhtbCI6CiAgICAgICAgICAgICAgICBjYXNlICJhdXRoZW50aWNhdGlvbi5hcGkiOgogICAgICAgICAgICAgICAgICAgIGlmIChTRVJWRVJbInNldHRpbmdzIl1bImF1dGhlbnRpY2F0aW9uLndlYiJdID09IGZhbHNlKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICAgICAgICAgdmFyIGl0ZW0gPSB0aGlzLmNyZWF0ZVNldHRpbmdzKHNldHRpbmdzS2V5KTsKICAgICAgICAgICAgICAgICAgICB2YXIgZGVzY3JpcHRpb24gPSB0aGlzLmNyZWF0ZURlc2NyaXB0aW9uKHNldHRpbmdzS2V5KTsKICAgICAgICAgICAgICAgICAgICB0YWJsZS5hcHBlbmRDaGlsZChpdGVtKTsKICAgICAgICAgICAgICAgICAgICB0YWJsZS5hcHBlbmRDaGlsZChkZXNjcmlwdGlvbik7CiAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIH0KICAgICAgICB9KTsKICAgICAgICBkb2MuYXBwZW5kQ2hpbGQodGFibGUpOwogICAgICAgIGRvYy5hcHBlbmRDaGlsZCh0aGlzLmNyZWF0ZUhSKCkpOwogICAgfQp9CmZ1bmN0aW9uIHNob3dTZXR0aW5ncygpIHsKICAgIGZvciAobGV0IGkgPSAwOyBpIDwgc2V0dGluZ3NDYXRlZ29yeS5sZW5ndGg7IGkrKykgewogICAgICAgIHNldHRpbmdzQ2F0ZWdvcnlbaV0uY3JlYXRlQ2F0ZWdvcnkoKTsKICAgIH0KfQpmdW5jdGlvbiBzYXZlU2V0dGluZ3MoKSB7CiAgICB2YXIgY21kID0gInNhdmVTZXR0aW5ncyI7CiAgICB2YXIgZGl2ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnRlbnRfc2V0dGluZ3MiKTsKICAgIHZhciBzZXR0aW5ncyA9IGRpdi5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCJjaGFuZ2VkIik7CiAgICB2YXIgbmV3U2V0dGluZ3MgPSBuZXcgT2JqZWN0KCk7CiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHNldHRpbmdzLmxlbmd0aDsgaSsrKSB7CiAgICAgICAgdmFyIG5hbWU7CiAgICAgICAgdmFyIHZhbHVlOwogICAgICAgIHN3aXRjaCAoc2V0dGluZ3NbaV0udGFnTmFtZSkgewogICAgICAgICAgICBjYXNlICJJTlBVVCI6CiAgICAgICAgICAgICAgICBzd2l0Y2ggKHNldHRpbmdzW2ldLnR5cGUpIHsKICAgICAgICAgICAgICAgICAgICBjYXNlICJjaGVja2JveCI6CiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWUgPSBzZXR0aW5nc1tpXS5uYW1lOwogICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IHNldHRpbmdzW2ldLmNoZWNrZWQ7CiAgICAgICAgICAgICAgICAgICAgICAgIG5ld1NldHRpbmdzW25hbWVdID0gdmFsdWU7CiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICAgIGNhc2UgInRleHQiOgogICAgICAgICAgICAgICAgICAgICAgICBuYW1lID0gc2V0dGluZ3NbaV0ubmFtZTsKICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSBzZXR0aW5nc1tpXS52YWx1ZTsKICAgICAgICAgICAgICAgICAgICAgICAgc3dpdGNoIChuYW1lKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYXNlICJ1cGRhdGUiOgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlID0gdmFsdWUuc3BsaXQoIiwiKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IHZhbHVlLmZpbHRlcihmdW5jdGlvbiAoZSkgeyByZXR1cm4gZTsgfSk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYXNlICJidWZmZXIudGltZW91dCI6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSBwYXJzZUZsb2F0KHZhbHVlKTsKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICBuZXdTZXR0aW5nc1tuYW1lXSA9IHZhbHVlOwogICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJTRUxFQ1QiOgogICAgICAgICAgICAgICAgbmFtZSA9IHNldHRpbmdzW2ldLm5hbWU7CiAgICAgICAgICAgICAgICB2YWx1ZSA9IHNldHRpbmdzW2ldLnZhbHVlOwogICAgICAgICAgICAgICAgLy8gSWYgdGhlIHZhbHVlIGlzIGEgbnVtYmVyLCBzdG9yZSBpdCBhcyBhIG51bWJlcgogICAgICAgICAgICAgICAgaWYgKGlzTmFOKHZhbHVlKSkgewogICAgICAgICAgICAgICAgICAgIG5ld1NldHRpbmdzW25hbWVdID0gdmFsdWU7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgICAgICBuZXdTZXR0aW5nc1tuYW1lXSA9IHBhcnNlSW50KHZhbHVlKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgIH0KICAgIH0KICAgIHZhciBkYXRhID0gbmV3IE9iamVjdCgpOwogICAgZGF0YVsic2V0dGluZ3MiXSA9IG5ld1NldHRpbmdzOwogICAgdmFyIHNlcnZlciA9IG5ldyBTZXJ2ZXIoY21kKTsKICAgIHNlcnZlci5yZXF1ZXN0KGRhdGEpOwp9Cg==" - webUI["html/lang/en.json"] = "ewogICJtYWluTWVudSI6IHsKICAgICJpdGVtIjogewogICAgICAicGxheWxpc3QiOiAiUGxheWxpc3QiLAogICAgICAicG1zSUQiOiAiUE1TIElEIiwKICAgICAgImZpbHRlciI6ICJGaWx0ZXIiLAogICAgICAieG1sdHYiOiAiWE1MVFYiLAogICAgICAibWFwcGluZyI6ICJNYXBwaW5nIiwKICAgICAgInVzZXJzIjogIlVzZXJzIiwKICAgICAgInNldHRpbmdzIjogIlNldHRpbmdzIiwKICAgICAgImxvZyI6ICJMb2ciLAogICAgICAibG9nb3V0IjogIkxvZ291dCIKICAgIH0sCiAgICAiaGVhZGxpbmUiOiB7CiAgICAgICJwbGF5bGlzdCI6ICJMb2NhbCBvciByZW1vdGUgcGxheWxpc3RzIiwKICAgICAgImZpbHRlciI6ICJGaWx0ZXIgcGxheWxpc3QiLAogICAgICAieG1sdHYiOiAiTG9jYWwgb3IgcmVtb3RlIFhNTFRWIGZpbGVzIiwKICAgICAgIm1hcHBpbmciOiAiTWFwIHBsYXlsaXN0IGNoYW5uZWxzIHRvIEVQRyBjaGFubmVscyIsCiAgICAgICJ1c2VycyI6ICJVc2VyIG1hbmFnZW1lbnQiLAogICAgICAic2V0dGluZ3MiOiAiU2V0dGluZ3MiLAogICAgICAibG9nIjogIkxvZyIsCiAgICAgICJsb2dvdXQiOiAiTG9nb3V0IgogICAgfQogIH0sCiAgImNvbmZpcm0iOiB7CiAgICAicmVzdG9yZSI6ICJBbGwgZGF0YSB3aWxsIGJlIHJlcGxhY2VkIHdpdGggdGhvc2UgZnJvbSB0aGUgYmFja3VwLiBTaG91bGQgdGhlIGZpbGVzIGJlIHJlc3RvcmVkPyIKICB9LAogICJhbGVydCI6IHsKICAgICJmaWxlTG9hZGluZ0Vycm9yIjogIkZpbGUgY291bGRuJ3QgYmUgbG9hZGVkIiwKICAgICJpbnZhbGlkQ2hhbm5lbE51bWJlciI6ICJJbnZhbGlkIGNoYW5uZWwgbnVtYmVyIiwKICAgICJtaXNzaW5nSW5wdXQiOiAiTWlzc2luZyBpbnB1dCIKICB9LAogICJidXR0b24iOiB7CiAgICAiYmFjayI6ICJCYWNrIiwKICAgICJiYWNrdXAiOiAiQmFja3VwIiwKICAgICJidWxrRWRpdCI6ICJCdWxrIEVkaXQiLAogICAgImNhbmNlbCI6ICJDYW5jZWwiLAogICAgImRlbGV0ZSI6ICJEZWxldGUiLAogICAgImRvbmUiOiAiRG9uZSIsCiAgICAibG9naW4iOiAiTG9naW4iLAogICAgIm5ldyI6ICJOZXciLAogICAgIm5leHQiOiAiTmV4dCIsCiAgICAicmVzdG9yZSI6ICJSZXN0b3JlIiwKICAgICJzYXZlIjogIlNhdmUiLAogICAgInNlYXJjaCI6ICJTZWFyY2giLAogICAgInVwZGF0ZSI6ICJVcGRhdGUiLAogICAgImNyYWV0ZUFjY291bnQiOiAiQ3JlYXRlIEFjY291bnQiLAogICAgInJlc2V0TG9ncyI6ICJSZXNldCBMb2dzIiwKICAgICJ1cGxvYWRMb2dvIjogIlVwbG9hZCBMb2dvIgogIH0sCiAgImZpbHRlciI6IHsKICAgICJ0YWJsZSI6IHsKICAgICAgInN0YXJ0aW5nQ2hhbm5lbCI6ICJTdGFydGluZyBDaC4gTm8uIiwKICAgICAgIm5hbWUiOiAiRmlsdGVyIE5hbWUiLAogICAgICAidHlwZSI6ICJGaWx0ZXIgVHlwZSIsCiAgICAgICJmaWx0ZXIiOiAiRmlsdGVyIgogICAgfSwKICAgICJjdXN0b20iOiAiQ3VzdG9tIiwKICAgICJncm91cCI6ICJNM1UgR3JvdXAiLAogICAgIm5hbWUiOiB7CiAgICAgICJ0aXRsZSI6ICJGaWx0ZXIgTmFtZSIsCiAgICAgICJwbGFjZWhvbGRlciI6ICJGaWx0ZXIgbmFtZSIsCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiCiAgICB9LAogICAgImRlc2NyaXB0aW9uIjogewogICAgICAidGl0bGUiOiAiRGVzY3JpcHRpb24iLAogICAgICAicGxhY2Vob2xkZXIiOiAiRGVzY3JpcHRpb24iLAogICAgICAiZGVzY3JpcHRpb24iOiAiIgogICAgfSwKICAgICJ0eXBlIjogewogICAgICAidGl0bGUiOiAiVHlwZSIsCiAgICAgICJncm91cFRpdGxlIjogIkdyb3VwIFRpdGxlIiwKICAgICAgImN1c3RvbUZpbHRlciI6ICJDdXN0b20gRmlsdGVyIgogICAgfSwKICAgICJjYXNlU2Vuc2l0aXZlIjogewogICAgICAidGl0bGUiOiAiQ2FzZSBTZW5zaXRpdmUiLAogICAgICAicGxhY2Vob2xkZXIiOiAiIiwKICAgICAgImRlc2NyaXB0aW9uIjogIiIKICAgIH0sCiAgICAiZmlsdGVyUnVsZSI6IHsKICAgICAgInRpdGxlIjogIkZpbHRlciBSdWxlIiwKICAgICAgInBsYWNlaG9sZGVyIjogIlNwb3J0IHtIRH0gIXtFUyxJVH0iLAogICAgICAiZGVzY3JpcHRpb24iOiAiIgogICAgfSwKICAgICJmaWx0ZXJHcm91cCI6IHsKICAgICAgInRpdGxlIjogIkdyb3VwIFRpdGxlIiwKICAgICAgInBsYWNlaG9sZGVyIjogIiIsCiAgICAgICJkZXNjcmlwdGlvbiI6ICJTZWxlY3QgYSBNM1UgZ3JvdXAuIChDb3VudGVyKTxicj5DaGFuZ2luZyB0aGUgZ3JvdXAgdGl0bGUgaW4gdGhlIE0zVSBpbnZhbGlkYXRlcyB0aGUgZmlsdGVyLiIKICAgIH0sCiAgICAiaW5jbHVkZSI6IHsKICAgICAgInRpdGxlIjogIkluY2x1ZGUiLAogICAgICAicGxhY2Vob2xkZXIiOiAiRkhELFVIRCIsCiAgICAgICJkZXNjcmlwdGlvbiI6ICJDaGFubmVsIG5hbWUgbXVzdCBpbmNsdWRlLjxicj4oQ29tbWEgc2VwYXJhdGVkKSBDb21tYSBtZWFucyBvciIKICAgIH0sCiAgICAiZXhjbHVkZSI6IHsKICAgICAgInRpdGxlIjogIkV4Y2x1ZGUiLAogICAgICAicGxhY2Vob2xkZXIiOiAiRVMsSVQiLAogICAgICAiZGVzY3JpcHRpb24iOiAiQ2hhbm5lbCBuYW1lIG11c3Qgbm90IGNvbnRhaW4uPGJyPihDb21tYSBzZXBhcmF0ZWQpIENvbW1hIG1lYW5zIG9yIgogICAgfSwKICAgICJwcmVzZXJ2ZU1hcHBpbmciOiB7CiAgICAgICJ0aXRsZSI6ICJQcmVzZXJ2ZSBFeGlzdGluZyBNM1U8YnI+Q2hhbm5lbCBOdW1iZXJzIiwKICAgICAgInBhbGNlaG9sZGVyIjogIiIsCiAgICAgICJkZXNjcmlwdGlvbiI6ICJQcmVzZXJ2ZSBleGlzdGluZyBNM1UgcGxheWxpc3QgY2hhbm5lbCBudW1iZXJzPyIKICAgIH0sCiAgICAic3RhcnRpbmdDaGFubmVsIjogewogICAgICAidGl0bGUiOiAiU3RhcnRpbmcgQ2hhbm5lbCBOdW1iZXIiLAogICAgICAicGxhY2Vob2xkZXIiOiAiIiwKICAgICAgImRlc2NyaXB0aW9uIjogIiIKICAgIH0KICB9LAogICJwbGF5bGlzdCI6IHsKICAgICJ0YWJsZSI6IHsKICAgICAgInBsYXlsaXN0IjogIlBsYXlsaXN0IiwKICAgICAgInR1bmVyIjogIlR1bmVyIiwKICAgICAgImxhc3RVcGRhdGUiOiAiTGFzdCBVcGRhdGUiLAogICAgICAiYXZhaWxhYmlsaXR5IjogIkF2YWlsYWJpbGl0eSIsCiAgICAgICJ0eXBlIjogIlR5cGUiLAogICAgICAic3RyZWFtcyI6ICJTdHJlYW1zIiwKICAgICAgImdyb3VwVGl0bGUiOiAiZ3JvdXAtdGl0bGUiLAogICAgICAidHZnSUQiOiAidHZnLWlkIiwKICAgICAgInVuaXF1ZUlEIjogIlVuaXF1ZSBJRCIKICAgIH0sCiAgICAicGxheWxpc3RUeXBlIjogewogICAgICAidGl0bGUiOiAiUGxheWxpc3QgdHlwZSIsCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLAogICAgICAiZGVzY3JpcHRpb24iOiAiIgogICAgfSwKICAgICJ0eXBlIjogewogICAgICAidGl0bGUiOiAiVHlwZSIsCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLAogICAgICAiZGVzY3JpcHRpb24iOiAiIgogICAgfSwKICAgICJuYW1lIjogewogICAgICAidGl0bGUiOiAiTmFtZSIsCiAgICAgICJwbGFjZWhvbGRlciI6ICJQbGF5bGlzdCBuYW1lIiwKICAgICAgImRlc2NyaXB0aW9uIjogIiIKICAgIH0sCiAgICAiZGVzY3JpcHRpb24iOiB7CiAgICAgICJ0aXRsZSI6ICJEZXNjcmlwdGlvbiIsCiAgICAgICJwbGFjZWhvbGRlciI6ICJEZXNjcmlwdGlvbiIsCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiCiAgICB9LAogICAgImZpbGVNM1UiOiB7CiAgICAgICJ0aXRsZSI6ICJNM1UgRmlsZSIsCiAgICAgICJwbGFjZWhvbGRlciI6ICJGaWxlIHBhdGggb3IgVVJMIG9mIHRoZSBNM1UiLAogICAgICAiZGVzY3JpcHRpb24iOiAiIgogICAgfSwKICAgICJmaWxlSERIUiI6IHsKICAgICAgInRpdGxlIjogIkhESG9tZVJ1biBJUCIsCiAgICAgICJwbGFjZWhvbGRlciI6ICJJUCBhZGRyZXNzIGFuZCBwb3J0ICgxOTIuMTY4LjEuMTA6NTAwNCkiLAogICAgICAiZGVzY3JpcHRpb24iOiAiIgogICAgfSwKICAgICJ0dW5lciI6IHsKICAgICAgInRpdGxlIjogIlR1bmVyIC8gU3RyZWFtcyIsCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLAogICAgICAiZGVzY3JpcHRpb24iOiAiTnVtYmVyIG9mIHBhcmFsbGVsIGNvbm5lY3Rpb25zIHRoYXQgY2FuIGJlIGVzdGFibGlzaGVkIHRvIHRoZSBwcm92aWRlci4gPGJyPk9ubHkgYXZhaWxhYmxlIHdpdGggYWN0aXZhdGVkIGJ1ZmZlci48YnI+TmV3IHNldHRpbmdzIHdpbGwgb25seSBiZSBhcHBsaWVkIGFmdGVyIHF1aXR0aW5nIGFsbCBzdHJlYW1zLiIKICAgIH0KICB9LAogICJ4bWx0diI6IHsKICAgICJ0YWJsZSI6IHsKICAgICAgImd1aWRlIjogIkd1aWRlIiwKICAgICAgImxhc3RVcGRhdGUiOiAiTGFzdCBVcGRhdGUiLAogICAgICAiYXZhaWxhYmlsaXR5IjogIkF2YWlsYWJpbGl0eSIsCiAgICAgICJjaGFubmVscyI6ICJDaGFubmVscyIsCiAgICAgICJwcm9ncmFtcyI6ICJQcm9ncmFtcyIKICAgIH0sCiAgICAibmFtZSI6IHsKICAgICAgInRpdGxlIjogIk5hbWUiLAogICAgICAicGxhY2Vob2xkZXIiOiAiR3VpZGUgbmFtZSIsCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiCiAgICB9LAogICAgImRlc2NyaXB0aW9uIjogewogICAgICAidGl0bGUiOiAiRGVzY3JpcHRpb24iLAogICAgICAicGxhY2Vob2xkZXIiOiAiRGVzY3JpcHRpb24iLAogICAgICAiZGVzY3JpcHRpb24iOiAiIgogICAgfSwKICAgICJmaWxlWE1MVFYiOiB7CiAgICAgICJ0aXRsZSI6ICJYTUxUViBGaWxlIiwKICAgICAgInBsYWNlaG9sZGVyIjogIkZpbGUgcGF0aCBvciBVUkwgb2YgdGhlIFhNTFRWIiwKICAgICAgImRlc2NyaXB0aW9uIjogIiIKICAgIH0KICB9LAogICJtYXBwaW5nIjogewogICAgInRhYmxlIjogewogICAgICAiY2hObyI6ICJDaC4gTm8uIiwKICAgICAgImxvZ28iOiAiTG9nbyIsCiAgICAgICJjaGFubmVsTmFtZSI6ICJDaGFubmVsIE5hbWUiLAogICAgICAidXBkYXRlQ2hhbm5lbE5hbWVSZWdleCI6ICJVcGQuIFJ4LiIsCiAgICAgICJwbGF5bGlzdCI6ICJQbGF5bGlzdCIsCiAgICAgICJncm91cFRpdGxlIjogIkdyb3VwIFRpdGxlIiwKICAgICAgInhtbHR2RmlsZSI6ICJYTUxUViBGaWxlIiwKICAgICAgInhtbHR2SUQiOiAiWE1MVFYgSUQiLAogICAgICAidGltZXNoaWZ0IjogIlRpbWVzaGlmdCIKICAgIH0sCiAgICAiYWN0aXZlIjogewogICAgICAidGl0bGUiOiAiQWN0aXZlIiwKICAgICAgInBsYWNlaG9sZGVyIjogIiIsCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiCiAgICB9LAogICAgImNoYW5uZWxOYW1lIjogewogICAgICAidGl0bGUiOiAiQ2hhbm5lbCBOYW1lIiwKICAgICAgInBsYWNlaG9sZGVyIjogIiIsCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiCiAgICB9LAogICAgImRlc2NyaXB0aW9uIjogewogICAgICAidGl0bGUiOiAiQ2hhbm5lbCBEZXNjcmlwdGlvbiIsCiAgICAgICJwbGFjZWhvbGRlciI6ICJVc2VkIGJ5IHRoZSBEdW1teSBhcyBhbiBYTUwgZGVzY3JpcHRpb24iLAogICAgICAiZGVzY3JpcHRpb24iOiAiIgogICAgfSwKICAgICJ1cGRhdGVDaGFubmVsTmFtZSI6IHsKICAgICAgInRpdGxlIjogIlVwZGF0ZSBDaGFubmVsIE5hbWUiLAogICAgICAicGxhY2Vob2xkZXIiOiAiIiwKICAgICAgImRlc2NyaXB0aW9uIjogIiIKICAgIH0sCiAgICAidXBkYXRlQ2hhbm5lbE5hbWVSZWdleCI6IHsKICAgICAgInRpdGxlIjogIkNoYW5uZWwgbmFtZSB1cGRhdGUgcmVnZXgiLAogICAgICAicGxhY2Vob2xkZXIiOiAiRm9yIGV4YW1wbGUgXlBQVlsgXFxcXC1fXT8xLioiLAogICAgICAiZGVzY3JpcHRpb24iOiAiT24gdXBkYXRlLCBpZiBhbnkgbmV3IGNoYW5uZWwgbmFtZSBtYXRjaGVzIHRoaXMgcmVnZXgsIHJlbmFtZSBjdXJyZW50IGNoYW5uZWwgdG8gdGhlIGZpcnN0IG1hdGNoaW5nIG5hbWUiCiAgICB9LAogICAgInVwZGF0ZUNoYW5uZWxOYW1lQnlHcm91cFJlZ2V4IjogewogICAgICAidGl0bGUiOiAiT25seSBieSBncm91cCByZWdleCIsCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLAogICAgICAiZGVzY3JpcHRpb24iOiAiUmVuYW1lIHRoaXMgY2hhbm5lbCBvbmx5IGlmIGN1cnJlbnQgdXNlci1kZWZpbmVkIGdyb3VwIG1hdGNoZXMgdGhpcyByZWdleCIKICAgIH0sCiAgICAidXBkYXRlQ2hhbm5lbEdyb3VwIjogewogICAgICAidGl0bGUiOiAiVXBkYXRlIENoYW5uZWwgR3JvdXAiLAogICAgICAicGxhY2Vob2xkZXIiOiAiIiwKICAgICAgImRlc2NyaXB0aW9uIjogIklmIGNoZWNrZWQsIHVzZSBncm91cCBmcm9tIHRoZSBkYXRhYmFzZSIKICAgIH0sCiAgICAiY2hhbm5lbExvZ28iOiB7CiAgICAgICJ0aXRsZSI6ICJMb2dvIFVSTCIsCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLAogICAgICAiZGVzY3JpcHRpb24iOiAiIgogICAgfSwKICAgICJ1cGRhdGVDaGFubmVsTG9nbyI6IHsKICAgICAgInRpdGxlIjogIlVwZGF0ZSBDaGFubmVsIExvZ28iLAogICAgICAicGxhY2Vob2xkZXIiOiAiIiwKICAgICAgImRlc2NyaXB0aW9uIjogIiIKICAgIH0sCiAgICAiZXBnQ2F0ZWdvcnkiOiB7CiAgICAgICJ0aXRsZSI6ICJFUEcgQ2F0ZWdvcnkiLAogICAgICAicGxhY2Vob2xkZXIiOiAiIiwKICAgICAgImRlc2NyaXB0aW9uIjogIiIKICAgIH0sCiAgICAibTN1R3JvdXBUaXRsZSI6IHsKICAgICAgInRpdGxlIjogIkdyb3VwIFRpdGxlICh4dGV2ZS5tM3UpIiwKICAgICAgInBsYWNlaG9sZGVyIjogIiIsCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiCiAgICB9LAogICAgInhtbHR2RmlsZSI6IHsKICAgICAgInRpdGxlIjogIlhNTFRWIEZpbGUiLAogICAgICAicGxhY2Vob2xkZXIiOiAiIiwKICAgICAgImRlc2NyaXB0aW9uIjogIiIKICAgIH0sCiAgICAieG1sdHZDaGFubmVsIjogewogICAgICAidGl0bGUiOiAiWE1MVFYgQ2hhbm5lbCIsCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLAogICAgICAiZGVzY3JpcHRpb24iOiAiIgogICAgfSwKICAgICJ0aW1lc2hpZnQiOiB7CiAgICAgICJ0aXRsZSI6ICJUaW1lc2hpZnQiLAogICAgICAicGxhY2Vob2xkZXIiOiAiMCIsCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiCiAgICB9CiAgfSwKICAidXNlcnMiOiB7CiAgICAidGFibGUiOiB7CiAgICAgICJ1c2VybmFtZSI6ICJVc2VybmFtZSIsCiAgICAgICJwYXNzd29yZCI6ICJQYXNzd29yZCIsCiAgICAgICJ3ZWIiOiAiV0VCIiwKICAgICAgInBtcyI6ICJQTVMiLAogICAgICAibTN1IjogIk0zVSIsCiAgICAgICJ4bWwiOiAiWE1MIiwKICAgICAgImFwaSI6ICJBUEkiCiAgICB9LAogICAgInVzZXJuYW1lIjogewogICAgICAidGl0bGUiOiAiVXNlcm5hbWUiLAogICAgICAicGxhY2Vob2xkZXIiOiAiVXNlcm5hbWUiLAogICAgICAiZGVzY3JpcHRpb24iOiAiIgogICAgfSwKICAgICJwYXNzd29yZCI6IHsKICAgICAgInRpdGxlIjogIlBhc3N3b3JkIiwKICAgICAgInBsYWNlaG9sZGVyIjogIlBhc3N3b3JkIiwKICAgICAgImRlc2NyaXB0aW9uIjogIiIKICAgIH0sCiAgICAiY29uZmlybSI6IHsKICAgICAgInRpdGxlIjogIkNvbmZpcm0iLAogICAgICAicGxhY2Vob2xkZXIiOiAiUGFzc3dvcmQgY29uZmlybSIsCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiCiAgICB9LAogICAgIndlYiI6IHsKICAgICAgInRpdGxlIjogIldlYiBBY2Nlc3MiLAogICAgICAicGxhY2Vob2xkZXIiOiAiIiwKICAgICAgImRlc2NyaXB0aW9uIjogIiIKICAgIH0sCiAgICAicG1zIjogewogICAgICAidGl0bGUiOiAiUE1TIEFjY2VzcyIsCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLAogICAgICAiZGVzY3JpcHRpb24iOiAiIgogICAgfSwKICAgICJtM3UiOiB7CiAgICAgICJ0aXRsZSI6ICJNM1UgQWNjZXNzIiwKICAgICAgInBsYWNlaG9sZGVyIjogIiIsCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiCiAgICB9LAogICAgInhtbCI6IHsKICAgICAgInRpdGxlIjogIlhNTCBBY2Nlc3MiLAogICAgICAicGxhY2Vob2xkZXIiOiAiIiwKICAgICAgImRlc2NyaXB0aW9uIjogIiIKICAgIH0sCiAgICAiYXBpIjogewogICAgICAidGl0bGUiOiAiQVBJIEFjY2VzcyIsCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLAogICAgICAiZGVzY3JpcHRpb24iOiAiIgogICAgfQogIH0sCiAgInNldHRpbmdzIjogewogICAgImNhdGVnb3J5IjogewogICAgICAiZ2VuZXJhbCI6ICJHZW5lcmFsIiwKICAgICAgIm1hcHBpbmciOiAiTWFwcGluZyIsCiAgICAgICJmaWxlcyI6ICJGaWxlcyIsCiAgICAgICJzdHJlYW1pbmciOiAiU3RyZWFtaW5nIiwKICAgICAgImJhY2t1cCI6ICJCYWNrdXAiLAogICAgICAiYXV0aGVudGljYXRpb24iOiAiQXV0aGVudGljYXRpb24iCiAgICB9LAogICAgInVwZGF0ZSI6IHsKICAgICAgInRpdGxlIjogIlNjaGVkdWxlIGZvciB1cGRhdGluZyAoUGxheWxpc3QsIFhNTFRWLCBCYWNrdXApIiwKICAgICAgInBsYWNlaG9sZGVyIjogIjAwMDAsMTAwMCwyMDAwIiwKICAgICAgImRlc2NyaXB0aW9uIjogIlRpbWUgaW4gMjQgaG91ciBmb3JtYXQgKDA4MDAgPSA4OjAwIGFtKS4gTW9yZSB0aW1lcyBjYW4gYmUgZW50ZXJlZCBjb21tYSBzZXBhcmF0ZWQuIExlYXZlIHRoaXMgZmllbGQgZW1wdHkgaWYgbm8gdXBkYXRlcyBhcmUgdG8gYmUgY2FycmllZCBvdXQuIgogICAgfSwKICAgICJhcGkiOiB7CiAgICAgICJ0aXRsZSI6ICJBUEkgSW50ZXJmYWNlIiwKICAgICAgImRlc2NyaXB0aW9uIjogIlZpYSBBUEkgaW50ZXJmYWNlIGl0IGlzIHBvc3NpYmxlIHRvIHNlbmQgY29tbWFuZHMgdG8geFRlVmUuIEFQSSBkb2N1bWVudGF0aW9uIGlzIDxhIGhyZWY9J2h0dHBzOi8vZ2l0aHViLmNvbS94dGV2ZS1wcm9qZWN0L3hUZVZlLURvY3VtZW50YXRpb24vYmxvYi9tYXN0ZXIvZW4vY29uZmlndXJhdGlvbi5tZCNhcGknPmhlcmU8L2E+IgogICAgfSwKICAgICJjbGVhclhNTFRWQ2FjaGUiOiB7CiAgICAgICJ0aXRsZSI6ICJDbGVhciBYTUxUViBjYWNoZSIsCiAgICAgICJkZXNjcmlwdGlvbiI6ICJJZiBjaGVja2VkLCBkbyBub3Qga2VlcCBYTUxUViBjYWNoZSBpbiBtZW1vcnkuPGJyPlNpZ25pZmljYWxseSByZWR1Y2VzIFJBTSB1c2FnZSBpbiBpZGxlIG1vZGUsPGJyPmJ1dCBzaWduaWZpY2FsbHkgc2xvd2luZyBkb3duIGV2ZXJ5IHN1YnNlcXVlbnQgdXBkYXRlIGluIFhFUEcgZGF0YWJhc2UuIgogICAgfSwKICAgICJkZWZhdWx0TWlzc2luZ0VQRyI6IHsKICAgICAgInRpdGxlIjogIkZpbGwgTWlzc2luZyBFUEcgRGF0YSIsCiAgICAgICJkZXNjcmlwdGlvbiI6ICJXaGVuIHRoZXJlIGlzIG5vIG1hdGNoaW5nIEVQRyBkYXRhIGZvciBjaGFubmVsLCA8YnI+YXV0b2ZpbGwgd2l0aCB4VGVWZSBkdW1teSBFUEcgZGF0YT8iCiAgICB9LAogICAgImVuYWJsZU1hcHBlZENoYW5uZWxzIjogewogICAgICAidGl0bGUiOiAiRW5hYmxlIG1hcHBlZCBjaGFubmVscyIsCiAgICAgICJkZXNjcmlwdGlvbiI6ICJBdXRvbWF0aWNhbGx5IGVuYWJsZSBjaGFubmVscyB3aXRoIGFzc2lnbmVkIEVQRyBkYXRhIgogICAgfSwKICAgICJkaXNhbGxvd1VSTER1cGxpY2F0ZXMiOiB7CiAgICAgICJ0aXRsZSI6ICJEaXNhbGxvdyBVUkwgZHVwbGljYXRlcyIsCiAgICAgICJkZXNjcmlwdGlvbiI6ICJJZiBjaGVja2VkLCBkbyBub3QgYWRkIGEgbmV3IGNoYW5uZWwgZnJvbSBwbGF5bGlzdCBpZiBjaGFubmVsIHdpdGggc3VjaCBVUkwgYWxyZWFkeSBleGlzdHMiCiAgICB9LAogICAgImVwZ1NvdXJjZSI6IHsKICAgICAgInRpdGxlIjogIkVQRyBTb3VyY2UiLAogICAgICAiZGVzY3JpcHRpb24iOiAiUE1TOjxicj4tIFVzZSBFUEcgZGF0YSBmcm9tIFBsZXggb3IgRW1ieSA8YnI+PGJyPlhFUEc6PGJyPi0gVXNlIG9mIG9uZSBvciBtb3JlIFhNTFRWIGZpbGVzPGJyPi0gQ2hhbm5lbCBtYW5hZ2VtZW50PGJyPi0gTTNVIC8gWE1MVFYgZXhwb3J0IChIVFRQIGxpbmsgZm9yIElQVFYgYXBwcykiCiAgICB9LAogICAgInR1bmVyIjogewogICAgICAidGl0bGUiOiAiTnVtYmVyIG9mIFR1bmVycyIsCiAgICAgICJkZXNjcmlwdGlvbiI6ICJOdW1iZXIgb2YgcGFyYWxsZWwgY29ubmVjdGlvbnMgdGhhdCBjYW4gYmUgZXN0YWJsaXNoZWQgdG8gdGhlIHByb3ZpZGVyLjxicj5BdmFpbGFibGUgZm9yOiBQbGV4LCBFbWJ5IChIREhSKSwgTTNVICh3aXRoIGFjdGl2ZSBidWZmZXIpLjxicj5BZnRlciBhIGNoYW5nZSwgeFRlVmUgbXVzdCBiZSBkZWxldGUgaW4gdGhlIFBsZXggLyBFbWJ5IERWUiBzZXR0aW5ncyBhbmQgc2V0IHVwIGFnYWluLiIKICAgIH0sCiAgICAiaG9zdElQIjogewogICAgICAidGl0bGUiOiAiSG9zdCBJUCIsCiAgICAgICJkZXNjcmlwdGlvbiI6ICJJUCBhZGRyZXNzIHhUZVZlIHdpbGwgdXNlIHRvIGZvcm0gTTNVIGFuZCBYTUxUViBmaWxlcyIKICAgIH0sCiAgICAiaG9zdE5hbWUiOiB7CiAgICAgICJ0aXRsZSI6ICJIb3N0IE5hbWUgT3ZlcnJpZGUiLAogICAgICAiZGVzY3JpcHRpb24iOiAiSG9zdG5hbWUgeFRlVmUgd2lsbCB1c2UgdG8gZm9ybSBNM1UgYW5kIFhNTFRWIGZpbGVzLiBUaGlzIHdpbGwgb3ZlcnJpZGUgSG9zdCBJUCBpZiBzZXQiCiAgICB9LAogICAgInRsc01vZGUiOiB7CiAgICAgICJ0aXRsZSI6ICJUTFMgKEhUVFBTKSBtb2RlIiwKICAgICAgImRlc2NyaXB0aW9uIjogIkNoYW5nZXMgd2ViIHNlcnZlciBwcm90b2NvbCB0byBIVFRQUy48YnI+Rm9yIGRldGFpbHMsIHNlZSA8YT5odHRwczovL2dpdGh1Yi5jb20vU2VuZXhDcmVuc2hhdy94VGVWZSN0bHMtbW9kZTwvYT4iCiAgICB9LAogICAgImZpbGVzVXBkYXRlIjogewogICAgICAidGl0bGUiOiAiVXBkYXRlcyBhbGwgZmlsZXMgYXQgc3RhcnR1cCIsCiAgICAgICJkZXNjcmlwdGlvbiI6ICJVcGRhdGVzIGFsbCBwbGF5bGlzdHMsIHR1bmVyIGFuZCBYTUxUViBmaWxlcyBhdCBzdGFydHVwLiIKICAgIH0sCiAgICAiY2FjaGVJbWFnZXMiOiB7CiAgICAgICJ0aXRsZSI6ICJJbWFnZSBDYWNoaW5nIiwKICAgICAgImRlc2NyaXB0aW9uIjogIkFsbCBpbWFnZXMgZnJvbSB0aGUgWE1MVFYgZmlsZSBhcmUgY2FjaGVkLCBhbGxvd2luZyBmYXN0ZXIgcmVuZGVyaW5nIG9mIHRoZSBncmlkIGluIHRoZSBjbGllbnQuPGJyPkRvd25sb2FkaW5nIHRoZSBpbWFnZXMgbWF5IHRha2UgYSB3aGlsZSBhbmQgd2lsbCBiZSBkb25lIGluIHRoZSBiYWNrZ3JvdW5kLiIKICAgIH0sCiAgICAicmVwbGFjZUVtcHR5SW1hZ2VzIjogewogICAgICAidGl0bGUiOiAiUmVwbGFjZSBtaXNzaW5nIHByb2dyYW0gaW1hZ2VzIiwKICAgICAgImRlc2NyaXB0aW9uIjogIklmIHRoZSBwb3N0ZXIgaW4gdGhlIFhNTFRWIHByb2dyYW0gaXMgbWlzc2luZywgdGhlIGNoYW5uZWwgbG9nbyB3aWxsIGJlIHVzZWQuIgogICAgfSwKICAgICJ4dGV2ZUF1dG9VcGRhdGUiOiB7CiAgICAgICJ0aXRsZSI6ICJBdXRvbWF0aWMgdXBkYXRlIG9mIHhUZVZlIiwKICAgICAgImRlc2NyaXB0aW9uIjogIklmIGEgbmV3IHZlcnNpb24gb2YgeFRlVmUgaXMgYXZhaWxhYmxlLCBpdCB3aWxsIGJlIGF1dG9tYXRpY2FsbHkgaW5zdGFsbGVkLiBUaGUgdXBkYXRlcyBhcmUgZG93bmxvYWRlZCBmcm9tIEdpdEh1Yi4iCiAgICB9LAogICAgInN0cmVhbUJ1ZmZlcmluZyI6IHsKICAgICAgInRpdGxlIjogIlN0cmVhbSBCdWZmZXIiLAogICAgICAiZGVzY3JpcHRpb24iOiAiRnVuY3Rpb25zIG9mIHRoZSBidWZmZXI6PGJyPi0gVGhlIHN0cmVhbSBpcyBwYXNzZWQgZnJvbSB4VGVWZSwgRkZtcGVnIG9yIFZMQyB0byBQbGV4LCBFbWJ5IG9yIE0zVSBQbGF5ZXI8YnI+LSBTbWFsbCBqZXJraW5nIG9mIHRoZSBzdHJlYW1zIGNhbiBiZSBjb21wZW5zYXRlZDxicj4tIEhMUyAvIE0zVTggc3VwcG9ydDxicj4tIFJUUCAvIFJUUFMgc3VwcG9ydCAob25seSBGRm1wZWcgb3IgVkxDKTxicj4tIFJlLXN0cmVhbWluZzxicj4tIFNlcGFyYXRlIHR1bmVyIGxpbWl0IGZvciBlYWNoIHBsYXlsaXN0IiwKICAgICAgImluZm9fZmFsc2UiOiAiTm8gQnVmZmVyIChDbGllbnQgY29ubmVjdHMgdG8gdGhlIHN0cmVhbWluZyBzZXJ2ZXIpIiwKICAgICAgImluZm9feHRldmUiOiAieFRlVmUgY29ubmVjdHMgdG8gdGhlIHN0cmVhbWluZyBzZXJ2ZXIiLAogICAgICAiaW5mb19mZm1wZWciOiAiRkZtcGVnIGNvbm5lY3RzIHRvIHRoZSBzdHJlYW1pbmcgc2VydmVyIiwKICAgICAgImluZm9fdmxjIjogIlZMQyBjb25uZWN0cyB0byB0aGUgc3RyZWFtaW5nIHNlcnZlciIKICAgIH0sCiAgICAidWRweHkiOiB7CiAgICAgICJ0aXRsZSI6ICJVRFB4eSBhZGRyZXNzIiwKICAgICAgImRlc2NyaXB0aW9uIjogIlRoZSBhZGRyZXNzIG9mIHlvdXIgVURQeHkgc2VydmVyLiBJZiBzZXQsIGFuZCB0aGUgY2hhbm5lbCBVUkxzIGluIHRoZSBtM3UgaXMgbXVsdGljYXN0LCB4VGVWZSB3aWxsIHJld3JpdGUgaXQgc28gdGhhdCBpdCBpcyBhY2Nlc3NlZCB2aWEgdGhlIFVEUHh5IHNlcnZpY2UuIiwKICAgICAgInBsYWNlaG9sZGVyIjogImhvc3Q6cG9ydCIKICAgIH0sCiAgICAiZmZtcGVnUGF0aCI6IHsKICAgICAgInRpdGxlIjogIkZGbXBlZyBCaW5hcnkgUGF0aCIsCiAgICAgICJkZXNjcmlwdGlvbiI6ICJQYXRoIHRvIEZGbXBlZyBiaW5hcnkuIiwKICAgICAgInBsYWNlaG9sZGVyIjogIi9wYXRoL3RvL2ZmbXBlZyIKICAgIH0sCiAgICAiZmZtcGVnT3B0aW9ucyI6IHsKICAgICAgInRpdGxlIjogIkZGbXBlZyBPcHRpb25zIiwKICAgICAgImRlc2NyaXB0aW9uIjogIkZGbXBlZyBvcHRpb25zLjxicj5Pbmx5IGNoYW5nZSBpZiB5b3Uga25vdyB3aGF0IHlvdSBhcmUgZG9pbmcuPGJyPkxlYXZlIGJsYW5rIHRvIHNldCBkZWZhdWx0IHNldHRpbmdzLiIsCiAgICAgICJwbGFjZWhvbGRlciI6ICJMZWF2ZSBibGFuayB0byBzZXQgZGVmYXVsdCBzZXR0aW5ncyIKICAgIH0sCiAgICAidmxjUGF0aCI6IHsKICAgICAgInRpdGxlIjogIlZMQyAvIENWTEMgQmluYXJ5IFBhdGgiLAogICAgICAiZGVzY3JpcHRpb24iOiAiUGF0aCB0byBWTEMgLyBDVkxDIGJpbmFyeS4iLAogICAgICAicGxhY2Vob2xkZXIiOiAiL3BhdGgvdG8vY3ZsYyIKICAgIH0sCiAgICAidmxjT3B0aW9ucyI6IHsKICAgICAgInRpdGxlIjogIlZMQyAvIENWTEMgT3B0aW9ucyIsCiAgICAgICJkZXNjcmlwdGlvbiI6ICJWTEMgLyBDVkxDIG9wdGlvbnMuPGJyPk9ubHkgY2hhbmdlIGlmIHlvdSBrbm93IHdoYXQgeW91IGFyZSBkb2luZy48YnI+TGVhdmUgYmxhbmsgdG8gc2V0IGRlZmF1bHQgc2V0dGluZ3MuIiwKICAgICAgInBsYWNlaG9sZGVyIjogIkxlYXZlIGJsYW5rIHRvIHNldCBkZWZhdWx0IHNldHRpbmdzIgogICAgfSwKICAgICJidWZmZXJTaXplIjogewogICAgICAidGl0bGUiOiAiQnVmZmVyIFNpemUiLAogICAgICAiZGVzY3JpcHRpb24iOiAiQnVmZmVyIHNpemUgaW4gTUIuPGJyPk0zVTg6IElmIHRoZSBUUyBzZWdtZW50IHNtYWxsZXIgdGhlbiB0aGUgYnVmZmVyIHNpemUsIHRoZSBmaWxlIHNpemUgb2YgdGhlIHNlZ21lbnQgaXMgdXNlZC4iCiAgICB9LAogICAgInN0b3JlQnVmZmVySW5SQU0iOiB7CiAgICAgICJ0aXRsZSI6ICJTdG9yZSBidWZmZXIgaW4gUkFNIiwKICAgICAgImRlc2NyaXB0aW9uIjogIklmIGNoZWNrZWQsIHdyaXRlIGJ1ZmZlciB0byBSQU0gaW5zdGVhZCBvZiB3cml0aW5nIHRvIGRpc2siCiAgICB9LAogICAgImJ1ZmZlclRpbWVvdXQiOiB7CiAgICAgICJ0aXRsZSI6ICJUaW1lb3V0IGZvciBuZXcgY2xpZW50IGNvbm5lY3Rpb25zIiwKICAgICAgImRlc2NyaXB0aW9uIjogIlRoZSB4VGVWZSBidWZmZXIgd2FpdHMgdW50aWwgbmV3IGNsaWVudCBjb25uZWN0aW9ucyBhcmUgZXN0YWJsaXNoZWQuIEhlbHBmdWwgZm9yIGZhc3QgY2hhbm5lbCBzd2l0Y2hpbmcuIFZhbHVlIGluIG1pbGxpc2Vjb25kcy4iLAogICAgICAicGxhY2Vob2xkZXIiOiAiMTAwIgogICAgfSwKICAgICJ1c2VyQWdlbnQiOiB7CiAgICAgICJ0aXRsZSI6ICJVc2VyIEFnZW50IiwKICAgICAgImRlc2NyaXB0aW9uIjogIlVzZXIgQWdlbnQgZm9yIEhUVFAgcmVxdWVzdHMuIEZvciBldmVyeSBIVFRQIGNvbm5lY3Rpb24sIHRoaXMgdmFsdWUgaXMgdXNlZCBmb3IgdGhlIHVzZXIgYWdlbnQuIFNob3VsZCBvbmx5IGJlIGNoYW5nZWQgaWYgeFRlVmUgaXMgYmxvY2tlZC4iLAogICAgICAicGxhY2Vob2xkZXIiOiAieFRlVmUiCiAgICB9LAogICAgImJhY2t1cFBhdGgiOiB7CiAgICAgICJ0aXRsZSI6ICJMb2NhdGlvbiBmb3IgYXV0b21hdGljIGJhY2t1cHMiLAogICAgICAicGxhY2Vob2xkZXIiOiAiL21udC9kYXRhL2JhY2t1cC94dGV2ZS8iLAogICAgICAiZGVzY3JpcHRpb24iOiAiQmVmb3JlIGFueSB1cGRhdGUgb2YgdGhlIHByb3ZpZGVyIGRhdGEgYnkgdGhlIHNjaGVkdWxlLCB4VGVWZSBjcmVhdGVzIGEgYmFja3VwLiBUaGUgcGF0aCBmb3IgdGhlIGF1dG9tYXRpYyBiYWNrdXBzIGNhbiBiZSBjaGFuZ2VkLiB4VGVWZSByZXF1aXJlcyB3cml0ZSBwZXJtaXNzaW9uIGZvciB0aGlzIGZvbGRlci4iCiAgICB9LAogICAgInRlbXBQYXRoIjogewogICAgICAidGl0bGUiOiAiTG9jYXRpb24gZm9yIHRoZSB0ZW1wb3JhcnkgZmlsZXMiLAogICAgICAicGxhY2Vob2xkZXIiOiAiL3RtcC94dGV2ZS8iLAogICAgICAiZGVzY3JpcHRpb24iOiAiTG9jYXRpb24gZm9yIHRoZSBidWZmZXIgZmlsZXMuIgogICAgfSwKICAgICJiYWNrdXBLZWVwIjogewogICAgICAidGl0bGUiOiAiTnVtYmVyIG9mIGJhY2t1cHMgdG8ga2VlcCIsCiAgICAgICJkZXNjcmlwdGlvbiI6ICJOdW1iZXIgb2YgYmFja3VwcyB0byBrZWVwLiBPbGRlciBiYWNrdXBzIGFyZSBhdXRvbWF0aWNhbGx5IGRlbGV0ZWQuIgogICAgfSwKICAgICJhdXRoZW50aWNhdGlvbldFQiI6IHsKICAgICAgInRpdGxlIjogIldFQiBBdXRoZW50aWNhdGlvbiIsCiAgICAgICJkZXNjcmlwdGlvbiI6ICJBY2Nlc3MgdG8gdGhlIHdlYiBpbnRlcmZhY2Ugb25seSBwb3NzaWJsZSB3aXRoIGNyZWRlbnRpYWxzLiIKICAgIH0sCiAgICAiYXV0aGVudGljYXRpb25QTVMiOiB7CiAgICAgICJ0aXRsZSI6ICJQTVMgQXV0aGVudGljYXRpb24iLAogICAgICAiZGVzY3JpcHRpb24iOiAiUGxleCByZXF1ZXN0cyBhcmUgb25seSBwb3NzaWJsZSB3aXRoIGF1dGhlbnRpY2F0aW9uLiA8YnI+PGI+V2FybmluZyEhITwvYj4gQWZ0ZXIgYWN0aXZhdGluZyB0aGlzIGZ1bmN0aW9uIHhUZVZlIG11c3QgYmUgZGVsZXRlIGluIHRoZSBQTVMgRFZSIHNldHRpbmdzIGFuZCBzZXQgdXAgYWdhaW4uIgogICAgfSwKICAgICJhdXRoZW50aWNhdGlvbk0zVSI6IHsKICAgICAgInRpdGxlIjogIk0zVSBBdXRoZW50aWNhdGlvbiIsCiAgICAgICJkZXNjcmlwdGlvbiI6ICJEb3dubG9hZGluZyB0aGUgeHRldmUubTN1IGZpbGUgdmlhIGFuIEhUVFAgcmVxdWVzdCBpcyBvbmx5IHBvc3NpYmxlIHdpdGggYXV0aGVudGljYXRpb24uIgogICAgfSwKICAgICJhdXRoZW50aWNhdGlvblhNTCI6IHsKICAgICAgInRpdGxlIjogIlhNTCBBdXRoZW50aWNhdGlvbiIsCiAgICAgICJkZXNjcmlwdGlvbiI6ICJEb3dubG9hZGluZyB0aGUgeHRldmUueG1sIGZpbGUgdmlhIGFuIEhUVFAgcmVxdWVzdCBpcyBvbmx5IHBvc3NpYmxlIHdpdGggYXV0aGVudGljYXRpb24iCiAgICB9LAogICAgImF1dGhlbnRpY2F0aW9uQVBJIjogewogICAgICAidGl0bGUiOiAiQVBJIEF1dGhlbnRpY2F0aW9uIiwKICAgICAgImRlc2NyaXB0aW9uIjogIkFjY2VzcyB0byB0aGUgQVBJIGludGVyZmFjZSBpcyBvbmx5IHBvc3NpYmxlIHdpdGggYXV0aGVudGljYXRpb24uIgogICAgfQogIH0sCiAgIndpemFyZCI6IHsKICAgICJlcGdTb3VyY2UiOiB7CiAgICAgICJ0aXRsZSI6ICJFUEcgU291cmNlIiwKICAgICAgImRlc2NyaXB0aW9uIjogIlBNUzo8YnI+LSBVc2UgRVBHIGRhdGEgZnJvbSBQbGV4IG9yIEVtYnkgPGJyPjxicj5YRVBHOjxicj4tIFVzZSBvZiBvbmUgb3IgbW9yZSBYTUxUViBmaWxlczxicj4tIENoYW5uZWwgbWFuYWdlbWVudDxicj4tIE0zVSAvIFhNTFRWIGV4cG9ydCAoSFRUUCBsaW5rIGZvciBJUFRWIGFwcHMpIgogICAgfSwKICAgICJ0dW5lciI6IHsKICAgICAgInRpdGxlIjogIk51bWJlciBvZiB0dW5lcnMiLAogICAgICAiZGVzY3JpcHRpb24iOiAiTnVtYmVyIG9mIHBhcmFsbGVsIGNvbm5lY3Rpb25zIHRoYXQgY2FuIGJlIGVzdGFibGlzaGVkIHRvIHRoZSBwcm92aWRlci48YnI+QXZhaWxhYmxlIGZvcjogUGxleCwgRW1ieSAoSERIUiksIE0zVSAod2l0aCBhY3RpdmUgYnVmZmVyKS48YnI+QWZ0ZXIgYSBjaGFuZ2UsIHhUZVZlIG11c3QgYmUgZGVsZXRlIGluIHRoZSBQbGV4IC8gRW1ieSBEVlIgc2V0dGluZ3MgYW5kIHNldCB1cCBhZ2Fpbi4iCiAgICB9LAogICAgIm0zdSI6IHsKICAgICAgInRpdGxlIjogIk0zVSBQbGF5bGlzdCIsCiAgICAgICJwbGFjZWhvbGRlciI6ICJGaWxlIHBhdGggb3IgVVJMIG9mIHRoZSBNM1UiLAogICAgICAiZGVzY3JpcHRpb24iOiAiTG9jYWwgb3IgcmVtb3RlIHBsYXlsaXN0cyIKICAgIH0sCiAgICAieG1sdHYiOiB7CiAgICAgICJ0aXRsZSI6ICJYTUxUViBGaWxlIiwKICAgICAgInBsYWNlaG9sZGVyIjogIkZpbGUgcGF0aCBvciBVUkwgb2YgdGhlIFhNTFRWIiwKICAgICAgImRlc2NyaXB0aW9uIjogIkxvY2FsIG9yIHJlbW90ZSBYTUxUViBmaWxlIgogICAgfQogIH0sCiAgImxvZ2luIjogewogICAgImZhaWxlZCI6ICJVc2VyIGF1dGhlbnRpY2F0aW9uIGZhaWxlZCIsCiAgICAiaGVhZGxpbmUiOiAiTG9naW4iLAogICAgInVzZXJuYW1lIjogewogICAgICAidGl0bGUiOiAiVXNlcm5hbWUiLAogICAgICAicGxhY2Vob2xkZXIiOiAiVXNlcm5hbWUiCiAgICB9LAogICAgInBhc3N3b3JkIjogewogICAgICAidGl0bGUiOiAiUGFzc3dvcmQiLAogICAgICAicGxhY2Vob2xkZXIiOiAiUGFzc3dvcmQiCiAgICB9CiAgfSwKICAiYWNjb3VudCI6IHsKICAgICJmYWlsZWQiOiAiUGFzc3dvcmQgZG9lcyBub3QgbWF0Y2giLAogICAgImhlYWRsaW5lIjogIkNyZWF0ZSB1c2VyIGFjY291bnQiLAogICAgInVzZXJuYW1lIjogewogICAgICAidGl0bGUiOiAiVXNlcm5hbWUiLAogICAgICAicGxhY2Vob2xkZXIiOiAiVXNlcm5hbWUiCiAgICB9LAogICAgInBhc3N3b3JkIjogewogICAgICAidGl0bGUiOiAiUGFzc3dvcmQiLAogICAgICAicGxhY2Vob2xkZXIiOiAiUGFzc3dvcmQiCiAgICB9LAogICAgImNvbmZpcm0iOiB7CiAgICAgICJ0aXRsZSI6ICJDb25maXJtIiwKICAgICAgInBsYWNlaG9sZGVyIjogIkNvbmZpcm0iCiAgICB9CiAgfQp9" + webUI["html/lang/en.json"] = "ewogICJtYWluTWVudSI6IHsKICAgICJpdGVtIjogewogICAgICAicGxheWxpc3QiOiAiUGxheWxpc3QiLAogICAgICAicG1zSUQiOiAiUE1TIElEIiwKICAgICAgImZpbHRlciI6ICJGaWx0ZXIiLAogICAgICAieG1sdHYiOiAiWE1MVFYiLAogICAgICAibWFwcGluZyI6ICJNYXBwaW5nIiwKICAgICAgInVzZXJzIjogIlVzZXJzIiwKICAgICAgInNldHRpbmdzIjogIlNldHRpbmdzIiwKICAgICAgImxvZyI6ICJMb2ciLAogICAgICAibG9nb3V0IjogIkxvZ291dCIKICAgIH0sCiAgICAiaGVhZGxpbmUiOiB7CiAgICAgICJwbGF5bGlzdCI6ICJMb2NhbCBvciByZW1vdGUgcGxheWxpc3RzIiwKICAgICAgImZpbHRlciI6ICJGaWx0ZXIgcGxheWxpc3QiLAogICAgICAieG1sdHYiOiAiTG9jYWwgb3IgcmVtb3RlIFhNTFRWIGZpbGVzIiwKICAgICAgIm1hcHBpbmciOiAiTWFwIHBsYXlsaXN0IGNoYW5uZWxzIHRvIEVQRyBjaGFubmVscyIsCiAgICAgICJ1c2VycyI6ICJVc2VyIG1hbmFnZW1lbnQiLAogICAgICAic2V0dGluZ3MiOiAiU2V0dGluZ3MiLAogICAgICAibG9nIjogIkxvZyIsCiAgICAgICJsb2dvdXQiOiAiTG9nb3V0IgogICAgfQogIH0sCiAgImNvbmZpcm0iOiB7CiAgICAicmVzdG9yZSI6ICJBbGwgZGF0YSB3aWxsIGJlIHJlcGxhY2VkIHdpdGggdGhvc2UgZnJvbSB0aGUgYmFja3VwLiBTaG91bGQgdGhlIGZpbGVzIGJlIHJlc3RvcmVkPyIKICB9LAogICJhbGVydCI6IHsKICAgICJmaWxlTG9hZGluZ0Vycm9yIjogIkZpbGUgY291bGRuJ3QgYmUgbG9hZGVkIiwKICAgICJpbnZhbGlkQ2hhbm5lbE51bWJlciI6ICJJbnZhbGlkIGNoYW5uZWwgbnVtYmVyIiwKICAgICJtaXNzaW5nSW5wdXQiOiAiTWlzc2luZyBpbnB1dCIKICB9LAogICJidXR0b24iOiB7CiAgICAiYmFjayI6ICJCYWNrIiwKICAgICJiYWNrdXAiOiAiQmFja3VwIiwKICAgICJidWxrRWRpdCI6ICJCdWxrIEVkaXQiLAogICAgImNhbmNlbCI6ICJDYW5jZWwiLAogICAgImRlbGV0ZSI6ICJEZWxldGUiLAogICAgImRvbmUiOiAiRG9uZSIsCiAgICAibG9naW4iOiAiTG9naW4iLAogICAgIm5ldyI6ICJOZXciLAogICAgIm5leHQiOiAiTmV4dCIsCiAgICAicmVzdG9yZSI6ICJSZXN0b3JlIiwKICAgICJzYXZlIjogIlNhdmUiLAogICAgInNlYXJjaCI6ICJTZWFyY2giLAogICAgInVwZGF0ZSI6ICJVcGRhdGUiLAogICAgImNyYWV0ZUFjY291bnQiOiAiQ3JlYXRlIEFjY291bnQiLAogICAgInJlc2V0TG9ncyI6ICJSZXNldCBMb2dzIiwKICAgICJ1cGxvYWRMb2dvIjogIlVwbG9hZCBMb2dvIgogIH0sCiAgImZpbHRlciI6IHsKICAgICJ0YWJsZSI6IHsKICAgICAgInN0YXJ0aW5nQ2hhbm5lbCI6ICJTdGFydGluZyBDaC4gTm8uIiwKICAgICAgIm5hbWUiOiAiRmlsdGVyIE5hbWUiLAogICAgICAidHlwZSI6ICJGaWx0ZXIgVHlwZSIsCiAgICAgICJmaWx0ZXIiOiAiRmlsdGVyIgogICAgfSwKICAgICJjdXN0b20iOiAiQ3VzdG9tIiwKICAgICJncm91cCI6ICJNM1UgR3JvdXAiLAogICAgIm5hbWUiOiB7CiAgICAgICJ0aXRsZSI6ICJGaWx0ZXIgTmFtZSIsCiAgICAgICJwbGFjZWhvbGRlciI6ICJGaWx0ZXIgbmFtZSIsCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiCiAgICB9LAogICAgImRlc2NyaXB0aW9uIjogewogICAgICAidGl0bGUiOiAiRGVzY3JpcHRpb24iLAogICAgICAicGxhY2Vob2xkZXIiOiAiRGVzY3JpcHRpb24iLAogICAgICAiZGVzY3JpcHRpb24iOiAiIgogICAgfSwKICAgICJ0eXBlIjogewogICAgICAidGl0bGUiOiAiVHlwZSIsCiAgICAgICJncm91cFRpdGxlIjogIkdyb3VwIFRpdGxlIiwKICAgICAgImN1c3RvbUZpbHRlciI6ICJDdXN0b20gRmlsdGVyIgogICAgfSwKICAgICJjYXNlU2Vuc2l0aXZlIjogewogICAgICAidGl0bGUiOiAiQ2FzZSBTZW5zaXRpdmUiLAogICAgICAicGxhY2Vob2xkZXIiOiAiIiwKICAgICAgImRlc2NyaXB0aW9uIjogIiIKICAgIH0sCiAgICAiZmlsdGVyUnVsZSI6IHsKICAgICAgInRpdGxlIjogIkZpbHRlciBSdWxlIiwKICAgICAgInBsYWNlaG9sZGVyIjogIlNwb3J0IHtIRH0gIXtFUyxJVH0iLAogICAgICAiZGVzY3JpcHRpb24iOiAiIgogICAgfSwKICAgICJmaWx0ZXJHcm91cCI6IHsKICAgICAgInRpdGxlIjogIkdyb3VwIFRpdGxlIiwKICAgICAgInBsYWNlaG9sZGVyIjogIiIsCiAgICAgICJkZXNjcmlwdGlvbiI6ICJTZWxlY3QgYSBNM1UgZ3JvdXAuIChDb3VudGVyKTxicj5DaGFuZ2luZyB0aGUgZ3JvdXAgdGl0bGUgaW4gdGhlIE0zVSBpbnZhbGlkYXRlcyB0aGUgZmlsdGVyLiIKICAgIH0sCiAgICAiaW5jbHVkZSI6IHsKICAgICAgInRpdGxlIjogIkluY2x1ZGUiLAogICAgICAicGxhY2Vob2xkZXIiOiAiRkhELFVIRCIsCiAgICAgICJkZXNjcmlwdGlvbiI6ICJDaGFubmVsIG5hbWUgbXVzdCBpbmNsdWRlLjxicj4oQ29tbWEgc2VwYXJhdGVkKSBDb21tYSBtZWFucyBvciIKICAgIH0sCiAgICAiZXhjbHVkZSI6IHsKICAgICAgInRpdGxlIjogIkV4Y2x1ZGUiLAogICAgICAicGxhY2Vob2xkZXIiOiAiRVMsSVQiLAogICAgICAiZGVzY3JpcHRpb24iOiAiQ2hhbm5lbCBuYW1lIG11c3Qgbm90IGNvbnRhaW4uPGJyPihDb21tYSBzZXBhcmF0ZWQpIENvbW1hIG1lYW5zIG9yIgogICAgfSwKICAgICJwcmVzZXJ2ZU1hcHBpbmciOiB7CiAgICAgICJ0aXRsZSI6ICJQcmVzZXJ2ZSBFeGlzdGluZyBNM1U8YnI+Q2hhbm5lbCBOdW1iZXJzIiwKICAgICAgInBhbGNlaG9sZGVyIjogIiIsCiAgICAgICJkZXNjcmlwdGlvbiI6ICJQcmVzZXJ2ZSBleGlzdGluZyBNM1UgcGxheWxpc3QgY2hhbm5lbCBudW1iZXJzPyIKICAgIH0sCiAgICAic3RhcnRpbmdDaGFubmVsIjogewogICAgICAidGl0bGUiOiAiU3RhcnRpbmcgQ2hhbm5lbCBOdW1iZXIiLAogICAgICAicGxhY2Vob2xkZXIiOiAiIiwKICAgICAgImRlc2NyaXB0aW9uIjogIiIKICAgIH0KICB9LAogICJwbGF5bGlzdCI6IHsKICAgICJ0YWJsZSI6IHsKICAgICAgInBsYXlsaXN0IjogIlBsYXlsaXN0IiwKICAgICAgInR1bmVyIjogIlR1bmVyIiwKICAgICAgImxhc3RVcGRhdGUiOiAiTGFzdCBVcGRhdGUiLAogICAgICAiYXZhaWxhYmlsaXR5IjogIkF2YWlsYWJpbGl0eSIsCiAgICAgICJ0eXBlIjogIlR5cGUiLAogICAgICAic3RyZWFtcyI6ICJTdHJlYW1zIiwKICAgICAgImdyb3VwVGl0bGUiOiAiZ3JvdXAtdGl0bGUiLAogICAgICAidHZnSUQiOiAidHZnLWlkIiwKICAgICAgInVuaXF1ZUlEIjogIlVuaXF1ZSBJRCIKICAgIH0sCiAgICAicGxheWxpc3RUeXBlIjogewogICAgICAidGl0bGUiOiAiUGxheWxpc3QgdHlwZSIsCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLAogICAgICAiZGVzY3JpcHRpb24iOiAiIgogICAgfSwKICAgICJ0eXBlIjogewogICAgICAidGl0bGUiOiAiVHlwZSIsCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLAogICAgICAiZGVzY3JpcHRpb24iOiAiIgogICAgfSwKICAgICJuYW1lIjogewogICAgICAidGl0bGUiOiAiTmFtZSIsCiAgICAgICJwbGFjZWhvbGRlciI6ICJQbGF5bGlzdCBuYW1lIiwKICAgICAgImRlc2NyaXB0aW9uIjogIiIKICAgIH0sCiAgICAiZGVzY3JpcHRpb24iOiB7CiAgICAgICJ0aXRsZSI6ICJEZXNjcmlwdGlvbiIsCiAgICAgICJwbGFjZWhvbGRlciI6ICJEZXNjcmlwdGlvbiIsCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiCiAgICB9LAogICAgImZpbGVNM1UiOiB7CiAgICAgICJ0aXRsZSI6ICJNM1UgRmlsZSIsCiAgICAgICJwbGFjZWhvbGRlciI6ICJGaWxlIHBhdGggb3IgVVJMIG9mIHRoZSBNM1UiLAogICAgICAiZGVzY3JpcHRpb24iOiAiIgogICAgfSwKICAgICJmaWxlSERIUiI6IHsKICAgICAgInRpdGxlIjogIkhESG9tZVJ1biBJUCIsCiAgICAgICJwbGFjZWhvbGRlciI6ICJJUCBhZGRyZXNzIGFuZCBwb3J0ICgxOTIuMTY4LjEuMTA6NTAwNCkiLAogICAgICAiZGVzY3JpcHRpb24iOiAiIgogICAgfSwKICAgICJ0dW5lciI6IHsKICAgICAgInRpdGxlIjogIlR1bmVyIC8gU3RyZWFtcyIsCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLAogICAgICAiZGVzY3JpcHRpb24iOiAiTnVtYmVyIG9mIHBhcmFsbGVsIGNvbm5lY3Rpb25zIHRoYXQgY2FuIGJlIGVzdGFibGlzaGVkIHRvIHRoZSBwcm92aWRlci4gPGJyPk9ubHkgYXZhaWxhYmxlIHdpdGggYWN0aXZhdGVkIGJ1ZmZlci48YnI+TmV3IHNldHRpbmdzIHdpbGwgb25seSBiZSBhcHBsaWVkIGFmdGVyIHF1aXR0aW5nIGFsbCBzdHJlYW1zLiIKICAgIH0KICB9LAogICJ4bWx0diI6IHsKICAgICJ0YWJsZSI6IHsKICAgICAgImd1aWRlIjogIkd1aWRlIiwKICAgICAgImxhc3RVcGRhdGUiOiAiTGFzdCBVcGRhdGUiLAogICAgICAiYXZhaWxhYmlsaXR5IjogIkF2YWlsYWJpbGl0eSIsCiAgICAgICJjaGFubmVscyI6ICJDaGFubmVscyIsCiAgICAgICJwcm9ncmFtcyI6ICJQcm9ncmFtcyIKICAgIH0sCiAgICAibmFtZSI6IHsKICAgICAgInRpdGxlIjogIk5hbWUiLAogICAgICAicGxhY2Vob2xkZXIiOiAiR3VpZGUgbmFtZSIsCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiCiAgICB9LAogICAgImRlc2NyaXB0aW9uIjogewogICAgICAidGl0bGUiOiAiRGVzY3JpcHRpb24iLAogICAgICAicGxhY2Vob2xkZXIiOiAiRGVzY3JpcHRpb24iLAogICAgICAiZGVzY3JpcHRpb24iOiAiIgogICAgfSwKICAgICJmaWxlWE1MVFYiOiB7CiAgICAgICJ0aXRsZSI6ICJYTUxUViBGaWxlIiwKICAgICAgInBsYWNlaG9sZGVyIjogIkZpbGUgcGF0aCBvciBVUkwgb2YgdGhlIFhNTFRWIiwKICAgICAgImRlc2NyaXB0aW9uIjogIiIKICAgIH0KICB9LAogICJtYXBwaW5nIjogewogICAgInRhYmxlIjogewogICAgICAiY2hObyI6ICJDaC4gTm8uIiwKICAgICAgImxvZ28iOiAiTG9nbyIsCiAgICAgICJjaGFubmVsTmFtZSI6ICJDaGFubmVsIE5hbWUiLAogICAgICAidXBkYXRlQ2hhbm5lbE5hbWVSZWdleCI6ICJVcGQuIFJ4LiIsCiAgICAgICJwbGF5bGlzdCI6ICJQbGF5bGlzdCIsCiAgICAgICJncm91cFRpdGxlIjogIkdyb3VwIFRpdGxlIiwKICAgICAgInhtbHR2RmlsZSI6ICJYTUxUViBGaWxlIiwKICAgICAgInhtbHR2SUQiOiAiWE1MVFYgSUQiLAogICAgICAidGltZXNoaWZ0IjogIlRpbWVzaGlmdCIKICAgIH0sCiAgICAiYWN0aXZlIjogewogICAgICAidGl0bGUiOiAiQWN0aXZlIiwKICAgICAgInBsYWNlaG9sZGVyIjogIiIsCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiCiAgICB9LAogICAgImNoYW5uZWxOYW1lIjogewogICAgICAidGl0bGUiOiAiQ2hhbm5lbCBOYW1lIiwKICAgICAgInBsYWNlaG9sZGVyIjogIiIsCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiCiAgICB9LAogICAgImRlc2NyaXB0aW9uIjogewogICAgICAidGl0bGUiOiAiQ2hhbm5lbCBEZXNjcmlwdGlvbiIsCiAgICAgICJwbGFjZWhvbGRlciI6ICJVc2VkIGJ5IHRoZSBEdW1teSBhcyBhbiBYTUwgZGVzY3JpcHRpb24iLAogICAgICAiZGVzY3JpcHRpb24iOiAiIgogICAgfSwKICAgICJ1cGRhdGVDaGFubmVsTmFtZSI6IHsKICAgICAgInRpdGxlIjogIlVwZGF0ZSBDaGFubmVsIE5hbWUiLAogICAgICAicGxhY2Vob2xkZXIiOiAiIiwKICAgICAgImRlc2NyaXB0aW9uIjogIiIKICAgIH0sCiAgICAidXBkYXRlQ2hhbm5lbE5hbWVSZWdleCI6IHsKICAgICAgInRpdGxlIjogIkNoYW5uZWwgbmFtZSB1cGRhdGUgcmVnZXgiLAogICAgICAicGxhY2Vob2xkZXIiOiAiRm9yIGV4YW1wbGUgXlBQVlsgXFxcXC1fXT8xLioiLAogICAgICAiZGVzY3JpcHRpb24iOiAiT24gdXBkYXRlLCBpZiBhbnkgbmV3IGNoYW5uZWwgbmFtZSBtYXRjaGVzIHRoaXMgcmVnZXgsIHJlbmFtZSBjdXJyZW50IGNoYW5uZWwgdG8gdGhlIGZpcnN0IG1hdGNoaW5nIG5hbWUiCiAgICB9LAogICAgInVwZGF0ZUNoYW5uZWxOYW1lQnlHcm91cFJlZ2V4IjogewogICAgICAidGl0bGUiOiAiT25seSBieSBncm91cCByZWdleCIsCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLAogICAgICAiZGVzY3JpcHRpb24iOiAiUmVuYW1lIHRoaXMgY2hhbm5lbCBvbmx5IGlmIGN1cnJlbnQgdXNlci1kZWZpbmVkIGdyb3VwIG1hdGNoZXMgdGhpcyByZWdleCIKICAgIH0sCiAgICAidXBkYXRlQ2hhbm5lbEdyb3VwIjogewogICAgICAidGl0bGUiOiAiVXBkYXRlIENoYW5uZWwgR3JvdXAiLAogICAgICAicGxhY2Vob2xkZXIiOiAiIiwKICAgICAgImRlc2NyaXB0aW9uIjogIklmIGNoZWNrZWQsIHVzZSBncm91cCBmcm9tIHRoZSBkYXRhYmFzZSIKICAgIH0sCiAgICAiY2hhbm5lbExvZ28iOiB7CiAgICAgICJ0aXRsZSI6ICJMb2dvIFVSTCIsCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLAogICAgICAiZGVzY3JpcHRpb24iOiAiIgogICAgfSwKICAgICJ1cGRhdGVDaGFubmVsTG9nbyI6IHsKICAgICAgInRpdGxlIjogIlVzZSBsb2dvIGZyb20gTTNVIiwKICAgICAgInBsYWNlaG9sZGVyIjogIiIsCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiCiAgICB9LAogICAgImVwZ0NhdGVnb3J5IjogewogICAgICAidGl0bGUiOiAiRVBHIENhdGVnb3J5IiwKICAgICAgInBsYWNlaG9sZGVyIjogIiIsCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiCiAgICB9LAogICAgIm0zdUdyb3VwVGl0bGUiOiB7CiAgICAgICJ0aXRsZSI6ICJHcm91cCBUaXRsZSAoeHRldmUubTN1KSIsCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLAogICAgICAiZGVzY3JpcHRpb24iOiAiIgogICAgfSwKICAgICJ4bWx0dkZpbGUiOiB7CiAgICAgICJ0aXRsZSI6ICJYTUxUViBGaWxlIiwKICAgICAgInBsYWNlaG9sZGVyIjogIiIsCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiCiAgICB9LAogICAgInhtbHR2Q2hhbm5lbCI6IHsKICAgICAgInRpdGxlIjogIlhNTFRWIENoYW5uZWwiLAogICAgICAicGxhY2Vob2xkZXIiOiAiIiwKICAgICAgImRlc2NyaXB0aW9uIjogIiIKICAgIH0sCiAgICAidGltZXNoaWZ0IjogewogICAgICAidGl0bGUiOiAiVGltZXNoaWZ0IiwKICAgICAgInBsYWNlaG9sZGVyIjogIjAiLAogICAgICAiZGVzY3JpcHRpb24iOiAiIgogICAgfQogIH0sCiAgInVzZXJzIjogewogICAgInRhYmxlIjogewogICAgICAidXNlcm5hbWUiOiAiVXNlcm5hbWUiLAogICAgICAicGFzc3dvcmQiOiAiUGFzc3dvcmQiLAogICAgICAid2ViIjogIldFQiIsCiAgICAgICJwbXMiOiAiUE1TIiwKICAgICAgIm0zdSI6ICJNM1UiLAogICAgICAieG1sIjogIlhNTCIsCiAgICAgICJhcGkiOiAiQVBJIgogICAgfSwKICAgICJ1c2VybmFtZSI6IHsKICAgICAgInRpdGxlIjogIlVzZXJuYW1lIiwKICAgICAgInBsYWNlaG9sZGVyIjogIlVzZXJuYW1lIiwKICAgICAgImRlc2NyaXB0aW9uIjogIiIKICAgIH0sCiAgICAicGFzc3dvcmQiOiB7CiAgICAgICJ0aXRsZSI6ICJQYXNzd29yZCIsCiAgICAgICJwbGFjZWhvbGRlciI6ICJQYXNzd29yZCIsCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiCiAgICB9LAogICAgImNvbmZpcm0iOiB7CiAgICAgICJ0aXRsZSI6ICJDb25maXJtIiwKICAgICAgInBsYWNlaG9sZGVyIjogIlBhc3N3b3JkIGNvbmZpcm0iLAogICAgICAiZGVzY3JpcHRpb24iOiAiIgogICAgfSwKICAgICJ3ZWIiOiB7CiAgICAgICJ0aXRsZSI6ICJXZWIgQWNjZXNzIiwKICAgICAgInBsYWNlaG9sZGVyIjogIiIsCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiCiAgICB9LAogICAgInBtcyI6IHsKICAgICAgInRpdGxlIjogIlBNUyBBY2Nlc3MiLAogICAgICAicGxhY2Vob2xkZXIiOiAiIiwKICAgICAgImRlc2NyaXB0aW9uIjogIiIKICAgIH0sCiAgICAibTN1IjogewogICAgICAidGl0bGUiOiAiTTNVIEFjY2VzcyIsCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLAogICAgICAiZGVzY3JpcHRpb24iOiAiIgogICAgfSwKICAgICJ4bWwiOiB7CiAgICAgICJ0aXRsZSI6ICJYTUwgQWNjZXNzIiwKICAgICAgInBsYWNlaG9sZGVyIjogIiIsCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiCiAgICB9LAogICAgImFwaSI6IHsKICAgICAgInRpdGxlIjogIkFQSSBBY2Nlc3MiLAogICAgICAicGxhY2Vob2xkZXIiOiAiIiwKICAgICAgImRlc2NyaXB0aW9uIjogIiIKICAgIH0KICB9LAogICJzZXR0aW5ncyI6IHsKICAgICJjYXRlZ29yeSI6IHsKICAgICAgImdlbmVyYWwiOiAiR2VuZXJhbCIsCiAgICAgICJtYXBwaW5nIjogIk1hcHBpbmciLAogICAgICAiZmlsZXMiOiAiRmlsZXMiLAogICAgICAic3RyZWFtaW5nIjogIlN0cmVhbWluZyIsCiAgICAgICJiYWNrdXAiOiAiQmFja3VwIiwKICAgICAgImF1dGhlbnRpY2F0aW9uIjogIkF1dGhlbnRpY2F0aW9uIgogICAgfSwKICAgICJ1cGRhdGUiOiB7CiAgICAgICJ0aXRsZSI6ICJTY2hlZHVsZSBmb3IgdXBkYXRpbmcgKFBsYXlsaXN0LCBYTUxUViwgQmFja3VwKSIsCiAgICAgICJwbGFjZWhvbGRlciI6ICIwMDAwLDEwMDAsMjAwMCIsCiAgICAgICJkZXNjcmlwdGlvbiI6ICJUaW1lIGluIDI0IGhvdXIgZm9ybWF0ICgwODAwID0gODowMCBhbSkuIE1vcmUgdGltZXMgY2FuIGJlIGVudGVyZWQgY29tbWEgc2VwYXJhdGVkLiBMZWF2ZSB0aGlzIGZpZWxkIGVtcHR5IGlmIG5vIHVwZGF0ZXMgYXJlIHRvIGJlIGNhcnJpZWQgb3V0LiIKICAgIH0sCiAgICAiYXBpIjogewogICAgICAidGl0bGUiOiAiQVBJIEludGVyZmFjZSIsCiAgICAgICJkZXNjcmlwdGlvbiI6ICJWaWEgQVBJIGludGVyZmFjZSBpdCBpcyBwb3NzaWJsZSB0byBzZW5kIGNvbW1hbmRzIHRvIHhUZVZlLiBBUEkgZG9jdW1lbnRhdGlvbiBpcyA8YSBocmVmPSdodHRwczovL2dpdGh1Yi5jb20veHRldmUtcHJvamVjdC94VGVWZS1Eb2N1bWVudGF0aW9uL2Jsb2IvbWFzdGVyL2VuL2NvbmZpZ3VyYXRpb24ubWQjYXBpJz5oZXJlPC9hPiIKICAgIH0sCiAgICAiY2xlYXJYTUxUVkNhY2hlIjogewogICAgICAidGl0bGUiOiAiQ2xlYXIgWE1MVFYgY2FjaGUiLAogICAgICAiZGVzY3JpcHRpb24iOiAiSWYgY2hlY2tlZCwgZG8gbm90IGtlZXAgWE1MVFYgY2FjaGUgaW4gbWVtb3J5Ljxicj5TaWduaWZpY2FsbHkgcmVkdWNlcyBSQU0gdXNhZ2UgaW4gaWRsZSBtb2RlLDxicj5idXQgc2lnbmlmaWNhbGx5IHNsb3dpbmcgZG93biBldmVyeSBzdWJzZXF1ZW50IHVwZGF0ZSBpbiBYRVBHIGRhdGFiYXNlLiIKICAgIH0sCiAgICAiZGVmYXVsdE1pc3NpbmdFUEciOiB7CiAgICAgICJ0aXRsZSI6ICJGaWxsIE1pc3NpbmcgRVBHIERhdGEiLAogICAgICAiZGVzY3JpcHRpb24iOiAiV2hlbiB0aGVyZSBpcyBubyBtYXRjaGluZyBFUEcgZGF0YSBmb3IgY2hhbm5lbCwgPGJyPmF1dG9maWxsIHdpdGggeFRlVmUgZHVtbXkgRVBHIGRhdGE/IgogICAgfSwKICAgICJlbmFibGVNYXBwZWRDaGFubmVscyI6IHsKICAgICAgInRpdGxlIjogIkVuYWJsZSBtYXBwZWQgY2hhbm5lbHMiLAogICAgICAiZGVzY3JpcHRpb24iOiAiQXV0b21hdGljYWxseSBlbmFibGUgY2hhbm5lbHMgd2l0aCBhc3NpZ25lZCBFUEcgZGF0YSIKICAgIH0sCiAgICAiZGlzYWxsb3dVUkxEdXBsaWNhdGVzIjogewogICAgICAidGl0bGUiOiAiRGlzYWxsb3cgVVJMIGR1cGxpY2F0ZXMiLAogICAgICAiZGVzY3JpcHRpb24iOiAiSWYgY2hlY2tlZCwgZG8gbm90IGFkZCBhIG5ldyBjaGFubmVsIGZyb20gcGxheWxpc3QgaWYgY2hhbm5lbCB3aXRoIHN1Y2ggVVJMIGFscmVhZHkgZXhpc3RzIgogICAgfSwKICAgICJlcGdTb3VyY2UiOiB7CiAgICAgICJ0aXRsZSI6ICJFUEcgU291cmNlIiwKICAgICAgImRlc2NyaXB0aW9uIjogIlBNUzo8YnI+LSBVc2UgRVBHIGRhdGEgZnJvbSBQbGV4IG9yIEVtYnkgPGJyPjxicj5YRVBHOjxicj4tIFVzZSBvZiBvbmUgb3IgbW9yZSBYTUxUViBmaWxlczxicj4tIENoYW5uZWwgbWFuYWdlbWVudDxicj4tIE0zVSAvIFhNTFRWIGV4cG9ydCAoSFRUUCBsaW5rIGZvciBJUFRWIGFwcHMpIgogICAgfSwKICAgICJ0dW5lciI6IHsKICAgICAgInRpdGxlIjogIk51bWJlciBvZiBUdW5lcnMiLAogICAgICAiZGVzY3JpcHRpb24iOiAiTnVtYmVyIG9mIHBhcmFsbGVsIGNvbm5lY3Rpb25zIHRoYXQgY2FuIGJlIGVzdGFibGlzaGVkIHRvIHRoZSBwcm92aWRlci48YnI+QXZhaWxhYmxlIGZvcjogUGxleCwgRW1ieSAoSERIUiksIE0zVSAod2l0aCBhY3RpdmUgYnVmZmVyKS48YnI+QWZ0ZXIgYSBjaGFuZ2UsIHhUZVZlIG11c3QgYmUgZGVsZXRlIGluIHRoZSBQbGV4IC8gRW1ieSBEVlIgc2V0dGluZ3MgYW5kIHNldCB1cCBhZ2Fpbi4iCiAgICB9LAogICAgImhvc3RJUCI6IHsKICAgICAgInRpdGxlIjogIkhvc3QgSVAiLAogICAgICAiZGVzY3JpcHRpb24iOiAiSVAgYWRkcmVzcyB4VGVWZSB3aWxsIHVzZSB0byBmb3JtIE0zVSBhbmQgWE1MVFYgZmlsZXMiCiAgICB9LAogICAgImhvc3ROYW1lIjogewogICAgICAidGl0bGUiOiAiSG9zdCBOYW1lIE92ZXJyaWRlIiwKICAgICAgImRlc2NyaXB0aW9uIjogIkhvc3RuYW1lIHhUZVZlIHdpbGwgdXNlIHRvIGZvcm0gTTNVIGFuZCBYTUxUViBmaWxlcy4gVGhpcyB3aWxsIG92ZXJyaWRlIEhvc3QgSVAgaWYgc2V0IgogICAgfSwKICAgICJ0bHNNb2RlIjogewogICAgICAidGl0bGUiOiAiVExTIChIVFRQUykgbW9kZSIsCiAgICAgICJkZXNjcmlwdGlvbiI6ICJDaGFuZ2VzIHdlYiBzZXJ2ZXIgcHJvdG9jb2wgdG8gSFRUUFMuPGJyPkZvciBkZXRhaWxzLCBzZWUgPGE+aHR0cHM6Ly9naXRodWIuY29tL1NlbmV4Q3JlbnNoYXcveFRlVmUjdGxzLW1vZGU8L2E+IgogICAgfSwKICAgICJmaWxlc1VwZGF0ZSI6IHsKICAgICAgInRpdGxlIjogIlVwZGF0ZXMgYWxsIGZpbGVzIGF0IHN0YXJ0dXAiLAogICAgICAiZGVzY3JpcHRpb24iOiAiVXBkYXRlcyBhbGwgcGxheWxpc3RzLCB0dW5lciBhbmQgWE1MVFYgZmlsZXMgYXQgc3RhcnR1cC4iCiAgICB9LAogICAgImNhY2hlSW1hZ2VzIjogewogICAgICAidGl0bGUiOiAiSW1hZ2UgQ2FjaGluZyIsCiAgICAgICJkZXNjcmlwdGlvbiI6ICJBbGwgaW1hZ2VzIGZyb20gdGhlIFhNTFRWIGZpbGUgYXJlIGNhY2hlZCwgYWxsb3dpbmcgZmFzdGVyIHJlbmRlcmluZyBvZiB0aGUgZ3JpZCBpbiB0aGUgY2xpZW50Ljxicj5Eb3dubG9hZGluZyB0aGUgaW1hZ2VzIG1heSB0YWtlIGEgd2hpbGUgYW5kIHdpbGwgYmUgZG9uZSBpbiB0aGUgYmFja2dyb3VuZC4iCiAgICB9LAogICAgInJlcGxhY2VFbXB0eUltYWdlcyI6IHsKICAgICAgInRpdGxlIjogIlJlcGxhY2UgbWlzc2luZyBwcm9ncmFtIGltYWdlcyIsCiAgICAgICJkZXNjcmlwdGlvbiI6ICJJZiB0aGUgcG9zdGVyIGluIHRoZSBYTUxUViBwcm9ncmFtIGlzIG1pc3NpbmcsIHRoZSBjaGFubmVsIGxvZ28gd2lsbCBiZSB1c2VkLiIKICAgIH0sCiAgICAieHRldmVBdXRvVXBkYXRlIjogewogICAgICAidGl0bGUiOiAiQXV0b21hdGljIHVwZGF0ZSBvZiB4VGVWZSIsCiAgICAgICJkZXNjcmlwdGlvbiI6ICJJZiBhIG5ldyB2ZXJzaW9uIG9mIHhUZVZlIGlzIGF2YWlsYWJsZSwgaXQgd2lsbCBiZSBhdXRvbWF0aWNhbGx5IGluc3RhbGxlZC4gVGhlIHVwZGF0ZXMgYXJlIGRvd25sb2FkZWQgZnJvbSBHaXRIdWIuIgogICAgfSwKICAgICJzdHJlYW1CdWZmZXJpbmciOiB7CiAgICAgICJ0aXRsZSI6ICJTdHJlYW0gQnVmZmVyIiwKICAgICAgImRlc2NyaXB0aW9uIjogIkZ1bmN0aW9ucyBvZiB0aGUgYnVmZmVyOjxicj4tIFRoZSBzdHJlYW0gaXMgcGFzc2VkIGZyb20geFRlVmUsIEZGbXBlZyBvciBWTEMgdG8gUGxleCwgRW1ieSBvciBNM1UgUGxheWVyPGJyPi0gU21hbGwgamVya2luZyBvZiB0aGUgc3RyZWFtcyBjYW4gYmUgY29tcGVuc2F0ZWQ8YnI+LSBITFMgLyBNM1U4IHN1cHBvcnQ8YnI+LSBSVFAgLyBSVFBTIHN1cHBvcnQgKG9ubHkgRkZtcGVnIG9yIFZMQyk8YnI+LSBSZS1zdHJlYW1pbmc8YnI+LSBTZXBhcmF0ZSB0dW5lciBsaW1pdCBmb3IgZWFjaCBwbGF5bGlzdCIsCiAgICAgICJpbmZvX2ZhbHNlIjogIk5vIEJ1ZmZlciAoQ2xpZW50IGNvbm5lY3RzIHRvIHRoZSBzdHJlYW1pbmcgc2VydmVyKSIsCiAgICAgICJpbmZvX3h0ZXZlIjogInhUZVZlIGNvbm5lY3RzIHRvIHRoZSBzdHJlYW1pbmcgc2VydmVyIiwKICAgICAgImluZm9fZmZtcGVnIjogIkZGbXBlZyBjb25uZWN0cyB0byB0aGUgc3RyZWFtaW5nIHNlcnZlciIsCiAgICAgICJpbmZvX3ZsYyI6ICJWTEMgY29ubmVjdHMgdG8gdGhlIHN0cmVhbWluZyBzZXJ2ZXIiCiAgICB9LAogICAgInVkcHh5IjogewogICAgICAidGl0bGUiOiAiVURQeHkgYWRkcmVzcyIsCiAgICAgICJkZXNjcmlwdGlvbiI6ICJUaGUgYWRkcmVzcyBvZiB5b3VyIFVEUHh5IHNlcnZlci4gSWYgc2V0LCBhbmQgdGhlIGNoYW5uZWwgVVJMcyBpbiB0aGUgbTN1IGlzIG11bHRpY2FzdCwgeFRlVmUgd2lsbCByZXdyaXRlIGl0IHNvIHRoYXQgaXQgaXMgYWNjZXNzZWQgdmlhIHRoZSBVRFB4eSBzZXJ2aWNlLiIsCiAgICAgICJwbGFjZWhvbGRlciI6ICJob3N0OnBvcnQiCiAgICB9LAogICAgImZmbXBlZ1BhdGgiOiB7CiAgICAgICJ0aXRsZSI6ICJGRm1wZWcgQmluYXJ5IFBhdGgiLAogICAgICAiZGVzY3JpcHRpb24iOiAiUGF0aCB0byBGRm1wZWcgYmluYXJ5LiIsCiAgICAgICJwbGFjZWhvbGRlciI6ICIvcGF0aC90by9mZm1wZWciCiAgICB9LAogICAgImZmbXBlZ09wdGlvbnMiOiB7CiAgICAgICJ0aXRsZSI6ICJGRm1wZWcgT3B0aW9ucyIsCiAgICAgICJkZXNjcmlwdGlvbiI6ICJGRm1wZWcgb3B0aW9ucy48YnI+T25seSBjaGFuZ2UgaWYgeW91IGtub3cgd2hhdCB5b3UgYXJlIGRvaW5nLjxicj5MZWF2ZSBibGFuayB0byBzZXQgZGVmYXVsdCBzZXR0aW5ncy4iLAogICAgICAicGxhY2Vob2xkZXIiOiAiTGVhdmUgYmxhbmsgdG8gc2V0IGRlZmF1bHQgc2V0dGluZ3MiCiAgICB9LAogICAgInZsY1BhdGgiOiB7CiAgICAgICJ0aXRsZSI6ICJWTEMgLyBDVkxDIEJpbmFyeSBQYXRoIiwKICAgICAgImRlc2NyaXB0aW9uIjogIlBhdGggdG8gVkxDIC8gQ1ZMQyBiaW5hcnkuIiwKICAgICAgInBsYWNlaG9sZGVyIjogIi9wYXRoL3RvL2N2bGMiCiAgICB9LAogICAgInZsY09wdGlvbnMiOiB7CiAgICAgICJ0aXRsZSI6ICJWTEMgLyBDVkxDIE9wdGlvbnMiLAogICAgICAiZGVzY3JpcHRpb24iOiAiVkxDIC8gQ1ZMQyBvcHRpb25zLjxicj5Pbmx5IGNoYW5nZSBpZiB5b3Uga25vdyB3aGF0IHlvdSBhcmUgZG9pbmcuPGJyPkxlYXZlIGJsYW5rIHRvIHNldCBkZWZhdWx0IHNldHRpbmdzLiIsCiAgICAgICJwbGFjZWhvbGRlciI6ICJMZWF2ZSBibGFuayB0byBzZXQgZGVmYXVsdCBzZXR0aW5ncyIKICAgIH0sCiAgICAiYnVmZmVyU2l6ZSI6IHsKICAgICAgInRpdGxlIjogIkJ1ZmZlciBTaXplIiwKICAgICAgImRlc2NyaXB0aW9uIjogIkJ1ZmZlciBzaXplIGluIE1CLjxicj5NM1U4OiBJZiB0aGUgVFMgc2VnbWVudCBzbWFsbGVyIHRoZW4gdGhlIGJ1ZmZlciBzaXplLCB0aGUgZmlsZSBzaXplIG9mIHRoZSBzZWdtZW50IGlzIHVzZWQuIgogICAgfSwKICAgICJzdG9yZUJ1ZmZlckluUkFNIjogewogICAgICAidGl0bGUiOiAiU3RvcmUgYnVmZmVyIGluIFJBTSIsCiAgICAgICJkZXNjcmlwdGlvbiI6ICJJZiBjaGVja2VkLCB3cml0ZSBidWZmZXIgdG8gUkFNIGluc3RlYWQgb2Ygd3JpdGluZyB0byBkaXNrIgogICAgfSwKICAgICJidWZmZXJUaW1lb3V0IjogewogICAgICAidGl0bGUiOiAiVGltZW91dCBmb3IgbmV3IGNsaWVudCBjb25uZWN0aW9ucyIsCiAgICAgICJkZXNjcmlwdGlvbiI6ICJUaGUgeFRlVmUgYnVmZmVyIHdhaXRzIHVudGlsIG5ldyBjbGllbnQgY29ubmVjdGlvbnMgYXJlIGVzdGFibGlzaGVkLiBIZWxwZnVsIGZvciBmYXN0IGNoYW5uZWwgc3dpdGNoaW5nLiBWYWx1ZSBpbiBtaWxsaXNlY29uZHMuIiwKICAgICAgInBsYWNlaG9sZGVyIjogIjEwMCIKICAgIH0sCiAgICAidXNlckFnZW50IjogewogICAgICAidGl0bGUiOiAiVXNlciBBZ2VudCIsCiAgICAgICJkZXNjcmlwdGlvbiI6ICJVc2VyIEFnZW50IGZvciBIVFRQIHJlcXVlc3RzLiBGb3IgZXZlcnkgSFRUUCBjb25uZWN0aW9uLCB0aGlzIHZhbHVlIGlzIHVzZWQgZm9yIHRoZSB1c2VyIGFnZW50LiBTaG91bGQgb25seSBiZSBjaGFuZ2VkIGlmIHhUZVZlIGlzIGJsb2NrZWQuIiwKICAgICAgInBsYWNlaG9sZGVyIjogInhUZVZlIgogICAgfSwKICAgICJiYWNrdXBQYXRoIjogewogICAgICAidGl0bGUiOiAiTG9jYXRpb24gZm9yIGF1dG9tYXRpYyBiYWNrdXBzIiwKICAgICAgInBsYWNlaG9sZGVyIjogIi9tbnQvZGF0YS9iYWNrdXAveHRldmUvIiwKICAgICAgImRlc2NyaXB0aW9uIjogIkJlZm9yZSBhbnkgdXBkYXRlIG9mIHRoZSBwcm92aWRlciBkYXRhIGJ5IHRoZSBzY2hlZHVsZSwgeFRlVmUgY3JlYXRlcyBhIGJhY2t1cC4gVGhlIHBhdGggZm9yIHRoZSBhdXRvbWF0aWMgYmFja3VwcyBjYW4gYmUgY2hhbmdlZC4geFRlVmUgcmVxdWlyZXMgd3JpdGUgcGVybWlzc2lvbiBmb3IgdGhpcyBmb2xkZXIuIgogICAgfSwKICAgICJ0ZW1wUGF0aCI6IHsKICAgICAgInRpdGxlIjogIkxvY2F0aW9uIGZvciB0aGUgdGVtcG9yYXJ5IGZpbGVzIiwKICAgICAgInBsYWNlaG9sZGVyIjogIi90bXAveHRldmUvIiwKICAgICAgImRlc2NyaXB0aW9uIjogIkxvY2F0aW9uIGZvciB0aGUgYnVmZmVyIGZpbGVzLiIKICAgIH0sCiAgICAiYmFja3VwS2VlcCI6IHsKICAgICAgInRpdGxlIjogIk51bWJlciBvZiBiYWNrdXBzIHRvIGtlZXAiLAogICAgICAiZGVzY3JpcHRpb24iOiAiTnVtYmVyIG9mIGJhY2t1cHMgdG8ga2VlcC4gT2xkZXIgYmFja3VwcyBhcmUgYXV0b21hdGljYWxseSBkZWxldGVkLiIKICAgIH0sCiAgICAiYXV0aGVudGljYXRpb25XRUIiOiB7CiAgICAgICJ0aXRsZSI6ICJXRUIgQXV0aGVudGljYXRpb24iLAogICAgICAiZGVzY3JpcHRpb24iOiAiQWNjZXNzIHRvIHRoZSB3ZWIgaW50ZXJmYWNlIG9ubHkgcG9zc2libGUgd2l0aCBjcmVkZW50aWFscy4iCiAgICB9LAogICAgImF1dGhlbnRpY2F0aW9uUE1TIjogewogICAgICAidGl0bGUiOiAiUE1TIEF1dGhlbnRpY2F0aW9uIiwKICAgICAgImRlc2NyaXB0aW9uIjogIlBsZXggcmVxdWVzdHMgYXJlIG9ubHkgcG9zc2libGUgd2l0aCBhdXRoZW50aWNhdGlvbi4gPGJyPjxiPldhcm5pbmchISE8L2I+IEFmdGVyIGFjdGl2YXRpbmcgdGhpcyBmdW5jdGlvbiB4VGVWZSBtdXN0IGJlIGRlbGV0ZSBpbiB0aGUgUE1TIERWUiBzZXR0aW5ncyBhbmQgc2V0IHVwIGFnYWluLiIKICAgIH0sCiAgICAiYXV0aGVudGljYXRpb25NM1UiOiB7CiAgICAgICJ0aXRsZSI6ICJNM1UgQXV0aGVudGljYXRpb24iLAogICAgICAiZGVzY3JpcHRpb24iOiAiRG93bmxvYWRpbmcgdGhlIHh0ZXZlLm0zdSBmaWxlIHZpYSBhbiBIVFRQIHJlcXVlc3QgaXMgb25seSBwb3NzaWJsZSB3aXRoIGF1dGhlbnRpY2F0aW9uLiIKICAgIH0sCiAgICAiYXV0aGVudGljYXRpb25YTUwiOiB7CiAgICAgICJ0aXRsZSI6ICJYTUwgQXV0aGVudGljYXRpb24iLAogICAgICAiZGVzY3JpcHRpb24iOiAiRG93bmxvYWRpbmcgdGhlIHh0ZXZlLnhtbCBmaWxlIHZpYSBhbiBIVFRQIHJlcXVlc3QgaXMgb25seSBwb3NzaWJsZSB3aXRoIGF1dGhlbnRpY2F0aW9uIgogICAgfSwKICAgICJhdXRoZW50aWNhdGlvbkFQSSI6IHsKICAgICAgInRpdGxlIjogIkFQSSBBdXRoZW50aWNhdGlvbiIsCiAgICAgICJkZXNjcmlwdGlvbiI6ICJBY2Nlc3MgdG8gdGhlIEFQSSBpbnRlcmZhY2UgaXMgb25seSBwb3NzaWJsZSB3aXRoIGF1dGhlbnRpY2F0aW9uLiIKICAgIH0KICB9LAogICJ3aXphcmQiOiB7CiAgICAiZXBnU291cmNlIjogewogICAgICAidGl0bGUiOiAiRVBHIFNvdXJjZSIsCiAgICAgICJkZXNjcmlwdGlvbiI6ICJQTVM6PGJyPi0gVXNlIEVQRyBkYXRhIGZyb20gUGxleCBvciBFbWJ5IDxicj48YnI+WEVQRzo8YnI+LSBVc2Ugb2Ygb25lIG9yIG1vcmUgWE1MVFYgZmlsZXM8YnI+LSBDaGFubmVsIG1hbmFnZW1lbnQ8YnI+LSBNM1UgLyBYTUxUViBleHBvcnQgKEhUVFAgbGluayBmb3IgSVBUViBhcHBzKSIKICAgIH0sCiAgICAidHVuZXIiOiB7CiAgICAgICJ0aXRsZSI6ICJOdW1iZXIgb2YgdHVuZXJzIiwKICAgICAgImRlc2NyaXB0aW9uIjogIk51bWJlciBvZiBwYXJhbGxlbCBjb25uZWN0aW9ucyB0aGF0IGNhbiBiZSBlc3RhYmxpc2hlZCB0byB0aGUgcHJvdmlkZXIuPGJyPkF2YWlsYWJsZSBmb3I6IFBsZXgsIEVtYnkgKEhESFIpLCBNM1UgKHdpdGggYWN0aXZlIGJ1ZmZlcikuPGJyPkFmdGVyIGEgY2hhbmdlLCB4VGVWZSBtdXN0IGJlIGRlbGV0ZSBpbiB0aGUgUGxleCAvIEVtYnkgRFZSIHNldHRpbmdzIGFuZCBzZXQgdXAgYWdhaW4uIgogICAgfSwKICAgICJtM3UiOiB7CiAgICAgICJ0aXRsZSI6ICJNM1UgUGxheWxpc3QiLAogICAgICAicGxhY2Vob2xkZXIiOiAiRmlsZSBwYXRoIG9yIFVSTCBvZiB0aGUgTTNVIiwKICAgICAgImRlc2NyaXB0aW9uIjogIkxvY2FsIG9yIHJlbW90ZSBwbGF5bGlzdHMiCiAgICB9LAogICAgInhtbHR2IjogewogICAgICAidGl0bGUiOiAiWE1MVFYgRmlsZSIsCiAgICAgICJwbGFjZWhvbGRlciI6ICJGaWxlIHBhdGggb3IgVVJMIG9mIHRoZSBYTUxUViIsCiAgICAgICJkZXNjcmlwdGlvbiI6ICJMb2NhbCBvciByZW1vdGUgWE1MVFYgZmlsZSIKICAgIH0KICB9LAogICJsb2dpbiI6IHsKICAgICJmYWlsZWQiOiAiVXNlciBhdXRoZW50aWNhdGlvbiBmYWlsZWQiLAogICAgImhlYWRsaW5lIjogIkxvZ2luIiwKICAgICJ1c2VybmFtZSI6IHsKICAgICAgInRpdGxlIjogIlVzZXJuYW1lIiwKICAgICAgInBsYWNlaG9sZGVyIjogIlVzZXJuYW1lIgogICAgfSwKICAgICJwYXNzd29yZCI6IHsKICAgICAgInRpdGxlIjogIlBhc3N3b3JkIiwKICAgICAgInBsYWNlaG9sZGVyIjogIlBhc3N3b3JkIgogICAgfQogIH0sCiAgImFjY291bnQiOiB7CiAgICAiZmFpbGVkIjogIlBhc3N3b3JkIGRvZXMgbm90IG1hdGNoIiwKICAgICJoZWFkbGluZSI6ICJDcmVhdGUgdXNlciBhY2NvdW50IiwKICAgICJ1c2VybmFtZSI6IHsKICAgICAgInRpdGxlIjogIlVzZXJuYW1lIiwKICAgICAgInBsYWNlaG9sZGVyIjogIlVzZXJuYW1lIgogICAgfSwKICAgICJwYXNzd29yZCI6IHsKICAgICAgInRpdGxlIjogIlBhc3N3b3JkIiwKICAgICAgInBsYWNlaG9sZGVyIjogIlBhc3N3b3JkIgogICAgfSwKICAgICJjb25maXJtIjogewogICAgICAidGl0bGUiOiAiQ29uZmlybSIsCiAgICAgICJwbGFjZWhvbGRlciI6ICJDb25maXJtIgogICAgfQogIH0KfQ==" webUI["html/login.html"] = "PCFkb2N0eXBlIGh0bWw+CjxodG1sPgoKPGhlYWQ+CiAgPG1ldGEgY2hhcnNldD0idXRmLTgiPgogIDxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgsIGluaXRpYWwtc2NhbGU9MS4wIiAvPgogIDx0aXRsZT54VGVWZTwvdGl0bGU+CiAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJjc3Mvc2NyZWVuLmNzcyIgdHlwZT0idGV4dC9jc3MiPgogIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iY3NzL2Jhc2UuY3NzIiB0eXBlPSJ0ZXh0L2NzcyI+CiAgPHNjcmlwdCBsYW5ndWFnZT0iamF2YXNjcmlwdCIgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9ImpzL25ldHdvcmtfdHMuanMiPjwvc2NyaXB0PgogIDxzY3JpcHQgbGFuZ3VhZ2U9ImphdmFzY3JpcHQiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJqcy9hdXRoZW50aWNhdGlvbl90cy5qcyI+PC9zY3JpcHQ+CjwvaGVhZD4KCjxib2R5PgoKICA8ZGl2IGlkPSJoZWFkZXIiIGNsYXNzPSJpbWdDZW50ZXIiPjwvZGl2PgoKICA8ZGl2IGlkPSJib3giPgoKICAgIDxkaXYgaWQ9ImhlYWRsaW5lIj4KICAgICAgPGgxIGlkPSJoZWFkLXRleHQiIGNsYXNzPSJjZW50ZXIiPnt7LmxvZ2luLmhlYWRsaW5lfX08L2gxPgogICAgPC9kaXY+CgogICAgPHAgaWQ9ImVyciIgY2xhc3M9ImVycm9yTXNnIGNlbnRlciI+e3suYXV0aGVudGljYXRpb25FcnJ9fTwvcD4KCiAgICA8ZGl2IGlkPSJjb250ZW50Ij4KCiAgICAgIDxmb3JtIGlkPSJhdXRoZW50aWNhdGlvbiIgYWN0aW9uPSIiIG1ldGhvZD0icG9zdCI+CgogICAgICAgIDxoNT57ey5sb2dpbi51c2VybmFtZS50aXRsZX19OjwvaDU+CiAgICAgICAgPGlucHV0IGlkPSJ1c2VybmFtZSIgdHlwZT0idGV4dCIgbmFtZT0idXNlcm5hbWUiIHBsYWNlaG9sZGVyPSJVc2VybmFtZSIgdmFsdWU9IiI+CiAgICAgICAgPGg1Pnt7LmxvZ2luLnBhc3N3b3JkLnRpdGxlfX06PC9oNT4KICAgICAgICA8aW5wdXQgaWQ9InBhc3N3b3JkIiB0eXBlPSJwYXNzd29yZCIgbmFtZT0icGFzc3dvcmQiIHBsYWNlaG9sZGVyPSJQYXNzd29yZCIgdmFsdWU9IiI+CgogICAgICA8L2Zvcm0+CgogICAgPC9kaXY+CgogICAgPGRpdiBpZD0iYm94LWZvb3RlciI+CiAgICAgIDxpbnB1dCBpZD0ic3VibWl0IiBjbGFzcz0iIiB0eXBlPSJidXR0b24iIHZhbHVlPSJ7ey5idXR0b24ubG9naW59fSIgb25jbGljaz0iamF2YXNjcmlwdDogbG9naW4oKTsiPgogICAgPC9kaXY+CgogIDwvZGl2PgoKPC9ib2R5PgoKPC9odG1sPg==" webUI["html/maintenance.html"] = "PCFkb2N0eXBlIGh0bWw+CjxodG1sPgoKPGhlYWQ+CiAgPG1ldGEgY2hhcnNldD0idXRmLTgiPgogIDxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgsIGluaXRpYWwtc2NhbGU9MS4wIiAvPgogIDx0aXRsZT54VGVWZTwvdGl0bGU+CiAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJjc3Mvc2NyZWVuLmNzcyIgdHlwZT0idGV4dC9jc3MiPgogIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iY3NzL2Jhc2UuY3NzIiB0eXBlPSJ0ZXh0L2NzcyI+CjwvaGVhZD4KCjxib2R5PgoKICA8ZGl2IGlkPSJoZWFkZXIiIGNsYXNzPSJpbWdDZW50ZXIiPjwvZGl2PgoKICA8ZGl2IGlkPSJib3giPgoKICAgIDxkaXYgaWQ9ImhlYWRsaW5lIj4KICAgICAgPGgxIGlkPSJoZWFkLXRleHQiIGNsYXNzPSJjZW50ZXIiPk1haW50ZW5hbmNlPC9oMT4KICAgIDwvZGl2PgoKICAgIDxkaXYgaWQ9ImNvbnRlbnQiPgogICAgICB4VGVWZSBpcyB1cGRhdGluZyB0aGUgZGF0YWJhc2UsIHBsZWFzZSB0cnkgYWdhaW4gbGF0ZXIuCiAgICA8L2Rpdj4KCiAgICA8ZGl2IGlkPSJib3gtZm9vdGVyIj48L2Rpdj4KCiAgPC9kaXY+Cgo8L2JvZHk+Cgo8L2h0bWw+" webUI["html/video/stream-limit.ts"] = "R0AREABC8CUAAcEAAP8B/wAB/IAUSBIBBkZGbXBlZwlTZXJ2aWNlMDF3fEPK//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////9HQAAQAACwDQABwQAAAAHwACqxBLL//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////0dQABAAArASAAHBAADhAPAAG+EA8AAVvU1W////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////R0EAMAdQAAB7DH4AAAAB4AAAgMAKMQAJEKERAAfYYQAAAAEJ8AAAAAFnZAAorNlAeAIn5cBEAAADAAQAAAMAyDxgxlgAAAABaOvjyyLAAAABBgX//6rcRem95tlIt5Ys2CDZI+7veDI2NCAtIGNvcmUgMTUyIHIyODU0IGU5YTU5MDMgLSBILjI2NC9NUEVHLTQgQVZDIGNvZGVjIC0gQ29weWxlZnQgMjAwMy0yMDE3IC0gaHR0cDovL3dHAQARd3cudmlkZW9sYW4ub3JnL3gyNjQuaHRtbCAtIG9wdGlvbnM6IGNhYmFjPTEgcmVmPTMgZGVibG9jaz0xOjA6MCBhbmFseXNlPTB4MzoweDExMyBtZT1oZXggc3VibWU9NyBwc3k9MSBwc3lfcmQ9MS4wMDowLjAwIG1peGVkX3JlZj0xIG1lX3JhbmdlPTE2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ACqxBLL//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////0dQABEAArASAAHBAADhAPAAG+EA8AAVvU1W////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////RwEAGO10tGlFAwyE91Tzg8923ovJk1dv2xh1gVlYQFtWdZ6NSQ8vgHM7/tMfIZPsqgCU856rdBJJRMDaor/oWA7pkvSmC2aqaC5fd/mkWUPTuG8fRhGqOY1rKxLNSI3HtTQAcuVBxRM0NfMw0ky/JMJYZiCgXcNsxpxl+khr/9fKtO5Fg2VNBti92xcZimHUZDJMQTBOY6vSR9L1N2O/kJQCpdfuc9bkcUTMjH/es/lAySxvbiislkohqkpHAQAZVatwHI0t9eHCUfDyWUEtuCNyDwQFOVMtaYEQJrTrhQX0VduT86F0u0wN9ag0uPsrmX6Rid/x5S7KI1SkS+qP6cdmgSP57uiF4dG6IKsWNfGBLY09H/CFlrg73WINQkkp2diKkdEmtZetn8+ZAKzR5eXN5FebiKt6pIkNLuSofjosypEs2o6boKsfpmbtOV0idOeWDM9C8EIcn3aZwk1s2KBDvt1DlY+i2Cuvhk3XoKLT+pq/bOC5QkcBABolcOXneZXLoQw9W1PH1f/of92Ytjj8okrWijcQAKlE5l8XoTb9qrOiZnDOhqwcMlB9H9rorq041I89hChohYoSkJElcM8V+r8WYN5axD1BNyfwaHAOm4UN2/VEYOkNSfMjmx2S0WW/F2ha8Jj4fc4QgqcXr+TnnbwqLkLTValK4Qa1pcv7PIbDq6zCUfxe04guZ8xEhPQjp17/G6IB/6uq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wnibxQ/cXEblVnM47wbCN3iy4eHjYB5MoIICrSYmd8nt4V0toLs084KJlmnur5FbApYM4W79ff4oZkW88Cg8Fv8TnWhh1Hqc4UlhMbRKm2QxDgfBxar3U7BwNR6prrXXjqfR7ja3tPli+H7Jez/xcTg32QpHAQAdTa7pSSgBvmOqzz175NAFIhwE9p3d71F9jLvhaPv8q1iKopL0kizwzEWElnXWmNhfLkl/Au8KujnoKUaxVdTe+zAZm2dOkejnpNVtVj0Aw9wKcG3ZQ1iRZrUFRIoPKYlmR+oi0LrupuhYABtgPbdCbDtezGTr0nw9wVd/rZ6V+1wcoJ6+8VAVueIdwI3brqm6EoFHiI8L6lER+9SefB8fHo4NYgr/I8jSxaa/2PLX2K/DjrlY6bN8fEcBAB7DXsuh8DITF6CYWj2HTFvqfzlic3QHXnHtvsTFNpyVY1LY8y/fRK2mwALN6IB5W3OuyoKiA3K0lJdQUv2gYhHWvPTV218HYrD0rkbMxRH0SiEEkrHDeOt5T1HtWD13D2/QvMu535fsfZyeaFDjdCE9M0Xi8Lfc7Xj1ZNGend7Jo7/cEiczFkc1vB4z2JpFGZreV2EdquyEzC2STFJtfimyx8QlLngEuR1cxH+lWEcFX+mvBa/eqktIRwEAH6VazFLPNsnHZqsI66TVoArQuUUGFAzr8MT8GZ9V6qpZa5D0jA/4eGi6Kq0smUgRExnqIbSMLWqDf/Pk2YT3MpHTu9VE3Dn9blgB6KsVIkWnB98Y2n/6DrZDcF94Ndu0Ka4U/RZwdV5O5KcO+lU2ZiIOYTYZ6Ie0d+tApxYxJ+YmxaDoCyRNe6crw/yzR5SflT8ddi/E2BM+l+nwVDiKZ/714fmrBxFKWuqLiQNHV19o1cZ8Ubun+ZtHQAASAACwDQABwQAAAAHwACqxBLL//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////0dQABIAArASAAHBAADhAPAAG+EA8AAVvU1W////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////RwEAEH1s3BdtHdF1ln55B24wdACF/ggcRtPmB4IUB6cZJ+m32I4R48ZkdhAFBulgWcsv0wZwH0o1yi3i4qm3rJ98AUKdB9PsNyG9gURV0bTw4myAj6g5Dgodfv6w9bsbOxsGUWkvgAJ3rrR010BvZbIa6CMRCQRjxkCfRF77ansRJZT0JzhtYeSS/ZJob8Rr2jrng3W2rkmHtE+rdqlPiHxmwkRZvYGhBxwiJO2L6f+l/cABsfs09rA+A0pHAQAREZay3TBUIAfMWhApE+LaPgeyOYtaPFONA9aC0h4QrFkaLZfb86678MK+zLgqDBsDoj50eZHMVcczRjs4sYlv7RG8RIWKb5lB9Kn/8+CkxiiA11cHH1yzLX2SKCmhsak/+P/zYQ1EDvEj33bl9e3Jd62cTI+Qw99KrsWnUMN8hFNeXzoGHA3aec+Li4NFboF8sa6lCPR6Csxsvxw8DJaWCnER5Z0p+nKhXavF/eNHQ0DX47ohycc87UcBABKsYHCHXXe3vK1cFYDWO6rhwM6hxCdJ+/X+VB1akQejL6iBMdUPuadUqBnbprwJM0dWpSSn9uuZZeqe46iZOGIJUo69d8x+ZSvPcBH/dK1Y0LJnoWdgWH51SQg7eYqcwjQW3BOy7ZF02Hn1EhTuhsN7ms8zv3WIeEBDBq0T3Idl+Tmw9iJU9skVYiwygHG2+0XwrLa6y+uiQPwMzrnEr1kuf24XoAqrJTZQiVH3aQF4d94yDreWu2KPRwEAE2FsynHZaUcBXEFbeX0nSxZ7sRcRjJvc7RYOny6N8QFwKDVO7jpRWWYM55kuepBOyZ+7BFYeG+FU1kR+ZfmqyDNkD4D1IPwNh6u9JQxDymfN/aMcQC3WxdvCKquPsAut6dugpGkOFtIe+W3ayc4V/J978P+h1EDFMbFjxRPuXht0K2dBQZCJ0ybISUDqWzhPuep8CdxSU4MvMVfdXh7FLl/BqKJUTT+vM+Pz3XnqCQQmH5TjQ4CK55VHAQAUEtgfkBwIYgtwHkhjmtLw7HNTeJeMfTjATEKcyuKzItSeYxHBmGzQ/+G2otpPCOkVAXJ9mfx7LxrW4joZ0ttTRQJ/wqMUK1IN349LiJoo8y/+FwN4jPNDwIleJG697riqnmLOweFW8spHKLBfnHcyC1pG6EIxFpTqUQ0KHqXD/KXIHKioJNAOVwQ1Gfloxebo/Tdtd00dpHP3gcsAOnV75APCYOjVIlwm2X6ViDeZw6Btdb/Br/+yokcBABU3+eOESLlneGbR5SLiL8wPkoRaZ5X7xFlMTMvsv9yHk26bVdmsubSdbYS1Hy64n0+NnL7C1aLD7aJxOudMjVW5goZbfO2KxBQkCD4HFA284wbaB5vOL7mRilCn6YEs1kiwf22+fBLNUmXDb2p353wrD/ygTDhlki66USvUmd/ZAs9uzAddegEzy7Xn00YysWTu/hegYyZtWFC+X5dhLubWJ7n96y5wjrP7PAOXoQQtFUH9j/rBiP/7RwEAFnL/wYKYuj80mPGtimSbF/E9K7XwjwBz8yHZubmVMTCmwkZBM4h0FR1thnUGiSjqjJT6SfunWCZ/dZDQplrzS00UKcUP399SyM+nNG1br8Za0ZYwWch8nyLHYXSRuxdnrfUUespsOQo1cWSLGf0pV2HIcHoiAAEKwPU6irB5BSoFvB1qKVjgEk+QwAEYAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAABHAQA3pAD/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////AwAAAwAAAwAAAwAAAwAAAwBbwUdBABgAAAHgAACAwAoxAAmBIREAB/SBAAAAAQnwAAAAAUGaJGxDv/6plgAAAwAAAwAAAwAAAwAAAwAAAwAAAwAKCKB0AIhy1ftwLNISWucTFC7xeBcaIzP3oZjZo8uT9hqZVstWGnrPz+vjaA5FuCO+K2w7/o39LygDO7aL+0zSrN90LW7r133x8+f+PEKk8d7pd2fj4RYuMOXOYunzFzRX/4IvR1XsK5WJYwVkOca3yfo7DTvUBP9rgSiTRwEAGQD6CFK1PBC4qYCa+coLVnX+jgODNrau5YJXIekDI4+wUNV+5T5HE4e2t5EGAjn77+kC1Vghmvx8KqPnylVUvsaTofheggxHsPuxn1zQt6nA59UglrRUMn8b4pmrvfqTBSqU949+AcNAI6M/eAqz6r0RG5KNeBhx8R2f0x2kujwHU3pc3rlPb6ZrFM/2HiG97eEIezrvWFG7YAAAAwAAAwAE1KRo1VfbdZQ/tOpNGxFmTcQoFidyD2tHAQAapTTIErUKA2Rc9uIzGJu+oW0uNOxRyl6oJNUNJp5L9TIshNS1CmUKgdCaE3LkLwdE8iUkUnIGfWLiWpWmjzsINYC8dnDaSptB53yJkBu0SsR00oo1PZ0pl4ZzoXGSYQJTPaVCbj6FNqm5wcnUqKTB/rgHdPdnDj0K8asLABeo/n3XCXrDorI+LYSD1FBgmV9O7RZdjfL0NnXOQkiq/ZGirwVV0cUF1aHtZx1yHlAAZKuuu7TqB13CAUcBADuRAP///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////yj/IrOvAEoXDNGy+nrxWN0l8cmuqWYaUJpuM9XgAAADAAADAAKmR0EAPAcQAACJHH4AAAAB4AAAgMAKMQAJSOERAAkQoQAAAAEJ8AAAAAFBnkJ4hf8AAAMAAAMAAAMAAAMAAAMAAAMAAAMAC/BmhyuvLmkCgKTgACEXfOVvHRHdpBEEmTTz9pIZCa2FD0CXukzDCakOHekTpJQSdsfd7a/jjM1/5lBtKCAGQ6zOCSQ6DeKtyw+CugDuuglGipwmvQW+FIDjnZ6HRd0uaSOGy6VB3h9MI1o4nqaCqVwwIgubYZFHAQA9XgD////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////WcZrO6BEiqf8pCxYwlz2mkdUzY/ipM/TIHS4m5xQAAAMAAAMAAA5sVm90p14dlvWgBgY7XQ9KVOJKLtaMAN5KiffVQtNuzW5DfL+RewZpAAADAAADAAAQMUdBAB4AAAHgAACAgAUhAAkswQAAAAEJ8AAAAAEBnmF0Qr8AAAMAAAMAAAMAAAMAAAMAAAMAAAMAABJfBjP2+4+W7ZybyT130+Ma4WSqICfd/dS4YtjrLlmh5VBlfrtwJqdN1PBTYDkwGOOONqZQeFN6lLGJoDzvuh3kv1aDBLqug+JhvrSeu5ebnvcrtQzb2REwJL3h9mvtkr0WfDu4AAADAAADAAs32Y4C/6Ns79oCGj6oqLltY3T4I0/QRwEAP5wA//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////8BeoWLRnKQmVgO/RBoBfcK85AAAAMAAAMACFhHQQAwBxAAAJcsfgAAAAHgAACAwAoxAAllAREACUjhAAAAAQnwAAAAAQGeY2pCvwAAAwAAAwAAAwAAAwAAAwAAAwAAAwAAEmDKfLGXsvBBQPNYXlEd6WueJ4deApfcHESlG+7V6u0AiWQqJvNZYM+3Js3Lj9Ldc9yYIHqruVwfMtCYGlX3wMavI/DrhMuJw+RreIF8SKsJD8CMccAAAAMAAAMACrFZOBgEqaP/8EyWsAHV6CgcAgfyox/roEcBADGuAP//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////AAADAAADAHTBR0EAEgAAAeAAAIDACjEACfGhEQAJZQEAAAABCfAAAAABQZpoSahBaJlMCHf//qmWAAADAAADAAADAAADAAADAAADAAADAAALf8A2bry6lUyIAQGNFfVK2Cd7h4qDqmqpvmXfkfTwo2Ab79AHhajxJ4MPWIgAAA84xLRIx7I2CrWjWe96OvgkzgS9mtvhuxdzAgpuIOJI3DEY9mviDDZz8XSAAAADAAADAB7AZkj9AAHHGvk+Pzlku8UkWa5HAQAzogD//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////6HjAkbF/gsWuvw4QAAAAwAAAwAccUdBADQHEAAApTx+AAAAAeAAAIDACjEACblhEQAJgSEAAAABCfAAAAABQZ6GRREsL/8AAAMAAAMAAAMAAAMAAAMAAAMAAAMAAA3URJB/3lMHSmOd0GYZnfpoR80WdqxlyHzPX+V81VUMeXIGrRgq5agd+ACdjoGI036yQ/rmpGw0CmMBrKwpI+nwFo3SP0s1rI2yHBZaiPJjSUgw33rBkxXcq55kfLf2sAAAAwAAAwACBWolidWDnIeQAAADRwEANbEA//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////8AAAMADulHQQA2NAD///////////////////////////////////////////////////////////////////8AAAHgAACAgAUhAAmdQQAAAAEJ8AAAAAEBnqV0Qr8AAAMAAAMAAAMAAAMAAAMAAAMAAAMAABJXNihCnx11JUosH2hBE53O/YN+GPHqcnJiQBIf3maTAAj5iRt+7GYUKBAU9iCXTiouCjGYgAAAAwAAAwA9p4HQBg2cAAADAAADAADGgUdBADc4EAAAs0x+AP////////////////////////////////////////////////////////////////8AAAHgAACAwAoxAAnVgREACblhAAAAAQnwAAAAAQGep2pCvwAAAwAAAwAAAwAAAwAAAwAAAwAAAwAAAwBR6/L83y+ZevtMZ0FW4lp8qV7fVXQAhLAWlS6mDxvpaSUgChorvgTMXtxJEIAAAAMAAAMACqFCAAADAAADAAADAAz4R0EAOCsA////////////////////////////////////////////////////////AAAB4AAAgMAKMQALYiERAAnVgQAAAAEJ8AAAAAFBmqxJqEFsmUwId//+qZYAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAApQTq0hABLvkcWCYrAaRRPNDrECJGlF/11BYvG9+JJ9Y86nxnmQzPxtAAe1UgOsXAAADAAADAAADAAADAAADAAADAAADA/JHQQA5JhAAAMFcfgD/////////////////////////////////////////AAAB4AAAgMAKMQALKeERAAnxoQAAAAEJ8AAAAAFBnspFFSwv/wAAAwAAAwAAAwAAAwAAAwAAAwAAAwAADdRFmvrVE0KXDOGwWddlwYa1foib7tXZKmkua6R4APb4b8+tXwdSNNqgf2IVNwGTohgQAcMvp6SiQxpiQym4AAADAAADAANUNUAAAAMAAAMAAAMBN0dBADo8AP//////////////////////////////////////////////////////////////////////////////AAAB4AAAgIAFIQALDcEAAAABCfAAAAABAZ7pdEK/AAADAAADAAADAAADAAADAAADAAADAAADAFHTAfujIUaaLSuklb9y0/so9AEtQAqkAxOviALQZ5jNt/iOkABrCOZ4md0iUnFwAAADAAADAALwckAAAAMAAAMAAATcR0EAO0IQAADPbH4A//////////////////////////////////////////////////////////////////////////////8AAAHgAACAwAoxAAtGAREACynhAAAAAQnwAAAAAQGe62pCvwAAAwAAAwAAAwAAAwAAAwAAAwAAAwAAAwBR6/L83y+WryR9gmVKPGbIhJpkgAFgHCej3gB6rAHPgHHAAAADAAADAAAYIV0AAAMAAAMAAAMABnxHQQA8UQD//////////////////////////////////////////////////////////////////////////////////////////////////////////wAAAeAAAIDACjEAC9KhEQALRgEAAAABCfAAAAABQZrwSahBbJlMCG///qeEAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAAZ8UdBAD00EAAA3Xx+AP///////////////////////////////////////////////////////////wAAAeAAAIDACjEAC5phEQALYiEAAAABCfAAAAABQZ8ORRUsL/8AAAMAAAMAAAMAAAMAAAMAAAMAAAMAAA3URZr61RNClwzhI2ZXdRHYLZWc1yTgKRhTIXBNABHQKIIyYNyc+AaEn1jhATEAAAMAAAMAAAMAckkIAAADAAADAAADAEbBR0EAPkYA////////////////////////////////////////////////////////////////////////////////////////////AAAB4AAAgIAFIQALfkEAAAABCfAAAAABAZ8tdEK/AAADAAADAAADAAADAAADAAADAAADAAADAFHTAfujIUAYRtY0f/43cIs2OjxACR2hMR1QBGYX+34JGAAAAwAAAwAAAwKEJ6AAAAMAAAMAAAMA3oFHQQA/QhAAAOuMfgD//////////////////////////////////////////////////////////////////////////////wAAAeAAAIDACjEAC7aBEQALmmEAAAABCfAAAAABAZ8vakK/AAADAAADAAADAAADAAADAAADAAADAAADAFHr8vzfL5avJH2CZUo8ZsiEmmSAAWAcJ6PeAHqsAc+AccAAAAMAAAMAABghXQAAAwAAAwAAAwAGfEdBADBRAP//////////////////////////////////////////////////////////////////////////////////////////////////////////AAAB4AAAgMAKMQANQyERAAu2gQAAAAEJ8AAAAAFBmzRJqEFsmUwIZ//+nhAAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAGVAR0EAMTQQAAD5nH4A////////////////////////////////////////////////////////////AAAB4AAAgMAKMQANCuERAAvSoQAAAAEJ8AAAAAFBn1JFFSwv/wAAAwAAAwAAAwAAAwAAAwAAAwAAAwAADdRFmvrVE0KXDOEjZld1EdgtlZzXJOApGFMhcE0AEdAogjJg3Jz4BoSfWOEBMQAAAwAAAwAAAwBySQgAAAMAAAMAAAMARsFHQQAyRgD///////////////////////////////////////////////////////////////////////////////////////////8AAAHgAACAgAUhAAvuwQAAAAEJ8AAAAAEBn3F0Qr8AAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAUdMB+6MhQBhG1jR//jdwizY6PEAJHaExHVAEZhf7fgkYAAADAAADAAADAoQnoAAAAwAAAwAAAwDegEdBADNCEAABB6x+AP//////////////////////////////////////////////////////////////////////////////AAAB4AAAgMAKMQANJwERAA0K4QAAAAEJ8AAAAAEBn3NqQr8AAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAUevy/N8vlq8kfYJlSjxmyISaZIABYBwno94AeqwBz4BxwAAAAwAAAwAAGCFdAAADAAADAAADAAZ8R0EANFIA////////////////////////////////////////////////////////////////////////////////////////////////////////////AAAB4AAAgMAKMQANs6ERAA0nAQAAAAEJ8AAAAAFBm3hJqEFsmUwIV//+OEAAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAYtHQQA1NBAAARW8fgD///////////////////////////////////////////////////////////8AAAHgAACAwAoxAA17YREADUMhAAAAAQnwAAAAAUGflkUVLC//AAADAAADAAADAAADAAADAAADAAADAAAN1EWa+tUTQpcM4SNmV3UR2C2VnNck4CkYUyFwTQAR0CiCMmDcnPgGhJ9Y4QExAAADAAADAAADAHJJCAAAAwAAAwAAAwBGwEdBADZGAP///////////////////////////////////////////////////////////////////////////////////////////wAAAeAAAICABSEADV9BAAAAAQnwAAAAAQGftXRCvwAAAwAAAwAAAwAAAwAAAwAAAwAAAwAAAwBR0wH7oyFAGEbWNH/+N3CLNjo8QAkdoTEdUARmF/t+CRgAAAMAAAMAAAMChCegAAADAAADAAADAN6BR0EAN0IQAAEjzH4A//////////////////////////////////////////////////////////////////////////////8AAAHgAACAwAoxAA2XgREADXthAAAAAQnwAAAAAQGft2pCvwAAAwAAAwAAAwAAAwAAAwAAAwAAAwAAAwBR6/L83y+WryR9gmVKPGbIhJpkgAFgHCej3gB6rAHPgHHAAAADAAADAAAYIV0AAAMAAAMAAAMABn0=" diff --git a/src/webserver.go b/src/webserver.go index 45dc383..377444b 100644 --- a/src/webserver.go +++ b/src/webserver.go @@ -115,6 +115,11 @@ func Index(w http.ResponseWriter, r *http.Request) { showDebug(debug, 2) switch path { + case "/favicon.ico": + if value, ok := webUI["html"+path].(string); ok { + response = []byte(GetHTMLString(value)) + w.Header().Set("Content-Type", "image/x-icon") + } case "/discover.json": response, err = getDiscover() @@ -833,7 +838,6 @@ func Web(w http.ResponseWriter, r *http.Request) { } if value, ok := webUI[requestFile].(string); ok { - content = GetHTMLString(value) contentType = getContentType(requestFile) From 6953cb84eb023c5262175e27e32369eb9209007f Mon Sep 17 00:00:00 2001 From: Senex Crenshaw Date: Thu, 25 Aug 2022 19:37:23 +0000 Subject: [PATCH 176/189] Cleaned up various attr errors --- html/index.html | 6 ++---- html/js/menu_ts.js | 1 + src/webUI.go | 4 ++-- ts/menu_ts.ts | 1 + 4 files changed, 6 insertions(+), 6 deletions(-) diff --git a/html/index.html b/html/index.html index 081a9cd..60e64d2 100644 --- a/html/index.html +++ b/html/index.html @@ -1,11 +1,9 @@ - + - + xTeVe diff --git a/html/js/menu_ts.js b/html/js/menu_ts.js index d6b6605..3d56577 100644 --- a/html/js/menu_ts.js +++ b/html/js/menu_ts.js @@ -7,6 +7,7 @@ class MainMenu { createIMG(src) { let element = document.createElement("IMG"); element.setAttribute("src", this.ImagePath + src); + element.setAttribute("alt", src); return element; } createValue(value) { diff --git a/src/webUI.go b/src/webUI.go index ca9156b..4678743 100644 --- a/src/webUI.go +++ b/src/webUI.go @@ -23,13 +23,13 @@ func loadHTMLMap() { webUI["html/img/x_black.png"] = "iVBORw0KGgoAAAANSUhEUgAAAQAAAAEACAIAAADTED8xAAAAAXNSR0IArs4c6QAAAAlwSFlzAAAWJQAAFiUBSVIk8AAAA6ppVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IlhNUCBDb3JlIDUuNC4wIj4KICAgPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIgogICAgICAgICAgICB4bWxuczp0aWZmPSJodHRwOi8vbnMuYWRvYmUuY29tL3RpZmYvMS4wLyIKICAgICAgICAgICAgeG1sbnM6ZXhpZj0iaHR0cDovL25zLmFkb2JlLmNvbS9leGlmLzEuMC8iPgogICAgICAgICA8eG1wOk1vZGlmeURhdGU+MjAxOC0xMS0xNVQxNzoxMTozNzwveG1wOk1vZGlmeURhdGU+CiAgICAgICAgIDx4bXA6Q3JlYXRvclRvb2w+UGl4ZWxtYXRvciAzLjM8L3htcDpDcmVhdG9yVG9vbD4KICAgICAgICAgPHRpZmY6T3JpZW50YXRpb24+MTwvdGlmZjpPcmllbnRhdGlvbj4KICAgICAgICAgPHRpZmY6Q29tcHJlc3Npb24+NTwvdGlmZjpDb21wcmVzc2lvbj4KICAgICAgICAgPHRpZmY6UmVzb2x1dGlvblVuaXQ+MjwvdGlmZjpSZXNvbHV0aW9uVW5pdD4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+MTQ0PC90aWZmOllSZXNvbHV0aW9uPgogICAgICAgICA8dGlmZjpYUmVzb2x1dGlvbj4xNDQ8L3RpZmY6WFJlc29sdXRpb24+CiAgICAgICAgIDxleGlmOlBpeGVsWERpbWVuc2lvbj4yNTY8L2V4aWY6UGl4ZWxYRGltZW5zaW9uPgogICAgICAgICA8ZXhpZjpDb2xvclNwYWNlPjE8L2V4aWY6Q29sb3JTcGFj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a1jSekqmtA1rrGsx7JYkDuvrVahwRdgVXD1xcwri6mmYRULLe4CuPc2wfrGo4U+7Y/3S9ZHD+GcflbnfiCJbr77whoaS6ucCXVkVkuLKgORQwNJFygRDJnqwb9i3b0HxkqjT0L4erGy5Rh1IRnhXrpaZq6GZCyRLf6cvhoTY6V9koX8bGdEUlyWVm6W5q1GuostihNm97L/dpm5k+QHCbDna0zRzgSS/lRHWL7iHPOa+9YsYkpttoCwSMcQRkrWioz5Qsc7aFJ1coHY3QyJ9jSjfJEOCfTUpWzehVBnUbqCJOCHEkB1xsmXDwq9DnObUz9q4QOUqYPaPKFzUKcVj6Eeu461q67Vhlqy6+Xo11G52JhRZNNW1FRbN00FWPVwguSa+8YEZ1i+D9vQjelm/iHTwAB69Vwd7CkuGLOcWtxfR4o+dHhNg4DNmhDvJ8M6ehknvhTXMDp8kQQgT33W4z+i7k/2gho+Jvrp1NTVwgW5opV76yl8F/cufe9CyJiRllZ6lYCHMXWPAXmNp9CRb8Pi30r658sHtCSCPsZNXQDYdMaLIek/No13V/rBfGMFSCXnsKNo1dDelnKt/dyUH8uvjjLH+zyfpbv1iUl/NVBt4mVJy58HoDyFZLt0rrj4G7TfIjARvMjy7d6JnR/UXS/+yeD5kLYkETxpRZL2jZJVzb7cl9yZA/cYqh4z+20AEzOj+BKxbZYRFqXQssvLs5gQzpBUp616rNsX55WdXBHbPBRrwlBm5v2VYJo1FsjmOtQg8ezo+fd8Ve4qy04HPRlmR1UiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABGwg8D8UnyVeZFwGAQAAAABJRU5ErkJggg==" webUI["html/img/x_white.png"] = "iVBORw0KGgoAAAANSUhEUgAAAQAAAAEACAIAAADTED8xAAAAAXNSR0IArs4c6QAAAAlwSFlzAAAWJQAAFiUBSVIk8AAAA6ppVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IlhNUCBDb3JlIDUuNC4wIj4KICAgPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIgogICAgICAgICAgICB4bWxuczp0aWZmPSJodHRwOi8vbnMuYWRvYmUuY29tL3RpZmYvMS4wLyIKICAgICAgICAgICAgeG1sbnM6ZXhpZj0iaHR0cDovL25zLmFkb2JlLmNvbS9leGlmLzEuMC8iPgogICAgICAgICA8eG1wOk1vZGlmeURhdGU+MjAxOC0xMS0xNVQxNzoxMToyNTwveG1wOk1vZGlmeURhdGU+CiAgICAgICAgIDx4bXA6Q3JlYXRvclRvb2w+UGl4ZWxtYXRvciAzLjM8L3htcDpDcmVhdG9yVG9vbD4KICAgICAgICAgPHRpZmY6T3JpZW50YXRpb24+MTwvdGlmZjpPcmllbnRhdGlvbj4KICAgICAgICAgPHRpZmY6Q29tcHJlc3Npb24+NTwvdGlmZjpDb21wcmVzc2lvbj4KICAgICAgICAgPHRpZmY6UmVzb2x1dGlvblVuaXQ+MjwvdGlmZjpSZXNvbHV0aW9uVW5pdD4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+MTQ0PC90aWZmOllSZXNvbHV0aW9uPgogICAgICAgICA8dGlmZjpYUmVzb2x1dGlvbj4xNDQ8L3RpZmY6WFJlc29sdXRpb24+CiAgICAgICAgIDxleGlmOlBpeGVsWERpbWVuc2lvbj4yNTY8L2V4aWY6UGl4ZWxYRGltZW5zaW9uPgogICAgICAgICA8ZXhpZjpDb2xvclNwYWNlPjE8L2V4aWY6Q29sb3JTcGFj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" webUI["html/img/xmltv.png"] = "iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAAAXNSR0IArs4c6QAAAAlwSFlzAAAsSwAALEsBpT2WqQAABCRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IlhNUCBDb3JlIDUuNC4wIj4KICAgPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIgogICAgICAgICAgICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgICAgICAgICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyI+CiAgICAgICAgIDx0aWZmOlJlc29sdXRpb25Vbml0PjI8L3RpZmY6UmVzb2x1dGlvblVuaXQ+CiAgICAgICAgIDx0aWZmOkNvbXByZXNzaW9uPjU8L3RpZmY6Q29tcHJlc3Npb24+CiAgICAgICAgIDx0aWZmOlhSZXNvbHV0aW9uPjI4ODwvdGlmZjpYUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6T3JpZW50YXRpb24+MTwvdGlmZjpPcmllbnRhdGlvbj4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+Mjg4PC90aWZmOllSZXNvbHV0aW9uPgogICAgICAgICA8ZXhpZjpQaXhlbFhEaW1lbnNpb24+NTA8L2V4aWY6UGl4ZWxYRGltZW5zaW9uPgogICAgICAgICA8ZXhpZjpDb2xvclNwYWNlPjE8L2V4aWY6Q29sb3JTcGFjZT4KICAgICAgICAgPGV4aWY6UGl4ZWxZRGltZW5zaW9uPjUwPC9leGlmOlBpeGVsWURpbWVuc2lvbj4KICAgICAgICAgPGRjOnN1YmplY3Q+CiAgICAgICAgICAgIDxyZGY6QmFnLz4KICAgICAgICAgPC9kYzpzdWJqZWN0PgogICAgICAgICA8eG1wOk1vZGlmeURhdGU+MjAxOC0wNy0yOFQyMDowNzozMzwveG1wOk1vZGlmeURhdGU+CiAgICAgICAgIDx4bXA6Q3JlYXRvclRvb2w+UGl4ZWxtYXRvciAzLjM8L3htcDpDcmVhdG9yVG9vbD4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgIDwvcmRmOlJERj4KPC94OnhtcG1ldGE+Co6j9bsAAAGgSURBVGgF7VqxTsNADL0gYGEon8DOwsbAAH8BYmJn6cYIn8DC3h0+oixISFRiYYCJL0AwMMBAeK5w2rpV6uikxHfYknW98+vds18TK21DWGBlWR7CH+BfcEv2AzLP8HP42gLqkyUATuEp2PWEdQjF9ATs1zF/g29Mrxt+vVcUxR3xWxEktzFPJQmivsv8ZSI9DiQyVnxlIonwn6fpiczXpNuVVXH8O+a3Ys3y9NUyuf/NTTbEHZTjUlGSRzSiPhroUIENwB4AS/vS/susDwDhTpYBER9g7wHh5DWyibV9CiitCZbIafDEYUuJHQI3Nr/9ciWsjK6IFSWYhyvClbAyZqOIlYJG84jq7E1Ot97Zm+TinV1TrWwudk9EI3ebGFekzWprzspGEU2ySWCiOrs/s9dr7M/s9fVJJJrNXcsTsfaJc0WsKZINH+/sf1Jqvl1n1f2ZnStRN/pdq646XcSkIh9dkIg4s+IrE3nCpp8RG7f91ns+cCYR/LD4jcAZB42PN+A7/mcQ8ZxJhBYQvMJwBB/BKTFLVoLMC/wCfgyv7BesTKUC2LKM3wAAAABJRU5ErkJggg==" - webUI["html/index.html"] = "PCFkb2N0eXBlIGh0bWw+CjxodG1sPgoKPGhlYWQ+CiAgPG1ldGEgY2hhcnNldD0idXRmLTgiPgogIDwhLS0tCiAgICA8bWV0YSBuYW1lPSJ2aWV3cG9ydCIgY29udGVudD0id2lkdGg9ZGV2aWNlLXdpZHRoLCBpbml0aWFsLXNjYWxlPTEuMCIgLz4gCiAgICAtLT4KICA8dGl0bGU+eFRlVmU8L3RpdGxlPgogIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iY3NzL3NjcmVlbi5jc3MiIHR5cGU9InRleHQvY3NzIj4KICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9ImNzcy9iYXNlLmNzcyIgdHlwZT0idGV4dC9jc3MiPgoKICA8c2NyaXB0IGxhbmd1YWdlPSJqYXZhc2NyaXB0IiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ianMvbmV0d29ya190cy5qcyI+PC9zY3JpcHQ+CiAgPHNjcmlwdCBsYW5ndWFnZT0iamF2YXNjcmlwdCIgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9ImpzL21lbnVfdHMuanMiPjwvc2NyaXB0PgogIDxzY3JpcHQgbGFuZ3VhZ2U9ImphdmFzY3JpcHQiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJqcy9zZXR0aW5nc190cy5qcyI+PC9zY3JpcHQ+CiAgPHNjcmlwdCBsYW5ndWFnZT0iamF2YXNjcmlwdCIgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9ImpzL2xvZ3NfdHMuanMiPjwvc2NyaXB0PgogIDxzY3JpcHQgbGFuZ3VhZ2U9ImphdmFzY3JpcHQiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJqcy9iYXNlX3RzLmpzIj48L3NjcmlwdD4KCjwvaGVhZD4KCjxib2R5IG9ubG9hZD0iamF2YXNjcmlwdDogUGFnZVJlYWR5KCk7Ij4KCiAgPGRpdiBpZD0ibG9hZGluZyIgY2xhc3M9Im5vbmUiPgogICAgPGRpdiBjbGFzcz0ibG9hZGVyIj48L2Rpdj4KICA8L2Rpdj4KCiAgPGRpdiBpZD0icG9wdXAiIGNsYXNzPSJub25lIj4KICAgIDxkaXYgaWQ9InBvcHVwLWN1c3RvbSI+PC9kaXY+CiAgPC9kaXY+CgogIDxkaXYgaWQ9ImxheW91dCI+CgogICAgPCEtLQogICAgICAgIDxkaXYgaWQ9Im5vdGlmaWNhdGlvbiI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJlbGVtZW50Ij4KICAgICAgICAgICAgPGg1PlhFUEc8L2g1PgogICAgICAgICAgICA8cHJlPjExLjA1LjIwMTkgLSAyMDoyMTwvcHJlPgogICAgICAgICAgICA8aHI+CiAgICAgICAgICAgIDxwPkhhbGxvIGRhcyBpc3QgZWluIFRlc3QuIFVuZCBub2NoIG1laHIgVGV4dC48L3A+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgLS0+CgogICAgPGRpdiBpZD0ibWVudS13cmFwcGVyIiBjbGFzcz0ibGF5b3V0LWxlZnQiPgogICAgICA8ZGl2IGlkPSJicmFuY2giPjwvZGl2PgogICAgICA8ZGl2IGlkPSJsb2dvIj48L2Rpdj4KICAgICAgPG5hdiBpZD0ibWFpbi1tZW51Ij48L25hdj4KICAgIDwvZGl2PgoKICAgIDxkaXYgY2xhc3M9ImxheW91dC1yaWdodCI+CgogICAgICA8dGFibGUgaWQ9ImNsaWVudEluZm8iIGNsYXNzPSIiPgoKICAgICAgICA8dHI+CiAgICAgICAgICA8dGQgY2xhc3M9InRkS2V5Ij54VGVWZTo8L3RkPgogICAgICAgICAgPHRkIGlkPSJ2ZXJzaW9uIiBjbGFzcz0idGRWYWwiPiZuYnNwOzwvdGQ+CiAgICAgICAgICA8dGQgY2xhc3M9InRkS2V5Ij5PUzo8L3RkPgogICAgICAgICAgPHRkIGlkPSJvcyIgY2xhc3M9InRkVmFsIj4mbmJzcDs8L3RkPgogICAgICAgICAgPHRkIGNsYXNzPSJ0ZEtleSBwaG9uZSI+RFZSIElQOjwvdGQ+CiAgICAgICAgICA8dGQgaWQ9IkRWUiIgY2xhc3M9InRkVmFsTGluayBwaG9uZSI+Jm5ic3A7PC90ZD4KICAgICAgICA8L3RyPgoKICAgICAgICA8dHI+CiAgICAgICAgICA8dGQgY2xhc3M9InRkS2V5Ij5VVUlEOjwvdGQ+CiAgICAgICAgICA8dGQgaWQ9InV1aWQiIGNsYXNzPSJ0ZFZhbCI+Jm5ic3A7PC90ZD4KICAgICAgICAgIDx0ZCBjbGFzcz0idGRLZXkiPkFyY2g6PC90ZD4KICAgICAgICAgIDx0ZCBpZD0iYXJjaCIgY2xhc3M9InRkVmFsIj4mbmJzcDs8L3RkPgogICAgICAgICAgPHRkIGNsYXNzPSJ0ZEtleSBwaG9uZSI+TTNVIFVSTDo8L3RkPgogICAgICAgICAgPHRkIGlkPSJtM3UtdXJsIiBjbGFzcz0idGRWYWxMaW5rIHBob25lIj4mbmJzcDs8L3RkPgogICAgICAgIDwvdHI+CgogICAgICAgIDx0cj4KICAgICAgICAgIDx0ZCBjbGFzcz0idGRLZXkiPkF2YWlsYWJsZSBTdHJlYW1zOjwvdGQ+CiAgICAgICAgICA8dGQgaWQ9InN0cmVhbXMiIGNsYXNzPSJ0ZFZhbCI+Jm5ic3A7PC90ZD4KICAgICAgICAgIDx0ZCBjbGFzcz0idGRLZXkiPkVQRyBTb3VyY2U6PC90ZD4KICAgICAgICAgIDx0ZCBpZD0iZXBnU291cmNlIiBjbGFzcz0idGRWYWwiPiZuYnNwOzwvdGQ+CiAgICAgICAgICA8dGQgY2xhc3M9InRkS2V5IHBob25lIj5YRVBHIFVSTDo8L3RkPgogICAgICAgICAgPHRkIGlkPSJ4ZXBnLXVybCIgY2xhc3M9InRkVmFsTGluayBwaG9uZSI+Jm5ic3A7PC90ZD4KICAgICAgICA8L3RyPgoKICAgICAgICA8dHI+CiAgICAgICAgICA8dGQgY2xhc3M9InRkS2V5Ij5YRVBHIENoYW5uZWxzOjwvdGQ+CiAgICAgICAgICA8dGQgaWQ9InhlcGciIGNsYXNzPSJ0ZFZhbCI+Jm5ic3A7PC90ZD4KICAgICAgICAgIDx0ZCBjbGFzcz0idGRLZXkiPkVycm9yczo8L3RkPgogICAgICAgICAgPHRkIGlkPSJlcnJvcnMiIGNsYXNzPSJ0ZFZhbCI+Jm5ic3A7PC90ZD4KICAgICAgICAgIDx0ZCBjbGFzcz0idGRLZXkiPldhcm5pbmdzOjwvdGQ+CiAgICAgICAgICA8dGQgaWQ9Indhcm5pbmdzIiBjbGFzcz0idGRWYWwiPiZuYnNwOzwvdGQ+CiAgICAgICAgPC90cj4KCiAgICAgIDwvdGFibGU+CgogICAgICA8ZGl2IGlkPSJteVN0cmVhbXNCb3giIGNsYXNzPSJub3RWaXNpYmxlIj4KCiAgICAgICAgPGRpdiBpZD0iYWxsU3RyZWFtcyI+CiAgICAgICAgICA8dGFibGUgaWQ9ImFjdGl2ZVN0cmVhbXMiPjwvdGFibGU+CiAgICAgICAgICA8dGFibGUgaWQ9ImluYWN0aXZlU3RyZWFtcyI+PC90YWJsZT4KICAgICAgICA8L2Rpdj4KCiAgICAgIDwvZGl2PgoKICAgICAgPGRpdiBpZD0iY29udGVudCIgY2xhc3M9IiI+PC9kaXY+CgogICAgPC9kaXY+CgogIDwvZGl2PgoKPC9ib2R5PgoKPC9odG1sPg==" + webUI["html/index.html"] = "PCFkb2N0eXBlIGh0bWw+CjxodG1sIGxhbmc9ImVuIj4KCjxoZWFkPgogIDxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KICA8bWV0YSBuYW1lPSJ2aWV3cG9ydCIgY29udGVudD0id2lkdGg9ZGV2aWNlLXdpZHRoLCBpbml0aWFsLXNjYWxlPTEuMCIgLz4KICA8dGl0bGU+eFRlVmU8L3RpdGxlPgogIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iY3NzL3NjcmVlbi5jc3MiIHR5cGU9InRleHQvY3NzIj4KICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9ImNzcy9iYXNlLmNzcyIgdHlwZT0idGV4dC9jc3MiPgoKICA8c2NyaXB0IGxhbmd1YWdlPSJqYXZhc2NyaXB0IiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ianMvbmV0d29ya190cy5qcyI+PC9zY3JpcHQ+CiAgPHNjcmlwdCBsYW5ndWFnZT0iamF2YXNjcmlwdCIgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9ImpzL21lbnVfdHMuanMiPjwvc2NyaXB0PgogIDxzY3JpcHQgbGFuZ3VhZ2U9ImphdmFzY3JpcHQiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJqcy9zZXR0aW5nc190cy5qcyI+PC9zY3JpcHQ+CiAgPHNjcmlwdCBsYW5ndWFnZT0iamF2YXNjcmlwdCIgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9ImpzL2xvZ3NfdHMuanMiPjwvc2NyaXB0PgogIDxzY3JpcHQgbGFuZ3VhZ2U9ImphdmFzY3JpcHQiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJqcy9iYXNlX3RzLmpzIj48L3NjcmlwdD4KCjwvaGVhZD4KCjxib2R5IG9ubG9hZD0iamF2YXNjcmlwdDogUGFnZVJlYWR5KCk7Ij4KCiAgPGRpdiBpZD0ibG9hZGluZyIgY2xhc3M9Im5vbmUiPgogICAgPGRpdiBjbGFzcz0ibG9hZGVyIj48L2Rpdj4KICA8L2Rpdj4KCiAgPGRpdiBpZD0icG9wdXAiIGNsYXNzPSJub25lIj4KICAgIDxkaXYgaWQ9InBvcHVwLWN1c3RvbSI+PC9kaXY+CiAgPC9kaXY+CgogIDxkaXYgaWQ9ImxheW91dCI+CgogICAgPCEtLQogICAgICAgIDxkaXYgaWQ9Im5vdGlmaWNhdGlvbiI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJlbGVtZW50Ij4KICAgICAgICAgICAgPGg1PlhFUEc8L2g1PgogICAgICAgICAgICA8cHJlPjExLjA1LjIwMTkgLSAyMDoyMTwvcHJlPgogICAgICAgICAgICA8aHI+CiAgICAgICAgICAgIDxwPkhhbGxvIGRhcyBpc3QgZWluIFRlc3QuIFVuZCBub2NoIG1laHIgVGV4dC48L3A+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgLS0+CgogICAgPGRpdiBpZD0ibWVudS13cmFwcGVyIiBjbGFzcz0ibGF5b3V0LWxlZnQiPgogICAgICA8ZGl2IGlkPSJicmFuY2giPjwvZGl2PgogICAgICA8ZGl2IGlkPSJsb2dvIj48L2Rpdj4KICAgICAgPG5hdiBpZD0ibWFpbi1tZW51Ij48L25hdj4KICAgIDwvZGl2PgoKICAgIDxkaXYgY2xhc3M9ImxheW91dC1yaWdodCI+CgogICAgICA8dGFibGUgaWQ9ImNsaWVudEluZm8iIGNsYXNzPSIiPgoKICAgICAgICA8dHI+CiAgICAgICAgICA8dGQgY2xhc3M9InRkS2V5Ij54VGVWZTo8L3RkPgogICAgICAgICAgPHRkIGlkPSJ2ZXJzaW9uIiBjbGFzcz0idGRWYWwiPiZuYnNwOzwvdGQ+CiAgICAgICAgICA8dGQgY2xhc3M9InRkS2V5Ij5PUzo8L3RkPgogICAgICAgICAgPHRkIGlkPSJvcyIgY2xhc3M9InRkVmFsIj4mbmJzcDs8L3RkPgogICAgICAgICAgPHRkIGNsYXNzPSJ0ZEtleSBwaG9uZSI+RFZSIElQOjwvdGQ+CiAgICAgICAgICA8dGQgaWQ9IkRWUiIgY2xhc3M9InRkVmFsTGluayBwaG9uZSI+Jm5ic3A7PC90ZD4KICAgICAgICA8L3RyPgoKICAgICAgICA8dHI+CiAgICAgICAgICA8dGQgY2xhc3M9InRkS2V5Ij5VVUlEOjwvdGQ+CiAgICAgICAgICA8dGQgaWQ9InV1aWQiIGNsYXNzPSJ0ZFZhbCI+Jm5ic3A7PC90ZD4KICAgICAgICAgIDx0ZCBjbGFzcz0idGRLZXkiPkFyY2g6PC90ZD4KICAgICAgICAgIDx0ZCBpZD0iYXJjaCIgY2xhc3M9InRkVmFsIj4mbmJzcDs8L3RkPgogICAgICAgICAgPHRkIGNsYXNzPSJ0ZEtleSBwaG9uZSI+TTNVIFVSTDo8L3RkPgogICAgICAgICAgPHRkIGlkPSJtM3UtdXJsIiBjbGFzcz0idGRWYWxMaW5rIHBob25lIj4mbmJzcDs8L3RkPgogICAgICAgIDwvdHI+CgogICAgICAgIDx0cj4KICAgICAgICAgIDx0ZCBjbGFzcz0idGRLZXkiPkF2YWlsYWJsZSBTdHJlYW1zOjwvdGQ+CiAgICAgICAgICA8dGQgaWQ9InN0cmVhbXMiIGNsYXNzPSJ0ZFZhbCI+Jm5ic3A7PC90ZD4KICAgICAgICAgIDx0ZCBjbGFzcz0idGRLZXkiPkVQRyBTb3VyY2U6PC90ZD4KICAgICAgICAgIDx0ZCBpZD0iZXBnU291cmNlIiBjbGFzcz0idGRWYWwiPiZuYnNwOzwvdGQ+CiAgICAgICAgICA8dGQgY2xhc3M9InRkS2V5IHBob25lIj5YRVBHIFVSTDo8L3RkPgogICAgICAgICAgPHRkIGlkPSJ4ZXBnLXVybCIgY2xhc3M9InRkVmFsTGluayBwaG9uZSI+Jm5ic3A7PC90ZD4KICAgICAgICA8L3RyPgoKICAgICAgICA8dHI+CiAgICAgICAgICA8dGQgY2xhc3M9InRkS2V5Ij5YRVBHIENoYW5uZWxzOjwvdGQ+CiAgICAgICAgICA8dGQgaWQ9InhlcGciIGNsYXNzPSJ0ZFZhbCI+Jm5ic3A7PC90ZD4KICAgICAgICAgIDx0ZCBjbGFzcz0idGRLZXkiPkVycm9yczo8L3RkPgogICAgICAgICAgPHRkIGlkPSJlcnJvcnMiIGNsYXNzPSJ0ZFZhbCI+Jm5ic3A7PC90ZD4KICAgICAgICAgIDx0ZCBjbGFzcz0idGRLZXkiPldhcm5pbmdzOjwvdGQ+CiAgICAgICAgICA8dGQgaWQ9Indhcm5pbmdzIiBjbGFzcz0idGRWYWwiPiZuYnNwOzwvdGQ+CiAgICAgICAgPC90cj4KCiAgICAgIDwvdGFibGU+CgogICAgICA8ZGl2IGlkPSJteVN0cmVhbXNCb3giIGNsYXNzPSJub3RWaXNpYmxlIj4KCiAgICAgICAgPGRpdiBpZD0iYWxsU3RyZWFtcyI+CiAgICAgICAgICA8dGFibGUgaWQ9ImFjdGl2ZVN0cmVhbXMiPjwvdGFibGU+CiAgICAgICAgICA8dGFibGUgaWQ9ImluYWN0aXZlU3RyZWFtcyI+PC90YWJsZT4KICAgICAgICA8L2Rpdj4KCiAgICAgIDwvZGl2PgoKICAgICAgPGRpdiBpZD0iY29udGVudCIgY2xhc3M9IiI+PC9kaXY+CgogICAgPC9kaXY+CgogIDwvZGl2PgoKPC9ib2R5PgoKPC9odG1sPg==" webUI["html/js/authentication_ts.js"] = "ZnVuY3Rpb24gbG9naW4oKSB7CiAgICB2YXIgZXJyID0gZmFsc2U7CiAgICB2YXIgZGF0YSA9IG5ldyBPYmplY3QoKTsKICAgIHZhciBkaXYgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29udGVudCIpOwogICAgdmFyIGZvcm0gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYXV0aGVudGljYXRpb24iKTsKICAgIHZhciBpbnB1dHMgPSBkaXYuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIklOUFVUIik7CiAgICBmb3IgKHZhciBpID0gaW5wdXRzLmxlbmd0aCAtIDE7IGkgPj0gMDsgaS0tKSB7CiAgICAgICAgdmFyIGtleSA9IGlucHV0c1tpXS5uYW1lOwogICAgICAgIHZhciB2YWx1ZSA9IGlucHV0c1tpXS52YWx1ZTsKICAgICAgICBpZiAodmFsdWUubGVuZ3RoID09IDApIHsKICAgICAgICAgICAgaW5wdXRzW2ldLnN0eWxlLmJvcmRlckNvbG9yID0gInJlZCI7CiAgICAgICAgICAgIGVyciA9IHRydWU7CiAgICAgICAgfQogICAgICAgIGRhdGFba2V5XSA9IHZhbHVlOwogICAgfQogICAgaWYgKGVyciA9PSB0cnVlKSB7CiAgICAgICAgZGF0YSA9IG5ldyBPYmplY3QoKTsKICAgICAgICByZXR1cm47CiAgICB9CiAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgiY29uZmlybSIpKSB7CiAgICAgICAgaWYgKGRhdGFbImNvbmZpcm0iXSAhPSBkYXRhWyJwYXNzd29yZCJdKSB7CiAgICAgICAgICAgIGFsZXJ0KCJzZGFmc2QiKTsKICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Bhc3N3b3JkJykuc3R5bGUuYm9yZGVyQ29sb3IgPSAicmVkIjsKICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NvbmZpcm0nKS5zdHlsZS5ib3JkZXJDb2xvciA9ICJyZWQiOwogICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZXJyIikuaW5uZXJIVE1MID0gInt7LmFjY291bnQuZmFpbGVkfX0iOwogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQogICAgfQogICAgZm9ybS5zdWJtaXQoKTsKfQo=" webUI["html/js/base_ts.js"] = "dmFyIFNFUlZFUiA9IG5ldyBPYmplY3QoKTsKdmFyIEJVTEtfRURJVCA9IGZhbHNlOwp2YXIgQ09MVU1OX1RPX1NPUlQ7CnZhciBTRUFSQ0hfTUFQUElORyA9IG5ldyBPYmplY3QoKTsKdmFyIFVORE8gPSBuZXcgT2JqZWN0KCk7CnZhciBTRVJWRVJfQ09OTkVDVElPTiA9IGZhbHNlOwp2YXIgV1NfQVZBSUxBQkxFID0gZmFsc2U7Ci8vIE1lbnUKdmFyIG1lbnVJdGVtcyA9IG5ldyBBcnJheSgpOwptZW51SXRlbXMucHVzaChuZXcgTWFpbk1lbnVJdGVtKCJwbGF5bGlzdCIsICJ7ey5tYWluTWVudS5pdGVtLnBsYXlsaXN0fX0iLCAibTN1LnBuZyIsICJ7ey5tYWluTWVudS5oZWFkbGluZS5wbGF5bGlzdH19IikpOwptZW51SXRlbXMucHVzaChuZXcgTWFpbk1lbnVJdGVtKCJmaWx0ZXIiLCAie3subWFpbk1lbnUuaXRlbS5maWx0ZXJ9fSIsICJmaWx0ZXIucG5nIiwgInt7Lm1haW5NZW51LmhlYWRsaW5lLmZpbHRlcn19IikpOwptZW51SXRlbXMucHVzaChuZXcgTWFpbk1lbnVJdGVtKCJ4bWx0diIsICJ7ey5tYWluTWVudS5pdGVtLnhtbHR2fX0iLCAieG1sdHYucG5nIiwgInt7Lm1haW5NZW51LmhlYWRsaW5lLnhtbHR2fX0iKSk7Cm1lbnVJdGVtcy5wdXNoKG5ldyBNYWluTWVudUl0ZW0oIm1hcHBpbmciLCAie3subWFpbk1lbnUuaXRlbS5tYXBwaW5nfX0iLCAibWFwcGluZy5wbmciLCAie3subWFpbk1lbnUuaGVhZGxpbmUubWFwcGluZ319IikpOwptZW51SXRlbXMucHVzaChuZXcgTWFpbk1lbnVJdGVtKCJ1c2VycyIsICJ7ey5tYWluTWVudS5pdGVtLnVzZXJzfX0iLCAidXNlcnMucG5nIiwgInt7Lm1haW5NZW51LmhlYWRsaW5lLnVzZXJzfX0iKSk7Cm1lbnVJdGVtcy5wdXNoKG5ldyBNYWluTWVudUl0ZW0oInNldHRpbmdzIiwgInt7Lm1haW5NZW51Lml0ZW0uc2V0dGluZ3N9fSIsICJzZXR0aW5ncy5wbmciLCAie3subWFpbk1lbnUuaGVhZGxpbmUuc2V0dGluZ3N9fSIpKTsKbWVudUl0ZW1zLnB1c2gobmV3IE1haW5NZW51SXRlbSgibG9nIiwgInt7Lm1haW5NZW51Lml0ZW0ubG9nfX0iLCAibG9nLnBuZyIsICJ7ey5tYWluTWVudS5oZWFkbGluZS5sb2d9fSIpKTsKbWVudUl0ZW1zLnB1c2gobmV3IE1haW5NZW51SXRlbSgibG9nb3V0IiwgInt7Lm1haW5NZW51Lml0ZW0ubG9nb3V0fX0iLCAibG9nb3V0LnBuZyIsICJ7ey5tYWluTWVudS5oZWFkbGluZS5sb2dvdXR9fSIpKTsKLy8gU2V0dGluZ3MgY2F0ZWdvcmllcwp2YXIgc2V0dGluZ3NDYXRlZ29yeSA9IG5ldyBBcnJheSgpOwpzZXR0aW5nc0NhdGVnb3J5LnB1c2gobmV3IFNldHRpbmdzQ2F0ZWdvcnlJdGVtKCJ7ey5zZXR0aW5ncy5jYXRlZ29yeS5nZW5lcmFsfX0iLCAidGxzTW9kZSx4dGV2ZUF1dG9VcGRhdGUsaG9zdElQLGhvc3ROYW1lLHR1bmVyLGVwZ1NvdXJjZSxkaXNhbGxvd1VSTER1cGxpY2F0ZXMsY2xlYXJYTUxUVkNhY2hlLGFwaSIpKTsKc2V0dGluZ3NDYXRlZ29yeS5wdXNoKG5ldyBTZXR0aW5nc0NhdGVnb3J5SXRlbSgie3suc2V0dGluZ3MuY2F0ZWdvcnkubWFwcGluZ319IiwgImRlZmF1bHRNaXNzaW5nRVBHLGVuYWJsZU1hcHBlZENoYW5uZWxzIikpOwpzZXR0aW5nc0NhdGVnb3J5LnB1c2gobmV3IFNldHRpbmdzQ2F0ZWdvcnlJdGVtKCJ7ey5zZXR0aW5ncy5jYXRlZ29yeS5maWxlc319IiwgInVwZGF0ZSxmaWxlcy51cGRhdGUsdGVtcC5wYXRoLGNhY2hlLmltYWdlcyx4ZXBnLnJlcGxhY2UubWlzc2luZy5pbWFnZXMiKSk7CnNldHRpbmdzQ2F0ZWdvcnkucHVzaChuZXcgU2V0dGluZ3NDYXRlZ29yeUl0ZW0oInt7LnNldHRpbmdzLmNhdGVnb3J5LnN0cmVhbWluZ319IiwgImJ1ZmZlcix1ZHB4eSxidWZmZXIuc2l6ZS5rYixzdG9yZUJ1ZmZlckluUkFNLGJ1ZmZlci50aW1lb3V0LHVzZXIuYWdlbnQsZmZtcGVnLnBhdGgsZmZtcGVnLm9wdGlvbnMsdmxjLnBhdGgsdmxjLm9wdGlvbnMiKSk7CnNldHRpbmdzQ2F0ZWdvcnkucHVzaChuZXcgU2V0dGluZ3NDYXRlZ29yeUl0ZW0oInt7LnNldHRpbmdzLmNhdGVnb3J5LmJhY2t1cH19IiwgImJhY2t1cC5wYXRoLGJhY2t1cC5rZWVwIikpOwpzZXR0aW5nc0NhdGVnb3J5LnB1c2gobmV3IFNldHRpbmdzQ2F0ZWdvcnlJdGVtKCJ7ey5zZXR0aW5ncy5jYXRlZ29yeS5hdXRoZW50aWNhdGlvbn19IiwgImF1dGhlbnRpY2F0aW9uLndlYixhdXRoZW50aWNhdGlvbi5wbXMsYXV0aGVudGljYXRpb24ubTN1LGF1dGhlbnRpY2F0aW9uLnhtbCxhdXRoZW50aWNhdGlvbi5hcGkiKSk7CmZ1bmN0aW9uIHNob3dQb3BVcEVsZW1lbnQoZWxtKSB7CiAgICB2YXIgYWxsRWxlbWVudHMgPSBuZXcgQXJyYXkoInBvcHVwLWN1c3RvbSIpOwogICAgZm9yICh2YXIgaSA9IDA7IGkgPCBhbGxFbGVtZW50cy5sZW5ndGg7IGkrKykgewogICAgICAgIHNob3dFbGVtZW50KGFsbEVsZW1lbnRzW2ldLCBmYWxzZSk7CiAgICB9CiAgICBzaG93RWxlbWVudChlbG0sIHRydWUpOwogICAgc2V0VGltZW91dChmdW5jdGlvbiAoKSB7CiAgICAgICAgc2hvd0VsZW1lbnQoInBvcHVwIiwgdHJ1ZSk7CiAgICB9LCAxMCk7CiAgICByZXR1cm47Cn0KZnVuY3Rpb24gc2hvd0VsZW1lbnQoZWxtSUQsIHR5cGUpIHsKICAgIHZhciBjc3NDbGFzczsKICAgIHN3aXRjaCAodHlwZSkgewogICAgICAgIGNhc2UgdHJ1ZToKICAgICAgICAgICAgY3NzQ2xhc3MgPSAiYmxvY2siOwogICAgICAgICAgICBicmVhazsKICAgICAgICBjYXNlIGZhbHNlOgogICAgICAgICAgICBjc3NDbGFzcyA9ICJub25lIjsKICAgICAgICAgICAgYnJlYWs7CiAgICB9CiAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChlbG1JRCkuY2xhc3NOYW1lID0gY3NzQ2xhc3M7Cn0KZnVuY3Rpb24gY2hhbmdlQnV0dG9uQWN0aW9uKGVsZW1lbnQsIGJ1dHRvbklELCBhdHRyaWJ1dGUpIHsKICAgIHZhciB2YWx1ZSA9IGVsZW1lbnQub3B0aW9uc1tlbGVtZW50LnNlbGVjdGVkSW5kZXhdLnZhbHVlOwogICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoYnV0dG9uSUQpLnNldEF0dHJpYnV0ZShhdHRyaWJ1dGUsIHZhbHVlKTsKfQpmdW5jdGlvbiBnZXRMb2NhbERhdGEoZGF0YVR5cGUsIGlkKSB7CiAgICBsZXQgZGF0YSA9IHt9OwogICAgc3dpdGNoIChkYXRhVHlwZSkgewogICAgICAgIGNhc2UgIm0zdSI6CiAgICAgICAgICAgIGRhdGEgPSBTRVJWRVJbInNldHRpbmdzIl1bImZpbGVzIl1bZGF0YVR5cGVdW2lkXTsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgY2FzZSAiaGRociI6CiAgICAgICAgICAgIGRhdGEgPSBTRVJWRVJbInNldHRpbmdzIl1bImZpbGVzIl1bZGF0YVR5cGVdW2lkXTsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgY2FzZSAiZmlsdGVyIjoKICAgICAgICBjYXNlICJjdXN0b20tZmlsdGVyIjoKICAgICAgICBjYXNlICJncm91cC10aXRsZSI6CiAgICAgICAgICAgIGlmIChpZCA9PSAtMSkgewogICAgICAgICAgICAgICAgZGF0YVsiYWN0aXZlIl0gPSB0cnVlOwogICAgICAgICAgICAgICAgZGF0YVsiY2FzZVNlbnNpdGl2ZSJdID0gZmFsc2U7CiAgICAgICAgICAgICAgICBkYXRhWyJkZXNjcmlwdGlvbiJdID0gIiI7CiAgICAgICAgICAgICAgICBkYXRhWyJleGNsdWRlIl0gPSAiIjsKICAgICAgICAgICAgICAgIGRhdGFbImZpbHRlciJdID0gIiI7CiAgICAgICAgICAgICAgICBkYXRhWyJpbmNsdWRlIl0gPSAiIjsKICAgICAgICAgICAgICAgIGRhdGFbIm5hbWUiXSA9ICIiOwogICAgICAgICAgICAgICAgZGF0YVsidHlwZSJdID0gImdyb3VwLXRpdGxlIjsKICAgICAgICAgICAgICAgIGRhdGFbInByZXNlcnZlTWFwcGluZyJdID0gdHJ1ZTsKICAgICAgICAgICAgICAgIGRhdGFbInN0YXJ0aW5nQ2hhbm5lbCJdID0gU0VSVkVSWyJzZXR0aW5ncyJdWyJtYXBwaW5nLmZpcnN0LmNoYW5uZWwiXTsKICAgICAgICAgICAgICAgIFNFUlZFUlsic2V0dGluZ3MiXVsiZmlsdGVyIl1baWRdID0gZGF0YTsKICAgICAgICAgICAgfQogICAgICAgICAgICBkYXRhID0gU0VSVkVSWyJzZXR0aW5ncyJdWyJmaWx0ZXIiXVtpZF07CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgIGNhc2UgInhtbHR2IjoKICAgICAgICAgICAgZGF0YSA9IFNFUlZFUlsic2V0dGluZ3MiXVsiZmlsZXMiXVtkYXRhVHlwZV1baWRdOwogICAgICAgICAgICBicmVhazsKICAgICAgICBjYXNlICJ1c2VycyI6CiAgICAgICAgICAgIGRhdGEgPSBTRVJWRVJbInVzZXJzIl1baWRdWyJkYXRhIl07CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgIGNhc2UgIm1hcHBpbmciOgogICAgICAgICAgICBkYXRhID0gU0VSVkVSWyJ4ZXBnIl1bImVwZ01hcHBpbmciXVtpZF07CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgIGNhc2UgIm0zdUdyb3VwcyI6CiAgICAgICAgICAgIGRhdGEgPSBTRVJWRVJbImRhdGEiXVsicGxheWxpc3QiXVsibTN1Il1bImdyb3VwcyJdOwogICAgICAgICAgICBicmVhazsKICAgIH0KICAgIHJldHVybiBkYXRhOwp9CmZ1bmN0aW9uIGdldE93bk9ialByb3BzKG9iamVjdCkgewogICAgcmV0dXJuIG9iamVjdCA/IE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKG9iamVjdCkgOiBbXTsKfQpmdW5jdGlvbiBnZXRBbGxTZWxlY3RlZENoYW5uZWxzKCkgewogICAgdmFyIGNoYW5uZWxzID0gbmV3IEFycmF5KCk7CiAgICBpZiAoQlVMS19FRElUID09IGZhbHNlKSB7CiAgICAgICAgcmV0dXJuIGNoYW5uZWxzOwogICAgfQogICAgdmFyIHRycyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb250ZW50X3RhYmxlIikuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlRSIik7CiAgICBmb3IgKHZhciBpID0gMTsgaSA8IHRycy5sZW5ndGg7IGkrKykgewogICAgICAgIGlmICh0cnNbaV0uc3R5bGUuZGlzcGxheSAhPSAibm9uZSIpIHsKICAgICAgICAgICAgaWYgKHRyc1tpXS5maXJzdENoaWxkLmZpcnN0Q2hpbGQuY2hlY2tlZCA9PSB0cnVlKSB7CiAgICAgICAgICAgICAgICBjaGFubmVscy5wdXNoKHRyc1tpXS5pZCk7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CiAgICByZXR1cm4gY2hhbm5lbHM7Cn0KZnVuY3Rpb24gc2VsZWN0QWxsQ2hhbm5lbHMoKSB7CiAgICB2YXIgYnVsayA9IGZhbHNlOwogICAgdmFyIHRycyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb250ZW50X3RhYmxlIikuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlRSIik7CiAgICBpZiAodHJzWzBdLmZpcnN0Q2hpbGQuZmlyc3RDaGlsZC5jaGVja2VkID09IHRydWUpIHsKICAgICAgICBidWxrID0gdHJ1ZTsKICAgIH0KICAgIGZvciAodmFyIGkgPSAxOyBpIDwgdHJzLmxlbmd0aDsgaSsrKSB7CiAgICAgICAgaWYgKHRyc1tpXS5zdHlsZS5kaXNwbGF5ICE9ICJub25lIikgewogICAgICAgICAgICBzd2l0Y2ggKGJ1bGspIHsKICAgICAgICAgICAgICAgIGNhc2UgdHJ1ZToKICAgICAgICAgICAgICAgICAgICB0cnNbaV0uZmlyc3RDaGlsZC5maXJzdENoaWxkLmNoZWNrZWQgPSB0cnVlOwogICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgY2FzZSBmYWxzZToKICAgICAgICAgICAgICAgICAgICB0cnNbaV0uZmlyc3RDaGlsZC5maXJzdENoaWxkLmNoZWNrZWQgPSBmYWxzZTsKICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KICAgIHJldHVybjsKfQpmdW5jdGlvbiBidWxrRWRpdCgpIHsKICAgIEJVTEtfRURJVCA9ICFCVUxLX0VESVQ7CiAgICB2YXIgY2xhc3NOYW1lOwogICAgdmFyIHJvd3MgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCJidWxrIik7CiAgICBzd2l0Y2ggKEJVTEtfRURJVCkgewogICAgICAgIGNhc2UgdHJ1ZToKICAgICAgICAgICAgY2xhc3NOYW1lID0gImJ1bGsgc2hvd0J1bGsiOwogICAgICAgICAgICBicmVhazsKICAgICAgICBjYXNlIGZhbHNlOgogICAgICAgICAgICBjbGFzc05hbWUgPSAiYnVsayBoaWRlQnVsayI7CiAgICAgICAgICAgIGJyZWFrOwogICAgfQogICAgZm9yICh2YXIgaSA9IDA7IGkgPCByb3dzLmxlbmd0aDsgaSsrKSB7CiAgICAgICAgcm93c1tpXS5jbGFzc05hbWUgPSBjbGFzc05hbWU7CiAgICAgICAgcm93c1tpXS5jaGVja2VkID0gZmFsc2U7CiAgICB9CiAgICByZXR1cm47Cn0KZnVuY3Rpb24gc29ydFRhYmxlKGNvbHVtbikgewogICAgaWYgKGNvbHVtbiA9PSBDT0xVTU5fVE9fU09SVCkgewogICAgICAgIHJldHVybjsKICAgIH0KICAgIGNvbnN0IHRhYmxlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnRlbnRfdGFibGUiKTsKICAgIGNvbnN0IHRhYmxlSGVhZCA9IHRhYmxlLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJUUiIpWzBdOwogICAgY29uc3QgdGFibGVJdGVtcyA9IHRhYmxlSGVhZC5nZXRFbGVtZW50c0J5VGFnTmFtZSgiVEQiKTsKICAgIGNvbnN0IHNvcnRBcnIgPSBbXTsKICAgIGxldCB4VmFsdWU7CiAgICBpZiAoY29sdW1uID49IDAgJiYgQ09MVU1OX1RPX1NPUlQgPj0gMCkgewogICAgICAgIHRhYmxlSXRlbXNbQ09MVU1OX1RPX1NPUlRdLmNsYXNzTmFtZSA9ICJwb2ludGVyIjsKICAgICAgICB0YWJsZUl0ZW1zW2NvbHVtbl0uY2xhc3NOYW1lID0gInNvcnRUaGlzIjsKICAgIH0KICAgIENPTFVNTl9UT19TT1JUID0gY29sdW1uOwogICAgY29uc3Qgcm93cyA9IHRhYmxlLnJvd3M7CiAgICBpZiAocm93c1sxXSAhPSB1bmRlZmluZWQpIHsKICAgICAgICBjb25zdCB0YWJsZUhlYWRlciA9IHJvd3NbMF07CiAgICAgICAgbGV0IHggPSByb3dzWzFdLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJURCIpW2NvbHVtbl07CiAgICAgICAgZm9yIChsZXQgaSA9IDE7IGkgPCByb3dzLmxlbmd0aDsgaSsrKSB7CiAgICAgICAgICAgIHggPSByb3dzW2ldLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJURCIpW2NvbHVtbl07CiAgICAgICAgICAgIHN3aXRjaCAoeC5jaGlsZE5vZGVzWzBdLnRhZ05hbWUudG9Mb3dlckNhc2UoKSkgewogICAgICAgICAgICAgICAgY2FzZSAiaW5wdXQiOgogICAgICAgICAgICAgICAgICAgIHhWYWx1ZSA9IHguZ2V0RWxlbWVudHNCeVRhZ05hbWUoIklOUFVUIilbMF0udmFsdWUudG9Mb3dlckNhc2UoKTsKICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgIGNhc2UgInAiOgogICAgICAgICAgICAgICAgICAgIHhWYWx1ZSA9IHguZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlAiKVswXS5pbm5lclRleHQudG9Mb3dlckNhc2UoKTsKICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgc29ydEFyci5wdXNoKHsga2V5OiB4VmFsdWUgPyB4VmFsdWUgOiBpLCByb3c6IHJvd3NbaV0gfSk7CiAgICAgICAgfQogICAgICAgIHdoaWxlICh0YWJsZS5maXJzdENoaWxkKSB7CiAgICAgICAgICAgIHRhYmxlLnJlbW92ZUNoaWxkKHRhYmxlLmZpcnN0Q2hpbGQpOwogICAgICAgIH0KICAgICAgICBzb3J0QXJyLnNvcnQoKHNlMSwgc2UyKSA9PiB7CiAgICAgICAgICAgIGNvbnN0IHNlMUtleU51bSA9IHBhcnNlRmxvYXQoU3RyaW5nKHNlMS5rZXkpKTsKICAgICAgICAgICAgY29uc3Qgc2UyS2V5TnVtID0gcGFyc2VGbG9hdChTdHJpbmcoc2UyLmtleSkpOwogICAgICAgICAgICBpZiAoIWlzTmFOKHNlMUtleU51bSkgJiYgIWlzTmFOKHNlMktleU51bSkpIHsKICAgICAgICAgICAgICAgIHJldHVybiBzZTFLZXlOdW0gLSBzZTJLZXlOdW07CiAgICAgICAgICAgIH0KICAgICAgICAgICAgaWYgKHNlMS5rZXkgPCBzZTIua2V5KSB7CiAgICAgICAgICAgICAgICByZXR1cm4gLTE7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgaWYgKHNlMS5rZXkgPiBzZTIua2V5KSB7CiAgICAgICAgICAgICAgICByZXR1cm4gMTsKICAgICAgICAgICAgfQogICAgICAgICAgICByZXR1cm4gMDsKICAgICAgICB9KTsKICAgICAgICB0YWJsZS5hcHBlbmRDaGlsZCh0YWJsZUhlYWRlcik7CiAgICAgICAgc29ydEFyci5mb3JFYWNoKChzZSkgPT4gewogICAgICAgICAgICB0YWJsZS5hcHBlbmRDaGlsZChzZS5yb3cpOwogICAgICAgIH0pOwogICAgfQogICAgcmV0dXJuOwp9CmZ1bmN0aW9uIGNyZWF0ZVNlYXJjaE9iaigpIHsKICAgIFNFQVJDSF9NQVBQSU5HID0gbmV3IE9iamVjdCgpOwogICAgdmFyIGRhdGEgPSBTRVJWRVJbInhlcGciXVsiZXBnTWFwcGluZyJdOwogICAgdmFyIGNoYW5uZWxzID0gZ2V0T3duT2JqUHJvcHMoZGF0YSk7CiAgICB2YXIgY2hhbm5lbEtleXMgPSBbIngtYWN0aXZlIiwgIngtY2hhbm5lbElEIiwgIngtbmFtZSIsICJ1cGRhdGVDaGFubmVsTmFtZVJlZ2V4IiwgIl9maWxlLm0zdS5uYW1lIiwgIngtZ3JvdXAtdGl0bGUiLCAieC14bWx0di1maWxlIl07CiAgICBjaGFubmVscy5mb3JFYWNoKGlkID0+IHsKICAgICAgICBjaGFubmVsS2V5cy5mb3JFYWNoKGtleSA9PiB7CiAgICAgICAgICAgIGlmIChrZXkgPT0gIngtYWN0aXZlIikgewogICAgICAgICAgICAgICAgc3dpdGNoIChkYXRhW2lkXVtrZXldKSB7CiAgICAgICAgICAgICAgICAgICAgY2FzZSB0cnVlOgogICAgICAgICAgICAgICAgICAgICAgICBTRUFSQ0hfTUFQUElOR1tpZF0gPSAib25saW5lICI7CiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICAgIGNhc2UgZmFsc2U6CiAgICAgICAgICAgICAgICAgICAgICAgIFNFQVJDSF9NQVBQSU5HW2lkXSA9ICJvZmZsaW5lICI7CiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgaWYgKGtleSA9PSAieC14bWx0di1maWxlIikgewogICAgICAgICAgICAgICAgICAgIHZhciB4bWx0dkZpbGUgPSBnZXRWYWx1ZUZyb21Qcm92aWRlckZpbGUoZGF0YVtpZF1ba2V5XSwgInhtbHR2IiwgIm5hbWUiKTsKICAgICAgICAgICAgICAgICAgICBpZiAoeG1sdHZGaWxlICE9IHVuZGVmaW5lZCkgewogICAgICAgICAgICAgICAgICAgICAgICBTRUFSQ0hfTUFQUElOR1tpZF0gPSBTRUFSQ0hfTUFQUElOR1tpZF0gKyB4bWx0dkZpbGUgKyAiICI7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgU0VBUkNIX01BUFBJTkdbaWRdID0gU0VBUkNIX01BUFBJTkdbaWRdICsgZGF0YVtpZF1ba2V5XSArICIgIjsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIH0pOwogICAgfSk7CiAgICByZXR1cm47Cn0KZnVuY3Rpb24gc2VhcmNoSW5NYXBwaW5nKCkgewogICAgdmFyIHNlYXJjaFZhbHVlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNlYXJjaE1hcHBpbmciKS52YWx1ZTsKICAgIHZhciB0cnMgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29udGVudF90YWJsZSIpLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJUUiIpOwogICAgZm9yICh2YXIgaSA9IDE7IGkgPCB0cnMubGVuZ3RoOyArK2kpIHsKICAgICAgICB2YXIgaWQgPSB0cnNbaV0uZ2V0QXR0cmlidXRlKCJpZCIpOwogICAgICAgIHZhciBlbGVtZW50ID0gU0VBUkNIX01BUFBJTkdbaWRdOwogICAgICAgIHN3aXRjaCAoZWxlbWVudC50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKHNlYXJjaFZhbHVlLnRvTG93ZXJDYXNlKCkpKSB7CiAgICAgICAgICAgIGNhc2UgdHJ1ZToKICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5zdHlsZS5kaXNwbGF5ID0gIiI7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSBmYWxzZToKICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5zdHlsZS5kaXNwbGF5ID0gIm5vbmUiOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgfQogICAgfQogICAgcmV0dXJuOwp9CmZ1bmN0aW9uIGNhbGN1bGF0ZVdyYXBwZXJIZWlnaHQoKSB7CiAgICBpZiAoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImJveC13cmFwcGVyIikpIHsKICAgICAgICB2YXIgZWxtID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImJveC13cmFwcGVyIik7CiAgICAgICAgdmFyIGRpdnMgPSBuZXcgQXJyYXkoIm15U3RyZWFtc0JveCIsICJjbGllbnRJbmZvIiwgImNvbnRlbnQiKTsKICAgICAgICB2YXIgZWxlbWVudHNIZWlnaHQgPSAwIC0gZWxtLm9mZnNldEhlaWdodDsKICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGRpdnMubGVuZ3RoOyBpKyspIHsKICAgICAgICAgICAgZWxlbWVudHNIZWlnaHQgPSBlbGVtZW50c0hlaWdodCArIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGRpdnNbaV0pLm9mZnNldEhlaWdodDsKICAgICAgICB9CiAgICAgICAgZWxtLnN0eWxlLmhlaWdodCA9IHdpbmRvdy5pbm5lckhlaWdodCAtIGVsZW1lbnRzSGVpZ2h0ICsgInB4IjsKICAgIH0KICAgIHJldHVybjsKfQpmdW5jdGlvbiBjaGFuZ2VDaGFubmVsTnVtYmVyKGVsZW1lbnQpIHsKICAgIHZhciBkYklEID0gZWxlbWVudC5wYXJlbnROb2RlLnBhcmVudE5vZGUuaWQ7CiAgICB2YXIgbmV3TnVtYmVyID0gcGFyc2VGbG9hdChlbGVtZW50LnZhbHVlKTsKICAgIHZhciBjaGFubmVsTnVtYmVycyA9IFtdOwogICAgdmFyIGRhdGEgPSBTRVJWRVJbInhlcGciXVsiZXBnTWFwcGluZyJdOwogICAgdmFyIGNoYW5uZWxzID0gZ2V0T3duT2JqUHJvcHMoZGF0YSk7CiAgICBpZiAoaXNOYU4obmV3TnVtYmVyKSkgewogICAgICAgIGFsZXJ0KCJ7ey5hbGVydC5pbnZhbGlkQ2hhbm5lbE51bWJlcn19Iik7CiAgICAgICAgcmV0dXJuOwogICAgfQogICAgY2hhbm5lbHMuZm9yRWFjaChpZCA9PiB7CiAgICAgICAgdmFyIGNoYW5uZWxOdW1iZXIgPSBwYXJzZUZsb2F0KGRhdGFbaWRdWyJ4LWNoYW5uZWxJRCJdKTsKICAgICAgICBjaGFubmVsTnVtYmVycy5wdXNoKGNoYW5uZWxOdW1iZXIpOwogICAgfSk7CiAgICBmb3IgKHZhciBpID0gMDsgaSA8IGNoYW5uZWxOdW1iZXJzLmxlbmd0aDsgaSsrKSB7CiAgICAgICAgaWYgKGNoYW5uZWxOdW1iZXJzLmluZGV4T2YobmV3TnVtYmVyKSA9PSAtMSkgewogICAgICAgICAgICBicmVhazsKICAgICAgICB9CiAgICAgICAgaWYgKE1hdGguZmxvb3IobmV3TnVtYmVyKSA9PSBuZXdOdW1iZXIpIHsKICAgICAgICAgICAgbmV3TnVtYmVyID0gbmV3TnVtYmVyICsgMTsKICAgICAgICB9CiAgICAgICAgZWxzZSB7CiAgICAgICAgICAgIG5ld051bWJlciA9IG5ld051bWJlciArIDAuMTsKICAgICAgICAgICAgbmV3TnVtYmVyLnRvRml4ZWQoMSk7CiAgICAgICAgICAgIG5ld051bWJlciA9IE1hdGgucm91bmQobmV3TnVtYmVyICogMTApIC8gMTA7CiAgICAgICAgfQogICAgfQogICAgZGF0YVtkYklEXVsieC1jaGFubmVsSUQiXSA9IG5ld051bWJlci50b1N0cmluZygpOwogICAgZWxlbWVudC52YWx1ZSA9IG5ld051bWJlcjsKICAgIGlmIChDT0xVTU5fVE9fU09SVCA9PSAxKSB7CiAgICAgICAgQ09MVU1OX1RPX1NPUlQgPSAtMTsKICAgICAgICBzb3J0VGFibGUoMSk7CiAgICB9CiAgICByZXR1cm47Cn0KZnVuY3Rpb24gYmFja3VwKCkgewogICAgdmFyIGRhdGEgPSBuZXcgT2JqZWN0KCk7CiAgICB2YXIgY21kID0gInh0ZXZlQmFja3VwIjsKICAgIHZhciBzZXJ2ZXIgPSBuZXcgU2VydmVyKGNtZCk7CiAgICBzZXJ2ZXIucmVxdWVzdChkYXRhKTsKICAgIHJldHVybjsKfQpmdW5jdGlvbiB0b2dnbGVDaGFubmVsU3RhdHVzKGlkKSB7CiAgICB2YXIgZWxlbWVudDsKICAgIHZhciBzdGF0dXM7CiAgICBpZiAoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImFjdGl2ZSIpKSB7CiAgICAgICAgdmFyIGNoZWNrYm94ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImFjdGl2ZSIpOwogICAgICAgIHN0YXR1cyA9IChjaGVja2JveCkuY2hlY2tlZDsKICAgIH0KICAgIHZhciBpZHMgPSBnZXRBbGxTZWxlY3RlZENoYW5uZWxzKCk7CiAgICBpZiAoaWRzLmxlbmd0aCA9PSAwKSB7CiAgICAgICAgaWRzLnB1c2goaWQpOwogICAgfQogICAgaWRzLmZvckVhY2goaWQgPT4gewogICAgICAgIHZhciBjaGFubmVsID0gU0VSVkVSWyJ4ZXBnIl1bImVwZ01hcHBpbmciXVtpZF07CiAgICAgICAgY2hhbm5lbFsieC1hY3RpdmUiXSA9IHN0YXR1czsKICAgICAgICBzd2l0Y2ggKGNoYW5uZWxbIngtYWN0aXZlIl0pIHsKICAgICAgICAgICAgY2FzZSB0cnVlOgogICAgICAgICAgICAgICAgaWYgKGNoYW5uZWxbIngteG1sdHYtZmlsZSJdID09ICItIiB8fCBjaGFubmVsWyJ4LW1hcHBpbmciXSA9PSAiLSIpIHsKICAgICAgICAgICAgICAgICAgICBpZiAoQlVMS19FRElUID09IGZhbHNlKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGFsZXJ0KGNoYW5uZWxbIngtbmFtZSJdICsgIjogTWlzc2luZyBYTUxUViBmaWxlIC8gY2hhbm5lbCIpOwogICAgICAgICAgICAgICAgICAgICAgICBjaGVja2JveC5jaGVja2VkID0gZmFsc2U7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIGNoYW5uZWxbIngtYWN0aXZlIl0gPSBmYWxzZTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlIGZhbHNlOgogICAgICAgICAgICAgICAgLy8gY29kZS4uLgogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgfQogICAgICAgIGlmIChjaGFubmVsWyJ4LWFjdGl2ZSJdID09IGZhbHNlKSB7CiAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5jbGFzc05hbWUgPSAibm90QWN0aXZlRVBHIjsKICAgICAgICB9CiAgICAgICAgZWxzZSB7CiAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5jbGFzc05hbWUgPSAiYWN0aXZlRVBHIjsKICAgICAgICB9CiAgICB9KTsKfQpmdW5jdGlvbiB0b2dnbGVHcm91cFVwZGF0ZUNiKHhlcGdJZCwgdGFyZ2V0KSB7CiAgICB0YXJnZXQuY2xhc3NOYW1lID0gJ2NoYW5nZWQnOwogICAgY29uc3QgZ3JvdXBJbnB1dCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ2lucHV0W25hbWU9IngtZ3JvdXAtdGl0bGUiXScpOwogICAgY29uc3QgbWFwcGluZyA9IGdldExvY2FsRGF0YSgnbWFwcGluZycsIHhlcGdJZCk7CiAgICBpZiAodGFyZ2V0LmNoZWNrZWQpIHsKICAgICAgICBncm91cElucHV0LmRhdGFzZXQub2xkVmFsdWUgPSBncm91cElucHV0LnZhbHVlOwogICAgICAgIGdyb3VwSW5wdXQudmFsdWUgPSBtYXBwaW5nWydncm91cC10aXRsZSddOwogICAgICAgIGdyb3VwSW5wdXQuZGlzYWJsZWQgPSB0cnVlOwogICAgfQogICAgZWxzZSB7CiAgICAgICAgZ3JvdXBJbnB1dC52YWx1ZSA9IGdyb3VwSW5wdXQuZGF0YXNldC5vbGRWYWx1ZTsKICAgICAgICBncm91cElucHV0LmRpc2FibGVkID0gZmFsc2U7CiAgICB9CiAgICBncm91cElucHV0LmNsYXNzTmFtZSA9ICdjaGFuZ2VkJzsKfQpmdW5jdGlvbiByZXN0b3JlKCkgewogICAgaWYgKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd1cGxvYWQnKSkgewogICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd1cGxvYWQnKS5yZW1vdmUoKTsKICAgIH0KICAgIHZhciByZXN0b3JlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiSU5QVVQiKTsKICAgIHJlc3RvcmUuc2V0QXR0cmlidXRlKCJ0eXBlIiwgImZpbGUiKTsKICAgIHJlc3RvcmUuc2V0QXR0cmlidXRlKCJjbGFzcyIsICJub3RWaXNpYmxlIik7CiAgICByZXN0b3JlLnNldEF0dHJpYnV0ZSgibmFtZSIsICIiKTsKICAgIHJlc3RvcmUuaWQgPSAidXBsb2FkIjsKICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQocmVzdG9yZSk7CiAgICByZXN0b3JlLmNsaWNrKCk7CiAgICByZXN0b3JlLm9uY2hhbmdlID0gZnVuY3Rpb24gKCkgewogICAgICAgIHZhciBmaWxlbmFtZSA9IHJlc3RvcmUuZmlsZXNbMF0ubmFtZTsKICAgICAgICB2YXIgY2hlY2sgPSBjb25maXJtKCJGaWxlOiAiICsgZmlsZW5hbWUgKyAiXG57ey5jb25maXJtLnJlc3RvcmV9fSIpOwogICAgICAgIGlmIChjaGVjayA9PSB0cnVlKSB7CiAgICAgICAgICAgIHZhciByZWFkZXIgPSBuZXcgRmlsZVJlYWRlcigpOwogICAgICAgICAgICB2YXIgZmlsZSA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ2lucHV0W3R5cGU9ZmlsZV0nKS5maWxlc1swXTsKICAgICAgICAgICAgaWYgKGZpbGUpIHsKICAgICAgICAgICAgICAgIHJlYWRlci5yZWFkQXNEYXRhVVJMKGZpbGUpOwogICAgICAgICAgICAgICAgcmVhZGVyLm9ubG9hZCA9IGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgICAgICB2YXIgZGF0YSA9IG5ldyBPYmplY3QoKTsKICAgICAgICAgICAgICAgICAgICB2YXIgY21kID0gInh0ZXZlUmVzdG9yZSI7CiAgICAgICAgICAgICAgICAgICAgZGF0YVsiYmFzZTY0Il0gPSByZWFkZXIucmVzdWx0OwogICAgICAgICAgICAgICAgICAgIHZhciBzZXJ2ZXIgPSBuZXcgU2VydmVyKGNtZCk7CiAgICAgICAgICAgICAgICAgICAgc2VydmVyLnJlcXVlc3QoZGF0YSk7CiAgICAgICAgICAgICAgICB9OwogICAgICAgICAgICB9CiAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgYWxlcnQoIkZpbGUgY291bGQgbm90IGJlIGxvYWRlZCIpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIHJlc3RvcmUucmVtb3ZlKCk7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICB9OwogICAgcmV0dXJuOwp9CmZ1bmN0aW9uIHVwbG9hZExvZ28oKSB7CiAgICBpZiAoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3VwbG9hZCcpKSB7CiAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3VwbG9hZCcpLnJlbW92ZSgpOwogICAgfQogICAgdmFyIHVwbG9hZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIklOUFVUIik7CiAgICB1cGxvYWQuc2V0QXR0cmlidXRlKCJ0eXBlIiwgImZpbGUiKTsKICAgIHVwbG9hZC5zZXRBdHRyaWJ1dGUoImNsYXNzIiwgIm5vdFZpc2libGUiKTsKICAgIHVwbG9hZC5zZXRBdHRyaWJ1dGUoIm5hbWUiLCAiIik7CiAgICB1cGxvYWQuaWQgPSAidXBsb2FkIjsKICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQodXBsb2FkKTsKICAgIHVwbG9hZC5jbGljaygpOwogICAgdXBsb2FkLm9uYmx1ciA9IGZ1bmN0aW9uICgpIHsKICAgICAgICBhbGVydCgpOwogICAgfTsKICAgIHVwbG9hZC5vbmNoYW5nZSA9IGZ1bmN0aW9uICgpIHsKICAgICAgICB2YXIgZmlsZW5hbWUgPSB1cGxvYWQuZmlsZXNbMF0ubmFtZTsKICAgICAgICB2YXIgcmVhZGVyID0gbmV3IEZpbGVSZWFkZXIoKTsKICAgICAgICB2YXIgZmlsZSA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ2lucHV0W3R5cGU9ZmlsZV0nKS5maWxlc1swXTsKICAgICAgICBpZiAoZmlsZSkgewogICAgICAgICAgICByZWFkZXIucmVhZEFzRGF0YVVSTChmaWxlKTsKICAgICAgICAgICAgcmVhZGVyLm9ubG9hZCA9IGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgIHZhciBkYXRhID0gbmV3IE9iamVjdCgpOwogICAgICAgICAgICAgICAgdmFyIGNtZCA9ICJ1cGxvYWRMb2dvIjsKICAgICAgICAgICAgICAgIGRhdGFbImJhc2U2NCJdID0gcmVhZGVyLnJlc3VsdDsKICAgICAgICAgICAgICAgIGRhdGFbImZpbGVuYW1lIl0gPSBmaWxlLm5hbWU7CiAgICAgICAgICAgICAgICB2YXIgc2VydmVyID0gbmV3IFNlcnZlcihjbWQpOwogICAgICAgICAgICAgICAgc2VydmVyLnJlcXVlc3QoZGF0YSk7CiAgICAgICAgICAgICAgICB2YXIgdXBkYXRlTG9nbyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd1cGRhdGUtaWNvbicpOwogICAgICAgICAgICAgICAgdXBkYXRlTG9nby5jaGVja2VkID0gZmFsc2U7CiAgICAgICAgICAgICAgICB1cGRhdGVMb2dvLmNsYXNzTmFtZSA9ICJjaGFuZ2VkIjsKICAgICAgICAgICAgfTsKICAgICAgICB9CiAgICAgICAgZWxzZSB7CiAgICAgICAgICAgIGFsZXJ0KCJGaWxlIGNvdWxkIG5vdCBiZSBsb2FkZWQiKTsKICAgICAgICB9CiAgICAgICAgdXBsb2FkLnJlbW92ZSgpOwogICAgICAgIHJldHVybjsKICAgIH07Cn0KZnVuY3Rpb24gY2hlY2tVbmRvKGtleSkgewogICAgc3dpdGNoIChrZXkpIHsKICAgICAgICBjYXNlICJlcGdNYXBwaW5nIjoKICAgICAgICAgICAgaWYgKFVORE8uaGFzT3duUHJvcGVydHkoa2V5KSkgewogICAgICAgICAgICAgICAgU0VSVkVSWyJ4ZXBnIl1ba2V5XSA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkoVU5ET1trZXldKSk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICBVTkRPW2tleV0gPSBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KFNFUlZFUlsieGVwZyJdW2tleV0pKTsKICAgICAgICAgICAgfQogICAgICAgICAgICBicmVhazsKICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICBicmVhazsKICAgIH0KICAgIHJldHVybjsKfQpmdW5jdGlvbiB1cGRhdGVMb2coKSB7CiAgICB2YXIgc2VydmVyID0gbmV3IFNlcnZlcigidXBkYXRlTG9nIik7CiAgICBzZXJ2ZXIucmVxdWVzdChuZXcgT2JqZWN0KCkpOwp9Cg==" webUI["html/js/classes_ts.js"] = "dmFyIF9fZXh0ZW5kcyA9ICh0aGlzICYmIHRoaXMuX19leHRlbmRzKSB8fCAoZnVuY3Rpb24gKCkgewogICAgdmFyIGV4dGVuZFN0YXRpY3MgPSBmdW5jdGlvbiAoZCwgYikgewogICAgICAgIGV4dGVuZFN0YXRpY3MgPSBPYmplY3Quc2V0UHJvdG90eXBlT2YgfHwKICAgICAgICAgICAgKHsgX19wcm90b19fOiBbXSB9IGluc3RhbmNlb2YgQXJyYXkgJiYgZnVuY3Rpb24gKGQsIGIpIHsgZC5fX3Byb3RvX18gPSBiOyB9KSB8fAogICAgICAgICAgICBmdW5jdGlvbiAoZCwgYikgeyBmb3IgKHZhciBwIGluIGIpIGlmIChiLmhhc093blByb3BlcnR5KHApKSBkW3BdID0gYltwXTsgfTsKICAgICAgICByZXR1cm4gZXh0ZW5kU3RhdGljcyhkLCBiKTsKICAgIH07CiAgICByZXR1cm4gZnVuY3Rpb24gKGQsIGIpIHsKICAgICAgICBleHRlbmRTdGF0aWNzKGQsIGIpOwogICAgICAgIGZ1bmN0aW9uIF9fKCkgeyB0aGlzLmNvbnN0cnVjdG9yID0gZDsgfQogICAgICAgIGQucHJvdG90eXBlID0gYiA9PT0gbnVsbCA/IE9iamVjdC5jcmVhdGUoYikgOiAoX18ucHJvdG90eXBlID0gYi5wcm90b3R5cGUsIG5ldyBfXygpKTsKICAgIH07Cn0pKCk7CnZhciBNYWluTWVudSA9IC8qKiBAY2xhc3MgKi8gKGZ1bmN0aW9uICgpIHsKICAgIGZ1bmN0aW9uIE1haW5NZW51KCkgewogICAgICAgIHRoaXMuRG9jdW1lbnRJRCA9ICJtYWluLW1lbnUiOwogICAgICAgIHRoaXMuSFRNTFRhZyA9ICJMSSI7CiAgICB9CiAgICBNYWluTWVudS5wcm90b3R5cGUuY3JlYXRlID0gZnVuY3Rpb24gKCkgewogICAgICAgIGNvbnNvbGUubG9nKHRoaXMuRG9jdW1lbnRJRCk7CiAgICB9OwogICAgcmV0dXJuIE1haW5NZW51Owp9KCkpOwp2YXIgTWFpbk1lbnVJdGVtID0gLyoqIEBjbGFzcyAqLyAoZnVuY3Rpb24gKF9zdXBlcikgewogICAgX19leHRlbmRzKE1haW5NZW51SXRlbSwgX3N1cGVyKTsKICAgIGZ1bmN0aW9uIE1haW5NZW51SXRlbSgpIHsKICAgICAgICByZXR1cm4gX3N1cGVyICE9PSBudWxsICYmIF9zdXBlci5hcHBseSh0aGlzLCBhcmd1bWVudHMpIHx8IHRoaXM7CiAgICB9CiAgICBNYWluTWVudUl0ZW0ucHJvdG90eXBlLmNyZWF0ZTIgPSBmdW5jdGlvbiAoKSB7CiAgICAgICAgdmFyIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KHRoaXMuSFRNTFRhZyk7CiAgICAgICAgZWxlbWVudC5pbm5lclRleHQgPSB0aGlzLlZhbHVlOwogICAgICAgIGNvbnNvbGUubG9nKGVsZW1lbnQpOwogICAgfTsKICAgIHJldHVybiBNYWluTWVudUl0ZW07Cn0oTWFpbk1lbnUpKTsKZnVuY3Rpb24gcGFnZVJlYWR5KCkgewogICAgdmFyIGl0ZW0gPSBuZXcgTWFpbk1lbnVJdGVtKCk7CiAgICBpdGVtLlZhbHVlID0gIlRlc3QiOwogICAgaXRlbS5jcmVhdGUyKCk7Cn0K" webUI["html/js/configuration_ts.js"] = "Y2xhc3MgV2l6YXJkQ2F0ZWdvcnkgewogICAgY29uc3RydWN0b3IoKSB7CiAgICAgICAgdGhpcy5Eb2N1bWVudElEID0gImNvbnRlbnQiOwogICAgfQogICAgY3JlYXRlQ2F0ZWdvcnlIZWFkbGluZSh2YWx1ZSkgewogICAgICAgIHZhciBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiSDQiKTsKICAgICAgICBlbGVtZW50LmlubmVySFRNTCA9IHZhbHVlOwogICAgICAgIHJldHVybiBlbGVtZW50OwogICAgfQp9CmNsYXNzIFdpemFyZEl0ZW0gZXh0ZW5kcyBXaXphcmRDYXRlZ29yeSB7CiAgICBjb25zdHJ1Y3RvcihrZXksIGhlYWRsaW5lKSB7CiAgICAgICAgc3VwZXIoKTsKICAgICAgICB0aGlzLmhlYWRsaW5lID0gaGVhZGxpbmU7CiAgICAgICAgdGhpcy5rZXkgPSBrZXk7CiAgICB9CiAgICBjcmVhdGVXaXphcmQoKSB7CiAgICAgICAgdmFyIGhlYWRsaW5lID0gdGhpcy5jcmVhdGVDYXRlZ29yeUhlYWRsaW5lKHRoaXMuaGVhZGxpbmUpOwogICAgICAgIHZhciBrZXkgPSB0aGlzLmtleTsKICAgICAgICB2YXIgY29udGVudCA9IG5ldyBQb3B1cENvbnRlbnQoKTsKICAgICAgICB2YXIgZGVzY3JpcHRpb247CiAgICAgICAgdmFyIGRvYyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHRoaXMuRG9jdW1lbnRJRCk7CiAgICAgICAgZG9jLmlubmVySFRNTCA9ICIiOwogICAgICAgIGRvYy5hcHBlbmRDaGlsZChoZWFkbGluZSk7CiAgICAgICAgc3dpdGNoIChrZXkpIHsKICAgICAgICAgICAgY2FzZSAidHVuZXIiOgogICAgICAgICAgICAgICAgdmFyIHRleHQgPSBuZXcgQXJyYXkoKTsKICAgICAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBuZXcgQXJyYXkoKTsKICAgICAgICAgICAgICAgIGZvciAodmFyIGkgPSAxOyBpIDw9IDEwMDsgaSsrKSB7CiAgICAgICAgICAgICAgICAgICAgdGV4dC5wdXNoKGkpOwogICAgICAgICAgICAgICAgICAgIHZhbHVlcy5wdXNoKGkpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgdmFyIHNlbGVjdCA9IGNvbnRlbnQuY3JlYXRlU2VsZWN0KHRleHQsIHZhbHVlcywgIjEiLCBrZXkpOwogICAgICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgiY2xhc3MiLCAid2l6YXJkIik7CiAgICAgICAgICAgICAgICBzZWxlY3QuaWQgPSBrZXk7CiAgICAgICAgICAgICAgICBkb2MuYXBwZW5kQ2hpbGQoc2VsZWN0KTsKICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uID0gInt7LndpemFyZC50dW5lci5kZXNjcmlwdGlvbn19IjsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJlcGdTb3VyY2UiOgogICAgICAgICAgICAgICAgdmFyIHRleHQgPSBbIlBNUyIsICJYRVBHIl07CiAgICAgICAgICAgICAgICB2YXIgdmFsdWVzID0gWyJQTVMiLCAiWEVQRyJdOwogICAgICAgICAgICAgICAgdmFyIHNlbGVjdCA9IGNvbnRlbnQuY3JlYXRlU2VsZWN0KHRleHQsIHZhbHVlcywgIlhFUEciLCBrZXkpOwogICAgICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgiY2xhc3MiLCAid2l6YXJkIik7CiAgICAgICAgICAgICAgICBzZWxlY3QuaWQgPSBrZXk7CiAgICAgICAgICAgICAgICBkb2MuYXBwZW5kQ2hpbGQoc2VsZWN0KTsKICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uID0gInt7LndpemFyZC5lcGdTb3VyY2UuZGVzY3JpcHRpb259fSI7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAibTN1IjoKICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBrZXksICIiKTsKICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3sud2l6YXJkLm0zdS5wbGFjZWhvbGRlcn19Iik7CiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoImNsYXNzIiwgIndpemFyZCIpOwogICAgICAgICAgICAgICAgaW5wdXQuaWQgPSBrZXk7CiAgICAgICAgICAgICAgICBkb2MuYXBwZW5kQ2hpbGQoaW5wdXQpOwogICAgICAgICAgICAgICAgZGVzY3JpcHRpb24gPSAie3sud2l6YXJkLm0zdS5kZXNjcmlwdGlvbn19IjsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJ4bWx0diI6CiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0Iiwga2V5LCAiIik7CiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LndpemFyZC54bWx0di5wbGFjZWhvbGRlcn19Iik7CiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoImNsYXNzIiwgIndpemFyZCIpOwogICAgICAgICAgICAgICAgaW5wdXQuaWQgPSBrZXk7CiAgICAgICAgICAgICAgICBkb2MuYXBwZW5kQ2hpbGQoaW5wdXQpOwogICAgICAgICAgICAgICAgZGVzY3JpcHRpb24gPSAie3sud2l6YXJkLnhtbHR2LmRlc2NyaXB0aW9ufX0iOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICB9CiAgICAgICAgdmFyIHByZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlBSRSIpOwogICAgICAgIHByZS5pbm5lckhUTUwgPSBkZXNjcmlwdGlvbjsKICAgICAgICBkb2MuYXBwZW5kQ2hpbGQocHJlKTsKICAgIH0KfQpmdW5jdGlvbiByZWFkeUZvckNvbmZpZ3VyYXRpb24od2l6YXJkKSB7CiAgICB2YXIgc2VydmVyID0gbmV3IFNlcnZlcigiZ2V0U2VydmVyQ29uZmlnIik7CiAgICBzZXJ2ZXIucmVxdWVzdChuZXcgT2JqZWN0KCkpOwogICAgc2hvd0VsZW1lbnQoImxvYWRpbmciLCBmYWxzZSk7CiAgICBjb25maWd1cmF0aW9uV2l6YXJkW3dpemFyZF0uY3JlYXRlV2l6YXJkKCk7Cn0KZnVuY3Rpb24gc2F2ZVdpemFyZCgpIHsKICAgIHZhciBjbWQgPSAic2F2ZVdpemFyZCI7CiAgICB2YXIgZGl2ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnRlbnQiKTsKICAgIHZhciBjb25maWcgPSBkaXYuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSgid2l6YXJkIik7CiAgICB2YXIgd2l6YXJkID0gbmV3IE9iamVjdCgpOwogICAgZm9yICh2YXIgaSA9IDA7IGkgPCBjb25maWcubGVuZ3RoOyBpKyspIHsKICAgICAgICB2YXIgbmFtZTsKICAgICAgICB2YXIgdmFsdWU7CiAgICAgICAgc3dpdGNoIChjb25maWdbaV0udGFnTmFtZSkgewogICAgICAgICAgICBjYXNlICJTRUxFQ1QiOgogICAgICAgICAgICAgICAgbmFtZSA9IGNvbmZpZ1tpXS5uYW1lOwogICAgICAgICAgICAgICAgdmFsdWUgPSBjb25maWdbaV0udmFsdWU7CiAgICAgICAgICAgICAgICAvLyBJZiB0aGUgdmFsdWUgaXMgYSBudW1iZXIsIHN0b3JlIGl0IGFzIGEgbnVtYmVyCiAgICAgICAgICAgICAgICBpZiAoaXNOYU4odmFsdWUpKSB7CiAgICAgICAgICAgICAgICAgICAgd2l6YXJkW25hbWVdID0gdmFsdWU7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgICAgICB3aXphcmRbbmFtZV0gPSBwYXJzZUludCh2YWx1ZSk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAiSU5QVVQiOgogICAgICAgICAgICAgICAgc3dpdGNoIChjb25maWdbaV0udHlwZSkgewogICAgICAgICAgICAgICAgICAgIGNhc2UgInRleHQiOgogICAgICAgICAgICAgICAgICAgICAgICBuYW1lID0gY29uZmlnW2ldLm5hbWU7CiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlID0gY29uZmlnW2ldLnZhbHVlOwogICAgICAgICAgICAgICAgICAgICAgICBpZiAodmFsdWUubGVuZ3RoID09IDApIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBtc2cgPSBuYW1lLnRvVXBwZXJDYXNlKCkgKyAiOiAiICsgInt7LmFsZXJ0Lm1pc3NpbmdJbnB1dH19IjsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFsZXJ0KG1zZyk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgd2l6YXJkW25hbWVdID0gdmFsdWU7CiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICAgICAvLyBjb2RlLi4uCiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICB9CiAgICB9CiAgICB2YXIgZGF0YSA9IG5ldyBPYmplY3QoKTsKICAgIGRhdGFbIndpemFyZCJdID0gd2l6YXJkOwogICAgdmFyIHNlcnZlciA9IG5ldyBTZXJ2ZXIoY21kKTsKICAgIHNlcnZlci5yZXF1ZXN0KGRhdGEpOwp9Ci8vIFdpemFyZAp2YXIgY29uZmlndXJhdGlvbldpemFyZCA9IG5ldyBBcnJheSgpOwpjb25maWd1cmF0aW9uV2l6YXJkLnB1c2gobmV3IFdpemFyZEl0ZW0oInR1bmVyIiwgInt7LndpemFyZC50dW5lci50aXRsZX19IikpOwpjb25maWd1cmF0aW9uV2l6YXJkLnB1c2gobmV3IFdpemFyZEl0ZW0oImVwZ1NvdXJjZSIsICJ7ey53aXphcmQuZXBnU291cmNlLnRpdGxlfX0iKSk7CmNvbmZpZ3VyYXRpb25XaXphcmQucHVzaChuZXcgV2l6YXJkSXRlbSgibTN1IiwgInt7LndpemFyZC5tM3UudGl0bGV9fSIpKTsKY29uZmlndXJhdGlvbldpemFyZC5wdXNoKG5ldyBXaXphcmRJdGVtKCJ4bWx0diIsICJ7ey53aXphcmQueG1sdHYudGl0bGV9fSIpKTsK" webUI["html/js/logs_ts.js"] = "Y2xhc3MgTG9nIHsKICAgIGNyZWF0ZUxvZyhlbnRyeSkgewogICAgICAgIHZhciBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiUFJFIik7CiAgICAgICAgZW50cnkgPSBTdHJpbmcoZW50cnkpOwogICAgICAgIGlmIChlbnRyeS5pbmRleE9mKCJXQVJOSU5HIikgIT0gLTEpIHsKICAgICAgICAgICAgZWxlbWVudC5jbGFzc05hbWUgPSAid2FybmluZ01zZyI7CiAgICAgICAgfQogICAgICAgIGlmIChlbnRyeS5pbmRleE9mKCJFUlJPUiIpICE9IC0xKSB7CiAgICAgICAgICAgIGVsZW1lbnQuY2xhc3NOYW1lID0gImVycm9yTXNnIjsKICAgICAgICB9CiAgICAgICAgaWYgKGVudHJ5LmluZGV4T2YoIkRFQlVHIikgIT0gLTEpIHsKICAgICAgICAgICAgZWxlbWVudC5jbGFzc05hbWUgPSAiZGVidWdNc2ciOwogICAgICAgIH0KICAgICAgICBlbGVtZW50LmlubmVySFRNTCA9IGVudHJ5OwogICAgICAgIHJldHVybiBlbGVtZW50OwogICAgfQp9CmZ1bmN0aW9uIHNob3dMb2dzKGJvdHRvbSkgewogICAgdmFyIGxvZyA9IG5ldyBMb2coKTsKICAgIHZhciBsb2dzID0gU0VSVkVSWyJsb2ciXVsibG9nIl07CiAgICB2YXIgZGl2ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnRlbnRfbG9nIik7CiAgICBkaXYuaW5uZXJIVE1MID0gIiI7CiAgICB2YXIga2V5cyA9IGdldE93bk9ialByb3BzKGxvZ3MpOwogICAga2V5cy5mb3JFYWNoKGxvZ0lEID0+IHsKICAgICAgICB2YXIgZW50cnkgPSBsb2cuY3JlYXRlTG9nKGxvZ3NbbG9nSURdKTsKICAgICAgICBkaXYuYXBwZW5kKGVudHJ5KTsKICAgIH0pOwogICAgc2V0VGltZW91dChmdW5jdGlvbiAoKSB7CiAgICAgICAgaWYgKGJvdHRvbSA9PSB0cnVlKSB7CiAgICAgICAgICAgIHZhciB3cmFwcGVyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImJveC13cmFwcGVyIik7CiAgICAgICAgICAgIHdyYXBwZXIuc2Nyb2xsVG9wID0gd3JhcHBlci5zY3JvbGxIZWlnaHQ7CiAgICAgICAgfQogICAgfSwgMTApOwp9CmZ1bmN0aW9uIHJlc2V0TG9ncygpIHsKICAgIHZhciBjbWQgPSAicmVzZXRMb2dzIjsKICAgIHZhciBkYXRhID0gbmV3IE9iamVjdCgpOwogICAgdmFyIHNlcnZlciA9IG5ldyBTZXJ2ZXIoY21kKTsKICAgIHNlcnZlci5yZXF1ZXN0KGRhdGEpOwp9Cg==" - webUI["html/js/menu_ts.js"] = "Y2xhc3MgTWFpbk1lbnUgewogICAgY29uc3RydWN0b3IoKSB7CiAgICAgICAgdGhpcy5Eb2N1bWVudElEID0gIm1haW4tbWVudSI7CiAgICAgICAgdGhpcy5IVE1MVGFnID0gIkxJIjsKICAgICAgICB0aGlzLkltYWdlUGF0aCA9ICJpbWcvIjsKICAgIH0KICAgIGNyZWF0ZUlNRyhzcmMpIHsKICAgICAgICBsZXQgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIklNRyIpOwogICAgICAgIGVsZW1lbnQuc2V0QXR0cmlidXRlKCJzcmMiLCB0aGlzLkltYWdlUGF0aCArIHNyYyk7CiAgICAgICAgcmV0dXJuIGVsZW1lbnQ7CiAgICB9CiAgICBjcmVhdGVWYWx1ZSh2YWx1ZSkgewogICAgICAgIGxldCBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiUCIpOwogICAgICAgIGVsZW1lbnQuaW5uZXJIVE1MID0gdmFsdWU7CiAgICAgICAgcmV0dXJuIGVsZW1lbnQ7CiAgICB9Cn0KY2xhc3MgTWFpbk1lbnVJdGVtIGV4dGVuZHMgTWFpbk1lbnUgewogICAgY29uc3RydWN0b3IobWVudUtleSwgdmFsdWUsIGltYWdlLCBoZWFkbGluZSkgewogICAgICAgIHN1cGVyKCk7CiAgICAgICAgdGhpcy5tZW51S2V5ID0gbWVudUtleTsKICAgICAgICB0aGlzLnZhbHVlID0gdmFsdWU7CiAgICAgICAgdGhpcy5pbWdTcmMgPSBpbWFnZTsKICAgICAgICB0aGlzLmhlYWRsaW5lID0gaGVhZGxpbmU7CiAgICB9CiAgICBjcmVhdGVJdGVtKCkgewogICAgICAgIGxldCBpdGVtID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiTEkiKTsKICAgICAgICBpdGVtLnNldEF0dHJpYnV0ZSgib25jbGljayIsICJqYXZhc2NyaXB0OiBvcGVuVGhpc01lbnUodGhpcykiKTsKICAgICAgICBpdGVtLnNldEF0dHJpYnV0ZSgiaWQiLCB0aGlzLmlkKTsKICAgICAgICBsZXQgaW1nID0gdGhpcy5jcmVhdGVJTUcodGhpcy5pbWdTcmMpOwogICAgICAgIGxldCB2YWx1ZSA9IHRoaXMuY3JlYXRlVmFsdWUodGhpcy52YWx1ZSk7CiAgICAgICAgaXRlbS5hcHBlbmRDaGlsZChpbWcpOwogICAgICAgIGl0ZW0uYXBwZW5kQ2hpbGQodmFsdWUpOwogICAgICAgIGxldCBkb2MgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCh0aGlzLkRvY3VtZW50SUQpOwogICAgICAgIGRvYy5hcHBlbmRDaGlsZChpdGVtKTsKICAgICAgICBzd2l0Y2ggKHRoaXMubWVudUtleSkgewogICAgICAgICAgICBjYXNlICJwbGF5bGlzdCI6CiAgICAgICAgICAgICAgICB0aGlzLnRhYmxlSGVhZGVyID0gWyJ7ey5wbGF5bGlzdC50YWJsZS5wbGF5bGlzdH19IiwgInt7LnBsYXlsaXN0LnRhYmxlLnR1bmVyfX0iLCAie3sucGxheWxpc3QudGFibGUubGFzdFVwZGF0ZX19IiwgInt7LnBsYXlsaXN0LnRhYmxlLmF2YWlsYWJpbGl0eX19ICUiLCAie3sucGxheWxpc3QudGFibGUudHlwZX19IiwgInt7LnBsYXlsaXN0LnRhYmxlLnN0cmVhbXN9fSIsICJ7ey5wbGF5bGlzdC50YWJsZS5ncm91cFRpdGxlfX0gJSIsICJ7ey5wbGF5bGlzdC50YWJsZS50dmdJRH19ICUiLCAie3sucGxheWxpc3QudGFibGUudW5pcXVlSUR9fSAlIl07CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAieG1sdHYiOgogICAgICAgICAgICAgICAgdGhpcy50YWJsZUhlYWRlciA9IFsie3sueG1sdHYudGFibGUuZ3VpZGV9fSIsICJ7ey54bWx0di50YWJsZS5sYXN0VXBkYXRlfX0iLCAie3sueG1sdHYudGFibGUuYXZhaWxhYmlsaXR5fX0gJSIsICJ7ey54bWx0di50YWJsZS5jaGFubmVsc319IiwgInt7LnhtbHR2LnRhYmxlLnByb2dyYW1zfX0iXTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJmaWx0ZXIiOgogICAgICAgICAgICAgICAgdGhpcy50YWJsZUhlYWRlciA9IFsie3suZmlsdGVyLnRhYmxlLnN0YXJ0aW5nQ2hhbm5lbH19IiwgInt7LmZpbHRlci50YWJsZS5uYW1lfX0iLCAie3suZmlsdGVyLnRhYmxlLnR5cGV9fSIsICJ7ey5maWx0ZXIudGFibGUuZmlsdGVyfX0iXTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJ1c2VycyI6CiAgICAgICAgICAgICAgICB0aGlzLnRhYmxlSGVhZGVyID0gWyJ7ey51c2Vycy50YWJsZS51c2VybmFtZX19IiwgInt7LnVzZXJzLnRhYmxlLnBhc3N3b3JkfX0iLCAie3sudXNlcnMudGFibGUud2VifX0iLCAie3sudXNlcnMudGFibGUucG1zfX0iLCAie3sudXNlcnMudGFibGUubTN1fX0iLCAie3sudXNlcnMudGFibGUueG1sfX0iLCAie3sudXNlcnMudGFibGUuYXBpfX0iXTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJtYXBwaW5nIjoKICAgICAgICAgICAgICAgIHRoaXMudGFibGVIZWFkZXIgPSBbIkJVTEsiLCAie3subWFwcGluZy50YWJsZS5jaE5vfX0iLCAie3subWFwcGluZy50YWJsZS5sb2dvfX0iLCAie3subWFwcGluZy50YWJsZS5jaGFubmVsTmFtZX19IiwgInt7Lm1hcHBpbmcudGFibGUudXBkYXRlQ2hhbm5lbE5hbWVSZWdleH19IiwgInt7Lm1hcHBpbmcudGFibGUucGxheWxpc3R9fSIsICJ7ey5tYXBwaW5nLnRhYmxlLmdyb3VwVGl0bGV9fSIsICJ7ey5tYXBwaW5nLnRhYmxlLnhtbHR2RmlsZX19IiwgInt7Lm1hcHBpbmcudGFibGUueG1sdHZJRH19IiwgInt7Lm1hcHBpbmcudGFibGUudGltZXNoaWZ0fX0iXTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgIH0KICAgIH0KfQpjbGFzcyBDb250ZW50IHsKICAgIGNvbnN0cnVjdG9yKCkgewogICAgICAgIHRoaXMuRG9jdW1lbnRJRCA9ICJjb250ZW50IjsKICAgICAgICB0aGlzLlRhYmxlSUQgPSAiY29udGVudF90YWJsZSI7CiAgICAgICAgdGhpcy5oZWFkZXJDbGFzcyA9ICJjb250ZW50X3RhYmxlX2hlYWRlciI7CiAgICAgICAgdGhpcy5pbnRlcmFjdGlvbklEID0gImNvbnRlbnQtaW50ZXJhY3Rpb24iOwogICAgfQogICAgY3JlYXRlSGVhZGxpbmUodmFsdWUpIHsKICAgICAgICBsZXQgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIkgzIik7CiAgICAgICAgZWxlbWVudC5pbm5lckhUTUwgPSB2YWx1ZTsKICAgICAgICByZXR1cm4gZWxlbWVudDsKICAgIH0KICAgIGNyZWF0ZUhSKCkgewogICAgICAgIHJldHVybiBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJIUiIpOwogICAgfQogICAgY3JlYXRlSW50ZXJhY3Rpb24oKSB7CiAgICAgICAgbGV0IGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJESVYiKTsKICAgICAgICBlbGVtZW50LnNldEF0dHJpYnV0ZSgiaWQiLCB0aGlzLmludGVyYWN0aW9uSUQpOwogICAgICAgIHJldHVybiBlbGVtZW50OwogICAgfQogICAgY3JlYXRlRElWKCkgewogICAgICAgIGxldCBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiRElWIik7CiAgICAgICAgZWxlbWVudC5pZCA9IHRoaXMuRGl2SUQ7CiAgICAgICAgcmV0dXJuIGVsZW1lbnQ7CiAgICB9CiAgICBjcmVhdGVUQUJMRSgpIHsKICAgICAgICBsZXQgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlRBQkxFIik7CiAgICAgICAgZWxlbWVudC5pZCA9IHRoaXMuVGFibGVJRDsKICAgICAgICByZXR1cm4gZWxlbWVudDsKICAgIH0KICAgIGNyZWF0ZVRhYmxlUm93KCkgewogICAgICAgIGxldCBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVFIiKTsKICAgICAgICBlbGVtZW50LmNsYXNzTmFtZSA9IHRoaXMuaGVhZGVyQ2xhc3M7CiAgICAgICAgcmV0dXJuIGVsZW1lbnQ7CiAgICB9CiAgICBjcmVhdGVUYWJsZUNvbnRlbnQobWVudUtleSkgewogICAgICAgIGxldCBkYXRhID0ge307CiAgICAgICAgbGV0IHJvd3MgPSBbXTsKICAgICAgICBsZXQgZmlsZVR5cGVzID0gW107CiAgICAgICAgc3dpdGNoIChtZW51S2V5KSB7CiAgICAgICAgICAgIGNhc2UgInBsYXlsaXN0IjoKICAgICAgICAgICAgICAgIGZpbGVUeXBlcyA9IFsibTN1IiwgImhkaHIiXTsKICAgICAgICAgICAgICAgIGZpbGVUeXBlcy5mb3JFYWNoKGZpbGVUeXBlID0+IHsKICAgICAgICAgICAgICAgICAgICBkYXRhID0gU0VSVkVSWyJzZXR0aW5ncyJdWyJmaWxlcyJdW2ZpbGVUeXBlXTsKICAgICAgICAgICAgICAgICAgICB2YXIga2V5cyA9IGdldE93bk9ialByb3BzKGRhdGEpOwogICAgICAgICAgICAgICAgICAgIGtleXMuZm9yRWFjaChrZXkgPT4gewogICAgICAgICAgICAgICAgICAgICAgICB2YXIgdHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJUUiIpOwogICAgICAgICAgICAgICAgICAgICAgICB0ci5pZCA9IGtleTsKICAgICAgICAgICAgICAgICAgICAgICAgdHIuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgiJyArIGZpbGVUeXBlICsgJyIsIHRoaXMpJyk7CiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsKICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7CiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOwogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJuYW1lIl07CiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsKICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOwogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7CiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChTRVJWRVJbInNldHRpbmdzIl1bImJ1ZmZlciJdICE9ICItIikgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsidHVuZXIiXTsKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSAiLSI7CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOwogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7CiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOwogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsKICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsibGFzdC51cGRhdGUiXTsKICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOwogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7CiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOwogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsKICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsicHJvdmlkZXIuYXZhaWxhYmlsaXR5Il07CiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsKICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOwogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7CiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bInR5cGUiXS50b1VwcGVyQ2FzZSgpOwogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7CiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsKICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7CiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOwogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJjb21wYXRpYmlsaXR5Il1bInN0cmVhbXMiXTsKICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOwogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7CiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOwogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsKICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsiY29tcGF0aWJpbGl0eSJdWyJncm91cC50aXRsZSJdOwogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7CiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsKICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7CiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOwogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJjb21wYXRpYmlsaXR5Il1bInR2Zy5pZCJdOwogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7CiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsKICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7CiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOwogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJjb21wYXRpYmlsaXR5Il1bInN0cmVhbS5pZCJdOwogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7CiAgICAgICAgICAgICAgICAgICAgICAgIHJvd3MucHVzaCh0cik7CiAgICAgICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJmaWx0ZXIiOgogICAgICAgICAgICAgICAgZGVsZXRlIFNFUlZFUlsic2V0dGluZ3MiXVsiZmlsdGVyIl1bLTFdOwogICAgICAgICAgICAgICAgZGF0YSA9IFNFUlZFUlsic2V0dGluZ3MiXVsiZmlsdGVyIl07CiAgICAgICAgICAgICAgICB2YXIga2V5cyA9IGdldE93bk9ialByb3BzKGRhdGEpOwogICAgICAgICAgICAgICAga2V5cy5mb3JFYWNoKGtleSA9PiB7CiAgICAgICAgICAgICAgICAgICAgdmFyIHRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVFIiKTsKICAgICAgICAgICAgICAgICAgICB0ci5pZCA9IGtleTsKICAgICAgICAgICAgICAgICAgICB0ci5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCInICsgZGF0YVtrZXldWyJ0eXBlIl0gKyAnIiwgdGhpcyknKTsKICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7CiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7CiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7CiAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsic3RhcnRpbmdDaGFubmVsIl07CiAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOwogICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsKICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsKICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJuYW1lIl07CiAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOwogICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsKICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsKICAgICAgICAgICAgICAgICAgICBzd2l0Y2ggKGRhdGFba2V5XVsidHlwZSJdKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgImN1c3RvbS1maWx0ZXIiOgogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9ICJ7ey5maWx0ZXIuY3VzdG9tfX0iOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgImdyb3VwLXRpdGxlIjoKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSAie3suZmlsdGVyLmdyb3VwfX0iOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOwogICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsKICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsKICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJmaWx0ZXIiXTsKICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7CiAgICAgICAgICAgICAgICAgICAgcm93cy5wdXNoKHRyKTsKICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgInhtbHR2IjoKICAgICAgICAgICAgICAgIGZpbGVUeXBlcyA9IG5ldyBBcnJheSgieG1sdHYiKTsKICAgICAgICAgICAgICAgIGZpbGVUeXBlcy5mb3JFYWNoKGZpbGVUeXBlID0+IHsKICAgICAgICAgICAgICAgICAgICBkYXRhID0gU0VSVkVSWyJzZXR0aW5ncyJdWyJmaWxlcyJdW2ZpbGVUeXBlXTsKICAgICAgICAgICAgICAgICAgICB2YXIga2V5cyA9IGdldE93bk9ialByb3BzKGRhdGEpOwogICAgICAgICAgICAgICAgICAgIGtleXMuZm9yRWFjaChrZXkgPT4gewogICAgICAgICAgICAgICAgICAgICAgICB2YXIgdHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJUUiIpOwogICAgICAgICAgICAgICAgICAgICAgICB0ci5pZCA9IGtleTsKICAgICAgICAgICAgICAgICAgICAgICAgdHIuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgiJyArIGZpbGVUeXBlICsgJyIsIHRoaXMpJyk7CiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsKICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7CiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOwogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJuYW1lIl07CiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsKICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOwogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7CiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bImxhc3QudXBkYXRlIl07CiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsKICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOwogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7CiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bInByb3ZpZGVyLmF2YWlsYWJpbGl0eSJdOwogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7CiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsKICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7CiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOwogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJjb21wYXRpYmlsaXR5Il1bInhtbHR2LmNoYW5uZWxzIl07CiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsKICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOwogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7CiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bImNvbXBhdGliaWxpdHkiXVsieG1sdHYucHJvZ3JhbXMiXTsKICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOwogICAgICAgICAgICAgICAgICAgICAgICByb3dzLnB1c2godHIpOwogICAgICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAidXNlcnMiOgogICAgICAgICAgICAgICAgZmlsZVR5cGVzID0gbmV3IEFycmF5KCJ1c2VycyIpOwogICAgICAgICAgICAgICAgZmlsZVR5cGVzLmZvckVhY2goZmlsZVR5cGUgPT4gewogICAgICAgICAgICAgICAgICAgIGRhdGEgPSBTRVJWRVJbZmlsZVR5cGVdOwogICAgICAgICAgICAgICAgICAgIHZhciBrZXlzID0gZ2V0T3duT2JqUHJvcHMoZGF0YSk7CiAgICAgICAgICAgICAgICAgICAga2V5cy5mb3JFYWNoKGtleSA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgIHZhciB0ciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlRSIik7CiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmlkID0ga2V5OwogICAgICAgICAgICAgICAgICAgICAgICB0ci5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCInICsgZmlsZVR5cGUgKyAnIiwgdGhpcyknKTsKICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOwogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7CiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bImRhdGEiXVsidXNlcm5hbWUiXTsKICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOwogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7CiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOwogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsKICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9ICIqKioqKioiOwogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7CiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsKICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7CiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOwogICAgICAgICAgICAgICAgICAgICAgICBpZiAoZGF0YVtrZXldWyJkYXRhIl1bImF1dGhlbnRpY2F0aW9uLndlYiJdID09IHRydWUpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSAi4pyTIjsKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSAiLSI7CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOwogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7CiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOwogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsKICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGRhdGFba2V5XVsiZGF0YSJdWyJhdXRoZW50aWNhdGlvbi5wbXMiXSA9PSB0cnVlKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gIuKckyI7CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gIi0iOwogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsKICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOwogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7CiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChkYXRhW2tleV1bImRhdGEiXVsiYXV0aGVudGljYXRpb24ubTN1Il0gPT0gdHJ1ZSkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9ICLinJMiOwogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9ICItIjsKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7CiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsKICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7CiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOwogICAgICAgICAgICAgICAgICAgICAgICBpZiAoZGF0YVtrZXldWyJkYXRhIl1bImF1dGhlbnRpY2F0aW9uLnhtbCJdID09IHRydWUpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSAi4pyTIjsKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSAiLSI7CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOwogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7CiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOwogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsKICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGRhdGFba2V5XVsiZGF0YSJdWyJhdXRoZW50aWNhdGlvbi5hcGkiXSA9PSB0cnVlKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gIuKckyI7CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gIi0iOwogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsKICAgICAgICAgICAgICAgICAgICAgICAgcm93cy5wdXNoKHRyKTsKICAgICAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgIm1hcHBpbmciOgogICAgICAgICAgICAgICAgQlVMS19FRElUID0gZmFsc2U7CiAgICAgICAgICAgICAgICBjcmVhdGVTZWFyY2hPYmooKTsKICAgICAgICAgICAgICAgIGNoZWNrVW5kbygiZXBnTWFwcGluZyIpOwogICAgICAgICAgICAgICAgZGF0YSA9IFNFUlZFUlsieGVwZyJdWyJlcGdNYXBwaW5nIl07CiAgICAgICAgICAgICAgICB2YXIga2V5cyA9IGdldE93bk9ialByb3BzKGRhdGEpOwogICAgICAgICAgICAgICAga2V5cy5mb3JFYWNoKGtleSA9PiB7CiAgICAgICAgICAgICAgICAgICAgdmFyIHRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVFIiKTsKICAgICAgICAgICAgICAgICAgICB0ci5pZCA9IGtleTsKICAgICAgICAgICAgICAgICAgICBzd2l0Y2ggKGRhdGFba2V5XVsieC1hY3RpdmUiXSkgewogICAgICAgICAgICAgICAgICAgICAgICBjYXNlIHRydWU6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ci5jbGFzc05hbWUgPSAiYWN0aXZlRVBHIjsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICAgICAgICBjYXNlIGZhbHNlOgogICAgICAgICAgICAgICAgICAgICAgICAgICAgdHIuY2xhc3NOYW1lID0gIm5vdEFjdGl2ZUVQRyI7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgLy8gQnVsawogICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsKICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJCVUxLIjsKICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZmFsc2U7CiAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOwogICAgICAgICAgICAgICAgICAgIC8vIENoYW5uZWwgbnVtYmVyCiAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOwogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOwogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIklOUFVUQ0hBTk5FTCI7CiAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsieC1jaGFubmVsSUQiXTsKICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7CiAgICAgICAgICAgICAgICAgICAgLy8gTG9nbwogICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsKICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJJTUciOwogICAgICAgICAgICAgICAgICAgIGNlbGwuaW1hZ2VVUkwgPSBkYXRhW2tleV1bInR2Zy1sb2dvIl07CiAgICAgICAgICAgICAgICAgICAgdmFyIHRkID0gY2VsbC5jcmVhdGVDZWxsKCk7CiAgICAgICAgICAgICAgICAgICAgdGQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgibWFwcGluZyIsIHRoaXMpJyk7CiAgICAgICAgICAgICAgICAgICAgdGQuaWQgPSBrZXk7CiAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQodGQpOwogICAgICAgICAgICAgICAgICAgIC8vIENoYW5uZWwgbmFtZQogICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsKICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsKICAgICAgICAgICAgICAgICAgICBjZWxsLmNsYXNzTmFtZSA9IGRhdGFba2V5XVsieC1jYXRlZ29yeSJdOwogICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bIngtbmFtZSJdOwogICAgICAgICAgICAgICAgICAgIHZhciB0ZCA9IGNlbGwuY3JlYXRlQ2VsbCgpOwogICAgICAgICAgICAgICAgICAgIHRkLnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoIm1hcHBpbmciLCB0aGlzKScpOwogICAgICAgICAgICAgICAgICAgIHRkLmlkID0ga2V5OwogICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKHRkKTsKICAgICAgICAgICAgICAgICAgICAvLyBVcGRhdGUgY2hhbm5lbCBuYW1lIHJlZ2V4CiAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOwogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOwogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOwogICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bInVwZGF0ZS1jaGFubmVsLW5hbWUtcmVnZXgiXTsKICAgICAgICAgICAgICAgICAgICB2YXIgdGQgPSBjZWxsLmNyZWF0ZUNlbGwoKTsKICAgICAgICAgICAgICAgICAgICB0ZC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJtYXBwaW5nIiwgdGhpcyknKTsKICAgICAgICAgICAgICAgICAgICB0ZC5pZCA9IGtleTsKICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZCh0ZCk7CiAgICAgICAgICAgICAgICAgICAgLy8gUGxheWxpc3QKICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7CiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7CiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7CiAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGdldFZhbHVlRnJvbVByb3ZpZGVyRmlsZShkYXRhW2tleV1bIl9maWxlLm0zdS5pZCJdLCAibTN1IiwgIm5hbWUiKTsKICAgICAgICAgICAgICAgICAgICB2YXIgdGQgPSBjZWxsLmNyZWF0ZUNlbGwoKTsKICAgICAgICAgICAgICAgICAgICB0ZC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJtYXBwaW5nIiwgdGhpcyknKTsKICAgICAgICAgICAgICAgICAgICB0ZC5pZCA9IGtleTsKICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZCh0ZCk7CiAgICAgICAgICAgICAgICAgICAgLy8gR3JvdXAgKGdyb3VwLXRpdGxlKQogICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsKICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsKICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJ4LWdyb3VwLXRpdGxlIl07CiAgICAgICAgICAgICAgICAgICAgdmFyIHRkID0gY2VsbC5jcmVhdGVDZWxsKCk7CiAgICAgICAgICAgICAgICAgICAgdGQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgibWFwcGluZyIsIHRoaXMpJyk7CiAgICAgICAgICAgICAgICAgICAgdGQuaWQgPSBrZXk7CiAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQodGQpOwogICAgICAgICAgICAgICAgICAgIC8vIFhNTFRWIGZpbGUKICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7CiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7CiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7CiAgICAgICAgICAgICAgICAgICAgaWYgKGRhdGFba2V5XVsieC14bWx0di1maWxlIl0gIT0gIi0iKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBnZXRWYWx1ZUZyb21Qcm92aWRlckZpbGUoZGF0YVtrZXldWyJ4LXhtbHR2LWZpbGUiXSwgInhtbHR2IiwgIm5hbWUiKTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bIngteG1sdHYtZmlsZSJdOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB2YXIgdGQgPSBjZWxsLmNyZWF0ZUNlbGwoKTsKICAgICAgICAgICAgICAgICAgICB0ZC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJtYXBwaW5nIiwgdGhpcyknKTsKICAgICAgICAgICAgICAgICAgICB0ZC5pZCA9IGtleTsKICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZCh0ZCk7CiAgICAgICAgICAgICAgICAgICAgLy8gWE1MVFYgQ2hhbm5lbAogICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsKICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsKICAgICAgICAgICAgICAgICAgICB2YXIgdmFsdWUgPSBkYXRhW2tleV1bIngtbWFwcGluZyJdOwogICAgICAgICAgICAgICAgICAgIGlmICh2YWx1ZS5sZW5ndGggPiAyMCkgewogICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IGRhdGFba2V5XVsieC1tYXBwaW5nIl0uc3Vic3RyaW5nKDAsIDIwKSArICIuLi4iOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gdmFsdWU7CiAgICAgICAgICAgICAgICAgICAgdmFyIHRkID0gY2VsbC5jcmVhdGVDZWxsKCk7CiAgICAgICAgICAgICAgICAgICAgdGQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgibWFwcGluZyIsIHRoaXMpJyk7CiAgICAgICAgICAgICAgICAgICAgdGQuaWQgPSBrZXk7CiAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQodGQpOwogICAgICAgICAgICAgICAgICAgIC8vIFRpbWVTaGlmdAogICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsKICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsKICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJ4LXRpbWVzaGlmdCJdOwogICAgICAgICAgICAgICAgICAgIHZhciB0ZCA9IGNlbGwuY3JlYXRlQ2VsbCgpOwogICAgICAgICAgICAgICAgICAgIHRkLnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoIm1hcHBpbmciLCB0aGlzKScpOwogICAgICAgICAgICAgICAgICAgIHRkLmlkID0ga2V5OwogICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKHRkKTsKICAgICAgICAgICAgICAgICAgICByb3dzLnB1c2godHIpOwogICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAic2V0dGluZ3MiOgogICAgICAgICAgICAgICAgYWxlcnQoKTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgfQogICAgICAgIHJldHVybiByb3dzOwogICAgfQp9CmNsYXNzIENlbGwgewogICAgY3JlYXRlQ2VsbCgpIHsKICAgICAgICBsZXQgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOwogICAgICAgIGlmICh0aGlzLmNoaWxkID09IHRydWUpIHsKICAgICAgICAgICAgdmFyIGVsZW1lbnQ7CiAgICAgICAgICAgIHN3aXRjaCAodGhpcy5jaGlsZFR5cGUpIHsKICAgICAgICAgICAgICAgIGNhc2UgIlAiOgogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KHRoaXMuY2hpbGRUeXBlKTsKICAgICAgICAgICAgICAgICAgICBlbGVtZW50LmlubmVySFRNTCA9IHRoaXMudmFsdWU7CiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC5jbGFzc05hbWUgPSB0aGlzLmNsYXNzTmFtZTsKICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgIGNhc2UgIklOUFVUIjoKICAgICAgICAgICAgICAgICAgICBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCh0aGlzLmNoaWxkVHlwZSk7CiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC52YWx1ZSA9IHRoaXMudmFsdWU7CiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC50eXBlID0gInRleHQiOwogICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgY2FzZSAiSU5QVVRDSEFOTkVMIjoKICAgICAgICAgICAgICAgICAgICBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiSU5QVVQiKTsKICAgICAgICAgICAgICAgICAgICBlbGVtZW50LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2c2NyaXB0OiBjaGFuZ2VDaGFubmVsTnVtYmVyKHRoaXMpIik7CiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC52YWx1ZSA9IHRoaXMudmFsdWU7CiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC50eXBlID0gInRleHQiOwogICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgY2FzZSAiQlVMSyI6CiAgICAgICAgICAgICAgICAgICAgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIklOUFVUIik7CiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC5jaGVja2VkID0gdGhpcy52YWx1ZTsKICAgICAgICAgICAgICAgICAgICBlbGVtZW50LnR5cGUgPSAiY2hlY2tib3giOwogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQuY2xhc3NOYW1lID0gImJ1bGsgaGlkZUJ1bGsiOwogICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgY2FzZSAiQlVMS19IRUFEIjoKICAgICAgICAgICAgICAgICAgICBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiSU5QVVQiKTsKICAgICAgICAgICAgICAgICAgICBlbGVtZW50LmNoZWNrZWQgPSB0aGlzLnZhbHVlOwogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQudHlwZSA9ICJjaGVja2JveCI7CiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC5jbGFzc05hbWUgPSAiYnVsayBoaWRlQnVsayI7CiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAiamF2YXNjcmlwdDogc2VsZWN0QWxsQ2hhbm5lbHMoKSIpOwogICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgY2FzZSAiSU1HIjoKICAgICAgICAgICAgICAgICAgICBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCh0aGlzLmNoaWxkVHlwZSk7CiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC5zZXRBdHRyaWJ1dGUoInNyYyIsIHRoaXMuaW1hZ2VVUkwpOwogICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLmltYWdlVVJMICE9ICIiKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGVsZW1lbnQuc2V0QXR0cmlidXRlKCJvbmVycm9yIiwgImphdmFzY3JpcHQ6IHRoaXMub25lcnJvcj1udWxsO3RoaXMuc3JjPScnIik7CiAgICAgICAgICAgICAgICAgICAgICAgIC8vb25lcnJvcj0idGhpcy5vbmVycm9yPW51bGw7dGhpcy5zcmM9J21pc3NpbmcuZ2lmJzsiCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICAgIHRkLmFwcGVuZENoaWxkKGVsZW1lbnQpOwogICAgICAgIH0KICAgICAgICBlbHNlIHsKICAgICAgICAgICAgdGQuaW5uZXJIVE1MID0gdGhpcy52YWx1ZTsKICAgICAgICB9CiAgICAgICAgaWYgKHRoaXMub25jbGljayA9PSB0cnVlKSB7CiAgICAgICAgICAgIHRkLnNldEF0dHJpYnV0ZSgib25jbGljayIsIHRoaXMub25jbGlja0Z1bmN0aW9uKTsKICAgICAgICAgICAgdGQuY2xhc3NOYW1lID0gInBvaW50ZXIiOwogICAgICAgIH0KICAgICAgICBpZiAodGhpcy50ZENsYXNzTmFtZSAhPSB1bmRlZmluZWQpIHsKICAgICAgICAgICAgdGQuY2xhc3NOYW1lID0gdGhpcy50ZENsYXNzTmFtZTsKICAgICAgICB9CiAgICAgICAgcmV0dXJuIHRkOwogICAgfQp9CmNsYXNzIFNob3dDb250ZW50IGV4dGVuZHMgQ29udGVudCB7CiAgICBjb25zdHJ1Y3RvcihtZW51SUQpIHsKICAgICAgICBzdXBlcigpOwogICAgICAgIHRoaXMubWVudUlEID0gbWVudUlEOwogICAgfQogICAgY3JlYXRlSW5wdXQodHlwZSwgbmFtZSwgdmFsdWUpIHsKICAgICAgICBsZXQgaW5wdXQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJJTlBVVCIpOwogICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgidHlwZSIsIHR5cGUpOwogICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgibmFtZSIsIG5hbWUpOwogICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgidmFsdWUiLCB2YWx1ZSk7CiAgICAgICAgcmV0dXJuIGlucHV0OwogICAgfQogICAgc2hvdygpIHsKICAgICAgICBDT0xVTU5fVE9fU09SVCA9IC0xOwogICAgICAgIC8vIERlbGV0ZSBvbGQgY29udGVudAogICAgICAgIGxldCBkb2MgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCh0aGlzLkRvY3VtZW50SUQpOwogICAgICAgIGRvYy5pbm5lckhUTUwgPSAiIjsKICAgICAgICBzaG93UHJldmlldyhmYWxzZSk7CiAgICAgICAgLy8gSGVhZGxpbmUKICAgICAgICBsZXQgaGVhZGxpbmUgPSBtZW51SXRlbXNbdGhpcy5tZW51SURdLmhlYWRsaW5lOwogICAgICAgIGxldCBtZW51S2V5ID0gbWVudUl0ZW1zW3RoaXMubWVudUlEXS5tZW51S2V5OwogICAgICAgIGxldCBoID0gdGhpcy5jcmVhdGVIZWFkbGluZShoZWFkbGluZSk7CiAgICAgICAgZG9jLmFwcGVuZENoaWxkKGgpOwogICAgICAgIGxldCBociA9IHRoaXMuY3JlYXRlSFIoKTsKICAgICAgICBkb2MuYXBwZW5kQ2hpbGQoaHIpOwogICAgICAgIC8vIEludGVyYWN0aW9uCiAgICAgICAgbGV0IGRpdiA9IHRoaXMuY3JlYXRlSW50ZXJhY3Rpb24oKTsKICAgICAgICBkb2MuYXBwZW5kQ2hpbGQoZGl2KTsKICAgICAgICBsZXQgaW50ZXJhY3Rpb24gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCh0aGlzLmludGVyYWN0aW9uSUQpOwogICAgICAgIHN3aXRjaCAobWVudUtleSkgewogICAgICAgICAgICBjYXNlICJwbGF5bGlzdCI6CiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSB0aGlzLmNyZWF0ZUlucHV0KCJidXR0b24iLCBtZW51S2V5LCAie3suYnV0dG9uLm5ld319Iik7CiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoImlkIiwgIi0iKTsKICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoInBsYXlsaXN0IiknKTsKICAgICAgICAgICAgICAgIGludGVyYWN0aW9uLmFwcGVuZENoaWxkKGlucHV0KTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJmaWx0ZXIiOgogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gdGhpcy5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgbWVudUtleSwgInt7LmJ1dHRvbi5uZXd9fSIpOwogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJpZCIsIC0xKTsKICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoImZpbHRlciIsIHRoaXMpJyk7CiAgICAgICAgICAgICAgICBpbnRlcmFjdGlvbi5hcHBlbmRDaGlsZChpbnB1dCk7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAieG1sdHYiOgogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gdGhpcy5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgbWVudUtleSwgInt7LmJ1dHRvbi5uZXd9fSIpOwogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJpZCIsICJ4bWx0diIpOwogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgieG1sdHYiKScpOwogICAgICAgICAgICAgICAgaW50ZXJhY3Rpb24uYXBwZW5kQ2hpbGQoaW5wdXQpOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgInVzZXJzIjoKICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IHRoaXMuY3JlYXRlSW5wdXQoImJ1dHRvbiIsIG1lbnVLZXksICJ7ey5idXR0b24ubmV3fX0iKTsKICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgiaWQiLCAidXNlcnMiKTsKICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoInVzZXJzIiknKTsKICAgICAgICAgICAgICAgIGludGVyYWN0aW9uLmFwcGVuZENoaWxkKGlucHV0KTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJtYXBwaW5nIjoKICAgICAgICAgICAgICAgIHNob3dFbGVtZW50KCJsb2FkaW5nIiwgdHJ1ZSk7CiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSB0aGlzLmNyZWF0ZUlucHV0KCJidXR0b24iLCBtZW51S2V5LCAie3suYnV0dG9uLnNhdmV9fSIpOwogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoIm1hcHBpbmciLCAiIiwgIiIpJyk7CiAgICAgICAgICAgICAgICBpbnRlcmFjdGlvbi5hcHBlbmRDaGlsZChpbnB1dCk7CiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSB0aGlzLmNyZWF0ZUlucHV0KCJidXR0b24iLCBtZW51S2V5LCAie3suYnV0dG9uLmJ1bGtFZGl0fX0iKTsKICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBidWxrRWRpdCgpJyk7CiAgICAgICAgICAgICAgICBpbnRlcmFjdGlvbi5hcHBlbmRDaGlsZChpbnB1dCk7CiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSB0aGlzLmNyZWF0ZUlucHV0KCJzZWFyY2giLCAic2VhcmNoIiwgIiIpOwogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJpZCIsICJzZWFyY2hNYXBwaW5nIik7CiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LmJ1dHRvbi5zZWFyY2h9fSIpOwogICAgICAgICAgICAgICAgaW5wdXQuY2xhc3NOYW1lID0gInNlYXJjaCI7CiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgJ2phdmFzY3JpcHQ6IHNlYXJjaEluTWFwcGluZygpJyk7CiAgICAgICAgICAgICAgICBpbnRlcmFjdGlvbi5hcHBlbmRDaGlsZChpbnB1dCk7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAic2V0dGluZ3MiOgogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gdGhpcy5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgbWVudUtleSwgInt7LmJ1dHRvbi5zYXZlfX0iKTsKICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBzYXZlU2V0dGluZ3MoKTsnKTsKICAgICAgICAgICAgICAgIGludGVyYWN0aW9uLmFwcGVuZENoaWxkKGlucHV0KTsKICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IHRoaXMuY3JlYXRlSW5wdXQoImJ1dHRvbiIsIG1lbnVLZXksICJ7ey5idXR0b24uYmFja3VwfX0iKTsKICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBiYWNrdXAoKTsnKTsKICAgICAgICAgICAgICAgIGludGVyYWN0aW9uLmFwcGVuZENoaWxkKGlucHV0KTsKICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IHRoaXMuY3JlYXRlSW5wdXQoImJ1dHRvbiIsIG1lbnVLZXksICJ7ey5idXR0b24ucmVzdG9yZX19Iik7CiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogcmVzdG9yZSgpOycpOwogICAgICAgICAgICAgICAgaW50ZXJhY3Rpb24uYXBwZW5kQ2hpbGQoaW5wdXQpOwogICAgICAgICAgICAgICAgdmFyIHdyYXBwZXIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJESVYiKTsKICAgICAgICAgICAgICAgIHdyYXBwZXIuc2V0QXR0cmlidXRlKCJpZCIsICJib3gtd3JhcHBlciIpOwogICAgICAgICAgICAgICAgZG9jLmFwcGVuZENoaWxkKHdyYXBwZXIpOwogICAgICAgICAgICAgICAgdGhpcy5EaXZJRCA9ICJjb250ZW50X3NldHRpbmdzIjsKICAgICAgICAgICAgICAgIHZhciBzZXR0aW5ncyA9IHRoaXMuY3JlYXRlRElWKCk7CiAgICAgICAgICAgICAgICB3cmFwcGVyLmFwcGVuZENoaWxkKHNldHRpbmdzKTsKICAgICAgICAgICAgICAgIHNob3dTZXR0aW5ncygpOwogICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICBjYXNlICJsb2ciOgogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gdGhpcy5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgbWVudUtleSwgInt7LmJ1dHRvbi5yZXNldExvZ3N9fSIpOwogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IHJlc2V0TG9ncygpOycpOwogICAgICAgICAgICAgICAgaW50ZXJhY3Rpb24uYXBwZW5kQ2hpbGQoaW5wdXQpOwogICAgICAgICAgICAgICAgdmFyIHdyYXBwZXIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJESVYiKTsKICAgICAgICAgICAgICAgIHdyYXBwZXIuc2V0QXR0cmlidXRlKCJpZCIsICJib3gtd3JhcHBlciIpOwogICAgICAgICAgICAgICAgZG9jLmFwcGVuZENoaWxkKHdyYXBwZXIpOwogICAgICAgICAgICAgICAgdGhpcy5EaXZJRCA9ICJjb250ZW50X2xvZyI7CiAgICAgICAgICAgICAgICB2YXIgbG9ncyA9IHRoaXMuY3JlYXRlRElWKCk7CiAgICAgICAgICAgICAgICB3cmFwcGVyLmFwcGVuZENoaWxkKGxvZ3MpOwogICAgICAgICAgICAgICAgc2hvd0xvZ3ModHJ1ZSk7CiAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgIGNhc2UgImxvZ291dCI6CiAgICAgICAgICAgICAgICBsb2NhdGlvbi5yZWxvYWQoKTsKICAgICAgICAgICAgICAgIGRvY3VtZW50LmNvb2tpZSA9ICJUb2tlbj0gOyBleHBpcmVzID0gVGh1LCAwMSBKYW4gMTk3MCAwMDowMDowMCBHTVQiOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICB9CiAgICAgICAgLy8gQ3JlYXRlIHRhYmxlIChpZiBuZWVkZWQpCiAgICAgICAgdmFyIHRhYmxlSGVhZGVyID0gbWVudUl0ZW1zW3RoaXMubWVudUlEXS50YWJsZUhlYWRlcjsKICAgICAgICBpZiAodGFibGVIZWFkZXIubGVuZ3RoID4gMCkgewogICAgICAgICAgICB2YXIgd3JhcHBlciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIkRJViIpOwogICAgICAgICAgICBkb2MuYXBwZW5kQ2hpbGQod3JhcHBlcik7CiAgICAgICAgICAgIHdyYXBwZXIuc2V0QXR0cmlidXRlKCJpZCIsICJib3gtd3JhcHBlciIpOwogICAgICAgICAgICB2YXIgdGFibGUgPSB0aGlzLmNyZWF0ZVRBQkxFKCk7CiAgICAgICAgICAgIHdyYXBwZXIuYXBwZW5kQ2hpbGQodGFibGUpOwogICAgICAgICAgICB2YXIgaGVhZGVyID0gdGhpcy5jcmVhdGVUYWJsZVJvdygpOwogICAgICAgICAgICB0YWJsZS5hcHBlbmRDaGlsZChoZWFkZXIpOwogICAgICAgICAgICAvLyBUYWJsZSBoZWFkZXIKICAgICAgICAgICAgdGFibGVIZWFkZXIuZm9yRWFjaChlbGVtZW50ID0+IHsKICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsKICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOwogICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7CiAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZWxlbWVudDsKICAgICAgICAgICAgICAgIGlmIChlbGVtZW50ID09ICJCVUxLIikgewogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIkJVTEtfSEVBRCI7CiAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGZhbHNlOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgaWYgKG1lbnVLZXkgPT0gIm1hcHBpbmciKSB7CiAgICAgICAgICAgICAgICAgICAgaWYgKGVsZW1lbnQgPT0gInt7Lm1hcHBpbmcudGFibGUuY2hOb319IikgewogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLm9uY2xpY2sgPSB0cnVlOwogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLm9uY2xpY2tGdW5jdGlvbiA9ICJqYXZhc2NyaXB0OiBzb3J0VGFibGUoMSk7IjsKICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC50ZENsYXNzTmFtZSA9ICJzb3J0VGhpcyI7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIGlmIChlbGVtZW50ID09ICJ7ey5tYXBwaW5nLnRhYmxlLmNoYW5uZWxOYW1lfX0iKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwub25jbGljayA9IHRydWU7CiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwub25jbGlja0Z1bmN0aW9uID0gImphdmFzY3JpcHQ6IHNvcnRUYWJsZSgzKTsiOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBpZiAoZWxlbWVudCA9PSAie3subWFwcGluZy50YWJsZS51cGRhdGVDaGFubmVsTmFtZVJlZ2V4fX0iKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwub25jbGljayA9IHRydWU7CiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwub25jbGlja0Z1bmN0aW9uID0gImphdmFzY3JpcHQ6IHNvcnRUYWJsZSg0KTsiOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBpZiAoZWxlbWVudCA9PSAie3subWFwcGluZy50YWJsZS5wbGF5bGlzdH19IikgewogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLm9uY2xpY2sgPSB0cnVlOwogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLm9uY2xpY2tGdW5jdGlvbiA9ICJqYXZhc2NyaXB0OiBzb3J0VGFibGUoNSk7IjsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgaWYgKGVsZW1lbnQgPT0gInt7Lm1hcHBpbmcudGFibGUuZ3JvdXBUaXRsZX19IikgewogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLm9uY2xpY2sgPSB0cnVlOwogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLm9uY2xpY2tGdW5jdGlvbiA9ICJqYXZhc2NyaXB0OiBzb3J0VGFibGUoNik7IjsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgaWYgKGVsZW1lbnQgPT0gInt7Lm1hcHBpbmcudGFibGUudGltZXNoaWZ0fX0iKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwub25jbGljayA9IHRydWU7CiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwub25jbGlja0Z1bmN0aW9uID0gImphdmFzY3JpcHQ6IHNvcnRUYWJsZSg5KTsiOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGlmIChtZW51S2V5ID09ICJmaWx0ZXIiKSB7CiAgICAgICAgICAgICAgICAgICAgaWYgKGVsZW1lbnQgPT0gInt7LmZpbHRlci50YWJsZS5zdGFydGluZ0NoYW5uZWx9fSIpIHsKICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5vbmNsaWNrID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5vbmNsaWNrRnVuY3Rpb24gPSAiamF2YXNjcmlwdDogc29ydFRhYmxlKDApOyI7CiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudGRDbGFzc05hbWUgPSAic29ydFRoaXMiOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBpZiAoZWxlbWVudCA9PSAie3suZmlsdGVyLnRhYmxlLm5hbWV9fSIpIHsKICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5vbmNsaWNrID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5vbmNsaWNrRnVuY3Rpb24gPSAiamF2YXNjcmlwdDogc29ydFRhYmxlKDEpOyI7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIGlmIChlbGVtZW50ID09ICJ7ey5maWx0ZXIudGFibGUudHlwZX19IikgewogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLm9uY2xpY2sgPSB0cnVlOwogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLm9uY2xpY2tGdW5jdGlvbiA9ICJqYXZhc2NyaXB0OiBzb3J0VGFibGUoMik7IjsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgaWYgKGVsZW1lbnQgPT0gInt7LmZpbHRlci50YWJsZS5maWx0ZXJ9fSIpIHsKICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5vbmNsaWNrID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5vbmNsaWNrRnVuY3Rpb24gPSAiamF2YXNjcmlwdDogc29ydFRhYmxlKDMpOyI7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgaGVhZGVyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsKICAgICAgICAgICAgfSk7CiAgICAgICAgICAgIHRhYmxlLmFwcGVuZENoaWxkKGhlYWRlcik7CiAgICAgICAgICAgIC8vIENvbnRlbnQgb2YgdGhlIHRhYmxlCiAgICAgICAgICAgIHZhciByb3dzID0gdGhpcy5jcmVhdGVUYWJsZUNvbnRlbnQobWVudUtleSk7CiAgICAgICAgICAgIHJvd3MuZm9yRWFjaCh0ciA9PiB7CiAgICAgICAgICAgICAgICB0YWJsZS5hcHBlbmRDaGlsZCh0cik7CiAgICAgICAgICAgIH0pOwogICAgICAgIH0KICAgICAgICBzd2l0Y2ggKG1lbnVLZXkpIHsKICAgICAgICAgICAgY2FzZSAibWFwcGluZyI6CiAgICAgICAgICAgICAgICBzb3J0VGFibGUoMSk7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAiZmlsdGVyIjoKICAgICAgICAgICAgICAgIHNob3dQcmV2aWV3KHRydWUpOwogICAgICAgICAgICAgICAgc29ydFRhYmxlKDApOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICAgICBDT0xVTU5fVE9fU09SVCA9IC0xOwogICAgICAgICAgICAgICAgc29ydFRhYmxlKDApOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgfQogICAgICAgIHNob3dFbGVtZW50KCJsb2FkaW5nIiwgZmFsc2UpOwogICAgfQp9CmZ1bmN0aW9uIFBhZ2VSZWFkeSgpIHsKICAgIGxldCBzZXJ2ZXIgPSBuZXcgU2VydmVyKCJnZXRTZXJ2ZXJDb25maWciKTsKICAgIHNlcnZlci5yZXF1ZXN0KHt9KTsKICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJyZXNpemUiLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgY2FsY3VsYXRlV3JhcHBlckhlaWdodCgpOwogICAgfSwgdHJ1ZSk7CiAgICBzZXRJbnRlcnZhbChmdW5jdGlvbiAoKSB7CiAgICAgICAgdXBkYXRlTG9nKCk7CiAgICB9LCAxMDAwMCk7CiAgICByZXR1cm47Cn0KZnVuY3Rpb24gY3JlYXRlTGF5b3V0KCkgewogICAgLy8gQ2xpZW50IEluZm8KICAgIGxldCBvYmogPSBTRVJWRVJbImNsaWVudEluZm8iXTsKICAgIGxldCBrZXlzID0gZ2V0T3duT2JqUHJvcHMob2JqKTsKICAgIGZvciAodmFyIGkgPSAwOyBpIDwga2V5cy5sZW5ndGg7IGkrKykgewogICAgICAgIGlmIChkb2N1bWVudC5nZXRFbGVtZW50QnlJZChrZXlzW2ldKSkgewogICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChrZXlzW2ldKS5pbm5lckhUTUwgPSBvYmpba2V5c1tpXV07CiAgICAgICAgICAgIGlmIChsb2NhdGlvbi5wcm90b2NvbCA9PT0gJ2h0dHBzOicpIHsKICAgICAgICAgICAgICAgIGlmIChrZXlzW2ldID09PSAieGVwZy11cmwiIHx8IGtleXNbaV0gPT09ICJtM3UtdXJsIiB8fCBrZXlzW2ldID09PSAiRFZSIikgewogICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGtleXNbaV0pLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgZnVuY3Rpb24gKGV2ZW50KSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHRhcmdldCA9IGV2ZW50LnRhcmdldDsKICAgICAgICAgICAgICAgICAgICAgICAgbmF2aWdhdG9yLmNsaXBib2FyZC53cml0ZVRleHQodGFyZ2V0LmlubmVyVGV4dC5zcGxpdCgiICIpWzBdKS50aGVuKCgpID0+IHsgfSk7CiAgICAgICAgICAgICAgICAgICAgfSwgZmFsc2UpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQogICAgaWYgKCFkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibWFpbi1tZW51IikpIHsKICAgICAgICByZXR1cm47CiAgICB9CiAgICAvLyBDcmVhdGUgbWVudQogICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm1haW4tbWVudSIpLmlubmVySFRNTCA9ICIiOwogICAgZm9yIChsZXQgaSA9IDA7IGkgPCBtZW51SXRlbXMubGVuZ3RoOyBpKyspIHsKICAgICAgICBtZW51SXRlbXNbaV0uaWQgPSBpOwogICAgICAgIHN3aXRjaCAobWVudUl0ZW1zW2ldWyJtZW51S2V5Il0pIHsKICAgICAgICAgICAgY2FzZSAidXNlcnMiOgogICAgICAgICAgICBjYXNlICJsb2dvdXQiOgogICAgICAgICAgICAgICAgaWYgKFNFUlZFUlsic2V0dGluZ3MiXVsiYXV0aGVudGljYXRpb24ud2ViIl0gPT0gdHJ1ZSkgewogICAgICAgICAgICAgICAgICAgIG1lbnVJdGVtc1tpXS5jcmVhdGVJdGVtKCk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAibWFwcGluZyI6CiAgICAgICAgICAgIGNhc2UgInhtbHR2IjoKICAgICAgICAgICAgICAgIGlmIChTRVJWRVJbImNsaWVudEluZm8iXVsiZXBnU291cmNlIl0gPT0gIlhFUEciKSB7CiAgICAgICAgICAgICAgICAgICAgbWVudUl0ZW1zW2ldLmNyZWF0ZUl0ZW0oKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAgICAgbWVudUl0ZW1zW2ldLmNyZWF0ZUl0ZW0oKTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgIH0KICAgIH0KICAgIHJldHVybjsKfQpmdW5jdGlvbiBvcGVuVGhpc01lbnUoZWxlbWVudCkgewogICAgbGV0IGlkID0gZWxlbWVudC5pZDsKICAgIGxldCBjb250ZW50ID0gbmV3IFNob3dDb250ZW50KGlkKTsKICAgIGNvbnRlbnQuc2hvdygpOwogICAgY2FsY3VsYXRlV3JhcHBlckhlaWdodCgpOwogICAgcmV0dXJuOwp9CmNsYXNzIFBvcHVwV2luZG93IHsKICAgIGNvbnN0cnVjdG9yKCkgewogICAgICAgIHRoaXMuRG9jdW1lbnRJRCA9ICJwb3B1cC1jdXN0b20iOwogICAgICAgIHRoaXMuSW50ZXJhY3Rpb25JRCA9ICJpbnRlcmFjdGlvbiI7CiAgICAgICAgdGhpcy5kb2MgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCh0aGlzLkRvY3VtZW50SUQpOwogICAgfQogICAgY3JlYXRlVGl0bGUodGl0bGUpIHsKICAgICAgICBsZXQgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOwogICAgICAgIHRkLmNsYXNzTmFtZSA9ICJsZWZ0IjsKICAgICAgICB0ZC5pbm5lckhUTUwgPSB0aXRsZSArICI6IjsKICAgICAgICByZXR1cm4gdGQ7CiAgICB9CiAgICBjcmVhdGVDb250ZW50KGVsZW1lbnQpIHsKICAgICAgICBsZXQgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOwogICAgICAgIHRkLmFwcGVuZENoaWxkKGVsZW1lbnQpOwogICAgICAgIHJldHVybiB0ZDsKICAgIH0KICAgIGNyZWF0ZUludGVyYWN0aW9uKCkgewogICAgICAgIGxldCBkaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsKICAgICAgICBkaXYuc2V0QXR0cmlidXRlKCJpZCIsICJwb3B1cC1pbnRlcmFjdGlvbiIpOwogICAgICAgIGRpdi5jbGFzc05hbWUgPSAiaW50ZXJhY3Rpb24iOwogICAgICAgIHRoaXMuZG9jLmFwcGVuZENoaWxkKGRpdik7CiAgICB9Cn0KY2xhc3MgUG9wdXBDb250ZW50IGV4dGVuZHMgUG9wdXBXaW5kb3cgewogICAgY29uc3RydWN0b3IoKSB7CiAgICAgICAgc3VwZXIoLi4uYXJndW1lbnRzKTsKICAgICAgICB0aGlzLnRhYmxlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEFCTEUiKTsKICAgIH0KICAgIGNyZWF0ZUhlYWRsaW5lKGhlYWRsaW5lKSB7CiAgICAgICAgdGhpcy5kb2MuaW5uZXJIVE1MID0gIiI7CiAgICAgICAgdmFyIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJIMyIpOwogICAgICAgIGVsZW1lbnQuaW5uZXJIVE1MID0gaGVhZGxpbmUudG9VcHBlckNhc2UoKTsKICAgICAgICB0aGlzLmRvYy5hcHBlbmRDaGlsZChlbGVtZW50KTsKICAgICAgICAvLyBDcmVhdGUgdGFibGUKICAgICAgICB0aGlzLnRhYmxlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEFCTEUiKTsKICAgICAgICB0aGlzLmRvYy5hcHBlbmRDaGlsZCh0aGlzLnRhYmxlKTsKICAgIH0KICAgIGFwcGVuZFJvdyh0aXRsZSwgZWxlbWVudCkgewogICAgICAgIGxldCB0ciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlRSIik7CiAgICAgICAgLy8gVGl0bGUKICAgICAgICBpZiAodGl0bGUubGVuZ3RoICE9IDApIHsKICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQodGhpcy5jcmVhdGVUaXRsZSh0aXRsZSkpOwogICAgICAgIH0KICAgICAgICAvLyBDb250ZW50CiAgICAgICAgdHIuYXBwZW5kQ2hpbGQodGhpcy5jcmVhdGVDb250ZW50KGVsZW1lbnQpKTsKICAgICAgICB0aGlzLnRhYmxlLmFwcGVuZENoaWxkKHRyKTsKICAgIH0KICAgIGNyZWF0ZUlucHV0KHR5cGUsIG5hbWUsIHZhbHVlKSB7CiAgICAgICAgbGV0IGlucHV0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiSU5QVVQiKTsKICAgICAgICBpZiAodmFsdWUgPT0gdW5kZWZpbmVkKSB7CiAgICAgICAgICAgIHZhbHVlID0gIiI7CiAgICAgICAgfQogICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgidHlwZSIsIHR5cGUpOwogICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgibmFtZSIsIG5hbWUpOwogICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgidmFsdWUiLCB2YWx1ZSk7CiAgICAgICAgcmV0dXJuIGlucHV0OwogICAgfQogICAgY3JlYXRlQ2hlY2tib3gobmFtZSkgewogICAgICAgIGxldCBpbnB1dCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIklOUFVUIik7CiAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJ0eXBlIiwgImNoZWNrYm94Iik7CiAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJuYW1lIiwgbmFtZSk7CiAgICAgICAgcmV0dXJuIGlucHV0OwogICAgfQogICAgLy8gQ3JlYXRlcyBhIHNlbGVjdGlvbiBvZiBtdWx0aXBsZSBvcHRpb25zIHZhbHVlcyB3aXRoIHRleHQgZGVzY3JpcHRpb25zCiAgICBjcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCBzZXQsIGRiS2V5KSB7CiAgICAgICAgbGV0IHNlbGVjdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlNFTEVDVCIpOwogICAgICAgIHNlbGVjdC5zZXRBdHRyaWJ1dGUoIm5hbWUiLCBkYktleSk7CiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0ZXh0Lmxlbmd0aDsgaSsrKSB7CiAgICAgICAgICAgIGxldCBvcHRpb24gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJPUFRJT04iKTsKICAgICAgICAgICAgb3B0aW9uLnNldEF0dHJpYnV0ZSgidmFsdWUiLCB2YWx1ZXNbaV0pOwogICAgICAgICAgICBvcHRpb24uaW5uZXJUZXh0ID0gdGV4dFtpXTsKICAgICAgICAgICAgc2VsZWN0LmFwcGVuZENoaWxkKG9wdGlvbik7CiAgICAgICAgfQogICAgICAgIGlmIChzZXQgIT0gIiIpIHsKICAgICAgICAgICAgc2VsZWN0LnZhbHVlID0gc2V0OwogICAgICAgIH0KICAgICAgICBpZiAoc2V0ID09IHVuZGVmaW5lZCkgewogICAgICAgICAgICBzZWxlY3QudmFsdWUgPSB2YWx1ZXNbMF07CiAgICAgICAgfQogICAgICAgIHJldHVybiBzZWxlY3Q7CiAgICB9CiAgICBzZWxlY3RPcHRpb24oc2VsZWN0LCB2YWx1ZSkgewogICAgICAgIC8vc2VsZWN0LnNlbGVjdGVkT3B0aW9ucyA9IHZhbHVlCiAgICAgICAgbGV0IHMgPSBzZWxlY3Q7CiAgICAgICAgcy5vcHRpb25zW3Muc2VsZWN0ZWRJbmRleF0udmFsdWUgPSB2YWx1ZTsKICAgICAgICByZXR1cm4gc2VsZWN0OwogICAgfQogICAgZGVzY3JpcHRpb24odmFsdWUpIHsKICAgICAgICBsZXQgdHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJUUiIpOwogICAgICAgIGxldCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7CiAgICAgICAgbGV0IHNwYW4gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJQUkUiKTsKICAgICAgICBzcGFuLmlubmVySFRNTCA9IHZhbHVlOwogICAgICAgIHRyLmFwcGVuZENoaWxkKHRkKTsKICAgICAgICB0ci5hcHBlbmRDaGlsZCh0aGlzLmNyZWF0ZUNvbnRlbnQoc3BhbikpOwogICAgICAgIHRoaXMudGFibGUuYXBwZW5kQ2hpbGQodHIpOwogICAgfQogICAgLy8gSW50ZXJhY3Rpb24KICAgIGFkZEludGVyYWN0aW9uKGVsZW1lbnQpIHsKICAgICAgICBsZXQgaW50ZXJhY3Rpb24gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicG9wdXAtaW50ZXJhY3Rpb24iKTsKICAgICAgICBpbnRlcmFjdGlvbi5hcHBlbmRDaGlsZChlbGVtZW50KTsKICAgIH0KfQpmdW5jdGlvbiBvcGVuUG9wVXAoZGF0YVR5cGUsIGVsZW1lbnQpIHsKICAgIGxldCBkYXRhID0ge307CiAgICBsZXQgaWQ7CiAgICBzd2l0Y2ggKGVsZW1lbnQpIHsKICAgICAgICBjYXNlIHVuZGVmaW5lZDoKICAgICAgICAgICAgc3dpdGNoIChkYXRhVHlwZSkgewogICAgICAgICAgICAgICAgY2FzZSAiZ3JvdXAtdGl0bGUiOgogICAgICAgICAgICAgICAgICAgIGlmIChpZCA9PSB1bmRlZmluZWQpIHsKICAgICAgICAgICAgICAgICAgICAgICAgaWQgPSAtMTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgZGF0YSA9IGdldExvY2FsRGF0YSgiZmlsdGVyIiwgaWQpOwogICAgICAgICAgICAgICAgICAgIGRhdGFbInR5cGUiXSA9ICJncm91cC10aXRsZSI7CiAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICBjYXNlICJjdXN0b20tZmlsdGVyIjoKICAgICAgICAgICAgICAgICAgICBpZiAoaWQgPT0gdW5kZWZpbmVkKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGlkID0gLTE7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIGRhdGEgPSBnZXRMb2NhbERhdGEoImZpbHRlciIsIGlkKTsKICAgICAgICAgICAgICAgICAgICBkYXRhWyJ0eXBlIl0gPSAiY3VzdG9tLWZpbHRlciI7CiAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAgICAgICAgIGRhdGFbImlkLnByb3ZpZGVyIl0gPSAiLSI7CiAgICAgICAgICAgICAgICAgICAgZGF0YVsidHlwZSJdID0gZGF0YVR5cGU7CiAgICAgICAgICAgICAgICAgICAgaWQgPSAiLSI7CiAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgaWQgPSBlbGVtZW50LmlkOwogICAgICAgICAgICBkYXRhID0gZ2V0TG9jYWxEYXRhKGRhdGFUeXBlLCBpZCk7CiAgICAgICAgICAgIGJyZWFrOwogICAgfQogICAgbGV0IGNvbnRlbnQgPSBuZXcgUG9wdXBDb250ZW50KCk7CiAgICBzd2l0Y2ggKGRhdGFUeXBlKSB7CiAgICAgICAgY2FzZSAicGxheWxpc3QiOgogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUhlYWRsaW5lKCJ7ey5wbGF5bGlzdC5wbGF5bGlzdFR5cGUudGl0bGV9fSIpOwogICAgICAgICAgICAvLyBUeXBlCiAgICAgICAgICAgIHZhciB0ZXh0ID0gWyJNM1UiLCAiSERIb21lUnVuIl07CiAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBbImphdmFzY3JpcHQ6IG9wZW5Qb3BVcCgnbTN1JykiLCAiamF2YXNjcmlwdDogb3BlblBvcFVwKCdoZGhyJykiXTsKICAgICAgICAgICAgdmFyIHNlbGVjdCA9IGNvbnRlbnQuY3JlYXRlU2VsZWN0KHRleHQsIHZhbHVlcywgIiIsICJ0eXBlIik7CiAgICAgICAgICAgIHNlbGVjdC5zZXRBdHRyaWJ1dGUoImlkIiwgInR5cGUiKTsKICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAnamF2YXNjcmlwdDogY2hhbmdlQnV0dG9uQWN0aW9uKHRoaXMsICJuZXh0IiwgIm9uY2xpY2siKScpOyAvLyBjaGFuZ2VCdXR0b25BY3Rpb24KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnBsYXlsaXN0LnR5cGUudGl0bGV9fSIsIHNlbGVjdCk7CiAgICAgICAgICAgIC8vIEludGVyYWN0aW9uCiAgICAgICAgICAgIGNvbnRlbnQuY3JlYXRlSW50ZXJhY3Rpb24oKTsKICAgICAgICAgICAgLy8gQWJvcnQKICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImNhbmNlbCIsICJ7ey5idXR0b24uY2FuY2VsfX0iKTsKICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IHNob3dFbGVtZW50KCJwb3B1cCIsIGZhbHNlKTsnKTsKICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7CiAgICAgICAgICAgIC8vIE5leHQKICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgIm5leHQiLCAie3suYnV0dG9uLm5leHR9fSIpOwogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJtM3UiKScpOwogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoImlkIiwgJ25leHQnKTsKICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgIGNhc2UgIm0zdSI6CiAgICAgICAgICAgIGNvbnRlbnQuY3JlYXRlSGVhZGxpbmUoZGF0YVR5cGUpOwogICAgICAgICAgICAvLyBOYW1lCiAgICAgICAgICAgIHZhciBkYktleSA9ICJuYW1lIjsKICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7CiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3sucGxheWxpc3QubmFtZS5wbGFjZWhvbGRlcn19Iik7CiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5wbGF5bGlzdC5uYW1lLnRpdGxlfX0iLCBpbnB1dCk7CiAgICAgICAgICAgIC8vIERlc2NyaXB0aW9uCiAgICAgICAgICAgIHZhciBkYktleSA9ICJkZXNjcmlwdGlvbiI7CiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOwogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnBsYXlsaXN0LmRlc2NyaXB0aW9uLnBsYWNlaG9sZGVyfX0iKTsKICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnBsYXlsaXN0LmRlc2NyaXB0aW9uLnRpdGxlfX0iLCBpbnB1dCk7CiAgICAgICAgICAgIC8vIFVSTAogICAgICAgICAgICB2YXIgZGJLZXkgPSAiZmlsZS5zb3VyY2UiOwogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsKICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5wbGF5bGlzdC5maWxlTTNVLnBsYWNlaG9sZGVyfX0iKTsKICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnBsYXlsaXN0LmZpbGVNM1UudGl0bGV9fSIsIGlucHV0KTsKICAgICAgICAgICAgLy8gVHVuZXIKICAgICAgICAgICAgaWYgKFNFUlZFUlsic2V0dGluZ3MiXVsiYnVmZmVyIl0gIT0gIi0iKSB7CiAgICAgICAgICAgICAgICB2YXIgdGV4dCA9IFtdOwogICAgICAgICAgICAgICAgdmFyIHZhbHVlcyA9IFtdOwogICAgICAgICAgICAgICAgZm9yICh2YXIgaSA9IDE7IGkgPD0gMTAwOyBpKyspIHsKICAgICAgICAgICAgICAgICAgICB0ZXh0LnB1c2goaS50b1N0cmluZygpKTsKICAgICAgICAgICAgICAgICAgICB2YWx1ZXMucHVzaChpLnRvU3RyaW5nKCkpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgdmFyIGRiS2V5ID0gInR1bmVyIjsKICAgICAgICAgICAgICAgIHZhciBzZWxlY3QgPSBjb250ZW50LmNyZWF0ZVNlbGVjdCh0ZXh0LCB2YWx1ZXMsIGRhdGFbZGJLZXldLCBkYktleSk7CiAgICAgICAgICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJvbmZvY3VzIiwgImphdmFzY3JpcHQ6IHJldHVybjsiKTsKICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5wbGF5bGlzdC50dW5lci50aXRsZX19Iiwgc2VsZWN0KTsKICAgICAgICAgICAgfQogICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgIHZhciBkYktleSA9ICJ0dW5lciI7CiAgICAgICAgICAgICAgICBpZiAoZGF0YVtkYktleV0gPT0gdW5kZWZpbmVkKSB7CiAgICAgICAgICAgICAgICAgICAgZGF0YVtkYktleV0gPSAxOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7CiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInJlYWRvbmx5IiwgInRydWUiKTsKICAgICAgICAgICAgICAgIGlucHV0LmNsYXNzTmFtZSA9ICJub3RBdmFpbGFibGUiOwogICAgICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnBsYXlsaXN0LnR1bmVyLnRpdGxlfX0iLCBpbnB1dCk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgY29udGVudC5kZXNjcmlwdGlvbigie3sucGxheWxpc3QudHVuZXIuZGVzY3JpcHRpb259fSIpOwogICAgICAgICAgICAvLyBJbnRlcmF0aW9uCiAgICAgICAgICAgIGNvbnRlbnQuY3JlYXRlSW50ZXJhY3Rpb24oKTsKICAgICAgICAgICAgLy8gRGVsZXRlCiAgICAgICAgICAgIGlmIChkYXRhWyJpZC5wcm92aWRlciJdICE9ICItIikgewogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImRlbGV0ZSIsICJ7ey5idXR0b24uZGVsZXRlfX0iKTsKICAgICAgICAgICAgICAgIGlucHV0LmNsYXNzTmFtZSA9ICJkZWxldGUiOwogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoIm0zdSIsICInICsgaWQgKyAnIiwgdHJ1ZSwgMCknKTsKICAgICAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImJhY2siLCAie3suYnV0dG9uLmJhY2t9fSIpOwogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgicGxheWxpc3QiKScpOwogICAgICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgLy8gQWJvcnQKICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImNhbmNlbCIsICJ7ey5idXR0b24uY2FuY2VsfX0iKTsKICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IHNob3dFbGVtZW50KCJwb3B1cCIsIGZhbHNlKTsnKTsKICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7CiAgICAgICAgICAgIC8vIFVwZGF0ZQogICAgICAgICAgICBpZiAoZGF0YVsiaWQucHJvdmlkZXIiXSAhPSAiLSIpIHsKICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJ1cGRhdGUiLCAie3suYnV0dG9uLnVwZGF0ZX19Iik7CiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogc2F2ZVBvcHVwRGF0YSgibTN1IiwgIicgKyBpZCArICciLCBmYWxzZSwgMSknKTsKICAgICAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIC8vIFNhdmUKICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgInNhdmUiLCAie3suYnV0dG9uLnNhdmV9fSIpOwogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogc2F2ZVBvcHVwRGF0YSgibTN1IiwgIicgKyBpZCArICciLCBmYWxzZSwgMCknKTsKICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgIGNhc2UgImhkaHIiOgogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUhlYWRsaW5lKGRhdGFUeXBlKTsKICAgICAgICAgICAgLy8gTmFtZQogICAgICAgICAgICB2YXIgZGJLZXkgPSAibmFtZSI7CiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOwogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnBsYXlsaXN0Lm5hbWUucGxhY2Vob2xkZXJ9fSIpOwogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sucGxheWxpc3QubmFtZS50aXRsZX19IiwgaW5wdXQpOwogICAgICAgICAgICAvLyBEZXNjcmlwdGlvbgogICAgICAgICAgICB2YXIgZGJLZXkgPSAiZGVzY3JpcHRpb24iOwogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsKICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5wbGF5bGlzdC5kZXNjcmlwdGlvbi5wbGFjZWhvbGRlcn19Iik7CiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5wbGF5bGlzdC5kZXNjcmlwdGlvbi5wbGFjZWhvbGRlcn19IiwgaW5wdXQpOwogICAgICAgICAgICAvLyBVUkwKICAgICAgICAgICAgdmFyIGRiS2V5ID0gImZpbGUuc291cmNlIjsKICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7CiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3sucGxheWxpc3QuZmlsZUhESFIucGxhY2Vob2xkZXJ9fSIpOwogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sucGxheWxpc3QuZmlsZUhESFIudGl0bGV9fSIsIGlucHV0KTsKICAgICAgICAgICAgLy8gVHVuZXIKICAgICAgICAgICAgaWYgKFNFUlZFUlsic2V0dGluZ3MiXVsiYnVmZmVyIl0gIT0gIi0iKSB7CiAgICAgICAgICAgICAgICB2YXIgdGV4dCA9IFtdOwogICAgICAgICAgICAgICAgdmFyIHZhbHVlcyA9IFtdOwogICAgICAgICAgICAgICAgZm9yICh2YXIgaSA9IDE7IGkgPD0gMTAwOyBpKyspIHsKICAgICAgICAgICAgICAgICAgICB0ZXh0LnB1c2goaS50b1N0cmluZygpKTsKICAgICAgICAgICAgICAgICAgICB2YWx1ZXMucHVzaChpLnRvU3RyaW5nKCkpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgdmFyIGRiS2V5ID0gInR1bmVyIjsKICAgICAgICAgICAgICAgIHZhciBzZWxlY3QgPSBjb250ZW50LmNyZWF0ZVNlbGVjdCh0ZXh0LCB2YWx1ZXMsIGRhdGFbZGJLZXldLCBkYktleSk7CiAgICAgICAgICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJvbmZvY3VzIiwgImphdmFzY3JpcHQ6IHJldHVybjsiKTsKICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5wbGF5bGlzdC50dW5lci50aXRsZX19Iiwgc2VsZWN0KTsKICAgICAgICAgICAgfQogICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgIHZhciBkYktleSA9ICJ0dW5lciI7CiAgICAgICAgICAgICAgICBpZiAoZGF0YVtkYktleV0gPT0gdW5kZWZpbmVkKSB7CiAgICAgICAgICAgICAgICAgICAgZGF0YVtkYktleV0gPSAxOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7CiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInJlYWRvbmx5IiwgInRydWUiKTsKICAgICAgICAgICAgICAgIGlucHV0LmNsYXNzTmFtZSA9ICJub3RBdmFpbGFibGUiOwogICAgICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnBsYXlsaXN0LnR1bmVyLnRpdGxlfX0iLCBpbnB1dCk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgY29udGVudC5kZXNjcmlwdGlvbigie3sucGxheWxpc3QudHVuZXIuZGVzY3JpcHRpb259fSIpOwogICAgICAgICAgICAvLyBJbnRlcmFjdGlvbgogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUludGVyYWN0aW9uKCk7CiAgICAgICAgICAgIC8vIERlbGV0ZQogICAgICAgICAgICBpZiAoZGF0YVsiaWQucHJvdmlkZXIiXSAhPSAiLSIpIHsKICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJkZWxldGUiLCAie3suYnV0dG9uLmRlbGV0ZX19Iik7CiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogc2F2ZVBvcHVwRGF0YSgiaGRociIsICInICsgaWQgKyAnIiwgdHJ1ZSwgMCknKTsKICAgICAgICAgICAgICAgIGlucHV0LmNsYXNzTmFtZSA9ICJkZWxldGUiOwogICAgICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAiYmFjayIsICJ7ey5idXR0b24uYmFja319Iik7CiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJwbGF5bGlzdCIpJyk7CiAgICAgICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsKICAgICAgICAgICAgfQogICAgICAgICAgICAvLyBBYm9ydAogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAiY2FuY2VsIiwgInt7LmJ1dHRvbi5jYW5jZWx9fSIpOwogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogc2hvd0VsZW1lbnQoInBvcHVwIiwgZmFsc2UpOycpOwogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsKICAgICAgICAgICAgLy8gVXBkYXRlCiAgICAgICAgICAgIGlmIChkYXRhWyJpZC5wcm92aWRlciJdICE9ICItIikgewogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgInVwZGF0ZSIsICJ7ey5idXR0b24udXBkYXRlfX0iKTsKICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBzYXZlUG9wdXBEYXRhKCJoZGhyIiwgIicgKyBpZCArICciLCBmYWxzZSwgMSknKTsKICAgICAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIC8vIFNhdmUKICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgInNhdmUiLCAie3suYnV0dG9uLnNhdmV9fSIpOwogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogc2F2ZVBvcHVwRGF0YSgiaGRociIsICInICsgaWQgKyAnIiwgZmFsc2UsIDApJyk7CiAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOwogICAgICAgICAgICBicmVhazsKICAgICAgICBjYXNlICJmaWx0ZXIiOgogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUhlYWRsaW5lKGRhdGFUeXBlKTsKICAgICAgICAgICAgLy8gVHlwZQogICAgICAgICAgICB2YXIgZGJLZXkgPSAidHlwZSI7CiAgICAgICAgICAgIHZhciB0ZXh0ID0gWyJNM1U6ICIgKyAie3suZmlsdGVyLnR5cGUuZ3JvdXBUaXRsZX19IiwgInhUZVZlOiAiICsgInt7LmZpbHRlci50eXBlLmN1c3RvbUZpbHRlcn19Il07CiAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBbImphdmFzY3JpcHQ6IG9wZW5Qb3BVcCgnZ3JvdXAtdGl0bGUnKSIsICJqYXZhc2NyaXB0OiBvcGVuUG9wVXAoJ2N1c3RvbS1maWx0ZXInKSJdOwogICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCAiamF2YXNjcmlwdDogb3BlblBvcFVwKCdncm91cC10aXRsZScpIiwgZGJLZXkpOwogICAgICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJpZCIsIGlkKTsKICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAnamF2YXNjcmlwdDogY2hhbmdlQnV0dG9uQWN0aW9uKHRoaXMsICJuZXh0IiwgIm9uY2xpY2siKTsnKTsgLy8gY2hhbmdlQnV0dG9uQWN0aW9uCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5maWx0ZXIudHlwZS50aXRsZX19Iiwgc2VsZWN0KTsKICAgICAgICAgICAgLy8gSW50ZXJhY3Rpb24KICAgICAgICAgICAgY29udGVudC5jcmVhdGVJbnRlcmFjdGlvbigpOwogICAgICAgICAgICAvLyBBYm9ydAogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAiY2FuY2VsIiwgInt7LmJ1dHRvbi5jYW5jZWx9fSIpOwogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogc2hvd0VsZW1lbnQoInBvcHVwIiwgZmFsc2UpOycpOwogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsKICAgICAgICAgICAgLy8gTmV4dAogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAibmV4dCIsICJ7ey5idXR0b24ubmV4dH19Iik7CiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoImdyb3VwLXRpdGxlIiknKTsKICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJpZCIsICduZXh0Jyk7CiAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOwogICAgICAgICAgICBicmVhazsKICAgICAgICBjYXNlICJjdXN0b20tZmlsdGVyIjoKICAgICAgICBjYXNlICJncm91cC10aXRsZSI6CiAgICAgICAgICAgIHN3aXRjaCAoZGF0YVR5cGUpIHsKICAgICAgICAgICAgICAgIGNhc2UgImN1c3RvbS1maWx0ZXIiOgogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuY3JlYXRlSGVhZGxpbmUoInt7LmZpbHRlci5jdXN0b219fSIgKyAiIEZpbHRlciIpOwogICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgY2FzZSAiZ3JvdXAtdGl0bGUiOgogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuY3JlYXRlSGVhZGxpbmUoInt7LmZpbHRlci5ncm91cH19IiArICIgRmlsdGVyIik7CiAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgLy8gTmFtZSAgICAgIAogICAgICAgICAgICB2YXIgZGJLZXkgPSAibmFtZSI7CiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOwogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LmZpbHRlci5uYW1lLnBsYWNlaG9sZGVyfX0iKTsKICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LmZpbHRlci5uYW1lLnRpdGxlfX0iLCBpbnB1dCk7CiAgICAgICAgICAgIC8vIERlc2NyaXB0aW9uCiAgICAgICAgICAgIHZhciBkYktleSA9ICJkZXNjcmlwdGlvbiI7CiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOwogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LmZpbHRlci5kZXNjcmlwdGlvbi5wbGFjZWhvbGRlcn19Iik7CiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5maWx0ZXIuZGVzY3JpcHRpb24udGl0bGV9fSIsIGlucHV0KTsKICAgICAgICAgICAgLy8gVHlwZQogICAgICAgICAgICB2YXIgZGJLZXkgPSAidHlwZSI7CiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImhpZGRlbiIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7CiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCIiLCBpbnB1dCk7CiAgICAgICAgICAgIHZhciBmaWx0ZXJUeXBlID0gZGF0YVtkYktleV07CiAgICAgICAgICAgIHN3aXRjaCAoZmlsdGVyVHlwZSkgewogICAgICAgICAgICAgICAgY2FzZSAiY3VzdG9tLWZpbHRlciI6CiAgICAgICAgICAgICAgICAgICAgLy8gQ2FzZSBzZW5zaXRpdmUKICAgICAgICAgICAgICAgICAgICB2YXIgZGJLZXkgPSAiY2FzZVNlbnNpdGl2ZSI7CiAgICAgICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChkYktleSk7CiAgICAgICAgICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGFbZGJLZXldOwogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5maWx0ZXIuY2FzZVNlbnNpdGl2ZS50aXRsZX19IiwgaW5wdXQpOwogICAgICAgICAgICAgICAgICAgIC8vIEZpbHRlciBSdWxlIChDdXN0b20pCiAgICAgICAgICAgICAgICAgICAgdmFyIGRiS2V5ID0gImZpbHRlciI7CiAgICAgICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7CiAgICAgICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5maWx0ZXIuZmlsdGVyUnVsZS5wbGFjZWhvbGRlcn19Iik7CiAgICAgICAgICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LmZpbHRlci5maWx0ZXJSdWxlLnRpdGxlfX0iLCBpbnB1dCk7CiAgICAgICAgICAgICAgICAgICAgLy8gU3RhcnRpbmcgQ2hhbm5lbCBOdW1iZXIgTWFwcGluZwogICAgICAgICAgICAgICAgICAgIHZhciBkYktleSA9ICJzdGFydGluZ0NoYW5uZWwiOwogICAgICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOwogICAgICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3suZmlsdGVyLnN0YXJ0aW5nQ2hhbm5lbC5wbGFjZWhvbGRlcn19Iik7CiAgICAgICAgICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LmZpbHRlci5zdGFydGluZ0NoYW5uZWwudGl0bGV9fSIsIGlucHV0KTsKICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgIGNhc2UgImdyb3VwLXRpdGxlIjoKICAgICAgICAgICAgICAgICAgICAvL2FsZXJ0KGRiS2V5ICsgIiAiICsgZmlsdGVyVHlwZSkKICAgICAgICAgICAgICAgICAgICAvLyBGaWx0ZXIgYmFzZWQgb24gdGhlIGdyb3VwcyBpbiB0aGUgTTNVCiAgICAgICAgICAgICAgICAgICAgdmFyIGRiS2V5ID0gImZpbHRlciI7CiAgICAgICAgICAgICAgICAgICAgdmFyIGdyb3Vwc00zVSA9IGdldExvY2FsRGF0YSgibTN1R3JvdXBzIiwgIiIpOwogICAgICAgICAgICAgICAgICAgIHZhciB0ZXh0ID0gZ3JvdXBzTTNVWyJ0ZXh0Il07CiAgICAgICAgICAgICAgICAgICAgdmFyIHZhbHVlcyA9IGdyb3Vwc00zVVsidmFsdWUiXTsKICAgICAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCBkYXRhW2RiS2V5XSwgZGJLZXkpOwogICAgICAgICAgICAgICAgICAgIHNlbGVjdC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7CiAgICAgICAgICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LmZpbHRlci5maWx0ZXJHcm91cC50aXRsZX19Iiwgc2VsZWN0KTsKICAgICAgICAgICAgICAgICAgICBjb250ZW50LmRlc2NyaXB0aW9uKCJ7ey5maWx0ZXIuZmlsdGVyR3JvdXAuZGVzY3JpcHRpb259fSIpOwogICAgICAgICAgICAgICAgICAgIC8vIENhc2Ugc2Vuc2V0aXZlCiAgICAgICAgICAgICAgICAgICAgdmFyIGRiS2V5ID0gImNhc2VTZW5zaXRpdmUiOwogICAgICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goZGJLZXkpOwogICAgICAgICAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhW2RiS2V5XTsKICAgICAgICAgICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3suZmlsdGVyLmNhc2VTZW5zaXRpdmUudGl0bGV9fSIsIGlucHV0KTsKICAgICAgICAgICAgICAgICAgICB2YXIgZGJLZXkgPSAiaW5jbHVkZSI7CiAgICAgICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7CiAgICAgICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5maWx0ZXIuaW5jbHVkZS5wbGFjZWhvbGRlcn19Iik7CiAgICAgICAgICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LmZpbHRlci5pbmNsdWRlLnRpdGxlfX0iLCBpbnB1dCk7CiAgICAgICAgICAgICAgICAgICAgY29udGVudC5kZXNjcmlwdGlvbigie3suZmlsdGVyLmluY2x1ZGUuZGVzY3JpcHRpb259fSIpOwogICAgICAgICAgICAgICAgICAgIHZhciBkYktleSA9ICJleGNsdWRlIjsKICAgICAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsKICAgICAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LmZpbHRlci5leGNsdWRlLnBsYWNlaG9sZGVyfX0iKTsKICAgICAgICAgICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3suZmlsdGVyLmV4Y2x1ZGUudGl0bGV9fSIsIGlucHV0KTsKICAgICAgICAgICAgICAgICAgICBjb250ZW50LmRlc2NyaXB0aW9uKCJ7ey5maWx0ZXIuZXhjbHVkZS5kZXNjcmlwdGlvbn19Iik7CiAgICAgICAgICAgICAgICAgICAgLy8gUHJlc2VydmUgTTNVIFBsYXlsaXN0IENoYW5uZWwgTWFwcGluZwogICAgICAgICAgICAgICAgICAgIHZhciBkYktleSA9ICJwcmVzZXJ2ZU1hcHBpbmciOwogICAgICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goZGJLZXkpOwogICAgICAgICAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhW2RiS2V5XTsKICAgICAgICAgICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3suZmlsdGVyLnByZXNlcnZlTWFwcGluZy50aXRsZX19IiwgaW5wdXQpOwogICAgICAgICAgICAgICAgICAgIC8vIFN0YXJ0aW5nIENoYW5uZWwgTnVtYmVyIE1hcHBpbmcKICAgICAgICAgICAgICAgICAgICB2YXIgZGJLZXkgPSAic3RhcnRpbmdDaGFubmVsIjsKICAgICAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsKICAgICAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LmZpbHRlci5zdGFydGluZ0NoYW5uZWwucGxhY2Vob2xkZXJ9fSIpOwogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5maWx0ZXIuc3RhcnRpbmdDaGFubmVsLnRpdGxlfX0iLCBpbnB1dCk7CiAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICB9CiAgICAgICAgICAgIC8vIEludGVyYWN0aW9uCiAgICAgICAgICAgIGNvbnRlbnQuY3JlYXRlSW50ZXJhY3Rpb24oKTsKICAgICAgICAgICAgLy8gRGVsZXRlCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJkZWxldGUiLCAie3suYnV0dG9uLmRlbGV0ZX19Iik7CiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBzYXZlUG9wdXBEYXRhKCJmaWx0ZXIiLCAiJyArIGlkICsgJyIsIHRydWUsIDApJyk7CiAgICAgICAgICAgIGlucHV0LmNsYXNzTmFtZSA9ICJkZWxldGUiOwogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsKICAgICAgICAgICAgLy8gQWJvcnQKICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImNhbmNlbCIsICJ7ey5idXR0b24uY2FuY2VsfX0iKTsKICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IHNob3dFbGVtZW50KCJwb3B1cCIsIGZhbHNlKTsnKTsKICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7CiAgICAgICAgICAgIC8vIFNhdmUKICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgInNhdmUiLCAie3suYnV0dG9uLnNhdmV9fSIpOwogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogc2F2ZVBvcHVwRGF0YSgiZmlsdGVyIiwgIicgKyBpZCArICciLCBmYWxzZSwgMCknKTsKICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgIGNhc2UgInhtbHR2IjoKICAgICAgICAgICAgY29udGVudC5jcmVhdGVIZWFkbGluZShkYXRhVHlwZSk7CiAgICAgICAgICAgIC8vIE5hbWUKICAgICAgICAgICAgdmFyIGRiS2V5ID0gIm5hbWUiOwogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsKICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey54bWx0di5uYW1lLnBsYWNlaG9sZGVyfX0iKTsKICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnhtbHR2Lm5hbWUudGl0bGV9fSIsIGlucHV0KTsKICAgICAgICAgICAgLy8gRGVzY3JpcHRpb24KICAgICAgICAgICAgdmFyIGRiS2V5ID0gImRlc2NyaXB0aW9uIjsKICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7CiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3sueG1sdHYuZGVzY3JpcHRpb24ucGxhY2Vob2xkZXJ9fSIpOwogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sueG1sdHYuZGVzY3JpcHRpb24udGl0bGV9fSIsIGlucHV0KTsKICAgICAgICAgICAgLy8gVVJMCiAgICAgICAgICAgIHZhciBkYktleSA9ICJmaWxlLnNvdXJjZSI7CiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOwogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnhtbHR2LmZpbGVYTUxUVi5wbGFjZWhvbGRlcn19Iik7CiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey54bWx0di5maWxlWE1MVFYudGl0bGV9fSIsIGlucHV0KTsKICAgICAgICAgICAgLy8gSW50ZXJhY3Rpb24KICAgICAgICAgICAgY29udGVudC5jcmVhdGVJbnRlcmFjdGlvbigpOwogICAgICAgICAgICAvLyBEZWxldGUKICAgICAgICAgICAgaWYgKGRhdGFbImlkLnByb3ZpZGVyIl0gIT0gIi0iKSB7CiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAiZGVsZXRlIiwgInt7LmJ1dHRvbi5kZWxldGV9fSIpOwogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoInhtbHR2IiwgIicgKyBpZCArICciLCB0cnVlLCAwKScpOwogICAgICAgICAgICAgICAgaW5wdXQuY2xhc3NOYW1lID0gImRlbGV0ZSI7CiAgICAgICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsKICAgICAgICAgICAgfQogICAgICAgICAgICAvLyBBYm9ydAogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAiY2FuY2VsIiwgInt7LmJ1dHRvbi5jYW5jZWx9fSIpOwogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogc2hvd0VsZW1lbnQoInBvcHVwIiwgZmFsc2UpOycpOwogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsKICAgICAgICAgICAgLy8gVXBkYXRlCiAgICAgICAgICAgIGlmIChkYXRhWyJpZC5wcm92aWRlciJdICE9ICItIikgewogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgInVwZGF0ZSIsICJ7ey5idXR0b24udXBkYXRlfX0iKTsKICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBzYXZlUG9wdXBEYXRhKCJ4bWx0diIsICInICsgaWQgKyAnIiwgZmFsc2UsIDEpJyk7CiAgICAgICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsKICAgICAgICAgICAgfQogICAgICAgICAgICAvLyBTYXZlCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJzYXZlIiwgInt7LmJ1dHRvbi5zYXZlfX0iKTsKICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoInhtbHR2IiwgIicgKyBpZCArICciLCBmYWxzZSwgMCknKTsKICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgIGNhc2UgInVzZXJzIjoKICAgICAgICAgICAgY29udGVudC5jcmVhdGVIZWFkbGluZSgie3subWFpbk1lbnUuaXRlbS51c2Vyc319Iik7CiAgICAgICAgICAgIC8vIFVzZXIgbmFtZQogICAgICAgICAgICB2YXIgZGJLZXkgPSAidXNlcm5hbWUiOwogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsKICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey51c2Vycy51c2VybmFtZS5wbGFjZWhvbGRlcn19Iik7CiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey51c2Vycy51c2VybmFtZS50aXRsZX19IiwgaW5wdXQpOwogICAgICAgICAgICAvLyBOZXcgUGFyc3N3b3JkCiAgICAgICAgICAgIHZhciBkYktleSA9ICJwYXNzd29yZCI7CiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInBhc3N3b3JkIiwgZGJLZXksICIiKTsKICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey51c2Vycy5wYXNzd29yZC5wbGFjZWhvbGRlcn19Iik7CiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey51c2Vycy5wYXNzd29yZC50aXRsZX19IiwgaW5wdXQpOwogICAgICAgICAgICAvLyBDb25maXJtYXRpb24KICAgICAgICAgICAgdmFyIGRiS2V5ID0gImNvbmZpcm0iOwogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJwYXNzd29yZCIsIGRiS2V5LCAiIik7CiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3sudXNlcnMuY29uZmlybS5wbGFjZWhvbGRlcn19Iik7CiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey51c2Vycy5jb25maXJtLnRpdGxlfX0iLCBpbnB1dCk7CiAgICAgICAgICAgIC8vIEF1dGhlbnRpY2F0aW9uIFdFQgogICAgICAgICAgICB2YXIgZGJLZXkgPSAiYXV0aGVudGljYXRpb24ud2ViIjsKICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChkYktleSk7CiAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhW2RiS2V5XTsKICAgICAgICAgICAgaWYgKGRhdGFbImRlZmF1bHRVc2VyIl0gPT0gdHJ1ZSkgewogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgImphdmFzY3JpcHQ6IHJldHVybiBmYWxzZSIpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey51c2Vycy53ZWIudGl0bGV9fSIsIGlucHV0KTsKICAgICAgICAgICAgLy8gQXV0aGVudGljYXRpb24gUE1TCiAgICAgICAgICAgIHZhciBkYktleSA9ICJhdXRoZW50aWNhdGlvbi5wbXMiOwogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KGRiS2V5KTsKICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGFbZGJLZXldOwogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sudXNlcnMucG1zLnRpdGxlfX0iLCBpbnB1dCk7CiAgICAgICAgICAgIC8vIEF1dGhlbnRpY2F0aW9uIE0zVQogICAgICAgICAgICB2YXIgZGJLZXkgPSAiYXV0aGVudGljYXRpb24ubTN1IjsKICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChkYktleSk7CiAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhW2RiS2V5XTsKICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnVzZXJzLm0zdS50aXRsZX19IiwgaW5wdXQpOwogICAgICAgICAgICAvLyBBdXRoZW50aWNhdGlvbiBYTUwKICAgICAgICAgICAgdmFyIGRiS2V5ID0gImF1dGhlbnRpY2F0aW9uLnhtbCI7CiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goZGJLZXkpOwogICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YVtkYktleV07CiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey51c2Vycy54bWwudGl0bGV9fSIsIGlucHV0KTsKICAgICAgICAgICAgLy8gQXV0aGVudGljYXRpb24gQVBJCiAgICAgICAgICAgIHZhciBkYktleSA9ICJhdXRoZW50aWNhdGlvbi5hcGkiOwogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KGRiS2V5KTsKICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGFbZGJLZXldOwogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sudXNlcnMuYXBpLnRpdGxlfX0iLCBpbnB1dCk7CiAgICAgICAgICAgIC8vIEludGVyYWN0aW9uCiAgICAgICAgICAgIGNvbnRlbnQuY3JlYXRlSW50ZXJhY3Rpb24oKTsKICAgICAgICAgICAgLy8gRGVsZXRlCiAgICAgICAgICAgIGlmIChkYXRhWyJkZWZhdWx0VXNlciJdICE9IHRydWUgJiYgaWQgIT0gIi0iKSB7CiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAiZGVsZXRlIiwgInt7LmJ1dHRvbi5kZWxldGV9fSIpOwogICAgICAgICAgICAgICAgaW5wdXQuY2xhc3NOYW1lID0gImRlbGV0ZSI7CiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogc2F2ZVBvcHVwRGF0YSgiJyArIGRhdGFUeXBlICsgJyIsICInICsgaWQgKyAnIiwgdHJ1ZSwgMCknKTsKICAgICAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIC8vIEFib3J0CiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJjYW5jZWwiLCAie3suYnV0dG9uLmNhbmNlbH19Iik7CiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBzaG93RWxlbWVudCgicG9wdXAiLCBmYWxzZSk7Jyk7CiAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOwogICAgICAgICAgICAvLyBTYXZlCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJzYXZlIiwgInt7LmJ1dHRvbi5zYXZlfX0iKTsKICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoIicgKyBkYXRhVHlwZSArICciLCAiJyArIGlkICsgJyIsICJmYWxzZSIpOycpOwogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgY2FzZSAibWFwcGluZyI6CiAgICAgICAgICAgIGNvbnRlbnQuY3JlYXRlSGVhZGxpbmUoInt7Lm1haW5NZW51Lml0ZW0ubWFwcGluZ319Iik7CiAgICAgICAgICAgIC8vIEFjdGl2ZQogICAgICAgICAgICB2YXIgZGJLZXkgPSAieC1hY3RpdmUiOwogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KGRiS2V5KTsKICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGFbZGJLZXldOwogICAgICAgICAgICBpbnB1dC5pZCA9ICJhY3RpdmUiOwogICAgICAgICAgICAvL2lucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRvZ2dsZUNoYW5uZWxTdGF0dXMoJyIgKyBpZCArICInLCB0aGlzKSIpOwogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3subWFwcGluZy5hY3RpdmUudGl0bGV9fSIsIGlucHV0KTsKICAgICAgICAgICAgLy8gQ2hhbm5lbCBuYW1lCiAgICAgICAgICAgIHZhciBkYktleSA9ICJ4LW5hbWUiOwogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsKICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOwogICAgICAgICAgICBpZiAoQlVMS19FRElUID09IHRydWUpIHsKICAgICAgICAgICAgICAgIGlucHV0LnN0eWxlLmJvcmRlciA9ICJzb2xpZCAxcHggcmVkIjsKICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicmVhZG9ubHkiLCAidHJ1ZSIpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5tYXBwaW5nLmNoYW5uZWxOYW1lLnRpdGxlfX0iLCBpbnB1dCk7CiAgICAgICAgICAgIGNvbnRlbnQuZGVzY3JpcHRpb24oZGF0YVsibmFtZSJdKTsKICAgICAgICAgICAgLy8gRGVzY3JpcHRpb24KICAgICAgICAgICAgdmFyIGRiS2V5ID0gIngtZGVzY3JpcHRpb24iOwogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsKICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5tYXBwaW5nLmRlc2NyaXB0aW9uLnBsYWNlaG9sZGVyfX0iKTsKICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOwogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3subWFwcGluZy5kZXNjcmlwdGlvbi50aXRsZX19IiwgaW5wdXQpOwogICAgICAgICAgICAvLyBVcGRhdGUgdGhlIGNoYW5uZWwgeC1uYW1lCiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCJfdXVpZC5rZXkiKSkgewogICAgICAgICAgICAgICAgaWYgKGRhdGFbIl91dWlkLmtleSJdICE9ICIiKSB7CiAgICAgICAgICAgICAgICAgICAgdmFyIGRiS2V5ID0gIngtdXBkYXRlLWNoYW5uZWwtbmFtZSI7CiAgICAgICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChkYktleSk7CiAgICAgICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOwogICAgICAgICAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhW2RiS2V5XTsKICAgICAgICAgICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3subWFwcGluZy51cGRhdGVDaGFubmVsTmFtZS50aXRsZX19IiwgaW5wdXQpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICAgIC8vIENoYW5uZWwgbmFtZSByZWdleCBmb3IgdXBkYXRpbmcgdGhlIGNoYW5uZWwgbmFtZQogICAgICAgICAgICB2YXIgZGJLZXkgPSAidXBkYXRlLWNoYW5uZWwtbmFtZS1yZWdleCI7CiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOwogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7Lm1hcHBpbmcudXBkYXRlQ2hhbm5lbE5hbWVSZWdleC5wbGFjZWhvbGRlcn19Iik7CiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsKICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7Lm1hcHBpbmcudXBkYXRlQ2hhbm5lbE5hbWVSZWdleC50aXRsZX19IiwgaW5wdXQpOwogICAgICAgICAgICBjb250ZW50LmRlc2NyaXB0aW9uKCJ7ey5tYXBwaW5nLnVwZGF0ZUNoYW5uZWxOYW1lUmVnZXguZGVzY3JpcHRpb259fSIpOwogICAgICAgICAgICAvLyBDaGFubmVsIGdyb3VwIHJlZ2V4IGZvciB1cGRhdGluZyB0aGUgY2hhbm5lbCBuYW1lCiAgICAgICAgICAgIHZhciBkYktleSA9ICJ1cGRhdGUtY2hhbm5lbC1uYW1lLWJ5LWdyb3VwLXJlZ2V4IjsKICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7CiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3subWFwcGluZy51cGRhdGVDaGFubmVsTmFtZUJ5R3JvdXBSZWdleC5wbGFjZWhvbGRlcn19Iik7CiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsKICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7Lm1hcHBpbmcudXBkYXRlQ2hhbm5lbE5hbWVCeUdyb3VwUmVnZXgudGl0bGV9fSIsIGlucHV0KTsKICAgICAgICAgICAgY29udGVudC5kZXNjcmlwdGlvbigie3subWFwcGluZy51cGRhdGVDaGFubmVsTmFtZUJ5R3JvdXBSZWdleC5kZXNjcmlwdGlvbn19Iik7CiAgICAgICAgICAgIC8vIExvZ28gVVJMIChDaGFubmVsKSAKICAgICAgICAgICAgdmFyIGRiS2V5ID0gInR2Zy1sb2dvIjsKICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7CiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsKICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJpZCIsICJjaGFubmVsLWljb24iKTsKICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7Lm1hcHBpbmcuY2hhbm5lbExvZ28udGl0bGV9fSIsIGlucHV0KTsKICAgICAgICAgICAgLy8gQ2hhbm5lbCBsb2dvIHVwZGF0ZQogICAgICAgICAgICB2YXIgZGJLZXkgPSAieC11cGRhdGUtY2hhbm5lbC1pY29uIjsKICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChkYktleSk7CiAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhW2RiS2V5XTsKICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJpZCIsICJ1cGRhdGUtaWNvbiIpOwogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnOyBjaGFuZ2VDaGFubmVsTG9nbygnIiArIGlkICsgIicpOyIpOwogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3subWFwcGluZy51cGRhdGVDaGFubmVsTG9nby50aXRsZX19IiwgaW5wdXQpOwogICAgICAgICAgICAvLyBFeHBhbmQgRVBHIGNhdGVnb3J5CiAgICAgICAgICAgIHZhciBkYktleSA9ICJ4LWNhdGVnb3J5IjsKICAgICAgICAgICAgdmFyIHRleHQgPSBbIi0iLCAiS2lkcyAoRW1ieSBvbmx5KSIsICJOZXdzIiwgIk1vdmllIiwgIlNlcmllcyIsICJTcG9ydHMiXTsKICAgICAgICAgICAgdmFyIHZhbHVlcyA9IFsiIiwgIktpZHMiLCAiTmV3cyIsICJNb3ZpZSIsICJTZXJpZXMiLCAiU3BvcnRzIl07CiAgICAgICAgICAgIHZhciBzZWxlY3QgPSBjb250ZW50LmNyZWF0ZVNlbGVjdCh0ZXh0LCB2YWx1ZXMsIGRhdGFbZGJLZXldLCBkYktleSk7CiAgICAgICAgICAgIHNlbGVjdC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7CiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5tYXBwaW5nLmVwZ0NhdGVnb3J5LnRpdGxlfX0iLCBzZWxlY3QpOwogICAgICAgICAgICAvLyBNM1UgZ3JvdXAgdGl0bGUKICAgICAgICAgICAgdmFyIGRiS2V5ID0gIngtZ3JvdXAtdGl0bGUiOwogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsKICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOwogICAgICAgICAgICBpbnB1dC5kYXRhc2V0Lm9sZFZhbHVlID0gZGF0YVtkYktleV07CiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5tYXBwaW5nLm0zdUdyb3VwVGl0bGUudGl0bGV9fSIsIGlucHV0KTsKICAgICAgICAgICAgaWYgKGRhdGFbImdyb3VwLXRpdGxlIl0gIT0gdW5kZWZpbmVkKSB7CiAgICAgICAgICAgICAgICBjb250ZW50LmRlc2NyaXB0aW9uKGRhdGFbImdyb3VwLXRpdGxlIl0pOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGlmIChkYXRhWyJ4LXVwZGF0ZS1jaGFubmVsLWdyb3VwIl0gPT0gdHJ1ZSkgewogICAgICAgICAgICAgICAgaW5wdXQuZGlzYWJsZWQgPSB0cnVlOwogICAgICAgICAgICB9CiAgICAgICAgICAgIC8vIFVwZGF0ZSBjaGFubmVsIGdyb3VwIGNoZWNrYm94CiAgICAgICAgICAgIHZhciBkYktleSA9ICJ4LXVwZGF0ZS1jaGFubmVsLWdyb3VwIjsKICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChkYktleSk7CiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdG9nZ2xlR3JvdXBVcGRhdGVDYignIiArIGlkICsgIicsIHRoaXMpOyIpOwogICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YVtkYktleV07CiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5tYXBwaW5nLnVwZGF0ZUNoYW5uZWxHcm91cC50aXRsZX19IiwgaW5wdXQpOwogICAgICAgICAgICBjb250ZW50LmRlc2NyaXB0aW9uKCJ7ey5tYXBwaW5nLnVwZGF0ZUNoYW5uZWxHcm91cC5kZXNjcmlwdGlvbn19Iik7CiAgICAgICAgICAgIC8vIFhNTFRWIGZpbGUKICAgICAgICAgICAgdmFyIGRiS2V5ID0gJ3gteG1sdHYtZmlsZSc7CiAgICAgICAgICAgIGNvbnN0IHhtbFR2RmlsZSA9IGRhdGFbZGJLZXldOwogICAgICAgICAgICB2YXIgeG1sVHYgPSBuZXcgWE1MVFZGaWxlKCk7CiAgICAgICAgICAgIGNvbnN0IHhtbFR2RmlsZVNlbGVjdCA9IHhtbFR2LmdldEZpbGVzKGRhdGFbZGJLZXldKTsKICAgICAgICAgICAgeG1sVHZGaWxlU2VsZWN0LnNldEF0dHJpYnV0ZSgnbmFtZScsIGRiS2V5KTsKICAgICAgICAgICAgeG1sVHZGaWxlU2VsZWN0LnNldEF0dHJpYnV0ZSgnaWQnLCAncG9wdXAteG1sdHYnKTsKICAgICAgICAgICAgeG1sVHZGaWxlU2VsZWN0LnNldEF0dHJpYnV0ZSgnb25jaGFuZ2UnLCBgamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCc7IHNldFhtbHR2Q2hhbm5lbCgnJHtpZH0nLCB0aGlzKTtgKTsKICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coJ3t7Lm1hcHBpbmcueG1sdHZGaWxlLnRpdGxlfX0nLCB4bWxUdkZpbGVTZWxlY3QpOwogICAgICAgICAgICAvLyBYTUxUViBNYXBwaW5nCiAgICAgICAgICAgIHZhciBkYktleSA9ICd4LW1hcHBpbmcnOwogICAgICAgICAgICB2YXIgeG1sVHYgPSBuZXcgWE1MVFZGaWxlKCk7CiAgICAgICAgICAgIGNvbnN0IGN1cnJlbnRYbWxUdklkID0gZGF0YVtkYktleV07CiAgICAgICAgICAgIGNvbnN0IFt4bWxUdklkQ29udGFpbmVyLCB4bWxUdklkSW5wdXQsIHhtbFR2SWREYXRhbGlzdF0gPSB4bWxUdi5uZXdYbWxUdklkUGlja2VyKHhtbFR2RmlsZSwgY3VycmVudFhtbFR2SWQpOwogICAgICAgICAgICB4bWxUdklkQ29udGFpbmVyLnNldEF0dHJpYnV0ZSgnaWQnLCAneG1sdHYtaWQtcGlja2VyLWNvbnRhaW5lcicpOwogICAgICAgICAgICB4bWxUdklkSW5wdXQuc2V0QXR0cmlidXRlKCdsaXN0JywgJ3htbHR2LWlkLXBpY2tlci1kYXRhbGlzdCcpOwogICAgICAgICAgICB4bWxUdklkSW5wdXQuc2V0QXR0cmlidXRlKCduYW1lJywgJ3gtbWFwcGluZycpOyAvLyBTaG91bGQgc3RheSB4LW1hcHBpbmcgYXMgaXQgd2lsbCBiZSB1c2VkIGluIGRvbmVQb3B1cERhdGEgdG8gbWFrZSBhIHNlcnZlciByZXF1ZXN0CiAgICAgICAgICAgIHhtbFR2SWRJbnB1dC5zZXRBdHRyaWJ1dGUoJ2lkJywgJ3htbHR2LWlkLXBpY2tlci1pbnB1dCcpOwogICAgICAgICAgICB4bWxUdklkSW5wdXQuc2V0QXR0cmlidXRlKCdvbmNoYW5nZScsIGBqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJzsgY2hlY2tYbWx0dkNoYW5uZWwoJyR7aWR9JywgdGhpcy52YWx1ZSwgJyR7eG1sVHZGaWxlfScpO2ApOwogICAgICAgICAgICB4bWxUdklkRGF0YWxpc3Quc2V0QXR0cmlidXRlKCdpZCcsICd4bWx0di1pZC1waWNrZXItZGF0YWxpc3QnKTsKICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coJ3t7Lm1hcHBpbmcueG1sdHZDaGFubmVsLnRpdGxlfX0nLCB4bWxUdklkQ29udGFpbmVyKTsKICAgICAgICAgICAgLy8gVGltZXNoaWZ0CiAgICAgICAgICAgIHZhciBkYktleSA9ICJ4LXRpbWVzaGlmdCI7CiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOwogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7CiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3subWFwcGluZy50aW1lc2hpZnQucGxhY2Vob2xkZXJ9fSIpOwogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoImlkIiwgInRpbWVzaGlmdCIpOwogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3subWFwcGluZy50aW1lc2hpZnQudGl0bGV9fSIsIGlucHV0KTsKICAgICAgICAgICAgLy8gSW50ZXJhY3Rpb24KICAgICAgICAgICAgY29udGVudC5jcmVhdGVJbnRlcmFjdGlvbigpOwogICAgICAgICAgICAvLyBVcGxvYWQgbG9nbwogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAiY2FuY2VsIiwgInt7LmJ1dHRvbi51cGxvYWRMb2dvfX0iKTsKICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IHVwbG9hZExvZ28oKTsnKTsKICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7CiAgICAgICAgICAgIC8vIEFib3J0CiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJjYW5jZWwiLCAie3suYnV0dG9uLmNhbmNlbH19Iik7CiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBzaG93RWxlbWVudCgicG9wdXAiLCBmYWxzZSk7Jyk7CiAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOwogICAgICAgICAgICAvLyBGaW5pc2hlZAogICAgICAgICAgICB2YXIgaWRzID0gW107CiAgICAgICAgICAgIGlkcyA9IGdldEFsbFNlbGVjdGVkQ2hhbm5lbHMoKTsKICAgICAgICAgICAgaWYgKGlkcy5sZW5ndGggPT0gMCkgewogICAgICAgICAgICAgICAgaWRzLnB1c2goaWQpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJzYXZlIiwgInt7LmJ1dHRvbi5kb25lfX0iKTsKICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IGRvbmVQb3B1cERhdGEoIicgKyBkYXRhVHlwZSArICciLCAiJyArIGlkcyArICciLCAiZmFsc2UiKTsnKTsKICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgIGJyZWFrOwogICAgfQogICAgc2hvd1BvcFVwRWxlbWVudCgncG9wdXAtY3VzdG9tJyk7Cn0KY2xhc3MgWE1MVFZGaWxlIHsKICAgIGdldEZpbGVzKHNldCkgewogICAgICAgIGxldCBmaWxlSURzID0gZ2V0T3duT2JqUHJvcHMoU0VSVkVSWyJ4ZXBnIl1bInhtbHR2TWFwIl0pOwogICAgICAgIGxldCB2YWx1ZXMgPSBuZXcgQXJyYXkoIi0iKTsKICAgICAgICBsZXQgdGV4dCA9IG5ldyBBcnJheSgiLSIpOwogICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgZmlsZUlEcy5sZW5ndGg7IGkrKykgewogICAgICAgICAgICBpZiAoZmlsZUlEc1tpXSAhPSAieFRlVmUgRHVtbXkiKSB7CiAgICAgICAgICAgICAgICB2YWx1ZXMucHVzaChnZXRWYWx1ZUZyb21Qcm92aWRlckZpbGUoZmlsZUlEc1tpXSwgInhtbHR2IiwgImZpbGUueHRldmUiKSk7CiAgICAgICAgICAgICAgICB0ZXh0LnB1c2goZ2V0VmFsdWVGcm9tUHJvdmlkZXJGaWxlKGZpbGVJRHNbaV0sICJ4bWx0diIsICJuYW1lIikpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgdmFsdWVzLnB1c2goZmlsZUlEc1tpXSk7CiAgICAgICAgICAgICAgICB0ZXh0LnB1c2goZmlsZUlEc1tpXSk7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgbGV0IHNlbGVjdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlNFTEVDVCIpOwogICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGV4dC5sZW5ndGg7IGkrKykgewogICAgICAgICAgICB2YXIgb3B0aW9uID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiT1BUSU9OIik7CiAgICAgICAgICAgIG9wdGlvbi5zZXRBdHRyaWJ1dGUoInZhbHVlIiwgdmFsdWVzW2ldKTsKICAgICAgICAgICAgb3B0aW9uLmlubmVyVGV4dCA9IHRleHRbaV07CiAgICAgICAgICAgIHNlbGVjdC5hcHBlbmRDaGlsZChvcHRpb24pOwogICAgICAgIH0KICAgICAgICBpZiAoc2V0ICE9ICIiKSB7CiAgICAgICAgICAgIHNlbGVjdC52YWx1ZSA9IHNldDsKICAgICAgICB9CiAgICAgICAgcmV0dXJuIHNlbGVjdDsKICAgIH0KICAgIC8qKgogICAgICogQHBhcmFtIHhtbFR2RmlsZSBYTUwgZmlsZSBwYXRoIHRvIGdldCBFUEcgZnJvbS4KICAgICAqIEBwYXJhbSBjdXJyZW50WG1sVHZJZCBDdXJyZW50IFhNTFRWIElEIHRvIHNldCBpbml0aWFsIGlucHV0IHZhbHVlIHRvLgogICAgICogQHJldHVybnMgQXJyYXkgb2YsIHNlcXVlbnRpYWxseToKICAgICAqIDEpIENvbnRhaW5lciBvZiB0aGUgcGlja2VyLgogICAgICogMikgSW5wdXQgZmllbGQgdG8gdHlwZSBhdCBhbmQgZ2V0IGNob2ljZSBmcm9tLgogICAgICogMykgRGF0YWxpc3QgY29udGFpbmluZyBldmVyeSBvcHRpb24uCiAgICAgKi8KICAgIG5ld1htbFR2SWRQaWNrZXIoeG1sVHZGaWxlLCBjdXJyZW50WG1sVHZJZCkgewogICAgICAgIGNvbnN0IGNvbnRhaW5lciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOwogICAgICAgIGNvbnN0IGlucHV0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnaW5wdXQnKTsKICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoJ3R5cGUnLCAndGV4dCcpOwogICAgICAgIC8vIEluaXRpYWxseSwgc2V0IHZhbHVlIHRvICctJyBpZiBpbnB1dCBpcyBlbXB0eQogICAgICAgIGlucHV0LnZhbHVlID0gKGN1cnJlbnRYbWxUdklkKSA/IGN1cnJlbnRYbWxUdklkIDogJy0nOwogICAgICAgIC8vIFdoZW4gaW5wdXQgaXMgZm9jdXNlZCwgcmVtb3ZlICctJyBmcm9tIGl0CiAgICAgICAgaW5wdXQuYWRkRXZlbnRMaXN0ZW5lcignZm9jdXMnLCAoZXZ0KSA9PiB7CiAgICAgICAgICAgIGNvbnN0IHRhcmdldCA9IGV2dC50YXJnZXQ7CiAgICAgICAgICAgIHRhcmdldC52YWx1ZSA9ICh0YXJnZXQudmFsdWUgPT09ICctJykgPyAnJyA6IHRhcmdldC52YWx1ZTsKICAgICAgICB9KTsKICAgICAgICAvLyBXaGVuIGlucHV0IGxvc2UgZm9jdXMgb3IgdGFrZSBhIHZhbHVlLCBpZiBpdCdzIGVtcHR5LCBzZXQgdmFsdWUgdG8gJy0nCiAgICAgICAgaW5wdXQuYWRkRXZlbnRMaXN0ZW5lcignYmx1cicsIHNldEZhbGxiYWNrVmFsdWUpOwogICAgICAgIGlucHV0LmFkZEV2ZW50TGlzdGVuZXIoJ2NoYW5nZScsIHNldEZhbGxiYWNrVmFsdWUpOwogICAgICAgIGZ1bmN0aW9uIHNldEZhbGxiYWNrVmFsdWUoZXZ0KSB7CiAgICAgICAgICAgIGNvbnN0IHRhcmdldCA9IGV2dC50YXJnZXQ7CiAgICAgICAgICAgIHRhcmdldC52YWx1ZSA9ICh0YXJnZXQudmFsdWUpID8gdGFyZ2V0LnZhbHVlIDogJy0nOwogICAgICAgIH0KICAgICAgICBjb250YWluZXIuYXBwZW5kQ2hpbGQoaW5wdXQpOwogICAgICAgIGNvbnN0IGRhdGFsaXN0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGF0YWxpc3QnKTsKICAgICAgICBjb25zdCBvcHRpb24gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdvcHRpb24nKTsKICAgICAgICBvcHRpb24uc2V0QXR0cmlidXRlKCd2YWx1ZScsICctJyk7CiAgICAgICAgb3B0aW9uLmlubmVyVGV4dCA9ICctJzsKICAgICAgICBkYXRhbGlzdC5hcHBlbmRDaGlsZChvcHRpb24pOwogICAgICAgIGNvbnN0IGVwZyA9IFNFUlZFUlsneGVwZyddWyd4bWx0dk1hcCddW3htbFR2RmlsZV07CiAgICAgICAgaWYgKGVwZykgewogICAgICAgICAgICBjb25zdCBwcm9ncmFtSWRzID0gZ2V0T3duT2JqUHJvcHMoZXBnKTsKICAgICAgICAgICAgcHJvZ3JhbUlkcy5mb3JFYWNoKChwcm9ncmFtSWQpID0+IHsKICAgICAgICAgICAgICAgIGNvbnN0IHByb2dyYW0gPSBlcGdbcHJvZ3JhbUlkXTsKICAgICAgICAgICAgICAgIGlmIChwcm9ncmFtLmhhc093blByb3BlcnR5KCdkaXNwbGF5LW5hbWVzJykpIHsKICAgICAgICAgICAgICAgICAgICBwcm9ncmFtWydkaXNwbGF5LW5hbWVzJ10uZm9yRWFjaCgoZGlzcGxheU5hbWUpID0+IHsKICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgb3B0aW9uID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnb3B0aW9uJyk7CiAgICAgICAgICAgICAgICAgICAgICAgIG9wdGlvbi5zZXRBdHRyaWJ1dGUoJ3ZhbHVlJywgcHJvZ3JhbUlkKTsKICAgICAgICAgICAgICAgICAgICAgICAgb3B0aW9uLmlubmVyVGV4dCA9IGRpc3BsYXlOYW1lWydWYWx1ZSddOwogICAgICAgICAgICAgICAgICAgICAgICBkYXRhbGlzdC5hcHBlbmRDaGlsZChvcHRpb24pOwogICAgICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgY29uc3Qgb3B0aW9uID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnb3B0aW9uJyk7CiAgICAgICAgICAgICAgICAgICAgb3B0aW9uLnNldEF0dHJpYnV0ZSgndmFsdWUnLCBwcm9ncmFtSWQpOwogICAgICAgICAgICAgICAgICAgIG9wdGlvbi5pbm5lclRleHQgPSAnLSc7CiAgICAgICAgICAgICAgICAgICAgZGF0YWxpc3QuYXBwZW5kQ2hpbGQob3B0aW9uKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSk7CiAgICAgICAgfQogICAgICAgIGNvbnRhaW5lci5hcHBlbmRDaGlsZChkYXRhbGlzdCk7CiAgICAgICAgcmV0dXJuIFtjb250YWluZXIsIGlucHV0LCBkYXRhbGlzdF07CiAgICB9Cn0KZnVuY3Rpb24gZ2V0VmFsdWVGcm9tUHJvdmlkZXJGaWxlKGZpbGUsIGZpbGVUeXBlLCBrZXkpIHsKICAgIGlmIChmaWxlID09ICJ4VGVWZSBEdW1teSIpIHsKICAgICAgICByZXR1cm4gZmlsZTsKICAgIH0KICAgIGxldCBmaWxlSUQ7CiAgICBsZXQgaW5kaWNhdG9yID0gZmlsZS5jaGFyQXQoMCk7CiAgICBzd2l0Y2ggKGluZGljYXRvcikgewogICAgICAgIGNhc2UgIk0iOgogICAgICAgICAgICBmaWxlVHlwZSA9ICJtM3UiOwogICAgICAgICAgICBmaWxlSUQgPSBmaWxlOwogICAgICAgICAgICBicmVhazsKICAgICAgICBjYXNlICJIIjoKICAgICAgICAgICAgZmlsZVR5cGUgPSAiaGRociI7CiAgICAgICAgICAgIGZpbGVJRCA9IGZpbGU7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgIGNhc2UgIlgiOgogICAgICAgICAgICBmaWxlVHlwZSA9ICJ4bWx0diI7CiAgICAgICAgICAgIGZpbGVJRCA9IGZpbGUuc3Vic3RyaW5nKDAsIGZpbGUubGFzdEluZGV4T2YoJy4nKSk7CiAgICAgICAgICAgIGJyZWFrOwogICAgfQogICAgaWYgKFNFUlZFUlsic2V0dGluZ3MiXVsiZmlsZXMiXVtmaWxlVHlwZV0uaGFzT3duUHJvcGVydHkoZmlsZUlEKSA9PSB0cnVlKSB7CiAgICAgICAgdmFyIGRhdGEgPSBTRVJWRVJbInNldHRpbmdzIl1bImZpbGVzIl1bZmlsZVR5cGVdW2ZpbGVJRF07CiAgICAgICAgcmV0dXJuIGRhdGFba2V5XTsKICAgIH0KICAgIHJldHVybjsKfQpmdW5jdGlvbiBzZXRYbWx0dkNoYW5uZWwoZXBnTWFwSWQsIHhtbFR2RmlsZVNlbGVjdCkgewogICAgY29uc3QgeG1sVHYgPSBuZXcgWE1MVFZGaWxlKCk7CiAgICBjb25zdCBuZXdYbWxUdkZpbGUgPSB4bWxUdkZpbGVTZWxlY3QudmFsdWU7CiAgICAvLyBSZW1vdmUgb2xkIFhNTFRWIElEIHNlbGVjdGlvbiBib3gKICAgIGNvbnN0IHhtbFR2SWRQaWNrZXJQYXJlbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgneG1sdHYtaWQtcGlja2VyLWNvbnRhaW5lcicpLnBhcmVudEVsZW1lbnQ7CiAgICB4bWxUdklkUGlja2VyUGFyZW50LmlubmVySFRNTCA9ICcnOwogICAgLy8gQ3JlYXRlIG5ldyBYTUxUViBJRCBzZWxlY3Rpb24gYm94CiAgICBjb25zdCB0dmdJZCA9IFNFUlZFUlsneGVwZyddWydlcGdNYXBwaW5nJ11bZXBnTWFwSWRdWyd0dmctaWQnXTsKICAgIGNvbnN0IFt4bWxUdklkQ29udGFpbmVyLCB4bWxUdklkSW5wdXQsIHhtbFR2SWREYXRhbGlzdF0gPSB4bWxUdi5uZXdYbWxUdklkUGlja2VyKG5ld1htbFR2RmlsZSwgdHZnSWQpOwogICAgeG1sVHZJZENvbnRhaW5lci5zZXRBdHRyaWJ1dGUoJ2lkJywgJ3htbHR2LWlkLXBpY2tlci1jb250YWluZXInKTsKICAgIHhtbFR2SWRJbnB1dC5zZXRBdHRyaWJ1dGUoJ2xpc3QnLCAneG1sdHYtaWQtcGlja2VyLWRhdGFsaXN0Jyk7CiAgICB4bWxUdklkSW5wdXQuc2V0QXR0cmlidXRlKCduYW1lJywgJ3gtbWFwcGluZycpOyAvLyBTaG91bGQgc3RheSB4LW1hcHBpbmcgYXMgaXQgd2lsbCBiZSB1c2VkIGluIGRvbmVQb3B1cERhdGEgdG8gbWFrZSBhIHNlcnZlciByZXF1ZXN0CiAgICB4bWxUdklkSW5wdXQuc2V0QXR0cmlidXRlKCdpZCcsICd4bWx0di1pZC1waWNrZXItaW5wdXQnKTsKICAgIHhtbFR2SWRJbnB1dC5zZXRBdHRyaWJ1dGUoJ29uY2hhbmdlJywgYGphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnOyBjaGVja1htbHR2Q2hhbm5lbCgnJHtlcGdNYXBJZH0nLCB0aGlzLnZhbHVlLCAnJHtuZXdYbWxUdkZpbGV9Jyk7YCk7CiAgICB4bWxUdklkSW5wdXQuY2xhc3NMaXN0LmFkZCgnY2hhbmdlZCcpOwogICAgeG1sVHZJZERhdGFsaXN0LnNldEF0dHJpYnV0ZSgnaWQnLCAneG1sdHYtaWQtcGlja2VyLWRhdGFsaXN0Jyk7CiAgICAvLyBBZGQgbmV3IFhNTFRWIElEIHNlbGVjdGlvbiBib3ggdG8gaXQncyBwYXJlbnQKICAgIHhtbFR2SWRQaWNrZXJQYXJlbnQuYXBwZW5kQ2hpbGQoeG1sVHZJZENvbnRhaW5lcik7CiAgICBjaGVja1htbHR2Q2hhbm5lbChlcGdNYXBJZCwgeG1sVHZJZElucHV0LnZhbHVlLCBuZXdYbWxUdkZpbGUpOwp9CmZ1bmN0aW9uIGNoZWNrWG1sdHZDaGFubmVsKGVwZ01hcElkLCBuZXdYbWxUdklkLCB4bWxUdkZpbGUpIHsKICAgIGNvbnN0IGNoYW5uZWxBY3RpdmVDYiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdhY3RpdmUnKTsKICAgIGNvbnN0IGNoYW5uZWxBY3RpdmUgPSBuZXdYbWxUdklkICE9ICctJzsKICAgIGNoYW5uZWxBY3RpdmVDYi5jaGVja2VkID0gY2hhbm5lbEFjdGl2ZTsKICAgIGNoYW5uZWxBY3RpdmVDYi5jbGFzc05hbWUgPSAnY2hhbmdlZCc7CiAgICBpZiAoeG1sVHZGaWxlICE9ICd4VGVWZSBEdW1teScgJiYgY2hhbm5lbEFjdGl2ZSA9PSB0cnVlKSB7CiAgICAgICAgY2hhbmdlQ2hhbm5lbExvZ28oZXBnTWFwSWQpOwogICAgICAgIHJldHVybjsKICAgIH0KICAgIGlmICh4bWxUdkZpbGUgPT0gJ3hUZVZlIER1bW15JykgewogICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd1cGRhdGUtaWNvbicpLmNoZWNrZWQgPSBmYWxzZTsKICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndXBkYXRlLWljb24nKS5jbGFzc05hbWUgPSAnY2hhbmdlZCc7CiAgICB9Cn0KZnVuY3Rpb24gY2hhbmdlQ2hhbm5lbExvZ28oZXBnTWFwSWQpIHsKICAgIGNvbnN0IGNoYW5uZWwgPSBTRVJWRVJbJ3hlcGcnXVsnZXBnTWFwcGluZyddW2VwZ01hcElkXTsKICAgIGNvbnN0IHhtbFR2RmlsZVNlbGVjdCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdwb3B1cC14bWx0dicpOwogICAgY29uc3QgeG1sVHZGaWxlID0geG1sVHZGaWxlU2VsZWN0Lm9wdGlvbnNbeG1sVHZGaWxlU2VsZWN0LnNlbGVjdGVkSW5kZXhdLnZhbHVlOwogICAgY29uc3QgeG1sVHZJZElucHV0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3htbHR2LWlkLXBpY2tlci1pbnB1dCcpOwogICAgY29uc3QgbmV3WG1sVHZJZCA9IHhtbFR2SWRJbnB1dC52YWx1ZTsKICAgIGNvbnN0IHVwZGF0ZUxvZ28gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndXBkYXRlLWljb24nKS5jaGVja2VkOwogICAgbGV0IGxvZ287CiAgICBpZiAodXBkYXRlTG9nbyA9PSB0cnVlICYmIHhtbFR2RmlsZSAhPSAneFRlVmUgRHVtbXknKSB7CiAgICAgICAgaWYgKFNFUlZFUlsneGVwZyddWyd4bWx0dk1hcCddW3htbFR2RmlsZV0uaGFzT3duUHJvcGVydHkobmV3WG1sVHZJZCkpIHsKICAgICAgICAgICAgbG9nbyA9IFNFUlZFUlsneGVwZyddWyd4bWx0dk1hcCddW3htbFR2RmlsZV1bbmV3WG1sVHZJZF1bJ2ljb24nXTsKICAgICAgICB9CiAgICAgICAgZWxzZSB7CiAgICAgICAgICAgIGxvZ28gPSBjaGFubmVsWyd0dmctbG9nbyddOwogICAgICAgIH0KICAgICAgICB2YXIgbG9nb0lucHV0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NoYW5uZWwtaWNvbicpOwogICAgICAgIGxvZ29JbnB1dC52YWx1ZSA9IGxvZ287CiAgICAgICAgaWYgKEJVTEtfRURJVCA9PSBmYWxzZSkgewogICAgICAgICAgICBsb2dvSW5wdXQuY2xhc3NOYW1lID0gJ2NoYW5nZWQnOwogICAgICAgIH0KICAgIH0KfQpmdW5jdGlvbiBzYXZlUG9wdXBEYXRhKGRhdGFUeXBlLCBpZCwgcmVtb3ZlLCBvcHRpb24pIHsKICAgIGlmIChkYXRhVHlwZSA9PSAibWFwcGluZyIpIHsKICAgICAgICBsZXQgZGF0YSA9IHt9OwogICAgICAgIGxldCBjbWQgPSAic2F2ZUVwZ01hcHBpbmciOwogICAgICAgIGRhdGFbImVwZ01hcHBpbmciXSA9IFNFUlZFUlsieGVwZyJdWyJlcGdNYXBwaW5nIl07CiAgICAgICAgbGV0IHNlcnZlciA9IG5ldyBTZXJ2ZXIoY21kKTsKICAgICAgICBzZXJ2ZXIucmVxdWVzdChkYXRhKTsKICAgICAgICBkZWxldGUgVU5ET1siZXBnTWFwcGluZyJdOwogICAgICAgIHJldHVybjsKICAgIH0KICAgIGxldCBkaXYgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicG9wdXAtY3VzdG9tIik7CiAgICBsZXQgaW5wdXRzID0gZGl2LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJUQUJMRSIpWzBdLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJJTlBVVCIpOwogICAgbGV0IHNlbGVjdHMgPSBkaXYuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlRBQkxFIilbMF0uZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlNFTEVDVCIpOwogICAgbGV0IGlucHV0ID0ge307CiAgICBsZXQgY29uZmlybU1zZzsKICAgIGZvciAobGV0IGkgPSAwOyBpIDwgc2VsZWN0cy5sZW5ndGg7IGkrKykgewogICAgICAgIHZhciBuYW1lOwogICAgICAgIG5hbWUgPSBzZWxlY3RzW2ldLm5hbWU7CiAgICAgICAgdmFyIHZhbHVlID0gc2VsZWN0c1tpXS52YWx1ZTsKICAgICAgICBzd2l0Y2ggKG5hbWUpIHsKICAgICAgICAgICAgY2FzZSAidHVuZXIiOgogICAgICAgICAgICAgICAgaW5wdXRbbmFtZV0gPSBwYXJzZUludCh2YWx1ZSk7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgICAgIGlucHV0W25hbWVdID0gdmFsdWU7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICB9CiAgICB9CiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGlucHV0cy5sZW5ndGg7IGkrKykgewogICAgICAgIHN3aXRjaCAoaW5wdXRzW2ldLnR5cGUpIHsKICAgICAgICAgICAgY2FzZSAiY2hlY2tib3giOgogICAgICAgICAgICAgICAgbmFtZSA9IGlucHV0c1tpXS5uYW1lOwogICAgICAgICAgICAgICAgaW5wdXRbbmFtZV0gPSBpbnB1dHNbaV0uY2hlY2tlZDsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJ0ZXh0IjoKICAgICAgICAgICAgY2FzZSAiaGlkZGVuIjoKICAgICAgICAgICAgY2FzZSAicGFzc3dvcmQiOgogICAgICAgICAgICAgICAgbmFtZSA9IGlucHV0c1tpXS5uYW1lOwogICAgICAgICAgICAgICAgc3dpdGNoIChuYW1lKSB7CiAgICAgICAgICAgICAgICAgICAgY2FzZSAidHVuZXIiOgogICAgICAgICAgICAgICAgICAgICAgICBpbnB1dFtuYW1lXSA9IHBhcnNlSW50KGlucHV0c1tpXS52YWx1ZSk7CiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICAgICAgICAgICAgIGlucHV0W25hbWVdID0gaW5wdXRzW2ldLnZhbHVlOwogICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgIH0KICAgIH0KICAgIGxldCBkYXRhID0ge307CiAgICBsZXQgY21kOwogICAgaWYgKHJlbW92ZSA9PSB0cnVlKSB7CiAgICAgICAgaW5wdXRbImRlbGV0ZSJdID0gdHJ1ZTsKICAgIH0KICAgIHN3aXRjaCAoZGF0YVR5cGUpIHsKICAgICAgICBjYXNlICJ1c2VycyI6CiAgICAgICAgICAgIGNvbmZpcm1Nc2cgPSAiRGVsZXRlIHRoaXMgdXNlcj8iOwogICAgICAgICAgICBpZiAoaWQgPT0gIi0iKSB7CiAgICAgICAgICAgICAgICBjbWQgPSAic2F2ZU5ld1VzZXIiOwogICAgICAgICAgICAgICAgZGF0YVsidXNlckRhdGEiXSA9IGlucHV0OwogICAgICAgICAgICB9CiAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgY21kID0gInNhdmVVc2VyRGF0YSI7CiAgICAgICAgICAgICAgICBsZXQgZCA9IHt9OwogICAgICAgICAgICAgICAgZFtpZF0gPSBpbnB1dDsKICAgICAgICAgICAgICAgIGRhdGFbInVzZXJEYXRhIl0gPSBkOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgIGNhc2UgIm0zdSI6CiAgICAgICAgICAgIGNvbmZpcm1Nc2cgPSAiRGVsZXRlIHRoaXMgcGxheWxpc3Q/IjsKICAgICAgICAgICAgc3dpdGNoIChvcHRpb24pIHsKICAgICAgICAgICAgICAgIC8vIFBvcHVwOiBTYXZlCiAgICAgICAgICAgICAgICBjYXNlIDA6CiAgICAgICAgICAgICAgICAgICAgY21kID0gInNhdmVGaWxlc00zVSI7CiAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAvLyBQb3B1cDogVXBkYXRlCiAgICAgICAgICAgICAgICBjYXNlIDE6CiAgICAgICAgICAgICAgICAgICAgY21kID0gInVwZGF0ZUZpbGVNM1UiOwogICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGRhdGFbImZpbGVzIl0gPSB7fTsKICAgICAgICAgICAgZGF0YVsiZmlsZXMiXVtkYXRhVHlwZV0gPSB7fTsKICAgICAgICAgICAgZGF0YVsiZmlsZXMiXVtkYXRhVHlwZV1baWRdID0gaW5wdXQ7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgIGNhc2UgImhkaHIiOgogICAgICAgICAgICBjb25maXJtTXNnID0gIkRlbGV0ZSB0aGlzIEhESG9tZVJ1biB0dW5lcj8iOwogICAgICAgICAgICBzd2l0Y2ggKG9wdGlvbikgewogICAgICAgICAgICAgICAgLy8gUG9wdXA6IFNhdmUKICAgICAgICAgICAgICAgIGNhc2UgMDoKICAgICAgICAgICAgICAgICAgICBjbWQgPSAic2F2ZUZpbGVzSERIUiI7CiAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAvLyBQb3B1cDogVXBkYXRlCiAgICAgICAgICAgICAgICBjYXNlIDE6CiAgICAgICAgICAgICAgICAgICAgY21kID0gInVwZGF0ZUZpbGVIREhSIjsKICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgfQogICAgICAgICAgICBkYXRhWyJmaWxlcyJdID0ge307CiAgICAgICAgICAgIGRhdGFbImZpbGVzIl1bZGF0YVR5cGVdID0ge307CiAgICAgICAgICAgIGRhdGFbImZpbGVzIl1bZGF0YVR5cGVdW2lkXSA9IGlucHV0OwogICAgICAgICAgICBicmVhazsKICAgICAgICBjYXNlICJ4bWx0diI6CiAgICAgICAgICAgIGNvbmZpcm1Nc2cgPSAiRGVsZXRlIHRoaXMgWE1MVFYgZmlsZT8iOwogICAgICAgICAgICBzd2l0Y2ggKG9wdGlvbikgewogICAgICAgICAgICAgICAgLy8gUG9wdXA6IFNhdmUKICAgICAgICAgICAgICAgIGNhc2UgMDoKICAgICAgICAgICAgICAgICAgICBjbWQgPSAic2F2ZUZpbGVzWE1MVFYiOwogICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgLy8gUG9wdXA6IFVwZGF0ZQogICAgICAgICAgICAgICAgY2FzZSAxOgogICAgICAgICAgICAgICAgICAgIGNtZCA9ICJ1cGRhdGVGaWxlWE1MVFYiOwogICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGRhdGFbImZpbGVzIl0gPSB7fTsKICAgICAgICAgICAgZGF0YVsiZmlsZXMiXVtkYXRhVHlwZV0gPSB7fTsKICAgICAgICAgICAgZGF0YVsiZmlsZXMiXVtkYXRhVHlwZV1baWRdID0gaW5wdXQ7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgIGNhc2UgImZpbHRlciI6CiAgICAgICAgICAgIGNvbmZpcm1Nc2cgPSAiRGVsZXRlIHRoaXMgZmlsdGVyPyI7CiAgICAgICAgICAgIGNtZCA9ICJzYXZlRmlsdGVyIjsKICAgICAgICAgICAgZGF0YVsiZmlsdGVyIl0gPSB7fTsKICAgICAgICAgICAgZGF0YVsiZmlsdGVyIl1baWRdID0gaW5wdXQ7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgIHJldHVybjsKICAgIH0KICAgIGlmIChyZW1vdmUgPT0gdHJ1ZSkgewogICAgICAgIGlmICghY29uZmlybShjb25maXJtTXNnKSkgewogICAgICAgICAgICBzaG93RWxlbWVudCgicG9wdXAiLCBmYWxzZSk7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICB9CiAgICBsZXQgc2VydmVyID0gbmV3IFNlcnZlcihjbWQpOwogICAgc2VydmVyLnJlcXVlc3QoZGF0YSk7Cn0KZnVuY3Rpb24gZG9uZVBvcHVwRGF0YShkYXRhVHlwZSwgaWRzU3RyKSB7CiAgICBsZXQgaWRzID0gaWRzU3RyLnNwbGl0KCcsJyk7CiAgICBsZXQgZGl2ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInBvcHVwLWN1c3RvbSIpOwogICAgbGV0IGlucHV0cyA9IGRpdi5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCJjaGFuZ2VkIik7CiAgICBpZHMuZm9yRWFjaChpZCA9PiB7CiAgICAgICAgbGV0IGlucHV0OwogICAgICAgIGlucHV0ID0gU0VSVkVSWyJ4ZXBnIl1bImVwZ01hcHBpbmciXVtpZF07CiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBpbnB1dHMubGVuZ3RoOyBpKyspIHsKICAgICAgICAgICAgbGV0IG5hbWU7CiAgICAgICAgICAgIGxldCB2YWx1ZTsKICAgICAgICAgICAgc3dpdGNoIChpbnB1dHNbaV0udGFnTmFtZSkgewogICAgICAgICAgICAgICAgY2FzZSAiSU5QVVQiOgogICAgICAgICAgICAgICAgICAgIHN3aXRjaCAoaW5wdXRzW2ldLnR5cGUpIHsKICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAiY2hlY2tib3giOgogICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZSA9IGlucHV0c1tpXS5uYW1lOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSBpbnB1dHNbaV0uY2hlY2tlZDsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlucHV0W25hbWVdID0gdmFsdWU7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAidGV4dCI6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lID0gaW5wdXRzW2ldLm5hbWU7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IGlucHV0c1tpXS52YWx1ZTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlucHV0W25hbWVdID0gdmFsdWU7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICBjYXNlICJTRUxFQ1QiOgogICAgICAgICAgICAgICAgICAgIG5hbWUgPSBpbnB1dHNbaV0ubmFtZTsKICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IGlucHV0c1tpXS52YWx1ZTsKICAgICAgICAgICAgICAgICAgICBpbnB1dFtuYW1lXSA9IHZhbHVlOwogICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICB9CiAgICAgICAgICAgIHN3aXRjaCAobmFtZSkgewogICAgICAgICAgICAgICAgY2FzZSAidHZnLWxvZ28iOgogICAgICAgICAgICAgICAgICAgIC8vKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5jaGlsZE5vZGVzWzJdLmZpcnN0Q2hpbGQgYXMgSFRNTEVsZW1lbnQpLnNldEF0dHJpYnV0ZSgic3JjIiwgdmFsdWUpCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICBjYXNlICJ4LW5hbWUiOgogICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5jaGlsZE5vZGVzWzNdLmZpcnN0Q2hpbGQuaW5uZXJIVE1MID0gdmFsdWU7CiAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICBjYXNlICJ4LWNhdGVnb3J5IjoKICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkuY2hpbGROb2Rlc1szXS5maXJzdENoaWxkLmNsYXNzTmFtZSA9IHZhbHVlOwogICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgY2FzZSAidXBkYXRlLWNoYW5uZWwtbmFtZS1yZWdleCI6CiAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpLmNoaWxkTm9kZXNbNF0uZmlyc3RDaGlsZC5pbm5lckhUTUwgPSB2YWx1ZTsKICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgIGNhc2UgIngtZ3JvdXAtdGl0bGUiOgogICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5jaGlsZE5vZGVzWzZdLmZpcnN0Q2hpbGQuaW5uZXJIVE1MID0gdmFsdWU7CiAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICBjYXNlICJ4LXhtbHR2LWZpbGUiOgogICAgICAgICAgICAgICAgICAgIGlmICh2YWx1ZSAhPSAieFRlVmUgRHVtbXkiICYmIHZhbHVlICE9ICItIikgewogICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IGdldFZhbHVlRnJvbVByb3ZpZGVyRmlsZSh2YWx1ZSwgInhtbHR2IiwgIm5hbWUiKTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgaWYgKHZhbHVlID09ICItIikgewogICAgICAgICAgICAgICAgICAgICAgICBpbnB1dFsieC1hY3RpdmUiXSA9IGZhbHNlOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkuY2hpbGROb2Rlc1s3XS5maXJzdENoaWxkLmlubmVySFRNTCA9IHZhbHVlOwogICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgY2FzZSAieC1tYXBwaW5nIjoKICAgICAgICAgICAgICAgICAgICBpZiAodmFsdWUgPT0gIi0iKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGlucHV0WyJ4LWFjdGl2ZSJdID0gZmFsc2U7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5jaGlsZE5vZGVzWzhdLmZpcnN0Q2hpbGQuaW5uZXJIVE1MID0gdmFsdWU7CiAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICBjYXNlICJ4LXRpbWVzaGlmdCI6CiAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpLmNoaWxkTm9kZXNbOV0uZmlyc3RDaGlsZC5pbm5lckhUTUwgPSB2YWx1ZTsKICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgIH0KICAgICAgICAgICAgY3JlYXRlU2VhcmNoT2JqKCk7CiAgICAgICAgICAgIHNlYXJjaEluTWFwcGluZygpOwogICAgICAgIH0KICAgICAgICBpZiAoaW5wdXRbIngtYWN0aXZlIl0gPT0gZmFsc2UpIHsKICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpLmNsYXNzTmFtZSA9ICJub3RBY3RpdmVFUEciOwogICAgICAgIH0KICAgICAgICBlbHNlIHsKICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpLmNsYXNzTmFtZSA9ICJhY3RpdmVFUEciOwogICAgICAgIH0KICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkuY2hpbGROb2Rlc1syXS5maXJzdENoaWxkLnNldEF0dHJpYnV0ZSgic3JjIiwgaW5wdXRbInR2Zy1sb2dvIl0pOwogICAgfSk7CiAgICBzaG93RWxlbWVudCgicG9wdXAiLCBmYWxzZSk7CiAgICByZXR1cm47Cn0KZnVuY3Rpb24gc2hvd1ByZXZpZXcoZWxlbWVudCkgewogICAgbGV0IGRpdiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJteVN0cmVhbXNCb3giKTsKICAgIHN3aXRjaCAoZWxlbWVudCkgewogICAgICAgIGNhc2UgZmFsc2U6CiAgICAgICAgICAgIGRpdi5jbGFzc05hbWUgPSAibm90VmlzaWJsZSI7CiAgICAgICAgICAgIHJldHVybjsKICAgIH0KICAgIGxldCBzdHJlYW1zID0gWyJhY3RpdmVTdHJlYW1zIiwgImluYWN0aXZlU3RyZWFtcyJdOwogICAgc3RyZWFtcy5mb3JFYWNoKHByZXZpZXcgPT4gewogICAgICAgIGxldCB0YWJsZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHByZXZpZXcpOwogICAgICAgIHRhYmxlLmlubmVySFRNTCA9ICIiOwogICAgICAgIGxldCBvYmogPSBTRVJWRVJbImRhdGEiXVsiU3RyZWFtUHJldmlld1VJIl1bcHJldmlld107CiAgICAgICAgb2JqLmZvckVhY2goY2hhbm5lbCA9PiB7CiAgICAgICAgICAgIGxldCB0ciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlRSIik7CiAgICAgICAgICAgIGxldCB0ZEtleSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7CiAgICAgICAgICAgIGxldCB0ZFZhbCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7CiAgICAgICAgICAgIHRkS2V5LmNsYXNzTmFtZSA9ICJ0ZEtleSI7CiAgICAgICAgICAgIHRkVmFsLmNsYXNzTmFtZSA9ICJ0ZFZhbCI7CiAgICAgICAgICAgIHN3aXRjaCAocHJldmlldykgewogICAgICAgICAgICAgICAgY2FzZSAiYWN0aXZlU3RyZWFtcyI6CiAgICAgICAgICAgICAgICAgICAgdGRLZXkuaW5uZXJUZXh0ID0gIkNoYW5uZWw6ICgrKSI7CiAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICBjYXNlICJpbmFjdGl2ZVN0cmVhbXMiOgogICAgICAgICAgICAgICAgICAgIHRkS2V5LmlubmVyVGV4dCA9ICJDaGFubmVsOiAoLSkiOwogICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICB9CiAgICAgICAgICAgIHRkVmFsLmlubmVyVGV4dCA9IGNoYW5uZWw7CiAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKHRkS2V5KTsKICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQodGRWYWwpOwogICAgICAgICAgICB0YWJsZS5hcHBlbmRDaGlsZCh0cik7CiAgICAgICAgfSk7CiAgICB9KTsKICAgIHNob3dFbGVtZW50KCJsb2FkaW5nIiwgZmFsc2UpOwogICAgZGl2LmNsYXNzTmFtZSA9ICJ2aXNpYmxlIjsKICAgIHJldHVybjsKfQo=" + webUI["html/js/menu_ts.js"] = "Y2xhc3MgTWFpbk1lbnUgewogICAgY29uc3RydWN0b3IoKSB7CiAgICAgICAgdGhpcy5Eb2N1bWVudElEID0gIm1haW4tbWVudSI7CiAgICAgICAgdGhpcy5IVE1MVGFnID0gIkxJIjsKICAgICAgICB0aGlzLkltYWdlUGF0aCA9ICJpbWcvIjsKICAgIH0KICAgIGNyZWF0ZUlNRyhzcmMpIHsKICAgICAgICBsZXQgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIklNRyIpOwogICAgICAgIGVsZW1lbnQuc2V0QXR0cmlidXRlKCJzcmMiLCB0aGlzLkltYWdlUGF0aCArIHNyYyk7CiAgICAgICAgZWxlbWVudC5zZXRBdHRyaWJ1dGUoImFsdCIsIHNyYyk7CiAgICAgICAgcmV0dXJuIGVsZW1lbnQ7CiAgICB9CiAgICBjcmVhdGVWYWx1ZSh2YWx1ZSkgewogICAgICAgIGxldCBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiUCIpOwogICAgICAgIGVsZW1lbnQuaW5uZXJIVE1MID0gdmFsdWU7CiAgICAgICAgcmV0dXJuIGVsZW1lbnQ7CiAgICB9Cn0KY2xhc3MgTWFpbk1lbnVJdGVtIGV4dGVuZHMgTWFpbk1lbnUgewogICAgY29uc3RydWN0b3IobWVudUtleSwgdmFsdWUsIGltYWdlLCBoZWFkbGluZSkgewogICAgICAgIHN1cGVyKCk7CiAgICAgICAgdGhpcy5tZW51S2V5ID0gbWVudUtleTsKICAgICAgICB0aGlzLnZhbHVlID0gdmFsdWU7CiAgICAgICAgdGhpcy5pbWdTcmMgPSBpbWFnZTsKICAgICAgICB0aGlzLmhlYWRsaW5lID0gaGVhZGxpbmU7CiAgICB9CiAgICBjcmVhdGVJdGVtKCkgewogICAgICAgIGxldCBpdGVtID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiTEkiKTsKICAgICAgICBpdGVtLnNldEF0dHJpYnV0ZSgib25jbGljayIsICJqYXZhc2NyaXB0OiBvcGVuVGhpc01lbnUodGhpcykiKTsKICAgICAgICBpdGVtLnNldEF0dHJpYnV0ZSgiaWQiLCB0aGlzLmlkKTsKICAgICAgICBsZXQgaW1nID0gdGhpcy5jcmVhdGVJTUcodGhpcy5pbWdTcmMpOwogICAgICAgIGxldCB2YWx1ZSA9IHRoaXMuY3JlYXRlVmFsdWUodGhpcy52YWx1ZSk7CiAgICAgICAgaXRlbS5hcHBlbmRDaGlsZChpbWcpOwogICAgICAgIGl0ZW0uYXBwZW5kQ2hpbGQodmFsdWUpOwogICAgICAgIGxldCBkb2MgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCh0aGlzLkRvY3VtZW50SUQpOwogICAgICAgIGRvYy5hcHBlbmRDaGlsZChpdGVtKTsKICAgICAgICBzd2l0Y2ggKHRoaXMubWVudUtleSkgewogICAgICAgICAgICBjYXNlICJwbGF5bGlzdCI6CiAgICAgICAgICAgICAgICB0aGlzLnRhYmxlSGVhZGVyID0gWyJ7ey5wbGF5bGlzdC50YWJsZS5wbGF5bGlzdH19IiwgInt7LnBsYXlsaXN0LnRhYmxlLnR1bmVyfX0iLCAie3sucGxheWxpc3QudGFibGUubGFzdFVwZGF0ZX19IiwgInt7LnBsYXlsaXN0LnRhYmxlLmF2YWlsYWJpbGl0eX19ICUiLCAie3sucGxheWxpc3QudGFibGUudHlwZX19IiwgInt7LnBsYXlsaXN0LnRhYmxlLnN0cmVhbXN9fSIsICJ7ey5wbGF5bGlzdC50YWJsZS5ncm91cFRpdGxlfX0gJSIsICJ7ey5wbGF5bGlzdC50YWJsZS50dmdJRH19ICUiLCAie3sucGxheWxpc3QudGFibGUudW5pcXVlSUR9fSAlIl07CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAieG1sdHYiOgogICAgICAgICAgICAgICAgdGhpcy50YWJsZUhlYWRlciA9IFsie3sueG1sdHYudGFibGUuZ3VpZGV9fSIsICJ7ey54bWx0di50YWJsZS5sYXN0VXBkYXRlfX0iLCAie3sueG1sdHYudGFibGUuYXZhaWxhYmlsaXR5fX0gJSIsICJ7ey54bWx0di50YWJsZS5jaGFubmVsc319IiwgInt7LnhtbHR2LnRhYmxlLnByb2dyYW1zfX0iXTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJmaWx0ZXIiOgogICAgICAgICAgICAgICAgdGhpcy50YWJsZUhlYWRlciA9IFsie3suZmlsdGVyLnRhYmxlLnN0YXJ0aW5nQ2hhbm5lbH19IiwgInt7LmZpbHRlci50YWJsZS5uYW1lfX0iLCAie3suZmlsdGVyLnRhYmxlLnR5cGV9fSIsICJ7ey5maWx0ZXIudGFibGUuZmlsdGVyfX0iXTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJ1c2VycyI6CiAgICAgICAgICAgICAgICB0aGlzLnRhYmxlSGVhZGVyID0gWyJ7ey51c2Vycy50YWJsZS51c2VybmFtZX19IiwgInt7LnVzZXJzLnRhYmxlLnBhc3N3b3JkfX0iLCAie3sudXNlcnMudGFibGUud2VifX0iLCAie3sudXNlcnMudGFibGUucG1zfX0iLCAie3sudXNlcnMudGFibGUubTN1fX0iLCAie3sudXNlcnMudGFibGUueG1sfX0iLCAie3sudXNlcnMudGFibGUuYXBpfX0iXTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJtYXBwaW5nIjoKICAgICAgICAgICAgICAgIHRoaXMudGFibGVIZWFkZXIgPSBbIkJVTEsiLCAie3subWFwcGluZy50YWJsZS5jaE5vfX0iLCAie3subWFwcGluZy50YWJsZS5sb2dvfX0iLCAie3subWFwcGluZy50YWJsZS5jaGFubmVsTmFtZX19IiwgInt7Lm1hcHBpbmcudGFibGUudXBkYXRlQ2hhbm5lbE5hbWVSZWdleH19IiwgInt7Lm1hcHBpbmcudGFibGUucGxheWxpc3R9fSIsICJ7ey5tYXBwaW5nLnRhYmxlLmdyb3VwVGl0bGV9fSIsICJ7ey5tYXBwaW5nLnRhYmxlLnhtbHR2RmlsZX19IiwgInt7Lm1hcHBpbmcudGFibGUueG1sdHZJRH19IiwgInt7Lm1hcHBpbmcudGFibGUudGltZXNoaWZ0fX0iXTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgIH0KICAgIH0KfQpjbGFzcyBDb250ZW50IHsKICAgIGNvbnN0cnVjdG9yKCkgewogICAgICAgIHRoaXMuRG9jdW1lbnRJRCA9ICJjb250ZW50IjsKICAgICAgICB0aGlzLlRhYmxlSUQgPSAiY29udGVudF90YWJsZSI7CiAgICAgICAgdGhpcy5oZWFkZXJDbGFzcyA9ICJjb250ZW50X3RhYmxlX2hlYWRlciI7CiAgICAgICAgdGhpcy5pbnRlcmFjdGlvbklEID0gImNvbnRlbnQtaW50ZXJhY3Rpb24iOwogICAgfQogICAgY3JlYXRlSGVhZGxpbmUodmFsdWUpIHsKICAgICAgICBsZXQgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIkgzIik7CiAgICAgICAgZWxlbWVudC5pbm5lckhUTUwgPSB2YWx1ZTsKICAgICAgICByZXR1cm4gZWxlbWVudDsKICAgIH0KICAgIGNyZWF0ZUhSKCkgewogICAgICAgIHJldHVybiBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJIUiIpOwogICAgfQogICAgY3JlYXRlSW50ZXJhY3Rpb24oKSB7CiAgICAgICAgbGV0IGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJESVYiKTsKICAgICAgICBlbGVtZW50LnNldEF0dHJpYnV0ZSgiaWQiLCB0aGlzLmludGVyYWN0aW9uSUQpOwogICAgICAgIHJldHVybiBlbGVtZW50OwogICAgfQogICAgY3JlYXRlRElWKCkgewogICAgICAgIGxldCBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiRElWIik7CiAgICAgICAgZWxlbWVudC5pZCA9IHRoaXMuRGl2SUQ7CiAgICAgICAgcmV0dXJuIGVsZW1lbnQ7CiAgICB9CiAgICBjcmVhdGVUQUJMRSgpIHsKICAgICAgICBsZXQgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlRBQkxFIik7CiAgICAgICAgZWxlbWVudC5pZCA9IHRoaXMuVGFibGVJRDsKICAgICAgICByZXR1cm4gZWxlbWVudDsKICAgIH0KICAgIGNyZWF0ZVRhYmxlUm93KCkgewogICAgICAgIGxldCBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVFIiKTsKICAgICAgICBlbGVtZW50LmNsYXNzTmFtZSA9IHRoaXMuaGVhZGVyQ2xhc3M7CiAgICAgICAgcmV0dXJuIGVsZW1lbnQ7CiAgICB9CiAgICBjcmVhdGVUYWJsZUNvbnRlbnQobWVudUtleSkgewogICAgICAgIGxldCBkYXRhID0ge307CiAgICAgICAgbGV0IHJvd3MgPSBbXTsKICAgICAgICBsZXQgZmlsZVR5cGVzID0gW107CiAgICAgICAgc3dpdGNoIChtZW51S2V5KSB7CiAgICAgICAgICAgIGNhc2UgInBsYXlsaXN0IjoKICAgICAgICAgICAgICAgIGZpbGVUeXBlcyA9IFsibTN1IiwgImhkaHIiXTsKICAgICAgICAgICAgICAgIGZpbGVUeXBlcy5mb3JFYWNoKGZpbGVUeXBlID0+IHsKICAgICAgICAgICAgICAgICAgICBkYXRhID0gU0VSVkVSWyJzZXR0aW5ncyJdWyJmaWxlcyJdW2ZpbGVUeXBlXTsKICAgICAgICAgICAgICAgICAgICB2YXIga2V5cyA9IGdldE93bk9ialByb3BzKGRhdGEpOwogICAgICAgICAgICAgICAgICAgIGtleXMuZm9yRWFjaChrZXkgPT4gewogICAgICAgICAgICAgICAgICAgICAgICB2YXIgdHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJUUiIpOwogICAgICAgICAgICAgICAgICAgICAgICB0ci5pZCA9IGtleTsKICAgICAgICAgICAgICAgICAgICAgICAgdHIuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgiJyArIGZpbGVUeXBlICsgJyIsIHRoaXMpJyk7CiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsKICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7CiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOwogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJuYW1lIl07CiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsKICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOwogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7CiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChTRVJWRVJbInNldHRpbmdzIl1bImJ1ZmZlciJdICE9ICItIikgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsidHVuZXIiXTsKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSAiLSI7CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOwogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7CiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOwogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsKICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsibGFzdC51cGRhdGUiXTsKICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOwogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7CiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOwogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsKICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsicHJvdmlkZXIuYXZhaWxhYmlsaXR5Il07CiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsKICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOwogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7CiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bInR5cGUiXS50b1VwcGVyQ2FzZSgpOwogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7CiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsKICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7CiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOwogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJjb21wYXRpYmlsaXR5Il1bInN0cmVhbXMiXTsKICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOwogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7CiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOwogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsKICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsiY29tcGF0aWJpbGl0eSJdWyJncm91cC50aXRsZSJdOwogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7CiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsKICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7CiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOwogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJjb21wYXRpYmlsaXR5Il1bInR2Zy5pZCJdOwogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7CiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsKICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7CiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOwogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJjb21wYXRpYmlsaXR5Il1bInN0cmVhbS5pZCJdOwogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7CiAgICAgICAgICAgICAgICAgICAgICAgIHJvd3MucHVzaCh0cik7CiAgICAgICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJmaWx0ZXIiOgogICAgICAgICAgICAgICAgZGVsZXRlIFNFUlZFUlsic2V0dGluZ3MiXVsiZmlsdGVyIl1bLTFdOwogICAgICAgICAgICAgICAgZGF0YSA9IFNFUlZFUlsic2V0dGluZ3MiXVsiZmlsdGVyIl07CiAgICAgICAgICAgICAgICB2YXIga2V5cyA9IGdldE93bk9ialByb3BzKGRhdGEpOwogICAgICAgICAgICAgICAga2V5cy5mb3JFYWNoKGtleSA9PiB7CiAgICAgICAgICAgICAgICAgICAgdmFyIHRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVFIiKTsKICAgICAgICAgICAgICAgICAgICB0ci5pZCA9IGtleTsKICAgICAgICAgICAgICAgICAgICB0ci5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCInICsgZGF0YVtrZXldWyJ0eXBlIl0gKyAnIiwgdGhpcyknKTsKICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7CiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7CiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7CiAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsic3RhcnRpbmdDaGFubmVsIl07CiAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOwogICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsKICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsKICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJuYW1lIl07CiAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOwogICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsKICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsKICAgICAgICAgICAgICAgICAgICBzd2l0Y2ggKGRhdGFba2V5XVsidHlwZSJdKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgImN1c3RvbS1maWx0ZXIiOgogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9ICJ7ey5maWx0ZXIuY3VzdG9tfX0iOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgImdyb3VwLXRpdGxlIjoKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSAie3suZmlsdGVyLmdyb3VwfX0iOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOwogICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsKICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsKICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJmaWx0ZXIiXTsKICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7CiAgICAgICAgICAgICAgICAgICAgcm93cy5wdXNoKHRyKTsKICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgInhtbHR2IjoKICAgICAgICAgICAgICAgIGZpbGVUeXBlcyA9IG5ldyBBcnJheSgieG1sdHYiKTsKICAgICAgICAgICAgICAgIGZpbGVUeXBlcy5mb3JFYWNoKGZpbGVUeXBlID0+IHsKICAgICAgICAgICAgICAgICAgICBkYXRhID0gU0VSVkVSWyJzZXR0aW5ncyJdWyJmaWxlcyJdW2ZpbGVUeXBlXTsKICAgICAgICAgICAgICAgICAgICB2YXIga2V5cyA9IGdldE93bk9ialByb3BzKGRhdGEpOwogICAgICAgICAgICAgICAgICAgIGtleXMuZm9yRWFjaChrZXkgPT4gewogICAgICAgICAgICAgICAgICAgICAgICB2YXIgdHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJUUiIpOwogICAgICAgICAgICAgICAgICAgICAgICB0ci5pZCA9IGtleTsKICAgICAgICAgICAgICAgICAgICAgICAgdHIuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgiJyArIGZpbGVUeXBlICsgJyIsIHRoaXMpJyk7CiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsKICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7CiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOwogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJuYW1lIl07CiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsKICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOwogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7CiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bImxhc3QudXBkYXRlIl07CiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsKICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOwogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7CiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bInByb3ZpZGVyLmF2YWlsYWJpbGl0eSJdOwogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7CiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsKICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7CiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOwogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJjb21wYXRpYmlsaXR5Il1bInhtbHR2LmNoYW5uZWxzIl07CiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsKICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOwogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7CiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bImNvbXBhdGliaWxpdHkiXVsieG1sdHYucHJvZ3JhbXMiXTsKICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOwogICAgICAgICAgICAgICAgICAgICAgICByb3dzLnB1c2godHIpOwogICAgICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAidXNlcnMiOgogICAgICAgICAgICAgICAgZmlsZVR5cGVzID0gbmV3IEFycmF5KCJ1c2VycyIpOwogICAgICAgICAgICAgICAgZmlsZVR5cGVzLmZvckVhY2goZmlsZVR5cGUgPT4gewogICAgICAgICAgICAgICAgICAgIGRhdGEgPSBTRVJWRVJbZmlsZVR5cGVdOwogICAgICAgICAgICAgICAgICAgIHZhciBrZXlzID0gZ2V0T3duT2JqUHJvcHMoZGF0YSk7CiAgICAgICAgICAgICAgICAgICAga2V5cy5mb3JFYWNoKGtleSA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgIHZhciB0ciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlRSIik7CiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmlkID0ga2V5OwogICAgICAgICAgICAgICAgICAgICAgICB0ci5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCInICsgZmlsZVR5cGUgKyAnIiwgdGhpcyknKTsKICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOwogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7CiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bImRhdGEiXVsidXNlcm5hbWUiXTsKICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOwogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7CiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOwogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsKICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9ICIqKioqKioiOwogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7CiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsKICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7CiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOwogICAgICAgICAgICAgICAgICAgICAgICBpZiAoZGF0YVtrZXldWyJkYXRhIl1bImF1dGhlbnRpY2F0aW9uLndlYiJdID09IHRydWUpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSAi4pyTIjsKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSAiLSI7CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOwogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7CiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOwogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsKICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGRhdGFba2V5XVsiZGF0YSJdWyJhdXRoZW50aWNhdGlvbi5wbXMiXSA9PSB0cnVlKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gIuKckyI7CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gIi0iOwogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsKICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOwogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7CiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChkYXRhW2tleV1bImRhdGEiXVsiYXV0aGVudGljYXRpb24ubTN1Il0gPT0gdHJ1ZSkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9ICLinJMiOwogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9ICItIjsKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7CiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsKICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7CiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOwogICAgICAgICAgICAgICAgICAgICAgICBpZiAoZGF0YVtrZXldWyJkYXRhIl1bImF1dGhlbnRpY2F0aW9uLnhtbCJdID09IHRydWUpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSAi4pyTIjsKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSAiLSI7CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOwogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7CiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOwogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsKICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGRhdGFba2V5XVsiZGF0YSJdWyJhdXRoZW50aWNhdGlvbi5hcGkiXSA9PSB0cnVlKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gIuKckyI7CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gIi0iOwogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsKICAgICAgICAgICAgICAgICAgICAgICAgcm93cy5wdXNoKHRyKTsKICAgICAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgIm1hcHBpbmciOgogICAgICAgICAgICAgICAgQlVMS19FRElUID0gZmFsc2U7CiAgICAgICAgICAgICAgICBjcmVhdGVTZWFyY2hPYmooKTsKICAgICAgICAgICAgICAgIGNoZWNrVW5kbygiZXBnTWFwcGluZyIpOwogICAgICAgICAgICAgICAgZGF0YSA9IFNFUlZFUlsieGVwZyJdWyJlcGdNYXBwaW5nIl07CiAgICAgICAgICAgICAgICB2YXIga2V5cyA9IGdldE93bk9ialByb3BzKGRhdGEpOwogICAgICAgICAgICAgICAga2V5cy5mb3JFYWNoKGtleSA9PiB7CiAgICAgICAgICAgICAgICAgICAgdmFyIHRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVFIiKTsKICAgICAgICAgICAgICAgICAgICB0ci5pZCA9IGtleTsKICAgICAgICAgICAgICAgICAgICBzd2l0Y2ggKGRhdGFba2V5XVsieC1hY3RpdmUiXSkgewogICAgICAgICAgICAgICAgICAgICAgICBjYXNlIHRydWU6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ci5jbGFzc05hbWUgPSAiYWN0aXZlRVBHIjsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICAgICAgICBjYXNlIGZhbHNlOgogICAgICAgICAgICAgICAgICAgICAgICAgICAgdHIuY2xhc3NOYW1lID0gIm5vdEFjdGl2ZUVQRyI7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgLy8gQnVsawogICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsKICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJCVUxLIjsKICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZmFsc2U7CiAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOwogICAgICAgICAgICAgICAgICAgIC8vIENoYW5uZWwgbnVtYmVyCiAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOwogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOwogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIklOUFVUQ0hBTk5FTCI7CiAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsieC1jaGFubmVsSUQiXTsKICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7CiAgICAgICAgICAgICAgICAgICAgLy8gTG9nbwogICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsKICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJJTUciOwogICAgICAgICAgICAgICAgICAgIGNlbGwuaW1hZ2VVUkwgPSBkYXRhW2tleV1bInR2Zy1sb2dvIl07CiAgICAgICAgICAgICAgICAgICAgdmFyIHRkID0gY2VsbC5jcmVhdGVDZWxsKCk7CiAgICAgICAgICAgICAgICAgICAgdGQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgibWFwcGluZyIsIHRoaXMpJyk7CiAgICAgICAgICAgICAgICAgICAgdGQuaWQgPSBrZXk7CiAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQodGQpOwogICAgICAgICAgICAgICAgICAgIC8vIENoYW5uZWwgbmFtZQogICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsKICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsKICAgICAgICAgICAgICAgICAgICBjZWxsLmNsYXNzTmFtZSA9IGRhdGFba2V5XVsieC1jYXRlZ29yeSJdOwogICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bIngtbmFtZSJdOwogICAgICAgICAgICAgICAgICAgIHZhciB0ZCA9IGNlbGwuY3JlYXRlQ2VsbCgpOwogICAgICAgICAgICAgICAgICAgIHRkLnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoIm1hcHBpbmciLCB0aGlzKScpOwogICAgICAgICAgICAgICAgICAgIHRkLmlkID0ga2V5OwogICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKHRkKTsKICAgICAgICAgICAgICAgICAgICAvLyBVcGRhdGUgY2hhbm5lbCBuYW1lIHJlZ2V4CiAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOwogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOwogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOwogICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bInVwZGF0ZS1jaGFubmVsLW5hbWUtcmVnZXgiXTsKICAgICAgICAgICAgICAgICAgICB2YXIgdGQgPSBjZWxsLmNyZWF0ZUNlbGwoKTsKICAgICAgICAgICAgICAgICAgICB0ZC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJtYXBwaW5nIiwgdGhpcyknKTsKICAgICAgICAgICAgICAgICAgICB0ZC5pZCA9IGtleTsKICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZCh0ZCk7CiAgICAgICAgICAgICAgICAgICAgLy8gUGxheWxpc3QKICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7CiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7CiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7CiAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGdldFZhbHVlRnJvbVByb3ZpZGVyRmlsZShkYXRhW2tleV1bIl9maWxlLm0zdS5pZCJdLCAibTN1IiwgIm5hbWUiKTsKICAgICAgICAgICAgICAgICAgICB2YXIgdGQgPSBjZWxsLmNyZWF0ZUNlbGwoKTsKICAgICAgICAgICAgICAgICAgICB0ZC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJtYXBwaW5nIiwgdGhpcyknKTsKICAgICAgICAgICAgICAgICAgICB0ZC5pZCA9IGtleTsKICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZCh0ZCk7CiAgICAgICAgICAgICAgICAgICAgLy8gR3JvdXAgKGdyb3VwLXRpdGxlKQogICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsKICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsKICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJ4LWdyb3VwLXRpdGxlIl07CiAgICAgICAgICAgICAgICAgICAgdmFyIHRkID0gY2VsbC5jcmVhdGVDZWxsKCk7CiAgICAgICAgICAgICAgICAgICAgdGQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgibWFwcGluZyIsIHRoaXMpJyk7CiAgICAgICAgICAgICAgICAgICAgdGQuaWQgPSBrZXk7CiAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQodGQpOwogICAgICAgICAgICAgICAgICAgIC8vIFhNTFRWIGZpbGUKICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7CiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7CiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7CiAgICAgICAgICAgICAgICAgICAgaWYgKGRhdGFba2V5XVsieC14bWx0di1maWxlIl0gIT0gIi0iKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBnZXRWYWx1ZUZyb21Qcm92aWRlckZpbGUoZGF0YVtrZXldWyJ4LXhtbHR2LWZpbGUiXSwgInhtbHR2IiwgIm5hbWUiKTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bIngteG1sdHYtZmlsZSJdOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB2YXIgdGQgPSBjZWxsLmNyZWF0ZUNlbGwoKTsKICAgICAgICAgICAgICAgICAgICB0ZC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJtYXBwaW5nIiwgdGhpcyknKTsKICAgICAgICAgICAgICAgICAgICB0ZC5pZCA9IGtleTsKICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZCh0ZCk7CiAgICAgICAgICAgICAgICAgICAgLy8gWE1MVFYgQ2hhbm5lbAogICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsKICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsKICAgICAgICAgICAgICAgICAgICB2YXIgdmFsdWUgPSBkYXRhW2tleV1bIngtbWFwcGluZyJdOwogICAgICAgICAgICAgICAgICAgIGlmICh2YWx1ZS5sZW5ndGggPiAyMCkgewogICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IGRhdGFba2V5XVsieC1tYXBwaW5nIl0uc3Vic3RyaW5nKDAsIDIwKSArICIuLi4iOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gdmFsdWU7CiAgICAgICAgICAgICAgICAgICAgdmFyIHRkID0gY2VsbC5jcmVhdGVDZWxsKCk7CiAgICAgICAgICAgICAgICAgICAgdGQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgibWFwcGluZyIsIHRoaXMpJyk7CiAgICAgICAgICAgICAgICAgICAgdGQuaWQgPSBrZXk7CiAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQodGQpOwogICAgICAgICAgICAgICAgICAgIC8vIFRpbWVTaGlmdAogICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsKICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsKICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJ4LXRpbWVzaGlmdCJdOwogICAgICAgICAgICAgICAgICAgIHZhciB0ZCA9IGNlbGwuY3JlYXRlQ2VsbCgpOwogICAgICAgICAgICAgICAgICAgIHRkLnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoIm1hcHBpbmciLCB0aGlzKScpOwogICAgICAgICAgICAgICAgICAgIHRkLmlkID0ga2V5OwogICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKHRkKTsKICAgICAgICAgICAgICAgICAgICByb3dzLnB1c2godHIpOwogICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAic2V0dGluZ3MiOgogICAgICAgICAgICAgICAgYWxlcnQoKTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgfQogICAgICAgIHJldHVybiByb3dzOwogICAgfQp9CmNsYXNzIENlbGwgewogICAgY3JlYXRlQ2VsbCgpIHsKICAgICAgICBsZXQgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOwogICAgICAgIGlmICh0aGlzLmNoaWxkID09IHRydWUpIHsKICAgICAgICAgICAgdmFyIGVsZW1lbnQ7CiAgICAgICAgICAgIHN3aXRjaCAodGhpcy5jaGlsZFR5cGUpIHsKICAgICAgICAgICAgICAgIGNhc2UgIlAiOgogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KHRoaXMuY2hpbGRUeXBlKTsKICAgICAgICAgICAgICAgICAgICBlbGVtZW50LmlubmVySFRNTCA9IHRoaXMudmFsdWU7CiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC5jbGFzc05hbWUgPSB0aGlzLmNsYXNzTmFtZTsKICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgIGNhc2UgIklOUFVUIjoKICAgICAgICAgICAgICAgICAgICBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCh0aGlzLmNoaWxkVHlwZSk7CiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC52YWx1ZSA9IHRoaXMudmFsdWU7CiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC50eXBlID0gInRleHQiOwogICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgY2FzZSAiSU5QVVRDSEFOTkVMIjoKICAgICAgICAgICAgICAgICAgICBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiSU5QVVQiKTsKICAgICAgICAgICAgICAgICAgICBlbGVtZW50LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2c2NyaXB0OiBjaGFuZ2VDaGFubmVsTnVtYmVyKHRoaXMpIik7CiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC52YWx1ZSA9IHRoaXMudmFsdWU7CiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC50eXBlID0gInRleHQiOwogICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgY2FzZSAiQlVMSyI6CiAgICAgICAgICAgICAgICAgICAgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIklOUFVUIik7CiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC5jaGVja2VkID0gdGhpcy52YWx1ZTsKICAgICAgICAgICAgICAgICAgICBlbGVtZW50LnR5cGUgPSAiY2hlY2tib3giOwogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQuY2xhc3NOYW1lID0gImJ1bGsgaGlkZUJ1bGsiOwogICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgY2FzZSAiQlVMS19IRUFEIjoKICAgICAgICAgICAgICAgICAgICBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiSU5QVVQiKTsKICAgICAgICAgICAgICAgICAgICBlbGVtZW50LmNoZWNrZWQgPSB0aGlzLnZhbHVlOwogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQudHlwZSA9ICJjaGVja2JveCI7CiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC5jbGFzc05hbWUgPSAiYnVsayBoaWRlQnVsayI7CiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAiamF2YXNjcmlwdDogc2VsZWN0QWxsQ2hhbm5lbHMoKSIpOwogICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgY2FzZSAiSU1HIjoKICAgICAgICAgICAgICAgICAgICBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCh0aGlzLmNoaWxkVHlwZSk7CiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC5zZXRBdHRyaWJ1dGUoInNyYyIsIHRoaXMuaW1hZ2VVUkwpOwogICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLmltYWdlVVJMICE9ICIiKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGVsZW1lbnQuc2V0QXR0cmlidXRlKCJvbmVycm9yIiwgImphdmFzY3JpcHQ6IHRoaXMub25lcnJvcj1udWxsO3RoaXMuc3JjPScnIik7CiAgICAgICAgICAgICAgICAgICAgICAgIC8vb25lcnJvcj0idGhpcy5vbmVycm9yPW51bGw7dGhpcy5zcmM9J21pc3NpbmcuZ2lmJzsiCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICAgIHRkLmFwcGVuZENoaWxkKGVsZW1lbnQpOwogICAgICAgIH0KICAgICAgICBlbHNlIHsKICAgICAgICAgICAgdGQuaW5uZXJIVE1MID0gdGhpcy52YWx1ZTsKICAgICAgICB9CiAgICAgICAgaWYgKHRoaXMub25jbGljayA9PSB0cnVlKSB7CiAgICAgICAgICAgIHRkLnNldEF0dHJpYnV0ZSgib25jbGljayIsIHRoaXMub25jbGlja0Z1bmN0aW9uKTsKICAgICAgICAgICAgdGQuY2xhc3NOYW1lID0gInBvaW50ZXIiOwogICAgICAgIH0KICAgICAgICBpZiAodGhpcy50ZENsYXNzTmFtZSAhPSB1bmRlZmluZWQpIHsKICAgICAgICAgICAgdGQuY2xhc3NOYW1lID0gdGhpcy50ZENsYXNzTmFtZTsKICAgICAgICB9CiAgICAgICAgcmV0dXJuIHRkOwogICAgfQp9CmNsYXNzIFNob3dDb250ZW50IGV4dGVuZHMgQ29udGVudCB7CiAgICBjb25zdHJ1Y3RvcihtZW51SUQpIHsKICAgICAgICBzdXBlcigpOwogICAgICAgIHRoaXMubWVudUlEID0gbWVudUlEOwogICAgfQogICAgY3JlYXRlSW5wdXQodHlwZSwgbmFtZSwgdmFsdWUpIHsKICAgICAgICBsZXQgaW5wdXQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJJTlBVVCIpOwogICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgidHlwZSIsIHR5cGUpOwogICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgibmFtZSIsIG5hbWUpOwogICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgidmFsdWUiLCB2YWx1ZSk7CiAgICAgICAgcmV0dXJuIGlucHV0OwogICAgfQogICAgc2hvdygpIHsKICAgICAgICBDT0xVTU5fVE9fU09SVCA9IC0xOwogICAgICAgIC8vIERlbGV0ZSBvbGQgY29udGVudAogICAgICAgIGxldCBkb2MgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCh0aGlzLkRvY3VtZW50SUQpOwogICAgICAgIGRvYy5pbm5lckhUTUwgPSAiIjsKICAgICAgICBzaG93UHJldmlldyhmYWxzZSk7CiAgICAgICAgLy8gSGVhZGxpbmUKICAgICAgICBsZXQgaGVhZGxpbmUgPSBtZW51SXRlbXNbdGhpcy5tZW51SURdLmhlYWRsaW5lOwogICAgICAgIGxldCBtZW51S2V5ID0gbWVudUl0ZW1zW3RoaXMubWVudUlEXS5tZW51S2V5OwogICAgICAgIGxldCBoID0gdGhpcy5jcmVhdGVIZWFkbGluZShoZWFkbGluZSk7CiAgICAgICAgZG9jLmFwcGVuZENoaWxkKGgpOwogICAgICAgIGxldCBociA9IHRoaXMuY3JlYXRlSFIoKTsKICAgICAgICBkb2MuYXBwZW5kQ2hpbGQoaHIpOwogICAgICAgIC8vIEludGVyYWN0aW9uCiAgICAgICAgbGV0IGRpdiA9IHRoaXMuY3JlYXRlSW50ZXJhY3Rpb24oKTsKICAgICAgICBkb2MuYXBwZW5kQ2hpbGQoZGl2KTsKICAgICAgICBsZXQgaW50ZXJhY3Rpb24gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCh0aGlzLmludGVyYWN0aW9uSUQpOwogICAgICAgIHN3aXRjaCAobWVudUtleSkgewogICAgICAgICAgICBjYXNlICJwbGF5bGlzdCI6CiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSB0aGlzLmNyZWF0ZUlucHV0KCJidXR0b24iLCBtZW51S2V5LCAie3suYnV0dG9uLm5ld319Iik7CiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoImlkIiwgIi0iKTsKICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoInBsYXlsaXN0IiknKTsKICAgICAgICAgICAgICAgIGludGVyYWN0aW9uLmFwcGVuZENoaWxkKGlucHV0KTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJmaWx0ZXIiOgogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gdGhpcy5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgbWVudUtleSwgInt7LmJ1dHRvbi5uZXd9fSIpOwogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJpZCIsIC0xKTsKICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoImZpbHRlciIsIHRoaXMpJyk7CiAgICAgICAgICAgICAgICBpbnRlcmFjdGlvbi5hcHBlbmRDaGlsZChpbnB1dCk7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAieG1sdHYiOgogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gdGhpcy5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgbWVudUtleSwgInt7LmJ1dHRvbi5uZXd9fSIpOwogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJpZCIsICJ4bWx0diIpOwogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgieG1sdHYiKScpOwogICAgICAgICAgICAgICAgaW50ZXJhY3Rpb24uYXBwZW5kQ2hpbGQoaW5wdXQpOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgInVzZXJzIjoKICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IHRoaXMuY3JlYXRlSW5wdXQoImJ1dHRvbiIsIG1lbnVLZXksICJ7ey5idXR0b24ubmV3fX0iKTsKICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgiaWQiLCAidXNlcnMiKTsKICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoInVzZXJzIiknKTsKICAgICAgICAgICAgICAgIGludGVyYWN0aW9uLmFwcGVuZENoaWxkKGlucHV0KTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJtYXBwaW5nIjoKICAgICAgICAgICAgICAgIHNob3dFbGVtZW50KCJsb2FkaW5nIiwgdHJ1ZSk7CiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSB0aGlzLmNyZWF0ZUlucHV0KCJidXR0b24iLCBtZW51S2V5LCAie3suYnV0dG9uLnNhdmV9fSIpOwogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoIm1hcHBpbmciLCAiIiwgIiIpJyk7CiAgICAgICAgICAgICAgICBpbnRlcmFjdGlvbi5hcHBlbmRDaGlsZChpbnB1dCk7CiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSB0aGlzLmNyZWF0ZUlucHV0KCJidXR0b24iLCBtZW51S2V5LCAie3suYnV0dG9uLmJ1bGtFZGl0fX0iKTsKICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBidWxrRWRpdCgpJyk7CiAgICAgICAgICAgICAgICBpbnRlcmFjdGlvbi5hcHBlbmRDaGlsZChpbnB1dCk7CiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSB0aGlzLmNyZWF0ZUlucHV0KCJzZWFyY2giLCAic2VhcmNoIiwgIiIpOwogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJpZCIsICJzZWFyY2hNYXBwaW5nIik7CiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LmJ1dHRvbi5zZWFyY2h9fSIpOwogICAgICAgICAgICAgICAgaW5wdXQuY2xhc3NOYW1lID0gInNlYXJjaCI7CiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgJ2phdmFzY3JpcHQ6IHNlYXJjaEluTWFwcGluZygpJyk7CiAgICAgICAgICAgICAgICBpbnRlcmFjdGlvbi5hcHBlbmRDaGlsZChpbnB1dCk7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAic2V0dGluZ3MiOgogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gdGhpcy5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgbWVudUtleSwgInt7LmJ1dHRvbi5zYXZlfX0iKTsKICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBzYXZlU2V0dGluZ3MoKTsnKTsKICAgICAgICAgICAgICAgIGludGVyYWN0aW9uLmFwcGVuZENoaWxkKGlucHV0KTsKICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IHRoaXMuY3JlYXRlSW5wdXQoImJ1dHRvbiIsIG1lbnVLZXksICJ7ey5idXR0b24uYmFja3VwfX0iKTsKICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBiYWNrdXAoKTsnKTsKICAgICAgICAgICAgICAgIGludGVyYWN0aW9uLmFwcGVuZENoaWxkKGlucHV0KTsKICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IHRoaXMuY3JlYXRlSW5wdXQoImJ1dHRvbiIsIG1lbnVLZXksICJ7ey5idXR0b24ucmVzdG9yZX19Iik7CiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogcmVzdG9yZSgpOycpOwogICAgICAgICAgICAgICAgaW50ZXJhY3Rpb24uYXBwZW5kQ2hpbGQoaW5wdXQpOwogICAgICAgICAgICAgICAgdmFyIHdyYXBwZXIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJESVYiKTsKICAgICAgICAgICAgICAgIHdyYXBwZXIuc2V0QXR0cmlidXRlKCJpZCIsICJib3gtd3JhcHBlciIpOwogICAgICAgICAgICAgICAgZG9jLmFwcGVuZENoaWxkKHdyYXBwZXIpOwogICAgICAgICAgICAgICAgdGhpcy5EaXZJRCA9ICJjb250ZW50X3NldHRpbmdzIjsKICAgICAgICAgICAgICAgIHZhciBzZXR0aW5ncyA9IHRoaXMuY3JlYXRlRElWKCk7CiAgICAgICAgICAgICAgICB3cmFwcGVyLmFwcGVuZENoaWxkKHNldHRpbmdzKTsKICAgICAgICAgICAgICAgIHNob3dTZXR0aW5ncygpOwogICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICBjYXNlICJsb2ciOgogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gdGhpcy5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgbWVudUtleSwgInt7LmJ1dHRvbi5yZXNldExvZ3N9fSIpOwogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IHJlc2V0TG9ncygpOycpOwogICAgICAgICAgICAgICAgaW50ZXJhY3Rpb24uYXBwZW5kQ2hpbGQoaW5wdXQpOwogICAgICAgICAgICAgICAgdmFyIHdyYXBwZXIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJESVYiKTsKICAgICAgICAgICAgICAgIHdyYXBwZXIuc2V0QXR0cmlidXRlKCJpZCIsICJib3gtd3JhcHBlciIpOwogICAgICAgICAgICAgICAgZG9jLmFwcGVuZENoaWxkKHdyYXBwZXIpOwogICAgICAgICAgICAgICAgdGhpcy5EaXZJRCA9ICJjb250ZW50X2xvZyI7CiAgICAgICAgICAgICAgICB2YXIgbG9ncyA9IHRoaXMuY3JlYXRlRElWKCk7CiAgICAgICAgICAgICAgICB3cmFwcGVyLmFwcGVuZENoaWxkKGxvZ3MpOwogICAgICAgICAgICAgICAgc2hvd0xvZ3ModHJ1ZSk7CiAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgIGNhc2UgImxvZ291dCI6CiAgICAgICAgICAgICAgICBsb2NhdGlvbi5yZWxvYWQoKTsKICAgICAgICAgICAgICAgIGRvY3VtZW50LmNvb2tpZSA9ICJUb2tlbj0gOyBleHBpcmVzID0gVGh1LCAwMSBKYW4gMTk3MCAwMDowMDowMCBHTVQiOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICB9CiAgICAgICAgLy8gQ3JlYXRlIHRhYmxlIChpZiBuZWVkZWQpCiAgICAgICAgdmFyIHRhYmxlSGVhZGVyID0gbWVudUl0ZW1zW3RoaXMubWVudUlEXS50YWJsZUhlYWRlcjsKICAgICAgICBpZiAodGFibGVIZWFkZXIubGVuZ3RoID4gMCkgewogICAgICAgICAgICB2YXIgd3JhcHBlciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIkRJViIpOwogICAgICAgICAgICBkb2MuYXBwZW5kQ2hpbGQod3JhcHBlcik7CiAgICAgICAgICAgIHdyYXBwZXIuc2V0QXR0cmlidXRlKCJpZCIsICJib3gtd3JhcHBlciIpOwogICAgICAgICAgICB2YXIgdGFibGUgPSB0aGlzLmNyZWF0ZVRBQkxFKCk7CiAgICAgICAgICAgIHdyYXBwZXIuYXBwZW5kQ2hpbGQodGFibGUpOwogICAgICAgICAgICB2YXIgaGVhZGVyID0gdGhpcy5jcmVhdGVUYWJsZVJvdygpOwogICAgICAgICAgICB0YWJsZS5hcHBlbmRDaGlsZChoZWFkZXIpOwogICAgICAgICAgICAvLyBUYWJsZSBoZWFkZXIKICAgICAgICAgICAgdGFibGVIZWFkZXIuZm9yRWFjaChlbGVtZW50ID0+IHsKICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsKICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOwogICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7CiAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZWxlbWVudDsKICAgICAgICAgICAgICAgIGlmIChlbGVtZW50ID09ICJCVUxLIikgewogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIkJVTEtfSEVBRCI7CiAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGZhbHNlOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgaWYgKG1lbnVLZXkgPT0gIm1hcHBpbmciKSB7CiAgICAgICAgICAgICAgICAgICAgaWYgKGVsZW1lbnQgPT0gInt7Lm1hcHBpbmcudGFibGUuY2hOb319IikgewogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLm9uY2xpY2sgPSB0cnVlOwogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLm9uY2xpY2tGdW5jdGlvbiA9ICJqYXZhc2NyaXB0OiBzb3J0VGFibGUoMSk7IjsKICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC50ZENsYXNzTmFtZSA9ICJzb3J0VGhpcyI7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIGlmIChlbGVtZW50ID09ICJ7ey5tYXBwaW5nLnRhYmxlLmNoYW5uZWxOYW1lfX0iKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwub25jbGljayA9IHRydWU7CiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwub25jbGlja0Z1bmN0aW9uID0gImphdmFzY3JpcHQ6IHNvcnRUYWJsZSgzKTsiOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBpZiAoZWxlbWVudCA9PSAie3subWFwcGluZy50YWJsZS51cGRhdGVDaGFubmVsTmFtZVJlZ2V4fX0iKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwub25jbGljayA9IHRydWU7CiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwub25jbGlja0Z1bmN0aW9uID0gImphdmFzY3JpcHQ6IHNvcnRUYWJsZSg0KTsiOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBpZiAoZWxlbWVudCA9PSAie3subWFwcGluZy50YWJsZS5wbGF5bGlzdH19IikgewogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLm9uY2xpY2sgPSB0cnVlOwogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLm9uY2xpY2tGdW5jdGlvbiA9ICJqYXZhc2NyaXB0OiBzb3J0VGFibGUoNSk7IjsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgaWYgKGVsZW1lbnQgPT0gInt7Lm1hcHBpbmcudGFibGUuZ3JvdXBUaXRsZX19IikgewogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLm9uY2xpY2sgPSB0cnVlOwogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLm9uY2xpY2tGdW5jdGlvbiA9ICJqYXZhc2NyaXB0OiBzb3J0VGFibGUoNik7IjsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgaWYgKGVsZW1lbnQgPT0gInt7Lm1hcHBpbmcudGFibGUudGltZXNoaWZ0fX0iKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwub25jbGljayA9IHRydWU7CiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwub25jbGlja0Z1bmN0aW9uID0gImphdmFzY3JpcHQ6IHNvcnRUYWJsZSg5KTsiOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGlmIChtZW51S2V5ID09ICJmaWx0ZXIiKSB7CiAgICAgICAgICAgICAgICAgICAgaWYgKGVsZW1lbnQgPT0gInt7LmZpbHRlci50YWJsZS5zdGFydGluZ0NoYW5uZWx9fSIpIHsKICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5vbmNsaWNrID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5vbmNsaWNrRnVuY3Rpb24gPSAiamF2YXNjcmlwdDogc29ydFRhYmxlKDApOyI7CiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudGRDbGFzc05hbWUgPSAic29ydFRoaXMiOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBpZiAoZWxlbWVudCA9PSAie3suZmlsdGVyLnRhYmxlLm5hbWV9fSIpIHsKICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5vbmNsaWNrID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5vbmNsaWNrRnVuY3Rpb24gPSAiamF2YXNjcmlwdDogc29ydFRhYmxlKDEpOyI7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIGlmIChlbGVtZW50ID09ICJ7ey5maWx0ZXIudGFibGUudHlwZX19IikgewogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLm9uY2xpY2sgPSB0cnVlOwogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLm9uY2xpY2tGdW5jdGlvbiA9ICJqYXZhc2NyaXB0OiBzb3J0VGFibGUoMik7IjsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgaWYgKGVsZW1lbnQgPT0gInt7LmZpbHRlci50YWJsZS5maWx0ZXJ9fSIpIHsKICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5vbmNsaWNrID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5vbmNsaWNrRnVuY3Rpb24gPSAiamF2YXNjcmlwdDogc29ydFRhYmxlKDMpOyI7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgaGVhZGVyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsKICAgICAgICAgICAgfSk7CiAgICAgICAgICAgIHRhYmxlLmFwcGVuZENoaWxkKGhlYWRlcik7CiAgICAgICAgICAgIC8vIENvbnRlbnQgb2YgdGhlIHRhYmxlCiAgICAgICAgICAgIHZhciByb3dzID0gdGhpcy5jcmVhdGVUYWJsZUNvbnRlbnQobWVudUtleSk7CiAgICAgICAgICAgIHJvd3MuZm9yRWFjaCh0ciA9PiB7CiAgICAgICAgICAgICAgICB0YWJsZS5hcHBlbmRDaGlsZCh0cik7CiAgICAgICAgICAgIH0pOwogICAgICAgIH0KICAgICAgICBzd2l0Y2ggKG1lbnVLZXkpIHsKICAgICAgICAgICAgY2FzZSAibWFwcGluZyI6CiAgICAgICAgICAgICAgICBzb3J0VGFibGUoMSk7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAiZmlsdGVyIjoKICAgICAgICAgICAgICAgIHNob3dQcmV2aWV3KHRydWUpOwogICAgICAgICAgICAgICAgc29ydFRhYmxlKDApOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICAgICBDT0xVTU5fVE9fU09SVCA9IC0xOwogICAgICAgICAgICAgICAgc29ydFRhYmxlKDApOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgfQogICAgICAgIHNob3dFbGVtZW50KCJsb2FkaW5nIiwgZmFsc2UpOwogICAgfQp9CmZ1bmN0aW9uIFBhZ2VSZWFkeSgpIHsKICAgIGxldCBzZXJ2ZXIgPSBuZXcgU2VydmVyKCJnZXRTZXJ2ZXJDb25maWciKTsKICAgIHNlcnZlci5yZXF1ZXN0KHt9KTsKICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJyZXNpemUiLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgY2FsY3VsYXRlV3JhcHBlckhlaWdodCgpOwogICAgfSwgdHJ1ZSk7CiAgICBzZXRJbnRlcnZhbChmdW5jdGlvbiAoKSB7CiAgICAgICAgdXBkYXRlTG9nKCk7CiAgICB9LCAxMDAwMCk7CiAgICByZXR1cm47Cn0KZnVuY3Rpb24gY3JlYXRlTGF5b3V0KCkgewogICAgLy8gQ2xpZW50IEluZm8KICAgIGxldCBvYmogPSBTRVJWRVJbImNsaWVudEluZm8iXTsKICAgIGxldCBrZXlzID0gZ2V0T3duT2JqUHJvcHMob2JqKTsKICAgIGZvciAodmFyIGkgPSAwOyBpIDwga2V5cy5sZW5ndGg7IGkrKykgewogICAgICAgIGlmIChkb2N1bWVudC5nZXRFbGVtZW50QnlJZChrZXlzW2ldKSkgewogICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChrZXlzW2ldKS5pbm5lckhUTUwgPSBvYmpba2V5c1tpXV07CiAgICAgICAgICAgIGlmIChsb2NhdGlvbi5wcm90b2NvbCA9PT0gJ2h0dHBzOicpIHsKICAgICAgICAgICAgICAgIGlmIChrZXlzW2ldID09PSAieGVwZy11cmwiIHx8IGtleXNbaV0gPT09ICJtM3UtdXJsIiB8fCBrZXlzW2ldID09PSAiRFZSIikgewogICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGtleXNbaV0pLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgZnVuY3Rpb24gKGV2ZW50KSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHRhcmdldCA9IGV2ZW50LnRhcmdldDsKICAgICAgICAgICAgICAgICAgICAgICAgbmF2aWdhdG9yLmNsaXBib2FyZC53cml0ZVRleHQodGFyZ2V0LmlubmVyVGV4dC5zcGxpdCgiICIpWzBdKS50aGVuKCgpID0+IHsgfSk7CiAgICAgICAgICAgICAgICAgICAgfSwgZmFsc2UpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQogICAgaWYgKCFkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibWFpbi1tZW51IikpIHsKICAgICAgICByZXR1cm47CiAgICB9CiAgICAvLyBDcmVhdGUgbWVudQogICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm1haW4tbWVudSIpLmlubmVySFRNTCA9ICIiOwogICAgZm9yIChsZXQgaSA9IDA7IGkgPCBtZW51SXRlbXMubGVuZ3RoOyBpKyspIHsKICAgICAgICBtZW51SXRlbXNbaV0uaWQgPSBpOwogICAgICAgIHN3aXRjaCAobWVudUl0ZW1zW2ldWyJtZW51S2V5Il0pIHsKICAgICAgICAgICAgY2FzZSAidXNlcnMiOgogICAgICAgICAgICBjYXNlICJsb2dvdXQiOgogICAgICAgICAgICAgICAgaWYgKFNFUlZFUlsic2V0dGluZ3MiXVsiYXV0aGVudGljYXRpb24ud2ViIl0gPT0gdHJ1ZSkgewogICAgICAgICAgICAgICAgICAgIG1lbnVJdGVtc1tpXS5jcmVhdGVJdGVtKCk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAibWFwcGluZyI6CiAgICAgICAgICAgIGNhc2UgInhtbHR2IjoKICAgICAgICAgICAgICAgIGlmIChTRVJWRVJbImNsaWVudEluZm8iXVsiZXBnU291cmNlIl0gPT0gIlhFUEciKSB7CiAgICAgICAgICAgICAgICAgICAgbWVudUl0ZW1zW2ldLmNyZWF0ZUl0ZW0oKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAgICAgbWVudUl0ZW1zW2ldLmNyZWF0ZUl0ZW0oKTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgIH0KICAgIH0KICAgIHJldHVybjsKfQpmdW5jdGlvbiBvcGVuVGhpc01lbnUoZWxlbWVudCkgewogICAgbGV0IGlkID0gZWxlbWVudC5pZDsKICAgIGxldCBjb250ZW50ID0gbmV3IFNob3dDb250ZW50KGlkKTsKICAgIGNvbnRlbnQuc2hvdygpOwogICAgY2FsY3VsYXRlV3JhcHBlckhlaWdodCgpOwogICAgcmV0dXJuOwp9CmNsYXNzIFBvcHVwV2luZG93IHsKICAgIGNvbnN0cnVjdG9yKCkgewogICAgICAgIHRoaXMuRG9jdW1lbnRJRCA9ICJwb3B1cC1jdXN0b20iOwogICAgICAgIHRoaXMuSW50ZXJhY3Rpb25JRCA9ICJpbnRlcmFjdGlvbiI7CiAgICAgICAgdGhpcy5kb2MgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCh0aGlzLkRvY3VtZW50SUQpOwogICAgfQogICAgY3JlYXRlVGl0bGUodGl0bGUpIHsKICAgICAgICBsZXQgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOwogICAgICAgIHRkLmNsYXNzTmFtZSA9ICJsZWZ0IjsKICAgICAgICB0ZC5pbm5lckhUTUwgPSB0aXRsZSArICI6IjsKICAgICAgICByZXR1cm4gdGQ7CiAgICB9CiAgICBjcmVhdGVDb250ZW50KGVsZW1lbnQpIHsKICAgICAgICBsZXQgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOwogICAgICAgIHRkLmFwcGVuZENoaWxkKGVsZW1lbnQpOwogICAgICAgIHJldHVybiB0ZDsKICAgIH0KICAgIGNyZWF0ZUludGVyYWN0aW9uKCkgewogICAgICAgIGxldCBkaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsKICAgICAgICBkaXYuc2V0QXR0cmlidXRlKCJpZCIsICJwb3B1cC1pbnRlcmFjdGlvbiIpOwogICAgICAgIGRpdi5jbGFzc05hbWUgPSAiaW50ZXJhY3Rpb24iOwogICAgICAgIHRoaXMuZG9jLmFwcGVuZENoaWxkKGRpdik7CiAgICB9Cn0KY2xhc3MgUG9wdXBDb250ZW50IGV4dGVuZHMgUG9wdXBXaW5kb3cgewogICAgY29uc3RydWN0b3IoKSB7CiAgICAgICAgc3VwZXIoLi4uYXJndW1lbnRzKTsKICAgICAgICB0aGlzLnRhYmxlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEFCTEUiKTsKICAgIH0KICAgIGNyZWF0ZUhlYWRsaW5lKGhlYWRsaW5lKSB7CiAgICAgICAgdGhpcy5kb2MuaW5uZXJIVE1MID0gIiI7CiAgICAgICAgdmFyIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJIMyIpOwogICAgICAgIGVsZW1lbnQuaW5uZXJIVE1MID0gaGVhZGxpbmUudG9VcHBlckNhc2UoKTsKICAgICAgICB0aGlzLmRvYy5hcHBlbmRDaGlsZChlbGVtZW50KTsKICAgICAgICAvLyBDcmVhdGUgdGFibGUKICAgICAgICB0aGlzLnRhYmxlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEFCTEUiKTsKICAgICAgICB0aGlzLmRvYy5hcHBlbmRDaGlsZCh0aGlzLnRhYmxlKTsKICAgIH0KICAgIGFwcGVuZFJvdyh0aXRsZSwgZWxlbWVudCkgewogICAgICAgIGxldCB0ciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlRSIik7CiAgICAgICAgLy8gVGl0bGUKICAgICAgICBpZiAodGl0bGUubGVuZ3RoICE9IDApIHsKICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQodGhpcy5jcmVhdGVUaXRsZSh0aXRsZSkpOwogICAgICAgIH0KICAgICAgICAvLyBDb250ZW50CiAgICAgICAgdHIuYXBwZW5kQ2hpbGQodGhpcy5jcmVhdGVDb250ZW50KGVsZW1lbnQpKTsKICAgICAgICB0aGlzLnRhYmxlLmFwcGVuZENoaWxkKHRyKTsKICAgIH0KICAgIGNyZWF0ZUlucHV0KHR5cGUsIG5hbWUsIHZhbHVlKSB7CiAgICAgICAgbGV0IGlucHV0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiSU5QVVQiKTsKICAgICAgICBpZiAodmFsdWUgPT0gdW5kZWZpbmVkKSB7CiAgICAgICAgICAgIHZhbHVlID0gIiI7CiAgICAgICAgfQogICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgidHlwZSIsIHR5cGUpOwogICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgibmFtZSIsIG5hbWUpOwogICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgidmFsdWUiLCB2YWx1ZSk7CiAgICAgICAgcmV0dXJuIGlucHV0OwogICAgfQogICAgY3JlYXRlQ2hlY2tib3gobmFtZSkgewogICAgICAgIGxldCBpbnB1dCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIklOUFVUIik7CiAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJ0eXBlIiwgImNoZWNrYm94Iik7CiAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJuYW1lIiwgbmFtZSk7CiAgICAgICAgcmV0dXJuIGlucHV0OwogICAgfQogICAgLy8gQ3JlYXRlcyBhIHNlbGVjdGlvbiBvZiBtdWx0aXBsZSBvcHRpb25zIHZhbHVlcyB3aXRoIHRleHQgZGVzY3JpcHRpb25zCiAgICBjcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCBzZXQsIGRiS2V5KSB7CiAgICAgICAgbGV0IHNlbGVjdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlNFTEVDVCIpOwogICAgICAgIHNlbGVjdC5zZXRBdHRyaWJ1dGUoIm5hbWUiLCBkYktleSk7CiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0ZXh0Lmxlbmd0aDsgaSsrKSB7CiAgICAgICAgICAgIGxldCBvcHRpb24gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJPUFRJT04iKTsKICAgICAgICAgICAgb3B0aW9uLnNldEF0dHJpYnV0ZSgidmFsdWUiLCB2YWx1ZXNbaV0pOwogICAgICAgICAgICBvcHRpb24uaW5uZXJUZXh0ID0gdGV4dFtpXTsKICAgICAgICAgICAgc2VsZWN0LmFwcGVuZENoaWxkKG9wdGlvbik7CiAgICAgICAgfQogICAgICAgIGlmIChzZXQgIT0gIiIpIHsKICAgICAgICAgICAgc2VsZWN0LnZhbHVlID0gc2V0OwogICAgICAgIH0KICAgICAgICBpZiAoc2V0ID09IHVuZGVmaW5lZCkgewogICAgICAgICAgICBzZWxlY3QudmFsdWUgPSB2YWx1ZXNbMF07CiAgICAgICAgfQogICAgICAgIHJldHVybiBzZWxlY3Q7CiAgICB9CiAgICBzZWxlY3RPcHRpb24oc2VsZWN0LCB2YWx1ZSkgewogICAgICAgIC8vc2VsZWN0LnNlbGVjdGVkT3B0aW9ucyA9IHZhbHVlCiAgICAgICAgbGV0IHMgPSBzZWxlY3Q7CiAgICAgICAgcy5vcHRpb25zW3Muc2VsZWN0ZWRJbmRleF0udmFsdWUgPSB2YWx1ZTsKICAgICAgICByZXR1cm4gc2VsZWN0OwogICAgfQogICAgZGVzY3JpcHRpb24odmFsdWUpIHsKICAgICAgICBsZXQgdHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJUUiIpOwogICAgICAgIGxldCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7CiAgICAgICAgbGV0IHNwYW4gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJQUkUiKTsKICAgICAgICBzcGFuLmlubmVySFRNTCA9IHZhbHVlOwogICAgICAgIHRyLmFwcGVuZENoaWxkKHRkKTsKICAgICAgICB0ci5hcHBlbmRDaGlsZCh0aGlzLmNyZWF0ZUNvbnRlbnQoc3BhbikpOwogICAgICAgIHRoaXMudGFibGUuYXBwZW5kQ2hpbGQodHIpOwogICAgfQogICAgLy8gSW50ZXJhY3Rpb24KICAgIGFkZEludGVyYWN0aW9uKGVsZW1lbnQpIHsKICAgICAgICBsZXQgaW50ZXJhY3Rpb24gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicG9wdXAtaW50ZXJhY3Rpb24iKTsKICAgICAgICBpbnRlcmFjdGlvbi5hcHBlbmRDaGlsZChlbGVtZW50KTsKICAgIH0KfQpmdW5jdGlvbiBvcGVuUG9wVXAoZGF0YVR5cGUsIGVsZW1lbnQpIHsKICAgIGxldCBkYXRhID0ge307CiAgICBsZXQgaWQ7CiAgICBzd2l0Y2ggKGVsZW1lbnQpIHsKICAgICAgICBjYXNlIHVuZGVmaW5lZDoKICAgICAgICAgICAgc3dpdGNoIChkYXRhVHlwZSkgewogICAgICAgICAgICAgICAgY2FzZSAiZ3JvdXAtdGl0bGUiOgogICAgICAgICAgICAgICAgICAgIGlmIChpZCA9PSB1bmRlZmluZWQpIHsKICAgICAgICAgICAgICAgICAgICAgICAgaWQgPSAtMTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgZGF0YSA9IGdldExvY2FsRGF0YSgiZmlsdGVyIiwgaWQpOwogICAgICAgICAgICAgICAgICAgIGRhdGFbInR5cGUiXSA9ICJncm91cC10aXRsZSI7CiAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICBjYXNlICJjdXN0b20tZmlsdGVyIjoKICAgICAgICAgICAgICAgICAgICBpZiAoaWQgPT0gdW5kZWZpbmVkKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGlkID0gLTE7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIGRhdGEgPSBnZXRMb2NhbERhdGEoImZpbHRlciIsIGlkKTsKICAgICAgICAgICAgICAgICAgICBkYXRhWyJ0eXBlIl0gPSAiY3VzdG9tLWZpbHRlciI7CiAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAgICAgICAgIGRhdGFbImlkLnByb3ZpZGVyIl0gPSAiLSI7CiAgICAgICAgICAgICAgICAgICAgZGF0YVsidHlwZSJdID0gZGF0YVR5cGU7CiAgICAgICAgICAgICAgICAgICAgaWQgPSAiLSI7CiAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgaWQgPSBlbGVtZW50LmlkOwogICAgICAgICAgICBkYXRhID0gZ2V0TG9jYWxEYXRhKGRhdGFUeXBlLCBpZCk7CiAgICAgICAgICAgIGJyZWFrOwogICAgfQogICAgbGV0IGNvbnRlbnQgPSBuZXcgUG9wdXBDb250ZW50KCk7CiAgICBzd2l0Y2ggKGRhdGFUeXBlKSB7CiAgICAgICAgY2FzZSAicGxheWxpc3QiOgogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUhlYWRsaW5lKCJ7ey5wbGF5bGlzdC5wbGF5bGlzdFR5cGUudGl0bGV9fSIpOwogICAgICAgICAgICAvLyBUeXBlCiAgICAgICAgICAgIHZhciB0ZXh0ID0gWyJNM1UiLCAiSERIb21lUnVuIl07CiAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBbImphdmFzY3JpcHQ6IG9wZW5Qb3BVcCgnbTN1JykiLCAiamF2YXNjcmlwdDogb3BlblBvcFVwKCdoZGhyJykiXTsKICAgICAgICAgICAgdmFyIHNlbGVjdCA9IGNvbnRlbnQuY3JlYXRlU2VsZWN0KHRleHQsIHZhbHVlcywgIiIsICJ0eXBlIik7CiAgICAgICAgICAgIHNlbGVjdC5zZXRBdHRyaWJ1dGUoImlkIiwgInR5cGUiKTsKICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAnamF2YXNjcmlwdDogY2hhbmdlQnV0dG9uQWN0aW9uKHRoaXMsICJuZXh0IiwgIm9uY2xpY2siKScpOyAvLyBjaGFuZ2VCdXR0b25BY3Rpb24KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnBsYXlsaXN0LnR5cGUudGl0bGV9fSIsIHNlbGVjdCk7CiAgICAgICAgICAgIC8vIEludGVyYWN0aW9uCiAgICAgICAgICAgIGNvbnRlbnQuY3JlYXRlSW50ZXJhY3Rpb24oKTsKICAgICAgICAgICAgLy8gQWJvcnQKICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImNhbmNlbCIsICJ7ey5idXR0b24uY2FuY2VsfX0iKTsKICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IHNob3dFbGVtZW50KCJwb3B1cCIsIGZhbHNlKTsnKTsKICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7CiAgICAgICAgICAgIC8vIE5leHQKICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgIm5leHQiLCAie3suYnV0dG9uLm5leHR9fSIpOwogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJtM3UiKScpOwogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoImlkIiwgJ25leHQnKTsKICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgIGNhc2UgIm0zdSI6CiAgICAgICAgICAgIGNvbnRlbnQuY3JlYXRlSGVhZGxpbmUoZGF0YVR5cGUpOwogICAgICAgICAgICAvLyBOYW1lCiAgICAgICAgICAgIHZhciBkYktleSA9ICJuYW1lIjsKICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7CiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3sucGxheWxpc3QubmFtZS5wbGFjZWhvbGRlcn19Iik7CiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5wbGF5bGlzdC5uYW1lLnRpdGxlfX0iLCBpbnB1dCk7CiAgICAgICAgICAgIC8vIERlc2NyaXB0aW9uCiAgICAgICAgICAgIHZhciBkYktleSA9ICJkZXNjcmlwdGlvbiI7CiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOwogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnBsYXlsaXN0LmRlc2NyaXB0aW9uLnBsYWNlaG9sZGVyfX0iKTsKICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnBsYXlsaXN0LmRlc2NyaXB0aW9uLnRpdGxlfX0iLCBpbnB1dCk7CiAgICAgICAgICAgIC8vIFVSTAogICAgICAgICAgICB2YXIgZGJLZXkgPSAiZmlsZS5zb3VyY2UiOwogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsKICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5wbGF5bGlzdC5maWxlTTNVLnBsYWNlaG9sZGVyfX0iKTsKICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnBsYXlsaXN0LmZpbGVNM1UudGl0bGV9fSIsIGlucHV0KTsKICAgICAgICAgICAgLy8gVHVuZXIKICAgICAgICAgICAgaWYgKFNFUlZFUlsic2V0dGluZ3MiXVsiYnVmZmVyIl0gIT0gIi0iKSB7CiAgICAgICAgICAgICAgICB2YXIgdGV4dCA9IFtdOwogICAgICAgICAgICAgICAgdmFyIHZhbHVlcyA9IFtdOwogICAgICAgICAgICAgICAgZm9yICh2YXIgaSA9IDE7IGkgPD0gMTAwOyBpKyspIHsKICAgICAgICAgICAgICAgICAgICB0ZXh0LnB1c2goaS50b1N0cmluZygpKTsKICAgICAgICAgICAgICAgICAgICB2YWx1ZXMucHVzaChpLnRvU3RyaW5nKCkpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgdmFyIGRiS2V5ID0gInR1bmVyIjsKICAgICAgICAgICAgICAgIHZhciBzZWxlY3QgPSBjb250ZW50LmNyZWF0ZVNlbGVjdCh0ZXh0LCB2YWx1ZXMsIGRhdGFbZGJLZXldLCBkYktleSk7CiAgICAgICAgICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJvbmZvY3VzIiwgImphdmFzY3JpcHQ6IHJldHVybjsiKTsKICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5wbGF5bGlzdC50dW5lci50aXRsZX19Iiwgc2VsZWN0KTsKICAgICAgICAgICAgfQogICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgIHZhciBkYktleSA9ICJ0dW5lciI7CiAgICAgICAgICAgICAgICBpZiAoZGF0YVtkYktleV0gPT0gdW5kZWZpbmVkKSB7CiAgICAgICAgICAgICAgICAgICAgZGF0YVtkYktleV0gPSAxOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7CiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInJlYWRvbmx5IiwgInRydWUiKTsKICAgICAgICAgICAgICAgIGlucHV0LmNsYXNzTmFtZSA9ICJub3RBdmFpbGFibGUiOwogICAgICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnBsYXlsaXN0LnR1bmVyLnRpdGxlfX0iLCBpbnB1dCk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgY29udGVudC5kZXNjcmlwdGlvbigie3sucGxheWxpc3QudHVuZXIuZGVzY3JpcHRpb259fSIpOwogICAgICAgICAgICAvLyBJbnRlcmF0aW9uCiAgICAgICAgICAgIGNvbnRlbnQuY3JlYXRlSW50ZXJhY3Rpb24oKTsKICAgICAgICAgICAgLy8gRGVsZXRlCiAgICAgICAgICAgIGlmIChkYXRhWyJpZC5wcm92aWRlciJdICE9ICItIikgewogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImRlbGV0ZSIsICJ7ey5idXR0b24uZGVsZXRlfX0iKTsKICAgICAgICAgICAgICAgIGlucHV0LmNsYXNzTmFtZSA9ICJkZWxldGUiOwogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoIm0zdSIsICInICsgaWQgKyAnIiwgdHJ1ZSwgMCknKTsKICAgICAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImJhY2siLCAie3suYnV0dG9uLmJhY2t9fSIpOwogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgicGxheWxpc3QiKScpOwogICAgICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgLy8gQWJvcnQKICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImNhbmNlbCIsICJ7ey5idXR0b24uY2FuY2VsfX0iKTsKICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IHNob3dFbGVtZW50KCJwb3B1cCIsIGZhbHNlKTsnKTsKICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7CiAgICAgICAgICAgIC8vIFVwZGF0ZQogICAgICAgICAgICBpZiAoZGF0YVsiaWQucHJvdmlkZXIiXSAhPSAiLSIpIHsKICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJ1cGRhdGUiLCAie3suYnV0dG9uLnVwZGF0ZX19Iik7CiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogc2F2ZVBvcHVwRGF0YSgibTN1IiwgIicgKyBpZCArICciLCBmYWxzZSwgMSknKTsKICAgICAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIC8vIFNhdmUKICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgInNhdmUiLCAie3suYnV0dG9uLnNhdmV9fSIpOwogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogc2F2ZVBvcHVwRGF0YSgibTN1IiwgIicgKyBpZCArICciLCBmYWxzZSwgMCknKTsKICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgIGNhc2UgImhkaHIiOgogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUhlYWRsaW5lKGRhdGFUeXBlKTsKICAgICAgICAgICAgLy8gTmFtZQogICAgICAgICAgICB2YXIgZGJLZXkgPSAibmFtZSI7CiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOwogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnBsYXlsaXN0Lm5hbWUucGxhY2Vob2xkZXJ9fSIpOwogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sucGxheWxpc3QubmFtZS50aXRsZX19IiwgaW5wdXQpOwogICAgICAgICAgICAvLyBEZXNjcmlwdGlvbgogICAgICAgICAgICB2YXIgZGJLZXkgPSAiZGVzY3JpcHRpb24iOwogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsKICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5wbGF5bGlzdC5kZXNjcmlwdGlvbi5wbGFjZWhvbGRlcn19Iik7CiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5wbGF5bGlzdC5kZXNjcmlwdGlvbi5wbGFjZWhvbGRlcn19IiwgaW5wdXQpOwogICAgICAgICAgICAvLyBVUkwKICAgICAgICAgICAgdmFyIGRiS2V5ID0gImZpbGUuc291cmNlIjsKICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7CiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3sucGxheWxpc3QuZmlsZUhESFIucGxhY2Vob2xkZXJ9fSIpOwogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sucGxheWxpc3QuZmlsZUhESFIudGl0bGV9fSIsIGlucHV0KTsKICAgICAgICAgICAgLy8gVHVuZXIKICAgICAgICAgICAgaWYgKFNFUlZFUlsic2V0dGluZ3MiXVsiYnVmZmVyIl0gIT0gIi0iKSB7CiAgICAgICAgICAgICAgICB2YXIgdGV4dCA9IFtdOwogICAgICAgICAgICAgICAgdmFyIHZhbHVlcyA9IFtdOwogICAgICAgICAgICAgICAgZm9yICh2YXIgaSA9IDE7IGkgPD0gMTAwOyBpKyspIHsKICAgICAgICAgICAgICAgICAgICB0ZXh0LnB1c2goaS50b1N0cmluZygpKTsKICAgICAgICAgICAgICAgICAgICB2YWx1ZXMucHVzaChpLnRvU3RyaW5nKCkpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgdmFyIGRiS2V5ID0gInR1bmVyIjsKICAgICAgICAgICAgICAgIHZhciBzZWxlY3QgPSBjb250ZW50LmNyZWF0ZVNlbGVjdCh0ZXh0LCB2YWx1ZXMsIGRhdGFbZGJLZXldLCBkYktleSk7CiAgICAgICAgICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJvbmZvY3VzIiwgImphdmFzY3JpcHQ6IHJldHVybjsiKTsKICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5wbGF5bGlzdC50dW5lci50aXRsZX19Iiwgc2VsZWN0KTsKICAgICAgICAgICAgfQogICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgIHZhciBkYktleSA9ICJ0dW5lciI7CiAgICAgICAgICAgICAgICBpZiAoZGF0YVtkYktleV0gPT0gdW5kZWZpbmVkKSB7CiAgICAgICAgICAgICAgICAgICAgZGF0YVtkYktleV0gPSAxOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7CiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInJlYWRvbmx5IiwgInRydWUiKTsKICAgICAgICAgICAgICAgIGlucHV0LmNsYXNzTmFtZSA9ICJub3RBdmFpbGFibGUiOwogICAgICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnBsYXlsaXN0LnR1bmVyLnRpdGxlfX0iLCBpbnB1dCk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgY29udGVudC5kZXNjcmlwdGlvbigie3sucGxheWxpc3QudHVuZXIuZGVzY3JpcHRpb259fSIpOwogICAgICAgICAgICAvLyBJbnRlcmFjdGlvbgogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUludGVyYWN0aW9uKCk7CiAgICAgICAgICAgIC8vIERlbGV0ZQogICAgICAgICAgICBpZiAoZGF0YVsiaWQucHJvdmlkZXIiXSAhPSAiLSIpIHsKICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJkZWxldGUiLCAie3suYnV0dG9uLmRlbGV0ZX19Iik7CiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogc2F2ZVBvcHVwRGF0YSgiaGRociIsICInICsgaWQgKyAnIiwgdHJ1ZSwgMCknKTsKICAgICAgICAgICAgICAgIGlucHV0LmNsYXNzTmFtZSA9ICJkZWxldGUiOwogICAgICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAiYmFjayIsICJ7ey5idXR0b24uYmFja319Iik7CiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJwbGF5bGlzdCIpJyk7CiAgICAgICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsKICAgICAgICAgICAgfQogICAgICAgICAgICAvLyBBYm9ydAogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAiY2FuY2VsIiwgInt7LmJ1dHRvbi5jYW5jZWx9fSIpOwogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogc2hvd0VsZW1lbnQoInBvcHVwIiwgZmFsc2UpOycpOwogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsKICAgICAgICAgICAgLy8gVXBkYXRlCiAgICAgICAgICAgIGlmIChkYXRhWyJpZC5wcm92aWRlciJdICE9ICItIikgewogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgInVwZGF0ZSIsICJ7ey5idXR0b24udXBkYXRlfX0iKTsKICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBzYXZlUG9wdXBEYXRhKCJoZGhyIiwgIicgKyBpZCArICciLCBmYWxzZSwgMSknKTsKICAgICAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIC8vIFNhdmUKICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgInNhdmUiLCAie3suYnV0dG9uLnNhdmV9fSIpOwogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogc2F2ZVBvcHVwRGF0YSgiaGRociIsICInICsgaWQgKyAnIiwgZmFsc2UsIDApJyk7CiAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOwogICAgICAgICAgICBicmVhazsKICAgICAgICBjYXNlICJmaWx0ZXIiOgogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUhlYWRsaW5lKGRhdGFUeXBlKTsKICAgICAgICAgICAgLy8gVHlwZQogICAgICAgICAgICB2YXIgZGJLZXkgPSAidHlwZSI7CiAgICAgICAgICAgIHZhciB0ZXh0ID0gWyJNM1U6ICIgKyAie3suZmlsdGVyLnR5cGUuZ3JvdXBUaXRsZX19IiwgInhUZVZlOiAiICsgInt7LmZpbHRlci50eXBlLmN1c3RvbUZpbHRlcn19Il07CiAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBbImphdmFzY3JpcHQ6IG9wZW5Qb3BVcCgnZ3JvdXAtdGl0bGUnKSIsICJqYXZhc2NyaXB0OiBvcGVuUG9wVXAoJ2N1c3RvbS1maWx0ZXInKSJdOwogICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCAiamF2YXNjcmlwdDogb3BlblBvcFVwKCdncm91cC10aXRsZScpIiwgZGJLZXkpOwogICAgICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJpZCIsIGlkKTsKICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAnamF2YXNjcmlwdDogY2hhbmdlQnV0dG9uQWN0aW9uKHRoaXMsICJuZXh0IiwgIm9uY2xpY2siKTsnKTsgLy8gY2hhbmdlQnV0dG9uQWN0aW9uCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5maWx0ZXIudHlwZS50aXRsZX19Iiwgc2VsZWN0KTsKICAgICAgICAgICAgLy8gSW50ZXJhY3Rpb24KICAgICAgICAgICAgY29udGVudC5jcmVhdGVJbnRlcmFjdGlvbigpOwogICAgICAgICAgICAvLyBBYm9ydAogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAiY2FuY2VsIiwgInt7LmJ1dHRvbi5jYW5jZWx9fSIpOwogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogc2hvd0VsZW1lbnQoInBvcHVwIiwgZmFsc2UpOycpOwogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsKICAgICAgICAgICAgLy8gTmV4dAogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAibmV4dCIsICJ7ey5idXR0b24ubmV4dH19Iik7CiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoImdyb3VwLXRpdGxlIiknKTsKICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJpZCIsICduZXh0Jyk7CiAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOwogICAgICAgICAgICBicmVhazsKICAgICAgICBjYXNlICJjdXN0b20tZmlsdGVyIjoKICAgICAgICBjYXNlICJncm91cC10aXRsZSI6CiAgICAgICAgICAgIHN3aXRjaCAoZGF0YVR5cGUpIHsKICAgICAgICAgICAgICAgIGNhc2UgImN1c3RvbS1maWx0ZXIiOgogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuY3JlYXRlSGVhZGxpbmUoInt7LmZpbHRlci5jdXN0b219fSIgKyAiIEZpbHRlciIpOwogICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgY2FzZSAiZ3JvdXAtdGl0bGUiOgogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuY3JlYXRlSGVhZGxpbmUoInt7LmZpbHRlci5ncm91cH19IiArICIgRmlsdGVyIik7CiAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgLy8gTmFtZSAgICAgIAogICAgICAgICAgICB2YXIgZGJLZXkgPSAibmFtZSI7CiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOwogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LmZpbHRlci5uYW1lLnBsYWNlaG9sZGVyfX0iKTsKICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LmZpbHRlci5uYW1lLnRpdGxlfX0iLCBpbnB1dCk7CiAgICAgICAgICAgIC8vIERlc2NyaXB0aW9uCiAgICAgICAgICAgIHZhciBkYktleSA9ICJkZXNjcmlwdGlvbiI7CiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOwogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LmZpbHRlci5kZXNjcmlwdGlvbi5wbGFjZWhvbGRlcn19Iik7CiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5maWx0ZXIuZGVzY3JpcHRpb24udGl0bGV9fSIsIGlucHV0KTsKICAgICAgICAgICAgLy8gVHlwZQogICAgICAgICAgICB2YXIgZGJLZXkgPSAidHlwZSI7CiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImhpZGRlbiIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7CiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCIiLCBpbnB1dCk7CiAgICAgICAgICAgIHZhciBmaWx0ZXJUeXBlID0gZGF0YVtkYktleV07CiAgICAgICAgICAgIHN3aXRjaCAoZmlsdGVyVHlwZSkgewogICAgICAgICAgICAgICAgY2FzZSAiY3VzdG9tLWZpbHRlciI6CiAgICAgICAgICAgICAgICAgICAgLy8gQ2FzZSBzZW5zaXRpdmUKICAgICAgICAgICAgICAgICAgICB2YXIgZGJLZXkgPSAiY2FzZVNlbnNpdGl2ZSI7CiAgICAgICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChkYktleSk7CiAgICAgICAgICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGFbZGJLZXldOwogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5maWx0ZXIuY2FzZVNlbnNpdGl2ZS50aXRsZX19IiwgaW5wdXQpOwogICAgICAgICAgICAgICAgICAgIC8vIEZpbHRlciBSdWxlIChDdXN0b20pCiAgICAgICAgICAgICAgICAgICAgdmFyIGRiS2V5ID0gImZpbHRlciI7CiAgICAgICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7CiAgICAgICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5maWx0ZXIuZmlsdGVyUnVsZS5wbGFjZWhvbGRlcn19Iik7CiAgICAgICAgICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LmZpbHRlci5maWx0ZXJSdWxlLnRpdGxlfX0iLCBpbnB1dCk7CiAgICAgICAgICAgICAgICAgICAgLy8gU3RhcnRpbmcgQ2hhbm5lbCBOdW1iZXIgTWFwcGluZwogICAgICAgICAgICAgICAgICAgIHZhciBkYktleSA9ICJzdGFydGluZ0NoYW5uZWwiOwogICAgICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOwogICAgICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3suZmlsdGVyLnN0YXJ0aW5nQ2hhbm5lbC5wbGFjZWhvbGRlcn19Iik7CiAgICAgICAgICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LmZpbHRlci5zdGFydGluZ0NoYW5uZWwudGl0bGV9fSIsIGlucHV0KTsKICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgIGNhc2UgImdyb3VwLXRpdGxlIjoKICAgICAgICAgICAgICAgICAgICAvL2FsZXJ0KGRiS2V5ICsgIiAiICsgZmlsdGVyVHlwZSkKICAgICAgICAgICAgICAgICAgICAvLyBGaWx0ZXIgYmFzZWQgb24gdGhlIGdyb3VwcyBpbiB0aGUgTTNVCiAgICAgICAgICAgICAgICAgICAgdmFyIGRiS2V5ID0gImZpbHRlciI7CiAgICAgICAgICAgICAgICAgICAgdmFyIGdyb3Vwc00zVSA9IGdldExvY2FsRGF0YSgibTN1R3JvdXBzIiwgIiIpOwogICAgICAgICAgICAgICAgICAgIHZhciB0ZXh0ID0gZ3JvdXBzTTNVWyJ0ZXh0Il07CiAgICAgICAgICAgICAgICAgICAgdmFyIHZhbHVlcyA9IGdyb3Vwc00zVVsidmFsdWUiXTsKICAgICAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCBkYXRhW2RiS2V5XSwgZGJLZXkpOwogICAgICAgICAgICAgICAgICAgIHNlbGVjdC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7CiAgICAgICAgICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LmZpbHRlci5maWx0ZXJHcm91cC50aXRsZX19Iiwgc2VsZWN0KTsKICAgICAgICAgICAgICAgICAgICBjb250ZW50LmRlc2NyaXB0aW9uKCJ7ey5maWx0ZXIuZmlsdGVyR3JvdXAuZGVzY3JpcHRpb259fSIpOwogICAgICAgICAgICAgICAgICAgIC8vIENhc2Ugc2Vuc2V0aXZlCiAgICAgICAgICAgICAgICAgICAgdmFyIGRiS2V5ID0gImNhc2VTZW5zaXRpdmUiOwogICAgICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goZGJLZXkpOwogICAgICAgICAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhW2RiS2V5XTsKICAgICAgICAgICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3suZmlsdGVyLmNhc2VTZW5zaXRpdmUudGl0bGV9fSIsIGlucHV0KTsKICAgICAgICAgICAgICAgICAgICB2YXIgZGJLZXkgPSAiaW5jbHVkZSI7CiAgICAgICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7CiAgICAgICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5maWx0ZXIuaW5jbHVkZS5wbGFjZWhvbGRlcn19Iik7CiAgICAgICAgICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LmZpbHRlci5pbmNsdWRlLnRpdGxlfX0iLCBpbnB1dCk7CiAgICAgICAgICAgICAgICAgICAgY29udGVudC5kZXNjcmlwdGlvbigie3suZmlsdGVyLmluY2x1ZGUuZGVzY3JpcHRpb259fSIpOwogICAgICAgICAgICAgICAgICAgIHZhciBkYktleSA9ICJleGNsdWRlIjsKICAgICAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsKICAgICAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LmZpbHRlci5leGNsdWRlLnBsYWNlaG9sZGVyfX0iKTsKICAgICAgICAgICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3suZmlsdGVyLmV4Y2x1ZGUudGl0bGV9fSIsIGlucHV0KTsKICAgICAgICAgICAgICAgICAgICBjb250ZW50LmRlc2NyaXB0aW9uKCJ7ey5maWx0ZXIuZXhjbHVkZS5kZXNjcmlwdGlvbn19Iik7CiAgICAgICAgICAgICAgICAgICAgLy8gUHJlc2VydmUgTTNVIFBsYXlsaXN0IENoYW5uZWwgTWFwcGluZwogICAgICAgICAgICAgICAgICAgIHZhciBkYktleSA9ICJwcmVzZXJ2ZU1hcHBpbmciOwogICAgICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goZGJLZXkpOwogICAgICAgICAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhW2RiS2V5XTsKICAgICAgICAgICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3suZmlsdGVyLnByZXNlcnZlTWFwcGluZy50aXRsZX19IiwgaW5wdXQpOwogICAgICAgICAgICAgICAgICAgIC8vIFN0YXJ0aW5nIENoYW5uZWwgTnVtYmVyIE1hcHBpbmcKICAgICAgICAgICAgICAgICAgICB2YXIgZGJLZXkgPSAic3RhcnRpbmdDaGFubmVsIjsKICAgICAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsKICAgICAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LmZpbHRlci5zdGFydGluZ0NoYW5uZWwucGxhY2Vob2xkZXJ9fSIpOwogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5maWx0ZXIuc3RhcnRpbmdDaGFubmVsLnRpdGxlfX0iLCBpbnB1dCk7CiAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICB9CiAgICAgICAgICAgIC8vIEludGVyYWN0aW9uCiAgICAgICAgICAgIGNvbnRlbnQuY3JlYXRlSW50ZXJhY3Rpb24oKTsKICAgICAgICAgICAgLy8gRGVsZXRlCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJkZWxldGUiLCAie3suYnV0dG9uLmRlbGV0ZX19Iik7CiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBzYXZlUG9wdXBEYXRhKCJmaWx0ZXIiLCAiJyArIGlkICsgJyIsIHRydWUsIDApJyk7CiAgICAgICAgICAgIGlucHV0LmNsYXNzTmFtZSA9ICJkZWxldGUiOwogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsKICAgICAgICAgICAgLy8gQWJvcnQKICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImNhbmNlbCIsICJ7ey5idXR0b24uY2FuY2VsfX0iKTsKICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IHNob3dFbGVtZW50KCJwb3B1cCIsIGZhbHNlKTsnKTsKICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7CiAgICAgICAgICAgIC8vIFNhdmUKICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgInNhdmUiLCAie3suYnV0dG9uLnNhdmV9fSIpOwogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogc2F2ZVBvcHVwRGF0YSgiZmlsdGVyIiwgIicgKyBpZCArICciLCBmYWxzZSwgMCknKTsKICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgIGNhc2UgInhtbHR2IjoKICAgICAgICAgICAgY29udGVudC5jcmVhdGVIZWFkbGluZShkYXRhVHlwZSk7CiAgICAgICAgICAgIC8vIE5hbWUKICAgICAgICAgICAgdmFyIGRiS2V5ID0gIm5hbWUiOwogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsKICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey54bWx0di5uYW1lLnBsYWNlaG9sZGVyfX0iKTsKICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnhtbHR2Lm5hbWUudGl0bGV9fSIsIGlucHV0KTsKICAgICAgICAgICAgLy8gRGVzY3JpcHRpb24KICAgICAgICAgICAgdmFyIGRiS2V5ID0gImRlc2NyaXB0aW9uIjsKICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7CiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3sueG1sdHYuZGVzY3JpcHRpb24ucGxhY2Vob2xkZXJ9fSIpOwogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sueG1sdHYuZGVzY3JpcHRpb24udGl0bGV9fSIsIGlucHV0KTsKICAgICAgICAgICAgLy8gVVJMCiAgICAgICAgICAgIHZhciBkYktleSA9ICJmaWxlLnNvdXJjZSI7CiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOwogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnhtbHR2LmZpbGVYTUxUVi5wbGFjZWhvbGRlcn19Iik7CiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey54bWx0di5maWxlWE1MVFYudGl0bGV9fSIsIGlucHV0KTsKICAgICAgICAgICAgLy8gSW50ZXJhY3Rpb24KICAgICAgICAgICAgY29udGVudC5jcmVhdGVJbnRlcmFjdGlvbigpOwogICAgICAgICAgICAvLyBEZWxldGUKICAgICAgICAgICAgaWYgKGRhdGFbImlkLnByb3ZpZGVyIl0gIT0gIi0iKSB7CiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAiZGVsZXRlIiwgInt7LmJ1dHRvbi5kZWxldGV9fSIpOwogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoInhtbHR2IiwgIicgKyBpZCArICciLCB0cnVlLCAwKScpOwogICAgICAgICAgICAgICAgaW5wdXQuY2xhc3NOYW1lID0gImRlbGV0ZSI7CiAgICAgICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsKICAgICAgICAgICAgfQogICAgICAgICAgICAvLyBBYm9ydAogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAiY2FuY2VsIiwgInt7LmJ1dHRvbi5jYW5jZWx9fSIpOwogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogc2hvd0VsZW1lbnQoInBvcHVwIiwgZmFsc2UpOycpOwogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsKICAgICAgICAgICAgLy8gVXBkYXRlCiAgICAgICAgICAgIGlmIChkYXRhWyJpZC5wcm92aWRlciJdICE9ICItIikgewogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgInVwZGF0ZSIsICJ7ey5idXR0b24udXBkYXRlfX0iKTsKICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBzYXZlUG9wdXBEYXRhKCJ4bWx0diIsICInICsgaWQgKyAnIiwgZmFsc2UsIDEpJyk7CiAgICAgICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsKICAgICAgICAgICAgfQogICAgICAgICAgICAvLyBTYXZlCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJzYXZlIiwgInt7LmJ1dHRvbi5zYXZlfX0iKTsKICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoInhtbHR2IiwgIicgKyBpZCArICciLCBmYWxzZSwgMCknKTsKICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgIGNhc2UgInVzZXJzIjoKICAgICAgICAgICAgY29udGVudC5jcmVhdGVIZWFkbGluZSgie3subWFpbk1lbnUuaXRlbS51c2Vyc319Iik7CiAgICAgICAgICAgIC8vIFVzZXIgbmFtZQogICAgICAgICAgICB2YXIgZGJLZXkgPSAidXNlcm5hbWUiOwogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsKICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey51c2Vycy51c2VybmFtZS5wbGFjZWhvbGRlcn19Iik7CiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey51c2Vycy51c2VybmFtZS50aXRsZX19IiwgaW5wdXQpOwogICAgICAgICAgICAvLyBOZXcgUGFyc3N3b3JkCiAgICAgICAgICAgIHZhciBkYktleSA9ICJwYXNzd29yZCI7CiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInBhc3N3b3JkIiwgZGJLZXksICIiKTsKICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey51c2Vycy5wYXNzd29yZC5wbGFjZWhvbGRlcn19Iik7CiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey51c2Vycy5wYXNzd29yZC50aXRsZX19IiwgaW5wdXQpOwogICAgICAgICAgICAvLyBDb25maXJtYXRpb24KICAgICAgICAgICAgdmFyIGRiS2V5ID0gImNvbmZpcm0iOwogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJwYXNzd29yZCIsIGRiS2V5LCAiIik7CiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3sudXNlcnMuY29uZmlybS5wbGFjZWhvbGRlcn19Iik7CiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey51c2Vycy5jb25maXJtLnRpdGxlfX0iLCBpbnB1dCk7CiAgICAgICAgICAgIC8vIEF1dGhlbnRpY2F0aW9uIFdFQgogICAgICAgICAgICB2YXIgZGJLZXkgPSAiYXV0aGVudGljYXRpb24ud2ViIjsKICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChkYktleSk7CiAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhW2RiS2V5XTsKICAgICAgICAgICAgaWYgKGRhdGFbImRlZmF1bHRVc2VyIl0gPT0gdHJ1ZSkgewogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgImphdmFzY3JpcHQ6IHJldHVybiBmYWxzZSIpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey51c2Vycy53ZWIudGl0bGV9fSIsIGlucHV0KTsKICAgICAgICAgICAgLy8gQXV0aGVudGljYXRpb24gUE1TCiAgICAgICAgICAgIHZhciBkYktleSA9ICJhdXRoZW50aWNhdGlvbi5wbXMiOwogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KGRiS2V5KTsKICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGFbZGJLZXldOwogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sudXNlcnMucG1zLnRpdGxlfX0iLCBpbnB1dCk7CiAgICAgICAgICAgIC8vIEF1dGhlbnRpY2F0aW9uIE0zVQogICAgICAgICAgICB2YXIgZGJLZXkgPSAiYXV0aGVudGljYXRpb24ubTN1IjsKICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChkYktleSk7CiAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhW2RiS2V5XTsKICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnVzZXJzLm0zdS50aXRsZX19IiwgaW5wdXQpOwogICAgICAgICAgICAvLyBBdXRoZW50aWNhdGlvbiBYTUwKICAgICAgICAgICAgdmFyIGRiS2V5ID0gImF1dGhlbnRpY2F0aW9uLnhtbCI7CiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goZGJLZXkpOwogICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YVtkYktleV07CiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey51c2Vycy54bWwudGl0bGV9fSIsIGlucHV0KTsKICAgICAgICAgICAgLy8gQXV0aGVudGljYXRpb24gQVBJCiAgICAgICAgICAgIHZhciBkYktleSA9ICJhdXRoZW50aWNhdGlvbi5hcGkiOwogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KGRiS2V5KTsKICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGFbZGJLZXldOwogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sudXNlcnMuYXBpLnRpdGxlfX0iLCBpbnB1dCk7CiAgICAgICAgICAgIC8vIEludGVyYWN0aW9uCiAgICAgICAgICAgIGNvbnRlbnQuY3JlYXRlSW50ZXJhY3Rpb24oKTsKICAgICAgICAgICAgLy8gRGVsZXRlCiAgICAgICAgICAgIGlmIChkYXRhWyJkZWZhdWx0VXNlciJdICE9IHRydWUgJiYgaWQgIT0gIi0iKSB7CiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAiZGVsZXRlIiwgInt7LmJ1dHRvbi5kZWxldGV9fSIpOwogICAgICAgICAgICAgICAgaW5wdXQuY2xhc3NOYW1lID0gImRlbGV0ZSI7CiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogc2F2ZVBvcHVwRGF0YSgiJyArIGRhdGFUeXBlICsgJyIsICInICsgaWQgKyAnIiwgdHJ1ZSwgMCknKTsKICAgICAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIC8vIEFib3J0CiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJjYW5jZWwiLCAie3suYnV0dG9uLmNhbmNlbH19Iik7CiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBzaG93RWxlbWVudCgicG9wdXAiLCBmYWxzZSk7Jyk7CiAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOwogICAgICAgICAgICAvLyBTYXZlCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJzYXZlIiwgInt7LmJ1dHRvbi5zYXZlfX0iKTsKICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoIicgKyBkYXRhVHlwZSArICciLCAiJyArIGlkICsgJyIsICJmYWxzZSIpOycpOwogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgY2FzZSAibWFwcGluZyI6CiAgICAgICAgICAgIGNvbnRlbnQuY3JlYXRlSGVhZGxpbmUoInt7Lm1haW5NZW51Lml0ZW0ubWFwcGluZ319Iik7CiAgICAgICAgICAgIC8vIEFjdGl2ZQogICAgICAgICAgICB2YXIgZGJLZXkgPSAieC1hY3RpdmUiOwogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KGRiS2V5KTsKICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGFbZGJLZXldOwogICAgICAgICAgICBpbnB1dC5pZCA9ICJhY3RpdmUiOwogICAgICAgICAgICAvL2lucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRvZ2dsZUNoYW5uZWxTdGF0dXMoJyIgKyBpZCArICInLCB0aGlzKSIpOwogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3subWFwcGluZy5hY3RpdmUudGl0bGV9fSIsIGlucHV0KTsKICAgICAgICAgICAgLy8gQ2hhbm5lbCBuYW1lCiAgICAgICAgICAgIHZhciBkYktleSA9ICJ4LW5hbWUiOwogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsKICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOwogICAgICAgICAgICBpZiAoQlVMS19FRElUID09IHRydWUpIHsKICAgICAgICAgICAgICAgIGlucHV0LnN0eWxlLmJvcmRlciA9ICJzb2xpZCAxcHggcmVkIjsKICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicmVhZG9ubHkiLCAidHJ1ZSIpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5tYXBwaW5nLmNoYW5uZWxOYW1lLnRpdGxlfX0iLCBpbnB1dCk7CiAgICAgICAgICAgIGNvbnRlbnQuZGVzY3JpcHRpb24oZGF0YVsibmFtZSJdKTsKICAgICAgICAgICAgLy8gRGVzY3JpcHRpb24KICAgICAgICAgICAgdmFyIGRiS2V5ID0gIngtZGVzY3JpcHRpb24iOwogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsKICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5tYXBwaW5nLmRlc2NyaXB0aW9uLnBsYWNlaG9sZGVyfX0iKTsKICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOwogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3subWFwcGluZy5kZXNjcmlwdGlvbi50aXRsZX19IiwgaW5wdXQpOwogICAgICAgICAgICAvLyBVcGRhdGUgdGhlIGNoYW5uZWwgeC1uYW1lCiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCJfdXVpZC5rZXkiKSkgewogICAgICAgICAgICAgICAgaWYgKGRhdGFbIl91dWlkLmtleSJdICE9ICIiKSB7CiAgICAgICAgICAgICAgICAgICAgdmFyIGRiS2V5ID0gIngtdXBkYXRlLWNoYW5uZWwtbmFtZSI7CiAgICAgICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChkYktleSk7CiAgICAgICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOwogICAgICAgICAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhW2RiS2V5XTsKICAgICAgICAgICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3subWFwcGluZy51cGRhdGVDaGFubmVsTmFtZS50aXRsZX19IiwgaW5wdXQpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICAgIC8vIENoYW5uZWwgbmFtZSByZWdleCBmb3IgdXBkYXRpbmcgdGhlIGNoYW5uZWwgbmFtZQogICAgICAgICAgICB2YXIgZGJLZXkgPSAidXBkYXRlLWNoYW5uZWwtbmFtZS1yZWdleCI7CiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOwogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7Lm1hcHBpbmcudXBkYXRlQ2hhbm5lbE5hbWVSZWdleC5wbGFjZWhvbGRlcn19Iik7CiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsKICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7Lm1hcHBpbmcudXBkYXRlQ2hhbm5lbE5hbWVSZWdleC50aXRsZX19IiwgaW5wdXQpOwogICAgICAgICAgICBjb250ZW50LmRlc2NyaXB0aW9uKCJ7ey5tYXBwaW5nLnVwZGF0ZUNoYW5uZWxOYW1lUmVnZXguZGVzY3JpcHRpb259fSIpOwogICAgICAgICAgICAvLyBDaGFubmVsIGdyb3VwIHJlZ2V4IGZvciB1cGRhdGluZyB0aGUgY2hhbm5lbCBuYW1lCiAgICAgICAgICAgIHZhciBkYktleSA9ICJ1cGRhdGUtY2hhbm5lbC1uYW1lLWJ5LWdyb3VwLXJlZ2V4IjsKICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7CiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3subWFwcGluZy51cGRhdGVDaGFubmVsTmFtZUJ5R3JvdXBSZWdleC5wbGFjZWhvbGRlcn19Iik7CiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsKICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7Lm1hcHBpbmcudXBkYXRlQ2hhbm5lbE5hbWVCeUdyb3VwUmVnZXgudGl0bGV9fSIsIGlucHV0KTsKICAgICAgICAgICAgY29udGVudC5kZXNjcmlwdGlvbigie3subWFwcGluZy51cGRhdGVDaGFubmVsTmFtZUJ5R3JvdXBSZWdleC5kZXNjcmlwdGlvbn19Iik7CiAgICAgICAgICAgIC8vIExvZ28gVVJMIChDaGFubmVsKSAKICAgICAgICAgICAgdmFyIGRiS2V5ID0gInR2Zy1sb2dvIjsKICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7CiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsKICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJpZCIsICJjaGFubmVsLWljb24iKTsKICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7Lm1hcHBpbmcuY2hhbm5lbExvZ28udGl0bGV9fSIsIGlucHV0KTsKICAgICAgICAgICAgLy8gQ2hhbm5lbCBsb2dvIHVwZGF0ZQogICAgICAgICAgICB2YXIgZGJLZXkgPSAieC11cGRhdGUtY2hhbm5lbC1pY29uIjsKICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChkYktleSk7CiAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhW2RiS2V5XTsKICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJpZCIsICJ1cGRhdGUtaWNvbiIpOwogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnOyBjaGFuZ2VDaGFubmVsTG9nbygnIiArIGlkICsgIicpOyIpOwogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3subWFwcGluZy51cGRhdGVDaGFubmVsTG9nby50aXRsZX19IiwgaW5wdXQpOwogICAgICAgICAgICAvLyBFeHBhbmQgRVBHIGNhdGVnb3J5CiAgICAgICAgICAgIHZhciBkYktleSA9ICJ4LWNhdGVnb3J5IjsKICAgICAgICAgICAgdmFyIHRleHQgPSBbIi0iLCAiS2lkcyAoRW1ieSBvbmx5KSIsICJOZXdzIiwgIk1vdmllIiwgIlNlcmllcyIsICJTcG9ydHMiXTsKICAgICAgICAgICAgdmFyIHZhbHVlcyA9IFsiIiwgIktpZHMiLCAiTmV3cyIsICJNb3ZpZSIsICJTZXJpZXMiLCAiU3BvcnRzIl07CiAgICAgICAgICAgIHZhciBzZWxlY3QgPSBjb250ZW50LmNyZWF0ZVNlbGVjdCh0ZXh0LCB2YWx1ZXMsIGRhdGFbZGJLZXldLCBkYktleSk7CiAgICAgICAgICAgIHNlbGVjdC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7CiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5tYXBwaW5nLmVwZ0NhdGVnb3J5LnRpdGxlfX0iLCBzZWxlY3QpOwogICAgICAgICAgICAvLyBNM1UgZ3JvdXAgdGl0bGUKICAgICAgICAgICAgdmFyIGRiS2V5ID0gIngtZ3JvdXAtdGl0bGUiOwogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsKICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOwogICAgICAgICAgICBpbnB1dC5kYXRhc2V0Lm9sZFZhbHVlID0gZGF0YVtkYktleV07CiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5tYXBwaW5nLm0zdUdyb3VwVGl0bGUudGl0bGV9fSIsIGlucHV0KTsKICAgICAgICAgICAgaWYgKGRhdGFbImdyb3VwLXRpdGxlIl0gIT0gdW5kZWZpbmVkKSB7CiAgICAgICAgICAgICAgICBjb250ZW50LmRlc2NyaXB0aW9uKGRhdGFbImdyb3VwLXRpdGxlIl0pOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGlmIChkYXRhWyJ4LXVwZGF0ZS1jaGFubmVsLWdyb3VwIl0gPT0gdHJ1ZSkgewogICAgICAgICAgICAgICAgaW5wdXQuZGlzYWJsZWQgPSB0cnVlOwogICAgICAgICAgICB9CiAgICAgICAgICAgIC8vIFVwZGF0ZSBjaGFubmVsIGdyb3VwIGNoZWNrYm94CiAgICAgICAgICAgIHZhciBkYktleSA9ICJ4LXVwZGF0ZS1jaGFubmVsLWdyb3VwIjsKICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChkYktleSk7CiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdG9nZ2xlR3JvdXBVcGRhdGVDYignIiArIGlkICsgIicsIHRoaXMpOyIpOwogICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YVtkYktleV07CiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5tYXBwaW5nLnVwZGF0ZUNoYW5uZWxHcm91cC50aXRsZX19IiwgaW5wdXQpOwogICAgICAgICAgICBjb250ZW50LmRlc2NyaXB0aW9uKCJ7ey5tYXBwaW5nLnVwZGF0ZUNoYW5uZWxHcm91cC5kZXNjcmlwdGlvbn19Iik7CiAgICAgICAgICAgIC8vIFhNTFRWIGZpbGUKICAgICAgICAgICAgdmFyIGRiS2V5ID0gJ3gteG1sdHYtZmlsZSc7CiAgICAgICAgICAgIGNvbnN0IHhtbFR2RmlsZSA9IGRhdGFbZGJLZXldOwogICAgICAgICAgICB2YXIgeG1sVHYgPSBuZXcgWE1MVFZGaWxlKCk7CiAgICAgICAgICAgIGNvbnN0IHhtbFR2RmlsZVNlbGVjdCA9IHhtbFR2LmdldEZpbGVzKGRhdGFbZGJLZXldKTsKICAgICAgICAgICAgeG1sVHZGaWxlU2VsZWN0LnNldEF0dHJpYnV0ZSgnbmFtZScsIGRiS2V5KTsKICAgICAgICAgICAgeG1sVHZGaWxlU2VsZWN0LnNldEF0dHJpYnV0ZSgnaWQnLCAncG9wdXAteG1sdHYnKTsKICAgICAgICAgICAgeG1sVHZGaWxlU2VsZWN0LnNldEF0dHJpYnV0ZSgnb25jaGFuZ2UnLCBgamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCc7IHNldFhtbHR2Q2hhbm5lbCgnJHtpZH0nLCB0aGlzKTtgKTsKICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coJ3t7Lm1hcHBpbmcueG1sdHZGaWxlLnRpdGxlfX0nLCB4bWxUdkZpbGVTZWxlY3QpOwogICAgICAgICAgICAvLyBYTUxUViBNYXBwaW5nCiAgICAgICAgICAgIHZhciBkYktleSA9ICd4LW1hcHBpbmcnOwogICAgICAgICAgICB2YXIgeG1sVHYgPSBuZXcgWE1MVFZGaWxlKCk7CiAgICAgICAgICAgIGNvbnN0IGN1cnJlbnRYbWxUdklkID0gZGF0YVtkYktleV07CiAgICAgICAgICAgIGNvbnN0IFt4bWxUdklkQ29udGFpbmVyLCB4bWxUdklkSW5wdXQsIHhtbFR2SWREYXRhbGlzdF0gPSB4bWxUdi5uZXdYbWxUdklkUGlja2VyKHhtbFR2RmlsZSwgY3VycmVudFhtbFR2SWQpOwogICAgICAgICAgICB4bWxUdklkQ29udGFpbmVyLnNldEF0dHJpYnV0ZSgnaWQnLCAneG1sdHYtaWQtcGlja2VyLWNvbnRhaW5lcicpOwogICAgICAgICAgICB4bWxUdklkSW5wdXQuc2V0QXR0cmlidXRlKCdsaXN0JywgJ3htbHR2LWlkLXBpY2tlci1kYXRhbGlzdCcpOwogICAgICAgICAgICB4bWxUdklkSW5wdXQuc2V0QXR0cmlidXRlKCduYW1lJywgJ3gtbWFwcGluZycpOyAvLyBTaG91bGQgc3RheSB4LW1hcHBpbmcgYXMgaXQgd2lsbCBiZSB1c2VkIGluIGRvbmVQb3B1cERhdGEgdG8gbWFrZSBhIHNlcnZlciByZXF1ZXN0CiAgICAgICAgICAgIHhtbFR2SWRJbnB1dC5zZXRBdHRyaWJ1dGUoJ2lkJywgJ3htbHR2LWlkLXBpY2tlci1pbnB1dCcpOwogICAgICAgICAgICB4bWxUdklkSW5wdXQuc2V0QXR0cmlidXRlKCdvbmNoYW5nZScsIGBqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJzsgY2hlY2tYbWx0dkNoYW5uZWwoJyR7aWR9JywgdGhpcy52YWx1ZSwgJyR7eG1sVHZGaWxlfScpO2ApOwogICAgICAgICAgICB4bWxUdklkRGF0YWxpc3Quc2V0QXR0cmlidXRlKCdpZCcsICd4bWx0di1pZC1waWNrZXItZGF0YWxpc3QnKTsKICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coJ3t7Lm1hcHBpbmcueG1sdHZDaGFubmVsLnRpdGxlfX0nLCB4bWxUdklkQ29udGFpbmVyKTsKICAgICAgICAgICAgLy8gVGltZXNoaWZ0CiAgICAgICAgICAgIHZhciBkYktleSA9ICJ4LXRpbWVzaGlmdCI7CiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOwogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7CiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3subWFwcGluZy50aW1lc2hpZnQucGxhY2Vob2xkZXJ9fSIpOwogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoImlkIiwgInRpbWVzaGlmdCIpOwogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3subWFwcGluZy50aW1lc2hpZnQudGl0bGV9fSIsIGlucHV0KTsKICAgICAgICAgICAgLy8gSW50ZXJhY3Rpb24KICAgICAgICAgICAgY29udGVudC5jcmVhdGVJbnRlcmFjdGlvbigpOwogICAgICAgICAgICAvLyBVcGxvYWQgbG9nbwogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAiY2FuY2VsIiwgInt7LmJ1dHRvbi51cGxvYWRMb2dvfX0iKTsKICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IHVwbG9hZExvZ28oKTsnKTsKICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7CiAgICAgICAgICAgIC8vIEFib3J0CiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJjYW5jZWwiLCAie3suYnV0dG9uLmNhbmNlbH19Iik7CiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBzaG93RWxlbWVudCgicG9wdXAiLCBmYWxzZSk7Jyk7CiAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOwogICAgICAgICAgICAvLyBGaW5pc2hlZAogICAgICAgICAgICB2YXIgaWRzID0gW107CiAgICAgICAgICAgIGlkcyA9IGdldEFsbFNlbGVjdGVkQ2hhbm5lbHMoKTsKICAgICAgICAgICAgaWYgKGlkcy5sZW5ndGggPT0gMCkgewogICAgICAgICAgICAgICAgaWRzLnB1c2goaWQpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJzYXZlIiwgInt7LmJ1dHRvbi5kb25lfX0iKTsKICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IGRvbmVQb3B1cERhdGEoIicgKyBkYXRhVHlwZSArICciLCAiJyArIGlkcyArICciLCAiZmFsc2UiKTsnKTsKICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgIGJyZWFrOwogICAgfQogICAgc2hvd1BvcFVwRWxlbWVudCgncG9wdXAtY3VzdG9tJyk7Cn0KY2xhc3MgWE1MVFZGaWxlIHsKICAgIGdldEZpbGVzKHNldCkgewogICAgICAgIGxldCBmaWxlSURzID0gZ2V0T3duT2JqUHJvcHMoU0VSVkVSWyJ4ZXBnIl1bInhtbHR2TWFwIl0pOwogICAgICAgIGxldCB2YWx1ZXMgPSBuZXcgQXJyYXkoIi0iKTsKICAgICAgICBsZXQgdGV4dCA9IG5ldyBBcnJheSgiLSIpOwogICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgZmlsZUlEcy5sZW5ndGg7IGkrKykgewogICAgICAgICAgICBpZiAoZmlsZUlEc1tpXSAhPSAieFRlVmUgRHVtbXkiKSB7CiAgICAgICAgICAgICAgICB2YWx1ZXMucHVzaChnZXRWYWx1ZUZyb21Qcm92aWRlckZpbGUoZmlsZUlEc1tpXSwgInhtbHR2IiwgImZpbGUueHRldmUiKSk7CiAgICAgICAgICAgICAgICB0ZXh0LnB1c2goZ2V0VmFsdWVGcm9tUHJvdmlkZXJGaWxlKGZpbGVJRHNbaV0sICJ4bWx0diIsICJuYW1lIikpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgdmFsdWVzLnB1c2goZmlsZUlEc1tpXSk7CiAgICAgICAgICAgICAgICB0ZXh0LnB1c2goZmlsZUlEc1tpXSk7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgbGV0IHNlbGVjdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlNFTEVDVCIpOwogICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGV4dC5sZW5ndGg7IGkrKykgewogICAgICAgICAgICB2YXIgb3B0aW9uID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiT1BUSU9OIik7CiAgICAgICAgICAgIG9wdGlvbi5zZXRBdHRyaWJ1dGUoInZhbHVlIiwgdmFsdWVzW2ldKTsKICAgICAgICAgICAgb3B0aW9uLmlubmVyVGV4dCA9IHRleHRbaV07CiAgICAgICAgICAgIHNlbGVjdC5hcHBlbmRDaGlsZChvcHRpb24pOwogICAgICAgIH0KICAgICAgICBpZiAoc2V0ICE9ICIiKSB7CiAgICAgICAgICAgIHNlbGVjdC52YWx1ZSA9IHNldDsKICAgICAgICB9CiAgICAgICAgcmV0dXJuIHNlbGVjdDsKICAgIH0KICAgIC8qKgogICAgICogQHBhcmFtIHhtbFR2RmlsZSBYTUwgZmlsZSBwYXRoIHRvIGdldCBFUEcgZnJvbS4KICAgICAqIEBwYXJhbSBjdXJyZW50WG1sVHZJZCBDdXJyZW50IFhNTFRWIElEIHRvIHNldCBpbml0aWFsIGlucHV0IHZhbHVlIHRvLgogICAgICogQHJldHVybnMgQXJyYXkgb2YsIHNlcXVlbnRpYWxseToKICAgICAqIDEpIENvbnRhaW5lciBvZiB0aGUgcGlja2VyLgogICAgICogMikgSW5wdXQgZmllbGQgdG8gdHlwZSBhdCBhbmQgZ2V0IGNob2ljZSBmcm9tLgogICAgICogMykgRGF0YWxpc3QgY29udGFpbmluZyBldmVyeSBvcHRpb24uCiAgICAgKi8KICAgIG5ld1htbFR2SWRQaWNrZXIoeG1sVHZGaWxlLCBjdXJyZW50WG1sVHZJZCkgewogICAgICAgIGNvbnN0IGNvbnRhaW5lciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOwogICAgICAgIGNvbnN0IGlucHV0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnaW5wdXQnKTsKICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoJ3R5cGUnLCAndGV4dCcpOwogICAgICAgIC8vIEluaXRpYWxseSwgc2V0IHZhbHVlIHRvICctJyBpZiBpbnB1dCBpcyBlbXB0eQogICAgICAgIGlucHV0LnZhbHVlID0gKGN1cnJlbnRYbWxUdklkKSA/IGN1cnJlbnRYbWxUdklkIDogJy0nOwogICAgICAgIC8vIFdoZW4gaW5wdXQgaXMgZm9jdXNlZCwgcmVtb3ZlICctJyBmcm9tIGl0CiAgICAgICAgaW5wdXQuYWRkRXZlbnRMaXN0ZW5lcignZm9jdXMnLCAoZXZ0KSA9PiB7CiAgICAgICAgICAgIGNvbnN0IHRhcmdldCA9IGV2dC50YXJnZXQ7CiAgICAgICAgICAgIHRhcmdldC52YWx1ZSA9ICh0YXJnZXQudmFsdWUgPT09ICctJykgPyAnJyA6IHRhcmdldC52YWx1ZTsKICAgICAgICB9KTsKICAgICAgICAvLyBXaGVuIGlucHV0IGxvc2UgZm9jdXMgb3IgdGFrZSBhIHZhbHVlLCBpZiBpdCdzIGVtcHR5LCBzZXQgdmFsdWUgdG8gJy0nCiAgICAgICAgaW5wdXQuYWRkRXZlbnRMaXN0ZW5lcignYmx1cicsIHNldEZhbGxiYWNrVmFsdWUpOwogICAgICAgIGlucHV0LmFkZEV2ZW50TGlzdGVuZXIoJ2NoYW5nZScsIHNldEZhbGxiYWNrVmFsdWUpOwogICAgICAgIGZ1bmN0aW9uIHNldEZhbGxiYWNrVmFsdWUoZXZ0KSB7CiAgICAgICAgICAgIGNvbnN0IHRhcmdldCA9IGV2dC50YXJnZXQ7CiAgICAgICAgICAgIHRhcmdldC52YWx1ZSA9ICh0YXJnZXQudmFsdWUpID8gdGFyZ2V0LnZhbHVlIDogJy0nOwogICAgICAgIH0KICAgICAgICBjb250YWluZXIuYXBwZW5kQ2hpbGQoaW5wdXQpOwogICAgICAgIGNvbnN0IGRhdGFsaXN0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGF0YWxpc3QnKTsKICAgICAgICBjb25zdCBvcHRpb24gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdvcHRpb24nKTsKICAgICAgICBvcHRpb24uc2V0QXR0cmlidXRlKCd2YWx1ZScsICctJyk7CiAgICAgICAgb3B0aW9uLmlubmVyVGV4dCA9ICctJzsKICAgICAgICBkYXRhbGlzdC5hcHBlbmRDaGlsZChvcHRpb24pOwogICAgICAgIGNvbnN0IGVwZyA9IFNFUlZFUlsneGVwZyddWyd4bWx0dk1hcCddW3htbFR2RmlsZV07CiAgICAgICAgaWYgKGVwZykgewogICAgICAgICAgICBjb25zdCBwcm9ncmFtSWRzID0gZ2V0T3duT2JqUHJvcHMoZXBnKTsKICAgICAgICAgICAgcHJvZ3JhbUlkcy5mb3JFYWNoKChwcm9ncmFtSWQpID0+IHsKICAgICAgICAgICAgICAgIGNvbnN0IHByb2dyYW0gPSBlcGdbcHJvZ3JhbUlkXTsKICAgICAgICAgICAgICAgIGlmIChwcm9ncmFtLmhhc093blByb3BlcnR5KCdkaXNwbGF5LW5hbWVzJykpIHsKICAgICAgICAgICAgICAgICAgICBwcm9ncmFtWydkaXNwbGF5LW5hbWVzJ10uZm9yRWFjaCgoZGlzcGxheU5hbWUpID0+IHsKICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgb3B0aW9uID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnb3B0aW9uJyk7CiAgICAgICAgICAgICAgICAgICAgICAgIG9wdGlvbi5zZXRBdHRyaWJ1dGUoJ3ZhbHVlJywgcHJvZ3JhbUlkKTsKICAgICAgICAgICAgICAgICAgICAgICAgb3B0aW9uLmlubmVyVGV4dCA9IGRpc3BsYXlOYW1lWydWYWx1ZSddOwogICAgICAgICAgICAgICAgICAgICAgICBkYXRhbGlzdC5hcHBlbmRDaGlsZChvcHRpb24pOwogICAgICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgY29uc3Qgb3B0aW9uID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnb3B0aW9uJyk7CiAgICAgICAgICAgICAgICAgICAgb3B0aW9uLnNldEF0dHJpYnV0ZSgndmFsdWUnLCBwcm9ncmFtSWQpOwogICAgICAgICAgICAgICAgICAgIG9wdGlvbi5pbm5lclRleHQgPSAnLSc7CiAgICAgICAgICAgICAgICAgICAgZGF0YWxpc3QuYXBwZW5kQ2hpbGQob3B0aW9uKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSk7CiAgICAgICAgfQogICAgICAgIGNvbnRhaW5lci5hcHBlbmRDaGlsZChkYXRhbGlzdCk7CiAgICAgICAgcmV0dXJuIFtjb250YWluZXIsIGlucHV0LCBkYXRhbGlzdF07CiAgICB9Cn0KZnVuY3Rpb24gZ2V0VmFsdWVGcm9tUHJvdmlkZXJGaWxlKGZpbGUsIGZpbGVUeXBlLCBrZXkpIHsKICAgIGlmIChmaWxlID09ICJ4VGVWZSBEdW1teSIpIHsKICAgICAgICByZXR1cm4gZmlsZTsKICAgIH0KICAgIGxldCBmaWxlSUQ7CiAgICBsZXQgaW5kaWNhdG9yID0gZmlsZS5jaGFyQXQoMCk7CiAgICBzd2l0Y2ggKGluZGljYXRvcikgewogICAgICAgIGNhc2UgIk0iOgogICAgICAgICAgICBmaWxlVHlwZSA9ICJtM3UiOwogICAgICAgICAgICBmaWxlSUQgPSBmaWxlOwogICAgICAgICAgICBicmVhazsKICAgICAgICBjYXNlICJIIjoKICAgICAgICAgICAgZmlsZVR5cGUgPSAiaGRociI7CiAgICAgICAgICAgIGZpbGVJRCA9IGZpbGU7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgIGNhc2UgIlgiOgogICAgICAgICAgICBmaWxlVHlwZSA9ICJ4bWx0diI7CiAgICAgICAgICAgIGZpbGVJRCA9IGZpbGUuc3Vic3RyaW5nKDAsIGZpbGUubGFzdEluZGV4T2YoJy4nKSk7CiAgICAgICAgICAgIGJyZWFrOwogICAgfQogICAgaWYgKFNFUlZFUlsic2V0dGluZ3MiXVsiZmlsZXMiXVtmaWxlVHlwZV0uaGFzT3duUHJvcGVydHkoZmlsZUlEKSA9PSB0cnVlKSB7CiAgICAgICAgdmFyIGRhdGEgPSBTRVJWRVJbInNldHRpbmdzIl1bImZpbGVzIl1bZmlsZVR5cGVdW2ZpbGVJRF07CiAgICAgICAgcmV0dXJuIGRhdGFba2V5XTsKICAgIH0KICAgIHJldHVybjsKfQpmdW5jdGlvbiBzZXRYbWx0dkNoYW5uZWwoZXBnTWFwSWQsIHhtbFR2RmlsZVNlbGVjdCkgewogICAgY29uc3QgeG1sVHYgPSBuZXcgWE1MVFZGaWxlKCk7CiAgICBjb25zdCBuZXdYbWxUdkZpbGUgPSB4bWxUdkZpbGVTZWxlY3QudmFsdWU7CiAgICAvLyBSZW1vdmUgb2xkIFhNTFRWIElEIHNlbGVjdGlvbiBib3gKICAgIGNvbnN0IHhtbFR2SWRQaWNrZXJQYXJlbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgneG1sdHYtaWQtcGlja2VyLWNvbnRhaW5lcicpLnBhcmVudEVsZW1lbnQ7CiAgICB4bWxUdklkUGlja2VyUGFyZW50LmlubmVySFRNTCA9ICcnOwogICAgLy8gQ3JlYXRlIG5ldyBYTUxUViBJRCBzZWxlY3Rpb24gYm94CiAgICBjb25zdCB0dmdJZCA9IFNFUlZFUlsneGVwZyddWydlcGdNYXBwaW5nJ11bZXBnTWFwSWRdWyd0dmctaWQnXTsKICAgIGNvbnN0IFt4bWxUdklkQ29udGFpbmVyLCB4bWxUdklkSW5wdXQsIHhtbFR2SWREYXRhbGlzdF0gPSB4bWxUdi5uZXdYbWxUdklkUGlja2VyKG5ld1htbFR2RmlsZSwgdHZnSWQpOwogICAgeG1sVHZJZENvbnRhaW5lci5zZXRBdHRyaWJ1dGUoJ2lkJywgJ3htbHR2LWlkLXBpY2tlci1jb250YWluZXInKTsKICAgIHhtbFR2SWRJbnB1dC5zZXRBdHRyaWJ1dGUoJ2xpc3QnLCAneG1sdHYtaWQtcGlja2VyLWRhdGFsaXN0Jyk7CiAgICB4bWxUdklkSW5wdXQuc2V0QXR0cmlidXRlKCduYW1lJywgJ3gtbWFwcGluZycpOyAvLyBTaG91bGQgc3RheSB4LW1hcHBpbmcgYXMgaXQgd2lsbCBiZSB1c2VkIGluIGRvbmVQb3B1cERhdGEgdG8gbWFrZSBhIHNlcnZlciByZXF1ZXN0CiAgICB4bWxUdklkSW5wdXQuc2V0QXR0cmlidXRlKCdpZCcsICd4bWx0di1pZC1waWNrZXItaW5wdXQnKTsKICAgIHhtbFR2SWRJbnB1dC5zZXRBdHRyaWJ1dGUoJ29uY2hhbmdlJywgYGphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnOyBjaGVja1htbHR2Q2hhbm5lbCgnJHtlcGdNYXBJZH0nLCB0aGlzLnZhbHVlLCAnJHtuZXdYbWxUdkZpbGV9Jyk7YCk7CiAgICB4bWxUdklkSW5wdXQuY2xhc3NMaXN0LmFkZCgnY2hhbmdlZCcpOwogICAgeG1sVHZJZERhdGFsaXN0LnNldEF0dHJpYnV0ZSgnaWQnLCAneG1sdHYtaWQtcGlja2VyLWRhdGFsaXN0Jyk7CiAgICAvLyBBZGQgbmV3IFhNTFRWIElEIHNlbGVjdGlvbiBib3ggdG8gaXQncyBwYXJlbnQKICAgIHhtbFR2SWRQaWNrZXJQYXJlbnQuYXBwZW5kQ2hpbGQoeG1sVHZJZENvbnRhaW5lcik7CiAgICBjaGVja1htbHR2Q2hhbm5lbChlcGdNYXBJZCwgeG1sVHZJZElucHV0LnZhbHVlLCBuZXdYbWxUdkZpbGUpOwp9CmZ1bmN0aW9uIGNoZWNrWG1sdHZDaGFubmVsKGVwZ01hcElkLCBuZXdYbWxUdklkLCB4bWxUdkZpbGUpIHsKICAgIGNvbnN0IGNoYW5uZWxBY3RpdmVDYiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdhY3RpdmUnKTsKICAgIGNvbnN0IGNoYW5uZWxBY3RpdmUgPSBuZXdYbWxUdklkICE9ICctJzsKICAgIGNoYW5uZWxBY3RpdmVDYi5jaGVja2VkID0gY2hhbm5lbEFjdGl2ZTsKICAgIGNoYW5uZWxBY3RpdmVDYi5jbGFzc05hbWUgPSAnY2hhbmdlZCc7CiAgICBpZiAoeG1sVHZGaWxlICE9ICd4VGVWZSBEdW1teScgJiYgY2hhbm5lbEFjdGl2ZSA9PSB0cnVlKSB7CiAgICAgICAgY2hhbmdlQ2hhbm5lbExvZ28oZXBnTWFwSWQpOwogICAgICAgIHJldHVybjsKICAgIH0KICAgIGlmICh4bWxUdkZpbGUgPT0gJ3hUZVZlIER1bW15JykgewogICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd1cGRhdGUtaWNvbicpLmNoZWNrZWQgPSBmYWxzZTsKICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndXBkYXRlLWljb24nKS5jbGFzc05hbWUgPSAnY2hhbmdlZCc7CiAgICB9Cn0KZnVuY3Rpb24gY2hhbmdlQ2hhbm5lbExvZ28oZXBnTWFwSWQpIHsKICAgIGNvbnN0IGNoYW5uZWwgPSBTRVJWRVJbJ3hlcGcnXVsnZXBnTWFwcGluZyddW2VwZ01hcElkXTsKICAgIGNvbnN0IHhtbFR2RmlsZVNlbGVjdCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdwb3B1cC14bWx0dicpOwogICAgY29uc3QgeG1sVHZGaWxlID0geG1sVHZGaWxlU2VsZWN0Lm9wdGlvbnNbeG1sVHZGaWxlU2VsZWN0LnNlbGVjdGVkSW5kZXhdLnZhbHVlOwogICAgY29uc3QgeG1sVHZJZElucHV0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3htbHR2LWlkLXBpY2tlci1pbnB1dCcpOwogICAgY29uc3QgbmV3WG1sVHZJZCA9IHhtbFR2SWRJbnB1dC52YWx1ZTsKICAgIGNvbnN0IHVwZGF0ZUxvZ28gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndXBkYXRlLWljb24nKS5jaGVja2VkOwogICAgbGV0IGxvZ287CiAgICBpZiAodXBkYXRlTG9nbyA9PSB0cnVlICYmIHhtbFR2RmlsZSAhPSAneFRlVmUgRHVtbXknKSB7CiAgICAgICAgaWYgKFNFUlZFUlsneGVwZyddWyd4bWx0dk1hcCddW3htbFR2RmlsZV0uaGFzT3duUHJvcGVydHkobmV3WG1sVHZJZCkpIHsKICAgICAgICAgICAgbG9nbyA9IFNFUlZFUlsneGVwZyddWyd4bWx0dk1hcCddW3htbFR2RmlsZV1bbmV3WG1sVHZJZF1bJ2ljb24nXTsKICAgICAgICB9CiAgICAgICAgZWxzZSB7CiAgICAgICAgICAgIGxvZ28gPSBjaGFubmVsWyd0dmctbG9nbyddOwogICAgICAgIH0KICAgICAgICB2YXIgbG9nb0lucHV0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NoYW5uZWwtaWNvbicpOwogICAgICAgIGxvZ29JbnB1dC52YWx1ZSA9IGxvZ287CiAgICAgICAgaWYgKEJVTEtfRURJVCA9PSBmYWxzZSkgewogICAgICAgICAgICBsb2dvSW5wdXQuY2xhc3NOYW1lID0gJ2NoYW5nZWQnOwogICAgICAgIH0KICAgIH0KfQpmdW5jdGlvbiBzYXZlUG9wdXBEYXRhKGRhdGFUeXBlLCBpZCwgcmVtb3ZlLCBvcHRpb24pIHsKICAgIGlmIChkYXRhVHlwZSA9PSAibWFwcGluZyIpIHsKICAgICAgICBsZXQgZGF0YSA9IHt9OwogICAgICAgIGxldCBjbWQgPSAic2F2ZUVwZ01hcHBpbmciOwogICAgICAgIGRhdGFbImVwZ01hcHBpbmciXSA9IFNFUlZFUlsieGVwZyJdWyJlcGdNYXBwaW5nIl07CiAgICAgICAgbGV0IHNlcnZlciA9IG5ldyBTZXJ2ZXIoY21kKTsKICAgICAgICBzZXJ2ZXIucmVxdWVzdChkYXRhKTsKICAgICAgICBkZWxldGUgVU5ET1siZXBnTWFwcGluZyJdOwogICAgICAgIHJldHVybjsKICAgIH0KICAgIGxldCBkaXYgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicG9wdXAtY3VzdG9tIik7CiAgICBsZXQgaW5wdXRzID0gZGl2LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJUQUJMRSIpWzBdLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJJTlBVVCIpOwogICAgbGV0IHNlbGVjdHMgPSBkaXYuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlRBQkxFIilbMF0uZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlNFTEVDVCIpOwogICAgbGV0IGlucHV0ID0ge307CiAgICBsZXQgY29uZmlybU1zZzsKICAgIGZvciAobGV0IGkgPSAwOyBpIDwgc2VsZWN0cy5sZW5ndGg7IGkrKykgewogICAgICAgIHZhciBuYW1lOwogICAgICAgIG5hbWUgPSBzZWxlY3RzW2ldLm5hbWU7CiAgICAgICAgdmFyIHZhbHVlID0gc2VsZWN0c1tpXS52YWx1ZTsKICAgICAgICBzd2l0Y2ggKG5hbWUpIHsKICAgICAgICAgICAgY2FzZSAidHVuZXIiOgogICAgICAgICAgICAgICAgaW5wdXRbbmFtZV0gPSBwYXJzZUludCh2YWx1ZSk7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgICAgIGlucHV0W25hbWVdID0gdmFsdWU7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICB9CiAgICB9CiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGlucHV0cy5sZW5ndGg7IGkrKykgewogICAgICAgIHN3aXRjaCAoaW5wdXRzW2ldLnR5cGUpIHsKICAgICAgICAgICAgY2FzZSAiY2hlY2tib3giOgogICAgICAgICAgICAgICAgbmFtZSA9IGlucHV0c1tpXS5uYW1lOwogICAgICAgICAgICAgICAgaW5wdXRbbmFtZV0gPSBpbnB1dHNbaV0uY2hlY2tlZDsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJ0ZXh0IjoKICAgICAgICAgICAgY2FzZSAiaGlkZGVuIjoKICAgICAgICAgICAgY2FzZSAicGFzc3dvcmQiOgogICAgICAgICAgICAgICAgbmFtZSA9IGlucHV0c1tpXS5uYW1lOwogICAgICAgICAgICAgICAgc3dpdGNoIChuYW1lKSB7CiAgICAgICAgICAgICAgICAgICAgY2FzZSAidHVuZXIiOgogICAgICAgICAgICAgICAgICAgICAgICBpbnB1dFtuYW1lXSA9IHBhcnNlSW50KGlucHV0c1tpXS52YWx1ZSk7CiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICAgICAgICAgICAgIGlucHV0W25hbWVdID0gaW5wdXRzW2ldLnZhbHVlOwogICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgIH0KICAgIH0KICAgIGxldCBkYXRhID0ge307CiAgICBsZXQgY21kOwogICAgaWYgKHJlbW92ZSA9PSB0cnVlKSB7CiAgICAgICAgaW5wdXRbImRlbGV0ZSJdID0gdHJ1ZTsKICAgIH0KICAgIHN3aXRjaCAoZGF0YVR5cGUpIHsKICAgICAgICBjYXNlICJ1c2VycyI6CiAgICAgICAgICAgIGNvbmZpcm1Nc2cgPSAiRGVsZXRlIHRoaXMgdXNlcj8iOwogICAgICAgICAgICBpZiAoaWQgPT0gIi0iKSB7CiAgICAgICAgICAgICAgICBjbWQgPSAic2F2ZU5ld1VzZXIiOwogICAgICAgICAgICAgICAgZGF0YVsidXNlckRhdGEiXSA9IGlucHV0OwogICAgICAgICAgICB9CiAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgY21kID0gInNhdmVVc2VyRGF0YSI7CiAgICAgICAgICAgICAgICBsZXQgZCA9IHt9OwogICAgICAgICAgICAgICAgZFtpZF0gPSBpbnB1dDsKICAgICAgICAgICAgICAgIGRhdGFbInVzZXJEYXRhIl0gPSBkOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgIGNhc2UgIm0zdSI6CiAgICAgICAgICAgIGNvbmZpcm1Nc2cgPSAiRGVsZXRlIHRoaXMgcGxheWxpc3Q/IjsKICAgICAgICAgICAgc3dpdGNoIChvcHRpb24pIHsKICAgICAgICAgICAgICAgIC8vIFBvcHVwOiBTYXZlCiAgICAgICAgICAgICAgICBjYXNlIDA6CiAgICAgICAgICAgICAgICAgICAgY21kID0gInNhdmVGaWxlc00zVSI7CiAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAvLyBQb3B1cDogVXBkYXRlCiAgICAgICAgICAgICAgICBjYXNlIDE6CiAgICAgICAgICAgICAgICAgICAgY21kID0gInVwZGF0ZUZpbGVNM1UiOwogICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGRhdGFbImZpbGVzIl0gPSB7fTsKICAgICAgICAgICAgZGF0YVsiZmlsZXMiXVtkYXRhVHlwZV0gPSB7fTsKICAgICAgICAgICAgZGF0YVsiZmlsZXMiXVtkYXRhVHlwZV1baWRdID0gaW5wdXQ7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgIGNhc2UgImhkaHIiOgogICAgICAgICAgICBjb25maXJtTXNnID0gIkRlbGV0ZSB0aGlzIEhESG9tZVJ1biB0dW5lcj8iOwogICAgICAgICAgICBzd2l0Y2ggKG9wdGlvbikgewogICAgICAgICAgICAgICAgLy8gUG9wdXA6IFNhdmUKICAgICAgICAgICAgICAgIGNhc2UgMDoKICAgICAgICAgICAgICAgICAgICBjbWQgPSAic2F2ZUZpbGVzSERIUiI7CiAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAvLyBQb3B1cDogVXBkYXRlCiAgICAgICAgICAgICAgICBjYXNlIDE6CiAgICAgICAgICAgICAgICAgICAgY21kID0gInVwZGF0ZUZpbGVIREhSIjsKICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgfQogICAgICAgICAgICBkYXRhWyJmaWxlcyJdID0ge307CiAgICAgICAgICAgIGRhdGFbImZpbGVzIl1bZGF0YVR5cGVdID0ge307CiAgICAgICAgICAgIGRhdGFbImZpbGVzIl1bZGF0YVR5cGVdW2lkXSA9IGlucHV0OwogICAgICAgICAgICBicmVhazsKICAgICAgICBjYXNlICJ4bWx0diI6CiAgICAgICAgICAgIGNvbmZpcm1Nc2cgPSAiRGVsZXRlIHRoaXMgWE1MVFYgZmlsZT8iOwogICAgICAgICAgICBzd2l0Y2ggKG9wdGlvbikgewogICAgICAgICAgICAgICAgLy8gUG9wdXA6IFNhdmUKICAgICAgICAgICAgICAgIGNhc2UgMDoKICAgICAgICAgICAgICAgICAgICBjbWQgPSAic2F2ZUZpbGVzWE1MVFYiOwogICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgLy8gUG9wdXA6IFVwZGF0ZQogICAgICAgICAgICAgICAgY2FzZSAxOgogICAgICAgICAgICAgICAgICAgIGNtZCA9ICJ1cGRhdGVGaWxlWE1MVFYiOwogICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGRhdGFbImZpbGVzIl0gPSB7fTsKICAgICAgICAgICAgZGF0YVsiZmlsZXMiXVtkYXRhVHlwZV0gPSB7fTsKICAgICAgICAgICAgZGF0YVsiZmlsZXMiXVtkYXRhVHlwZV1baWRdID0gaW5wdXQ7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgIGNhc2UgImZpbHRlciI6CiAgICAgICAgICAgIGNvbmZpcm1Nc2cgPSAiRGVsZXRlIHRoaXMgZmlsdGVyPyI7CiAgICAgICAgICAgIGNtZCA9ICJzYXZlRmlsdGVyIjsKICAgICAgICAgICAgZGF0YVsiZmlsdGVyIl0gPSB7fTsKICAgICAgICAgICAgZGF0YVsiZmlsdGVyIl1baWRdID0gaW5wdXQ7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgIHJldHVybjsKICAgIH0KICAgIGlmIChyZW1vdmUgPT0gdHJ1ZSkgewogICAgICAgIGlmICghY29uZmlybShjb25maXJtTXNnKSkgewogICAgICAgICAgICBzaG93RWxlbWVudCgicG9wdXAiLCBmYWxzZSk7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICB9CiAgICBsZXQgc2VydmVyID0gbmV3IFNlcnZlcihjbWQpOwogICAgc2VydmVyLnJlcXVlc3QoZGF0YSk7Cn0KZnVuY3Rpb24gZG9uZVBvcHVwRGF0YShkYXRhVHlwZSwgaWRzU3RyKSB7CiAgICBsZXQgaWRzID0gaWRzU3RyLnNwbGl0KCcsJyk7CiAgICBsZXQgZGl2ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInBvcHVwLWN1c3RvbSIpOwogICAgbGV0IGlucHV0cyA9IGRpdi5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCJjaGFuZ2VkIik7CiAgICBpZHMuZm9yRWFjaChpZCA9PiB7CiAgICAgICAgbGV0IGlucHV0OwogICAgICAgIGlucHV0ID0gU0VSVkVSWyJ4ZXBnIl1bImVwZ01hcHBpbmciXVtpZF07CiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBpbnB1dHMubGVuZ3RoOyBpKyspIHsKICAgICAgICAgICAgbGV0IG5hbWU7CiAgICAgICAgICAgIGxldCB2YWx1ZTsKICAgICAgICAgICAgc3dpdGNoIChpbnB1dHNbaV0udGFnTmFtZSkgewogICAgICAgICAgICAgICAgY2FzZSAiSU5QVVQiOgogICAgICAgICAgICAgICAgICAgIHN3aXRjaCAoaW5wdXRzW2ldLnR5cGUpIHsKICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAiY2hlY2tib3giOgogICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZSA9IGlucHV0c1tpXS5uYW1lOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSBpbnB1dHNbaV0uY2hlY2tlZDsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlucHV0W25hbWVdID0gdmFsdWU7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAidGV4dCI6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lID0gaW5wdXRzW2ldLm5hbWU7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IGlucHV0c1tpXS52YWx1ZTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlucHV0W25hbWVdID0gdmFsdWU7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICBjYXNlICJTRUxFQ1QiOgogICAgICAgICAgICAgICAgICAgIG5hbWUgPSBpbnB1dHNbaV0ubmFtZTsKICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IGlucHV0c1tpXS52YWx1ZTsKICAgICAgICAgICAgICAgICAgICBpbnB1dFtuYW1lXSA9IHZhbHVlOwogICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICB9CiAgICAgICAgICAgIHN3aXRjaCAobmFtZSkgewogICAgICAgICAgICAgICAgY2FzZSAidHZnLWxvZ28iOgogICAgICAgICAgICAgICAgICAgIC8vKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5jaGlsZE5vZGVzWzJdLmZpcnN0Q2hpbGQgYXMgSFRNTEVsZW1lbnQpLnNldEF0dHJpYnV0ZSgic3JjIiwgdmFsdWUpCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICBjYXNlICJ4LW5hbWUiOgogICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5jaGlsZE5vZGVzWzNdLmZpcnN0Q2hpbGQuaW5uZXJIVE1MID0gdmFsdWU7CiAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICBjYXNlICJ4LWNhdGVnb3J5IjoKICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkuY2hpbGROb2Rlc1szXS5maXJzdENoaWxkLmNsYXNzTmFtZSA9IHZhbHVlOwogICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgY2FzZSAidXBkYXRlLWNoYW5uZWwtbmFtZS1yZWdleCI6CiAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpLmNoaWxkTm9kZXNbNF0uZmlyc3RDaGlsZC5pbm5lckhUTUwgPSB2YWx1ZTsKICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgIGNhc2UgIngtZ3JvdXAtdGl0bGUiOgogICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5jaGlsZE5vZGVzWzZdLmZpcnN0Q2hpbGQuaW5uZXJIVE1MID0gdmFsdWU7CiAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICBjYXNlICJ4LXhtbHR2LWZpbGUiOgogICAgICAgICAgICAgICAgICAgIGlmICh2YWx1ZSAhPSAieFRlVmUgRHVtbXkiICYmIHZhbHVlICE9ICItIikgewogICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IGdldFZhbHVlRnJvbVByb3ZpZGVyRmlsZSh2YWx1ZSwgInhtbHR2IiwgIm5hbWUiKTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgaWYgKHZhbHVlID09ICItIikgewogICAgICAgICAgICAgICAgICAgICAgICBpbnB1dFsieC1hY3RpdmUiXSA9IGZhbHNlOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkuY2hpbGROb2Rlc1s3XS5maXJzdENoaWxkLmlubmVySFRNTCA9IHZhbHVlOwogICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgY2FzZSAieC1tYXBwaW5nIjoKICAgICAgICAgICAgICAgICAgICBpZiAodmFsdWUgPT0gIi0iKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGlucHV0WyJ4LWFjdGl2ZSJdID0gZmFsc2U7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5jaGlsZE5vZGVzWzhdLmZpcnN0Q2hpbGQuaW5uZXJIVE1MID0gdmFsdWU7CiAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICBjYXNlICJ4LXRpbWVzaGlmdCI6CiAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpLmNoaWxkTm9kZXNbOV0uZmlyc3RDaGlsZC5pbm5lckhUTUwgPSB2YWx1ZTsKICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgIH0KICAgICAgICAgICAgY3JlYXRlU2VhcmNoT2JqKCk7CiAgICAgICAgICAgIHNlYXJjaEluTWFwcGluZygpOwogICAgICAgIH0KICAgICAgICBpZiAoaW5wdXRbIngtYWN0aXZlIl0gPT0gZmFsc2UpIHsKICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpLmNsYXNzTmFtZSA9ICJub3RBY3RpdmVFUEciOwogICAgICAgIH0KICAgICAgICBlbHNlIHsKICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpLmNsYXNzTmFtZSA9ICJhY3RpdmVFUEciOwogICAgICAgIH0KICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkuY2hpbGROb2Rlc1syXS5maXJzdENoaWxkLnNldEF0dHJpYnV0ZSgic3JjIiwgaW5wdXRbInR2Zy1sb2dvIl0pOwogICAgfSk7CiAgICBzaG93RWxlbWVudCgicG9wdXAiLCBmYWxzZSk7CiAgICByZXR1cm47Cn0KZnVuY3Rpb24gc2hvd1ByZXZpZXcoZWxlbWVudCkgewogICAgbGV0IGRpdiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJteVN0cmVhbXNCb3giKTsKICAgIHN3aXRjaCAoZWxlbWVudCkgewogICAgICAgIGNhc2UgZmFsc2U6CiAgICAgICAgICAgIGRpdi5jbGFzc05hbWUgPSAibm90VmlzaWJsZSI7CiAgICAgICAgICAgIHJldHVybjsKICAgIH0KICAgIGxldCBzdHJlYW1zID0gWyJhY3RpdmVTdHJlYW1zIiwgImluYWN0aXZlU3RyZWFtcyJdOwogICAgc3RyZWFtcy5mb3JFYWNoKHByZXZpZXcgPT4gewogICAgICAgIGxldCB0YWJsZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHByZXZpZXcpOwogICAgICAgIHRhYmxlLmlubmVySFRNTCA9ICIiOwogICAgICAgIGxldCBvYmogPSBTRVJWRVJbImRhdGEiXVsiU3RyZWFtUHJldmlld1VJIl1bcHJldmlld107CiAgICAgICAgb2JqLmZvckVhY2goY2hhbm5lbCA9PiB7CiAgICAgICAgICAgIGxldCB0ciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlRSIik7CiAgICAgICAgICAgIGxldCB0ZEtleSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7CiAgICAgICAgICAgIGxldCB0ZFZhbCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7CiAgICAgICAgICAgIHRkS2V5LmNsYXNzTmFtZSA9ICJ0ZEtleSI7CiAgICAgICAgICAgIHRkVmFsLmNsYXNzTmFtZSA9ICJ0ZFZhbCI7CiAgICAgICAgICAgIHN3aXRjaCAocHJldmlldykgewogICAgICAgICAgICAgICAgY2FzZSAiYWN0aXZlU3RyZWFtcyI6CiAgICAgICAgICAgICAgICAgICAgdGRLZXkuaW5uZXJUZXh0ID0gIkNoYW5uZWw6ICgrKSI7CiAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICBjYXNlICJpbmFjdGl2ZVN0cmVhbXMiOgogICAgICAgICAgICAgICAgICAgIHRkS2V5LmlubmVyVGV4dCA9ICJDaGFubmVsOiAoLSkiOwogICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICB9CiAgICAgICAgICAgIHRkVmFsLmlubmVyVGV4dCA9IGNoYW5uZWw7CiAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKHRkS2V5KTsKICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQodGRWYWwpOwogICAgICAgICAgICB0YWJsZS5hcHBlbmRDaGlsZCh0cik7CiAgICAgICAgfSk7CiAgICB9KTsKICAgIHNob3dFbGVtZW50KCJsb2FkaW5nIiwgZmFsc2UpOwogICAgZGl2LmNsYXNzTmFtZSA9ICJ2aXNpYmxlIjsKICAgIHJldHVybjsKfQo=" webUI["html/js/network_ts.js"] = "Y2xhc3MgU2VydmVyIHsKICAgIGNvbnN0cnVjdG9yKGNtZCkgewogICAgICAgIHRoaXMuY21kID0gY21kOwogICAgfQogICAgcmVxdWVzdChkYXRhKSB7CiAgICAgICAgaWYgKFNFUlZFUl9DT05ORUNUSU9OID09IHRydWUpIHsKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KICAgICAgICBTRVJWRVJfQ09OTkVDVElPTiA9IHRydWU7CiAgICAgICAgaWYgKHRoaXMuY21kICE9ICJ1cGRhdGVMb2ciKSB7CiAgICAgICAgICAgIHNob3dFbGVtZW50KCJsb2FkaW5nIiwgdHJ1ZSk7CiAgICAgICAgICAgIFVORE8gPSBuZXcgT2JqZWN0KCk7CiAgICAgICAgfQogICAgICAgIHN3aXRjaCAod2luZG93LmxvY2F0aW9uLnByb3RvY29sKSB7CiAgICAgICAgICAgIGNhc2UgImh0dHA6IjoKICAgICAgICAgICAgICAgIHRoaXMucHJvdG9jb2wgPSAid3M6Ly8iOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgImh0dHBzOiI6CiAgICAgICAgICAgICAgICB0aGlzLnByb3RvY29sID0gIndzczovLyI7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICB9CiAgICAgICAgdmFyIHVybCA9IHRoaXMucHJvdG9jb2wgKyB3aW5kb3cubG9jYXRpb24uaG9zdG5hbWUgKyAiOiIgKyB3aW5kb3cubG9jYXRpb24ucG9ydCArICIvZGF0YS8iICsgIj9Ub2tlbj0iICsgZ2V0Q29va2llKCJUb2tlbiIpOwogICAgICAgIGRhdGFbImNtZCJdID0gdGhpcy5jbWQ7CiAgICAgICAgdmFyIHdzID0gbmV3IFdlYlNvY2tldCh1cmwpOwogICAgICAgIHdzLm9ub3BlbiA9IGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgV1NfQVZBSUxBQkxFID0gdHJ1ZTsKICAgICAgICAgICAgdGhpcy5zZW5kKEpTT04uc3RyaW5naWZ5KGRhdGEpKTsKICAgICAgICB9OwogICAgICAgIHdzLm9uZXJyb3IgPSBmdW5jdGlvbiAod3NFcnJFdnQpIHsKICAgICAgICAgICAgY29uc29sZS5sb2coIk5vIHdlYnNvY2tldCBjb25uZWN0aW9uIHRvIHhUZVZlIGNvdWxkIGJlIGVzdGFibGlzaGVkLiBDaGVjayB5b3VyIG5ldHdvcmsgY29uZmlndXJhdGlvbi4iKTsKICAgICAgICAgICAgU0VSVkVSX0NPTk5FQ1RJT04gPSBmYWxzZTsKICAgICAgICAgICAgaWYgKFdTX0FWQUlMQUJMRSA9PSBmYWxzZSkgewogICAgICAgICAgICAgICAgYWxlcnQoIk5vIHdlYnNvY2tldCBjb25uZWN0aW9uIHRvIHhUZVZlIGNvdWxkIGJlIGVzdGFibGlzaGVkLiBDaGVjayB5b3VyIG5ldHdvcmsgY29uZmlndXJhdGlvbi4iKTsKICAgICAgICAgICAgfQogICAgICAgIH07CiAgICAgICAgd3Mub25tZXNzYWdlID0gZnVuY3Rpb24gKHdzTWVzc2FnZUV2dCkgewogICAgICAgICAgICBTRVJWRVJfQ09OTkVDVElPTiA9IGZhbHNlOwogICAgICAgICAgICBzaG93RWxlbWVudCgibG9hZGluZyIsIGZhbHNlKTsKICAgICAgICAgICAgY29uc3QgcmVzcG9uc2UgPSBKU09OLnBhcnNlKHdzTWVzc2FnZUV2dC5kYXRhKTsKICAgICAgICAgICAgaWYgKHJlc3BvbnNlLmhhc093blByb3BlcnR5KCJ0b2tlbiIpKSB7CiAgICAgICAgICAgICAgICBkb2N1bWVudC5jb29raWUgPSAiVG9rZW49IiArIHJlc3BvbnNlWyJ0b2tlbiJdOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGlmIChyZXNwb25zZVsic3RhdHVzIl0gPT0gZmFsc2UpIHsKICAgICAgICAgICAgICAgIGFsZXJ0KHJlc3BvbnNlWyJlcnIiXSk7CiAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgIH0KICAgICAgICAgICAgaWYgKHJlc3BvbnNlLmhhc093blByb3BlcnR5KCdvcGVuTGluaycpKSB7CiAgICAgICAgICAgICAgICB3aW5kb3cubG9jYXRpb24gPSByZXNwb25zZVsnb3BlbkxpbmsnXTsKICAgICAgICAgICAgfQogICAgICAgICAgICBpZiAocmVzcG9uc2UuaGFzT3duUHJvcGVydHkoInJlbG9hZCIpKSB7CiAgICAgICAgICAgICAgICB3aW5kb3cubG9jYXRpb24ucmVsb2FkKCk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgaWYgKHJlc3BvbnNlLmhhc093blByb3BlcnR5KCJhbGVydCIpKSB7CiAgICAgICAgICAgICAgICBhbGVydChyZXNwb25zZVsiYWxlcnQiXSk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgaWYgKHJlc3BvbnNlLmhhc093blByb3BlcnR5KCJsb2dvVVJMIikpIHsKICAgICAgICAgICAgICAgIHZhciBkaXYgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY2hhbm5lbC1pY29uIik7CiAgICAgICAgICAgICAgICBkaXYudmFsdWUgPSByZXNwb25zZVsibG9nb1VSTCJdOwogICAgICAgICAgICAgICAgZGl2LmNsYXNzTmFtZSA9ICJjaGFuZ2VkIjsKICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgfQogICAgICAgICAgICBzd2l0Y2ggKGRhdGFbImNtZCJdKSB7CiAgICAgICAgICAgICAgICBjYXNlICJ1cGRhdGVMb2ciOgogICAgICAgICAgICAgICAgICAgIFNFUlZFUlsibG9nIl0gPSByZXNwb25zZVsibG9nIl07CiAgICAgICAgICAgICAgICAgICAgaWYgKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb250ZW50X2xvZyIpKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIHNob3dMb2dzKGZhbHNlKTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgICAgICAgICBTRVJWRVIgPSBuZXcgT2JqZWN0KCk7CiAgICAgICAgICAgICAgICAgICAgU0VSVkVSID0gcmVzcG9uc2U7CiAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgaWYgKHJlc3BvbnNlLmhhc093blByb3BlcnR5KCJvcGVuTWVudSIpKSB7CiAgICAgICAgICAgICAgICB2YXIgbWVudSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHJlc3BvbnNlWyJvcGVuTWVudSJdKTsKICAgICAgICAgICAgICAgIG1lbnUuY2xpY2soKTsKICAgICAgICAgICAgICAgIHNob3dFbGVtZW50KCJwb3B1cCIsIGZhbHNlKTsKICAgICAgICAgICAgfQogICAgICAgICAgICBpZiAocmVzcG9uc2UuaGFzT3duUHJvcGVydHkoInJlbG9hZCIpKSB7CiAgICAgICAgICAgICAgICBsb2NhdGlvbi5yZWxvYWQoKTsKICAgICAgICAgICAgfQogICAgICAgICAgICBpZiAocmVzcG9uc2UuaGFzT3duUHJvcGVydHkoIndpemFyZCIpKSB7CiAgICAgICAgICAgICAgICBjcmVhdGVMYXlvdXQoKTsKICAgICAgICAgICAgICAgIGNvbmZpZ3VyYXRpb25XaXphcmRbcmVzcG9uc2VbIndpemFyZCJdXS5jcmVhdGVXaXphcmQoKTsKICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgfQogICAgICAgICAgICBjcmVhdGVMYXlvdXQoKTsKICAgICAgICB9OwogICAgfQp9CmZ1bmN0aW9uIGdldENvb2tpZShuYW1lKSB7CiAgICB2YXIgdmFsdWUgPSAiOyAiICsgZG9jdW1lbnQuY29va2llOwogICAgdmFyIHBhcnRzID0gdmFsdWUuc3BsaXQoIjsgIiArIG5hbWUgKyAiPSIpOwogICAgaWYgKHBhcnRzLmxlbmd0aCA9PSAyKSB7CiAgICAgICAgcmV0dXJuIHBhcnRzLnBvcCgpLnNwbGl0KCI7Iikuc2hpZnQoKTsKICAgIH0KfQo=" webUI["html/js/settings_ts.js"] = "Y2xhc3MgU2V0dGluZ3NDYXRlZ29yeSB7CiAgICBjb25zdHJ1Y3RvcigpIHsKICAgICAgICB0aGlzLkRvY3VtZW50SUQgPSAiY29udGVudF9zZXR0aW5ncyI7CiAgICB9CiAgICBjcmVhdGVDYXRlZ29yeUhlYWRsaW5lKHZhbHVlKSB7CiAgICAgICAgdmFyIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJINCIpOwogICAgICAgIGVsZW1lbnQuaW5uZXJIVE1MID0gdmFsdWU7CiAgICAgICAgcmV0dXJuIGVsZW1lbnQ7CiAgICB9CiAgICBjcmVhdGVIUigpIHsKICAgICAgICB2YXIgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIkhSIik7CiAgICAgICAgcmV0dXJuIGVsZW1lbnQ7CiAgICB9CiAgICBjcmVhdGVTZXR0aW5ncyhzZXR0aW5nc0tleSkgewogICAgICAgIHZhciBzZXR0aW5nID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVFIiKTsKICAgICAgICB2YXIgY29udGVudCA9IG5ldyBQb3B1cENvbnRlbnQoKTsKICAgICAgICB2YXIgZGF0YSA9IFNFUlZFUlsic2V0dGluZ3MiXVtzZXR0aW5nc0tleV07CiAgICAgICAgc3dpdGNoIChzZXR0aW5nc0tleSkgewogICAgICAgICAgICAvLyBUZXh0IGlucHV0cwogICAgICAgICAgICBjYXNlICJ1cGRhdGUiOgogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7CiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLnVwZGF0ZS50aXRsZX19IiArICI6IjsKICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsKICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCAidXBkYXRlIiwgZGF0YS50b1N0cmluZygpKTsKICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3suc2V0dGluZ3MudXBkYXRlLnBsYWNlaG9sZGVyfX0iKTsKICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsKICAgICAgICAgICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQoaW5wdXQpOwogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOwogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJiYWNrdXAucGF0aCI6CiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsKICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MuYmFja3VwUGF0aC50aXRsZX19IiArICI6IjsKICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsKICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCAiYmFja3VwLnBhdGgiLCBkYXRhKTsKICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3suc2V0dGluZ3MuYmFja3VwUGF0aC5wbGFjZWhvbGRlcn19Iik7CiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7CiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsKICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsKICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAidGVtcC5wYXRoIjoKICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOwogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy50ZW1wUGF0aC50aXRsZX19IiArICI6IjsKICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsKICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCAidGVtcC5wYXRoIiwgZGF0YSk7CiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnNldHRpbmdzLnRtcFBhdGgucGxhY2Vob2xkZXJ9fSIpOwogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOwogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7CiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7CiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgInVzZXIuYWdlbnQiOgogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7CiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLnVzZXJBZ2VudC50aXRsZX19IiArICI6IjsKICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsKICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCAidXNlci5hZ2VudCIsIGRhdGEpOwogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5zZXR0aW5ncy51c2VyQWdlbnQucGxhY2Vob2xkZXJ9fSIpOwogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOwogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7CiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7CiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgImJ1ZmZlci50aW1lb3V0IjoKICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOwogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5idWZmZXJUaW1lb3V0LnRpdGxlfX0iICsgIjoiOwogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOwogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsICJidWZmZXIudGltZW91dCIsIGRhdGEpOwogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5zZXR0aW5ncy5idWZmZXJUaW1lb3V0LnBsYWNlaG9sZGVyfX0iKTsKICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsKICAgICAgICAgICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQoaW5wdXQpOwogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOwogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJmZm1wZWcucGF0aCI6CiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsKICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MuZmZtcGVnUGF0aC50aXRsZX19IiArICI6IjsKICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsKICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCAiZmZtcGVnLnBhdGgiLCBkYXRhKTsKICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3suc2V0dGluZ3MuZmZtcGVnUGF0aC5wbGFjZWhvbGRlcn19Iik7CiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7CiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsKICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsKICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAiZmZtcGVnLm9wdGlvbnMiOgogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7CiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmZmbXBlZ09wdGlvbnMudGl0bGV9fSIgKyAiOiI7CiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7CiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgImZmbXBlZy5vcHRpb25zIiwgZGF0YSk7CiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnNldHRpbmdzLmZmbXBlZ09wdGlvbnMucGxhY2Vob2xkZXJ9fSIpOwogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOwogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7CiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7CiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgInZsYy5wYXRoIjoKICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOwogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy52bGNQYXRoLnRpdGxlfX0iICsgIjoiOwogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOwogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsICJ2bGMucGF0aCIsIGRhdGEpOwogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5zZXR0aW5ncy52bGNQYXRoLnBsYWNlaG9sZGVyfX0iKTsKICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsKICAgICAgICAgICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQoaW5wdXQpOwogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOwogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJ2bGMub3B0aW9ucyI6CiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsKICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MudmxjT3B0aW9ucy50aXRsZX19IiArICI6IjsKICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsKICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCAidmxjLm9wdGlvbnMiLCBkYXRhKTsKICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3suc2V0dGluZ3MudmxjT3B0aW9ucy5wbGFjZWhvbGRlcn19Iik7CiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7CiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsKICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsKICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgLy8gQ2hlY2tib3hlcwogICAgICAgICAgICBjYXNlICJ0bHNNb2RlIjoKICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOwogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy50bHNNb2RlLnRpdGxlfX0iICsgIjoiOwogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOwogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChzZXR0aW5nc0tleSk7CiAgICAgICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YTsKICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsKICAgICAgICAgICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQoaW5wdXQpOwogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOwogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJkaXNhbGxvd1VSTER1cGxpY2F0ZXMiOgogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7CiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmRpc2FsbG93VVJMRHVwbGljYXRlcy50aXRsZX19IiArICI6IjsKICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsKICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goc2V0dGluZ3NLZXkpOwogICAgICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGE7CiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7CiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsKICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsKICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAiYXV0aGVudGljYXRpb24ud2ViIjoKICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOwogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5hdXRoZW50aWNhdGlvbldFQi50aXRsZX19IiArICI6IjsKICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsKICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goc2V0dGluZ3NLZXkpOwogICAgICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGE7CiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7CiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsKICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsKICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAiYXV0aGVudGljYXRpb24ucG1zIjoKICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOwogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5hdXRoZW50aWNhdGlvblBNUy50aXRsZX19IiArICI6IjsKICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsKICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goc2V0dGluZ3NLZXkpOwogICAgICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGE7CiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7CiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsKICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsKICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAiYXV0aGVudGljYXRpb24ubTN1IjoKICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOwogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5hdXRoZW50aWNhdGlvbk0zVS50aXRsZX19IiArICI6IjsKICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsKICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goc2V0dGluZ3NLZXkpOwogICAgICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGE7CiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7CiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsKICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsKICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAiYXV0aGVudGljYXRpb24ueG1sIjoKICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOwogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5hdXRoZW50aWNhdGlvblhNTC50aXRsZX19IiArICI6IjsKICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsKICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goc2V0dGluZ3NLZXkpOwogICAgICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGE7CiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7CiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsKICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsKICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAiYXV0aGVudGljYXRpb24uYXBpIjoKICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOwogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5hdXRoZW50aWNhdGlvbkFQSS50aXRsZX19IiArICI6IjsKICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsKICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goc2V0dGluZ3NLZXkpOwogICAgICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGE7CiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7CiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsKICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsKICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAiZmlsZXMudXBkYXRlIjoKICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOwogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5maWxlc1VwZGF0ZS50aXRsZX19IiArICI6IjsKICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsKICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goc2V0dGluZ3NLZXkpOwogICAgICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGE7CiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7CiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsKICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsKICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAiY2FjaGUuaW1hZ2VzIjoKICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOwogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5jYWNoZUltYWdlcy50aXRsZX19IiArICI6IjsKICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsKICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goc2V0dGluZ3NLZXkpOwogICAgICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGE7CiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7CiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsKICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsKICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAieGVwZy5yZXBsYWNlLm1pc3NpbmcuaW1hZ2VzIjoKICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOwogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5yZXBsYWNlRW1wdHlJbWFnZXMudGl0bGV9fSIgKyAiOiI7CiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7CiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KHNldHRpbmdzS2V5KTsKICAgICAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhOwogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOwogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7CiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7CiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgInN0b3JlQnVmZmVySW5SQU0iOgogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7CiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLnN0b3JlQnVmZmVySW5SQU0udGl0bGV9fSIgKyAiOiI7CiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7CiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KHNldHRpbmdzS2V5KTsKICAgICAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhOwogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOwogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7CiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7CiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgInh0ZXZlQXV0b1VwZGF0ZSI6CiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsKICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MueHRldmVBdXRvVXBkYXRlLnRpdGxlfX0iICsgIjoiOwogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOwogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChzZXR0aW5nc0tleSk7CiAgICAgICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YTsKICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsKICAgICAgICAgICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQoaW5wdXQpOwogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOwogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJjbGVhclhNTFRWQ2FjaGUiOgogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7CiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmNsZWFyWE1MVFZDYWNoZS50aXRsZX19IiArICI6IjsKICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsKICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goc2V0dGluZ3NLZXkpOwogICAgICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGE7CiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7CiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsKICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsKICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAiYXBpIjoKICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOwogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5hcGkudGl0bGV9fSIgKyAiOiI7CiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7CiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KHNldHRpbmdzS2V5KTsKICAgICAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhOwogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOwogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7CiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7CiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgImVuYWJsZU1hcHBlZENoYW5uZWxzIjoKICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOwogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5lbmFibGVNYXBwZWRDaGFubmVscy50aXRsZX19IiArICI6IjsKICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsKICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goc2V0dGluZ3NLZXkpOwogICAgICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGE7CiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7CiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsKICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsKICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgLy8gU2VsZWN0CiAgICAgICAgICAgIGNhc2UgImhvc3RJUCI6CiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsKICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MuaG9zdElQLnRpdGxlfX0iICsgIjoiOwogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOwogICAgICAgICAgICAgICAgdmFyIHRleHQgPSBTRVJWRVJbImlwQWRkcmVzc2VzVjRIb3N0Il07CiAgICAgICAgICAgICAgICB2YXIgdmFsdWVzID0gU0VSVkVSWyJpcEFkZHJlc3Nlc1Y0SG9zdCJdOwogICAgICAgICAgICAgICAgdmFyIHNlbGVjdCA9IGNvbnRlbnQuY3JlYXRlU2VsZWN0KHRleHQsIHZhbHVlcywgZGF0YSwgc2V0dGluZ3NLZXkpOwogICAgICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsKICAgICAgICAgICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQoc2VsZWN0KTsKICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsKICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAiaG9zdE5hbWUiOgogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7CiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmhvc3ROYW1lLnRpdGxlfX0iICsgIjoiOwogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOwogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsICJob3N0TmFtZSIsIGRhdGEpOwogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5zZXR0aW5ncy5ob3N0TmFtZS5wbGFjZWhvbGRlcn19Iik7CiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7CiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsKICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsKICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAidHVuZXIiOgogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7CiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLnR1bmVyLnRpdGxlfX0iICsgIjoiOwogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOwogICAgICAgICAgICAgICAgdmFyIHRleHQgPSBuZXcgQXJyYXkoKTsKICAgICAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBuZXcgQXJyYXkoKTsKICAgICAgICAgICAgICAgIGZvciAodmFyIGkgPSAxOyBpIDw9IDEwMDsgaSsrKSB7CiAgICAgICAgICAgICAgICAgICAgdGV4dC5wdXNoKGkpOwogICAgICAgICAgICAgICAgICAgIHZhbHVlcy5wdXNoKGkpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgdmFyIHNlbGVjdCA9IGNvbnRlbnQuY3JlYXRlU2VsZWN0KHRleHQsIHZhbHVlcywgZGF0YSwgc2V0dGluZ3NLZXkpOwogICAgICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsKICAgICAgICAgICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQoc2VsZWN0KTsKICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsKICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAiZXBnU291cmNlIjoKICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOwogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5lcGdTb3VyY2UudGl0bGV9fSIgKyAiOiI7CiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7CiAgICAgICAgICAgICAgICB2YXIgdGV4dCA9IFsiUE1TIiwgIlhFUEciXTsKICAgICAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBbIlBNUyIsICJYRVBHIl07CiAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCBkYXRhLCBzZXR0aW5nc0tleSk7CiAgICAgICAgICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOwogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChzZWxlY3QpOwogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOwogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJkZWZhdWx0TWlzc2luZ0VQRyI6CiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsKICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MuZGVmYXVsdE1pc3NpbmdFUEcudGl0bGV9fSIgKyAiOiI7CiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7CiAgICAgICAgICAgICAgICB2YXIgdGV4dCA9IFsKICAgICAgICAgICAgICAgICAgICAiLSIsICIzMCBNaW51dGVzICgzMF9NaW51dGVzKSIsICI2MCBNaW51dGVzICg2MF9NaW51dGVzKSIsICI5MCBNaW51dGVzICg5MF9NaW51dGVzKSIsCiAgICAgICAgICAgICAgICAgICAgIjEyMCBNaW51dGVzICgxMjBfTWludXRlcykiLCAiMTgwIE1pbnV0ZXMgKDE4MF9NaW51dGVzKSIsICIyNDAgTWludXRlcyAoMjQwX01pbnV0ZXMpIiwgIjM2MCBNaW51dGVzICgzNjBfTWludXRlcykiCiAgICAgICAgICAgICAgICBdOwogICAgICAgICAgICAgICAgdmFyIHZhbHVlcyA9IFsKICAgICAgICAgICAgICAgICAgICAiLSIsICIzMF9NaW51dGVzIiwgIjYwX01pbnV0ZXMiLCAiOTBfTWludXRlcyIsICIxMjBfTWludXRlcyIsICIxODBfTWludXRlcyIsICIyNDBfTWludXRlcyIsICIzNjBfTWludXRlcyIKICAgICAgICAgICAgICAgIF07CiAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCBkYXRhLCBzZXR0aW5nc0tleSk7CiAgICAgICAgICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOwogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChzZWxlY3QpOwogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOwogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJiYWNrdXAua2VlcCI6CiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsKICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MuYmFja3VwS2VlcC50aXRsZX19IiArICI6IjsKICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsKICAgICAgICAgICAgICAgIHZhciB0ZXh0ID0gWyI1IiwgIjEwIiwgIjIwIiwgIjMwIiwgIjQwIiwgIjUwIl07CiAgICAgICAgICAgICAgICB2YXIgdmFsdWVzID0gWyI1IiwgIjEwIiwgIjIwIiwgIjMwIiwgIjQwIiwgIjUwIl07CiAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCBkYXRhLCBzZXR0aW5nc0tleSk7CiAgICAgICAgICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOwogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChzZWxlY3QpOwogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOwogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJidWZmZXIuc2l6ZS5rYiI6CiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsKICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MuYnVmZmVyU2l6ZS50aXRsZX19IiArICI6IjsKICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsKICAgICAgICAgICAgICAgIHZhciB0ZXh0ID0gWyIwLjUgTUIiLCAiMSBNQiIsICIyIE1CIiwgIjMgTUIiLCAiNCBNQiIsICI1IE1CIiwgIjYgTUIiLCAiNyBNQiIsICI4IE1CIl07CiAgICAgICAgICAgICAgICB2YXIgdmFsdWVzID0gWyI1MTIiLCAiMTAyNCIsICIyMDQ4IiwgIjMwNzIiLCAiNDA5NiIsICI1MTIwIiwgIjYxNDQiLCAiNzE2OCIsICI4MTkyIl07CiAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCBkYXRhLCBzZXR0aW5nc0tleSk7CiAgICAgICAgICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOwogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChzZWxlY3QpOwogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOwogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJidWZmZXIiOgogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7CiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLnN0cmVhbUJ1ZmZlcmluZy50aXRsZX19IiArICI6IjsKICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsKICAgICAgICAgICAgICAgIHZhciB0ZXh0ID0gWyJ7ey5zZXR0aW5ncy5zdHJlYW1CdWZmZXJpbmcuaW5mb19mYWxzZX19IiwgInhUZVZlOiAoe3suc2V0dGluZ3Muc3RyZWFtQnVmZmVyaW5nLmluZm9feHRldmV9fSkiLCAiRkZtcGVnOiAoe3suc2V0dGluZ3Muc3RyZWFtQnVmZmVyaW5nLmluZm9fZmZtcGVnfX0pIiwgIlZMQzogKHt7LnNldHRpbmdzLnN0cmVhbUJ1ZmZlcmluZy5pbmZvX3ZsY319KSJdOwogICAgICAgICAgICAgICAgdmFyIHZhbHVlcyA9IFsiLSIsICJ4dGV2ZSIsICJmZm1wZWciLCAidmxjIl07CiAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCBkYXRhLCBzZXR0aW5nc0tleSk7CiAgICAgICAgICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOwogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChzZWxlY3QpOwogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOwogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJ1ZHB4eSI6CiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsKICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MudWRweHkudGl0bGV9fSIgKyAiOiI7CiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7CiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgInVkcHh5IiwgZGF0YSk7CiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnNldHRpbmdzLnVkcHh5LnBsYWNlaG9sZGVyfX0iKTsKICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsKICAgICAgICAgICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQoaW5wdXQpOwogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOwogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgIH0KICAgICAgICByZXR1cm4gc2V0dGluZzsKICAgIH0KICAgIGNyZWF0ZURlc2NyaXB0aW9uKHNldHRpbmdzS2V5KSB7CiAgICAgICAgdmFyIGRlc2NyaXB0aW9uID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVFIiKTsKICAgICAgICB2YXIgdGV4dDsKICAgICAgICBzd2l0Y2ggKHNldHRpbmdzS2V5KSB7CiAgICAgICAgICAgIGNhc2UgInRsc01vZGUiOgogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy50bHNNb2RlLmRlc2NyaXB0aW9ufX0iOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgImRpc2FsbG93VVJMRHVwbGljYXRlcyI6CiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLmRpc2FsbG93VVJMRHVwbGljYXRlcy5kZXNjcmlwdGlvbn19IjsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJhdXRoZW50aWNhdGlvbi53ZWIiOgogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5hdXRoZW50aWNhdGlvbldFQi5kZXNjcmlwdGlvbn19IjsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJhdXRoZW50aWNhdGlvbi5tM3UiOgogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5hdXRoZW50aWNhdGlvbk0zVS5kZXNjcmlwdGlvbn19IjsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJhdXRoZW50aWNhdGlvbi5wbXMiOgogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5hdXRoZW50aWNhdGlvblBNUy5kZXNjcmlwdGlvbn19IjsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJhdXRoZW50aWNhdGlvbi54bWwiOgogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5hdXRoZW50aWNhdGlvblhNTC5kZXNjcmlwdGlvbn19IjsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJhdXRoZW50aWNhdGlvbi5hcGkiOgogICAgICAgICAgICAgICAgaWYgKFNFUlZFUlsic2V0dGluZ3MiXVsiYXV0aGVudGljYXRpb24ud2ViIl0gPT0gdHJ1ZSkgewogICAgICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MuYXV0aGVudGljYXRpb25BUEkuZGVzY3JpcHRpb259fSI7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAieHRldmVBdXRvVXBkYXRlIjoKICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MueHRldmVBdXRvVXBkYXRlLmRlc2NyaXB0aW9ufX0iOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgImJhY2t1cC5rZWVwIjoKICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MuYmFja3VwS2VlcC5kZXNjcmlwdGlvbn19IjsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJiYWNrdXAucGF0aCI6CiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLmJhY2t1cFBhdGguZGVzY3JpcHRpb259fSI7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAidGVtcC5wYXRoIjoKICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MudGVtcFBhdGguZGVzY3JpcHRpb259fSI7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAiYnVmZmVyIjoKICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3Muc3RyZWFtQnVmZmVyaW5nLmRlc2NyaXB0aW9ufX0iOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgImJ1ZmZlci5zaXplLmtiIjoKICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MuYnVmZmVyU2l6ZS5kZXNjcmlwdGlvbn19IjsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJzdG9yZUJ1ZmZlckluUkFNIjoKICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3Muc3RvcmVCdWZmZXJJblJBTS5kZXNjcmlwdGlvbn19IjsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJidWZmZXIudGltZW91dCI6CiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLmJ1ZmZlclRpbWVvdXQuZGVzY3JpcHRpb259fSI7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAidXNlci5hZ2VudCI6CiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLnVzZXJBZ2VudC5kZXNjcmlwdGlvbn19IjsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJmZm1wZWcucGF0aCI6CiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLmZmbXBlZ1BhdGguZGVzY3JpcHRpb259fSI7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAiZmZtcGVnLm9wdGlvbnMiOgogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5mZm1wZWdPcHRpb25zLmRlc2NyaXB0aW9ufX0iOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgInZsYy5wYXRoIjoKICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MudmxjUGF0aC5kZXNjcmlwdGlvbn19IjsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJ2bGMub3B0aW9ucyI6CiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLnZsY09wdGlvbnMuZGVzY3JpcHRpb259fSI7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAiZXBnU291cmNlIjoKICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MuZXBnU291cmNlLmRlc2NyaXB0aW9ufX0iOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgImhvc3RJUCI6CiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLmhvc3RJUC5kZXNjcmlwdGlvbn19IjsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJob3N0TmFtZSI6CiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLmhvc3ROYW1lLmRlc2NyaXB0aW9ufX0iOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgInR1bmVyIjoKICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MudHVuZXIuZGVzY3JpcHRpb259fSI7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAidXBkYXRlIjoKICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MudXBkYXRlLmRlc2NyaXB0aW9ufX0iOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgImNsZWFyWE1MVFZDYWNoZSI6CiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLmNsZWFyWE1MVFZDYWNoZS5kZXNjcmlwdGlvbn19IjsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJhcGkiOgogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5hcGkuZGVzY3JpcHRpb259fSI7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAiZGVmYXVsdE1pc3NpbmdFUEciOgogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5kZWZhdWx0TWlzc2luZ0VQRy5kZXNjcmlwdGlvbn19IjsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJlbmFibGVNYXBwZWRDaGFubmVscyI6CiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLmVuYWJsZU1hcHBlZENoYW5uZWxzLmRlc2NyaXB0aW9ufX0iOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgImZpbGVzLnVwZGF0ZSI6CiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLmZpbGVzVXBkYXRlLmRlc2NyaXB0aW9ufX0iOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgImNhY2hlLmltYWdlcyI6CiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLmNhY2hlSW1hZ2VzLmRlc2NyaXB0aW9ufX0iOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgInhlcGcucmVwbGFjZS5taXNzaW5nLmltYWdlcyI6CiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLnJlcGxhY2VFbXB0eUltYWdlcy5kZXNjcmlwdGlvbn19IjsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJ1ZHB4eSI6CiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLnVkcHh5LmRlc2NyaXB0aW9ufX0iOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICAgICB0ZXh0ID0gIiI7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICB9CiAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7CiAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICIiOwogICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsKICAgICAgICB2YXIgcHJlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiUFJFIik7CiAgICAgICAgcHJlLmlubmVySFRNTCA9IHRleHQ7CiAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChwcmUpOwogICAgICAgIGRlc2NyaXB0aW9uLmFwcGVuZENoaWxkKHRkTGVmdCk7CiAgICAgICAgZGVzY3JpcHRpb24uYXBwZW5kQ2hpbGQodGRSaWdodCk7CiAgICAgICAgcmV0dXJuIGRlc2NyaXB0aW9uOwogICAgfQp9CmNsYXNzIFNldHRpbmdzQ2F0ZWdvcnlJdGVtIGV4dGVuZHMgU2V0dGluZ3NDYXRlZ29yeSB7CiAgICBjb25zdHJ1Y3RvcihoZWFkbGluZSwgc2V0dGluZ3NLZXlzKSB7CiAgICAgICAgc3VwZXIoKTsKICAgICAgICB0aGlzLmhlYWRsaW5lID0gaGVhZGxpbmU7CiAgICAgICAgdGhpcy5zZXR0aW5nc0tleXMgPSBzZXR0aW5nc0tleXM7CiAgICB9CiAgICBjcmVhdGVDYXRlZ29yeSgpIHsKICAgICAgICB2YXIgaGVhZGxpbmUgPSB0aGlzLmNyZWF0ZUNhdGVnb3J5SGVhZGxpbmUodGhpcy5oZWFkbGluZSk7CiAgICAgICAgdmFyIHNldHRpbmdzS2V5cyA9IHRoaXMuc2V0dGluZ3NLZXlzOwogICAgICAgIHZhciBkb2MgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCh0aGlzLkRvY3VtZW50SUQpOwogICAgICAgIGRvYy5hcHBlbmRDaGlsZChoZWFkbGluZSk7CiAgICAgICAgLy8gQ3JlYXRlIGEgdGFibGUgZm9yIHRoZSBjYXRlZ29yeQogICAgICAgIHZhciB0YWJsZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlRBQkxFIik7CiAgICAgICAgdmFyIGtleXMgPSBzZXR0aW5nc0tleXMuc3BsaXQoIiwiKTsKICAgICAgICBrZXlzLmZvckVhY2goc2V0dGluZ3NLZXkgPT4gewogICAgICAgICAgICBzd2l0Y2ggKHNldHRpbmdzS2V5KSB7CiAgICAgICAgICAgICAgICBjYXNlICJhdXRoZW50aWNhdGlvbi5wbXMiOgogICAgICAgICAgICAgICAgY2FzZSAiYXV0aGVudGljYXRpb24ubTN1IjoKICAgICAgICAgICAgICAgIGNhc2UgImF1dGhlbnRpY2F0aW9uLnhtbCI6CiAgICAgICAgICAgICAgICBjYXNlICJhdXRoZW50aWNhdGlvbi5hcGkiOgogICAgICAgICAgICAgICAgICAgIGlmIChTRVJWRVJbInNldHRpbmdzIl1bImF1dGhlbnRpY2F0aW9uLndlYiJdID09IGZhbHNlKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICAgICAgICAgdmFyIGl0ZW0gPSB0aGlzLmNyZWF0ZVNldHRpbmdzKHNldHRpbmdzS2V5KTsKICAgICAgICAgICAgICAgICAgICB2YXIgZGVzY3JpcHRpb24gPSB0aGlzLmNyZWF0ZURlc2NyaXB0aW9uKHNldHRpbmdzS2V5KTsKICAgICAgICAgICAgICAgICAgICB0YWJsZS5hcHBlbmRDaGlsZChpdGVtKTsKICAgICAgICAgICAgICAgICAgICB0YWJsZS5hcHBlbmRDaGlsZChkZXNjcmlwdGlvbik7CiAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIH0KICAgICAgICB9KTsKICAgICAgICBkb2MuYXBwZW5kQ2hpbGQodGFibGUpOwogICAgICAgIGRvYy5hcHBlbmRDaGlsZCh0aGlzLmNyZWF0ZUhSKCkpOwogICAgfQp9CmZ1bmN0aW9uIHNob3dTZXR0aW5ncygpIHsKICAgIGZvciAobGV0IGkgPSAwOyBpIDwgc2V0dGluZ3NDYXRlZ29yeS5sZW5ndGg7IGkrKykgewogICAgICAgIHNldHRpbmdzQ2F0ZWdvcnlbaV0uY3JlYXRlQ2F0ZWdvcnkoKTsKICAgIH0KfQpmdW5jdGlvbiBzYXZlU2V0dGluZ3MoKSB7CiAgICB2YXIgY21kID0gInNhdmVTZXR0aW5ncyI7CiAgICB2YXIgZGl2ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnRlbnRfc2V0dGluZ3MiKTsKICAgIHZhciBzZXR0aW5ncyA9IGRpdi5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCJjaGFuZ2VkIik7CiAgICB2YXIgbmV3U2V0dGluZ3MgPSBuZXcgT2JqZWN0KCk7CiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHNldHRpbmdzLmxlbmd0aDsgaSsrKSB7CiAgICAgICAgdmFyIG5hbWU7CiAgICAgICAgdmFyIHZhbHVlOwogICAgICAgIHN3aXRjaCAoc2V0dGluZ3NbaV0udGFnTmFtZSkgewogICAgICAgICAgICBjYXNlICJJTlBVVCI6CiAgICAgICAgICAgICAgICBzd2l0Y2ggKHNldHRpbmdzW2ldLnR5cGUpIHsKICAgICAgICAgICAgICAgICAgICBjYXNlICJjaGVja2JveCI6CiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWUgPSBzZXR0aW5nc1tpXS5uYW1lOwogICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IHNldHRpbmdzW2ldLmNoZWNrZWQ7CiAgICAgICAgICAgICAgICAgICAgICAgIG5ld1NldHRpbmdzW25hbWVdID0gdmFsdWU7CiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICAgIGNhc2UgInRleHQiOgogICAgICAgICAgICAgICAgICAgICAgICBuYW1lID0gc2V0dGluZ3NbaV0ubmFtZTsKICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSBzZXR0aW5nc1tpXS52YWx1ZTsKICAgICAgICAgICAgICAgICAgICAgICAgc3dpdGNoIChuYW1lKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYXNlICJ1cGRhdGUiOgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlID0gdmFsdWUuc3BsaXQoIiwiKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IHZhbHVlLmZpbHRlcihmdW5jdGlvbiAoZSkgeyByZXR1cm4gZTsgfSk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYXNlICJidWZmZXIudGltZW91dCI6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSBwYXJzZUZsb2F0KHZhbHVlKTsKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICBuZXdTZXR0aW5nc1tuYW1lXSA9IHZhbHVlOwogICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJTRUxFQ1QiOgogICAgICAgICAgICAgICAgbmFtZSA9IHNldHRpbmdzW2ldLm5hbWU7CiAgICAgICAgICAgICAgICB2YWx1ZSA9IHNldHRpbmdzW2ldLnZhbHVlOwogICAgICAgICAgICAgICAgLy8gSWYgdGhlIHZhbHVlIGlzIGEgbnVtYmVyLCBzdG9yZSBpdCBhcyBhIG51bWJlcgogICAgICAgICAgICAgICAgaWYgKGlzTmFOKHZhbHVlKSkgewogICAgICAgICAgICAgICAgICAgIG5ld1NldHRpbmdzW25hbWVdID0gdmFsdWU7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgICAgICBuZXdTZXR0aW5nc1tuYW1lXSA9IHBhcnNlSW50KHZhbHVlKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgIH0KICAgIH0KICAgIHZhciBkYXRhID0gbmV3IE9iamVjdCgpOwogICAgZGF0YVsic2V0dGluZ3MiXSA9IG5ld1NldHRpbmdzOwogICAgdmFyIHNlcnZlciA9IG5ldyBTZXJ2ZXIoY21kKTsKICAgIHNlcnZlci5yZXF1ZXN0KGRhdGEpOwp9Cg==" webUI["html/lang/en.json"] = "ewogICJtYWluTWVudSI6IHsKICAgICJpdGVtIjogewogICAgICAicGxheWxpc3QiOiAiUGxheWxpc3QiLAogICAgICAicG1zSUQiOiAiUE1TIElEIiwKICAgICAgImZpbHRlciI6ICJGaWx0ZXIiLAogICAgICAieG1sdHYiOiAiWE1MVFYiLAogICAgICAibWFwcGluZyI6ICJNYXBwaW5nIiwKICAgICAgInVzZXJzIjogIlVzZXJzIiwKICAgICAgInNldHRpbmdzIjogIlNldHRpbmdzIiwKICAgICAgImxvZyI6ICJMb2ciLAogICAgICAibG9nb3V0IjogIkxvZ291dCIKICAgIH0sCiAgICAiaGVhZGxpbmUiOiB7CiAgICAgICJwbGF5bGlzdCI6ICJMb2NhbCBvciByZW1vdGUgcGxheWxpc3RzIiwKICAgICAgImZpbHRlciI6ICJGaWx0ZXIgcGxheWxpc3QiLAogICAgICAieG1sdHYiOiAiTG9jYWwgb3IgcmVtb3RlIFhNTFRWIGZpbGVzIiwKICAgICAgIm1hcHBpbmciOiAiTWFwIHBsYXlsaXN0IGNoYW5uZWxzIHRvIEVQRyBjaGFubmVscyIsCiAgICAgICJ1c2VycyI6ICJVc2VyIG1hbmFnZW1lbnQiLAogICAgICAic2V0dGluZ3MiOiAiU2V0dGluZ3MiLAogICAgICAibG9nIjogIkxvZyIsCiAgICAgICJsb2dvdXQiOiAiTG9nb3V0IgogICAgfQogIH0sCiAgImNvbmZpcm0iOiB7CiAgICAicmVzdG9yZSI6ICJBbGwgZGF0YSB3aWxsIGJlIHJlcGxhY2VkIHdpdGggdGhvc2UgZnJvbSB0aGUgYmFja3VwLiBTaG91bGQgdGhlIGZpbGVzIGJlIHJlc3RvcmVkPyIKICB9LAogICJhbGVydCI6IHsKICAgICJmaWxlTG9hZGluZ0Vycm9yIjogIkZpbGUgY291bGRuJ3QgYmUgbG9hZGVkIiwKICAgICJpbnZhbGlkQ2hhbm5lbE51bWJlciI6ICJJbnZhbGlkIGNoYW5uZWwgbnVtYmVyIiwKICAgICJtaXNzaW5nSW5wdXQiOiAiTWlzc2luZyBpbnB1dCIKICB9LAogICJidXR0b24iOiB7CiAgICAiYmFjayI6ICJCYWNrIiwKICAgICJiYWNrdXAiOiAiQmFja3VwIiwKICAgICJidWxrRWRpdCI6ICJCdWxrIEVkaXQiLAogICAgImNhbmNlbCI6ICJDYW5jZWwiLAogICAgImRlbGV0ZSI6ICJEZWxldGUiLAogICAgImRvbmUiOiAiRG9uZSIsCiAgICAibG9naW4iOiAiTG9naW4iLAogICAgIm5ldyI6ICJOZXciLAogICAgIm5leHQiOiAiTmV4dCIsCiAgICAicmVzdG9yZSI6ICJSZXN0b3JlIiwKICAgICJzYXZlIjogIlNhdmUiLAogICAgInNlYXJjaCI6ICJTZWFyY2giLAogICAgInVwZGF0ZSI6ICJVcGRhdGUiLAogICAgImNyYWV0ZUFjY291bnQiOiAiQ3JlYXRlIEFjY291bnQiLAogICAgInJlc2V0TG9ncyI6ICJSZXNldCBMb2dzIiwKICAgICJ1cGxvYWRMb2dvIjogIlVwbG9hZCBMb2dvIgogIH0sCiAgImZpbHRlciI6IHsKICAgICJ0YWJsZSI6IHsKICAgICAgInN0YXJ0aW5nQ2hhbm5lbCI6ICJTdGFydGluZyBDaC4gTm8uIiwKICAgICAgIm5hbWUiOiAiRmlsdGVyIE5hbWUiLAogICAgICAidHlwZSI6ICJGaWx0ZXIgVHlwZSIsCiAgICAgICJmaWx0ZXIiOiAiRmlsdGVyIgogICAgfSwKICAgICJjdXN0b20iOiAiQ3VzdG9tIiwKICAgICJncm91cCI6ICJNM1UgR3JvdXAiLAogICAgIm5hbWUiOiB7CiAgICAgICJ0aXRsZSI6ICJGaWx0ZXIgTmFtZSIsCiAgICAgICJwbGFjZWhvbGRlciI6ICJGaWx0ZXIgbmFtZSIsCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiCiAgICB9LAogICAgImRlc2NyaXB0aW9uIjogewogICAgICAidGl0bGUiOiAiRGVzY3JpcHRpb24iLAogICAgICAicGxhY2Vob2xkZXIiOiAiRGVzY3JpcHRpb24iLAogICAgICAiZGVzY3JpcHRpb24iOiAiIgogICAgfSwKICAgICJ0eXBlIjogewogICAgICAidGl0bGUiOiAiVHlwZSIsCiAgICAgICJncm91cFRpdGxlIjogIkdyb3VwIFRpdGxlIiwKICAgICAgImN1c3RvbUZpbHRlciI6ICJDdXN0b20gRmlsdGVyIgogICAgfSwKICAgICJjYXNlU2Vuc2l0aXZlIjogewogICAgICAidGl0bGUiOiAiQ2FzZSBTZW5zaXRpdmUiLAogICAgICAicGxhY2Vob2xkZXIiOiAiIiwKICAgICAgImRlc2NyaXB0aW9uIjogIiIKICAgIH0sCiAgICAiZmlsdGVyUnVsZSI6IHsKICAgICAgInRpdGxlIjogIkZpbHRlciBSdWxlIiwKICAgICAgInBsYWNlaG9sZGVyIjogIlNwb3J0IHtIRH0gIXtFUyxJVH0iLAogICAgICAiZGVzY3JpcHRpb24iOiAiIgogICAgfSwKICAgICJmaWx0ZXJHcm91cCI6IHsKICAgICAgInRpdGxlIjogIkdyb3VwIFRpdGxlIiwKICAgICAgInBsYWNlaG9sZGVyIjogIiIsCiAgICAgICJkZXNjcmlwdGlvbiI6ICJTZWxlY3QgYSBNM1UgZ3JvdXAuIChDb3VudGVyKTxicj5DaGFuZ2luZyB0aGUgZ3JvdXAgdGl0bGUgaW4gdGhlIE0zVSBpbnZhbGlkYXRlcyB0aGUgZmlsdGVyLiIKICAgIH0sCiAgICAiaW5jbHVkZSI6IHsKICAgICAgInRpdGxlIjogIkluY2x1ZGUiLAogICAgICAicGxhY2Vob2xkZXIiOiAiRkhELFVIRCIsCiAgICAgICJkZXNjcmlwdGlvbiI6ICJDaGFubmVsIG5hbWUgbXVzdCBpbmNsdWRlLjxicj4oQ29tbWEgc2VwYXJhdGVkKSBDb21tYSBtZWFucyBvciIKICAgIH0sCiAgICAiZXhjbHVkZSI6IHsKICAgICAgInRpdGxlIjogIkV4Y2x1ZGUiLAogICAgICAicGxhY2Vob2xkZXIiOiAiRVMsSVQiLAogICAgICAiZGVzY3JpcHRpb24iOiAiQ2hhbm5lbCBuYW1lIG11c3Qgbm90IGNvbnRhaW4uPGJyPihDb21tYSBzZXBhcmF0ZWQpIENvbW1hIG1lYW5zIG9yIgogICAgfSwKICAgICJwcmVzZXJ2ZU1hcHBpbmciOiB7CiAgICAgICJ0aXRsZSI6ICJQcmVzZXJ2ZSBFeGlzdGluZyBNM1U8YnI+Q2hhbm5lbCBOdW1iZXJzIiwKICAgICAgInBhbGNlaG9sZGVyIjogIiIsCiAgICAgICJkZXNjcmlwdGlvbiI6ICJQcmVzZXJ2ZSBleGlzdGluZyBNM1UgcGxheWxpc3QgY2hhbm5lbCBudW1iZXJzPyIKICAgIH0sCiAgICAic3RhcnRpbmdDaGFubmVsIjogewogICAgICAidGl0bGUiOiAiU3RhcnRpbmcgQ2hhbm5lbCBOdW1iZXIiLAogICAgICAicGxhY2Vob2xkZXIiOiAiIiwKICAgICAgImRlc2NyaXB0aW9uIjogIiIKICAgIH0KICB9LAogICJwbGF5bGlzdCI6IHsKICAgICJ0YWJsZSI6IHsKICAgICAgInBsYXlsaXN0IjogIlBsYXlsaXN0IiwKICAgICAgInR1bmVyIjogIlR1bmVyIiwKICAgICAgImxhc3RVcGRhdGUiOiAiTGFzdCBVcGRhdGUiLAogICAgICAiYXZhaWxhYmlsaXR5IjogIkF2YWlsYWJpbGl0eSIsCiAgICAgICJ0eXBlIjogIlR5cGUiLAogICAgICAic3RyZWFtcyI6ICJTdHJlYW1zIiwKICAgICAgImdyb3VwVGl0bGUiOiAiZ3JvdXAtdGl0bGUiLAogICAgICAidHZnSUQiOiAidHZnLWlkIiwKICAgICAgInVuaXF1ZUlEIjogIlVuaXF1ZSBJRCIKICAgIH0sCiAgICAicGxheWxpc3RUeXBlIjogewogICAgICAidGl0bGUiOiAiUGxheWxpc3QgdHlwZSIsCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLAogICAgICAiZGVzY3JpcHRpb24iOiAiIgogICAgfSwKICAgICJ0eXBlIjogewogICAgICAidGl0bGUiOiAiVHlwZSIsCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLAogICAgICAiZGVzY3JpcHRpb24iOiAiIgogICAgfSwKICAgICJuYW1lIjogewogICAgICAidGl0bGUiOiAiTmFtZSIsCiAgICAgICJwbGFjZWhvbGRlciI6ICJQbGF5bGlzdCBuYW1lIiwKICAgICAgImRlc2NyaXB0aW9uIjogIiIKICAgIH0sCiAgICAiZGVzY3JpcHRpb24iOiB7CiAgICAgICJ0aXRsZSI6ICJEZXNjcmlwdGlvbiIsCiAgICAgICJwbGFjZWhvbGRlciI6ICJEZXNjcmlwdGlvbiIsCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiCiAgICB9LAogICAgImZpbGVNM1UiOiB7CiAgICAgICJ0aXRsZSI6ICJNM1UgRmlsZSIsCiAgICAgICJwbGFjZWhvbGRlciI6ICJGaWxlIHBhdGggb3IgVVJMIG9mIHRoZSBNM1UiLAogICAgICAiZGVzY3JpcHRpb24iOiAiIgogICAgfSwKICAgICJmaWxlSERIUiI6IHsKICAgICAgInRpdGxlIjogIkhESG9tZVJ1biBJUCIsCiAgICAgICJwbGFjZWhvbGRlciI6ICJJUCBhZGRyZXNzIGFuZCBwb3J0ICgxOTIuMTY4LjEuMTA6NTAwNCkiLAogICAgICAiZGVzY3JpcHRpb24iOiAiIgogICAgfSwKICAgICJ0dW5lciI6IHsKICAgICAgInRpdGxlIjogIlR1bmVyIC8gU3RyZWFtcyIsCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLAogICAgICAiZGVzY3JpcHRpb24iOiAiTnVtYmVyIG9mIHBhcmFsbGVsIGNvbm5lY3Rpb25zIHRoYXQgY2FuIGJlIGVzdGFibGlzaGVkIHRvIHRoZSBwcm92aWRlci4gPGJyPk9ubHkgYXZhaWxhYmxlIHdpdGggYWN0aXZhdGVkIGJ1ZmZlci48YnI+TmV3IHNldHRpbmdzIHdpbGwgb25seSBiZSBhcHBsaWVkIGFmdGVyIHF1aXR0aW5nIGFsbCBzdHJlYW1zLiIKICAgIH0KICB9LAogICJ4bWx0diI6IHsKICAgICJ0YWJsZSI6IHsKICAgICAgImd1aWRlIjogIkd1aWRlIiwKICAgICAgImxhc3RVcGRhdGUiOiAiTGFzdCBVcGRhdGUiLAogICAgICAiYXZhaWxhYmlsaXR5IjogIkF2YWlsYWJpbGl0eSIsCiAgICAgICJjaGFubmVscyI6ICJDaGFubmVscyIsCiAgICAgICJwcm9ncmFtcyI6ICJQcm9ncmFtcyIKICAgIH0sCiAgICAibmFtZSI6IHsKICAgICAgInRpdGxlIjogIk5hbWUiLAogICAgICAicGxhY2Vob2xkZXIiOiAiR3VpZGUgbmFtZSIsCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiCiAgICB9LAogICAgImRlc2NyaXB0aW9uIjogewogICAgICAidGl0bGUiOiAiRGVzY3JpcHRpb24iLAogICAgICAicGxhY2Vob2xkZXIiOiAiRGVzY3JpcHRpb24iLAogICAgICAiZGVzY3JpcHRpb24iOiAiIgogICAgfSwKICAgICJmaWxlWE1MVFYiOiB7CiAgICAgICJ0aXRsZSI6ICJYTUxUViBGaWxlIiwKICAgICAgInBsYWNlaG9sZGVyIjogIkZpbGUgcGF0aCBvciBVUkwgb2YgdGhlIFhNTFRWIiwKICAgICAgImRlc2NyaXB0aW9uIjogIiIKICAgIH0KICB9LAogICJtYXBwaW5nIjogewogICAgInRhYmxlIjogewogICAgICAiY2hObyI6ICJDaC4gTm8uIiwKICAgICAgImxvZ28iOiAiTG9nbyIsCiAgICAgICJjaGFubmVsTmFtZSI6ICJDaGFubmVsIE5hbWUiLAogICAgICAidXBkYXRlQ2hhbm5lbE5hbWVSZWdleCI6ICJVcGQuIFJ4LiIsCiAgICAgICJwbGF5bGlzdCI6ICJQbGF5bGlzdCIsCiAgICAgICJncm91cFRpdGxlIjogIkdyb3VwIFRpdGxlIiwKICAgICAgInhtbHR2RmlsZSI6ICJYTUxUViBGaWxlIiwKICAgICAgInhtbHR2SUQiOiAiWE1MVFYgSUQiLAogICAgICAidGltZXNoaWZ0IjogIlRpbWVzaGlmdCIKICAgIH0sCiAgICAiYWN0aXZlIjogewogICAgICAidGl0bGUiOiAiQWN0aXZlIiwKICAgICAgInBsYWNlaG9sZGVyIjogIiIsCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiCiAgICB9LAogICAgImNoYW5uZWxOYW1lIjogewogICAgICAidGl0bGUiOiAiQ2hhbm5lbCBOYW1lIiwKICAgICAgInBsYWNlaG9sZGVyIjogIiIsCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiCiAgICB9LAogICAgImRlc2NyaXB0aW9uIjogewogICAgICAidGl0bGUiOiAiQ2hhbm5lbCBEZXNjcmlwdGlvbiIsCiAgICAgICJwbGFjZWhvbGRlciI6ICJVc2VkIGJ5IHRoZSBEdW1teSBhcyBhbiBYTUwgZGVzY3JpcHRpb24iLAogICAgICAiZGVzY3JpcHRpb24iOiAiIgogICAgfSwKICAgICJ1cGRhdGVDaGFubmVsTmFtZSI6IHsKICAgICAgInRpdGxlIjogIlVwZGF0ZSBDaGFubmVsIE5hbWUiLAogICAgICAicGxhY2Vob2xkZXIiOiAiIiwKICAgICAgImRlc2NyaXB0aW9uIjogIiIKICAgIH0sCiAgICAidXBkYXRlQ2hhbm5lbE5hbWVSZWdleCI6IHsKICAgICAgInRpdGxlIjogIkNoYW5uZWwgbmFtZSB1cGRhdGUgcmVnZXgiLAogICAgICAicGxhY2Vob2xkZXIiOiAiRm9yIGV4YW1wbGUgXlBQVlsgXFxcXC1fXT8xLioiLAogICAgICAiZGVzY3JpcHRpb24iOiAiT24gdXBkYXRlLCBpZiBhbnkgbmV3IGNoYW5uZWwgbmFtZSBtYXRjaGVzIHRoaXMgcmVnZXgsIHJlbmFtZSBjdXJyZW50IGNoYW5uZWwgdG8gdGhlIGZpcnN0IG1hdGNoaW5nIG5hbWUiCiAgICB9LAogICAgInVwZGF0ZUNoYW5uZWxOYW1lQnlHcm91cFJlZ2V4IjogewogICAgICAidGl0bGUiOiAiT25seSBieSBncm91cCByZWdleCIsCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLAogICAgICAiZGVzY3JpcHRpb24iOiAiUmVuYW1lIHRoaXMgY2hhbm5lbCBvbmx5IGlmIGN1cnJlbnQgdXNlci1kZWZpbmVkIGdyb3VwIG1hdGNoZXMgdGhpcyByZWdleCIKICAgIH0sCiAgICAidXBkYXRlQ2hhbm5lbEdyb3VwIjogewogICAgICAidGl0bGUiOiAiVXBkYXRlIENoYW5uZWwgR3JvdXAiLAogICAgICAicGxhY2Vob2xkZXIiOiAiIiwKICAgICAgImRlc2NyaXB0aW9uIjogIklmIGNoZWNrZWQsIHVzZSBncm91cCBmcm9tIHRoZSBkYXRhYmFzZSIKICAgIH0sCiAgICAiY2hhbm5lbExvZ28iOiB7CiAgICAgICJ0aXRsZSI6ICJMb2dvIFVSTCIsCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLAogICAgICAiZGVzY3JpcHRpb24iOiAiIgogICAgfSwKICAgICJ1cGRhdGVDaGFubmVsTG9nbyI6IHsKICAgICAgInRpdGxlIjogIlVzZSBsb2dvIGZyb20gTTNVIiwKICAgICAgInBsYWNlaG9sZGVyIjogIiIsCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiCiAgICB9LAogICAgImVwZ0NhdGVnb3J5IjogewogICAgICAidGl0bGUiOiAiRVBHIENhdGVnb3J5IiwKICAgICAgInBsYWNlaG9sZGVyIjogIiIsCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiCiAgICB9LAogICAgIm0zdUdyb3VwVGl0bGUiOiB7CiAgICAgICJ0aXRsZSI6ICJHcm91cCBUaXRsZSAoeHRldmUubTN1KSIsCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLAogICAgICAiZGVzY3JpcHRpb24iOiAiIgogICAgfSwKICAgICJ4bWx0dkZpbGUiOiB7CiAgICAgICJ0aXRsZSI6ICJYTUxUViBGaWxlIiwKICAgICAgInBsYWNlaG9sZGVyIjogIiIsCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiCiAgICB9LAogICAgInhtbHR2Q2hhbm5lbCI6IHsKICAgICAgInRpdGxlIjogIlhNTFRWIENoYW5uZWwiLAogICAgICAicGxhY2Vob2xkZXIiOiAiIiwKICAgICAgImRlc2NyaXB0aW9uIjogIiIKICAgIH0sCiAgICAidGltZXNoaWZ0IjogewogICAgICAidGl0bGUiOiAiVGltZXNoaWZ0IiwKICAgICAgInBsYWNlaG9sZGVyIjogIjAiLAogICAgICAiZGVzY3JpcHRpb24iOiAiIgogICAgfQogIH0sCiAgInVzZXJzIjogewogICAgInRhYmxlIjogewogICAgICAidXNlcm5hbWUiOiAiVXNlcm5hbWUiLAogICAgICAicGFzc3dvcmQiOiAiUGFzc3dvcmQiLAogICAgICAid2ViIjogIldFQiIsCiAgICAgICJwbXMiOiAiUE1TIiwKICAgICAgIm0zdSI6ICJNM1UiLAogICAgICAieG1sIjogIlhNTCIsCiAgICAgICJhcGkiOiAiQVBJIgogICAgfSwKICAgICJ1c2VybmFtZSI6IHsKICAgICAgInRpdGxlIjogIlVzZXJuYW1lIiwKICAgICAgInBsYWNlaG9sZGVyIjogIlVzZXJuYW1lIiwKICAgICAgImRlc2NyaXB0aW9uIjogIiIKICAgIH0sCiAgICAicGFzc3dvcmQiOiB7CiAgICAgICJ0aXRsZSI6ICJQYXNzd29yZCIsCiAgICAgICJwbGFjZWhvbGRlciI6ICJQYXNzd29yZCIsCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiCiAgICB9LAogICAgImNvbmZpcm0iOiB7CiAgICAgICJ0aXRsZSI6ICJDb25maXJtIiwKICAgICAgInBsYWNlaG9sZGVyIjogIlBhc3N3b3JkIGNvbmZpcm0iLAogICAgICAiZGVzY3JpcHRpb24iOiAiIgogICAgfSwKICAgICJ3ZWIiOiB7CiAgICAgICJ0aXRsZSI6ICJXZWIgQWNjZXNzIiwKICAgICAgInBsYWNlaG9sZGVyIjogIiIsCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiCiAgICB9LAogICAgInBtcyI6IHsKICAgICAgInRpdGxlIjogIlBNUyBBY2Nlc3MiLAogICAgICAicGxhY2Vob2xkZXIiOiAiIiwKICAgICAgImRlc2NyaXB0aW9uIjogIiIKICAgIH0sCiAgICAibTN1IjogewogICAgICAidGl0bGUiOiAiTTNVIEFjY2VzcyIsCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLAogICAgICAiZGVzY3JpcHRpb24iOiAiIgogICAgfSwKICAgICJ4bWwiOiB7CiAgICAgICJ0aXRsZSI6ICJYTUwgQWNjZXNzIiwKICAgICAgInBsYWNlaG9sZGVyIjogIiIsCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiCiAgICB9LAogICAgImFwaSI6IHsKICAgICAgInRpdGxlIjogIkFQSSBBY2Nlc3MiLAogICAgICAicGxhY2Vob2xkZXIiOiAiIiwKICAgICAgImRlc2NyaXB0aW9uIjogIiIKICAgIH0KICB9LAogICJzZXR0aW5ncyI6IHsKICAgICJjYXRlZ29yeSI6IHsKICAgICAgImdlbmVyYWwiOiAiR2VuZXJhbCIsCiAgICAgICJtYXBwaW5nIjogIk1hcHBpbmciLAogICAgICAiZmlsZXMiOiAiRmlsZXMiLAogICAgICAic3RyZWFtaW5nIjogIlN0cmVhbWluZyIsCiAgICAgICJiYWNrdXAiOiAiQmFja3VwIiwKICAgICAgImF1dGhlbnRpY2F0aW9uIjogIkF1dGhlbnRpY2F0aW9uIgogICAgfSwKICAgICJ1cGRhdGUiOiB7CiAgICAgICJ0aXRsZSI6ICJTY2hlZHVsZSBmb3IgdXBkYXRpbmcgKFBsYXlsaXN0LCBYTUxUViwgQmFja3VwKSIsCiAgICAgICJwbGFjZWhvbGRlciI6ICIwMDAwLDEwMDAsMjAwMCIsCiAgICAgICJkZXNjcmlwdGlvbiI6ICJUaW1lIGluIDI0IGhvdXIgZm9ybWF0ICgwODAwID0gODowMCBhbSkuIE1vcmUgdGltZXMgY2FuIGJlIGVudGVyZWQgY29tbWEgc2VwYXJhdGVkLiBMZWF2ZSB0aGlzIGZpZWxkIGVtcHR5IGlmIG5vIHVwZGF0ZXMgYXJlIHRvIGJlIGNhcnJpZWQgb3V0LiIKICAgIH0sCiAgICAiYXBpIjogewogICAgICAidGl0bGUiOiAiQVBJIEludGVyZmFjZSIsCiAgICAgICJkZXNjcmlwdGlvbiI6ICJWaWEgQVBJIGludGVyZmFjZSBpdCBpcyBwb3NzaWJsZSB0byBzZW5kIGNvbW1hbmRzIHRvIHhUZVZlLiBBUEkgZG9jdW1lbnRhdGlvbiBpcyA8YSBocmVmPSdodHRwczovL2dpdGh1Yi5jb20veHRldmUtcHJvamVjdC94VGVWZS1Eb2N1bWVudGF0aW9uL2Jsb2IvbWFzdGVyL2VuL2NvbmZpZ3VyYXRpb24ubWQjYXBpJz5oZXJlPC9hPiIKICAgIH0sCiAgICAiY2xlYXJYTUxUVkNhY2hlIjogewogICAgICAidGl0bGUiOiAiQ2xlYXIgWE1MVFYgY2FjaGUiLAogICAgICAiZGVzY3JpcHRpb24iOiAiSWYgY2hlY2tlZCwgZG8gbm90IGtlZXAgWE1MVFYgY2FjaGUgaW4gbWVtb3J5Ljxicj5TaWduaWZpY2FsbHkgcmVkdWNlcyBSQU0gdXNhZ2UgaW4gaWRsZSBtb2RlLDxicj5idXQgc2lnbmlmaWNhbGx5IHNsb3dpbmcgZG93biBldmVyeSBzdWJzZXF1ZW50IHVwZGF0ZSBpbiBYRVBHIGRhdGFiYXNlLiIKICAgIH0sCiAgICAiZGVmYXVsdE1pc3NpbmdFUEciOiB7CiAgICAgICJ0aXRsZSI6ICJGaWxsIE1pc3NpbmcgRVBHIERhdGEiLAogICAgICAiZGVzY3JpcHRpb24iOiAiV2hlbiB0aGVyZSBpcyBubyBtYXRjaGluZyBFUEcgZGF0YSBmb3IgY2hhbm5lbCwgPGJyPmF1dG9maWxsIHdpdGggeFRlVmUgZHVtbXkgRVBHIGRhdGE/IgogICAgfSwKICAgICJlbmFibGVNYXBwZWRDaGFubmVscyI6IHsKICAgICAgInRpdGxlIjogIkVuYWJsZSBtYXBwZWQgY2hhbm5lbHMiLAogICAgICAiZGVzY3JpcHRpb24iOiAiQXV0b21hdGljYWxseSBlbmFibGUgY2hhbm5lbHMgd2l0aCBhc3NpZ25lZCBFUEcgZGF0YSIKICAgIH0sCiAgICAiZGlzYWxsb3dVUkxEdXBsaWNhdGVzIjogewogICAgICAidGl0bGUiOiAiRGlzYWxsb3cgVVJMIGR1cGxpY2F0ZXMiLAogICAgICAiZGVzY3JpcHRpb24iOiAiSWYgY2hlY2tlZCwgZG8gbm90IGFkZCBhIG5ldyBjaGFubmVsIGZyb20gcGxheWxpc3QgaWYgY2hhbm5lbCB3aXRoIHN1Y2ggVVJMIGFscmVhZHkgZXhpc3RzIgogICAgfSwKICAgICJlcGdTb3VyY2UiOiB7CiAgICAgICJ0aXRsZSI6ICJFUEcgU291cmNlIiwKICAgICAgImRlc2NyaXB0aW9uIjogIlBNUzo8YnI+LSBVc2UgRVBHIGRhdGEgZnJvbSBQbGV4IG9yIEVtYnkgPGJyPjxicj5YRVBHOjxicj4tIFVzZSBvZiBvbmUgb3IgbW9yZSBYTUxUViBmaWxlczxicj4tIENoYW5uZWwgbWFuYWdlbWVudDxicj4tIE0zVSAvIFhNTFRWIGV4cG9ydCAoSFRUUCBsaW5rIGZvciBJUFRWIGFwcHMpIgogICAgfSwKICAgICJ0dW5lciI6IHsKICAgICAgInRpdGxlIjogIk51bWJlciBvZiBUdW5lcnMiLAogICAgICAiZGVzY3JpcHRpb24iOiAiTnVtYmVyIG9mIHBhcmFsbGVsIGNvbm5lY3Rpb25zIHRoYXQgY2FuIGJlIGVzdGFibGlzaGVkIHRvIHRoZSBwcm92aWRlci48YnI+QXZhaWxhYmxlIGZvcjogUGxleCwgRW1ieSAoSERIUiksIE0zVSAod2l0aCBhY3RpdmUgYnVmZmVyKS48YnI+QWZ0ZXIgYSBjaGFuZ2UsIHhUZVZlIG11c3QgYmUgZGVsZXRlIGluIHRoZSBQbGV4IC8gRW1ieSBEVlIgc2V0dGluZ3MgYW5kIHNldCB1cCBhZ2Fpbi4iCiAgICB9LAogICAgImhvc3RJUCI6IHsKICAgICAgInRpdGxlIjogIkhvc3QgSVAiLAogICAgICAiZGVzY3JpcHRpb24iOiAiSVAgYWRkcmVzcyB4VGVWZSB3aWxsIHVzZSB0byBmb3JtIE0zVSBhbmQgWE1MVFYgZmlsZXMiCiAgICB9LAogICAgImhvc3ROYW1lIjogewogICAgICAidGl0bGUiOiAiSG9zdCBOYW1lIE92ZXJyaWRlIiwKICAgICAgImRlc2NyaXB0aW9uIjogIkhvc3RuYW1lIHhUZVZlIHdpbGwgdXNlIHRvIGZvcm0gTTNVIGFuZCBYTUxUViBmaWxlcy4gVGhpcyB3aWxsIG92ZXJyaWRlIEhvc3QgSVAgaWYgc2V0IgogICAgfSwKICAgICJ0bHNNb2RlIjogewogICAgICAidGl0bGUiOiAiVExTIChIVFRQUykgbW9kZSIsCiAgICAgICJkZXNjcmlwdGlvbiI6ICJDaGFuZ2VzIHdlYiBzZXJ2ZXIgcHJvdG9jb2wgdG8gSFRUUFMuPGJyPkZvciBkZXRhaWxzLCBzZWUgPGE+aHR0cHM6Ly9naXRodWIuY29tL1NlbmV4Q3JlbnNoYXcveFRlVmUjdGxzLW1vZGU8L2E+IgogICAgfSwKICAgICJmaWxlc1VwZGF0ZSI6IHsKICAgICAgInRpdGxlIjogIlVwZGF0ZXMgYWxsIGZpbGVzIGF0IHN0YXJ0dXAiLAogICAgICAiZGVzY3JpcHRpb24iOiAiVXBkYXRlcyBhbGwgcGxheWxpc3RzLCB0dW5lciBhbmQgWE1MVFYgZmlsZXMgYXQgc3RhcnR1cC4iCiAgICB9LAogICAgImNhY2hlSW1hZ2VzIjogewogICAgICAidGl0bGUiOiAiSW1hZ2UgQ2FjaGluZyIsCiAgICAgICJkZXNjcmlwdGlvbiI6ICJBbGwgaW1hZ2VzIGZyb20gdGhlIFhNTFRWIGZpbGUgYXJlIGNhY2hlZCwgYWxsb3dpbmcgZmFzdGVyIHJlbmRlcmluZyBvZiB0aGUgZ3JpZCBpbiB0aGUgY2xpZW50Ljxicj5Eb3dubG9hZGluZyB0aGUgaW1hZ2VzIG1heSB0YWtlIGEgd2hpbGUgYW5kIHdpbGwgYmUgZG9uZSBpbiB0aGUgYmFja2dyb3VuZC4iCiAgICB9LAogICAgInJlcGxhY2VFbXB0eUltYWdlcyI6IHsKICAgICAgInRpdGxlIjogIlJlcGxhY2UgbWlzc2luZyBwcm9ncmFtIGltYWdlcyIsCiAgICAgICJkZXNjcmlwdGlvbiI6ICJJZiB0aGUgcG9zdGVyIGluIHRoZSBYTUxUViBwcm9ncmFtIGlzIG1pc3NpbmcsIHRoZSBjaGFubmVsIGxvZ28gd2lsbCBiZSB1c2VkLiIKICAgIH0sCiAgICAieHRldmVBdXRvVXBkYXRlIjogewogICAgICAidGl0bGUiOiAiQXV0b21hdGljIHVwZGF0ZSBvZiB4VGVWZSIsCiAgICAgICJkZXNjcmlwdGlvbiI6ICJJZiBhIG5ldyB2ZXJzaW9uIG9mIHhUZVZlIGlzIGF2YWlsYWJsZSwgaXQgd2lsbCBiZSBhdXRvbWF0aWNhbGx5IGluc3RhbGxlZC4gVGhlIHVwZGF0ZXMgYXJlIGRvd25sb2FkZWQgZnJvbSBHaXRIdWIuIgogICAgfSwKICAgICJzdHJlYW1CdWZmZXJpbmciOiB7CiAgICAgICJ0aXRsZSI6ICJTdHJlYW0gQnVmZmVyIiwKICAgICAgImRlc2NyaXB0aW9uIjogIkZ1bmN0aW9ucyBvZiB0aGUgYnVmZmVyOjxicj4tIFRoZSBzdHJlYW0gaXMgcGFzc2VkIGZyb20geFRlVmUsIEZGbXBlZyBvciBWTEMgdG8gUGxleCwgRW1ieSBvciBNM1UgUGxheWVyPGJyPi0gU21hbGwgamVya2luZyBvZiB0aGUgc3RyZWFtcyBjYW4gYmUgY29tcGVuc2F0ZWQ8YnI+LSBITFMgLyBNM1U4IHN1cHBvcnQ8YnI+LSBSVFAgLyBSVFBTIHN1cHBvcnQgKG9ubHkgRkZtcGVnIG9yIFZMQyk8YnI+LSBSZS1zdHJlYW1pbmc8YnI+LSBTZXBhcmF0ZSB0dW5lciBsaW1pdCBmb3IgZWFjaCBwbGF5bGlzdCIsCiAgICAgICJpbmZvX2ZhbHNlIjogIk5vIEJ1ZmZlciAoQ2xpZW50IGNvbm5lY3RzIHRvIHRoZSBzdHJlYW1pbmcgc2VydmVyKSIsCiAgICAgICJpbmZvX3h0ZXZlIjogInhUZVZlIGNvbm5lY3RzIHRvIHRoZSBzdHJlYW1pbmcgc2VydmVyIiwKICAgICAgImluZm9fZmZtcGVnIjogIkZGbXBlZyBjb25uZWN0cyB0byB0aGUgc3RyZWFtaW5nIHNlcnZlciIsCiAgICAgICJpbmZvX3ZsYyI6ICJWTEMgY29ubmVjdHMgdG8gdGhlIHN0cmVhbWluZyBzZXJ2ZXIiCiAgICB9LAogICAgInVkcHh5IjogewogICAgICAidGl0bGUiOiAiVURQeHkgYWRkcmVzcyIsCiAgICAgICJkZXNjcmlwdGlvbiI6ICJUaGUgYWRkcmVzcyBvZiB5b3VyIFVEUHh5IHNlcnZlci4gSWYgc2V0LCBhbmQgdGhlIGNoYW5uZWwgVVJMcyBpbiB0aGUgbTN1IGlzIG11bHRpY2FzdCwgeFRlVmUgd2lsbCByZXdyaXRlIGl0IHNvIHRoYXQgaXQgaXMgYWNjZXNzZWQgdmlhIHRoZSBVRFB4eSBzZXJ2aWNlLiIsCiAgICAgICJwbGFjZWhvbGRlciI6ICJob3N0OnBvcnQiCiAgICB9LAogICAgImZmbXBlZ1BhdGgiOiB7CiAgICAgICJ0aXRsZSI6ICJGRm1wZWcgQmluYXJ5IFBhdGgiLAogICAgICAiZGVzY3JpcHRpb24iOiAiUGF0aCB0byBGRm1wZWcgYmluYXJ5LiIsCiAgICAgICJwbGFjZWhvbGRlciI6ICIvcGF0aC90by9mZm1wZWciCiAgICB9LAogICAgImZmbXBlZ09wdGlvbnMiOiB7CiAgICAgICJ0aXRsZSI6ICJGRm1wZWcgT3B0aW9ucyIsCiAgICAgICJkZXNjcmlwdGlvbiI6ICJGRm1wZWcgb3B0aW9ucy48YnI+T25seSBjaGFuZ2UgaWYgeW91IGtub3cgd2hhdCB5b3UgYXJlIGRvaW5nLjxicj5MZWF2ZSBibGFuayB0byBzZXQgZGVmYXVsdCBzZXR0aW5ncy4iLAogICAgICAicGxhY2Vob2xkZXIiOiAiTGVhdmUgYmxhbmsgdG8gc2V0IGRlZmF1bHQgc2V0dGluZ3MiCiAgICB9LAogICAgInZsY1BhdGgiOiB7CiAgICAgICJ0aXRsZSI6ICJWTEMgLyBDVkxDIEJpbmFyeSBQYXRoIiwKICAgICAgImRlc2NyaXB0aW9uIjogIlBhdGggdG8gVkxDIC8gQ1ZMQyBiaW5hcnkuIiwKICAgICAgInBsYWNlaG9sZGVyIjogIi9wYXRoL3RvL2N2bGMiCiAgICB9LAogICAgInZsY09wdGlvbnMiOiB7CiAgICAgICJ0aXRsZSI6ICJWTEMgLyBDVkxDIE9wdGlvbnMiLAogICAgICAiZGVzY3JpcHRpb24iOiAiVkxDIC8gQ1ZMQyBvcHRpb25zLjxicj5Pbmx5IGNoYW5nZSBpZiB5b3Uga25vdyB3aGF0IHlvdSBhcmUgZG9pbmcuPGJyPkxlYXZlIGJsYW5rIHRvIHNldCBkZWZhdWx0IHNldHRpbmdzLiIsCiAgICAgICJwbGFjZWhvbGRlciI6ICJMZWF2ZSBibGFuayB0byBzZXQgZGVmYXVsdCBzZXR0aW5ncyIKICAgIH0sCiAgICAiYnVmZmVyU2l6ZSI6IHsKICAgICAgInRpdGxlIjogIkJ1ZmZlciBTaXplIiwKICAgICAgImRlc2NyaXB0aW9uIjogIkJ1ZmZlciBzaXplIGluIE1CLjxicj5NM1U4OiBJZiB0aGUgVFMgc2VnbWVudCBzbWFsbGVyIHRoZW4gdGhlIGJ1ZmZlciBzaXplLCB0aGUgZmlsZSBzaXplIG9mIHRoZSBzZWdtZW50IGlzIHVzZWQuIgogICAgfSwKICAgICJzdG9yZUJ1ZmZlckluUkFNIjogewogICAgICAidGl0bGUiOiAiU3RvcmUgYnVmZmVyIGluIFJBTSIsCiAgICAgICJkZXNjcmlwdGlvbiI6ICJJZiBjaGVja2VkLCB3cml0ZSBidWZmZXIgdG8gUkFNIGluc3RlYWQgb2Ygd3JpdGluZyB0byBkaXNrIgogICAgfSwKICAgICJidWZmZXJUaW1lb3V0IjogewogICAgICAidGl0bGUiOiAiVGltZW91dCBmb3IgbmV3IGNsaWVudCBjb25uZWN0aW9ucyIsCiAgICAgICJkZXNjcmlwdGlvbiI6ICJUaGUgeFRlVmUgYnVmZmVyIHdhaXRzIHVudGlsIG5ldyBjbGllbnQgY29ubmVjdGlvbnMgYXJlIGVzdGFibGlzaGVkLiBIZWxwZnVsIGZvciBmYXN0IGNoYW5uZWwgc3dpdGNoaW5nLiBWYWx1ZSBpbiBtaWxsaXNlY29uZHMuIiwKICAgICAgInBsYWNlaG9sZGVyIjogIjEwMCIKICAgIH0sCiAgICAidXNlckFnZW50IjogewogICAgICAidGl0bGUiOiAiVXNlciBBZ2VudCIsCiAgICAgICJkZXNjcmlwdGlvbiI6ICJVc2VyIEFnZW50IGZvciBIVFRQIHJlcXVlc3RzLiBGb3IgZXZlcnkgSFRUUCBjb25uZWN0aW9uLCB0aGlzIHZhbHVlIGlzIHVzZWQgZm9yIHRoZSB1c2VyIGFnZW50LiBTaG91bGQgb25seSBiZSBjaGFuZ2VkIGlmIHhUZVZlIGlzIGJsb2NrZWQuIiwKICAgICAgInBsYWNlaG9sZGVyIjogInhUZVZlIgogICAgfSwKICAgICJiYWNrdXBQYXRoIjogewogICAgICAidGl0bGUiOiAiTG9jYXRpb24gZm9yIGF1dG9tYXRpYyBiYWNrdXBzIiwKICAgICAgInBsYWNlaG9sZGVyIjogIi9tbnQvZGF0YS9iYWNrdXAveHRldmUvIiwKICAgICAgImRlc2NyaXB0aW9uIjogIkJlZm9yZSBhbnkgdXBkYXRlIG9mIHRoZSBwcm92aWRlciBkYXRhIGJ5IHRoZSBzY2hlZHVsZSwgeFRlVmUgY3JlYXRlcyBhIGJhY2t1cC4gVGhlIHBhdGggZm9yIHRoZSBhdXRvbWF0aWMgYmFja3VwcyBjYW4gYmUgY2hhbmdlZC4geFRlVmUgcmVxdWlyZXMgd3JpdGUgcGVybWlzc2lvbiBmb3IgdGhpcyBmb2xkZXIuIgogICAgfSwKICAgICJ0ZW1wUGF0aCI6IHsKICAgICAgInRpdGxlIjogIkxvY2F0aW9uIGZvciB0aGUgdGVtcG9yYXJ5IGZpbGVzIiwKICAgICAgInBsYWNlaG9sZGVyIjogIi90bXAveHRldmUvIiwKICAgICAgImRlc2NyaXB0aW9uIjogIkxvY2F0aW9uIGZvciB0aGUgYnVmZmVyIGZpbGVzLiIKICAgIH0sCiAgICAiYmFja3VwS2VlcCI6IHsKICAgICAgInRpdGxlIjogIk51bWJlciBvZiBiYWNrdXBzIHRvIGtlZXAiLAogICAgICAiZGVzY3JpcHRpb24iOiAiTnVtYmVyIG9mIGJhY2t1cHMgdG8ga2VlcC4gT2xkZXIgYmFja3VwcyBhcmUgYXV0b21hdGljYWxseSBkZWxldGVkLiIKICAgIH0sCiAgICAiYXV0aGVudGljYXRpb25XRUIiOiB7CiAgICAgICJ0aXRsZSI6ICJXRUIgQXV0aGVudGljYXRpb24iLAogICAgICAiZGVzY3JpcHRpb24iOiAiQWNjZXNzIHRvIHRoZSB3ZWIgaW50ZXJmYWNlIG9ubHkgcG9zc2libGUgd2l0aCBjcmVkZW50aWFscy4iCiAgICB9LAogICAgImF1dGhlbnRpY2F0aW9uUE1TIjogewogICAgICAidGl0bGUiOiAiUE1TIEF1dGhlbnRpY2F0aW9uIiwKICAgICAgImRlc2NyaXB0aW9uIjogIlBsZXggcmVxdWVzdHMgYXJlIG9ubHkgcG9zc2libGUgd2l0aCBhdXRoZW50aWNhdGlvbi4gPGJyPjxiPldhcm5pbmchISE8L2I+IEFmdGVyIGFjdGl2YXRpbmcgdGhpcyBmdW5jdGlvbiB4VGVWZSBtdXN0IGJlIGRlbGV0ZSBpbiB0aGUgUE1TIERWUiBzZXR0aW5ncyBhbmQgc2V0IHVwIGFnYWluLiIKICAgIH0sCiAgICAiYXV0aGVudGljYXRpb25NM1UiOiB7CiAgICAgICJ0aXRsZSI6ICJNM1UgQXV0aGVudGljYXRpb24iLAogICAgICAiZGVzY3JpcHRpb24iOiAiRG93bmxvYWRpbmcgdGhlIHh0ZXZlLm0zdSBmaWxlIHZpYSBhbiBIVFRQIHJlcXVlc3QgaXMgb25seSBwb3NzaWJsZSB3aXRoIGF1dGhlbnRpY2F0aW9uLiIKICAgIH0sCiAgICAiYXV0aGVudGljYXRpb25YTUwiOiB7CiAgICAgICJ0aXRsZSI6ICJYTUwgQXV0aGVudGljYXRpb24iLAogICAgICAiZGVzY3JpcHRpb24iOiAiRG93bmxvYWRpbmcgdGhlIHh0ZXZlLnhtbCBmaWxlIHZpYSBhbiBIVFRQIHJlcXVlc3QgaXMgb25seSBwb3NzaWJsZSB3aXRoIGF1dGhlbnRpY2F0aW9uIgogICAgfSwKICAgICJhdXRoZW50aWNhdGlvbkFQSSI6IHsKICAgICAgInRpdGxlIjogIkFQSSBBdXRoZW50aWNhdGlvbiIsCiAgICAgICJkZXNjcmlwdGlvbiI6ICJBY2Nlc3MgdG8gdGhlIEFQSSBpbnRlcmZhY2UgaXMgb25seSBwb3NzaWJsZSB3aXRoIGF1dGhlbnRpY2F0aW9uLiIKICAgIH0KICB9LAogICJ3aXphcmQiOiB7CiAgICAiZXBnU291cmNlIjogewogICAgICAidGl0bGUiOiAiRVBHIFNvdXJjZSIsCiAgICAgICJkZXNjcmlwdGlvbiI6ICJQTVM6PGJyPi0gVXNlIEVQRyBkYXRhIGZyb20gUGxleCBvciBFbWJ5IDxicj48YnI+WEVQRzo8YnI+LSBVc2Ugb2Ygb25lIG9yIG1vcmUgWE1MVFYgZmlsZXM8YnI+LSBDaGFubmVsIG1hbmFnZW1lbnQ8YnI+LSBNM1UgLyBYTUxUViBleHBvcnQgKEhUVFAgbGluayBmb3IgSVBUViBhcHBzKSIKICAgIH0sCiAgICAidHVuZXIiOiB7CiAgICAgICJ0aXRsZSI6ICJOdW1iZXIgb2YgdHVuZXJzIiwKICAgICAgImRlc2NyaXB0aW9uIjogIk51bWJlciBvZiBwYXJhbGxlbCBjb25uZWN0aW9ucyB0aGF0IGNhbiBiZSBlc3RhYmxpc2hlZCB0byB0aGUgcHJvdmlkZXIuPGJyPkF2YWlsYWJsZSBmb3I6IFBsZXgsIEVtYnkgKEhESFIpLCBNM1UgKHdpdGggYWN0aXZlIGJ1ZmZlcikuPGJyPkFmdGVyIGEgY2hhbmdlLCB4VGVWZSBtdXN0IGJlIGRlbGV0ZSBpbiB0aGUgUGxleCAvIEVtYnkgRFZSIHNldHRpbmdzIGFuZCBzZXQgdXAgYWdhaW4uIgogICAgfSwKICAgICJtM3UiOiB7CiAgICAgICJ0aXRsZSI6ICJNM1UgUGxheWxpc3QiLAogICAgICAicGxhY2Vob2xkZXIiOiAiRmlsZSBwYXRoIG9yIFVSTCBvZiB0aGUgTTNVIiwKICAgICAgImRlc2NyaXB0aW9uIjogIkxvY2FsIG9yIHJlbW90ZSBwbGF5bGlzdHMiCiAgICB9LAogICAgInhtbHR2IjogewogICAgICAidGl0bGUiOiAiWE1MVFYgRmlsZSIsCiAgICAgICJwbGFjZWhvbGRlciI6ICJGaWxlIHBhdGggb3IgVVJMIG9mIHRoZSBYTUxUViIsCiAgICAgICJkZXNjcmlwdGlvbiI6ICJMb2NhbCBvciByZW1vdGUgWE1MVFYgZmlsZSIKICAgIH0KICB9LAogICJsb2dpbiI6IHsKICAgICJmYWlsZWQiOiAiVXNlciBhdXRoZW50aWNhdGlvbiBmYWlsZWQiLAogICAgImhlYWRsaW5lIjogIkxvZ2luIiwKICAgICJ1c2VybmFtZSI6IHsKICAgICAgInRpdGxlIjogIlVzZXJuYW1lIiwKICAgICAgInBsYWNlaG9sZGVyIjogIlVzZXJuYW1lIgogICAgfSwKICAgICJwYXNzd29yZCI6IHsKICAgICAgInRpdGxlIjogIlBhc3N3b3JkIiwKICAgICAgInBsYWNlaG9sZGVyIjogIlBhc3N3b3JkIgogICAgfQogIH0sCiAgImFjY291bnQiOiB7CiAgICAiZmFpbGVkIjogIlBhc3N3b3JkIGRvZXMgbm90IG1hdGNoIiwKICAgICJoZWFkbGluZSI6ICJDcmVhdGUgdXNlciBhY2NvdW50IiwKICAgICJ1c2VybmFtZSI6IHsKICAgICAgInRpdGxlIjogIlVzZXJuYW1lIiwKICAgICAgInBsYWNlaG9sZGVyIjogIlVzZXJuYW1lIgogICAgfSwKICAgICJwYXNzd29yZCI6IHsKICAgICAgInRpdGxlIjogIlBhc3N3b3JkIiwKICAgICAgInBsYWNlaG9sZGVyIjogIlBhc3N3b3JkIgogICAgfSwKICAgICJjb25maXJtIjogewogICAgICAidGl0bGUiOiAiQ29uZmlybSIsCiAgICAgICJwbGFjZWhvbGRlciI6ICJDb25maXJtIgogICAgfQogIH0KfQ==" diff --git a/ts/menu_ts.ts b/ts/menu_ts.ts index 65cb532..b666385 100644 --- a/ts/menu_ts.ts +++ b/ts/menu_ts.ts @@ -7,6 +7,7 @@ class MainMenu { createIMG(src):any { let element = document.createElement("IMG") element.setAttribute("src", this.ImagePath + src) + element.setAttribute("alt", src) return element } From a47e5aafd1576bd82772451c4940d73507d553e4 Mon Sep 17 00:00:00 2001 From: Senex Crenshaw Date: Thu, 25 Aug 2022 19:55:43 +0000 Subject: [PATCH 177/189] Added attributes Formatting --- html/configuration.html | 2 +- html/create-first-user.html | 2 +- html/login.html | 2 +- html/maintenance.html | 2 +- src/internal/authentication/authentication.go | 656 +++++++++--------- src/webUI.go | 8 +- 6 files changed, 336 insertions(+), 336 deletions(-) diff --git a/html/configuration.html b/html/configuration.html index 5527a2e..0475b9c 100644 --- a/html/configuration.html +++ b/html/configuration.html @@ -1,5 +1,5 @@ - + diff --git a/html/create-first-user.html b/html/create-first-user.html index 965d676..32aad09 100644 --- a/html/create-first-user.html +++ b/html/create-first-user.html @@ -1,5 +1,5 @@ - + diff --git a/html/login.html b/html/login.html index 0b722c9..9c1521f 100644 --- a/html/login.html +++ b/html/login.html @@ -1,5 +1,5 @@ - + diff --git a/html/maintenance.html b/html/maintenance.html index 799ea29..c55f54d 100644 --- a/html/maintenance.html +++ b/html/maintenance.html @@ -1,5 +1,5 @@ - + diff --git a/src/internal/authentication/authentication.go b/src/internal/authentication/authentication.go index 14ff38b..4aa68cb 100755 --- a/src/internal/authentication/authentication.go +++ b/src/internal/authentication/authentication.go @@ -1,21 +1,21 @@ package authentication import ( - "encoding/json" - "errors" - "io/ioutil" - "net/http" - "os" - "path/filepath" - - "crypto/hmac" - "crypto/rand" - "crypto/sha256" - "encoding/base64" - - "time" - //"fmt" - //"log" + "encoding/json" + "errors" + "io/ioutil" + "net/http" + "os" + "path/filepath" + + "crypto/hmac" + "crypto/rand" + "crypto/sha256" + "encoding/base64" + + "time" + //"fmt" + //"log" ) const tokenLength = 40 @@ -34,12 +34,12 @@ var initAuthentication = false // Cookie : cookie type Cookie struct { - Name string - Value string - Path string - Domain string - Expires time.Time - RawExpires string + Name string + Value string + Path string + Domain string + Expires time.Time + RawExpires string } // Framework examples @@ -128,457 +128,457 @@ func main() { // Init : databasePath = Path to authentication.json func Init(databasePath string, validity int) (err error) { - database = filepath.Dir(databasePath) + string(os.PathSeparator) + databaseFile - - // Check if the database already exists - if _, err = os.Stat(database); os.IsNotExist(err) { - // Create an empty database - var defaults = make(map[string]interface{}) - defaults["dbVersion"] = "1.0" - defaults["hash"] = "sha256" - defaults["users"] = make(map[string]interface{}) - - if saveDatabase(defaults) != nil { - return - } - } - - // Loading the database - err = loadDatabase() - - // Set Token Validity - tokenValidity = validity - initAuthentication = true - return + database = filepath.Dir(databasePath) + string(os.PathSeparator) + databaseFile + + // Check if the database already exists + if _, err = os.Stat(database); os.IsNotExist(err) { + // Create an empty database + var defaults = make(map[string]interface{}) + defaults["dbVersion"] = "1.0" + defaults["hash"] = "sha256" + defaults["users"] = make(map[string]interface{}) + + if saveDatabase(defaults) != nil { + return + } + } + + // Loading the database + err = loadDatabase() + + // Set Token Validity + tokenValidity = validity + initAuthentication = true + return } // CreateDefaultUser = created efault user func CreateDefaultUser(username, password string) (err error) { - err = checkInit() - if err != nil { - return - } + err = checkInit() + if err != nil { + return + } - var users = data["users"].(map[string]interface{}) - // Check if the default user exists - if len(users) > 0 { - err = createError(001) - return - } + var users = data["users"].(map[string]interface{}) + // Check if the default user exists + if len(users) > 0 { + err = createError(001) + return + } - var defaults = defaultsForNewUser(username, password) - users[defaults["_id"].(string)] = defaults - saveDatabase(data) + var defaults = defaultsForNewUser(username, password) + users[defaults["_id"].(string)] = defaults + saveDatabase(data) - return + return } // CreateNewUser : create new user func CreateNewUser(username, password string) (userID string, err error) { - err = checkInit() - if err != nil { - return - } + err = checkInit() + if err != nil { + return + } - var checkIfTheUserAlreadyExists = func(username string, userData map[string]interface{}) (err error) { - var salt = userData["_salt"].(string) - var loginUsername = userData["_username"].(string) + var checkIfTheUserAlreadyExists = func(username string, userData map[string]interface{}) (err error) { + var salt = userData["_salt"].(string) + var loginUsername = userData["_username"].(string) - if SHA256(username, salt) == loginUsername { - err = createError(020) - } + if SHA256(username, salt) == loginUsername { + err = createError(020) + } - return - } + return + } - var users = data["users"].(map[string]interface{}) - for _, userData := range users { - err = checkIfTheUserAlreadyExists(username, userData.(map[string]interface{})) - if err != nil { - return - } - } + var users = data["users"].(map[string]interface{}) + for _, userData := range users { + err = checkIfTheUserAlreadyExists(username, userData.(map[string]interface{})) + if err != nil { + return + } + } - var defaults = defaultsForNewUser(username, password) - userID = defaults["_id"].(string) - users[userID] = defaults + var defaults = defaultsForNewUser(username, password) + userID = defaults["_id"].(string) + users[userID] = defaults - saveDatabase(data) + saveDatabase(data) - return + return } // UserAuthentication : user authentication func UserAuthentication(username, password string) (token string, err error) { - err = checkInit() - if err != nil { - return - } - - var login = func(username, password string, loginData map[string]interface{}) (err error) { - err = createError(010) - - var salt = loginData["_salt"].(string) - var loginUsername = loginData["_username"].(string) - var loginPassword = loginData["_password"].(string) - - if SHA256(username, salt) == loginUsername { - if SHA256(password, salt) == loginPassword { - err = nil - } - } - - return - } - - var users = data["users"].(map[string]interface{}) - for id, loginData := range users { - err = login(username, password, loginData.(map[string]interface{})) - if err == nil { - token = setToken(id, "-") - return - } - } - - return + err = checkInit() + if err != nil { + return + } + + var login = func(username, password string, loginData map[string]interface{}) (err error) { + err = createError(010) + + var salt = loginData["_salt"].(string) + var loginUsername = loginData["_username"].(string) + var loginPassword = loginData["_password"].(string) + + if SHA256(username, salt) == loginUsername { + if SHA256(password, salt) == loginPassword { + err = nil + } + } + + return + } + + var users = data["users"].(map[string]interface{}) + for id, loginData := range users { + err = login(username, password, loginData.(map[string]interface{})) + if err == nil { + token = setToken(id, "-") + return + } + } + + return } // CheckTheValidityOfTheToken : check token func CheckTheValidityOfTheToken(token string) (newToken string, err error) { - err = checkInit() - if err != nil { - return - } + err = checkInit() + if err != nil { + return + } - err = createError(011) + err = createError(011) - if v, ok := tokens[token]; ok { - var expires = v.(map[string]interface{})["expires"].(time.Time) - var userID = v.(map[string]interface{})["id"].(string) + if v, ok := tokens[token]; ok { + var expires = v.(map[string]interface{})["expires"].(time.Time) + var userID = v.(map[string]interface{})["id"].(string) - if expires.Sub(time.Now().Local()) < 0 { - return - } + if expires.Sub(time.Now().Local()) < 0 { + return + } - newToken = setToken(userID, token) + newToken = setToken(userID, token) - err = nil + err = nil - } else { - return - } + } else { + return + } - return + return } // GetUserID : get user ID func GetUserID(token string) (userID string, err error) { - err = checkInit() - if err != nil { - return - } + err = checkInit() + if err != nil { + return + } - err = createError(002) + err = createError(002) - if v, ok := tokens[token]; ok { - var expires = v.(map[string]interface{})["expires"].(time.Time) - userID = v.(map[string]interface{})["id"].(string) + if v, ok := tokens[token]; ok { + var expires = v.(map[string]interface{})["expires"].(time.Time) + userID = v.(map[string]interface{})["id"].(string) - if expires.Sub(time.Now().Local()) < 0 { - return - } + if expires.Sub(time.Now().Local()) < 0 { + return + } - err = nil - } + err = nil + } - return + return } // WriteUserData : save user date func WriteUserData(userID string, userData map[string]interface{}) (err error) { - err = checkInit() - if err != nil { - return - } + err = checkInit() + if err != nil { + return + } - err = createError(030) + err = createError(030) - if v, ok := data["users"].(map[string]interface{})[userID].(map[string]interface{}); ok { + if v, ok := data["users"].(map[string]interface{})[userID].(map[string]interface{}); ok { - v["data"] = userData - err = saveDatabase(data) + v["data"] = userData + err = saveDatabase(data) - } else { - return - } + } else { + return + } - return + return } // ReadUserData : load user date func ReadUserData(userID string) (userData map[string]interface{}, err error) { - err = checkInit() - if err != nil { - return - } + err = checkInit() + if err != nil { + return + } - err = createError(031) + err = createError(031) - if v, ok := data["users"].(map[string]interface{})[userID].(map[string]interface{}); ok { - userData = v["data"].(map[string]interface{}) - err = nil + if v, ok := data["users"].(map[string]interface{})[userID].(map[string]interface{}); ok { + userData = v["data"].(map[string]interface{}) + err = nil - return - } + return + } - return + return } // RemoveUser : remove user func RemoveUser(userID string) (err error) { - err = checkInit() - if err != nil { - return - } + err = checkInit() + if err != nil { + return + } - err = createError(032) + err = createError(032) - if _, ok := data["users"].(map[string]interface{})[userID]; ok { + if _, ok := data["users"].(map[string]interface{})[userID]; ok { - delete(data["users"].(map[string]interface{}), userID) - err = saveDatabase(data) + delete(data["users"].(map[string]interface{}), userID) + err = saveDatabase(data) - return - } + return + } - return + return } // SetDefaultUserData : set default user data func SetDefaultUserData(defaults map[string]interface{}) (err error) { - allUserData, err := GetAllUserData() - - for _, d := range allUserData { - var data = d.(map[string]interface{})["data"].(map[string]interface{}) - var userID = d.(map[string]interface{})["_id"].(string) - - for k, v := range defaults { - if _, ok := data[k]; ok { - // Key exist - } else { - data[k] = v - } - } - err = WriteUserData(userID, data) - } - return + allUserData, err := GetAllUserData() + + for _, d := range allUserData { + var data = d.(map[string]interface{})["data"].(map[string]interface{}) + var userID = d.(map[string]interface{})["_id"].(string) + + for k, v := range defaults { + if _, ok := data[k]; ok { + // Key exist + } else { + data[k] = v + } + } + err = WriteUserData(userID, data) + } + return } // ChangeCredentials : change credentials func ChangeCredentials(userID, username, password string) (err error) { - err = checkInit() - if err != nil { - return - } + err = checkInit() + if err != nil { + return + } - err = createError(032) + err = createError(032) - if userData, ok := data["users"].(map[string]interface{})[userID]; ok { - //var userData = tmp.(map[string]interface{}) - var salt = userData.(map[string]interface{})["_salt"].(string) + if userData, ok := data["users"].(map[string]interface{})[userID]; ok { + //var userData = tmp.(map[string]interface{}) + var salt = userData.(map[string]interface{})["_salt"].(string) - if len(username) > 0 { - userData.(map[string]interface{})["_username"] = SHA256(username, salt) - } + if len(username) > 0 { + userData.(map[string]interface{})["_username"] = SHA256(username, salt) + } - if len(password) > 0 { - userData.(map[string]interface{})["_password"] = SHA256(password, salt) - } + if len(password) > 0 { + userData.(map[string]interface{})["_password"] = SHA256(password, salt) + } - err = saveDatabase(data) - } + err = saveDatabase(data) + } - return + return } // GetAllUserData : get all user data func GetAllUserData() (allUserData map[string]interface{}, err error) { - err = checkInit() - if err != nil { - return - } - - if len(data) == 0 { - var defaults = make(map[string]interface{}) - defaults["dbVersion"] = "1.0" - defaults["hash"] = "sha256" - defaults["users"] = make(map[string]interface{}) - saveDatabase(defaults) - data = defaults - } - - allUserData = data["users"].(map[string]interface{}) - return + err = checkInit() + if err != nil { + return + } + + if len(data) == 0 { + var defaults = make(map[string]interface{}) + defaults["dbVersion"] = "1.0" + defaults["hash"] = "sha256" + defaults["users"] = make(map[string]interface{}) + saveDatabase(defaults) + data = defaults + } + + allUserData = data["users"].(map[string]interface{}) + return } // CheckTheValidityOfTheTokenFromHTTPHeader : get token from HTTP header func CheckTheValidityOfTheTokenFromHTTPHeader(w http.ResponseWriter, r *http.Request) (writer http.ResponseWriter, newToken string, err error) { - err = createError(011) - for _, cookie := range r.Cookies() { - if cookie.Name == "Token" { - var token string - token, err = CheckTheValidityOfTheToken(cookie.Value) - //fmt.Println("T", token, err) - writer = SetCookieToken(w, token) - newToken = token - } - } - //fmt.Println(err) - return + err = createError(011) + for _, cookie := range r.Cookies() { + if cookie.Name == "Token" { + var token string + token, err = CheckTheValidityOfTheToken(cookie.Value) + //fmt.Println("T", token, err) + writer = SetCookieToken(w, token) + newToken = token + } + } + //fmt.Println(err) + return } // Framework tools func checkInit() (err error) { - if initAuthentication == false { - err = createError(000) - } + if !initAuthentication { + err = createError(000) + } - return + return } func saveDatabase(tmpMap interface{}) (err error) { - jsonString, err := json.MarshalIndent(tmpMap, "", " ") + jsonString, err := json.MarshalIndent(tmpMap, "", " ") - if err != nil { - return - } + if err != nil { + return + } - err = ioutil.WriteFile(database, []byte(jsonString), 0600) - if err != nil { - return - } + err = ioutil.WriteFile(database, []byte(jsonString), 0600) + if err != nil { + return + } - return + return } func loadDatabase() (err error) { - jsonString, err := ioutil.ReadFile(database) - if err != nil { - return - } + jsonString, err := ioutil.ReadFile(database) + if err != nil { + return + } - err = json.Unmarshal([]byte(jsonString), &data) - if err != nil { - return - } + err = json.Unmarshal([]byte(jsonString), &data) + if err != nil { + return + } - return + return } // SHA256 : password + salt = sha256 string func SHA256(secret, salt string) string { - key := []byte(secret) - h := hmac.New(sha256.New, key) - h.Write([]byte("_remote_db")) - return base64.StdEncoding.EncodeToString(h.Sum(nil)) + key := []byte(secret) + h := hmac.New(sha256.New, key) + h.Write([]byte("_remote_db")) + return base64.StdEncoding.EncodeToString(h.Sum(nil)) } func randomString(n int) string { - const alphanum = "-AbCdEfGhIjKlMnOpQrStUvWxYz0123456789aBcDeFgHiJkLmNoPqRsTuVwXyZ_" - - var bytes = make([]byte, n) - rand.Read(bytes) - for i, b := range bytes { - bytes[i] = alphanum[b%byte(len(alphanum))] - } - return string(bytes) + const alphanum = "-AbCdEfGhIjKlMnOpQrStUvWxYz0123456789aBcDeFgHiJkLmNoPqRsTuVwXyZ_" + + var bytes = make([]byte, n) + rand.Read(bytes) + for i, b := range bytes { + bytes[i] = alphanum[b%byte(len(alphanum))] + } + return string(bytes) } func randomID(n int) string { - const alphanum = "ABCDEFGHJKLMNOPQRSTUVWXYZ0123456789" - - var bytes = make([]byte, n) - rand.Read(bytes) - for i, b := range bytes { - bytes[i] = alphanum[b%byte(len(alphanum))] - } - return string(bytes) + const alphanum = "ABCDEFGHJKLMNOPQRSTUVWXYZ0123456789" + + var bytes = make([]byte, n) + rand.Read(bytes) + for i, b := range bytes { + bytes[i] = alphanum[b%byte(len(alphanum))] + } + return string(bytes) } func createError(errCode int) (err error) { - var errMsg string - switch errCode { - case 000: - errMsg = "Authentication has not yet been initialized" - case 001: - errMsg = "Default user already exists" - case 002: - errMsg = "No user id found for this token" - case 010: - errMsg = "User authentication failed" - case 011: - errMsg = "Session has expired" - case 020: - errMsg = "User already exists" - case 030: - errMsg = "User data could not be saved" - case 031: - errMsg = "User data could not be read" - case 032: - errMsg = "User ID was not found" - } - - err = errors.New(errMsg) - return + var errMsg string + switch errCode { + case 000: + errMsg = "Authentication has not yet been initialized" + case 001: + errMsg = "Default user already exists" + case 002: + errMsg = "No user id found for this token" + case 010: + errMsg = "User authentication failed" + case 011: + errMsg = "Session has expired" + case 020: + errMsg = "User already exists" + case 030: + errMsg = "User data could not be saved" + case 031: + errMsg = "User data could not be read" + case 032: + errMsg = "User ID was not found" + } + + err = errors.New(errMsg) + return } func defaultsForNewUser(username, password string) map[string]interface{} { - var defaults = make(map[string]interface{}) - var salt = randomString(saltLength) - defaults["_username"] = SHA256(username, salt) - defaults["_password"] = SHA256(password, salt) - defaults["_salt"] = salt - defaults["_id"] = "id-" + randomID(idLength) - //defaults["_one.time.token"] = randomString(tokenLength) - defaults["data"] = make(map[string]interface{}) - - return defaults + var defaults = make(map[string]interface{}) + var salt = randomString(saltLength) + defaults["_username"] = SHA256(username, salt) + defaults["_password"] = SHA256(password, salt) + defaults["_salt"] = salt + defaults["_id"] = "id-" + randomID(idLength) + //defaults["_one.time.token"] = randomString(tokenLength) + defaults["data"] = make(map[string]interface{}) + + return defaults } func setToken(id, oldToken string) (newToken string) { - delete(tokens, oldToken) + delete(tokens, oldToken) loopToken: - newToken = randomString(tokenLength) - if _, ok := tokens[newToken]; ok { - goto loopToken - } + newToken = randomString(tokenLength) + if _, ok := tokens[newToken]; ok { + goto loopToken + } - var tmp = make(map[string]interface{}) - tmp["id"] = id - tmp["expires"] = time.Now().Local().Add(time.Minute * time.Duration(tokenValidity)) + var tmp = make(map[string]interface{}) + tmp["id"] = id + tmp["expires"] = time.Now().Local().Add(time.Minute * time.Duration(tokenValidity)) - tokens[newToken] = tmp + tokens[newToken] = tmp - return + return } // SetCookieToken : set cookie func SetCookieToken(w http.ResponseWriter, token string) http.ResponseWriter { - expiration := time.Now().Add(time.Minute * time.Duration(tokenValidity)) - cookie := http.Cookie{Name: "Token", Value: token, Expires: expiration} - http.SetCookie(w, &cookie) - return w + expiration := time.Now().Add(time.Minute * time.Duration(tokenValidity)) + cookie := http.Cookie{Name: "Token", Value: token, Expires: expiration} + http.SetCookie(w, &cookie) + return w } diff --git a/src/webUI.go b/src/webUI.go index 4678743..dc2b97c 100644 --- a/src/webUI.go +++ b/src/webUI.go @@ -4,8 +4,8 @@ var webUI = make(map[string]interface{}) func loadHTMLMap() { - webUI["html/configuration.html"] = "PCFkb2N0eXBlIGh0bWw+CjxodG1sPgoKPGhlYWQ+CiAgPG1ldGEgY2hhcnNldD0idXRmLTgiPgogIDxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgsIGluaXRpYWwtc2NhbGU9MS4wIiAvPgogIDx0aXRsZT54VGVWZTwvdGl0bGU+CiAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJjc3Mvc2NyZWVuLmNzcyIgdHlwZT0idGV4dC9jc3MiPgogIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iY3NzL2Jhc2UuY3NzIiB0eXBlPSJ0ZXh0L2NzcyI+CiAgPHNjcmlwdCBsYW5ndWFnZT0iamF2YXNjcmlwdCIgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9ImpzL2NvbmZpZ3VyYXRpb25fdHMuanMiPjwvc2NyaXB0PgogIDxzY3JpcHQgbGFuZ3VhZ2U9ImphdmFzY3JpcHQiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJqcy9uZXR3b3JrX3RzLmpzIj48L3NjcmlwdD4KICA8c2NyaXB0IGxhbmd1YWdlPSJqYXZhc2NyaXB0IiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ianMvbWVudV90cy5qcyI+PC9zY3JpcHQ+CiAgPHNjcmlwdCBsYW5ndWFnZT0iamF2YXNjcmlwdCIgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9ImpzL3NldHRpbmdzX3RzLmpzIj48L3NjcmlwdD4KICA8c2NyaXB0IGxhbmd1YWdlPSJqYXZhc2NyaXB0IiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ianMvYmFzZV90cy5qcyI+PC9zY3JpcHQ+CjwvaGVhZD4KCjxib2R5IG9ubG9hZD0iamF2YXNjcmlwdDogcmVhZHlGb3JDb25maWd1cmF0aW9uKDApOyI+CgogIDxkaXYgaWQ9ImxvYWRpbmciIGNsYXNzPSJibG9jayI+CiAgICA8ZGl2IGNsYXNzPSJsb2FkZXIiPjwvZGl2PgogIDwvZGl2PgoKICA8ZGl2IGlkPSJoZWFkZXIiIGNsYXNzPSJpbWdDZW50ZXIiPjwvZGl2PgogIDxkaXYgaWQ9ImJveCI+CgogICAgPHRhYmxlIGlkPSJjbGllbnRJbmZvIiBjbGFzcz0idmlzaWJsZSI+CiAgICAgIDx0cj4KICAgICAgICA8dGQgY2xhc3M9InRkS2V5Ij5WZXJzaW9uOjwvdGQ+CiAgICAgICAgPHRkIGlkPSJ2ZXJzaW9uIiBjbGFzcz0idGRWYWwiPiZuYnNwOzwvdGQ+CiAgICAgICAgPHRkIGNsYXNzPSJ0ZEtleSI+T1M6PC90ZD4KICAgICAgICA8dGQgaWQ9Im9zIiBjbGFzcz0idGRWYWwiPiZuYnNwOzwvdGQ+CiAgICAgIDwvdHI+CiAgICAgIDx0cj4KICAgICAgICA8dGQgY2xhc3M9InRkS2V5Ij5VVUlEOjwvdGQ+CiAgICAgICAgPHRkIGlkPSJ1dWlkIiBjbGFzcz0idGRWYWwiPiZuYnNwOzwvdGQ+CiAgICAgICAgPHRkIGNsYXNzPSJ0ZEtleSI+QXJjaDo8L3RkPgogICAgICAgIDx0ZCBpZD0iYXJjaCIgY2xhc3M9InRkVmFsIj4mbmJzcDs8L3RkPgogICAgICA8L3RyPgogICAgICA8dHI+CiAgICAgICAgPHRkIGNsYXNzPSJ0ZEtleSI+U3RyZWFtczo8L3RkPgogICAgICAgIDx0ZCBpZD0ic3RyZWFtcyIgY2xhc3M9InRkVmFsIj4mbmJzcDs8L3RkPgogICAgICAgIDx0ZCBjbGFzcz0idGRLZXkiPkRWUjo8L3RkPgogICAgICAgIDx0ZCBpZD0iRFZSIiBjbGFzcz0idGRWYWwiPiZuYnNwOzwvdGQ+CiAgICAgIDwvdHI+CiAgICA8L3RhYmxlPgoKICAgIDxkaXYgaWQ9ImhlYWRsaW5lIj4KICAgICAgPGgxIGlkPSJoZWFkLXRleHQiIGNsYXNzPSJjZW50ZXIiPkNvbmZpZ3VyYXRpb248L2gxPgogICAgPC9kaXY+CiAgICA8cCBpZD0iZXJyIiBjbGFzcz0iZXJyb3JNc2cgY2VudGVyIj48L3A+CiAgICA8ZGl2IGlkPSJjb250ZW50Ij4KCiAgICA8L2Rpdj4KICAgIDxkaXYgaWQ9ImJveC1mb290ZXIiPgogICAgICA8aW5wdXQgaWQ9Im5leHQiIGNsYXNzPSIiIHR5cGU9ImJ1dHRvbiIgbmFtZT0ibmV4dCIgdmFsdWU9Ik5leHQiIG9uY2xpY2s9ImphdmFzY3JpcHQ6IHNhdmVXaXphcmQoKTsiPgogICAgPC9kaXY+CiAgPC9kaXY+CjwvYm9keT4KCjwvaHRtbD4=" - webUI["html/create-first-user.html"] = "PCFkb2N0eXBlIGh0bWw+CjxodG1sPgoKPGhlYWQ+CiAgPG1ldGEgY2hhcnNldD0idXRmLTgiPgogIDxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgsIGluaXRpYWwtc2NhbGU9MS4wIiAvPgogIDx0aXRsZT54VGVWZTwvdGl0bGU+CiAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJjc3Mvc2NyZWVuLmNzcyIgdHlwZT0idGV4dC9jc3MiPgogIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iY3NzL2Jhc2UuY3NzIiB0eXBlPSJ0ZXh0L2NzcyI+CiAgPHNjcmlwdCBsYW5ndWFnZT0iamF2YXNjcmlwdCIgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9ImpzL25ldHdvcmtfdHMuanMiPjwvc2NyaXB0PgogIDxzY3JpcHQgbGFuZ3VhZ2U9ImphdmFzY3JpcHQiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJqcy9hdXRoZW50aWNhdGlvbl90cy5qcyI+PC9zY3JpcHQ+CjwvaGVhZD4KCjxib2R5PgoKICA8ZGl2IGlkPSJoZWFkZXIiIGNsYXNzPSJpbWdDZW50ZXIiPjwvZGl2PgoKICA8ZGl2IGlkPSJib3giPgoKICAgIDxkaXYgaWQ9ImhlYWRsaW5lIj4KICAgICAgPGgxIGlkPSJoZWFkLXRleHQiIGNsYXNzPSJjZW50ZXIiPnt7LmFjY291bnQuaGVhZGxpbmV9fTwvaDE+CiAgICA8L2Rpdj4KCiAgICA8cCBpZD0iZXJyIiBjbGFzcz0iZXJyb3JNc2cgY2VudGVyIj48L3A+CgogICAgPGRpdiBpZD0iY29udGVudCI+CgogICAgICA8Zm9ybSBpZD0iYXV0aGVudGljYXRpb24iIGFjdGlvbj0iIiBtZXRob2Q9InBvc3QiPgoKICAgICAgICA8aDU+e3suYWNjb3VudC51c2VybmFtZS50aXRsZX19OjwvaDU+CiAgICAgICAgPGlucHV0IGlkPSJ1c2VybmFtZSIgdHlwZT0idGV4dCIgbmFtZT0idXNlcm5hbWUiIHBsYWNlaG9sZGVyPSJVc2VybmFtZSIgdmFsdWU9IiI+CiAgICAgICAgPGg1Pnt7LmFjY291bnQucGFzc3dvcmQudGl0bGV9fTo8L2g1PgogICAgICAgIDxpbnB1dCBpZD0icGFzc3dvcmQiIHR5cGU9InBhc3N3b3JkIiBuYW1lPSJwYXNzd29yZCIgcGxhY2Vob2xkZXI9IlBhc3N3b3JkIiB2YWx1ZT0iIj4KICAgICAgICA8aDU+e3suYWNjb3VudC5jb25maXJtLnRpdGxlfX06PC9oNT4KICAgICAgICA8aW5wdXQgaWQ9ImNvbmZpcm0iIHR5cGU9InBhc3N3b3JkIiBuYW1lPSJjb25maXJtIiBwbGFjZWhvbGRlcj0iQ29uZmlybSIgdmFsdWU9IiI+CgogICAgICA8L2Zvcm0+CgogICAgPC9kaXY+CgogICAgPGRpdiBpZD0iYm94LWZvb3RlciI+CiAgICAgIDxpbnB1dCBpZD0ic3VibWl0IiBjbGFzcz0iIiB0eXBlPSJidXR0b24iIHZhbHVlPSJ7ey5idXR0b24uY3JhZXRlQWNjb3VudH19IiBvbmNsaWNrPSJqYXZhc2NyaXB0OiBsb2dpbigpOyI+CiAgICA8L2Rpdj4KCgogIDwvZGl2Pgo8L2JvZHk+Cgo8L2h0bWw+" + webUI["html/configuration.html"] = "PCFkb2N0eXBlIGh0bWw+CjxodG1sIGxhbmc9ImVuIj4KCjxoZWFkPgogIDxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KICA8bWV0YSBuYW1lPSJ2aWV3cG9ydCIgY29udGVudD0id2lkdGg9ZGV2aWNlLXdpZHRoLCBpbml0aWFsLXNjYWxlPTEuMCIgLz4KICA8dGl0bGU+eFRlVmU8L3RpdGxlPgogIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iY3NzL3NjcmVlbi5jc3MiIHR5cGU9InRleHQvY3NzIj4KICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9ImNzcy9iYXNlLmNzcyIgdHlwZT0idGV4dC9jc3MiPgogIDxzY3JpcHQgbGFuZ3VhZ2U9ImphdmFzY3JpcHQiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJqcy9jb25maWd1cmF0aW9uX3RzLmpzIj48L3NjcmlwdD4KICA8c2NyaXB0IGxhbmd1YWdlPSJqYXZhc2NyaXB0IiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ianMvbmV0d29ya190cy5qcyI+PC9zY3JpcHQ+CiAgPHNjcmlwdCBsYW5ndWFnZT0iamF2YXNjcmlwdCIgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9ImpzL21lbnVfdHMuanMiPjwvc2NyaXB0PgogIDxzY3JpcHQgbGFuZ3VhZ2U9ImphdmFzY3JpcHQiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJqcy9zZXR0aW5nc190cy5qcyI+PC9zY3JpcHQ+CiAgPHNjcmlwdCBsYW5ndWFnZT0iamF2YXNjcmlwdCIgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9ImpzL2Jhc2VfdHMuanMiPjwvc2NyaXB0Pgo8L2hlYWQ+Cgo8Ym9keSBvbmxvYWQ9ImphdmFzY3JpcHQ6IHJlYWR5Rm9yQ29uZmlndXJhdGlvbigwKTsiPgoKICA8ZGl2IGlkPSJsb2FkaW5nIiBjbGFzcz0iYmxvY2siPgogICAgPGRpdiBjbGFzcz0ibG9hZGVyIj48L2Rpdj4KICA8L2Rpdj4KCiAgPGRpdiBpZD0iaGVhZGVyIiBjbGFzcz0iaW1nQ2VudGVyIj48L2Rpdj4KICA8ZGl2IGlkPSJib3giPgoKICAgIDx0YWJsZSBpZD0iY2xpZW50SW5mbyIgY2xhc3M9InZpc2libGUiPgogICAgICA8dHI+CiAgICAgICAgPHRkIGNsYXNzPSJ0ZEtleSI+VmVyc2lvbjo8L3RkPgogICAgICAgIDx0ZCBpZD0idmVyc2lvbiIgY2xhc3M9InRkVmFsIj4mbmJzcDs8L3RkPgogICAgICAgIDx0ZCBjbGFzcz0idGRLZXkiPk9TOjwvdGQ+CiAgICAgICAgPHRkIGlkPSJvcyIgY2xhc3M9InRkVmFsIj4mbmJzcDs8L3RkPgogICAgICA8L3RyPgogICAgICA8dHI+CiAgICAgICAgPHRkIGNsYXNzPSJ0ZEtleSI+VVVJRDo8L3RkPgogICAgICAgIDx0ZCBpZD0idXVpZCIgY2xhc3M9InRkVmFsIj4mbmJzcDs8L3RkPgogICAgICAgIDx0ZCBjbGFzcz0idGRLZXkiPkFyY2g6PC90ZD4KICAgICAgICA8dGQgaWQ9ImFyY2giIGNsYXNzPSJ0ZFZhbCI+Jm5ic3A7PC90ZD4KICAgICAgPC90cj4KICAgICAgPHRyPgogICAgICAgIDx0ZCBjbGFzcz0idGRLZXkiPlN0cmVhbXM6PC90ZD4KICAgICAgICA8dGQgaWQ9InN0cmVhbXMiIGNsYXNzPSJ0ZFZhbCI+Jm5ic3A7PC90ZD4KICAgICAgICA8dGQgY2xhc3M9InRkS2V5Ij5EVlI6PC90ZD4KICAgICAgICA8dGQgaWQ9IkRWUiIgY2xhc3M9InRkVmFsIj4mbmJzcDs8L3RkPgogICAgICA8L3RyPgogICAgPC90YWJsZT4KCiAgICA8ZGl2IGlkPSJoZWFkbGluZSI+CiAgICAgIDxoMSBpZD0iaGVhZC10ZXh0IiBjbGFzcz0iY2VudGVyIj5Db25maWd1cmF0aW9uPC9oMT4KICAgIDwvZGl2PgogICAgPHAgaWQ9ImVyciIgY2xhc3M9ImVycm9yTXNnIGNlbnRlciI+PC9wPgogICAgPGRpdiBpZD0iY29udGVudCI+CgogICAgPC9kaXY+CiAgICA8ZGl2IGlkPSJib3gtZm9vdGVyIj4KICAgICAgPGlucHV0IGlkPSJuZXh0IiBjbGFzcz0iIiB0eXBlPSJidXR0b24iIG5hbWU9Im5leHQiIHZhbHVlPSJOZXh0IiBvbmNsaWNrPSJqYXZhc2NyaXB0OiBzYXZlV2l6YXJkKCk7Ij4KICAgIDwvZGl2PgogIDwvZGl2Pgo8L2JvZHk+Cgo8L2h0bWw+" + webUI["html/create-first-user.html"] = "PCFkb2N0eXBlIGh0bWw+CjxodG1sIGxhbmc9ImVuIj4KCjxoZWFkPgogIDxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KICA8bWV0YSBuYW1lPSJ2aWV3cG9ydCIgY29udGVudD0id2lkdGg9ZGV2aWNlLXdpZHRoLCBpbml0aWFsLXNjYWxlPTEuMCIgLz4KICA8dGl0bGU+eFRlVmU8L3RpdGxlPgogIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iY3NzL3NjcmVlbi5jc3MiIHR5cGU9InRleHQvY3NzIj4KICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9ImNzcy9iYXNlLmNzcyIgdHlwZT0idGV4dC9jc3MiPgogIDxzY3JpcHQgbGFuZ3VhZ2U9ImphdmFzY3JpcHQiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJqcy9uZXR3b3JrX3RzLmpzIj48L3NjcmlwdD4KICA8c2NyaXB0IGxhbmd1YWdlPSJqYXZhc2NyaXB0IiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ianMvYXV0aGVudGljYXRpb25fdHMuanMiPjwvc2NyaXB0Pgo8L2hlYWQ+Cgo8Ym9keT4KCiAgPGRpdiBpZD0iaGVhZGVyIiBjbGFzcz0iaW1nQ2VudGVyIj48L2Rpdj4KCiAgPGRpdiBpZD0iYm94Ij4KCiAgICA8ZGl2IGlkPSJoZWFkbGluZSI+CiAgICAgIDxoMSBpZD0iaGVhZC10ZXh0IiBjbGFzcz0iY2VudGVyIj57ey5hY2NvdW50LmhlYWRsaW5lfX08L2gxPgogICAgPC9kaXY+CgogICAgPHAgaWQ9ImVyciIgY2xhc3M9ImVycm9yTXNnIGNlbnRlciI+PC9wPgoKICAgIDxkaXYgaWQ9ImNvbnRlbnQiPgoKICAgICAgPGZvcm0gaWQ9ImF1dGhlbnRpY2F0aW9uIiBhY3Rpb249IiIgbWV0aG9kPSJwb3N0Ij4KCiAgICAgICAgPGg1Pnt7LmFjY291bnQudXNlcm5hbWUudGl0bGV9fTo8L2g1PgogICAgICAgIDxpbnB1dCBpZD0idXNlcm5hbWUiIHR5cGU9InRleHQiIG5hbWU9InVzZXJuYW1lIiBwbGFjZWhvbGRlcj0iVXNlcm5hbWUiIHZhbHVlPSIiPgogICAgICAgIDxoNT57ey5hY2NvdW50LnBhc3N3b3JkLnRpdGxlfX06PC9oNT4KICAgICAgICA8aW5wdXQgaWQ9InBhc3N3b3JkIiB0eXBlPSJwYXNzd29yZCIgbmFtZT0icGFzc3dvcmQiIHBsYWNlaG9sZGVyPSJQYXNzd29yZCIgdmFsdWU9IiI+CiAgICAgICAgPGg1Pnt7LmFjY291bnQuY29uZmlybS50aXRsZX19OjwvaDU+CiAgICAgICAgPGlucHV0IGlkPSJjb25maXJtIiB0eXBlPSJwYXNzd29yZCIgbmFtZT0iY29uZmlybSIgcGxhY2Vob2xkZXI9IkNvbmZpcm0iIHZhbHVlPSIiPgoKICAgICAgPC9mb3JtPgoKICAgIDwvZGl2PgoKICAgIDxkaXYgaWQ9ImJveC1mb290ZXIiPgogICAgICA8aW5wdXQgaWQ9InN1Ym1pdCIgY2xhc3M9IiIgdHlwZT0iYnV0dG9uIiB2YWx1ZT0ie3suYnV0dG9uLmNyYWV0ZUFjY291bnR9fSIgb25jbGljaz0iamF2YXNjcmlwdDogbG9naW4oKTsiPgogICAgPC9kaXY+CgoKICA8L2Rpdj4KPC9ib2R5PgoKPC9odG1sPg==" webUI["html/css/base.css"] = "KiB7CiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lOwogIC1tb3otYXBwZWFyYW5jZTogbm9uZTsKICAtbXMtYXBwZWFyYW5jZTogbm9uZTsKICBmb250LWZhbWlseTogIkFyaWFsIiwgc2Fucy1zZXJpZjsKICBsZXR0ZXItc3BhY2luZzogMnB4Owp9CgovKgo6Oi13ZWJraXQtc2Nyb2xsYmFyIHsgCiAgICBkaXNwbGF5OiBub25lOyAKfQoqLwoKOjotd2Via2l0LXNjcm9sbGJhciB7CiAgd2lkdGg6IDEycHg7CiAgaGVpZ2h0OiAxMnB4Owp9CgoKOjotd2Via2l0LXNjcm9sbGJhci10cmFjayB7CiAgLXdlYmtpdC1ib3gtc2hhZG93OiBpbnNldCAwIDAgNnB4IHJnYmEoMCwgMCwgMCwgMC4zKTsKICBib3gtc2hhZG93OiBpbnNldCAwIDAgNnB4IHJnYmEoMCwgMCwgMCwgMC4zKTsKICBib3JkZXItcmFkaXVzOiA1cHg7Cgp9Cgo6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iIHsKICBib3JkZXItcmFkaXVzOiA1cHg7CiAgLXdlYmtpdC1ib3gtc2hhZG93OiBpbnNldCAwIDAgNnB4IHJnYmEoMCwgMCwgMCwgMC42KTsKICBib3gtc2hhZG93OiBpbnNldCAwIDAgNnB4IHJnYmEoMCwgMCwgMCwgMC42KTsKICBiYWNrZ3JvdW5kLWNvbG9yOiAjNDQ0Owp9Cgo6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iOmhvdmVyIHsKICBiYWNrZ3JvdW5kOiAjMzMzOwp9Cgo6Oi13ZWJraXQtc2Nyb2xsYmFyLWNvcm5lciB7CiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7Cn0KCmEgewogIGNvbG9yOiAjMDBFNkZGOwp9CgpodG1sLApib2R5IHsKICBjb2xvcjogI2ZmZjsKICBtYXJnaW46IDBweCBhdXRvOwogIGhlaWdodDogMTAwJTsKICBmb250LXNpemU6IDE0cHg7Cn0KCmgyIHsKICBmb250LXNpemU6IDI0cHg7CiAgbGV0dGVyLXNwYWNpbmc6IDJweDsKfQoKaDMgewogIGZvbnQtc2l6ZTogMjJweDsKICBsZXR0ZXItc3BhY2luZzogMXB4Owp9CgpoNCB7CiAgZm9udC1zaXplOiAyMHB4OwogIGxldHRlci1zcGFjaW5nOiAxcHg7CiAgbGluZS1oZWlnaHQ6IDEuNWVtOwoKfQoKaDUgewogIGZvbnQtc2l6ZTogMTZweDsKICBsZXR0ZXItc3BhY2luZzogMXB4OwogIGxpbmUtaGVpZ2h0OiAxLjJlbTsKICBtYXJnaW46IDI1cHggMHB4IDEwcHggMHB4Owp9CgpociB7CiAgYm9yZGVyOiAwOwogIGhlaWdodDogMXB4OwogIGJhY2tncm91bmQ6ICMzMzM7CiAgbWFyZ2luOiAxMHB4IDBweDsKfQoKcCB7CiAgbWFyZ2luOiAycHg7CiAgcGFkZGluZzogMnB4IDVweDsKfQoKcHJlIHsKICBtYXJnaW46IDBweCAwcHggNXB4IDBweDsKICBmb250LXNpemU6IDEycHg7CiAgY29sb3I6ICNkZGQ7CiAgbGV0dGVyLXNwYWNpbmc6IDFweDsKICB3aGl0ZS1zcGFjZTogcHJlLXdyYXA7CiAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZTsKICBmb250LXNpemU6IDEycHg7CiAgZm9udC1zdHlsZTogbm9ybWFsOwogIGZvbnQtdmFyaWFudDogbm9ybWFsOwogIGxpbmUtaGVpZ2h0OiAxLjZlbTsKfQoKbGFiZWwgewogIG1hcmdpbi1ib3R0b206IDIwcHg7CiAgZGlzcGxheTogYmxvY2s7Cn0KCmxpIHsKICBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7CiAgYmFja2dyb3VuZC1jb2xvcjogIzExMTsKICBwYWRkaW5nOiAxMHB4IDIwcHg7CiAgY3Vyc29yOiBwb2ludGVyOwogIGJvcmRlci1sZWZ0OiBzb2xpZCAycHggIzExMTsKICB0cmFuc2l0aW9uOiBhbGwgMC4zOwp9CgpsaTpob3ZlciB7CiAgYm9yZGVyLWNvbG9yOiAjMDBFNkZGCn0KCnNlbGVjdCB7CiAgY3Vyc29yOiBwb2ludGVyOwogIHdpZHRoOiBjYWxjKDEwMCUgKyAycHgpOwogIGJvcmRlcjogc29saWQgMHB4ICMwMEU2RkY7CiAgYm9yZGVyLXJhZGl1czogMHB4OwogIG91dGxpbmU6IG5vbmU7CiAgY29sb3I6ICNmZmY7CiAgcGFkZGluZzogOXB4IDEwcHg7CiAgZGlzcGxheTogYmxvY2s7CiAgYmFja2dyb3VuZC1jb2xvcjogIzMzMzsKICBmb250LXNpemU6IDE0cHg7CiAgbWFyZ2luOiA1cHggMHB4IDVweCAwcHg7Cn0KCnNlbGVjdDpmb2N1cyB7CiAgb3V0bGluZTogbm9uZTsKfQoKaW5wdXQgewogIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTsKICBtYXJnaW46IDVweCAwcHg7CiAgcGFkZGluZzogMi41cHggMTBweDsKICBvdXRsaW5lOiBub25lOwogIGZvbnQtc2l6ZTogMTRweDsKfQoKaW5wdXRbdHlwZT1idXR0b25dLAppbnB1dFt0eXBlPXN1Ym1pdF0gewogIGN1cnNvcjogcG9pbnRlcjsKICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDAwOwogIG1hcmdpbjogMTBweCAxMHB4OwogIHBhZGRpbmc6IDEwcHggMjVweDsKICBib3JkZXI6IHNvbGlkIDBweDsKICBib3JkZXItY29sb3I6ICMwMDA7CiAgYm9yZGVyLXJhZGl1czogM3B4OwogIG91dGxpbmU6IG5vbmU7CiAgY29sb3I6ICNmZmY7Cn0KCmlucHV0W3R5cGU9YnV0dG9uXTpmb2N1cyB7CiAgb3V0bGluZTogbm9uZTsKfQoKaW5wdXRbdHlwZT1idXR0b25dOmhvdmVyIHsKICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDBFNkZGOwogIGNvbG9yOiAjMDAwOwp9CgppbnB1dFt0eXBlPWJ1dHRvbl06aG92ZXIuZGVsZXRlIHsKICBiYWNrZ3JvdW5kLWNvbG9yOiByZWQ7CiAgY29sb3I6ICNmZmY7Cn0KCmlucHV0W3R5cGU9dGV4dF0sCmlucHV0W3R5cGU9c2VhcmNoXSwKaW5wdXRbdHlwZT1wYXNzd29yZF0gewogIGNvbG9yOiAjZmZmOwogIHdpZHRoOiAtd2Via2l0LWNhbGMoMTAwJSAtIDBweCk7CiAgd2lkdGg6IC1tb3otY2FsYygxMDAlIC0gMHB4KTsKICB3aWR0aDogY2FsYygxMDAlIC0gMHB4KTsKICBvdXRsaW5lOiBub25lOwogIGJvcmRlcjogc29saWQgMXB4IHRyYW5zcGFyZW50OwogIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50OwogIGJvcmRlci1ib3R0b20tY29sb3I6ICM1NTU7CiAgYm9yZGVyLXJhZGl1czogMHB4OwogIHBhZGRpbmc6IDhweCAxMHB4Owp9CgppbnB1dFt0eXBlPSJjaGVja2JveCJdIHsKICBib3JkZXI6IHNvbGlkIDFweCAjMDBFNkZGOwogIGJhY2tncm91bmQtY29sb3I6ICMzMzM7CiAgaGVpZ2h0OiAyNXB4OwogIHdpZHRoOiAyNXB4OwogIGN1cnNvcjogcG9pbnRlcjsKICAvKgogIC13ZWJraXQtYXBwZWFyYW5jZTogY2hlY2tib3g7CiAgKi8KfQoKaW5wdXRbdHlwZT0iY2hlY2tib3giXTpjaGVja2VkIHsKICBjb2xvcjogI2ZmZjsKICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDBFNkZGOwogIC8qZGlzcGxheTogaW5saW5lLWJsb2NrOyovCn0KCmlucHV0W3R5cGU9ImNoZWNrYm94Il06YmVmb3JlIHsKICBwb3NpdGlvbjogaW5pdGlhbDsKICBsZWZ0OiAwcHg7CiAgbWFyZ2luLWxlZnQ6IC00cHg7CiAgY29udGVudDogIiAiOwp9CgppbnB1dFt0eXBlPSJjaGVja2JveCJdOmNoZWNrZWQ6YmVmb3JlIHsKICBwb3NpdGlvbjogaW5pdGlhbDsKICBsZWZ0OiAwcHg7CiAgbWFyZ2luLWxlZnQ6IC0zcHg7CiAgY29udGVudDogIuKckyI7CiAgY29sb3I6ICMwMDA7Cn0KCgppbnB1dFt0eXBlPWJ1dHRvbl0uY2FuY2VsIHsKCiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7CiAgYm9yZGVyLWNvbG9yOiByZWQ7Cn0KCmlucHV0W3R5cGU9YnV0dG9uXS5zYXZlIHsKICBiYWNrZ3JvdW5kLWNvbG9yOiAjMTExOwogIGZsb2F0OiByaWdodDsKfQoKCmlucHV0W3R5cGU9YnV0dG9uXS5ibGFjaywKaW5wdXRbdHlwZT1zdWJtaXRdLmJsYWNrIHsKICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDAwOwogIGJvcmRlci1jb2xvcjogIzAwMDsKfQoKaW5wdXRbdHlwZT1idXR0b25dLmNlbnRlciB7CiAgbWFyZ2luLXJpZ2h0OiBhdXRvOwogIG1hcmdpbi1sZWZ0OiBhdXRvOwogIGJhY2tncm91bmQtY29sb3I6ICMwMDA7CiAgYm9yZGVyLWNvbG9yOiAjMDAwOwp9CgoucG9pbnRlciB7CiAgY3Vyc29yOiBwb2ludGVyOwp9CgoucG9pbnRlcjpob3ZlciB7CiAgY29sb3I6ICMwMEU2RkY7CiAgY3Vyc29yOiBwb2ludGVyOwp9Cgouc29ydFRoaXMgewogIGNvbG9yOiAjMDBFNkZGOwp9CgoudzQwcHggewogIG1heC13aWR0aDogNDBweDsKfQoKLnc1MHB4IHsKICBtYXgtd2lkdGg6IDUwcHg7Cn0KCi53ODBweCB7CiAgbWF4LXdpZHRoOiA4MHB4Owp9CgoudzE1MHB4IHsKICBtYXgtd2lkdGg6IDE1MHB4Owp9CgoudzIwMHB4IHsKICBtYXgtd2lkdGg6IDIwMHB4OwogIG1pbi13aWR0aDogMTAwcHg7CiAgd2lkdGg6IDIwMHB4OwogIG92ZXJmbG93LXg6IGhpZGRlbjsKICB3aGl0ZS1zcGFjZTogbm93cmFwOwogIG92ZXJmbG93OiBoaWRkZW47CiAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7Cn0KCi53MzAwcHggewogIG1heC13aWR0aDogMzAwcHg7Cn0KCi53MjIwcHggewogIG1heC13aWR0aDogMjIwcHg7CiAgY3Vyc29yOiBhbGlhczsKfQoKLmZvb3RlciB7CiAgZm9udC1zaXplOiAxMHB4Owp9CgouY2VudGVyIHsKICB0ZXh0LWFsaWduOiBjZW50ZXI7Cn0KCi5zY3JlZW5Mb2dIaWRkZW4gewogIHRyYW5zZm9ybTogdHJhbnNsYXRlKDBweCwgLTExMHB4KTsKfQoKLmJvcmRlclNwYWNlIHsKICBtYXJnaW4tYm90dG9tOiAzMHB4Owp9Cgoubm9uZSB7CiAgZGlzcGxheTogbm9uZTsKfQoKLm5vdFZpc2libGUgewogIGhlaWdodDogMHB4OwogIGRpc3BsYXk6IG5vbmU7CiAgb3BhY2l0eTogMDsKICBib3JkZXItYm90dG9tOiAjMDAwIHNvbGlkIDBweDsKCn0KCi52aXNpYmxlIHsKICBvcGFjaXR5OiAxOwogIGRpc3BsYXk6IGJsb2NrOwogIGJvcmRlci1ib3R0b206ICM0NDQgc29saWQgMXB4OwogIHBhZGRpbmc6IDEwcHg7Cn0KCi5mbG9hdFJpZ2h0IHsKICBmbG9hdDogcmlnaHQ7Cn0KCi5mbG9hdExlZnQgewogIGZsb2F0OiBsZWZ0Owp9CgoubWVudS1hY3RpdmUgewogIGJhY2tncm91bmQtY29sb3I6ICMwMEU2RkY7Cn0KCiNicmFuY2ggewogIGRpc3BsYXk6IHRhYmxlOwogIG1hcmdpbjogYXV0bzsKICBjb2xvcjogcmVkOwp9CgojaW50ZXJhY3Rpb24gewogIG1hcmdpbi1ib3R0b206IDEwMHB4OwogIHRleHQtYWxpZ246IGNlbnRlcjsKICBib3JkZXItYm90dG9tOiBzb2xpZCAwcHggIzc3NzsKfQoKCi5oYWxmIHsKICBkaXNwbGF5OiBibG9jazsKICB3aWR0aDogNDUlOwp9CgoubWVudSB7CiAgYm9yZGVyOiBzb2xpZCAxcHggIzAwRTZGRjsKfQoKLmluZm9Nc2cgewogIGNvbG9yOiAjYWFhOwp9CgouZXJyb3JNc2cgewogIGNvbG9yOiByZWQ7Cn0KCi53YXJuaW5nTXNnIHsKICBjb2xvcjogeWVsbG93Owp9CgouZGVidWdNc2cgewogIGNvbG9yOiBtYWdlbnRhOwp9CgouTmV3cywKLk1vdmllLAouU2VyaWVzLAouU3BvcnRzLAouS2lkcyB7CiAgYm9yZGVyLWxlZnQ6IHNvbGlkIDJweAp9CgouTmV3cyB7CiAgYm9yZGVyLWNvbG9yOiB0b21hdG8KfQoKLk1vdmllIHsKICBib3JkZXItY29sb3I6IHJveWFsYmx1ZTsKfQoKLlNlcmllcyB7CiAgYm9yZGVyLWNvbG9yOiBnb2xkOwp9CgouU3BvcnRzIHsKICBib3JkZXItY29sb3I6IHllbGxvd2dyZWVuOwp9CgouS2lkcyB7CiAgYm9yZGVyLWNvbG9yOiBtZWRpdW1wdXJwbGU7Cn0KCi8qIExvYWRpbmcgKi8KI2xvYWRpbmcgewogIGxlZnQ6IDBweDsKICB0b3A6IDBweDsKICB6LWluZGV4OiAxMDAwMDsKICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjgpOwogIG1hcmdpbjogYXV0bzsKICB3aWR0aDogMTAwJTsKICBoZWlnaHQ6IDEwMCU7Cn0KCgoubG9hZGVyIHsKICBib3JkZXI6IDVweCBzb2xpZCB0cmFuc3BhcmVudDsKICBib3JkZXItcmFkaXVzOiA1MCU7CiAgYm9yZGVyLXRvcDogNXB4IHNvbGlkICMwMEU2RkY7CiAgYm9yZGVyLWJvdHRvbTogNXB4IHNvbGlkICMwMEU2RkY7CiAgd2lkdGg6IDUwcHg7CiAgaGVpZ2h0OiA1MHB4OwogIC13ZWJraXQtYW5pbWF0aW9uOiBzcGluIDEuMnMgbGluZWFyIGluZmluaXRlOwogIGFuaW1hdGlvbjogc3BpbiAxLjJzIGxpbmVhciBpbmZpbml0ZTsKCiAgcG9zaXRpb246IGZpeGVkOwogIG1hcmdpbjogYXV0bzsKCiAgdG9wOiAwOwogIHJpZ2h0OiAwOwogIGJvdHRvbTogMDsKICBsZWZ0OiAwOwoKfQoKQC13ZWJraXQta2V5ZnJhbWVzIHNwaW4gewogIDAlIHsKICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoMGRlZyk7CiAgfQoKICAxMDAlIHsKICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKTsKICB9Cn0KCkBrZXlmcmFtZXMgc3BpbiB7CiAgMCUgewogICAgdHJhbnNmb3JtOiByb3RhdGUoMGRlZyk7CiAgfQoKICAxMDAlIHsKICAgIHRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7CiAgfQp9" webUI["html/css/screen.css"] = "bmF2IGltZyB7CiAgZGlzcGxheTogYmxvY2s7CiAgbWF4LWhlaWdodDogMjBweDsKICBtYXgtd2lkdGg6IDIwcHg7CiAgZmxvYXQ6IGxlZnQ7Cn0KCm5hdiBwIHsKICB0ZXh0LWFsaWduOiBsZWZ0OwogIHBhZGRpbmc6IDBweCAzMHB4Owp9CgojbGF5b3V0IHsKICBkaXNwbGF5OiBibG9jazsKICBoZWlnaHQ6IDEwMCU7Cn0KCgoubGF5b3V0LWxlZnQgewogIGRpc3BsYXk6IGJsb2NrOwogIG1pbi13aWR0aDogMTUwcHg7CiAgbWF4LXdpZHRoOiAyMCU7CiAgYmFja2dyb3VuZC1jb2xvcjogIzExMTsKICBoZWlnaHQ6IGluaGVyaXQ7CiAgZmxvYXQ6IGxlZnQ7Cn0KCi5sYXlvdXQtcmlnaHQgewogIGRpc3BsYXk6IGJsb2NrOwogIGJhY2tncm91bmQtY29sb3I6ICM0NDQ7Cn0KCiNtZW51LXdyYXBwZXIgewogIGhlaWdodDogMTAwJTsKfQoKCiNsb2dvIHsKICBkaXNwbGF5OiBibG9jazsKICBtaW4td2lkdGg6IDE4MHB4OwogIHdpZHRoOiAxMDAlOwogIGhlaWdodDogMTAwcHg7CiAgYmFja2dyb3VuZDogdXJsKCIuLi9pbWcvbG9nb193XzYwMHgyMDAucG5nIik7CiAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDsKICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7CiAgYmFja2dyb3VuZC1zaXplOiAxMDAlOwp9CgoKI3BhZ2UgewogIG1heC13aWR0aDogOTUwcHg7CiAgbWFyZ2luOiBhdXRvOwogIGJhY2tncm91bmQtY29sb3I6ICM0NDQ7CgogIC8qCiAgaGVpZ2h0OiAtd2Via2l0LWNhbGMoMTAwJSAtIDEzMHB4KTsKICBoZWlnaHQ6IC1tb3otY2FsYygxMDAlIC0gMTMwcHgpOwogIGhlaWdodDogY2FsYygxMDAlIC0gMTMwcHgpOwogICovCgogIG1pbi1oZWlnaHQ6IC13ZWJraXQtY2FsYygxMDAlIC0gMTIwcHgpOwogIG1pbi1oZWlnaHQ6IC1tb3otY2FsYygxMDAlIC0gMTIwcHgpOwogIG1pbi1oZWlnaHQ6IGNhbGMoMTAwJSAtIDEyMHB4KTsKCgogIGJveC1zaGFkb3c6IDBweCA1cHggNXB4ICMyMjI7Cgp9CgojdWlTZXR0aW5nIHsKICBmbG9hdDogcmlnaHQ7CiAgbWFyZ2luLXJpZ2h0OiAyNXB4Owp9CgojYm94IGlucHV0W3R5cGU9dGV4dF0sCiNib3ggaW5wdXRbdHlwZT1wYXNzd29yZF0gewogIHdpZHRoOiAtd2Via2l0LWNhbGMoMTAwJSAtIDIwcHgpOwogIHdpZHRoOiAtbW96LWNhbGMoMTAwJSAtIDIwcHgpOwogIHdpZHRoOiBjYWxjKDEwMCUgLSAyMHB4KTsKfQoKI2JveCBpbnB1dFt0eXBlPXN1Ym1pdF0gewogIG1hcmdpbjogNTBweCBhdXRvOwp9Cgojc2V0dGluZ3MgewogIGRpc3BsYXk6IGJsb2NrOwogIHBhZGRpbmc6IDEwcHggMTBweDsKfQoKI3NldHRpbmdzIGg1IHsKICBtYXJnaW46IDUwcHggMHB4IDEwcHggMHB4Owp9CgojY29udGVudC1pbnRlcmFjdGlvbiAuc2VhcmNoIHsKICB3aWR0aDogMjAwcHg7CiAgYm9yZGVyOiAxcHggc29saWQgIzAwMDsKICBwYWRkaW5nOiA5cHg7CiAgYmFja2dyb3VuZC1jb2xvcjogIzMzMzsKICBtYXJnaW46IDEwcHg7CiAgZmxvYXQ6IHJpZ2h0OwogIGJvcmRlci1yYWRpdXM6IDNweDsKCn0KCiNteVN0cmVhbXMgewogIHBvc2l0aW9uOiBmaXhlZDsKICBib3R0b206IDBweDsKICBiYWNrZ3JvdW5kLWNvbG9yOiAjMTExOwogIHdpZHRoOiAxMDAlOwogIG1heC13aWR0aDogOTUwcHg7CgogIC8qCiAgbWF4LWhlaWdodDogMTAwcHg7CiAgKi8KICBtYXJnaW4tYm90dG9tOiAwcHg7Cn0KCiNteVN0cmVhbXMgaW1nIHsKICB3aWR0aDogNCU7CiAgcGFkZGluZzogMnB4IDVweDsKICBjdXJzb3I6IHBvaW50ZXI7CiAgZmxvYXQ6IHJpZ2h0Owp9CgovKiBXaXphcmQqLwojYm94IHsKICBiYWNrZ3JvdW5kLWNvbG9yOiAjNDQ0OwogIG1pbi1oZWlnaHQ6IDQwMHB4OwoKICBkaXNwbGF5OiBmbGV4OwogIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOwp9CgojYm94IHAgewogIHBhZGRpbmc6IDEwcHggMHB4Owp9CgojYm94LWZvb3RlciB7CiAgbWFyZ2luLXRvcDogYXV0bzsKfQoKI2JveC1mb290ZXIgewogIG1hcmdpbjogYXV0bzsKICBwYWRkaW5nOiAxMHB4Owp9CgojaGVhZGxpbmUgewogIGJhY2tncm91bmQtY29sb3I6ICMyMjI7CiAgYm9yZGVyLWJvdHRvbTogc29saWQgMnB4ICMyMjI7CiAgdHJhbnNpdGlvbjogYWxsIDAuNXM7CiAgcGFkZGluZzogMTBweCAwcHg7CiAgZGlzcGxheTogYmxvY2s7Cn0KCiNjb250ZW50IHsKICBkaXNwbGF5OiBibG9jazsKICBvdmVyZmxvdzogYXV0bzsKICBwYWRkaW5nOiAxMHB4Owp9CgovKiAtLS0gKi8KCgojY2xpZW50SW5mbywKI2FjdGl2ZVN0cmVhbXMsCiNpbmFjdGl2ZVN0cmVhbXMgewogIGZvbnQtZmFtaWx5OiBtb25vc3BhY2U7CiAgZGlzcGxheTogYmxvY2s7CiAgZm9udC1zaXplOiA5cHg7CiAgYmFja2dyb3VuZC1jb2xvcjogIzExMTsKICBjb2xvcjogIzAwRTZGRjsKICBib3JkZXItYm90dG9tOiBzb2xpZCAwcHg7CiAgOwogIHBhZGRpbmc6IDBweDsKICBsZXR0ZXItc3BhY2luZzogMXB4OwogIG92ZXJmbG93LXg6IGhpZGRlbjsKICBib3JkZXItc3BhY2luZzogNHB4IDRweDsKICBib3JkZXItYm90dG9tOiBzb2xpZCAxcHggIzQ0NDsKfQoKI215U3RyZWFtc0JveCB7CiAgcG9zaXRpb246IHJlbGF0aXZlOwogIHBhZGRpbmc6IDBweDsKICAvKmhlaWdodDogMTAwcHg7Ki8KICBtYXgtaGVpZ2h0OiAxNTBweDsKICBiYWNrZ3JvdW5kLWNvbG9yOiAjMTExOwogIGNvbG9yOiB3aGl0ZTsKICBkaXNwbGF5OiBmbGV4OwogIGp1c3RpZnktY29udGVudDogY2VudGVyOwogIGFsaWduLWl0ZW1zOiBjZW50ZXI7Cn0KCiNvcGVuU3RyZWFtcyB7CiAgd2lkdGg6IDIwcHg7CiAgaGVpZ2h0OiAyMHB4OwogIGN1cnNvcjogcG9pbnRlcjsKICBmbG9hdDogcmlnaHQ7CiAgcG9zaXRpb246IGFic29sdXRlOwogIHJpZ2h0OiAwcHg7CiAgYm90dG9tOiAwcHg7CiAgYmFja2dyb3VuZDogdXJsKCIuLi9pbWcvdG91Y2gucG5nIik7CiAgYmFja2dyb3VuZC1jb2xvcjogIzExMTsKCiAgYmFja2dyb3VuZC1wb3NpdGlvbjogYm90dG9tIHJpZ2h0Owp9CgojYWxsU3RyZWFtcyB7CiAgd2lkdGg6IDEwMCU7CiAgaGVpZ2h0OiAxMDAlOwogIHBhZGRpbmc6IDJweDsKfQoKI2FjdGl2ZVN0cmVhbXMsCiNpbmFjdGl2ZVN0cmVhbXMgewogIG92ZXJmbG93LXk6IHNjcm9sbDsKICB3aWR0aDogNTAlOwogIG1heC1oZWlnaHQ6IDEwMHB4OwogIGZsb2F0OiBsZWZ0Owp9CgojYWN0aXZlU3RyZWFtcyAudGRLZXksCiNpbmFjdGl2ZVN0cmVhbXMgLnRkS2V5IHsKICB3aWR0aDogNzVweDsKfQoKCgoKI2luYWN0aXZlU3RyZWFtcyAudGRLZXkgewogIGNvbG9yOiByZWQ7Cn0KCiNjbGllbnRJbmZvIC50ZFZhbCwKI2xvZ0luZm8gLnRkVmFsLAojYWN0aXZlU3RyZWFtcyAudGRWYWwsCiNpbmFjdGl2ZVN0cmVhbXMgLnRkVmFsLAojbWFwcGluZ0luZm8gLnRkVmFsIHsKICBjb2xvcjogI2FhYTsKICB3aGl0ZS1zcGFjZTogaW5oZXJpdDsKfQoKI2NsaWVudEluZm8gLnRkVmFsTGluaywKI2xvZ0luZm8gLnRkVmFsTGluaywKI2FjdGl2ZVN0cmVhbXMgLnRkVmFsTGluaywKI2luYWN0aXZlU3RyZWFtcyAudGRWYWxMaW5rLAojbWFwcGluZ0luZm8gLnRkVmFsTGluayB7CiAgY29sb3I6IGxpbWU7CiAgd2hpdGUtc3BhY2U6IGluaGVyaXQ7Cn0KCiNib3gtd3JhcHBlciB7CiAgZGlzcGxheTogaW5saW5lLWJsb2NrOwogIHdpZHRoOiAxMDAlOwoKICBvdmVyZmxvdy15OiBzY3JvbGw7Cn0KCiNjb250ZW50X3RhYmxlLAojbWFwcGluZy1kZXRhaWwtdGFibGUsCiNjb250ZW50X3RhYmxlIHsKICBkaXNwbGF5OiB0YWJsZTsKCiAgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTsKICBvdmVyZmxvdy15OiBzY3JvbGw7CiAgd2lkdGg6IDEwMCU7Cn0KCgojY29udGVudF90YWJsZSAuY29udGVudF90YWJsZV9oZWFkZXIgewogIGJhY2tncm91bmQtY29sb3I6ICMzMzM7CiAgaGVpZ2h0OiA1MHB4OwogIGJvcmRlci1ib3R0b206IHNvbGlkIDFweCAjMTExOwogIGJvcmRlci1sZWZ0OiBzb2xpZCAzcHggIzMzMzsKICBjdXJzb3I6IGF1dG87Cgp9CgoKdGJvZHkgewogIHdpZHRoOiAxMDAlOwp9CgoKLnRhYmxlRWxsaXBzaXMgewogIHdpZHRoOiAxNTBweDsKICBvdmVyZmxvdzogaGlkZGVuOwogIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwogIHdoaXRlLXNwYWNlOiBub3dyYXA7Cn0KCiNjb250ZW50X3RhYmxlIGltZyB7CiAgZGlzcGxheTogYmxvY2s7CiAgbWF4LWhlaWdodDogMjhweDsKICBtYXJnaW4tbGVmdDogYXV0bzsKICBtYXJnaW4tcmlnaHQ6IGF1dG87CiAgbWF4LXdpZHRoOiAzMHB4Owp9CgojY29udGVudF90YWJsZSB0ciB7CiAgYm9yZGVyLWxlZnQ6IHNvbGlkIDNweCA0NDQ7CiAgYm9yZGVyLWJvdHRvbTogc29saWQgMXB4ICMzMzM7CiAgY3Vyc29yOiBwb2ludGVyOwp9CgojY29udGVudF90YWJsZSB0cjpob3ZlciB7CiAgYmFja2dyb3VuZC1jb2xvcjogIzMzMzsKfQoKI2NvbnRlbnRfdGFibGUgdGQgewoKICBwYWRkaW5nOiAwcHggMnB4Owp9CgojY29udGVudF90YWJsZSBpbnB1dFt0eXBlPXRleHRdIHsKICB3aWR0aDogODAlOwogIG1pbi13aWR0aDogMzVweDsKICBtYXgtd2lkdGg6IDYwcHg7CiAgYm9yZGVyOiAwcHg7CiAgYmFja2dyb3VuZC1jb2xvcjogIzMzMzsKICBtYXJnaW4tbGVmdDogNXB4OwogIHRleHQtYWxpZ246IGxlZnQ7Cn0KCiNjb250ZW50X3RhYmxlIGlucHV0W3R5cGU9Y2hlY2tib3hdIHsKICBtYXgtd2lkdGg6IDI1cHg7CiAgbWFyZ2luOiBhdXRvOwp9CgoKLnNob3dCdWxrIHsKICBkaXNwbGF5OiBibG9jazsKfQoKLmhpZGVCdWxrIHsKICBkaXNwbGF5OiBub25lOwp9CgojY29udGVudF90YWJsZSB0ci5hY3RpdmVFUEcgewogIGJvcmRlci1sZWZ0OiBzb2xpZCAzcHggbGF3bmdyZWVuOwp9CgojY29udGVudF90YWJsZSB0ci5ub3RBY3RpdmVFUEcgewogIGJvcmRlci1sZWZ0OiBzb2xpZCAzcHggcmVkOwp9CgoKI2xvZ1NjcmVlbiBwIHsKICB3aGl0ZS1zcGFjZTogcHJlOwogIGZvbnQtc2l6ZTogMTBweDsKICAvKgogIGxpbmUtaGVpZ2h0OiAxLjZlbTsKICBmb250LWZhbWlseTogIkFyaWFsIiwgc2Fucy1zZXJpZjsKICAqLwogIGxldHRlci1zcGFjaW5nOiAxcHg7CiAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZTsKICBmb250LXNpemU6IDEycHg7CiAgZm9udC1zdHlsZTogbm9ybWFsOwogIGZvbnQtdmFyaWFudDogbm9ybWFsOwogIGxpbmUtaGVpZ2h0OiAxLjZlbTsKfQoKI3BvcHVwIHsKICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNCk7CiAgcG9zaXRpb246IGZpeGVkOwogIGxlZnQ6IDBweDsKICB3aWR0aDogMTAwJTsKICB6LWluZGV4OiAxMDA7CiAgaGVpZ2h0OiAxMDAlOwogIG92ZXJmbG93OiBzY3JvbGw7Cn0KCiNtYXBwaW5nLWRldGFpbCwKI3VzZXItZGV0YWlsLAojZmlsZS1kZXRhaWwsCiNwb3B1cC1jdXN0b20gewogIGJveC1zaGFkb3c6IDBweCA1cHggNDBweCAjMDAwOwogIG1hcmdpbi10b3A6IDIwcHg7CiAgbWFyZ2luLWxlZnQ6IGF1dG87CiAgbWFyZ2luLXJpZ2h0OiBhdXRvOwoKICBtYXgtd2lkdGg6IDgwMHB4OwogIGJhY2tncm91bmQtY29sb3I6ICMyMjI7CiAgcGFkZGluZzogMTBweDsKICBvdmVyZmxvdzogYXV0bzsKfQoKI3BvcHVwLWN1c3RvbSBoMyB7CiAgdGV4dC1hbGlnbjogY2VudGVyOwp9CgojZmlsZS1kZXRhaWwgaW5wdXRbdHlwZT10ZXh0XSB7CiAgd2lkdGg6IC13ZWJraXQtY2FsYygxMDAlIC0gMjBweCk7CiAgd2lkdGg6IC1tb3otY2FsYygxMDAlIC0gMjBweCk7CiAgd2lkdGg6IGNhbGMoMTAwJSAtIDIwcHgpOwp9CgojbWFwcGluZy1kZXRhaWwgaW1nIHsKICBkaXNwbGF5OiBibG9jazsKICBtYXgtaGVpZ2h0OiAzMHB4OwogIG1hcmdpbi1ib3R0b206IDIwcHg7CiAgbWFyZ2luLWxlZnQ6IGF1dG87CiAgbWFyZ2luLXJpZ2h0OiBhdXRvOwp9CgojcG9wdXAtY3VzdG9tIGlucHV0W3R5cGU9dGV4dF0sCiNwb3B1cC1jdXN0b20gaW5wdXRbdHlwZT1wYXNzd29yZF0sCiNtYXBwaW5nLWRldGFpbCBpbnB1dFt0eXBlPXRleHRdLAojY29udGVudF9zZXR0aW5ncyBpbnB1dFt0eXBlPXRleHRdLAojY29udGVudF9zZXR0aW5ncyBpbnB1dFt0eXBlPXBhc3N3b3JkXSB7CiAgYm9yZGVyOiBzb2xpZCAxcHg7CiAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDsKICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzMzOwogIHRleHQtYWxpZ246IGxlZnQ7CiAgd2lkdGg6IC13ZWJraXQtY2FsYygxMDAlIC0gMjBweCk7CiAgd2lkdGg6IC1tb3otY2FsYygxMDAlIC0gMjBweCk7CiAgd2lkdGg6IGNhbGMoMTAwJSAtIDIwcHgpOwp9CgojcG9wdXAtY3VzdG9tIGlucHV0W3R5cGU9dGV4dF0ubm90QXZhaWxhYmxlIHsKICBib3JkZXItY29sb3I6IHJlZDsKICBjb2xvcjogIzY2NjsKICBjdXJzb3I6IG5vdC1hbGxvd2VkOwp9CgojcG9wdXAtY3VzdG9tIGlucHV0W3R5cGU9dGV4dF06ZGlzYWJsZWQgewogIGNvbG9yOiAjNjY2OwogIGN1cnNvcjogbm90LWFsbG93ZWQ7Cn0KCiNtYXBwaW5nLWRldGFpbC10YWJsZSwKI3VzZXItZGV0YWlsLXRhYmxlIHsKICBkaXNwbGF5OiBpbmxpbmUtdGFibGU7CiAgd2lkdGg6IDEwMCU7Cn0KCiNwb3B1cC1jdXN0b20gdGFibGUsCiNjb250ZW50X3NldHRpbmdzIHRhYmxlIHsKICBkaXNwbGF5OiBpbmxpbmUtdGFibGU7CiAgdGFibGUtbGF5b3V0OiBmaXhlZDsKICB3aWR0aDogMTAwJTsKfQoKCiNtYXBwaW5nLWRldGFpbC10YWJsZSB0ZCwKI3VzZXItZGV0YWlsLXRhYmxlIHRkIHsKICBwYWRkaW5nOiAxMHB4IDBweDsKCn0KCiNtYXBwaW5nLWRldGFpbC10YWJsZSB0ZC5sZWZ0LAojdXNlci1kZXRhaWwtdGFibGUgdGQubGVmdCwKI3BvcHVwLWN1c3RvbSB0ZC5sZWZ0IHsKICB3aWR0aDogMzglOwp9CgouaW50ZXJhY3Rpb24sCiNpbnRlcmFjdGlvbiB7CiAgbWFyZ2luLXRvcDogMjBweDsKICBkaXNwbGF5OiBpbmxpbmUtZmxleDsKICBmbG9hdDogcmlnaHQ7Cn0KCi5pbnRlcmFjdGlvbiBpbnB1dFt0eXBlPWJ1dHRvbl0sCi5pbnRlcmFjdGlvbiBpbnB1dFt0eXBlPXN1Ym1pdF0gewogIGJhY2tncm91bmQtY29sb3I6ICMwMDA7CiAgbWluLXdpZHRoOiAxMDBweDsKICBtYXJnaW46IDBweCAxMHB4OwogIHRleHQtYWxpZ246IGNlbnRlcjsKfQoKI25vdGlmaWNhdGlvbiB7CiAgZGlzcGxheTogYmxvY2s7CiAgcG9zaXRpb246IGZpeGVkOwogIHJpZ2h0OiAwcHg7CiAgaGVpZ2h0OiAxMDAlOwogIHdpZHRoOiAyNTBweDsKCiAgYmFja2dyb3VuZC1jb2xvcjogIzIyMjsKICBib3gtc2hhZG93OiAwcHggMHB4IDIwcHggIzAwMDsKfQoKI25vdGlmaWNhdGlvbiBoNSB7CiAgYmFja2dyb3VuZC1jb2xvcjogIzEyMTIxMjsKICBwYWRkaW5nOiA1cHggMTBweCA1cHggMTBweDsKfQoKI25vdGlmaWNhdGlvbiBwcmUgewogIHBhZGRpbmc6IDBweCAxMHB4IDBweCAxMHB4Owp9Cgojbm90aWZpY2F0aW9uIHAgewogIGZvbnQtc2l6ZTogMTAgcHg7CiAgbWFyZ2luOiAwcHg7CiAgcGFkZGluZzogMHB4IDEwcHggNXB4IDEwcHg7Cn0KCiNub3RpZmljYXRpb24gLmVsZW1lbnQgewogIC8qcGFkZGluZzogMHB4IDVweDsqLwogIG1hcmdpbjogNXB4IDVweDsKICBib3JkZXItcmFkaXVzOiA1cHg7CiAgYmFja2dyb3VuZC1jb2xvcjogIzE4MTgxODsKICBib3JkZXItbGVmdDogMTBweCBzb2xpZCBncmVlbjsKfQoKCkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjIwcHgpIHsKICBib2R5IHsKICAgIHdpZHRoOiAxMDAlOwogICAgYmFja2dyb3VuZC1jb2xvcjogIzQ0NDsKICB9CgogIGgxIHsKICAgIGZvbnQtc2l6ZTogMjZweDsKICAgIGxldHRlci1zcGFjaW5nOiAzcHg7CiAgfQoKICBuYXYgcCB7CiAgICBkaXNwbGF5OiBibG9jazsKICB9CgoKCiAgI2hlYWRlcl9jb25maWcgewogICAgZGlzcGxheTogYmxvY2s7CiAgICBoZWlnaHQ6IDEwMHB4OwogICAgYmFja2dyb3VuZDogdXJsKCIuLi9pbWcvbG9nb193XzYwMHgyMDAucG5nIik7CiAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0OwoKICAgIGJhY2tncm91bmQtc2l6ZTogMzAwcHggMTAwcHg7CiAgfQoKICAjc2NyZWVuTG9nIHsKICAgIG1hcmdpbi1sZWZ0OiAzMDBweDsKCiAgICB0cmFuc2l0aW9uOiBub25lOwogICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7CiAgICBib3JkZXItYm90dG9tOiBzb2xpZCAxcHggdHJhbnNwYXJlbnQ7CiAgICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAjMjIyOwogIH0KCiAgI3NldHRpbmdzIHsKICAgIC8qCiAgICBoZWlnaHQ6IC13ZWJraXQtY2FsYygxMDAlIC0gMTAwcHgpOwogICAgaGVpZ2h0OiAtbW96LWNhbGMoMTAwJSAtIDEwMHB4KTsKICAgIGhlaWdodDogY2FsYygxMDAlIC0gMTAwcHgpOwogICAgKi8KICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgIG92ZXJmbG93OiBhdXRvOwogIH0KCgogIC5zY3JlZW5Mb2dIaWRkZW4gewogICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMHB4LCAwcHgpOwogIH0KCgogICNib3ggewogICAgZGlzcGxheTogYmxvY2s7CiAgICBtaW4taGVpZ2h0OiA1MDBweDsKICAgIG1heC13aWR0aDogNTAwcHg7CiAgICBtYXJnaW46IDEwcHggYXV0bzsKICAgIGJhY2tncm91bmQtY29sb3I6ICM0NDQ7CiAgICBib3gtc2hhZG93OiAwcHggNXB4IDVweCAjMjIyOwoKICAgIGRpc3BsYXk6IGZsZXg7CiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogIH0KCn0=" webUI["html/favicon.ico"] = "AAABAAMAEBAAAAEAIABoBAAANgAAACAgAAABACAAKBEAAJ4EAAAwMAAAAQAgAGgmAADGFQAAKAAAABAAAAAgAAAAAQAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAO2cIH7unCD57pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg+e2cIH7unCD57pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD57pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unSP/7p0k/+6cIP/voSz/7pwg/+6fJv/unSP/7p4k/+6cIP/unCD/7pwh/+6eJP/unCD/7pwg/+6cIP/unSP/+Nmr//vpzv/zumT/++nO/++hK//87tr/99Se//rkwv/30JX/9s2P//zt1//41qL/9ceC/+6cIP/unCD/7p0i//nds//30Zj/7qAo//rmx//unib/++vS//bMjP/54Lv/9suK//TAcf/758n/8Kg6/++gKv/unCD/7pwg/+6cIf/1xn//8rJS/++iLf/30Zn/8Kk+//GuSf/0wnX/9MBx//GsRP/xr0z/+d20//fTnP/wpjj/7pwg/+6cIP/unCD/7pwg/+6cIP/yt13/+d62//ndsv/0v3D/7pwg/+6cIP/unCD/7pwg//ncsP/53rb/9cmF/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unSP/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg+e6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg+e2cIH7unCD57pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg+e2cIH4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKAAAACAAAABAAAAAAQAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP+AAALsmiF87pwg5u6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg5uyaIXz/gAAC7JwhfO6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+ycIXzunCDm7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg5u6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/76Es/+6cIP/uoCn/7p4m/+6cIP/unCD/8KxE/++iLf/unCD/7pwg/+6cIf/wpzj/76It/+6cIP/unCD/76Qy/+6cIP/unCD/7pwg/+6cIP/unCD/7p0j/++iL//unSL/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/++hLf/99ej/9MBy//747//++fL/871r/+6cIP/88d//+eC5/+6cIP/uniT/++nO/////////v7/+uPA//CrQv/++vT/+uC5/+6fJv/wq0L/76Mv//fRl//++/X///////769P/31aD/7p8n/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg//K0WP///fv///36//K3Xf/87NT/76Qy//zt1//758r/7pwg//GtR///////99Kb//CnOf/1x4L//fXo//316f/30pr//O/b//3y4v/99ur///////vq0P/xsE7/8a5J//jZqv/30Zj/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwh//3z5v/76tD/7pwg/++lNP/voi3/+d+2//zy4v/unCD/76Qy///+/f/88d7/9s2P/++iLf/3057/+uXF/+6dI//++PD/875s//O3Xv//////9suL/+6cIP/unCD/7pwg//GuSf/unCD/7pwg/+6cIP/unCD/7pwg/++gKf/65sb///////3y4//2zY7/7pwg/+6cIP/2y4r///78/+6eJv/unCD/+d62//netv/537b/+uK9//jarP/88N7/7pwg//779//87tj/7p0j//rkw//87db/9L1r//CqP//unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7p4m//3z5P/76Mv/76Iv//zu2f/ys1X/7pwg//KzU///////8a5I/+6cIP/voi//+d+3//769P/41qL/9s6Q//748P/unCD/+dyx//vpz//unCD/8a1H//78+f/64r3/871q/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/76Aq/+6dJP/unCD/7pwg/+6cIP/unCD/7p0j//337v/0v2//7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7p4k/+6cIP/unCD/7pwg/+6cIP/20JX//v37//bNj//54Lv/9cZ//+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/8K1F//vpzv/30Zj/++rQ//nftv/1xHr/9cV8/+6fJ//unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg//XGf///////+uK+//O8aP///v7/8KtB/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/8KtD//jXpv/76Mz/++nN//vozP/658n/8rNT/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/+d60//bNj//76c7//fPj//ndsv/uniX/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/voSv/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCDm7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg5uyaIXzunCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/smiF8/4AAAuycIXzunCDm7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCDm7JwhfP+AAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKAAAADAAAABgAAAAAQAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADumSIP7JseXO6cIMbunSD27pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unSD27pwgxuybHlztpCQOAAAAAO6ZIg/unCGV7pwg9+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6bIPjunCGV7aQkDuybHlzunCD37pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD47JseXO6cIMbunCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwgxu6dIPbunCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7p0g9u6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/++lNP/uoCr/7pwg/+6eJv/wpzn/7p0j/+6cIP/unCD/7pwg//GwT//zt17/758o/+6cIP/unCD/7pwg/+6cIf/vpTT/8a9M//CqP//uniT/7pwg/+6cIP/voCn/8K1G/+6cIf/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/758o//CnOP/vozH/7p0h/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/8atD//758f/41qT/8Kk9//zs0////////O/b//K2Wv/uniT/7pwg//vnyP//////9cmF/+6cIP/unCD/7p0i//bLiv/++/b//////////v/98uH/9cR5/++iLf/2yIL///z5//riv//wqTz/7pwh/++gKf/voSz/7p0i//GvTP/64Lv///35/////////////fLi//bKiP/vpTX/7pwh/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg//bJhf/99ej/++rQ///////99Oj/++bH//316f/yuGD/7pwh//voyv//////99Kb/+6cIP/unCD/8K1G///9+v///v7/++nN//jXp//64r7//vrz//ncr//65cX///79//zv2//64bv/87pk//jaq//53rX/9smG//zy4v////////36//vlxv/527D/+uK///747//64r3/76U0/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/++hK//416b///79///+/P/30Jb/76U0//fTnP/42Kn/76Ap//netf//////+dqt/+6cIP/unCD/87tl///////99ej/8bBM/++fKP/voy//87lh//337f///fr/+uTE//GvS//769L//vjw//305v/65ML//vrz////////////9cmF/++kMv/voSv/76Mw//K1WP/87db/9L9w/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/0vmz//vrz//747//zuGD/7pwg/++hLP/ytVn/758o//bOkP//////+ubI/+6cIP/unCD/8q9N/////v/+/fv/+uG6//O6ZP/vpDP/7p0h//K4Yf//////99Wg/+6dIf/2yoj///37//XIhP/unSH/99Ka///////+/Pj/8axE/+6cIP/unCD/7pwg/+6cIP/xsE7/8rNU/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg//GvS//53LH///79//789//3zpL/76Ao/+6cIP/unCD/7pwg//O6ZP///////fXo/+6cIP/unCD/7p4l//zu2v///v3/+Nin//zv2//65sf/8a9M//K6ZP//////+Nmp/+6cIP/1x4L///37//zt1v/wqDv/8a5K//769f///v3/87pk/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/8KY4//305//+/Pn///////rjwf/99ur/986S/+6cIP/unCD/7pwg//GrQv/++PD///79/++jMP/unCD/7pwg//O9av///Pr/99Od//O5Yv///v7/+Nmq//XEev///////OzV/+6cIP/2yof///78//779//0wnb/7p0i//XDef/++fL//fHh//fRmf/3zpL/76U1/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/76Mx//747v///v7//O7Y/++jMf/2z5P//vz4//TDef/unCD/7pwg/++lNf/76c3///////K1WP/unCD/7pwg/++gKP/2z5P//fft//779f/+/Pj/99Kb//O9af///fv//vfu/+6cIP/zu2X//fXp//768//1xHv/7pwg/+6fJv/30pn///78//737f/98eD/8rde/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg//O7Z//30pr/8a5I/+6cIP/wpjj/9cZ///GvS//unCD/7pwg/+6fJ//41qT///////XIg//unCD/7pwg/+6cIP/unyj/8rdd//bJhf/1xXz/76U1/++jMP/2yYX/9ceA/+6cIP/unyj/87xo//TCdv/vpTX/7pwg//CqQP/99ej///78//O5Yv/ytFf/8bBN/++iLv/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIf/uniX/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/0wnX//vv2//narv/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCH/7pwh/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg//G0V/////7//vz5//rft//98+X//fXo//vq0P/ys1P/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/++kM//43LD/+Nmq//O6Zf/zuWH//fXp//zs1f/wqT3/8Ko///CqQP/vpDH/7pwh/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg//GtR//++/b///////zv2v/0vm7/87xn///+/f/52q3/76Aq/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6dIv/ytVf/+uTD///9+//++fL///38///9+//99Ob//fbq//337v/42qv/76It/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg//K1Wf/99ej//v36//758//64r7/+uO////+/f/41qT/76Ao/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCH/76Qy//K2W//30Zf/+Nqs//jarP/42qv/+Nmq//fYpv/2zI3/76Iv/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg//jbrf/2y4n/8rVX//jVoP/758r/++rQ//fVoP/wqkD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg//CnOv/unSL/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6dIPbunCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7p0g9u6cIMbunCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwgxuybHlzumyD47pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD37JseXO2kJA7unCGV7pwg+O6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIPfunCGV7pkiDwAAAADtpCQO7JseXO6cIMbunSD27pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unCD/7pwg/+6cIP/unSD27pwgxuybHlzumSIPAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==" @@ -33,8 +33,8 @@ func loadHTMLMap() { webUI["html/js/network_ts.js"] = "Y2xhc3MgU2VydmVyIHsKICAgIGNvbnN0cnVjdG9yKGNtZCkgewogICAgICAgIHRoaXMuY21kID0gY21kOwogICAgfQogICAgcmVxdWVzdChkYXRhKSB7CiAgICAgICAgaWYgKFNFUlZFUl9DT05ORUNUSU9OID09IHRydWUpIHsKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KICAgICAgICBTRVJWRVJfQ09OTkVDVElPTiA9IHRydWU7CiAgICAgICAgaWYgKHRoaXMuY21kICE9ICJ1cGRhdGVMb2ciKSB7CiAgICAgICAgICAgIHNob3dFbGVtZW50KCJsb2FkaW5nIiwgdHJ1ZSk7CiAgICAgICAgICAgIFVORE8gPSBuZXcgT2JqZWN0KCk7CiAgICAgICAgfQogICAgICAgIHN3aXRjaCAod2luZG93LmxvY2F0aW9uLnByb3RvY29sKSB7CiAgICAgICAgICAgIGNhc2UgImh0dHA6IjoKICAgICAgICAgICAgICAgIHRoaXMucHJvdG9jb2wgPSAid3M6Ly8iOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgImh0dHBzOiI6CiAgICAgICAgICAgICAgICB0aGlzLnByb3RvY29sID0gIndzczovLyI7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICB9CiAgICAgICAgdmFyIHVybCA9IHRoaXMucHJvdG9jb2wgKyB3aW5kb3cubG9jYXRpb24uaG9zdG5hbWUgKyAiOiIgKyB3aW5kb3cubG9jYXRpb24ucG9ydCArICIvZGF0YS8iICsgIj9Ub2tlbj0iICsgZ2V0Q29va2llKCJUb2tlbiIpOwogICAgICAgIGRhdGFbImNtZCJdID0gdGhpcy5jbWQ7CiAgICAgICAgdmFyIHdzID0gbmV3IFdlYlNvY2tldCh1cmwpOwogICAgICAgIHdzLm9ub3BlbiA9IGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgV1NfQVZBSUxBQkxFID0gdHJ1ZTsKICAgICAgICAgICAgdGhpcy5zZW5kKEpTT04uc3RyaW5naWZ5KGRhdGEpKTsKICAgICAgICB9OwogICAgICAgIHdzLm9uZXJyb3IgPSBmdW5jdGlvbiAod3NFcnJFdnQpIHsKICAgICAgICAgICAgY29uc29sZS5sb2coIk5vIHdlYnNvY2tldCBjb25uZWN0aW9uIHRvIHhUZVZlIGNvdWxkIGJlIGVzdGFibGlzaGVkLiBDaGVjayB5b3VyIG5ldHdvcmsgY29uZmlndXJhdGlvbi4iKTsKICAgICAgICAgICAgU0VSVkVSX0NPTk5FQ1RJT04gPSBmYWxzZTsKICAgICAgICAgICAgaWYgKFdTX0FWQUlMQUJMRSA9PSBmYWxzZSkgewogICAgICAgICAgICAgICAgYWxlcnQoIk5vIHdlYnNvY2tldCBjb25uZWN0aW9uIHRvIHhUZVZlIGNvdWxkIGJlIGVzdGFibGlzaGVkLiBDaGVjayB5b3VyIG5ldHdvcmsgY29uZmlndXJhdGlvbi4iKTsKICAgICAgICAgICAgfQogICAgICAgIH07CiAgICAgICAgd3Mub25tZXNzYWdlID0gZnVuY3Rpb24gKHdzTWVzc2FnZUV2dCkgewogICAgICAgICAgICBTRVJWRVJfQ09OTkVDVElPTiA9IGZhbHNlOwogICAgICAgICAgICBzaG93RWxlbWVudCgibG9hZGluZyIsIGZhbHNlKTsKICAgICAgICAgICAgY29uc3QgcmVzcG9uc2UgPSBKU09OLnBhcnNlKHdzTWVzc2FnZUV2dC5kYXRhKTsKICAgICAgICAgICAgaWYgKHJlc3BvbnNlLmhhc093blByb3BlcnR5KCJ0b2tlbiIpKSB7CiAgICAgICAgICAgICAgICBkb2N1bWVudC5jb29raWUgPSAiVG9rZW49IiArIHJlc3BvbnNlWyJ0b2tlbiJdOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGlmIChyZXNwb25zZVsic3RhdHVzIl0gPT0gZmFsc2UpIHsKICAgICAgICAgICAgICAgIGFsZXJ0KHJlc3BvbnNlWyJlcnIiXSk7CiAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgIH0KICAgICAgICAgICAgaWYgKHJlc3BvbnNlLmhhc093blByb3BlcnR5KCdvcGVuTGluaycpKSB7CiAgICAgICAgICAgICAgICB3aW5kb3cubG9jYXRpb24gPSByZXNwb25zZVsnb3BlbkxpbmsnXTsKICAgICAgICAgICAgfQogICAgICAgICAgICBpZiAocmVzcG9uc2UuaGFzT3duUHJvcGVydHkoInJlbG9hZCIpKSB7CiAgICAgICAgICAgICAgICB3aW5kb3cubG9jYXRpb24ucmVsb2FkKCk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgaWYgKHJlc3BvbnNlLmhhc093blByb3BlcnR5KCJhbGVydCIpKSB7CiAgICAgICAgICAgICAgICBhbGVydChyZXNwb25zZVsiYWxlcnQiXSk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgaWYgKHJlc3BvbnNlLmhhc093blByb3BlcnR5KCJsb2dvVVJMIikpIHsKICAgICAgICAgICAgICAgIHZhciBkaXYgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY2hhbm5lbC1pY29uIik7CiAgICAgICAgICAgICAgICBkaXYudmFsdWUgPSByZXNwb25zZVsibG9nb1VSTCJdOwogICAgICAgICAgICAgICAgZGl2LmNsYXNzTmFtZSA9ICJjaGFuZ2VkIjsKICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgfQogICAgICAgICAgICBzd2l0Y2ggKGRhdGFbImNtZCJdKSB7CiAgICAgICAgICAgICAgICBjYXNlICJ1cGRhdGVMb2ciOgogICAgICAgICAgICAgICAgICAgIFNFUlZFUlsibG9nIl0gPSByZXNwb25zZVsibG9nIl07CiAgICAgICAgICAgICAgICAgICAgaWYgKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb250ZW50X2xvZyIpKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIHNob3dMb2dzKGZhbHNlKTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgICAgICAgICBTRVJWRVIgPSBuZXcgT2JqZWN0KCk7CiAgICAgICAgICAgICAgICAgICAgU0VSVkVSID0gcmVzcG9uc2U7CiAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgaWYgKHJlc3BvbnNlLmhhc093blByb3BlcnR5KCJvcGVuTWVudSIpKSB7CiAgICAgICAgICAgICAgICB2YXIgbWVudSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHJlc3BvbnNlWyJvcGVuTWVudSJdKTsKICAgICAgICAgICAgICAgIG1lbnUuY2xpY2soKTsKICAgICAgICAgICAgICAgIHNob3dFbGVtZW50KCJwb3B1cCIsIGZhbHNlKTsKICAgICAgICAgICAgfQogICAgICAgICAgICBpZiAocmVzcG9uc2UuaGFzT3duUHJvcGVydHkoInJlbG9hZCIpKSB7CiAgICAgICAgICAgICAgICBsb2NhdGlvbi5yZWxvYWQoKTsKICAgICAgICAgICAgfQogICAgICAgICAgICBpZiAocmVzcG9uc2UuaGFzT3duUHJvcGVydHkoIndpemFyZCIpKSB7CiAgICAgICAgICAgICAgICBjcmVhdGVMYXlvdXQoKTsKICAgICAgICAgICAgICAgIGNvbmZpZ3VyYXRpb25XaXphcmRbcmVzcG9uc2VbIndpemFyZCJdXS5jcmVhdGVXaXphcmQoKTsKICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgfQogICAgICAgICAgICBjcmVhdGVMYXlvdXQoKTsKICAgICAgICB9OwogICAgfQp9CmZ1bmN0aW9uIGdldENvb2tpZShuYW1lKSB7CiAgICB2YXIgdmFsdWUgPSAiOyAiICsgZG9jdW1lbnQuY29va2llOwogICAgdmFyIHBhcnRzID0gdmFsdWUuc3BsaXQoIjsgIiArIG5hbWUgKyAiPSIpOwogICAgaWYgKHBhcnRzLmxlbmd0aCA9PSAyKSB7CiAgICAgICAgcmV0dXJuIHBhcnRzLnBvcCgpLnNwbGl0KCI7Iikuc2hpZnQoKTsKICAgIH0KfQo=" webUI["html/js/settings_ts.js"] = "Y2xhc3MgU2V0dGluZ3NDYXRlZ29yeSB7CiAgICBjb25zdHJ1Y3RvcigpIHsKICAgICAgICB0aGlzLkRvY3VtZW50SUQgPSAiY29udGVudF9zZXR0aW5ncyI7CiAgICB9CiAgICBjcmVhdGVDYXRlZ29yeUhlYWRsaW5lKHZhbHVlKSB7CiAgICAgICAgdmFyIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJINCIpOwogICAgICAgIGVsZW1lbnQuaW5uZXJIVE1MID0gdmFsdWU7CiAgICAgICAgcmV0dXJuIGVsZW1lbnQ7CiAgICB9CiAgICBjcmVhdGVIUigpIHsKICAgICAgICB2YXIgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIkhSIik7CiAgICAgICAgcmV0dXJuIGVsZW1lbnQ7CiAgICB9CiAgICBjcmVhdGVTZXR0aW5ncyhzZXR0aW5nc0tleSkgewogICAgICAgIHZhciBzZXR0aW5nID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVFIiKTsKICAgICAgICB2YXIgY29udGVudCA9IG5ldyBQb3B1cENvbnRlbnQoKTsKICAgICAgICB2YXIgZGF0YSA9IFNFUlZFUlsic2V0dGluZ3MiXVtzZXR0aW5nc0tleV07CiAgICAgICAgc3dpdGNoIChzZXR0aW5nc0tleSkgewogICAgICAgICAgICAvLyBUZXh0IGlucHV0cwogICAgICAgICAgICBjYXNlICJ1cGRhdGUiOgogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7CiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLnVwZGF0ZS50aXRsZX19IiArICI6IjsKICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsKICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCAidXBkYXRlIiwgZGF0YS50b1N0cmluZygpKTsKICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3suc2V0dGluZ3MudXBkYXRlLnBsYWNlaG9sZGVyfX0iKTsKICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsKICAgICAgICAgICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQoaW5wdXQpOwogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOwogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJiYWNrdXAucGF0aCI6CiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsKICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MuYmFja3VwUGF0aC50aXRsZX19IiArICI6IjsKICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsKICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCAiYmFja3VwLnBhdGgiLCBkYXRhKTsKICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3suc2V0dGluZ3MuYmFja3VwUGF0aC5wbGFjZWhvbGRlcn19Iik7CiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7CiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsKICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsKICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAidGVtcC5wYXRoIjoKICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOwogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy50ZW1wUGF0aC50aXRsZX19IiArICI6IjsKICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsKICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCAidGVtcC5wYXRoIiwgZGF0YSk7CiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnNldHRpbmdzLnRtcFBhdGgucGxhY2Vob2xkZXJ9fSIpOwogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOwogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7CiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7CiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgInVzZXIuYWdlbnQiOgogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7CiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLnVzZXJBZ2VudC50aXRsZX19IiArICI6IjsKICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsKICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCAidXNlci5hZ2VudCIsIGRhdGEpOwogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5zZXR0aW5ncy51c2VyQWdlbnQucGxhY2Vob2xkZXJ9fSIpOwogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOwogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7CiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7CiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgImJ1ZmZlci50aW1lb3V0IjoKICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOwogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5idWZmZXJUaW1lb3V0LnRpdGxlfX0iICsgIjoiOwogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOwogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsICJidWZmZXIudGltZW91dCIsIGRhdGEpOwogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5zZXR0aW5ncy5idWZmZXJUaW1lb3V0LnBsYWNlaG9sZGVyfX0iKTsKICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsKICAgICAgICAgICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQoaW5wdXQpOwogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOwogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJmZm1wZWcucGF0aCI6CiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsKICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MuZmZtcGVnUGF0aC50aXRsZX19IiArICI6IjsKICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsKICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCAiZmZtcGVnLnBhdGgiLCBkYXRhKTsKICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3suc2V0dGluZ3MuZmZtcGVnUGF0aC5wbGFjZWhvbGRlcn19Iik7CiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7CiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsKICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsKICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAiZmZtcGVnLm9wdGlvbnMiOgogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7CiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmZmbXBlZ09wdGlvbnMudGl0bGV9fSIgKyAiOiI7CiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7CiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgImZmbXBlZy5vcHRpb25zIiwgZGF0YSk7CiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnNldHRpbmdzLmZmbXBlZ09wdGlvbnMucGxhY2Vob2xkZXJ9fSIpOwogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOwogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7CiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7CiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgInZsYy5wYXRoIjoKICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOwogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy52bGNQYXRoLnRpdGxlfX0iICsgIjoiOwogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOwogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsICJ2bGMucGF0aCIsIGRhdGEpOwogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5zZXR0aW5ncy52bGNQYXRoLnBsYWNlaG9sZGVyfX0iKTsKICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsKICAgICAgICAgICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQoaW5wdXQpOwogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOwogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJ2bGMub3B0aW9ucyI6CiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsKICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MudmxjT3B0aW9ucy50aXRsZX19IiArICI6IjsKICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsKICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCAidmxjLm9wdGlvbnMiLCBkYXRhKTsKICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3suc2V0dGluZ3MudmxjT3B0aW9ucy5wbGFjZWhvbGRlcn19Iik7CiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7CiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsKICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsKICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgLy8gQ2hlY2tib3hlcwogICAgICAgICAgICBjYXNlICJ0bHNNb2RlIjoKICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOwogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy50bHNNb2RlLnRpdGxlfX0iICsgIjoiOwogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOwogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChzZXR0aW5nc0tleSk7CiAgICAgICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YTsKICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsKICAgICAgICAgICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQoaW5wdXQpOwogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOwogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJkaXNhbGxvd1VSTER1cGxpY2F0ZXMiOgogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7CiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmRpc2FsbG93VVJMRHVwbGljYXRlcy50aXRsZX19IiArICI6IjsKICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsKICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goc2V0dGluZ3NLZXkpOwogICAgICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGE7CiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7CiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsKICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsKICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAiYXV0aGVudGljYXRpb24ud2ViIjoKICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOwogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5hdXRoZW50aWNhdGlvbldFQi50aXRsZX19IiArICI6IjsKICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsKICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goc2V0dGluZ3NLZXkpOwogICAgICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGE7CiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7CiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsKICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsKICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAiYXV0aGVudGljYXRpb24ucG1zIjoKICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOwogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5hdXRoZW50aWNhdGlvblBNUy50aXRsZX19IiArICI6IjsKICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsKICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goc2V0dGluZ3NLZXkpOwogICAgICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGE7CiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7CiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsKICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsKICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAiYXV0aGVudGljYXRpb24ubTN1IjoKICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOwogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5hdXRoZW50aWNhdGlvbk0zVS50aXRsZX19IiArICI6IjsKICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsKICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goc2V0dGluZ3NLZXkpOwogICAgICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGE7CiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7CiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsKICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsKICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAiYXV0aGVudGljYXRpb24ueG1sIjoKICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOwogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5hdXRoZW50aWNhdGlvblhNTC50aXRsZX19IiArICI6IjsKICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsKICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goc2V0dGluZ3NLZXkpOwogICAgICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGE7CiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7CiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsKICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsKICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAiYXV0aGVudGljYXRpb24uYXBpIjoKICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOwogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5hdXRoZW50aWNhdGlvbkFQSS50aXRsZX19IiArICI6IjsKICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsKICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goc2V0dGluZ3NLZXkpOwogICAgICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGE7CiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7CiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsKICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsKICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAiZmlsZXMudXBkYXRlIjoKICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOwogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5maWxlc1VwZGF0ZS50aXRsZX19IiArICI6IjsKICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsKICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goc2V0dGluZ3NLZXkpOwogICAgICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGE7CiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7CiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsKICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsKICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAiY2FjaGUuaW1hZ2VzIjoKICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOwogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5jYWNoZUltYWdlcy50aXRsZX19IiArICI6IjsKICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsKICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goc2V0dGluZ3NLZXkpOwogICAgICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGE7CiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7CiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsKICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsKICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAieGVwZy5yZXBsYWNlLm1pc3NpbmcuaW1hZ2VzIjoKICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOwogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5yZXBsYWNlRW1wdHlJbWFnZXMudGl0bGV9fSIgKyAiOiI7CiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7CiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KHNldHRpbmdzS2V5KTsKICAgICAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhOwogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOwogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7CiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7CiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgInN0b3JlQnVmZmVySW5SQU0iOgogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7CiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLnN0b3JlQnVmZmVySW5SQU0udGl0bGV9fSIgKyAiOiI7CiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7CiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KHNldHRpbmdzS2V5KTsKICAgICAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhOwogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOwogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7CiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7CiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgInh0ZXZlQXV0b1VwZGF0ZSI6CiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsKICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MueHRldmVBdXRvVXBkYXRlLnRpdGxlfX0iICsgIjoiOwogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOwogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChzZXR0aW5nc0tleSk7CiAgICAgICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YTsKICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsKICAgICAgICAgICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQoaW5wdXQpOwogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOwogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJjbGVhclhNTFRWQ2FjaGUiOgogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7CiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmNsZWFyWE1MVFZDYWNoZS50aXRsZX19IiArICI6IjsKICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsKICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goc2V0dGluZ3NLZXkpOwogICAgICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGE7CiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7CiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsKICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsKICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAiYXBpIjoKICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOwogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5hcGkudGl0bGV9fSIgKyAiOiI7CiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7CiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KHNldHRpbmdzS2V5KTsKICAgICAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhOwogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOwogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChpbnB1dCk7CiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkTGVmdCk7CiAgICAgICAgICAgICAgICBzZXR0aW5nLmFwcGVuZENoaWxkKHRkUmlnaHQpOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgImVuYWJsZU1hcHBlZENoYW5uZWxzIjoKICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOwogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5lbmFibGVNYXBwZWRDaGFubmVscy50aXRsZX19IiArICI6IjsKICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsKICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goc2V0dGluZ3NLZXkpOwogICAgICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGE7CiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7CiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsKICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsKICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgLy8gU2VsZWN0CiAgICAgICAgICAgIGNhc2UgImhvc3RJUCI6CiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsKICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MuaG9zdElQLnRpdGxlfX0iICsgIjoiOwogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOwogICAgICAgICAgICAgICAgdmFyIHRleHQgPSBTRVJWRVJbImlwQWRkcmVzc2VzVjRIb3N0Il07CiAgICAgICAgICAgICAgICB2YXIgdmFsdWVzID0gU0VSVkVSWyJpcEFkZHJlc3Nlc1Y0SG9zdCJdOwogICAgICAgICAgICAgICAgdmFyIHNlbGVjdCA9IGNvbnRlbnQuY3JlYXRlU2VsZWN0KHRleHQsIHZhbHVlcywgZGF0YSwgc2V0dGluZ3NLZXkpOwogICAgICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsKICAgICAgICAgICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQoc2VsZWN0KTsKICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsKICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAiaG9zdE5hbWUiOgogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7CiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLmhvc3ROYW1lLnRpdGxlfX0iICsgIjoiOwogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOwogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsICJob3N0TmFtZSIsIGRhdGEpOwogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5zZXR0aW5ncy5ob3N0TmFtZS5wbGFjZWhvbGRlcn19Iik7CiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7CiAgICAgICAgICAgICAgICB0ZFJpZ2h0LmFwcGVuZENoaWxkKGlucHV0KTsKICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsKICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAidHVuZXIiOgogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7CiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLnR1bmVyLnRpdGxlfX0iICsgIjoiOwogICAgICAgICAgICAgICAgdmFyIHRkUmlnaHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOwogICAgICAgICAgICAgICAgdmFyIHRleHQgPSBuZXcgQXJyYXkoKTsKICAgICAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBuZXcgQXJyYXkoKTsKICAgICAgICAgICAgICAgIGZvciAodmFyIGkgPSAxOyBpIDw9IDEwMDsgaSsrKSB7CiAgICAgICAgICAgICAgICAgICAgdGV4dC5wdXNoKGkpOwogICAgICAgICAgICAgICAgICAgIHZhbHVlcy5wdXNoKGkpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgdmFyIHNlbGVjdCA9IGNvbnRlbnQuY3JlYXRlU2VsZWN0KHRleHQsIHZhbHVlcywgZGF0YSwgc2V0dGluZ3NLZXkpOwogICAgICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsKICAgICAgICAgICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQoc2VsZWN0KTsKICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRMZWZ0KTsKICAgICAgICAgICAgICAgIHNldHRpbmcuYXBwZW5kQ2hpbGQodGRSaWdodCk7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAiZXBnU291cmNlIjoKICAgICAgICAgICAgICAgIHZhciB0ZExlZnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOwogICAgICAgICAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICJ7ey5zZXR0aW5ncy5lcGdTb3VyY2UudGl0bGV9fSIgKyAiOiI7CiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7CiAgICAgICAgICAgICAgICB2YXIgdGV4dCA9IFsiUE1TIiwgIlhFUEciXTsKICAgICAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBbIlBNUyIsICJYRVBHIl07CiAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCBkYXRhLCBzZXR0aW5nc0tleSk7CiAgICAgICAgICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOwogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChzZWxlY3QpOwogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOwogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJkZWZhdWx0TWlzc2luZ0VQRyI6CiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsKICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MuZGVmYXVsdE1pc3NpbmdFUEcudGl0bGV9fSIgKyAiOiI7CiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7CiAgICAgICAgICAgICAgICB2YXIgdGV4dCA9IFsKICAgICAgICAgICAgICAgICAgICAiLSIsICIzMCBNaW51dGVzICgzMF9NaW51dGVzKSIsICI2MCBNaW51dGVzICg2MF9NaW51dGVzKSIsICI5MCBNaW51dGVzICg5MF9NaW51dGVzKSIsCiAgICAgICAgICAgICAgICAgICAgIjEyMCBNaW51dGVzICgxMjBfTWludXRlcykiLCAiMTgwIE1pbnV0ZXMgKDE4MF9NaW51dGVzKSIsICIyNDAgTWludXRlcyAoMjQwX01pbnV0ZXMpIiwgIjM2MCBNaW51dGVzICgzNjBfTWludXRlcykiCiAgICAgICAgICAgICAgICBdOwogICAgICAgICAgICAgICAgdmFyIHZhbHVlcyA9IFsKICAgICAgICAgICAgICAgICAgICAiLSIsICIzMF9NaW51dGVzIiwgIjYwX01pbnV0ZXMiLCAiOTBfTWludXRlcyIsICIxMjBfTWludXRlcyIsICIxODBfTWludXRlcyIsICIyNDBfTWludXRlcyIsICIzNjBfTWludXRlcyIKICAgICAgICAgICAgICAgIF07CiAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCBkYXRhLCBzZXR0aW5nc0tleSk7CiAgICAgICAgICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOwogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChzZWxlY3QpOwogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOwogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJiYWNrdXAua2VlcCI6CiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsKICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MuYmFja3VwS2VlcC50aXRsZX19IiArICI6IjsKICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsKICAgICAgICAgICAgICAgIHZhciB0ZXh0ID0gWyI1IiwgIjEwIiwgIjIwIiwgIjMwIiwgIjQwIiwgIjUwIl07CiAgICAgICAgICAgICAgICB2YXIgdmFsdWVzID0gWyI1IiwgIjEwIiwgIjIwIiwgIjMwIiwgIjQwIiwgIjUwIl07CiAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCBkYXRhLCBzZXR0aW5nc0tleSk7CiAgICAgICAgICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOwogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChzZWxlY3QpOwogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOwogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJidWZmZXIuc2l6ZS5rYiI6CiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsKICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MuYnVmZmVyU2l6ZS50aXRsZX19IiArICI6IjsKICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsKICAgICAgICAgICAgICAgIHZhciB0ZXh0ID0gWyIwLjUgTUIiLCAiMSBNQiIsICIyIE1CIiwgIjMgTUIiLCAiNCBNQiIsICI1IE1CIiwgIjYgTUIiLCAiNyBNQiIsICI4IE1CIl07CiAgICAgICAgICAgICAgICB2YXIgdmFsdWVzID0gWyI1MTIiLCAiMTAyNCIsICIyMDQ4IiwgIjMwNzIiLCAiNDA5NiIsICI1MTIwIiwgIjYxNDQiLCAiNzE2OCIsICI4MTkyIl07CiAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCBkYXRhLCBzZXR0aW5nc0tleSk7CiAgICAgICAgICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOwogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChzZWxlY3QpOwogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOwogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJidWZmZXIiOgogICAgICAgICAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7CiAgICAgICAgICAgICAgICB0ZExlZnQuaW5uZXJIVE1MID0gInt7LnNldHRpbmdzLnN0cmVhbUJ1ZmZlcmluZy50aXRsZX19IiArICI6IjsKICAgICAgICAgICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsKICAgICAgICAgICAgICAgIHZhciB0ZXh0ID0gWyJ7ey5zZXR0aW5ncy5zdHJlYW1CdWZmZXJpbmcuaW5mb19mYWxzZX19IiwgInhUZVZlOiAoe3suc2V0dGluZ3Muc3RyZWFtQnVmZmVyaW5nLmluZm9feHRldmV9fSkiLCAiRkZtcGVnOiAoe3suc2V0dGluZ3Muc3RyZWFtQnVmZmVyaW5nLmluZm9fZmZtcGVnfX0pIiwgIlZMQzogKHt7LnNldHRpbmdzLnN0cmVhbUJ1ZmZlcmluZy5pbmZvX3ZsY319KSJdOwogICAgICAgICAgICAgICAgdmFyIHZhbHVlcyA9IFsiLSIsICJ4dGV2ZSIsICJmZm1wZWciLCAidmxjIl07CiAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCBkYXRhLCBzZXR0aW5nc0tleSk7CiAgICAgICAgICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOwogICAgICAgICAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChzZWxlY3QpOwogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOwogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJ1ZHB4eSI6CiAgICAgICAgICAgICAgICB2YXIgdGRMZWZ0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsKICAgICAgICAgICAgICAgIHRkTGVmdC5pbm5lckhUTUwgPSAie3suc2V0dGluZ3MudWRweHkudGl0bGV9fSIgKyAiOiI7CiAgICAgICAgICAgICAgICB2YXIgdGRSaWdodCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7CiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgInVkcHh5IiwgZGF0YSk7CiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnNldHRpbmdzLnVkcHh5LnBsYWNlaG9sZGVyfX0iKTsKICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsKICAgICAgICAgICAgICAgIHRkUmlnaHQuYXBwZW5kQ2hpbGQoaW5wdXQpOwogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZExlZnQpOwogICAgICAgICAgICAgICAgc2V0dGluZy5hcHBlbmRDaGlsZCh0ZFJpZ2h0KTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgIH0KICAgICAgICByZXR1cm4gc2V0dGluZzsKICAgIH0KICAgIGNyZWF0ZURlc2NyaXB0aW9uKHNldHRpbmdzS2V5KSB7CiAgICAgICAgdmFyIGRlc2NyaXB0aW9uID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVFIiKTsKICAgICAgICB2YXIgdGV4dDsKICAgICAgICBzd2l0Y2ggKHNldHRpbmdzS2V5KSB7CiAgICAgICAgICAgIGNhc2UgInRsc01vZGUiOgogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy50bHNNb2RlLmRlc2NyaXB0aW9ufX0iOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgImRpc2FsbG93VVJMRHVwbGljYXRlcyI6CiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLmRpc2FsbG93VVJMRHVwbGljYXRlcy5kZXNjcmlwdGlvbn19IjsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJhdXRoZW50aWNhdGlvbi53ZWIiOgogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5hdXRoZW50aWNhdGlvbldFQi5kZXNjcmlwdGlvbn19IjsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJhdXRoZW50aWNhdGlvbi5tM3UiOgogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5hdXRoZW50aWNhdGlvbk0zVS5kZXNjcmlwdGlvbn19IjsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJhdXRoZW50aWNhdGlvbi5wbXMiOgogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5hdXRoZW50aWNhdGlvblBNUy5kZXNjcmlwdGlvbn19IjsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJhdXRoZW50aWNhdGlvbi54bWwiOgogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5hdXRoZW50aWNhdGlvblhNTC5kZXNjcmlwdGlvbn19IjsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJhdXRoZW50aWNhdGlvbi5hcGkiOgogICAgICAgICAgICAgICAgaWYgKFNFUlZFUlsic2V0dGluZ3MiXVsiYXV0aGVudGljYXRpb24ud2ViIl0gPT0gdHJ1ZSkgewogICAgICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MuYXV0aGVudGljYXRpb25BUEkuZGVzY3JpcHRpb259fSI7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAieHRldmVBdXRvVXBkYXRlIjoKICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MueHRldmVBdXRvVXBkYXRlLmRlc2NyaXB0aW9ufX0iOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgImJhY2t1cC5rZWVwIjoKICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MuYmFja3VwS2VlcC5kZXNjcmlwdGlvbn19IjsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJiYWNrdXAucGF0aCI6CiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLmJhY2t1cFBhdGguZGVzY3JpcHRpb259fSI7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAidGVtcC5wYXRoIjoKICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MudGVtcFBhdGguZGVzY3JpcHRpb259fSI7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAiYnVmZmVyIjoKICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3Muc3RyZWFtQnVmZmVyaW5nLmRlc2NyaXB0aW9ufX0iOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgImJ1ZmZlci5zaXplLmtiIjoKICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MuYnVmZmVyU2l6ZS5kZXNjcmlwdGlvbn19IjsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJzdG9yZUJ1ZmZlckluUkFNIjoKICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3Muc3RvcmVCdWZmZXJJblJBTS5kZXNjcmlwdGlvbn19IjsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJidWZmZXIudGltZW91dCI6CiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLmJ1ZmZlclRpbWVvdXQuZGVzY3JpcHRpb259fSI7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAidXNlci5hZ2VudCI6CiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLnVzZXJBZ2VudC5kZXNjcmlwdGlvbn19IjsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJmZm1wZWcucGF0aCI6CiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLmZmbXBlZ1BhdGguZGVzY3JpcHRpb259fSI7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAiZmZtcGVnLm9wdGlvbnMiOgogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5mZm1wZWdPcHRpb25zLmRlc2NyaXB0aW9ufX0iOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgInZsYy5wYXRoIjoKICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MudmxjUGF0aC5kZXNjcmlwdGlvbn19IjsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJ2bGMub3B0aW9ucyI6CiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLnZsY09wdGlvbnMuZGVzY3JpcHRpb259fSI7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAiZXBnU291cmNlIjoKICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MuZXBnU291cmNlLmRlc2NyaXB0aW9ufX0iOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgImhvc3RJUCI6CiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLmhvc3RJUC5kZXNjcmlwdGlvbn19IjsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJob3N0TmFtZSI6CiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLmhvc3ROYW1lLmRlc2NyaXB0aW9ufX0iOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgInR1bmVyIjoKICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MudHVuZXIuZGVzY3JpcHRpb259fSI7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAidXBkYXRlIjoKICAgICAgICAgICAgICAgIHRleHQgPSAie3suc2V0dGluZ3MudXBkYXRlLmRlc2NyaXB0aW9ufX0iOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgImNsZWFyWE1MVFZDYWNoZSI6CiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLmNsZWFyWE1MVFZDYWNoZS5kZXNjcmlwdGlvbn19IjsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJhcGkiOgogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5hcGkuZGVzY3JpcHRpb259fSI7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAiZGVmYXVsdE1pc3NpbmdFUEciOgogICAgICAgICAgICAgICAgdGV4dCA9ICJ7ey5zZXR0aW5ncy5kZWZhdWx0TWlzc2luZ0VQRy5kZXNjcmlwdGlvbn19IjsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJlbmFibGVNYXBwZWRDaGFubmVscyI6CiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLmVuYWJsZU1hcHBlZENoYW5uZWxzLmRlc2NyaXB0aW9ufX0iOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgImZpbGVzLnVwZGF0ZSI6CiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLmZpbGVzVXBkYXRlLmRlc2NyaXB0aW9ufX0iOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgImNhY2hlLmltYWdlcyI6CiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLmNhY2hlSW1hZ2VzLmRlc2NyaXB0aW9ufX0iOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgInhlcGcucmVwbGFjZS5taXNzaW5nLmltYWdlcyI6CiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLnJlcGxhY2VFbXB0eUltYWdlcy5kZXNjcmlwdGlvbn19IjsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJ1ZHB4eSI6CiAgICAgICAgICAgICAgICB0ZXh0ID0gInt7LnNldHRpbmdzLnVkcHh5LmRlc2NyaXB0aW9ufX0iOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICAgICB0ZXh0ID0gIiI7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICB9CiAgICAgICAgdmFyIHRkTGVmdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7CiAgICAgICAgdGRMZWZ0LmlubmVySFRNTCA9ICIiOwogICAgICAgIHZhciB0ZFJpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEQiKTsKICAgICAgICB2YXIgcHJlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiUFJFIik7CiAgICAgICAgcHJlLmlubmVySFRNTCA9IHRleHQ7CiAgICAgICAgdGRSaWdodC5hcHBlbmRDaGlsZChwcmUpOwogICAgICAgIGRlc2NyaXB0aW9uLmFwcGVuZENoaWxkKHRkTGVmdCk7CiAgICAgICAgZGVzY3JpcHRpb24uYXBwZW5kQ2hpbGQodGRSaWdodCk7CiAgICAgICAgcmV0dXJuIGRlc2NyaXB0aW9uOwogICAgfQp9CmNsYXNzIFNldHRpbmdzQ2F0ZWdvcnlJdGVtIGV4dGVuZHMgU2V0dGluZ3NDYXRlZ29yeSB7CiAgICBjb25zdHJ1Y3RvcihoZWFkbGluZSwgc2V0dGluZ3NLZXlzKSB7CiAgICAgICAgc3VwZXIoKTsKICAgICAgICB0aGlzLmhlYWRsaW5lID0gaGVhZGxpbmU7CiAgICAgICAgdGhpcy5zZXR0aW5nc0tleXMgPSBzZXR0aW5nc0tleXM7CiAgICB9CiAgICBjcmVhdGVDYXRlZ29yeSgpIHsKICAgICAgICB2YXIgaGVhZGxpbmUgPSB0aGlzLmNyZWF0ZUNhdGVnb3J5SGVhZGxpbmUodGhpcy5oZWFkbGluZSk7CiAgICAgICAgdmFyIHNldHRpbmdzS2V5cyA9IHRoaXMuc2V0dGluZ3NLZXlzOwogICAgICAgIHZhciBkb2MgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCh0aGlzLkRvY3VtZW50SUQpOwogICAgICAgIGRvYy5hcHBlbmRDaGlsZChoZWFkbGluZSk7CiAgICAgICAgLy8gQ3JlYXRlIGEgdGFibGUgZm9yIHRoZSBjYXRlZ29yeQogICAgICAgIHZhciB0YWJsZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlRBQkxFIik7CiAgICAgICAgdmFyIGtleXMgPSBzZXR0aW5nc0tleXMuc3BsaXQoIiwiKTsKICAgICAgICBrZXlzLmZvckVhY2goc2V0dGluZ3NLZXkgPT4gewogICAgICAgICAgICBzd2l0Y2ggKHNldHRpbmdzS2V5KSB7CiAgICAgICAgICAgICAgICBjYXNlICJhdXRoZW50aWNhdGlvbi5wbXMiOgogICAgICAgICAgICAgICAgY2FzZSAiYXV0aGVudGljYXRpb24ubTN1IjoKICAgICAgICAgICAgICAgIGNhc2UgImF1dGhlbnRpY2F0aW9uLnhtbCI6CiAgICAgICAgICAgICAgICBjYXNlICJhdXRoZW50aWNhdGlvbi5hcGkiOgogICAgICAgICAgICAgICAgICAgIGlmIChTRVJWRVJbInNldHRpbmdzIl1bImF1dGhlbnRpY2F0aW9uLndlYiJdID09IGZhbHNlKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICAgICAgICAgdmFyIGl0ZW0gPSB0aGlzLmNyZWF0ZVNldHRpbmdzKHNldHRpbmdzS2V5KTsKICAgICAgICAgICAgICAgICAgICB2YXIgZGVzY3JpcHRpb24gPSB0aGlzLmNyZWF0ZURlc2NyaXB0aW9uKHNldHRpbmdzS2V5KTsKICAgICAgICAgICAgICAgICAgICB0YWJsZS5hcHBlbmRDaGlsZChpdGVtKTsKICAgICAgICAgICAgICAgICAgICB0YWJsZS5hcHBlbmRDaGlsZChkZXNjcmlwdGlvbik7CiAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIH0KICAgICAgICB9KTsKICAgICAgICBkb2MuYXBwZW5kQ2hpbGQodGFibGUpOwogICAgICAgIGRvYy5hcHBlbmRDaGlsZCh0aGlzLmNyZWF0ZUhSKCkpOwogICAgfQp9CmZ1bmN0aW9uIHNob3dTZXR0aW5ncygpIHsKICAgIGZvciAobGV0IGkgPSAwOyBpIDwgc2V0dGluZ3NDYXRlZ29yeS5sZW5ndGg7IGkrKykgewogICAgICAgIHNldHRpbmdzQ2F0ZWdvcnlbaV0uY3JlYXRlQ2F0ZWdvcnkoKTsKICAgIH0KfQpmdW5jdGlvbiBzYXZlU2V0dGluZ3MoKSB7CiAgICB2YXIgY21kID0gInNhdmVTZXR0aW5ncyI7CiAgICB2YXIgZGl2ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnRlbnRfc2V0dGluZ3MiKTsKICAgIHZhciBzZXR0aW5ncyA9IGRpdi5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCJjaGFuZ2VkIik7CiAgICB2YXIgbmV3U2V0dGluZ3MgPSBuZXcgT2JqZWN0KCk7CiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHNldHRpbmdzLmxlbmd0aDsgaSsrKSB7CiAgICAgICAgdmFyIG5hbWU7CiAgICAgICAgdmFyIHZhbHVlOwogICAgICAgIHN3aXRjaCAoc2V0dGluZ3NbaV0udGFnTmFtZSkgewogICAgICAgICAgICBjYXNlICJJTlBVVCI6CiAgICAgICAgICAgICAgICBzd2l0Y2ggKHNldHRpbmdzW2ldLnR5cGUpIHsKICAgICAgICAgICAgICAgICAgICBjYXNlICJjaGVja2JveCI6CiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWUgPSBzZXR0aW5nc1tpXS5uYW1lOwogICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IHNldHRpbmdzW2ldLmNoZWNrZWQ7CiAgICAgICAgICAgICAgICAgICAgICAgIG5ld1NldHRpbmdzW25hbWVdID0gdmFsdWU7CiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICAgIGNhc2UgInRleHQiOgogICAgICAgICAgICAgICAgICAgICAgICBuYW1lID0gc2V0dGluZ3NbaV0ubmFtZTsKICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSBzZXR0aW5nc1tpXS52YWx1ZTsKICAgICAgICAgICAgICAgICAgICAgICAgc3dpdGNoIChuYW1lKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYXNlICJ1cGRhdGUiOgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlID0gdmFsdWUuc3BsaXQoIiwiKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IHZhbHVlLmZpbHRlcihmdW5jdGlvbiAoZSkgeyByZXR1cm4gZTsgfSk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYXNlICJidWZmZXIudGltZW91dCI6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSBwYXJzZUZsb2F0KHZhbHVlKTsKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICBuZXdTZXR0aW5nc1tuYW1lXSA9IHZhbHVlOwogICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJTRUxFQ1QiOgogICAgICAgICAgICAgICAgbmFtZSA9IHNldHRpbmdzW2ldLm5hbWU7CiAgICAgICAgICAgICAgICB2YWx1ZSA9IHNldHRpbmdzW2ldLnZhbHVlOwogICAgICAgICAgICAgICAgLy8gSWYgdGhlIHZhbHVlIGlzIGEgbnVtYmVyLCBzdG9yZSBpdCBhcyBhIG51bWJlcgogICAgICAgICAgICAgICAgaWYgKGlzTmFOKHZhbHVlKSkgewogICAgICAgICAgICAgICAgICAgIG5ld1NldHRpbmdzW25hbWVdID0gdmFsdWU7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgICAgICBuZXdTZXR0aW5nc1tuYW1lXSA9IHBhcnNlSW50KHZhbHVlKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgIH0KICAgIH0KICAgIHZhciBkYXRhID0gbmV3IE9iamVjdCgpOwogICAgZGF0YVsic2V0dGluZ3MiXSA9IG5ld1NldHRpbmdzOwogICAgdmFyIHNlcnZlciA9IG5ldyBTZXJ2ZXIoY21kKTsKICAgIHNlcnZlci5yZXF1ZXN0KGRhdGEpOwp9Cg==" webUI["html/lang/en.json"] = "ewogICJtYWluTWVudSI6IHsKICAgICJpdGVtIjogewogICAgICAicGxheWxpc3QiOiAiUGxheWxpc3QiLAogICAgICAicG1zSUQiOiAiUE1TIElEIiwKICAgICAgImZpbHRlciI6ICJGaWx0ZXIiLAogICAgICAieG1sdHYiOiAiWE1MVFYiLAogICAgICAibWFwcGluZyI6ICJNYXBwaW5nIiwKICAgICAgInVzZXJzIjogIlVzZXJzIiwKICAgICAgInNldHRpbmdzIjogIlNldHRpbmdzIiwKICAgICAgImxvZyI6ICJMb2ciLAogICAgICAibG9nb3V0IjogIkxvZ291dCIKICAgIH0sCiAgICAiaGVhZGxpbmUiOiB7CiAgICAgICJwbGF5bGlzdCI6ICJMb2NhbCBvciByZW1vdGUgcGxheWxpc3RzIiwKICAgICAgImZpbHRlciI6ICJGaWx0ZXIgcGxheWxpc3QiLAogICAgICAieG1sdHYiOiAiTG9jYWwgb3IgcmVtb3RlIFhNTFRWIGZpbGVzIiwKICAgICAgIm1hcHBpbmciOiAiTWFwIHBsYXlsaXN0IGNoYW5uZWxzIHRvIEVQRyBjaGFubmVscyIsCiAgICAgICJ1c2VycyI6ICJVc2VyIG1hbmFnZW1lbnQiLAogICAgICAic2V0dGluZ3MiOiAiU2V0dGluZ3MiLAogICAgICAibG9nIjogIkxvZyIsCiAgICAgICJsb2dvdXQiOiAiTG9nb3V0IgogICAgfQogIH0sCiAgImNvbmZpcm0iOiB7CiAgICAicmVzdG9yZSI6ICJBbGwgZGF0YSB3aWxsIGJlIHJlcGxhY2VkIHdpdGggdGhvc2UgZnJvbSB0aGUgYmFja3VwLiBTaG91bGQgdGhlIGZpbGVzIGJlIHJlc3RvcmVkPyIKICB9LAogICJhbGVydCI6IHsKICAgICJmaWxlTG9hZGluZ0Vycm9yIjogIkZpbGUgY291bGRuJ3QgYmUgbG9hZGVkIiwKICAgICJpbnZhbGlkQ2hhbm5lbE51bWJlciI6ICJJbnZhbGlkIGNoYW5uZWwgbnVtYmVyIiwKICAgICJtaXNzaW5nSW5wdXQiOiAiTWlzc2luZyBpbnB1dCIKICB9LAogICJidXR0b24iOiB7CiAgICAiYmFjayI6ICJCYWNrIiwKICAgICJiYWNrdXAiOiAiQmFja3VwIiwKICAgICJidWxrRWRpdCI6ICJCdWxrIEVkaXQiLAogICAgImNhbmNlbCI6ICJDYW5jZWwiLAogICAgImRlbGV0ZSI6ICJEZWxldGUiLAogICAgImRvbmUiOiAiRG9uZSIsCiAgICAibG9naW4iOiAiTG9naW4iLAogICAgIm5ldyI6ICJOZXciLAogICAgIm5leHQiOiAiTmV4dCIsCiAgICAicmVzdG9yZSI6ICJSZXN0b3JlIiwKICAgICJzYXZlIjogIlNhdmUiLAogICAgInNlYXJjaCI6ICJTZWFyY2giLAogICAgInVwZGF0ZSI6ICJVcGRhdGUiLAogICAgImNyYWV0ZUFjY291bnQiOiAiQ3JlYXRlIEFjY291bnQiLAogICAgInJlc2V0TG9ncyI6ICJSZXNldCBMb2dzIiwKICAgICJ1cGxvYWRMb2dvIjogIlVwbG9hZCBMb2dvIgogIH0sCiAgImZpbHRlciI6IHsKICAgICJ0YWJsZSI6IHsKICAgICAgInN0YXJ0aW5nQ2hhbm5lbCI6ICJTdGFydGluZyBDaC4gTm8uIiwKICAgICAgIm5hbWUiOiAiRmlsdGVyIE5hbWUiLAogICAgICAidHlwZSI6ICJGaWx0ZXIgVHlwZSIsCiAgICAgICJmaWx0ZXIiOiAiRmlsdGVyIgogICAgfSwKICAgICJjdXN0b20iOiAiQ3VzdG9tIiwKICAgICJncm91cCI6ICJNM1UgR3JvdXAiLAogICAgIm5hbWUiOiB7CiAgICAgICJ0aXRsZSI6ICJGaWx0ZXIgTmFtZSIsCiAgICAgICJwbGFjZWhvbGRlciI6ICJGaWx0ZXIgbmFtZSIsCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiCiAgICB9LAogICAgImRlc2NyaXB0aW9uIjogewogICAgICAidGl0bGUiOiAiRGVzY3JpcHRpb24iLAogICAgICAicGxhY2Vob2xkZXIiOiAiRGVzY3JpcHRpb24iLAogICAgICAiZGVzY3JpcHRpb24iOiAiIgogICAgfSwKICAgICJ0eXBlIjogewogICAgICAidGl0bGUiOiAiVHlwZSIsCiAgICAgICJncm91cFRpdGxlIjogIkdyb3VwIFRpdGxlIiwKICAgICAgImN1c3RvbUZpbHRlciI6ICJDdXN0b20gRmlsdGVyIgogICAgfSwKICAgICJjYXNlU2Vuc2l0aXZlIjogewogICAgICAidGl0bGUiOiAiQ2FzZSBTZW5zaXRpdmUiLAogICAgICAicGxhY2Vob2xkZXIiOiAiIiwKICAgICAgImRlc2NyaXB0aW9uIjogIiIKICAgIH0sCiAgICAiZmlsdGVyUnVsZSI6IHsKICAgICAgInRpdGxlIjogIkZpbHRlciBSdWxlIiwKICAgICAgInBsYWNlaG9sZGVyIjogIlNwb3J0IHtIRH0gIXtFUyxJVH0iLAogICAgICAiZGVzY3JpcHRpb24iOiAiIgogICAgfSwKICAgICJmaWx0ZXJHcm91cCI6IHsKICAgICAgInRpdGxlIjogIkdyb3VwIFRpdGxlIiwKICAgICAgInBsYWNlaG9sZGVyIjogIiIsCiAgICAgICJkZXNjcmlwdGlvbiI6ICJTZWxlY3QgYSBNM1UgZ3JvdXAuIChDb3VudGVyKTxicj5DaGFuZ2luZyB0aGUgZ3JvdXAgdGl0bGUgaW4gdGhlIE0zVSBpbnZhbGlkYXRlcyB0aGUgZmlsdGVyLiIKICAgIH0sCiAgICAiaW5jbHVkZSI6IHsKICAgICAgInRpdGxlIjogIkluY2x1ZGUiLAogICAgICAicGxhY2Vob2xkZXIiOiAiRkhELFVIRCIsCiAgICAgICJkZXNjcmlwdGlvbiI6ICJDaGFubmVsIG5hbWUgbXVzdCBpbmNsdWRlLjxicj4oQ29tbWEgc2VwYXJhdGVkKSBDb21tYSBtZWFucyBvciIKICAgIH0sCiAgICAiZXhjbHVkZSI6IHsKICAgICAgInRpdGxlIjogIkV4Y2x1ZGUiLAogICAgICAicGxhY2Vob2xkZXIiOiAiRVMsSVQiLAogICAgICAiZGVzY3JpcHRpb24iOiAiQ2hhbm5lbCBuYW1lIG11c3Qgbm90IGNvbnRhaW4uPGJyPihDb21tYSBzZXBhcmF0ZWQpIENvbW1hIG1lYW5zIG9yIgogICAgfSwKICAgICJwcmVzZXJ2ZU1hcHBpbmciOiB7CiAgICAgICJ0aXRsZSI6ICJQcmVzZXJ2ZSBFeGlzdGluZyBNM1U8YnI+Q2hhbm5lbCBOdW1iZXJzIiwKICAgICAgInBhbGNlaG9sZGVyIjogIiIsCiAgICAgICJkZXNjcmlwdGlvbiI6ICJQcmVzZXJ2ZSBleGlzdGluZyBNM1UgcGxheWxpc3QgY2hhbm5lbCBudW1iZXJzPyIKICAgIH0sCiAgICAic3RhcnRpbmdDaGFubmVsIjogewogICAgICAidGl0bGUiOiAiU3RhcnRpbmcgQ2hhbm5lbCBOdW1iZXIiLAogICAgICAicGxhY2Vob2xkZXIiOiAiIiwKICAgICAgImRlc2NyaXB0aW9uIjogIiIKICAgIH0KICB9LAogICJwbGF5bGlzdCI6IHsKICAgICJ0YWJsZSI6IHsKICAgICAgInBsYXlsaXN0IjogIlBsYXlsaXN0IiwKICAgICAgInR1bmVyIjogIlR1bmVyIiwKICAgICAgImxhc3RVcGRhdGUiOiAiTGFzdCBVcGRhdGUiLAogICAgICAiYXZhaWxhYmlsaXR5IjogIkF2YWlsYWJpbGl0eSIsCiAgICAgICJ0eXBlIjogIlR5cGUiLAogICAgICAic3RyZWFtcyI6ICJTdHJlYW1zIiwKICAgICAgImdyb3VwVGl0bGUiOiAiZ3JvdXAtdGl0bGUiLAogICAgICAidHZnSUQiOiAidHZnLWlkIiwKICAgICAgInVuaXF1ZUlEIjogIlVuaXF1ZSBJRCIKICAgIH0sCiAgICAicGxheWxpc3RUeXBlIjogewogICAgICAidGl0bGUiOiAiUGxheWxpc3QgdHlwZSIsCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLAogICAgICAiZGVzY3JpcHRpb24iOiAiIgogICAgfSwKICAgICJ0eXBlIjogewogICAgICAidGl0bGUiOiAiVHlwZSIsCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLAogICAgICAiZGVzY3JpcHRpb24iOiAiIgogICAgfSwKICAgICJuYW1lIjogewogICAgICAidGl0bGUiOiAiTmFtZSIsCiAgICAgICJwbGFjZWhvbGRlciI6ICJQbGF5bGlzdCBuYW1lIiwKICAgICAgImRlc2NyaXB0aW9uIjogIiIKICAgIH0sCiAgICAiZGVzY3JpcHRpb24iOiB7CiAgICAgICJ0aXRsZSI6ICJEZXNjcmlwdGlvbiIsCiAgICAgICJwbGFjZWhvbGRlciI6ICJEZXNjcmlwdGlvbiIsCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiCiAgICB9LAogICAgImZpbGVNM1UiOiB7CiAgICAgICJ0aXRsZSI6ICJNM1UgRmlsZSIsCiAgICAgICJwbGFjZWhvbGRlciI6ICJGaWxlIHBhdGggb3IgVVJMIG9mIHRoZSBNM1UiLAogICAgICAiZGVzY3JpcHRpb24iOiAiIgogICAgfSwKICAgICJmaWxlSERIUiI6IHsKICAgICAgInRpdGxlIjogIkhESG9tZVJ1biBJUCIsCiAgICAgICJwbGFjZWhvbGRlciI6ICJJUCBhZGRyZXNzIGFuZCBwb3J0ICgxOTIuMTY4LjEuMTA6NTAwNCkiLAogICAgICAiZGVzY3JpcHRpb24iOiAiIgogICAgfSwKICAgICJ0dW5lciI6IHsKICAgICAgInRpdGxlIjogIlR1bmVyIC8gU3RyZWFtcyIsCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLAogICAgICAiZGVzY3JpcHRpb24iOiAiTnVtYmVyIG9mIHBhcmFsbGVsIGNvbm5lY3Rpb25zIHRoYXQgY2FuIGJlIGVzdGFibGlzaGVkIHRvIHRoZSBwcm92aWRlci4gPGJyPk9ubHkgYXZhaWxhYmxlIHdpdGggYWN0aXZhdGVkIGJ1ZmZlci48YnI+TmV3IHNldHRpbmdzIHdpbGwgb25seSBiZSBhcHBsaWVkIGFmdGVyIHF1aXR0aW5nIGFsbCBzdHJlYW1zLiIKICAgIH0KICB9LAogICJ4bWx0diI6IHsKICAgICJ0YWJsZSI6IHsKICAgICAgImd1aWRlIjogIkd1aWRlIiwKICAgICAgImxhc3RVcGRhdGUiOiAiTGFzdCBVcGRhdGUiLAogICAgICAiYXZhaWxhYmlsaXR5IjogIkF2YWlsYWJpbGl0eSIsCiAgICAgICJjaGFubmVscyI6ICJDaGFubmVscyIsCiAgICAgICJwcm9ncmFtcyI6ICJQcm9ncmFtcyIKICAgIH0sCiAgICAibmFtZSI6IHsKICAgICAgInRpdGxlIjogIk5hbWUiLAogICAgICAicGxhY2Vob2xkZXIiOiAiR3VpZGUgbmFtZSIsCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiCiAgICB9LAogICAgImRlc2NyaXB0aW9uIjogewogICAgICAidGl0bGUiOiAiRGVzY3JpcHRpb24iLAogICAgICAicGxhY2Vob2xkZXIiOiAiRGVzY3JpcHRpb24iLAogICAgICAiZGVzY3JpcHRpb24iOiAiIgogICAgfSwKICAgICJmaWxlWE1MVFYiOiB7CiAgICAgICJ0aXRsZSI6ICJYTUxUViBGaWxlIiwKICAgICAgInBsYWNlaG9sZGVyIjogIkZpbGUgcGF0aCBvciBVUkwgb2YgdGhlIFhNTFRWIiwKICAgICAgImRlc2NyaXB0aW9uIjogIiIKICAgIH0KICB9LAogICJtYXBwaW5nIjogewogICAgInRhYmxlIjogewogICAgICAiY2hObyI6ICJDaC4gTm8uIiwKICAgICAgImxvZ28iOiAiTG9nbyIsCiAgICAgICJjaGFubmVsTmFtZSI6ICJDaGFubmVsIE5hbWUiLAogICAgICAidXBkYXRlQ2hhbm5lbE5hbWVSZWdleCI6ICJVcGQuIFJ4LiIsCiAgICAgICJwbGF5bGlzdCI6ICJQbGF5bGlzdCIsCiAgICAgICJncm91cFRpdGxlIjogIkdyb3VwIFRpdGxlIiwKICAgICAgInhtbHR2RmlsZSI6ICJYTUxUViBGaWxlIiwKICAgICAgInhtbHR2SUQiOiAiWE1MVFYgSUQiLAogICAgICAidGltZXNoaWZ0IjogIlRpbWVzaGlmdCIKICAgIH0sCiAgICAiYWN0aXZlIjogewogICAgICAidGl0bGUiOiAiQWN0aXZlIiwKICAgICAgInBsYWNlaG9sZGVyIjogIiIsCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiCiAgICB9LAogICAgImNoYW5uZWxOYW1lIjogewogICAgICAidGl0bGUiOiAiQ2hhbm5lbCBOYW1lIiwKICAgICAgInBsYWNlaG9sZGVyIjogIiIsCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiCiAgICB9LAogICAgImRlc2NyaXB0aW9uIjogewogICAgICAidGl0bGUiOiAiQ2hhbm5lbCBEZXNjcmlwdGlvbiIsCiAgICAgICJwbGFjZWhvbGRlciI6ICJVc2VkIGJ5IHRoZSBEdW1teSBhcyBhbiBYTUwgZGVzY3JpcHRpb24iLAogICAgICAiZGVzY3JpcHRpb24iOiAiIgogICAgfSwKICAgICJ1cGRhdGVDaGFubmVsTmFtZSI6IHsKICAgICAgInRpdGxlIjogIlVwZGF0ZSBDaGFubmVsIE5hbWUiLAogICAgICAicGxhY2Vob2xkZXIiOiAiIiwKICAgICAgImRlc2NyaXB0aW9uIjogIiIKICAgIH0sCiAgICAidXBkYXRlQ2hhbm5lbE5hbWVSZWdleCI6IHsKICAgICAgInRpdGxlIjogIkNoYW5uZWwgbmFtZSB1cGRhdGUgcmVnZXgiLAogICAgICAicGxhY2Vob2xkZXIiOiAiRm9yIGV4YW1wbGUgXlBQVlsgXFxcXC1fXT8xLioiLAogICAgICAiZGVzY3JpcHRpb24iOiAiT24gdXBkYXRlLCBpZiBhbnkgbmV3IGNoYW5uZWwgbmFtZSBtYXRjaGVzIHRoaXMgcmVnZXgsIHJlbmFtZSBjdXJyZW50IGNoYW5uZWwgdG8gdGhlIGZpcnN0IG1hdGNoaW5nIG5hbWUiCiAgICB9LAogICAgInVwZGF0ZUNoYW5uZWxOYW1lQnlHcm91cFJlZ2V4IjogewogICAgICAidGl0bGUiOiAiT25seSBieSBncm91cCByZWdleCIsCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLAogICAgICAiZGVzY3JpcHRpb24iOiAiUmVuYW1lIHRoaXMgY2hhbm5lbCBvbmx5IGlmIGN1cnJlbnQgdXNlci1kZWZpbmVkIGdyb3VwIG1hdGNoZXMgdGhpcyByZWdleCIKICAgIH0sCiAgICAidXBkYXRlQ2hhbm5lbEdyb3VwIjogewogICAgICAidGl0bGUiOiAiVXBkYXRlIENoYW5uZWwgR3JvdXAiLAogICAgICAicGxhY2Vob2xkZXIiOiAiIiwKICAgICAgImRlc2NyaXB0aW9uIjogIklmIGNoZWNrZWQsIHVzZSBncm91cCBmcm9tIHRoZSBkYXRhYmFzZSIKICAgIH0sCiAgICAiY2hhbm5lbExvZ28iOiB7CiAgICAgICJ0aXRsZSI6ICJMb2dvIFVSTCIsCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLAogICAgICAiZGVzY3JpcHRpb24iOiAiIgogICAgfSwKICAgICJ1cGRhdGVDaGFubmVsTG9nbyI6IHsKICAgICAgInRpdGxlIjogIlVzZSBsb2dvIGZyb20gTTNVIiwKICAgICAgInBsYWNlaG9sZGVyIjogIiIsCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiCiAgICB9LAogICAgImVwZ0NhdGVnb3J5IjogewogICAgICAidGl0bGUiOiAiRVBHIENhdGVnb3J5IiwKICAgICAgInBsYWNlaG9sZGVyIjogIiIsCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiCiAgICB9LAogICAgIm0zdUdyb3VwVGl0bGUiOiB7CiAgICAgICJ0aXRsZSI6ICJHcm91cCBUaXRsZSAoeHRldmUubTN1KSIsCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLAogICAgICAiZGVzY3JpcHRpb24iOiAiIgogICAgfSwKICAgICJ4bWx0dkZpbGUiOiB7CiAgICAgICJ0aXRsZSI6ICJYTUxUViBGaWxlIiwKICAgICAgInBsYWNlaG9sZGVyIjogIiIsCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiCiAgICB9LAogICAgInhtbHR2Q2hhbm5lbCI6IHsKICAgICAgInRpdGxlIjogIlhNTFRWIENoYW5uZWwiLAogICAgICAicGxhY2Vob2xkZXIiOiAiIiwKICAgICAgImRlc2NyaXB0aW9uIjogIiIKICAgIH0sCiAgICAidGltZXNoaWZ0IjogewogICAgICAidGl0bGUiOiAiVGltZXNoaWZ0IiwKICAgICAgInBsYWNlaG9sZGVyIjogIjAiLAogICAgICAiZGVzY3JpcHRpb24iOiAiIgogICAgfQogIH0sCiAgInVzZXJzIjogewogICAgInRhYmxlIjogewogICAgICAidXNlcm5hbWUiOiAiVXNlcm5hbWUiLAogICAgICAicGFzc3dvcmQiOiAiUGFzc3dvcmQiLAogICAgICAid2ViIjogIldFQiIsCiAgICAgICJwbXMiOiAiUE1TIiwKICAgICAgIm0zdSI6ICJNM1UiLAogICAgICAieG1sIjogIlhNTCIsCiAgICAgICJhcGkiOiAiQVBJIgogICAgfSwKICAgICJ1c2VybmFtZSI6IHsKICAgICAgInRpdGxlIjogIlVzZXJuYW1lIiwKICAgICAgInBsYWNlaG9sZGVyIjogIlVzZXJuYW1lIiwKICAgICAgImRlc2NyaXB0aW9uIjogIiIKICAgIH0sCiAgICAicGFzc3dvcmQiOiB7CiAgICAgICJ0aXRsZSI6ICJQYXNzd29yZCIsCiAgICAgICJwbGFjZWhvbGRlciI6ICJQYXNzd29yZCIsCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiCiAgICB9LAogICAgImNvbmZpcm0iOiB7CiAgICAgICJ0aXRsZSI6ICJDb25maXJtIiwKICAgICAgInBsYWNlaG9sZGVyIjogIlBhc3N3b3JkIGNvbmZpcm0iLAogICAgICAiZGVzY3JpcHRpb24iOiAiIgogICAgfSwKICAgICJ3ZWIiOiB7CiAgICAgICJ0aXRsZSI6ICJXZWIgQWNjZXNzIiwKICAgICAgInBsYWNlaG9sZGVyIjogIiIsCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiCiAgICB9LAogICAgInBtcyI6IHsKICAgICAgInRpdGxlIjogIlBNUyBBY2Nlc3MiLAogICAgICAicGxhY2Vob2xkZXIiOiAiIiwKICAgICAgImRlc2NyaXB0aW9uIjogIiIKICAgIH0sCiAgICAibTN1IjogewogICAgICAidGl0bGUiOiAiTTNVIEFjY2VzcyIsCiAgICAgICJwbGFjZWhvbGRlciI6ICIiLAogICAgICAiZGVzY3JpcHRpb24iOiAiIgogICAgfSwKICAgICJ4bWwiOiB7CiAgICAgICJ0aXRsZSI6ICJYTUwgQWNjZXNzIiwKICAgICAgInBsYWNlaG9sZGVyIjogIiIsCiAgICAgICJkZXNjcmlwdGlvbiI6ICIiCiAgICB9LAogICAgImFwaSI6IHsKICAgICAgInRpdGxlIjogIkFQSSBBY2Nlc3MiLAogICAgICAicGxhY2Vob2xkZXIiOiAiIiwKICAgICAgImRlc2NyaXB0aW9uIjogIiIKICAgIH0KICB9LAogICJzZXR0aW5ncyI6IHsKICAgICJjYXRlZ29yeSI6IHsKICAgICAgImdlbmVyYWwiOiAiR2VuZXJhbCIsCiAgICAgICJtYXBwaW5nIjogIk1hcHBpbmciLAogICAgICAiZmlsZXMiOiAiRmlsZXMiLAogICAgICAic3RyZWFtaW5nIjogIlN0cmVhbWluZyIsCiAgICAgICJiYWNrdXAiOiAiQmFja3VwIiwKICAgICAgImF1dGhlbnRpY2F0aW9uIjogIkF1dGhlbnRpY2F0aW9uIgogICAgfSwKICAgICJ1cGRhdGUiOiB7CiAgICAgICJ0aXRsZSI6ICJTY2hlZHVsZSBmb3IgdXBkYXRpbmcgKFBsYXlsaXN0LCBYTUxUViwgQmFja3VwKSIsCiAgICAgICJwbGFjZWhvbGRlciI6ICIwMDAwLDEwMDAsMjAwMCIsCiAgICAgICJkZXNjcmlwdGlvbiI6ICJUaW1lIGluIDI0IGhvdXIgZm9ybWF0ICgwODAwID0gODowMCBhbSkuIE1vcmUgdGltZXMgY2FuIGJlIGVudGVyZWQgY29tbWEgc2VwYXJhdGVkLiBMZWF2ZSB0aGlzIGZpZWxkIGVtcHR5IGlmIG5vIHVwZGF0ZXMgYXJlIHRvIGJlIGNhcnJpZWQgb3V0LiIKICAgIH0sCiAgICAiYXBpIjogewogICAgICAidGl0bGUiOiAiQVBJIEludGVyZmFjZSIsCiAgICAgICJkZXNjcmlwdGlvbiI6ICJWaWEgQVBJIGludGVyZmFjZSBpdCBpcyBwb3NzaWJsZSB0byBzZW5kIGNvbW1hbmRzIHRvIHhUZVZlLiBBUEkgZG9jdW1lbnRhdGlvbiBpcyA8YSBocmVmPSdodHRwczovL2dpdGh1Yi5jb20veHRldmUtcHJvamVjdC94VGVWZS1Eb2N1bWVudGF0aW9uL2Jsb2IvbWFzdGVyL2VuL2NvbmZpZ3VyYXRpb24ubWQjYXBpJz5oZXJlPC9hPiIKICAgIH0sCiAgICAiY2xlYXJYTUxUVkNhY2hlIjogewogICAgICAidGl0bGUiOiAiQ2xlYXIgWE1MVFYgY2FjaGUiLAogICAgICAiZGVzY3JpcHRpb24iOiAiSWYgY2hlY2tlZCwgZG8gbm90IGtlZXAgWE1MVFYgY2FjaGUgaW4gbWVtb3J5Ljxicj5TaWduaWZpY2FsbHkgcmVkdWNlcyBSQU0gdXNhZ2UgaW4gaWRsZSBtb2RlLDxicj5idXQgc2lnbmlmaWNhbGx5IHNsb3dpbmcgZG93biBldmVyeSBzdWJzZXF1ZW50IHVwZGF0ZSBpbiBYRVBHIGRhdGFiYXNlLiIKICAgIH0sCiAgICAiZGVmYXVsdE1pc3NpbmdFUEciOiB7CiAgICAgICJ0aXRsZSI6ICJGaWxsIE1pc3NpbmcgRVBHIERhdGEiLAogICAgICAiZGVzY3JpcHRpb24iOiAiV2hlbiB0aGVyZSBpcyBubyBtYXRjaGluZyBFUEcgZGF0YSBmb3IgY2hhbm5lbCwgPGJyPmF1dG9maWxsIHdpdGggeFRlVmUgZHVtbXkgRVBHIGRhdGE/IgogICAgfSwKICAgICJlbmFibGVNYXBwZWRDaGFubmVscyI6IHsKICAgICAgInRpdGxlIjogIkVuYWJsZSBtYXBwZWQgY2hhbm5lbHMiLAogICAgICAiZGVzY3JpcHRpb24iOiAiQXV0b21hdGljYWxseSBlbmFibGUgY2hhbm5lbHMgd2l0aCBhc3NpZ25lZCBFUEcgZGF0YSIKICAgIH0sCiAgICAiZGlzYWxsb3dVUkxEdXBsaWNhdGVzIjogewogICAgICAidGl0bGUiOiAiRGlzYWxsb3cgVVJMIGR1cGxpY2F0ZXMiLAogICAgICAiZGVzY3JpcHRpb24iOiAiSWYgY2hlY2tlZCwgZG8gbm90IGFkZCBhIG5ldyBjaGFubmVsIGZyb20gcGxheWxpc3QgaWYgY2hhbm5lbCB3aXRoIHN1Y2ggVVJMIGFscmVhZHkgZXhpc3RzIgogICAgfSwKICAgICJlcGdTb3VyY2UiOiB7CiAgICAgICJ0aXRsZSI6ICJFUEcgU291cmNlIiwKICAgICAgImRlc2NyaXB0aW9uIjogIlBNUzo8YnI+LSBVc2UgRVBHIGRhdGEgZnJvbSBQbGV4IG9yIEVtYnkgPGJyPjxicj5YRVBHOjxicj4tIFVzZSBvZiBvbmUgb3IgbW9yZSBYTUxUViBmaWxlczxicj4tIENoYW5uZWwgbWFuYWdlbWVudDxicj4tIE0zVSAvIFhNTFRWIGV4cG9ydCAoSFRUUCBsaW5rIGZvciBJUFRWIGFwcHMpIgogICAgfSwKICAgICJ0dW5lciI6IHsKICAgICAgInRpdGxlIjogIk51bWJlciBvZiBUdW5lcnMiLAogICAgICAiZGVzY3JpcHRpb24iOiAiTnVtYmVyIG9mIHBhcmFsbGVsIGNvbm5lY3Rpb25zIHRoYXQgY2FuIGJlIGVzdGFibGlzaGVkIHRvIHRoZSBwcm92aWRlci48YnI+QXZhaWxhYmxlIGZvcjogUGxleCwgRW1ieSAoSERIUiksIE0zVSAod2l0aCBhY3RpdmUgYnVmZmVyKS48YnI+QWZ0ZXIgYSBjaGFuZ2UsIHhUZVZlIG11c3QgYmUgZGVsZXRlIGluIHRoZSBQbGV4IC8gRW1ieSBEVlIgc2V0dGluZ3MgYW5kIHNldCB1cCBhZ2Fpbi4iCiAgICB9LAogICAgImhvc3RJUCI6IHsKICAgICAgInRpdGxlIjogIkhvc3QgSVAiLAogICAgICAiZGVzY3JpcHRpb24iOiAiSVAgYWRkcmVzcyB4VGVWZSB3aWxsIHVzZSB0byBmb3JtIE0zVSBhbmQgWE1MVFYgZmlsZXMiCiAgICB9LAogICAgImhvc3ROYW1lIjogewogICAgICAidGl0bGUiOiAiSG9zdCBOYW1lIE92ZXJyaWRlIiwKICAgICAgImRlc2NyaXB0aW9uIjogIkhvc3RuYW1lIHhUZVZlIHdpbGwgdXNlIHRvIGZvcm0gTTNVIGFuZCBYTUxUViBmaWxlcy4gVGhpcyB3aWxsIG92ZXJyaWRlIEhvc3QgSVAgaWYgc2V0IgogICAgfSwKICAgICJ0bHNNb2RlIjogewogICAgICAidGl0bGUiOiAiVExTIChIVFRQUykgbW9kZSIsCiAgICAgICJkZXNjcmlwdGlvbiI6ICJDaGFuZ2VzIHdlYiBzZXJ2ZXIgcHJvdG9jb2wgdG8gSFRUUFMuPGJyPkZvciBkZXRhaWxzLCBzZWUgPGE+aHR0cHM6Ly9naXRodWIuY29tL1NlbmV4Q3JlbnNoYXcveFRlVmUjdGxzLW1vZGU8L2E+IgogICAgfSwKICAgICJmaWxlc1VwZGF0ZSI6IHsKICAgICAgInRpdGxlIjogIlVwZGF0ZXMgYWxsIGZpbGVzIGF0IHN0YXJ0dXAiLAogICAgICAiZGVzY3JpcHRpb24iOiAiVXBkYXRlcyBhbGwgcGxheWxpc3RzLCB0dW5lciBhbmQgWE1MVFYgZmlsZXMgYXQgc3RhcnR1cC4iCiAgICB9LAogICAgImNhY2hlSW1hZ2VzIjogewogICAgICAidGl0bGUiOiAiSW1hZ2UgQ2FjaGluZyIsCiAgICAgICJkZXNjcmlwdGlvbiI6ICJBbGwgaW1hZ2VzIGZyb20gdGhlIFhNTFRWIGZpbGUgYXJlIGNhY2hlZCwgYWxsb3dpbmcgZmFzdGVyIHJlbmRlcmluZyBvZiB0aGUgZ3JpZCBpbiB0aGUgY2xpZW50Ljxicj5Eb3dubG9hZGluZyB0aGUgaW1hZ2VzIG1heSB0YWtlIGEgd2hpbGUgYW5kIHdpbGwgYmUgZG9uZSBpbiB0aGUgYmFja2dyb3VuZC4iCiAgICB9LAogICAgInJlcGxhY2VFbXB0eUltYWdlcyI6IHsKICAgICAgInRpdGxlIjogIlJlcGxhY2UgbWlzc2luZyBwcm9ncmFtIGltYWdlcyIsCiAgICAgICJkZXNjcmlwdGlvbiI6ICJJZiB0aGUgcG9zdGVyIGluIHRoZSBYTUxUViBwcm9ncmFtIGlzIG1pc3NpbmcsIHRoZSBjaGFubmVsIGxvZ28gd2lsbCBiZSB1c2VkLiIKICAgIH0sCiAgICAieHRldmVBdXRvVXBkYXRlIjogewogICAgICAidGl0bGUiOiAiQXV0b21hdGljIHVwZGF0ZSBvZiB4VGVWZSIsCiAgICAgICJkZXNjcmlwdGlvbiI6ICJJZiBhIG5ldyB2ZXJzaW9uIG9mIHhUZVZlIGlzIGF2YWlsYWJsZSwgaXQgd2lsbCBiZSBhdXRvbWF0aWNhbGx5IGluc3RhbGxlZC4gVGhlIHVwZGF0ZXMgYXJlIGRvd25sb2FkZWQgZnJvbSBHaXRIdWIuIgogICAgfSwKICAgICJzdHJlYW1CdWZmZXJpbmciOiB7CiAgICAgICJ0aXRsZSI6ICJTdHJlYW0gQnVmZmVyIiwKICAgICAgImRlc2NyaXB0aW9uIjogIkZ1bmN0aW9ucyBvZiB0aGUgYnVmZmVyOjxicj4tIFRoZSBzdHJlYW0gaXMgcGFzc2VkIGZyb20geFRlVmUsIEZGbXBlZyBvciBWTEMgdG8gUGxleCwgRW1ieSBvciBNM1UgUGxheWVyPGJyPi0gU21hbGwgamVya2luZyBvZiB0aGUgc3RyZWFtcyBjYW4gYmUgY29tcGVuc2F0ZWQ8YnI+LSBITFMgLyBNM1U4IHN1cHBvcnQ8YnI+LSBSVFAgLyBSVFBTIHN1cHBvcnQgKG9ubHkgRkZtcGVnIG9yIFZMQyk8YnI+LSBSZS1zdHJlYW1pbmc8YnI+LSBTZXBhcmF0ZSB0dW5lciBsaW1pdCBmb3IgZWFjaCBwbGF5bGlzdCIsCiAgICAgICJpbmZvX2ZhbHNlIjogIk5vIEJ1ZmZlciAoQ2xpZW50IGNvbm5lY3RzIHRvIHRoZSBzdHJlYW1pbmcgc2VydmVyKSIsCiAgICAgICJpbmZvX3h0ZXZlIjogInhUZVZlIGNvbm5lY3RzIHRvIHRoZSBzdHJlYW1pbmcgc2VydmVyIiwKICAgICAgImluZm9fZmZtcGVnIjogIkZGbXBlZyBjb25uZWN0cyB0byB0aGUgc3RyZWFtaW5nIHNlcnZlciIsCiAgICAgICJpbmZvX3ZsYyI6ICJWTEMgY29ubmVjdHMgdG8gdGhlIHN0cmVhbWluZyBzZXJ2ZXIiCiAgICB9LAogICAgInVkcHh5IjogewogICAgICAidGl0bGUiOiAiVURQeHkgYWRkcmVzcyIsCiAgICAgICJkZXNjcmlwdGlvbiI6ICJUaGUgYWRkcmVzcyBvZiB5b3VyIFVEUHh5IHNlcnZlci4gSWYgc2V0LCBhbmQgdGhlIGNoYW5uZWwgVVJMcyBpbiB0aGUgbTN1IGlzIG11bHRpY2FzdCwgeFRlVmUgd2lsbCByZXdyaXRlIGl0IHNvIHRoYXQgaXQgaXMgYWNjZXNzZWQgdmlhIHRoZSBVRFB4eSBzZXJ2aWNlLiIsCiAgICAgICJwbGFjZWhvbGRlciI6ICJob3N0OnBvcnQiCiAgICB9LAogICAgImZmbXBlZ1BhdGgiOiB7CiAgICAgICJ0aXRsZSI6ICJGRm1wZWcgQmluYXJ5IFBhdGgiLAogICAgICAiZGVzY3JpcHRpb24iOiAiUGF0aCB0byBGRm1wZWcgYmluYXJ5LiIsCiAgICAgICJwbGFjZWhvbGRlciI6ICIvcGF0aC90by9mZm1wZWciCiAgICB9LAogICAgImZmbXBlZ09wdGlvbnMiOiB7CiAgICAgICJ0aXRsZSI6ICJGRm1wZWcgT3B0aW9ucyIsCiAgICAgICJkZXNjcmlwdGlvbiI6ICJGRm1wZWcgb3B0aW9ucy48YnI+T25seSBjaGFuZ2UgaWYgeW91IGtub3cgd2hhdCB5b3UgYXJlIGRvaW5nLjxicj5MZWF2ZSBibGFuayB0byBzZXQgZGVmYXVsdCBzZXR0aW5ncy4iLAogICAgICAicGxhY2Vob2xkZXIiOiAiTGVhdmUgYmxhbmsgdG8gc2V0IGRlZmF1bHQgc2V0dGluZ3MiCiAgICB9LAogICAgInZsY1BhdGgiOiB7CiAgICAgICJ0aXRsZSI6ICJWTEMgLyBDVkxDIEJpbmFyeSBQYXRoIiwKICAgICAgImRlc2NyaXB0aW9uIjogIlBhdGggdG8gVkxDIC8gQ1ZMQyBiaW5hcnkuIiwKICAgICAgInBsYWNlaG9sZGVyIjogIi9wYXRoL3RvL2N2bGMiCiAgICB9LAogICAgInZsY09wdGlvbnMiOiB7CiAgICAgICJ0aXRsZSI6ICJWTEMgLyBDVkxDIE9wdGlvbnMiLAogICAgICAiZGVzY3JpcHRpb24iOiAiVkxDIC8gQ1ZMQyBvcHRpb25zLjxicj5Pbmx5IGNoYW5nZSBpZiB5b3Uga25vdyB3aGF0IHlvdSBhcmUgZG9pbmcuPGJyPkxlYXZlIGJsYW5rIHRvIHNldCBkZWZhdWx0IHNldHRpbmdzLiIsCiAgICAgICJwbGFjZWhvbGRlciI6ICJMZWF2ZSBibGFuayB0byBzZXQgZGVmYXVsdCBzZXR0aW5ncyIKICAgIH0sCiAgICAiYnVmZmVyU2l6ZSI6IHsKICAgICAgInRpdGxlIjogIkJ1ZmZlciBTaXplIiwKICAgICAgImRlc2NyaXB0aW9uIjogIkJ1ZmZlciBzaXplIGluIE1CLjxicj5NM1U4OiBJZiB0aGUgVFMgc2VnbWVudCBzbWFsbGVyIHRoZW4gdGhlIGJ1ZmZlciBzaXplLCB0aGUgZmlsZSBzaXplIG9mIHRoZSBzZWdtZW50IGlzIHVzZWQuIgogICAgfSwKICAgICJzdG9yZUJ1ZmZlckluUkFNIjogewogICAgICAidGl0bGUiOiAiU3RvcmUgYnVmZmVyIGluIFJBTSIsCiAgICAgICJkZXNjcmlwdGlvbiI6ICJJZiBjaGVja2VkLCB3cml0ZSBidWZmZXIgdG8gUkFNIGluc3RlYWQgb2Ygd3JpdGluZyB0byBkaXNrIgogICAgfSwKICAgICJidWZmZXJUaW1lb3V0IjogewogICAgICAidGl0bGUiOiAiVGltZW91dCBmb3IgbmV3IGNsaWVudCBjb25uZWN0aW9ucyIsCiAgICAgICJkZXNjcmlwdGlvbiI6ICJUaGUgeFRlVmUgYnVmZmVyIHdhaXRzIHVudGlsIG5ldyBjbGllbnQgY29ubmVjdGlvbnMgYXJlIGVzdGFibGlzaGVkLiBIZWxwZnVsIGZvciBmYXN0IGNoYW5uZWwgc3dpdGNoaW5nLiBWYWx1ZSBpbiBtaWxsaXNlY29uZHMuIiwKICAgICAgInBsYWNlaG9sZGVyIjogIjEwMCIKICAgIH0sCiAgICAidXNlckFnZW50IjogewogICAgICAidGl0bGUiOiAiVXNlciBBZ2VudCIsCiAgICAgICJkZXNjcmlwdGlvbiI6ICJVc2VyIEFnZW50IGZvciBIVFRQIHJlcXVlc3RzLiBGb3IgZXZlcnkgSFRUUCBjb25uZWN0aW9uLCB0aGlzIHZhbHVlIGlzIHVzZWQgZm9yIHRoZSB1c2VyIGFnZW50LiBTaG91bGQgb25seSBiZSBjaGFuZ2VkIGlmIHhUZVZlIGlzIGJsb2NrZWQuIiwKICAgICAgInBsYWNlaG9sZGVyIjogInhUZVZlIgogICAgfSwKICAgICJiYWNrdXBQYXRoIjogewogICAgICAidGl0bGUiOiAiTG9jYXRpb24gZm9yIGF1dG9tYXRpYyBiYWNrdXBzIiwKICAgICAgInBsYWNlaG9sZGVyIjogIi9tbnQvZGF0YS9iYWNrdXAveHRldmUvIiwKICAgICAgImRlc2NyaXB0aW9uIjogIkJlZm9yZSBhbnkgdXBkYXRlIG9mIHRoZSBwcm92aWRlciBkYXRhIGJ5IHRoZSBzY2hlZHVsZSwgeFRlVmUgY3JlYXRlcyBhIGJhY2t1cC4gVGhlIHBhdGggZm9yIHRoZSBhdXRvbWF0aWMgYmFja3VwcyBjYW4gYmUgY2hhbmdlZC4geFRlVmUgcmVxdWlyZXMgd3JpdGUgcGVybWlzc2lvbiBmb3IgdGhpcyBmb2xkZXIuIgogICAgfSwKICAgICJ0ZW1wUGF0aCI6IHsKICAgICAgInRpdGxlIjogIkxvY2F0aW9uIGZvciB0aGUgdGVtcG9yYXJ5IGZpbGVzIiwKICAgICAgInBsYWNlaG9sZGVyIjogIi90bXAveHRldmUvIiwKICAgICAgImRlc2NyaXB0aW9uIjogIkxvY2F0aW9uIGZvciB0aGUgYnVmZmVyIGZpbGVzLiIKICAgIH0sCiAgICAiYmFja3VwS2VlcCI6IHsKICAgICAgInRpdGxlIjogIk51bWJlciBvZiBiYWNrdXBzIHRvIGtlZXAiLAogICAgICAiZGVzY3JpcHRpb24iOiAiTnVtYmVyIG9mIGJhY2t1cHMgdG8ga2VlcC4gT2xkZXIgYmFja3VwcyBhcmUgYXV0b21hdGljYWxseSBkZWxldGVkLiIKICAgIH0sCiAgICAiYXV0aGVudGljYXRpb25XRUIiOiB7CiAgICAgICJ0aXRsZSI6ICJXRUIgQXV0aGVudGljYXRpb24iLAogICAgICAiZGVzY3JpcHRpb24iOiAiQWNjZXNzIHRvIHRoZSB3ZWIgaW50ZXJmYWNlIG9ubHkgcG9zc2libGUgd2l0aCBjcmVkZW50aWFscy4iCiAgICB9LAogICAgImF1dGhlbnRpY2F0aW9uUE1TIjogewogICAgICAidGl0bGUiOiAiUE1TIEF1dGhlbnRpY2F0aW9uIiwKICAgICAgImRlc2NyaXB0aW9uIjogIlBsZXggcmVxdWVzdHMgYXJlIG9ubHkgcG9zc2libGUgd2l0aCBhdXRoZW50aWNhdGlvbi4gPGJyPjxiPldhcm5pbmchISE8L2I+IEFmdGVyIGFjdGl2YXRpbmcgdGhpcyBmdW5jdGlvbiB4VGVWZSBtdXN0IGJlIGRlbGV0ZSBpbiB0aGUgUE1TIERWUiBzZXR0aW5ncyBhbmQgc2V0IHVwIGFnYWluLiIKICAgIH0sCiAgICAiYXV0aGVudGljYXRpb25NM1UiOiB7CiAgICAgICJ0aXRsZSI6ICJNM1UgQXV0aGVudGljYXRpb24iLAogICAgICAiZGVzY3JpcHRpb24iOiAiRG93bmxvYWRpbmcgdGhlIHh0ZXZlLm0zdSBmaWxlIHZpYSBhbiBIVFRQIHJlcXVlc3QgaXMgb25seSBwb3NzaWJsZSB3aXRoIGF1dGhlbnRpY2F0aW9uLiIKICAgIH0sCiAgICAiYXV0aGVudGljYXRpb25YTUwiOiB7CiAgICAgICJ0aXRsZSI6ICJYTUwgQXV0aGVudGljYXRpb24iLAogICAgICAiZGVzY3JpcHRpb24iOiAiRG93bmxvYWRpbmcgdGhlIHh0ZXZlLnhtbCBmaWxlIHZpYSBhbiBIVFRQIHJlcXVlc3QgaXMgb25seSBwb3NzaWJsZSB3aXRoIGF1dGhlbnRpY2F0aW9uIgogICAgfSwKICAgICJhdXRoZW50aWNhdGlvbkFQSSI6IHsKICAgICAgInRpdGxlIjogIkFQSSBBdXRoZW50aWNhdGlvbiIsCiAgICAgICJkZXNjcmlwdGlvbiI6ICJBY2Nlc3MgdG8gdGhlIEFQSSBpbnRlcmZhY2UgaXMgb25seSBwb3NzaWJsZSB3aXRoIGF1dGhlbnRpY2F0aW9uLiIKICAgIH0KICB9LAogICJ3aXphcmQiOiB7CiAgICAiZXBnU291cmNlIjogewogICAgICAidGl0bGUiOiAiRVBHIFNvdXJjZSIsCiAgICAgICJkZXNjcmlwdGlvbiI6ICJQTVM6PGJyPi0gVXNlIEVQRyBkYXRhIGZyb20gUGxleCBvciBFbWJ5IDxicj48YnI+WEVQRzo8YnI+LSBVc2Ugb2Ygb25lIG9yIG1vcmUgWE1MVFYgZmlsZXM8YnI+LSBDaGFubmVsIG1hbmFnZW1lbnQ8YnI+LSBNM1UgLyBYTUxUViBleHBvcnQgKEhUVFAgbGluayBmb3IgSVBUViBhcHBzKSIKICAgIH0sCiAgICAidHVuZXIiOiB7CiAgICAgICJ0aXRsZSI6ICJOdW1iZXIgb2YgdHVuZXJzIiwKICAgICAgImRlc2NyaXB0aW9uIjogIk51bWJlciBvZiBwYXJhbGxlbCBjb25uZWN0aW9ucyB0aGF0IGNhbiBiZSBlc3RhYmxpc2hlZCB0byB0aGUgcHJvdmlkZXIuPGJyPkF2YWlsYWJsZSBmb3I6IFBsZXgsIEVtYnkgKEhESFIpLCBNM1UgKHdpdGggYWN0aXZlIGJ1ZmZlcikuPGJyPkFmdGVyIGEgY2hhbmdlLCB4VGVWZSBtdXN0IGJlIGRlbGV0ZSBpbiB0aGUgUGxleCAvIEVtYnkgRFZSIHNldHRpbmdzIGFuZCBzZXQgdXAgYWdhaW4uIgogICAgfSwKICAgICJtM3UiOiB7CiAgICAgICJ0aXRsZSI6ICJNM1UgUGxheWxpc3QiLAogICAgICAicGxhY2Vob2xkZXIiOiAiRmlsZSBwYXRoIG9yIFVSTCBvZiB0aGUgTTNVIiwKICAgICAgImRlc2NyaXB0aW9uIjogIkxvY2FsIG9yIHJlbW90ZSBwbGF5bGlzdHMiCiAgICB9LAogICAgInhtbHR2IjogewogICAgICAidGl0bGUiOiAiWE1MVFYgRmlsZSIsCiAgICAgICJwbGFjZWhvbGRlciI6ICJGaWxlIHBhdGggb3IgVVJMIG9mIHRoZSBYTUxUViIsCiAgICAgICJkZXNjcmlwdGlvbiI6ICJMb2NhbCBvciByZW1vdGUgWE1MVFYgZmlsZSIKICAgIH0KICB9LAogICJsb2dpbiI6IHsKICAgICJmYWlsZWQiOiAiVXNlciBhdXRoZW50aWNhdGlvbiBmYWlsZWQiLAogICAgImhlYWRsaW5lIjogIkxvZ2luIiwKICAgICJ1c2VybmFtZSI6IHsKICAgICAgInRpdGxlIjogIlVzZXJuYW1lIiwKICAgICAgInBsYWNlaG9sZGVyIjogIlVzZXJuYW1lIgogICAgfSwKICAgICJwYXNzd29yZCI6IHsKICAgICAgInRpdGxlIjogIlBhc3N3b3JkIiwKICAgICAgInBsYWNlaG9sZGVyIjogIlBhc3N3b3JkIgogICAgfQogIH0sCiAgImFjY291bnQiOiB7CiAgICAiZmFpbGVkIjogIlBhc3N3b3JkIGRvZXMgbm90IG1hdGNoIiwKICAgICJoZWFkbGluZSI6ICJDcmVhdGUgdXNlciBhY2NvdW50IiwKICAgICJ1c2VybmFtZSI6IHsKICAgICAgInRpdGxlIjogIlVzZXJuYW1lIiwKICAgICAgInBsYWNlaG9sZGVyIjogIlVzZXJuYW1lIgogICAgfSwKICAgICJwYXNzd29yZCI6IHsKICAgICAgInRpdGxlIjogIlBhc3N3b3JkIiwKICAgICAgInBsYWNlaG9sZGVyIjogIlBhc3N3b3JkIgogICAgfSwKICAgICJjb25maXJtIjogewogICAgICAidGl0bGUiOiAiQ29uZmlybSIsCiAgICAgICJwbGFjZWhvbGRlciI6ICJDb25maXJtIgogICAgfQogIH0KfQ==" - webUI["html/login.html"] = "PCFkb2N0eXBlIGh0bWw+CjxodG1sPgoKPGhlYWQ+CiAgPG1ldGEgY2hhcnNldD0idXRmLTgiPgogIDxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgsIGluaXRpYWwtc2NhbGU9MS4wIiAvPgogIDx0aXRsZT54VGVWZTwvdGl0bGU+CiAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJjc3Mvc2NyZWVuLmNzcyIgdHlwZT0idGV4dC9jc3MiPgogIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iY3NzL2Jhc2UuY3NzIiB0eXBlPSJ0ZXh0L2NzcyI+CiAgPHNjcmlwdCBsYW5ndWFnZT0iamF2YXNjcmlwdCIgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9ImpzL25ldHdvcmtfdHMuanMiPjwvc2NyaXB0PgogIDxzY3JpcHQgbGFuZ3VhZ2U9ImphdmFzY3JpcHQiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJqcy9hdXRoZW50aWNhdGlvbl90cy5qcyI+PC9zY3JpcHQ+CjwvaGVhZD4KCjxib2R5PgoKICA8ZGl2IGlkPSJoZWFkZXIiIGNsYXNzPSJpbWdDZW50ZXIiPjwvZGl2PgoKICA8ZGl2IGlkPSJib3giPgoKICAgIDxkaXYgaWQ9ImhlYWRsaW5lIj4KICAgICAgPGgxIGlkPSJoZWFkLXRleHQiIGNsYXNzPSJjZW50ZXIiPnt7LmxvZ2luLmhlYWRsaW5lfX08L2gxPgogICAgPC9kaXY+CgogICAgPHAgaWQ9ImVyciIgY2xhc3M9ImVycm9yTXNnIGNlbnRlciI+e3suYXV0aGVudGljYXRpb25FcnJ9fTwvcD4KCiAgICA8ZGl2IGlkPSJjb250ZW50Ij4KCiAgICAgIDxmb3JtIGlkPSJhdXRoZW50aWNhdGlvbiIgYWN0aW9uPSIiIG1ldGhvZD0icG9zdCI+CgogICAgICAgIDxoNT57ey5sb2dpbi51c2VybmFtZS50aXRsZX19OjwvaDU+CiAgICAgICAgPGlucHV0IGlkPSJ1c2VybmFtZSIgdHlwZT0idGV4dCIgbmFtZT0idXNlcm5hbWUiIHBsYWNlaG9sZGVyPSJVc2VybmFtZSIgdmFsdWU9IiI+CiAgICAgICAgPGg1Pnt7LmxvZ2luLnBhc3N3b3JkLnRpdGxlfX06PC9oNT4KICAgICAgICA8aW5wdXQgaWQ9InBhc3N3b3JkIiB0eXBlPSJwYXNzd29yZCIgbmFtZT0icGFzc3dvcmQiIHBsYWNlaG9sZGVyPSJQYXNzd29yZCIgdmFsdWU9IiI+CgogICAgICA8L2Zvcm0+CgogICAgPC9kaXY+CgogICAgPGRpdiBpZD0iYm94LWZvb3RlciI+CiAgICAgIDxpbnB1dCBpZD0ic3VibWl0IiBjbGFzcz0iIiB0eXBlPSJidXR0b24iIHZhbHVlPSJ7ey5idXR0b24ubG9naW59fSIgb25jbGljaz0iamF2YXNjcmlwdDogbG9naW4oKTsiPgogICAgPC9kaXY+CgogIDwvZGl2PgoKPC9ib2R5PgoKPC9odG1sPg==" - webUI["html/maintenance.html"] = "PCFkb2N0eXBlIGh0bWw+CjxodG1sPgoKPGhlYWQ+CiAgPG1ldGEgY2hhcnNldD0idXRmLTgiPgogIDxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgsIGluaXRpYWwtc2NhbGU9MS4wIiAvPgogIDx0aXRsZT54VGVWZTwvdGl0bGU+CiAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJjc3Mvc2NyZWVuLmNzcyIgdHlwZT0idGV4dC9jc3MiPgogIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iY3NzL2Jhc2UuY3NzIiB0eXBlPSJ0ZXh0L2NzcyI+CjwvaGVhZD4KCjxib2R5PgoKICA8ZGl2IGlkPSJoZWFkZXIiIGNsYXNzPSJpbWdDZW50ZXIiPjwvZGl2PgoKICA8ZGl2IGlkPSJib3giPgoKICAgIDxkaXYgaWQ9ImhlYWRsaW5lIj4KICAgICAgPGgxIGlkPSJoZWFkLXRleHQiIGNsYXNzPSJjZW50ZXIiPk1haW50ZW5hbmNlPC9oMT4KICAgIDwvZGl2PgoKICAgIDxkaXYgaWQ9ImNvbnRlbnQiPgogICAgICB4VGVWZSBpcyB1cGRhdGluZyB0aGUgZGF0YWJhc2UsIHBsZWFzZSB0cnkgYWdhaW4gbGF0ZXIuCiAgICA8L2Rpdj4KCiAgICA8ZGl2IGlkPSJib3gtZm9vdGVyIj48L2Rpdj4KCiAgPC9kaXY+Cgo8L2JvZHk+Cgo8L2h0bWw+" + webUI["html/login.html"] = "PCFkb2N0eXBlIGh0bWw+CjxodG1sIGxhbmc9ImVuIj4KCjxoZWFkPgogIDxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KICA8bWV0YSBuYW1lPSJ2aWV3cG9ydCIgY29udGVudD0id2lkdGg9ZGV2aWNlLXdpZHRoLCBpbml0aWFsLXNjYWxlPTEuMCIgLz4KICA8dGl0bGU+eFRlVmU8L3RpdGxlPgogIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iY3NzL3NjcmVlbi5jc3MiIHR5cGU9InRleHQvY3NzIj4KICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9ImNzcy9iYXNlLmNzcyIgdHlwZT0idGV4dC9jc3MiPgogIDxzY3JpcHQgbGFuZ3VhZ2U9ImphdmFzY3JpcHQiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJqcy9uZXR3b3JrX3RzLmpzIj48L3NjcmlwdD4KICA8c2NyaXB0IGxhbmd1YWdlPSJqYXZhc2NyaXB0IiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ianMvYXV0aGVudGljYXRpb25fdHMuanMiPjwvc2NyaXB0Pgo8L2hlYWQ+Cgo8Ym9keT4KCiAgPGRpdiBpZD0iaGVhZGVyIiBjbGFzcz0iaW1nQ2VudGVyIj48L2Rpdj4KCiAgPGRpdiBpZD0iYm94Ij4KCiAgICA8ZGl2IGlkPSJoZWFkbGluZSI+CiAgICAgIDxoMSBpZD0iaGVhZC10ZXh0IiBjbGFzcz0iY2VudGVyIj57ey5sb2dpbi5oZWFkbGluZX19PC9oMT4KICAgIDwvZGl2PgoKICAgIDxwIGlkPSJlcnIiIGNsYXNzPSJlcnJvck1zZyBjZW50ZXIiPnt7LmF1dGhlbnRpY2F0aW9uRXJyfX08L3A+CgogICAgPGRpdiBpZD0iY29udGVudCI+CgogICAgICA8Zm9ybSBpZD0iYXV0aGVudGljYXRpb24iIGFjdGlvbj0iIiBtZXRob2Q9InBvc3QiPgoKICAgICAgICA8aDU+e3subG9naW4udXNlcm5hbWUudGl0bGV9fTo8L2g1PgogICAgICAgIDxpbnB1dCBpZD0idXNlcm5hbWUiIHR5cGU9InRleHQiIG5hbWU9InVzZXJuYW1lIiBwbGFjZWhvbGRlcj0iVXNlcm5hbWUiIHZhbHVlPSIiPgogICAgICAgIDxoNT57ey5sb2dpbi5wYXNzd29yZC50aXRsZX19OjwvaDU+CiAgICAgICAgPGlucHV0IGlkPSJwYXNzd29yZCIgdHlwZT0icGFzc3dvcmQiIG5hbWU9InBhc3N3b3JkIiBwbGFjZWhvbGRlcj0iUGFzc3dvcmQiIHZhbHVlPSIiPgoKICAgICAgPC9mb3JtPgoKICAgIDwvZGl2PgoKICAgIDxkaXYgaWQ9ImJveC1mb290ZXIiPgogICAgICA8aW5wdXQgaWQ9InN1Ym1pdCIgY2xhc3M9IiIgdHlwZT0iYnV0dG9uIiB2YWx1ZT0ie3suYnV0dG9uLmxvZ2lufX0iIG9uY2xpY2s9ImphdmFzY3JpcHQ6IGxvZ2luKCk7Ij4KICAgIDwvZGl2PgoKICA8L2Rpdj4KCjwvYm9keT4KCjwvaHRtbD4=" + webUI["html/maintenance.html"] = "PCFkb2N0eXBlIGh0bWw+CjxodG1sIGxhbmc9ImVuIj4KCjxoZWFkPgogIDxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KICA8bWV0YSBuYW1lPSJ2aWV3cG9ydCIgY29udGVudD0id2lkdGg9ZGV2aWNlLXdpZHRoLCBpbml0aWFsLXNjYWxlPTEuMCIgLz4KICA8dGl0bGU+eFRlVmU8L3RpdGxlPgogIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iY3NzL3NjcmVlbi5jc3MiIHR5cGU9InRleHQvY3NzIj4KICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9ImNzcy9iYXNlLmNzcyIgdHlwZT0idGV4dC9jc3MiPgo8L2hlYWQ+Cgo8Ym9keT4KCiAgPGRpdiBpZD0iaGVhZGVyIiBjbGFzcz0iaW1nQ2VudGVyIj48L2Rpdj4KCiAgPGRpdiBpZD0iYm94Ij4KCiAgICA8ZGl2IGlkPSJoZWFkbGluZSI+CiAgICAgIDxoMSBpZD0iaGVhZC10ZXh0IiBjbGFzcz0iY2VudGVyIj5NYWludGVuYW5jZTwvaDE+CiAgICA8L2Rpdj4KCiAgICA8ZGl2IGlkPSJjb250ZW50Ij4KICAgICAgeFRlVmUgaXMgdXBkYXRpbmcgdGhlIGRhdGFiYXNlLCBwbGVhc2UgdHJ5IGFnYWluIGxhdGVyLgogICAgPC9kaXY+CgogICAgPGRpdiBpZD0iYm94LWZvb3RlciI+PC9kaXY+CgogIDwvZGl2PgoKPC9ib2R5PgoKPC9odG1sPg==" webUI["html/video/stream-limit.ts"] = "R0AREABC8CUAAcEAAP8B/wAB/IAUSBIBBkZGbXBlZwlTZXJ2aWNlMDF3fEPK//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////9HQAAQAACwDQABwQAAAAHwACqxBLL//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////0dQABAAArASAAHBAADhAPAAG+EA8AAVvU1W////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////R0EAMAdQAAB7DH4AAAAB4AAAgMAKMQAJEKERAAfYYQAAAAEJ8AAAAAFnZAAorNlAeAIn5cBEAAADAAQAAAMAyDxgxlgAAAABaOvjyyLAAAABBgX//6rcRem95tlIt5Ys2CDZI+7veDI2NCAtIGNvcmUgMTUyIHIyODU0IGU5YTU5MDMgLSBILjI2NC9NUEVHLTQgQVZDIGNvZGVjIC0gQ29weWxlZnQgMjAwMy0yMDE3IC0gaHR0cDovL3dHAQARd3cudmlkZW9sYW4ub3JnL3gyNjQuaHRtbCAtIG9wdGlvbnM6IGNhYmFjPTEgcmVmPTMgZGVibG9jaz0xOjA6MCBhbmFseXNlPTB4MzoweDExMyBtZT1oZXggc3VibWU9NyBwc3k9MSBwc3lfcmQ9MS4wMDowLjAwIG1peGVkX3JlZj0xIG1lX3JhbmdlPTE2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ACqxBLL//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////0dQABEAArASAAHBAADhAPAAG+EA8AAVvU1W////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////RwEAGO10tGlFAwyE91Tzg8923ovJk1dv2xh1gVlYQFtWdZ6NSQ8vgHM7/tMfIZPsqgCU856rdBJJRMDaor/oWA7pkvSmC2aqaC5fd/mkWUPTuG8fRhGqOY1rKxLNSI3HtTQAcuVBxRM0NfMw0ky/JMJYZiCgXcNsxpxl+khr/9fKtO5Fg2VNBti92xcZimHUZDJMQTBOY6vSR9L1N2O/kJQCpdfuc9bkcUTMjH/es/lAySxvbiislkohqkpHAQAZVatwHI0t9eHCUfDyWUEtuCNyDwQFOVMtaYEQJrTrhQX0VduT86F0u0wN9ag0uPsrmX6Rid/x5S7KI1SkS+qP6cdmgSP57uiF4dG6IKsWNfGBLY09H/CFlrg73WINQkkp2diKkdEmtZetn8+ZAKzR5eXN5FebiKt6pIkNLuSofjosypEs2o6boKsfpmbtOV0idOeWDM9C8EIcn3aZwk1s2KBDvt1DlY+i2Cuvhk3XoKLT+pq/bOC5QkcBABolcOXneZXLoQw9W1PH1f/of92Ytjj8okrWijcQAKlE5l8XoTb9qrOiZnDOhqwcMlB9H9rorq041I89hChohYoSkJElcM8V+r8WYN5axD1BNyfwaHAOm4UN2/VEYOkNSfMjmx2S0WW/F2ha8Jj4fc4QgqcXr+TnnbwqLkLTValK4Qa1pcv7PIbDq6zCUfxe04guZ8xEhPQjp17/G6IB/6uq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wnibxQ/cXEblVnM47wbCN3iy4eHjYB5MoIICrSYmd8nt4V0toLs084KJlmnur5FbApYM4W79ff4oZkW88Cg8Fv8TnWhh1Hqc4UlhMbRKm2QxDgfBxar3U7BwNR6prrXXjqfR7ja3tPli+H7Jez/xcTg32QpHAQAdTa7pSSgBvmOqzz175NAFIhwE9p3d71F9jLvhaPv8q1iKopL0kizwzEWElnXWmNhfLkl/Au8KujnoKUaxVdTe+zAZm2dOkejnpNVtVj0Aw9wKcG3ZQ1iRZrUFRIoPKYlmR+oi0LrupuhYABtgPbdCbDtezGTr0nw9wVd/rZ6V+1wcoJ6+8VAVueIdwI3brqm6EoFHiI8L6lER+9SefB8fHo4NYgr/I8jSxaa/2PLX2K/DjrlY6bN8fEcBAB7DXsuh8DITF6CYWj2HTFvqfzlic3QHXnHtvsTFNpyVY1LY8y/fRK2mwALN6IB5W3OuyoKiA3K0lJdQUv2gYhHWvPTV218HYrD0rkbMxRH0SiEEkrHDeOt5T1HtWD13D2/QvMu535fsfZyeaFDjdCE9M0Xi8Lfc7Xj1ZNGend7Jo7/cEiczFkc1vB4z2JpFGZreV2EdquyEzC2STFJtfimyx8QlLngEuR1cxH+lWEcFX+mvBa/eqktIRwEAH6VazFLPNsnHZqsI66TVoArQuUUGFAzr8MT8GZ9V6qpZa5D0jA/4eGi6Kq0smUgRExnqIbSMLWqDf/Pk2YT3MpHTu9VE3Dn9blgB6KsVIkWnB98Y2n/6DrZDcF94Ndu0Ka4U/RZwdV5O5KcO+lU2ZiIOYTYZ6Ie0d+tApxYxJ+YmxaDoCyRNe6crw/yzR5SflT8ddi/E2BM+l+nwVDiKZ/714fmrBxFKWuqLiQNHV19o1cZ8Ubun+ZtHQAASAACwDQABwQAAAAHwACqxBLL//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////0dQABIAArASAAHBAADhAPAAG+EA8AAVvU1W////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////RwEAEH1s3BdtHdF1ln55B24wdACF/ggcRtPmB4IUB6cZJ+m32I4R48ZkdhAFBulgWcsv0wZwH0o1yi3i4qm3rJ98AUKdB9PsNyG9gURV0bTw4myAj6g5Dgodfv6w9bsbOxsGUWkvgAJ3rrR010BvZbIa6CMRCQRjxkCfRF77ansRJZT0JzhtYeSS/ZJob8Rr2jrng3W2rkmHtE+rdqlPiHxmwkRZvYGhBxwiJO2L6f+l/cABsfs09rA+A0pHAQAREZay3TBUIAfMWhApE+LaPgeyOYtaPFONA9aC0h4QrFkaLZfb86678MK+zLgqDBsDoj50eZHMVcczRjs4sYlv7RG8RIWKb5lB9Kn/8+CkxiiA11cHH1yzLX2SKCmhsak/+P/zYQ1EDvEj33bl9e3Jd62cTI+Qw99KrsWnUMN8hFNeXzoGHA3aec+Li4NFboF8sa6lCPR6Csxsvxw8DJaWCnER5Z0p+nKhXavF/eNHQ0DX47ohycc87UcBABKsYHCHXXe3vK1cFYDWO6rhwM6hxCdJ+/X+VB1akQejL6iBMdUPuadUqBnbprwJM0dWpSSn9uuZZeqe46iZOGIJUo69d8x+ZSvPcBH/dK1Y0LJnoWdgWH51SQg7eYqcwjQW3BOy7ZF02Hn1EhTuhsN7ms8zv3WIeEBDBq0T3Idl+Tmw9iJU9skVYiwygHG2+0XwrLa6y+uiQPwMzrnEr1kuf24XoAqrJTZQiVH3aQF4d94yDreWu2KPRwEAE2FsynHZaUcBXEFbeX0nSxZ7sRcRjJvc7RYOny6N8QFwKDVO7jpRWWYM55kuepBOyZ+7BFYeG+FU1kR+ZfmqyDNkD4D1IPwNh6u9JQxDymfN/aMcQC3WxdvCKquPsAut6dugpGkOFtIe+W3ayc4V/J978P+h1EDFMbFjxRPuXht0K2dBQZCJ0ybISUDqWzhPuep8CdxSU4MvMVfdXh7FLl/BqKJUTT+vM+Pz3XnqCQQmH5TjQ4CK55VHAQAUEtgfkBwIYgtwHkhjmtLw7HNTeJeMfTjATEKcyuKzItSeYxHBmGzQ/+G2otpPCOkVAXJ9mfx7LxrW4joZ0ttTRQJ/wqMUK1IN349LiJoo8y/+FwN4jPNDwIleJG697riqnmLOweFW8spHKLBfnHcyC1pG6EIxFpTqUQ0KHqXD/KXIHKioJNAOVwQ1Gfloxebo/Tdtd00dpHP3gcsAOnV75APCYOjVIlwm2X6ViDeZw6Btdb/Br/+yokcBABU3+eOESLlneGbR5SLiL8wPkoRaZ5X7xFlMTMvsv9yHk26bVdmsubSdbYS1Hy64n0+NnL7C1aLD7aJxOudMjVW5goZbfO2KxBQkCD4HFA284wbaB5vOL7mRilCn6YEs1kiwf22+fBLNUmXDb2p353wrD/ygTDhlki66USvUmd/ZAs9uzAddegEzy7Xn00YysWTu/hegYyZtWFC+X5dhLubWJ7n96y5wjrP7PAOXoQQtFUH9j/rBiP/7RwEAFnL/wYKYuj80mPGtimSbF/E9K7XwjwBz8yHZubmVMTCmwkZBM4h0FR1thnUGiSjqjJT6SfunWCZ/dZDQplrzS00UKcUP399SyM+nNG1br8Za0ZYwWch8nyLHYXSRuxdnrfUUespsOQo1cWSLGf0pV2HIcHoiAAEKwPU6irB5BSoFvB1qKVjgEk+QwAEYAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAABHAQA3pAD/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////AwAAAwAAAwAAAwAAAwAAAwBbwUdBABgAAAHgAACAwAoxAAmBIREAB/SBAAAAAQnwAAAAAUGaJGxDv/6plgAAAwAAAwAAAwAAAwAAAwAAAwAAAwAKCKB0AIhy1ftwLNISWucTFC7xeBcaIzP3oZjZo8uT9hqZVstWGnrPz+vjaA5FuCO+K2w7/o39LygDO7aL+0zSrN90LW7r133x8+f+PEKk8d7pd2fj4RYuMOXOYunzFzRX/4IvR1XsK5WJYwVkOca3yfo7DTvUBP9rgSiTRwEAGQD6CFK1PBC4qYCa+coLVnX+jgODNrau5YJXIekDI4+wUNV+5T5HE4e2t5EGAjn77+kC1Vghmvx8KqPnylVUvsaTofheggxHsPuxn1zQt6nA59UglrRUMn8b4pmrvfqTBSqU949+AcNAI6M/eAqz6r0RG5KNeBhx8R2f0x2kujwHU3pc3rlPb6ZrFM/2HiG97eEIezrvWFG7YAAAAwAAAwAE1KRo1VfbdZQ/tOpNGxFmTcQoFidyD2tHAQAapTTIErUKA2Rc9uIzGJu+oW0uNOxRyl6oJNUNJp5L9TIshNS1CmUKgdCaE3LkLwdE8iUkUnIGfWLiWpWmjzsINYC8dnDaSptB53yJkBu0SsR00oo1PZ0pl4ZzoXGSYQJTPaVCbj6FNqm5wcnUqKTB/rgHdPdnDj0K8asLABeo/n3XCXrDorI+LYSD1FBgmV9O7RZdjfL0NnXOQkiq/ZGirwVV0cUF1aHtZx1yHlAAZKuuu7TqB13CAUcBADuRAP///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////yj/IrOvAEoXDNGy+nrxWN0l8cmuqWYaUJpuM9XgAAADAAADAAKmR0EAPAcQAACJHH4AAAAB4AAAgMAKMQAJSOERAAkQoQAAAAEJ8AAAAAFBnkJ4hf8AAAMAAAMAAAMAAAMAAAMAAAMAAAMAC/BmhyuvLmkCgKTgACEXfOVvHRHdpBEEmTTz9pIZCa2FD0CXukzDCakOHekTpJQSdsfd7a/jjM1/5lBtKCAGQ6zOCSQ6DeKtyw+CugDuuglGipwmvQW+FIDjnZ6HRd0uaSOGy6VB3h9MI1o4nqaCqVwwIgubYZFHAQA9XgD////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////WcZrO6BEiqf8pCxYwlz2mkdUzY/ipM/TIHS4m5xQAAAMAAAMAAA5sVm90p14dlvWgBgY7XQ9KVOJKLtaMAN5KiffVQtNuzW5DfL+RewZpAAADAAADAAAQMUdBAB4AAAHgAACAgAUhAAkswQAAAAEJ8AAAAAEBnmF0Qr8AAAMAAAMAAAMAAAMAAAMAAAMAAAMAABJfBjP2+4+W7ZybyT130+Ma4WSqICfd/dS4YtjrLlmh5VBlfrtwJqdN1PBTYDkwGOOONqZQeFN6lLGJoDzvuh3kv1aDBLqug+JhvrSeu5ebnvcrtQzb2REwJL3h9mvtkr0WfDu4AAADAAADAAs32Y4C/6Ns79oCGj6oqLltY3T4I0/QRwEAP5wA//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////8BeoWLRnKQmVgO/RBoBfcK85AAAAMAAAMACFhHQQAwBxAAAJcsfgAAAAHgAACAwAoxAAllAREACUjhAAAAAQnwAAAAAQGeY2pCvwAAAwAAAwAAAwAAAwAAAwAAAwAAAwAAEmDKfLGXsvBBQPNYXlEd6WueJ4deApfcHESlG+7V6u0AiWQqJvNZYM+3Js3Lj9Ldc9yYIHqruVwfMtCYGlX3wMavI/DrhMuJw+RreIF8SKsJD8CMccAAAAMAAAMACrFZOBgEqaP/8EyWsAHV6CgcAgfyox/roEcBADGuAP//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////AAADAAADAHTBR0EAEgAAAeAAAIDACjEACfGhEQAJZQEAAAABCfAAAAABQZpoSahBaJlMCHf//qmWAAADAAADAAADAAADAAADAAADAAADAAALf8A2bry6lUyIAQGNFfVK2Cd7h4qDqmqpvmXfkfTwo2Ab79AHhajxJ4MPWIgAAA84xLRIx7I2CrWjWe96OvgkzgS9mtvhuxdzAgpuIOJI3DEY9mviDDZz8XSAAAADAAADAB7AZkj9AAHHGvk+Pzlku8UkWa5HAQAzogD//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////6HjAkbF/gsWuvw4QAAAAwAAAwAccUdBADQHEAAApTx+AAAAAeAAAIDACjEACblhEQAJgSEAAAABCfAAAAABQZ6GRREsL/8AAAMAAAMAAAMAAAMAAAMAAAMAAAMAAA3URJB/3lMHSmOd0GYZnfpoR80WdqxlyHzPX+V81VUMeXIGrRgq5agd+ACdjoGI036yQ/rmpGw0CmMBrKwpI+nwFo3SP0s1rI2yHBZaiPJjSUgw33rBkxXcq55kfLf2sAAAAwAAAwACBWolidWDnIeQAAADRwEANbEA//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////8AAAMADulHQQA2NAD///////////////////////////////////////////////////////////////////8AAAHgAACAgAUhAAmdQQAAAAEJ8AAAAAEBnqV0Qr8AAAMAAAMAAAMAAAMAAAMAAAMAAAMAABJXNihCnx11JUosH2hBE53O/YN+GPHqcnJiQBIf3maTAAj5iRt+7GYUKBAU9iCXTiouCjGYgAAAAwAAAwA9p4HQBg2cAAADAAADAADGgUdBADc4EAAAs0x+AP////////////////////////////////////////////////////////////////8AAAHgAACAwAoxAAnVgREACblhAAAAAQnwAAAAAQGep2pCvwAAAwAAAwAAAwAAAwAAAwAAAwAAAwAAAwBR6/L83y+ZevtMZ0FW4lp8qV7fVXQAhLAWlS6mDxvpaSUgChorvgTMXtxJEIAAAAMAAAMACqFCAAADAAADAAADAAz4R0EAOCsA////////////////////////////////////////////////////////AAAB4AAAgMAKMQALYiERAAnVgQAAAAEJ8AAAAAFBmqxJqEFsmUwId//+qZYAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAApQTq0hABLvkcWCYrAaRRPNDrECJGlF/11BYvG9+JJ9Y86nxnmQzPxtAAe1UgOsXAAADAAADAAADAAADAAADAAADAAADA/JHQQA5JhAAAMFcfgD/////////////////////////////////////////AAAB4AAAgMAKMQALKeERAAnxoQAAAAEJ8AAAAAFBnspFFSwv/wAAAwAAAwAAAwAAAwAAAwAAAwAAAwAADdRFmvrVE0KXDOGwWddlwYa1foib7tXZKmkua6R4APb4b8+tXwdSNNqgf2IVNwGTohgQAcMvp6SiQxpiQym4AAADAAADAANUNUAAAAMAAAMAAAMBN0dBADo8AP//////////////////////////////////////////////////////////////////////////////AAAB4AAAgIAFIQALDcEAAAABCfAAAAABAZ7pdEK/AAADAAADAAADAAADAAADAAADAAADAAADAFHTAfujIUaaLSuklb9y0/so9AEtQAqkAxOviALQZ5jNt/iOkABrCOZ4md0iUnFwAAADAAADAALwckAAAAMAAAMAAATcR0EAO0IQAADPbH4A//////////////////////////////////////////////////////////////////////////////8AAAHgAACAwAoxAAtGAREACynhAAAAAQnwAAAAAQGe62pCvwAAAwAAAwAAAwAAAwAAAwAAAwAAAwAAAwBR6/L83y+WryR9gmVKPGbIhJpkgAFgHCej3gB6rAHPgHHAAAADAAADAAAYIV0AAAMAAAMAAAMABnxHQQA8UQD//////////////////////////////////////////////////////////////////////////////////////////////////////////wAAAeAAAIDACjEAC9KhEQALRgEAAAABCfAAAAABQZrwSahBbJlMCG///qeEAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAADAAAZ8UdBAD00EAAA3Xx+AP///////////////////////////////////////////////////////////wAAAeAAAIDACjEAC5phEQALYiEAAAABCfAAAAABQZ8ORRUsL/8AAAMAAAMAAAMAAAMAAAMAAAMAAAMAAA3URZr61RNClwzhI2ZXdRHYLZWc1yTgKRhTIXBNABHQKIIyYNyc+AaEn1jhATEAAAMAAAMAAAMAckkIAAADAAADAAADAEbBR0EAPkYA////////////////////////////////////////////////////////////////////////////////////////////AAAB4AAAgIAFIQALfkEAAAABCfAAAAABAZ8tdEK/AAADAAADAAADAAADAAADAAADAAADAAADAFHTAfujIUAYRtY0f/43cIs2OjxACR2hMR1QBGYX+34JGAAAAwAAAwAAAwKEJ6AAAAMAAAMAAAMA3oFHQQA/QhAAAOuMfgD//////////////////////////////////////////////////////////////////////////////wAAAeAAAIDACjEAC7aBEQALmmEAAAABCfAAAAABAZ8vakK/AAADAAADAAADAAADAAADAAADAAADAAADAFHr8vzfL5avJH2CZUo8ZsiEmmSAAWAcJ6PeAHqsAc+AccAAAAMAAAMAABghXQAAAwAAAwAAAwAGfEdBADBRAP//////////////////////////////////////////////////////////////////////////////////////////////////////////AAAB4AAAgMAKMQANQyERAAu2gQAAAAEJ8AAAAAFBmzRJqEFsmUwIZ//+nhAAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAGVAR0EAMTQQAAD5nH4A////////////////////////////////////////////////////////////AAAB4AAAgMAKMQANCuERAAvSoQAAAAEJ8AAAAAFBn1JFFSwv/wAAAwAAAwAAAwAAAwAAAwAAAwAAAwAADdRFmvrVE0KXDOEjZld1EdgtlZzXJOApGFMhcE0AEdAogjJg3Jz4BoSfWOEBMQAAAwAAAwAAAwBySQgAAAMAAAMAAAMARsFHQQAyRgD///////////////////////////////////////////////////////////////////////////////////////////8AAAHgAACAgAUhAAvuwQAAAAEJ8AAAAAEBn3F0Qr8AAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAUdMB+6MhQBhG1jR//jdwizY6PEAJHaExHVAEZhf7fgkYAAADAAADAAADAoQnoAAAAwAAAwAAAwDegEdBADNCEAABB6x+AP//////////////////////////////////////////////////////////////////////////////AAAB4AAAgMAKMQANJwERAA0K4QAAAAEJ8AAAAAEBn3NqQr8AAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAUevy/N8vlq8kfYJlSjxmyISaZIABYBwno94AeqwBz4BxwAAAAwAAAwAAGCFdAAADAAADAAADAAZ8R0EANFIA////////////////////////////////////////////////////////////////////////////////////////////////////////////AAAB4AAAgMAKMQANs6ERAA0nAQAAAAEJ8AAAAAFBm3hJqEFsmUwIV//+OEAAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAYtHQQA1NBAAARW8fgD///////////////////////////////////////////////////////////8AAAHgAACAwAoxAA17YREADUMhAAAAAQnwAAAAAUGflkUVLC//AAADAAADAAADAAADAAADAAADAAADAAAN1EWa+tUTQpcM4SNmV3UR2C2VnNck4CkYUyFwTQAR0CiCMmDcnPgGhJ9Y4QExAAADAAADAAADAHJJCAAAAwAAAwAAAwBGwEdBADZGAP///////////////////////////////////////////////////////////////////////////////////////////wAAAeAAAICABSEADV9BAAAAAQnwAAAAAQGftXRCvwAAAwAAAwAAAwAAAwAAAwAAAwAAAwAAAwBR0wH7oyFAGEbWNH/+N3CLNjo8QAkdoTEdUARmF/t+CRgAAAMAAAMAAAMChCegAAADAAADAAADAN6BR0EAN0IQAAEjzH4A//////////////////////////////////////////////////////////////////////////////8AAAHgAACAwAoxAA2XgREADXthAAAAAQnwAAAAAQGft2pCvwAAAwAAAwAAAwAAAwAAAwAAAwAAAwAAAwBR6/L83y+WryR9gmVKPGbIhJpkgAFgHCej3gB6rAHPgHHAAAADAAADAAAYIV0AAAMAAAMAAAMABn0=" } From 9a043701999af8631a24c50e9f51c6fe3c1df6ab Mon Sep 17 00:00:00 2001 From: Senex Crenshaw Date: Fri, 26 Aug 2022 12:19:01 +0000 Subject: [PATCH 178/189] Improve build environment --- .github/workflows/dockerpublish.yml | 15 +-------------- .github/workflows/xTeVe_release.yml | 5 ----- .vscode/tasks.json | 16 ++++++++++++++-- xteve.go | 12 ++++++++++++ 4 files changed, 27 insertions(+), 21 deletions(-) diff --git a/.github/workflows/dockerpublish.yml b/.github/workflows/dockerpublish.yml index dd301c6..21b91b8 100644 --- a/.github/workflows/dockerpublish.yml +++ b/.github/workflows/dockerpublish.yml @@ -1,16 +1,5 @@ name: Publish to Docker Registry Manual on: - # release: - # types: [published] - #push: - #branches: - # - main - #schedule: - # - cron: '0 2 * * 0' # Weekly on Sundays at 02:00 - # workflow_run: - # workflows: ["SLSA Go releaser"] - # types: - # - completed workflow_dispatch: jobs: @@ -20,8 +9,6 @@ jobs: - name: Clone repository uses: actions/checkout@v2 - # with: - # ref: ${{ steps.vars.outputs.tag }} - name: Read version from release.json uses: notiz-dev/github-action-json-property@release @@ -51,4 +38,4 @@ jobs: context: . platforms: linux/amd64,linux/arm64,linux/arm/v7 push: true - tags: ${{ secrets.DOCKER_USERNAME }}/xteve:latest,${{ secrets.DOCKER_USERNAME }}/xteve:${{ steps.xteve_version.outputs.prop }} + tags: ${{ secrets.DOCKER_USERNAME }}/xteve:latest,${{ secrets.DOCKER_USERNAME }}/xteve:${{ steps.xteve_version.outputs.prop }} \ No newline at end of file diff --git a/.github/workflows/xTeVe_release.yml b/.github/workflows/xTeVe_release.yml index e287823..4de1b55 100644 --- a/.github/workflows/xTeVe_release.yml +++ b/.github/workflows/xTeVe_release.yml @@ -1,9 +1,6 @@ name: xTeVe release manual on: workflow_dispatch: - # push: - # tags: - # - "*" release: types: [created] @@ -47,9 +44,7 @@ jobs: overwrite: true extra_files: LICENSE README.md release_tag: v${{steps.xteve_version.outputs.prop}} - #release_name: v${{steps.xteve_version.outputs.prop}} binary_name: xteve - #asset_name: "xteve-${{ steps.xteve_version.outputs.prop }}-${{ matrix.goos }}-${{ matrix.goarch }}" build_flags: -v ldflags: -X "main.appVersion=${{ steps.xteve_version.outputs.prop }}" -X "main.buildTime=${{ env.BUILD_TIME }}" -X main.gitCommit=${{ github.sha }} -X main.gitRef=${{ github.ref }} diff --git a/.vscode/tasks.json b/.vscode/tasks.json index e5de95c..ce848a7 100644 --- a/.vscode/tasks.json +++ b/.vscode/tasks.json @@ -22,6 +22,19 @@ }, "label": "tsc build" }, + { + "label": "Build webUI", + "type": "shell", + "command": "test -f './xteve' && ./xteve -buildwebui", + "presentation": { + "reveal": "always", + "panel": "new" + }, + "dependsOn": [ + "Update Version", + "tsc build" + ] + }, { "label": "Build xTeVe", "type": "shell", @@ -31,8 +44,7 @@ "isDefault": true }, "dependsOn": [ - "Update Version", - "tsc build" + "Build webUI" ] } ] diff --git a/xteve.go b/xteve.go index 26ca19c..cfbb480 100644 --- a/xteve.go +++ b/xteve.go @@ -57,6 +57,7 @@ var h = flag.Bool("h", false, ": Show help") // Activates Development Mode. The local Files are then used for the Webserver. var dev = flag.Bool("dev", false, ": Activates the developer mode, the source code must be available. The local files for the web interface are used.") +var buildwebui = flag.Bool("buildwebui", false, ": Builds webUI.go and exits.") func main() { @@ -116,6 +117,17 @@ func main() { return } + if *buildwebui { + src.HTMLInit("webUI", "src", "html"+string(os.PathSeparator), "src"+string(os.PathSeparator)+"webUI.go") + err := src.BuildGoFile() + if err != nil { + src.ShowError(err, 0) + } else { + fmt.Println("webUI.go built successfully") + } + os.Exit(0) + } + system.Dev = *dev // Display System Information From 0d2496c5712b9fa3b8a13691f89daab69caffeff Mon Sep 17 00:00:00 2001 From: Senex Crenshaw Date: Fri, 26 Aug 2022 12:24:53 +0000 Subject: [PATCH 179/189] Updated license per MIT specs --- LICENSE | 1 + xteve.go | 3 ++- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/LICENSE b/LICENSE index 622e181..d250dac 100644 --- a/LICENSE +++ b/LICENSE @@ -1,6 +1,7 @@ MIT License Copyright (c) 2019 marmei@xteve-project +Copyright (c) 2022 senexcrenshaw Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/xteve.go b/xteve.go index cfbb480..23e6a4f 100644 --- a/xteve.go +++ b/xteve.go @@ -1,7 +1,8 @@ // Copyright 2019 marmei. All rights reserved. +// Copyright 2022 senexcrenshaw. All rights reserved. // Use of this source code is governed by a MIT license that can be found in the // LICENSE file. -// GitHub: https://github.com/xteve-project/xTeVe +// GitHub: https://github.com/SenexCrenshaw/xTeVe package main From 4f4129f76852fc96bb660a0c9422a5a2a78e1076 Mon Sep 17 00:00:00 2001 From: Senex Crenshaw Date: Fri, 26 Aug 2022 13:06:08 +0000 Subject: [PATCH 180/189] Removed hmtl/js --- .gitignore | 1 + html/js/authentication_ts.js | 30 - html/js/base_ts.js | 454 --------- html/js/classes_ts.js | 40 - html/js/configuration_ts.js | 127 --- html/js/logs_ts.js | 40 - html/js/menu_ts.js | 1831 ---------------------------------- html/js/network_ts.js | 97 -- html/js/settings_ts.js | 612 ------------ src/webUI.go | 1 - 10 files changed, 1 insertion(+), 3232 deletions(-) delete mode 100644 html/js/authentication_ts.js delete mode 100644 html/js/base_ts.js delete mode 100644 html/js/classes_ts.js delete mode 100644 html/js/configuration_ts.js delete mode 100644 html/js/logs_ts.js delete mode 100644 html/js/menu_ts.js delete mode 100644 html/js/network_ts.js delete mode 100644 html/js/settings_ts.js diff --git a/.gitignore b/.gitignore index 90713dd..f8941a2 100644 --- a/.gitignore +++ b/.gitignore @@ -1,6 +1,7 @@ .DS_Store xteve xteve.exe +html/js/ /.idea/* .xteve/ __debug_bin diff --git a/html/js/authentication_ts.js b/html/js/authentication_ts.js deleted file mode 100644 index 4b48d51..0000000 --- a/html/js/authentication_ts.js +++ /dev/null @@ -1,30 +0,0 @@ -function login() { - var err = false; - var data = new Object(); - var div = document.getElementById("content"); - var form = document.getElementById("authentication"); - var inputs = div.getElementsByTagName("INPUT"); - for (var i = inputs.length - 1; i >= 0; i--) { - var key = inputs[i].name; - var value = inputs[i].value; - if (value.length == 0) { - inputs[i].style.borderColor = "red"; - err = true; - } - data[key] = value; - } - if (err == true) { - data = new Object(); - return; - } - if (data.hasOwnProperty("confirm")) { - if (data["confirm"] != data["password"]) { - alert("sdafsd"); - document.getElementById('password').style.borderColor = "red"; - document.getElementById('confirm').style.borderColor = "red"; - document.getElementById("err").innerHTML = "{{.account.failed}}"; - return; - } - } - form.submit(); -} diff --git a/html/js/base_ts.js b/html/js/base_ts.js deleted file mode 100644 index 8d85c83..0000000 --- a/html/js/base_ts.js +++ /dev/null @@ -1,454 +0,0 @@ -var SERVER = new Object(); -var BULK_EDIT = false; -var COLUMN_TO_SORT; -var SEARCH_MAPPING = new Object(); -var UNDO = new Object(); -var SERVER_CONNECTION = false; -var WS_AVAILABLE = false; -// Menu -var menuItems = new Array(); -menuItems.push(new MainMenuItem("playlist", "{{.mainMenu.item.playlist}}", "m3u.png", "{{.mainMenu.headline.playlist}}")); -menuItems.push(new MainMenuItem("filter", "{{.mainMenu.item.filter}}", "filter.png", "{{.mainMenu.headline.filter}}")); -menuItems.push(new MainMenuItem("xmltv", "{{.mainMenu.item.xmltv}}", "xmltv.png", "{{.mainMenu.headline.xmltv}}")); -menuItems.push(new MainMenuItem("mapping", "{{.mainMenu.item.mapping}}", "mapping.png", "{{.mainMenu.headline.mapping}}")); -menuItems.push(new MainMenuItem("users", "{{.mainMenu.item.users}}", "users.png", "{{.mainMenu.headline.users}}")); -menuItems.push(new MainMenuItem("settings", "{{.mainMenu.item.settings}}", "settings.png", "{{.mainMenu.headline.settings}}")); -menuItems.push(new MainMenuItem("log", "{{.mainMenu.item.log}}", "log.png", "{{.mainMenu.headline.log}}")); -menuItems.push(new MainMenuItem("logout", "{{.mainMenu.item.logout}}", "logout.png", "{{.mainMenu.headline.logout}}")); -// Settings categories -var settingsCategory = new Array(); -settingsCategory.push(new SettingsCategoryItem("{{.settings.category.general}}", "tlsMode,xteveAutoUpdate,hostIP,hostName,tuner,epgSource,disallowURLDuplicates,clearXMLTVCache,api")); -settingsCategory.push(new SettingsCategoryItem("{{.settings.category.mapping}}", "defaultMissingEPG,enableMappedChannels")); -settingsCategory.push(new SettingsCategoryItem("{{.settings.category.files}}", "update,files.update,temp.path,cache.images,xepg.replace.missing.images")); -settingsCategory.push(new SettingsCategoryItem("{{.settings.category.streaming}}", "buffer,udpxy,buffer.size.kb,storeBufferInRAM,buffer.timeout,user.agent,ffmpeg.path,ffmpeg.options,vlc.path,vlc.options")); -settingsCategory.push(new SettingsCategoryItem("{{.settings.category.backup}}", "backup.path,backup.keep")); -settingsCategory.push(new SettingsCategoryItem("{{.settings.category.authentication}}", "authentication.web,authentication.pms,authentication.m3u,authentication.xml,authentication.api")); -function showPopUpElement(elm) { - var allElements = new Array("popup-custom"); - for (var i = 0; i < allElements.length; i++) { - showElement(allElements[i], false); - } - showElement(elm, true); - setTimeout(function () { - showElement("popup", true); - }, 10); - return; -} -function showElement(elmID, type) { - var cssClass; - switch (type) { - case true: - cssClass = "block"; - break; - case false: - cssClass = "none"; - break; - } - document.getElementById(elmID).className = cssClass; -} -function changeButtonAction(element, buttonID, attribute) { - var value = element.options[element.selectedIndex].value; - document.getElementById(buttonID).setAttribute(attribute, value); -} -function getLocalData(dataType, id) { - let data = {}; - switch (dataType) { - case "m3u": - data = SERVER["settings"]["files"][dataType][id]; - break; - case "hdhr": - data = SERVER["settings"]["files"][dataType][id]; - break; - case "filter": - case "custom-filter": - case "group-title": - if (id == -1) { - data["active"] = true; - data["caseSensitive"] = false; - data["description"] = ""; - data["exclude"] = ""; - data["filter"] = ""; - data["include"] = ""; - data["name"] = ""; - data["type"] = "group-title"; - data["preserveMapping"] = true; - data["startingChannel"] = SERVER["settings"]["mapping.first.channel"]; - SERVER["settings"]["filter"][id] = data; - } - data = SERVER["settings"]["filter"][id]; - break; - case "xmltv": - data = SERVER["settings"]["files"][dataType][id]; - break; - case "users": - data = SERVER["users"][id]["data"]; - break; - case "mapping": - data = SERVER["xepg"]["epgMapping"][id]; - break; - case "m3uGroups": - data = SERVER["data"]["playlist"]["m3u"]["groups"]; - break; - } - return data; -} -function getOwnObjProps(object) { - return object ? Object.getOwnPropertyNames(object) : []; -} -function getAllSelectedChannels() { - var channels = new Array(); - if (BULK_EDIT == false) { - return channels; - } - var trs = document.getElementById("content_table").getElementsByTagName("TR"); - for (var i = 1; i < trs.length; i++) { - if (trs[i].style.display != "none") { - if (trs[i].firstChild.firstChild.checked == true) { - channels.push(trs[i].id); - } - } - } - return channels; -} -function selectAllChannels() { - var bulk = false; - var trs = document.getElementById("content_table").getElementsByTagName("TR"); - if (trs[0].firstChild.firstChild.checked == true) { - bulk = true; - } - for (var i = 1; i < trs.length; i++) { - if (trs[i].style.display != "none") { - switch (bulk) { - case true: - trs[i].firstChild.firstChild.checked = true; - break; - case false: - trs[i].firstChild.firstChild.checked = false; - break; - } - } - } - return; -} -function bulkEdit() { - BULK_EDIT = !BULK_EDIT; - var className; - var rows = document.getElementsByClassName("bulk"); - switch (BULK_EDIT) { - case true: - className = "bulk showBulk"; - break; - case false: - className = "bulk hideBulk"; - break; - } - for (var i = 0; i < rows.length; i++) { - rows[i].className = className; - rows[i].checked = false; - } - return; -} -function sortTable(column) { - if (column == COLUMN_TO_SORT) { - return; - } - const table = document.getElementById("content_table"); - const tableHead = table.getElementsByTagName("TR")[0]; - const tableItems = tableHead.getElementsByTagName("TD"); - const sortArr = []; - let xValue; - if (column >= 0 && COLUMN_TO_SORT >= 0) { - tableItems[COLUMN_TO_SORT].className = "pointer"; - tableItems[column].className = "sortThis"; - } - COLUMN_TO_SORT = column; - const rows = table.rows; - if (rows[1] != undefined) { - const tableHeader = rows[0]; - let x = rows[1].getElementsByTagName("TD")[column]; - for (let i = 1; i < rows.length; i++) { - x = rows[i].getElementsByTagName("TD")[column]; - switch (x.childNodes[0].tagName.toLowerCase()) { - case "input": - xValue = x.getElementsByTagName("INPUT")[0].value.toLowerCase(); - break; - case "p": - xValue = x.getElementsByTagName("P")[0].innerText.toLowerCase(); - break; - default: - break; - } - sortArr.push({ key: xValue ? xValue : i, row: rows[i] }); - } - while (table.firstChild) { - table.removeChild(table.firstChild); - } - sortArr.sort((se1, se2) => { - const se1KeyNum = parseFloat(String(se1.key)); - const se2KeyNum = parseFloat(String(se2.key)); - if (!isNaN(se1KeyNum) && !isNaN(se2KeyNum)) { - return se1KeyNum - se2KeyNum; - } - if (se1.key < se2.key) { - return -1; - } - if (se1.key > se2.key) { - return 1; - } - return 0; - }); - table.appendChild(tableHeader); - sortArr.forEach((se) => { - table.appendChild(se.row); - }); - } - return; -} -function createSearchObj() { - SEARCH_MAPPING = new Object(); - var data = SERVER["xepg"]["epgMapping"]; - var channels = getOwnObjProps(data); - var channelKeys = ["x-active", "x-channelID", "x-name", "updateChannelNameRegex", "_file.m3u.name", "x-group-title", "x-xmltv-file"]; - channels.forEach(id => { - channelKeys.forEach(key => { - if (key == "x-active") { - switch (data[id][key]) { - case true: - SEARCH_MAPPING[id] = "online "; - break; - case false: - SEARCH_MAPPING[id] = "offline "; - break; - } - } - else { - if (key == "x-xmltv-file") { - var xmltvFile = getValueFromProviderFile(data[id][key], "xmltv", "name"); - if (xmltvFile != undefined) { - SEARCH_MAPPING[id] = SEARCH_MAPPING[id] + xmltvFile + " "; - } - } - else { - SEARCH_MAPPING[id] = SEARCH_MAPPING[id] + data[id][key] + " "; - } - } - }); - }); - return; -} -function searchInMapping() { - var searchValue = document.getElementById("searchMapping").value; - var trs = document.getElementById("content_table").getElementsByTagName("TR"); - for (var i = 1; i < trs.length; ++i) { - var id = trs[i].getAttribute("id"); - var element = SEARCH_MAPPING[id]; - switch (element.toLowerCase().includes(searchValue.toLowerCase())) { - case true: - document.getElementById(id).style.display = ""; - break; - case false: - document.getElementById(id).style.display = "none"; - break; - } - } - return; -} -function calculateWrapperHeight() { - if (document.getElementById("box-wrapper")) { - var elm = document.getElementById("box-wrapper"); - var divs = new Array("myStreamsBox", "clientInfo", "content"); - var elementsHeight = 0 - elm.offsetHeight; - for (var i = 0; i < divs.length; i++) { - elementsHeight = elementsHeight + document.getElementById(divs[i]).offsetHeight; - } - elm.style.height = window.innerHeight - elementsHeight + "px"; - } - return; -} -function changeChannelNumber(element) { - var dbID = element.parentNode.parentNode.id; - var newNumber = parseFloat(element.value); - var channelNumbers = []; - var data = SERVER["xepg"]["epgMapping"]; - var channels = getOwnObjProps(data); - if (isNaN(newNumber)) { - alert("{{.alert.invalidChannelNumber}}"); - return; - } - channels.forEach(id => { - var channelNumber = parseFloat(data[id]["x-channelID"]); - channelNumbers.push(channelNumber); - }); - for (var i = 0; i < channelNumbers.length; i++) { - if (channelNumbers.indexOf(newNumber) == -1) { - break; - } - if (Math.floor(newNumber) == newNumber) { - newNumber = newNumber + 1; - } - else { - newNumber = newNumber + 0.1; - newNumber.toFixed(1); - newNumber = Math.round(newNumber * 10) / 10; - } - } - data[dbID]["x-channelID"] = newNumber.toString(); - element.value = newNumber; - if (COLUMN_TO_SORT == 1) { - COLUMN_TO_SORT = -1; - sortTable(1); - } - return; -} -function backup() { - var data = new Object(); - var cmd = "xteveBackup"; - var server = new Server(cmd); - server.request(data); - return; -} -function toggleChannelStatus(id) { - var element; - var status; - if (document.getElementById("active")) { - var checkbox = document.getElementById("active"); - status = (checkbox).checked; - } - var ids = getAllSelectedChannels(); - if (ids.length == 0) { - ids.push(id); - } - ids.forEach(id => { - var channel = SERVER["xepg"]["epgMapping"][id]; - channel["x-active"] = status; - switch (channel["x-active"]) { - case true: - if (channel["x-xmltv-file"] == "-" || channel["x-mapping"] == "-") { - if (BULK_EDIT == false) { - alert(channel["x-name"] + ": Missing XMLTV file / channel"); - checkbox.checked = false; - } - channel["x-active"] = false; - } - break; - case false: - // code... - break; - } - if (channel["x-active"] == false) { - document.getElementById(id).className = "notActiveEPG"; - } - else { - document.getElementById(id).className = "activeEPG"; - } - }); -} -function toggleGroupUpdateCb(xepgId, target) { - target.className = 'changed'; - const groupInput = document.querySelector('input[name="x-group-title"]'); - const mapping = getLocalData('mapping', xepgId); - if (target.checked) { - groupInput.dataset.oldValue = groupInput.value; - groupInput.value = mapping['group-title']; - groupInput.disabled = true; - } - else { - groupInput.value = groupInput.dataset.oldValue; - groupInput.disabled = false; - } - groupInput.className = 'changed'; -} -function restore() { - if (document.getElementById('upload')) { - document.getElementById('upload').remove(); - } - var restore = document.createElement("INPUT"); - restore.setAttribute("type", "file"); - restore.setAttribute("class", "notVisible"); - restore.setAttribute("name", ""); - restore.id = "upload"; - document.body.appendChild(restore); - restore.click(); - restore.onchange = function () { - var filename = restore.files[0].name; - var check = confirm("File: " + filename + "\n{{.confirm.restore}}"); - if (check == true) { - var reader = new FileReader(); - var file = document.querySelector('input[type=file]').files[0]; - if (file) { - reader.readAsDataURL(file); - reader.onload = function () { - var data = new Object(); - var cmd = "xteveRestore"; - data["base64"] = reader.result; - var server = new Server(cmd); - server.request(data); - }; - } - else { - alert("File could not be loaded"); - } - restore.remove(); - return; - } - }; - return; -} -function uploadLogo() { - if (document.getElementById('upload')) { - document.getElementById('upload').remove(); - } - var upload = document.createElement("INPUT"); - upload.setAttribute("type", "file"); - upload.setAttribute("class", "notVisible"); - upload.setAttribute("name", ""); - upload.id = "upload"; - document.body.appendChild(upload); - upload.click(); - upload.onblur = function () { - alert(); - }; - upload.onchange = function () { - var filename = upload.files[0].name; - var reader = new FileReader(); - var file = document.querySelector('input[type=file]').files[0]; - if (file) { - reader.readAsDataURL(file); - reader.onload = function () { - var data = new Object(); - var cmd = "uploadLogo"; - data["base64"] = reader.result; - data["filename"] = file.name; - var server = new Server(cmd); - server.request(data); - var updateLogo = document.getElementById('update-icon'); - updateLogo.checked = false; - updateLogo.className = "changed"; - }; - } - else { - alert("File could not be loaded"); - } - upload.remove(); - return; - }; -} -function checkUndo(key) { - switch (key) { - case "epgMapping": - if (UNDO.hasOwnProperty(key)) { - SERVER["xepg"][key] = JSON.parse(JSON.stringify(UNDO[key])); - } - else { - UNDO[key] = JSON.parse(JSON.stringify(SERVER["xepg"][key])); - } - break; - default: - break; - } - return; -} -function updateLog() { - var server = new Server("updateLog"); - server.request(new Object()); -} diff --git a/html/js/classes_ts.js b/html/js/classes_ts.js deleted file mode 100644 index 80c168b..0000000 --- a/html/js/classes_ts.js +++ /dev/null @@ -1,40 +0,0 @@ -var __extends = (this && this.__extends) || (function () { - var extendStatics = function (d, b) { - extendStatics = Object.setPrototypeOf || - ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || - function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; - return extendStatics(d, b); - }; - return function (d, b) { - extendStatics(d, b); - function __() { this.constructor = d; } - d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); - }; -})(); -var MainMenu = /** @class */ (function () { - function MainMenu() { - this.DocumentID = "main-menu"; - this.HTMLTag = "LI"; - } - MainMenu.prototype.create = function () { - console.log(this.DocumentID); - }; - return MainMenu; -}()); -var MainMenuItem = /** @class */ (function (_super) { - __extends(MainMenuItem, _super); - function MainMenuItem() { - return _super !== null && _super.apply(this, arguments) || this; - } - MainMenuItem.prototype.create2 = function () { - var element = document.createElement(this.HTMLTag); - element.innerText = this.Value; - console.log(element); - }; - return MainMenuItem; -}(MainMenu)); -function pageReady() { - var item = new MainMenuItem(); - item.Value = "Test"; - item.create2(); -} diff --git a/html/js/configuration_ts.js b/html/js/configuration_ts.js deleted file mode 100644 index 1a15265..0000000 --- a/html/js/configuration_ts.js +++ /dev/null @@ -1,127 +0,0 @@ -class WizardCategory { - constructor() { - this.DocumentID = "content"; - } - createCategoryHeadline(value) { - var element = document.createElement("H4"); - element.innerHTML = value; - return element; - } -} -class WizardItem extends WizardCategory { - constructor(key, headline) { - super(); - this.headline = headline; - this.key = key; - } - createWizard() { - var headline = this.createCategoryHeadline(this.headline); - var key = this.key; - var content = new PopupContent(); - var description; - var doc = document.getElementById(this.DocumentID); - doc.innerHTML = ""; - doc.appendChild(headline); - switch (key) { - case "tuner": - var text = new Array(); - var values = new Array(); - for (var i = 1; i <= 100; i++) { - text.push(i); - values.push(i); - } - var select = content.createSelect(text, values, "1", key); - select.setAttribute("class", "wizard"); - select.id = key; - doc.appendChild(select); - description = "{{.wizard.tuner.description}}"; - break; - case "epgSource": - var text = ["PMS", "XEPG"]; - var values = ["PMS", "XEPG"]; - var select = content.createSelect(text, values, "XEPG", key); - select.setAttribute("class", "wizard"); - select.id = key; - doc.appendChild(select); - description = "{{.wizard.epgSource.description}}"; - break; - case "m3u": - var input = content.createInput("text", key, ""); - input.setAttribute("placeholder", "{{.wizard.m3u.placeholder}}"); - input.setAttribute("class", "wizard"); - input.id = key; - doc.appendChild(input); - description = "{{.wizard.m3u.description}}"; - break; - case "xmltv": - var input = content.createInput("text", key, ""); - input.setAttribute("placeholder", "{{.wizard.xmltv.placeholder}}"); - input.setAttribute("class", "wizard"); - input.id = key; - doc.appendChild(input); - description = "{{.wizard.xmltv.description}}"; - break; - default: - break; - } - var pre = document.createElement("PRE"); - pre.innerHTML = description; - doc.appendChild(pre); - } -} -function readyForConfiguration(wizard) { - var server = new Server("getServerConfig"); - server.request(new Object()); - showElement("loading", false); - configurationWizard[wizard].createWizard(); -} -function saveWizard() { - var cmd = "saveWizard"; - var div = document.getElementById("content"); - var config = div.getElementsByClassName("wizard"); - var wizard = new Object(); - for (var i = 0; i < config.length; i++) { - var name; - var value; - switch (config[i].tagName) { - case "SELECT": - name = config[i].name; - value = config[i].value; - // If the value is a number, store it as a number - if (isNaN(value)) { - wizard[name] = value; - } - else { - wizard[name] = parseInt(value); - } - break; - case "INPUT": - switch (config[i].type) { - case "text": - name = config[i].name; - value = config[i].value; - if (value.length == 0) { - var msg = name.toUpperCase() + ": " + "{{.alert.missingInput}}"; - alert(msg); - return; - } - wizard[name] = value; - break; - } - break; - default: - // code... - break; - } - } - var data = new Object(); - data["wizard"] = wizard; - var server = new Server(cmd); - server.request(data); -} -// Wizard -var configurationWizard = new Array(); -configurationWizard.push(new WizardItem("tuner", "{{.wizard.tuner.title}}")); -configurationWizard.push(new WizardItem("epgSource", "{{.wizard.epgSource.title}}")); -configurationWizard.push(new WizardItem("m3u", "{{.wizard.m3u.title}}")); -configurationWizard.push(new WizardItem("xmltv", "{{.wizard.xmltv.title}}")); diff --git a/html/js/logs_ts.js b/html/js/logs_ts.js deleted file mode 100644 index 83ba41a..0000000 --- a/html/js/logs_ts.js +++ /dev/null @@ -1,40 +0,0 @@ -class Log { - createLog(entry) { - var element = document.createElement("PRE"); - entry = String(entry); - if (entry.indexOf("WARNING") != -1) { - element.className = "warningMsg"; - } - if (entry.indexOf("ERROR") != -1) { - element.className = "errorMsg"; - } - if (entry.indexOf("DEBUG") != -1) { - element.className = "debugMsg"; - } - element.innerHTML = entry; - return element; - } -} -function showLogs(bottom) { - var log = new Log(); - var logs = SERVER["log"]["log"]; - var div = document.getElementById("content_log"); - div.innerHTML = ""; - var keys = getOwnObjProps(logs); - keys.forEach(logID => { - var entry = log.createLog(logs[logID]); - div.append(entry); - }); - setTimeout(function () { - if (bottom == true) { - var wrapper = document.getElementById("box-wrapper"); - wrapper.scrollTop = wrapper.scrollHeight; - } - }, 10); -} -function resetLogs() { - var cmd = "resetLogs"; - var data = new Object(); - var server = new Server(cmd); - server.request(data); -} diff --git a/html/js/menu_ts.js b/html/js/menu_ts.js deleted file mode 100644 index 3d56577..0000000 --- a/html/js/menu_ts.js +++ /dev/null @@ -1,1831 +0,0 @@ -class MainMenu { - constructor() { - this.DocumentID = "main-menu"; - this.HTMLTag = "LI"; - this.ImagePath = "img/"; - } - createIMG(src) { - let element = document.createElement("IMG"); - element.setAttribute("src", this.ImagePath + src); - element.setAttribute("alt", src); - return element; - } - createValue(value) { - let element = document.createElement("P"); - element.innerHTML = value; - return element; - } -} -class MainMenuItem extends MainMenu { - constructor(menuKey, value, image, headline) { - super(); - this.menuKey = menuKey; - this.value = value; - this.imgSrc = image; - this.headline = headline; - } - createItem() { - let item = document.createElement("LI"); - item.setAttribute("onclick", "javascript: openThisMenu(this)"); - item.setAttribute("id", this.id); - let img = this.createIMG(this.imgSrc); - let value = this.createValue(this.value); - item.appendChild(img); - item.appendChild(value); - let doc = document.getElementById(this.DocumentID); - doc.appendChild(item); - switch (this.menuKey) { - case "playlist": - this.tableHeader = ["{{.playlist.table.playlist}}", "{{.playlist.table.tuner}}", "{{.playlist.table.lastUpdate}}", "{{.playlist.table.availability}} %", "{{.playlist.table.type}}", "{{.playlist.table.streams}}", "{{.playlist.table.groupTitle}} %", "{{.playlist.table.tvgID}} %", "{{.playlist.table.uniqueID}} %"]; - break; - case "xmltv": - this.tableHeader = ["{{.xmltv.table.guide}}", "{{.xmltv.table.lastUpdate}}", "{{.xmltv.table.availability}} %", "{{.xmltv.table.channels}}", "{{.xmltv.table.programs}}"]; - break; - case "filter": - this.tableHeader = ["{{.filter.table.startingChannel}}", "{{.filter.table.name}}", "{{.filter.table.type}}", "{{.filter.table.filter}}"]; - break; - case "users": - this.tableHeader = ["{{.users.table.username}}", "{{.users.table.password}}", "{{.users.table.web}}", "{{.users.table.pms}}", "{{.users.table.m3u}}", "{{.users.table.xml}}", "{{.users.table.api}}"]; - break; - case "mapping": - this.tableHeader = ["BULK", "{{.mapping.table.chNo}}", "{{.mapping.table.logo}}", "{{.mapping.table.channelName}}", "{{.mapping.table.updateChannelNameRegex}}", "{{.mapping.table.playlist}}", "{{.mapping.table.groupTitle}}", "{{.mapping.table.xmltvFile}}", "{{.mapping.table.xmltvID}}", "{{.mapping.table.timeshift}}"]; - break; - } - } -} -class Content { - constructor() { - this.DocumentID = "content"; - this.TableID = "content_table"; - this.headerClass = "content_table_header"; - this.interactionID = "content-interaction"; - } - createHeadline(value) { - let element = document.createElement("H3"); - element.innerHTML = value; - return element; - } - createHR() { - return document.createElement("HR"); - } - createInteraction() { - let element = document.createElement("DIV"); - element.setAttribute("id", this.interactionID); - return element; - } - createDIV() { - let element = document.createElement("DIV"); - element.id = this.DivID; - return element; - } - createTABLE() { - let element = document.createElement("TABLE"); - element.id = this.TableID; - return element; - } - createTableRow() { - let element = document.createElement("TR"); - element.className = this.headerClass; - return element; - } - createTableContent(menuKey) { - let data = {}; - let rows = []; - let fileTypes = []; - switch (menuKey) { - case "playlist": - fileTypes = ["m3u", "hdhr"]; - fileTypes.forEach(fileType => { - data = SERVER["settings"]["files"][fileType]; - var keys = getOwnObjProps(data); - keys.forEach(key => { - var tr = document.createElement("TR"); - tr.id = key; - tr.setAttribute('onclick', 'javascript: openPopUp("' + fileType + '", this)'); - var cell = new Cell(); - cell.child = true; - cell.childType = "P"; - cell.value = data[key]["name"]; - tr.appendChild(cell.createCell()); - var cell = new Cell(); - cell.child = true; - cell.childType = "P"; - if (SERVER["settings"]["buffer"] != "-") { - cell.value = data[key]["tuner"]; - } - else { - cell.value = "-"; - } - tr.appendChild(cell.createCell()); - var cell = new Cell(); - cell.child = true; - cell.childType = "P"; - cell.value = data[key]["last.update"]; - tr.appendChild(cell.createCell()); - var cell = new Cell(); - cell.child = true; - cell.childType = "P"; - cell.value = data[key]["provider.availability"]; - tr.appendChild(cell.createCell()); - var cell = new Cell(); - cell.child = true; - cell.childType = "P"; - cell.value = data[key]["type"].toUpperCase(); - tr.appendChild(cell.createCell()); - var cell = new Cell(); - cell.child = true; - cell.childType = "P"; - cell.value = data[key]["compatibility"]["streams"]; - tr.appendChild(cell.createCell()); - var cell = new Cell(); - cell.child = true; - cell.childType = "P"; - cell.value = data[key]["compatibility"]["group.title"]; - tr.appendChild(cell.createCell()); - var cell = new Cell(); - cell.child = true; - cell.childType = "P"; - cell.value = data[key]["compatibility"]["tvg.id"]; - tr.appendChild(cell.createCell()); - var cell = new Cell(); - cell.child = true; - cell.childType = "P"; - cell.value = data[key]["compatibility"]["stream.id"]; - tr.appendChild(cell.createCell()); - rows.push(tr); - }); - }); - break; - case "filter": - delete SERVER["settings"]["filter"][-1]; - data = SERVER["settings"]["filter"]; - var keys = getOwnObjProps(data); - keys.forEach(key => { - var tr = document.createElement("TR"); - tr.id = key; - tr.setAttribute('onclick', 'javascript: openPopUp("' + data[key]["type"] + '", this)'); - var cell = new Cell(); - cell.child = true; - cell.childType = "P"; - cell.value = data[key]["startingChannel"]; - tr.appendChild(cell.createCell()); - var cell = new Cell(); - cell.child = true; - cell.childType = "P"; - cell.value = data[key]["name"]; - tr.appendChild(cell.createCell()); - var cell = new Cell(); - cell.child = true; - cell.childType = "P"; - switch (data[key]["type"]) { - case "custom-filter": - cell.value = "{{.filter.custom}}"; - break; - case "group-title": - cell.value = "{{.filter.group}}"; - break; - default: - break; - } - tr.appendChild(cell.createCell()); - var cell = new Cell(); - cell.child = true; - cell.childType = "P"; - cell.value = data[key]["filter"]; - tr.appendChild(cell.createCell()); - rows.push(tr); - }); - break; - case "xmltv": - fileTypes = new Array("xmltv"); - fileTypes.forEach(fileType => { - data = SERVER["settings"]["files"][fileType]; - var keys = getOwnObjProps(data); - keys.forEach(key => { - var tr = document.createElement("TR"); - tr.id = key; - tr.setAttribute('onclick', 'javascript: openPopUp("' + fileType + '", this)'); - var cell = new Cell(); - cell.child = true; - cell.childType = "P"; - cell.value = data[key]["name"]; - tr.appendChild(cell.createCell()); - var cell = new Cell(); - cell.child = true; - cell.childType = "P"; - cell.value = data[key]["last.update"]; - tr.appendChild(cell.createCell()); - var cell = new Cell(); - cell.child = true; - cell.childType = "P"; - cell.value = data[key]["provider.availability"]; - tr.appendChild(cell.createCell()); - var cell = new Cell(); - cell.child = true; - cell.childType = "P"; - cell.value = data[key]["compatibility"]["xmltv.channels"]; - tr.appendChild(cell.createCell()); - var cell = new Cell(); - cell.child = true; - cell.childType = "P"; - cell.value = data[key]["compatibility"]["xmltv.programs"]; - tr.appendChild(cell.createCell()); - rows.push(tr); - }); - }); - break; - case "users": - fileTypes = new Array("users"); - fileTypes.forEach(fileType => { - data = SERVER[fileType]; - var keys = getOwnObjProps(data); - keys.forEach(key => { - var tr = document.createElement("TR"); - tr.id = key; - tr.setAttribute('onclick', 'javascript: openPopUp("' + fileType + '", this)'); - var cell = new Cell(); - cell.child = true; - cell.childType = "P"; - cell.value = data[key]["data"]["username"]; - tr.appendChild(cell.createCell()); - var cell = new Cell(); - cell.child = true; - cell.childType = "P"; - cell.value = "******"; - tr.appendChild(cell.createCell()); - var cell = new Cell(); - cell.child = true; - cell.childType = "P"; - if (data[key]["data"]["authentication.web"] == true) { - cell.value = "✓"; - } - else { - cell.value = "-"; - } - tr.appendChild(cell.createCell()); - var cell = new Cell(); - cell.child = true; - cell.childType = "P"; - if (data[key]["data"]["authentication.pms"] == true) { - cell.value = "✓"; - } - else { - cell.value = "-"; - } - tr.appendChild(cell.createCell()); - var cell = new Cell(); - cell.child = true; - cell.childType = "P"; - if (data[key]["data"]["authentication.m3u"] == true) { - cell.value = "✓"; - } - else { - cell.value = "-"; - } - tr.appendChild(cell.createCell()); - var cell = new Cell(); - cell.child = true; - cell.childType = "P"; - if (data[key]["data"]["authentication.xml"] == true) { - cell.value = "✓"; - } - else { - cell.value = "-"; - } - tr.appendChild(cell.createCell()); - var cell = new Cell(); - cell.child = true; - cell.childType = "P"; - if (data[key]["data"]["authentication.api"] == true) { - cell.value = "✓"; - } - else { - cell.value = "-"; - } - tr.appendChild(cell.createCell()); - rows.push(tr); - }); - }); - break; - case "mapping": - BULK_EDIT = false; - createSearchObj(); - checkUndo("epgMapping"); - data = SERVER["xepg"]["epgMapping"]; - var keys = getOwnObjProps(data); - keys.forEach(key => { - var tr = document.createElement("TR"); - tr.id = key; - switch (data[key]["x-active"]) { - case true: - tr.className = "activeEPG"; - break; - case false: - tr.className = "notActiveEPG"; - break; - } - // Bulk - var cell = new Cell(); - cell.child = true; - cell.childType = "BULK"; - cell.value = false; - tr.appendChild(cell.createCell()); - // Channel number - var cell = new Cell(); - cell.child = true; - cell.childType = "INPUTCHANNEL"; - cell.value = data[key]["x-channelID"]; - tr.appendChild(cell.createCell()); - // Logo - var cell = new Cell(); - cell.child = true; - cell.childType = "IMG"; - cell.imageURL = data[key]["tvg-logo"]; - var td = cell.createCell(); - td.setAttribute('onclick', 'javascript: openPopUp("mapping", this)'); - td.id = key; - tr.appendChild(td); - // Channel name - var cell = new Cell(); - cell.child = true; - cell.childType = "P"; - cell.className = data[key]["x-category"]; - cell.value = data[key]["x-name"]; - var td = cell.createCell(); - td.setAttribute('onclick', 'javascript: openPopUp("mapping", this)'); - td.id = key; - tr.appendChild(td); - // Update channel name regex - var cell = new Cell(); - cell.child = true; - cell.childType = "P"; - cell.value = data[key]["update-channel-name-regex"]; - var td = cell.createCell(); - td.setAttribute('onclick', 'javascript: openPopUp("mapping", this)'); - td.id = key; - tr.appendChild(td); - // Playlist - var cell = new Cell(); - cell.child = true; - cell.childType = "P"; - cell.value = getValueFromProviderFile(data[key]["_file.m3u.id"], "m3u", "name"); - var td = cell.createCell(); - td.setAttribute('onclick', 'javascript: openPopUp("mapping", this)'); - td.id = key; - tr.appendChild(td); - // Group (group-title) - var cell = new Cell(); - cell.child = true; - cell.childType = "P"; - cell.value = data[key]["x-group-title"]; - var td = cell.createCell(); - td.setAttribute('onclick', 'javascript: openPopUp("mapping", this)'); - td.id = key; - tr.appendChild(td); - // XMLTV file - var cell = new Cell(); - cell.child = true; - cell.childType = "P"; - if (data[key]["x-xmltv-file"] != "-") { - cell.value = getValueFromProviderFile(data[key]["x-xmltv-file"], "xmltv", "name"); - } - else { - cell.value = data[key]["x-xmltv-file"]; - } - var td = cell.createCell(); - td.setAttribute('onclick', 'javascript: openPopUp("mapping", this)'); - td.id = key; - tr.appendChild(td); - // XMLTV Channel - var cell = new Cell(); - cell.child = true; - cell.childType = "P"; - var value = data[key]["x-mapping"]; - if (value.length > 20) { - value = data[key]["x-mapping"].substring(0, 20) + "..."; - } - cell.value = value; - var td = cell.createCell(); - td.setAttribute('onclick', 'javascript: openPopUp("mapping", this)'); - td.id = key; - tr.appendChild(td); - // TimeShift - var cell = new Cell(); - cell.child = true; - cell.childType = "P"; - cell.value = data[key]["x-timeshift"]; - var td = cell.createCell(); - td.setAttribute('onclick', 'javascript: openPopUp("mapping", this)'); - td.id = key; - tr.appendChild(td); - rows.push(tr); - }); - break; - case "settings": - alert(); - break; - default: - break; - } - return rows; - } -} -class Cell { - createCell() { - let td = document.createElement("TD"); - if (this.child == true) { - var element; - switch (this.childType) { - case "P": - element = document.createElement(this.childType); - element.innerHTML = this.value; - element.className = this.className; - break; - case "INPUT": - element = document.createElement(this.childType); - element.value = this.value; - element.type = "text"; - break; - case "INPUTCHANNEL": - element = document.createElement("INPUT"); - element.setAttribute("onchange", "javscript: changeChannelNumber(this)"); - element.value = this.value; - element.type = "text"; - break; - case "BULK": - element = document.createElement("INPUT"); - element.checked = this.value; - element.type = "checkbox"; - element.className = "bulk hideBulk"; - break; - case "BULK_HEAD": - element = document.createElement("INPUT"); - element.checked = this.value; - element.type = "checkbox"; - element.className = "bulk hideBulk"; - element.setAttribute("onclick", "javascript: selectAllChannels()"); - break; - case "IMG": - element = document.createElement(this.childType); - element.setAttribute("src", this.imageURL); - if (this.imageURL != "") { - element.setAttribute("onerror", "javascript: this.onerror=null;this.src=''"); - //onerror="this.onerror=null;this.src='missing.gif';" - } - } - td.appendChild(element); - } - else { - td.innerHTML = this.value; - } - if (this.onclick == true) { - td.setAttribute("onclick", this.onclickFunction); - td.className = "pointer"; - } - if (this.tdClassName != undefined) { - td.className = this.tdClassName; - } - return td; - } -} -class ShowContent extends Content { - constructor(menuID) { - super(); - this.menuID = menuID; - } - createInput(type, name, value) { - let input = document.createElement("INPUT"); - input.setAttribute("type", type); - input.setAttribute("name", name); - input.setAttribute("value", value); - return input; - } - show() { - COLUMN_TO_SORT = -1; - // Delete old content - let doc = document.getElementById(this.DocumentID); - doc.innerHTML = ""; - showPreview(false); - // Headline - let headline = menuItems[this.menuID].headline; - let menuKey = menuItems[this.menuID].menuKey; - let h = this.createHeadline(headline); - doc.appendChild(h); - let hr = this.createHR(); - doc.appendChild(hr); - // Interaction - let div = this.createInteraction(); - doc.appendChild(div); - let interaction = document.getElementById(this.interactionID); - switch (menuKey) { - case "playlist": - var input = this.createInput("button", menuKey, "{{.button.new}}"); - input.setAttribute("id", "-"); - input.setAttribute("onclick", 'javascript: openPopUp("playlist")'); - interaction.appendChild(input); - break; - case "filter": - var input = this.createInput("button", menuKey, "{{.button.new}}"); - input.setAttribute("id", -1); - input.setAttribute("onclick", 'javascript: openPopUp("filter", this)'); - interaction.appendChild(input); - break; - case "xmltv": - var input = this.createInput("button", menuKey, "{{.button.new}}"); - input.setAttribute("id", "xmltv"); - input.setAttribute("onclick", 'javascript: openPopUp("xmltv")'); - interaction.appendChild(input); - break; - case "users": - var input = this.createInput("button", menuKey, "{{.button.new}}"); - input.setAttribute("id", "users"); - input.setAttribute("onclick", 'javascript: openPopUp("users")'); - interaction.appendChild(input); - break; - case "mapping": - showElement("loading", true); - var input = this.createInput("button", menuKey, "{{.button.save}}"); - input.setAttribute("onclick", 'javascript: savePopupData("mapping", "", "")'); - interaction.appendChild(input); - var input = this.createInput("button", menuKey, "{{.button.bulkEdit}}"); - input.setAttribute("onclick", 'javascript: bulkEdit()'); - interaction.appendChild(input); - var input = this.createInput("search", "search", ""); - input.setAttribute("id", "searchMapping"); - input.setAttribute("placeholder", "{{.button.search}}"); - input.className = "search"; - input.setAttribute("onchange", 'javascript: searchInMapping()'); - interaction.appendChild(input); - break; - case "settings": - var input = this.createInput("button", menuKey, "{{.button.save}}"); - input.setAttribute("onclick", 'javascript: saveSettings();'); - interaction.appendChild(input); - var input = this.createInput("button", menuKey, "{{.button.backup}}"); - input.setAttribute("onclick", 'javascript: backup();'); - interaction.appendChild(input); - var input = this.createInput("button", menuKey, "{{.button.restore}}"); - input.setAttribute("onclick", 'javascript: restore();'); - interaction.appendChild(input); - var wrapper = document.createElement("DIV"); - wrapper.setAttribute("id", "box-wrapper"); - doc.appendChild(wrapper); - this.DivID = "content_settings"; - var settings = this.createDIV(); - wrapper.appendChild(settings); - showSettings(); - return; - case "log": - var input = this.createInput("button", menuKey, "{{.button.resetLogs}}"); - input.setAttribute("onclick", 'javascript: resetLogs();'); - interaction.appendChild(input); - var wrapper = document.createElement("DIV"); - wrapper.setAttribute("id", "box-wrapper"); - doc.appendChild(wrapper); - this.DivID = "content_log"; - var logs = this.createDIV(); - wrapper.appendChild(logs); - showLogs(true); - return; - case "logout": - location.reload(); - document.cookie = "Token= ; expires = Thu, 01 Jan 1970 00:00:00 GMT"; - break; - default: - break; - } - // Create table (if needed) - var tableHeader = menuItems[this.menuID].tableHeader; - if (tableHeader.length > 0) { - var wrapper = document.createElement("DIV"); - doc.appendChild(wrapper); - wrapper.setAttribute("id", "box-wrapper"); - var table = this.createTABLE(); - wrapper.appendChild(table); - var header = this.createTableRow(); - table.appendChild(header); - // Table header - tableHeader.forEach(element => { - var cell = new Cell(); - cell.child = true; - cell.childType = "P"; - cell.value = element; - if (element == "BULK") { - cell.childType = "BULK_HEAD"; - cell.value = false; - } - if (menuKey == "mapping") { - if (element == "{{.mapping.table.chNo}}") { - cell.onclick = true; - cell.onclickFunction = "javascript: sortTable(1);"; - cell.tdClassName = "sortThis"; - } - if (element == "{{.mapping.table.channelName}}") { - cell.onclick = true; - cell.onclickFunction = "javascript: sortTable(3);"; - } - if (element == "{{.mapping.table.updateChannelNameRegex}}") { - cell.onclick = true; - cell.onclickFunction = "javascript: sortTable(4);"; - } - if (element == "{{.mapping.table.playlist}}") { - cell.onclick = true; - cell.onclickFunction = "javascript: sortTable(5);"; - } - if (element == "{{.mapping.table.groupTitle}}") { - cell.onclick = true; - cell.onclickFunction = "javascript: sortTable(6);"; - } - if (element == "{{.mapping.table.timeshift}}") { - cell.onclick = true; - cell.onclickFunction = "javascript: sortTable(9);"; - } - } - if (menuKey == "filter") { - if (element == "{{.filter.table.startingChannel}}") { - cell.onclick = true; - cell.onclickFunction = "javascript: sortTable(0);"; - cell.tdClassName = "sortThis"; - } - if (element == "{{.filter.table.name}}") { - cell.onclick = true; - cell.onclickFunction = "javascript: sortTable(1);"; - } - if (element == "{{.filter.table.type}}") { - cell.onclick = true; - cell.onclickFunction = "javascript: sortTable(2);"; - } - if (element == "{{.filter.table.filter}}") { - cell.onclick = true; - cell.onclickFunction = "javascript: sortTable(3);"; - } - } - header.appendChild(cell.createCell()); - }); - table.appendChild(header); - // Content of the table - var rows = this.createTableContent(menuKey); - rows.forEach(tr => { - table.appendChild(tr); - }); - } - switch (menuKey) { - case "mapping": - sortTable(1); - break; - case "filter": - showPreview(true); - sortTable(0); - break; - default: - COLUMN_TO_SORT = -1; - sortTable(0); - break; - } - showElement("loading", false); - } -} -function PageReady() { - let server = new Server("getServerConfig"); - server.request({}); - window.addEventListener("resize", function () { - calculateWrapperHeight(); - }, true); - setInterval(function () { - updateLog(); - }, 10000); - return; -} -function createLayout() { - // Client Info - let obj = SERVER["clientInfo"]; - let keys = getOwnObjProps(obj); - for (var i = 0; i < keys.length; i++) { - if (document.getElementById(keys[i])) { - document.getElementById(keys[i]).innerHTML = obj[keys[i]]; - if (location.protocol === 'https:') { - if (keys[i] === "xepg-url" || keys[i] === "m3u-url" || keys[i] === "DVR") { - document.getElementById(keys[i]).addEventListener('click', function (event) { - const target = event.target; - navigator.clipboard.writeText(target.innerText.split(" ")[0]).then(() => { }); - }, false); - } - } - } - } - if (!document.getElementById("main-menu")) { - return; - } - // Create menu - document.getElementById("main-menu").innerHTML = ""; - for (let i = 0; i < menuItems.length; i++) { - menuItems[i].id = i; - switch (menuItems[i]["menuKey"]) { - case "users": - case "logout": - if (SERVER["settings"]["authentication.web"] == true) { - menuItems[i].createItem(); - } - break; - case "mapping": - case "xmltv": - if (SERVER["clientInfo"]["epgSource"] == "XEPG") { - menuItems[i].createItem(); - } - break; - default: - menuItems[i].createItem(); - break; - } - } - return; -} -function openThisMenu(element) { - let id = element.id; - let content = new ShowContent(id); - content.show(); - calculateWrapperHeight(); - return; -} -class PopupWindow { - constructor() { - this.DocumentID = "popup-custom"; - this.InteractionID = "interaction"; - this.doc = document.getElementById(this.DocumentID); - } - createTitle(title) { - let td = document.createElement("TD"); - td.className = "left"; - td.innerHTML = title + ":"; - return td; - } - createContent(element) { - let td = document.createElement("TD"); - td.appendChild(element); - return td; - } - createInteraction() { - let div = document.createElement("div"); - div.setAttribute("id", "popup-interaction"); - div.className = "interaction"; - this.doc.appendChild(div); - } -} -class PopupContent extends PopupWindow { - constructor() { - super(...arguments); - this.table = document.createElement("TABLE"); - } - createHeadline(headline) { - this.doc.innerHTML = ""; - var element = document.createElement("H3"); - element.innerHTML = headline.toUpperCase(); - this.doc.appendChild(element); - // Create table - this.table = document.createElement("TABLE"); - this.doc.appendChild(this.table); - } - appendRow(title, element) { - let tr = document.createElement("TR"); - // Title - if (title.length != 0) { - tr.appendChild(this.createTitle(title)); - } - // Content - tr.appendChild(this.createContent(element)); - this.table.appendChild(tr); - } - createInput(type, name, value) { - let input = document.createElement("INPUT"); - if (value == undefined) { - value = ""; - } - input.setAttribute("type", type); - input.setAttribute("name", name); - input.setAttribute("value", value); - return input; - } - createCheckbox(name) { - let input = document.createElement("INPUT"); - input.setAttribute("type", "checkbox"); - input.setAttribute("name", name); - return input; - } - // Creates a selection of multiple options values with text descriptions - createSelect(text, values, set, dbKey) { - let select = document.createElement("SELECT"); - select.setAttribute("name", dbKey); - for (let i = 0; i < text.length; i++) { - let option = document.createElement("OPTION"); - option.setAttribute("value", values[i]); - option.innerText = text[i]; - select.appendChild(option); - } - if (set != "") { - select.value = set; - } - if (set == undefined) { - select.value = values[0]; - } - return select; - } - selectOption(select, value) { - //select.selectedOptions = value - let s = select; - s.options[s.selectedIndex].value = value; - return select; - } - description(value) { - let tr = document.createElement("TR"); - let td = document.createElement("TD"); - let span = document.createElement("PRE"); - span.innerHTML = value; - tr.appendChild(td); - tr.appendChild(this.createContent(span)); - this.table.appendChild(tr); - } - // Interaction - addInteraction(element) { - let interaction = document.getElementById("popup-interaction"); - interaction.appendChild(element); - } -} -function openPopUp(dataType, element) { - let data = {}; - let id; - switch (element) { - case undefined: - switch (dataType) { - case "group-title": - if (id == undefined) { - id = -1; - } - data = getLocalData("filter", id); - data["type"] = "group-title"; - break; - case "custom-filter": - if (id == undefined) { - id = -1; - } - data = getLocalData("filter", id); - data["type"] = "custom-filter"; - break; - default: - data["id.provider"] = "-"; - data["type"] = dataType; - id = "-"; - break; - } - break; - default: - id = element.id; - data = getLocalData(dataType, id); - break; - } - let content = new PopupContent(); - switch (dataType) { - case "playlist": - content.createHeadline("{{.playlist.playlistType.title}}"); - // Type - var text = ["M3U", "HDHomeRun"]; - var values = ["javascript: openPopUp('m3u')", "javascript: openPopUp('hdhr')"]; - var select = content.createSelect(text, values, "", "type"); - select.setAttribute("id", "type"); - select.setAttribute("onchange", 'javascript: changeButtonAction(this, "next", "onclick")'); // changeButtonAction - content.appendRow("{{.playlist.type.title}}", select); - // Interaction - content.createInteraction(); - // Abort - var input = content.createInput("button", "cancel", "{{.button.cancel}}"); - input.setAttribute("onclick", 'javascript: showElement("popup", false);'); - content.addInteraction(input); - // Next - var input = content.createInput("button", "next", "{{.button.next}}"); - input.setAttribute("onclick", 'javascript: openPopUp("m3u")'); - input.setAttribute("id", 'next'); - content.addInteraction(input); - break; - case "m3u": - content.createHeadline(dataType); - // Name - var dbKey = "name"; - var input = content.createInput("text", dbKey, data[dbKey]); - input.setAttribute("placeholder", "{{.playlist.name.placeholder}}"); - content.appendRow("{{.playlist.name.title}}", input); - // Description - var dbKey = "description"; - var input = content.createInput("text", dbKey, data[dbKey]); - input.setAttribute("placeholder", "{{.playlist.description.placeholder}}"); - content.appendRow("{{.playlist.description.title}}", input); - // URL - var dbKey = "file.source"; - var input = content.createInput("text", dbKey, data[dbKey]); - input.setAttribute("placeholder", "{{.playlist.fileM3U.placeholder}}"); - content.appendRow("{{.playlist.fileM3U.title}}", input); - // Tuner - if (SERVER["settings"]["buffer"] != "-") { - var text = []; - var values = []; - for (var i = 1; i <= 100; i++) { - text.push(i.toString()); - values.push(i.toString()); - } - var dbKey = "tuner"; - var select = content.createSelect(text, values, data[dbKey], dbKey); - select.setAttribute("onfocus", "javascript: return;"); - content.appendRow("{{.playlist.tuner.title}}", select); - } - else { - var dbKey = "tuner"; - if (data[dbKey] == undefined) { - data[dbKey] = 1; - } - var input = content.createInput("text", dbKey, data[dbKey]); - input.setAttribute("readonly", "true"); - input.className = "notAvailable"; - content.appendRow("{{.playlist.tuner.title}}", input); - } - content.description("{{.playlist.tuner.description}}"); - // Interation - content.createInteraction(); - // Delete - if (data["id.provider"] != "-") { - var input = content.createInput("button", "delete", "{{.button.delete}}"); - input.className = "delete"; - input.setAttribute('onclick', 'javascript: savePopupData("m3u", "' + id + '", true, 0)'); - content.addInteraction(input); - } - else { - var input = content.createInput("button", "back", "{{.button.back}}"); - input.setAttribute("onclick", 'javascript: openPopUp("playlist")'); - content.addInteraction(input); - } - // Abort - var input = content.createInput("button", "cancel", "{{.button.cancel}}"); - input.setAttribute("onclick", 'javascript: showElement("popup", false);'); - content.addInteraction(input); - // Update - if (data["id.provider"] != "-") { - var input = content.createInput("button", "update", "{{.button.update}}"); - input.setAttribute('onclick', 'javascript: savePopupData("m3u", "' + id + '", false, 1)'); - content.addInteraction(input); - } - // Save - var input = content.createInput("button", "save", "{{.button.save}}"); - input.setAttribute('onclick', 'javascript: savePopupData("m3u", "' + id + '", false, 0)'); - content.addInteraction(input); - break; - case "hdhr": - content.createHeadline(dataType); - // Name - var dbKey = "name"; - var input = content.createInput("text", dbKey, data[dbKey]); - input.setAttribute("placeholder", "{{.playlist.name.placeholder}}"); - content.appendRow("{{.playlist.name.title}}", input); - // Description - var dbKey = "description"; - var input = content.createInput("text", dbKey, data[dbKey]); - input.setAttribute("placeholder", "{{.playlist.description.placeholder}}"); - content.appendRow("{{.playlist.description.placeholder}}", input); - // URL - var dbKey = "file.source"; - var input = content.createInput("text", dbKey, data[dbKey]); - input.setAttribute("placeholder", "{{.playlist.fileHDHR.placeholder}}"); - content.appendRow("{{.playlist.fileHDHR.title}}", input); - // Tuner - if (SERVER["settings"]["buffer"] != "-") { - var text = []; - var values = []; - for (var i = 1; i <= 100; i++) { - text.push(i.toString()); - values.push(i.toString()); - } - var dbKey = "tuner"; - var select = content.createSelect(text, values, data[dbKey], dbKey); - select.setAttribute("onfocus", "javascript: return;"); - content.appendRow("{{.playlist.tuner.title}}", select); - } - else { - var dbKey = "tuner"; - if (data[dbKey] == undefined) { - data[dbKey] = 1; - } - var input = content.createInput("text", dbKey, data[dbKey]); - input.setAttribute("readonly", "true"); - input.className = "notAvailable"; - content.appendRow("{{.playlist.tuner.title}}", input); - } - content.description("{{.playlist.tuner.description}}"); - // Interaction - content.createInteraction(); - // Delete - if (data["id.provider"] != "-") { - var input = content.createInput("button", "delete", "{{.button.delete}}"); - input.setAttribute('onclick', 'javascript: savePopupData("hdhr", "' + id + '", true, 0)'); - input.className = "delete"; - content.addInteraction(input); - } - else { - var input = content.createInput("button", "back", "{{.button.back}}"); - input.setAttribute("onclick", 'javascript: openPopUp("playlist")'); - content.addInteraction(input); - } - // Abort - var input = content.createInput("button", "cancel", "{{.button.cancel}}"); - input.setAttribute("onclick", 'javascript: showElement("popup", false);'); - content.addInteraction(input); - // Update - if (data["id.provider"] != "-") { - var input = content.createInput("button", "update", "{{.button.update}}"); - input.setAttribute('onclick', 'javascript: savePopupData("hdhr", "' + id + '", false, 1)'); - content.addInteraction(input); - } - // Save - var input = content.createInput("button", "save", "{{.button.save}}"); - input.setAttribute('onclick', 'javascript: savePopupData("hdhr", "' + id + '", false, 0)'); - content.addInteraction(input); - break; - case "filter": - content.createHeadline(dataType); - // Type - var dbKey = "type"; - var text = ["M3U: " + "{{.filter.type.groupTitle}}", "xTeVe: " + "{{.filter.type.customFilter}}"]; - var values = ["javascript: openPopUp('group-title')", "javascript: openPopUp('custom-filter')"]; - var select = content.createSelect(text, values, "javascript: openPopUp('group-title')", dbKey); - select.setAttribute("id", id); - select.setAttribute("onchange", 'javascript: changeButtonAction(this, "next", "onclick");'); // changeButtonAction - content.appendRow("{{.filter.type.title}}", select); - // Interaction - content.createInteraction(); - // Abort - var input = content.createInput("button", "cancel", "{{.button.cancel}}"); - input.setAttribute("onclick", 'javascript: showElement("popup", false);'); - content.addInteraction(input); - // Next - var input = content.createInput("button", "next", "{{.button.next}}"); - input.setAttribute("onclick", 'javascript: openPopUp("group-title")'); - input.setAttribute("id", 'next'); - content.addInteraction(input); - break; - case "custom-filter": - case "group-title": - switch (dataType) { - case "custom-filter": - content.createHeadline("{{.filter.custom}}" + " Filter"); - break; - case "group-title": - content.createHeadline("{{.filter.group}}" + " Filter"); - break; - } - // Name - var dbKey = "name"; - var input = content.createInput("text", dbKey, data[dbKey]); - input.setAttribute("placeholder", "{{.filter.name.placeholder}}"); - content.appendRow("{{.filter.name.title}}", input); - // Description - var dbKey = "description"; - var input = content.createInput("text", dbKey, data[dbKey]); - input.setAttribute("placeholder", "{{.filter.description.placeholder}}"); - content.appendRow("{{.filter.description.title}}", input); - // Type - var dbKey = "type"; - var input = content.createInput("hidden", dbKey, data[dbKey]); - content.appendRow("", input); - var filterType = data[dbKey]; - switch (filterType) { - case "custom-filter": - // Case sensitive - var dbKey = "caseSensitive"; - var input = content.createCheckbox(dbKey); - input.checked = data[dbKey]; - content.appendRow("{{.filter.caseSensitive.title}}", input); - // Filter Rule (Custom) - var dbKey = "filter"; - var input = content.createInput("text", dbKey, data[dbKey]); - input.setAttribute("placeholder", "{{.filter.filterRule.placeholder}}"); - content.appendRow("{{.filter.filterRule.title}}", input); - // Starting Channel Number Mapping - var dbKey = "startingChannel"; - var input = content.createInput("text", dbKey, data[dbKey]); - input.setAttribute("placeholder", "{{.filter.startingChannel.placeholder}}"); - content.appendRow("{{.filter.startingChannel.title}}", input); - break; - case "group-title": - //alert(dbKey + " " + filterType) - // Filter based on the groups in the M3U - var dbKey = "filter"; - var groupsM3U = getLocalData("m3uGroups", ""); - var text = groupsM3U["text"]; - var values = groupsM3U["value"]; - var select = content.createSelect(text, values, data[dbKey], dbKey); - select.setAttribute("onchange", "javascript: this.className = 'changed'"); - content.appendRow("{{.filter.filterGroup.title}}", select); - content.description("{{.filter.filterGroup.description}}"); - // Case sensetive - var dbKey = "caseSensitive"; - var input = content.createCheckbox(dbKey); - input.checked = data[dbKey]; - content.appendRow("{{.filter.caseSensitive.title}}", input); - var dbKey = "include"; - var input = content.createInput("text", dbKey, data[dbKey]); - input.setAttribute("placeholder", "{{.filter.include.placeholder}}"); - content.appendRow("{{.filter.include.title}}", input); - content.description("{{.filter.include.description}}"); - var dbKey = "exclude"; - var input = content.createInput("text", dbKey, data[dbKey]); - input.setAttribute("placeholder", "{{.filter.exclude.placeholder}}"); - content.appendRow("{{.filter.exclude.title}}", input); - content.description("{{.filter.exclude.description}}"); - // Preserve M3U Playlist Channel Mapping - var dbKey = "preserveMapping"; - var input = content.createCheckbox(dbKey); - input.checked = data[dbKey]; - content.appendRow("{{.filter.preserveMapping.title}}", input); - // Starting Channel Number Mapping - var dbKey = "startingChannel"; - var input = content.createInput("text", dbKey, data[dbKey]); - input.setAttribute("placeholder", "{{.filter.startingChannel.placeholder}}"); - content.appendRow("{{.filter.startingChannel.title}}", input); - break; - default: - break; - } - // Interaction - content.createInteraction(); - // Delete - var input = content.createInput("button", "delete", "{{.button.delete}}"); - input.setAttribute('onclick', 'javascript: savePopupData("filter", "' + id + '", true, 0)'); - input.className = "delete"; - content.addInteraction(input); - // Abort - var input = content.createInput("button", "cancel", "{{.button.cancel}}"); - input.setAttribute("onclick", 'javascript: showElement("popup", false);'); - content.addInteraction(input); - // Save - var input = content.createInput("button", "save", "{{.button.save}}"); - input.setAttribute('onclick', 'javascript: savePopupData("filter", "' + id + '", false, 0)'); - content.addInteraction(input); - break; - case "xmltv": - content.createHeadline(dataType); - // Name - var dbKey = "name"; - var input = content.createInput("text", dbKey, data[dbKey]); - input.setAttribute("placeholder", "{{.xmltv.name.placeholder}}"); - content.appendRow("{{.xmltv.name.title}}", input); - // Description - var dbKey = "description"; - var input = content.createInput("text", dbKey, data[dbKey]); - input.setAttribute("placeholder", "{{.xmltv.description.placeholder}}"); - content.appendRow("{{.xmltv.description.title}}", input); - // URL - var dbKey = "file.source"; - var input = content.createInput("text", dbKey, data[dbKey]); - input.setAttribute("placeholder", "{{.xmltv.fileXMLTV.placeholder}}"); - content.appendRow("{{.xmltv.fileXMLTV.title}}", input); - // Interaction - content.createInteraction(); - // Delete - if (data["id.provider"] != "-") { - var input = content.createInput("button", "delete", "{{.button.delete}}"); - input.setAttribute('onclick', 'javascript: savePopupData("xmltv", "' + id + '", true, 0)'); - input.className = "delete"; - content.addInteraction(input); - } - // Abort - var input = content.createInput("button", "cancel", "{{.button.cancel}}"); - input.setAttribute("onclick", 'javascript: showElement("popup", false);'); - content.addInteraction(input); - // Update - if (data["id.provider"] != "-") { - var input = content.createInput("button", "update", "{{.button.update}}"); - input.setAttribute('onclick', 'javascript: savePopupData("xmltv", "' + id + '", false, 1)'); - content.addInteraction(input); - } - // Save - var input = content.createInput("button", "save", "{{.button.save}}"); - input.setAttribute('onclick', 'javascript: savePopupData("xmltv", "' + id + '", false, 0)'); - content.addInteraction(input); - break; - case "users": - content.createHeadline("{{.mainMenu.item.users}}"); - // User name - var dbKey = "username"; - var input = content.createInput("text", dbKey, data[dbKey]); - input.setAttribute("placeholder", "{{.users.username.placeholder}}"); - content.appendRow("{{.users.username.title}}", input); - // New Parssword - var dbKey = "password"; - var input = content.createInput("password", dbKey, ""); - input.setAttribute("placeholder", "{{.users.password.placeholder}}"); - content.appendRow("{{.users.password.title}}", input); - // Confirmation - var dbKey = "confirm"; - var input = content.createInput("password", dbKey, ""); - input.setAttribute("placeholder", "{{.users.confirm.placeholder}}"); - content.appendRow("{{.users.confirm.title}}", input); - // Authentication WEB - var dbKey = "authentication.web"; - var input = content.createCheckbox(dbKey); - input.checked = data[dbKey]; - if (data["defaultUser"] == true) { - input.setAttribute("onclick", "javascript: return false"); - } - content.appendRow("{{.users.web.title}}", input); - // Authentication PMS - var dbKey = "authentication.pms"; - var input = content.createCheckbox(dbKey); - input.checked = data[dbKey]; - content.appendRow("{{.users.pms.title}}", input); - // Authentication M3U - var dbKey = "authentication.m3u"; - var input = content.createCheckbox(dbKey); - input.checked = data[dbKey]; - content.appendRow("{{.users.m3u.title}}", input); - // Authentication XML - var dbKey = "authentication.xml"; - var input = content.createCheckbox(dbKey); - input.checked = data[dbKey]; - content.appendRow("{{.users.xml.title}}", input); - // Authentication API - var dbKey = "authentication.api"; - var input = content.createCheckbox(dbKey); - input.checked = data[dbKey]; - content.appendRow("{{.users.api.title}}", input); - // Interaction - content.createInteraction(); - // Delete - if (data["defaultUser"] != true && id != "-") { - var input = content.createInput("button", "delete", "{{.button.delete}}"); - input.className = "delete"; - input.setAttribute('onclick', 'javascript: savePopupData("' + dataType + '", "' + id + '", true, 0)'); - content.addInteraction(input); - } - // Abort - var input = content.createInput("button", "cancel", "{{.button.cancel}}"); - input.setAttribute("onclick", 'javascript: showElement("popup", false);'); - content.addInteraction(input); - // Save - var input = content.createInput("button", "save", "{{.button.save}}"); - input.setAttribute("onclick", 'javascript: savePopupData("' + dataType + '", "' + id + '", "false");'); - content.addInteraction(input); - break; - case "mapping": - content.createHeadline("{{.mainMenu.item.mapping}}"); - // Active - var dbKey = "x-active"; - var input = content.createCheckbox(dbKey); - input.checked = data[dbKey]; - input.id = "active"; - //input.setAttribute("onchange", "javascript: this.className = 'changed'") - input.setAttribute("onchange", "javascript: toggleChannelStatus('" + id + "', this)"); - content.appendRow("{{.mapping.active.title}}", input); - // Channel name - var dbKey = "x-name"; - var input = content.createInput("text", dbKey, data[dbKey]); - input.setAttribute("onchange", "javascript: this.className = 'changed'"); - if (BULK_EDIT == true) { - input.style.border = "solid 1px red"; - input.setAttribute("readonly", "true"); - } - content.appendRow("{{.mapping.channelName.title}}", input); - content.description(data["name"]); - // Description - var dbKey = "x-description"; - var input = content.createInput("text", dbKey, data[dbKey]); - input.setAttribute("placeholder", "{{.mapping.description.placeholder}}"); - input.setAttribute("onchange", "javascript: this.className = 'changed'"); - content.appendRow("{{.mapping.description.title}}", input); - // Update the channel x-name - if (data.hasOwnProperty("_uuid.key")) { - if (data["_uuid.key"] != "") { - var dbKey = "x-update-channel-name"; - var input = content.createCheckbox(dbKey); - input.setAttribute("onchange", "javascript: this.className = 'changed'"); - input.checked = data[dbKey]; - content.appendRow("{{.mapping.updateChannelName.title}}", input); - } - } - // Channel name regex for updating the channel name - var dbKey = "update-channel-name-regex"; - var input = content.createInput("text", dbKey, data[dbKey]); - input.setAttribute("placeholder", "{{.mapping.updateChannelNameRegex.placeholder}}"); - input.setAttribute("onchange", "javascript: this.className = 'changed'"); - content.appendRow("{{.mapping.updateChannelNameRegex.title}}", input); - content.description("{{.mapping.updateChannelNameRegex.description}}"); - // Channel group regex for updating the channel name - var dbKey = "update-channel-name-by-group-regex"; - var input = content.createInput("text", dbKey, data[dbKey]); - input.setAttribute("placeholder", "{{.mapping.updateChannelNameByGroupRegex.placeholder}}"); - input.setAttribute("onchange", "javascript: this.className = 'changed'"); - content.appendRow("{{.mapping.updateChannelNameByGroupRegex.title}}", input); - content.description("{{.mapping.updateChannelNameByGroupRegex.description}}"); - // Logo URL (Channel) - var dbKey = "tvg-logo"; - var input = content.createInput("text", dbKey, data[dbKey]); - input.setAttribute("onchange", "javascript: this.className = 'changed'"); - input.setAttribute("id", "channel-icon"); - content.appendRow("{{.mapping.channelLogo.title}}", input); - // Channel logo update - var dbKey = "x-update-channel-icon"; - var input = content.createCheckbox(dbKey); - input.checked = data[dbKey]; - input.setAttribute("id", "update-icon"); - input.setAttribute("onchange", "javascript: this.className = 'changed'; changeChannelLogo('" + id + "');"); - content.appendRow("{{.mapping.updateChannelLogo.title}}", input); - // Expand EPG category - var dbKey = "x-category"; - var text = ["-", "Kids (Emby only)", "News", "Movie", "Series", "Sports"]; - var values = ["", "Kids", "News", "Movie", "Series", "Sports"]; - var select = content.createSelect(text, values, data[dbKey], dbKey); - select.setAttribute("onchange", "javascript: this.className = 'changed'"); - content.appendRow("{{.mapping.epgCategory.title}}", select); - // M3U group title - var dbKey = "x-group-title"; - var input = content.createInput("text", dbKey, data[dbKey]); - input.setAttribute("onchange", "javascript: this.className = 'changed'"); - input.dataset.oldValue = data[dbKey]; - content.appendRow("{{.mapping.m3uGroupTitle.title}}", input); - if (data["group-title"] != undefined) { - content.description(data["group-title"]); - } - if (data["x-update-channel-group"] == true) { - input.disabled = true; - } - // Update channel group checkbox - var dbKey = "x-update-channel-group"; - var input = content.createCheckbox(dbKey); - input.setAttribute("onchange", "javascript: toggleGroupUpdateCb('" + id + "', this);"); - input.checked = data[dbKey]; - content.appendRow("{{.mapping.updateChannelGroup.title}}", input); - content.description("{{.mapping.updateChannelGroup.description}}"); - // XMLTV file - var dbKey = 'x-xmltv-file'; - const xmlTvFile = data[dbKey]; - var xmlTv = new XMLTVFile(); - const xmlTvFileSelect = xmlTv.getFiles(data[dbKey]); - xmlTvFileSelect.setAttribute('name', dbKey); - xmlTvFileSelect.setAttribute('id', 'popup-xmltv'); - xmlTvFileSelect.setAttribute('onchange', `javascript: this.className = 'changed'; setXmltvChannel('${id}', this);`); - content.appendRow('{{.mapping.xmltvFile.title}}', xmlTvFileSelect); - // XMLTV Mapping - var dbKey = 'x-mapping'; - var xmlTv = new XMLTVFile(); - const currentXmlTvId = data[dbKey]; - const [xmlTvIdContainer, xmlTvIdInput, xmlTvIdDatalist] = xmlTv.newXmlTvIdPicker(xmlTvFile, currentXmlTvId); - xmlTvIdContainer.setAttribute('id', 'xmltv-id-picker-container'); - xmlTvIdInput.setAttribute('list', 'xmltv-id-picker-datalist'); - xmlTvIdInput.setAttribute('name', 'x-mapping'); // Should stay x-mapping as it will be used in donePopupData to make a server request - xmlTvIdInput.setAttribute('id', 'xmltv-id-picker-input'); - xmlTvIdInput.setAttribute('onchange', `javascript: this.className = 'changed'; checkXmltvChannel('${id}', this.value, '${xmlTvFile}');`); - xmlTvIdDatalist.setAttribute('id', 'xmltv-id-picker-datalist'); - content.appendRow('{{.mapping.xmltvChannel.title}}', xmlTvIdContainer); - // Timeshift - var dbKey = "x-timeshift"; - var input = content.createInput("text", dbKey, data[dbKey]); - input.setAttribute("onchange", "javascript: this.className = 'changed'"); - input.setAttribute("placeholder", "{{.mapping.timeshift.placeholder}}"); - input.setAttribute("id", "timeshift"); - content.appendRow("{{.mapping.timeshift.title}}", input); - // Interaction - content.createInteraction(); - // Upload logo - var input = content.createInput("button", "cancel", "{{.button.uploadLogo}}"); - input.setAttribute("onclick", 'javascript: uploadLogo();'); - content.addInteraction(input); - // Abort - var input = content.createInput("button", "cancel", "{{.button.cancel}}"); - input.setAttribute("onclick", 'javascript: showElement("popup", false);'); - content.addInteraction(input); - // Finished - var ids = []; - ids = getAllSelectedChannels(); - if (ids.length == 0) { - ids.push(id); - } - var input = content.createInput("button", "save", "{{.button.done}}"); - input.setAttribute("onclick", 'javascript: donePopupData("' + dataType + '", "' + ids + '", "false");'); - content.addInteraction(input); - break; - default: - break; - } - showPopUpElement('popup-custom'); -} -class XMLTVFile { - getFiles(set) { - let fileIDs = getOwnObjProps(SERVER["xepg"]["xmltvMap"]); - let values = new Array("-"); - let text = new Array("-"); - for (let i = 0; i < fileIDs.length; i++) { - if (fileIDs[i] != "xTeVe Dummy") { - values.push(getValueFromProviderFile(fileIDs[i], "xmltv", "file.xteve")); - text.push(getValueFromProviderFile(fileIDs[i], "xmltv", "name")); - } - else { - values.push(fileIDs[i]); - text.push(fileIDs[i]); - } - } - let select = document.createElement("SELECT"); - for (let i = 0; i < text.length; i++) { - var option = document.createElement("OPTION"); - option.setAttribute("value", values[i]); - option.innerText = text[i]; - select.appendChild(option); - } - if (set != "") { - select.value = set; - } - return select; - } - /** - * @param xmlTvFile XML file path to get EPG from. - * @param currentXmlTvId Current XMLTV ID to set initial input value to. - * @returns Array of, sequentially: - * 1) Container of the picker. - * 2) Input field to type at and get choice from. - * 3) Datalist containing every option. - */ - newXmlTvIdPicker(xmlTvFile, currentXmlTvId) { - const container = document.createElement('div'); - const input = document.createElement('input'); - input.setAttribute('type', 'text'); - // Initially, set value to '-' if input is empty - input.value = (currentXmlTvId) ? currentXmlTvId : '-'; - // When input is focused, remove '-' from it - input.addEventListener('focus', (evt) => { - const target = evt.target; - target.value = (target.value === '-') ? '' : target.value; - }); - // When input lose focus or take a value, if it's empty, set value to '-' - input.addEventListener('blur', setFallbackValue); - input.addEventListener('change', setFallbackValue); - function setFallbackValue(evt) { - const target = evt.target; - target.value = (target.value) ? target.value : '-'; - } - container.appendChild(input); - const datalist = document.createElement('datalist'); - const option = document.createElement('option'); - option.setAttribute('value', '-'); - option.innerText = '-'; - datalist.appendChild(option); - const epg = SERVER['xepg']['xmltvMap'][xmlTvFile]; - if (epg) { - const programIds = getOwnObjProps(epg); - programIds.forEach((programId) => { - const program = epg[programId]; - if (program.hasOwnProperty('display-names')) { - program['display-names'].forEach((displayName) => { - const option = document.createElement('option'); - option.setAttribute('value', programId); - option.innerText = displayName['Value']; - datalist.appendChild(option); - }); - } - else { - const option = document.createElement('option'); - option.setAttribute('value', programId); - option.innerText = '-'; - datalist.appendChild(option); - } - }); - } - container.appendChild(datalist); - return [container, input, datalist]; - } -} -function getValueFromProviderFile(file, fileType, key) { - if (file == "xTeVe Dummy") { - return file; - } - let fileID; - let indicator = file.charAt(0); - switch (indicator) { - case "M": - fileType = "m3u"; - fileID = file; - break; - case "H": - fileType = "hdhr"; - fileID = file; - break; - case "X": - fileType = "xmltv"; - fileID = file.substring(0, file.lastIndexOf('.')); - break; - } - if (SERVER["settings"]["files"][fileType].hasOwnProperty(fileID) == true) { - var data = SERVER["settings"]["files"][fileType][fileID]; - return data[key]; - } - return; -} -function setXmltvChannel(epgMapId, xmlTvFileSelect) { - const xmlTv = new XMLTVFile(); - const newXmlTvFile = xmlTvFileSelect.value; - // Remove old XMLTV ID selection box - const xmlTvIdPickerParent = document.getElementById('xmltv-id-picker-container').parentElement; - xmlTvIdPickerParent.innerHTML = ''; - // Create new XMLTV ID selection box - const tvgId = SERVER['xepg']['epgMapping'][epgMapId]['tvg-id']; - const [xmlTvIdContainer, xmlTvIdInput, xmlTvIdDatalist] = xmlTv.newXmlTvIdPicker(newXmlTvFile, tvgId); - xmlTvIdContainer.setAttribute('id', 'xmltv-id-picker-container'); - xmlTvIdInput.setAttribute('list', 'xmltv-id-picker-datalist'); - xmlTvIdInput.setAttribute('name', 'x-mapping'); // Should stay x-mapping as it will be used in donePopupData to make a server request - xmlTvIdInput.setAttribute('id', 'xmltv-id-picker-input'); - xmlTvIdInput.setAttribute('onchange', `javascript: this.className = 'changed'; checkXmltvChannel('${epgMapId}', this.value, '${newXmlTvFile}');`); - xmlTvIdInput.classList.add('changed'); - xmlTvIdDatalist.setAttribute('id', 'xmltv-id-picker-datalist'); - // Add new XMLTV ID selection box to it's parent - xmlTvIdPickerParent.appendChild(xmlTvIdContainer); - checkXmltvChannel(epgMapId, xmlTvIdInput.value, newXmlTvFile); -} -function checkXmltvChannel(epgMapId, newXmlTvId, xmlTvFile) { - const channelActiveCb = document.getElementById('active'); - const channelActive = newXmlTvId != '-'; - channelActiveCb.checked = channelActive; - channelActiveCb.className = 'changed'; - if (xmlTvFile != 'xTeVe Dummy' && channelActive == true) { - changeChannelLogo(epgMapId); - return; - } - if (xmlTvFile == 'xTeVe Dummy') { - document.getElementById('update-icon').checked = false; - document.getElementById('update-icon').className = 'changed'; - } -} -function changeChannelLogo(epgMapId) { - const channel = SERVER['xepg']['epgMapping'][epgMapId]; - const xmlTvFileSelect = document.getElementById('popup-xmltv'); - const xmlTvFile = xmlTvFileSelect.options[xmlTvFileSelect.selectedIndex].value; - const xmlTvIdInput = document.getElementById('xmltv-id-picker-input'); - const newXmlTvId = xmlTvIdInput.value; - const updateLogo = document.getElementById('update-icon').checked; - let logo; - if (updateLogo == true && xmlTvFile != 'xTeVe Dummy') { - if (SERVER['xepg']['xmltvMap'][xmlTvFile].hasOwnProperty(newXmlTvId)) { - logo = SERVER['xepg']['xmltvMap'][xmlTvFile][newXmlTvId]['icon']; - } - else { - logo = channel['tvg-logo']; - } - var logoInput = document.getElementById('channel-icon'); - logoInput.value = logo; - if (BULK_EDIT == false) { - logoInput.className = 'changed'; - } - } -} -function savePopupData(dataType, id, remove, option) { - if (dataType == "mapping") { - let data = {}; - let cmd = "saveEpgMapping"; - data["epgMapping"] = SERVER["xepg"]["epgMapping"]; - let server = new Server(cmd); - server.request(data); - delete UNDO["epgMapping"]; - return; - } - let div = document.getElementById("popup-custom"); - let inputs = div.getElementsByTagName("TABLE")[0].getElementsByTagName("INPUT"); - let selects = div.getElementsByTagName("TABLE")[0].getElementsByTagName("SELECT"); - let input = {}; - let confirmMsg; - for (let i = 0; i < selects.length; i++) { - var name; - name = selects[i].name; - var value = selects[i].value; - switch (name) { - case "tuner": - input[name] = parseInt(value); - break; - default: - input[name] = value; - break; - } - } - for (let i = 0; i < inputs.length; i++) { - switch (inputs[i].type) { - case "checkbox": - name = inputs[i].name; - input[name] = inputs[i].checked; - break; - case "text": - case "hidden": - case "password": - name = inputs[i].name; - switch (name) { - case "tuner": - input[name] = parseInt(inputs[i].value); - break; - default: - input[name] = inputs[i].value; - break; - } - break; - } - } - let data = {}; - let cmd; - if (remove == true) { - input["delete"] = true; - } - switch (dataType) { - case "users": - confirmMsg = "Delete this user?"; - if (id == "-") { - cmd = "saveNewUser"; - data["userData"] = input; - } - else { - cmd = "saveUserData"; - let d = {}; - d[id] = input; - data["userData"] = d; - } - break; - case "m3u": - confirmMsg = "Delete this playlist?"; - switch (option) { - // Popup: Save - case 0: - cmd = "saveFilesM3U"; - break; - // Popup: Update - case 1: - cmd = "updateFileM3U"; - break; - } - data["files"] = {}; - data["files"][dataType] = {}; - data["files"][dataType][id] = input; - break; - case "hdhr": - confirmMsg = "Delete this HDHomeRun tuner?"; - switch (option) { - // Popup: Save - case 0: - cmd = "saveFilesHDHR"; - break; - // Popup: Update - case 1: - cmd = "updateFileHDHR"; - break; - } - data["files"] = {}; - data["files"][dataType] = {}; - data["files"][dataType][id] = input; - break; - case "xmltv": - confirmMsg = "Delete this XMLTV file?"; - switch (option) { - // Popup: Save - case 0: - cmd = "saveFilesXMLTV"; - break; - // Popup: Update - case 1: - cmd = "updateFileXMLTV"; - break; - } - data["files"] = {}; - data["files"][dataType] = {}; - data["files"][dataType][id] = input; - break; - case "filter": - confirmMsg = "Delete this filter?"; - cmd = "saveFilter"; - data["filter"] = {}; - data["filter"][id] = input; - break; - default: - return; - } - if (remove == true) { - if (!confirm(confirmMsg)) { - showElement("popup", false); - return; - } - } - let server = new Server(cmd); - server.request(data); -} -function donePopupData(dataType, idsStr) { - let ids = idsStr.split(','); - let div = document.getElementById("popup-custom"); - let inputs = div.getElementsByClassName("changed"); - ids.forEach(id => { - let input; - input = SERVER["xepg"]["epgMapping"][id]; - for (let i = 0; i < inputs.length; i++) { - let name; - let value; - switch (inputs[i].tagName) { - case "INPUT": - switch (inputs[i].type) { - case "checkbox": - name = inputs[i].name; - value = inputs[i].checked; - input[name] = value; - break; - case "text": - name = inputs[i].name; - value = inputs[i].value; - input[name] = value; - break; - } - break; - case "SELECT": - name = inputs[i].name; - value = inputs[i].value; - input[name] = value; - break; - } - switch (name) { - case "tvg-logo": - //(document.getElementById(id).childNodes[2].firstChild as HTMLElement).setAttribute("src", value) - break; - case "x-name": - document.getElementById(id).childNodes[3].firstChild.innerHTML = value; - break; - case "x-category": - document.getElementById(id).childNodes[3].firstChild.className = value; - break; - case "update-channel-name-regex": - document.getElementById(id).childNodes[4].firstChild.innerHTML = value; - break; - case "x-group-title": - document.getElementById(id).childNodes[6].firstChild.innerHTML = value; - break; - case "x-xmltv-file": - if (value != "xTeVe Dummy" && value != "-") { - value = getValueFromProviderFile(value, "xmltv", "name"); - } - if (value == "-") { - input["x-active"] = false; - } - document.getElementById(id).childNodes[7].firstChild.innerHTML = value; - break; - case "x-mapping": - if (value == "-") { - input["x-active"] = false; - } - document.getElementById(id).childNodes[8].firstChild.innerHTML = value; - break; - case "x-timeshift": - document.getElementById(id).childNodes[9].firstChild.innerHTML = value; - break; - default: - } - createSearchObj(); - searchInMapping(); - } - if (input["x-active"] == false) { - document.getElementById(id).className = "notActiveEPG"; - } - else { - document.getElementById(id).className = "activeEPG"; - } - document.getElementById(id).childNodes[2].firstChild.setAttribute("src", input["tvg-logo"]); - }); - showElement("popup", false); - return; -} -function showPreview(element) { - let div = document.getElementById("myStreamsBox"); - switch (element) { - case false: - div.className = "notVisible"; - return; - } - let streams = ["activeStreams", "inactiveStreams"]; - streams.forEach(preview => { - let table = document.getElementById(preview); - table.innerHTML = ""; - let obj = SERVER["data"]["StreamPreviewUI"][preview]; - obj.forEach(channel => { - let tr = document.createElement("TR"); - let tdKey = document.createElement("TD"); - let tdVal = document.createElement("TD"); - tdKey.className = "tdKey"; - tdVal.className = "tdVal"; - switch (preview) { - case "activeStreams": - tdKey.innerText = "Channel: (+)"; - break; - case "inactiveStreams": - tdKey.innerText = "Channel: (-)"; - break; - } - tdVal.innerText = channel; - tr.appendChild(tdKey); - tr.appendChild(tdVal); - table.appendChild(tr); - }); - }); - showElement("loading", false); - div.className = "visible"; - return; -} diff --git a/html/js/network_ts.js b/html/js/network_ts.js deleted file mode 100644 index fee2b07..0000000 --- a/html/js/network_ts.js +++ /dev/null @@ -1,97 +0,0 @@ -class Server { - constructor(cmd) { - this.cmd = cmd; - } - request(data) { - if (SERVER_CONNECTION == true) { - return; - } - SERVER_CONNECTION = true; - if (this.cmd != "updateLog") { - showElement("loading", true); - UNDO = new Object(); - } - switch (window.location.protocol) { - case "http:": - this.protocol = "ws://"; - break; - case "https:": - this.protocol = "wss://"; - break; - } - var url = this.protocol + window.location.hostname + ":" + window.location.port + "/data/" + "?Token=" + getCookie("Token"); - data["cmd"] = this.cmd; - var ws = new WebSocket(url); - ws.onopen = function () { - WS_AVAILABLE = true; - this.send(JSON.stringify(data)); - }; - ws.onerror = function (wsErrEvt) { - console.log("No websocket connection to xTeVe could be established. Check your network configuration."); - SERVER_CONNECTION = false; - if (WS_AVAILABLE == false) { - alert("No websocket connection to xTeVe could be established. Check your network configuration."); - } - }; - ws.onmessage = function (wsMessageEvt) { - SERVER_CONNECTION = false; - showElement("loading", false); - const response = JSON.parse(wsMessageEvt.data); - if (response.hasOwnProperty("token")) { - document.cookie = "Token=" + response["token"]; - } - if (response["status"] == false) { - alert(response["err"]); - return; - } - if (response.hasOwnProperty('openLink')) { - window.location = response['openLink']; - } - if (response.hasOwnProperty("reload")) { - window.location.reload(); - } - if (response.hasOwnProperty("alert")) { - alert(response["alert"]); - } - if (response.hasOwnProperty("logoURL")) { - var div = document.getElementById("channel-icon"); - div.value = response["logoURL"]; - div.className = "changed"; - return; - } - switch (data["cmd"]) { - case "updateLog": - SERVER["log"] = response["log"]; - if (document.getElementById("content_log")) { - showLogs(false); - } - return; - default: - SERVER = new Object(); - SERVER = response; - break; - } - if (response.hasOwnProperty("openMenu")) { - var menu = document.getElementById(response["openMenu"]); - menu.click(); - showElement("popup", false); - } - if (response.hasOwnProperty("reload")) { - location.reload(); - } - if (response.hasOwnProperty("wizard")) { - createLayout(); - configurationWizard[response["wizard"]].createWizard(); - return; - } - createLayout(); - }; - } -} -function getCookie(name) { - var value = "; " + document.cookie; - var parts = value.split("; " + name + "="); - if (parts.length == 2) { - return parts.pop().split(";").shift(); - } -} diff --git a/html/js/settings_ts.js b/html/js/settings_ts.js deleted file mode 100644 index 62f8f93..0000000 --- a/html/js/settings_ts.js +++ /dev/null @@ -1,612 +0,0 @@ -class SettingsCategory { - constructor() { - this.DocumentID = "content_settings"; - } - createCategoryHeadline(value) { - var element = document.createElement("H4"); - element.innerHTML = value; - return element; - } - createHR() { - var element = document.createElement("HR"); - return element; - } - createSettings(settingsKey) { - var setting = document.createElement("TR"); - var content = new PopupContent(); - var data = SERVER["settings"][settingsKey]; - switch (settingsKey) { - // Text inputs - case "update": - var tdLeft = document.createElement("TD"); - tdLeft.innerHTML = "{{.settings.update.title}}" + ":"; - var tdRight = document.createElement("TD"); - var input = content.createInput("text", "update", data.toString()); - input.setAttribute("placeholder", "{{.settings.update.placeholder}}"); - input.setAttribute("onchange", "javascript: this.className = 'changed'"); - tdRight.appendChild(input); - setting.appendChild(tdLeft); - setting.appendChild(tdRight); - break; - case "backup.path": - var tdLeft = document.createElement("TD"); - tdLeft.innerHTML = "{{.settings.backupPath.title}}" + ":"; - var tdRight = document.createElement("TD"); - var input = content.createInput("text", "backup.path", data); - input.setAttribute("placeholder", "{{.settings.backupPath.placeholder}}"); - input.setAttribute("onchange", "javascript: this.className = 'changed'"); - tdRight.appendChild(input); - setting.appendChild(tdLeft); - setting.appendChild(tdRight); - break; - case "temp.path": - var tdLeft = document.createElement("TD"); - tdLeft.innerHTML = "{{.settings.tempPath.title}}" + ":"; - var tdRight = document.createElement("TD"); - var input = content.createInput("text", "temp.path", data); - input.setAttribute("placeholder", "{{.settings.tmpPath.placeholder}}"); - input.setAttribute("onchange", "javascript: this.className = 'changed'"); - tdRight.appendChild(input); - setting.appendChild(tdLeft); - setting.appendChild(tdRight); - break; - case "user.agent": - var tdLeft = document.createElement("TD"); - tdLeft.innerHTML = "{{.settings.userAgent.title}}" + ":"; - var tdRight = document.createElement("TD"); - var input = content.createInput("text", "user.agent", data); - input.setAttribute("placeholder", "{{.settings.userAgent.placeholder}}"); - input.setAttribute("onchange", "javascript: this.className = 'changed'"); - tdRight.appendChild(input); - setting.appendChild(tdLeft); - setting.appendChild(tdRight); - break; - case "buffer.timeout": - var tdLeft = document.createElement("TD"); - tdLeft.innerHTML = "{{.settings.bufferTimeout.title}}" + ":"; - var tdRight = document.createElement("TD"); - var input = content.createInput("text", "buffer.timeout", data); - input.setAttribute("placeholder", "{{.settings.bufferTimeout.placeholder}}"); - input.setAttribute("onchange", "javascript: this.className = 'changed'"); - tdRight.appendChild(input); - setting.appendChild(tdLeft); - setting.appendChild(tdRight); - break; - case "ffmpeg.path": - var tdLeft = document.createElement("TD"); - tdLeft.innerHTML = "{{.settings.ffmpegPath.title}}" + ":"; - var tdRight = document.createElement("TD"); - var input = content.createInput("text", "ffmpeg.path", data); - input.setAttribute("placeholder", "{{.settings.ffmpegPath.placeholder}}"); - input.setAttribute("onchange", "javascript: this.className = 'changed'"); - tdRight.appendChild(input); - setting.appendChild(tdLeft); - setting.appendChild(tdRight); - break; - case "ffmpeg.options": - var tdLeft = document.createElement("TD"); - tdLeft.innerHTML = "{{.settings.ffmpegOptions.title}}" + ":"; - var tdRight = document.createElement("TD"); - var input = content.createInput("text", "ffmpeg.options", data); - input.setAttribute("placeholder", "{{.settings.ffmpegOptions.placeholder}}"); - input.setAttribute("onchange", "javascript: this.className = 'changed'"); - tdRight.appendChild(input); - setting.appendChild(tdLeft); - setting.appendChild(tdRight); - break; - case "vlc.path": - var tdLeft = document.createElement("TD"); - tdLeft.innerHTML = "{{.settings.vlcPath.title}}" + ":"; - var tdRight = document.createElement("TD"); - var input = content.createInput("text", "vlc.path", data); - input.setAttribute("placeholder", "{{.settings.vlcPath.placeholder}}"); - input.setAttribute("onchange", "javascript: this.className = 'changed'"); - tdRight.appendChild(input); - setting.appendChild(tdLeft); - setting.appendChild(tdRight); - break; - case "vlc.options": - var tdLeft = document.createElement("TD"); - tdLeft.innerHTML = "{{.settings.vlcOptions.title}}" + ":"; - var tdRight = document.createElement("TD"); - var input = content.createInput("text", "vlc.options", data); - input.setAttribute("placeholder", "{{.settings.vlcOptions.placeholder}}"); - input.setAttribute("onchange", "javascript: this.className = 'changed'"); - tdRight.appendChild(input); - setting.appendChild(tdLeft); - setting.appendChild(tdRight); - break; - // Checkboxes - case "tlsMode": - var tdLeft = document.createElement("TD"); - tdLeft.innerHTML = "{{.settings.tlsMode.title}}" + ":"; - var tdRight = document.createElement("TD"); - var input = content.createCheckbox(settingsKey); - input.checked = data; - input.setAttribute("onchange", "javascript: this.className = 'changed'"); - tdRight.appendChild(input); - setting.appendChild(tdLeft); - setting.appendChild(tdRight); - break; - case "disallowURLDuplicates": - var tdLeft = document.createElement("TD"); - tdLeft.innerHTML = "{{.settings.disallowURLDuplicates.title}}" + ":"; - var tdRight = document.createElement("TD"); - var input = content.createCheckbox(settingsKey); - input.checked = data; - input.setAttribute("onchange", "javascript: this.className = 'changed'"); - tdRight.appendChild(input); - setting.appendChild(tdLeft); - setting.appendChild(tdRight); - break; - case "authentication.web": - var tdLeft = document.createElement("TD"); - tdLeft.innerHTML = "{{.settings.authenticationWEB.title}}" + ":"; - var tdRight = document.createElement("TD"); - var input = content.createCheckbox(settingsKey); - input.checked = data; - input.setAttribute("onchange", "javascript: this.className = 'changed'"); - tdRight.appendChild(input); - setting.appendChild(tdLeft); - setting.appendChild(tdRight); - break; - case "authentication.pms": - var tdLeft = document.createElement("TD"); - tdLeft.innerHTML = "{{.settings.authenticationPMS.title}}" + ":"; - var tdRight = document.createElement("TD"); - var input = content.createCheckbox(settingsKey); - input.checked = data; - input.setAttribute("onchange", "javascript: this.className = 'changed'"); - tdRight.appendChild(input); - setting.appendChild(tdLeft); - setting.appendChild(tdRight); - break; - case "authentication.m3u": - var tdLeft = document.createElement("TD"); - tdLeft.innerHTML = "{{.settings.authenticationM3U.title}}" + ":"; - var tdRight = document.createElement("TD"); - var input = content.createCheckbox(settingsKey); - input.checked = data; - input.setAttribute("onchange", "javascript: this.className = 'changed'"); - tdRight.appendChild(input); - setting.appendChild(tdLeft); - setting.appendChild(tdRight); - break; - case "authentication.xml": - var tdLeft = document.createElement("TD"); - tdLeft.innerHTML = "{{.settings.authenticationXML.title}}" + ":"; - var tdRight = document.createElement("TD"); - var input = content.createCheckbox(settingsKey); - input.checked = data; - input.setAttribute("onchange", "javascript: this.className = 'changed'"); - tdRight.appendChild(input); - setting.appendChild(tdLeft); - setting.appendChild(tdRight); - break; - case "authentication.api": - var tdLeft = document.createElement("TD"); - tdLeft.innerHTML = "{{.settings.authenticationAPI.title}}" + ":"; - var tdRight = document.createElement("TD"); - var input = content.createCheckbox(settingsKey); - input.checked = data; - input.setAttribute("onchange", "javascript: this.className = 'changed'"); - tdRight.appendChild(input); - setting.appendChild(tdLeft); - setting.appendChild(tdRight); - break; - case "files.update": - var tdLeft = document.createElement("TD"); - tdLeft.innerHTML = "{{.settings.filesUpdate.title}}" + ":"; - var tdRight = document.createElement("TD"); - var input = content.createCheckbox(settingsKey); - input.checked = data; - input.setAttribute("onchange", "javascript: this.className = 'changed'"); - tdRight.appendChild(input); - setting.appendChild(tdLeft); - setting.appendChild(tdRight); - break; - case "cache.images": - var tdLeft = document.createElement("TD"); - tdLeft.innerHTML = "{{.settings.cacheImages.title}}" + ":"; - var tdRight = document.createElement("TD"); - var input = content.createCheckbox(settingsKey); - input.checked = data; - input.setAttribute("onchange", "javascript: this.className = 'changed'"); - tdRight.appendChild(input); - setting.appendChild(tdLeft); - setting.appendChild(tdRight); - break; - case "xepg.replace.missing.images": - var tdLeft = document.createElement("TD"); - tdLeft.innerHTML = "{{.settings.replaceEmptyImages.title}}" + ":"; - var tdRight = document.createElement("TD"); - var input = content.createCheckbox(settingsKey); - input.checked = data; - input.setAttribute("onchange", "javascript: this.className = 'changed'"); - tdRight.appendChild(input); - setting.appendChild(tdLeft); - setting.appendChild(tdRight); - break; - case "storeBufferInRAM": - var tdLeft = document.createElement("TD"); - tdLeft.innerHTML = "{{.settings.storeBufferInRAM.title}}" + ":"; - var tdRight = document.createElement("TD"); - var input = content.createCheckbox(settingsKey); - input.checked = data; - input.setAttribute("onchange", "javascript: this.className = 'changed'"); - tdRight.appendChild(input); - setting.appendChild(tdLeft); - setting.appendChild(tdRight); - break; - case "xteveAutoUpdate": - var tdLeft = document.createElement("TD"); - tdLeft.innerHTML = "{{.settings.xteveAutoUpdate.title}}" + ":"; - var tdRight = document.createElement("TD"); - var input = content.createCheckbox(settingsKey); - input.checked = data; - input.setAttribute("onchange", "javascript: this.className = 'changed'"); - tdRight.appendChild(input); - setting.appendChild(tdLeft); - setting.appendChild(tdRight); - break; - case "clearXMLTVCache": - var tdLeft = document.createElement("TD"); - tdLeft.innerHTML = "{{.settings.clearXMLTVCache.title}}" + ":"; - var tdRight = document.createElement("TD"); - var input = content.createCheckbox(settingsKey); - input.checked = data; - input.setAttribute("onchange", "javascript: this.className = 'changed'"); - tdRight.appendChild(input); - setting.appendChild(tdLeft); - setting.appendChild(tdRight); - break; - case "api": - var tdLeft = document.createElement("TD"); - tdLeft.innerHTML = "{{.settings.api.title}}" + ":"; - var tdRight = document.createElement("TD"); - var input = content.createCheckbox(settingsKey); - input.checked = data; - input.setAttribute("onchange", "javascript: this.className = 'changed'"); - tdRight.appendChild(input); - setting.appendChild(tdLeft); - setting.appendChild(tdRight); - break; - case "enableMappedChannels": - var tdLeft = document.createElement("TD"); - tdLeft.innerHTML = "{{.settings.enableMappedChannels.title}}" + ":"; - var tdRight = document.createElement("TD"); - var input = content.createCheckbox(settingsKey); - input.checked = data; - input.setAttribute("onchange", "javascript: this.className = 'changed'"); - tdRight.appendChild(input); - setting.appendChild(tdLeft); - setting.appendChild(tdRight); - break; - // Select - case "hostIP": - var tdLeft = document.createElement("TD"); - tdLeft.innerHTML = "{{.settings.hostIP.title}}" + ":"; - var tdRight = document.createElement("TD"); - var text = SERVER["ipAddressesV4Host"]; - var values = SERVER["ipAddressesV4Host"]; - var select = content.createSelect(text, values, data, settingsKey); - select.setAttribute("onchange", "javascript: this.className = 'changed'"); - tdRight.appendChild(select); - setting.appendChild(tdLeft); - setting.appendChild(tdRight); - break; - case "hostName": - var tdLeft = document.createElement("TD"); - tdLeft.innerHTML = "{{.settings.hostName.title}}" + ":"; - var tdRight = document.createElement("TD"); - var input = content.createInput("text", "hostName", data); - input.setAttribute("placeholder", "{{.settings.hostName.placeholder}}"); - input.setAttribute("onchange", "javascript: this.className = 'changed'"); - tdRight.appendChild(input); - setting.appendChild(tdLeft); - setting.appendChild(tdRight); - break; - case "tuner": - var tdLeft = document.createElement("TD"); - tdLeft.innerHTML = "{{.settings.tuner.title}}" + ":"; - var tdRight = document.createElement("TD"); - var text = new Array(); - var values = new Array(); - for (var i = 1; i <= 100; i++) { - text.push(i); - values.push(i); - } - var select = content.createSelect(text, values, data, settingsKey); - select.setAttribute("onchange", "javascript: this.className = 'changed'"); - tdRight.appendChild(select); - setting.appendChild(tdLeft); - setting.appendChild(tdRight); - break; - case "epgSource": - var tdLeft = document.createElement("TD"); - tdLeft.innerHTML = "{{.settings.epgSource.title}}" + ":"; - var tdRight = document.createElement("TD"); - var text = ["PMS", "XEPG"]; - var values = ["PMS", "XEPG"]; - var select = content.createSelect(text, values, data, settingsKey); - select.setAttribute("onchange", "javascript: this.className = 'changed'"); - tdRight.appendChild(select); - setting.appendChild(tdLeft); - setting.appendChild(tdRight); - break; - case "defaultMissingEPG": - var tdLeft = document.createElement("TD"); - tdLeft.innerHTML = "{{.settings.defaultMissingEPG.title}}" + ":"; - var tdRight = document.createElement("TD"); - var text = [ - "-", "30 Minutes (30_Minutes)", "60 Minutes (60_Minutes)", "90 Minutes (90_Minutes)", - "120 Minutes (120_Minutes)", "180 Minutes (180_Minutes)", "240 Minutes (240_Minutes)", "360 Minutes (360_Minutes)" - ]; - var values = [ - "-", "30_Minutes", "60_Minutes", "90_Minutes", "120_Minutes", "180_Minutes", "240_Minutes", "360_Minutes" - ]; - var select = content.createSelect(text, values, data, settingsKey); - select.setAttribute("onchange", "javascript: this.className = 'changed'"); - tdRight.appendChild(select); - setting.appendChild(tdLeft); - setting.appendChild(tdRight); - break; - case "backup.keep": - var tdLeft = document.createElement("TD"); - tdLeft.innerHTML = "{{.settings.backupKeep.title}}" + ":"; - var tdRight = document.createElement("TD"); - var text = ["5", "10", "20", "30", "40", "50"]; - var values = ["5", "10", "20", "30", "40", "50"]; - var select = content.createSelect(text, values, data, settingsKey); - select.setAttribute("onchange", "javascript: this.className = 'changed'"); - tdRight.appendChild(select); - setting.appendChild(tdLeft); - setting.appendChild(tdRight); - break; - case "buffer.size.kb": - var tdLeft = document.createElement("TD"); - tdLeft.innerHTML = "{{.settings.bufferSize.title}}" + ":"; - var tdRight = document.createElement("TD"); - var text = ["0.5 MB", "1 MB", "2 MB", "3 MB", "4 MB", "5 MB", "6 MB", "7 MB", "8 MB"]; - var values = ["512", "1024", "2048", "3072", "4096", "5120", "6144", "7168", "8192"]; - var select = content.createSelect(text, values, data, settingsKey); - select.setAttribute("onchange", "javascript: this.className = 'changed'"); - tdRight.appendChild(select); - setting.appendChild(tdLeft); - setting.appendChild(tdRight); - break; - case "buffer": - var tdLeft = document.createElement("TD"); - tdLeft.innerHTML = "{{.settings.streamBuffering.title}}" + ":"; - var tdRight = document.createElement("TD"); - var text = ["{{.settings.streamBuffering.info_false}}", "xTeVe: ({{.settings.streamBuffering.info_xteve}})", "FFmpeg: ({{.settings.streamBuffering.info_ffmpeg}})", "VLC: ({{.settings.streamBuffering.info_vlc}})"]; - var values = ["-", "xteve", "ffmpeg", "vlc"]; - var select = content.createSelect(text, values, data, settingsKey); - select.setAttribute("onchange", "javascript: this.className = 'changed'"); - tdRight.appendChild(select); - setting.appendChild(tdLeft); - setting.appendChild(tdRight); - break; - case "udpxy": - var tdLeft = document.createElement("TD"); - tdLeft.innerHTML = "{{.settings.udpxy.title}}" + ":"; - var tdRight = document.createElement("TD"); - var input = content.createInput("text", "udpxy", data); - input.setAttribute("placeholder", "{{.settings.udpxy.placeholder}}"); - input.setAttribute("onchange", "javascript: this.className = 'changed'"); - tdRight.appendChild(input); - setting.appendChild(tdLeft); - setting.appendChild(tdRight); - break; - } - return setting; - } - createDescription(settingsKey) { - var description = document.createElement("TR"); - var text; - switch (settingsKey) { - case "tlsMode": - text = "{{.settings.tlsMode.description}}"; - break; - case "disallowURLDuplicates": - text = "{{.settings.disallowURLDuplicates.description}}"; - break; - case "authentication.web": - text = "{{.settings.authenticationWEB.description}}"; - break; - case "authentication.m3u": - text = "{{.settings.authenticationM3U.description}}"; - break; - case "authentication.pms": - text = "{{.settings.authenticationPMS.description}}"; - break; - case "authentication.xml": - text = "{{.settings.authenticationXML.description}}"; - break; - case "authentication.api": - if (SERVER["settings"]["authentication.web"] == true) { - text = "{{.settings.authenticationAPI.description}}"; - } - break; - case "xteveAutoUpdate": - text = "{{.settings.xteveAutoUpdate.description}}"; - break; - case "backup.keep": - text = "{{.settings.backupKeep.description}}"; - break; - case "backup.path": - text = "{{.settings.backupPath.description}}"; - break; - case "temp.path": - text = "{{.settings.tempPath.description}}"; - break; - case "buffer": - text = "{{.settings.streamBuffering.description}}"; - break; - case "buffer.size.kb": - text = "{{.settings.bufferSize.description}}"; - break; - case "storeBufferInRAM": - text = "{{.settings.storeBufferInRAM.description}}"; - break; - case "buffer.timeout": - text = "{{.settings.bufferTimeout.description}}"; - break; - case "user.agent": - text = "{{.settings.userAgent.description}}"; - break; - case "ffmpeg.path": - text = "{{.settings.ffmpegPath.description}}"; - break; - case "ffmpeg.options": - text = "{{.settings.ffmpegOptions.description}}"; - break; - case "vlc.path": - text = "{{.settings.vlcPath.description}}"; - break; - case "vlc.options": - text = "{{.settings.vlcOptions.description}}"; - break; - case "epgSource": - text = "{{.settings.epgSource.description}}"; - break; - case "hostIP": - text = "{{.settings.hostIP.description}}"; - break; - case "hostName": - text = "{{.settings.hostName.description}}"; - break; - case "tuner": - text = "{{.settings.tuner.description}}"; - break; - case "update": - text = "{{.settings.update.description}}"; - break; - case "clearXMLTVCache": - text = "{{.settings.clearXMLTVCache.description}}"; - break; - case "api": - text = "{{.settings.api.description}}"; - break; - case "defaultMissingEPG": - text = "{{.settings.defaultMissingEPG.description}}"; - break; - case "enableMappedChannels": - text = "{{.settings.enableMappedChannels.description}}"; - break; - case "files.update": - text = "{{.settings.filesUpdate.description}}"; - break; - case "cache.images": - text = "{{.settings.cacheImages.description}}"; - break; - case "xepg.replace.missing.images": - text = "{{.settings.replaceEmptyImages.description}}"; - break; - case "udpxy": - text = "{{.settings.udpxy.description}}"; - break; - default: - text = ""; - break; - } - var tdLeft = document.createElement("TD"); - tdLeft.innerHTML = ""; - var tdRight = document.createElement("TD"); - var pre = document.createElement("PRE"); - pre.innerHTML = text; - tdRight.appendChild(pre); - description.appendChild(tdLeft); - description.appendChild(tdRight); - return description; - } -} -class SettingsCategoryItem extends SettingsCategory { - constructor(headline, settingsKeys) { - super(); - this.headline = headline; - this.settingsKeys = settingsKeys; - } - createCategory() { - var headline = this.createCategoryHeadline(this.headline); - var settingsKeys = this.settingsKeys; - var doc = document.getElementById(this.DocumentID); - doc.appendChild(headline); - // Create a table for the category - var table = document.createElement("TABLE"); - var keys = settingsKeys.split(","); - keys.forEach(settingsKey => { - switch (settingsKey) { - case "authentication.pms": - case "authentication.m3u": - case "authentication.xml": - case "authentication.api": - if (SERVER["settings"]["authentication.web"] == false) { - break; - } - default: - var item = this.createSettings(settingsKey); - var description = this.createDescription(settingsKey); - table.appendChild(item); - table.appendChild(description); - break; - } - }); - doc.appendChild(table); - doc.appendChild(this.createHR()); - } -} -function showSettings() { - for (let i = 0; i < settingsCategory.length; i++) { - settingsCategory[i].createCategory(); - } -} -function saveSettings() { - var cmd = "saveSettings"; - var div = document.getElementById("content_settings"); - var settings = div.getElementsByClassName("changed"); - var newSettings = new Object(); - for (let i = 0; i < settings.length; i++) { - var name; - var value; - switch (settings[i].tagName) { - case "INPUT": - switch (settings[i].type) { - case "checkbox": - name = settings[i].name; - value = settings[i].checked; - newSettings[name] = value; - break; - case "text": - name = settings[i].name; - value = settings[i].value; - switch (name) { - case "update": - value = value.split(","); - value = value.filter(function (e) { return e; }); - break; - case "buffer.timeout": - value = parseFloat(value); - } - newSettings[name] = value; - break; - } - break; - case "SELECT": - name = settings[i].name; - value = settings[i].value; - // If the value is a number, store it as a number - if (isNaN(value)) { - newSettings[name] = value; - } - else { - newSettings[name] = parseInt(value); - } - break; - } - } - var data = new Object(); - data["settings"] = newSettings; - var server = new Server(cmd); - server.request(data); -} diff --git a/src/webUI.go b/src/webUI.go index dc2b97c..447ea28 100644 --- a/src/webUI.go +++ b/src/webUI.go @@ -26,7 +26,6 @@ func loadHTMLMap() { webUI["html/index.html"] = "PCFkb2N0eXBlIGh0bWw+CjxodG1sIGxhbmc9ImVuIj4KCjxoZWFkPgogIDxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KICA8bWV0YSBuYW1lPSJ2aWV3cG9ydCIgY29udGVudD0id2lkdGg9ZGV2aWNlLXdpZHRoLCBpbml0aWFsLXNjYWxlPTEuMCIgLz4KICA8dGl0bGU+eFRlVmU8L3RpdGxlPgogIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iY3NzL3NjcmVlbi5jc3MiIHR5cGU9InRleHQvY3NzIj4KICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9ImNzcy9iYXNlLmNzcyIgdHlwZT0idGV4dC9jc3MiPgoKICA8c2NyaXB0IGxhbmd1YWdlPSJqYXZhc2NyaXB0IiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ianMvbmV0d29ya190cy5qcyI+PC9zY3JpcHQ+CiAgPHNjcmlwdCBsYW5ndWFnZT0iamF2YXNjcmlwdCIgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9ImpzL21lbnVfdHMuanMiPjwvc2NyaXB0PgogIDxzY3JpcHQgbGFuZ3VhZ2U9ImphdmFzY3JpcHQiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJqcy9zZXR0aW5nc190cy5qcyI+PC9zY3JpcHQ+CiAgPHNjcmlwdCBsYW5ndWFnZT0iamF2YXNjcmlwdCIgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9ImpzL2xvZ3NfdHMuanMiPjwvc2NyaXB0PgogIDxzY3JpcHQgbGFuZ3VhZ2U9ImphdmFzY3JpcHQiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJqcy9iYXNlX3RzLmpzIj48L3NjcmlwdD4KCjwvaGVhZD4KCjxib2R5IG9ubG9hZD0iamF2YXNjcmlwdDogUGFnZVJlYWR5KCk7Ij4KCiAgPGRpdiBpZD0ibG9hZGluZyIgY2xhc3M9Im5vbmUiPgogICAgPGRpdiBjbGFzcz0ibG9hZGVyIj48L2Rpdj4KICA8L2Rpdj4KCiAgPGRpdiBpZD0icG9wdXAiIGNsYXNzPSJub25lIj4KICAgIDxkaXYgaWQ9InBvcHVwLWN1c3RvbSI+PC9kaXY+CiAgPC9kaXY+CgogIDxkaXYgaWQ9ImxheW91dCI+CgogICAgPCEtLQogICAgICAgIDxkaXYgaWQ9Im5vdGlmaWNhdGlvbiI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJlbGVtZW50Ij4KICAgICAgICAgICAgPGg1PlhFUEc8L2g1PgogICAgICAgICAgICA8cHJlPjExLjA1LjIwMTkgLSAyMDoyMTwvcHJlPgogICAgICAgICAgICA8aHI+CiAgICAgICAgICAgIDxwPkhhbGxvIGRhcyBpc3QgZWluIFRlc3QuIFVuZCBub2NoIG1laHIgVGV4dC48L3A+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgLS0+CgogICAgPGRpdiBpZD0ibWVudS13cmFwcGVyIiBjbGFzcz0ibGF5b3V0LWxlZnQiPgogICAgICA8ZGl2IGlkPSJicmFuY2giPjwvZGl2PgogICAgICA8ZGl2IGlkPSJsb2dvIj48L2Rpdj4KICAgICAgPG5hdiBpZD0ibWFpbi1tZW51Ij48L25hdj4KICAgIDwvZGl2PgoKICAgIDxkaXYgY2xhc3M9ImxheW91dC1yaWdodCI+CgogICAgICA8dGFibGUgaWQ9ImNsaWVudEluZm8iIGNsYXNzPSIiPgoKICAgICAgICA8dHI+CiAgICAgICAgICA8dGQgY2xhc3M9InRkS2V5Ij54VGVWZTo8L3RkPgogICAgICAgICAgPHRkIGlkPSJ2ZXJzaW9uIiBjbGFzcz0idGRWYWwiPiZuYnNwOzwvdGQ+CiAgICAgICAgICA8dGQgY2xhc3M9InRkS2V5Ij5PUzo8L3RkPgogICAgICAgICAgPHRkIGlkPSJvcyIgY2xhc3M9InRkVmFsIj4mbmJzcDs8L3RkPgogICAgICAgICAgPHRkIGNsYXNzPSJ0ZEtleSBwaG9uZSI+RFZSIElQOjwvdGQ+CiAgICAgICAgICA8dGQgaWQ9IkRWUiIgY2xhc3M9InRkVmFsTGluayBwaG9uZSI+Jm5ic3A7PC90ZD4KICAgICAgICA8L3RyPgoKICAgICAgICA8dHI+CiAgICAgICAgICA8dGQgY2xhc3M9InRkS2V5Ij5VVUlEOjwvdGQ+CiAgICAgICAgICA8dGQgaWQ9InV1aWQiIGNsYXNzPSJ0ZFZhbCI+Jm5ic3A7PC90ZD4KICAgICAgICAgIDx0ZCBjbGFzcz0idGRLZXkiPkFyY2g6PC90ZD4KICAgICAgICAgIDx0ZCBpZD0iYXJjaCIgY2xhc3M9InRkVmFsIj4mbmJzcDs8L3RkPgogICAgICAgICAgPHRkIGNsYXNzPSJ0ZEtleSBwaG9uZSI+TTNVIFVSTDo8L3RkPgogICAgICAgICAgPHRkIGlkPSJtM3UtdXJsIiBjbGFzcz0idGRWYWxMaW5rIHBob25lIj4mbmJzcDs8L3RkPgogICAgICAgIDwvdHI+CgogICAgICAgIDx0cj4KICAgICAgICAgIDx0ZCBjbGFzcz0idGRLZXkiPkF2YWlsYWJsZSBTdHJlYW1zOjwvdGQ+CiAgICAgICAgICA8dGQgaWQ9InN0cmVhbXMiIGNsYXNzPSJ0ZFZhbCI+Jm5ic3A7PC90ZD4KICAgICAgICAgIDx0ZCBjbGFzcz0idGRLZXkiPkVQRyBTb3VyY2U6PC90ZD4KICAgICAgICAgIDx0ZCBpZD0iZXBnU291cmNlIiBjbGFzcz0idGRWYWwiPiZuYnNwOzwvdGQ+CiAgICAgICAgICA8dGQgY2xhc3M9InRkS2V5IHBob25lIj5YRVBHIFVSTDo8L3RkPgogICAgICAgICAgPHRkIGlkPSJ4ZXBnLXVybCIgY2xhc3M9InRkVmFsTGluayBwaG9uZSI+Jm5ic3A7PC90ZD4KICAgICAgICA8L3RyPgoKICAgICAgICA8dHI+CiAgICAgICAgICA8dGQgY2xhc3M9InRkS2V5Ij5YRVBHIENoYW5uZWxzOjwvdGQ+CiAgICAgICAgICA8dGQgaWQ9InhlcGciIGNsYXNzPSJ0ZFZhbCI+Jm5ic3A7PC90ZD4KICAgICAgICAgIDx0ZCBjbGFzcz0idGRLZXkiPkVycm9yczo8L3RkPgogICAgICAgICAgPHRkIGlkPSJlcnJvcnMiIGNsYXNzPSJ0ZFZhbCI+Jm5ic3A7PC90ZD4KICAgICAgICAgIDx0ZCBjbGFzcz0idGRLZXkiPldhcm5pbmdzOjwvdGQ+CiAgICAgICAgICA8dGQgaWQ9Indhcm5pbmdzIiBjbGFzcz0idGRWYWwiPiZuYnNwOzwvdGQ+CiAgICAgICAgPC90cj4KCiAgICAgIDwvdGFibGU+CgogICAgICA8ZGl2IGlkPSJteVN0cmVhbXNCb3giIGNsYXNzPSJub3RWaXNpYmxlIj4KCiAgICAgICAgPGRpdiBpZD0iYWxsU3RyZWFtcyI+CiAgICAgICAgICA8dGFibGUgaWQ9ImFjdGl2ZVN0cmVhbXMiPjwvdGFibGU+CiAgICAgICAgICA8dGFibGUgaWQ9ImluYWN0aXZlU3RyZWFtcyI+PC90YWJsZT4KICAgICAgICA8L2Rpdj4KCiAgICAgIDwvZGl2PgoKICAgICAgPGRpdiBpZD0iY29udGVudCIgY2xhc3M9IiI+PC9kaXY+CgogICAgPC9kaXY+CgogIDwvZGl2PgoKPC9ib2R5PgoKPC9odG1sPg==" webUI["html/js/authentication_ts.js"] = "ZnVuY3Rpb24gbG9naW4oKSB7CiAgICB2YXIgZXJyID0gZmFsc2U7CiAgICB2YXIgZGF0YSA9IG5ldyBPYmplY3QoKTsKICAgIHZhciBkaXYgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29udGVudCIpOwogICAgdmFyIGZvcm0gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYXV0aGVudGljYXRpb24iKTsKICAgIHZhciBpbnB1dHMgPSBkaXYuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIklOUFVUIik7CiAgICBmb3IgKHZhciBpID0gaW5wdXRzLmxlbmd0aCAtIDE7IGkgPj0gMDsgaS0tKSB7CiAgICAgICAgdmFyIGtleSA9IGlucHV0c1tpXS5uYW1lOwogICAgICAgIHZhciB2YWx1ZSA9IGlucHV0c1tpXS52YWx1ZTsKICAgICAgICBpZiAodmFsdWUubGVuZ3RoID09IDApIHsKICAgICAgICAgICAgaW5wdXRzW2ldLnN0eWxlLmJvcmRlckNvbG9yID0gInJlZCI7CiAgICAgICAgICAgIGVyciA9IHRydWU7CiAgICAgICAgfQogICAgICAgIGRhdGFba2V5XSA9IHZhbHVlOwogICAgfQogICAgaWYgKGVyciA9PSB0cnVlKSB7CiAgICAgICAgZGF0YSA9IG5ldyBPYmplY3QoKTsKICAgICAgICByZXR1cm47CiAgICB9CiAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eSgiY29uZmlybSIpKSB7CiAgICAgICAgaWYgKGRhdGFbImNvbmZpcm0iXSAhPSBkYXRhWyJwYXNzd29yZCJdKSB7CiAgICAgICAgICAgIGFsZXJ0KCJzZGFmc2QiKTsKICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Bhc3N3b3JkJykuc3R5bGUuYm9yZGVyQ29sb3IgPSAicmVkIjsKICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NvbmZpcm0nKS5zdHlsZS5ib3JkZXJDb2xvciA9ICJyZWQiOwogICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZXJyIikuaW5uZXJIVE1MID0gInt7LmFjY291bnQuZmFpbGVkfX0iOwogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQogICAgfQogICAgZm9ybS5zdWJtaXQoKTsKfQo=" webUI["html/js/base_ts.js"] = "dmFyIFNFUlZFUiA9IG5ldyBPYmplY3QoKTsKdmFyIEJVTEtfRURJVCA9IGZhbHNlOwp2YXIgQ09MVU1OX1RPX1NPUlQ7CnZhciBTRUFSQ0hfTUFQUElORyA9IG5ldyBPYmplY3QoKTsKdmFyIFVORE8gPSBuZXcgT2JqZWN0KCk7CnZhciBTRVJWRVJfQ09OTkVDVElPTiA9IGZhbHNlOwp2YXIgV1NfQVZBSUxBQkxFID0gZmFsc2U7Ci8vIE1lbnUKdmFyIG1lbnVJdGVtcyA9IG5ldyBBcnJheSgpOwptZW51SXRlbXMucHVzaChuZXcgTWFpbk1lbnVJdGVtKCJwbGF5bGlzdCIsICJ7ey5tYWluTWVudS5pdGVtLnBsYXlsaXN0fX0iLCAibTN1LnBuZyIsICJ7ey5tYWluTWVudS5oZWFkbGluZS5wbGF5bGlzdH19IikpOwptZW51SXRlbXMucHVzaChuZXcgTWFpbk1lbnVJdGVtKCJmaWx0ZXIiLCAie3subWFpbk1lbnUuaXRlbS5maWx0ZXJ9fSIsICJmaWx0ZXIucG5nIiwgInt7Lm1haW5NZW51LmhlYWRsaW5lLmZpbHRlcn19IikpOwptZW51SXRlbXMucHVzaChuZXcgTWFpbk1lbnVJdGVtKCJ4bWx0diIsICJ7ey5tYWluTWVudS5pdGVtLnhtbHR2fX0iLCAieG1sdHYucG5nIiwgInt7Lm1haW5NZW51LmhlYWRsaW5lLnhtbHR2fX0iKSk7Cm1lbnVJdGVtcy5wdXNoKG5ldyBNYWluTWVudUl0ZW0oIm1hcHBpbmciLCAie3subWFpbk1lbnUuaXRlbS5tYXBwaW5nfX0iLCAibWFwcGluZy5wbmciLCAie3subWFpbk1lbnUuaGVhZGxpbmUubWFwcGluZ319IikpOwptZW51SXRlbXMucHVzaChuZXcgTWFpbk1lbnVJdGVtKCJ1c2VycyIsICJ7ey5tYWluTWVudS5pdGVtLnVzZXJzfX0iLCAidXNlcnMucG5nIiwgInt7Lm1haW5NZW51LmhlYWRsaW5lLnVzZXJzfX0iKSk7Cm1lbnVJdGVtcy5wdXNoKG5ldyBNYWluTWVudUl0ZW0oInNldHRpbmdzIiwgInt7Lm1haW5NZW51Lml0ZW0uc2V0dGluZ3N9fSIsICJzZXR0aW5ncy5wbmciLCAie3subWFpbk1lbnUuaGVhZGxpbmUuc2V0dGluZ3N9fSIpKTsKbWVudUl0ZW1zLnB1c2gobmV3IE1haW5NZW51SXRlbSgibG9nIiwgInt7Lm1haW5NZW51Lml0ZW0ubG9nfX0iLCAibG9nLnBuZyIsICJ7ey5tYWluTWVudS5oZWFkbGluZS5sb2d9fSIpKTsKbWVudUl0ZW1zLnB1c2gobmV3IE1haW5NZW51SXRlbSgibG9nb3V0IiwgInt7Lm1haW5NZW51Lml0ZW0ubG9nb3V0fX0iLCAibG9nb3V0LnBuZyIsICJ7ey5tYWluTWVudS5oZWFkbGluZS5sb2dvdXR9fSIpKTsKLy8gU2V0dGluZ3MgY2F0ZWdvcmllcwp2YXIgc2V0dGluZ3NDYXRlZ29yeSA9IG5ldyBBcnJheSgpOwpzZXR0aW5nc0NhdGVnb3J5LnB1c2gobmV3IFNldHRpbmdzQ2F0ZWdvcnlJdGVtKCJ7ey5zZXR0aW5ncy5jYXRlZ29yeS5nZW5lcmFsfX0iLCAidGxzTW9kZSx4dGV2ZUF1dG9VcGRhdGUsaG9zdElQLGhvc3ROYW1lLHR1bmVyLGVwZ1NvdXJjZSxkaXNhbGxvd1VSTER1cGxpY2F0ZXMsY2xlYXJYTUxUVkNhY2hlLGFwaSIpKTsKc2V0dGluZ3NDYXRlZ29yeS5wdXNoKG5ldyBTZXR0aW5nc0NhdGVnb3J5SXRlbSgie3suc2V0dGluZ3MuY2F0ZWdvcnkubWFwcGluZ319IiwgImRlZmF1bHRNaXNzaW5nRVBHLGVuYWJsZU1hcHBlZENoYW5uZWxzIikpOwpzZXR0aW5nc0NhdGVnb3J5LnB1c2gobmV3IFNldHRpbmdzQ2F0ZWdvcnlJdGVtKCJ7ey5zZXR0aW5ncy5jYXRlZ29yeS5maWxlc319IiwgInVwZGF0ZSxmaWxlcy51cGRhdGUsdGVtcC5wYXRoLGNhY2hlLmltYWdlcyx4ZXBnLnJlcGxhY2UubWlzc2luZy5pbWFnZXMiKSk7CnNldHRpbmdzQ2F0ZWdvcnkucHVzaChuZXcgU2V0dGluZ3NDYXRlZ29yeUl0ZW0oInt7LnNldHRpbmdzLmNhdGVnb3J5LnN0cmVhbWluZ319IiwgImJ1ZmZlcix1ZHB4eSxidWZmZXIuc2l6ZS5rYixzdG9yZUJ1ZmZlckluUkFNLGJ1ZmZlci50aW1lb3V0LHVzZXIuYWdlbnQsZmZtcGVnLnBhdGgsZmZtcGVnLm9wdGlvbnMsdmxjLnBhdGgsdmxjLm9wdGlvbnMiKSk7CnNldHRpbmdzQ2F0ZWdvcnkucHVzaChuZXcgU2V0dGluZ3NDYXRlZ29yeUl0ZW0oInt7LnNldHRpbmdzLmNhdGVnb3J5LmJhY2t1cH19IiwgImJhY2t1cC5wYXRoLGJhY2t1cC5rZWVwIikpOwpzZXR0aW5nc0NhdGVnb3J5LnB1c2gobmV3IFNldHRpbmdzQ2F0ZWdvcnlJdGVtKCJ7ey5zZXR0aW5ncy5jYXRlZ29yeS5hdXRoZW50aWNhdGlvbn19IiwgImF1dGhlbnRpY2F0aW9uLndlYixhdXRoZW50aWNhdGlvbi5wbXMsYXV0aGVudGljYXRpb24ubTN1LGF1dGhlbnRpY2F0aW9uLnhtbCxhdXRoZW50aWNhdGlvbi5hcGkiKSk7CmZ1bmN0aW9uIHNob3dQb3BVcEVsZW1lbnQoZWxtKSB7CiAgICB2YXIgYWxsRWxlbWVudHMgPSBuZXcgQXJyYXkoInBvcHVwLWN1c3RvbSIpOwogICAgZm9yICh2YXIgaSA9IDA7IGkgPCBhbGxFbGVtZW50cy5sZW5ndGg7IGkrKykgewogICAgICAgIHNob3dFbGVtZW50KGFsbEVsZW1lbnRzW2ldLCBmYWxzZSk7CiAgICB9CiAgICBzaG93RWxlbWVudChlbG0sIHRydWUpOwogICAgc2V0VGltZW91dChmdW5jdGlvbiAoKSB7CiAgICAgICAgc2hvd0VsZW1lbnQoInBvcHVwIiwgdHJ1ZSk7CiAgICB9LCAxMCk7CiAgICByZXR1cm47Cn0KZnVuY3Rpb24gc2hvd0VsZW1lbnQoZWxtSUQsIHR5cGUpIHsKICAgIHZhciBjc3NDbGFzczsKICAgIHN3aXRjaCAodHlwZSkgewogICAgICAgIGNhc2UgdHJ1ZToKICAgICAgICAgICAgY3NzQ2xhc3MgPSAiYmxvY2siOwogICAgICAgICAgICBicmVhazsKICAgICAgICBjYXNlIGZhbHNlOgogICAgICAgICAgICBjc3NDbGFzcyA9ICJub25lIjsKICAgICAgICAgICAgYnJlYWs7CiAgICB9CiAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChlbG1JRCkuY2xhc3NOYW1lID0gY3NzQ2xhc3M7Cn0KZnVuY3Rpb24gY2hhbmdlQnV0dG9uQWN0aW9uKGVsZW1lbnQsIGJ1dHRvbklELCBhdHRyaWJ1dGUpIHsKICAgIHZhciB2YWx1ZSA9IGVsZW1lbnQub3B0aW9uc1tlbGVtZW50LnNlbGVjdGVkSW5kZXhdLnZhbHVlOwogICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoYnV0dG9uSUQpLnNldEF0dHJpYnV0ZShhdHRyaWJ1dGUsIHZhbHVlKTsKfQpmdW5jdGlvbiBnZXRMb2NhbERhdGEoZGF0YVR5cGUsIGlkKSB7CiAgICBsZXQgZGF0YSA9IHt9OwogICAgc3dpdGNoIChkYXRhVHlwZSkgewogICAgICAgIGNhc2UgIm0zdSI6CiAgICAgICAgICAgIGRhdGEgPSBTRVJWRVJbInNldHRpbmdzIl1bImZpbGVzIl1bZGF0YVR5cGVdW2lkXTsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgY2FzZSAiaGRociI6CiAgICAgICAgICAgIGRhdGEgPSBTRVJWRVJbInNldHRpbmdzIl1bImZpbGVzIl1bZGF0YVR5cGVdW2lkXTsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgY2FzZSAiZmlsdGVyIjoKICAgICAgICBjYXNlICJjdXN0b20tZmlsdGVyIjoKICAgICAgICBjYXNlICJncm91cC10aXRsZSI6CiAgICAgICAgICAgIGlmIChpZCA9PSAtMSkgewogICAgICAgICAgICAgICAgZGF0YVsiYWN0aXZlIl0gPSB0cnVlOwogICAgICAgICAgICAgICAgZGF0YVsiY2FzZVNlbnNpdGl2ZSJdID0gZmFsc2U7CiAgICAgICAgICAgICAgICBkYXRhWyJkZXNjcmlwdGlvbiJdID0gIiI7CiAgICAgICAgICAgICAgICBkYXRhWyJleGNsdWRlIl0gPSAiIjsKICAgICAgICAgICAgICAgIGRhdGFbImZpbHRlciJdID0gIiI7CiAgICAgICAgICAgICAgICBkYXRhWyJpbmNsdWRlIl0gPSAiIjsKICAgICAgICAgICAgICAgIGRhdGFbIm5hbWUiXSA9ICIiOwogICAgICAgICAgICAgICAgZGF0YVsidHlwZSJdID0gImdyb3VwLXRpdGxlIjsKICAgICAgICAgICAgICAgIGRhdGFbInByZXNlcnZlTWFwcGluZyJdID0gdHJ1ZTsKICAgICAgICAgICAgICAgIGRhdGFbInN0YXJ0aW5nQ2hhbm5lbCJdID0gU0VSVkVSWyJzZXR0aW5ncyJdWyJtYXBwaW5nLmZpcnN0LmNoYW5uZWwiXTsKICAgICAgICAgICAgICAgIFNFUlZFUlsic2V0dGluZ3MiXVsiZmlsdGVyIl1baWRdID0gZGF0YTsKICAgICAgICAgICAgfQogICAgICAgICAgICBkYXRhID0gU0VSVkVSWyJzZXR0aW5ncyJdWyJmaWx0ZXIiXVtpZF07CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgIGNhc2UgInhtbHR2IjoKICAgICAgICAgICAgZGF0YSA9IFNFUlZFUlsic2V0dGluZ3MiXVsiZmlsZXMiXVtkYXRhVHlwZV1baWRdOwogICAgICAgICAgICBicmVhazsKICAgICAgICBjYXNlICJ1c2VycyI6CiAgICAgICAgICAgIGRhdGEgPSBTRVJWRVJbInVzZXJzIl1baWRdWyJkYXRhIl07CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgIGNhc2UgIm1hcHBpbmciOgogICAgICAgICAgICBkYXRhID0gU0VSVkVSWyJ4ZXBnIl1bImVwZ01hcHBpbmciXVtpZF07CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgIGNhc2UgIm0zdUdyb3VwcyI6CiAgICAgICAgICAgIGRhdGEgPSBTRVJWRVJbImRhdGEiXVsicGxheWxpc3QiXVsibTN1Il1bImdyb3VwcyJdOwogICAgICAgICAgICBicmVhazsKICAgIH0KICAgIHJldHVybiBkYXRhOwp9CmZ1bmN0aW9uIGdldE93bk9ialByb3BzKG9iamVjdCkgewogICAgcmV0dXJuIG9iamVjdCA/IE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKG9iamVjdCkgOiBbXTsKfQpmdW5jdGlvbiBnZXRBbGxTZWxlY3RlZENoYW5uZWxzKCkgewogICAgdmFyIGNoYW5uZWxzID0gbmV3IEFycmF5KCk7CiAgICBpZiAoQlVMS19FRElUID09IGZhbHNlKSB7CiAgICAgICAgcmV0dXJuIGNoYW5uZWxzOwogICAgfQogICAgdmFyIHRycyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb250ZW50X3RhYmxlIikuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlRSIik7CiAgICBmb3IgKHZhciBpID0gMTsgaSA8IHRycy5sZW5ndGg7IGkrKykgewogICAgICAgIGlmICh0cnNbaV0uc3R5bGUuZGlzcGxheSAhPSAibm9uZSIpIHsKICAgICAgICAgICAgaWYgKHRyc1tpXS5maXJzdENoaWxkLmZpcnN0Q2hpbGQuY2hlY2tlZCA9PSB0cnVlKSB7CiAgICAgICAgICAgICAgICBjaGFubmVscy5wdXNoKHRyc1tpXS5pZCk7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CiAgICByZXR1cm4gY2hhbm5lbHM7Cn0KZnVuY3Rpb24gc2VsZWN0QWxsQ2hhbm5lbHMoKSB7CiAgICB2YXIgYnVsayA9IGZhbHNlOwogICAgdmFyIHRycyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb250ZW50X3RhYmxlIikuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlRSIik7CiAgICBpZiAodHJzWzBdLmZpcnN0Q2hpbGQuZmlyc3RDaGlsZC5jaGVja2VkID09IHRydWUpIHsKICAgICAgICBidWxrID0gdHJ1ZTsKICAgIH0KICAgIGZvciAodmFyIGkgPSAxOyBpIDwgdHJzLmxlbmd0aDsgaSsrKSB7CiAgICAgICAgaWYgKHRyc1tpXS5zdHlsZS5kaXNwbGF5ICE9ICJub25lIikgewogICAgICAgICAgICBzd2l0Y2ggKGJ1bGspIHsKICAgICAgICAgICAgICAgIGNhc2UgdHJ1ZToKICAgICAgICAgICAgICAgICAgICB0cnNbaV0uZmlyc3RDaGlsZC5maXJzdENoaWxkLmNoZWNrZWQgPSB0cnVlOwogICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgY2FzZSBmYWxzZToKICAgICAgICAgICAgICAgICAgICB0cnNbaV0uZmlyc3RDaGlsZC5maXJzdENoaWxkLmNoZWNrZWQgPSBmYWxzZTsKICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KICAgIHJldHVybjsKfQpmdW5jdGlvbiBidWxrRWRpdCgpIHsKICAgIEJVTEtfRURJVCA9ICFCVUxLX0VESVQ7CiAgICB2YXIgY2xhc3NOYW1lOwogICAgdmFyIHJvd3MgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCJidWxrIik7CiAgICBzd2l0Y2ggKEJVTEtfRURJVCkgewogICAgICAgIGNhc2UgdHJ1ZToKICAgICAgICAgICAgY2xhc3NOYW1lID0gImJ1bGsgc2hvd0J1bGsiOwogICAgICAgICAgICBicmVhazsKICAgICAgICBjYXNlIGZhbHNlOgogICAgICAgICAgICBjbGFzc05hbWUgPSAiYnVsayBoaWRlQnVsayI7CiAgICAgICAgICAgIGJyZWFrOwogICAgfQogICAgZm9yICh2YXIgaSA9IDA7IGkgPCByb3dzLmxlbmd0aDsgaSsrKSB7CiAgICAgICAgcm93c1tpXS5jbGFzc05hbWUgPSBjbGFzc05hbWU7CiAgICAgICAgcm93c1tpXS5jaGVja2VkID0gZmFsc2U7CiAgICB9CiAgICByZXR1cm47Cn0KZnVuY3Rpb24gc29ydFRhYmxlKGNvbHVtbikgewogICAgaWYgKGNvbHVtbiA9PSBDT0xVTU5fVE9fU09SVCkgewogICAgICAgIHJldHVybjsKICAgIH0KICAgIGNvbnN0IHRhYmxlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnRlbnRfdGFibGUiKTsKICAgIGNvbnN0IHRhYmxlSGVhZCA9IHRhYmxlLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJUUiIpWzBdOwogICAgY29uc3QgdGFibGVJdGVtcyA9IHRhYmxlSGVhZC5nZXRFbGVtZW50c0J5VGFnTmFtZSgiVEQiKTsKICAgIGNvbnN0IHNvcnRBcnIgPSBbXTsKICAgIGxldCB4VmFsdWU7CiAgICBpZiAoY29sdW1uID49IDAgJiYgQ09MVU1OX1RPX1NPUlQgPj0gMCkgewogICAgICAgIHRhYmxlSXRlbXNbQ09MVU1OX1RPX1NPUlRdLmNsYXNzTmFtZSA9ICJwb2ludGVyIjsKICAgICAgICB0YWJsZUl0ZW1zW2NvbHVtbl0uY2xhc3NOYW1lID0gInNvcnRUaGlzIjsKICAgIH0KICAgIENPTFVNTl9UT19TT1JUID0gY29sdW1uOwogICAgY29uc3Qgcm93cyA9IHRhYmxlLnJvd3M7CiAgICBpZiAocm93c1sxXSAhPSB1bmRlZmluZWQpIHsKICAgICAgICBjb25zdCB0YWJsZUhlYWRlciA9IHJvd3NbMF07CiAgICAgICAgbGV0IHggPSByb3dzWzFdLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJURCIpW2NvbHVtbl07CiAgICAgICAgZm9yIChsZXQgaSA9IDE7IGkgPCByb3dzLmxlbmd0aDsgaSsrKSB7CiAgICAgICAgICAgIHggPSByb3dzW2ldLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJURCIpW2NvbHVtbl07CiAgICAgICAgICAgIHN3aXRjaCAoeC5jaGlsZE5vZGVzWzBdLnRhZ05hbWUudG9Mb3dlckNhc2UoKSkgewogICAgICAgICAgICAgICAgY2FzZSAiaW5wdXQiOgogICAgICAgICAgICAgICAgICAgIHhWYWx1ZSA9IHguZ2V0RWxlbWVudHNCeVRhZ05hbWUoIklOUFVUIilbMF0udmFsdWUudG9Mb3dlckNhc2UoKTsKICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgIGNhc2UgInAiOgogICAgICAgICAgICAgICAgICAgIHhWYWx1ZSA9IHguZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlAiKVswXS5pbm5lclRleHQudG9Mb3dlckNhc2UoKTsKICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgc29ydEFyci5wdXNoKHsga2V5OiB4VmFsdWUgPyB4VmFsdWUgOiBpLCByb3c6IHJvd3NbaV0gfSk7CiAgICAgICAgfQogICAgICAgIHdoaWxlICh0YWJsZS5maXJzdENoaWxkKSB7CiAgICAgICAgICAgIHRhYmxlLnJlbW92ZUNoaWxkKHRhYmxlLmZpcnN0Q2hpbGQpOwogICAgICAgIH0KICAgICAgICBzb3J0QXJyLnNvcnQoKHNlMSwgc2UyKSA9PiB7CiAgICAgICAgICAgIGNvbnN0IHNlMUtleU51bSA9IHBhcnNlRmxvYXQoU3RyaW5nKHNlMS5rZXkpKTsKICAgICAgICAgICAgY29uc3Qgc2UyS2V5TnVtID0gcGFyc2VGbG9hdChTdHJpbmcoc2UyLmtleSkpOwogICAgICAgICAgICBpZiAoIWlzTmFOKHNlMUtleU51bSkgJiYgIWlzTmFOKHNlMktleU51bSkpIHsKICAgICAgICAgICAgICAgIHJldHVybiBzZTFLZXlOdW0gLSBzZTJLZXlOdW07CiAgICAgICAgICAgIH0KICAgICAgICAgICAgaWYgKHNlMS5rZXkgPCBzZTIua2V5KSB7CiAgICAgICAgICAgICAgICByZXR1cm4gLTE7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgaWYgKHNlMS5rZXkgPiBzZTIua2V5KSB7CiAgICAgICAgICAgICAgICByZXR1cm4gMTsKICAgICAgICAgICAgfQogICAgICAgICAgICByZXR1cm4gMDsKICAgICAgICB9KTsKICAgICAgICB0YWJsZS5hcHBlbmRDaGlsZCh0YWJsZUhlYWRlcik7CiAgICAgICAgc29ydEFyci5mb3JFYWNoKChzZSkgPT4gewogICAgICAgICAgICB0YWJsZS5hcHBlbmRDaGlsZChzZS5yb3cpOwogICAgICAgIH0pOwogICAgfQogICAgcmV0dXJuOwp9CmZ1bmN0aW9uIGNyZWF0ZVNlYXJjaE9iaigpIHsKICAgIFNFQVJDSF9NQVBQSU5HID0gbmV3IE9iamVjdCgpOwogICAgdmFyIGRhdGEgPSBTRVJWRVJbInhlcGciXVsiZXBnTWFwcGluZyJdOwogICAgdmFyIGNoYW5uZWxzID0gZ2V0T3duT2JqUHJvcHMoZGF0YSk7CiAgICB2YXIgY2hhbm5lbEtleXMgPSBbIngtYWN0aXZlIiwgIngtY2hhbm5lbElEIiwgIngtbmFtZSIsICJ1cGRhdGVDaGFubmVsTmFtZVJlZ2V4IiwgIl9maWxlLm0zdS5uYW1lIiwgIngtZ3JvdXAtdGl0bGUiLCAieC14bWx0di1maWxlIl07CiAgICBjaGFubmVscy5mb3JFYWNoKGlkID0+IHsKICAgICAgICBjaGFubmVsS2V5cy5mb3JFYWNoKGtleSA9PiB7CiAgICAgICAgICAgIGlmIChrZXkgPT0gIngtYWN0aXZlIikgewogICAgICAgICAgICAgICAgc3dpdGNoIChkYXRhW2lkXVtrZXldKSB7CiAgICAgICAgICAgICAgICAgICAgY2FzZSB0cnVlOgogICAgICAgICAgICAgICAgICAgICAgICBTRUFSQ0hfTUFQUElOR1tpZF0gPSAib25saW5lICI7CiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICAgIGNhc2UgZmFsc2U6CiAgICAgICAgICAgICAgICAgICAgICAgIFNFQVJDSF9NQVBQSU5HW2lkXSA9ICJvZmZsaW5lICI7CiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgaWYgKGtleSA9PSAieC14bWx0di1maWxlIikgewogICAgICAgICAgICAgICAgICAgIHZhciB4bWx0dkZpbGUgPSBnZXRWYWx1ZUZyb21Qcm92aWRlckZpbGUoZGF0YVtpZF1ba2V5XSwgInhtbHR2IiwgIm5hbWUiKTsKICAgICAgICAgICAgICAgICAgICBpZiAoeG1sdHZGaWxlICE9IHVuZGVmaW5lZCkgewogICAgICAgICAgICAgICAgICAgICAgICBTRUFSQ0hfTUFQUElOR1tpZF0gPSBTRUFSQ0hfTUFQUElOR1tpZF0gKyB4bWx0dkZpbGUgKyAiICI7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgU0VBUkNIX01BUFBJTkdbaWRdID0gU0VBUkNIX01BUFBJTkdbaWRdICsgZGF0YVtpZF1ba2V5XSArICIgIjsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIH0pOwogICAgfSk7CiAgICByZXR1cm47Cn0KZnVuY3Rpb24gc2VhcmNoSW5NYXBwaW5nKCkgewogICAgdmFyIHNlYXJjaFZhbHVlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNlYXJjaE1hcHBpbmciKS52YWx1ZTsKICAgIHZhciB0cnMgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29udGVudF90YWJsZSIpLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJUUiIpOwogICAgZm9yICh2YXIgaSA9IDE7IGkgPCB0cnMubGVuZ3RoOyArK2kpIHsKICAgICAgICB2YXIgaWQgPSB0cnNbaV0uZ2V0QXR0cmlidXRlKCJpZCIpOwogICAgICAgIHZhciBlbGVtZW50ID0gU0VBUkNIX01BUFBJTkdbaWRdOwogICAgICAgIHN3aXRjaCAoZWxlbWVudC50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKHNlYXJjaFZhbHVlLnRvTG93ZXJDYXNlKCkpKSB7CiAgICAgICAgICAgIGNhc2UgdHJ1ZToKICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5zdHlsZS5kaXNwbGF5ID0gIiI7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSBmYWxzZToKICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5zdHlsZS5kaXNwbGF5ID0gIm5vbmUiOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgfQogICAgfQogICAgcmV0dXJuOwp9CmZ1bmN0aW9uIGNhbGN1bGF0ZVdyYXBwZXJIZWlnaHQoKSB7CiAgICBpZiAoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImJveC13cmFwcGVyIikpIHsKICAgICAgICB2YXIgZWxtID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImJveC13cmFwcGVyIik7CiAgICAgICAgdmFyIGRpdnMgPSBuZXcgQXJyYXkoIm15U3RyZWFtc0JveCIsICJjbGllbnRJbmZvIiwgImNvbnRlbnQiKTsKICAgICAgICB2YXIgZWxlbWVudHNIZWlnaHQgPSAwIC0gZWxtLm9mZnNldEhlaWdodDsKICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGRpdnMubGVuZ3RoOyBpKyspIHsKICAgICAgICAgICAgZWxlbWVudHNIZWlnaHQgPSBlbGVtZW50c0hlaWdodCArIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGRpdnNbaV0pLm9mZnNldEhlaWdodDsKICAgICAgICB9CiAgICAgICAgZWxtLnN0eWxlLmhlaWdodCA9IHdpbmRvdy5pbm5lckhlaWdodCAtIGVsZW1lbnRzSGVpZ2h0ICsgInB4IjsKICAgIH0KICAgIHJldHVybjsKfQpmdW5jdGlvbiBjaGFuZ2VDaGFubmVsTnVtYmVyKGVsZW1lbnQpIHsKICAgIHZhciBkYklEID0gZWxlbWVudC5wYXJlbnROb2RlLnBhcmVudE5vZGUuaWQ7CiAgICB2YXIgbmV3TnVtYmVyID0gcGFyc2VGbG9hdChlbGVtZW50LnZhbHVlKTsKICAgIHZhciBjaGFubmVsTnVtYmVycyA9IFtdOwogICAgdmFyIGRhdGEgPSBTRVJWRVJbInhlcGciXVsiZXBnTWFwcGluZyJdOwogICAgdmFyIGNoYW5uZWxzID0gZ2V0T3duT2JqUHJvcHMoZGF0YSk7CiAgICBpZiAoaXNOYU4obmV3TnVtYmVyKSkgewogICAgICAgIGFsZXJ0KCJ7ey5hbGVydC5pbnZhbGlkQ2hhbm5lbE51bWJlcn19Iik7CiAgICAgICAgcmV0dXJuOwogICAgfQogICAgY2hhbm5lbHMuZm9yRWFjaChpZCA9PiB7CiAgICAgICAgdmFyIGNoYW5uZWxOdW1iZXIgPSBwYXJzZUZsb2F0KGRhdGFbaWRdWyJ4LWNoYW5uZWxJRCJdKTsKICAgICAgICBjaGFubmVsTnVtYmVycy5wdXNoKGNoYW5uZWxOdW1iZXIpOwogICAgfSk7CiAgICBmb3IgKHZhciBpID0gMDsgaSA8IGNoYW5uZWxOdW1iZXJzLmxlbmd0aDsgaSsrKSB7CiAgICAgICAgaWYgKGNoYW5uZWxOdW1iZXJzLmluZGV4T2YobmV3TnVtYmVyKSA9PSAtMSkgewogICAgICAgICAgICBicmVhazsKICAgICAgICB9CiAgICAgICAgaWYgKE1hdGguZmxvb3IobmV3TnVtYmVyKSA9PSBuZXdOdW1iZXIpIHsKICAgICAgICAgICAgbmV3TnVtYmVyID0gbmV3TnVtYmVyICsgMTsKICAgICAgICB9CiAgICAgICAgZWxzZSB7CiAgICAgICAgICAgIG5ld051bWJlciA9IG5ld051bWJlciArIDAuMTsKICAgICAgICAgICAgbmV3TnVtYmVyLnRvRml4ZWQoMSk7CiAgICAgICAgICAgIG5ld051bWJlciA9IE1hdGgucm91bmQobmV3TnVtYmVyICogMTApIC8gMTA7CiAgICAgICAgfQogICAgfQogICAgZGF0YVtkYklEXVsieC1jaGFubmVsSUQiXSA9IG5ld051bWJlci50b1N0cmluZygpOwogICAgZWxlbWVudC52YWx1ZSA9IG5ld051bWJlcjsKICAgIGlmIChDT0xVTU5fVE9fU09SVCA9PSAxKSB7CiAgICAgICAgQ09MVU1OX1RPX1NPUlQgPSAtMTsKICAgICAgICBzb3J0VGFibGUoMSk7CiAgICB9CiAgICByZXR1cm47Cn0KZnVuY3Rpb24gYmFja3VwKCkgewogICAgdmFyIGRhdGEgPSBuZXcgT2JqZWN0KCk7CiAgICB2YXIgY21kID0gInh0ZXZlQmFja3VwIjsKICAgIHZhciBzZXJ2ZXIgPSBuZXcgU2VydmVyKGNtZCk7CiAgICBzZXJ2ZXIucmVxdWVzdChkYXRhKTsKICAgIHJldHVybjsKfQpmdW5jdGlvbiB0b2dnbGVDaGFubmVsU3RhdHVzKGlkKSB7CiAgICB2YXIgZWxlbWVudDsKICAgIHZhciBzdGF0dXM7CiAgICBpZiAoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImFjdGl2ZSIpKSB7CiAgICAgICAgdmFyIGNoZWNrYm94ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImFjdGl2ZSIpOwogICAgICAgIHN0YXR1cyA9IChjaGVja2JveCkuY2hlY2tlZDsKICAgIH0KICAgIHZhciBpZHMgPSBnZXRBbGxTZWxlY3RlZENoYW5uZWxzKCk7CiAgICBpZiAoaWRzLmxlbmd0aCA9PSAwKSB7CiAgICAgICAgaWRzLnB1c2goaWQpOwogICAgfQogICAgaWRzLmZvckVhY2goaWQgPT4gewogICAgICAgIHZhciBjaGFubmVsID0gU0VSVkVSWyJ4ZXBnIl1bImVwZ01hcHBpbmciXVtpZF07CiAgICAgICAgY2hhbm5lbFsieC1hY3RpdmUiXSA9IHN0YXR1czsKICAgICAgICBzd2l0Y2ggKGNoYW5uZWxbIngtYWN0aXZlIl0pIHsKICAgICAgICAgICAgY2FzZSB0cnVlOgogICAgICAgICAgICAgICAgaWYgKGNoYW5uZWxbIngteG1sdHYtZmlsZSJdID09ICItIiB8fCBjaGFubmVsWyJ4LW1hcHBpbmciXSA9PSAiLSIpIHsKICAgICAgICAgICAgICAgICAgICBpZiAoQlVMS19FRElUID09IGZhbHNlKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGFsZXJ0KGNoYW5uZWxbIngtbmFtZSJdICsgIjogTWlzc2luZyBYTUxUViBmaWxlIC8gY2hhbm5lbCIpOwogICAgICAgICAgICAgICAgICAgICAgICBjaGVja2JveC5jaGVja2VkID0gZmFsc2U7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIGNoYW5uZWxbIngtYWN0aXZlIl0gPSBmYWxzZTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlIGZhbHNlOgogICAgICAgICAgICAgICAgLy8gY29kZS4uLgogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgfQogICAgICAgIGlmIChjaGFubmVsWyJ4LWFjdGl2ZSJdID09IGZhbHNlKSB7CiAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5jbGFzc05hbWUgPSAibm90QWN0aXZlRVBHIjsKICAgICAgICB9CiAgICAgICAgZWxzZSB7CiAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5jbGFzc05hbWUgPSAiYWN0aXZlRVBHIjsKICAgICAgICB9CiAgICB9KTsKfQpmdW5jdGlvbiB0b2dnbGVHcm91cFVwZGF0ZUNiKHhlcGdJZCwgdGFyZ2V0KSB7CiAgICB0YXJnZXQuY2xhc3NOYW1lID0gJ2NoYW5nZWQnOwogICAgY29uc3QgZ3JvdXBJbnB1dCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ2lucHV0W25hbWU9IngtZ3JvdXAtdGl0bGUiXScpOwogICAgY29uc3QgbWFwcGluZyA9IGdldExvY2FsRGF0YSgnbWFwcGluZycsIHhlcGdJZCk7CiAgICBpZiAodGFyZ2V0LmNoZWNrZWQpIHsKICAgICAgICBncm91cElucHV0LmRhdGFzZXQub2xkVmFsdWUgPSBncm91cElucHV0LnZhbHVlOwogICAgICAgIGdyb3VwSW5wdXQudmFsdWUgPSBtYXBwaW5nWydncm91cC10aXRsZSddOwogICAgICAgIGdyb3VwSW5wdXQuZGlzYWJsZWQgPSB0cnVlOwogICAgfQogICAgZWxzZSB7CiAgICAgICAgZ3JvdXBJbnB1dC52YWx1ZSA9IGdyb3VwSW5wdXQuZGF0YXNldC5vbGRWYWx1ZTsKICAgICAgICBncm91cElucHV0LmRpc2FibGVkID0gZmFsc2U7CiAgICB9CiAgICBncm91cElucHV0LmNsYXNzTmFtZSA9ICdjaGFuZ2VkJzsKfQpmdW5jdGlvbiByZXN0b3JlKCkgewogICAgaWYgKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd1cGxvYWQnKSkgewogICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd1cGxvYWQnKS5yZW1vdmUoKTsKICAgIH0KICAgIHZhciByZXN0b3JlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiSU5QVVQiKTsKICAgIHJlc3RvcmUuc2V0QXR0cmlidXRlKCJ0eXBlIiwgImZpbGUiKTsKICAgIHJlc3RvcmUuc2V0QXR0cmlidXRlKCJjbGFzcyIsICJub3RWaXNpYmxlIik7CiAgICByZXN0b3JlLnNldEF0dHJpYnV0ZSgibmFtZSIsICIiKTsKICAgIHJlc3RvcmUuaWQgPSAidXBsb2FkIjsKICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQocmVzdG9yZSk7CiAgICByZXN0b3JlLmNsaWNrKCk7CiAgICByZXN0b3JlLm9uY2hhbmdlID0gZnVuY3Rpb24gKCkgewogICAgICAgIHZhciBmaWxlbmFtZSA9IHJlc3RvcmUuZmlsZXNbMF0ubmFtZTsKICAgICAgICB2YXIgY2hlY2sgPSBjb25maXJtKCJGaWxlOiAiICsgZmlsZW5hbWUgKyAiXG57ey5jb25maXJtLnJlc3RvcmV9fSIpOwogICAgICAgIGlmIChjaGVjayA9PSB0cnVlKSB7CiAgICAgICAgICAgIHZhciByZWFkZXIgPSBuZXcgRmlsZVJlYWRlcigpOwogICAgICAgICAgICB2YXIgZmlsZSA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ2lucHV0W3R5cGU9ZmlsZV0nKS5maWxlc1swXTsKICAgICAgICAgICAgaWYgKGZpbGUpIHsKICAgICAgICAgICAgICAgIHJlYWRlci5yZWFkQXNEYXRhVVJMKGZpbGUpOwogICAgICAgICAgICAgICAgcmVhZGVyLm9ubG9hZCA9IGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgICAgICB2YXIgZGF0YSA9IG5ldyBPYmplY3QoKTsKICAgICAgICAgICAgICAgICAgICB2YXIgY21kID0gInh0ZXZlUmVzdG9yZSI7CiAgICAgICAgICAgICAgICAgICAgZGF0YVsiYmFzZTY0Il0gPSByZWFkZXIucmVzdWx0OwogICAgICAgICAgICAgICAgICAgIHZhciBzZXJ2ZXIgPSBuZXcgU2VydmVyKGNtZCk7CiAgICAgICAgICAgICAgICAgICAgc2VydmVyLnJlcXVlc3QoZGF0YSk7CiAgICAgICAgICAgICAgICB9OwogICAgICAgICAgICB9CiAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgYWxlcnQoIkZpbGUgY291bGQgbm90IGJlIGxvYWRlZCIpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIHJlc3RvcmUucmVtb3ZlKCk7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICB9OwogICAgcmV0dXJuOwp9CmZ1bmN0aW9uIHVwbG9hZExvZ28oKSB7CiAgICBpZiAoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3VwbG9hZCcpKSB7CiAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3VwbG9hZCcpLnJlbW92ZSgpOwogICAgfQogICAgdmFyIHVwbG9hZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIklOUFVUIik7CiAgICB1cGxvYWQuc2V0QXR0cmlidXRlKCJ0eXBlIiwgImZpbGUiKTsKICAgIHVwbG9hZC5zZXRBdHRyaWJ1dGUoImNsYXNzIiwgIm5vdFZpc2libGUiKTsKICAgIHVwbG9hZC5zZXRBdHRyaWJ1dGUoIm5hbWUiLCAiIik7CiAgICB1cGxvYWQuaWQgPSAidXBsb2FkIjsKICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQodXBsb2FkKTsKICAgIHVwbG9hZC5jbGljaygpOwogICAgdXBsb2FkLm9uYmx1ciA9IGZ1bmN0aW9uICgpIHsKICAgICAgICBhbGVydCgpOwogICAgfTsKICAgIHVwbG9hZC5vbmNoYW5nZSA9IGZ1bmN0aW9uICgpIHsKICAgICAgICB2YXIgZmlsZW5hbWUgPSB1cGxvYWQuZmlsZXNbMF0ubmFtZTsKICAgICAgICB2YXIgcmVhZGVyID0gbmV3IEZpbGVSZWFkZXIoKTsKICAgICAgICB2YXIgZmlsZSA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ2lucHV0W3R5cGU9ZmlsZV0nKS5maWxlc1swXTsKICAgICAgICBpZiAoZmlsZSkgewogICAgICAgICAgICByZWFkZXIucmVhZEFzRGF0YVVSTChmaWxlKTsKICAgICAgICAgICAgcmVhZGVyLm9ubG9hZCA9IGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgIHZhciBkYXRhID0gbmV3IE9iamVjdCgpOwogICAgICAgICAgICAgICAgdmFyIGNtZCA9ICJ1cGxvYWRMb2dvIjsKICAgICAgICAgICAgICAgIGRhdGFbImJhc2U2NCJdID0gcmVhZGVyLnJlc3VsdDsKICAgICAgICAgICAgICAgIGRhdGFbImZpbGVuYW1lIl0gPSBmaWxlLm5hbWU7CiAgICAgICAgICAgICAgICB2YXIgc2VydmVyID0gbmV3IFNlcnZlcihjbWQpOwogICAgICAgICAgICAgICAgc2VydmVyLnJlcXVlc3QoZGF0YSk7CiAgICAgICAgICAgICAgICB2YXIgdXBkYXRlTG9nbyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd1cGRhdGUtaWNvbicpOwogICAgICAgICAgICAgICAgdXBkYXRlTG9nby5jaGVja2VkID0gZmFsc2U7CiAgICAgICAgICAgICAgICB1cGRhdGVMb2dvLmNsYXNzTmFtZSA9ICJjaGFuZ2VkIjsKICAgICAgICAgICAgfTsKICAgICAgICB9CiAgICAgICAgZWxzZSB7CiAgICAgICAgICAgIGFsZXJ0KCJGaWxlIGNvdWxkIG5vdCBiZSBsb2FkZWQiKTsKICAgICAgICB9CiAgICAgICAgdXBsb2FkLnJlbW92ZSgpOwogICAgICAgIHJldHVybjsKICAgIH07Cn0KZnVuY3Rpb24gY2hlY2tVbmRvKGtleSkgewogICAgc3dpdGNoIChrZXkpIHsKICAgICAgICBjYXNlICJlcGdNYXBwaW5nIjoKICAgICAgICAgICAgaWYgKFVORE8uaGFzT3duUHJvcGVydHkoa2V5KSkgewogICAgICAgICAgICAgICAgU0VSVkVSWyJ4ZXBnIl1ba2V5XSA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkoVU5ET1trZXldKSk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICBVTkRPW2tleV0gPSBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KFNFUlZFUlsieGVwZyJdW2tleV0pKTsKICAgICAgICAgICAgfQogICAgICAgICAgICBicmVhazsKICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICBicmVhazsKICAgIH0KICAgIHJldHVybjsKfQpmdW5jdGlvbiB1cGRhdGVMb2coKSB7CiAgICB2YXIgc2VydmVyID0gbmV3IFNlcnZlcigidXBkYXRlTG9nIik7CiAgICBzZXJ2ZXIucmVxdWVzdChuZXcgT2JqZWN0KCkpOwp9Cg==" - webUI["html/js/classes_ts.js"] = "dmFyIF9fZXh0ZW5kcyA9ICh0aGlzICYmIHRoaXMuX19leHRlbmRzKSB8fCAoZnVuY3Rpb24gKCkgewogICAgdmFyIGV4dGVuZFN0YXRpY3MgPSBmdW5jdGlvbiAoZCwgYikgewogICAgICAgIGV4dGVuZFN0YXRpY3MgPSBPYmplY3Quc2V0UHJvdG90eXBlT2YgfHwKICAgICAgICAgICAgKHsgX19wcm90b19fOiBbXSB9IGluc3RhbmNlb2YgQXJyYXkgJiYgZnVuY3Rpb24gKGQsIGIpIHsgZC5fX3Byb3RvX18gPSBiOyB9KSB8fAogICAgICAgICAgICBmdW5jdGlvbiAoZCwgYikgeyBmb3IgKHZhciBwIGluIGIpIGlmIChiLmhhc093blByb3BlcnR5KHApKSBkW3BdID0gYltwXTsgfTsKICAgICAgICByZXR1cm4gZXh0ZW5kU3RhdGljcyhkLCBiKTsKICAgIH07CiAgICByZXR1cm4gZnVuY3Rpb24gKGQsIGIpIHsKICAgICAgICBleHRlbmRTdGF0aWNzKGQsIGIpOwogICAgICAgIGZ1bmN0aW9uIF9fKCkgeyB0aGlzLmNvbnN0cnVjdG9yID0gZDsgfQogICAgICAgIGQucHJvdG90eXBlID0gYiA9PT0gbnVsbCA/IE9iamVjdC5jcmVhdGUoYikgOiAoX18ucHJvdG90eXBlID0gYi5wcm90b3R5cGUsIG5ldyBfXygpKTsKICAgIH07Cn0pKCk7CnZhciBNYWluTWVudSA9IC8qKiBAY2xhc3MgKi8gKGZ1bmN0aW9uICgpIHsKICAgIGZ1bmN0aW9uIE1haW5NZW51KCkgewogICAgICAgIHRoaXMuRG9jdW1lbnRJRCA9ICJtYWluLW1lbnUiOwogICAgICAgIHRoaXMuSFRNTFRhZyA9ICJMSSI7CiAgICB9CiAgICBNYWluTWVudS5wcm90b3R5cGUuY3JlYXRlID0gZnVuY3Rpb24gKCkgewogICAgICAgIGNvbnNvbGUubG9nKHRoaXMuRG9jdW1lbnRJRCk7CiAgICB9OwogICAgcmV0dXJuIE1haW5NZW51Owp9KCkpOwp2YXIgTWFpbk1lbnVJdGVtID0gLyoqIEBjbGFzcyAqLyAoZnVuY3Rpb24gKF9zdXBlcikgewogICAgX19leHRlbmRzKE1haW5NZW51SXRlbSwgX3N1cGVyKTsKICAgIGZ1bmN0aW9uIE1haW5NZW51SXRlbSgpIHsKICAgICAgICByZXR1cm4gX3N1cGVyICE9PSBudWxsICYmIF9zdXBlci5hcHBseSh0aGlzLCBhcmd1bWVudHMpIHx8IHRoaXM7CiAgICB9CiAgICBNYWluTWVudUl0ZW0ucHJvdG90eXBlLmNyZWF0ZTIgPSBmdW5jdGlvbiAoKSB7CiAgICAgICAgdmFyIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KHRoaXMuSFRNTFRhZyk7CiAgICAgICAgZWxlbWVudC5pbm5lclRleHQgPSB0aGlzLlZhbHVlOwogICAgICAgIGNvbnNvbGUubG9nKGVsZW1lbnQpOwogICAgfTsKICAgIHJldHVybiBNYWluTWVudUl0ZW07Cn0oTWFpbk1lbnUpKTsKZnVuY3Rpb24gcGFnZVJlYWR5KCkgewogICAgdmFyIGl0ZW0gPSBuZXcgTWFpbk1lbnVJdGVtKCk7CiAgICBpdGVtLlZhbHVlID0gIlRlc3QiOwogICAgaXRlbS5jcmVhdGUyKCk7Cn0K" webUI["html/js/configuration_ts.js"] = "Y2xhc3MgV2l6YXJkQ2F0ZWdvcnkgewogICAgY29uc3RydWN0b3IoKSB7CiAgICAgICAgdGhpcy5Eb2N1bWVudElEID0gImNvbnRlbnQiOwogICAgfQogICAgY3JlYXRlQ2F0ZWdvcnlIZWFkbGluZSh2YWx1ZSkgewogICAgICAgIHZhciBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiSDQiKTsKICAgICAgICBlbGVtZW50LmlubmVySFRNTCA9IHZhbHVlOwogICAgICAgIHJldHVybiBlbGVtZW50OwogICAgfQp9CmNsYXNzIFdpemFyZEl0ZW0gZXh0ZW5kcyBXaXphcmRDYXRlZ29yeSB7CiAgICBjb25zdHJ1Y3RvcihrZXksIGhlYWRsaW5lKSB7CiAgICAgICAgc3VwZXIoKTsKICAgICAgICB0aGlzLmhlYWRsaW5lID0gaGVhZGxpbmU7CiAgICAgICAgdGhpcy5rZXkgPSBrZXk7CiAgICB9CiAgICBjcmVhdGVXaXphcmQoKSB7CiAgICAgICAgdmFyIGhlYWRsaW5lID0gdGhpcy5jcmVhdGVDYXRlZ29yeUhlYWRsaW5lKHRoaXMuaGVhZGxpbmUpOwogICAgICAgIHZhciBrZXkgPSB0aGlzLmtleTsKICAgICAgICB2YXIgY29udGVudCA9IG5ldyBQb3B1cENvbnRlbnQoKTsKICAgICAgICB2YXIgZGVzY3JpcHRpb247CiAgICAgICAgdmFyIGRvYyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHRoaXMuRG9jdW1lbnRJRCk7CiAgICAgICAgZG9jLmlubmVySFRNTCA9ICIiOwogICAgICAgIGRvYy5hcHBlbmRDaGlsZChoZWFkbGluZSk7CiAgICAgICAgc3dpdGNoIChrZXkpIHsKICAgICAgICAgICAgY2FzZSAidHVuZXIiOgogICAgICAgICAgICAgICAgdmFyIHRleHQgPSBuZXcgQXJyYXkoKTsKICAgICAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBuZXcgQXJyYXkoKTsKICAgICAgICAgICAgICAgIGZvciAodmFyIGkgPSAxOyBpIDw9IDEwMDsgaSsrKSB7CiAgICAgICAgICAgICAgICAgICAgdGV4dC5wdXNoKGkpOwogICAgICAgICAgICAgICAgICAgIHZhbHVlcy5wdXNoKGkpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgdmFyIHNlbGVjdCA9IGNvbnRlbnQuY3JlYXRlU2VsZWN0KHRleHQsIHZhbHVlcywgIjEiLCBrZXkpOwogICAgICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgiY2xhc3MiLCAid2l6YXJkIik7CiAgICAgICAgICAgICAgICBzZWxlY3QuaWQgPSBrZXk7CiAgICAgICAgICAgICAgICBkb2MuYXBwZW5kQ2hpbGQoc2VsZWN0KTsKICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uID0gInt7LndpemFyZC50dW5lci5kZXNjcmlwdGlvbn19IjsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJlcGdTb3VyY2UiOgogICAgICAgICAgICAgICAgdmFyIHRleHQgPSBbIlBNUyIsICJYRVBHIl07CiAgICAgICAgICAgICAgICB2YXIgdmFsdWVzID0gWyJQTVMiLCAiWEVQRyJdOwogICAgICAgICAgICAgICAgdmFyIHNlbGVjdCA9IGNvbnRlbnQuY3JlYXRlU2VsZWN0KHRleHQsIHZhbHVlcywgIlhFUEciLCBrZXkpOwogICAgICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgiY2xhc3MiLCAid2l6YXJkIik7CiAgICAgICAgICAgICAgICBzZWxlY3QuaWQgPSBrZXk7CiAgICAgICAgICAgICAgICBkb2MuYXBwZW5kQ2hpbGQoc2VsZWN0KTsKICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uID0gInt7LndpemFyZC5lcGdTb3VyY2UuZGVzY3JpcHRpb259fSI7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAibTN1IjoKICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBrZXksICIiKTsKICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3sud2l6YXJkLm0zdS5wbGFjZWhvbGRlcn19Iik7CiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoImNsYXNzIiwgIndpemFyZCIpOwogICAgICAgICAgICAgICAgaW5wdXQuaWQgPSBrZXk7CiAgICAgICAgICAgICAgICBkb2MuYXBwZW5kQ2hpbGQoaW5wdXQpOwogICAgICAgICAgICAgICAgZGVzY3JpcHRpb24gPSAie3sud2l6YXJkLm0zdS5kZXNjcmlwdGlvbn19IjsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJ4bWx0diI6CiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0Iiwga2V5LCAiIik7CiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LndpemFyZC54bWx0di5wbGFjZWhvbGRlcn19Iik7CiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoImNsYXNzIiwgIndpemFyZCIpOwogICAgICAgICAgICAgICAgaW5wdXQuaWQgPSBrZXk7CiAgICAgICAgICAgICAgICBkb2MuYXBwZW5kQ2hpbGQoaW5wdXQpOwogICAgICAgICAgICAgICAgZGVzY3JpcHRpb24gPSAie3sud2l6YXJkLnhtbHR2LmRlc2NyaXB0aW9ufX0iOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICB9CiAgICAgICAgdmFyIHByZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlBSRSIpOwogICAgICAgIHByZS5pbm5lckhUTUwgPSBkZXNjcmlwdGlvbjsKICAgICAgICBkb2MuYXBwZW5kQ2hpbGQocHJlKTsKICAgIH0KfQpmdW5jdGlvbiByZWFkeUZvckNvbmZpZ3VyYXRpb24od2l6YXJkKSB7CiAgICB2YXIgc2VydmVyID0gbmV3IFNlcnZlcigiZ2V0U2VydmVyQ29uZmlnIik7CiAgICBzZXJ2ZXIucmVxdWVzdChuZXcgT2JqZWN0KCkpOwogICAgc2hvd0VsZW1lbnQoImxvYWRpbmciLCBmYWxzZSk7CiAgICBjb25maWd1cmF0aW9uV2l6YXJkW3dpemFyZF0uY3JlYXRlV2l6YXJkKCk7Cn0KZnVuY3Rpb24gc2F2ZVdpemFyZCgpIHsKICAgIHZhciBjbWQgPSAic2F2ZVdpemFyZCI7CiAgICB2YXIgZGl2ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnRlbnQiKTsKICAgIHZhciBjb25maWcgPSBkaXYuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSgid2l6YXJkIik7CiAgICB2YXIgd2l6YXJkID0gbmV3IE9iamVjdCgpOwogICAgZm9yICh2YXIgaSA9IDA7IGkgPCBjb25maWcubGVuZ3RoOyBpKyspIHsKICAgICAgICB2YXIgbmFtZTsKICAgICAgICB2YXIgdmFsdWU7CiAgICAgICAgc3dpdGNoIChjb25maWdbaV0udGFnTmFtZSkgewogICAgICAgICAgICBjYXNlICJTRUxFQ1QiOgogICAgICAgICAgICAgICAgbmFtZSA9IGNvbmZpZ1tpXS5uYW1lOwogICAgICAgICAgICAgICAgdmFsdWUgPSBjb25maWdbaV0udmFsdWU7CiAgICAgICAgICAgICAgICAvLyBJZiB0aGUgdmFsdWUgaXMgYSBudW1iZXIsIHN0b3JlIGl0IGFzIGEgbnVtYmVyCiAgICAgICAgICAgICAgICBpZiAoaXNOYU4odmFsdWUpKSB7CiAgICAgICAgICAgICAgICAgICAgd2l6YXJkW25hbWVdID0gdmFsdWU7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgICAgICB3aXphcmRbbmFtZV0gPSBwYXJzZUludCh2YWx1ZSk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAiSU5QVVQiOgogICAgICAgICAgICAgICAgc3dpdGNoIChjb25maWdbaV0udHlwZSkgewogICAgICAgICAgICAgICAgICAgIGNhc2UgInRleHQiOgogICAgICAgICAgICAgICAgICAgICAgICBuYW1lID0gY29uZmlnW2ldLm5hbWU7CiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlID0gY29uZmlnW2ldLnZhbHVlOwogICAgICAgICAgICAgICAgICAgICAgICBpZiAodmFsdWUubGVuZ3RoID09IDApIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBtc2cgPSBuYW1lLnRvVXBwZXJDYXNlKCkgKyAiOiAiICsgInt7LmFsZXJ0Lm1pc3NpbmdJbnB1dH19IjsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFsZXJ0KG1zZyk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgd2l6YXJkW25hbWVdID0gdmFsdWU7CiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICAgICAvLyBjb2RlLi4uCiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICB9CiAgICB9CiAgICB2YXIgZGF0YSA9IG5ldyBPYmplY3QoKTsKICAgIGRhdGFbIndpemFyZCJdID0gd2l6YXJkOwogICAgdmFyIHNlcnZlciA9IG5ldyBTZXJ2ZXIoY21kKTsKICAgIHNlcnZlci5yZXF1ZXN0KGRhdGEpOwp9Ci8vIFdpemFyZAp2YXIgY29uZmlndXJhdGlvbldpemFyZCA9IG5ldyBBcnJheSgpOwpjb25maWd1cmF0aW9uV2l6YXJkLnB1c2gobmV3IFdpemFyZEl0ZW0oInR1bmVyIiwgInt7LndpemFyZC50dW5lci50aXRsZX19IikpOwpjb25maWd1cmF0aW9uV2l6YXJkLnB1c2gobmV3IFdpemFyZEl0ZW0oImVwZ1NvdXJjZSIsICJ7ey53aXphcmQuZXBnU291cmNlLnRpdGxlfX0iKSk7CmNvbmZpZ3VyYXRpb25XaXphcmQucHVzaChuZXcgV2l6YXJkSXRlbSgibTN1IiwgInt7LndpemFyZC5tM3UudGl0bGV9fSIpKTsKY29uZmlndXJhdGlvbldpemFyZC5wdXNoKG5ldyBXaXphcmRJdGVtKCJ4bWx0diIsICJ7ey53aXphcmQueG1sdHYudGl0bGV9fSIpKTsK" webUI["html/js/logs_ts.js"] = "Y2xhc3MgTG9nIHsKICAgIGNyZWF0ZUxvZyhlbnRyeSkgewogICAgICAgIHZhciBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiUFJFIik7CiAgICAgICAgZW50cnkgPSBTdHJpbmcoZW50cnkpOwogICAgICAgIGlmIChlbnRyeS5pbmRleE9mKCJXQVJOSU5HIikgIT0gLTEpIHsKICAgICAgICAgICAgZWxlbWVudC5jbGFzc05hbWUgPSAid2FybmluZ01zZyI7CiAgICAgICAgfQogICAgICAgIGlmIChlbnRyeS5pbmRleE9mKCJFUlJPUiIpICE9IC0xKSB7CiAgICAgICAgICAgIGVsZW1lbnQuY2xhc3NOYW1lID0gImVycm9yTXNnIjsKICAgICAgICB9CiAgICAgICAgaWYgKGVudHJ5LmluZGV4T2YoIkRFQlVHIikgIT0gLTEpIHsKICAgICAgICAgICAgZWxlbWVudC5jbGFzc05hbWUgPSAiZGVidWdNc2ciOwogICAgICAgIH0KICAgICAgICBlbGVtZW50LmlubmVySFRNTCA9IGVudHJ5OwogICAgICAgIHJldHVybiBlbGVtZW50OwogICAgfQp9CmZ1bmN0aW9uIHNob3dMb2dzKGJvdHRvbSkgewogICAgdmFyIGxvZyA9IG5ldyBMb2coKTsKICAgIHZhciBsb2dzID0gU0VSVkVSWyJsb2ciXVsibG9nIl07CiAgICB2YXIgZGl2ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnRlbnRfbG9nIik7CiAgICBkaXYuaW5uZXJIVE1MID0gIiI7CiAgICB2YXIga2V5cyA9IGdldE93bk9ialByb3BzKGxvZ3MpOwogICAga2V5cy5mb3JFYWNoKGxvZ0lEID0+IHsKICAgICAgICB2YXIgZW50cnkgPSBsb2cuY3JlYXRlTG9nKGxvZ3NbbG9nSURdKTsKICAgICAgICBkaXYuYXBwZW5kKGVudHJ5KTsKICAgIH0pOwogICAgc2V0VGltZW91dChmdW5jdGlvbiAoKSB7CiAgICAgICAgaWYgKGJvdHRvbSA9PSB0cnVlKSB7CiAgICAgICAgICAgIHZhciB3cmFwcGVyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImJveC13cmFwcGVyIik7CiAgICAgICAgICAgIHdyYXBwZXIuc2Nyb2xsVG9wID0gd3JhcHBlci5zY3JvbGxIZWlnaHQ7CiAgICAgICAgfQogICAgfSwgMTApOwp9CmZ1bmN0aW9uIHJlc2V0TG9ncygpIHsKICAgIHZhciBjbWQgPSAicmVzZXRMb2dzIjsKICAgIHZhciBkYXRhID0gbmV3IE9iamVjdCgpOwogICAgdmFyIHNlcnZlciA9IG5ldyBTZXJ2ZXIoY21kKTsKICAgIHNlcnZlci5yZXF1ZXN0KGRhdGEpOwp9Cg==" webUI["html/js/menu_ts.js"] = "Y2xhc3MgTWFpbk1lbnUgewogICAgY29uc3RydWN0b3IoKSB7CiAgICAgICAgdGhpcy5Eb2N1bWVudElEID0gIm1haW4tbWVudSI7CiAgICAgICAgdGhpcy5IVE1MVGFnID0gIkxJIjsKICAgICAgICB0aGlzLkltYWdlUGF0aCA9ICJpbWcvIjsKICAgIH0KICAgIGNyZWF0ZUlNRyhzcmMpIHsKICAgICAgICBsZXQgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIklNRyIpOwogICAgICAgIGVsZW1lbnQuc2V0QXR0cmlidXRlKCJzcmMiLCB0aGlzLkltYWdlUGF0aCArIHNyYyk7CiAgICAgICAgZWxlbWVudC5zZXRBdHRyaWJ1dGUoImFsdCIsIHNyYyk7CiAgICAgICAgcmV0dXJuIGVsZW1lbnQ7CiAgICB9CiAgICBjcmVhdGVWYWx1ZSh2YWx1ZSkgewogICAgICAgIGxldCBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiUCIpOwogICAgICAgIGVsZW1lbnQuaW5uZXJIVE1MID0gdmFsdWU7CiAgICAgICAgcmV0dXJuIGVsZW1lbnQ7CiAgICB9Cn0KY2xhc3MgTWFpbk1lbnVJdGVtIGV4dGVuZHMgTWFpbk1lbnUgewogICAgY29uc3RydWN0b3IobWVudUtleSwgdmFsdWUsIGltYWdlLCBoZWFkbGluZSkgewogICAgICAgIHN1cGVyKCk7CiAgICAgICAgdGhpcy5tZW51S2V5ID0gbWVudUtleTsKICAgICAgICB0aGlzLnZhbHVlID0gdmFsdWU7CiAgICAgICAgdGhpcy5pbWdTcmMgPSBpbWFnZTsKICAgICAgICB0aGlzLmhlYWRsaW5lID0gaGVhZGxpbmU7CiAgICB9CiAgICBjcmVhdGVJdGVtKCkgewogICAgICAgIGxldCBpdGVtID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiTEkiKTsKICAgICAgICBpdGVtLnNldEF0dHJpYnV0ZSgib25jbGljayIsICJqYXZhc2NyaXB0OiBvcGVuVGhpc01lbnUodGhpcykiKTsKICAgICAgICBpdGVtLnNldEF0dHJpYnV0ZSgiaWQiLCB0aGlzLmlkKTsKICAgICAgICBsZXQgaW1nID0gdGhpcy5jcmVhdGVJTUcodGhpcy5pbWdTcmMpOwogICAgICAgIGxldCB2YWx1ZSA9IHRoaXMuY3JlYXRlVmFsdWUodGhpcy52YWx1ZSk7CiAgICAgICAgaXRlbS5hcHBlbmRDaGlsZChpbWcpOwogICAgICAgIGl0ZW0uYXBwZW5kQ2hpbGQodmFsdWUpOwogICAgICAgIGxldCBkb2MgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCh0aGlzLkRvY3VtZW50SUQpOwogICAgICAgIGRvYy5hcHBlbmRDaGlsZChpdGVtKTsKICAgICAgICBzd2l0Y2ggKHRoaXMubWVudUtleSkgewogICAgICAgICAgICBjYXNlICJwbGF5bGlzdCI6CiAgICAgICAgICAgICAgICB0aGlzLnRhYmxlSGVhZGVyID0gWyJ7ey5wbGF5bGlzdC50YWJsZS5wbGF5bGlzdH19IiwgInt7LnBsYXlsaXN0LnRhYmxlLnR1bmVyfX0iLCAie3sucGxheWxpc3QudGFibGUubGFzdFVwZGF0ZX19IiwgInt7LnBsYXlsaXN0LnRhYmxlLmF2YWlsYWJpbGl0eX19ICUiLCAie3sucGxheWxpc3QudGFibGUudHlwZX19IiwgInt7LnBsYXlsaXN0LnRhYmxlLnN0cmVhbXN9fSIsICJ7ey5wbGF5bGlzdC50YWJsZS5ncm91cFRpdGxlfX0gJSIsICJ7ey5wbGF5bGlzdC50YWJsZS50dmdJRH19ICUiLCAie3sucGxheWxpc3QudGFibGUudW5pcXVlSUR9fSAlIl07CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAieG1sdHYiOgogICAgICAgICAgICAgICAgdGhpcy50YWJsZUhlYWRlciA9IFsie3sueG1sdHYudGFibGUuZ3VpZGV9fSIsICJ7ey54bWx0di50YWJsZS5sYXN0VXBkYXRlfX0iLCAie3sueG1sdHYudGFibGUuYXZhaWxhYmlsaXR5fX0gJSIsICJ7ey54bWx0di50YWJsZS5jaGFubmVsc319IiwgInt7LnhtbHR2LnRhYmxlLnByb2dyYW1zfX0iXTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJmaWx0ZXIiOgogICAgICAgICAgICAgICAgdGhpcy50YWJsZUhlYWRlciA9IFsie3suZmlsdGVyLnRhYmxlLnN0YXJ0aW5nQ2hhbm5lbH19IiwgInt7LmZpbHRlci50YWJsZS5uYW1lfX0iLCAie3suZmlsdGVyLnRhYmxlLnR5cGV9fSIsICJ7ey5maWx0ZXIudGFibGUuZmlsdGVyfX0iXTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJ1c2VycyI6CiAgICAgICAgICAgICAgICB0aGlzLnRhYmxlSGVhZGVyID0gWyJ7ey51c2Vycy50YWJsZS51c2VybmFtZX19IiwgInt7LnVzZXJzLnRhYmxlLnBhc3N3b3JkfX0iLCAie3sudXNlcnMudGFibGUud2VifX0iLCAie3sudXNlcnMudGFibGUucG1zfX0iLCAie3sudXNlcnMudGFibGUubTN1fX0iLCAie3sudXNlcnMudGFibGUueG1sfX0iLCAie3sudXNlcnMudGFibGUuYXBpfX0iXTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJtYXBwaW5nIjoKICAgICAgICAgICAgICAgIHRoaXMudGFibGVIZWFkZXIgPSBbIkJVTEsiLCAie3subWFwcGluZy50YWJsZS5jaE5vfX0iLCAie3subWFwcGluZy50YWJsZS5sb2dvfX0iLCAie3subWFwcGluZy50YWJsZS5jaGFubmVsTmFtZX19IiwgInt7Lm1hcHBpbmcudGFibGUudXBkYXRlQ2hhbm5lbE5hbWVSZWdleH19IiwgInt7Lm1hcHBpbmcudGFibGUucGxheWxpc3R9fSIsICJ7ey5tYXBwaW5nLnRhYmxlLmdyb3VwVGl0bGV9fSIsICJ7ey5tYXBwaW5nLnRhYmxlLnhtbHR2RmlsZX19IiwgInt7Lm1hcHBpbmcudGFibGUueG1sdHZJRH19IiwgInt7Lm1hcHBpbmcudGFibGUudGltZXNoaWZ0fX0iXTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgIH0KICAgIH0KfQpjbGFzcyBDb250ZW50IHsKICAgIGNvbnN0cnVjdG9yKCkgewogICAgICAgIHRoaXMuRG9jdW1lbnRJRCA9ICJjb250ZW50IjsKICAgICAgICB0aGlzLlRhYmxlSUQgPSAiY29udGVudF90YWJsZSI7CiAgICAgICAgdGhpcy5oZWFkZXJDbGFzcyA9ICJjb250ZW50X3RhYmxlX2hlYWRlciI7CiAgICAgICAgdGhpcy5pbnRlcmFjdGlvbklEID0gImNvbnRlbnQtaW50ZXJhY3Rpb24iOwogICAgfQogICAgY3JlYXRlSGVhZGxpbmUodmFsdWUpIHsKICAgICAgICBsZXQgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIkgzIik7CiAgICAgICAgZWxlbWVudC5pbm5lckhUTUwgPSB2YWx1ZTsKICAgICAgICByZXR1cm4gZWxlbWVudDsKICAgIH0KICAgIGNyZWF0ZUhSKCkgewogICAgICAgIHJldHVybiBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJIUiIpOwogICAgfQogICAgY3JlYXRlSW50ZXJhY3Rpb24oKSB7CiAgICAgICAgbGV0IGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJESVYiKTsKICAgICAgICBlbGVtZW50LnNldEF0dHJpYnV0ZSgiaWQiLCB0aGlzLmludGVyYWN0aW9uSUQpOwogICAgICAgIHJldHVybiBlbGVtZW50OwogICAgfQogICAgY3JlYXRlRElWKCkgewogICAgICAgIGxldCBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiRElWIik7CiAgICAgICAgZWxlbWVudC5pZCA9IHRoaXMuRGl2SUQ7CiAgICAgICAgcmV0dXJuIGVsZW1lbnQ7CiAgICB9CiAgICBjcmVhdGVUQUJMRSgpIHsKICAgICAgICBsZXQgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlRBQkxFIik7CiAgICAgICAgZWxlbWVudC5pZCA9IHRoaXMuVGFibGVJRDsKICAgICAgICByZXR1cm4gZWxlbWVudDsKICAgIH0KICAgIGNyZWF0ZVRhYmxlUm93KCkgewogICAgICAgIGxldCBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVFIiKTsKICAgICAgICBlbGVtZW50LmNsYXNzTmFtZSA9IHRoaXMuaGVhZGVyQ2xhc3M7CiAgICAgICAgcmV0dXJuIGVsZW1lbnQ7CiAgICB9CiAgICBjcmVhdGVUYWJsZUNvbnRlbnQobWVudUtleSkgewogICAgICAgIGxldCBkYXRhID0ge307CiAgICAgICAgbGV0IHJvd3MgPSBbXTsKICAgICAgICBsZXQgZmlsZVR5cGVzID0gW107CiAgICAgICAgc3dpdGNoIChtZW51S2V5KSB7CiAgICAgICAgICAgIGNhc2UgInBsYXlsaXN0IjoKICAgICAgICAgICAgICAgIGZpbGVUeXBlcyA9IFsibTN1IiwgImhkaHIiXTsKICAgICAgICAgICAgICAgIGZpbGVUeXBlcy5mb3JFYWNoKGZpbGVUeXBlID0+IHsKICAgICAgICAgICAgICAgICAgICBkYXRhID0gU0VSVkVSWyJzZXR0aW5ncyJdWyJmaWxlcyJdW2ZpbGVUeXBlXTsKICAgICAgICAgICAgICAgICAgICB2YXIga2V5cyA9IGdldE93bk9ialByb3BzKGRhdGEpOwogICAgICAgICAgICAgICAgICAgIGtleXMuZm9yRWFjaChrZXkgPT4gewogICAgICAgICAgICAgICAgICAgICAgICB2YXIgdHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJUUiIpOwogICAgICAgICAgICAgICAgICAgICAgICB0ci5pZCA9IGtleTsKICAgICAgICAgICAgICAgICAgICAgICAgdHIuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgiJyArIGZpbGVUeXBlICsgJyIsIHRoaXMpJyk7CiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsKICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7CiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOwogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJuYW1lIl07CiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsKICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOwogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7CiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChTRVJWRVJbInNldHRpbmdzIl1bImJ1ZmZlciJdICE9ICItIikgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsidHVuZXIiXTsKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSAiLSI7CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOwogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7CiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOwogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsKICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsibGFzdC51cGRhdGUiXTsKICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOwogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7CiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOwogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsKICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsicHJvdmlkZXIuYXZhaWxhYmlsaXR5Il07CiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsKICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOwogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7CiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bInR5cGUiXS50b1VwcGVyQ2FzZSgpOwogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7CiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsKICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7CiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOwogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJjb21wYXRpYmlsaXR5Il1bInN0cmVhbXMiXTsKICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOwogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7CiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOwogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsKICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsiY29tcGF0aWJpbGl0eSJdWyJncm91cC50aXRsZSJdOwogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7CiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsKICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7CiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOwogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJjb21wYXRpYmlsaXR5Il1bInR2Zy5pZCJdOwogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7CiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsKICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7CiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOwogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJjb21wYXRpYmlsaXR5Il1bInN0cmVhbS5pZCJdOwogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7CiAgICAgICAgICAgICAgICAgICAgICAgIHJvd3MucHVzaCh0cik7CiAgICAgICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJmaWx0ZXIiOgogICAgICAgICAgICAgICAgZGVsZXRlIFNFUlZFUlsic2V0dGluZ3MiXVsiZmlsdGVyIl1bLTFdOwogICAgICAgICAgICAgICAgZGF0YSA9IFNFUlZFUlsic2V0dGluZ3MiXVsiZmlsdGVyIl07CiAgICAgICAgICAgICAgICB2YXIga2V5cyA9IGdldE93bk9ialByb3BzKGRhdGEpOwogICAgICAgICAgICAgICAga2V5cy5mb3JFYWNoKGtleSA9PiB7CiAgICAgICAgICAgICAgICAgICAgdmFyIHRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVFIiKTsKICAgICAgICAgICAgICAgICAgICB0ci5pZCA9IGtleTsKICAgICAgICAgICAgICAgICAgICB0ci5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCInICsgZGF0YVtrZXldWyJ0eXBlIl0gKyAnIiwgdGhpcyknKTsKICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7CiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7CiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7CiAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsic3RhcnRpbmdDaGFubmVsIl07CiAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOwogICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsKICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsKICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJuYW1lIl07CiAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOwogICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsKICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsKICAgICAgICAgICAgICAgICAgICBzd2l0Y2ggKGRhdGFba2V5XVsidHlwZSJdKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgImN1c3RvbS1maWx0ZXIiOgogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9ICJ7ey5maWx0ZXIuY3VzdG9tfX0iOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgImdyb3VwLXRpdGxlIjoKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSAie3suZmlsdGVyLmdyb3VwfX0iOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOwogICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsKICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsKICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJmaWx0ZXIiXTsKICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7CiAgICAgICAgICAgICAgICAgICAgcm93cy5wdXNoKHRyKTsKICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgInhtbHR2IjoKICAgICAgICAgICAgICAgIGZpbGVUeXBlcyA9IG5ldyBBcnJheSgieG1sdHYiKTsKICAgICAgICAgICAgICAgIGZpbGVUeXBlcy5mb3JFYWNoKGZpbGVUeXBlID0+IHsKICAgICAgICAgICAgICAgICAgICBkYXRhID0gU0VSVkVSWyJzZXR0aW5ncyJdWyJmaWxlcyJdW2ZpbGVUeXBlXTsKICAgICAgICAgICAgICAgICAgICB2YXIga2V5cyA9IGdldE93bk9ialByb3BzKGRhdGEpOwogICAgICAgICAgICAgICAgICAgIGtleXMuZm9yRWFjaChrZXkgPT4gewogICAgICAgICAgICAgICAgICAgICAgICB2YXIgdHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJUUiIpOwogICAgICAgICAgICAgICAgICAgICAgICB0ci5pZCA9IGtleTsKICAgICAgICAgICAgICAgICAgICAgICAgdHIuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgiJyArIGZpbGVUeXBlICsgJyIsIHRoaXMpJyk7CiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsKICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7CiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOwogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJuYW1lIl07CiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsKICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOwogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7CiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bImxhc3QudXBkYXRlIl07CiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsKICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOwogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7CiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bInByb3ZpZGVyLmF2YWlsYWJpbGl0eSJdOwogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7CiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsKICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7CiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOwogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJjb21wYXRpYmlsaXR5Il1bInhtbHR2LmNoYW5uZWxzIl07CiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsKICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOwogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7CiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bImNvbXBhdGliaWxpdHkiXVsieG1sdHYucHJvZ3JhbXMiXTsKICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOwogICAgICAgICAgICAgICAgICAgICAgICByb3dzLnB1c2godHIpOwogICAgICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAidXNlcnMiOgogICAgICAgICAgICAgICAgZmlsZVR5cGVzID0gbmV3IEFycmF5KCJ1c2VycyIpOwogICAgICAgICAgICAgICAgZmlsZVR5cGVzLmZvckVhY2goZmlsZVR5cGUgPT4gewogICAgICAgICAgICAgICAgICAgIGRhdGEgPSBTRVJWRVJbZmlsZVR5cGVdOwogICAgICAgICAgICAgICAgICAgIHZhciBrZXlzID0gZ2V0T3duT2JqUHJvcHMoZGF0YSk7CiAgICAgICAgICAgICAgICAgICAga2V5cy5mb3JFYWNoKGtleSA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgIHZhciB0ciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlRSIik7CiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmlkID0ga2V5OwogICAgICAgICAgICAgICAgICAgICAgICB0ci5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCInICsgZmlsZVR5cGUgKyAnIiwgdGhpcyknKTsKICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOwogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7CiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bImRhdGEiXVsidXNlcm5hbWUiXTsKICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOwogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7CiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOwogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsKICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9ICIqKioqKioiOwogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7CiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsKICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7CiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOwogICAgICAgICAgICAgICAgICAgICAgICBpZiAoZGF0YVtrZXldWyJkYXRhIl1bImF1dGhlbnRpY2F0aW9uLndlYiJdID09IHRydWUpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSAi4pyTIjsKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSAiLSI7CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOwogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7CiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOwogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsKICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGRhdGFba2V5XVsiZGF0YSJdWyJhdXRoZW50aWNhdGlvbi5wbXMiXSA9PSB0cnVlKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gIuKckyI7CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gIi0iOwogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsKICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOwogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7CiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChkYXRhW2tleV1bImRhdGEiXVsiYXV0aGVudGljYXRpb24ubTN1Il0gPT0gdHJ1ZSkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9ICLinJMiOwogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9ICItIjsKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7CiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsKICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7CiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOwogICAgICAgICAgICAgICAgICAgICAgICBpZiAoZGF0YVtrZXldWyJkYXRhIl1bImF1dGhlbnRpY2F0aW9uLnhtbCJdID09IHRydWUpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSAi4pyTIjsKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSAiLSI7CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOwogICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7CiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOwogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsKICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGRhdGFba2V5XVsiZGF0YSJdWyJhdXRoZW50aWNhdGlvbi5hcGkiXSA9PSB0cnVlKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gIuKckyI7CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gIi0iOwogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsKICAgICAgICAgICAgICAgICAgICAgICAgcm93cy5wdXNoKHRyKTsKICAgICAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgIm1hcHBpbmciOgogICAgICAgICAgICAgICAgQlVMS19FRElUID0gZmFsc2U7CiAgICAgICAgICAgICAgICBjcmVhdGVTZWFyY2hPYmooKTsKICAgICAgICAgICAgICAgIGNoZWNrVW5kbygiZXBnTWFwcGluZyIpOwogICAgICAgICAgICAgICAgZGF0YSA9IFNFUlZFUlsieGVwZyJdWyJlcGdNYXBwaW5nIl07CiAgICAgICAgICAgICAgICB2YXIga2V5cyA9IGdldE93bk9ialByb3BzKGRhdGEpOwogICAgICAgICAgICAgICAga2V5cy5mb3JFYWNoKGtleSA9PiB7CiAgICAgICAgICAgICAgICAgICAgdmFyIHRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVFIiKTsKICAgICAgICAgICAgICAgICAgICB0ci5pZCA9IGtleTsKICAgICAgICAgICAgICAgICAgICBzd2l0Y2ggKGRhdGFba2V5XVsieC1hY3RpdmUiXSkgewogICAgICAgICAgICAgICAgICAgICAgICBjYXNlIHRydWU6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ci5jbGFzc05hbWUgPSAiYWN0aXZlRVBHIjsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICAgICAgICBjYXNlIGZhbHNlOgogICAgICAgICAgICAgICAgICAgICAgICAgICAgdHIuY2xhc3NOYW1lID0gIm5vdEFjdGl2ZUVQRyI7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgLy8gQnVsawogICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsKICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJCVUxLIjsKICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZmFsc2U7CiAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQoY2VsbC5jcmVhdGVDZWxsKCkpOwogICAgICAgICAgICAgICAgICAgIC8vIENoYW5uZWwgbnVtYmVyCiAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOwogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOwogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIklOUFVUQ0hBTk5FTCI7CiAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGRhdGFba2V5XVsieC1jaGFubmVsSUQiXTsKICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZChjZWxsLmNyZWF0ZUNlbGwoKSk7CiAgICAgICAgICAgICAgICAgICAgLy8gTG9nbwogICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsKICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJJTUciOwogICAgICAgICAgICAgICAgICAgIGNlbGwuaW1hZ2VVUkwgPSBkYXRhW2tleV1bInR2Zy1sb2dvIl07CiAgICAgICAgICAgICAgICAgICAgdmFyIHRkID0gY2VsbC5jcmVhdGVDZWxsKCk7CiAgICAgICAgICAgICAgICAgICAgdGQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgibWFwcGluZyIsIHRoaXMpJyk7CiAgICAgICAgICAgICAgICAgICAgdGQuaWQgPSBrZXk7CiAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQodGQpOwogICAgICAgICAgICAgICAgICAgIC8vIENoYW5uZWwgbmFtZQogICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsKICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsKICAgICAgICAgICAgICAgICAgICBjZWxsLmNsYXNzTmFtZSA9IGRhdGFba2V5XVsieC1jYXRlZ29yeSJdOwogICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bIngtbmFtZSJdOwogICAgICAgICAgICAgICAgICAgIHZhciB0ZCA9IGNlbGwuY3JlYXRlQ2VsbCgpOwogICAgICAgICAgICAgICAgICAgIHRkLnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoIm1hcHBpbmciLCB0aGlzKScpOwogICAgICAgICAgICAgICAgICAgIHRkLmlkID0ga2V5OwogICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKHRkKTsKICAgICAgICAgICAgICAgICAgICAvLyBVcGRhdGUgY2hhbm5lbCBuYW1lIHJlZ2V4CiAgICAgICAgICAgICAgICAgICAgdmFyIGNlbGwgPSBuZXcgQ2VsbCgpOwogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOwogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIlAiOwogICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bInVwZGF0ZS1jaGFubmVsLW5hbWUtcmVnZXgiXTsKICAgICAgICAgICAgICAgICAgICB2YXIgdGQgPSBjZWxsLmNyZWF0ZUNlbGwoKTsKICAgICAgICAgICAgICAgICAgICB0ZC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJtYXBwaW5nIiwgdGhpcyknKTsKICAgICAgICAgICAgICAgICAgICB0ZC5pZCA9IGtleTsKICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZCh0ZCk7CiAgICAgICAgICAgICAgICAgICAgLy8gUGxheWxpc3QKICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7CiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7CiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7CiAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGdldFZhbHVlRnJvbVByb3ZpZGVyRmlsZShkYXRhW2tleV1bIl9maWxlLm0zdS5pZCJdLCAibTN1IiwgIm5hbWUiKTsKICAgICAgICAgICAgICAgICAgICB2YXIgdGQgPSBjZWxsLmNyZWF0ZUNlbGwoKTsKICAgICAgICAgICAgICAgICAgICB0ZC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJtYXBwaW5nIiwgdGhpcyknKTsKICAgICAgICAgICAgICAgICAgICB0ZC5pZCA9IGtleTsKICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZCh0ZCk7CiAgICAgICAgICAgICAgICAgICAgLy8gR3JvdXAgKGdyb3VwLXRpdGxlKQogICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsKICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsKICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJ4LWdyb3VwLXRpdGxlIl07CiAgICAgICAgICAgICAgICAgICAgdmFyIHRkID0gY2VsbC5jcmVhdGVDZWxsKCk7CiAgICAgICAgICAgICAgICAgICAgdGQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgibWFwcGluZyIsIHRoaXMpJyk7CiAgICAgICAgICAgICAgICAgICAgdGQuaWQgPSBrZXk7CiAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQodGQpOwogICAgICAgICAgICAgICAgICAgIC8vIFhNTFRWIGZpbGUKICAgICAgICAgICAgICAgICAgICB2YXIgY2VsbCA9IG5ldyBDZWxsKCk7CiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZCA9IHRydWU7CiAgICAgICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7CiAgICAgICAgICAgICAgICAgICAgaWYgKGRhdGFba2V5XVsieC14bWx0di1maWxlIl0gIT0gIi0iKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBnZXRWYWx1ZUZyb21Qcm92aWRlckZpbGUoZGF0YVtrZXldWyJ4LXhtbHR2LWZpbGUiXSwgInhtbHR2IiwgIm5hbWUiKTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudmFsdWUgPSBkYXRhW2tleV1bIngteG1sdHYtZmlsZSJdOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB2YXIgdGQgPSBjZWxsLmNyZWF0ZUNlbGwoKTsKICAgICAgICAgICAgICAgICAgICB0ZC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJtYXBwaW5nIiwgdGhpcyknKTsKICAgICAgICAgICAgICAgICAgICB0ZC5pZCA9IGtleTsKICAgICAgICAgICAgICAgICAgICB0ci5hcHBlbmRDaGlsZCh0ZCk7CiAgICAgICAgICAgICAgICAgICAgLy8gWE1MVFYgQ2hhbm5lbAogICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsKICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsKICAgICAgICAgICAgICAgICAgICB2YXIgdmFsdWUgPSBkYXRhW2tleV1bIngtbWFwcGluZyJdOwogICAgICAgICAgICAgICAgICAgIGlmICh2YWx1ZS5sZW5ndGggPiAyMCkgewogICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IGRhdGFba2V5XVsieC1tYXBwaW5nIl0uc3Vic3RyaW5nKDAsIDIwKSArICIuLi4iOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gdmFsdWU7CiAgICAgICAgICAgICAgICAgICAgdmFyIHRkID0gY2VsbC5jcmVhdGVDZWxsKCk7CiAgICAgICAgICAgICAgICAgICAgdGQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgibWFwcGluZyIsIHRoaXMpJyk7CiAgICAgICAgICAgICAgICAgICAgdGQuaWQgPSBrZXk7CiAgICAgICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQodGQpOwogICAgICAgICAgICAgICAgICAgIC8vIFRpbWVTaGlmdAogICAgICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsKICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgICBjZWxsLmNoaWxkVHlwZSA9ICJQIjsKICAgICAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZGF0YVtrZXldWyJ4LXRpbWVzaGlmdCJdOwogICAgICAgICAgICAgICAgICAgIHZhciB0ZCA9IGNlbGwuY3JlYXRlQ2VsbCgpOwogICAgICAgICAgICAgICAgICAgIHRkLnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoIm1hcHBpbmciLCB0aGlzKScpOwogICAgICAgICAgICAgICAgICAgIHRkLmlkID0ga2V5OwogICAgICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKHRkKTsKICAgICAgICAgICAgICAgICAgICByb3dzLnB1c2godHIpOwogICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAic2V0dGluZ3MiOgogICAgICAgICAgICAgICAgYWxlcnQoKTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgfQogICAgICAgIHJldHVybiByb3dzOwogICAgfQp9CmNsYXNzIENlbGwgewogICAgY3JlYXRlQ2VsbCgpIHsKICAgICAgICBsZXQgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOwogICAgICAgIGlmICh0aGlzLmNoaWxkID09IHRydWUpIHsKICAgICAgICAgICAgdmFyIGVsZW1lbnQ7CiAgICAgICAgICAgIHN3aXRjaCAodGhpcy5jaGlsZFR5cGUpIHsKICAgICAgICAgICAgICAgIGNhc2UgIlAiOgogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KHRoaXMuY2hpbGRUeXBlKTsKICAgICAgICAgICAgICAgICAgICBlbGVtZW50LmlubmVySFRNTCA9IHRoaXMudmFsdWU7CiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC5jbGFzc05hbWUgPSB0aGlzLmNsYXNzTmFtZTsKICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgIGNhc2UgIklOUFVUIjoKICAgICAgICAgICAgICAgICAgICBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCh0aGlzLmNoaWxkVHlwZSk7CiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC52YWx1ZSA9IHRoaXMudmFsdWU7CiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC50eXBlID0gInRleHQiOwogICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgY2FzZSAiSU5QVVRDSEFOTkVMIjoKICAgICAgICAgICAgICAgICAgICBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiSU5QVVQiKTsKICAgICAgICAgICAgICAgICAgICBlbGVtZW50LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2c2NyaXB0OiBjaGFuZ2VDaGFubmVsTnVtYmVyKHRoaXMpIik7CiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC52YWx1ZSA9IHRoaXMudmFsdWU7CiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC50eXBlID0gInRleHQiOwogICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgY2FzZSAiQlVMSyI6CiAgICAgICAgICAgICAgICAgICAgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIklOUFVUIik7CiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC5jaGVja2VkID0gdGhpcy52YWx1ZTsKICAgICAgICAgICAgICAgICAgICBlbGVtZW50LnR5cGUgPSAiY2hlY2tib3giOwogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQuY2xhc3NOYW1lID0gImJ1bGsgaGlkZUJ1bGsiOwogICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgY2FzZSAiQlVMS19IRUFEIjoKICAgICAgICAgICAgICAgICAgICBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiSU5QVVQiKTsKICAgICAgICAgICAgICAgICAgICBlbGVtZW50LmNoZWNrZWQgPSB0aGlzLnZhbHVlOwogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQudHlwZSA9ICJjaGVja2JveCI7CiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC5jbGFzc05hbWUgPSAiYnVsayBoaWRlQnVsayI7CiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAiamF2YXNjcmlwdDogc2VsZWN0QWxsQ2hhbm5lbHMoKSIpOwogICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgY2FzZSAiSU1HIjoKICAgICAgICAgICAgICAgICAgICBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCh0aGlzLmNoaWxkVHlwZSk7CiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC5zZXRBdHRyaWJ1dGUoInNyYyIsIHRoaXMuaW1hZ2VVUkwpOwogICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLmltYWdlVVJMICE9ICIiKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGVsZW1lbnQuc2V0QXR0cmlidXRlKCJvbmVycm9yIiwgImphdmFzY3JpcHQ6IHRoaXMub25lcnJvcj1udWxsO3RoaXMuc3JjPScnIik7CiAgICAgICAgICAgICAgICAgICAgICAgIC8vb25lcnJvcj0idGhpcy5vbmVycm9yPW51bGw7dGhpcy5zcmM9J21pc3NpbmcuZ2lmJzsiCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICAgIHRkLmFwcGVuZENoaWxkKGVsZW1lbnQpOwogICAgICAgIH0KICAgICAgICBlbHNlIHsKICAgICAgICAgICAgdGQuaW5uZXJIVE1MID0gdGhpcy52YWx1ZTsKICAgICAgICB9CiAgICAgICAgaWYgKHRoaXMub25jbGljayA9PSB0cnVlKSB7CiAgICAgICAgICAgIHRkLnNldEF0dHJpYnV0ZSgib25jbGljayIsIHRoaXMub25jbGlja0Z1bmN0aW9uKTsKICAgICAgICAgICAgdGQuY2xhc3NOYW1lID0gInBvaW50ZXIiOwogICAgICAgIH0KICAgICAgICBpZiAodGhpcy50ZENsYXNzTmFtZSAhPSB1bmRlZmluZWQpIHsKICAgICAgICAgICAgdGQuY2xhc3NOYW1lID0gdGhpcy50ZENsYXNzTmFtZTsKICAgICAgICB9CiAgICAgICAgcmV0dXJuIHRkOwogICAgfQp9CmNsYXNzIFNob3dDb250ZW50IGV4dGVuZHMgQ29udGVudCB7CiAgICBjb25zdHJ1Y3RvcihtZW51SUQpIHsKICAgICAgICBzdXBlcigpOwogICAgICAgIHRoaXMubWVudUlEID0gbWVudUlEOwogICAgfQogICAgY3JlYXRlSW5wdXQodHlwZSwgbmFtZSwgdmFsdWUpIHsKICAgICAgICBsZXQgaW5wdXQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJJTlBVVCIpOwogICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgidHlwZSIsIHR5cGUpOwogICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgibmFtZSIsIG5hbWUpOwogICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgidmFsdWUiLCB2YWx1ZSk7CiAgICAgICAgcmV0dXJuIGlucHV0OwogICAgfQogICAgc2hvdygpIHsKICAgICAgICBDT0xVTU5fVE9fU09SVCA9IC0xOwogICAgICAgIC8vIERlbGV0ZSBvbGQgY29udGVudAogICAgICAgIGxldCBkb2MgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCh0aGlzLkRvY3VtZW50SUQpOwogICAgICAgIGRvYy5pbm5lckhUTUwgPSAiIjsKICAgICAgICBzaG93UHJldmlldyhmYWxzZSk7CiAgICAgICAgLy8gSGVhZGxpbmUKICAgICAgICBsZXQgaGVhZGxpbmUgPSBtZW51SXRlbXNbdGhpcy5tZW51SURdLmhlYWRsaW5lOwogICAgICAgIGxldCBtZW51S2V5ID0gbWVudUl0ZW1zW3RoaXMubWVudUlEXS5tZW51S2V5OwogICAgICAgIGxldCBoID0gdGhpcy5jcmVhdGVIZWFkbGluZShoZWFkbGluZSk7CiAgICAgICAgZG9jLmFwcGVuZENoaWxkKGgpOwogICAgICAgIGxldCBociA9IHRoaXMuY3JlYXRlSFIoKTsKICAgICAgICBkb2MuYXBwZW5kQ2hpbGQoaHIpOwogICAgICAgIC8vIEludGVyYWN0aW9uCiAgICAgICAgbGV0IGRpdiA9IHRoaXMuY3JlYXRlSW50ZXJhY3Rpb24oKTsKICAgICAgICBkb2MuYXBwZW5kQ2hpbGQoZGl2KTsKICAgICAgICBsZXQgaW50ZXJhY3Rpb24gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCh0aGlzLmludGVyYWN0aW9uSUQpOwogICAgICAgIHN3aXRjaCAobWVudUtleSkgewogICAgICAgICAgICBjYXNlICJwbGF5bGlzdCI6CiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSB0aGlzLmNyZWF0ZUlucHV0KCJidXR0b24iLCBtZW51S2V5LCAie3suYnV0dG9uLm5ld319Iik7CiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoImlkIiwgIi0iKTsKICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoInBsYXlsaXN0IiknKTsKICAgICAgICAgICAgICAgIGludGVyYWN0aW9uLmFwcGVuZENoaWxkKGlucHV0KTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJmaWx0ZXIiOgogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gdGhpcy5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgbWVudUtleSwgInt7LmJ1dHRvbi5uZXd9fSIpOwogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJpZCIsIC0xKTsKICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoImZpbHRlciIsIHRoaXMpJyk7CiAgICAgICAgICAgICAgICBpbnRlcmFjdGlvbi5hcHBlbmRDaGlsZChpbnB1dCk7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAieG1sdHYiOgogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gdGhpcy5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgbWVudUtleSwgInt7LmJ1dHRvbi5uZXd9fSIpOwogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJpZCIsICJ4bWx0diIpOwogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgieG1sdHYiKScpOwogICAgICAgICAgICAgICAgaW50ZXJhY3Rpb24uYXBwZW5kQ2hpbGQoaW5wdXQpOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgInVzZXJzIjoKICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IHRoaXMuY3JlYXRlSW5wdXQoImJ1dHRvbiIsIG1lbnVLZXksICJ7ey5idXR0b24ubmV3fX0iKTsKICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgiaWQiLCAidXNlcnMiKTsKICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoInVzZXJzIiknKTsKICAgICAgICAgICAgICAgIGludGVyYWN0aW9uLmFwcGVuZENoaWxkKGlucHV0KTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJtYXBwaW5nIjoKICAgICAgICAgICAgICAgIHNob3dFbGVtZW50KCJsb2FkaW5nIiwgdHJ1ZSk7CiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSB0aGlzLmNyZWF0ZUlucHV0KCJidXR0b24iLCBtZW51S2V5LCAie3suYnV0dG9uLnNhdmV9fSIpOwogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoIm1hcHBpbmciLCAiIiwgIiIpJyk7CiAgICAgICAgICAgICAgICBpbnRlcmFjdGlvbi5hcHBlbmRDaGlsZChpbnB1dCk7CiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSB0aGlzLmNyZWF0ZUlucHV0KCJidXR0b24iLCBtZW51S2V5LCAie3suYnV0dG9uLmJ1bGtFZGl0fX0iKTsKICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBidWxrRWRpdCgpJyk7CiAgICAgICAgICAgICAgICBpbnRlcmFjdGlvbi5hcHBlbmRDaGlsZChpbnB1dCk7CiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSB0aGlzLmNyZWF0ZUlucHV0KCJzZWFyY2giLCAic2VhcmNoIiwgIiIpOwogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJpZCIsICJzZWFyY2hNYXBwaW5nIik7CiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LmJ1dHRvbi5zZWFyY2h9fSIpOwogICAgICAgICAgICAgICAgaW5wdXQuY2xhc3NOYW1lID0gInNlYXJjaCI7CiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgJ2phdmFzY3JpcHQ6IHNlYXJjaEluTWFwcGluZygpJyk7CiAgICAgICAgICAgICAgICBpbnRlcmFjdGlvbi5hcHBlbmRDaGlsZChpbnB1dCk7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAic2V0dGluZ3MiOgogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gdGhpcy5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgbWVudUtleSwgInt7LmJ1dHRvbi5zYXZlfX0iKTsKICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBzYXZlU2V0dGluZ3MoKTsnKTsKICAgICAgICAgICAgICAgIGludGVyYWN0aW9uLmFwcGVuZENoaWxkKGlucHV0KTsKICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IHRoaXMuY3JlYXRlSW5wdXQoImJ1dHRvbiIsIG1lbnVLZXksICJ7ey5idXR0b24uYmFja3VwfX0iKTsKICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBiYWNrdXAoKTsnKTsKICAgICAgICAgICAgICAgIGludGVyYWN0aW9uLmFwcGVuZENoaWxkKGlucHV0KTsKICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IHRoaXMuY3JlYXRlSW5wdXQoImJ1dHRvbiIsIG1lbnVLZXksICJ7ey5idXR0b24ucmVzdG9yZX19Iik7CiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogcmVzdG9yZSgpOycpOwogICAgICAgICAgICAgICAgaW50ZXJhY3Rpb24uYXBwZW5kQ2hpbGQoaW5wdXQpOwogICAgICAgICAgICAgICAgdmFyIHdyYXBwZXIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJESVYiKTsKICAgICAgICAgICAgICAgIHdyYXBwZXIuc2V0QXR0cmlidXRlKCJpZCIsICJib3gtd3JhcHBlciIpOwogICAgICAgICAgICAgICAgZG9jLmFwcGVuZENoaWxkKHdyYXBwZXIpOwogICAgICAgICAgICAgICAgdGhpcy5EaXZJRCA9ICJjb250ZW50X3NldHRpbmdzIjsKICAgICAgICAgICAgICAgIHZhciBzZXR0aW5ncyA9IHRoaXMuY3JlYXRlRElWKCk7CiAgICAgICAgICAgICAgICB3cmFwcGVyLmFwcGVuZENoaWxkKHNldHRpbmdzKTsKICAgICAgICAgICAgICAgIHNob3dTZXR0aW5ncygpOwogICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICBjYXNlICJsb2ciOgogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gdGhpcy5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgbWVudUtleSwgInt7LmJ1dHRvbi5yZXNldExvZ3N9fSIpOwogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IHJlc2V0TG9ncygpOycpOwogICAgICAgICAgICAgICAgaW50ZXJhY3Rpb24uYXBwZW5kQ2hpbGQoaW5wdXQpOwogICAgICAgICAgICAgICAgdmFyIHdyYXBwZXIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJESVYiKTsKICAgICAgICAgICAgICAgIHdyYXBwZXIuc2V0QXR0cmlidXRlKCJpZCIsICJib3gtd3JhcHBlciIpOwogICAgICAgICAgICAgICAgZG9jLmFwcGVuZENoaWxkKHdyYXBwZXIpOwogICAgICAgICAgICAgICAgdGhpcy5EaXZJRCA9ICJjb250ZW50X2xvZyI7CiAgICAgICAgICAgICAgICB2YXIgbG9ncyA9IHRoaXMuY3JlYXRlRElWKCk7CiAgICAgICAgICAgICAgICB3cmFwcGVyLmFwcGVuZENoaWxkKGxvZ3MpOwogICAgICAgICAgICAgICAgc2hvd0xvZ3ModHJ1ZSk7CiAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgIGNhc2UgImxvZ291dCI6CiAgICAgICAgICAgICAgICBsb2NhdGlvbi5yZWxvYWQoKTsKICAgICAgICAgICAgICAgIGRvY3VtZW50LmNvb2tpZSA9ICJUb2tlbj0gOyBleHBpcmVzID0gVGh1LCAwMSBKYW4gMTk3MCAwMDowMDowMCBHTVQiOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICB9CiAgICAgICAgLy8gQ3JlYXRlIHRhYmxlIChpZiBuZWVkZWQpCiAgICAgICAgdmFyIHRhYmxlSGVhZGVyID0gbWVudUl0ZW1zW3RoaXMubWVudUlEXS50YWJsZUhlYWRlcjsKICAgICAgICBpZiAodGFibGVIZWFkZXIubGVuZ3RoID4gMCkgewogICAgICAgICAgICB2YXIgd3JhcHBlciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIkRJViIpOwogICAgICAgICAgICBkb2MuYXBwZW5kQ2hpbGQod3JhcHBlcik7CiAgICAgICAgICAgIHdyYXBwZXIuc2V0QXR0cmlidXRlKCJpZCIsICJib3gtd3JhcHBlciIpOwogICAgICAgICAgICB2YXIgdGFibGUgPSB0aGlzLmNyZWF0ZVRBQkxFKCk7CiAgICAgICAgICAgIHdyYXBwZXIuYXBwZW5kQ2hpbGQodGFibGUpOwogICAgICAgICAgICB2YXIgaGVhZGVyID0gdGhpcy5jcmVhdGVUYWJsZVJvdygpOwogICAgICAgICAgICB0YWJsZS5hcHBlbmRDaGlsZChoZWFkZXIpOwogICAgICAgICAgICAvLyBUYWJsZSBoZWFkZXIKICAgICAgICAgICAgdGFibGVIZWFkZXIuZm9yRWFjaChlbGVtZW50ID0+IHsKICAgICAgICAgICAgICAgIHZhciBjZWxsID0gbmV3IENlbGwoKTsKICAgICAgICAgICAgICAgIGNlbGwuY2hpbGQgPSB0cnVlOwogICAgICAgICAgICAgICAgY2VsbC5jaGlsZFR5cGUgPSAiUCI7CiAgICAgICAgICAgICAgICBjZWxsLnZhbHVlID0gZWxlbWVudDsKICAgICAgICAgICAgICAgIGlmIChlbGVtZW50ID09ICJCVUxLIikgewogICAgICAgICAgICAgICAgICAgIGNlbGwuY2hpbGRUeXBlID0gIkJVTEtfSEVBRCI7CiAgICAgICAgICAgICAgICAgICAgY2VsbC52YWx1ZSA9IGZhbHNlOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgaWYgKG1lbnVLZXkgPT0gIm1hcHBpbmciKSB7CiAgICAgICAgICAgICAgICAgICAgaWYgKGVsZW1lbnQgPT0gInt7Lm1hcHBpbmcudGFibGUuY2hOb319IikgewogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLm9uY2xpY2sgPSB0cnVlOwogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLm9uY2xpY2tGdW5jdGlvbiA9ICJqYXZhc2NyaXB0OiBzb3J0VGFibGUoMSk7IjsKICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC50ZENsYXNzTmFtZSA9ICJzb3J0VGhpcyI7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIGlmIChlbGVtZW50ID09ICJ7ey5tYXBwaW5nLnRhYmxlLmNoYW5uZWxOYW1lfX0iKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwub25jbGljayA9IHRydWU7CiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwub25jbGlja0Z1bmN0aW9uID0gImphdmFzY3JpcHQ6IHNvcnRUYWJsZSgzKTsiOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBpZiAoZWxlbWVudCA9PSAie3subWFwcGluZy50YWJsZS51cGRhdGVDaGFubmVsTmFtZVJlZ2V4fX0iKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwub25jbGljayA9IHRydWU7CiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwub25jbGlja0Z1bmN0aW9uID0gImphdmFzY3JpcHQ6IHNvcnRUYWJsZSg0KTsiOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBpZiAoZWxlbWVudCA9PSAie3subWFwcGluZy50YWJsZS5wbGF5bGlzdH19IikgewogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLm9uY2xpY2sgPSB0cnVlOwogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLm9uY2xpY2tGdW5jdGlvbiA9ICJqYXZhc2NyaXB0OiBzb3J0VGFibGUoNSk7IjsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgaWYgKGVsZW1lbnQgPT0gInt7Lm1hcHBpbmcudGFibGUuZ3JvdXBUaXRsZX19IikgewogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLm9uY2xpY2sgPSB0cnVlOwogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLm9uY2xpY2tGdW5jdGlvbiA9ICJqYXZhc2NyaXB0OiBzb3J0VGFibGUoNik7IjsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgaWYgKGVsZW1lbnQgPT0gInt7Lm1hcHBpbmcudGFibGUudGltZXNoaWZ0fX0iKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwub25jbGljayA9IHRydWU7CiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwub25jbGlja0Z1bmN0aW9uID0gImphdmFzY3JpcHQ6IHNvcnRUYWJsZSg5KTsiOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGlmIChtZW51S2V5ID09ICJmaWx0ZXIiKSB7CiAgICAgICAgICAgICAgICAgICAgaWYgKGVsZW1lbnQgPT0gInt7LmZpbHRlci50YWJsZS5zdGFydGluZ0NoYW5uZWx9fSIpIHsKICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5vbmNsaWNrID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5vbmNsaWNrRnVuY3Rpb24gPSAiamF2YXNjcmlwdDogc29ydFRhYmxlKDApOyI7CiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGwudGRDbGFzc05hbWUgPSAic29ydFRoaXMiOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBpZiAoZWxlbWVudCA9PSAie3suZmlsdGVyLnRhYmxlLm5hbWV9fSIpIHsKICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5vbmNsaWNrID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5vbmNsaWNrRnVuY3Rpb24gPSAiamF2YXNjcmlwdDogc29ydFRhYmxlKDEpOyI7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIGlmIChlbGVtZW50ID09ICJ7ey5maWx0ZXIudGFibGUudHlwZX19IikgewogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLm9uY2xpY2sgPSB0cnVlOwogICAgICAgICAgICAgICAgICAgICAgICBjZWxsLm9uY2xpY2tGdW5jdGlvbiA9ICJqYXZhc2NyaXB0OiBzb3J0VGFibGUoMik7IjsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgaWYgKGVsZW1lbnQgPT0gInt7LmZpbHRlci50YWJsZS5maWx0ZXJ9fSIpIHsKICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5vbmNsaWNrID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgICAgICAgY2VsbC5vbmNsaWNrRnVuY3Rpb24gPSAiamF2YXNjcmlwdDogc29ydFRhYmxlKDMpOyI7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgaGVhZGVyLmFwcGVuZENoaWxkKGNlbGwuY3JlYXRlQ2VsbCgpKTsKICAgICAgICAgICAgfSk7CiAgICAgICAgICAgIHRhYmxlLmFwcGVuZENoaWxkKGhlYWRlcik7CiAgICAgICAgICAgIC8vIENvbnRlbnQgb2YgdGhlIHRhYmxlCiAgICAgICAgICAgIHZhciByb3dzID0gdGhpcy5jcmVhdGVUYWJsZUNvbnRlbnQobWVudUtleSk7CiAgICAgICAgICAgIHJvd3MuZm9yRWFjaCh0ciA9PiB7CiAgICAgICAgICAgICAgICB0YWJsZS5hcHBlbmRDaGlsZCh0cik7CiAgICAgICAgICAgIH0pOwogICAgICAgIH0KICAgICAgICBzd2l0Y2ggKG1lbnVLZXkpIHsKICAgICAgICAgICAgY2FzZSAibWFwcGluZyI6CiAgICAgICAgICAgICAgICBzb3J0VGFibGUoMSk7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAiZmlsdGVyIjoKICAgICAgICAgICAgICAgIHNob3dQcmV2aWV3KHRydWUpOwogICAgICAgICAgICAgICAgc29ydFRhYmxlKDApOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICAgICBDT0xVTU5fVE9fU09SVCA9IC0xOwogICAgICAgICAgICAgICAgc29ydFRhYmxlKDApOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgfQogICAgICAgIHNob3dFbGVtZW50KCJsb2FkaW5nIiwgZmFsc2UpOwogICAgfQp9CmZ1bmN0aW9uIFBhZ2VSZWFkeSgpIHsKICAgIGxldCBzZXJ2ZXIgPSBuZXcgU2VydmVyKCJnZXRTZXJ2ZXJDb25maWciKTsKICAgIHNlcnZlci5yZXF1ZXN0KHt9KTsKICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJyZXNpemUiLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgY2FsY3VsYXRlV3JhcHBlckhlaWdodCgpOwogICAgfSwgdHJ1ZSk7CiAgICBzZXRJbnRlcnZhbChmdW5jdGlvbiAoKSB7CiAgICAgICAgdXBkYXRlTG9nKCk7CiAgICB9LCAxMDAwMCk7CiAgICByZXR1cm47Cn0KZnVuY3Rpb24gY3JlYXRlTGF5b3V0KCkgewogICAgLy8gQ2xpZW50IEluZm8KICAgIGxldCBvYmogPSBTRVJWRVJbImNsaWVudEluZm8iXTsKICAgIGxldCBrZXlzID0gZ2V0T3duT2JqUHJvcHMob2JqKTsKICAgIGZvciAodmFyIGkgPSAwOyBpIDwga2V5cy5sZW5ndGg7IGkrKykgewogICAgICAgIGlmIChkb2N1bWVudC5nZXRFbGVtZW50QnlJZChrZXlzW2ldKSkgewogICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChrZXlzW2ldKS5pbm5lckhUTUwgPSBvYmpba2V5c1tpXV07CiAgICAgICAgICAgIGlmIChsb2NhdGlvbi5wcm90b2NvbCA9PT0gJ2h0dHBzOicpIHsKICAgICAgICAgICAgICAgIGlmIChrZXlzW2ldID09PSAieGVwZy11cmwiIHx8IGtleXNbaV0gPT09ICJtM3UtdXJsIiB8fCBrZXlzW2ldID09PSAiRFZSIikgewogICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGtleXNbaV0pLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgZnVuY3Rpb24gKGV2ZW50KSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHRhcmdldCA9IGV2ZW50LnRhcmdldDsKICAgICAgICAgICAgICAgICAgICAgICAgbmF2aWdhdG9yLmNsaXBib2FyZC53cml0ZVRleHQodGFyZ2V0LmlubmVyVGV4dC5zcGxpdCgiICIpWzBdKS50aGVuKCgpID0+IHsgfSk7CiAgICAgICAgICAgICAgICAgICAgfSwgZmFsc2UpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQogICAgaWYgKCFkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibWFpbi1tZW51IikpIHsKICAgICAgICByZXR1cm47CiAgICB9CiAgICAvLyBDcmVhdGUgbWVudQogICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm1haW4tbWVudSIpLmlubmVySFRNTCA9ICIiOwogICAgZm9yIChsZXQgaSA9IDA7IGkgPCBtZW51SXRlbXMubGVuZ3RoOyBpKyspIHsKICAgICAgICBtZW51SXRlbXNbaV0uaWQgPSBpOwogICAgICAgIHN3aXRjaCAobWVudUl0ZW1zW2ldWyJtZW51S2V5Il0pIHsKICAgICAgICAgICAgY2FzZSAidXNlcnMiOgogICAgICAgICAgICBjYXNlICJsb2dvdXQiOgogICAgICAgICAgICAgICAgaWYgKFNFUlZFUlsic2V0dGluZ3MiXVsiYXV0aGVudGljYXRpb24ud2ViIl0gPT0gdHJ1ZSkgewogICAgICAgICAgICAgICAgICAgIG1lbnVJdGVtc1tpXS5jcmVhdGVJdGVtKCk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAibWFwcGluZyI6CiAgICAgICAgICAgIGNhc2UgInhtbHR2IjoKICAgICAgICAgICAgICAgIGlmIChTRVJWRVJbImNsaWVudEluZm8iXVsiZXBnU291cmNlIl0gPT0gIlhFUEciKSB7CiAgICAgICAgICAgICAgICAgICAgbWVudUl0ZW1zW2ldLmNyZWF0ZUl0ZW0oKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAgICAgbWVudUl0ZW1zW2ldLmNyZWF0ZUl0ZW0oKTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgIH0KICAgIH0KICAgIHJldHVybjsKfQpmdW5jdGlvbiBvcGVuVGhpc01lbnUoZWxlbWVudCkgewogICAgbGV0IGlkID0gZWxlbWVudC5pZDsKICAgIGxldCBjb250ZW50ID0gbmV3IFNob3dDb250ZW50KGlkKTsKICAgIGNvbnRlbnQuc2hvdygpOwogICAgY2FsY3VsYXRlV3JhcHBlckhlaWdodCgpOwogICAgcmV0dXJuOwp9CmNsYXNzIFBvcHVwV2luZG93IHsKICAgIGNvbnN0cnVjdG9yKCkgewogICAgICAgIHRoaXMuRG9jdW1lbnRJRCA9ICJwb3B1cC1jdXN0b20iOwogICAgICAgIHRoaXMuSW50ZXJhY3Rpb25JRCA9ICJpbnRlcmFjdGlvbiI7CiAgICAgICAgdGhpcy5kb2MgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCh0aGlzLkRvY3VtZW50SUQpOwogICAgfQogICAgY3JlYXRlVGl0bGUodGl0bGUpIHsKICAgICAgICBsZXQgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOwogICAgICAgIHRkLmNsYXNzTmFtZSA9ICJsZWZ0IjsKICAgICAgICB0ZC5pbm5lckhUTUwgPSB0aXRsZSArICI6IjsKICAgICAgICByZXR1cm4gdGQ7CiAgICB9CiAgICBjcmVhdGVDb250ZW50KGVsZW1lbnQpIHsKICAgICAgICBsZXQgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJURCIpOwogICAgICAgIHRkLmFwcGVuZENoaWxkKGVsZW1lbnQpOwogICAgICAgIHJldHVybiB0ZDsKICAgIH0KICAgIGNyZWF0ZUludGVyYWN0aW9uKCkgewogICAgICAgIGxldCBkaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsKICAgICAgICBkaXYuc2V0QXR0cmlidXRlKCJpZCIsICJwb3B1cC1pbnRlcmFjdGlvbiIpOwogICAgICAgIGRpdi5jbGFzc05hbWUgPSAiaW50ZXJhY3Rpb24iOwogICAgICAgIHRoaXMuZG9jLmFwcGVuZENoaWxkKGRpdik7CiAgICB9Cn0KY2xhc3MgUG9wdXBDb250ZW50IGV4dGVuZHMgUG9wdXBXaW5kb3cgewogICAgY29uc3RydWN0b3IoKSB7CiAgICAgICAgc3VwZXIoLi4uYXJndW1lbnRzKTsKICAgICAgICB0aGlzLnRhYmxlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEFCTEUiKTsKICAgIH0KICAgIGNyZWF0ZUhlYWRsaW5lKGhlYWRsaW5lKSB7CiAgICAgICAgdGhpcy5kb2MuaW5uZXJIVE1MID0gIiI7CiAgICAgICAgdmFyIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJIMyIpOwogICAgICAgIGVsZW1lbnQuaW5uZXJIVE1MID0gaGVhZGxpbmUudG9VcHBlckNhc2UoKTsKICAgICAgICB0aGlzLmRvYy5hcHBlbmRDaGlsZChlbGVtZW50KTsKICAgICAgICAvLyBDcmVhdGUgdGFibGUKICAgICAgICB0aGlzLnRhYmxlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiVEFCTEUiKTsKICAgICAgICB0aGlzLmRvYy5hcHBlbmRDaGlsZCh0aGlzLnRhYmxlKTsKICAgIH0KICAgIGFwcGVuZFJvdyh0aXRsZSwgZWxlbWVudCkgewogICAgICAgIGxldCB0ciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlRSIik7CiAgICAgICAgLy8gVGl0bGUKICAgICAgICBpZiAodGl0bGUubGVuZ3RoICE9IDApIHsKICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQodGhpcy5jcmVhdGVUaXRsZSh0aXRsZSkpOwogICAgICAgIH0KICAgICAgICAvLyBDb250ZW50CiAgICAgICAgdHIuYXBwZW5kQ2hpbGQodGhpcy5jcmVhdGVDb250ZW50KGVsZW1lbnQpKTsKICAgICAgICB0aGlzLnRhYmxlLmFwcGVuZENoaWxkKHRyKTsKICAgIH0KICAgIGNyZWF0ZUlucHV0KHR5cGUsIG5hbWUsIHZhbHVlKSB7CiAgICAgICAgbGV0IGlucHV0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiSU5QVVQiKTsKICAgICAgICBpZiAodmFsdWUgPT0gdW5kZWZpbmVkKSB7CiAgICAgICAgICAgIHZhbHVlID0gIiI7CiAgICAgICAgfQogICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgidHlwZSIsIHR5cGUpOwogICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgibmFtZSIsIG5hbWUpOwogICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgidmFsdWUiLCB2YWx1ZSk7CiAgICAgICAgcmV0dXJuIGlucHV0OwogICAgfQogICAgY3JlYXRlQ2hlY2tib3gobmFtZSkgewogICAgICAgIGxldCBpbnB1dCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIklOUFVUIik7CiAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJ0eXBlIiwgImNoZWNrYm94Iik7CiAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJuYW1lIiwgbmFtZSk7CiAgICAgICAgcmV0dXJuIGlucHV0OwogICAgfQogICAgLy8gQ3JlYXRlcyBhIHNlbGVjdGlvbiBvZiBtdWx0aXBsZSBvcHRpb25zIHZhbHVlcyB3aXRoIHRleHQgZGVzY3JpcHRpb25zCiAgICBjcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCBzZXQsIGRiS2V5KSB7CiAgICAgICAgbGV0IHNlbGVjdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlNFTEVDVCIpOwogICAgICAgIHNlbGVjdC5zZXRBdHRyaWJ1dGUoIm5hbWUiLCBkYktleSk7CiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0ZXh0Lmxlbmd0aDsgaSsrKSB7CiAgICAgICAgICAgIGxldCBvcHRpb24gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJPUFRJT04iKTsKICAgICAgICAgICAgb3B0aW9uLnNldEF0dHJpYnV0ZSgidmFsdWUiLCB2YWx1ZXNbaV0pOwogICAgICAgICAgICBvcHRpb24uaW5uZXJUZXh0ID0gdGV4dFtpXTsKICAgICAgICAgICAgc2VsZWN0LmFwcGVuZENoaWxkKG9wdGlvbik7CiAgICAgICAgfQogICAgICAgIGlmIChzZXQgIT0gIiIpIHsKICAgICAgICAgICAgc2VsZWN0LnZhbHVlID0gc2V0OwogICAgICAgIH0KICAgICAgICBpZiAoc2V0ID09IHVuZGVmaW5lZCkgewogICAgICAgICAgICBzZWxlY3QudmFsdWUgPSB2YWx1ZXNbMF07CiAgICAgICAgfQogICAgICAgIHJldHVybiBzZWxlY3Q7CiAgICB9CiAgICBzZWxlY3RPcHRpb24oc2VsZWN0LCB2YWx1ZSkgewogICAgICAgIC8vc2VsZWN0LnNlbGVjdGVkT3B0aW9ucyA9IHZhbHVlCiAgICAgICAgbGV0IHMgPSBzZWxlY3Q7CiAgICAgICAgcy5vcHRpb25zW3Muc2VsZWN0ZWRJbmRleF0udmFsdWUgPSB2YWx1ZTsKICAgICAgICByZXR1cm4gc2VsZWN0OwogICAgfQogICAgZGVzY3JpcHRpb24odmFsdWUpIHsKICAgICAgICBsZXQgdHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJUUiIpOwogICAgICAgIGxldCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7CiAgICAgICAgbGV0IHNwYW4gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJQUkUiKTsKICAgICAgICBzcGFuLmlubmVySFRNTCA9IHZhbHVlOwogICAgICAgIHRyLmFwcGVuZENoaWxkKHRkKTsKICAgICAgICB0ci5hcHBlbmRDaGlsZCh0aGlzLmNyZWF0ZUNvbnRlbnQoc3BhbikpOwogICAgICAgIHRoaXMudGFibGUuYXBwZW5kQ2hpbGQodHIpOwogICAgfQogICAgLy8gSW50ZXJhY3Rpb24KICAgIGFkZEludGVyYWN0aW9uKGVsZW1lbnQpIHsKICAgICAgICBsZXQgaW50ZXJhY3Rpb24gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicG9wdXAtaW50ZXJhY3Rpb24iKTsKICAgICAgICBpbnRlcmFjdGlvbi5hcHBlbmRDaGlsZChlbGVtZW50KTsKICAgIH0KfQpmdW5jdGlvbiBvcGVuUG9wVXAoZGF0YVR5cGUsIGVsZW1lbnQpIHsKICAgIGxldCBkYXRhID0ge307CiAgICBsZXQgaWQ7CiAgICBzd2l0Y2ggKGVsZW1lbnQpIHsKICAgICAgICBjYXNlIHVuZGVmaW5lZDoKICAgICAgICAgICAgc3dpdGNoIChkYXRhVHlwZSkgewogICAgICAgICAgICAgICAgY2FzZSAiZ3JvdXAtdGl0bGUiOgogICAgICAgICAgICAgICAgICAgIGlmIChpZCA9PSB1bmRlZmluZWQpIHsKICAgICAgICAgICAgICAgICAgICAgICAgaWQgPSAtMTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgZGF0YSA9IGdldExvY2FsRGF0YSgiZmlsdGVyIiwgaWQpOwogICAgICAgICAgICAgICAgICAgIGRhdGFbInR5cGUiXSA9ICJncm91cC10aXRsZSI7CiAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICBjYXNlICJjdXN0b20tZmlsdGVyIjoKICAgICAgICAgICAgICAgICAgICBpZiAoaWQgPT0gdW5kZWZpbmVkKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGlkID0gLTE7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIGRhdGEgPSBnZXRMb2NhbERhdGEoImZpbHRlciIsIGlkKTsKICAgICAgICAgICAgICAgICAgICBkYXRhWyJ0eXBlIl0gPSAiY3VzdG9tLWZpbHRlciI7CiAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAgICAgICAgIGRhdGFbImlkLnByb3ZpZGVyIl0gPSAiLSI7CiAgICAgICAgICAgICAgICAgICAgZGF0YVsidHlwZSJdID0gZGF0YVR5cGU7CiAgICAgICAgICAgICAgICAgICAgaWQgPSAiLSI7CiAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgaWQgPSBlbGVtZW50LmlkOwogICAgICAgICAgICBkYXRhID0gZ2V0TG9jYWxEYXRhKGRhdGFUeXBlLCBpZCk7CiAgICAgICAgICAgIGJyZWFrOwogICAgfQogICAgbGV0IGNvbnRlbnQgPSBuZXcgUG9wdXBDb250ZW50KCk7CiAgICBzd2l0Y2ggKGRhdGFUeXBlKSB7CiAgICAgICAgY2FzZSAicGxheWxpc3QiOgogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUhlYWRsaW5lKCJ7ey5wbGF5bGlzdC5wbGF5bGlzdFR5cGUudGl0bGV9fSIpOwogICAgICAgICAgICAvLyBUeXBlCiAgICAgICAgICAgIHZhciB0ZXh0ID0gWyJNM1UiLCAiSERIb21lUnVuIl07CiAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBbImphdmFzY3JpcHQ6IG9wZW5Qb3BVcCgnbTN1JykiLCAiamF2YXNjcmlwdDogb3BlblBvcFVwKCdoZGhyJykiXTsKICAgICAgICAgICAgdmFyIHNlbGVjdCA9IGNvbnRlbnQuY3JlYXRlU2VsZWN0KHRleHQsIHZhbHVlcywgIiIsICJ0eXBlIik7CiAgICAgICAgICAgIHNlbGVjdC5zZXRBdHRyaWJ1dGUoImlkIiwgInR5cGUiKTsKICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAnamF2YXNjcmlwdDogY2hhbmdlQnV0dG9uQWN0aW9uKHRoaXMsICJuZXh0IiwgIm9uY2xpY2siKScpOyAvLyBjaGFuZ2VCdXR0b25BY3Rpb24KICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnBsYXlsaXN0LnR5cGUudGl0bGV9fSIsIHNlbGVjdCk7CiAgICAgICAgICAgIC8vIEludGVyYWN0aW9uCiAgICAgICAgICAgIGNvbnRlbnQuY3JlYXRlSW50ZXJhY3Rpb24oKTsKICAgICAgICAgICAgLy8gQWJvcnQKICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImNhbmNlbCIsICJ7ey5idXR0b24uY2FuY2VsfX0iKTsKICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IHNob3dFbGVtZW50KCJwb3B1cCIsIGZhbHNlKTsnKTsKICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7CiAgICAgICAgICAgIC8vIE5leHQKICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgIm5leHQiLCAie3suYnV0dG9uLm5leHR9fSIpOwogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJtM3UiKScpOwogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoImlkIiwgJ25leHQnKTsKICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgIGNhc2UgIm0zdSI6CiAgICAgICAgICAgIGNvbnRlbnQuY3JlYXRlSGVhZGxpbmUoZGF0YVR5cGUpOwogICAgICAgICAgICAvLyBOYW1lCiAgICAgICAgICAgIHZhciBkYktleSA9ICJuYW1lIjsKICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7CiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3sucGxheWxpc3QubmFtZS5wbGFjZWhvbGRlcn19Iik7CiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5wbGF5bGlzdC5uYW1lLnRpdGxlfX0iLCBpbnB1dCk7CiAgICAgICAgICAgIC8vIERlc2NyaXB0aW9uCiAgICAgICAgICAgIHZhciBkYktleSA9ICJkZXNjcmlwdGlvbiI7CiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOwogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnBsYXlsaXN0LmRlc2NyaXB0aW9uLnBsYWNlaG9sZGVyfX0iKTsKICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnBsYXlsaXN0LmRlc2NyaXB0aW9uLnRpdGxlfX0iLCBpbnB1dCk7CiAgICAgICAgICAgIC8vIFVSTAogICAgICAgICAgICB2YXIgZGJLZXkgPSAiZmlsZS5zb3VyY2UiOwogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsKICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5wbGF5bGlzdC5maWxlTTNVLnBsYWNlaG9sZGVyfX0iKTsKICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnBsYXlsaXN0LmZpbGVNM1UudGl0bGV9fSIsIGlucHV0KTsKICAgICAgICAgICAgLy8gVHVuZXIKICAgICAgICAgICAgaWYgKFNFUlZFUlsic2V0dGluZ3MiXVsiYnVmZmVyIl0gIT0gIi0iKSB7CiAgICAgICAgICAgICAgICB2YXIgdGV4dCA9IFtdOwogICAgICAgICAgICAgICAgdmFyIHZhbHVlcyA9IFtdOwogICAgICAgICAgICAgICAgZm9yICh2YXIgaSA9IDE7IGkgPD0gMTAwOyBpKyspIHsKICAgICAgICAgICAgICAgICAgICB0ZXh0LnB1c2goaS50b1N0cmluZygpKTsKICAgICAgICAgICAgICAgICAgICB2YWx1ZXMucHVzaChpLnRvU3RyaW5nKCkpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgdmFyIGRiS2V5ID0gInR1bmVyIjsKICAgICAgICAgICAgICAgIHZhciBzZWxlY3QgPSBjb250ZW50LmNyZWF0ZVNlbGVjdCh0ZXh0LCB2YWx1ZXMsIGRhdGFbZGJLZXldLCBkYktleSk7CiAgICAgICAgICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJvbmZvY3VzIiwgImphdmFzY3JpcHQ6IHJldHVybjsiKTsKICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5wbGF5bGlzdC50dW5lci50aXRsZX19Iiwgc2VsZWN0KTsKICAgICAgICAgICAgfQogICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgIHZhciBkYktleSA9ICJ0dW5lciI7CiAgICAgICAgICAgICAgICBpZiAoZGF0YVtkYktleV0gPT0gdW5kZWZpbmVkKSB7CiAgICAgICAgICAgICAgICAgICAgZGF0YVtkYktleV0gPSAxOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7CiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInJlYWRvbmx5IiwgInRydWUiKTsKICAgICAgICAgICAgICAgIGlucHV0LmNsYXNzTmFtZSA9ICJub3RBdmFpbGFibGUiOwogICAgICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnBsYXlsaXN0LnR1bmVyLnRpdGxlfX0iLCBpbnB1dCk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgY29udGVudC5kZXNjcmlwdGlvbigie3sucGxheWxpc3QudHVuZXIuZGVzY3JpcHRpb259fSIpOwogICAgICAgICAgICAvLyBJbnRlcmF0aW9uCiAgICAgICAgICAgIGNvbnRlbnQuY3JlYXRlSW50ZXJhY3Rpb24oKTsKICAgICAgICAgICAgLy8gRGVsZXRlCiAgICAgICAgICAgIGlmIChkYXRhWyJpZC5wcm92aWRlciJdICE9ICItIikgewogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImRlbGV0ZSIsICJ7ey5idXR0b24uZGVsZXRlfX0iKTsKICAgICAgICAgICAgICAgIGlucHV0LmNsYXNzTmFtZSA9ICJkZWxldGUiOwogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoIm0zdSIsICInICsgaWQgKyAnIiwgdHJ1ZSwgMCknKTsKICAgICAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImJhY2siLCAie3suYnV0dG9uLmJhY2t9fSIpOwogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IG9wZW5Qb3BVcCgicGxheWxpc3QiKScpOwogICAgICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgLy8gQWJvcnQKICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImNhbmNlbCIsICJ7ey5idXR0b24uY2FuY2VsfX0iKTsKICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IHNob3dFbGVtZW50KCJwb3B1cCIsIGZhbHNlKTsnKTsKICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7CiAgICAgICAgICAgIC8vIFVwZGF0ZQogICAgICAgICAgICBpZiAoZGF0YVsiaWQucHJvdmlkZXIiXSAhPSAiLSIpIHsKICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJ1cGRhdGUiLCAie3suYnV0dG9uLnVwZGF0ZX19Iik7CiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogc2F2ZVBvcHVwRGF0YSgibTN1IiwgIicgKyBpZCArICciLCBmYWxzZSwgMSknKTsKICAgICAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIC8vIFNhdmUKICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgInNhdmUiLCAie3suYnV0dG9uLnNhdmV9fSIpOwogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogc2F2ZVBvcHVwRGF0YSgibTN1IiwgIicgKyBpZCArICciLCBmYWxzZSwgMCknKTsKICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgIGNhc2UgImhkaHIiOgogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUhlYWRsaW5lKGRhdGFUeXBlKTsKICAgICAgICAgICAgLy8gTmFtZQogICAgICAgICAgICB2YXIgZGJLZXkgPSAibmFtZSI7CiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOwogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnBsYXlsaXN0Lm5hbWUucGxhY2Vob2xkZXJ9fSIpOwogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sucGxheWxpc3QubmFtZS50aXRsZX19IiwgaW5wdXQpOwogICAgICAgICAgICAvLyBEZXNjcmlwdGlvbgogICAgICAgICAgICB2YXIgZGJLZXkgPSAiZGVzY3JpcHRpb24iOwogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsKICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5wbGF5bGlzdC5kZXNjcmlwdGlvbi5wbGFjZWhvbGRlcn19Iik7CiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5wbGF5bGlzdC5kZXNjcmlwdGlvbi5wbGFjZWhvbGRlcn19IiwgaW5wdXQpOwogICAgICAgICAgICAvLyBVUkwKICAgICAgICAgICAgdmFyIGRiS2V5ID0gImZpbGUuc291cmNlIjsKICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7CiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3sucGxheWxpc3QuZmlsZUhESFIucGxhY2Vob2xkZXJ9fSIpOwogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sucGxheWxpc3QuZmlsZUhESFIudGl0bGV9fSIsIGlucHV0KTsKICAgICAgICAgICAgLy8gVHVuZXIKICAgICAgICAgICAgaWYgKFNFUlZFUlsic2V0dGluZ3MiXVsiYnVmZmVyIl0gIT0gIi0iKSB7CiAgICAgICAgICAgICAgICB2YXIgdGV4dCA9IFtdOwogICAgICAgICAgICAgICAgdmFyIHZhbHVlcyA9IFtdOwogICAgICAgICAgICAgICAgZm9yICh2YXIgaSA9IDE7IGkgPD0gMTAwOyBpKyspIHsKICAgICAgICAgICAgICAgICAgICB0ZXh0LnB1c2goaS50b1N0cmluZygpKTsKICAgICAgICAgICAgICAgICAgICB2YWx1ZXMucHVzaChpLnRvU3RyaW5nKCkpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgdmFyIGRiS2V5ID0gInR1bmVyIjsKICAgICAgICAgICAgICAgIHZhciBzZWxlY3QgPSBjb250ZW50LmNyZWF0ZVNlbGVjdCh0ZXh0LCB2YWx1ZXMsIGRhdGFbZGJLZXldLCBkYktleSk7CiAgICAgICAgICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJvbmZvY3VzIiwgImphdmFzY3JpcHQ6IHJldHVybjsiKTsKICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5wbGF5bGlzdC50dW5lci50aXRsZX19Iiwgc2VsZWN0KTsKICAgICAgICAgICAgfQogICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgIHZhciBkYktleSA9ICJ0dW5lciI7CiAgICAgICAgICAgICAgICBpZiAoZGF0YVtkYktleV0gPT0gdW5kZWZpbmVkKSB7CiAgICAgICAgICAgICAgICAgICAgZGF0YVtkYktleV0gPSAxOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7CiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInJlYWRvbmx5IiwgInRydWUiKTsKICAgICAgICAgICAgICAgIGlucHV0LmNsYXNzTmFtZSA9ICJub3RBdmFpbGFibGUiOwogICAgICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnBsYXlsaXN0LnR1bmVyLnRpdGxlfX0iLCBpbnB1dCk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgY29udGVudC5kZXNjcmlwdGlvbigie3sucGxheWxpc3QudHVuZXIuZGVzY3JpcHRpb259fSIpOwogICAgICAgICAgICAvLyBJbnRlcmFjdGlvbgogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUludGVyYWN0aW9uKCk7CiAgICAgICAgICAgIC8vIERlbGV0ZQogICAgICAgICAgICBpZiAoZGF0YVsiaWQucHJvdmlkZXIiXSAhPSAiLSIpIHsKICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJkZWxldGUiLCAie3suYnV0dG9uLmRlbGV0ZX19Iik7CiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogc2F2ZVBvcHVwRGF0YSgiaGRociIsICInICsgaWQgKyAnIiwgdHJ1ZSwgMCknKTsKICAgICAgICAgICAgICAgIGlucHV0LmNsYXNzTmFtZSA9ICJkZWxldGUiOwogICAgICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAiYmFjayIsICJ7ey5idXR0b24uYmFja319Iik7CiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogb3BlblBvcFVwKCJwbGF5bGlzdCIpJyk7CiAgICAgICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsKICAgICAgICAgICAgfQogICAgICAgICAgICAvLyBBYm9ydAogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAiY2FuY2VsIiwgInt7LmJ1dHRvbi5jYW5jZWx9fSIpOwogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogc2hvd0VsZW1lbnQoInBvcHVwIiwgZmFsc2UpOycpOwogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsKICAgICAgICAgICAgLy8gVXBkYXRlCiAgICAgICAgICAgIGlmIChkYXRhWyJpZC5wcm92aWRlciJdICE9ICItIikgewogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgInVwZGF0ZSIsICJ7ey5idXR0b24udXBkYXRlfX0iKTsKICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBzYXZlUG9wdXBEYXRhKCJoZGhyIiwgIicgKyBpZCArICciLCBmYWxzZSwgMSknKTsKICAgICAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIC8vIFNhdmUKICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgInNhdmUiLCAie3suYnV0dG9uLnNhdmV9fSIpOwogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogc2F2ZVBvcHVwRGF0YSgiaGRociIsICInICsgaWQgKyAnIiwgZmFsc2UsIDApJyk7CiAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOwogICAgICAgICAgICBicmVhazsKICAgICAgICBjYXNlICJmaWx0ZXIiOgogICAgICAgICAgICBjb250ZW50LmNyZWF0ZUhlYWRsaW5lKGRhdGFUeXBlKTsKICAgICAgICAgICAgLy8gVHlwZQogICAgICAgICAgICB2YXIgZGJLZXkgPSAidHlwZSI7CiAgICAgICAgICAgIHZhciB0ZXh0ID0gWyJNM1U6ICIgKyAie3suZmlsdGVyLnR5cGUuZ3JvdXBUaXRsZX19IiwgInhUZVZlOiAiICsgInt7LmZpbHRlci50eXBlLmN1c3RvbUZpbHRlcn19Il07CiAgICAgICAgICAgIHZhciB2YWx1ZXMgPSBbImphdmFzY3JpcHQ6IG9wZW5Qb3BVcCgnZ3JvdXAtdGl0bGUnKSIsICJqYXZhc2NyaXB0OiBvcGVuUG9wVXAoJ2N1c3RvbS1maWx0ZXInKSJdOwogICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCAiamF2YXNjcmlwdDogb3BlblBvcFVwKCdncm91cC10aXRsZScpIiwgZGJLZXkpOwogICAgICAgICAgICBzZWxlY3Quc2V0QXR0cmlidXRlKCJpZCIsIGlkKTsKICAgICAgICAgICAgc2VsZWN0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAnamF2YXNjcmlwdDogY2hhbmdlQnV0dG9uQWN0aW9uKHRoaXMsICJuZXh0IiwgIm9uY2xpY2siKTsnKTsgLy8gY2hhbmdlQnV0dG9uQWN0aW9uCiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5maWx0ZXIudHlwZS50aXRsZX19Iiwgc2VsZWN0KTsKICAgICAgICAgICAgLy8gSW50ZXJhY3Rpb24KICAgICAgICAgICAgY29udGVudC5jcmVhdGVJbnRlcmFjdGlvbigpOwogICAgICAgICAgICAvLyBBYm9ydAogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAiY2FuY2VsIiwgInt7LmJ1dHRvbi5jYW5jZWx9fSIpOwogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogc2hvd0VsZW1lbnQoInBvcHVwIiwgZmFsc2UpOycpOwogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsKICAgICAgICAgICAgLy8gTmV4dAogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAibmV4dCIsICJ7ey5idXR0b24ubmV4dH19Iik7CiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBvcGVuUG9wVXAoImdyb3VwLXRpdGxlIiknKTsKICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJpZCIsICduZXh0Jyk7CiAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOwogICAgICAgICAgICBicmVhazsKICAgICAgICBjYXNlICJjdXN0b20tZmlsdGVyIjoKICAgICAgICBjYXNlICJncm91cC10aXRsZSI6CiAgICAgICAgICAgIHN3aXRjaCAoZGF0YVR5cGUpIHsKICAgICAgICAgICAgICAgIGNhc2UgImN1c3RvbS1maWx0ZXIiOgogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuY3JlYXRlSGVhZGxpbmUoInt7LmZpbHRlci5jdXN0b219fSIgKyAiIEZpbHRlciIpOwogICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgY2FzZSAiZ3JvdXAtdGl0bGUiOgogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuY3JlYXRlSGVhZGxpbmUoInt7LmZpbHRlci5ncm91cH19IiArICIgRmlsdGVyIik7CiAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgLy8gTmFtZSAgICAgIAogICAgICAgICAgICB2YXIgZGJLZXkgPSAibmFtZSI7CiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOwogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LmZpbHRlci5uYW1lLnBsYWNlaG9sZGVyfX0iKTsKICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LmZpbHRlci5uYW1lLnRpdGxlfX0iLCBpbnB1dCk7CiAgICAgICAgICAgIC8vIERlc2NyaXB0aW9uCiAgICAgICAgICAgIHZhciBkYktleSA9ICJkZXNjcmlwdGlvbiI7CiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOwogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LmZpbHRlci5kZXNjcmlwdGlvbi5wbGFjZWhvbGRlcn19Iik7CiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5maWx0ZXIuZGVzY3JpcHRpb24udGl0bGV9fSIsIGlucHV0KTsKICAgICAgICAgICAgLy8gVHlwZQogICAgICAgICAgICB2YXIgZGJLZXkgPSAidHlwZSI7CiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImhpZGRlbiIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7CiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCIiLCBpbnB1dCk7CiAgICAgICAgICAgIHZhciBmaWx0ZXJUeXBlID0gZGF0YVtkYktleV07CiAgICAgICAgICAgIHN3aXRjaCAoZmlsdGVyVHlwZSkgewogICAgICAgICAgICAgICAgY2FzZSAiY3VzdG9tLWZpbHRlciI6CiAgICAgICAgICAgICAgICAgICAgLy8gQ2FzZSBzZW5zaXRpdmUKICAgICAgICAgICAgICAgICAgICB2YXIgZGJLZXkgPSAiY2FzZVNlbnNpdGl2ZSI7CiAgICAgICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChkYktleSk7CiAgICAgICAgICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGFbZGJLZXldOwogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5maWx0ZXIuY2FzZVNlbnNpdGl2ZS50aXRsZX19IiwgaW5wdXQpOwogICAgICAgICAgICAgICAgICAgIC8vIEZpbHRlciBSdWxlIChDdXN0b20pCiAgICAgICAgICAgICAgICAgICAgdmFyIGRiS2V5ID0gImZpbHRlciI7CiAgICAgICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7CiAgICAgICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5maWx0ZXIuZmlsdGVyUnVsZS5wbGFjZWhvbGRlcn19Iik7CiAgICAgICAgICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LmZpbHRlci5maWx0ZXJSdWxlLnRpdGxlfX0iLCBpbnB1dCk7CiAgICAgICAgICAgICAgICAgICAgLy8gU3RhcnRpbmcgQ2hhbm5lbCBOdW1iZXIgTWFwcGluZwogICAgICAgICAgICAgICAgICAgIHZhciBkYktleSA9ICJzdGFydGluZ0NoYW5uZWwiOwogICAgICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOwogICAgICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3suZmlsdGVyLnN0YXJ0aW5nQ2hhbm5lbC5wbGFjZWhvbGRlcn19Iik7CiAgICAgICAgICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LmZpbHRlci5zdGFydGluZ0NoYW5uZWwudGl0bGV9fSIsIGlucHV0KTsKICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgIGNhc2UgImdyb3VwLXRpdGxlIjoKICAgICAgICAgICAgICAgICAgICAvL2FsZXJ0KGRiS2V5ICsgIiAiICsgZmlsdGVyVHlwZSkKICAgICAgICAgICAgICAgICAgICAvLyBGaWx0ZXIgYmFzZWQgb24gdGhlIGdyb3VwcyBpbiB0aGUgTTNVCiAgICAgICAgICAgICAgICAgICAgdmFyIGRiS2V5ID0gImZpbHRlciI7CiAgICAgICAgICAgICAgICAgICAgdmFyIGdyb3Vwc00zVSA9IGdldExvY2FsRGF0YSgibTN1R3JvdXBzIiwgIiIpOwogICAgICAgICAgICAgICAgICAgIHZhciB0ZXh0ID0gZ3JvdXBzTTNVWyJ0ZXh0Il07CiAgICAgICAgICAgICAgICAgICAgdmFyIHZhbHVlcyA9IGdyb3Vwc00zVVsidmFsdWUiXTsKICAgICAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ID0gY29udGVudC5jcmVhdGVTZWxlY3QodGV4dCwgdmFsdWVzLCBkYXRhW2RiS2V5XSwgZGJLZXkpOwogICAgICAgICAgICAgICAgICAgIHNlbGVjdC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7CiAgICAgICAgICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LmZpbHRlci5maWx0ZXJHcm91cC50aXRsZX19Iiwgc2VsZWN0KTsKICAgICAgICAgICAgICAgICAgICBjb250ZW50LmRlc2NyaXB0aW9uKCJ7ey5maWx0ZXIuZmlsdGVyR3JvdXAuZGVzY3JpcHRpb259fSIpOwogICAgICAgICAgICAgICAgICAgIC8vIENhc2Ugc2Vuc2V0aXZlCiAgICAgICAgICAgICAgICAgICAgdmFyIGRiS2V5ID0gImNhc2VTZW5zaXRpdmUiOwogICAgICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goZGJLZXkpOwogICAgICAgICAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhW2RiS2V5XTsKICAgICAgICAgICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3suZmlsdGVyLmNhc2VTZW5zaXRpdmUudGl0bGV9fSIsIGlucHV0KTsKICAgICAgICAgICAgICAgICAgICB2YXIgZGJLZXkgPSAiaW5jbHVkZSI7CiAgICAgICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7CiAgICAgICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5maWx0ZXIuaW5jbHVkZS5wbGFjZWhvbGRlcn19Iik7CiAgICAgICAgICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LmZpbHRlci5pbmNsdWRlLnRpdGxlfX0iLCBpbnB1dCk7CiAgICAgICAgICAgICAgICAgICAgY29udGVudC5kZXNjcmlwdGlvbigie3suZmlsdGVyLmluY2x1ZGUuZGVzY3JpcHRpb259fSIpOwogICAgICAgICAgICAgICAgICAgIHZhciBkYktleSA9ICJleGNsdWRlIjsKICAgICAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsKICAgICAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LmZpbHRlci5leGNsdWRlLnBsYWNlaG9sZGVyfX0iKTsKICAgICAgICAgICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3suZmlsdGVyLmV4Y2x1ZGUudGl0bGV9fSIsIGlucHV0KTsKICAgICAgICAgICAgICAgICAgICBjb250ZW50LmRlc2NyaXB0aW9uKCJ7ey5maWx0ZXIuZXhjbHVkZS5kZXNjcmlwdGlvbn19Iik7CiAgICAgICAgICAgICAgICAgICAgLy8gUHJlc2VydmUgTTNVIFBsYXlsaXN0IENoYW5uZWwgTWFwcGluZwogICAgICAgICAgICAgICAgICAgIHZhciBkYktleSA9ICJwcmVzZXJ2ZU1hcHBpbmciOwogICAgICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goZGJLZXkpOwogICAgICAgICAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhW2RiS2V5XTsKICAgICAgICAgICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3suZmlsdGVyLnByZXNlcnZlTWFwcGluZy50aXRsZX19IiwgaW5wdXQpOwogICAgICAgICAgICAgICAgICAgIC8vIFN0YXJ0aW5nIENoYW5uZWwgTnVtYmVyIE1hcHBpbmcKICAgICAgICAgICAgICAgICAgICB2YXIgZGJLZXkgPSAic3RhcnRpbmdDaGFubmVsIjsKICAgICAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsKICAgICAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LmZpbHRlci5zdGFydGluZ0NoYW5uZWwucGxhY2Vob2xkZXJ9fSIpOwogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5maWx0ZXIuc3RhcnRpbmdDaGFubmVsLnRpdGxlfX0iLCBpbnB1dCk7CiAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICB9CiAgICAgICAgICAgIC8vIEludGVyYWN0aW9uCiAgICAgICAgICAgIGNvbnRlbnQuY3JlYXRlSW50ZXJhY3Rpb24oKTsKICAgICAgICAgICAgLy8gRGVsZXRlCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJkZWxldGUiLCAie3suYnV0dG9uLmRlbGV0ZX19Iik7CiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBzYXZlUG9wdXBEYXRhKCJmaWx0ZXIiLCAiJyArIGlkICsgJyIsIHRydWUsIDApJyk7CiAgICAgICAgICAgIGlucHV0LmNsYXNzTmFtZSA9ICJkZWxldGUiOwogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsKICAgICAgICAgICAgLy8gQWJvcnQKICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgImNhbmNlbCIsICJ7ey5idXR0b24uY2FuY2VsfX0iKTsKICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IHNob3dFbGVtZW50KCJwb3B1cCIsIGZhbHNlKTsnKTsKICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7CiAgICAgICAgICAgIC8vIFNhdmUKICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgInNhdmUiLCAie3suYnV0dG9uLnNhdmV9fSIpOwogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogc2F2ZVBvcHVwRGF0YSgiZmlsdGVyIiwgIicgKyBpZCArICciLCBmYWxzZSwgMCknKTsKICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgIGNhc2UgInhtbHR2IjoKICAgICAgICAgICAgY29udGVudC5jcmVhdGVIZWFkbGluZShkYXRhVHlwZSk7CiAgICAgICAgICAgIC8vIE5hbWUKICAgICAgICAgICAgdmFyIGRiS2V5ID0gIm5hbWUiOwogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsKICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey54bWx0di5uYW1lLnBsYWNlaG9sZGVyfX0iKTsKICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnhtbHR2Lm5hbWUudGl0bGV9fSIsIGlucHV0KTsKICAgICAgICAgICAgLy8gRGVzY3JpcHRpb24KICAgICAgICAgICAgdmFyIGRiS2V5ID0gImRlc2NyaXB0aW9uIjsKICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7CiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3sueG1sdHYuZGVzY3JpcHRpb24ucGxhY2Vob2xkZXJ9fSIpOwogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sueG1sdHYuZGVzY3JpcHRpb24udGl0bGV9fSIsIGlucHV0KTsKICAgICAgICAgICAgLy8gVVJMCiAgICAgICAgICAgIHZhciBkYktleSA9ICJmaWxlLnNvdXJjZSI7CiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOwogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7LnhtbHR2LmZpbGVYTUxUVi5wbGFjZWhvbGRlcn19Iik7CiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey54bWx0di5maWxlWE1MVFYudGl0bGV9fSIsIGlucHV0KTsKICAgICAgICAgICAgLy8gSW50ZXJhY3Rpb24KICAgICAgICAgICAgY29udGVudC5jcmVhdGVJbnRlcmFjdGlvbigpOwogICAgICAgICAgICAvLyBEZWxldGUKICAgICAgICAgICAgaWYgKGRhdGFbImlkLnByb3ZpZGVyIl0gIT0gIi0iKSB7CiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAiZGVsZXRlIiwgInt7LmJ1dHRvbi5kZWxldGV9fSIpOwogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoInhtbHR2IiwgIicgKyBpZCArICciLCB0cnVlLCAwKScpOwogICAgICAgICAgICAgICAgaW5wdXQuY2xhc3NOYW1lID0gImRlbGV0ZSI7CiAgICAgICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsKICAgICAgICAgICAgfQogICAgICAgICAgICAvLyBBYm9ydAogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAiY2FuY2VsIiwgInt7LmJ1dHRvbi5jYW5jZWx9fSIpOwogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2xpY2siLCAnamF2YXNjcmlwdDogc2hvd0VsZW1lbnQoInBvcHVwIiwgZmFsc2UpOycpOwogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsKICAgICAgICAgICAgLy8gVXBkYXRlCiAgICAgICAgICAgIGlmIChkYXRhWyJpZC5wcm92aWRlciJdICE9ICItIikgewogICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgiYnV0dG9uIiwgInVwZGF0ZSIsICJ7ey5idXR0b24udXBkYXRlfX0iKTsKICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgnb25jbGljaycsICdqYXZhc2NyaXB0OiBzYXZlUG9wdXBEYXRhKCJ4bWx0diIsICInICsgaWQgKyAnIiwgZmFsc2UsIDEpJyk7CiAgICAgICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsKICAgICAgICAgICAgfQogICAgICAgICAgICAvLyBTYXZlCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJzYXZlIiwgInt7LmJ1dHRvbi5zYXZlfX0iKTsKICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoInhtbHR2IiwgIicgKyBpZCArICciLCBmYWxzZSwgMCknKTsKICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgIGNhc2UgInVzZXJzIjoKICAgICAgICAgICAgY29udGVudC5jcmVhdGVIZWFkbGluZSgie3subWFpbk1lbnUuaXRlbS51c2Vyc319Iik7CiAgICAgICAgICAgIC8vIFVzZXIgbmFtZQogICAgICAgICAgICB2YXIgZGJLZXkgPSAidXNlcm5hbWUiOwogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsKICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey51c2Vycy51c2VybmFtZS5wbGFjZWhvbGRlcn19Iik7CiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey51c2Vycy51c2VybmFtZS50aXRsZX19IiwgaW5wdXQpOwogICAgICAgICAgICAvLyBOZXcgUGFyc3N3b3JkCiAgICAgICAgICAgIHZhciBkYktleSA9ICJwYXNzd29yZCI7CiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInBhc3N3b3JkIiwgZGJLZXksICIiKTsKICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey51c2Vycy5wYXNzd29yZC5wbGFjZWhvbGRlcn19Iik7CiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey51c2Vycy5wYXNzd29yZC50aXRsZX19IiwgaW5wdXQpOwogICAgICAgICAgICAvLyBDb25maXJtYXRpb24KICAgICAgICAgICAgdmFyIGRiS2V5ID0gImNvbmZpcm0iOwogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJwYXNzd29yZCIsIGRiS2V5LCAiIik7CiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3sudXNlcnMuY29uZmlybS5wbGFjZWhvbGRlcn19Iik7CiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey51c2Vycy5jb25maXJtLnRpdGxlfX0iLCBpbnB1dCk7CiAgICAgICAgICAgIC8vIEF1dGhlbnRpY2F0aW9uIFdFQgogICAgICAgICAgICB2YXIgZGJLZXkgPSAiYXV0aGVudGljYXRpb24ud2ViIjsKICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChkYktleSk7CiAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhW2RiS2V5XTsKICAgICAgICAgICAgaWYgKGRhdGFbImRlZmF1bHRVc2VyIl0gPT0gdHJ1ZSkgewogICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgImphdmFzY3JpcHQ6IHJldHVybiBmYWxzZSIpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey51c2Vycy53ZWIudGl0bGV9fSIsIGlucHV0KTsKICAgICAgICAgICAgLy8gQXV0aGVudGljYXRpb24gUE1TCiAgICAgICAgICAgIHZhciBkYktleSA9ICJhdXRoZW50aWNhdGlvbi5wbXMiOwogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KGRiS2V5KTsKICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGFbZGJLZXldOwogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sudXNlcnMucG1zLnRpdGxlfX0iLCBpbnB1dCk7CiAgICAgICAgICAgIC8vIEF1dGhlbnRpY2F0aW9uIE0zVQogICAgICAgICAgICB2YXIgZGJLZXkgPSAiYXV0aGVudGljYXRpb24ubTN1IjsKICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChkYktleSk7CiAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhW2RiS2V5XTsKICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7LnVzZXJzLm0zdS50aXRsZX19IiwgaW5wdXQpOwogICAgICAgICAgICAvLyBBdXRoZW50aWNhdGlvbiBYTUwKICAgICAgICAgICAgdmFyIGRiS2V5ID0gImF1dGhlbnRpY2F0aW9uLnhtbCI7CiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlQ2hlY2tib3goZGJLZXkpOwogICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YVtkYktleV07CiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey51c2Vycy54bWwudGl0bGV9fSIsIGlucHV0KTsKICAgICAgICAgICAgLy8gQXV0aGVudGljYXRpb24gQVBJCiAgICAgICAgICAgIHZhciBkYktleSA9ICJhdXRoZW50aWNhdGlvbi5hcGkiOwogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KGRiS2V5KTsKICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGFbZGJLZXldOwogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3sudXNlcnMuYXBpLnRpdGxlfX0iLCBpbnB1dCk7CiAgICAgICAgICAgIC8vIEludGVyYWN0aW9uCiAgICAgICAgICAgIGNvbnRlbnQuY3JlYXRlSW50ZXJhY3Rpb24oKTsKICAgICAgICAgICAgLy8gRGVsZXRlCiAgICAgICAgICAgIGlmIChkYXRhWyJkZWZhdWx0VXNlciJdICE9IHRydWUgJiYgaWQgIT0gIi0iKSB7CiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAiZGVsZXRlIiwgInt7LmJ1dHRvbi5kZWxldGV9fSIpOwogICAgICAgICAgICAgICAgaW5wdXQuY2xhc3NOYW1lID0gImRlbGV0ZSI7CiAgICAgICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoJ29uY2xpY2snLCAnamF2YXNjcmlwdDogc2F2ZVBvcHVwRGF0YSgiJyArIGRhdGFUeXBlICsgJyIsICInICsgaWQgKyAnIiwgdHJ1ZSwgMCknKTsKICAgICAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIC8vIEFib3J0CiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJjYW5jZWwiLCAie3suYnV0dG9uLmNhbmNlbH19Iik7CiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBzaG93RWxlbWVudCgicG9wdXAiLCBmYWxzZSk7Jyk7CiAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOwogICAgICAgICAgICAvLyBTYXZlCiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJzYXZlIiwgInt7LmJ1dHRvbi5zYXZlfX0iKTsKICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IHNhdmVQb3B1cERhdGEoIicgKyBkYXRhVHlwZSArICciLCAiJyArIGlkICsgJyIsICJmYWxzZSIpOycpOwogICAgICAgICAgICBjb250ZW50LmFkZEludGVyYWN0aW9uKGlucHV0KTsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgY2FzZSAibWFwcGluZyI6CiAgICAgICAgICAgIGNvbnRlbnQuY3JlYXRlSGVhZGxpbmUoInt7Lm1haW5NZW51Lml0ZW0ubWFwcGluZ319Iik7CiAgICAgICAgICAgIC8vIEFjdGl2ZQogICAgICAgICAgICB2YXIgZGJLZXkgPSAieC1hY3RpdmUiOwogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUNoZWNrYm94KGRiS2V5KTsKICAgICAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGRhdGFbZGJLZXldOwogICAgICAgICAgICBpbnB1dC5pZCA9ICJhY3RpdmUiOwogICAgICAgICAgICAvL2lucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKQogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRvZ2dsZUNoYW5uZWxTdGF0dXMoJyIgKyBpZCArICInLCB0aGlzKSIpOwogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3subWFwcGluZy5hY3RpdmUudGl0bGV9fSIsIGlucHV0KTsKICAgICAgICAgICAgLy8gQ2hhbm5lbCBuYW1lCiAgICAgICAgICAgIHZhciBkYktleSA9ICJ4LW5hbWUiOwogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsKICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOwogICAgICAgICAgICBpZiAoQlVMS19FRElUID09IHRydWUpIHsKICAgICAgICAgICAgICAgIGlucHV0LnN0eWxlLmJvcmRlciA9ICJzb2xpZCAxcHggcmVkIjsKICAgICAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicmVhZG9ubHkiLCAidHJ1ZSIpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5tYXBwaW5nLmNoYW5uZWxOYW1lLnRpdGxlfX0iLCBpbnB1dCk7CiAgICAgICAgICAgIGNvbnRlbnQuZGVzY3JpcHRpb24oZGF0YVsibmFtZSJdKTsKICAgICAgICAgICAgLy8gRGVzY3JpcHRpb24KICAgICAgICAgICAgdmFyIGRiS2V5ID0gIngtZGVzY3JpcHRpb24iOwogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsKICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJwbGFjZWhvbGRlciIsICJ7ey5tYXBwaW5nLmRlc2NyaXB0aW9uLnBsYWNlaG9sZGVyfX0iKTsKICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOwogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3subWFwcGluZy5kZXNjcmlwdGlvbi50aXRsZX19IiwgaW5wdXQpOwogICAgICAgICAgICAvLyBVcGRhdGUgdGhlIGNoYW5uZWwgeC1uYW1lCiAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCJfdXVpZC5rZXkiKSkgewogICAgICAgICAgICAgICAgaWYgKGRhdGFbIl91dWlkLmtleSJdICE9ICIiKSB7CiAgICAgICAgICAgICAgICAgICAgdmFyIGRiS2V5ID0gIngtdXBkYXRlLWNoYW5uZWwtbmFtZSI7CiAgICAgICAgICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChkYktleSk7CiAgICAgICAgICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOwogICAgICAgICAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhW2RiS2V5XTsKICAgICAgICAgICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3subWFwcGluZy51cGRhdGVDaGFubmVsTmFtZS50aXRsZX19IiwgaW5wdXQpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICAgIC8vIENoYW5uZWwgbmFtZSByZWdleCBmb3IgdXBkYXRpbmcgdGhlIGNoYW5uZWwgbmFtZQogICAgICAgICAgICB2YXIgZGJLZXkgPSAidXBkYXRlLWNoYW5uZWwtbmFtZS1yZWdleCI7CiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOwogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoInBsYWNlaG9sZGVyIiwgInt7Lm1hcHBpbmcudXBkYXRlQ2hhbm5lbE5hbWVSZWdleC5wbGFjZWhvbGRlcn19Iik7CiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsKICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7Lm1hcHBpbmcudXBkYXRlQ2hhbm5lbE5hbWVSZWdleC50aXRsZX19IiwgaW5wdXQpOwogICAgICAgICAgICBjb250ZW50LmRlc2NyaXB0aW9uKCJ7ey5tYXBwaW5nLnVwZGF0ZUNoYW5uZWxOYW1lUmVnZXguZGVzY3JpcHRpb259fSIpOwogICAgICAgICAgICAvLyBDaGFubmVsIGdyb3VwIHJlZ2V4IGZvciB1cGRhdGluZyB0aGUgY2hhbm5lbCBuYW1lCiAgICAgICAgICAgIHZhciBkYktleSA9ICJ1cGRhdGUtY2hhbm5lbC1uYW1lLWJ5LWdyb3VwLXJlZ2V4IjsKICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7CiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3subWFwcGluZy51cGRhdGVDaGFubmVsTmFtZUJ5R3JvdXBSZWdleC5wbGFjZWhvbGRlcn19Iik7CiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsKICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7Lm1hcHBpbmcudXBkYXRlQ2hhbm5lbE5hbWVCeUdyb3VwUmVnZXgudGl0bGV9fSIsIGlucHV0KTsKICAgICAgICAgICAgY29udGVudC5kZXNjcmlwdGlvbigie3subWFwcGluZy51cGRhdGVDaGFubmVsTmFtZUJ5R3JvdXBSZWdleC5kZXNjcmlwdGlvbn19Iik7CiAgICAgICAgICAgIC8vIExvZ28gVVJMIChDaGFubmVsKSAKICAgICAgICAgICAgdmFyIGRiS2V5ID0gInR2Zy1sb2dvIjsKICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVJbnB1dCgidGV4dCIsIGRiS2V5LCBkYXRhW2RiS2V5XSk7CiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCciKTsKICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJpZCIsICJjaGFubmVsLWljb24iKTsKICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coInt7Lm1hcHBpbmcuY2hhbm5lbExvZ28udGl0bGV9fSIsIGlucHV0KTsKICAgICAgICAgICAgLy8gQ2hhbm5lbCBsb2dvIHVwZGF0ZQogICAgICAgICAgICB2YXIgZGJLZXkgPSAieC11cGRhdGUtY2hhbm5lbC1pY29uIjsKICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChkYktleSk7CiAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBkYXRhW2RiS2V5XTsKICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJpZCIsICJ1cGRhdGUtaWNvbiIpOwogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnOyBjaGFuZ2VDaGFubmVsTG9nbygnIiArIGlkICsgIicpOyIpOwogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3subWFwcGluZy51cGRhdGVDaGFubmVsTG9nby50aXRsZX19IiwgaW5wdXQpOwogICAgICAgICAgICAvLyBFeHBhbmQgRVBHIGNhdGVnb3J5CiAgICAgICAgICAgIHZhciBkYktleSA9ICJ4LWNhdGVnb3J5IjsKICAgICAgICAgICAgdmFyIHRleHQgPSBbIi0iLCAiS2lkcyAoRW1ieSBvbmx5KSIsICJOZXdzIiwgIk1vdmllIiwgIlNlcmllcyIsICJTcG9ydHMiXTsKICAgICAgICAgICAgdmFyIHZhbHVlcyA9IFsiIiwgIktpZHMiLCAiTmV3cyIsICJNb3ZpZSIsICJTZXJpZXMiLCAiU3BvcnRzIl07CiAgICAgICAgICAgIHZhciBzZWxlY3QgPSBjb250ZW50LmNyZWF0ZVNlbGVjdCh0ZXh0LCB2YWx1ZXMsIGRhdGFbZGJLZXldLCBkYktleSk7CiAgICAgICAgICAgIHNlbGVjdC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7CiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5tYXBwaW5nLmVwZ0NhdGVnb3J5LnRpdGxlfX0iLCBzZWxlY3QpOwogICAgICAgICAgICAvLyBNM1UgZ3JvdXAgdGl0bGUKICAgICAgICAgICAgdmFyIGRiS2V5ID0gIngtZ3JvdXAtdGl0bGUiOwogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJ0ZXh0IiwgZGJLZXksIGRhdGFbZGJLZXldKTsKICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNoYW5nZSIsICJqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJyIpOwogICAgICAgICAgICBpbnB1dC5kYXRhc2V0Lm9sZFZhbHVlID0gZGF0YVtkYktleV07CiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5tYXBwaW5nLm0zdUdyb3VwVGl0bGUudGl0bGV9fSIsIGlucHV0KTsKICAgICAgICAgICAgaWYgKGRhdGFbImdyb3VwLXRpdGxlIl0gIT0gdW5kZWZpbmVkKSB7CiAgICAgICAgICAgICAgICBjb250ZW50LmRlc2NyaXB0aW9uKGRhdGFbImdyb3VwLXRpdGxlIl0pOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGlmIChkYXRhWyJ4LXVwZGF0ZS1jaGFubmVsLWdyb3VwIl0gPT0gdHJ1ZSkgewogICAgICAgICAgICAgICAgaW5wdXQuZGlzYWJsZWQgPSB0cnVlOwogICAgICAgICAgICB9CiAgICAgICAgICAgIC8vIFVwZGF0ZSBjaGFubmVsIGdyb3VwIGNoZWNrYm94CiAgICAgICAgICAgIHZhciBkYktleSA9ICJ4LXVwZGF0ZS1jaGFubmVsLWdyb3VwIjsKICAgICAgICAgICAgdmFyIGlucHV0ID0gY29udGVudC5jcmVhdGVDaGVja2JveChkYktleSk7CiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCAiamF2YXNjcmlwdDogdG9nZ2xlR3JvdXBVcGRhdGVDYignIiArIGlkICsgIicsIHRoaXMpOyIpOwogICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZGF0YVtkYktleV07CiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kUm93KCJ7ey5tYXBwaW5nLnVwZGF0ZUNoYW5uZWxHcm91cC50aXRsZX19IiwgaW5wdXQpOwogICAgICAgICAgICBjb250ZW50LmRlc2NyaXB0aW9uKCJ7ey5tYXBwaW5nLnVwZGF0ZUNoYW5uZWxHcm91cC5kZXNjcmlwdGlvbn19Iik7CiAgICAgICAgICAgIC8vIFhNTFRWIGZpbGUKICAgICAgICAgICAgdmFyIGRiS2V5ID0gJ3gteG1sdHYtZmlsZSc7CiAgICAgICAgICAgIGNvbnN0IHhtbFR2RmlsZSA9IGRhdGFbZGJLZXldOwogICAgICAgICAgICB2YXIgeG1sVHYgPSBuZXcgWE1MVFZGaWxlKCk7CiAgICAgICAgICAgIGNvbnN0IHhtbFR2RmlsZVNlbGVjdCA9IHhtbFR2LmdldEZpbGVzKGRhdGFbZGJLZXldKTsKICAgICAgICAgICAgeG1sVHZGaWxlU2VsZWN0LnNldEF0dHJpYnV0ZSgnbmFtZScsIGRiS2V5KTsKICAgICAgICAgICAgeG1sVHZGaWxlU2VsZWN0LnNldEF0dHJpYnV0ZSgnaWQnLCAncG9wdXAteG1sdHYnKTsKICAgICAgICAgICAgeG1sVHZGaWxlU2VsZWN0LnNldEF0dHJpYnV0ZSgnb25jaGFuZ2UnLCBgamF2YXNjcmlwdDogdGhpcy5jbGFzc05hbWUgPSAnY2hhbmdlZCc7IHNldFhtbHR2Q2hhbm5lbCgnJHtpZH0nLCB0aGlzKTtgKTsKICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coJ3t7Lm1hcHBpbmcueG1sdHZGaWxlLnRpdGxlfX0nLCB4bWxUdkZpbGVTZWxlY3QpOwogICAgICAgICAgICAvLyBYTUxUViBNYXBwaW5nCiAgICAgICAgICAgIHZhciBkYktleSA9ICd4LW1hcHBpbmcnOwogICAgICAgICAgICB2YXIgeG1sVHYgPSBuZXcgWE1MVFZGaWxlKCk7CiAgICAgICAgICAgIGNvbnN0IGN1cnJlbnRYbWxUdklkID0gZGF0YVtkYktleV07CiAgICAgICAgICAgIGNvbnN0IFt4bWxUdklkQ29udGFpbmVyLCB4bWxUdklkSW5wdXQsIHhtbFR2SWREYXRhbGlzdF0gPSB4bWxUdi5uZXdYbWxUdklkUGlja2VyKHhtbFR2RmlsZSwgY3VycmVudFhtbFR2SWQpOwogICAgICAgICAgICB4bWxUdklkQ29udGFpbmVyLnNldEF0dHJpYnV0ZSgnaWQnLCAneG1sdHYtaWQtcGlja2VyLWNvbnRhaW5lcicpOwogICAgICAgICAgICB4bWxUdklkSW5wdXQuc2V0QXR0cmlidXRlKCdsaXN0JywgJ3htbHR2LWlkLXBpY2tlci1kYXRhbGlzdCcpOwogICAgICAgICAgICB4bWxUdklkSW5wdXQuc2V0QXR0cmlidXRlKCduYW1lJywgJ3gtbWFwcGluZycpOyAvLyBTaG91bGQgc3RheSB4LW1hcHBpbmcgYXMgaXQgd2lsbCBiZSB1c2VkIGluIGRvbmVQb3B1cERhdGEgdG8gbWFrZSBhIHNlcnZlciByZXF1ZXN0CiAgICAgICAgICAgIHhtbFR2SWRJbnB1dC5zZXRBdHRyaWJ1dGUoJ2lkJywgJ3htbHR2LWlkLXBpY2tlci1pbnB1dCcpOwogICAgICAgICAgICB4bWxUdklkSW5wdXQuc2V0QXR0cmlidXRlKCdvbmNoYW5nZScsIGBqYXZhc2NyaXB0OiB0aGlzLmNsYXNzTmFtZSA9ICdjaGFuZ2VkJzsgY2hlY2tYbWx0dkNoYW5uZWwoJyR7aWR9JywgdGhpcy52YWx1ZSwgJyR7eG1sVHZGaWxlfScpO2ApOwogICAgICAgICAgICB4bWxUdklkRGF0YWxpc3Quc2V0QXR0cmlidXRlKCdpZCcsICd4bWx0di1pZC1waWNrZXItZGF0YWxpc3QnKTsKICAgICAgICAgICAgY29udGVudC5hcHBlbmRSb3coJ3t7Lm1hcHBpbmcueG1sdHZDaGFubmVsLnRpdGxlfX0nLCB4bWxUdklkQ29udGFpbmVyKTsKICAgICAgICAgICAgLy8gVGltZXNoaWZ0CiAgICAgICAgICAgIHZhciBkYktleSA9ICJ4LXRpbWVzaGlmdCI7CiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoInRleHQiLCBkYktleSwgZGF0YVtkYktleV0pOwogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoIm9uY2hhbmdlIiwgImphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnIik7CiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgicGxhY2Vob2xkZXIiLCAie3subWFwcGluZy50aW1lc2hpZnQucGxhY2Vob2xkZXJ9fSIpOwogICAgICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoImlkIiwgInRpbWVzaGlmdCIpOwogICAgICAgICAgICBjb250ZW50LmFwcGVuZFJvdygie3subWFwcGluZy50aW1lc2hpZnQudGl0bGV9fSIsIGlucHV0KTsKICAgICAgICAgICAgLy8gSW50ZXJhY3Rpb24KICAgICAgICAgICAgY29udGVudC5jcmVhdGVJbnRlcmFjdGlvbigpOwogICAgICAgICAgICAvLyBVcGxvYWQgbG9nbwogICAgICAgICAgICB2YXIgaW5wdXQgPSBjb250ZW50LmNyZWF0ZUlucHV0KCJidXR0b24iLCAiY2FuY2VsIiwgInt7LmJ1dHRvbi51cGxvYWRMb2dvfX0iKTsKICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IHVwbG9hZExvZ28oKTsnKTsKICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7CiAgICAgICAgICAgIC8vIEFib3J0CiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJjYW5jZWwiLCAie3suYnV0dG9uLmNhbmNlbH19Iik7CiAgICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgib25jbGljayIsICdqYXZhc2NyaXB0OiBzaG93RWxlbWVudCgicG9wdXAiLCBmYWxzZSk7Jyk7CiAgICAgICAgICAgIGNvbnRlbnQuYWRkSW50ZXJhY3Rpb24oaW5wdXQpOwogICAgICAgICAgICAvLyBGaW5pc2hlZAogICAgICAgICAgICB2YXIgaWRzID0gW107CiAgICAgICAgICAgIGlkcyA9IGdldEFsbFNlbGVjdGVkQ2hhbm5lbHMoKTsKICAgICAgICAgICAgaWYgKGlkcy5sZW5ndGggPT0gMCkgewogICAgICAgICAgICAgICAgaWRzLnB1c2goaWQpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIHZhciBpbnB1dCA9IGNvbnRlbnQuY3JlYXRlSW5wdXQoImJ1dHRvbiIsICJzYXZlIiwgInt7LmJ1dHRvbi5kb25lfX0iKTsKICAgICAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCJvbmNsaWNrIiwgJ2phdmFzY3JpcHQ6IGRvbmVQb3B1cERhdGEoIicgKyBkYXRhVHlwZSArICciLCAiJyArIGlkcyArICciLCAiZmFsc2UiKTsnKTsKICAgICAgICAgICAgY29udGVudC5hZGRJbnRlcmFjdGlvbihpbnB1dCk7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgIGJyZWFrOwogICAgfQogICAgc2hvd1BvcFVwRWxlbWVudCgncG9wdXAtY3VzdG9tJyk7Cn0KY2xhc3MgWE1MVFZGaWxlIHsKICAgIGdldEZpbGVzKHNldCkgewogICAgICAgIGxldCBmaWxlSURzID0gZ2V0T3duT2JqUHJvcHMoU0VSVkVSWyJ4ZXBnIl1bInhtbHR2TWFwIl0pOwogICAgICAgIGxldCB2YWx1ZXMgPSBuZXcgQXJyYXkoIi0iKTsKICAgICAgICBsZXQgdGV4dCA9IG5ldyBBcnJheSgiLSIpOwogICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgZmlsZUlEcy5sZW5ndGg7IGkrKykgewogICAgICAgICAgICBpZiAoZmlsZUlEc1tpXSAhPSAieFRlVmUgRHVtbXkiKSB7CiAgICAgICAgICAgICAgICB2YWx1ZXMucHVzaChnZXRWYWx1ZUZyb21Qcm92aWRlckZpbGUoZmlsZUlEc1tpXSwgInhtbHR2IiwgImZpbGUueHRldmUiKSk7CiAgICAgICAgICAgICAgICB0ZXh0LnB1c2goZ2V0VmFsdWVGcm9tUHJvdmlkZXJGaWxlKGZpbGVJRHNbaV0sICJ4bWx0diIsICJuYW1lIikpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgdmFsdWVzLnB1c2goZmlsZUlEc1tpXSk7CiAgICAgICAgICAgICAgICB0ZXh0LnB1c2goZmlsZUlEc1tpXSk7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgbGV0IHNlbGVjdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlNFTEVDVCIpOwogICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGV4dC5sZW5ndGg7IGkrKykgewogICAgICAgICAgICB2YXIgb3B0aW9uID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiT1BUSU9OIik7CiAgICAgICAgICAgIG9wdGlvbi5zZXRBdHRyaWJ1dGUoInZhbHVlIiwgdmFsdWVzW2ldKTsKICAgICAgICAgICAgb3B0aW9uLmlubmVyVGV4dCA9IHRleHRbaV07CiAgICAgICAgICAgIHNlbGVjdC5hcHBlbmRDaGlsZChvcHRpb24pOwogICAgICAgIH0KICAgICAgICBpZiAoc2V0ICE9ICIiKSB7CiAgICAgICAgICAgIHNlbGVjdC52YWx1ZSA9IHNldDsKICAgICAgICB9CiAgICAgICAgcmV0dXJuIHNlbGVjdDsKICAgIH0KICAgIC8qKgogICAgICogQHBhcmFtIHhtbFR2RmlsZSBYTUwgZmlsZSBwYXRoIHRvIGdldCBFUEcgZnJvbS4KICAgICAqIEBwYXJhbSBjdXJyZW50WG1sVHZJZCBDdXJyZW50IFhNTFRWIElEIHRvIHNldCBpbml0aWFsIGlucHV0IHZhbHVlIHRvLgogICAgICogQHJldHVybnMgQXJyYXkgb2YsIHNlcXVlbnRpYWxseToKICAgICAqIDEpIENvbnRhaW5lciBvZiB0aGUgcGlja2VyLgogICAgICogMikgSW5wdXQgZmllbGQgdG8gdHlwZSBhdCBhbmQgZ2V0IGNob2ljZSBmcm9tLgogICAgICogMykgRGF0YWxpc3QgY29udGFpbmluZyBldmVyeSBvcHRpb24uCiAgICAgKi8KICAgIG5ld1htbFR2SWRQaWNrZXIoeG1sVHZGaWxlLCBjdXJyZW50WG1sVHZJZCkgewogICAgICAgIGNvbnN0IGNvbnRhaW5lciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOwogICAgICAgIGNvbnN0IGlucHV0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnaW5wdXQnKTsKICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoJ3R5cGUnLCAndGV4dCcpOwogICAgICAgIC8vIEluaXRpYWxseSwgc2V0IHZhbHVlIHRvICctJyBpZiBpbnB1dCBpcyBlbXB0eQogICAgICAgIGlucHV0LnZhbHVlID0gKGN1cnJlbnRYbWxUdklkKSA/IGN1cnJlbnRYbWxUdklkIDogJy0nOwogICAgICAgIC8vIFdoZW4gaW5wdXQgaXMgZm9jdXNlZCwgcmVtb3ZlICctJyBmcm9tIGl0CiAgICAgICAgaW5wdXQuYWRkRXZlbnRMaXN0ZW5lcignZm9jdXMnLCAoZXZ0KSA9PiB7CiAgICAgICAgICAgIGNvbnN0IHRhcmdldCA9IGV2dC50YXJnZXQ7CiAgICAgICAgICAgIHRhcmdldC52YWx1ZSA9ICh0YXJnZXQudmFsdWUgPT09ICctJykgPyAnJyA6IHRhcmdldC52YWx1ZTsKICAgICAgICB9KTsKICAgICAgICAvLyBXaGVuIGlucHV0IGxvc2UgZm9jdXMgb3IgdGFrZSBhIHZhbHVlLCBpZiBpdCdzIGVtcHR5LCBzZXQgdmFsdWUgdG8gJy0nCiAgICAgICAgaW5wdXQuYWRkRXZlbnRMaXN0ZW5lcignYmx1cicsIHNldEZhbGxiYWNrVmFsdWUpOwogICAgICAgIGlucHV0LmFkZEV2ZW50TGlzdGVuZXIoJ2NoYW5nZScsIHNldEZhbGxiYWNrVmFsdWUpOwogICAgICAgIGZ1bmN0aW9uIHNldEZhbGxiYWNrVmFsdWUoZXZ0KSB7CiAgICAgICAgICAgIGNvbnN0IHRhcmdldCA9IGV2dC50YXJnZXQ7CiAgICAgICAgICAgIHRhcmdldC52YWx1ZSA9ICh0YXJnZXQudmFsdWUpID8gdGFyZ2V0LnZhbHVlIDogJy0nOwogICAgICAgIH0KICAgICAgICBjb250YWluZXIuYXBwZW5kQ2hpbGQoaW5wdXQpOwogICAgICAgIGNvbnN0IGRhdGFsaXN0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGF0YWxpc3QnKTsKICAgICAgICBjb25zdCBvcHRpb24gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdvcHRpb24nKTsKICAgICAgICBvcHRpb24uc2V0QXR0cmlidXRlKCd2YWx1ZScsICctJyk7CiAgICAgICAgb3B0aW9uLmlubmVyVGV4dCA9ICctJzsKICAgICAgICBkYXRhbGlzdC5hcHBlbmRDaGlsZChvcHRpb24pOwogICAgICAgIGNvbnN0IGVwZyA9IFNFUlZFUlsneGVwZyddWyd4bWx0dk1hcCddW3htbFR2RmlsZV07CiAgICAgICAgaWYgKGVwZykgewogICAgICAgICAgICBjb25zdCBwcm9ncmFtSWRzID0gZ2V0T3duT2JqUHJvcHMoZXBnKTsKICAgICAgICAgICAgcHJvZ3JhbUlkcy5mb3JFYWNoKChwcm9ncmFtSWQpID0+IHsKICAgICAgICAgICAgICAgIGNvbnN0IHByb2dyYW0gPSBlcGdbcHJvZ3JhbUlkXTsKICAgICAgICAgICAgICAgIGlmIChwcm9ncmFtLmhhc093blByb3BlcnR5KCdkaXNwbGF5LW5hbWVzJykpIHsKICAgICAgICAgICAgICAgICAgICBwcm9ncmFtWydkaXNwbGF5LW5hbWVzJ10uZm9yRWFjaCgoZGlzcGxheU5hbWUpID0+IHsKICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgb3B0aW9uID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnb3B0aW9uJyk7CiAgICAgICAgICAgICAgICAgICAgICAgIG9wdGlvbi5zZXRBdHRyaWJ1dGUoJ3ZhbHVlJywgcHJvZ3JhbUlkKTsKICAgICAgICAgICAgICAgICAgICAgICAgb3B0aW9uLmlubmVyVGV4dCA9IGRpc3BsYXlOYW1lWydWYWx1ZSddOwogICAgICAgICAgICAgICAgICAgICAgICBkYXRhbGlzdC5hcHBlbmRDaGlsZChvcHRpb24pOwogICAgICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgY29uc3Qgb3B0aW9uID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnb3B0aW9uJyk7CiAgICAgICAgICAgICAgICAgICAgb3B0aW9uLnNldEF0dHJpYnV0ZSgndmFsdWUnLCBwcm9ncmFtSWQpOwogICAgICAgICAgICAgICAgICAgIG9wdGlvbi5pbm5lclRleHQgPSAnLSc7CiAgICAgICAgICAgICAgICAgICAgZGF0YWxpc3QuYXBwZW5kQ2hpbGQob3B0aW9uKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSk7CiAgICAgICAgfQogICAgICAgIGNvbnRhaW5lci5hcHBlbmRDaGlsZChkYXRhbGlzdCk7CiAgICAgICAgcmV0dXJuIFtjb250YWluZXIsIGlucHV0LCBkYXRhbGlzdF07CiAgICB9Cn0KZnVuY3Rpb24gZ2V0VmFsdWVGcm9tUHJvdmlkZXJGaWxlKGZpbGUsIGZpbGVUeXBlLCBrZXkpIHsKICAgIGlmIChmaWxlID09ICJ4VGVWZSBEdW1teSIpIHsKICAgICAgICByZXR1cm4gZmlsZTsKICAgIH0KICAgIGxldCBmaWxlSUQ7CiAgICBsZXQgaW5kaWNhdG9yID0gZmlsZS5jaGFyQXQoMCk7CiAgICBzd2l0Y2ggKGluZGljYXRvcikgewogICAgICAgIGNhc2UgIk0iOgogICAgICAgICAgICBmaWxlVHlwZSA9ICJtM3UiOwogICAgICAgICAgICBmaWxlSUQgPSBmaWxlOwogICAgICAgICAgICBicmVhazsKICAgICAgICBjYXNlICJIIjoKICAgICAgICAgICAgZmlsZVR5cGUgPSAiaGRociI7CiAgICAgICAgICAgIGZpbGVJRCA9IGZpbGU7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgIGNhc2UgIlgiOgogICAgICAgICAgICBmaWxlVHlwZSA9ICJ4bWx0diI7CiAgICAgICAgICAgIGZpbGVJRCA9IGZpbGUuc3Vic3RyaW5nKDAsIGZpbGUubGFzdEluZGV4T2YoJy4nKSk7CiAgICAgICAgICAgIGJyZWFrOwogICAgfQogICAgaWYgKFNFUlZFUlsic2V0dGluZ3MiXVsiZmlsZXMiXVtmaWxlVHlwZV0uaGFzT3duUHJvcGVydHkoZmlsZUlEKSA9PSB0cnVlKSB7CiAgICAgICAgdmFyIGRhdGEgPSBTRVJWRVJbInNldHRpbmdzIl1bImZpbGVzIl1bZmlsZVR5cGVdW2ZpbGVJRF07CiAgICAgICAgcmV0dXJuIGRhdGFba2V5XTsKICAgIH0KICAgIHJldHVybjsKfQpmdW5jdGlvbiBzZXRYbWx0dkNoYW5uZWwoZXBnTWFwSWQsIHhtbFR2RmlsZVNlbGVjdCkgewogICAgY29uc3QgeG1sVHYgPSBuZXcgWE1MVFZGaWxlKCk7CiAgICBjb25zdCBuZXdYbWxUdkZpbGUgPSB4bWxUdkZpbGVTZWxlY3QudmFsdWU7CiAgICAvLyBSZW1vdmUgb2xkIFhNTFRWIElEIHNlbGVjdGlvbiBib3gKICAgIGNvbnN0IHhtbFR2SWRQaWNrZXJQYXJlbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgneG1sdHYtaWQtcGlja2VyLWNvbnRhaW5lcicpLnBhcmVudEVsZW1lbnQ7CiAgICB4bWxUdklkUGlja2VyUGFyZW50LmlubmVySFRNTCA9ICcnOwogICAgLy8gQ3JlYXRlIG5ldyBYTUxUViBJRCBzZWxlY3Rpb24gYm94CiAgICBjb25zdCB0dmdJZCA9IFNFUlZFUlsneGVwZyddWydlcGdNYXBwaW5nJ11bZXBnTWFwSWRdWyd0dmctaWQnXTsKICAgIGNvbnN0IFt4bWxUdklkQ29udGFpbmVyLCB4bWxUdklkSW5wdXQsIHhtbFR2SWREYXRhbGlzdF0gPSB4bWxUdi5uZXdYbWxUdklkUGlja2VyKG5ld1htbFR2RmlsZSwgdHZnSWQpOwogICAgeG1sVHZJZENvbnRhaW5lci5zZXRBdHRyaWJ1dGUoJ2lkJywgJ3htbHR2LWlkLXBpY2tlci1jb250YWluZXInKTsKICAgIHhtbFR2SWRJbnB1dC5zZXRBdHRyaWJ1dGUoJ2xpc3QnLCAneG1sdHYtaWQtcGlja2VyLWRhdGFsaXN0Jyk7CiAgICB4bWxUdklkSW5wdXQuc2V0QXR0cmlidXRlKCduYW1lJywgJ3gtbWFwcGluZycpOyAvLyBTaG91bGQgc3RheSB4LW1hcHBpbmcgYXMgaXQgd2lsbCBiZSB1c2VkIGluIGRvbmVQb3B1cERhdGEgdG8gbWFrZSBhIHNlcnZlciByZXF1ZXN0CiAgICB4bWxUdklkSW5wdXQuc2V0QXR0cmlidXRlKCdpZCcsICd4bWx0di1pZC1waWNrZXItaW5wdXQnKTsKICAgIHhtbFR2SWRJbnB1dC5zZXRBdHRyaWJ1dGUoJ29uY2hhbmdlJywgYGphdmFzY3JpcHQ6IHRoaXMuY2xhc3NOYW1lID0gJ2NoYW5nZWQnOyBjaGVja1htbHR2Q2hhbm5lbCgnJHtlcGdNYXBJZH0nLCB0aGlzLnZhbHVlLCAnJHtuZXdYbWxUdkZpbGV9Jyk7YCk7CiAgICB4bWxUdklkSW5wdXQuY2xhc3NMaXN0LmFkZCgnY2hhbmdlZCcpOwogICAgeG1sVHZJZERhdGFsaXN0LnNldEF0dHJpYnV0ZSgnaWQnLCAneG1sdHYtaWQtcGlja2VyLWRhdGFsaXN0Jyk7CiAgICAvLyBBZGQgbmV3IFhNTFRWIElEIHNlbGVjdGlvbiBib3ggdG8gaXQncyBwYXJlbnQKICAgIHhtbFR2SWRQaWNrZXJQYXJlbnQuYXBwZW5kQ2hpbGQoeG1sVHZJZENvbnRhaW5lcik7CiAgICBjaGVja1htbHR2Q2hhbm5lbChlcGdNYXBJZCwgeG1sVHZJZElucHV0LnZhbHVlLCBuZXdYbWxUdkZpbGUpOwp9CmZ1bmN0aW9uIGNoZWNrWG1sdHZDaGFubmVsKGVwZ01hcElkLCBuZXdYbWxUdklkLCB4bWxUdkZpbGUpIHsKICAgIGNvbnN0IGNoYW5uZWxBY3RpdmVDYiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdhY3RpdmUnKTsKICAgIGNvbnN0IGNoYW5uZWxBY3RpdmUgPSBuZXdYbWxUdklkICE9ICctJzsKICAgIGNoYW5uZWxBY3RpdmVDYi5jaGVja2VkID0gY2hhbm5lbEFjdGl2ZTsKICAgIGNoYW5uZWxBY3RpdmVDYi5jbGFzc05hbWUgPSAnY2hhbmdlZCc7CiAgICBpZiAoeG1sVHZGaWxlICE9ICd4VGVWZSBEdW1teScgJiYgY2hhbm5lbEFjdGl2ZSA9PSB0cnVlKSB7CiAgICAgICAgY2hhbmdlQ2hhbm5lbExvZ28oZXBnTWFwSWQpOwogICAgICAgIHJldHVybjsKICAgIH0KICAgIGlmICh4bWxUdkZpbGUgPT0gJ3hUZVZlIER1bW15JykgewogICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd1cGRhdGUtaWNvbicpLmNoZWNrZWQgPSBmYWxzZTsKICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndXBkYXRlLWljb24nKS5jbGFzc05hbWUgPSAnY2hhbmdlZCc7CiAgICB9Cn0KZnVuY3Rpb24gY2hhbmdlQ2hhbm5lbExvZ28oZXBnTWFwSWQpIHsKICAgIGNvbnN0IGNoYW5uZWwgPSBTRVJWRVJbJ3hlcGcnXVsnZXBnTWFwcGluZyddW2VwZ01hcElkXTsKICAgIGNvbnN0IHhtbFR2RmlsZVNlbGVjdCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdwb3B1cC14bWx0dicpOwogICAgY29uc3QgeG1sVHZGaWxlID0geG1sVHZGaWxlU2VsZWN0Lm9wdGlvbnNbeG1sVHZGaWxlU2VsZWN0LnNlbGVjdGVkSW5kZXhdLnZhbHVlOwogICAgY29uc3QgeG1sVHZJZElucHV0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3htbHR2LWlkLXBpY2tlci1pbnB1dCcpOwogICAgY29uc3QgbmV3WG1sVHZJZCA9IHhtbFR2SWRJbnB1dC52YWx1ZTsKICAgIGNvbnN0IHVwZGF0ZUxvZ28gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndXBkYXRlLWljb24nKS5jaGVja2VkOwogICAgbGV0IGxvZ287CiAgICBpZiAodXBkYXRlTG9nbyA9PSB0cnVlICYmIHhtbFR2RmlsZSAhPSAneFRlVmUgRHVtbXknKSB7CiAgICAgICAgaWYgKFNFUlZFUlsneGVwZyddWyd4bWx0dk1hcCddW3htbFR2RmlsZV0uaGFzT3duUHJvcGVydHkobmV3WG1sVHZJZCkpIHsKICAgICAgICAgICAgbG9nbyA9IFNFUlZFUlsneGVwZyddWyd4bWx0dk1hcCddW3htbFR2RmlsZV1bbmV3WG1sVHZJZF1bJ2ljb24nXTsKICAgICAgICB9CiAgICAgICAgZWxzZSB7CiAgICAgICAgICAgIGxvZ28gPSBjaGFubmVsWyd0dmctbG9nbyddOwogICAgICAgIH0KICAgICAgICB2YXIgbG9nb0lucHV0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NoYW5uZWwtaWNvbicpOwogICAgICAgIGxvZ29JbnB1dC52YWx1ZSA9IGxvZ287CiAgICAgICAgaWYgKEJVTEtfRURJVCA9PSBmYWxzZSkgewogICAgICAgICAgICBsb2dvSW5wdXQuY2xhc3NOYW1lID0gJ2NoYW5nZWQnOwogICAgICAgIH0KICAgIH0KfQpmdW5jdGlvbiBzYXZlUG9wdXBEYXRhKGRhdGFUeXBlLCBpZCwgcmVtb3ZlLCBvcHRpb24pIHsKICAgIGlmIChkYXRhVHlwZSA9PSAibWFwcGluZyIpIHsKICAgICAgICBsZXQgZGF0YSA9IHt9OwogICAgICAgIGxldCBjbWQgPSAic2F2ZUVwZ01hcHBpbmciOwogICAgICAgIGRhdGFbImVwZ01hcHBpbmciXSA9IFNFUlZFUlsieGVwZyJdWyJlcGdNYXBwaW5nIl07CiAgICAgICAgbGV0IHNlcnZlciA9IG5ldyBTZXJ2ZXIoY21kKTsKICAgICAgICBzZXJ2ZXIucmVxdWVzdChkYXRhKTsKICAgICAgICBkZWxldGUgVU5ET1siZXBnTWFwcGluZyJdOwogICAgICAgIHJldHVybjsKICAgIH0KICAgIGxldCBkaXYgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicG9wdXAtY3VzdG9tIik7CiAgICBsZXQgaW5wdXRzID0gZGl2LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJUQUJMRSIpWzBdLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJJTlBVVCIpOwogICAgbGV0IHNlbGVjdHMgPSBkaXYuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlRBQkxFIilbMF0uZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlNFTEVDVCIpOwogICAgbGV0IGlucHV0ID0ge307CiAgICBsZXQgY29uZmlybU1zZzsKICAgIGZvciAobGV0IGkgPSAwOyBpIDwgc2VsZWN0cy5sZW5ndGg7IGkrKykgewogICAgICAgIHZhciBuYW1lOwogICAgICAgIG5hbWUgPSBzZWxlY3RzW2ldLm5hbWU7CiAgICAgICAgdmFyIHZhbHVlID0gc2VsZWN0c1tpXS52YWx1ZTsKICAgICAgICBzd2l0Y2ggKG5hbWUpIHsKICAgICAgICAgICAgY2FzZSAidHVuZXIiOgogICAgICAgICAgICAgICAgaW5wdXRbbmFtZV0gPSBwYXJzZUludCh2YWx1ZSk7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgICAgIGlucHV0W25hbWVdID0gdmFsdWU7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICB9CiAgICB9CiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGlucHV0cy5sZW5ndGg7IGkrKykgewogICAgICAgIHN3aXRjaCAoaW5wdXRzW2ldLnR5cGUpIHsKICAgICAgICAgICAgY2FzZSAiY2hlY2tib3giOgogICAgICAgICAgICAgICAgbmFtZSA9IGlucHV0c1tpXS5uYW1lOwogICAgICAgICAgICAgICAgaW5wdXRbbmFtZV0gPSBpbnB1dHNbaV0uY2hlY2tlZDsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJ0ZXh0IjoKICAgICAgICAgICAgY2FzZSAiaGlkZGVuIjoKICAgICAgICAgICAgY2FzZSAicGFzc3dvcmQiOgogICAgICAgICAgICAgICAgbmFtZSA9IGlucHV0c1tpXS5uYW1lOwogICAgICAgICAgICAgICAgc3dpdGNoIChuYW1lKSB7CiAgICAgICAgICAgICAgICAgICAgY2FzZSAidHVuZXIiOgogICAgICAgICAgICAgICAgICAgICAgICBpbnB1dFtuYW1lXSA9IHBhcnNlSW50KGlucHV0c1tpXS52YWx1ZSk7CiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICAgICAgICAgICAgIGlucHV0W25hbWVdID0gaW5wdXRzW2ldLnZhbHVlOwogICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgIH0KICAgIH0KICAgIGxldCBkYXRhID0ge307CiAgICBsZXQgY21kOwogICAgaWYgKHJlbW92ZSA9PSB0cnVlKSB7CiAgICAgICAgaW5wdXRbImRlbGV0ZSJdID0gdHJ1ZTsKICAgIH0KICAgIHN3aXRjaCAoZGF0YVR5cGUpIHsKICAgICAgICBjYXNlICJ1c2VycyI6CiAgICAgICAgICAgIGNvbmZpcm1Nc2cgPSAiRGVsZXRlIHRoaXMgdXNlcj8iOwogICAgICAgICAgICBpZiAoaWQgPT0gIi0iKSB7CiAgICAgICAgICAgICAgICBjbWQgPSAic2F2ZU5ld1VzZXIiOwogICAgICAgICAgICAgICAgZGF0YVsidXNlckRhdGEiXSA9IGlucHV0OwogICAgICAgICAgICB9CiAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgY21kID0gInNhdmVVc2VyRGF0YSI7CiAgICAgICAgICAgICAgICBsZXQgZCA9IHt9OwogICAgICAgICAgICAgICAgZFtpZF0gPSBpbnB1dDsKICAgICAgICAgICAgICAgIGRhdGFbInVzZXJEYXRhIl0gPSBkOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgIGNhc2UgIm0zdSI6CiAgICAgICAgICAgIGNvbmZpcm1Nc2cgPSAiRGVsZXRlIHRoaXMgcGxheWxpc3Q/IjsKICAgICAgICAgICAgc3dpdGNoIChvcHRpb24pIHsKICAgICAgICAgICAgICAgIC8vIFBvcHVwOiBTYXZlCiAgICAgICAgICAgICAgICBjYXNlIDA6CiAgICAgICAgICAgICAgICAgICAgY21kID0gInNhdmVGaWxlc00zVSI7CiAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAvLyBQb3B1cDogVXBkYXRlCiAgICAgICAgICAgICAgICBjYXNlIDE6CiAgICAgICAgICAgICAgICAgICAgY21kID0gInVwZGF0ZUZpbGVNM1UiOwogICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGRhdGFbImZpbGVzIl0gPSB7fTsKICAgICAgICAgICAgZGF0YVsiZmlsZXMiXVtkYXRhVHlwZV0gPSB7fTsKICAgICAgICAgICAgZGF0YVsiZmlsZXMiXVtkYXRhVHlwZV1baWRdID0gaW5wdXQ7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgIGNhc2UgImhkaHIiOgogICAgICAgICAgICBjb25maXJtTXNnID0gIkRlbGV0ZSB0aGlzIEhESG9tZVJ1biB0dW5lcj8iOwogICAgICAgICAgICBzd2l0Y2ggKG9wdGlvbikgewogICAgICAgICAgICAgICAgLy8gUG9wdXA6IFNhdmUKICAgICAgICAgICAgICAgIGNhc2UgMDoKICAgICAgICAgICAgICAgICAgICBjbWQgPSAic2F2ZUZpbGVzSERIUiI7CiAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAvLyBQb3B1cDogVXBkYXRlCiAgICAgICAgICAgICAgICBjYXNlIDE6CiAgICAgICAgICAgICAgICAgICAgY21kID0gInVwZGF0ZUZpbGVIREhSIjsKICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgfQogICAgICAgICAgICBkYXRhWyJmaWxlcyJdID0ge307CiAgICAgICAgICAgIGRhdGFbImZpbGVzIl1bZGF0YVR5cGVdID0ge307CiAgICAgICAgICAgIGRhdGFbImZpbGVzIl1bZGF0YVR5cGVdW2lkXSA9IGlucHV0OwogICAgICAgICAgICBicmVhazsKICAgICAgICBjYXNlICJ4bWx0diI6CiAgICAgICAgICAgIGNvbmZpcm1Nc2cgPSAiRGVsZXRlIHRoaXMgWE1MVFYgZmlsZT8iOwogICAgICAgICAgICBzd2l0Y2ggKG9wdGlvbikgewogICAgICAgICAgICAgICAgLy8gUG9wdXA6IFNhdmUKICAgICAgICAgICAgICAgIGNhc2UgMDoKICAgICAgICAgICAgICAgICAgICBjbWQgPSAic2F2ZUZpbGVzWE1MVFYiOwogICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgLy8gUG9wdXA6IFVwZGF0ZQogICAgICAgICAgICAgICAgY2FzZSAxOgogICAgICAgICAgICAgICAgICAgIGNtZCA9ICJ1cGRhdGVGaWxlWE1MVFYiOwogICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGRhdGFbImZpbGVzIl0gPSB7fTsKICAgICAgICAgICAgZGF0YVsiZmlsZXMiXVtkYXRhVHlwZV0gPSB7fTsKICAgICAgICAgICAgZGF0YVsiZmlsZXMiXVtkYXRhVHlwZV1baWRdID0gaW5wdXQ7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgIGNhc2UgImZpbHRlciI6CiAgICAgICAgICAgIGNvbmZpcm1Nc2cgPSAiRGVsZXRlIHRoaXMgZmlsdGVyPyI7CiAgICAgICAgICAgIGNtZCA9ICJzYXZlRmlsdGVyIjsKICAgICAgICAgICAgZGF0YVsiZmlsdGVyIl0gPSB7fTsKICAgICAgICAgICAgZGF0YVsiZmlsdGVyIl1baWRdID0gaW5wdXQ7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgIHJldHVybjsKICAgIH0KICAgIGlmIChyZW1vdmUgPT0gdHJ1ZSkgewogICAgICAgIGlmICghY29uZmlybShjb25maXJtTXNnKSkgewogICAgICAgICAgICBzaG93RWxlbWVudCgicG9wdXAiLCBmYWxzZSk7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICB9CiAgICBsZXQgc2VydmVyID0gbmV3IFNlcnZlcihjbWQpOwogICAgc2VydmVyLnJlcXVlc3QoZGF0YSk7Cn0KZnVuY3Rpb24gZG9uZVBvcHVwRGF0YShkYXRhVHlwZSwgaWRzU3RyKSB7CiAgICBsZXQgaWRzID0gaWRzU3RyLnNwbGl0KCcsJyk7CiAgICBsZXQgZGl2ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInBvcHVwLWN1c3RvbSIpOwogICAgbGV0IGlucHV0cyA9IGRpdi5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCJjaGFuZ2VkIik7CiAgICBpZHMuZm9yRWFjaChpZCA9PiB7CiAgICAgICAgbGV0IGlucHV0OwogICAgICAgIGlucHV0ID0gU0VSVkVSWyJ4ZXBnIl1bImVwZ01hcHBpbmciXVtpZF07CiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBpbnB1dHMubGVuZ3RoOyBpKyspIHsKICAgICAgICAgICAgbGV0IG5hbWU7CiAgICAgICAgICAgIGxldCB2YWx1ZTsKICAgICAgICAgICAgc3dpdGNoIChpbnB1dHNbaV0udGFnTmFtZSkgewogICAgICAgICAgICAgICAgY2FzZSAiSU5QVVQiOgogICAgICAgICAgICAgICAgICAgIHN3aXRjaCAoaW5wdXRzW2ldLnR5cGUpIHsKICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAiY2hlY2tib3giOgogICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZSA9IGlucHV0c1tpXS5uYW1lOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSBpbnB1dHNbaV0uY2hlY2tlZDsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlucHV0W25hbWVdID0gdmFsdWU7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAidGV4dCI6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lID0gaW5wdXRzW2ldLm5hbWU7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IGlucHV0c1tpXS52YWx1ZTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlucHV0W25hbWVdID0gdmFsdWU7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICBjYXNlICJTRUxFQ1QiOgogICAgICAgICAgICAgICAgICAgIG5hbWUgPSBpbnB1dHNbaV0ubmFtZTsKICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IGlucHV0c1tpXS52YWx1ZTsKICAgICAgICAgICAgICAgICAgICBpbnB1dFtuYW1lXSA9IHZhbHVlOwogICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICB9CiAgICAgICAgICAgIHN3aXRjaCAobmFtZSkgewogICAgICAgICAgICAgICAgY2FzZSAidHZnLWxvZ28iOgogICAgICAgICAgICAgICAgICAgIC8vKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5jaGlsZE5vZGVzWzJdLmZpcnN0Q2hpbGQgYXMgSFRNTEVsZW1lbnQpLnNldEF0dHJpYnV0ZSgic3JjIiwgdmFsdWUpCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICBjYXNlICJ4LW5hbWUiOgogICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5jaGlsZE5vZGVzWzNdLmZpcnN0Q2hpbGQuaW5uZXJIVE1MID0gdmFsdWU7CiAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICBjYXNlICJ4LWNhdGVnb3J5IjoKICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkuY2hpbGROb2Rlc1szXS5maXJzdENoaWxkLmNsYXNzTmFtZSA9IHZhbHVlOwogICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgY2FzZSAidXBkYXRlLWNoYW5uZWwtbmFtZS1yZWdleCI6CiAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpLmNoaWxkTm9kZXNbNF0uZmlyc3RDaGlsZC5pbm5lckhUTUwgPSB2YWx1ZTsKICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgIGNhc2UgIngtZ3JvdXAtdGl0bGUiOgogICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5jaGlsZE5vZGVzWzZdLmZpcnN0Q2hpbGQuaW5uZXJIVE1MID0gdmFsdWU7CiAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICBjYXNlICJ4LXhtbHR2LWZpbGUiOgogICAgICAgICAgICAgICAgICAgIGlmICh2YWx1ZSAhPSAieFRlVmUgRHVtbXkiICYmIHZhbHVlICE9ICItIikgewogICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IGdldFZhbHVlRnJvbVByb3ZpZGVyRmlsZSh2YWx1ZSwgInhtbHR2IiwgIm5hbWUiKTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgaWYgKHZhbHVlID09ICItIikgewogICAgICAgICAgICAgICAgICAgICAgICBpbnB1dFsieC1hY3RpdmUiXSA9IGZhbHNlOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkuY2hpbGROb2Rlc1s3XS5maXJzdENoaWxkLmlubmVySFRNTCA9IHZhbHVlOwogICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgY2FzZSAieC1tYXBwaW5nIjoKICAgICAgICAgICAgICAgICAgICBpZiAodmFsdWUgPT0gIi0iKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGlucHV0WyJ4LWFjdGl2ZSJdID0gZmFsc2U7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5jaGlsZE5vZGVzWzhdLmZpcnN0Q2hpbGQuaW5uZXJIVE1MID0gdmFsdWU7CiAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICBjYXNlICJ4LXRpbWVzaGlmdCI6CiAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpLmNoaWxkTm9kZXNbOV0uZmlyc3RDaGlsZC5pbm5lckhUTUwgPSB2YWx1ZTsKICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgIH0KICAgICAgICAgICAgY3JlYXRlU2VhcmNoT2JqKCk7CiAgICAgICAgICAgIHNlYXJjaEluTWFwcGluZygpOwogICAgICAgIH0KICAgICAgICBpZiAoaW5wdXRbIngtYWN0aXZlIl0gPT0gZmFsc2UpIHsKICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpLmNsYXNzTmFtZSA9ICJub3RBY3RpdmVFUEciOwogICAgICAgIH0KICAgICAgICBlbHNlIHsKICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpLmNsYXNzTmFtZSA9ICJhY3RpdmVFUEciOwogICAgICAgIH0KICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkuY2hpbGROb2Rlc1syXS5maXJzdENoaWxkLnNldEF0dHJpYnV0ZSgic3JjIiwgaW5wdXRbInR2Zy1sb2dvIl0pOwogICAgfSk7CiAgICBzaG93RWxlbWVudCgicG9wdXAiLCBmYWxzZSk7CiAgICByZXR1cm47Cn0KZnVuY3Rpb24gc2hvd1ByZXZpZXcoZWxlbWVudCkgewogICAgbGV0IGRpdiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJteVN0cmVhbXNCb3giKTsKICAgIHN3aXRjaCAoZWxlbWVudCkgewogICAgICAgIGNhc2UgZmFsc2U6CiAgICAgICAgICAgIGRpdi5jbGFzc05hbWUgPSAibm90VmlzaWJsZSI7CiAgICAgICAgICAgIHJldHVybjsKICAgIH0KICAgIGxldCBzdHJlYW1zID0gWyJhY3RpdmVTdHJlYW1zIiwgImluYWN0aXZlU3RyZWFtcyJdOwogICAgc3RyZWFtcy5mb3JFYWNoKHByZXZpZXcgPT4gewogICAgICAgIGxldCB0YWJsZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHByZXZpZXcpOwogICAgICAgIHRhYmxlLmlubmVySFRNTCA9ICIiOwogICAgICAgIGxldCBvYmogPSBTRVJWRVJbImRhdGEiXVsiU3RyZWFtUHJldmlld1VJIl1bcHJldmlld107CiAgICAgICAgb2JqLmZvckVhY2goY2hhbm5lbCA9PiB7CiAgICAgICAgICAgIGxldCB0ciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlRSIik7CiAgICAgICAgICAgIGxldCB0ZEtleSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7CiAgICAgICAgICAgIGxldCB0ZFZhbCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlREIik7CiAgICAgICAgICAgIHRkS2V5LmNsYXNzTmFtZSA9ICJ0ZEtleSI7CiAgICAgICAgICAgIHRkVmFsLmNsYXNzTmFtZSA9ICJ0ZFZhbCI7CiAgICAgICAgICAgIHN3aXRjaCAocHJldmlldykgewogICAgICAgICAgICAgICAgY2FzZSAiYWN0aXZlU3RyZWFtcyI6CiAgICAgICAgICAgICAgICAgICAgdGRLZXkuaW5uZXJUZXh0ID0gIkNoYW5uZWw6ICgrKSI7CiAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICBjYXNlICJpbmFjdGl2ZVN0cmVhbXMiOgogICAgICAgICAgICAgICAgICAgIHRkS2V5LmlubmVyVGV4dCA9ICJDaGFubmVsOiAoLSkiOwogICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICB9CiAgICAgICAgICAgIHRkVmFsLmlubmVyVGV4dCA9IGNoYW5uZWw7CiAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKHRkS2V5KTsKICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQodGRWYWwpOwogICAgICAgICAgICB0YWJsZS5hcHBlbmRDaGlsZCh0cik7CiAgICAgICAgfSk7CiAgICB9KTsKICAgIHNob3dFbGVtZW50KCJsb2FkaW5nIiwgZmFsc2UpOwogICAgZGl2LmNsYXNzTmFtZSA9ICJ2aXNpYmxlIjsKICAgIHJldHVybjsKfQo=" From 7ced7f825ad9c9f2eca15337ecf96e392db7ff9a Mon Sep 17 00:00:00 2001 From: Senex Crenshaw Date: Fri, 26 Aug 2022 13:15:31 +0000 Subject: [PATCH 181/189] Removed no longer needed .slsa-goreleaser --- .slsa-goreleaser.yml | 36 ------------------------------------ 1 file changed, 36 deletions(-) delete mode 100644 .slsa-goreleaser.yml diff --git a/.slsa-goreleaser.yml b/.slsa-goreleaser.yml deleted file mode 100644 index ed9e3fd..0000000 --- a/.slsa-goreleaser.yml +++ /dev/null @@ -1,36 +0,0 @@ -# Version for this file. -version: 1 - -# (Optional) List of env variables used during compilation. -# env: -# - GO111MODULE=on -# - CGO_ENABLED=0 - -# (Optional) Flags for the compiler. -# flags: -# - -trimpath -# - -tags=netgo - -# The OS to compile for. `GOOS` env variable will be set to this value. -goos: linux - -# The architecture to compile for. `GOARCH` env variable will be set to this value. -goarch: amd64 - -# (Optional) Entrypoint to compile. (Optional) -# main: ./path/to/main.go - -# (Optional) Working directory. (default: root of the project) -# dir: ./relative/path/to/dir - -# Binary output name. -# {{ .Os }} will be replaced by goos field in the config file. -# {{ .Arch }} will be replaced by goarch field in the config file. -binary: xteve-{{ .Os }}-{{ .Arch }} - -# (Optional) ldflags generated dynamically in the workflow, and set as the `evaluated-envs` input variables in the workflow. -ldflags: - - "-X main.Version={{ .Env.VERSION }}" - - "-X main.Commit={{ .Env.COMMIT }}" - - "-X main.CommitDate={{ .Env.COMMIT_DATE }}" - - "-X main.TreeState={{ .Env.TREE_STATE }}" \ No newline at end of file From eb746235fe67209d75411ed64c47fa2b6c6c991b Mon Sep 17 00:00:00 2001 From: Ted Gould Date: Fri, 26 Aug 2022 13:53:29 +0000 Subject: [PATCH 182/189] Drop restart --- snap/snapcraft.yaml | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/snap/snapcraft.yaml b/snap/snapcraft.yaml index 706114a..9b140c8 100644 --- a/snap/snapcraft.yaml +++ b/snap/snapcraft.yaml @@ -39,12 +39,12 @@ apps: plugs: - network - network-bind - restart: - daemon: oneshot - command: bin/restart-if-inactive - timer: 00:10-23:10/24 - plugs: - - network +# restart: +# daemon: oneshot +# command: bin/restart-if-inactive +# timer: 00:10-23:10/24 +# plugs: +# - network inactive: command: bin/xteve-inactive -port 8080 plugs: From 3e7970d9446f0cf555cb97be771601320c6b7baf Mon Sep 17 00:00:00 2001 From: Ted Gould Date: Fri, 26 Aug 2022 13:54:39 +0000 Subject: [PATCH 183/189] Get more debugging info --- snap/snapcraft.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/snap/snapcraft.yaml b/snap/snapcraft.yaml index 9b140c8..a3a4371 100644 --- a/snap/snapcraft.yaml +++ b/snap/snapcraft.yaml @@ -33,7 +33,7 @@ parts: apps: xteve: daemon: simple - command: bin/xteve -port 8080 -config $SNAP_COMMON/config -no-updates -debug 1 + command: bin/xteve -port 8080 -config $SNAP_COMMON/config -no-updates -debug 3 environment: LD_LIBRARY_PATH: ${SNAP}/usr/lib/arm-linux-gnueabihf/pulseaudio/ plugs: From f2351524abf53aee8d1034e1583015f79b513ca1 Mon Sep 17 00:00:00 2001 From: Ted Gould Date: Fri, 26 Aug 2022 15:04:21 +0000 Subject: [PATCH 184/189] Switch to core22 --- snap/snapcraft.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/snap/snapcraft.yaml b/snap/snapcraft.yaml index a3a4371..9e3fe7b 100644 --- a/snap/snapcraft.yaml +++ b/snap/snapcraft.yaml @@ -1,5 +1,5 @@ name: xteve -base: core20 # the base snap is the execution environment for this snap +base: core22 summary: M3U Proxy for Plex DVR and Emby Live TV. adopt-info: xteve description: | From 7559557f7ec7edf89ac0ed4b0f4bd27349380a0a Mon Sep 17 00:00:00 2001 From: Ted Gould Date: Fri, 26 Aug 2022 16:33:53 +0000 Subject: [PATCH 185/189] Add a build snap for 'go' --- snap/snapcraft.yaml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/snap/snapcraft.yaml b/snap/snapcraft.yaml index 9e3fe7b..bd88517 100644 --- a/snap/snapcraft.yaml +++ b/snap/snapcraft.yaml @@ -15,6 +15,8 @@ parts: xteve: plugin: go source: . + build-snaps: + - go override-stage: | snapcraftctl stage snapcraftctl set-version `$SNAPCRAFT_STAGE/bin/xteve -version` From b2413e96a1ba94fe1005b67877b1c4d968b60446 Mon Sep 17 00:00:00 2001 From: Ted Gould Date: Thu, 15 Sep 2022 15:38:59 +0000 Subject: [PATCH 186/189] Fix LD_LIBRARY_PATH --- snap/snapcraft.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/snap/snapcraft.yaml b/snap/snapcraft.yaml index bd88517..5c9131a 100644 --- a/snap/snapcraft.yaml +++ b/snap/snapcraft.yaml @@ -37,7 +37,7 @@ apps: daemon: simple command: bin/xteve -port 8080 -config $SNAP_COMMON/config -no-updates -debug 3 environment: - LD_LIBRARY_PATH: ${SNAP}/usr/lib/arm-linux-gnueabihf/pulseaudio/ + LD_LIBRARY_PATH: ${LD_LIBRARY_PATH}:${SNAP}/usr/lib plugs: - network - network-bind From 8686ff6d81f24cde4ed0992f12065e9bbc64098a Mon Sep 17 00:00:00 2001 From: Ted Gould Date: Fri, 16 Sep 2022 22:08:25 +0000 Subject: [PATCH 187/189] Add back pulse --- snap/snapcraft.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/snap/snapcraft.yaml b/snap/snapcraft.yaml index 5c9131a..8e07259 100644 --- a/snap/snapcraft.yaml +++ b/snap/snapcraft.yaml @@ -37,7 +37,7 @@ apps: daemon: simple command: bin/xteve -port 8080 -config $SNAP_COMMON/config -no-updates -debug 3 environment: - LD_LIBRARY_PATH: ${LD_LIBRARY_PATH}:${SNAP}/usr/lib + LD_LIBRARY_PATH: ${LD_LIBRARY_PATH}:${SNAP}/usr/lib:${SNAP}/usr/lib/${SNAP_LAUNCHER_ARCH_TRIPLET}/pulseaudio/ plugs: - network - network-bind From f31a69855e0e5ba9894646e19d31d6a1989b9075 Mon Sep 17 00:00:00 2001 From: Ted Gould Date: Sun, 4 Aug 2024 17:39:39 +0000 Subject: [PATCH 188/189] Reenable the restart check --- snap/snapcraft.yaml | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/snap/snapcraft.yaml b/snap/snapcraft.yaml index 8e07259..94505c9 100644 --- a/snap/snapcraft.yaml +++ b/snap/snapcraft.yaml @@ -41,12 +41,12 @@ apps: plugs: - network - network-bind -# restart: -# daemon: oneshot -# command: bin/restart-if-inactive -# timer: 00:10-23:10/24 -# plugs: -# - network + restart: + daemon: oneshot + command: bin/restart-if-inactive + timer: 00:10-23:10/24 + plugs: + - network inactive: command: bin/xteve-inactive -port 8080 plugs: From 18b6f9fe9545dec7bb8ec2a47617b772ece0f5fc Mon Sep 17 00:00:00 2001 From: Ted Gould Date: Wed, 20 Nov 2024 03:30:01 +0000 Subject: [PATCH 189/189] Drop restart --- snap/snapcraft.yaml | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/snap/snapcraft.yaml b/snap/snapcraft.yaml index 94505c9..8e07259 100644 --- a/snap/snapcraft.yaml +++ b/snap/snapcraft.yaml @@ -41,12 +41,12 @@ apps: plugs: - network - network-bind - restart: - daemon: oneshot - command: bin/restart-if-inactive - timer: 00:10-23:10/24 - plugs: - - network +# restart: +# daemon: oneshot +# command: bin/restart-if-inactive +# timer: 00:10-23:10/24 +# plugs: +# - network inactive: command: bin/xteve-inactive -port 8080 plugs:

          bsqjefhB~mtn^$_0eZ=#IuUIkr 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�(9@l5QP)R)P$LW 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�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 z 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�xVN-hSc*T-6UV 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

        3. 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 z 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�rG&Vr1dkGT3 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�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%0DinJdK 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⪻j0Gt{0SS+ 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�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

    bsqjefhB~mtn^$_0eZ=#IuUIkr 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�(9@l5QP)R)P$LW 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�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 z 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�xVN-hSc*T-6UV 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

  3. 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 z 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�rG&Vr1dkGT3 ztkw6PY{XP)A$oAf#D5i>kHbQ0R`=p!tbLGT+u9tXYV=28v@R~th?e_^RBDLc3FhH0 zHkBg#g(JUN@9FLzkX?>U==r> z@7%5jS%grKBvji$<^=8Q+~(r5?;7-N5dZzt|K=ry&=*npLI3}v^dbLoR`A;YuK!Q> z!6*9!WH8XaU-;!tEak&5S)@*zwd$2_YuJ$9?B-nJWm&(17E1s6^zMG9R@}EH@Ds=^ z1g#8>=O=whon|o77R3N{1(gtNE<(0_i`*sb4k9 zHHh*e?}Kxboc^zuqF#;qU;5|&dg;GAmq6|RZ_WLqHOD$N5qyf)>;Y??nHaBnfm5Ap zweu<#ipV;Tzv()6K8auwHRznvlEUWm|Jhfa@QG3nDAV5k|D$!$9^?bHEgzxt2rR`R z8+#d8jGzlsK^MlA>7jD{ZFE6u%6TxehsNO3phttE!WF(%R2U+P3g$n2Yy)PY!jVJ= zb|8xUy}*cCgvNo$n~fOeP$lT*EIZTIVyCjTcr`i&QkhexgQFg&tJA${oCIAE z-s(!fIv3>PlD;DW_P|IVP-c{Si!zf0rJ_lM`4-&^6#Y5A6)9qLvo{U4l|S;F+teh8 ztn*PZtu#MYDA<@PuR&~sr3E*L$)sSqqF?ix=1^KuGS$)bXwfaKEA?f@GC7Zt3<@Z2^d$QyFyI3m=AL0jUm)IoSam%gyTn}p(Q^hAV=rlf%0Qj3k_qdIAbdH`d!petN`=X^7l>068Q^PT+uiNT%y+kI zv(Vikme`DgS$!nU`W(Mr{IZU@L_6DE@u5&;>Y!S3ZZ4fqqR2@@MRjwFevQuV>-@r< z1VH@)gVV$c8J8%^_9~8hlHshE+4O5=a#$ubs;LnbT-ZI)h|DUr@j3WNJb%gUP(kGBg$;oD);l~kzuLS-Tj&} zlSL~O#q%FViszSWtAG9wCn%_wlFr@UQj9}NG@cj>;fg$}TsO$*5&n{JfSKrzD%Sen zl^)TZHcB}Ui0g`Gepkd4*6C&eB&D|^s7MrseW3QLGba>Irt-6j?P7DE)Rrp7fdQ@q zc6*CVt>~}~@|Wm;Q~sc`SkY{+8|S+=);3#d+Vl^VE>C2_Y_cUig&ZdqU;~Nv+K=@P z(O#RrL(_t{T;~#h22d7mih=1c1A`A}Z*P?JanC1Fi6RTkCdyHQ;_b_g(f0cJ@;+LqST#MKyW z)#`4YwYe^?&3esfH)4rKU95#@Kj*>306k9JLI}t3MAaa(QY=Qr8^jiMzU8S*+l>0* zQ;ESCW{q*Dvj*S+7N{&Hk}__a+`H69u`zhdv!_8DWtDu08x|^5qL&1C1{vVbW8c8@ z&5^Dbe$h*-ToT?;Xa7GDul$uT8vm@=DO46vs=Ax&tvYnYro<}>)wfNF2SfvIQ{v_5 z?(OKbC3?6vI$a%|-ihADr&0E^!i{3qx1-3}6s$s(x)hg8qf8$bOCi5ZkkaR}Y(}!2 zE>)bUdT9@PY15=l32#E-I*mm5Q4Nnql9_?>y>BnGY%Za>h^IYE`xa`s2uAnwdV2l3 z{5xD(6mh|BQ)Z6)6(w#B7Q+cMi(QO=c4_w^WwvR+jX4rK!9rmc;ZyBacVnP71wYdE z^xNnzcC_|xbT@BffK}4_h0YVnH4+mjo7UM3l^T&2S7)#USf;>*1{J1FG7R%3>-s69 z^FcNllwyJ*N%00_Pp~-$dn3jI#*$c80rL6Qt4fbp9NQaRS*WbN5!@yi5Z}XcMJN7M z;}NLZoTrcWW{2dmUZ?I9j&aR0Fq_A5nlVuTTl3TI=4Q2}`Jw3aD`oF~T47H&M0Zzf zdv{HA`g4@>>ge5;=yZMbZe5{G`RnN6?Iy}Bdbc-v_$ZFKr&+UEH}l=7?5!<(Yhx}<$K-X8mGZk~rx*d@w&K0J%*G=K#@*Y{)~8^x__ zcj3NdaMmSlpcqU zX7svmruXomPB-G+LTZ+s2|8C|z`PpA>lvr&bdmU$7SmZD_30uPGZiXTL~$64R35|3 zXVPOZB!v{B6q;t$g#PmQd}4GC*1(;sK@(Q8zQ@O7$jGQBXX|qRGF3MbgRBDV8f$cU zzoPs^3VdEV=>-nerNKmdm#S}R1BGrJTr_N=K9A&mB>DIXJyBoc>PD|DJ40I3m@Awz zy)coGsPy)7Z@vq)wy1*tW4L__CCTV}b%b+I}MYYF;M_ z83`GL4azIv&?{_UBo97mF~viJ?ds>`dz1SC zEZxiC0%EaKWu%vbp=kQ5fL$d7H$8!klx}Q8ZTob1E<0pY8#9%ajXkkFOsB&8bZX$d zXiL3qG-$(E6d#AO1rCK*J&f}}errPx*qT>hcf#Q%3E%RRtCnE1&h6jI;B#K=W2EqF ztx(p7hl@C+SpSEMJ;Se!nk_&dki?YqP6}ox`h-JtS!z-CLi~m%W+pc1qWSuW;-N)% z0<}u2%KMbfEc&Vn4zK82^!ad6H;(D)-RBj3K6`jI*M*B}ITlUtIlJg8m0#F<1gFv? z8hBPdrRmJ_8M%ZvKYgQ4U891Ti5FGhRG$gyU#ir|^2S_0?}PwkfdOex6!pDV_1Tr^ z|9}FX-K_Ln{Lb~;rV_nIoHJl%;+tyJ*VV|uV~!a8do}JpckDXV_PA>Os-AG<_zV3> zFRO`dQwB`#Ic@&b>KQYq51+ZvJz{Fz>{;I8sdXLm+b7Ijjmq)y?ftyUg(nqUp{5Qx zvVGCwX`i3kmtX&BE2hr0*DI#BPCJ)pE2cId4T!u$EpGOQd-H=AbmIKr6}9kDwRBBz z!ovI2()H@tp&-tQ6NWB-9HGRC!&i(HP3jBOsS|=e2^hkrWg?=1Qnvo>1>)MbNL;F* zJ&mvqQN%rJ4enO5a!9QKPx-5IepWCD6C!$L{1kH{%K8##~Qbgpa%qGdCqp_$ zsk!yjHxrmY(yd@e68`x%@B8jnPi^zw)AsarWl#QAufusbw+1YxUGG)~rS*&+1G1Kj z_lU>26K3AQgHIZo9k8t>N$Vs?XmTM*J*gF%@uG3C>pfd^UW?3UcSR)xHJ;j+>E0`4Gy7X9QA$}g{jNR(J zh<42*LwA-EdKn|G%~vzJC%Q`#qS6XA~WeT?DKBb?Q25q!H7F};=h=aKt6>2GM~ zoKegy`#lRs7y!FO)(#Maxsb5m%i7tgu8Y1~yaQH3`Yw&G{9ty5Ie3y1o7;L6KvPxa;uL5Ui$1Mk4r1i=O zz6=Kj^bpvB0qlcFVR5dRT!)2Q`rnna0j5O})LTYbyS6c0mIw}PS}s$-&NPY*w+mW| z$_Gd{%(Tuk1W~qQBStzM$#$~(t#Y0ws}O_v$<|OVDW=DL^*JhoMUQ0IHXL`39j(gw zG5LvbHYv;&OzR}4wfYyB-VJur8(ru3NMegjIVR#FKT3h>tjZMS2Z~*^jQcNRv%7Y^ z0xzs|(qCYhSxLKeUIqgZrJKv>Ow zj4I9hsM26!(ru$G?XB8*7BjoqxK0>LH|O1?Tf}qQ>Z@amurr19>n0R0nmXSXB6XW8 z+X^sBKj1pA!h*n}xCiOG0ZFzJ6*uTRjvgON7-Y=M%~YO z*UZq{6r4T(=tKp6g>CIG7xxKhX~D9cM!<`stWowRy;a-qX4|8`5idb$H~=33mYcH^ zGsT4)RM3uBL140U!L6}B{96^QkK@feJy}dl>BDuA`p>bpCw+0KyTKz1*3LD`&8Nu% z%Nm=-+BgeXqZ8d;ew4u`^oMK>=GbEbk4x}~B!f|^*ieUgWYD=8N(M~J>){>QI!yQ2 zW?c@d@WJA_o*Dy5xvswxD$X=%runN{98N?Z`NjoEI1et zKR1^1P$b?B(%o8<6GezrJr)0-{8-+*?>xES>}e3_c8jKhwe+R6-m;F>4Cqd~oe+XCV2Msx@Yw zTkQ|kC)zxAg4|io<|eblrD{)x&h!3Ce2|RNb>?U}a&E@GJ1!rx*z%?Iij*$uL#@+5 z!ej7<)HpUSUwdkQ2Y=s#21n<(53x9l!eEPIaU7_u;Gfa>-y67)w)u(zVvouPkW=g9opV)b?xcT z(cLeicQfs?Yq-(tOPTNT_2%f+>(Skf(Py_uci)IkS42rzBJ#nOD9P2)!waH2{FuqR zuS8Y3-m`c3ERcs+L`l{~cPH6rqt}%JYTg^?+=@Tgv0z^d!LlZc)A(6{EtjvlIWOH)PyFnGWSvQ@^2x25m z;8*LRGb>cJMl4jU-!KrOzYnyaLkmO1UDXPirmWJW+4=&yU!@E zug_s1EUQZYPs$r@FMh5)T=J<({|4<1OAk#|65HT>f2r4!KE*rJ8;ZM(Bpj)#!c&uc z+bugiGt$3Q<7M+o?N$2!p}ZRZb6#apeeUf1O58e@T%+>m>GFb;3m=5voVyZd3VdBx zIaa@`N}eTy((~X$yrUrKyASfOQB^KRtEICg%2PoscsC`JO zh5k9L&Ozp45bNwP;mIuw7V1mH|MJOxslm7H5$14)^K|4wJ6(T(-VQ$muvqsE(oex28y zB%(7JB(7E2!-M=#J%+c3e<@w-1z&*OKOS8|?XC1O32%6&HJ%`E7sYtXH)Jy0oZ;|_ zT#e;-w@i{=ok`#gKoTwVjshWYU)YH{KX3T6@=k@waFyjX%O3ec9`-jIT%gr3G z1}gUh?Ip7XnQf}@bI9{@J@mPt?x%ZS@XyQ6Ext|V=NErn<>wWT)AP}5V?lKDf3LF3 zipT54`TKRrGpcl}Dj8MI=J^9v@rbH=RN*-N#2$^^!yco$LEto7(UN=K6N}Rl3tu+4r54;&BR9Dn?%kA$U75K z`3vG%^kjW}YA|_hF%Kd5A*$FbzH^D5e`|0&+y!`7Qy6yej_LZSdjhZoS#h=K-Hr!x zEzqHDa?m&kPpVl@K&nDv1!FzpK!? zhMa)Wi{^DpKW7-&T&w9JT@bc4w{~~>_h7ArxIVTm8^D}KO}ZX(8QeB(8`@g$_$N4{ z>R>{qT@9FU)S2a5RRVWbD>5-*jSwob3Daje)1?1U4-PWpq zQEN&aV3sqx9-xlmHq=fUR4wBc1gYYf3xsEO%LUpB8%tUeu3oUJ%30CF=FBk9B|EUQ z?COWqDsp>8Ij2Z&6>)Aj^*%7S@5H&miHUP-V0KJcRpa>hQn(D}BSe)ya!5GV_PdOs z)$v|VDHP7E-{)G_+P_2+ns@y53FkV@rRsuObhl+FMMHSF z^D?d`7x`fV#m_Z#Jc_J{&Bm@Na{NWkk5D$H{&+ohMv^7GJTTGgBR^YLAQ2mkh5Qu! zX&@67n&@1=P`rE#W&^ccjz{-$Jb5u`8Krh%EJ5v_j-&-VsYLKoXoMS~xyx|PIN@ILQa z$?j!%7AtZ5ea88i5JanmXHaO))rAtLL3#~dayhO(%SGG3PK&cZk1LV#oT*1AhUwWs z2`c96p%xYeVKVBQ#nLzDI@jUMBFD4{y%-K0O9sr|(WVD3Z-ni+lgMm4U={fI6uFJT z6a~!;`oK)fum?OyA-6-2%-NZuqOi9G0lxm8aI>*5xLt!&z-B@1yUhX$Bs}7WbhSP9 zvd0PscP7sBWL>0lKF~7fF9OBMDNQi9d@+t}K4j~Hz^D2w8>)}=U+`cA{gJ2nsvT~b z?h*KI!=d14 zH8Chpl!RqT*j(Z2<5%@?E^~?alMM?j0Mxkcwm}{igZSW(J#3rOTI5{e_5|n386u3N z=){4*Vpd+bNu9b8C$s)Kg_66(#|WvU1rTQ_9G5xH$&51P0JDbf5s>vn1i5PYE?I5lbuaNeGx8w_{k*<{f}@&6n+ zx0{K&)t?WpbP)B%JlI-AY@y}m zJa>q{#2XTyd+KvcU$4X`Y=%Vv@D?u8BRpz^{UlR*9ll zfTK@a*9XM0JQLt(Sda^lbRn4^C0niIZ^NNH--XcDk*D&JZb8@r6_QVav=AD`cXl3}FB#k* zAGh$kN-lun_ygH(b2*Y;sNq+IW1L~^8+q4D5&qM0-jszYaP1h&qv>vsXW3&fdrV0b z(=Ej75Z_aTGeHX_hXM>f*uhINAnKN{%Vkn!@otWTFT1TUPnW7@IDj&RHi7AF6b9`t zA{NGZ_U1Hu93~7E|0Unq?Mv^^!omDl!kCI%+7Ws-KAU<&uj`VsQb3&FCsAO^h-6iX zRKhC|J)Z*feBv>IhA+bbd^|2KE{HNRw(B+PYMTm%5q?z&`Ntzd{$2=q==pMcEZqk) z#edPDpfMVpx&h@9SSPS5%^bgtfd{uQkioS>|G3~aGooTn0EpyC0;{4jnMp5C&9+_n z!-(Gn<4D+EEA6pN{HyqQf4e=9*)Z3-O4i_ptUABDo&XWh8}*bN%+0hsH92ZAROeG3 zpf8Y++A?i^VrXNZsPM_AuX}@m$wkAm9iO)=ps#aLvJbM`iFU4`f7NQ5+{Mmq2R;05 zvXLd$+j)_5qpFV}+6+)tHjR-Ouz_-#j!ER#%r9_WC4LAdU--pz&a%2~>(wJ&Gn}39 zO6~k5IS|K7Q4oO9Qnc*8Qr{i%rh5b%V-1~kJXPIBK&Gw2(JS66UGhA<=&&B&&pF-4 z%L9|`hhG<{#sZrO_^*LY1*pd5?3?(S#pP@_dwj{Wr&4=7YloTQ_?smX$P(NZCK$$n zeztx&V_4OM+g+W&lI^=t{$MYN?U4u_p$yV3Y(f16L1pi<9x%$8XvOR~MAYbGr5&;_ zzZUaaPQy{%NRxN#{T5xEm>sT67NtA%3@@9g4d-A2HZ++J2PKo(<;)6BNfZWNq7>aL zm`8|H4&No3fXCaTI4R`jzUb7~-VCwFCH6Si9t%644`pT=wdt&^aArtR_#be0bEO3V6_dwL8ftuHWPh296YOz30NHg>)|5SVA~1{ zCl@q0t82j~l1w0q(Lm1baG_;dX<{Fou~o+Wl4$4y=ZoSIwau`#60pq#l)F=XJrV&; z+d)8JvraqLfM6B)=eZMQ+ub6jnP}{?E3eoHS#TS<&t^vkzyQ4@iZGs=A5hNSY=y`1 zJYF%V;97_vD5WfvO$eGc61e3NRjbb;nI#L*coiRY%(v?Vaf2`*-6osvDbig8Fz8J9 zjW{9FtB8W==-b}nJdd#|5@dHk)bfG!FN>*>Bm<~1NvgozK*vZDlYIlJ7Isoy5AW={ zda&zC=FaWWM9J;~2Qvs;9tHB|;0H{o!DDZ2q39gTkb?eORN_l;Y)XiHEttd>MO-97 z)spsDxEYs`<_7INrSVG0<`@zjad;3Ggz3UgN2gh81p?X~r@)qK9Z38bw?_MXDGPV7 z9m6Y)J(X`&15s)1Z@^68HjF37Vg3R!Kc(4N0m*iWQ&s%BrW;ayi*S9%W@O4;tAl&jb@`pPgY0i#J_A(%w9SJ$}Ze&`JpBE@@MZT8d_@3+zE4u7+! zw|Gyw_Tl5v!(%p!(c7K^=Qfu}59}kQu;Gf}i4^)HOg1P9x?%TP2vI7kXu=f+-R2lw zhjNV$c~YmsRv9lniQd`=lm=<8)+Mv_;RFvkJ9kcqShtXkG$R4~3jGs;DY`IGtcnZR zmy+J#;(~m2jM*O#M{WrHir3R}{by0s9Le2s8Vylfu1}B9{aK=ghjX`a>H}rI?z$~V zP_EMcT)oC?Q*Wqnp0zNw>Xmw@eo5~TUCWKpsbU9yfX$7*^SGHJy=)3lFrH#gq3(rd zJ=H6&=rj$*F)5rMIb0?LM^i+ud<#ybIuG3OGSLDa6--X_Af5{JOLkcUh{R2TO|&j0 z1mFW2U04~(&=mR2jC&T(_QVBni@oARz7x5*SV#v(ai=&=WYL8kX8=)d_9PB@0yS0b z$I%rvB1v({55@?mYcM5FN;EI7U-0h^WjsVbt*HD0DT4Q z@x#o+bg7338B~C9DNjK=nDHA20BboOpL0D~tuX|fNK@&~L0}BsaH$u)xdKH`NkR91 z(YCwUxgM%dYLEYTVj951k%AU5X1)0aTy_}7$W2bmcxM~*BY4yRsD?+P_BB>;j2DU5w++BuPzXMgCD^=K@1S%z~+%f>6#oF$OnVQcj z^j_!tIqxVorM6b2(pzYTblo=f*Jy7llyDhO(d9GPd@fdQjyM{&BG-zL1d8|`s4Utd z{@J&9Kh+lY+zbd>?3iEq&d(Iv1u>FBbQc=+aRJdYkB&(E_r>|`hg!{-OkP&zZgka< zjk-r;+W?s>&_+mj0@FowJBmj)qj;qDqLsHtthDbp&RVF@?mz_z&QJ|1A`!Dnb#=Fx z+wrfl$@WSJn7Objt4T0VoQAWL{774*BDsrbAKT$(5=xFw>-`}jy2e+p_VWeFL~GR6 zpJ_Ehs(G|I%`GuYbRs z(}%7-Wp^NrHD66(uyCd>sTu;Gr2xKq5k}$Sqx3ikQ(*AOEaLJa=1YxV3pb}WJ9tXe zc~6FsWR2J~E5J&6>s9nb@65C;bAJ^85<(AQp4i~OAKBo49G$*zc8NuP@h*41W4@8Z zR{UIaj7td&fN~SW6|82_Ky2{OM4P_?EGkdonve(LnpFY=lylcSI_#0`H$R$6-w#l= zVs4@@RjH5iru*>gS-xlKo~h<+PEUa%7?gwO1|tx*@;*@yI?f*F?jx#&dBt^JM6lEi z6b%C0%#)wEtCy*c<54RO*0y2AT*uHoP&~JM=IeS9rR5~Oqb912{QouZpi2(qwah;%`{|@<2`f$gw|^Q zx{2nPP_hytlF$Zxd4tktd!qwFWYv!8Rf1u|k@WBu{eZCq^t8=-j&rYf9NY^u7#fh6 zb+b6Nrq_CLl?PEYsMpuZQ~Vkb^TJH8Kx<8yIH$vr6c+hiZlt)j0u~#}hz(fS^bL9? z%3%(cfl&8NcTcg@!5A9S6XvryZW zkPT808>Q8ZdqJ76Dwn)K?O?{Kqn-YLR8He;JzX6Y_5Rfgts(kkjVX5l581XWRcjhM zmj!FpBwTmf5o)H&1AOf>du+`^=757H}r->Ktb|)jN(?ZSz})v{@FS z)<=O|^md#X>=1Kp&0nGBbGCG5`=(-K$QF~BiS8;A>;wewP$yV-F_*+*gtg)sh2{ac zqspyUFF}1$vt!sq#@puXr8y^Vvwg~jBn#=^6kn0%3Hj=L+oTt1(tPQ7n_!1h?UF6? zf1-PeH0jLtIh{>9mwNGTB~3a>nzX!iY+Kygl?*7aj)FsYxNXwUY0^+!_Q`q z_!2m6w~C4G8MbMEplNe=D!NK4_$O&QOevJ;CP@NQ(~feFIo#>!1_@Q{EQ?M|!k@XV zMB3fw3im(EmLX=ee?b-YUbU>%iq4;@F!_dJ1JZF^g_HnUb*fNr(X zU)ZBK-i+T%0S2(+pWg5kh}jRkqQxxt=vjH!l{~An>GnU9uS(3=bD8f#z5hDakbFWS67D2~COgz0QOE2> z7t3mV!LvYR_C^$5E^&v#e42sP)v-8kU&fCJJieUsh*3i?^wM6KD1)tUyW!S2Ob6WV z8LYs0{O0iMKz(Gso{kR8<5>UT);@vQ05QP!$jhylQ(f8;yQyR!jf8HBuG-&wsz z*A|_U8^E57uDThOEcJ>COC*H0G~+f2@XY{SsLUhAJsEa58!aYM%qeF1A6?N*&|`(< z6^Qre7zv$Wg4vueu35wc2?ZR^8bm$d&JJi>p5$4kOA!($uiy`1U?1e)WaRly^bLrWy3N{ymXXl;Dk<*dr`0z)_{2|a5kYOHJNErM3b?0wZ9^!Nsj4L&C}=#v08kU z=c?4ct>kTVCDC!Bbos6?DtS_($1aY0{i+}uBlgT)zV0nl2)y%4z0Its>oLh{U^0wC zhh&@?&h9RMW3ajFO~r;c#YpNpkDgth^Xa}l_$_w_^yI3MVHFum|EZWLNVWF27(hVeP zJVfYtRHoS{!ez^smN;i2Y_UrrFR{$~>xr`Agv%x_4V?9Gk_IZs2-y^-!BS#V=*2dX zfTWGyJPj_j|7*6vW7q~?RW(oqs4|R!U@Ar^dmteFFp{TMY&0zIXGEMjTOWg!Q;qC~ zAhR8?jw*8O{Q@{Qh@1vI?Op{ho|W5xMS{wUT&rTQzg6w=)n5M&V^7a%drIx`hdQ_G zCHWFqH1J=tZA4fkT$aBIBI$%+h?anO^_14f49%n_4~@!sDgbT*^VVQYI9X2sv!ANZ zbSFT=2kjI}G_Z_sExC8<--D6%bp8gq`>vR1f)5DH{zzCRNyjM*|bo;Q0G_!Bp)YJ6gy1NBN>-8Jx zyHz`Pv0b#W9ZrLY>@M5~DgW)5Wpf^Jp>&<5P#mSwZQyNy@&L#+Vqo1KYV}sdt#;aQwT*6rNeb3fsif)5RR|AV@ z900F-ac94Xw1s{-4@D1bE9ov>u{N<=@ALaQmq13HMy00cp;+bH@qS2nLCyS@Mtjhs zLdZ-3hV~Y_eW<6Och@)`>iVz|MB>vQN;ywaPJfhyyOP>6%s5*DVi#Rg4a-GJcvgTuZOAIh3cLIzCp2!40UoLEMPhlR8vaa>3%ZmdIfyNY z)+0nCQ5p@EH?;nWt6y|czt_J)v0F>!QU7(tp`3`?vWT(;s6$LQ^$ zj-qgJz*pq+i6>oeQNRUTlTto?JTM2*D5xTp{E|rJ54!Yb>0y;nm>74 zhfCfA@;^lBwmw~H4p~pAvM4_p{`3KNRsY~lEcB%w@=F7aW2gCcHnhXtACu~#i9*PwQPq~Bd{<{;fSJ(8C0r~U-_`fMA)AWD+ z6#NrZa2>ymJ*~`rk|5TiN23dry=)))Btt53HKR?l%HY5p$rFXd(b}P%2 zAWqCD`$v@+KpiGPE!_YA5ceivb`)jbcUN_FpFVxonK`rXlV!3^GTC=B*~y+jAdo=9 z7Q!AN5I`^)!V*9vVHH70Ku|;^5m^M4AR;32kcfypxC9k}het`o4P40gyQ_La5cKl> zuJ^mXYvy$I>C;PfEqC4P{|;1dyaJgN%!kLc-fYxC=2GPkX2sjAAHZKgZPw>W{>uD| zf%i(`5M343grrZ@^Zn{<4fAiLo*0y}(}I$!1`VlNRp-b_=@vy2T3e^f=Z!hr226IV z)nb7=WPR*qUr}D2M3PrxGRZ`7N^)uz{2JsS7JXrTo)#ouYE`4>ViWF#Zm`jr%;T={ zq`=P3^J*G(MR`?4!q{{<#%3V;au}Oh5KN;jvDz9B+!7O9_I%o#HeKiH#+mc*Nk1<{ z;fw&$s2hTcJUA&<)Y`x01yAL-YF?}*UFucckuZG-ZIB-f>NTn#7!uVe;obM22XrTO z#i3PSY1d0|QTieVpiCJgl|9JY0ELA6^OM>Rb+s*VyA<{(-XyF_NxioZd@Q$ZpxQq0 z#BBqK1^aE@+sbmiq6N?jU5RaKJboxmyn^K9@;-3S)rb~tfzA&6 z$dRTYHKQtZOCbhajlYyDGrcNDCj{~jijmQXrtzDizC7?9|M{IaioXl*j9Fs@b?d~T zBXx_3U(@M{@g*9^oe{`O$BLP(c6<0Ey)9JR!`f|Ovsb*^_f8lKGEqO4vl_Dn(^ORS zYYT~Vxqvnmr?YoN8bivQqp#Dd60Nbwm)+^x{e6+@PS@;*dyIJGWQ6XwD?s>htXYIa-+Wm%%i)t)w*pFVZRTR^{WD2Ym zC~sLs4!kLP{-m1I^{3^gRuINZR21sCiDoyccCYwpjr`r$;1FTJOhPp~IVfbyiQ~(b zwY%Yt$Eo!;wOYq|za7r7^LXOPGhT5G;&_857b?kiy*bQUiqpku%ygdb&bUG`h8ke+ z>?udmbDXll*>Jl3m$Uo$Zr;n{F0=gW%=IH#%#HvVW5lKQTSu4h9!s3O^tn6 zFa0*oDVDSCpjrTNwCU$$^F7)0t36q$?~3HWLJmBOF%AW(U&oc&h&24ORz6Y z1Q3Ut2p#>o*qNyMiRdgkxHAJjb5(I)thzxk*%t#h{+V*`UWj3R_>MBms7@yg*B~lB z95ONth&8^>;%m==;Re~@30qYa53Tl($9iR_1v$2R+3M~{t7GJmm-#5m4-UwSi;DJI z$;a47al0H7>s)TP%pS;*xwT(&-?n>HYiI9NuN8goRed`9rP{0eU8&kvN_BI;RQs~3 zJ9nkF#ovrAp7w2V3BR4-nQeJ*FV^B({8+1Tx&&O?yyG;+qxT z9Rl%Q5eLigpS0D-6G5nXwHO9k?R)e?tgKUgH90j`$ot&j(@dC+A;X$)C=!)AfY`KAx9px?=;nHkQ)PI9ASkVti3a`1ppY8yPT+-`4k$HJYA8S`F< zhs{}#!^P5ycwyiPau~tHl{`t_>#oo}2|We=E${j=&hQ$z*SQNEZ@mTX(zcjlx9_@N z!ripK*_-lSQRhGa+7ORW0@8ty0twfv2?sKG?qukwus{7I&-zE`dgBs=R1DGvQreL)hF$FYvkS%%QH@8QzUKZFx}<Mb8-PXi+mdA@CWOOexwDDMo-g#@4~WZEH5gtbA|8= zTHmV80)3JFeWSwVJL3l+GT@3KtK0iIWnD2Iu}Xjq#txVp2#QS2j3x*a8^a8f3n?9wcDptwrH^1pGS}t2o6Ol#pS4Mp+KzzsGurVia9|DAcx?~9M1X8)Xv&y;?pnLwU!a(QGBxbT6ceE};WD9qI zFbyrk(E#?9_-0{WnOIWX<%&~8Tl=P23}Dq9ywbAzR8y#os+O=?4fanJ+n|iGuP5rg zhm`3hu15s;tq_$OctSsQKteaE9Re%#7P*!w#_kAKdEsXYUKg+|5=PpmSgY5?d~m?8 zfqY)9>gvs0hD#@g(3)Z&7?AArcy%~3T*+HjRR$_On%*C}%Dv|8d3BsnoVyinIcNKQ z3@W*^a9bsGSI%joD4UR|hnXNBV@i0X4 zA=&BC!J&k8r*K(qLl~(S-FYZ|%eX>c9CNatvk_43`-Y$GLQQ#y}a%3UCr-tFa2X)Y7r49 z5vut0aKU8zW%$$NYiv1>VNi|pij1LmQw(q#mlf%HrGKUMw-js9Y3YR+ed{&e(57Wf zvudfpX!2JM#9@tvlG*>#e3KueSMlg~ zbZhcrJ5%n(ex{hhF>zHSBF6#j2rLKs&nhLavlm#CJx1*{+qEt3pjhdJK#x34xY`hD zP=W%dL4id#IM}R$&a&3n_qjPCh%9UetC?mcy%SX6tlEbKabgCd7%yD1pxn!^@lI*O zj+1!69EEVE#T#>|wHj|$KXnXiaTE6CbHq_E9iIAupWg4qnFitIPDQY&I1hCm3hz0b zPdT5KA==A-Tj2{)gMVKUb3YzRrlQd1<)@*Ywa$QWT3<#zuD0rFJwYn$-{hFDA@&g9 zJpH}jCLV`a->ZRjVmS|+3e^mwmFyeLW_77dwKJO?hO;8Wo%TI!o3Fd+cd< z?2GQ$lYBeM%YUQH`?>%D7NaRJIN$PHGQD!_R-qU@o&j(opONN!Oov{&cVE43;8U6h z*(&TTx+>hMjjWd{_ypnZKT-O96}+c{QQ^bB@RxY~t=%b3f7dwQKbTGV_Cx3UH*6>1 zJNcimr1|48O!bS#>ow?#W|>-Gdk5-S%9Iaa>h-}3tqU5|CP#wueB1i<$qu1Z6LNngrEpka3!PVJkt@DYRR*6Dm+Y)c(D;^|>!BIp9yTC1-idR$DgL%8{t{4e1uN@5m0Ga`Z3P>`j%%=b^imoS z6-q$#3Ul`OnQSrBMI3wqK{#6x!bSE<<`JQ&mx3Q>+L{s8r^caNEh@I&X*a z_0oKg%jP#C3PUIAF%r<6XL6{MFYDbfJ5;|D@T=a670fS2GbK#9wmZ60?Mtcd=tR4H zF=dOVjV-S5_Ypgjf4>YM-epjNCI-zwJ%O+YU>fpi)C)m{KBzugBXN-8u{#Ds;3!!A zk~y>f_%V{&y)RmjJ{es-L+J4x~nu;L}K`lc~d6)FleEVEn9F* z&V#u2N5q+9;Zgd;Q+fM&rnQ>Ui%%kOlGv>D6Cgk^&?m8(DvKUVp}}y z4o=z4fXTm9;oX~tU=4;cH85K`L<_~o;8h4SW^lU_o>7dh?9F`rI zmjKkYH1Sx}Ok#-Wmo6_3(96PasfvJc5i~~WJOXz#G$C?tmAm2lS%o(igJFYWb(+F3 zL63egV;|=M%%=>nirH1uWcQE0o>I@a#%B2anjNIBG8-%7SNwGBZS|+=H7i&(6N1GHhx3MkdIq%or`+@o_swP70cDK6Cv=Wlz7KGr&MuFZ9t=P;0IVn83Q=q>&qnE;x(n` zscSWxof>DgU9!1B>t_`{)WlDtHNk%h5&e(8l?YxyA~?Yd9}T^_W6)ena7hJTMj+8f zH4-#c9#^6dEW-03pn{qMidkiOP{>rU;EPEAgTP5ZC*$o-0dUHI?=ulZWJ#C1o&p02tvoJtgj{i*;Bvj> z@6hTAUAu$uqVVemm&F-$b{kS?BmVg{X0}S!1@u$VaMqUHOhlY*5sY-!Bzi@fXDHa^Kfm%rlBT;y@Mqo=grdf z05shv-jt{>UPjLX=)tvUEEalZSIm%Gj*#6H-lrl$T$1Tk!!m&$w?^OV3a~56Bbj$a zSomUrmqQM#QYEpIa34!EexG)t!j~k7wa&a0KsvvmQt-b#_P6e_H}TlTp7~uYAQT_> z*e|%}eUVwr)30T1OddN%kSc;29$TTR4{Y75V%NIKV}BD+!!N7UV*A)_4)JW(P6E5k zcSG+?$-Fn4CGAF)2OJ7ts)C3=Zp2bKG^Qlp}7l^SCi zyr*FBhT~W^4cVSHwM6Fo2{&|}ISK~HEJp#fT=33-Qy>UFu#Xu>3`ylY?s2&oGagNr1H zMcPE<5w`mF%ueB?2k*p1#oV05I&%n6E1N(p8M(v@)_7-><-v zVo%FDhQiHN==&1&`?*9gruA*UvB`FfLqW)Rr&K_)8@UVc8v)h^bl9O?fpfH= zPqp}{5dTLjn|Jh}XiaKl{0SQn+U@UE`?Tuz7uxM(X{f?b3oa*|e;0q`fP!UFJ}?Rtc6{8@$d;yv$r$&{_`82L7lX zRSjuD(@9!TW|R!~FQna)ceQw7;h|sa6Zg8pCyh!fm>4x#Z;f5%ZGR_qf0*o>BUu_> z)&g@RO!_LS%+gEh6A!XQ6dP1xa&$C5YtSlQPTBq(xK9%UvMutSLO!lAO}t_`3dm(P zkLMI1F|uZQ4jAqRYx#X2OVEh`=ds zrDIYx`3jhk0h~EEQ(iUGtcHaa=aaeo(uwWe{sE^Eqe8Y>Ys*@5)zumC9hT}oT5!Yu zRU?|s#rjf%wMdj&EcrX(Y=Eyc3lSb;`e>#^zsp5)A!Tda`g=ad=Zc6=pwwr5n7ZvM zvyFu!i?Ou#AmR%J2e*i%ez-o%j3>uHph6KWA^RKaxUI!qTN1p5J+AhABU#nI`!fg8TwQvSnaG5ZzX?g%vp@dB zN0DuM$i)mxI>hnS?YZO0@AiIjuYbD!pYKm?lRx_oK9sj=2}m5BssFt2ep$Afy6W zgcy_4^%)Yv6?cvtlJ?qMc4>4UZtjk^OQ45exAl_f4sOWpGpai%?t_M!7jj6KLP#t1 zPnCIDM87%v8|Yy6ex#Ax5}MkWtjhQ0dT8orm}frGVa+}=<~MCZ=ib4T=#2e@b*m3> zm(R+y$ZlWD*`l|g-kRT*qdlCfaXK7_7E1^#S_o8{`~R`Bv5(UB`&tBkOJ>XBOrF|Qm*XJ0>%vcB^#$Y(e14IfZT=ol+B zf>r4QYAH0c*!)l5s~in|3jIM3@r0fpu{r{=TMii}+WCbGBCGPz@S-Th{HtQy<^8q@G5mS#J?IPVZKXwv ztOXxSd$rKul3pGTXs)m{I3a3}CApJd5tt}PgI^5Pk)(9Cgw2->XvDDZ0`kNXx5$#W zMp)^gJt_Hw#66TKFT8)@)8= zFc0`+-HM=5Vd#jQkZpT4QOTB=leyRt^?+0CpGgs|Lk{Ukatxz!LnDSg_HuC1_#LXj z|K*Aw?Dxz5_3yaS&puSX%0OiGBHvdP|+DF?+@jk4moF zf6WKI`f*pFQr`boytjKlR&F8-g~0EBcOK^J;{Te2V*l<;OR?LAvUE(7X$}KbK+d&$ zfQ)Bh!NwhgCcDgx3j}ms)W)O&LmC)0M?YtgScSTQEMocpGttiyY%n|dO;+Uf+wl81 zY6=T>;_`86kIM(Pks03FIfx9go?;-H8M}k}aA9SWca;J-;}%p~!$dt57iShCocoV- zB&ij(7d#pA(ltJ?d~hs$dgxU@`-4}GQcO7U?ZM{EHbIbiG1^8V`tYif_jSKN#0cd8 z7YZ=*VDq?wYYCX@DUq@aVX*6*B2&`TYIZ_o`&WkuFe_m!_Ndf8{oy{4MQixv!JrI651iM1JR|NdW>;lf2@4v&`< z91GQ=#-PgS%cp-*_66UilTQbq{s(;i|M@=3s!NHWli2<1%88MeVL8k4iC+w$LEAC? zY{Ppk`;Dyki5d_go8V^4=}d_}CUk>EPPY61OpN-j(M&GKXscUBa&kpDg`Y?CoI`VU_Do^D2zbf~z9;uzh#i8kn zzU9n~irC%C)i^Xht31QUTSdPf!PMUlLg+RPpvBET+M1Qo7?vk-;d~ zjaB6=>&&%1MRwbi+MfD*V2dASY;h|G$>{c#N({DZVdqww`iNk!i6r?#JgLL%hB11M zUa|j=MYixMRkc7?+hB4$l8M6~hLI2cvMTngGDty%L)|2LrljUeQxeH?q<^~#&k61q zH<6>|n?}Vj{v)409OJ`a2>PPJ7$5ct#>bbcfINwqGEC=B6^3NwsD3+*4o`?XRsKJB>^Nd`7g$^&HC_*N>CR0{~`(8 zW*27_&C$fB@)x>tMP*G3tOalMBk>ZIFh;lCzvI4Q{^~i0seKIqE=QG8l}M#k{QZmV zc~+M!()z{`PTP4gR#soF(SHq~ZP$j1<-bLJRWXPlAuZ|wT)g)0waDIp{a-)w!w)`k z?N>=wXWrGQYQ?_vq`$*wnr$KHL~uqlnmhnK)9hK_O|egkZiV1TS&_H^Jh zP@(6+zS!TB?Mmic&dxh#9Di(^?bhudu+5aMaC=#uA$T@f|M-Bi6aR)*P;=)`Iu{Rpjb5aAaELxg79QiIQDs0u{(avwtQ17Lt;BAl+aN;aTl z!#0Vr%y$FLWA&|teXKr*_rvJ}q$0>tHG0(ok=fK3#XTkwiPDB~`Ho)S%ZvV~y`0e~C@b}R|?{*`$kL~(XG;Dt_0^arO=v+GU zBUzi9LITu^I2@SCsI7`46Ft)Pi4o@_15vCGItg2?M91_A$3Z6&gH`&3VIf>+S5{H^ z0B>YDYabaxR$He=(M~_YZ-OBp$CV6^m8_`cs|mE743U`Rde`Z2KdbjqQ?u9i4iRJ1 z0!*#XU})+wF+G~7xlaYMCM_@-10ks=dneQbTz;BtL`SyUIheQa)GQFc^SyIU*UeGy zh{PHI^vM)>gmEha9~I~u&a?Fif42`rR{L%aZ&nw8vs;aCMMrd)a+n0WlsJM6e z<|fUV52_Q8Pe)>RKp-bIJ43GqVe8RAeHH_)R!pJuyHoCD<~P>h=xgTu@~e;8z}DJA}< z+k<;RgoL{%LAn&BZJ@M;dn50}wXo%_dW89%(o;iF;=3xJRmD<8vW#6LkY0?UACnyz zTxbAZUso|cPDcv%6!GSN3-^VpJN1xni~E%=n)czo8vZWpU9Q$+4)3i;0}HoD>1p9l zRen{bsrqKW2CyA0Y0LZ|RYAbhVQ!jSo>dFwX}=c#v=c&}SHj{Fx2EsW*(ZH*SjAia zF1+>CE|u8{Wx!{{Yr&NRMN$Y+8HY{>)&`@DodV!!+F3UYYfiJt`enxT!)B}n0+bXz z0_!KB@5A_udk_RRB}SSfI9QO7aQymyk+u$fO?#L*(d)5y&{}ffBH`(oD4NA~K!mv| zz{cWkfL3^d>1wX+2GnY1&4XjWm)gE^(bG5nJoU!u%hMYmWken4XiV7OW%#iPtq%MxL9J( zk#?-Gw1-mVKL5oJQ|aX9U( z)gecYS(Lg@8&b&a^&W5N{lL`y`(!bc4G52KoZ=q{{1i= zz~Ay>5Gy_1w#z(UvW}T|UbGXjTiJtvh;ev0jnBa$DvBN0Em ziD)FkuoVhag}Xt>+?B+{Wp*p2#2`xqtNW{gzR6!e+laIQ6PSF0sKo6ceNO4%#1OVL z6hoBL5>*8CEoLS7710KqNGgYC2T$L>Bkzi{Cfs$!{x_BfnJ|NIwA`1+NFj}sXg+v= z^oEg|@gS*_{VkGjp{!Np^Z} zBsD6hs`jq3W1FYQY>``6qLh|x(l6Ql0|Q-Fj(6vFJpY#N=9@Jx*#nUN|RH%rPkQ7@6eAV49+JN7alSU*4|JY$){~0^r@HpMZ8$a z{w9MOTtkkyU*xwQ*<7xX>qpq@WrQ7gmRwcjTvGdR-iPndBlSxM2_Q#_8b$aIoW=Rl zmo;d=Taxbr+2Q^^m_Q#)9%-Q<>)KURoo?U(PK>9B_!{xIe}`71hBCI&uC=U6(zSIM z34KUr3-!qAv-oEJY&*JEba&?|_P5Y5vpzVFyUTnH2!yDD7^K1tGDGEW|BmZ7sT2u0 zs0AuG>L5=}YQa4|_zSX0A9IG7j~pEkKUk^T;mMgjrM#WAr@O}B!fvOct*LtxsXZs~ zR!q_T$9rlmvbl@_`I9#kx+60!nQe?L-c_6EfaW}4m$u;6j)tY6_);5tJ_OIrXF>_^ ztdicf{b+)0kyem)aDQU0mJ#osdcbodd!G+l)7{qJ->Q~w9Po7B?7*iBMHE!B14b76 z$ykaHm=Qg1i07D$YMB!Uj%Ru7$N%Ey!w0`Hc4)T)ul?Y+1CP4vq*r@dkG2+qoV1+u z!v5LuPxZGm!jUc${JK0*O}{H%Lhwwof_{6lT|uuu&aR*r--RDa^+#4vp^TO?Bs51T z4FNrNePjfGh}v07hfe+@bdeg{We}QXX;2_rTy>G_Xm_yTl6nd)4>=C(siW$0T#nHj z_5*X+vo?R|G5_hhOuPLD#5Y7k`SIjeCV5Eps33bX1m({SYpI}29I0y0#FPmfGCb{K zm@I`!9qgc#u5{B8!Y<0^o^z9RFRAVU%O6+ZymsL7XQ!XLTDSIGzkj7m7?J(o<$C$Z zpzm4d1e;gZIe8-?0rsu9vWPC&PJS+lp0BRz|uyOF^)o+?=0#gP~LD0_Afi)2uKecZB{wS7rmX8vUP zjPw=QeE2(pb<>gNa_Hqp4+;V4S(vO9$}O_=CGRD53}|6#Kf6#R!&`_-2!R7FoMG)g z`-ist24RuEh%*{L_OTy(kSjih9MJ*7OS(JCf}Vmr|JwyUA!}Lg_Ma{2S>E$Na`m4q z=m)eL#N1Kp0|;*@q|vt7hnDovo@vRZYfDECq|N^CE$(o2GP{#GM;FqSvi7-=D^;}> zupR8ibI-W`V733?TzBpN)z!Y}NQE8kG>9cChr9YZp5Sn5Xz82#N?Y4;>Mny9;k*0= zMMpv8Ms6ujZpLzL_YPo-?Csq5p4;`T);+h|zhWo1hm`REw{q8zI3l_E2FV@C?e=p# zNnPFdo}0VHINx(C%k1?$NR~89n|glbK?ls3o(FyGbl}<+Kbo1p z1Gf8{pV#=%e$Ok#oE@9svWjG_{@Le~wc2!@i)OWIlJdG5&@-375L?)@qw_5rRdbzp zMjwRx0knEWD#6U|k0C_zl(wmoEco#;69AH2H{YpIC&L903D}#M_Y``U5h!3=#^HZb zjn(UFOk?mirl#j$4F^A$9K_BSw+w2oLWNq3Ix292G!syx)JjUteDM-p=;fIQHGV!Vn1F|~H23EZtesq<+w8@4_1r&&iZcVwiG13u zx|7TMlDu!DF7ziSLmx(0nuvR``}ETTsdBm!g{G)S$52(dg;dj38{lR3)2_<#!s8b- z<9^&5U+^-PrCu3acn#|6lbi*A3XL+Amg`n4*7x`B#I}TFh}(%h=LCBXZz!YN;Xrq* zJi?H$(bE#@b2VoFm_@+_q?<5u^cW#V;*@)`mSj9-okp-i7KQ~$31UwL5~lDRc^({ z%;(erE84tnzX`i{3||*#THTAR<5Wy<=Mr#&!Y6;sx%Sk7-c5cx+VU7bfH*zC^R`OH zp8=d;b8R(~(d6Fbgep#;QP6`5hKI(l`FZ@Bn@NHWP736mUOW7og{ zfX(18W1UAUMX5ahD8`u0`^ebO;bl<>zsAza__0QWZyS6oXxR(!XHh4Mb8;mPNfHCH zP4AExkT;YqGCTAjZ|yuiCLYU>JD5Q5zVxvsn6N;E)zVa03#y1%CGHhXI)3~RFIxAf zNy_469uh6i#8sjKg1*e5M zHJ67~%=~mPxC#ZMCiogdHdzcuGG>T68CDM$$oI6oUGAVo;5T zc2BgEDmchFh_zr!EW;zZFAL0cuI)i9n?zX$(Npc|k9r19v zIGy1dHx6RvB6Hy{$O8;Bi9cBgVl9#KVlzT5{kT(0AKjyzuJz1L4b*urR=f+iWr;zd zi=|wKR9$w?-Uq~`v<8OU6LgJVj~oas2K@Cgy-CcPpYgpH{G;^qq<+ADX)E!hR@QUi z7G=)TGXyfG_KD2RdPhb*k-69vm%8FPV-J4Xefy)b-+to`-tG?m*d4r+LJ)Uqy@*CCtH*yCCt>|_yX z(|;Ej8XAX)gcU?JXUR~ZzGcXPnRf;?!21Ju7v;4ki~bSE(uS#j32K{N%Fn zAlx2Wnt)k$e7H)$fq*pv!bGW8)$rYTwY&uo_(W(T`I6E}%7fu7Ma*ts*Cb!dT$JNO z0)CoKzm)moyyeGv{XmH~yVQ%?_HND_F`3!39CC??jKJmQAf-Ya$+gMZ=RIg+t)EuI z^%NGaJ}#OU5AMWEu?u%6k~VU9{&93+clthuUG-dUpUm~g%EZb=<`qa=jD6IE=Pd0! zz7&t++gL(8I|v3ZNN{&$+!kI$EXdG`3rPeyCLIjB6{W2yhCZH@~Ir!Nk0Sc6YF`TLd$7JTY=vSxvG?(CwK))^L65Lp>|9yuigqorBS%K@-jfI6QRbGQ|jz6z$y#4npV<@y%}M68Wit zBlNc%snr+3CCDk4%YkODKA(e(yg&Ko3EzLf4>u~1cGxVH&FpZK3g(1Ys92iKS_Jn`8Y(b)CY%zh{szr=_Sw5XZZbNVoX4b z;UxPee>GGA4{#FdG9MYx)I$ z3-Pt)v7-01e~`XJF-Nfw9r#~|aha%S3~T4%BhaDWB#TiL^nx*!COjKX?@T@?^Ev&W zKCg@a&D#=8^eL@o>0L^-k|7dS*z@jE8Z@0(#Y^Ky3R2*gh2Oz%kDBdDKN;*yt6k|o zhC8KZuVl%rI}F~Ypg-9Fg3%%s)ORomcS&BGp$5Od;vQW&xgn^eV{=KZ@cikc{~Gep zAIij`gX~kU*Mi?p9^}%Zp`sN2sAzb)cmG`;Wjj3IrQeM{+*>JhH~d?a@!wwn%M{!fjD$ zdjvNlJ#-=ivz9)X0F{C>*`dq?$@X5mE4p0ojP$N3+!>X2MYw>z1j{a0oWt3*^wnan zfB~X|7Tc7I+tsn+-B#0^D7b{DJ<*N$PME1)QU^Gs%L2_HM}>2OqoYCi zUA$>}=~E<0jA^-;>E~S$v_c44_+(g7P-%T+Th0-DL`=(E#G5ug?R@(35vk@2VH1&m z#!sWE;e#|2!vV8b2ul@io%VOq%}<4(lS94T-yxaAV*H&X&Sj+`46MUKU%#rqN)(rR zRsRSN0t%eyrFh8|A3oS`x1Q*km&&}C@VydT&+8O4O?-Brv|ILBC;#b4|Na>Fg)`iw zaRY6J6#WTsjstgUB`MCo`e}{x2!M-N1HOh@LmVX=_Rj73N&wJrl#dsH>HLQT8k-H; zyFAqgdo{Ub__)8?0(=Z??O)9fVQU|PtsUc;_d{=cbS%rq;k5cxmiTK0vkCWvdsIc@ zW^;y`jgLbu{-M;dfpH3=y+v1eR-5C5?%$|v_S7@yA-#;?bBXhuZ1SE35w$|Mp+IZH zzB-gX2MpL$)sh}agqk}f4>icR>O6^TO?b~9bD?Z~25;LS4h#1Lv zzeq2KwKxh+jMpqOWCZV{sNYITQVQX zg6YiPBJW{^LxsP&#MOk_X~JY5A^<8ejKeg%ABExFv`CodhLZ}jB2^+xquZCHOhK(yP|)|Z8RqSv_d!s zH)=MxQTJ2;uz;suf*aLA3rpk;YlQ$WuxyylnLt1dAEE^c%G+LnBee$nNoFVauyeO* zHMOshj0&|(*OKF&HF@4Dq(S>5Z3-Db^E;&9IkP{mf94&+tV*bDARFZbks$ss&ShJd zF+jf*nK1TSb=XkQO{NNjVhJx=Vxx=3+wJ}0#kbX;V7E)RFyzdq0`KvXpw;%nu+-07 zEY1qOiTrHFW38@{Ubo{&W?7x<>ThZBj@_*2ZuBks6V}P@56;&vzmKlEqE-|yT_!K% zbEe8?=u)dyNxJl_8lfO>Ba*uPNBn)7sN&uFUl#3@>mAIW{BA)uybCZCXZMo1L@FzB)Tw&$0_3ZX}WRZ63yB9vdMU_)Q@4w zpNIhKc~@vdl$RlKom$v;0lw&WDDTbsPJSO^`g!jHBs5t#yg3A;i{s^9V(9J;Du8Zs@H-O%7J|J?qwztHoORO(ZSW+vR~R?(}W3l{3NR{ByZ?MbkN` z3s&j1(LrRTiAI{ighsE$MQ&|)fhkm-N040jCjNY|KyxySA5@1{&W+3Pimoh^aGY}7 z9KdpF&JpvRC_L^ccM1=Lu?@<<-w%%no>c;Qkv9)(Gb1(8T&w*;xRUUDlp##+A2F?` zdELzmMC6<5IuhjJ2|^n$L6;y(+uF_M3cbmw&F1^ASZTkkvfE!9TYO2`;zYZhYPU6; z3|g5N^4=BAr;g>?jv>tQ5~iA*(FfHL#n#BNHpo&IDnDpm0lvD+?A7`- zXex$DJZz_s)-A^gDa3hzzD>*2RKKn!W4fw?id=QrKGUsT@8#4K>FAezGur=$Pb}u_ z=!jHaA3-LTxF$W5LB3U8OmZVIZNBD;Irhs4yTy|a*XgyL+RT90)c9x|IfBL^-~5}upQ)H| zlGDJK=P%tJ7qMAzn$*E6*8wIVWrN+9@9tOw#~aD$F2C1*WMA}NCvuJacHlYx z>bRUEztynx*Vt0_KMHi!fSmcCewOk4MLd5I_wM-w+%tg+9}NriNKQ>P-!lHxa7Pfl zoQ^h|be%V4EMsvyNLkwiS6~cVZ}|YU_;U-YeeaBM3?Vdo8x+3D zmewAvS|D)1OJT^Vfj23+#ce*1J5*f=@~)T;Zov+qo=^>TJ8cIZs+-~KR>LKtj0&dp z#D;YX7#fqN!>V>Ba9GE?)Y_d0y{zweXSc)dCz9`lJd;yT!ffI+IR9{}8zBD#ez;+a znd&{oN|n_o;&+>6sa;Ri@#l;RjKonKSx+GGYSYob(Vyam!24Q_6@5vA-m3_dg6^DP zzNq#5pf#HA9}|v94-1blgVeax6z~$}Ia2GW>Q`J*+9yo&%RboRgLweL7p|N`@#a9p zt1PR84Y4!kp@caZsUJ|_gLC-rayu+itJe#>NeRQ*aG&XH5YZdOh`~oPg~Q617+;mN z=`M9Cj5cBi#x~mzS0>5GP$3o6LD&)}3sqH@C?XB)3E)QBr~=8?SnIcWG1=j(`oITc zDD%re^$flE7T@dF7c$cgo}ThSr3+xXS-!k@qwkGqLn&OQTa!OY$XG|U4wGJ^29cFsyN5R*vPWqHF*+&eiDRBTg+V#maJOt zS^=$-aJ-lXF!e~)7mUUlDo=7#Vk?%ONw+gi&djMzuD%{ArT zQ`p!dc*!)cxEezYUhxOfiA8n_L1|F59wCs$iNg&XPV3B&su3K?$&s`^I~Szm4B^44 zR60my_GjrUb2ItNK5DKXi>~X_vIp?twaWj4LZ_i`RklesM=bG?+8lk>x5an0E#6VK zxY~UK{z^`HC$Pn>?%=zwxXu;3-R1X$_LQ5FgRZ!e0&4T!!B|R{=oa+wU5t7RTNUPI z75Q)h_>qM~0HpO4WUO0NTtI7;rdbe@?uGoms~|8rBwPXW%a(H$)~O0`Q1R_2DUvGW zgG@fCeu%N#pU~`9gzI{mvOcOXe^Iria%Nadj$Ht02T+)L^R9}q7!(nVfk8Q(SVF+E z8C5~l3(I((F^dov4Uptu%{<*q#UxiIJ2B`epyb@9h#N4Q$PPk+7$Qp3DM4aYpzkv) z34d=6`Uj1Omz9NzW;dvA5S8g1yw|RrFOwu*7eaKD_W39sW@V8#FlaL2Z1CN=q2jE_J^% zyq$!`V3!(Zx4E6bWjz=i1iuxt2*oJPO?C*_RMjm)DSH4S}=r_-0BK7kf_!;KZ5%W^Zp#Pg^l31 z618MH=O9V<;!}epeG@REF?Z@V+^lNAl6a82`ERT zV(?!tz<9xb4Yb=ScH6#3>%DrW-S2C+mug!~wc94))Se7i;O<7sNK{`p$DW_dRG&IK(~VSp;bw(- z|E|;^l!{bVq-1p6)>Jp1SnQS3pi61c?VK-p-@DZYg@eQssZmh!ycr_6MAKOomhjtV z1-QFXo7Hr?9khw0BQK`9bRT@ivPkx|x+B+t-qKrufo8TjSyY(Z@In#z265B9a#PmE zenE#coYdtjNnOO;|0yMvSx03yL~Z(5u03X}!hzusKIJPwONs`Cz4S4W;0;&wxP@Tj zNM2^1F8667-R6&%OHb#jh4#t;-o5t94z3((NTZ!-cP7_NO`iCS zy{?lfhh{~tBaWJwymB-!_8H<{AvJr`o;T7|NPL@|)7#bI6{-GWJ|#{vf79OIIk7Kb zqts-isqCrA_xHcUaSA9*`xd=@dIQn=@J$*R{U^08?xVn0BRv(mR2|=^Nw#q|juR%q zxA@4OUyIGpG9S;2x(UYVGNn(0pIU^CW~Q2q&8@$DcqU?2{+OpVbzNXzYOwcGdXVWG zwgajvUW@Yxj;)AW!p^Wl(tS$b-7i6W@X_Nja)^p{7=)?ZA5IrE`(51bRVpqJ)|Y}> zk4}M_NKWxK)J_C0A+WyfR-21m@jF)};_DyzHo`O4r@fovQ=w z)d>>#yh0#51Px`ML@s$j(%15$8x=+;AJpFeR(_)Z*rt#GoTS2#{EUoo^E~-^;|@Ir z)CkE+<1NP!>fBy7!@JrsK5-NEels3|?E!5Z4yhHUMzY5rrWvt*i)oaZ&zr8=t+1;l zX6qNNHMu)8f%*zaP#J3Sk$OHACPOyQm@mB|E%@6c3=&On7g*D{-{U7URv*fw6Qc83 zM|37x*|2j9DR1t|jAHcwn8UOo6*ic*aHzPc$h{aK)=dS2rOLvWA8l`Ow!LlyBV|CMfoDIzx_YVVG+q&8P2!*DwNnMKkp>KVMeL}H$`QxsAQ?N$=C^W_4&ov~97 zCNp{9y_=b4UsmMRX}suQHWZ+Zin6D@^$gk5Y%u?RZuS2ENVRa%f*BcuK=+pN{iw^F*PJj%8)F7G z54uX5={yLpl?zbFjMP(8c{owsoH-~zI(II=iJZHc1Pz;HhBa>j>B+nscrRrSBO2mv z##LCr$W8HzB0kv0D9U?061V}z5S-v|lFbF?d|7pnncojYS~lMcy?3}vxlmdimH`w@ zQIs%O9X_IJlaYG4;Db_6OoJ2sbGXl0W|Duj#r>3f{g=N*wAzEV=#kzHxx*mwJ;;U^ zOOn=z5Kn=zx6UkXb2B?B_VrWwgP zT3K1%P(?T2hL2~|HGDP;g$_xZo2jA$?Nh#!b{&qve4#%X#Y-zT>LLDoGf$sq_3ES3 zrz4>5VtFA_c)N=f{xV5$sP(OpcYl5+`W{eFeVv^MNy*s99-l51t8guPgvw+`4@_R@ zwUm1y`0J5iZRydfIc)b&W2(#xF_E-_xivadGJWJ_L56tFr4As`j{rn`Ib{n#jgc?R z16l9&{0d$;$HFbIKSGjtXuH#alN#h|G@XLEgf>7S+D;XO_kTCzs(^-ZhCaowCE4@M zD!3>dNxb|NhWHh3h>yvA7U&;Kow@-?-6y!9-=`RkUF0C>ISO=K*-^7Mku1*k`BLtS zQm=-^&5p}wmAN(1?D)S4wR zg8DDR;OYdH^)3VlAA^pG0n8m9PEQSvPl9{S3?TS>y0hNH9$p1|*x~&O>&;TtL)(&J ze5jcrqZpIJ&1#F78OUQH#bvH|QQL3M5Ya67c5fHv+T?FT>E9gcB_vmdx$NJsbzQY? z7#EZ>8EFBj=PK0iXkbj6?@8sX~ak@t9U9t?b>&keUK7K(Gx z`kiZV*kC(Xra*CIsyqNgE|(W~P^sniM2I{NI*v;14h5stn-6pRWFbiHRx|QM@IBuq z$+^uHR3;#0&gWe51y^*FP6x5)ih}p&;&Q6-j0hZ8D|0->m+_4f*t48I*-X>_t+1$o zPI$3uPh{Db^G<-fN12zjK1Q{h8Hm-v9olco?pB#PGbs9j%4}iM#S7;yfGS?8yeG@p zFxWH#wx%c`Ht3AHj>wh=i19Hx#<&x#btx1R2HR*p8 zb9tOT5sN!$WI?b>cbSvSNkBXH8+eGT+ND`c0qB@mo!Z>$^anR_~s{e=3^1uZk(+Ax2e^uXz^-R4g z*<6Nu?^1zfdYjnYLVCxx_vgh6gZ92q{J@AdCv!NBEM6(j9c8O4E^#Kf%syFa-#6YB z6;hRPh|I?^FMDINKvE{xPamcBGD~RxA@KV=Pj}`xOUqmt(%5Rt)#9D7|4v zCV-Yn*OR@4C)cTiIejb6qOee&`3}DMB{n)fW;It`SGq45&*!*W&fx--{F2gGZwl4s z@E^V{o^{33?%?gp9?WkFp#hJRYqYc+FW#6*X0QYo^$k!KR^+0-MkD>T)5o1cRkx_> zAe9ycimU_IB=c_#C;VFZU6^VZ3RC^R3vzrPJtO^~%GMRS%yY_b#??TG0-W4;br0Xh zs4pGGk`RveXVNaVA8$y!X|UN{tZf^2>ue*8zNIJao%}1@zuFdyaxFX1tRAoGwmC0!sYBtBi+H~>JQJfJEbvG zAI!9``z(3w2hKEjku%ALAoFZ5NvigU!nD^O1#nOGL3(I-q2F6-Bz=9U%rV435)oj7 zAo~njSn6atFG8b|_RyMn18VfyV$KuqbeVmln0?`RZ^C#lT;fdu?8cib8+;Kizzrc> z=bh37sqgUCx+3g{QYs_rjJWfhAz8Xrbme1ubmh(TLY5Di+@xRX;TzDEL-+1T2^=zs1v+8Tarc?@!4Ug1r^Z|Ku&wf3c`f|SI^-4cSD5Hy zRUnY!Dz!~aJK;7}+OGIX`U-)>zWs$%)xG>ZZW#;#XW1q0Ah7ZFOmfF`(BkOjk#T2p z!>wwal_J9}s770QP`ga zNou;m3C>itW`9*bEgrF)eZFb-8EUn=%mZepQRJ5kb{e>h7sWcYg!QOKq;wKi*U3Dt z)_o00?Mf_p)#hGp`iq`H$nWRHaQFwMS|mjU>n=?g~OQyy3I1wyWb56uw7 zp{p>zqw+0QB(5mfd4NUXv%z$;c$$*#CgFrZxZ)7x2@eILeS?7 z4s=s_*AuvL7D;uO?qymsEkPafgYCWFB#Mf|5W_@^($9NMY*$R4*BC!-ZZQ0h*wC0X z$KskSbEUI=NVykH^^U3)wXS$F^)dyDroP0|6RAS%U_jZbA<2x_A$GVPxlIlB8rtD- zvKU3;bfRmzMkD};%pyeof@ln28Q(CLcz?>@jU;GxM&5wKi36DkJ9Tmdw2(@fv3@F? z5Tv5vsj6(TVuU^(|4zR@_@tHiW|Vs5$9E(Fkz}16$Va^FzUnKhK|sJ8k5P@AGxH>9G5^XspOC6f&>N+A2!IY`4 zp;yPDLB_?HPj$ZjQP`@w+LR#JCV#|+h_+HX>oYkgZEuVrE_Db-L-m5x+^9n|bn%&o zu8zHXnUGx!Z@bPJSYvCiXJPTVEO!B^INV{&k=e9s%ur!D0(V|&L(A?-G%vmB#K5r(WwZbq_ z3L8kKGYZ?8eFM@cTa)=3j6p~;FJtO&iKhs;AIJF{WXf(<7ds{CW3E_dSH?X~Ju;bt_pfl54eNFt4k&otB$N6?1M3mg|G0pM3C%c0s46*3v%)5b5u8dmW0 zA~sf|NRkTOo^td4WTJNJ_`GS%9Eil>jcA3c1R*}(`J@_xS^THUJ40|%;7Lp)!KNji zsxi~VwU8*e6VYSF0l2ubV3hml|_H3UV+D@cyiss@pG5}(0L^GeDm6r-~oO+GHR&?oW4ICH}4aw2n^ zaQCoYw@pxR?9{0Q0QY9IO>l4@2lXuD0GcBi)A`q^#A0oy)yAKSUqVvoDc11bCMI`{3Sa2soD{O&04uj&w% z`O`p~VAR9}ULj!J=_7yMs>0s!Ga6vhUg9be_rlKIo6j70f}1sMXu|%cPcA6Vz<7(h zuN>&j0aHX{)24Obneib5LFVg-dxxY14c8OO0;3g0y-X>RtY~R{`uxGVceaI&NTVj= z4q@0U4U|EayA>#llwfuCt{!=G2OisuhJK9fbtqqYn^d8!MBejpAqzXaF8)-wqs82| zjZ<_*@0wvCg6Z)?<_DR+%?+RhSd#C9 zH~<<}9sUS?gZq4TT0kjn2`8vJe=h);ew{yug9r0@Qhv?DKV>L4xG#0~OBFF9eZ$eg zfDkUo9~;lo6&do-*MZS?YK5^?dUKCF^&ec;@^QE+Aj(9#Se`r zBDVQ$I_t&X^}VOC0o3bxrAe4d7h+v4A*4mP(`DT>x!0#tAk34^IeL6h9WGQ$NP?YZ z(w{jNU#QP2HU+RQpFzVeE+#XW?}JR7E~MaAWzIh&6u#cc4L6IXGau%HUR;07|0)8z z5OZWNSE)+`0NvN4R%*b3q%6^tm>!n&eN5wT{y1J0Y*`=TNcVcobec3Rn zCHSI?!E=eiV5Gw}a>&91A&^Y`9cRG@j$@Q!2MfE(LKWAnB~j;bew2Azr5CBgiM?wv zhh!4AeN&5D*4Od$fug2)Mum%mUum;L`F~A^X9Umc=$O>d@J1D!9WExFz3}q2-PynC zeHqoAeb^O`2lm^0#uhIrTm0O8+Y{PvC)(|oinjP)E<3?1T{R4M7uK53iI(?h^D`21 zqxP7OH3RvjC_26k?iU!uTQtc73XzJd0HwZI>+`|-z%3OnUJ~?>@D-+2$~cqHPez}e zF3VSS>Qe{R=qI#UHMCV<6n3#HL-PXj1C_4LPVd>TsI8jL;IYRW%ThxI1^qRu&W-_@ z_VimS)tNrQNnE$(;Shv9M@N!gNhkp6Z>gC4eVaTYOvJF6euY>T^oJHSNo?weg=+`gKjSifHlx zkDut3F7v%xf~Cl7Pl#{7omz)79WjepUhZ4UfR8M!95HLCeh%^;=WJXNC%SVV6`n8j zyrp0_V2Z)GP}`k*GuW3^-MRnvZSk$NE#7y!5V~w6LdS?M`*Lq z>GY;;Mn?Vcx9zLHqw;Nqk-lzdk#Tzk$lk~w3sX9O7m|SfijR0X1@!JtKMscnMX<40 zDqdCKvr8T=6b)YzoBTS4CYA$1pecidum^*+ZfMgIi?%D0GBz`^j?q)nTevzbKv_e~ z9}1g0eH+$9!W_O-aZt{n1IO5%Hk7}Yh_;+gyi9@{3ZNJRVLvBYNj*nq=H-vW{Esuq z$jpq=go@6pYjhcj-b=Ts!cD65d!3n(2Q}(~`fF9wceH+6S3HKLsck}QL+_eibF!-h z50`fTgW4^sZMLyjx>4g1G><$8bpgg^lMBX%c^_hr8M2td3hcV&?+J5v3JJCAf|528 zj#Ilezt!K8S6lOsMYb4m!1g|4zo6Ze6K-+m@r60~N)@4f(BEpkl?)sD_+pKDRyU2p zuVWzId|`imY!swMr$>$*IkzSrm?7a;+>)7sp|Xh6%`os*2kLcZOkCEQGV5|V`n8%M zkRVO^K(!>9I2!|+bugbQri^q%6>_>2Jlp7*2V#!M&H^`IP&EI7M5W=eH1h4fUP;LJ zmCCOUPuH1>06V1rsH*y3Rk;`)MpLO!QCUh=EHtZ%hp`|MWSy!=@#vNR4`c5EXGL}X z|IaydW^UiTd$;$>HkM_9r7y7b-X$VM78NxjLcpl;O9ZjT_ysJn5F%K>?ye=q4pC!| zOKj1^2(cu_1~JBHV%*>RIdd0{U%%h~{{=I1=kDAoXU=)fQ$Ek<5xsHz>hPL;C+B46 z?a;|GLsA%!85S;uanb>toSDumA$$nYHIq0n$9cZ@sOcPqV{IZwNxOD=A9|g_fD8|E zos-k)JG(>ILt=pF9SFpOei3zrSU2I0K)aV|1+5MRDM``6xe0XGMK5aeB08@( zAZ)-fUn*Cp7WO4xkJQ4xJ1BqsXxQ#uO%?2E4B$Lx8-`27tQ?mjBxuf>+!uNGYgC13 zg=pzLf)GsUUu)xGv_*(A>B%1Pj0*CS5;#(7h7TC$CC(Z?HMo(_B(tWH_RglW%Tmgl z_@iL)<;zN>mH;|s`GcS(f-mI@%B}O|8y?eg*a2s3zSKbC+pNF98|=-=I1Y)K8BaZ- zvj*oZjLr6Au%iz4+VeK5++B)KQ{_=(@0y;d+8BE^X*Z+n`tN*)sCu^8`8a&6KArZf zXY@~GEN3I3@u&`__Y-bPRp~i7WA%9C6ZW!Kn2FUp77^(Y%O!jsE=+_c^2LXsXZdR) zV}d=Drbz0CT{GJ912*WV%^(D!h=osFp73HRrc%S>Ne7hCFAD{s>-n;fKHJDP__B(= zEA4S!T6Ti(X{Rp3F(jbSV`Hw44vyTfZdm zo<*ilOzusX+%YHTr^?wBVP*BV3(~{-Twa}6KG-${y0)ED01#aGMOQ9dg^3S|3jOZGI2sSbGfO;X(>(d zS9xH0K#_sHa`0ot)BfD!FKC6fvxqOToX_Zu4Yr}gWR^DR{fT6Ub|5fuMc}wbF8|Kx z)4eg_%T#Ei3hz?9h{%9A-S$hJIKuY*?x64gIc7Wk47+}efiTy}xhvn<8T~&WFe(oi z^D?}IJm4eBm5&L3EYBK(u|{9y@~i^es@GSTIuyMB`&sve?Bf(4ejI5L{Mx~!-;^FX z!Lv&8Ymt3chV{2R>*Xr6Nri7zdY>B^9LM8xwwn-nztO!<_Yg(h9Gi#9^baa~IL<=z z9eu5mx{=Y2bXXUaI;J~ z8hABRY6f_!46Ko??3|(;s1Xv5gF`RHkGHD%TLe0}EAW+cBR$w#Y}do>y3MYK*maIw zr<~RvpU_7sWHi1^;oT|!|TY`7k)E51u>5-`V^Kd)w5~yD7R6|rv}+G zv7sq+)vQ*&@pH%GDJ(>ae8}LUH zwt_JW@J%r7B0Vn%#OCM9_MHb2o5<3No=}F9f`8%UFn+#XE0WX~N;N!_z5{8g_T?Nj+aA$bC+7VVe!+!`iWp<}i%+#QT3bVLF)yz$=W#%Ov+-aD&^EuQnF+ zXuJ7s$Zq_e{F9v2`I*iwitOC)lGW(9;#oXfg0n;$28XZJ%r%}tL%u*Nl-&u+yY!^s zY74m#MXrnWJDL^rX*K#Ssq7%>%!`?agk<6fK9ifcLT(1^`ws067lM!R{xizU^Y2#P z^LQe>`w4f3PU0@R3U6>b3sqO)u3&S(*u5))O^>#Fmj-{kP1(JQ&O)AGcL9$5ub$vB zsY^#_xdaNDL-H)_HEW(FOP=Z%#JXgQ(Ep`!Z&z6n@cOB&Z$8##E;s+YVa2nR>c`~S z?vvO`i|T{Rs1!gCE-!h?QMgWR)aB;?c+`17mEd9O@17DKtY6oW@$pwev5#QUOUScs zEx*y*Qm(d^Ul45e1e+ZR`(=*~Hp*^}+)}>YNqtf6T&M40#>W}TGu@+XO8;^LWb}-- zO?qUdevWD)@~)ElU&`z!;$ns~YRBl`xQ2{OiTB(9RuFwk4;nS>5RpdxrD|AM{9nNf z?NF8UoNVbv6zDWOC0(>cKj30ipNRCG$KS@Y-71an9hP~#<*`7C>=%EK5YdN{xk(VK zQk47C-delvXV+z&9(~}aA?HhdCL^%fA3|4djy|gRI4sT= zrr9qa`rY6uclzo$xiQS8d2XSf>%A(r|DOrh79L7Gst+dAp+vh~x7hXEg9&{o5jvPC zb5c(j=OK3-1EdRIC9^hk{+t}ba8rX-9Lh(C$T&Qf*-b{l3px-cN6L#C?w+Zqt3F)j zK%WEd{yyqJpKG<<{2|kBwozD#FM-zf(Fghr+uw&*{`XSnZI}5>fB>b!(2=Rn;97%u z!%@FpC(bzY^jv*{`I4HxrXGW%FJ??DbMpW%83pr_!ctA5;MBpBw%Qb@4;U2KIq)t6U#E=yG29 z_j%9?dPO^*MI`sE}IkeCd^$dZG|n5j@$$h^J>csY%XOf(C>H*nv4y;**3& z)DX#8_>r=y>Ko|dpDE{K`iro_4Io3Ozl*C#>W|!~tiw)h{{IdjC9ejXD}&7|9)1Y= zHU5BlC-t|ub76?8MS39FLbLT$wi#IEl;i{0=1;{7e3L@kJ}I7|cPld`tBg4k!a?FN zac{8STR-($X$!(J)tDcMlwZm8wj^kkW9d~NDg3Q!q#5TfB$R%dx=op#+6)64x-QZd z_ldqp{O7VD{xheC_kM1;R{IKa3S63VrFylzaUy<}zGIxA!g6@GJH5{W=CG%XFo!)K zo~1WrllI`_Q9HSBhL@Qh@E3dP6x>Nxb2u9GRf$=pS93aUWw!!OLlEA- z)$R7@I;o!+=RFe12JyIh82&!{((iTy>wklg*!*0PHJ?g4_e7F%GnJp|9hGWl<(9bJ z{K4H(sdrY6usgSw?x+NHlKSfa=hN_Ya&P@`$<6WmhKrcC(av!G9ESoGCRiKR-yzjV z@>hiS_8x_Cken2b=&RL&bKLFvd*RXGe+eNXK>H&y+Vv0ok#EuJ8>RmVm-;zMA4&iD zSb?Xjr5BrO6Uj2ysdzY7!_Y=##yqUXPPxez;$|F0%>Zj9G{k9M{QU`pGX;_mn}MsP z#cPau<~>1Q{($q&{@PFK_{00UsFh+?qcWHaLx1z4r$@?oHRqUw6tpVO zy35VEU86$eR^{d9em`$+?mm@AI%Q!&VSYi;mAY_PUZsBuQIgVB#nY-hl2;aA<=*d> zX4U*rRnN_<3tz5F!RJ{t9*Dc~&Py0AER;7%w4GpEgr`i%GcDS^!vK;v0`IZJh}(ya z3AZC>7CTQx`iFBu0B45c*#O2;cqsoO?_fS+_dbt5(k{tCl^*k zd&V`K1m|uxSwM1D$sG^QdJD{km8aq; zz&K6%Gw3`sy67|n{=XFI!v31I;S0%}U9na?k{PbQHVSP)3t&5pl<@H$6=KCPJr^h7 z<*qE56bsqyjr7|549Pi4&2AlinF3w!wv*Qy&5RR4o*b&e zgrp_$7@m?DYF`<3M-_%Lv-_n}D<`X2@G0>3LA*a1JHOY5cZ!%gOZ7I7At>mf52SPb zN%6jShmh++iujTUc=-T&s}S3vKz~@s&%yNCe9ajKH3}X{p8f|&Z3dG&NY9UD$0w*& zkt5?xu`N1Yj^i%#CO5Sv>n1O?)*BYfNS>=QXHx04_j9)}yyZkoBiZp849v*DoSf{5 za7PZyNwKZV9c8zTxi5rrO0sYEqYs(z(yWr`-z2H?WIBpzSp?iqsED3ISPJV=w)L+* z7Wh}6!M%-}b&y?yBaS&4?->lSk@{F-X#?pYc$QnKj6?prM4%A;MTk~D(J7B0bw-bM zmqUO1UtTLy6~F$Aay~*$U@Q(~&~|al)`%V0YsywT8J{TUQ-tI^X0<_>vV`gGg4hcR zFqz=DsSQJ%?dlEXR7o+hK6HUHsVXQ_-wvf(^XOhQY&z6U5o9 z%vpN8xI@5SkgG~Cq77c$bJ3Dd;F#$i{yVuDm42UH-_+T!{)u(tX zf}cF*st)Z`{S4d+tSqbW|?yP5#%k?0*M9(;0e?^o)8rsZeuf5?XP{7faz5POuy^2U1^*{^fK__oawvXiNQ_nbk(tPQ-4$jC1@sJ3ohq# z#4eBio(sjpSpc*7MMv+GpX~-uPX5?`;VfPR`O()7Y1^d;m4f4jb$xq!dqa9Fiu#i% z>Z6<`m%7f7_GnpX4kdO&eiVosRl?(uSSTZs2qhacqdC>N>G!mPa0+~lDCzcftq{sM z>4tmN$~{o7E!jdpD~BM|k{oO1N6T?M3wE_a`z(+TL#VdoY3(d(Wp2s_2O_TFTGs0` znWtp5?iO$-t+0{-)6dWFmW9ii!Y~ICAGn?rF4uJoA;SJ_{JSZwb zHd+7i@XwS!D>IQ3&x-1mENzm6}5@Ksb25}AaHGLo6YiBad^ zgo~o*$Mp!(d6U_PqgnJviwYw7poSKxgQztmffp1Z2&WOXOFmN03lK6z_56%M#O&kw z#KA-Y;OL<|Qt<1sSa8F<+;B5L&ZBp2Rnw@IycH3&WEE!VD*1)RkLu}c$C(76S`?tY z=5KnBQG4O6vYUl=eG%W$;rqMCIoA7|)r-8YL)2~y$n0HUyThc0lIApg#FN9pfz&bXZh z`uIm@M>ZB%RV^0gM=77DtN2hLWMx zEs$}}xSUL>R{tsCaUafnfaw&z9U@t^FZ>gruWX)GcJpJ;Zk~o-HqHeu%5hF=AUalN zh_H*#gC_i~((4Exis=#8qx}VL62o&W!3$xkPN0rWl>|(ak+Tlvt&x8-IF6oFSx6ij zCy{Q)djQ5XmQ%R63~w#e5`JG$G@`Ly?c=F<#IVXo84k0Rr52OnNr}#j7K6K^+I|4C z%yk4dd7|zh0SqQYcc{O_I|8LtD0Bv64o--TAX~RA-WVH}EX^F8+M_eSms-LD<*Svs z8AYUc_sLC`T&Rlc;?pAe0@o=#Baq+QSCFl>jzD~z;r{1LpZU-OVRSck%yoU7W&I*|J}f!Ul9m26U3{= z=G44HYE7;)@Gl|fDiEtlAN4gsSf4gOBK9ZU%K}7Lrykw1uZ`$r(NI>z?oz97JdeHsTp#jG*$mtddTAi=tLs32d^g$>p?Zo8GfU^3*0(rt zH0-K2sd+kP<95w!>L917MImm#D?p+dMv7n`ylq zh&hM>w_%rkgH7ly6#trNNJYzWm z;->UpAA*fS~Cl2XPngM4Z!RV>#*-6N<)9;vN#=Y%ZL~;Pn7iQbLty_pljEfv0Dt z5_H0qn{mNiN4SR9S zUmk20cY3*;@AC+hQB%cyjq5eS02^f^b@+T4$Wc7vI{b+JV3suWHY9)s5tl3FX9&?B zE4|*W_xCDqf!S_l1Jrs?=pIjR^ndO4cxt2nEB4sj$Yw5A{V>KT#9zvLTru$Y0m9V) zfXlwe$-KOXSOEaRaM0+C>t(9trNeqbmN@^I(W*dKWXgd;b8N3brAF8CiRbma{wF73$KYEUsPH+ zf%(Qm?~3bt$;a25wEjftwwNDkEbF1J%(@9s#mEcADnNu3kt>Ar|#W{65W5@mSW zV%B|-@cIW`=eL4c;)$1Iw%4G2-=|P7NM|DJ=pD5~cpb}kV3MAT*4>vDtwu0afZ-Jv zge@+gHk}$pt(Z&z#G0=M)c38hoNd=POQ`68%Gi%fJ$#FpPoN3l{*k2$gEq=Jqud`@ zVYJ0qB9*H5!XaP6EOK^CE2}YVBm$ttE049iLs8Bs{F=gqX_Ckz6^-VgpW+a4`*J{+ zI@#LIBkek~6YPE%t?!>4+)CC&n=7m+_T&%A-&a;Fa+P5>CGz!wflpKq-_(ImT0p{P4u zaw=VEW>KM=J0A&IZoWy%otrsVOFW)5qb}t+^bWY4*l`9mLwxSqcNUAVS0U zyUz3WbnCGq-AcD1xRvu=;bt|ALOC?2 zZLEK!&rg6b$7)iQC{dzORlwdenx?SKMKzH3_*Ac`qSsZSvSvkdVEEHaB+K{6L;_>2 zY%1-#VUN74tFgA-A;=yfaB3$EkjK={7~>|Xc@lhbrM}*BdQ0F;vvq^y4gNX(2C>vr z3Xf!sed;dte&CG>`ctLtRn4|n-QiO4VhAFL(6gv2Rgvc22K*xZfVTOMCEZ4P*P1I8 zxa)S7{w(Dzg{ygspKIqMPSc+Wp_yr*8Hv`MSrN^klzjSyKB0pbIuUm}+IWt5uVOZD?}4Bs{9Kr#<||~9TZl#vK2~bR*8%}A zB#9#B4{%eNfQ4w51W74YPx?nljg_7RdLaw{iO!@y37y9%caq$}I&Q#X$$uxeQtiOT z38cIQQBlWime3O!>IME}T>JgRw&I^8kAd^R@!=YLSI~;wsJewukl}30Uh*cmvkoO^V zrxFp%)2Ab3;J2gXNgN-v_ODjiMFqp%=y1d%?4rI{gxE}(`6iz0DGvK;5q={P%r7Ma zY4LkyaBTmS+=Wm{v=5bPW<@U1@ddGI@e#50!k7|0Ir5r{P9fSSmeS2GUTaIM+>cjH z8Z>+_qqrZ)T2p?L8}mpC6x--wfsoPE$LdG4?kib=*q!68+-S9f{Z^bQKqx74YX;+u zXB=t$!{C;d1$~vP?Ls3_d(n37M)*1CU_bMmoBa9cKMTw_G-kjAz0o(43Mg&IWJ6@% zioz?jHRJIKtg&78fcl}8->2L4&rpL0IpLRFXD`V*Ilx|WK=$WQu&h?+c-N>*<}eva zb8!MM$E(|q=|#@o7))UJ4Ki`sU8#g`1gF+bs)vvZH)}V*zhy6F*Nr`Dx)a_Na^Cc3 zGVe?dZhQg=SIVg6dbyG5!Ik#;bWoIfPMz-}xdGO?w*{MiFxO1yItR$O5|*Iw?Z)}S zpQeB2O7E82{6ji3U>T&heaXHma~n*V+t)Aij;D9;Q_rYwVbz#n*Ng4CgqUXoJ!=`- zScV2YFF9CEIi;{K1KI>I4qQjX70DtvvgqfVT_YlEBi=oUzh*<#1?tCnJTx44ag^Mg z9El1~q3}&G{{+CQLGs35p;As3sWPp>+lG23{gT#^aUw@=WNx*sm8Qh`Nw7E8eisvN z`S8aE#Oi32YoRP1P4|&*p29ltfHkDZ;WP1i58h}mR*GgOjq;KSG_zxn#t1TJ zWH-9NYvts(c%&>aeohC#pqP$ULqz@~y;TZy{TPVltdDlhGPH$hj|rJ8d1{@4h_wxLi=z>&mAq!Awy ztDCn^#BYK6NaJcL=K;6U!?)ln2}5{$Q)D{Pf)m9|m%G0p4I?=LPxeA_iICv>IhEK* zZhk5#0dhyM8EwDo3bLO8-pLV{27mfRuo-K=TVU4>c6~laqkVmzO(bnP%11=Zc@hZ; z*w#mJG8!TPx+%O!H;@FB&C-v==~ndEc}y#or!%vu0FDC7)QLwmJO@DCBtM_7MA8tZ zFv{C1uR|}3oLRzoq_BGvxZ%urlyfy^=ZN)B7^_BQ0p0h!M4z~jczSV2Jeds=C{ZX< zxrJUO;OAaS)#tJU#cz>btv-dsM@T%cb-m7T_#P$ou22GYt35LPkFo2acJ1#`mCl7R zNW%~s5x8|&LX?wBRwR745^jEp%f!)$hS9MrY2|(Ty?_GlFTrMRxA4J5x_L`C#HKT9 zWW)$(?Hh{o(K3-_X}nA%8MAl5@C947yFRfDS{$)@ss2yiAUMFhrqWKI4IR1$NTc3 zK>t>_lKWyREC}x6ECIp8UtaGP`z<6soFn=2DjA(d@D>MGlAbw32H93}^S20rPN7{l zY{AXr|3W)+WN-~)=pJE;VvW5Hp3Bp|@b8kee4I!E1lfF%W5YM(I>%R`1m>6#65u7L zA)mjWTBu`wgFWz&dPN-+U&4@spfda}?Yx8rUhl(*J5)|D!{pNR=|_r#&DY_2Ud=q z#Q9q}|4Z8YC0-u9SzG-cQMXq0;85L-fYJ>ju##}0aO&3BDR@zB-?>yK`+DrVUHJkh?{igPa`$>~*3Yug@H{=QaR^NF9N}WFbYJ~cqU5nNbCwn7_ zkC>~p#r~y3qf!0rg|^Bw)N%n?q*-M7;n!Y=TpY7Z0{>QtJe9}7D|{4Je^!SkM(=VZ z36DtGe(#{nEprd*qaB|)f1``Ps@7*P2*#WXH^%1SkF!@jC%9_x!h1pF*DAtLVc|jH z64P-yRRTWEZBN8l?m|{UEoQd)tZ^saK9yIyDfwOd5wX zmQp2+Zbfh>z$S`i+9QSOS;d#2iOi>=9cGAA^Q*A4-L9iDUMY^;h>(;wG#DWI5A^FHwnRR3rw%$#o<@r|@!<5ojC;~L}# zT4CV<^I&+tnd{W-ir{(%Diy(#1-!Lgk`D6Gop}-Q_)tl)l)Jyv@FE&{5uka3K-K(U z5PhOdk8;QRWW!yp{4%gip-Y1PF0N)eI%MIpxj)zp7FLp)yFI5%Eya5@#3U)Oh=?9+ zNVFP4qJ_QVcTF&i2=u^sjXdUL*>#wmdY zCG>D^EH*8YjvfEV4j?D?!Fd=Xs2;}2B;T}UQsx|T7NfuK+5}B$tp_8){i7ixdiP5fq&v!=t!7Fr zzwnTGS|2p(kh#Oy%}BdGSJ}<|D0U) zV)04RMQ^b97Pul_Qtn8uI!Ru5bj{+`VW(=9GY+ygsvG08mVw$Krn=+IK%)%FK}$KP zqmY8;9FxT{vw}Y$($nRwe#+w@*>?n+s{Ojgsrtk?8*%>+W28-Uv(ac4gz_l`wjdTy z=4XMR5XI|J1F(ymdmQw*douZfs~CHTrD%KGm=dSz7-yS0Cb*@sj1g|BADP?|QQW8g z=-MIOZr3xr37=Ly@9~s#aOzbN(`#}8mWP29^mYAE9Mbi%W^7`lml8yv%zmGw(}RJj z=eu2kP;RBfoCHC!S?&%Z4)gbm_iVs^HPos4QaexaIP;?;BL#G*GN6?8P+Fv!s~%2s zY4IS`N4K&2o$fgSiR9~`7X~_2H~G$=)Ee$?MXEguhYJ4o7*HRxQ^gum)&VIk^18&f z&Q`3Z1@G-iN(Q-0d}@tmgja8x+C)d9eA5?g^`nk&lBtJkPSXBiP#$Y#t6ar`tb`>Va{; zYFCN#jGj*2gp^;2?07;$s4&icAd#imJORgZ&JoCJ9#pruj!i@LDW-6v&mNsfppUutsF&qrto)6kx*p!?08SNK_n|3#d<1jmNu$_sOFXf3Q)YsRDhQt!I*41YuNlcrF-zSSw1rcKAcN zoyE@D#q{Hjs}&yMMwWju_&Y|il(F0)-&U}+FI(iSzas3sNo;%|ii4CKs0x{k-Q>a$ zPL2Bm-SX%}c#ZN*xv4B3k?<9>u*ikGLcuKjifiH+P{YHEhv9coRhx;JskR@ilxJOk4dtuXq1zYQ4IKplztZoA1cx;luC4tLALf!e6WS2OmaP0;=KVfHqv;M<~a|qalU|E>d;Y~)V zPl%o-ACJg4C70^bBZ3P*7QzQ8DA5jHF!L-jX9%HcF9LDK(;5$IDZaJ!0blQT&1}`7fVN^`Q!lMcov35%FW03aDgai z03hXkJgZ+o&k(u7g)CH{5_DX@W=g2mc~wZsIE4OVzqvUV$WRt_-FL zWKt=rNfFv?6|JP-22pC?>~B2#X8YN7Q8!MOcFs0kgF2 zu$$VhR?ps+MnEEeLTVacH4(1N)xS~@G^QkC&OEy#ZfDp{+HM|H-DqLSo0Di6i}9+z zsR2A&({Ity=nPZ+O0OS2(FuAr`ZG-_k89=(A~>~%#dn^^q>Pe|)QpoYWOBvNiM8N6 z$r*IR8O~lU7+RsFttf)yBzctcIB78Sb*nh-RLAU)(BgPue@o&E-DW7Oh9hBuctXcf zTEH@nGu1!JRA1xVgFZvj9r~J#)VXw}LhijWP}}P9?GyTvP{PLeZ(U0WvMbnhXWPAP z0c8j@B6FPNiz{d$>lX3i;~>f~)dnHAmf?MsE>7EaZXQpC}&%p-nA`nn)yih8`Xp8NUnC zCPFh{&s(x1dCy2L>yd@6CAr0YN>&vY6&0EfROyqd0)@76O3g)@1|a7|oz6CeZ|zN` zrwJ56_8rmaghn*Wd0p&5GJaqJaCP8r?)OVsh?-(1<8Qe{+yyPCw`9d&`$Las3 z4gl%twp(70FHj`J+lr>WTj>dEC9GdxngEw{t?Cxf+=JR~Qr&utll+x&{^=cy(3yhC z4}k>kx@t&Uro~dBG4PUVG9#P3`QaFQB8R_303(Ob28LGeBp)$U$C=5y>>vZKRp7{t zzURiJbcP5QFx&Yy>61G;j_~-cib^{}eP4hl#96M0?vXgli$S>M{a{mJzx#|Gy4ovA z=RSWG-qtuSd`jOyBOSvJgXYtyUt!04S;setiP^^oA>;cY6P8+71Q7aRUoky>rb20N z(Y`41NGx*{-9U7}h-6(wKO{bj%i(V2zG(b4UWGVEhlmkTD`0jk38r^UBB@jTOt9%O zcJEP&S4W+T)xN0H+@MdP4Rg(Mvw#GaxEYI3(Ub*BfL%BS1z@S!1-30OziwesA3|;; z-LY07?H;f{_h`kcMY!a%6WaIkj}VeO_>CsPj>~j+TR` zhb~i;sN&R!#5r38moR+`P}Ymp4hRr2f=c#$L%MCQmC?=CNw7c)Q~BgOSh#Z+W) z$t>p$J&U{Bsju^P2ufsxRQD*M{oW;Qq})G|7yTQ!TyZ4Q_;M>4l)bK1cz%&EX-A@+ zGM4f}2g2!|>ti_j&uH&DajxvtFPq+z4|7W1@Nne?C#QZI4{H6CY3^sd({lRY)WPWs z#7}99w+E-6flu4JkrQLlJ>k+Bx>Ri^{<9Lo%vZV96b!21q4&v&%VKrCPUTYxX;w2q z^)8}I9T(`Cl=LA;REYtFZwBAsJZ7`(*_`k^<=o?z>l`1?x15Je1vSrk>T6$#!T(HP z@Ml|tzgF1VOUM?+RMJKM82uD@#YkOm*WD?+7S%kSAPlRy1yNMQv&Jw%`v9#{Asil5 zb@=Ab&o$pTpFBP}^YZxFy^T=rlw1s$hN&?hcmLzTrBN_s)SN}b$`yr^<*O@O7)?JK zfD|eH8HEk(#QGn zW`;8iWm%)wh|g6X>tI@4ng>D3RJ!@`PRR)9b4JiTHliN&NbtB?GC)hN@SIyh)PTf3 z%ubWP93`Uy8?&Ej5YCe1k-Dt9rnkp@mJWH6wVS2TMTkaCB;Y~3N)^$%l0_={BNxgo z93qe_0gVzE%|8wG(H*qWI5S_j_m=J6nYL;0t1Ne0%`(Ai5Oul0-6Bz!FN5IAj$kul z3!v?iEg@%Xc#uzh`w|q2V>#gzqJUGgMtJ1c$w&mlYm1z}Cjblt+;Vq>IUd@I!7jja z9$vz~+)<};9u2dCPL~=FIZjD~^F){;Ni1^IlN=Q^5$|`4c3uHMA2iWCJAi5^{An8+ zN|vN_Q_|?0gn(cK*pyGSb-@8R?WXIoCy+oEum~1nd;s zZl`Y8L1d}q@7j4iBB7p zVjY&J%u}v($TpIeN~StbaR_{U5ND#V5Vx0ZI)pk}IVgcq@kN$0U_^u2innHq(OV5g z<7E0dJE+~ zoc%-=43XFsx-GPjhwQ>7)+v7VggDVl{%o8_Vhb2jU?&qu=d6$yF9Kdr83QodE2J?d ztVqFs6r!-;Dt8e)jZBmo9UqHTe6OqqFDr9OevF`sQJt3w9F8CK4s3%qy_A}lQ8xj5 zej(>f4>Xcz^BK~mdMv|y5@L({h4rXKOcFv-U4bU{G@DUQ929Tce7z`I6d3?lL|>3I z`I1y6-F8#jUqP+xqoH|RO?QSF0W}6Oheb;m<(VLi za#au^hbX+#iQi+GLdWRU%<|~SiwOr6Mbbf)ZV}$XVM$p%8(lfhET_@bNv7PLK#=8% zG+6%SKpWjoQwcS5)|O6@ou0FV&KDrON4(osqX!C)i6TD&? zqmHQ8A8_-LmgMCl4EUMtov-?e@F@>8BDmf)mamPmEHU4m>(gfE~ZZGf&&WVO@m%PV!jvKD0 z;?!!T2mD>kh!F_!AAn^uWJHbDAll;OZ zdUpg4+bA#Nr-x5+Q93=q!o=(JaTdwZg=gBz0KXGw{AP6{GM)r(N`+Fv4yH&!^! z@hCD`t+@r1%9d)mdbBCj()_8gGDB4F^rX>72+g!=GHEZ5796vez zy8-;J$D>2b?<#rr4BVDSu^uLlZ#|eg05!!qc|hx{q`**Fu7~9IT;?<>9`d|rm^XP7 zR6&rgt8!@!hN zYg!yXrFNa%0nlo*dWVL_T;#UXjUjG0Gn+J&1saMl=ublsrQuqO$I+8J^2y0 zlW8ueh@`j~#tkrgxXISHZfW_5zI4_{y((yVjs#W%Y46x1AO;;*l{&H*sD zbMPH{*go~F>s`jD8&~1pLT%T(s!ryQy0#xn*9f*!&DmE#53FfpH3 zoQ5=}E6fa9UnKY}VDcw`LMzV<UG zNl)GsN|C)-w>>{m%lkP0U?TRx6^@bf`ximGUQpzE5x=*r781*jKBhx8*-Z2*;F4O& zoLKHlI=~wUBSLMI%R#ok95e?F(aIBCqhaG8idTm{hp8tEM}vC>~0I zDg%te>NlB)gE|HiJn7|LxGJP;n)#*ywmbgG@bdFUp?gY}MJ^-Z5*N_-+uE;?p+GGz zOb4mO^-QpN$FqCaQj06jDoMB)f_Pix0ZE-h_u=w ziP3_YVq_cx4pVI5jry-{kJ1}?jXh#hR@wDJ`&CU3I^8{rI7s6deRQ1SX5pjg`A4Eo z#LL!6(%+lMsy(;3C@)ZHc~-AZfamYoea}9ErmaCu^rsU1pPOH*I!ZZP!(HU1-;_ zP7~+E;K$C#m9>(4s>X>bFuH-HL*P1rioMy?m5Ng}8i)w&@ zWTTZ4{34uK3tl7|9#4p&)-~kBOfi!ao=53eydlyduMg81BaZWX&%B`da&0XkgIdu; zI#5H()61gS`taxK*~(dqqVWK6=VVS4t6UN<(@QLtEl#N@DtqrYVb`w*GmfymAgFP8 zSFi!SEu#0@U~^&c<@>?jV*95z5XT+P+VirV_taX>x{Ri6!BnNqSsLj~WF@xv5+stI zo0N!o3ol`uo{i_0P69Qt{2|N!K|)k5)Z?JLqkfF#@Oy~r3MnN2%U3T8%(Kf==(_lO zcPL04^b9xdFV*ux%cCzUfW@N{C&mAw0I}%_S!JnFOhe!`NkOd5IQ%&`mC-jgJa0^X zBypDQ=+tD8j!qa>Ha7&D-vyfsgUva?W}H3Z0d__?YhR2y2N>oN)Yozz`Bs4XCP}25 z=LV9m8-1QCHAYV&>^+G`Dksj+p^Jv&ED$5}yr{C^hILFe#MNo9MS51GF5YZ&Gujk( zb1k8&@`NDO4tQ_NY< zo0(>@$;-vTCEfjrw1ewp2F5Zym9!YKL{@j=rM*w)nIYw7ap1YrNKNaw8^B??PJ6k( znEYJSRVox#WTUY@pk_N&QZ+c=h!j5ngRD%m4}ctjPoOV%mZ`@|n0hLjQeS4-H@^0z zctE>weU@?j>x%x}k6ueAiANbaxlbyFkihIXgTZ{&yQLg;p2h}hrd35QXZSI2?Hr#= zAeZ+$l!K~8@pW$sFlz4war!rdy-_x3U%Lb4c(1xT>eMXY-j3p2G8K*sb4tnsEyDI) zuJ^%uV6vm+pO8z+2wR;P9jPr&&xLPB0$uwP-`u3!Dxssb>bCn~aGfbTV1}uG$92Zd z#2I=Nu81v)jFGhC^%3#qB5Ifgi1iR7FL3HdI^Pi-{XTb(&{^zr*V=VMH}9bS0wcUK zSp);}fZ~{S0g!$z)9nH*k#TgDqp<4hN$*_q6?VQJX#7V+E~l=?+wxfkZ38~M-;^x7)yX(SC}J!K1z`0aqV4&U55^P zx4TEw)@-}3-9ulgzl4Yi^I#R47R2%r$G~?WueCRrAX<>P{KehBBG3l zIdPd&zr#46pjTIYb>ei#{9jINJL@1GA${UfC=kAJU%N3(|KofBQO{gWYhBG)a;tc) zIi$VWh6YRF6Hl88CDi*kY0(EJ+b=QgMRwkj*4P zR2Y&Vpekal{lh&d(S|C!Zk3QjJ;_`PBOXhMqDjz4av`K2 zpgvf&Z77brLOo62B`-=Q=FidIn30Fs^$?kg>$iB$0|b1^?YZB=7Zw{z-j(eF-+Jy& z(idg8%d3%dKj#XY3`YKCft{VbLrneJ9dh4)b)Aa zn+ko7Yu)90)w@AoE!ZPNqty!zf~N+uYw^_lKG@jAgIYX$RYBsxJA!u~PTKpo zCLSOjib&`e`fY2pf&zfF0DM6nOuwOVPAxeGL;f?zK!ojIxGBBUZJ?N|Q~R{*Op|6nR)2ZkLHKE!k$P9%ND1S01Q9!mcZ z=_Edf>jR&|EjSy-I<<`aQ+FuaLf=cAAkp z&?;)*4HM2f7WYN#vv}>WhpyM5ybOzQpPE)3wuJ-L;a*|Fvi{8!80}hpnQK}Fp-+dO zWPADyyM7zplg?k)Lo$9XexMf!JwczPjNEay^*v@?WnX1ZhuU&kibsXeHzYi~Z&R1@U( z**r~ep_wcqlGVlOLGhb(P;3q%qDI~3#lxWx6)&S}rmxO-YEO3VBS1Q|w_5KUtOP*m z&A_82%W*G0b=!ffqyyLDT-l4SV~)LKHAqVPNYAFb=`{1>AmeJUd%kP^+CRguJ;KveX`uX?3o1U)J`LD^R-fpqVOmF?cBjJSj! zSO3z`Ly@H2ibgM*z_eagD3AfR3r}TsJAzl)N*8QmN}lqKDYst&%aV50zigjR^6Y5)qfvx)&|@0i`shu1tM=R;Iutj?bQ?a=%G#% zP=SZIEcReD+~H0NLAxkVxtiM|7pMepKsY ztt9l@a$CbmlS?=CIbWs8!Od*7k7E5q`dNR71fOiKQ~D2@yaBl{cdyyw&UKn@^iTyb zZp-y`Q1dg|2K7>!J(W(mxImjX6@Q9{&XHdpaPJQ7chv!=uKjX?2O`deE;eqhze{3e zkU407PHZQE#^Bk`7YHW>?G7(e)aI%*$f!$_(2kJ;WPjJ*quOaAU2muRE$Mo6824Jg zQ_8)K?D3Ux{2$;V*eve|LICZLiA`{q1Q)&j>zQu?3>QQg(Xt~&Jn^(CHACz? z5LlNg@Wf6NNqqa<|2>JXi7?5R-=1kF>g|WVRcz;WOM~nt&PK4Z)_+>=3^Zbplb3Fe zKM9RY13jjJW*E#}2}1G4bT;FU<<8C^kfa$_*QwC++}RnE)Z4Y> zBCtJ0udxeO&9BhQ!%!#PBD{Il9wzPm``A z=Giu>?2xJY*jAE4GbD%wAUbKbU?~xT#NIE1vNXa~Mw>Pq{+aw#d}$!-?FifAf>+iv z)Dr04OY|i!Uf$p9M1E5CKDI^dzn9PO!(Vhw#9GJoc8y>VWBPlYrpal#I)mbgbC_zT z+4QMx3Ig>R(qVXuN&RmMbLX3M8r6Th?)Qi}*hl)OW=JtR1zCC|3kJ6?%1!Sxbp>C7 zdqEA9F)X)^aIkTVO_Z=vFDbYimw@)(_obsbP2mZ&;Cl zUs;Eb?3bR$fA6ZbQjThpULQ>89|`6%;e!@Gl@D?M2z@|>?qk4`s`jyekV5B;kA$2{ zm2i&B1%&}>1Jf!PRC~QL_EO?}kK4;-5+tA4H{Cz}=?Cu7Y*#&!LiBQwN%Tap_oE<%2r>fs+cm-8M)rhh$0rgvwT{In)n>B7 z#a#7;U^0GEl%TF4#gDIy{;95Plk`OC^XJ4Ehk_ZtBrUly<^G{?_{FL0(&2m$SExD=dqhH;W6;%iEJgd2KW1E%NSMKW~<<$h5?h=IYKKFwFsC!Yc zc_Y}Ii@CknX?!l^JV$mKG0|!GW2Pa9>`e?e=jq&ZO66PWl*&h4LrUe1K}zM;@Hu)* zSZ#${$!@L+_I?~}9tbv@gUuss<~fbO&IB8|ULVPoPCz*j)_i!#6Aaah0b)(m`YZtIcA5}zf@j7^O|OE_4@cDq(9HKk4)tNaV8Aw zc6s?w25)ye^p(MD9^RXM`av2`bGtUr2bC5ND{jL?Z)?2JIJdcn^|s-?YTJ|P_%7<& zQ=%KRjBwhJ(N4>W&IE}3{7Q`Kmf6m{0%r4;<<6qR>J!%7zs(M@;}+TVpOmnHwe*CX zQ%5osW*X0n0Y0;vPD|qku@b2>KE%p@k}Fwt^K!{(61M@fyA`458%g)6HlxTyM#Nu% zR6DHbwBU%i34!(>j)=YA{GtU?fLFei6riOuga-A$rS!MF1D_@F?{7)VZ()}1BF_Fl zlImNSMxVlM{=enIw=j);Dz^Yu0}Y_WZl<|FGv< zFvU0hPgA@FD|-7kt>~69&b=7MEttTMeA5ILYv8TGsI}&7%Y()_zR{=W>` zRsU(v-l^T==&c*g#&D0THkw;pyJ@!TE0o==wd)sj4~I72ndMY5yF{4kCXqN`;vR9u z^I*bLXIo;%W`LVq3M+t^xAYS@s`9jB7U;r}pp@-r7 z^YyVMBeVM_PH>NM>q)b+8s{TP9Hi(%*ZCxIwX<}(Fr9i${z|VQJX`%*OFkBTdW*Kb z84pFZ)BF+>FyCntp5;&z;e&KX}j@O)<9!@mMPBia0Dni~~#9BnEk zK$Lc4@hMqpwB(19ODKB5a)x5qvdb}0hxny>Lx@5ff^)pY7i4|&zl3(<5_xwARdj-$ z$UH7-jBYeOv=;_{NCvh{Hw%`nF3OhRi+tCiwh^i+EDfkZ)WYhBrqB2z+9ZXJlxoSM^QKF$ySRj@P z!H20_BE=J#TU?=g3NkPtDHY2h@ze14F2q9}KrYpdh2%#YNN-5ivE=R8qSD?{Rda zTD&0z-r#g+%IS_%r^j<04BA)}Kv-GXp?4y6wL+ZOroOAb<(Kqy#r#4WgQ#u{Vi> zuP6Y>utvAj21#lm#mrQHk{`;fHNO`XD2H^}kVo<%{xjn5NH>-&;%WWD1^N|jswlgd zqGu+lJ)HC}RguwpN#gtZsA4KTX5x4xxD`6WJBspvb)=qJby2(-k3@MTL6PM^!2HWo zQmUs8v{sQ|B`n7GbU@>fAwHno&yAl=(qcY2&)*dzOz8Dm_1kV{QEC^NA z>{BbdRd}Cm42Vp+ln`thnp~KlvmNIIR5hV;-x@g-*%DD(Bd6H)K4mvI2b+IryO*^E zwd^W&f0pwEdis16I$&xz#xlw6UrTTCXo(2zQo)P*Rou0pQ@4{%gT-fDaMip zdWl~^8lMqz4JlQ|gTsmt{gBq@PdFOA{;bDA#bG)$>XzQlZrUly~uoHquU zoipstePO%dF9SK#RRzv9dJWB9Yuag1JjINy!yPhXzP?Lw18Zq;1Y_`Sl9lve0X2p& zSsLh$2V67Q2mxn^X-)el=)pdSl~h6Q%=t4zXEq|uy#E@23>QBF_PF19T5mu*ajQCTj022tmHB2u$n*p#(c`dkkqv2)x_{hrm zvFOTrfp?{fz)6swRhE26WvwH-u*#iQFa*SUVMfVqs<$&*Q4@UK+QmiNg)#^@#%jXmz3_T_`nXU*iPp86q%jQ~}6dE-v zJ9v*_@RGT56oa>j1~{O11spINkrWLaj3@avE?*3@*-#-^YX~sB z3itXytKH*gI?;yk)^Np@Zoj?8JnM!($c!J-SsBPoe>4HV5%ynuw0(03eU2+n(lxFJ zQ+o}prhE>0P$AYtyy)~u{ga^)h@y7+_c*@B0kim7-2RL5N&fu?y=sCUug6>*9Co*x zBB(9@mgq&1#*%Wg)Lj`}g!eS~R@O(`&qrdGF0Nenfj810fgL$wn`(Poja-=gbtGMW zwm<4?0s3cwsye)ss2cRC8e$hk)JPHPxFSm67E#i%M0@FD3)9E+9-H9z8T_sE|Ho3z zv6UQG$+npDl(Fqy-f-C=YF4Jf5Ebb#d*8ghqV#w0v5G1-SpUw|_Zszn%-rh2!8Hfo zh&lTCNQe?rOw-Yh11 z(2h*9>|?Hk@*%f02MJN=+dRjxSjh#|l0EV@JXUH9%VHEl5U6tq|FlmZ!%ag z#&Q0oNSK*w1?87SfjP;ooP@zpP_5ol+m@X$IwW^jlwfT&T+^r4ikr9zm; zgY8r6ZKN3lbI!ir$Gbo@b?)Xw7@a|ab2Dp*aNCwf{{BrdjR@i*l<=2Nn_ zSnMm|*$OegOArYK6tJ+7?9(a723AGkk(+qbcdU`cVS9dLgz zdVLhZGF#3&N0%TB*~bP$_cax>IdU}1sPr$)+sZkk_g8u8U*+ji`>VX*S2Xjo9X!-+ z$dpNpeI8%;!f~6C<01|As#ErG$bB5LKn`g()8%{9^01c% z0G8=2W&M?7o(fZbq}bq5O!`eZR2O0x)a#@hjwi$9*M%!c(l78zs2-3Nt__94`F=(+ zmWW34Ow>OqH(nHto@Amhs7C$dV9Hy1Is7&@Bbt$cbwp;4G8s%mC5Q)%oyQ16S5x+_ zRkQ(K&jRy9TnwU5bsK9Y_XKLy{$TH=VDHC)J$*~?dFnUCOPT7&3mzCjqg;5pHjH;0;njKX`vMpNO^M$Qk1jn@nyaa?IY){o{ z7_KqZ*GzIJA@5+Eo9a%GG#hxDF@V^^4V;40iv#v5|2S`ie>&}3>^sC~xHAVvoRoDj=fx>KSmUxw`F#Q>C8+(}NRxhw&mWg1V|fFnMib*9OT z737iC<<}B>5XAckGXk<=fY4cRvkB8{84d`a1|Y$Py_qPc5Zf}tXXY1{4Gm>L3eG<- zL@|y$8mY!6!VHyfGh>iAAS%V*{aTzEkf%q9>Zfogkn8A zs#U9k);iS|v}#-13bobNKDJO>J2*jotfke;@4fc9So-w){JyW>A3ws~`<~&RaqqR) zUhA_yYt{p5W{vf}D>)j%R_#Gq4;a<>ZcN|q5L7J9I63PnHFKzSDU%Cq`vt@5(b$26 z3Z(|2!3jspM39NJ)80*c&d{Fk@j~-14bJIaO4h&HamsoeGQ_Ai+ODImZN-9N0!{J~ ztox!Tp7p^zvz2JS{bS`!0n7`%vw%ogNt+s~i`-s*x*c=8aqr(2dij46RCH?;OFg=*Ipc?ZDBHF=j9Y+u z($bgd8n=Y)z5_4ZX8UW}^pnO-U|Age0(bh89AJ9Od29QG1)`Z4@=ui0lrJ0Z=O zh!&mmyP>Bnw1%A$p6yKLjf?a*G!7)lfaJ07R|hy27>;@whMgbS*2{hu`;eVTIsGIw zPD}^}3?v5?EBCVSSc|~_Tq;raVlRCzw2fX7R$mRPTd|R1ME$;FsuiZ(5pKH1GfO9# zveA?S584AQ=YyQ}8-F^DG~(3g1-z>TNSh(}qMB?ci34$jGarKgm>$K%!W+~=BU)nFjgX!`yI-g#~Xyjjd2*5Fv1Vb2Wa z`Io6^TjYBx_=u2DZ-W}h9mz|*Bz&nMv-M-4oO>~pbAJx2@#aOJX3C^+Sv$8TtdGgr z+&~K=@_Uy^))Bn&Va^~@;fykvV9tI> z!(`%4vIoV__Rmwj@pPg!y)L%I?!^5jZItoon~X=mqBd!X-`E}G^`WbvP50Rb;IYz_3r!j9BW!gqbcgfw2Eqnf zh|X;$RWX8ooo|hpnc3H-vIkn}y5{#(_^_Vb=C4;^UtZ z?xw6AiRK_v4E&vfgJMH@;JH)t4nL~k$Sl^9zBId=^k;4O@ zrQfXNeOEZO5-`b{e!2xJ3i8v-P?=ne&!`5AK?c4m$?Me49-V_Dg9@+isX{I%Lpw2! z!5RKL->!8=Ve1-5Jn0d3H=}tJFgzI{YwR}KQ@xXL8vQ7wiM(Fa(KppDaewATDZMwr zFch>QSB5CtYfF4F3{6rsXeHs(JI9%92i^pUU`9LcQ`>|cCCrx_a-=|n(P-^Xz+%Lh z8Apj38q384N!ByV8D~!o!!B_K{R*Gv80+1{5TrPi512gUF&>G8TY$JL1SODkG)#HI zxjy1tW2{fO$nPEYgL{>#<%NFni>XkNCcO*Ad=;J5HM7C$OZG#rh}r|>1R6cNpP12x z0xD#(Ds$Op>*{19k3VN~jbnL=s0b*&XNcnaK(ZA>)@Me8AFy-3BFBjvaHpQjQG~j?cMV|-#?D?u517|Y69RL6N)Nz>sMdg`+dO;S$55UnsX#*VnZD6XC zw!oF=9E@8Jr)C;Ob^xbs(95w(r*t`?a~a3QHjPyev3oamA(UL#b>b&LAy7#Oe};z? zINkjqvMeX2o{Sd$5P#%0B5{Hml)^Fa`x2rVt0;C;3A-p39RMwdP+NmjZ6)R2NP9g7 zq3z0F05UOm@Yf!kwyx{Udx%-bIbd;5?bh+pS=ZGAUA92G*a zq8-AEC#`Z1UUM09XF@pIXjI6(>JwSJ7f+R`zU+vb!+9sLewA)RPssuR(%v$nsd5f! zSQz<*Xm16Rjx3)e@r8{b>f;ohJE9;zP!f^MrNq7S_>1Up^0`R_z97zot$qM?P6nHT z-(;A;%ujJ<+TVA)QruJ09=F0S3(Qc4-~&F09Usg) zZPKsS6X9f>9T^(q7ODpDzrX$2-T_-&W2D8((3S z2u}P)m+@S==m*G_o$1iaiRUzL0!`Zp@h%K>B7*j+XTujTU&37P&y3P1^6ILciA;P8 z+WJqRb>zVrRsA?2p%tIkR`r~{MF18!qj_)tw5=b|o&hNEp5b{`X}*^iHBp^sXhWQain z_)7X7HybaCc*a8FaZQj-VQgSViXs#m7RH&O?e&N;l3g9O96shP{W=oLp%)xu%qme+ zxWg%YpK6xHaF$Y27;2Yr+_h_r&vM+_f@$gk=7u$(Uoqm$7b!VSNCaj!&7#rBz0RYp z<0_ww%Y@gC8DpLCk9(vo+l-6cyaw7}KiweKlqT$D%{d$^%tb9d&vNEj$BCIgY5v3; z!1#=J`#`WsoW!|JL_j&fJkOcVj0VMP598kvq@2kZhg7#mhv(BnO z3_c5rbvY>@oD+jZ*c?7rPF;jNIT1G-OTeeW{QdW!B8OVecJZb!A-Q2z|5A$xl~G`k zYS8Z$5JR^q=W7J{x;?>SHjAn9m#%rfgRu4?QatMw-4&PAz#H_epbW(JJS^z)SCuLu zJ5Mad&>~{x%U(F3z?d?C$>5bXa~DG7n9V+|w&_98TujD2A7%dE?xQx!PsZSOJPw5q zxqA-lhl$$g)c&PN40E4=Z((pXe;_u2pxWUd9QYp5&E}8qc6lvN=YRjJ34dAL!1yF% z)c^T!fb3OP#a$l$SNZQta%RpKdZPcgvR*v5xKbUJZu)(-CT*Ql$80KUPr+Z{ zqsrhG3|mh(o-J|zr|I}PBoKn2j^|YbYl@rV!L*OX_K?N)a5Y0k)T=J2waMWPZNPc_d4ZSU*wnyFx!pb*QZW}W<=ff<{$fJql9mk-Z z?Z^$$k_9Dj0FVG55wq1|V1c9=@*=WMVnXs|^}@*8!DNQXJ#(Q)AUuVI9P*3_T!OT= z%RHvDsPT2U-)r>~1-bS+VpWk*CGRFMZ&d|7O0^0>sKDt(@=E4oPGmeV!G zeX5LD&zk&Ys&b{yRT-@tK*SEMcIuKH$hjAA9;H2UES7SMreXcDaM$O6dKzl<^t~Wm z_Gq{CM;vZu>H&k4#`^%d9eyv^&XBDaqYmwvW)$qXT0!N>P{YDS%)$FuO7>`+9{p z`v=TQCSksd`Gwu4^Ejib3PwQ#nVA3&orr|J`Y)j$@q1J`>wSBS9rQe+BB#AZJVyp^GDn2DMcZwgxxi3$|A}*y{3va2vg1s z!5?L@DNDjKAQ3=NLRK*s>S1hn`OQSZZ*tXU_asx^qD}Q|xNeqNxGr3{+u7vm&F&+% zSqVdc{OTA}z8x;i-Ndlbb9J$G)ne3~{7G7EIBR8J>dtbaJ5W0}j?l{EH76zg+?rh6D4O`sc=V##iR^R6a{gSLUIp+A%%8~Ivv zkA#(*$Nr2TJ_s(V#IC_fTISuNNNJGq$*%Eq_*`~J4!FA_YIo#9Q$DJ8MfC2-NoL_c z%YTOZg3_0t%sFhY?=jP6Rrr(Dhkd`9BeLP*uv%jlM(rY*T+fect-ba%eU2_VFMf8y zJ2n7sG0>ar9YJ?EnT~ie9-s_#<_&ftm{D=E%U|T=wK#!vOT3gaN9q}gCYWvyAP{;YN&@3I zXC2I0>+L96D-zM^iIe?P{F6!ASFYEfI-cyT?ez5U$3$U}SNx6`pEKBKu8^tQHsNg& zUfU9C895$|Qb_(lNdod4NySKWAf{@un#61(;^gp@=#1YUl==h7?~o@4!ID^Ad?mAJ z{dKbLCI^xYB$6(c`xT$r+|n^+b)_xk0~1SP#n7VX%KPPu%lq?bW6jd|lGvKcl8V93 z(((y7RI)pCtTBEOR^-DO*MfJsT|N{HrT{tRrE?Ep!# z(WXNrK7T0a-6vros`pM-!vuPbQ~E>PyTD2R8dk&1!mM3Tmi62Ri_2rCM0V;frLh~5cM!eY-0J{0dd8F z+8z8Pto|NW@7iYNli|`Yon3+69n|j%xY9SW)|DRfwxVPLimFB==X4lU&_@QMJ5P09 zSEYWrEYz{Eh9>-;cFOgLz=ev@LxmAjP^tb{+0vY^Qscd&s-_jx7CaJlNPYYw+KB&h z;>l@ytN3gYm&q$KNXYhg4t;s5pw;Y<6mgAuiJ$Z?A^as;j0@*{KbgE(VVZ}hII=v7 z{jN`CF9_Br^Tlmt=cUH@ZRIEBZ&#JKsEV@S0{<8uU!SuxbR+#WbR&HO2U06-A%f%W zG&8`}Fu>g|%;gS^+544PLzm2M2sX5V>>|5q6Ft<%bB4B*l8e+`A5hYBUCZ) z$Gqp7>fx~J+T$*=dhX0xZ~JG}whJZ^$=1Ih*|OMd9d2eUWj*x-ZLI2JwXK!dq{Y% zSF6WIyPZ}Ka+ND>b`Y{39yyWR>oK7otJlVx14g~;B}nsgoe6u{eVWu4jpc6XRX{3q zx9)L<1P?3sDm!{;JM3mx*j~Nvj`ncyhm`#}<_(?rneyLK$Ctv^JRnMb7tF8dozZ+W z5)3Abwmj<{Q6BATdfr7o54?>pC(y>uqzC><(1tHcri`~8vroCc*JC?b25=)i%8f-&>d4aan*6Y8e!8(Z++N*W`miqR)f@8s>`7JM zU6*XQOX;(#SiB%QKhnyJ-XHsx+80y%W4~}r^=!EGmTQ*qHOaOIwW*#Aw>=UrT^DYf zX*S&#E?gRJ`Y>u%&NAf`Q@$5&nPC>Dney`Rj6?Uu%B-GUoz^|kk@U1R+jZ48f(={; z=SO2ah&kGSS|w<;qO=`nPkmk`^y$3+cICdR{AXCY!j(nuaq$TS`GgoZg%hhtH$A5! zKLdstK_>I~R1juow+9)>C zZZ4v~7q_Q&`cS}tEp_hGgSTsUTr1Z$$Vi~cUMH6De=0qm*6btu%cr?^)=f_Jr?w|| zU~&t0boCf739OQnK!rFpGTlwoHtTK<(ZR$c<;JJ_*iLHP#Zgro!I&xS?m?Hy@_UZy z5{^3|11I#ZRd9#JKyED~qlfa*C_m9?!kx$1FM$@*JVooq=$mJ5V0zrFac?zUpJ zy?Bc<)f-N@WSi=$aOqWTmhLZX3x9BHxXWs@=`>TWFlD$V{C?75>%%qwS)Ta+aUTfJ z^z>iKZA^;UcyG=}ZLK)@}7K!G)x`c&XHD+3&;OgPYI z(_QG(gV36rylEJ|P>?1%(^%EQ&gUUXCprx*HG7zx6SzN$(Zgi}-_3?W-chWPUmKLb zM8f+rG;lPe*=WkM?QbYj%1tDH*if&Fpk6EoG*Lp5X|^lrA1eU~ob2)~yRvAdf3m-_ zn7VjncBQ*2L0z%Z=P$9!U-=w|t@qYB!+drgAj5U5_qe$v=W(z;-pX`6(tlFi{gHq{ zrL8Z*K!i)Eg6S*r^G1g@{4;Uc4WZT6vTz|v+a}p`K=?vroCEDyrhh8}c+D64mFr7| z2SaFil4=IC(=vS;-=E2`7uk(&!kR{RKm#<|-(nFF8GA94sunNjE+$1=Rd9qVMRS5! zVxU(XJ3d*GXi4W%9m&!}kN15YFD+Wh+6-n$bT4n5z06&fPV40!$oi#T7HQ7(#;%VJ)*HwK(4$vmBobmQ zEVM0Ec;NL?r`IPfXvD>U9*iqkJ&sY`P(2Zs2iFlEaH1IT;FX#2a{%835kme@NnU5H zAPX_ViBI4tHy`{^>kFY{)uoAKvR~oTtmZP^+OG5yWQ))I5b{fZZtP+eFU86tg!s&T zh4jA9-sP29@of>L0X^1rDCwDBv74i?R;AKEC{9U6d2C$*3R9^Uf_Klb|`P45okLjKX-RT z)XvCBhm~Kk%|eSQf9)K$utS-JKZZM8sm;;`Q<5MUsAS9g<<>-bQR{>#5b)zv`s>N* zF<3#-JMRbXjJc?Vsr1R1acqwy5K%&zSWC)iCd8xlnRt(&)A>L-7c$rWr&>_xp7M&W zQoJH8kt6kv1ik3LrT_g+3SzMH(r-28Urt&wr2ydk=UV7Trl(^k(Yy!5STW5;8( zj_B1T5Hv+wB6j+;+EG{{y9d?@&tw8sy&mt&DXGD=ZmN!4A*iWM?#M2)H5afIdhnr; zJLsf45EW0P*c}pPK=&JkmmN0ZZHmpc{<%R3dBdZ3sz@e2CiWwh?9+*UNk8#rmHwJa zWin%m<_A$9PY1@WABI+~PYUKNma47pt9|QHoN?x==A)9VWb#yj-H0G9lHe8>3>f=e z-pWy-VS133tOVZ12es}!6xUBaP~%Nz zj<3obgvh1jVSvd(9Lsyv$E_)1bAsiVK%*(MoUCaXV`L|mGEK;;V{li zcP*2NlfYxkuq>N9UoM86ZvB1DJG|D0HUtX$wz!%bP$1?)ksFE&8pj!?WP=O%2rbjH)Xg_Sh9Yo)%l=nT?w^sCWEDfDXwIF zi0UD}7meyp$e8aR_RIrPDP+)8Sn&j$f1gu3ruCvQo zSVrU82`YAn9Np(L@?Pfs}oY=TYwf8)4MRg@fq&SBZt{f7%WQqCxTePdkt}saCe)^Fs1I|p;VdU%rqA@UB!q$^9AWTG2$k>JOER&IZlqrc<59*RLb=ek3o5u z6Kae*mM&VoW@e<9(T5Vz+;f3tIa%o0mN~SR`Iah_(L9-6O6<0cDu762^u82 zLelvV@Jr0k&2}bw7glyu)WI4)(IZTo#g3?S2S|dN2-sY6Rr_W31X`(9|Gr@8 z-3S~gDc-{*{t5S&PS9U$|5;j;n9Il!DyZwXv6E3j%VSTrI-h_=$U7d({>}I~QI_oA z@d$HYQF$U2<<{>NDTIm7#2s(YeHyoG%AFOQrKY-rkl9Cyvf{j>iP_!lJQY@t5y!#O zSJf`3$?Du51$aL_Q^_pgO6{G9$qL^zA|Zg|k8=sTeoPc%9o(gc6*?=3p)yGbh(Wtx zBiqQZf4-V(=gCGqo!l#`JQ(ZO1mo;c-dXMpdw_GE$aiPEI%%8WA)gCjkweTv*6Q33 z(X7`B~7aMe!tA;(m|(5CvkGF5{q-wGGXcQDX& z?ulDh`|}Yw136?LCe{r0XPJuF61D+ZeKYMn=M41Lr2edG{-H(>j5Pw0M=SFODz_qG z2mK1dAAcRXqulcL!npQ~P=Wg-h+E{+@sB+FRJN4-s!lUNRQQz0r9nlG*Mi!0=T*8dPK!b!F zQRn-jUr`4msxSJsHq}+0slM)->WAUBEw)+O7cPBDrTe0_W?kZ7Y#85gTyf=W3nDZOFE+C8n z%@cxsp8ka?-QK)f-tQ!2eicMSLER6PKgp8}Vxks)Q#`uzQeP1DL%#eY8ut5tKy#pG zI6Zc|m$GZrY;QOKOERrs3_QbTx;jE18%(A>ZH%2^_rS#JjImdiq>4*Qii)#kAF0yE zlrzr$4ssGiSIicXu{pWP+muwBNlnp4$ zBWLPdwO=8IQ-oJCI1Z16+v*KNE@2zpwWD3k?nf|uOtKSxsn@0ff z;|SrQT&DD#*r~}4YDx^-X#70X$IFyIG1gXck&29oH8>-4sB#+;*QoS#wiL~YeO=XV z$c~GZ*SDf_OlL+@F-Kf!fP)@U+XNic=a}kTQ^G-S)`itGu35U+Hr37H%H1KRXt-JT zQx&M-j(O`J$X_D4AtomVhmb~ zLfFV#%K4|VH+b)3RU;g?(s@JKgMzOrd@r|Zml(_kb$q{yeXQb(V;3a563O)CDuw?C zCF(MIG>BRwBR+PC8qK?U~HJ8>l7@|~q+llVjSMfSL}t2 z)@SjJbeo9R=PYDwDuT%Z-!N5>gP3U)=tXbjMGB5Pxs@w~A!!lzix?kK$fb^{`oq3A z>x*4wc!3^v9fW9`u<>+6ZddVsF+(-fhdcbB5Iz1vnQBW|U0@de5%NNM2Sxw;L)yAB z@vH*q6^2n_DgeyYk178M3DiUtZDNX%_7?L3(_X@pz(#CqlY=R1u(Lg+rv*nZao*C! z34IZew@R{p%`VKtJ{6nPBCdZibs8JMT;9$?>PO{WO+}A|d#F^ym>atBDnk|MF-8M> zwAbWL4qE(LCZyM^cz0|}ynk#+{KVLR5T92nj1NjHT6lHXWOb9(i7sbjW7-2hz)EU4FcT^@i#7(vqw95wyDWQmg@3B{U zAUQ7ZBnU&WSdV)KPlfeOz*Tch`Et0h)-2551Sq8QA2I9m)KNs%;M`f^jP};0$)x72 zslQRxRmVp%Ij({Xt%K4lZj0ThBCQByR;kWNMkNGQBK>V=ES$H&4GKk6IWU>i-9-UG zw2_v0ORRrD6(2~83k12J&y={syqdz$ zxiu0Fl;;Rp>S)|O+dcAv$w0T=`@O$Sm_x`-C)E?SslE{|eH9*&8q5164NCf4-QBqm z16ONTFw#9DQQo6hixL$_Z7oI*LuDT3v=4FX?^9*L5ebA`gub3-SOr0G60X8&rMjoX zXWBKgpFW_*6uS9D%mxR2WG>yhR4Bbk6dCs9iyctVAK2hB{Kr*vn@vv+u9KXGx7lT! zETeM@jI5RjhMml3jaGI%5!E|&`wmcn580i1L39W&tq3EGR+xAs=^`UB#2Q*x#}4uTKdb;{VTgkKwT-|Ao)(FDwn<#`Lt%LH+u_oKA%*NY zX4BcGJlB+!ro7OU*N6LdZF8cQ_e9b<;CA56Dr5McT(*Q~S>Y{&RHY)ll1Zt$Atj;Q(Ne7XkXV6(13&tXFfqXcHIVq{I(G`-tc^s6&Ehkgr}2nJl8!gRCbZ2= zH?n4iDZ}q2n^d#qJqZ1^-;OgRPm~{;8Xszid`j@mSiRtYB<5f&!h9?SH53LyYc}kV zpt{9}l}pX{Vu`i!Aia6ZZ$(kzz3>^vU@}Y(;)pppqL?n95YI68Gn?U1JJXpS+ose6 zjA%0Zjiq&LC6axM0O#%wtFMREH^XYG@a-S)WtuyQP)5fYXUg#VZ21l$)Wp())cJm4 zCVMhqx0Rwsn!1}Q=MNR9+RjATfQdGmvSS;L84p_U7bDa4ToUoN)0dlgH_{ln1Cg0; z6(*2~=n?Wzoc)-}_KBBbl_}dTk0_BhBF!A2ni8;d*qTkde~Q^ine`gsj2@a$9tHcy zDne|A9Qh&9EH|kfy-=IVR_eOto^9rD16SBl5y%N(#OSqDaiszRq7u_ zzb{2IZbE)c=)Z`y$2r|zy*;%xm+NL}ez;VHwUMPcAg1n7&UvZC@U{tqo5-br@hoLK zsw?RhuLuXR+lrVO(~ZcaF^gF19y>-}nt)K?dPIDr%ee-GNvw_bevWf$;oBL`k zlrbzl+lkfMCgzb*rW|4IO*Rm+(u%PymM%^awnc~>FgT`}o@D_$^UQmEOzjdj{l2go zy-Ocyc|U?$Dz!+@!)V%0RAV`fVJMA(@lYBAemq@Iqgw6c0HWkY4*c zS`Uc*N+mDViH7u-6%cRWEuX7wLkZ*XQ>rvsewoh01_VI1&RTOMGTDiRVR}~J|^}5aPmS^E^_P3Cq%7eoD_eI^}-#rGN0sRfF z>zSIF7kir@b|WHj!-&)sKoW! zpi6&6IB(^r&4-=oYc^V#oc=@{|;M;CSjfQwqRp18_Xddi9$gG@=3=I^$~E!)2=FdZ)N>$r;}-t_y11HYOP`jDm1S*HX2lph%5@4~C!s zEY78F5vA`|T^PSMyth){jn#QIb`xX96oj}MV-{-ER#eLrTTJ- zg#26v)LldqFxO*W#dJm!B3Xv#6{Qdc&~wmDSTx^=?d+A-N*CdO#_n})x9#nMmVaK! z*EM{Dx`uBj^9{e@L)u-9B)d}w4{LwBgbF?B;6}XK3ASi|J&R`qU$y;B4&R=2qn|lg zzx5#ZN$sB%6+AKDuWlWJNAf%)?f}+(9)vvD+ub$-J`N&f^X`0WAGbQQB?hr zs%or#UDXuTf28W%+|cX-(+@ABAJUPw+t!Df709{E$sDWC4l<>5Bk6=Nd6`k^JZA&? zUAebf`+kGNW{fEJw9 zWoPIwsZ4rx*_X<`q6zJ;)T6x_k--R}@Y}F5cU<^=R-~iMtt!Z*TP1zcQ}Iv&UGG4B zL}>1fS^|cKL>l5$qme#$lW3?2Q3FdBQ%~-Ygv&2x>h)wVDml~#!XTa!1^|e)=I>G& z%RAG0na#t^O<4jkPjPn-fANb)zt|{Iu9q_k6k9iC2J7R(p-RG$N4*BY(itTesEbk@X`gwK{o~;TL z)++2Q2}Ud(3_+v1O1jIP%DG9!Vx_Q}$$alF5qubt34W>6N4wL44fb<3ek15$K}G!5 z+a;)ogSM$|RHlmU@}^ndJ8|ptEY_CU&H_XUMjO4}&IAOVU#d9i^Wqq1n7)abWz36B z3r}`Hyc-8R1}ilA%e6rJ-c)XVKt833>Zi67V@Gl2Jm(m<&9%642J$XE>!I8UdONwwz}5@RZKtnp>}Sw?FJ+AA9T04YO8yrGS#=KP+gyebqiPRY|K`t zqI5hWLdiUj)DWV8o4}WQOli$?!8!|Jbf_?a9lTQ6lf37Mj16QDW=_#>scliUJqkBb zl=kvX*Se;7CT89fyxsPpLFJD!8s))y>@Cn5?a6f*;;F6PAX7e~Om!EP z-ir0qED^opwOZbrY3rWia~TpQv>(fG+&a`95nz{NLdx)r=YkR1c055R52c<>J(ybS z>LzzYv@4vs@-saxg5K9q*c4hO}P1@00B+gwV6Zzy~( zaq_3SYiE(4h!v`(!QD_mz;^T0pGk$#qBm@3zU?^+?eSy*>~SXQm^&RQbe9gWc~=DY zX+Ixy_)&Pb=w?N2*f+SS(fkF=>i4XbPZt@@33__kL9v-DWF^2YGz-wdl0&87`o z+V$3UN{&m3_We|+_0>`UCnw?^$_Fn1ru9r0SnOR7K7$eJYi3kBRCO_cjl@wiJUU&s zC21Gy_`wa*XBK-W#vf4L;8>msPrF{mr;q%d-pApn)(-k2&AV?Rhn9{HW>n0{&;>7i z6QI05n4OYo=91l*$tL>WQ+RF{2S;GpNb#N!Z?9bU+5OV+#ku1a}=$o zoevJ~QlL&*@{ecrgGJ2an^^IVVB=NUf^|)wC_9;}5=oAD!v#(_A^`s(#;aHuY1R`|Z%Cx+E~w?r`OO zRC;s28^fhPvCBfs`$diQr#$b8h=|~?^0Y<=;1jbK_UF+I>8)Rr2b$({m8Vefg+K+lSIXlR%WYP4ffKOm9D1lW^b7HlDh*jEp@>UjN*tCs5z z<(mY_m0=}c7}`gM2~6mntXhd;;=$1_rq*rfCg{$_>`<7_oK1M-80PG?vuZ+?Mg1jN zI=@EOmPr&klgypYE)6}{KOOQUP6Z4zweVNNXk-4o+CyTQ6j(+quf&z1$s>YbcGg}= zV1>2W#f*-y$?KF=QjaECWR+mYITXk4ImB<72>1WXH*6x{qmesOn)?6kcmLY^|Ng80 z-1mR`&HujVzyBhN4fxPs;Wyz`A1b+f`NjX~WA5(Ie%z;P_6whqvR)=!sIbTX@p;L% zL)Y@3&*$H_vUJ!n{(am3JjVaFRgUrh-`%2?1TQ5_1XgTU0RQ3*Nvmx<*o`|ilbAU6 zWc)W1=>PO16p=E%;*-ybRdKV<@{B%2GR(WMgpxar8DwTgAuHhG@o=5KYfb zMXjA`Rk*g5J{e)U#TI<&Z`cRLm!3OF4uBU?jmkjp9?Re9#3cnp7~~T1u!HWi>Bnek z-?uS4meYmfbjCiLv`%`e^}bq7{N0_}pB$<~H`uC2)S)x<31qJTbt3qMKZO{DeIa7u z18-BHH>0W<$U$ z93zmZI1Pj^bNzV+p(i7uFYYzvd{+s#_IH)K6S5GV)42G%D%KwN305SG^-T8)1#Q?Y z^CU=DrDj{hm*VSOMu=a79xsXXL^i>yYkYg>G8_*@Vl+qi1@6R;!?>!eqI)E~Dl56S zo!`W*CC6gm6i3wpZ#VON9Q%0${|u(ZOtGp6OM6A>dBtv}@ahtGSK$=_br41Pb@46> z`8@#?!cJ@02$+ZcO4&k(f}@g1k0bPBTFK(yg=A9z5j)jQ_6{!n0X2iG-mWEapIo*< ztdHVI6+~yGX&TMpZLHwQeq9&t`e9|>|Ez;JZk;XKdV+|J<7lo!oY{huk>gyf6}%so zb(DUAVTty%Y}C>s8cQ{zIxV}1H!mp+Ur=zchIy6urrzPHo!%45R3Q2eTe>b>+7@oZ z-YVOsn6j|$=pEiHBImCyvf574sg3}b%|hHF3pk<6>@*rKwgO3Dg}YtFgYn_2>3XV* zYa>p#VE;vJRfDFoxy92{C(jI@@xy6#l-$fV?M%e>Hrb|;9Lbk4Om4BE=bXPQ`!o60 z3U!B_VZB&3cj~`{AeD!y#&BtWajkpRVhnAQX{!yq-0^hZ20fA9Gq)68HJOR7g8|?& zjDm8y^RV|cFqImH@->tY-2Tkh=K7LLMLN;1or7BS+2FLK`Ylx{=h!8fM@c&l`;nmK zf>;owDE)XkRs^Unpc!jFX-YRwi*SM>4NosJhu}>J--~rD?WIyqNjz1|nxKmPA*Osrnd-@K-5pfbobJb2s6dX^U(%_dSkD`~Ku;Ry z_9Vt9a6Y8LYLR+_zYgf%@-(8Oa7WB1sKjx4_2dC=fAM!QRUe;dBRE@+*QX~bdKz`d zw2nX@mE~%uB&Q^r=+38M@61G}^c&0+=6t>n9_k8MQ2Oni5`N8NT8o($K<@;#9xEVR z5fQ#R&N0+-+Q}-0bEsSNxyP}{+Fl35B4hkZbaYH)9?x_)V#-)uU&e@z@pZYRGQC56 z+qHJvi%|OG#8Zs$jtSQ4Iy7&OiduPNqZx>vvD?!E59`cQCv)I zjlCOI+dQ-Ms4~^%;mQZYr8mP$wiR>cJ95@%_DF913{@Jm>RFMDKAUr|Rir0OpNif5 z*ph|CZkbz}Kt$*DD!6EtlU_EfXM5Y=vH%cz5uWPOL}n}&bDNx2jZAmz%HSKEU0kqv znu$XS#r6+zn%g7rP|0(ANz?5fm7+~Ra(5{2I5g&CFrUxTNxwxpW;xE~v)nQEYHsr` z(|3qZt^W>^C|^fwUVsC1C=ty-UHweDsHizS1ajGMZbIM(p(E0} z+(mZa6}?1l?8RE4toyz3yvSyIZukSb*K`?D7Xad%YkC!eQmdU9Gj?cxaUJ}e7+mp% zVWV^|Q4xM89rR&a9WBp^m9z8+cZN6Iz0lhEKlT(p#S^!P&yNJ|ufg3gMVv7rtXGFh zL_6=S(QdSU!?tm)yc_L-p(D3NbJs~~%pp>ebOptlL6jd!DO-Ro}@cjz8lej>f)F)#edo7#zBDfRwa z@tfy3>vuV&H`v)`yhh&3Gr3-J!=D_;cUy6(Qa)4;wg-Fu#^j;?9ktzOB zeh$Q&InwQt##a1ZJ8d;yUfI2ZebUgFNd}ZNp}U#HCynw(RuS@{{O^a8C-OlU_I}(! zGAMWtc-C{las1*ELBg#=ew&l$*k&Ha)i~(UhRQUIJrm^AcPr;K4D(-{S>{9bhNgq2E*bc>!V;&*i_o+kc{h%*bzVl;NXNGh|JC(2bZx{y3G#+^^WIgJ>Fq- z5eN&a*h``N6hj_ zbNm@-aeS`4QaKlqqU8oa%&`XJyspqonX!s>6Nm-ct@of~T^U)03Ok(n`B3D4LOi=( zW6_D>0iLmCT54Gv3Ofu3YUji@GplsEM~%~#H{RMBp;K_owRfsD*wl6?>w!o==9mu5 zV1eBnUN^MqxcVoC!m1hb1FN6>AG-Hyr8{;hy9N9Tf*)q!CRJttSPtDy4V%yhj4#506%i$t!w-;T)4TB^f$o1wEW%P zhruqd*vj1*!C}1w0?h|B_;50NBlgpR0FgfPNf15`XpGm|f0X#=J4Gbm4)ozUnIx8L zeEFM_#*3fdrqNUDw_(W79Y|VR<6R8Z)dYVn#SG%ZHR^jKNmAYhd1!OQk2lBsWOKq# zH>Z43JNdbmtPjS_FB=b)MOogj99H31msa_h4E*}iIv>cF-_S6?ZyZ0+Z!T-{TgnFc zZ8KZ__R_(AN7)d+vuCJ3eC9BJ#O$vAs>1EZ&|w}F4iTbh=rMWPS(B+Hb$Q5i{_nMH zhoP4Fm1Ip^fC&dW@Ctn{pOaY_MLmiQ%fn}~*x3d>0FU6I_zaPb@w@bR1Qr3a^5U*FThb2yNP^-^jy0{K)bB9VEfC<3IF7-EZT2>U>#nGE}RX%(R z*Tt~D%;n54i2>;hkS;Q$(tl2(n=J&eI08#eiSb4iJFxyhm|YM_db71y4uRUS82VFIGQL8nd+Ti0Q?R<%w% z(LOdd$yuiF*2=MQsb#O%ZjcRz74)#Hih!T%-4c;=tycFb{a>QLp2b{O$Y1FAXEU!G zrZzgmNPAqtY_KW{mBTPZmt;Zyld?Nl3w=QN44*k<=DAp;rQui#B{??KdPO z0aLW&^-%D;EgYslk~pg}WKc4X;XWIBTOPwn&b``RF1^LQ*fv_mVpA?P<%gl;=MUN} z?Fg5C7gm`qZjF_@EMfgPJqV3xnE7J!r5^QTzpl45CfmN#iI6QOs=Ln zewRDi8zmDsA31Ogk+jUBuvxiG+9H9gr^aO3wyMD!6&*S52zNA(XLO@p?k%5j;uUJ@ z+pt9upjYLdxS&DUJ2Wt8RTPhSZmZio^=Cr%E6-~wX0QxG@;Y&ie_u>Te-IH~Vm?*+ zBB6bTA?V9E^t64xccQwGvfF(_2Q$=2_W|*IHwAAi{|tB_u2Ipskqn=7lv$p?Dn7s+ z>0YVgwQi4B>mJDm+M{UlX{AnZH$+pZDg1_x;M7jR$lcB-&u0>!(i$4}C*&>3ify_G z6JP|InIbO&wIqzOI9J6tc~KZ&cDrp{lr8^W(yV^rTAvgxb7HzRdb&O?{UB3CuiS2} zYxPx@( z47PH}z=9CJTSSbY)ZZ`AIwR6=SL#gX7G=-&E>`+%|6C@0*JzOFDCVfeyF;~@kQ+oq z?j_H9JlBS+<_J_oNnYXxDVmuT-P)@RsM3HFmCYi2GPnI;V-nk5IQ zAlxEIj@1%G-3y`mO}dQ~Pa18QctM?t-y2tJZfUF7JGJ`XJEyUrbyka|6gqkXE0%f_3 zcue6etTmsrxg)gHmq87H6c^65-@u)Zku0{&9&PnL=UU&jkETbzsl2wxZ4!D!@|2!^=#DXm@*}EO$8%#iyjAJti`FwS5#Iq zis%~JhIG8!3b|geQdQd{oeGjW9-(UO25*krOqv9wDt_^KjL=(w{hBIf_5RJa?j^fV z5$K4a_&!nu`2ksHij)F$I7YWcGPx|89`Ll1B%&wP>eisuybpXugu)dH@g1>x(Freh z(Wwm|q^q=y`0=~!U2(NL{>QMoIBAyd510NstgcmNj?5edD)cPmO2RB0-j@~hGWoeb4YD6{O5sHz6LCkVd5p!OqfJuzHk zpjGq1^3BobLz-fDhT6fwR{AKWxz}yyJh<4WK<5D93b2&C0kYT)w*O!@f7E;+P*^NZdchJa1Gh#ow6DDPx1|w3}GXyeyFSa zRkic+s}of`$X6WeHh%?II*i!7o0S9ngA4RTQs?{9Z}vs*|ar*RJA5{0T6M$_K-rHD=44A4fw}qKz19C9}r5B@P3jT(21{6VP zCQ!=&syib!bo-}Dhx9%+@93vc0FR!E1%Y=X_7pVAUE+k&#T(w%7gjQtDi)$J=cxI5 zMJ0#m$DvljQkN1l-UK!0H5bCs*f9#wK`aZ%ZNt~kG46FQGOs;26w z+SxVNs`{F`qx$bter3e~e*Zh&FqF_AJYG%1TOxxH#D42_s=a3LQ5}yk=NLLAv#$Rd zLU1}poYZxSnNM|Z46NQc)`4J-Ok47{Z^XhS_BQPCy>B2@gOhk3wfeUJ%p`%e^zttk zk_|(%w9b|+yGL8SORcLTHF_|}g5KrU4Sen3E6%ahx*aLCGxee})nksSZm~`Ep=+v_ zw5i??S8fWcJz@1o_`4lp_1kdIe}+p>hShTO>(9c4Yr^WWu(~R&J_&!e-s}h|sa(*P z*`#--;E#}{zHsFVvoOz;@T|+0Tc{YGZW?Vp9vM%M9^n+x8_7&I&^tR=0Y*i852N-u z9nJ~5UtBUNy{x?H#KoS;WKU6@?P7tm*&>mN^qEAT_A-{pY=GOw;dqO!i3@ZSF zuTtJDr!+WILfBJ*-NiQ|I9Za%tSoUx5KvNAm*Ix-sGpdU9pEp@j>)MUyb#GD zbzw{WZ}Cwa!Kih+5G#H;58+UT0aPqSj1SyrVF5yYQVd%b;B#(kj9sr=NlY@_>w)^V zFLc*WgA^9D5niHkHZb%S3=Wa4vM+ke=~O4{f$@zovu04bGci7Wi7M*M`Pp6#5c?$T zx#MgJd>v~)tx9smSfTjM1&GvfHbzmtH#jE>_I->^t|2|yZZ$hhcQ)cQ)+_O9PPSX{ z;IX~P9OW2hP-EK5;FtS>u190H3SRQR`0FaIuIL(z{w&> zmN^|U1355irZEtlz$mrQ*ar5i^Y=;Y&2^z?W`$X3->14z6&&l1_+$>zPDZXeKnFvd zPG<9iONWPQ!hI51%^Ylp62^}r_ew@ERNV8oXtfmsrzpC;d!QU6E~bT1vIA=|VA}rK zg35cTXapA*^xoxI770jJkToDv8Rm&MlVSdGDrwBF^~?AuT1pX@LzI{!^KtZf@0+@+ zHtgcNw3@0@;0zi#&_bq(yy62&5NvIBEr;9<8v^_6*44YPoA$n>t9h?{ol&jjS z(A6MO^C(0UKwi4u1l{br(W$!JEAl#^pG6S&$MXrIuLP4@f?t$~yO)kxIiM2xu7?!t zId2Q%fcyBPaj4YUwH&g}76W>-U96|8O9`D8O97YnvTd$~Os?|Se}?}%c?_Bq;ekUu znyVg4YIbvr7mNMvuZ72cfNpG$6;?mQxjgvIdi5qTxNODlf+GEtZ9SVD!&Imdfbe-7 zW~BJmiVC_DZ>UZe?CcCYKNmxL@3Gb!$#Q&eh~<1=Kn`SI^#wolP4zQns_Sf1Ei>iv zgZ?NQY?1Z*)QAo8BCd`$qtLX%Y#RZB!qnv~ zh?b!2)yIu+-e8zc_1H$Klk&+iJZQCuXd{+VkMRxc6b?)^}FTEm+a@Xdbvc^g#De!FR(D9PV(thZ825rAhne^z$$AzRgd7i?AMFpt!4D|eK& zH)RaGk(WYu`n`_vs^1eXU7j*a+rp*C!m51>2F2c==dspJK%eTbr;;TY1TT-KR3FsD zCd(>6I*z$l|MFNK8R`ejXTSyXX`d5cY|ry23kP4T)9SiMM&O0?V-Y>|hw&Gjn-UQa`W!xxtmnuMOJSqtP!7hEl^IAi+A*VE(-Y zIpdrFC}R{Daq)fR_XfDm0<{-{U{l=}R(FRh-?PoiZ-&)cv(R){*>6wKVfEftWZhr1 z2-BC4aLsl`lS=k1r$2b_Y6yr2Q9)^&QKInkVo zER6c;`SezKGCxm;lTirDPPA7+Nj-sqSs1_ECC*B_mC*R<-bQt`wuc9&+Aou|0S7{d z^-2*<$bk-3)uP=@u%0WLAes$UT0`3P)35>~B1B&6O}WK3Rew{iHRU{0_OTa|;EFib zrjay}`Cgw)-X{^f8;6mpk`^?d`<1|5?WK|xWay}12-kJal-K}b`~iJb%#URCY5Bs- z{-rO|!NO#JAw$cJ3csbDf>OPn6dVJ+>$E!wph?yNbkb}e#hm>&86$(8Qx6JJ(qkcC z(ko&0cvxKtoxI`I!{nHsi{bCodU;sLg9xd*q51w7s7SPZ63|? zv6%HC;U4`lm=t@Xy?O{6HF;-5PMqMl$?go%Zj-UgNQ{>d#H|R0XDnLRA-j;`!p|34 z;|I~OHJ;#1(&xJs&gr)HCa5#XzcoCV;SUOm`3&>(v=Fz;o1xaTq1(DNCogZOy@6i7 zlW3(KHtzQKq|fiPn@pLMRG__Yy4K6NPQo`FM#!jcB*`c2ImxNaLdo>uI%m$znaVKqp$;$`^NIF95q5dE z{y^x=Zrvo-_G9;G@9E-L__hV+ICum`*#aDk^g;&IbM{5H`@eQgdxZ-`U${-e(HGgW zn=Rwp@De)qUogzYDcp!S&aftI(8rl8RpPi{vERKA@5t)`{*T2HXfr#2_z9;6t>K-L z;@~$t>hHxWa?r6brnfop{_Cmqf%HSlBJ>|Dv(;^y4h`gUbQDrOvdV@ffYUXHS4APw*qW49E;mW|vW9c8Mh- z+$f{WsC1N@swV(+KfEkL-ij(GS436Qin&hZ822?^aA`dN@$xhgSXqT5yqwKt3L`^R z4Z>Uj0V8#bXe)3$oX7bvDDX%RYtW^^<{FJWXnrV*+j4U$%w4xN6;V321MZ{0zR*<0 zhG&9WmI+yw55?3ZwA59of!zOe+-(J2`Xv4(1bi4W=4NW5`D>7LDeel{{H^@L+EAsx zDi)q&IqO@p5~5ti)N{Ijr;;}xu1@!}@!D8fyhYEF7s06ms`;W{{-w%+@a}qA_2ilb z)!pjuQ^f~W)%R3!yY_!38kR|&XEj_V8kR}jW^|3}R@By*GySN?JsSD#Mb)$cIK(Cz zMBG}ccV^$#JF;qLmXL3$ex_`-+f~oI>fzAtyd|*J9^Y0UxMLT)YA;nUZ`pmFy*qF# zMV}RA%>>aYqi7J_-;M4cL-&u#=Bj3dXZ){odM9!@G+xmTN^jl@2u?5-sPE(}ez-LFr3oMPffkt?pfd?^nH+?T?3*^H z2)2k*(WZFIHha(N;eeg>gqe!U(QwK-b-Jw1o_8W{PUX^ZsR#9rl-ilXbyTWPU3H~z zxBlX`UR8GMzu3|{Qy1Fuh0^)%5c|0Jk+iMcM%j*3CvVwDJ-t8RayenUv!K31)54F9~2MQFVP?Qui z=!EzK5{sG`o?u66A`k|I+n8-$Q2xU@Y-R?YmhG13DO#sbQB9gB|bY=U`<5jkQM;JO-)%|Kd#Ce+)`ixX*ck` zyx89qkesX}XOs9^?ETv_FFClq2Lg+_H`A8ayM2Fg)vc~N-5#22%Na+X<_@$Uz3Uoq z`YOC-&sTV#1tW9?VjEz3;ZIcxRd;=OqFze^j0$KmtO>NU7Z|>z#DKBis`#MhP*f8q zvulEGZVsB{B>9(<*u$m0+*X|20i8_!*Tv{2bM9WvLYh&t^$j6re3@%6Ms&(Z$8)ut z_cSUMyqv1c>wz8`Of%2J1ej|B(J!9~gD0l4_mx#g%{xeN^s?V*JYESSQBe<4f7Nk~ zW#cRW94U@UOxU@MK@jXkraM&lL>(-sLxnrFt-j@|zxj4+nJuq%XS@{HttZ^p)y8f; z=C+=6TVyejd)?x0@`l^_0;lLBJ3nxD+3rqx&RzZ;w{w`i`aD~%v}NPLLcv@1=TY8w zW6~=^7)8;Be5zNQm2MkAh4Ogk++s6H*Z@w5gL9>)mHT}w@xJQSDM&t~Qj@qUhkEY6 zBjh?>kr;hA z)8sHZGt+r$TH`Bq562U1fIb{J4skm zVJ-xPL*e|K=fmsJJ5JQANdEN$5)R-&k6yUGd+Eau<=iCs%$TPFSf*8+x|%GbC+DVQ z&(AN@-OFWq98hm4NeI3SB%>FjF5yJb4{AH+#QxHBz@s7SV|OOz=VlksgM|SMx9}ae z^_AEj3GaE&ZN27#eRjC5XN*18V-Mb?%eGf~Z=gV`0J?7kTzL_of{Ew?MS5NupGa?i zTkAVDG=mgxvg;=4-VtV|Sz>D7%h(n6r)-b60ha?zO?aGM5jG9zIji)|5b`=bj@~6U ztq!rbvvu7Z!wz7)sxaYO8E+ZW0$|X&VSDfgab3MtinIB|JbPGxB+?-7j|d+Kf}dkA zN1eIGsx#-=@B;OG$r9ic*Rmdr;) zd=Da~VX5vOoJyM>h=0TBhaPj)4~*3bJ?C^sXYD87+p=v*Z%b-E?beypV{VSG)rII0 z!Ejlm;z->h@aB;k+VsoN<6>T~sV#}yfAbmkbNN3IIJtYBx!&mc!BqId`S3(DP@SZQ zMyW*KT;E`fz{w+Ke~f^QWPMA_R?BT!y$4}-*{;ZYB-H}^T3(-l_|((PAnJX7en5I5 zmckf~7z>NI^-jXAcN}iLV{z*pg#4XUbX%<4H6H65bwe#yKcY|~o)2QX6y z&`o{#9{`^k104D#DNJHA|<2bIh z(q3PO?u30ne1$Rz4Kn*^osO3Iz4!!4%M9kh|0-cLpG}w+>j39}BFlR$IZqaW%!l!V z8FeW0zOmIGl&w13@=tE#tG?a3imgE~vX$Pg>G}Bbo|o?$4mRnSB26^3=}fH4skmOk`llaWYEj&R2x0bm&!q*nsvlO$}(y<>M?Y~*KzPQvU#Ox=!Vhy zJcxImo-|XE!}CDgiK1Q>(7y@3%&R`Fxf+I**z+zTIml94qrWRAu2SNGQ$%(hYlyw{ z`Q`seg+mfo8-NjqqR zv);8B4VD3FA;<&~?o~O^w@zVvCRi2{*nLCtPE@p?5wJ$0{pw6AbTR)2Cc@g0g+PGkZtz`CiDH+~IlK(=T{@pz`sk%t?RqhY z#50S49g;4Huw=brfEcgU&&oc2Rp|+CN-Pu4l6G;OFNUwFpf0>aiW?M=lyhRM$qd~d zpBwuUGvffF#(s_W&3&#yJk<@}vU>yX+Uz7o<;^NQFE=E+2%CfUTXI3HsSN#`Nbld5 z*rUsj;CY!Zsf{X$wLn(}7mHKQrsGjE4cyq|Eqg(E4`uto(KVSt0uv(6G`y@8vM*Mq zGm^Q`q#J!phn{xiXwWu!k7ok!h3qIUy-4X};iPL=Ji9}c){x352z&e3V45)&E81uiw-MW{WNJSuvTT~qi*K`SJl~l8}~+fU-Ub->jqa{ z;!eNK-wRmHiq{&wcQK^pS@AnF`w-t&Ml+yO)39Znh=7BYQcp`Ut_h>mBZk3R;jk5U zGl+51@kT|eY3BVFN%ouJ;aDK5b<>pI$D^o(rh^nqNfN4fGee?RSYMXatB#4LNYr0w zCCai?E-t?E(*#rr7U?0#u3W^3`I=@Gnzo?CG`uSS)?e39#%E*D1tO3d5gQxDqq|;z zCZ4M2v3m(5RDAM~xK2Yny~qzLpbht__{%DGPWVSH;KbW>tXp)4N?aw#bE9Kb<{e{B z#<;XOHj)7{I~EIj2bJU>tq93}d8tY^W`3p0h0BB!!{+^h+95{o4Ypis%XPLyMEhJl?FEAB-JYpTWKBF5Y+oK1Jp;TUiHX4<7>;*BSOG3_I(Vw6ws! zR=a&$ed4y>a%cR=ZGFuh!+}*U`<2@|)o!%e@=HgR@x3&`ikqrQ%YmE_uLR}%T;Un4 z=v^OfmWB)0P|h>W#`2JguC821NHv-)rpW@lXeKgdgu~3(b91SQam4#H({YGBWhwq) zm5KmehJY|2H2yqO-;=A;$eRQBp9{}knpbCAHlsq{EO`eW5>r86{{NVEO>{0AM5OPL z@tu>D2<^Ogj zK62LUy)Kmer*7*#S1qgnmMKE9%qaP4c7jrD3VLcS;5Dc&9@m|J{(dJr?eGzLG0 zyT~(%dIX7V3Eo4a(^Zzpehg)Vo^ExtcBtJT!L#gp(vi?V1$OHvZl@!)l#Ip4E4(L| zvK6K(-oylq$h#1+4n)|c+dz714u_k;SkGsg*`jo5j^mLJksSye3GTFMJT9B@;Xuqr zXljB=E`m3}WlGpaP|hZD6(8Ij)}LQ5hB3RAirRS)eI_{Wa8ES^!(-L$Kx%|{j`MUUQ6b;ScMyCHPdgkk75$cd^-xT)kHpx%g=-%Q@Wgb&J z`6t?cUd0#1hS*uX!_De`b~Pe8VrP?BvXBil?RWU-u(#VLd=&MZcqmcr84 zEXnJ!VxJZAiN3cM9=y&rs5GibIfK~O!v9Q5T5I)XC1vAH+ALRyLS_g|Su-NmwV^&c z*g)`}j@oCetn=DV^LliX%RO%(9^$nyknP`BD@S{6pDJ(AK={8*l*MgPc*oWB*AQi~ z1BT;CoAm{cV!Qt*X960r4LaBMOW$i*ilULkR*kwwBFp5RcMFRwu5WjhB(NRIJd9cf z-nc=Cdel5*K)u(t%$q7vK!l|QypKWGEPy2Fnn4xRIs0;Rx2id6ZvQ#myf#AQkL$^> zn<3UMT}XCyZ%N!twOBC5i9yWY#LdSZ)5?dg^iJtYKbLMi#@)Cd$jY_eIqtw#SYtVX z*BLb+@3k%VZe+y}j2>WeV%SSN!4M0)p#-I!a!{*7IB^|hp=`U%_nt=n%wsenOSK+$ znLl2)e4|4)-HfZBgj%N3=XQc-@e{aTo&3FtTk8i-tu3uFor8 zg|03!xr;h(^px-xXQ)}&3+$wsZY~DuG}z3Yw)p=^AC_0S2V`^HGH?Uelkx?$I{;PX zYpAE>>L@3rWZx9boU(5c`wEn@Z))khNrlo?Q73zbEmL(EM<-Rv5z-h%_FDFFZI6*U z_Y0idZ9iW|f-GTd)?vSH#CyHT%;aBwyIQsz@v3n9YJp9e?)Txp$;@Vd(e7_T&5nOs ze4N#~Zc$gN%~f98F6G?@``(gk$wUn>wF}`(vH_eb0Ws$umVg*sE@;!XdqAZ@U|ASN ziAJV>33gtF?^jBshDkm|JSU>|p)2X-`Q9U@3+hJ;U^xiAgY@rqztq9`=gj6$bJEUVWIn`U3CITv6$6 zG1%VXHMxa-&Kvx4cYjLuMad)|hTR&>MpfgrJ)^v*{T{3;DOCo@Cziyk6shmJdbi5i znPgVZKBUgID(?#pO4EK*dpmvCwBp*@BMOCAdYR0dn6BH-@b2JBhcJ4z+{3=bHT-gK z@ptB``jSw30IvSFzA67_lJz#QEgqc|MRo1dfDC}!TE|Teavpy`M;RSY*KI41u zAx)4qJZjMEk`mlh?W5rnu?q4q!f(Yf9ESm@>qDWnqtDys5Axdf#fZ_Etb2#8tg)&P zp_#&we!8BNd0E9Ff_1r|sw_xW67yZ)d^`)ce4F5_|@j_OkFbJfGHy2e%a zyXqEKee7;kZ_j_y?Yq`hXWMasNyW4WAEq~_@-|F74^kRQ>J1_R_DR;W9 zo88up?#x@Cs~df!?d`{3bzu3#awf|kEtQrVL7Lo>SB$YLLPX;LAja4Oc%r4>9Nzy+SnR1 zJUN6o7&Ki)lj@x&4~v{xS9+|-{aoW7YwGXNv2PPMQGwFBXkwW(Zb{Xm5pehPV_S9l zPZ}Vz*n}e|4VPal>IFqmFpuYRqNkXl2bobDG1kXI+jbDzPxdpoR}zn;|V+!EL28%TCv;VyqsC3!>z$+KgAaY@oNhn0TuAx_h| zny>l66@Jgl{qQQkxE`}Av#sM(3)W%AeQK5Yhe~HomF!Xt@fcrNMk{2L4>s_r09I88 z!Bl&UoL+1egP^TH@{z!&xZe8Wz3@j0@~+LAY29A#L9Wfr?^H7Sx{~zX^6mdtiD-g! z*Z+L%$?mcJ++**S$JPeHG^W-6=&we!^^(Q1NK9>D>Zxa%DZ1D-yRoEIl$Qi<*KHh#Hq&b&}rI{lL4+o%Ercgugn|T9j0$x~ctd)0B-b%U|zT&7zM*wLwtWvGR5T+3nSe3lUo(3?N{eUWV@#ZC6CLumMu;V zPo7a2TfVe%Jc;R3spO1QA=$I4wRnrFnNYnXH6pp5BtnbpT5C_}l&_!8?@duQF{INZ z6irvC&X1{vUUegDC)Ta1ZLJwuJ-TLP^~kEp(dfo2RF_9pW8ZGAU0b^yqX%?f*5fYK zy<6q5d~464m8}(--d|TuO@-m*6ASI-t@)8<6Z6NHjm?beG@?(xz61I!&Rnn3a0m7 zDyuYkZ(WVUc_nDBMYcxzn#5-u&5)1lo{snUZ3+HlnW-VE6l(>lw_es6W(-cJ?!VD) zkN3MFoi(xU3rjQxmgw4K$6|OLzuW>zx~ya7uuv`ZE@K}OHT;ETpU1$C!9EYMYu4X! zd2q|Zm=zp#tk8sR! zRJY1mmiO2xzw9b5D=&%QtG(Nz?s_V3izqyXbu7z|YmS_?onLOveK*nZ3vF`rWUwPr zJEMs^BE1v$c)LL^8QF)>F4cEj^^~jLb`{{%a%{OR0Va`+vu$~e+c?E;bhqVXTjJy{ zXZ@9mRpH@k65`Fq6$3d6SgsPCX|un`v(9$8+lx25koP{O7IM0hU;RtO-_bcSutEHZ z`ZDLm&&KuetTZn1U!bh<*lAhXPv~wDV%3OIZlsVDwr9dBI6{@~hnw?-X#dQ_Sl@`H zXt=H(7!jLO9Frjb)Bji(;$Z4oxSS$@(f#eq+f^u?nn&b+nD>k4Sn^E9f}N@-;u-en zN!Ya$mX!6Oqu;TuL-;A`xtM z(#m*7c`WGcJs{WFvHFnwvSam;bjJ`C{od2Q757OXF8V#ptw$yB-Ricw?+4nd?FR|( z<@5~kf#}IPC@{@#SsGMY`@c9O96x|JDz7(>PA*Eyx+x5J$H25Um6|u^W5Hw{iylmfqQ1b7B>vBYR?#0`n zD;8M=d;-Ws+cxbzk|h%jq^c!siMQmUu8<75;hzM#2!XT3;5m^E(2Yf#PRGHTJdNIq zS@{+^92y*nuqFxxi5=(sp`|W|a<&NNoa?>J+2xLMHd}J}G&>yq`SFooc)gqb!7j-_ z_JB(#cCD)_?Yi+1UcG)?4@=qQ5%Wk#77dU`+hHlrd3GKXXPhNCglDfLfVx z9lYP?qoRMVPgm2Um@R^a9M%W@Yi5)m7Ji@* z4rV}%WmRasNJ*Ad&dQ}jN{2v46tw?5~56!Mb z5%z0Q$#!$o@@n6V!qm|i>Yc&))|!8DXse%7L1F%x_73GIGuKDsws3O1yKaR{ z^s>=&85*@0){upIb#8+0Ro0uOX8L z2gO7DkgU4-8Odq$H=F}xra!Co?|gNO!87M}6&_ULhmW88s$CM#xgT$Ls_R^JjjNsv z>`w9p>LIX$Des~38K`lK1WuAAkU9xSlCXS5bG+=g*0F4PP_q^lLL+h_T5@78QZ+%S z3aZ}ECWBaQB1$$Uhd4GAK#QWjNYuEm2ory$5JZ9uE(!II49U;^A>K8Gqh@Cfv$F|$ zSiRlcr?(OP)Q0cj&76@Hv4YN*cbKYk9WbfOP&ZzP?xDgpz!Y;lVJ=~X=vm=%5s7uJ z*Y>LNehl!KsbkSS!Q4!=#;5T%&HRtSVk&hHch9qMBJXU@g^~c!Pay5L38Y0sxR*G{ z!Z0v-bJ>#7yC2Og*L87b@7v{zoW^j2B{^4ElJmzxlb(KrV&|-ss zTrnGW0yu>%cI%FnbfTpwqq7L20QS7aODY;N~l;#ixJ=($+|q7VQcbeQx=i#DtFG6q*xai1B_qhgzUqb)M__%dM8oDX@EEr3tlfj*l1Bvd zLo#!>SU&T#s9Rz{)HQKRYG`sM@R5Vki%FM~ZUp6Nv>lpGng6M8N9e$V($9Fn+*fI5 zAz&&4`IIigltD4jxb(M_CsIijPr``ESiMWkk}DaY81U{<8kf%AP@E00H}E8Iq2~+x z1hg+@ax=@x&$Rav(Gx=%NM&Xd^ec(O+z}q>d~Vj@=rM*A0rvRNy^Aw1WS|K31@BW* zQ3x`JRcrROqFN;ZMICI5gyCQAK%no$5=tuX=4j$J|%!1-%Y*6J*942Jc_+9t9<;!F#dz|Em!N zAL#sT3VfjJl&vmtRljXYh_LbgXy05~>r{wd-fX1JqFC1iG_`}X1n{Z`r%g*t@AgeE z2?@DM@=EkuE_QSr~!hW1`Pe=@qC6I+L$pQ#yii!a=-kFy@ zHppiZF}oDHWiiG=>01aDJ|IED^=dT?2(uD}{$UEb@liJ145(r>Ex z*T9I6f2yzt!0QHgs$GHF9emqW&$;RYZFk<_wtnKOes`E^$a}nR+NisWmQIl&8V+va=QYu(iD9G2;BaTB1lik7C!jwUOA z|9k*f`aPhOeF+WB#unRU^pw2yb$c%yuzS2;|}AzTkA;F!zkWKgw2k)+8KY? zRp@@=ObxA*q9tzmSD(42?SgiifcwznTeJM>OP8Fgf`UKBX@SX#b{g z^*Nh(J^MnBODYM8mjYhDN`JGInE6y77bO?Uc|jrmx{3|JhY+H8CPGt_TEL~ysnnCv zu9VuHx=7jT24kx`T=mU_-TJEA>SQ;T+OlC+s^GOB>f*hIb72L9qzic;HsSRroC?0p z1cIHZTTB;NdT4@*2mVK(1-Z}{af0c|H%?_K) zo{-108;5Q2&wqn^6zX@u*iNqzVxJVASzK*a(sDaxK0Kblt!0ZeWG`CuSsBE)X?E?C z;#VvnGM0}szb0FZ1bqw)?$xXS@8ka*w1$&at68sSCk|+Hu`*X`K0IDU=zSR|?Xd?G z8H@Y@=EUfv^j?*#4W3eoexyp?P}a9ln|N9!`bHaY{1C|jaCVU#(3eTI6#;_kr>^>1 zupemr_8+FP*Po2qawrM=POVE&U#c5Bp{DO!7gTp*D9s`~@dICrpZ0+GiRHix%7^}3 zJ`Egk3zYx3k38^}3QmhJj@@U%6N1T*nFH!8{(g0=*ZwEp`w$^5V90=9L*Ih%nhCI= zb@X&uWM=#~88h<b>Hvo! zOutN#+XChl-nbY-;d3D~^ceEV4A*OQkxwp$ftgufOcZG*Y=#vs#Kgx5iY) z8{wx#BUjI&J)HCFip6wsN@*BBrXhQRnts2iHwoUe!}WQBk_C8WIg-v0|50r|(qUr) z!4D=Z^-g#=skWp(P_{bgsPPZG+DO)||P9)p8Tz0-KKXQj2Fm~$& zSH10azUj_i=?=MlH@Gu?<+hHoht9QSVjBWP`=evL=WOGwL^HJ(2^2rWIy8(rI?_OW zuq(_Z+7^0O%QABe8~9riKmt*3CA0;S2Q6fwc5yK_uq36iUO^V|B?Jkk0A-uv>p~rl zzB*iNFIU3Z=C~IQxXmb5n!&8RMDEobb=CNm#usCG@9%mB0z4JkX+2Ft-Mvz;j_JO2 zl8b}hf==t)dV9gO9dUw>YY8vG+>!5US0;&L>@S$^0aNy^Mi5`qnJw+06{gS&W0zso#&oQjcZhUISc< z42lP1s4Q-b*lLG={7We~@G777CBpPKK0$t@lv?bAraTZo(Qq|*cZ>b+tHfEk_f@tv zHzS+MU8b{z{9;@Y%`+O@>54i@d7Q0k)}w)i#C3gW{Z`faeZ|sPaf7b>fyP()tG=o1 z-q_=Ur&AQYD)kBg$Ry}U87^vATs<^s$zp~NQRW$=hiZC4joOXf%UphJ%5Z}(c zsY@}TA5zIxdLrhl$*FcA+v@w!3IqV|3Gf{|IX*ddRwM@}5{}cZd!Tr0m&mf@|DVV* zJZ4`ec8b7Ji7dmzB=#Pd82X9WEun?RxWpl3)a{8?dhNeTdXFYY#3e{fSeOb-?mqc4 zXV!MA>n%_#`CPx4j!wHdr ztovj{6ovpdpB_iYbJbS>p4Ao8smjLxC}ZBbQnx2@EbTc01W~5QHK$An-25SBJ>p}qLZ)}X3Z!3Bu~hu5+-;DNvU6gs0P3Pb#FX%4xI+!~+Aob^WE%n* zse#~@qrQrnq4>g%!xwfeuRONo3)@PZ-!Ob(`{N5cxV#{GQ{nYtV(QR}No=2s?~@om z=K(7)3bhEjb*N471$8qmC-uj{5EP58Q!+ z!G=EvUK@U6;n9&p8Kmz9I?Vn@!_ZxqeoGwD491=)hW3^w|7>%Q(d#T{y)XKnbIL9S z#k}bpw%>6(x45lyt@rl6n62)0ht}GSpScq*cl$naj^J(f(AU{0cpIK=1m4=Rv~eK) z5EmG6RZ#7eL?8$sl1A@b)kk-?+BUJ+$&ftVp@20L=OLR787b%Mg6W6edw@AdZ)7w< zZv8?^R_~trc#s!TTI&;t5}j7rPk@?rH}U45$#T$-2|EZsH4cd%tD)E^z?g75;CpEWV($ z)!|=Tqo+}m46&-iu6vyMHqP9^cNPAivja%`?4Zn$Xy!yUJLntUt4#$?|EXypQJXWO zw%Elgx>RMmhAV=+*&Gc>S8;w-<}p&u>8o`1bv*Ec&ooFG!rJc4uCv%9A3MyFiFN}- zAVDsvv*p&Tt=etbc2voQbkUVn-c!DG5qUeqxBzX%Fqw+jQA}ltVv}a;#i2`7Mg6U+ z{&F>iCJgYq&xfP*p!g6JAwdQZEgcZ|)CcBRBWwhQ?RYavG;@&x_+mY1jXt@y;o4IUQ)K|YRl@5 zvdP=9FYvAkCbH6`LL13ngSMv)bj6YQF?UPUl+}ocD6{FCffK@4n>#fu#A)ykWHJ>$ z$)(!_dgyptKI1&n;g)3IL~%^tu%8TAfz04M&iP#lwEHoDm(bWUq>D1s)7;Bun1uzx zac^{K?p`IWP~%n%Tq1_}GsB%iWMiamU>vur(~xsE5F5AEPOQ&k<6yAkJK`29YmzM= zbWmDXYP)r!Ezhy#6kD#fC0BIvHvB#7-6#_W#5O^0WBDF#CPK+#Bz|+WvI<&RgjRM! zRLrKM!Zen}h|KVyiE_RTnQbk>nyqZo{c$r`xRzM`u$kQZAO89Qth(YA^9yDQHmY(aJv z>_)YOi+_IPe{WQ}6LfWTEJ`F35r3&fvb@x|x7O2^h}b_P4vstr%%gK*4bR0Iau&az zRXpQ)*~_m|L2&fR5|}}o?)GgH&9LRWaa+CM8u5^8#J{?#?jQj@8{R5-TM6jNo0afn zu!hZyggqR6Y%A~RK3Z5xqvB>pYzC7I^L|D+jVY%DQ6!a&up zFVTd5OMv&Th%f36!6jRmWujJ@4}ARAFj@jpb0i=RK&USRVZpOvuvMGk4Utz@BAael zO)9u5JyUq7^qRvdwI%%{W2=W&f~zjT#nD*JSVXbvxL_8R6cChQNc>T7uC#(B0$Wd)1A4gUw{@JtSfp10gfyWd2F13+gRX=7S6^LIAvNh|87vKoLNZ2xqJBEB_fCpXcw? z;mL@NUCdUM9+Z>#rPyPF6?3Jk=z)u6Rn@@c(@ISt&&Z7IW>`;gZTpY04re#VZB_DS z`+>GwopwZ3-iF_oc~`)&+vukGWFSe$=Sfe&f2pfgDDh3-RH(qEw`a?;8)N=Aqr-9C zO#oU{L>qv9Fy62PE2&U{cVxx9L}Cu#7SOpZF^bD2Ob3(n+X}-Wq4Q71Bod8S_8#HW zDwu%vA(fhx97@k_8b`GGW(#Xb5C4IDQ&ANneOY`Bk1Q}#$)_aWmbxppLjazxcNO`K zWUFq6bnf#xZ);N4LO9s@dLnN0(@b4_j(kNpf?l0dR-bp=el*%|u-tyL5eS49oCyA6 zrA8c<_((?V!qSMv7F5g3u9gt}I{k)p+i9$3_X*d~5pxDk$~)S>Lzx#qDh+`^eNthDL2kdRu5mlJxvgKhtq0ixmF`RS{8_fFv*mfV{D(Wa zv)ursj>Y5UqIbZ4dqXED;I2iMod*IQ6Sz*`BRVt^o#|(Z%|nz;jsO1)rd-+;MoK~{ zhodVF>rVsGre~dqxZKXgac+no8R1)uYJ>< z`ZZqaZfw7+s)Cah1`f+SFp&OteSK@bMd+j8bCyTpK6!dT2%0lmv>1EqcE* zF@Nan&hrn85qjleS)T6>y{pnJ&*Tr;BlAb>*sFk3YW`k*bX2K3iVsOG}yWqILGmHwGVh|9+C4v4!Wvz$`9SK_v7}Iz3$kVdo!cF_?11pm-Sj` z-c~{Ij^N~Bo-+|htt0fB5DR6RkmwN@3uf4mhi-75UqupO%z@I)LS3nEcjv5;Gjp*7 zm<;?N0(%WB+&dZ(CTSyWuad>Y$@7R&xUVJei>JC_W{a3@mtDl@ey`Dy6L6>Wk@t z`&2&>5gin%C!$kr`Mlfsxwc!EyR8pgwIyzM{>5$0wHwd4jT7t!P*ifKeSxj&Y}wD2 zS8`+q#G=8w)vSUS?~iG18sQwhY3lxBfi@?h-R=*!J}vydbXYUN{AZEqrx}Y9>W3D6 z4L-ZJd&OLx?SqLrL9g`_ z(?3RQzYxS@GhE+2l0Xr;g04G}|BbA7f0mpR9~d=Gl+o`fbGi0^rGdyT;(wWnGgr^l zji4Q;hos`kCv+;G%%!eF?M1q?Z>Z!gL5{3U|J42rG&Z||E!!oYBdf)8B>tlIo(QJv zTzqM;2J5OP+L-MnuaGB|S;9W%a=0(t7OL%GVOzM)%l$s)O@&m7hvKUEnZR@1NbZAh zykDqZ=UyM4rB44WP&T2@7ITzYhw(otUdKod2i;vl-c$Y2pav%8KhA+YT^k&70wK@8REo`9>1Q?{_<$CtZ zaC}AYA`xy5C)W#w$Sg27t5_))?r%!DaM2GiIggQK)p7v?x5eAe&Cqw?izQ+yn#lfg z?-S8p9E1P2fN(sZcW_?rKbjR{HPdq;Hn!5~Kho}W>~8b*RD1qz|9yWKO`m(tpu0I) ze;GD*sa_eI?jCT^SCixc7b5kX$n0LM#|sg|#&s7iNmIPsXJmlGJ~117GD#;b9faYc zGpl1YB+?qmNOe++fFrgsmg2+yVV~=MW4xzGJ&Yz^G&%>AWbcwMx?DyP4<>?fERWvlB;%i5=g5iRlTPYC=685{&d+5H1cV$JVo;w5sOPv$y*AtC?XA5`d%Z^@lFh*y98&=HK;YBdd$)gUxJy!}QLgsZ?udEAH}KdVx(~{933BR# ze!7pwPpJq~(pxu|C#rJkuwu36ZN{R%O243E16dTB;=R?Npc+PRHDlyJ_+exnsmu3= z-1Xl{Zxv9D_^X}_*(VMgt26TXRASrD#I%zqIa@j_SK1Zn(j*jt*8RBxi-ANqiD0Xw zc$yd?V%;WCsOj=tF3WB4Z@dCNRnmjAnwv|)y+-XbiM@tnSH%ctzJO`|qSDuDJQK=; zFep9Xy3jpfmog73e=t_>ugU|Ci#jEE`OK!1k!I+EO@sKa+Stik`>6JIgVU4}L%#}5 zl67}52pK2}MA(<1bgfw2d1nBVSK>wyBF3*h$9qxr#Ku{W2nra}1F`*Pskio(xc7#- z5R?9O8mM8~5Z+*H8X6_5@gHK2Mxg{lb=lxg53xx$^6e9ugKz{BvJkE6eZeOg)XMvU zS$l&Ul(+U^&igCSq=@fo&Pb{Juno-_aE%x6R>*V9cK061P!g2)kB8#VV;B2y4t5L00;wN}~qh=D#<) z81ZZG3%s|5d;)7%U>>&M*i;D{!2l8k@f=toWl({>z*(mC%J55#1%H-%*!M*jyF^WuXWgRFa?}A79-D;_k{g@N zdux|@@A*Y$YN8|buMXlbNlS2H!2WVQE@M-?wI3-G5zdB>EG-c?DM#ho2pxsEXXd`D z=P*Y1_}+i~nL;2Lm(nns>8S1y;?Dec;lJR9=>i$}G9tGpE=p}nsO^bghqijfReR00 z#AI*nTb;Zu#2GUffg8p^Wz09RY^f;K%=qXA2iqb?|BlN8okBd@qgV-89&!`)Z&5T4 z*lT1(lj-qe(Lmi-?%w%(k+~38t|sek!1mG-W-1!$N{IF^b#qbPTQipOWxr_u?lbwc4A1#8t0)C(`E*qjs7~TapJ|HU{o6!@X6{#Jy8y!^qPr zcqS;Zr#rV(`AzVt)l6x8J1elrhkh|uOoe~5)s5+}@K z4ltVkO9LX%$CUA(^;cuTn+c+Pd2C?(TPoHP)hC7tNeW*hz=d|W%yXTs8Sc=Qh{C2i3&J01I>2K1UKZ!`TS7a4$A2ED#)7|q&+SHFiumU4ivcw!et7p8TYVbX>U(Z$;9fj5SN)*OI|PT; zNuPrPZ4^u7X=WSAuo+!{ve;V%I4R(u(J8J4ziO3aDon-`5{;5fmYhak2-OVzny3kA z8$ggw0rg^<`b3478Y}R&k)P1ts|c3Rt$I>=aIPXdG`~7M(DKa(V#FK8)B)bnR=a&$ zp?s2^2i>vT*y3G3$$EFgO;td-M#6oZrZ=)qZv+-|qG=&t%Sn0|c|!p)=f9S7o)DgE zBEA^sn_;!&kuRGGTOz_~p!%eOGTK?bLRwa)*Y~sT1KtXOXc-(fz|0<(Sep8|qD|)E z`Ee(nGZiBWy#%f^v*~pW#^k2$zBjoUlHY`RqS24yCj-O-GbcntI;x5xDIDC8QeALN z+%SoZJV#t8Gn@XXH}>&1-RXPnpWi1I8gT2+(1mpG|9vkBBFsVVf@H@HYJt%M62X9iQA{+OgHxxxKr@_bnIo+61vsWj5Wb#Sd(Q{&mZ9fN5|QLdsX4!k|R+`zgRP4e>IX+E|`f$M$Isd$?=&hRJtZt4+k+j z`K;oF2zqPv}1Qz7v$3wHntLMJ^Aox~zYPcsNBVczTKef`k7W6IXbRyp^i+M?^amYpWQ+Hp^&8jiEx#X7mD z^Tn!RKy-@ix;%_dm3nZO3yQ08K}nv(L_Xx>)G0#h7+WG#%ElJev9Gtc>6;1fZuC4C zhB)(FfU>8Rxa?-Iq$6}wQqI8W!fGCN(M!{>^LaW z<@1?czTWNUcEL-VThN$13jp8yvCL&^>=rfSYl^_^P(|J;w=lFiu>^M}SVpEq&2L~F z=J)7>9D1y9op@))lo+!pfol=O1o;y&Y;d-BB?($c2ilzId2eFIt!m`lv7h>5_Y}tJ zd9P)n|4xLDnaI5=*l^+{WTC6Oi2l3_6OG~o`nryOqH) zmh55#%nPX_F%ydk(Vxei4yk`4%&9{vJg7z;a(H#2-l|c|l3Vm1XuZG4lI8atSx)TL zt^36I@q6Fh@*lW+>7F)6@>9xR$t`!Qo1G>g+@&V(R(0+T?-J&}k+@T3`unRqZ>(to z{!3oqn@3)tcu4V3SHW)lL0lsrQtIQU4 zqQtv}n>%fB&m@wUM&Xe&cp_~Q&7C|aKbJ-347m%IHy%;$c_ToA>%!4Zvo}VYN{iA0 zdIR+fI)A{+1e$9Vt-W26m`x(kYk=p$WwO70*~+GNK)&Q|$J42x{f!6Ka18Ie>3O|z zG#Y~u;v7o62RPORNeM3>H%^UWSV+=GQKVW8_&EJL*d2c%P5lH)!aZ6&p$mI3pnOY> zfkLlA!5c>{6ye`rqbt&tFf+D85o)WBplnaVrm8FaPGKJmH@7OpHRQ=H!C?&&Sl7d3 zwE7WABuOKR5Lyn?(VrzTn+S5<=viKnOreP+sm$zs-x3LTFrO6nKz(Cv9v)5vIk;0y z(qbKoJy32Lj{9N<(QBGlYrXf>dITH5zewYXY2X;;ht&cxrO#*gxzy+4lGTYlwRY=l zf^4e!wbIw|^AS1V7KT=H9jSC+7IkNmw92h=+5ZAVfy3AG&Ajnk$U$YQJ0WM`q>>Kf zr#_^0zl7qQ&%gL(eJX@regIfeqkk-FUl{nJeo!pW%h`o0xti3$PN;lLgBUU+oE*%K zH^y4HNk+_&8CX1uX>{L3N45}ObNcvjN~}3PBld=l8WPh}lan{9j0l3KWHb49kO|9w zq$`sZBBgGL-4@vpy(d5>$I^g+c9H}_;`LPjbmQFR7tFR$4F10#& zk;=?UFUVc5vV*;M5&K0fUtmMHW{Yfooqr5+Y6SRUgv@M5rJbNmDugXqG?85)GviP@ z*s=vh1Br~eWH^`bIx>)1r1}XS_wn|M!QLZZIE5*-dgCzfIlmWLy)+7R44eZwvyLA! zUC-D&!+XUagq{PXX#hhe)94(>a!ug8YW5vC>SDR(bfQ`R$UfrubT=0*sr6Y-kdS+4 zbq#`xy!lolye519@`p00rN zD8P)eLK37?ZkOTFiK$Cp4io>JP8@lTt6%=YLteG_+o@*RK{0;^HswbG(A??aY4mW3 zRNbi@eLC9=7eg5BO2`}|g0jhbAwZYF`6D==ho4{u^CWtG;l|$H8$nk*=J1;l8**2o z&H@%*vePPFWa&R5{yYU}-E96*bj!6o= zP&y679#)Ocn;X2-iCqmR_>Iz8!&q2SxXhy&WIelvK{48^Yk{+VLAm#qmVQF`(=4qW zxkeg6I9yYZiC>6WLuZ~)B);dezQe>|8u693drso~B@oxrHKT#;-Jr+VEB2||)n0}B z)&N_U+cLga_439rf$*~{!#%b+SxCjjL2)`yn;1;SMN|aaoeX!|lU;VuGb@H--CyQ+ zrPaNeoHtL-i8jrnV>Wa}!i$8PYT`gPfOE>sy;aSr_QnY2&6xs^B_B5ylZXWG78vSy zBedXML^LJic0c2`#*0A7nK?qAL2hLtSFA|@h)5Z8ix3D$2Ns0Ee*qS-!i)Z9yu}m5 z1B$pkT1^kYYP?9oPvyFojhjqs&DDxj$H5@9tM&avgU zoEqs#r#RZ}s_%sMShu~g1~2-3!P}x2>0ETXwCZwH)oTd2TAt~LM2t!IJXMR7m%7Uj zgK?Lt@pbw;a#~=%%o?4HXp1lE`>(DlTQiO@q~?9MEq%w~>EQHF#V6xvYR92!N1SQs=*2 z;&IoB_v{-Aglh4`ead;?{=!v1G~2`pcknhwe)MSMZTA<87GyRafI_WzD`k^yB#n(A23 zcpp;=NywKDa$zAH!eq>erdcNA0F(+C)$K}7 zyiLsSVY~AibSL!f8STBsb?{jw`exlPk?dxecO1sd6aFWz8}apkfJECu?+@X$cm+Mj z7$=pdIDFUR@U7z#kf~D}VNt!68^*7MNI z0%`^w{Y%0#`bUT{@#(mG4~!T-Xm8Br8n5(L6&tcu^^U2+v}|?BZ}Yz;cfwQ%#U|Fg zcIrzt#uWx%yXmC*sGJ!Ou2Jw675_x(Wr@KAFa=9eKPB=iUCbS;Tgv`h7bcev&7-ZJ zT(LP?k?B?Bg?o4}#ih}A>nBCJ-K}eP=_W6_+4o+H^HRt}rcP1`NpD$DcOp~mbUYrG z=PW%bm}oCP(_VX>+6BiJJ*d5pbAOy6> zbbXRq0r2>0wAyD{+pIQYm$a&}NiSLtv}h5vrgs7aR!GN(z#}2)z2n=e*_PoRB(><7 z(0eyA5r-e2qYKxA<> zu7fMfU9K=q6!j)AH`m+EkCg6bm!7Y>r6<~@dhLc`@lFC?Y%E81qUW&uQS}bhO_2P# z*?6qwiKwgt${#(Lh4TNFLL}t=C=8C7lk=hlUR^y*XjWcG6Hc5KwzQuvvPVbFCk-g~ zNblkGst*?jd3Vl6&Y{s}^3JeVQTt$c&;Bc+^g!Va7eZWS2E^x;nm#`H=d!!s{(TJKtBSh2);ZLtBq5?;4ISEYxk)^)+IT z$IqeOY&vuF8I8!zm7LH8=jK{gx(Y<@Jk+|H|4gq2*lIKr(Cp-b`eW-D;yv{$Ua*j; z%q`HxjbqNl0F{XRU>L_BrD8{0KwPR|4#&b(Xyx;;`AyZ8o#)E2Y$hEpWWvfY0$-sU z%QWQT^|YI{S1Dn8M!@w<*CT^+KOX^adO7q9}2X630d{X%T5k=+;cZ2{`XIMmKaX7IaktjfNRlIXcRQ4JCH(rwOL@cSU2e5cTzQf(rex zC@RGf>Q0Hg=*vH!{$*@%BapWUTSd^(xh#)R|U2CL84XqNd1~cTIH>rf_BP zw3^e!?0u3R-B4CHtG1=fPl(xM8T+-at*@I{+q+Xse029rO}U?}fJa1Ei;hq{fxcwR z>y1_1KJWGov-@shgHHP_;l1XMgY_UUbTnQ{b4bvZG+u$+8D9%jV}!EcOtT{+X)x_X)Jo}Q&=Uou-}l9|cA zXR=KeNHT;ZK*&Z&h^z_wBABoUh(N-QYzbizK}lTL6iGxB^i>lT5d}#EUqnO`1@|St z&$-ou;OqN5|Nry+p8x+zrmCyE)?4?Ud(QWK&pCA}V>O&}t%5VkF0YTwuJm4{P7=|0 zD-yPbDSU*9p@H75r0TM$Am1qpqp8Fds*jqqbO}_BrB>zmSrq?uSEPu3HCi!gi$2=E z1&A^EUVx!5k5Gpm`~>V^<`mL3Fhf@&jV58z45*5v>!pHNQzT!% z9z?k3E@g;{`Ib`sIN+uerF3$0xIU9dSQ?)|c<&gVp@1S7*XV~S_*hg&4K8VJfyg5mD+#Dp3G=SJ8DF8X-aT*0r z`+tL*QSj;#gwZVErlNhs1<0t;s42jf*;wV`cq&%rdW8g2Mo2!XBEKO?w%=vnycdHV2>V)7{6}!a$1c8W7@@LAq#;-6^?#@R!sv{+ttZOKG$2y@i zStt1ml|(!UaIoohGdi9bF4tF&`~>FyDE zlv%_}9*2x>K?nu~t(mtA~hH%Zte zaO*I6N)S5~yJ>nV1;UQi74clM1+hL%jWELmeSSujo$k-^GWjdWC!>dzZY-MWLVI;Zk;q0>Jd%rec*uLV5NUW;Et zyeh`7hZXG+Yd(#QSO=(Vuojy(QVYSMT-fol3H%U#-S#DZgB1PO!I9Mya?7 zbYl;=ZkI|A@ypzK)v;tFcZ&iR>rDX6KtG6inbM*ld{KHbhVDv(p4z0k%qg)aw7Jkd zB3v1dn>PCCjTS@SPMEqKK4f;%Nv9I>z|%O0k4rE0DS!cx(~8UnK~$}2FHZD)G*&<9 zN{@1!e<;)AR{7V{|i5Uj}s*9g%?D_(}kN#kR0*YT)-0%Dk zti@?6Nf7~jM!*-;Z)8QprB~mtRy8>zIw3#LL_N$aoGKy@``^ciYNQ{ICiT+kUZcoF zeTfB8kN?1O7r1KPnKI5aaiot8*~Bms`PxiAVzzM*>{O*VWJHMn)&+j&lux^QnkwZM zwyJejb1WwAI^S+|+GXh$)#V&J0xhSDadbRIBUkX((MDqt+YCq#{Cih@Wv=qECE^|)(Sw`#jux|^)L=2w+;iR1GHMi=P> z4C#xgTgHSm56l+HR zX?kphS1GKe1T%O|vo|CJHfqsBo53(~r=RL=Y$B^1J-3vMZ7#VMs&Rh|D+&Wh;|2O| zK@*NrsUH!S_9^_`EN&s;>E9-aB0nXIYm3>~ZqoYi8hgu~Oj(O=f0;Lr6wM2F_AAtbsG{0M4v;ru5Q#7|`E(b z>U7LObfo4I!^_0*YNL&*u{(lvg={ zIz<@wBXaQFT8o&7(zgV7m}`jmVEAqZ{yePl8a~FV%rU!M=gSD!(cl?#C`c;QrVUIb zS8EHG_O!x=F`draV0$uDH>f~n7v#R`f%gfP@EXohN%GVf_1pnh+KBr+8V@`ixF zNSg_W&pTZMu}V_*?IFB$w^Dml+itM`@W;xz6$?U+pTa9I1kD2B$l*^F;hPB*xZG-)Iw7*IfjziYlns5lz43@VNV{(V~b<+C2`R;(pPX- zFQC&@Fqad)WB+PdSMd%8=kJ;NGrR!ipYR*59scXDO~@osD1|X z;9T84NKf1=1HC;u4Rr8xTmiuj5Ldci18aPP6(GiAB>jb#7pm2C<`~9p7}QbcZSK0ENrc&SSm(2dCBX{IaTk1V$Rdm{3n z4po6wRSLLm8=8c8zmx2K-e{tgaR>z8=Xi@79?%r7mnIu!m$U4WOw{t#y&wGL2>aEQ z(J!|}zs#}URqWSmo$zfEc)M6@0*Ec7+o4&}Hz~552y!#^ln@+t$V{2j`HG(;WPEah zp@GqdU6t+^puWq@^*ohq^xM`(ujNn0AO-BklNFTv1=PAAnG;bJ^W8}z4YS^66;#C5 zGR1AYkU)Ywe_vB9s`>Ms@K2h8a#NYMLQ*o8k)d%D>lz$j&hJS03q-M5E!YHvd787w z)FUnOF7vRU9Y^D@0PUDUe4Y&LJ+SrdkbDekH)(0l734<-;%&u&IGtHRhT$G{i{0@` zuZ!t|on}Qppx51j3Wp~5r)c$Xw7Mo*9czEuV3#*VU%eBpa(n$+CwwL2Tn}T2uzX(J zB1m7L(9E1)Q0C$!b%)@PlMTOKZ$MH`LHX^1>pjU&>npWiNEXpRqd_j^eyp{ zEZ_kcWVX{6Pd?3kPW#88@@u5*)sPD|%eZ||J3k;(#Tkeq&u<5K1LY!uMPA`%eXV;K zW7#b7JIr<+FL7EI z_nCCvzA004eYvQ+&R{m7v-Ln&Y34!uj-ATfaBMyNF z+CKcQ+*ya?+%BZ2rB*)eiCd9$E8%9N9rJ(`yIiDe%r40W)4{~wiNm7Tn!-S2I3Ijpfk9Z`93}hD#+h&>stRxb#qM!Lb zH*!kn zhU=rNEa9^F9=IvbjPyY@YtpzD$>7LqsqCq*@Jc~WVuS$H`UzS??1{ezQEMFZNEonJ zle1pf4BOQWfWkoA&>u!RPn!|&<)tor_u%yUc5w_HtxqQqNXAazy$URUsDqQ(c?lip z5#=~|KmjAo#wiHfCt!4Koa&e_yUyzfNN6tr5A`Ckh$U)sO9Dxi?RhbPVdrn!OyxK< zYcl+z?X=q^BkpBw3olYAm<%gz(iFrySHwJ!4n+0~+5lmZ=V;?zNprNvwX3XMKJD98 z-Cm@y`BuWY#~Tj8C>55W0cW@ilu-=;x&*#AwDwSUWL!ObhxQkOXrV%)9hYgs!Cfy# zBf{ZgFiG=WC21|t1*#>tMYaC1@b6@-@p2C;K5ZhMeoRKvjOdx_a>X1|CwD=t z>s#aqJ&ji;e-f=lo@M&Z2ptZVMq0!9R-=V)0Ff*vi|rz{0Com!GjGE|Ngn!_m|aae z=;=e=zB0S9&9$rdNFU0TzT8ID^IjtTGQO1aAR<*KM-l{|hS$;Mho;iJM@kA@fNfax zboUlxd^*iIM>x(_Oz8Db#tw~yflzRV2-9)U$diK}KDy^fA2zS<0SU^n7}7kf}8UsGP8 zo&F?We^-%1G3;#MvbQR3eY|NSds7hLs#2R(pxklF~#{I20m6zT)$K zej@MZh9nDEJJtFdGPA*>B!z?|7{9BS8Sbz~3EZyn59XP^u~=8q{WN;yA6&MHnjXy$ zYtY(8+V!_w?tHHzydsZQ2|)!oRIP?|`GQiPK`JRTAQL__-@$0+W6m4l+)h3fFdmVE zpjS~J`bQD1`hvC+PS7XO6R4yqec#`WmT*5M-Iq&tvb;%plFiG?Ty{p-xr~ zoVQJ>?dlJaiwFu08^Jd2{M%G?5K}({R4)Vi;&Uua7vg~=aF;XQRa7l84xkz~n?R%l zCeVOPu)mdJ!f%oPt5kO&KxNGF(iwdT-GTqpp5WIqosD5EF#}vek0|KVBh<p|`(q_t=y&f79+$%AAQNbD60PZgNO9Ygrx3-O_dLncRX zR*Cx+XYU00~s`(346UC zdiT42-V&OM?SH(ygcD^kg9P|jknDBvMaUX+7BSc@GEPniQ^N|hOBm1eMKQphj+}{2 zI{}!U4#zM%3`IF_j^lBaBl=V)C|axBf!OTp+)n3@#LnUy7|G#>)N?2qBb}{@*#f@M zU(P{ep?8EE=WNJ14=3s=od%=06K6)2Vt@4{B?E{;VcM(r(^B80(9mjTwKh_!HJh*$ zx0+n^UK!D-+tv^ME1Wx|PLYXe;0{6$2FNw@Bkhdo&>Nvrp}aZwYtzfGtM7L4L7wdN z4b>a;C8*CXR9KHuE#x}q(=JiW!D#2mDk#jGX;|Jr&S1IRBA#&)FF()TJZCp5>~?T7Af{0A=DRa_tS<=>izVc+ zMS2$1sn>bi75c$MF}D z{SNgy+_Zm9l=@&FTpv3nKOU_H?8aBMT}`yhPe*wQd-u9}pIg6|@YCSIl=G0goChlq zoRwt|uhJAaC&6%>bb_k@xNz5D-$;_zyeJ15$y8GroJPBhVE(G&yIj~#{tn=X0!#U) zlC_mk$nE}NQ!K>943%F}y!-Dbqq~1IB>t3|Huc?-2~Z@SJir0Om+lc9c$X8$BpXlpiCo<$air0BAYBVvz3 zj~@C{ZLU=`?H>2um}Nz!ce_)a^v45dU;$VuG};Yj1gg~K%6vnnlpOP9oz9d5o}ZW+ zHN7oO2wqX430xkhfycg1Jq|^F{In-(R?m!X)l&&nl|I3_pqdUiARd$Q&F0bIuq2jh zJ?yqS>6_xXm}etqJbGdd*;bY>MTT8UEj3TK7xZO#1*mROAIrDoni!{51fRk6kGaK5DF{25+#HE?&19CgbKCjB)a(bG{(nsMKy%+LhB1VX(rkC@Bf#`>&x{B1sI zKBgj#yU}K_taM3g320Ev%pf)7)M6UlE>c6bks7iyRVBEvT>fuLO$Iv^u&V}OR(#7f z7>Eu0Rr6O*2em%L1z_jhjBq)1R$po)5I>!HM3r~okA|gqOg@rymJvvaT+UN zx2>vYi%?0vD2DD3DKNH zzWuW(^@;9l)frJ`(i=yk!k@8Wq;n0k5vL;DF&s1qu8@f_WbUJJPX_=LE8>6}ZF~O9 z#;%UtuUZ}dP9F|Hba)}=1}VCcytHcmm14R}r2&$j*?**LWM)a=(Jmtw2F9U<`^Bu6 zL|mD&*62=u?eX+n_HD}bk%Q)Fx7D`7X#4o*+U3nrTU1C@6aRMOe6M&1D8PCa4?^y7 zdk2}AM-cA}hO$h&VJu9f1U``VxPhrFv{r& zDH@}+)T>NkRi!zTY$sBhmsVnrUgYJFBZ)I}r&PFJ2?8y}U$dNr`GiN2qokZllg^fU z{oYuNm{hgwm53q!N(fs-5SAo_hb?{dj!a|`J|DnpdfJ%9?q|vOFE5lB)c-PjB?dLK zmxK_{nq#@fnR3s8gfl~6q?oQacw#XslNqC26HuoTYf$N1;g^Wv-gj@-X z+eS$|sRiVnL2_VG4-Tkj5SR=yvLw7^hLdBV&-FMs>6XYaS`9qdD-IUZcM%3>BY$;M zwS$w2#OPF0Milp&#(0B0(`4K6{v7qcV?=rI;g4;FXHP9lh?ESx_xs+d2&KWE*F=*g zxX_3Dp5*YdDd6aPMP=(o;gC~e=6qe^N9ZE z!U1!9$eW?;C_}Lt^L;7I`y5qUG(84?7-KGMoQV_z1Z5i+7y}e~726YJUE!xk|j)9i2rUIGv7cr$Btjv=sbt#iTzPv=xFv~!crTghWUUj;GlJ; z#N|BzubgXfmH!682GrgXf!aT1waoFKN;z-(CnIh%ekvY7WSPKY&(_e-;<`z?c&(o# zyXHpnC=2RQ(AAz!i(1q{9;|XOr;gwOEW{OgBR-O#fW}*nuQ`k*8jF!o-%To;aq1B$ zmN*SmkN-K>n~#xOh_!}#T!jM0yTbiavUt^gB#8fV z!r28qVGeB9GJiao)U&}x+H^hYAC-Gi<4!KAs4R!*BN$LQ$#huzq2JDM)5$e@jjoEv z5_E%jr7DY;#+m*(s~upsB_e_Rifg{>y7y>!X&;j)Al%TWTL<(D#;)48=mF=7_)2+1 zf?S}xAeux_O+!tMAw2RJ^&(KF@VGG~bh&F{(w5NDNmgKb`j6r|XL!IRH6Ayo* zc75?EwEFEfZP#Y^yEx7g7&=mAEJO+;^5UqTA`Y79YLoesa?2c!b9kmIlc-ME7t1Z( z;_{eX9g0?$MN|w@e|i%g|H+*5YJ5PRfYNRwRav;$jP~38H9oy<_@6db<{1JSh_`ti_bj&RPA+;Cgf&pAW6b3v;(Uolo> zysozTMHHNZSQ^U{a>@ zXs!7^VU~4gN5KjmTQq+*3yXuNYy~EPo_zsi9NrY7?~Mp@i0=jqf3A3i;b0RbK1ata zSJbCILSr+sg-CGc!1n!-nZh%Oq%otumV~i7!PhXifSgh>evb z=Xy056QsaX`R=3|3NtN_HWjAWC!TQgiDZyfct5)drttE_+FDQwzI7=@>+*VgPLVC% zA?=GkNj(-~IK1KdUpC$Z8KUmHk#2iEgt;Y7<~Kg^rYm_d7cqHYS|`uK&Y1NvYx>Odah?;tQFD2-vPA?B_OwvpVx+=PHb+_h{o zwB*g9^Pph_1*e-uCT^}o%3x5Hn2CB+qB1ufD>C$FC&&0RO|Q;Yj3cv6F37kHd>1M# z&&Q`!@d+Q4P?=8z(bJu)m#c4hIAMzz_zhw3RYiAkG#Wb2y-C0URn8oIx8M)C zbDX8;&~{tnHLIUrVc${2Hx84#RTZf=30|n}$vxb$aWUYqk zu4B`yrWJzr*s#f!{fPgTRIW4Io(rq1Raj58GWN&?y$t@6s!Hq;6^=$=HCJ{QJrK)i z<0QQh3#nAU?qY#_S)zJYMSh82$EdV-n>Md&x5i%&mv5H)2c?Gi6D2@3z40=I9q9fh;?HbwpNGXT{cFncS~87UKVMI9@JD@NKfl(K6V{SbQO_ z873r3NvkBBz)?KRp#V&RyeN_%T&gwX{Ws# znHr9z{UO`gb%D5-9%a3I(D?7^I%5`psL~C4X%RRLqOiC$$=7KB?Txv_7CzqnYj! zRjc|j$jM9Nrpz2Q6IZ9n$UH`>;=A=0Nm5LFo2(|-oB3B5*nizCSqWN?wtSUK_kq;cL= z!3EMFTbYUq_883`vE*>(F(MYyU2+zH2c2BbDTVmnM#3o~q3ylJZUciE0@6KrNb7YH zr6tYJ04Cr-tn@6y?eEgn(S4;JqOBxQi?6y?Q#YKi#fg<=7;Iv2LI|>hkUATmQfiUD zRI4U%*`I3++U4@=2+-9|B>Z|k7oYu6ipYhHlDcq%nhv+BPn=_|dO&>+Neg}IlkQ;+ zedNPuLaxmK?n8AR%TSZ~?U&+v z!|7dzd#0KzTafzG%5(!yEADqTl)beuMu0AGtX>I|9>?k@v|ZKNrN5IH-Q0geAE4l4 zH&Saf9i6Hwji|T{+{7X-DIU%V+zfbZvrlKSmwrQ<@3Fzgl;WMJMH5NcG{KBe_bM>a zIXrba$`}Y-RZuN;d=Vb^Y0&oEH?{MfuokIUN4V5PD7TSitg`>VW=KMh18X6xc+JS0)4FnW83pgG+oL zI&27SFK}|>oVOEsUD^~jGaHC%(uu;W9o=|n)+gPAvt~QFcU|YkpZA>op7}CFh#pj zh5FEf2(lXhwHyRJuL1NW*7UeFlWG663=FcZ^~VOG9)nrQLNvyi?S1hR~d8HG`Hwq&iL| zidkGV1DfVXDG72ae2WSNkqv#sZ(L!*v94b%>^LVQ@^>M5%N2m`c-yxSSk z-8a(SG3Pt@Y4`E>qEKSMynYTZq7wJ1ab8Do55w9*0UNK!5m{=5!LKBnCbx5xzK}ev zYfZBnZx(vEPcgH93%6Ts)dP0mi46fc{vL12ywkhBI@xyU-t_YFu6}`p*sMKVzKh-Ng(((%_)B7(9LkCyhzorc=ce zeTw?xa+5b`n~!xa44NG-*acoA^kETBH!4wWmdj$qrisp@?l?1yX7QQf1xp`?7qYt) z{azaN)6@i$vt1_6R1<$gGAG;T|7sC&T>%W4#@&TSZ!=CYyv;67g7N4h zlJQ5b`gkNTmhI>DUJK#^jUEYA2U(^yHbl38!cxdFy8CWAIzC$~{JLPeE+Pi4#VeO? zJA*Fk&mpsODQ`!o`_5x@Ey#$-c3elnNQEJlLvI1MWkk{)IK?Fl=;3l^3-!KqGbqZO$6!BEPh(WV%1?X*Rmo8#VB&tZ1>xN?FYC}#{#FO-=?F3g59 zWtwy>n{LYHa*S!*a3TOU{uf%j6TsG4I-G`DWCbQ816<*j2$|Ty3MUtwoAX-iwF``{ zM3|3>>(Ju4E6#SBg*hhL|H*+@;Ku#x0Qc z9xqndFs+_!0V+Rg+{mJ6s5#*HjvNXd*S4ERxMK4e^a^;iZ=DRWsjhGG?g5K_ik@?Y_)NplU8 zI8UOQiA-*c!)xhtuyRC8H#e#+Mr}2(L@R3K%GM5TR};37o8~U&yf{xUy7EkOm3XrI zfnbElKY^ps`9|pr!pqdK{BW}9z{1E;(4PNb3+~K+qoAUZKcg~L z2XMUENcY2xkLq#C<@%~uvs9=ohF*D+e$Y<8& zpH52Q9`^(@CpFT)NqNI$abae3yvOv%yGYEjC^th-i}xgJOQs4RqOb>|(r%;nm_K=T z^^&%$N267z-FPC}V}#w9Vwe7IGm5mH$D{i7`}YZntw}FPLe4slFyVQ)uqNy2d>Z0c z`_s*th&mXM5XUM;wrP|$KY@&szV$h=Ft9#qgfvwn8QNNj9Iq9v+}hoTlvKW(r%zQ> zFIHfplo z&ePL8d=Y+>)?~YTuil0SEAzI7&(Tl!1wWQjlOnap55^wW8hbJdXm$HQd6 zd<5X)Z=%T`QXf4iG~2f$w(ZG6hsoSvaG_5@e2y}Uu-KWr%#pfo(Eo^4X3wz(>uWwE zv7g>$nU{Fl_mKbyPdm{9vZ6wVtbWGUP|82VNpwFO+45P%Y&jS6l@S&TGjU$m@Ng|) zXamqG23tb`#P2LgI8Z+{YKZM|e9heUE0Sxl)t~J3v7di&?06qn%FK94a#CVS&_;e< zvC40YEb3cg*1mox+IsUttAApo^PFGI;Q>CDel!D=u>!lUj)Blh6Mk^{QU4yPBnMeS zlt8~xqc&72syNO!;F_tuWZw^Sp67&wJ0XxCB*yZVV zi7P^8{-4A9APEG7u5Y^$vnmHk3vJfUq8|PD-GL;d~fkBd^yoS`W!{diL##VoLf18kFej%Y6_+pZg6YVM6(Jw?uf8f)=dVNMm z3LG>}ve0-~iWwoxvH+vWY8IELRGV~oXkWA3gBmKqR>SPpW7bHJBu{;fz4MWByZ_go zx(?Dw%6S-mQoVg@D3JdjJ#|r4;Hj;u@E@L9-0VF)^qS0QBBHCs7&LuHp%Z7E%t_AG zZUc%9p$6&A`gL;{J0d+jw$lWm(=dHRC5oKkrDa`X$Sa3d#WH3B)Y!NQ`J6CGmMN3w zn-Y`ZbJpYnIkLfhD=J{l#VNpJj=;Muhs8l1PleFVYCnz}e4 zkW;`=n=xzZVYOA7MxJxyEwXE3L+JbwgP;rHgdPlYJ>eB^8G^CB)tRuY&`XLwu^&bE zT50d~(#S#fK(rcRziZn~axL>|-+7stK89KZVxkw5cTHFo<)#plF9}g6pGDypWQFh} zw)22YCdf|qrWXpSde|Jwm%KotCjY^Uw6tqA_)$^_PIDN+L>Y_0WEwVN>6DZAlNqz; z% z552}t?*9;Qb5SHs9dcIZojE=2RPe4^(>ms5>m0DJuo&kY^0+pv>KK!j^4!c zQf3Rk+p)l9)RX7cF7Q?|weK>&acv;&b;hpBcA^NH*8)nIEYf2@10S|A`3>eNN>3-e zOtn{5T2%IK4!1mqmXs@h%FG>@3(+vNa{mpHcS)jcg}WC#N;dNWLA6>x>Zh4Loj4= zy5d$ZVJzFTVy#w)4GB?Z7p!`|mVLVnkA7kOw7Q>%zvV@%SM;c-R^T1im z1Le-&y(V)iNpTGJHBI=ai=f%1D(tdM0(8yY#<`Vv!!%5Y8f-ek?&7FEm8KHjSt0=! zOq%C_i_f1{eN1U0uBm&$*#_QH3u~PxQT{@DqvT)`FMc^)H_X;Vhy6yltsHg(f#!rT z3KT@jGT&akZ71-Oc|K+X`Gl)fio|Z`48ou3#Z1eg_m|=mqXH9|3AAo-!3E^(sMo0v zeBX@}By}ChNxX~!+^$FTl38|S`6T#HiBw}rg76~=Zk7l6WGs>iho}zZo{2Vgw`9<} zT=|lf7q*~YjiR?5b=Iza>DpDTq}<#d8}3)6t7(35JGIb&bko22z-%OD5*}V5r1$^?2WhVH1l1b1#Gnv56-Ew4G%pLp~ZX6h6UGF`)BdX{tEl9#Ij0=S;@yWmXcO#%?d;+n9_b;UQ&0u?(M81g8%; ze3f?iSruCo!qd@e0IN^Li(KHQ5GUwdIMlBoL)roeVVGe*P-M8)i{Tc$`VCPY!BJT&=-ftN|Tv* zPJn%BhM}rS-(sTqcogJx6p0wRCFUgzWQ+6G-8~kCf$A67)n#B4k;^ zcrPqNjjb;V7bsU&xV%Oj6_IcBUy(4Ym#qTfTjkUZ*S)g2n9bG>-NWN#u8{oK!-ry4 zL+#Qo@05@Mnb)Kb55*{#k}**wo#~jhevdoK!iEDoL=#x+3_uDFG^q^B6P|wzC>H$< z-&>zsC%fTq`?YIbY&S&yw%kq^_WnD*bMZRNxGP-<5x5g`{sg!qDSmRkr(xDl@xQOg zMsp4H2a<0ySlkEQZ7zT+De7cZ*d}MW6$YnT1#a?!cCRKwW{kt-eZ%dxo|ao&2Hd+c z>KbvxaUN#U{m~S9U9>7WNc-Fa3R&(GvjMljkCM*$@X@1&BytfDnw-@Cwv)`GL}p9W z&bO6arR*|FNn9p*vVxx&0J)*O(tL7_e=#JW0e=N0Xt4k*@|17zGNgBr#94QU|9i1H zPnD~Q=6snGC{p%|s5;qom>=qpZaPS=|Ktxnm{iQ#K2)v;Tpkz=Pac@aHH*VtBkIQ` zrdGsXm^qF*WXW^kP*q@3%2ogBVy9l=Mk>@MJcW9?dy3!TwyBeB_*rtA^9y=z zgMELW^X!XzIC_7XZE~5LVhmjoVI$0WFfm}MjwM5@r0Pw0xygD7(v%YJ;=hs0J#8YG zs9LX!F1cH%AcWg()$Zq&Z{52P1h+(-z<0G}2$t{1>zjN&bnbBbxzIRNfV<@~6_PX# zS`8b0upM{C2k(8^v~LK#&ONEU9{0*=j}R$d)A4%lj#z9m>z0(AfC_oBKV% z=D?(d8BJku3ToEruPDB`N@W|guKWtAYV`b{sNiMMn1mNMKCDm1_&gTGR%RywVqhCp z3x+SHxoT+O4t=A?Vo#jKcRkwsS1}qKal-9(!k<#)Gj&haBpROLeL?xCsk7XR{D)od zHEu!?8x%t@3z6v!rSEmsCi=9Bfx+MqpTk4Xfd8|j5|)8CO>JY4h{Q6=v+t=0gsoPe+XG{rU&0mo9!8%p3C(nbL-sM2j0-Bu{y0MLOkiO zkau^9J_#BHeV#ZkmVIDZ7emj`^ArAx;$vPVIpQ9IvaIiy%2rv_ce1KkN7>g9%Glcy zX2-$rD0MCv$@i7M-J&MxOrFRBo4DP23o;cXdXYo7| z=BROqF(Uh7Ur}XVO}eqzMXoor_V?Y0F9h(nSF7WNNr7W5foA5*>tu3xg~@@_Q#bFj zSRXBr2X$U9MIUBMZCMc>>s6QDSEMi95?y z(u2G7T4Y9_=>z)GPiwuzavaf9r6X+dk*nmvI7+XM6xQ=_CGzO*E2w~ot!GIM5<__{ zY)-$a52y6z^w*+Z=!mYd*BiXXI&>B^i)C_+ z-OByi``0)&Mxa4qYw}IKC8@V2x0o$SwKaK_vMYZ}k|f{H2RPLG?X^C}^Hdx1V&0;f zTF{v)%*h10RE_tUG3-;_<1&-1R>#^TJoQY07&&%oSql7!cKE8+Z|PV)xugX<*sgX& zN?WJZ;5ORj(N1`q>l^~5Z$fOkaCe^ z2;%)Z5x>C_PQTUtN|b8S--2BpUgMIzav^D}In(>0*WeV^fM2hlCHcOX@8}9wx(CJF zZnDb_b~)27iv@w|52}-#@ST`*z?{Lz6vUzpNhNU*vgH|J?TBI;t7$V zh}@W;&*@Paba;OhXhOvi-b^z?4@lI%9MN#%x=335!&j^2aT#?_YV~>16gv6)3+gz- z>-H#u0Nsx*_k;UP5Z{UlkwqfB)q}JG|cr z?N0uCN$1i2|JjcQA8oK74Q@+4s_0Sw_g_A+&;Qy8%s!$T(Fk_3vHj?mnwEIK5!#)X zXG=eNefGb18tmC0!&hHDoxiNZWa7+|SdXy`bAiXJQTp3SIwEp4O;X&_QnE@bw90L+ zMXENd$IYgMldn`83=F`~>8hNxVcPL}F`x8Jkd80Q-ANXgtXIy&3MOowYCO4n&-gB}i_OLl#MT}ugv7%6AW zMY}FTF0W81xQ;W=oTfU&gICz>e=&R5Q=9#-1&6({GrU<=C-!!sE#p9r}FQ z{eTuNM%upt&OsI@ILd_?nTsWpXleS8Dyh`3YZSLKi613el06sdp~geuI7pJn*3>Kt zV}i$aC|&NQo`?RZ$NQaTR?4dmOS~lhl4RHx%Z9EmVXmU}{oq z^>N6A=eo};Qg$7YzE{QT-LL6nePUkbKHhxxqWsv>pDWp>{C9t4Ma5&Ps;Mx&W}%+p z)mP*zmj?^#QDTRXN`}ls_8*y}0^Dk};XW0mA#dD^C;hcRSe-|ira?~UT}4Ce1WXVy zy>_WncM9r!Z3O-UJLjEu>_M~5F^B>PYgnll$4T78{a`pG778Q26`!e_!c6QDMFyr*c=lmX4G7^b zCCq{wT5l74`(I^2_l^g`^q{VHC?lGe(%oSQfWy{P1${j)Q3mgv+*lV>#U~32q zIe=YdHy(*rUy4@ODf{JcyS&b~s|LILG&@K`<(=!v`vOT9>b|L?V-xK3B_Y{7u6(~l zXUfP(IGVf8@vVO*#sC&?b!}Z1!xMAgHxHtkvgb6cy>1*Wn!ri&>NF)zC*I1dit&z1 zyk2)qN7Ad3Vqo&9mkH}bp75?gp@C$Ohi})f54OU)KK?2B24u^=s|SDa zD!0#{Lkt5YB=ynLQ$b;?e-4J_R{t}~uC_<3SH#-f>R%mgeInZWX|%O1+IrWsyKJ({XZWt( zN#9)I^dCW297Bj}sLwDpls7Un`M44?EcqK55E&gVUVcJtLp(*$O%V#Jw)i~GrDuhGp5H;Yyj-WdKLI!&Y|1@A?Yzc zi=Ryd#~bA|G#wuwVGo`*_Y`h|_=xFfI4kK`7ZKRt_VIC;f2uc>^%#A#t7c$HAK{Nx zE8Ql+u%;l2`r=834PH93o_#ksC~40wjZ&QbMB6Qje}i79pD%S@1S`NufoDe|H~peW z%205xWIP699mnxcu?S4lKo385@iAZ-WLBfv$ynP2fkq(60Y1+Qi5k-gR&^__LWW4m z`}cwN2{Cc%ISpAB#(P~mNl#jqDM!axk8UT=etBtR67cLKJR3s>tRE?VqnD*f=7MlS zd|C3#%A4Z#n#sYn+FRhSq++Ju%g;+yn>W!P#;5a*l(vV0aVox=I%pVDj<=Kvy1~#C zreS@(5}!)L0{&_dCTX%(z5{KnhO3i=l7fV=&1h{5l|oSECF@K7Sj*nkZ>x`0P-sb|J~x6e**uR zQ{fn;^?4*?nC?+Tfs~X5V^a@2kzj$TsJ_0i;N zsAMP*2&p=W8|jNKe5Z!EM&J3Kf`56A-WDp8*vH{P5q?F824l~P${+Tj&DYt>Sa0LF1 zeq0z8rklInr6%kY-Q$UfJ5ah)H8}p4GyxfH7$R8%HeI6PChO-#CW=mgW5LQq7!7SM zB^?Z`ecnhZe}UsasK{_tTUiHuot2}+;|>)v;8LsamHniar@sm(;y(!jgE-IxpfMVP zRe3TWf1l`N!5HN3DfsgGEzilnO*wyrFYuu%pUml!%bD5ypG?oJrrEiAsZ<*Dp}$<~ zO{YPoVhudN+yPh{;59joIPlT9XvdjjI*Yaq`Sq>;aS<^0P?EXOjqu{nu$2f8xL-@} zC!xWFX#^R3@ZT}yJ6Hlp{=sGO_l}`MGaadD_P$L*gQfNY4KWJ$#0x1&uLYvARRjOc z=>%1#8adv+m~V*O92yJJgUex7b8phzBk)!CF;x1ZTO1)XL$?@Ug?-+Z zAcX2vqjzY=2Jhfrsi=J#Ei)Qm`3R=Cqtr%ntetEYx<^AX{5o1cz4J>^zoZ(O^wNsG z>ImmaHNfyBV$?rc&m`MhW!b#wk!}HSmos0YFCZ7rM3Q2y;T(OJs;RY*eWkKTmd79; z7)!~n_�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%0DinJdK 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⪻j0Gt{0SS+ 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